3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632788659361533818279682303019520353018529689957736225994138912497217752834791315155748572424541506959508295331168617278558890750983817546374649393192550604009277016711390098488240128583616035637076601047101819429555961989467678374494482553797747268471040475346462080466842590694912933136770289891521047521620569660240580381501935112533824300355876402474964732639141992726042699227967823547816360093417216412199245863150302861829745557067498385054945885869269956909272107975093029553211653449872027559602364806654991198818347977535663698074265425278625518184175746728909777727938000816470600161452491921732172147723501414419735685481613611573525521334757418494684385233239073941433345477624168625189835694855620992192221842725502542568876717904946016534668049886272327917860857843838279679766814541009538837863609506800642251252051173929848960841284886269456042419652850222106611863067442786220391949450471237137869609563643719172874677646575739624138908658326459958133904780275900994657640789512694683983525957098258226205224894077267194782684826014769909026401363944374553050682034962524517493996514314298091906592509372216964615157098583874105978859597729754989301617539284681382686838689427741559918559252459539594310499725246808459872736446958486538367362226260991246080512438843904512441365497627807977156914359977001296160894416948685558484063534220722258284886481584560285060168427394522674676788952521385225499546667278239864565961163548862305774564980355936345681743241125150760694794510965960940252288797108931456691368672287489405601015033086179286809208747609178249385890097149096759852613655497818931297848216829989487226588048575640142704775551323796414515237462343645428584447952658678210511413547357395231134271661021359695362314429524849371871101457654035902799344037420073105785390621983874478084784896833214457138687519435064302184531910484810053706146806749192781911979399520614196634287544406437451237181921799983910159195618146751426912397489409071864942319615679452080951465502252316038819301420937621378559566389377870830390697920773467221825625996615014215030680384477345492026054146659252014974428507325186660021324340881907104863317346496514539057962685610055081066587969981635747363840525714591028970641401109712062804390397595156771577004203378699360072305587631763594218731251471205329281918261861258673215791984148488291644706095752706957220917567116722910981690915280173506712748583222871835209353965725121083579151369882091444210067510334671103141267111369908658516398315019701651511685171437657618351556508849099898599823873455283316355076479185358932261854896321329330898570642046752590709154814165498594616371802709819943099244889575712828905923233260972997120844335732654893823911932597463667305836041428138830320382490375898524374417029132765618093773444030707469211201913020330380197621101100449293215160842444859637669838952286847831235526582131449576857262433441893039686426243410773226978028073189154411010446823252716201052652272111660396665573092547110557853763466820653109896526918620564769312570586356620185581007293606598764861179104533488503461136576867532494416680396265797877185560845529654126654085306143444318586769751456614068007002378776591344017127494704205622305389945613140711270004078547332699390814546646458807972708266830634328587856983052358089330657574067954571637752542021149557615814002501262285941302164715509792592309907965473761255176567513575178296664547791745011299614890304639947132962107340437518957359614589019389713111790429782856475032031986915140287080859904801094121472213179476477726224142548545403321571853061422881375850430633217518297986622371721591607716692547487389866549494501146540628433663937900397692656721463853067360965712091807638327166416274888800786925602902284721040317211860820419000422966171196377921337575114959501566049631862947265473642523081770367515906735023507283540567040386743513622224771589150495309844489333096340878076932599397805419341447377441842631298608099888687413260472156951623965864573021631598193195167353812974167729478672422924654366800980676928238280689964004824354037014163149658979409243237896907069779422362508221688957383798623001593776471651228935786015881617557829735233446042815126272037343146531977774160319906655418763979293344195215413418994854447345673831624993419131814809277771038638773431772075456545322077709212019051660962804909263601975988281613323166636528619326686336062735676303544776280350450777235547105859548702790814356240145171806246436267945612753181340783303362542327839449753824372058353114771199260638133467768796959703098339130771098704085913374641442822772634659470474587847787201927715280731767907707157213444730605700733492436931138350493163128404251219256517980694113528013147013047816437885185290928545201165839341965621349143415956258658655705526904965209858033850722426482939728584783163057777560688876446248246857926039535277348030480290058760758251047470916439613626760449256274204208320856611906254543372131535958450687724602901618766795240616342522577195429162991930645537799140373404328752628889639958794757291746426357455254079091451357111369410911939325191076020825202618798531887705842972591677813149699009019211697173727847684726860849003377024242916513005005168323364350389517029893922334517220138128069650117844087451960121228599371623130171144484640903890644954440061986907548516026327505298349187407866808818338510228334508504860825039302133219715518430635455007668282949304137765527939751754613953984683393638304746119966538581538420568533862186725233402830871123282789212507712629463229563989898935821167456270102183564622013496715188190973038119800497340723961036854066431939509790190699639552453005450580685501956730229219139339185680344903982059551002263535361920419947455385938102343955449597783779023742161727111723643435439478221818528624085140066604433258885698670543154706965747458550332323342107301545940516553790686627333799585115625784322988273723198987571415957811196358330059408730681216028764962867446047746491599505497374256269010490377819868359381465741268049256487985561453723478673303904688383436346553794986419270563872931748723320837601123029911367938627089438799362016295154133714248928307220126901475466847653576164773794675200490757155527819653621323926406160136358155907422020203187277605277219005561484255518792530343513984425322341576233610642506390497500865627109535919465897514131034822769306247435363256916078154781811528436679570611086153315044521274739245449454236828860613408414863776700961207151249140430272538607648236341433462351897576645216413767969031495019108575984423919862916421939949072362346468441173940326591840443780513338945257423995082965912285085558215725031071257012668302402929525220118726767562204154205161841634847565169998116141010029960783869092916030288400269104140792886215078424516709087000699282120660418371806535567252532567532861291042487761825829765157959847035622262934860034158722980534989650226291748788202734209222245339856264766914905562842503912757710284027998066365825488926488025456610172967026640765590429099456815065265305371829412703369313785178609040708667114965583434347693385781711386455873678123014587687126603489139095620099393610310291616152881384379099042317473363948045759314931405297634757481193567091101377517210080315590248530906692037671922033229094334676851422144773793937517034436619910403375111735471918550464490263655128162288244625759163330391072253837421821408835086573917715096828874782656995995744906617583441375223970968340800535598491754173818839994469748676265516582765848358845314277568790029095170283529716344562129640435231176006651012412006597558512761785838292041974844236080071930457618932349229279650198751872127267507981255470958904556357921221033346697499235630254947802490114195212382815309114079073860251522742995818072471625916685451333123948049470791191532673430282441860414263639548000448002670496248201792896476697583183271314251702969234889627668440323260927524960357996469256504936818360900323809293459588970695365349406034021665443755890045632882250545255640564482465151875471196218443965825337543885690941130315095261793780029741207665147939425902989695946995565761218656196733786236256125216320862869222103274889218654364802296780705765615144632046927906821207388377814233562823608963208068222468012248261177185896381409183903673672220888321513755600372798394004152970028783076670944474560134556417254370906979396122571429894671543578468788614445812314593571984922528471605049221242470141214780573455105008019086996033027634787081081754501193071412233908663938339529425786905076431006383519834389341596131854347546495569781038293097164651438407007073604112373599843452251610507027056235266012764848308407611830130527932054274628654036036745328651057065874882256981579367897669742205750596834408697350201410206723585020072452256326513410559240190274216248439140359989535394590944070469120914093870012645600162374288021092764579310657922955249887275846101264836999892256959688159205600101655256375678566722796619885782794848855834397518744545512965634434803966420557982936804352202770984294232533022576341807039476994159791594530069752148293366555661567873640053666564165473217043903521329543529169414599041608753201868379370234888689479151071637852902345292440773659495630510074210871426134974595615138498713757047101787957310422969066670214498637464595280824369445789772330048764765241339075920434019634039114732023380715095222010682563427471646024335440051521266932493419673977041595683753555166730273900749729736354964533288869844061196496162773449518273695588220757355176651589855190986665393549481068873206859907540792342402300925900701731960362254756478940647548346647760411463233905651343306844953979070903023460461470961696886885014083470405460742958699138296682468185710318879065287036650832431974404771855678934823089431068287027228097362480939962706074726455399253994428081137369433887294063079261595995462624629707062594845569034711972996409089418059534393251236235508134949004364278527138315912568989295196427287573946914272534366941532361004537304881985517065941217352462589548730167600298865925786628561249665523533829428785425340483083307016537228563559152534784459818313411290019992059813522051173365856407826484942764411376393866924803118364453698589175442647399882284621844900877769776312795722672655562596282542765318300134070922334365779160128093179401718598599933849235495640057099558561134980252499066984233017350358044081168552653117099570899427328709258487894436460050410892266917835258707859512983441729535195378855345737426085902908176515578039059464087350612322611200937310804854852635722825768203416050484662775045003126200800799804925485346941469775164932709504934639382432227188515974054702148289711177792376122578873477188196825462981268685817050740272550263329044976277894423621674119186269439650671515779586756482399391760426017633870454990176143641204692182370764887834196896861181558158736062938603810171215855272668300823834046564758804051380801633638874216371406435495561868964112282140753302655100424104896783528588290243670904887118190909494533144218287661810310073547705498159680772009474696134360928614849417850171807793068108546900094458995279424398139213505586422196483491512639012803832001097738680662877923971801461343244572640097374257007359210031541508936793008169980536520276007277496745840028362405346037263416554259027601834840306811381855105979705664007509426087885735796037324514146786703688098806097164258497595138069309449401515422221943291302173912538355915031003330325111749156969174502714943315155885403922164097229101129035521815762823283182342548326111912800928252561902052630163911477247331485739107775874425387611746578671169414776421441111263583553871361011023267987756410246824032264834641766369806637857681349204530224081972785647198396308781543221166912246415911776732253264335686146186545222681268872684459684424161078540167681420808850280054143613146230821025941737562389942075713627516745731891894562835257044133543758575342698699472547031656613991999682628247270641336222178923903176085428943733935618891651250424404008952719837873864805847268954624388234375178852014395600571048119498842390606136957342315590796703461491434478863604103182350736502778590897578272731305048893989009923913503373250855982655867089242612429473670193907727130706869170926462548423240748550366080136046689511840093668609546325002145852930950000907151058236267293264537382104938724996699339424685516483261134146110680267446637334375340764294026682973865220935701626384648528514903629320199199688285171839536691345222444708045923966028171565515656661113598231122506289058549145097157553900243931535190902107119457300243880176615035270862602537881797519478061013715004489917210022201335013106016391541589578037117792775225978742891917915522417189585361680594741234193398420218745649256443462392531953135103311476394911995072858430658361935369329699289837914941939406085724863968836903265564364216644257607914710869984315733749648835292769328220762947282381537409961545598798259891093717126218283025848112389011968221429457667580718653806506487026133892822994972574530332838963818439447707794022843598834100358385423897354243956475556840952248445541392394100016207693636846776413017819659379971557468541946334893748439129742391433659360410035234377706588867781139498616478747140793263858738624732889645643598774667638479466504074111825658378878454858148962961273998413442726086061872455452360643153710112746809778704464094758280348769758948328241239292960582948619196670918958089833201210318430340128495116203534280144127617285830243559830032042024512072872535581195840149180969253395075778400067465526031446167050827682772223534191102634163157147406123850425845988419907611287258059113935689601431668283176323567325417073420817332230462987992804908514094790368878687894930546955703072619009502076433493359106024545086453628935456862958531315337183868265617862273637169757741830239860065914816164049449650117321313895747062088474802365371031150898427992754426853277974311395143574172219759799359685252285745263796289612691572357986620573408375766873884266405990993505000813375432454635967504844235284874701443545419576258473564216198134073468541117668831186544893776979566517279662326714810338643913751865946730024434500544995399742372328712494834706044063471606325830649829795510109541836235030309453097335834462839476304775645015008507578949548931393944899216125525597701436858943585877526379625597081677643800125436502371412783467926101995585224717220177723700417808419423948725406801556035998390548985723546745642390585850216719031395262944554391316631345308939062046784387785054239390524731362012947691874975191011472315289326772533918146607300089027768963114810902209724520759167297007850580717186381054967973100167870850694207092232908070383263453452038027860990556900134137182368370991949516489600755049341267876436746384902063964019766685592335654639138363185745698147196210841080961884605456039038455343729141446513474940784884423772175154334260306698831768331001133108690421939031080143784334151370924353013677631084913516156422698475074303297167469640666531527035325467112667522460551199581831963763707617991919203579582007595605302346267757943936307463056901080114942714100939136913810725813781357894005599500183542511841721360557275221035268037357265279224173736057511278872181908449006178013889710770822931002797665935838758909395688148560263224393726562472776037890814458837855019702843779362407825052704875816470324581290878395232453237896029841669225489649715606981192186584926770403956481278102179913217416305810554598801300484562997651121241536374515005635070127815926714241342103301566165356024733807843028655257222753049998837015348793008062601809623815161366903341111386538510919367393835229345888322550887064507539473952043968079067086806445096986548801682874343786126453815834280753061845485903798217994599681154419742536344399602902510015888272164745006820704193761584547123183460072629339550548239557137256840232268213012476794522644820910235647752723082081063518899152692889108455571126603965034397896278250016110153235160519655904211844949907789992007329476905868577878720982901352956613978884860509786085957017731298155314951681467176959760994210036183559138777817698458758104466283998806006162298486169353373865787735983361613384133853684211978938900185295691967804554482858483701170967212535338758621582310133103877668272115726949518179589754693992642197915523385766231676275475703546994148929041301863861194391962838870543677743224276809132365449485366768000001065262485473055861598999140170769838548318875014293890899506854530765116803337322265175662207526951791442252808165171667766727930354851542040238174608923283917032754257508676551178593950027933895920576682789677644531840404185540104351348389531201326378369283580827193783126549617459970567450718332065034556644034490453627560011250184335607361222765949278393706478426456763388188075656121689605041611390390639601620221536849410926053876887148379895599991120991646464411918568277004574243434021672276445589330127781586869525069499364610175685060167145354315814801054588605645501332037586454858403240298717093480910556211671546848477803944756979804263180991756422809873998766973237695737015808068229045992123661689025962730430679316531149401764737693873514093361833216142802149763399189835484875625298752423873077559555955465196394401821840998412489826236737714672260616336432964063357281070788758164043814850188411431885988276944901193212968271588841338694346828590066640806314077757725705630729400492940302420498416565479736705485580445865720227637840466823379852827105784319753541795011347273625774080213476826045022851579795797647467022840999561601569108903845824502679265942055503958792298185264800706837650418365620945554346135134152570065974881916341359556719649654032187271602648593049039787489589066127250794828276938953521753621850796297785146188432719223223810158744450528665238022532843891375273845892384422535472653098171578447834215822327020690287232330053862163479885094695472004795231120150432932266282727632177908840087861480221475376578105819702226309717495072127248479478169572961423658595782090830733233560348465318730293026659645013718375428897557971449924654038681799213893469244741985097334626793321072686870768062639919361965044099542167627840914669856925715074315740793805323925239477557441591845821562518192155233709607483329234921034514626437449805596103307994145347784574699992128599999399612281615219314888769388022281083001986016549416542616968586788372609587745676182507275992950893180521872924610867639958916145855058397274209809097817293239301067663868240401113040247007350857828724627134946368531815469690466968693925472519413992914652423857762550047485295476814795467007050347999588867695016124972282040303995463278830695976249361510102436555352230690612949388599015734661023712235478911292547696176005047974928060721268039226911027772261025441492215765045081206771735712027180242968106203776578837166909109418074487814049075517820385653909910477594141321543284406250301802757169650820964273484146957263978842560084531214065935809041271135920041975985136254796160632288736181367373244506079244117639975974619383584574915988097667447093006546342423460634237474666080431701260052055928493695941434081468529815053947178900451835755154125223590590687264878635752541911288877371766374860276606349603536794702692322971868327717393236192007774522126247518698334951510198642698878471719396649769070825217423365662725928440620430214113719922785269984698847702323823840055655517889087661360130477098438611687052310553149162517283732728676007248172987637569816335415074608838663640693470437206688651275688266149730788657015685016918647488541679154596507234287730699853713904300266530783987763850323818215535597323530686043010675760838908627049841888595138091030423595782495143988590113185835840667472370297149785084145853085781339156270760356390763947311455495832266945702494139831634332378975955680856836297253867913275055542524491943589128405045226953812179131914513500993846311774017971512283785460116035955402864405902496466930707769055481028850208085800878115773817191741776017330738554758006056014337743299012728677253043182519757916792969965041460706645712588834697979642931622965520168797300035646304579308840327480771811555330909887025505207680463034608658165394876951960044084820659673794731680864156456505300498816164905788311543454850526600698230931577765003780704661264706021457505793270962047825615247145918965223608396645624105195510522357239739512881816405978591427914816542632892004281609136937773722299983327082082969955737727375667615527113922588055201898876201141680054687365580633471603734291703907986396522961312801782679717289822936070288069087768660593252746378405397691848082041021944719713869256084162451123980620113184541244782050110798760717155683154078865439041210873032402010685341947230476666721749869868547076781205124736792479193150856444775379853799732234456122785843296846647513336573692387201464723679427870042503255589926884349592876124007558756946413705625140011797133166207153715436006876477318675587148783989081074295309410605969443158477539700943988394914432353668539209946879645066533985738887866147629443414010498889931600512076781035886116602029611936396821349607501116498327856353161451684576956871090029997698412632665023477167286573785790857466460772283415403114415294188047825438761770790430001566986776795760909966936075594965152736349811896413043311662774712338817406037317439705406703109676765748695358789670031925866259410510533584384656023391796749267844763708474978333655579007384191473198862713525954625181604342253729962863267496824058060296421146386436864224724887283434170441573482481833301640566959668866769563491416328426414974533349999480002669987588815935073578151958899005395120853510357261373640343675347141048360175464883004078464167452167371904831096767113443494819262681110739948250607394950735031690197318521195526356325843390998224986240670310768318446607291248747540316179699411397387765899868554170318847788675929026070043212666179192235209382278788809886335991160819235355570464634911320859189796132791319756490976000139962344455350143464268604644958624769094347048293294140411146540923988344435159133201077394411184074107684981066347241048239358274019449356651610884631256785297769734684303061462418035852933159734583038455410337010916767763742762102137013548544509263071901147318485749233181672072137279355679528443925481560913728128406333039373562420016045664557414588166052166608738748047243391212955877763906969037078828527753894052460758496231574369171131761347838827194168606625721036851321566478001476752310393578606896111259960281839309548709059073861351914591819510297327875571049729011487171897180046961697770017913919613791417162707018958469214343696762927459109940060084983568425201915593703701011049747339493877885989417433031785348707603221982970579751191440510994235883034546353492349826883624043327267415540301619505680654180939409982020609994140216890900708213307230896621197755306659188141191577836272927461561857103721724710095214236964830864102592887457999322374955191221951903424452307535133806856807354464995127203174487195403976107308060269906258076020292731455252078079914184290638844373499681458273372072663917670201183004648190002413083508846584152148991276106513741539435657211390328574918769094413702090517031487773461652879848235338297260136110984514841823808120540996125274580881099486972216128524897425555516076371675054896173016809613803811914361143992106380050832140987604599309324851025168294467260666138151745712559754953580239983146982203613380828499356705575524712902745397762140493182014658008021566536067765508783804304134310591804606800834591136640834887408005741272586704792258319127415739080914383138456424150940849133918096840251163991936853225557338966953749026620923261318855891580832455571948453875628786128859004106006073746501402627824027346962528217174941582331749239683530136178653673760642166778137739951006589528877427662636841830680190804609849809469763667335662282915132352788806157768278159588669180238940333076441912403412022316368577860357276941541778826435238131905028087018575047046312933353757285386605888904583111450773942935201994321971171642235005644042979892081594307167019857469273848653833436145794634175922573898588001698014757420542995801242958105456510831046297282937584161162532562516572498078492099897990620035936509934721582965174135798491047111660791587436986541222348341887722929446335178653856731962559852026072947674072616767145573649812105677716893484917660771705277187601199908144113058645577910525684304811440261938402322470939249802933550731845890355397133088446174107959162511714864874468611247605428673436709046678468670274091881014249711149657817724279347070216688295610877794405048437528443375108828264771978540006509704033021862556147332117771174413350281608840351781452541964320309576018694649088681545285621346988355444560249556668436602922195124830910605377201980218310103270417838665447181260397190688462370857518080035327047185659499476124248110999288679158969049563947624608424065930948621507690314987020673533848349550836366017848771060809804269247132410009464014373603265645184566792456669551001502298330798496079949882497061723674493612262229617908143114146609412341593593095854079139087208322733549572080757165171876599449856937956238755516175754380917805280294642004472153962807463602113294255916002570735628126387331060058910652457080244749375431841494014821199962764531068006631183823761639663180931444671298615527598201451410275600689297502463040173514891945763607893528555053173314164570504996443890936308438744847839616840518452732884032345202470568516465716477139323775517294795126132398229602394548579754586517458787713318138752959809412174227300352296508089177705068259248822322154938048371454781647213976820963320508305647920482085920475499857320388876391601995240918938945576768749730856955958010659526503036266159750662225084067428898265907510637563569968211510949669744580547288693631020367823250182323708459790111548472087618212477813266330412076216587312970811230758159821248639807212407868878114501655825136178903070860870198975889807456643955157415363193191981070575336633738038272152798849350397480015890519420879711308051233933221903466249917169150948541401871060354603794643379005890957721180804465743962806186717861017156740967662080295766577051291209907944304632892947306159510430902221439371849560634056189342513057268291465783293340524635028929175470872564842600349629611654138230077313327298305001602567240141851520418907011542885799208121984493156999059182011819733500126187728036812481995877070207532406361259313438595542547781961142935163561223496661522614735399674051584998603552953329245752388810136202347624669055816438967863097627365504724348643071218494373485300606387644566272186661701238127715621379746149861328744117714552444708997144522885662942440230184791205478498574521634696448973892062401943518310088283480249249085403077863875165911302873958787098100772718271874529013972836614842142871705531796543076504534324600536361472618180969976933486264077435199928686323835088756683595097265574815431940195576850437248001020413749831872259677387154958399718444907279141965845930083942637020875635398216962055324803212267498911402678528599673405242031091797899905718821949391320753431707980023736590985375520238911643467185582906853711897952626234492483392496342449714656846591248918556629589329909035239233333647435203707701010843880032907598342170185542283861617210417603011645918780539367447472059985023582891833692922337323999480437108419659473162654825748099482509991833006976569367159689364493348864744213500840700660883597235039532340179582557036016936990988671132109798897070517280755855191269930673099250704070245568507786790694766126298082251633136399521170984528092630375922426742575599892892783704744452189363203489415521044597261883800300677617931381399162058062701651024458869247649246891924612125310275731390840470007143561362316992371694848132554200914530410371354532966206392105479824392125172540132314902740585892063217589494345489068463993137570910346332714153162232805522972979538018801628590735729554162788676498274186164218789885741071649069191851162815285486794173638906653885764229158342500673612453849160674137340173572779956341043326883569507814931378007362354180070619180267328551191942676091221035987469241172837493126163395001239599240508454375698507957046222664619000103500490183034153545842833764378111988556318777792537201166718539541835984438305203762819440761594106820716970302285152250573126093046898423433152732131361216582808075212631547730604423774753505952287174402666389148817173086436111389069420279088143119448799417154042103412190847094080254023932942945493878640230512927119097513536000921971105412096683111516328705423028470073120658032626417116165957613272351566662536672718998534199895236884830999302757419916463841427077988708874229277053891227172486322028898425125287217826030500994510824783572905691988555467886079462805371227042466543192145281760741482403827835829719301017888345674167811398954750448339314689630763396657226727043393216745421824557062524797219978668542798977992339579057581890622525473582205236424850783407110144980478726691990186438822932305382318559732869780922253529591017341407334884761005564018242392192695062083183814546983923664613639891012102177095976704908305081854704194664371312299692358895384930136356576186106062228705599423371631021278457446463989738188566746260879482018647487672727222062676465338099801966883680994159075776852639865146253336312450536402610569605513183813174261184420189088853196356986962795036738424313011331753305329802016688817481342988681585577810343231753064784983210629718425184385534427620128234570716988530518326179641178579608888150329602290705614476220915094739035946646916235396809201394578175891088931992112260073928149169481615273842736264298098234063200244024495894456129167049508235812487391799648641133480324757775219708932772262349486015046652681439877051615317026696929704928316285504212898146706195331970269507214378230476875280287354126166391708245925170010714180854800636923259462019002278087409859771921805158532147392653251559035410209284665925299914353791825314545290598415817637058927906909896911164381187809435371521332261443625314490127454772695739393481546916311624928873574718824071503995009446731954316193855485207665738825139639163576723151005556037263394867208207808653734942440115799667507360711159351331959197120948964717553024531364770942094635696982226673775209945168450643623824211853534887989395673187806606107885440005508276570305587448541805778891719207881423351138662929667179643468760077047999537883387870348718021842437342112273940255717690819603092018240188427057046092622564178375265263358324240661253311529423457965569502506810018310900411245379015332966156970522379210325706937051090830789479999004999395322153622748476603613677697978567386584670936679588583788795625946464891376652199588286933801836011932368578558558195556042156250883650203322024513762158204618106705195330653060606501054887167245377942831338871631395596905832083416898476065607118347136218123246227258841990286142087284956879639325464285343075301105285713829643709990356948885285190402956047346131138263878897551788560424998748316382804046848618938189590542039889872650697620201995548412650005394428203930127481638158530396439925470201672759328574366661644110962566337305409219519675148328734808957477775278344221091073111351828046036347198185655572957144747682552857863349342858423118749440003229690697758315903858039353521358860079600342097547392296733310649395601812237812854584317605561733861126734780745850676063048229409653041118306671081893031108871728167519579675347188537229309616143204006381322465841111157758358581135018569047815368938137718472814751998350504781297718599084707621974605887423256995828892535041937958260616211842368768511418316068315867994601652057740529423053601780313357263267054790338401257305912339601880137825421927094767337191987287385248057421248921183470876629667207272325650565129333126059505777727542471241648312832982072361750574673870128209575544305968395555686861188397135522084452852640081252027665557677495969626612604565245684086139238265768583384698499778726706555191854468698469478495734622606294219624557085371272776523098955450193037732166649182578154677292005212667143463209637891852323215018976126034373684067194193037746880999296877582441047878123266253181845960453853543839114496775312864260925211537673258866722604042523491087026958099647595805794663973419064010036361904042033113579336542426303561457009011244800890020801478056603710154122328891465722393145076071670643556827437743965789067972687438473076346451677562103098604092717090951280863090297385044527182892749689212106670081648583395537735919136950153162018908887484210798706899114804669270650940762046502772528650728905328548561433160812693005693785417861096969202538865034577183176686885923681488475276498468821949739729707737187188400414323127636504814531122850990020742409255859252926103021067368154347015252348786351643976235860419194129697690405264832347009911154242601273438022089331096686367898694977994001260164227609260823493041180643829138347354679725399262338791582998486459271734059225620749105308531537182911681637219395188700957788181586850464507699343940987433514431626330317247747486897918209239480833143970840673084079589358108966564775859905563769525232653614424780230826811831037735887089240613031336477371011628214614661679404090518615260360092521947218890918107335871964142144478654899528582343947050079830388538860831035719306002771194558021911942899922722353458707566246926177663178855144350218287026685610665003531050216318206017609217984684936863161293727951873078972637353717150256378733579771808184878458866504335824377004147710414934927438457587107159731559439426412570270965125108115548247939403597681188117282472158250109496096625393395380922195591918188552678062149923172763163218339896938075616855911752998450132067129392404144593862398809381240452191484831646210147389182510109096773869066404158973610476436500068077105656718486281496371118832192445663945814491486165500495676982690308911185687986929470513524816091743243015383684707292898982846022237301452655679898627767968091469798378268764311598832109043715611299766521539635464420869197567370005738764978437686287681792497469438427465256316323005551304174227341646455127812784577772457520386543754282825671412885834544435132562054464241011037955464190581168623059644769587054072141985212106734332410756767575818456990693046047522770167005684543969234041711089888993416350585157887353430815520811772071880379104046983069578685473937656433631979786803671873079693924236321448450354776315670255390065423117920153464977929066241508328858395290542637687668968805033317227800185885069736232403894700471897619347344308437443759925034178807972235859134245813144049847701732361694719765715353197754997162785663119046912609182591249890367654176979903623755286526375733763526969344354400473067198868901968147428767790866979688522501636949856730217523132529265375896415171479559538784278499866456302878831962099830494519874396369070682762657485810439112232618794059941554063270131989895703761105323606298674803779153767511583043208498720920280929752649812569163425000522908872646925284666104665392171482080130502298052637836426959733707053922789153510568883938113249757071331029504430346715989448786847116438328050692507766274500122003526203709466023414648998390252588830148678162196775194583167718762757200505439794412459900771152051546199305098386982542846407255540927403132571632640792934183342147090412542533523248021932277075355546795871638358750181593387174236061551171013123525633485820365146141870049205704372018261733194715700867578539336078622739558185797587258744102542077105475361294047460100094095444959662881486915903899071865980563617137692227290764197755177720104276496949611056220592502420217704269622154958726453989227697660310524980855759471631075870133208861463266412591148633881220284440694169488261529577625325019870359870674380469821942056381255833436421949232275937221289056420943082352544084110864545369404969271494003319782861318186188811118408257865928757426384450059944229568586460481033015388911499486935436030221810943466764000022362550573631294626296096198760564259963946138692330837196265954739234624134597795748524647837980795693198650815977675350553918991151335252298736112779182748542008689539658359421963331502869561192012298889887006079992795411188269023078913107603617634779489432032102773359416908650071932804017163840644987871753756781185321328408216571107549528294974936214608215583205687232185574065161096274874375098092230211609982633033915469494644491004515280925089745074896760324090768983652940657920198315265410658136823791984090645712468948470209357761193139980246813405200394781949866202624008902150166163813538381515037735022966074627952910384068685569070157516624192987244482719429331004854824454580718897633003232525821581280327467962002814762431828622171054352898348208273451680186131719593324711074662228508710666117703465352839577625997744672185715816126411143271794347885990892808486694914139097716736900277758502686646540565950394867841110790116104008572744562938425494167594605487117235946429105850909950214958793112196135908315882620682332156153086833730838173279328196983875087083483880463884784418840031847126974543709373298362402875197920802321878744882872843727378017827008058782410749357514889978911739746129320351081432703251409030487462262942344327571260086642508333187688650756429271605525289544921537651751492196367181049435317858383453865255656640657251363575064353236508936790431702597878177190314867963840828810209461490079715137717099061954969640070867667102330048672631475510537231757114322317411411680622864206388906210192355223546711662137499693269321737043105987225039456574924616978260970253359475020913836673772894438696400028110344026084712899000746807764844088711341352503367877316797709372778682166117865344231732264637847697875144332095340001650692130546476890985050203015044880834261845208730530973189492916425322933612431514306578264070283898409841602950309241897120971601649265613413433422298827909921786042679812457285345801338260995877178113102167340256562744007296834066198480676615805021691833723680399027931606420436812079900316264449146190219458229690992122788553948783538305646864881655562294315673128274390826450611628942803501661336697824051770155219626522725455850738640585299830379180350432876703809252167907571204061237596327685674845079151147313440001832570344920909712435809447900462494313455028900680648704293534037436032625820535790118395649089354345101342969617545249573960621490288728932792520696535386396443225388327522499605986974759882329916263545973324445163755334377492928990581175786355555626937426910947117002165411718219750519831787137106051063795558588905568852887989084750915764639074693619881507814685262133252473837651192990156109189777922008705793396463827490680698769168197492365624226087154176100430608904377976678519661891404144925270480881971498801542057787006521594009289777601330756847966992955433656139847738060394368895887646054983871478968482805384701730871117761159663505039979343869339119789887109156541709133082607647406305711411098839388095481437828474528838368079418884342666222070438722887413947801017721392281911992365405516395893474263953824829609036900288359327745855060801317988407162446563997948275783650195514221551339281978226984278638391679715091262410548725700924070045488485692950448110738087996547481568913935380943474556972128919827177020766613602489581468119133614121258783895577357194986317210844398901423948496659251731388171602663261931065366535041473070804414939169363262373767777095850313255990095762731957308648042467701212327020533742667053142448208168130306397378736642483672539837487690980602182785786216512738563513290148903509883270617258932575363993979055729175160097615459044771692265806315111028038436017374742152476085152099016158582312571590733421736576267142390478279587281505095633092802668458937649649770232973641319060982740633531089792464242134583740901169391964250459128813403498810635400887596820054408364386516617880557608956896727531538081942077332597917278437625661184319891025007491829086475149794003160703845549465385946027452447466812314687943441610993338908992638411847425257044572517459325738989565185716575961481266020310797628254165590506042479114016957900338356574869252800743025623419498286467914476322774005529460903940177536335655471931000175430047504719144899841040015867946179241610016454716551337074073950260442769538553834397550548871099785205401175169747581344926079433689543783221172450687344231989878844128542064742809735625807066983106979935260693392135685881391214807354728463227784908087002467776303605551232386656295178853719673034634701222939581606792509153217489030840886516061119011498443412350124646928028805996134283511884715449771278473361766285062169778717743824362565711779450064477718370221999106695021656757644044997940765037999954845002710665987813603802314126836905783190460792765297277694043613023051787080546511542469395265127101052927070306673024447125973939950514628404767431363739978259184541176413327906460636584152927019030276017339474866960348694976541752429306040727005059039503148522921392575594845078867977925253931765156416197168443524369794447355964260633391055126826061595726217036698506473281266724521989060549880280782881429796336696744124805982192146339565745722102298677599746738126069367069134081559412016115960190237753525556300606247983261249881288192937343476862689219239777833910733106588256813777172328315329082525092733047850724977139448333892552081175608452966590553940965568541706001179857293813998258319293679100391844099286575605993598910002969864460974714718470101531283762631146774209145574041815908800064943237855839308530828305476076799524357391631221886057549673832243195650655460852881201902363644712703748634421727257879503428486312944916318475347531435041392096108796057730987201352484075057637199253650470908582513936863463863368042891767107602111159828875539940120076013947033661793715396306139863655492213741597905119083588290097656647300733879314678913181465109316761575821351424860442292445304113160652700974330088499034675405518640677342603583409608605533747362760935658853109760994238347382222087292464497684560579562516765574088410321731345627735856052358236389532038534024842273371639123973215995440828421666636023296545694703577184873442034227706653837387506169212768015766181095420097708363604361110592409117889540338021426523948929686439808926114635414571535194342850721353453018315875628275733898268898523557799295727645229391567477566676051087887648453493636068278050564622813598885879259940946446041705204470046315137975431737187756039815962647501410906658866162180038266989961965580587208639721176995219466789857011798332440601811575658074284182910615193917630059194314434605154047710570054339000182453117733718955857603607182860506356479979004139761808955363669603162193113250223851791672055180659263518036251214575926238369348222665895576994660491938112486609099798128571823494006615552196112207203092277646200999315244273589488710576623894693889446495093960330454340842102462401048723328750081749179875543879387381439894238011762700837196053094383940063756116458560943129517597713935396074322792489221267045808183313764165818269562105872892447740035947009268662659651422050630078592002488291860839743732353849083964326147000532423540647042089499210250404726781059083644007466380020870126664209457181702946752278540074508552377720890581683918446592829417018288233014971554235235911774818628592967605048203864343108779562892925405638946621948268711042828163893975711757786915430165058602965217459581988878680408110328432739867198621306205559855266036405046282152306154594474489908839081999738747452969810776201487134000122535522246695409315213115337915798026979555710508507473874750758068765376445782524432638046143042889235934852961058269382103498000405248407084403561167817170512813378805705643450616119330424440798260377951198548694559152051960093041271007277849301555038895360338261929343797081874320949914159593396368110627557295278004254863060054523839151068998913578820019411786535682149118528207852130125518518493711503422159542244511900207393539627400208110465530207932867254740543652717595893500716336076321614725815407642053020045340183572338292661915308354095120226329165054426123619197051613839357326693760156914429944943744856809775696303129588719161129294681884936338647392747601226964158848900965717086160598147204467428664208765334799858222090619802173211614230419477754990738738567941189824660913091691772274207233367635032678340586301930193242996397204445179288122854478211953530898910125342975524727635730226281382091807439748671453590778633530160821559911314144205091447293535022230817193663509346865858656314855575862447818620108711889760652969899269328178705576435143382060141077329261063431525337182243385263520217735440715281898137698755157574546939727150488469793619500477720970561793913828989845327426227288647108883270173723258818244658436249580592560338105215606206155713299156084892064340303395262263451454283678698288074251422567451806184149564686111635404971897682154227722479474033571527436819409892050113653400123846714296551867344153741615042563256713430247655125219218035780169240326699541746087592409207004669340396510178134857835694440760470232540755557764728450751826890418293966113310160131119077398632462778219023650660374041606724962490137433217246454097412995570529142438208076098364823465973886691349919784013108015581343979194852830436739012482082444814128095443773898320059864909159505322857914576884962578665885999179867520554558099004556461178755249370124553217170194282884617402736649978475508294228020232901221630102309772151569446427909802190826689868834263071609207914085197695235553488657743425277531197247430873043619511396119080030255878387644206085044730631299277888942729189727169890575925244679660189707482960949190648764693702750773866432391919042254290235318923377293166736086996228032557185308919284403805071030064776847863243191000223929785255372375566213644740096760539439838235764606992465260089090624105904215453927904411529580345334500256244101006359530039598864466169595626351878060688513723462707997327233134693971456285542615467650632465676620279245208581347717608521691340946520307673391841147504140168924121319826881568664561485380287539331160232292555618941042995335640095786495340935115266454024418775949316930560448686420862757201172319526405023099774567647838488973464317215980626787671838005247696884084989185086149003432403476742686245952395890358582135006450998178244636087317754378859677672919526111213859194725451400301180503437875277664402762618941017576872680428176623860680477885242887430259145247073950546525135339459598789619778911041890292943818567205070964606263541732944649576612651953495701860015412623962286413897796733329070567376962156498184506842263690367849555970026079867996261019039331263768556968767029295371162528005543100786408728939225714512481135778627664902425161990277471090335933309304948380597856628844787441469841499067123764789582263294904679812089984857163571087831191848630254501620929805829208334813638405421720056121989353669371336733392464416125223196943471206417375491216357008573694397305979709719726666642267431117762176403068681310351899112271339724036887000996862922546465006385288620393800504778276912835603372548255793912985251506829969107754257647488325341412132800626717094009098223529657957997803018282428490221470748111124018607613415150387569830918652780658896682362523937845272634530420418802508442363190383318384550522367992357752929106925043261446950109861088899914658551881873582528164302520939285258077969737620845637482114433988162710031703151334402309526351929588680690821355853680161000213740851154484912685841268695899174149133820578492800698255195740201818105641297250836070356851055331787840829000041552511865779453963317538532092149720526607831260281961164858098684587525129997404092797683176639914655386108937587952214971731728131517932904431121815871023518740757222100123768721944747209349312324107065080618562372526732540733324875754482967573450019321902199119960797989373383673242576103938985349278777473980508080015544764061053522202325409443567718794565430406735896491017610775948364540823486130254718476485189575836674399791508512858020607820554462991723202028222914886959399729974297471155371858924238493855858595407438104882624648788053304271463011941589896328792678327322456103852197011130466587100500083285177311776489735230926661234588873102883515626446023671996644554727608310118788389151149340939344750073025855814756190881398752357812331342279866503522725367171230756861045004548970360079569827626392344107146584895780241408158405229536937499710665594894459246286619963556350652623405339439142111271810691052290024657423604130093691889255865784668461215679554256605416005071276641766056874274200329577160643448606201239821698271723197826816628249938714995449137302051843669076723577400053932662622760323659751718925901801104290384274185507894887438832703063283279963007200698012244365116394086922220745320244624121155804354542064215121585056896157356414313068883443185280853975927734433655384188340303517822946253702015782157373265523185763554098954033236382319219892171177449469403678296185920803403867575834111518824177439145077366384071880489358256868542011645031357633355509440319236720348651010561049872726472131986543435450409131859513145181276437310438972507004981987052176272494065214619959232142314439776546708351714749367986186552791715824080651063799500184295938799158350171580759883784962257398512129810326379376218322456594236685376799113140108043139732335449090824910499143325843298821033984698141715756010829706583065211347076803680695322971990599904451209087275776225351040902392888779424630483280319132710495478599180196967835321464441189260631526618167443193550817081875477050802654025294109218264858213857526688155584113198560022135158887210365696087515063187533002942118682221893775546027227291290504292259787710667873840000616772154638441292371193521828499824350920891801685572798156421858191197490985730570332667646460728757430565372602768982373259745084479649545648030771598153955827779139373601717422996027353102768719449444917939785144631597314435351850491413941557329382048542123508173912549749819308714396615132942045919380106231421774199184060180347949887691051557905554806953878540066453375981862846419905220452803306263695626490910827627115903856995051246529996062855443838330327638599800792922846659503551211245284087516229060262011857775313747949362055496401073001348853150735487353905602908933526400713274732621960311773433943673385759124508149335736911664541281788171454023054750667136518258284898099512139193995633241336556777098003081910272040997148687418134667006094051021462690280449159646545330107754695413088714165312544813061192407821188690056027781824235022696189344352547633573536485619363254417756613981703930632872166905722259745209192917262199844409646158269456380239502837121686446561785235565164127712826918688615572716201474934052276946595712198314943381622114006936307430444173284786101777743837977037231795255434107223445512555589998646183876764903972461167959018100035098928641204195163551108763204267612979826529425882951141275841262732790798807559751851576841264742209479721843309352972665210015662514552994745127631550917636730259462132930190402837954246323258550301096706922720227074863419005438302650681214142135057154175057508639907673946335146209082888934938376439399256900604067311422093312195936202982972351163259386772241477911629572780752395056251581603133359382311500518626890530658368129988108663263271980611271548858798093487912913707498230575929091862939195014721197586067270092547718025750337730799397134539532646195269996596385654917590458333585799102012713204583903200853878881633637685182083727885131175227769609787962142372162545214591281831798216044111311671406914827170981015457781939202311563871950805024679725792497605772625913328559726371211201905720771409148645074094926718035815157571514050397610963846755569298970383547314100223802583468767350129775413279532060971154506484212185936490997917766874774481882870632315515865032898164228288232746866106592732197907162384642153489852476216789050260998045266483929542357287343977680495774091449538391575565485459058976495198513801007958010783759945775299196700547602252552034453988712538780171960718164078124847847257912407824544361682345239570689514272269750431873633263011103053423335821609333191218806608268341428910415173247216053355849993224548730778822905252324234861531520976938461042582849714963475341837562003014915703279685301868631572488401526639835689563634657435321783493199825542117308467745297085839507616458229630324424328237737450517028560698067889521768198156710781633405266759539424926280756968326107495323390536223090807081455919837355377748742029039018142937311529334644468151212945097596534306284215319445727118614900017650558177095302468875263250119705209476159416768727784472000192789137251841622857783792284439084301181121496366424659033634194540657183544771912446621259392656620306888520055599121235363718226922531781458792593750441448933981608657900876165024635197045828895481793756681046474614105142498870252139936870509372305447734112641354892806841059107716677821238332810262185587751312721179344448201440425745083063944738363793906283008973306241380614589414227694747931665717623182472168350678076487573420491557628217583972975134478990696589532548940335615613167403276472469212505759116251529654568544633498114317670257295661844775487469378464233737238981920662048511894378868224807279352022501796545343757274163910791972952950812942922205347717304184477915673991738418311710362524395716152714669005814700002633010452643547865903290733205468338872078735444762647925297690170912007874183736735087713376977683496344252419949951388315074877537433849458259765560996555954318040920178497184685497370696212088524377013853757681416632722412634423982152941645378000492507262765150789085071265997036708726692764308377229685985169122305037462744310852934305273078865283977335246017463527703205938179125396915621063637625882937571373840754406468964783100704580613446731271591194608435935825987782835266531151065041623295329047772174083559349723758552138048305090009646676088301540612824308740645594431853413755220166305812111033453120745086824339432159043594430312431227471385842030390106070940315235556172767994160020393975099897629335325855575624808996691829864222677502360193257974726742578211119734709402357457222271212526852384295874273501563660093188045493338989741571490544182559738080871565281430102670460284316819230392535297795765862414392701549740879273131051636119137577008929564823323648298263024607975875767745377160102490804624301856524161756655600160859121534556267602192689982855377872583145144082654583484409478463178777374794653580169960779405568701192328608041130904629350871827125934668712766694873899824598527786499569165464029458935064964335809824765965165142090986755203808309203230487342703468288751604071546653834619611223013759451579252696743642531927390036038608236450762698827497618723575476762889950752114804852527950845033958570838130476937881321123674281319487950228066320170022460331989671970649163741175854851878484012054844672588851401562725019821719066960812627785485964818369621410721714214986361918774754509650308957099470934337856981674465828267911940611956037845397855839240761276344105766751024307559814552786167815949657062559755074306521085301597908073343736079432866757890533483669555486803913433720156498834220893399971641479746938696905480089193067138057171505857307148815649920714086758259602876056459782423770242469805328056632787041926768467116266879463486950464507420219373945259262668613552940624781361206202636498199999498405143868285258956342264328707663299304891723400725471764188685351372332667877921738347541480022803392997357936152412755829569276837231234798989446274330454566790062032420516396282588443085438307201495672106460533238537203143242112607424485845094580494081820927639140008540422023556260218564348994145439950410980591817948882628052066441086319001688568155169229486203010738897181007709290590480749092427141018933542818429995988169660993836961644381528877214085268088757488293258735809905670755817017949161906114001908553744882726200936685604475596557476485674008177381703307380305476973609786543859382187220583902344443508867499866506040645874346005331827436296177862518081893144363251205107094690813586440519229512932450078833398788429339342435126343365204385812912834345297308652909783300671261798130316794385535726296998740359570458452230856390098913179475948752126397078375944861139451960286751210561638976008880092746115860800207803341591451797073036835196977766076373785333012024120112046988609209339085365773222392412449051532780950955866459477634482269986074813297302630975028812103517723124465095349653693090018637764094094349837313251321862080214809922685502948454661814715557444709669530177690434272031892770604717784527939160472281534379803539679861424370956683221491465438014593829277393396032754048009552231816667380357183932757077142046723838624617803976292377131209580789363841447929802588065522129262093623930637313496640186619510811583471173312025805866727639992763579078063818813069156366274125431259589936119647626101405563503399523140323113819656236327198961837254845333702062563464223952766943568376761368711962921818754576081617053031590728828700712313666308722754918661395773730546065997437810987649802414011242142773668082751390959313404155826266789510846776118665957660165998178089414985754976284387856100263796543178313634025135814161151902096499133548733131115022700681930135929595971640197196053625033558479980963488718039111612813595968565478868325856437896173159762002419621552896297904819822199462269487137462444729093456470028537694958859591606789282491054412515996300781368367490209374915732896270028656829344431342347351239298259166739503425995868970697267332582735903121288746660451461487850346142827765991608090398652575717263081833494441820193533385071292345774375579344062178711330063106003324053991693682603746176638565758877580201229366353270267100681261825172914608202541892885935244491070138206211553827793565296914576502048643282865557934707209634807372692141186895467322767751335690190153723669036865389161291688887876407525493494249733427181178892759931596719354758988097924525262363659036320070854440784544797348291802082044926670634420437555325050527522833778887040804033531923407685630109347772125639088640413101073817853338316038135280828119040832564401842053746792992622037698718018061122624490909242641985820861751177113789051609140381575003366424156095216328197122335023167422600567941281406217219641842705784328959802882335059828208196666249035857789940333152274817776952843681630088531769694783690580671064828083598046698841098135158654906933319522394363287923990534810987830274500172065433699066117784554364687723631844464768069142828004551074686645392805399409108754939166095731619715033166968309929466349142798780842257220697148875580637480308862995118473187124777291910070227588893486939456289515802965372150409603107761289831263589964893410247036036645058687287589051406841238124247386385427908282733827973326885504935874303160274749063129572349742611221517417153133618622410913869500688835898962349276317316478340077460886655598733382113829928776911495492184192087771606068472874673681886167507221017261103830671787856694812948785048943063086169948798703160515884108282351274153538513365895332948629494495061868514779105804696039069372662670386512905201137810858616188886947957607413585534585151768051973334433495230120395770739623771316030242887200537320998253008977618973129817881944671731160647231476248457551928732782825127182446807824215216469567819294098238926284943760248852279003620219386696482215628093605373178040863727268426696421929946819214908701707533361094791381804063287387593848269535583077395761447997270003472880182785281389503217986345216111066608839314053226944905455527867894417579202440021450780192099804461382547805858048442416404775031536054906591430078158372430123137511562284015838644270890718284816757527123846782459534334449622010096071051370608461801187543120725491334994247617115633321408934609156561550600317384218701570226103101916603887064661438897736318780940711527528174689576401581047016965247557740891644568677717158500583269943401677202156767724068128366565264122982439465133197359199709403275938502669557470231813203243716420586141033606524536939160050644953060161267822648942437397166717661231048975031885732165554988342121802846912529086101485527815277625623750456375769497734336846015607727035509629049392487088406281067943622418704747008368842671022558302403599841645951122485272633632645114017395248086194635840783753556885622317115520947223065437092606797351000565549381224575483728545711797393615756167641692895805257297522338558611388322171107362265816218842443178857488798109026653793426664216990914056536432249301334867988154886628665052346997235574738424830590423677143278792316422403877764330192600192284778313837632536121025336935812624086866699738275977365682227907215832478888642369346396164363308730139814211430306008730666164803678984091335926293402304324974926887831643602681011309570716141912830686577323532639653677390317661361315965553584999398600565155921936759977717933019744688148371103206503693192894521402650915465184309936553493337183425298433679915939417466223900389527673813330617747629574943868716978453767219493506590875711917720875477107189937960894774512654757501871194870738736785890200617373321075693302216320628432065671192096950585761173961632326217708945426214609858410237813215817727602222738133495410481003073275107799948991977963883530734443457532975914263768405442264784216063122769646967156473999043715903323906560726644116438605404838847161912109008701019130726071044114143241976796828547885524779476481802959736049439700479596040292746299203572099761950140348315380947714601056333446998820822120587281510729182971211917876424880354672316916541852256729234429187128163232596965413548589577133208339911288775917226115273379010341362085614577992398778325083550730199818459025958355989260553299673770491722454935329683300002230181517226575787524058832249085821280089747909326100762578770428656006996176212176845478996440705066241710213327486796237430229155358200780141165348065647488230615003392068983794766255036549822805329662862117930628430170492402301985719978948836897183043805182174419147660429752437251683435411217038631379411422095295885798060152938752753799030938871683572095760715221900279379292786303637268765822681241993384808166021603722154710143007377537792699069587121289288019052031601285861825494413353820784883465311632650407642428390870121015194231961652268422003711230464300673442064747718021353070124098860353399152667923871101706221865883573781210935179775604425634694999787251125440854522274810914874307259869602040275941178942581281882159952359658979181144077653354321757595255536158128001163846720319346507296807990793963714961774312119402021297573125165253768017359101557338153772001952444543620071848475663415407442328621060997613243487548847434539665981338717466093020535070271952983943271425371155766600025784423031073429551533945060486222764966687624079324353192992639253731076892135352572321080889819339168668278948281170472624501948409700975760920983724090074717973340788141825195842598096241747610138252643955135259311885045636264188300338539652435997416931322894719878308427600401368074703904097238473945834896186539790594118599310356168436869219485382055780395773881360679549900085123259442529724486666766834641402189915944565309423440650667851948417766779470472041958822043295380326310537494883122180391279678446100139726753892195119117836587662528083690053249004597410947068772912328214304635337283519953648274325833119144459017809607782883583730111857543659958982724531925310588115026307542571493943024453931870179923608166611305426253995833897942971602070338767815033010280120095997252222280801423571094760351925544434929986767817891045559063015953809761875920358937341978962358931125983902598310267193304189215109689156225069659119828323455503059081730735195503721665870288053992138576037035377105178021280129566841984140362872725623214428754302210909472721073474134975514190737043318276626177275996888826027225247133683353452816692779591328861381766349857728936900965749562287103024362590772412219094300871755692625758065709912016659622436080242870024547362036394841255954881727272473653467783647201918303998717627037515724649922289467932322693619177641614618795613956699567783068290316589699430767333508234990790624100202506134057344300695745474682175690441651540636584680463692621274211075399042188716127617787014258864825775223889184599523376292377915585744549477361295525952226578636462118377598473700347971408206994145580719080213590732269233100831759510659019121294795408603640757358750205890208704579670007055262505811420663907459215273309406823649441590891009220296680523325266198911311842016291631076894084723564366808182168657219688268358402785500782804043453710183651096951782335743030504852653738073531074185917705610397395062640355442275156101107261779370634723804990666922161971194259120445084641746383589938239946517395509000859479990136026674261494290066467115067175422177038774507673563742154782905911012619157555870238957001405117822646989944917908301795475876760168094100135837613578591356924455647764464178667115391951357696104864922490083446715486383054477914330097680486878348184672733758436892724310447406807685278625585165092088263813233623148733336714764520450876627614950389949504809560460989604329123358348859990294526400284994280878624039811814884767301216754161106629995553668193123287425702063738352020086863691311733469731741219153633246745325630871347302792174956227014687325867891734558379964351358800959350877556356248810493852999007675135513527792412429277488565888566513247302514710210575352516511814850902750476845518252096331899068527614435138213662152368890578786699432288816028377482035506016029894009119713850179871683633744139275973644017007014763706655703504338121113576415018451821413619823495159601064752712575935185304332875537783057509567425442684712219618709178560783936144511383335649103256405733898667178123972237519316430617013859539474367843392670986712452211189690840236327411496601243483098929941738030588417166613073040067588380432111555379440605497721705942821514886165672771240903387727745629097110134885184374118695655449745736845218066982911045058004299887953899027804383596282409421860556287788428802127553884803728640019441614257499904272009595204654170598104989967504511936471172772220436102614079750809686975176600237187748348016120310234680567112644766123747627852190241202569943534716226660893675219833111813511146503854895025120655772636145473604426859498074396932331297127377157347099713952291182653485155587137336629120242714302503763269501350911612952993785864681307226486008270881333538193703682598867893321238327053297625857382790097826460545598555131836688844628265133798491667839409761353766251798258249663458771950124384040359140849209733754642474488176184070023569580177410177696925077814893386672557898564589851056891960924398841569280696983352240225634570497312245269354193837004843183357196516626721575524193401933099018319309196582920969656247667683659647019595754739345514337413708761517323677204227385674279170698204549953095918872434939524094441678998846319845504852393662972079777452814399418256789457795712552426826089940863317371538896262889629402112108884427376568624527612130371017300785135715404533041507959447776143597437803742436646973247138410492124314138903579092416036406314038149831481905251720937103964026808994832572297954564042701757722904173234796073618787889913318305843069394825961318713816423467218730845133877219086975104942843769325024981656673816260615941768252509993741672883951744066932549653403101452225316189009235376486378482881344209870048096227171226407489571939002918573307460104360729190945767994614929290427981687729426487729952858434647775386906950148984133924540394144680263625402118614317031251117577642829914644533408920976961699098372652361768745605894704968170136974909523072082682887890730190018253425805343421705928713931737993142410852647390948284596418093614138475831136130576108462366837237695913492615824516221552134879244145041756848064120636520170386330129532777699023118648020067556905682295016354931992305914246396217025329747573114094220180199368035026495636955866425906762685687372110339156793839895765565193177883000241613539562437777840801748819373095020699900890899328088397430367736595524891300156633294077907139615464534088791510300651321934486673248275907946807879819425019582622320395131252014109960531260696555404248670549986786923021746989009547850725672978794769888831093487464426400718183160331655511534276155622405474473378049246214952133258527698847336269182649174338987824789278468918828054669982303689939783413747587025805716349413568433929396068192061773331791738208562436433635359863494496890781064019674074436583667071586924521182997893804077137501290858646578905771426833582768978554717687184427726120509266486102051535642840632368481807287940717127966820060727559555904040233178749447346454760628189541512139162918444297651066947969354016866010055196077687335396511614930937570968554559381513789569039251014953265628147011998326992200066392875374713135236421589265126204072887716578358405219646054105435443642166562244565042999010256586927279142752931172082793937751326106052881235373451068372939893580871243869385934389175713376300720319760816604464683937725806909237297523486702916910426369262090199605204121024077648190316014085863558427609537086558164273995349346546314504040199528537252004957805254656251154109252437991326262713609099402902262062836752132305065183934057450112099341464918433323646569371725914489324159006242020612885732926133596808726500045628284557574596592120530341310111827501306961509835515632004310784601906565493806542525229161991819959602752327702249855738824899882707465936355768582560518068964285376850772012220347920993936179268206590142165615925306737944568949070853263568196831861772268249911472615732035807646298116244013316737892788689229032593349861797021994981925739617673075834417098559222170171825712777534491508205278430904619460835217402005838672849709411023266953921445461066215006410674740207009189911951376466904481267253691537162290791385403937560077835153374167747942100384002308951850994548779039346122220865060160500351776264831611153325587705073541279249909859373473787081194253055121436979749914951860535920403830235716352727630874693219622190064260886183676103346002255477477813641012691906569686495012688376296907233961276287223041141813610060264044030035996988919945827397624114613744804059697062576764723766065541618574690527229238228275186799156983390747671146103022776606020061246876477728819096791613354019881402757992174167678799231603963569492851513633647219540611171767387372555728522940054361785176502307544693869307873499110352182532929726044553210797887711449898870911511237250604238753734841257086064069052058452122754533848008205302450456517669518576913200042816758054924811780519832646032445792829730129105318385636821206215531288668564956512613892261367064093953334570526986959692350353094224543865278677673027540402702246384483553239914751363441044050092330361271496081355490531539021002299595756583705381261965683144286057956696622154721695620870013727768536960840704833325132793112232507148630206951245395003735723346807094656483089209801534878705633491092366057554050864111521441481434630437273271045027768661953107858323334857840297160925215326092558932655600672124359464255065996771770388445396181632879614460817789272171836908880126778207430106422524634807454300476492885553409062185153654355474125476152769772667769772777058315801412185688011705028365275543214803488004442979998062157904564161957212784508928489806426497427090579129069217807298769477975112447305991406050629946894280931034216416629935614828130998870745292716048433630818404126469637925843094185442216359084576146078558562473814931427078266215185541603870206876980461747400808324343665382354555109449498431093494759944672673665352517662706772194183191977196378015702169933675083760057163454643671776723387588643405644871566964321041282595645349841388412890420682047007615596916843038999348366793542549210328113363184722592305554383058206941675629992013373175489122037230349072681068534454035993561823576312837767640631013125335212141994611869350833176587852047112364331226765129964171325217513553261867681942338790365468908001827135283584888444111761234101179918709236507184857856221021104009776994453121795022479578069506532965940383987369907240797679040826794007618729547835963492793904576973661643405359792219285870574957481696694062334272619733518136626063735982575552496509807260123668283605928341855848026958413772558970883789942910549800331113884603401939166122186696058491571485733568286149500019097591125218800396419762163559375743718011480559442298730418196808085647265713547612831629200449880315402105530597076666362749328308916880932359290081787411985738317192616728834918402429721290434965526942726402559641463525914348400675867690350382320572934132981593533044446496829441367323442158380761694831219333119819061096142952201536170298575105594326461468505452684975764807808009221335811378197749271768545075538328768874474591593731162470601091244609829424841287520224462594477638749491997840446829257360968534549843266536862844489365704111817793806441616531223600214918768769467398407517176307516849856359201486892943105940202457969622924566644881967576294349535326382171613395757790766370764569570259738800438415805894336137106551859987600754924187211714889295221737721146081154344982665479872580056674724051122007383459271575727715218589946948117940644466399432370044291140747218180224825837736017346685300744985564715420036123593397312914458591522887408719508708632218837288262822884631843717261903305777147651564143822306791847386039147683108141358275755853643597721650028277803713422869688787349795096031108899196143386664068450697420787700280509367203387232629637856038653216432348815557557018469089074647879122436375556668678067610544955017260791142930831285761254481944449473244819093795369008206384631678225064809531810406570254327604385703505922818919878065865412184299217273720955103242251079718077833042609086794273428955735559252723805511440438001239041687716445180226491681641927401106451622431101700056691121733189423400547959684669804298017362570406733282129962153684881404102194463424646220745575643960452985313071409084608499653767803793201899140865814662175319337665970114330608625009829566917638846056762972931464911493704624469351984039534449135141193667933301936617663652555149174982307987072280860859626112660504289296966535652516688885572112276802772743708917389639772257564890533401038855931125679991516589025016486961427207005916056166159702451989051832969278935550303934681219761582183980483960562523091462638447386296039848924386187298507775928792722068554807210497817653286210187476766897248841139560349480376727036316921007350834073865261684507482496448597428134936480372426116704266870831925040997615319076855770327421785010006441984124207396400139603601583810565928413684574119102736420274163723488214524101347716529603128408658419787951116511529827814620379139855006399960326591248525308493690313130100799977191362230866011099929142871249388541612038020411340188887219693477904497527454288072803509305828754420755134816660927879353566521255620139988249628478726214432362853676502591450468377635282587652139156480972141929675549384375582600253168536356731379262475878049445944183429172756988376226261846365452743497662411138451305481449836311789784489732076719508784158618879692955819733250699951402601511675529750575437810242238957925786562128432731202200716730574069286869363930186765958251326499145950260917069347519408975357464016830811798846452473618956056479426358070562563281189269663026479535951097127659136233180866921535788607812759910537171402204506186075374866306350591483916467656723205714516886170790984695932236724946737583099607042589220481550799132752088583781117685214269334786921895240622657921043620348852926267984013953216458791151579050460579710838983371864038024417511347226472547010794793996953554669619726763255229914654933499663234185951450360980344092212206712567698723427940708857070474293173329188523896721971353924492426178641188637790962814486917869468177591717150669111480020759432012061969637795103227089029566085562225452602610460736131368869009281721068198618553780982018471154163630326265699283424155023600978046417108525537612728905335045506135684143775854429677977014660294387687225115363801191758154028120818255606485410787933598921064427244898618961629413418001295130683638609294100083136673372153008352696235737175330738653338204842190308186449184093723944033405244909554558016406460761581010301767488475017661908692946098769201691202181688291040870709560951470416921147027413390052253340834812870353031023919699978597413908593605433599697075604460134242453682496098772581311024732798562072126572499003468293886872304895562253204463602639854225258416464324271611419817802482595563544907219226583863662663750835944314877635156145710745528016159677048442714194435183275698407552677926411261765250615965235457187956673170913319358761628255920783080185206890151504713340386100310055914817852110384754542933389188444120517943969970194112695119526564919594189975418393234647424290702718875223534393673633663200307232747037407123982562024662651974090199762452056198557625760008708173083288344381831070054514493545885422678578551915372292379555494333410174420169600090696415612732297770221217951868376359082255128816470021992348864043959153018464004714321186360622527011541122283802778538911098490201342741014121559769965438877197485376431158229838533123071751132961904559007938064276695819014842627991221792947987348901868471676503827328552059082984529806259250352128451925927986593506132961946796252373972565584157853744567558998032405492186962888490332560851455344391660226257775512916200772796852629387937530454181080729285891989715381797343496187232927614747850192611450413274873242970583408471112333746274617274626582415324271059322506255302314738759251724787322881491455915605036334575424233779160374952502493022351481961381162563911415610326844958072508273431765944054098269765269344579863479709743124498271933113863873159636361218623497261409556079920628316999420072054811525353393946076850019909886553861433495781650089961649079678142901148387645682174914075623767618453775144031475411206760160726460556859257799322070337333398916369504346690694828436629980037414527627716547623825546170883189810868806847853705536480469350958818025360529740793538676511195079373282083146268960071075175520614433784114549950136432446328193346389050936545714506900864483440180428363390513578157273973334537284263372174065775771079830517555721036795976901889958494130195999573017901240193908681356585539661941371794487632079868800371607303220547423572266896801882123424391885984168972277652194032493227314793669234004848976059037958094696041754279613782553781223947646147832926976545162290281701100437846038756544151739433960048915318817576650500951697402415644771293656614253949368884230517400129920556854289853897942669956777027089146513736892206104415481662156804219838476730871787590279209175900695273456682026513373111518000181434120962601658629821076663523361774007837783423709152644063054071807843358061072961105550020415131696373046849213356837265400307509829089364612047891114753037049893952833457824082817386441322710002968311940203323456420826473276233830294639378998375836554559919340866235090967961134004867027123176526663710778725111860354037554487418693519733656621772359229396776463251562023487570113795712096237723431370212031004965152111976013176419408203437348512852602913334915125083119802850177855710725373149139215709105130965059885999931560863655477403551898166733535880048214665099741433761182777723351910741217572841592580872591315074606025634903777263373914461377038021318347447301113032670296917335047701632106616227830027269283365584011791419447808748253360714403296252285775009808599609040936312635621328162071453406104224112083010008587264252112262480142647519426184325853386753874054743491072710049754281159466017136122590440158991600229827801796035194080046513534752698777609527839984368086908989197839693532179980139135442552717910225397010810632143048511378291498511381969143043497500189980681644412123273328307192824362406733196554692677851193152775113446468905504248113361434984604849051258345683266441528489713972376040328212660253516693914082049947320486021627759791771234751097502403078935759937715095021751693555827072533911892334070223832077585802137174778378778391015234132098489423459613692340497998279304144463162707214796117456975719681239291913740982925805561955207434243295982898980529233366415419256367380689494201471241340525072204061794355252555225008748790086568314542835167750542294803274783044056438581591952666758282929705226127628711040134801787224801789684052407924360582742467443076721645270313451354167649668901274786801010295133862698649748212118629040337691568576240699296372493097201628707200189835423690364149270236961938547372480329855045112089192879829874467864129159417531675602533435310626745254507114181483239880607297140234725520713490798398982355268723950909365667878992383712578976248755990443228895388377317348941122757071410959790047919301046740750411435381782464630795989555638991884773781341347070246747362112048986226991888517456251732519341352038115863350123913054441910073628447567514161050410973505852762044489190978901984315485280533985777844313933883994310444465669244550885946314081751220331390681596592510546858013133838152176418210433429788826119630443111388796258746090226130900849975430395771243230616906262919403921439740270894777663702488155499322458825979020631257436910946393252806241642476868495455324938017639371615636847859823715902385421265840615367228607131702674740131145261063765383390315921943469817605358380310612887852051546933639241088467632009567089718367490578163085158138161966882222047570437590614338040725853862083565176998426774523195824182683698270160237414938363496629351576854061397342746470899685618170160551104880971554859118617189668025973541705423985135560018720335079060946421271143993196046527424050882225359773481519135438571253258540493946010865793798058620143366078825219717809025817370870916460452727977153509910340736425020386386718220522879694458387652947951048660717390229327455426785669776865939923416834122274663015062155320502655341460995249356050854921756549134830958906536175693817637473644183378974229700703545206663170929607591989627732423090252397443861014263098687733913882518684316501027964911497737582888913450341148865948670215492101084328080783428089417298008983297536940644969903125399863919581601468995220880662285408414864274786281975546629278814621607171381880180840572084715868906836919393381864278454537956719272397972364651667592011057995663962598535512763558768140213409829016296873429850792471846056874828331381259161962476156902875901072733103299140623864608333378638257926302391590003557609032477281338887339178096966601469615031754226751125993315529674213336300222964906480934582008181061802100227664580400278213336758573019011371754672763059044353131319036092489097246427928455549913490005180295707082919052556781889913899625138662319380053611346224294610248954072404857123256628888931722116432947816190554868054943441034090680716088028227959686950133643814268252170472870863010137301155236861416908375675747637239763185757038109443390564564468524183028148107998376918512127201935044041804604721626939445788377090105974693219720558114078775989772072009689382249303236830515862657281114637996983137517937623215111252349734305240622105244234353732905655163406669506165892878218707756794176080712973781335187117931650033155523822487730653444179453415395202424449703410120874072188109388268167512042299404948179449472732894770111574139441228455521828424922240658752689172272780607116754046973008037039618787796694882555614674384392570115829546661358678671897661297311267200072971553613027503556167817765442287442114729881614802705243806817653573275578602505847084013208837932816008769081300492491473682517035382219619039014999523495387105997351143478292339499187936608692301375596368532373806703591144243268561512109404259582639301678017128669239283231057658851714020211196957064799814031505633045141564414623163763809904402816256917576489142569714163598439317433270237812336938043012892626375382667795034169334323607500248175741808750388475094939454896209740485442635637164995949920980884294790363666297526003243856352945844728944547166209297495496616877414120882130477022816116456044007236351581149729739218966737382647204722642221242016560150284971306332795814302516013694825567014780935790889657134926158161346901806965089556310121218491805847922720691871696316330044858020102860657858591269974637661741463934159569539554203314628026518951167938074573315759846086173702687867602943677780500244673391332431669880354073232388281847501051641331189537036488422690270478052742490603492082954755054003457160184072574536938145531175354210726557835615499874447480427323457880061873149341566046352979779455075359304795687209316724536547208381685855606043801977030764246083489876101345709394877002946175792061952549255757109038525171488525265671045349813419803390641529876343695420256080277614421914318921393908834543131769685101840103844472348948869520981943531906506555354617335814045544837884752526253949665869992058417652780125341033896469818642430034146791380619028059607854888010789705516946215228773090104467462497979992627120951684779568482583341402266477210843362437593741610536734041954738964197895425335036301861400951534766961476255651873823292468547356935802896011536791787303553159378363082248615177770541577576561759358512016692943111138863582159667618830326104164651714846979385422621687161400122378213779774131268977266712992025922017408770076956283473932201088159356286281928563571893384958850603853158179760679479840878360975960149733420572704603521790605647603285569276273495182203236144112584182426247712012035776388895974318232827871314608053533574494297621796789034568169889553518504478325616380709476951699086247100019748809205009521943632378719764870339223811540363475488626845956159755193765410115014067001226927474393888589943859730245414801061235908036274585288493563251585384383242493252666087588908318700709100237377106576985056433928854337658342596750653715005333514489908293887737352051459333049626531415141386124437935885070944688045486975358170212908490787347806814366323322819415827345671356443171537967818058195852464840084032909981943781718177302317003989733050495387356116261023999433259780126893432605584710278764901070923443884634011735556865903585244919370181041626208504299258697435817098133894045934471937493877624232409852832762266604942385129709453245586252103600829286649724174919141988966129558076770979594795306013119159011773943104209049079424448868513086844493705909026006120649425744710353547657859242708130410618546219881830090634588187038755856274911587375421064667951346487586771543838018521348281915812462599335160198935595167968932852205824799421034512715877163345222995418839680448835529753361286837225935390079201666941339091168758803988828869216002373257361588207163516271332810518187602104852180675526648673908900907195138058626735124312215691637902277328705410842037841525683288718046987952513073266340278519059417338920358540395677035611329354482585628287610610698229721420961993509331312171187891078766872044548876089410174798647137882462153955933333275562009439580434537919782280590395959927436913793778664940964048777841748336432684026282932406260081908081804390914556351936856063045089142289645219987798849347477729132797266027658401667890136490508741142126861969862044126965282981087045479861559545338021201155646979976785738920186243599326777689454060508218838227909833627167124490026761178498264377033002081844590009717235204331994708242098771514449751017055643029542821819670009202515615844174205933658148134902693111517093872260026458630561325605792560927332265579346280805683443921373688405650434307396574061017779370141424615493070741360805442100295600095663588977899267630517718781943706761498217564186590116160865408635391513039201316805769034172596453692350806417446562351523929050409479953184074862151210561833854566176652606393713658802521666223576132201941701372664966073252010771947931265282763302413805164907174565964853748354669194523580315301969160480994606814904037819829732360930087135760798621425422096419004367905479049930078372421581954535418371129368658430553842717628035279128821129308351575656599944741788438381565148434229858704245592434693295232821803508333726283791830216591836181554217157448465778420134329982594566884558266171979012180849480332448787258183774805522268151011371745368417870280274452442905474518234674919564188551244421337783521423865979925988203287085109338386829906571994614906290257427686038850511032638544540419184958866538545040571323629681069146814847869659166861842756798460041868762298055562963045953227923051616721591968675849523635298935788507746081537321454642984792310511676357749494622952569497660359473962430995343310404994209677883827002714478494069037073249106444151696053256560586778757417472110827435774315194060757983563629143326397812218946287447798119807225646714664054850131009656786314880090303749338875364183165134982546694673316118123364854397649325026179549357204305402182974871251107404011611405899911093062492312813116340549262571356721818628932786138833718028535056503591952741400869510926167541476792668032109237467087213606278332922386413619594121339278036118276324106004740971111048140003623342714514483334641675466354699731494756643423659493496845884551524150756376605086632827424794136062876041290644913828519456402643153225858624043141838669590633245063000392213192647625962691510904457695301444054618037857503036686212462278639752746667870121003392984873375014475600322100622358029343774955032037012738468163061026570300872275462966796880890587127676361066225722352229739206443093524327228100859973095132528630601105497915644791845004618046762408928925680912930592960642357021061524646205023248966593987324933967376952023991760898474571843531936646529125848064480196520162838795189499336759241485626136995945307287254532463291529110128763770605570609531377527751867923292134955245133089867969165129073841302167573238637575820080363575728002754490327953079900799442541108725693188014667935595834676432868876966610097395749967836593397846346959948950610490383647409504695226063858046758073069912290474089879166872117147527644711604401952718169508289733537148530928937046384420893299771125856840846608339934045689026787516008775461267988015465856522061210953490796707365539702576199431376639960606061106406959330828171876426043573425361756943784848495250108266488395159700490598380812105221111091943323951136051446459834210799058082093716464523127704023160072138543723461267260997870385657091998507595634613248460188409850194287687902268734556500519121546544063829253851276317663922050938345204300773017029940362615434001322763910912988327863920412300445551684054889809080779174636092439334912641164240093880746356607262336695842764583698268734815881961058571835767462009650526065929263548291499045768307210893245857073701660717398194485028842603963660746031184786225831056580870870305567595861341700745402965687634774176431051751036732869245558582082372038601781739405175130437994868822320044378043103170921034261674998000073016094814586374488778522273076330495383944345382770608760763542098445008306247630253572781032783461766970544287155315340016497076657195985041748199087201490875686037783591994719343352772947285537925787684832301101859365800717291186967617655053775030293033830706448912811412025506150896411007623824574488655182581058140345320124754723269087547507078577659732542844459353044992070014538748948226556442223696365544194225441338212225477497535494624827680533336983284156138692363443358553868471111430498248398991803165458638289353799130535222833430137953372954016257623228081138499491876144141322933767106563492528814528239506209022357876684650116660097382753660405446941653422239052108314585847035529352219928272760574821266065291385530345549744551470344939486863429459658431024190785923680224560763936784166270518555178702904073557304620639692453307795782245949710420188043000183881429008173039450507342787013124466860092778581811040911511729374873627887874907465285565434748886831064110051023020875107768918781525622735251550379532444857787277617001964853703555167655209119339343762866284619844026295252183678522367475108809781507098978413086245881522660963551401874495836926917799047120726494905737264286005211403581231076006699518536124862746756375896225299116496066876508261734178484789337295056739007878617925351440621045366250640463728815698232317500596261080921955211150859302955654967538862612972339914628358476048627627027309739202001432248707582337354915246085608210328882974183906478869923273691360048837436615223517058437705545210815513361262142911815615301758882573594892507108879262128641392443309383797333867806131795237315266773820858024701433527009243803266951742119507670884326346442749127558907746863582162166042741315170212458586056233631493164646913946562497471741958354218607748711057338458433689939645913740603382159352243594751626239188685307822821763983237306180204246560477527943104796189724299533029792497481684052893791044947004590864991872727345413508101983881864673609392571930511968645601855782450218231065889437986522432050677379966196955472440585922417953006820451795370043472451762893566770508490213107736625751697335527462302943031203596260953423574397249659211010657817826108745318874803187430823573699195156340957162700992444929749105489851519658664740148225106335367949737142510229341882585117371994499115097583746130105505064197721531929354875371191630262030328588658528480193509225875775597425276584011721342323648084027143356367542046375182552524944329657043861387865901965738802868401894087672816714137033661732650120578653915780703088714261519075001492576112927675193096728453971160213606303090542243966320674323582797889332324405779199278484633339777737655901870574806828678347965624146102899508487399692970750432753029972872297327934442988646412725348160603779707298299173029296308695801996312413304939350493325412355071054461182591141116454534710329881047844067780138077131465400099386306481266614330858206811395838319169545558259426895769841428893743467084107946318932539106963955780706021245974898293564613560788983472419979478564362042094613412387613198865352358312996862268948608408456655606876954501274486631405054735351746873009806322780468912246821460806727627708402402266155485024008952891657117617439020337584877842911289623247059191874691042005848326140677333751027195653994697162517248312230633919328707983800748485726516123434933273356664473358556430235280883924348278760886164943289399166399210488307847777048045728491456303353265070029588906265915498509407972767567129795010098229476228961891591441520032283878773485130979081019129267227103778898053964156362364169154985768408398468861684375407065121039062506128107663799047908879674778069738473170475253442156390387201238806323688037017949308954900776331523063548374256816653361606641980030188287123767481898330246836371488309259283375902278942588060087286038859168849730693948020511221766359138251524278670094406942355120201568377778851824670025651708509249623747726813694284350062938814429987905301056217375459182679973217735029368928065210025396268807498092643458011655715886700443503976505323478287327368840863540002740676783821963522226539290939807367391364082898722017776747168118195856133721583119054682936083236976113450281757830202934845982925000895682630271263295866292147653142233351793093387951357095346377183684092444422096319331295620305575517340067973740614162107923633423805646850092037167152642556371853889571416419772387422610596667396997173168169415435095283193556417705668622215217991151355639707143312893657553844648326201206424338016955862698561022460646069330793847858814367407000599769703649019273328826135329363112403650698652160638987250267238087403396744397830258296894256896741864336134979475245526291426522842419243083388103580053787023999542172113686550275341362211693140694669513186928102574795985605145005021715913317751609957865551981886193211282110709442287240442481153406055895958355815232012184605820563592699303478851132068626627588771446035996656108430725696500563064489187599466596772847171539573612108180841547273142661748933134174632662354222072600146012701206934639520564445543291662986660783089068118790090815295063626782075614388815781351134695366303878412092346942868730839320432333872775496805210302821544324723388845215343727250128589747691460808314404125868181540049187772287869801853454537006526655649170915429522756709222217474112062720656622989806032891672068743654948246108697367225547404812889242471854323605753411672850757552057131156697954584887398742228135887985840783135060548290551482785294891121905383195624228719484759407859398047901094194070671764439032730712135887385049993638838205501683402777496070276844880281912220636888636811043569529300652195528261526991271637277388418993287130563464688227398288763198645709836308917786487086676185485680047672552675414742851028145807403152992197814557756843681110185317498167016426647884090262682824448258027532094549915104518517716546311804904567985713257528117913656278158111288816562285876030875974963849435275676612168959261485030785362045274507752950631012480341804584059432926079854435620093708091821523920371790678121992280496069738238743312626730306795943960954957189577217915597300588693646845576676092450906088202212235719254536715191834872587423919410890444115959932760044506556206461164655665487594247369252336955993030355095817626176231849561906494839673002037763874369343999829430209147073618947932692762445186560239559053705128978163455423320114975994896278424327483788032701418676952621180975006405149755889650293004867605208010491537885413909424531691719987628941277221129464568294860281493181560249677887949813777216229359437811004448060797672429276249510784153446429150842764520002042769470698041775832209097020291657347251582904630910359037842977572651720877244740952267166306005469716387943171196873484688738186656751279298575016363411314627530499019135646823804329970695770150789337728658035712790913767420805655493624646412600243796845437773390264725128194163200768487362517640659675406936217588793078559164787772747392720029103429495624476613082007292507345291707642266210476730378631699542374551174565220227833240968035246676631908610112067458562873174135111622920788651329412448154716281820798771683463413223622341177882310276598251093588923591620551087632980879931651725289380012378174348968321515905624933473702068322321001186373957705674738671021732123752243252416263580343762536068086691635715945515278178039217743228234366337728111863905118930759016666507429527583840085446354193171905313636597249051584091065822018147347990223590671381469051160519223012694823161134174399447148330408624842691395023367134124251238640266572581309439676219396554073865242298978797821986379182997095579247473203032391164104459069079778623155183495930353059237898175158914576504080251094791234217584828418819501385461656803017550355800549448948848713516053755934023457489795166024423383214060300959371055884570525157042662846003544028236787685509826781617655203757956554816778960389274983556087915411777494235734007641610932940038999821992672570869573260687749742248020233075251876502559684207606932299885875798988964607443817881700815488952265167228340452772191069914157646394852311267947308658031950764551976756289574288817968120900263871452578583152776151090886317402436956805678730152354278047934142664952238337071175112653755039423720987846680491394734465307140796225972871305030772587148755705025825734668666138023514260561161974055434365486980054448792959702875903522584097826835986664465860456942413907290952662499329029734405681606838057266260572770884070734714960600645614540707344327825140874742755067223048453570060922143900029929816082117170479176145051910081326703752149307405678533111060583529127810073917499491978451129159136811073940551752080196305393507402485095537725003670546651623304304250874423242624046321150789973369299854070416562610419767002024150948924118560924096376044296120023645907064497706272079190192359648070489236369798601982830872842285647523531628827913242955248144475055219096720460806895451817122049303218537406272474215197403057690436026863607807920047762324295518294735220272443763390277213920877670657162416397517858592544269234285352743288563368507896519620725194165560618703705502184628454342578503830000953745182929584404649188386857934839611512971605816657450967036774958366666931218817636796449436171304160372430506584851317492640558551940180051809084752118682246169761492432383194864344159085580110730703112015022434160731579295287529368358203970033891121141706852193665897894595031543895890153038271430019295890741499435928940830970770783628759144840370450386189669758112018523192318686599680385838123703291562075788359487809416882055316051281901526475928075749581545642213414593781670569928682998956119823538371578804804787045841753946654976901732203108900703033629117673084484503721456696444014695451738574341578101586187838392785526093991305702555755590609470514980934877733200727975730382459894668096808222213484858738229992817940908256652095816554724752445667436975944746863763324289042697761067919339109833004223102937282987989032093910926828363061736101738781236798986451493117024371282858826304862988844922074156406071470591374055246657569718702173552872454394277148091793644376506378618613243486357974112585208634599278036887924983543632984576876501650651153450086957212395075447856831736315571535270465242352597375134088254616096614407466755142268360319598010721524635510691718713357316854856312808578344356236709596509499469688206611851180860342028213318012494109915026014354500174327307936251130702982504994179942844511464793291545995559095878076216366685917910654359660652535253202736507259891212556868428020772464877220109966318295595529033933122843648644759735608598407609472983895424339326231532399189818522641808312963335463568748288634656185048106322888055967378445620009414656034992808794051153100575871295525719641115068503407737106043803712595755969859493620584775120263549473475347481892622541903526716144292848998575367406921652716300860606543737368235565886264863436891532180955722044567771373683104580755845296128328326063196297285279666743629748008213186279218690442843426307357607039996694307895081472697302538173756949227517953543261569120405948328609499923664122878812264191485048563280720664185570595203750303229168944894275783060909108524106014006832742055839697738231507349961087587637042555649640868550719422563449667324306562592504745817627332818160170196981665424263787636014530359465384503254766749997373408356651381860251565202836373891710165454148826744480091057041861626268379711208861413572796110990882929702296921281809787989513915042709367864449831964201345668339087759430064424856230121246145116979219396344095080832292812942704365991464827499843759421130204182973084171788130903795585456032471708191953027714657945554755447542844344081393889086097760178573893075186619065050180771650018407443258540241843605011182429907023234172436745253653495947990633345407543718126993998337192184854187359798453489345922685150681826624900780293350126588249742262418853525266367028276624993498294887483310617642084290169230528996089786041300651090281798050405871076711790411302174827966823530019602202531855767898433175868063783599687916015389222202365757655815866114091993948615992091599175533417830333476431316350127053906970793265678124159064342847213602352182367412147331244999443341559152743159316874778825331550927703362029012225977948098553922000645271622808553982789065842334475528212765176505726632676911410750348458718969964348757751384791481836351006214668185850963488870814569767220201679911994624177766889079171368659459607264685388107787830021613682766970262234594187374767335379988844034270468030425516941271587393203984443746045478161130566251764127598211819396611018505628805559425660600323121161809946221293010024709133471506822684304586803009042428616820255621409460879000651910994955708158165058289833407394660844575657806366902728434620185873282529247965052866814085035385198375236374519256227954902905579070302839501048548359298345428144873043580470533150815105030015214281171753936491331661726212354055278633080020831770556302949635942016543330940941771963262341193871051615701017980535516793708602913667569860971241203685838129576953077981413657001747613569669861460684914396995738376316958246025133421080726217136019430180872098885514150241638183259752595931655318658331171268579415272066122184226614118251546574848783126103478345467492583087299854474212064450952332450508774314961665552517971680209917200264093749219075699368963302813916472089635817717355558485927065245048625164195405508013435103233898133783024977018227549063814999647233340796130414697394763726508692733471084156856084309213162404346298639208416600559045985064912435052647660676003444416181864036700837741141010943205889555986586700778636718969440896223213740341135971991331359465536854466923676525890121084137774324821918127478478922872648929700323718734561579815998348391004126010507469645994303319788106349139238124905030614334079183280040639070986725961970983112659601474737253305268537177421465540058739246237276173649051987133680677239525707813606866832613950143295094748515947246675272016843165866088075127685847555411843811690116220055521134844889606682592274313190079630115870846701176549353930465633562253112447277966690058311906161019726630739705425314398184573794494867801346182178759390769996020290839656772878469057364015640150476964489939475414746083399186968892711569423454926512466455077925540281050376220359675305586018564920560628790907694533392088088494778288948511221547432301913832455629938810206144902668760102077532109156849778307408596498579671526170100394754945399176987913235465501064073558169994097562481499674432784292027626441897939181583945627081733015821602255196598987693761640198612074667550488611108557267645070526224461302223358520722736204850572892388158849387545352291863997143808840617572862209501225065158631042588841343554319737298562177530720226294755524830444453404348888785811703413453425223543194078779728467601815832270977451809293421931898158124828326589500407048552060998937839003419141630446391638805496587865013750463416956551566182988786307058423069676602540530248114710078997842118304890104640568965397028855955309255586360521589573751140895649058441567749371058596480143158746144912505492531911646538215851973700932801945303205726284526580460463378166314299330766466465307605905489628887241897160602258826175775399220551315093772006248630855628204935757527249955670892216342339836025653287310291940070411769192208500151167356701019589710017970195781208929109694177543699043682025630240548226254019056965077105815742407214963395603652702833344073057500736745622605846498861151016896121811190584717144610687197610174565873737967406971374232387538390303172002002072059284887851239117464716737437379232838819662016876221913462338937625995270256721386221124589802121305014072889043003225355040958668187241393699381930691487447171866461831119426031616640703773164870018647996002430440032422418094022785333090115098808706782688353172007675225531380088187804316901900728048317992874141254761230896068330958283776676882875786886830929760010119745338983319525886196301329170943858166153741717944963191771543125069598534812856846193776698942774591709188025200127499055594072896965947933316722436215678967769667080352290390184857308062756708676586271047694092035655930253527434189659270022270492331868299915609364137570049885373045963961527346293969749517480626964517930187199867885375814159757993148066085572325683743052827641756700502880404894298995809481035348339341449278859252621924155472319971433850866373209266327282435149336407045896838523456247443611752567669877675972234392063575074715529181027626140129924804228839902978799254185174991296302839907296355885798905933177959087690739056460256235335672215522594688382984528829229662751371624221729546786707158409241840841475575825393852409633020513497047406953995678979817278609204622868397357798151118681526598846069497589654813146511503926263777495137615572481951161198772503445647107385134359273555387124623755981938132142384415819290700463897716838872079163617414324970791096581627464297170728717251427458983568970955346268201690853561089448984071005819203021769451207717745887955195104733841847399807963067678858451675757299043069715426423834980098708699336709121083944535062459224323123482785496603746571880148929379451478705406079245759006012196221239287200172155886663457349714095337211516559857579417244198890261670161016115578343150254603287811984240274846085107224066767787608552476177738330895026100643883505502054563243461678594519417956698749685152448838475136181806671083161655642093692705206118985172926171417144346555087063060635510129494003097591677991584260491971209543227026784326542965724032720887143219996453132025871096771651285496699625526986073117637182074988273997706019913620930832307368382064557325637659829125781314922242204279712414416299512659456397927593803838047826231604243253991328511230322470375619423217330478540785762440132917179929792407833907157579814268168646553829468473992058886316559349198678969628404473449680240770928313764081033522552427174041076735654244410044833474401017264410529547872963458986405012036080244511903509949744939736171815752770937802092366681358416362683192634067141827974213425462207054156000509596740456168404517717479527903532549325891204833857465900967817304160005210889346107687540042419778030828851812001733695591271377141950113613044097532791905048915832463991434835316486815485791786329351239255525102111827885736960602769313014696614334496423021143824837056335327938588952676720766889712744358156320881066501495681435587965769098577659027687074536592763649755534496173080781609871032480137951361703677634575949756862080139963745517624251477806287222659714554829067692957136435721526744689878894188207512922257565091435528288746141950978624275278815715664007637210378031940430958442725492699871692343318900221415031139987652606887615667402101972017196023908610829749276395695411530322754601738707956259935797853024434767163995914623179312399899869284379757024923695515872976838540052276514956144471059719628898881571094151717015181147435136438540051162462021311748007919837497001004713634325232815789113554504533719052750682291561850033284695679262262081904424733403625038927920715859600393631533688427243753667996986479347411331983286194414606539227840999031438403545650470567895520248271760118743356436902435030856313095590552503904927316133117349225846446090245350791901844112993216997704518328535864804285568222087372136164905863032563689130841037602156799270200053223554398046531193397754590440450785680213984650096934295473102692499475864660580916699841606846460872939438082743082858174796941728729903110131926755738979840913642534796949434803777033646349584768629825901034707278612186230019866079877826842459338356389195702068535216032116352300649887446002001704130569853651546687520238593751832803728511432748116996836928492204473805706334966187112409478359158696268586435891413598542535776887749327436345147544886408688180303696524317556883002058607732569597160864854158344684324899630770113713446751569302448854820771241335577323069494580672678452359436315078727281579015730700331787968544362795257190236232746142628687327380094977411228562376632149046532940720261975390717404222595392428881645597965700309571413891069368450362682310539867437532400527015347458933256795149418545378088270634572959621690853835353703814181155738163782090325615198697453576464121254980760051561417072980469948135934831505681166427932193352798227147157673401860887215187996693502527007575560997198828630642854481282751392806947027501481632897273143473485285295046048832716739789815636788047804436021090073207273697493446304997314425715604331336903876181009488731207134827108158898574832658542075100779531183268617080370709359276149367825308583404823510036321663789574262025503501168615434073795045164828967556983589355220201736795480757819095026979812711487034311903631122461282953038205128704309294719745946908210256347889954317715243796962112812245034260663992688521330791963702777804488579205730469908009234401866381132520971230964760599899479257598510081730396068222199753273016065826285275825766950785472603493829813358252817867060851265600226887178112535978293373477914127362841886561759208328794474109697038798547369840254580632948350223593935435874802239897609162962501104739311694491006669072306346931301697118206325352692440438400937242844282097093648569094689200873717532525570305435398287278123011398080938670154748858034456318713196026785487938933162050076752641120443902375833427242986996547863685341028488573702547255023656634186809190383886707879072084036194021646701215348379781518328264725786288152071010814995589803381189615694417567613407170465385121709021237778843336496518721199054075818773943975283641439530442459139031788130041887918871145531482674699870555879310402403888840838506873416250716572741851349520849636709555424504394839480459791562282824837879341527203622633695618055563710768148888936192757426599358235594315308879330527675587475123650658439694756042971920023198680243517199378681003611023125683642560795974105741536282971800464977485737183786390370390153973749116546854997164539416112164176107171454017651905650525206622778831290457196932059902413753959838619826032054958395016755525096441371182225614960140030230354078992096986775078672000380742679705303071679322960156486228085184033523501706085895129122232461178302531636289439460736527713365116316464461990990212249224123151689927678558637363155260025034884878132330019101893996167027314169996265119457426367619650024347371727290284622097983948710659822700099549188776961885054326532118022194442822284251525561411874340180419461413945147128725275923912559644373568339728963312676782349103563329612947191015157143115795490933903261411918654752376247215311020793691158487422058227473432017355850771224379698579654915806279502740977168861148076163151618553068566924571717692204436684331273989337941116297224516999854685622157024175947117699529165502116855001089857619346394559088262707753114657752238846343519376539734984802454976076024403080844890106838786972612370978357824516680117148598367940552904619826216566917202742628548239339600182545994092543081696910329784112340228856001905493427502231852947128296096939768137341977042781213001473286776057194059699792755124617184349569856417128724811834654206423187145518241528676305675131162677177350617511245463387994265291270105789956718057214365579183506917779307040757329043974949958224106238105149176502385041827300966201717509405908054089572837554063551522199658207573513157075923615398639459211155864000988097552610538382568992721584785041746065161511337883360976012114848700556016581249247068256844272045472896309420306650445298646223594226008554991589149953606498428034579492757009497959450602378775019470624632394954957823082283066840818802521076639074230973720916285337176806216446935432317917855305833171420847988630340846572642693955700268576057539347888587094600582723230519108117514234912687336585960799891732928915896001815091816337400806035475200051511751029012299248709615459280262060761698272181029167315548929423740851967433079166078499055782101935713662435990883613859808516156417476946054785540081953530670803089697630452946868233210532878237438944115685176271711636309401479909649456354592950130739003626821007326370082356150691269643183351716254390304698989314261544263595113634660573786549512445747526216789547036289048304849968040377225134319373734412366185869445880640185840731476337929403863404359194198723552630156546080518686760680431608451284591604244132698791253856029915996727876619519505317648831346932573668946443825581391084862096637426745798313012223438725831244220330945714575414704792938758582389977385152135237238955966431223564326262860114748908681715928106687270840082033771869215352352692634722680908259898898400262081521782826112293131182086600709968603654098183268075582477670695041099758614362435521619453530292002546673679964850433731334952082107511992589266389956475698587079018561237915788643744690378715095001125502100388453119236529655994619004748466206423479423296700605290037091755781887081935221468714272352776325598980869487211138459800141238421638278244127365424467488333816797162011288619141540193671290947899026466644315609837296150196862422825067230616672094354657142514930864248877859868275958874906507726025095182953676518118236861694472436078376429476246922631949892196464406831692876616150605081384631941511620257790786307180123115945860389656252655422334623445450739478869026815949751311688514369452102168831904461686297633252298638518188500492869357276476682385556463655449640063176482855757858666102285515648599088209586894443625469867952382268611596991005636608292679153375381606611224786953132615853187176388598937792918890299879387981000369730784895927062541048485931585432339568310423902990702634437978756918554340897644076013084448197862650794764408301349424358342818859152592934714363175337495897010728735012707889804816350456766676932075530518404324461007403216764718360837084750651269307076608498252990003178503058536821395127350386382460564251033777558098646433980171862081426630741725922260005110913426810746701290143016541010649332122837908275150010035300156545975083237729654396973820477416265710657408216499606262274961879533479070659889748717795643340648417456457479069251701494998100953534135489087548363275795224072069862910246717035792514417667038866099069857262605812408253362252189920004189757457653151230000644457159317017716886354833330519215820559461173577163211322339319653203861990051161781713340010705766526899197081692022194647043237953564118660639205586090344570641517977821450547222788529872101978588460700474200284688737958442289499743336562718779917211379161644925413297156528795295326397595385359209501386333805075613695308995475848830242619627589859415137805158050257675404017857958524488311721050892770892272734319738238846873071682302487886885855101080735227814053714065207581072708481672639770987314551626469114232861030369329843303003236761627142640675878067318839715150027981633747790787750383079867594045910739210345874042196170349258081899072059612915864202028857340091149552388651079113714953346397639881839488045300750747403722809368205354304949519483328334700751619790086872854399629815756058916376247230691628711111376760864803237524596649304117539461364643378046711650555046706718362212857950480671656304276267114299991134876984470503706379001810968886297217579517324338027806174704963020424929166191718862433555992820932439194457118863215563201616542470553759386966246563341215410140322869909301591328858088312412428828763738727428380385907102927486333515030904453280525977956589205545624342979827941348917563824007716121733247364285401606100443376414572207859217155914010378320201321338330963807789040957238105588293927963743816606868351950592770195153616017221589042878567848206829194416987181928627308270444163039625471305328438833791337476873582612211625836027289616245590418967702474538275839665229937123516304898330124214174557885915942560597924277218199085562798486056174536844789237969079755945551546468531630244623256740348958454622567448582020424573919942530942642245042026890381501526836024125598075975236481628093048912746151196231546114008220563967806585354076686882275426503812259991620760170895567474465242344520176616503259456659129667863246213799192229614586714224824928806476803210864779941004100600339067927523736254602774296007347880383566875220034824576949084568626960577157019191748922606352081297387974438354832861369395624503929768057832234021716765559177668403757234844094617629312884926899368713898388222710602790379900190455833600797392774109266557392331470259092338906543884223513241153880185592349561399302239196450504503693529270115663051533519186418648234424999192720272953459599063048723608041595760029668121116831723660381105428035914457202482564561057140554624208213435209481084171582895724450720635468160023051201408480543587425261710176818538835575587174154247754497722214192613155252691091755633319323222432185254221827291491598105836897025035228130021411924860142480680797536996477719394906804683552808347327610306049409733091690316783097934636611832784531868716462680738833656704566010423768505801395074436479639222841126979451347730049249878649656367949099291327125289776519181754279628060849323755208153611132403397131655043918879601983821385850007732424617788491875814596426423378897933308194881600401131265256356932446593984006368903152547229239914144743770696338935761926039189247936317800831026114195485436051577871600495578865657970665885510428824663630572077789022667770425126815719795332251076389036819762844028610258805392339329474672024088541276492386447602161162620824212991660362299184923782236300983478119522913821847326342285759120979805478285250591837983368017874112426447460022562414980691400740979721023278539575615128345806165411117926710427990579394497134946328950456512868847841871758020504583283874853137369113510255062010277534580943910500102183397324565047288947687929892594501987507671223637918758647201214966061151280487096488630562284408393694438721692120849200851558381251070741955187208093746942459731172811721051928903896370394235776862127668210931827636649840421249381440979598631142254364839654999834790843070217643855543512574368282281530322223808347679511135570148063182004532207237948918635721491062425269939946710153668462341051533381426847706275852035240992079720869914537301095516415033176282001969164115460268207236692552751418429969920539853433073068057372380504167197221127374050789272663406388506867344585607732666483845780277189114758013231055198784133652185190714606813898688671031475982646112937954395266728672759948335902597445878687684964626834844344141359177145877660880778453571839329371937393236408356337576688468211117993505541020855618849010201600505639541687451082206035554108176664605241249662244228045452432160320360194641356097920019590240497929236732989245539901019801121402908686999205758917771880741461222050247285857153675307478143897305717872683663601576136100772286319638852646235125538077319459563567965382362499926551804330796359621106745528521429026294982656755335273100468788657310472466493326567927331345122955059186232937393326086077451350775309015744438294873397796053228493583013618379586264803212973684748175164769136621103603695091066665051717115082782009327883587225983940463068376318118089044236262199881236826807857952621972166872017455174726278180326830585488039709770479348310354398559078435527766760331398846052715031388563324676889271045958519328951391678238577357726581004798256393551935200552040800287059678249739374788605283564935914978380377964960005212445834779001756042465866651998077028839438516380955043049219603244360903400851746604296274309768387151945982644735940234248211044757291117779587731341553609527595708986125867714562523994500759380206093550248920084767332293085742222550206455690239126543663578524272429056053205754030821014512382090217466975797653475172501465837478848080537735150422224042957603613754324861996558919392205046999821062931609675651790751322960777857553310265858425760866867645355209277482755675451771699508789411805936305249944967012375980065534998739666395394417017059698101512719333118407679232718539539809764048527846743872316432910029065495308612833302664007580129618499207022002555972156957588376168784364346792755863573972253564884133060119289574642809357858081132331433115287482179766039712579528900364071989233281316116404169377366280132597382222374268189176489596422703380390592959649696482133114473166765041976781108490966469425717069457007871264014486522428469488976172567465352205061621073001019262483146821203551699501522007316384004132030333242312167082685468931758436630430784350785928104478492663952652398718644173380085681692321347429754583269402161253332837900960648627785494126679513674045877416945596140762656625029900692267267876036587137932796041848839393393469263543415480951836233233175229370352102914641331275203711716675487206347389232937851072902951446292741546761947942747166916030497829288961474587026499797079206387240825023006425544995904011974108535167844409018806462937483544396144003535233103040411784572289029581805810321237438258987027473704010683777715925126453570650830092147925834989247512745362200610585457599736931352970781437428413405519544467214894150574528391716037154530825255583432025125424166244575245629644579107697171521470951850550035505439063168825810578507463565620479146676805569843845520277099697198898072337148695635670317768776378974327349282934390514556706074460797047693164627812141713818274378561462197088087021064211057377851471358837377388240765280451914271374881105597447183100939375197659802100241012511230813682603384744910877161322857660263938849284959898236565727204263572026374825649494912629141917130646280595669825493603261320192528043461704390289260279931404361370265820121312851488158573111782104131033572888718172952627112000814750640268304641898876974787917317370381399918882424169942121527760451859567119094180737347933109970928315546816563952710104611376254066449586183854638982208996778329550111431499593680398222303713632957423217357446473421097414917436419947319588400526387269592318364232549184559550453437784670947045095942012021142208641912790493599452137392487110743231495113804293793655436372172634819075711353127093079527295221124795314989699080894665747695565124360561142008663990560990003803025061242360775032934134728905013167728097131626834959634092922430311950848788671035335200237127302029165929752526570392104214963495238570856057234346215769569851340683045483315459075364711469968242091023214311717692277385347704177940764410013010485960927072113205231853822274448702433271039878114791275460808361156877921513113104500836636310075175110259002808642771502096271366239740107528844546833161821150278926430729763557610551124620332480053105995111505431484829553432959830574272451737886527193000732321736237587327314890910945537402704811855571990516839387453520679708592118964078548950410940569965988715988633620779550452193215633612468530317470544394029418292635524015545231609868255313897018801539704596250169179664812501555932311482673005633835797260328601778474149600456972578349562058732873012451455576345230298648149544100907883529801207012654109525184606662017674204525736799469077190845378748206080290482516701766198207306183312392193535690040705215498939034465938809047507724169543651858075066490459443188862978723571603022481352204601090635214508280639749275512847694354996203399164488791974379020957188863200247502079102379073072963746326336674594275563784535691367345524014897125909480368566282321005003940073106632075257283147115192633289285206967239347175098295260212549476433019535743835092582831113391153906337661737307723630279889869985799450165923769067548837988929400605162826140048150469482814033083916434248650939635458909132805951116334550365634824519150583179498083182728134795050772717335949663371882149192837871164639035669257799424573943554730449355593968480327902086141968150826064810924688543383329866390745478052636291615627988031878282707451630327863907566533621975063224248645769459753596673200603898262930000761251494798008956712452569559827585485769012463686594942242277271771518496417510715984163572072412243719680672039270647894278942171284264133427118318479441334606472431411501550985511712414668243312352062840657226926069047479196447297528322749569819632778728162595401202053807329582500497445930809782409529912965423318498798800771681631986086512088315867256506594414061844683749631892913745993421603484822883158289730942161473689255851699271553115588887600721703410244587440208443428273004673097955556668115013003388895838023146431382900260076322850347583078087889518031398102076278898517435347822512084675949743002443789584289568075266320362769629946018083494199491270655913084000586265639963911040685104128200715324625642637145635575769452849271126355771963250658965455364821254592633552572925952814993415878776515692231191510233734407169916564763982000896984629843997759385398112133218103281989699457926176493582974837338775235285946403513823823062694536345810031936725020698280738433341175283157314342639896416347127053034775699155800311815918091137880268838547576972923398882860323029977043066628869553012102727057633959897689410249968479498168420119925613480756440406559462383708723688812548949148794873480861416810552114001845517008444484294847550732736642827222063365824017454988082913018839140156809050000849546573730003274779720991750746178595157995320223728523592040074251522563861667562031883981176186119602216284743190797025036745928280467817853664739356003540382782818457669478233745711382212193261672950104270694095202650280522898590935002394490874562620534522173119409577830195360518503854961406218253061820365182733706211198939024488975386358180994491815784878336528865436542248302027892417049689651104172759475017812267858143917486494243573009091712648771605959209744581146295542231002200851205225897647781148270394267766642782746259395117438071986187222655865040300284691469278646800318360346381726405702707422620342971875558099386871240465622333891464658305543013155095285109726300508051882652726853353729373385691826937171677303161186474948104242151279159101460656979533313377409593674932644146370242752453933503013099283364854070698403439912124524927558029979882409206644640425859662008887419164987730275403729204215810937814713136226288666694547421244955284909149219337193623402943371255755699886529662364503535192026777637942482082860568936231521523178850145213132149146986854835944706865850109813142058926764161151621094053567807368100897342458729327052108535726763805642288409296658844777952795467107351932954747130150792208403282322044289446782183965471109021173407251397247573570085553127432199967512595825680632358808838843662032622661914149347404364980002473983320924118386674296092694607014183881781107142824396577963884398647823137154249894725830411451495268724236189967630588168208463274374412103905527652187107355645257133601145580455856845586504328599176765196193271143498665407774514500473072711714795712227572018128864464407775174603282423173385337652989810442322404677246320479517980971576025800885768975134059480548268772884776293846454960402703705085394190927699370668045517194160403763511801855136575451095247034602260020741742823849481782254906365992084749037583205744677959106755660640775009347129817005818769408027992690460594987211763415191488225186704395573100179371000466572921803728487979715692278888397041982545657064289089858279586256599013759687500785698534209443995971523667673559911557090061413018853956006933050826115788315979018829128777653969640675392080848582290475561905186375490594176472080908485239299663653777468709856801423613707637046742361802921867959247697776529262929041798392750534329433844765333985012282836279851502637454279667177148419757339065728715430543215752354493205346537542382048448508846345908533866772925385204449844131368637518941176848626136036819373635133932540806852269214743073291344676252932264084533084493864715156181394136343503648177947550976339255988278690369632386330342579445292292377520328744890200405326681393547528550174645317172145995081455613646925266502271153373818175978557950419880754858113362891549009039080607754157573613737559880187573075362487370012912238261134381039234372313536898891533749493786324984941764281417045284082969399172432328677256415048376577311449335215538523001781108276163630370902052595037790925341104705700465652519779256793314108866326405926231788931260315285758716424211903337987257758742901290375936269727234314893572572418837941862768645667758686920276014398050163871435204776738809005789283633817797388457344100149966433235822257925351711059485607891824015219982852269465095876314924712795201644676474027046895454351030698261799914022340728548915468068420957432075066211544876266446757986364438802325863608869187594422715214296506641613849638150279721730712659205782660027847181400342092656930703090445702459646757649018527813931481315092036410498459690602253144748229457070252704363040611144551422276693665012542523720743940182775250894143291521517059974545931259468212143510622763303318504339488951276720637291512493681935703191046935729052762887687825004850548005973230753265227792552419913159617911522069419685479187341566997810967025629939932081645071741734905643398652199866390557093521198524390679861502144862392843873982018760228547123039494596615725875096503200712476657593813721248011341535506167547203695791055974610671125417117453695430147191419937319722797169021161357262524311647228936664414262124385498136236949635712821160368544160710823177510780129830425381419089224920859536461082139564811320531607370777207605599349815034240640775123315121589992462974978454743857855952270892671024791991996450430401660056217629623401492821816115205046438140512010176327979026932712227012592708163045794086959388503088585777767698805771202774618583728185859970177211160371098273932414719793766386484316000841579272530611640850151500165203002001427433763904187886226352747022589848494690776947476132763910525994056603823823716369435554706581748273071824741827263627240462399440284444736424586444751046902997652674973443569857085390578191599585996096750612830910194748865650751261397136329276415834913042083009508511004140745574437849278985760726105769741819633696790755188383220173443764398053682962687328518939530815972138409987536577466354932531139362559789543000911914267407538592549690157973419183710401699917900945678359628573224471479073204569647197863154908628412333251748127848288098487610221009742783475164627905539385196688956965108760628729574590889201702386720740106024538941519547393281424662231268923626502720564026430217769031895555206112711463146717038915773390065452869232720808111578757374991035324446693616535175221246886608059397380546894867556025887068710308118989220242174952934582195353009915613553607315909567346990699248742680019538217524621053498627010613215907572602408043008278683562931983842710521983547275117642330279958926872730531183558056875276124091974244476335680956874844410454670283523651415276562700804363097477453767809820873498038498259924881067029775494953522829951654655985068742831762852085719613937978285057790149962321392204623415241682380388944662426737300189654337647650363412518285095120888648562947143987795665592807491648962562185926715414692176768396054500821642162605610642314443579823069196578047057471484600729681823722879775604960891581786867293632379024157920472836469702103139751800978415985500070553649387532125749616748758725832599259576150743391862284379883013460445408808178096854911945411934702689650599198604109976532111965810629665500511618365170620292880877609149846167316442686419708923064846305675457388720247601652577608529377210933584453871074027292591915246267623538179786930642153401316337011357356351110981418211296622107367262696156726748307752488744484167665737024004850839370255838591012266948358068391545479166016456914863052393597793244672558867174160485503871149031760755373219447283058221915580788075245369693274460174736052420586469686975770612186776197205874910451651427154954238539202325269751234954654630906132946005665072830987280338737351553752235631835702537006494092638080317374634854036114660004846876242310894723791650074517970524862846727663375517303687368385644037049806617909200831710788210498183315526148505373540750351082239392474456301096920422788447371696889509111857369268903366597185225377703296220167081065518126758009408525150684775792191389321380928696119531220905038018107658748836831788278142527862618796676068219770390932600672961512755712527864370698983544440961391737903545485180403973331374805235879109555830404815348045391878540382432369073043102740626417777626573010347033840211296690848180461624964873947345844121553025815222149945822249941941954725641031750211442280865230280221342409319393272767819599060811259862396733945898961907167977778025951163147757626402858826251481582164399441350619608117589046195115853908261335496038803237135222451696811805975121895900285917973908665244952804078271302700453774372678555325048503974637573946460984085658930184822341614986583150346608218622360580194811455490351547426626606129502687840975477981407268239569314724876098280345081189383404096153431486301124867646531547875845494652222753187735608908350438370811208824417599385864663093970481172530040203058134090447450511563770541035014166861912485252694933482978510181114723298740453961275402222190958440508723066232688884970422345670001194975185979649409914897138536227945887407609904328542281277305818304024945108706336986946867400894810975397100908494768304107115295506388876524905456599942607738863473945525114489720361047937572544723966023547748127494160698351013147640236419491461059805563757044651556671236525682827015744528476022078175397233716409698626492055766876156445774464466492547734672972555705388285907892317597067686398249662945556019387315271036272012429312017642522464480318195446833376399461313836144570416088834222537155878358070161156027177541424723331527813566940098980044458238998420064074895892389238927522891473294553124042477552083805237951012393843585877545499900127206828665999857909842930384600732962384262907972182333727476694640152692048814304227394388383869880723650340088095245127260013615257041577497895464274592866962164154275190720789657656762047087629102592988877128340580613171820688795096273552308022803665885309302704619400614464491862785664244942081621020383276111696224421386397311571301189918531699151581650258342812848741492753605073550149275164965568949868814457828072415400901161769365898628113745927903225784890933976881608670857002995345721579420980997220532145751427154112209398869874562801165332079254551969851910384281572683512010923679952429068679954568308388593013667218521135364172442283704920603648154449717799886187390619701265066843706404251244599519090062260821798454151398740861561892465930844027470147101672547160166860173976919976620111199893015535406281778132823867987398831854809365141752690405027399232695322939310360456984252059471087760223210167746792793562530768337722069298099521332754934107640682936962565380979829922150200761906567133233307191753110953769674314458270474521918565656173056185321660425946455385616883759934532767382788781222315372811134173554517073553208276044077452544230785453748112596654635574596043270368542157386962244479609259367500830989140006853836358817787486427106882578787407992834182519771408422304894979155179876782746847540849289938647634983917539244593293129138080738765005052200666662727343844540498968011834325534999762501192176787558098067233241678261782570891163017980881955837910754011805096216010930804225701805492976467841153876914307088247531217231379403723659287710434554469626659999262339332986411371001268040811602769694022871365072981064452520165517338604686504062129245789271472274267638614268236764085164119476626514371013938556806427007782965968048607751794922121562917386716354649889853835751532497431583541399132213650515513841090309027554332364412022530077042821114714191814757096183313782294342072543410315558281866932838668366072691638369677932010214202904681337049153438059246547114970835401227241006503949742164188669227447368995062528945027771898946913296346758587926423521163354647468642605485613157784036114314902695442750564803847888794329565560484433918406020270451468278242315140650702210485195920723120049337176738352370930885652643448419467734538241329688543063024778255435028195957175433268735831728279337741010263471725258000551089980879204274477838536427497206543092247960572140033066159793981569706136609839640552028766999172254724020639606096429945427059154600073536731549880773908300158133516035730111114109280154122806666705878555092703338500983115676285161649242550929283039087709889349460723490286585602054220670371568046350038260527637108239865979318483093676416563607907066052334341113779312161202058809514614377394768353883950472129452834986548086483788501946767694562326701998713318455453483736084512767180056787542358871951058956527978045378344846504681469516775381369518451030832390374965716214330796386015448161449552393511121218944302382695405786011646737366479565206587250815927530571313438356992004899961804325495020521955502061792779930564245836658721675351928175033449923918332562361626502081490355786124405183440403815991358271738433734045297449996405991865666415356124243080016261793375092142965808828322195705784317169794628455133096838246000369899618059298795066037607124327255975365088203863609588090400380017604750786697443325877232154383259983998643950114495415077009728226536958394380850912841104162909663701274249881761634410166742340050683616764823271038894223948202530869672229252434075060265129885763587813750085100568868743282747187323242898477335425815041625895502385448906849676764892829707281158435116760776172604891355851098147895084298498360559365937105320205997904436973534016628764532063718869382189780157321907629981036125683876483872698536012944816073176186580668059683733894119826500873262426696002409088320762261178399915744021058427898450630360141993392836245540276835099897204218596209020162101565192235842119488202091237839275571856055416562054553471969786612350583489628212860820840349731199881077259045458633766108505095823850307512842596428597494715967542592403495586097964340196646672175723723707078518464663837067170299541698329886912472818768027381254962938987607223408465709509894320165487604793394679468513437326303922309331790687303169941800740480006872513659785795859947801994965234272868898871781351617155057783915871386404057895659182321370814005871380883652304716712718220060186088112572603398624035420675212769089210815522603293004441018906372365919571195303028824858684782564883005251812608103542135181224715840046275105924448705837095408353189752152361034204084507641376742347300588220343231604746330435062814232108294872409025947644118910322337404979474085782776220482618219514282179811243726766258468951951069986737402273230026026150597064215274602326999497006158235928282229783286840199729036537816816002884117306733244966283840324353650413975362055091052197490957998605957269413840242675559674863774293085831406648031844531532908153215494345828804429373556800527667018000947887335886091364949458385268927913655943428817418645559410296179299581260809706454746509023426184034501081240335390006107346941209783867162772161370836145151105007720117042140575102955114913702554533502068141165244769178458694354034118791350719472868333896624761011830170049726189561183989816053909200891172772452827329958680838010737813140018760672501269264546450976733747002367678201352356732426247888048234362900999633010976573057107450862132187796828074343989648355242714487573058303218024945210923199120417862983211064561898234504950543971618030395685126538014922516948784795547241863827862758232782129939782074286755471092498218244686147958081408355004668755962615790617175902192718697237845472411298557573179374795351829558429913369281405884804215715380746853113023354946272141844005632397445875377275180714660165706503537500007800054761003678636991113239858621322182246246434350103632239859670172899284252341131543432629303907359534291441393387428218721484186131279071626858266847205954664035651133279272928367042153333781564897878724347231657710811890588115922053413447767521297746355065511098018114547089217012441063492394924242267383494394078654658363868597002601991541683855861557896701272200232200316861954197028924757421666766801524808240221111561909829095288293422784064903953396720086499569654470752118461343409778577773642631658691698762749541886831332475145315900233544095171491408135927319114619200677579215856331076125470709339611644150880072729394563684925327185891551688147209601141540566400389210281186485459504119005580079283947161996760030187700072991661348781038991897992779330826033333833405791933860125992663543506471009126063462523857434635268474929790657800172876659682562194685410779874218445504710482511389936542799445932024438989851344256726693278613295048517020426704168104239887877662828350193125454951010870376696381206031276179962188931877783052045019481204742705204573212548733903930286680853928985514539518307016773725339156792769039073362485903433514761178705177976647101075024507681616557253954820094809110586317329891753118416036402195034635732195947558600832082926751237884955166725064922072060974120312931357435374521855454983025804156517986227801646893748172397133811236953637358110573939105369179739293431977518803252435258608082755374099972101540080046979927943422345447689707580313149065499764572719969962803326920908915583817603213989264488023769100827420906680800437399250454122368497194097746704673167378878520494165644737071325437283139540962318133764738488941218277568760582754721153484064111928660919806142282295524907588525871140721341401635238119989127477891313975746828093424728231102189843007024439996429064445084478802766865394635783597863301435743073855224801180578551630030594803517023052917619376680448974551900622981417402254687938598091422858374494142946684056784478629968730373668633975101391007984558831971893984042058517831262556099075164256666091448576606836793744806529724037099333962928343483326610413687134472596294417153661683256929874607519349004367548712450125173882289594264322061718377059516656649038896234159034283659246762389215431621094739650098692570895075041141578197189457994851682923997676852605909408476925555603209473017988926182294738346886884787742147478211246290050487616242097572295178607339598869641860539956912742611053799648648272882147298654479372705114310364153995043024924890389871904738048121737057256637134651471541312220563195699529710744845423257854093196070374806243288730574037414313238215835562671427568755755136182019176330108628379725855115674172305047190608736162770832629644295804827975636308237643616154555406169800458196446706678102433478459880692484772748952982620451694370037112019129535311291971380175955779745321797068998107869799671161406472583557313852803781447946186458216347452039855897512317136407974683851455920414500521772122914466992786476520100365397889970941956779542290004143845487143488528556517630802992516764442476821864906215121917234256868516006058597808966236688320128396531227030746548182119994822538814300401681144503621167202444620482829677761601656378975763497955487255108091057813394203472774484748769898419218280856304164926029917623036263225044182962965215438562876070374218681400473863094501591091325421030325613511075755828734786562608093256450743463372334224085585816338537153069458782692020523950672724753690013980114964316594582971648686322048417952196424498327948806313464620108913932870531345561503788769211459272685051467713559958906322386507647782826901680360130617085698288633635339821664116613355480403703821003445838081505583034017971208224939095038566095855713953746347628324042175193426566863925591774337832554820703861056330126237628769817347282242509461531890702150820504218103977489407657214990832478528545951002467959739308411062725225415696493892368273581434607727598033462643125982788894418184917380268704496038867071864770831564787589117803543082013186565820343540734229283474557696514986839150397614126133607894809975591648249062551685536794824740509846496085681889172036998737579643980011652952702772372260193575557202326310147686928476263628518930484926909264098547249364818141283168938328312579566213598835544520667408958409231486257559110519622000503080204257370028996601241363556488028033999569465609588576321992603000468539755980287655583171070639975066604761486777635632261161271522426710967361840252910825524461538857766602779608089830283706877813984923812545171789875779067691651324603108755181479600121676201685543613887535111144646445965948986286850038429381677597961912729990459134396042836227821457438491080662673720398159683311458313277557371939647621394703694871344837965336720886507609494431067489386281016686080935487620406295314268367901622324344216250096191988652825018478075009309298961687893514404852784485210194972931491229336642838361095835911792669732105032865863719619130649857332086615243198917751756133072533690606289440140362467357916861241907679730721538960992609147780039218290966056780515742453948127051582786560861766280887675485282643534579297510910374324314804905099720134009387120996799226673274569721997573974983529556634445324345570326260278293136893889629676914900511179164157396415162234596241438799849972397210625910452426655628296014596790128617641535247864330478558149625711139560325150363183745061942587907329747990654033781293234354964770959941597021691810368147338333306415138771322151733984093817465683332375212452120426351494801795737064857482558812962411141464692661774781738601561556967768080635428081339262222680573586043957391627387714350848477018662653169748886473868243094196018928758912021387277096153848809506565320734420589849785682144810993443271437941292340729754793264761829620403614436411274652404369175428358566140595943326100913231448641642049764947955201717108651706981224160848217072171016494824798077491801666631807604571639525183860958271832720865705298255892664923127405067312348772034977998295609410636030516581681903848011147030423901820457583727316520859225399475109389001211221942666544590867792691371154950789666576676546096288277775199570554507297923666208523507816894340032047543740400762179909188135109499396694313427985992158062927042138267562143534059246720235020642585410968595512829598880167947485348827623226089882142602796694948833997353809115310261572752606151664675747231126731130456302101644275628278219148792466989753209783265292168258433047908547833654269758433077955719520001012078724019881349498443843676382704117421003695116901118016832699946612010086053209415790192889761397840351651115993464204441482768205455063418483061619799460270489648952438970258434171773190315330932147980542020896195125075929364901627814740773224772573220191350456805599978569277543054657879842859468408586784134114538241240720656755982648262576190303383417425184853854038470371006908765080853508640217621010156728291435673677110351164397836344042830234780735456691438177047450894587211787839154166530924726979519526863928233003716850678762078775481783910819732182904787993291396078874176833081865318199940659792678221322713459632471409529463076197396749984634936360975806725366155180785981453495358216014802602331762520150636639939135142877511535321241122515057065723115208537650284322101584061898257004704391718649072412089171456120249173004379934999420658663798578734606048061922811946433156292568671087969712349623640619373881121802073791598180109759080113272257843002501113788034957920439189928830051624292176003376410793371968133192067582991826078485247571177524201683493481941400539164639352182737104891500365804792597615834365135534943843191509214629308199501835916709425302654032980324967615843963471143532471437039221486178438282611386688552159846134450580330263691439417435599175378716668814004529689343519876527230084584655015656598952113011048528816939415686706351783192218559553050002986483254447747771995501650826588967139640889880567958066916065806094048513928010222769761561382608319076033245484652866146494294839667733008070732006751042625141429624471453687509706878506600593940265187786103276547028063257299061968975918873866723051101237949329259764957482625519592739447176400925561852118577244308889458931304570975272586707145565142360341819890315195457218862114917103453059657845082618680743649773583175770086475879964322744548950078096671196162151367695085308923361238666283481102939804607435534272724428104903280756767003377271120949128434487450813568822156033050438835175410814830375344342084122081683605813262345767754279316198604543050444851055580041167943376713205581470587272088253604731064967931847963735278844788520587318286600656334932560235908889835377725079702005054144021055946107207649244091363372278973994663975123411788366312509006141623227657028541048506797449812718146764308414103002375256537304952767275484545999787163325331050619024021518146810014651262851039759839412882369862113183152477649679577744191332394798552871653023199869802398398473198178817133310344339890837958000051319653452338339010909704447143479426502628574031518152035465072823118385198658029362135224379754319380198343291431250275776675431686988860286567701350037258969644586868341764738783906654442181923585773107870023191744542871416003026828372404946436034787690357332618811431010813218855279858973034505344033037227691514045318236187832171998898905508290896624197658559805783414287373064809852907821459411264949921965113612567773076994605802064072391808669002017569564175955272113593375897911604759823155872535644568257143746585668898203737054970452907158469737635558706092801201769780532935796783807950227922001052016768988732541083893192509071742888108107086232075510184800417696968262903923998393811623663847871308193201855592678658980709850229537394942175424696253547043954732413392476485210376117773112313850016187130471064778393248758500636199119677877532680713924689844038826593605108546523692226192724034991210383162262972411440835568680499807460483713592520753901701446937391640928648639190537573932945565367754356329489530854791973561811689434694434436430308714442549106098294828815811595635629933779473922097851104067216644803205310670913037594884345787343984737076537474047930809034382443397058305326958562998479383048081779750890193239788196447472813485486485639973679076903930252128591950959453303137975185298186626201176126095321392633918271825632758305911893721069157764383887227842285290091226125140805231508120272624773706671615372979623651717118309181715228052653759337375581282348642969322667847133869598876915809508115049936337356905900842892007054825254617689541647107780117586071432866240448305523642593775798552448696080726730590765024885140814761891799989629290795406069165098627507033091008866119931836534781106895005532321232310409943156697571284321105892729075626652983068346126881743502763445734873130812787853966825948045024450899453850626222815657206656259080710600907194741580643428961731315157060558113998960765684277239548120624654927922466441086739301705267840652247504105360432350868815254382188405781522951987895606499560698274532892273270385375845209270924294667346895933777896580676951285904490573991307948762539798998946853448670842763284764409804653488551209436064288937383710535155958795075103681999586009247940522051548807777499830613137902641282737157571061281736249783647450207227756195212674327358168549611969888258311261669505222402188114669306257495384708699586574599887892786847387198643837904804637462228161268712763451130947831661759970759508533257460284937400104364503455658044944295034531833812907850888333858378697710849820665102062795707669833445177934527180376911410207557477431542932903262953211497882620351598741254642288439527779549928956475434710589858515900550849005696903693994638054127440782720795881206109501826667505282910042864401159690915602602458721174560455109407684697973682748145979040455219048418011545663478335343808815341403723981788190775763064723383684807661718788752544407318658305011864756320301713983390078987542441102627774925945578726315160874870250480620381626062841567542997110084572360794368388317756971160717747601977362998608470922561241903344303868060751607783650278916662836093176759695530149368127979354666523938986549220821261327763789820294679958162439870593623917051175070504939244293712287520721004790036952035305417470268810031314275311744562464073545200130335154416116128453063638220620318271412034710573330570609561041999774412943789723336195293680711629464974174674606161944284195771506421244911540670731221384206414126967154566438915947177796949351958346843367832214130374310734291743734376354415907377380776833554545220416075583245001412712899741014947054886472434158991296092282986240745516058914963102100059587134719209797239836831280110175264318686111835170173586754064926579151374058216297242018837510297720276922807801732353658524866103735524636051974175871823490873819774519960413516046880860827255906104828222575767463581916629034390705475970348090440043043333174134614234541274567798725892324090915108730592024279001496737015134772151425714802387818972789099319232118851804003049762893873119886876339770569031907414517629750558295079055157128977260343546722251875194722777503478062988815802764088305858873211408993562565445263256262930428543993328255032950289369907770549029470796220083902932214441126573820895685434478522535584373126933754793765994306991005699082156031450819886494389488679597736520237763805269495558714542706585174744459646823526941056851933737004914486237606597957437429493137628495423747696298423620404069903223286254828223354201652282912884434215751270602021538317845218564841150669394364364463390329462869215001200331737223159459937024404665464401070954637786273667690456425997758603414233762759258536312643708973075795526996850313206909183067913265420306400314824559862392657597573177591286253089465412516622840716337014979026738432530161901013729788646954034256945572630522038762942326480649962381630855003126516805447885568199731089679575544268392204851309190268824033771201778639860463980025603720606929534601536735130093516649047599690415348442284064946435783962739597969701199959968970550071398026714315391239146116135818340680876053466725530504223979280965662210911118477896503351900312819308140470647874036715555211403407030398907223233915942351265297171121449159128746969645445570922804347338410138588742805072514932018367654986544261906876750303979569390242134374752592028444937070321982409508528743929412781595864754303669533654646504381229553856960187081463036000681022319353567758842217066271778752289539374973944984606881958992605790426632428181883297682570878308901643540546417536779752140149169816134993044910420427417299073183796985131245595860639919965966899610800504940072963970989595175746349501131523954054363842477157673057968997809351123101270006068315601347056168842081862105906584385468535226530994080955068645181964310455005698528640369722726449640722091072805065651759005363319425718826190168520911094446230493872762260130096650980181502161161893149917554486648451019396408924245351858629668535880723702520862903963751354424084167679610625407745354397187202203898292588150488174626321440193245912638467764538782149003218736052884016158146769340972434249669596797455129521524754130038382417596775542251548689034984675846106631594198812117971334525092753070140856142635030152714737087979022966356830017879902880841938939224918844891176700803803875888780169770111345334911534802106585087570025517363256882009759552748712253571825516978753150955690868985464837948430351870614923135734029631365279127615262306104314092395653522974932610180235741449400201075752924889589293245803518893483362322662110704722279517896431135332221513311128130269965705654236666071242736067583376783519101251099443703046290763466149644955996730321258522840068128863206013843915352393209115790604734139362973234927591808942336565260939483133648102906435863118308259658785978471502344907874767879956674248520510401039997571039402206306917347420208969917560052888987367593966293674017209821954183371282339328624773171964386256653145512699222367766777081986434967998415260451946404590163957896049279139291043490275683817268404705229814089067131491526250441754527101123578680129893682849339139638336607814229179455434491680970664913188453781202579621552321288398882948309602541545158301556456231328450317418576979979910789556567996082529165537586122338380700692195796394198374261176767691005073575014710412739177835963479441159241607409649189238641623144315098433799999574123860845568790650179660465904011900931064914597645508744169170936159780546717465899301704137539046825444198493069773963033614330040322637044138842456485319600091024035914860434195671889198585615655465775089014431777128616456862190012845946074216074295710458314004620124639011021019323688746231874639063905184609082474661222258683171698906360640254048935087506001935383235847779777771841566927112240044551677054193107303883694387978890462421759004666609104016362270064506716725632981356191695775856133339039827759965225099040387093278986221595494379970630648070964941770800581227055933091621184400463589378563243586419106154006820478790162140445787717398102952607173000991217971137542433348822666186718059345350035979406261016945589487985287382394619259273830058657862369012719296382659263937819596877763449192781383915273468510317128350116775412896963401763368803347613242500654794483551600242312566460801078670258603760993908004517562600906555541309840427357430050066877433135282061707299033893705322254670042058896404652393614283079185404169666783240709559587709423200941561095553433443491385438840861082486242898596197412565717042400678767123685935372271091567040606219434726020409941395472013175524491583459442749191929135023558344041872069743458860538337018589765720622546686389914740617138440911140542444892418125280587378444375990337027144323207852046419314755947583142919416971906297697904498821308019258759048587570102804989009276466743181741931273879879190866705646017414104518365473639211201831272642135299075075316741860411390850791740441726580092889664003508561829937247213684341314956929570401981300160608754127957466419031797332593924021074167670242353517422118285715161832976814222607309029636948713308807785556663239728334225270656507307251890309039502297514554508141344442816541436441049217506227064362861017571711204836658149705824635780075504562645374462805259328415678857985069010580452797562628572208304783543668131330317233238135264707525779523301528916639528654318999573174578016782672814602226403818995669379948424210982489742008823311140013410440951609308313090546550315955515473977480221462406761105271613757998628354396966578355245670079360497518767958500434785944448348747345525999632392588201044528789576723339110852081379948423471531895261281875108905121354654969246066557673451857177405113980900507493228007094056920655442879928976809138532882392312742649637907197997852490903046095850203281301188191897987538612770509831126796867211781006094288603341607408020448532441414457945472105469892916649981941599750811708399758552531253479307072377194823738336760655418502113337357535711604984088630696264989015115562982779223043334984493678391519856268504325200844798554629691262997883130293630646337045033155263752040473922415707285777998802963532890069840076781896975635402176619429442475372564984572265506787359093405723897937819146080319827113924804979411004922981431759499199310328089795747253376814606174543313264489248037013462642669263173424435742705177475650675563413336005917831376373759203890204265171691865422448413609465986362677543332217290972806772121812294501776642327167331091927523377242450590808589275655643441154844388895321327028560540600643524034011774394263831492694203667677312492334460461527922287117473732068207379504077538070248751397369748722080794183627245792671586058756843738256966015288450159363605799764879554666897963172764144582671409839302605844437311832195273578242992380530460979253217595294376466967178599565547975260104811160900192559877031603692890535464219693617900985472078551257259753257687803418428239419301167647127802001324490541706871940608748642509924900412437779902567236238752134487546868018057002677165904571741675093585374663278466147170222912775381648935814037542041316317966204626016830058358402780842508470610285632146763492164415596565399512441115272252098855763180788086283744439537336386628913943990459186935629799316913207431084912387826967081737983802760073283523713057038353881201921780745570539213125048219766934063942802345335096980545219196416496966420519223222933252249809906809438298608239338686773954452673632194440159865904066528670206510049409786713024508960506363114749789754318632737637932022795300108771768440261821800385909060770293459786409329695112338532614945655859677117544246194620867417898814347780270237891838654750736725070123164595421042303682530154992729230497065006887445529088936646551481938480563745544703197171864227209658706300498343665718303094585252856298925461326079017237462336013820894764047217671021078363530632839185289426309708352418426880666397245435194987459495272368823511064759383705313614945233262990060613544202079008007844359185142381095406246359288007491747232601428291506647356469491490753130404119487461275842517254229933765619132283441361596884512305097922908093477806100012024307933675460695671886784758902916716281510479109848199687950537574761034383928929818347559135337283428884922853939659501645942296849021635769846036566677068849790614937895866238978513950301955252071159479162430380571339104412351279771742589499718132089939724094576305043817654202377493729292366664085826356304701889428471366217962807794758141064720396869005733588378323839385156436769291095321263095302372341887763775951325585719886841563511434654449213461836258200177391119635659736209174802895107119119312161615049356614001989154067719147406045020084890078521044898407155872491318142412374531473909585928549192619551275281540455554894860530439518305516386529635114358554267895788433224703032239846296940370036386670597551896228216684947215516799401023726052761920617504560496637170762638459530053344438789944328543663014641420751502676529987148414838592420468435150528589264835412959996419063836222550061620298517908079995517161428927433221628069635121629029650503454559800242920380661131224998757487778145433349578136558008300458790545565523759643089947282941565846898062943112725975546930218879127310353002168642276336610318905110863359639860709747374195529341785078013653378687767911514738332525130023719102358758867980393855297049983218303899853337353315103458044340257304227586826097239834223150176408033273176226319675659897729718394229716522776196734085734441374759147793179333989243599405813960322813465924785587565505751594286116131767395528348150808518520715479514392667287510574413867697189020877761195924593592908638396962005768650996293038181454912807341809720403203633667664994439199362641452271450735037059076093857524400009474822971362377215926308360221391588559094614074069763012970865696906676244218618363552047279035331753093607797787984708023902185958744878960745237490562837474189310268062804817433813001982212777060921847008152523271459867234378543104978390436493058607645357560259838281625409849639983181129718814386395426544082800861930572917995688879881825724409230860777086263513136094630976774099702847276682966685429084540520229190030343224718982049938248060751638727945668940849736665162281336948828583395313505021705361118175021010169609373728821746838926180687188721171220320673364983128125457269276310564825879010685752080806339287513648175837581096955969933848419910626922411365611711295479677781238623934934140085470537845837828515123279873088409373572110045860365454494530186810732937611086797828280343661333397805386148635943716350087711931195598480218289926777976940913930849268923971610875162598136464279519116303391796129190017609532216557349110374712094579004186028992215511759156830362494716086505186322797429561365198303518971428760223750716059990468522702848242025700962993827914781801540664169179259696502306167496772478419474142009242977297138883251166552227303389644473052704902414772756471540923768066416528226112216605519035104953216953829995701741146510299848982516439056990939459868204985525831287644568389843421093658943105114075558384927893699740950138919882124799162098883924355873655545237536238906410726631365733868871501437667657439282983207346131403949526170953084489658005655846309523296318712451836616630427749852736202349067859155769362205347242611125326389143025289376673739262860646099166425839998746474341416395267773224693331340898922821352367160956282513492348592680407355181536071965673950270691353576343437674431172490845537767032666988414491148088848013249302584381770118785666357293539878114064658836941728387365708433757510447991235973659724344557427183847336205164098603931021959212112257203436510013963890649452967142056089086176982883163882838252297076581896118954572982581073394540172774978345406877641107780044074292966398079580266893129468908915006186184189218530416433221694927821339211827719021675202080596726274946300280538877794596218568307438429892564630240890633667606473897049687362677347143193464378269527837602861465838927893362323616036869658885994407170901438576500856237035707472881230042776474747037794632000554372747365847240261839025081850203994131095039708124812210776128324595639956407303784228294941790417991353653370609295358041284490195677174363265587334302844014814990754651032818138782109072143398374541509572180872332163931411848854048824761331564993540303113131971438856668338021766683608295032360405951367759271551656796802958597338036134406930781375730116130026579702426559178634319436264662301868725879630575563660782899695363498145223886600730147718791986416066143908057772551924487070829109767355499112006123175361847813176543955729503854529236536694133485621787892615474045615045230885311843897833507480699448020815830478029291395027421867886919801765554681814454430741911022927219318644407497903172599397713621809971117614689000137724070092348499633083203042973219675827894000846652350711551118348103201448352947448851886324133039606763958576623927274353864765533259261139160105897206949121604194384362769225020408360183481182715855343925553745823628255237262533143596996463666782559338210091759874444027185225129064251574535947961305271895994888478243531722562754131095998504427747535263888711892649770717055022010568232530711543895647583031225511628763968835143262728629815240755887995962098043946596889329519044901057419141998149858790000533489612069163111754682534858290076839537662641452052739360786513805722415068971855827765389521513585658976407301488111133738692458889098227602297339512441350751003872589482066478544539290551160492546556830179223635263775546268409049478003726847161026495088262069357484631643968978962700833763037430175619457389078848104243092855236310298355174517454466065297670819947432059951652915960087156521154612967354139573277516784434848645983391375848562505546017507922098835877193386013948967514833763802139034152904283626453763745808782815379047085445759676142103772361232961964022920228951469688114470582893098035700150410369484170547286922751970446946972920349519697662176641436203210987497172990814400037157392818915284083197422943733677477825870921871722529840693055569352258367862538776990371083298779795051691696299576070266248772561115321024522871797030937380056335405929310890187400495751330564575546864588192534437227170484110760458345052572429176844235610013945668245660428800047407292619165754409533650005445833313333486658197274927600124232382251718468930694085723246155423928138874220276616937979356634410450371155982367577143124912796231411501645288804409423900517346456378036293953277878016360441042759186420251677118235910812494784489548807258551257454960799569180129713172054038424909608736362135131097528620986224262418742435783767729126417918801376752003205633261892410186165130348102440068568086061104811294274090093752748578585868409229731577936688608619964429073615749053303451074679213921393573414693782678405331319923544330346071951552057006610011693010611464556489168050091450055613784940454369313485910618419330189545486385219860080820040286332226857792865947499006936075105780234742015035317737300836494989167289350909354212097520747272504366618800613349590930611407110464599244759717542401996540730654084169735239250415635500390264400292275155191086294136723600026941207127811308763653161522443351622669190123101713629501331698077009767031225923340995423527648984420891092439027564816170040721739272566024295837155710671685414187130035713102305447259377064542064373028381478419102186882184665671383261282637806975309886082906633039669846839624674768851145064913151861552462947924811159873110907977115298058809209285816227706527567771953931120357319433459343473372951899415721472276190367800430879590479992664242819620163009888371488450439801224462455602660408616133199723284978761593171268140040450561896686909847082394137085518132619963768897021241523137818733130015601121995657035414106535356384524396556426727217434505317089708620347654758674128146407197922805744695406849279599459045820901873176586616251787331296935726248763018274805306560029462418101514313186902408749384112421582150837307412833731003222668395769073506988176827548481773049953913103184653278383865626717476001806278875804925400887840392798564649645155278927345020015410031319050962710809628895237689828726513914081945116719591666318188533731279822794780963841863308123249343682732708847168484082306510680498401989966141848682192923712432262932844248302361017983910042699040774479919083761021111239606725071929979313651770673164504798623225519797029925665315101596604596690150887068882982527286405989514250476556464386139713909302025719458558252713927198113277588869554462920605202687675221367966827468775874528760778634491382699563480082544144131825347204948014212654329829678466860543779061338910206076538974678379909041982264282917135698004347246669699301575114953715204374031918107954868943240622909458623262452209667574495285660164657873688424654026560457697329001295837874201711510057426597492533286825866257024583781152182201277576078722787536254417678516818491979949497649100036934909550819450205563811224964796766249650785802327123689446228669796319715390249901099117672053296592010243274158366462851035194005414571907148638824694469038224568838850078244103925016359715374849056945245605312540379176033101653477500199864958058355366142071699741173310552540420552110773185810458946104627355807094714668352878352224424395195109596480193399728225441237291197533523339788200500320948307780662833646063246671001800870666288977157613180394453085177859979679161756236424579913187479952951873675602067243360786278316446550471333425577456220329705837065208461481461803279556572311289137915061078782367241706315742790860275826804832820482530595944865355305335573608943668378778877908835773316581566564046333631178965577553867451359654743792882443277617766529977537884432122626758789612663833068438490058005776137309460432457331415978761655537226301616423353451002374635368298942478242558064807664336180523774156314037893371269990081154608408142405869284464087423891245775193664669946373591584411931779500858480652805204513861789723299109646117709762971698805474148640403588839279500405680966882682526783325875358351600505794585314848377702967618326360649136605647118508049163591118168057356862567675748362796259542314440842686944417808465459001098300832470127327673251862965281011987566742512371854719174196446109963814369225276487686524296433284880267104880448880155910644769829183364432563837983478922499242473473474925585572931518611034534137335672274625782767187551285229615719350186325172175999942277944125127694916659641176453311307678394358755701511268339788077823089327672921967390656501679098849598999718362018377246697916468158884004015083264133901702440286390700883106649068349767628800880971315772643341647052515364717730661392722405632571001397299899095593747730559636348560061598496125351831074504282805991011356152764613718732307405486443870951037623912931744139267996447473236182136331185858040699365837776065584149533283266028778546968943002292685310193430198737058717358218098006693891250766257084746595062899184683469499119620505628810062352434005024075121256597621835683455225766840491652515707584146144132895209700930687290227163705638590610592169694573513122969929258356753188344521095375701735632618166442459183071917325928053735184818309872294562621725404441898640397503845136061110062107180886892905388556538032123197766450079788089229139071971832155337660714688158886146659370802181184864094912441578015869647372390959585803117354939639342323981218838583222690622730436915479647732903620310231584622821186608285896081690940900061896442134617344682521433863060864107649130309630386061561226947756727056616419832266128295594054185267009938944181452669981512196539671905138431353655032131380682424517348894759250312419248417525574038182351139026163553709368646884710152598668200629666043326715884702846725282736751363691589349857215149576969573937931293333878685870155864384721219088131194713370873382327500056239923744771721034792168999587001504698058956236518854268293985666712723058331747394679893879179844757263966997256515093350494496239329894118380951152202738593619916208931559373521319380127029848188296824569246640158910245224083340735294723767660187190835662573439468354704836224454619937129219945521607705226537983475106667694632555115664949116807052305281730869088268238012941254181467305845934358127343340746347109810169733784511370003614666147779737566767622118782539423603706549237225664751927002508248888604062234098115451133342239017736841135991533723731846766340507156896681938103585480799073996134538888268575672435045918997400691044704111628786526792010616132471999844823715233499783637523014313513282695539529010864942058186043961590530582597540015734752997498272309538705772100053964188697048745289735915687927079944165810494426879390222782002617388424638959221139263874954114195943300270846714237068128137782298487438922580196067322955766462225607265008320437346368920697425731014887778328145970055062112529709439551348206970678092045789009005563599319303007467104257017918474679952016450985381510153969617354552778043062677579487710979913625936622349370648370598168419144090086928384175813696077026265263739842179275186558553400180249473884247950763593696251658159800549011079707269532448861374349938844083661468592090201387462929729093845395689309155247032545649484834255843539275002683980891951243857147278892288180047279791059416493716641756765094433746540972890144063281301891438633928063344349424002602288104716999725533939570764107067895059052416329022129176157072028133796306498598823224267102982642645482279327154804587649921241321268182767230903475595793031158482489483014173171934310466356199829342266084524197727430008947575190644364250704011573813177948095995339269155798840054782895365239563674165729648804634630573673711721580999020989445373325540664924455565704797720791458123045061888066934773161154921352859808111096403564201032065031387832981444308563872065793894070562327958687446085284069806283901283199404031753698172910119302742164874460186196321594468453807557098722129647584261058043710144144891074881337667213835454142478713666653871820712848476170700280230771398620015232852846749805171600941770084830607816307406741291585704585798091435416092906134945970968892571056791005567529007475043799463382111921199900912215396556317263329873593583866650018970210376810565539125811274256503658921429101919356774007966612713823071408188284186493254567005047890235799834629665205390345267229736797112229647576384279533707030794156328931174663489962869105186047227268887787587979536548113309718525774883625499507808962383116823946505116854708626136402178204452762262185094687714584666765889994793710284570278582886494557819210247088409805488404942892027586325135120327683691655093337575687742311036161066838321580802564333464542717220249562180605935860577836839825461822364498335419919081817549239621687105280495142246375891201136159799843803455389874368637941643003051303788958312792484549868399065860064078993352812785194098401671972972706993221339071842095517824752068026846361653977165123457434030443246614781771199610855372824309171126351950119153810332261700960781979229460355260187876692362124863624885129035442839737923251389555064014239130766546753811452440247068376528064142487208913451379638599944935160867710746014327477238510284749466636334619417230160773629762889772512830025808468772653015168202925087300134621992315653871990410605507419303633901844423978744233849982606967605702053536845646427272703489439236648459002459794947394860416671133571702812092268052781568833531326433175902994653857485218471097204771824805672156192313199662763782820670627977864382255808727403553887557637225829990506735915414714947437264983978705766331150533421161217453408965415215549774624788862911830352604036873282202507089353084352345808150719569588924126052875718396496305507662860091116726175300728173888458812373598537269299262642666002172976904093229166457800802861573105013834059960521518020233746749329410957691399996766385217537464885072146422768364860918319733236392159249039000696788812101129746358373405258687854457022214620873685872796641453017626335415588794059073212225394670737826546756081074649604180433957953872113306464679928612294857139338563297616178508911558276611979023379998663577047496379682239935095795450820550511189303477935702443035283044283470241059046122468081137539970742874343512072417982710008293319137141928877140989863705462711361421706031603887715873410756266034626034693205757463632653061205961474109678643663281284892462172769906044003564831372701718432611076286907062962876782483372521816784952087018738888352668188068856155382102917938468812597592238717575687377663652172791829359888912481290484999654764459655545951531923019867342143962690524533746344986037179272054279681688929555879457553413146588128331024557479280502008666957169395778015341439067707468844437199722947314209624309846450531853965219060267110060566217145056523961676291582141003930733389291862567033371447241709240794482208195793496981155249255732540880883164819519948492518859797181791650718864975353694319576366026242617229242548005605957217481535593409253828324333447779423450894659468295480156164008840235503732349654987866217107668010625102744723405477738722823370632442234657130998335356361790451296645359207727938793927009546601461050918027326975551357136549094051709869143338343735386223956625316705081322123467368781442761854788305850058107851555678807693973242122087306618262009083050415060798786720780086387483147104679622180439475755630990862442443828090707516360392136097396719349408198200518930846341841851377586942138597002519235721035235978147565628370064989358061942774783767367165686044012425353942546083747346222496082982724724021875373415104438842714089303290396631705985272743575722491980439640689369083307046069033634037611356692720080172060165258701662092465653183217835903483184668496336231773544630393379348923795838233801483524662070768884177564682572717136191483552894403611579624682534709995778541481648466735735611338031920658221354967829629458379489925909065715085858992403687772470956022520603041059454722357343076199202003870342440222349094967180951194798118123176621613281265741888792671780402385780055985292325615688246765163590483405880044838458230241998417624203975028214420332378136469561291816090880705226927447850235794371561428549610330999701394772146061745007882475417006791781881337307355387867960101242192434173987328976322809867622937453437289981172593008222324624375985400183726608738326471207255449130643364499510019478254452554256119854446896338619233410886119023663625200616717734072684448767087078633992885187857488689069559520575608065535972362554866576806599730026961449979138639491376433439511781865616972457501195552713987666331024199364961593673423336765935189951082105085455865902404524395014958657097516880177298008199222597252891615283264328713301912072026225055993021055200593642720672067436580819591983894686241507538027516566228260425584487236963423152737049647360124729374705823518946377728760858627139523599906922325870359910709275360771787312754815094035127013817079487040027946364336884277169240128264044475383002168060555973991115327567430425079168966493653461066490303392645479826245075275297035511702938954939260502611673280508063619113504150387225535480524950307259220832129916769939385789605219190402265932968932015280538558488326767365756858379942868554314884845987804319937107848408933741977908003386369665963270004800753410733130286958286013592876613508856941307268952706221194446570901350002850781700817329693606994478080116508997746983832753354462231178900414244561256592361906713778221883099012620503871386374611075471382433334260661119112499604311974873003557846753855809319405365641438724087159307028002233620240342092669248410365413924603252815139106025806900867924694784641513774253049081133374859256590325210843787058369018030593385329700109696000874250448141845892598569653455698082723712762554004837927076410170208700067585244432577526457903618268036052623878996687562686845758711349482617027872642077405327791783966059302468053761252878362242163181476420476433345658692429156194617414792930326727453319879627590510582556439064127960599605162941055835770035365632428567139724330935998617848544097181817255447779140932095918405016499843861280737887188167547887565056631963197673047058648946240459492697664532851091987443373512156644888145132509782997998568283018302927181265875799749152594214260663844934761823669436130100077834745045443839405946382531641746962167963754039491521160083553404587300703416744768853863537241759119191257302962875769986698306028450551254255778130491965735370810975388980514498281958517209632887924975966878585576268728363857714282335234665679589269485489195448742419522285402758101327257258848460465495185162225272148589697272632895152661007419195971783288365945597685705772628478559544883724075791628836314849064779145534872657558501119422648699624391090095948421950501182854570218987410345718389817904863646490829677731508367769973355150741700812202580538852451953639834531876177812318292338451614920189467872021748024528159190124225586516987472590215507624974912267376594563307616602119434840323979914407024881734343302927257109286573898942406495618109097976549851184247711339007288092990163018694114212611703437224966747668259888183377748915300135800231460242604720552757993198994096431611442985283161148698973174864230826264934163168452780162228694521765248789069955609915109601587941691038845956359668529361259912457292837693574949960006374540510293312523537194211565013315475373628090714281577318511859276331001448478115773051572774116363217629955597106437427871640408298307104630541915599371481539161255478112643743890397452120735757677775074211505082981008573752383518383575399332029759891578248805041207059046440732276884830874353451226454706269409754445136975725708915057302324257356727210851684706739011137210182805804603224791660073832691454159319829243254337464860496339653422481729383254751114037593843778055810026790235933847989586548607874194141688407304341734969042406917428958291133881573943227710156196247763551902402171274686278247219799676266290091917695564381053856926401859147616695431940776934896555906031303415790944551975602966248754548790911175326993709371263806722567514630607402334459831482057807785525381693436480535680794520453868887221458052022813716526982011625061657297379748075002972339219097501220494749417006593929672960287387671952225506308643850360228641843766240091747190328339083995367474686131010932754508537010324881645635754895586036799189361129787619083567373122748237818270185310642630961347248714360549318903770261332912020741185702039654923368590863272900347872223765989418631895233975752644826232284678147416783941758787792841341122301988055483719196620859931129697830338865167585446227913405384476083942355534490331633000124757996527616852631945329309596273131467261926618198321945664800489127240421657304136383304222664897851556264565532197114472973260582132148615280100972768015104029896520206386068600459816142852374999120852093472923079773503015339059776478342890747487781517348157362688287288473096086418866453032947600753309358538027704926007328843294119520864829711317593752534438895881425554838517329528360113779153290113357598117475908082955904750657658456860498951986993050662506017097078329876063046816009521097297787513601863205458955781800595875717191172323509157871375153991255150526069594760593315763509091797733208336136807194551564074953303571884225636931711834397325160573650377473214535005635956382624749363822470583684752142607279199552510745513042443383364054939700333371348800299785946575449427651830341211197021029987336199117764793004764932649152190991777236255805271272577992841862212722025947295783642415695183890426186293194985023980882790182277086708707193539801835763828047217627026149024918463402523612956451260017975449613122087284837388331938574020189082817678502985052621563352750833939410145554721256376368546407909464765381655080500179673737431409908947484169143006508118210399009419171429055442874348691778082841271632833493337387601898051923823637302197650070299199840953953640819293935448443378672525707772959596138710071579214721837075804150054413498600492907499698937903488102082792506930057423601746771263982504447987947755138368875388820775721206353195865003008391065447149075492797115572184609015539457332518638981285824687769598008274176555499255652637871847498870632914943908030741726036758968025487183739999619682932661224121706771339713788092520170262301471782080063916213598205297385505558209594033326470891561955522356638062641257479134638253749259912880143126144362011718100610472258584185002863415621156884418566202827276600655362434165318617270547046018295233295364896057333074530647300773945817405562218010296586954554296232136268085193584500258735730586665195617446371811134477563610293164229299977128484739924791499752469757461676524013339887118993502919950725940354177678878427586317338620212314331223245499952102264641917059020637215636487044104269833633331382169588483198120936936835919041149316234787276366275921545684107024174052979256942981914981740639527144786905118423433719559261231919375790621178580909320588479483630579561215601056518207521648952936475049978364259687880476092599970186536111131360484481043431372673271493251764067795912827041809284099302148095745786634937792271213755371254949836461321910547901195080548163778231755318805404834474568234829552821306383035954647975531338603713165764078334088593594573767196740862525180978181788036986011661388347129991537711238341545287404899564690282603006885427634518962357355461815822221407196786684310268265573811519493713161823492530436547791887277303957729166760359890682984979275326445793020562500419821581783367975832458201670334401637519436130793606687706059615507458187300740588554185707771293765395461112355201773745267536502771236010262637114085024937545199723881184972004852954076053757550486334985176039343403658952960860734480553122955335688214567118057604758841942058349633845421653770202262887320328142627192419113469807153506236406048801061017613964306550666466714597747927512750131334659676463960699440570311860560878122806328967816576537275062967283576263974828384647295018917985604824919850079916092323997667196476783301263846508088042831110985025546612968618556503500123610685297435664465619849209211012663758311954624011266194893008382843865999999283333794876598213558839333097596539435168747702542038052033733823178938782825430477368592737723574788865668587360925686910563774468511315594786736516484921786038920469205739213739659762934266179938759886105571384739015869538001440033773942596352486926368960908705395262510961272908873767982224107476784882990262592141720651354432719916459983330333820509702367037918912977711390002179646455681701380894182584629598768936359243937980370126043700019545375320947585656686261869137769323655538553373664018114260401171263453205372512446880839250455380642547662809345060391086151194883142464773935945361134626325397903053106155154047570431835806988891168508827835754062604700813348942775641988110461503391081966974360385607326708715608776658858910608960720874715826970169056266871992681584833517410241095060497613332210304683200931629481966641786641089259633540386292413015247640415195327618247072352789772769577454314914572040541799531857883749810850505715767111058158521670552201100240312147171579846458543324890734109876109929564967615654471880624428493371942227474044983798596475584133489410742608333615212077501929801512946567208421155076388164598896617646436976032892432451053029825051224268070373121280839351220225540841513202947999805751376864933655676167849947133492695625773907848371824828315567929819728778686290363105606858009907222402153876614713644801965614811245388627165423342887561979792048557301929997500417588186220355084352693742241834775423575605346725549561541898838178560292676908506131365952880391735556024568797177231060321745760497595023225629419637906309379558104490958762135916778658295393030657653092307043986757062576067142706385260554759595253213047800632610710768083216210014579464097769268006913907193727253192285262742895738950413768547745929603359227262526666835217070318949628272456528458241425460630372804077747979885412946353979992464746913355243372318304535384890808089315251813576848527285891732859174645036561200688294705032047169041537686780019293050636695778550885505423698901222980877912670610523562973580602220182943158073555219093758657747362647369928888127978293339349986977352324137599315546363119298207065372747860725899731206930627210401572394384260875603932638706392902219030858909877722019855938537268814793228829223698259046430933978816522998597111438879191681125563749831316110931906115632552892612058651598514939761270556240876767140605906275936789728632046558940753192715912951170184437557585352369782060346030811140856162220429042890528709348719387536681994211967871603447511656321704404160535134139017313668946388738555313863682433699759859706164570626704130459126437284989148356890455609093481011580923180730184599840879909046157493109861431331591978406063568318841950570759621032685084075395110460713677431506318655681175045684291098593609486346869593672277580773060728837988142468100342685874419533203422259222591131568718551298843839977181848177575276528687274786799756095598144332697980232246925174800848043735402673868444648250945683719869661983308898587835257932328100478498000016592407290314660281505647241103452031576527657717145051080460305129759639033690487822708390133104005385149373537497295161348972263979021198896344486620188190295769295043464723057845265200580679906453900495542748739603331115133434232393928153928575524189254275336899367076736032707695340715397783176932998580029024738091222270247003014973214830993493324188082111825695862329465185756368975416357468959866026651728710637317821154407328308409582293717686280368564515915257032902756903685712988312781187473459607417310097884731562838649486193104350166181226630376959372676458853838094304945302303026801421097550250389072148424600933987543991538384213775459724640986873792660279416620470866328438766273660878272150035989277651707445477065383961960283431028523840913387237856397953682578837058304894726634813482131719088833963367241231536397295203799561405420265235573318226053603015161076727016136677534720210899524060190190731071671157213153131399108734604994855887930555732907486675692499177914777762752572153315305919154375764020855624311494453725459568097025647576424442309047407014493872009314855661267386418994254949313631047596189330349094993072843240900986604296477641606362128947695172656741692210412679197620262917558530596160588359815094381398881554647395390022108597871859240596478027678892392428047732324168011508809942907513006728614972737850416001553809727869101165381637602995600199875677105287434179648634948759022843450810248452324285061945646492828833802467453143600766539393253169069347153411102590915595098099960777108192404340081740190904995224169459367084155126335044683742354082912646538035494169538468719159478644821690719718827904537417589786565396354364174964211383323912726608538295677462642204374861375086965603814411544678174631824157801254897625802405672218165190255256466551041784031399315527349701282746407837967734310395750011676435012323921872173693956157256120962946586125817922599712293601560483252932466059000746753828911358876966050230432754644157727204135535343106923020990409588280284249254566092255047367866335359776701147547793789512216395039174883700606920832143131056511403216591497160545033152608756244303975120162704447566549744508291084491427532865125788432014337191619507424345854267127681102600799697732731091087404071388839859302056854770568128370032410609948808912037233751569167712944767701057362851752692267386733249041105761883634334373993174057361935369077705806991870011038755068258651233963419298473309667875732032904837005690335362168372869158682248493164586413099556128076135431583947979650364579844225293998032521346097286226953626724707628997177963276334614112070415414830530440196754581623598606346657273305740334246756825399885570038420395650977199541002683762829751197071569287780588231902617101475800897373783464992100430570761585953225073361087295702715074312297920313721103151205786945818242017418320565151175338128457998173296130009722859113082820909053314760119678185038367530347047000578748360997590909129630344182765505119842942611742125017453108837615277210320916233088335710208577216259509925298643641820689439656908564775124318290301835339510911467513718534246305851770744343216131691304544562072955779149889048547850294942518699230156420482367299678208543277081713993729713647285516236910280943949049809571114798735326336108615449092136210719578627182658984645459587009069249248820523435112868738626912529335695565624401533344756716240947811826571155954756699368423562499979227723332856784786245269498130382957671588368253903484616714968014138599194055597917917858281975784812372478022962734271327380701712131593454022544168614641620641854955622017580271717419329604030724285575914037487524125583648684782653057902112930150460093009791132893911020928422212628874397239879299987221712680244269570436408269175123947288580976631735219034774020783010825008230686748165992916214204378559690700839634317491570400704911133097023046876615857483135080144475992852020727860406246909862458183710566318254920666633928689416422316813978537417455898355023981413476275686616221186367561134540185061230145050641464766200254793727370169115091057005880583855287751553568346135550888143137449856363777369433473077922369202328195126019883348531930841391296921034511566461558171845160918653048971195380110248525749893158647233999267453725219148787799788807562673750638723780564697643526861306774761161564030889810722990061362029138553864683684245835443420724906526943131926363064557919103281746224652305086811453922379034699935761819228384117831112734266093171716054723027485870001047866059835368762042349093563146793544370070867604441608093430388964169122938462935021661100210761640546614532826133025098992955391927596299462782632632116565874319551733594278724799548287227810793149777110353425543816635050218200475598457194707642967827158772684836236111806592445159528291523018180897167227176349652283750680731317414453350933010558621571973367591051672048856745415728163217259397927018267765927879072697595865244447986278487669539491461017760577603607110750866034557555712962345406637758448773140658050218144414570121613889442942543012726143996039751548809684175388778709977105315689605779553635967007806998565011955361699581910918533374036619990661867745865365937828951586192168358385372055171819669900290622524429719647760765792120834997981483108425338006646056465462844105959758701053837837669513414411711576580152919723932831823741907241827055621142924812595008621934825451856553970125840647774590941610778984486679878798360359430670508264698506509650714242879841665013303364759597132945835690587596970583659840237526455951428415274309347600284805973744511548230400857745381944142354918783809292297831844140223844361123221688505624335418588432511544720643284962084563281194108270588318935428845436505484535633008842668569356364289020276692308486633611829914298726387988068299808612394976329510463591338269125251879466945089415396493327345497299448983629947399175474416471971731779872683943602401052166101498152655416254038545177952158400249587987974104952480047535581645441160796496743747671842211835815737673704896816576186466844739957457386389528495665189574478665977781950752258882987024789009640653185204742376952389335501218478599660074089650383859514701804072345776878385607580956164533921688489754259830599175376101323206354325344240488600003090822619003730634184868861438763736494178874012048260950512759863390509770242472529801758826392293870793673252211167057926441409085437401485304590250371696374774586071914054256943815611701443788844188830915922927192035841298716228668505324603894356500230734167083751864595368025275824052092374467657335127060160117034908068222327234121408469596673325161565758066590243101303206411537511687407756787406035925878861719736349367711142654304847081133303231866339855094943143974804840787647767832770534880159671410169844356697808454878051823199575640739788317702711356439242044520333007609764367969990040958549556201313584805875374947256934033090917283239418369219324915186872354773939212756117946640185118001380750102777217130642042532655536114323907882035094537707508434889230102069364851728497612938332579316328040240236622477073584885055861960214818950756889614649864710858464453732949655233372641883832621271178272406932265715707864175572896145338291644891865204955272952633002810498231098573394308160225669817111505642180307494361107813613896822048773651856670209197871094272276503470633850855008421170940405082569924575628282627813751332708052945523221608454057654378540071799081276883669537497522864067146153456490112693874267114036215138204775875494285657227853366584872908691749510102375874976607230169518573650905794918186915420495148189506331367232336001791924439759401641677198359451069342721729348371331527082522858781476449540661682660663281738590646817084809801956309540191002303038377210748322781390116820825823892779361395612062162133915786407904096277774306239458871168135932412443371094483087422994896572704969668919097678729567856837491826622807594707308763909429179184646728989350381665716032383413004822149073557310114756043910764230704997141717927224988936251185377184456536112435366803341583471099997812750459310729492016400404387368910848900002206589689495098835545433034480634690683626426926225260480503822296566585644546381725787202422393060316745016053977551655424603074325691453841406677000933481726253378578369549688018197142075830479025045449329434408065470696670920819668718095745182237903331168666010658854646162225136807558072817839904993820325403522221479127873573379240505817047934361116046575203509649920300943063385151557010396543615600425020917540836802510756962724054007061307391483997821549752696200677717461253751774740807704214694980724656692103138036559013914463193378524956076512895884703956836005240560377322664848897675986472222368704572600251314653302789490736683175428527930436416844913090148229779444145397767000504764545394419974425340090220649707950657786676256257904167879517193228216048427904222814574555552585011050511185320512824817044934085006511105859679661134805431579901002711637041462558845146953150161376530986346793513983064421721253914210484840180699555558933864698447097220729204416001744645744857898852191332549713302548209802199209468670551308850411232159894030606077640708862153022528396306106149844929747045128120643925095268393316301653540689292805651871572657874119402174780917279954187411811373735348232049240285444372854241447866735317203972840999210753385213768521899202754763751550880323820345141044903368786105511397455564453441335280589331495072415453650425368635876511464557763852861842225003735443386084194572025780836246705161354412193605212492654785579790112658159199332255421473361025220356400358279085755073052788354315946741793742649740740947948944779573166096230217323972884026016215508990745102462967183685916037890598163574392667278295029918179570280686365101245445154413181429654184524519788730520200288020433895520952126242506820736251646482968883150509597010002264372135348785826025335789842849926425984938269865559157455227722304478367004512926203259072844700707182646394299397105796504924027215130909020163225789293646620690791141890917095548585817099969398458241888623043463864685370946920190866442500142370490706054794401636362244842049461414540733407720561367537799471743464186961441635564294715919709591245729889392338150010412294395852881242903163818939118293640475674801320054837776422413083227337901680551345611878652637873908460298324844967776765267144609098427240922194420872905077724742271284919986275288409545361224426081223673026362416664636769565823405093478650114354522301721104318296746118127124772674755841834739182964689242439083589830410778612221646674139274580844109344670914076889081154804269904644766179037069131864316448729348116247531427094795121837118954308016061368674233086520685683926148047844566474945748323298371127834849457568184823573812967298602509445631002138707680490430110884104356065956329135513636595379057745086346584183793785502138550730660620323618920265343796554240913886678051764866023556868010244438199821740818683080632657934450136606958831163527659019637109122168302179943178178115975625693348118175901637045395488002543869195029394842963338788023245402686831159207714726609640814729742564135237707132655865672926093521313563269738633451392323794912727416044071653328372766636069920782898851581890074068178835600338395502491054421913694943840259289757680416479873887544190710100738825026002505293715712059882179975190525154813512892650703503129538879739519680714631297973939885522406771074781329661125142444094254620586560563864841176973765093222320058137389888598930223363080952193426522815067530677311683499200307497844953331739235628772498890110498291353809943234673870647929391838298473650917415993442241801360907021853768394823719725514881388163528250823780875617730371859331023769015518148956680264510669556676356270331637550428218469355260793128677171630081522970525013994404111099523758782168987072283241554043785949364881659710601941701117753081977960061020610758095418438226377174415893089344024548077635898598386460044819130632918212125220072806340890562731361562825142597291169096962116740824716314518917473600695966991423080878338378686590159867022321428691570141424807045897219105420047904207261838945659167576624337481652334310131977778750626481447896237968544918333932544522632823898399552143508647239988246182346783334120349696963465231029709800703127298113002987487588451556284431013156099089461587840584003836145430627502838434516836793994311551940672336880332618381301906515931686201918396364388118286970411649458769422113657698149517318604394476819223940067014551279282540565303246423524190837891152091652075345011477513376176131603034635001583043241198303450459731115480235291472675565285396154982517322187028118914755821925109751881474996270183201238664665544709627032211967352066825688348737596450725120796914516873963998729508929286150574509391835248986417115156337107720704371942989785258541065122020872198511520119682006685154950907756992161931680576122550841079956447357236211513844260591187852361111576674624616760589490884732188251188189165372941301847563650836229040968772707590630759517373446538123581672056998615449337441355115808285999797250700054256958448290421570329632969541837206112532778185078243532391872673797539010604218982133356800149176292763589739749151033610294485487554126594588308262730872974158135998785058970815642932415956520572243886015842078104750426281129044255263505482966134319834755788519322226718693036456672710264959940051166308663731727404454569497374874852110331775493646253806113344743108068326308466220393707731052442799951374501935266142352255141868055104005021438767785929901108592518674991313145000872583711669369824976994084161606242840630833289799716187050576519624049243165999515189664975475039001147398903189687832645578474537251804522359726877668762428507538166167924880008234090320348071465228902223080614965742704477221250266192371423562609291226018250583731811971039075175338577137807762131772452879479158317148432273147350683717788157985202303528005999986977666937008226708804204330427176103604436021195740531832397750825376243533599258744806695231314095082672974200827195918716169601534065457814757101243294703404989011724031456270700708589135551306594748305010926753310504767668510068727953244323689649387243491401886858021766970655158850256174152070315092726514587358857716690741189566762941681340578424067733886652984335828209920927960002560537316119574865172971711404358368302333102692447556349630182678573511105639749473357081758063298707668034213096682726128479506043615265442170363554065832901954741126321617941436862387824468108851006087982065719694731531688727655829254841006002628870847072641463698145467602306906484800019508915292088347520029483301183570714748604600323180366466301137834614810208010408241624643986285802753525405414811787725784498244012153580883263111576793883443994167425526718127068704857905001700188276611540259896645638226952840861257000003120151341462146274358818811375215962355090961869348253038196808508496757130802652210017544521504388244696353913545222948382275219397816100630815713947347571643310028857201156174719192266771954369283128266043960699254637219602914253777973983167443812080972188188312362266033870753267894253855916918297728332731261550841748495123598915798601931046302040883658123282833932828775274859787053647329515614114298532461034302555313019496430116703792865637669569854796374437404695144047524862747673802558967408496302725388581738320957777270442659676450234624195887257359338615526808120477513640278605967148993681237120118621234905481712924548154302380410365014875356745431118006045004261307876822158851442673029620840482261369497426208176099993500334461976884187903041595951539264111965464774820849603536188945761220485718626461432327497191880858417216502492556122848670444079452809182539144469876181366331943960646378224508161381778729282783976485911046345562271722217817692297411538678621460572420158898217549455474948636317672274364708980215462007325013023705721216266625220053039613516788310130085680167987713860080874414496085961030410411974853698311136710708247974741971708082430169166617707713127633313638154531589133752541683984084786431775066750394884663677721467921121853612236316721888038066106985937023790963186922402591191463458461497417121925501992547479600484600633459818646080115937447037316631953518908792056481072811877724020397440246021297391101349926966489897822336465536512949732934154340689469433738182663778605034749343327029083756180110549346901793394287399056637969763478106955289619876461898507220863458747577535586844687233572491790476548077510392373639618546675333495970891747050103139694380902363404579903070724852963285143088878668807424981635856363393141947625230661525205658963070371420915744678667376833515582244422637175552905493953288236668961533263314935839281282245849325405559410719507137997035637423400973161309864621393795308709471653612565080331578504457300009414139460014745254414038169209933604115965838005063036825456630806282500948802003418002145584175546348018765356776441151647710438436690085370611690503253031468354371335818092924007680509581888880313192299660498665119235533344271599513076908208526629677403102594730225917768201325910777315857844773120758864509339877561872662539383623575762515880562030923121386657807216261161812700375605344622634949838625256665242292344365139697208237825995762610809984937542273567512241092324479307242828029176235375338637087638735181552748211124480024591246405111511149966446261984339005792546353949622888924362325218640252481049059595540836502868935748905420009125338674343134073422651959981448876264483185527327749412287856130622582187812001162857352133808604365252012350790830150596324546828189224759891328716943598514226757325815092498212489905184659072782376396492321190420564384917255643187344162296200604471901611612786080691597050723383179902400106211647477584390237574678913169570118226462177028945711913641268587186863582493271746562706728075136743159750756577475837640633804494482066835217833213332789677638365744674620172883957236721109815401621327006816874023136619483325010446485646460364125317413333237960756729373305212297457933352566168558920043759625134203063834294306097158474095380197411549530010282165055959259459194853348227327155444873521365344729423949559645304788053179455862934189010777934902760221808499185141257165316513745087503140146677425197647620461669311332604538789645165729084386151944311401615142307022471639399010043790686410341623679074185064637682566038955033477348967311334313629428543148876031247313354196709800084526427401420976313695876225859100931112997379360013553352920748298536720427612698476400667669866105345520728721873818067910581629074870107673696521668734487874382771997327186492554248066842383302741069609185500711535489241744407943370423182545606838670242052339330580317306477885933229299655466216870571281806631581075969880379541902867105158968218399861722645652372721592127269985616688430859683960287171538526694147931732893545844953150218593008668911797136649492410539530174013607858891547134085003976803645381111572086129563947096455742708238731268749887309705900533731834616896934170930000086168027800589567415228443663002296526507013856265684358886297585892712289731225045019397539880195992958594667444885279234641037247334135338390259480773955176406741476465801453303755125878391520600273054598058280083415867508782021829802912417977315235385770640677116684521336866501090644399184664729143841522843559577805241786922134390262097035903035025270328397986765487111297164150657689153935090940421630029212623423471285210839542166491175188768489016016350794990872514594428409076951969961803771282792923306313946321509657936648852867185365898542823240463873382817848153020920308831569726734392558336432163206608988845807113627763999664957064813332430080443070692281796296832861316394983415817887142621966549905140449994905132275832902039733890285425751366407428377198389513758460356859331967636542297879597967568283998310181525423666598572785888868064851894597071620346737035168045678974108321020687769153105056687668773293349200238935057443695445160234297945780603067189315767951908958081128270486867856517949494253179898985455846351101662924150670161176221975729255773222299579570269514273134125870360213259374764294767723385539394960803494329630814590799338159431146102374364826090527489260911499781759924252339697286952524166873150092382041212854261361635324913662513786628744172873692777326685338999050914428805931696176825772855927778554889122488088669629022220090710531986727332035012560832761865468606900461217655114103453283127120443522951001679479031335053425355678386919223431249052133279436125690468033045406425931433485989352987882254953185742488103764137541484499829522748902796950898149864690761644389575234356650649798259415250324263255294411659694055989586650761215339929748641052808309887919712372876169729073029530158633809543194018202669104693139303526636283583219629341950220558215628115100827837021914223186157752894430740125120698223625704135116212793447479373750708585344904025189467769147420649139024731524047392237570356833125539744473636977591310167248556425227049855871329918475843821185152491532108660870938947746555890976815009091552453184371101679704394227200606593472786492376559469584717164290257863271834360438706061526799319925178071960601819978896189144132968153273553656553178278789877045484925656831540484336866358934827911537849960146294330178535918922268713560211563806688873602452428615177077111067128514397173946256684077707258589195186572002830268782748806462486258045143333445413308616378682332572962579538006735091060533965232557596824150482795196197494590510082179623656701477056459027478980181006309518889621379037693653372987268128208847887010630825541585042133410149582854277180694946338138816824519034448050492243551000331414292089422576831348019510419539564834283831689946997068936123952993364773605967379563016178031842261826199208163486761966027586644711808760325300708745350853575490894833166708013253482497118067652281580236070823339041428117022941352536003306330261124551686492275338976533327508837308735465914111897983419770812110908047137442356324199743619581423276740560044467491569494557871493554792225417642982230757366515960393956787295208307621299572905646333279790560873601966838068415216005340982287176820543030494829640714377958967789178526513442090147965699695860332176102839832232524209091874975695282502362444942356873501034701874199053002938096986090876149456728711268068719599242400646532771157004612346955067259630156672290905445568896694903638197937468465866534067955971944629775631645824343862403793489804730057570983951582161392144404188942268166553489541432820615539268199333813234143139879087206556441176100519791030792115944641248229869540395866978962963602248076632631118560938170907553225965817149254580950048642819307237586533109347410268460883510176552329792792588642969057722571390829119090719641708538459454433599189629618258137957661952533777093959309375586959791505854695906008160034355707922057284184858559961647715619063376850432936554547474297930822840340104214779400494818065457292244834261048015204893325978936823575947758489390796539861320097773887838900230664965067318652650568283958219625803380702097089887141462158565442623752543139384253212757340745331911629551711879136992703539172350814998662377944284188433457149292710333226630993271591811777984273789750147894332684972051543072375606399877296166872532347099071746405402407398765307649992827255557333971022446852281974406356741544233989522404042548339769553714731599039115199581609495985121037453659944243964558662189512073140201773556781853195745001591386191064089978693283136483900961375710627234780052282421184264275528316128586976015660464318335336103972337460199915388931573028588269160920494884541300922625883777140487965516015543593745110789847180884700960607789076220693684073784963360963425095847082572563368126700642910298222799915761939412305010665619324385291312270883071567471968202186272019484744691477509958737748660296312621123936262684323153391719356913789891966066712770973432280825198475061954062034493330703784267983799417718823847785730492398625585661163352861527957134353145248103916383517055077877222976239792084070887115866239919233193364955741099493754100667968801426502073106663321903729688246980408070541863178851938047827141225654179999425208472883282034768584897255257471819411411100417415667999996419753284032409331190631921047134670233785151816822986613438461795592228922727247929512697119023249639138044043995740500927120818613254294374946808034952740287866386243934171088576574565098594766948921845006405465630078576018633790396114271309657046386091763460387568116961674247700175701209622415995297606038534885700148140313700112802969454316372351125088021191385854262210568994899518301809141719061592636934736495307154175906667880722820148829198820515570776358329567219112203577042495168506188295308898891337742800926055748231190883191031319392993345592313428229082449525800523923120354684095918118037670041104124295206004167497605558227538402785572289944290970792203734798808673500170223540288707487241568779150621465248917332552477018448633360423791742749855343362819513765938627640328174263624814720096570576172733932197137016249943760722325613278742493777785892693303359640162133441364984027113913384274707577695437786011756649108619427071829174412426544459813637859434402043228658975463864348272914836757909061246208432343903919234433434967727735561114213200143944432273203813690857297957363267447789438657748903859180992598862969779258913747052857795461303205433036775220335508550526418524683519492934683524328602941689945753283821030700597142644539014090180299182333664744077884707202162306238560559758221344837729629959883211943413369458344614783596937028326827141048481452882905261664032814940818402437682798083149452046334013147931875223737780641449565756210605303373736314667499714281990742397055859815350366620904650584483582903706278821795170109549763960329104655406069264586302126874027033337628709008636077571723127591619507653913377632919582215602395743429344688712980846121802689710424341709083309910985888888352540859422769177682881207561794396901190756634524170061632008101418475332908113003093109758677073036318425452933453097666152917523663236564742169042280616975156053330599250791768250223646459995703377476108414750188599883026552040683225323910587244894132149204201507636619728900040605927204249627607199929997651568985047882085190980357331157415446555005241314901243989950767377911479714212766615553657000299806435223585594633402915196557447737257745255173684677241148228763726800196358448624260379864986575821308051254867753671804496187001591044738793424304187854617870457854366494428438503041164819266671849752526707365839930254006188659463004425934986421887367466779140102899219351903419847325760225853194848393382061146480703648997867086531405317348151432465185340056408530192899076360160091407670768748649878661447241643842625492285981679108129205218822915194474347041036192619822496886501832878812286552614944872433559864067055348866764216076996015355082328241827071561819631434310929628040525693801721006438745609358563665337540961520993684410900642345559496789925865271737498298037176386441554083399332473281309549009091169442676470996060513667034017441183036622504899102028224104498005306393922465176432819632004447864310710645181829249015547074663013665850277505079676669447092311169507428457926919864654796897698574424712025026199362769049186893853796977482413020560763043389224736757475383147134175467829749624477066540938198182940533952786677289838848282991142392773632457160143733752630480263249421654556576719767519347205464994425160098915085265375080025107560543265537727234223071969679452722466159738660217416890391227225471338259155322845251522669469728173031755253671085191135887654254435790412982410354317442327643432713706542099632157063640609687138452462456633526913012207892078038541203760206341195539453469466949309162079581991165930757419826929877866650365908258531021071701501844136752913848473908192235647086656219503198651985556903747671094714087613531548718159302781883820781394000869999670451740058902929472049512466807390951722430551693010480382781475446419377026942493272433681252024601571534861044060759056332037417883714753521439572777882746386184160872134325498236900483738218263840092510215599762824924148323911002469278925362538480776998752416827751579814453455921809123520162309235618726203561806371374370501246256812488635116226947566896813619087391386116827810422466418488137749163775823530717510933636515920783202850748781773294567957228802702925330393035629609655090811123459904500640983146260011339766003729813388131614498624607384004103873895233467701560476564767743753091353036027730649485481818157985558458713627831537680464822152484180500243604859204248195328836784036387899563193321631831778397529919375524219659608965065537394044608982289650830886050908902496512647211910969229403866059091378266635979448407832676362544382973826316123851271358831895110725809941985723942638965905949827824178092350475995807282287983383670661002041595376456908759360820905304646456054983510903778477908765197460005749378268569622689236564736896640023761421391404088530228530142292402293423918474607289182440158403161965703700511650374832836121305179276792029495844961075787312193123627924907087747049402772076686395128995958103791825552757370199035639855128240294793513430470149853316341488272414708705113722107326378167707957042443525424026587849103230994421850476571047629262215263799117735029455404147197973618939164136467958250810525362210095673087070599535110232822554068808184242461329055034112463682062595644292917574019200970574675178378709497383462000351520235096582205132349518812880974170138280072774927060738429578676545651223280696018735927938422502982394526545661537689095003761204162565183010735370039070291502047537142778943688059173203027118577899176666342571642695371669593318314176864699203932928731478065454996105563585878580355988938253256278427797527748695905829017843531703864196779140765048129809438387688116335995347497834963258404256655648835230230971526389610852632841399355173700557015792433145571339263506491269103287457433680168470883210198318057258996356417499479991411764640878309858738876012622439291525135127431631142409165957985442311940742639141995737008193686324395428889189215907335571177725165886954494464905156957324223604942910611398818787978145692300825681635089337688536087849150976140767272201765263270063040429882985323604100024040182990715058209534866786585491475231039176530439244445196651342514858865935725306187893317329084163403552216474104154352613758218181879127906528210805664458170081884621209532764188236193739371584541654500461376347557269167252476102557802111982212191616769247994681485102211083546869776047065079702326979179446640582545878412351378391598786857658017471735758400554500216991566248934327757053162343985746512112556697615957941655004309278395806436785620176109369534322744203237277829212641072792733153880542657187195231461476085124120711621453707052346098735285253526398555173759886215228325270623317177105764683442071121848969716263292124906141666241887604178683965335208134039931999745848516368676490886859104526807873062160502149585919378227149265333228609685365050398614037995783932359268091077890548555861088592428224225927744773651178182700198138853160730568033657967627178457774291699979193696296290729972681030497096970617503617848728049157145532340248970086518250571841390970899814432108632743076295346483010602917603173983162988558076971443395677290152947924948925730531036288092988571097742034339038942417749608496785311587575244607210626352217999579448328249649817968808777035604906974060975581511209516205013277091078039134611475100496986771957804672823682217588508555121873788238435502397135356476753128488751114558439441307561669080219404705402509256163887305799593571007095421524240238973866144984302696436156975938350358000865252066344823250934289128159468246881311076706480727153921338085490889321744630597885811274425344881319621755074539046922922607786828636587515668094475047862672273570769537148972648601362808015084422632659722114711872171544581877426158697079388695592310355347744844271027727918126541939125547604844318093436796646334042828332733741850629865499460012090566860910949503520844183899163403069633435199713722340451018393656283949057157411991738814206864491885648968163335519506600092884333252480673558417133749617150550934263718940232530354259938439418771874208814554354356164303489103148152057658869444782706449109953352128432519104912469054321738051067941859880544012894251232589909962312324053877398210144640584965597415865952320581449885251037693065497489313506032936074481814998982011182749277815201132404643038340009302231080547259597551216746706659229444385710758293568651598011790199480453582471723450301763989149022144948902160198684151758737919168266109838573845376528041890093375503234876758875765835081680848980488994613463846758358275894500466480260224707959607311234708701901229396384219925088768537111998543312937242948475788361151740833584375331090665942701325803295439815269206810548042155210247965114545433197115305740995493783836932001706564102399396852034151317330925138608298396103448375643485470945637411060456166683280263697605594107860053014854032125282532232725173232493557882265939595083733400950598453008448615493760830772932369780539020694898436522867928580781581080858064953263317305646816091785147125400088072257937135985919602032117698516618138205726664487971456050564764174273684189145067342456756416048290309818979175956744799704418481543956047023378435681267617715798737487316524458821001641061928767152951977309612579504013279951251230446071737653304434889758377502200674146778016973228005456734499425372413845823677596399572285545930783851914039504744136175891007414622681929769694988612865298551788024993319663563824838294192474319235584267635073198580303015343074861824378325227933579938356853781132755653864730024767430672375844555706643322396705837897501940110984584530312039741608149528633651224839511514265139521361994928047761456722848443128565961544973138278595330767369601494158637070362175658670104303586961145791714834458205482295971166547021136277282493540794629070601403720169035778923993263032726072545060040364605028380929610076000676210935821615488096827981804590876990755827971114967485871036597981779005599204619921086218833393864367675453578236336989088161935642182109559511009398375374775546586077865594330622484912789787545081355800095536186322477894557821672858215655834857416920557822343615032535519130694519600528949869404686558645288393239196124043995947790575543519058225812702468257321602699353123762173162563897324757116285960699970829394959814645468124291192894493216757893635877523658708312626129768952214037121333371373636570097496111467954738940216254866841463524981486568437129932566103690320984324524436374578928327453254010137873546087085784915339133018487965021588810929903714350114962119197243727036331890117992931009198972066058919499183852698678005809392309173781954298508516846681299233425946670761777675588620801261412614640886156063703867564612888143788618168840692105737310071471275560282552384610494287319949838014192749437510069479060959762757040742560527920403735132256437205320096902712617878841958243923433165252466820942546627297934824209502732777029535981564982473381806163938715477491975350493217917432066843409206201758084778305188754961244239520118964907047660186063573332139879373467391490808812351345513774071558682223545588457544686343337754031387130262607146224011717060240106522549119864684309641572194492446028281732525366703537230042424986606480531127501954356523225687382635156061797817749036314750495732032582722820879015800370394722078471144085353021626740506650512561669500573990832732506899521269752616060272524728366524467699546935694759472575668558118942585377725768098397685880649644185753871729087162366584295460006457283605313875813863629441043134629953741827762718530615919342612177132010310021145256576690287097455533109073858111289551403927166875224799849874991785025892689021482459578259051864454825308670960541524639164867481996956919637597196303980961058033546132789435981843508697452592000548590030372961683071957622685435364173118174509579933164776907746402740259052553880918629368604586739521133104685547484403817107250663691014557314738282505357057566139391755260695186896492503446866474914652615608550503791394202981994222199473543823178322303684713733024748559429826380406512984891971277312697939942446836813979719308945153130102282071760241132296391228061815709537618452022878633617842610353107341759203978291654370239534309225910850108056559187725277755480027001929461414415376722756825533214173720140747134788443436316759161438722559433049497719612338422266160489643962420532677970414308024116401196808910109206342903802792551569679532441619283486641083828605441536996436593196913777787005936030482022913026514592296134558029718272438419687672437084492636755070563340502683719944935473265265632066274380836995826335167607082354952985615834331195243922970039879106752683149442248758705971197501357168808077088016385784327781815130277868311685891946114301089589218392897133594139288856488545091637259398359742076715707460714975246059863989669574623157776860487972014803576795648458982197028876161231947013209559242144883555057627232344348426426011753223061822303565850804701101189919325257172054996292664129773504285043702622897235852816267563789630203898474355948061217387390668535438453039293129881938833041183423778361478059757505840662254133629335780931947819663929742350390848059320069789917678833968691319748258864747086279971313256137172730816533406139462568550590727545864506864656527768255534297214088338372788201028902932403132421020026106356642443696612083041768693220104899345155973211746630090867120083557242052922510628503029406692705805044006818192273514256346584354811095932073401274969490002544720797360379164669703195033832848355167676058310365452708576554980028239478223137188703965216420784140386320050168755928924424891643210796200313711074626069359189558182399883659153109700423581742946007359612474329057210929097629241041065662092350379244313926890303062203407870584752136844349814006643996828177728832830680829674748510726842285639503119239679399702278280832904039187942701256403173198670548090381729010938267703276181873338233299287354251791214674169684443841609957921734925475411516955036329294606721879838177984886836278290997984302172041753625222996727432571630803326267942700883466799312372277892804907269063435938633448273734946871808806945088824068997261658713437518740712443535899935749505763910550260234884831930109776287518455556142797284284876039387213049090254184884269775140116269376139550458568990473003987622256956952852270270070700223631278275647209189072366145338315064508660157166725030442531345730761424825299347355082009481110740264270328796135455899723876924388109759704444572797225595582148318579221168381920223766601470535503329905663899611395020035590039531431485319997339561100645962955582149616215804551632496152498462549133866615566130574710730660649476125925134739867240429470527139458700571144617743592489199997798539858915545801175707545841985707464441715735287088318155664906711613720524842124067568833334632630939467440591539281243468652741507636710833294679930796012132262362971922889061129439568658906746885822588883989165018835533075233198157903553586855155782065468218332159074291034746956756633924854152236453715003886217890263431378530266227448817999987385332341525005050759944529160103849242964737923144851996764003120426193110183900107455976932457439965196822111570172250000780185200769092799527481957223522490092455102100832943506047090382176234012352784838737727314319812353312167350741624784195463253446152082891223780469229085093862807526773733648916752751088671869074857315117987191127589737172122200697902686270153977033376235391685730235327780805150085259817532955508078778866728156509666916158391127216986993887591126886484854534528983845001720075317880961273477440300452416750323930383670617071013055043805871730675668335337453783036855999377590869513062184655285792359339174191712054179699872561324532665773975697093217056219380046148285749989375231643513474707365882098106057788654165147324898178700946301385079255922260729715226203881943748439143105940959925843344656576817396893261104598701003727543525116377441612272999941018619566051421596941206355131448597195452860809748682548745244590362604731380648393797344681866249700721554710601935002386483893437562276350127925849417326436623720232785535941949304500111524937011476346341575426409557473943069445635423620812122411763735769708677763593019356383644402889363050783332280366747439432486570798950852508727418326835271995157792652719876374997907620843894634721262036078308173814280478785549782897862274724417700301632550133970537241768281532351617690692199702556999620546424372653577547251024031299435538645948314701949401560266849430318378369365546618665662547082586074894839728251558916038553495064513847442211882756298620633135692134350535417532546229427385701851422160479791812391358185702336381354453571127711719432166046614310154741982155492904756210901895720806062349088029040678545667463724177248681190074206557848221929501065966835352086790875855344900927132510735378131123286004105291883550482825682124393180978579666414416419743846503597543167041838521459077943357731496484574214860854886745291314574589315184834205058542721160275207010530288121820442571850407971773519382644415143034000038965083547606952112614351514494096991515178332585172479894740524206100459840736384351138298293353702855164153281846898780435921758197601110371882601157152121989928035754608388740947375220406391233628982806618731953235529204014220009515480880706100745386563972589708030327985512405709675299487752503483811914844763960690239980085887510116129006008076911943810302609494806598476196904805932178521399828659016361397294733342452975784299759023288921228876174536434315837531437849574608874737342587958758219901935389814229423917941515613153979302514641379860895988767541369432304048702855541978092295804469899019290455890684659783833799449251271604941337790706486578589496757599405061755763293475680828922029111549186488201592146177654499211827254988676568962251706361483219514060308448688429474908171412276698952976652846718701072919337792928244353243138285206357061580769259282603222119402768779042924083653232321510235407534232109476053210171678047889604168510719739693991861879463461896797135467867224402905164443964782932669463584918661504011655032137958238846403545337067500146824508939635084079633883393164400215576294876554514962298494573570455639845828653901031203119955863297898599642742416545640221552693117618219340405280497700139581856995045062690832184422098580656036039665052040509265294491631122474122439854552334593973602158488959564576035601123947226002909110232358183270776031819289578931912004228297227192768010578564466733402031860657975998976736300451553441212227464921178419210429930233047545934081486957338855853118789257243599624701958104940834271300659716364375165746371024987053629169290060997979798208147147131128995085184920039864046146530250994914143403583695568842161518200066725398585320356707875344741018213449970395917873975349621147236777151075064434193206709784810139061194681429965659469499803015015050439499165819364340617547120060232533051005685661995398852109699179681030651566276114001239394412740504065600221709854777964424685874863196946189551035133391641195903971893876105442642302464412785966320148479552732274340928634620098405982453385763861519336443209833918195749629505252717041594110329416055200707970044527426550329106801682918215054886572979083065733200566711040393166428946073974276132720699137735888776468407672601645037969090673762491231815694613258421465112430180886283850187273208293049320534883490802257999620893153820434587462062523629681224077557166761470833253074351802801564661524123357726665459689501535120964074098799335251124236839325550804077953890651359848693148572687489949014085300106254036984402433985738212677629454919277281927072710075950541945450379091805163615808362888700153867243945007027498984321855676474032471439236648434111606209310196018250317806835398572583913357133449303614491708665979723338814530921740318117477520325816743389458264967527525203611262736721097645431340238065872011251345146117238016383594726875228176383566558961886132167299893940149412510356465833636887760906588376967418291919203119456469780942498386090416033096376452927942341930023017400543432258546250947435455170968354369756035650199238514737184926705972332775797911738152474353163342411729845894129107504555042885877762737340663304160391808268741726065961598933607786330701992223184666488893045271524055117461202230160366192193936615793786736961581625973005821281128255764679594940281466745760455774706739022001976983182597002938195414927590811337332360588587778716100672583596232604960016058991488934220473616132710075452300484394310989991637221886232625722472307119791823049444351403357447663970836106986071445700692763966397349202921834629764438186018937668805345127770384815690854061403280361502803860949033534893230357925117393530415841133265471290567398884435930822283033032221165929854191965597971848854238871580891403693016171725700155706148369068127422955027934635226450068693430774820746663687476147620022750181551796978266737414595043870588723873389632912139573039946630543402891327746816875466950216141246550370091265917983029038873484176139723433945569356600838016094355613785537468920714544233776467196313846465263157010171323583974874665442363027792854190450156664578818599794789712514811405023776902617289793013080656571631212120791429070542150888983795453659164355123341745987948092769417511490311746055224557854581355867021530900770319556558995997468057416133383616416911400992334155643868362258664428079403362670105226669361924674723713640905428985205188351003692681879974656470525450682683936264069944223117912997333641066781735915971628983274177288723020526098042487577710069881962403729127162845583584784034049243648781833724320371618788149318366321324242424201471879866012908295449020987399595428721390667769827563089167942174016882358765397504203024489864188963690963162701205576819699291549927751425437881294676650832503512671684664484445472404101245280642178327322277604369161028807835887184371005180840179580141083528163516360380534630763891947615018698673670605014755654519125563485474406162027393835035627856152958894681701699940143323110952872124482704720605460258500667040757911141368279069786865871177920435611489299687198880325903495462586850786451560737217153995339107054574208447004899811282899421602122209262449472745405610358209264251267803981905452659443737519428132171370336125910575516989928472946953424298072325629025888362684267844702983631329496605441625386147488283479816732288109784876941323436718833482975132775552098111835661299848568702173449715945581420516760136316810447498709163649431566670016341247315263146646944702228602807118139928158887516372142668321214150923172057318911173288259805252015609004155477759524040891350094036519708487007496783327432335886946312687900985023131720661411321086076048619570635662452304872049297016794578145820090361928067821394589374337776931269876868117124816408491052538842393336908946354092358023108172557634997996943645975444894856647732804498867623578917302150269879645498427712336025239601367889026391276316733486900994658881028631022374955359950171618779405954272032568075099172304060405924475934755878192311507086038643640016697693588444107736870284577037940928349414028221295864075270639353993044472385084396885275777983552083175810709482686545514923467711645118856722380760062998781844878270052720312938847998209719432022757136352039888007560979354968507222173819096427575684664407843849762359541643789860716673486049953642921576909269615170952825421086026688812876213228288701239411121356084998485602261674350348830521151995222130947223118824547392608085441215344210434543110428353361072322446109504754903082384976233787723979857646707148507270115503350791768894285532565557856891411105393768123007641727332335555556958197951616787651611271588023817370581258433764454963932090336308884238313464741325415758340853287016214784675273660353298142198999001039965166398578162708358962481375811285205027468314346218654210028735798453064197217331119032520073461929812872295178982451117703283234759864039562706190854550735807916589710077764022903519770551651463156954288414243755797570968942232887312501544659132356822348563230881862148691752544420425031155171125209326672093524453853285759307857205196311267715965633535956460663812156991761342710503579689346925609775922911355755004495468093959419880769193752888650248971124685916195119118057366233650749218367328395749066939668994863881254658855888383033086427922354597161408639132801696867060967477934970251369670949211851826806837103932976818279349090488099268529794978557333715456812291190828899996496173672758296772254271826422328664001327243273092429509230566221346977560274971311377496402160451869335895994334517013147431671669925355352625191822960685511025521066176939130589930470440130555394785866316843769182864723435324859388779733700023743444052230578338504233697486700501600286637163548072142572742363471659825920005995273502863429413906679266972379873043735393795775874670438709507356712455449660309789611819455417024559219300964059380552294276921735098819503385424390196223556566509598118950849558347583267944137194334777064417430687607287323860319093764674529189218392734056524491250586956517611562069812500393153884581844064908193055138220680810239336308565359538328508151852860249073808881939719741926645634161448426511541316956283525195911244283826288101030847554548973690254035882364831424405950604333637217231136979737662537789832914814676854754118971023646587793294524553660846298717097667145215393593629565084168679388747451776846470197056012062911196593927169428782001047384226912084203747363388386274792663438170746008618165177012473800268910283248614546728946437703394342046484241967025618791648972518386746222304165160001856431299654117598208500563323952416320466755350013353729684917467646319413499223744247224633022021859547406463788211882345939408996899586677663701142952853127079355663237832561966782136657092206028310256539135401190662142923938164112080696172160438099387993003279135193961605459067259657242443886673098839494804050019958699540877610669138906842799356469502459908786561048152626194880291622037728544043107619152330967613456578986649276023103467080783909926275476450002311159881515250166756373957401905770341261342041635904480839076537485827775259666285431629883314207477826120950407760433388366358024308924484034883541028706147339632834646578357966974592587401134634576232160810423976222516895973476817428512737721348884312642986891670696316238734200146948985214230208355107107105025571884627785644037605341548737134057035304716047710677529320079908300857963350589136486977471509376122562844835142793387526367457072220025676912748342237943660613198626760944062105152371984859747379297406177243330777353802543022189439576676950956672798124850084862642588484579677193561466464626014964951463471490061886726013021674810746605411192668918406378835311056304417080835780199922329564347430329597913588943793800972704425821506927979988831446725329768967209243310967877870437254704049693782685353327799678176291518671277541365726683693491087292566065622815915263350446694975679229497645839604031247826096808076324572917963135706380553018179506155893461920055250204212768920472652351959084416370597622758052733539905727377292458984311346620894693568462807708795934236143426183573972841216652601954384817745024429687378704478184580845669859181675745936300712509929945590215797971267979286814183617945293811474383459113049494906254577757396574482504189366105015672239114063379044269327671783572823478402429229040376747003971346834385546406427071026117530091308476127357563889344495780143671978013898265342437760672048730565920693328169737707720506732140005736755344980895540538688878671591124076024028764936109146485632435139228289616920538474220896046608059038230996591893342589079006223704080066997920297981944092771735027012733684682086738310270794793553022082277521544609273562071517195538748966819084680286066268052662617307395592893243276656082055892649228114572078932587782368082793050500307417743535142587643209181854326694069067600791908213420396368953094525633402213073020986458629768965547248652624284611047366575090417717320523237414075658489932392708682167942643268756947351912174769111157754079997199926682888507939039340610310421329646825040770647705217690955724326859664717698638291411537797697600025819272394469201049660042850854700148091808108172665045679671866880646205847880930071167141907849713393914993995255245452094946507843497198103614287781840332205706946395154769469727677477064248646079392351956543663508307025207982465374274256996945775646261198738629434532805415082762099066227743584448627037670924884313967312656356805978534285819844609008250228150510636726914188760397883197731862657293142180732905509353856244448880870515851205561944137370328540547572214634071373693265521086932227094239075429940899442544459068675741143225242616723435219127825854388455951679782993283236427374574525445460529398968062635137335872148508088202055186599580340814883297012537812350567930508188185685057312332575555424196054273583194479764324992288226604355585233496066809055029052163377847463519347497130223294939655104159878397401675166185936051793389503924662052455112688373111207852572442457996232944501683417135951402520951792646811568298203136188273964266233216764415246954875581640843582125850442476706996938037585730039057901105154147795571791693127290959982213641159815952014586136789206666635321839445791129429493727464246482392154779756157336708957618405753220985047485835708917663527278094953542744825251137393829123783351841471827848818093776259467255433420690238375597658467444988572971001533657025938386098378883705596616566122618812454638780740364377558292593401364517385844624554076490296162202292447917789014243272492456246105728329944276796783144819346705517570835029425673263352649065141412102378610932967188631037171704617628931161672590290677122398588365964149245530812072857084100660761685435166635303413828011338196779122899741266552449513483389346361812822564990534115031791411670938307677687742325698034291407998029191076113965307761804076221944515194026040634703567993538832743785881520110804064908851752700820562380205128642184248230026324320559979983469262326656447019563573006795390572441503981642390821362351327177145861912103281123572699330876625534408941512051799027314738681826266444752804067274640857238015503894189125958937399265016877527437697415337481724220377071286644907711626031544171194141083486068995295074447722033627442668184711965636157137724246154560704796508783129001334349111362929755836090601759494537968615068179085076075662127381001179182930761186299116355745026020212756543609511385690948154244767226073400610373342612736080448553121475788902375590577113174550094118597486529627058856391738971595159889870141758696486541853248637794337805069893455538805052331249498418875730464447331444598505524739865399707346233819398008577304356954761698282658938100306024112186656859802072533716561353350992188595601078815219559929848307371141617648399503300378988247903454105325020549556935880161545989189368865721247489636136718628188546447861792435817101125518513178717745043073536450297615072923011083308025515349518692948497169009917303947697333789565022956148778780483665828348275402301923036903858197885343038285582730067215613042476796509973673898639630845953309944673660052789535100775106235405180950620729591214778792662633854287925897759586305806465044845262391335383426270504308670094670362204063397672529913651878423065839667022625805621222107335411618502936356416166557792377663958604946932445508059036179864427557412949830210469698616449313701037027750848601539616658645128535453048155982963829859815455625924865918632881763011014997372069201538698774186216557820878850289708567829701926958276952394082579589346666668839183588155490694368307035327632079349451093653994509720428367306703514419631552887532148221893259671737078127140513347473860809636945635120190184391605573384080516638291488624793513794037131979668758562594829420746324161481962682888498009688756413177902657691055508025432280312585899845828720832573588947631349260624962718322007318135424395364377056481929539957001445543839108784491441936804710651634740311703744824585051857881806866288441707935660426980031632363491203029197537009960106661938962173187622670718263148522844172794334068181031018384175349973496979013526046083898649384170852934692791583455942477874147581862606722466248117722498568622989744043843921840245603609191236989597824880644631955555593083281673460231204066700724877475998063268452732025570156216876628405832688949305051939005049504958701540034854277602462485884666673423859744545671611419843038357063974266667038555609645239035702010736523283527692067722136663585746080761599482575890261556442866496737256920804685117462670246787668603228796511978576164426500255366220799720399986561469155119965918926099875691957219827550950647597861562647423557864501138970419935099764066765571208502958421155914947290752355349927410085129491938559625940326382025249882249214444755882700290036795187052357627644235584183330712046012462993991548419581355125514677093447144330924763732150118612798381856025571631417442644210392318412486156130470981480247338812569605196772694383214901046524099815011833941450600842229131941609950099644961963307661716802799661459649084857174082378057131294396610368772726979043490318967493232166572331903721541461036471884246356801971257097712420455992771894016308075557915318038863852263293491228689445871244071873985131098072996000054029691390863266714179236497562971925021288399097084846804390717631982983862589760312738181027549342610128244583510397246172600271247264410283930603677754398403846237465571177660427479404471102532275260708819152596238810359449121002592156755099903598490287366394653336222785601987852448078120000922672556304311870218783254738688044091883310482551503395062370353459115756948715844081222535466146121336832914177138712079113256329969610586306388145503829307065076425004095978377200913542843287311066940704199932530568316953318544062180960834613197799338171659170654879552114439934636910391325853497773805380142494093450362761658136895003095126105708412344562960132807039487146758901016641151703939321469890302667266058467350596475274805617807867953935510326849129867665654263127329885291927008247087740022137431156586969076065899085477980877564865594130890270456897729741955965501092219356932384978162258751764655242092557409257176954688605190100031608012897289870528610854229739093968150775009659717371460086115220926226085270829883643736243877981277451170822368080610770774136633479557435335472506634409792898991840821815020062629005813678154528485775952733595359748408724500538827410399987019521262331698628280343884972691416958629503620272297488689849003974147161674575114133460273449742355058780721866552587350641253083245738803560851576626591008479072047704536889750719974356650630663167587611347516441890509949530441171998514991673976622942694451662140808774913553673453065182999775820146575308157940816750357256313082689752768694913175166031419627412271620957829974512595073689499764786513098304455391676187931636640409697787311715800412265552886370914062581788469239036439876794389944195963322773315106241711111175895820421382268247158558623159366153128943219165489282119597622766581435967431904693189707095462549848023495501869231129366402929099667008638784004289044208624836617790643020633059339203224343651607943257024658684668977153432807721709879801181485515792816444921354300152529961377236010772921085951314599524616594227164157476323657025718806117063487629262732360083125256996543432189374507796744529154278947127228947044648131474412422116659008100572172330443870087373605331646830292870055572001906994319987064544655062428217271171245920681242948105505040470592410528835740065648454724560748756247634725962019554163080869913086567869678755397008127911768669194968381351509880852095827679294878548181584339038957648028985092572460862530061488862865030657198657936561579559825729918943289477161896205693546728054418563501846263442674857155608884433767767751811195879631684185363912337497661237712587055753677142553545280102361912882466084685673608493413331195799335404233357735889637805318390934442804922703521622308714944360673004231179796828639051719515750520976559027309967099890200513002263326473818452023997691129524606155729336699654182678756146447436938872908878942599227147563262066667329080946986292953431110762432816432736086308641338648646683683340341174172433613790860478805680045975432893327214060803444750328434411461171909670176253984282266864683881706100253649900743173847000861481761643196421460919937381887765482706997939841539389749094610308060895210562372337339552990648545654777111323511505835187239748697076352293343549725610030112158912678328492646452926571161151465300344961441304070786937141792331166624769640876354873990174775371020182114281421448246213204890136655231442441340428775298118356673485565936917962558531536751079806714527966374589942103118815474548075246518531702182499670582009281703471433056490611030296600778862186439586203091262195374593191550111691331559547339411720861353588405204585927360463219827022407154206140331096148629907590810331330659147574953943653870184306530383427904014305982988109686628793960684213401058668136877008625504106696553622430760974869206667440684275559470825940375954543932812646151978601094092210039466239381000248857808215305396412362630356804450233024794334321344188084314692816183923682018691893983933307825793915187659886158526588303130548206474199238611662169190459756562533363184467689507529925867773089781132205545268932341196377415807042979172961849337651669375621514648813841726621715323622710802784181377459609786557245216534926787608800918807075144517955918932074648407619905173558584889133032806350787970523131676769315773731879594907212372637992597153494224165049186095916392980515375415305601083541412442663508841170889542644097702742282321287378185848137739355097493355511406244664368942045355237930229556990256888924724764828569879277717704395843692472400622209413255549432923268062651006560671124877997880399882214586345295917166624816532287411553275264112489665623653627179051708201531002673539588247022352816399724015346412203202579778082731355120501936842815520818554997514915110169914127116084454009076208300514164618825529634620360873716790190582518946838954046826629717486680083930295126077669299240694352257774386318127596795069437001560625056278559143415124133940303277129532531071186174802577223494892925219809743089521223146195766620759235563597266907679866612332910595279610183431069077020322287162520836119564948117529971327497305978355285212857854784428618168525710739979164485073794630194794860109379383640540030350892499489138010893132270306436604092136152251750336475912552993362345087462062522116152134533464059073152732407955939560032748790973869426066361431450934795793642528207605767366822455612779788579850905074655759995233257680197851647322235734446612494779990642933510320292417061814769571050772801917271665422720280245480655682926562444571074844343809247355832405957279281370093179495842802006781667030234830107405474219268605401978802767061773311698549010053252658070039193322183255176221950049560232954318807248709892249330737590455348878518957734282512509676519718567996529101719951017464781430278133357169564223193407571376783460869671224381217307989693831217042049112414515862212057381989260281325336165063327096126811273544576450343862718373919938943796958561167126683833937598558264615427978133179120578291237899892276277256159512584275400014463204457910654686673241405336586191842804226258216882737103215382122900160538955574580481497079514288287427566570758148260548242022106120376883410734370446169531356584731584649952332889740861389260374365455710313573097870305157976741864883330833346830617761996495333234340591686783886452470412755314395794027884216137596849182823286006692891160507611815980980572296761164235609054782755309990228360118255687572387881258582934211212064353513623423335454800037637353922844133746644754648997271532487062343247393949407436784904172725426574267589518279602033436226061843406548292910969473277581063150058025056894921339837057106195538103699251006160450062319589568527763384145338709215687875803212746031128492488714697592389661216541007845166518759992660729902045834562796342043971565244565003933269758416152741868905281033962277286801457027003189627877077513728951374928538916013451181479091212455428351145074766206145020787405527198310649131950843193937940513935608624487120632823309725631065680671593587120399214096663322511910445083216535436219937775858432812272309717649727002825335202360334694516082287284727522818468777375072298833913187683690263824493488856434606147021410159335537083375926119354381437532583680506869265160213196385900424945026077793289829297493102574748519154758212368427556373977810151502777188467396734397418256427158653009213673388007912311266160418917228468906382678717224697734147003033770948629424678362291721791257397858895723049380035859123639968963121613858310464837079637662679929761566821198465934155933916744468862003556896518406189650209957879494750342134510646829418913576240994955771883376474844936148903373387364084487665128579906005691803558021757432822372098296405413984917686142541135780192328432235662201253375699710382103714505361135215808754432588751773149812341597900774841548524687471869828437164277567966121882258983635864612337270873161639587829938155273415802880622289603227447919731513419589488384195292905675291358284702889972904682421781158812544500275773489756610693699383060028442488304085568975649116156938287828620459017159206618355597055735021830926911960506871136379219891638826470030323985599825852973720675968502122325947960921370133154369004734758005266973163662808767546868431544120054451810963963317799632707332700784242615943287198367100185305221100049935858980934727278261324522255474466336523469026079952018829848657929356433410586192063576580213494971238154233326330818249633020386361806074300789362848049457274765559689769047963077258435896097235562688527717695095754854674156318936544434526825222687331658583367174104535186016897390037051140387216074925657286694144634342819342201078799444793152890807044167837208591403807871920204687148954042965778274232772630067548268392572047428956919167600520523215382114088732406797255883699722977039781747786554451339369528046730979198754644054050153559842149017649397089933682368179786182637137747761899242139647546815218023565700846506246212580093382393758939853525532473703072687613186932612577333372902749196950150840481799877283736652550640271936147773259880890814946394227307546211379742525447857306562061623275845663368716041054565558219632284442580016130922925611695217058561742929711699372987985526865736798162230768594917332186376150773517153378053363994725317379046703857552722373827813588564532376608389812022949751795849901416896634521878608358384118931384728325768648734746219535389978008754241505867497801560159311365405520709508035255004812123123771815210729800323101759183786254056596253994854471076202385234083415014218901838963027669086460628899731583050006054166105211261833245630887494237613211173832359910267154433339809030107675192156068609150992975794898470913404847760372533164866332739977457417078705885849890364782505006075652766776667301814279834629978631154724719046381308270269502715524345837771328888401133228561232764247580549141453340043073513682001671030489674079132204173293655886380819902402504247589799061997394494240613938590020437450817126160362783912411472682090856905268374225068910991937677220777687371267701529071296822615843757149665346296154035289806984981990238158813249007282842031664545864518677871817717727792832125269683229766412454967397152787968043476589576126533852457391513438137845005187385915329634140536894844397225508011960792690281162293670434371158371953865778600341946713096653442535523561350392637433355902487780093167585566502026142451755202310518037979241601868165327213490744741879263046379357019572546568707696490256283113949083065981392587716575343290518298830744220931539456267189136509327785275856141886915058431128180621164533834614564998610279908878315999233208349703499009644828973619972608413030501613834375735033502696791991003945764850313988998040534762079799510355628009427119807714138625374689420067112929037940211050993128817678635571212882205845259023298827844889728557676433765513209837208453651972735662945407520786837748259937695085474585377854401518668703212703251083788575535253274224674561655301752946970492860349352376631937758153126911215712505456493662840461315754932343616114386894155191795521160403279413870405973659682877235554936953672492603352744989288822044886844365275158954689558858907183172928912923457744284419272505276847550387027063282979975853882599387906789963676634726367997091137000500451915150705020857447053203113428375303964506837349474651525431616406958839656960477624810076981257623240276563247145586781166535633573841332037563285771114579477361177589109784495974871345499454050089749431237026691600227796215160164431446321556746579869691343020917375379329537363102934825941848515313457700649437390976420858957317742314576728829679067502992231525732869833026341233526316349020649042970821006326488156767632425444687039213337678948960012513626523547256517022255955699862842510886689684710787260016733242215625124292721308055932622130721409368643549968987874303526768849221231834492419076374715747446252159745764663572427527952228915040642776786566115191933191817830567164653048138101066673424591568641744576883906241920186541022526697061538909990725499842854841956681924545197470930614227531512984453091827577151361181673035809321460322584723528118255047060621542622432455144689645726938231665552509598950410934253743085999797137004258858340304497267109629969763233607776743734798788356730102864713845459287916374901454066475193948993522123624743661317478304868846315160365922435767627623446665395897964687905529239027020107572189191382148316268524904958486754329312418264134662722820936532772839766755726728973193812934194305723962072329200718638674667030636460133111116425468025122894305331125098538601201236070449699785210958598753293032771622679823055107676926800022074188490301650050385344759710183016737826819436124165696392522947410357431851765836560341232764339009565118632607917338991262772072135161752222552418296124339628251823286968625444118623812330640345331556016406957472320383651456635574987344116859941616551824960425979839267816131483180902534507164666442670262761185976491324768295272780570322383435150636721770663763740249030465909628596027197972553780014182019981018139812595042348662483440439211364872366629202063939628845314483748901026084036148407312006741562291596696366940836032643341496371209854547525017736696019714617846451555599416726373970858649598779532421583282184109391640528356790706864210780346607571979891481554005420051073009627962347272499701122177816567984491943322263341503385675308244677341045503274285611574553874214000719284301774473142300983657607515512777962810147220530668174203505967941050980466563136377825172470914099255524710368126705138246752117200528494295219748862848985277878356210600487812711440634990881645924451898010442935708329047220160726966046198426077224783107171439093492897379507505647105380291618749188699463530135729350187320668731150173153109129679486254979581512168220757123189190913833835344710236597944808047123388274440350534679995291335460941392728446513911908360762265798398156424638291599904416284527681893532791356747403227351506890987754721815574998488346694622271194343513957275609331877672157428578303301830422251704963297161229683675274898329472315069749788741400219267006720656772921310849357294076359289561828129001109784724328303846519743758573685912309817836030314052823008130266313304139925339921794157647985347081786361137720014085708386394377035291834974037418351162237004017318826939326308750548756645290932656650302439445362272791708003815785132529023651056809625891794240016387149612121694699254423986747262060057131153878388338830780165378838775211593119449359569491793940578848860623959444184972892872308495579260721132977121372388696986360236829162225464710880621094479132399015406678160289346942821550627212605417982917817382489199733829530168266790617780135336504718863397842735335856232791853579779226627038024456968296862549118748685305497857965989184862186237485563935321563048992834865561541540649512210466103765481806025067654913403327386294169117762638138347851183641056999660949202044895026294461684668551060662420883145374012687794781398595777699039877073994170325653193556130005281435994560612616083223589903248956595675275769853245744035607612886079681857619771788765561985237527447223599272020602389167187908147088670683027939897683780233375796837484716792042056118846144350842383697378594825884978259521414316768984959213193894128750695961491932711470358745336608149437546971429195290310193894356371835937491483074230449340295962811166523899581106000938622216226552529766106507452713589497334474072816739263486222629713471555329362444579946508231979087690744585253703457090077440815341678638701480996741240038378085234273977881746910805353305091194433138730408380430675060306862695321245229016675038563185858593174377694941574108105727494443840013991522952924016806674584246966055691076975969873109507845182518576898000939428637121910166980788517105711446695070312737069620047300356753682352058152491868239083974088092648527045816800639153401349373525471509235270441619265721100423458480853223980930819701215864173291305325898717158855168420606503405569968593715915621939545955585570093477116811798359958427981955643563653093890509419646418892434176612177117545737144294027293771776591831074430581515315960948263506336557238614139208130754146107405127413481388906875208965175472864434890201501872018366138417280798827295820189774861263383603711094140868044146381899755144190511520140241876289786882338665288749564740110724599055379921751556478198091849558767527782808038226298180439415639795617256940909295185774478836515944787206826785963694547637062382066962023966206659210812781832191274680814530314217798673533684893808266818969129998351994223212726387715975764285213215158837171464854288124231224684028390561577968199897855625102710706283793994319073579797536228737199478452103831686685214208220192667231558101173724423756091514893863436665265794260371682892815806931590571523794802566191268708876475069508501113702578802333818019030210029759755926818216359535070641885719005949744467974174202521309472461919502772132372470257029616316814647621846436446517995358777590480917246955673967945537349710322193694559627789377919383406972537884155020629583874830961954204615469902226843474617677113197374866000879354436073024336632808653684733506687074089001847030676982147531337315428622151551318140954149797246706763436976964583092867952120199414066540432666834408196869186229176544103649208078572924233887550618098365912226537972884111201306910185760304983295326942141884259428662146952768806320825719648671342246985264194190222362411863391302841718447248227557233799697074820024375803717921807342020805369357406187656641696077391209098134947021207251972136996423442093054784650692374464904208887326302261563579196063092369916027823649300034497471237794559512408582397099465702753667598133047775050505366345747155165583727731007857817871530316132768489253576078462114788603518040297656960584867175676366593087480160999279507871789131042038494789432860847970515042833265245718864231983999328563422686078834437453092728931460925442990607871117367669598496330621775148848993377878678597852652805705486612173792135521247023953256081906788528038324229680755447174377489501430231501469612254948953383627569448693046741980229225550650874297727580760951068798271091938371422909682687285963219428367272424774439090600368048527845438548199558287433441890955230992659295884828977719675054392057716689385523977360925820906934305789867423572953120514850903846524931400689961737317358162222944554161493578714775062703761924980363844001609136117137295576618089263864679402793656703853057799129885739447837576390926794433365054967707422859638087218703995827147580004402224042140033035903609605480047188473046782868077409898322252624531680320340844351093743194993802990812417921108954239270965425821958485866799241157884478152195574983222583356742267989600980320093548651085494676767134053103434998643497580002152868358357213659782084357326046612605704644092005206437488086840419995854086974773160175053902530649036204494584764408820400538605715251822177935180194147116600865329482810600219159446927834603798292688186777848837827131481606681284808747904302342003771308964647817855994618375106206884413586284506303464419139428937623547427775867690146782289070060926832522503246399533375667289976602542465979519632609027426151574818652781929779836811013313396516257933184194070269649889513869239612612753695920602296900874208347208408331884158268380193833589732243351364122443211749794047668241678096352035664154332541509645019779105414609437498159904457928380288801335624818140726114232759728948241418870259574549342547227469899768771623160993228850420280708381008140918873526333183584207407484465733978384298053471060023742199872117626833349092090738653379590749280892830301072075504724508511833346763047598206617899980044627448033701965550213204413964236745069537087816973799693790616378482011697962707212703584804794885806583089632312886734029638482411287659521853624112569697491990574782803262998612317247930503236377058456987857745316103866706755584406824089105118184290258032985140961573315387563114385477921529836638382158713588240820127783840973623264758443526302816647560799932214839271563212499908370989309463295598599287284335212524274334943790238249494457851649361270326423390945448086200283535262617529818355252978804650281353991128471612811534144603897031654677395258765383844457461103515616418092733462541422179033107147203105992949538959584368857734894952259821038315964206232730714837166917989674445418418903725112728353005929827393747375710992776523563703606473487247848396842037423097589988743878765428415935659735883450609361299244925874676915428045981328158258729991103007806315924817220522132060107714923366010031827100667272664889495509423368979354810557964237715449541371774079951775014666954655741008015579341795983013187154617138382203332872631369978080937562816985753529253902365681143586553982842832417000516419900517643835120057569334304218029315236854114240598680573897377172090328164862383954980500843602353585825546188559424426129289214341478982670941767604522251349298729974353338206276224063310048837745273811887225818199822194282936766660000403799148700185686745544123195735187123793059951482159548677010540478202585390833356406182622252080286486668097631561071376418909023606039541245535703806675356765247266803675176738455646966935960226342580015557208962384036477132142966921934724207987296298616757967460829597127485706790346703915786585811127382574325190397829954457674305752992830286341862425450224962419791639827349043594113958984043489575783324648221652497253318119305558561405031050765485899155255426528862875288955457736787420297703784684756366424947670848543073541328403616349134710744683298589809511102012425448846430712271748865869643672237512574076638075779685938518232158037901388513245670422527853876610135195682865233946040200356733860252055134753079007468945261436163812466020943396881829985725346543552854046361041312149937692163026148315182346942096279115494171946607206655284400443565753266414389342772209055751842369120803473798867079692283986937508881614607383824642000815393674001886257307369534997308367252810149430436456349752135453195195003507648237036184538497563616339744294309886387198988081880867474958317602229846725019591837178700154647194377440245879644193433052737786174502452497071499070005187269292834587178630917484387855063975477813979761471029748052589306922166622252353734490113539862660281419264762937097680131872041406668762554595422292493849462711775501758620213788767600298051574112378095519278181590820663636540356868332445566200951604633752256882558545829200193063815338736565179457437025887562647321077322764662315226993795825381625074119359925754347032075189639279292162309129902590445512172093189661799346949541502186833770152207591130088868902385799152826398678246546088746278526226814247331885885724166512619590003292244047284089619602649237730727930328698350719950917336222069042662113793573787896339821927111179243751868381757621347292273048411090528931273975665464401599108920563595395506226849034817783401638880747758591060473586645607299400942000631204356230811649814551496555130058546117355240521671556660413334758759879204455921756775632837672276901154164921122464223603954033684550113426542474489895459967920364424296652482735068799649501574046214825111167401638128823705492676679728005746329061945617997309444872374670630628346193769263728437102506294302398387471804112779445151821086400015584757912846401287399509776297708262263458825052078183457605053081571276816461601267456151310391071769738455787322413300300055347195116690125811352080156303730469080930979273536585649135747113509044127590764902991938820082621739395928612333657297066464102705878385513189346579626859330479560260115450359677101400579933368890040220753848251399308637163433660079237124064576176500364106122054356886881774062530570060230189829110915340711775171244237036436371589022011623171026356501302439912154042701273039166043485289217176780054435379602681447698747940557159937783563996621006692741927146810896204073611163472025898624647440819612040336875208970108806335428443692521801742512119678569911058334944999168309449469847078063675466677678253837230405284892911730548029893106132822852430139744212784010822979922563749918616190953950922923524038726563349624474469034805751356594650462503096250111859963630240365418782445707402458948806050741683907150580324241837558626796044894031184207156184266389930059683519608809915500540819116094261561779964945557389362335095602169384530294074153542201700885059341080215377441689697655239000700113109469280003444356063607661310302728738927422665249899098159012376515704327731921850284488111933201103571057194443871218352322554867726440866734045441353674039901046417928811413277329570523323399878009160267002892904670034550632113551822596454563655802704621531470603214767803873454420398877573153641972943746586782763362311198646746083171624959380516317910160217431600363721351355065556811627671648322879623900371433163480958689243847116904830789651005911049650159928314383120189325251667689558973105180207091561282127947857682315030996548701378014203423508621889445113091741552012125037797657263051175884455791816612431914793499879371889746676777827243329227024826454802849998567554945269468703275037839400366514426856820813090209490578996221008140773669655662797895875993816037392940818983260231197906051459780384494121855073472344404641363331714829781976698669655140051818454197633105563504488497134223603391300589797173467823734723292305173885050046360256819980627282581124555915860150184390904098641809717100754618847739349112735711271075330950790361979461708733446648052417888060677311064558841428743120553686450754131237892050164182455985291702855298234917568151981749535650404537358800409736931002101619740994088572336813989068523058021522578307985844449884900267221549288886129250288528135271737803182076280866581987021339186121133602461873626491285983857042460547885994420824018091973627117515404746563411804862886439875110526018600763208664032080058809812466828727691582888514535559929721451343188177166455645026663362751571422612127028290235870314678624273023359989513383310690803679122897592232090053533983610528084879743470505105124297994696958773290081207079728796535839232426576733921443804703617065295956729932344168693092018662571582035045922274601133491784768678310636302367243553709325626949823072618631310910501643206126742460867916703779309406696071354477720412401713871525414787133745660229142745368281009292055889007950848372326787186595562128376549304312274644597738111563966740927499199030967831570443792739641666751097892640931174682418788465392879439142807191372281945062111996049420141675675141552265693285969399005410111647767529256494404287958357100368450907034580190874999930927342332379066474107462898117101040277883382145098316061371850584279038953949613459869455343321733883804422922186848247101171485158347106099757869761968160124373302306844692710557893261660012959934985974917184503344610562408400109524903112915131020735366066991425097441671089180442792638502557662206256643470568888120913431296547816198453967515482108102441606244493185873512142860108581558715194193976552610624780925408142475964662701919437855071869834968769265751713501764020035993835301783027817671022024492886556546201055956741577115904728583016542256142005482685137191627689825272660007703368359267689271174661458864432562954417051216860837357165976102782388486067014463296368213637303317464871763201427880067424934856844572688678255255509250061546975828854921081222247668229027751168223695025439873245618612099967380501457521453467701080259152981604212231163287602645784892088144425417823517877294636849168637871033559880293528797513166009650345021350087861481652756934254915758254478587897790042101592801135480971581549325386490211513898577566392705820047833081031935861720959285030983719779563846649873345549013365660629589933126670354255179585895342556852221670572063731668209322415546565287062082026853326008665800583966090695049703022545349369418434799181485403175216153188936016989829712382727329618815135404187049273485262656664081364863788716802997434199218404526700361558020387500409637218865537661056462525859676231120914555806149237446224865590525941467834123013364881208645131781450546417941645672385775090452177054997583323609161824686637311995974256373924319368360663346878883664893997708709923975176942932704315716340505835198994772125986124659567580313640200779332879786511301194767901228493345593727454467773069942456260202388754930902233573983039664285659923462394343075435576614858518612844661731439799759776844709297927738276470935627949450937574975809402297195543701438592212160580810042397438533045434671191438712266270914012615384462773661088651827155664020489973871853842797408717803985878574872168926362934079370551601837140508771496281607873833623355597883713608096663152189322875105227403710184125482971285689541641949279438506394548386171545286329870074344746461465034144602561936493892557193423209623857284093622072055176469825304006432287560380697731469996601018610184090834745280892809833912909149258303651173029967654739251518450277244844953768047638864019063487296774799021248561273166399844273618623088551731823996788171581832063096996485147295737236946479442548250144837278643035426699644315398152771686798446857777731767242149930635976518135953927680687103230458025191560364641845527228861482514597409299719945291059983347241041854202720851360543073574876227384079200167634661510906147191081330087692439890505428382858717459600200884576448251903137554808601794034109441898837265231940718313705379983523443759548981321534240842874824428098988804719710545292339984765517177514410963503314438415742836080790134130163961579445590873662789091442759845229763054393408666782643140163757170561881345065363728887368457730018975435386415363938173762901822963330494418919406597305753851213398627564624984703279184151114912113525010468511900896117079021888918806248825384228364119065587480883812073123231413442333531444336096562719210824764039272060888862628525885199283013330589057652728295714261949791649958943631773247495809598414916399608724055940589740951851845370108423911078235447953897722079752261759973799318017660258416783458521545313578584209699130699520991878609886124440106074119863744715309935103342861637568094850359275704744265896795661933828768847466738762703577987555965494014662899892099869716485407230339888393676110133037840451130783799704331160533262199544257703071039684397527969197308128025112622360077754000513085974983046454049513097048034261383540913445405641341014621937160565528044484008804530396494929738268650227452822994845774673433786755028009975605100915288666465879026257768957124187931583948729738877148353842481293119168316060135430299784836863527731202903029710778302774738958134651942756160667428436070204002387686104592077696567626787819706560612033973047229654813734461913219885892321867439123224152577419290782257091414018156957284573833622918850794868329493305335931935720916763645955813679923869635567492986511324827139460731628550124132311737264877398296514923426741322472886328460210413669666442677281041495943027672387634286066448079048426771915985645126086187040257274427745143079017361515617731515750059883996401418804973069975506691012924075303749581557846276831148373516100826421056868786356840858920119268252437039035251766690092384082646752617092602697104070471481531020573979976815791829812892353041464919875936156322124516827461722779681573302532557352230229683398277994160348264985693826397360590562321392948550742764853294267105896994589264214411960008453533311450406865373131957148434854150415172347068715966588934687947761605065252053255188779427620006779291742862951480363937155624921492192899450678409720543460019562984744096748624653637113020873814175483338166165615185111911346847323655382485319878581818145010538694131580428941053108502625828157123111145551238854904453479867002570776217413802918927623452389391402805293096864556020870747502963056856668723977499859113562083485942647022385403313966555122940520677229821077169887490683123218656678892534843739289398243039270631046016785592875306017870222133068112991425648726649716803285494390895401159821493770170327676209298763615294761022963864003909946651742860527160651172140132509592705592948397361299817981025671385331771066750331317827873251215013278377486502070331355062275581304810800294605171798864186469383014272229157943503979917780164905282771302956245709102784944459005025001264756232514016120398203255027526969519670742351684211910982090147345534524738516054502034488652611948457946739103249460175460659491334735648784812681880187073525918380839036790727219871365126911287379537715995274134266740529860582672777608419974697064196590299595629560556000221763788281809646584242944311604341015403241618371124118334133690860407381821867859296600601526097920430269051432225681436574696554200716104926071055162136298793005559121326652543344723751548317961256407867774243070700876622029181406550213601916638438599988612327515290352987034953210752896906114040165980218828037680534871490208308719178047753136085841410659675196043240179858915353244342336299100339036772618991404668102761485787215430327575243593205031171651703430242737608232710098962149506384969100290257741671365850448982075513534469441941851991214566815068435730758765412713166542356681222737222333875877673936228746034106368156518664932281342304242040017305391395804503405968044825751340555490464163357843816058868602279917915156776991848385745819789813620129705387867266068895188507220074426102970737128356942669779338208780912705267402281903448878106828049595910794308881004695618358720934323233044096976123771968962982119916878709833961134526201769594003458673833978234147321913824997499140658967734474340283580315374798489967619249699851822401768193052100224551085786038469056876636412890897515543665065616506192218185586063952563520434789459161679812323605749683748234389055596433504292754772607193219830825380715538852177309242994131441902635580211053579886653626415101464607119855982928954907551481369440936071764942629103403817182161439604176985281732820882103690612597704683140598765898142685317003106627425740828091023311681597595865485617816146064344765193028717343009218001005873954834544037627646013824276340532946558088847737466836256169083430972700699748178242457419426260777097989142290035008433211923977359095594574681566469478110101036963569468678903093375711027620866070878210655553779260881641337529391559615391062381538131481317662760323198880497921677961104910238832275063964710076965247441460982262594476729758448101388084101452159329887353851807306981009460126167868930860243784986072082802669244510981539169597360182132879440792230675841298484903656303436908701425831419899105413985226930754669501999027720119934380998096571948285919876724145591715959557500060243914734649999094962280732089018531774166215707333892838863916441375939741779799619064527740965797692825365348782886469722536557545252280316884710392694299440177441505654108392481853809722462655146890300020782127549450527915436981754966618751347831918657412558355397407737334160156114452815017161751179996399406119110086304704795713409531582791149697550614252596618790194047452875733438892990800297698778930869873399027324722936187651932972809463921588010581209173303560696088255232179700576000415904488179392298445358037974607129470760820065151683365645124128112940020791146082742431095203360028505785103178129690111967320860994900367426065788332367599890317467841882737621128226150437357826128239235832602350621502538812050380876107577923411020066388359646169318157504286066212124025308127579700257872538449057874024076775176118282802205700768033173143733222497208953222317699148309229185252467490518771658719283391451272224391076880381467647768256051991624289946664158685700335897100581727461170013131727201526453957506701723887331443852719496997537245850451851121245323760092430472399543989332763258474199660212612529805661849768230504120572683027889590129847903701012363477732672039081071163930328926896985898027604285309812579195732408053145359995068028164763767861620499087220505717926326447013802103274475785095981537692794373539955990692011086845727615873747414978132199221009794636168368837698006801932672463563313936198022844660290825749708876116126193917988989141472036055993690883893058053593693391145031666583767906825338101549463368505270216052865898969422570963534549240879532449834501523023103683349308340823516829151896416671575047629019534676550504543318915726570514987763841490791267283803179053794039065513432425793133041324948076088104697312495453454578562643292457539754436311066043652894034438429341310299218563861969039536229361901016399352853501057299327718394468786490277192411969477667967432169166174018371906560463900076521196114835072075559291017853787705695420746007253475463298759180083020271502977497891528398945332554071951666575323092649513942114255404511537786456966234680050010557665686222565597532000694853643862230379848569368223874903195490049166578339743669860918339199872371947258845288725401284645056630547236271099264278570245829223730422001039892514376074181197679980049611584889031365744048147277693497933519690791241286804950501774453583056740426732857897572640251681129144017289388939060078622033980666196507858085348249079437151059318692320640496738656353128130407910722221357665482187805198585300198832071946026351214279937006940708565595872468136554341671216007026774829236204014529850560212244185483378259554164191001106984416061119361341572843855737682243702736802105490498596516582972944555191824151604065511839707202720208464020439307298630013905543486080572720871181258779384498490437052921037497010016639981519494762949998642849373675253631752188331308710888079788392417704627889360773769147013802057889504947811588756399045026857550561741605589946250346009210210935213094767593435082242287365273888374232113471060109204939561731748853780227314662884160388678815342375391560037740786683286939848348080670719236001585719202923111341735102217455941199598354445613756191796311070401804744803809438397548267445519775059366593295007869513983479298733887810177945608175447381355918082998124982315003735066265433776452183166172959235665505036298871193560120416793837252007715931419035192724580169449393893968861290001191170558851515798078321975863643962234115591247845187082904022020705526888567677675720843301962157900852947127982339707670466783431019043137939095674184931794875599199055140961968939225573319387182240165404389424297616591282596064556576789626950067545766105749703494720985496417221922641518102798911059033065391546659670220214954542925225680119973223318629930128897726005488830518019073656178487244896155732164825745475381614346708401825711363753394201684005114429600303082324276272440249343956105593933073782790939544010805851085381144126655161542809528681170509607828910789971952998934216779462002016998984965144055336949093144156637478982789278074171170977983171522522769101762906375367829868692728058988150048230697907349216189955367079070334793754336049453072079648770163350386612477167988940461720890124337095817160070941224936215496495754923913389052137928481325600654070872192952041174511465783621081106242854180781661949418458010948482260635786400953180380553175259088246744194408371697512638377222189990351660818503784010369641914891107162792024978840785035770140561634787422640000635581746899577459816171765424735821336343905574633670041826313143611418160332966762967600167994205533403640351816660549908972163789101933149352978816209395419682065819064283642662413237059039256804645463665882027057632649182915871363604687363845054497488839362556344690258479973397243782686679200489425440222386948917200466558257328802332499435398108946466293862106782615852789957371136482549194966699900465148330478673621389610739799157349933726567917382050679489033578517034801568487119057331503073236481575437192770782678884988301848646539821183228847745990682339746215612585382662372283196986025204337862773557515550720101605978712174650697369997748850582368618239740596282389906171845816823966993940423403802715214934164580665060942551663306049310716719733083603311809122267282616536491778154547133361395136935789707903812910081720867497056696396275052837274397916287648645576810769790438777885368984373003601431294866492623107727490370595621425875142932668782847880787628478186245956781686625830268203644597885098295089252594417211353558594114239951535124148861005811481337144762057489372241692219063913137828116201787876086438886050658708324086986394651945116888379527746353597780059964225118812756016017915902247521397691067986320928338406008610218467139811866120510377179678586471588911919780820651104987209273293674446645552278333155612798465198834836197608015831317906745512410020867752382206554614559397489786921632321555311929060258852766336700281085004036776020246255778526526697703400695921577615647642596347433564716021855127675264892216759980154725911835301779011021484702267325079585252754842316261589296749128014980057541492894372407464438111610968912792553348665043947776470166897046624970217334733680794773210861934434226421608580130350246371110894166810265036737521403282434293369193737263789168983387513755579102654529523137287857195672725035232725011490885240111221231522395356681417563608279688942019932324527491150005680661906710073056211312564018295049933428178361120044138708304541177799082829852391031652175532217390838633772407026085160186509754722845119753912039762759601990538382949498226841606942370746852851185966687687972298646027571845029912469206489946948977483050501351974592227789428049458889362661755755850166849113803454065533840450925477956483685314132206728052953221775767997329750000772090302585104432463993406745109433124358732359862858793613228624008278150765608155394815807462635927191062286452912195489912738899347689840630693501530580839565139440243232506662242987659239682694103113083415119675553613783985422117921941144956191653884918597957076432673697459359381066877511045939056158759634966179567758163129073143952002117162416023638780963299013324703785938655291405189485402021747743494118074693780365326131399462089455574906039769709495500802649687908339222077306303315271994479489978198182895663978726235996505384508402261607128870691917955348341272915563450783929095549621763780941447603926762029912097978526101261615871270753558678860701332293741480098053490197876511723501392603202828319381375304617438618548707315228789604380162602151932172781250101536609553959394826629785009647214769630414209285608367553697145767446582513779268930034981876730953665615409401818121381451571893485211413763239747591249359704551181113512626385218226841422290576167233622174163859695942855584152660325817356968734787152825385468661708317156789798692079668579385203867327936313110970175090915363971577478546692389841880008598498493115913728360813414373935984087726813881576316452990400331700614355158713210484908604086309955458293249851269415089658896620196441030335698575787971913718747479419890239855764454275317591278218206791940095979448898021655199474910767021949659610071343068360588439806250293333929180504378749584578395597521918499399156656842076444015770263734973607980438943732337103577946294959569752864241690766716259743117028013043352721392098959101629315031440616760330448713108889303292520953246042438715807137411333349675218946784204352012005101715588810140727903370901390608296232573654349022515857159734383964325496828242539277712422357476365147462686304216003673739057280974151802633253647788062977836503169624788766304946589041398145368349648376763797240301315465398808417396936142586717938191404814312622118490104771070020651363401986558245954915189360886020775433744258793923503783385025011677270527206099193802611795015938187100439454786426117842514617256027238047632869979661131161471745987885542037896030485119369471921087749508553862899585037777990447987976819174494142900098035975024431445721638798732593334748433045739408125512479377208382988604655248714452068120314432872021824917133324123894130322035955727805144049560581365140986160079051007464455743265393945391647302445540904493591899500930070180617233371679820223173261954865526065376596240693939127964089260841611488033064649940540746459731482403965686343215931299439370778216002709558712592639380626530906372271590302144540827890353670167098152389832704238400163481012749869965938331877195079369730835694367288565061102509453520470419059542468201989827961069973226213662816736312298905624737776292375576101165400655938523727391506690645767946392058971652286497743450228414035088808309344618168366673715725141638260562684009201088413783889207601230008640272331058740377923680777236337609996334549142295140263407406950003571920163554103905240352907273269823891464585498060712197168339517746845727327057830016504343852267328906604188841138250834136137996198101697052736772471979593261177622344539819532047244073394552129375484996462128287798947592635564711248098447886354857684404007964540865343117844698666996315507153553467533182789421749052954084700236515593719130070765320610164624284605754459136274080249442643024742038723113681403501164916738803397962812882370862631477737109509252116696677284000566965235533123572734471225058493342100065438046715335152491823178461651025808818016446049994058848908523540861518389404360719340671292367260694480645999780777249220902903862440744586970142059022198880684609651517094823060009646570143644076680663727968756940713515678279906490790632772090445245032485757928070822520326239683354851586069314597838528361694563361863149568957512520542758340843376543877357558113323322445874169130446233328853040341681853276507962953325671968030466262226939292423381761474062176943813018164468362506028878688263884862284407686498705054382292580658487040403556257325674952011143193754775407709196207953718148825061663069254831888871623685251554848108075745353475665069108998902579006747116536104463548486258453296011166055248123665813348443402303383876694730853114682295290092852033970729724784595032639730470969287727556674107879212706769691471916296467784842643755418575698510816587182715147495503615650037132073805452127386073713493283299506794838104667216961316674556498386410665538519571147797989780405313153130469535595601250122307301351228235903089741315318724606576765069273120754053562280539695667094045543310016992009340160301510967007087033089628658695481117116447222429564592624702284383736316827618263814545273819011571508952201669555895255462206792074276777692308115226475110682443391341650025240406933025859894563392703641944075397812008218213585045547352157480438705096537744614781134687165655588835197279213185045506835539430760503690093629623878364086670129443989385444418785088158837508762900011444690128881295585567752375216598684934324220643331265915748872953995338622517538068215345051124474409469110451163239958515057551231258294012367477151579026785466343783299768437518167132466395464302078876838451413313112004383627209472896677974394888903403933393477149165560987844062612358122351295492562595858319163624484491123953657658710507880739670881097669121051336720210884909249834814108085147197931198325601491340711816926537717669488632567738508113099293924279731126967745834906089590146797112197545328687949100384969406070056456723771053491890644506528029557447570185785935333025343731414420530358189472502565974199223900855033384792966237076723346362903759950087543075025796397415020398849590375857682910017344100301639017484856330642201175201778857984274579591250260727814703573118803108254072233705618403981464308667013264139910735002441887725563513180201251858081489754097369730814873054088717373474428409192916434244021024496426392873573982403810584200373458695310703279798502293094662680690179272417870980625238297549267427174010931339084400603177150398839717565171566425066140863519754573459747328546035257708163790805387315806922805330698661071761704723189417223854132675676864108506936197728508808999120593229478701723659957911254740490230421735611643954893538440386619667832273836309911100528583707824962506145518825693851635763993030755907074091779176896009094216626863994593098716651875276280612167765599179102906097798876029113129385895535018018282822842512717674142327943772490834468421570946790104913429397381565935133360706191251839663489878904947087264413445808102413965253897144390891777522524117802201688749824301623732901654238958880298757500628310445539487277012493083152494979747126764811041792369032564979086214759140723385699856848993207228126831503709899193130760222768091775960194196631360653375426514541707897265642169499127767201935651871297423897420077422706008183314686892660294098085839553452981326433742948397137157826634893888175852859964321524684920221705042364386297153170378612025782854723968550109472648686527339361327053170918496084286797306300436165421346267661010170035987579790699862232054880264185324862925109616879659807695389765453614545744554001652239142481489297293814279062558859701223872834890240573855246423443911993450272065771715210499127908992116992426409704094162072318039496941688985426561530328072246825542458111142700957323271901559885378957557116192459631233900138923872721527861242038168148964678214166675876691828545852443941373067714640373433094041364476929357832575675472246049237725453066312261405501756381159994319702788365614699745356186625199217747587896680220466677625977438338995660390403628298614827021386190536066366845791514514912966241491896900808153987865583853781157034266034430482255013197866047676271115191413296063961296795675148556053596642717648733877548421668073267934468273745356610801508605743399198621529578787611185592447235271316900900727602292778572040739492840810280038898566540215556333756222914589826405817184880903521959232298455919169463929579675300915498710901410398873834792493628931057971150462061769010546893013669125649607645519105336273179156006459648274765480572318894713984109860130286486656162666295762500981783944574352039379491631861623245084104361645553981702333968280754081606767892350510276470520409956971481930783215993225562257913369017793709375425041782576570705962239705424120671641874246415575661781751832110091846264871776509119033457230778731788048493776544253945247149424091479337073513487876314576985100249674982967257183895783784649478639854402312145464070231609321036055594619547608318410781549758552449473221438932052337349758294772936978542447331921658533831755522494658487593974612031368176924912879005517840370751610615086328433445673849566589150349424052007897413832212149246717980852846342868204470275783698828657304473701798754988339182164436320438360275261130900446100374779902794907612459938112405161919960596513900779096342935831190343056243567157340950561636287482782058761548998813622840063195111952017808096749067049765894282031932459132425596171141643166944161801552406618863311739950687964377815538097222929745986867436434377244602250082170131493699181402454209157676839550131681810740342830411268652549868032645793231845029509774520138980553581941410191319848338679855548199401716615848836118148504918646756391772863305837466512519099517627862182217783739216042843812365855035987768316798876917667864037696003396728064045734525975201932854039038432784751855614753102263637335938463979994511977345685665446742838958191103508750244754207501175472655793430406416448164000185489617235736987650020914631244006805066561821132029336859567547226664660246868542008039260740566298299662282788667330645065503288416293882956258875540969468070706581219805085789240566782073019132006706036421683649165256313537762548308959484205360987229555827524593150094334190090781546711225727107985212227375561583261030239205316792788614118329822645975576534045423461049029572239587533119579619502289460503083569740319848247937503897398279538992068971891296270970268160179994882368515441024906345037933046385059805006893688509215960924934546170186966470225326193881930168212264843687779523961813687773501783987601428797208483664107732876428869253587146978397261888103384503337118151711484715753572829111377136313197782120245684609697774921963796847374969109456442146235274675272612853018007895735430327535505890027607241710824277977227327359006266638666960135223025608509729963153757824337925071621720744063331379638751714439266238114553939004388678518424717587537903066366609326888319312103232072351409070336054165750822090603372016681138850314684644519169504365588661521259506938284344581528708712282931407275559336996812109903515910164212560711075765634430635117056731674352895819475495216114251931100258904134528900750775831818122670748616937051137474051447945461979530174760061067934534837739405521359299881834654586798258758604317340405546011823364935533063590832243916668061210292859293099627572450312748943909642963320873077467150077733008339343158859637012443376957769454826077160976708615481666794238910350609046146044130396871368948867998350878040680643816217724063479178119162006295777701399370934394432172497221823195212537941326027533674568558608844105908511230270606553796894861190333431182933910876196185654145709689387436957061234280197733557389624076816315844335848770733607207064012636724168412550983009513819576886151246486601910441900040538733356712015287826261145314440019490501156417180146235530033460802176758915614799503714673327458150272811272118264669225554441318839859509334196239859455611849476747865322071492014140435873483891207105258163644906920398813879272899285398846067946999733862878432225100374328066659264199306084693616756774847179955538224978574655672505567489493096000388111650259900059937401738666047062621238852848170109467101387683522002537004909446671047557900086274869986075801005598973977527485320741834661939937899976107539930251144261568920485519723078407582278483831235864781682863472397050703377015510803721686394150717589120252352003093644538161000890881305020391693411591082327549299699784135448332296718754241822465520037962279043106977024167654829394976164049500283098389394260224304616904843558047477224038717866934915392885786302298924314368417304703015701090230606750370244720033264134872856010032197236565201590949293414826212299982317332073064879601203797276473155636303760929383734234682091833203420880375831996892409927493635290735649847239275179648356460381131807445271846223458597944972284318052740625000578442004830052382387510848554266486618405878804641206810359198983960987271311506410818454904555799276094354218400671764535486151052824756829626859818060293772829879244252943870854120731025294049832789179127749003152175521488252603471416018195384541767118062521836875819415407036768156157661817204779986923314640336138033465204018426158039026418253618572246844860612887368699927202741626806376662112069290346196954581136434474159871401892116604662265826615905420697639435931236620455287560342165003473601194342256149140320157941711851715427563965172568645384670954524837130594898582559745277564378372093903737606448757805380896666613991839630554346351531548185886779262912725363426288985256854464698144974618924149586366367198140065068588860860224267337988127687969406497029915452452721325754281953249173115066208586652077490952965100753404049227356548282957025690629358881690414651069717772420955446130258543817863048508060589906373809054306950261384242227053753545985909932669673321651519481725345327473336027447258527245394785787049054847586331157183663323591323475882593406415210390728719363267963759284733131612339781549856507745957426301925013613442181778657326845949803925741969699998764598249567094095595490645143192997532969902929018113346849189397316733740473761021534979028013172233791279986391471010573645808824964037793669144260225224329182203596947965229632415046259303763664328408656160231216109902717797940482442374377242175453274369030749262617258880652233261410603381653209323202669910870847586819856399049857501176199636905969925410436875329181907200415759826234546672701573697113335704140320937934512660607079906558687961615799849341095409032124365443108731615863757273748174501786655737939848669229117599204342247600648597600549782806294187391474966456601976892636165982896565574458040991426890947249706735220470116191536009452736325306664402010023201873227819761486866348989132734701444820324293117841009152833330376911197051252511890297082942974883981371499778052781649343705604326005352698106918986588689816108899269920434547815535740465293822554757923965125781698498673421821853124073431152960821411209199994061601015821912737301650176958118619036689779275690467857101810593937314388119291474944356522189626028632586636519017453659212186387681077742091583646909091651827398075310306649980624484927747561884529732947271391489972684077858977868656048723305752422857172473443666741818123270841591791478616819780032875242194648011931593793515239417409041909841257809909038894077942046727049153450002486042745530730683647222075893082199445234721452184282562092914376814387802139693639978602212632210982207735714412941264065376526428543482970693655116806728306148155350067799273428746717408366660205372922048484087025230125857179145696657952396359686270645903720726805879439813400667670141176581252233481048386867717405879736896155996217846549730739340954660431458601540495615776456167344721264274687461408302063879359804284966224722325504660952317681724586362611284833874076507582889567745895887361095197420723212623335561519338247176021818683895300679750212076904388381283562581450125007119027156514434627064814950590196996139040560790673726072411292447199477028384835318633298176199947312833144915968777504290327977034761938062955123840138422910035767692969859590544398289266660878010344059670559052076683702101595219513945447731187410723527945608443549466760792882681935676466658916136214042478564279268156254485063166852683275246560027477652412794270534193482805462670281599245391248739375580940125919778346533655735625937668087699752574602702166964925299837753819693846254708518861510475226475136489188335738189169712195832681004195765377021192118272566508896682467504866699659885042041191615332089885672380926018142811762344795582942880858136988607372754974912130687437421943014866766259691695195368856911749382319697559557940217938873722515159971405447289708395510365486662819650368486846610392745568414363590177744038756512080771456364877728443833156357249683675631481039438968092119282337414507618630565777737794145333025782078879337135523281930667781034744878814533022767115982463014677391318064699017145323181957296401713829934458665281042390292044042050301085037228897072266732041640758383521162554729354209770671865262076294672043633643273505663204112521287225894149976280468914855507597361465051176412579302836974532036046506156923811972132510561806134521343817681732762841418102164413417024917558436568114547977751958280662844249750379174772362042042450573630609111548402426995643360035301436665975118280328039534210540491910305673142107541302357934877234239073959389300436891328148546882197053482680640613344760357465909065646098009717176995752043755635452168504422439082780834807215680031213805137447557386633580661289825695253557232663073951954063697946913927391950929709929134880148676072714978516827026905071076789657653044046336262688872262742931202875173849755421431504998907456461215695542535701520147462658735882915448693671682109726387703669298762703332692676405112356591787736324770461161187528378640880382801363490414508513182955873803365715923755404374036600943126624937447350183694088350123180570255108941846936668830380623604361689986818150462814543993708439467237952819530328860609963154780541105397983173910481917987933763099182400716369535925678358669990852568283461799920448492158286825542660666948065905588375476747789006303076397732011916264419312313733282236418119343830505865855449829986899114668131171194218916017937360257596321853210486874992047347029942678712761333423766834282256575650157489720280343180320624484957230973900571509314538918434494382839737345157998051562591643226270141862062369447593021410508502812036049109939053684780560216627046368552572741329060422899563510252284751907030825327384995555330449578033090259275316352218098898826291159803371125701721767669045456806492230515747468915571710175672403541893506112888730240431443198695865218667607330385490360277460963545019525296534070301597032409851150252930588656719011250832847149680648943813007837186239244681790216217356912288723948021648464737751768189421222071035655596507979484499008271935528147914340403713871720817609031988564587461081099105936917743794712879368950324774186485806481967995614643670824870899368395131507203056530300788685982036072066991673761641475665428771935359104452116916769281639636456297834073706478827406183405435707741216138320287378790378585893274553614956446125505055478266874544550908868894692718598894942344950748382185018434130323620046680700191750459262840838505364312676869803402681158070981034589860413084173550995694415179917543233480633073261339139979788000382109132766014549611157042858028160675162338135386305242956383309503201928781641324922300476117953582495605914530004246447880621302468978655969262925763574028799401356921167553904002699664556025682972369504959099602717097381666168678004832729299059428102968161574696306060610106226717021253966747951389381374853895351757832945136426006936137777440005669930174020113667731787704469450601292260749691106157620763789334504137336511956003290783523596465326574749743528672111629807567585108385016069989693586715225964630570091390876287416492541708169096847309548860233298288800101652962808976987723196907421027009348880934455512188188336519784318535596067476350722161178728735639465655434276140685594124259121417078116303080101925876219938098958943050939682518277130330334926648853295618795266446319063493896492797477963058182377606580354022796691081809322672514261428768508550234036395970562141251513762046722444289799785545413190137205600294567063403824299178075125724484463577152589347223368452680005049057940765926118340462764699835321989331271173271051129387746272008131726320867124724783103695325057116684669339199938383416530133092477294293584707438826342400701321713209728274947961163566782615071566282502125206276389751566585134060455290109261126381662242366899271064904188627001442112873592393998250056580064325060750945893585007218072932230824610825818587467133406733443268051547565276112290094215465561831034126870172286541622690757446663740257850581983903372668539128342511388977610370155470596978428438121104166749642361936898406356138762279595452151468928813282394396366129450138781676590929250897532471669123683482751546078272804451824345375965504925680648532309992814514753455092755527796279414245574405255218825323955625085721179963530195675811774436762550973197511556514845137285424074904838081995588091516117939219104261909284857816139051482314744553101516159178414599947122390516596944103972729574115833974593906205007758070959676589892496143734348781563774420837499914618345134117857213565765100288216534378838906972299886294622686851956288323205705378942178959367844899972838082251295857374295653148704304032195433016472204581397905745288020747285881031140858798747211863286489844734053114604400480011189647421657199931158890372059003146641812617920911940887850066778010999185461909348926691850911899853281758015614963442527274202132308326262537829753747808496486205747377298059504902145550108969348064510974333005997985553203313182691751915919500655848843655165633523507949744148699554593468266676174984193192323919858493142907033972490741043353155071618577128445270455615148720821787901075809945990781903407684845590803485256121124463883238877600772564059505857614506172929101763421062016322763133570869841611333843351915955219934239104565565973100823169947997845631959834114305637058884135857232439459993716084515443224733325747432690293211134055360526090724168837533543614128702342378252708953823576585165964173281100423670224794265894895420024627797793098934507602136241713703106513275975961348992427004704717253332642277426234756632022517984249524982127655951139456814127007662315485158257359633538267179226699363339180668550948028966397016335803063577792061512929958681816023327826828756138695348983385807840486775650291623281022321262862370364711672590911162207449944470337154671719355796034064957218399132431571758689056357820119356227777634216236724756676876172206101521338942884427554638039142982934097063768466511699684549774924842162345498790190059012230711024880588049920820267341521334526194822718040452465922884429554190815449214580890457049392729832168834134299536825867464108367284683313287432198123007451303144400768357402446278097701300214218712351188443907814286457148671303162743814053388576038852946905077691124396402844275392116011246848558859087111204331369833551298317704475439527351180945626273650721342386754878162350966398758989078105843337220397544204986189921453439457001076699302333404507062355822832197939121071633904478457406495968373683599961027055981093432754571822658191627376408326491944633925414125704727893001218140995028817766321849854530856667900703762657705838273174956120917523247601272848854422298986799882662839508678945771438815809675505801148163295101341784549495324847435024616682604908605434986260707695220684576930888101993638860205690810166450518721815005743472746924004566280135244242904323796847683264995978599541876796098882406497426652295844069729776191462648978315102874006697923620332060404453547944198199894752531957170520855316177791641077276461392157117740299135555015167097966196524062222914160997227029865408714690791932911101746040120652081190334793350740933967335438106677644251621091064097827740393472409226971399864193240183367625787951661669211485708440347311098577186041438065703058114089652279903370706792777717324019606366905990239660061747596602743647723341713211256406957304300738718969760826253778407616890456503696412101726055110506318058783071771045716789172093155510051312624885074971257088277608184629735156660641381318577569232194221616981981833861591091112129640683476454149874892596769391552088999743483482510977171733477484904241570447657365745775288703137087391907218250577299317720421259661778909462781073748939672753336694977597757614013390964005994959912477424058226022767434791404365977500711749068727626934563752876279153861033480986929574289849008704137552160375946787643984362695913728997237720073145336673352699683662926085657058390388235938311896147636133170436652976443607494016496971739566002324847531278261351162745169349859149728425780115663540112574883834495782054756513486752535339309492987778566824738322471363412781566382459050230733983253608300387302483963995418402866298087668996005436067463747817597385932001097038400943290848252148607855800720302839262481484210735676894365084782917239431353773078338286204525607937143479890247754480001573891165778949114366003679354363932067762630211052152101359215469454499705888762836579334060613239110233812347891165133960648232734302761158534325707822596745669263994450654928199905402788150706299036213505045231732501367062439410618076676137866141456378576604420749242292697703498450126514921671769633105167672678488372954900567865723978442763113473249771989060076187591408960730665821513844913456155557115108451321597382911001114287389599461623938505836032323442082881450433915073780818631937207838031136417583734875197650793352053542610648396468002283180323476626782438970343828285676740993880122455841828250616588718419177397134842495575355361542835106244832821141075660967969951048252279421587069315186868228906599054454289767683407842846866351695073592900594465251718651841204544327116374524591249405103177497432716433047861042520357940327121038480844643633301371529014988427523779498345747998752815119651594344029887214917065555918493963736202353463688821813143720813493658980418852618146166856463897428391505955837039471238321734527348213615696128326308516503821529565084208247108348556368415289277977777563665982862156502212507461167590321165420965414701229428385457567214173899297998005246418168473348180217325219882119503518467058280842927115925999701537509747900795093033188056558010139808122984565468161871538579928128610376600684408308498397279763700416603065246148266042831177932893558742055934518813264760502991798338271637395986023588785134609267323195158872972924667709763509894677014028229224590936493192519317428596941523665646599511192546858864800103777931630738794443787115163435808683855098036167341177467955250541569632555175659300110987103438333592007520317718713211694297373666504816162281397436919436021979331891137147757928460485105745428328748179328722787109615896826041519103216035886779474792592988509994990492164849713854412553391673798326983742448741274547096206337139047404836079415752936336390448179541411173493620260485120123053605543688879386291448078791005255598932825277335435924706739997269227399277565339725669671524096773073517612992214202555065314295490874261705335850333177746025891528937886543076661397186947435020469696687505676637825001336654434120149780395334094843058804080871386953158989175443230557614844599297128725620764700238088330825578637544806735453859876380858476365069526736280986119900402679811302046101019445980359274353057449296242273773395520169158005332066975513019731133703912561191330543297941699192948293905572679579528177269687932911425777320500214760199698152202061524517942389845818526827978979744054165648056210083302860547301031605032014574051888761984535029699992646579565001904482782417386095401791037025463814362445250887029226639233664043519678003566545443642503625079529648921390656484140182736971450214526431646621003738099504185588748963082465740733426300253099497815591421287519705271001157101716377498833787956568653934426611954407741443992487423206042266159771478006548964334962358396221135312572898201355984815657020457482109173737866280253930704465543688974749065847794940959812244787432218660153009734548024696172671294778795194415134401730118832367448720447806236637003524258617656838084857368856902370922908821222720834170089791292565435419407826899305573151916990118070501895885964740481390462609707341954494227067754033537102964836062032755617310215914346844155390956590974654992791537633294735996020089802640794682925361277898320585360585618611894514061132224271286111668672502570336348863158571739711603288212386637491874566260429531898520879176927985320596870827320607720490875624976239850639187378806361073721159075733629897056657468837735159852306207834856672673994501972457061604170286561431266850797557168950806738619613357613077933856652942611789955761282203962786163036697657292746317600522624881300262015934469599332301304443908514144069612949095143511324043728180378030527016147459666973182339616557550910094477201123130169927082110437284835364658022798435317648760439520807362259586407873458191531059455825240310753772157432145713447781843098447499918919885723488153921904520156617192555429987533454002381109748520270053711471238979747010158547538626802813231702862012903865851442364486492865523581713720293880175294101022520285691187186079645010876529842532971631174418650752018769292746421061313176203085067906658825606161624512329833385602122519961320728581640702090623127183448482230078940409243916327452408745667813673557003975514278073920034353313212822873286895420618818832914189042392958293492930594813919419210154303243567447699243068489549520239545645503065047097125895308641001156968732728057534628882092894998037694276715237246907452768749411737611248907019198792964232474948371863913292204033404762728529048057020058877226359767881747157982142176417664349005485153222335130502004742660842602758111430811587735785368141365683667133917403160705650379085284322678216464359301519207099123433844476197489701363751895168498630633471243935719934533251192434024867226850967122444228095486209670642071460389235934010684400475369638649751359735833109378326001909251574431920376122937708905574543628477384533513756498116412336892295228886685199915916299617867208191837173473070068228127018606502753029833901466999574794461070267161116027871706500234454852655318046152798030135889431096643822247543977162304676463531802819964493756623711511605197875870834292146749800015297141091672570579693615487561571782358311177101359012535395568712745799720175926065461900593796089784619027221814507235879548427149913315039620305124110916504419669755825132181861783569427554061455972705352382673571102318081972085394860182205482689866360286956681834866852454461440840695218263328048760444691900826696762964549075457223692332744166491319556486439945889933877587009880543318639985540493230677615918285928743896057804640984208974055068329611397239222226979036469776787551730396664474157472658465478065963956489535819557003579716689122694699271512844864772273981174181488663319289946594706008921131898942967719657048618527686134236881500004172380028297670052779227655408485543334861688984973871867886189873232380042400963864067984351716251126972592465867872110705380153194957716494850629815798946941714282042164165586659907286198493849175480269584619642294779314981223836415385570380897890076139010323497179696325471965649122745582635413234142436435745947492979278569607763591484728012121820571237229125443324556605340748495181446769058959806952003492300124986619376210850051236442547826435733821329660966973165353542562473080902881776113373972062983643050540861940622183850244985475668721260067633974373153257838354874824409780973933614873102023904533809474159776645603137681106298921409016612327003900505022947613518859124106470656031298014608889949278623547812337075637352432127180061053085517170340536033073763018711366935321769842826017611218600635848965341436067091419977924640972114274495469891463555482864340110401472230084740058971939425556775578440399365701263770092330401772015709714022618972549024996396256689084858977504157130429271592893380146276281780424512433461156729170872181169866958713126106655810971551555696334819844224937727899849001691334065013922558374525364458711315377496428451540053640421859769093297900720083629620246732239658837413175290586626269446735210442603791931521103560615613271779583324238941011378308624546295140958171894165381882609858136255070281472074410103228385697701212667932146472801159682437711016405882920381222982282550564885020009031599084096698014250159959742561022026318361725571114913921443611018533845568286070315766448605768250919462158506950828494085301806644991207142867598986688412790646539483571531979162968219164287626912567216947228774367226907463108534195440611336084871630083220781537154815435464583702594850361674707073027584996723132809601629361233574085051675867047032285987247398086473267940394913937913084973632414139029439284576638351984218676346643018086896069214338319604221009472098439766652282254436830422205470143256511942687039719929342480639118311471596792882765901606584811613722944199433263769016822243435592607990882034002343509905859139297715760494727077028309575842707091369770437135759020267227121355344973304305067410370544077345958430922769374840395638204885926470438636211199354225500002561144970850527050091628929604984739830597708931412041983770187000638580784426177361278758099551595038466620748481572501821235408254337982027525680745741779553025894681945776460653749932699328882053951518474085147443635682109242501710525863495345791590287152212995365959158076973734068649381356148346862593974252934937239229911260953527890147415209461916937523396079180058881837850668857882217408930223767078926490559017835733029049861047566240884046301744209164607927659240335005213697505366658033405013128071242798970006273729152590701666746437245667874325600195554242094453363343939195676804590871330983447962129663258116376546648089007112474028151564343463108144532733971543233454492686193074483735329034242902270632344509081553795123775716104927121798185353585099415538718219449427086114969262082228311054505260176469442149847969162493833508643899797943725725850349473321123642015645445958323210258673382120827201102361718132916281347693613362316300055518541699451237030874717693475306380949148828231811460148473591765019683057147047139716805417120760854152779061484081543527705471113866193551918255549673768753756559018915892076743526148852937632107873123875720648408237375303288464023488292875867457517411964259554732547129988784413376971744782895148060629750159810410965179248737254241586060709263434511221805151576805039523207983907038445590802489767512428111868311223535944953623328051564284509116382532846827690377989405609730496598216774794290605229064271154090759630490750045786694806442407914160424989736396223835534265688248924903094013532275982922676180213994468018996032067580342939794795005811235633986972790236701977628984073319861429708994553409037260576822344748869201029764887194618758629342131709327277769165187100249899666585508381133567896174811392400806920441462566538294522339155160459482487027752402656030802416084063358310499159313085394742690732347208841191820248470757329115072124544689852685531159985111793938108020977347381749339998889738565369940387595253362174823947154783480058946039366591889289962175210471630466038444412373450910382932483894560012983649341732042243216564275828626964629870549437086474634277118529382480439358216019860700621711965918325918075744936556603190574210330697537073223014044293913607299742314821862057127972408432297422253064784702228772898891720445413641683018620592669478106500157727303468399829551105996427519834420909942982394136155832653884068529837501961002674327960832267660898243739923045838193599445520364710959082518991662915931963986386099844252455919444237409807650556117505789614643591992556426759631196277837512874653796523866525681695700326964287850720184716605737922725209523210990761127024194913962807481696514943204319306489969675235237780133601715355794152722674404383547747834615417136108071971047308860237450312138900813256243172049768868022829255024334939599178274676959411554430985036164313163944257325967461417580663424492506040232202802946987375182931270655413778298861958481093502663645207509319615250820150239512810696188302083787791753142473780066613661071255613809568754909763022481825473369577744250136333465052729624195150307001629823433990910006155502494673712884321972353399452938067223419621701616343292479375744591466577156266828511079209801382360277908524908614061323820470296033614212396789169499234232171528883297993911294665253847268640531873197932267770276017871515711271319022168364169453290451952046150335534734469787141522447087707084561412083149801106667165207465553671878728737469049871627624680530857583522804191995607327665917569577300287920706287306356228290710931722541244102899656219439303393597931272982490188505998207530280581826873453626207698842883892896355177269977552708928071198383271264164981358505660929746681941433220376360160317023864540103804193375688745593512383982760565299379694631115736236765803515756436802079790980697358928950333631027509478478135700064703167653179843748938593199284467970505014658422277826960675919777431422848983462296380957522453292343592235130441203459096101274485891405058274767759110361971874811262596027245866765571472754939412055513362289169042638208357399520615723946451744498991297021106570959449855647567105391013640465590616591177906243645957393460718577711706111845170015454508099885004059315587509512061655456314620073873944332743915654082222655166711498136135073739954893391748086374196648093278171002639550259140477751934720526936117215529192894891128512312563105277097234938677089309885624797358932759808463423218516249853050362731645550860024480112879487089021875287345392941316146620881482680861416201591554912204198602598488609910010089355219860042743405731012142734029475943567269776285427772767597954067832154999870802605838132869028183862100061003376423791980019442370442063331998932146516974334576991282231826114090708986144154081991473747433681644982432526608166696697336196953321277769129772635798430150971081585627795241014031219725399500985483700699157263817493342319841708678485963309129366977383562887078408002392235782310361229231334313870871375607264795530687856767876140867978538841839750850468350928414471968343566924539145396972670386570317296241838979235453687070629105358409586252881729281692471046395913765433977510330386186905416278540679671885645231462534683464300203066362430077280418391505048399774639065235270047668220337015691585237701399054126383476484663841179107634163945096265761345248340913898753793488871084408225150247944719876888399200357379260736576854930155343026843848388931402721966820387276849040650786414983954838623991443271003548414285714663675814108685756849749642492058856984374594686574480184934228027958235637756438826823262418776221622607090451984593267734773501828543606939352416589601174507376114064068959882929944645381868606647472888991909822960178929780473579124796321869153687036559529444334995425160580908304927359408810125128045910650504766496267582224133933158027094209234354824137545730590871565675676701092095054671117837732104759766979436357024999172477640990996184223422593896684699154418877209465300703443718311572870573206739875957821407940736334236084963832333591790227712682630327694877532004680184757705394343007951196667752439615916630827808395905383229511272338207550744153078897776286771662518810911875351973300986377174786188154764116022239030319559678981537333332582983600451889734131385796009297774588061424010459150147820679739436362919935582276023675103478275564866271218825552853178253586010351082258145026112047470924017186025646900684617317679905734901100727287689261945275883358758221947384320834578633052807557454938289523900598456827291413464323488171485846067830594826014535968762159670812495532305763781564934456525782552293824962657511707494988668765441038270533740898921040368677365604542858451695031402232363375702641796577852081754489246557099240813236655786985264535388801118891932862519259222135566768155760927630615575930662647392608983278347680214605557131593915751341973623814379449788885811963343728292321966320335780126113077010857215989820280124527014194405510821109126282616707080627427106208073756237473911790188063039151918982517186661375757275971038981146281320941182432120115782881787555919083128416589810129599397245828288503470905302829222517897243132948789737432150734138953199236450940330089444177994978550611469561529485655311222946235263060515601499246416469416535817179065975346477474751894490338863769454910133847537957012434353283214492982757320649460057035879741372847308556850024140578069949444209656454542067040671269177034205589354592147513994658656379532449893948072963453595989773250352242536697552026259661902239113744647015156377494681734403794532885953949267776387559086479724780886800681723558531314356329754317660439253838540575689974298509517127782488540660920326559828127019571356428139254066130983872519138828743230385070066019921570688871565313698645866717928365735525658627188144014431714367937481059691370932121680624247162372966171539343995336805414569867938971784889101598603095412935298746169109192523809742944551488558318499498594795902426366425548655563314934689356150341488374884631294653005659807467697736019455981528630627612626766355773597675811384216123733145970872986047138417401248888918797133273636262511311334676537629299840890377895200008539399763584744281979857678072104896345990778015426697174567542617238402203277336476397551754916653384472733685352496691562976924834362650474619882335945593854238873901364177046945395798118752712159776844251179958071694546686174982003891413675742529519923536302864099584773808066759416971558083354262399667913719181197456509501421574144502465594282308668548345475504175328090492439697577338340692003659626982380632105842116831153608063960003029834869862501418951961597709853098934159069182644746212429836075434644624346418375891269938235380143849573643323589088034003650356294509895717318211938753606040337502573311825257046693447027575665724602024343580517617980430500157661220685910711916447836787755287555765149553864629003147784335242018223228186288983604995567100947130736251175046568288749334511080043705700857207322750831967368410921087264603086269870121760440904028069794911183964366052184314923073516315889044454805679783225559628577325030639073862370333133937948649073559546851796504296661825531052645982451735375632502837394355101805927205309010514290924335273127869001515130558740539553595264903028131275892668785026838027753980878419695424447075982652771476368013445122704646965861601405000598135542660045553041256453856489931603128055964697097277176477513623793186953564285143044563012761042826494036797480293301901344399860928405868810026888328778606907005752229163788459542951127123641629041724925928703351812177724572063474441407104579870116834865389408608793464288581405323722052203338827824916065507514284988950267304733868941466577151917067007154628493341305459532617825762474557786052890705568120939213636020794840019045348227175019919985035172181982915553739405244748816084011428682985421981541739946151944675665399110862570266172891572116167086128078644225968780654055240840769809262297989089743886487188124121528586210714417131468273941512454023152718464160210458750969483759431807362021929374001190274750271765673435942473670661803986776730560640185899053575123002306608370871168691475791336384086232538434926718606613904668433787965167900709509607700445453556313624051358161617384399700872078005727973747669733000195181571665144821563406218186569555695230599732096135279604360849164645440098534029608616745334380968998239436938249495509471695416706412839424517141260191624738270866976931180696097101557258147853194625746145350397626055465125435021452414343298249241381217713203403237186715206273592816337441031547104639631117708345350154482594576086659775717391457660958775366724984051724570082595821245485219616437893131098824817003842233206328850043254208492159442373470693012469333391888763956241425406832442961396568624031641284030587825646523428183365665189585503699094325953094250608082468414255314370373906651098967653980873587499377033458953019495195170217522645207320360275463941311371161162228990045708028475403614063814770890413618963981467936090582948205418580676537456845215201141451358474004249171418349791085267557869236460840510296405685471629114796051660512986011642189235847067744783697916343692203021988896384901524172648351087367313458395344215022462615533663361483478643233561380530074966762084287575307448476761221295204640268425615740219898496340903610921847604312888296926638081824774162432149180517457605165276714859567236058544814854402132907532311933789705421376692598941462443758062516153217997346963717964554733535492490014056074366310647417667998572569863025283994443463799305182425984125798358649590627890695365185495918160282523112964886245466247414987802348961990493472819666583071475772532015868355470778367282575623992435546393774544779733829602922395391013639248424579908952046563980451217891118683684611173674956595237321588319222476966429594969400736850502840377689062658085002467172958976399152885528712794692079212206720132052809396452263227086822123147580066031785861841069345045525790977739566180123341874179413622157860500783390345912525245404857543632770893637348137625065838802048457015329172877536585102843043037380946458279446317034769613448682880549387474207836072091819669560779780786595574070960443029786093090797207307496070108155868501594809753435305272934116171483174733966100517521700230147990108690345229770487759840572862989418102152969007455565972433483618503777150550860330111505317616416961877236613812722787109865173452038573787302166127222580623945634238951182710638999382819394680890891714268678748870323697423698254355888832460845820284023483626235883643493266480175590460342821517219563963495304300848416621782715144945954090117944885259504947265569119457920367936540376113867493761913528838976548861213181153030471606196867043644288434988225523312968750291635458654268660889460469293705964951284489740485678003585270403993562604898282215255571996993525794545261740743270859891130014290671400225943274690218982995179553442748718111642117429343466185812595775017541353411801559140012523994839390176617521611923006320392693503074408005564853217364811681583302031705897646782329202381824767644909239971574846690066268487079269797454361050266597917187256545818722599567184718953968963563982739116945400828677220839735648520196059606726455519342925230681863759467716574716398510375801026645131490589465320117025939029809267215532618811216870595841647293227196915373233155149878813034739889489625427170463108520020308934976074748096952314381448595233628759639315703476429000525190908752531657407924492946317614112816050060433236781492170244718104090002523572907450940087541909448501323427737790282037687775988388910224289465863071885783632584011400402958201515727775055220497671741806522968128144535963077468399197436150775560849014830488152662261688754968034628330406849672488458314489610898411164185347246790495429842336879295028505356227380869303629064349610638902734239816444371298967524622134998071790983253853751824514318229817014980471474405208206771734829307574244607177847252459461857489049305096509795390542253069212360701703837910857146983022577248525173845914560791055885370470662930526861151496257016777566050987152218931199319086080409589327271465200315991180436374064955449852221163110792402530841208587432750830257360467355905024287620096058217825407072535881942427482290612611565067099069000096462286669193502613356980448499030606977087917964203449470664734358313049859323970595890765212059389769761799954609902557501292529505175646332819377848179827289216268839791503902841548928484050101832934301693930859769188207609832728889211355169823445644473332530729623985792356457676844465574078818475328003206204091248503790790336969679985756985481175481183866884928262489337313463656209623643601760475628848255746879835231668920327581208311926727387077628308791944164060207462803182215764029456583397476087986917525550317049629196191712150721245277331363754728630499003750245934859600321151449928406621582574367422744755010639122242188903912068857149902812503322293010196259879383127482079514574663690869011102131053057387506102876258248047297829759703788665270217441124608373700727640915037133336149717400905160213542870186599060553712590929896988757268780006791586909108457407802739901018725834025027067523492790845564584723383879369483932121937056631027358110963094423462935733587439546101715097484176032594835362175167124900482878786934431786340777895613431476530447271015873083591865442275335060945004542709438295952345006179508154991222606770536954034708723167037735800385888201853606077407859203091001307366861533205143094832971286108366025245559269732660010329761411191743742767827897475103029546503081040604842126629274922587131958043783255838142797282061046716445453966782750663376119561547180811410663728904450860711216506603398923855553767532053879934685050349218586536215611625607737850783368139484509250569703460543116890143456562307724317804512844149902118799309048288989666196447742952614868975745732046817013139309051170561296813362465657670327529978842563672610468451395578761745542614079499278851594193234557306458553637676662779045651946875235905070702902642359376892174112583357143985547271796933471669904524573857657346363234020958011223544764441723301996887594841115885919388026520824126254157759239535571390099406192578857624383439670825359850867717452030647712597168716292719811087226407167316203119950574953533507855790580552280567687094003588621450841939451102129664180301025071900414351802625839184169633428710839244701121728427303277470134379841173301244691377597488172808378086328358480604109242208657677287522099632400804299449293049868849898458249983713858916691314115948053797704200159706893471118315733890104746479878081565219264411241753662668216817707694323814663364194867908638258471341439078678526625420255079875005983442086433532034033854071697004858954238194164632023644992186969351976251487589536447516344494064161989416711341044350148248437987463916000978580071488654135135723460466234792972728314241559208002510346789545427521942413257040263069769465401613548546879857144294868030391018441086389041448112375443712853308239937328366819623130295691856958566274113770338858536646227471931672503361104073315657007652071242407975699950151716821900645117887028746352292980881877100729033972992256642113056013757759771901399412363267280845389400319096154214993192613364112255536011836627327838526740198754781876353935733949284710295825287103809975654397325671294875582247836268074527390349037453906581151941957264558587882696188599474918395265496354475713650412286059311783277470431717021755542733811316446122057779146073657791463076230156987779427994708000666933390808663128520372580428713945527569344186438283216307542493576743406689842924817540762456348435859978947995073584089721127260109801859131872698582043602154493537342282099832151279967547715108672556888219897690679432319918500345646597546894209085865186885415650053017704347774479438672703930952508071748114388066769440408803370027622892294039495464568694673656276512157444272755618547272970923160771008330327612046440019501088255436661183840175064330798789601849572564092270264536383848782826443778467646788945218613735355436563776064766781708984505435511469123142741416483679764597496100751751595807391647993195111269366016485848293907331879739169087881956186743588313735155390613140986275515212954448771045808977219105827633989474849102783391699522543776814394074186682375671244233235148234658676499645194524763308705364406871414568326066397694548019309437100867957512398911906085980795618977028617046714020263900407552116967903967972007171335597714677918457136111494079667124629229993314776342165412277835748258627534990067921119780603078857495469732841964644872481549238845041687488440326562774709529606774811952785925148107028490709150186522875342941836314061123708587326294024339098198386808979186012746208189395020988748831959202092020419914311024328861840438672146984472180588274776118855314334547759499157081121547243048811098267530850187927122360672654247225549511677834995137607049303136759892216457674176156088948829950931142765681879504457390726038660155812138169555771358420435493478953642023389746495492766853536201317528657055058809440977166826187785035656932488370061916868813257698988921537701642941547703528005611948422472985187487774953546599864731283766810231684783864208035715066104376080275900992417626841020731910411686475234925060364563867772961804953661056181453874745364735629557600768283850026539033822042359255398293284193944942050008998872489180621128704903913002948556514749543445752448228715834065454230746784942749309634700151432631241612982110976577978086462089636434720880591553642322648312645150216051965026584720667061301204933869699220607212055074846983132504456790361979375114510561099405972270610245531643418423159313539053072773643156367264580132267637726686186334792960994124327001774495398230432040025449854464125821814920560149218878884850042818418295383774717036791912893763087010427207210527934076159095560569028788415435937041294487067737642712638215283791146308614599688138515495896934947775300910908956450628879874949987918977330055395549969672231130329962237357438567780028847289642133583266974725834606152803712627432217243252933925759249244741154505859760314253954019027327179534824534471181832675337725688313193570020831617831857934695550625098741480850738372620144835846400353369127055621195890629893555627791783990885764956240379714308839097111026422589746293176689672234040127892499944003014646792202038304216198807717346647351646810982056584456771849874997429162956952777441709563128459610269014542233395364432479089882752945116320992753074993793818983147567944412459596372625788487798245921701280055758027161475792168773028767724142783904590739127392942678843857719239680522994034053347073573334518367251554265826396199993098367307950372448686461149373049576129415707070662032891811072389155275383366638170804303305567072752616774194630606087015556574452308746558396124050301480579106145816309013148988618821079382747513047641248682780160190849678442189011101839255967801588844050853939768387360141912309606008688848409587590939798875457125098902772115401440192622172796546564989599214375691142902020411115792487312650807559597284727869968278916268278694911524767458519228110865267700981927943533791355350051468985793823713882735357271717893830142216485717141029006997282353232884846219281128940817079740244219054436930380174929970320843401108733211145368423599993209089515669085964915227766722963969422424234188318035210991164028064348473544379832000036280819097685584925611752392977416582041844810908951268364708462474117396127148810193294558673819432508612653588373685599202590781539608212879073060653335449059883474701016808696373177373258291394020149923292096927067831675968147669667520807748268071111678492935846198418626172110925322160685253881591855988062776872164381835160495538527936421090313103607816243891471254331653700492954357313119180428419650321615780904252013312485605320360859144817671705497669073927648951405521520609254132916570249181716644372036661368578767332511082859038192154476652862252463592191750130342843933195491229727926976395317486223207878920268445083520412496126094785976476405051344616457799579741920939413873112767240579405410462075597015741827181915656118320966587774081467691697748376641838608175254785968515246948077528179062939927065252312930894866450147904547107615155399799638954573549956164209646047474598537724051945204244695155110576014942214459850785628980052001501442172360303944283424448708887381117569548458688101588473050820293605143013701045069902681581989459515045374857234879807161323689988928620499341347784459648262388689344956413068869396801624022569609725905836903591447830464096918458265475815349450077651607581956641240074336117286666057806409790685068438390865501366034171566121774136535246662924038527316315842924751071820737619974257005266362873424852769709124146326043911646825719384474976527412791288332764753400458797875672197285080251587765490565589220471496205252104012016698764453817493876153962176209981866956434937752040786704550275749542082834382652727990664040463085556015793541580183887088771405230057777479101336075834637081603741403358166217105237795477803108287893113898944795861169392281377248209766223153741655518707243003784468387344461018587649662483023535529068562088936705012914503374712977082985920552405187831056216521322461228800347547325593257117509161765941664823949729133523705438862724084837055281700296298090586508047949546245822401357141584900673308445738818119674451429115214342793926996556225719864391960677530383746866722217035568908425034832947667841503678368198974756263607605617395949590453787288708801196541878924765307820255412342152755546537527848511642193002104006960154442855007174370354007033593565053986517857070065820998041957449512358764478124861041475565904500553778745425732766313738825020172648969616129101048127932637456731347387116638770998454206702700296011172263762727267452101811865591052586145338819701289911963847350290174000706806314623013080539754577602872474099097506917882619283197164721284958737918035495590854500617988132119821142982583753056350978991235940544860179024862607671948351844234905871907533729443395924091853528029572010383942096233427756208747723170117527568724101224530281538795845096348579839104519213186349569030391256411390596412540194362929494919213530717153448409684207106422822898118640267635071607969350470210023187810985613567910659306600789776255319789825006631515629833544391644492580570078010616280321022019570475798656581168093324230005606648967369487624261724101199075962069434685940406164109057115534545376809232712872353999074435919539839737211013349491656927142993028020314774560505446618457532305901707861564430381970179149567653940459435606066050701739389313213462585038107319503867448355601949182280516773057685026884325495890895608141995075256518935540226366100848161462038654464771071218795163069833620214074612432738560733007417290853413714676466208233265300757784578012755078726278301618250870084281877453320787977894296485859758192842049964829620427354073385310054699395412546194734721703995270227035779385851296836644067889837465656361354447806668384669765176614999618543989623502371767110274089091939958314514687236128713849724206908095044223678551028762868042518816358402616298518072115283322375809709057453569178401938160024396543257825045445196940348840924340857899982771915123030947380554030823155608186071615834339556172810637331106060152649641481568404319462356043630174317509207713049088685604727385517309538084750144865176049756773607833154472292534335963845630215217104987385925310203978958143336638415592992550894460278070179622745210555067119131632626527993669635989238300609698160016708813443002039117719163070163778003830037112641824146014987041714805662603384977517560384954919157914179295368495970628632971745221494526436400040116851275873879434866688375722889961342993866402364058944824529124282016580047816694184780636604784838176185651558401746037289782158565908314893065117791985723171647647241893043153199908815499713774207210118331968619684944051847134805103762448875818172772334427215708740008524939194933981030831999522885426263085181455141049674896425768172031457741976055401166514371933763721881865065248544503999376609226777707479399801422580866214987191247013874698956765809816342407951357037334868399460740014838188091091227850498742256394710285890361789248694551999049171162317092974081951721636250623714208252611907131791876380037382099894155167362903105494029053725379895773700088178658870490439209102611278111129355194227781921470074363737351900832947336873223965494763299282753183518126240071189203456588554680950302630425192198797773744326372609289111090052198687553722810530557641476148246398586371897727977619373087670426497044115114128900621261138853060373672295958161170213950300741417661128483328860167367167320358804701580247848646398079995767647079233106445662603373073615899226178752674260135360072952785114473129927914524506233402909639717592321979580111914669928396066090546200798237452122450360169104115632219532972695445551518284094539550786740409371853236603877962805143126766274036439823983188176059785281346639469560555811845893980705011357516820680694894385529135088285447348281517609715423859522132730861322041292330776565586927909570047843039556819940159642233595945502281056543779954708624485590800370695015608019307214648972673163938925538159958617022059139730270900638588414953461627642604428373891251918478198500254982630358510063410344376334073346990312703558308011243548158661164679904704099547923812878971867801098152049788060504766682036629672509369396073136693374720367243003189666204997506525201754713578657346438364676379268501958461510696765363902447489954321997231906116932962287789461226566830643518956163899574507722109451279918853244493764877890405442242334709795872652176937776370796040732789702455829538696164126324657549210448122380893363807649499671963486155406090914159497678087746191227708286844605325727180192324631999466767892603035979578118279000471394092171939987407600099970695816344792336051061664600778755939545785813561911797348472427564395444690018537030388994721998308058834058367204730105933716458537773337382618819978607406745090629225548899083443584470718683462839079294708011696863948511850811643813460281234771266500937086434980810611925116998390691124112788492250107404670010024987554980352405636737156440483483522461021967504033422680901960919183676975391844888981030769313603684649075185192089980796748495206425281503988219929450163122444192907905821755002124641564387801147363534860323181769769925688623422436511614137835848603457291845645973101458014423391034366190912117514143224004338147146495702803681747815733992552787675813633597536055953938401768676743047462011227916421387901627178293633202573540649829431595005547141144066372802259064990772972153184835396210592075094818702230994825467297018483782461121232263919435007317776200669540599603740376544106287192417866624208821464827827943811361974467588435956400543384035329212785957488140007374970832504832785755627877386652839778888430937242195945555354368165329371988636343681790751801961273509345804109446551725884968026121015346697273811614985607135933184212517820869764413662803131959266299800800499938017991534491839141860014917652009555057429439030632354051291327228528953318386128009002420185920683012455768851599860366708821440361799497576930101581684048963695057071941618192298699854618110664316242154343885744834338880719947667423092554142522046461326333021925412332655422517900396237001187722488012189973986745402327831011155813888762532752346656497928456091175839397247695692295816479170577534606301700752743140171314093470826207580556365138365779777856686672314338997158540512838175395172886726792433519324279446404274845572204271370383384282433585631425510375691018147458356414678953450868562901848676091677061998800659230534436395717282508884259966392897124775740130935543924733240791820455538176637235332220935125401324815902989026429742592787894547500654994692121246662066260821434932002080552240572239843830449363282819228454889328958740225793208207774992126360859118902964660983895888100292388204924622971332292970377519931361009803526705244868532263744780463843256463010008144862912199457156447900994460842936828479652744612765333244881103324202517473862223449069723675537880339959666403072143753602331036965733231523772298744269056689617796282321898718909625100096673816079948561699112561646645110175597163799499487451735865867708404716844747708499097699794470710722164628013946275459233625336185844576023868690373404023429979586621889714158804575375650785042610212069743697096921440941134689942630874378569318126994043871459489599835002482339043529602141043479871030683534297708298332077518071528480882833701459951573669234089522074675311090200040877667734520830410725541593900525760346091208140284177420377130700842437158672936059348066492560890600621400735246220346694340437762973714172956577384435940054753577833647871738588319957253806398099602645405327205628731511229781571608629573746845665423600829004305765331541271689897462285133851076706642751110612635113161609242434665697007093299521780947571129105148114698468163620994912119157375909346546661760859252499642964904995300849587607819636004710267394007407320843624420034614494703242395176785324245348099377528028052592404865762846714121867299740770308393074261740145003221049726207151701671849128134389819559697665219201908137000367278208254808444077054889497735290074093964115215928130985243276068247595225330802824831409114550349648055883363143637880869268509840227543561095303877707012120002898032517901049232507788502590832634143548516877220099829477199602305243885580448738331603586172269203006710187874260694178604070699902507500493233626929932140946580996465314285894029505075993837424671389269904330889696893171221522509329615283223140401522472006962251931218769483286742002917366443568066358210533280417672615156230212428885543250193477471628043834193928479334861222057352401287750089411533192309765082818111896355024958467106845292644845557427712134742858861286553169290497678456625964182472669277834400266072794741444083706645758512376709200048312194034837292085600229027797730864854147461858811157024028731490423374710220512254210599660703538395064823345926097124425018477808097717267392473194016550396078670123047395765332806585083484125260088946584673119157291745742241779493354979891900782062130861080386551622375812464835540650724329292911545092667131859296769309032438050050470579802957471634654618685966633481647375637582530295286292373436789494660108835291361314666383280711983717491455000642982081727450617511533164317850686055995804144705051451344346613543491323777336900047757585040469935495286508212310688552096189971243934341116809879539624817085293385576090027022794974124179740475717835891513010194831142088683249433148178023376509533242995528594436834355197273185178049465583509919430937022568193180246844883186770873093472780380591552502312040642236094709885301607583705436778374146441160534217600459326489012510109436888394937501080782355178495090823589954072647462043742888105083964558842665486927650484032831218209192252549114726640636220307934550660398838572486005108528078987509229541520536859292619877916892215922052205519853201479261471085918843186865741159637899311216099897611097963356544490273435909832894786788397496610903105796567898848146337793780972063390584010251514800188040123088613129755420721536964927058014552750216146780869136607498122516216343548510063344349103534205339346945249747695508626569362762126109157268918512773037638397957159366930679492986483866338445448631276085510051818945811041464708454015362914582274572901534105798816935405528318673603825088352304739202146070349331910672726512771799141383722670503004288951549134802923632392882422079577308657735443007871499407960630325769589926239205966013855541803419669893243670285104942836217902424447773819256545997264421416458801833242657385618786789598523634784235368090599271199955978540144835966062156329516389073004275682540019235888320300191134975232861300651097876929455311396689555834764370807033156924647705668317087358183948045388753075171478337119507687976407728846486649791823184502315381055175873407189625387985376214371724368207104688142052492393655087044891355416556266667131541921763666664454613419706588440480395862840116136033685481345505093590314165725257605525869878703051193190755363634544025154523395823365871603816085282185007141035499360846627840750612368387644621458919217791425930064973124185463655995675129585020308227841032613715113519839061241596463339823900878973879933716728872035678948696127846918029884000770240461416843570964611623794845800243691534462319297027637045810546686186489200648185788447046137629428206142107034803630844111678006148150239136901396657580309396590441591251209695297358127309790325832927479399692824383149206259029330928601033239174038383427457113513984577478320244883860219680767163316534986730347454013999215982211167111512544258537609167343276999040058449743475905564206307694693472835650649910777679589265079832348108401822448911707496651040618759184748576972103674326815148420195697220747344822087928699608362935876316538904783900487427479351515284197270786143219658284170693904968157725682805012202075109236346551769315157232381050180225855175182478223413643178816520685066139422626534469728935978057557926078321667388980661251923880001695343252262005288995610861328799507595735547495524742430832870191803056477082736701434453937593763155017509351851587985050694639052319582925230975140740525459563140074366313653185988575773788784190261411868954456504216033706478625262724708543417597795006926490269511202750263095436740580164721315926794537943694975261018446608580007831271913160212350913829704258702336416046448461284709186343151986536546609026761822474718012253559968132352238667955973692580689597530371264802448204581370182034328690863716598337757108583301036874346577411062181431765563396210063858316746748091887170773765355898662202949987382744425547924116346546794060365024746024561895259093499667359512271273205240111113918523027067614277230922294728810133192963339978185503182934432632206469801012951704557043006325015625043150836576283267412300204950639717367841889100514252530524968862567387384777966286621649736240288369309617354373373136677583583570179447145747081249069802297768156882572257089498908991206605540252060801322450482512081375674376619867964264129860594311283000540888188123313347297473121267444431186759432091066818417810265573353262138773747375534578279041511593132185182858877744177229662046913866020934969425605364506621333173259619876825885942987942670938011410541539939189608363619248741879169306463578448072156583993120379401183244802015567141428598637278598469707404755436182348158796011413662352454806720345614756939780122895658521622561696712983690085390043834510362995911887655548585010382420007282573831915399075270712724127201395819955356637355128909069762510703048920279452591556500485530466782494374123417108451112727160221094193145540157999752575970623571196509207796535145582849694641247127262752026385688988076835163458821474438221218629646612627082674226350571950473923863507541211664830262009712767100489826716132451910352783620701285444467011130523252269301508703063384519741892706340692454588091376803729575334680677935046864787458770737621925305287481361985113857578454292910766542928340713435022508828188929152445277839874721900813143807204302072454679317587784666266568465288615076884031223212187332960724426849433913948234400487947318100156723452617702576708867907794884357597613518177223303246999116657596635615488804049732012975600952659882349602233294960423551178727855292408028587766780633702288000221810335470733819373826226757192925933563709540615727780572441483111640428020011737810453773569712267028220634931269054549816718499502811568901079688029001125658917905559234547229213785287232821812125034518205954809677227766071310177860343882957331820642358723699341009810617234963824686830091332565344923468406806939017473532015044406113834755190428877540607758191617811541300399257403786443591301907846113155981228743338330985378397280207272868923202989439733948198177571392474916946466667896123429109370338793251233773971388025498350706646550164356596853145826507561070572470299837409048601724376419814227043148037384529368743600536391267265076156807813142004122411959494039297701634281240787208085216663064592305670320709816172252902696023063081292602279781774357161381029192980622509729023421402721191693803271329832008372850667961628159235828668657609990441599158720394183682247309036694969071774570121777144672683511194579923576437894693565354208606297301046730719822766077439302309468861548281095152021597052550236156478355794196881755560913857785219222596477699410230570038366747623550697882318965569824146502867863189211312240606180938604883264517308401695014208215732606429222886911152502549936021800510419326096907384748832391402415585332601152850704306609322444248252414417460744488445341855282414037622464301160849294866458299855205426715174054544202062807034332941069337272642970668910815358484014909456938246216847992970706873787740628928325451342260408837187219903835552674722094123126765963381557250244846112695927469752381449321640444689895162240069283709586273806888336291637240041875958645520463746275695830507984538153471523066411007256923629349276393671091313512704030545769699668455358471455918192837712462583521412445812027496607847718105699457043360508168509589453746307951839500347172519484435994948544685268129735901906906535989033569560310064479682631204573191011544496555112268417325152277386303081359758217229059766137627641766163476909125070161999553759643211557534396621688271084036751192999600088624632199987541809436005308741339626929982076296680154880905235587186807616985560604341753925240496799964651760002692691655169875265250677395085130408053884450609260109643688108942026856159073899850990825015494639182209700648455366366899685892286382159711076717976789750115428087230391288788699618678930719828675499197432627093410002685103259296326881852414895791244327648721801452982185749771429294366689378364382229658591114179405184942073570645283259884591225939492744455714667765151145692903139525375804633758579641581163621872276615189824122053513224224882561677424596765412540331784498838411137607350077200856972776264873652783389163614249642106308834930890332084877942864404972226828618599466893437948513348559058282069646123946497574122362831397733819087455803316751727223866473603363229422165312776358477306315342973727749231497394273391681398751716501781032613174550637765770978869597675742214937163528845687419756069536003933733202065164936970814922958343311631037274090986625747050514702272309629622876768936937738712390204651672955925396375704229682701372159784961803623480433790639703585582422108823529872394968853577050451828950991937634747320351938281114420925467393367822925849653220080015263180291408646888248451312773062679808155954764828504172711392640315538504058354882187206324982256830837811447496727888333200287176700343696901126333771406814924856099222370955185473844571790541768739279171785165931986828875641818677687684101914918079399611289070751588545524699476508217675677211646636427681998522410096521305046508340727574484966197616146084059060741022144497622366799448483777754612007723490483468047995536374920022287112718513560661682291232392180055827814185815990440624052625463677109244383173398476328514706535000797831849158240117595659005350270640384087071233412549043005892552683369109471018856806309748638940766073009576591462156505019760734488992170674595990100871084361834433277876536825877230822334434543292752645035082751036885278769677924752905435163484717783060043423068025104169270984042942326154928313761218792561598055496179934882234043222837656531886125750264078045152954197194195477977406155462426767143364705108681554032166445251623107122601230893710475506825086032404639086714436907732441343984928414678828471479332996215272656768340104003538027202527541843522537228344897065811560857105993366677451985660472200841601908600007880595268182669131384173418199055901058235929020135405146103729259840892444057996292612098298196317512145353321039055651854357550155063302303939832174241638876581418283754957382481357953537641564860019910209763533920754849348388692816112409042860516889724156259375795831898950072924596046798855441909311233298527184462335677735993334804074703720532803470697637002715728202307305769614148719664204255727504919503663230046513954181407251089307094439783121107332766875928037765071725136087557193764856367448558888257887661339184493021191882292709019500146842343636992753199546115671386857045074414321633904078029992349058144656520449623351543572010554182060440262989131818118356521480138655484650393917442276899832095994734532614851533809088184406737269357842931940850818005411125012034574453033313973804469488527709899805696000519141141422794776296903922415244615981368125575139849403015890891283903969068237159676228265437559056160300204572745615279459651918250071334871565451017527723448508700166716220881347145595773312518768056485291054073928022211200328627810564024398003807019056977396529787790988003162006689840372155196243342979928100956086160201491088191150979379290036944991206217653774823719553245806361501300980865044242529347835698514942884633840196508628261926818181331453522710221617868856397961804255727094019690419527822189723711576046001639909088872571825104688428346189131812029696413348931760054804610495092798975176311147402264219675764519848872453240032533025182483077491232525668847561695423934889778461915757944227708558205785410061634879826139855509192493376344196938647024154343282328276845684142699438372354025409393730738046343438282071965531403267158470169414833139149967410908125309984316312073108505016906329319101821105395585567039824196291695207657199927230717637308136423894014823262654705509038419616639574583687476267352525581199071918362373584368718343059092217995449969222330034287082269330565446768367767558779608375718328106825559568543168045747689684479201244439748747005737572457408749217827564247332585933827183601185506372711682381424624589045907602969214280818057785601886552690999279221547127089592401794765078445144146455171727245484769416076624783260657354138944619885837567498476780536983929576326602264723992041365216237363614666403231551854151548111858108443398551504367348070980163062524751019715046695459749141410113086616816368604210338807456519949324586116048711164862799838024812539418990136377273111338342667785325923245333448537596647162083385374122635553089374439019515415756799424532380334083072168419947899681242688846165970608333973371771443649867987671879725126150631972885540631915126103864962031374005154413457210449044670519451569227393667324976857391603105431148168922251592576687809534620488181913512012841625814721027809659799919441603443841823262314480816732189123799465974694473719947344754614472906985885420101625230641968059723722842337324511406540283755263039707842698045973210194934570025250559594698145422107028369067651113380082719704304519247809251178562729103526279169742580684026273075841902146284409178984425616298673909100537002978855069858231909288554409934577175078784925479171378543226314655666153587021169160431720984265232313966065488930853830196834019241368671420697276336719758147787236143301726125552055830024756665571711557695597207311136616476492124100074325367211171819026986473496581301013671137322293076821469823309586260175527216725842477594432158344832516677179538137449644406567381383266457517449057480046505684021118589827064600254984222932072749822069747698062260826601109618485569352118066229299403801572610103842829608898746065630467985022929902092919324617716061603848014225088691237342485864417312671847466345121490808553212758118947482517859401758447229142593819966479033908751036666615416468654700720220225459753480984235013648485749478855474592133750963767821654279141354746700628127674422229911882799813572690737854690911015568104297173057788424763853740267974152370946246394346051216392451482105079760326859866094008732341564235356676663753122763480101077045489051032405795659667413083115792797480966954347260724741069201533920909334582777447339616500935752471124170750635032088677174121934951466676387126373728461160408770630158376001115336492121902033180685003246663792217379792680466363761955836204719574558817255112000804199114613633955520113003942391597535667411367022325519019341764557314694822022252295483332977455605137307742517709774446598076075945466065931031273487155532643890833837027738220743145689445864371754121066049337745424904700149039594657459437712378972800584293962105526750395663214923767298140663500612023607935950725002611882298817024409323060665400972298243353765243779941591851493390417225014699742533537805043621410935772354900881869073902695140166972148362616723323851117638972737557228116899199803995729374603221728192845340933258441169630406238300354268874290211824298564512457952073479846273461951045524256137362994330149839372911108705299695191835336505348442428480463104765220834208593651730965844961302858336548195435981867562202941613843211632576859825629672018289067811241868687845973133871404187297007119198677012931062930969498993548139218759288048398451387407586430276561571473351835440735062553123436649600531091488130323844626520435136290262659333068120511588851043585699456499388695707061119235727571102941969289941876554368842569280638614351303106384443343133961969797335615232426664170663902403623655935749442510383568249385430663695656283813497578319090242770499094451411112412302060434223288925974914382315759079844235177845411287242594935333309857109787553868398175482521217518103082181765051555634524299484539045775626744657855175914891622511780705328811704597405975986458300800561032233253843007509811343101204508331904228654685877994401229656165638908159592239403439222600101972217657362171163599025757529000338660227492594219355961294755185136993932496927866350652388267689411676389089823146190959683386123118586714957572705756863997454271130365918183847178081808417520100655662130476326752494668205997463936880649990764134258089308204090236323835178306322176172064336320110403440994091584051468783262604775680407126154842603468338802680940447930891937342390363864402549244811573907631680266467996790175567187064136332402887050874571658713959164292536144025978402908713437744417589566558113073762968893475271737113137790003100827293871224879869141242800845027251225463527219920187624235080278447967843370236807361439928590481111125419311013509593127276611248889546891945355636218793299748845867834814486269804703990091628952883689113746167315617024100451577570016037783703395725392613540532501146574192248012182431698530353639459885750411326222400541097051949162925743792819168762049267568477748603451383969467990943530558615004279444831120630905934432470009375367100560449265560347274778079078363950451876244839269798731353528434846388813323043979277480220152961923554860004734273095078678062530767364333228241961324270565577945226606569501618926256269482380056950336491504711624285796896829089690583637582782838928955203632239309604204622878106376581117827427625323405055645853432873936828810555823020155443402566605611991608331245276376749383219523349563178625842213416657482628877447179338703290836250399594515911132550505060040551933106785402214013928930774710317833410559482918371307692456979522064140227958467058688577578468725289470075085185004530687570783974666384507360195357370737853567003625855820667372433386238350663573235272550298747371571049578276193935635016759283674230853838573512761288261732009487808731297810994013720875321879621767507234310420409830054307545430893475609999670530062600893958753980300478168171271950939341910683317924294515954385112109091722673218321181622795705954478225361268295095486221723123631665072572186345317410723976503826472612065862723390028195090885740960057687874591353731461515897681028944673460860109973678031561291557189237969413783512316274075169456949086805441787597920036554692634446181773732271670034442667760460949248120587970646584973528807924153156393243441257891779357259017863758256938063425044305458827958137410756022875844478109654276517670622237069724197918021522914548339562562284607838662926681060526376677358438248733782586428850121233292472070960759606827560580289356980680090424779414480522461408019298274453591426130067315399742203980804453750119539726194484844951991140281906600326280269709544871657792318799155265031123235536396866845302430159619734922623522743230536042233756064177773162385607180504055918235089414216126043893732003497532633969317683963974083408761489660534676500201801809501790152475738159051446684042332046251958596479602895315590775472041875168042210488273979524827374967425882212290841842673273540506297473956251860978458070132276611517332515928012500661030784565522793390661195546769846706931144543416538587299991177255340758362673072059819231864158196833440775617358760115854106288590251485970663025662727818819343204435440594264174728744463849708875389243654826954256770519550050304857396719259369183132249952382903951907875007477419288341283393151436054565549927400340005147528601176491368819754058351813010642819185427723979888911556544206132952148340397465595374693176797126059326227357889369439528140371554981256229183602897098844835199959092724761429273847611342739427076465965860996751230503243760925283745354475985587192797451354560409284463123838891929763872245094869466433164585861170878840725956634464887728389814480697593346348920920847479336641147691694830437595998302984485104669711676118031575670430748683191350151086626814811080662676444881876373411910463014864339513331694386486719125305119771222260512927206628882836514602219447081969546319782481806230642959193438031910707567289113034166693906837665143733400982917691778335023511377237807008013449375124805050073219738123851625063208104966695365173928688581397749077190782452979419561688697223167521045066713791920865389367499863148664101700444576299589453219559866395809179418510560086861372835205544642033275428459604284332904254398613235909889616104911040370538129550774681638755768131629919025081570271907649077578436021697722790417283215248311154673779867534863300970984071885291772936383789686704544938022017157424305990922776633024297441704500745899447515007657427829025938963776349353159478320022542432672518423005068820208254972129214056337255815811271047415701853893178293987877127982748865671504632246643855553484887868766413556127610485824205891865197234353363957236099480816817397403119030930451000439618069123447708555149247296678508952198610901655248983577004961920373861655837363132652345982453199510591605837900039799695177706979524695229836760743149900854856414332722003498903384042853124211234021004981624291858924222434957536080826030676240154695788064729619266845275111600959053785483163671245484867788201725205463985586500358235002021508516423663500787760715198561452562649515910555074772785379815406327168195111754102288929837822254533675665190251216823016918198394259899975941176958752150927946376619633608719250944468590221362185710407220499663863587129905305552702841046772620212744667454521545772370823644453357064522514975678705171948005008025678246078181854875838922588816417620490361129043128167483207669348522857760679348464586576690952066100878790643016816753391621152056810844678941591233741463682113883375773261402746246664515098921044063818083056080401370100890741719376629584442169122790893283198267723332127920076809166102683872384324544206867975603948267365820673451550426763088181585580393191617327544295576436516201516644668557593725940971151878369217329993841578827660226709252914746182341866367219311226984236086854520418831280199780334878756588271058702370961302747991323482258137696121704622742249610167337547880106340855148662286995691527162633501789803398273644877428231538148290013432567888322876071651101159587187145010578347629752887433927458182768600045277571772478802098965643852942388173879991874712975874116541332391556510890877525768628661680719210903432650301463542749204474931246520147323197577036120450117479398628215253549720267179089505195085909795621538912180564878996785730688499639032778132294015207305052020960765468832525175264101355065145029802134353365875559161683674942894412148048659982256111987972086693021284995016647952381706495642735155258468462892001418813857435106708068039340064939802782040845015597431112977796802358220439971891827408195202452301617599479708280586003288928867410624713286909469466843904201205774106699462157238511091569237592785586844939773606880019229349147175801631652547472728540411178250031540494164953211474507549665480231018551844742049336821498678673878924957514706902466239047396630200661578109357920463627713503946978434359174142643778031190219547522692089547968878254856457071355666985023275461239882302786890131757321917167849301636501389552913159011742248960737494602029485127985592450773793569081333869747037415739655825885737413490358278143407462554235516439689046077958386649966494450747565796993514935135973200133033720811662891676509869480729440329917612907230111404658911382427272632968517609428418793980260523956540664593300789657415766970867192092945253931552743735282800482345750914485335424049182058302117366937604973842272159134835520404257616992806428547140193685561411027658280857040342325875865694650092023084983082678432727748692779550406611100435976476867865384955027225588542249861365736317396148099893608474097176495471543340623707326586975276459213374297141242070511225644949907914419244483283937913804206362380029700282062393180756192264853973949330832519708731384581198570171002491365252271986840831840478469364290251112927517669939886203438789175172675722174421453857611002834874321905243332939928094883906152940641101879375394113430317191685263553167352985363986776163506611968224723486403409681038585046067296014761310740240074265340243680379210684461534197080808812207680711064389058863421578528258228774367547014083100311384298534935282493585040362345923926688311448077546710591069406547237346587789419248732364370240202401751759704682954025507967730984443179863541346459539022765743203518843111559754635233045235505529285063631152408117678464547141327981340659274673208354528227663430595305473430938175037787231764648909649104425587969404117052776629702325695246367177584587882202846053053054661817220965509818396754440119356702782721083355606446657522809805862870333075787382108211292102103896165231228487920328037665387201958205185618250144240962836609846332252841101574173614882341460287377498491498459046298890328492560839573991405910241206845576248034590472359536883927461900635300602528684434546600578574568725002887974078126995014359696494764149318504962555216944452855745294807232433027736555745610429660883569742530736111303108238000315853873628688492109174918033905482850546278641000131694719989488942095308644650267961007150484392620633117118608612081871573273455137001418676869219670488590103624233151677601727174223305049530615852479196288967594442134623565193122194284407143097895505598588624420173628260735051163846357111878468347158834906233425883436142747938295483412634174168826028887355478166532383215407683590968120548845481718926920620367096536056408987592845081574274786219413671699432294586933049535372296799780048719102034782473949179717197672625388495281730513600892270524308556487450412160335515149310396418638089265951903435019795036622993710706109803283472869345415135967181506297663744309949323695704953495914193527271514187376586945122363671079380115242166244941198004465572125975358046399910239327977083871847534799854360306617746854816743025350911414225363563383883543544686001108638480214792763158479351071062272212328900030400855510346076806651955216865671891813348506806937700390687013762540552466849767101445993496184224689804170186023510196499013377865083234368694437821639202188508599658131112658894829177348973611017473924599639788237708464359325646405544663545645062781650789100006035789584714117881140014704556579246847933898590443560951939559830484119070859683908269696463010331291954054835663347075482559716224095724560789952275137431729204329442145717570211196649273295045892435115422498928418293096801627909990143910006516066465476572330384646243951138306777012416199103093992894039811606167420760338291759306566044008716224229486412092768005484026354604602128643129686176048676854587332459049044581544689760012917675937178287781574634474974431747224571417824959332658959901232631654318097855782577535504957177981990246125777284944635352521703343393134364513830425898151477362367919941816883285991871572172287651994703142482487875964116310081912766602885664731096116466676711893676347212909630086923962342070886293386312556128734065346790974199382881663850602787328004850544918201993378711308294933902544408454452831107906717557815800938675360038603557680639810642357510997331840280685077099666201399383021570574904394911543830905615830011301410991395832903258695837676197074489191132631216409818434725600876621115969513338904625890504021039716887529763411565301637614017241741275415677573385156334096892443014061797497537174425664734934545792469679930110261943376364486675375610876916130436137483304794412259526124151489816998076810184818957800383257633878043531185697199517408404042921573207178938770895931557022742728265816149740801332063433840086890238893918333142004515961400898611215629243641694725431356170181179200559592854391833343694519194514317154135007420063905060716765819058242162028976968440905524544700128188685814354954542055668983878624483207521217410948736474109157860409910258555863940130915517560027976586538407568236397358347233648255335205247722960881930540821053281311304880926255044062395575903919443171415265275408089529865726307163407322439503799871488151262446063128138524107414359794085766578525169438992746556218058869206623250449370292128851274592702137674834292777741271892215540626833008286009017921875382948629150162454072477788669988900709805056925069858183739013507639436541872329303118365816863336447793290070785745106113991480911099712792943849391367015842418969109386238027257645216678140223613229046809772487782686418812287799343297670716387056951199018963230924589999021797571313451742593603251369020883958608546750477732292906284648172031950728149118009595051258134475715705546784844362377691481917998405290667715479291174266933488585670881394734484862143811115954754498528040574225069514647200842462447229932157922646721788145206482083027693611921738523678567409627910852342295609063266671048028819226371390907376844480931844498969929310603687009530872724102621367887069726985697340022803635047552368800495586973590390206919312830707106179135567674215877257598221912943186457454772051328945878273757752103071194255451752885836334459358005524008931209918825706554866392314480862374414595305590030658095292440426176752542067710335536849552465464357701017897964163130386749523961082890325772448991862299651984232782749959589340831031293267661027241080737954628188076342698617617033100934680083065183477132870542549962326032501161928273021299349341397996342615126485063473483275913631786824728944493214660618479650573040671874828415191474168416908972295616067007281977661083114106186927435733553564627254143794098134638322862433641334789788909126415318730406053172477381035370826694106544406226612937662336325906138381976319401303989855820948209539186024819909896648627135664987570149795340067644785868204910762709697757054915087961976919441390159412568326794263957901827825455689699680322317815897782256576138716770132148021155272767311173416531189220384514736990231647764759388060160755374833823285458259506291023936001654473539429828766820737121927529990736974408113423720201314234045052593169727755905856570031320224654790866575834512665456826305546193147547187391279239721184692177837620063262466814563224968776560280104550069682815286575425982348340092647101283284306430256976526446941350270621458319110491793194143493017703487026333460168710291836083741253275877631540223039562887768447232803021429872949464749395031464918041335142023938815248759373715928383266003540642895354169850619922353038292186104869182552690255749889319778472061991980501797226224763718144597964137138462079820908395882118704801556318520813430516852374158421747814580115630583117678770897709425691536078780911362843548240228283945658041952201303119772279659598388409363583559011857427044826650563438421625360498340854389040285430492689930661353029562440020282673436728719262079402973506179692541012917537626608253968221806216418124621731189673347430942208876706063054671699631418215590292435137843643506322620931206801431691638497810122710715021679247205626346870673908875675394424482708382508788265356558197441663577849241763188148362164412222323635499389429907840921650996112353251201103142338355065493889092759611053693980830238610371304756676260555830927849435785197856390534743267450560490940770859188651065545300819826445252817408774654789916151163487539306741930233427583650496415686353883449297026988302128385075011730722531947412188603060660866565477142449026181091509558307427608294858110352011070330305870925795123533892215724742478567167678835897376761772117513058693433553676490367437388170444054369873859392664944715350381525963250553002049067646244585226052139312196299705782550327045779804485895607020990215344669537068428452178214452386671046940810750616731747856971897942787887160528345042902212243983433906947676464131458180704818421658186036693764098943364938142679991971798152335108415706476165027604538632999522443033893844869869487964925415099694766465468976921648614239235682753185096540881335332360315018454309181158979530096088238018229548364665073083461587537390946753112554261080409659275271456272255273501217657824322012822173684540188340911256369605867417354418830302910422954093121391632516652716281214020039348524629267702533556780132121100074687510492729215067733282463405433051464110169458015239281064871651193748496284714520592286022164309227073291131485055146260876549103696897085781125139947748938328842659805612121831611530304191551869772206964070517065583074542955680205586064791985611372083202139733715897180100934195299240863180418622996944159001484453489862067964505307736118399136114400730593042057496786395373172912778358482156291480030842989176364034258219775859099886154229150648818548939194649244244270734606536628241104380687463464244524892172700800269889684009770499068790618994349059987912329939316865429778734053637410860411682122328032144301845079668191420237115246394822017709314272988455433627298647398360676197355206465441486062065827311631505717724208876556248722268292666020371485112146244149649995152029735696346895793491184861387323567372723628672295693070222728261893624209144683434264680026607719950221650936519124299129890949673488691609975570841538563266979992872310669681200387350435700139029251245561252590033221973074262855770905192682914207816015920684685189496026803241645023217978454935003686853112007439987867535318804473478513954317739606005536111440635364216181260212638657309469059325590639721949203805628767882874309190961540686915212318936278924987012453882907430838160748627389678774537823637094678891160341754045508916975405922739404926662391204064685581911120898761302214445697256862545295013041121719980910669115415746874858495998661990839837817126331068153364133204083616858950592515016827684752401634734415535782918949921385910911224831818717219486883865713040482947774244406010996901563835237827612909596748151072258291813299828742705498735967748422085620675206715994218091188510214643881536079623454150921340343006129978686825796029384976591871270680515270714186196057390318885128243387268376641020767175712661092745822335229051299485282816135925469906691601850275940168162449823038608801382424988306996391762309396134854599451780067107822551932420508739012679549784401569898875079123165277472128947915317312845796906128837001975189510916690850679856760516587307479984144568492492127979028812424100884088477837315919361320454826303567474927756541385599873032159054076295143637885222986698185149670834860527446526449817637532110292306259036863585679948914924880896041265110733890966344359338441249583269826824276010209896594546047736523987118017518651367339339449442676775423211910823094237289686802203474395932486237694374108666028201747655631949510872258892022152498032458392717242795866773783806580166137292977711844665025011525812407307096301804069407496556849930872630421830015704120137922456787319402582131094546109369974922261858374651973232203681278216797854825403853579958685209671195632358035567447058723268627928206036487179366605594411753901808983779028084344224796870885659527161278836340432760800058045094816137624175734203394779863032236738284257194060583547437838904464154065790999931856081243084635339679917228812637887991600338337885884554719823167938893362837773206411466170259542085088518051290084316307150433107539545541990796465090231644288344740687197189354667356494568123543049612988845376092977089319942146304822076602353982432157616254876128425412106161133133648822454132448975453566265349142408224913402066175007211269430612496634133218785546802945912491721746410381867136215145716495073219848969572768726883643110536044271571542891366815712744283321333976334300050812739567187482635046210393143243199754919580909613656257002432016658070951887305899197870679368295244048534202386527588450776292787146342219301500563804572513175940122856113554368542010818237158690133941061317832929792041099132745410547130717453300472338395654618716344570340185560471813815780898159470368494257868219263636344774282218605964247457947217015002581733330227320473865732153469489387723270055569460064750620414873316115686228526907416880934990174691276069271989385055648400243370326559752936860238742696015916450956508885490208984849887625009506966763593812316977903451178055406673492287980647697339913892073568086405247056322186738247850716446114309809549488092473731800719660589269647674380197026822410328865611136584927486696312680737684133674344484354915694758172853359440100633227523057839938753032550721678007959541067981610512870123532518904815935617217032398625299239141178571556013166744954143136232251343090938117138972440195123082103278926583628502402959049404929415327768642359797838724580593951390567955604890224296007343177928261847519339555645937150468756199757974316901535721440668758086865545248500482735713085317312441357923209935819400847803553026661789990340016450047094910138334017722946299265642334547881046056477140301707861814478111616247962553239244068009690117909228513527314795503645016130130038280678845335633911351731410242678439770712448559939264307744563271909032088393518523660330523699761313173348345268257728496057439167155395158529563330081941842265634997617320668390993072216558028540545869711890122196602406694608294227814321543243657610175020591296018436712618332914534588474962392709765816939404028638746776848598592213820703486498305225048439168577534548195511374947189521246181415239902153365851133525354141116564403339910148171603055960643734286803239100314070941113262326323998396995376192271369735001483985838849714481681517149745907959017744927744511130627284201316358437641792093329243167440055461231142916162639760706635603860065608371404383030041343474639895484594511269703337758329055336412225359275249734553483337232586257096338433420359664089728564431789587613518100942754520374008880107278848188959516723126211891250019208737338613365013734348864042522520017704620726688200704465618473896823556471471078268263004521490432410553635545255918421354196865113739788666309750081425643198474037759145878959060984574260788578632023144025764605246372483920243154704271119003189042040333817000986422864341807477777798344255598930892290697457018720204681829416752491348559960619800989484474891662876041980060259700127365693936297540932085945466756234080461501354582155086320722660389340137673057625340655516981527778559929988241946426651676877611917362227020922783360525077048070759071803436335707563828365968139953907607270681813656575919866837510546115218083781191964755409670958249560178282456727368563121850209804703624641761986827177484782224634903278108854631415173718143297928832562499371156297157373901158363108704486025103004969469142583869370651203770466308242164894433580005968687302148524928795382422861000736420364967914869424254773064472810425508729193419606670525645064096087900244040642473114135660990065146788809327913849384648065461017890562764563556445267879731766008564598590457594504529363273229140340624093438516314025260021020853250028031418098375233896395830762373673342548118934277189269303398284120364951771760100346751920815833829363212820663131089145602014822523045528829442917400514389131182798098198484322902983869628251487394458203910940653280188754077209490747861179157700171903879128063762366174401440452070229245232045405762806965793085020398121837840206720250120266752955313083494353471936341772734063602625796031365119785548566937284640420468489277157780434586776100852896073693144133464873773525015924521197659754590876950206056175781935910774036258357653600808937653281370843694390227229865322218288437400138825811162971553457567403214986097554286886579874369009497050979860937702783572233883314539804939892101714335826189674003122527997303364571061607284968264026682347704558301545855748271713724358470994861372658713025494024495738558899660535370903389251145405558124569294137888271651990004376107967257280599874820479895678559388584994834696519493089781499727763473305857071790270935682275763063930497022966339552876337991307858593142078113351114320121026019873042167062601435758411797707904580838088498088166626185358835592420063053024643462899230820307080649410730415675977100775239855868675945731744767094556842689038531128494988018144774566505096148989915176299241642878000474138508045203295305391840976899463199695591278676949319592733662054309181205566924621527407866514323526592070708678795586416860452775357502074876714333770601191294031585743107677777952135902613080828983248839483209499884568307672417592994303402094399322708275483573885074199171369400498798586194234462796084144473566520379282953170163351181530293127230254356291055458639577778022116588666112693357407294436145574905637200712825448113557834029016048517605243296981355027471470526354293526481366238869584898195167904761247474468008477258871394552736710887847508425688259839636830667647664513308234299538406371493965512602596412691663955329422216277976078749552917485688421824863746324747783244929832354402571567607928674259528494338989676434365754823075754784033503696537687365498022398780119203544049128826835941953971843647255409053142105566632073204638848382768379261055003805739537940215136413662496749353732410440434862382336249204953544285790530654527726507220346592904432022017163242358313783512521095764152741244657762616754360947097433564007690414362218068299355151091385565737341194890321845622044387715270048211012761208140782452649886361038326508480852529514952263554264606718445430426533826668610066557716951714429565559054236819339387175320386411552242884740879638726559965035453160178728429959062489756943146572532979956564427538102595666725587611303086354595086848420817023090377601073137106234293378074547508237856054947987690213905665585892860091990456026032063782729076155397038311018008449011214811927779674839102728820575597820535088346150021903483765764631105684014250421063783316509790934725949942661704520723269101718680689315989500806239975869483897052416122301717289403904669984942721339295681261610046509028456212675739414392795031958650235048110471685635783540426485721275402638812871946209203813254648116170313586767106436587660551655133113317022718232156877362195848216856465284606970661905439540140651063097333651381196333165949030392164270853542280497980267149118956364251748913441214263615547808921452836708221694025987112632114388529939169630480481789296298820112380749013052942492948016114353302390080670657213781679719856861302903012993994451249846901001989193605982791697305147594346496028833289696608150563450566093781292361334905857805509456421035309073601958446371216507319820156424220132684566877418323310247319218685156434120327170305730660785175385097069171707917252855117436278713016009522089202424050305756402153727369592667997478107072793723912355777093468284756010763012791311995391762818615943038207783982432617319663133362063793496768750895240236424692319045416738623583604828374392788665477594859028920402019395937706567321194909910433528551798714035020307605578201914838828809464964820842417669924567583122624780703905576531412632602429224362037195329185547180915964431856852057882350103091076128060445704425147997589608880281259978623877435496599049296732208449724434582435036897803651849099512142294015669174534168383090352847796430676086115997636787204955057956365166938345210212057124671890236358379083391190802068995968969901881223218552528693485736518886301604529410281797360806895495240360664889446834853573711706079943054719216487594313141269759525166102522909575375509509337185449000729076761263467652916646455803715330602055347416205556683808723310114567060821971360199116696011772653512414405109362036010017584053344689875653490024475801849902851129056036281543727967628831238165774375176624564045783704964856909042818467414341076607549841146574215334379628252377393517758770399425521318169017399018616421413543927797334708765973694817101033181863768927283763660230192059197929591791482244163940318041477900282857125177644841059315644675363309241579702126264813042808389337706723982286543417317364814245629661807931369532509112875469498015503179945166912284138446463087410279878209558773461766677933200636161412998361123878526984496762249494601622241984818828441759725089650432388388267762115386944907223140800386409667479556596033658655008345015746681003715498121545591770828552690587827462680189548409854806477673225930833646432666789519813230343847805542571189332448803371027660806642619768000401457681926141234214210908378826034880398715896746918681275950354190406896727813951321988421183256109487473527648664367133593683737190716713615344289207252730570778056160659161544235891078464655473695634397073722178185912301094436923139522030101136740734570595261330293674379321204061599708906812035078623541278054168265823537425938569664357627109735408652303333957492497719953466625694281212119266748886652563151697066072400219396266842825154475614963579333658452377240996873579532275919009797415517213348453335786814228739938519020936782740215599914204564464383816000999065053718814849381608655035722706417743866297516789666554999878895721790262309084544806465185693092556964531722410894516454267967618197288329584139351338445960416728545739914150804959446613534398450142761805422096598486710994408250815132392521360695106267337367922332214259952302229364090476645961545055948420488131144131720464692670497597490599351169204390276051574466773968708032478040634377784167250219888494354098282116000727729150507598693656847220169410461894445826185511600415494510628158872485140345190055563466615244737496076611357787483740038862938848861019502812807817927450349584057529284529838909157649132473101056333147813464026504626291567537790921372478289700319632596891251330215246561205435837622686092820307774168700459043526358174946367245517897849317506753904640416033638472405464980750039300245766107146606057194951091402482327352669122149601607089722072205462881003873076229689062152629711142892734633921437857583816799570965129751212882470762293756572134890623618601418995950002939343301174633003329729078340263825278379605300004735592754684871892997206561365337515374779219624955179692200855731479445742882259242287677732128859806537046540246199387296499359435632302131108482424950180067571893986118972621824307783178334458570361181609413976344651627256582886168782130134255890738184057342227527909440150796335069630683158584259597583441339316667997304805147104205162135621754090487773302273969806564959009456956985365843208356206159345292542418929161730522209793524657122706640054135392126209537416070259881312679566674617093237174052362963196089365298444250743022804976641640382829257137163603061762596724995717615369585248664493172010960853457234236254503854441441271638476726283333081895855936476006163524985906328874450325511377681813053346646699501547749324209856865935049010621141299141773099804599788653998555997208865272973882165087748001986686031630561230114449331935784076334183313859772732345270212652657729626488462044050323775092702644091599212652486267716599659132457154139254001538116996614014497922059852865463119881458741918733755185509581187101969241766429242389375494516315947724531101984145080087615562644078821720935112593426184468303521073794000418382893605854407065172644916885787285452650728104911722412941522346848448989734965331556939326855402116655944907515310397083246234459570196856432675680385445193586873351496819597696008201253799008400105463352336418912796054468763570371065141356837155124483618491925094994141446246321784596766719116487767444895994644315839584871818846627420278441899928803275124496669648679345894132986023303482928876260637136445807371340101726992400314099962898759328239973248787138226525474190348822177498195455707963780042780145879194411890770714358011030266245429362515054346165151986079342385623906645515459086899700987275783385647691033468638899428963619169533138310635144431946929978952150427343027450548912822404656751683738409173741484373181971188226411967029514001048449736868836048926288540745371246015784688794778131708392027701850083959940135078751064535614615484503534678749015340275140901834645675419760454833086921693902489806750922992294071550692377787826669912301589909380813372850555299059934716784235078673905803655389520181114771552751613837266566870550325145683158295906535700608065726990227214337914923752422195825551552739047664151524230841309327935561940500532444145395061094916327038715303701528100887540809332947909865917839654089741191987143734113651271643824052441584288769757149771141471427950829588702992792468332133705152675643942311350262877689034464663632184445921715758792411319963298754131201832522267869678996413293411317636653889683205119163622399637364006506242186919822306441981351532197319859101563625698621817485470888837822021617101491243249216532386557690852747254785968298124948068606644449351918303748366550817554225733526851403898786503007040289933438197230196147340864828347612607301982226861441179898436755838915900846999131405413831939181656430884349788299151717429748649096383896734306517121736027545375783431135217215018269592914932278747374257245721360256626384138952626279302130009966196300323252201313821884482221538525312767676304855187006831468403992681854876538405638483192100247223191661009134395076785551383704821428491510169897533907897563233992177890388047633681374846516892263571623071840641566324924108669239676012160108144560923213374291457844880612478637738826410208618024951305733883694158508782319709815158671170951738802867958015106788044933902480689099052919532844669682882545529207870809050166148536753308133690700480133882858546165406413320250693835596317424365884064726157576009934784114084062998236648235748554353359050536126274282001878480529530447698632263662782963274163701153111823408178673987661072812732577851392113807681541894440417632946304900618647807598912642832572998735287161277418336805175637941952440232128885491177415065311168183622698953190049592292508376260805003317433385637848674958223105863188940739807614496920179175139335329885885343364499791300165712868099995155763688357969034499847234260419431859912204658274956441376367770216114312700143477161201646483213292711825713287910584135786193118937459532363102391270889013912909166527192377458686417036480120329532875161201291706095927090777356167401939117441244712460141784967972824936614589907255008243499708909680963641689156962089845192562671934304717145630443239981556886935433726230261498003528371665135912169317838230979648522206285418847348693935943843252998753765119249233509919666893106839343099291774291126087972830433166387584023702201121723945611447336541276334027058454177857748524863164999917048547694843205312092927399866107526313197643376538029522141637423602372218506779113887258057677755437425357442389979633581971403227793561397447071194611416517615151238823627905648863589472686057334479728309257094391377951656305853890416816898769258083650688250093611926107891124270988122269346853198517066371742046809637665572893641713249386443340528873527902550868995093761512046498450930848209464606417794077592727351875061493452818176751710845023652044236776815132674319325109519200587674918493027769559654098122539635771169467112606023606943945721364807646499016637843748410973573009874973387215572695976033113712883158380306249032383304861952114982623586673336359436081533096204352318069905867253166796719897757396719850563320391627692961278450432509302784936557570466366500504235380700021043379054365452676915632116230708153866793287528039918102228796675492741413814600656548508777948994478550508894914805288265876884445662729390819614400683983080524037256950641143899331811663770163075193044500215661609123977876500738743398612137767631637994991603580029425394150936118287792564890199706361151183343773228780513781700685461893977078002754504705746574409611518650168872167815808016185486410808986322233409912474922580811185326998795736203036360120248633970529467124019239868886269983543109200456227916998441698832120180955945505348853261754254953638515063118962530921766529165824315900458349693970687658654243281945647647853735525153068989109796668878100256983906871131921425419886641928666875453772443176144635415665762871405535364287851801766219647126689962431948273100939741710425905524374968733303659687214601889996692802582305000250494743195788736177439811819412948004602950542736866923100793833552779750038359156208164728629951618141511824304864955870476420387157706452758723677080818059040842352377577575400884687756111665813925119356731909402096142890110964899571503972071590504247857829641913981864645698069003883646798367981012376946322888360915854430104942614876035037990344177685999567599330502253234765254688995525806289317811721823163795087784593437287864151446387303443730098248049249554003322343437805888464426565167111725408902425165680743457602957148128224094784605585432107534563821848048375625891575170601371468196421689717760549530199246953023901996148262601706284818796357991239697001594441468677531856458312725471743944500821629828304937569597521339743912031065212616962292811787214991497537254721293068703850875650615027522642033730412161623496397880994352708041669332272183593224279111657363092546649671249929614399075000097635710205091352172102674878381800459683310699995590778255464891283674339451582478152805746103415113435638105663770354879809403265266548458248684582906755643586324591807534607758016958399758064881377043434130105968843929917931741747428671251433132551775956673912061135467364831151979354208615472228327585604017733891732111418623652027644917630825994309391671301603555506639664006376991774482383984045272776417201122912290611855951275066506498354602961029657475437590695555075101859350758837894692340808844242104044351784510184494697766022432572757633721382667328318485104191372257279900302301951988145702121716572276518919027375580323980856028541791086963303805028305825415520792215467550998816607126379666906266962228804105219437555359934786322393330880742944031636339297431845742947964530484812667242960554778937241659254754257272948183035852407989706013833901921881647311557850526432810671078304253827862550735751441780943794515208769644180392945053371069580028806009592615542404295384939223669282518654578715415505437681721619494162439802366970176458516822418482349498561226122052594069468684335582880004236042671649205198300304006390821604948418223179378001878971473265413916596941466285446072011663385275508319000328193491650079157574254157264221073192131424033453260766000540883242243039536428517010190719596899622216857242058270080448845866160085246854711766440337454171697257316643571299349388718199291759466318132864866184797194493997567376889688942187412505181286522654368902847895239453189075978183784293738692711233245224027048550113680713014991275390637656776195040824729457795161472517833405829363143893747277449678965136481140700231327461989829246746688558984335554557604277573762760912058048480271999849553952672342626971751222462169690127800810984444255359151750836095039154280956032294024501253444800135907132943742644076571567194141395791922713654100901617029910319986570525840925799843414159079094047612707383047817895510947309066257504993635142278626507467665960409187273722547794729752121567356857260978856646457541013819301847821233651569977226361516999711623081473538687445595345401386655999956253624683462963168340979755045640501027726108378785182034937053327921389434083704172860535162743180971964185158133463861786405808528993261626747920282290077980614873787741173358302761312079602560784881890468622896278439020499837036853688102771127764916480789399444390409250759048332890872832414244933523646308167981840710198476936630553895402873674490337398474907585950356060720035878450430168811021442649884729717744959410584520038230125316607870885990663037128041215289078551534221312154711394784386313780256937275762215857679289152126300066971699384726344308284630682783195321247975797640301436814373461526469198950210342181762593659784532667602506674488467124609668661730097066252450176922788520569067359008431604124592847480566894697818276779475588470103788134571631881749442899892987167278685725466553677372831124446176730408752350650543917283196198305056380900140711890771221329209083766220493049679457866788418100358637383427091353528093942551819807934978546448024964273686684335521670808965836820495433367410868993443622970414443439610988612701962123616829423893580447197020973891992082302323146423505671064991136035773195638847191819769880710058067038705725015301906153585559014641266966919236290595038548687337612191372174427144615555267452282574000580347074835030814855107153993891683837311092750205817019512313117767785184487776872680421393928603421323899581851327766693655981806455715585403801215929712677686438428537188809179099573080680102254116516429854798597801200530325322575249974103543108838019843220023575674082733060839664255593659517583051615349713443826367990287717942890826604259749491147707142297025251125860603900529602402545826248325755757561216131279581281215685384085591627805709293724661243672058886815767907693035051789575639340031112592979725357775442005699664022021383473566037691695441318906191606144682518131601766098616772320663497456046509728826595127539727333686941755084872178893886406183984600371686896850918522983446577551641562981490543467626842114452483994131230385258051848680195708892261883252235536436873645834791469035678722598255759755960216814522299491973792689788065727749960206183123619125984229997445917931919070044699554058436069326731670892612617013398426718889342124987556990243059505953676654027533075503094906893359337655573217538335664890410728780373174267309618140745156207212598314724574830121106609479787962949043813324270611655269733179812220467342712122664138192914732789436609182787888276414614697642220502911444841844138184923763527714914690697433608081450429276576158754217052493940928386373294735778423424077954882095312623534027550350571028903943133681481995153566109244774270469991167237898955163904637498396603242741993113944290390576059074155553325065548215179292254764254508718962213113516699330454312000074718298006506387389892625648905439739686679432127054939232744427995717336359106333484418514695342981280896868740832375408026260594329862056291817544122229001840210059258435570500116263341389111647224103293543067992468631553900279513923299722276621299513099409795053020739055958119151243330404078852497109253724174743013883031797018441085704513576815129153624429492503752616110118373210046518961467826972444261780434649844070818194648857015566472912494001832315747489212272150548567617331055173286755555513727525722807015844443069091168420794485271927516752388469452014058436541244190068829957459005435743080561559465242288193127203292340924903397654714651811131459251905725804935151124366891654022600627554580176117435281431489499916146718935238144336846404276729538716752608133950987596207785727789249855982834823289177208117777338346633424188492279198052968309263756731847097048722337076247583698147177421148043213630941487254781492630874667847895245556100534989078888984592118410223597827373165212801974854134198697705439538874973901457412211904805390085525475177691827060709796771265972488441968233810582599435298238267236317342426715578296460105068310046137927489065603076363259810279366112357062254609303845922309569944746489959435280359572812207359002148467487609628497018798980716170871860113170396984354371096843517664924795544202742247063771600035752294276137432881027737424376338465481823242545858652299370190888474776740026800100967319726684955864544676707987877175135398088398320732770178046249932786188807671330925433892842895473399804678267914598196746901983068398922634392903571857330959662853884503112265863257014951784436813918535839204296433758389492384812217565502103554067105827726887575137843597979044491452691790592703508814671877816814014900991554621690142569780350359587247391497616190334804564991698043894828487160573309708072050466548034875571233312222486247330163998671379512788679864381025542560425357927516241316245495529731023645919930113496142952218531698295710406851480382213988837696390758142551957119935917111875508775962547737751359233870322994013917636580370678440085956246876399514014714572246854340128078585643043939470699712197594064592144290107129319140574265334713416412866451075856458812395114011779550807321636781016037343376015731556349255659393736716561935500458810732233559302448256969965558388305341318667616899808566682827713235687068122625484629821031317607718012390587255347242047415200161766602180588246194966487460645638789963150712442915388404232450756032140477624258036526092051914829101027157745924142628710445597292699956501128606688546274875718766506696977960282304138110846930878716848357909254627803494426425458612045997199608003166303479589928945632553125425344317399853694598058360286745185081053313047647528537628745709777767541307714243002325347404093030694218291168164390391655747003216588110006242071852475797469805276517097274515302509461865993728504011681495778142596361240147809683786888511251471276223179153314870448712057937765503040166429701507673885504773832888178731212460074527612354176665768817010114942899257349101235646676396258065112713396498422824502730566937089237358164609535611643437505650299631516797453409382353289997025627180216562436255117986972162498323095658719682960254668065000046716222402396653824185505730658144606359055955496419820113969652844393015739310520628308914921806342871553537005900350470864609635410978841060965660343653544490617007078995831805614533906504770527431566417609721517919489283364812866046083530718819480534421773042360408411915761644613091367593152863992339638705407205479884795798861699621806442015353531790044765255822727670645936350572878042757348558987682966892335724288086806246324897918958416944579002959286322888293828009160324606353202382231247377367874061794090104138153305761028300884886494159225575438094606302586267698917318461563936799577053825149341530483493122434806333316884026997670244732749061897363345433278280820774402667097781782078312085726344560947085548521426584891018495735031866421748229856734063285256420887466425340533950450231027544934290191600084415039849520215325600163927669366477809584126560429064525680617095585204187128148134743445153937464754963442205389261099549442891463675389578760558424841902583118172885021588583788068989305945215392813746540887775361004235101493108460765432909460867969100188403841622500908888374112448306461237752331765454201486843335315258075266734685821776462554798771580037807371524124840869256907049289006667811402797916365374333951451614111072264561762822599124788490992848729888705298083065245993551737408241133677579727233568268033781163575499834766699082383781455439162155128563855768188044803432132102939421624081354802623088222419123119256612052550161349899775372113033318398096362166247186330045413600338330530579386079021129320328871749951452720450623958005426893173481835408084873470938873886190102136217565025959113514421270210116480930930374941672915936245687860034660224003395352251424491516060429976479424234983779611349866591027178292993124652842563039824406078979869734206039517007531875786306161264714500100320811594169604357882471847656444135133850918620897857462180539472705749147588858463426651824146838798580804824882080550201928877634902053551585624001893464332426863663411740303122342371725194337451401469092871472905890150615238956228461520314617026175667585862095154776828356254506431626437458076071417857800275876080483325967588788531809595965814816008065212981791958439859252951844584692724664770760915168517463856471876221491932156230101271310528445074810700265024464178587243567799221303996521838279141848265281625104614721163047907822420234842176235064391415298230055436257014763699588784501440513057481801186730872375965246520464350934313039666558562939251568103816946666203136394399173448967139829815627411988262723510952512218217047506862533992675377978466809995420421499113435407010220569268199940425166589339284985656673473325794934373118520489614803989074911035031394683340777866936873547549110776112694702987821125647656814915666919095529367320559577279295129820907151577300917884779633743002145803603144778906200771554904764805424270513167766893532669437359097224008315940237583883147635421404408604212995770165367296599020483630577798545770670281905871864830613825275278600758790702435874381211840974392908362239891253893167318426595596595484958814557352731191074691798283457437678588414439809369945323260657259969758824219293587914543693491043904226378176755732249873147569570134160414988729796068385741483909738944823408130109565830165946280719178447982633284555363597451218726033253578179240687001068616506202782368106342928741450813730609548908924744506622773308385268109020908132431315118495335969689890391031708643714328426824906481266624069267042133671604705742655313824243422085609793500650141268388679333024186546223074720253207178938050317199178734911226776218997084782360811160079801956068213562664092459514059419198886596052780459618987988978124604450752043911951087425762535033742853443599668025487721129385619101220742965112088842954685544392519090409345969976232251366844939593914310582200549776165119323633557844773870072751670887701833608973105333061674009407487608485728705025403965220624984387807914212329203806188310481723210930017201914851255372112309151571901612713740653683546403459090175169190773763122126257226586645496449591237496183719395515196650457314903486981404538174573697589822751137745630786723562169766825239245298159046756218528584558914530148222658405359526390985393717661971015878387327823837558472442882536372621081866574074402013077213982940343245984550348898469160893504606046029720752430522250508848409813445599990758681315475222046561457662331404526326965352792923797929373929190374869671964630718060724784747396550517097475096606260234290376468444505822472220213238638855714513234749820349966040662117777729786064434146736621110648053316143070546516482946603376435620929127032409021043510275954039706547299792721089618396731508470303622049840208056686992252465953583737496013314179003537005246456058694776746889730944136910107442020272238575142052254708190896349914219443174041123748517288954308018457409103199946112805564334422622895793405173650295313360283143297024936562201188073837965968669385630403655424493757197421024937405701936945138482569860019532151625689714018351165254960063601103120281995349670461609746208291773657299785645713069651650016227778852738340725983559673970824046315259176738042297431785283156494449545036956401109369855817985115027211915917638004829658130789859470397312065378020322760344162973296980120590668246901430294939952501589890477105080253835157158428051781526426400657458402791703655628341155199917788499516885789808814050968676482560815758716892137852614348240198670085959491834379968727493803924399001240892926764545234221922075784137853342487883353547493246859780197430738916781429610504444966285797198684931704497491550675521279111615838057069681965725948152986672133352580867678999596495159606109888930622886966132631217557575864832627968571141533502647214079502359859585276482031363986556281374476129381484774020225044508591218250956247790738896549452650203707851005311569656220298499374750861361904397629959903131190080431975245809400009145582174545266258052740399813169325700182768421722318051406820050230929661772701854460037043301432345251646866456105217206929060367202733353961577082848882372881358894045344902269945387687846572485781928755820170263348795417825355455575490682500699797395059504613420534309269819057255312303387133029128503192281356963960128385345521159435691409774601581987774123819889586672711142729583108270898639204621803453794556243397185624971271409579259619230781884045355529797774221068893673388554858810722367687848593822515403544099482252905928348478013601350091515811453292144235396298755483068015588531659665633944781862223936580697312612851200242204741143375961776991063339146375805203581547030622952772170351482123853049326570584461131965622545238528606444933091816747127236972720295002626694938676067390723574413268607147813063279625225213583451461753197073528090113543146777394534710240060895178155583075721182150799500558837744547319261292538304998174304023070223890981607615311099288865287256021794988663396420618209213160431768011778154296636735078724191834058059780194136413801628579298183208684244469747609594675465935139271920270860666700964469126425789697600503752819096615375661855458062643522949216579083498437925743197158770646868200181823204868998256456334050138496655764029708344806187866968931216351339668783136235117749794199305482289866190400647154359595792275442777794396672633729746627797753573196084347249181190210119294392590380260264841748444782005168568430346614412500612254411855360366968299480657213953513340788692453270591291498280174112107188413426878788829800210711931841547690632321330356647042801998341625726105167041311684938677002775094988441085136931695644486075931708354676736901777389429731545511459227701110360843055771824121223403292822987443986446401919560923000143949934530604425799693849177239781614945113120420486863791675253063490066523958044028984353925557848458072200332029250346597448132614017337334841522087264985836723648805643312830469305304873539059684897769410662489968164655101825562769089233065437474773251574823464207618269372020011128849083740841566637879049177157916261744725335692110279631363639619333830316909605856347865158364104095218542189253938453651900094568218823512196785349129074727334576190879527700714534296428857778919797005177373318942564746778705951416709501512543632545858505909277772235744136906107059254179657940736448940133684621259740377694362926710786480691656941449476496275547975269975061123929065905556029980618277579232119869045159059424907676014494433021447538110788616839417362682473795362048578667366194340183753995078873570769569736334890609662341520330327366441684091559726750606818691954289729554967800742088808731999842293318016422639183011407959704912671956726619387623534230677837450373992155604973161965453791841362376013666098734374056156461634598523847828523319730791370198250905853269294286401288966155623665336680867967626902193385870094706204085027017894505168178682770319342784307016451931313911485790961696844160662092837320833387867641488391352989258481845308669975884128896586702428755687731235900349616499576082923775226893655570763541340826557724889024357548539752579091134201798302611534745174893942282388277104497423443592282036621472973991367403671012159709430824875344769801066976990314194078502080100063845162203542748953285695525801669871401279094554658446853172976638859223272280239229572551621704395377986809188708511955501483450065354205895881728190715946327770613634760904731651841773200177627496686192983004847842222516625268124106031714365194567283488928109589044695107654103618988534832669434021847931347638061335551520236021763656182711315453253152483185016002550353002350998118745684013978413245041292489951063561883988605939985186066266983743068215608935364080372210569221706210654029033468957152390066799698439819719944948847363799265627137914408554512627737680336924879096474511063094304810474408259752902764930190996182867206680083812477082804253485451549448267335177099158651397207444535596290620297896514822799643822846241004949253809663171584947464968773242941714860117757925464809222939256348473448497344768767897255186768445780419301043588384787449847191575466125277421065198340368876821770985647989749664179637585327608894833993789803869359050038859150041822476926213916322211511707329740757299950592161419534179545395648258069575581914101054740858366976388974854435670380887776225342372523668586252868607011120737664441770347592390220540292118336359207682874681916357344362122584685518491173782814989331732943286878667341277094195061406784309559634661183009377235593155008408188204299011125362549515865879877793320160602302539963958208885785246406838930603148815511881851063392801380688294775533868576870062873818717550962023016789082957729937039481235532251177306514137747970534389379645194776233680444566103772824237746406531747191228550875257012485553034958425477551119231041741260896041764530473844861849598768824455494974223707962742522613785956150815270717355225140609247146628770765759232800006362366178185182014661299689732045067019387912233902801967928485764215175360503242804953741260170275740303053422716418639495786000064599523927669172889510347832507317813674423737276438574252177536186049961577845164056212512007571126869254391270548041741306290852654801964879811114373415755475499917082236619650715279722050896985205136490535547278448297207107814574514568460861115729565963175793886474842463316376564944811616192160462873702904040975367288613066251380909350984914309152013685940349903629793136440331259011869648801208786661412089289781050701755926315932894759333535558539615357374864732778846929005148375626964569271383010871929842282561144132628796930855435148219592948067080592226824590669598704980565202263218860004581338482133838010714011937050319998655891249460661314089799465045029166977232883060195184978556532435522347947617679257654458205266051679944760722705502604025380693054988610650921746556588887301788838412895999596591593227930457380841437898235779781221663915400107412133609571689636670057484589520547926161961736661796689247300318163307768429123981774002938069046482005059305672109704707235857627655971528668574058099115356058690572447224208349859427076514578043398793416795768137963620833903950832934495580595363760485462231136251679236438135424774841948043589332145988194213605792941674122615999836108550167244026493529026929476241342582563872303197435078616064617695101218541063220308171661124148867644033887297576584439522022196100737434541485089168713374426783595270561315212526207386933218305935658930621030492920953553814549511601214641984397939037189643986934878415890922090939070427578219059357094307672370243890053453120967003508961922242988160876864329829397148824960412446513280821124892241883314447492688036342391829666716628224156781839675243796659674581169914928136901450227978013597693138653945547206845777717459138536178479266953710369508963772279061281236547915708886907667689081937493406103684106738600541100262787008747059471065864514391969805597069505565050151233936665890571733133644764213070656757319919039388118938253075210882859516147506809468839245740011135470274786982168621274321497665188300319603334562235534421417368117005957663493676223290691848803237345192434912465665329718238417396919865871333134120710517073683417241234472371867249415108427049615549503795501528738224860538460676720392875868626261698438228056015875786683092512230401599897538489228360095980752159490258074717157735374806690050015349853590369767229710437159210984693912049054262463396085508249182328658439340262938268563715259623894744717833699966180201154788249913323652215956653404857011232582770818862150130715779346002743951689275243551823962408391501234739246686510022276735154153398174438062936818843187021953946745788068387330450266993482047409308509529400887069518186325483548249662607066502499564681941064704071227311004215441855491231634073401961809074987236703389974993439243991658806512836679056416957365216050282244885217573611331742947356357748308478330984929574305730604504128402971148973655233370252933328593415448831374005810726242464775155356118977342742942596840194068133338141610749091640443078052777297700938276873668269280836283467725910032841281289357876118865330379943915710991731308768414829814731674389241507081233304663866652688517152287734958086507090211027130801148807052510861641816152556748171047862194001056128001346471000489600816181363398613143759537835734463470097380223970667333178847121742166237978339505084945840564804300591120184173005022419629811376432555086259936672979212123968336262543307920197457555379857786033399361139731479735858804674826631905550317147510740826575455384526005243911716394798545438546404774452744423208201158058940110410945383309204755983130127803405876733811345178470423962088493582933994762948927492630761519594758086352305003906352697550897371963214320279758088695852977316219835944256689466634986556641828527840530710394603837055319530705781433206165483720876373054215104981963982316223946155540162448192274889889915481816161014129111422332742480710512027849723849044026429680769803440316010136598808564229607540695695571335080053565951888414562653198365459981493547035333965788049476127320900485531135908697471453536890157189698415775481177794107604190191456527288840405188279508490082645360132429152288889379751999559985968288936089112710910309973067570621865972967346398430619284295504292105466916091541828035178323684155218186556796340711124306438551541562489751763977188126209840873609829923836373030275059418770626263573784813688683682933396988927744468696966294996896602769160036986059689047184171600019718412362651997930127874191392722798698022724595229401524322084048175398124008257637136067030334477654114042743699620541251450482700210515174118908825492609774721462055366779007552008799892323465359252612737727695456712154449995014845268543259740875744450235595031758880946786706242795049681223173819531934699556151004209215360832603215306918572722599298600395392547343180646477064441544096308598332098942811738979506827495524870662827328053647924741072354611945944265379787498697959643221449501435206166327360833877895746269008896094162137344263820026765753391034189247610563598881700835396449558521922407698130525217319501323741964534289761658135407331302630302854780224851925520783232374548326796328907125627475246122929296414094248502905947415575992751242508506996634735376429407383918207419091625416097284459162561447272170590829385767671304543843359908261608628467196328751602860804035347208536219374949413665519915085368923735127485074294814451965416938229179315309180378204728722389455877264858456583583688835417610564721255643864015185687695779882751742224347111155262343697211707633450466532724766334237821195879117615783397228747084512798865992451832791641445982802144372701894626680357923333751748064104993185218845506821183608568975632511813875046094241955744326397198431078927752472356672288395527355236066225987885985396328772844546836949236760648441227353682921913245547040744216668206746126567079643012005535159904741708546163733620270386595227380642312621874062689090399816710861502195826500644977817357318505215771516084763131429710068248249139162492892556126384767386218233345228302857013815543747650578465690588394825313419981396295736250191985710580846679236491105929088055068338217718370944062699938269197068244705320057945408351861003661161560945082423986504199873162383835746664545218873590261219345316048583392126663772506208519054623623733732811425816643842498897985966795417592003691300453703719627536068718301376481212741056148244879598635108500548734902984477529757534939665530715055154410390938653741666521591833549973825668932645268620823596214023963409712242682687002533955826932243805998324269084530478141991498931107101571694749555763521945874576862963018389905824201278786755796934723185030744610603483914598794977948711391354629025486282224974389447438682661643606831812488598723268791076616230538008602921583381443284532240746235541879988817472381285359683828950062022524646357316108266360364314856355316050499154144130887215414433174525373210651396119733069487813913096873318613666961939402572004993080999953482194276558781132352187781245718342397646806973069793406081383018907785379227621548466408823126429816421239417456971356661539825555435294981722390145222359192574194314642182664776888667725021712329415228978446162910566285420071453883416781489134566744506929129063191356184691533158558135076487541321859455745770156486652616746620858010700235568168758105959676998901985472706417531288487494139070866420808062769445013196701970335518100417192425136442744852197815370357770961797803655471501006418180502754073583631210075848690420360453063743034388761523828983557372852602790109658113583990082025106415006848860377851451703993626938322618882301899591271000879075416628748322394452285023918486791381569205686354321704163358637035324353038603138245178894425200804853014804232640065209962960096641776937613082080687020130883472099991664558057470297265064248590310071846989531069017432283784757153675098497043483482059931223224751985485354554519808422814507464169325174171166032932667762278190834897227510030808975252050302466493512646127848908741183038587799856966390634505200221239345266865799204423861484757242890105114328883814583700148678228333016407276114036941362115737169985605841735445608033688890692524353381053971593150452592094012886826761957851131323839763615662128576482640972356689220650459488317985864101056438186988942899276314816131141197839485143896402016161447028222175648273420064615301617015673045186184377052127062573422587150628959854886176205229616886565215837784247149479866487707067324817990842497441413030772781221727570393898531076626569482761976332874465960455935018021232313616829469105165367996131496561881423079790028197020753072041377449667453062511078456579246380038273856860224589540614393614994048484286969806483262108464380743336558398688089988471514295701014512054966842896674866101866876512973139628321441026834165860359911438931807625644344609274750282537324722439635823144186618983533732369168086950292204814362372048123472392174822684291066611784943531672592385041053779311049081572958008218904109965374052294046201984820594719565468430076822037328399061467920788031306210807428878267456522279510397530185492450108066714356522034098520971712751588390486131129466673396409924349264716231223460568160044054572146286566256168928699746838216339043317628637080958285081909697417621207405508511001815330208171813671768543487272089172606743181038687549909642874280410652857444783139948749789244343537320188375097795346044005281197852692754424896325741629879428825506076395165108387117664673766387526975088379398903288357402112295635432087437414162494910515768227117417711932232945391974092136590860000476202432818881161163644928715559908299814543584037170956530527567900610385822005025774224292569773732296609385467336929449681543260568582340850739091504592315081322676781063632505958627455148922828565406945222105635580286224167640557695260322183356239637398808014246118755054609555094122720020016673290789780007096384828312446295596545022120743326436571869713451446896888922951080200162568079951218413160983309702178276860244871443361314459232060147349748148691320774245973643394920073088574820672241184792682405330459869275458970721315458415404772322220839208036324127217631162891881643394036869317135582680006351732097450524378305263342982051585729293729065144082252093140038334428600943717769650829294111897120873707840935527547594667607700739582996325838861067374507926180433067251405352116133767896036538579850322184508372345725893974482449203287338602799204201279950628458617692934934748645046491968635338391449569329353499139922453664188100631030710950568773445423096458954361418630876241494447419866698347713405300957797872079291462389626390884639299690639310163833638321319539379304280498487596279495977933648358480037841610186331741498133643427387980302577970218308865036418106221571029282021587181445626643551912892390746449491042735969276652311469566584458181144763773752350128593126592576075055650198433567754320917506901135878671619549365520291390943771733201558080722733319100177931651968154228088370576507598837597021754117738087137985338962896830262981628055301107557758978534823854812982810501496288588718232218048882601827461644879029172841840002936746970665260086282843883088133563358024351057763528593351544438010102449942174781896553188470873781552236440714542829548321311895375408182160748659797776227910230823364843617233660291719339926167882868980057891191156961286113730404222996244445645228811797471536635791461504943812179699911719553392915467985888569082819110314718381129967865651453059679813190800422182709005693044807483008345642515023609363752556383193517427034362926840234776413899039043362351851350263930095966444898776041743786038172342060790714371194447539522843551677888570909340590984262800755500248725830650557511259353896315171826065846001289326829742161791308116878212721039217579698337007055600479265997432364952544755986234844740409617147566288275325091737591546032508096011443270411987315969680079689360407597750180374094171469981885046628982630503406281730282319799125530918362807799251133065557772589580549721937547685450346607218411557053096747424723286992072949541768648905189668750773621842979151157585159066981543346997356951876553230061572819957408798433268786548387703704838867969634471044881036662552958628343438480462678122147642516601976422702036294508798790923068997762622023363411771182015399050173071493996115548403715228268577998385109384004528263675761260563984391352940873945574277648499241414685824291385791775623295402016824786676002102151382666411013004217800623443217919523686177696138805006592509070252900155749948752601372319426962837691739012328002602992780683106302734901011003140670779004579276982793136849451630895091829048302965001908928336498837214396180793208742328768068649099204449507359860528957211699519040408338984083563306643854128890071475438665670708501846953790032571643627157135734722510592958651109840684568971565825455725633355594576577747618020156837852364031497853809831566253185809425785105813904615465248072719832909577295805530088357643935465714579135927674664325448384545582730913986167177799594349945503174771436597966834564542345782349530220337939230896227344286671746679865568253732514537743009223721202753169385665977610782359801886307507560408367712741871458966983457027538487036030425842802127788310713511327727774992046483037340486427902258367600773900836561591221966284269036366602985432353631799451470339639496138687167177630565460918856551844344516890334624584682912414317535865749891247595560896040292155393977446428877279516223061246477930882654235748010717809152774016548710468265535703098981310831043094866753941511631676658281403700866865547643833977042757125044749221422969080622787608544404858813995712747561301902637515073878311885144100537103141831634743367511749232053176825839150342354505860226305868702779243229691617545953440457447399711712119207789915812180624709441550694727351401234550204629067783378176214191890146908807079818100673485939679726693487696523832201910820873136965799813776062143345608391307991994916188426151766201151633013365240268650603921725403434552867518082580104629058208364681107351833729751961456122525371356771188784251994023543962242477517373345353389150726288232132196100844063151547998599521588884711599783751001062597243954442905647837242827112768861308729717667450387784470605049817926326301121793285779630213417290584506938423127857447098281990368933332322524565878486499097175032022167285214998827754658306559015958435161855520548978267361357962795749330522011191610842080236996138900439932835066345181640768389987922413230641588672500479862191487276091383655534567175784547455676041291332244609551483125353611287145210743043635547898213697720092793013726170489082803939099983557408289800561303263280487840702588019085387730318818712730746136642050910874961241901769134499707745752836339783231561103564821247090359536816103938413756883377157827938294135462391627057605602271779835321108182513441990267728610496870350607337208935530864008142659916508722359726946248604836665891130395850751047449472699392645264605522665189249764530807213109352096231576084883113826036479166824680084142235887774104611556932270788793268743612837957576853818407467782098467762736724469111891654655430484797104215239779289206763896635896383566418058944214745396226231753265579725268146631176978012993711098245340522927093300399629513714438319513505731788056663961042122577872528013252838483308299728818250749885183147176842056425852484751295545343386763129354644077734050007219968380140522695947091991189551884053700772316581952105304731149144913758587914656238871946479845265284802689647131727151501040126023071212228792246888113632874334667237820558111794202721647922565370422448776329697012927691315004252022598108009997988559023568904329023147853873872402094744838539417783679432332561309381772050173430979624532495103390555419373115567810960057360469040879350621298748824052849743939646946584677743623702801414300304401661790116579760269790511369309091941300404399250566495624246838020340508948029000263762200578640552156227401553880280034689559175431276218613147605255689989509498932383472879082539984234639757912004701170765647978008566264746119214932018152685676334858437821473311767753820642489458096582004134726957162370383720779356597620052278022518225296320032536927653198445965838103755079283425278582591745643500626084344163112970195537547485185666661090821301768897917608118674529452988157107661286021403190196538623956291513139154058784966307201942185802070548054644775476955678720896015971790736172414061141977276502529013859928135313797092560361206849838882151922518132179980933359782131751070483806021942235771089945917470518247086038195757880028161556161166585331628472637285890244233722087246293327028353174928410044347263041799008694169287372227838080288266378013920532928677292804236565912564514894549289320084006096841831783905934902376205000224339124261918283291801084770695741558673641192801283496458206833115754626233916641813906198852245734368306773983610104642316464133135532352273752664453382030040955103219288976104028788257165434018178388741015541294894921097507774609559771524786912881124482928425719746882048856549095615768512861059352678026561439383358592178867356600596530098536546206425434637910629888573898318354369679219264775780379760991519977631569730191138816967770383136174316445378545700731936052197001517354100766869601305437275881607049987789365017422246617438193269192862429301061984254163460485330613122444410053811904217052950210203949284993280229187520880003182408337953638642237831826693545467637857036064039922133069977838159195259555588878191552733115500131708794901667727284263034494974713565876728143942654920526300619080005910944956218545217579084841829846693841949558812074700106037683563441033205450016151657240720125298604958894707972183425970164384759848658280980869054903677261462021539863629416377179304762721831365968096850029180311410797043113811864184914158697584986602245464927651310287275862938670400213000595178163586440778748117806522568506530713507342458944602683462083458031339214535422338754448630386070872785027777775086776299202224027107432459134004028928720902658654473562108425271922286631314180112202868765811959272712835132421508816450191208996690219737367720181554670989399273542199116273165262450694992002848523663471619210135317944601819327396072124887398157503934618170208223027956393354316765552788502935163273459472657951040114997344823774206587573034636025051615613927268982066048321085542322084072024003091375158254174604210574559615339198458900273971574375380224264155677787593079348042453601445500804634412405440897265939966330079979725921292231094194707838420418307596625539432445609635895414225661367379692854237137647495263375569771626021992267349139427236091784676196587205759703367639965915756363993425058788943766830142891641757385033888100786002186250388008817542820476784272595671960484060571210079656164926916996939208557744994249775621141413333243237951509364096641340808447528614157971242508505925805081064620512457221688482019793441153229915524820485989751301007559884796958676495248802794232312419807388735906666496491511396292448871057045643419978174371093169216647620690940566563479122208766735316201439579444576216638684660165500533947931580877471076476445478396109992723489002851457979744344660440511176045586177008433876053148008853673570211565036104548799284037532175914820188299399708652690645538159173954184083082629694214229603619265688038545999145315531953051939183455018588454934955788237465098560821298424007951804176372673129537115995329871379480968186645546885144362583503666244085255859306244147002018821220464219259172345933989619257901631775292386555197656249237162846568538934472706908824411028132584191077575505481596675431195699439784151633240688940704392660811215618619025303220713906467697732683681506611237692800248968355757137231128842582768928782310956781189966969774094893487241466149739727949412661076369402958236283034824223717633199718432399903981284939398586827244646054071699259408451818357188910943512641768469147790922528378375323956019474534909055101642338078115996634482620714158723813542032404931757575337079350969461348285274651377146834205626236321971729619991708666383043815049988726067172676572483899667394934781864059973119900529660035329941393264852632809300822108367705019712870766990024781300851305272966844060610164378230719136307049422049383419600953509993987135158792521973942806151356564313408161568884901747824857836606800403926759962908630937903111506727671941876882462830751887950689739054897988939998836266317622380542165500973438436075892142420468068102248730738778094787723527390164557430678984175586097805980115965586660818087835319300271259737913358957897334008763443118861486976837881121510877126677572310183325111391985166650796809644853255663841758311669493885921614166745675555382378604424455712633396677214622446741586901295620545652768104736368260978986496300568279073769198631560129161425693064781006989197020226538674162603049633997127366767957428955566314014881184615445820075931678835668267089919455698580240906776542744450798568453549054758781082742772021979660038202099786595196994492933543169491649170554412944820929676092514799032258890049539549957229930180621792621124071101622095785527048886053819284236085295701406576742213483133260263421770543730953570108907807302213549826362852887826558691568563466259473132585195659138468924462445834402277049670665349938723547520909770648817090001106391255718740682470471367225709217122286721119172532204691459692215612297524374555068820561736954940666273325260413704462908654461510442560076329179486145106922588794437481577891250885911134172233031567497381920863972206513520158280086982468765373753233446669783773281011145261959958866650108216881597594956660290352758332149372864358745996764765258208605552447339121171297976729814037989097286506976492032209927924040206629297956083333483709734371103831364074116484760050698520156744722778358999608425578842724735306117051602021864568180148423771285876616591199011868814095160940245806826199051129611212754574119275346382293994753499107485956141079594010471612965889159165679925544442250779692987057697058479143040118254545356111724273371399999432672127719323193391300068902626785230042044775981367284743790128671709651764782559460090760126770386665955450974046848589127133239909729337983586535080972670948531616454530790871573529955075169242502752012548206339883390344782848948625326384370394044505434363120240495681948503862902856933719155477929628988453250576597682076434462946898145244334205580449946585823750536595705362244038184299359354415068135070920577444979990516676905380209621766365606835781587320379231026760528625950776545290579527210420413852461568605765628218747553890252057850800740693372942987737463057925699377504026856615866168040761542216193889794638536338311259582441879709719549522407479595395194229768582513900769548365478993386356880618290567934076519758024674217910250332216964377600441282077990490323308123176112379972572146928331218471752129580119166422739351443766983751998453064578736640777380699652918703123194595004164514120225826972469814614881846289049872728361923812720419779161557131344799687575703393540193254612893602565440312289217822034095434438836935460408954458024790180847629703419796230216029451611247691650186005981164172743826673072895297840924401656957765725555729576130242533547909506761981919701424151665935744603959673618532551061007924434665329441818070121476460301248629639975333472474598343390086851604672402252161362633437520040663234254993084214185882609820943615743240845647108254431018830907726258570251121046551644620072039153746473932152920633797970985170747730380605362838981511969546064420171139295668853118832806264334317017170205170264852813184125163439247307171335549506051586713611010580504697835880611507229261275769395214080302982839704314172657091329508291125343176943080754686551329222427649904174047481341076368194957397746437968651830444656683983184841948244176059863821383782353137304522859498310101762249439405390186494271323242724894320227208505266704016110654929802726886299503201407835500681783266124429473379347087040369339474448836401463014307665488869199951906540631166476781940497301003751985705416725276470230859199227399842341493349983909786403439076922427293376689266049349441694715697155470599042174219258825753425929995659864267684514106123846878806544579177175040277628236063300794375840743669481319018301570912676662079893317001720205395490686409451497740977410943734521094285968471727023406450671007142874586355868678236996339079944880743760883533682031211373244515710404186429258794496377751457723511758660881749387826753877641303779519060504064763026806474269068794144744826935195393809701784967319464528914389222386328010121834314118098075047970243899193572725705270605470472814746474462082224540747141694065206969516760010559177013648971322784201700335664320555114622179331323222171193273734777157788658376969907911711317283537401935719863182444704761544818457702523441248455096812811666497090604322747183366809811678365157004680187681709568893241844073623106025662747574796976374720906354840294917347274873081201950527096375836074625454793529542341712726819813399026419025763373611656973855087441302411046998364322210012677286821809498907623686892633844175188562628321296599412137517969890520924751998789466845120578373584504314890844568816138401588039698729200985408629694713225986323131712732194289141354943233591229372423096601546164996985579627632755545779844544032230409049346593466633088573695960232857501802685021200071271420765556577264079830207291948065129360217761136093911359393530812177362843189441739621355453605002461387879606760408053169300250934418257134216136144401191522895306530077790539720033966289417946596417779835592534222877746564000343935264773517835159330557199471598121250380175595475777459515207139084336100115379049015078907056708818445741145088305122997002099696113097121893728533083594288099049270074679601280969718292839412819896052132336107052144317601499501995895358971833690782831386342368579567965634192930497698152099745288783121459736846075674766360600396879174354213850348953262958205447487692413303661183286891127783175460291279129556760074187332255429082447596730430080458966345337819875369948633505377224451590105416566588706989890137538880243275851514118584543536529874915727188653564082683272251101470090989862716772241528776898622677036983969959782816557940888253718376453740221818841187448133828794719644549375700207234696253360159221820280817972604912829242072671298002423760022464850087988988572315884221469461474910278915546521230594248610272604712698132414938149901767357489609411826805047717301316458946823454090750518616610154107017955417597598280422938627155510777799674591224661638474771460111789648586772191861044175307319060399730981271821910672442441948147115278343039206536812214246550226930206567588127647543438557347426328154927705626600665467118487652072673356547316696621770698336458358268302077663377786474895873125521947859905262932469843638246857387232842777898399257375979040382852977873976846638096241754775914830964299155281451658037282442319575209277265826932305975246124505643557559140534014297675082443347466243985834376148793899641444025141130024688693719521578304486934438407345590866909464481382353532042192534791688998014391786232376017552145946542744591797476063616652401862061888475586487380583089379600294714755490167949590428156184287251585293982983632066919799567389478800199587980348283125992532975991050207350736266025424310513286294034955417639910947632944854290444810268915259589521457320122663991033216800068635048620073570348589610617902776607181677068179366318045382379191259561984388576095180289432157965212056576110939899154968840313775493935408569534499080090127038401726261801820466737959946829543697194232579220647470975895251070020377417194263893464967571542725040469387188357277563444876944595084986388776168355058849700286857269280542129179585813191422838038713728275528683064543331486880921516972378760137552798110459669882917779624109707091370378839304506450124598867858957886370910482165298115205833227808177991560826384334655419760315048884191986084840626490039958781693294270619622974531271365326944415146362569734275241608734402697978790021463626962620120377533883677549691572082415463924241350575749432317953795546323852419930894060511341098518780558840927355911671616701871181553505823660985691939227000646822883589944865752267148004631656752194201966183070345216392823182511277834283289541424721726008101478758030212294751534403712723321670865724341810804779578414426518997788601140202712329482376233826892096411116301103221754850809433535043407762834159300300053391341804464235262400380739510951370111585095347324822374380350893528935216587780976003257121283541953122550820412698760354189007713651108604718194108088431110742536391713898813597531932334651579864775046845758698939196311882411441543035704000826401267779538411066650964079049875221717226415649043495962670656328990457837601136851326246834602134845575646260777352188360216622168327326752466009077868093484338791981564661208248486780506442969584602102930453724633487602599622427009937073587107459968463323761050293787408079067362688314322240026342541834946497494337876425107862940494355970889509680133762402481909558113491329791361379976702061469804350149070673315063787624020662390702718327904802851482956061154740695997256194929668302102119305025062268263880896540629845561979338912841975881135820072574356168576772366593657751853637407687010082486727325827055947358759499152718354765991563039137857167298544040275171738826587384991774630988127769334111333640702276667861050716885045092417768179812507691095090914411583370303122408506723054581245437271259392013793712989504976889641046583485074819454011857702359172469012966511482150074342299282812227997873756699200712962845547283485924965768203078846795064702194730980149497744309949779104146628500906670090421960298663311030110011132782301805889845558966393460875372851907436002284230389621517161956418065627000999956013489692855739326265725163640020407998471412336038886746834087295761469762659715075739705145216740388083854201531984940935620834941808448216518439071864548579354119886526224032719177493852757822503822693597054005494545632486688166937021367054984886527552679637592542953115273943389962168015529068835137032902484582581507127636005483568596542941065170419630389669909871302275853459041651175097486133027113604353170371718416809873141819585031564870772149478854628003926277518456650430912603414221842304210133140285691502890354177509096542281408332982473259563282470188681318906977341224009824572047781021244257867941962179708245494715165738807912130559425579829365910185929521458891989736410574890894887746130638684259775642325268634634396779838391211928481559046325726844298069038018489373878662677601466755693021431752909926805769995789731762891660092351933832885941822434444837337458570622675049768273613929212565903885590939178962936286792195698567220771145167687115170363840099018030189287795668529739177054160961453069937591596227833917112798101298430027748909358748945398117353381576846139508418563804583298672849362869287801275472398663892413528204505780353885364847097327544925680094275596516029103457751245135941932152689509014544595241696113698064708110231533338827666229870284100724886605287603754043021857842964223163531335034068040278444147520082689003786354784156536368956731168839504335456317801016615510364384488614982713956079572913905790086466129824415228134778644226453349015863717448862610877742837337586277208196830696383180588110789389572837677830118699970089433656062457189838150176746551248089349447700083734530619482002243872523604954757117394662913618252446057626009488669025658132931135067443779323202503802054350185299498077810525998530448875507249312550651003885719082485478389932660286033739356873644557467569660119191601438807752987664394513579476071447098889327766053074116311530139110492328219311058809736704743234405890882856400267975943534642742107841490615409296240833879108156578990949881571269023662004328021528958961577522206062145798828404918233836573512543126936803798726868475523692007777213811796492400361590234577003494115340683355738248739131353919147581585276254133758998420361887955138073173462244771235853672790530083551436917470851610091475448224060922455757610398609663567882894550033360433372084655672516489462327278693098950945586309830114378782588321229906713291819397652202572455840081402413093213342095068969419077870202615357580218210512329081352831950915725992555006719879687514630234571315295363312886696129887510461508593563383915070262240450567951168869460511094662767237607237505288455533235047477489980158288045753005046091690215964523830382629210630322585173215675280891358488354854871241265327424716575220157935604338198464883776605527026552678470835601024356860883266117880977031360613779093609113087234077209618102390157853292035471271969105674794704414643312131439560967516626112894440503663881934028642048503807286098791982980487313349900484552194065734654155537801466230578392118511432796651242618604478370665694246510969746211106625572671764171963200006067946154444738300958784936312325235285189985719809160006814191918616838901518124804643471901284000707041173800540248415993671028492407559303963487240301375351991157511804441626152220088089789683333245220004404297312612251617655694246030207535958932402085289249243527073965651388572918316494763448810446032143908764832655167298762199973683709458549393433833258846205940157298446429786277862823329069044923276593292449912404613383396901524758560101968276123720343055108979231752867773878201326684509880718026820392202804849215743424256804673069717712187345608571520356706217008389369827536191719737107940739990603683952061279228549713860022565446739856276967564477699256300949570927013119192982495577576375085942369144906834763454604394437131867956302588382681792897579073867577438197352081312680685284194436531551097133568125748283469790178901431827752618088331363997360282959901000051972437701525586481910612361767641145832369347955064737525034060992789723071950827784970011960313162475551008728852173812918560876774785619606389351240925078580628668215537123624648969325920348921913067134717109977033736289595978350953252359827128964919871104481561301082918581273929221101792694864281968328624692921084643895996928816550769582289873372386157832942848807562193230957406308380891462836413811692922908323367569040678765357616396175426664593802436019747199540348365085688712885529242935186799465568445132086630207489953169878887983908989545654675923206058192261778837661222533547338637096772959302399118055662280926495004498775277334625217332638938949491465403821243218073615845361140460215552597536672022391988105028468107377043772329312159753622750515723876452943634838791352898878790582155011110423358451831022761133433580478971414977152515778984829893616449182897931779032646722874941867545326918364087982826661910595314252866309267070173240595070622738667057928733882718495187976068532280614808818646593287994277974612452954095267124969044104613107390919211239694068351844696993047168661742405051922297675298529668486734836811625766352554575224403184392246233255616522514104235923273201888336360890136050472633749620582370618484689529986526746636302195871613693678672483535610994037381399698900440515388959039103282794572815113975877627474453184293053661363795169817274605208854646923204175911435001350395075348489615692495090020755605575438417029014607818186992492393911943824110025705182138823009803545858781164004553031127717926661474377483736623746020207353840348230968767789362305616789380673178566313716353870471587401728905272491252082716893043739822965883776322658705827681347353299478638582774381654779360985613156779341800020147580424559377378303603956313491357634013503034840739927578659534391275516020753086523653852745037888597124866716500398774192653741450111604950710018649301535827573069553026842287584834032104779305348522095490792573563977027573732045507991015818436798097731303516449897806847700924124658901717949986390152345242314464073314623970454745260504301874212994382125706449150735469297093206380290377591188187390157910382794684926286064935577057927535699984474878454484558005063460310194327718272203125080977502995191976880246589639811415337135068436100113109962982510923400768862681738142858204141106078957011495068943086279652602887953539761168458073043529965627122092196855252288491697344907527823409037934366431756882408319294978354314731449399148449444634289657179655332850400946759399635949907338642665621874810726324787243040629049467920253848591539802660863028206837106819258636756161674883003149343012810529959988806188629972368964165204568060779510100917746573081454691925813273129673025592058716565880420339131539744159172871948757014262221471927891106602750761289442732242913669946659270657251041936310238598175490798699438924388900893934634121382813621947180798111450300020433901579204393125539951922260908899971256309233027142912501440398187050042025960878087081358686649017724447369521944670349065022384096930518259399680394210385832160164007694778919242121489543593744009993796437285613036289431167437089467447379716761820864159316835618424004845427076218560664395978802142164316651900960728174606413768465552889186181960348825852074845556619089693189055115991626908725698821763884637459550647377739141580667407665009778341493484216184403838831093760153938893631063154871345972529048370368834150168607515857990254115319535607077038149712274469609689409530526009808174927009219332674213887448974859582609816278112393479338277056197406663789713662110111506206417832730909438642104434100156848794624469675999352470493084992705731112482397592335989864528277041548277629085165037960815057835098230275874215779597790045920608880043548743473529828147036766578453926047834167045941769174894680825377283621606685686911351945238338908918911109127985145874140765028525906720911115279925914212843554397575899852207175909946241446928463268626340215826602498292115869480107657666054916190877864527586671942368344343143419381233500212897771314250005292249716731077710017168511888229988920847294675210622424553471607991208322047262682159688664508167350961643933992447751146236967030823020942646253674913470340742458766524088261910336251980464113711612273934979644756701454581288427010677196263293691784822862791205618498280909007323886154644578857828584097096047744112659161889517766291662527168721718762516513631708979617646484309698655020383274990369013956616772453347773594284105079107689335238793554981878467812308125958197651326354256394023461702890360708166424177501440151789871339407195406803684014377753823023274168651273314467179277067541525937370934213197597040931481491994889872286782267469651931566305291459571361839749552474801943392794936563511497990843542657131020197144345952011778759458037507874625180499505221398981478459503317862578489997751009183675879921922826055038028507810017854415807312470071381244813199018918287915172974806315354184027249731986676050304698921400122077849186541670628894614373987362169714665740339540354657042071325868663336279283212156148810545073264464398983800241706849219912974800942850816694356492957834344123652616984823031940948633410216606988284623109833870141892807820737483205430749541642896324813950945589933704491826186642654150819005827072358841898280998019151035177063881643966427934704377364802695785368103679866531939037687765826608503687181035728366643365057717227866672879309080997221922188813671309348050105257264157381340641178162104806787143023891668115663107287605369457537784780650585029952691170323330371671960112352344407475268128928355868286840263257160569745001944449517018066181081906441054552466219974605510837665828858129814451526749038022695678115007030523761609761607516474358393341040779805577229347759913433136721597866105507342278371167761831994859302758572613970586584709868667953396094629188678055717113687861007855007438818571064126920509669914928942274974254510850292688489395447482286306749939427340324868374491455647358303787886059847569183700454233012866275857927095106789690533359734293614200328824671488045835314413863079762659740489308711076885123230786079342451220171545580184169216407608957713287564519943138023272075005128755637620339753300605391520811588010542944317855589339824635645831046924158286611788490100463414076094998214465414603928375102473505894407349196495403702722453457220124463687003138483398423091832402490157951865933785992829470159857959196859838685981944905441298097484199553689636996354717206181813585525926232995399169375917092428613664218558467667720623054441488582625370532082454374482290302780270657510380017108817832818651459865583258719554645852534197577697821772923612071333641240281634970014373150088552712917589196082897388980202176082104877545001333613191713197620856414914813796406630406540354290848751446093045428797888157247969800565660799594388364820283160338946679044511365530731423327605787108207926760439535354664225367818502682922884743863930395837400973858701426510863446204705175847605499045727257503150850585856819746842929041706716614133188504384698079735601777104811768366410779396794362026848191177314824089976925551288263145278012643813913756963948911084647998499767790629954544951573178700804071248028333711170264272301544239136020661853406307113082815207497537193146840097106225037195921638658242822894083649272628245596051552523505912078414670760567587367336189411174276167915553017199436756847928532673226578045593297864425666944433892545689917122537729840428963254728255533679890350772231031642222559368662240293289707900774962130957134962928964929387875975644766633100100120853804913657780486947710046538421970875553324956543022798404918623196790625317699314735845280277782058867692232477965323935598599179926338256860793129715306595539487832777388807136981497464050662517514314106466975480788825062108036930301495236024766871701778304594493982135466681201891555895109323779106639743217171528610129007333518011331114135668468007910399622453150596207162070402855157026143358103007802778165023775172009678562401690788151274926741016063023195786733309667419533263179154869008772125173072357898092522530225632265419023399141038030993435384580270680334442716519277258234253690592492756444995993189337302024156133921728688211168862565852709987290601656571088073894875836169521706209563268246090399618378897872018226870237853568344181001214934617230676752863599011280889100896473779245979568825007398502380775095912981555306692489535737276413238566846781778140576387723487604032512946764713594366594134553106314069585626346336897310651638074355343126100690967453765014405198118349235318871940799399909553892895779875047727780327084660936154885596579969702595623280284617474416482632048724128298949478102988228377461856185823233466718586883495818421919438832220412925662182136162779449004102238014024216582366043639132312295443465694982722206790823288070241513735241623122747757303256124704268544338532247012797778599783518199543021487594778160761885270838202084834997471275528202579694699665538193959379828961377844300795301854003696616611576286812079579716153560662027357626724712099348262911458725856610030202616546006848143871460837279792596145993239211017039733769873495439047451665419547377441161880916700728524973472353480092459473691441023228343634384103720771001346205794664067075309824085550357688699700784814367551040154533652214918883832021327917374952250859104094126462615872664616191769631733141663374449384885148595135867901870079581736475850407096563444530063108651340154568645460985779376822846423033101732799271214469555313966505481727640197265790621953881325350963250947445989891087859016969225819860487325161631487225332086811525038778390309210963973140870146326277487361999251603690351640181322863841015778913834548208695394911416541921224410372588235373528329662254040539599551254188046955347016927965818084221691146779495770903181471995224200489058855937464416153490934682109527381906924934012585401621298388823606711299047278538251093221267600863567887299111060647443854063130702691579329114716835748930860734176203484242255797432510010038643688160552466827732801481669787349633209963417237792378830351660548716717928740011191447262456712470024976224582240273977070270235032377124169131491308448027264009944972595720923593023069927300052249073651419777811827203052590605053664793101848708283976243597654102454719021296462440721878685429130719911560221343598109261278099244929883532142115168804430524223133517203668759109206121817157215013230491503852431276016026780710277905987836302849099513323332565542428323312697082604828410911646293553079701347159992856426889889700767442334648965004511482489448843811905203162023956125155080114293455938402258904452354916067705752641775197360904402044833678818915689702778936604499831675503334609974345390667968123798331363984458622049182698598018506280836505817585632828672397021647037926115754368783456640465906078885859361572607337647947362839418949283576050483364494011349865491208210048132550683756281970256869699549187621976397204502790044667563951193761315600645448648552507497994208500289544449953357450468366227668720824831641359948030706016118223091561752595284900289952934287376173510267424188159371599489096979222577214401390912722461788838743608051967515303147911414335732073658590493042773379844712919544464543044009597518309741823376186337811529128015178663600901647697454495895732314679554993893375139495643626014549592646737347216021885313265446860088537207722134527510310595262530711102355378856916499591169220838887707805173543839856786701509637808868647575766982532354044245428400882687477770328538261997625425819929342059121797780827787051185845230897298563876865112750727634100359941466012227948957495592036099460378048483855259599108171236282744204017849802110317627877887503036302263616097666758010603955547997874569981579733423399742444758845313933453664591755258134755046344267161094890817996895922670464402169176805100590718447352631235416442486477743878776517385347897501402520406932991135325561481360435329683129289912953561529040275913176773412777046365308522132575486307933547882996383406999371515422494380882406473326312335046138821594795169175925450984809791108923311377895396640746083457300976511706075241436288346609180038490635692685329640055165359978579130606640474557190848662504146276335720442508766033207641200276837147202583957757254830817635228170657759415327083266255391096897305850456225936898498975622702158265265280620025184416489819196909558212078989726717646133800839566487722019320463671881723954704930209279866104118469570486847004963864125953067376666038942176189387542375224018745815972284425229079773722925510180886739908398854921449138635625388637891615918884240512998193651713692591695779199884949414977115194315755826307059948575863534749639756855970386267805400720089745025270519397969812529688311916459045209756305283373094860238329627213225690073767533911168294719812770574262437522137582503200873637532046450005738917934659235577083622041452850139079464067246673601827537985447814076921256085694481054166195675264750745239025451705310940662636682474575734607040652757535777432010239133411381357750332256114390097609946952139817702841461088413608565918393299393135808195270706927092760772171777909876385463446024051690499497747577482873009339789406414736945719850482990513484286707099150933044579663919535589147801094434509827017367724097904948059288384657526908214068409367522488842466125605269509780101260577282287359937984997704573176117586941984674742904864012319967446222686363326007641107029348897236012621498459684160318742453158435205489185904535694196446063337988493153116954758361115749766774070315448057897817050457319225881549431143902579345049989550037270423618264568041589970013697709364618431829666069073135476364512034680880448544639479881054680984967013179549428668138827658444650585179771236814267458547557138229072663460316438137501465429194535993436082062827907253188657517973424574661225027443019092242962776936653158716809444242786249840749466556352680450276843578211362734069435616425153792322466645823710793214590444611109221070397604565101012869760593556579799723039393868396179918986917991593869470863242416010161030988737854395677314829723489659476714272134128400437621066020055056620233395195755864512830241771428237157769328767978452275710423728172468445461622447270366618640546724925014467120456547835726921447053879805427443650665491900369785230070372006141837257113091116810217228672125895948574600435329503311469579656490062446226953912511252868037826375208346201091939205299406735316501758378263276410048994464890719508214784102083666996441555489973118544459531232788198843519364669075619174436387489862636276503027206860925188097236088479380162529503922552102831859119520952160308797092230631824304905136125178526678309896484076261871121193856452332588015635845663256815365974140063516653852783302799332761818731642928434366351615663255280877405476696700018814831299264949756061744994556048405651692066062944190747116474057556195518345387406404646634465233320351037784476758856666609017287520982244711564504556724311091957346662677919503511119124849140645554352577254965663926785221917623854753819710831983228483946922294953737493172577554258096479498589102686359453576135514660375139149684512296745547842471779306074999924871503917371133105984182400457742575917866712195051742896119673898889045793126077836316129782569411368450788843444978664044958957817797753763317503868656921432845659076387703508545492288177459213464479036409671937884800156599085262761750977394016437406423215378834130050262017131975912486458792300685002533813548915131998471093397988436544604827289154971076037317445126097171706215491523093558078456283921799509366499044096091569942149387112429146631205469132238606335268740464186976497513460031842898257475120258445983103982014060948468707691618383086238789106146824197283200526150385110681990583517695632365696941423626101521553817250369391988202927136854440106294367264512033344244808295285077865022358866847987292336334526758265461364764488099277633165502130074494529895433961752661174901691213005810955424491226738528512234383695983978048397524645101205882674283063999608907655734436344801490488298357189816409645101192898539876088229692264354208244568412368752332589778385243845422759205676092607958467279386639764013337529817410380083971366987501792518889005096162725302906385122448156294734866718079216757439502335418797146370341359507068879603101501646447422392328672923717256538429014706590688672940694842542715905205340933901432108131385458259704348580931485506339418705437548201917022688231751090132941361718770058091133457961642203012598022043107382966864907037504453868442844087909458071383896209544920759961553665571306844046952712994878309713450788275724844899897349703962246511049877700417937126319866550424826450427132291612309324616413533039167689451483585692702166031906568999303527296694254093298585047142854083867108892734431087363457002691119243249637729822940094402075202466206644738391720442575483401453940803546273409990964069072075622907374684131198586578798855914252147080351784967358936933535007544672324613125258268704637563439646390594790703928961259764866705690718158460299360428566416523782711376077456210903179808657173199934312817969129429620455695201243315446083595765650783244672112585007760996890714299062146372250183703199851692200508139102053789839156229925006468735679795406627829502247459266561768688629321162565605008454294559032917372009820858817353746878318206447022686127649760906343394156649026426219449599972627879887420686537748400124027120252747334436166813022720475458702704640986434675736414944556040180469025649085325167271670951279005239342170274303288614132330961696475560201838621599787236096212275704210996873700071225799429518696300412954188779628724093278461798048647907699890577733886055838249114228316374869287853814814314622428398496233785577350860511010509261293230994924741892675131618818620753257403868480696490469827999122161138665663820326019135968402515649247906443983330031807895236961651840561410338434799376178182100474351909070654806403205691171664322099215471240461694247104315222205104885366382704720835222072281792307724378621462986066830039443184031897119593875880719811504839775086249284520537660993570351138469597842959544064857515050620849712281233606395414804523183037590392304193129358047025322396391151279375936015140870535146062989951940745755354886861982269324695538210219472021248849044263655395305394353300405061335996832016669879477207952586691433189909211865226058496088149626836546723498404814381094319857403683774663709365806373392945879466445168261148333459808948132301423449736300081770030290154167401795744361620184220760535776542316284564276440937556897155378728695987224574072558628891627542274001393924890937205554561607842415395618839990558247974029707414788143572707914922104355774546093490057376815968281968019771590645796605754942541814453299247981996657119645518856556568121513349098046580376847618266013737175683727413061704644380829243916537132963826165307231060682333889999510255307327441209426994137920110104663208749715410587445826115995906877240942869787594626942988054778607764580052294075703084063851604360593125556585533123116554638655410300726993447731181690786628011955322480995617127881556393519012560771128846947322636357783025965642326973847446967479381719183498441201028423519219594794118886452077960231343063217174354069248862375881350795013019542125685389606693125427932944450460414399751105930683075898666312089709178673814431062673285729135247335737334139964981622560564197417879844156021330123029600421489114784857526438625181429619136898382227494155863957874082378090383414087929764451188880233720098864012236174176430506370381076927834118901729401329462385639308531532244222768818571728893885168650075904844157097366365393941138141433007084179831172343974321289826930882817908454608352276168839236706701819377906387518688982678985926122487707255370774680909173812195568154246781758249863590845775282210873370947100534470431626453265098754187048260408504943289449671151155640450375992218315315062189417680797400402678059163735949230580218910561624590130191307342309220118774890541763475234787205095750830124580097608944902014228321517081786382971517875410232779377854072683639518037227273990724613281166726202385362958044768744894558935561294166787711514445952150728011245289783898892439805792611339511716337272476322035613413766554936091076077542886394153750911283550953891017569927348105802052447498860656941406880598157145534961021164041299207119157382239649687900615771795957511675590848192969043559344490289369648619008661184836408445470922988082018696435010241658928067289346189212883998058867547233822662874674898276007213969179081994180723645143829894301735530322511478911846799356943769256545351140882462644178781754058520462752091194551715071532232290031783786392997264579504136224307388747429588420386537963008878284974910153671404487270605223983274654434529356528076960477221503024060329960820144287406646309024369558220175148190212769591948548065002515966276672115626582703870721458114744697943698506765768823503506327908552602752457845213931189712195956022277801052170563123963444611270021258672357370900902467406949257666965304797371427626570535957448790876199299797549154709567456866266693317816026949924563786133450401286482682564546781442573431384860066826797672708278086896403276259416788405714594114804629164881285200102610561984527854316767343019418002873928094615194818546866310990795150448813365012546122141354279122839130369472625897800273316800303122198079222723393023339699024932381363017812136011313683103886773390012252524103762883920011468747397830196815162344845844170847115405630671221502524006009566845020996544235778554788006584453063354586519748517271104686923708210374238344516214463591642683264697674851191611783934195142162634345728069393696716440345231117981331367472558103023300335647091931311841549327154187214539550089621519955776480953224728170568462835256462754305762000017214990289645138438331171165858417764510618582508210472454698908552605715433473640776605980218446223023035764928698353547722866911672550929264234953591129778086706764009141760472511018422954289469724271931395782511177137364661288610993859615446366855566406324240965511527124487408138633958403290683016637505159378894470032446794442050062323805678075861405161794915675878485475379803613320458867201313746842227773933830101592787382664035207938573727331878722116006978868491056887673735468207179344205169186912073390602304035953144024848275524988496686390561518129135491333068919805095831954745243476885587738310414344539933978264379056007932577903268772389335970408929063798623591326882769120482353226853311130949276614545789111470718167829879548739779664939334049995804451114426378780550061812019428565801151160496597514709360848244784071510165688191515476308537089917774950031546779199405543023845556843295871228070339303655080520359026902225743269417733783302077850881645997749984355147030418993109278863628555954986664521514608322432702939865354711714611209786446464432561800235200048641692809012519555879677770712014158540324292727965139982142625427852383618248974400837646571991833956603365094970785232889745881493347730994863973831820193244687919192275981928705919005907540673571852348118683464347785054157828224490798584087005861205284471633587772330438082709137396889505684555352326182211102373127136881420583983854747049000536093865761777730487830785597217538818617272005256836873008672176915441262877549503239222116487221786152262091124259237746705501612558235461544208744584214964776025595727402918471645315888525882788428685588949650842703942989935442747557848840925342436759646126543810920255629982051541480193747004803579667745874100884131811872582385785448488816682771330320509148049902706338669469099351248792271005092774614149529146261051764859906929923817599024416187949702356571809514425854995765179296210567446002214133673754807986035969594685698337977267285287592506044418464357782403623776670298728323706045274425550681518095558886835891475330457011692173081904136821961979244460426499343848452732374619113711082446433501694801550253284184628733492266134568944139002470663355470788141605485679668656432669813031783621646465882083005036445481292288496446164101250237576828218945511845805957320909394620648677509380243791289601800827940474817422063327914712842095137010561943271762928685790909493218055568979066286289154737548673198693738466419585618899770827990016924649425190347377703988630149201118352837232791996507771558163406176196984072223186782701235403499438429168556505151743837735392032256115992975687965574856371399849841889818723863447747735515013535079191081808269895360125247825470432140977846932329438014725512584376086099814602199698631548473576292080996702231230779999766892614937094813131176126725029020251125017695385831757933248237475871601959893096899542945715238027789223568504876418241391023269149165574444845124608305145787417507387176744173551101307645537897887522221852058613301075912720128415816099012918291185666715739299809291799149161000466033329225776086756566635965341818542256059884318442721810942318109063106059677332784039505960669772102777361411827206434298538442465877284718517883633752819325425830054996146148373504141918616198629106706387911951762050556410548148530782364372016539996520950423890411674976436029024341956762244685142089456568032327777818280402353171727161613847452643425617030040388071688888421475795728132416306939771904869321017748493439522088977977460641321606591235428730663498564951384299151193754156826880464034407400319164875242281289908496049108875248189766295443946375362198306085302662976776229728237088410640306798395704550798642556241329569706903126069372722704973858490635481194665353366026431535545612762002245436501409287070103845024942299682469894819311063805848963834966842315468958573941781004780274310243436170639373226671414047645055320685254527772713379959897191293351095335218376237814482821238983318392269540362944194447793933862947820856539160276865474221602197454162503479486573308748696362146050796657211558568264712564019832368722180162737027408546123315314874653193936261343872784984098267899861969122026697545901203347487171527203423784853201997739410893991832399353436083831944835040717016050019719407955692916944124826846029055460248055663749256769023585654963056305499094738338682002253272751014765382015718968917643861760384669147127050209010166793143538898179926138949582056843152542717333984584967784219554228496937753821419875398362804151385327095150706778317618492686749245187887825652388078755933987418992394106466084284159517680029189967446045623476841746284361490524099614609132990782507767172994873799300497060952190291591878815655029486924994826388639682384956086850057999208125916980957625006325227429775722353244646312991916029527828387808637437948487816007986691844944952033890911819968400143601937093305472219047178616199521109291127917001976672020216396691842224134953526405415034347849373009481075000992303709153882015508200330120076040367400475028238121723533105469837101009657554881166142817419714224111146539649408810687135316799674897427937226351358103899882545160553672510213641692900321073122343007239955691422524643012627356668178228590169033995255886470851754284397934232749253399892584039232079835993252157435842523037436661389938632000800645747508807093799846274709665708094369299361070027345381568480143981800226497961654983924247214953855166490613388699479448764070625660160551717891131051578981248406744154043863432180804960357763693369650750249675465965351715008599750764000455954263701196268335042396940932473254073217465365771218978633545568241703910378182426567244157818438494538256203497811749471046589508232140820478205399922170830963792471914357052689273788296301720459841639676597939924684512021673155759406108501108401501493958481324314326483170638352293389835732862962500645396532323409016634553497614539777543545510180022729878166610572423124306235039912669272559398387044682244056902175272089059731403171949939375760651704430817843584689023226409067025582563156527103991987874499600566965311694201789033319307912876404500245292607775735544830851499121604626040796635700429294141521078517939512489293113108723403687549333211997169415582242253234526991651484270807496498243209108709130271922073605282398890333776482440248216436744892838932717872463012952137775840656766503422548447952734389296263521706924829572233723726052121486755901243751068863616862068481075325255190808700823937566799300052564004105686873213457742011004302127479640462677207960288680754533284461163963670296167636106120956409159039226759772561277082336910179793240276009477905049390594990355097623285524569201492338038955511453694537989642439077531543866107961725493579716448034461266623538041455573676426251445905719258022229306403304943177399110774599480518484341690301247105284001145301170159264176031004668798434006763661357541593810739490233845959978566490063310019258076179659274890217308818654512491561008456492191733984184936400789242534005288512740978260728184499362334439677783416430328617074655574470958871066122859798438328988827786089949825934445706255208466693362073645613299517534649909660709934312563597490296567184680351887876443719273432284967575348743806058683938732087107123411960330893060235219350237964753015141593728621182295259067018575855904869810336131061953704410772086023300066943559822989972003894205071241309633012473989889865016134460416369764129918551398564133480244010903820420980509818816370765602535422885206425047489586808991794668611719325033248230241059805584766380455213789323057235020097155747602593772076776087468148213452253163020878882398535566840846201887763338893823940059693823475558119660440536601708515543140928633570921594481160175329658341333471773027110597090517811589017086602990160512479450702430123230670262179701141510682002268139997507258321303561667949126100542012864532298006726890009482097075854102198848852954596019747306361328429698553852265238161308896659145091248868131259535362960576603197504295041188439397247053605789479862831714003968480764211909414275681202732454233195931119523950562906226110099643989483816464487458668307548577853287408199375727485219741371809429677774117222393641356033211909334407556787838113045199845148628980006084838694206218527192801877804248668080299512897034732944631709460038595125453386835579689058465172300670448889684061086304061213515520387421392844962022257546585820866986406049865542588590814553099484349384273384217864505139854273974290958570085614625618349527002281417325367653979469127529747013170063835415965446342449683526350594853447447210780561078108296494264788100259793187756392390432917853276342037522975657527434082950845479470152452608993138857831239117512692255667572885133404397696254039311749337139944952935680106037969445956859752498772673480790732676182452335521216214968023449292542886551457337565576594555709239533428142462903172781540399834155641983771801898211247608559555189995062073007140345208155033298149750702442677264360338737539731484313740709266544922952042319900734594639311996535056807332981486584110919944394627232845367711284847362246063313602859105963523719387163459869636443906854053223193152413546932487576730463381703029447983522602051814944458504961203269092337527162355133526234320721943009358815033935989744933526957874572783140396703969100170734149325310220632630169252370180120244226884929098195551171956120838155014485836571665102690866487173238190148609924699131546082001992705047305688761418932981083102352648281081024854502208757221283441343794849997279202583543417204425984693274091417821439492801799745659873698287428268267484421213715468232751128534165237031653070432582833721123713760969593993754953622322221974659619332529074042487602513819524269739101756371975343004479617825043115331506758256273534347625253914251527570478784376788524187196634624199270080257610839274976226365490018653206454995155802908398513272627321967284783025385221904792786893895387803686993188466031043633524373271546998988111864436701140284262026150473882358997472814933432570654746370224518872890612550302737919026403965774176068989769834566464705204716359214483070995843064717275076337180207145974456525141885050371637738189029696852844092581931744100555760898502923271016008982572238173945436985296547694901873840464656437307131959011407613174282203883313602970852614512349073071476245340502454237636666855757401206040598869556301144154431416969860740322078860031327905539178696741635552402507676530856322427378471497460377840646093468129918719028927597630701598408877817451926901476910300302349794585110001808866062162868011109151161040983273088089954337551187183173786558776487358854490366879074169182538313306362338205820154885449827883821742437580549238159729640619631058215167091903263187309338138501130913327709303425112210972155056104913870504262198052602476116075059710379436647715293534917186125066116367383304995648787793656979112931958782777740601075333724327900097324072560703888008711373096596344570960411750894447911916217455169709648447620461741281545361284226015513015895258628069570639244435478023905168613385498619266567622760358234985569192248906901164598660961567955415492157581283540920253931708073781465078832035266513457070655368569928112426567084480177864614974045492118431227621845224410884715075701908834950224375698850494542410572662460945832095962572872030994776540107398558069966198019534500506514501054924018861089134173060759238439461246569861605609094541772907364009391321956768364333299619997965424348026569406836986706175874131676505060271358825744337072164588195226133970545205234412809231730650519899545028585383522873787286982917275807824209826106060901509252110908989964389297862943014111400676287749920781723794746209168998389618948630773060274910267038839433524742434212367121770246101160240611185716870508244049162389434350470250813649155155104327250747941024737478192265205933551362553018121964249924882129926017740801037198842125474472160296950027742685077521758669179938013625842241739856076699165432757061230452867280707631894705895440618842131571380033984874086809414461845854230344951448521053991248932455486659305335584578277144237743385339208241277632165967538326650643063880695569156202622259469414290079987698344209146999897956832667090414139806863332515652569687878992257432796139643702654314463933379900081985753079788176133743609483928302233803279732038653646242498055114022469226478931592944918040382983649034888638697564414855608560537177228737148228236864278113657203947496906937239915610036828075141178473782562212775995916775814038532986888513655232313938431742258535628070191544007763016347647781261324380248421865669855274007641051190109545289838256348407045580809052214769722042873822020644511165580202158137220466347663335175617990500897780885600932081454176443903235241939731547218920920202474270405857913543792600976807636298756614782644338926121213456594456801042227616524183764018673453391488079001363603528432174780401683146726188067936493046865873646311483282698049202278762554540178509177497728294675692935451666098641948145836444789096038304582853698956080665666190360310045304720024226393881572068674690061929873082248490016816348921255433754447580388736158658859248597558742783859992954170991722511534025422229692234366177781929653313496747757220978430193818445059850750805649483189679220583434147890510257617490997582001234724410285079412318437601471421378295110218735899391708168680559881335469913794537831377114135491971243465810931127833266217592227589369934770498435251921073517573702005457345130587313221438462087602775184053489371323766290711205526949053003888228042048082108519287610767728145489279440322723628412479431926441924307968137038294820058697420150132353198720519920353877314215882211485974318238790989199325393415037876899596958043272517776898661258893954420139171306418862951066526896062414520844803403474113314880043138647317158446815754836531670512601746640760728095967213272942245361042667928094697735836383498228114766916959695573277028279120997926086381701765421015111581109268328748595064626236299259249694378182229169234325485361604152514206369252147745980941988926814776443905376111917463026074170414492241949800170623866816946607989247516971850009428744446624100586380355863065063609572709797349307096488907606301907923346170197456656248712884986738267854626894512094622905482754233025173213282785316517586934054111845715104834632832008101152525413119367954561261216103197427832103879548253917431409877065257006037671968383047869291003267483442066840667351508858609166297657227799692600386827334964187583321180809168618517134591156850893149404481996107250233789677989918872582686705377574351246508137986281348350664313246627092452365469835174070426513698824143308835526319454754253248458840939937846318673381336610310058114645515187730501413081566601806113226835296397114624010498314846460439520061637354258469826052125453859150536462014165930615241377433037246441039759850015689210279093786786031851767240469599157234052900381676072424770169781521486151947462705461422112569127225381590502039583051468585003602420054909455026826185095875426210973991322095029548958289174232981343154069257570588015736545351789274152712894131431826947690258885478659919689883599904388542274846947311875197488771215019159190888581326376998121590808969182335059079714874613336803970635003695553942259073453693326389696162384254104794629483793746381324612408253069026914650215171965524256788471272297526679202803841296615750218468110886939399252687943950326728700875818861049300859750196928095204823757138945438844241621756626373518033643277401734125942745582026754402788121409286880412030002270631808259318676648149044725799446704594238281114878611771247129940234353193476389778948446256041745478020529553081502542980157090392382147214574805502696844438096038016443726195300440399081842658748795326360174773439634741333029275581820008464886098183291707862124370345940428150160414770581856441322231887793921639889612736992400225160535128293723655737319319389834175384397083090358533308571836931136503700819056545043298422099381490045445400448618221405506052871683134142627896441695333980296879517536667847550967256739077347181693399759001189891113962465206160718856491192664269401606959061610443780149866699828433246525760882571010899195911118083503036507974281230709395198402548016944626205923636351071990148156774400012313072541025605601593168405328169973390707153720880901326541540840848694648513376227482849916127474705322255057918337197829980217375914243447148663438084599101392554944659667423730119121569104847330698050817129727313806629229678493165707003108305567889791232981303751031746783401120813530914660733675118762187223247896837038279501239544495396758853738446641347202470015885201761312154814372133479265672244691795625863300306994583628910381264895233888076384381880921180739792768314123086880946917176552671971341129027158146752944276252132950154301153369038922138410133788327539359202090519420939389794128938076595308702735507730422191143004325668462407228903402171151273168905339467851873822784851582247048412773926828056517260376445844006828466737354482592496916214239033889318117011389131501922285410738181452292592185148575252476183848077583829866667556762888310086015263589358635712742177728951544583129347098008471782896727341290370760715970897838993427926255738188956319405072752087325999456545608586855358263133708493406413934913749179077218228531160094982703667927892358788431608491838953362361576576833422289592702393915386811958152996066452081886184389697200189356785489494221651236101718473760460603829616442733117304025869985215372164775363206607206123292932396240780047428067808124542992795093505143976021192911303780217039508295099069944393911955003407215741480177592299719328271630397133938003492679133416508911394642479661320947250898195723750491133129166984273711489586628649336133970303624716301283210070841520262768996306818969526666944051675113293786905003412004284173942954144584447541246771850871030194976373064645661863494065661595559022203881357136176823477846310988547480314160751831305440342811270350719599014203058814923214884129356944529643170313190357793773919016569125771780698512180115203637847182328949534446551462678468202630396663019906922610623240862574936674402658139719248013316060412804309403011781839533845697347778755496505226719892039806465088098765959904026835458290840488743590121024857071905695585182299648163245701570374833507162561778784026024807954364314277409752046296007705952321593783926560584763183164539460869129139029707529324575283112206316530779455997093588019101795478468222029813794967339008709934835236592521531747809149296359576803641645315741984082949704240390235340265922135259853080332431785857740605690039517496624783114615470747101524109270990190694605559239683056148077265373998499618880204526136957223089073682258369725346732930434907962315838626126344424086314103499740365508692160500462809793942595737077522421277559627928584177313693090364594363844939823392918548955367647356087898997197780703866209274631851985085192685262453825870249573805010993816323870820228564474021890350370205158682457112552023153087809016194370538717681644829394491186589768122858228286305889861029605283254438604524159887904370477377371368502135393822653949023421710889783710051749817597020686825702725971239990477731332089067421121200821839867778705656294246938200423781349130666302875875209256477327316746369664746257061200346715640903478963148186821345980612729682565455767498591972867379753810674217385801948693932923297854556100790005472533051670818549550829573316453038966728057387828058258833867439567213201612236427190239990318506978094847298037705172000913056269672052843166496490463110313400903781521749243406714466245262478844479703267080920479660215253622977798413035291824916677547333861097577175208925700627095398419276724681021271464465163618290386785573635507001183672415428954047748343284348374756430452744506808442943288003263534813266047601721422694003496285639702572562837188280089547602386663065497470453498437664038598946458144805319509199259451498233613653904412316740712966326187042419884078656034688944098073565111719088416213133703832847527158014023337408746055090197337083604720090201650957663760378637218832003863900863187002521159432783932847926470562069061394036488309455202394372760011556448767844754083561603998488513772923034323530097939678336983009127779979497170462853141004353493338226748496581775235312719601590617282846213714010305334392027034513019491070344617456577179219132414373649693969048965732825756691327645310834456871594499005092022404757994214851413924545725326078271647130569958137234896227241015135814633935985739176240573446271578414318958068767448800803490104731595819072414641729115982896970259377776750067320383367599920898141119898575770545690088066735105347037213293489055455497205353010557324696610538066099500702754752262676383165272527915483314536193916719551030251519417178123912448276111453221886677717673417406452378993015037104211023223884776937314255347983888883741324601694849452299051071089558793216205632208515653007407950559249445974351034919044113379156636661772461772342505771351604426630343126850879654103973473927452905140551241030298362589336235834267865532047780753909090946014043806764382911478302964651821538618920140071149455186269299132473757299220611525247829166545756956638325114786725256097578274064438046070715424617738733768071930679719130310725974717095148873747469503491520242571874386619420798287288310571028157936402714634532798473494139024208229738660143735485609080295713469226533118264067965254434989996978086293470385536157001037969986461806802893285729725290142829019704050111709396040179940077279073005957406453592391666388114459764187426920093782970522564055698299485145116253966586742236308393508148778211469714515626421839723245197256393926186481618297743853241064349252541686264352270431372380466259855686036939297507794006992109272687025326458806166692255729635224420485867181204509342716663189051926245014908460068805223509444346582740225829051295030497996140166077255644874614627097868897325672101929230098245476543800864374001097572366609241372318680077447626862945263917248970267674567927348695426329629330779938306069517425895653753303319825137466974625871617196767115785959129389464190051959423116255426558903604042611724998909306405095319996461071997051693828158842491614923639600111384532591716540276495476617295659031279164951736029421362818726459267767827689602966497224763374234588532554323573191763216539724350146857623916565043387680021015694435823608634845735010253174638070912058156818796838583945104236795876705668608026594829523255942029210268875291154369222894717898363306284089773039313699219114714816289438323424291014432554651237764299212082763929737715940641397405209230530964078416316554355424023706082178182299215828215654017676697661208991448060059529906543762363612026305988951007723575565165921971451678367435512908451113629555953087586708377800191996181655683100455702282789191613024036183516412231627090454293979674128235084330945220216062668426891971808149654830769221468092724377218327397092955067524792981311566988231593310969899391225434479357745606611269046429656407405419288226478547979797445592299821353002931553127176172218631970898223531161069406848815755289481620820918166724813128908104623769907013229353284450081408941518931109879654072146182757480558580243538161513918772004445850657984792025456944114779663992297905320277130234997864403442182496163201891811804326478311151594681114816472645477617634978713086688756952976260303166684121463430262440794686978285987418395031713942900135590877225577053738582054889531696018068632325879151070588932716859422071560763890785976077655084303731907717669314552391351862236311427116085445804084750002479987582300587088265491462207872672680636374537598067416479448481497389238754728459343875279286766443272564795561569831372462510454288850073348951302504367500924192903435436010856692082942618503883972921380359209785263348133849959272530132582108608715627994119122426533013518546830147588361727164882181498350287788557539659788906106832228618619529827640257722566057247446559340325286581601438651853736161141630755729703799944665114114054079427147537781111425513397283496115287533038864432816081165190097196055850403199345652798222234280729918171305432277487592302825294802655057174086199252370629681498124204263776859881953959968475068012031703913507600700194920848368879638514240583538606896803775442070642716519419088448177490953805258104482473913499622829643783561309374571147615093589594579265351844458244073484489100939557560229105606244845612560043821227900342790703931871075238085638921136403935835401058207371156598072563030772823585173136193707794908570998474013366850020841298191122359596968222596454588321433935711948347789268345889740076030693945402135727476634284866657596679093779764676816301584881677064603897065832759236308140929955039458378138514377201135323628926420377834841213595082140727120895337331687881000034208405761803890377556602679235794264582504634285826405824664704136419947470546611833543879107633145242000537808999550347417398247970896323065778806615087882093271595756544842616883205894028796721171980537283624065611890799913802883209434331124691268141432182067023539066525496563617615132401567956891035488079558258253280000374072431650591530590694165524402644222655346570827097143842841856265032262749319629589024754165345761282409353540627014400709114820954833364938657662856625027302154425979845382948191301499938168390326408029823488774147168249587848181800555206691015613702532736823984640258918801203376500920647729115868497705912814253936463325614938138098819347295892191223730295843415750510217738760027425700671307213271558502718326316567322974165569938789693238288866660475346398736332850561625487738543568830057262497407546851550544779206649515963229258022932661722962213907725474952264621797546086820993904542065712223201937656293829780886180306195284931320849673872332603947486973079385678500759409394786742549882024204154706671982406807377080366075125464173710459356950619561033855527322098109391227546654430715285653966082482186099201307482570769885348946915431971656972247661616176670651988734448966245862862515222538429015608740899543421769517541033533634037347503819645696162086050486414145849222445318556939210460917094993512309706812433674499298196274387393132097040166953757317336392406620673366066435460951047803390531981705875771238273780252473499031335004611778877727476072034257314815970711634540909184231751982744277637794025829492137246161424412299249358946143400880938914467003203465218983727289742397437971531983072961242850269656158846639448405567776686058195053148337097686851718630667649597890678887068315052510880215627001700423292565257755357147488071703303840646594213132225602881837518818002778199301674099864410627199825274556959680616423014905837129420328352608681346582068661120881999425608719239598657559906884794479895728471897115760112663523321187199746658400358021813404365355789510224096323064467036239649691027401415384026186040025210407010782659915044971893946376538974233959444780941259644679388105954017706171034931790601028584817942869277680251606346981864876158623370152516023637181787999034379595511508651454025879726423200572504444194331712013746825419070853107215208512693984662801771110264244563807915882495667434928755342215336739800701841459689064069363816415346937335804134862168236281248551962820737251711644710048433926771290470954498217712459973537949895925018192667009919231981513968720392407813173328822740618348993689159625882779434181259782237468233565569661617070377394245553860213043349364007531953398491086996333561330849820046220523794212611273864697734352984061412029335747698542837985073142302960860064583902032668329710664748592802807062228941198468523711846288178252337801817573627386563385765251145897691425173865797681334553312596108921679675992162004777773660173969815700518930556320934768057520823924709307505648653540147096925863324475352400235795142080886099352369049792716495297330731217627022775828058433099277819938043921726811176593651677463485868115239136038172399380436191370870417832458368707326879275915124213279306924936806725671640937958115437410084474318079847981845622953378315920943705859879306743149584212809177146937159988393383659676333285508452144871734987298280228722459721110033706788519570863646932674715906123201811286192207037816689825406153183076538439839566907198048513952994033311865280881232170777351327009709343772864506905524832018864054459121311179044127994901780460651193462138351820079194171186947790208647877508811872244776343972876005334911972357654068682019368086771886415436808009906851236046326960994085099039694836217157071869815680859943192755078361763106352286244358297577723971617124439000785272578744254553882651665801545049441516401692449890426834573456261734020571401179382531553966917865085328616022779776182844821286729462937149110911635104493201078007237074496349256912189049313573617672737075794898819870814803294560802701424574027992891569507497718776325901218558321168332456383246354264136630474420695339068746180487426957308252892854977557044655307253726535449091655058544905009080736081330077728805917621134078127022071577217991846919996476476550010097766017279646966552244526699337699312900316835211790528327287495447512981340250629138109549668572838779529050442889661515542282376017449137351386273975389837428783645708577787917772282941837862509262813945141402838181071249937085703496006797685633696864767208107940134332689922920321079715285432230936878389824978469977558977758416212889666118309718939561805589888734788223858629836061482819706388537663870236997190568879142001500589327815766795541265615324077751183701666268023336345078784136697950895864028584925040484933796171180328045570796932170830887117625919959435644139714952826220987117939305641225493818743814308084727553083891726934629489967863754936115462433363099267699468701922308814839034814606660954452470388376120831651420100763183375893493999620082480099860462830624324904927573357191805826053249355127411073586030225305769820499460021459863975785058321391016158208938102536640432838562215605048187456596545074877137045502581458868787094158414236369582539050044102606727943451061502477228062235096633157361251426679434140746652063534546583922261146323557839399370970262019162213473885624539830201655471462084762972652574642687233863623153135535568166360519035718952446642375866198041144802521990130259589349990701834644312706805990043256138711210450689055750679076762563050384262622513729065225654942654827321349984841605395004718249856560184731449074269196457452658113570265107162387733468833725899778643672591741155701655292484206315218737915952464483195251598063394603742186735024198039034291728820585693526786658158201195876069825239649292348914679443084786574974508366962329607901893079624458748437251749229859571678125574842331673035806137323872079009336336925742457891953867586676113412582471603070894316874964912571672763444303055435879439672798391605502135148333240544829591240121878313403045929441621292750499845016709464849534409152471837782557600293979425014893421463386758834589638702611272977948184530344423147131244078498214846735862732653628625501039736030179463212553543423298346504287829926979525076211766041627496983635949960324349579121030004621920146211722288584413301742909151997456174122142548151012748826300946974835123007217022380251636265424573166829154744421810027776127607297892368258611620666702210658425698166382179841203878410264487735566199629191877992434897623591813120793421262858085245471431809776763721364584043359927672555158766872926818986466457737181567137271273270691744607683702302787924243821403830439878125470062137965560074412906471083531304202892912152146345225675356683968136278189995449676285459172951332462312686271207307031686740866015957099166315864652238874562344964515990749792099459034313921494067984830272254572430514353045490785504685756559850314186308483486501057512449287567182899127645724607259255296433846454729452076411844381790283425846409298456812175616938935965975740429295571529150768297078020239789169692521995691674357951072811013584487803476120458651798666327827480150636490227523192057452153557288024819586565693666305469970629511442206125550456869148032744860281726828102742488640261601893418136540881702751903632798220382703820898351245577903536165344698442851334548386435254810831284998328941817291612083907139068486878921381010367965044352512042221465614364722014989420021438344201240970146623634385827269296108625255251189212907148360456679559516865330531054510197832165741762682855934691871492472425479123271529093087674353283875056316259536391996859258022570941304541646785723973762668711162282093474137383953097453856228395401248478081748766221827151570135695466014514527686148821945134110598019590863768978510290474547665743821518113451025024651282130788257311518251357320827342206955041620563142444929775785418104799619444293639466973981359366911184515777799264350643544477890786688566763655567510133020392064109944674869723800189018577123739333851891151761529179033570357835979595544489785949895424664715432770670827265189437837948064033422143377240478678694063066207205650277370025852374393455794943717575948222394848213090905392311698664096483735068307724944504687929063370538796371011704409037520385264029625703004417508984780077854740069098315941092887358718953394735828847351202477751441528641433301523760202571654663931351516958028866473153834042344370579637648669804291749897294330983715121568619296541976790875435900658851911949101426075596946536884456188099014507149283559365332865878073446563488103298867967164678135738438860393567548126731638346326081522267743361034256279904458071024372908605563941984409751355348193689894438585629536549986258860485713492088747953260910977030346501294040228602836133422350547868311753104804378870682882815000408270466690072446076608132834861647163816967844605155176165371188763515235927858975553158127353916830280196887220255186609054347841455916346645871317346752404232051378466514548485210827433728001348672450682567941253261976165988765239668887392524079984935281412709665420506976947910909196918431017573132250706433908790786086732900306398353516515980007405308268960241703702326706976447029760260469815761395292209643118412199081244329745349697140355250428613898420598735576265543534721231099641807557394304984758358977867534082777525594534690720294929013861369117193813173601646476625497435511923723190337566403995542447783944298351828774246412327916622487261166153119556515318379303744830710564919086376924643039253332818232102651629843824798894081615315260981783582054204757574239190790661089061726333635275358836728525323566999568627018308121674052801800025536899293369386788116744077729916542788044678413562009362975545691518076713312963755314816579909072931041379628475994177907248909988399465812988705098836726884172624560065468114480637174295084587982931253382289570642635558951957479210047487800990674713490817711659702787400484855846184436218804559755361397818771100160012097380658520602274673984321980195069095331623045898291761625860113602182893530594673628712855570420487403580738017522416010536449207270031358736274465470777935266484464080671832023727942014344723474168049821435321906618542992546902783902394693675658550471520114175000886374437528098633553566630531447427801085599461612399029562865316383085174797943117702616621107506672591136795657312610790687425271321020893420430686442656219088980102687881677586333919879360681779680015207386458111864332223002760660979237284918816522192627682090188547803894435603204243307256873460617370232452680436617589619974446116911030486059055319970563600863393574676825493273026102929726522199970137847456683369278196032684120538725039677338741009430233106594985975756289440887494502324471045141157592838543190436560997944177869456505908673727940501810358913300780225183670471294785839325894520337371154096525172614324582136510949286496372790675667757029078810824521987372794038199950249285273634074361722349146013133741882615777539449981758244493738170620495051672294242853747166776178806443475674224096592080380341627847256942682902292521252384858533734791367159246949973608350100908415999161378048415807766179309191594718856909961023256006367965097758829543573818629851803285928477041372436648951461450501920694469100554517531628065330522640076777089331089867475923631142492119647379838595425577854479230575068063861269020901325063079395192221338609185950651259496621115675247703172613236327036342371720466923617527296437171794845104623856042582227382057466941639979217811594135596464692984830670920142577974238009352953076421311879630325003384984642860363407249831285559398096274868244319578185903888755009025913675504375891472026058362137766642009090107059305338719095934833833029991281661449330234883242862780945037445941996227719259121297396187159202084731553469808229179455741106929562277074646829225064076988440475901917347741466498926352361347170216506656059047328036496824398368514816737296969861572310728805030865542054653459983217996813769385218793864713741529934848299188089577576066975496074257348997204999445924747765506558813098857791532212534825426618429008335815330042553324053214212483604361281922172957838444800154600298950501182389646309785607091078801026493793765650947187932258338844608895546152946266400196083891130912856890749524410992955918508708629877492462935098430541631892065189010221083687385076860449558367008844971994147118076441320231950290439872981974058817957555924943246941547994050095786346491078935958277278660074156011277589271569746691856720880461585956897392923464608651825973480987627803273578312282423971491807934995218964891498748911954466018464859793933432798169521734810473007464831253068075519706380791066795589876645300045068524334584450141943807605732159724289332940953577690289281327309503733441374448424049652672649123074576028003390297467260071906965178930568460857048624192192189552950120649938297904522189071154499699379144340897775117026140825840144415357391257526878211204779567643328875396972624473187903295250147526864259374561435487996402355502556241286564188871149563905477942768587250411279911978525278635555326054907754163728187879421667567485785614162304336382407650378801560198809577238048798808776868188531550715521356754582486210745365289042299172215641243296548596040476034010896079300019701881603401870668767349301168067625375834101944939599597517992945290138196724876429435303494038404548902069081145170358019381915900539925385499042811644320959810429725600989398297814280181586790336160128834089182426560769657275476319967224533077566356514988924033280178529096715912155922079660592005166471511308401574719857331559508149313274438609677728968456286694798136503135660944529386858762164723841947266752648279780364616646165460093843200963866510587938358408749636141970634373244074406175963950405430230842045311689261869054774551230814292867131454787249367226271401948058072089560729540266035730001659184622869442970735359279779135141545723636680561351033735941605798693509445930764592536435012949183407465682210680243295447211988604208897044877259785222935514414359586661710840576191296480249689572963361908106473429291580124923341595072790860874734729777928310221170360078554576950931364786905913019289750813682069374766244097973906085819570369479562173390922423568787195448887076554041753864894947001250532659549065911585793127048165934568764771061383451657286356567308144810722413625202977151230115216366436175554153777313531260736738451161060841513583749649991446718312384781726612783229101190230569342678897476884530592788790534903105077614255429962938754841751963997912067148771056699673222538913932234015644585015038358971663177969650337608726334162566515216857077375304022479440398754569309976118475950363021128888392344959267003790422257102806512980545469553211495375827664971867066319707916922605079089218874076177663472692934300002854445172960164718901564120699430998616936685189833401054866295948994656903536055415702937086950368322581323917400113357891228386438186621427639112016762850917015801323940797165867875199335922606774097310151174226890239632200130165011170089640856609159641996020206039985951675993361646087251610537383060830138547011469178633538023410741772497712969498238933474609781466633088906239419319707976848862203944896652185530855371967667509635988051779747261793032691283182674862057809265256529034280190882705901405466374700138330258893616017150154888689359105694404497217202113924564847498885836600119303093340504248190948084678987600382766921817190867696601829782035599207189778042923618366306679457260518896053823472875932823011951586555180178283133565830986137316525935030805823962559082865729213865472195779312243359147323752403786908253602164629481320488457398705136724638246505998731146037622534977822103010145429875113822448213673526737210704666777974242250838584648872949096005218614774771519966024655226069621270620854168787239515997826861207922328864955994712943920009967608462614452966881819111809448899195588147137993148152932958251607601071166249515565937202893034513965776120215825001792716582114749398982521641313983316292159116787863114903503708046729113467566457367760316704471187228697777493720498411552534228368936469948659928163890293333295967050233310631864547159461989211746960440747930112114166497492276966387934136055436280135652188591691916012650170347349219857791215599655450788459028002419792836146886166968729406732657944855141210293316476780504320302389291620949699409462681126884776194192988872830204532548355595645610497507526105244255809386273420635892776828442281295814647347367073622559728294372637748776839928637632345393663445058464032220274973415024875765991021519544839141489452822383268148398051997076559268898315447157695118315551061873006768568040571230783243356862781303169868434085520815414852556772088289519403587858372024544781686346084119703605994692042050223895050999054746225247328128667550756059266570238196798544369738430363475513530101422313185966598355017290912266356068396272443084046523628652842323814234990867660915808115299856731882700013109382157619132965931457997811998234263059141198338941256260215214745561859783940816914555513000175131020838255631736162154590351291061800153799212994811409282642152270031879995958336372414326471243780519752445258629866091397653631205034855196870142616427373944255387041040934011786902848317324446696438392741321758809800049498861502455683932136997226039513159990952783701454801275952792565706687603394301212911978505936574394130654178468202190033810503607149529696827193408249954082421616396553900931007144638876203134913407756275562058777480798439458119495188200713205259403344213400124368874611015102666890106725161058423245264855139823924004357219566830736578634636284713947718760514239870777535371198854467657293463584698847810339146678478547087315150429087424592394613261089291950371011825492318420721043794200626722449362643509595503375838171951054431168732796056753298291613125754356825245646500812280522636814611597532119917066036435974480828856219322673936865606254293822490061995607753330652464844307273487208879767292696814797485326374608211517122721743446121372624336324011843291889863711234758307389741059168181881668955953718239958310915895586515510793911051537159282391972723851893459502417779055151515726497570872428767944097314530204095907691738750096132648370745595341535133134490003875280310133785644191147423502245236200886553420535485956209777634859173787806212255440225925273848307765179996373823009096197593801747525783079615632336266463730838957384671116709275064415747632824210968186670214207763268375526077611108988944964673277534390149108961636184144351402764581222896050603815546531573231035915735922758911349256900935607147977688700731954102283427174875749070918716304762388723409696302534078247465097250027224145260335082791705095244089375733331231982030215416350786778265509321713781712313716114212318124408063309815360743763950265425574723877774795160370760254863489482815303352021941346466963751432715280802910028162934418264108275919524951817369371136515145376975746303550396881557703938983487154988401323876915333088608396152038792659834262724317749276862696354131068465624484349311650896687484469347103405348229548440424944548029015008712091167917658606527872481257977534747880316689003510874585681745497070497359957113398345543688948216100537152614530056399124244539962580313280228578155567533705179614335935483126071990025851110866754290799917035370060643683886576034328421346749363284798134599509524459413666885886365358016564396724558897521380576361590214842158335086871769121384576004437560818745484730537879160685430938408101949720610599381353773087430936080254374618360436914874112722209890114767287794789539517337789411265620467480077129380534584076556161636714032813645067389621785209078922246439167986043804019848760595357572978480805364654179647434163208018815226299727917536184190105725391023526100666128579386128482872115114433121748164404005618360186728632793253969282324260140007259899509705126468119851380702881169297470365138827816180181143146872793323314543151025048027376973590692969718888934545315353695151898759688924675788779434750697095948389187091999856782139078432637031657987840807613470059542315330631356291972347631112370126374371698836456993918020402360170654847410448271684991511973761915708006875431889672294915351919561931247877010488364900343071220216932716448737890748697168890556697893495574826859945388159342379901066924553808660356930934748516271997000837266625946091636911918668340876039816053457187304488378784459945641066194649282790298714485138296622770697710186797262748362345055249868433462175825351994893583892640008216042578581501014868869194413913566869688314459862119923349722584933741055324623722317841154042257919783776260572497686118088856865797980045007436559961684910508497230735345599811561675513166841957334475132922964429136515799663255383479450766103289684869876281724653418103830016943452175880854960747849007567303970474979941243512618421371502775616682736902616881508892134935073218269322806605182315763054160723036713898748377933405015841980710583153109134517143956718801250305988695063116544061961806470807361237675368395022824398752860510511351814191973795694693638681274531652810635038346828357384405514229348007993668210804493606862164600676634483031922495893155954045816949724136805749636567933079196367152569807186187473119745962143444787453875567679230213614859728630338941823745049891769740071428842397668062831729011908574032503385452223540337598944008979329603741205460354384182007632588093628697893595580850949756506799535033458370680057239672681329462140754013128286368823074537737549664487670662370586745285605262876843710312085978307077429889423331966599337067247096895252498544582098143949212079393436556802569455922608937043796808830592173549902808187239423500831667258629898918865217070485809184394517416456009022597384114577622103057688690926001961997563649835723155371164800780419034073499583084414551229428177602152104935813182396627678715737149982841408036881971422738830208745015739858523972510668956996234962835492727345082689120271475257042705061118459464718285320545427233451594086986241199063270746182667956011701275258350864738849204602785712850234784675339031318786296649552070645507689584383918676790667856947756213003776080245180827345252143205516063315040369941548606130675953365971680023592160894781404681853314710609546833691621848065587071341055193617451037101599216136199509708650137780533897593988366937873954822789683336138162870025109398023076921640166695991773931224839082644791280998578064053243409137186218853230491028901137161083086808748672381158597421815653709296744655184929287500406515807192028280529922444162735432238256495251742467157748268961216185256399893656944505583510328185664131997626697439111167780948717936965736903761431922383476655463730888517770884496832380581866104908902147878769073115712614123453649639008426994470802551462468087502320398977365460713304328417053734413903893234842503181688302691387388458847942035579891651177287920689338631682700432147008424675785294166046964037538411912376432743868418340633769086563342469199412844660048651217780432768985518402277518098790110696764581909532313211287890901497686946981263359885419545567175712676678837155763126702761525977769925616437210301084993130354371898992470093957528242987296922410711118009672641573072618623927137157828061141430020171114264825848892720722572122032771300998294999206516489224551883661421595958912823752483606217204449590248575680996915586234438165167146316331004873922932262219431953654657677812098448625420396083011277674528313406762294368841354220939496071825983260013557530996909691637349665597450373805541787929382030075698430766954390311872706744220840025986793092414366290522730548733203749931817038992564161674496493569266521534815077105717773031882845221753638550909028760052076444558521723466926597049347060455327562960679060663231026724420595594961738355220588146676672261525390990922373470014065613975006335694487509687715208483235189794212322592920100695072008942754098085726809450590641548218430923520598808493156199837134863086316081775309934313568261193911313197553117878918315599227750248461596706646640528488092119285325699549573270133662891020185295971510209873181846394428005269519090433002235567601977870530906642648447231165417685422211916748623508214055524163362856193729156026563037485196337983124937125125846685449441793989395036130563585381465349742945202428280473039319639196656867950978121194503715184948395534618570760753296976206042126445050572723736239756574400005188506438255472818396964755953980263000973297590967668112501920350862913964308563802687805424226912067084666956677938084288797590663333851918316580733312886410779699802773881216321646181972297993823279225034392320715570655636931529218829355461902365071690769166585341141620278688145206333435182444586927795980466279701274348819999836714161593004038549093477123216230853924966881367722657236650480074286645066723197281356544204314442205442795569289248165106790636054314227622982051060394683907359874274419025274298058005737842467721405075868932757823896493302953931675436558263682933422786679969086201880895596168898194833665683085048883617646031216687630865949198367526097189379850864296154278013157388422626909720754930123834769332599468506448850358448438659834930060179435497954684711880581531834838854670090003623901656750909851974382608917629705175162644632104682240045354860639954363499876179329543924509327532211671851255361710720256583335435269680085114896326771841394897101579682237123237779981704531349779534409755378224041468783103118732043028771398412667428430830099637565151994256408235324995905280936608017708154802977468046987301844281722489133366907642573498314953015491797186038684886416413668203152784150730160382876090478550704679705102972376240049732679654044375743461492630923299395310213857334039465464313803932847546016682894570398520289897056199050058566331681025424796122497994161923808081718695617683355593082034329171118611940661424593023416858928325402281122375144878383804375333860052459837715219808574847409115965605101261021357390877587448522307072786751026934059525840044387691660888998376929711576754644468668682258216315938415334021845430200445567878616535387790068479648161154614774256766434666786165714321395605805106852492930203486311187697906757373061308658049805399624983088516297448323420918709324865566316859988821807634263361803803309370806856552116308357042659878493962774257427221268652608755377034324279721316247186562181502127210015338143527640446743840817921398524717656064532716663053443606587885020021620083222433975474388465690808482297610959890936151291814324694190177542972016826029260693628677593944130399807004856247227074616381708027260932449104071616943112721693245961346699250726493583327369223637207752705679531859869893932974519234065803202897787347160231747227460805571629448861637690049880287681783446200622032710191351233577036490080845554425576826710914815596736553858259438221951358015637711971679367020622245686348546905987780346589745658447852408819268830922777054604946355615841409745355423947767342753050083936054265338583429240886791409368144232858790092230529152799915905009065192474414170910047708499889030338563394194410486439219020225662877398462669712962868737572216188171278212356334904715499470758868040594632498061324505338954523862725524564400813036863468726841379219379578507749890278243158382732350331096708993301570664195240164048025986195829466611465708789699312666194868191195168899785713826088972016502211515000045916759183141379528429240162630759069281025915047690687227211554583699847244222110127830084214948985427598928757962681408284246202734481156377615885856666062870759798453898588853973591506784666774407355889621176490263887730463122881500824148640352512607007505904268551545873081994483614251750096919881214717769429055846364755781593888066239542018937490840322751020634892328309341028237894088989531725707278146698392546761505090113385627347482282653535901008952817868923851305483370801216375706186876378595480214881006720711402705172446818076076012994222575783785152623729804437548974460375910029399148776753477242411230998381469118795725444744960420094875863210496756226171098065703754579778452875550670681333011940370283684631830050668075306247064752243618574382697783983354212993579342251352034923550310322632422449618848671977535580316521471061995841040622119083596690789796338081213639892843731074315823093529694423351893330134370824326438532789908261497650024662233601347971746464208079836954651332945377557662272524462050785169967201989999340101333507207580771040382655836481700018825204873862694727977686819841244971301436744461773836037845058867731041552138029551148294138196811165301623559891014775948075941177157011650869218541147100498530766154450326362434342050527856128683711788698624228453711227804753731921404895699108618357580954983844456601308474652765120152251640460086388254089210102461583536189885561567954555943415393774502910066121558706401665298168145491504870910453636023369626790074204524510787476711108581603883350490730198454596575431151627225013288264132732720045864750400359753884115085871236676733053671651766723592347410822055662073897145896736124428601318448099009966194185512659140312448268215050509682117223862123115265230071316586542736092478521373501526308736450420970868697527750651953873468375231671703179386470783338125470305674216067595718124481724154900677955395033949743440651101402668832339813840729952577942686050980385710038847224848237875870249233921727160672323783759668280655877905336621109097334341997978443348526532435072253360398719460987064301678895409084338318327380095549056808509279132189616199663626200962269637110459230585985793321394571812184970469239746847119409031628654826727816023346641245867553153722069865707588845615920039276376761595539143811410641071280366418273848570213166476675524075009491137683189196875945945767797550505435913958847686279204416073899438660597048755736032076189399290784732570121893863512434504025611153110615981604106293472125903381033962210769101359206418442727572563624499218841929692845048865571680814766789660936346427193755563009580265716674060696704507005597645239753093566926721347565632231052170979726788201175673384420258585856309958277223767012426195014021412415170170625748239199375731539805651844747814978850715687141423536244332730212268108547082779756822570093257014058836963664043602801865735583944918479033626350155432400879444552885841494511564094270922406588405815702746990628262912354038024579975749327018239144762628671972800674151064615784260870892100884337577739685600881081369285756508018435930996339224874822734697948078406477677577435081064813113854120266818014621696063486386935182283330213466133693279168595030799246911478332513082076691015178579716958660185792729967194005523669049880576522883405403829572329495666610618163109789226399407301157002457628374773576308183798161638119079736031587212198313819620344976981620642398507522832773373258332437288216059788610987355191377855881403729865083817511632667454759408345296967092628169980844889010443639929417133550491721853044413612755372740438019661670623338297380240490629825860951393502749589875052807206731837864730248913057905481562736693420315336593480354522123759323198928884374803732410786208605622462175566914066496560325627015246939470098514711600994089128351947568274832967227217668299349444534067907365525417174886583901039319287413336870559291380027727314775486977554119840138896045288554164615529596730625328830411855501188829841586911577081853736377506071335054326871353825913285097958561423027436039576496067859801089379556543087594553873213235007603007730107917896408379918870861963208679051158891374126204838541157848822039592359433270452459141147350780545504033581903384706481014248689197256381168631933216497629814849539646083874849543969458515257951809116266545236733517450163608333529739655892210921156911978316729184425792575755004030749046664227090664322428513245440807605030997258302179025792182169082377943883480865654516580322492664139624733960511524759583935636607443829936677311897124381434507144263490668336746267965144875760421649004657804566810897623735246630448651394648231966040726712639274053714806002028814119479141742109645063130559424100563987780307683154549550715730058201479251595904602466115178393678560161253240627524204371192506137964850891981909587770580992490842085600103886023943155706409262296585461940599098696476507408909037102041073773228330001943441313189898291146076879347947563792607660871483258647930931942606503765031220789605973721194264580743339322946456217152992869877572374421745243510593701522448697613048297775612559901751454759543095729786727400721774104428762419527057513081889666990390251341804618791396391751999610688039579457814086994355792939886140071141724989460512023152862732692324098027034403935721351903458402887798823381422660989331849667478892669887427451477269584954658077358949663204319684227293905402342069936593465517594644019356968088757365135655273782755845600317812578547257973901689044629670212624861217876626477548370653350285918705939390177804647175942432362408204797958379349852045596799025405159404945477441760839577973686737690585564791827948871367856297647036197192772736875817422061934212158392214716939705250724783165836869092120660602977814422914515406119505865265141288187110649187969794316047996512884740365408399967083236314679272132449362698570740704713058434826329318845440510586619403755873250257315665275392902152362207415301446575930722750888326706370582148843196156531041890179125548457874634053818750561404423146119784513097056545369126825579444878042588295007696823218986262381111072368744992142469150404040031332186682305915435954967189013559031469691373622407761443103122648603764791939267717493540753416257102558871122830098045539403337048732823588397650909521672656474725802054809063989279095949756542290618460679476258129147809703755742924808981654174485509672708892033514269360692215766563468441714251418841300734634211770913388497281568269755648308409133263367172477250081903833257398187374366036429341681541608528746458725565350762115073088506880345696823291535406069272424136126383496243025222734822076674328244625195343816866329833335123189264153753902689802092306902469188086616534259713703199646563655178418522520774003775501336093586141637044909219989129808172359620295384773165945159325457512762182658826965023083274877952126416176015483903845869845831937117209368199083288932591601683152378984175095542145657354244770307986890738854236551194035529997686151218503691185811806196552576296458247439549463884952305229390431920834700408595906247758692673900383856751959635718838147734081913671101305078535558976019724131868873517693888960920970811996086393237611436761070356756751954509856677260928307830333384947896302610290498277851677349656630179240458141888901686110371492187075536854421284230029436184629978447099023892090870282586775997932900240687404128958781800155126238506698352076101525810292220691850589879780761031752744058602314927111485381252502212065908659017820258780104224742644030508149340088935536994215541242794024288330163556008454806114251973600079468367674392891368037545225852503564337492304061188134789864950179120395213927258935188503227479728304555377830648563922152548181723320806672527665964316205418059448070937337627385191779318699473024590811653170846477848979352443357203806146987009232700653873512378118935558807382761431387104773213306585242921769520098652215583227076240478674720185383578343770223504250814245712843756571479689310363418089373299722019185677528387336013394417726381562202849015960447422841069146815777966019357848536075667691643346140295482150176278079402653275401698834354341953169825972572703237672327104388502145755116078107849036727341375685054751283331828168180687923483942357902830465325709099698933929319568594221510427531613778589133026238399572492462565209238098216310022009938517838786291284754647499738084609884915717838740446198137448390687340591284238313992268355061730953776007733441551971134477801136367129304953999001983705760561472107745833441235752258798197320154370849321291768820404507449491093051786970567117701141965616954874695699554579466490245988058182052267828055440063055171620109170645496657728091231282730371179344888819275752509942568057204571560030883512548354531821670031202098881756656024815643339856121033521803122203872454617649277197607561639899925558844824712539754441995752875533816075238289074957943408478409819050499547223491767808998973555428169119866029105054819004663413715557369930816878792785736669646282662826784498376781127049916168005880869983507642972740292518890639492218318736923256039915873045117744833426791251685385329353340557406954661639399223125662373328913082446605159607568186413772904955157885328899061541234378136169948046390831109473541619189442527956102391550363062024648582096751952056686309608898274241602664868431018535792010934148995913294012970080979209338728524506836770635227193756121070552995770056852165473956309340145995070906849439995261099503701149114858356584035694439244018137587295066820507129554209918508765071118127238305255094270970180836733246047964391637119624816712878168808667228632754357219976027958550212499604293420723785566103352134288354032472088407536227477076722657032216145985308480701432711332327955896270335331133019138930987426335720748101442606041221949987395209820431409400117396015001163746493739333742500935967983549598081681749426411617589002974453790246451001157325681153660550492182290718208490667306837347413540876864688036281053463660636396370508400603225944423680684070109041479140807437243253754204529454923205488540944727773308677289572844835199306240623336014894657010295372769319239800791374246128988062094042510718216870035418271782469358852896936838712339508180711265203231606942139435044164221180458659728470198747058770491745236140621664718268422765043098722130253292080624410135651901924297683194184224795323048872227619999813059343435409634087341494009836113799290104049021651980016965345105093201186528895001349855481579764869199753554001996239218303715570495661114074906989061468803162745650430929296856492049391426632560049095467246245060386702779065977825588642987245795155182788954929379136186433549495607479606299394332898956071018500741297402790275983298534453665473738254430506492187558490547253663137453707765892998875453181707580339014469761261208012192364849601319145375873842088703277363104544410317520421681702024924246854339384818323972011733672714375914035732497421907662839518726209487736422890355550709956806448138539121394944076998176571221767587769774137476930080385309241470259267309724342514738979433308220709198444296349368273455599927565430849214500589594985838897219490804800211031010774694575030279867204560296682902433004901958656561523385066010860852470512592510723689039144260448041910688569171156055467655775413133784673435728191355792152125244163426728793514579872623606847687942449245432959375932256803824124308040441517032330354680593025545980840181419388391309913137803951658668856405344250459768630684647038529304228125371288812406383719196825131550640458658212202703344525150024555697185204494271266175570977907652201631409924345624965823463274199966965919096303150772162295973794133044906912354662899976787063964427543970530720101567866765146256209664985206977071028331992535522210179071542554910668909890157143522523208824935483264058254433228993388181433246077620211927635355605540181246640118064490748656792493045753030540635899858103643050669178836044633760072521059307210192292241895322382915890934128228750510980146316239573671434576541180542227401565044111311050586337680869378330384195969453861337328924716025322293697313224937997292800599267556724797579095349634141700203866341961453441828590549528053409997763087934339975978910568604133901260650786125608232043804545448631332510663723910133243023185466526509293911805432574169027595407190841762886773529998642546058514480703245585088002374921985388998257635690469402036938827446681840139984177397803802254291492591957492773178379574501072916189699932883137541980767264918001306438990549637448406914582846426124204961678749190028707996979188534126248108795055420743526441794719404034479651091027244817919032055597758773842727381310581436032811962348249687706680871902988723417289527936418706406948463980108956431535233422900314798101668431369479196147206097308580136150705516651333914433244858694690120492477325571823058188574716991463603187793301384759759861120961707162675773157297613346857048140979691548600125124206029878855353376478465112312928998520040610540065834250345163468563030940509789836252773934123544691012936261701989971395671039397745310096305490105448365702167199187220346357563638244111617093788893854939355612500904793637171542240806103438118860330575561248673326845606941752793440949702599774350146701995027107914478321097845715562188832741071097653063416812979334593467427567072441346943145162167047337673582685317196054281712858870830159316048841492190324363058050330721966018280900940432717917990576993235443881050324067491860691578406289873447376709234225782244945434828081265677173212580402386928936112556530820450653066340561490103696865856206381088416211250724374687218924209263026533476485100648824018753110775238799051914751301701155512593650950277663865604759932677726955347806327049303948934897959809117789256537443265439374227850627165326171004913012764765858878130048084071184414269029062542006789764961699662037240749990183839249623080167971334236069975708749062665937334634933117472389156734441286767762850073286742893474298435416914069489814464185413445247285102226600079613809607527010407727596892661516744436606657917119518927091206931157006078461310486009590279729514654677233831975300392998202306775086147937831034092325166793058858094449717802012406075320584269045332099732793580656207789144551244404825526930353303513359014814445164701717409678054134220952991809060291260715683392766168926744561155320928000933552341934762481168750783337505214486412300469359127245516840949343564359202084008663972887452644764168122243197900574037675204113145935690829486365028866513866718709840191265208719382146104962917716056112413262298472918197350192326469347606735917920473460195021468502042227254990605003905271739830882393469613295460582355961688596144385517732556825720040864066715726142874215865629365346667650305399437264337771175524863334654686617471029474257074711452408406935745933058106647910587257708703941215958349720801434732021667320029592177831146547941567632358090159344983934360311394701960236806436471015526548330332290324948488740174871625554178432345983583131736856741194821648828321983039293782089006668641656356329990025891242536746598742757842445313505681163336650379813616103342876913997790939565375874699178205295126606543587480249531054620790828692382531734870934885092202989974921677075930466511581133383047832465845377999596422451105520528225985513579954331407804687382883091817168865047464734200601615944581759276487831751006154057153340802777001733934869159725448358499570311690890502347900418269611277438910111368249836511243522173294127706038130263418165235751483500779868261068935781083578681115816638025428639454882447431521714465318821226560337168643885527949083722967271505859983902007370435204519621300668261863897112457539798316748358028660902437533659703795530174286017098228525434662822605029782281922967974950706846947014111471827123771794543954247545582317637072002093952480305502486152919425838074644561247566303293621119406438535126173363837578519909303377895635070998487264756328815771858778297353705484562184061665163805211633553595615713655488304023083904849905346402275363505322131262857984748871208797423919712980651571562251453573762296496995785161894725860193048018878841407706427789821115503893404172990784288779139603190909475642774628234645049618558957186727089305050991750825906016230356085410026150659958294094188223171176685610343109409015195560359419762952715191446546570114627356476034166407335530107840661217068804877676582960344592623864758557477341228559099455126197261503356980467429465446524107479989467997846489274548144629270461024277249451728542720251707513725879735089028835651237307514021621311702640482513319750428220989513845528136268841773267008825254317243579889892752698716039884633307640274102072542860753914632056334190051780169548164179493173488781224447251861194100883513137555490494181672864244172188026388165627539857333600411059599433600445109382525788027664814425790955484257632566676861865912705148389804415975502020223084423164817145782010230876136894006217159186369664756680115058939506917948617938811069135739111929119476457163842439850676760927015601387625473877555130821614917863311075676996932639836360199843056398867930350363110146212592618232432920230504873973555103880618396303383920224450218778063418013902925080016547655990603908806917718524407509635151958193085485349436375269314283472601286321556955893475903752173339569860535581813340404683458712039407449236354697080135396702968920564153270576178507436941042162002813859740994458039484371712237808591610625472912894185014337332011394192377699272849879216795704857208482621178953745099590160573191451033015921950477998616399735136343018127076636196256421829613557147414196825197784512923995180948027615779051505299624564676859410800319655247777844310184875368377693048120859493475149575363519083664510383481178383040200872495432943598018399096116144252080810246154834377215900747465469707895682559178102153564440601396893159844515933212019827378778074605279848063188533935925532640568047587139273617127439049444206400176046596009726741995011180194421994703076386808201891521069608033731147927545046918070866330683047177127699388843497520361508386403092367707966596240746653032058855795435358985947775420846585446621311741732136381937611174526719845377107365956594981659688759535272565530522586777874361969955452700888850431275909414330236429519830928170463636710577004082355626345787874785234482399846943780739800388210355197146779367439484397950422615555306393729577597612139082829477616090698661599524434740720825487274741637905412032043763264976757883944911594852617550814823643520144900684490375525495045287112775902440268289660239913812266687287169439142423356907167219748529854906502866938531390027800622281054659491949657677340871738526222585319584765741013650016883548356236992354401223596936006051229704848086706559828336254616249888405808056838747680592416721489925466769707042797594707443992401921713587689294557714824440483700282760938444366726557959205333286363821183436202774646087176456018236920499752142614111949509141365939939598884968732539054561689863096296277455693159627111291389068753371428581683265582291531673412889027734335549344788683553410612823002184662365260252030829905573599629412128403615848769828447672166506050843093323577916341259867252410741162855560887417648349820714209069639040582853918262162289982686959759493805904885753681523517451496466142696587956201997664381005061504180068707658470453477147005963307233577907943767064211961192058242544441864130889629668960333915001324327960992277835339589184662575993194526690242146365986846158650593407148400860403033855263822463815891581183633596643738185621040582013281656985403167355638163019680564587348039675160571644904016838278201603100326068032668396046855898129134031175368012912557689000970360499259145265139775772983468530585536936351824757233378044007504755143509075612721952284629606722106216074612377151537118688504003714786281788426461390580536475028946907239289094722636256621257205691977369329031393413587569782287912428335072502728595632347802504078961201978921641323874369299169139774347271497800996496729789539148727048958122750145899044623890586964294927230354129335323876189211564588764429713638978164132213843945580346265579131440291412501168851998922870799882033327458850878739620195842849169998809625666397846140216095059729972870961243304576253129268156432918037383948191514649529198853619766896498777534700409893333797271594905193918030312440938121636064272059749937430095796162204706746117408573410974428749024072224071920084911858181518124276338523114088091933869905247375517969791533483698607788473417923759000206964547789804654420961655824545657572601098292794621201603586459098001214611081297486526766493775485550163800936391440387470440680741730711149120395595564763786368725212586641996518155272682610249104716189727921996372881405772954371894830012920612558250088095864823435031158427250447144179924088583160443635426313119988381503447473273977326572582918374248682532213362019148473697626755507600478474750713026331527914424648458310542617927325595978995021636498056801672170239863642215138491367894696651895996369818952892920910915814558041583029638779178693541218300409986888887076505606757845234883714489299580313972269250026344239337293778361219989460046080519291815736507140605213243665711748651865109586655317669933181738303448325237239280960676905236851464558272384358920906669573835462780112429104142056474580713944479048166588098158783472998391031027522874694740469677382116151097247127560918182160321327115448287990220915809954467179102398577577600759370662369931528510617800162228001306895034828243805988974280780978633732375367387515639962500202688917156087205681980381321592713346498607978324698826325052172467732321585052767727690807395180206332392022289351307434265978605937025106926387895048939556321921166611355155598132690575754094401663689426009267552040653336553951459594430336472986972522461302873983497304830196186945556575297910677872775472113472308106665122026618370236590083531181275297824104741768120054732854088244838854668374142336505912599422868792294835077262714575470462006165094003489129260399554319578326832004035426871828068254965253831583532577307988741429846387393058843241116758545328754899971955023003383521326423565271107017507937488068307856033254146019433209677063749357415395330037478839909900702531462965980415264558977993948764754107248509319276032948979171741362137841981035068496164039387135610981878533506494822506753456264515252977403298927537561691817485375550733716370480511310820927684935994530695581210082285314541817055339623762767685236462658936773733428035587857812808211157430619791553712435643547688811631808683393775827893152246419954930016978447909000797664761987833614645661921975754528302389984112801986210384988301577437087384108280801447372876668190323709674289419709340243364458161318074772282133775375992468949488568872590487141814602376469599508013866043470594351749860090523183122013945918488907530401736869961254394667213996723140303493622862701101830211066751111569744130936944850884308639209469638005567006340478765610370824098048678842658505599647762752933451721794819545507384938113304238594644463901683723440199071880860774745846502332455205724897116515037354612483953355037071663354695583359220890033148110931050356252415751554607393244446202438951629450718397676169870974697327731850083632859062863381325773471767970860082863657847710142436557087371372940575360685199619901423261535191218781832403826601040993227680387025182826899050139287494337547628268055926443806446358529156983797510240859940571555962016906118060638530479462781011636883711150185564208324098816256980545241961108050107591342574231162743886126499208689264393552121508479061673596495341792033572993192298700945731199911697842268853665105393723073414833627765946108202750720135484799053771977521102080214881391072844348389583374523960791312644616573885318211704659936653431264959034724197008910572073105140310031420016078368342775492638478125557268114790797901786907065870634749514416252532134659135416115937735427112748784426401032091386953545141751045683594010162267754683709086779176383299513414680468895693528680453620097557985880107544175928524296410275443941749831975845436916715453758318798583064671534276462601661707365201502412509413289171747243577279364230528420491538431367186886237867006886699026954982422348265355688667764379757582173536817241785261396212923528146510190330402029598086319943328122202989858917413312941254825530968687233116292184678213100262026568569686333898603114906825151840653582620284920369110801300451065828997688939862230200298730202666823959834337214834359411418680094410242394805971295162152859580318258362458840738919247171307562713626974288333595200543374022971689775651438500239796312208322968868544151807687575048509919864160038519290649018781843282607380365794153750889224733309128902329783915701654709899025909633775625832771152197699012720654276736343144359633866983789906914273142987712102809813540389905181965902575287171101772553598109188971805969066534622525599610871060290385068261037365951903659809459038756802348958120983781845663284751012262558117615391139727878696566364760387833095845869521297413602123039262307275831620171532709809176029470213889754474404764535418138440232395192710500836541126144987477629576646131529273040826246467017087921767316215590235210339715859547058024228382702797149401860222887247744951501920484063908977847063936837638424702769184371401132639953490553916092843649937862708149230848515856910453657203421411183827241925996098440307151328839084613953670714121052722050610253405101940294074975957452717492953907938586063863227169758830913157754808342730845003458209437567851176238291813322850072395652673288180902382192834149414495655428426022137905886102004188339197317863254722606967863498146897954811292456491956275748589910851167660235201086703572062410419111398965080563101776254467899402821164892062993099395041626919363285250565907122368264291345975000114381266244639619402922612493139664600821783860242226340290988260707141310134022518229251811450745324961179827809809090405986688873946543453374152928352732068452037422867061801875774419308457568459008304866895218185054620583640072765206482316024479229457650350271610240236048276091892925914186544310797306158572168975813014599779416671685835670145627974813776287791201997077337600915488505485437349191072444887826850797672742474988775037169509964568506621052359813315597357709655906404999570137621979292143842319021934015133733714638856997560257526096919920416796982308783513389340972127413617967133318021610655335147840122718050005605899625441087429177105963861488871216534202742021940010898234916321433410966455236456415744254761628061499486226281979471209953326569288357570768742314825654762139665761587018860883087352063421381805508095387106264331097921834012391015587323449789928640434008566433244035520634294570835086745978222019072043491820981652741547556192053287163770669883912653893258830090785933097325279803007139032546111667906126220914849586424631374604742928512122584090588471531943843113310747680446329529101441178853360841472418307882287955388926542866644843467401260175278300532377950471739461989498412658617883899732766773092597723637251124093693571530993445334363159572110004778061319562566494190266100292052756670249815648374796640972093861428742821806717729444668642296989806010450055271820474193533036594764842861974188173599121091811051783171735572336204876797734979795164258297228610893435015799839631133567144207775122452215944588812353931831789842776790776195747512520272576345924105999269154185950946053770947153664423368160345377494478203803147994524854190241582254730780105109221383043888730097415958976243928516827241735402495335256497883617447651981462148737973733502013899631749840480314174733112535768108772820544027530157949921224822818831585990321764218085761179589830507631045793941516754013599164596088966112035636072409926071387687035353083602313716182758794943707880262354513499947100575161658408314018141609641484855569557304840323932205248542084091772149915796670505394094970913094260358442410735665967515059412976505726814953177565470672315031304636084548358457214462467208837762651946049230729108575517180870401192629859967437399667039842997856292449157836794560501938232289199784202291438461928771033981179532791964008706484999927364161019298282836441987022831823536960133729526964003143205504271571656300347801719246420651854607568110387948042645886919236548593033626064402769482209740683542342439780194853171920260633603021898499877395705143192427941574283714669171775653622153838039556125883362532556198988813839413151905940783614415697879733902202666436676056612603417723852733817170074654328762267357799173442064014595759856058119852043609907487862010633095050398949713531747581834943611833358525756392124646558514617733143009987470829349366305014653167457492149127422582208884946092094232114334628251716078318242748223680631197587626810722779638741191448120760796135398449987832458778085584707914035804032279332157013895936581773539678475775385919860590770257149851997929188620717554066504414367406195975690246107524513634966072493582493815286236865926413923632758445954235165302660337023066455584086230656244569711087919783006102976488461105742426529547417648662520787040049090179046710359849647006034864761711029493672651497009872703284799059993478928185130602369007493095737937181386951682139546812959146498623414918326207550263876824895095674867632026469345517551029281824983911964679091823935241871555252286326831894208769977596787361174983485889930089824631185447842241011310191145821330652805811241230053589649036369265243691936406940486516075632836894857192461337719895892533652652570482026720647698022098371415108748082727121455265654004946322613711755652255785578543862048439727451281124698930395385132755720873858613633284515498099912162217608194229832953752884308497481526598950959603170767549866453741376304678326072883851651589828190598366244240984123976754338199564138877339025561910404340709254058733122719515004390733257007402291089271063985702642339450723016625621780326505250808879203903983023905630409308301813017261457073083950018428619529012573812442180643661159699702227693367937704896765160022948925518417169030129907212012965013335062700714227663549741111999219819664698709566640066532421003947145178129100001780324540645368945014739497490056690622425714606805692549462264794670488663628935046253209784701286810903059627837913196010909078160372575988890915668049431931958905969736237831810429437253396100728725746329776748022624482511578553027500586014154190875372211315288767244349548893937126811823576507975737559186226095475879390068550537922635207130175199884858141373912082390955291049480886320773452653449560697377315653885478357543068230985809033063451846343524211935900991772519327329122989298239984803314307134208898676864918317664827645516485097831831275719666859409654673991686667380311428772560547672156667644589756821784995803697938800350918275358548373510238035096603225525565991415554441736919449621569243311265081247949877523397160098964043204516324156612432501455034316605675360644354019814710729774780115502323050776586429235572979795505513976023219507014587792644147392121187155759311788108567349467436775790869700486860076104855396740093966826692529948537691346709983406583106232213642074997103676648809063665818289088678365447656052399611687466435038854549657939336678299942212390575467578961132002146388875142770428485161410379085362672854329928261900912400426930018423089741947233718827707653645996344376750730597244890946843733502536860175083172039515236001787907322728885243637033300444409278129059345368663141470104659341883474689282629988236301306013766926988217798851721245414573378488230382467191665951105174632431279031560874148860708155483110213254013356868540558834310188708893876139373250234088079659382014804830316448112317620154024345025897217767005259876857529110799488761703346812320199323113219287434184661259987018174656117914611868926837025201652991198988874948829242061696496543089442346341753064626206632041270524790465222259474852629882180166510377391520956925717676051391512907908330630891313846707678071360829899189944905399843274940243889710601762751648654324350417468217404772053579072978819030064762179565605159378531746997543678504299622806859383605835065216371814375812035946389801353857890087538637799944252751397164285764558538815095998654259961111212635252183537375408938382994071476719479556565333810335609209165135879604317564521490021087374521940701660790742117146389209287184760160902492319110422671510290601789567464238340951983591142408642645711070748530076249802206736383779844598841477515071622932192031026050055150907697894319437834821122313171976968730832874683832939868019319165370266382003482464988882800995308021917638041975946273043423705049816862663146331381992449951350409336852132648622166261430456380155416702997567018107991459837143013400320349765295216438577834202480497460481356556278767001411676453276570915946987857471095170775617589719547014691405289876238634466607521691840515292037064341671434458101488124590410883667693696301612214043030796233418792780707414554309612195098803307323271225143074674379294908470001118157872176047256284368744402999903490723523364779561482607275430475073383579416952085411858141421163366331884361393046086404438120305008737474074303519812587955651210154379618540181768351639553142978892109793350644218922063827926017080859661513409231014455095980500497093334182603462822266136524578624368933828748180808311663214088601896279333796917967023892600395108849232222624879146995246944822132220716228187633754117440717644082563597774910049844113158664565521693479469938534589527648029861584022640999942100043342064493941644651586082274972790568046591058023199814041816664689710703815899178259905244379416476766531363703816495568807841719706669088818711189296355409708944935083808672087408738589167828057846463873013356329005608175565705186898351828853855818941876184643188554188353220558655149196084013505109130429643867372670176920946256840482169559422438162836317605490729939838290187707137864821959627958273728438493021076517011141209712718951367781133634522511943256406092909203989203031142869311029961628971574165135312265097656638725415021881894576960633826540252017462748433137865936683535892728894413722271223237303189976271218756359030552405933440680406716588549910892233951031852280400316307779313938878812426373994576617350578045486470971336561226910545268032335170946578223513263471197754156648001216476189153839445438270741357110988027382524358192945270638724302898388786237397269948101909956476339872677974381882407864696372061345750204043865140481454084863722948089187495333684538332918569261160013609052698074850778808097199220790549384644912998116044510512482015768134230369758459793135250764991726718978359204624413558353968020439011298808208487927059939845208151455527716045554509166391086146598101094364855299583415894050113221759189182274078858545057370754171980793576571347642256640078552027123596498418147809185247540517829859835871945090092645620322145679360032009803658914036592480297059704238934014178494089834058894208281375410845327194765940157849180879884127867128834697304445346330011340784244697467610052163252314696074617972352275188891136610847282504473338769880899788249617457143265389593198919380945373562006977956600732920737598787739533401224262824638117604665529549327760151654443398797796575964213036484953802973362973405409536566027156662095624204018972541002690308873068859675832363484860800313674933788046988108179243487055585861260443351113415506834721028038863079884248647959934426910709807053082895065139289872456094740899115049915932660761263981350418642126839879243828106390190244271673507646240245768175241297734377047211534086168041782949967650685806251274752995065595324988186611187221699214720955606547552197614550491099906975684236752153392973559712252757150876656596645027191717820529388510936944721032791299729978949595372179654148220468484710797133152924225658106596490768857512128315157570089156883907751592339497055571554396120342875806175188670398308678334081013481683943703392193419742431633468771675540102879059518554697024410748369099885315922357683605018587567855736374585771484106340133489759087774905833455397705795352135901682664773827250855655781354887635988320027857706316422404683951616571696563311771164541224971808621652553084508026356189132604359629200964032384354637212951594753702934135578205609103465031482793614106566034544208285371600231136681319091964102873049208500417437038337446281046462094277696378558093427578759878418333403996601935420267148826128194886255395043815153360888198352817494735425296130520588989474529789819276536230214649271640863202923565929941917524547761440843060223793185676064830394341621875362704147497613963842986391528708311459385176684853692245247913397018567966189810070204722123318045419230799439221508991833972212946648542669182478057987878265388133877917479992986271645433393042460911284741410076110542008971258536672836314860898634346456934102417486756764886499932016760769139511745616303273744980446090780906403046763494443155886989737215023060224087689628089967772008295400972862196936979990856286378189206873431243425191257166586084885331322342618432605583673517357559462474494240918913520207424891718440223182667020736467686101862473648492758014735888129615711645307777309918790610298886287149302046792275251671037080716394391237431679286682193444622476572604070545998596828789594818122960996644984189543550512697462222284055821601781563848932415629429410235472447440652982759565085230803988104176753109539450829566866700980596803972387830710888730991670839909866670302161465717224784085226233338425720816810073396534603214984320697266393091865149254801370103838705478495805692390809071470146803194411882916774100108676071463670346097016587747938619865572514916032126199719973803490164842267544912596739312397990074831055385068661830482906443355681392530449017556754977224586553701311488545214557527650034001289474274223755834032167742658602941502854059595734178734907098015908582653022046578069213686344182383358550580440690789048769469523016824226895303019503849045740947723785841308094244812638676254526179071856678494915944757525890432985971556253916870664050033869114702527528774632307639477366220502124317111976697554070733311267595581143076643508377661383937418821198728140243019592577233992497745653599173737048234552569017468386181605906850252368717229255820454717814319918580749491682119101061410175466753076202891546321342918722601569145323392446783536092923925956317992477364265588541429930289457142976436732322262923602401555030564320283705186440270320700941330893074078971459341135466306263658728571889770055691796392094089540494967577669166831282615198053868579516388745693396126973669872220449857426520785733934500552182495973648387278103946120544515637979612030291659476574699341543271014074745772892654422996600802191430751632012114712233628868911003141982697620811610237200462099132116432607069198868028640972266780902380740359354214499157461979683557148136771420102843682700410344318799421436138119770538705702515776750087453539287747201965450490621594472377056510619675999908569487775939149115942015050991367741964053191223539274975510275226212593290315929202063227431563163988355989476949127802825984508358367998620353352020685460559216786552835764981566953231585885723872988882219155944803787090891648567299072137386053604371214396169103856951761602847570707412208855744548038615549299960111090089529305615092834665028803983155291889086590281766493385503602113010042614046121856202729086358517057052077500603308295180906193350336573369268872311459864004662237348473629802877988102147101924585493748777453115962897925405501780747491964778406746552790393195565813896692543928611681270286078016492471757947690040713838418710229217335189894076408089714318830892216393659687537987014204003784913012750100361893552864648042380140726687789499470242525139568329366720126727746887603228486942873013499735546344984108290399024614311248528848255524681487627399427149890898964065884653827774882015498940055948650851084658197861933024860833800725503537057526726162627120895748385707810716790396321406114798575892731652066513874141839901415240806942716415312484146575073671621014372856615067280484820945901214115397057048462215390455053205451408649083481693367506628520708504476168704764247062925198421823405671193175977385071213843566161200541291487091099968133185503456755250273948056094553333242616500497427369923689595571203234581644450618398094463681201084189262133146656721599470819817686659148832682318546016554172883453416704493091663748465689767634231201898326438391034187584136241967457994649202221979834593056563692756849359777671093103041411307312539564248638501455500757943604266544947470225968985102663374383018153260704636104120350698291007740247523365758424349259806781961067661254989366947457932038348011891804623993440204860547400539729198870648908353273846254259781523770165393409066396161418136993626227242206373381984306775264803874177190613456070869512882942134188943261411559837419843096506180799248248599557473975865979178350016251247911768205661124568789795467228944116120724622182150361118719603867594046340815340520931954899452801363923920455820705023281591771107908638599432662526833708351622186279069635134610001892728789722396733421122488552537949623348050174564571416968863601005387174928821497469289625347403249065911079477469955016629027142984650883917957439011915442316633387279050548931573371400843033387711793984550288105152253878558588527678672465468225260139414212638002515110525362020285088336811671179131453518274582690793621433828736367147855025406183150742638171351310767393576500651872257966213558484525199814004650496644293694462643253534227048108735843865153165747836934943817561843938910192099339207935917302351336134333617409378894332436367662102057520640498600339476261177306597900717338435086119046672830919191405487618249035409603611171758738428295310712978874130067815729007187202852534737368305268388208851900652888992067114141756148218048590301612699363022004245730365450630834445212718140481106462655021833491808728134317000593894546477780717800755411594479566368752313028096856384976646741642397940380978024006822393043975148776185510146807492444313049368424027979663806970107218594446946675695263158838285262613400278056513954164726797847201873928734317431956342714686128687031868026805130778331133364970514243458619433993760383134891953616522198571734006026268164233315262753256152699866044674282100016307871335675641760570610365397244034349964075523914459700042488278070090182478520476973060681827286895011123040202596546463916882653440624513894380086858263099263707383047836303898086010994899412575125614015344638442370874909562441301959987563891046520966754587766008659039521526930724947593463765524999573981368704682383578222135022751562771743922399554134549014307806588887145132813370761485025768523236382933147428059668809646209984224762074394269002794291723758974789327985624247296590853215947205332369490434027966266307402731316432230471242896578160810904602256804488197247067993494893743915075505173557882736746630113365128062806763873894435107340477854284494581032402153026889267092892734321622288665308079172552536648253192224860467190401188149796691897238390489921449906378342247258297448757138716393766038353195822125838995005317567009552936485078884042900036232460798510809447041187766965698527002242365421484082307424965912899096508885363087254327321514159891816287567811307051625685105581512671359344832178026783508960472580054261710332895188363891032447371674832059178733650962829745596943462409255652816656642813369025930758740440023467313737677792486726102625840368808169386094183043542160512328994311377533910651173174257919038774427555774666030406620099040630426051492029870431846013273895090998152703064336944690410044571202235451171011328756403959370242331710298393490082072739036495979673246070117441657434325499611780691764675964746879791515572781516247306058334526364851289816778469808818991132100393955511186968360232676578194608392777588773560940755982917754280861145433013950045524655124291004911372885966068671895355711890373330064908975683351650049482437502013368515728499636967464259149536037394115496098234431435109320221809709359780329549759598895081104350136062164200304054253525182009155876233217544217588085941929940166160003634391015340094039861381614185296591895827468622176004007540224052349144874115414450603504256362329696036597208236492559421476520771374574795122002325330757727354406667254606385566002002468570446003727540392329608743253281392448927596263699974608198030761215869443681254346476005823451709865886875789643460227054800708379004133051417219265941576156879115019134029748585051714860817315609739898187117889639975438593851481271228565920278693528607609610014500468628214330810028800342379908031603885040608297629418230827838086035227249810236770590604646347730952402490251187179864243391902530458957320390858507871952255017770376521626642185281981740507340026663725152809340520811671011269698677937225985693349519432693201259024230765182777135271884472532778020551144835864447823011547118441835229325114932572698861749122603284020727778843300201824351288952626434850401801176692189400301384623039255957312898153724381695307731589478556460254890123359844526030584211078366417704984380422727756181463614970822052978940468419642105195952976344279449380087623752745873654043686032392568120396815397806203184411751734063549646449468864312900565992397103980260552719134441217649315767012502328215868291339917094347218601990614994727041937223244811365777364784334202259996962798552988234835813451982181425675924349886313315764355498522016187470094484862457290141545591894888707730437495867207924838385743401098250062896166079971094418369987478443956767929238886241602443690271546527600224939349036905471674482965770830739242100152832723379609356923990338824465601298007919176430314202194237399396437444250881398720311047330446839944062988196979371975773532541936499970332980309505730194490517681341165244535932990515291198614709570353745265578742451856888960135130446546702707588099460903301835695366013279171879444954101560343692286480222247044767586960903220968422563613405634836829717434394913450350154562712113070691281968263867332213184044441497703738450944461754830545368993606820580388987724741195238929242163746784562498542798503144932995331585543002766715402629626516695809146078810174714306991744199865847329040165535665857626308050241495588477533489852364672238934163656532479436451005902522586321364641258499846796161843552340352324721110521226636091573602713021329448208976614103780709193655802622181784957122075851190422878000874592867736276332300969043780313708952520766671757271829986143936555118371669223725419466798082166668111039566043933750372807554514848068166043674678943264045371156658637505315120812713275492053068222000525692985014308858791838338588827226166775683455460042038732166503756308540835999973834420318792535151098838338539003290965874054873988529729683799722936601292312307160205509733930936050345903955144350530779986167924716144327074762450851301978973869927099332578952464554750676366826464527152552254333880535483627391626239252966766458754894673447577273356013838273729005393896656592230598571048482774398049720583821115538200989209661369468931771991114747170373374826981059627061291313996060882187721485255788982496057151197409955071399286692015456583834310142603080858688493271922984158950926435718314092471047051845128758699884109287359028743120393437627985164110324412262926311001109691495544503094533576921409803315676548064212577277675625253662101808506368182957928716083982340214720353625982063645520085231280580032671686683448151104637370484997348399072102721190358008843242221164334445080022597795281797172269973237438645179469844576480639489491833438525180428786932632752902447890475937940428598452749922277972100023891121548938382391382872989931731194761739061150447827928769110237647550252257173219481814737063013088417889819598162999541083390244410692706737595956997119535930938496110286574076506367694490893018558649870372897272343345722492789153260922324770228772629642491769808030278236217239379885400503625715548875361008901145686498282437678150512482820550492067614725271465218966300496885795997677522593974060305110289858039626218819712821705192632230895174681586477249400663476252399854173196026161036924195715977601971694902399328727439746588043656593649688016852863977515522475999764941859502680405006409698435113073797110441197918005746465493078021521252981008731406046947356590646892418148391263600007362471055648198258938088745764536277429937681358765419179735722961270008929684713696493683678963525182303891310399263375859652579616496449908909552435508658902553027859907755325901273060023553112413722883395464048657778331615768298615178650924137474237208870130880543952259278853023943092165956490984077060959426129628247967788111335332629528747975409878835566787900429195451576744148678404482363922335095660072754793914016971072318582441279892338820023779406397575365725162501335163672644359159774750611925713016230090937345100474527618016380709677370094376805966714229413589600824755383245974803932060796044905017692070585123672619845895683093796806254340250957462165951887975505779654919550494928671233251337556738716057356380028942990248851218801240568679236189247556048248749553282638731464641642059885385147743343317259129731711974000426498722243810614211032749924136371337547432406296672518156579138643702562024303964790489005044298526244657566236218820854094942368505732727377622836552938642131946178526062604999062547968847458530441305937394727793077535078193557627344106921558940727573628596944966388909215851327061017106149797620538570852812095752763294985766777194759352152421676877868173437055674237402436509635179971533020571431114640135864028290245151732610767169202252500633762431074161787476243110180290133180972231123824004466527025579134333864823384782408364150914263032146655473661759625616966594331206659851276704614504355650567632319272380345140253542128096185364065860659568650090054298405004609354853062062677047658456432303555796213970401284145071551329589154551669286582783894033915299223882332902538885726058492433074205048077496581896610609181058545419793248020379655682803999261459692054638058771364903148774404809112742816548241917457211102449742316156169247547908473075166326609819523795676463876788253431508822081795667477147068016351059647568318898324971204609208556997133757414465046934783022432710038421476879322142485713565646283401032424128263276542081608944807016915495419078899085838997387070670154166653384195835071697145193419203744574382051040777729732736083932416374562858922413376538636749550495430566377084345083651770046466463815328674448226290496018468605036883440776084482397002567762132357213772691392393095925237942205667698370439260789034826737347545283328576599177610125695553501926205517993980215710312414311453023069858987010303589421288523151506444142065284953493622024421560328509445445462874140740184508573337343507763059426122501925255325129918634214765821403830797952738737610527302639241822426415421509064600988318441525643072600146861460116194913024036693824750171418942259202080670774549157595384542378138860870217866424786028682455382570607007852827332226510563344566490874361582295226450690960831695617260526525349150207041380219034005701788311831237419981786872388251010597475120234906541684015733501431783733524819386198287179971086117048195607925864281956197702496700421100095380047388039200472454678730906292796860054268202283888668402908313352076886505277918656290128921312403151147840465000757126177971158769600362591788995845532035287764184783978631665070737509669088361316739147668310680483001761136059412558390261849754766696217285340358592190345237671511643133726006710559414359332135805934319651546323178338090818578233195716802322563645435465739653891585126961726835665295452993366536165073980298734018388646124416365174666669893892482737826454263142720386501175530970761558733454310267608916815162421264870580775063592788200735717780569088816079843345659706100924240360984178262541720215278830719157976674288514505877381337614484000839126439568917135693227613352816047973256116480024364781339419493919981444634503389773048307901722189787611415267584913782767136404814522241700976380245927541667269859014203411158804515183793647076944899216519582332638281683336325513023426351694440084457734264891932074127715509564322610386891038570095852192162848418489882732686554704236675275075298431229087305419839504408942021416678082196809827976707749289849712423880933541449510829425629732782669230041011618064786854216339301274558922324247867491607615769541168830213454217159658460908480197196494872285422924913322695771899106521926823520973428529362798860921167917076294858474961499783598343087200700477102185689744126172310910355862262499468390249780248231061077389080430317290598477045224303210033049575696595575909808971877355132748296339886457187784691064035564489612527351448682310530027781884310676814363488368688151979359194805864518378586597310271207805878176828347642204580417485465272557925932127542209355067091521746074186345010479544484728043228759042785327989258645322429852338633257207854943441007130491816007509571981783809560002874758275571459591214237982410344201199042980008348466798477917366763391675598123307360449981783300027146207947153962607424019051778269682879307334273726355455968205132147577968851655215785638215061003757442106878698175908797231054718785979450934163531730971342755736848046549368460858932795193878054835351838457955127888971075385264812591819795227144673148897830668144129480904387647541720328836793153948731927842820614083782111123855185925737202642344646616985206338453406008552668716999882546853183684501164335422424676631974561346008496308560574537359030332058584604742117198315800728930013561157562071742314893304796447468064963812931642923523581139029669949468001450688385729504988003174294755623676743764994243612959018878163634223194934072584973173897184738742749355098506472696968441265206780502194204287610736288893858850387324568556438816578846280988661820320357823033380099305913007233341323450960259737460520043570998600298145509578462832001513573592546027351596756441636530112264712786403244824007737996917646650602387339665635679340398356568072219654048851193224882054279809129711007700450022775461206617166915591398097656598227169631737132380233081894643812813486645249599544573599602734037495319810341373545859961495498360917612628539530787384570759463293037148822519303817175115438350026708995826545263811037252548877439260135406025221454919816995798737164535132550990520879677994407822530807758169956027111277585448684402760529394514288800290953802848541101226157784149158140774999841496292240198891308317859666915388229009946947450247844902571367356972639792830403286063454681985901480867741408921089040105765750311041922161494187431458784761367147739183053531438322669545383299223940456133606017821411886509292207929496640912160035905115388056492162705446419123651890820653277589199738922293901200268232222369773672330039382172367465305265074391406830947473212603208840098990148026780199482685855351480657053914005769345471367320387577245130697596060567953900372658461138451132306458337250580531679344725994305521750085317786363398194721774384983941664621448550518877066168902788747419777507278594616784819648879238392429701230219526438487691711692941913676453989753022131894427468986445119523361135808699525657384995132272344858932311386797831195178438771350648230787048299803447155070141882053104142668229481600816095024682359788933239467695015594757502235926020424722638494100311367044097453658610308012059308927527610728526394257529284362186377642535427818993064800665696367275161697181990722601937571168925947974476124876288821798650136747507500638323479883964977400488412357566686571614215831108473609139345000273200513079812815702225616906552683303083665638141347007081942216648482210415934349190820405640859522403880037807349261650300231717999314825929118003774744659501565939981386238692869062652382061233623674596407209835077011082990790280690341091750963573145618231904447704954866187160692280303501373595224123316964183487990807480804086899822172755131619587809677521653989830962034894093683856539421196123081021103471051742416434655171920779277138529506026751864243969265536723344784100681455951149036782838817570535380038946002769070563127023230141413066316801746797335097254146260959957881594107278065966542285301608309809482798087779954151330634185197787230301266392253999559413949621100419546078252067442508032881805033938921875652444516995541376477841671637307558479723386593926352240182260803169276708468269071288406191974911765628699969084970730823375647797687484667530526919298507928036681821437679607305087380808301446429759825417007864397304961083418619696619596322018403591635634118435818598205141363191530912517440662404939092451358851907627068893662709905594646893766800692046828363046250164021027437917854480248512861821612512114570003573467406925367903689095025923989154817162254182524520806003906004061554058929077320687309580061749971920364712097884192446667092044497498748240886590526693588948775257516401354367423792014530722023535768345446812068659513932726355927699659957377744110379091071568358658465622085862107139549354539122567328062952751900754940904896394388806425455707262211593631243949164597256491018425754082200472288884663451280304483190178400740116764773956154364713952355819997693590108417752197336203083262576165968411936614585331142075321195292766971704206705185984249976283460412316390812279089005602391472762547230446561373891934829119845493060944629450961591153675525286261059127121220414468417749781863050111297400394111935081890835733329055114407430444467585330390819867745858706466753105873320444866438195473708480984019014571108015111144466295074606523305173459452577257589307863700719576792849542202391372656825993183849635737174554050387357805408322354286682509834074246191721241065928405281116620092328296030172136384928510477358529839208709892631698435885742206374457995610541443705248822335802675674609925440227768400935931817775078576733453207311853083797369573820246047450096045240556006415683554046864181064155915986925744890303471460863686842071415295195399688863994416298501262198265478995063129214796056471849993133924449529728833783355225306656081139111557599979071382892418373574090519324118083275321057583443407862876642948811335953007811514259578279640928378127631674688525323298028567924732045320938542101580714740180947946116048627767867343775751143759233304925499457206276842336439469327017336108444018756535693160788031270156774329211095460374669864630589643299619579908391638851073583655397358685803947562940402286352096347217039450470385257108531336244754542001052596712178357874633359416592323562570393312801881979934876980850885387379015678885924959933804104507095668197806890979130475312701446911990817138057938235367271579787439956478915490640769381923678366723218190582136399034973143981196742174048660691965065868831513483401876813467904264395573859006548375807152818128951074144096045017043965485359053827804348135830772445160037860973737431472179402649530772942955247321642858586419313390462255573142876790225334478786885637977093220704754382447137072108172807262161922034516766385698542146002937106613178446743494946034274590970779402571198873753139912381326000956320636823628583078987415322744621275917935463121492158563100688909580778060593728283740660451733814756940668968790744643728903240457174689316227991526076700874957946365529810800605632053593234614913221150818691711550065566655477454978755929060742276192490131286777580134210840162883087292122615776509522101508044663744032978226504795848394929088091378349110527018915866659781539522433630203819430779722100749295291901417577525169929771479350013718996448891152064736296676121821839308489926024600418991546699738521967567293096434216988980634192953311166015202689067552639251081017259294741159705724670208362379144576573076310550469479661341506294987476166418457078238555743704747405720187095339272312325000336576544182150162660235171847267215331210750964015851018981377491426545299866692087088903694910230493046303417508983514679902569728765115044510267583560834962773334541439538796196861122862718377702626499995437897566186384522424473949249215054851012216707555240510210387330028459361318458442786733823142617697356364270842120283188436738192834713195087173122191012031672114110939589992288467480174165676099378781968770763447597018787011536350704268062034322219624818967910905627992687206315734435950789785292306967195110433305566783849538409612527795838910548796848486208679717493008452144359425346200112410842665667586897808277627684013469829419295802033057400474913978971059122642210407325578913140477467095216337310954671071478824347469732253620897184341401689515209329372895796179900974531322807631818289943318969568953047237039953890583965748355015081947010033649460754156809390948275449981181003115143112437162060285082116771605290150303839981778749861963500489080522089690682794915503815722397466511442040712132800560653624460196857385732581380945079434740660360543591168103854745541390100521085682696417436459269757301112314276156916406438293041441912580970015014762604508430299473977704434060255848315518370986210437182444909324499909412396968072735574990974754392902557984797093482190328085059102331850565958856934103697521787966167710423049423523510863007281287132147932780402066461426230078561408403259834892557120851189853822385136209728791951877465064186101050110001523921401988115501033319067153914966127363813534906201898801186062648881416943529275130201207444850693949715656963700528104436457965400855804416248425718544837208664333866575252285810948289217257839158191476913646032684476202255833788430706626820136562567060429166096739937396333725598175402369018835353007990159396724928774572310017813388850629426776845236106426208547207080605367376268476687684621043656625525457715582096848955125604270948386990045370602363886713679104249114919963014756467260027940693936292085268041593916556942831013701721500246134125553880321201748024661994057160259811420538497330990958586477131121900577851682135465676925436958683955395922697911981510567862427873863559696351596525780100887775161394859476530289336591762402297065783698536071100495347567572284079338746963969820527548854138638091280465567957867380247796245580749357238874918172010300891988993237953392756249295143063917541756523620565537533747840354751434991801696242127730575175317271408992841799710543799766469304839985765697038891618026889482866498396473822403052368385787917654987361628471601522751105553564227093034129063412140503747065387611044057631277677687955828396936068797492992473055757014507128648776037216713666399647951681218150895635932214508085348626452441380423193763653355274835333215583412888866477801396224946024358430223059175741552754477847166515158060159683143469938602241167033961033143444142152378121270529004152968328358142745720548076341739976854032114278702709946582145669614204935860051783203074959984999453677596390154433298372959877021587984045304241723688539565431132491280016688614321335901814598815345115649693087226879981544016379036258474494027676223140583830246323278355589704912287637551609935228638759482647092345489660404395528296934963273296194539263412540443583064912727969941442577153786602121596283848008077648600684421195128428111186065633816275879668504679093930302438194147134504446109962381417080458893859796343824476120094314750139145110290353458464233986653377503403288751178445621701907008268753712348942548452679529059672899114162168717207252789541303662531312161687184002908491401088247419290331003958533280903056898161959584146403500881838354477661617640834335657628291603652785505334292017344423999912982156065639233096831232606113498474590475348175724793522899893500943495075396373482891154711017298440790711638488229884179218542831749857560164435622264612259464028308647766387359459884245047099086787716750091393003821175198111842564994499619250193938047253373994593337731252524630640434299251006362772644042522129335363983888712558650282148393519537829121923251329550479427077479817573069098139817583642674915675638034024163503008997458846644559510526377303887533487344021772585481657032600335620490417735579097347598439475995845429765463674121075351507013851212617101709438816386818003253445607801138931545723258763168759141418393365682229624660091462055145978337911564647926663543627823302548582197820709974731091603511064700974874000731522287664739629127786218446835550020204307191420072846279018318639787025702772268782391036972445486411058889166911105922029444932943627035413309880526880087934617095630484602882766011907089407300282006643598669430991288386695237929866628178898427269704888604473767609420261537717791790967751278719747104408091559906791907723417208080859904286004545456751422771384737823411005311824430632388715284408626875660506972347847736219620237658441103372159043811894698293130692861159856453139893139948999833404400924228379125175552174621891287605139468988472677187466504785270664362574831916908491537125880541454036326747869539649103724005746130220293199503101987750602880237975002552157499644642453349885915909369543958084528045004936639830563782254105626241683217301132374663650818321551390498019391996251482034852336035202979892243773111150091658570103260035364444751774246989158935734705658751497625632680396958169694903975994610639763432305422721308762466857346704606223493784199198380130993928023652274191986054264249711792282050370537587427136667271485530946080779629080935838546546834984036355521684570343035006341023502853487766353047125068844087232667590565579334784591133212607890192869809935963677578312895726970428837993551303926951240589199844906046319277629905646039476875652776188987807508202115485364253791970754729071126344281360599281191735709921525555198027605603718090518902071857735055523271391396250159427253930237186445017661783595005367424528353346296600400846807272853318083527248634331602064968738739216160955927770747209186383619128575571939484457227933909841306594059996512638479997333289827244713523630011731945879729854695574966414860678319364121215726453407658070668960253185401478248747972806312019166738072237763920872324754210132174021931705246883119566130365670703052191237861779392569076272238477050523927062222837494238143061034403779823821088774143963139015107082031275456607954643371353459928062871969469725559248762340560859976025423380535602919869909560761373682770704428667046412247405699674920985983836128293650677449802452216780957009937928110107393230867893546477556514877507479466500875692695049132556126428060059883949951551625764082779816057275574439612018147497800451321782129786374375109974767337631313444066932216989790648141522459605796036374929385390580458098260355681952893952216695741564220430366437229914696760438644194213013675900169324226934913049246702707782481845523113461103453489273315060001230285383342303638247155025551368745632166936656044414642455569818231927411945082796887046941767029660195074502498516529806186805463813475251438433278991996092710858122008935766222569799359869922149925464717682101276519959597824700501422174754586194296039239459092882841814687748419136141898738281264835534324101696493465526295345563461708335109501680694022867505677634457147413217775167306207782187706492244447520828000983425570457784919191688417677178688630332126895491976457394075370098837140048702542926032963877928754377069560437339990100294852638150032628997285511301036985819326744885052228421918054554082277475276074653898905064374798169834717774907610376006282890619457639678129928802002759672944986154770652047321954189029670858378060569502688599152022861683177931813811133700846648282316429401940350166748929939240870575647942513199958612783309735265384335938416752475309684246977819186243437711155992528282731329513697878214074254516312686452327578082174391542146889435909773181565802205796404419421225370147991892788537903377743287340955117413783520191979152796500139386884855693747482161292716729572785638473863246938584052924674904022413438951883238010793146018342916216331965737001597942739004500063841651314517655908597002647003221302219852249741391577952987929096349728985117601811374469220942531031313834496135599318178835441647145038785547166597698246724797440311660606198912250415690904476466245712836382061667427564702775968974627841810514767013580425903857530620365729378401649166948271359285692735430676917886700049220273231626404070255027956209349621622733861948681106084493589560178708588313384417288763890931537407240007280253256276428402648656501968697974430425922584958047417922792534005525247449502340839265617239093094230060936630323480202108678868089659181684792736833014327146956844570493654212738523641976274894176037602975201615359389448762202357391354683427259462829509057651431942095955160726127413535983319184123578419642134288725668738970843831141046585600376882203246308656515410799296469046577706523795053459602461494020615605448430643787299452582262636091970063423456958121081018804294851368286739852132534519851986806527920161753896561841182522425296893463498323878626573832248821467182212392161452163325275670017042893990524654825877851241251856125788689455531665497546430475350319035590232143812858179275339840124608238907170546058359605867719902183465283057186827751076250665370945298883021196273029318588927084757014856899852966505733847103862059963894320941335957796447699221415378655112464853794392540736219275246848238284997312571864576555150869582415134979815701743782733663799343065090606498092983863033353942502182256638127320974354662244588764349940735538863587706720633681111322942298365405268821561270245962885723548264218314546143319125458331181255979147364840129146862219867375818977195188232785208093327828052850343881380195284554650513932469026911560267684358544393507628566726126650839453589830932080370010789324365829155080132238129887146480913564402924712524410024525254450802324615782206358687167110556932854380162468346196749237552277513105100126776057643879915719948597065176021389146406317350223384643458394835435027981902728797303202850846884019875949870378146179668646287546670399896304248334225490492446701329392472583236231531199712398944621765884271933825466621610382140069902302774264438571417574587943978979594815804972905977772621874827919154213901567104042498796038383987308071550425303932011381726233669143418847662675503258634492672941635544061641605812600689785048902465409536738448508044199481231522643777835892801077052872357981319176422544079026297752232994316244056822824048979585862042095903016753077009841255041439517370577205755550817551260179018120073513341772372476220812000860440795123951426598964340376424506082959966615608890385710684640291412717376571513488794464268910769410895310119099929995630930905035222777233262914701401786445146353118738378495543882500856927308783947452874920176886447311783104110199160063149881892999061015277816870842162138183955707918405119806759776959987531377577268878910886459165446898313347423547929805191092151468307163238553510387271875446767082952974905345953765259319251659451479336850638167973478663688327078954395966772983270966800627905395999829457773168238326073880180654102514617216288678835870661909367729796642225593369082458671032121453015761406563848832046204655115731003310627177636632725355105114011372947974242341799659537348942142140023658440811338831976175255058900924545313775605884224762865238760627246990302126704707809451241471629495570270401899866663201798423005507008440753327962569991771876542652570331254951397086494471914527294488305094601841529556251474040952579800990146338379776902129394085310248856156735060633863492368448950752823340100752025828306207113719059426781552141092186057054209610307132937255536822579473558746256777651645331092982287602837922593025131851658133770605209210865756174301233428908469922349735151163142174525426713978924805002517223209082124574110776116353591686046523764118520831045560051390958949873097070872311142547023121673320381085480920178739148793448883726854568921487783039001654774176228126058072835541533136900793139630006376970200762535050726123344151011142807093681940223698999130824742465401270194011322299993204833287467135538349457963583689928862329043972258449381710772590580394971625950663691604242881282548386971596653055474254354559734332016501747169426140864138038046659532238806099596893049398139891441778108044017768041263118730703803284078136515237865950551008740358384973781723210016623052721994787990743605742314099283345866153030265910880284894388262719286059268854625261181150655431439186047386383201495201419924016510173976740922604325484294565925858177689977165202674986419890749336425882430300822991408842303703349200032109476423574937082515388359612855402857151199968412130951329760106062238446785330430360528332459477151752110913218469296890135992039906751746663771754089316263526915922316675852838151330957335182944234019485759992887571589611373525007335299446864517727781072935550662001116627864068458347421220153546184274562778139563100350380090185222039972627590546827269914375360065865512634531653422399403325698761990327001829322904538021646980531553098829533761896730953445713037712859925458180227261374655690582259578692098980461167400939173233575445142418155942790416484050121752751116222484137648793952894876891106208346787576323688199506508172349368185004920139539693115045084063183316979565001151633008378271107497728604641519331149777186200581721183571765889164635570184488733065674121671104599185285061221968011073225482951877407666997960230384720072533276005946786952679051431952573547714111157306283794871723879901011073719703379511138790244228576611951347093824055168672986987094588552809896555090500583947977681636213599589645466936774116795236559330196254317145982816376377348304158535288710628200928673451317867057905586242287769770380335867189664400760452105077801090263740143632780046286289324312169848956969268126996557009611629781048808333226401158444986578869198915511649877595008201165471079495476162725359744314069895014347915521487018052440688805318244505486151055750824583348306015305152714103401346158717620493273768228117936382237726367695089960600576457607434908380867249533034011936473642216403187735017426283830918160337130530819470054814566633422929439437912961361179742997959789822201838204339375151390081879567578084988196711699577981480046861111020299855976962841938868761232745152462773308044657336954636549384040081977760970663913237654253918686820356685427661932684390288591996788147248350231950588774756415910641899124069125309416312561954109543530881464234340833160970495044930981167353983129373553934118732008867086710676292802662313136660983836430756156824337100324761286608742139189356752130595062633620498264655008206650187746333184048109653726939935499250846093222363891818790058724923861078321577979026003556222664391725444460628932945945429583100156730055075437247426211846516371207702459968277475890212707746082328108777465643762205089221176286259492333732230679917615024643599135638162060740858439742513315938986338310272411438507532080538973380115912508795623407291394530386270706817801468194772402893961722164417584863020451648879583761092985067605371677640104122787817955001823319726057461761188377946845473203989183811701977866220808018101648347143140329254503142495220082111433074466401362422531925987509157512173913243296534940120953928653470846315882150495516801442870649484831563843727263048169479579203556684457786382972288953534411852061006954504177044547449259708669886360993447006199388647273449927912722231658528362329253648259342107355249952854844231273220467471078064243669958423852863743227324420182834397340003224185901923803059005872229289610551499388306141350064936910473902129154397749453605108064872080131190490223110707230770624283391952893722091148778390879044959631522298968270822053048965601639594558607553522222159573834959609286492041366112049876816520941632691258940484528222903607027727550910423476071510260847037204995330735661652016080315883563879622431208900709419217345047787877409407146870679225942590522751818094928229533182148904042084393337728589025366508426327725814394860195937648754924471152085966166588308595533616071705852042479775057905952120494899134627373339351797353749095540180502086242529471556100879915414706965354572999224070932580384255389746776351480895187698836463589425494284220731203645100502716078039833613170002276335732205805047209990128777689353375985741664585200763921687804857367539294950338409822939797065831425555392829591922969806877722796639729390777908217851732476108735564189670849418232302926913249449134037576977880000852120689948851950118704243081970477677656477051666007382064988485717104832272345711925918065271167048969229098580751536275170955052842903922436500482488074481318574364656698445218053666467548379873567916422013296190351708641479733715775410615161742404449579958031556111579103087313472099035301894999465821929921964771056882282986141014201946390542328584438171240836332265624325123838594776356730120676441085014753981446342859310494968693638264004641625964695149031961110485447759191706584392706760240031145212717647083332009417568873875947770632409980920684630534774332419452200217630004662282023808277804197794933893918898522440855068666909872615099934327559421951361489460327548540028247463818557430386722484814571204128940220014152688477096246122211499922887643919191089940007645004267363603359564464427081897852741770774513395840957604462114327655989257121246407049760606889475217788884675365773130888483170413084708302811779259466701208771841286594199018778750963200281102375514363561230486554615329882829990461745177485814776012313343417313877109055770936706573655020317579004306722930314450241991977428096762212425199286327402583704007529728174354804106393450637326750684346881838874833235411216634188042412330340349096757794165377908412586879828861032352788573321553381519883058804585315346904313089809636940664181370415485931496667115981308994408254571535523006525082284961728723967465082519004532455823574868772006674794971216360282085235430278386536117112453214864879424132133170085231543372774607680663766996188951228804910891117659551573649847388606952471668475237514464152133654892467276122585393614841651438581869173841675434827813176631429116937855646181716609663402912720536530254447638306533550451146415224708651212131290099900196815169592152430391022949696439063552199065139432163036534539747151573501445915609700314795373825072228643267911802228545445051006686838264972907481325848087102088749505142696429373925813677184169065452156108761573780205352795800446849136136917468253717280353678435036189012457777583386467700487187551541811503714129454911427269687720886195290311000652148060479389430426121125047463622256753934768192222192006351687668258215068279880160735706110805557861686704947486404202700061440097794418761478549764582395624980544495512570910640270832390814460092511777876520638039371357117644763292216214126564837394710745132290507372055423326208635230121119230099328216475364369237906325033568253135543303478962915330449231153809199575553294498705280190335116740752763665598147220612180438573003072978792173568500012562331806742598872401099689698138523973061919559283369486119032394925359441583659581613839121854119515199265507043722245110633671266896256727586677388238790791336450938651172201396285944786544296218326678451700202781884192400936490366272357443728744856331087287895845848235250820156274220792392203392045082819462261529184460706197582285213387796963236786401331304109955645374774064577757684903513791673253218265004401500646241636404631178277966053575667603716137442026691617218914299163923048497382542894221998545478689482567054577120830606966401517547011398438289931933635228885729811548286913596032428511636219222076679819006388404842715260865907155370497185933522605711810415045793473539632763998872325606368960841031544136421487826119285418384995743044276868385145914918918742400661902831447985922644596334799531028630278018311500893000765762808870776888556671136106186168996249963879937029113619500621550959100266394298058423177896496506627565297834415149733882552363364465203622013216280321350049361959750702691727832370138371576432302888101329633287393824573874624509689508223833084417619240847605102724686019144743039151080377748192387105291127959055174988229390755127440803641693282921255378008849192870285467542546669735739705365362454007222398956201306760481133915634972776056714496409064045114809482486851179621640442806897195762975356223618168885002728569433652880013184412121411238983851952785119481467901665284068838218695868306612959039774599056148703612289809841138200615859142471286229860041718906453010082032794088580385760890512269876008642460648269485048618629651722184875183556528814663127523768706746675269172441672973545695673316677184928439431385995773850485061097313805782920944994446323943060687595811900386026190492109839871969933647463311406629451114715205569480402798735824309185973826397713404114160166237752693577223614775634790555275216648241460998148628132876631187524107417432987436275385045777742542057576627393156984043856772914383783590182351736877088048034374286323665907452288539522835778681347219537660500846861989626330050330936040997822291481514752577183795281384891568049192181238360412271358296116497247108026125459205952486511422783391156497546662744867185218756181629471196471380668777153608541786941838614660748536539552580901696623778000065583681884719769824445873229844530886990299337887795265719728089915979394193436752271866343782907936824440320624639601866990497231903150243625040813055353383065316109237895273339143697925936907286974042623404247587033791700221492583435241015718645398347845451758922412361367352913626017121554410849303321644230075969711058854695869571172632037985137192940144871195015371587916332125383079389694412746892273986101183720851428693197150286469098732848172073873815201591163794512301010196666203644541295629190355481051912534387131600152412478550452245480417085800974416436084037596380188386074895352662695035328164809681679448801761593992935630643145711148351667475654627759421672537822961337952004829042288165999567050760734870429085908499684909529491046326851763652246317013487998937688779842092948512962785230159883015336126834299177661463925494770519302050031055605493677633916328395389557886997769714313544610132496189019170570120182066702116577665414605136853434511733028437410975267518355759247185151889091689894865760416453321241702808114846759077301327254794609415509728678967187961801220443350296879621964404832788637996040983882536293823039583969837394961017123582184217743974270364691125810751594526635546467514367886879782290229559947715764306712652597185561511035747661042096417841247683015840339793601121187811200823174503714075700409271083743540108919934594983756706127409717699213954110952101250839813654956204515024366843113398973858736113065124745242321542571509170983114140086026489053937071277441244066907683167085424057300361178690524323205442682356865003270303065015077480473870024026729241448002051530677327019111454898739634929248920628971290478304492685380028314875358105997056148380692737300968661098886378902955732473773218392968237265964099999476679557605307182161869394599277816445253696965812245009356458994432191727916867639855789253996966098824872270586902492001784902712148635395532805946828846993357856689685299143803410528336938389808106541631250749494609447408886469083652165710685290293790114001017104187582043926198243372615611135685841730762865206310031274971446997819103881992609016646179754069102972565847469045071925244946583352764174639951788616905673265931633412458545178258082449007188501785142887176672083115995559292672621178256119044595069348961757228325071147520441276776575050868936709803366686786798668095854516356450456700098282130467124423758025533584949678345502763107561618567611024200622908622178680112434591564775661362731079617325234681409070011050097945863457244190266200577367179046123274420853797609726268687700946422725868500716364595723606381633847494349975206543190488268758253505156910742713458684179456955827177098027528168620203131954435974916468654922876308046662143131853417398650352264519025805451724237931971335479894431301843024011898085682842876356115113592545051759006609029317534197237037316626763104552677057284108266195395396768023500467639232238198895390409926916785915668921976462053713869576979999088841317689151137434627023755761356023595321292951339330688041066225809559753015227590711430726120998040611204959544702529022458298103260460366610790784614562477180721220945378224379608920847836988153399857843835847623311114552944993163589565451707434941008645637568236524522552890279717199986729963816213783471325388298076612871462553478352971463013937978843229852958454395196768038647708119996215817080944398958038250707113582707983347809856610300809248363340106643785171705008672856057256658249006303816659250276035940142072432533503290715340643720991049554417219296172851893187876675409135877109975306839422832961708480658343497111814009227825302615934813947551736035584089426644749330958461998620681292484299900690495309560199167359270034227705807777257942989192483507500026253575382687483236342276724808711441393032576445162636301415773729913585526476183106154750550543500397887915345327702159604456635703067706610019201793214017147969716738469733339707056058598922830925312952649427953618367607928799401770860176084753039347911247886123969453298233627503274176462432178205058631210032808102535309052281121335769067348278937719290836686403502827994706248624768867044020859538534724137046928259372275289596415597499167757872687009614379339091219386991136301973189710945603730161110976662442440018178065055572462339859256865538611682612704334070095180088689713989492131948076545616095446512264314966934969743616983961687411240926925087916495101225186752483635616057123486384689279645666764984846476716504656126699086548540370528105028232541582319648245828614979004180345759695865716578935991202692404754468625626567071441627711432070572623204570586425486485386428718325923588272100501781925910321862102525429061064196493219738482292467214508802767736310025106146589875281845672592050079006099263317935029302633914975478998055915983874072282012111603184744607313092642236057201406831874074143684735669302813859684496367816355466904575253185482659911617918864750699221326838807888021781507987526270959165282807676731436874076260554027715833284666790562252441503160456864894181125999979503530707283995418800406218376904052860463782206835537443655485694778361506263598993634787027909030997462772184241100176482159012705671182087668782275764676994285411305424284697967712936556371908112434752499188941044238998876558149098163133828344398678830561422069948656437056345681695102097143423812653705290231148917416269759846890675493815136882312553178553493746115050458035667819443184768513482917267953046515495980756411689982379368626545225447682319382165559881689756544989847223360804023621521263789857002732047970983507338475588088526560046011136366410695357973449086862143285777692977138838668754917368355359148530578245719109983029831395137570525256209580954017897695413946151720261764966079521063305486458118903323277535560804209288079548131044308314254117564693796449370088051788439064650598699529934562288497813679005684246906689823480376722839141414639383441970505255527456615243070311689399586409521846800689011361913009089342682782883757056395195330125180182350049293106972725805703196643197756434141864919570951944115202257960157942174332998712495398481643215884016823180156768220588903344340576906238372620605419470830269886808831940015177925067757175174593722384717722050820930704159311736220200038813060788840091117739664188836733320446529646445934419768596428126244512562577886323153831909565428679230834512402761688835965251028829254701745885087785467432335413143581398900523422703880060771431783425266802996652515958052673968256629757854112732459999634827193710570217727679088300584907363364013164799368378780942754761608277906353980263547708948992177734451897291008461649056912644584004920708308526064556605541887941017689160277283372571529263391248090560002823379201775264068935118044977919973237802038054845153464214411215740926117175317752534252312656527895654799495249996613418668561137172657535761612467563936363465852902198835935831392192491393418642454135934428166038405794303405858305951612584120866417970404500557090151031427979014579958567197456136453537244757325971762416221665609815477651079243328459730350221418019104377848724061746812837199614628391664253480309667240241178483790511869883383917902679307649564913279665781977169564574759333133134262607748971367197005879051641105756086803903926865826348706345405515763139861676381077414451225941285507544942159529485739898630568471553514877119332279431038600662876069707269223883921101042205418231418783870028474888838905667506331222092051480787061361084283744060089044614667973715826272029111684229324748247891789685877780597760941818644316340028850264536445513550671213401188690785557499410205012020584369359438338431421187984966957966712318296941911718158049435257952406018375850997934371130880264021542881644344306720286303061244985371567180909678367412752020111345413499839171117253538517021424306732100031441372887105544078958247023764904752320309705960620761202742331730176569032003677492694227330322757762751700794150691302352338229522938042374299195531100137570087357404896049301491001310514828563869984292941736475578552941533379493920244023171942716029023127159436936461304778015704697510260615433560235322727132552378164940552536518894649839034517885744396354358013434976027147384385511984781089286682294577257535978429545434990952690776186980501260973242575667396516641860943350384149618387370350938070380101695366304616092407294362211337355372256317992452086818271670641961004506900017835172681539217865847481240698829943944692847539212047696704008917516980044735013401137800552105630498825434932067996417341838113208226066190871983360217148256562393710727708004426030257864375469141406467379988133306274980434048844433937285851420929071406931327851505346968127345232046363566630091702633597632388614244380188240491008510158252293256556727930099661715167571103702279090057724322645193485395815336762018043079066346938595228276348528073739266954153406812865943469956911804724376608938315621924386564103131340589115080721932867391688323814944776071992081035475388423453896732654849684408063510671575237120307503288768536916612388601773535404009108803958927512100254971669370797871866429220140145588245623424144670313230350128103244201632163057653771387099052725968494087829811861525888492527218603289522182402628298323270081763455612997145774658378547242967461824664384902978653007763159379196442547839488282680655017633162340101463270947259720188233353881335302545653904634831051730084970426153736764062033013790647873873712146452555336583558282531298690853960026366890725505682714100041735228984821717599940268074649141888703063814711532964678955931808651223026636997204711317478634905277669414273422723279580870002598280525801378538783200311808721509846232270743162776152941280404273173876699769554819153808427735709328137376056176693707288061211955806890081599398264876451200332178564869843209063760256299992888973076124774122838326961611075164891522825064454626830641722718033834317376581971246395144787832000935133331865522233895566025164708101900224467477939875010877461626988940950281310748569751286370900657719141437702967548562314383251595038525173136644265502859810576418370704824060732078711770552954530969818351972929411541825195835308336347495599789876319942510417438087738564230771733254051976361123906352198949174390525500247755923939446107776141318676550924068922230286443171562375620553253594758883418841103183260566160857078012412132972749166000048992747414021583437012481574191298877094711693311104113046464573198787106957011354876601684723955558088729089717469122036925118972468059171125745739439114565180610608056378653089578477353911887809522439697800184582364439544824465655627892290237229846083255470549406822187880347317899183416054026859967487218008132077885533824305278895252897097708026085078817526844197474750300894424270027730324729381969579912766676269025359762295246233268788313894840039368170446872185101395713247675408223230437822817504981212218492381106072004410173724029200225719476280314994515478334470303346453163731315274916269277287196580757976562490296241213427394749494996058045828871922218243736016280861644682942178448664330819416549098050350619393537344184449884818559504965026322264508622520870983941795161372926156316664116379086259966195848326953820640610268251704049489883857919242168650982917047583952932601194431057299970094882000646282506414298088578461198438509317434993315875405684618443087248169038284969445491491211283899174426980355442566720592375940150852875841205623818670543118901668180971789190221229351887427909219551551808886890313447708457777145492835784529617248746573332043166606413022240780940992408614861966164617915731781241135208581516991824554105441256762164334410701735120323683692247023947522319864680946657670084414776271127818203706739477302725271299203114384513520199463470898105814668173287078775610244204807475308420410443016348726332678834504450244842310917755167367076052841051752145229349324802842648388484690020994452862646418420347221657095686434779811103662204260528403203412153418624039613679265397630572391767808239419738793739699311857904544687873150027991647682588517407844000561270342803131241594006256008060316896796077526780558515844477375732040986866150895683261795987193471910824256221882689002334105397189176036305647134218859359916610040431195689986685470952963076078686347518088766821399004676927370948474866326257852632299652649029047557265564262817106736122779326818851162138242414638514198006184825602021620796477460122499966967228685245060285138006176482634185967083763616017717878758478721135242571274834527649231762646257436709226621130773355520568338605430705415874024492900357561116555571699857931310006819332853800182877747232509141158198505769545095128707200576522663427177149957535199423758520108327557255910134198306611780920840327015963024197359149660681090192953878864962912091547913184092762346231311444102527801585364435130263119592438461455078334368713210905114872712309587577971222071836071360236141627933630276200661513014317558424364472527128448286083347674941120679990018473193190469613014178604322552671008309502966151612339140072324812740694337484813194585701844194851954609071396254069592655653623192382949857221286126450946391949541107269221906175681772129328239509816329423697312472408434620676415165837242952236930174326841387410209413223159043112309008559178089809863981147242343125977273072587496545079884608503649403556360642136024636725029758258821423970906963894751585219601005670875761743422200688184018678289640797134211987989424200542623226391091608083282217206238321815660095637661311507035253943137043847640671257073659863704705747299557705633292492870667671578426397484164818987464420627326291809186345695140821112621118307784231880550483902301823855961986897258663753836854851880890027567239148796757475871447704496390596664763884055513983208511051808694673344214696438893651987429294500796357933677630658354791344094374984874917811052595293494608869603961792375636352705682866323356938754782849604914955943558112337629627949110896272845630669590312923738949873906464548234526530112459709369166368198429401975703961105018093963707677695746134167365949186840715979940977492129514475364355705104049071822680477534689219219223966559889264013833854256494287750824045655818033979875280750093213251659556264896843264720950845726942676196203246524253611380812855410809861388993231752761000593682748189193057268792705270668165094738441124135225224621640589669773776626694722306047925937658904054510890872719669296026156460569223470830776597249422251734490049588103258711734985129334074828896282286845140658705958220885463566222379692684577270800624286247083910001271322746693291077595784116055523253942755096006076083705334480806961357479866100345694290504874288654158520571824749343029266450201290152285085761374552109727391108825404901954679022537325594370109330222334353367924791554865089056103150920105329770033114909933191441582540393767103856151258970841315151528321798116250944078384463599269824851477998262383671542281850696667162662017616097056709486112509359420925767250273704083583389316097505678303544284000039700202864233335323800308367275769471670632072715632881451354026654528053705616337565756556156045683973582112723349302665713737615780888148416954606951892450897761458277305644711560367234013737512391133422213509952010356177643077090804473048268999177976468760034480364441486413463468999507845551020302988863338483281810726992000889828571936841389153981116763523701359960477679432735219462494183398303417727528719732165352397478366615988300018701354800725499677948156412225073198207773749493693405159261512147252409133124328535226609509917886242062147076181444365168205906693702697284844303506025219140497755126145044657256971231595797642958217968313207204976676286570471311714659716899414141941558552792132916553410803586453942360439763461695335289846339014437097710317188526335297860098669308669843526393418436970318857439062865471068519080023824792265970669579691292282779776008111989619170518765770471548040762342014690147470123007236720063747941465248848800218697254454637056860047232674220196980822142277847213930550996393066658835120573420953623270683351905374323509642416928024349246375291319682400703838920994682079708205085530265060841729064678943292489042266623714939148718520453336050928192722002667835450900672192934483571874004864525843619500945520255338530150193608275455081483677629431734666870183989663273687066717388978381705851435561662657530589349283799568837156619051174693401985358752506727461577175427929766541124306616885792146630482653762362917863634478732060481168564451331963377597452108914206426210773371687162905791090473783763999340317610132958656601786861508413202599439184688026600919412070156736705275210446025424647662225537968562211299822221366194969278051234613589388009378700644588895530093096780802205671222911732449621946663360850150959491680911944318831887557272880726049204842257269502347772736256681742643079240727324305549238831405486394592952167346120593473310812267074435854430639051354861245846923527729555959508163391240344880846155748316511028056596912604738220096242987861895952287301938329285962799349844728509583416182154386610869136544064259089115896981298974427147086063734408895081120792563243439121604867098037269298223248558249957089431108637654840373752138369775403725350930868402408318659218947543425465681993319202869736416876380780559427264909405431860868835870623993038093248937760639588088169278821723284010080077874468552849300953561681336987821881319879609157078006065875120413681055150138991407216054540732098424457112407869027529556371764996922732097345339032749384224697177560429121963794004392913939936963834312381057271231601654623818608034169377923236080648416685167008845800707990539901913898692886788685012546791682529572979509077814007758372919595259230778985290095374969314464885604201830724836681645348889006164184872131401761979206738425388528296023984285540130893392381411757012080830155418887191011712203543960412588136888048929394096629476679405622656481939225363716863010600798228698905371847071955248636144245298398605497226673813992712323269791352678194750815424751582595707182151747793330838053854225259358687900112017697150694846872323977569602190530277291344179895332845717225695951393984500808185505028461731209346332389767439668678411629825366441222235054206323638997861301160460642764252472119953879776525470989913875733370958754446068818103330791592335169400268050996900920168136950287589393771494933112157241590212362251549726987858042362441274878998655931459382697569314305549817950653144186683273288195130275199567217538237057152252291788997389839063017399172994785964732882451480573157662397274681272069283546859972049158200654932142637378536537776577631054256491563772800189810994441267947276921150956072802362828488060198203017705573603550343134769074127602842407027856245018676049368092179666630506285791925690321609215503829815738436504956833388199142037563207628943768460247661039435202294481010140411684096352222244652669840429640253001700640703723317193522076178313500357425684523102015448618474112946240496328898364055154538023000657624314766841533398052677981987237595528463455943508759753081225407831152856459138266985406198907598592026853727923008414753034616218457484881555487518028075008701148602056630051107952626218165099970462460938200305624610355311040342287433668786969896589571460526360133947402955027742886004823589976160326074985704712218455866713227141006978846958171262714993858982858592146253686919607865356133568450075766467433310863247115800710250863570422004275510279692222982886795051603903278422738873811183032977329682416042683236925334343948056151302774756556422435386312834139392655972966202638496945337587293946902596287388740148807094633806597996983165111929088025119256028581730499108412164179968432523640204120266603390613564414013138932212028730629445326131983133356541252058211952929321494053648823003371378130699337526267525734272054718259851934397122847549742322825404076626173085591797748712629887002266741047470611468698028702735148198879330690780405185216982872231913175583775553832930641934332767058711857276687145649647500467923706677199070691387000871163039442974822989518150941074191583828498300089051563374997092344581268411890557203901380937449267263259914733455221666514058384741593179377470138831092920729725748072689274863625450102261803654579949694183630518520334858306138860891537475768145068904830504743231041756725444567867754056535324624426384501125401588113376287922791445769993245490207100571938902433231581806774444726672317664560768234838627921390923872430415110888337404826020756447675776852313457857843464984582933624074648014159794645214350928554441465662367260070571074429471480899305462524615053954667294574547752230988593834922732118140121819937289727478363913024222954228322658127299397886975817429336440054623339798479236619185224022625456201012629622742562381753005177632863755395427686041957675848786829356580164847516468108506725307386935018654431860678211748070671023860613289732571244782397944323926851468558707175932678693358768547160344896167761171634129966733645058979211075460183012363336069114496418838793412184219493537874996652379751539176305915964610347152121465642747239185396502131632591123081652835029486819565713588747677239629019169319916776864587305875528874759709015918885841340231494453516371582046119392953865006309019687811487252002463250058595509732656697594088092488527662674442466726398494549409633358854494438550708277866043263766955889909423392133453243745869236955358408441578541048678823088765914992585877613493789393381723956612673264586058860998331302388177066929334834048048944814411828434656375280816656029472988769848951911289727995059763032773051776937678299759925957344752814862839444189362992099002413580600242332685520325343646493589775270690343598809038877648352811417289852206157665771897459969312690499427459585774890071501771028005051021850874633374802818267238663761105936721215117891006644603828092457244431417385808314417365876863724975750172418050556481564588826944241362569737929225594590205061321039231722794686286895619967419234007390131687938180418212831728509935919804705998908531525506061112902960745527654160555432346261016708812851520318516352330546845016309787686886251609553921820193843043220857880847407848236511516852457920537636285830047248894990623220277150103893542479206727218039032318085454935230021570322404830357516834614195045183770461312945022064049232543372082330956689578982080018613350050687537855173898229608645792613460122933642789412934723737724118347105671994749881325566302417485511254461353073138250801775959002057552568829353541033294058247633459548911914800263059411228562902099198297089226752024511822200112557157924073365057461275883823812394802411040449071889793901792134917798575028751711212449707103662889052674505062509392601996539954670766856145659300467217310496756990455624866338937724735088968724553086783819397974149839080870071248444061484882489613102697330738591249879037418706260010514215839040887612370365371352029294878765054888518285342824841003839855366231337645767092370447705443448028249088623220965866449859194336311920583162054531014457848223373995095568172734145085035650280593064829271852974721285323881753240007762565488990111484683462321804607071758237816362115737939333656351436126557882430018387059786827453486224103312709824869444225463205182429773306319378288052473627727901023657515838777044573638023243101059133025223974603254422842530476392499368741225941252534427457191435790426198559803235541075551717960222573100794037929632241778553617780508804949631587383212867555429706886595155552168285084918184671511976087907235697860364620410919720649300412315018883777045831139762918700923805268182097875166508952119937827049455139920444798943378848423122248762725989299789548257466434857557926460375862242308540160622023123958379396790618608202073848623338500638603716795394641282798171911311961478216700083080895078544581326695481816638625695092523164821917822134624141759133543797902834142377835388892059566846197981052319282576652938328809119668761048185889645442440220542748969112069333534552351730720139527954521612369056345572702560858266064853839180881791607076066138641953390753463104231631434614551495468392152545717652301762790713467029896411934810468624873109129058828693056154855010986571699431794832040020461502892242832539872040350919383645420568065798193492377797399236164339232844122291241613102368123841230940085955594392123890261014800241184367325721856692868521171174389577355671369440365534188266303219673712204778461396724242393438206557571014652108390411058025499057430927093659718121325372945327612925571603381159932729512007956007811205331463611272220893115014719251795352428209704638353628132373305039579921425714309960203390688005783518739818893141181303060737189155369873116976049855114076377510951304991139839324182677506786129309334341944600471092978714189848380110311027418843783292048283906220114592454197652212689145317872121451331267798784556044561595952497545298575352221546817148984145111384250814105501308548962342436284979104194400095354198478294098804365041833757195053081693362546548668506765948602108440320888369791785745623588814599483392712832581756647814893076301831884503175187702543381512172174738086474183691780511854271392830592551520369615442655792743340951740879029284689484767512818289936936963800520966258096309522447841141623347063886751542015041317535385000813287716280810470018834689655555443257656803765673502026726529968266884467810665749563509998596178894324430751583105497717634532380639058204773181162089074001240149200801923869544920213679302425802464651769831056714850197856958739975556787502966173286707949082756613216383025793652727117235764937197729881838765016004696019807626071729733871958649870990996872471749476111410147825901880118245361021522042204981976181635300339885999787260560375797598680307331475224756400757151879220164485890554090220069215710067763592498572399552763201444121684915435778005526595484999851247978090199909088142554531420111741169391548331482057382804145436271804646866262913735823496648287522089699583629003659621294068548508879007970609715361504930307097144793566401490311205530808240950244384198758241647086058648990739406875441311017445035194648723317674626024900661157888610971626885032390425642166579301971423307771445355387862843251433602125018990945261445400526852137717787667494322391925935590651440122799532365738785963366718867982100511224848175402924750136695005047596708441801263734588010662253040018506698181097190490881302291872876366011259816340730258132566262078794293937730883405816982294048034393246806755200085304321405383703681196744973642664329903378153525502252468254277644827260490649082697721388698375592442072377285780670194840754825024590313667177787679458280971200747091410334539792304070212470478959724163063167939042624636533153824680278462999849295582970677703673617809127448651096131947837554214734726097785221422069774417333930237588915451744621841465888174063321925106639986263693688001561290539774891786922752271866000006486886069438433416956897619104793155040737906994805414239314034277212056417610191846519831622755248470937887500888830317863573072829187673035632713538749271862784783688027045784857087073472818436550765235117062567559404561475108174628886513889489019616918735866440178911396503312482862821277323414956625703814366703949649642201742696525412503138667154925779242582471839304062211931552939524729565961088349107731184650661085378223722765072330072986433681676406634827126596611335519405462150242795988260339343777851368966589207774770380912306198797675448538884934886151790229895133551513178169447938984480551016044753872934602081056423999956531329438181181794916820664342298614174888862468891091040157838357890464703385062422545091526178581720960154959041901980817249863332365323996203529983358128818444003123166844128209215710365003177932767165548592678876429119443885218233896509449510829929260775654351813998833350031659441874901573825151534911730252921091190759492242574830715970710339463947729017711117954838753245430821919571097116313655851113361677992674500225456746172702619265822809693016765263536797856218150440685524250206327743120789245928073083160954493228199057876042271412546989922037225580941931329073979529846907496688497302828612768342445094025419733427838637133216298271886802877048859039816542665131221746650688390343880540662876132415147364980113225683524539644591778808774654570209538890575598696204337257885828876643040148602881347856677752231677008528156703135170869936872283959797761427043044338753674046103409626598140079595373380376608206680710192988098346461125352172626474614809062450843560918326623328614765717887367070432644964237558311181086135320630452731355013389325846980396507589459952787098686773661665652729409662709536189923808343523250645354065363667008123808431421291608489392606475750424360773370076978010486226866973272061313087712428838079513682325960493546269875478506976087090621394446709870504353997170682855777324556183385967258415295843880954100363797690748326392232269676310863039981067968923416082594660541196578250833791005176430719600669142267780803108635894954912666019682168984872798099736518826787773105328505919123036083903834063911136575293847387327396475869511903909612921446578009656278230854852576498319237213841985818804914914081220298366647625638953591530954244210238114009422010543587336021765607515378419898361830584080950957923288723131448256881159002930870419488419522251557714253601969600071163474474393500568456344376900335741760282554910888521532392506087844859788167278966902631720010672064720740459424890050807628233972035138346041011685589515018945459228325869990993583184838883333495905712543219713999285566983682627054269275987881498938895553277521957161988467584092669237122724294525243982523836417638668895023936487670293181515076725859767848492337458449430892319353106512504708445945982293233904494552069195194753050359746278833569846132022212993897490693428402335529626356027699332292725089430202063972785105589058443007897205048804412923489474672886783891502622888529128742952750435565020962942247367934640352551269544793314931432012374843865246657866338104602907702516740675225470354471781686148529224587986189617232446589528197151406141012192732756948471047837285769460924518169168799535580404984124110491975743929251100959314280976592191588701463865514029775960129535847007686116829226443748883090358961861126606849828180729560094573218650739506343957012535482591503536895771466916509576445043362651251199168204088534882183992149037468832063892195839677180721260732788561951313557657524341345366570848659341598443546453769453590903140796550810660494682247214518383466501317890674110392803618900144192600451772699029465191226253027545038060324885188360479364632249905482580495776019740854482383090288704159731204703163934836548926547230251529080407727077303618518251961201662424935513390875866910423295025219622274262425667159298289304043119006795704120100840947826597883650327603103028484313256421105347720758350314603861753293827376171032952138127566993973744418533716325063558390500476440504318465550507304089903892699362886204694026958443150631088978643382529879170065955281987833755417779176288761977750252490672963806218479450140143711027157594365404088338258179644194308333085998477598891768522529027457842168969003684371389240369032563217458039652881882758186777509035040778567728215280374417828553924639303017935575994696195281418099816035856227245541275974536963753619557098053523451326657464468262355483975934275684583454305809159838250894738928769210297688742998711895415173204358065191585613271735168111490983541922118283470365728867448815599802621633472873434300014617603878659001368802558127766026346001449208170959073372666103607362423085988438525246934735966099379697569178349256036933896156460246531209080086702727847741561036000878975336766394492456229509234066383358361325146393239122021141047583736381538827391201590659474884818049489836365636223485421468944007752508002307778637642480862819102818203471183174373034933442617797543695377194812821564298546505610964355938031147766430355133888829485169813786387513074991074046317672875953236553329126594764048735628441175079713904740055133239389619555128569785980204776976005252060680548352054715812429473628012190883115120816936817092279617805040894557835991309347632280801514996988913569688136111051402341987841705950776564048246311888590148083377611155237681938306357143194096425742267143549818473954077948135087788954885441300133174612510004307332540107531424253624326777980106057834007304622567359488688561912669235601232984355772650000647431975147022267052828038895005700215205390805702685168817909665359775812636888591476941979748297001132585765878572669679968003208967718995220502920349071802140169102005628654772960086926380272911146940147119550677284396877248732715812748042859781030245051328997441075754153570752061036910290943137069230002758489532125119784688464230106804490373289192260583773886130912107117705877528703187465304552555815403887856524173249573697748876076701195049289418324591821807077006224950287899840599660972843531403320074981937074803208342455636186316599741500158189254372358414756584357119349433485975635464919175251174560830819180438633576468307192414107500409488685010605996185014204586165368969551147587396066060761951716262525023678143505929992743236542178715953380317592362788987829491326901896017961588736995835363153030503048325861920935222145942082074130397798738379090640621247797034395114163048800821786819413639283924963789204424567103999952897567048617902880627342384547397844728193551281160733812632791742199283209721893969611128149769722842643702754075034764079013453331331324564963028811571355381128154995238826309068009825704032522248214189545731194710504933927455593513204206562153689294936646864090563109585365986127655029652850490850254774598215669295127371133217455907531571802909943258834053869948164099672325312246083210899317524899234438119482066431676943205728014253352052621878287214890835065610874192721644374574088327016759943094565014599538832556482404066112833332293469447382298147582021317975355055545776242963255122256361396446854997894034439749368161016591941235650173277012122574966526646311730711573483666997513141825911584614328108578758134217376132983820767519555975541957172396642226764547465200211986278228782024036452599026354617705964647041183230009657954902487137117915631899562108167542835268880911798918327001510089430933502265509880417268148908812291287082952109766415444761833098113691278977477122980202133212746589852634671926624555388319277144999140834101059524872569030654767321855578141002838442058890414682109669054337555206532913423204111494441007724598556415289012162258426352551147078595553213609880932895069644837618776325259427108701314679076750276325987325766791190434282627051475245364942311690421570359226975853210231171944589747868172321561144409284498744812255972316167944415034458684482061781214268917234825687477876627836168367743249408773244948988691063112600380478865818134246210720845544736421518472876874593713829842803509208275211768993845949109624624375453677491827465418467347459270497448425473396257541989940808113988809617887011452014324499095869529262140219339730031606517359189393323587541379546540821388091274730654354517356644909327584900617263889764584218459134590451977008403452259990961887919339840288954323562790608249368941546323611677529403826834623555194286330995651263696800115648880489294626619364652318434098834586027305854133387446270545353835020397571542522128525212821830130299332661790412226923870614682842645748068445855575824866887213502541730937126041796912427648131997461140265341380050202471813955693977026651364840094792620145897591381816690481772316593805505270690768397746184553099126023123008399979841076047829385141598878724798422390914376454307318765451890953265023109477426368636396795651027995433045501962995102898414290991155800188855761777033734674454678487614755250966994450659033739301500313160838320599729844570358016495399357568734065602219921218156704559208658030544608103653688805197213057760336977912821309760536858063007951517605647629964106247398349695899949168518709749894440934598359352326346812880259885425319651316359589443145420068157243560539801859680943714942865566944149003491115569797346153042368660689450470004538919216435945629122204204541554833978183611551289833126210250769674369298551683203785418677422376337169514555308472609142939192564006809487739878753639043132845210957787024572168036765425369755669337691689372159682642757537449497418005416994427085677468627943345741278193459750892923701449925344551435339662061684616286946318834116381687326356609668442661816850878358302201726827279515949196298894654714150300669941787908569445027324080377784271503413853735560505077429615383765820055942220959407277510193188046442455891294859364538378440501595920916918099209322085122672924749205144015172216109792122102691572302365693498551243092306603059365779850296871735291334499724162964734825673764078783302942775073652195965175395117328425384809993466669701185413116405189495265549500814393148266488144464640209407832353934236123495389862481501646262872514068441540323241030381292120284342758340771587145838104201688625456195295922502893750379438292604020974002976591306686065952755327510698794454143399655516194986920940659152382011727678666162834438312481666252038836576254126699845464566305626956300524145350816449079591479909647782002448130287670724944687100703971599113759347014971086244076651521471989330630186021305048086070345183800627956418712285362423280665412324259297091097700292972121994744426228543308684127337911626984752085482300415690572101220265546980356715481577352519046914043093788933407978357663892407945831053809339861714613321315002679579725818962290576615119916240999193263215059982468159612035086196162185140955383507737097381655129651352026318952939243562395145390317544223633130657390191841231458942990560684292537598977918245736986947330423936923373521115413358476203818142692458622068160517057737223332996119298888705213003969668000446336718096923708853050360875843204027557567729670050070934456292198755900985174161171010498958797084469521957848116947199891507108449626352546703160579177421169382207722093235260057182342362393439411167924584091526061686413002559143056811111779708277736151832307889385667509092809708369331327427004104019029461443725910813483549170741047323029756221693280169277049193289319141114908869724389042049221875825979970675643926559694021381142671289816729574280407646858336987035423399064120619089258734901166405703082400764912261285010187293510024604618222568315323826198069982118384010719482289989607372010907570340147326678500305625838998049807198497734231901917472465983722720742108557695432505903407033405048224226143087628088834201672994184495616288695892134723418576797210819805461815839733317831479781392885064825825088189657616971791871415017060915450039966398970448413092125469123200475844245375100418446477104934773844112579849619665499434168902643712951268056230282085270878043999881177877526438418231405761652466193118860690405132423239531733139514493709568694609307469314164276161660931859705889566352596023775307483043131652545728120657912367284982185753474555387547682602700226624748154671053178253911427371720745827165096276400991584750433634318265463544026404059732843711650722540326513665539498189050993479379819858069782186550218132703931536004981536976329865055365877436341521795877561245185803483099483370886025489091525828237798366834873955709870662763298057251921879145360285571773767137829961577960518685217746247279774458945612549743742831904815350809536033451762018622246012604624880226814489030208699540534068141543851849396599038459111745869040957358146683360303234564462806343052444122209949711134702414560239693118152077552892874878936396189283729487007933111713325796976022839831774557754586129931105181072396948765794282037558844620777071732341338904151955540464755763270276533801079265904501991399911148631955713222124599327298591184973501322417377527672498332161573711800569092997008018124471868966578772680054555115368197971988268480789452275424334870367231884210352035048530872411544593847549658620092222075697993203380369371970118620686785419495255563324660911586550421706176765066648772023067335212871229572864628593292686770613076925551413724934001927652248539432700595619641090703916208440328327989866193987592464676893911495031828083479399860466583725069502132569217564902388765615240185217012211621274685894817898502864744778728805223523568228520359372244127993663796742824483964378068084949230172094688777742518660795932453717290802613994109697676546634094312714343688065892069923889663399237781474789350280943736602759003646241613009187349859596342804784736956735049651242784358854222294503380011326200397158461145519604154209120235447053382014780387410007225248623183888193780192165821037441670975857353741134083939552285787470682184294374504489182475143887812334555863450776262702177165763086242091747050040170866401275592307039259902570961549547425743327576518018968833828549557132288485916402907228197474390843291625499233603130937725911624471648741422681576199443246160572956060077755727121477555028219570885987610308616526997434567736849345330753107855095203683421538202686763679904808755129976825548332690005219503130028482569368881011500900708334010090541605439705010448801241231425172792669780942466246160895311361541680530976880079062255312749586495569879991888536255300611324583354828575063694882255737304037192527978009324019657545394260194974997779469639167367418736987987825059437117506136845125583580071465597991832278671542835371934195490622248935956224872350015965515958203602782874174520513574548409743275382575552195680734777891272429525285475377416310543712273922030540663165394607929542801194972285986886262095970577136576745769464229858567404085499316146892335485678633144181922122136886299706540317111527979213893436282996378841327782939509892054955684786747301183738455056131478157054163011814605181258318152660993266856564474948642723611100639902015319341288259832107369494952916086270297793904223636251591408247034324703681924639827518952691022795031493373089983779927924543941160471591197331541232099717813372288860153630328005321283493922821942798595545541667925851085320640320984885062781566162148812846676727041620168984368806948599100745257530198237645384205604722679798456326015055493416189255332635667717529430341119018787056822355471201598295028936095633683611856083769270231506933402659423041956204596724407701136473169496910613049728321764084695335392064815005835018255851030854903488038337481831944218813095847742203769522647144417245993959341190705441636307972141768559382864112094716562019410130765693954697559964008297600535418866178823111020172715573022550595290335013740258692854277197466984463603029814118345183219329346621191049720611973683629567033419427791676238341546392166558972067100211039085968668390528173719652781392134501547568786291318332843345475807220124754674876828981892346880324971215786221858465238181791603387622054450261053527730169177366478088241739088445258913852404189170539301360562050253228909091314659975223046546496264872705050427985635524999568943548465629053352838905240747682823469442512422052432146049691151599502745119211568291361987775744299750819945714978774047543664667121836718639985938647758480497379574310313556106922648893323794188621034303009967129575625060330359032217667494155356337239116889032366927392379605559478222318350257576956904849957835534199270800453710290967308048719319218734905095783279092933409790112305095355177878797425730259126615147330971950212836644394579639594272143484791826563859652532019504389724159269468392524242186038072871266166423738352176839344656894225000557581315184030850597256194696235696507258485093481378292837221706822897942641654257844542009284748645428513828372778381335135819408279535792283988973991137735931487315643412685577389382827974403739403858089054758537646920265681816610003762245923078253690283197605974266134558262895200074717519866139348452285860670989229139860073767216427450218418990687512821051640714206606389587802832431977581088443726138355462961246061281033813110128147483064925001565512390649263760563155724150594446447578971934930991026680957081484238104884185792550051367684291351141125175793902226258740088453641633871277575302581962372271590742555475734011936308352925466276945714811338665484639021230369169058049540678417310559465918598303503065831399068316976483876101199519366253613888976226616508466733759478466304203938446589038464883472822845237953170699411613641081944696996724440746928392364130567933923015291910836075357808954407226578423150840588341954782356879973662184218680496876430753139516367036626375443913518542939738639303504732241669528654384395492271047001209217380103835760953115694497464875956857723939594612549508301794218645124976069095855328481413039828332195744156994123083932663795175897709125491779731184593992615345221399614109834910618405773674148244441335724652915031005080446257502537452754598551539294860423302145828071311737531913940893517121551804301704622055447973766966747893173096271481780432052415373985016954090511688306812531486809043952323243760231622525043883668986857066165306618190456852747466558716177265851650734155065945175613667842590715951852649232661198941992769783302883777941111750144741042290808902366083391940652111393237267613597885389234282889008977305473363126803325171091298392614849700054268616029942960963848864440600491029455039665291702342363466065042222960210987858800694421569857705366984484108686731050696302960906193423160663874899001882894951256155911024044628205315937709684265648034603378173148140538450449907592035509064459099090914452597256714953028272645215273966122182604134614750102864922445726576575452903240547143706012344312177520657776455271900115395334250541807539121915059837985261573370516229544119703078887431739989145794825349987158969437877343737675161566395464762435208186531597510366689707775832838650575235805017140232362041820853877746798302950844233833110374580653641907944749706284770654767948296218866925906821760067313916066581607858328425138624683306260336679546791249223032388929568772894761215153639603094062765311976690109113804874054937787515860827573236354566858067490627165972159902992186708613896895137370683173156800919554827792046505577775066888521186692976521103907786318443369590672352028399996432396387686732036137916466867950311217912679120494226863196952264941526031838460165370450925925788004244059443494676228555085452556602069422687732189463339027671535820222547033122347985668270282524598801234683953776355174689122536788123818919954637844127033241873737633256130422332711844450749742422378266197046104011122653275889557238498505763648049409248040111162770871555279884079036125727883591241446081033368567697834958256973338399561692398900085029353534299965740696377950214085190300644954777473548411684055102877611086419856726622678722878593933583970287883595451263588076265414634051480829780026991158114186054762951288199430838665320484267405555510253322746134221993103619477720495243388211785032250462292214245695555003313775842857102650520168844871279318563741260727741141786989397154226727632286584861696775818739529467092943452537335065005696013460731802577679099155134503484158398467526505737423974714748125400935781953545973458470765007447097325493931035952440878024276669846308426444638673638016286511939259851334195630392655957116711230449799232117360684897591755826316223902262248984622865793572796249103764038231040804819749428592702463212739006905074988773173218854689364243894209649285664424617526423270727279330815571558866484163195316141173690908132019027389528425154996722430348902376328054372916139822725299083690889249738852299592377545012678088732611954616362090049010456572723812186073402918544779953528995921194551880521382956261774080412733037942090367807531125676008042604950740619056487808050234373558916155389927465633076200800996912907610063205373231269372796200739054334374622102589957213978891909703175501973559378692404636111602720633833840903223989418916722494065846038688359912725214200892792743098661635079572837905143855138729527112983667896161918139486407368579422616671178599051403823472914009009792249130249978704003805414564064290663790392252304492171609589052028178161599011704358289134091358894393049509659960511332429448250983651074985148901512823058472152580251850119996729092301953415910466349751480976575854195444193866030102393289408190947927848078304524045296572175086034722585941757724710712442707798690720995580682225197899864793298473283077934323740885248180241259936076280749955223104632199106829980811820415770202403786723523630415869096428133036466253394949402426868625765918335222413541020048878505699747168524067286575194342570625734736675473650312557208374721707773173242611280307759065469239502290675828206127673498471063519764466442716720938461560725568203791375209490395388168627203084219274933011968906502185542429917425792226204508851936642892877228775513009477364630006424109929900045932466773531374440548668487587771578864754288251325710249958355230509904068164634131457314484939386983313477742735215011666976795032349208702667063334267712152648808795365929937351899242067225119480731326592334357720796452977775486743842476892616068173391692812463591354946096450111565885729253824469117197557285107865529845427871658302341211115530007466352555048245234541048573187791003476233058840725783349844254988058458762713484532692040225683831642322237097645471405091236413440636195922050000387149001957833598078100859888605597284847911653207087459343563080218716211148958962680089733082142060670637691930990581223716105016338135993918359318713030449261801897108928204261003161499659858596679590094337472123334438951788213921316896137345600884721183405537041739088655022155389774248059789541723435365861490158428369474900604308895256061113875543858496272691509108623975548059013623804035826260053073574512487107741426347751250977397730939072528233632100264802882297270641095201052883807867694620371563957604766114500580804771764272878001313127741324430272340885129896856038315246574743679823704601279075780608924227128322264403079900615323141020797123800533820530512191173870930198385367908173470015597347513283321602546122502724867125834953157390056206935329540235971715394692464427438802759614864941292475277337413495071487803353778663631185623061534867577670632549018682958003825878848517645563087087772192083183889862253677915514040364912819332723464641041042088110931260983961840185584637023543594672485749153090804859418312609672994066748441944008425983217548033459861740020043137850828618329975681776571031196315818659950490672379791787367219075156406534377644763062170576698567087492270750280876724620422535389447414241343631101664366396998808785733504534672454066921810426881156695438451339196056976913074521339412192950876911121752555502502270789147173800685423650303237374867787025583890598936305021008716646978571180516617315670294795858844262719841035509462151000546726532666861744293511621047567390241977309661472422087045241117074333885178666262283897595052031288720189523544821739478219424439975899983500607804123879219306567932572487287019768589246523250669611473973008800477104433865437226884395682500885716481309468446127095654313955754758050793514267563138193621702422973187848122776831895740704846233538362165958684330857962853761603136764747847256586609266766292576087452731246222355044158659706369989276817043499411681279792821296922692766507086672448008802330978928203559308288859785353411978502118214004684250546740254977141733336689523049168314443762977348272050599618427960138243826409005405005054389956220325769403114107296693855412386184534165135716337686204154882263119603753953515796511561579168752008167453622412708438608227154950444416068767350715278673616499068407910205043844601230826219496186924400308314293044784092563118632077751264305941995949177170641308906867774638543917793819757616446811106638932358361840915953211635978809063329517326102817101486669486439611310171755365403322789044470100197631212341076463636245830977326893259327741919571499244985596469761730467291526992474055576981593496630773754704071040347974975517710849312135392429329973675722029345975758802576403917756905121552802314521029313049965333937302320092050540968566150405868034163793425219738612936589718569331253741457848278270086059892165403956081731874297587191910693275712179952087320826981863598460067276433876482068156113679122840973794403556138714059739036867993047423692350310653421466641916361401970239342325752694299027469339644081593015791879515442905334626141049155315688450125585550009133220611127010184435006952174617306595986416881093816304249760877061545783954493791871917977821405022579049672212207781602380149238129400854632371404052972776933521421226846185978211744358524205910970289419846246899952324223981655590466771322876361960183848743194653729812296335274062864396104175916247182063541974356857130071675436810628538358587361141488327923310460061344514130864700024719564721679855282367690019636214043564985333197688806488862002046177902558022709496834234610834925724753544521339268873693931289850485958822328147510381188809460451439780369235292336510900341393458467850412291741350494370619605866619482665643182166566296456063733475093289553432517497273791362242708239356455824432730660077315547130178084016931960752234418399227001189768898484463505526607269164237837900804794161768433438322845853768413811825116775638388925839402012061356744691967075752780470693445818276915779568602324958841160289598378405115255979783881841029014784762345089670289667288889647657977823069979881927088351349330445898170864681797111283818200204419749911772154103420516542702703199984663491469520761598650684885220316328732259038150648355010008451778437545074361450592219424024187262824903563412652643119265503040632025753660531509186269423040093331024829860919247004411577693505738700428590486697364230705586127356402054048267764388090325802788508769099480925732901733117165305467839238783985992084494944282354551111075567141794156706197119864199564089819746965038359856000153776319786594268470653207291301834658782449250781987830112350426129913080412937786711714417436494170413095998427749615238523119521635415716204185542617257732897542748964252455836900805206971989783405327952496283264156934156139985728673098742262140288518128600190846032317501333078074831236164178261380511779337144704148121189959190980223746787772812890453035799593400567204305644044935478026963464639719156600092636864217347411761939064145402317939063173828518903652398629007099830986252248923437122606098581030409576388510924389509763364947748584167476644141210442699677685198498165067537953954532870805499052982680916273410272402610841956946273759163057030693604930495517602916771452567323503367130957078176961089025569013133837451158173426087208091976896237615824723279969676265949176968903500018108711473857434983640990927933694547181562903452870089331778646260018484583502750939465657435197966246939627896713327530010336216705802806020327174553177354932757128128972230169431756595295821313773640765032582412095839422766174898757281848476302875186074619815953091451776753761422878153832469158203968556471318706824864146943554341864240898653402265297935042531053074556474458598776518827085892094219965186703306605540243235853057412498897188396465826949814140327296804009856740944722029444144102681929134110942187415132828733107982329251450661078279210121801031119704277690769430354497528305709508933635333331851096902389069806293571634303881507485149898279017106593644127074761129851868177731370472344540374560028621916791322136578270702407950996791418033482196255862669519743611248846594658272876564498977159444421182349275517498968274483846421554452254335777101571115312646908838680103921379271888579610984245440176035892736009257986197434102460936289896955972601919021738070097558023753808355062111992331474090884681435199033503297762255410262247665024469857171353572652882185686112393022122353021905162773569741286349835408390327735481050807116389655729447668457921741120944840199655614355306898308612084948698645171066737076918157254460466820282052648523358699249990805955192782881458694136822989769294696665752303826034310488580760551170830091971011984925364807283615697678187742215071103739953692766152452449653509100345288959777029742778854153397858810660715689492621308277949265494362107345696787855068738556113335206511000951672238444435331586671798353595357645119668095745274000424340154400490626661379629574706527407578371460940023326556772078370794501025269804793497599536312147248881206599950447324540529569491611354376512759235712601428038891439971320628419546819688588417529292266886442621434063384323544903587183699050534709475844958153940545298839146518631815093973623321405450969089453531162350231626454242878880321886191725362579809217969251069766315534866721289025535342766321179954188944080231117124107891063911791380111690841561471043264120324352019466878197773271630704885109519004363450847138672677153789281655621250931993308461735522700918562419626104815284640455268181769832360332944871799050874485624405258466705707820296738438699369354654364564447230044536227375266531452992196223098811764568067671397854379165847320950469443043848837077186501843256927011517134949617369807824269408040645009225068239337956837176121539057082385854829100457156285405230944770923367992115848871886152442294590478039610523547752945184329182177647040126741902556257847710396875503365299622144881793526405867813332621592091349044189412312552153995977952657068257462407649548661139248146700657227719602495734508058408702213078799454350725560360218895109924837033130076618530852539127407692038969809967691756070148475757791425271380220941593877488494049646831202572153355580648888199949024491248744387026964819045617856715182153214214586889657263425577957562652700629297845964506174896425300021092247981808889462516757327350029677147050327998757989962912792874660757819647948475239203522264559406312628324841753975481745701065709260225931723208740932749140097978186970260143742147863179385313081557116718016184198850077060828811446496753514621719552138523925110419841081641404822044249417827953801735743096369443649506351874820396050910708920984431416784064461910936771361505772143004751642927846276061258793264955586447186590298481822016021004997719836180377821189595651689225393418263501037136321157781214602370936691063219118839169527053631999425358449086023980831429872436326258410691536617915011710034582739884502300190025577477431214334215609102142563004729295216805128221564798791314836123033461102775203382979698476487510753086209628464767863531202306860509871808751282265505281989169994450545825287427459706340229603356853886949799382828014710998600870595684841215196473343476633762743513560052413635371901147912029922253153318866025153770683310154889099953699017173694298447066677048279322448234182065674258791467811151897477490725584891554664700433292220398950649452770755329322994262674332988281428255689657332667865756193371959390806642919147503111328446751487396357728793429897564133604265814305092134813679852888292572515952463686670526471898396196359849211341569531986380455814847907178090786952927279184045229430102942836711083950634842506382085558653923276545286227266488341850748741393854930741763027955503102908136770694302897012025317701849418209149792382963165602229836198034820405795231938132665460972135883930448521662872143525751137236845059292982495611474226829218305794265334692259325226372031701919998447675715410489691608200556092938804385615393938861080003889314155142519880728134675709393315430052569037837144515997302344291450569986414675950303181271527278942502383466726331733374558809943544395003677567031091909407161141154055734088483428335359931921443710600685936602646993465720093603162344426382151424428391715961465813174247317051563253482379314749449200697954801646821898843327591528070953988212683989364231810654890448048927684892185471067697886135033352449811386163739573102680251642313394115498106267049750201361285327167945064131000846851005211213639958390314022619108072899098163070206354131115422666078695487177382021410547401402403263196456393009621855171291432652442745944144182756021445515344045400287432495777058449408098403302725818096317965249173507014948466841572546592899494762363700598048903965763138240276942366626226901514789471169049802549490252587822206853726045733035973090775835393170308887085423495312230318022928795990640501773733442130627431431286152209051808992390909028791205122311868460241332786097500246750791712605774045752925643648232591599931664450989019146148028600254823438719690337398705360037631100238503088551562739426231573907145932473869850297213477822607116809960060440749909341853400572171993409130820882341230507612352696212454550842224014986166215731602997904014966994917274623782673017894094249596068843773894743154058947327147016961985825091282157140530857846619186132280610365034200390130814037928612843022537881128448946883053710330312357004346231659076876308980839541591685205458809476237119278899074678575366992814235247044117166525289100360537755973558843542542374651769418514470731452547687692899700595461349680397382329362389980198620565056246066813102252036805483248433496956896531003852375466758785679940094642537266615054675709129876236192670083598762678555030286306687993922650993773988460839066820820662301246129973037801157482964498260524705900201388562441463341058145336313282560532052005929264808303132120350787766295846454418916953734242813903516292914225048390362614442557358107486834892518539656531498196305571241999503513238219511869672381514583393490828597559919669721704534304327316193571896762686397897886844388611904180944185825869579602634563037552477583111543114762035938698507377670742765108248192897681013385969978614342443000676843942075955495740760932501678239929600457403577583331065860411555508146908508483995958616766251290531530322439401172444887403452240718053522187971473853132168896260285312534875858556725137078186863521169633110572031722370604678119508611426666560265806290848488172315565972646242491374667624461437195284569352215618440020898130159548600299025188585073573071529323123181318499178936373414539913411022035565410510107724359860556317482778472401379834746309724538260700785102526381660274367109349768677960974264539232419633798976824844220980191330548596452868142462908735370534116434769696472966752583007869309307984984271168790440833818632677597338032526824224332968073950641806715656027142682112303123429485516536532152694576106468247007076793291110119601654687799208741506218692435255860566081435007054636572825128990898652988276265682300743770361058062226645479965700376271442571577258126868254662946872399564065097283240776143891877042497676234221451309179368774606291685183902468031364398974169613588291859736553890645775130811934551982918149128457651522996407262983389641873938024632247073639276859512913289625226756903128989820889247134957014294468682265559575277458228284299728097773832127325305141699246552250666146559135759865547489426015712380877942847279114372236711153038274775334142424071794886020283405775938586047439950943326511364877543242214726631364859057771943537278581043718337900951798179631135089599605570568421753214407989559231848085248780836755006834594839342478328565635247641894933649224929770885816242315020491398043590449810043149323301059449024747184763989316316844434740475056811723746439216134318381268547094021092795718799369313860000384685143684582116680021828201299917480926398909895665394058295888600282744802699916980106424049242658107592127246906309924560742166116941838972040284553170733152315111420567850949657561203900768315674762721070457356617187840296262487211591769263270635913876784655361999859831823045145540096974268503775012008321332069588601973051218708541843880610883814334713432566689792627702443419921807686310016485733840408240758539913655790811783908542062933068122947293355971639367946203353915270906372069467342338151383426947141024398224388308667689896244157150644747905669323318085246429562923101600511186409568800680522593965491379781356366627865848254046068731516751685658713053052115870559273837534786890808148447224684033527700001191254671233038886156296696015872181330247282478791621978491164332860672224463528831053208583604580514784985209442235498471314113188173524407691698381700780317068336361510531335515330958466236553926008021258336209667955544462962234869224431908474639193517496015959286204453799127924439547619127992304158443289127305216912408131923408866168091854338242402945446101708827516088104274721924920945394697026860285263079403107069099130922043115964504298191085799442609001524514242833415815488227675820036415251050279035800480534280923023699820894145946331693593899070015559835064469082244498619717044307628693201445951564848777012594850115140539797963393010043840531906790743647129958471833213887110909982356672212638054868387418940101075400137881018393159148808747865878795001515539644076162577508186358217931011726144046668884818219456044051379248831971545712438419343896724755144423665893647185182260718836387507045929451981123641178097230743409552194140524464220090222166686548356081018514431715550874520307066813582038843521549879449603949472960654708063982456273947063974406405137892953357285866899900859908690670394343487080081760714050432569032008815369471670760999678083787526081073299247949817333213953183877832823591673701258312428906473547421508878255149841414235013016726750821791110025579725174276007393731921421039260329708107698190589880389161813825799144434322105291569057878847458211103826605498946693764305728200945740752925336116365750936006367349850284388726581710725994107849303081301175864861158329066057327427060306999694824005860864033250510745707713620352068864946234411905631680698924069541256556398194247188892203522432260972317548885317282667739103757237101067393376638089815158426760468520362036724078914901879273556180766175587818153830714572203881772971875938956629614975056785345081345976592828371823671924314009741054372978445101625754395876245790382089029349315014810483645135388892803043860369016426589231622072189666519355916274979550480092555159519046186067918808187226970297962202088800248778717791258102117894250727613197954310962466401977209723226100268637455300186190885982565656265279366085407822811525155118261704821756956154162785139637782479952394359312469752436905921867794263833307337392092318903473965575739664909820526187772708461695587361455929521981268933164433823973142384726159453088525408871886577640223851051087973101722522845299769476173758249952632471411817301602018331119181122281350885698210048181611461676048518736999561147171048969514528496967581258345361297803477323132965359652239063357421420204990479779497140368721532807064357987712128372358671861232848101428938668857037620723484479675929144219538642201210820779887655110250311529371693291996515388780425162560257463240850422884499776238946926963152865729374134301693600760353293697064178277877377930650105697394561162192403366764030907835414551383164348894499792375578158750144552064869347130864983300738980880568943460652073487595248873814528563311886966371772606539290129962451213621618212497585510924608606703292781986026525232632282648357227323918383492582021275938940571530411273628188361027150253648154993700996249826124488262917986728249764948743752377218823270232860787867414464676075600182094890673465740757676455255636422430212091679637261321178552432544516726617845496108737903746066329417692646345850239275544630030638667795115643109766170095008053674662921490319228931546134479522051756730507822406654121643097747251304495228849925423816543796406991093037267686443698771596745583878817823699939072913629511356585921262470605123799207098445306806751021923597625803820917959940362293224160002144948306949888479840257115758866426014882617247760922755278249318006124546804432703694942805199693247405676562139868967945410457780679381898678743896031549308087544850870841396937769738770431774286581696401871131875555139837434149480436738506910996892834084554865883150782980444429217813519681652065459628859248994721733329206073700725483852165986589889077098835465950445851468112519578727298313561434878739357789016506310758644069444839738465088854412407993571718927238760433926754142118240462413909054293870612823904674491829046176385817767365973869331068507357006883922614400496752244109439386794743104730175735221430687079113899275198337431708032830179968893744273125215821356317063512194580243208618521125215636094841086274928276882562501686289940598158930419958816428678871076201109560759741287230522131712605071600536828028137772342999917730050094327364174874089319317228940480334599855226410892982215449118147136348851808329524371156096051075765109787038763128124395958783094617349039834758336946605791545220589591440569186560964276508524589570587748288120413261239285894873523560338104314000357289123785627432502504636500743890095572740636949446188365286660543726152454172205829830850965936482841958696169115725932419827358324585383144016706816148734750861264875198978077618791749682700117124818918466138987978076114957261378239841534622457347391337669061778806054634749248021501000162411212171394543562120000272927378809068638911983351608116287091044323730701597837680528428190952153900899546814560480934772723899921077127088311999408311819022041478882923964542865097988111642859821695566288129031070650000932023736562567548443741799311021817623100802014046166684899134498942412244970191755576492854239923972482065041525370392288105886341191972034439414870165759984553384786876567773477091766714680382367313401639828407880205349546832959001441780461553940129223593044699854458941497443909752401223342354965425154758972141848937914350277894140168852816498143955298295540112830729059554776122500088200251227256136937374376926594900873746044344756874791717024790073562716781833766636490104058900490891903746456201786773831536991028400082287598197485352472502014372421047928487967599705577863311114044746980788275213095399080803117091873922137847363226332007664951635051082589788722053445147150516363923455862358747744662242736212811092579582876119166254153684657318540677262662818074645612365270570261399929161653055198046526503055454849917940375541108398913905394966914995624130865765744020383965166355787306178906142079724617567147885358069361700198445798435091165510200227365198453484798249644618744625830476746482617361233386321767888312504912779200926688484238181854808972739446180692274654904673210947494745911730963142655993105118144649849164657348892990956236056918074537823430166274316235950034507637186799869307186295069833110875567687675209574031434859002288112378236242261019467416930842492958188229097115975301249041505839344052802235065103086218445972740352939276989646953854696237284285171887006227343371697645499882868235530232764350376352044233031219185947358945604266835449612689909240130899833787013512452394879538459690393424706092469339833594451428338166876839060145419707922473108628216859276547233642121807873842997293257587252274196921100888994834956422769640231142753912447443241958951046868251384157117226630817803408346944469160547679329388942043396620864727227134058503469476983784811165925615771535228404276482497291625573147864088200401471973450965477703012847556814101632861813732440985906856266371605889070719967656969369557771869700083478267984657239831280624856641195835594668646336824101470663496905455558926516296221007684166189734544232485587531576541157523508244197744050894099009451558682966610670967090242188567263513022076946164741961012483500488324399099685855418687667730961363628557499053167283427905552087494170066782095830556996249477733433635071383166500916099445860307019912063620947261628162815430505579730019787551337883522833593019170150243774923829395637935896295495380106173507005062115379411613692454017793311067313680790629158577115343529063417402733746525121883693915935520571525480391410141160760734932551286532242006682870834932947027112382304481910806367017055551681660516170852577538970942707296686930226006489657414662072615047086137372372464532543782557590092567538422619308420193014170554457973751975300470416861185897332422455389379399588897257396558578662120421137705850100415363247338063484930878170556606153341128860737674343207140406875176845301024918944788228924670924764545357811472726834119812515793747938590136536319222853772590745949489165008906353103732934604820812754766554480334689750994173377227300800883513866121639608769508033277446327520211238336638907570173658688340714324957376376131890231795720119331834684075713003556003589101914426717948486409750703489157155788012167219481317424387469848401936835506425753888595363540645784595258026348940536848524566120713520282183609121072824486035709848598621499110720560382459194859829823543664747724431874436259385244319349885976950847699830301144277916640235362440694889364336665191206330022706964314289141781565157624136606794086442773931508764532782000051431144169384502136024538595273582412808228405148007249950595042158198022032119117038060227262285315277822507982816018484804463884542381877821710453476165937626072970888421769980440600360950716305937923533727603256790842966377149031844698075924229306159288757880937545566441609888103227332432611609552152055865572880841228200008754923083828398024930370185292062238770987704278101256226828645825820748937450657346805895735712702446993304075235454486384826117949774906522988066396915491619456757341717414665666776155891302285172493749891423154404203600837602319326891099755462658514424413069169998816280890748596904830687724150091092482260722119536627835626888806669171455147204065469867244613418392754666639492422275787260538619426620379390926492695130808143167659282504876472104863583938056093091373069208483881377562730641491551091108441252688428224477997658280451670887896100155962325457841694603139229878054528721555967498040850462270826259860992156066567760591964786619653501186103387301206818626988983175553856349333496203625458890583539704996418141434400220806029988614134685842391393401535642324721425301428591205657638569356277624708771726378207859531814331466842886144057787948439418544145539011896337566375370590242787878298698149149790489982181020529068797424909942843227323929273792293589493756346044711741346181187637755675531713533286944678866336852529977913388840625205355767274522687590942502698802623029029591980071872715439050757092048947427880811216175370570817778606572327394436896759719613240934977338071774850676806611000249709483177585048961316817104715760132811599797966971179648937493658018282931468853266706863564738459193816300614124738538845590045829273118304531949237507394953597139353273415735585162108563929472189809593934148208358495693346918311894798014433218146335283910776628884496086869637826510737550363616449216691808790491033399484824422074745087379193547456961564410207232332009042650394967045947946721723223141046197781792322796891151603338708596999475128428050100075079366668644883362672503775902521102625881334848928731366640495934702802062967005570773406220297557733498918427780848503294924150006562102268729921694084302378690711214874594089050476760915559737701406543115136419939101532216931977506053626463245629378601040851025972253251730926509659234796949922483311768116594806088000826189237040594980770400173967458218924295489507168771331001039785153353453147106859570944506053733591953658617196314970060182160151167816445877799372327454843702167196983240352158951685355139247820559128279615349166301514580517888411480971867069842722647325396278568856218601357551480258411912578616981540276091270507419511403965637928982882852274086014503953521126538953883867793995172958629270947841273911524331129259464000726134649249972681810945151440336063005287128811763455747440049685242334339885902991306423665017309231172549322356936462708264736539614701936146564880823663856871274311814628024296708416102187589986096496923503129824468202286241015811833808695873215776018223789618015767799892633527484089573104084610685377186963984413185846115041482873050231180669598634179338953174698177066866352511778784457585311149522528920915042815749224555913847113304271589135534111423495667324043853073572462286846922284083793734484706029169360139930409506545961900308183802527282563082209372697527529895207663388958110039346705019550272152540707842220315869001599513082638484197487776849916923922196537231665447574407641010099650617126279590178098819258884779270810165459373325352841280200757510482591165251375783401008951847685249101862211735553486369698415740199556028651242236187405834090844768789715421259530355913270720760615089738197994811856383567450625729469513436916789182630665079524311558263643719976037744462018791016135424477006273647656549196267616444680772190922929080866228112959884924781148671534257155367603119524547561565236967703853704768866046980213852480305611763820687575067581364128628780137765140619072670023309784587766918228333916512907870760866937517116891741627690809551757279698052016821027162621360697060416091561788705305407209797684930266376389686627360501139889883673359135139603154742889747138541696939293183086800212328963295993812716537221185295145016710843207469420490209766700742282746672221568338634130232860911046024015612304984559140952392104609756543648344461508550374997059553366602213462604839960122732736419106949439922465245700052391362273333832849727557393356495943155230901233230563434152351056962822867788210930846121568661144438707609582840671518753498089714331027439670232072868301053055854740611207109035935222453189737748928721223938874431654802090390081081088526692277246193143825290972586311246157795502759822070616687080487695005424198755620466992746639886393484868401422335287282144403954784228917454765827194543973721716746000608536862066597343051524283327289391251077992281717140591722360207385278926420803737929278643557802115835757358359060207378135471081449504904591832117553015450198368358598699232679936322436043562460202847050065834538669263343147898299146785381491643329373377064728561197775471780210572065624167806204924960506810145055444000836915853863991964055830272863321210271592547804919890670890668715121943494416990158181216296916452965667288822617346469987438060666365012549193529951563426706148368629787919482858285181278413770269402216755806828356762152712510027225321755011753916761857082441000569786355201545717750960983903500128251287302913885175974609715463747851581629121900284214937284094101651557061686206462220736689554939314543518226625017737147979968920612065325275418413914476113922152134614069286419355821654479670253694488544417123943334998602980270985027141815954167802543245054515169222688322276807058416857108824894008108059824363880693049401400360540588251472745588258232852976555436600609761418817454395068351899430644076770973415827497543346074110326888197363251029598689127139183273239406546776520570126856021583738546587562512867371973052008354520571151156379671524228543756123193671768567009006373542503094551019185119622995140325974379209354374209118431551168349851325491586543819283995573831259453672482506711473896296729908788858488825997010742272525040354818049628522570520823634851226938315628067283671474350559839279732606684295072635138275104197468897676725913690173065123657317195324310128695610725805283363158900958266984173539638487201652004906490640354985449237229427418378411033080777386940393450466333220017422240536339407527505982935749108698818541052273129910222333976612533246907300802700490258911978660954614122133412138919626388266617865561463442108132633077176078663806363424319091832541943227473241152377048775613809279604835764996953687485113088070624761273257503766591078316587857685506619883979458302690860270196411220225736605864073929143877225989074073598764473315527068466191670819909421086085140332806017878514301499679947363423662222918206903244530152501557857601522884736715182349449265482885717976992631635275384557655764406775448906682489966134559521800978142208672688630564291540138296534685734899671972420171760414562999130251414447524884878859521922268437236453296433880788511069933976961277826916254630973235354514622641376521392975068099247765973472612690939787221392807455856470999815894296685155627040336605876230534031098345932290012698322692050220158143430280800022365801546328825529047068250736300630781189568719809407671585126103344019382962718808600861169707239670394318126130974247111717901985743012399075403547165062880512649200956055134533362029263066498091540875817634021299600161949111034937515765588752482721423767972642564269773681988908821722699265553049872479047981000650468434265519305954864635159658341932560199539427254246373171515176352439514038074244238577247656596152456746699316286028264855040685912246340769663976942701366938829185607675820086694383375631459329417145519966697728221814706209062034976317120864660306056756149331091673596869262998033651598521300888024046181683318608779296650027792213476011617481352000602598951502189632641538513117752107146410707257793497182252726790059933701865961579327800661769111831676147157964648741069522453761145688792311508863036238407176919599890035658075472701071991664477592277306588961119394275860246657291646477829595177925217284078607443295113156581166361862904473631555156558233734102054109705539810551185877748472553177016945619773274000762746629160155781498938499154800670015880287271396477885553340501525788846719648020524672424493955186437255844099960063063002898185781127353194003444827534004296065595089225351860155422289176429463530972839057155251922006718225204483456957283024858158777835437195126859654267081696079823466167925926073561893989559028954229820069011350119992783370576175407125834805827806812389428561931111141325049331642605280233039814169006798898037376032099516438489058699369606830710123179615266924530464923746322846279908242334798330374034450178644803988127559225902046536608469102137948423688814526296968662135664767020142672532056443503131171444137713514673671697265452265465106144038202743516102254601111621957755376909012981481368832862481603668992773908339405147143384874769201164261948192396449463200446384746884791115170448439193867653031100824238704981524520405573962058183162486945032953509198580564589890874425683122925434507473734151952742364764180281995487317377212901252421446754042945855402423906471702257004464248759363876636706774796202442768094377854825766512843776900931420986660710187029338593310437732853034371688951848025477991273331396336672506976240044439998428715482735400213622800363878357808619303281309994905965891889375075383442692557033208903758324628467949947720161618492448067072606642394323219232071760037252313600260079381178885240250457731492535024973994254405139909972427789185118923895556724908833225321079886270815640003225278031510976686622833467773834941746122589454209800002909329690743772601386909102791406259851525059776681844010781670669340007514934828540555614304755391105331437574642294862097446790844758764683631789277308598851113550957947449542186298667749669615947444409273113200669786113808590545317626494590167819697149861399492269722338452705143809389513504644375512254861117089139668089366777973099438488086193319091043578607208496730738259379239635993284751004072727938626271670447540757192025039341919725451894831172790246140496689551790799869102537648909648459816709017139351206782839579961226311973314913377818343384193185236753866290190046334332853283434182492107191609276730801323536947264848927644297987068112565462806117260460733219176304741215064030201789320579568760510277525053043612227096046758453127386616521424194086834083758914009511413392954577009473174811688536409418352861099710341672355817860282349820203149986794017404171914028393621051948060481901824518008170137104219745921279840402426896300533553685494164008639217745676953445865088328629821658460164507800003598985212901239590070420266074498878506271760776222550606390745319477188925099058100936729891954099576633538658378098044793537799187712142977461976409472721214023532655177723616341966074376391538660194501776914006240684127316295860806350676293775125293436759607342719967513520158008737395483897343990123825656829078591144258828521366169201402990041314621368063235265086541121808474998758441118362909790891983411875376649604809362648932910439059772563295581388776744695461815797870419159755833500037728672460735185350885495464202930971585636949785764048374150555809918840209343333512819551455518573334888164916769442778240555433697731192014372254154192745059760137984144373599420287605255571893780411489261257983036183801077110050042392392644156922779005702794740136494229184793369253543248404878023177744518417795835582575476184254957539587854945834308480441737087984926741952893230314895899160068542287957892948159000687353733333338638139084209948725511726171087294408886844785081163455852692141540299672098869371588623222033148558174268263595068936234481342247378693946092325660075472125674141034218490131189639676547329167424718993424330280290926985075229490797094430092386728774393625511131362876159197383241349167226826122826312779381175080740895894397190025426412664947980176442016454158813176018972659624614413913192067850352463830657764016522973204708920114691713372287863037038453134194264414249664984474404861773851352937310809985947281511173650719139881269307482690614039286422766278494329558828593837214847507077835511989622491195588237045064582005610170205324844490215022945617655618592145743990095548229413751544136132915043046914179941224609338165136262790282788421381220775894240388406229433172798925941836682936792596042241845941770653019548643948170335524102874704473117150703477508343237333116325876727636834685844486562539187239460827324713500448957086803150325038676401735315079400345572855037001845602769961506156829141611706104616174082484626703351891525518824821272600725957656788991256787020149786679084710663107487646730989091471979879259859062573364973498235031260983098734686162739358057907354908246830497284097732381167082491516373468087051052191917620541698826254760544581771117993776778696542169925785577204263442443042074495489703390434507206119007697363517401952656322139282583120528240037466954590928045259687984608140870719534254761388363353511911214414314850552012358138062649231353833876758091889237975855157320365883176242411691675238145885920751640352366843726791759063705392197981126597708113947351671962999970520901709075898569163890664270423570074450277512010490394814832945744380974626035105789819540763987060787581774072491184506978842994138342060812428390148814872599854181480292949227878324356105549156410917488770670678201198591095890983868839511718380134914825499274914269855259517765361262421572662448896096148297970308420210516027967147856159406461363824775890201102519923421532100601752302574212237542107495918728675189552155329945322689425188409422826757744222275528207615607277103947182566802471066067738312063031466284744338620474325956850568928716265329083278784399650716724220613829453291660046380872563059524153288120937009922989600698139627968627956763519874182401856293198492262333643189930901704881995258827338807953265885144939381241154327320589164578642294526841175188081840509569046913813443077848902114879712116283977344305484614980793562435496714129473332666422483050043644545470274917232078399565086801876173270331906565795475395206929252015307064350471306881289032053854556398799210109566729828730479466100543163584623448744155540713381432344131178842419601903702868696242276246502400420813713504640159934720532755679503533906712721617790603021623997804185763348100544838870317307162552564799599998693531968130101562970978711673069649402749166572674943432081323146138869255334949294118316387788990325940109341115727429801331814578281687913514243955787342059156145877368988080791707114551154762661682081777574724842787971298154823852036895916524054373052466728731303019258295249876393209857312091610561357220176392716995986861088676061338436496169518654848604616848482407438381180741734222448394789399827801473422230578654102177292648209140948503501322415155999901630714781485270516144322582547801434401095336602393626424931385229405475364168364670415743005583729847040181455710029696234698505997788557369980218223035492383187976298941569772123638440889178927527752847144776218920574254531510374799777068623624218990630309628221177321970823034774545506023858591140389896916662207787683260123961741999762365506363266016990661168908868774133378091951614977054921417118191101495434786938206209808278789573132789906002086339112784715368430438149815097030477088688163597419253413412219139628745781099342483271410917827631765420963125071366926365882135751199875401157902802850780669833384183382667394553683196565717031946293364109272667274244992747322913800983574450913407993085683604846778665354210586680052115426486749723953793642156653587208185541259819454742751611841693662556324193591585695088905353141218336623998780221150424566001502364691081599741920254437873610226712941228298888053367943950329404804961677110728788103161467730371502183528902414648175430954905944887541042501680406999981967193798208277334648558158591077617882849750546856791399040113845624360403574402461912376944022007604214335733872603925372466408966491471465473007219529273741767961356523306780426820002423074121866748669462805878878738299523278050107066101385402880119138557309113805727558936819403093807188637937582154443516265599120308784820523937493518955971581551828048148078313105350968235671612355096316152866585785901952871775464250641298494510573035332433489097997209457291700958784083221404405014741143817095657712526715779817097676384786420648761367939457844238586035649664463140131048667056134627690174928322900432711208192295641589481528265584221926189025305138159118034231088514912266539179448174339043227005068742888199670619606885006733283536146804985960814028791196311274825466404370384782884007981579134452321016686737411212944968134510122379842940219479469166481503124318739691196021567121142279430682010408767568093738982054684214785601427768820188071717414127493674678175132277109046730015309467773069223290953495694491601169046818182723477816197512572785153556986162922029188474530269830156638749177021947605094174866841197276604440854832975049890782580615390200301035218027179209950817839121233970070027832906193713368218336961540826520392716151802279152864076831503299740609280483105062551572262871313276818247801169154937862483224017238370727160886419294211817185646748118569400870529961131410594582938703305286297918826493247420179551244232947629034883495272292830804012226372276110275203800120937520885624064531125037264015399643712337079037439512032028535025474827798093030202196632509329094488190574510298521728306996224219547101651939329769370654576333432433256433136391221083529135557700812650539793164681494513412075121883505473968595553878091947374656627903186816171364161521554077453543804147984545840634474745085680280862324126969399311229640560327310927938491691879333596148535170018149698261648003440278228139858790148628521286746175384850348068386520168074767440211476655696438739675796644295886409577559154192615071966537341081706497482220419135035223932036927792390736955880577997552601903081435508492475981857797980298126412519269808310756574659469351128562797590578003419323476001369611447290131137293265188773146721410741275221010515155865713493912768855730064565566635935253545094573789688358002770721080754685197902156776635596085899524492722049775299815458625359295568858655219086203488574294435488340176616830553266024583599445433095297362056428294745396641017593878078757904014319567264450256538964052007148706853706562711746676157191810642280464382686780641781701710145579987859492981028674877471679017435503993169683528592116481487861286289116375992768471088743661617762393098294982340641378280711217412378342224144069984863288239240656377438980846317043398141901704177045856467859934941137671018510482883458475911298599113261806311665209771093260254577766404781139798120273962790521780796565933483031963863726360548172617544026268435726451474111436197474885328135254323132104065537475356091405133576448451265031599499398475912338676258998862826742421410656317028268420274277535478527849806255477967309562135010751357010814376712097361065693389811287700643950868226352419579899875244531513268435771252695511656842606249795300564134236794032686943202212771552845229455906013166300233297861842729369705425640895722473147960842279960643121155722898884134069015706079169855397062706949869226131550595458162406654276265360989882469228424022170510920884522641938004050647235141065446293973629500626870691857435034689078702526688990310590307332020997707019556267080078421417500402487764369382704966754069144895634000929852354991296996046540283212995128817182931733802589343360888639561881453054936332102246702371234907974068125687248833528018208796868376748932865951563500158437345427148615342497125226151780864718350199049932178199155353873785623455087143139050384328696513876903290534015238428243963913256867292722487084779696809273656042151690402300750173661949935854471440415221410647497242161523037246612553017965334543540889800869016307189158808455522198431157422312945196703758626058776263336684850752752847903442501653764916331792832073572043631496293326217198412041496939002157898758405506883631318978280327068182062011470970782464776027629635132451352251922427860447660178455463586895641834408259553254334088710161510703674682452922046780848531852956030260393369987912529602307327858469371627037491448388916337500526216973323321524007087580984856462897791809848253427212024812725655515050305700418119895186092167878092709372414804711203209275216382196930053667750846835893865445281522353475575590763802378521519460182724568236395490568125932747289545698934471141809813153649597485154106854609786330324864298777018635531367450811076763860473346402957688211528898135664493094931043589036451413175524147809925350591481309531471226234135406460905980393007295409692136945644985787813148498347106185885802583353800866348220745875475776920674100675717787021480249068099354034049780869747523182136878867192069420344186215299004686685357497787101475284582152153509827098635277035756293849313931604238871689907398239561898872218842061190277094299032275736687186079770707721559232641813601697172777407028841345717732062530298816172640649801780192696415503872932862487451156694400901469103714665895280769075063099165801904028249123963456798392695655715947613669438739333006837383081812309420441592959517187192492679792971295029491581185269446544888160644890910857473849722526625613598337391783194959915065439983793983509005174338788171829551618447325706942293753652551534711785761849774779733167716071499421452638170475227272955705001733744013560297812168718861307295720086827047281509944936557613530068382030072487238918604555823405676318762623625890434079602395529144081868873503916372993471628157658628534654447671897796640094342024901643410848630536408494091288771199650698045788071379779515912042538025709198604559673886019016344148290099729713922827786387126308017669213704934976904380819565618801297909146507544068453180516940496248454952518633632422222614586995009297904562688659703930983969560235643889686329923323765908114248603580354516978206769488924866383306879176594263820092637789031658270502911378572975097400493867535805163232169847363385841973520487633945539464273928852497451674899046514594738849778743657589470771779435627074325722855361014929296756502658510060032181461536129285910693432148786863743429770205982545109580541744556250811648819563443233555509154070228734506176634898004928111484860336673588052242980276245065806416616460933096583227741201687004618647087354607594600235537343636685846300082989115932174654321735117553157555101863096588560274473288174361764536559262461764387774037997688608018414576447643035712983995556915655942311745306594836250206036438221735440965535395090457436938651043129342716658105214647736285604104271523729397812487106059859320178075773843670656311350685930588860836202347780649879758531784016729059787657028138758026032333379883203038968539991452029129125226423489661976339718268106023709597596629809185348190125040315899625204717076766399868353153196608687529125423115375034755005153674068684699567677330577510792350490345778778263396473876429056401644333168224565090395700668568009825182733058190424322611289485184918822142539686131003371372243018683955964417346708417832040075715124168083755413148247924004524308125367729689704440679643179742681593592031358215146396789238533146916848019237856136657063609422132962567182221408537658070683461685834963756556481521327880020825169618079848404748675428648124718923245727848809951784920023813214950559768609780439227213656679143255838729396288555753189851339047123780845594071844832836115336157802570583643859337129234780510580916071579237173588327126164560656794503480990799720508422730547419077811064940216016666629509459324696808278858738268960848774456118379844865730454320536892684034914234508815351016785757066687495637606663072936364979840910528400845462332617818149797614121818728612686534607116650955135477832306274118114820717164665265427099148478807776892823457954861106715049473647399736480665299537367799934023532749648010344600085639769736337322294714697302776409407753962883901258246629396938987701586208937991855169330846381599653959133926292450056440676097423169030780271559700744418327838639200591504192666472875278979549277034150826391547896926883308166047956420911237931251245238262891323911425925924887235313534140371673379930617119964803740766444036108277815093719892667899588375052554760929420018430744438964934968142535424422875482634672599399787959797254722441172876007712608840939504811921596748873955586267106549030213240224770792652497769449552051080564104822068021729276356152237738510636020972031378948389087608773044443391070371387133163749092821549212966094355995765425050659702392398001339719254398835335819326042355334640709072858048652141533903522297060471220130494123455357789547124863000470556288945504460862226648523847310733172230385641865311802179351207883678931632431925806448500511452822769747028812975567230419389696691151684034252191266686056130038452053893369112100812050252410879522034623660139062940958680638104861567034918952889959443421807536331295702241260765662837857763105841332497008021096395134916086420519405513798037382651472598999021247513597282764870480302409576924624369255111392235317869482928421855572437473618265779560035189015876875981442665762658258377735379880116858111611885458719903282377257659747925555015170352252043295945668950459779859313354603058046287121050992002653919990220328029855134990558952962035081185191162393317684154510610655162478821980694146953140216385429484650993057590184254772587685764147409170800507658641633769358146607818722445058379424375762870854540335011053709267102160168897425190172664771091187734019658761319238244016778669447316036433235910530463926925486473405762211664842699383303050481743973119350053676164505084476304732563764216661398181721671531112891024558516207319700700311254050520823829089312875756421875416786156917970097009380501429846668521200159151132720592321337362451009271857273494135289481232311599234615896909789674454130627626872563304682335313715965130004061533200562642138432231482703547358635091988446533835684004841684653835147529872668521047590091051673159246264853570708194303523598755049297733307531722035573470236517079315932787444549816445932473938377943652780031092775354373492970112030888508113851103629856205948834696156362320828310842502873761364128467264503679574982163446945992440232038663609579652731250489120123599962848087517002713559088212824459212365972636236261931717499306027800672703852044386944202396265943071733875448439649357394016544694254389183159395967500993298475531832019709586811147403411464307749078732347323831843169775800695104759625347803929053122789720283171030770441520409620275360661687750953874913564865489935285108137546623023010441644060787433799388659434319739727628098872553596421836886252528684292094076693531017467606143615040224106100657518385781845943097381666527422822359523265631560043634606066179929543426812782469802311078319221754882824844348942155905096249680955168161417840810580681730090026315272179607472345797447534390082662384080704887676620125669754226324768414436029961270632036424767255662395841363346696342018339637825422544743063280535146449208028401169350717192513434491759163446481547381600589645676084057980165902557489767118772253952700017838346180768335742506196377939729071866416577565549223989511605044361810205941685054187658471590296259403076771869386054624379389529177382974148463926922111853547905990950972997607473872962647276052104595112827435631270960595023755731806195452598765319888191583707806094607301046153140796722525757786092730919024691929884517398716315076857663518649379762973806603165031986181720651187867335919765239567443188879533652290886520080140499811495657664501357148699739221946031665890119202261370639549215000080968080493651561790444139936547321194227076271680662326799317221812574576091524551670509765492798757928496616737619368534354686042600792782105050293510602699110772925833223313894239808716540504631465861786721994997496972905979157918464803703518738864382027060980493400455678609307653826192652631811202186385925165692586594832744831643461459403696172358059717958882905838152369788533168230133145229299915405923022740585503740628535904597657859645738065216002631591774288812480183076664637707719985469471432460415430871067788218769070796941313678460577018382839283094791609157762283512933081599452697606840265942339288587110544086830636638581020473632094496534988776275786269905353915532791188119263351069193127339766674091486139745614525452756883805182285266087134963283884183684848013626458289540073065079156074102889083454659625380869625526263711592359482638454560872583686037619817067263374481287637268299887772294454040770678994016438125002755420169830230695451162998313431071889909862541016002935524415486259137615974787091851534025688881301989218844566111649106326888324234483096288804965797427103408223736673828255772507677153051860616483063355980193407109897163098840874672591044598887595960530329248899363852119394909682837108645713523456015804386429710353846683059689879680835873497857626785565888383649516272354520708779533467658672049161720879813149141698913756646454569742166633880288709311596552908909685832466209423687259552095876586763964525810627609539552914917651817376729189876677984251192168075525816004692672892837696502864920879878222442107140464673074851974371397605307432234515525321212358708516162852145380083686124629515480394533296837736424862964570243581892316862264994992186349832468121494673751199481950450744965970432717604013383552223608153400047959819368522309258814575459795669694756238949572473252484866070654288256287673592883976141961905913290839946916384100532188918694325657206677652323824731643807976960444572969446502834306166522169870802617575705124164111092073577262039704116888594037610584331302931444829065955684296487296377161321950732199716414417025654689461012703082459723841828360403116603489153716076232863966616561856000946715549151974673084232558676741097334029846169675642107632231536789799885806831989228308597633750929464903879107437077400846349362362400830084950073558164966916759777865808111823047707424696436047327935182038471988961170359008300455685125280509551066769960237387823537663727822677405205106153201899838061149198595287500266294554227352605814894880997940795238178862244330133236455432574103883704232398092141614963275539566361768675243817655662510133743046480820755285156491167182834541304723879598488899915627591908215219594535894398739198788544787855883930195317034712402500720728681966631889154092375629824773736358962930373027486492513691978890676358246153690757238118890003868340893039793751993065381722873667753851141716182146406300539934079367210950941233283505714265283194967469485021225058627404548110939587405372888096652279949131350411485737581899491522734135204022017717426975610324053900259385589578491549406875910851090044566987790296358999578580439959472228433554403913845515754590510122367709490042907251632725064389114149403143929338160492141148298696151260756811930048851604289256533437306862399621812008375911431730894419899802933772305065225027098497205959635360606930155405423580935622219990176155133694756828973901009351898868910230562033456067478159556373737243150513104638843684616602221058076605501633844395133927539050471981112677893784252742930717142873760554379041535781461948559847060404010163365311893068369659397595008458513327284730880048487740393171839649232121257591559863968310050334405605278988766114724308920739067717133448999590499556528668704313897455638641950652562633820072560532502544979125893728660693665274756954585549379365494669059562648221660110907222716643362714785994645999926749049549615126423085297640404369503078388756766522322785359375567721700544176152275789006884922246472581006854831676168705370471402932937942957597129456134524552754565682494397143313858049509737206075394125741562910110232605185216108762961134662379674361123425177993400596014944329479641646003108837766887059200488620180196337697614505829217689137668547554193811607470643646183550950427836763844727462071613819711917704444879751377889228995884738200829650704622312728062105126991039445893607890442906612891216488673293277124505955764999531645688888539374049657657168809130392423485693764450199912028784002735463631080280488390398644628663159407840102917796877741898286222270285329191455035549524356674461195336689703928030763361342278481300805902452322986453653475937924700977123725148559789622335055037140823738855989996357257681528249857323029102096633655298097518691642928076192749832296521944816960437154884759085527235864404802017581425754005293438794619643196734902934702696186973283056021266285835941429141764327043883997140379848629650744072265264163463428982919154069458223840053228719781301203428465115000214159693875605989584674337883215104458173349102931408492619625443010694755863267361339601315493600270288226537550169131948172167727277488797907130864591251768962270234348267173744476254036044361238342663685290979347302622177434409361004734383259470556179624247014795775993839612828218670404659473671346740038028868906734350560654196291543982323319166341577275777262556671272875677647403587825186324014293512309926524186105365262390689805767959009378267212512205511131583478239251417189326668486967410493386288058933141258364873085596852364870957352273551564173160005704356833751285864867987776268789119701741989262975037390169668114553105639638913349194784911260028872720224362955411330210328883125217903860915341167857762338801385636434712302531331275834921496268168434618056550643768648443216916009932979358869713263459480476580167302876236263754046417737117123337555290761684576098412031481490671265447881308749669265249507283763395824831279554241699844491415609082123420144663561151439878692836764403819999607361303565876406833411029087823685230451771621814804943262467842034037569121810020485713346838603164091890493318702825651133422596513951836285179232653400316253031177685830439058553031434700094995404289931062006909384298598494625764243642747550200929598219970537138567540242399582249361468818357839052925627662578147628254905215311884516726792585106299641121890474290326898290300195391955649073481812466843389938765229124423119814574662009378080796511082080920250037221765646622654628516780697561651229846904028763819653602313563613649766389022197923617233885491819809573522970142320454913947600203098311826513470831957908274217797322911001498110420929199727079391310541688430564766806828814326393122924847528035155632827952732656083410881616979610239630665231004370268230915339990110185178408534796664576963995643862325907256630756039470551358975851270259376353252345454607115787656777517132314071984930870727417259903834799083775222662385016189000136966533102252957386519369099362589633379104117758605187819207087776560999410980515517605243383814985788441580214830037738072942220576114221873419120173809741916039089694570812869196186877182344133397780597593991704085257402459527953589551683671046122414148488235070420989494640533461029814818149838496287485469500407432484301004237023770269359497780909390095551642812541683795122263408103402400601731856228367117879128635057651221052346487547089228654757979919866349134336745731780800010159228032458041560620405881497336905468838305683111885642692744666825628260569318271149711079080222167427372520560852398097051928761728182949170796810849563420922156800522265765905027081010596468960041915941397134432079748752006197036214365310768194923146657468333019425617725802965628710574635667936196429335090417591547605643722848231520544883264267630871114746063603473283432300941904208674812321963355980892981390137432172319029440338021383503784665824784928237160284570901850939986308768974636121392228744643728222306898144271080876739847451986859735656832475850237902290438743386565016354309204949751394651712042399638048515240438271400499873660922159516794366552097162467190287849723430687941462209330654035151465333534381762121409749952908133436688742196085463005629418718571989796549038922609940064581345769898902937525260315947935205172873837166700721547961956375740701285592607563335804361178569570327151086097332660021100882712319916375934099712303202613810988996422209731755274142553634130615972948437204856730536334535661832196025697236774376640419855390845866547731334424306172126008629760529672078593225622923558462628463331892928319836100025921871137039971505577493204875978319767136286320184428233653934716363794571277158840984176877770551144694652404220885382028249892963950846704657019347597460108210900223798138939388917366199587023532221962941499139604842992793411658670487785711133726534928566536892887508962608405860497308118077965006010068109796230455954801189768566196762423893127565241655983194566147167582205720515073318743864995920772921715411527070251573742932740603038899701817639249284449614498921199600874145592011971106191781356008311793943700218567880801261181157994641471730354790676703916264480369152300163809750954986478577153019332075870767280738241627299798565721981668444519311512147215394626062415474788449253147452223428981444393566896520817283520184910446850123635346659443910177128605907892320369817781441406576579531416934275662744275647924957225617711224415082059057260848147140459239530795970604271724592752165506005137153967772426318259343164959994084881348962944398019280504469903074332958696420234779944060855529802601687627459481652470013204750956993158251056595655451124681216741044189201497129170591132046486929952189360787257198954332687027642112079711125806343717907028536568681881306493152903586491231366257190281160804499253317309331886197389137211839634887920380921481773975151215550607142123784782495146494932858500089951732313341794491957195493738102251620433558509640442999506549482181749182982098028501613576469799306791322247849851295874198976234020482642870620205113048454320745643630546829858997903588405564610067458997230028648958952414533037922186076757219603000199840534610423696739484659819890332264471364177828858318615641089981063332566958801490875489118552944475487777070332542816540487011452902591625351980123874140104360363092052813996081857821750591992044407167990153384458640154205422766039495098525317146476566588668145884224627681547177489770602016193969477385529779517920639342593819635523803884248395810392756705640051774584154536477920170734268207895378424193187181125134001913549075223018853664245615188640302650415206225875269746448305960600086648084673975874694031004430507110080328575618526003370683321783410069730737036403212982503954591566451625180163585488925018864904176713086234741645120009780526716591409458666952971943266261362755466627639747988313242076600247082565551686346541573227303798463349743541760533911805549584851710030650471465709174000822022033342084271621025506998295166962322792052067901249991059790172386421758536906421361877237109133881499560018522736296536092063731683978473714984116231404795457163102850830964929465614289077736030956891413757372422008431953676737207516723402117432726467077757072056644653817086104304913019933047479859635164887964619449295289058257309790409506277206668356944279880549619837512732746507601821215205334922080851917626617083613572333425100696831041782079718606502797325776115716507240273651199086137670389886650327557743894227581566173076972183643680194219584768114175757657802259412293693762854837615011371209444777267883907263765061893274494741092640586931989590585599696009720463567109558642594222507134228108316107878545620838655268622496877558956742840096517078974399836452194028789699296768855225099245481131679811960958449994512830174395658645542534924673319276992922114986442884274282189623437770714914385776080580848564273037171353764245306793786945790575233507643881521810656607927075157252883991851571052600561883391085362212756884261536867998180736017087567364217013332426353061934635454360172603885525567745806213146382054889977943799486592528073247712770153356672430512874551113052270769226215106526147981396130120548259553984982903822165854000278718281794527593457598160626825669353591091970253175878958507864251238169022868440885550462338617680937438712550030627677911446042717502369048260534968220034680627979397528237235197310708566623247325548156691201846615653934486047540357405735326497356594491899073616081176313352491857472402949142219105534669423028663739063083795795265229165823026099765074091873340013305234310103037778507875206351658346277844835368366559027055834947961298350561239433902475739693050522951308110467091324988204831537894226132235566343098114183098668476810282571550286827483833975719258734740115366467168262937015526822442127711052390917969319239127737977176880154224688349620140099732275759329391772408646348928364644435387618113834143988823534353062371783603772709222067901491315749461235248649803680609448488571989384119196847152483689960814722241875431733533374236949008176264368931636788534545428571396360327509922895712580324146305634287293186997117594565836310361683515735192411529174585686548397470920699815889999713360367051251783221658704694156520627129418830367286169732775954748983270093376170910380551593860779751831647911315109183280127525159365150488607939884858609930811934938012778967091084784084709431548945577055045503618218115460265023335986626211907545728433334065465592365267796790097240225590376662770157178745301067836845974624241194146092702551816535744964080370763592182048070317078004950305152791980468414802926237591441093882117584542230025871050989743405380196080967060017294461315943539319021552498639177030603251093959660382062356444137941788427652406438997872152898548739082541948112684974003413805877029331600234975233143783250683468323902948629612891771070449877062308584555830072538581936999562749473165520895617944627647768827751115761470499019482284323868027347074673862814752675333720121010716466861961600633771352137821138857212155477397216933044019471665348302682850980553100367604179853359108399121356009460421182548283826080594511633337459993309854009095675531282250406764600734126635440624826166056357691252799813016159259426864869950047247753327706499938464441139295589691465220429908122439062860004650357381269521702256392168217733673202091586750450047889816870364609615184600485574143988172609738447212746441954501983355932317688295578306458020898295276315490735500546541111137194763043626173297859028465131916146665516766350641193345758667137818109841564659296236576908362716072233814788508550638863177490787234919198767989674636254547126044095416819779922071042764025154843319647739055810496100016470598951578529439919179851978060893956786471973638900985242234000544223763116403151864279380217952656842997814288383213895982439395887701557990783944892067091706552034967699860541559021057651477157873786751371254730446603349942396378779627117683623689624459677644019969786930278957043516744315098022898650128774540393407397242671605002558785498888940993842091001681738748983584562893527517079117054900054362196217064294043278062798737866767302228520183704159213524224275962837503729973495914312511292396853190129753561162967230848617432317638929881754024703915228062546847910309796282934304213394022884129310475940434608356683432324956136475425798625445544988963516713644459379357350070277317673488451748870996682508104389915567709984887401788299074948442331678830180605973715188996429503241991398806477821402001041117774789688395551080742111648042275079877931031511511084338317728872525585366801323192752339690786930159258085241915908837680453626089750834211044419117285563214646123720291167406146603573964319013326735113831808685442753061156822006420507762762431630907633957468027315291779908101253549436125914719887523866639937485253979788879307769281320874570272961219939081254625546254109008343052040387108383857226421767563029049301769295115288579085478954134272967908455152662497710743422153765699549216931190035675588797196959360894440560279853228297459230057292902250191869049960515196346658738457662861655837092622954905255871509887801915359854417167213573070063569746236645069994385958653045816955766814151886375167295828551947025681486752161213458539326242521744695255070076927008328053505369516383702482620563452119086436094550878637455568841651474777446606868027320905274568175395157132037546217069826261484759071069250556887184036300053051386810957538874806334632999487695537434810824541310981083736907075104526381461571373620350563741206115436983956431136731850971749634340583229072358340161829060871658710160130421591917139023645897059027348156810722898671953025796837645639897187692251759331558679733407737330432167556539107557542389161607021227173759207005630713684374782121352889897986682177628325725333451832303927476186540391920879656525892860819307040357396420809893210894322008519941676117175273539788820266187445622820220531528314278483033868602799651751797558198833310256254382304160189423391703863378357921032037786682180618908632648674196620083453772672138030048353496696010662241386427252925300053729177370611623486543873603335731512271393004752577030921799026910568336986814700700466807131900900638769068942035418676510749733938247585986386289190118498516056762720635681836412579224498280289965361861777668677814102903988473476271790234863835367198841815377642843579068363587905670058581213427848601734299273114985258294263813065849793217196027188839888813672103025293737306872842842526768184950327932957470704537523032086408891882046920257811437470677421043931464527865896380704085307448240780539431479682354362054098652425446130960956897299253200046937227651926452523471043868061628441502632729061257192725776763140224201856235148905903061312244081943896347125981067222308073624874038823446428048391759971189069304948686931188157335894633373137830646307582206036072722165120394083173607712722910894553099727713041310614156773024875503030331197459367823569692069290086840655178435506990979613012085913420825236538319721640025784386531552685180455950652762182978072927001626238075398453178749321457176744284224049806304873363455955714192165559906931601168545680475785694458258146525410569094213041518607874243640505075700116978451599285143636331419198562203928363637698073696424802317505295501373358979603598744425903636907172462752084031212380308926131880232071030140461195590396734783221472762103942851915451503469923928686060878948272040131551785488924211858750326012076622758794866107806199431669460231246670036640694569880337894191692790930563800771255696111385511106823071862635087813016591596657199561663926952401328193712268673839971023130237186061442402816750002785237013297428005731412337710767305263002918854321849520377262517251966548985863027520198580555286556701741242478139844114794561403613372359291002402880016954282527637001726055817408445343080511456901070920068537510749800562299567939370360942165585240126826086201398966399798182668381464268876294549868698695601835872133246870517519561716040850360702192659349072702510994757252219108424455952078308514342748979583140906113813687321865624780519973309894011004757071818985229378443814143454127508270984979196457929208023550364363535096012517177168056554998278836687203057953323354892273581439095605122292942545110596156659899801588064005422943187694927076222111028476180826159644660270430972905492918095775775902696247824342719684252106673708953912879269571039131701552419895665937962888409428690519523491907549396833743385108678868311297484077425614288802420254564707508574033953987674644706472412244050841574598773169274280657938451080829334713697457317170780121504655607730879875787050244201825130662513284579379669342674659176754473212872979925532293956541582868358625639296227016169581436104796463370168169038370025573649440139581902290259043029179330141319851960060539395930151180348550630214863817390059278659377962839746005016600245619242505593516523938993857858329225917116476018331586739589226917986771992642677072280445165745545012821713074850073677934454702487148837188476688243781859855683230039182925072221247233954381450812495920572738582163867174121455444072000774625667799993033885814383952246841860609946505511749493126247475454114900899298880244751171439414717156204843166161483490190460011909296255685162877604368512092217653725203066326102792604571211234638430897691005760760382050626948945183133681297570084946503627830445034242988558033635619845445054185239483989082514808667971595308723718732952461752619649890592054696908404522519746654776340655367050839612952694377982971982255074008724675796073755929885119227004014089922309976925072908243725293025365545849629334370195169448316009981695382175397508939318308818349025619452689772640110604134908045313145010713937697105463476654293873327884965077889115704433899875968620677669411702353257219697006335598012767963217354057017373873456002788461555755391888881901579378055441731521247110485252795976660872618979299145615755209797040480867560544694283122745402563321911571044554296315225230436082636308442210335683371003474828646197343120322024724439322933802978839273166096657341966481397117329057631860775941914189828747832911366843302535292524964792110196464906521782428021658444801194148375608706264682217052788555866609397308492117248898807055295004138866907636839943008188779348037755411804546951933743693074015004386915629027469361458814570456637297627949440616093119931117418045204492835456146997128768235017514453738928383768007204168069639536492505786930809325864323795839791850836678526870939433960987834815131423664526254152492755877990653256163320812718635364405049101813148648797280648360849666502489207356975362171904757205540792696638443542621309943524325188309713530823407873141549480966574879196207042981321762437810817966000036278059616864585833110248343312510293526638577653971473510052211816165672635135384136775558921388335613754616690150611753776496372976412757297961854600653058815433746646375024676618736828601359389979661048870373212998988077189303455828424798632586508329716478813687836934043158699441584056073105170080740906242322983421483645937540666898879902452967750380630886424623540006792050169402576684226733377623470073850861041947110699435804534455704891685726842546490009371256247610593669638899731278465862443799144139951569466810839263252231819117286400745587634104562885751255056808152522939279259781486174754526947763804476995955050607030405723074802347057423446724103122965349505065170116543132428521975922325039634918024654316346612918022256977140890212339328788604173941013526311520369111453920038754109001217400800370764068065824627805087557204105425815704573154793095847220829190461794537539554705589553490462381008166373194550235848101992227192912016177520244466860590096640142655724768436533186703522065580145891365214214884279565586627059338874918786393912310949856121262994129219570550982159041459138611252665621879456917858641408418466291812312771701856076429841403475924859795364139295700295399600044765241741180636090891070329935760123567450289489667243683113234827356381370078481809220454448786971363944071406838108537502379067925491990743545391118754416978797744588070612794679102610597267850687549686191026642898726604155400035593706209614687774802119559012974434756190369015032298765074421165940749484642116358360774214267964398310275681555461210571679153107221777930254573228745372929891949546444430214743494433991526199764617560500446876141445197137848176211789772414355467354670242507347836422189788430240648952846314388163435075296533334782074398744784424394834378621580005295941201695844997595662195314594638517065744940644541377088385322747539546226747217816410785971506263948291174373316912308779475584016245243467316076527923038336108403393227859230437069614233618515120201630037106473392360159409348761413931578014737552099930571439690936141780868692008127299950126894063381545942618042524870705529369512012093385006182670089611255740262928428939779819953658533467689013525133165447848621138975793953376384770437896000543746315267922612655403500132944795933203899504403691234100895651264183332718963511651306511767120225793729061014842352467437854740469612582211063998326045158125475467792932216010039689183516686733683039313629853299887287731336514009920077181159495852996478186606788956873041297968193338686403654299825024897608389872787996832247994861290621538119527811750653500768127034638069985321345239607040850382203113837312467354408540035498055988976284821825502984175192421381995295183553440312578431076669819823628904985956993976147201950407415341828849716367955572998115769289902945365175441526532860972531124706097743100642810215723199143928724718284093996741383269759137019206039345242446281820941620536688358917458615199461028929758611633262539363485791650895497475561088704308265783353395487206043619313816874211841752981800450246240132138892154135406316330238216156546453399121918866588028283036730994712897808165487889720625876819014748657643264745543586479660505441931400783305815766575393391766014969017251101351930327641254379081724668999981078707432988286063210542872923068461896542162578575560161255234030058019732943125553442148865206998097004301429834507905380923445824367943874916281483401529428782991908462113223908762350246378918770122675476308791945324149114109125348773470452902228567697375702167027235152036832281449865303019336247358246400226530178178623061318267347574556271918313859370386942322406078341585617375014810320379510019132622268591620758399992841425836075502370367514373472500610845652123178206902693232717071701807175007667107024383008821349562114209666627925762947535365612231196303487297992396129561001441176843099144359806556684733183771111489825166860528824315829668157736742930175053096196635158767553864128836864640168032901020983641453901361820123106000007757966076771445323744903666453819033035659640537748486377056891952143606796432870265114198205871409962188495412759055289662717437163787015463118234995808051672638789869011697057433252523306688114102309063716096539338291754247405722813182485286562201408429483589030543317686693886272529901374301298828533204149259647248708428870868121562155659055520118766992099534928858695129349256205885299759459814735055255033151457349813024963566600571562129412882016229998481452915802727452943367134613398954992519726142954671341106550874868735678990505261841864946700362615455651785900747434683022033530621263319828205481038832943772784801543529854234069099151220711408191653284216286828263663561083432356662184583496584243511408252713418446704388546056408915331118311239118605398781167627676137036584284818073139200562490471623282329910806606066470626403542859190079697347301887058565429921291410650831050249211811525610063742292432939047324285859043691099780873687016127156576086252725630413794618685327159089484682802764387819688303469013986309935348904399396141313859646288438544854517861469894836359302502333888613866057882534938204297542053481966053943726434779791355298709044097516714256549173418657402833105637868993037656181566235182047554994194349715215489121425206470792904376212845403635654004264438858799154465265045884415022083481899808252376263783493919299087741863311950233355350795095501985044294646003792077032647231653837167797632255104615083447057278649843104069195521190290898190955066437540036659891571296690373826058688622094315856762141694627700344614655883709614541838367816532646717988704751624200276984105681049934797417474275556623834482187239492559872480817902886979178082113078266738822717569953681581006834944177014110353141107098279679604574215573467737293131835742900988172510707001027056816105909256197738725262954967064382697487631527099633231538978021419584628370235855228029775802140619125039390009549720689692293515487099579621681865172941430023651007141027555894312623499945262174251834073149518226654136707112054359504770529840551641440823160400941485932276718335610410319523348484607952364661069986963176588502819331709092775438097502969129282902871827186867656056560103883625974768993319181508684635102020444319141590772364683025539168088913774267233213994712884977597953977347922967893621930992511200663011566173906575736837676365937189211422368499120214755719722305574100572545257245385556505686460537112268226795019296310394584417455806521223889346737778117487711085358563651048040070235138414083943449149587336317033745247442076903104658940280706520404901026101806307144095089011836528291001042631126121723016073039142782998260548259374871970789455908633421705653769115599133716964152529125865507192748345937113075626822331441930750599400673536365037293550076798042151214351972532560562264394541411316747298778368714099675896563070199695608246280145049119912407121857480537069396403892123464697871225506696069651615068130060629410740080470757013091617350773347556487725473691225215098135033192993383343821078855438332361873569071608054558098436700574350850753199409765965336872104349332228061883499200482787381125275030492088881748464283190165396006304665029156208905322947319996678910429991774534128768910309099767188148030932716269812365720604331596496493420535930974995546353415998438238620494250693932014266637836894812021997614179860830589838293900673951455175735499971707538924803152941090118514926140875944737211593932892637050695832991810086208404102864899234632603456423704248242570639091293808017046596536307241449281837553304794862335063366363758865610589066033531629111765979002365301217285753662018901016498159777247290540226707862683387773011170094318514035776219454816762064375319687841485184258934481405295839963849702539597621263597859456691106370601332279533419105303795404259783041376675167497687874652996491783423364270007454754819494713598668069156666458532914903082320598902812058781268157674309307210176135822631899928879732309320101492321263732671517964955489689247766118431545671617574939384016165229078440894231508766870546652757932388055491266616937775989539255610804069381182248000513508093720466860200390550091411653944819959417321871903409718825590726295842837197700858179418507010239247599882896135737787564358854963425611467807833405187109513125759999318051909219022665615695039282619479016017023122433057544312606544646250086866227480438667441944201539426038115578275400004040207121819013157464010934273357483361014694036854512564432034707528448389317545617646315722092878102799120290218922382824703505463383094194477974691308829245720502922062498555235510565416430457629886417680620174113480892342272883474543201198072660689569258822932702454477534721765528390806174300254282815982876747135983139248677545318468446083804815081566354194625658132963595505948290763301068156449665178803283777234426495734762093975759557930638671004777439340064983405507236218119894844821271727778513899568490447627008613126978157757229546476033592735563430185152565958292013820915022620088003174972853899821503906535593312828283530229104248499101040960080812922737134515814582959625143817175466341676306580012467619302739397496828271609649437231135575629078101961242402981117679826186714048395466852385580727594056093297312405555373044799293256493279811483183320213731115623240409254441936217129357321551955582693070362086939103095626257928849446571817529163361050844013855636792071157188857988513496298042756138550082816695303908698962080290303553800625563214036681779081802116484387794827851293781711519531292060253499397876175464080018854911265094773779403380813851658217736547421223193282082698080401490534839550396438927820292472373482716964374678135415623079293493072403367516992521889224056696146996814738788518603142897635379762432426981910159665618186293922048809589153523367722568736438466816976741773574492402773244271852172458249037944402883067384456400185365607465417560537108254681792569364696441802072207679501529746750838413523113561625499529176351416883845818879384276920770036330816674413405717150430764455055708620196218750902138849321558849314636118516681921933331068710415721922258451362322199002670838022234873215757971191139682680384884040281459269592328395964188662679614930515982037118628310945019769133557938815895114153272504224953588864505295251885697664767754064198964612563278225970170233375585208862221826002853592814463086109070674171612612300225306229432694397803268357300881624868449638061833812906317206669825392733974004947585695873513934547695113481873226417526311905776885921980237320935229881724959823218020514164654233174602677104795738569517467260280709681525043733589820550474008030133017558152271695309675197201612009205662308775428710696458634713742806675167831937351325652214838331736723081198165342239802624743765589476756921634368776691564947998944908953335482608637982325394916672689941674998347704699021464089968375824950582908145331422006226370265889085675892630506217725045902749909993279197623786666529191863955876879356638777647427669516078960839316235252927832503641558467802461815988051429269144069896524719481933963231368546341865090928413827172521695383620063230092109962062494250608111814867512981608654863784916838914202440746125373499118074444680045657807234762101130684460779794221320441751848161601019084311857783736923028533939927561111606255009383801593115111359078521625604853869143238122459042997729469643222737151895258029733660453560070753438041266967058679143693280921830411392517937860772590433010536938605645312282575394317372233585221168154304436358497427720836342278796178301536250280185857848442597198671328342485127694810821482898998745431722097792403608326198732536158595601419384136517625882323166497136618714988209130428155101622439116045249633842565407862054039684759841372950931581487773712401871797783804789899494365429776732570157053812637852227469724678742413007936423284978184783841870950009202723276546498176971856311594683012099715472735317355702526409742948625381481400785942093756263839468673716324465006694756705315994726878112561704600640744455807429019997012621053694428071409221661518213079348698972837001195293081073666728548798578714822353168796747873575266193854236240007139113056755503388529014237718541648922941556716384588614111063333831204110852764582840261025555845472259375961872346364309939638012344489255652989827202990036784391510418687495824429546262126155525198674509444652902219649632955400007038521056321967658248422650733125362054626026868452266096888043838047437262323316166601591279368819959405025719999329176733931027100125953609469437966385968083266431931649658496339772919441451837316675736885364518202302381482637706530113911289136913462491327912603253534591991632345277581424766602795479540704330509573058571051219829120944316533594324084681380748875387297085375441682806609884935066699637289794431656792687636706605922664955035210430834357140335183877561742096308666225048152511378485882570025040515838618361645076359197566456471215061989852062746107207788534090089741333788845290560643246783723784423811624539607897311433337060960525973019965093743954562466866281243275277881785764509786865491389233961453938720160995472773168875997332167711844199589484861426103891518757536353139008447216715931361056590552306882270163900604646542371934043098508250773501548519931747183573730449150694975724800790842693598291438309313898554875494232274494916279219117441681762258515329230906270288626273271727137367472885363862123221521565981401434617442086412238248701842176211379848001289184611502913407235104009968281635515588496259347022842452965644631458122087796414813974052131898287854284269657822434892186212453402142291873824879831283655208388110223504587132896511975297239395600114252964021960676967957581479359799931418498120411115428221651323925590709874816323371019161139791981311334362875608519136823562637758111952015928301098024561701102225736721118075378393997056197834785899801039586427329468431331010946879646342978777226821944480569992455368546016753353994086181176225929427764715341240000276901027411761923992248717212932198828213214581558330810327676656821576223286102357888866495575706551976714230950420576201061600927036420023404509720835648577181668241511926944850681518629351905611712803659267821369850750877498220731933486197900725897758266414280631975955986314537097065477664768007258785006309940108789455470972063803894836930369700269745829254188935682769767592328677671016980350973276936027288312103987040472950733573175722327139128868230896977588125791454937934298535944730061655931505590245069290180294939653193727641307597943503018619518284940068279455659277338106214901644988342847501530408357214322458926520002752148468861352026832020123565045190191187232355916703723297903459787550694692772157114718237996680746390722945122990853465326174679733821683940916461117621210756826473382614614878022120885461094160724950146164718017557452315757256491655201696462797061834737046196119470719316611275377707519894464868916112464067799340622219650686591370531036233918759281965741610783982987951386477074064514224493029252407623686643359498661139330968200431501561171744028457058929342504889972302803590243885579715131545883284619046631488813005446165010619163392539632499566891885581207683296137502319540263309630469405124798684956587276452876970991565736177473391905312486844946258722691209550207072170716218796791877607055804810151922950743263378200279183115536826437678875799119811679688739631778145299544256657730927567143291248470230227864752245335402514079094918254625352910143935228966648242984559934255755917775857582423523389737474844633400472593135729262448398487770176548131880669706150228893096106568820300579282477684565057591640181294558696880326458117051128812605060822201102948137886762347888324825282503946688656047914724349593624085753393149412855950658025762800089063568814923209519216400318809729991980254670328632185674487704766797400805244494123019257706168607933337726166795237231022560304560734945720635603131707037596272146490194250879542596683656734967847796401786277500941708392596517921137188850269605808592871546564185389115112448280957513693327438297878402591292425270152380183942827764230778659980071499001127186267256977974935585858827620784419210115012275557417797638627058527065459889378332964951877011526441421644875208632942410854193186111409682762851290143784802343912480472466682815277274311548964625567080291229410470366544127961945872451600591100008959934764826857346824604969511368019113143213023072466341637342509019213619905879348610301168491367031251593211223143289163231551486390389204907304675379060333848146223790476336372022317683354114329733331141893942473793198755133365951923692060556418153629274571724953820445747470974338111998252069390559257390707774360691544834954645439455506517513046593883516308482474634109905199496236797103589927135620109785056162499523189050215581468446772463615546978316832482756963135717558314707897091728778337180485198954598438285966997768692505943828099531163809644381799776035011308707394485192851625490589031108723329631488255920742740143440238814712545595907001193665470967389125872702735685273077751939688620387064305373419963678594085215789772443560955383209737122234993636234092989901253196033994721429578747514768554321732167127462276803323300056382327072275452949421725751941251053916721864335859445349268769220823873314300392613546630057296367331556490979598048992472669386456437462022496833800005055789826856676967114280187672621778655766491577003524611009327946825636771615396243792771294838137972344729096852205312331820157895844795748404966542625020395674682354733532589667464821188622077302441641396400574395899344512407081002310766672834298600575549363747498649085556304880457349808974578492631977514473595857773563077254678529823332546870200957197489619002324974468772535045331727309242308890578830620727285549856746790484861180492665365738111300318254729987787422632245052354172183013256341795439649838679382945641196752277218079707950556444508380435789200441015991008710562086545753586198813375442552127302894241653075803033080796360397960666424281579324486052872495607487409036181364062430201765226239558683682892096274924609118894291902212698768197461064344788994633549049367584304851434998064609544967328877300152215440295681234534489469325923497985578607921934790424873864420679228419251327300496390538838157937479116299593373471044258657372191835913423118924681215100564175537835673127527720339420845773309322939337741474629120414336423758453227800104181991754841646907988966638034903140420857975127670234369730901782041202312016332370681609809619376238353166428146780856607220894937814058508265825612064156690803913301450378737470086191634207868965841313273363314363382372598692478567010819887206149431011600932643020534519436686730988893658736185274628304684865086589316628441742815813439912058343184793314382513612576865309377574773719660808241387978909568631924278782136534145351715120124156321455772612571711542375752304356111855891966314442308693667051199138153403226210621594397427120765465231765198966424475262047151909698917445511843743312560411206000481062834177449518999061022134126445340065348576158006336404668827392202261921447571115941454757056524353886708217499556288908901677082397310205194838871835498343288088860711036176903323107813796305572738981129127703868279932165904053146896325986391942915207644121837405335668958199426520915206072234787011150784945992637942582738100456093734037384700526043240047651510339744262915897859421619027654612437100731415331339560670120992357055893555586437332466239368273381376660988561386081756085525751881822982365620593039848026846892564831572720381963427502449053813871227283653813817411890381862937066879655274018351601106777215442748763186693851665268919096693241241457652517547713861679070746876905028630836414931896559562354278624551587599337404868888059363509476404640422669023739434693813198094553983059637952785004028188017151896873158310682541473547504832093766879887868201624977207965462296599869709286344427118784043263484658241672441603790048629063352273962632643689695218637458554773792770810832099800656037854978617928168238018443737773965967582913220601255392869706131183075749736498210147313999513780119583630465784586218819441497849370098402756006854980263357350276903501334915999410634061547078733290603707231161240341870550788379000898176947025974081263663402332052347594946286477202796252113686448377842127754708906075102553014546480725459627611374316793083227144449518251553202530688993058531948318061909762818016677230361216606781369517176487597906417672078274900447456671143903026184811709882218889166496393868513193469112598949862477341922210392931856537346282447189895787586796112815110996593701003783460366990836605499539314209994234926019517200560034985940409635399105472773946979904135787022632069202545498416572677427946396129743913685217948503406180772850987428122769011413681640284675288754276648347172854512389859157160621106210386115041453249787913012138068893780887857411356940236010861172747490768634586796259736100199117029869639675360563303585985059024044857052314430822798558580421066760697846685856139920532524870355545853701010773500886495196354119145399547557065526277584357657458461258415631074749536770190450884604517896103563009644983256798030526371100903483368327380092585578396397697887574550409776166609902795429188589308917950986812311563053892116814233795813108294191301853876649838432666048909688018607869899694639519523554122354444951091490427932659316891653845246476121029773238049491026972063197314457687223018886454723103520336088032734518925146042837827235737381379904451396461458772415780099182945276911489256449554457820811258549746299122723264649039750796423060026194526098123860389417285256976447427429289378164410225978278080809381188489828665645075046990355036823640457028786192640078460831062566896721051510787599806260533102100122358089908786452552773927454483894942460977309768103288181048377558490535754369854782487209796239602856463370367224447256026531392813243226027749446017801180064353804656177241828844153793279733031656426254964457524785225151403332921802994363668920045028087930145836265592745303693208581992368582405824492867970470048929341036743249680787167805287155715269795387317616139356132593003098518745852607460428071453029533444248363527863091514581116770338434981090347138086879895128909270471036033367710778140834844624686061472549883654767143507897165014452769938600227922887312461611888686514548757124587583194866819607135129780973428900934829960916137217184080568891284832030737804399029801197767445952608724501787884827582203141607966468453384013730036339352239132617464228397146920127293410803224014862978907413563620435519583015124060878235799054599370559833996396427254288844432193508373960444126803498854986780142412013984799469474267251345750432841611528318934336257825555762486044698920810829515812130807472484883173797144065755237092962046872292297505739043255293584811980266329093403989497358092902735650265209686282787669265416618779365146499963351891859198281123717705808512908891479895022969802277536978183264365803065946080924008017689072325841441297192824247203800486590762483298432666125302685103349902657657857996330572857815804481506534147291034011865107527575914621385957555798465331746524212479703562965764849716996877845984143281364150626588032373537267205100203918720865488940491633392384480571756388725093012313790697303446402836948914532187479689036890800919107696487522679319688397308313632855164428485454389551192351626705524166101161919395623212154044745884493177603326458648332699995327613115608198673031798777096885473206973611106968735230086661325732823554513288927073584038158089593409540047766863373882209899947758887252513928947102576115811305813730792569508911106036337471430048180745447071235856967018761630440248592810294124481653304300197678125184887324291465465374765308407856299090453737847639163410697134948316414943177259257359898774141042585256506469922575333866702293799929902483384497963616582601770376024042854352514689293826677378840100504077814980106515655297476502302530481848290223516634907089449876811196121510650807088452894029830319134369478860719723091087906545455929044269621024126508962080023775486379219005822137541799451367737550293442139478343845408824968300559698072274271475234618638449633003720110584884442628228471835669510578364180709087118119763413467923048279991929423344434337452657118519582758172429556975365547653558571537158788673155823731791203581943368590246116895493584548438102182098056456671152278111152866314879791224104671503454122635917402310507267578156516907949753545695466102343506351789262820073876715784184485323312647481696410450093295263939107255140263809723450742145266346791248799219504249506398350575631670024222097888845014235493326447708542073295642006479990456728288273089736342401635598151271655857087602631934760357479711367322844254495461412410314411213653295907318446626781110627401990080057408513360217113291910191481723858110359763233621594459068606885817458272106636078324721105539882285311162308307722493207187603142835549723999909543867479119041206409581635030692153653952559398291083644405778947686559064269590785558892780148115312960528297396378305223965687979329134158295623155010561975005747882584350683894802720131680054492417655413415536722967818672262975219357296762159745729299827845769995818570124704106527552347093167602108874620189498309990562680354732391917438803528523945196855902262991234055623668168420261406594601661426898163648963226705671454527615520840319977552181122228306946402827545830907880095255382670011748089440085824422344840901443930995076045874992960929194486787284244655294260355040153663048572784575067890334206375485651802605864654535049231546366067214955979231996128389256606862453821966213790956141809481962680234837370486445390985796041171310701243314722770694381624261607791747358930604032216117319023629010812414634682390910147478453481264736939378034508669020117854092269189072113908427362640084022560952795366222687803631074992951896334937247807842462077385456462974698567818779464133277559594959198587419166844783018668875825985063358095304730592627958788266281356695741856635183662967796335366162569000658834528478932612307942533321209343130986170013940224515939863015330027588574482615552011632165583054011090247991317443186094788894424719176565857393833615293891646315787775206926098992237784272107622675471362967726528338260458031548818429183457905620558523138467486880987475741829951436089527571148969698465913305515718249017264063469473831622484570295688213478321860050219757949327957537140194691987103391921503460117489549350057648311848003832107045510003197299460626690817032846523263802422485817403542298510813693111624820378156824026705402650609276295741300394590674452791979966472993327500323878534455218203096952772541183313194929837454299674345083494569207945583308957219416697425544682533864656106651416194740273233068918055488714423970148248814130243332211602822892880315913275460406393144756504510247078478270031008306239833790350592085387823674384874690715910716613835270975585158434913210350122255865928574296051076914689252902235938279127110071779878737897902060104053792712655426027857235385066544466670386663145087099165571537120692078442628725803234558565314378543259039018168386005327549657925726069037995759888134730688880747447547111932240148505713258006452814851064945062178797173665367581241855617818186509256591508967858838537346006935149766940200854142411958615773819902618019957555810622548361640410620763090175856074573884732645071333857565460417325337113028013789407938579364339953362780923121083970023302836469423386202991033137697450725192819304481060536148898127237275534536451517984386997375729723447961754122638543250152317808397255726878502256871216813534253902834781019191542034324259346091331136425107319399433703843238861375880568271561648549365380237850903934833622482273182074099684532966420066268037268782026486705782985119284503022158150530356417568937754210631387943008169086192587428698754675509234944739615670759250191683691129303774804955199097039823363826364891350584303996481957236211574077257682336990702374463935429270205346044803831023144481145913795384749239157294312780741204406080309758729669731071819844106693340826049698415157716592955194865581648675779423393689882775900357894212761604704734211672187920488769423319638405449947511159325479617623938498538240196477081852094864855924228773249668730030102462610446676908525456097605252767542609722175804231532157673532907534815364111375640334493764477315701074417762358231865170035472053759404317824599133598339181781909632989815139125754319138983372544052815081545703102289680299577227508331211659770422199826896583246941224511283294989872970025288692782008856127159949775135621524144621201185726015252469722909151404640753192199281734280327618599645702580211560174620906358907518617575300004249196720092148567640159697615970405736942590356827057621726980826125845805961670618866332840263385648286426103859307490073261464768345904157879793049982050590432130023886393302978738736196275533218595801266221632584664077546476579363380854496495709655491946816120511556943910807968135393846059750067179506310256122479527199604657086253843127219194520031050931912369479545856122379295846744832208038385192663153238284507062223554163557520160484585957877279643566407928977315177892543246016374195165332485486621259981179724635762805617849167583923257722366843923139046362506364023028317230013785538397844059603568332684279926654616067211095960638834242950430023363651087339459142466082468786791422410972599551213534391932339520885700159038044698266311069545853638464299547406804067960963340089659647612335011815471822156520259380056259062150272901222426040414726158403427816260545987338572456371477792160474827443344111296731237676119862978669863080241795004730990548680786839290099752578360568423252734512493884646426117437845901765446954096515947087299765071127626661175786960190328974286263834806460258351836519591472871025416090341710762667758150465169462544957993828996178666609857273572606855066958690375723054995572090626217139470396850395236312944870874152476422506065216697079552830412810868604973922953659243154172599393270748607956674145938706841232750041669086025761487588798762359367347546293045968347057818243392374739992499318213776303837529903851510492138626855948622828980290986040984011665073222899953224056223484778426908827773333002520957071638789137572836111316150828240586774806128378099765881224500975070984791439925240141622405328598517840602677533819228267849527886672456893337594516073195686216856063512035024630992837418507807604204773843053254838763592412557531636452293163511786522282328964448319102692474163633999280535309366592617986442495494884617481328995681373139483095949958112473555488373871125219033700515468040236778326154424065669062240436357919958919161873198530482800619742223209883669364708401812321417476276732239473306004051726285935485411882461399122545993604628969714134165203093502573559361261145139647646649021062754457374977144715508058882686031359661575978888082513408417512408423142188759570263961666676842178850151166502959559786184159605479201785548116465418583113141209127828459690444808181998063143890380522074970999644592680426847344541557810334493205950156320196305397621418073990862708480643032178002476090143977156423120072263543493273799157315518591100652472774851997101984779766556894491967164861686707903757170664835628080325964867673404584205686501819370242695253648169558145909093659078076868124386399342565535330465056785065548655571282118381739659983633576780308871040572972063848194704823330793522090608439862801838670895297949455903398039750568234493536783744414698853888045281008136062558329519311211934751776284520665192222527386696926300256656057137987467747226321911039544639384612184558577569269211274469656540715714141819794922961446403902152393652171319701682379101625390563079628676903703669998720101055197275883904902666193971648348114974239117387042271429504980391844092035353505646482647090883162717270439141214238422921600927129123600670102952490482688952858136084943203538041356964515930924338277301069829074003637819107214220109190692418721602775558045932649015215059414233531352862778826912685057008770944176708211117803391613231077884547695892356286062676906368115480861944886505985634982420785224821027355717116828604374279300190532421473269807603593366348559246819120239471480921233284186050062585379108555395006935143257214182173424169658289168710477383110597050998134940969399553351724534645472530194525002197042367256339419925959139030043726038976533972333101892731998036678696654613980753800150074994058963965696044446341048889101877254017581364829927018989318743514757195119016432624565142006231074765452195530622094090762265639677031822328595936090281625230627976852910671388077127464190257056024461237830789026485486006490087858777224582811024344938706614774453567937320714533408083249610368600316487116045576385296400092889905659038807872015381686860578453602623953761584365876413156895420184516680425311250906128057586051851261261263727019604236219016699129075528914842550002031663943368032040571141160423757980358565956312474994695698495135867617171614861342118764921998574023604525815531400876092991964744628813382907321688226913157355514901842172781677852130383660376356129007685445315638810905871806940817781907895745143359593839035139959232215815478747867262033422730377952548101343348870112698825270694572970442925473858639589403162524181768010338837389259782856379513349072256643982136040806076951229905479422077455869779933034443904419997357607975028020352529286365622716637530104348154145433270653391650995946735871134933382166989485670557380782200217312093915300782652612868451424290726599905709582548604303545232999965155578146176895285778053665489485926317291170626203829798016084121593188188696290282871579787179368849040257669196947891197016642307944711630047969166029633665411656714129266583864167655842583466265066904169951079819904156389709616578360678034580385887549043983668110794625922809484398900347357457657221278020507663612424745302728327791975368709460269211026412850520464771511319590975978475200954067737217411843995901350727293059963625355275183651258426047228081305017016364582988795296387473523944228984041274230766926575389191293792702273587158906780074048592164839630908392340398840095128732229830618530714944412455289744543189585611874000180952752096285137117256845726219543878785925627372240011892859210973591774453090991376018571051336552689960979827966913016647136456697073237081484653493878889810099483298222045461002017204361275120315381165829910151186943049114475937441511992148277698846672390919809215085158244561052008871854606987301372553634632995644554638726445232695578243816895531108965313406984204121863850069053799029011296556029730496460548219601849771499587160160186321879285776555148260986889146641786743554863988576721640798099307846447004158925298121200807754694044486902285347709395086821323407338738152117640444760483455529305299958930207165021318455760851637824162907159794086617952632265090870625000097852945988034121108255776072014188772749071012838936324373447553276610994629820292478457279595995866906046000101825538486745656582757507158587296867716751114872652122065893051470298169911459357597062405238204272016760908971936440310471427018901122919727832816021135597563255486999922433885045198582826291038182261226559925915970829197862331931668810629752541068411710862598703071440860838890816173401839452178676169102178400070572151153318183463981090485505984190806537984039319676526182549014496282638131368683019053727762902214082282532050315758144911052149693400800591718428867474232818892082210987075100960942227179606118687523108651305487940730324755855158572712956851667115026585753721524970207356655428748048188381689438092947193924970783426911981621047130830957027914404488752944652228809164269322120891437353263434701894141865498758085443897837542761116048219449857339919464163451058827596415074970868687065333087674685517086367220041335506908982270336380872483247736238427671272998279000472375033656913596485058948711797177358953752351727045329880897687060371716893813114926117990763868175722778250303799481053099714133210679111769390824978575950173473432748633566843154997425554342879813872888588408286655506303116923034262400651924618208512940513841094383383099433732356118408341561095254744542667874415394527438085478157481718055429230172577082542155145523116898159841576303310410248678593445139563372056885889069057119083999697995213344839522875922839778656931697054502755249860375938138006589525705654871539925942499971731716797625183078071800651730515295633826327932127180626959480634164969102111602364643235890477243477665172504370188262115843764422666620475127825235188702178980272672802771182277315210303587264208245289884331683157916664992568216114499034246695153246391357047807685268989984893205253372101246744855945116869825165086315065590233506089461332596475857404743071645102198896466685765093083300456818727572416807670592160435546810092925593956489533295027971567218920273257081506277090717387103132384249600991967666572621248871349920569723586933240738111770557323460902157984722345213827715795803472205402589664415390534121374470050890338715383493907836511458079202721014790629798992357303403249969762406078897321843108824493082661908026220499901128597492955627721746461146899392940105949420973381759438287802504440996875340190388601771701245912276768846757152369655212200577242450365397376969028517858272010843359833984544568178406257490431917087743824104031867141420417203681142989503677256546071050128601831884330590267041359144689996884717833470408291468124154743093009981538425850563276047390876890492793224924095349919034162115446082138983645436273452554213715789152132060376564346128773346423265279490788381923864447557705950091194441422576047487273346424607959246298170464153460651330840957147648715521286086578470735295517681275823209533816373144290474179840268935951138362336190365221936869489539292986105606543505797027155112426086430859272820573203824528633753600405371597766322099134912226229821552464413415294565515770151918986924072986258052706984831289548079625435319741712858425766114028200953496918021677875090640963889389104845046640865750372940522104112800095473196600465004394421684859422090144524292722255849059366382440277332836264503030533539930969877703430907123325762494149601610792428731668526388452751267060300570764109526142989664881812039606387340849855500941732198779667532749962011869772569041446902062477656553506566423759146917333072748915434058300807072214809831677481930217368453700212286491519944808643918607136506738526628029015686800738658482695676254210529864116593386924825383378787521349222969889549770334204786174098071621018441516177221481911004373337116936743087732669730859901037197397794961028429161868412757569913986492114247878143531088307012871037747664524240630432837083773152561194473055755237910984617735312906442410447089451669048806950914607318268944927878884930939500099507022903534353921332558947652503280710528542412429468783066310827995140399264853819433461802956014311243285648469653171701739125387897466609714539422772741011442393879589598789105456641042681478911626857280359967830398709786663444404744950237805374940891697917385372097470734527397946057249275908249278258335068256908378083545693636681739559150054891171229458934250193970208963987204233608131092995278188504027712873857443547058197144905713041591925075571511856871245138617084613762199481388155508293884837569145259023563970063111260122118004370384777070672157882914472504703857119508588093475506374838293531777538088558941174192632937495430008507222483922287543944226262695981911896956305252790993462946153609361635494478791750377713741590706231759672455836853259984215588103162562444276554990253275017631362943127796011916430509716959532112992045271774496546336026515365658288419363879337753552210007523306249938917088603055134982454203328601498822518924449789713654388787607325839686941239838808204334626611722043799813307423513678499084586481666628620111016787728549322725897317962900838938093783688622430928160362691807321356465371535050488691647787791858427737908188613147543573704383964161086684544778605185698836435455394146744883622569075822976566805177777484874297315217407172224089962520271344638028938433145251698363807311799214678365333421747888059772842616020358430828924451439079548741920599467031093767769273460011572635478653303787050882558626169169547527360426276524262803824771112903565310920613755010415351635002947736028030426515606870445034565865327374888313887136360128083391312685040569730582623675060661853976157041742174275940940477766295856099304644453696935713123533139018447310167028536689418035023616326193267872577312149724982450873030342047625852256587138441719279864813496990033682366359258820601075142130599354051182398221393595842421288680155694960131634265883922903517029638549314312026857517209243416771675953673854595891563041515434088850041606705334665408281307008328977614882496962892401604211416151036179777932102971347626579979402154699780387784794015988160852142135353041497943485318919528301157500655585264236187716442360830789734582505232932436402643759245918005632908723050762970364843550869676213310828770177163493776400157407706192909977311832715705372092053654029707767867266532779330859965800109221736238904135842795193350888221454365191134340143428094289321478884830738725770497425332464660948353516657817670744653783648028470969261013186450293122961659943735558202928820234450728277138137353108738681566684680584165539524063151157367921549112632477501265298070868653207871804612867924288077555706529278259419430075884278012095910166377504140143144565160939204213995507274987872445710941355550450157228970947059287154785784237549555530688277162786068182464764719997298003673328772074752265359103975496408864254765241431378861906622713920337483035553828434447644598243634065327813631957808343899184020729563312274240406329113697622685654000106238986047816686297777840312794899917073967230675221629509652878963150378284676791610967455848873593475491086691961722460379433265367175326679642757594399604997668066120400165330285049499728607042754250937207738586370041544102605952449370758500363784138186077956760668064617234295007523977651459432948967190018394508535071152508262845453452737577969122483337192342761582030801462801767562825024071460250971605630931767245930760486882487900538471580520750744820305264966898199940251579494232115902784104325425835337177788899239517463665743261372851811005292757346641848185181569944340408818037687535197406636304783372844055818192994312492820699574561423826653050981344664300969883579889993336482496472266767866094838218200691764477995154100648314950923402313298555020760129765976548251432214277265806665755782452114351183573372377304924371425957029585515871156388807799567099240416783945078541847459790898158041308296754681520346603969878439383081839237477162789771382844434051340951168427734092176907252476310892244466478911687943251322200736515345623118550138742152335445030893885398610146110690748910956635966294815046854675622928941510892372943193195614918231825611290602583642878172194929175345388235279936285889636367951806699435539473796067883863943299218278556841255867799549795461330287862146465157139916591402845873487027052610698170625680635866012816449797246668164161969879886773684747096351963496757677241171938898911618410167572490652812301639681693150030825201489745797388900152682402377798309724004631085064997410591209501570775841414891805283246730618351409517491370788512597534824769265004236854623584360159707296182804430916802637005785921511372201216585722336541374444765941395496439553132516160965801809920877908352579037577267506223225185883060756932318956337473318071536686998849863869143703937913796902175096258692842571691290542002081554697777269088469155248117449993657072604850439508091894328530447493989630060318518772745821052465577410812254858746139841024552315469728605615990049197301338745304316023246449926512501704259895981825565238875877954291090967219088355357772498686136615280495876215441732619304117924969971423648039456363099307208351692249539620200838815119183724445227526366889209929576677095667383518896619596160537535008602323364828721267279457182592717871773248430958282735739819410794665642841537352097892288900210373172027586642901183835024010382622694185545174623600553905336844479903780231493500910433515559836118650126049569602591345769365876222655770632075180259102970974492951788854202119297169126631041420914010786425238613208134763454729775317440856732210322546073930167741895602027299203162479753768627807845971052132685726453736242255319250951861718760134511243376299053555461959175254804303890441737617913169627434487853115501952536997807793447126384248899343581917195672961221652053462230855341045461753516028530353170601408812136373334586374744900712868341362130746643149919626458766238324794568554952649366465017373025269911908734889383808220490313999050562754439889044634722325658585987911886688740806970103202682039916459653939827631397675758675630661191248528924856994955452747582595838059266980566909315279118773020597897063137870893388322070950897673353008555615294578493640663912452296012669596009626249236235435006717356575093246211009787638785940003781112255481862865919130265466121607498035325602344356367631241181589646973856150829519318006571541263062289942986318094470882999697782360083731932759312453730293080319708391679211238220377593869128205704012577244486157978289703237209824314199521913569339907013764865723794090189731026773146477049154312463353149231164982846119122320443297987988654550488550281722412719641296214255244081433833184835548531648915655594728454941595183299317885179785723333498219716745220939822794703894830938700688809500950017601865107568261901821225987911067357657410237188662724699351075758553148758506068892653011018387189835211172154353512759382643296902223394938045976378558090731716349568750327089865704509163882052480794235222753568708256026031828129257727003799185301263523799010619425957035219797869460379340909076816903937424032942224485649062429240690413555579781762809939784678087508737889272173505415721686106252435312971752870170021713892652686261966868712382220018081998105567112872178866928665140868573073142030260294175800614754339699614454195780173471307453251846650248739186631226591260156602363786266520161741609131567212837043023831858011836035956376114402196341988517773587153802798083923962306959289445028812707711326597922053836475249006386505384673526547127960139270574253357239928439256682119007592076122827272386085621382765349933921722883132892944445541855911852332513183003512791379252076038822932907683177572843476710568432799744762007968785459609023037060154744372426114673976376141025089181934278782304188311556795804541243119210344135149026909550179999604207232260994274936196212594458470157994267384082691680703420037334281735882422048034577619180553844186706109278647544687110904276564909613367896693206186509904811679659860550340492059617415840318373662444987889103504706165000925499423394566216562460486362752367571958462127097101035867837376285945519035694807841844204611642743268607874808440542518712273222200262143479895429528267493240381500981848046570078416191838634925747769264605691767553183675482278920331802726653109312711643679338196228009595413304787068427586157839815966786353122126491074162834036375848986732387826613769035930136232429615603116634579503348069604146809599985141673315641663661063813593337029105580951861002596596933585381337026672093038574257421678642906364254627773712451614250089638653859527580132228918653790607932844115312395719443330597111674626649023894326671796113079458231044119190079783881715223000670094400240063875922694362285108398908252287558339675045354327424126564539480106648018793370264779678643563015419592850256243936980244407004148981012850384761255766532196799894997511651665525680354364260473149980694157671149571790870619144799725227147952932796307353587611207582906805645927075287717611731266294567603663357133534836225749231609088499733950008239080227083401844218602397156226894697590112111641763528196178800201355089860699803555039550769601752355717349136765805036634809891766237472777944388920986795169389361595325081576104264980771878858319166602587545585580207124960203569014360241160676509441751163995525117604635545835455868373332737835385586657651755653238466588986398386295793497986580783912028837322165418055101504518391046892095056442926187130727188975971985224621314295193673784547251284191391728084319502081487214486818091226214195079624858367872512008495905249253663525575397130128252266631931267472711708740168740198182053009569012107994936932404638634100522606283359784777509936197411021609915334124174563222729142898453154604467932463165850820599008444304452923568356130595857276984976510035763738094889043789814971338944112155340478285383410251586273452209298137895801512526795905016883811079779373785231407545364238326775372591139723168587926879041195675255583255894326247463169595932379328077397215234131651023326955510042567134781656878944325901020307612993187061171311147244684738098761661329821589523733673235671671545614175551623880797120001523453111994541783387246086759196531569649459754343526241471737702735162352186908458816943326495436096306903278636782721734337872342122012779145307361528442917645937575452766551173616624937762583412326694703866180109952641614144694368666554121465355725108823132604443020594782957064696420840506639720639317365073513173003880445262259603654848636596942695148372191940537488664822469551380014166175344131094397669630489259497232083175309962614307845299331801650845208032363582644210162743101366129855870542291846918585358000259657093610688867074083687084907612579947164130996388859772806057254383677775945949487903959265587631921103227650583873043998704354154077217081533712281697253470848046067848153033982742535460673613310625536480782351719373197638292319760687931863997393970932923584652592525487847560669587367260250749646865932053476033302670225878939971559384670734638222108716543115987110832363590150691704625433514220561500233993163621226931614164516346722487008908575597842867209087050350595391102855612564991351759644938784685362718801645021502346566085754400621293280842456354780667137045656851925933592247464344496813893964095728803007741566740902382614245016397148992671505880621404736388771776520916125774301134751954522037490896163122104904353465180190009099352151964047145886477356021465122479417805900423518207667965078580026385108261666788485589507491586451266193098383058348262969071317067310717197280807768484805796587544413799294491070474718297280178725901703403330009230392538061041675484669889573135068038686174263992443690005077832346982406924270331223442533816869554568542413174368857672121852339245514519543662928877490400439455946655074084270251388154225801277993624948276125530109575941070155752457017401978850976999525956172086894340915972589634928359294917641877073511887557335239097533861390461174419754910858237894535948817340978863945061700922735583569004058562272378064911621799257526358767717337825450819281108102159023883118495295970302890454635523927760376697180464550093663893952712937566183649877213557432275835211796176974028937456777117102096019708609988891974822781834064514963240191341985954666751863043821782298053647680859641348784882765133590607031616600807385645023674086326510479565555523905693241365906176731915774394061383800816228694214783660581227966013786881036422393449289901558277560476721452887526965184984097572531141269697999683583131116362301667967637406820847352207648198751988229863052801822887374008463358398398351191797700578244819958671237440728854255425882067330386593512348849979702623134280932584612061873144905739334295261855568315864723465082335631116899039298074623730185896175127462011024135025301650473598739129966877316578879331468114620930068822230887206158330968583647938117175872322118804407563604562665101608344367723134148461871266939435580944729922205809540034174771169249485722497611316668715094906013042427878611700218095472391317944418416770245763014022975018319380448844816047770140408137418939545475965527353961460351911339301223133299133292565079896523080905985857406951069192032793347339726614955417056166160815429521787924208501892615890842770899908154102051635179645981575455968806942601800130355785547027159876006807331451816194078367221223851733177317836585699996221593848758839224899291106871277741693137472569565133430063065227379245510562669218808078118325867313696011209077146657944366288330014408158630986317264190633304404450805822811281548891619832293273181879995885127378387293850969905006909581505599686237771294231761972940408139418136027240514820820737951363148433542279393342776536861035254077258399965486187460681108544159937826344218383938448584852903530456971510991250442313825249252954008960027765387386635741563882743141102359953392227466142808950302357630184738996956968785796476148133852746260001728400766103533599700110742958861790934485688238614022120262810098784194778556695767060208297297284932172835947885074785626883541396045205032733900115976899759234882378960037047435094401262181010948157151330500526967347505159579302414192467718837799078970967419856206206033657762606620039347514589512123138896768052158583214858756210049398274337792910008563459608478727443346055618482163033872291055643309346721926478665631468981442003818721109343897389863038172129579092991127430767197772915783767485462892852180820396714378507933637369500772766426675585419995885697258889417188547324570412654538727929383555423041284137013213116316861676495031820781233528078670360575316926111114131927428779044645590745310830304595611994778892976495070646397168145146294531242943635554886863612488265612400644093270462720991938024993538960597443351284906593630428301040581746061232043944596786199437588182107887055290972403150885180446976720704932193264273274749474657352706314008460022706069559676968769935816122080876142890824382822508271626545101507650711225487767831271048985812589031480801153234822354857562501636134324457554897084018525624878558411615590629157064001861938267871916714542297842701318556353007592339174371504225236871430802869738972306594087472615583200288560564305436754730126975992391214093078205163473056839443576608050549539129145864564189519842126675570326140401652646471819168255617805000436626398681263260515677037375763228255723722403373265634399261010727774913476271761697800242024174542196335423683421089982050983996930900966833517291556051800329123750279741383363465570545278348537476157707297860282642316989566162153641506119169118695850763008877398413314433235221610864807537627562795357326192768075059179197538220805055360859214370642558820407949945680532099845216195290348747172915878804337898027199175755284124951645538973669036679774585106049237316474933485138913107670478168931509280056525080740033602625587974658733895886504554910594418711510789894764277239141320085902731348230514711471086256844244305561264573131797594669083041340349698418952641280813039237953542339551451643685832971767270338799660705027538088446666132495208470595623603513288763569283104042351423073689830225761893982210451471164975086495793133102305164007027404187229255253125550507519626309014190428815837860801872268853303342603241887419947430948709809007796896221521278204036387184986911556892852678851436920811198966991991759394422276598585296073161102727719303922875037352767460313649872860148590878010890276964810178419250513768363944327798589783499670751064591608079978149867462129594299294951034556123952851899664838931513416634256253872290420785700310050576672387824994229304331876293310759921633410348818530789457862130438446990225971510953784248396404519561395264994091054193480278333814105054975038632521344166525325783462410543137242051343656100709750264749750601879329897004952635108038488001221708113442311592330182506552329000805329609505296747617827764990338046492756424607844006224775102298409044645760882840084383965375725163309086936595011316680590317606539941304678318604500629809546411793222760643945450974640311900040461013636375665251476339220564085394881156566515641449954699979896155170851923896417350486164401960282283702310531954944557157779195675885975303666098822024968864962402373769741490896227826267171647090545458964342513581072155099312787001810947933780019428811697138455978130343759117449830503972720050883851002048645276691759729131715166904145869909482996397885788471241582151819151311936465926550224699522520658612371086170777529724800962855738111726435043977239915913533372794371214939748639792624792457463092688060161268332810801373076067896388530352476247957729623303632060797531311700321563157739611414172670968457919889678233174980250090409276983988948694658406197088371187171626789505980379928186879083596767443867394110895371969861829767384589543924411217443260728143441568333778396580093324162653119758863863145759699162822606077903337395378068615499543343966625340413723933605837613571366314849602284656753473188333959769406024258503338228269671602514882648376703139366150304655694403590997958808653064775272076181214153941068185531517358800563179789508106998207123263571467145311627582525008062009835302998598765345615877265590577677705235068007347211604498064883912344314969945662968838109923179375961515198326501205987814416179328900586332095639044967327409677561565792169512569575734306501117727944676997548463963676474095197874698574050025666304304969303782864673088907406762172081629100092708410880219803664690320066048982952654419736165080870899913997268065256227964180494645415644876701280058394443003877713557078046564329913218706063220815142750622404635739633230334171292053079551861594221891341743934642698600396304005080020428704157295937353099577166776152516245240929006876484094452448708296372347946634083467678892429045159840508607169534168927276857026100718961752877525160511457579234875828968827250058296434832572501948870491673293274144146938616110082120730148945094220915611353196601506009515300421518796800500925670277461697526917366335884789531048751627925415229157364741848801293707600826420065741850241704070543171728758494534967559692560581068000917355323392465539765805611506266857145888623136877825027075077938929852212898376757339444061238960194625480149686695371667569202794500414657284567068530994311959103987237024927090104353255259805011571212263284707450745903405964385528208729191184983955166804404872154753233912561994593028105975250334168546567651849453998885243277578350372083477741274638187405458639292544711505554322799818208681879698647010465613411868005396513134672323812494414047414596471311007233355202812338522140507238615369316608946059307567586266790750537016110407034090926282674887750285975237510238545267796205530602752777436781940577953384076593719123390416122993896587754050420933165780695965341258929276900210583534723405610651455542932009170745043947019956698366277022470228830426650690455121943837056846708382357301181632285434001843049497985826217684156199179199351241530949158010079374774040392763688826938414993758057175171344755815931032745774187576371187757132246892272242493377771139575584843469314320561935228175997645633844635236679326941663652938292994731554160262278104340459712825822426701976096925423356800253834894656311249517014689940046400911880740870773299643030944043581834084141758018478995026247389569075478192665221993496740541728819110503325279002158545943175734588732769586397741338302654225157488127285818892732849776969110852593856521723918404258258231447031064760464814502022210286533308656374402259588047132186945014436681753853073158920051906575480158234491548443177708176712520461196493945018862567637414537686456006014215126129242464596730642846488510497611191884672049866454759999268017756643379003400568470375447562878249348984087140077023629650417075010454030069683112353172934030263172213170861762029604344548209543486763695249394153847667538095773551214637499080503829564670902052304673985564355823807120013405179535817759266117929746014869213202630600393179956484944444731611937253694206234756374504782675939732127033728057813431266211173872224928063336398345193036803892593096889952092520352785719809923805762361228496065232769709707647903913942314021333686903948086876847433080122688699462034708237163097247047250281060331416470144741205421382403081283471910093086202697490915360722527512865977495195070144683595703426614602530281533848272776449790077688980744583010805807625802826525398467121849904439425891880218806297599563142816384851120947134995242272909662562131057200278602521302716524357302013219950531711204193338562432181159685353143642809886601095854368526010852934463784118853718262721650745414154290924125763428168346424803581833399866073577309409498606570661584407016735064684551083448304103407143306886135064816123133500844233624141744252203847162068581577800344074422408997737952507722722425221632527079828648342393603199360077015781454854997327914957152420477718325986255747117217600047591868613465766800747913882388825260595036961456375550948364552494331849375795834470825651120297713054890598588936049041984366155680280639101693150794123984426141463145272074906342167466656220820733874054410275552773264257266626032543414164518064646201359107463690481409139488173491501909058878658865756080546331911539579519922691510175261135535365480449153805235243092095683913392366418602184865740565313865858918038882901004954410539504281908521709568970985222660491497703442563415201133543595601620804833457056785828475182886943264572847094155070663900420218474284148150729321142555253848768239840596403694675585587065077805288811843705437076685394020436679087947275769976742717439082411422515170231955326014929205324852331644303361410581348081211878445401680049841863719537750791225098168839594398437434905009276907430497219732166826907868189429886554326039347996027915286663167424520499357683219759829614090609600277500754116118234136595195436476826597435387250343355756076030942645937176844352565845618941330436265854933396448813667814189940353781251863618098614310938046860842389417657170919837530273529460531821774849806764100727806893539487785620807660764628864349757813849167549694801333616458553592342187444390487282202327482790004380974372224090556657982792540792018271917640731568687889908698234433324298461713480779415792607894378693787932181927623832088562198256262053706157053365099866604373352780043029785385825777258208143493068950997469028421232148054362521441099265845132086983569503793412192787701548376684625884851480353282100576225953123843954998455977183661774696948771337360294902432014008936954352464284670390628296129253331756090545801524153362697046334156094771470387833114080455327202669851691655054580885262347227009185683811529132516075575147329831048174511690118544738905002707966281357373328915219473513171507142118196223950640360662507937661011410909757198751950627907671992084156183831262327870536779495872093480853103370037079676981443339865319473005539550361373716903540441227441848250897255434113291414099210105027940607813434527454574891039787039592557677197303266292058500218412430561101471172665885887585811098013622427191783601505630084506126095803511462218689703926560067677522712781150869182409312639832388951433073092080618183670533272221996712213824392494133845030855374291395100606121406401527729920472162474690601996875361612930959443531967021387026224274713425295198346411502152585217190733435287605089694898596618737246471484457540042632111691306610800075901992768527723122943384537537344556192707318420770035251888198510000910588697024636141339463736403629167648502431395922261089143124584310802491853376636547379542810198006394675491656738822093720679550224539749527936043218760416737125294186890416787560507158191846283974995177618984701201417284922531659976424913961553463045596737003669827139244746172240537756388452506057383117220633099522461382751543842624841830545461614239767958075757928929553582315837910599881000136355835802538193049608748484062324421301967312857279756963808915891141510626829367132533904432204439351225627134258357193758075555470995280586509274891485606150149058672218630181453955271543377441157484301460454210472371065909374589455601850747065551250496207976349526296285857419106119868433743595990276751351242842162787382704073617901822642116190565452355982134650098443468474989342551941906125685394712155093835778399733985359799208044091401401301969205884816241657792074385061659298842954287592676532576461278658136538693023064324951487229156834194893397732577238311018607285992138274399553167071797786946310241209656299251563690707097976574622302248111836993379540037289040035528138387916696451463050174466783026773391565848513133733221345559120169428199446355869119901046702572488630391431318926902723427880765595671435508100852332873676188833143306258402854461381790916491511389868861020424410969493039946188156434692259238227154237325561865763731911138393508298447375787630908881906697487503462616077362010561476491958588895261757302986600028449208833098693563896669357365831543219805114630291803035328239125122651457960451129136204814160742634836890487253477414604979289686654718043110963702069366180038156492646017632282354675257725100634810833246049639745818948562507159279851400688234565876643286169649944702876172786074016278793760031340305365372001633610673119735402165742745526613772464146797016342322109483927352053992161846684431657805148578748738995611735615742292710799789378304117463423317231236870629887993956379693234381409307730316673855875833658948792192292991702925321953131063137516995648955562792077326334439956069913401234556618660027238644091295776817456745562042696966397914924854631761555583478849112031329808109382020016670821426195383939135194943324558741577258369481163492140484733546704852527626699095914448570908316042386634335523479952419332174312708264275715015373811447046489614779234323918836597604173276069183964760678663226749291933231611318776739191327131564491305693705855153395058229226297936692800988901273744011072991307584839194837251638752515268120935615506896612815652785043774385673706596865712904074504021396786409805016287163242664226733761382152956236522040211884309169244962016703983772402290077519119901733887256549451670248842314466733016979564931389538586123981116683082572022333724698573778725176730167468852701156427758200593935709812258690125889277275347751245969545250389826116680212877573805636856315644421994581874028106568017531855645652955822886169552862742002819640306143910590032153797953969302185194232688079468527914072587719484690411764169152274721106824390965834936817407243912567260141392055375044387785097186906128308954214450904545348523815226121360913632796256187136414316494221393554422060053382734515307986723066880135629301316501765553770471630091506247921237391937057541387260377844094217302591125049238615493819007039732269827084459330938371631480611283411794863130846199594307896849641116870843379334405700795264780255324299882702122395890715726215449188311989117964922556872579518737643726521041961886235970807637082519160197482234482099443332365004015103308033450987342082127921412004204801805010797985617232164735044013698114855410588119726087395394254908628737839037468098832081722147968307431302693815436368453784576155752019947911774123367085935717692095928402888000062917208716273797741535129580502970994424191380762872308506357855702200290134327092777298737515761662474840473928515508631642153028208352650155756311959083682307340304392715181050027526500337086894984288132356849650072493988474010569473433805637338402382436072538873309111373884076450003773447847091001864804554117110025614054087836992886952741392619379085138522929789581062839805904499241387273763985719482912844834765974014041432598188502453910670591768324622694839736115718148985287706502379213217892695361163793044646771025399165684431444320202981168593661665925520655979568482691676299777340317373780308748208117848767254586837334246334524199414107801536921241598778339974669973954295186818200906496976103678215280989529876069957103569096028371008599789898946334872095708021792336657487071467773673609724639922157532194023698804256015000075840411757319574984167403330352603948097378856539028866590990135840319648037329389860459420398689661622275489436550760002345814107089615093946926452773942351146940111277191491369254378585394835272648575521602087204812491691018527179951837560732844266771847679540711162180153539879182477498161858356464522803086323997713849928359209270555307866515564527689591621869203470156455573402876692638413257703601605964596904032255123102029559970989164180907129145748986244302977071138941462836484848715767856779487814312512432935502476872684689469338789309686193721724524216873927185950326411718319813570892707560107929918514562750286621924369798417811414045403196091642478439214390278338683726417115549439630419405888067523818774291085517880020788117679147787731136388027728566969401182727554750200093592740494837691964174174743764309935882811490241585671721186545181954032744630850849001867213652717887423627513368543825843572609765763398593536487906202036888810270158500580830280052905250059204099540095599338281560551578080569277503764059324228538216945892473083726933480345155440890818030000971359031387603695064629525581193233191042017397696851107854510205884117474295667426408627622606677216076333832609244311716326610442814595860625069986860747754290412444646328607846279208041631617188773654072051469312121432516923429453543324728241729604332479029063540574426435510165761886887575528924905830732266885794063610726347131451280390967940936849793368148757132986978132119247305994960140277818648319506098399949029248482264519690766949366809185292465402548007721990891772919609315660548678027148447837660439060031471464522967233738210187250391731552458699554238861364979298934057309118689822968756922198783526788848165620121799323557181193394789972941131625038237716074760122507890913913600736981616449615507711562475184867186427418752220983699262511079458767442710260549101837714149395384601730899334493604769733019287791380270313507073210981882099042177479582446759902008357116817844883047873914753449351938140117520881370598439846549557055010189474633178513544780605002453222898695956109812744537200340506843316195198363031817037478986266327072440653794392777506117384377391003701560450854244171829462232309874159926137923103063979751962906214954936751493482955342557326734057366254563878208772478017012519108061380763294191048376862061550399017105775493794371981498602274574327687358665472119372473648368884738636955047230458616875778992624179919242888086846632765621548945377584642693660170549041069679139658565047231426979266889208569296287842331651540087970794840446062660205914207157264149118427257725445185179225229922899892552417931329556162933387610416084919966631744230877940588735083947873072830991697739834979436847746344801579069104208387495354926175917185412293597518990089222621721914459306788619760356221881278063881322456355560680694152552978974969052102555871166688039462531658155902647017179900039902483340191847418611177914250879578322003743133899943887879017493217832857091362259345239879921194135829648604238718240674170986228121901857333681568570323594309199084131003274241630856070401839676454219756598215258342288679649061753328803833759251880213557889351191633363591256530761963446885955556790319313426753383306631643406076972503374612045657857542749445605773180947349044636421152998533043536983846609846137669343084617000549083610123916548740215520180743832046374678390499993518567810792289725874690367749579133853503513360755073213256002919103155131072831771162507725515312573049623272208602252146484022028427985932928366887990771408192398837850356220529453361568028203753139540331764315894056325311235868239472892104281477709045295704912875935241205135868760328451425827346944885456431933445606103927719582129219413108746666766592457491385391579446355239886906767996953556594034008392663094891563705155183329394000503226417088488994601744966590766868472286681018342347335807481678608256992636145794143415773796972761953625148160475046445713935285259217578395278564412027696318595151992537064738543750734841980458523109952456640263945256711483053596867831113800408161923406923403260989704104568037934836010544929206927313239109289489416122528772541725880715769800290232769299265396722223125954237897818796172973692312698629041329406930477926903407960859369695530828706334988535898063170379065510234555035981104722630784324378875026808665286661970123584310754871934469961351102465382307632638598946857435306560582753001735912983069515639541943378121211180440701536153143845798731666720361840466592291400072861570470923183888837125901137751101546728156831261731358454449555693404016062515912214452026304007316786242123473984156636061570022957579512596067890949180714872199201151338603342012490334326901903152471111177053767490379250704771080007807243797219997486780512705438658097738366084557141592231311250769943850574957208447061617646428970167342485313072653113141132969224499732589869379336205382310430468811672702967817935315147925262277150873178413472011750829199181400243851651872933219223671393302183937180182843192346206861224877124816144643726238466722738716927043432266762821335957208657592529933570469301671377062937231618402812814665403393929976479945083556352931340448149974608215731436782770602090362000236561479481796166953389820330364315197605893882403131045864624539039457563768870592794191446351316565638530341380551160738301152349650160262898331175266540895142764548739436429000310464975634186467063383937026404327199934445017653621194183980914054354312046611071022949147957282230048881509892880052029822219560313715553191807236758087351573949415863863465924264929827124687428737887107211779609342852822185075176120316328786505095678597846969439706685743639441733419056383504407294386217526100606739944657144525650821851108112347349770923533060731560343833666812802897283552949783468612079306536662298488684458973023686950573180717092710488020936988600525942346855824214663237148360334708879050834675141631859978731821377113609337967922671304808400635712740447619016990212805036249551464937562857255534722015529162736004842071745078807950761845913606957788248618747949602794821468325536369648055794751958042265961817575455372575780063850078828942880154045147286645076936364292616561464092376099194423025307177606647646097489013007128320670095834441486795964288442656533480626985008900143585979343204954700739790197624021831864502251873557681953846695713070062888292637561603278764215965593125292492422161329574504065382201672623986186616485814342988831519203159057960073366305926447801768242805793775192549911613874081655519618008061914487729485116625699772451508213714632819036518087733473753221390179569455469855894609950994481976623160582738973924308531049444078708472699064031783593529046138482240608140130673921194035926589229119690168304343622797153048445980731590371353990852305554135850303305994263075300844749731213292281390041493729257315810390367157343929813723660967707037239975647113138365036061040548871609861903961849936105390323056035908952716521688244120760002937772054200549345059959328476579144513894804179203585085252993874450064907705032042624603929134791860529641815140735430834587703620162613635647536716676059747800859031429361333792933191750084855096043897181104098877520049212223706955858124962571331447606650693367882768887310324454243982890773510726773326678439323322019262193656446632205485521963628598869821245905948414538983552431719342491299006181463959235638285940616902975647631126229146674653662658235758329722166170996892121526322495409725300927609096890929815398547781047546039704805640970194386112437832161330172173520169538667789380518472999961133017530953639202007972943843344271324196298010719595118940802076078542247534707659726795708604373801337156148493023257101981328749438961494854878373297094278163362544363330826939905579688104948920375875078545376405053657575719555719402413921082687609088769052263686540301870822701883547584723999228940340790795136796379635072634422455419128095770590315877255589220778969111186865369280723830240389236271049807288831287553507175113342480969287697201586675189142171434255763904895946985807500609279810043909249452408176625095274172741560161454315945185221718557495526847527727167389139029014720235059895496157417316989042855399440283027838377623650108590936919201540276948681440882683921593425318596862968867707355681783603419705184191167919396618337297000193822980150272483083508010971773091110587089489467230542892715118246415440910664532953239354505193052789909317281149964927253060347021598719613456500206310713361365178616544164970357368209762583749438630392248773435717559667110116693127919204620889828753887107153631368815546679590155314546236533727710941929274840416913145419700177540191661941927952326018882537303377523360121961711612555388978356176708377387852607563134205865681970192980420505034509501358373027020583244706964639692236906385933110811220139677100067477245536145173982465787334364145518521246858040728801878105976487177630797893325464580093215613548419484217791755933093578596719469919505619129316799344119459729424346000102857975899404969436566619097579329566805424670138374499909488656972175297862499944403863256488733167600407677690717691102171332461667136933577677517966874823798119741641389329665109832191318891230612883213061753473064594326312369021942487650442656800640372373565200124319482373191116415861199401623456107055588036662603162216687847134896499772571443635703187500753298600633308289970512791458197779206078069420505494926820444046342562971575340949274355797251601572079797266070199691870098612224188969224783312230698835193026800133351582348097469113783697448676320781546648812639240828418651602491495497986442720986605182035717645689499356020430710489295815865063951917305638559382217514301314348075986693326504874799038056468350956561639841602315510479659885931684745229784532711563022567963824580570873833598486159426999235303174720562022037261527089760668460260887447119518675285250056178297288871967524660489541310791051300257310392626908884742371565183099163546737457239943835000925165391918101842370641827844631996490552888569939325282656262824286907604695912293388882636789052588962979926004365835129285916601681627115850385950992004502382880525787160799914857795117410714587892789285944554229757489266391490606122559018467424204898306960326099241605373198039930958031845874187561196551694103025884274613267715286041675625997166890091974462057078876061938247144306820078699951582186915234809462059947336728416187438018376244684311462271997183540419908572126700675220557081779080207642238770083023145963243769724843022813747480149945967829765245111164756284494882391126580223207233939672487353483796834709037217278071821993045796170874846683226075483119464636316295504614289181870344025516066109960439682279760085105109039362910919942119388266551364311045937739823375470223489709893823833496062224144588181571744869858007680176809831354488908073098010459829884067101286138185559779131126585794627976344020932540464256523214487854998370452126786486295967723599386702875890628269927949214888088902597529717747890672029936712367876345198659570801187477179864845108982519553391404526404027575286220156098390974367883923433686902937949023880629769925569202312504277051089435097832023702609078772210288838691730652029707426870592354303768898474913311508457272408927276852932025683038229026985498309266427981696215482643789646128368380420732092446348106248237628678481958108547337889172165033709317162300827835446095355000157087325853718296069755081704358349922043478239737270858232696362370176097674845003041090604011687748131236415722492541367350659699997435146831130004790437633894683811507504479836224977568918706331215982573656934306098101058107512832028464444446692258358776454107654245446160237778278842301432414837607752722866645863176868757284362034638726464703378104558038408699001847001329490672016291067320866560152720035703770087723639337084619152832048823114035058253541286718497691898740183701119711247408166154018970145776023023745038112311099710264661414041857261089563696058312446625103344217698695531230691835330056188518487114675653747128425378375360270025404781526769638680028149067082684714366270449383420886829795605591530914319592305379389709091235016831752315693892208172366779477179713627192414555888808601903804074946015109518157321992631630815367277863953398265037693509319621749307103605468274638519238401085893804821537960570375541363419453179102144027724400228595051052507885300563625487962039630514167505389028154839893826056184605969254309230501184482024440573533399486462324698616427152552041418394545883390645070021120281626903764372367863270923848083570492855665422565700417166434679427056693169465903559002500981102046159970692226960430393134150112385202084330783492768521280232291152519737913751743284056717195786548200968348394935498706334104510911558023997896555372867167199806356218822908985971359456599565839007199084113529007032127984868173787637691975015965034762104926792800297988281614426247045499318735873796114461220750417737680384233088995124892738217191170599517713453429945729725215214038343046073402932129297183599023367167551902048367988934857854281307409171121274913518896650388059503648866001930517747973772006038594794431466501041077192351722447258169876135731553947360636102260817195494774873346575307697623829299706659381130355666982838308327669547610966886531811220411325508888982062797980648030112172279233418196079841299972072008841839387221139034724731085153277483669837824867965448539605467332451782821837371290684884322609750319063553017941264823895351147387863995054860224600033576913603183825695223930439416276778650226367159054260821794162606278653413781787284203815659300744636406739896675492687649395718490313212113656202390261522984062873095648128169303501869685037131095472329376747222478572964170819858940521696598105253378892335031987258494889372864076832966453384003413973368465664299812962074532556516610754825373816739692277169563653668258137853929592804863934624068004561289736777656499264445275561622239943174891109978681413003408786160964068909193446601068578173996496691929407151979770619673556327808303748676242818953299379935017437703304126784639410742390004075198605918156465947758609699994125596896228698815789024265778977792045289457268597880151203918786449716049993622264612495868772143477181778272154033157908743833318094502935381915728145418326821124819723259721432234940262895469574762101080787425847657147801608833404962554650632414744423711596789923705898277665685897719457925992692904083389327233247930254203274120827944369363547913979579720396366395782104958416314403965424093860475283325924343500781306594917949907703881670567144856475901470819362884606343870830873013999253725298366891041033135943943477132545251112552111092798727785951382708916366590952074170927525129902620455410308034810322700046208199313497741033969935705200813490694208037872203790464382890249902401221380463397980242182106839346850884930167918289662130425493338799654874386109320851491053327587732269026724129296625673645906875591489631205017424394526389397902442323703264903596852578213780965150454498931866068559097566323944226182229519656421572541809032099804496613813953120985347967114699342694938245149667475159852900475180527661226007197757224967081515058039143461824012521809293563442697690775936654520908202506027804671493363267787205816815970250481840076454284365495003371942335655317061100284423030042053052952933086763760286456546110382753741547484910093128725956442056976109993020881040353186694892623960995356572233574757431587861845904831966429563222726105271648198398546337943708365729640939488820397486960694333315145791639720748072343344270697628656850889473094981597190683110612001028675230952011106399785970418819427843873191795483746036719035569303839940154837381862624892618158175467230946628362055651216917470327887284570315345444858522369606979868892249345328209693435676167926010847238262589759905263792325916415032763625594607746274170433254493457444889477216876271827727072947967992940703725682106129508999370246217199889894467876686273457941352264033498177530833993906702966521338034698372728905324760066193925458206592897014152612950727426292279324657917043837162693207536501119601557525946940619181818487377713426834444240529306600573344588869058880393177484511774102397358775282284385958672028239874374352959211556243224389289630027291056872887268161611773035695272316977436959291424844621189894575011690312957425148284517441987133717486576746353974745761595416087815219493803821906317197854636480687724886181039189448975073053855804909207963214830893523184803790906668134527178233532246612521949926765291427590890922621175108174670500059568093135195284008043900757261786657751257452884330535531748414291753374248775094899335437358359554578827060373973912922693703012439656897123773945167318596704193173930742310205394492793725566951434978805545703305908340113045524208837745301823471483685405703839803008349014666157562782972454384494736538947399853428754328227478538137311632469929383670295832152967629316901577016376459707311545568276634901948250420327162355437616062896101031778920813007133134968338654865407252699942438188746548272867272278105469899924363853838917100915927170823049066727659616237816864044108587574547936667543859698670955474999659120236471863025134234286603123083288725426148465049133391408455713489742121332627956375141588593834370232883676361427210910916326438119930711805813705320521818716890340408422833149561397141000910171509937355016250498698021280775524186200458708968444383063445989495551440098765192200443482688701270198303940692242853914434437692525690603785633163635916959756362855116855631624525027754537619629428904366194589680239185158067914386065545763066653855089791671967227739752076358291905766479671803885645388188660350645431683355124532052382832782772109259629794743650827334190694841174771358669416235515154189766502736524377829273750109051093082586789846241868494722187945092867305656472937265721055693249737530172030034298462939903576040553269480197521260030669803843503995362245864967571735364486622960867665022114761971906683670007878619525727724960774953015827040191563034896276315535912935217020929815099957118977712469085446761448508350541333397848261343953149537191502413214925257011457627010326835919788551641036147376475962509762230288111889540471348042461791153854163232840054371084642690950362186833728775644555584451321260709365088896899626104066097271490158259265168477635062365733527671953832978920009067298565323545222748165410194800740749839188230279326391449423695735288995277041099533947552827010819433573369718431950816575181773136178920372220046232022502571019599757952402244477732146208376008348553877306273902091886835251019639767078418503278393034561640141876545693800041666721878598301833249780430668413708789977806097087513122453733179210477653219632269292062444118602403823939582693848769438647992158275076780160750653635601924781632884895067393170475081966462719511896879259504855981422537353491882022522322545270640311004505864934019626832439967502709419772579999621126315498180662935407155836102749719065184274065659372545125747421356527406125514208736831953589153401830056437614755600059018875594324899873423544185362988977246414291129851849531060905307036852909517474704662175927821270284427202763242218865003628293273448127781908247371971787331228262452933903310566123136943767215970190562786251023149650838505178495474625792863354846764750561938956048712724763153542713060257324619707305889144995762866108051940160877383993594759687934206306164976101628938474378762708398093652868909362413539742230974044012337734528350622583007681949535057372712472914630242934201182055942858754096729982477433299525328938891028826238500291868606622306007695414534401415437802743546527798112480595010881568865390958105517925178926168594761989018512885485330019719136580509343086513733915671442531069334558535936906805731112135220901489843226163964326307761140249595727575518017958941940131977457342289223309973919624542378153163739920532476645534806101436730683257957605166743647366202346212054883257962067779465896153466662849622512559988373663561545738099423982234139778573181185266945092193334002783956605221904343907952187695286295362583451142883374188013897668334834519923543727595099724884754998534821287541602121420007167425273228186584713024374038012472127577155173543806869321781709846930477213869343623935185177209438091902476791912350163419749830019434925143922732839989527528454309800613975570079141708167825793398258034505303504355997163018455281682926422796379517399826256972139310348886952365033887672353459179213883115787976624404445856862661187618660778544234578255621751391515121750699702826712148235376167533902997247943869400984398033723926082575914971225249699909162516822418830277064831538112236871275612260858402325217728238991975461696687100468066683951394054683014706632437280971730852617500405405846357996438713060250466532450985137113504784066696740812062280849524708273677848967506686806656952046159359064032782602281023655208379777490999881339305724930668665438786938362894312535175161385304765696084834268921637953176445418916273051752216789720804110223722838862096566304326937505381260580743571556442520301536065982737244631942002726368400072903913523216097806820898002503971154135638074184333838437755945688993432757328763589953934333013215225900120838600512520109318668826735672604998799535122658646076878454488418338341366254221969714632518921172825009741219838894379964774246111828756492740080109580681071631909055544066376841992483030382445386120476391807877747840955329367731266650623046349154209455030131869928385870404977694987623086816011982250603784077829331371486931955769041248096002894285901471563003599521187511349609284646438827763668164442908723542365626241849131109707115881107599568488241862765942931155326435533657810786249366068097352567283282438804714953365163044632204199356237763659235469498248612224043693305064454708669838194561327173167062872112922330882782287685661129367040431097366815821566525309531927357606575536633813081141261504182742591979158468609756617111553592650472452890139797307483656845667637660750300080388682744809256019525018228778677511683518513900923990735105970327066961915407328728911684660750520909200607145646383935659156554266871106258607999663404577588827698230347449917712787416589237797961170443306654990881949703719928121853092042455010101872809707443290433948270288632007292968230071606130096726729562697918386254192392746603900071210997349610532335584725675941583353650389695788836122277161020990818078499423562309210965202007496819097023368204647962109385232105587621508865676768483543211634698215738765508378320373381431990074202634978428101168489575401021897545070983266542762146933390803990467531115202415024832005665615806359792361819323007628827294668878379078853974048969533931470031131324493093227705326130028850543429077890063403191002285599374199590545341982948388657641910838216642991461141910541040721718375771550615135153927714008775520012284097818725816627089312739645464772598088949046387444120338340398470547482648434216601506040978703871976045332968159456039741792770386611691754030605604275947492737317580608753112966079880717230218830918163103554699678999676814113223840584872150451109777541309273348085613994313891956459179137461296122743264902894505828696018397663266768184863672978442961082457532735323785581012799169576075366163284457154796775700222592039479012456471885952733235380132049867071615509158782889567274613439615495902481052675789916395615629228002473414729092945654241442384279751348945730605833955546620662702100141027670794584352116489088168624369796568234197708223331301580282187684116710285191137349625550441565003220132187807208363215672758328941194293009420176277343107493222163016969037110211968178145961129850803567824717557225952337646404023992449941171332270648140922089039340677416590793358224796176127195757906232160753334804425925247216637653281249173787913554545318283886538707564763973408162444498793361431231856965340138644220930574391287276338158138712550673712242883009985818632101563534940227831056311703310767124990400513200129348970272130995215492391507859042140268931300460986561523614052530392725431314097867037236715981350870414441556847409342428580682669188705870133146463205081915056248476004435207080754087821149494621150927923356416767368335016422842786529339283279284533215152892040943012000817086185841075044157621681026060833568283697384319713651082936212468002579767991155399907648403804992817180375653459518384595099340093392603110508797537641335490529395708765991342899729770181614294760801328372843715905906287968664004706149178465951433808979790174722888221305314151452675047969517343623347261533030009304974265653945794747407885636678194708758120346048621221197326839850319839880675123556072123142248397682069335797025454114267856882868576218146166824675502952377526614089492621794102342151635411775702690729443076957090896064414965881671742121668318114963709144779139340867791720363604718337590738200996909450123084402978243198983074299124747509659505402432113462983344156393868466638451130417168804680082835017990969544557428581327744030140033636837871236116275322391852009315108695478540406038514296753370514492285816823175467578599332489704331947481163136568762244209211961639847807493990632550658610472649946278570911848293076400523023957169404530229774843375344969347910427880464975509168928481102733559380944046934895784831966191619156876786647442091767696146015961430071187637115981843570948763419739913808562861781819516833566051319780945322585426552516534052564189836041918098775647547009333545646386374588183707193089927774747776519400712100160212924290428843775188556969379841374619594878664049528851797029944034170922571269836434779234200044508972401956427768435740004691806885788296382555685769552433481059235369632377665412136136594165896489360126908303912189079669346387826994625689894323842694790019544917649079925967283332015020405505639582288322986542152012739038571255115833894601478826796130705936844627140731766358507487735153608785471059945081573750376872175758668974763714204508585934755203715928941449038455518882477822488860567681794844885054248271176560204127562510816987302947899169290417780732082029453912387288505780471150279434067819720679870667734689917596857017096422149884386213172333014036484090622963366139731205126785480197514010687614978678223829515530144775438800942091958111908455931728419128447542459302404344156046849603652232207039181979547390237479288943062875587989550434633272922942658198189938496433903901748591900745498519432437746889715163506178404476581726383698089797509331606867090273629067967365282770315463201164237555377992984746403323273985355161097777810752126229689498605135171656024102871037724129408278075558919925350758497154770214909146833655432231086547487771386228875760810079271785897902598759188635196306045666633363192174079445303345927730124049043232891698863107254908590395013066665927301170260376629810683291888015400774006822293021385957645423568417243649753033910342475954667977697080027375943580064715248683506681994620785001781035428128258352865340395212327966035363240822318089825447710520475037042522647972286991591452243000708332000742959773227257950376529937676872026591893146678879839618766508408972120716214708050532965530683823375864780997017362177525182662259448897555479107900294328073777695412037888193857533624535557555386215137215790485645195524782723839043922555586085459837832420422489960586622158423688887828188750328772057840977870899101239796223592813041542814620670946907294304427637357079519463824063853539753893251455320403986581318766650671801285529209290281388464944991314896215110965735382736711051946125607048321120628812596874969053325465166098551532847050207218448979151303859961827075525350830941788153307371333348324728777479051810609940065062184695791416090258633376537026950336325159012400610772655185040857437205040286964190345060154341482587482135948966805169716220412921890901365194266163349101517770935418782341159443425730184584604796749773411239673674607693758490635429993974545300717430914967401452185883758079084100939528251239939418878000980008529832501179715524696629805239359426053342566834841710659646899602406759318187300760771656964600274918478453928375977395610105436229722833079671242759581913381790783409621408277302609459830241168133924254021024790829584271922720912310498777743600822820404793982383576317324431719483156971330010828525340178091758465229417473591973493722187334865037756637694545173480584127419296480623788474696003236329645607187500856199400629019636181432769610791010248477449948177473036975189922813557693575014468454703817964356041927482029664114842647553884616092843173667326095117141455146642087759372116066400571318718319403782493035660264211455546550963815617175988326306606354150291012138175740705460347589437776573433474433136145706954995855206815968719207955264670235032289325886926552115837404571767926978698309365844160521753983979691416469213052887124734821526840486335441603666716454520572878920653903968965700988330392782283124639883225936818488973007620295019139221746963919008129822447578103017840712413711813334742069153806373196342037227001353128231561282092730787333606573188224330352677536168514401284814216046927928006261490423726475295528980672386898011246352617089223609419514298318505493877642205598397842354960683843080444630918738982811032326174942490245929687054290959893277188672788181490220518594249649786437220191508458725241513773308659016343738990369096183941846604804764128577485733960243288848561594816539130995078432615276124274373041981321913109713823323536521962565656841321009977934658671253098091631236945456552408670990257957373786907357079576233304152045776015138834558474196237479266731639431708110461614928063588389189301292776504366428922229524865961964742501563936513045554221841369811550560226456922426884427092190824913879746046884262153522223215969529720460035628448018051430923514649064831558147073373909909403306351628476364524307039902289069103226906335776036486055194090278268031593780882659283867885892833398144312107432421057444077972553048758075438271808973816058294605104830293838632112044063237985310181200968004784013121041931723115880198941289995094490518235202855017478454727620598636970700962150536736780071040186618081413859627807691530330859735979222742977968064432368930843822216161344502909244442413428682045989239144100586494855598206028492271624778702699558974228142701436725836202019104692411143248113656782388531661678230591013029577237394942182206285322925329662810562789429374661505175320710232540395606954202499821431539771325543297586855252724801325259204962363918642824022950565291717349820738772748645347449926663833468080472843102113780927195036693983708889807928735328153398474260645007408084432945021048660235279258531331296531322453687733089541670661483631106827794190105286544385525475882138943087838755469743892676454966213807228842572393450520834542156644577393590327231975817176591609149922300536477728381273341666225338414722426299424119246224009785447297982912784403926399816969824983199881028202402018949606067126365661007469397089206468940335704923809270107051053509385611794273021697988253541628015272720389796835160423690238188359887210402920190710560875100167903711110517939171375466236838325414471785938653029705646262609481596059731112820725571828111332460761042177477596454839111797136188734748786825398458668974921061770350321736670657082169855598660531527270236429296210603327629512934921752142974883617498973053872979523177137651695656076009410257209652641367228047189019484536577305232471845768564345313341809126025754013903941163886109277630735614771042982037148558809988280770118207688604358180555697428951349392085027036099852913656672420004093406815626648000477503692670100671875654983026784039497790284984080411286490427373187873235749233515777926654640587552701973317415255343693433358781774394766769865341090342418288560046824427173558919562996250797908273745606776538490242262424341394441051476683286260981169869629957329189480313093836578772030544063568880873921733643168563019749588240778565646911005844850632217485602786987082544923435009462428781142479255709287588160371333704989444793554135786176777425930035019948788189354645706998980238842859434023529395735903638779955485801844435598231690842488353550065678400248622885397790591902101008326643914042378583471415392112521196644127196798500140377737816113954694556263934396372291698397034431618022638018535077274790383583877603813757838647012136315206550285043820926854716048049446724877051115295639919846196607048019909225438759193604899417764243237878245127509762457528554900919496634300563250421582478503943865657347030265069800272249653816227554125812383002246685055927019280952766320805532391360748859854952576989950792761407664345764642909718181527040843411686487519529152425069868697209121972727641663998948035293815572061036528542998042279339909846309262878679188844745822818384915413790257576173055737219098917335808706095211813913922837017330476881808509917109050444013024907362722374529981247942216588118589638088129678928602717350247906136422666697096556330601017905052265542575044259197988430962928103065781734716370568213331695467538525704127557040755862586832496666639996077175071424542434763807349935092557265250192876408649276184971730458976251487164885915989512553752282229553578092755157717734942544940646365328643887343342175307027972107888439357840805194777569825417393212928035281904328304226608115277615033728093222216146272802255172759402589140495678040276685368356006483751211956556037929089017497056882892495376800055117044514709040276477095266126178911643527084947663336330375047626681813493831684698386036717861807570903840999441668188850885715673375085945238160582885059497191411577351946916382663291000936319693762626563399714388590830624050022106856248393754516645389779526455014543848991742196831219314013729951184100975097941992374688409542501321236476707532895687164905935102896844431703315138814848447542911565514954932398604734701430994530959296573299640696179056571891557139592252223779966163349292409269002121723513543080937580132161231377545123487290335614609148164275810499520023608713598549648012759693337261148782204827141654286109728738531498106973275369685591326889312465886397377860527964731457744387037551291438363101480880102554975018505634383742326494288403807981432555780016392499296908528458983639132925179370625401502266817359646575985941633224415157573672662192304256955666018622138261908801925812037238815460077600385904490388617664212001571276624408763052928397860029377083531090043918658812000874319507410289980656593798887012309731006970179557992604473869636116078651598376486501679432859334319628128655516084529190591426779204939904118967887787866743039299757616764655468134247356325818313412266269003748336985031872001174603213572511554875102276922014334441704147593650389209545499769900214280493035695458920060089088122898084805497614642398124170653574543043763040631682499554358976779787290679404769481126790951355743782017524164675346132975800098129577909972707119039363809449713956296258726823835894718541656384732924275869509842767377721923321752765396866061772823715965708211303558103638151827913256944611930915881335319427340665428840741599708194924029183884976257483153393752546673650828439655401138966301676390463017835475369478652393655479832094346814763378984065784724561420759944989774128751744945814534657383789979602559586269280739502699277569907760849202215589743467392637791753036664387053071485251947022095708928286369504935855848932090955868667023345755431925451442518128800784991514185003301380182835829191679510151350632589157356879487674191838233061591376859223498332250831999552784862550590848674550469516024205215252356676382666432062440113462461848355382319190307897904891564928816756949512976060226185159575090914427722463313568357223509941125528091622824240694113223256899532000390302021969682173861309879698007213116386203903272971919955577059189465177709310867334359701908675463750777494181642136624587122836257130969042522142409274144442862946764111157333902606899283995914207344591821012987893827130475037383316679578727390062834881721234327931679007801792778205762794247419639511777509457395274438958633533473679660705505270121425442994790804913464473573810923689307860356623664611507441594192307991226358053752635962493588388549945357860888234906479016662455720947882310387009991721086516270017412776478931430636070317268396116681796735997405243721801206234819404677351511011501357530393553613503983876540463630317292404004439345422288665043755952167963855990474148107366357622269326643306422466225136196475599479394475167428303938849538786086663136566087608674016868254243859509309839009508247414611518279715147925387823632311603910159790837053267613356530501089255973694782566935222898154208014466204855019765323210218161662195303465718412880165026448317775303785757210757216727037351922240314148705332812556025237909652855171060447447911806731970710020686033490952336928994351734601699910718450704909528695777413179412053056639315825980800945415945684740167337619934446441859524845857806791846718267214579330271628648423325497020868147406915857052483014262513491301317931897383824525493171754034351063059441518585179933228918463985687661286780829821411290668500392562077476960056653243485162514854282704856142333971063396132693140524821184022802087649328246007079295186711877074641645736456342222618471812428438354882660565417559049879536936295956649725411837193356979846993998266970823283120991093412559948081987322038686457497615007315013080359405040673405601232570978746962918829946496700955322993288831623762277023446084161786295841810033059517722906006608958130305831313955885880482762259625175518394264980631200451271810019222194970576697488445965926929976916207972664234143396980960850145452991168678452787722580150857428597643180504071622549465121526895079761409835692430941746765451817195667472044498428603269680371841082593827335584974386855805135952284552875963613860275898194531001707608944273324746872429589116478218853620984582946830304075110083054667661213169494465638662336973149053630487890788328740420726733833969258348281353332462611966397276729576987444036547136001659167477142386181991645306272289815577356622922661089717797715008346279464409360584315732063783476195170000165810602100928784044356820652019452702856826432217607135816017522219734672233277802743989435971155978038127627806526046703857508556025560810516667781838263691621120275954763575092735610337565179769946577949596114491162131167916004607234256813482210917470416102540842483992404235096219691263681209164349037926693492225463510174034101546543752831620706105390821226693539714144670163871339195724562013513920405091861473232182936195189123645492088239049722488287914257299133977822247818652101339141437160107780810007161296620936804672633770301940591847858596557308893645078579360008786286866338079763689028078061985701002322447725140393303221195720569671864238802321863347761125994354864992447475166117836031669526375416043600635663238710592793579217568711999822811110891424646101546553565962127042099944031975873515343983331956098941730938654745465140999389397693553922458643035887623157615625861587462872818781337112351345878837855804216977643985259927890499624290653889621582122218978878116258382965907363248496977987612007130681883372519003703774034872250429734960993476607284864000163199296066954370714271183192140992442394695825665420541914512045536142364884148160260537748661498641102837595162909996220912329819216783392396425613907277536570773639372511982297369678692468915137165264869759651344357671228268583753144012628041840462286935889735824637378784844748164121073381675877592282230791549822108047959043483193387634330733994992519424337213632119153658108725527549390349701179531056527436888894408547466647272707809098080469973094052028161295824460656291655076968023561451397859995356144918568579496089902281540993189622735210747582448567245261951004826725615270172300934394302906880530192645535304297709997828918871272977567312250801215690898921046206103032654195355883084346331184232432667935024698940574739104932355738728624978680751440498738143435118385255825859650848619765348305165577465354849251847062358463611289612310634756134878291962080802902154188956716954705784126360651280509700448653394569212676107464890218260151360021764042075934304251549604712165606382690726688106032814204741220088866734941517997246444314878523028195667730092434525278035472371332498112111447527196051728526390932400074100850410135349534043775070868269290958964505677769755051816997654774249074987137689708054222310307369986214421344497048083338862903619246209941700659527552349945608408883527711995125641178874877554269069537890166583717050597606881779084911618570218746070392004112101273866342584584512364593848810490498891712468573926962218064811341034779991028533450433635293559946999107974838607309383222418565543650497649458385709575475892418107954937764316896260734364589130152744656521145786141557709921049334371327654855020781975775613019026316273124397224267414660169404353621126647620668955718147149979122203905936045317129530955540122855108112121026572969756546972317828275358932526338331110696576581556117359486795475942419029558201244575090753733704603536226154971039544311293340778323908570180904613579628848552716340269965063129190994269695966225589497975628721287757198542419673475301587463470733050737845796145354542520644230878240841408078462796736873887889585204470927908101071211987798727835924233933557556193713249979593876098414779898213818265034322401306385745448854935897070486251427872429652100656649787070156838838645399590365080171114364104266278696724141998326547334111284879330934395808667890754340702026793784774345535265665129290134337234628978010782011552218872393731201609370970406863255367709261919003989418841145926153701166686589563673150522163304107798488677211494160046621106586052485041079547948381425140499636824970739689414424666717487367463168517045635775424231051505809864764641739106287459904737924888107274308142629524890931985495762898324171908961998384100181546644378082375332840225441604148959931908730084724728557488183769758189534793908801984580628942112361133354632540040466535717316673238652078450308016619577080902713241189165462019807089554609187238543726113874966299766658252314714818800323795003806670118598942195994821840489226045885487688802337594014215791542952871235682271939416595000624391183593426781640483541623849679242080877099637573387339727138570051017216390102814006199640295555510920514823727888939586225063582005762355860460670033354514888308803206990796123184492379733390033115058829483802068767102409164859588883944324656344667574633584953224141651880328254882089918241029406831822065117122105635810950805267608243003755064833828150365835077439401630802437480979848295664872770213417005589113966218009352304353954888255902667090006571188533595233013070087619042828655767907621690733940856070615889361930134878025952499670315914362442199778519830043798444145486551659082820414113937673181040877195965789360890060092985718784824543162180245386116837858586234510782849182169145864330972476771131495903082734618524789221595763617619415803413031319184160775944101215743941774531300010795056442252510930673752322368854324279121353055759262100311221186203829750275381784254173117337551711968165240928436766301402843312361032923452318918370223034445497414188639739865083728606861694362513165598064294041596095582815279474489407960067040156066354233056608882241092462255818735880428279346966420627411245975215220276131826209673609273703418630680429620948015190112156463233546199496049740834443545314211500672682516687795066725418216964868333082337244585492412921673190981802291517170276395390765960845015945874597607378223637182049117249030372172847521476818938282858524186640140709140991778837139569216170769790100601923052662978421951009921840123220629140060482178194901561947902646631312875029083244483715546624849403861524853532736635483810240007269503753672481333156495813195298329582489456994701540983863588375105274450387542374163505345484390591298010160337024065091419654406408930992874563503612249158486023751328733731306177764383349114167974279563535826432656509343897438769712540489099543976103094470122301704959677916134546024092072149464971044874803825509647557923378408501570469654092609937529297506575632445478640178182086899760355012046052898752372284096564154010430487466276071995929003518139082264656278006917499381889757550412455262811876953735750525012728015922292778267737194613719216516400180711103260665465764572568399041112655103269898477620049452573207633661187946685468075655577881616833650598047997528938859344621827274827697573534811670385110008812060026845121931613498729227973543514525162066264467550435130099588759986591144348733027605783273860610819603256783353625213985372146327137143733668525942897840927984778786647466449578835896680820451477672719070312628807710771780875944659287949105828127513178451193902192043621739992710417481747355300551496807137461376682610245822978890268640706208716918408059066840210711797550731636097123210429979833192165994641187673904738358239727102066913868675822234076837140251287860243360137545695612101211186685695275760983876242013180600973001510948770418647501460347190956001644591325816011088700342409510860065966824661861370034045403056501560321089611195643279401133232062441296852718973390029304387526826413252372811818734183772668317079822366819849255173111404842922636004972983664647174703203589251119031455263782036974827376444746579634703436277452109556074920999706859663108318811970526754076084185209907452641268309014347673429855065555504958367106871903849244388501716241895924159706438955179197612480105118326621083951809191931686471500762285491546332100294923138434804057097770139827445193483922197130608237016546337256801393503481012122660511497687829462858623206434741211262663352782157747324524831241354286604414019190563714456193361673409966378271496009780576875416953445440599479396181489149477288393444938623785445710715026668290496140379849969979904177314534985205251546802967974626481966870228616423121477629241242965831276366150132159956875563032138349578504195023669392820440838149111506865684280960304485296973825380024172676987094580558823876675088046999123811364649817803232713886275399981430647461240477541717786963338613965617885964831756351902365389428609879813243105964107502022049060393598709159547794213809864179132509391514302291823591945291150294344931341236215198182158312032029486003940276690126632207066257065165460052747522401019923873469029975061163166192818509767792260931005135445649361164596566028491128455262247857268747061159462603273049260387319098427270223022793637175671192685836471857815155133520340200942557325702413567497929832606616892374772379092315644836993982219062239598351292774874049218848651486180067646836474766349043546852270441815032947346688059802599704514719086726975420909271463724793987242908001465960306126644166022286040507213318150829460988850709805662279815499892792431405323990348617380802149334102633155051103722338875148162043988162961449937118414730654397256358037320605374193767157215516252026287912434751769566274504051833871608859843704646720497692571862630681746111178965071273389413431264004219002284268846322192496026992853768096158931948902304258339012860852902135855253522872936927725731124839805870962208930684664626363416474317898670004740615668576378571075842749474296485796676254876979594106944926811657656925791063739128091743329342766008234744512264681724479134541128328974457551465078695658990528246653499093871511116967951536432826151198278986688971093101695910417845024882873523192384486242263629734975768439282263112020004713218720170178371097575668553713938247585338118980568055245617589253290124104460613862625297201449551884592486107615753201952379210693182246551772858642266047786938398442151913918849477120401248032226146171138594797565685911745747244418275564366755031861737105312840615915488212497193717302126743920082041117549854683639841356774608838167338674171004703304512237269963296753350355683742559327885052848439709953415176590329384028506921996426091089906842903712845293454949079349840370395015943656344631399512982458133353138964830395468537774238675823879959507312791666339121357622930082381374995088042414367706341186794579020222525197702359954488429230463287549234967220873007422618532623944158468650826153186560577857699729253351807440463828973043612131248741664955773205830319852649228400338212296198294000357218896092227607689217373213756128171401278947680860184617347613358304779955557011084658991846526471602906243268230972137919999502600200767792842812801021890465503686449406851637469474009796705228717466533465347668328529930583917529192568422946133303350299266147490355309970592944301756633438343223044154343703476466404927395026581091264882415178063849558473212925984863914337804053563760280606861278168889215248356454361916584590511206537019448479242546205587901558333354325586591018391532755634325304791374070246658885855173264155785108271162140919115020187616175817025131170079441408634863148319055296155411318677747603095539999860807938437497622730370371697491622920021830001353391812999182960402359294816224037573499647898156526226824692246618226600334656315544406919091944613359229476476175309840144569649498541787417212313607795570046231575740701647612827340963897976977401987616019415760152910910925312276183834786795185241937060797916559070575151805129542831018535917318636529202913084205780739267574115631345641060048148590659777277558923397304760176118610946668393831705136767659806086454653275384417193324821035003461438700642574999821742521821218920424698345969460171454108096717354784790289649005709369565850736027996266961684643111823719819499540175555079372487801969337650451347412370232785817170527287540676808677865733191918065414650702346930410760260438076498398418776243353883813581831396332297830451927354200012443477014391410202805835137615248683465400922414855558907372029219460949678309380472522542715397156446139320717562051057479473825563034044998409055189312252581517064469135994549410789766052839379950219126026120477205145883687727742039393492746617423169661272448881420286391420227812419353329742169450946795452067395697738280628009153419557209296208702178162359573153985804940599130964597843674616880332762471313321871636394671809366747344033575552621977254844202499963393174861668116858002416101935718158763913937159153107634250433840677491100623988859795461135553975583965305392425113385151972957150725671949315914454388674809412700929742577221170197678077755411531464441588881354640461003436754633954381365737941755202298370463378124045276311595878742915414204162066248912616238500777039286348472623334350644174622655488896432896084716921233108446333350533714717333033190172115307748181597531874032065206546663038340247240443641929585156620772019573193519488591629815330055105279952540010923346567985970645405142910657105043026284793759359388054120084681207165725958968277943629931119229046287498933815161612418075418388765972717000319388966533656527359657047298370555651002680279238516795033652066530917843546800532221181178456832436800443266590254628594599103854757965209123438950325105958302845145019453098923277198489280787845546749643627564616966261836486662036715578498138398682528761956385736085204193320257641086585308207834609373542674417458791798165097760674803423587943788166111998959566679446483821547715844522357513096308613259832304456646819209725029344903578658988884052055288786406593898270941098662152737161752449269126472228562674431790670660513250331457206783440463795142601733349592062646181273287377940013015357157366237612685283211039112016619481155877955040394086512236041949757935718979740811556373467207427424157737740444109123848555845196736483504888683099313898234421248549562023391981900603548985180440671358033140872413265815580856335529235650556243406221738635871005910916669020110600851921062061521729889870836133794588258419892972813593784638640814620973215748876458545452905648569347625409289910669192256024642545291001498200945147538869058507821574990164238325826612333030842360171331330197402643659281051697460061129741349954361141507789015523161636275821160734521938551112723008960033993710873634008474458582811692917284014715929271271973822535539639876459247383693261128037429940138758081761750693604738088259160765499660285494158397942913044178937413498128512994331756758244076734176951024244331173208054198122503155476482578701650865766702309785271213432609608282808472227355161279802179432486389890602925191544808852944924913238575321489641284456505833651534398394353706322369086818474891634082930268567197857966041601215228834098644950300613637984752788790195341774348444672748004363482761808233991610087405112235165967744517830819216702751251435494699668726687370827849191991682025903711477659826068464297168288715196482705657937945663048499534258282710020287457514253134878869888080123918252754748629359202579750028182197510099462917837851103466716091576507689424057643488232454106255171455768523557408154552326601776743209479015645205466875325651052514797632011122660267524833213955089931268326349301368519242840309426023879053232047876793848815781799120758839989511824201625492439937529250292683380891296512472328149902698230237888614435318987992150720017872694765932161051852405076863648912351751671937073774216243588562940623594770431200526606256976250968421781211488829880026616044059222329331624176122908743379022287804561701357723750619521603426862806290537864968871393385712562416964079324475831369885918272999275782949295751304825043666028532371402054964473380738245775558257092700759153582136224878739519806447536509228338732197378945098948812224316665010698739616672989920964420596817569619231839866191793408474257868154615941458938640602296132950038120038389767450208633855782667988106569036999081567827785163782934599361943366980652979221522153666288839940268038621838784138954997920072289371169507757061724002344872898683808889469325821863378234356912074028956871885668709606127386219349873263224096065960699176020054536038165896602143871771287553098370990207133084712303917975574483810050683280951189329272191231654940906640214568359874463216265575739792837308702860612939772368385814919939258415742549146335154820414128505256116414384738621579485025909591694016701922227152051592446384786736844034101976022548505859620374520210340195867216081712701926460704607959928713121074803511882506823353044969812655209567080884541941022535199131368352911597222819779651917510914125749066752719879928439903727410645886716981183509101205683498176773100954846991006642170375101296402795266807926201346490826570837312730887703498538168830180415910735087802789781444525165407708127488473796550331829893602610515170900920110222071001669479948606498841609925577821033292542220238243161693794552445077116612781957202899490592371787630713791620773280519004359506302783720524286071686319756831994495359654617582379331954922183557140638217262170118990624363016468349879943067324897484029900626756368663934498668702957463295592763582274173904767366468327098725400825658274079373013421250157872246935933602320278802133447547116925472442788234788572020478481096682495732594650693818393289944085629329548452346954732470720957681550003136286818305873597665524456292333709800392024465397081980880975167759000829452339338253873797516636684848199061917189230530293275282052288738997779857757464433066738428466834238197778223941515224363898742495170106566785302676664370854624061450751098238265082329219231169465936055216243701274300239492460008464419137134537390881710543297199625921785958368900227535469344199270563544994464648463569211473954542342093035095619125962942760332314028381564195812399216843570592611552186436729390811404988429954013503045826166856151191924704248067778748838713189871896738261924739749089221696564899815767170428901744966620596800868199091956648398712799600060660098336650850131726705066780738105362533240436156109801108476755494877494236585163719465279328497990577018451049091701533568613632443894879659034367590349560021664265581524443928278722717359459483078938720248473420322290052133606846053129294097497598893201349050155466399788069991700873715889175956776894727061811503019647289132576784816190919388459773052888173913796341910139122828818689576669158175066401906642575911857638875482934362992117191271054977385373015577838101884441860657830592410452724319669227643946881902302936603689392914352790067834549205228896117886051875408310491808917759260962571182883270864363467278181627472557148502535750935601944533705704297279316518324369707363874856092728216957075593521798282931763040398854389505725017946553411966438406118328171225805809313865366901632341550423553948803977100712507041056787741620258599084007176820989414486746229922762892025508580816217315083897553884053494279190567344876604830970791086659225293101759747853825571471946452962908784519565174095947894396337685688784133633407353907274376637220528022445916053457375406618371695805242171800321860228583753225978883501880423178875689402319751974374446133525974578974005546624424324975934404953762682364015057347269539801101002565825131195753891584938212512967996772536212764607639106722691844111059166671823174812066194772280535025793861898710732931143196219558359007573254549265440534485876237997048696398212906230465260237154569746398218504024061606472122473862853691454227582815893032578671920038152313070301231450016203835585597084636288728568661829588038151412597924271222800658072175375995609753028168132431908826758112139786458977991567077123341300614050720737874775422713347772318791387780604116028338928073229462986109438994804268776309041382820082493276437844569466685596913509728092965602968378424831906376648975894022974765233737070759029573229676410744477902854220571083318641606283483284039376713381480941530810038363462098674092314162577259260164241310768383853609677439389645388121987184708783576028465758500662643013183563775983439423256319567388921786474251153914648306105617618522661484986211735299300394196267978351154324719792100999023599501018504522633621366295417587904115529116300595092988709372051119953209519197611911117856568563145823742527336348744262178943734255594438827210995525834404807815336301231817250476112098586213911950381276857684222706022880857922802278992701354502689828981286708469480858690773687310488241352092533779928151782807224730432956057066223456189965692940799043010318005588385154956003710153628833932963083886118375725134429296237436256902862399081808966747840721541648215364669852511183560937695388382477926820540355622931033982346172177499287611431071126186981767165101021328174843226860492899962137442648917874708005217789914597936832576908254470499557365460738332954455037605455616938462993526955598254814369522745135159635012844381657623878219028344778419434849167543322089886572510721638012574559205006261383235333100174635632696788299795223122133592295598777147842562152819660095824803979607418806864814622218467350238464996209482900237216747151301761618348664856900958044527129241361077448550164540165882100946953185167094965320283685563439427552586762309399026264688025210023483988108103139591567221675210364031168276980204470846827510216007652912859618123289239199898376154654015288476402389564008009111707771686632584715188865213418100963097892468142777674442490984819462072099118606178378827256060277489202507756549609224153721848981913999493043561686936215964291771095256950970699006323100610856485554482317681694918920335382593839797795520178060026150453846602234805842806680800540972724248870988991814030172108374085197168446555068686682595762131761853474144377640981168974620203712113186150318053481637099280510057939395818396053815727990531735646204725646756465733752324960442866627542283341194771011586148225132905747233696454593507786302813970350269335586720254206532019113645684278522271130499308474015508320553450220711151829250378245841515954238572909205590931555270937157304365071391970662707208366050653592578075387996624278296260271908636785842034261794272927838720742270392586478996988852017285437329638914179856495498712313174210781117458478347148101130220066918811713906332237746391442787135013391013614654758235473132163877978594229259092873266039806170514510518935261384635649007582348632915202586551031103413814049101573516178860757643964618834101756544414874774396958712593182068392921811680883559712722653711952674639135472889090102527777429906681680053198706232475569631647941994318772899895890737174479138221069168303144302108832718736937223637159824851127773765854395220664987630276981234613453697621047397548443980664968551500182428724139629300207842390407701717530874006211038869812751613311076710422656095342065627964803091959171222256860508660697491958719528511720186301457223111255958058030059590451780162091560033927158135619396152450582940942383067522310487602756833193139537061594056900825467163407688518738062028393764941416952247897644827415924393890738587033683110647482959165636319407597879773893685682536565679811940555829468907562097486397051586280616049553801992987901072698852640686948961003323272842034061884542128979432188689707273827362778501372701149638708846640786079426555525554856648253672623885530195700899094418141196819278225214743673023757726479063021362700929435193537520244824650445028177473530313055878404289052956536166955757460304468400201302583472857878603479642966228563383909385040595996338205201313459775949549591528249136758265577370863098534310316569918647749352355876985616764025694367949650826595164936185639067761340863449496109230852815957594732446929978437875069577965234066270348934399220039331420221596404753079877248547192899031903311360675387409926265876145829524546296274478253060713708610093256561091062901593703234578465109425415658486336759717141036824690682136459502259382358689803420521458424156210977125941988605174184609810521802330913491593055323640211801353993827390760960188127085700221614994202352285301197851514825409266951856567653410404445485488177660629153334239355883040977080382629431894438507702390408475017104093236868309790449784932389215598500214358700771342871584700693024716766312285302839112029615848332287621873127025440275098869777524186719725803984567834528672337262681942591376892237327986963699571947508280574929908016092963856488757743668130599330030106516567168643311600381784331809476982492426608263925647221085630282122858435912911420360327206018252323794629310925410251245417005166491749697850176586800128632544573787252932671277451624334360127340397859302221599617751736148666793967656332219514934298376790374930825170161852849338344242504183230302641005578188318544289364087403203966008892343871002340926852388496732284456687365704234315669893811311708549805563342411090390294020698788366865009641636917052815658583564774755048831911648430645989966327033980010970627143154871743704811217006209186084162459632196275818916875947150823636892761717485163145845180705435637970723278957450538758447100756455874737245671626075875582631624163830175894812372734658328426433498421199067903327699506187886673063449032827837648590916868065398440393171382569665959236573482235687609504600206957367369539435373448928789454142994492422965419920687071717990820275112322883020637409332430828407680236599622307450723954829132510014623152283856699636464816199306108035011934098551287730815954501549790983261007000843516322091409713166839050930777067825793848915921320992865980751664776274042102287069580316910197690665849294116301449041755241528407985584192045942224722408579545248996614996312956745993178744978341350197476002485583093556978815369731363214452511408292841812804502491992959845617297886498365296717374065350275757846534187078421309805735758509870892321833860276680968786744587673937042506105294559344800003379484411869103438489819927217800456984088256180027740246971556963453537058177132496654317079548795257766421120685694340740736941652110453017077751449502966420150856734185613308793690799085988881954177426188031441417486935293012862868769796349716441242177380019690974862799608946093642530679104174593571283190402983113155059303861120619275400347429960129769845672856800757478682568526558880550446502824723406212267230987650952467955511675760755189736710818664873391355547303871771482599249820906556362463688874428163547597380200927033727972357562058520194887311757364152085688799839625539506720457656370866786849616739928990516639547348064688416321612696232140430043034978793765895525591261273349443137493187558515220350488771542061283232155425010369584201177706058113108574067217688447392412151890674297679952843460462085104229892955901538861717778596259659024537479964480573754259033955717369017939751600199875836990940353460200600611457081297272864924415558859750242749010199752785695834533449432500257802043444408682890750774396173670553837615787863853870009535733359025946681197512373898387266536879554300184150448072052764944570257994686803499492941686747104745236313650471152698278105520599626500224544073428713991949802538333850588539364994173363696431899803695321146317461717020388070866349064786340422458469135590424245140281425972094336803940426469576220351976052537466919686468405748522732221411263468200732680991283596804337124898651248471333865999581557036241284311923713805206985546305223962860016932609247618752321257009959416454501759791304831585226900924405531186581531978459314051354967975019715913056364079678742743886974318121596332024245369509081085401074867453223366948874174475845601897763958449021749345971047703154197947217559031048955150713033750922642894743661501146171128540489836287823217755403355815130890086002311190892831719794615273396398147557956104816547218228209282412622440866173161182953146270119621366199594108793583564320932964189356289507521834160949562866054760820233943903693829441070690737842159371100843550809934951258480556142602794888117357782314109215630977556334356892809062401470430406809674541428500105312911014407193181060055619529375994409816126454374436773978928455823616806573056868188932905552483777388697883384821269003385525577296329485036257241617945606880625056743983435840688586527984713205682033268015840118612253710729945929721983140398249546430136414120937944647846329673080412403157916714681071721546579759508437906546392689441643670202671733332142868727930006752568089594724605400773921436623774703669370647989280683436306662357354918836306740896905345419625492185959482963529914425068124219578493976249362699766843201171783094789764534282159211054419253956738906802587429523470246253627205862445299161425787499201547834925160434238534924384341030380727377077657014743734358079845112149890213877261130749312518484971289917459095003932190625680772393254545546917673500211427825159153713922475215102619575181255589919223775605562518625777871520402423564300801544064737868647177454853375685133039577305055429841027452084882456380181174324411508866694172029225138714052593329218903930234849521783732353344653262693777473250410920550827627013601076268805734928341061501432117912584109328122674911529496919441405798335403820079492052726207312385833278588756477905672110416544166147076128836100062438413053105014008101079875557731522504246358724208134651707819681326647305265266870097539010235484005431910303058505073284856662189230736101609798730109604578786272596971821497774593191217242085520383223097743733627260091079170854159065400695404757694645269352738958908946566093553216942712942611401893368175582123366092880936868361084129593136897668254634161807973379931143491994506197674140383673959104332508378960976546321634429684475047180877538796601159469105846985693463154671519673105401894347253273510123305556649244625308979855259889634444538294144883825709671236053389198293136490349913321228421966087365757136943286363383874965694154477107061380343673939543299455488946044328621170422810297576490108461303625809885204445652889253865618355437466905075794821106981116094362272781719468844223901364355582252243301409371154840113662138841082479809005429724928690877078639433835697580891344855483753767771965895936587515432750294934011636286284193306048171093923998791900884203487294343721494612397017034303370791698316245766050613624590549183588052452030731298424258801870960784918163583376321417765526484660862674494777513116337460985326156771682160131478190445605770892030801852154088126888224610854206843331279758480921954444388966711314446178931474129366512819879025932919456527368734483639889338998436121168068986579756748851654888633769003537529198775769308105735517395144379527270380044704900728573092526263167309907400068490459975878713209353348147998072978030685925274921540325080620629679368029096365711965545474983265755760946724722924089206137105621700979339927932066567094589212083904984604758648011445523278136028145344579543873365991854029550601001878962582320644671450963980891996756614659823701412873664688038594032665222408750886052884106719799914085448700729302201722026030478638071088617263141531392374899477819178104077545255536936054590363781619286394200226696480397586822634537581285355079620606463620227634100156253911994632578678836087025243725262830330102104489432622627532207366765291091628199888719161678669769861721068950090236405929175721859458476306892124704365027536328350650043346183189703050828391535850605251722344229331896294372577616315222687395005813591563799500907045720072609689883738753698242621863149512139883571673563880630056290325475145199661817267782078962727991656377480299102250947244094198014686901886252851004233665906643076501671002367873518980417508647603805560882711984788639116966057125758111614332203162398619539960810644891151299038321892449671151819857985027704469785184162807329531875221707375427807836745060608436887769304983023041436468913983700826939640606945628816416952916654437390847572819696146411957158066368813124848782960051923653816696914413164378212808037745822319142506653727318660158555763100054588191460863415120134066056861830539910928422209722277276664200709987582315907629439129515634967208380989724723042038732783508601474116048285204200743959607793967665745457415734381437629295610953115848209200019968349222746222332034922978797720932593734589318530363220021852332922660432632777386992952544003746065480447629498272404229146560052904598661490530533034118423277471347528763241774686005103519680259504893354161773876502389319108406652138046674665296435771960522892728790582333626717180104787074150978653274415552281550979015314325699141091329952502769916412184798903534173418028880785943704747003746871669807291369878105191348231743199718175697324716934112404219323832375815834075050325121024232721599976225595360817163965955459215200626349383277938717450987669553428787897746644363855170650265044857714758789516639052612618767173875404593877592449369724687022198468051519182603434146351533751735439834658403665007800825133761958111253960595894171880472178746360466850775595608766461497997590725725466930950181226605975633832045120846386446499477556747110488258186245181148216024173113511553376394180161986082932584828502972156412493543549370147221837149093135274651614042298840347258735848047100304971036786199690396640031890270141021874714397393047966712714696745248582196159044358857504747116108355827618601159886799252327767007791348806270678430582303768443224083728557775850821627326777552157538549313918894433113709718797654930990630437083812107972731604146887410442732940307277743637828844239775948723462917328964323648950423030339525477232852922518209786329412792277610699764839644615498030391036874763670074420720134868042097834465670780850085124892609127081572378968179538971471665316354179274132493745551049067708830538291046609861801335492736471578823175170229529255747672943807184323528278938787305850717216987840870936084891275829673184503523300910082450089460001683728969855347815677089860663702437991818712713748359424429636432094727572711041804433460130510702217782472919884095444291559247296793147664168646799094563770460369988700796128573467050871763579926726419077586482979580150961497179864393231187059023097451683435712523358744257165025130783843967812489541028789968672155583518182197672923726750882719132592890457053921699623157341359810162606343841974111595598712194855707915404099126084315344947293618259714666352094030430179436126307970778095387707949828645366676326353342206894534303062697485729601880846564902097499552566734013380282307886298068187052054125204011999043042891991240154630648960755234800192945487528805570650554523548791789559874402509130074164191809399729468221035701898118676721549044950284462599683767825168872707929533499355139851172380491169556661244188049351821195423145457932954973290115497632797004257252928851676055670695788818916668926496278266068428178885513568220105986486442689731040420642038862021415931334335650607977648372861174785410131819538820963263739781867501567020103516138276223554990781670817625800632651909072309731132612645394806127461576397469729038199157580630745875385173348334686076088964622701214040165795597908155136431792697143278116000395092953053015664053854401446819567416891439500506012989953252062425640256999735405633568511706263129378820965576305578326756161629221703945185899593927795463337352050168898464364888207314613992856015764619060882700521838829449052835018564065043364175350139349857051006350044232775532805166325015553600168558606321618016788228898592777398070823443012187649829882195076487937452732497757164679437682597865380777090931582686989321856754102218113706628915050719169240557175153729798546795477169440460872858340200716825587850350258068980279430946184672580186255717699914366692567766247888256367102390508929757982489522270941846744341466441191197624863088675226917379560846434163676355883085129548653711250744903732288271992572715199660002166693895605038279519066233710710296452611253548201808162340593161238338327872154509090544271980320064422532360012498934484363675937191423227785159626576845253075848553735830841651524777849983556099679145290553712899338041735803322331380434826019161910280534759866238541512038956061132700556496689281316755512979967633665355404709079398886689530685781017330266056885368956021180772162258921919924311730489252249712553122821175882252826509235822912252041383700828638795994087533142292025537883192590178881759789430772711316048915678508678373881223628875585526611865733674460226117363328802255620686149584672266053779357525558360934098916382963659980073078450013699458821205197427166295188936366178872451938798839149850746367011614623559091808914648782476983237759787096345593154570680055282070629464310763848171836412428448832224163453064177764928060031678970019137344145995290818130082735712024454178146061237267144018753822527453515155242450079079753687991871156710284530318732656311281918735814205042307746297225403696352335748306562048561086409342738331833463432735127159264239390049127973028883783463744236046441965815843840531910829032323939150063705253777010659429219076639318081087876557596907078407317323973235506344135855674600292812281944826263869185813672160413954633187907256169308154099694376002147684823666895958338644584339139734195773954458947379964993965019731801875821543881858049244015386570718876787890605894343970572439680676623307775021542477708237790441269041207606617175145832906568124019088806520592144597223687602261730245554637405620748081399377467009412522215327344884170636815244358256118696626136383402928664497006603799675017937631676391806943767843386214908962356182010564061401237788509883566708473114371688891394268479485387646650984117195433702892158483507258601976515246041543560676274641178103795805511058527509424472965571294588954450204682256720106209862067718216674868855967781333673048941388830396566121918933058714047784551328767280301432209927052902106177139212773759052612468035783233612231672451314301832827898769529904655069884850334348398335992274164810683359631797050404801716357581169611089887526505039455450818904578203339888055273361740589066076256788760234489965581821950713067982798437470147130567036780400279088826260968751798433062161683649757733948961813441882416886502289967808162797562569227498087402088768810359436929920395726561305068128838761441195918624002236445248003947999424405825317268246513520948959665872693663488401509928375984646475342403056155906510544916912421860787811768003899307609069048350672795121403003404594882920845356727163295012007112146837654494140706925962143328567874574683801853930454624313698559873264207073373620952682533002246595654211021883163555532210223258354198699266649135319296318782349014915870014774992191089465012801726186584241199577478446380888179235896723654961582275353549969841302939493205679621375776989665420961561839357548510610187366314026732506199565814384095884354592710427524744855320153629002887902736371511709761157510447444857500232585814856078898512835095561221244135323878162333181656119292576209991851687924286242308017058600765585346450992122213862919320062916671040534441325309940503148420160032899923191032840172480360326411739587737364393158054756344611667442195905341694665636800499746089176326163936997268005671191900811164600029600999062976664950801085080051586703858197181305523173246301735287693034978985330460761267069151980521041879216938619991131368284102584387483086310227556652408281412368889519506244729375224036690315921818643234026919293237688715177080767495238989921492457417629918580433486296060893631106258100141380630601231494362793068733268768771474454961182419660371730117322672115488941447158076434636447645759070334085887937938855117519467423534045394122524064570712144659046656734809242615388417502636499676403979640395064536033058467106591608694936427670638418752507639689615603173119292686338323867446335181133083074391303543372279071410307952822716588411034443485788218090802820829554428122003801952660218635952461056660631495761270251582303335224947078904661050788518613260070870531252100924188140333110980343254472187535643394322040465954026928504488556461425105265479584721663057299456357882715607728021482175044787001124779365707056730989211387219305929058086497839863194346632579224283402027520796201076674604694071705609535133339937607492713011765060222240784478082149383963988120054778938005665780359904311487101637277035214494728448065980210246296286374329333750053421098402485860977159460346265070892757684803201836190549885228928095376821315150435582517203728601695960958764251395013822098404961222624228173404340280893997262257739330366102986819922133775791637356034537807550181325596156935501032832994238499747515243381001151950121317805013879646562849154332489194337183269470192681676759606159187889763652603208651265852264245241199590189818788450828769443767663184922384879924137400767229406807310528039535402366035209984205504305921203882755655930480839116597306245017725252787907988546850842585551738383833851994344288915912253644118669644171242400135887960721910613494230833029789663443088271107467000523629974326102318027142266222618750572543969077381474263522155244832400804375696699071029472640517803015161891026800926358769818418013034526647105519950731606432675504048745317728164797498493168163518881132546149964031831401208499997545056544056651148358387174381071044446819957363462868930027137176430696041478322732756789030508095769143478308670354016162028184911441232008439992821318184843322881342551248886686544852708423042840098831385549010037940264844762363637536465110550081029406609915248147926317308774406420709539199916755639316762475890832242707294829544328151229529031647506098107151709493216616813022200848999073351928484090014332369886937917599779238728056448586363560471696443660204452597048682215144197815912322747578772163986575276098408998893737775089374040658456115404534488982635679449628642247071613265874995955834400802449400525647531127582945824555238339938861602167095409039509622984369753605794438167782815663517171901560867850102297106693787721490988919368454386725973007974938110342945358118921302910485720499673562211673336635007643262740588295448615756961432047896330591725250029655954680487653626281549757676580277875590236787348162504245315702741835390649972371430862395364283337985258809365635808787587211416735820002378585791714654161211202603427255738422155180158746305776779395293678912532977700508226250081937416451141684737365725226777890874579968237345277327360629946429241699671550862292806080316787715019020416166302049350758837769066186746162964701677056344183089676266188744032970517788145243401251222679410412177617218288850815972164208384793333982956699403495937907282033978008796049701378070294014570618322752960348530283719222610059395644991241509277875461366823146128946998167258824711898544761466413597472404001167264640338329990401502635271218579913818751838215422530479921538890284616537929472363796333479312708466427227370435410768537912131903433119245063452076733343809168129039267109298757177148028222733070858590225913929052589740024375710216995532657613335185187663860276199700398052393052742893370901691023675207451770169640472375386382876543190430290357981930446828632045430189142160750516996685123364451883139431581404652068503559767528406209686484001463298802638325495627213258275734485355830002225513318596228864977249448196664152819040702879710950567775583836470750892928012992146550898465270072696571688974013243287957198217231190281099092249421069115194270447735875202660217787299739380432917832163467212887284336979031693485924557721759863321692291013129964934565694568312672848095842925093551561535868203373672201361285171957991790678887948977874155795078582804005198795143793102409735137542445229106658730078654625141882080807307192689839135049253775437442026570165148549039037849153357835239195091842294100795817946261304621688184412174680622072287104625149387649178333892585359415439913580058590242985408557250448942910311306684106105252152943640589428225619515090298853496701185208964643320418793215333668475009093794745862440500944197952593058084705730441714228077856570371279475809345629087704798834697169323551696059155129039465464919469769565801044772122115297178854242063014493599903647048816869639454598739566495684468008279740648593976288861542063449595204778764796022224814045187112205762128289512096424262439769107779187598915091696748849690140417814624882189920472153978970100410044519163746354849377767240489630561760857490190664199208564988244166592591364114979721105709200483463562191125920531594952077285728535022771786911343170950747417740461125977105440663928887571839332360002445026038759995174213594979764940400041440939868093193286423323138073107260523470222699550297533641333336376838307699122239114777055859977842874256964525973045897989161844009118754738104698043805595170062963032943375011243769165920722953015125432139405443377891627819140621551682088473634534197999887951611726102841063233698534566227140898250206912867044411690258204796576506806083389354490862114387382565994643497880323272175829269451699863126735875109548455878463140759717201962433708521996779288308204170836282188671042940242600584400437735875331070418881422192092460714913350296369058466448832031947410173461128786735179422094145466041853403015518155623214316574733266610798980310906817008268873210193645956178585173450547285898007872872115417256740244197902884322531541019214013509123867111032321373145940511561470672128959326381967580376907231303216158247304070138858933463663359767715470701977324954881451714956158891597270403164434951218597470414671715097311329473848085021070730048952123748421540389981859513224901441857291935709437524159215545692963115014493847033948930762435538342354395078579177058758873286872636137723131795763188119174939973645829559955961684714478441518985430774145594300916272777064006784526222188606338106724847269024402642674133907219353005842440622594642539483685654784505343490529674305897486495643892935250696872825573073886534797956973796373941631251221135723661242014026468319875234913753259196515806193872666193916051049359265271321692209622463969924533949416814876975945022756931601737297825225932113922797264469907870797211292701007289316414132897554051129860713004542449721998255923017335593991966625886284890280161029774147281472179960743046863683943583762096637059217800358151699129476731548326243472252980038009595875555451363524852923366036661334521578492026850615194920345290214617851420324233104228486352089687974218454003873494172832011762737822647963978467771365873511193020707222560037507494078103946338951998454416631432297316080844049828135430303833631635314540529914831642560125106820856569001603029729165846789183221058699489100407801076924778257280672186586644935759237706601999726065952554332733642503894798336601431993073084809345161508804807646366675290866716936206249287398148879904365333871639691167273697027312653742840860973486972932552788541993019041684282321395857966024873754065439260849531863413469468678923583360680339445576185648701132596427755820263192568099715894489345407354516693238449214991185549338282445770766882305254697961282244041599668923715929509392373211954789450740806774448900380624434575224611555723894226838593051527754976545431808349023872919846748693162608871792151248292476158935141491415890423510507353496796948749186334430479362520365105567215698882395203498052301531223852125132616644947370461248186099014395654637271017556216112211047224792650608818792187856456477020191870817409827426388517851782319529341904819315715640400178260080474641545364258579688221314712021950687073703931215333223942964710143388176399181150742155542260482199024500820520315515880310767656881219857503845120447360279692388489439850407766939191917803851311790463726457872800566499501595762530276734247490355778730320694669762067937109531408787466090719090054787150227573861562284031199979360148174018140726855934642470818651372676127973427764124089407024122505759128332044876750838248233549006224319625729282648056600967750928532573038883418242504410194438374908292890770441518151343279012631862709344102805833319718393808451124787757790528799614248096853758097666763701569484348743174757489914638891633504338362739885110295590997268995590471511291794555912698359429306738574304869898985594432619896425343492171171761949868813811537360119252837634812218777109439259322057370956269816464526459305254130817680476849179967094590975627099457464166873129985177713155886207655433151026302360849223532018400246442694982220093885619814174235294211012044888786517620477231007235577371175696454026773786987829323848846586854824307251322459971819517637820651677017349639072911973231521104508388963690034363456497713884180568029841405323097836878788733235745843716778596231931182129965442642274603311656218995807385709140748170907770720601258255372559881825540001709679090974133855179150503462413627962943375279803921216124494228573480554092996174221867552670663871540197164959258041982845727233943587273849129806250522990823041441796420186323933597564085626472114098710275684232847105442047692737227958693432551623728706130624894831768300595031627353927222155596037191260927056320900168844642239974599076283603861451560114679086719522744225341537356304363680765820929448168157562440758354209445041481836940072478719937160807471437048052724122720576200148265567384258527615204225756167756634489083551590403475597055278114985130250874121655616058542729230289933165473549907915612178664717813433928249941590501409236320169840868059967723646311800323091723144906596018394433573246799472136366714309332268725922769959786634219848604764038331215159824633481575389136213747050626776094939156543444966503071575601905256149343412398650086334976877258201426160358764218865753091740518241749178412153032223830041880663938545588917876200687881404876692760597626388508418767172390688215137534469074205279687593862965749865441776294251870300911496135284438920514500715511087309466495949907089979305234012957349386688178592724423081521590660649960755027237608127238705851213727455288861773544544959385158956877519518026877985648252026624094448618828672705420747504353679984584680211816124511917916408388220977886418275681058507677565728648482836037024932871581980604355587998037575747633172000054495984987251668856570630335287606809308159018141059372137856078810315129253175041105096097516542537103085517485489928079279216508267024775246374998378504723411487224038878779685621658918415735659396870303193507502981382895299683035730430607120754662998058479510773229041914306816287029509007188141342145828415611632764589797794318524467033357220151830080677300984342814598555943657389719903262861007167469115090265946427923755624937423512174450803121349987410210504026254115763114123064033738402302484473936132777143177832648722787200003132437991158454107320083254717655335778841973881119878308116128253343500137910973264580456753562692848345510253175697613783144368252477854306937063143255096407622494270969727621061679816307458647731362102916913190193505391736338772095930772880211384952253085233564200914758211321508141634559373276638164620996415041814279261478485611225096974418073994012186495761708774298539083941990118885877336373113130171013577790334756204439526260767797656853850415178002862202601739831535789490454442716570559649205222318835447428311193469603711941218609396474369683521630084113092122137612361931555091187753464456042937379215166896202425471680377818274638590796820735640934299433427179208028875221125433179011414911600479638960331877220471455192593058948693350499223357652070639336657861080859200577595735770605634693457603884910805066955160938106943662128758827331613228648314314717672115704619235614650037740538721762741113660178235855845173100298207789993646817768759805771969044293265641492888950616174327395453482331666399791748498402747835405359120022260943990531207076601966727432146673132505991961537491912061092648781953777906142535189223466139609531960625261784257158699243782660916171746497163472047738961314867194294824902919894191675830888923397311741555417268094753310273779799709817565045054736022767862106975404505926143883778151617925379010606402291673802696257343430464530042110425276623030552072475739306792726393713188722880126958554904248663228307022774015552803422055731726091592927513287204433777236381546602242627227955242640479069128534664743956703901536664482511862340278040253780886661135356644106913769723882365405370572032648513307118001886217776805979532180654367532102225042800043994061851812889536140733723950663115170700057138631530213293685538018489869696302851089301202179506470724877503209994836756871724700290558145698405144674694507188717376368028734735561968531753075661201569305703443098761497230689528664441564074834588089865256616643797202895868442203921819431715127564111776147563714059368640001035880263891259692381706227637167628748062838160227594105114626922888091294330277664959472497384473093376327460037108435907859976671800558687028730183229667292566511959261005941581003650892906260399978910764693101952271744645199443616999155564156412151087143820808868075229785081480228623413531843920566639711524608904813184451923149291063281540279224893782282515457682716245961176395668864617423953715865744626643996155478905163732521825783332535644589892905951926058659798671344827447826266678984191962736059352022149668157043655690416708257527445881757281160956148185722436954647505083028443075317077923557132934876117839081302910599183552262237468671157570593774909379757938195247331632266235982695699804734334402616879654751304293461624266134607473252695703114881469691642933690719481545481790829291072069429731875971973101542619933564615328361822870151559033107061465304217006688253379701323449506071416835268609881312272205409030946646066185857999914153978144847741564082258903540644906463510615433719400401386160350714559736014278623451486573479621797846757021898995133336443819291905300857739950452349349571896846127113768895759793323495332089538145398467702851241091399996240942861535615495201564188996212593005126442096865972528994184350366818804807529105972336008365482357019198685509260350048765737882951629237418327132367686584946400059670950677834536100367442594918858195595926902512393110725951212115633824158960673748007183246877841307809693824148291518956042755017542065174420881340145436070713556026763499597575960041036160961213773621820223563980101455924936015689714897933365854991863497304103495007905509710373294892197640588699532018966493350820431004885230594298486801785556564538971529638687139823938927886283130538898704416338748532366550562543023828613176831474399344615609310765384947584648931621515835889893391956732944334790390909645002015254529742236093348737748570906018648070516991257559332518203044120573389116924949793744441817210180048695274815824860757712217241382985252976703526885042133034637032059011127692708423122473740399034467618957001025917858966147045611886905543180001357411454538480916238456019398214576980154036744730933242141647275552190877396917417373506414595184607851240181377454588376298517906609425179969503658723513291154069411855800405756107804357919105154389529301786070568857811721742139155095320721197089841522154253164791930461604981176009994043413190991189215513651226115501813110735194067489641860940284869283055022119924343866309661229983761658981274730669004071331315325819303202814967455702892711980502308342949072461054910957995507893660263469846566281880554901043878989574409314152964143377690260506436409832682176336287098826272397430230055063851675289226483750950886137219833353460698489068556859024446788863364396043781823649316075069795253661777044807862852104682093268266828972207159109800819778019264952538304724636079589391737003693289663580220506598028533870299680922286754271291338699940266335773608637540472021149927333995596386713941415995063555038162271317992876143298924595866321022805072720176632829028139513624639259879408411977424214784974887928534813292261758042969536056849641633358836124647760471766303398537726717373232324351929797334237646067007259056978477822590102247186184955108700414015527634922430585064979174699941224701667003101044327626530993015284206842468595235910530969681058431185510376080853681033317095349081348831311722359377438741462183926501715609032794028189935612694496396714332078290473191666678085182551977172880062773545399159278903401078628896366115708075792637125157532125643458797675822798605621785390463443878260224769831644730911677313769865439441397481344800381829810375495058853983542914632275329122606239178293199621398691881771111842441962771878992305735044724577538311943385179322128576603521216877901140477658976778435696351365329151493096380391047545011699675878027999795538955855005904553329793563702640770333481120559679109660880465445819911756967335381794020297742084467140554762538001665796195719912620080781668202885915862485723615599401625547770791411160067640782608077107894734372899115676130685073224963159123163419758846276472881920236762716375194766953325420490891610249164837334965917270800147115271012908902961211040472462065622820963283626670888972846484919450548524147558133923773626921276628090107039603299462627250947141176912142913353975130151431774671685840290596862221708011103666071463020620642207396736740275444511153186803573711970612632143552346855544382456532551949622309244222627616181076353271218486711038748633241670789046885223329211115019790098723766740155479167534474858911628126868673604222994356076826978331735176394113756818731185310939147331613471464295748025886612098433336264478923277992171893811049025750898332957523113851163841181019244991329300877847253627365880167927323911956677377346029231167147252754387732395409644074174493088103356901689944732650629356812407468591689254650921109142316433966434965355399905226030471148711750195108603621437887928407449825270332425169177953432393380537534154286334492005727579681918742184272188588466626602813391591226508703295562974312100608476462382406120209740885851097134502445345626967484521749379519983660135959959804421055339305799463541215659260373954548130709002681616473580753090700579469859512185766928204335931333658021043935801610790827942664487820352801574984777718753666388687146928492233597970201859216375263706470723923280711774975523653624170626315463270059026630402473980453353020409393130497397130791718151488632385160351409187151727259632060397751818987737942983354896214929883065168797261732334295186029197912354209146617618580812065785097554051812624547853587142349872282450762802185554164393735572873413177079533182641069580231812678272926217247904786733132302602879014764854335809993244372349188499585994862583067600012204733634466868003021774428308956732120657310909298521268530829353520331626096123871927047491031694115164838847479745677123433557442981268446143275337106037702381158730688628896939413236300606050428996520045106037486769613649172511721417104539723698376574825092862531991761037960505070047452751987069243830797208133651074580862533987045295036577394794375194325536600142105564641482243606164677079171658511765610859235634609485497644779621165511318700969902914073151483903908991815918578332650277953957841825197056152467518107456330457082959442889150666715929760412803354745155100439949339911357400368108214520100371663337695212133753239590644515065233379074750428578159695275696181784704238178420315992417112157281753138255289908317222708031933401849974624661506864137178679359480593272851964335736880274143158690076520872345466373639831869120209656207541348874115504351794570520219208662862157046501295951312793744072467620419226655674453334447296817148735449387338480166542826423783384831756543833361744087321879219971430971939075615289979919334816845664869894315760143802862633533136185723793167236606367549438005252967139974035099407121933737585712045559496028444564046130603362226362162934122457615116541938791684813280962469524445695462125087911893539832219637899949870575517487718861051045258709120015502718111214008330339459997728658704523419166730406855700471728611726335884968271071745003538903363106665809112216112279535205973563154238786279221174002792992766027230910087889644867197751064485285423676068067832870271602149122089073835986791677907984654684765443288633275459268997647136118219193637197094309189760958933074195091535789981594562681740310911862136112387032663287459251238017221859237596420397178011973301354548630311562876453973330103535199368908917165821184472025394047093178330601239641672709312163693791933239184259773052761479229302123013163652956137623330528454637744966783855724163055532861053275520784389404424723308700149400756485394938970856366624723511554968426370742241985340721884331711808624785109999817623225805812020490727023675155996038558466728397347325959612710449694899692807040872355613550188348609827334494211927951159638914217013371362540595915840065763710336218594354090721495079719264247416878866135096201313031939816564431842319103674142051255686332809855207709323995574220458372892438309481108423300876415366308472416897637519419399848086392769531790164372780297768880616249084193376410364509612604065127369473343213647516686745418754235332490452514001261991025504942206089908653489121851977852080353829793516473616363948528497562849714885627036425437615253034856791421813834154676563036293594327156888851139645341755011355523422660951773817818038938644309083053992738653198839237082514434976695795125406640558213249534760824464237959520467403716910402286506016440118821281688727839234273692926062064096409195961459043145172341616179151070617767174151129700974362635716917980979131076075544400727482316585363917076912591900555112850732808167705134749074145011950248108427677735773081036084500375556502686582708949066409611462996904292269838084349681389149247988622487167128124089262797006509374129142801201881922065421593897363381932259127071303848942162931911004907149225362821862035617644685446995943076419072713387818263384790269051413488524088341597040931667176458485165390460010963472932317024526860807864918007702454260533859200916633150792778732483259016044217156687494057915189677115913189275017804451824993743874329932914355437468094683402608346425268170735136026784411711754768030257828432741271295550926710857402304746960026445711893018058112189257572500241791066473020112946937549533383927107678381585580887567061329996499158939499040874977823550392105136301646716340862269365394034567695186527752685603128680881568916991604601367935600028878486501738703611861366168233700637624901718703548391653008880657523737679906815547888893864623380433678814473862636975144463533151364503365250987795413093994146760112222850127827345575515956198448726728886216911391278644418265010715934333181605528809809313757602195448423668918140487612969835740368011755189133005722699475919228724396947107244977040473296751338485372898919851448791269339956272762863015717827057355238450193665288694250301571288649098993055897745148064974007108137602067660610028335398320724359456720594945121684402530561416115047237679687125269315631930981608232979504258981667480087815264867736414493569584287953879511112090041388243506999888209156555403289250228805141696787929926626862224670525490667495362501326970031824510114073519298152709116828763161525453362313242268045222889614970917397113535255440123608618815454147085320467229946939071488188603326828261722826964785169840975561328091090492994205890209975868027011829714381130616650165606940509417447084136593172946036832314886783783401584666526277938110347185652734290112646968995135220438138835925408450875742934048304805257026367468199997111392499430823809481473192576011528538247357208314910527160816992228141867532991179552447748792024698247835770179058176843376667776890217764906219369958965467659969428721801097813692136744622097478300409271819051376356123254861272145222616805180293256818310931413966592453103442368843397067352872663830004541951464423032623019071897598561247023586500542075982524898199075031653803249502601693723058314817314752430435942498914879189062802634091227267353344853777985327688970476167261585288351406035252708851992921713307057857638749393745559400967615375217782801162690377265289896203441261598810632168253206443816406129171172120095567473839167222962355574612439015599054488322626441625687126870485003449211415757614315487883822624493825719072052822435654030668643394952786639197826196621288902931708091506933547609363069503877964838065009708771258420744211499716985561589989747876513750578536272453652178066289777507327157034985477471678902956663958351111997725430882108300838719703001636037548232031811034519634199719570801626375425606969661834362972690706622306143131863618116113316841849516129647994635408155166288645312201056179623810144384620141325246851026413793411662166660443555433967260839002933424985605923047725430160485968987816153242523488947992749956804057508785961584656399688277050582480803752624440992284265581071965313962147422223415350770031361866522902424242733975223220119730089596891049854054474276975638059626226908788476436765519375681951996304422809024719659779814112299761130996689484065470304306161542840528984605556105277431670945479765425699944325615151270411776840247262990518468739384403174909227786713746504877565400352618233613582209691595165310030299470261213798326995515479430045282504041161789922994791117641217399269377416582020283502426115579535771019286950264605435924118006680782334174983342235251194039578690357868099795735556646348184109235356638053216250587339612730165179209152696307741603539343614876508656958944166875931028197227084213006069890327681248136434088291450693535007842690028338969289003676630651962125691137082514952641307300205723426006143479478418466207633742474019652349063930296622337730820640228704088095403944892602375593027578381867271119555903626438180369441026989560997022402685189290570563411576345663453530917836449127065514652145274516095709269601981935148250423083093324020856938232573732465561978380507982367839148964413212119032538371930512612143512054346721380249172084457240675607838911836144206172196093241887871539065311934562423143050595975813896800145932726803699031531485898178421841408627035413234057140637242334416230520114600537243354544085804784915273835605370083298419441940878577289428942989055641118489012798817424271309417325022464998977618499584448243196333877136064170050575881120626018903546125859345154561817568409731473384201495189375815899601208752575627603329500301183188095642910867929936491408742632266721386849152241299032914629320268237349095662579032064280453385167557256633596432829836906797154489491441442844573661312147165257729283228387225191227818503331845753752311813889104687301120253329343303322817674447909206656325018838874991783124527795687803251857087877108213218175422991370299903463408243198220018181430169501586756477231845517351601935397411806816255498633469297427936383683122862090150084763296027154205540923472197748755577372771253584379299733675504135390096260754601770478320092090000437030477206239693112361996923069451921228075128062610903396080855119939362576645605845474892984566105164377632302047629334883313664553345734804735715674449977347178219815739262943566148533256352573800753734245856962732264432925391218548350084718726153761193599211755449468751722095340217149673323008543031277343008442170392235658052374699781195238474449333837385774851142746225220393467572123278506610526913279773063462887372622241958467166720221516808291000526702236415126522740776004619794966850442414929033037526153247556530093153145577415607854888437204157140600876512807613311400021517609289824898629450626479863972781208733447929847854531512329334051406847255746928486263150354770925719144201422185887802572791283311779822123368077931168758654777139994623954398600178217140445115877933764582521759199108819238300516633102828372361341272140722462379539129338836418793155329932894879874861538613915230746891741006626186077722679134871363221475165685084419917806948619546019340893708192321419263827753375919457032645023630434756871734529583995536709739473113745139433281977911222269397254591249383798231266070963822259670190083814532862904610606586856320978015085422334848110590617385229862052817896049500732570427222020393613638247958310354325985507262140340985962778601721689559875030328828176804094685209388640336365236494428576533381097953342025875230660994737779174834099640562083733043167671087592982666684354670095997048589537484151152214502249945441528386578029285301765856291013881441726693837902070500341910121386791346354652287481407153382029019192351467212683827510001739480517922357591031062941178267158381863781954648843122973630207590729496131322642355108491026499847418870181274039872030679358312315482878780386867207634549849519911344509912442473105052272527668320660348538056734851263693194665299251629026264658941634139609150972187236402755002697010883868324941421257120488696456582963616098653685988378839028020706070296399620892916924201175646292127178414438660944484153071327538274180512475604700845614196078604954485925581307161527176818710961041702864624451063869927990313298023938322923078600246111212562537492992069623605549739779337090550915061599580746264769307061465473365729538801084659307737092643932709617335897987551332985173533580576198203756071739649512102605682421535394322065787806543336816683791839254310296299786255831381508429023460414642850633182078026674085750429654935395449486518527564708814351323195973497899171415169373256883389331628338964518488703226398930556894518391912430829325156540236753850043094552275229862193634999307995606896844661874598947488234136640851885321936731143758946356570214222303717414812012726282910573318578392273347952606800413122404444690695700343265791095617342284655138302877708170928004370327526445576200902948987017264718228932761788234679959538966801140286687052633670600630426129946084949956382755990602647776521970253758306411814612875438760985782899634221059502253415043982609618760983521652316543316977214412517700380390215981379748913202929277554387117033911632248075246572497296231247650935179435674838114315286413330290891237771466124690448645511649267993463415562118822817564230240516948954442816831414049043805788605901073700671829849936504074947027855738627203271084260273269569006412015558094691371012984255290544957645064575600374031494587908210547355911363990672780648145919170643387069714773665247784433863025569838810258987930950197131284070891871969674939400265719405722159295868834578669810318183594938102719311615251530174090403194517238322459633052678626421000745736336797264614352971498884605529190782295721345692646383479217594057805130367348879544947334464560679667691278267990494200362880699002603522166525266488097224672121294616782282247427178341053585849093818084382076967122622155649252446410116006638391181830873085635422672150172188913491114434074231672018580154409683941721845529247030666331743969920320999137230793920870633268149502702418363237393557565948355864342758527153036475346746011816231218086111379932483545148228986306253693327937473726404693126737565340199730090761426212286501158568944820803714283612048583161747503907712876046503361236135224312142049114096204585829225543574900902717114310056202779664273282036840883514218997367661285154174170155055966929543355338498868702324902061064458071692286334339185539443465974183103315453291025913036064622666879779455734904546748823275317375995937232273103710445211331153382893042477397241957274401165418484315564894048921358055708557627558495534889191385643791638342408939602209788019587504761416457873384344319808735157516674968200379153796102973494432109476073270046363343661259071179260382965776504898339968200528464234206854494699303871249646642485811604420004666933985741685551729836982926358491044717933844683250433844717587252699366862337570798586379951176474378774221029593262173881717992112564960766549050364753011284605971998642239727843391967774038958231917557325994193790085492825980660767894985484333355330520442978146864226215463907056678047938913177651922049935761663882196322357224138758048818728755477834305533714162429159181440724910183373607258613130585839379636913731605046386537876161997656835278960391654122119712316370646384350875058804657553196720080481063208311821537956138009835355952609363700064531708064420288837726690826800942475061577365306953699946473444264179908807236585691623899636517578076237318613662803000677595254569830359350209310340106654882387605906309667152580319027018056510774179659964177889506640602788471706807792755570351022237147306795006509607538053426398202615407127213785603227432886168024173389459790505032137974846614903095301740230095495752617958896983609703142914084804583842017705933308727898829210653986085497841770226800199431723125607279669350937846167380814534710813293763452196474416319331178690649982482372761620561502444394472323379106960839688560326743659447613243668623910583435263725870265527272354681097361367537998854340224782973219586473847079849851417285386752779230658409174320605010991022389298189386457216041689492340208559404805979888719907538994483624575918179587264785482436871784280511816570103599948961675645814411774359994155741564054198094077706078181787327808839235166527298117294704518248948869402539784970404012578501708525229480032644855398293395410250493410544461435613045371236961682202427087546803225777224676453869069173584632909965978927085724136068529472284189988811197694925777567347314920454188249935386075448538327349316024944583018400520110059712112248818992601409033905843014105055980718844415476335609338929558270335638391892072441156624136346793755416738908930918686080312637892309129166075500989808404308771738687684930623853335091504106000383060163948853687921061238941057439403460624016371854842521771675451639760025505022643961152599429430869349869074629783759970161295030843803660660058922658529305637886695846678487572600253291839307185472610120143531812300826282453907565263848166284306712414091535323017373577722317054545331857330398636116290928079651400076258029586832521130356252134998540067832905798100262663767805172062475401635370252168218735528720401996359618873606934730672840960812886498922816545218524083282791281849386363527220300859827544599898999583511157436878788812704855717381485740307803629420485942064433415790169383959681533585277508781574397192432277988317060546340053309696115995437320394129955177197409249372819386910424719168074575580541317281683365537965275951040258293766006937948476305024368669308749861291151557902990891475114714361655097781089168915938904322861163098089616015436542397071317339876255613839334927890605747145381691569264882015102621472183250340916562454293531173283968374175550697887724604398556261085337374028770997288047611491577857651047529089113817806546922207217132541594679780555957405449532558779284323247504820257296107211930542720344543111901843265159983295119242549956886629245120615544354851877843376022845731855255302038578067996423334739432832550797681431749352903653552357083362272954029760362245967870224679610872900653691581103297724112719687184631712015310872022829121678513683286828899841006308305969973295124018343792808075866877889849604377275402758952292936685392267513992823716159644737329827017509083756802744666915911114977994466711356910889243791993094247213080730819842625931443479657908567008256288588361144633070690191063606859951853870417106238568043241122994069976976521718948993497188045038643217598286433134023273173503448755279378348641310419949659552577066904567184355021562018967279397342682162568608592248811316664734142989101387571275704830514594366360992466106272011244098723999710420756543915068631020135759846014673026511990342986506396760006966879582828924339782590587485678262692633034683723321240661577602951565372261068229038366133683415049998959342809320186542470360735907656081621959975934382017246180769581783472212715039912393733080598164349462313671749599994630421176381814783019102133447356926562588057101644687984556617203758742814909984339304652393122000356442486502802002210387238150855436080610859538174278532465497923110151018126674138466294626740034072909243067756491785793427751652950984600098628219865193501486314131133823408186418101959888722959358560343722423672396015146278965654853353317400741984242601360667355298407544025731777149540219275487625663663209795134838923239847309342827299390954922628685258280376257104081404140709215337798247121933464825207183878537445007238525936056765957622040219451924792912413075854648591812784555951253394853773274395465325201686225053728500130453724000464744479074597825102944479047597268994937537469280893311554355051420516123636834410073498429947070865348728261682611949954445988885035960791436711196391393209112009541335128855089924933928537947665616415925452758853479068034859304210143177857711724511374184624321553372240565412149423223467341003286409237227571473170380930584666114105286653492921570438437193875825489184989446589748921123980435592536491908658906691739080886750091323305426654820771573640252081624830165898730360865980837961576736411773627346697615666539213482934564239912928078599798788152042922151909141690785497361872516930999913227000674997233515576579514366474702374876614964404926134860829976097836260492782317388949792246852097759950804988269723924957659872230646951187677991605495672699690851525822652952273858854393021734274755743918744113766339941285948312343848488127945760136710066761659743958963255453067081684294512114091221200910866698998915001020556924848523722554213107166139198282765742981882917518337208417523869676828059102315199253128014453772216474368259508608886364434672080407995745610429010196560880839309828716061604912163604586908622289737564557413574307159108936724233166447733282968241883149217164949725140119493690567095296152704329196175641010185140596083954221011253004320324477290450956867286869283797899445334732540783200542835488045130887413631936955816828746079046566945900407442884187381232567699671646926799869558860520806372983832112386246812028817043481558140629498830626345933449988840386526057374223073857866400023774153128859094551257535393369408694442939407522182847100107766580951275670201477540829825943655390077790618030037104030191092185293284782411655189092287029012404160045214931709357753608163420856552332014438453889583422068417138823995322706356387242611330217236088753196924820117906522275084815465360634684320835251951083321606843173343658468059130157408787018229598765822830020425283556693204501981988171458261171598400011723232484622368023378498390571958420833941883302500041002600378834221148367305474960967792429704499983799479044054349710896265896766913002849909603860630462400933379790920357551625516664005711218771723903001503960954051845816999386430449804010399161286593474495582760668348248909337338629266989646970531741560892296662428914381927372356726030305011034159701503907594115991561792511656228924417675577202639271089785260599471315335700459048301245358602245707716058212332185295875822030519372890200177343206194287342147523788608300702997965315568103011287992589391833877964700675202703688772405840664369190902874387633882097145801017495101346458402812780113168139897806509007407674642209638998045332620765149608259774522758423904134502684618616814579533717594622683030636661453659920280300843252851498178817712725738675355028513383679230567432436869620272756904956947214224246798843604119226316915567882764842223911962740367145989741445431800616886293376356239752548161092018062894420650865088651743884451744029361570891066530518191344083524173853908952947331269090022881476173592405472755741008722118602480706552734785464670810033252880494872818846476645138719484647002739836639678691108722490689445254499301361359823021009664966265824979074179330260447961646789612176304735470941059054767787436276981114648195946765395331326021604518805685201238185383599352509055867304816958939312668888710724516375807869185298046443759849390149864088672912156151469350544680039277537716280028444617088728346133201602784693514171037189813592856544404738893533643422529953563067148643575822661507084722421213957490588123647260807956653918210780697591919627299613768250527190168013501825936503904314892374222182997294359105047665101984354967715836390356050902744094547376200086625518953798973986955249442094528368937291622558644588185723220050973402112420242701338138097506387073687862241346162660761418658903675756728049468513929492469474976704482862785037993942832787912203329713975438436447227794195248300533133083265941268165481431836724185190716453711839456188537671861146345100987635561039688240346932274316386856389366920782628786664631623058656232080344670332241489658442908620119179775183607898117847087626296153194003478154640506345659858453959336783920471778161961151978159915334832397561116212221045289683087138354599880658578013548593749042639560201729578681154940798878998952785944953129124758248171371088590969140706193303618003033238919132168402423711785594147938175122615373552928204846201190878355782410767958987282648380188363060516258745813238071702127070311601599319566532110559086844637230112193935288299328435695606597198930148418941924696514195047131003620913846840871436786883238124871873805822177969166872677052869491723296929757412937157650310486149826499639425425153552278926558176593281228135199049986283389176950986498709388528652246416241498009133604809416167206933424250017253335902412245206966274283806079157097461019323432744228427903009219716781979659790595491272105538644724076008310005880818190724478703436574542794750466602116861532820793670422831576774109787065652889958092151207900910624889386465174860336630488088385858365475419590635290169607959866719791951547267539998847762188847851073660556792237455158009612734637037295470996414489544035707005097959712497079149894057504201650307392100837573941328165780857198028511304247961345145042777636660548705739016497996388006749276335699901742142470860427633687015388954255448605196615601145707431101267836061897633765408595584416739699898991714686664840902419001493111173462062958230778705794867646385567587210995136468309977716094546557201681228539377673740994283039515574945316920658203714520458277535783379827116157535547547595988090288825001513269030621837535588152280080499462199263139514759007671504441201028640422323467572146522255433374645407695544296373365183294408114816553112317888568534493625651092338223250887519700640217856262405043920393115512742419812786611804575203790313522638215002107721305024066241830028624776559111141308947497641704427632877747366695141529627972984736229019636223154363191418417996968962803592775061551398755785367266353781400817153183187933147980316630735418382498547746143475821220350330394913462672508437397313313461349718786522154847952113280655897451002032487297922392568927537490270425986685614904053752845046626144264259912295769949845956168866129342741521686045369508582771055380684247063968607781328993106285511287995439433670099191520888614455564574422792533094751032786399982860866477824697766936469596820933063048325230272861628840918540210758575059523354917451756350558943167491291170862073846960048789782639109056257395994874924959790110901916146590802074849626393582792650583647676708383011968855505051861579809721852980782027546790777352845948855486420957184809577355026418379662201056062017672410164759618231771444198810096102794777608196256246820854574993759391755772555043901644270909099403336820210181891880943144687251194488397607261064289476377050838168092847287045308547161072786663101220366887582906462496532944215040426089607955960284837681158331065639818871541022291856363755468086146768060626175912547513262658963341657062651172681705493010940658630266922042298948302376443236714219463649003200189102951055373197420393993038094287078665529147692881385645878149664779808233148266402166554846713406240185971412175424409787127718287785341343837382580995377745556686390309700061492840773024700917201995246206245391985859237134507423999851718224954288951323435031823344837883192959553348790109921171899225365294293653362582595390946552963581374497293699746511875338537487094217708081745701742251604090438846121574124452850202379839036999113896967347788049704208886393128438915798686149953572063769482149209306281251312280804996662625532242838399173520256674525229908409946325864683411130420845898803241428782414860826210577494753300377060215168255421685888255205289137193877249869082025393362940473047505009970440709469358919699005334783044635811964910483163816068074323974751887377450485393208011892092176200325412859001921285078008780108096121869972156727878783603783428505022335910473861003790033681958215347953124203321923791186979738109328501036782788060812745282883103918315704414803727152691119589138273502062661678813673893005894349871926275421758678377586169291156419695497805005027174414821422531771664564897625594375826764309491260552928577535565273114929560879110821596194017570249204462620779468053776955441637902384442862707600133588293722905895613531099244879237739700126380103906210362971005400902332662052868551292388936540076639663983925724508244968989262459924394384508765578909028189856834334510996196384091164376705960548419525350568787230520679162057973980086958750046561196154504016297677700965470185284334977644679496028037224229231209258155238064515073175826397848971659561076294495873794568519845906093691349732270242823829358483476200972795732039739082440490265245937396257295449117729608598859109798319161919237155743147773056132758650301867128792233399940922106267909462585081169282796692381723798551276299352386088317714689728571559104796911352900853677375489955124718689039574466000484795401447802882232082425670184511475458385946399776041212321829451207207790817682331516184554219598749744558901511992706236051896340735393487564095315603407069359582576081667695587492098240480666527562455192322003251452941755396468271902352195763796378975941750521586754201928536559666201450456338552783571256712051282275196092953909245784188554012712828606220318403041625230457334991986203368394185491917443128141702746834805331236365464080095227986799808167861438767022991764204219357703030288924063382337118831666892347256653147154261973692488185677444236830676285808035577667085249394327267591827130580282047449868310923884518396569291282691413580228508792026381557594458857783917630415382477745027363004796768568959057429077532824031838874195328472505758236998984185573609737934792621075648001276066005684856289529627036503340728499245707682166060043085192144993994615927401867906702492509188084254975382500057364115276562788206831683745613611646610594529609876478761781065732569944130069604044127574848059081543152521914759307810414099180436770663956672634435356245619356407513565467271679094118794884808680923093832873822500428513086155646738231344891197653033059034948850709043640855117089681596818853555968367767082875926959001222681306340790521808314175342883875013165292187663333574314371010163477966588836188698834998328981164007025965502047611990688459306411880137433528093795109830522058657551902553313247393551842157260882310168318176409724179664282170553923573318235997210559146758099096015712545362591465735834510808497696708071726694371830812496641392852932420581483522627446937585856957168703450223775777783598158580954566745546272979473079756932050856264050352830255672286677544482840862099813897930370925326425964038534996170546386083723031489481001371999013197012628010849698683279080599525074937754235999978783744657783712375357578526777106381435613678907947372479242618159928019155423635840922410926951949867583701400806912594594455592546704732039280047011160015595417020287950359292017703968601134563044492333977435455716545727149517353452904622158776693210397256540533868239130580966002121232483113870490726163498817775250633988037352830441378850405352914195734486262214803329495448889085450792480542683741940669188555167572166221109208997318526676782935266132904276171207173433002345258919537355747509268743152936342844964077178567399584381489421046285181038496434277355192443854011056003640918609065983002337368459149958401444990129369372589395288983481155645581061030794545804756646504893576785275211183407994598744205675506984616282974816927434031957448112126921989132435503198370546644424960963633748486558714369342400084268306946647268678216054307605555515711301054996369421412014528605671549281450356360885793542044988312557195995587078583365330551210839284998411268479057129722024655013870820524474927234191950360303939460347677085153472543380769135430210323311827099410525437316371791899608133844403673509209111063173376587401600018697304252984202448885270331725146924974753931982350352522617616094384809705351245708751318689267370050744277412070979040734631226205290006391892909903319643533353377827730338009564355202372811893414222213163841246621876265629262131653747440952305454016919059121029833254873844314996900817917666244456257105500140603668001332495809064102834877164193564714304095505763803857385220987161679591048522208070839544381665295350087746068113602730824885662613928667728371703032378323346716406418651059916248176707063456531467640744926589904002492943382034766548273034152265790423510131092975678304848136329763976322746732729909893927449638572144129084870644807046616306718326269730189550522617503670443765606386089754748091995263944035360465439982377356190246502693129589140222105988734088163222562586861744532441158949303555099774824741515073734119475733373556527627418519164245146201049878262945368950884462321176358003511841835926759864297128139853841446909691719079951674046781893587502744350355118079967776249870628475929132726168844888493914112874532057248359162360674161634463880131235116126332141573507358737890898646033191010479049510880532762436343801953205313641343554593647041984399732731928183025760085767530258321696714646834358840039142037072426708260176162533902989867152675622198130603529594844646404039688560064817661090330560790650387689684467316948543438918368935379334168987646104050602410935985553266431299975939026367969692513769369261591022851172165414889215726223597736677014639845855210470747638897225490221795578347385363008193343789887481568027697599949512125441570271376490277515078779949109561489574262273987940332212825753245784561955271497177374892311071758004485261087533971440933423641670007394747605338766380254295863552936913034769868990613336245908473538052999169523740650576570393490154739065565289258081944696284012213924551119876038074056609941052311643601925684722053285107258758837088787835407461779760153173049500582938124750525030217002361095736709078402235116222597238130144407984791813303210544324431102719791005913738093483775863613997719436720065592456993814702761918466612118042961718665283106957766092437716159831512459361728010390163655204661937092525125363139655920117782142768019428047658653485815874703119926770979133504911072051652432462312538315744875129541560355275026367961454610934441685357810273138996999546867343518103443255259516930023300505925727997815904820223589052604792034825075042171734554664253125285259478440684213337897972455998381452902491341277243424509717951186446150628152839286502372129264368408132689423169315188818953852681800476310307780389924412151871985827222544989996778751458791602397076666044133305940017725196828827618138902540142141154032221880752214931387303943894838634880488587257312960544022675401194443442712395569023790715007138610641985838887956880548633517280844464472481327723859561052130130910151062642932763162472228598525710263715946299940132265505188044657398980037754421846299791933040060517616187986026555760768914956796240330209203533823006419857512128054908768126499986629682021600839357742569239001450967655189683001149858039500662463386168022550668707591274831975300014554060154119807841134948294656806017074182194482694202914591931179729442535235139331011218688316780023266376919519389893049565596364430499826362332222131737958633752729015980267624382084908943642831249679621625001635299668930446258458041672490710904142795447432277640558606449799377481597906129222029306198335261800426117966549675805482901810689473722161202657162630436353022821293372450839435343709678543243805831288950527866356571712880369852845487149507985624665557793170507902899868597143645930779735070140152275447669341982392638989294535343190218016938758502877868797020461682319735199280766975865127606468238391696014867111500960384593882005106152664625627270863739947150257718107230896204362641552557152127904583542959059101205185086051998335829520276445242512357735153614513291221335783411967187075856606350002976645872189965684680983542255567976997861529583162065743207372109968440619460852752139972077460283796182940677826598099698358660897438651036562425562508423543545630151219711116732833655070583247917273565142769410984986357066618802528434536119774234900016041091359806582532510477723487375858846669785802999922419736650411551196281600473215765070051662898453996379194144719612753684963848418407835392194951607607529847670841382746044030177075799966676756861253610514003917168172567805013897837186583796897615017209848060227215120876367111635529356196130402092739641852869360472651396687556304008753585686831314128686092282555124226959567993035024901136677093640349903748458741989108901894570519857812478440357578671393197085549893809997065410579169020959889749873844727261372435180656164993163897351119703310393978040928094799734337726502122497143409823782365196589288627922327799039418205068569837671166237721514412022766337949173743734228317972794011937453904905797144617183602567322140552194621862859145438965623402489453798119559649687070730218607805131930946785284844420212843249930715413564423079386272526585208492269484399394853053527270682335863948608170577407516973852120210628959417716079254130699134608143824632866935231265907343036680953859560845016739322909654282885409786377872218259072743419564661165959340871344812029957960400057641468485638419208402583268552123795496248911586260094009876541358587061925113653719481486085710770837602097237465955311440307339494234844861525237226662531720908162269400021122759183425529828168997196876101438519190128988074242805283555533252325715485875614477520119468011155094405429657310193621595918758219482207475615307833480300854994330873982134027070003112858879279673962736609207126971151381953771554641063374555849196316917552555991892240897978331242735453841796027845958986470600952841808664677110946415984315000959749470220759587493696093489235131553087952267531922887519326905699269590112428008437808975802237272111281427715809215786190314382328222158431197363867972722768495813632814701827652361699870383165480571461752017797801074900520098622253867134378987984881044503027177386068210671823485666103281598409185714908477074125773721529623628951428193949344923100247552946876881422826882633819921070500314822969078127068502360967952456156317625378443908683885454717662505486886145388589401906509184101588520883369612987731672752691975623864276095136945838426185218338957051864132632025229313913483808212879643388136298455390423731285738559006232871979159091218171033492088287365725960067510345169173034840664773124728536498697032255058028512103145813971655005402199912584671247522962330479476204174835733965129338846259860546690206872743107989200936008629962585264955692634224434907588987120754055723917788898374740062831103598936397536831431637915535084459949981517903571916645957972640535635796228522323209995625290729565968625666476118217436889365526584209735880483823563270384629174104274634032764044247217919633892333004523529200287573013563038211172897133169436372206175085815202908497246369055667628921842626517819765195385246430364256203212959160895853359815407065024525216570882264388969553200330712386017719942697998742711966035304852835818441460854913450644431713086666567324744794322805473391376062758189042836565865989546648856170985902335718936471102219155448014160810863286526572025037347796586980289697568759695665517157299781741491255194508337794974466980602686431815234229243167763265101550537467770920415647646247512496723011428848395397060605607246531422732188958383550139850224798061638234945366128994040935591780926586823606419849478639492739255146759621855648434028716399842416564079224320499215193527094274925509720983764055479950763696237008961585314208285497806440657569461074012428301167709175408804880626657504874497001006448172817033718571687699052050431269126758942354642426321926816126071352559377998468768487666374637370848309130230318759755192524399178262640279966163670943691125300862843502978866714838773557009540850951092542672370871628508720499100146666069343525439681324227750520412084311778362086425913741403701893905849130885307671803377759779815450406004508428169265395494242417343968257979429633223312132181078012932197936027503888526310458725788790499330172493716992903363545290749651464056091275487528815748748504665647881571336432427015771206508826472570911545293554151064551035094710720178800179246413597213842994871045977552798427450697742656414883406830080923054646260389483267223960406246465945742025221084288128266889675278980243468265578962656266379745368910929346892092484109702357131627533023890207698673143258427609481838812458575873401409706867189561813112229470021978448241581544509819889152942428906934660562607956566439433934279983588235711675751163292556214994709518352233124581091315865577359175847036941484881503863264098660524416089944214237244673185768540526164596080359046160459477472320562878910886992342019575526455549151862881037098556289818492084536281760741755782246663879072604677554834517443481890496880563765032503535926271374514988624054829562473693334496233090273911370810584071237265540394440666165466698127940161174380314425458361131387001800510642225047421267495399707590971527103141655363347732005496354914667194992566437711135196471224844213383344829914740191692970978273304820965702365744166216404138597571994011075505481383567509753677020862148022476905759312845796120520106065272215959974558956392927416101354477714866027222280787891903104933048606423488894126536509198046804726679290797077022905020257671384436845815634829002226658722453892420758678126480742598431037231448350739349163285687087989353089830355384383950079707801508993166772121535578504768244806681206008160925249005506560688200539439752940429777997773909548121823388281599786284393448937918615556384584794259298949054384503736976473332256852424021601959044724016399444925891545222094738197285735608141629442012082969234213675190569210533735923778160066566876364146366579043573782443665166851049351957765790791933549005424537483625826410516843786445029591835898396440568593688826368637105027687838531277770566599560300157235823714715472190567142601433687966468436491439499957272215058042899218100989507993449442141990214468925539286769175103982467582463734380523973508302806871873446064187629932031217040704830461291642631982086285078695172901899700143428968262441780781916264417195044507576668563242456745817551859136043599958574598825035538466741328204525370108050902351148404819530588806416040823552351294128140484544881037085694262600027163923010086037214242484291264957195698732190524275633949016224645462593474567030056728375084672498252798367349561770898365165478278894261861051832769208503603621780033915249337148444550141579116250506890910713827580224465050986098688327677971183257939187162167678835622419886753868393157565897768652016394528273886744065178756600689498217355748074443255775906927363784818051335709627018971520589097081198620052276793499133040582845672035856647241058894553087522364618384396402596011254852876608866284830763601287006667228026700036149423026125416550458296169931638437058296750705322926910916119674936127372916312058636884790525095273515438062221932730028959924079390744385736690935294925868944010734221780243707715281612425319088227173271543382374014745436218433325680295994077130149833237045109699654532027453350702177037070611381910516358803074747708198082653195105524034346189080408772855887102619129910922959508822518192058518874419863486251882456654507803295363481026348433030837241811365562783019391016183517403223845097914687521623877144239223232455763641079747001255398324712260190530488666649333228486329053808683517096435404402568667911688444342169402517726916720054236587952458648729193194196398370591083465955654573745542747225256387204919648468045612163467555780018391145805072029104091774619788296504861235552872697552000423820381832076425536409632089339245449675981523092151894730501978535100152995735305428112836484236594743595960959569801620275302395941995334462820826497923607942188680411060241587415085751945806156888083430185412537819545969741423677874187066721584275223193527707018877628030323374028626604207305052378520354210425772442559140427008749076435248269386810716376693073037272374171754245852247735758270295996649854102311510138743237047991591787902994485501682558654515388125485742541460429120123228556148895327177172401226279944108268691399729874382556815811126238732626104264249191467303139324078996737861432904142084411467415351674268973370321906902874770602008842219032125165528911717385674777311366153734391751962707954921617093780054340457873789689579406584026092226706663974706474619148511446524438074152055212868620200671723263684717967231549153359492453428928874859317664269936209673407497745053070568431410133263287775921305762314700874373845076260305875774978732420714066513617994956945601081928431937367328417989351895954235197022893472976977104975358649956731850469509873966280139531524733606745957465367342250965950109876696237341406068393503481983827182118684406017615765602547011395373572678345269455960791770944971727234694733436780387223775747916868955520413621538014282548673776952837038414279340044001305689783556227986071360705966044685334333224708199605172761522010806671065237950190709749374182163352993865189170077889883476360923618805269060064082807971343497894275959288720261078515554112397373046097592317883468807253835105908002186604490289791189672593675521396472906857973507367571821697403667069896134578745061097120350147956537516416615312164732544167892775072459436281923825623362981037565328913282392322272506794170946913185669962267630084749332949237724820251680550666316199034578005029621609509712783134975497484970807501469286177972053920877355735426344654046917507878362978303712221263449953760458706825466567329277539722860367819247326075875375036396055575515247044790468927900741744080991621535352379551593168250391708411573389472148337705878936954153482731607170302320249290945466553120552501263225317414273729408935823231304140359670910492571838352019535775111030301893738736672956883475900280466901502804156922062794107897682809626966101213748811955631196777980468124930647837405316274760628345868471645943824367753427608269557653234427605339971298708052089898561442065934722157535135731353150964325686326997601181676887233090478473878261088300271876502608262925233194476909940416700264006555597136991814669791135677806574510572964711963826438069896023388113530721498585368708628587178926879629780160894163936301209416355230277734299630152634357751250413519834118736205833454731185380745726843372069052208562550105061009379428561404741845592117933927270859725115288005694028053614114492402092462087948741836224854453701673479359020150069908947111950095477169960645156934098095760872306116798593054474249458559276375426550790985078262274524142805641961957947016181410188593967029288408817507132694912645147924587138834722095701254537628711546135844710131132320149549094464014760003023763285717139536547149001355586963306925811264047920053172809211791287009678813893732959490687691623091782228643533340593396791602428932748444663155945748561132045178306464916622418132462957675091859029883332306551450236294043474054925561176422160938847117341895740719985035273669869338669851702573938066023027910628085352549353166194585293885401347619818297901927026997553976270972133207752142888313638279403779548104363968462169524948229844322968969208533555308531740953971002744873252835275736247945801278044550361060645585780357362625255636064773490568638324600588264572996728670647068819718804899591820953876986724126105812313371883281538730532406351716048837318634831944878552453402131059605432697873627899027362358152686677286484137632175406689989734882611860180029360022362615884959038938183834781502164731089138369537380868316436990879808593012837352876220600536227587287679465791680576358143240925305502388654829492572512760977104308414241327149223014555024915380116515701072599196608891033445877802018420198687255798348589279411579165489841807965598165292440028600089283308995984612515413473641247553705658072496073372896863956551034497585830017188013929340815934657740749168731401990382842771226233324460588756739838593500769513118556316845738386555122929408030684220362567245918113860635048015522616706356496428673234596566937992435872932911668849839364206979703901915931945597036125926270637083717136079722292448389736599492632218594309529344551705400945927487032843519938814026708591528949635950763638073234705346230932441509575691850480891957173919165310002415714293566869097067553848502610804074340645742634283252211020710345037453834072171927286093079709087864027403756034196203260951802333194466047043934800540635869102941831438198076626369229201519626745478890548730085334220881597403289253567824780457234485556638842993651785938154287147347054077625040798071086832571272096595247028093129849059790306196750805994442179885069831610963804318575734932089702792144339391342829009838902927600998103497167534005535026657548513582069817189431736521873727270386652434205926968399585877165807536293049174582102753301267023622273305213709274757549275403224866536323928428878807181194344775443943157463373774219051446263840148384522306013263650278845147170479058318058348940856949424994415155483863342377204069960193358031375344976028444995154109011381560664132329431053540356633498250090053413621495974752980282398461972836700621058461397781582746765798260178472965764639589418774249633169588422839119159056564022819349680175816384013942920814208820454690299463765205998819783175448012711996556221317324427160802193166446071845067024516046120117976382723921134833943879896290584017968636094325530065062888973239251361632702390752395982653489399468065805948768646275141094064993115341987321729914312591009777188686945571244449358286138125976463755113427984573762023435625689831225304205902149070999674160321546707538816502965863991553151342905513331653248308850347019549055674484101032187658995675839455823828688310814186283547319475525274711575402543480466177480387868598378715694913427853082947288735412043190232090595295432861066132697607626692661135211466252769841277340852419138268582809550758375787518294419538166996475933805810974419704088768832525737438561825911089750196431479372572070809405896055397098285800445563078599861108297845198039988230941625098680263516282280756081650704834896441683618365946329769197332664504433270265296440733260835948712972056368036299922692205555021936131309439292561689825893809531154348132895184916542872546286351978103023730034903799179307688612204532651318101381689879195678466786614433105801438125991279141588766717029067599907122292817274527854431917637751864885446905521418294754607553734560608556346420396176670957528745494901204660351964636873577292974282347505496786544592736062760898924697824189071366910300926678191303055919511695693178319754079624033842110466446524045818686393260964635303347112921315436957144220672372701903216128316366068353535914027988526095314744197670576401090753060472138657067665499726561399562590818508530304555928407614124652218099654353071631850748864789331371598040191058010242554171356618961206011069761203387121769536277481470240462879594479656892916665615162911773694618494617768316635945285117164140087961096558671942116381654578935594374741659601910402650699653760891088490540908807662422362445253132852178568721171075072872580243702749583566462456351397720596477873476721370969778743722222285444150516258147590016001034987342164287379415209172808743852870687452996758506346236156568380656846858665912883929939874919280450975993576219153034533964024162816375645733798596901282927418796276250380640305799822393935095892199527851029164638047832936209192780407715041873006891785738178253793126532269564298480575057043385936993433934560449623259372433043576671477116642620566716193777375770182049361597820655177596044557427140159585062420861432022102794700328644097498531194933972205256017243806783980806301980330387140108237370202178023999196594847420810041624631399989387267812969837139653343697806394667642860024152824873785639412927935383607707608300750085468836684968344738138000194809994639279397254809261755712323072287991472949962782931812117999531191393368291421708003917108392039962532465712426711480762187323888663027326326051022748558768582482996273785630375020526294883169608949012916313726348858049819248754553524887326239439367504501654768934020682145856556617105077511943738058941342569604131394758191970668230263242340902445054095883410876889880583600190580085619949103323884501331396041945468828359061480627917027425505698363038681904080769860746508844236776170546226084543972221940355420265203310445526900704688277458214569663667446999428841734711480702347951794307783615275740011675423810497822651699679327017909913253596925641310212031767596026367955108692598919360515293161163999379060522162182625734473633420263075057264252255255006962503721338053244844653771497170577712173855502140364109117838972141797635473176486099732370208765716623286273640666665252244484423704743126027019405293253920388124561167839226071478001195718475045561161525038448220826918667452950019454795547426703119533884633675047534119243051728905583063960642730093178990339713439315840591610085863938221382022717081924757782100150391638486660170908139091359533406190146269042409568052624010705647776618407365199659831201591486191247910453282084900376962357904520492814748144846581726874291601112567800981177269122209070237851486611243714459198466857630947375120942433520044650532973912516708301825542971302260674660980052603919627557983895090692431900473756401836074549348591017944755771628631505548876102867291818675864766444786596278272940399932099053354969138475743042203580266820050183524856515170342099431107260374750821643495885414321045735574198011829400651638459077831309473009929939541827181805997731995522537656235226168798804828472031495890625696894424278407617197478521211170867529446036705335557033361952699406435233081909574370804656078412350061934156495100497331738362040042273443789157896534958611591918135897244495607070322322782801579148558088663267009240423420313927164689630137056221855039903462294679176978329701524127573584580130897595258639855021546367705090070332907975583265256973309925199423352342674324526287834348780393209901478697413172811254964459042777973691266877075337938105295979219560094519647245214566447811294088842597399502289315673204890035956531488181813352488448698694800612536474277550005042040462103442555588086621442523793246458613086709152614396887816336773496951240900773916726414094124216456185364620858380521948089887377463428514000439792350670242467066706973079235532297655668457047629025632259783196183339724915469525525143514347973072505898539350344143010372769330828701075552612213237948915324248501547845700977456836739570646245323167834271605995132533503844764618045298891008925761423645689209371216233577791901016985274650743313394038605583835605125299114647525104974008392381880409524665697821906750077451273404137469485989032430384217737576080925883639849428524916612397421340306639968399457315314592189561854297369416392912745866021491932560629083547889453870589099102877684263449092427581953822771544550755082820784883600938857504071338064314464351066357725420010721512821487380127832552194772666696435196399513880976645324332723557684264153138097822980463213153774625235404290603580170561927446884847759849178086745549832965851953461620010812542242676672446591985003737246700094531418328513802244338672642501595675921141474962451849120472064675609405933598879179790590013674885386450686962065614990834968225785681134556483957272889037685647348587027874709244378417015400337456982748232469221776707380599850755861668713787186830968096765583702166111407722078522106402682698887307289605168437835203674022500330129422087997280733552033208498251879476366174290552837591285641649741372819365114332541321596654479750889663784405834138448245573385931223675087756917458077706663761431383703360433458674650157199994935709263149831353947601099746000005376581449457332674586106330493215029738393935442737099386415060481731338107605825309439419878575323657233230479592495750580234655485760174078300407648946768258640951038804374399269553415069260955209966849636219609754199025668927300183039884115526354875841019186258565195894991754367013775262962123556260890759814472451063453168437420392696341251225494255324466039223854149218025474882876575364066956656854499049481491528050382535285564672004425228943146357459705605413211134776183459143500680409751657893967117854851652292067783571075255139531452823122246077432648578021471069671258249054953252002980118743298038560982084749878105162425738536217494683456079440138680427259737217799597613484926836925904945447285453485554767285509262696633351543953191992620902229011791650354053205354155732396286587788501001210509448364369355456565298702510427337311270368643270185393046229863901849849779085270466381007410606419934676834879214901823792623153577676004525398309488349953129731567381103576713809506026898810326066044317643550299533074351217835363742263073089411890983341196386055152202496844393942530531427282384519772446016604039958354727913725799487690563099638920470629376050565218205421345799773554893538368033652820760812514894362469001742501483694891032497863941911460054023062161855699086102467315486460988020278107347373777049188343981529606960617171547709155804539147213794488630702751062591007953739995139486174490302297892181523395588210157649640209459194090016061165874111119807343351033819020401202992932403144329877164721941875892567634592321990922901557239337288860713694061776164509345671522804998274750927830263599319816399168556260449567993519483203844703965009899853801126586133337947755213032889161978793373276844741328316215382135050223298247951985584253064406273275670404854215795371733438301365792271697658152542272531902691721583563479065501433932221184545774337318654527185594102106229488252043473087838122229831687235778373373445155994823292339269578929447998242009493926642707394323274713200971603475707441072850307963039075727028380502095916175507000501662779242931812450523867239968585193177959038840467556513325575821494315351795949879017593995401869958616206697153893332575600180920779578501271585250132437026798381532168315105880273745589398225165079655680674055293358041645869285231652892506244103450725475174669695766475991206556847983177883862444164695419191341166383135950942698407897055494658072945983183865462177521063114551043363353661775730503740634292089127750223620941830938203794204943018325648815146217473149531227249665194033266694654817482534172522912474970511461616005428188054035419894723457255907901419851829814814599027140514326607102622963491948125934214533789872458309760486188866958513039072917339207722568960983652091279311482179747506446559761340387575922402239603473570849183378112149892582953233544437853183336101743721712707556161914380532726602449486684750343807525183922459239571783023471419022350350380794112727748728950400230804740722455600124762073159921250457886191338649903391268514724330910608559436605624848676475330103363659857748963154641346528176374126158110078173670124954479654116012249009394603499330999402392749438135040080294489916879393667610867550354692386570894147039461647784558930701189503601696843007815886653291356205568916972515781275439554162151952105300131336221871938145719744354678463679883187413333055129221001574730478222747354362338060820098336645368558689256331574692024315168312340672977314170507985368300211465536273578120633869732468790648595875816722867648874376546504490483805651802297321117954056543794461504202156340664560806217490834492965788882953793035047260862168232015498493360658850369596066660761363412546677142657669669382533335382968667780185547637587413756149740851683629386444454372825282127596573341880697804038637562432135935333827691436403187220519444882699899867804379050317265195333242884761680065162980299075023247883443424065678288128860769637406496025630715656767505203705308391361662839216418450982844674305122844423983346413015302739217504201192661457275082813903767336357639254460529716017653757738989469139770671718421230296681287204971364532552899308640123305232260540816113878892531948786172327631527480204769970108414222399792911010289569196329428033277083535253890351431858828631937429265422212927628526004225453979981005955366783999892392918091503877736140092815308194078606647484238225957635285178492414744484368434252066821565966919769728805736670362156355124994436122668933058039480454627750978873567271612375825713839139410872431955195160533765155558925355182697971475606689317353105319152122983591730230267583927416493142243938974431008744911962224480737158524947552758284137168733885684513971935717435137665104895239029017063092712264684066927834839988628595942396793645641735587184019901875725463460676207062627896232203480537183635179469108776385199110783793669022647896142652819899498944095836469265144316565821247179207892033514059366782849401779896529798150547543580317758562255869061012302340109361295535357635843299746307928840816702336678897012814595884742819942874986614377118597010460786118312228567494691319004482564302826200724878752539439790125220351799067010886444417333294270385047776295948438149909989126253488800224701126853866059437662227036508267221232223515725503765038540952531017575868733835311996936024166003965092807274380713754704848445688684891968721231098199098730747953205414010395973619696752305244216405619005267427599397913726868627853543055179125750471576601849237182239348493919692953944998838019657266250365175749403311969597941172125762371383165114796260557917844027818812255383408963982704978907257430443033411791081090599505417122077373797477503036812582030995844119486799985794011171393324239526270361992706377241703397811133323827156827734201479054726165434019322671442180196105337050263337427319045518794871348524986266822221111131891445576221042289834739034998125977811080901318642567088910367429803049136365142132498203398923826233114577540076316382512686668485031584111114115588642679072134604092217050745982472070245524314035201195653139245833100914253634958789790743937136597095527255566660070242028391007459462466313074544675113059937775120411928055649729151234915055327810229864306084053764409891744431076998717276003815163442860652183069210091799279417093193629424774580681733533597017598932860314853201568769791565212418967004030959172775708160301869459714079982443633328754319221407359969526268303856595845208956554977810132745394340864386526954140660420525015130837808664572997492569037617093002816162250318700303273714486051251640723900700882382390681147399580435559035124122182329827436677789038538586239181478158835325813789319130516472390159051500732925827462042891439266753495215494292409278561294142586937295146893142705444227000932416109334447817626188849164416925608135907757944738620601592404012063374998954252911634095244853142318247458686792135102696628751705210646078470497466615451881415103516734981578308880506290252472784913288358585719687703163300975539049048845664489746888824842250422741076906915478241586198518421957909459139269455393497074170826012991361372933199089961244761127027704388927170172348861763196368502467208266987608481975265151178468397433083172604878540303329427864436091148976287974130203367539268931859458016183291794401009583249805875064583664127695292859826577033300623458265495553231665323056373735121952849214896392942381059559822709275997303299473750568744987281293470260662447761583466617049162697571797587242929114187975074878217153341997452680557322560031417046342203189757820773023738624697850416509797584452716458522043551397592875295089546522806626969434499014880200418118642039774220404270266955446032990925495943520252796488734580054345846849452975353915837929113057037617736633757952397710873933795473321185487906192685422400839536103687789915221045210650200380051808347709316151054412972685089966422824644897764232319476756024380976946310016887760572567989369280086502487446760824545957501328381000122974730565399913766112760678583451295803038405025304166311739822211379220747439396630034070496076432882198733987733380285979360982153546559100724317097157060971059686886906647906795150810115197051363575163611207596373863757385849998378645305790304439430129504109743783727473215821070222676757039661418608774439690962477761429826812572551820738210629142917928982577970023307492988858235399319356394252680619486420670833245104681706704055421341876516419219776188680295892187243673912979296702170026047079540759988069653829470682629475007992091780545010872131836710302140341239939886741014047291317644420908011091980352443211333653582852718284326236725037002411625948225597448808317606737015485628911866544655045630521377904505732818512019796654094302700497446325461212241411283293664379403219844792766561092717076355940122055359024467307073784068108916048402263161316537882261306234764932281552291952234092518396017149557062533930191906745971899007765435853945373057085876733937752255618875908626655726071481360268430480946337810894870533253346931528652281848501503993800336638789733893411288434577352332199976257543876194782906084104923170869792726685650177178453576014440687171686900952806803431893356304270972778706508863333729703100159320223247970041018149467646133696884479094536114901744629897493230037580253191769550524162500655284261143730762265420826822134594675370336621842181656644347757209630013688515145967947203601213939946326114541444682752648661586756681602323921704745125701348659061643086005885568792084783360624630419584641747083033660653300534206204283686318888324266816035175214007464026900758761089479463515084495961700050182770896682426327475529391344648268756009627622242507296272188378746955853968086987312689237481269813501287025948529870938537227129950556301593716628582188659160520740380572603304513197216792914771867563052935572768823902922662197305804873114011753081338921701186180117337251436635308756573420894170480721933598874797364268619879410285421295294104365480616664665609535068126798608377234268522061587747745045440859724123572813629395024877213229181447460352824090500401017736626986417021816703518189746705120427960543666279452174941485648640342337595905490601360969309168410629163679468923218912091274019517061803872122843070879607731137254413060541729899505483788277270466638641911377988697406327767999608103275565628709067701614858118516715255720673109259432660248555938871841243042256167746151083897288342422589148505084729051760618997775830070656525208474082088421733739107673981148807733322016588911410051585422388406367286567250897128850384529403162918837144537878661305400091705011115471854363558310332072119813348586311534236019202937183043526169084401955004814506589376871523847124185820705644135304874205156145120866680968865536473070145171155583996458356780034909490393274451441177991637963103382544506126729662982076892834738348275637617138396079392508938287519388908374248283953342256640130058887766579178359774040670750177108719391145784682542500121104011567813812956625725510917646036596778057996130862820011501251679248494760484988420373339395434686685902354575230954073815304116759191964033950082322121220319485821924434755293375301739351818146692053006768354983260897626736030117845855487527030732200353241223910296706648167195592545322134782497402500270274805998168376214118183387608348792580981381516616041464208075202053745495801305135529753878317955606609534527502899952843052599586314977990312599592685238675997576441360225760470651198719323526264910813019359159967624775420054683329136080933231845309103266426957027363688615868419863558986966216126369423462698706529516460365908897763094369532892149718025971263107919863423433683379854278159243753610595231367670588425147268669259622556233388254449153389514807803531600962362723626293210938381213442925961689776071296109653285812638563528406918707269095087199084875880597680615434384983307862237329950538595446528725800917384821639524761866919428440920203252858635973427365210841779240653376994870919040065362840026579910278085881694281124198678032126766119082120687694390256898318550295073581362833258813293497875611996570647703233546013593301573718699852759527884015523130446664670070445701673747302944778425837971339579810234192743011416633563104720020623034667200434736336209186074063793874108377983726591022622662816683681746145088810586794020916962370702672270785567024669662152359232489065565411423216530012306683158137095011751649747417707710478671144231270308259649702806523097265225953502609376032046418104012825702971529099663017972874967160781873864346043656031260091308019905591344969824305981044812142232391988323305174876177610603802422486933607826983487990531871201936565718811379882854700036618033764616418080056211065665713544573803557216270206698706659611630266928133512859723422734740435504503018436615705975860259189729717629378207585152143663005844137543530152873638639375592024940199122961478312053390204021524957162375177139207404812163206956168783744067514276611819357040926225442812572446747935669902240001616279356999773793622293288995109667188147254724474423324508328161135885062617781347522637741668930679618906981738542620711683452020866172255402151315203014261536352924176248872401938432847031453356855321163460324119109690049806616365370483004401011812918656108974698069557691913585155593833791589067981878573696873349166531702934832744826234967893671344072677226840840390785044733709169016194834174928447685766055823894997626657072609591728102611237088220424048967417981761059712165243418987697325405183576390689675246430494598140399601983368186282170586073372014699356972850002318515413576999413002897984546387206092599165675004257455772138558216066238188184326085590864884230577290245837548332719465922189060822557719303102442845088023804118245874545954059911879389866524346777606716241118610010104090734913030671369690732159434848129745453214650616117015870792378267767522436635663919196042731264289021440187347592854707425670344996917675233598478138865565705899983318601234615036475938171158603856970478924993590444127976041889820913034833021495306782619690302406082509918409496241117147501936682547196684447339851530387850051106979020064973535455938575707883336768892461107934627144419802729030596670946542694668000365572482505385372657003464552984375485605766436548468959198703255509085909374209804862413099267432372863561176180971636873658852587542928998684070667409131052333116913901759061177908405550410409730126750877167686004326404717317308748944579536828065166828841880976387687751677225401507003933693798837135823136755015852875240337553986870947839756157946308525991462120723856095229220102419422643655009643728162123659295649212034193108558048057925207056097073311003610872573365512443639741726877515322065422563933914249879192202992430401513532618304251639821759987994032717706306529601965946603316609193225213978517420275604532822558009110705570160851977806571014316301211880912558064986030948049146676107720745502634506956158153283070441964462644401978953041673808332923846545153725133316840331525638965894711008798811829532364680046133945376701491217704282194282850506622188463050880409783570115326654916255249526385096275796749475771603492347359628017615562674390623303470044538119409528697550938580679702661145684844846308991494315152488178024416974099890603908439441850253047357246937305616185379340688294601425402211423373139724085744945862377619322551855689110364637684070516003606140643570811847797770405995641200104601413000890788089377595295745047655039053183599146854554075702541944535881728230217184087340156065947706698217296638659132127716519251666291242160026082404556418182824207155593041412847921238148595144839965671505764602713610407345488817072271800832968140120396622375240917625930501196457437538992864618902187410750169415517307487965557943412213401861945711114145143476791105087385843795432281462392510321525178061022002985061171511522924684406233670927089226453241078178623493002036486152993070136846970506636958762130387191849673626286128773135307721316622088806901178452231994936532272443177479044080521012426828275776057685207211032353363551733222846585385579072592997658497868869011934529274642275255585048782417415962774392726950863003739197232432809642332098580674697455115723670387955932445758453122600239564518634241370010986150265195096501276333828196736597643559400008983705072192268375625342457964215208141538140352834232745745282188653998454027744122254522942265414501024628838852570646391990412738586374723771970181661501559306552580402449092982449535013277809532564263426263432798995168669229691978769462307638213428791853401663826586138981055665067401063420828539478180020453642269679016347991779681426970196243141837017933239208206963911456865343575178937024664269595259600654326091604270903277334124879376220897854569431847419434510620397466555147205617061019461222686681596904838394290430992831677354144429372219257639217779234223773397148488181910169982018278621131812845363263984386215655096776531988541783185586741582390043053451170737372867280188233545785306959967788067417964300979384132540544812380831903058654085153227854231354283742353758721688236322055070652706495251356963675212104632064184322393563779520998965454720016968351074307701939884197870709476949874864200855470745726706021712740956692665431438337769024013142789997756778724179571357223060632305238563514763132557264467597733776986284175094033938121692142673563864623543402066943063507513940274428897658237003075649301065734518698212694757885041191961361046093431644074153374395772435885256502313780947543195773054518785207209863861162273043345329587547485512733832797221918503504787189788424928710689618210899417158677612083801516188865145400128585971646301364496516055149382279283444908376743281989211429104310611108686921655279207982016493293745813421507655118784892767382548793511783235161120855178410837621175281500785185477818607679428641484323323319109726685003293412891404585820443155761077878576257742383848993157237395983811060781246778635855689965273688452409425287045964359207605793466843241453255963562487488211791208183970347846417549291422486198816983583681912923190240717129570007687463345058546053618974136529114874878826670127663175041210072031578108892437664036773091175530904092817119613621053923413873342259376787685262571351224341348244924378633188527682753743104903544552421435713693138564029040006569936253681779918785587184473077058252974350574866412708465442603847274453318352984893683898897808289018623074484047084490852849403039434295546385274085475901526881600037477252281178116115742371398195074067417534318414635054434243835745192486115808800396066834394019089873781924404002198322845207651547921136925507478741658366024221854621946430775152186135581519887540463551761409590543738570052501358093904859672162021606984416156907877168406812741437661409111813963108559915166148107954451532495992136682549963271237356256841474541431231206048819565493502823579799437677757183566590069020417993369091728241049062313271244249416014285160962807790636038335841419927091542276842581774992219930572580325951237712012994424840701227968679444734180679258265793495891476788837891544093263165670060889473109325610561988030860548652087745645452474853531540501116812428474957904372159415539436702907125778653689754228949640116185024437131408434630354358064772127114350431362548438660924361550031965108550050907158337041502556889102458400418193352025212449845716767925568221802326639623157096458907968699494137343262118149547389785624882172010558278984533333136548489450888785675190404459592653195215811924489811352902213455038356598271936949317656578186760047007731691816455034194766774380181590333099302566595666806010250926530115150160622468616389719309021432141704002191457726858407865209722168098063403409743086907298822309751951983100298612670489081778827687757961178330223290184600190716087476842315224050774360779330699714208266188407940469258063274247275041565742546714723309962603957286538590552888005911222577468976219282389040655521371974945223212768338451551457684661127766882078834758858600648865735763165275569994119108346614456186706812749463392864273661511558912240868597078927007503394219875836535973430041069559226761035533059931059176312793511629714079606501253293619401366506307941570050211188043581494533791320858732548430463659635754453470236895764075477044155714931768679302277753119882184837301911786289306940111589359951274829912053068129551929824938272147795541012944377345175642511716526216166999185835646874649357924097724551332802362936675709907697852514226641191193585434501374096079376005086552834228065726478022042061307951699639533247616622891546684694096914515252563415426976727096542892366968403192535094906738450902029724318091231270182551951383460029378821762077676614701791056987095327706600308416181059206587486560051483952184824992543254856132508585197436417072553803196406928071563221322173345451876615575526390318339396568420029460701119129003740322343976701062591895494110816617775621921623121137090313971995109300060103007153333452901597889358798595884784180052537960087983471109265787548954190753861066220189959789540593437873947063842367677502183369288728660527834544522024058057113629600759746651977711112630969469503423846510531433667095110760686290587829078822087133464200364390366332980988500851337814963166188577108066312558044324207698647512216582361620834681484140831525275396050627066696526301902593848744034126606357473771924725215165229394066955245342248129991832656594423759120559882004728642042067074222872759074097139821572379632145499167296730802864864484068322190336849026989929710200920411865787025178591835750552703347688775638585462739607509976147400572192898182966726201203114582608158553826922251013825611025429443067962436400899781005440067802134276707642549925936710102284674866225941175294051667555818626941750593997115376753996650983301615736970922700557309695955649272385182575787553417888752639788555964624474923264074821628542338036335949374899526806016754142197883509023731057687503281918259052125331849318306100702202678580527851563024324195553938565711330622522462341479711447932578993736265220222845799230346011771041574409412468197295002911413986761550352599819480735239154528581118222981815649447927563553322350629049623760218885772940818935145056394333893533977655456340866555282658136000816463334525449484505955566705163107708872505206626022560573629214451674721138860169162930054205124206415555272401945587359509752625533729093899907528808524234255268789623261274535575780817153091024596353553948147627719691641984261118275886258905804366154875620681637434080047600164419843802937341468286777176160414285412606425641580937439615912924271363136731776124458993385917773061133298846655245748283492523119458706998912381060083820227026598562576333919033672940001264290699668384238179436127469866593189619045322223293603166329601494368718280932743049152389322562551911147300753148128807206426842226981136185520154479808760107287609450269249454061487952597780986360069669101377814123490020686919838926415376722551768749515204014883031204113020227806459645894805871377996768873493918703798214391672064590869651897225691698509990310203096657363301877215791078781426445725617411584185877699635635291576611517161175561912146377213801136522636271278503521453330658424042719346570805618056428626998831932727372468508080637253458677431435647134329913610845871145670176806024156398745240385833637939835633934944595030714427694213921659335151610028068260018621710802758990916345462460226985867174542310977297306019504557502121786672926863366512580710505001747213369207269807192779063301291903342918220130117130206861246373615361763948055611226790359599834582073680303215605083664016691546402608726050665198490757496212963311920460864247010599662752040679908521111887393952622217171839456743584366250259407567787455206883177021018226392892933319946189556214339398753777418233490776385599354008719353215578106343492646921668019730695877934717222544807911811119639263927648001235177257192747883057839711366906064552543319190322289193609549718432491009045406627292385027405633838548590188268149435843645843980262611116171765842816097957652506787611795116323992635170032619534150929750055340488664096583519165979491935086348821926159814484369243754556511220419480552682307533247697408847277874354523592721088040526258353686891993198446098971608446742636735916800552847863406269127172173171756061677171463475561619807884390311358477716426051047474576636143832085499367219745739979786652277503539806189140888838590932137437527203362302578779561047292856386085130915778464960008736333920310489778169199045483721157693261472210169373395677086569137611108691532783540556894860507108229542480918055808095852840667352878148038653802146646757143896547580860434512955393551309586932110862993111060583993942496576010657495240264494636552444240730599036528490896664804046794551760568902763171719187687277257489033656717785638232165305692129115050326412815732707501138355197893094089107488034261090882741413711940912309437167869613636072477657104623486150406068547046457718789166038214014347509730536910311084407969550456237753811982755215952136501877563397073543958012047196601951288251054503317305162163410905181922605255463122643553225929574757288200162627080823604244459035813619904596044916754037553727206181988999514777161493276079799935405323179303743527584995426817187213747300025933561536192111129261638916218469566956203356497059650933237168855187842033304180750306650556062517416050526233166409192522382588709552189028812957505217116559791713082534046084330797746547688166691968144768973284839179217767764271032151745244795073588076328905416731603181192610241700381775659611825654152518096798760261634301727837032796173292508134704765485765605901072767352138545982768929873329758329944685365659919272027231284196896663259359477266722350011371950264673084492628609598526205224095218223592003147069826977926672250423655929192492054350354442390940880576201050465309269773134941085727997638011304927973986558419898876583320159334396104687507963520178472987317304408427266965840609618054654656319302505014959888401925085596318809233280147303879129195795825101292043776533474108918075807247127240276166629686262222231660704487522921471507146159607733512382721669154552729130788761367040033447710520770059428997271177365919242991321208097064896312558843911944264248345550207274615226720992564456528346798994906603417413684761557731344073469800379804214122671320372465321073217357376049193206275564676654903913028689978015277912027247510532924595527398642066245295718008680915733555397019651293100483231470413504942935965118265724049820443139756703147053709850613146155991545967908038206332711270539764389461306833524669156764448058479053185626495783935454683629709750886407255782366929906508127064320767425390436885713810940745855659674181134810267297801287659770581626728457561593281266064575328698356754169437335171869154494298039532809562532967176474278419217105496385341428321986214861895267914830400454230243724462494276958818851304787948051509240221847272687432602896204859856831807437521486290992133913992180695380744363471106230210202399080166428312197903931088989028681277449139877816012369634935383790483373886164973988642408564038860012173560371256630282419328441393715260355025536500684691379951253301570881693176198059576609611328145362486381437470813760997339279340713871021835604437946559576321085972638056113173862779961866282810658000636060566965160500275463200064283833990047068610621589780135918708023883757689557911171327021871913861244609228509466217880091235664671425284581316883233438617026345453106357326861714173268252109927195832490783232192898048512298230337937859269722693195895033354126067763684519202799011294351329008525896049061348176846124481858634526732494412395033702428955285667455763776548313039154490724174469903334896301032696085126405368878222121462152194238250907818894026435367515689104488568329212836025815748009984583205487653084082425613508935972296031858838858038358185664412153867087676012483101046308447443218801447909336747468844785641481744590912453981032300885920637101563587565164309596112739640158617697813140879507371428831776043668981962641347500697194056519504550516774239794019689986252789008523744580732886706974177396357254506098542345678985204250732286070942026394841828669256606166544407204577568393932312265407812478316668801803018422504520053551868684850558453085253849754261205794305353308074775082649608852944557278500344139558937933505118403022529870616291505964225999600585648957233653179869136696994427866578912525684626041479811086568557173907213307893310852590333311371858772870349262790271567329168662716674908199318258316683282850015757078016119316922193151475493775515980465409283999109493742010371708560860588178544900570410413604043513764246899815268060925540112346532950434918053747735616666710469298309567892031648206393173922124840551203478063211131681337322406321645541558823784609194273808850283831236226654974430055809989829957425843235376429863146563505528356047709075747328263677043963097923465629794934456641396085146437130393213677421247090445272154068792154263064259726029201899465529811514261260490076386714173023572727683904155972345066669386646058829201247114417883178223482153389187605836327618181943322769555311258190484751746290562001346899644071619823205434718461102051131555093022682510749199014960817856260510885903658474515037638491513400032951639910621924055728300810352176197961683221398169240835763955621165712611219290508716325525855864961663825419359148218187619592329205699550637645818268557522115278701180299433546741536276207749785405413330313633542368241010846476374906388527984149007646469764854009479635895497546144813763697059163569983681198752505479306935320757076678014844770142471624190816682249007420711186488154772891718653596776539579933503342728214605416964960098470697958559264304287036366471307131478233061157641991322242064609989883076268583605552740990478467610760424178421506285175573529996478625529542836742987066457943375801014074021161861448432976574426342852870477855630830963143527878304194501970294657577773281674685808745393160393725331589928057943463140873586086177882633492774615118491165513068184671367734882334108513640394793920887688633633946138235834479408156961091429387734713893423773619109646056424447477908207604966027135616895410644483213659808293890972961891211834291490616389638610693752089534688398334446718982124347807238740745769755450743684674713502485881839966556819634452881194183317263682505061186490039412552057457120360355780251419043526718372192138482990580322469584243231589844325103965443535053543229216747040778614684859762557446153511880031430569954927847167454497269761283933251838197222328360707522781292813010656941262948730634268837338181742170608647548276394242391402753218042951903411635170469807423351556057857562450999253201787499636640473477038985587306507603870997731843128109897898820854355955094325390237189521682023344245572575307879263398550901645594237339662522335164875058955694217297244895998825089232112034795894154654603037878617591571661398869326873749684730549653293782147564810579380828530053244708050656929422340010959348294614539078890661626402150130735330033192074563726377077099939992288621224324880206263485088853036010723436890136064275814252839878594917997961121963797576519245218670960880921371119775000878159304307293448839309575741592413752859777972918934538505080383198677459002518657917237080857416429715380788406071306868036198241971577476389507253468404569192759531937223702229015580065607604738547359904477996748749969769427137668695533195125337764098587096683863263926164945608684140374568420719405950701743035469182150900466493998551741389385197573121568261622862231881096729747606013028331193716114087472706762558567775119956667486151964912970193318084994109618139296492789360902125354433273750642606242994120327362558244174983450947309453436615907284163193683075719798068231535737155571816122156787936425013887117023275555779302266785803199930810830576307652332050740013939095807901637717629259283764874790177274125678190555562180504876746991140839977919376542320623374717324703369763357925891515260315614033321272849194418437150696552087542450598956787961303311646283996346460422090106105779458151309275628320845315846520010277972356129230126058635360116492099025874555214039697911534022415898132450572292323321310453924699836611275091613418779722718702577447361243885140834659320312487281929898307568923994938195983218851032287546801765312653489593799464410392567162713737656709761900378241779526414034775926366374239012488538183785904729104693198892156107924714332756000290171862854251396340045758981746655521146070799322839961936491147312126919453014677556232618822547421749259398817667615127888878297907755343511217083990188345223321969034746579455094476892075793069119546690082595717167592631870375891663889328889418453807002953188098481029972424809255915504393827980862016983205763631025648868373336755686757514722339378639992704370599383505885905560518365479714431322159538287932782948909670174607671601080372804103484815226565648636484282454110489941301527089360788248063011809926914985159054102557478702153678847784255173468635772333438340641758901447020188042201840600012507928735343683752796933905875830688990009866762756606271358995429469308807090000582369577930211088675243026358782551205631158193738423127416802285193252239958929818448044557958007538435635544530549237871254056381423436492503917622787347124218919689138263067310285220096790864571177165312022139962374313447908550450290073334991842526110968761380816288858011271883411541749413634513886808895678227058134385052148043769385992525788500678470933997326296029510766837555230815570484448137582132709918817040281219327226091076053748935670563252264896078151435549773848855717534831646462165193042089510780627895494908321437897375833400535589534254573711808562301854434109418528955130957596776958240218195434554454765247142668318980423668416724058642880653310486921612725505410924448628423604666639668761471058442272612748119652888115150104806682633478064529062180680565517962983818928715069267034231088336022025688323035170032176439561634050510425712258160993154751910436263387588550920484515067248387554494479285557863259774663672762465576457203194283340421030361588339338442014678672332779849222091520522477275108779736041834865833364314027639693910707237967638770808907546031919152007884161495776373548646818441103842416582396993682281640363038878164832143271534195250075515717529298633693673876694583251651911954657839364602234078986712387708866611046136264095763991965562029622577182265962291181767717394327385248844636263612564842206929984050996765666480122697692586314888779549006013849424629865687052490801430138288336208180973088463414632022878144574683756759398929929209044648259965613959262840771041992139254182621674302425648057353550318126075529506816246265719555655193468747593367177879588084963857130129936670260029020502825440110114318668471857989660851854950027911740055496604444917756097212316138327975952868165146060616507049100132955077590748034464458179225738884946733110698737408627730075510436431432238284028642893281462849412945164666827257099163967168603040988961680699061510050101573551409394599018533593503061164808685899495455366068220086466654677319194784154098721069571032107114435023722375908981866668700027840681613744150683004747040999881210151085072876859141533016322105853973826200303779819932544772553819305067752752943606945548745667038929283575998706031107535422966867897663526549484751497870237453253555151738378875711267090448858994909530192972472450151416022253472709119546922834528977386708494507316500485524630799985937587092766047252126453031341092422736457061766637640186350101310985588357857223456627890217454796606425615506871043232433174650898274137593932795145966624626310606956233824173353149578966783941402323572768771487424998521587835651717726256612722365162852162878596513654429747517122560874325847795575848100169536523943459425076214284985318446296217063959904776547107547145118245044650558395883671520068686047476834090093638627441338935154650481579944414980039526367128054967737799013810767476325649458244630285907394070071862278961549028832720817736531538121063513738634543388569755387113236078924099527435987678512930742336314174754576107543710173705187180291175965640068583068897919044003205423380977969343704127755048421234957153910561928398380750475075525548589155129754634254280510958098039041045623573002783738965902450821017158340451990624393005610202431833010657224613588597264214623326299358979499979984954974563307261860270402551989769543286975681141026943464101030405691456495493023251959073914241038527741802812411574849168259614801100886333406009721253401373788071471084826435529787175241303597174513741263952446652422501823811532561864435030281936870105157095901635062588856086504191109266488052836001971484852350348943682248016351756027941398781809758944630040145065353803694557792637082499930540254522100694195266139183643061940487771192759385818507984706807766300999075682968894554633045821700408178409478089408340297211371396228829616165189618516494161368127173594994492901796151873315152926476752946060740979459417381198417215951034428636958692377967575071840252999107663988376648232073389986243735331471754255166959993578429462222675489567699873882202422163214678844396175251110807107772488062188679365106069000271759988741846507531301750360431203827807908808281169518561291385284417921456286059614313537257853971423262975098416252856711598026492153526674588038739185226008410275445621709806416158144331175257691853031067140943776552118100559735966662087533088722479169498652464855235512195966322365492095332080570335116627314102482403074707127600663791697802752374484789230074394820472043601958227690079043096546588119486439372076997785468465426450472535665916603616887109084179736587913356652291142804324426813750206535712219736377961228656576868867107355143257291226975984177459552199800024600110470677887298491073634653607070337701566985943533105798281903795621642264287846591714558653591571960163475439813437764437533181654896983978001197827632307732844432414509320821252171564125605400573661499516243203468260767872193964361713741982247257944214797591283865187860548021946772649260781417016176487047994721849641048956840695128962886545670422327893970333093179824839265707535376076490852677637343771271798139278696711325706962224681953393625901274224530538144136593040244689429400822274633073956184812733628491032785685035291138576823640257107220888044766963002835703000992493176385295030408919742229164798556216757067652715662779293930731971643501613795260789505939758293573235221521700010835118475205165526122523986817137416247506636699064483921812706750039161977998631821119951022715297178805342544024032186814458412375185698372169913713134477373890992882411953800170626985683412504886593043209003940894345243220305835804705299965590439164297364269872140429312904901552327595850790269245766509641500777468487888617045486921552831604955840752807092063515161632150059365517639604990036479646122086510309284041575854997955137118799338623784644865138292527834226593307777774099019516209256931994862390826203781770762703955193825178058711773738074424273943326592128136394538300455302417941563139934610191363665101714019715599570802423842130326221508437760611492688570004574719766247891960030333372552865994309419950450686285294910669483317218422115755039118389965588404786119885592091122720144101520484922179057167180514137120688412046393296112548510791197668900988192837944815466996035523492388625984536229645671594010345259606598228608184234585610471793085497247540678428458884370463973906577326286740368394113959586263345846704528873863969957475361530692944785088314844901222500338677612152286692760366676486056852941788509079635936355051558591450337156077403845017242990990921540971673855404937930383547519975443848348250571788081934009356035244332716969727183924935282367564157187686175259564483150040155296385999802588651983012675244686885633750296966070642258953228345172729338686281632626768063837747362751759459427216639470300397664018943721097472998185118690735624036237461046195808537789664484253961312138464042546404044165655112487934538730366472474633033297262265900974898501680926545253666257148822034282139491355002869109181942859772847243526372736781662978433804283209527921457357238001170718759348987893610817810821055012712250887792868660074899150228629702706183900630383267331338569554570448359055350060739705083715699067584755420217499508868342664771156900087785360159248287215028009701070358305404485597388227680906516930505007802752321625293529124747524077419103018936303371234121185083950865884646450228541273411714534629009074415300502585482758644552996127833778202623981711790815298307709581253453317897755073339823920256337074236101309067912102599903010902925584859744240594976594963032789915963530956883289447788555218060916501091178268322067452463321625984701111098141659306275497798173394070573064263747321492421508642333640720672304897464250455544127356269059034606739354548092556644454634993947736109362583263091012346726949739221628786393653511279707264377283945265944327834747857933940224151373548303176497230532681055688791229388587917864609470317269155560380228077386890102991927335975702378192539126365901670627086059788466508599797335934892647038286565086176695374104368680660832549320465317678733098031961051240279930953086470186688603347155832415896041670535447552609070278768660913759587154463163034543772606195090326500102830204576130046829364805997761950034616763897075062688235606725294891220219729201516025868393930677983831901204632088584477721678927266913401724228034855894736134122354357852983507785005812273414700572912493484745418937576926401974104818801066863815406318252230578215338439772286423318145864170227701802706567589675711955439945960824265470357609965826654696395574502444640349704049433992466806860301564413680144689220520065515373239354985266133775324177932779108999931242466626317979738868824969042468473193034793036133330579038921616752421053830967821237057459965108091142389419428351220744552892277758613663349646287249061105239192283994767008430913312885431895317449734063146569079128957798597531486368359247518147864696708607125521411016471677432242163701707381641456787316013020821300240352421688388664313373068967764419634800904219968278955538247455768485069368253812449075199725379830815288251646745611988086752218984325435138006919671638714298746200957272067702665413143328559027596605172807412132406805056629912445343922059911203765666141798195801428720323882914368231222421799305800667819787164660510648962311688295738297571747458834373161406613106615629898543028148045925297759792670256073249881587708178348941446617047955140983454474402199456559141819951378598622156277913474621883099490640375857059870598516354053227309007624541756275111809915046903685716773301922704363938648363927945873366322479686425105467414223618709587329970132319892080970345363328647900745160108641639090619838457155371961788112620013178656811521246600427454150776848406122279343992759503833840146069275930650191442748978469969900278054668816376282344756392700962963496106667963774232972891267342198938144366095588915545921332955185575133831142213307199926756765692041770862976468755092601002634594212170463838371042204066561654927766674483368128831229179229950768064760251862638542465784919023213093980333525042911297811053882160653445952582701846497020603228151867629804759229464523870257057360794672895598592509899945870498620482587701667357889490289330171113945297064491612596068300645211390284669663975481740821550637741855355310359465981440594412875746338578735467215297851198411402884649523142111692255280324937921582747443756892779107985908241713800514217079555040316897780086821418318282031515501055811288918475995555665098418348358352265533096022298315466348785710859698324992885848795339479402324658702324511527463085766132373109458754402712053719866344962853144227458637973458617262958248197134513168966637585467624699956285200225448993531131837004046262964729692772755893135249341870295174114567863880441764081946198779610931646028181491197553793280843073846363772121996781206087568299500377683532390311636678994163565205699875810843034524348863106033012453292496925253263570588448631377935223966685141615661808882271707653362767587605123195973846993730322265535502043991231806894045827002998305737840588233749584209501769263344996916327414025419076385010643252546688325178990718734719586048218743783683428790065577196394577270471047225004935771631904077278688762769801887125512642704431568907073660692196090199697475526298039609831658983789222485363877581941597318068573253292504044022034369581952559844353971992851026555623835350784666393710977128074425350498045702521378692100244219067982911422677209493512827078375872029890077471924704185898280024762665765926107234844056291269664772562244638231242634329459405188323790166523618778058351037224035938802377986350174507843896619378437123775121344376308918260461808538263165249455796003778909383152756063513738269465798518555822270824195577656186010665216180009366129210408383913808947794903659889211851635118258341689907670621836985226553219275942007601579529629829329698668269163337006456290106830103397762204812239838066589787873070737489123764669791488838924062433483747970836934801963161494246091990354180808098440764924515633181348794822240219504731599366315996488297261645540702403622754628163301233022898592218305040496520065087797535255345099356454630768300441960048684990618338836414657346446768059472863391986962947699522245272960216533121184035436647582700584987119841419349096163414494307107327431492871785085542960158553550779491753636716299124327163704664914583385155390033035274330632890586399025315709767953074599773664852434530629331039327039154560572816933372510447130338535270743132252960364087561697444054566252007842153188024471582576717944443672237535774016234894726740094350982530678563212756095741961365433838720146524614681298437734980658675787965123309040801363015553082302480279312895914304309227778344735481527709713058351544736771201611924716961278094885111586027226488312975887387941778779249556870364618401732276112526018411453181859662155234432518068293027522537791447100906630349345400081374053685654091857686936070607732388113167414820147410347390775017857163599130121207389453666261930772284292947334415035942990155081225218887139452119471359958249362850138465340291904495884986858580286110454268874892608319090843900976031873953560534360278168319076565327982658940543527630214727941539306258938916077374893031841769269656321051850566888830372101974425618623393804553559043664737677126889323480575102040886224621519196926423483005479457017694533824248350202002266135895438813745065539335913225271852426405993513548135546890238009679943057486370261180491198370888839148270436238458230606573795353539103773384769727340062851566175365253712103997684331162909100598719711030257373199223071668156157231211474479234860500719997567047104967114372361583701755598217995302023885998609825095222942483676052564327600587878593538163092397371035415570786533451180661458703446495591610973031525044978953999842748307959068188264680473928756477884470612164451851808016917622472943304072593942531189790769223244272229495012816127585759889027239818201447967983853804370909319028913244941655723419881305767037586416138994434242242648771863670143179163698935730913490576739567330045205839368730571113663498262743975713958614667971388420492949953978973761936817445592724939768275353547975121824529257324217482771365188548079023383288082329168817088367323866714388285662894388574812954617023028807299991820946077457148967624669324940044922821511515186829050574200821027436095478195951085714703865624005915667093223503058892552093187865280832717094423724999176813797982896881265650377773622062247585686891091759476286543446035791372335452916585292703983116389836392304920553763222996643492749226296873999834427693363395824363444297361950352956697217986520873761730730926272894138557695819480552205981590273874932171205073875488794240795071505385874227637947160087943869225061369550569968293958556578315745821022009579842528708598177099181786516709726567196304090693115995129064620855420137652578721779531428088883286326243019729985451805618058451697887815954703297527396272923352234192427780565370162772816121217997811995778894548926442390467623940581087739474030314096543112277610953038498830425255212818297947654379518769007805869350165005832115075876392703930594537511384951942081163008209133693480617020255257566229742081363104094395670276420931331971016627361316169855469895536038289049525008256869889290605510278894858608764950694436831220899352949567575197658881738571099107889343523098181327241709049057810654179984283987726580244248731081218379593632711619961865279149450810551736214997740837010856669513451650771578859538097285663521573303581406372585044026993985790480798160140333747146274311671287059864001593243707216238176560468026013515093233252360213222770336609922844412772435336659926848965849363173020662745131694499640527666066669434548422314481214662285994365715842174762153355958821687915991261552288363572166738797793617074185458625480960358388444546351537882198468695521511115217086813592411228874165060608533828811315308584538120433067907891175197004667076512002842313143585598958751199181712798820512115967214014107715757753080368824228934009655176974392460085149174716888367059987197891647254512751087131224201000535061687253877189586277277655843169908969363496155900677454407582601617237885945869893392376952162141285231160868917442314977748164055527233198234571206393467366187292384883510795138149276958091227903283187376336915282568308687901781914794889060177918805963880881620912247423165961390818484554272679659076990147623414431282590705785985061223340549090189150040672660908137614353186072631849151730520651508036927152853151389076946009237245291887727245644012499234909226939665218720252359395837461787926849639724928725725642672783274869898823742977142534254135423460221021603197007423402938260086189355665735909722639583620792490344526595334233559235599995395128203228045645576175661217819488988296814347129283191337928657115521638260255168090488500140202155050477017987128627218480839766341195735801423439795956370042825890442543361783775265274188202210601322913863650581995260996297600131731332175563132239214809207266141373849644425944029022136911320544317405921925074816999759485279887980177571383777440448954927883067476875288215171174861680992082203228489045293712790419291094004891486751716103426814410009756012935123580855325651856425207457766581141011676453649401679387993401128404865175474024787964316290878348137937057399423275540871229687211229289913643541279979212614408628316548738408603357367046486291006569365250453809462051490358267535568212458896316074046362032627461351815233311917857084758164977690587463691806828580508411400683666791306277652290119783312173213865225655004106623506580736858103928330174006587962683207334570397698126454549193145262074946209800184280530919836642620732171778541444098292293691028115751984446086900504175255483363076670159297395602093349784796731124335407916404927664033153590208744607684266907030791812204865261607919716129945508248378773927964772826862658092888444822789375151347366204033927219608958148631628141801769532920492925871330571626780298146681018146997944661095694383599597997610034288902188509798469531497439550239885566758875223172085759858484665340792683575165237631303876224024971778911674973025442369981540749734624474939336060084750047618860433531834169276784213100979381299333127718756978145788297021584166213000488101960998371876505594148364491375193053936570264280526853605497536530298336272318970636398056035421717753452994025730929970574185799777022728306364154575021083869362676390914941508964534233705146496867780380165644783594077891166075892685637199898510782290166561216383290432773066446529074847794092518770967617925824647270625831151992477180689309342670821900616365729759890302743571190612993682208605021909247626151702225254215944310153432422843165005053592420948557562510364768952962483447792305058130108482147008992756826069655136334222855410881505878372061376348413839885340330717897194841507695774816619166702703872337316905647154404971696551741366762266195767158664979020388244106182839587108824265373041334414157407754731480687738478989708436312317959878982862288676573177553096421921294697283833728111292697676476461823091807917078257020680050019986404858228478622742747065288879350806778337192193817770129130485777816325725541486619946284478987235282012994675292555743901056005608038022658061265529953622748658473969985272252051543174738173865472418595298135295356550593999451682394195653599370431286529629130685061261466436167704355208427142913607028982994314185797243078792264178516518749885085728438484606048590961877288426085194577590003606103138354595087334097226036607562051783484739539651866860287000358317941896808143138110431781812843589407362477351713334737431703254278742895817302106624801472212499604739979518003512100686804966640557712783720222855745578931944520549046159672201602179318226181416303342726584458001409243376593140937875315680262467325422121008757138168087179850983130787965509827315522592798095272773286823064045920008596619924994755249865543234784309597858598960465540329901189924703858791681184009987388194386516487154253710985804755839229414224484761662468948961552091362028975236327507437835303738627527086274112526844073305370884514959127474641776786397763669506343545260739691139847415892648081604748888292180633580155258022676283509899306921326929629093602832593909137646595203407499483530890625288971018242832723999542098186064052034984943880719702251787957731617186585125372304762293721319280195742927948094111591916652962186048369727347819904856674842624549790443996857027952414178913011763509866589702465438447497384811457093076870758601643401121690267401551056401879684018037754025358733795732912485348997486487371301561579369703749126886299038156506268755433710972587379238857336571198814648821960528051006427964393320224793894209434247100479385042950483765793868093328190348132212998992324368570825713711599293812145274040304796457536598953753765347091467811247119554752924512299993484943161098559153352265235625081541660505791723660216307308648264216548636985658726098809020752236224285213001975396670022513789304831037668231204237463650443720475196956635244938272429155470826146530420843085855482635890251932483289953906355083147853305008056977837548565261675974143535277757184936847592577714544432436580947731733441528719005993895032932249392898688071889924535963349231833948831684633721625612486929885473233048728619419873766536088026512783076773181103934845766538960701250898895008018093434970914456709013723374955670331234968084794568050129545929778648190356974656415419721459853678112138378597053149164031024377421399843400517200826286869567744505532903229592960599659845552453475546314765166197149349830687855136182603716636468218421011492227196970664394324276104327147013249703810108185202830687750708237028829538636774423797698059588483205261294469659889476027060229576246667262643243346386380426369125524572272369449032610414355295626912178923580137004078479737819259220069303850702790139741078014213427204427779357206317616528089003210667895154433847893712695462803086475219972514504034643442989708921199902774322226127154742349444737142845530981874165411894217042523046711961782083288624669088555583479386714984256678662684067593042116173471274451368971209659507879554842513648828508473245182244994817918890148906431412506588003385517200424598737540336288483010275150763772143359533910468922480474120851709209392482816121401148839320849984659465248733576157819775189529679208569066977112285409583109456456880944645221914295493613552227685651165302911662341913148423865356106435985515314833008463574004333119149307884577935945221891170380232714570209713271166200152148437161958927671806018799561288273677691830495939786082905573359040238751220485454939592746025532474295896708906505038246434961113248582463066466518006009243250343062836922033528728251910278300111491467184158862534683459218693859282240356531789257337550068811071361772721042750480928886066500803573904229450082338469422278019773994856644535820009164088490737492948163523879123101999276930031600221390871468270035402570814591991117927918001293535137803430115817977767826605225825773165529176019810992384419676646823681457261773627846275721923159705217771607036192375901298032240741874311213876739939673802807802127991246567677891005672215864116285488093161690216263100724580072763581710484025710572833216119506010435680942503707031062163986994876496831040514735622422926123958728593225461692812165818333737891153557817012813987038194764889519140392857856667628234590219611347536317776402183459444716213823913839551347554416148020217939538966580507067160607626420157770333877927651217352960987650830967577315535898943090218930381759584488023022099327216142058101804468439697227969995152241558361784482319125101965050391464467693197096928390303922171623654227724931053919415964426272887874025688351780240907800270585444451083451781560676882999953503565567147132763706438716714740110890511505262488028185275081288581347723514215903242907230122854596391074443013868570938465527935662651503993181367154609398912798882113615284583533266321946613500137407907722264067254543381314914056024296285307731783007766255190001890674754615308854677733786054150148579900916511616275916083299083924509094979619621068909304446624146837101213134962906466282724981043588403173374585972995539929551272032093196667117880603069205260390567136890047643955579856620363217736295576985839251722743965545206855080038176983132599282311028482262993376819395042481940312254075831587584231027356227140236808702912418873129513041599950675687827565554901854312868757447965786517884334635501609894433070831565320921403429563369967785573561100278722223171846905722557571651822505390672686360620626385197535946238005680670692615268938388360026508496977958022202585460209961441183283289337666787509641162419985619143871095180320447167300762060546995778924809895379596166375980398822872929658181575550579154280772952086310817492621433586535560017139826495832437830670737478392019901010909848962907587354144785041005335691668971200827278972828053393664926430261030794148596776920448167380923272946306797550060969185092686615951828464975111774209678279132161519768441487057934872279799684008584432940408003263968889531213091288254681407754373581859818489445050730731477787733960733615237094091407110359909653299222459263209524699195632772718434767824592366520044034801557634902960375858378660884782775177372692864249269552154372058175786516217846925069492795256970984036141266477189106880594513332277340852525755260455703708585771073635126486645413288614591684721913861939045265563544273067873870105273629899159346097671569346465485820206166304609676834701038493665996996503180373059110222031307156593075298284437306021932395369806233811148176142296518419918381019133513370970919339857865801300754689078179305461677982503138590703669519066105270688526366796418284457807657301894371616280984336962775169625135730175232085562603911695714408974349038650143835540826388039318550290289449028755544414191675994771038449975009775880672778031487152722003842986393477820607381624286338124615180535994483373150374792343884254036505319206504066194407165578021032010781883539978125150523086460196158610504415638438221563613914792160041721285742360510643154749687664278299120425874132936665911672964933382259893145846963024276481594617763502043132989360911115118859491698922510626485024044537735233584345542387706338689602069894325073104219421447985618554268170541140676514008648845216338573634524043441135573613786975397381822357763573299017578369071999113948491185326980236738607189920170113362142126526187285152882476636239579048272334945839378771503789271282290744709909632640422485970847949238201468752110029115067197842378098771313675740326943618209558977567929735458557000292817349400368711147910748567910751138459033418897131419343537002049237070840527379239100017484676360329239764254099530922524984121076700287103339378098525484421198912417126003992598061421201537558627080524774769554117520690730429147952393227741899860743429133564541915570259478729270444963536023801284085426864275458434166862201304093410095902213009224491287345244973454078777404060039007312323960983410364824545075063969563240051821030294691782009353978194433247854809428577979002471935334366099383176662589887227960175321537806436696359397295112548132476059839414050844526023967787690256683058007474681162716823179435704872661349279972686887738518809364362546551195773355693647029416608681018849697682067832645886439536493402634070280312307909144660577875843641615379507565678024060412747003920106484314821620713717935633622137497469295046688115546414653050966079107341458706102423132525546370105654777730110318505008661459839068629013477593919257912267907550010039542849266025727143097209414851659155528037017887513674492776916674573680131020439136322449183759176834143236127720675055951972015656679512289973657689490343738307838181507070344877773167517461885977676113490160837941097644364362182803053769531922747855655620608871331498121476432396676948092153873147944080400977430495554355429139521207993071409722876692497360967851686721284471882834513683523622645218986232750818391104625723420387544771684876082878215800824918181904042377189406395430071181985386544782636963174256352109665904045223527596139077057330591098680184700615077984092215440749283140946694015151920303026534558307120266837050726526142982231035804800085126495024730771198558159746939752034606824181846625740644825603051416788693451106186349265322567189860506335443120029565315546976142131836414249449268295757371690778444475527474200559743260346669763175749592214672330548342753334209021691920028086713381815176513467272467856018087280698579306251639181590073401917812633772062943721758434843473856737645435493676445202105519641320419090347510908955901073392685076899281876733659018328599607700421961161531989230866884156492873223939193368775863195753882828688024322292857490628346988003180097821127834644736994306858927445935146033155405216132391804960285110942009200681086096711371699016311249577733562888147577675133797500102148284243497131448221555694482442512965173100528293300075968803202697147143055799727270240238455669320030933615340013463882265128584960494337413651362017590955007688725723790839967787710432783236182180792886445129857047229459188763901774101621549252944340446633455379603581525908448271650471421064949433905640296712039578893652085873568638485640382340124732647015756828562676314894909648637087803773653705622863242274919953296809953760117657356070668896233406547363462875301740013828933569656414197624427388065320055935719525992941619182500885594298049356256234757638767532502617681051029437894828003818190940163338536218482447785752111419020011572215489101412657462340940976047805902469291522376920702150430865998497690772584651200546230892673044230839909852836179808748821651750139476883921959619738352190253782921842740026799498683550477986708874349348778842634911357741737937896380326641216608786401510266935385392911758675398207045454009915548099405559477163022782682288199669119920777276856900425644534246615945519124698494091797131276708121635587973755054695396020199289168686901316782253269982831188117652051713142403031036190770344860068576907125682991229228904165141843541221518927092619118278907203864729890283124496371672262260794705890773015157923706650537735573678542974961412832398107256780544778455033380258229990061432900656745811313837062093345138272885095100589428436400934752582615348154934333439232027840190634061039882207240085957145478563631442770935781864687003138311506032023901381936738365823110631942351137522012593022164650677239536740108346072473606001873233595725967425779257787534746484743855833667263305797518062794817415455357663245562199067715436542876276921186539763055416677273711847125568195374298789061231977976823813223103609987110744116377824534155593069465287064514371451825548170938674588622599719320022012567947708034575534068559395647116603949755093689074091411408198674034297308977593195477584940320283592528368682656012853793415929581760342834661928132736009861098620532510203036543891476695814561258705285147657904483312632612612754759673706139294643446550239856349906904417168129779315604542447811815168432399733102490408612023203526259945513809199439424226442073066994223020787573721134539784091892952718836515115772843356507283396326672727736552712778351096064883491611165972964770728339788176207106423696535857600017861334574247471646754795605576043159921159961710531000078931203129165921181455977363212813100884599685965154799159673348206925725869446510484090160725430379479374399249481703540849294827167393538793091891491059402738825756344267402920436129719690035532027807460129970151677645661660866206509831490651839908134036578923307774275792888178539747842534562159485168992563154166538046086193757661011592827191626549845992844138091790934502894462226987460623691249102226763569846247298755530512280773060382723147672733392369714731827465082357064936458574165065275280336575885001867983022333615307485677701896215223777280786629709971384601245641139335352311443941363113641250630317057546386716492191778181887278049986514296236920328975213204416459482311165156807093601823257471961512839811824500285735941136689936300286519708643496801583773789607073405017110292219099423567875985299106421979425288807159826854389736510199569855371343563448444999480662387115598326800091391292305213453187109334060548528805280234800919819520640837014652980587534088277578241971909668450925727354229159733942096677216226750328380168367012683270877181974471134164740423336433241784557514291774795539732630184782237875110334678428215747719977187249078845692878559149788072152762167774878393725946676974662836463643246368700888911696030640080133212255440332599055107596013012178272167350908708303678280695356187982432497585431583702455110382229552692830876878972476151756345071093226704875195835438932672685206251065234864298968178512803462571867365773408403031725441720605626132893067442822707278189695130427136933867325308350435236226806647236203653595515220046108685419560150098518077424913752042903188373907688145110633194594319680160342383142947011779073399518805186322493633037374289876663955730049123115425474456357512282179603149319217553621559751735417714962705786666091660401294206413320560198798864791910280825723733440978065500046760846590772132776204853442887306410752163580085860428338172699554284407360068699802546346601446586505870179666280113750481951274647551344109412975444005173636150532331956140276336050437148499355009793396575569347283580789327015176166870716785052151578242211819772305961027180221137605577565082245107339406234044035224592324671329729247295905966076584916776797581754555006292897094580711698462483336318504950541360324460371225230028403664432705026829291212980132587048554518491669371756117069315752950026118072998045738703280334464224076245657530910611773426843639747423842078249339613243588785114332214396801601355506695004915950071295240971484183205240547130826660002894069773746747923577832795676866182218311645361529810432367396521099012861667976551304833667095581981457301609573195278688976179497386647311258136873319825626672291555593417622508927887021519155223172012576187946221168196312511260151287866593308399728702095894444254838578134034674752957098479834867910095293931770677795952829355869338389284017888312658340182074131130590123178754931326003864743921842024311425027179344498491095382698041213378063957306455949852912075479453433788218603678168691624640186017609895080057570400076136175837268692788894012793708791687313210417674927481469886838669337429894529000953226206234395570903650053470220968367206995599192069623103968348888552467906866171002505227356319316229164801533836344066693306119163065233222096771750507665265069289452671046635962913975704179519954076385926914352972739265258583492260012812105943415460904908966684483534794767401840916934408211214375759918449789358879811999883781043954505822092654781530241924342875496615298727520625124216456524144337699821205757739769792554529792755483110222274978041167232906505936407013268381169371178617093653361146617919588958163800858582272731463988125074318859306285404772521973255201033150211221795206029022615081484279871608877156830488946266281108751657193158034837913804756099811927792581938160134638205676157919476888581119779465737313714128969404258586426084613567803638095903049414360129765110869953275569821200441586680428513514859462800945026802827890783661031331939815700532357737098284196261175463127764001792556633688684101466257872644875401760933624924421055652227728432708656381452589398940952862994491263898515026399689252807897143730527117034828786325493113514685667437455026380793312338909875819974463835469828884088679583614785720041081781952672736307937019731611080355133075434263197583266231258734404718492753785555056597443476414671717493416231399668410840728836912399290368176248978338423049240869160493335857208495234157463899959025559298464841685309209322394500998426093536507129610382939141783840596736013176901421922944688247703433099803826633309107613579535670316203201565299426338363899170315529671011571713866053811109876498091422532212118854978583754526735435970669119075827734271657083110558815782026577190557165552299172259251994171182071274716352202241669326272042945850076026751557223645002535798389514403065670876896402519843620476736694762472132220764893531852981348305661572610046746160902178203680927898035844346283316152968001442943834348132514944478364699710943006278717519015830549752682497066819670842400415329314267072439109192690166027012275499726259006695890636410201968031505214184000146128131514317046292893612604513992556365990870351118221700920487868341381558368600010221393171629381751614814220454397661283284895487924514892039153468735641277938028229456188264700367261381007292227892438341432891219576158468258895322444912623721043099592174856936003930728755977643592782572195851732892032893736496956548100152094067707584331961080191915269703594497282054240992177479488551018925796738321907339554384821902139135461039572875641470097962048016790318232711296169188370558652942320282119677752110304278242853230757658575255018038727723119515407308430071004209223183789525106095101467448023077841433296539691174855263749250181365167016598131693419695168209638648809219300276492890878559065782232219644004424438455034444715027147275661532604984379964910463732987773094665524160817455277311884016608169216947235615459456398424743513107356211516122546967311337547203210666390573959454583578898111861783242612382583876294836641978436934559414738874569545551068795338941134987989905995433288256519931844892339119891024220727325033047804434824826316795383188123453643203439769410676342050740277620992504416285987380085420633094044908408746295011804387681995636809774125121478256414581096054639454835383121207411339670965757611709217015691940467030052788338501196068812854369142591051264293797635963804426144669369037414470240987079006092865914566277473707054184700141260666367772569706618539982818395183869351473703021708291438668349189557395711468822489438347680151473178420884309080146588587691877121656412048383469507991060788242585359629689116479951397419027253785046319721607575329924767020136194879910736309856152434702774832874087074621397897509229894756287573114912318191927777755568430213796436249500938508557513062449461612831580630849859420588045787040787855152897193604562826448046872045661728809314651670287522832046570474968458021119817762970740911594207914930237818584131232075582365998092652535242347569867842897103121933780596048969821907502513044312269983151564509579791438152495573210358535079662606433447339812077484469864535213439429913957840118814590167260946888388559234870550321014046729536290677008022059508738291808526551177563186735954637459158453633913938017889260191260551034593507579675339839908298648224232131651780114704795334009540868034207956954164131131355056661179243508226385148651928029583710946261669673429528882096959271443133827613210076214978556634536975988463765208106403928386591435882971049907242414611899671171034678663061696905037315431533850414414444385775192812120821025195260902569857127829193814030142062026106833503984994583562211591557835607957635152996106040515482733366176773834064968564492524233279826420098142189432917344357478668103163025384420765567221901005928073090900785804491918450038295602919153834489079644615711200182221734275215058464277513745146778852349868183025136923826962951770217726925287009440359405779341129150614494752588236390414861857341418332902201296878361591765239906398909915711595593556764590330768164144198451299418609107155261732194702953592568208311089548174887328915947608745948170988883101900650882042221866882291063273703608544710747108048925473308970523075383333841511089730763020327359057898804821078069308638053618855796457610576230188446337244696115979696999324766350840466059203443217144257127739230341150425057086304957251198767701938663709206456108979381542243977383360286222882364797587617414882777009624895101823977141256930222006313592519224889381937361905540356157700846532975265555030499385257312854038246149598793270565585319693247835218762828277482736939480659615648919253477198405538748044276690925968559560207278983002611552092779104282266310104541888652703531667472929070856425441722233091051635608820861099048206278697010369486558916453992191183454022803310421827484105905671505860915366692325634029886335184644329520077686430874196752809376432643266722231122165568836798264617847737996240300491578030602042026156155069427447077514156996126979918891120200185202575317247316673427630162485781032889255889572865309670322755305836553346251461896995776292521145321211017390565038869497276736093836107601616001403227460960194449995949795605845055324658672681551614099258835596273852070776371529768109106483479807161440872778087897265351249040624816604721977283038278748934663245172861192548199464836384149320489628695983060687335669636905893657100360753718322809004650033325494518954530499043221201885163642176733533804936988983510792427388234011167822043692732678971762890529007227939134913007336213604600047168891662834829164515955753785392706145269651150282686618277589598981226616078817517242670127940038297245809088639805812006846919124730479624333502820499429062986893797346170335498196955459394349734711947573797570756098341031804969216510600097018904790593759736181131064977691545235579294499278504653265792607308076713457658650296351930093238621072253387688923757122104778355461875031800747267981053261728555760862820787061518581086077233021868367967161730079398557600389969283786555830219981198326975370734239039025517095379099817774513735435524107783011377151069083549357244965201638856963938283311508828361850112035121926359054620874009134200329088678845733586103227626548085556138270899775005539073388865438134074679823285836220077430239807912424635094936623474476378994545020494658651051482244184871406924733935046241655857344817439928191382309057210848822359262059956889966914837691932184875528823310456884269718079068972064120112589483964159531559105140400061348636898033004100779137187362290318097750809568592440434365421699295725172841905944432741337339542963032237830731915153007085422644453318865773407527733093008153017565103875985611326649674277794041255264544702666169092836314406466664459024249868970930424613753180747376554494572218962554311473668333665486112619490451730293575567671982841295744805857914710238263735442527074154727467592067538013354718424340586628927623905870315036910695787922156195296617359425966960878194005700448519761498080113135796865292992573072660805131631384337508662018267050266161705174896958074541393053660564289783735831074208257181576256422573948855865419424553332708360216799604770831957723489946130329886724013738156181464174199335828881258518510035734523806900841088516703848225975733584537598243322733712426374790717382658724353832175905484140391613490764122258542137412492845023443577827562930924048292178832591821586839156375781993360781328798232464411953266154766873379674218282149591116414822032069180732687496656476220170978358792279100589008945287152947382509345071395759066563691858736199816680033033088359427045476912956386755166413536854664683872819415244932380321354227705612736377686330015465533121777030610994491781628759414966208217496168914581409401005188413736831797758691611173769981833475481933436438972304668316198940913193443767128330058462681486605460738882948403538739755319023161358890333803306673789641814701927990271976746101468746788692272031023216376036787451986914002587910800253545038949165118517718793899608314465164053308952808759362152833639534821028788919348898168471212364418348364469295878263271121716758668171530750386015749677745105188095791326279231444623449616542104834342739166665110354440051346213915530465150062607396490204446652024145346464351870226723819153119898806885013107679665535004103832541837286888765091019861647004187306830145240647261275790260586935594517410365560304570561382211533167019903303580723907292310612183461687990951081556409036260237779306012512703657818286369814572667049875488700750775458963467601983844755849404694784120578224104579901330391122006375414372800995483794490794386956555283954356300721451673256848836695656404216150711422936024490078362808257246007930494528685988819782780764517316175134160522087172796471282934731881814855753521504253265580544692413102820812497463901901301062084240474026973379393108483833785818250802672190491254239449408655586985570899283532557472520440893183357269410457946386634958242401529996696162957609470580926926918338536418957917984372519346888515010351931312330069735678832016416096093755997819051342788468950443813923589490013075706751073821788499694746361042456581805423135813651343250405811678350267703010184174139886761463476714141785425657491320512482012269068963579602701632128916591040073832308779864622499026103916519240417984792961290144188489857821252350021953825051404344773960554675933831741409409941026540976052370066982614340207495021136873271644112467345648637864371930932293339285469738574843505737814993622669053137317583943754324037641979100502844852477475865285215942869463860792972246228054286442102948259781551236514883928542010504338490701337679044958206546123731417017269199840502869100532777434957463752786313177400309465261961693655266913786341328578116863469864459688246374375362062032432976764951394978154477490117068607341379875247449665829779007280989500035329500810354615581616136530540677826294036955681048193952256242042329043130353438127318842292112184973384880802934891859296062199180898525587588950455640749175040544817013350713897020366435117030341778455662861715726183087575986405297882583896937461618343637565112206849274386106885440931176778766043957868848464803460715431953892091876301454286285192122931993920952960301355835549529195856524260922530085967563671779017008445713911443138431005915768167509458109710469660009262502699001509699186995946659024728410354837882332221672081793807420119043394047742592074193187737496804619330905554892892977082229576320054003727173883649474312089854339235021092791580295737012226070827460864117478136412078843029482600655281456503267702735722247421083219014084499376971673989664208571484559739930202552013752279196168476881872874581544323790611242982200483341596796125848120524938120192348900099121292016833089598410871885584867711645365321824536554699631802003267767999246836827715429643904509333017333020162178192863661571711599405670895138983453399618639397063859452821069490663407506104270913098616730001590961576730250166828842615273237502663208448639214905217807054276264159875139394023308809341319504426906535261303398496284398414283327961691413355027672201608992639026742587562095391936012050464928617217777606559627537421682221467909588005674143472515860121785678661283968786665444098373884661545946131389613943554484554340388733992985287836342748102537524920611526458306235417288550232028622782482072584844405508755132706167527015098261856366001323253481771658029036818180099951090080719153026385105848092583246945489897239965464123216400921426819190070939622211864603324121491191668362594440769623558841439278057536439205307058465743162910351785528258817796420214777481568382342556500199907075304295476539021115609693922804101624749073533170994591637429204154588882515333953945806104743933266201557832073768056279124512390398725507937067663151083180530719574793923702500254653639710941697921294430888523204264210517075880223270059117369864908147999361347472776035905226977040121685766187499980220676093174830573448413086013884473148697050064680919402569710768363155532425516835452800654489293873573567649486016828597541095652272038487351212445031153162771217105836965650096187293180336991702001035264685349250743284759745367204742057035945133751104383959209819042702130777130644876878954443014307066720158219070280034958635150992824576704103495597465695943371094604116807402983610303589240237535332790608432643138680594302916054887481576203228627009276768849573638754433846087369096283710114765283696967883610649717552499232054098098299546742579177333738332208677486795537026945042195115597244350742340809133773880659133752583545800378356335614295899622208638868950300632379946591828694517752755052414114930264497792514631711951329016946678868573871430761511506023155864191689957642981172790596427207294498150247518725837861210901518743401988100699181899482383363837767973923937175802730203531434381032770044741585322027477659093928362541988355312071760548423435339263600747742211106144756226581638905803061512294579020578125548201732071662663605686608222385162581350483709472117531634370239757659808906083031296973759963471054577786909167542695963462511552767453884311466885887305040073444604326480050029505149408644982831292774399159954006878236069502982401281283707507367922389283595339448345797580597742844221285965476107857332295572440994308353674943923382884866220315426553444945604240095737005319381115558302771753328425797445324260534722324051709765398847335785570624202007542940996638747038605439038581484587148780460608386508945332228903050567729758295373617510796579188124418329079273278516485966784167247646548263376189338823050029685606317215064352067131067931811666321630627178134780697205040629617328699500635583391368291020578470357353182408475368205644948652997173410503535573461935035925037330594670409294688468829370027268738988850093950286655346610611772581507204269583198270241295117652979838742662535557285277554802321863911984903844104515440418662772743778782648385294391457091033225232946588026771192833977167938819672312127811517379207836849011520028237375959365617350589532496791138816214275958210219030910934916555101452774989671758416416793212159750849869158854892208561611783228659575590646254647381649976652193950392950627687664135196903714619889911687653104680343824660463079390197056818799849381530648425135831388593589232089659420083659242308462758601527297968945475960070101936051913873696705865901738010809055437167506365954351746535523008356953584806235831378625099007339832954623958473533053034455418993538418029439733034920466514243519485986413489343610208091029720888188877697277289284043174338318217615668415499336633126440490240410152971872653012535251478049754464726591139442309125328920790972135830981777982817814944122568869820416676461395341297652640262967212253918003016628124229519805006475016146285124954396570511778994862796139448409336175457158189975560370308027853794303250501363950473319737366294112156481700750856044480631513706355258429176618671222930199064630305306046148700450535892686238250317049729898795772933423546198804963339137772701814550091496703362308412438540998384370581248102025756550647998355130412398796548969188850921616031766492760214080375505707638989460592393302340756550571305291367057725316687512490892062738843845757813502754789113567071435152728962172402323691107565995441802718843698073864985130154795481472693488272675018915108235863739817013279909291817950645469892515256436772048644176935382070440721618533687109295701921369820655176920567990302162716205193652803938759392517410154336509830325524603012778087188255683161133211800967129509504060932496255276100692417548974012773270252217139053915950155661036497877769681010577645595217004282836956029593500670445650515831933073017656569685299952610166039106865499892712973299402365647757330360063081479913745740739924113235917123136257314732115741610981993246798117565005159827404354629960866773917177073482210414351346202345495672259319091786791153870069040307568506293505708782294716709156200908309704555688862404750479965168109042223082388893209146749128638346059408280333786591319083940106829794861475909880165536520298725098240407196737665662349066768124668947794637112967575519232106643437408700010369948545985281035215472046036844229105199670147878678309267139142522348161962290383266839286605822512173748031137869735604474044070259528198395232037983290044665980413938412547428805211142703871391563919898411771608309338295272975876222414476888520988664612373500108421198526862886343050006141633346007129827204743261253471952119118126125930262187099254412227270818129460606878887877328619617533706627880370870222581665330993280161147670480130065698527719587294572706847748055303818103470542503300210157551329788648111911296169072524155002877321489048129450868655304786567587839909380908331605880004058472298562663020588539031193777343481313049246366468159755836086963502537860730780283080027822180581188897019781526872917299973245635669647233879896426431890623664673987783493282487137612531061113306300997942704422196661124103777299463588104069765954260152063373741995105558039399994013563276388936691162057951314525727112662436334229901002546890937650478390422955050942598715007579690953905086725517261848636642771553604812557444314198154577007585352415153264888804614006903818687072075876848242859402024925641495468680654630298157112852853342952363123372791485836758199810746085587803749879224624875516874487067729596626709887404245564829729396871358456123127916471320788062877085669419465130191205330560320788777896441515774423953797932837839398737015861043598162114231820737031909016171861098497671318337843739206288963423087093022981264622627196327959078225639761473096157419976317735092105126961457049899583779218070998658728824833984809647404556137967457411763600553104373634915601013503537109906859167657191139634938882777514660453754794036917702064142715356143737055008377314872107989808107674600104896087076935722190109739897903634815121137456408777627996393382438243417292371899197321649264655222792935744812474605908266215666918376700532667217132116699558265785900275533433162140987895244924067203808304034068283315489582641907121427135787265023540339521411494397118160340188667324831555167867353282375998382199572520643703918901785357658350476450296123492773916517894754401097496330464922938083098897273255184672308460217529292883778807769373906694488829532738230480191824236117408542533119147931548969592361162173613489609775546257602171445052283884719960091603063710321112368028383668726291133229116700707830319560488715437200574294492775586804932123319370949982988979670232152993437698279637773106815279919738189739835620705597326488722361033011402012887728755334415974041854932396388628094331054928155790519489597621498435808172775960068957391063531112569547440583265278294777092339799871933829462705538448541860334462383093641719979685544558200674693775350661607908186217405984750455371833580544345089567167232480006281471542994459004411657271304042780647924787727819476075884965431458675224720815151791449733935082380995494334634926460072219198962958450796510720100602635533955496129453894113376188701505238180624914944707273194844938086088861281292914139518376036978708016526099451775078996324381967533168821388950356499308919431399822647993805362871351402626560347166878141327355914820764919226734392014458839645204329529016019201214529513355566078274372379711481674182059411497058280716229915097787042490681138675852508768385875411793387076996356739866058123115622861065602045799568187674720787838444836699977863461138068494958413777764466151567526975088654908087814781468209376480563869881520693453394136102036998798255546053644067954328148630987648262676942011706553996419152373345125321821772171378341634878473084268306390414460377030790110279619745135491970316681653146327039363186451701974586536213900181030477897864645376802219529897436190351446763240118913438276406785286368172351601604845192845763053534185041817369408418855942854094364069487472893499498387008463399838839654828714959440603919788468704524438729085113732948928432336422232831382997503524254271478194298391207895010911646909239159962602936737610886319525477902068394191925820593612042846056021195120168931584529357767047962095233581982717065623719085335372834847534525798398547303460837447530796296024777732340226976068538821768417080168303794630516832234451567552229170515345143426819110026328353193737575886855579924782462325748112494401999912740274429257614751896814622642659880995098791934450994922372492933786614655144606173950271432279932978487584483319293644695872167282537237886844571539660566415310711951642092171341693159415723786230562947512763767230819715256057602348267843840156164249987836403212716645330205786699191423008591879323764028872864656097146112894579634855860313794514018114574053256485350559525014327379679041788169694813911643478909015674160787462444767724964163407464144016332458480363211387867371374715379358962001268807963942493210628179588121196471247240786446178036340394593354937982427928992114397040264213050246848032019244598820050818775164902645092700333464838323817492844390738145348621810405858437077422638671786600805594797391113288709177486634536774856095771603509232375403030684678817982104214743143725113129274441740976833774373593081710787661531993990652361084248978954073316751877229627430843000599814932694471956665656149695364615843486124294087216462770404522362705891357471193652885004808172109365289155032982798674512301795201747205914974705163801966089929053421279260735482651796621574414444940723891717596280196723435228401496680846558702644525412331652745784588545901452819703721185028010089712575528916867059233943247136813020525800373004451892154554396979867726026063665817179342233014329794839751069742432608174779293292394554661400307078087970424116123110928130100014746095291072041147058893570902655283731572856699951119769402986062640527360622172560105985835667115033250575949067775626827840742925523135555330643525781466300697571215527687551755694999072921546738036908096356146554869220087484659727384375579113645540994392534831896122905259877902166673026380751010088930852078414329035159281606944338536082227306608308901131698590302806540231628862320732917532841945321875942059097192474618074608463515805539217777786858177131809006852717581817571426195467401945822095333193580936474111265995341272719468526781652946102124785623862744844473793385193774489662530099762337522315920254865560605937103474385417812395822871046002206953324292444824995445634987002863024597968802214336033467453043845393514172408951811508946942016197250751709907681061395136692412113297485995923462662885718786897518731503827778619521462693182843243121222305870168044269510112732298638109581386922428117527273952462727767755021808820216027519996592381365934937588394850246554065796176542497245700133992291971122738200859208459451950485138855715151914945493517696325301928569444722193887508725836939129146758095758079485362736173371344390846692148864939826747759952600882588216641942626193016910628234373684739067009091812765439197027063868635063407710917772169457087151991495736809219626520243174067447398317821488947354931245093001369191450326810420265210927679452546614130979409164538154173664798613366633341180907766752089388494789558497218789342214439374716295799216248097305616026031360856610440033591230384785802307412801996574875280418429408042146714280492464864716155347344800739849881771810943473837012272225529091261265912321877102109358861369603710471410181173899708458838264720160474757692430338822880040134558404283177564527615240997469369691523545346789503898535250363191200980696033542675112730395592763115652210812237625001787410454068320211376682674720388418529868035531098787838975627200676423954176376480970922883129077194757186714136465986528241304612614834061822760008350705017155782656607523312228905142522240695898570940787309726536437931935946076076448344617366419104011159568547579017557847659402761838631455896466089016814208122472651134239255857365439278260973565369224201294402661821886954172247006959350454909709420518669006761689465337081368223166778368073778732756766680753158359111964185375317344180700605506801996491973190998286182248394885903491723450805287999817041370314001238440334969105226115553427432081013587438291680931060610595881617977290747956564717363661543570469923131319563264190971343005934047331151904248188957841770948144333129242823258725557839732685125266263659501885074316824377321630979159537123742112519514637831303991221163984647897669930045366035543814152865075930664858048641232774083941402415302828426314982196553955868027768782466252967895887520246584393099581781828936510222339920558270135933680206111391722568120909408394390182917188642522085372889025345879843706433743987149986239408552398417554307229582122509830602634449054774432148467471267513489395884544550636462892956545634672545957749934629641662246010847675575804964860638666894734557460693368315603285846111980272255818909510992530355620425747406762243812720440129413472303498470007614701000729922713643610078218149374607401162693254190297178015984487144831951930416647192440152809046310253753106758965938912207820180655383590310704187385639982673743993289335979057616303243561477403999260348961379789563297535162496564276463739445406219237608078591366328838200292938221008221795616077723670872115628779660167515629317147595592853915539768579160944138985124176833955157202249251681275198847409398704413861679548861224244603287354532624550445467977576218006169305221887648101379640001759083124529730445570663889464909067653071358480308063472482239598726874592291427404960372281724540306479942900321993888509483763622082307511202899423760598515745831184283176512347687611982757693241608038529173363959302219245172156874455449744910361926395169637471640173461185512661216957915139231201531638030927748955765317496644047678927521604817339633100852390251639663376626079342911920411225065372617787559647900137459779862323353968877945768717799796021809552915812331885383998313614064653346095356894882448148337698707853771824478666198050090850937905021863532820748765808766634070380026770013958763556617585887460956151507878644374894259555645348749049975288318589058031552659615398755985199450742136697182319822279907038371656449075265377678416130204469767531810257290496359810242963433407586930535325038828297008064482630778601506704264021011792839802372791691538585993339946090205690942913309789815803996731691374711917085444150206211612845792859724715351273549083880180860193717631873747209827886835596112623217587514073603711587613389437423907470606310206073955459925323082240438506450937366421687404711907223496281258914576269314178583085345786809358257596775158110201425567101916501342866068891461789865913381916896254876100527175537924697794959830015158820956064359447956872652471478300021050800765919050691368710660275739368196238746369603653561804487923367119636109644359036778038697569870006612860090897276378417068101102387832750955604986343782504072939871101241906268118475887177821957566871639109628561311485131026298801844548398356334636985896160163883245164383377399251756153821419253830928472757417935315797406077248985434243843824535587738806436843643496204622085681770842969823440204711913618136822156773120335316194541054529891554968447540059589205305702708123626437709634711950428113633878047429414010662718717664614340099542067035561333627325344883194252235266460975178716762252833328171342419911292259616541391854675874697896062910456096076086985785164005078836189331289263035967313579881132281547013497032137291056911886352743379874640009871908491981081775842489637713149006108710255073636447990823086322085169291078110582245807009800937930345942480349069554973999376414714329248518157485293857114229214980903177862809058471938051564389672315091378915303484719259995802800507999798976826316418067099908329962095757993557916740696644511505492599948341498979513543764436150738784959702373119932405267647245173982593364879155216161986655388041165056716373737408724703754379390366176951929572954606131776184606475029318018756555550339048825501467112975249296042500446936578549707880489043773478609994261212122469120034657283370608684076991732461069789491066465431950688895852069719142684414671302567969099179081618433439538215763593231735900604760183740282713879123119306652173563825529744418554615837618732156815755359431025668465592383202475883592559515663014483387334680287725411517236518064391845426032900622827800379385086868618846005908371058691649444345456506686833171446546944894234919585204818781785818641866526282451157860070003467779678115281088734730703407380916212062310379070685826526388050989600594571511909779878154619856839402245427437197690482482897688680402624325785040784604464840418453510051701878692361984444961221520629066920491375160872977322541999104281809722624031985721914739675013938029671339053741418913118261487834379693878347071913566912805633601675653068317163402119461812021889984782349581541666824075773197657319003295687415801491282232936099288078553289242052876050620118262511970663627950806597574213262698793409269264288846955659575059623251309845360315323064457925556660557395497349189752078847644019522150933774182611058780277663065753233392404157939012000533307466897704907189553581845106733998676146864217604731340745596266437696768921926790886763787097574585620779510385568378107373048601434832490148292576697509893278271797550873135985365373068660169681651323898321572822661747677097822690467590504946591374138633673863954934176019108093843335248846770965486810407098640575008347791903267116299144157645588639782760004038482874284244386149354651588671573127192176204817385775783219410156468123330827428895051934995772965690178031258271285987081981802001864264052940863759404138818547208748879074383575801022157053751210787053560293121170315160243096313190265407535478268782512305209739209265874610390927533003868550558209391899466947087271289465953701137728783515543084507660418712543551006786270413748291583395745006019534003602156436243888183189234002639092448592681505503347261942389987497669269600012096553757823906210570059197842077050573104785683800693154790852017559441731559734709183658104342709163409422406068257125558550117296310420098566701507385413876286083484410903979949006310768652596262877469694977071632888268782876500572760060399395274868370068115168419542379481144063048116267469143274130219182027637224888886681075091827765989339388568766382491418311780019544408421962707025067083385235636514201629285555597004867282590232098766651335543822476993781097973767224045392016265006255971905600219911749370266263671757771922665071459650725228634641843432317107551085580466621720093080282515943627531830293534627884413315275235159487655988799504617033885609505488430528673728617376999619752966347644379233406614027408372299695151031262113108894899546058890545976406074492027642444934241766631345970595584835524922144526717790972136761079437801630818067919995112142384230488657845937227450677869242055546095839385512881727623676115977821772219678987500130135875735087392879013989402749898134307206843798075458451169245996995237223319161937104505824383310405902495001090418034019707788459213873346939370408824226735342408403002406703294622699399547302683397404743615418092749528400911436367890945352704211868751690397363536795173548055241543480420844085372147835584425478301365861106240221814614292417857407679950819707061179575612760678875441316102702634382172000974073015834421697899813829394941696731693412281143216360304967927461324755791555796940213740141210149416696398245265960406349282064535046476367526500141260748891877174281474403099123270480539878920439587635814395581650317062585490707855858524765969809443777294308590867934248108350086699035929209839511457216353259777703601112957141123648801678658625969934605439498033403370857150637097214660636035379224182831982577004609235948000760364762098204801701596798816117493068599171017136858325714206394466288114694612348802202827466552440797936208523255817966601822701655492991914177645164743112944844260248778147840967215091080823985714954525587975727466251027772925519048729075179647052492881803361545405264438094324523882509102240937056951560795446523023867429727272111152337762764444077656254443833125017241457853671885865739963122418132765151467670140685078733292588399790721623369538194283216604203010417999461940402596388192568506535981585251820983250293754688556505553397756265244514784729869557079686760558472638783588244689447260063574277971150231840594905974763100779843045950657175266521024124657826888000994374731141287585465042023627946348582933804954775847023333778750304304909295945164458139971286032334134858152616178950303101764851290318278155107204461600893467310096625365823767336800081633651581316878081911698529964130715229808992685141188187840183577543171037049748760776158756141932007768745140685600934802389839089484566094691557296353130844187375471606640069643321032717083527614480305391349722220351947688543470940409705037663376576354950161509224242985770161789511882772437075397902031003139943631782501300917873842367222072359303607857809690076833995980381669335000748198600141290885069288969663514967091221055528401392988451833774724444280455013068507833584213224090902318311293730989326322450996808490360092428792917308436968840866690781884081250905140197412402584360581253751949279871053251698134064177138066138011719349447861123307993720583999519986923826447795284384659819042427191866098140842649915774605820526348465864744618159424530660791140490859660087216050744282586542731154059786770596499059515931294908376092024767815080887914730236418722892219664404339039539599938148964266902239408859828703597104277615306520018645788904585006784917279238854215302892474569689345740420283032926552177603760952265275434868633871726161542127548018416307222796886597029906363579299477887397819763439583742539502058854530449875628873252381543371543328337257900189472082851982069734614548854111862219011206989849958592907121905938749915006622802708139479053809232803995768358568034828985370262888254899854358846951468805318817544098507756280924382118179136272055060942741940435653170878561954711100648909290505044257686131770306755392533232205433885953336208030080621113408456650736950967364771052630814903756883602355570782551012424705861848767193730430246403450999496337370550762176325394818092570459946337932337963736703639303026461903621948616554295021545142736900630290836016468991858426431193645874363816394790627122530750060931877069472994852650277848846787033230073910948210941944821956370646681833975484013717748848458450902465195945830775210844245832771043938534529002732666955681739920414769868014602816530721099228524903557823750336075769812030117363202428976522832925911155567549774115379875213932504775308700774742438724721021642785062838716380326194323761356098693696923745005108053591330775983314772301875175293407558221582659747088906983958481596521175678924581650356668833545037978840623697726804072011215541581967841750059190746934648545965782094804370457582900690962624263041302820740483922446422850525458315634848704073201594993824105024400410967757068398922891256749569003302476109988058475366605674590417173741597250656920119582332148915584090823306165482379343590203272893465961287868455296917411340632266140738121658602337234591739059157015807300717420023114324897450201043186117286546695576834890343313184786273292980316032240730955611329047674600967177819873131660047991956101184328934869355148434496650958737085179470019445703965671607337175248059260672644816100187275518071131257527327047854803537719807123922632032296920009123547353154473393383780529948447760085824758864065435488425274491037410867702490243237761559480009756921658090168636538350926092886823525912750534274562449421572925072953914946789088796417237697183617556155645414538193187838799592967754110460203480172403314058764122580872222043606314049061579883276191147289800256633526503339174612236843129930182903745479616135232040814617636241086246905499499238903361603145771278047587072499814094666340619812308639660245055405683311052791949117227721260613644169691955643792123641183078867986658756250744526586855681841469901845161384889496774033029550774070526207957252020522124250703166152956074356353143275002941867854678272009351674322048940165136878303822053516895953749758693308070727189235644356758331700461107838181952255814370212106752463368783207674511196337479551912893913862597764516491862473371697772094108515213995336256756056036788688258654958612209326829139315061702419541085877446390607966694885970042034574054611942097078540742278284355795390566592942008080782108181534974788441794965838618504995009522967995040419188810986764452250412940174610333554985907692417592570150668706277040901475183415185458278244216838383182525086973439885488350319940595507054347599641227284354464012584946794345869556945947098682192176511634878245781372242240092019344270347982125048149285852692234671437320079667076152297384452066216057832572647866142924174456166705733145070050340650173830424710535802793298440182035499463342408544573270264992470863548021670243523349053052719303606199599595778466292916417276071359503824391452785121845713116007340729916128743867302614479549097910161389224509190748049969276859120022834431253364854010063434973047225720836275375954381111237057196861338511533383986825535069975782004271494929359481799566222540626900423294713886947124351618210212332413121753247699551722811035178979140137753538729271368617563839049707045400312211880460896526647882549165479922392162805908153154347113037500198306155061180392218561112640893515634728588907092288294019652028164469389560396413019101808637100337488241486468032942876871991427740706874777715780481764835291005157318105678924131441894389232268706760651477620693043114772305855958339060113989605341346382930257358324265585502444876526212260229398065256177790159153198805222692846026414579178791662473416577816028930044808384786619984253644349963812393015105868141864765572948352737367390245820439934074119537494817765707985672478577803067649173641342322510955009427032790530888176826917564305881627937463921791740444054136208618702680845945498487083372148623781214585493072579741549984620564178067920449078730991381177055880119139687829886593607027023695408197071503915144985541291398769956681785656533562697752075815819159575946303773476826589073133701616131907867109757257361053180963428869463388028377172481735305482523341397359634096746286022474884391771929844913807503598813952125722649701948476960232735246864393101863338815113934247383426348526035806727022962664350671706026804391321571392953820453109977572000881059343615604115952449926478656967028216322871255635342273199150504698851101056466441350587373909672456510318462858403944819011901548034441285910237787499217449698014625868952028132446349593385497672273929998297830759724821244430518803831913202634409262305209989755950680971387124906577308629219766255267321182825759339880101778660590117805977030526918862433234762346439638424789957792847642975805045664916904994191336057592359678037956244021586305224932983652716638809772866037386159508222419897633231763707314665196313350670799630277257987722539124213862457867874916547526581681615091292102231857177531647607202279763018154497384183616007355197596538708595975395903246290602909377541176551063346830757365065190780525116953827355830968035707483910895478134379059241439765217681115511003977958796719613199472776415213003562482439238927837659687184548460232186471504469995017535767523149066053066821107763578405351917896733177985631452130836330246206162255696041850707932560459653184152174685426407739747718204099520076145230032260898176483453677340218867398008371870637793002675058723998121564383785994948094822305648452215670524507633689565072240413846332301857768614204115561923946922485069256699036450115097678673394788932606659815655494225885936475633747802095538117317989168804735378226373468812365927204157581044136537987313844140754936057310450765055452281651659825644171211122477800840673048288166843875616650858263301720497917762294178358275520205920929375167109462356271312462203899896229327831087733720572051503068601871255715497279187861190670433569050745154623616599995627648263118766991319311129378220895756640553753714918433535656047796960075375615010114303546544762114313547253991530850491850883542179921098923467101077554590691568216921995791163989651355148532488333975029497142498329816422979742533098672782339850570707582779826775517385631434267832402671611051889481838504794373072688488026193781307406208449784528641355858408226798534853647314679277803844831627145949666487724627818032607381280864853925285724589155968117999920214014048065342796377445187205643369332633188180373654711456283256450651656310046190329346831770592451676424186369181840028128899322534045891069066256010452736986544647282545401935102333256844370331797855601937906145184708813730281387781215379802589345117391254925653431904330774255101296728235071934748372430803268666358554028883795354123592633334768962659748179356554205999621849031067567403084167266334624727405942811212067772197693163013787524593766073442041729083341219087987272566306342868580569359047927903764027966274426712482820565810241608681355494216406623511638460466220981730092135013622552515879182305621045418609967274847654456065025523177442580137861082988132796905000548589301902654292654855308135035368425276479519578569749494705100971609092660882643785070550731382222271862024881361080011822073741901214755912024265580658000226493068961395750348566224563455354085254812484470256262348179097351440528175449286683563657769185126473441723682476370703897391224841997712697334292661195371095884499916378983312517759868742729081500933616696241553507618293929173380720445222418649422846167817774046142080688597239263472218333768224628346040286344371123217980217704163582011679615217804367409118910627981540384527409759488726057878961150746302552404148136650137833300279424099725240080093025310180278631901055828166157411121718356993186714484479536225127048052341254590399917301233999292267396498955247721638462206173876441319841599532890440405164019983789786323957699456392595708424797403360306888585181566186079407562143320023722439545860210201788861625413428370736108094933305242842259980381519214699984030347575890221481124333777734617584927543083681048349725836409767444217731028532476839095629450532051941861369890352125016365033892642852426931162029929103602864941315060856583847595817797832375232874064555543747868683639616500793221580667927342740247415156005583815413582322154691844497379405645009479148811005575020305504122724480711512229559506525060782758872302680212051418006670743181655597358420436134225854928009403004409416575803981943288881617507616642635882924900675670043466740180051851835881274378669689436986543668843402358844943138911880482596231345915867548600046204332342474874447449401478269039021268387626496386790474712775395535469923773988671719484246358635752009405342381339990611971606220451290335479663003159454251369808811089109401113467382438098940952153660696357861036316321337620173817084800373246503237005084658505560059669309999894852339176174564728100623746829110021470706253244547033782416191263394196011600430192510726092264467479094438009019916717353484792860684906456726004753775089012551246984585730733018457233001289582598707319792102160874691054484304171360111511135631828141466689068312804455309154690006729042100207070158310255119652293257301410082035892791472855532455413934658829417681307965735879523173691480286276836657565590490494630000593448240154152349271196473693816835659725581418895273278895392343211686429979592169596513074281764734736235477215118854718669978535770711431905188607926848099987776395088574008990685706496414622858752358727997449387566454567160026905394708631615513924288575781293679939835174835526103390594543125390351289574215386777444963846400670408415290886345447509812071506457258117103542305165353845050451838601487722476284996828622529402827709124595009061289383677732523375673932594527901135028710851047775341011026225782367261485211061759790561455668258728710214149732362208837091097619088329429567500122276591119514784757213194872916242507842350633285167604517958801878664891618526934506845943209541117472332603784181935820392418503705164987813241039307488403924222702248338437185363436053333773022945675041209367706797789893454427349821321449988383656673709512188132291304764388980670501738430811357760862539052555760350620704131588907782001136684499922348007048307033395655697170466944248788632468409127601817020613795215125845664117959334354406310335185913449572325936756454768403007140013856208166079163004007625615668732781817765178432937443364531700076041095491845678700594384555348816817684433117223053809091637570696289419796751432722876426331891550860423821754302880788365587085065450968692519105735791456368503854646026534157507779101898555261291620025318195195584941532513184978394985998993539008267580606635633138132401073451696526483253443649381003720804166176916871616444275746114737214921855460343131818451724116848321186631962423328655215888544337389236624779529519544797229355819219533122765113945764863960522276430403572778728859671736339920062264669273576921423953372917384373924161350497225358106594179192191789333554083704884995590987122694057182695765860236172988350421048277689547586877735361534690491975898607606470256547504860535210054913910488982566180907377983733724951151862707373613668998323285748740820900152194553333411108442738883247452456818054118099279581241619005378880922604118492476355995363852402007091084490540424662287048935332668269946291214964878010879148340729665301322365330301190062359462308230363278194976642340589831740225430965731170180547111570213562825289330112059030781854833513535790318240903187505196053560094731885006606917437860670465614703403479518273800528275896550420027640216734192051957656712311736641975317000277671101249536673216714318974615548419323016838396115985773475626133650955678365535739112077855745683042009796686200258942868225004591541824235893154143685021709394180313290708899568531806877453021272357564392935353604578445802398101053528131154837189460191536897488654978528716152185363710096489390223206443796285574565549620872984183217134420383075284064200509437774612912525089606430925981286024648988422492334860747599643725741006583234923157684318078524602254333495054748277347263355867397025876750934976721561626631440437595407335648703771346496283341930712947426929453838546597002163629507480016513893979802726945586853911495614786207881259376985998075733717350002985481528025602033187933535413058738974412289115211772642442001942238316605945383222760303624961604666259957619647340919889205808959027458461998521920932611067843010530545320119146475427620844017644385536547981372525116586446189776345196840822373898890443061196656703943574768076468597530589522254083033155324710294908768646155048250311015228361007435816914401464249647280688204952401494561814208485631762551210387531420094912469304427343039488073072291093970911940075093496018962885047614245745505098138065652465301439910230815313665484694733472638765160061138654446715707507501987762443754540132689941111190033557133878694871322654365891279897303460083179540965994959523776528868697254746048479540483268326807629089913022508280677325827197957699100625785436824478916600634523953657974767121560161833187135013387003994718216489392728936756958837507549694203902250379915737579069757232710728999144031640517984260685379429929256806077689964101427912964799750023817204662487101758336888929462279173427928418744293825067086629013717749557549080445910479853406955181221055151181599309702772982598645427622125551587562118155536989254774078917032151589565130623662387933685192491406823262230020756910127836800857401210099218978335724557807861970974717561220878580942384782427254876688652435133585974285526569148619196038237288737117800431130060586353988583407596798377698532182719377894249442300792265655913168171693677803097897784930973538904436222556666511119350392897387485579390469537429104076597739554268542632411171160557076504058314927270934017807867326974872246849063062257534890819763213101710432710699644189012958338239045006713199902945310579204686246000421905339542402682840691320414320628657640698033005955475902600533098264270068023278875255774363463151246922472238341596010153008340022144536619734358880195842196444159546032013983441880205399414168427316011871806352491344743412259652030453198891716232475125402199564826143634973126839344520498567514192302051143539784991664754309216004815905207938667953578857851966555551782578362634497753610787854490624571610179971049551079525961852291814618961422359012197262596347598338512363848064431575221337985491502621091291738440520811547684034053016925385928358636865211903751136579779563622182667512131417355918223888073010392116736988881721611136410490061580527251496554832097661525645556892716818342142890963836729177581152083052709747209044321260722000853980532047976992564608338592623060845769973298387248214304584888312164907179859734074131350872792291253166957966533758527452736335595339969480195028781410033542911604795723985879390339883337066878433042784137870095034294826742398490301639459231934847290791440790820484102605080996917006905649031153151837231946456628316393094539670622697774699389426927523976821243372564526255203891196039665440302344443384580376790453799928166899913090302982405731761256028275632539167518859818074583448324246426984739755332964817981023045968935913689153194834869765159797078322584439983405132391679325178099608395538498385059934620755590916638231416091853000890907029483339852744991449746027638119416256903469470230076301308443961565004167492333497092482491965313048539872223028663524648739733242503052370653238076725759991869521980928493009713074859442055400885448266574116628533855152272675925602701956098516145006718320003581961910623496283643127150254061015565384663747214737167422682924088365723224683670396544700593670208178572739530441532758474489095223988514965841080167037857143583295229460817325283824907962384491139766519650755022056405407945069868748679314054463009092436833829315369389075214781081104752896416079151331708642959720095654431943472996671315172253239743954303619833512587513091214103845576168736273014331389575323717917143026704260200445466533756171929572399061634804220202185272387043956291841567582399304975039472401369115174806429416489018811969148646910962510142263020759883258973313998243536748619935921804071277549624998942206612630829612860646857338239179724932481341791608768271940955639995147908283189485229371542556090017843691099545014654063368686239519970565168451923241886061285326689347521540326054625513262203959692322165854783879308245152196818815064731593300784233583096027341424685947410888691372090855180982483400420512488018261118455262485595659274322134571710677257706355597023240410913420651764225756914627061296919303514569439726438781619388811847116064669827996560869801629475838651070279315447601478042451589123253078872915046415873275210230919862481535285990149161806375888734373695841277807381049509919351375680058641846199518354062984583061296529849659527953554817276997259319496993960698295066273696877641880659945905303165802929041358041129036769357663624678999706133797132457578593359634041379093908881783366809695024558895010381395714658553593406534502789805528243620552276475403085789019776549147016379939567576795638752945191637018760164237765569007864669642027497646238219017547135532439820045704976895960621515577285041569572578379711788450643093252151570619848113533821522051153317232761911986438956520230634047348832228402208686195236760374360658343512150118385443987115637589536710144114608713987855723847393657100269322839726753223483089551959877668956904102596873365718914427797385537253808389027276157385850315028696067003785937233061422129479149489089284096342723522995351109057872138923509839380984086099285058767163153294570226632847508632990979194731247205020132162783967154099761349641013942831774380845596816044511568915139162362328369377409266302043670471623018043557574664571031062771007257004838721590002155556965651325405582112233807773949284695668595325174259468317917526369088929663558476305850748619938826782073897739592676422923875629426877322705666725915271133173904788750581473077201844178896231792572729828485068180060121634247063345605515004282731334868581901311692340705460616053728074901147222389026238368799091676687929317033236257732723549214560939305520566592907862901858979252126695559690734586425174324603041215383763080398614577771357538805118021184339793803383038974823127332605842874240183893862004820425817721285327093937663648226009636778071804929019567244792051912001577672883779762983288375903777656121587936981089644264966427429564494444244373186680730861691665724083685696281242302950451354769719259887332506356042689342841055926862192865179134158535479751401139104549306917949122611366971962881580704754300339761613555222058945173469489535231732914941089059600336294754428458813594791342417192740983727018155851156510572193094349177566810109883340734990546352220051625547617852584485599389166205562767582484155930326638112269452878739978448267058427723070870834097401199501380678723768142758361242210578255540790376343137120036903678121340457316277386507348484280603492471467283293845285362634829824480913354186095903438092824189626329689255567293591408828458467958659211045731337635660442949902680990434095384933056918511233450659201921968185654683602430163931716237010916105011275483810530400822057931770660640224451060679258767510782098228264629774678251717323804955399107549439415976312142043822848645288191884571744536024868428956888337774500113239271908500530654327409171280869813800301730232665533220372070695079365052589263503185727025817233104561910256562804918680977100068941711276889399740589840925702116871358149456262637898249852096613279783911965318320484415353016083370649959311833440726719035123442984751092649210744907468304971485667504725750378597821826807887127314253856229085712763064656445307332943039358733637696540542251692972081297183441848801989458722128352965042960274668715646313723647425126492367796314319941458279839994433783506965015077553547094520814934367177032241132264614020184298893953311499123341936623790203226478626407560622168172899129973982970738875742557199970839323085757870314649347336033751233858161019783462162980865296237126769874894908981732342003361379294866472518478857046388644630657074283938041926454791779609749291863310387862268176637907912442508989070254414927372469863627848408810462232208952673175599164725683789443025474616149475869213677635164017397137615448867138232657007526427916118591178915155981370205844475710604662978861086645323708403208529705440409311707064780539070400334309965611486239069509864433008303093980923666625103612633776177705536445861251911369680879355946431361891320974606645573546244951544611996273576361416630837514989650468605962107914741513777624337369384676106828825617184940623774208844535110393451864405633811459805443890988827302360575825875268109545540227402717867340739515321107265453252866957153093765705488844895400125070753551692022680378913382275591860496250159687450469223881642267582381991507167079332025574533297091001126463452159809184274430862362767950135691882385843213284946592504090496032035378971226663954433902878998232559604846932896422862685544586173820579001711528162924647794396113077558315855122725942984114257216393071857419348993025350506655641315322994382057045235997700809829659617566399128264468189221361167864726747301211519738480346672185514002226733514542447312826471403641279429854625507512643707108344403668874901291695869836786733237506021571912332757283159773725994509194990913539891199818461302201522454603990134728090315930290670792425453934702595110308939348889148612573429689293527649118790961334901495843450173690774742797855140227205927394464832830433012895387505809397262504572921669659082736596792636501237150932110343050384843211117413403306851287539660287996718751675897479686071143237159491763820275053534879478098095954652297867201348209261454309279408950659289224239135707770423346009404469899456055327952469901233311655484791848507189578821424309044141477076361750635179827864764848440639909121022797499364241490167278201348115617929225680538083424482485934011100769174175437602395440562780773105023621117472169123875471618130997835137014637923065049304025281167012872270893380416455940011945938594145428746711393517389488438455594432457029608625324632698412879453108170357247253535049734649662025054505871264089207911563515336916328909245244469994592904239217423416398323498557173250354685899897353683546735862413516684529092360477103165029245941179490909029886469725619809373376727926485088684817445132131713786271228062193480599676845416569871489193798738678666078081816722471491098560480543713127774333681543843382977120090013126477255840128766335580677483457688108729350359219682120069763319795362435089011887697942024921732719614053380380040848582719104478753572704037452070750942765099560712370964723750629663134029300277155114811754934450488206987786441027769539820804777449952244834353217697952630649733857783336740341273188169470502857169497374107677775094397778590564012531873600581925449136144397798442466270642957492958337209892030775656785268605374789878823802548384569059205608648892445459994098132891098809235856021566224173779410489515092337001554461492122179492957067954398808623143998449628648416800588202447542553308596166386957542469246656684469353410325131449832219615104030379721227685776980654661065854037811978472781025667620716115367494637627045070405117069943203518894155326874380393182712827523353679124277124663320355359623724254876493407778852019096457415282610300678349460636542064136452481471039158396169936924551214552736417615082902681237316289987562905371959924379193476902141832195467760362457572102283584952984480242446384400716753160023520573331251698039404723223988230724572595786192546527517725920732721817559146885559365600833148773316071444304348758131189551734124224169952167609340894481531556053231365544071766632996902516691750109218274348836708124699932307790286053236788287350377894104835438543879020506321118749230620695207388680842947199394302722463076683468524834617544745339204848804818208886068839689355123956641593543924147256031406691957286425247041438082156984840746062621221781740489755149348493880242678705980080915463260467001346968410328231824491609303857094460315321673438566550919973932752565573316612967083494751693781749635318550550181614778977486679741125384968974835980515908908661389250050846726148738899195738906263170473704762098626048999203639022086344140118337732313980080510241106201978238422216534132947444953580463851309532707489219507081341311939055563627664060315278211719912492286511919256094356682728591639360969607019689634686961705279971350885162184609957937347787496036479041313789549737471199518107439846128995001206503480673305798952395273716631111736400483701925227919431529991966865525690197285686661127150724181808348187785563933490688888957454166742450323097595908477548439181190809493902003626810042053038912344369539504057923484006631282952286638609058697348445909179241166277301594104898211470567010650235746734267801482688838119198096386003869983358895960249267076208851423718403747773865595063317488471452577720734764458647378971958168272640952551331596592468454458010979301264143956760327629363126016983760457060278281397526607976233753036403462399060179195856326719580324242610051694733540294250519814891005935021846030812122788742029518275618287780366389626420041959821274042804162797228232865316127167644737088063771595181508469561522587035841969455011950234996674027708100271240574729486812202801260834294775037655805578078375557016111494736167592061342237574336971995757988104292838533787419057132861083577026437568293057481626338899690233511378719292616379501172326604443833178225462333712023912320554889938812475337013328621146722942077293293238305764455775306369700982346292319970051088647557070171755909926974493582777449239850628225091636956620120814455742161654477840776475072158611395227861740748466855000484911830953322361835145855387446443055764612852286900206255208555168852154132262818336439011368349073503462563218343151421501090546740319773564306343218245197268940979496257871512365242289707443457175339450757861047263896730519677662659063549289293659438478218881681368630162466923401721666616187320690161503811965993647178941382256254457360504857869504532569649087378197616710389280114116552682736084027587473918749759060034553689671691070231746823501730896352986869463198269533656129368215580435204112635347053975336761884427521970277276731544750087261922423159239558638340323810823044351492066429419829614466241089938587424430774432082239583804928520265082155987528723716570510979210988679145718213383335846790529324469199644045380118614184076644238811339296119239532741963286082672384878302907917636543575037234019652132988948730373642397573387546682603532310358136733613238887517531706509986110726619688457809263343121965742351159528110829027924535903090162441849664007482534132883345772024577875806785192100940751728140442421223419419015141159229799200832217645455960809696829527683457663867357607412704057826079547058697420637075870397207231034974416839031134675144699691610066059534561179061932031474647408978868783029342925060214659825688549635376073571051736320371766645764143385910265344944376016137205741779808856964554040388772227994342180365201888937440733144765734509324539018344001444803895259253926186184814641577741950059578485669325961138804765416674369016085518374290689812087611229412758935932116338994446293671948834301553640258378514745142945948066721512805752355762699186211846967270001277211321054995780906555763100561214015660054470935287340427232893614350545742826966094072344768259288346380007505112022459338852300466267536469608901295715849277931131248758173451768831839093592510046726125170596009583397619287779212844055689957843418298507915104781389675654942021338859128575447418638410945083946359702319356425364274623619033740761152986825899779950576149510716264707541150736050210687875101109243152297611775817859576602250264055378416402613571580001038237403190824906625505305212057347844600419109081331583821651144659611667161963258147061182762187879454392570310514451297912982931021184719677512628193721326625282412996800012306842441527931714358598891741439697247285063303968574647866367259918139125746016822354841310790720631814388206077308543215873724686704153723043523421848713334262646232858388429149109453728109298025507477241313609023812264864105515137091621438909398449231728932381973654344397726768992185145509738293322678829564806985043624703191964837558339144536863853425530176406538628206767721685385562650836155902737257514177102559911821987844801679907456830790968510380579850822519940106161641754175389989134692091846791909280598176462348124455506804899449401345151869446721949123983645753021579590078068766890343668176279418748572800218344985698731335442542933776420906000653366005172199600338947579199304845316358141048641892269343259036669726464104272301038829997656346673798054557472238393213988896232233198155891124525379410999751923175350984185709697880264153352116705825058871712411965160816019073379256082766746268870613231825549375105441626224769635067472743001779421223984212107703502783962030364303721132789435911410248800919965925007609655336997353457124204811485816702541639270804432302110123686160349672850028923861479982148606810209466980167372295870839561860703028315006899497676830406687045750652938565648265621294122318610372016837736071194713946365138706905175919838768609348402271142133477003787829253200935881263802120877136966065655245233466392205932993771003995654536765306490724565393237128235900651161668277622688261647902157078094199818991910412723233646104742345720711495459214147221751218189367041260488115142722363274306436293426068289289202517203067331230176321087230377765326440506353502373666098095976459257874858495042236078908940574423315489617844295933881388486336986007242775528552659425762409933092616292653294846208595423258149313614051316379031799596751684964530082035895413356844023223772731876146003303879739515341258194433347201059629750463939594134632283676936796035140840569727207084112212984523390292978577083882359965188149597737044315292624216058139601141706054684577521101650338984610470232749540096382775182590810643402401746415801718330639912213092815203780589068701197502912420535019238198283757225199866382735548855285410929578434267348453563873951909310036943319005607593375426325993347376316099412641155866941111967598730990609720247559718193082433482198706673175450222163466152253867394467896885903090220827142114897452357747155452905234931902821788682192407617594997611312466597080223718362043543215579149641277866309788008038371388942091307191684443942529392071152853580543050760819244452577698938154773371865336918911400559505264611641275235683203260282382992138329032757878078111542108263443363429412546954888314369942618305314977411601680819442122220156996192083422864711773004686440514027175527246404465682676717293494223252906934447372588303735544565469576296067583975954098247867619944809334170578441249120642208938307474088859906674213304351680780996400277149088991926830027905652192653110831161066951637120136287946503201514802779685073373531627374687741693430084389106521099490819005546695440001990989189556679797602904044697166868125669292031480003297328657986535889762433960527195175678619823028434448151150859779810014281382422298329622552069524489417518144720246651470618019705165531734431245643242069998654642918235901408046369490676634526899453206186634875575115170149709765645712837368131952996225061819902594987763150137941846124013513300933623870539656535354798931981233214119821615497912619691878833915669510646381503656479379158886382646485023101184460738791996429716830023246357005622354990301517847485708245782334321499933335781735220887538557653888060349446460224131983534202724258109780372706016931266446122283829801585423168603834094147211919440664006202615299636981023735698654219798194539627134291516683666314781769164409791577361899367320841277014248445187212882268020650717861372977670499177041616703342289257685361300998744935136759490113697561629929443057807465317396790219196034726201936908514607332899504467977559167725452246833094189715837906818039726959748721048441559713590246021795150839340624013594576725609174717120104677395300759136599735369941410619172131269477738091092168803288827010493748685302802103635631591979904613855404221627532484523978786440578071162944967127086910545059140689323298546916912904717960116875436358257211479700564289887817734003420738495314625717887880800858363235687376039729413365913571803306375401680153754394111519450394740250623654766416616579036897864792863552917960522031060658110450469924105739078934306729897385315513054000542808506835859985986808085153972705182797660433758046916384956895542128394325313380722618185846146853166154134392203581018858583322836688659540383700460672949631980853720411096941740044820597715380014349700924750059200479417649902572796057821696446908092987037681866474429145936329614254201222415585281768417906277817033758763894944521210648288515104036566184457536953887191839936001106987027386131125368344176504374179353700039170467088650008581568453947897678945255284622698872103216679431448775996785743646319999919050079044669712805322237484701958390350988220494794638191409999694327030206009580724786706196680706931040640306451764620995969439463052420737779863424377516910914015650884319809806981107008513204550862463959575817401020952418844957977369970321587194368442720511279039815514333709738229189607100944935292098261884197502258182568891644092161859270775783970937047136367460652334090077403970347406989100815197554658326549166195418856767495043038875031327256401681872721988801284638458352822249927837846836534942547890107247073192977104539222350719151419241211307168688364341885777178892161434255023866248898569430944942323552676445171331583409932493790308597777260443724640965091808041720679516081811788850437313657128099863491940472772848220542008172110383933772734446253254181807807326250069087876573898742816669094152913291623252193536815896754462837176950807568521729036301465726353918549899170409469580910965252852713035144672771710624382121453216616907736602810557566024360615652092531716824713536840781200043408756420059161832224744347048259008950132529460684705938993927743787319132197044930649993657597872481125739401858337653283293368698694654607078209490369348421046610198525084353012566919756508479570405275418294213374374606577595630238629649848640615370383343548732772212052906019321878259363921795825573326713408258580093177010965044923968405292042302766548861869779507326228955226865595137512964678364562681639196908717485250581564757078323718148627411673783999756490942778277977256618830516202706861531513926925038230835615422220289617137909206208692455378907527880716997796175780373732265145141483863624133569772760153692887537057182239997564364654678381275147726683816559716618880080468765491175200648391172262085627221575817813849066280935173582185840974988032004790639585132691441878988957754297802268396739747822201500717934475104551982297575706392871760314285277460668769197591474978904369863575729247262034225123566850427123178117658660040178299867363656524489322932214893245608274123236868845329816498226010189841155352077820881418490039145326830187869194758504778184662598522382194431871602321859680228963756377287865844039724289784338644144647387584734654258333258319235049525438229115406470475152443656438821042187942682226604529287927280475497894828230001747619444575350511508007059571359705351233044057337095776424588180776791746923820589308248156415349288731445575509707551219781501758326495902373440928478723736527000648507040159691157310463944701040578227990316798382765334407776067653495066269395266307431117217917993099571845937933045289896794360127675418435705926131798963744330655006698202141554805082039343922260935960795657177459761666224668242015211686603986979147848916321933069198986857607773018761848916965093836622296617717688324620639064528885061659893755545179061620457059403542314620828727168234741629618856094228937648329679203514194607777282756866968901661615521986756501648093013505097687995678491205842869341042681462661181691963121922607736955334557356565576626850186007843223337526292590957127162134087938085714728741576472143926563665800772224960707815606677802073527170450162797752712063102586021267731590187285814482076170907307723159832723646984113649253290485882417879223651098781042186862124496338608365841880141851145886484027633300115869152276366614879000534359277080392623215444992926877531454121957491627852345781379872847678584794297352871172924687636474014923020873730453248509066228167061090879503001017279980847861479687412216861836748233632502732842757178844885225423166448187133180197907589791675704125862639883250772274302469508654132955928933800338621624886914164511573708848218322464261448445811434647400170600789839009922064268699916608937370553347668987887279303331146904759985715729533576466035402015596606868669614270607726701894709469123871334211664058661293451093972674721939143658650992438921405413054846704758392839143416380059397530996278333338367135188274091860511433750290815152675306537171849040622063776603399714533173431757440757932222879302336585835963881982519443279571249337342752853335635116964181975382733587212789984475907911396929659225164129454449203350876691926177939347094645792315693631421714783743056977072046629431946220501931374483084671132706667729211746035163206319064751906534972567141743573460239379384479839989150924028030486638120052983409911849041922306282542069028664140367704503223771318903754117525235399942466255633186563248432120239784073626471324224814384856549191066360402783976711365343977673274659930224336518561863649221332142596211239177680614126175433362236575250382402487900011705222987910791984030642878009949399944552941847515873124190705258060070636693949886066282724101386155345258612116000496974482516129956310686977646684922751408361341629736953879320446176365830730967966666069641174976952397716486958354491241164352950547305153777771151064571389087510536287805150670540309109314347489833140046314239948497642213898014579910953994703394686532823679511470120872592071052320930566090695964333212561110809822384196341749390439740273767890481478865095490267483425627076431026927941166816604679027174861638353927036995169471067454465446232112945704728811577154537218386173236752314739451004682020608014592722255849487956514666676331539972799441586245584563106340238343259998310231782680118400995641332206663777979065537969604881106919718876137941543824315213805899313005102164072253703588247237487920996489597055822426264441176125105491482196848693247496212921363586991591056768988064872042875444150497584598842144547367251568629108128697127234399732602728681836234583631292839037448153559736406812558150343646598348027693471031756714759880766833496789762225412587701387371444004225184096006997415855049836992139594329266133437999767592438689358360263747211557897699330075480477118692754206275921953015907092759039816386794484764938522729760187425775125138718890594810320998821358208167504010966096709033982120908049896464816432649303451442201001710895518126472576443348144519229371320307865209418834926092520279626573657023799712716584983953862848909820146516340398514754885138173821113895912474552654705769657864833742317692822322142157979883598577797831567014292129922830735066560621612653424274165967713782777476314990098492554099044920724727229704489381601257264344449763721733933237046172526594543454170823817821828967455227320492244812873163903932036828261687979361939905519638345478601977222520570576942031074944185618775631942786588819938437067556309190085112672000089624235220574827011529398457320391490884954572302089416214735787436517387286226014558372241028638028323745676142224516470892216242376609532258337095878349174972488694673114012314418537532685049820324612183809286752662869835429765941899897873038239002253638682592986329988285992514248204322638437781518611532294033747170646279233552837676002999738979710345793244862917676238125309601222246624681798338786223113030268118952693603163854278011421535883746771602797277853478956059443642872343346396955373675045706930880289937325385838410438169633885730813705216475393314202438843694716420435128428084114179334520578779083827194436062880493831760613294884055579852636263412996649822435283260452805187843574353059206612333610249583305618976931842555814654690493153018817630164322905414367861792887598171123180074317938973661900982813879863739133575731592830224790305777139864208912948384984422345280673470136526132886041285188606368884020721588051898112989881721306965567735353378695494934364820375613265551560091680062783817106837468681306549811483801262056371275920917217908230104651973629855143377736524337948407140952100465467468199087324482541330453697735600035497721983956774195205262155449300559316666456700596793755913184614098790449972624343965605482896202402922535577436812248366731259319323627577855190628292091875325273656770297928714520002967519657879792342411261859810563078896921455337128178317444384829383088727359836516793607279567919598711924558060173568759897123355020795889814318551136784181895153463043740841601978705355684249686579711135626822713075044469835047374486952953233693572372080589280787002398508225694575366836440023311797918479349236349201636434455517780112139457685413107630825718760239549559892524388948127082553686513328942039342671331217032279549583938410457946378548431703970250372339797770675999728123886479446179714707031482630753420190200834006922045570579673145162523436653998766472544608428926642260185517861500990189324734055047106356684571185796111994032602018858408760462621547797454656645698582250176248327086752112541283507024795171210007933954388001887581435726566844999583469405321148812837623169792768254384885813493377513562006955310702604266323130029385001558641722497199256399985737994939374989688117533536578890859138070685150755198103976746934343268643288597681307561753409663255532767268871117125324932024281239757488540955962507205073465958765176205759514649021831073336283212434004399038245307320656965246600902939622368111365997175520514563176984484086936599567326303368662366166133972321766567837124985679686982678212496678477453750606356570390336212891063304865264212066039196189611420382219729443726266183349452295227576790617147470327129038569065325514474883481464610765159686431098289033443724797126937255688135840415970852453877482995407005016494279283660690044310244365444078545483143689790824640653393280315372347572192136494943301289126313147005949487896146648936471986150500837409581818834267880021610334471160575255905722622867372162394450204876369804177804163479337679550828756550716818381311480151469784752057698942336440911960291737389788467842637084816424219328835049632999744175037605760438268938210689072787667381512045358103003833805301785921596211947217274363790003262892322896947376594577410792634448342656967098336862533939279177468154619347822168835581051018225984330593093708080801592505958089157285343659819802958853396401282737789643331862913983692003959894699920129124023846153763572764211611038890017084772696945854263734794138350998067096987206171209848448012955413495228107712228864727368645128585421964154439692694848660651162740888727287309319791267350850998128067003086489451005506026789855782449021046210578261849952796604351860303195984625080746229847816674175421196429946889832910726237476794111593668167362884320294624879612833490528669813562952488611553519098386735621817459362953221208723782061250428561834732143154100029946139002821938549400057675422028750308221329348541494769766507860474500042231702247419412192674835332386722887247409829311476963912277822886715729119479942359951992988333619334649024711240146680541814687270503658408085864133588665926857104808631008942957590449957282329200055309520805463529695942408589947893238115121713342522611188759210470137540817879267262741929287909747702847869933163279876097285701694792508923060748980163178072508367979383915377279423514542956088410571316975981581497779101895247314048273325453545171627802042381042354312286001184461399469806567555116044669588657162771114819394402306112907009976775634245960145442262085949745729379094443100197859381113603625752671437821539122468886247167287846197413253229737542952627800388309292402005739539173409774185879717890213345938192800933185155759721265255236865716619109318357912099480942578365235621164424696490645676195658500587618184852183489893730705254577090388783358369794964534350710163422500582372823185155160688095214511637288443455821945913809853394502209022117412010051756951107451710769101136087779357331288355237057597617441420754093155947999066336348969226592435391231143732908775811682615376212170890867893840277685849810437646369152744766791195861867280314445176107026151540029704481771904502614995204722351838737776856890330389698033495821497590656595880362453374966456758732459902001579239237600875534289018457456813396912395277130530100832740633074460707422246859306617612299471041622062392584398821481081958958491590671221319940779684649114776750155585299023058314146575418096371383286464489780493439874568281811948488422329062097452504900548985806274120600769741265041944129452052458519300518839554418603987026551582517372054525136931571342076152706425732825649815542410060179205789599528813471359915843458797301160995076070744967687358207178814349145284063214006843994071453490499263525723513634000799786438740097510452332227462942066100313730356140722157413007198081338391339027076564343654167472672561315643373296841995691809397351084730087832840382930016997818926877781146429239130938508808792052758510019848634100226518574165161453283729284678643381260818454476902457914538594373585047378827853297417851420512190800174950555967091841939241065763372262303281428304786591990836753417408423570451333029098908058014406789844094612207716118791328578232234459651736264147249775192766170413154473001180738546198015422010468779492351746647248942404914922939955142760026684430254919149703775060575658631176292217156526573812106158273697440196177479498181113174200989349725828234789106982526404467186205833705229001184665599650101266874816072466244832902213937754235124612162988125254310316965560129514959643966789397677912319003161803287244661320910930928205319712474701030267791024371948168875484301003343273926866937194021554978302283754137126881141230860970411069159044082067436527431931418796178360740471927827444797749816813393527828816486685489611800177206040140514859266008924538912035635808382226626541267695649186869609967676234188564582450422255843016688398464487562525695283394043731542966230739763496167987416751241480698838193226310397901841088595616120134072916582123673901373763694083548193359114275756256561307062566355774737920436746772320984319955939964693339544559253494680504255873315083211379348854719001500695081178504867728729377469275478452989697621552627443259335741379109001733775151494871455094481496181563574664086145822140029177144813365523382265974705006723828021997452143606663170463016743930485773920162237251474973048507619440582313759318777933398464160425040162577266611529981522159000852962485737939334587929190229168423237134692511023709355954025174249970336068911550451772025120239284820169124876943425618693692819082734553492297223342586873228527757745251951654652373553514349588813726914842398114121881646031928242953612540543973751809932008510464515159463422670189888064048270192767577812345991809659390522840465367568231490856793986225370814053515115704880907548347326132166993213674103698342725177483614238990422399297852356203980988993604136962425489280421034808148004117169674123137242880857557091609289260030645279073079894038770321802001475391879008624025496231948288659232803907913153792613027205754996151502347407536024714660853214687579913243834857320277957308310118312660754471957749798384603123888997960697846230391398026184805799201973136392072459478080934486567642594865463227307807859206203044780815402129435066183416723816465015390153956419308809944780977494399743657875671577659185990604584268268668564358186210078183185942235869841892967110743656609261365269145869812615888313489094350324284175286181270600650142434200473529913382194377406707263917710571584828833347963960528741300490987285440650473451107728201134247113858434938742781097718091520902842043951577031128355549935554862612587623738412516441212698495571320438710403705877548903089928355911206330693603650220321957832435742627101058161889974311179225296608066832937497807219231137456616483392427604966113812904340662570682987205621808102958598339020104009243516223467625765415202661891347766800505337402326652048031041856856853782477947228883202913637789902955761922093717679176394385221609401369812319661455705088079550470140159037705566773568006520262384855986376759375971888329047834796769899772682464789457179824949833966690743652759541859085250695219338112260911755552555223876170674125269782883688877547748075865937706253731130312032830021336361640301629761181530630151531776660456559036898692105834091952855232861334135328882237174663718836322962309819643616617074967886662084312573681731273288016467309763721237243565529785362193683114967425305307346808176202494241715512992855819554148206274942285652076011190155778729073110749297589837106170670704738936107047741837156274520575362173941530877381594464369767073694114347188379387099597016728906390761627143540696355156569081760540899139341547274905750592556846834590036677340364861162973000611093777624906106498011712541380495734915504648084114562488225811379088613037115511265446981045879867990197174033431765007970938344009849639049311542947954253055335034464262180366328850022505134166895099912776124537808223628289322734754085990368800483836115872845613366616158253712468145433878587230473901579075149631640982048596559117285267197076262462137644643324047288388557534526345654497970118257273592028449752935632512085101260617004440120202153850538505845165628904947722201824170691224130808514291479879282484809278125957326928078781791839974362999461404867316054884667900688653301465679986617082200568000105449211038903778312536746631646129246191735109674931587428070496060152004471193723590682611150433875642590301774679139209974649229733214082710300687587159191683746929229616756173998799364835112211663093100067316094229890894849490818119079393679076133349317876278771251249973137624575885686349370956031268303337678852670141484445256625399760699419043786415729782752718750413314365559976083374820456421994230469976302347796015771019987473694826716861112327072052720558805262958761496290869392556292674150469732215044886244360002716402675536234526148294117286823201017523617724690911551703250401908882267609848372798760803071026834476797995128452958976942909441307781876496471594156447637715295126659052952453869176770455537161226897035290072602805353465123629363377338348586805781270998838078257521281960092942673813247997385601756658348145404486392245782500003008381835006029295029490579040380872710703170616834959698521325909908674240380171316935624812510131754792369634718957419901250653838421516297773003000447761095359885087229772684093262124752440938013237748187579955151222552190491493754118109543259304110755460477747081961103656808789666951747871101384036722199389086261233065192550780249627251204248623670863355779687133939062126498633073496666505416622185531513524515337307617809160539151880486284215449931978042784521603360120767796705715199793450694611645389785961221347635351174160815057179706104640264067955127934395591959692058785661874045084779971097798817005187122244018568991701189921577469863168727093449051868322641401459334095745611452806743987760196874052713060906858599062987798182218007814482240563224637824624563556588521322747725683107146237288522013021270970694919567697872854037391720532630236080073181793728357244066301998030987532298577700903427119304873085626436930917247501100308841019099320185162381427568409596955295626039260107811885301990702549207999255743506054993193463947755889867438103146103421457587679059203254273205133237620965479754529499406664322774308750397259791009309091254061538453965481541807275590407289470605673222213595289953489162252134796003003453411914094467997123350278284308106840592690276735764491854015698114803566210066967750621073215573148488449441725211227970769703105395114836116710644897513050946182598457191645255316626093815904383625156029987703751818989809786316413736766254275074334546486885887149933510723118964875109630948901956192718833672315583278239366505818010884423960329652676749183840875007620264596558667262757709652206904700452254805942282068416517112147975447522112581199302003677679821358428266767854499793321188322617142878676561276672668842090884743632606275947623595282393910936345928559025506060824999311284995555579708686194709154920719378044148746998118208622292105886581928375647513634505009671083027765190819651075229926510858945583431456769201182556249516682331421846250788155317631359217601617441843315829207180620659095286982106926468919170690677006378885255043048469143875139990356590902922011822268527858916718427421852039639419249198713547013325613179317783465779065451817550067456813390641826944622944031535026620746520471772712354611852310940968544272383416109032474869188820683694389049186168518063234736877687667026254132292855770169879858476655132201364361034499852829139140687530679648383369564932399063706244241992732566292934577969307760425286622874549336242187956158599411178253109785027765373439787817938254091808203724533565220515844824771387974368127825486982863568177259870709420103528263018153154036873280425329512409327445376541561983821069711708492079259712090637017670840681439616597861773890104748324881648313048621125273250467785835015173931947220019996931271018641560950587959754378447944580962920709818584057556077850434009308895402619338554356306394367275276667029303799005086270946441166809402786006093943960581430434874792902583630809499728321912613414752687474272172190104779935189053880863818095069514210046137066747999192139422413491737734178563150428258303963951486529434300479628988415858428871969770352359451058350637611514189012395897769415557202068349028813263024225498339143164156457517475092455136364284542652784413131045529602562498519546045270313514513539725421481713147908992952374170916516288632430171989003736802677079804944518755555487483129795149152023621078303432165091407325519155074563720149545871430744001163608411496639062345800388855208912087675065174057733119133721170702254563888311739096533957676859507534896595572359404925205041057570746626568925925124009262561749598997455151486252499475413781705181604746979653341391294171228560247846867693949021614256831212509825410468196064187926219380342431299855349769271394168210219638575679471361229498693471136334200104593069842688148092272489128723861697617362974774198135867780525180186280982057473886574584511755950877051975265485962508032701258654789287255556554466929596142741776170176197402964539285084960381266618125057798430663299066043460487582852821640516946791558984819284933063034878568864400254484664222172514992182603517271800970480512393523721356930125992738619633943769575958502690572829758839294820990262078675473123023627435425941069219388562648224378758270195322116024379936658943467747460264428855474647708155548531067024556281982150484289533493075299136172502955428716477141857411417513477315333981283875568127993867805965020371631207822016080277212661909786838263301321377214766329284359120280203945908435720674591393446824809954994742991806953036568947284014192616182283286577160745375274134330080517956581197696134790796374191200506496066964625579058684058000127320435178652862539814949010331151243283186617991568988047608509194791554090843356195853331763925485614509557977152366985454934602863761192543894801097954108189648075505132504013458854337700715901517494159324953045589042446726287450040553257427100294632343363784359653846730888343198253650803152133683687828979777556826564768855025864103021683875588357331487894923925452339277828330701779813896151963025310861602768120790939430740399915446161096925495111360632857611088959402009925867690512620160013921860865196630715058529796630777944215993808194621198479099593011851677749019464367877498920196562359567212846986675846155924123149699756557452852063744297537000331348675251061728096350446612339174216894607908620357917676654314844635861823674478518036856930212011096938984525945583324613266390442164774543998729905373324398288704319885979119673491485597739774905119216966885365395724063995606571705393052931567441640781061791890009266133140858910842066055232425843227517236252992322204127678844342726682907639599829488869994022144900724265009191132678768689410862377361797266126553211071192235346868702223148867437197055679098957933306497270548617894440190729474349833448955816907283970739478930865271511090679782161428745812418262858963839925128054370541825537047766559915367085379953550109107374027191507047980863037235778397594759550554075286413146428192849026717603427271815528158461888158062656936972947918187615069402602929185420058443404161048982489936769783575644323167548233396871427416013791822345301267305960806435624580145250342795180819496222646166300248517713807436171414450558999042290342743446068860316867471829589990051166171039967186809156223553611443917739391869069502552313043907243598517625676364322154128851855894909832105889349951370105627675003847668524735032033516723164383096109537015667528155773892492779920126817407753790087162257907748210190511262671267678812334866842936088825582827361616130338945749629364545913305022719031740551563594067940946333333862607210066841469713482579785204341577778594068815674457070180531191184736080973815577557750015695685231839394234475864302831172934671320917616737575146554747531970858944938267788308080700738817541178200846083265909919493251884954133898183610327135003326818731046386409338922933761380553646106495897799799438930095743072236110044135887314986599727078658970757425294791418275118595628345193331278437997096060670260489778810660769519740913860288600779889958469230622989592312185580407370525381731485546556540200965725235931626370581446127415224331402497877364255650523117115734776225645040538306838131170678184493609676419720759151685858096018032001237988603957841593165618182828362927229872529278392842930011201684674273028241164668693610520446398823207604085077963101176415989535995514816052886754795069682799172344482219153602114648569238148747535558821896460177192179437595712297236415369509281363947474970314218727837494540953158518965108083617748453351677255576232747290658482078815716673009815251958017035970339400510895920249446491799740389647267528929409310871567714977826563855802329625224313182921340649842664722957964215966229082720004443716067531344617152876523962653534579380297733735632507577201898897186334199614307964326631256602668907344288218002860737258977550964726909053781275077650481404731290061375999592673162632933556212038499814164383221221931184746936543242694084760134636495340723340801103651831824289088157114783898168054884177514993340445724969610032896047341821328158416527759720451839819146022398645053567093566134651294915458233197561794758626398247555984672902920718839095235931335279134627358791571330033270197930248945056709119654702865477004872274068869700963788426906957257094046344272731653910205377787020654654344252111616939859320789979124801023567992095319311960274257593311582955243726517252307778287079523048511980065293453133396309955803112376701293943069380851989579311813737916037259156070151876601884214598454398690884431696113119401116353108540183257049035471680167568543829149353323425089670220853830421893495470898089448245649652256730303830635257165893207804357670721651255632085182941122766026091716938807067562556008441345810731395316901851091103744957952598073909561925919936851415587304458769182084366363682817705882571917409796958226060223918014252381839958743486223116657699875494908281302669112700685014279076625275477237610406867259973639062242735876472477853984588466949757352876396338151947041138170456044508175637270697171231616762455126185019400971330571402128866854083657305361137941397538539741166402616362708303885953069312500479848842579118281937686314886484666834812496300308653841363085456063328312320499100483559301742842069515160347342392785901034524982233345827419422282637301338028850344112220423059327856314794028993567556614118480275995037541599276478242441662160347996929716677508487837496581102841423144664971953123320284111752080183212460379847133468109147002816273559572019262711103184056474151520126077880658288073648337001739308747676777051273868428715663973268376638462741402942012213797963936721921349970698587931882008311760826208185561043502334844167891372382607005310863618435491731901642360106877927823200842978556156144199628459253436048066358382453705907692568800201158016854668029919609159514431939195241382628555336216743332593227704323120123861868493952941404247276089765563378626810052608963539829362126582203692506684154275223086485092943992818193184803206331045331139856092076975117061678254936175770025925453439321366651425741290149181752626037966675014954265954374254979000483877955828407665058355342076890063602360552348545794354216106504706084294330010763076740105420352867333079258391389580248024127777104241510944655739894427041949938648858521394144305870019392581411989459922114459717148263628918154705009015258580570867655522745882723805784675727624295505400373618815518260303652681384243507215334746066118564272596998797018195510293938511307546194089549877368355663470471723147979341131194467241405591987459620928131804544240908906371950792613242290211630690908825960172898275834248174762794483525444692897207911808075952938109212750224301593591477532686874379215058665515326471137305942584802039763229943509374694505903467249943668771681505236490190706620335386937184072879756006039390019708996954003901591994872333181790600865534837722601258685267189452471863542720176484640563039133928757333298873781007610807907642995916715149080731367479873701960873795141386827451293541675701288721830951358400572522514129492795547292275407889944115368101793645017758153947309330463038072946887044283683118719241689200188334675302136944220305842169118700758207740871118857494615812994036739553018977588018259272722917187887699549088557425510977231455217601465170542695558311463582568142628639514881300747920698222680922696910894697018656844902770483129939189545649878194449285337644660499098844807723198427727940840974930480736577578834356529836757128447687443544094006427852673561110549804736018162713199298225081427857042345798077569147650128446320239553009882946994630548812920577919399220887248265989141029045624024569112512481374841785665552043280050736956210318920127394157067823291984377364746068029807491507502269385324422919338968643101466443037589854782136361442848468866922137523566908550925200498609199996696251920553574561142555926506282549649964031580230678952545391574718244939644602562794294063888023869862935319268617530778800582927090450967175624101200632619183221769185125106154242386838447125416679566374174373559231421625387253762486358425219765042893099381913124583648496008807777331448593913146992880995025978878376602261062371206511094367584457619728803764791001044476732610157406171285476248253960950877962012656803956601086878305167905086958995925785698140369988786513068666855949711909932997751932642613799924870864425844155680656661228637692583787143048463495041795279951284917719238618070280474505259558421204513768435843859264610058891724097801140549788431428655691752893198447107623013422996951120601060767699175062161062404001786717000095074787274486596055579455846195451758114991306504884611067555212069878971378601390538738791376578481545524367732637763950090796101971495615551438007365635275767832855492681543042298495163855020017894845922784120613545866307907231041297295224570821771996399709247268963341333446305397245092478697816708541382683459199343956391317763939857500041315681572335694642545600414617245401651298231742692927695642456803968590328411905166583072684922956735723480252026194711545113088075062159159922338748647403460140316854029366391560077486718453943929914867821248591831779197451494197619210622919957866099908160780623608879891232492554346858518882677295464592488616495628044618999222033928333331824759510617235688708318179523154835356777178014350063108524077168217836097519448706209010322139776032076320717304010694730193187467711204868721656366316038128472842278976766336673326175176620073314727778061508968270984353522831239327497401691679057990182394444143082383047250971643185753084245503548272785581116342492287143351051931815411300154639003717300348744288494327043903585852713716244407440279778569474162366163958161465426447452106173561418850701880839635991169065880326664697487069616258790831657393554525374052654119249976547969827702577834208907113171757620541600810368372093963536623828561175766575327019662444273549818339751787437290716868681747259377370921545303699715012716188043035255649193345043876651846920407133266908007250396463399379596613203368223803793794824572573564916079853547968328767891356112714221071892685700453581076252054679596910685652883271634117291591396573898391237342788264492396344733086028008983947096588598652623535713268065665410587266383914299824855642727057878969352132309938095288757098605998890116668094779594095886870526454621078797583914820815680501917636374492618693316525997546730046959304536242694084021505394677148386402201488646669449889888098005463828311963423915759889411451342285189589296402822767959031376927324302935356732564293555195488244366639716377680183010899362147956788817017698383243166614339066340503632978937924876126649733656509266806313040694108390369135912529357309576970547107916824395410887324028434516221272845943764906068485388747899266501056748922155205301516741731755044920406934137418402790645744560898065772660742737902007409125675041087374447188026934496325186022152542573120402665825241909888982584772721524033411864680890121499367088434955081043869291104445896311211214233686222692706639046587419124921584735500469509687552483014800476011104163142690083865862307810339609240679808604642346745776020116787778488229347429275269899720322047406182761368235728284319603458082652779631109758400558604348209215876507267228165255941104077936270984827241020665312997988594920122178935946313948652428026753607116490914512172859372477611141875957420128061162038461433480204483256724170343417970265828015947791827205567998383344976705138397760596120937090034322012780595871311940580334568964202787388698731505537945144594261849628737418600466410992279062932581578670715335085917530019533987111532658004293635114337300185768149717386529597344180995242039404566064196576133713842555114963983539981486776577008243739863198328779140638093350230979439151611460301301189558589717946062817535203527483934483039311825853819996800305873392810957386208887720231784353474636168525963030648843202519221435872895242545800968193842433387245180251934525354887728030059970462124196196184700961757704543926203347358900069973376485338483629022519261199594116547008183046331265849680870490511804041687172027317332002671314014598395866820230080310306643974016231181938430353173983260631850362448769378669330109043194698875839012098031539523444154051044933079940823084803611270280340330123813762333480514230433769760880394945064655317241152778310462606976668680004413450895813404440301058304988141691439315498202463848642595412506978538742275031930680023810070472167876016664161751676143043771968818983261823998886289610372882602475934522668607201540959295981057778291431454589739446755071482773952888377390526758729272068548386767310773808379740434523212706335578010932652377599837439208177894740945086345873779077626906212530330184716599436713971097536341935608393169558318852416415306056642989717204324859092968911685126475235474512365036021961153430797560351447804242890452763100648250511360751611576322176559470153130773126630973526433967990449070608666869395467430181054335235297189055293310846119346905420452889933278739427580301311395994818539941501507733465443182048836250981451976094434326690168831365551124785852931530071239316709398901178690015847385873673817009307090032620837026131535273497432773534260017889565278971268312498551412138852506926943311817736328741718168517685987411409395267712378525969946800293443026443829605455999853159500326122030774210774928024223083233133368917876420111811981297492988560292330096798821373191590071597106421634764807834941069075088186295784653907148622365068490345114823822362178976406431269206008665141109282906779521300805863928808543398569944229897212983737033726640440987591872984700294884980384683502928385003232936053045998774881933716878134748929000873998397076623566525964562392631738587610465058275502806827850449144108683460373568880555021933308792934581509355989874089821622043009677245053193294562039174086012764950764521165450573171766194590509416802245447196739226594295178102431845282031694998206483093946724035138016307087995541807721291715517569524097191970688660462012365910882452992653203151049224494974594920420816049031826459080814772683055702653109545831474439512585808552149038953794636470266860740860552886641814276819741357882068879324373038846518345475665648035275387298388114144830847484030777926603200278028839645689908014062558392589635622673407386259810898807786427939276352602393216002683975854433296251292555862966085268583413672025649445281228921106792320298745903180925233120971923974632231229809264565538274668814624038894154713979444772864162797474922198063848725098173392753123056300573220781850908757245575900610761619015621856388246336022793257841684510863597772532122268685935559510899433759866262400714909669725193602943710139992495229191886891340113398486195929831622917369606116978487526154837839368297126454057460609488229481949103090882598396992216437228941743748738066073558716968207249976240396329394790605147869171176545185031064574790266118829067939195582740587462922207495197540375583437275098394315811775277463059129465127767542498968177105554759141339630599038680421544945810159959878334781792342566956236084483508341753977188928250025316734347767791124747346088906513479648038672903911850604667237327568893685800052512220396441046117276744246162056830456875187301667248884547086280384376567577917562906551908501947424390346048555542321350824898448736291810381082517385266248680991716035544803393330518461373716727356208698653162506124254153931589753458483341431904471015595562150698897416508373317450827688734283984242838945449820675784639861502984799024652283293022772596502112225050605399364999735641071012435256246313048118379587373971572411354479635301123574841881984662267398258010107302154697036563434137430438520563146546593458783409814882442626072510375273480723593171303004185264824290626995092772432854555332639424259836360164407226858530310112441220783260429055307623184318103936177055678272380948982154386150786791130063188898354704610519953566489722711039887210717933191502620320464275898102480065482347735597194208022636458097277933911956883053981101899063611277152668046460586686320944337704533787878131246158662674219666881190915923849990880223081196988581277943433086551986287352645067271767691484405641695265939841222778343607989827488614528497242004371922257270824686402540819513165603850602989274319067575066267855411409378917600384527167072572443371112195684213951592429320765362524084608257630544679508747036064244158286589116133464567372962379332167771835936398282237384439850214141229181835457007174391397308636575637721948724713146186173665243579448063400217903495092675744682239648718646295607682660390437622849821539550344999992803947853807275553724249143895539296255210237738618557516520305960271220812314239828966360768089078944967231826651380365558397995534022646306884107092249387809640016993257019012504135358147696675226208651519487411823362684427679042607682061328433467530421383540984402132591739661378103564055366041681576169088912861268688523023144960029322873850887711515275791976184286675787936765791868762879241575093527020980493546111605609867484771206385821925046892354306114200829819084399459061689589267501790198998682040272744581542332721905078223976592524728184077463686005347393229267465096323064659723847600201899480628144920777776796641669635279212733779136423125899141415084925610405971928605841767686503067380854867588822225157635399436911841007165424892092876777123933109288588808283856221995096133207499408023780412522512314087932858148047997697444788502754604186348979204122490901600896740024789029247048967261010637091352849664760509416132251216593292335552651866040702979380321762500756320838154768413242271387499827750318617918167992425286983367325704595733482428088487950936709673890390460117085068139187692161980539879091550603454073056799689722601706883276579217011728311084361572532686105885500351416773393730583158074814009141252257929910723044649925691774988664223225289756037248730708715104691020044387368017429249325326862342593697148675312909743331175929474369777099757770597688833082911049772042676748470394132577636206707952370073214395070218475878420096961618899838296938914944426155190892876541089868664116744986701947049085454606619421013134387801313814495827011178998132205068591669717435017517075675245687748233746894682097566520759601665100816035706383236840629959744744817889603281935996486351855758332148188344279140809939010863540989252662830575258476401406532745265266456945197998474808748383503884996549589037323730530574226072435763671155666747061950925793610893697735896919417655461680615026955759298070303432877174083900375463811357627191673476483354114473004390313096650426018947342203518754459775172319230321092947529695205329725917275241147526287518097934700655562466657384860030934498141303982789093040412141887038448013288850156799550534096531613796261570092412656512767058586817027811712388824855324761976066294308091558736194878042637752541677792159567828581538077068396953084387955655160199412023766156531792745177205856393103604061700299507806498448192913431296164843562728174320908509068199392481427395325898959391676406132029698520613086960529492546447443098110894911631053419394104013393033959726009278047947835788015861091268214881469273252006250051024059309494633540510793538300511941164742497472297023745778031499843720930882722599430809755881018881212490302295692143198235247004078619561810907994806304468804664305078515195771811469317806731685782590900398839343931557063732296120596357702530444905310439028533146357424403369843271589064608784046386960831414227539907547492964621459753198450684162139837252270165983001306851633987988850181053291205235246399247501943303546714020452515102655695145970243690877899149741546918657491815574211574755633250736776308380137464176359980120049839150536777249054217301229390594789188783112946395233571744212120814559603200585275316461558959699666867727945560733564227442818293034414414057505141916597915445223235690335336338117543989341523445039531757758338252218769996913962619706103506605729829584476322506223191653719338090372262799610018403186584959729793178759621420039703076898502799304259519864083802262785773093082086737299450789297104038317491349357087338903399266995243231036262130334788533725406357300494415489086154855950653481630444554092069982942769890060642624751221910105713508775274859526200913000149455191816992608425239425756257402914277815660659672766188122801832071316461566605910080597113178362476522156975968841162294846850070408639902162490892111423579754493680646824118872505563038882110654572647779804149959822340382882434215068893357397426624430415326891472320354218572269148976906788523319403567279332437501593040903457167936313419448861553041644835126833414759483854383543960940145113441227141316484999329199991344574127553517005252172160429174962878435015601106964701869448185211179269598889051597338703932251531263230225225463192697231223435593416869500559774150429526339576585428615012334330298541375469423930581201383859568248882375384477619983944900108465279545647607739484054706561991915270503040123001387185853055973163260369980384796351600338382412296388326175669881825692022401243461141227523875235005261669297711667207337558370388247159817963693475756171656712707513541793143446967512486677699921238849971006175217984852165399227462137317305905154583489268058510344536478886524209716066689088936082043593512662849315481914424290985437581597474699220199435577222264685314122604361214985170979871405041342094452236598694665669710661416898504105279743064957379922592283831379896817607827095914028812698793807304871809180226288954123417637657030501406781576097811166804457307671373007229988787828381440919989428643091215626721171587509429580312390109613478744179056646375326481676931341973026393823630401993296009941042753120960524210242914565426047832242716811102094541677147064328648124800595824916932192175378615993318673020912122063996178125047760557490605307841168846297283192228662204697376157237627171679229836038029269536251424265455571447598996665442205279154293781853245478669163161699123627067264945121675310688301313042512321459125409439841579551191173986179376302312143827092453404428173216971095213932740504459707362844208105859785910771175282660492051901772574717461592889292407073010659129096748289270787872768762934755936578837340647256807407199605323935407497367424259716577466941119887529120704188562792504949152127157118688451447331136028769961922467187634912717502108246068876549727065441230096275125813138714704611217944938089195551322480200329152991613900402565162784459868032321701963320828167514842441792258123537326706118555942935336923536122624703804449852737925464146113336596659618259082135306166547461045310957816263244911894840520276462587451333483567765577072854515758822737909122704473003354700900597442719587846544489285852917118988002515710322280722995654503456303823763883660626599385949902023522656439545034396760242651140508718707436915021239506728324143356432628554461483173641332085080384004694686761901951378525544206377202682728275458749637778320529379391713368859607241151926900963853315122987224412759160814155754092610571108084851484282945915540877820171515415873294210277922815848472762112817007215196889636787219282983913937999706787867285221269657004637555788202115444031761226586267734243540883868797320378657765314942294469919850366024689045544273718432496385827747126126096880820987962213872315961354179868783768260346998269578956934183647116950518377642450762723765981890605922775001652940955821292784022497911910002675943780788079991472555520105931879914232030183439685422472148624906041329719822636004777838575890427567994368144368048956121418287186949176036747958220126146656822821872224458151461979773333477012346323258853051393188576885426205290280951981183774679204470820489362474600391598298555235888755653666382005971395805348491122545086748010266402301007818289190807373143466500967233249284840152109988631906076406597703900923311198613077378159313066186860765345068350171811283922166626536419257609742051494423428046349337851906900944832566622957455172138380425703083409234939942743764019296048899109805204024433287309474497864340349897676895183650616501991013394517379030658800385523430016734651565350853027153496678422546031760618640383553703915531375855148638077068915849106282933189529150157907559425766882709412772515504862365007813027397118234052932941609418146424327961914292563544330738123891262375356493588687735574731622440914381910640364100972056735339586316132635272679152224819702881518286014748079553144886061055078432545149085678298713340451764776710348886348868084262073764130270810978445406987610142821446003829840081793856021760318259973197341714414953518926813102972277465237553013885169642906827302043026116781781438871143821310445066144770678393136599831865489339675374462880048705145214715491162680068831023305736123310419913670929079826530686446497940650558021966531769719438112630381365880095635270528790154975679933236645450803915247675983455310235260597382005267820867742068945850135159007424487248901505698338043245448620582883455251962884620376862633077533160905896577109949486715401729596496034190089172533405303944538532590973540749985540632070304697967500721467496679383736607694214625864594150962747560577367376700097117698870121451789027978979576914721925755170123809967803460626075996193917124104890686202397094143603875317397998831852398356397543475390040942034091806187096900040485281243321842770777100226201968011636859250359936177133983355766952687628638868777380126697905421887644485025260830181210182577915734655533836169070858591348147538106177379017446013693679768806678262050993762587507871254102433411578967090495485032831487265510597921634979037157773251369924900139834612671778556531257707725287120890301196712277009618737410724536143956830732058407761896904576527941133131979465792597795326936695090106003015947690351163962698853386687210283169587063275848730165964658070369137298392963939109772737401929999648634721122272599638800976867475309931326280516485585797020290567782552536482627190087631834432639363961058140487480732489870806529792107788442990433172108962447103583387795152118169824329036332266532810602087853309593754942863315400316188424927648496079516077370735787872489340388547743387889885676522962718754987536053686008745464434613152642676878098315489685449159887052411488455481698896415374086202739691513354843361629309173539110766236268290917989264066618554246199667447005261719722469299728071786721850095693635027595417472193305112656433739586047657094202644694836436023116004038620332077087155525206583948535638694586664539978523796467624848664975285618405237441481999275051045682397952577614289476331521980129538073198172376957204318306519837570047012276753420541693470055154092342391162593539180031290192470704006962447676343664277975979164502173117928739024833817276776655500330187803075539948552866369479215480812633917614845581480476589460301056152164470938918340987399098385348619238924828137979119471557555772932083354552275774021560469252699380501654352446384893555745449139296826561713245294463787188637866250061095539366477316708677731280604318392901952115900384001720064360957259010738249461353241970314208608231124471521038504459905859623839925869133737452393625343556785572734539097750625808027632237328037678437608485137943939250136616386589308582619854609206709273165270890445521244884994082771977867997582181217443255592776178900550485953860549865403801926455560048659311113521861760737684085733742989526447312451945956004881341199298370650018830554420141512369054963337017613098029039446309003081267661437907222399182278175711756755297306895925265852231359974727155139913879560947641026473211835328312145701961098801105401222875394947763648598887532450546903780688405152301584014443362266571758544659073600115700936321910258879526559509785526561078639376816565856807022509770167910180267938287108673359793230897059351294212840205459484656604634789004261070428377056491576617778686888676003675018017185813814011169965792062288472348581429502969314419351072457109320817169040874315241512887797722079439694371463351001133986812790790479423181845387500600418564363110909761952789252241192494637134078013640099488112501195254594535460719665334030592797755902897724972541236451160969010859070474539241169058861467714229502335196095212431143499709652984956382855275414374377283412610261932646298605483927082708210765236660265245284129878178690111231854121865630303941473590423090829008491921981851535628601547217389260583227266607968229529271190770563021424958261379824277351579235037990752901828667185716141664766115348180474428849385209089177305106239499750115247774995416934670449743664498497599031135874258435487170003946001214420606073167126915226078810655416383881255669442336766181299322463879778354459825993406362916108277258970535035367908685437768473034064670842177962277426905682847440314523942839786164476518899913122523191119242117719974761055324028733583628312181065403392121199870479541172301560311582593921001375722720569165294408529793705226929558322801740297636879097502979287009200914165670865257770047024691131565581787001235167301817002220095785097866055092904726447860357258738044745011686018615039732532941647499265847880841777350948635743039222880032814106515474943360879429054802740565971755786798104978349766073528781238929021991147952236322158929274705893036461361734701506545737889484514580342051661635668808611632067350614316136812902238075419334872545403194048235077692684980495657231071932157210771454314416728781376722677292671321598047047498380806806276113093928090045977679728551236389464013326849648438667323364298941400582087738938055038075007769032077661578344904860326872641945576077161656127511001142249069737083732469414111160974842158505699074342061971591654471918000405596124814029064299662284928875105651793225821487393463743565618452857832153430215594251979579035120292917533918875615198641340254656044171524002883937201425739407241210385442319376755036098439955634876769122773815204506263402056806304821599026964026013038122473111473875237807794035472847752057801411858187607656693013877131204845126504752528890918568185491992816430716971949031393247358030679967810130860625238253754507331912003517255150140622728021310579077376836127551559391662099685318454108879636535832123195943024901197714176244866337375114997050972760007925123879817773040018217032760456299440103901747926799667240140699083047653492655271182155851277607275898017433012661906901821056692646704709173334522150155936036150516115004788343635268288840664435099795108020834422086025782843708176169310184817156603578687929581386074696803933987315458569593980510528012584192756680244960184064966561126351509111269087726587375936056756186895543267928805835680971704847454108497758007890928350724086251128040012438663026092946170620669636582312009191192370512232928945034739566456806696021067325892810840845474844583169936879426285309477516151148675897603866399060333982472032281147005390242578573503840236162826585133787734512423679127446229546798104746535384745011646538896864940596350994438399912093282560292569872966654485709485829045152683393752667636291215906955616728602343865097773911671538322015521785674676097247199922658768681186145936038370379489424007927538052996981472380234881677979983185497469635634323649628545503013244010434764041726766094169073762315432414839216786942091090446449465866588448587667816188655948713895618614679254565478730699445340597024395208194918814102648973201902174788107099507363725404391818436752654717226207342455677315687530905956000238267773089523188760221375927498664534754429655774479415143031977542632849938430925384857560597146569099195843202185102795710592840844112131570805797377170877060020929835906329150490445664136136395407940428335190330016167769227086041885744037300737804691132255422661323164148056252348304084718297638423450924967531603501307879058721864216997040736575167762595397648824092044711780654886253595067626216941866551889288008182806446226506170427056437078778234253938487548091497378494196549452305364684884292575235061410855860876432577372759570955456755553622346209079352442172224133686721373105423195555523182231809835858455742465271871400100188401620838769835995927860356291993168776549304361657159071211750391481588651173229886181460331279268132240797003134083889422811003340007696537446549022916699622489414960366692504504008325252031074595409129326134957000258418939782967016438998579544399082857163757107580363601269859151420380388741390398305511150286846004431816693971607986317303061955044431868707192472575631591743226992102350626844655237600745154482878479166396844025482131338566966690786186550118224348560018177189316396030101167348912892507128222836895803301713866105330804579337750801850834712142968489781253354462621519614177901482380665067386567761213789853037688810009864211969997620486412098860342389466091652041469126531358300077795511713418055576627843388444442583989822036235424127207541551226648782930834623122933119203828868244653526655704231627219532828429234366083700061251317400815576919626726371313672917238269803214499956473234989374081069183893856204467985641174876707971976766975888232894571696474854418035063172730254151046477522367354369417025501872337772137538027627475639748403485025335845522225284727238545777294815842631527978696737754300710881980499333228045878629541199908577573966199667366467948083924584404019207875326280304733528679855777989126142625770984898208755388698482281679089109841704159820494227856867540296728558902170470581529343705207030900537561532124301641588670042395669235417760146264945273805668089995631856709037049206845118799450070319627274243261677180288923431157915206100480243967748273505617588787073146456562139768568616187495424979930653094318173270164497807430995321207616651387593509232831334828841292998946771785776765942375453540254557250031008139781839090525075975518008413498436694390758341348824517559848415005833821202382226099035623799550887561700990078125412701683720861526741859309513906738595210670345891155695683772495819090356920194131974323520862038906149495962527198107107857861027799372291385660434401539397325302488440592914049636120963139289181015402359658618306696310038992575568125011034881204624121752489669525127259390371153777162989561614131372450819312249435876208637388684606398430700244444386531040438555557608173510784215039447835624715972529846729851594263806434765031570643609120186720482219472069978991907713924158091547728339303090326931497444262613774897623330643141225387695137253497873188674335991776573006944046370435841741040406422301315899354271243092600898602552597793716314998900129036783000597996988469425584708596972428142592181558286204439972164183749849887896163620836659105923867104158575412279971015598970512953094790120020716763991077026514986514066580860256998725144384508416294026480703060805139528932752642056073999560228358014651042748659630426330226683054698769806234017629562664330225471149050743114403572711669388814311754902263985954587478408280017966204727621052554865041807228167092144824329689514371182052080806655192033151049130747170283830960706378024558958953619284737542374623058986842334635137925517362899709563059089683955866562755069691493680943428311355647333386854288759999207771673906523894791186769679716566434490524047100424290870480335183611083713202793250493847551069251864540045254982263878897741683989574342628424112249598180915439081437257628861434494083282832363353332390401224010343145144664225926233506006360534085902062427657032511257855991295130572577871184606325898873516980244743295416584744646924408915962565621311746681800511689659221960979295280820075415932422424497262368045787254692836723814652011328264577933716548141006684486014867602846646336406069767791998986605973847043013512452088964288026497888415929643426211592631806539083097304458542408349113793892953758454220982440666994094165212591197442869483863992166019666280976005144305478793038444102922168625979596929253051414889255609942669164995791478651827162543938649093063307858452536700800566022789856832243813769047870288974888053814797106496672874081744521855611082342321216601167668177022448895658810274192795149204071368083828956392058088711487706476931265694908841623477085258670721630811521799739331339120196434504138489296502198058461950344640669275945737187491631527540518745505598996900835982591132215365188710981252791270365210847420980134646129697738473780520923342892722735100679303817192176058759592683207404882406145908238913812548971647903775484380602827044563554122025214737191689846723074192461046853336310699127818507952126939052595082527935746473687429920343884624866679152421876938704967806623483420804196826598431839570278238866142981983146361009130903161767342299883910479567957741064897463196204218662421133486195718586872298436639428050594679619776338710895445829493983507648298833078010787915183909475938385703572590633025620618719464082361251195947505044206108652831399129803276131992557808677707584188325254607686164403108361164606543320868652568720790089471809435611247148033264796833347709245134340185022508886048436917935253970395336833826574218624491313146340963277192747884072957633151958450355434681129046176964945359688578371713009060289707249828453512200918408528500302601412541418575697317406361850125670638712613390736627769178636838405853313909922681715948317377613104529664549172909091050759717406016451603298926405923367695692631612439569239036706249094275949871004108467445360577160713042266177526094438023704860244750347120474823923705591440723730406728829513781569188660316877907569384330172252360546335291250184620212043953307013001082159261270843240996149540186461672188723979968889543655809550635986899611215373227660251325715384571066116859660078280155427880199068769386802098001939761644374223573772670546772827375300792231826193314284574963040147640015574266502250448789097979684000342057565616756032900648118042472378875152432287067860890862274042048344841824641035946736749714994695006550772612457218276907393205254034479904227501215575707038025455544187261803899758430350488504926210229455826105183563167369865953700529220749447561486857951876241261745552337960275600762619170073261225261922956377226422849667717944416208899540475585709616041654666772278697278060591216302022023408726856427464551919287208679525937689953736303682532090901054766277837901072622758799406749596651723173078208856231584988321587595154228821758312400115683536986351271597262836722941954197194541741783655097638115734139637041239477160974464248912397338232332148532618354712686733817441767767198146023689586664832195965289864578820201515646909701359091827506951598470336288745891905866132378497908816310040094863774293754299135537539372523928609275086547097583644151531102242516223314611950676884496748460404342882945305568630557051412720734414211871445191808652286857513355245510907085576316727542746183333904604848009221303159020613148682331551982020747073659398717545831301162645516329405907306211814128719707370535209338772265372083770844067599159580918460128559123564087417377624402877917335077693319304002042076840597529958960632566396279385224858332388556504291557502906584158290565293483069499882386979843621583456175042982417221538558275762536145854027664767077519562898146829658228861912215290797859909768521440460033382677151028815477437739325641848545389446650000832497483655545005944363389888190817014681476870774349437425348625324640381441741741809215720454735963774050156236743025586063914433909329901882646711941993091529913141449288741356917441331639383002048927933211285058539094022662340212124846756467208824422162856597680208650485374172319637848818520253089142852160598212798541288009797697273674261549397838223630414673124859990414540205723918578663635643253400679958754902048927008571987595314514367005285163858496049798077354930758119260938906887171579451307178773329872038936068713186885320831569225913004128549863908822339837491363024319939634324623633870706028770060249714489645296807370692466235191315992309688759878156639185787806858018210215712825587293097031252369865825186640045704443361696140932120945380796242536042664806813494065926313759363688242925222810070287301466303071895831350372915820974445915482010962809647072932725802256970528524537686309791557974942575414985127522473216914646402288777627928229761892013357887298668947159431267884070720945822249914574083053378754570516287941494283992676268066829408202279792407481364900133746291030250984868987297860750007720893891429400035385200361843457725985375507092160666996168934336436341134216011484845830414526711805947202898454025873367471384078106842375891249653375325142147973541221877546569352383979815608575362788772486327807928818403995046535011894795318042837039563677338213656049551663587454365369386822289898532325175576266818819141730978611066167148550268473370929396598221328285089669340608239687737317318756219037204970498174405833417910086082970112620968523456176192483000884469856110561598462175799203089263466480150689949206561768626596154784805202570184428471276758688480742014845934267508147679496552063216898701392693697331546747797800664375006087239838691053687893371529002153653310957008254853109183395764014614424988765017716247508390589253625410942100184384153084886958312249360835038624279858962464936060198375011319160217808935179888071354720479884465166495179224813150052988288178947555454589299425396299825744862260614669625575514813051882799733506726720201977365309194490136024698525836178917490957971992032704592180331527169209221185411024036482732395629602492699738647957720260627642665983457596099901680965361952641750998898441090669611792842070476663937603024012443172815996160990155265720899980986543558726018797692646161377673637176311043360658693715407597234149417564943787028457493532413757398759918492610815127051909003397125974305143057029752395177609958370820871619885109944744530614265639563796182853421488867819193164871509732077859050909882491972794598852062212654382740489702946605473755036623676250824327781027577546882853078608884311327603949964234522441750602930632640999681991165570280414230778413223812695319885088394987683473471829813455381690156608025719153043229289171129118993498649542950774275573752744383096598373260495856856217227801357826123563761553095227462019382082193861997453893140765700387284126841941110345673652344957991017459121025515707062751584126901814541865919333208013751922149439131139032216430781039834549098409778991267102730574958335888411046076247402866281367170630859189551194538643498994306572960672744688752455201975931066004257179541122473503023578692947191136164140876947465284669041335197371446828637187620413607078780914967785403822237903132593370741671337667030007417429788981094207791760370523943221074625053656121089391206374800377785298281039996198236674488865485896217585510337960268903829044362011793066261410396857385775732946618792041671739871032624787554322674707976609866132882990768115935656396463327320474173978426536919919064671277819469114297696011851147123991624643858174696162016532038069041851662283435164853280008752728912546568562970120149042391843128848838966322603326649050462542451421534758411608198094443837348883618696588170616957640942725442813892694234777051574762228538600021294785887209796416284878482340297862364515765895391894495024129195137962793203303723224217632615584148495451690415048159488453264532655365328158485236149911701749145256502067388146556741836776601362288418139854457583817514921679875362363022498665042988093910269971884880259702170448590302025528137614336727300023931487629943329420875393463751047952166375936948592854529669238820611960924010892194059370350390088948956755436204365122381350461223237238286685607701214708199340063250050401594447613733029311307264873742886534301913566263560985551764815742058532406091588945536883380125970638292717859587913487287514657027817506241144623276165355642880761385554669534964876704925982639004790239851570011297351042273498039793059489321773137783589464274214908281896075753166353047413291676672609581988136675193856080070834459796944854118745963787957051868838841002457530069790206747022189524673306296533034264742525064377036653579617992723514016808825723093319493223587769747208083163235503230537287656751974499124331073478710228325154346865314489157001857271471357139528187057440399903549529282198419431217510760123960685167155980095924811323309609727752729040891932304513819214059548690959863615639497870052099940045373734315673549081270370451020058139440750019579839815341237925495441268303351010098329406869316763148652218421262975035469631880383722969327319636974355206493554143283960575776149687684325507182025989669001214739663412119016114515920887272250823050793294949407998303511743913998356149952831769874105300919164637115760803351151782354475289095166966867720560107494972800385989688969017595965163208359924965791871531665176554961233053132230049037980289258156588534690559204732022044858215739149424544256007687487596319638337195489218034842578215146743279832462671390115095547350384512270674416815879531468367990096885035267228913037050348037255164751051395011206943032618884483601293141451326742277449020584356613572022976025692437083244147364264168624636441128214866823083278818849476257523147597591460191183026470326536435104862872330850301372987131305465681671971689090558799197923923678360766106913972915017028536707056917432979167349700628239120958214193273327336132704638497897116943686363174287598944179597000515026594840281155336784489289098711127427001455697718603768366257891012956324942173932423216835659941371497063446393121030842651734781946076348076866708780225606083399819685270391391888624903967688462013647561842453010941179542827895066096278671598416033383556051710663685639995451592029489790900201637036193913366872011588722735360170065696065146447112034009430955193877936892857165797994570266175980675065858431200709785880439522089931561072558219037389043825212085589340529626870603946308386296435704822473151198882326496512339260018745058722155842006289564195572363463233173613353963598882815416324582086828205177181267423000996714555693996321100979208927939120619892522787251770626356739067691507503627904959061701902639885384824227979359566008446664620811785965292002397001725732129538122295857247548029962280452480315147364447607005840147011161575833015879860256705328696025037668589468895502325739606311335079006232681465896006105918344498176269468436062087463726002342873104877750971997372976122204844883615329681410408419152731530290984810606591052412794720672167785763850341333535295376861634764939398220611335116701808593374892009856260216375364576378087307987944163031329331689543608548188271827910802764982430917005189925637772067190128259564439681454972119877536246242858734836672774138854707427898811393103671007402604580950937400893191455037159643002207987099020306577794806331507827894038849602768786750115035265999596539119038509957541361864607763827610000130467442037558484194107547431362832174749969140172562745801909830730814598956426371070744929318593359949677845463975298668233006626051970529583965549347879340768927298238650997283368873094251447752933255301092938890950596216635006458516826456544784518042152710266414547255724357646741259150035097344200414013779642530276559580032779210917233890693802308357000745720207750705132076853676727266929825727880655807739181938652629879512717484870231133907881487970756629773976688674559502682113872485067326530876962603263797788381703916922596707028928610723469550137089222737241574735214631186061683329642808942710932564521785775727041741046337092149047755098929158365623669635871700225474067206709319291129850498409011874970825565505136312767619511823739310178894051955268073831573270199847314082301012598679864024931265299869837067517461976129058641971510169190381130538996259154405897798318811184863673351806109642522933420237995079874714117972413319497035212039022769076169399866153924732308774393319938473934655496024674851459561089383214346380443764296744780604454286117723562288123545549385493674703183093863005994808100777552266409858069097887137899895377726805593106261583768327022735695254816286839775405983132188107209595734892572733360710017737373222157250624555407636812581820994564333156644168821112408202963242492715404025755843856207997248137254314797916450934589175282303779416336623459540827035956674103420583006512596606761057123700196888288333578265256540858006081247617834612134347042659907647188529178816559876033666059572297206046764145938405605098500386625720249999162834534760121409575756131137720142222537999225819263094764738082492105366727023375695274751246757458565647543718737029320380816471618488175749284563980703605929985814172070523914555816331239838604164837220815508134083848989010836658422592702731864958873014915475045779865601579496098692585740728091612374576120280803782896973036847055406806962314950857658578017945769309546748928910724172699708782871079067022121405375334899161270948924726757234421019299571631725167720268164511954116637913872902026698945220226701687847434206535929537165547687146975220730865417530769550287747996569442284620743800552593542623446811872966183544752173259547240359911549903381098929253833230110812601119458291324789182614565900570919148049889810641092653198641549154390637115322616801391369207790311344117904493333053286022248811401118312169079855555276527701296897079941529344075774448121521583391480732658854902773929189469443022306033643612435270176598869780407299729513050264336292299768597882788072738423866434105556186732334052433044212654225809220261280793778683168093690965039307185188695755405355192447401018894341851303637710237191654247385569772343454416429294281841213550561603034041519730517056720041525484143048003267136493291551004752728863574315627221212482808039480492339941483316881684885611424639856277212489980104692524650984297680028198873891796716159975629949081031809457765499300335337276602898604130513720881674965579893856464931254930526179415435793243996726463822312799304382502745704615661222802116022529711119147260479067911433461053291629113994181427058595694120934870532985957733245015235674497331430597803470759811810499626483465849894290831370288242464076704865819455401122261664006720974934773543223660789098279362918017865975296691604913318058645441864901970053127211094867289216110450499928503392382387342772749817106863966255165054500777729763352283919093634166268673028385977628548811906376571415674852290027641300722846462477660407199969461300871230969816961177640245880240401227741871190382814536408787702140506349204568803866350637582765214828725284091667595883689512561474401124381058414816929696894230826977245882662796879700654122374911371368351827381678654994990878966706944223708785944703722874316150910959663144646620116407094560974798490233636899800643991772845807016680685505090136287236869231137521753195913260368549107927085228322607941334284484386964553823404350736751755279284575999389708406534241340333005965422584519774354931565252539490407690549755357597428327073926140502902553135705903277660247287330937592327818012180575487015484563232154881882174822017593325954845123864285456985243794005564335924077573924385404234367025366309693429786574252670299085732345216756171012326144905951008922023440119101762193382553485541451769492340416785049481308110803742152508329816631503440587820684050810797635114778720314049177933405699624557000510069303617553867986210592211374960174164785958145993847272117933910233628898746710028843602105217003089214638283464201724933775145946184517186469384244875107704803310585736274222556898107835950568134407812576727646775911266161717140547868269222133507115927757111809362163564007031988615279154971581531862025581610360220883314062233437540212794423989111514826176145675982849412918435038143744040667213202736965590946568877186755764689593799840342843924364283138499936106455899573082175240957519804075632248172783719391203193352009579679885408662885841715865402475319461984784491563623794227800848251900034218297250036807797328296538273826827096457788306290732576969659258502247883479900089277375332337973919948498007945620162683435293070826113915081540157386358747910876868193306223403398361840971289598187756260232050900908302327612607842385604762399411611431991823285572303502563299623098798698137219873839534950880051105650255198307663100161926979341137799650871699842950607343859928742669282132580622656104270929855532353319048429705759791802868591124267813327892000130663733085016374578996392684184324487917504059660568134347300211521273649038146014660175280495123235652332300882293156231890747249051812031716773402131424782038610674754918456813017593633682325956294151085066373324134586526263304427789203299630116647843105578867496556019363454066610798043443310176040536965878782070117783536645957977065009110513467180619645626804589285531392798865448871829236174789553813548224322788613243887453757306392553505610802203556061801658011311046665551683362501539697327948333920319912234227331816191361739479097173520972544418739761616799544915740666422638836210825865482466700004660304503176908034609680389374942128972446250737237880118564504954371774793059010541330915463276228206017617772683571994994721000858886777529485146183283002216053160745028622713940622575227153615311794832539529555274244322201853841213070608839943729003032416962236465006267920699801174507415138856917224988122869452188670036554614878401809190596846415174099738386440357230697641652588892465013332801059577087437813056262691743389766337468528759902518227169800667136664670836163527267628164912540054473243423600326693091089939376831314424219738229932297889950926214542760314239625427123009270513125684963446486998649133688494363908972312642698566276251119595330901585602433898243060622094212689895503334746867930681967559614985279733168893112386392815970487214631178489894111677299411215355659556460225492363602976749735820686824532051958250773037936320758253485424479694368432395830022966480319451606886146924698306842837313637643525763595735014868602195436541406420155816888449682658811234657863025159208443968729093730112301883200824108550694627475585072188198817664162535328521993678450918418242865580308151431912471706515215376856075425296376077676679035534042068195097143696109371782500104034683389004723683579718871817186690160141654997318159390275340429702947824688571580308070827159527319883957082724432072941954147737616049636905407906624856981921494174272333670861192262439628650045474210037748154748368070166212970969250690300394340139531438843728513614679489420220244099045646849012808494223005963210017996731146920450325792215356254837195364557130519977003298496393102243102118051197917641211017067612037317887018998336563488701928888753021572787564683650420211448656532004182735810105248317903132333099948034930594998091035908733068342620837533050805153473157104836554110185802893871476463972867970864817551196744420270623102885334460284009806427363139011518825735450870440127880320308804589994013928578313703201463116900827540841631613701137822817589483075727431871266301369554064970512401451479385616160726958755161889775922009372549434226302666698021905642494132971364905845144607093545770533646192702635109173444187416599605805072176232237067052769406459882826965173859674431850493508870977884453895550974642991494141574106330880209146027071992181698182184832767814056579803191786061061546901475073918132773740225758465019336292717868441359762094679441340560979835252532474954748853761964552128720214493395185716779718324013615168083394812033864776832811535403676188048711952576751418449881714329952895189630212192440467837805741397216467615035218358175419598801558781838987797647526758574881833126416750174981081514395677780043039165624142126218301249781398996126974931136631245345431654123137024654467892213863326167221095709595677587478136027439328252586788094319018783178688516281550666659348990111948420400865495430600380391783279621069720226191731013947118413523826243980820380447256042939688886080476618148544279243550226176043383037998753249363384433796393051064572901470335048442515082941002988571760220943603040268954525390226415655472296744406981609957048970618575948306612453968615335485514459733141584882306450872906274746169161269381122724032455997788502356765642104256352822432937822784133745390632684172481129474777303037433028454614312726146323105400535342687429507451607116821132589450473779985259062808897060084199432572435356599159567184419532667236356954260375134016043029173905968816413900464887446198770471389535017208878293005693458832943518623644105052047285079580908227745262837930962124524759504551661236143892132130363272458399477855201035817811754691051110856248439781327122642573818306582488149211334516011875867821822368987687151085523430843835672914622421057438617332566617419609993695187034802990566477465894710837827384894393113375753092742189223362387024127813747469943930671737925896166620823268184859429937200672204249666572830176611725177047424383887356095306307719923028070165731571092372263402025336456614211721025049834008224586325834169506779749076215733732208457477151672837021651525727269063242073108112667551111694754311393424962522588656320559433364332004251938016866223696120797208058074084236693235922268451805553278207092349897619671217167797916242578018144652051562339993570713800018654325113995240615713962786004274876102227470360563008664898185563685128838097840316451301565693454539386734342847706851387223572928814005816677927743830394991424571905287573572181544815468209776923003970193158885334483183458870978416608332229481776429626986244001895626308010585569518734300323045912931359038982448927881758077652598266172043148426740622842206935805295690209663383701660531635851482480292480835321333386633655265584620654264720813800422886611641555385979943440777185681510875552312644854596452568210810136354338179604571868639628191249728111415546629495435493491468049574483027196987890836932249579247982644902846872990728370752012782841770129603800804373136042350144754349082325546017075724729053317602600716857853490447693088445560240800182475538163293099904705957957701935015157746603307972570037376232559029064133938250127556264910051061660267358226001675792680422771256304208896308239495870332588181590114835775885313120067597489732148487380135547333682228958437716973324359686706147417421482419849171531444456864410307377782788963365917573478598583089604892378886499574485843323719079056387181017789704894141304397953961930475513696689091738163374020284180591892636263493235895796123348339761283575330216931105395096372949595796323790625702440379175429551523346260811473545161728319151700001447489919521877647691779661952568721195007228799695303048536967576363739907944306812485441194346876976488405834661663221425439246778329525291262990787626422760633017716949891901583354519093196971055514254380463454478833729585079524816909820866887294900137627493602761004590356806604586890905843125869236389738150787848391324473062098218760069893197664819333138005298121358847046135638942792775097544427136155741424126712134361443145769359431850753974015563450430072147733803601591564423151526668081632565007265449173709074223609978850175286048308790697764337802440143836917576582349960023328399802426143230305164711505246133869229559619835901852698923720616276672223918296866222996901283683721070457997382325955339199427301520158632903108662360890287431151145188936444167275058578236392047850730691490801507742138326134560976835047032064808690069926661685875568655729713085488684850305592742226645648955217523425339441150553472511264687430112250692050293658839346937774273574881893054763054568545441850877833440271649529676435765455423760868313855012846179341056413251536001101162313248669890378322767052544062968966439016446624269768737127790259484867230504188351273877149995832292720105690817647720365745383062632121287823446828571267740216131994237674596902634438027581896547333421607619589991071359330460800636011434078590222301381443167561894161008386668461306729787998160269919845016090364450354300688574918078911749886918585591208892734285624075059863746420671826885841043899156996004860016780292271554043347812816832069742525900818999385243129486549097014709034890165804857059102380984023029209548458027031357997550608278006149287034206101897059285556250369066660351913510506127376831536039159829654409611984826037921536928215231753733045007459456026504164906387452171288216497796630896532035779277055975738789047089760728227286155613336554174654173332531950461447159612561344728387607949792034727789026064559403683893983051280431068978832092255267403099072766632556309829143377336248763900980374679958363316707490956015776780625284181585608828125103730456651678381232920264433342892479989537637002847088205731781480286156694706717608830179762957436570386376654304674300182217752170797901137813202091710122594459394760326335221003440960728889118058230298800013921057699020610411942225901441267639375475658552332636461369190963055900523878490580858547218931432951256550989111854579090474309867245198215648409291123567047044715816541224209484895260239544251496896998646892786533720503815258355339525959497792450373507233602929256816644031754472093350234699357342804162805758531231021040347074105539479466234224721976541860663307560938392843024556187632152293695309496726145391155042779742913946234811638909945571987980589108094052208566347736402518533157928942222612951967101487868953399041165626236109930786277443126098579151986510821937634423975092444431888832721672314473139892756539387469084837859998390301928475599084480313975722625779958023837182118261077825463280501662756929334817101999213688491257974178344124636214807993263031789630077316228741100141474468295871096409436016511464370404404241028022371548643416312686971029674572379930378709119266022688543493392884697783318337727553600236045269755333120740521944384187131706500406230314257896396246255080534623195157727216068246797132398235071121466790333425316610500926828269783205170797060647709475332219113003163432746664921258533486982628499333649074975762717762423842457529376036373693066569858081324245718423191659844352483638391472367709112542879749284091671484105606173495255530380802548908979899833997441968816443581159963541944546824430018773934485156786299371412464202554276280346452819431969985156775942801589011724299114749232449636296653611225646208177808419373671741748693031986539231451042034208787494463834200742369467416737913771854172930211067252900498505893950015764465257842678505004128150514110167610902417998116367365117334363052042171883469733440960755061892283208002068232188255209316682682240552506785332672739354462795354450346934670886899782965976668015586855543928054969160015382464415472963426434624744233809561669748643267851053740487153078328524860921479293890400619194077585412577218297403111116684575194337715466605931496322605763957950667237924804556626744959016099044571700747685301825835911184702718173839922065911469738690407106688919144047818394015255498430984174042962971003758890266798003754235200778918868932065882567359216337489932190743330776323680630676603133058099365039278499663305834410583955842354706139258302962560593729496991778653700735825956729165563757533382379465066702813316336778778577654038445076223702815600266468760083300834776941065224231321962817171705174574731580314683779442299206258439145163064219280762347211737339054124168981222116274474604797425153495156144878464519059805585274927706511046968998791226920954363291875659849758160049817826534226806175579977887098290397947769214989713882944129899219061110097273344644225458708112562751607689560418695263817656297253525320465473223214112734944900070707099953438237043102995493189907290389403936008464579247809747706893777923609348240652908044682387386753550432143803360722122902285900152168747441868768021897423582811505868455636821982718683828227120229535595264098119220626256618174538620437897647747367401301141061917820054772889088213489071363482791559395889843111414684492931795958768731046199466217242994055336345604372642883149271658984335801458097257627762748008683041487661204071519482749509787606285430526060917403041585619477104240215631761276250378908264233094832129276903108133096335536446099811346865826291938503063364668838528045204391206509665993437612097210356618344914206329750935911055338381996286376111221459831002886387775225388987107169307729482896828388180087890557589628702822034955559219196428207026601669747045075882412364924679308283604404779920255678081009708270739639258982372399031501697368780738550537280660070339359029894058550710155582039519294527557634161056024268451173194709386600564722099644970005797116286838788480686457545212988762120113323078359944557962427516190616612086592228844399937136916133774776479675464044752223651987918906668694615363403049785042705632697368897176781696358912147945088560324920359105000527029125066174457109024882318523087384733757609629623003231631931770512418855188740089144522758387203039334634137039883747500370004130303237461681052822789630240657195428474395613630596066367276616370762438615179317685637821816707263665263727494296688264964215669098765755639538981517371539190373873661781085114373549171826915166465879543143669165745599145091346983005543469739468151849128526743682163323350024004153475633665554367478534356638434923082664101186379463682427414763213308555860891159915980692993333587379992117098776101000863512269661085823779600772982529916422452453775790786376770017620421698012012064777881681228532297015826515375910472798208581025447164389092145988599305873899806181444371246796092789601699593056731147787651645460418280680813730564113947700339551059296711792135735614221334977010355578903931203679507797267855206913096101330579957365565989842140801108957774963524903058672144033212266339457776033667073989866375655505668375901954111704002404173174191943945958741009491279189358322050960751544565831076463220207415567300734929839223758860243633021935876027023538348508090309724047230674833834275654193901756633053435905729253629066662924429884918889749301804633682740604187972644552879091037459015279629986419112064127663416654672601031014394648254273194082605192525255147077806505381939703414833318838862445446858750283513679310692592655423455431402877270096446259325936204841509976186135593115053743320595761718175393723768349489658805561971033846056765178060771437811751198549581502659540478971605711427481670433543079836276808573752035980454707189874446275515686506528990344270524226632900673770614073845331455463696203985146348454050362452051554480901904449927791970194634052040216492258796854770964659189605255080204374356324995527887564018548568809046617266472193035398025768955407560709450892163927517336248487274606344577460614300150471480663802307507846718662686654806287495334381265085298617936062730541160877513206506707600951596969228470600251059189816860563674722848340366231312840027834965026420742946480987195817989198234226780109913672658697795727156370838206038467508512503785368689050002929245913814496761036801565049400645017202810084407498248843363383773894514642349980743487541949570653404875993062968657401772298922070417123793803686893019504714080531636792442761149872824349779734518965531035151630019284107398519524680721136438478687464687838905466858701468200404247662669119785052770232995025523759202182397613140301318207811094243418940350287818483356998754195491424907649281850127696925845079823099245639740074900220414004081498271617722327859718232074443609638729839696176952326304422667140356448013695011151273619595233895424669799609029711177294979852601812095949855347936039958702260353868444600600364558783720817344848172898496233433161685232896281747686566947774478411766677855504054020328772312912961200717561821857496607212860115500943248320660671708373384392447174976506506539586948065274985109643504413136663117161490927480089479715512803808906026612338770210246087126023692362782042720632148856955838692445561929543979828245863129155970161121393376670416047814654537398482047932062305458891830236635911070861323613620253006058168011695676779172186583898611064102844666935395128907873673588378809072939335568924229809218999375856525199968303539572043038154238323215589481348797303349862256694860944045237109631120429473709998327752375902879435101480796024108531828227272065209171405271639955700685488899307132704442638117136161378421649267084544736015337153514032252266939931564693925488860927719469509510272056589820851611416937589185849776733958107395520554113611674745889400055792650125168022564291329046451224610161163775895860035519633084626368094842986855782124592378606449108626149528386738574846062432947697556506017344702322451693258195942048017443861827790099791026997943637738610234359901972902665721769349053124210820147901076234422117640498171094045646714796483185003646070652437379914957549074643793556608668735047068802888022737169150667961622726367791420445311381296578892190798930679280795196343855442993052667118188316931815153300081983413703363337811651364478449564320263044789056883253913275685500649887436452972401903932194236194685818609248199144718223125635036107099081438168200948881457479183400742088054928243464822020180900660893121848711422023890596148129570789868706730963283507728003584664725263332609254679883156281472166531042903551063818672394592622491897185746622756448192320791203346294046237164550868207478079212002248104482408943767729645703750521488432383347784423657626596257747642166338386968105155600405116658929422655643050674319606632149383268523241124103098292618396566726537570962272708163765222226127957037891302736224245428023577694966979791603780602061199829653766864148605737243785708685695367174305285886727941504869717079230680991963559709066708608670443956949298903498460964083552124320821587220985694263944206808615253932263851464185822550887243564076100755579860304300619029399775036529244962768063016193958689674842822969668287160070541218853601125262147261991934570112494136040073137103560123544914144561132620814797220244562920085545967671077452629446403698711566737052330422769206068921997212287651592349172708825052660478491958444569591495450520343972219605702242870596347719948745342303584973455543483575225900500132679289529968345283002924967871532569508955994735600877161478673589070242230345256770926418613065262240266559302379610890865402852363543257010950385703592251672413370307745952829868199594531618109970861779043195214945408699800192844178340441757574754984172343224395254218772147191428779462270424551103840410229963218214867244785141700432390765820507441743339139025493722600519178055288668359278359686130484480547652070110387054567905066713326861469179320974154304370059005751402453038113508597623204988350037521901073172423913206120845341636425420901990839789516974919080198257075469538717604355503102935456031882542412341538026023579984861271027261945946173025015062720178271834750795375461428232240204800353477130873585543865838089865579029017208992152362602854413456664421007557131741153618813643596833917836685303955197897931833440266576395817763844150204746383916943494037547188963595665388378781758008529433105156478063167559763968462845486851761307849235219287584385717421153727426624754946007498294646891131320260498242666606178236216752116244676557185201427707265170545769895268915865486383653265774661247828758616395510569079375790474680024148084617300235006511594375995047226279535583095656852905524124332606591239655661629751599246785697672860957838708297268881862477642824608890913102771680923341732181863894130299128017857681004118453317054878072993539224164708465927676959600861338467258917922246840196523600404519226688050229138252542744272966866868443469993646449538503029644314181683306795660659192242268642337258970297498677982237986970350915672882501189728505436696999118229276432013466142620966740346989188123349128498786094585083085411602679187495638399726587938540493758893762651752143134009156297676634840393405971138958961117792372719731200871190283872385042099513650208959965023869238743112300764938954587045374039132767427546585691432492234424879549785431942177295510329043666950971229057941054222971384983331845681678004716527430344621509373745689088342772654997958974002771586972817567162177471606239356251321321833770630812361990667620689126110335839976685279402280069332623042764363200804602794543982185692689576088298105203470416289061514269556632602412358456847740221615331750794904506189942775416487668128306087676803428013706151517593654200406643443342649696301359769571109538441305475137380651511465670427280878792111618838670258326148352033595248979988005984326852142216610121386423444474035541536181254512327254179037524328465261340015640340780295083173870686338582189043094372682519778354341404414631225050289985095629647219989895995702760171610800263900454280667019368870086873760963551705396109158648852247522598276085098686393190865715705146479430649807947400359935678315753169786401641210276735927448408214793161687201463073683268075532355507233784519665833959619900885756053204649043987187800038776534498482791272975979267858932388351978435977451993379060500478357474130113438577670127746776558496436534992072911275052447806799002476380813360837691593430734470999087246124695115849990569389458192996831525693434656016504907365434561689924417854183096278774686425647330908017712347382749865370427685894183538706624969453589751297636492166202251955978204882011220245206318017431853140535714939885835352072533605928165647366222803751254331811906863580450110600088489487251990386115706860012917339491329199909896996520402864797478671141126414973523550602828056386731891352062018226544742375307591479727783454851965809571176703724891132218741848842053754566430486054841714354209812207903439014682464308047630939999988094364036237904956690830665893441166712330719087688690222890824550943935765370088139544685759582215924237713375928904945669913419577569487209934552348797425549597347256682457032752485634205803005190663332226147298446635664413947415361639031963689097018929342184129654706421204415798309282112755123230941197046870366755858629146866581601146907581814532388625994688130611008586552431330388852361787541624519318548854305204765876971781871860603245092267050235623307528654006344537474773981033017530106392858767066006836624239159344747923893586844746688134397684128952208526280801524781158090872827209106827071488792622200188720713358347311604938750320247135051109734151427188510745439438635998251689386727832076065658432996419266877291178805530639877075892846654650175687138850978530543774756081598189053812859759758729027641914587680469303957989402502806284494439977267883346034987144715911186408750884801182504660626949281325505854460668072192807672263185419706089972727932883563086796658216563766212687000620861398579533687218329766943525865852181021971127999885232860145424388649210639625508112914524525561656625174539821079165832294827391989072266380859387770666920179845437333825758335616544148227413493668899462756623005823486416374891292574345426536872098616334719547256053764902611098616022063715172031731072233527779023562301161221588721906831847696712154544777718919763647675635988365048537386814711189717191680944245320165626465842415320460952197508138749436272739115397038981022050207211379642898167845657199983209578286754824619925524168950647562445875680476579827104206491828004961141789963265349383697099618656335625251912795274661164528932439425026053949912976789486855451383646298613870593008486395144827542809254258265928181162345585736964351216611275707865878738910047509495020741432855624753234068806946036586638224159205947701162724553507701883203412750616516434098924276636194906604051475901898182847041454067986337749589715933032108639679480245223602190470754084952438093622074204216444665909418611516125421439785303531471422042760509910999584258270653428065516995337641354056839859054039114411181079317923547929780417740031189028340142059131786017618140101390678394516079734093331452928833568266761087308965568666341474697990920129163951776564760410013592308464077811185770171475470930522796107805129225922137966767952423025477786869098698639593283017526713492573942476657037967199654905791034645172105631611162847576160502802741473442059379873857093936599764584064363471023410513868560981543641946207093487495565715152587647398638746629112052521886197864471935340121877085644304949764663272111731296630740147428853388071395548396661511643583279632707149703664720455482390752417048737110902035688878426271432845968294859010991205632800677817281955948083595886373800602033125812040474116195100557076637513918520635019377566890879122262552915115417161159431123229748480794600084273617836945265365686389089223792191488894151341276438128672535439438366587649893511734595465822104620701569462496298296865869460329716429610583027362946640786695480471606876740129309838827011269417457672849653894996777001354970717587397698853570160996887192439801257537788630045299606038942452532981276883797532829434784747172736948389784430315445572332719258195677957520176840594910394510248704052977754613241395747370249580695219061193552465613007606081703660639863690919687796732698742069841021540413587743499442484539873662899793704931992012433108717715889083314593694975134441503089698884833670488953351734383666137504988667885018978762488960418919565621349255995794695821512718736022294434576031234116162221187830626301600256151306008961795880913377859938275738911661749220004801946653971672531999967878246465207042025528958061293487922157070323505107887338103561324690589125428016731452226105109752688445817395852867497008732817370265039114188086362578600686770953570945418627203718295923293942900732045689085384676928076767060783627314546613574645118614192699684003635524578668252860552360878392633720949556865730588853552427317183035555766195601813206969705231472859160365741528193794803907805701776624967767708305453399644104114907444809189354423715875131637120690928497188186526517956962506087680863799299275143819175513141285698380499058383246640718435335730319777192340217335512524754028959464519349789418782111652442071964796335402808427682587455051430754091288697033827579829172527012505174857251865676052968575717104398517758634654927363349783745785577517598231188879635606429288261069152211387730469072911784396879571799691908767474462689390104383893089359068150550625180428342498482854745373909119655005787485236194426736533892035293381796879434588513096544808259521653348853314258590660527010020998130498690661069867723414515021618033218172517802616380355080061151485165018703481386496623229835504747481403221341371113390420156504686295863257338032731889363378212976312324081659465812529356069832594548209727187238558640120854265279365784370861213190084944463166922768047499180978163447051508116030554684547772712160353784055071044751740177891585014403339971197543933371902193716119959321721650434859860685990758148663385159352253982838636578704942679246248220646590763711607991166692270048345773834950507674561713296774157419360542304651086390470743096683021353131373839154018600548315819994785368407924388630389424486667291624654749252057554549983289955052465493964641106724702461816151986852957408350662714484929762761032766150795467409804855648045199267000675410514616824037133664687073918057622459645121125172149284460783872950655265562407823320216342842274497340667060578548131284161700068279416524086160530497641415353107624758516114318963266412154176478839805739518167082754626401913342724694340645460923331075005613748858456010587076428055104915683229921777187711142288213991423513899978048090741966750429342688440587693097396988492126574065073842413259049951332807489184863125136600516890986757661893064186014507688996643645984782424763792189468205293328618160728586254901936063965972173459742466853489190771509695947159841495883574994079430763716507587130843035065965632761424968917027047251182893153011635136401232331948477735564322561808855072686336156670277476651316844730458923304684503582734139215520565595550544027007709571189123537003289393847190713012300614948500097733041901629740812941213100743652169676947371194465043026752874565264271175767729851002273181531479121866782317638143001332135723331640836763048286350246229295103944641972901177723067398170854942821316854878635844231575651512642461971386356986426486255700728832849774652565698935888122065615432743523505422643047630701759620399894456937540776042772064285661564274964062318225809137604613335540925810934865683395925959772329262992839407071026620506960261914750714546729537919360577339514215857736702581255477778056181838486292357829048630411696759475957310921636487451287320609897751574443606283201075175605058986377394642672372566331329151476362945965295737504556033085071702186538649797039982691195723565466396648788367053249917605476246373688386474323936803071124081400984131341871902324613981672847434856858433249067632268078829896998532055001595456425846429539578329671368408686055513761348316381997106910411248772293085655961162892519432728956735793085488253462188059783036196731434722447360740190488254366938385949864389671584434649781948460870466842440588505813290948675281035089418917687360134567039840254095399839129261639640119758504028305987475198903836376336047952180090563999407111490163488116087975582868871123719784113127740474977471602990390986293201194341953261306875586870047911505842781189273601898845537942800938355960030555642490574933831131581268935809171821679393846089131100091378216960256961943915638570977210852948534084022252631538075764814352111017860607966202153645745198042879249215596091785146755347162834514809769847810667946952580438627893307285443075518674674031789920596232530696849850622256453798019332407147010538831245721597529373766414460002433347463421615647109080068448573310099697956750861322956215394896612907076087059457732110961395957206837698173332177227229452302011714958274624614230087924563915399775879888934360519280928053427572897722982704108252650603224747434655397124445821100941808528827664287215530373207303053699983319095464460134905800277268733609096752835369898691529918837779447086732080511729588285223463466135211787770822024515233098694720488023698390374722450694529233381668091560216119453807127208569399442711254705677033916606850418833921120710205797189597402953719137885082395418447297205125830145022363998458881884807953211096136070681857622703722224673678632988826195350774884821925801010281677348780136517370859751596863506927611486818679154330633107284052872632960427465016745120980572461598353124979650833609628984651792485086549850176579267483683031402372511605190482004923756886970481323567013871221403485259757169823149392103504453812493438547540428771629260787159659710003242535081800679850478467043410713802300023558422927624418809831210278498456882819056214861168838292138076955902385959888827184271412983153574659483835088636755687250723700578820808065164308513057539071480812519819727544060428607213072331125134354735122823726369020592334684089529039441817472221808088024203745429228195051560209032570665666751355222110838932344330131092267456090896489284716009001684342568603024065183871253644479108448228634572342863004477715356767920051268015832068451454846205377240831702307511858269588278196832806293181415796292302914590092389219105024003301715985360210689816573095970547087543049153507572834710213673659078298898898591882585063838705823236104013427368021457727978126503514471300766851988988994881251132407123112254236553741093057137767646630889808197466734401948539674274646485836630385829268331632474758560734112956044235048151366503643698241306521164873213617278153790011184387647921473060248599696626459768959996166721141576787427163145743421919661254382486806379506567078379305664548749715081712649922745877070514017840325202583743067239793875194073834782135424926448045941693601237784155756838021932245156719814683131935171768767675429368087429323032533190057761153037784880767179158737182418962923496335773088713301420658240647201843686664771101950822565441850414104859509233151641756683533590356805977748826286039216305114284401477112276773597800556996856451569815444049730956561820814107234555077094889316466387158797826990967201047700486620415774364185100889775122940133862157255979667303003333560896504571299486045088010300699570811832741220140288467318761211472150760828645008049335060583412440053499241007918978971569429290601945961666395357390057408281897958656106302142509405780260038780667470257278504231026792552686641647837572391926574083353101091994605868912629692897227996956161837965862539514577656513899156059691192570142677697195362212692149247933013222534179673380454569069002244863145436992805089590287985363991164961045693416352373816727007982486495937254329441475017422534880074605366852741073581421404813819260957748575398323964322027676898295299322299100591113948090306257867194685220754367233144156327474584136782969518209090757537380815225506815816345129685843055470034057309371956511533341188225791184291278976244274248668828946084173377276285891443438107966324185813743384655913361250656214408631185655074820365954063119945144735523664953074243612622082215877799181173182399879167726862469810013308993441341032556512447509816738305783880027931782366266800573386628304526915012174988111010662663169990740895467888724983760696426756073276550202953064320245658488035743409190184579696709189583592158064318921155020782225405896212385048363336686405265095398853960186874802543959907757086356471181078173208358824107893398484960950451578623690693790910298336586125057800612820428329898701303617425508141792988510204392776039100886399197088389422443437476244506499432533500755321501356916454474024506341421720926370494416285449355174966739518682337703882270174283953064866214022084802356946174519350445200550842989606385497884802923046876509318243045606906624120143232886035870290469269569937728369957256117999814168032889200997207676472750162783686765054092806143682559934075371085124953350521838122195794184376875034374786135697466596219899298339794177462913999110503385660802972505564715846634071441881040668160465943080084760742332696898705833407995914011735614015193929270938271268735741291186478788173793353079723922113319230872240511987767573925372616586454942697083524862884237305108692312118706171978518820915082553237638287454200583668723990878943134768171210252157768217854034982612334457332125417431745102185354965557943415192404142938575073450187322631126965261480872569269603570681215189073765850989107536210288371502722114571534208996187558165315975373228696587066134410439245614431187895257462172508881422107328832148643836915778850220555304379387043875178553490003333646328250636066843458816522885843914341074490887400950113499257500837935575156555300879118047336398028072735114989965449839638279323086929816547261999941703588246403682296034747541097592592427502213027233181119369252558367948344453558122318501637287546024559142893617989841003410149673673486927965535299167646813962031885648262863665205119481551983193692436018720339625864347742024438548343292707040863602371771189578774487821090831033860337571653563837691481115517757831860586527133148347047071014749144072952671734373188923804119579137583117172495470151053229021227788563759144126835909914773577218967856683947896655461937768437199248540920347747943597359645907510001341368463270539942366331827573260279059313289007175242329799882028729815456980685752602720853450815189558998015379859108330262659503409248220816969830945099051722229774793092960137223116207063180590980986522049841267516096899369087153126154106391140997195166527521026551374621067239754536751527722664273325007553303811557792490171081979998740034332068949543020212334916559755341384754334589084597210565126175277903873715580216810201348976230043939330123619560674056550725764476264186410382752250275024881520421201448948734273157672439777516519604877159139933757330521563160058281832752425124984289295045697266272317949998224138920458113922288197096728668134199658545089254147881866121431646461155003089429541641500804435126710007717191066081634911601049409528859150710273192453009210337615747852819011178525319609397377075883453550162105120618618460169594847924226558283205389174341419142533873492836262527475621065002689209305498038191350507515833153627295269023354549067306907079462902709804306967757772324068258908288250871922899238453561249605336090931198771497685349187710587815251157632178268800383643253208455494966059923161344902962298263836655695623902916363992405318457383197336056896302901567202787476474229237431208387536477979802117066404140036239603429905478214600159643849039140862172489001193639362052949116490190178937677417700818415736464248228034776598339955941999474235138087720273564996537465180505928376245906150124863549040590350443551773968752125699392253140546661675326009596440150814471340850059941335868240156796893916523299569025617957031873634600254927507975857240699877537696106955491124559293716816156092699740147485949097195752839327850295511637312836316094140026412771431343858093641072918318855781843911931130215918535057857826781374095151398828720932987208917087965584033799581803641091301760583642837683467502697447917327363925498266092865412668625086958405768382677363557610188407568804629311000017631382041991338422946421754762287632688951032565012578066091101541826175971178630118493120417078884817035444591142092462674257385492675992972158266301248960791602807962830082376984984256624462730547865227124753855658701518425936786660726237464293614931223031697114993821371623777341018934684124985833338971205746098765334954370954458104734119456047166763714887719400185850380166539188443530768067855210028422080610181532598667232593608629119427952850671620321595629262344210850303751004580216782058594312131784986516501838897142928102046727664833965833612200504122699540945246310905414867016562131114188146425140006859434214162295013724119502894040241715296202148213169426873455061748325774899017270678680221358052016317179659706254991489101040822590138806927122599876619064997553972537924209787805279031227453537221257236781981686277543600659931605160854719411769336006553049327001549964094124629402760778614628426337997870821241309674827729525659040333398713016636052051529438722709265300231285711277393439199724294656160314922886463830482118264006346322445232769124927963709190044824386152721173897753053778415108270187902641897598553837785962641829068206966614537450001813004423289118886576948660275838773359590424627315120653107001295638667194583708387333741167466010919927713873951850459088012589332123000768737730155496564876001961703356137685379172249886969875519586511515188992339643774040264464399244703988966057420048040327210150362418929403364111392633771455089181195813833836872539472932403896773494177275724326334953761776917290018350028832468838869879508195336556849368894203161722570960899838776966041143468873807136357328866945657313981958765026107072057534359369870914327107879116261822549769075537329683846237198037772362318097368914763631563206803790097362802810882875850539914129718152962914176534143652991456345575300130442216576916591725874250957457939576538937530364216805783753433028550986620640540754524356917462628138764346845935017174152786802230237765715218039774901845758107531245482746693220141002729393005729291176210352148806840965447842255326870716070505908990062809444940415441259799032241248250120355271084824283272875895582823460124807903594536075514524557789706861256155606618575199560559306293988157175799351422186440719417364907192416133886211269713196964709193626922592769482985453644914957000742376129212923236030596662135928362820306990788088051219996686027742496560574640905084514353910493291390425338884251277090576011511842020354564145064444490107827899888480647136870084375207939922857802857019353420474446212776480091159818266169587885909736564789404783937071731357287399822585739690207721038099428811504642988830944949240444547867361221230227570396538869086856608887878765536987074155150857552939841220316536711401606542420651813347014297178686286702280114307014441669161674086531143536544574797998839485818176093758133863433337666175905337807366935735360152675287906956411896502020333572107338088994663096108243720686232193021467184583638908701852411329181343283097516586283582802028535563054800955715995583257996073239897385785650054776747796703915110904987569210238255143335799955036730198207458219000487492426995741529798990868717304215247382752406059070824742570112278274579235093996337367187481805327431120518471202678477520900833864872130367855716916402609732261494534888108790804622042284474436646335825062050401621323485076722155233866271427067391845296753319767863466137123321998266563243632533665847634321083590492987209492399371376082809439950341891148303815574714178155825023542657579126284867843713431558962048421208161854956282367370488537401574496270087845384196100193228433035248710554292517996936070560201907353432946202007601255971301686094418516206164760855518461448769724968571337645646422658195855248676353529677262605350005817886074629090689175268204122889090952886806579925940834317073787289039357606033400510188215698375726954599826166297979850487292389021483921846867288378231765955986301674610570614524478717075927313946881153843273288036635795571869114674213310772905606411794687040628230978155979916100133056175359961457782019051087816910839551858581150634838589634193249224101933735338682580177963472549243334943953347308208851107610019647680835352969726517520736365551090935507228268780555829452437353710920017211420321192413456547702868044152889810703945858672199995015573248099858281947050243276853718582225139541697722553818632075940624006016750135267638461818899050876560807707606482801179056226502571249894223177111544517933014156133919287804612600658367481147014924958601818663013481528305004123652954484744500729251524233762731062097827250475660062363921515278666357637896489775201064186328576807557449662811558302137714308352125850387487393049218585873054385357725774961646012494844102566475199471483915222867816393467300505240898145336041485599613493944999947708399445069451554450224921994420216197938422673737539379496232267222853868024753359925175550798810653085141159366209723068813043200275235101158398085367267838230644675147732734964397371391796206428930076052729724403673880522163006012546880132628475596578814081647950582899665364036263871575255242796085602755383340782259855379648195923950818707465115896227930413742724581371097224679642763775441356187592379372900702509248782616059462715808803826985183896826852350563424518633461132208245716859566290361590717708882377581782974428531208717789208730806864965752508268239488683558306014809481203225507260544472162804859493200853369007415677020256397748040036707199312779675749798570432240130303512343379384111970298216612800961141674867920590344330060920381207123269621516024807450004825316120257141653952959679420969333522575984298924101124811281650092789073560348105677954244257602130147272892804061595801452176039549993820534393497060181169005625657726587493558255104538054420739387231867269241080850689520408291363242109891992152807144046845234382660102855410698071840645689253945783310550323124553458266012525284210345929864013634072615234625328862361372712841508297792670261966215684754771192412472501775297896677837971253113779257253271496234595516067093094602489218959197039027484015177713789174859969294350326165284997391425639699744722096281759827338658054114319720116952055713584902590033588250353966938806849001269350435928509772907150421574608212393985305584879145478023220446240878866643705522902201751399732232886786880383470429972995716731617836096809594380330464725010790621401327697072439737792915180193358222692996111606837195098321552635064268815870333578102510244127910043609085282324365261110629216247055040011528990611300028713833129934500738918294569565054648633265642962510201194353753869012766877561613103610501087379708399111280626316535205333260674347908203607181127841429589837842178214268349294194386020254498559006111375619129007648307886093712740755362971482485686350497730421276676482646495601788760560317575021216124968033020354442454415115332985088881922403433986385398132984790958920993409340852156554502086010709838976063429852451905551255708828661598316292152310319816296531533178724707787015071311657445031408749244060262510139099339746490707912553362164027558286944144594660364764428932424313841062990715999201105557378714145539556843079541647489184098879709475922681714479276984884630997065997518242969726804189444172871145785790242528431584059268786073147483422911765686967790618781899638914317802900959959443761355332850796359691396895245949471209838494749350977274858406615928582818934126235950376788909575075004803169791929277755623551795332853378242706197895682140368788222567015597839904230769034286964512057606207830291339287315820493360468824719672500051318752969523605079900722682150139724317452783839310536988394040643044660335822063410136978086603839217585094914537181963976705006246010918143744739011286220261503851715395075024657003054274899899866321064469234705244852663584198692154850607363736359701037008200454991355302342276836156609237183762376613230717942940350516205898378805757616395631896513283337991080986287437150321833379374812710069196556609810245503437204319757923801638933837884972800962006749526395229245525300039151328652004304948084004416761663572561103360908903578702666604574118660112391535709223079935062756343586694121241406902000984297288599710552620460073596165971246245872800192149228237457047700555552235079010074257796417456664218137607677280214167634311766334760928051244875179861750146976511092314019985024752105551432183203246838622363869802149732529172680818269160226401451985715989863063647693846734624373533621229452674002973663218927557763133614330522129837328936241683809766311217843906465921318527657575424521497064085726126948555551516944191696345634948518955490998618547074921709193972150141815835549151778034930828416278530320037113887669712470164530529625146253548088465937321981324604047005078745531577744530127221678709699239651944810027667724522098261388957611939982582135059539061082534383073846137664342481426350303563532808825545658286951456883483443898640847069961581553556570935978529818154122810249311626771664755423245437364552097160555343447600495799130595860665474809196997585236963910543060532996986177745557027484031605110150009275098305417788207016528878056485888353930096637841416451464306541609453464927497194430884301900832434500107112248509584623633115595654035001025381077654870889038244821059602175674691707612664446515497448202617693599215900108467894248630809311097445216805305996874707194933414821278946024047899867822708603952178981911525759109244094906108219415721882451387875251053787799927505635089265177822756992839040726259430099406836584115060155427408549691710932255333513990557714301224562253592090892899548789016887387944149817667409194721908585320758813424352414684409469428734423034679814869320666905476440818790756433278096907374315610654003503362563441045540561165842566619464131569959202816609546604040433078429609423364280067642520246884379037026643273837526734445667743604475911723455443121375129987160534941789906240746248059175154542145010152593501857949796770914942776298767761875359176976656933536200752644005582722337825746124191775103989698285008780462911612470293597704157122786820841505998990035076490568135315449601050583782521540722958478141209226077388368583325699155958276257436991008953886352585791581546297409928892955658108722468798914443393286780061243447970494095114987253722162071218281472247205607916320354684535827053999699561733426556438021393444134417814327473474585713343369645045668836345245300041494187194592194843365805183884728528957328123187427235720817464649061568070881011749859272430488003047053606598263624487221813362205844276963478992553673956891617595600831275125363731148628918288531996477405130652873901116027951472403765204679675275720946129548849434770684735838865740862987968413868541290384456734917919472435473735779629731095013636856340986524851230744249254860012204834637769657748698238099075338724738101616331045220181482051710245490270403211039317529141235859006132199580711523524653273082451874551901763212323926609195536053379339414810222239204305850991112781220834172998542853248889974937813771492423506462206049701622722575559272028230452461681448327794595772684057407352438726325121773860787252237395082920682586245829582866024223700916411453225156235086728357025920657937935807172316578253102640025916494865758515616632400596337433224058363576891363809966067833315205538194298175451862862395276222464264267619322005726094070800745379766020693215066048065470923670025455478093743129634469951193645702277704289491987473146515999174344663664311527032096318144743968466607017038656838929041372614517920528303779800159673322112621392111092694373242651474515329025677977897862791680074264570017765858772764411024881753870955028663662857026313043261821675599734075516308741184810159947785461719927580642080076450393930967650107912796457561767771723132528708771185643654798155721322671316710342833375026480923270927946936187542371713237432118820131040132577542061553477747380954933029560528631429923967617242595176525960378536770048654302050379055607984976179849767548522296568908668788627272288166357299650742121781671013184464898397927458410460917401955359452180772649601648565896331276517772565870556638624677022029730671619049647601755531917430694272963802439990157862587954038042925010399622842360965799617425664146108287824671308653867225197474864751600371912231643293736137214181904514453985381290306578455257776819064215020866393546011179760773144601698077221494620182154754183468156986697495221437483955743609909377306285695389193336322778841477831470163587952757058070903669413214346467214216208735974524071963444191398715722664956235209124894829032917379234753906479020640596894458581818831637250569715082495472100114306129112127964924614481494526732046118094831779537106261385606592811074878020474453394668784058232830843682523498287878787231043801275843265288759328905597139087094893432918789363587523095031972414943311478026815143286457090733990006464603045945919321754905470533177803630611080238379041326102170654239777682867394895523434091145909803218007421748266308033109432035102244976540587430526872187175119412621824964070533058197605780307587241398952919259344648832864213220895119728570580851729126080970089709958873808842612819475627468144426589081701939706951142011589009693292126350558786914144225071117895764126068212036497315881558506160886360876091454106493583973820460549769912606648697417274604556200730779970258510004272072111904383226599341255852542187410315473222596050890371099051243463782846348451729033960940775459663571324591009617567630290234805046056367964170096211593927234847231546359343059420478783916544559072230417214021854857292963472992069025941829934335632833746191589310993666514902706314553463781921329104953649161679686336866202809205909281771696360164320387176361101891526474424371968534024341410409660151752330631010054276601729995924079860526579818170354383722441897086774911557141395905045870712413188661599667203106117867842388175429000817306790007700769103315947684712748051457450124169609421220685638717192033344770143127783584283036125586697227992276005530237957547668761081699532696807799210562421987137764274839345934007705648568247345643742928962867324300713275697211782863428631803078460805438967031225652048157265505901735903180656186657636979013341003880481004269185373882883937641409303723697388825599380153016027650938952225625486582031108296638718478897919257273516486529948212111285822377852075525794704111651670983010673886368020650323512214225666290208385184973979692194597403996722592935700842232165444943381016940440014642172704369037253088497729676160838267952893272443733233324601305925841532585280185422926975505048512316513201174450200634228975749790741866476090566613136060664400449689696972123490151601031616911539126361411548120191754403842973106480613806672406794538419877630905204181864553988560016058082085303466741999225548381438914268860390513073113402078103220565399066756588118346971247318495742104925982041233006981066602672667116969869252369967257120839607581065990604885506525594537465333708163125197315273150999979945431647448036530525455225858388437036531358489144968876155780986545616879415326333432927326320054807329882926925239565470352741509387648564343634736390560067584342957792533185285628663080260456435060518694663968827683683033911321058271316690105369658948433530343944249174994370328975612691184967866753967457569186739601842659556325866982473626328083260130416220078377639628635356637226582477410187463984609137817970219936246694337875610514230916034967374827532185424473440469867228144621973344569065593226045136316775722769761751529513136852279579895000630866485833383588791708548783261400814343186855364325409005925657756963657945151852432278906046611432456334594383336355557087438377681954793585977832060727908968510463766295611753611298764811005810506285738330214914189691757323640792239400387610187730688208045209870630696650115456089782395589756508218952980537342942412390251613209150683525623606432291463501529268762563088395479586736065740404675976031900751560262869944917699110332549190364621915654896583638785261762544759103040431119833133674896373543050334708378680259885729714235702803203086517577776366266714143584562623720317292918271156584773851914930026811440093617983363759815536921311946165411519933297923658363547007985311534044375511726976536063696349607457092089101538845410247421892273677539290152545148761782653269922340934588344436065323569574830674758639598237380623922096979113037500924727767481209614800148369828458668825399922541748312487799098432138880580665752804963169385092816612414842048559043653752605570672088660198371472469488559060023462956680748692764485309889457770252559276551368434817978376803125220062011654996219383768246381142839427575733587757076166568871629301700183701501837103958544179504290517930284262984240522048852876870179928688102234108094500308743432386098520225935839397799169951414806583595770791533604215224775705413815830598051724268203023913899618785533149370100181737599435340517994828466027242713892324206635822137356402555639161246043593144456477161778668662190756994193545210240559578587096262475782374224087230739466374230151156308079621255076981843415752213020131669853115391095170862585921170753468339248984711424578579709299700955777490536934458930219628622329427073709139384880905807636016233588507071165070592209034227027683674404717795185621584642378538094843917021540309169671180144833504153501523985787862482400228635051245097875301333629274895658810135599835766641325841867688199418265587709254092820253657568909169206487016456520313519120230884477921420182323834812581925230629064059138890726700480170502380283107549877435951586109584784582047172320478214193595643523006824082933167694958637832433736292132974485764884457276942231814629169040387407843425399865476186007031637872444968724083932590304072463006883925274378343209997800310073948543255961995913054318338006680842170076471721171080831473130422010178796027276955184869315630000386473958596475127081806202029112810133721504829914159814652965925139134758706371057409846253174451755159298269263130195631632780231725451163375280493494782136096517678305491193717098108349389411841117284529615645043395305807763623103939400214746202138248670656132439128924080550843648945051425622308698270113917758395206594785057469672064556576399489008235061651582255652005557966915161360754059624759265302193153839577037709186353633441286443360419225636411430928813852309278586445179278503862045975423688881509659134301393353504723496513278674961587508343958371962031266698397878971166322112867595975292574210383579965099631602787250672261214707492028254940161827279168049058287152156226499986063109509991719879551503791635444121583357712166589351470635576707741774559650467234694544452487784582714649840399058897372071903360782429142354392006143696043176599743799328471783022677801332778216923014669426798738205942826619129359155502415346598597162664388078864480620502796829044553248220188472782260142880240766144856972223710004940623506743161227417111420215922115701742696522087958847307350333777868436309004660322455518325803104067363534322153132563719533356463154128643936018921897353462912533233338911220357933134552120243763904130292001651888892323344035319333674341526877617761111747022662055402169383477035918645637432761485016097360694223270893086072258750395562133702095285273531779773157244768826871050188583848630398473901443102146361644838793648106921561360035807214724194639030762996216912109632029787898835840211721528154300623716122532851598022464339915704437220246448405393045187394297539387958818258157781718933912033858058335914475238243384599599365629986421787355415143313133777332413534394580954597877848864298865586905311555437712958663359549559206686685776946286924341419743718486822908038525017506207964300061231191467650195697295533343656436269387471468717140524409228807248197099700102985372109064762026651901510894491921593805682404265368186198215612699945727564867994642157992878291290832457702909093943123833478834153653418884083521496583973782483325785012109476752537072580928419933906567711046042988844688111269350157124280770529964126087561822462775598059680303825196292766338700998865307706205429658841646963455916334628356422756739145717815823603119761306485100101575048330301547703024912485354104128672361403060310983494304250672857560891514096727624359033645643074915424742540591508457732484376342168082028520725955579589416759231294985385710398273157514695928297733664926488739821047211277625460308683185662975287877144243850189914179282309166219686447408549540158573750296285526742873726480527202441163434255442917005716318039242422762109318401895795420604835319361622537353814295314307852533081478120455781555715239932595214787956221784333971017620173457500343750466201330424144621511148699504266855521719101852623421409218785966943632275551296509932846247166947080318968363400297466737017644734275527262131718596833447513686818132761149506596443663003195560948756297895532257457149566901437287687064781633279390542761447493253623719741926700577669026862664256260889899820120579349265928126025508543640290269211215090725919685249734350837183155810343767319368193765367067172749692108591833088240589346254767971006268602951581774558301157937028247313911473862040762557417380149035068560612597967930632943554094293800418156400070761300759267933112611042843377477066695066937178313155677553536161451776980714360662822696720358874261429454051753900230294695699983263004512420470450455273283861983317815200038249048477942117926783985826509550023730207633112451600991507550076019643458248377570304361651537333643459077506394798753694567187330371666397253550083431591518921984790292197005012943399495706711504840793994501202565681797655961144811209299331059112250347859921428356225248503880028983534190494007117719311211307179624093628780130758784536686996141354862710036007507939543067327037361746726467172123294567895072756695977456280851202304770705051172085134229353427956497534857844335742060028929526416073190143475851141203569101751993194242722102733891295357953317243904195928337415225468510744277483148789263691608578079303053590140601621926825302653098074595006786303255966205048740931753484775430166974099258233018069759323285674262135967760854752578056053968800032443090004251550190603794499832938452299269362895982678358624280952298811330172700232007242088151137257321103536855822127024784653559930747470678276542591799184391154115022082933077492589502948429960226777093239816033319182116805949786580910772342686485707262385176248691663056874406135106709286473316274644225123803687684703518912051320239991587436104396227123832257815294403902035360209337391911499881880525068733372109270076233107358885276414489002886124768542298647420778758745395584241771014212715220398014269901588066285709880571706693906619069038397374401531079320397712747669660052350543337381922989767142144919174397164892630529274908115888558069587316061784945916913350201809928550679288725984658896799536066922076198541074568628966768843777350275715417756937593081752372747953153941126796190350496516245758972239326253916862156104589226112289994495445531863150264973298889679442076821561059407284024601392455507631096348534445416195126555554001562672893013417254742610912610815209468662562903616857373046112620807649593228154705448303775035113476988480190259483033158186200608870780184817084261647683404824736335128511709109622105731909502268686066090983183474073504299283937428615686333236043820870942607639648933002834091053669202131022211969683658672745601531297765171511836495323046702254419323529286739016435873047074481244312527034157972242720670897972117463256348589969071765549864934613269038120105127986542522145730978132282083657076073800503675613150365551642678684372416906555625172798349061758696317623032296696459660769857111795533441070826155039434082707439619887935136272374390879074548140831862166516741749717668642108752748374230234771272028671896914709430676369532552855507979815632799573638723705413352191118818819159978145612308537048360584899147231220405396772719630417088080217239761259063373947647342262076430867505560460720538890469103667757097079089705213723221136464761340231830612606940391202798979484000981164069287950251147442017155009789253430016033899741400592606820726209738810609362960992258551660661845871011730500409829113518445363926048138137153400115727276588304980403915040878121828367792744439087405790914243090498697254895569999976855073527842865929555149379060740375630490951914104622795138835764774036362005549702903758211044064271006286902185842508347311400950731335174432295707082291409612258243528846807941676643749009494584025286542649954750646676407054239913515157635191644918329587157257429611139353045729706900649577368032018657561691235088296093240789926487633269333984523138278095154198188848128178127698001198854742256279517992647194989408386202697355228559008122168195079470017959031823035811312491924675130451384506932452759412570075775521714514859338039584512939732324245518021005307939307630839983928201786749827850689502032661956767695007793847759657039248283607132615711065038333060053230265952981244132425066946634134879401947062170407192794734034342738414950035197327525374210767282893278518383240525201946783619553757253408727839180036652288488157051591819076335942021123058908289720736495190719625670859411482167500970423390220532067934409155753343081412904685616235917229132576600373339329383593191745000478873881607111555117684009042921337401811383399024837272276422115556440483151964141451649453942670017921307868903954624596243472106334138348983552306837421113021106137133191044285168093956803632507118019128776433049216398208898561252136762431984090437940801402316622315196633252536785003390805921217286884427124522600362110869030659330840446692027414715479903983384086694806389438533303991968452825520153879851853620018057858179127882888491596059264269858954033989240552420965943046222076906815860485253956743254525672157458917397038958615135956314155285933590112953693993897902112470605779900530307861536430638582870451955819914913025408363313159222778744528704798727068546004026907582583594198584251147511024697551147510070267097728063802231674988670563273988453749412009884826456077216374330722982523941818809718847038311308206922534251160609454319241271518760362638268221984124458231183975065000629831270364881123888098961678730253983306841333149900865399246013042805918808010900277012423600176172365385410633368176830487107637628278501539352471394477159085427574198811552281340308469467111043827114548869119806291073706395279038741244219926188690917811132727072268039636905527819455926064251031894979609824069691180713947949411343404527287817218621611364312281781711464103798033607206728726007583498689209157988228928220039800618513003918130974385231288717051555090701553557580242529826721212329464646354447230317584642526609774343314821348683819141138948414084422140507095172906521287252801148702431718313781368558904912255311805448811879488740070081082909332988796861319820090747163569829260609032250916526105086300087231588077543382422059439307410008720740244292516454467064981608149581704180647186013965040882292271141332104868112742876807191401672127585274100904310722919902558221373067052128691550101484324769794964057461847379377125177312122187874017739796310207548956912099774701212824536098429309977940228265520863705921571534487654527826241487787960511141770642207814285584584646556963314012317985034681123031755903924321754823025650230453675592753204555915654631587479383854874606422164099468471702645632795562606286021221890290902733253403174858768508030988418085480931805923555456683042335407321254737866394816867580724759415756876799235285597109624775373578497835381340852243970042607585568577248433651919503146014374036541063206755755164707586665093946973330260838452424262058224751003455617484357248742998806367781104179825266317265052407660471990762176104214545927830131371945024908105918137720808601617051269854724909196241044970925652551786673660101684594566445205909455117924183277987284650639557487065273302719320350538906304754361786438883992922889517993982872659045431141625981024201469453510953768344732617982272800950093196745535132337334893276279741482449828633411907074139633904230056713083337496975570711436668657196258740123260667455794809363536381179227194290936915630021897276509181316497014377264861678122832434028115005330111173631385585878537268584704031095410656556716272298316129762073900611744887948288485088192505403089700342528969897944963593255374992580125454067947944327670267290212109954843769792829889434193356382877576548439806872404521266296101458348192423066339783473751677491249702712844122236972154207653503299937236516882087685704958300200400780277804701984510215454340727231666328901480361090074304604419690498459462860630420540430270295874300563385878611440095608854902084045899444794656600886824745378892758034932443203996875278915824162979995087719885968749384516424746211010185022260558512973006967570481865848062134298434461268625874374520663074160337361769733871105249833696437523383111919968722358640045324570176057937637095860624207874470112856472296213448203672425682952146844749336928427795583128211401409659767404083290115943831488560038172877004204264773189068554511884642186885875072727492910463178955826476983559215722462040817312265290639438211685239841653948434778061883434894904173682274361754308631133849616505597347549672732692861913630808687654806099843448160440815445601758758441314477501205102941717391239903868838468483680464727180650404828242868012237076199281148838431839609985638457951693799914542446598692661458277264137171190137571370589201992928784345016231992814256593257169790906366975979665587796561683983640921696447773335565541378781193773664622834196839001455337207848321116473072596813554695455988577187711675503036600154354429548330825955277107800018365798096355192447212622319109234851523430001499799663008449904958758177915330650019754299021883025315136501693364122509905047898572417672838265641016646543637174569008029116569336553433535363313197376029271571093403870612124598622393347219535021321922828437500921393271702307702871809746050137221134286104558524892923075719802547605878833513260109269678169488562145211303419071956123711811451963334029871856660684130117546754419789757319364284702964851489595121212345231599275189268228061229894381498382255149640230543359916193889924465159179463647466643125287678688456717075541468099002298102375578779392899281998514665775492751006316330851516580611145911486781837086610231265163868932352245860585234915427167052851844945028272313294153121075502405463863899318345314690110199681604163455865176935999309603586612393641865193337176397740075438903890819938182018698136422076877721506231948649699943182021876573525936763553742412296313642938351735160124819426634641573243469907241200204329122169138517008481274584695829304707625686734474195063054937916887254075973419817841940325555459298804133636970138594068872315921571333546502196010992003958650107241953411144269170192490201118803805635807921041141695952713224984747603457777262003727372433594698657079498005713612282107800437658993938504040402457441642618220545127478296503254706745219045285995367213518788602697662819090103095582681494048656125598386993751410661374628161168283023471001996584255521331809256864137470734176561999661982520664699874171988577466227015727506664440253361526614978068396193142768788227115000236527094994837473812606637718449645128124097179249072759429765234991859900056974823897492367393075196504763125971918167540890094901388545982572126819572959915536629805563740759748865702546771928411111539683546604318699801611696249302024231226142368776826798128005986499259755860770777577872126119408875454908335584392873586358558405137775009736629552012946344591703842641513881086159392549847583363148143845340303896914430904824106226762218549971587930620969468415495725003498283697428822105145752456906937003362089490158862881514122496869807472336997521502441252380376236009564207768959395989860045969888277888062336279272825322879116768856840158293175105229359884882845495464750399605103691957620214779189055733281913893664166540190291656952983026681712610849223780480332987606594654259915889710045631957080495782862757767862871821887193071657514377496167687986758465830880746257480621509641970405045608519500175300357623483999230444888705902728590862119192197685316189120902611257066086154058384939191072648983866311455399355305420408556642765987879945678385842718276483093613545442844343181492361200679387051106535613967565571292590650598459531174249822493375365201196196950014525615249046128105882304976763981951853385267630184049285373143585370257301242841412968167019216018244900136853310556977814784570375723100152735238926289135017185189268941300641837711991097497927361088752989088007186887874996786689073376100387285070075177467505104227257989588183802182302495967705483946048996810275794739911620009060977183697357164069463361232670020968966124485515929853295998582680869802400904207191551942088974156535077387998602224393428620007724658691008332211797735890824201919389576142290629615177110774662256213696572378026340241124564391161014612894720273073546095097309307981666986889580789116023946850295290504392007058066956489951305032390615439119949373916268412471483708043052814688053456363435883008546572621964072867546634739663612936591295095556840951862533224385101102529731835772669752185658674917152724732637410450279154940503809235754902344362247721150581726888350281220329521561355377873680372556880165714236756450217687795627407808797419070401965094160281512933770131071007793717989328516036348600402867989286653106390235147985876263406764641173159148692950302969373070193954603688216921493951959044429771888568335856733174305581173067286807662843463199029716850585554623893600587761583433354621516672778018845579526943891527987859676452814686138640090482581276919363715790134133894127157601086599206308478964042569881879199727950183430708112452527445587511248582957333395476508184688550404030443911402468747232409490278454360262111211919110279248133572886528797541424978828832771544405174341131319066737093003348617248583937538924181099124723406348036274856385452866446431453293588356824974833390064214685110150435096594769211004527653370377986481892752327328449582549101242870454487169255529446750455409617678736148078783335587343254635626117246170849516920952844169852379846473147981857972230901646739494575730778789660968952564301668255051666454535971903679732786354177006910168540774776380145531117280934664025587258647024505749932018939056301426252164052861743807239912165227681980196634577707283827622579600696971618840410791170742414981425417974417103926245583088687662108229882728807645570452424629177310283851908153844574604391958241754727559183435207856618591428480269762287094712731843517009820085061960409358427561271024468904413224202201041103889160509942112825432954144664552319607693506559851584851654211953862225171532430693261914847697705057792722396817732347770868423383654934803930373318528088407814523965504102411617510018610382711795178034314321822425933411366830738729386600352368210054051143024370946130664487790735689957903497552513354985801003588726965929875446345606544522421722781991675715267962866922355744206536834475120312254888306310428121474302566506152495924097064768623736424265652216388382234485187365124284901260887746885570778539287370791995532486469833897543133711277829761093259059805002805112715398630144956348915559471052753347569813856207745468140792280982159271001370057639302368511995459762266364115340866932731886392517708184265771216882030064661803135487913006282047311588859170097497750928783634022567477420643303543150112330283931000136467487181438398856194932151976451931592856859549206766299974352297849020203342807215602959454043408959876342685795443198822628074466630734585921558978692178535968168262828215401287324238948449627522300328119194211259831316869873145743258196790677101248224944198529541480725929027784104267319025017645095550292572192440914075662217005651299340982849054549180017553118046719563476492766539659745622028230464130499157654787380087247229888385491821116871031197644026437618546661663035683788690662189588226906744373238979295546671555261334301139935574771674819607786207713448217629049998150159571753780350850678980472906918985153721232851011827973419799494339729985641934050515013875374229578082632232297441092145321848391366240172405902357747160097303675360366468487305114541492510340399044632126603158860117353204642481921209059742999188204661577524605036705238157339211424529278357555724040990308341591348914335328834123002279395467292313658518129855026265579954566566262191843088886459651973600203337629398441073651932925265208017557493586294906155330613407496270665419501646330498791691618723773211594160218394095232606321223930527252594349331041667571560319675933877405521751744421310977565815901406557828015849351469092617983444583679196162063452192322221545721589195572209352349515052558281988266171247057389098238553496814464257337953432301002738008260640889419904516747901283353399955714394135837941704770413379133917488027280652581283323598611234105538365635506490758553797986957188304026324594900789621852124286112395999872777904550196405083798725943346017464939159631599931756113684548583511562154145709567012635432886646032900799472613205310924048813437371233624150091326610338480916987777862443061904195003583672716290472803878560354884738171974772865374362632735287560136767127376709009786745522327021476879987043206103750075594747973011133901808277492172639417365721278557538005810772174081096980923693335890550526872950952775011039381458103525319147836536429397695015810088352226007260376655197084733497162840153933161815954971340272979507194958198557793342167265901537865524202970077062261924269002558294722220602423147055268116065360445493194623231128314585740237886420421569316294499306815263233639249661117344971222318314966623231008573622022384422797345982201740792719337247485016374146722856773459632594293809366065737509799731208081638154299580970222932797718462245213614923031844427016417442008640359774871805095336031844862408539971822283595394139016982035029226361555760507219350920350651470444436213777686068424013069377768334635782658480109081099102910387778763526194438278407888399102721005867143678527112274900728446283743065785306647259348640873490773201712919260406376175743856039536734887353064231639108546425147990304922885322218670880241578255236090981192074335787453837934643199112131947223587980252494345285067450132323457853307537644841232977977006072855374438604254529481417471907069946358637934526864812079738500679323422665375366144827367106851182754871750129128182411262244573622811861870111750294259249636833561121800766433308736689609087878999575692187567659860357809172394019910291497713621372627183566070377246614703446996436354755154480167140507962794604882846791259500165316994800184357264204401189083722632539179184369003470322400790162166721602021761529902990219208774614042963971098267852788088603799029077080715248233570655956591812724320680263494207966220736164978661140840982092663130150037239263824921831943676232358632105861043075450671040578351746211034868394244960111186294189015480264016006857020915980624514915919041089972772971607873243506953791416203346744602894743179649202443086842742525552922343295806808795148672304254012478241734684613793809907306785058329908389877874106777553098665686701815661820189149362244562838367972190747606175987850282429640403855221086788025291220926857846384105488900596620864302961934065651161263402607085324188736943010685796425308104361961914104189985070347801609532482101842535967932869505468385663219624723346649308031604636009856991708224634925906980129072846272796250193096249404804311855680259886292739935775028309962218461215329551083642699130422266704814413929804926877346014683915614554722782000927388913468727572714694274904065526256661799129809096350799921213499022321225388065542295938696339818957546400672197198643585234386130525174428815908216142231600311164323510405846601065870567928406749404531554082483812084545774173875960883206071778072610350605358764758377634820568987247656153446589212908077869923997489687576790536280314429348679313725299696500108067375183813418087337474546582822560159350008351421875629377144485940814098071342831380894766251940662783431415460929042622343151268405293617647535397917563264590952624077249271294295057380365879614360714724167294598379672880111761487755221011218447809476239799266201580714046720816285082366501787687020553653484034558854424505674478255562895118709358264510900475564715353173203046550714656826474471391181433030469989200192941990184856691712255804463926754158168697494839424472873676810044411488929222117753664952308517022253547875168349861516146117548546780048520884231986132481279093626338160380938121309413616734986941628489528037441998332508932803296630782683784794401133617366411198532072589356716362874845830240665537488663000581469390606143346965562866484480015226526166405958489448392281662986743811999698602084607073107056254273828643681059300449451693285562288315822935429345065495951556262727027732499790317184564562277198960693292255349024557373052715444998326706745011879661075141439257277899049785422689245594324181278097911589333533326731823461285184586304239238553105804190933016872515105029254657901936211323882729343719490779393437315986028649225206166636945297938226967882623300932791863891963537972747175344064447918134182052005198138388976311388883492932886450901564996077267531378135839368246068974186993553786807433003528371124765408142244663395295124622438523157240269007488022705397329006275739565536626515399417061486097059724003696474358134925315643916495765481908061181425567490609600391524874043083018056898784504671858461041900562721203441944398444784460192170722178804588212664553200007062738258735888486914711253941028641415270559007146069346900864509665357226771561269699717377451631275439387645310552699318256688612370116248341262236469056437637646496113085859413473016271841960492002391558328733682587677440933595971169693886884499004836773275610108597396474810647670713112204775313981187000747958945698971066610663046283172765316976906613320083634806027620050605248293026994189474884589576550404698172361049594363838866029653878881632564998733561501610198258828454567909721413382889706898886217068011365759204346690985571172193940598250594476899501783999263789905326648564580163882511917747924699338023490945488696014419092056450419026851827939275164233237694047747932339594338731538136986166097216531607785587734799098507977447639984326007899919903857097431619227575406360205438211652607171909692406150397926315196274504271614948912199902001111972782960784436360230445606532744202633556127907856450149254533441074003764382696132867036951466836406399606031350005833918981810143734314655858780698201799284418467002431762144324027847333274677505521046613248188044133865203531673714844018530202283871193555642196209745391085339282877032878274068913390271286862999218963390743909672195398232457962459437773448967540845089924930486833595066286015378297004453433017458182718171449449931084203404643365133640979307780956960784634712623684048442033407487007973182408550423515172012550859958968763304517783872292673025364940721676260314159948777767877324969892294174190193050373840492680199911771382494647563644178681664082888104206520308255272614558517132313498724608968492731081018319452742773110723592429102238628869003670920822394404588143043884843731189916919751701511756222645584382251387103015642528815461164513324888742965981086151569019701044950397603694609080613670873466411133720050049952136514700620574994347207155087506140389287127553694364059394213822340060920030479883339978144712203594594481437328405594716483875217398925096544502297360807174081934178796135111178215798242971451216414379755304940606982005358303640784848795091250396869208492213055981689382865217002610711337786984608783524563558357840615819793871589424182827431865856558917225994394122353099896798782591714614229297676549261658185573842308059783964319120537326279631326118588150830428467483707315540105473681136686044565697751791955919437150268897224618752831098850105354693147414791770837878149693829737155333834251944080093707177279336133692493113877377787828255581292596745605049353828858853476653782021638828675855604786419431757965207784384151392457171130688146845720416374541970314190112400687509135614651644910064654647763080060614780963132204020407930946802974580216518899061380438848549655226482025882455378972376911753855111845120798305039917356367874146646200959750589441746736483318459466532203300869525500783975726670245474092946899952534989971063279484929959706881680960126403388859086018881535014445774163588482337182329277236657023583957230781912826596875464802662507161693928088115539724698892173871611547926306838345295963152437754705470360478693323877351154262923066187334805143062085760856525290715293006785885016507262911454493774896871335932776929602825312517106141450193651465125814605355432447159278078319036739306594482028601125467925778102074155451074043419428753493571334543016198433688586202485179178089565223371483481522858434078429204627851135484002815520608920699212089104502760414419434024607879649566389047425570466780137296207361774460687748813376927776357709431782252165082256090156622541609192784971998851805486369008180617061082604521403702335071885227593275679359060079585581238206149989709321768855535562111148065991624288772484657149180584212046778830786877089939552083799561536093297067283164715765943757352428892502527917769664169211522476698089168473877954770647907831001724003264577226071448747254159328506675270052497424977212575948400661817071821786787586653798467172339323236345794225173178726932391267374697457573764052736398058436068391145877747329974899923254013486564096900790437401063419510608669013538133050491763524720146774758882283516431234852789868628963288964053238466591906996596457786385082579605506630062838663083480269044988215462728441210890016593946312560988681131616642440470721125945611583875998154335483996855589516662081894543480939706672049506295361484476933718094295999091206289310896232575605644074550706179347828452150248768239270286960335559165315043008607549672843311317777314263682251763256278794042860087604677509782910105256846218738514197269237929007439713354990177032856719452851803790335291977774141869666012692673868242550502976409656725744254708652588686291394556614372463798592587220921186149386441657183010245867017951853218013899371200378624224139351401982098211882288795365312894201398381807490790548176749165785227830308399697096657360086212184770694609852719990723320110147215962593988744517481937885936868022103115055646346396488299291152752051120039560262911709277826090647068647792194145758306426122609439870801909134974008800972711314784092002850928235790560399027712107184422617798000262047085269931873406784060511131872374683709805434349958017436523712938748572799890478441314535286909003359535323265393436461892529787674006721509232262398054808897688149755472393337059570034100577431840190795754326439814019306925026852018340010392925403337910480126964564349589971327535466543024221238431071707789756294891133008849578578401769174896774304907577264183985620843124106771886730961093228867116211477946607210474649170852924371978335735973699857783403821141028333112590064820203375615330208066754543964617106083324434424213007801683381133448733298387915881171009302593382881970972362378051416077241474116970424912195694788730581967933994156235875888660197448255945625126039888662001257343412158061319449623255508499655975691962617050309021733273500948202190176289492368169365688355942056813127753936317744790020003985862706149062607182674516518792716705584377400079119305385874982985377176438960307772114333474764119296211293976782890802304432712458993742158971357306513226509127548180926284056680552694849456608137788498311773417046763786812824752379374823142901710870850323611032751905170164790286020262202038133991712703948088045155096939314524147856872256376076367976566503565747539117253194446575943384976538535548577422776123376613485332709995062017764976091647907102992004444440447883885808104996580114979414203351069064639822776421179198763729566249664026359415953204973601714957185769684158209052064823048923184364544332127177515334992381352463174982272860747154842263092365405039251715784436226626234679672465396351480739502756904963653085616940488554550849000425752118306976841056618715660792018658398480521101794893041615289716817758674998055704051119984173694017809677449184279649715571292375936391057783092315778218147270298297948519465831631238397010398578656004571299675768563814045394414470390180420968074547392391828040666340754512498944973431776024016945002208962231327427192278587520771776263701168176838753219910123068619579964251303822088012909058979051034652360252746688137586648835395036000843426093824820673161407491909058025405771137424701472610824295984617113174769671569480915916789610083271100504570234620972132597122952136305451009584031418801504511389364718310791891236794203651908685614107561822537038878809628345603516765806328403177620808313488103087961655332299151203671966759483195164255220736759117799976184914333362012322511848205180162141625546259592120492803809246428473630619429196215909229795557912213891692705538045566409268538926995686446828546819066324598309734665976208078350831311738955999972904558639142387952196173628711704109778427125036671565837119976814387550770599279863882556572349099134379638609162818976890421938651491564367152376144679557202128945417166657679370376961868859563445033571415172982859666627354161202235029444302167571075559793214612749450558672389755686879990659867993485806590536479153421741301329661611171847946540425526571511358365746818571984270443645863568323767246396732447822711475190892173691447854157912003072934372435651234313506071194433938874899911707571022917251001672172137370311019304255051896363133982654941507320146448926556185764123205314248524277953409080500327813164212994994535889341785098997210173465340588369928955886571441436548365642753216107529811098554693880573532570939272294751745256503894969279174220896768843241808382262555316344464936616373295203808888912944065224259062907899280615230771749269036113257882967239193026020036422928052852072013900802776472193257671296101494839965036219502614879926354796288760653300679993520415754460407233456282129433826660401836843312746467745458853895242897789731695416176788042257302567483589078597038204560037361426659134312160549412640546408275168150808687353525433280050584896125936097788395362627210382181691124269969845636494332953363383486165735219979401817878205502478502493821052432986885439275543669569874121254947046053549159978575612411227756872433706188890570302147015871383455050391144041143792289713120989977976387959865258132777670745018598738876784241747005679702504392535790884965340348583320777026181328515628040184560635342270768792651786504983101589652514821339028437108690508439376553112004279322049185104707472179790101886558243929512111633390454181506496151656331314349348204130351970041065356283033405837392219197871764469472851986343340051547395521929755077712723803932338280244588230903172624871500515457426644369816154084145955490730752856045900370294545860862538512935980219571523695153037100924320607193437823442986683371781373026305956499982386447040459715160522704417573611432514436632677043317763926423896190195582073906810438414030894552751012049156284674670911326551317048406382353336759616765909953845808665674433360454410742928598724326969315057383594872419442854669431658094276949885917132342659737443244251612762072680536572991309708424667512011210770551235392194831587982448222542273859937068327124184964744116583847600200312831588408013403808329737600588714369479639527946240323464370872132531105814137112792803962973106504176767953950011938854834756184758142944338372200718328083665374834829654870638504703312170744199239745268056615936491684999448651385297386069726605374552794743298417087808284177359685869333808404281784547691974463594419395128158862731964430984908919060090282658155646038957923223897469914169739311863141838103478497504188428873830182121294927895441908247659165044620250688266432233140334885772855660349391706343115218445856340586340147740747620211384253108528178445105880119675035115993295139245544283198230794913174491326684359604904586223589549872826554189540797997029042172602371486421390791666281810559462724029417995546672566344680637449273285792269283776334698922577864523643836602833498000391389722242966666296068718045404070335719271971069384634158195233022709257526035232189057497180740345863357886804629943419520017711812803681060122377287316051878456571070907426107874879014176709406581823376806140456098366688002262576411079917126827170324572413623062043657339026329807111661262066761635977178881149178260272889823212310043499851354350852539388404591342926331852353112224910651552311535808807017923507987406776777776074954941803314354950734615630371091831501595486565478489847155223119423333674697044802666750436234589791122646363124676219115901697942828175523763150155164762272421837091826627772796514478130240295298704735973306991099280087480770799138302553143114379977176167161646877709427081401465423780487555700227746086345991697809617079064779077160402637083383250138337954290316733793856076684762519923892231419849233863943530963696928148798416746234543156104143973333471763730329200632721329400726513973294668010149531798716341823453614370221324750422794423868290830308711051940445141190083044637283923514344114423815671746087153526602125586408072798056119338906653484282540276779894126460810362428856593333805251740345198008592971530395537997810367789954912988252407169373557629870550309161359662211703282214940859835181575739584206441783345286468029755641138384893312936601285559260956216952136341766099381600227195265371639584753441281734430905184763225326738778926107964454239523963601792111031153546445860334848574382592747187465748159010018496904421545925926286479277818830677321402104265286217191359287244321687125187070139844286863573373833959508530167421691006931878577216594997996500010801753914169708419592430227043759458068885049933223130460727352974143422166866792122281919850851640125078411426898892257049172940115957069086190054735050017306565332840483851142780719436751503186266230669352757944020844746568707576150511092301515494171513269618097464895570718797393233557445739243633372116088395371567868113869565225687374794805172620562224087802186313059072923904917975763705494263697859733760800375939002896932582139204064198967705922734516963667724296870331431548743667141532640833769981673866787044844149841761572665310293736043324736193870961327856342816683869822856188439647645044105224579507887613324867724311315113434092481929353918382442053829366880740627997826105475997135567933059412971566939814925250862065240039437150168546578850272368416034991586352226436771865168860715350259510841826729851605459272191513718684147714553601517635668056840298435978531045551847618529040636785629680716037777424856965569994783232411507142708848372995265563156843336744251338679852977364334202873260929417858382809940515913207934970844840949924271341716382208971001656088517481731595423822916481006424210572380559322712397426120135081564770143187729123306892516605801588682719019755415393466311361489530008773062531280025293880809390884932770919278570889822181252859690074378676699240395767198782625762864959581078597621100537781149672763712071293723675281627058688692753979640416509839593983045728119158034084234445360616771948864789903330722270315497713886362937895217932544023846580217472930432224997978115568256475042565115743991052725809602166886212213260884702036897694038703693619925147713516878472208812965433091418527687889328860185736984755214238960463025902167584015688005620873379228552420821274506464504477264825236933836976516168663902120626876140195494903755944290705864024242357306381243468658000953729793794809994564359934040708367888620372382819767943276030929862419113239252778892240287206943234274040575617743358660628390392800714148871153994229121401276649032888844779413151652182281647699221548743026850243496379051614397957656533598900865259478831800334076517540428164327750050190905980900036575103825455760408466413280144903045387051419913092190828787967610517709732245886772396411664534465068941023141164561471633231395364037631887009686412281262724864007974962056135417906055301468091792793092198192935428222387799408425511679223335752693663896137235276398938588270961788925067110146232992780581536601210354635076580017939874217836938682325348616420064903292294565359318356980508982787575408009274742544043827540641365497208698287079951635794651545623763038710324774203730811314787702654307393596626450422601904919025278938471250385526419716173156743379691879472823028639830938540756761942325457466328037455060478888073677974346388660291881218606096932742338144937982128119252162876268705918907045148466035534278910281165593812845120991245250752717747611424570301231104221786628502615122910748724569067908541744259255536981413510111449368019291689267085989620028417342951259868032293047704142229267512817103112691479275736837437686180403950464007949224000326531330406766880903054898818900796420395027997418188867455619440049768739711889340991254816070065383127888061504525192673658063446379998924440907862928603456491723218430809256555846743715449263544014086141450292058344033724520891294525599693577517772081541152673164754693994952504982173878461236382754612222925547010237110666005956365835244630372041713119396929654064682659205862720191331696267860408326916040792084150759460393855114133763351812474941077079551093449665810350611789121958878678501424173003929355027421609852834503708187056394648026056602909507361523224432994071120424061899351488055181356073743767811440062297533172412535332884795773042010154402170129186678745649059551970299283755610207748117603092549889994381743847416426661891168906261626569591320525407744393079562614513182211622415796165791445272459047175088202476593051428346768811468634758479643392745268582630622861539933305881765357627193964957505203220142763412066923161811922709636640067565250066460439550166314809821213115967461242270989714561088678060400322556088644718056899547325818067987784346930823459550834794948322292438397227591926997491453129639220958632063128704091272626714974397163013999744705602690808459577410689235359315041137168931213884399250237527954783366237478947484128452318889179623942414026426462765060248342611687877082408667985568090560108906984819512074112555020152948977644324909306790843005973384032355759094280443116678527081353023623467000175562991045496840728845285483203222879912003213967954133148427962730388737763643688060668025415688696509469006322903238184674339528156425585482362947196227716384418672532724396332427490686400384244297951216231418245557474640192687916377314974360341264953037223460959472087557111745646461665073557950319888755626953694958492850192060719594655251295483818216433306117490038272055778932126522878224077696922858482488529107532016557881667703919718616072793398277629583084130628982320702473115834124354392135455897523060225812410250528208775147648240506736572205493612141438285517894019183808836492690670331872774551345037347874701749267881886892873335750159135347795631122223074256386880281998271239916028281737850913312955447296173819005179501195568882392075874859044017903481109837890035431674335264649306076047247917379542441579659678547315789641971375395593059520299296611333178735729488250739782426790739656663289611674010659624887512865182932051997547426894815392216857879075381397172620083233409864698528941998007055886807399332788973102266658369456966833422605087563181472140446824269812515750967362494584484344628839811344858678450551423318444943605771293569999586821034789600758831148073404981133009449180801729450338440060993046056780486921366918213125569704423197357340608674583382327004338982968640897525549522362705791904284973772403628978310510442409889326018610412179204187514939789993145461358954164049407315074583868459610841524882996921673955715814506682314197506674885928110129285306548754081068562731585889211617064317194513787650659020155648072272685694332764985592225167086414749449618548521610140395529976483109342199951853547030142966883713170776641791631336314697317897028771834437750251917478047086117251059268772069279406334673725393505445686269204705981081408091715289310951299280573997560867003255745229634847323517495019461465692392428361519086379680078950669037948290380425832293159822905803503626628197584392317844052679445117972727451755777920924639393483796395058354700409501412192196233268921883475652386931480470877824122122533511921625391524862347061778401863041613390552205767528417286071516576815808759513334484725976756676428054788911519123182256311257907819281754894915085960433272846424372348751757836086351490955423738168977719441748608329621740313643260723408798324464925439741576461076050810647043604428787128929603592487988071896538430140852437541777260779799668885877625547622032977339102882806873855577816524976156772836864900963022914307537418334473104292418268448846098396741207526522449776741552713805776929374419711091634558683547707724506970682129654333436569396123756256997360475918738705813400100038194265568817941020150282876471100395540707306380318689189859509110099204475449178955745337636862869807247075308700414768002473843021768563020599158149579076178939319454488836084875792639269615473745132197649931702715059616198289011558836871529894166292595508475451129105200426449568706026932347545654374633303592140686451584049447565873247982512550521149322020215318605305107332356920514492018396595468399872903866058263177619852082535347384554830493708606506772007459284182791582858536608241747612278049533694546759383498769456197277327272236503150373812864689978027672055552417768344579183237577038989364103785551445485349532886104780551316352490495433587898358637557437218222208103804554189507264779135971864477528381950428383464491980202751767610425800370531692022395944956163624797945872430805421524335562566743451568313196872678610654197513871071843759806391231370491273765790258129447542857236562849366010734274802327125043068038455774919110747010330965540177621286549543923604567698094556365251506431236298393381512152375541170539414432292812533191602238512094507553532141864829674436544111515405963563785106977399232666918718046423943094402780340500271081012042253190138500221878440286502017930796604928057825620026623114285001790548222204974754916484421978799997656262715329962836832958556212710851123305976960258972512931413697548764809797683052108195164612036359060240542533259274038456716184868610860217876458782422082687869171500376502103721322934287290693319573508099397087726926448300108903278228206304286176833514899383214492372694467193653842278177559355028797392712758602245161338927526798632799396060474753847398929528084470861539291344873734408198678387288532207576913819458785268097384310363308805584710564015079514337418289829797140725542361341735400522698918366428921899270631299097217415734329336087647724881778640223953154740754056918726738698905154808990926302621789846571158711953957419238926138917666503852052792112789530759387352487704270119070702652787405007251121068612009595961586997825359584533427829220797915296191662792700742470100789422725659459949584549051878829663212999341451150110277097638680334901575685767870755233239720808546721296571562205109658464322149044538049004743726517124842960889065248341899882260461293612385838902195348573067911378372465597113240725512808180478991092201646612332533480248008413307791224750363182603497693577660765036396680440170233432968488397827740481947730826476647346002483320957308637403151702740165320911184576554929278919344107556768977766214740141081120205344382936235421857364432698839488795318981945865067644147688048956562085768038756822125629315923838992744884248337409966971539621030716358602632359645403267634479068409606983520036090587287580540463694197147462012812186640574903296713107322664518094192844581493818274363200715701656692839352996008521753677675051679601182837041410718427965238980185508565843277094777567023808669682577393973648251107450891971147890490161089739355709070108868768415499263157304049778698445751214298366432287746682085543605531556501500339828333095040027946254066855158555980663565764217387320979579404571418678199356569401615218595549848470305807758082976521437557493054350337393407190271078293027343528554749950060344208002121036242154478270023173606008239074262671161321506099657466542401498471656246397862289146085328346206255553360466073895041634070542145923365381401275860882623786880592552817640641368591279470716668891945410530024311847218153853380642941948048443972674839518499070505625652517702850428457852266938368070528857756549748764865986193348070725282753546010127559732044328799199663414758605196437147846583436589515395780850583322802264810497702372623564740317767728567922478588118593828458769565257062265663098888560667444059774789061441491988891421416906210349777350297893069323428059133422060020579705379038011969656829420635605272142851011878788200904677864997189058930691802515407611986895210130826215690015435937890836102877553633494658100366084654188263221352462744341684926882826351829536531264660903363442035530778256389004078164723867917589249961708501164864332229712653521724766467293695077126378241075607207581256725449729947933285479736740951526902751317465806632644736726593513649817938772217084015274706173908736089391717340707966740771317995051652123368843726285720367587662193332110367315089325486282620088552556036688915965805302490516591676507859670765373239183525549152596331187344036144915627288892729791375198867257714333488931320395700564883177518777889122948972179698986510901064537835737116861592356684076097289258459548528665677089728360863284161112823865848773710671532775414085306644662795889720948719797716306376492408792103502404070035758666821879068812302564858656342390820407402668574620471559003770598565792273084752183658195585524670640169298384680683769917787179487632100899578464521066045559101976938616845228000685964719028363678232701250910540617737256959569035324673285213224257298951759308557877395749351940367583160291852071298361708548741070034240398162010945087072442299952719172248917435724752097942140419988468605962000633789556058807710445213922931731932879901061450251947744914623606548628278263006273971001844426999508800793857337231623573836393862715510911761339171661863100693800958608029189722940619205207602876769622153246572447199745518387027716386401809818198479872796339702880609030951284992860892975827279426961143995553788875228621491366586471179112213763528023225952083007085064839787626586295147363953012542903610033091724718390026914847205806775163552565257183122228528866397937439719821032314912428062467735665560981898043597862381191113744079240491882099473277367808374708134030012055808352850485309063663942894861324643070658997598326727990916160571682213364443405327487814115816026705657104974381247149215853659041290006489577868108637672639858764931648099393525613829377481114026756791794826665350957515819574333765178821241052945826033568746419349855367424574085867099700264424393768231665574539364176173608853611041837216997088160639600083130968194137167640498174865960809388971090579775597053148165335851930845513529650811904832418931414183449355344638634046032245005132201212665743350209266621132097146021735483833301311244584908226997640410980423840439521776256151257540947884196269444239604474880388488151006851557753986949014747534774309767065251999921166225843544546684247952141526742317095770270336704646726039351180733874645910425597330132661553726298616736664221727725758308464265006881887844280177301607361031470970455202578288017161872198108584446480660215456726684854227263280443525496823005168654059255453503659055491018977607889299000859007062612959705165382920058061837767972923575409598037531231487274127533849076396959671854061157426720614624851371297889868874759019325054328234914725802764766706942344670339043985808479878346570813808082548827620819875925564779837685469470302326282443115908705013729641664455804515279829628652867428262493608723726360216464512273589889892444789250938142594170345759329531244458358173081417452878237374736836868339689799065053376586836523203160887478191714255420428490291565886951287399097747600509265720329588896322608031193400324014175659323188067568344937342356039316353034235509099658643071772229987152546989294710111946055979955095412703688042175726335822496210857128154749584255063361615913753330152354092131787654336654030130608504263340909269070111027444030060188303691252603993652855129826270380325772741471665194400846598671220649664148503370019294009541553778233386519839013658079124349084524587955983361276088613022574885385749800685507502429789493369508158621262292581341636432124736787925863297152104277680571953292106572009657870945611942783941188652047751409187640002706625774026762518008538760380852295890638892966064345115182004910298581391789322019139308916478070192585389406705741274229321634339951931619033924428900673890455648169065422559627122724863049519565991903767186548917551222499245693709823655229182660039459181623159859305182380784500122199494279826206641973022175894702559483183002911907885583203454861392351066384762938726533189810332488751708423558014394653170220402186622334867074234898807636027260901337706983225068715016794193080693287690601108712830067353857836829631088485274497894805449177817305153861483364255696985056935478319198350544683243839256185178275815247048205611634026209492297166704450153307970655666757180768028029196106297771242860344127089813191472008623899988992767830869771866674876012131397847087465537012394055434478124083226853119685817801338651725159885784642226034515404093115845908997689567236615690198762092876650111221043583890057951309182168050457530187857520178458207311138998661199362173094674846867352627297521828639760191662257994906476899323186063400512404018806685506988938284715348861486394081998373935971360766497145070651289839552384237889807280034252812203114498661706142551570465952349756708754701834923394587291538821812909644376649524927040701625226299812582302615521538591585563769655369939250262568327087999908977162923825885960710383534618799896970452872270443804627066338652908465627754614784479064780457429130657457297319443453995436183558103912155499587348678839673081033036870053511744297054484800255813487059474800934862421503884894044576259797422584702688585418250231249376290847982619759962090062150263955196505227329770188872773697778910967000024050183929349592843150437981947101490581110144213043422307376755683519477928950418712499814132024984842082382578578887173479043853487331361792644314905232443753894695973077719007520122109717848093708426081906870942769771994669773830805669802209699826838495586315090954639756687884483671682768276095782159606081312499965522445345870010327321189556439090584583908770973838828320042450583252850019972282647731870218289044980871048616638660174924663166682348907807138083116621039324765972503681290618242577512842983231802476308049234376679651851370480793263153088848256278301742133003858409040358487608091630997880164272161650468437135675886926472450058882632785591808419925866305151490574504074003403953522309558569812322154030453337692142685161142735386933248779204902446854118225007953196905305432515947938876733111598549487030588314579458566565663341644235379068728450082343761749003735974940049390927383903305836032991480573219134501876269649521835313459086530820139200531251449571825874230715037074991505710344880479281196971843900929647027405889255469766137658438608762736510497029388778731442605684862065182488133083529936659220517622733172437827511394741698596275436726629537342717070202567370935210193034472912576463301759521065772826821458501143473544007074500246151722949498413429309047246402077291761112715169114054408062300874247070020523304853328491154869090813259556965760687244034724590675423515538381039714688859967798878465602334012152457066302750743428105937628345969375008589301032535026979811732854110470426650943276766007160377778929727675023628865269234250143157113789018896525802383053814516658370421412630681093019155304917967407766746315296092305644648117984865045169961503120006493150611563757687846372673744143018220160394583032846512543167482446569144125172249654650780822032447710514026981813747496098957454750594935600003029697097838338526073335000845163974004029931552624986520960640140418508909837421713896477861595566400382911319870055219387152589694872337600305268870553330522169553804866883018797576367627441804828984392308464888519109701400914299992599617393096898259630904102754076573238445047475003145585219966224625523743183122640804057312784949476539171592602877998843283686277387363582626258705134096202520008630000833842939973206949177831376381071951727113243754893903918292619948586068022811253090935835349154441723874142907653199658258876412881525655682579446376514042127256795166019102778859971983417228055738430629479459380201667491453587662706710836404573255904957818112108451344139273273920523036386414745916228572864805645624620152735337926383458512413971686778746867100136990755891231426384224728759586630653222037670048828391007753960015950186829356442614975054072977965796262470150209194181674538761598276315279280584923142707423768894766813909449780553332084254925357844309425352801938185422863081207585555078400396391618789363405969698302470220938636757592137433361645811571517834329086240703474250853746634390003994303043786313305024927493855991576790583504152916525184140519801536487313051980187786683304089811837334589716007961994192006722366724462270884569471912667298832180973452904665687753218909794386615896017628196191164429913689578866583523965966512774709911671507411958045113213977820661887665774085968516528951131225319917623998956228875595436438837569310556801418559950216284774983701587493521364217508110503030332627002660013541919573048611642831080237874821349101253000282302419395681390931128892959010009676925468853901093314428898206807709173662399695854400497385831191814707227547216820563326304716928164834922287727791620917221506727473741583361256138511835637303436723689698168167883387056956947900203903367029656514939666133461661021776934841825621839548624132091432435673295437897844444028992121725265054887572086196946597341202718302821082171501443235955074426275046248230120732412383468944567695249418618982110621826209893164493917459099995133130379454258509514808456343707390203027365993061110760972317260829884567836796335998641210287904783488965932954533794199460231025118522467459822391749462573106567510099885130938173523091640301398491722995963682448407712325485305217841900017213316529592474790560934720901421678838226676810340218631926983651687800549509288775769755683569727123045983794196259417627939439867639048955346354626255813469442899860076298005366834590652322628786739457293118931212183900421078504695438408937613040433193967875708197362325534750266649169548356835595982877364337107843303693951645677055051058167904500437339106240019899177189538069610190705427573140414729358044035589588158541527992371689252458537806327377641881225674077004551066472525476226294122710982572101091737334934164017606798906447186817531832153995462151360105483945944131629942628412040726516732500053812687905325547803754503664330967435721517774506373478699110993354567707231202607484001801535047751596994003310968773482279570470980369156875147480738663890045569357411847185112630870291002998833569003241522455395151114926420390514422308948823321562742239396863267192280018553391949311937631148620270991556532711024518723085801782148909176183127850670556795266512349331747500585923797072664993599697392703355504756520755997558188164508830301644143129014705836830655832144086559593918894495443148503837041306736008827952152303386024857987814284264263859902712786992455557717952164986634210502142145820446779884931483384164601931770834629207256895922365292416721622534574679667726649954807439583937666145651304096774327617071681130709724140608513893305308069298959255479531957902106639255198745450590323520208514993189658063077544642969302038214731116061757893611898587001381982375900490386752906040296805046055409695962474278028880138965198361843012190534770886686084733040697476491542658778293348022930088395424825805670559358418733170931672059358453898820780197493774145581620876362493810073241424465158702224640188272169232749770081721585582609875099834965046221572528252091819318380040310162807337522100419523115910138790486383096133103106608062270981831755552093467373677827760535653540791747462711939220615398663287372044886701786801673676706670899764903225048452196130852157900058869812262101565383075259866605203335579479815699409517278770022291175143255933766373830363860668471372052554107669702028699562213681089604665478146363347620509257695605835468680258487495796041464343438779768438179730617992857986501867526950208874289753104559114149095853429587443605172745128263875533627711413328402424413122502749728300795271313072675551894977099324764101739920617659069961880600603654379154479131858911190926860639465032780206518977329380727796344895845210017360751959223073943869334783032251531257955324722108025699571108669018732989647031043853703186811670602941318855248358153829139165634179416564729270624527740133959679768452923111294790496035785231906099219558817156278727526004884238618397384692386872065531464804353017941487212897295045264347225878347776873875595167700172442438149815494107686283031901099155335577550915925038440060607905302384577545369348385738195753317502602353213137695648144471346806921455499443631260741625882301392422776409515814682808471729065631489592618892299110416487881957898512903177389296955155575699089884685063572709664225928436789220210837262847306659438711930729360315904478465529562018931041334980641401203730258452668532534790096127717643997009357391071172136500517363878348531103491875513286837115051582760889929380774917873496925147019710860156322968992131620167729677850572700575179264506397563437898259380299007037644264944566937204619879334820947798313797448968206791116142122109262034044210710613761897064176896662109707410335302871598397747692288391877542516754064216842302940655058981481292523828403974367662559916224080167793017049157277556054868743606143801533583951030987735726499812642490807990194636226856813444173257323118017498941322912448009860056553114050498183529731957049947548181126297986431539576527459649375807744756104414315418882849331732868206233941059251810895808442630730841646050552165624293723224214621478647393142427642945394067969804018780679267244461829752548516368664617101886528150708333351672850353265900703935230018530618596417001084646436671590725432772271849426076955390642338621625060283832468937764106651186361802863162750753044698873364864321696600664598735930932611111268243816546149366743243030492589512380734821099794568003724725087722810903607148327359692817854369097537695958578306863014586078080794592246108903569918676078700801623240927965723385808676572176003691713266929717602862516886485204643443143021969440981490726645914219549588503587836555261584802201742851675406764780094085103953258767410634676487086298147318913835866240877536237847559263434384227250838792569092089816920503554398171920159425287593666568912156260861904196846451465888537250153152487190401510861732318435709464119502325246179286588255580315440359872471472890149056440286879154156662428755729132761819932364359011782786589993168192125128459993433832180550826483298513947610543935487438784311517503874746358440324669043571406227149561333564641690484363035445076956623428810607819250799173786792806551990504014309226126886748231349499851322283158267774774808002637658311666603829510186399357418107761538763876340672285007884439050417647845220095497792017058794911741751876577888580781454933773415948940612530551303648328029084806527238630491663862790928202033086780504611434355984226695393863183722721009556590469214074504216480337909239280561526837580028678927158685086184166279653950525331885404420278269675316790385738356419399239619804390874365777348961392900106488626968202737834516351925442950129492649548519910227444434140205695980363420236046210420112321819720267360739982124421875109301945618332612601884747786718276037214178039307721154365197506791776703952329336826116187203761986110854179177768433522076546921141587543317865064260078203057106547054798273954942171072833208923230111749151779985391362094548406722819983950725808800721648546729474020792006724131529001258352998962770859756024572611047707434167914678401519414524344288290462704380260996004635025975536236920711176034288894200172096926984669109773796672208241429443600056896655813152687071223022244882015759580609816261769842998827254283731868959130547091978841036373447975273942156322124980004151808631142939758859119311741597590375191506866788860979055310232717895600972779452312944460618512005278849231223039555020952106266457131845824984969816234170897532518571688131815025201587498161762208179818474946507608083590933894506790774109506845131281171924819184219602654896630876032459188724549751256429815822862528941720486047228934992589584148428291142775702488797573914783655901254538375412151216692614593033187147029874778301414690753680596135457944258976754595512387614706567742948172343468748629891978699030545468865062055710846772137117315632415838907648899586255545668603090946134214351878151257789769607778324361030632560934300710628819330105231685552366791947397051934710126023937760081935006687489839055387662955160568480034790903354242163731722573901626677525778636421510798347956340696370930093501749409960120977053280463948183109291633063292947565585393112060504987144923960253034609666746566763709451239836308999719976185694691448697924622619158480169959889852507131335631877803821685451508041936046899454653598273530402860587333281966482169994062650347889125990328714107420333433678289098488256140055880033886947070554800640900128826193963991199945395788748748607207729685876955798004694309710351067926625320378252226284090169845832625049115934240766794135446582243610198648409168680316292536315418396808174031669872428986782705167820318932308370949757193305727943222779771695259968472610626548184539876005986910593026713658842484232404345731407395167739721853262558825663393014309096407776404476539231747386701026088206425148264192101327442271904168557870211826994310960952166154685310609589554297657572253553854275070976787213820986172350797209990927140310004980754390085282336787954063387167124884367192738845714674771736720285970204632450632372336518446400130921336269524462362449891934731124828348460996959259443254603823536946952864808549953359507005567250147854821014500923477128890168714508214585827671515584212612350713350318569908836290730714946251301406794068447391840562708272447380476355621115415312748449483921036920554655010086678832226476161089917848601408084644631854986811571442874243251472646365307920114394149372558190755232739237582699266892275259031811436903302589580285870728902694388672154966970589487316135948685229971601828459319302565566603189167423481085801415924839978693167385022419707893646841199991486304092533328057570431134492587293432860442125478755511114619860962498786118797717363551724351819529600290525193878129515156480060462764706012526190622084095864346920430783793035249152347138831968231363085925458045991445652645991445833088552080682791744355990853745450475468093898392365766330063157245484843310604590301725536050936189572529291557768598472319242892686773253271628416716205255121546997368964866930287791568856990370315394279800124929083017209670703582826863153537524505398349714775542894004538807486675852315425270757375546485764626800159402846501795578667122823378154880806358099729946815124818692891891493561117840279562980345957639543047775269820367494451041869454647806776957584294516926514347043242013547902630301270962045612037572416813221475312128387172269506836138037707169720216901427255075117795097285190289792935176806751751707277420661587450325480712287576308260028494008460106064018572434257386783710506035879515097008317425872477374535962436985771705839575994193862197348093018811580223642835765124784081356970008373420125455675903781596658236792838381201504734627647745405120951991186064943365258197615077988407862504949778398436083648694889203744401135985822083768892176929495928573578203557119504047891879774649381801312774542418744254625774155638655471848931095363500002907564276637371102739558219304172574505010504002388538606221189402670325367230797977368554340512110852139450459367071925145386138441729140063941880964311559296009275597411984145811026318545784008287444556475983523138009009850103068597004721853712016431818185279828187053898310535931442656787344990466456258545715549062392264194315403685276482326207792998987806201904943407649575010292404448428840665733624751769041746875722680571240117290027970859913420869148225865677265168074404433133734804317592256643815246456003879564555554435581180810422314436094656177762733946802459962028356254435904472417158048721889378396982116260145318043284606584188168337240053688859527934875112123343868702730217052417166500448917223020924991635234591196278926292656748397936081340957913013766423433383114389310753703512846965660212342341046150814487107315042999893473510223098413853211900940691394135596708490187565994251585387971026380219481030823801375067526261039889230152864333601948834269172149615699154214362658066766380642297450835995679256965231238908236524403004977380423789490096221349967756054083551225707476160871523650324435829438428437806506161695300946538705676571793352137061149457702843458383802741228896770670620933187965679350810977282390303510097329285817194276841928659859985053028200972328440008950470967123960792109469657388285058780543026398311644509142140021790029018119410587048568422665224801566831908879424050282901175115619759208780257221036856086996470848362756780072629922879009653393946302827309944990018124597565706783435008129441993845504815466605568768433164462183211995822151414069921754031260326380474843583995417063322670268428028643387365526782329614789417118277765225780066682698682994202248998173356059091562030491638680753208854406437760859655678701888433009216868033917213033494141543933346466266896010685072670297943702059081560363328680148558161230213684145115606785139442160816184578833003326440897516859489567796390921221785146749489686723533571017788687538077954211536147612255888516772360980507136598825289313527159953238577361216178287734968530821747358102609776442892074576234216813562434717706913986247920003111672849824905540829240911842461307707586011015700929678596053910726141932669310013739564949372606912864021513628503835633354650443493282171512291530454207441846774755209681030456553291222223628845352782122530475899080594166629424815312424819055276295311331324456909385441884670885148340208244976265373033414267754698773801125662701761925742258405993070946095592271108674046281069333203462320409487482590270732536637835765862963098569913380134321213485540181657040897539771991654870367202352646517347518166228809554083178959765152136190911447944557471061417257370170664019260638344322754454661865694924076891962651378309705678707158746586981599505299584935400399764081179133976458960304567424717004256459933757559461125297985169078933569634157953400949722879807608770962026861626433449290937622731449372072864904060005057832033159558246717332998576514857076391266935310779366399012949285663123062710945818909167308273823930935492975859649826285764315694666521613590255509624957993772699750114656275234714725752086510819202644633503940761256013372608145609558496937467342122372721579406148342478051667597591767963373351800711537799220362472296202749478058235996901506389571221008832286771633504735710879558729846968862686902383975595423983345620089417411880910488804665557946613180212510777417354899269006890192391428025742408684670229070859911248488300898954131136953297337137084902754286122321453225896412847298163864835659407756987031390717171179432804504756892514600025501280255656624158555733287313092772526768229470967787199546185355688370298727320770776404584906666089305829789874037762280496980541023990019691254429831329582356185037544466442850582646435405870514913809230418257844115945267662935397810950243680751252606260488599780852923228493356465066919022431994238905629612143466876657052760135969807552957228573299139854608608924690647387924966803459329170818856950072421382789532101593548625294917964081129313888554556922190818271590272807493853578840084116595139521379199604815207012302553650444880322414284948178433387632897066608225469343369959556953541104023524333004558142227594722246561170320538104621628815779402749933102066237741217994320364824659779448270477887989741073226484810410318900018664828869205552504539894807403051499189399162645432966433844608830826669611868149006292038206034971535453233543476383470476116622616206987432975234011858686604781007416865868656610692895697084645919128426880407920694413769871104169700845482290823504445346829858697614039221136688873135142799467814730783532001349719585510305529429249003384174024858179720333081615440545494407559755312454406763605386840288870706033967053616186357119019411006633002273274330660086923801455808641896422159578676077536222286863460008939115107960884613284370557227740200186343433550605191341597600024720247985817666933250667974050414430246164283773893810126070639667605199572165908094933377110838734749994236345468181195798537472872405790657600920698492647339367993804766130009323417497096140325627140966372142698705919429376968456920434002370627857992073007436490783437852069814659725914744317919276943019643741737445915279520074476572212516319220591744597425336287187148487840307608808779302190490140273829705181838020425237980759350753406973231673958970070542958010397005235639958826309930370776370791524110419510837253704373393352424287183447718598169462415169086739460737027981054493978131013613246140615641644150329384559100128520627999613793272353424506985235286465726684403343374800243609967788805770530400513569250583234736164347743126353004150584104468005175455255500992170337721589294890783738605896917817012185133153841425161180733498099995846752486661090767929460193971243133438256781626732230832695019759224424354899733990474596769590136504976359830416597419767597293577569802246046505465167892713206616184767715590471824528585774469262553019376864522809985983398909145318576524997953442005938715260521492217770331187896402424891445442024395043664296473301067008733970846731135071017540801414027168993334896565238977898087095660455649018424930770573855494160732048517652281673346969494840826059179163635362399570569105359730727056472583974548686474444742418869906812248699880925903840826713433557206596836448867523614682812521289414869851888347148788893216576861564125238582396372585796059723581670618273022586069772063497360062633780267529497612943599334417007799897788771733253220757980669211847281897609908774314413839130615995541102439728567235130990102604509206374088583295341623612251071010289111515166710661479361777029388518556034621694238447852521063260550068614391908511097300789152895460353294599997015750580360036318418422849366644321985897448324126222101827515579081953852999801724614877188469001701999396734295321454277671138641832937625888509704977875645844423291494136316856853897250561090550664268131079191006902973225947476475400916251072522817764224712431081275697368829339548245737943823486851008937710164246984790866061181680654608272265540773669945360930004270057575908306455748090958576321180184826049400362116014072226727842817671364818419849239387392465905936176313103238326047821073861189170555668785054264461590796630391114964882960689958763064751268431883821233588633253584841446108052113185693004742738047677875328357592288732182991222549158563267963609281002443114911700843678643491699492133598669094680792577630563625348293622509290782723176764497772165683750409155318095433361912649702356255041628085086958958804668031133548818201773939621070105080066471834438094662512908841938252506151270182002698254235988463596032101580383855379052411137542403066125592506075187961729349471325718806961042939609328421452597614625340820578877291356242661222921007743977604383626656719375668022198850456439155769832163474335096580806491461865217759718272377332447179676836340512574710979114688394089778711931069471055175803659067571042829520908505413029339651590598197610366951909234344789255077300273885937952608271168537365126472550079129082888914271214045467243856114711601125190150128805489962159506991651450378232378069492508701428895321106595888796399625574550669925083261909544862464641403406621312590827402072593521159426061587454477503942484409067988273912567021050235554037332684507271051765545824550807028559373345011515622750183124789244717316561163481645379647658895220582336727755979733061119289587749249971205615381176548800459641530516310105867970579595493435649200900404177640167206235556306750429734835958022148010877013645794899256829474536765908656835667934352526136520116723394146439226491145162504953925614792974233160820353746531129006888437349132121862875442115592695884682002571477482282366814963954110684840485151551967275877766449723186018445658982484834078219706002195148079270369559431677462962017393877883318227695360648886930831846523178259188075643526404055588100234007808327342773838532287873932361331155365601335125311690660131048458615087766107235296267217146476021914160162781760268862369829834170556348289366483947975636302540718186092070831191854795089241216388267020730597308147956878678056097248225914668953920915533841517844663718656871660906109552916416128831265157449993012963470308361297431853060646383825669485499732343831846864397697886002138453327029742108480472422343088734939514686173742662752035687971762106975072322752306698171332234452776089501676917176259189151641007071588840630078947295229695396678481992053298469986707218475674619338480171088326811722455009880944377175004080370310860811432826920187300650408089503074504705599139538511811484481512302035073145405653636088015961280649217464789538553275098658889706097247525557902740091857128346998556141395400647834383967058934926017012586879558119523109410173797195826288894846498230745318404444325420836872282395442856951507842865068690736659463792701836236287089005413222179651796313655741302238933820160656155455534170280045204622936310608531200852919918006054100844146377979980717496903884691295313364799613788582311730152875082381815090576771504742393718344556464721072383273012099098540100260618648969273262320148270120264632239653280549480220248098197987380656672686506169158785567463538231488881094153654043837624969670008473371925756598498207808083385390466120443081329136087594793645434038882883696022807583117400356978291727590681299440289267069488447433651377944039562239038572723971531354616034975923936560812268006008331526484204859322668626651060402567161892618423984287101992110060033983054957775381202559793138644764771195532720859234985319930707124967992476861215379427581054432532267104921115127037070332882709450733794533719198335246676402517951671510423889914742893692005791664164069569821670941073808094911772576471611407970582894814952068234176825457698870846049577599970490171964038676419385235167320544745542109869759026345207979457844936971094669256632681073672010906328711559119708212533702488659579591719218403520447665654195693027751967772155805176273303022543276613792869173111338126176448449970520605733260711723888378187726541501871524827665384664525562435677747389642462920726451207826956590050060801825274702594027786208790865577159642865987817016768511038462010814042358402088536829071416119248267676620361989123679217545216641191922759757646677477005568467740988889719926784263912776447858960017394264527307158474983472444160370460323898456830130332239785395564045248969182656389495950687446459638015126762410992478251750518290617229945399798648388781872661874420586550231285933097697343695599875860940944249261576816016250004207577737473679500935296196347331401013877299229536080147289849986018176672144762625942051111154282651262113832581882376446946194940939088289034566170451412396905376553137979225226504899026418214240975974263993964433218824443815834998937239842581598476484997805478098258794912264035015447923087773278283556618141579102413000565249785800507567152647348326762199022503232945872547121952114339536802886495780085132119819114122159750182712422154441869402574418264824257389811319662677125180753325354126103827946264491571768729965995991432575585180814752429644590723179809539721622952087235120675205393492251441890404572759628316836640856972782107327343390285709936766006955544103355284031735014736283766589169147165962587203351525024138238378595286499230862596324263953208815721884230964144692155397177336660316290673664707095454425437456920891941575478006732948166019584246116077823253609333937803039370174630917666409903712857743695254014640436925211645993983991532751633662838226521619367658170628934648066789587878103168443151472955886520729151963269575334200456732715188588353589488141114088958902534731112445292160703369946857917294495280967030626957070966005861697214217704874042587362074923044277589369718462338434410411515781504416688124764628247139689836264327506756856896196315495467681025290941299811761357307346145775614646064700199969923107122781648280116021272358384984537141593917080820473263093577571614862490340773159622948425161071263787800583427912117757026124263902071443321804204598274280554795518696591895799064786441406498623018094521849569019993448254016132622010455299614871460732178252427003362955042150854350725501303166947862058425931967963045805527879079032250411980477439074782200821572004040562698760244697065764909237920287939684741422197803270674871126831639730404937173301511733113971940342634241202392540078366734498345875775616836509585057060738754577890597634602758519234946232695602863324532308615853763131001411751573240500198707969130102584867417376163839089513055284784812937344739439615903705525669241266935557445744135591471082591575883863793437111748198288719421790275764579689975819060652447622404905613013242160464321840312518671554887872794721614703575751132204846233766746385886350939685006656646664105826317592765132738356630324147980987147374363306029740374911535657746574278456809234986513290429867290340895175680276261628468565288796362286299280703478789145890219362920399801239274760368110508083242821529788702967715575515749127810660723358362303826709179401397403651072171658732733606641375062691331479275627577738778821839067137688785857523993631458208245887100981992849867421976209356288602756027020526272414410179436262801069999245268157487768663991990851055702969878815256606029151491254222618578894941193215375901679875594627263475718451240195237695204708693479529275351919163153440382274162916925117742320029259281388559129322943503153935764176076056382531250854803004483510235704870757213019934902184118032926247158511824547932032660326273544763614416310800949565484140516046664945253672031107448889582108929892614775380108146909053603929986193274667615913597676178340851053142085615098790050849168613722944065712599958857268682892526384886256227862337746971010090926314309517440677896833264791153647742543296420391284847021079723520532104849771987541256334925538437000543515598811748144103240505370751477803024716187380547672373982587299961393325722645294020481332015961163727623275627044244860972863522976286553439992578528190040430221407586947923102318452431921924198125036458787070223677163062980766072118627198697400622974155557412749233470191813788360520383896414334092368344718335646579477951536200288878345261490541981811829677107326312830959879971804452538187371710923557111092900752537685800592621642532512423891820032909499482734343236166252307603920826942475525686731938209981433693958859761271017556388218429686698777710944694389078367436743157050705901934541371013606131326427057398068253508898865279075448704087616450790176659060994832462927866578900715415468730679325204502637991998249724018012945085914412782559500236088690367648702453942397838190373268795115851589585989184030369471311880168713616950906282348050788609022752707861257547178335990208947540335742499584015667765510535679648289169556332894147247327843723458992220969176912838363444259631701140892190293334580667048288972845128569705303667826019143163888765763751951931556883358165173694056420784042964685096066766237773568326655369855016771888163100201701227467134166956119598326466764015915300936745093696153993790553487397274141241435008114602421265711511395774065349847469906335689906566602949510773762959518316250777198994222389524831129849755534018221288652003586693297815625314132398852780951810799321475238990895115081558435530745693353702617916119406917794916072480638690171634127837143990765791216617225394892583050123812420532910597779096161572234705786535838559478994485828022133831020045004992429411265216255487265932689789683166390445350292792437266828800507068605130882453106948715545236426593641893882609369718897197044265484805946603444770046453150878158143155437832952973337093139856342186729844664623376990849153835743965711585983436251485059916109948134843744698177646100238926550628091755526544342505573941076654912773600250927215694301503081989327090382802989461244484035995389701366178928607505953871082562212538457384891884653208921958661042158357863317941144381876942603527078846836856083068434509418764176711836932881096680287338616724886231216446952933654873031267901116859242331339569460794977654850303065933393750339145812942842123557638753239495533184049913207004779975921406904826602503793818943738571240164996274990230731385913620171677787839402169937463889122173588063937976994771619362535435377903794472988335469199040123508806870997486696430052724348661531693762930895701034190909560027504467150841016464323283773110372249432334276623187035710497280015319072020777315107541597104418566166796584259019930468591825008556408296802018809605724186799577134473262215818548410495336284087318471816042409672684931746084777470662752920443451846932774871419498403925918690488396132207499708655774440612188329411821522443446347310448047743099328262202188062682390350746782514871274332766431945138527942749608597409026433674802652997106430999227240435368638268474557177675899110050649467963426214929433575677364018889799735537686669539864920633094189815762361467693113120289577782303913698422756286604062340805746927026585119878649837084908428841422190424981262315339381539429073006395658706992087461509163474689016327155121101172731503097487192713833941747220138183248459131690694932367116000394869541920535256790779371054568491360359371813994904612900402758086975636783096189040716269974504733734622495671561516359396779722702064186921149838377277248095335945672790006534317093118291046310882321877411594869475855828934206128980075734658941853154201763699710197992083495380132996552921570205469108215679852764599673563700579110677449213833196551548181307555323199153007137038569894628129896340082227103038470756339311684785135696687509978314072706894010031364156812451349477113081067269309574632462717239689891566704623886285041001493925629472779113470059951355715056617990995232139133028219585704195693152168287266540173050072176132564571976709854467411924565325313413764877427986246054482612350266981794901388145499065336598287526382121148828517120429913915680461777430485326137636448033994544226161887227671203857178559709843136313483356837914985070031080212199223559797395988486572874586268088557533329707955154717779454920357430872148027512660933113474147062614396961594592808482862005155129697040289349308088048861822281660636888914781256000767824476092232632900697390399751438258433139651081906321876939177700355030599492737964093804373676851438185579881618604946979992411425942376690287949544130499849202620360314157414572436630943810758717772178924998179518418042461008258498786180652859072549530579188640283309811377064526931640998766297128017904011152843354597281027836702723182217489045875771682624729213293866520394171695335781074913749855030834834127999586726639678309369237780595015950184199340204875594170396406916703693722095290359447450349818101697894829455559685779639267398029996641003218325765536774412558886642048869905293509068268412107541440951108147352234228967740970289502229921065414040015343907464067202650309738568059467497318949948326828533153107746490638062392978745335855631125288029663468815501380736038637821671314680935811243689449791090600351307435996905123779926226385970591171313170501205016724563857564401240028283208408048038305870435655916940552982996137102850214336361363407134094898772971134871280858662810228132182662298068612522873923664110643498971783962411954444955363509708069326962602007875188033477601284495450820394017948557019480503085329363589282233263555679903641815963679642817190073769787724387947239562869868306348645259920399113762560938452611832715217627340180756952796221230566603977679223333366054042101726141996744032800909079008619571567989635780692001461709715607986027548356813123741708687532069643014619426955422459015296608663254508646810117998276505076389795737238610784380149779943163213215752937601935199858961042730874796515238022056961125472836521680452740010216542269555830610762341157860843122620752445426370926012749349114108535660877501210731519377175136950807285455414426574408664777463718811128875766359234163537004868252025662165878353992522765088347059788443496925089392516197615281384222625986954712773894910964434406437925191193123726118551864760455526796636009015207408459873291576964057387510090378952901259518151361351341863176729738905137636300393396197812802283995800951919977577557383768685962887622530583967840016473170603710554580059312063600596325800584492109709714584952544465333119541287351808318614865329037806435580882021046826390045657393631028424741860626363319002725708949084742828735175022628656000109840211046452634664970137227379354713295012592581232675935535476347353974290564135871189224973191554550113494347321307769568487471685558757546127716164417416341623522366913742668416715193674967181895967763474239765617328394027071087764125167991338666512936731732626842654716171945528578075376247133957470815274512535626270843639394037888582875485844426416790388361596579981831498386282140980405489816355629017595257372571679854430995960889094345924813875012650638741559904626463289307006655383264471988819043905005864755107485579190044038249650463387901259112453649056702865414403658152430508010821346965964751050418020975368873665022392308863603860477090996916985769497023106753000306647411372759651999703702346468720732490769301926760124886671312254882126355725815243076555733926484605473291011267314325670513638391058169080949143573365850874104973986515671287779154528954572281344944821534058785079675963655743963207263266455587418061628152781494736344973708999088624172304580321315533705186501799762010155737276254437715541382342990591142278905842544649773506334465980159497930450731428013409553367585576803496121833853047854493419163816978030359574001434083601804592751284451398664814545410067318836573309981037522454320325398859947957813842634499661738605028784861666585119782621953230816497741287010602591564666402026555862817695202482597624183561402365180706145473650688934142870185990865421402216096273425078242994890794165192254823586411979961429612948740264024546236837552595672423669456126903353994545998695461773493921720274766512361614524234767541187002827155676865936924245838771150193741113473166678060725178981843526565195226369453919810771618721170261764369861046177097867317972550715206691892824293451334533630398384668273209965046592306802967332124557107599812570236411612702322410095309287675933161842326652447560339909468681992154404113947352754461853112904691562147938073812293109890375444719771572769285912389817928455784592973063439406837070328723569247704523544551417187483362789406983320144042269777336319108134651342791557148785888925620285008076497502106058797052490435541590797125344465399772710897461752815345829104344290153615794967121535660673848834195354114534147767152778708906419968338439586470352804134943024287282982603991073926903048350441907411365538707439173631628242453327356677466574886201915160035757245299250411151364811306651168365795075769599722285633826111847121133771192859268951979331274009326500993045594917774731005501059254164251120236020566742051461657264401524454275064691007401881035020741675951541836915907248051475469442196986012039446204057348671807215030356325605194811525756883070969703547564102877578264665887080062220285119519534467987020369084328512201590850576932565385043099864208367351233982764893985436117452306853913607426458374752332287707718931638407122850671293364440954862742284915005526754634554985328221411753905244278909471744730296260342383000965526293919550868871265719587756779151371340755249554312033576107141073880901291661587616317362723442985116936218627969664576316635821397965852911129795310297028530893115177639321695874025676951031270246340385923001669749921784841006240113380174518190315689509833623653261344260896102074627879020288177160476559617708273992778940750309973182736142590857110360143795892402516716516041492950777964584639860601240968513405247883517794463331782027517060150676827870194469633900951712399018449542511965800753458917320297970661176868131039821541364955214613831479640667558334386985628304771976684394959804685259666502892026441922463629769411207509289356480308802457996486124068497473168054245081967471251218748462775941871071787292097215361301056282494815429453117346393152257111971628102717377567781010086397875307484697623841950776678208200541215403047769148497152125364735154806428466116688532355915839535078839863588370867277678578733836180429997346398867903708898676792225736955170357867383752508388075871601325012596413351199769796947105366548450705850546120571462018059981239090184736167492746875526343694962517290256180925067372555344159388456331513548748226013193190951892228949713779546234831196175661280058066182412800758365442023626132298886854697917571309779065303252312640196601644322948547132884276816294045685681778029419091298368468766796915880658138277489658998426594561619097218014136616729405178179185230626909506561521809342447374197965296414154118500879204407697403529246372001407531372128193279785215079472405656154427887539911095514992399305294730224739461382102137814755789925884416794167746476683298381700688422195486197235293230533155925294228711250384537413748904550660416581950732943146167664112034045929919817992921487288993021249310688397379488474314089832294012149122490330868447387092104103986316341768957849032283492784947592324298335873087803412617780617987590733296515054369138919579455711428074533005917353290362215001269768651136479980321273203819646822447226231445965967484670342311661754773029593181234033180221310393514677382039609827570116854215365686510465830166615656349281499801513026733595063094778133851783708923393614055266372413243865752781387554370160404534732887749474781119054946643848652672382110438054225738504190681222632510644303267555938400074250316519655845438479168024289068236165455090556607924429186142350766197923969254288833458177055834555522673360642724507488922602774497577586439306378982868314224775671605591648694078818793713423565790153921904442539157379524005644739364986935760249561715707642043854639705063408852833914794501518934043189328374734143261549016844238559293442882866791261940141487792744485741881649017734237115031436794063666053441617064522973143666418235978166766098939285090007385606192640203180256978329891712686583197968524014504623137113873959316242981102458543206291834344943137165426235628024273881253357528360160877234835472050816315247280907262955103019245779484455258586708098183525959274220253830863347725079214015081725177175334455749726221396191584981135010168846473483096044510459980774219925584725196657109895877980789598285388597977835688222510044750998082285103292007806719940011203614103675226564318678406664511406807097245408887552019073469933790512520184840907898920852722450029246901791264270547537718561933682978291702737903219071337524864160222355167689471858561023029156685829396571833441204661538413487456908154544594747170249548391996018453466390134112413935936778120770735951841067988229766039069918135285641013022246292758280648590457606184252707332151958541158110054452607593098297925815859123257860504081576408925157145465850624317480052838869272210784084094638563456914944399788184506012773811412236707759301267642347305805815889318024857851474113806048475135556230958529073895339565599390297815376605217193301593618291627926960667840353458380906381077048374218006651488989082836606738859093599086093272206765070591189707747775907383278227688357757524051384172567652311503965495744567420354639551979698676152523423536222168896317412448578931476016435667413207265491178195263215197425176403338984918448018953079351471867141420186925827699856680056880184672977114886494294062634596835206320667157896549172595152678216523925664629000282546650471931029969352194482865311984870348812126101008209192011184655557424053355725487617719686820502505010981170599006326489392986882873693911604213901531749418801293866491637746373428370637549819810747286916963605098947761859474371902216501360831775899647973521873306827401311175430342110831529694801455876700289360197856508260140048264813289027224439565203793324700560905505182865126735369727315419503915904281360004231978447568383859039538090987173906887466511525880748797503122601769992688530732942290493537396356019898047790210089010252756154081962203131116679713444666988506784540848108903747757460403392021551013642310906544764598912724365979763832117438472191608082455459972860881829066291686693633233101153248345338903408784333884890297789734066383799383009924074021166237817907331817274193346986920492551602059437549039470286172939575258693564196775330613417510308434236382637831401370213595605872108043598823380766911702830170824479230295421018562569675693430327013001762535672774268696454132366812525074129606274546099162620061329734317781509873721880855148366085230438645454669382497041168965038815459545608243118220735633957542772689646438179303045053780398734635925584958638161019154507138628676934699065635741428429699054424235067155355437695669102460518718010398826565996259448901934919161434617560492126036301346150572747842651179132227856183461861702514584923765179374112499485621754332811101680062018028115635982008510832450315469813126390148102115687301668133665649369384264465575206957195210834617500369882081928686158117642907343786561260818865046545785771902463253789656301929820418294029145418250812429096925234905494192988569752846697434661632846316502833677694449202515116561119999499900250256780750453359497958999684410830272922960253570027266506013510082026468473929986846984517889770947839442702850409915466943828607945920635682425129864244956244578802670904054624983603349067352905869987041108674811437348443289956169766258785379560593346686397578466174247030644151655396357133429004124543478566464344525054122947407991701864748453720796373718124205575604898269359227161986648197608601218926970045515628826171553145737840491616260609647752438472439476771172108371124520621763995901789768511095866164078300133181710629619929688472997145392289642284849020711591875956017844081307264948991390191830211599519685956696440190708004516780247907427858080726564970983021124338640359286464923084604749933493631332471119896116127136457171189452038201713132165329484259989778807023777517876585952938640427740685662045703283105626803533825977819108146661077775880637281822154696454420691662770031698267053149153588656825697129101173299717738118200698593655135427957534772786838133212853187646666020845830300331392511736177963397082932628182486974801929496518690487586049963518538647411566129882943554549027457658989387412154213657754124620921968208600116622325520692919659089665025309094659174859230411860329343814299777941715238589467180469759110043377215132019137585692373948252317013907548235121849204013197878254348696834158905667139262782397291518383726152513442133929104200702943942354715091173440835620092553105618788503508886310324606102242718242211669618775339309380033151158486240219308899273563004892588349707647532123072498853059248199841921909502027628120598216053943916591762960102987790578874629475720604114776890592332972230045467978591898064335674668242939325753234715979515412929712594413880058765213292048533267911326498101357130848636149965072574990145305054302001859987171848554766434257016087895148230216702632082326411194677983256760891315377079910808177218053451970113145954108903887329317442228175453131230606820898249810734648544254470881964114026803976159168425494421331404289195895781169420422708615708370088055679614044828698118992824970877235624710379113599930043070163297346564222560530679863298374505209271153726457574843177002928179859328891497915619397156904850990183133263118636928308381941758293475800717590635784384688322936681425635460457037960784368555436845654933944415986539241373891078700251955353828458260835231644065024681117810968649727830859445784443046669984964988053028396637146123937715889599110324288266465763643388233906072904795948759760864071002774634487615457956932156272693208092588950873003738750031863585372451176303651538571325781248308237310969185155011665305314315663599628350878798498550414774928662489138055597342090086118171080801489287944426072102552548400590215386285598818435823644209973338610823309126818342734027662654414484457121352099406851458146666579552298541738465880463203617704011479171560108258584011481009427789834791767312608732543380028910919822767928538549315834153788494682043688861455441394380614306422024270942712116140642475353587757109401841416660429983161043684096417170151008917226954367185620202874681919641563054551338801374361704261751645785730952726350936639579305609243388247110115680693689878407072442293013676332530265990536574113750172890361676251850840030195808024097612163115797388556322311230852985219729778475539872898997509376508129867317978480254726724217866813986729543363761732780479321392375167210270560607691880213380158808475597752879641765876759922000048842741796788707694781327203896530571607433033413822125376011075565162751590840395647280743052663326362309068148494803279070474767967816701575496038741145903640120017089479375701652674544031472346393016150816506309922955057644611050946431230298797126381336672566370477128122665801275671092602524573812311189356204673021163635114083388077548416765378347265512789452899226689993150225273695947606445454017325369715884710345480609644341630490405067990895586725847685406361697492795805452402628820695910656317783428059577443226427934330565193878234056787037849267112355014852384432839233644744060390641773902559913798098373406906671291199318165087472135541375370298139765964768645437853204836914753341845060988003116689012468177864350519150559956677689508217262857153285354687842387397499543824475550153618261317609584794775906801656810399492998706090502991177063086136965542796342085760063096716477900626362911800181559734289243074805122174536161365030505577624682883585162328551899614710621447171038574636643960455796790146620679355369042372417698146292976741195574971709878639861658431230800605139904143842081156054771063658546193182536774731284899119501073914947743460243106215303105618851899196133233857188794925880873219535806402662782282687279970979119587546326670380870553770197917840425242764858172294483985620540196642122105266027172710746851993168353211186965424795826133052428761273032880089359560881699435813192203845069436199963702251727156942225537414389353173941329845753224334265151271334498474078672390569552910213379900305475763356885108106573521890408073219368521214865185925783261218728478647525692723388778539432288896563693292751667718788949918064434405392531756892938581453103093720887498401978890251371085751040091117375405605408955325397467604691046324609551297898197761070924660141617760625049860619259537248142157487618307666243759856524869936584750177735086777073454731362588132039141003513720473557376698944973898854478636413054737035335303514570183046492182092590486983708232994469549715682182774645514794476739531946223166805851878651629317410091143798159233268186669780269985209288454054669002025269026065493068138265537926950116908483897880316556492617740911382500077230496413128552299163835605475661011868425539303138155481549599416699717810424088306207591154175164682162677331075986816033401047919135905481316165644268324601855319331898651156871421521005352637737323542289335904161753429229996086138569138498907372927536086792801005253813999054831782271994316279469704510380622873005846106695417628358628997766274199776309152801565147699600327497146154297669384805570366194167101458183769416630570598530745299781763836159181010564920362737445308223974486572348360110952784743428298337882444573354404204377418424680616116218757053906946768137412855690413343546757109509762597095221062493448483801365852405414784571710042338396327402807637143235571108543677688128459194624508983366271608397636972708081860756928533893767505748240724583081438544629464325886050027516088567100574113263234029216301023507248720272663943193517145741499740596057892385247155538880840786717020393145035263863195451414224800391945496049323203101526200787683041360606294874194465413463006420712511971948638303239376693620992711667869335605140361697158945403766956523601916916755999982202036697993361928290015397264190336019955543412562089941043177013084486697277484910712406296084934057671580541545575002312977386166248875415736117136195043255120786644325138853839764751671058688240557198443721572308984645217129991234042993613439612167357706823497534865922318987634582540763261001989799019145516497823947675918648737596872851138613984742115560995736061259796446376855139798415330864697346590174073098968939241417836345147774043667146275463013355082102163257682848988233153596114530125329104906764830061905672919824633183209249782563364191362491169154768613732764825929075517774127152135026699225366224344436776664756233506622684881717770031388073879197485866372323407565693560178382763462406855825508453595357641865010721694094751696704196845956466257102521361732161218437032864907023322989989216022220378918102926026055232913656953242887972611883216424779639366338666310049121221955693577160493614007817139131333062656930051208990224818161450198387383810080927026931138216974985706728890154062203066111781051476637444468090341695800272805758426342298333479553143066045609878952116512888482163300666072375291743938437317353540112263534654226927495418862193319829858188453810863434425067357112029115817197338499045499855988516760513457367311330302527903678586361544970986765935235934362595047633880310032453395017246434096263098999443670825783614224933128081977901106133621876666397700339610646547582905052048216419472500110115699157586975140657401177731811579976557979886340436681740682712181781022279431612895658479825810495971594870320027865536365471764065037797665759721967040420287244984385030222940749454473337333906721204565554708454099657290181758037662875888636303836708481824095823127422106791728631356557211447587139309184875933101950072379103870045629969434320846814321653262274057785466763809071222411709276195531856288156775193926661422109483873940259370026341753837077964483018366756751655180077928519445532136202250826906166378294464902996959980010555033633270799764838202847446543247700646197258076705595563607502417739789559154886044729287347339540632565209405657415138769556169143539792570405383155510575524862979265104469364374546371827109737274413334867813250825396856521140674239279617486823128228374900854418847820259095751252702551013663893926327626934384794809647881652391539742008110963382494184300034346015094861095506811440420289456188214065891516121856610130819593645367954669567784742642640207880475502599665286629269635001448535942254881136384531571876775176102789489472512133921446036084725083737528721112693250874162662386392157360142116160472023015958294377523118100982528106537663096161633279964173315573392853653573244524652330803877638169854261504966246794353412263954498456079527096154854384945792851106060566007729982514386206844412057613981442905185579271298795232627179468404906997387273459773626315600031209071737767581579365462276303271826790666044540420532799287084477651693046106093232350211242795600877031168782865566329146442740947488182058630269015416974924026723900449610830792469428869226379791420961867704887631289563230793734697272235555967469701716263162905470894490094810112165247922955437447749510899456553113651941715239094769773652505076068674066338857712313462626247193392653612672809214906124196625256405070714877645500099835919959785467082780147916213508665464501743890354771108768160056007263535785746417717547931922024808450702451146337061020558949057105068593281666943503805298386357962974658757111360122232727722958579111106053732836032299310444161665592276660459195529392737766210655372277696355039742473044215769884987872101346358395395211394517012397095488923922618979244689910142509538538171316949291121949007964794962410544726330269571502277051567656978297374124550225899753063122872111582752829553259948862513481590379786967152040476915221495093200194516537549701671893325274421735979614105776115062401000794196608860510583940267001472660402167949542691423461205096161042775784161840461676253963835420787324733036837404859485955781244991976033321819902815896790220953163765400753664901104898199780191998167585448282806223702463477436979212925410509090718480995026069367819410230419935036075277578604830121462311600578704872409541083463054328561194979919757607842767392156994834651256910332153531183884951018779685770953875967412774185316490780069483413919610284814940572290161928497453309367078802251986793931426320436287566755575620294599022269502673696255222264621625758837180918701865178287227994456917723515235435728073488028780947977673125748526870272552634426892313988744642319344068454817541723852181967035858657047305933596243933587685072922303857447481093410336303997756361061550688081709555188245138353492000742299778468957879459302730843441862267024100994369034735672786752123112466881365025574965746550149215433847114131269610857197152898220013211919055049876910979893185546863774212732102151054912809331893402472885849439644701834990579327166009817121069959003502954698658340577018366671106437865927889161379418003755895935260778263441176638244081089920266113663595637010014176477934942527281911545543809203237193688931444715473503946006359928414292089679393379261041648002623676060069540904697177255242408745436382225610799419088165665313481848800300738979099853303170188590197644370610196689503587807919805057438588173955909685420616422936100899895401572120720044971149668697483983045198907777876946999378872186550597264646888754429246742686466174707532804461838609777277451840427715428561154024978630329115307185793934361063927774552360792071232212810415934510691604941635744370691948589335204462679713424832840162697888319964695765078007585138589461607152069508863474940121411371685597937439871898527962199492311242393041049701545523639281241381201565337199836816693539421196466510597329152280647175936201393270528604348040182164045933432915033285493403791452324855976257465588442884537434984594842650363910022171459542920399786245756607830027959434079202654307529577344546476172417611959360967125173374128939375042094348910569037816325081006547444771206743603217473437283944937769124436294104055236609357457995063429303536462471812415769980733629439517478688293380020953381119957564409613170304328640416866573956064422425435927701371665943690324115903623168201748395985795491145726635243548860197066938476011884431163323164336557083153980916990860197046150690805830279636336056634286380753477028028069173854645203844069733074146518135240191302880973062824658110737511468324446492369436429718707105258022872672623435197291147969034099942233068778537540663360981483347404686500792493878500566433291094073408428606887711498203397048014493629455862419491054284624461203884892705392247781428745720525018164372633186222025263140923371022716618546540645030796304594093278700214657844325249959051732660769687190151780443402831560218790551440266800020865920480135296933767932649237090010968196912636311610247438695739772564909632101572374970357869013442246481416547366193090446818178520397232560203845460808714946199381738216639676951015105688563156584157190734074630156159434324543275217772825546171699985718020959316463573385480241152157680599422563930704423409800007365461612912057851209322418607481434671584488454711576530072602435556376449590631757685898259027152988652375639358092691462397603214261063554020624706092770542843602348885075554261384986263292855896513878417727953534860661453543924871245677176657065913658706265579489097797203408164944897976802397814769389447436148702279079095961098754727791263838218558216563176300186305328768245070526851080666134986898358770485104105969792728789083305167275999667702598541208572751053072505939035434320794272652844246249881057635857680666321591002210465082303150728379109352017934911993030349542737377799764493648571847051897661119647569119547214768989672831192214929769001296320377255436775934162417314057477731321258029310670690484954251820450908600900016937015705966080162278245037904335645371269569115917708131342340874438025938791405805249470668559671131533303715825481224435741231690481432042054066658368073159329624880320847516532716417116046838807031127774113512409561772652852122246311968377036231754313357809219568778994772541571999299996276693326797184436028912988531064862404407854298672174377783533657418653527098623176372656969781466529574735712653213545434006045786632895405950461090570099268023759983251169040364014612436323879250481440064926471173665905997068736730295301221072582731653546615745851310415081083074562370019999153846883125678606354217936411235162727884975925459560787273045612432562735300364798122284345413737436493332906406204099259144168938787127249828445502422339526431893697290083617199873459183155186040253975501847482551211570967482875770910080274479704872995631414468369266913567471554571493968826214023865849061312442340361145220525027096628549492809945856635984213779677024709639947562974767778649723650419180622194314494650123907197248261222229555245908060127264204416267635773829010830562633955284666700398621012522029525719144680510341732101317844094849039382597662733228104082001163680523072614304333787739996218744804176286374429548960179649296302833134677628646753324154450876234402519168998718882885203551321525223694662334817246796474238082906974725100883204788582129269498890397405847997514902855771815627678150956518593322886854924498553964277642235049131863811075698198396760649492772423416614741269570045089488290185724510302224814399553508049812052085619530819206230463456488414475382663753408259804510248455706669209820138730516550528841463990299053550669386612825883125963679212860844201918470221725242954177996506509856547952118672097567130828948266767522306503475938616876520754862089150856017376235101057115573208056948075183677458002497794480652346365017966929544238381536717151636516666857740342767621113415267975621157056528281827016888244492270351578055486880011690434004222804417206701813744155846925626772874528249091253915221143168924100656228501056910870299556037961403931998347273411255101991875722459437134700027551013419912425358349099412907602725245399757656018591292983350987621887489829643512747917075945658443878561515715337587989051943429321156129913072840381674575284598919544446963002433997743911830448297305190610871540354491003467761602696937691801589654658173398171219474510053817108219204456484949332221375328025425157976681315922837703081246178252364114320304897349653920736185611640938704352782658673978984201937183122664030066057387764897492798745400378775163734282211346571044279486344416361668230521511775389025014817566738566654290061696284562206646261846273973602510412822950643105366816351289210972935177190550273967133880429190486385381611932410105816449406623686256056534487651667592246008079952608906168995208496118514152366037293421272477745096405475501833084067412046371095055262912105602786475870367697401885892059572444073280800822250593670360007849961508489280335760376555815862334453037279269406780730483088482668048125644111533043188776830363260995641541627809408157234385290772479154890167517849851483381462005008448509733182128856560272294724218420492001433815248893749643542330780390643908053176490700301423057967028213461510800043317048387632248829911859810751827720089866890479341859595697753485934829082692326316600844509603529303527676237755832901287674077997650408774931758917476806701722718696567555315024936508070190012406267348634387388766551169972823576645409729591160594451559938137153791127952776740589704514959645039989409683146639503097903040379637402178213270956193246332367819142874201430406197108124303286192527519172214785662875825383482991638060061540672034185329018811204951458280371040128612138055496327066302684427489864861098045894589389128812033838959385277035751319626639943791893650637933531061181882907094381933051968783227308578912464531559165950910985102654737839364530862362073877350514430032011065307644698473988918302371029394407499906553398248055151670287824066376710846631794646579265494534577299908774438072832559912589817807467673289673153794962002292123203342526770575875386074509114108457580963186895664805286914092406586241085134421754449970887252373012050429629486801681923233990255275362895086555434895298447197623172452967752582168597309024962752772392609467896499377704442886327951839316151691761167001193784035071029610552332169512301115310914092589179558768949704870674856574955894702933489087157353607091644251767954293324120876712189255752798523186731509430956424891390832131235494862770009189630615497235878307278382545030141790470426722685393238470480643515974800628282623427500025029430872093546730454541605362058307695872784948023075863464734616308253383326058634155632402447577991876732554483105149716276083577643199561842104166183353476219018297464601926122686265068301832396910973387757625559717534088116858922297630956449346875467570626406448262470518127644013573372668374701559615677980710747436614241959601539091148566794168238317015871759523224680814078893769734524710446135022015069067494357613479259351871690270265624135641927082524907716713032292965576956303218731316196577010869421502048804129910873963734784894455609510078487372034309476397160462214942300978179433917422614229324357722243398734780223988677787546340060832450513907734369159523774261650723304963150911719663783313814961273788054399409322436828430658123054653408648113073019316560032523648689897479240571849686175373858939887629741135073370187972061572413169268185886092904729688090568729095126682064451181635796243903848611666195518711995962407756545172022641667353794434035317505102046336615520842902544281841077267506655784858245887494745351659944579594408513848646176517748917202404442554615526261391900683445968428006061338877233710777577666388183096865186212575494095462670509233016644359690283149355173382722910279659817372167959512918373749962436171816841756051725377192239306175267715738322896546558296139574111292541824472803440939326973652030665981168796149514061322697267681972280164299605781320483441576607507770058194594858485611260512714572738642268623210849591816738252347261422939681835557716561507085978742370153610573999200391615912237343849940999205000396632662307255141864366431843921546380566478675103608264627907391435767951956517470829581904068429048315031192711731889725440038954836941897105812502514744612531703812949956012279394978508013574461912748449365848937351399142615145745127444582390415093288324650375458756198458207005214508666376230542770803551138022127756729359002092159455528988233748000052811168307143669482369706968393173645671458274588439013364531285994717991699531121846227642243039701443426478019347673256080678105397404306607950460392087932907439003285082016484641836433837867310038388248887666044150341840896632130312897553466055161526896216397900980174952141641745167038235648265017469886379318421632013110399436506920143269053764703130011212911141343377135106883288391789005930745231144213191501533939212428148968841183670502187661708202624870708501028912327014278151437582150364876762528546517592748860887045959810644791150387616057057412291326918035426513223822736519286163681166333189020102016845562375251083755409155242005731113290056181848313315792454484980982068923330456533674407283171899468865667840772413682297123207261031524954441924331318504849835109302238237680005725367632898549677622301952669657470491822496238797055495581657760005721547559793782758090552474606561758684938346037521803017232317682955596052768649001996954996278193831356641885678206753457700688948159856609387776511555111563829586873949160158463163381662731588781209228786849502546648230802334187823670121999538073965706766117217780560545009219290021359596835023725588562366040537932509391916539321938808537153002415007435566041113501732868875942411717202513043366467533513906826837826708067545484545905219690878211092754255523550509403605798705580662225875441281321259890813651688907698043589809637646693435189633762574554360128764858072205242817008366310732894177972536150852626068812824592205921043493959229737218258234855523038662241674533189567059688678457252685454325592011505879644632036886290171046064679066736815959742444412495056723288792537694523837963772320399154399828291947417521993796193238599923177225186058558110459638460523872257349176202646923482759131165377876576596878063354271539158426063808465464833775593733216894605632082878367588035618086391409900914404010336524154985012487279586994042015480578447823895712369031107191073131865454597375810159924879551945885989435919326196538088580455935807775111338238725290859016884760490485214801086838856954214951585431372918264955703102481113303479876121729340413989655805380888764706131782704042167791327132661879786975507692332614039674276111889579023474143429925092915023725684456505342537901275753099412102728202067896827785817935968598155818646784893135550767768175375386945807622502444097289551571293813302897728924704771970238466301127651837198242846764291127253538302243588402744880855542970496444645842083387688892523067292706089742198390760234167443611824713162374989505959446485197415479653677405551113993403944730051785317246820803049522410420254893287740985036670962151712828686312405133019488379294078153103740078260364487838635868170254817344922157899843378827890141253869151667769725698613236285317752298824083399538979329234851474886305199732562151427638569121649460987139065859638817659595889580304053160199405717759077463584207730920365914189353293303963792272027263632718055358497411720177142758665590656559402111762802753412855472658952635810926945548143758867231970399277373501546513263235725856778122899137215036266851312519750953446496468142154464156756833046625962009220560900509187268516099476614981402692585594187965280187723460035982754049554377898751080185653093636448716816937703185690975196092321881545015673078575275111694817019959416890669767017425173639968427094921701697241052839089631224939714619778286249672648485112220454465431780048482454534081118941516109586010331445603693415688885599000815257070059694782158518190475020004489391601402799635718144214786613615504602890400283409908240771277711747389919157323998704123010018589392166453021765188846128940649727600015123691503371501449674921159445516732332266761353137109851963748419895908012210826402068404970197360486171701448871890731274774439169331417421692574441579688434298199458179146299077977656531595534673744964237556702183396981988278165771005858020682188930560970969595710827045346159517070858114277830765146579189126966974622030734829562722402572634703138721450515700247344213491514734052285913665980671429301230982851452985949992090383536227003248825482811039674661185029691480222066821927776248685514360716002406896541022788554365510383580041475141645782578876671903091129307085200347335978286434349645961411716492234610155698795767346489275726011863101766406135441085116681119382982865425970988195865760938370375222424222481786815857750541091493122578266895423604608669508183867569382959377741549458284817723314157234845900550687065544834205316890230737704795606235388242890969718116384811790869754350546887822466109957023304670354397488615542499592656802718598241563708686872594168914691360710043394289610928763292236696334797708968527726276154536561851572770552171972404452836546746341497271586539188053493852047982551935940863378962749106807919720855281132025058949537577763172861544667727370271628183185926106427788743876300493398919475758321482018942154719553319857719216093439920887213533835258725186439878520521352020249266483314782292576604609044945399121769752884237315461172719835309298930106272264404283084811673760634873975074617878060730950840338741873598145717704423173278957358079347494140894897040826715285357044036967585966383100342042375852680993726567825506417002889808684128608890066682443597133053870767706955089914287646356748997767778774881578165861315307627800455832577033271118080585552551073103408926981579573226669590600710356694876174112619389266445645414098208624062087792591402475217523588560216220005557862377675952570599680809915324748339512133399871587911136062669764102475246930850695462322134004359861765962300742050299815151437129737949707922994816632495177914021070067805542492638784109500562832706881860013675560991461072916342932659876510293631903871069021543296872016968892979389608531192326361844024202057783439023517141777946178852107583290504983621877870999654220216249570867509987566747914172324487345251552272486724922448056289774697191837847348655296262086323410142700401504223517419206337626860693880220060302117967112795811810119757051311417759803581295948705527493276367239549093390132866278906145789451766343719324490023673553823019643192816499907175668282178414213317651454740545205216089098788772927614005230465279015245427328804085707747144231479951774775133382170665891664918956772509795801574748806322140227094926621530545260433970236130934242960803849263581731364599837547291290794256866698859226379311325223821764214241391200835063842151469291415714646889290218512459947586521151181472255040606316499946213433179081616911190225840330300193031117975505264985244555584193141995418270133207462570792315596075198081519628277248716965684197390911850699653465578944971462815404959308881119719302162333289319516502675489373366574259262817271663777084431081795213129253905677339688851393500640720519869068077075483470090771357688504263303980878474868741328273958557529166280674913560898579417828510016829502720833283516313167320077255391849718746551528266151041232221586785150330277261335551020135393738317662220439971196489099482908369121528769950848300386272166191760126369954695497972194130322229302146594718562057006611143192106186160651856288871345739831591603373473725797039441606833454296775815901203321659052800566452146655527365965259375577298072237266186793888937821021687900638839586155162823594755978690838488007106827458271717111393691002913418339669415392690501945994643531846853366438799499754270237275612129619170193652612410777323911466686394757592538355306469972183779082926377752316277304777274927104571500761246878067749689176522906778397034585727206152529614551161866830594724782163179786737706531622699419681221353704205555792811263655393208469612708735972759665101459016061496640358496815324241694817734700115620851113394998062797562306546209183768626975784615583291494138127861518748409342875670115606983480169514031847776029131851188166434429706499343171581500626613354127417806432486134844642834611746665542702683724283806996001040934635259395422419125399076486778786027891714094778060400134257313647348510194574972166925900462045933374727310128559076782890254049462123603677041244026856101649825704709614381165407629670002545831662159559089485040264860702526985986267842946888697548398976282129397093909017833087079840379228526737722422617754844519633260151322110599462522137845209417223181613393297922847008382538528508768051864599521581509438269650845281956553989939006381166938706993562541002975247422309290120161472860456812890820943335740316651223380063859798254653082820802367213322867798322730789582765605197483325388888527381529714786284886358494874429447559337934597470292212390177362986294536022438959416502514472955033092664488252292403940591709599067475601658047001856087888412477044082700893218671188530259954577357518739481706444580472874465503326127250367738292321453470011106133916260898309445840006084040463025597281858901072984689130559144372160703980173327605435976317892728887171573806568131648298534152399171467923936555947823833658946560441493827066009355775961693661893384920166745603493652656854671674207615359743919680376776695418159389947627387823206962453008298591420253772496777350392815866089407817840989753488319468403620021918496529489363751748785948120300898666623385304638516905585363508251568361898320317092545151338844413592974401784822155553001280935598305836121042503725822448984280511346807454797709043125375936277323448597878187908381947136211782510410120444350027408125749974995857853379447260320456371782708307212285248936891063670725657863286254040864887467513883374372454836576468799830336895552027711508945758672507117227010060446723301160875234996432044582976889667430784268523394900023872231612802861733095617490300859480408742148672496187544904184394156806762971344325927768156696481231036857749288517996429531227008594107219758774852971098040926417386990784354190577917209711937269973665814203268466095122845042349173116685327242651290791674715205607694823931375677060590978972706823791634347902390499510408664340972026758512612183009216043966979962575929052012128894968204398329097700550603228637104384476463934995289917371045647336061105963272965231687090197099298988357009405147776551916424158407837975384404007102938482918399482917272380778157125177296145284727622856122623997015915860631129071849921577229032203627902836463550510970459749198006159375641424284815865089263841540404540550546547183663502040471236325075666288500556698004395006319954522312563531155023695447836524830806354896540927671616549220510975009800215002986124598751353246425556238823506311765459387941635271974421044029301550113338100428216912177141557377842744836383468661184253773314103157963841248417365419205018396124267994100596713312080019499843752034237353766928387636884772447179031884998157498661187584473675394053602056278059893067648610293940281085657338725780257810670256078426729738316982764560243226696654694455042582570687631778603773654215929451461792243207758833672272987051474812672030475879023821635200947260259381310962776178199324390689239149195861121651201953155717874119783312478454866759511499178563705331133256416025723705718047515819342399125429663212429539529641594336615467511298832821583640340138588518846151127549158893051928782726138956438496355652649102860743605476598210147588142532911710874369573301567290803373737922650091329773567840710856485354715119531274268452904733421499126461053413452528540696236767754020249922990525527835722554674781414714562810604425891502196029813914623316128103895756204026735404951910895525909355301519073483959731455624977495081485816975192675704524920964016538923311253760945847507368042843666249436592970860444529102462223380094239478159495711951793991990781605715246483232822357530549376939741384807444195688177933656814251669048125493751854278398432828520470559460977184961906950321415212210426516815738174044728186726026989395251329921816285761055334069807190120247430078096767225951843847968702828110960680609939165720038288799449943097064403933494323746504189621790240848377294477757345962876556260106553985879109224492597583781821740476856404554856022897020215482867734127551255157939711427512092157161322688179535203329507068625965402034658963506215710068538155708818565221231633239839650020972586290435837308480444446911117865122941811904149473971703825533383695486481384471273724611424268441516661944313068186980183071509336422356995578553310072626295946769797970685834388877359382936502276239141199879405357579015118912525938655443115411563291090264259512499136311757075097689193256503379638224518598662436467746358479644949095449842483839676128557504768372616340473244486261256410557119304471416115854008032786213604972003230609607621695263295589588709083894257061294090970447148634945697803369936997788846518670779361093662353296055857464730027072091319519772872493047714672183919853267330668633268170621737424075677678835020776078683032030371758493520292739940449151130242118759059793238526804042656576784966083244955373537873854476905715959805172048507046454155317604740977163187895739495952807599636175154569528212485049287473843972119215954095313832131322105639732993546090520987898823458910608660717758413390762876883981295141064290274975288427665576835802162109156394646496858719151117744041718734384110886436386315882690381438407971177133949291062744285647928476434496078105372559351268041844665766914196254227495877686166288614333835974862486325581089792869622552440644038603884101412336828693242850674956103003598877301134387015478431958978184233026791728412118480885146354840711090710468964157158892567670157181798892066025399110222731362605797504761954731477883608063984122602547162669031541083319679524782561553212476393120313941447493095191010926692030222026172389389413430370874968701202489579687427590747875984326647363741338159731102402462614330590655925938304504931954318253239696314671842886562108175868908864373192290635720516724404989073590941619734448355967474738884460888807374356226177138639084493159307187505533952516862461512377357307840971027071490523155950594401460927075907356800890192767053538926735114274108542421969179205992702886113811702759856344232782620608564527662652293398810604944005621221231795511703757911771851688421937644843053140673310763704121266114982757245027696830319023822475223817861922418970444327189811855102485677433734949180642678999895907405454200868571976199188781707927174364595395230786297514112214719659202248138274408037412163307274246013309328588586727886759849168774247099564374139457723675017325441568727428148798872548421728650210584871327480994937457011965303292648504479342109860753408049031205879136779014464510566374853081045777831737303206263568954212885491801492808014581938981041599338882869375148120259850529826824956822698861788490425650393937716229244840389120550981960157151145012388880774338696827933879050545641880653784720473641306973295716822939177396080102775824146653184637677225364397651073582342437190920056159354625070086879006882961787972597163210643506870526124271553655871313164273137854429865305998110709587039272781243853821191975620244029503139727585040931407561574296253968737536434447425168761102805496820311247750372013628566666417936982509420053372776441444627859902115033250031198318758539601525760805990626810056275910753055767966566705266440045284776718594385857360554259608053446158768719039444003505458527483971662897510444026361549594819147688646524054767776771230716111459742605305151273816207180602953132516016057194111197421912417574456280377169005670428200079321950188752726294731892383566733570954591840530457669285494662723696751496950729435749993342080762264925831305102691587775253208974440646656484050010858769790018358898855171115314808949602537275060723647422539004843289892510935273369465038522352813053601482362109074200659490404566598937070531461932118542904076675771933397550848735849541385618865981961752914783875527752152158470147906146760856068260147299943127421569687149791850955649192238898759120582308928647864773505349914683405709809744952618266841231705462893846366226584852572398676345847956387709868269684612743834513213432357790954336205751464763308222690169462822285273581252662835260782567833804534261746130177390784004483032261041255159052353943809680688174510438683686941649995001434677111000644346057209508580448115018577022406071463047286201145459002933127678278886774370056063154194279235533191390368852503604404379599089742548743605300862924270952615537123156748347201654433057406079998812217197196362729233324329662707710381509436357997164221912604928379505475024950688545774470549127071687545072998278936391132290951404150629661171397133328611545899972697423609040814493353044923678540934413166407159886593958355864278020914386668252172071264734524260872256658615273914731451833967195826027483022519289898747235632191539182159441801967554395742428830915994522326554211875371530902736934889358167490888760275643431862441960927757297414505259661499872293198229075136182741967948495297639533394766485743113805878802768699747624303288671962486114991499870863114256317081964318225727394906007581151644619726833839082644308429942251838767761399561797769478133539126923614772156069989706461924617002533504398985168807008531565977154120966046597053738418965107055353127549850080974268950990858441010798491537065377197359920178434066035952409521957389715800803126534363791387868690873684366834965565268659066244401689120991981446329161509393442601132122007701463503280518502801371469946300817670319349540231689455445146147099183936273670274808417760165302261292629578880500087012933350742272007525008932817046623026328960422854052635582297312740700224155127297671318823753588215529408563677625789697955841994370492354319525448282708365425611529973678903967386847075333809175167580653299849789085373367962647667276891295566097604071538661220145177954635333659422649167143125795512703786487391826910350396183078060746664769152873189875961985285549840046012854055951362051363235006782456751688498276834259806183971666586849867989295089504653870873218882093222899734178045677912805587452065493649617733890438303937977501514702892701722863871965093324126417889806452793858415792772193088255200114929196105353771683248065657663790856944594429848176229601882886350699792360322816119456885698955315130014073213618555655517144480433725152015387822066602555008808638134871793605224644365170949384029225926477061234709105299316473517844754411010553100315841541966733285545005632191205644261348747842305715065918577147124416195738567171240387397489297227253070958216774550394764095092043181341560253300207844917667528754489035553506122011127382858789203591422095729479063925684392850278130449344856227640936494653389089107172143566156799491507247681003115083090244196788150926313346401663313569209667766430510623993194130375815901162813963950345444029117895863271787932269197571976364705991542860604985165265465797240814494655236434844649156904825228263696636087661259923973133786765701751383424578202857520925009157753510901684981831236662605108612764535590670747712570849614918777694161216499551155212612008414733073870342178506759764566144678114980548615831717123395978229944787259258294830583127393343242966741947328088936470812094326287454184842012319661495851015631834496057869283803981668025722919615430604897929072081393358622120227720729750291162868451428547676566246299862777747445309350606543809024848485019198099952293201915072557000833335713909283458857847156739789360885050956491938457506371087575252889792798465556766137601692028562812123336829969979887293384191528073480799844927727412425484570606746435256659326871974388407179206181209758683118980788321902206611856982347380536829531447608820025402895761474323595928328893499230956719728969267955816603722448536770585788280473819165350066610263050579377560119827999302244224829187033408825549662818545082407231980047142393351550515199018782832744584219359814831652348694465121148674186653329017214970035867939783894723968694800882135715915052836929015733484307213980414158953168418806190489665179259191843726733653315775297136837601094723509776600331287109468684252229347711001185221649735223344827209847812754695670860223779417127184388875595261366794230062250271164213006800271116571188213359963588511376774441745671629012417333249095237656899489105661345114211606423115691219585959506581473121742671111379151284543986725538750292982218489729787839152938842281242493738290031156482410844291053241404779309536888722448477475783206179816540310984186868832579804706353453705811524927673613896201825593797849555324551571877274531570457590858534191992660199100845784564711424814164636437874992894606071319488667768051504605107867667968490525526580094558492634000263465590547775272984816951463951168227344066607299228769010634893447855519748593526942760679764551482564248302285062852285172640228665581957011337934287514727532095228179191385613263195966329724022591508294856942442141247273699588903838420789727364119490273737331186236740916622994305158640017505213944732905977621448530022184062813321037053305127315607107999727233854326897310704082186165896117972787826157877645302252671887133674215649886386915455289895729911708625570675037139502274356269234450886203332133007185795651226805851696311076666694473212815803477504429538968009755161342081450870450371033092078060336632797717782493527822820738157140326607313433525809698163145122853927669413349586923939712171088658219151353443566177347403640083300444045825168223614768796143009246404155391844626321035821780617514605883248276229685632848158780046825428359366286748603298054922055536365630219715863732214957825426472580301285800883836815264048475232709976445077425987493759694750265126736091059816912713722374285979039778098947075729500274240024223391411595629334909841343566505052001711670830805363737042426348887093737042861817481847122559627694436338185587131760756280039691960787112250245504315723004246785160732235564454525823206268362514377336405304214297025557081886508766577660648055935779219892082305752439811217373080764180195245783284158440427804638391667074416898922731249387329167727785212996997987118059289538206566323219823585425547293450212434868079161963252099307489920602038706629433875686560835557773654462926554317195029573898121954305364819531616268514998950462429923704084885473984353799756476283360984144511398914178046617144364496313053523451192219642381344358993462841897976481964143401402370341179028076288288116254072144110274160859134069634024370799496848404187446292284708392483252239996378027868658021556301500805820440503112078586591530837288859117603365169040172108102849114614540912791314181371195491110084046079223962193770505634812592641262449469630914564728777553564677494609334829578090658080662352521808104105761485543537085507199384631335601255840148032862058479880373665210398897717757812887202548758691998683987713008102516129001113718388687550781403409043695438967387221897262173471628874026156362106049977530770081075654921412169269905252011794146427843951198525236211568946755917017199270989264978167959979048500113335577932236574426618694669561611500382850564682341849398308131016826735050855086258989487821855708424853060557949283243344276679201830612919143719922549070647664608291210047621164910783650597768574584492540684717345367343636467944238584115421200483272417534194984974642605397412362270864472040811295685912591207134966284764446085182250598024415764430500975636801283244611174602375548633242543679347265620090193205670949860993052314022979664531879268823421764629570442330930050916323145271926296021865996439560665725976376115836828201755998338355303268110028112543022718010860019398054610331137182257906082873065018132960292668471652066188486863628441694261923018414059288129501825030605432519431951367110454200171125925179416762513698995853503527839297719135712356348551698246910848166050858493608948828054783379482649627311372515070358459310923618672282294067174952897379410946603874817658708084622512876121842244639253918624999670764921920553726058824350164753426392875204292932252188847365505946620065291973747436807812746083485346462214083167130341094500435420872739573517381339826214502681689235191339643543331643482621656367051060306335419727352573165867848142430246181199478709855908529994712462988346811477600657621385216234926751123843955034025566368743946712060074121352769655894452608021453492275556903906428153364090627187977265368790061194934795011116249683226580219462287982154518435589227460919986964847792162204415866304306737295349603794394862981213590800823550749256907042250401149387032444745547797899476784001529848623850797402646391834644570705792834381839973883462147634843976370829017307450013436626312959354407517194020642602410839523810754650828998493818767855333563848478039796320497861728724677114576763769468997848825137257869867256325231034948706111532725281275623644272927499085594404494603553355385824508597874133043675888862371138286151696869231762665236896235522711833742710774039073475335457437037166403999790073330052395153050215430905327845149424836704063118736995997550224504226403508499694725424299099046745224460651031579472608165970019710848429330502840317967504529906300691330362316256183181418943156212547878002269386143641118763066280426240457024337264230367201519631165622686928741903842169557349012258014364261724058221305384526295486569324157455995727655321605819772597025851785109124712452679415582357470675829030569178957899117866034600585451960261805453320890319078096010755716089869297403996556595484476353098683756077081523610083703798626570666570789850657105410728566779714507217418135231667510043070521544152849186638530125572789904096688002153480681297034973053761212588019449958249059056753753051891150025072830368946469569534596062937706883036619235164155082377308461757771521155871341776374274618854832965833712190050441463106910543309194644444663219988790703756608471913643650517116804238204710732467743867725208225366795169573822908251606136044435802117936039633673280251634825290397712919823533735836462291292157887695050407217803696996183051695322526919522716190438953057317907336214136306837436524591727672023106286235938090849427990105393779502770446278341376877969670035036809472157533543592976770783507873152546793928202940283575083480549884621653221946280373536086647659646022368689824443052930203158413819129478513447910762307545470838579331699614852394920541754584942898638681215846892996586231545276042281266217647259577991908348262827044187197184118331970449787677656352441235548329737208902831675478486813649133825964110331894077352859575963609032514567702049287062051236273318154179812866335126007705317431540745035923638518765483274695227599758018076226622665049468386758320783859029933905154682970623530731284027599429791435022069605898921888815505002435906284377419629099725460292051501897554348346736764673621545997169537155469953546345058397428577457422370066178722381547265449895014599705529319933503490162293265656866599924164028080142602830607601744887487889463192164404447738265327724900124259860917691244195096486787649086818380973383250067477663331132457078286950487907105456042335749631263964706702148204055959596201401570938203311010762326197819042921698663149811216227687740281862999306013555452411901932214984584330109686350612180938642435675818990084511477051236193040039601809228285059798852414796797452627639981181977561011591350930780844603306912122862207190277020459316535099177344485712949859813124232671517752538520907301774257764776945840754913514229014808833681598246550144470264949053732367113233488710757748543125041471995794468086906662907511891767797811500582824372388230658157034678447318535682805739518189866611878504147047058884929347854030706652886263993219161183027234481299399360471140470901743493936026960462079209604768567717511098123467206502999244264738129955962247322231341547780820691349051532278660180962819694915367925496369475932430897179869510779553840985588397399594658776336556564165895159080463746547016958145986255112624354368130580148858737825023068238219331986321631364911844596662715040281646272384352404576577190979914177766732650463527821355722662183346866440438590786146564679467242929456906690070246348791718899603582541026486908826254067654238289806441601676248643339508682709702552689258437243343483638787113398475059434686174575681380165666934176904441641623593595416388245938426088967323736924572107088441976317446958184665232445477416160297718006083840858130360462699489771318219493849112717211019103099079030820737986849166549401287048762971565003750032829130662372042691268168364544966688821596208557862450300558144808494381009399118607191204412337686950729612807083163529451173600127243909914467261920128556538419793111355724666662273766403361373783623109064724399492672033954600996554201330073747539360236131529913180260467334764060983455282903694153801373487184381551673676730306510418073164638266417229625738389156772304931445453070424128080877964022808007005302497939269619464219505722567520304965981731416024486168877239610560603894633015543471915241714433172307031525714505685290789583211954643162647950819230419231721396534888635607655626995962368105345189107412762975618383365771505731516652896554782285478479739181126649270584967879602898521645012840335735527812608365931139320828568271963317817189150763607055320894469174659708682192717520165740676767352210549545486965855962709700377468507280110894092046340278315058862955332562512085895261378348415551947796895243541599496243627925690454568603218681306058500905868992923581536893944391142706813807677520848300840302267493387699648738948633819271854795486140361351567437924141441807230917566341306083390646446773104537177224460404631776158801875456473264345082267244480950322364140749326141582303253346056123285142216309458489195503965832585243743673520284170041076119795853282747700259734111571908446889321021025696070396529422071459119602618719587532331985236781640987570989636482077803258087591361306490618549996240243657807039785217724948972731870147224217395377623039482415878840512271220068687795831656880131831107670291273733142243608823352294996769329046897686346950298563325127513514895963272874346727636262291226191342597089724022794770430779244987481288658850522039725873817367933063401005979979058844070486165376355734550295002641766454797684131733689538461008942235426758570497774690002922773619837214890729486781994629751760265320580806466862080402522475456550633169486892169969201948511031987355083392139959083991491914979675080114902142419359684664682365926374008557634680793071188708607527667467146666565379362617990871407753298658606459546155808671058092888155940041679639124502167098464807441128261556615169481967364860654635780082366785714564773364540726615488745891767055733715486028475032883183201377133103625346483229790572155414352914493318094466833748821846767022977561212717143776772963887446648432685345250036199420882323477983892396817444392822658315338504605746819339659513949412207947159635461899824866193248729718973776506453671820784930326051511213102993132198470144947058832769892535871564267315464732763431582428542934761834029998720069681832979570136221415231036582859320393009079549651699151694357894196009783759873571070721500806777614833174962003996259573804490625530366435344637538740474141805944661258283442781915859737066125761064288154172295179015819104688118176873967362928020265647450773893932889634667528250496248537192102612300614439254902617772848360843871507713176322670182635093643926532110432624617388295232236451723576948848133116294475974763103626764521267406295197378310112575135658123065457966304637070786438081294116228907586042618339296560665678145851494590195209997946882769408073407201091891362935991778087895771898275466833052733805741116437934792696605697017939612455202187660700440708717762453959335388513652457542549980220157567281907989197394319501647598929811464843698764693068732808159309475105313226215574017102545401725410714984510784032484501840787756786230982050740796048310060099112149917153845651568393692629486174825156180958462063802432540639448347324840374464667572708059450059968901648611804002978951743084012804153815897912684198694936940762857046004938817239619151429101520805585010341252900687194864407736998818274203662116845992379448686943459592832910221633401463275729904668780592054081293214998373175002922961002847038967302602916991612478785301995844084147082013449753164407002844991402378627138166097064891481913634320683178432566751993662755279009739236122417485997272416804712399266515881759346484711783095336348618254412371186554431171525998319928467961325574610374108829776687251773061166698283354726702142320664587898213244763924127932874912490725922457899164096146256330470426765509137116854799319255634247916773336999745855769973151641535545899708519537127636250404003325704054582227116217060023453889516558050988146276035255851848508243958868259733101124584763997522189736875529556705024407804151822112882520212804073527363188482375672587559977267974318906547653846404491551460962731313095146300775892570520992383571854229445807753329284437382341300756752243532926188431935997958259825140153159563044913999916774900478842211798612901551770811710337340076440929183109451179227299553921535149289841162000898547746341488579784234416970677582725880530086363771207027293203650526463427918260991608562541552230549874509653075395633506461368101982203474962229285008861697772797962549658135239729724036735895410314764137244016096560564257093034607990497395723345925628957464927889909012128930275926462347809599560604426760390780585264970353083026566920730275173683882089517376507863762989967985249945098584722576995571028137421247644846239771326219210502946662580996042931071270856055380684449548089496649720423206785181871037863858396418964199522357221718071573229682925301356351950397967062639308682366234814653743628205530258839847126073834656114293214702760313148922712561606472202422613360573881709327619648519250125082526792305306425221870649545268993504603090335105188543843759041452828107954753143736914975264055570789892621628718262675891265930193395507212474675634057080929559780831538114437564441518321983602308409690769526784501232757075483208784920991613415952862465745219589369037257594901235046991054741957344254796515303423623426170070329638464578307127658295975422903051727663024292276176062241059614793909675367660649665352501006874858748441079656595214522879940049319629428866953752081544092764194617197703139840586042421060276247159126532095436978754563245215793650492886110486940079970540289996706864336688087880405075507666494761462618421738706729177348711734236545207628094803486888831982328628624903424849436925278851910105321234244337540712815673476646311035871431428021837186195497806110051148067591852409296751957566049638221323708850319145929322196090101884013300733843551824689931117607710176123085293779817845315357697935195795334216776727331611157370585683652115924858009618228639646052148451597572624824226478575209221473328853848753125971521517178051076176905173401881915359297153837880868487959455312475917000808016422827137287781611968587089820816159598613727796556178763592942058404732152046959738150144817721419508287802396114177540910857927300849041282091130434492726669804365175571592180108969169030557089470573491495595784882664388910322974840695556641334795397210318579161266169269231536548998810994758065754264403495853178434056147447159266852168518465220110375286245215595953873398863510809245406571968971210884621463652157849157793236118643437276676962935055199869712860460919223239965840000338765822449774639450129515044692154175031556641108391722243967694620772288012558300370978490823949303676276614215325705621209748820570981022224250166680657700265753215198805429361218070850414324979712942999689667673514296555290222010343230267750319415392566861230093468173141637352465096867617275220005282481978648297771350080016628196198949807768915433786591748537236418116020222625977839614209248318631284095626717826409990047276372056423875354228348032672075675452848845841606128956592697413843139061206398769491343001883586737924063127294555272917427522645828682525051113210405167016660375805597746067160850228907201164204746278089999203026847036024095880338808382757136240797694328987559595959337037702414767182999328450960948424735377330030317018968957855718783782216948109304577568364832521506687809280727416435905585060126306618839418965613063696598624062824214457389807359652202751228482569681081293166608856828819797178797131354381251704695738277017905596533481839862308915739235331849901352893728306164378667190293573426092336403987771350048046948440853796671082859861591517929664885427202157590817875731611761248264307298581604765137903550711008023776062595594936312832898090487141851060597172083112119905133537975371685860976348491457829538835511277760659634805402260733210741457051473754828436994359096953586110403881447144496320663639594200389139240925015110883340251680516404242198796241847267003775879315869255393988253614211018282904378191487129127830935697393315244383976079996752994788841341791472743201559408201750386053603470358944844651466727890005476713026539230961436703978555509098275987278123658634446057712755801715499388412644047621757033917964825524582531271698193585237822192285466922056869717209409266081516548366100935380982874766236047820867219027224112711712535034065025449660509735221472501521080703807246184478798779295783765134230960884813705321969747687668816699799629526503697479490469829174354407601160382137899862500179948035723956404567156253571285961861856706098715350946811769908589492186570714761371798246742075631149407995985103751124797192529736630371030444956869657344451757540072869413894554967788560872930618653605792942911860746448487071696305987384550721724001167917066818857730620522320893742275158175910830012320943541897342867908931023207549931139451821858922680825658461859665001885173672161959706111334546354838835249183548735321734542230117088713660925921560152205198015721606305784041738618888340355288817721369894209678662846916284034719870646097864412400449895074964763129748827676662953035168461499468985127939205163807332041400791435382459506728685272181879501474683075821674707264351246469936644282303378934404914144223211757778611937122556204763191611035687687890795208693950892056350879368774046737972824458601694615917615729307902476993235619372392258144384623533624432008960620169725733229723917849713874145408584737971030985731082071916856859371470993584684449199308422276929120732971628085713696665823769903732222248069050348761592494573330108918693421735789093190871779736905069522780877614613432754433047327503387486735563161288303362415754630349939976402956513371888455753852611726963310657706142532803856489802661824972847979314232869103971626342894998903958332091523806579213820941362037205478573921052306745829084344668735147249998775500567337073475208297485154731961443334402484371969603830718758816600429620741353923610406634428620778974528721412554578749799608564412079506861940474990054124188462985029526248578629257140063666815825986409240882800605119990395262477254571082812879116012293341679368347754056147582479020970619173335004187536760440997061941285717035737500584051445998453114477612292028311081871949267815632145357744393498391352141129219981587894301293953433379759684547764770854359510254283616982827076719565982753865998730867775295151227015558905531503769252457379107414226884764982243339223997879822801742713706123862252559615850392194618728590349013019936347987814559382017054142017267886407313387348937069498395959461773603084661054584171693400601045860660256133040070421171417079049592103893847204021154613616310728719867715008715249005930388271924005731550569608183320019203018290014023605246692306968773692666891125273031719697988736266214420843893491927981640667371421752828351107988915013923058805520893156844180821794879672282384141171296016240072951662764744230100521076837271260953143535769255402078236970438557802495678868053941387987045843297083381737508637286469429997383782152177109869464931605776273226696087326734023958370519766818224689144232974206688778278013001285241851632527507887862978376514105039907961178751531501652500001248381267084702362638678877169450241274331684694251450884749128840793079426217930635963369385687615149033573225038968373404191009408256158950229978784508481338837595176769726822183970050824891601669201387943580904551934366619848397083960929518098933992585082137209191207683456217713651736223798072663139111236192366921279725332727869791855835824235008209195873666803109195798332931253707676721270918584786701041645582681039970787107380261636367077452637399099152604261509931877828004811034518137976035308975461864254042374110905716386636395283069709654950438863948909226533098366839022171228617031870415017040858132715083002153013878202194772511138828343302579040364336538942434009403655679893260818735454177961633864157257077367542848906497219859283332801652600705493729285383522601287938099110921101633323281442167512956946732812766531981035172072624242687011469787832739364339275645647753255158075131461254786115206891352183720302743621706856814569458215375286689179820402234532464112547329732517111683204868708669358957509810328246511381650610887095887052196269180739703952904561571358509944723184758437415953763420936800983075223639732863758875271354597544772426023188796287763823065421338086379622563160304605423367258868707268427638804989831855189083067241250628317415111582542623473314659160460239899269759964265692078024996567667121451070893052551588512427128235218783989304752331676573315417834246866349372131801712353121990114091263786492029862485388984884479028800387705545933104732099190749078762694579549619628662910125334244589684265544829123713917428773518270942677335158818382239859424062219811019214655096115532285658595964207461595418408034874162422965673492009687298160672754651698152647224058002365255114149729343127889311454041393261906652348410764268545478946028412829557784061983842053181233504666195518494417177443456152205016111196746660272408451993956763519092112338297056832156785362677421338814148535875208334208444449249907526547436111891234841387457242102031642617541082384233879861182436536586322119197208040226022967970232956463239194140624009894324915934628076418040273469410212100210003885358507042555801147814500423274731299656308394053186241574597355023672462660960760362192833979953262841512758526599607067008699796714577081415490970754549363554725165041919198175564510313532087006634488022974517861243780126462525026970371749488394299792408242282888421957147238419975930601935674402004932924922739060162959039062735041936228938698558739643847480414050132927421087875837237101786234509014336215392128518927860024790690416723255067954009533411343235510926108582269736623677471377347518626574328436075455671298688135113195041914717903556336779269943819404386718042681025057488411890192290889157918529423565394067439964266701867662517014878312702611866728370028197775021585850718740398934570013934045791411303889472443362782682208603195165864451347915429722107470157369955574238137650599428689141741292830507400681657560548826886078541025298438727457214138120001371544805106376233457539696048123600182117936158644338012925926605909194592220971627644837681169425380942329518029614720486234304281248855792112876533266186157558862375891497663597626267131799928798557822795337077674467138908978885412671161011247795695500189357164451184004457780510823421804993390074253440277181200569962430152165566760502533823591485649056944811176341769061394207909824847240797325284900547930247712269438716253057472073984315694545382851623155605136124793025449425328666074627545788944831987227570056524878790558214479186696645176144351412096049385629854126410230785216115728920214921070850079475490800295116604458880589627968567103248424566757150950873835203352566021778049594840391555530254651465486609130870523885963157626093515858260684817338464802436602510194797845972006255259480054378503387864007598345596838608448139792387749803762474195892654258073689621009705581297807108937900248253386189401735774783786902623352770552011595680056266230703104197202974731591474126394939568840298217640021551110770793335803074343332097195654762127380626121955665069780027130913377762345332509240682555059906649077875175386622850383985012659320872352705914091541044092508261587832176587108523485747967087160972665785581804208318417759482678962469524610578957777691657735182408854066692156778368873366776546437911152809568822155979472698076696932641949088681635598892485366294652977757821778725911228099934761433036828400960605948558438318158562845801896081111490156551672911419075311537005550656837989759435088727082453143370400922821834920428537639745611491143618860505722579980886396677300825900463991717555643496492449955325653435042729319284740256160361861411878643722877218156709864706641427629042478738172838101060653662782359362873240156371485248771716572503048358785095086725958784861775977100764382913476448696027426968295702379256463284240925651392262792151942688697866222977672327828623234284404542429484640205339176624177421046238624352535712455827994840882135149221962776751389839923455250963083329679725710074647456157771156195138385546838017167392959034826856485885555030170034561312738114455162048142992957803053722058671863032264786346312724623312279832962908069517122476018450040821317547333168067332200404477552369905602845818890847727863543787482666443009970673515713840462461047402014635288636366454350560871784990532763719257460672442351743502817214734579824068408185068949153255332031761657923493900508510125486462020788898699623028813054242423045794272630127455449162909920567700817040677903779225774934581905814886268888372151395705471090002883916004087331117469876673434690157422883987005776571874661999763040286817182043441454308606367142833771771786121436527956451266292052787503569278873477091603196001608945814950807644346832681761155638771701706961173577940127292339973837750667350156649574455760254656213560727395694567368219625387004767269040748119277653428477631579648688250831586196149180569481834875866492432627683325576661468744905402486618217735972898019339131048629344457346190225473721165087769140608337872056643335410767736738626943587524779263199910342931663990206079778832164353983765364222597351047612665505775519661513381472278568356102047189698294129536777648282343305825746582011140347413947638333828813991340147579089835042012544785289829276296536040080483306232577955411599868129063490305020269573581389646043783876530855497788229934042740097725863035199652678871791061488202930602970487361450957765688557701720581709911689242004041395665684669607316788556372963452898639361375153081012606610692154204048235533067171752475900749946206971350198711718228377648066418396287603189620755061636411328190097900041797377046716914791209650933753445156136245551285381694715886028992539695409067382820599440709640662300701325852152873616597022709368023676112554059418959997070176530798303976213708601687760352967071461198848769153425903835154301596838922292932555828223214062636673324079879927860181153044029411432158033545840039784711310156522573998320711742783509599960465897947188209345453248035728595619281816253217382155713450308751665258967449032774544870619210956577743068186452091473979185550437299292834128116189021571710235580738101864383054264980693003795797956513928792571600600889824387429009007597791204932707565447378998817064920997459068605541011609497630616849158688307730205183776443211112250772250962081687678647800692183124960766311137403786976688312423289280062441917645301096925850156370019350016096925752540981465850344522163045375744577750782233681928477848913893302795801634662959442922911476922947717613676627936308981060162044726989607195941498946152219287585881713627243837304954477387594331748287696200502454507302557808009387397680105846242797592333611633148398240822555394109933317943438663841930728251008995742820245067402472714962831292594582387529382216103258051718600261196486299894947183244145275488934047125930331887488322894716984335946436881026093820993159742362659869839970081587347969176134357937909476580458666775702122545257099018799450319767811874422968031272400116661763784695335543202836438602897464420207109155234024788164125966721348185183417525787519623207576733861679219194003706002156900931887112985553969147170634255400824076127252426300561196997207431952583569955845132073817881589042965577608414382409401611977236645616504760396839698674223448551155672202658351458503592003855354129950786037261423048565786210318225101932193346122321194641361200288121597736332562792270020800066249328934769042314213857886660316062117654375853713469469330209453681447044159386898122011264300755694206177402745594959573332010949474138442959660961122441924534670808854655776440617627454571914099065152503960006011187373041218428933161703090250155582542511899638852551259492167233001122296913369144497670332218311354983196389984467257945140550660773517306128901950894349345062266429772322281927848150128261789044480122432045781739547504194632254929006141575675882902964568104116682845800929819028549723052268127384205280508060033784419212348248065996198360025320607202063522202074588837943205786062259629458444369614008713334554017620777018936353409967324456260774798347395281094674011526883036196519706651127631504622487522960300648299042795913578549824683899288032736756719176987607256541386637889142896291834908900561020472540289989684174094207834005896356692236661449364683897129467965372145909331205662320016816796775223444924404107747450651175646538281883609629798381491803689269681953563669556567593413500780062093706164382198284929186050909010534917521013747617202585619933762420555436507656537654098086562702834349784768200211135537253542412715312165481232616936308040089111352072961414933973817965122523221287079169560519106365401269876741495808940093796960396371556905723940780049870363231575692809645646411141928854729770647513229041835324484986598777833875704660154279674551872795581789746732823143022592793596197496455868020088701823485545589626644107871420842767813584862319367457376287002549929271966934857225472676493720956990595930023220583650273024148336141844964720768691082676980131727311772682954698382233705910221335849651280475184523821152816141360760356606666311968546440038790889362521539298997966022070036298101726014355060406682941410010984711727360293694735984194536014441521065359447850289789661574975029009829891898067500390618350053046959003500120497458642921838178216605526282905346967781285393337293335335627966916520020303385566541041032559344997425010346515149317875230221799588420979947462573559404691590791629356202778874053660655572066562874301653440566958942339662209861863621518183662662073849957648939291699722560615468419458008679220198783254364724398999326492320615017853734761111514929201067492991171340464779680517469850027676146844491550624909878193587674590051523029897217113760564955664324990007871231900761625949341530438313213188902433688984766773332449632220210257848842289533082107481190987393238037751608604599656851168073142377309831771432636910752290247524849806622170641522487382526195891797391741182899508950365696348821608433289901235121254671733858472534725244434965376612246774021729263456226926391218633224277565060772345007535514299355306776453911369592530991288633390861513509031089609939956879951835475441775195276229387207308566470061242365636498770263681185568655076835342424242908757343654292680862050020371311079157660197209467060743600316371879250911824737161152885209725177083085662758877728146919949410568330112543796009823306674197954120055318635913739388581045504905464893561314346917979971959084632590663776585579000340227876994380921270828019263255664354880871667058196529255510332096131070110083303791506842971490745458516708120305297226048008312946975506479803534472007080055364740681467402005215923447328217902241308796445694904646221862140950785151737359216078488066010294334021006468802491893157400329152738575427866973936088170785047738291697976581479157205026221469847866531207593066013531427715619249441252722338597377984765931920102880636816154299706606546737875119287374857991771712525844166072921293707179569077864904841923672564202548165060979869339446582381286327314707742191329850053439823660821453838685030278355120428443931929872750833270387634056667154023995389419858696068933428655193525881134241114585996021903200507696160077825996333655818714909686554835134946300386881399430378024144220589886781464923841701284287361390982033572065680575012600188947698807186479713593347462837398824109939487593302898158769727463414691746281336504257002981877640674085892102285163376169585035630441919783855664752051119780337975769143178903150525884706567026391444501384167492468259671806976103474791072466688724031680185809651717440390009717996977781040833494620211735514755697909270102240389570744286359594235107590408882851073864821643198580794951410502248622838413936883707445847955188155397953468606315689033603179357579952583991742176905134376307849159502832464335141091764072725561467023714950921015848925656479905273076075873082324104460432388076196033682298067416815565424720627902316511198673583809131485618249028444758796777727049246364346595456741643147204009255576499720011597971337241201551236509482010160743851729744409908589193118420364047039217693446772262540537711045121463221233747762909022737294085894540797716308857875367015993247118078181596694233065725445445868135401682271521621967285308430413525915051063011741817125119172795068923184992293127156057453008715035211563137383226297731808481753298397484028618690765311881078168742092330633485588684430436414287650705364306450728947048518266186083708786621711562781022643242846539089864855590014024267780250561286423573922201944749669696316074573608063637679527865338588978654620422784624557185618808306518391896706370159498793456023605819436052547048028725598082726522277870002197196960359099865964978417708121273414635576883600858944019025027933326983831929317305758652944542124944711593566067998377592574380888683975289329296189859653489773877541804456299780869828199175096379496793992835758560662409750489597515415346504192392606414510739501555688108075055113895754885979150185983761194716790864642187001568829974621688407235860923141544187120002353071321048049416129696718064065345692624883181212894864146238352372637141639054384377956227295696194655185056762504745921350246373907113173649448140287027438128388014349593215699894422023562401078134729448807809262835739147166505076209531542442493706769939663939581400383569687462897221045391536358714655988592909324779960088102877575898296150456061684418141864459798693065876877482886740742160860088834276703967752658439335466984587235306354535262523058701857879098610944938381810029609827444310697211741402356723649526519544544627591699977873320246958947572260192965414826376520101702601107779274655338983952486822781667864820302729926078916072837063672253911724303824095389722210920802312742998667838378919438630476478542998359143230787052887998201445725470303420222060590542895077872198167518377094599274048975386813104355189080375973433848064857171191140544786266603490857168728826062562484667054073640210715124396719711384685541375768809929028988875065715835544863930233641085281540816872437087234968929515875509295816335764394220936624155646606612332502552668091856967429474511156365976761461440846635363655217070773538072233059994654753083299526576474058302918843802107868820816762748796360314426230409643787125066080467170572846831392830645683802673643828581100512082437526837275654826039422079784380643105076880980661399073787021988457200413732313181235808122844887961749368306047524366943335607033404370216894562153276922656421413379241939396859318998621600639298821872901075799850409606308287315915469293641577172365118179110995651688499426685008361965990101158867267544968022303867686116307623842323043968733106017261952641673430213744024353384738482341841228762548403836004220460436630103966934263634533359311036485636325717737812580747227651158515965508159716534897934918625883284154618632077453481244926433044465947337322495022431439612334385051540800067451295711889290093032302859540837515750652083071124578215226108539508933897649642345671282782932530067080803951968037637988077340052533570563416595686978645985116334040975294026740815461041182065391532342294904706698412518583606450309034777867414286186381666623534634012720700414201327376617905082274408400762849865185851864562026414810642584162729627320661387398556116117331010520978007420695866663421129490585272161984899993055716191027082547617067831544971606512327772473841068821886162397929977722528659335594456366911991917131359404532702853443764681092616813540479900878417875302729191181930078990330226263062465138840200103298956374785882222968974466762619644163973720572359885737604195261432358455426057140767481042911918130585244259460457760637281573414854877152477410073301841176281788314075512313105097537038208157134514873379446354498866006131565559332517686201430637719192908044422605375375625083247918120724106342887098704446661043200918554654551124313990842577219760643064742609625723679505471873447408189856331993092894867480049768093141641308176136476386620355278097902469301747812412600809103428089297835264950501471816898241644083026979261713435331729141072223225485181464657312124943815299759251171801204258648206439669724758369819154666403769902886583721656121389339781786336139095270723193604579530938584658189023038871976648246933304651903453029542506310111910954046639310613945032309060219842731639740222202451133475595421943358059255339680529171181190639614382659864483435778983709788142813165907495422399981409307951099537579182719191617146275382038136178938479090432258555527256667334521814591069710990701571367233660386752555062827151905328262455094993736125920229846349083148721199336949941084925302748464717166782461437661714994321162593447825032669146171766719840936146470608352883478254823489093224180767554751555012109754970209354322194727395381953886027725117271395329248305036974142193067453319956697242705577059476520448208854445642875927409096929896665802635076880492374181623441252098744920063978728817989055644628240981121859963307869278150878762311109190119317366902440963890403063289312872949154181368219921646007063518140308735609235134304597702068223789189680771968601614137427978236204093924084986893557911827955751617714180049806358955762263848151139338565412752293113961690341148233852612291130398643119803811692863676553146618241154063649303522057276722201787877070927959001530421761472002953775858667588653576468095049362672071723253376220631617418190629301065220298615383245112894503348067530985119733107355215321577692434747755018823409730145307289215298136454271999859003704807815485160510848314577536623218798645131794290403193411255846090206887620170333897115307081327281386161790734092264464432595842134010130818560950289902407286573275098045762015035253239809573290087829102380859692503529478386769879793426640390808806583403433462635860298541363342657250527910751073231338106712916182230220337454791440416158316039456563256287485070915713460653190521119707991047541401115410829966478548529011377077772164189072354558016775797063800259830261224874557415939360216968503855806160590650148538282393513217855528640371055414340104103273281473579512719451893222948169070407081314644018152101661758079519771044430984601268014974883228974603195582208470502111697171379643096673764493110139920106461462193198602575117189027244940647588352476752055609520634940517325272662602923142370020705207032727346023296543363385898141097281684737755275876158441981618622625141593108263460431564111562508469666919616771620152330149404673553886261112558506468858942696781701239410408634741231514780219722821680892222989373080741685677313967988004520455638856626994884620751157911128808473428191952361466944870765461881556972405994215737783888685204367835248958612115031653011393093089466361158815707827801696706565104502387721251822956595149802935852576832557499454139169893819916513779816164246116346430430178410135357084043458507440123880079417876120725977556323846580700071742447201974084313635014968038185480787746822764107746916652135145116698940922545557251638158054544079437707999246283783460010536214077392723871775688316448861720768618244934057075246167414090407769581465124527032598098192974147985454722385939901583979241951712094244037347992447963392348905337396677004918515381297332551438122245931602914199028661734964354392927788613302478601619161723266597720134117759664103080905917028244533082481407582328881410053895705374780111402571909088185625938108512670152184720744565158471747351654905425371472595100946949475118239511343130600656625979408139369808090658241011527753954666347557084575662587896495608129314840521766375604266388818311840141481822631333123544600495372040566398381607333229570042305144578601831286909265296769380613151932059803149201393094569931560852832695052688827985550261646310226491218120934156604233184181229277536788810508774235325225512495921006378377710752309238052453756055138826622616460117381118779909386256538687609386085130387812862678929455622099736765519758765657643365518297166493596375672144760449111349309808103168720547292344546849989189196511596376576624341858498373149458290735523626830039054507891098645315761282175566536641719457663097540566337865369586531149058424307982621391824494496893180858358462299527659122745099126334403555878916079167458871758753429510087790331297029472377555472174207220279058418813806229309233411895517034873615525711302342875609422286462330148747421659144143934715175714146511772115172533465587714867858443101147202852787464694083958572046160395189431830214527860390157343592859685085060267954581837214934261388470830190965132443454787087599515406714764838286391963541278390364894597907343665419832429848504466449049851919817025250414962012723961399869206134813968607820445835896813553559234168204628406703600153596835495797864657038569431349633400829220178302117146571782034346514353771356965783585255007915053583272196339805018261278191611579383396968461377339812370254987727104400704167125241992880981813523426849980757640801132035596689855472943213072414018231640782145587349298308727637279532974752498593283732361037611378394581744608638682114180769455204985058407175523762713031212330056026192196610883351344501725902324470373107849310636616243056141772356089190757759624144608588269345632445320668125519349569237299480085287862508811748709684374499422530883628126223614983632577865735309146600399369116934431328480367469652864290750055131484476254962383031599697821890699359196753258047597964063965757176531148880853492409427946083678605402912274782745014483728415236610831781096197661892402929755790858109055817700507541949081778743209459879453620585114298914247900116111204706243238859196495937171339876204725923659236430088295115254502069180554460827022927769659135998798043415194629943330455208677755712839839079125183101110883607441919963282508020116817080312830826415156383002089170452723759566617853018126020204007932921907590624754124173304767649723369698145909950493653397218341617381467600032865860434739050651495330756293719368868595827975642942402604527756226654765502723022122815494604632024378290946819225990820407852934660437607022039627427808793727434292053065653334223480563569129111523053967905512431658636582279251737869387003540627113106339825650062483144002682375095099552519449865882465554083564188848297258811262381054494019012210112935606691160574946227310921191369056532845412876211601353403978313524371839258614364299805123684215825152701864410087544848898208805484054939510909218114050958998948188965293339254235769631151910175130005212227274647821752113053491412630914154810629387570765673728972474683133218506498693626527658263731239602297075948793028222807696477124861842806050767800355708959161980417843471862531429860522076544802619542051671439559624359169460310301882526146817128719228171516984762099822503924981253721162951246844052750337757571625995447070562880685705477084247206626896578677019461644452543791892097789440006336329740342294980592143651855231678305544904346358374452998049013790854093882918320092135888854406570908355956470534764271010644738907309110903371281335671837948085171319306136711254753111867608048054197271592865979284651488004981022982611042780778741000390015363061278671850645934073355762196957401743638953184440941046379799105680407347422136508194565826384717029674489263182443483208483619466554137652538164099489172619294514654928830576041646723310855072675884325140814438336959336688481333892507758222064869502203862773573722716967679681808993133666487756640427380729950791346651960386071498779963535981648354666387144653835412744366137551669302643896327852857489602437117182718309269696133622892313820051311124232319054286540817064672429229878998170331888598513158729697144085197608425228374426213912307047372494909141968605431550002710340555642648060099193595858782782609192900269939154555521798807728756280411881878287471104133783396661750592402459329562263248862068805766617595976302019422079466604058448104298199264754785823279545442451591740064338766089302319577260629618377984985872715590407842413241392005197303074299915467645823556383804101394528151778234386558395703723192988288462016887004441729245700844509913219868819488810791064396450541936347941066098056710556215704081462315629327844175394391642073219510052506258286081656853101869948143583124039559110053747641141114868366378424364680151821217700152926320416299832292290505372824056152908850965664395532539164118134907551107183266111535340668712006345118841490409464806134507305574502215040851466723025516875114024175193615531615667708080693044248225254284313675548377823818668901331774438757755683261711854336158898072416369188935913950118092866408563684475189271196021173267575634737906418481885352207338979483070038781330565153286648418773696387291760308156890758976099915015216113854068208690674523442523191549511312098424329137348065576902181777931843655573341641484508840141651698963006598915646606629474433479037133379965558828856254238459452271110847057476780991692102134025276784374400930263788557515019795342014255692295302281433230855877866739184347608765306127624869755861605311819261684427893380605547515328483943203750914048174965293474475888305728757980567394110093749449465019340884581371383797200181915152809343570820853506964775849285132632328568181916703380468650302604534048827907082266770559565872856159897030038592866637382929247874125784962061708611512847060512712313822155195354021175739468725905067687642409295798716273007399574952697773328583550449889174198657098371597947062820479253189088668043807465663485481180857930459756883837607603455577712658203094959840006372320079881339586143478415614788110405814771289618369457670104716066655034554074346805755358727796830947333630438652084672966504317150646673307230479321359804450764937994524223996334690537915929354515840135067322555918743337101049375749854971497798296451315868990455792781944296270471652217558615005200330737396116534348516306664351539504006180180265831827607550146207910637413828907518081920654377709244628271628086396103299324351765949367485828313247315671569482236633705222883034813052295240799495171514660420185479556490831176323577775642248193183260469635236193217412176795417920825800044096612055588992844462759874227877190490187289204769413795268929212951322835888809132848671875027942597335419038162768330856815355807008732286993142907174383532417497754840128335670886478751345035578185797135618395475704708217062368896993781950219551659177615516361770143292851969739691468671891798484179313396106497831083103814669540346420383936141825087127972728680063079316952576922134377528097453862171972974374656201865277699774906585472149522718227783373559729896058287252650005628520395741086093961195492680174787304900782525187456985347572932370604476094263785235681081699085233266463424082483252985866618309349692982540722990247917508060065753638278267868393453412403869405486885937854288291123089816931392107202845848441557963663401316605096296894394251410833413884155673400602034770246948132643787869802937872311293048828297251507238318131248194975709751962997573794612391967575251991664969195129333506859727100031882037988299640147866877843632232971262404239636108807057638130648401899481180650206553363379464961073100340897801947181086448609288749902441130730309807852431357045739214822763280938024344099635983726561833777414743633115673371027735834204190348846017284232927886839188092811847679292245425768341315013466007458544705449686169385020075270227970192115971275808890040821871106337106188231093271705430602689336802671307248676277986262246178253574743887328607963022292509793946671430088574190382184352610806512652395157507270044538544000128014948556266042550517954646718262239690344987915409238298085958971570097886520131055482947777040568656140854688961936304146293980296328136368659846793920610286613605309477985978452819207349195617343021240771393720207743044023032237959201910940906103925694475440181320827688009918066824543353566916458522585728752740497793401174989014022426655898497383663212132861581169373179082928760621877379930421839068923659588031911049135038081770201582500833794424476688046220255897259384805945529767568707465697875073788745685933278496172894806092462987055433642848893130393166801859761674263927538879787900848855547450823464364176594858626082794740483501997987410238168573964450737788143366319997372161178437798148667092240419261351825691249978430783384333603678127753837584046245735435928005712139360076739136894776036046892138261650710634371667604217298394286258147326201024137186781128822943955863213038388021421740256502569127308726143715082467105305732595150470504794200644435650449033372644170487065361156381028227433897832136171087352666831084444089369750743579139721435902237830410660704535269910942674560403947046817948147993147592989096466041752297836574457762336662419650744972224197201695261321412496775515991010109308416865352887847718482508918469641554080371612210310481045759859686342317304457336177838166038954503299002551217689624135162576142877874577443086103468874596956555597911777981711254092099875387296666815060800666351379150264121947976486520165471625718524731080365254977771621182481686808860798086950421020195609001103359191940189359803131866580285742597269729549585458495732798665712430990642193081544847984160255748899281615989303921603194921398529243318318071984418036830129749485007767026476573027162897704718165604296620551273909158525435439357689062150820965241644112957527596252788112182207605730986742871928778312013814377985384668315365446992552843475289762186340095377990757606985384516183905415827368076780036318581161777352539598349205671967958910700972500027210071246450156867979329976928234214804243692530710795522639138600561214304269119763294957010907359798155096586714875141663916121576897659973014938055280385460289962967674801388902106684086585626709023730470091388612471061427948672201844663305246539625541339136721410592152902159072884340811635876011428285939899327290540230575295616122816404003420171796889387703281688961166131334856861221370976173566855287379504907826911897268964053350428032407527668372814029147001531024907895545280242063318592012894763684253351085185595045762328657064365962122215436816734066120969480919945436741858564515492889622288623425620994609298669577510376473378954372774997710985415543581440471266143057086099190161453876676360043255980730340397760130525353755319148793383467889373798617119043496843792515664071869869792370900676750377348951039280214659941559104604718233686600499932353247059480576799762872341794111109704888975969371106944094391342007292963909279769300096641077193588219358301826290662908090847588735994525769970892431437298882049159098502654309415018764794859914174576398770032179830789841876132207205412197781979414598530932676870138420804751478921619143397535898544355866256217925613753759507532319731341222178479140595142327079006096980122084512141287343607342956748458125756487011186261188674783240920649549945351197807337098336727542169115284216031223653713101418119686139113763082964652324520820165612575034191628345782994536425913141887337402559380102784782512202294772216496227446574460148678641360793944778834649062553243925284071496743070519203661108417594552495646763763465679197946578705005960614211005044430533278460767924223884425523885500951983187361393119132302215246430541448008197557821008562070748003549329079750062816174935748317240153828240081829367587920247105865042885595280534464844965047495540140584928363336102057946379050491553877183120550296888404775267332363009374536847101484479561426339164909067085248511653846072089000236063441585158438109676312106401765334495199348466659953736556344313718106318839867373092277485234253560436536377695765864454013132956430557623430876290979313829498113480718598805609500665576095775882250896660405612543719958253819928172715800933896019804746504420274396310053340435853993887469075473693370503291415514742176300808630502248096379469158808048715385064941884271624038486445964996102605661808219156545222989534122644102252083390512100966788684919865569264702312711038494532651759154622470904254233482347815362748234413251162073656148786776455498568670117031418920163281303157824703007192273901744121850249591009203270698441616688244531262639239077060918646604973346120001456881089623687129797470431163461668717720832110433444803784109467192700392564295713164064278114963940377428843305456562508624291793075669080631268472638892631966459087880653746853825368184646918188749224012018653906931693350833563174133221388198607111540338725377147799928614690362294900511201563903063478177464424527865445586850682766789749087271790350143092620773938212032195590078771726063032686258691833838256125235098938503405962578876249752178002834199639306526021202283835317916608828173443803135311823460152572830201949041446567138934869883119292924504126542663328722827294346954334100616688853903607996078282823263945310185325515670927850516157935646132608421466085072223334284275091617691203802881550562614043108747630592915203851214115953636400897337696173755217198137057419595251154039101136321530290253268106874874704690550176759381433147352488555233284445762920927345462134442282372634257337030772634479308507418673756121691336225896854155438745286725012103986107514998073920013032415008466838101588972312171969078081351702415261123535101990741636369328097802089306500307245069062819892073524633474154559769775561534684055301497822093870501361632144635062446339415677294115173055244059831054530154385900092018010009699192439872506570184129530569285325405044273904815550967275309459826475991903053222451580887925670668075557441639808449547854528047266757260013310987378311363130580485583884134297552645003536606966275832260663975688091322090430100568266854869664978644300929141987493017346610704880773707836152154424548334148666713249115121357151805267943081066111468155450787488132191981108049140071442035824253010626839138160904461303339574292459296675277534403244214777792127406868180157978765130846182166192347310079624123813058224774393237010614010740293753976313721929837327399731241063452164624205376321003491399033910991155553676626755879154410484802099246968239190555516459117666196826148364610238419328569111503418197849967483599247955883371927567114853086866204331862234532082689525295974512810849080524025780981452971086670220581057269988011305718839015036232996117462467789267969190450713524163296104100326924738049971094569030404815490370481768499847689768788335396210933191148680672469272795090143894621429510556797294377924478208086557332554300462811377941480763087950244282145886861513694379127452258861861061655914008544107678607118147622011195841850866141619682804225000816072999583846244060510343591463072972548149143360045794118745263971971082278632245631198089247285837802145457718986555191947519486760419397158220136117726497523029343261952783279770278229408406169577236278478584886760073317482664042461758332909168563672197310915300119695298551184641744466315375504882729856920067720015102419229936284416307373446965834398017761329661467641458013222033934100395038799009645086823956647930610365026204660658622936266549224364466011908683452389187211096499572564564302212044174379425525844659556409874204038492368610280954289126406671662412028633380818797025315560095775585908900905907595838138278726210378881182663888676497074470767115947865073250840340683549001665882517964080181095445893461000623469715032443681547550562352700306738214414342297678078520380747964410956672911447020343543215913442746194316909359950657399217037788925079637788907224284121942546745731520971363289820519163857486326501788681615315831504818898767893554685359190646924624549900382612223518942397559351269485818136908148786761693455920715740250827447229190162320153169659259643759752643862256811694866490704551037361316120247711275242851742008754874901279595647673222684996431726359749526311611641354916794616302199140507096474365028308437253800003990769337764869593963116865586463576359402778569132268495134487265222180978234346809633303226481954608900913986773646265201174690199946497481668662986292869805258110447613734134454521645320619152007288724762539073382899705584449566941975167500977151263038087984466246669864204636002837087968136033697334821243369475041628227676128025330647193188089776725771104619486032658188287250621018938220628513191556725943060572516473635971675965457845819679157664941939603413553806695701816565397743916755826757238758880984466866373724965727389421163159882486752647053425914533423497977170300106569557239709071448360745466626141972772876667912924579608350880530323011778186492701711146334339043378180105290401932311217793195892324251261485477434661817925997223395600879965494962734849554799501753640213885910186907700197292491669955452596405059185322650280257400909921712644189035423774586152878530801031539956828399430680326324752836573736835291661272146986828890471768010400115152298961040373513323745115968284356790529160104363575517162671486609094140600685753867697126093490207188334838143110914578870211535002263834442827026847400023447770341812726871182257864309650077518067683141960148012486183951316293485654546698200755400310330377866034689099343567023210778872598416277622544712265274254277816636803129200454316265952746849588521606642424775142960446213665049758906879619671169674163359298512868339899585462462561711364818001264635307628111196777968968256605867525795940081884229523948523125683235707950795253398534617626008541584163514628161696236323788693280713128996035670212933300260203953995788504007015439769387576563227746793218518466079470794703392716315296821456289324067991715138110703495625847901377388998916883961364931040726732589583651560782853401612030072341219636974033335236736121195806655861038646385099928943981574097599712531236696310423238293424740614072193931807897370616140241093469689252053250629591525070060571389930160141606191164639029797547572793951029633694038651860849579886136379994596604375605145526044043862720006016934995697521197604565178098135339626440055235282877875293910446678627663518416534700045274264367192926241539147832941240036047279466704021504299480544634126737387976186288653781769928452957550579711114897626508827653929966737966229031619643557472942902866339859273743848762719524467067458169892373199605272225982291585611162622601244873828070510312682055266081362373247997146836857799866327382758612832479859564084328100730482467867454210642801005105165721126667018249690763821006673597611501667441988933987157504167273979560939256939996700825478001630994946391250743540039408633709815135844067257496395291148239180291945868014629358808656241171894022340514248690563794910904016765300888133948166177047672111026503377317949718980602667414204915175478405490691715697659231455807422283571766993176826664882825080896761396729626247897255928337748333918822496421605345730907019246284899513502809333254478276637415289457129089405648985093305067524918724404921479013756280140704547985961215637536584537087559733095008878311051376460998325307556619446769372028067213894870028521194533463365675202342260886205264705637044501555969745022392559502693428485802052200498295201024007333707963023815411406813073992481976404794626150235721594440341984245892215313744650311777191318410448249270772146801263008984056080073955624508584601250340276588850720682846997040861023174984280005535303046063102336376603766054080458152629342208356347130965115195650703249197201269970082117754127499587923816807732844430442405018322108040090766801226882827182535141796433795277404456325014341182382183042338281274676652490771317929077246143654787706461161084805950107906887979327784027894181567540119556999423940043908176942399249220832474776159548914309576249853105159644287544388785737854468062288540655159418021055465247788966441158273336468785222843578203320297950261787949779878722109384258597062755738316176583685011240147605084578349073497758337819359212005329398193618052326703918450962003100015890138969544932944189029392283555266862775553481317377681926316579569780828967482580213625732150211303991657451320144548495950199976915232174466559796333880488720577234791021109273910429685337454435263364722674145458835265147695875038565290123060490179911769183541698510053250316654744591630939066916130669309492161335929760636933518806175511978299149552624046072888553768112394794526288199605577821576837377485808827860622830035002908267244303080551851492462526960686477491836312473895547531717643938990076304158737062652024817936036019084427458047100802785661512776264528412796756838294743806545598756039054768898551093547185198282030541672007433704925742386515013064204229203093551902479726902033100257321146171575664707914365086235311423027945514758212372406002137967753372756492102622069427918713247670934097878582068989866782016711360319799714011638196217559165308134922865269176568405822077954694256455244504790058206913720996487318883461693710067872019482593055560836850613888843890307278540756039882402898808337725566274201492213668240054466089593898781964804052243039972881450610140516411062736892034216448285198808023845423618309735519229895192177735695159797845782856146189030130770074786375838631328509769464731687838924602331514571834658563363677634639488281059260458951809656116229729209369848864571698416133533872840513221690875986452766227790448904631102103595467519334468718263676117818795358007227105596174660616399452845713431938549226537761750820452382923425237117825751737713635403832810995542713872866345175133395166894972937824156033738972911547372850358845092491237809623041839461030420676100956188391601145773262552355276613228667872284849461341720866094730052346394410689613760377823352237547154419263549294802755880658573303243980649231003609045105593878877175726936689336528119457354268808840550006718471504073730957682971053703957877132213279627263622621920947680577947943018764887830861795452679982029462135038501379935524853835532816681776769330098387514111621745445788548468851057085529737945488410300946006748419488314435254514812690972903371441741199166659445552483108281597716867249116109132747369498576257583227877474562786377918127270966633923556396776127721123033583862628586602944103190412654689329186057192167316918656235441064319439668053911691210789192838935488455557392373499299367698222620090362648560766803086003147029608079464828789145081065168393254485722493661469815894724109487161512427244182224202702006466098986325881792701351202964705637425049404759080652739509564739060225954462925685877100357084830461674028310225960027533012139087896223427315706703125572273148695112701682223870066573858495511105000855930301721054205301456047549773684361391004059027660622664960034932097959219118591677796717962322179091563207845858450104652522443469868829614393431851094132819061209995601513286589697895089233404994317462654000335475328928266897688601227486716119843042450008308164333937371009391089403217619334192555844011603896255106248706209337164698872189291449266529373201107240232305379215975777352971790122464610152890677633175842774036020154838640083720920366831134074497170950228605889432157547037214147473307613805185412489648548399443220852219829754330590387552501755041002759509895542206605871648432713907486917391830585093553450513516811671322437074270351472008779535943777854605750113259957708549999008274644482305056636599714853759688221660252446958357697510652051631842159082560141252730581892961779958159638995751182038906996053039025402082242160982771076957989999934160437919312375643713716614609479595261634399231338661636143574363559641392793591769782878011058940683446381242961323596704918357710637396512800821082737492508443421182384891937756152960043628613547673450388813879376124950745802735426076043032001081063168477181389162518553856038442824394767759713018628406116392463107903313836649981224591942471970138337993451893137949845849193312804845688940998337671359797320152205032816223751324014060824590010259455825221497397253239902835140250216518313465649961204541614917347385551223247936651904732871648745515267266548096943602606639370080304957480799108876502209347040190109929005647297390444688090916835114491701523487980642463144963649317392689593398007167919377765702110802483583511636742998481403818876753441300549214742228660312166013933991426218449542084411468308654099990747024827376411497507708087430762307676191202836185072542465300917496720403625391145286946276267815413119016936697131451922418991547649616100911074358026826854866498363497613220285603314979295573171751233241415438763663888447349573003163447690504513496173601665649566978513479288912232761326834661991828550631757155619906495161229180732562230645141998844709962392285579337285998941428437604265120466279802097533797396617886123095486818486772787903678106599908828121647733598969678758789649017294434842140794390976177869145662590449159246418401881047118919401501147449883243451518109363015933987514305355591154852137531424747254652930838207352026250569558048218147507799391127591782001162638406296464170646882278083217941568373148629338928430051236049991722255819151099992074224183052574303474175879261927907753677252832184132495872062355695432467120847787568890706516504826460919521864860898557108501015401828751421213795176330614033678968327485200107810997300877508405351817784992874357362188785806102791297465767933245807773897246015694402096450949980855344366029096458641823140905348585518764680736739917367073152297780952644608082725986555955006038695696139739142038805593960647176994201192648647501926292132849597849648225654547267858734967627892105932956204936677135583530461316309144451356820186976876638451131080133288824151662248920715941185522471128475825250428409264233119234346704506369355920634637724545683536451157425613040724378359613659689641775399151107051482839242793173683200462055288209061674856900573652236662895402398326871847030644843425639014731417749815004508711413086898646863629131027003787594331081741560807729837853375503404365860464894297690103698304255045117669336057240906519930207083242376408158274041373637210938565370997188253047556451080197271080845184964742006992432905006277317360662973621237845621794361379869026909092806915106503765016676993022257484924504175481047694592594303892584358966139181781570115538744180010167157097127403072017723644515083649088612042970300722306250478917559434923920597476696619174093940085281415957624585901157838187989137107478754033999298189152594388963770842214178402498520922063123720912456406751267253577956739752597625286196500664889125452896672905222395125654339729874155080091163728717469806669430830666954330609901173311144665860964729368400952164748463379387162257906761468050136032872831053626613874694263543496898784993631768572368937243708742613220578444269813661117434417797372683813102693713342579828571641610069762444323646608583020536055520109669391923328354555328767264756590230212418609949918324346856614006052134825269562559227479389456246488410406408579635680890101440490266824462818597991055736490974277868015961410403152255446264289257729831949398216020941075106312994295729612067025213782173049322648219564251767846915114836629800461987364962674265115389867165171446073490330820246643928609144119590834265234407130488321291268602182575557403109213831931761162680916053619909050797215493165310120006711985829765371261150619087038144311630357280880938606509316373092884279027070180813318550012004820176119219945872932880731917928448395651198269642985143126285355601258409213428828027807155904020798279905674549153012224874324358757564796482950057010071165117001658952978042450842070858283471663844217508674766314393620499124739018390449511531334355552994192362207451300002915629640142344035294744237147095673877887752973649328987013916275255645062418039041404349200897603288674390739373952596457031943717565388364923978266916294082969033422667708764317706456675296985424351260437520240095343079933192216536464537353762254054577306039664125845329394492779558563018375149273388678283528355066492023724310367137679270177816179119010439922861747207113214207922626125937070107293377159268462799160352525959474665898798784167730309206229585755390128392822552774389181622338404447623679564764716706884372861572734294849090115257326553852413145535713741850422961569142859352628630926485298435574904982483185001023966520199629173683159611935890908293250603732097691023393813350877540075693867145743339969067476570419027601356291430349996682359040386157724628178176563217326557147686343293871076989659554110209558713317389478570097212980787383580341777168672671336788267053415140112988585964892455736304608222188696578782386215001804748287682778935929555143952380950346108006971363863073019693539219559672012510064909159337133087369510011709472804867883981849789322159605217411443415910805873029994736499389666321798947169988844385730944684046489167042874506938331453213517149063398730942170792379943779311219672611642912588694168953030208680309355137681258681280572957563057152523776972436867336042946637919399233072962257297657234757001227882958059015553607538019400193862741720155555072659495617556054101814323089558368309429416624499388449492633118384267255981213405729627102987655542087524561128221354062788324762720169208322348628560892827599018371979768206095122627603217097304106904439485771897320610640688554716598822772867792995553965330641571452432520041113508417770306214491642119416760943553406725205776799777791465895916467593941191240913080160665556873970260370490655711274034369038490859500279413165339021893297051328371673820540253170911039273841088722489620845282231848079913914012700839793017957632920769645613897940024517130065328036975721397318437475047763703272067734211651065046460783989985729058430362037032203115987676507070468310777301466284185339100182541179572912731982320245824933939722507567547133131684663682269287080233329318160819480802291314176851385611106840114468067110560725177305512175919958826336934063835928589862771969666026813478938520974729781934599098176005904178110084752648122868618271296245810398446467208470715591680687973849078911416857548492832113171671670002649555000642835964834055997239070799695659672062239969736793565234061895813344242501619016646890833130631326657648101424417136871032853833784854299303814564421141683010235943576371638168415063122601253840497147759387593154456793121694864233548199400268253764351430907278021766020080102513042953814912747463487685475211632549851282711147068429992011378003558259547972319259840651697707283375364218925855765181235271972733650287130638547952471248278933464730964489206203084155380223759064687307851932088860072640211274352720150994025346838456609045164592659561099126675095565479409548057989798440556476233980160326376768077031507515774147170888218582311712977773387652005557221552752625681296992753776690349602388753027680374905858396358528035921515305227164257327566587489041959211399891324325790327134940350341975751134545877923039786333648743975600664651861031655083919898392327580983304218355586167009361424725764293219782074152099784362848905285306639806090446555993826103966811752549476664939988655302574671519342802038790604871794236161492827492331781030900580386726341816317148292963715039459919195196875237835270952991029897060454076469828644971338096982092760903964503882378515947081975942028946607058538969917054032590975641365890425097921333637418377089207320609042182794912550586777799598307086457193770477133441447815967252405523055987846128987878377119187964673325897507408915606995358157910260780395536067377486992609797374589391391556381818315481218002513701831339812904530811382214473183224197404758516571595729198917240182148318401026218847594227035870873933168789983322188328076599613562902897820458954838494725598250658189189683224614096688300210712202245335506357230365113139178024492831310766881320016732395318405945233238552312218369508498764307145540972856246832534331830306276213564441063365840834937303492878619663149583714188614839775902097688692827047984479203565992663637409971943636781402324161891653061891973522244929435784464584651272448124768940730285341078166107099874141445779516588318157596585379019540456871060353678461376614196081119734637577161979075564341879985778203555541940895268844768585957772238426045408742647366984037750292350005064918625858563325041229330594493669228059148117978974009289755752672586081437740468824659065284454201222189390882042035965402725377478234706846372641690856920991575574535606007825665634153018299657497709230323114600032537655152985779301026391976731576005167347320002037897716758132273792040814395149761941515338705199226373250529563719239619875635832374802846499044000455130359849467791216445869921911846300557513685895793834596974468763402301508944059149846336784755058160638521893553985424346035291915697710541250658965099429020982631195913154578125630560368595337897722005927422567979584725976989497112146802105188665630788548585843873107204420026765781391693643511300428985299878680222643112241821484821814274145852741071376255742388967927927071361339436292368032039274437143189067315610506308062131805766250827573236453143241764009138997984981453834684576123372661902711743475190100589143065501507477464984513886432745578463029257551007876610420870969681751698845666702686990660829260830609169075725284850287048794307372339120452164459735033627062240942263855415231470853494628220232163745012965208236521075086468668209574509045293519063999278216947130427790715617061464708531845541096253140913720501333574155003435532446973699367510910859204386571546443596037777396267405328346142633024884511343945695117849987006059401281505836864235733054326221022675995933433172869510650199055185428274784257757770001700411761223463152002014652549256137934550435775225259241536348673925484271934196583157950071667113351886346603211646560418137098182216476174312752737848048088439932921194000676527918435259993163992779120756240457196796513937717732826289068806697852150518390616954504321419049911286303375646057764649969857463224021592569620559939892793954293405722276400302178271223963601740348746427160292990997646567134108953918924728500064958068080613904427719210178732149527133191433417957016874362519043220894712148480726214503134604192432416988149213708560331477581021913952600156415600697992894415046986656508007321322768036391294580716320675994416178336373257748789275129187573576256701832624304755569519489522301486313244829593318499241815975160528256844946103591148211670353812400516046477105084566096503438486153537874338637857441409050438677111969769750214832535558054453675137522962482036234862758499470432737814580301184635818941445593998407896979412484518323232330959360262213469171897080811564094267943793807418692441765155312975827457912186503760186497705314928718329089853004662764235375851386208829464433948630087546689204866945120768880377686114581122375684327710522139652832330412516817955622780015213976057836301226945592801500491033605545394072031440857371068218634390873540691626659624331497680445588290347352597587233371689770173213004294241150184404827011967701276269983512081411635715960399596976989922474087143842014143032334396638157932943465040065132917836142815908954552879174367146477341033295496111585483846346821732525811814103269714294563884954259162799668882250872470477800374991653750259709971949338889807057374864257763337937788903598605613745331549941286069869023685518045894898623880026299966915319662563041555444053754496482739959927682821860206428848244859547308534913942594233517044457489830198603864074703766081889671104871595441217069550732035454700029537151352274845085533914912997540491438238971080077144808903109399781272295336892806166523027766936254249787215110059987914796750500647696772667798631187178120282133058663278419323984130955159237068089808543767631727710803971895959066757225370093987225867773545964021115428373162054245912700535518814119868591747923686670602660813502760750435986799631911918684018974003257120190378052272169247132226709411253063320861647029382628399429333942633294076198928181665776335934996695882340621911495735913402477813663759221226417941012682648876236909285672051949708772553142417209930425188055303356189282671172339855965227940840924907536917250565667105882843724250826591466486710268390230221656069311420119808415577868908692020628858316590654430765846544175156287453977412064516856316660831600133703234307788039273947721560783885401655398112050933675578467841481362523831901934245338609768580194594025481322527962675056984318624028875322705745986165112324603882627164777128233213825493372762382689837759966170555773037440447271644046984583881659231422901174383614509545757812167446316937159709150508078822464670339526592921571033958250964328251096030021470562386885714075059154969332875975685824137059012435754195428456215938717543759646956276836111788181244313218804988872484643803651379050200288238989614458903695278493367636521211734897624169300678993466098736256971190399465596881488815719769613517910593114243392818656496997118770768094576575210516973795806050454582189234022429025687175027297872837725600953391991056561449278128913318443000610519948055298024106814557932339688751089707307105553639513576093463075861316832060021676574699259674041487207628829477542824268659551609561705306691962836469907390604186650000933732295429170352653748454679064763350298970091952434513761142988045838174841209535828364865695578459604898452826118633359326007202587500374493446266024289473013331717019580431922098558905182508582392328710621482804981693828845557824757520877505320047441555114843349903737155668979790184086881143351248071750883478976223308289779997378994782839880038711284610754595973465612467134042982014569438318061400569691942338752609069907294113552316886259304499043562960527730134319327659187382109974742527560362427168227873856177599963199068763888417491853016754554250357904401556800535400351437221357552327776765280756084147837389514386709817250304167762245907111388079560062472827397471111722874577180658367356641395700605913679127183734825159508294179291995271554085941700372472423476650142607718871195243421154193231962677840185074717754942917942080808978531972625160474778676753924613314288496288219512924685159005236827973748624441746954986731146308616246715703818462091003443658846127133628948144945349016322318510220581885179670422692718006773085029690953579349105888821946488634890676035778166311086104500088726060923660074973423094128725577031856922399656889792580895899697135188666073710997244613151376581869061556722580318068941302925543855686592745957951524239533731142790956935519303999606192499523836951608124905330079132128392476126730135028460758601910088491206071725357958492316049161813823806442338586479158004002965722999064631886027556957898860291142661221213353169028016321955708255246671861772884116237208582039499447969614730569385738740267907207866737186105222306882268912675851510411710171716370204921228946792703666943850552664567458847728225687068955060574281281497069819915063200605719178290176458700297129595566276886803488946902075248320714720036843253101456195104211589245204707516879347910135739746540676874983569847157499043740913394368961765366695717195719057364180137493636642398393215314208951110531259452814299940091285754296057695015272232603684020530747982352449212188267273890241266036837435935291413999276509486523897713560524801356538887129237942509797521564213398432007445486014757590051225146046207330418618999050630754996034870633189973290137736083178729579051555185475979934327630461403603977217887909367209295461618945434554880772957802198283118834835482259581349871753686170964952210407480157663781487079638747295394351130331296515679853893398485534355704812810138931681557273213378677997575261940755327968765619508371644664428328744905059956442583061423944764661036748872466618797660734665316052113994195102900345135472781068347813356302143439187472327024193081197889333449395949169490459483135799566807569558917041153345568957039393703911672837816139202229781997431244817882008095736421990787640726422094203631599482042054217328281799282585624891258183122191419640160841979095186576008949832887065036712979457331852034721010570316916290506308071077909473530896998956747956600500764043795562100748876986409589240286181528594685531054205972316938120061728017088550337883556483038526463405032291146187819399621816089654297803900226005487067671546539592933821586013642202892319420847951341935061128762218591628662508653488249491647823876597738547377063523529170012027600974984374036148886496018772792132874737393380132918418151242408304596832234819175977567544482664146116955364386298692499955567888178178859049751893528249507304040851416800854747017215536398516368273059433333477848421278287004583487446019059726315913603966433123190796808417815654059978570629534201854496008945882548054466850419370966688095285666622907255401358643420390502910282208182459027088280393664855835519587416850890933962233402956702593881003339573891734676726456503894835210274142877502822557574309965154831459359986874600655650507499916232229453179876234466544289671114693805464747773986990836925404451910288403015628760114563663374204469449597563209771441911020092205400072968335247306824409230198532343969288245838723586219935505177564506172151272648518229306586008524133192636416531245222932072428616346527128293181810135779034545293309435151677240318958258182516496589376579306655463260443929271510018623241536285583639695277020644262871306920721206857104888923749425861958354071921951036693386868267227275419485436313288711707162034240857143755637477380125550748889303471715378528259351615431751257830469247465702423210113812706152832083500984258410820452775952060492286506013756987045771308914055855448834849104981307364734407634800009999569361370330224481215644318876596291580760188253186600406388985156687856623180289381808483169018385263748660038765655882081117468786898328775373841316980272589804215770891917203404477237426663364623263417310796634863862504275995345601743194418434506841238956469464635626850020756994737089214525880298008965692253840402549307573184951710624627427266765596792010303487855972981132379243771852879066860035026575814110303919849571792762499913683935040375248878914333010883122977773059541536584673146507599180162619718317115424780416508844271865988469672750526423959325132304446631690318091125965633124745559676260390767316376476955463803167564035346725064064768480209310303862560600479906289645822850828550906502526340281283486864825645190690992912924647568671732576281512193562755676083223778315354245408649768634396479763634697575508663487965166476860026636773328035939252669080169277754128957737396608485658537295754387622053381801380401950875534471019540721330947114918210987257566294622389471482497534862295424578439492727709400124276639128098646482646811011347722150973511097717069960527999622580503622502994635795938514279081201484056168949614733326503282083874406879231693464613906652212072319907147551825890116441897377897371265916175327153636746338197134041462619223495529039904625813050091971469795673639632943666482423593674752067990536169006453014074436670440181700541427477023278047186476889464232714159263371902882622638255558925987737154733495812587902768502965249658891661114761931858149942457140724210036979790647293901973468731536023646279151348966695459315337345261711500321539077603925083642950171908184156133510868526897555247266399941491933996982198533351966723406141439291455166783826731423804816799910267750937675406929239046704806846393050595954294266064978776839937610493293194720434536892122551741188272836033702630330624151380466542461420831346285023606829326090158822336596986162782829927595974417406364471126929661855452233440668637577081600980401086750904317604494838673497692905657167391263285413045674814938557326851888160717576255490513005904133498619058120203524546641741731765976086093679397968601294949508035521012001517695557236447202134143697304691003492194236138999921352223455384761313644488905904203144236691161298200639111986509539634931735242312482882192215835930452282469282994658701206512432874610616725393914820856140250862664869974909975521445757054185153910951374053075068743396347475496906712609330671651578018498073289505846182932833900846807259571211125650932771648855662668181639151666354112513616980540025795539788677860214438197311429672551449415288222912742504041733771644275908008342760676891970998536282786308873399556913946758010300623462667527163275705822121293037579964588351440273841323507323824534920770579502820228107182368595288582797157560708291492142690714641425449914457450912335669006752686153514068441553014203430091372956793361461370163654239507537261035651478377484660348559506363612037315822703960281243423234984531994231780175744578510929223344095318201179453899062971119704793158513011922045198738882108739033086843756748444043227824773291643457548457898447385296034922385619666856829214211611487854082900509034416673283286105448075588752002904705151354331188406424972707762410060278329164507162471269426350868494390276992167776767483060527288278023157432853315477686285619938892348190042121836836855903205421503150085442563758451278648603790136259056660208728432932821388986500301459768938888684632560729468889671735369210484447068803800451899087211233072470417245294964992943803980563085865614002189679746604106308811519515857379263723278775794059523279354355894670014411532074334907874378110308238769048191929203619588893654936773271647043102660323750272687008773891744082843625982671856759844223440779546908935968886970876699746849632716501718971326834993992418445597560340962290217137323670035881956125132615932292159572357275577643215879442658730976328322652846864393597146851244190968692638505124683859036258766558898255237245847002709827691462907496632828600177563866777179793572838292060004835169562811762654043777691678293083126254493837690763586382830217267800836010255017823513148312510210891728078945832260992167744956978130177688462877226469292934604187964919526885895501894523198085685959311293653717496759392570621879853406642596613305494524406371633925980640750389959548594238072344787741106038572713787641334230140450102740396887331182210748499552127495793292385916032774980979224904577587713161297536941940589997083054196846628101364972881640465700788846876708731369917760526671279937620488042224689022298002731741001803275490360219935903174292060751283757098156393661172134118696782143843619300003927153963015210362548498203357743336944203572839298992642277187627137162075796475789819275142514378983879125642962352525575781601897887285200534148224355808437626140744429699618774423269030848946269398338192112535485008837964020162488070789581054563913233135579404478735867934003284029951002229314612501313158976594364887663935586200736687767441729569686301161547735478337154866767926517961285593829718351349459328489617719721503940321754205240561046548006005574673907836648898150686178957316574099440385901095046515485696932494707278541858880087125081543832352214605902719160149468122102297123576409061095159006834495827346223677255464506830282949748051240791834671320814895182192181037125769453259799580747612078529493096387388034791992939309123608454428993928656362683630885915279601419408410014881245456094157780939400561506057866675329142825992483605610696657980005544822638593338297796083245118219637118703741499413608984245384513254279223839346494813457267864899726574894979936171789157014788708136117693120569198347582498551553883293661038760113890730501054212220565141078547366755142547262438256970617397143625257735543672871234753315108028538596680851633638447538576091297436046057753863868316908999373499681472658767296185352582272762577516097933207447229496403752333410911385270901247468675003317228737705356919525594222511043218697032953925089366471415529000146014972122168642716794235445773433297364448906907091685902135585391147531513853185812982526140356203794517639207514318622991819966865348117094460631607072352838556611854847910861453735224777509338833577609239702864475756495387615238994771630324942803642479484008863369683008724135375396745107701893926413176081419327152399842733863427418151513538329398136148583987800803836742693202477237643139370580275895391087913517456093658839444997108059962476071601692357776744410533207695633836706759124106485035506430006023747186760101899034122714874224908163417402530468649820104913819514115214688673688007270333398324621359295003880598467901222884693147523763017085177857310817336103622106764033531459874489070755164053867206222961750819822118978438328688437701927183102352052140726696760807116985392957854654211213667640522596223488282081194213641141767147531845242652544251532001159410805886132742268366922862194936832675370106084429140384484231270544784077412144637875314009812721558024087428671278302597624613937327646058545051436257513492081758617194693048374389961778203563121678410906310562313990715864307602679968138554299212852641656489244465175096071086828992455509606296218680754594244582551399368116760589776025666978018720523283337555399981933296303265876904610189039766768557825332879491379163970800252804004991619393506032228986496904287718504578468870284656558975567883555198977439587488206589363055276932338963052037824182231046012826026961923566184213231647345193787585653836561673603384574887826316537570628486852211586575190301422411804448860780773021316701613819069546427383509848214323228947894889302723907926152612231904400339354171424859227332220246315451168056012666903023367799691752473916018473242273673172919518668873424452455542584929653634694548844796168755540857559850077231451027678909406551564770139256966740452373216081691871932455218478105304146034265013713916844332231400867114021743595096060452517209186869540255816963032637931421018992068383096869339438119886162901088754184707661842186431026803112422966313997470849592294301375315257971835257579884221417934006255029116039485873166869048679826856366328919079952571868930817467451521484517114522965975711607398674228884597600963842037153930948839722434881027775338116123469772667834725559409034577766070865154768407709162027942904105323982119328565722981818163132877749048409709635136028743276245488798359664241612580682082342984912502196547895299966788406723613137070008685575071465572983818640485583168104057867855090594606134533112258135665661478941350702658674847030994732744976668158219887730258664508723709899852396093078088112114815211759481608166750874426808917151888256403316014491932747184896279883112035195636142826681350842671620909664577327283715331316779309582632960896467696315623491749069610539218837356263978868468045885018962281409893269579478492388794906471219981912650578237748508397587717794161620917259276311708239162588261761068938864673036642332252899059635818239775043564274938536508971969913099718725044895981835018124451698446483579640894708381553146378619488542781983239476664846903835692316448528903091271561338665777802786667114947440152682497239539612022542759464298927140949312710039269691723604916605500461349206019273929459147193747254598216461858899152357680298989982798398921899252734860535280993491016678526324643101287344625783243463428927169013842904496708300232265601878914146058635846724562368446177538910999144139171590432146693879396750063344035467472745445261435409115605009699237402093439362748235137556333925588218483569856999358365552602563108604205035832275358915982632601837075955019678413318145836899528521815765550202413375487121476916363729603578488043114482985636068059408340153501801851564669215563393178522604378415499943410332376765884662684704284913262225297452068184409790936198423081202287383452574202038252023319136318206712905725726237403328035999165734519607581301348750200777964381842356988792513264778449125133873813271980504586485440896356546245995580999707996134132697043005055621908649730254353798187516351647642692449332126433457393452761023827276158596517504069580971289903835648063694331017776071320613254990624547907565565747184977875283268932008861640862315198698470621543901722568917408338045374514101511814103782572930297287542928334366745007629841500002301475787540357179147348350254975326764632727339949487796834966549064403021256845403131174192349312171712222525340679049175593610620019806770304083759386957941192149167192624008679227966397837402730728401344439200620556572415232597698968340296329987606246568656715193787537567190444930104281136732483203234818839300782339588359780787602018215703712335340524742563964589371845487911799733382642544419453511310499905648286504534277582934642933870941463080792928032975747595692755749439027876046443899700682236254656041874497388232556770648265320160926377158539357557830600885330588114547462852973340180378355780135037103490035461235279411129885362999303146711457039663116499258024328518190371172904762507044042729836224232470146816470266011563535107257834226688353594418576112234692811396466168678153696558208195717852765623880162807675636833934222360743545655127147796837622764900722294154821091486295575397237638444219444078926389567688813514406236182202902126165705685884835924155823523896768462058059897521879616425304256409521662540086760416302086963045610010291548144361030965035838022566299526995091884155639643016604717944467006990581375002937573601282131529803982619362784984546207955766326290631741596242433083306639527635518827404620948345859463315713734554226897597724967151627940056537535048680134332517522122288046318643317386190434888978643724196313113802901536296900544855026829409065156700962059471316620704482369543889936593042214163215687945597108957208007900677678613956798873336341261337263504936763195442594833742024118128061289402393016589874801046094784735202929312074288111506861572565137838152089080044119348189201585535464961928674421959903098443188897378676434565595147297034846128348916242057052816923273561249820746154220064988845954846201421846395694551524657123781861143606363120156524892202729640302092092960422607269333264032015985047700927502823213606611282356936468357052310440978270523823627360868395351769959051194441559016151545371470124209075194078801027294977677343690028408122478156032279392371511289710879167006103805795244623643643196525543639287330202493952679034088819280358595971994532650851569701445533064812489527441089629517142765095111367353471478340990822794633483599108237309802079589928362883769053384694867441099049022439291302090904685822510485848497892538488207427941046121245684554562822990026948416223930717079840736792773593478003712824160830197676444588874522733512866511662918989033676279239442648770364717587076311182680823225280742321061083034932137473009254800555726136440744089591695843462780572772943897371172494086326518414958472260857580927631332624826264491087440000571524637913770200548205896523168579460538213641579407790584434199177592935726647277069589312387224231440966830629302866258397452490770434275040307200661616164596089911564423756234078514928992807329519174442606501356001040388382949673719747382526946281767426903220015704476327962618215819985773864101191711290739297535590510653539835391432834879637739328472814447706567320163923350574037522173681357879710560527023120987107078575456257005344297560718787571430027435177908322316040429544384869674977391714435572525686124771741952365783329024728035214332986310849970144564021448809543665266319355052186044054215210172560751604892212576917852964751138489328564182568595332090047001573324668848836269217642090847834016426640829514462245648204070602770354423126317116092674277248405688264053309977101043043312462530407946789869028778454982884731740711572033311797334997102727506715395968389588834777990791283190978397829781333158019469864039158218589630479983020538616831607151754607240244335044768420436277147138823688613241364915617680174026630745243704591306141052428023007404767247560067119331582135256242752932119823042776669986083005933353603872662238316135282118764211923409034126950581508475214473028991053298517072494687138989217646635901835443930734159486945616288869355569374881957649524773864606960172027125052023765563684072845333496283995695876653508164719980136079928016652136361582017827693336141390677017033828222210601263141365288538624659181847632266010458124957798415451577351131600483846217534744652411624841045399252929404057075979371309416863427921505485611095719226837158711758035915518515247737934740884592027577943626727092881077746798146358533523290763255330304454329234418790503723705436957595747556417785604676384744454439415274673929299961189289135244718027406984113532541459370796749895883115211922887370210784985399731607225624204160481392906368580972036036831786325538972199103207411197730232077847287460575314536129003321802770927269245424454617762080190972492507421401693239623646657406860242802676318806954559508169855141058963392127790982457427983954313040442702345085559137449437156704273559196891432587278535865032777522045280549641027115052715250987372816324920745566894053278240684642890682516934716521571382628181830919866169864112612485871808943345995149402619828567697148467159273954628478405728036994312127692535335251255964203964929683510220935874851932424842972116959358876970210640604289203142983619240133931198606034653957691173675541682709599079775880167960739469329942269204527836816072228771059568698582885579684128882424359667726033089873257641470126159408783928178988030234863748903308986056821261781277773578831280683227770816296540546585957572471007084094365657079600047757140545908900257501134101320952030507772791839468212404144323310026538305417102944054956288495116628050802824424471137959666026014273115427138809247163856508136141535134968159222576032587474408722724158634041909377915204043819117599600284744349213373698316417930426068026695092493923019889388582112571833267301629744795421405210658990342815585536911672724647572810643834228854368372363631334066902927170362824601273542848601036119969733722656768744029797987946516488501882050432919774881948842518907249871330936236739685596171622686933172363075938610698068556552624995170964109559189028842838168866368661252931514561746708788928874560715667563509610414929772033017751776916599346079649375426554058768647291694018885096304692541159671223895855223320836076812706343292379002372975089853496645544704306554987942465488476919247824393826395964242626462149808749856331242750050137589475904351186783501275835011991294870360505382058105732877740538635789461668894627237128277298397417224484185940576529929724061090818923537512231558770535617631814740011030028928707626263309275658126548144961484068937355569435101190025558265394057815557417551423910233467158550044072466237953653474105251310775185780489250396226964939733665194531309586587803812757462929815738365896812065396064192040487374391626055837111103015909152425195396591108720181601864853470129221338906046866216606862550256321112055242399242974260873697842074218067106943123496954845116513955485746706750797659185821495499637594354269137176575721241557869375596928190157321016413960547816638315825811274271096627442063481304937265987216952116433094843707168050002551853102707279915508885912057805382902968678361347944688390132277353385928727637398064891198475253291161068358152601256480373373905189016878279500987918917914438199291166411243276008772034766719917477474963824045037449721689954369568285430782650822062803105899948306345188107977530380690223844550796519040142366093717971220498938972866874439009503773530422503806039292967384310692788411623270074073104285711269716613073666569189043581350811483897517830938949463675152447141843981498919581014305137834238523877260059764986762793975536113031167656126147769376052969165981025588609311780651284217470687595674619598067625502794826351074676218156421174241743966128791772057325487968022851237279363341901535128530829762700991612794333612577068628253172997385111409502457670238726869078034294000489084971729705227217615961479704131971902387630760722461734716760801761319700646112743244205350217723053404839920195726666865551926491491605217060720189561235489643698852467972351055852474025843371768713726062776135696504973495811239066414546905344506562289859328692169572372165301465049864679590551990244054406739924046539428222191152608698841107022161454701358031715039720759304112357969016093193021212254153015429295817320991717834558361828052570856115059025250404415639558466880575319600284455362052105773072213217647232152567924545768219902959987718522045917041079411695837607126701600873539162855965155259192536808620599106623995092730063225117041387333833401313275914531763774131773191044898649595098820175990268392803895595379567204297987279293549612134268628729102291581024099542841250257003761996839369016260636885781567550539653890247836707164899197743799405263342981290154889014980930206579201114496592979139655513683809299650411269763790423881216272241639310528284998449255487600873438161710275035067271214818630474939133494024999003282172368134477147957269760802698253983549820596843757041019523439303991212834539004709649696017079667934412107452944796821209492109103704790550231560518393073109351306522788692360327728071863685132130389500964020394658111762209292222470929998126129167768806013672341213649328836170247410421391324880166941054893672582012756307252179308103686753800401662279990742234649822450143058881715031456519833596401480743510681523008652029665929332887212743508599972287976706059993531919319936406045588227068110597335423556620126062293142080830497459183740574138492181943560502225575000538605689111622140612595264577485387690082660960417938907602101198692093945657099783518081078801617075833717066071842084173628895180260790531234167913635247862780555523802892840093514957216292604239790253859730533136918560422811287818066352933602673529485112398691852088222019040374653110394206042883701768273579790644439457619837732826704195299051842598954532860382246207357050457280453662700458207733665809522806828011740826255511164126852731498408642986171443782718749254157999309845549832986817509114572868718541473604014988946174662199538835823753963491712348524448295970084953482179833096698454590927416370271277509951688136322447607206813337564150160748693693689136327997798651095118004235037475357724415565263111513983514733612776765496843708227529549473181778972721159816126771745293233779223588717669742972733845079113061817984555221086937573413038621202856660130821156385603355183362616786564170807579986173429584876420166384806557323461452899368062401760440576681158739024854481638242885661605378462778302135763028796824150465546452601353318975804140177230834440095250848369700416267594165069471667211082072015434332529553377955834791370042538536348145924076679559538576552271754812681015159356855425973706273298846581896009964012677015224876631705462344658394040933897232139035704332915512414555648456027127702013287255306474606026675563812372314417461118059783861350843802397084617321316940369277814009697177524380263020620366516596927764449759208470990960085950065539948747414309342868961152755940466341546328753465196302316402844449865877281183756186045676103875295494307805182179580793719389084081112190953476204037555727945995549743354023626925806909641852169662986891335414099660157649252931518088145113318874702887161104263880306020593790376042627104327622470836697078577083986544550728420146175479030137049982592140389303327405373535440097285533802540834254597649594881129870939728002417624989978992722633797612675757095697201510136010984710987676390802171997412335051341082149325978337695058611086819965669208209624392668797922744801242883152587191720122663058833575659990081697264245215447733146006516900384464802675921843087105300652114173152633039985720874457785155195820746723814140246609727659135871983549800484179322030745533057586184022384455316979650041911717991835296540280722341135875283667674891649365395850685707445374246308774486665596819653360537824553207355353097091969175256185219247185127487813784979690915107492214626779371087831664531757725694330277252806146898876906086259998730820056591225447898636268185925193940918914188583373542958251449209684814737772299028866538406080940032393096045604883629643435833689650401672584002096463395901335096265239794489019577722998232987941965793981262915300024520526676759642722678700850052265782649642159719040935604045952823556686137724486756253964551125202081202608077550808840755380535662448618992934290728936786382677067761397937961007473870218239724094179598263659691900060193518001912745331522448004232642802923589469084990764435193501145777756017897089701885533764190063731197824950807518420672898661960613310467559442919966845673530405757949315119034613390782134022529696877399263626936447504037856505877997420831373345275352977485166607380734515471946916795020600156844859634179660035443684118722318552679135643419665296615638177532174244575297351144097273519482589756371779481690786985388210982943685232008315151091255656690952321180426388654147474097061688040736882421152931369207716030508577726214724023669473699002868609089616152607313830992343681207979172394067825414755234552306375451523244693029139602684935640539638061112291348779276744234101849002613253481227710612066392562892996342741071265882873577374214962613152565657566865645297057828639082670894092968409784530235509096905355798658025240552941755000172912022358965106434097935259624181111330223085729528286331455893443707566136092791272084350345148786556024292168905041851024769254334126978369791158585062526812264380215492180822318215273283945261806384012914905903907279560349473913656686092484024961879178259726657909395599871571525354643215246711917772905846938989361566104698019335552428113204128030198139087174432252852737091209603867885838016821119962158554184629850804696690554974705676427736119812534960770223104214155148117466067704190982202133807756271988254155165616646781745571129114070968637483874737849620908554100334526567680539078659020753958812136706033395285832988140778860572372648544544941307966783795244272424293806934216964279565306056880638242723546230972509702877412400493877481606593767851196099635400827080604211584466131309052408635584588264565930489821795542942515446714266914727999725835363404214277702563280866080787724078710265228739351192076821383609351653000011313864799949209781613539527674167521692773092724121381642513794469231743771229072833073470009596243867739539566522959959776431851998822690226781933458859571216348913371563731857134909685251165801897624600363269784761778777250198106493933198805260185490328461558977223375327799744547830473731755685489596640154779810940905176268574087954761328047486933114997732815987706165015876411029974660719536256981311527881579818220066143680403539509844658420579425836582931799671014322549990873682040347332813206726298274716891793713190055903041931111592735924690178896277114540015136110632900455116034381239059933085985851096165000735044689339347974640186788209693644786841083022844945431460650647873140121897966353139726603327481729303200595408538194412867529444016654924362551556375415519133543427985564625375218450855901542783017822869759996836410793097320586286757236333856652995135811585414289293154155683535306656721072001798365811890122595001837001517185479027470117434096899557372282814031770718510567206013236890229647595306998998753439966172285430778676559386402148885013691772567110132383545824869284343436669950010251172391307364984135680514788281152912876228881465610631378714285229989667139585379169208001923691638403254874054108237039133795581381186805420063618485781614113466482436876130567282800674601712661013809569128712888653289707855531695429231111734108206866122869936108562058058698962181712689861432116336689074714199898528438718078212022300332122970828252969075894248046968398653332246953785310321720085344159353124333975632434793765156265966737418531619513358821450561014408282827827714834087340447520443211172791049037359799827169377019089506168104422203017492216758234412658298408532729097625606131894178052164275324747712747971152164217012705503339242079133444133797938985911404199072694831155587380940841518581704335208853939639731562973598585056133087930579497447019223140008938180669136797424327538635265722670032237583657588362405126072683614599525429628836437800882712033927201856114023990127750599934113002897093358093816465910627811271198194902217347525694441431665593904704597922797590727135427839364590555523484668770975082254560349324424033623369889153331636804251692210118920938579192132500508767275130080670651801010780232396241500901792188407888195429274688782099533868510138973698629363304239219935403803766304182612612914228145724883110491116823502458215803205812168907913599193868453012547140760442583129383442824502558718806339340627905543962659430238545442144956705644872604340435834290800445822043656375387894692001086518510955708670266366101941996459619664719542703704708781737665262936274757897449350323522567820737479270211248692764955034099909220344024236320727382969787693732964555350106347960607786067310815248970674946289490442965762909384289219400936103965765205808211298012038392558011736121137415701947372318742071204880280671109543811004074522333907299700674844502650211406046585753408280194245949594402717698979236505541692645961663707853159449399173046249864011028497905623370480591516005030137731809289824231890419594902108303060016205711658668310621439661697398276752381260275086952854939309516666745886760676169647264495878961471893503405462400335749830533490195145263265071033227015558185704723848268184185714865409798113340616052788685396338475578794681179137358712614495797414711940458323280772038076835473016068519604665726476384626450757973337749195632497884717653310430849072660680772204981241049745979039015660495275296273194834739178362320266679045406470457084199649117016712795501534976563272706275670491057354729543800884655627382144224631008845044129106130911563628208071610430867331275342495304601834793029805614513184018667460549971018328556290340769233137990046551795519721437560959024612395935765506316516864562774435616817199375723247626634859201470523238194246978085424836803101154856660357398677630095844260954276652884101947595142452732346669474103375207195313415932353256643429596145217848215474044144225141488215349042025720617642152562610710011935941536320984111829489294125012704831254661929643579998382303245175932851036829177983476523651043279099378103287442030961549109396736115812009658635977512353441710685501759545378821420796611062482254976601269081082591467005737078659575159458905665854356301953552228318726271719628042936899165245797707267539870108666030000768258054291713861730364554453952519092185804242552797844879752584574550421254492825795398589849333057904180948031660930975560442674107244030555331480123451740407430872804276235448561223136235909189924158495982450952445660776540541376550131210536069675363553115735150432561179177118737941625155271349477319452518367083312038251088256036958081071513926472175528175277133481193176837863791883234291410334125367881560709203006115330102491820897892515573148569780686192098486885900107725672936606699822158355691702162699782062217186327485699181590346649461761010676163386352984008501719718107876328809830351936168760403376060516705126878841698062939472037355913128813172236068633481897229209926662932049612217994048332810494710097653886108127125966994734619791133838764568766002919558310077955655456042218637997713360642922554245746009441740185405206059626944493785571974025256875308207891385900820343402817218080984786695508925311764348095655705591203967291682735159850437546214922384745020822429761336431909193042452617883840798928724379140592412734995090398720345396019315886956482267891451848098835697580117154212515200097215062915312322909607810156263751656010722740824698677999277293334576921852154910533961968742379310043776122216766408765852856296102145010894016294596230620924712930022112685815034494879518507318469009519190423380672438392281249906625440425237896123815803986305990088403252299580172446230319737987272961422575619843405703039249241717085295661465917677992980649220521875582819110512100525619711898094439823622342390405449569302264676156216481951199397970769746458902743558427952319645933457799965091469319041436775681200788513903006975922946285733235584957471720463261098937417775566098280272858634207068373933594929840563957773490548811104957652811602091209815415212945714744019593677619581736555443151753798578766495847661987239205160499158011329164391725159882252988449980652986117418539250364371895102396039871240959996101250358666547477190162600875538870195720627929793147216512095777564681294658423882718919955146557555723785297174545977957721077264046180285279652389269585640888375124011023014367086827801067968593888519851714320588180386131867778384252530296912736660815154145636950026259212424626516530600490824171693353131025322103551899727046540941770681894170850014168823814919189719402144596836876131387187312250111574977083349160467297700853353251662647167700468879093117987964684143561504235908476262278626020934812807983212954207470362777143461951504103470971906518738644252863519645976150518690226076992153082254289291732876376548975096045872644786053344774355027871560566292305798173893833918087646118375421079766888245102898451993697699854583234089622774285867474425641000134939049995905805940535871417609704868554905768933481580635653044105601052727859389207332343473215506008099337080752116431655898173896559333182490920949781574949526552444733146547863461239040343393931562462627133759109972994629747718113435327310547745330779339827884430646533854847426311778090168573046652776970971968232028085403228898983070083041467638260785038784876602655093632791924193886399854091415420071595715762556233340379071084006457617855213895783230070310613298320897094026341834288726513782256090481784210940601297600071268061887144796104515239346616560255019589296928224481235983721591958329663399139986355547400999087659638838278825696846651410370916680073623717819975043500717374859537861976206398829183257707554928083515872629689761826325834659439155841546561485467582001701832349617459913454673185326211098949369194279141428435283486052600980292621693730420543141698454539433389391212082054775332807620343363194424646825704109152186832008595762158691428848157520364817355753668743963824922720533371501970754158747887364640165450508209307290830572954592564965019699306486248785829316995959105398477454629456719611922081387649581546901807610291805895024699288433254988474669502288249977233383870136136537959923773991996752606642997292539759847683019734086675006899314642794106803393739202571600883008407082718700237260467407751877995694253154239040903309826131680335437429853530485602556153312616945068537352324685931557628034385474833943656923557199887423393445755602905077128796250804302718267848686610202373846300964611862804630949903757972502307064128450228517147843839645870860082639860778916632500754901446987162295404257811745225487983194792329577418387021763204959618869078752120660213877164000078902109404740816480861402885360556634431700167751579141770383732351203567742938323018303405638474848572311028363155176463639338598451956312257445920931193057551866083661873660953123535749857216829052237076716753733787958197599961169113893378642941600378758669272101244548308567035715152885354767487722851350244567428620972999394243613556576760931637079589374299221720489147237342632111133362590344063631325338470706019331214778184395679030152900794163787169562572766475078505720246117059017054367604471510327833388592124652033614009853380232575015726044014566254647044303288379881042520345385719065993242161863442573235663753034143036335979842526168631825397299421774953148003778811864114097443461398384030595936869303708185496200499632734549744483116731826835499308160304865718252445915666109073200474875658786845450729735571677128470782749825341877042542321749037307118700591271167773050283584937774336783673904070093107325275467676959425040644520056905675071903262655756002393349455471662471113268573381762896975687122922719792552667575812179404647894354312028375977751185864249868547531110615206954735314721906872593757911382355371654196926172021249025172686442911974839361428591675584483105384001853424256063083445637995654356517764562764235222795363154559681301075217422929455705466591726640968399983051267976331513217978592991418601575807464302405500312903882821413277421866768992063567520209929496520986116145162678962820799509475493765758380660556705541350083738938489906915454640324377813171892141456460631025651265243715735364055515241850240414181417233404068851197429977912268293533840970728940207885406576240953297236620746344712916979950442597325861492922814615429259264985534247437703227330824657569660101290464400595709952021290119319855184132064388823931010193604841107073049768181391406582094668804179880477037324348384905772554503321029202234072549515674333281536129852472968334441571202023628057792499090406687840885170297237133141967408257278999379431954496539211616928669129013290864254801831851442209040480898544259979714596296740994880962115681419419846187439034244518175170856386273220904874661689480951691554956106568364032147982658127413927074784707665773101487431937689265933625974950699551659198286060018337828957240865944026084324535284388713948985428095338558886619446413328394453498832248228269969851340809587696293094473018910677862728653609535033896233206944966433528747603748193039207216795537758961787571262227044103455973514078641455037459784457210665525091273443038652768321483134745692181788147481907030423733507675648979730299989082106840177718668346059438826974686074996203486846693349135527442265891904048076166165061089240167919404755113424069908817153191835606022250875356100772897714732989088100524120399415891107730912019757557859987845485646588324420102287753535712131351238788847296309242813384703665322288466972191195163788437302542221259187948451908823638106785248020605599604397897523604740683263601689037661366925828416547343770996609797891473796374413613735031350152499090800545389980121335661460846294171767991174390942366632480144960193686825772889572356314884487978024575783824991994452702942921469410351022782800963813379701971561629627569649513864311851721647512945965451333468441153221349527272384785940489701236528672788930899908435435072618122894200783886770521465362170971531268270697956021276361114730441846180276540120355758525544551958724676701223317640243087662633277565822039219080415195632654762839718522233446962803408819410600295181588345682483723444690453768421709505854164555638933575218279786890946772709615677031603635617575766111511098253040224425374546510249858032486685778631681620549431259739293421620652280348906591506231435131900885715023931503821634003121547070643820628748451644562621294403430241758109175005636244664486894879107720389481761244133303655291636562238745055193441701239970884861397087681822566259058470458027735543856083087999182459832194649322676080556610505456812831189069562988633155520600603038528644305781475298843002418535504768506105807520565087583637845782968057856796358136225039767974913818337907318241371516615208316343814669876197130927789937130351756175983252253668443077360658635464580765104140928752830796731827386734652849119402548719287194404972389972887198941310764870899783677885125624418217578630933778362504897381836526233960629335321010683221773240722321705217672659916268380590366440436216336850910748306461427091582550147440768705698363056754991282831379376524418023561445989848668508237530097015767108107559988212250074135746738316455804056714897517385480931151815336941908729574051456130382440242188748405839020248191823475882003599247145582608706268201953362947129897137828743148264952754930330576535035324624563654769586852147495638952397039314390022002330155545369018545561558295993113276486758778894521637241409912672064126284503623951414361219630206606293469617645825727522826760924204001713972717132618151032719365593554192408567412870963110501114282968589507240332757487835771819523596134977413730858459174569550801565037828727440310795531817981318206921502049089535754416104718578576916225180450173278343663322880353440549009385549700945882420860300654306011115645755397725342069962907861912610014572289948108067048697273499296154741628725192099990153047683026597330446697015302119479259279965877748993039904351708607378652382485826315923208689186245829935178709494121727695221433461629638930305297026904194962643865137259668106865293191583075677766909275322288852835172327037020742612256179141916107856359913692840765610244780275859814608786639356754230626342028933443227448081354560390213471810312678115168871012845161669518978510279651615360093053799380989954022054597191511268327812618204231138113861477401751397276544518001896047674602064597335132923931664290919297566336821826838869458774142309515740062662203257942166167256813117038096692250091856852721924257221643268088705950161234201997981896466328166831983533756998430784697774564610928844588042028499854244043034219884125175857929406544011761863482049249981860217194949716038453251621718445034347006189553930822886538843974117320906397019157109370286986668677305959533192549283680904654386047552530328593693023849836413730112269882792920285925737707208333299556096838534266344489152099824665903084214828493366534094447780322459079848289744202763885788599084774268810789578484576964053041094559859474096479098045331113164223617748957086115633325005181009717222174018239753182122580475154518006922748124457650713667052974499140610245294811907126696569377829539710172253654004439329281756853676805773286363580353832099606399327054520987883318343537499988656016634826864090049793304749637376609934723183022217527439362519667251048903298977818691337862819003145872254560221466831347235735722710918360862362726824063015647037369413535420948031681936701349852012554132083371462234988232653255457600164897910744203573994601090081079953704354180038412962265564510833102662571605444895483924181274751221501129813981562583090802052863773981840933586874214867591279703874632230507251220101448172165241275749800553814356808853817134627321416601048751403524525833923081761917771042567202396947451964745838746637599038135200709624101580811731904139130685010334396592257582240664376350185058592530181056171483264726971226763934725901158386984181947087344262294202119648171920073263258552200369447916498355155260472335958893136229131420646214948917760075123731268525333088800327532071883041709254167953746478148773364063238036481198983844265742102488651654952647834669103851142909029484183789439782159445739980569612690342627875284128598902577417541954391065305572061192673039611210725553879305072039212508943014757940618539800368183837113914974554463335748589779574967332099519426183179473801590658070277183155996894321025119217966497843908941460052465160659600230448553233421870065681000985875765169871860648070434166393350987452974256860958666659299142571089345346824640351567070783847240854207891745011056981472424395551446487780609308842071676965730579731477603163967097158712184111158578724294272318538411192756923881502616532186857748639319678088620489232166953421511563147138406563531193704294540320201241429691607327258167478233312789259727530555613511153758011059567515581228165582223464161277445583829768614454808180923713142592445186284979693078203937977827295303911993141096320937646730092450736336058108856702674633552741974093171112616385837613415364207104255070958057850842993307138521719114118288789663338729284723570664733970803588124508481179889287974175513641781725109111817093141948026242333899757438585923569103428168472041551023239717169177864836827518868756043513900942231248770482790147640320698880101760547928749540222330185656244211084535561697795177129768104507420362580969076962180800166808760911580167291596317486717497782748579301543677277306188807734437140744877377203232315685240933347006273695629992687488315973293420132634764791215884886265208027162589650810009813279431456896656939936013781252314730974049010103573929516027429464069995369233354332931166782991065775553924509961751720944674937403243987259863179283287588188055260517105935720766968256416578500929644821667036853430119684896390162406950448182014509142284664156615818744069518121827784195002180380051527422225462499791803489570468586027217568551320930499091365688608888149703139510365796735723398877560442933624344060370360434950933382815590812987825532387358854814209509464332369127396745062499571622092741560619181569163722447111318518028999857157050634373446726696419261905597775769606320698846619490609540063147360689514112328275818219110818156187366917285063671293572640893178425013942393620096459251805432656781613499211690996500604406978381602792961539173309176132157176467523713080676120976459675249019255782224465062200155597642487560526948749385037900711759078469307254722426196453096125200621552236377858890366185922411074663924968886016770499507575128722280144289707566427157343793157578203230121828968831772772495257435373901081410745914222564665598072831575578426448071122454207077144744322412193489148407808524934572375822028608693088911043866054821959009508521582152148821969522797282403693348446364785932429292311907323560358879106180328935057992199643005173008780333497668395728043529888277928987429347457419897613971513584274104476336285020519142251520132117917666178397630569843815478862865329734195104444083795219475413529156792557788465267369461401718356238250119850526194302653051356769411951417266522855136032881744247099421364804316525178617801455599525807809754422893510791176408070257564703055126263025692180170538369923138119340674255514604876442958169814786142029402054620247909519290177862880585557509240753656922117895270771324331595934533743483719238175539122910061095071437676396664308701461376940674971318208841532584804649824351880935418599985983068171936973420516393609823430041615997738362524929040883762129618562335670227427171516021583552386197823548823503749212975442171058259092731863425638114111063370159478729364950040496711247947151173196077379919144622952443520595016814213779537419131030028746318823960139328314993633816662265471213266946859790024094766809216543310736729434137055496251924571289203160549313701877739435218412060053108261382548243861267037051271801479537844008060643241960641075900770226308607416407117354637452754038612686504187290753417941901989317737061949247640629148883251976507836238072239518144314455476509579252532186540281315818030209513635477988780761370788639920044046883661735795058972867995612647205052890940962527455247689899262646944743653587931302946605293517751275337462748038045099705388495143401095349343390800899487572597850792302226779505082065586057591745102637465861080372180610878006641279636740454935832234247782630855448524985112567355314960311658682609868060647083163878938051502103615801325696553651044880142594573269999931601446817960252544121246809195700576319898030733337069389284282479026020832490654179958394238833091222891646207835117167929886096662964748308282136048486079080306546850633031648989585215324063637236316350918701445174230432234201083437847474796343413215368211259059847251751638162158687091650133229255571312420318315487525189336525515359845514111466286362346375357011498553871386181671219207499658998214938914038417039720429741356832150320376093733164362173581174919624686883442179320273491739213198983281872258661654863841697598087051608781497004204111659697938570612999986304228112321033360652198232476199949140278140890978000210268494074643311238987355405147515848544345307726887455225815183663412162503718213729721506677815118968615013371532639834546939796682576763600515921801828440164858828255388806038932027902501703445276944250555335929952879466084100585364646301371028268291867742955562787654019266714320338225347626038999700243906419363306689957915949869620943585495826707846896945341558491629969975230464315530007064052784492788286633211447688562295233788735345634577301527110049277376797975152318670125734464556212918746187677732428052750355666408609815632744359225755802517554265002811925414098474986572700842369223192718220434784637099434505383079590429945337904034513604575175569695036668205957097555193794711243655875067541520276264927453580914135123139880119135877799962283389509822547848319490715415932094020001568441605006004706004037995622279183828385821933758504448971706993231378949504909026454861029129427348683791032053305120075991342201833973622671900085308029700352917140746218378308776007298507378485312947890878855195542416911607655106176658063289610860444074575518705731751588229509995981191749603155919280088309368419578707540729261936797445325434987584323641939479059832159874807255055548914404700934573831703572488334428064717605966885610541381033908095956523756136031493443676085620155742227347730110410421817641966110621438126917843999091629075998313393061266173107573904326279261402370565608020177825905623342054352797689426109445874208482344395913272021374080963337102317489262798380613311237399950282044990816507388140107824571045143689113644183446048583495944361188729670666341714446737317598723768995347013812466554993321812898286760146715895321832038394739082205323296639321055645906737684663689798065769305415163902269614619011225888786159628257580103950484183109195186896335953287305599667041945950790250576423109124859006878548114961588501099495913955617297364197333321940748103571831996914348525228433889861813807697670062742354226020777647561798493921314176774100898318572432797534734595775268896600484721527642070781444649012153523206381528317151860790664106246267244101907101657576517777039839562634612855854144204603203029136213177865871401071191261558011608481436815148483213663141953808044984714456001712323832393592873675452794479243602537118349292339470992841847599871369077637259152510728570903182854268071255732604100601285594336139908095807436724846695085155874929149784999640016811552330504982780445586826363756290003307796274217671422341167239977267859523222284882890058534311883538053621531603378057322968169409526405762739864898067346350772419525924103970248318026380575503835188322181517799698581745716868236715924803397353172310685452121455027396461002635874471062450995891075928182797961511452089342415069585478080310931963494904914545693704855732980974380420933455721846208849967737857641326498414849042715472935078284603497243855198177996542486906057552670863542455457789843547577017133728371483868955004062997354083892556960038260850931165760988059004286379382753265205890843540190961402343657178767804385370801121984339411464187982627760424612181175767240988059733541246177864393647462642629326450479469552962935404439741214100835638980476861378172229944704971059937899342179354494408048373937199281270121443036206539851458922732537777937551757056711147194984400883497688060960877737347517557618320559835396689438160299954020505108103899469858476550864369498993192378401889235285073952072805486132466394312470825246473712852914236877506456270342617355441528319250474192770596182514373690274720123840524626842618170842633946286473161022503040554282195133157677286112149639708248685034092779897148389781683992356172800985071309528278360499435939392604726438374578800784848039234460046739444109348054401042552782646778085600511184237688210581357294631936853146140786605352909259393529471943062454412609118624944352911384119545440392733518659180372238841502567518259936173910493738796455814552783943212550652241766340147387184137636905455328856355188593623839474560598878188512517941678449348290534343520042544167607305626024600945322376355940143080362471297963478829515865236172041134986556473963176259519805902121286839146235652327826211710572491510523218805610368532699909019325200195714499630278101825620667735923570289309983567935657236982622422930240843853361561407615124334119966659579150704831302650205946898714918586574748830345531636402848511445998860377397079734541722002170553915276934502259992374539358383021408509864737843284073518818436220171588054610245521472651680927527249862874764927412966247020950626806654577868903952091326084957855623789618234371391884841303528372747704096663191131408605087435746180059747191222331478642226204547001596810073895518083698102450050876567748779695555899966866337227172701335488059604590763294252481968828871602331404708886434486598469997053513060954505790572005737359136430956109915423431095247989809101043771270077811319664962837483015805456216293282790224702024164547470794850130740142582262105291482416262617472502302062012070143982694491639016637995706385222017616309830284288210883298841225261366197512840279649412688384360974425228251129358782397247126120736956530389572023533681755368644624243485061493845614322755004195009094892799145640483024159936295085889084966331882080077825640787787037817637670851073787838144409907959348472022618735296480256364580153302386416674222430232337445609215534139438417510716401440913922121145817276025521450922361433999360544891727873020880152425980125399778291927897937127414701642792260762751213214106738621032533658222934282649203710650835363253182927786947292166444046415166196559318946890736584857947282988938439145062014159171307516537866978135045456088928130298670949082179528806804872431199023179535338540516491380469336511856277655962090966411837009600945888902286979183673506328795414055925683345152313148858812332850422415580556177299454308259173960839848755214321247766102027205838067013075059797039017757376325034760666347791808915649602731637120348898913806418605027345005258745739116217305899745940035148450017296935695502003604581155755648032899150931814998672872524479282778511137906073232853701435065105191136776708180512449460178510720438636987977043638225406247733156924362433218479158240471898986264121561791238912464068375861265627993642867563509138971849681578097076846642533583857027528428506078396693677650359729866876196266211617469590074058495699066493722387879950104386271971145236727794915342968853930544882011093388527135553037755966071275933626218002693424294993207201199903069619027461699271655804768415546621630223084198532860150808393831307594751422935802846742577331740273274993607433497288657699466790184774585010051621106326778006137489171423205005360774849954775184990369230501858728226323377013237922372445571418468310178743575515340779024348296585230161567272119766540553676141243229508560214216056874725345707510927892603253165068277647131452656977987660278026981541441666372618549706428496561040441149539618634404393531316786108016849787786913797163926050625415944666268483111068624457171893688044637306621643832887644875844068763895921210244814818391130892346882592948389739988005403148647723841443602492380281370838356156157580099800858866274098929913016380574548526007156413264071716667707449213298748879850986755456810717594515927500225502478389637725004257208984419677279334483530194270490523181368083852258214672838945441235234855893169120210598536447113318569642462951782271189940318108166533318814252209864009876430151428779818875597350386308165461415597798226559845788098513047996934945211362261252440317340032589247175516609899922377886698910334372106370277817181537873049327609818997550144455124242260199709297703797475930544058262649426107401995324414332057844161134057073138067675533594820802128544286301175245911383641345804268662251028039424689837020193601437073278590172011318606136574257738098602905006939754073824355862516401844973896671971094941038783848055428458299396933728693757951072681520937067656142838891759646576398610450293889063427443392634517477598815183667801142181882662415630525900235061252125861922705964026434943382035979220649681582998244682808989550598759930165591267030454792297983129064408327495638555622823784830941722717583113853434958401942420430144961589409420711206506757249615294712486666266333049238675123474517904796849196637415676795715830084579166950762204326876363484926788771357553006583842296557630984708925789176124051368302372370001947357091075204965484268944898712002441691506633853798226367371975701070178122162798824383540274423082496583940581236381728471556205613831446428861557667217923413549321157865947977615914417122093410957381458470811489012980156593517368659839679903324151715940913005819935436594064197163217989105096828853337255496779299304718992278098259317375829537713725765046691555791549049765554021708783845686191572106999758135422031999352276670044888629438637483291425054069728199122158594190662323519154274378524025155197851485013012719233491075934074763999051349988065639351759781460920098914677775185720485046361515305258545923749905436706596212384073981129946047177435701476338494073108877697647829318244792494008956005366953079381081349677408853140555116805281753976926357951094167440890535549040074526992337749662442559131260127634137953823603182849142033802035034865646405349246602011751341027686486671734586166981695365707899534342092131501565172448621422367313455765783598382876946861947678727226287074251392329392645811708920409139301265084716169984562569844505143926871745279084545891694846263725316339181511042231586062396759898346538024359426418670460792625791019922289834902736803975464326253235165171391214650349877567298153831132019990470130128269849087882261714336224510071222243663278308286213186969677528996599136066124147350211917635873047097881764307738093984380178285390137670892809775742764207508109386374904306812636979342326878133816767604662119382442100838814221389172641147390532469705844033938915181662981370369586398313791758002843351621727513497915579326031422597442626753583661995028582758882153703289053759127953606740608930682331616673683490669783832979161264930589423452264319710383754331005032969885662008972842290577028991090774923624408025555478088245602954457710958091954065626720130813658592997435847008676470327360490066502727059302019640517223953265385282909649700722933746619191047611015432750939646392658571939924795963565442857892151944311542225830856189667567028269140477396048579959817250478409115062012244816101876709048635557241492039505157603342937157160350962886569882260120386856056289815131681847499158023195617280934293420721206997452896890153465885682948424510611699868149453443417254419650100718459651250989961057792974951782982337438404945853316877228333472114892651564268348946254102607895925235333475089200534122775205328465240611006900146605158920974858687222860261243999088306166976069704966399964565234677387071553006987161011098876108478479684339532948907935098552641831602186214264877433117592627391871377503221045648268917083132221008424436524976897677749659868424990176196172471636025783622079442771158413441617002867751675401715536802315395792716121136386078373913393765232653002669428492464386651676402090288090893096247613381284310061160354984155586310789446695322734880583967231426065473415895389474375106904953098379725900043588983355661297879971618515467773388566384262379649946323743790205839041751170524649124555845781722966346610863418902697766634746555168223889276587794080844037833708876342673380478041411304179232896234419177345692060958197605623657134719970539873089386495124798649510751604711474050133423821504825564641025248099413947570970424847393663745156283687496896624838345746515797859282195180372957935013337811380238294611666295027841898955004220506078356159472203533172644611367825153300058922294866526952726936112888240216947104429588256866200492244090740825164086261549294914386082456458088318038831008909534878757772627558177204766701001818828702433438060870054369249401736662822712865371492369468497572149688836665456710345312284217898248764237690988575461746488906884698501947356748479623318888541239630952496515638211736447393336842511018829341661777240838787782188845854249278590820535687387239466301347413311721026178367924924352632302610564861453694083628031348961541711149988831986394901719393724852541572824201751278593941276206723699012521064500835509042753540647865132203994404470131329365110997009011467912837592937228379775683624499112363180806402986504206540091124883277287974126854481549635599783039619267064172051848977229268691247765741793663771706334199958808775531973223188347365254615440035675768382712643321209769565955408417380628569585843390383531021101470868082207457359250927159100731878769741439481477533591408239817966914142608167013031036794454119057241704314596207426156088668734290260534422100210681145418359343277434357760139297916199725745005980324616927426712204919073058824421753883254083876728326047452417615704824297395561294904968737671835668861260697863710684458230639250718104029703073433870620110234045315184787757235685532310820129760255778321614931333033712780538213126549956342900789218139976049488639064605613322658107445031712616645448812342966641047831767121079234808110199993044859783964109880248165315977209830979597078523516425620176984061667667444124684964342917575957147046651749858506522148340787615561863860782865835748378025797303563447756001688523349951357777991962766579367757887645449238967411022779546474081298597147579158377569764511190468216274939761661545918418276896180281850747583877588157693502144508483266924045643057904027073926311013427222412398531205330389017233464244642360715589284513496540719038848482915810217908590227124244187706481840863705549759202478489930233770759498128700253159211038342777122944005178678638909390248592486226845065016636869601107168340887603881199956390396875258371484017087428892718778693826488610217367948572299799259686287384858998778921572279609938756770829893370426450002822744689389234734957637957589114742375482579975690474567291949292909657531704729081998556454829704973082109903882187244799559626032102895923194888798399387725726204739022047327056368343000084832149998220457565981276787525717708746001339110629586591371226501821297042483380391676336023314732573103419418043603460711856551668195170750565489186985722981349431691065285149250518941795531361619161210275669187436238958204411087552512378919604126719733915310881523222970788088006667005499721286027719380716489447953120975098529265066567336984496073290327599279681964668178297160432599503788397829030599508445850778427335527443854350145358475592884023613173922317136317114446583678568215557164275475145409245390395211594194163553900812135413765894001552222792642357822562917875853983372504879495705622845504732816099210902288821208671239998059992836970320628348296080155794171574989386560001143067208272051226391257580772662851439056736852669712044401129693793349767890731006633393015297314170949383524251865233405007709787510256549254656185992797733179965905752113275873730889651068755290117108396754970787843804324590222600097413410194317339649901954046865285617554362003860672535423956186674506972981094062642326468184107939277213973464746494446916029766322848849053810445063420037441459577523863800216749991079678535593001368235362776842985779466244890319616723285604135539593081936466682205393686946860803661600557714706174794869967583244566632868257811693535023977929839192037060189429396130779873288015136736345537844063751561881089925360915875422864614048619535785731706408906664816641635063226266774724145265678227490058577593259860276601379086344235491486684430296523620445415557832304972409362020543916757515886830704188532013849071590028410324658877752455471976199976504909127798184069378626139920378038574265316712372088828499192987993414058807073732202227578114045972739322301323735830955769824839570889604716396423792920734563464331058758610051151277961495389130610851029935380047239949668975380851428906831224384963213198679375693230205988517406430435464470959400082295762034997727480157020886432512544397412599381191114818821840992898950333622075859194207645251019885284672124848092180574453372017488837833800499314617075734126559010559788809561153366606854176026574241823070063829916138050518081770519859081582404532485469872897213838184827867212550006185792734990612024871962816354719233210754651378695040693619106138849474541298326731186550279956337854759931054774467017782588605270562281835946326239377765932931406723988422606235786058462204330073529441237301328550095402810795201836442122332554747917742004861308986929576965214257931449258274903743703681210853529980092234009283492068214407850904492276049647640894065567726570772048520855802496160430802346528940939784152334553560836728444972154295896729235712941291904229127865956431363420943981850032314944437679664638159659489832162567680424193289304239074858229269168021030194013470777220225975221553794901558374772281834018689607957102174489831578677248053354901401804915329110838985862593819093047809760921154115362519234148204379583466415773704181475138119664226058472930185265832356042630612258862187576537970727330280299631821606837370778138451865717683131431927037945550987415217763259481578107916041647684544842966898677920088294426363154461020097428543275931461039553992458284601189787853935611682378501089496766557452545990842516707057909795281465701276664074719350460955960658762070997376552211241434704650527613547306006267220197613294497714635932152670654707988488622125282872779199633394161437006822311706129537382123163725512499208307395876301165212151350885260681362700128136329876306702917035283877314263355106800271741096691243230959448156520039170822675408820836995491207350016777997606264320673532800564420714137905020173654815201626407219556138292853473781126538045891012051437628400745670789893295190907817673927587798676807431509419282495167332313219208700709163003848913510357202663222848633164762342169673171009543663867398821113344119079646528489325078316150215749311737173850633191541305519040586453034135064782049004456362882759494542021164565749898284578415206131973021659345530940914318136465427110061615640773565453488063555121994431491267866941614208286508118649982175206980879989780715360407939199418643321747454086719269695383448026951448225148713515686583355110181998513607591355097344378357615703165718706600346024159868782547734658397584863668293974915343763464416079603103623879694693676924924385011374770354868959609333245090514497328811728859535254309675232716503384336029749117248013165395444465980697276668946710220193630264795129151083062418846240392239521386352659760581786731373764787771870637999823884309318261983978640027839416473788267897415781237029161209303470185140305727512462538903622797145080167748306426315092332915053585832038798364558060052405580033660275384469302096927746937914583045151712382074551753028709478071298283615912924156435578931203168372518682536111221819163984787065506778493209798247517905430823692033979373998445774600954379899389315924755051552285331486766845891989410443799466135463574614749642758912124986283942459684078118163022850539478353097410815302985430828139201468203410942637976698847300332355688461492869091549694282473122009670788648321333595030689337532773521945780318783068255239716346966630825604525806576774373258124449445527450331212835988840828390175021669428369650086983470414277650194788330174567315208390758584188106278031744435767957817398825699631273962306930536468899874768832518464893353189911853896557262896434840174640449744880433220890322268675921256268708607989993301342722527936214686648726759849645689783578853648717443144212178750131609521754739914674472741251777390833744054973855201909335662630651206714456298034414661531976467779856620182250231547818065550380478884356496512679656850798781836577959272099309717695385715151634704373215029917685697689371724535544217267167718682261810959135188788876847067489143151998219896604220226309523149822904800348103173432983160660343356118727260482823492703371277763685671577823151223677700329125948275821218913903525884836307304916946312573143522678144584048156759163970742006191449028263814227905913994601557842572203557418080838807019069992065333391418640414443412990149490069683007473879763946517330240444822206197077749173795277606730152091976010007623117739092887357074032853060968057230324150774558504314960284216360980753458267482046500717057456885456187352239686128957288112989029630567974319633984824131222507771834951979997363645759733526969126730239201411311518892046357543621307308384384583678317936360818971101068028532702493528075540352008932342704962006612084470581325327934288766570105263167817196620235015134676324188456033538427967260779287076415301044354584240695336334084101241511067479504898011825697087708257353538287971747788959932484790575982241303504961081401763384920230977245203112279322370775009575753778469619098375744743263144557217572757822685771421451700660934944452123414058083395486892850588289326036227049448664095649678331465384157427005259954124265978615880355505131925057686775168724685999073986634641415555187417414844349325192380874408249189691962565275073659980295218693676425955502245501732373756722701155083394106663638557424281263807756592073722097183670582317533217901720649830127781725034928372004907224737288804762448058970068793456945912787191945335449290752377851477716358594200246313375841813544288431828105357608239847376148871604227073224471199436341655987768139264091035790760313465362036320713533116444372021531449063228898231154024715313592224951380725589820247381280353082144083503218485105875467494140676633639099053524819421331904692173334750228186238242160861271176470485117808756430678933411588006995637543941761797481711005060428358869830977951773583121470004435407954764917940241752427398941494915950629810682344286771324884802991638693138428975916322204723390017908535799977650344179880948651828430324162426242554418549988358045466840514751544072678212463790029300817320584129639971696897843873074207251646518970009207073438511818997961945400249519893959204768222342182714732994894989364174112378139182018492242953444747412297263523796242026763820493661408970334301589722643324527140100762338274789630436882430145561398095563494276596982023953580601465555681585766580470613091305465354444639315678006821957752842468563953500059870085381812666674424259699568823319138138432621994876563558266502823373587441117632842145427492510374564977782405418933088291191017642480062208179538053256595588600838224392146227752717056164861862143019184174399174520065319126046349278226513742103780274779184247765167521268331161379016012018345357003045971651132805818251480592531710084819652676386220360974165021339530750567232986795750642062588375313836585086839744433704760337621320083109444276974704342684036757643471329816485862538851223488228186947041835315576815863358723105314171112617132064838371085004934734815398435122618390135752919626568005722681655183726112990057367590002822077144696113674103718064334741867721310130819109382192633489380736600216339713258265882311975948832284012230731250016651882219447019309872320244613768366815623329836212678803880052872352846581727772427623684051606653358706031359869399057294694617143014122908325559277352196332567519589514695404058536949264452009159445479970928757828831458591007628663117962003753832558411285835310262375494092398183054720594719363188531514412735887936072531171034675228733942041041830924377468637928380697252935947281761238331105776450884981942793497622887554227161920469473888339483493352356379869632253688336644375455395770483129848274932842849657468627760073910164844988357690907669454577659559051059063008477222022869168082003687135680517175029299337795692730266580985041856899203582301739781596035383084013975817262524780129029013152281149837481969115070428360611194022486739260200540348473371616579511636271383015574364449106687334168523733704217485129288641997057477955313695440666103068461603911357765379613425355334873338842122443670858238922723122142000455600073697413018325494481859492401799676883973610988120509550976432872361510575689486776482201457786049983218630883778469030639481528580406005394045652744364587109461616803635514782352306105242321293353452335590990041245613116876904887709156846887696117431965833108391664366911917831054876967551330664062486003100013894757926594925173263956641623804174095998384102150042349604825114849681058849471270799544358594433278010360655774739831828540541668289303324593024412435259973177363319363591141094539869791742638457410587700039617199707878021109095922491165455738691810705480885934812334788029190191238513027725916870249336688913608639876316900327479467997182462356948543200078918665612508953467604204028605700096021087408991273267446819542859094461093250950890644693085892261972401623602797646004544988867843373397725761284315947463336519874745239000821600463847193506609026963089964219070885132220968096818337090276910161339102541257474773137290410520270759499347316402686737513337455219955055013745715274130200271051475802604843319594464134301893350800057535514707866845412932545867232968020878616518469316918829201621002054099115301924287404639806907814337494432931037484022615988234326765863795063656000539581723192142239257719699106119018148074212718281533754547765923892304133176647922049477501787447385696613926304269948399078269666823714490531000471670486268635836904293830113134876690920360964929673026287392058524543195404551363850645645177429652940658277450165683995083917596014788839645843622544963719669491791605780088431782134822348554512430418434134269430143861648152401704236170593105652982583773221959746651472562946731196017243693227516411757480557925198033749941700164037377622191956222071530545350423224532688311399423177010765998957319106197413348471672812648476603928047051110611013595159226901055652748189159156418442419428316602670407416560592370966868489715487947031374104326670355651718493583557866594332539472719195023127487738272096448593653218423827615498709977804517623579114186689280113711842975529287786660841107240957465356488425425652975624672121408192295172246854151055227947506785195085570144451599995944823906300279784421282368312961888371422935266725350755429962664990262054495182358788572867325800583607246637076166270355266133444699394852656010316625071959830448078286637830045621402961863176923478038114212264118946279203657079024637178889672400930564053451753738850203663544119878743632477805719892624713236987241067637549344570668529432907261234541343620177053636538007620003887930560240203607736052545783774404398855259998742432056501854348789365043632422571128089351627202498159320596216311285222989629904604817989278577188060424503305205478192092282189390907989699639662626255964208270393783098113826389560465765103311014189039853401193774978416195923850640306002810395660554081822430592921575928957162393758449603521673259162173043815911022675397338844801557294936252073196323630438156045560850626832961251684537509993458319398336789657504978650477611141083131726588455435806715079217484279461539185767439146568718205957501285172181148282071600674945909242459713561943735928828313348089049875559293865254979302061344796696876332036283838352211965509352848406085559772603071915697536356871716636249196964945131712619412424305437487258127370645374518808467895326338579637270480873858350452373301863835051835085572090292068077672980724507595164401050077034378778139933571377584373299631525573029037031337974208528552421934769184626445458430610185579715372518065471501087312950402110636587929967962689329320357351822871782729980504852345811374386207647191996028904845867467904077276106979524393095304038230617462699396188610547188281889530474767955434633994725855992092724030236658499613478905802007746689698699787992122310949778289890883756703300060438298062304021252344308161676487255512050026700532876578505924490272137957816816436199857887755590414251172211431843093547773801028961154652884903003629938095545533901608845130765987543286090681017060091101245213848124986063660660780215927015696364030346763612005821321515491429816661942277907148987887767518112005185133727050351608295530148620170470292852257738772288417297119325550801920210598976531829876909002175199104435993770187143308073392524155760480395426161999605850809978346852659630202383158801276927090987243487369898337099909566978273352613222070055831790922514889172255651814920573220619849033709154762712887615759894433103606214712447492019390292627342630254859178672726485912239850166608863703773933069300864532107795005653917749194430463662964888551389986477205113729069352242004843973230186480894097332481495263712879408154752972148817195490463881329480676605079353142926071204020954100329397558701503575793368398879038000576572420000952164823247869670903293680828367251388773597873244959848739984125857706060631982609241142954156073616535360860196142969721835654605094953696109196464935684442337517660996690156082829047447911355226240212950170409501446345444104356660002093107967554145317193803366052253565843823818117297128570351124205631537041611654672337252791314470842397249121638110694078693213658548348386437420282392354519345612808300701571050113348216293195292096487847369486375637792070612204537164941234182700947414053400817259330406104134685278534100555347484245454831833722677542343000819333706582565287681328253451231552841026236662751631202321534568119973430217249872230199547040384636561541973977049129591507905254993881505655623031275768234362368570669617350703345310403206359709539698462591475415993290471917610539807564217735509065477535298321163403592066645512098664803025695598765903690576690826687417179418329000577579623522801573035304028193375973799690132839120091535277193810674987052849981357015066519629352521496793284533949805306126682260827081325266927014023555654042662431024112262138261389535748845973620167664822834940420082782225886576535312287682515186931912848168379251432581060825284031378459040309762066320700087323920229617696282941048391800806412634459600675472821177104100309130463462057467692571543592550799142727010198140651109800058949154709829302705515023384381477869326934341918307844074761312366635625793082986846492900514104837147114267361507624987834650122957050089815755031908706923636181826665258850117015025118053795237693405724379209755023151685898660859652075005816454372265048065891383842940213152585840911266401042370596949052965577135735253342433809283902931067061570739354451610115923074664860968464102675277386298755168442492427053493301157287822013309096111836279913787333141361030318103368609694618976501371545672923166232829718486235455569464996544265314741058739575294264925533940339857934485329626571651454741759034426249999906537926033642094566380624709288514954935862331128504617031780841644233721206054849819478898010425551157126777947509105036941002611032239449347564749109102598401190202823412890374170825649759125675353872302189507557735194358284492500884760953706831266488239940060360118381018856707287747341667227602740737183087839685738451118344605236620560887319280365416825582031512544267574088950868669653514126546714532120426853461624286175990599464815806785238306691466263905056556129389245563598848490087032884371442643798522580476243426077666023068402271431810057428375820138990652788787264753958045643476669612496954262020115994085721301163667328598157672732844889688920932265050355091666891864061733494935892077092270664201176704509472163303747026216033949731022160387832988492625383510959368568483048150767075824562662111397826595686659448755754086680357187036085001165158158667982788437304257983876205590570380747440827409198648982666867653544939503013392822948762941092526945512045964862624720088142508779243207526285422064303327829451616514464891917027215070123183300111959021010885842012576358290825656789494663001588748715986100769312886519022754109205845396328393857662093756311202321721463920332339528590307485871203850982898785511852008670336940276819508451494947111672780505576038392685903660269142384998944566933288898541322077235035640224657386927102609905313539333986303988269755808420871227170855401719101079810961550275479564703521838866638979470608111082168322272662550887158853329113579511219443432117992520316735947886882655392000301675278489926524879071794249198649457979317283743775829302570741858386741668243482448600837698333117869406467041895451011371411244068252582429693047347680745304861521774552290809779700496345851506275153736591375567863421240929925737521570626402110643325780329587843013525561150291394271489512185846620186933252170732166427288081631160873068897857062220968438950149026717365948650642756881435162680180751463378633519870775652657143791126852869011422542308324159067845568301275372232180924826982831065608553305351230165253056455351313396276190036999336156397344902850539963024062346032909754386756958115944551724277271631512838579875758026690753502008537778596219091862266924005586610079216044469112627162478603327566186804768903907012670149053209761466650459212726159103461689125790382938533002360537197828639603509602484676139261477043960135281641640490959924844802405070321762784754536122898612855921980265481288592426948218742297576418390329669588401669038783622241175962261297334367219496995356073104570373016386365828012562228443620721814203680750248024735173278376808412402014093299260740424493098268551381043031931832940827823930569891102621699226585610621590861496268306234417425260971672607552709013888169200814817414315864352102361047953283147435022738208559362245215553770570001824639527583489496993912518905674319879133562986149436770251939701872876513447255086641997075379209329848159283334533871788992598194315131573146228097410610104855639092333244929514469586763936210843680967577724168863838805074807115295794582002956503366063899794509283394548726995913328323552576652106454585671870399046344738323791092743137544476756882764889369258049750773888119322108653472147729187068705775676348010976720913854880863386107404093945618926512064635668111491486093931429088821093950669859097644556959049109793307830455911042437133882491721113020126511422036317922598820529760637637809592484111899122920340196114883863609152652767331732116659515466140895922031188439271315338768071661930601359443226404686370949299664401272360793788262626571905485517833221620132527470522316943288046630184305781626009648398862267710839789242956246338170439233777601985272077648462262533233373430783028851968605834325303258274636809053932803306951779050665820572176287753746710435518654671743401488288280205257765851752525641231980979177974651839752992420583882257714231540474391636726223795259070332345366494292874421322257821791529501297226820627218468413894641809178149449839067347588296389150634673434178961075502697066573752817398209559671793474437488680710297078160407267286794850953123055046909574146808633572387845046742280873002936824731096571389467442437571838652814811711962612935250421894365397402203227485564700347493791610567631223363350957336738051491082271914028019109495573894220831457668154898856367676541036428224407199518543385009667782968272958092311927813645984002910775965591204335390952057775035094538590670511958937298432906779713759534941860241435983514988012901330669214823060153533770155326042889313328257626301701436101225238580429970028940894126094727703667947924385998863126171515227431132287962027921608219725880292703099519123787315471421071790828405936748726238450520521258298185046967624277828963518101325688987770640879493843284982615756567676019502344223828028440806692520384774281646882913524466163545770537861158807623315700261645949218796709289467013997763686688525149397187315461960560686102739892842647426772433549072088648113547820855337553174645509221981448599558368314209501186104750193852421085110521098946025564753833194846509693957037309930727939743437942982035442041113388798732132477948029167356570510934482087281085934747311174290916385523164376372409937538049938584534817413941002647368545471650640873776893676477644763793693392801385492090357754816162664035092857947194427758468986375801936792677088333124615608775554100618596404626866349974852678441706890564015322824086878730893454290697177692087433764566423272120816319241138188613261598902942622158596520630288561714187539574574843148372029709998714698475654899380500326153582130698595864962387827792401746687048844344131382602263446239184496718161487919713033261068436172585417633875132998988457550823792002053473117349331788454295734464251830543788428071593893551211506791611086407580026524197288802878024560869246528852855068198506912707540133345544808533726757522127859234631259712044288353484234853280775948929238442041815287102944205196618222171191773927307371527556111868907447806992840709286875322568252011522131713746326131658243108582744439741403033677164399946874131825942090322722635382886254879961371941202999555376311291093456155381044147576680506318722354964437932719691348380362516694326154991068318180296613468910670197185719857834310152488721956551000718765138425171269296483495738729465415591108574288706368389926253517691198656386699829794534626915291572619622085961941554910963854394045650500165206680207472166480740802217899284208842449809762838807799329283768307680150152030394426143327287742673177803184156413161960516363470881228701688602624685773873475612238938438583755684010511732028350296933331532278695631348618411512918849635789501497985509563146673626894300425206938337691737961350541332037360426589713243110423358728923346002193742838089848901387354650688511083938565712664172215455466260956940918962083612846019677983222087324963495405903810631058538849244911711522252544689315328557184622125238491528163871404139079943686189480259986592062743677014289160678077549056259071432138656604841007317598530324809596744794888560969659143020061484986321872411571776881536147100922659927260754112157396004167581681836338556357793866523907236469209220857546662161216538744767803334110306981986620470892627387961529322119194584872861919978302646281781647163045591791360738222462372782812692076243094238268706075096124807640494283543319432522844122444366838103904545921130005267579622579923639497045088615273121374448236939618353433733676350864290938799086004557223714638841058843319248410617233957156985224490328057005225854549254640307989466585224859627740736739564429568866820163051556249505645283338460782512372212617190379937179656191519895273397085675687383040254515398314790111866360282860119756768410901754698671814960336987669420877654020553079665630571350692995630814507509597485323549670942654150722470074620046160975452052635205965866810026528003469806490734800040872678865627926000202975825476942980971145532905189169428972156347640512910444293969276150243233491886427000379065756368033292534199047963708985729374234492832478582468991573600991485672290974732000443148650115649623756605853909149752526504782380209733470513900321764444803672533326812057845956359545129460959114288987884215966636735706294656333963413519899765948983011508738603744712751246317454016541235096385631612593527519662839409875479858678198749536757508942515212808389469798562917944698146230553602136961403394684256923208585672901978782434529046668798862289878284362877756327087425235365829436398977188541236325394078590588232834652753592661341513355716526199184943643152258785293829872097720333477016786235552564365266558897843586681302265116845974185112070171406346939050538880057470836259659665833692869061839309770037562544724590020327366908175115252919513881241151041862672407576255086887130583849359555987610826861528304457004346291599251798705246247312132228161414756724918865308434997247474693733546287974612018015756666529237843811602002485053802633303804390915726701844812517476691587086240955779066344926264601782177088679507217782049875196975579633336701009104631905175713069842938344340635542630145069054385307292415872934088779830289024252920309878480399123823496906622851124543929777278870422620734497792274946884633980837430799111334821710692908976864583042872219970835165933653793755172669814050194049610057289402423178536420410963377242296368872114466407866993480704888850860818878841530037104109320091779010809242954717601758645838664565910638946559890643774755780596965781000443705315990218959451441048920053957671557932398202554402371168514830253895416518206443042679009784308841048234987670537654518690484594876412291052132634171740354407730141091057840769521471496340853338350680854283436385909915229534169620059121268312489798634721955482737376536898893789277337767964041935918094737829513973471660422498890118686076054283112983476243158271228712556188912560501683660910195680030221857455992393094219004398613250725803654867717999735363896553014682719339499763614132925947287342260729410356602474573581361745589820858011616883688811836465457794101442646991956963482880644778236563258000704868965761798595333264293358816131535043335628721827730931536946381345468676941891472988853258715228779830731409200585085055382126607944217239776741915885830614273222426099090441781893416423994852659352626371432839405213263326497782358484679388976017834517528534224887393067072087379639487400660013224138703779294031082146452792325783631531171876386603200184761029822510647850105367632000062503440673779566754275721533737427934704833816239436541984199051634614153113907779328773118074881278094977032179915056419757416364479150606202824817354022296776641975794168406193211380234972600318039286644978974432714329405048153408095793096602885263680116610658039775227625956048875908518214893546330965171222898420922785564069171244234578478004811270032003329939891199784401696626223040846829253055076059192972968732863711125966409115423187930599777776872740945536494242904650829978162737373840733233103891774964253647513081708672599979551679137891706792721007770500730499342918771985104964554425900643432106471700817660012691242819330193438549641804431102300643321186004492896907495467410917210991469359307027911990500888091078972169581156129849419070422059951312052500589525853710471475805315969082138253970534861993410188512374456008770003373141214734542829532453161479032109846076279645570061075761443694186504002836235806914978400465944621879366050507040964827584079530246759697359235415681025933317663122893069837381030541368612140999138911632116738402921470698421303955357982024827716124674220724529703509616063365736495306840529876959516526251349468304028836106332138366344704963462658860837601133028221868637609234879072127162515432615731531815237411387293922589673998634973746225722397603671543741973491746450479177861211020360803586755676267982967567828505574462082153739952113208834976836873013100924730265713187784430115535891767401552877320825841630325715059973193174805760352871385833021905227890127706381789380012142591233128538624976578129851497641254313294430322894183344365329441356669143970462487530735600526738517307320364479880082407449361500630596378815471959046693039121951598085584676431129150199629488445550903348253320530822830242061582866714942901658292663183572908816975462141006234057986429703668443412721254963212523995911669933447753018176684412478541856467575700462698525258623899499595430282241500229060808859835735630440182705550742081009855976056827829615549500776955399762766086256776015679528471368178061773501767512150404163490851005419144802247561039226087886883850560311298186551796776652943749177470465248982771901790309396881057343973435829897243005067146375982340074288278145255793819306137266416296291895784363505685437767317368833749699093897038658009927368814596109748868203402510916207808114841369521752864862491708488090759891110550588778521397266871808399436479808368642631145769946289677801619378298775805449252044662315364123396247060347958837321721864432560460598799841177299955978343444307077070424882059450482887720434101123065979497020667694841895596970926762852194488377064969864676035687612348681362753167471691888425212504914713227706690436864180970490154997211944101386278479335317654652667843760953192962408185626137374551637696363115122005786241104688734055789959629429795367986019300460591886819167596264676111778863211561613446021361277707715020673200492773706426170936658712220434357269355578310643447090405535046661269188517273486403467091768069577559375275293812814321439802497577552452693525271087796878327704266191855045118479236999095617461744277678250083759388063913316945020071800612081855158763316238554512822176413277954874702086530448917953535397117930214441842104524686505350592752178858571143404087439908790704315431344254295299782320212465723437447597355878142933223463461484418940957737921614080167926061465306046875991756714367452743068690733898407407970315229855971236986408617669614588245183444652956865975648515973844457099755032189339654345799966950518039086254422330299965680538112653735449990650671301591086299187872121944756891045209911692080908170652966881053911419857170102543990076889539689297478456808133271944500712498912499361186779270216378231820781374943321356360355539897235378402130557858078670374959006987294541625017760912781944292522386955155889131231046410014926429474523017164552841905023283564079230883297791125087522291862369867470975138578013178952358633043602699760488629918548119811221744140730732636972627718570014607834154879827688744833042783538106182378363043553585880423609475111273779531377774888109725091109914497987338602455671848376075161755816934393319875793932666549198226884909989247267725030338718693384188737841251525691512011853298471727431758973779137832107438189109710153504751592856921971893431270251346266506661704569416840846263307062934807653631673119508340048887456769467208667657551154077074991709577923280893998022622210759528616983096900622171108494343358819691849561482786450717802993227111545357076538249267755613844846385813453947846797525653022976944146949095005365669751944297761104947685004109830192271968804377809182543228560532741555978519816957765587975935069212994947473015883592927095792568764526173829256869453102391121381730898655946528719802085744577851670784866660154730182534979515302125741342705220347733213416694056655049655238505589653457674882636532897283314531842426440510615429288647233459459619886404217286336398634695423273324507668391405792707888892883914504729270744453762833996469325944613832060115271757703199414556222371849966886532403088374572840792122287851219838571991858289343652548766101679877322953596095098139932238722621500977429300937258239946959555485338377383782110414530047567449087214578671191271948716747739234778722840995782110570006515032306358852212444161051325079901008597184399507285859504516530731159488397581950034870663102824123983122774744830519957913838139841773171671633522932060788671124848162047340845514724790234422328814052845623458291948031911535892456051757930366971200790747851755145437119501439891109196853358834471104194503460791098983573514192567329525820961698054794689665019233773875600367459366392904252348740997123963712934256391458641689880702162699735707198939100330817627019631258817599783028293936521363662603999841801169974294160588715302300838642790245442714686107225700567729671726284178461390274705140942824150671979209763699510844657007394273430762673981147587842399000819418177415661961779097940174504174755586325194664503810947825571985081643943941198846459799939673828897037922701729678603106107413225115791391581088403105258938094691068392236730416071319962229879551693407200578075161698921168760330048583755702447775594459049582479627344490145453570526146347008647903789535773234777069220692211929091427669155127553446794923206021852067173774985626041036273194589684220300056971060447139436951764885704156631682787426827989872903195565316661133021214974870905513705984500414200662488205382032896700072929210969535713628383255836832811190808758971554804156759069310017319735754989180727964156711429419140517807987029639398299938486896819078639425736526448611128343972958133502053562255440582640765679549014556125327742468603947789717793101581041524004876700944744449741429518744624419561690936677748740301558108354615141945737079339581521469444475058134416040824290535840869004438178633126303350518487308359330470027020757311560469284600371449211506741526473209783107271023392297297845189922591932941370327208749551650727679796123764875895045620972579477747088653827919679280423856543179040016608151499182890199965322305014196039283033220693562610765498795827757419248278567168349205350039476224504058231244006004872403534671094842140095899836717153351690384607590624767262868826570037942264325729777663491773442274446738991450103924685844747652750558730591172420266420010279913036047657152479133135682438141806693801580291550312737354655105697090842762826343737423078484034175284469647818471417251196048436327841883714794084927513074560135203831545162346075686169379626278940438961468388318617628867117904823823181730892932712173391598541266249996799703225129283593646718967572329596667078860434193675325233473711726245376445472786937412738446192864865840378368131813367663146622916880238537604156577087161805758064312838025942612533774438780202633141605632708995528063971134651612141968824735562308636406748471443155627766991112483110878805870882702906680780888285799943254158627726644938998085673874988429891977075448120794324131033842179914250624412723573929046798160191955724868058416289123966714458531003052095621735252205990777246043692264009877690427652901889613198471731866461117723925548654299231219288428536159315431216088740141732999651513146474364795266695127723081180819300102484441729558077963400308283229257675946747613164554952007430536092097083335941394903310805872786904154103889148657293461639304770265002882502279473633231761836021430776006327879441447867783082817981107645361599876036506430532999128933266135555008711467578851712424281890309505806635727729352298004505763552520220425991558059104733897569601724663141880535658618146829106032523846949542482497221988612085606303481665129648529309256436437104081567260322381366833021740206345687237092174580028841311403359191916065919959090480922327143838505251227755357348308573886162625878279214783546279320651630572051929674048910273044314726635666811546913150796589022949963867759646855008393968514081282938880411713453814441526569794199637301985927555337476520681926847047900433165341800748458085980255691481502155096875728045633062362028521094323961077235309945449141961828476764631429683505727648756893830989785050293585571862411677398882237300703749380659134494426701855811372091416388094632572144295240819661731018874510268057290233170690234015226408687008522739989532787525725120539077383321874419895220868008326703507986295011005337794166233104859011556995632953628654793734834140722833611426427918403064595044400077892830041798973597234746305874770176394089624944051768979481635372945486607530226995707742478506107840367296812035394806034374444212077786132261841719487354020764897704196694904422523989892030503011794723566485349121438946831993109585603414714627747136751908143380415732909174907835638781320729299404204548313260621838959787937873057234188990671840090348179172475832363344120765652383956697219506695549735122899084095247321034160286454353668639995421265416988034594428040117162056098479377353885199512651561049340993745018361068781741539291788820272305117651942721430047642529406184208356999377128514950824300083328060231187907091442783833654476608241047396650151206625997815495791956014670001188651608704014593956693304468874867024553856815254335095175422028070177138862030986756909952559512267570227120313676818885054813731136295533796541878675867393861282458733878521740665115313288871208487277971310250358055787759380425216271023431039840245312702607652931108979283036000814791708554575397220665292092613650895393780389472270494968479676349426893069419563692881479311115303236031089558350771235078945422837123235278878340559382054824503958695158100861643533402530445814468649172568383642696626042227141027493022497617958722113432020630873796167506526442115886643955370519638891449731102695949927293888069965466582674239909708596180594444204953679471004674235308419929520620689054174328104522695104124194292946451301967541894037657244470985037342831902508770931482136301140850044676646720195808072254654460876583781696860287852191558837084646186088313781338219401075144492427098441613517849234963035799521941524288951390539701418654709444678525480075618931128615060717808487851500803841225737605215410431499725907322916909249302281985341472131256841896392955359841829505972039949138213597931702157838018812126087792764366382224812437975662277599087623439209240379622753717539654188380468508410714341232821467049417717618104390029502589151444349142873638405946679000656675421243626063059049384303688208015583773236582892085416808341702954387462478904572914238119897969069313894091725945871575114438407169669115939678705640142716043972145450997566625060047171040736725820031720641424427009147540115728149805423839399104036700222592484990137897954286729713871537245817196111713631586114359845061404892633006456470954083419525244211463497870605196396476464717727858869510585259528503812296414812311436423724882866624270863428371317648618262298262902406930033988332815577949680531156248312722734886127302423181412358899236590478432720344390469663721921213836686603955404444292604254956871897080839650468510271958467577141796976534873873994848589565716410582394613848639749498164541434551668512312495487141007289603119636253272292688319759634036119724290806273294094810525129549220941426584797169452258676454906277299600943456141043792754804436871455701471947398430960630625666752641514349364834718650501453390137918785204050018124019527371466896898489967416957887452731025037415556116417553111193600141189172926661161834247591120510340920226858669470524787603037927222419057611734444161506322790775986018360546948359990405122830969512352859993690537172771346894659305521461941907252248312612921334571854271547965108766236507849960047703564018326209828763601690522126238855216693441502468486052206129395964212715531337868305441000141542998320287972827969266959765856982243219523859107236711785812250328916716685926598991587585047870526532869405508600742536791539283201385175557911042417824290685139667835438598318452900174409322036584238233144679732468327478961252442667855494827746057546242857431434844690722974297210905002823167685281008837659501062317696269574562173718854054223219166914282478024579121191111767853321724636504985424067986876588806388105160787713653170561139035848252076632510465310480408536247370393078030686469682190744317496645439459987550441161905954519277035162038184434275017292617472441863001617429158407027205055422485557569381631518125436627691881161830197749566501941482606014687211841434951459768822954159777881653163415271499603159799559776129299582558097471961759584674629562645903062793726580294518301059632774408324798173621191982938587516796644284788936146734332855254710349909360933449252129578539164836630511932570593675928164697951396405469252992230186879121856608958375922056303315923077399007854038294450720263809017385252449272449495954132562149527636238262368256068276771548845806210021155867697404499038477985321372090916841637490266847337633203657143300932476372825258958381433509970204649915787648632866895098760453445953486707747080063887209944066612484595811831684878650927890534245938276431880157010501982192733964604878437296081461266269075608517965025849682270668893337593573474331520156037103357951579826870002256789672122619692371738696054540271993835259084364847166015554303624993550572959288182354404793012388036945600122494643783070033936544675932735956044553221776738922424248036292110285579360951741912132105883114313829482167643629523242045869565309482715470876456955427654145640616695669742577198734991265670040570585668609909196612117480923447032956706463854149081455466578742273576233856646281263761024633885198559471621712007690166781890610282550453783083523495366196566496514435197164326745962765101525868800178164498382357167720790314294484674922923313266914955846405733395681663141415464543589494744713450669272039178324446694249274565770291896964597588162962867269745836916776625011842668432753714937501128608670834146062925715794091799803002375738637997860787051005889313466311343685530554078924254194085028181779905060504503560859355753222148889722884737462879777328412321517980943687112289703406350536176269020830706534538734616886498277156352679791811823029029682767680435663182942972116947644617507931720837361928800325135718786298759476881881651340297290369808246441513563169915314125159009582296321013997767323311466127794211186076267136692396533911893336109058673467870314925823446047702774923363987863917241478256496220739993076320462148743940579708610441885808160562704628449936373231878648821181740947268044038187435283128389370565365475629824031078015892062093101005014978943039817045233815549274167775362707528425857927340533092663982601503881099147221908636240107068915823658051367660655060070273701297041254131683616383751169191601331775217392824506081340787761896599032879579878598522595734938205922614341402189041282481911807705649519907985936951106364670815474107432496361017158363762064505249507265003918877431412862237070208028745704852195679314794697143400000511314169348326523972013757700933274982603863701894489257962572789548006023864663484175635063364475907557275847345654650922077220631511324447336875709235385521154360620536624945669719491371570531226828313388574573303260620935369036122458932396929430094863502311936418372113879772244151948665916422686764506699586628060972077939667894801677782915254584803298615626031052842600027925697527629727758565753663058248231758311413941276706378454489308531414867858947433316326970724471005410442195000746106352878901807348512312620479628257228023676802452514494123979292057811957377136240147907125411860938790498574272916672056449668842256381053713871413980815099245351377908796028172261329937124983696826883186936973184495204167163961617100566827899428820189180432358628282128827074631058558023333037474294416456433161781545565508194861050036186154877293223183098182718984565864114686249919509453467428070589145832278820524076935980362302322206147075048135282833551150378580927458454847403712398343985385873357029545527349124034140142447604884546367796073254595441123537837358013015648717707969926535865913131346803484835277806701990850419185242552655614709316687438561908944428513577046308568757941832785975946936795787231099573865883454245256251870295574625864719066040239091706870323506584244388877119351173128436208774890368998016325097919210985422102518140312780231408303809784035715750376733584400193484868462100067644289216414607856395635215306977546854976989208601479189959520791592733187006353209539530356540277683490380068184965465027416646664819909993527419235184934282422095042609378183878970333507180543268195929065763546467068671391090290513095074463844645131628843386503379034908864581619233628917664627267754619435154667258596904188483254777582654027017193322103800368997316340156261744330765061586311009148650906080234425237687656660661834140368637102285789126409933044438717927783466570820536544041859444946682031218460138417774135911260484187203382940929772519663309225703108544637660820118255150411379724890980448051864328785369709457104970056923354785443765682277633726641308327233833984254666156193440091557244249830258729841132354011011512599457579163571846162968028326434026875311246779264949903374728356765604460447718149996599734214685693405438501326519667345427319385711705933360254464237525508303827297602776615124102592314266294061269750470715553351220893120168607190447617656135328362734052521948223626535709379910804853368622599756572011127435457768976523614168426731139746563833610578257154051296967733384351382416998570789024854678245458135625662494771462327237945176918464639205625814480928713532734829251216945219757634393229751546406835069809169574350573946055363257403152301319061565582103846293399594245664485632464038666216739238533461640770488793938989638635261227104909644061853802683423408854152882271374543714585331992771809630600104557594663170368806865901593109536365136633424895851543025487289875642033460273622093038487804995792715549079735061707223885507847005230445588313010861042927280863152390380134311711582560619449293722457757841756771215236180057162422392613126074230530616130726019328208972678240838391850586536707565741728629808153982360106879851189943327057145643771681015739420932943610138467964531171941321797675572313955465096755101286818761912667485451873868393270589065612386429203092036452747154688634192347971571738157489685243760792131779100709604497563176566517531436424162073716621861221543693080274684782112688005112694184574507048097546093131952260774909629626451000628125016406417920997684944610956115286849780680896743161377736209743351453691838224667107326685803659592147894055429555579892406797682778129842780706421817236316543701676107125876162829776196096036087864096670075755699116445142804935298406489202618137719303502267118504776858407673038947170110671269646552984874616491502659669139812158230031475958118409200414058188556537124846785693553228122558935043873360104438552286092570900274967181847244072563822160767509251687698556165682392553278234156700310055261394935748659661579748467690735348681140152604561489780650395224621691467058859390888738867750822124325924659353859825122765407873314985129051898859886302132354870442183867463404121245282859647816477500414389626146826169941357549802469929036073950804911782922525419766154541122149554094311840178647377463022223994859103146488433869994708616499198781046040904906429472117295992969277593104385972744121869404872886212551262762943971029393897706183969181628851604020270259834304199127938814507128262894700544988133719975597496170461489623631687626641544076674091347315038540719671174933679453872209980225494517018142210754197971682201327513627249728286086307914181260117677675678969608835523073057224897439491951271276392018492388914356790009571613889593103433269195433485809852659705616841728412471524305092735272328237870699137612748304139289163831915470623850801160162373961622282225586294184380504583000648279061277467697923462480943173386823703348966556366271410287752744152643851625597340344720718139928135487375786339972479241820566134179331943736412465096434891800516902859455932637739930764042091015697697194777585525203550951036076653939927382097442412254237268308329598072371833891047671339663817111085078097415964512330596434377372918200095263610170092780775855933715803149893986389459740496097337744020472385946642237639817540499519381842595896401063401010124336638883638789726612044879146775754594545767544741254621462561126923534941531917552128736259284414264167867992581705901785742772296790016863448726374876642310127049936596235938280370201141935454336428479362728621079815969242738456019672263414093438376931786499878687116772052545795135420029985371638904263911037546742093095021299577959259058331806071959895198599030152978805011617424247855085347284954836091363183438435661267052005637903729247651637408704892870297353743149245000294248477711427606957760226480379426738921052251986793985141928569757420003683263938199122857006773173128774021219806317415446618578912943486290551225626001930474354671471923359611239798079460684754094745311774873683904510856684925956630050729305959999444299936231207504611493045623647450816333150975805634209763117748237714189845176409601935963195635926674162865058580583900079112311416586960007335163069365403759419520327695213398355134668458896196130971039056725746836090102280954359258873291212243987454697568053477341706274321869496658689553608203376707660052207342256961599753502669535098700480229829294322324559263807979999377889075692568482400908288298791605675871492728881416151635312191903623852249092970542577271282216667396573554637005163752001646297826609282695065740422609760346721825355538205588811280946558101461850421695170734322717316050267206215152203837615510610973546555706571829293206870421166434717649063807027207271620369490030603592787722439033491263030208596410726020320600762510792670330768914591282723374294277271462128570574195654266360117467611438061000663671525445237630132709105014713620702427882926333051434613362482340468098741083291819320308702300361185210549443349745784482091227449766321775546055667435306076312395467309893664221118096049385921295379897851738276857601615817375213871060738199593048083173917947612810381330418411590092040499331510839572482211908181874540462965385003089445835181795157563229246142650488895712267004820279022076782129533405479872194451224291860611151357279871822411988104536796102380700368589216721242658677594514857699856081031651185694788479982005323211871743016741102589031519644208748765952969235861388822550993832713159476693412294884863894027349951361590208705423152602107426359037294524433896447788246462430498113868667862521927331527873493225604191955523301435817308843114243256240967258696215597184704474160980709583022760732687554943593367178281877162945044948982320057492367714144918736392922457394177682824788447993660636687995459288707719365239116378054594526732216236208735416056527799995230759014849279636304889763903917395167107399803769224175687698893151541837228524893958689605092354091760955858756010030188628090135120278611599976344121475403319543321753121219983752510319982760344249437683514276488255411678961378845967962278743501367195462148037743661207122862280690173755904690416292814242458143058804092699122770035735380121859726509501949338423383762973877081124379002664282771334753204848109212892416636387214064526197622927217316590360334985610623632588424913107898346668098659584886835787020196827815050880194238745526116706004110755545129026844414517478840315033998773318487236360708118916253340255845272171137576297582702381130397187827351161422564721348472201941775366631346692410785076508400272740150301730982317917981430537907734525532436915314307020545370049344711998265413201692750243225410987740129739239059957509944392326840562451399615598451715963635153273633108353550100719913142953218015373850262107406615642109963554917208622429949516015968443685649351919354319145948784645807907213996200767021313933052096597487088143042546467097303653433945460650975007548444921527552930211597442667650603747401927576849931438606282906331566332634592802323484716264632639690869479630539772950166300655731496344026472171231566048968430275977906369909503489559843718310862011559072596541315270483403859900941481815496276407803836314938930795851975262800411532753345168115765511236294413244857643630390589631900673422190047379339938565902739615259882943795834932897493562537752506672884056640894401697719816578229351477426708117411337815676915021692285859869101435413745787431128013058358364828415571012069192684565691858173931935031357221474917045451482759269932079417052920840013842650067335753720976744251048420278727451436457498735570075018709155854895159997819691543630690205511392081928649731397834815099762277255396141972718216036502594947431528320519599743409503625763480911087913621619682672444018837404672684965488382378623448960721470606504257884532897224731855212598397611572157581412979592957540877637892714523898472293054292787689566506674154549540012829434248450276254363426257111910699175532556907225832413297140263307996054503085774304115680124125966127149568721255205918804902102611186953204122972604006612429948465016680584806643414153128309155654860245498767085711703803579546683118791435482403521803642586934201537239558742158505879605972235120975407621134919641092128575900786007177786791194389345626582632891168709007116953140687390106131634232531250521530253180923717600746076806169821769302640656355325348311043233088026880502768444430235826607876486723307558448790962598908397482827911410603925405359995833042235974642149088430211688658331585950446010811545681281576670005692935696718589603867295564365971514998814668216234102154678017533042154148701047128336494776189770085611078729990034544046140634233245889076899454848172829666449010752453492489047346212283414369641193315669672577796692507659610916438374769616151048499104964994628901811423929088376502676350871064525413060040193968017041864012458665661153090604740618762294413121942963835917444052900623896137645130025965147305703847938170988267998067235005087534704809113049515932574933001959471522976001024532289420919527059487324245470138405404226573684052713807815043929747971449015837943106784072948949251768762554879228097682918757483107993080844541905566350898471062538203072490092684840590181518453530614500375059033857572182944114298420520742635198534547779755862305360695086565252949758080787842883974140355484127667376358123460184849679942116583199768535716330635103271433016991688581291812184368629644777076654746402746382939823212034775337330130543539673999117697449978279353605694365514393702064305117791952976395021884704224993908052741710776787730677765733697986857186403779533950493191451591206729840913174526950490441273346847861980796919149791003036839191141775788376797106627599323650286244092881813078089926864899052149522597763517094112147622442323553205021742960893126450859724746575687630291331061563337051426181671789307229840285073066088499699551293610245612820621074761547289892014190618739901312843619037771727646322913611476097408129964051803817498347350462169298761513891374064465099785197511241571318456850936616574232421593924071493948453189905146469157132892605449585421262524784793707671970843160945795819488256049190272230680385702333881507766081544144222592664107635881528113994535928777771532751391264692915937643236360699966857482060058819201573132504989717271687015493276942160424037925193837008439173647818604297222276710008105000021977435460704124402564892761963243246990126930852238528119713789168284162695278830830630930923739840837731485180103698399002446516783639436807511766615296374657957717994311687496507731263839536756005903261560701185507398499638181267415266673036819595928254054053101334113757275454375299007032390290632395573050644749485763516327667382624873538506098059051720107218231936609200895991290542828662590132722221066006710424936819347261728489930348146424497658695500852093905024803180337954371811440501521080080670689609250646733204646836427630643937177195179594727944193003128770117170782370907664636562634449782604806815703903235847047171929740451938688311765648839638470103368207156105629035693845091574630512465703413674817307810069436335257895253027455162321394785639580841678446136318705938747999863271207702013476046841776514308496441954091623059756649880222732808241789689832104445619236915046510566887424742926018573815060476999338077293852484202773561597020073454291737353566359849233273609078905977420598416107139314785142051997492232481572678381959275363568201409084007835665073589731469768298320019999795451813843415839121150972581222792129518953529341682632323678327434047010532040515964619011108200050903240540089904736443085886987218744514036856487732605251807075983134988413651123990717626006328117879364879685296815904914454505190466399506405846754483521821280857146654535183690242103697892232191311345063996993083050033443936029796528165543778087867101835315573690373905569900861243478208816580384786924071993595639646409997759546634743106972034789099276912859742533296770445680543067456487000543652326257762698337644697990688529778735360860895078726294831922802844892654930830959693222426739997435751105058398851133955807297560644243214381277129428511880285063515779941754675784076473293501282535400248544481651864895294509205002089006213176302960302515153613854853499556747804527524608859073665937095435639823084283531693672097878035194172134275424421738153759596916232907318186401491254096502521369125187280248454269500736448229658578168545699564914117145215197660947199653291275568364150969758658717879531368453433326111345961025739672809833332304115239399910288930791149077802195371687516988696891247194112899602186720812077115384482266702004661359863042250609390166257893989219317901407033681706979485383731863146305682395528159858801899634390017218888508497631278147292230166703792928022657795292191317314974242168602737781781253886972195638077383724295968244298257459329261552337869099659277702749633543563660622532789322725568389810287108126600418182519404964708657309170511924318561440452779651809637374878266647934743140007667736861561655262197684430491413074963448209960431367640798510500671597655933515013665414830801455577646538194915384987252155395550697997026227669309666739964168546593826447839395458287293768488587832184735561794929502586760154708098318344206837635361320958949254853136942206435162309100840440455229473067948848955591597070610693569156078549585434497650643039765450641354016309217883410761578988420291348774347668039376834279595914698918662747119334909990571867348678640868248995698249619664134212318693111688844112349344198100187883044405388005608189332990455056885040515551354410733145447992309410485949454178081707858740463316779741315531454990827581985283730117674438378934754912385239045175205436638879374773538969164632504409704240008257923586651653996174946289338916835476971684333208546126454788507609266239189096730625009492664043409005824285653919360139306751065892944215755560376268435467353547671740532772886101884289874792788026343142798834748072455819388963355037991088423220042803374564933177325465740685876969336301902985734827894005625814012370924933375008351923002536801964535359719011569576541610535011892396611387633030732394695895903537760285243790875726869400910759207220044711386280598958378060641034626929247727663374931181965228207531127293685881406105154414312560072860300165268283138684256527766538120029803211753054192567534615687191682593004142860526789123081780488119237588513825736074926291093707200530379835403585674673861769022448970052460065570005565578513013504910232213400429130690441213383528929137156515094308657802782415746323781917246936668310024430524050314838397338916011674094912554408015301043988680862027752696430664608354785067437143684084946130000689341864059701035256664614764519065251639493271026145924620101930167910925540189436451336407749123615914836068839254219336221190508517657857448961421438532969946994816613321901421174142684439920223973701563267678556453410511010931514100582670607496603691010380780155454839451913623604904109004022984845177698735778449495831409796399132858852786004471139159392781516174910618375746904990605245138354251765783979991351401695043658361940137468582749848737269056074581852252494857854278206691702502082830806261230459070146810232194956987456973689375993984739713763755121580430630746711930841354299921522637310851251441957997150268526812649117683545965658089428282250964474396907708683648136327509419814742171385641014548542567426398851235429982877017586766288722309818281543935338154151652328562934879249214192758365893951964601510968298268386785348145958339484584652367272635710239070909396554436074310761911588788114827009057781638852571982939690901694711564974112116512504926533271928037721241151916487783443294928032743797882010470526750155912428555071774064419634556132444268067748453896933611394312354907443489553936443138325084454497195025672274903095201262580313940336811650528791051242440613734757881008644192674378939828749745943768885480386057754610226602447874489831372636752584486615578606007903603639780502130155652512289412860635075815125093104245585875447839657612061542592025999228016146759496343305897629896524476070878285924208970834002302228019050727131057659156668050796286713845674112204644446294885455171176687039797761792600536193732700852520467692737077812811683730480726311565382767807537488605532080445759555950622624949257168618552678692551165221746295589895596409768589379935626881455115529469042460927323295069004145859435428672343248168494776459938836268458846226967348547334831577526979960725513004448515453857581073754041965438471708481497087129148338188389232696276044915853681510602749687144864954682208459289828614646631807164140168829050093269220107177058776254663182838277024913178199870630470253947316187731195160068192129248195275142680518454286577646841490308952345241575949936596158143335691387353233002235783044293218415357841025556160212726463584297782192461397805259023327354992666923154391164803982085489900375018622364890994988537978119458543496072476853583568870793602637107095120179016669637815043205768625289949473570268996923989879552064419198547784141647063068053747428432579908105974472099013100305331580590775653943998874269402015515503296254556520699055493483548117744755446538400761549329672337685264913164823298359887367173881773329417969538707393717373069300905750363185449556732648458893206097979823729455561583812352372142490079051976028954421292115733424834391052952132938929369627080270156064864586741935311350447716477878547639986537972598856694056554339721716936424842438413407832042702354818517363883282324496669306912048606953084075799354506487352624921201876894146959397128730004665364516588111105033271157503500526455380591620839466064880625521421453053757576495430472131592527157589699081277503097125258022176808283920000518999613373755436832755568375916714003277925130874738263972724719921575736344003079519103892764374346404296312108095311313352666845387843311546808453900748868390992927626046861707259952142450656553890207311886648358643764192768372780383406734153285256709934528553277849256201177595560262783430446755993042477437735560901164642425982631991786783402247403299498501075916052014532554164354649626221461605370982847962920821327456945384593671513973722068867989642851054760115384645728753836846381654481407464618410273317267339680701748145410594158410804787836408131741881521572455504053772118347777427539618566890814651090472112209107187014521799934706256363672629169874589123284828902451966696360861136128083471206047060828241506972236413065847183075952606783755091637913687865630920528492775199943879959668088276225828401251136995793172646086556141759933353328641782642404115857477856417179714927478660204427994841705089578111410302839230719055549679062522396957512320821597867420368420586547389333191940512044177998254537033938363743176215213900801547423048738111782932876630326971077101165136270911102414998723843367428446009400346355213281984633162576726827995583169951392541144534590713287685258182414235758519327731140910893955626714367979601402805250230310351241554279774086279436752998239800030951909979690484146237951837811056630538371448863593852149462276603949558044663711012814280416649974351638084943820797734846011186701421058576415017234631075983777996551139003193572300649263048619654912726986170429110224686936179414393694208099928017520531353841309343309042339260530281210320973606715349970393662564401327671636445803843409178883921247750476160240244699177843121169773553035532602329250779695306560450958524891490170116448531201830703368088941564765474459836870060217730159277718271516580251762486950116023774135848154915544209222227619726941238514913019066276166682874454930176110830877565296626517728568700577940207933748535825552935476832335472655953862744329223177796731438624658311764856393096980731899941118087476472844576943290847528649634633192289391009845059063201850544218672559021582133102315902827004077163624031806473780878529636833548072561426402243454529462931308812124336143017332898104617740000297760941515356326140591758642598907071103840208009552736605540660639562476015200437387943862431138958544220403210346758428724075627698416455923092069236713898018451854714929100395339653371730125186962305366804840445955231960142102034693329247805743496625700089478772888330649126598587104471820518647230861505295110839713537452528165975608832402573221199588041315316343540340895427546014162490392884806990046765571943774555117707087681781252161922300139996256808891126928140786101968706830902491825056689268701930527976525715458774546362299111907551492789994733169833043975408312912806012367562471621291623002569550584202054315573230607203604576079436199319730531579305862891699701824631399391340088904037548997855437307694873487338096455107985969975040011270500916211594768462495358398188867646575089081081538794099636565021158846769481483793820952086075127657611081955911419689110989208651855217420275847500783292231453394071449343729331606192583912983830189991521608343077631154895015533838458415957696221863667639258213940443350473046043866987166315612898119359127149867088838990746608891213316821702881818145253845205128219552813596039461864500316427933955598043936814979493959341811031658468797541981067727596134874661913521179597886728836880235330420720648871357333322429513387815354078108328815788878191695922634419575154693234200781353761846706677408043480232238559457457112267308702541999262063630908189737112663174141925173055223111298310353238717757515064894367415915515521517655624902775847988788459643058374037192588968498724952312690019589747813056706605294070206167220528483898367036211936637049904893380290615497674535174149370345248150954770144739192666190228062335678989402921541183815925532867533946935555540453045915457409750829861351620960871402282592102420423367018514841038087844665822802955018816606641564162624273918980552624425159932589808368725329839841664160070249027557598445986653811543458086591153521452980451527217124306839257703826699562884903859225116093398164852640805895811628734517817611841545325339455467379515644346324305084049422787885316010961877049717903665484250508531560557963176709676220134881278462895407774914116955078550089537363554958631852065410996304409655360941735378547205413848028966968563795097573757468818263672864470902381016597851893339490419991312013300001106741540792800481766451164275491851546977686559371489909293578514686727144935314151075267143570853389530348948000319936102036493501910360362363865593993227877349046236401516594328977537044299507609998671184906423700419736511547056375971407358413916803724665112381688613925540003565714052751628312865468921953948089919781467389745307725710714978149055614059266679736141959952204133584116330662517239377129026187300861525420880587981797109775842820685122981945929387895529395904583462420604537231552403886721907800064454559404744354632700425749136976037249236671946330075222474306174487145672778340791093966824170970259986248724029219315641397336073089145413099307396547515859888814606017418181847628473258226634194531427160453486698339410527494478350671024703135578882441272178961433867379064168772794132836613638913988257485913053787576413111080037424714723785816060011074909812049900135715478416035087699339606059617995899768373620243665938494376877555820818535396564266652783006658047728984180156076396609192567366497608204269976062257179969479193582057372860379279646649461235861766607444079055236491792353437598586476384482024608202466033339754386001732907677030575763062834538071224906406644391538166092003585858391149240110517062954023344696548347137074507546623664328548125346324104825736996117225193868514866260664919940656054728227980847434383934827676372270882504907998619483033860600829207504185548662964677810152912935594092332469597008127941153421079768831545724594846881511435113493776007668558984095564223088740218418651052653422494851750699854097066964238525759321815708689118293365207486343493223384249293859435465331422655798494787812320625694529782385527310243061940851078762518493942821893212583157292700154411698990545727961813351198540860983985378676007225525810002301376289873317538034864445919189557926620833926776758711386080283385972418952000591963915250127871645480568687383322059649012391716025572482328277816584148883365679152838333030148406557116414293320010083281942149961411977983859201706391779563141135319782012600286538627687336931355417959242844312040671441431809621262792704813703611254723430279078980472336317665045996304791543343679665880954460908970444878908554800769163001395883817585453702782639802908750594135326848092624369281255672814794536191616540374203604498337511716847366048923434526398678966639873063406733485842121923433186671990123698143620970472474446338659281826530772141239478588552099694620559407458206852471057755949275277855825845029883954060116477179311156661746040107861502629769140404967829575492172845582342136313075588978260119587334162000979624424709698057637317072173098930423610077870606742083901320685553408739048623795290824937405257017848062211315181497133304523248597053432075484521528455174474522027349298516899014367316177455098023661300559204591700101444692511366760606446394693924641181018439658968928823371142395270699592845827280356627736575896771785712238580150098258602231915994424354323339158049288328056413393091161322929456360117831136039940706886044317883311767805872128776965045631326664092134559736041291778089452044622881235128441258693121159682348494154309472963967028603189625992201832527293191934893100145961991643408542087718556054837567624038975879611124219185891578102192696492034287937024163325605274711909865203564917631061046444994867813479670975843019841185645472099411354434313973218335427334429284819195341089858749463483553287073092336898453578710545551162382304018822690199385258972559667568343503668242692773429676112758492572278904514482530774340380344286573619199968392447739600794353778713385545625588183688334768517984171138221301792879132857154235575380446636753562648939406372837968988012804642053624583861648748285030251490680879702862654560326815594128375591093573191467586737851577835426023163833433246894291205969582989363012502415216278660722648679642950570504425531499206451702371728749804161438401737598033699848775603155037797617878894108582970413420498727374713035546142428055875243784715843017802871719493960043747213062728262811645566953456555216092745269735927630905764820265858498440435024544164344946212161034514943302038257208738649645557780212075596737453100371258509551700857655834600976236539041651061905912312041563605412059716683095804674163716210397175440725508861856046666903347441292468362072619276559011714823354257149550511203705546220746278680106280674654313668074183192085287348907655344456744239480566767474130881724307314497352130955532082970965231051461704476836922547986240769245722880791126040039552127109849530766968144312974846069538977458765982136509215719355342528489611412961754371928453360719252941636879062263086469920702176825754801170699974552089493877723181760609383137701671060915796777235506361786049587295496840734088801101736240630776884918782903572378211914453690664946645371845059939750512374207177146555430201335721099178900495750659388797123864691241392707253419223781526436851010151439134055485896651384909434854903726297097919957398814867538012241304036514514060523241587829521212122145299565542087572987878502026548167684082506585984691786418845449955892416138463139503377849121896717082555248927026329055935070812299783229907946932459929618894542156585067460312776555890553815985701732716885960559338807295546784006279871030598718736803319200759697052664244579511820403745366622819636829893899774068438839035367218383785806060725149803223972339110560747097169008539475604613355659412840770141670698547152176376783145788717727599862951042025790396641438141895382597901492926047295624076564915738144573763587493375051298979383138090976280903314552259880728389858673898684152244944474994162620981528577283019010964588506507282563154174008946463453160396091037668109572018465346644966722048514567690815907424262135180259606679100658722963120943973660138857891093392437592781448716658677261892538426785971524961005878218059030392150880610001203553488155609449903594823465790186187748366358671187037798418617572801195682739026331622467521103278559857232467047555918190966410842538303214004475595101695261974255226209465799507178807491837184373115079009725165872804131630299426267262240271590153361626145519902178227165785117898100420815961974650380459994009302624620149030652413328657690239323733254686398438295653749658702223914445455537578928175530180088854276243571287458390865534381987274090989523329253879577777361831053768927533203385257292593428058296705389235888360389351356676769685169845665988709998978935161825227947076351440197383010552059704134953991786097884053285563370330185725500939404501841423248767545022302327368750803326217392022836431936607495549753010577249179268680988447078525820948295306805333981979131971357668284632860902934054390385199373587338145929178149308910793237943544605904637137080498534193373081190874639131121744966982644265368819096883322189161866852496306013088143135857926450878356343944977997884737883213445410634806927827953821000811169704756153315600218002811410314576619493288229329255560083773539432544790406707155310270235331268346491008682084428592427498928239417094987066331687806426417927719960873203338437715440090332316317754757722764378239063424298107384284989285423431765807679753986372511790396860075923738215333057901955253375694802311337535042630747729622022191593977721636881070725034584977436465513660406168663246896806869544953018370081201270079490770499251384918137246983198193023192490256900656958428117005401319188377232760310560669405523518321187167991002376915298894716454182574509845593453975993524942656486729940488606129698668213783132725170184255537271997304405522642076633797004870900416935795940075286961011120780422060934718002726031596737935936311933627053031463381854856182999433208476493341662813090653073631006714622882468634907402385397523654193203787497066368530492134234325178038039273934296550779088410252917537286005938449842811109973996866662111020058092688866891943112992665608927109722588522420372591159495850646471670966480104583814392783142984405025484442752767817302157431872761548030748181256749488348721115451551843132902459767852712291099148835693074405917062846942845334842900235469906541750866082834805341185379214733486452937887016404135658682137377682254493916586717759573800116873338942535918320698173712379711014458693502023871565617774677325149302152302641978941986413730941830594665780752175407905697771698279950590375333918390479428689498396978333886989670429642638010263731561978168702144049058321233362169582287004620437279307464554424049575384436088700754773411486597110353007526521295567482374202138103129013046769808871881218922864274026770664200257198731383449012624887098768326954280302855605387286976951607944315908783790224743566878696617605930157453543892234812197670142960758561586292993270085476787842411212585675799684082625356532093433883354731001564407629915219626457191062903250822277353680013022241493111126010533649826173985753672290594378202674965726468034705319885677680582849637082965406387670123729186438625499494379958002598569094519128601483016029514966452498468230043157716518205816807046465697352804691407579176155749429732222298044698682811084869028865087623448563208027879718821040998612563257552049302778738205295803751267883575399191355257851830366795864327926745769271396420335920581524213762150716989313400659446870004973492703113033289219177173366268161939649148820732572108649159188733069839609534885065661973606082642450997016798662727274159783026401959928674753453356980395005676551473844507778729791217847076909447624546451373739545305790943903434862675638898346501319218304774995934797042401756843949352235877536227182329970599862064564256289429029536442963450072027275884027029656203098978721400038428607071333743340624760169877049788683132019662382243164873256612542310031043852528751431352927014541971165942834064720600824276039892746242373803758982255004235207883845805845398748999995716833153322767023085659328946397651643447263141465375167633539726297194268272107783168122510062466507705863510809651146889759898648555145128650981001325604094620903892267619374863018373202768235976921015499330232470824298083778584793251223291346458592022258574378286520695318421919167461197268475388977139839051685869005959327471858085829531918890075813910721876158538767382761163661981008196118343800272255658326574770719968056216849335736552681771338427856458066512544232926731251958988363574541613436020848316301778203732268492367314816978173738643942008505384353584706650198428633689485262498431127455358202310796386029431829890619722940152330861982538157545063664716387039338515776199100722708811673420563981876617865796049614317098909503078780074940097587079060458522193447919316689112985912377343300722415197054723144363651719315600705531125748420973906791752096254101783737244707499315781543431354603736479084976914973916577053828652972961042651394292435946454204376105153518400379449987226543773387048847679332327564404534607392082475780233808510685631239767792076908359813817340609951713474898369535761610832506199992514536922088124252846187559863729024734651278542212771358186869141076872744931467893700761622249237735864699286374541624343141679019377186376778904133270676290022704030299191940214611591686397892330790760662992579646511152903379550801095424207853068772297595676840053125159902747094042622477399672349056580229469193320569007842504625732986804921599519005478578189901851039576293898052793512189140508108060988786277389085849235362632912988468600979669216119673702154568863177954980392497537377951315150972597012839272766583039549728294716372462620051115838297380463581682661924151200197771457370750940041600961704221098713279759936858586434760102707342332215126293385399435267502409316485258912088542376626179526577790859640086460011857203672764181150809470901961358775065139668732545035606942187562216063233289858851049134922415666540194492478659240290109481264760978251488128309054981947326999411108351675711019413301616418265546971544036409292993976938265082413553298305676955548437913622787387201778926375260684539230252743856157144081429208804905334973003771861651984929884252112743340897957756011869277227136526544259212009045402244630484013521728036179352555661912019273448475521707870944420227591063315728786932161055885061392354638275795261565136919867519618407889335066009150435486861461301971196669972653881733138731896880646508219453710569313272974918361314264249009577344776820959258193206895549137642767784402888410318476239849946892543592450266412756765148687263943387197941885301580615327837926679817029851246232753890307080497869076704132565640116200130062807540299948732622089655424128454583401745659816151252183779597213045710536453312170590042700364930177509835399912353674327462491229118064451972370754883533573499418739841028009723008945653987316936813113322808720548587390320938353307795005284860341691745902387701023093203870372647468444051827821891124710488380047770214923616533577143218671387874817452169566055904373578645225670546538819105363801268777007970588380730745586899276475924307746007141214951294578895545245564104972795015106449450425930510516007414956386768991619452775571178026101770652653391034503693128477517999501530257402316766987046774838049889762348688327377476026779802217636984608669923206997338000523858122227879088986317328091551047049574491975518316510110376551064319091810839867007662345620441101512822287138361370299729352116633841847972603020065600469682614192264263804619401913634958207805468156068864071587117530660998344352504560241309932472828708194935573256189266553739229575485804079315913225300740613646721131868638431183649695263222361518087400067344655059836295666500557034009487710998876105851597861892427846283424849397887118732204122899594490053789095539317416017860673016437163908167212709729801328502407065749948270551429224405239546947645410294129970820313106041516404514807606234093184210841771421992806588995816029765844092784746917724375817514197064903620075110125884154921785680764061198166704707708194974632345338343661161202728335681552594436908612558926706475365161811133949617910400654491009704560747792611793185782893086451265773923590022084695461177900521166656578221600176834697673525600335872640908185272088528414617254755479035495718948428734117810398514761477571168244370479804098635823940966804036336313648223869961826854481805413185667601351023636405023844166236475146665351326275085863308333806398651819052195043103358733654436258277826645032474124771649906004260231686605585228545500336303451516384841141690525026413028848153631459212856197503880135517146572336351945687883696830020592588097999771102359402973456460828581796959666426681752907909771108583867047445796747416049841736475841037684115602155228391150316489646649495197808769399292115016083229542898621076069925050062580316809861669253223181714689045098273430277707196881506638564946948580849419639701347836770791291293808380720483491945235282065941164197914739754221659982366423917107106208686708390322584334549856930428706581371492865141770602885801775607902634499021381292883886824466203536290970552484115547969971454568426286914961083842007922441493292536633826876024747240420924064088230248071998846813777744960597192836539754282023553934422689548104980770358086278297052497900895887553784983569603217636188490466186742668079737987916274729139604013838522534704396473849667645166021857877801234109965411718037821233985233399029428349902513370566099744114954786854813483594130556713166913079475579061874987207831565323799286315415212196621176961473730431329743193133658138485306340053257617608813394886144717247398027671528600125534080721500126030663166588168727708027102681080123239466125963329787249251304777839573326347032751076274933954303852852492476699904375325566829865427042215929317852870037443273084069524342973492920856759293555524023175945941456919296308763888064488266215064616248902056665121189423614748357539322698106662351149325623796880860940322034266508816571102076516823288886173025778997947408961112570905006885279697236029651177721152843118401412356642315567153834681596546778737192085315282357969784263170070204117876711276892472456631814565437478067626767717454684587599873069056102389191911567068250510906445815697727225411200594803884032466220784305862727890785705760885823977238803458057824556666112913824040167669954848769264867241595006494832867058814689315343472670394305973757800165050912261381256268792360068783547036448940377317778519685846043366395678750960022907115075842118297397667092263206843281706001119252791597528151248659571480294277115514095812975086541902700628768249293149174891858217171844436426917538919705438901091970740365241948814336012900662761297301385490925638559392983919637766375964552635140855305389051134941383632755445478157464940053005110263116478195320742903034384006308432579858598781492305049389525866961740848551351600918725149257107666771886123508415897223951997074208353768315007649711401205030885330084702087743562341305080398114802354527194567135370896740802675163542935808761019679756019180813320257224464456630279003964083335525322826620922311022709487646761063184435455076490838778364170033374611849935904258948831519166363452983021946040654961065884617889812453712728362980273615919878856601612280373823762201401636957349509219401184191389250577692155267668110870705903043444459540635107900937715365333416934407936103649658549891918759539319553485101727880993436678970837592908019697008513860530395154330751443727513010898193537900175666828574137278093878571884024861292101475966403198966027883731014267776055617268061311840577526432360597167778607214977978235811411073271012623672471822946520226831970104089587800481420107857711945801319384700014933692963553504120033105249625193117414266954068959014833009304397060493233233197700422283960217167301800823972791880241388471238529472792581708413212249920364349998923701906610856883748190531113119542638675384123458506259056644956790122227174908201904452033282128213221040399550385848824849198299492246625238849746009963780354126870616734572179243440476686687012574994945848162512265797909907712111235863644407000154713529599545111873327824089368277955879926558977884341708258383018865893671674520357873713762684220811519194677824414058462707202482198503318891623795770576696211298434125610229932714123202409111694936371231020624420154374714953688194397117627359191309960244406829316517680111967134888226804643309679267153619363550964759996151971025104239534046525178688822343363719665717624645140308271245678382653382406461718041915062836048783965498875848346448517836443675553299508343197967257603754874331758039358646117989063396626672854333942407299371376385484803534630445843940850667914666677929653128069023607008141509641387857903839297259631492019403324027620558514516676975767598308499389960172133782607999677163081528947947961157645754781275779268689245977766490311308373899313183175925123355869483729686498333816593656031965700231774582209024918848690470440832268913515073013623173146698775016371445175492978732240948505697709816187351647867187838318561554903756100508825881899515991633769717949435896154328558623955507585007372013257904473838831175272279280980085548056453081126264912285753934640633698596099287878118102390843330148517480362670134306658391446808014428493038358817406863337225076550042784434636490042223168472107992730230156674701044295628116395857827276074847546678315782755103236946030848832138337048779825448959433878746710167078787644163564058431288277328932807867783100943157027329772231466814150930588820963321501331386185193267571234544748054934161852305293218728572020720531286802314544388104169663377226276293649627977822063242765985405060910441089805727525220100455799106308468309565522988000534251926389567445274007295810125977802128951671477096655027805347690712338924110907416339406582747158594783701009866157567823056186090290683218379982444103422640244988500091468775978213518875393018006029669967644599620459672393271472403976439057338583071239972037068399220581020387275588340546832117802202779453009977728499745718038111259464063933097611311114278476671777680971107080589969306762337685623530793436489445562420076507490328781477639021599208985632212276275427325176249345384916795932438078625530348834257002890161051484665198794406294426544083828401834867306820514983755672971715122844711847267753371270766913814024890194367894889551910588306895119485012468474923509645869224955073972993984652621367770896711281309787877186960460686555149653289997417531755067596801876877108372205178837880667831656726738655514963710777198091174446853896768360922254087495161547147214264288414465494338139987817933563677131484040844707209987682718304688896985688733198538117744254432869469728333263611748698616634164158639331282337747330035730671797798475260066157921964614400571163039724436533618031745593874613551355174309657607536402880299664041873815791391348227845364047738770528875545890605321439178783812770712832466031020536781066424917156899330450006643267232541187976180209554942550221651152179538894646378034651771044737346067001991481409982849623542276271943325140343908086495944318958856597815900125348326772547800729161547433685844420999476744483770357305013672922775262288417962380058425369859656443155624587041919382046866599007684163004435722977698620474030019789736742998632634781461385166049204582412382879169538081585958136356729208021058989371632577431728711573410331794549095779470524749642429300927914130497304285952702540321853419603995214345179051211286705121544120440219931588577985927019639460331700093734383278213117980583095263134964156387546909946736372626921550995141997405965128395009138576385689333872581558137324170016044133134103955166220039786366718738948642470610516617039152370913989001064871192032014438434373071784518056251280426365781796521593036209630619349529580982129694406680657004623206743381798927084962232457996381059988631861013522878340522510078372680061444984071914763035365983645348659521836301629133005183083419917079245037137874397512147720302445938100735423761696798607942020186289298632172864875668466386681712946526573930947712542480481132841456268125823139445775999492726078948060789485245649904124941927040667165533960848600294392776310532201865853086087791448673594640804676095449626912091690463494975995274147964498770619148604367837533985572314701551720383602834667897264567427054576336209151267296405314782515798935188883086060005328516717402990949669035087714154548092719366000224928562975333211875923256221654218634798152645364012440078657175278991530902281239378452333054882620052741489374237562112953663799589766817403722955035342981425561724676813007390085201034499608550854857040542134596266656743458912470476156144514880272551274851165610668342441057676602086823837757299385400237168466032434154164253142484532941564422797659422082162053191457382678154250692572577589838662773812912876663771780812650522310285649028101284514183677462806916361079759322880423844905100536809943636237628797654327131844724255152308750185126313019671368514319458003172385856252640780932901090744255210235425048400596385456679921899848983516348562586674687784265070499532901030464519292956815496075351297183099705007370521328248072403512032021034158762841190638014361545436382333853881621809157709457506822840022324759884652971230884815757945135085341976654686658259678208301397341490602785437654727004458647290433661123418787093922633493091479836965669458600927438389016534002860850595553233021845895575132299717145403652549379086794715310460296745401246495556308189065904953939902981546826550505068062240895828368686444483044550305040331408545464600965124140149923888099551064126115385551654275842683309276286562458871713854447146140060532448117213571176241476186620852727591915612456698602009719229907555861830741186055190089594806804679728044163419439618170199589083921362095568129667922505046713292641109959971434725321368527531887763917645001813425624253859625258996635850320182320533912409036974837595008135260192771673367799302861159100563959859596414993991355867650538733556364939530561836354279234760296062088719177205291738505883775506320262740242240817655997169126652502364710380486851710905260206426903379499459121646816578915515182434618985214072263404096052440466155834065279008545750778749226530428434720006285214941100163780231869003249688167346279857551909332047311498547026597405582805301606252405849442358917075705381407340275785652894804656339553569743645462737197744774195735880358127664368790648587031253906248105292791794268754213330337662382804766274413886092180589877779988099731074905884607330024135910024530375960566969331887504823753455755013458699809689116922064338511658852605134626120986347449491278272615451477447625072994496641229863987423945995792106583576170246528071865934487609526284079203746108484799093786332610796335366649136584525230890014222315305449812271584606768892711277115098871124999563736442662416876334393633922620284392775478571579976282875479301426427198187232511057126247998595120644689846081554093853388696196561490844147372196090129665752846454933403139282371251582178366176571930585604838205952762136925665399361952061205696206336542724577378142900150971661515683309194916927558794386764746161059559897254180795551240842468258852878421292863465587455310422527970423877721831744309610616625344033696661574753377833407565393537041858123487420160635694943678888012109873405353997955010589705851953231083771924921143558828885629678668230985110589555692584948186606251446919804830740591735549339255531341799823230659157141843046664709589523899714321040502824881924146759537475952637500584398160707353186008007374539260228792677659002397681472189639058320949450346069891443730510387423134674177079271831122236285244384579138140888927750938691619252084232116778507417000500014241427633050864405895212924622316368790630415169876115085639322753610340946489111242407445853575845892392371382218101867902063236797669997313685840694237475504316609170423718339481435162008413445318645280264704674999611016988739587485416835390208871791724861775476706677541918626165910004700337991670576866743866960705285629637263106810288248297734052248559625201450632788009088021252042818605083611178109455936779132268826823832025457004150743257260753389105907902906229531251226447505667631268911877438352063925104435186837256495314201411086899900044288151792866927077921990870689332933155221684333611996852246712192576342886081808215002939345338868956051251369049983683700545653061411515765231649838008497417234018402953891173255852365194009332084012001736194269941519182085113748179618379912337431903417057556587524196506083836237361161795211630825073254616196364466394219445196400414872562516132055414020232085061869864948328558931677392299629503680033774068766656268190159129520787915696233411147775256332033712348613596228665246399141898662144549940784067693837052792962052789995843635561403476805831420541883690217138483289093784844607773058222358705900682141257940917473449062423190243980436925751042681409323182342818489265772290227011475262157510442391632209194682769949116263962124991134774399236594579481102854929065146194032095628907384190849564703774360727104014523635784709195963047244245034174497943256849270596305699981522134051503818665573843030101985789178286261836295437750682288596215222586902242766536251225321539197933456900850283862657713125261007267426341579330909349617363410399781500305637053023704801025254409197739009313799566539420901347551355285497849648285504962625325463298794084125164132578994780635430086768530422717385018354092681044792159802061823850530503090537102329218902568614866817563928963143685407715462819324149870809531527438989682520489271019704758431357338100574476785389011932727770782486957098505171754818065019490268780785244792014295708938730038420018258179350650205367388000930344891939558406797061986230393020194162893726944158721015817129037576102814990681506319070917282255648318581923291480401426930562342091496983644889960496812413357627082512615643924961814597425625519805658860174131954989299921313949076733057650973311374270062378804176655990774223117966517620917041737168149091971407752395584243174143640683312957862894437326370554353862216317720526210266406542863244478480893966562730406571433974255876832917777279780634379008018955663579275269693097769634609001969631454155752861424582190550805984235725250271986859548694835332619865735913264164333608939557582592103112752760016862299363441175257181528938558884048075203282355352879245971386509723173780134162919629876913029014423710082975527153552290040435696637453808999890093635189383485859108563718413530900979450697293691115280606070979951835653309403174751749341657080736052565545475463537038487033827027285276341663650833033186065605951226367188750504901474655416682729420283121570198806647221347266526391481857246116753116807792367474296945411753221068122090746576838617754426361962706072609360806221256742027310275373872483670459007473657089816979281620734516779807983599575499522938846861282934461334539822034080584494933212513554855619684050236563218235092068769782676007812807756639905234380052350763565338385563364196954727010351075992724660686427430965094561197444272996064173764705168343027401262727554032997786250008918723383913536110311709312765995196596700599955249946803034039482172538577544695870298278043502871545610253681931995854135977581818837263107302352687758691536321321429441767850389692172157664546888895143990279804354366481503808916259125517769979094884968458228542904793838063209013938036673985250984660871882846195234245554357348753024374294026197615185708471666471153247645973894637794607921094518828974043701845061459340960033952963734708047405020226733595989624343203535434101676704647695871945241909959595989230949669755690576900460132981399969011010178897906659282443389348589461001033342930469714901314308955187646314925326330037834702457139320040574152550752964270214208597214082394321022876842434225403459846836250236378866262114214026021634228944592770403165306714990106727355025154339034656873102743181801449503985365590170794468743331808250203862429125233978716969596205016102103928458828258039114477348461691373853010024703610361152082814662058296749732310601288142261201993821013741982781293119529108515060691868578790786611192281560642124343317756947949075962287921919978872703190173726476302458195702499236804725242235412403768592701308124808736954129002722161874877947912927066392899188687227013740274983387812357672661497089870698856159346289142158093333930146342194301689922743220317681096338329764604294474240136441856587625054694705809497466893335480251539568046262951056987305361656881258277681035896051071057306384684862147849304025821847691212138164129963520457470297509535940509668046787827550995483522210103492660528688755176088781085991378237904206230389068647897993569129749105525947293640810218261350822408473637836354280254697074299123949849024241750172062304964057366479372491766933397991106986436597958590073440316434841568199259619728639135297889805706766877704475091438771293627059485854061509058625645729497852725936133702732245056610724298527801102759466440404793674680922030102236913413538914220288256881565663300066794695483779929507672624493671220463337250557251018379907120079468015189221872488925282841766032131130157977174733667118354107390955026870770070712260804845384853819311434313599740699332267986399504964930059318862943193083837237118209809523664926807976194050522823952661661294722348781762007397048240078551066412472389369662311484484577767399120247903384990653755285178796248844245693770825385991937450445103789006094696792143136747329375980365691914425637794469384943327346897667423659675532889701829676874162273165179706216489013697368004883745659635828729589433149651566557486171678299088130134087009202280607222415122694254174962664605113833331980702690823094542054478723157156436337703664429236599252390467151815469871046613753487104844167830188648029448230904036767850254531341625451287128127275046305658209441120455650334281837985446725378766870571170032086936152566339116791302663347237037179113627912866008286514412363998300713857584013243573177761727917901665985285169366369293033688563945646192732160784065916130286959648699243833386812024624872594323517247485159439972554400217785426169445619307367135533614914206518791966416226684008801160964322947203419132036553179363356055175753452561054367072499575481619176867333994281143442556440653011067390324954559997311194713462780111853554528435241640649978063805277947682640859598992761406994487320256745244259110638542599205223171298171577512953730046084635827325403907407884672169606202791558814455811786466649578466471018537374818410010996621741178158669863033810845671466522005943584162506218312543378248357065764910312114174441480935416368219149298344906016569196885567272704653517862020306910184743473119136891126228765929904518487115977805178338556565853569849296598330259917085030561297742801950214118281631730484950913121488921368653442475292849193697722700025691212392199031078799340829555784096747259960829818108189161646743145411605334882249171786714543139780104862324921013617638299877853108049007838169034401146497215503366559443928883061734677046639618615833285659539720815816742053051116655665113048341833034553052696215528384211323506700461415305243634084306514514392194027949866603811478131545305062098343024879960316159032788517871611748638742067076969161669878100738252201060587977010257702181255921418428599622001707041102352624725153966458960920744960692214898371798117355634312743008704604591886541842835528575802726728882038203074256455121557408725841445979619648763984000863371956778058100237916988419017421793190962093001905437139952239101414382305813907989284370666911928150508055384433702030799495910583754184763414245457227952985966567348746327395925975349069265735735374700983931199796902542913817346271235247266976658794439819638450359948842092349024746778592163251727106901367957988197222247661082003827999833387184846916484615710938472373351478518329683053359028878489647300008787096673978980410611099070812706375334979522570596252050076790813558480721617568772662075557788501483903469426620633110262437371117091478384719823743415879559333494957273738399714750521969580929525395909080626819363217809609838576436106440746175801978229235817684388570545533381156937809594583149775898618462728607964707214335520537751237984549669424080026621731373000314974265199391884115612009653031183947896386563565428198391611402242195840723290741129296566417906345613246224758964105153487828442984869244066119674774100920124801064774915119540019973379171823590122399712092831008012185595192638210684874979359000625574717083218529804929716199739182114616167471623332078972730100408992219357369104637404158757607411731554099142219820381780618477969116129127299724161550846210907572225485224676949596775617120150612627312979090537550444249181194318788487369306357697346268033902165457665662172092098150823467203925565131039558059425450046398536100063278439724298735711106282069751167969260179029066705286560405071368746172761541288477576117344873247382368168237134726540290991512219978891717741820507997331478594477936963899681297753637470724569360573132568134176375372515155668391185604355892437803790609480676546537291766902297453916357274649160411786592334259870352766263274697239647732817610501420989584062022961840537545563138133021091303604780482426584849855639271508074712403417173793642598562411421366484963887994509720755332153969683643440659050456366428779784412327786541904714692570067531659280492092398739912091885545392464628257482180015110640555479873084832247117871408887132223422194690984586347844892395853160781367861231118613122390718638003536035909762060541731168649425388186784524437110128850980640540094880154532431598287645810606379896233554622169838204737488140174652959905289931257170722076764435180574684763348348089271237485359363516593985843832818384497468260910840789569755743304859955310880619368145792068404114185923002294959350312511913187179864804447809019695848053039144639195667389094076472757934670329829567522137470268142505476206556272473397139850919713393293324943646573798574957830365207409879261038712961920951051533890557243985770589454941681830226543853140349026903939502734128693457773864231534587029426080023210202033104815010242312427896671949607164579535496962575979211249611076995214298104793381793597487512553860583699148701882797462313635244675610093159559985083124025894705962794994014947750380677307430694769776942697391655687060845260630229742276158684495959015691495516561485964475302237871716460166596309607468802198744536489152097089068890018438107576329436926470116625412896341237243675817418255609510653239597218977644294451089134480911260008577321655228358011806103528400993392425409440974006676465313979388055413108596964038108020968529521793254408028695032296439231915780393970997907295656778832789368341908895358161269080652601707290523606576966812621635716067832053867545161260902978411148983927937367961729014269770914372771360529197857025853319739858858464230458550758399605142507647757526817270746938749551042476218121043943003541890234694598180954882095830598489170499973465180929556083121709619682804564671466100335099672067097591516602896564266614804092065120093584560181145124930734820400141583389823495823330756153717195064146152952002557391889205009538555576371356246132432092866372769913061944534923613435273623732878901864894171368713728127606240120211697281371164501529768218382019040655552033504428169437471558364263818057248748578581396339471697672019997357888822267029176328220165607806589248354607870713044266905922555472615691954114925753532753439564688731052336278864513533558450855548784837631175457932456512343381512263904925044699935094937854039484992830018331650247625197672941984728615954757094285795155216560968820215471523692993844292928139509552049067526889885156571028645679015374309207065840243769152804527271697250495232919481574690324291982793552016722268630895952408738514950924928315639211986249073453291687997071260639293154918446702310162822052191850021781277971482640153668280473846072634247307490899590440998044606391312951975158398461122534714961307660091546752279360376612333805723999731319750654936545636675501203505361101049768026393096794320761901786730937722185084773062623981311117797877226612005465827244507948537810770148915392547354559794192026468046460693818500230741866994278630303685256174166299122368383184396657533164335505525979166690879913800786961855019556226065178127130751323831450249763459011891191992886556901515329727673998393367435832710707542775594995962025544288577428234586076929990486678228566412372091876693371559530512537058784640329587102579431756271151954761311018115017614273503158541979352448960955046834369091533976962465745898132121741339976456215623818442728367647797135238791071315212585079311634517959814575689769918795786526741339482793371684718743831091746084126114666465455160722561054035418458598374025752947591405886911269351876955746689418532705890048954358962604920337866846041340322660856334489953038621744301105168666761529077625743583369179671351919588430686736931472696566290175164184219702683483927982289878274386525005889219703668051372303181697813113538716039773369682340639978307112476608939099447098394938059166944040686781543489747968218354249391047910917977429010138764204543586634694458688205198491379458915039675873197897042915866363175790332086648639960724578087016103944281251601970769235570969806698837511137638942866569272602118923767176888062412223077515474141277324470410836070895417629176006736587453702684548058720455885844011047000139677743034905569422756677738961478933778166999991851845560940601499639143883132167581636890474403896995557003315608229676070455426906964478013755656733046576229212337996528769396688951790604030876803875763428067626025076509745211109394988170105389648346702963534265380655753397059969428302526868883361038807768433518584140014298228614540456722593127200768551257108478574639048572577543263209889263596878444143081413569665042402412820827951086691429224597871631684105583178932855560501336248592697962810047424705744312093128951858026857556478521982247725050397334988580515969148117361373394747201743659580564542854823348011361343133780327831947769646034049267434719203823450417537329125387288891270620006274841163159195464630381571318974244813536041020237451723883388298291732889176240437138684869575906740256116800918246656463812551897632166561006479522668817656216845054909941140365918040091306888582381080552362355838796338618208804439497373206849908614700247609895247273330823702941686689244875056769268585607056876062201703016919482492332467198290856089475858097632796010567076550126002891520611356760726828014219306461259700868122947712754159626848830479491269938971605865207545589095915645449138465959786969099302230628457011489958888096746310455697870477304787687311506578658750273947164326818984019899279681817605756463094525295479101872289862370129070686982687808747493436995715172029393215591126570505808448984661606283112578350419641753525007246954800879089291816786280712167121588624990138323696058816191323082562674145835941122354904938150371606228084629497014681251463799528622992628089018818262470176218678443956194103606786004080443900475184198520947839969417791916411378148714622402133991082916331059896275672780363182101561972183726186184193366295542940829978477889789180641498274626535275392325478473113973159988940175719487038430692693013880442825212907012919231189308026668064866986991849319264261394873749664221534745412224382577825893437152864228749664366699113127307571886393170519013638748062780315383043623498880911464245766342597628137009887282384733972743020251031142966438766184373363303519243750550987788332210048952799372622458891723765762396699211683740077561311548870589401953216150684692419776679036942638086431861144629828142816806571548779229722401034648153122104271708848928219721372399541208853181003034233517184521345762701756882124971989632011218484559001282668647311179880499278947578423837057173851230546776977654403906599191143914684326750266787906457062827811730093176447413739455028111039395213746156145252449687554914280091022596732804726131642934031136145715186940831257515402385286743084381037154297380725660244971059340986987468120990743018805047516530631528035664512365257389551994521931842394119648690231753818376113150077422527232862951802725388708291692220638866450045610112381564176052725427144500931846050679150856680265252412166471671072480679867959557858423048195469777270032460003619822956422596427319587784694184506925306086759802552883562497505653025036157669978980817557344405434489220774102318568830598366978089786853925031816966897204388958922116150242158431078811267016451652456099508029616813781237139963590003611954733278590073661441799732976976901427918520916561181397249030780960178384582704154979209785813724203467798179443140273640730404688388846178612627198161173673169772120622100977155013299329187129775158652884034418820791581452986680294520758166452925104065937390874764901782972125413607553990465153292788744725179580000829419874124750156866902001769638747524861757444001623120528401418554075043256316781993083640912999557119431116835004346268227689756096678740406868075951788870243013121976912977744165923091089647340305353655789992226545844964842366687332227943007085528718665842548010795696993492794175012332537817519645779294793237362504977670182611681337477670340232083411940487455606658491819931670559072229084056517223690854969557718698494292548877745663850443137651739363111214701975414409322791315415440442547949960293495710795616644402861954544213886577819027041403394710371834487645832703672699879263242616159086965132361227837476010253548429435566024748038515713991107876471143731228652350246261500827848391762857696623804107318340885182222942980769366020154980539108917878741079542811950407376526146966004766953663592918645646114987545209039768948806839815383222066724041278043728791577877804925722477031246536894775053833872221376158034155463842853475526296145553998869138141099996204192602372367399751359106026646873320495264980206348397121850316343572887712453111400446989719248443657527268533865361737045193269615783658441319063256335323860805659501225241112463295181858417422406373692778598787267371269001406989197400106914674314094473086418733125761123076566174405820896113367723091073683957002818272947150331634536114978412089435048958219281700544401501471868436910694489534205539159408806839971063882886783776936534066058410728469770766866807209841910731833332154768482769196285552217611892354081332673159174118620329283846280641721080620057363995303556199525313317482387405010755678989622082391853246286009543685855969209499176229555968225907285193042750998177559168180264229925064155130649158786980625484104060757962389992875343159336771437478423442511302968925118066973718935793303992159414166285792480600200892188887890526580426887132349862215320531243584457894964231741408801611206777987808621583152089015727646563262264493762676099763826784515454223807513124416355070719079861627536949988243057326387733701127938506443042406117272241397541822113638451160145886616959956060982051747479063122680161903146294385068141237462604550851768666374892230658751276970985771018843133567266802039389370971822547516613307010559069585376974533924271790758138929861946400331047089090576351182375097315836203260866011258325877741309523592283100267851573824103429806037300293194765889334803136683367883407941522735839640383330843849580320079722216089431817358207282228659829871048766663775968263077780885756379022039392045684795713570580499655159266179995499916123836782524355611966353084006845718636160518565939392844908352346022146820543933172022811311309613141081387487959918933321124317331582764962942351572305943962104885833479233863904587968750725969338162467596428943609617548528929295897698809686069012494711526743123076160728772071366394265953648467183070832635741162219155721522966735207121322540637300156784669046195383383171731537867691780163651506004564377854075236675933667573087375634243891108687831852954009110817030807018908047221003693203958340443421621318860553701278207749999594241394922245343743965875899702160084024974072354903408696395845519384679208043285438123848053573050889514269763724709810009743013070473811394214812589769720736926150507455373693511683541945501118421129326735303950395365700296967895257640502034880745583894642497740995841243839646047162756906523130645451674330927101387658011108665873631842672161831574212693041442969004613524475020762115246625970486642059818521174005512695958092671895283020558843463574349356259210523304598749423377579723113796130644575847920778022954088268594729822873779271367257522673615291348311209868283626789469177977271547254828033756351162375951568160788202959853014337066005537012411039403302697134527738227865975109110321800974854823282138865414556756410262813783406024082701552676838177920022924436865269826570839747666331630766137811512646882911815131178914258921029553614525022342990054636877073336236568934190469566353351518066464020104987376700860371912310013725920910139998378472171621933230767715091267912630736803883060656544699271469104151391658339552869794066821212239870381982272729045315690871184948087015332854366034223409935417195991657409438999713593871224239405516335466150045282540232347355142931533200494613139376013616592346640203030943903402335025932329131886355346681278247820413147562466779843171293372602061508739531387084121279395697222357819941536918256420626074355539500839242307395226145848930094950697997193110557064521525226446588857480807998890454552361883402191754518015691627189158077016849845357170287048679949857893243040114068761598482375972078823238388030744083819481676016643146769815689713056294186106084933929531941028425537321559994058411159541631957890534053775176189099703568278344308639516645921606873141438775208640256175618978773507409886095060394835256858102682690205672839697712613087273121213665807752119330538878596427837820334937157355092429587751882696978246279707112172487916533339260184023567803895636380774042422540856503706467785357312457209000604147927621447577940235292426459543634014964914560024669710059629259617818894385450862406234563906914135291279358016559197197487663764924402927358201340601556937322314066238616583089314117429872324215707334286617954561896352424200497916669179893064573483386482152727544986740516436632648825925490446149312265970177297439105034892679006594364630908346637878115232672085465186580091270565243921746496536635167674419385600944944138088791542266160621044721492210804651758913426025776838211811343846057849030020304908311205140110558619944273599764240183972023332399889173287366769386307605838802209886287886287061597030854132898161116915473051273925187335957416430890305439590140795610179217910085329833527519979077864158227676602281226732230955695986579982243520844037123976424630203320395978773068728576421445173531166383619093387241167496243368419186544874395868977067014198826936646165613159854855294510267478556416711586032617831051751698410283839334872656617868531272738951878372386516436639860899380049558212834894907934174435789662847546668258978395710861459470534191787198221585296726710382563051854997716411809515002364224826091145584633098266064806682698464481862518441602320905837346177847119106009975483816399729710371137338568232094581645219961784404972033692669559543915925148248811655201479798369337729967013180284021643130979372133155622411972326545783321270214187059836763204000037177015583669491647819307840563960999858209968537038322484398846879267459886331527718884265460764732900555351568220409255187867504792219931006439293131422272095915102569045039483814692807370058598187872434506723301673266997811098064922203756310948236360489429753370177476676853222847725130165150497719214751889331892558593916620599054269009724793643003282769814933361469411551069896462242481367043470042783443674611932752486040872834942279300838846766257955477784848762060737167245594840468984983820230426794309628040127876590374794048559935768382418190931594551157005081410300379460423026274087272944199820025712835718889270971074194442718349111429187222974352192071313406804515220461706560765975161037907142788234321826511090571299696499047074408653321379128841594849870489254373102609722622340571039870706392885043631717646444624564092468161666876004855070827284479576220731519872882123347790167392202421268129688538666130967493781220292759463113709416020271909989911873789790578376803471956858190382013779302452192090603074691786400565407404671660664271062978277884034806402675794358544320902642940855837423139335570128361090059656725065189121725031217575387626830391076999148886996213927502325658926404927553211181563229623941161173370889165612052054212540076640812799375352406935047433209748980480334419394254138217400099479489810870675051350166248300752150864824449260362323291395104754953032346475543072203991290665744800960661001182666108120589337888213492589388786237197752579897497635259345456220006239888947443133921889660333624365598772552825417868093289490867431163931715524108043226880106064829892795449342300026818121270061522525847540216746536436425876465595842134953777764503358961417027029616296711581758046333653817831360697764497238660577812228633942216968451131963256102616680657504838112290631945938127465031329847713015144143825453050931542306837732758433401988417350682144827401968112045387647356700380364219041025985647055213396760273374735428708775276372529381158204358274019687397251234720334792503650954028425521544843343744341152661928402664413600581436118896582950272396960693444362040629050435938316608935966814720409698762573029384432568427665760379173100572875935675060277487870828533660049006432851423412155321336056662620940379504514955430312294840796541216886194975906144801231719437210702190895127907731132954694852366127124863189695542135280705094860471537830205657496724432781222636368251861992025879461000107184534642033392166040742619751874446751852154430097374437547209505054807306485878726173561860810336952737855739519423092020366553038884188128604872388364861218602391892861205996760451904931594710840930517111073750876385346843839424615400719134370112247535208944892081556490641752787207669360810408101615589895437913732900325187632304577857414770169804155283878777793750027296084037426254467358118255508139492462900466242398568559253638184261461233032320736035289904858967993546429331073108843924391088936516727448595625542396753496614944750591147336045448879370153434719434796637560813975957979995268962891426003082727398389559677178045919331524500621261651780641840745055029734403848583437881352594591163130335664196392801779951074345515070644743048203404260390316122797195786841552559341480331751280569815111158668824200130281420685336897946196665466237756662245635906179005241785266077701651893236916276508803351348360409532445919976620432142399109106985089333410639915657070134305559854070356764674656474342482474174461182930127432295860726349755106428834642322227467794370073058652222292370301476327684736404656375895749876827948913171169697228660536990350419396122450562495683355241238401941699297557801585750161319152648448667934847103943577214389182294126564829139647529299799376904631245505409987054026347343059594987888255995224957501024649361144328178628964722763275032473295069292858956749517708442647792809466787634265742108251038508703141673510395308685169849450473791781440103784333316967214162915687235936819930349854401845831074993473094499759229203059535562425203186788063700961563067779221989381996747325087778530246785277429712226084303168271059969732920653912222228063558261911115414114882541575415709282981329972091210039604441922120042339409256261136001370489396230687701895445607865489269995572145785111503301497811082482742013507374078233264330435515418943016500031747362939003557444619587318145221940896208957321666003850846118814947573102016643118089770499393021149842931993949001598990318375601244925077029010796948217920871475070351444081874641999469634954504144322389584133121665285613813054337212568716865221312689041338981189822368416024773045762058688463543076229347001834802671767945079246710258146727796869224853817234007837929843645372979534368682403014457634877150161346380056324792875658909636609658963004878553019539583662487115503323602475889549443724942036559046374070539776674809051046037729212748987047029914345356053701014119695840601908546771498238822885498543895689369973110152020818318690459610524345982177416114296387948072603744982075340435845784237572911584606626625039514581180315101313851359549520538476940778234608145056058160887104116255372827935296701263186477022367056908129667882353951625443565028770974524995107658971907584464525946001523713219450136505963025390612734705652349201554606302838038855543066464388067295001679586117488623915579720100571977673672442647898120577269859672830425808857240590947462222840480834482272752708769159017062386632957303633171974908436312183280357103794251808685552303898907622015846827602426782917401166805017295102405970654332504293933458616013543296748229066227124912855482508882519124504152832019589439740350471416290040797957137840033156152050306206893495937040171037297219006656416695944716282196407156202105458072026952878204577866328511013963145135315132990619055711480374609994994425077224800936929529355113659082891982334691261203344758238187104774919523122305862805900315344811783954883598414664544703348192196034329330842622976799194470174816134265591560365099037093525446461384732411773249489146698401883832016749673626072108063017638016726815735293798847746998369541003174409489750828222391597581707242935594388244076587465167054262751041455323860616650397183561346292662540914510407577497883430036508952171669118430109232870190811886695270673271346667697573591923626033445365160573775993314302104172225990881329309354220286019531980792391581397964490712694392937086974394109898974281004020365137126204867560915744674066027672381114417580557234084320159729907445714743634001951814157096088515923626741634735618581435545046591062061336594660908669853253369774378945662724825426671701273882653753200011650838500299546297184169163325135818522157683716723006561601339438846823763848678640204770668132022716548614740930561880378041654455192120658309979252832029511954939814306446766117004379200116472199663196172278286179517561375235452108206752468780309629027829699918577767631748607040788460475468936528934722523873716395941612191736859614978549212665800236612503910191662944813687266517106209111534459116039425551298957922489311386462488795403525993296388199634396388205496739613580150688512955370109303760493391123941678825923225051294493817663868281634911543013398518708877443904762810643259642331735781189447474810315543910335697552520585444348262119566639179442574653450358997237543405052287457155723703538589155268710650110037375865955583541846024301305304765134334452211874717906600887487968989855756749752554504172656524523407273999767669223692997980518509385387612682999512611536074759906849782074580205351001050789668322338462269422498925465739311015014660342698640807563308291536415503291157584457090908932909082573721513019072036680799350434045501180015803837962786811141241550936258548401496591335579931156541365724502744002882635198827906376691619522118991089688735761034363302540949318595253598977700296599557190212718261713385125713669255039584306287876454906425055220011285056288173081731333972976675687445345511439686916675060380505722816261791620059062511454114055628563726723430142156066399813675965370398472400604082471488494432512597617029713895233368160799904064238911002271418252549429637718089038637757329233217151743282927080587681554075726248431064065316728995369213913534139791708721836867696142769907372309804470244837769226487393684372863584393000450622439587683682511183327766776684453998251732733286678008464152850645595707859265661621070658576296226034187537307924379805987749505505800128093741091601253677186570790950543720861925156458069535697304914484270769533551995755170678818053013187819517504192860967062682700577356930038378045726160433714793466884929031009514296903724416315821929867104076218713888557237640229179386505726436677461812945758712988423322223068543624168226677369726511906774072150041077635314284930832708565555690539729056818279759520046233495109249419797324988158606032296303680987668078775291018634916948902470144716149581987500436494553133170108720252416950446326223567167122224807832518926884755610971770841719342774742302275022645901997367213922802526575477987201427203267987105042513818442337725903526969919966224066952101494459166785933886651969026777904041412529744226449074531372451246031753440094975752556760392643185953393624246360775291407768788678346947704409415514106651723613509624191837643507152470939601078717115949461338636879970645846378986456920473332430075205158714304575093782627272888142699815325322240351049219220375229970899737612937533126879113402280352304414722463448094808346486761485904518182759779367558668890225712346842462773743178420477707693642784793118309030953678749554872358935375030273558172372177046562065047720101161832891537206063546874335259099558686126478944414984630048952888054964318267203301665662026405154905040577846046368579680114134783623785193589598675735028741602036548552893115634064281909617471765445050498054939402635693657424265423002931127842403029922762734205072218562373667487200995573868201659674410763121681335836456037548072412529056855593704371443109755933943019803864667125681665242584962380739779181113602796534447300628524333385333968536071194589000667540482887051617846666191461747192867493869839925010081442490403746403822594439975430606535312067277716171421818605117678964598494803433295431261275731092876937401194767885134281636420821048985645099453760640644350268658738929880813915266195586842181100171350453811666427327945262083949646319344688721599825045306815067798341789581481826730801225464402166125373875437356042728055503758057931443551675337535849786143188893635394535792580254795005750102131943323527001548483614811906191146411339225427972781443667283647110541196352570749504177181510224756552949697639621434442150113034321927861201199216737905131022779527912784937703718891249021551697846439394320970805332042925099675406871116053766603469347875047301866604871367328949894749984354947367182715209259288804406498869600879383239542535884835314809325569490912753284207516692877598281686226740823756472832296581163342173936437699549430889105084174488419712286644269153398869313515407635925516872369545059290601423099853219340109608731781894896052235661243039104479173233443151367586258956921926724528946227609544009207483183274465081591552064355202741414459895705139885730877568858021868008400352028149687481498074274017617391266309494972168877332409325415006409970111731062416586175031869199435806917265679628714971020033580060315993227463345982940351459310320137417857329180253320220909574034473275661421702675400788696866037462905653854702053452722460115213480312035445083205774805122945472652093236597923133699207740756667516531679209390006267921758218678316938500958226619178721699452843303463563175326425670637201538568021516442632397912875000564201530696037576314485214949357265119266945990982970630642220661274069453972032148284743245628132630314627271913520435432066998948298738724350017950053040056368490270425941813570986559295335517830829544268545953730444409462338256584725058394328294035717258335091236332426482533146664191768579554204355269699282293065505339756820500560423474415941986513150569657244761929120393104245506981995404918273794180352419639766819809450322870529398375971790858498015061834468722686029291365384391571443568193196081566177644443212656388374346079456312900257402990641688878815714427047468092222029602387821885651112274722036696849629780367877948112108525150258532630779299844107874871951177583165408354776288982797706375832270479857510243461338272565339868912170683251568463730454366413898296649947364294208678605094212782976447880170931228750752332224170720990155310213457915768988341081470895709252488323152700362431490004772563312236652343841186880970369374836396769361076823423449794342344820826235931801264534889647851656577534814486161028905899575289092253848648404948784428080380116395412147065938328902221805712594149094692115426830980648645885856717777472352513076206947386692664561031199399474883655794849636108807823789483704735872271835373810737523643893679832880912040462273675309343328510828037015525012984162243305311272761095262633570427210663926041112541106489644522514570008509199500506627306841544859328902368672354139089435625957125435188202019077058386085146725905790395406266300667059481796925843715519003574067418615869974735618414797360206620913249059391504392736749123214703044335935770549207944082259602746301288224738578769960419961803991466597200673617189541796929565380225918083370435367347304627632675103685624424244745852959421519472789434981436689006887684402176298544576967643306404392405368253117341127057891847782822127538279212830504810507509250293039125853404920966610359049473756120426563975106643821457065313849484422433886201911767501946473641261807611655285041118618824695090509343079374374111518878514355525436780537234353527519172258568913125726381735225295826731913324394730457380219942443659311804459169833762340194632045268465398903767759253110943145432700110586782199461444335493661859905179125106791494759280106046882215524904762553625046657574188576000623668057639312469663252590171230784186301696039322000902817801811038056531490595217350620257208270168253514147699274482493347042438951493561137425167082584218998809462404969234785479487330617167139547305229189096219441502381296425706184925821149836463162441298498389871223318157932654490838782378574667309788840818335880068848004048083172203831766957181772429935012136698534341216113288602485602827777602465003400386983833332308421510504941645884870723231797010979345017677137554312723544095071054900088996556515804877616308220151213112212393633457416958239540754963468432933897652957200628878576297653646469910302085445445010639562455944601386051887025072647005917973266907888919513537089971273231941783548063070602858228350043388487633835087030185268663069709215958418904490798877613664318267005238847472126957638252221852504738575297350708732593783317427481081032457500648409076705022667388165294837973415347307567749931704259173089259029236075452456845288336006169114306222187634820737544383581347534985225234305386684771986165032808256085290942664656202163053242137552154088438830312006487160501021123461065011507370342144732142957749527651019749434150664392077107243492371844753041600602753334024795695383579344810780683780468338804280878717796274259477353322790715056560763768679633453824197880294687921098567000995240127300801805173050253724846115389867422739752961553332079420161092421180853399731215793439562841858017470881549480047729433372699973610673959024671474132588187070545944694320639814990524138000148361438033493069352555227909161127922134641601292247037798463282136764206245240999112209770900812364711790734888979677430151558032506331129812641150488814661161828382504733273430782187668645697026310793623997761317907185710698628818263829831860196724929623565362075831055859355173841708205039179116056319925618080079294168583646161346092500941673127379818257899042503208519740977584533151301982186737206861309351976162376785408885231147309505922490458874470725064039107294203248132918920446159172988350253134418700321677234053940089153429501567221303765479800743566799222857680305160684384834121101546145676417289928980069557725841982374602376228833689225956334765998514997437525463577418905918544777809834122953353204072081730252106660513275951859953304653512407594928618725041541526483196743349937876675264787512988929936723108298924803166132949250565428101159781668724932619444966646617888289132803754810236812639509572331020194193800551300898913113355262642384166090547758605924639854531371843694325389211106630765338374845177354215587267402369357786300077670986191694916950938644010710706202647170590128886585123861342880916338127132302717279182173548869883341045328215381508099777937683917860870093322409816782554031662423362801500025655066612878664186932577318336902844789774775939647770905576070423274140063699402721345781982987669104833093877654648677463562486282479775159936622561763161700147228635599108383466709879906335195930471549903690891935173557436200326114646968809701449412367035577293822484156822063377345624465902385482509970915915913169967708383553279855623564387829579045318938353208624298973116331726548449910714142876802381546369068829412890356247432759255740414956314187201858763871149687350451750095025364622370734947000691553170443899740715371404970350164196627077992935624036887545368284694407554274817461833787004208911626599892378156046075207313522044847457834611956414043727865935305269359540461737735602646101457499308257284187852572793307352688912826783923101267272979777148510224229086953293577113310531295531033166387911084230105419227569774641902589678052497768146875671449895083313022067756336319608665984875438329664084009927207198216155907359208813865015593260327433369666310534669924441439486270406877536102135115765081848731124717967733675126900897719844830192282640812428348187562973034262170726041712279719589722616978985233596549085094539486246943980961501151016200443275995823517630863281812824649764647209599788930242345560275522746488483246960356195435388092552006504662850266345631525418587991000836215588043622104572878212038568844994301526315304085956020078775841561083782159993060762950961591512170350580649007192322881375531169370523654383252978515389629661354730870206774754058127261367335856796645828241643984991113017076946597537217756838678705183159347535299864717858612603230281345934826117294659392984380051416086793740414803816204320371035373025051416743787461787614280222667736930952644518802142457735163190723025417416314299835229349358809240828336493157364884634316038348226938820962944397471533493167650614982054838941419942949694249071423649228097943305266513307940075954367637392845171362448109896542379737028419299214755277283212225065560976327603519771518672707294956337300537071887921321243050442592524411477071658171582945274026686532126803241212145855876711814519985939980259714481088250872526615920025716834428822001764420516340733095633090537515854916380909419133138498482828906132554302312226719074772845807664832022312328693224900446861426167703956337510325556936508589516621495808934564870268185472504159660184650045752958809208622173986908891531481656099590070862490553888556873166329041742781169693724412955954641406046160562990919940166742205641962829295333218218406829876505344483392783022287805645557144394882768459962842773819106713019271097856766571402274673492506375461880598695968910473771510339254605215977752373421872760096947036845273636415402228646893765882523289774344281814822815904549465747636647048412725676552344413794650747411426051121019451586331466204741704868671732379662637890727120947600570440754017905397258284010469753660938080364197774851702853173537549765036220523839707765722600694020362703605059622962455295108444400038937865030813801014456181243585132730561956015433114567170461737549289944913696173337366208255194453711796924091703718498379575792077299895179860858600584227128623496220135291719967055818510765232598458451432161244726144501571444690609715771988198709436527685740076770814100453845588933634372982492862378406578668387887295461243689583663605819324526809263412156321606243270251279704374913534532308488217490853139564711560194825052407733640436113373837072224726591439700871528303262407089583636317144365552332014912288965737085869574246615413096781007120100246612427946419859789384549070362325623771969597065609067958073809833733447406824178029475128361268069314384641397837967603991578712882303804597254735702488692178085142128253042980208209029324707674537430324413966763030652688061015412594111601677924242930822851242815872655672801301713338317505333552466975476948561180261129687816650468465256404545796220265352692513233696474760619235369952999906761362710119667458699674728715951875572089851946950632941688340466595827407902293149341140612592607766637659174282959343398424599016830055542367321607640202234041461036437741214123441565255073378918656653157215462981134649217989080749308727660487399729272615731091586785411382128353878174513103552495187504395634148241086671971599766189350937794852978996391914944092797115218076018833491120042507279712521285011071320821853225296894426033463129329923483935897837955667200932228344101030152541452888989995012993077192525183218598853591282869482975752810062042407477107914942047299775476239499299595601000790557842644240308464399189303028182325899508909937393672635503482897682898211783630465701599656751500954872756216839268421537258482858170310418397373977634970618510775914534659845355908103188351943857536132367241275381258099818735873074477036143990078028482338374640777508281260513971110801616750587927992782418272555638789152649589278980641521227638221085485267263494590941781454110902488174250533615069494187127846647908361216063712778794792307406866232143104555361659762513420487525906548459813388781512405520012773295853017759893556115514421480187690948216142140217494242332696097908574185889299294295172534834060416294779757014039406185922678419213055928232491072486518223860109447706810017548924310778745020605571564080080172052125347383450771293893623258222073443559064626696320876170144381822269402446255222247368700551754201948671094052515313589667913500188188705240383536776471964749225636202914877616323993789468382377555397444786335090572486671015782253113619435437011938920465759292600504236366251764344963430655141492134375542035444528800837737017179678221468034124142312525909863576011286052794815048545185793677612744045868921201136659185230551098459926306538070014684559356656271104229982055784993699944521149879180301673699546436553355805160436335541515400983819369205656007610639949634605803829613696430440693186983081298582144776714157386392528904451726383523043403117919008658911181500380885746468010966589190866243986201978560543358630398394983842239579035002961182285763868842065588282528400403153780600065256170446643009922255322830204500409290850793640195053653844610924178531844395065640663428987850819353140633567216135048299718247727388492317101404069518195927907827937941294242180876581000574182463475374908054984566249353530872169277485980946230725053741144148461374685689333181358721862633854331563445377819004041768819252959635075721580011132716499753119642118205275489897300279555134155755973197673453364518750116710032537397172865795192771552299182258880604885234714206942666393107596887059009827731523345607962052296449346270859063182401123522488955595981979510131570408745058485762920370188188793342176406865924395927118857869986465768692539910500911049326172986636650737838419616296480892065078099528494129302039001111345362666735076255849390321213318956864740266368396233667431364252442971475398359951980811970947632413588941646826904194165891398750153144218039610704454213308480008488040220800181326345348903770642465780493140403629554237117857712770522824969866654837534574842275203014472951563914166283895040497669366791834863664597649002370406310913060015081616512677191294734016315410006242658629900121493456118135185167920328817262977657745162569290972536117612810050165986847009314209611870770403379770311096238176059282644806760350684628065750400052279041951793233659035526387511027282700384361004200752219263338807506250281510846769512067022624123160353167057551064816736377398261034228662674104704552412167880841407550505244104981357981256005983461401858608398430673123958455755357346819800128930833730644677308998018248896221500955387726946647103425947696921392368862708852563478078347718523158173716460620921226643046708709116264498270406129856579207627657741820280066817205142348239170577650292572156103441346934459677241823479719588964636250766874224037393765905623703545788382013876823607771855396769171633206166919793517513567439818525436989057727101811867356495377998545670015764095981783372751325184544301433462906760679577945464067535291011116431737198749868639883505408335413007416010314315793981101514059529430882349984945625164964703152542180476272177953172033645273832778670470220173045740557932976310733274711799707542680537024818285802332673412349166570764934074137207141833889111572130971665060705415290717673627810309421584459218583544940043112901356772158952458009986109916796129611046895019134996510778904258276221597380002343935698534892518227040025468325975967588442765433673562925100780923241052587380490047332894253548025688324937897747628458416294977408542571339652809934927584686473204179928508164046446119979151339842658585383898162919876529458599154031343163685463743395375282635924858338396219113254001686309610203919857755384930790571923425003868481035749666493243525247629587512300733039197426867920102798457400448043913777038741350717857041391139522093330097922954313809412457998263742747189334542039605734011494037514982794217429278750351465088557428565701668045401854330914323876672415504594079421425870725609273985671571913509245697296131442315999098203951162653146839363961457301871217858996471308148334060592260112410851709348671681322047372700640627647252899657775954241693420230265615551945420096253147150563439102663261287979607583733698331305902537724357353670847458409057942666714365880942735551012871535024450993752290280276676323551786599850334176314771671989346305219707187902383351945610104381095168918051386958853203042652836589055777173736264589769703359583638947705468503707437548155850781130730025693627801378003518540631319835432057428293905594020456995161333078128499002933205473110049503410653581240413405259210888597207492812542551017591695884010687232080522326126562519097770638219824963965571123738102779984379992194182395433987226638307294615389376936238089555328141498854196284362759800312153977331602958610106148186050531741782721679530950476995818098067542651088349248745838023099370952655453240548555762580175734503175437810876978726826696188217561535358224654760031586504751898741424195515570477724558589900106735493653632983558587863912984734910206838421529620125911094786441519807069129056407149789535783966821146391633013541984381203378162330039292043014179503536123128953778993104223156082879322902786357960886483647156495592901165931137850098045661500562078280324341907810816430976474715282006310137485485818690828052886142639051406182979944222156211550413235056350800044568401992428331290552172096761180844373210316597468557247465892812099086767241677803757064900674149476245199462792588648315490164504856110783082626113167724290596840683885087823513352371532162101336764735498225577048518204099576948105474786169851385952052786490865118785182981701278552778034267982482998185651382102163092124678169989402352323087317453359427803866349767509968112266957604900884872475132818241541275494025924284444407457342225634748418850863933644359875069662863438744698185344310835067479218306204185070049090048399721764396033807778618585740855525239960905671222616615995879012703071934593528776329236401344886582160149029637929048504248108136317662281948077159757769447003680956777823166549715778219528600904407454772576735104724273006257218554580229022195391579232078394688613930188872629164035485115634800975271642023437559043384109691054543888187447310586213292054527355985729365975888680220434381456639996838468238939111868035555600260198440302185757970417408711171374718804874846558022094101809937697572516174940230232809604302425947637532383554420048380374107985440456050518909198948762112592556594131621772619508025489984797898755334851348175296057290414733877587322259456559134419243014018169453530197113708881537772393569217686819595728344003090582383037242987808072233194921016152747566674020899004490662599415206708973298094458636800430697784136455297920116769655129579499278943447851773192260145333958490938490842696272058571049255187727724380333599513776283949228375013476430961862271671756915325334838001027106700189565251001545437950340033948628692482968854146310146653209716229459638385776777522608115410692846635814198468637688281994513165038001133123043049849605223160793250870597128245282493000916645972453311950765763572817986991746519072455105628604024295618781213608017025484557338516167846746670963391959101133037384274192912314651884701921155814122929903727767819362201249236216184144672486709030216172802083196366773527343776920497482052679259848060178420705852031756123913392988310929769235299076878160434030598528350966437001263097511506910614084998852606287778364981632935348010809633632167324692205646438134516303113333840420928365963856249779731821006466820485631993479626429170329931233070217706914984414225090988643063561905613198747319970225999449541478337602016838985583172544371435294018666088302188024412810607982095815338336174275926698787692891690742921624358591894470517698463756358918308795690014772334562216510596151817992843626148882127478535760510446682469009795528972349107449904609923824046668494252582979382697963164903480049418582759937919945964009154170286631250029000232924922770789616582275625671476692891370536471618705590136539995292649789904141410665548505022913483508149497991901671995972679491352859684418396497715944718392725805147437441461749062485455369509258866463381205717868343567758426898315069405864741174942803913221262455336715277509502629323471911569289524882410885193828815614175264058749153202368592249012352676321300664561254037804096043275356241293666073336090955484491226259040664754507206965952673672509748677055154217709419731281579600680315493702755880856379342872789976761046321820787128930194163899719085228228437739767617520442317145093208323351623463618174184518403645570280294847568268699720393567111329802390733048784918890890833293319914321414593896768371142320467930429298757736774613497907588396393501588485819173541936252172980541889449061813889676072971254523809848379800879773131011305777713213462371425614386132944771524682568400756354302623071109226612947640408468506737694442610503298123235606386904291810797249767694440991313012460242538130912073392911417086968284904209514705281423420217590807462127696184212857782784506400778801883954375100128032886942663331776051853066956477786838979691771861772454154769534848320562745659037393308011727314388929939101419554723767895536117926122408279359825083011625304108414050734748580913214937695650010566400022727034365648988968208178446868528306357901435195429523245595850681647339093254544191261483493421442644559391206907373410213293907868505957222378928663671867392986942561871355561425595661252602997646688330582922805016821801957687158708248044207712469430751085722989415185608773257271593309180281737990243402037447409645473772813385399156260012761545165627120075390293176719152773829692211393603191795836934949631154592483050629322004581739951636905627597816237638087456273710361508240342147380560234713657972482690251460018532975307826748770644255338353025875619881048319699178050522904730700098539149544642088191186552155343471685842209284012588979621459970160661766295734768007726528933653186127984740918681655795020384458385007853328817149995944625866262785868239284242483709553173021219407272741554931727093196622953304653873101126923193992396175822494212899929294676005664009775463068101536753333848103505815700397849030713929638671684250370186813229873881092736017339558605613813357839246603207859068635340265598463889842105460575725721910453140536183705629539483370934269054807768866522725811212723608646686643099930940191577738237966607612714653796695144260270318594489907219862655983761181999207110073765150272170185458409215607836214835221834197176442364063206488569280925209965118823441443474704522874507424437824707642246923697845345516514234138122768449629739915860641372630225966112057299942284051711085632800380883972585818861037893151419982003018202860628660356431063899288378573576202586361833844373613657138414343217574691825607025324533903980257969311943959464042004525266462021571086158087599431682406673669332265833978602906982798009436955643813058499938535773537839566470809320921398355136778757672072576508554754959595170778378086993575876603474314353451317960262099501133386954192322607472767483782446274835779824499176108549629877850796042431638806781735839639957619643428999651932213569674471853962738884375649104530351480670635163421385600441961909490568042417766349018097787912897808671643102099493117595718902880115537741574679940206780678896646410488534641852108361253008198938196071382998160914267653308461505104991539015562565010473860149339539299525833428031800568408031531666655136233682359305310620726996735845650613794513355150675520628834594875651374435104841765808499029564188110266269423575400376703665516527620021895375688703077221946972062509908389361100332895486196511408750906684656991703697832705376775208050457412978143972614106717043185582460843132242261582116340743785463737944121164782809817438959983983835562635552931479937100519976708310202697368785540735103449440614929465665884316739411545972044394373578840608656761598736919042247826102130102496473603657769607416870922082334785928333985764631419147384436252937052980932724556716175754320835689238094604396393888311140375412742750228505498955488781398854812021274869808573687112376995443816577689567550587164879979701173845944260853461452786190102481693310712646953326622668887658382824810712560892079518169468838363915941965468226609028155817803389665699731188863008900153850988529844106714052076617396353913168867286225493534205323847678016052566162225721993265641181282280891865530681265255469290850403054104175343167661153720674640152873890689762469528476338621990303797133309252084427808515919248728285755025065535318840477207880923416360665829997195736345344879249820649444299569482411361917122124189765955256574746842864346961268345923331367589496598810527300361800456044935745737541809300050560467277465553052275646321657224281947394646503773300217565320534761526141555775153196193792090578273959691750251957643221935069663262525385166948225537681156053017535610973446222333787191990575694211986370767588326618087442837619015190630337802188061492375922298781106804751020012604562127542015254981439069853566201751553787661878481679414974575216836910030852162601825339235431426675667343331380943495277545177243308279063664231537674135329075983108886684763380762833256142460985763632728394970102344583238366153747181872642600281357948059345638189297451910147399034498251053643544377760794962786899328828025514934748615421390211212531523864757026908618013439704795711563110617648739897776253920540313684528881714446002356840609708020965621290841113486166563700689100390650047898736211395793324637085057074275174347869182225543820712634909592890744387526140286734825896223377594003924523680312509930764228611072726567245341162227236719540872012073930777929984082432397739967205610812254807289330803981371552357250036728056168221960533360589117466558192651458243718172870489202312720304756489324164574121296729551755676782584883703111839927467269656112603293098223302692675894056710521665403087381198019931738481422995997193918583973676997843371844997278284763922871613223251140322756353992947675362080104527732140030593429895402505511699346792543438371996884489828752265930644827098012197225365000739479401182203694228447764079438909083457461543214832321626228302293293120788665802389912471598686049821752276042240480423909076845893019989931246765198514223736842044641098425777218720289023899390038843447145451773343884357320881375493477642247090445781962997144929069329586343426934501105826124294428870994394139204639129374373613580169331332029545171169561132158031085466259490472667482448453297905172056148258835890654939655575001598599211361943722115190960502748555194574241356168080269045447604227573082374525655336046418050742011477863540564922252583075800834481609441270356591026054066190159985376180440766217194888701459982075210282912266464991201896933034956082167060862033718561130346792742046795431669564536338619230701869593056726520325980719177043572610019388878009753091004116040661167081321961911978979107080688671735697905870172491138686389480257289717006384095224354204421490424859864472170605071298602208423748290639529438953280335110801612767207968703783300769173635549221565535921941628551125459553463682664909826744524717805274328342472587450200121386014377191296681137657111817621867978459884400273506197523862093437451916195957635196103404966086167922875732147082691202662218586235272544137524128952015580596545941332643492675965481863128537042769284873515170423551314217532309083563464663765809105224461626666229646836137948593647756910300777134312734919343194472561592016991344109752670505885661599082468808839735880411343578359760054400605710365058855538251909144358936177588405882923598478745667651424331586954253395902972553968796073227523546221234417598919686558425788750819091643038321753956693720659563323796906811398844991251538075581494194846686128453708027778374750849433330358314668989521212801689395264254404581604534366790536861690491538878559691159766779492756144005751400968283645591757534672823277650339673348079946712215640340387182648547227185914262958016026833043030451870708384893174202146413239851758432544027630570723245584594614399108254632263492540896244810779037526632580098836262048673728048810205963884310005063862972255293302355555898568008223036627745676153046465378656012927356169656529730245836322327480375937965123501569260919111122870869202519832456521127114939663745549987702063816232266604614243619460651935326417261466281462099569937425855388726792825700699636070054356479780164795089246916355939801355508400888350016319257680836154147714184612373919602488189664486269682938090954526154148274278776426770429194337302495258583902172125961863782467657605502111911358961218115644384973900292628254250799446840331571072490403223498945173138777909731309208120366502107397477574613868178878951967967973045998419399229722665784211580727493697949812594419996271695665045113640366890495206658853868120024886432953015362783156187159715253961016837615229372611270702769704889604332002423232638389479829260832176759569296428842324733771133646084020490604981028142975569486720967499321829182842541708079992741383136865722579713020690840384449486638071286196690217041919313994861705969179794423022978628318934293658633290742351883006738698386905491017384111116489868467440230938332357801436474624337264717565197766078975173002905322720894457222096799855959174113876011828211791334098408877839195156950561916037971393056223246865695141905595552041594195118667324784580616035690299156013248762920410459799573291090549861230533340316741672625354523683223129697398210001168447557083843868344659100677178506636097546742292757969037132821964987787891899142757105462195533161676513690132407808330750484396614409883186800120513366129172192762333110108747905592545217325610694877095091684977742398986447445782188947237291595775295033357372746947931747539427440733929987895805412354551111765632604964950034750628641987505170765805944951255401820967704671605771667169998543650427125021952690071493310659166345245826058794282871470246304912980162215721913660614315449101701912302527239977130591733481517002341451089790845480698573768853359024672133845245993871222822759644022081998887734497787580096848072259599943071051569910367866763656506925979444643294779172107743497342637791103466922612211742469482497198767489657536774195595983488267366785496928182354337586571096374621016227495144025197152189081660083193584879639255985729920431022853566336584355670073559266619559654556030344311383980557753462076041253732017256307514915840806195679674452680930274478571361299400464703551089958726082553704591448748523385821226786233233362326307346605163476564662957892520576856447756299385823027182274386566918806511255621595308139575927392265949968067859631255356493610299673913319559385759647785335378055568345743238084352361339019667954393507850923308329877757402901544565137259895384609545226585087977349564135308481592446747800346181729129811375802845199178586948111540586025265545798258144659643494462245566989625187726092160881932276437398188876554832290678927988778080786537841538109709399598914792945171671664843856382456192054755962244103255369312987976999473785941599604540678540430117441766193799574545258961286396992056107223948067444648732774227160885311317793878298128872145815510443825378237982744038500692601989439452037079227792821530563901972495455827250429943616991411732049725878062747011716186892526821396576195287322894072294565319804849309909821009848508061707082707237947443125268264982759971821641114471034202862000230467658609214506146333910104503856541444656761097060536922807395000626229523989855040715039999681637099851765611666698404882493791890900821855336448774710523720342783165517576506725475180624103487730446349434219291852929236067778383077476669125697272857348715361726552424504396698547250989771074167714037069701936327375721943003330364294272310847147993108866059606300529559518845004810493460280032819077405240554530654667895086163995398801643128034996891383059051927285504775652404225033774348449677564265826941375085093661133166008918312564352372816252784801745280861365444924678351198154390665923723580138698242110639221467684264166797325190104689635866242185960658450638645766178770998199052411608666083180718754628677625686989523175031235085977324189848646673783139042187551075079192442206818110794594736337541848102657149523843965935598183539802642719644110231469062689677411552737233685914734473627141446880813358064372581820624719635376448180965784533902712542778569719279279995282998716000519857977237104885367110375808295055980450047680564644363323368245310394294549967593018314309022916824634481968272535174933856929010000550459859830622619072929619198480680396480171528922837890537556724470336417661016700124332510843465392404712841602114019404472797929081908433498414621685526350946730184942103830586392115175308771917483416766898633751969381441366530291038432475324311593652847426439370680875004656347575769419808759642867633525209291079162630732349333899459372324739445459753849337129755525945909058286953040176313640757389584839384042051692559219333620280102002471376169210003789993123525466410904198965159374071662628063521520024918851138049393320269359541204411945700789240955687498056102305960323287084238735680076420573355309368743526850710185065717769707379851848406247717514715962535302121734265718245897226126209251570132356021751320757398681507250918568386441949373373983998317396842610843250321299365207197755545407735601646963501672045233499793752865124029525899048186920798603418089389527883709921233713406873745108563927000601459780748274420453011452399631581382142816376732336568854532565827793652088852518824658199695519608927318145838036544335128818294391507342713774596805978935416346231010431627436330483929210209851931938086966389712528800456549926068384807834386133395560910146964535110493094029547806230713770646397769054031927416902114097048192269704396003801918066504858845106995557595427877244220508290460990985184437476133705210966436087143623200359060040746800650131110510455093869566666882473438559890812979773450267417778238109479237194430721566849188796241960890823328215137337277649329960114297645346508751162251653639662074456140532459734665667489501679029097477806946768071065702153933466134682533842564071613920358531508442220035645008942112327917941837791970763963772253375868108109760187298731349696121256656350132542352970331930501535804845109868588986469945783168353608163278524321282650488515242892358291158061990444738009987946010858853254937484999478070528190378909855557625783342753072976685550249158663380811148201109300884083706050661633440284666041965705607016922267944560667584878481543734905824249965389504518372911892064675473716422705886475328780803598843818920349890585019383953752728774162691508329824251966460864979919273664642509477863725491598927592875409341052356536409621700041753216380413782011019671773647217564140121637760339454005387466367701159081612485078507656625323172301849765278636187716387662207927469261293434722205198506097856846093818377139133282999404874139917536853349598666479889335443197894077168836657281114172767965841995152164078566494204879190040561174572521082316389249819358394703946171883587813328518580973214856837535977747837169508376039505344268708363679283066508911074030789048953359652152034744410895564021473332383679248371037643156241465111660709478628548684150939706756172087583790267557552856386393282480637939801594408272446898412803510021736826295035604633184440801085504073686307718490654574710483019392369936770212759194027756321164635804684218521317662039066894942085231144777172893688622316399839606308237108335264316852721865401964793801139430547756072595730685039042119237481863430377038733577669384128234487152557013078733652995939457504301733232332255111060860310771493397846108588514576822635960888272678717613570118596396073285778008265535397750793005808239128410452492325004573089600458839548533573042634588958564551262005415750625149890080076670211861483763576699587638968129638541700209005971868674684096966703733379241315043900191251976789855696007175522251574515353642986355198093950522691217030186250395472226238468612405084921185862709067138268274081404924809329843477954317060160440443599045169590661842590918683774372994727654809124735883776744925340460157592762976129300543677370742460383365377897813944875823150753911187632567206919888098513892329022169766652836425768781533759783372142577390851139188199845779695849513462646697540390529276556475830561138598890316440961875343375294304552770945415488015002900623446746552815684993850704906066559384313452893490876348633846558928207961486469160804535179224578029322824425425817253639704263574386329501888151364379530941872388703846368571385869678820048564609735355640032953964197931319427834550613704550644775699489761451674144774718829899460733697731070594864961374383076521886446943175085599072320450785030198202011216227310819346714067990465670659735402117919052282927986395367586431676200098804017334145169946184749431625866149534749019359362528637027404806137406835569236569000443823953061001527595037050652365509742223519961582253130398474470221653032692852039936546043399653859083400214002038905263096251094569576929640460379493618799737303820869974198587240967868312542608751506159217390881906678265755574515830470581527875969176130929178711207680309998394380115829668042139150172132357935956199585560555590902905354136695746191034789235502784094423714918422893706961736743488254224179844046699979379283216459117781042377711731465250476282659891361731750532126320984463655314072016769492706157321869788650476874206246950043811236728600661586914553237037140856347212637279210662393038191905761580425511331963545903066089433093973322421656720868488378904328451688735352781452830147597833352364222246491424277643894122555846632354092853605074129153601646722711560853631258779706207667114428987204145229835832113258735631253361535856831160089084891411474428124509195451746721159970933081536576437791590410059217040148018036332903245396705292483930752192441844109555812209849319422801368589403329582137611616701446414153530898269222960115381508588412114179149747144074297844842886303323975431191938587393899953044549299184391096324027047208704914494420858053613921515935221935641607977018063422391665597943071738627599671494519821295845729961948238843513035343825587943704938602265936134728028239011835452431288066308309689199776279432398577041974537217306363070814583736324274879104342373463733777315712545848498556823384696500648066360079950770129673707094259196662889108437709871135983982723231766467083243710113409354269662489959039296150087364219784559266441748161230129414433733361774499618769488084544503175987517201513868551191547211928858368965487340446339056463106793252140256355054960918715098779006407615529741655754656899978192535100719699439528599233419999934212987376394785834990254611041143337326303046010931725161380896851090007349370702934918770870690280825501119668302085148453416951980632582427340909778489769724800356828514488643386130728866929718548234638175541038285693074746772016430190185389028248235234828103419669302869616456262658078078792209119975848125800949713685689639947182333468162021851086108041950170332562697002268209303042771326791868008065155258117297807605139827453447084284880264815427232390414565162977926441571456534155120641649505272397470528114587044072273910823919388689295409751287255681772691478566980730089023698103751615465552108449502345115606053945750179638180523530228839937828940604681695975547270233874047642263519833179276175534362118276966530228648133065787163716479690520850475181276353207260630223519530124402835523808278271111309236055790973635309892328245357695113299841990041838431459507947874120129140952215691645479455048481484410587664076584233496580579790288386712569666001815182567178901685136434951895186732410002508278876218726337231438188925088523049110004232891013730449034084289831818866840905868991828373125278245523141952548219957897590333428437282806322371355360518688670369600032565530858840492303647342566576508579537883010658140736148477596407592855960071262113237111003159489316397495211123196387596612219408123172593534999236280510440039838699900079522200041005875574927295647925617942185758577855360030994218975140936607183542625232929595330159279914225100157314531794832937975188077984300456410619098634587697701084658768086397671797834847743615232980921599885008809779261117161627042714666066332141303563888674641858379595395295945641895032045817915771768956840753397110516247011421336733738869439891586484096927596534623968472747912916198212352808950838272788805466853408472916173829013218444610754594332316745548980531220253756346198245735389588451078744508406888298519880622246125912099795343756547570482454572628091739853647054566453226047453219943771773022156072574544028182952895804714608728842678775957265595558697594078367755874015721012963392983395445310887060081156122226821285050317057064997149261700607503694970289536787471159670072448408690129328833686383682684180255212765426774921834158827763217552568340629031590270806520395275705946035852477959372044797523336188705099552765865090008582039511261277370759617887330201395937876046698603636547452745705905528589025216231321766115779532124152960177536392586518018068301944786840715624885391282752339628210209642069802362203075408642863556644670880810396149603964487278839538195520208481911719081166536336084688032332248586734519364461374885912598027720206712987667478096196995080178765994859642702621570476870580743811826938387551464841426786097828723868161404882780774792734570287613029759970461357302837529654090871359161344220182455763693343825264876593368814237715094404903242226659612080946515427460445328898137459734461120966981829030919300597959966442505467618601293440161848431085008755561328615413204073037388995185740460951874941612808317077862147857763654460762922210065276356588569620253319888534724096135932828524554261546139940626597088519379223415179276256733399083948757984502361985396371653874179472286983745723559579004802355857664002070609664112314953564130540031828433715890075531453040093410423603025446656786022229519306625654572556425201735645963043672677656507082284443046231046959310114892138338454286490980689416069771678598325255477891472719158592585369987509890109602628280594372398419469323512444362766716749760821719281578572912772760170131070662697714252543654650956406497911239788636751156944145594521697317263349923047267027546268655639559564458259705025933872915524457379057451830979745749645551154554844378688082251165576801660510894322691058633562502286343642165167105690084834297529525561418428920039294888967297115212292199740910447534514681306697215598016552650824044026908442611969681205026006101458637840807764238972691918888388952282470557580543018525876849720167621353924438982519836918422513103404461993408975527606639317961253537179983758277689548294373507896908667323735940855368471874617079709158426924400563809688618062433544072636155960236771905756230694107663569819720443783989727042031391444714924865268535935164569337213137814332425977745946321218224471660448402903902654915254037030451459351176497546607940227890214310811850373641202988864786008334745628705390194229797008092857757360982910190393879538229469008479223439459709835381917653016793133543571511436774428283688857404561886354146325801367646979510833526745057326563586256054099284349054944900097446301931953427896333456775655338716550933801747698315812948486386697013206713710196092284715199277979270888278399387546318742638008635194148647970134056989500408353466253080361899554618172337345474050252263007541015665696266062057338110970616062532192310138374804808631241068046194385924630132365060909525272778173725776602744594037087452300368576174602601420844328054861570895723509499817481998229069044978805477665742368958009587082372411354469648957759263816249132893427090221878290610068897435771376999655473722959570682872520146154990089219511821827508774157831939230322038883750396829242267477150678237312760424498619653256955678007696455556052897388802832166514810634565803549878607141901372597064401810721609624722606427903248867441158472452636149539321902558604369050300138960684226124682127333708878686477532636851498584874679150827814591005540651151322358072491968761013498784729062407866529812837858818619411778296486337936237728809412326091529382513071856310586805431709005134074725073957366989498330079933042414986929822004786084163389246456219504998062782464703388610335088988664449707657865808976865242573839421664407840777337538481613990695782553256527762754736460188350909684562329827509159375618447479159247766747854760813766823899431145366801338016180223058987202939229797702177862719369131285221380107259376992632385428937142999500586671715720725746198872190834082552316140664784460425539051769805107351847407409285523350628582359955240975536712528198209682047571676210810877220455861604215359130937016789024034652576281721961912904880896626095595499344246245973411971357141279645230059363652229397835612167692429099042273433018212696407152325239756651190536322351435939690832132468955326442727646240546584688210476326683635409950283537676530970385454426577968256110943364788419629417682023082277090012451877166724160924584979645851449750985047830249381081404221816820875628779783748417722341934095857587210152590008090448498588713146760005632178273655907953209253105619087311712816987821153320007593286472745278815209968544725473757565208077004261636922018392656027212241982768943806040338800097534443642374600567122707602373021322330282713050090991274839097695565597621707935810278670556297973264985842702298467521104764438638592093433387765446162325444880966399749244446432627127763619692751483461569120686918282748383521576401094283791650717688305820856829154626742307715698117007991755787215137848358947707343500458235701930570702984544420461674513234714911925636793026298779063176245072363774618042389799288916236965898041001680518501791045661307352871606923797707655597817735733146172433140830756969554491229905836142992860484494781896692175287966741794474554453374976697486247922153172129662440525441496288048446439634736630327588026437060216700574921820680971066407466511483224920614770857634429153728468696807948444919368537338344968432185419103384161197362692989481506964496804555707394617989860385564233024531555285979491454576199887190377306335928459212546035460205621776420244527368310593743784257328345103547544938259633292784294142195671717615882674181976724307095636050640261273654392388998412001798178910271491650018126789305346279165384681000196069870682720487731593967294514022674844284425481862189347428834847587433993462714489083681071541753564731860014827539820312267806990407606604115433603766605510717963935990338513141959644063883595078700900107848567256713960690669083942764645301602737611207888953250088718417395672737571618700130568026268249895040550261163475994215184374274540439742444992845571571875992672978786465400210096050580747448938787238484381314941745889040436842299050974871117975470475041910665060340305637686390577872082276817609060860958711307105312394203425564459644512018005160219252035140845359019143494687690950468167835109494750502388161449858472028953371369852985197271714012572217905902501738285144310476121984706376905872605317475331311652471987353248454829836220493874927941576369250331494915815419053383043854295613269994211012125620274299527134049075968466132501696558296363526126145636398378807306773542419581291205379109009097667327377346275023330735977188877959050830887117069323698349518758886348258392408858321346548154232497548146505349604433116002862274043571851532020321981324655950188193019080025133648336066184972375369676739136281888097199752542591152665323934095764055239000653841696890760158366358624597219888945896541230697243527023725875001767066288591810021341171625410522773166500419298682416933875119140114574212647169298371593873630720233088728398045652772486662028985315307775927303808312670428803624111198088052986717082120101619033761218685821245479468974969559910678946232034116183593337609106721053130901526643065336626166039899606915364498803021789784322846386966754454957740469867553558813661161945356661679730653508518774968032407244444495559058216832252147064326518544939076766395317293608962179158756501107377362691211756425383385174513614925321358676129753449320325319785133430271798829090326417098398641222366858713174650441493318058214439663522300989125093903012094100541015409434422424236019409056412481776655863778861804708875199228043307934653205037910345244891702756629640605790411494217283844435481110175486987563074800846182888857043610526806212909171383398440194098638490965945177808141460129650089825101183148094596391117936321395838850363584990405006265231444205599143185157929388469927355747839832712771594629622417494845468944781133836389902695616032871332070952500503629562745363762207541756624766540626449503435095616444235812736061013164363594899295901204250315590489420190866857866122238454308271537289027920456450114220550272078080042950087624127626812444616479221891354740520112430326615959583954896961858041791464818556918294947809647261636918416855702362564160542546451735817306405440475268639058922406411504538262926747992188672631116336344615512540080671769075897748383995232059157765823482092679937617268731754641951335124026484637422890413769077067346324871002099265372180758106221338612339805783231063534359760480879009535451140450187429141900383463049262616412848420937617114711402763419355145689367352797810798066619755214405372818785660469497670676020105171349261068423824511622493202043101564787123185428128663306823020544031558445437687944383966399738441554631837035286842117100702844120507704280266381820085330644966835526092096671856038638649903367314781143874035378820245058883174755071392424162020790913364062533006335785788009344492793220569923426371975943062590721710921896329224030291742122937610809343519076419886135380699897795196069422088936873405005561250077806592418528260434117108771231824227986184362824704252851244272295815541098343123810675269834930533396320225533051901371857907121083800312239907814698756025957312027162201312056828126849533383988550476161992125312940227168154254762826446773193505012132844308283111488740985777626284906824749915679471430778030357643423683475470918534700134235613848355906722881318520728083938647377115161504808033514406603079473311193844016337234017953283028138463354996772944568383591955674235297800310931320740840205610155714949618157607934763981797031874483223786448091199375848030749663023776594913492231233570028395560730645253602063714409339403388019420817223504500161739647316779352970650912315384868212663356917885137006937188048136158658302149597724558316722027179421966497204563012104646523360512343984460534521556408848377741835969337255760369883745207239730280366775886274403186731990811977330132473812730331408324913897841871326786273502429574449425083764992706996252205191684409733580885270260467144356915241202296449421090693017244230402245844826544159368511834510086699907915953691832043103788163963068835159860092929234926871755629059213755522206382105929796511882741773139604796476493792772970581478905592889774248876108804473042228592379117602064027847500798302893378156745856760603814636201817979878087543862683601853934664562581454127591412572528780586505209993261894408600931081955812000259111667412425786099956012341048735832109518980090269568250210582544380747078484059314964918197649552865990465820193874728641199508740056135747349534747601434735872834425476505208990884236636620030101712401068475580679723494253692916537514528489958177281514650500233812648667095316300207338545603949796540124330173394588424218862957611360611791812592315290991099415364639826850017049172263320718014285711824251238865990076233384054450554396018945030977273414350886822307374498794715303219333701486713081141568095230578933312824616716129889618814927336758974197421573796706207262692358611007926784670788801221224877493131159156281140686187953344536340723306328099571446371430962518984762026325941010097830185580654289973139072513955967877162873415907691527037975872676169640526106420552597176323563240297831122959715093872646527624486655418421574918927726032189382944576803026497385804125411370351301317349953669917305503911926318424755667068118502357989386056023906404051079308285378988221177621700609714782083758245852395262073318336046418098543198284843383143911736667235908682999404480969412246331076466923043132696785401728087397066317133637151303730170265262985974555634457000590445333850157309724542078574297592473849083582558529922996707837709049074637529566964471029747303244750465904127700825315374707311516059759841943063665226237880959213309249628427765592922674136858551946520472418081129868917931340092802282580183286182414845875137296333487399509469263344305380946306419946227886308432332808539901863875461822044278213104509243308573016467359975174101972315963477115095374533793602658595189069051967604110552438988412125591984984363020730157404964007251202092418599454981804447475336521818096135749348475542938881602776739398621313210799802552321087225878362125082596940522195446671143423284192758870384126141581080376811543538262521954115428318986101965133803428190226642629634411183226818579946281706173743067430981939679871067572258285214955546358743800279529964082940161804333174483726160301789423156163421249063469230499184427973118241939937766805055715271175520151347583970183692101799100672971781403204717817191776362007463749515821689089662050175071695005050945858447859846480317450383143963732379371355588634474245333891459454116550202969127925326099186317325619703345186904930500940417168835923741371844173567945873597304130736162329495193580892743944379158159699491746423481262968784089860632272906225742192673302855631589791862760091141456239664761605362239027467090543492016693554687533618324279986226414595668629890413730753937311175601425162517264199147101980238769249823929830846754226681681209953362472568925437766233953541716947451231972753168793695456340003384414315379888626507257745363822183932007595605460847489047209757078420781890194211879639994067717302212531419542665582462103022759870461049579534856463355987591462881839954704402852486484926082726566903841917132621666436765824017118820066569165630639341294268171585587871282388370103271266561785555887830405442779716489912202313731545246341750837288513514680381878735680409809073804270833506595350814596318800728900607042918527812338201060612965760213482140124084945236787023226413127674998538997067674396596996788172555051794726917636703836845033540012123673234570603021866713825411178454120459533855103947966900743441539017436029552982733388116159886173743977997144614834795917778015717718110169551582708683454701974293761458030420353442813103073676823692880715960025745087864487135843769663672538873163229054718559989599042485909545787088613339020310857766270484347267964065122380829691937658065211162759245674938608885352897819289735046838927924633520074613555140965843994492910995680997438303643523804024305452107409430823303997610127231247646602023837525974774420160233812437712080731197444672456506205708496108800068754637190200358096961694077531935693385696115048207579793034381237308611463060492244041931596041708251595338507844216873612602168332152357514944739652171856381607254565738381782994092559830374077435881117631698829414394622760822236713525264013011806845701872070347486396799620815156985032031878886589929427394093356318034825993919912459039725243907690892773567631309905871550028948458150785473824180151026989430779493997262073496762247691483762346544677083054948861592872223552275026722893931530438858847994822527478386540257417540903337128489176748452692488818732834627584968011442458674883466104319937705746385743709961141753431394078102931286659319849786505171694004044265808297581239230166130387128675144067062516715606711994395467276204164323940539105946748948660909904080286331727328976127333520371354028018051931924176202352286773263797848649102844146229481954221942360213142211166513751591415488408254700148945321438056903467326376593366369331577787670376940269426439183659986771226532500061804550153674287213663749380556183962040753692698986317904609678417999284899561750249995351921205407673841342508584015174517932186626023261729019891976009936799973672952561632330566529270338411969489978192490023440468744813884603728115334231635805937433311881272790543396573302525877528055747072104831922962017911389377364585682041895463617921565993267334025846115002307975997374623109537735984164847267793018118678602979010115023397378363407992836361525166106670031329001345608935348954375265349896353850333383453615114720863911724377110771495523530490993767016867827834445464088703540335650864929041508051470948813142980027049413269717553797000583004876263252309694833725817500496861586363051716076101684078455092668913764315928370209615320168270338073588522639901556113667486173510580000005927758777141612457540995256034940406791151510617060835575909151675320193945818643149900784051690084320875614316222445720893307047686488981166094776771206822092068897903109304822858478765802718371933997561982096552730257376968882116437863674121268638390840471399036598517515808192823102338979187968871101656932317707263931226248705939575042607157802743878866408541932120928371248793802065292749162054445598065610343307050777794856551541449547349250571051495035370219391927729444810471185814578488036238440982219061456826280509696699845497736656490830148531076134587668379784235601503962445060554066571216126137939276609152927466810922748944366251864808912619599362148522679225252389099803992009966455210309442044589999187396452836506567125563780991307709041062104631240473404854285261561848103186338128307608173732014840941124440198626272036064859050362225737041378963965901950153137313898862753553882659893099798596163147436879364304135042918995861677661195572283375163234251314902225374944625900374732615918361888386946107732494590399875332468038359725492912800271383940976729500898669852092404648216289488040881218056165834381783962726105789025635848259284792811126565018173034238376466876151826359079616863238643354458200548609880120169313981710403926814127473570259159600108014154226014420143501285718767129679325244750493900490206217480862678098440617523561880186043595163494993268794763810001360407721596639641985308034153955508236752894557873691873867334173666828594618827762868132577075137376739808919385998011523533054223685019532032772309656950871956807505917491209794441691115547755675397478540412168887985353856637900604149608217178253486775035790963016618231291043636923720252121380890198910379049990726016703985956649034622458049954381935027793314773525314642735955078080027162471395889840869215102594179851541803794319606468462490996732406055658618498272282094861697118852174002280866116990776299490270565089679115134380474915280044049290739974175615622013746192311937125402449097320082075255008303907427243865318309780195531318697701535253900989283568907390991277378492705951743669452139194851054019556069353504624322539899638333164840624323032603476377500144749693916443543437077700140215855856792371993552048244224890375703119423151765024814384935959885940460693919439721660826502687727803023671038242748394029249376521261856409684483607352156283757206859570142707955542004760303007627490458496060956253485327517522395663471095907716662307708326478825252724139721344993248502285821850056867843844365321727919522593758436375702343206310370452137179979932269626241078900871769735499022818112044119867922122262601719012223482042368886903250371043801382626925106120220887129790605261957019935529515196710089629398108478399184617562612823553732376430476695690697928628313330523696160908819115089438568966930968390347168033005806028842519528723902060925467113630846825088338756127210333124358654335242499187997451515638950678700044514389343085538026191735274457571290477096911369381257873021641654051421840921831514015336316837101865840248382891778857623338932987918080828190581287441142258478046865094142196049990368949308612352497911506702913515291294881992376390835269995946325126599620222010372167483712000025772511371105520120833658781746263083914262083270536110875229636474958380833939528543492484772858235095157282629841986484854673329955338432022346424060268002163413031874914559561301356051239939341710979825718743722583150852167225813044791800550269996983276564029740022199487712963109973174574569649533559177387862038610036589341975383585916129546246572627275212881748473311574004571472165612615879061292075247464614927242864368255048108036805520246850560771519308913662122317142069703938811235885399123272744148278185099944381117591669349080420721292780000353514050264982764880765907749039950020421088295979844195594201512578834252289718569704880803847134882482702468246184896390966242557119268140662544272395940892643856363965394121666616369674533564388436228108377796249943322094369816708001254224937683422005073724751754091737403968806402551647362928231074088454901841415178067045260712121675263204765268080983441013047120428341536687080361505616800397950714291532462523218263421195085684792500370651191184129781446662308800848037241494325934368376698074657282283802744833571177141176239359397976927128371018990751477474322846618280524269840647943987355442130493894126535629627909377803185675355840921104346648701575754547978632326506126162446811339173061102224784983086050134989420327232691087126437783474491877460017929017825549838568618962211649568642617712946785203798934871799762527829942520841440675757300856972426688436403202828563007809776813276325254952774683177267096603869386117710712793633060084101946696961135689264218211451196947273629236885475285223714553156043280811741132544158492424536074882847891814480768336824649509635360805201306239498718652527726638522599721293778031737704119013132797027997777662118109301171921910701348339248807590496904188088583990865977141615084861749177227778056415424947618891370833965992641685646663903362230147661721132432440871706869577154181494903923759464255436614611136636175251386063503768649032308535283666255895511645356570705704060426119236920474170507801809558039218283918957732900380885364405190517475136647416900391175945417604747425121031513784753373225491576689548137527298613452749469732463331020286892665641845841328759086173420748318233713040525182665571552544404358739300143485039213757793834491457317061646275840978365481049520113788946225026397872896591021961849263439747602727193938127236659195630866267508937548210099648037356325126997352572735396099964096084661965885150317673547449173530826383029438707167384353687672885688111540088742075592067461753599281007016202378736981012711261932372058230966229056419343375455932118001449505206698547986889717725093680446250451393029275252922201797760041443282763159280840593879045785785719261359020395513465100517272386426078139339381888620785637966526861292547601935985809221591168462522996499889192147434226251527631645010249390357134057043811760959302592219632490567504958947140504764263971070449928469778597807603256542283486761264495570746465540389634898904554480468063400070601162071442428264957615141111328918978337075280712625033957905493375104369791814958873231865853890031090105319364408755717351945731872731637367812504993289637483765757721621472653452317706182031744850337278303659098702535507684588803866810926242114512679397098866521973766551303444972000764384545950648519296688920144011387321891601387725322829201704911688968941505594903379972893185446958118912997188502528240736604423758537122454291277176020540510856057376305237291348844431011800777669104133742680257302797117013033289588392368212892348500673979561661226143503129603660892424928812657599693894224263885488894315811677988828745571920920025767219761803392388431065556998854847913193500483823844179074171988732198260907042437294044158851780608626972973333977677786109575945962665521399997064874075413486686336620549164103640948524858830611505151306659582773870251179427164628338976258300612052675151504639759455984015755572974900817746858807085628564513448619042079643520026162999917537276992395654604504086003467019483914915554903443066656294202361459051592890809984151246696756558092646926093853888705308234313526855127386401337839335423548542021046661456928657422969599140456495721697398909167845443100565058075514655376378913891299185032907404632044200143244407148416004011807618323484504791127361867066474027251796810137359397062849838688423147350721091591355713250548196799213052531754279449169681621814047607871534766079904646171239179222550267550043911920688055700413242886142054866583011277408274066114845008977833988747154687340836000371311915620157812553136291093379146771877386212155823671779808473928407873989065445174574256125694673222736748193955579947013600571215712584023760099789791067499902996909705634478111205413235889412912406520378729549568368264227155045377249818106361413444609144164984154615493315753854072917458891250786289892216176116071626605997251675202684046669553731137925789585479789193072300191761215910915133150855188407026760199916305277140450612432164760948325172557362405416921540999910883500019405084090657952282829326841161692697230158151965085464367040811247914109681891335122002801737113839321502359529599178766878398573417694683165548862460611276181646690147278384355954001124769238347822241567805792547052690474542529104972316206380681036425036201939908426226808356627881674375076164357304007294459447008519186944348935572118007108105608672426503829758939087024328506202788387656358012334115873062967275915000746254872573397203272288664801886736826669135189997136080036710458076413028952279730862442913201580050682974723421778903766145808722775571777769198462763160386132786634555146484607868612803648001693496872106542608139382050711047317751316652922528790882814894769523407293289128929735559611182820918817925593838572867598733911867386841154444290210242871396655293904700103374944741944608250727792996643883769614240695600934496407477333638064492469672867556406882590477837979938632122547588693073558625925384976675667642909670104509156744328859387033637972200694603624116519488194074830867506029560609449717863997640846043244305553372018219190467035778513789364403076300627877034543921989820491451829090016384392730359204675225955441670935091671038362618431052653907705366260766823480836302698597876139341340714907705713406246815136170836905829808944095261708764843154191318586659287462658443534311870350599003006442894628013304592660998393852971887549161721962059537377179698594884019318062096411265403110572540888624721096294039781412687221142888222524611912068697743613080465766022562122971653774820669723394194838638092999497985757371434246727319476064127092037723835427650860427133447915114757857737338639852443007572973206348636741402374928878787249522397232579185656949237669603213627143554110006457316457797032710240356481056964107323682351157479735922902906662832335635260495235828038832470140764700339806793580067157369807341087951499045565956305232619003251704915722326569871046798675920408665103941183719720894700036684725132403962390634773229657825836949515719321945260497678452297926334908307144513178474287273637224305232884175914913465742244864598124775200507295090793498947055675995369735074644552668843796302079810629425058560351795662807534863580633414178094726147980992913155603148917629780228378890839044938349843578139030602197550809030831068004402337073667673223306215730422516118871245439368939741665310535205445312910735415953308935610762591841925743677951947436088578318077849634817165667581819082778956472947507236297546908424018208156180958430722165290730086148523293197453493337956044494249829182471142823921622612367013575504850806741671542423675035296517873712810454227057434869099301131746898424097653147151799933563977178751878409500997875495418138705277082000296064120997846521245549400979334227200789028427568812455979907725914834841278476367337274734143605408795659966663675383513416679902985878498360803377872108415000652000840720218750935671255532846942845820111106369093100471762641502645789895920265152516841031505182296971447007996973588778276335837656393426610998883601721561689620266898784492220674031066197143755754311191190555983161993733076194814765345125879167688716671269107956520098594888487115445233974092282081051134272230191643848303815030897813032780334981943636896934945809008342241704076632781636598383082577582304913162598311989789041686594878805379249274174498854768131017295229078871322357834679384204031501592581512957554894883455568837202243101788411965929411781688860099314292200274045032933689834147851127745425536964014776164727096787639240483833175003626509670181768788815714699699288510184198729680462012704606546149972342450755030024669806986215622335492931480137890027901228224046913835114124462885340727772495384496699677006055228231735348895690435797256070451492948360749857655627857501305640423547714711478334305628072550318814969258195213374652767718520398851599159768409788840285797877661332902360151482085737989548946325610048907264623397282339444051896089548435388216905579712127370115684951309778287112832568428985747711828633951502813006751129739902023633012859515700882702405297786359120877521766078511039828433935212234761083691883277153865511924478018257234005423759162980272623214722409617513959589807406111863207909634625364113747051505328195880549176623988643396322343140619317436735211436349717319585309989494582044014239834632662105419680025829735304109798113305801284131008264733577237775160398549884307116297399560835817277090772307920619337175057002314666024258365936270944955092064862801206082379088779973248540768057377627424483960622321527840711778352477539530621445934847161589974822495345178495922702163357328988502116266997125375437176180662703479209503571732962834043314157462948366627794153963721686387876920506264844594439678271301372365049488153982606985231269980356547904830771311433138459992133382311130953118656716337311328978372929919639371402162284319970448023075903803379344334971060362270950997269915798461240267907557921001392019635466509077439879650610970138676785033730812257214934063485539560834270876354468732483574628661901396112613522025799585062790165398372164147834014833329326013799926295965615109943701387517392874920173629253392683490565383206580915088338497406253079889281597854784763138694631489797893612607747301589393941446343019785916592919830430549713926907424078973790889713030189772878875379980622569263037565703522489843590315515447898399148139270312026775795003609240984244489874434839411705038249783366349172826092255490280859180851493265312677380084721595268893775614226393365571327452406204662041162352180048533523756154736146510792282101752126007906320979170069698202274728329579849353029891670213345658492034835222871967470157018147607827565444947933128316876445431290904760696137978451216798259780039602134111014329351567788916861206934246950332574014324196524892612702581751897246192670999897361239908005559943334968754112617833789703113926862127733533081020436372046930630511483831497613225865629006159413195472148757909943081125265151369454903913353004476650487374422831355628422725635391276404463127672137953099953160833730416084036066965734601554082288560858995762061518315183109233782407754504327582826716784184034742392134445895575208886527707474241063296244208785074982075349635044878880552580604941945283168418508613278410386059268113512946224071209169123622643900882989845197556952307443638458278979412799235158727887272858007807638249491201647939575476473603617320887894751805651172234426997414153190728637695187242567621196952165659418801121154622227230112565941208807329136377688214810301146997207774331674527694316139206403751368437642092718291111229981939697353395327640179593573538780424766403553028081374232170950111171366111132862638987711831786903459884864098718980043710916542747888997441892089699117163028691941270627046950674358219366070641288684265443724927337073275929470803217845157278254538521500439286593285537140275869375876608080645883902964515826527595715562076488877327687973468313893268491231113903295609933056446859786970771545580458313905782049325571532402107488343099733159451129405095934843822908010504409189398903801439345910674743947959069946307699108937209742004277634675292395464391248845423063227385105697708386697806730480862014331796076256948574372084348726637955503160100073881810442809608914657331531326583837282615867083659620010352528004178741246509449308308972370046859763832220943463501636862765931976366382460524153304066391861168045310199037840980108947632855927671651411667487374508087752523906233236818239333259458075801772393593549689087784847360067136584270676208233273440529187418255056504293950848526011694695890805317720498822472669373490303854443408470256255550328737077869536169874090635661302769706161490649838127759849839487426835820433600504717242656511597485509416263924781940484513459232081724764406381292026564737018389044963134068820919982880531429984338321481396466664765337779841624912173330443640007510710200815828812407331318588360238530983731373357980167092094150827226543446630682768014892201511229927889340583766046401457350645301246178041038939691952571675882364310810798192485235648653288017187318296495957318186174119830948272124420001695886327726056379218988549660778074543543749499508858012701289197156531471772840150537404331481755767772244652389801096555090924844054994502104126133547971144235621931540104130009029610574035695740289156149822775867280181929062689586547041853044012906616333310304178707722561580940658334155243238639762575013898188251562092805414232144642543830287116929863119637051197380296301322291684235633864446021267451776618032218819004040322142270164296141789747911477600415851640142114836671691071503302152623976610244879497085743526221229986895810986658361999434655963798274199610807687623715318066734249810387921072405277168090798204541246118816264293672366432847521830320868067102071653172425396191597843078896414221429885543625980459650418397173738569566985132995911300391652120069849992117376527031731399173584841463531647069985021684556928937425446388546659304297099113452595565670359007632297459649908427521637364060176029019889699474038530139755319432719286367524670494798979398884999227434997866666712913472632039047173352450164036059062189081697846571858378385991263511242227503111964455932217538284520775508862993171426583529917395057654704880712498142531624923395642468311465031487155975916099691644093037273780996411704424501303592351070741877905193872600271285106632785216410854259211758024247597916302894892234284196556732933547679364526609431468927933116356305053501534467429516995364546031348883368301724134715186910563276831056100132076903913119142797646457350649898353656943992318234582390355129366262640679178103710178269356834769037282545714226927278086616824494467506957745388136967369973399985159039488962744744288436230607896239515256060655646937961578915215854188898107909247959698979572543586848826150563123152533117290109492887934820205663066973894926023849722903096337532793081034520350559573350286890738379945760265303782141313463084486957276157927097894650499601914283579184329770262449253674719555558340084650813897464830799523240571711428184323850168536656043423040949490463738906660346070732590883064375179110980944478171562614460086944655400588072085507570038125932614730470215138186944982316277289419083451691503194733756668136846512024023059048817612671545301802220804199444963229722944323896446380857791375892056849047611958930439550304704271979631470939318309111305753703782505800934308999074876619332953284812800235175054290257248820674527562209361180037801055831806177808497010791524827761929023544115839158050250312576920729102165441120346443008319676231328323798165394248530207350584220404198137363728250819253943883223848268969721994993162490537358008265477594949116905822518187113010339982378124313034601478380697250978744370933689204274681299463834900751647311491622313259924542479714617562812597539971810536052991858189350128791633619954200779326225312272539493439586058625702668595466745757319307375602364681879423228725219859635207202193760331773460327094882562067351340565930415040448203185860239831270405241686121951164755525095898115181630253719274311178797711537870423445142898542271656280617321422600011513268816069718861140046838048629484252560588305144992976301959165073197989536108282759900969561611020405169972665314469616633260252915210050628989814960250441013923235339924282962944886882607872449348319466627461695199098871988056737658892223197117926547223103900019083096854121153231106800779429208567816673182659040207757607296668978633927517200133454461871305678845803693019506154957901868412103702892814002377989705246743780755245247381756828120618484622688293920407434619490430548105721534886237688038491344419342257571783303959500532702219492684913427296662119442506909982853662817521609778771377153431754470110250262460787720034408720791242874035691885680273672134890929125636738006413542661480486271456125954772376759425451936875037718836484194154175245832524904839398005277557155641728819749096532636059964302942931473647625911404954119372090757726206401429454872891391784342151495798777286079958072746570043381469629111396954753025957541526837030235507620422464340814621887187736611341237234911232818481735754281978741292796693985856279025395667181109356841893965076294560601279141681532092965702382092517749785071612222995934905281800641284749393510459784024933477839409031878029788079205517770610785366963990693878818552506778793315455078867595920806268329276052892666392818222816180995631495579240073128501817658879848808139904074690990845986090177208987523806349830172544081204156783292950396735833727070533242437681572522541041498759772415017199049456061779315654858501106899422691574614830493592560489954650999537925513301474006640911331029409875951424745364497271982049357351114502388877771691760648787443693950680744113588224719826504861391830971184500079181577737697855131556358418547583141763656933432304682026514473899991611048725460843115877499543330764121573636612246432287810818140873892773087776368618724772647336525465154774515695052785481970063484922626906388169627705343272501270558839791912368631993904278918536501031776284548834445519257237040491975542548387677303373904312120777767620388028198146289507527580873050902874589785389677723665607939376697286653977908519377998358779775512230019911231511253358994782250883690582957382750721357704961480029428973583261338453009218603265948626680103284349279177034285201087818250871721075463839841254758781400095071185230660343477824060273786055279889858211351624033674582226481020904859821148005781400706213313098938359305537536832801270266040559819468282199406152791479959264362343312274105581019112835801761251335494139219954880139848616278916220633996379422904524705859163058656484996148996046425938688361276157010633435354651748015372761572694384299112884009261572061917811744246252213785807872404451534943708348509348813997078133090743008970179382948163379348463729527318457417463799336702303808526716174825815709893227863550338389351941429305931069246221980810804424748926096559586257894610357615037166855192932007769430600863273186589791052237001398824280793672128856291148209352553636639215574446716438555275993642298734148124651735837411474725894632398030196755449147071514814708589102786554894223339664211885654542743665186274287310512108418697285999401769839672713928825720038966484904157417546538875705608646076804902802084733089261647554129391214909135316233852062186092151298975617826388748424836030133964203505528609890121905001613514076362979124452426294520793772923554248881310497288309713999999931766884200064577486731392061579497527877654309792793607237454354663897381420763714048843046306341504247212445820424317958704979019385833343062541960415251017284422340822868001146761556295737882815649522808400829895326674827321866813123318674609151965720959082130371857420603832457587662348543746380300682961968703684289446057550930586884306935014576006596661310917639099624880055931714929129724566299936061896421778499584146307831318192610130861222805618374113022759169064055096825389885082757671525193334198603524428095624595522584923734084261244156103413214725651289369055244514311991265173861387026980915800506581893162076239583320304765362315512835919470774455088116979662376189021210437270177233511259345918335301833049736015225284029467983998910571064050861372446096235423314244396478876423472043152232011855886913763238960077107973463989287512649798006353718609180693475753958782675559013491802840891242285798456303986850336550381731021987060753610414472331730027637438276165055854525609593081236522159001584003450268860816665567939507626338206830605590460839055546510198356005637780456012175906886972677855344450422673815369970496731407573378057709901298901096276012909939083679566723200679499271665513041594863590971450726724666778287357818929968964089927899326333024233058276221649447269024846705468654429347236627874946008189371343049939727973921628672809324044655292297212094769298891292353194386081774253302275943604810514999439558958270578336519137740709575589497409586444900844070810787940431067626349391897804916925538323362859216327580705956064826321160144739012175948969053746540569390226500436879519116348648680565389962810042169291933447989666987783013354969416900788752271652915340350180741017512621926471906977569946001363448299326699926253452204206373606985013215870451520428745765822704929555963489364799125661766168774829883409466515986424916633433695996613213311606338966877300974916882165294200744261477638750899829458577495514960474376428891333377366953859629356368762989429751834277261879542137224677517801916112409770184732062686613642866623674407379082744049681212969158371827884205766342033153300797617842995677420233369182325215201819233842493790785600510163722924324500753078046261397641849118369399567255155490532819986141088266607090642841082843560806983317572314543299609586329679988885794948627330011557496910628627026164089290050615677932972259680934749495325305563000878347564304244373622869176133727243625126519230462860441777820367934639103259841472435006771423672491091001273422627406610329386421054363267259658974280154744375153171455612306880233635061284609595257910594970299064069665721658082818720070349056825399888774254021630491530367863932444678006462283117773580266135090257151249759572209515205591103281849496633077298729782119581162573914609322771818100938522065734020493817737987170713502088808297228178411193317889713616082509994531587904286982057777111450677686177508141444866848866826166263145714135121096675079135028526123829467027566732041886363162535134401739647232672497783359657962056404791654756621333884373767377522823108239340021372502143204287760532856426090812218197317089856403026623800175422080151043110370843025687970698464990192849636236658051700821466415323893464754731591621829461769003378412079938025553475971606230832576728662703894237714574292862855689148094325228639201157397728892295426373755004064025842056090178837972474363018149110896646364062267645567270959574909984131243782325348151473933156826886198440179090565003552809569241147429839827490336890404437437767424471211470696145071566111177807194263472169896270343319272069558776491244085462573494828252085777456889846100254230497755463391691880902292115877949849278110283964557735294517231078312516015976411358989930166513987324306822934202703848694090027415976481244729697248790157430251481504634587604603162342670405357212676614766036808025915262294210762917198135351067592189915882651124317178695082367090433745916061886972244620825611107483014718638568505140435508115880321516937956702387606155725904737113194046840744856998877865419343425576874116226522876233000774583392118443545864445169086701911356421802652615414742382628981610355123782912290450108730275803170981753465860534697823788090353872785221491652730585471936975114740202042018640688676490119508581391648925384888006065832995563353697399580122681527982544927559163949231555201484074970252998877304530358868622381098869944113171327760395029161667008555943321917558650151731333287531194606556754832410442044367225090587511588473243738334623996738386193106419569531952466916232735675713577832388368084187101083635897220117975820077322139164567119345579554804733076156761431511205787082951330297040214364029441615781518328502762542701029340794359638469875683590626314758396410612441696634490041770893246252305300179025573416466995778912417045161294802794270116406475672578694773504871398709252916346352975198715759376204076457291182259649053690292414900631924837693308022390897649864631367874594531138258293073722342780733527831230532088549352749971441406728335744395260737051109442705818535492513515360632048522459164756513355957181665054368693487694973585282024296210976901493453289396507796527174155744986547513121871238194428216878142299663157807397169990477326730852931167662553136887262667222197415982200386197468542992330343312050885864611682909277676153500531316288206065989060647326761040268846470839716869094932043425472462159040531103683521479232189672055833702964113742437859832440687833979777860301593311896399576471545275515977083419731694869062496160694189810044035351287133336429918692013299972917617930183240225284418759995217059362231298260100943474369918131237790992986990920839679799243148089900801841166635979222968103521591067304449427334491666476756128606121997262502557791212670443392650682868764606646886101478862138400899815302619742014495677604112802459007092843057786504908934509012203184962945436430697257034889426226342514472738475227653177558897598508732830449210963301688377130447256571908298337384789684607818756029919027983940535514164239425762007756963216432022798428312156709410360084706315528986673230321105336194103952659829949124678813836748157440416023998336661406305572639530447288908096359258617722415511533957448983431224850205018897909778243842778222939851267463603963796719080028242779299203526073751013166503562549879760364438567343198499509172163944317987054624909979758522719944478709005396647892577591944123883804785439173243955028279743751574604820428609390010614972376520814713390893549435977549700124663973407335051069220906269317214910111529271629589625613947763241309322415047900031400368687449467666823201959443311235823631387470647656610410017593472927259473108405862015609766064427526787327993211010653241652294555622231836799417284491105403033030074722641777930656480272425020857800766642415936960164546503320505627917708009137956775598540698689203950934363407719328828713692652831145067229054101622419504497272582437832586436081341401629841001223514541339898415529800169951255028546809048426552773488225377427524709379884745063199832659069557741455381628825568668484405604733681076025677010349082042494954373644832937583234278609975718355508156208614166842219826471239165086145871799291328213394037912521319015758296994076488186405076803555343443320566202280398762051955868984337030091976604516362598957623531565643993184392660692546986536789146352892296761071861411018746748386628897795260362431204487783798210710152268189888762029139318781169437173922973813066589369745946028904355207911685798706383495757095351821197885107826819461422932181825372547530147135735393552258379260314774503604132387604474192119228241507439156918257269057954579847890335364298309223429760176045056268391414702456192699953084614903001606155970598076558198578644953267316328808663206387188694633565256039643172951941283159585784562063677188141514975172531900778496188294267363112162782871309597098452764409178224727813913494151289910009495129949084530131667394517749229171332040109396589727956605249435485967831167037707210123754005764426244639270374491838715349118058890752145963547567025622303001467999439131258443194862717029338775200782717097705209358118795758379846517263297864465608107186503320198016632351073219309366886063005281802805502959487118684245120491624253665864882794462666735136696791002633124220275113975457649876053671285389575832687703252881582783511818959364777459961912374549774928640181330271487594956888942294895605276344744747287900301279709270005776941204818865640131165890403303183917951590464822381410156094060757044898272850756688358554797056265364550972002203781551869182936893018321874878835069591495219270372871775053743501391835976401758337169639824941399526854272918974252971772234119464977443161492141482094639843931474838866456671406905387920276277912155172208165654776343837894578843549649813023340122817793302461148762831961030686801626893904407268091437115101355218769983959522421325208542728820491364491628602466369501630381028274856854707648905491036496971148959261198227433915738385866911003070247401279508233223859334312933531450831343023221486976465946766401869265639033191556588787224898331306135742001941662512163632793595072814007333787892812746287158197896291575663686835863742271543879933416557487045762895864591352619963369663601588797689749525481307676906138885969938936032081007545923092627449093770979435222531963572062443924870117213533111377348862765590457764842053310129147706292308006015106703120347860073107019792637500262712909455036149392068135281685658740129567111129235213577697096508592270654361324924410216158164053310143850792429255932127278060469674153755315366622218612873661288038212501009284211462754495322897424876803244156152797583069565947626893450244225069535509882319482538202606378606118144776381495382926677751676296398915886730148170733287207589713370201856662042473072121833615735397651239724782318664442444399203508555625311693989973138260285174915984742298964309271002828373163788063096098609274788103192545658836877415910575783302038890122894985792109307086528439666747829536307562805927610395976693060349868070130647080131302978680002748473692467990337893442334389382913754839424626882845786276811142552710196921105975126217804076155251540399942435014551626673186591125624737584296693204313732135603422763009704686804028948009042535762227015245499173850065287628208284494723289774622140656848629772913454806631603446982594735777563051615561494878213284703224294892879486694433963294461797668284582910118100703473517948780117922398814914439787513474162487573909561315372041370045521680398688371408160233579944415606941088787263821302033897100379995101633597076661339437864549992024897512324985110535553255369726037680684043103036984762410327514468059848274983351816440936440742610638343081328682183870690167024537064621582124080120505428090811682131755941399552954046337850596152681166600706707511680999310323272191705223527868652725312374456539842371480713126990802149814271090798456496239479310363250393271569021448536393953557099639261341370635528369407985569167586192676186102220691088209500317590625555879904414813439361677869852754242908426395239937156575545174896278520062256001566789526591209063831837336242385998834385382469425966429583324190752934227499512603432423367441883394306730287665435738526954145136933310502653576832284676609652036887027973977837035070371796254574244575405116321772455479808106709805517585095221988761920281307751711592751508217631172876828593643566576125681145119417040040749012841389837314253439671826681218740233341031225327906427534586070399277082316698975465507864655535864159528741126794498047508010754957127072146993528337595406068957724979157753006891296230932009576148692231089102854861005447280910146530950297650010889738050562411130027716274978796066801098585362255037503645958560788191530568240823210573476197744737554357436311827704785567820754735791745128452812892923301960362002196844075107740991067252989020522086747614198650402310249152882887949099751684370283988453688478252055889608597894861991227227244210026542524227361917056011219848187726516685098529986520847453173537559182359127105777736620550740948206485940818159369479026415242918412242157889120819192996188277560998586035663635906925246991418467852638877744147916545702337147947317026749946013421642586066759577819971871771744199003808949346355133193376144715857260307689650599119113641741228482936083501069579905900105560783154374823286873097305011189964441265208490774602217678988210846759093973430785951968308606216133868857088077816795733760410557444832882223236647780711239677327847122364450138379854979184748781788846316117024284548697273273829903951563300368928510210225840315104976373093779185912423674580238738341515017478509931652233107837615897876035415684655112432866627795286171870219866872272928361546769086865441659335306217030379104869837307696756389351529470502132754446991603185705185664107150487410396553118003286105878078064082422732142474806229313272009979101939245508219381901852739836621829319630251713345336081221442534159051281520621784055562125159883934579923691794256160702712756530580301206539186151156967181186022482797745704915346674977691987031788486829877532007999293616562276963896005688253021774998051000710962523966454562848832796752893768272528984769563768276679698958854284439258773181423240515422262463344831648788468921707395699749665046148767080379081127283953062570104641318104911838482847200039534429436918741844692724765716118951573729632120561869803440948045232293015137866122740461483810827592351174355098230761423844489246625608074487154799433292473303482742294192823990769798471130814733965742259503148618346841593539736491635838131297024511473474256432880854301162816071212170119534384016794126782415191770634483034483867483398698955388337862373588683753558102140073245252613997697403020020177359372345339339242960463767402299991717329564145135849611548587271511067997975695721191796731258880123359492145212673076850778466021025726311806780712399416585041444435191621820683270747647443547524363502177138729168249814153744799213035263205664274025845424464782972529837639803707331393373468547190762146761554758694458991940794047728611312592447035810458466573783285624791901314650252187320811859772721360124980564354562725174477207229042236885030621309084108662992448187554878737231446497749785375473868670820926514696018100209539189940905846359292710952887918272055313502312112723895891012352915002373562458986960639622358185823505557813936304067543289860464744808197132199668875772532600736907580102571093215188671428849696674498921087881582544196228503102137021961943187757971215740207681848110438894449833102759351266319740844737885031954225163865622413169704936994751489742620505886234935996823566718796517105266963608113162296072929357236866977479704391417810485991258172277786314407945994537405736932425400489073878476150489865847500364717307814444042735669481325010191171732169878487632843885792718019452620059286013256525876669630108980700658784289368025539513604850231106731422388078829329556843248724677692708542294784690548906307464393731531409447134187140952046733908710662700702959029519933445918917191477301996296452606482670808924774939554724068558113089467254536563023874786848360053898639887443486879075094045217422117552513879048851392060146588445621662311787154723024829803647851362659628550262921209610888633697547687630625628057632499360353388488298653123683896885462351607769435480933714917455126503649190635428329420840555320838537820501002871822495025917634995722171985181633680512516271899188392334197682449569363457019720923091918112811615777722803771197097486913742259253894062367274922274970081019545965762860807977372625639268404347328338478561698525670958924472527821383773871263065270777950134284475239429553838706207177605730195010400371803387313479622152583748232873914883401995117059282235393522605997693180387563146012360755036068834136635769740123051953156902502362256179321757897091079871161505638076381096633258012693620094150126377399354506240840139407689705501050563730688185790160403750403090938309182354492601335525100809947279469049737293794439938507027230634026026928309775057201500534212318168250932855163427345076295946286275537078060528812728337813355724635032482445877132854758205093746602487200624247529040891541361612420740595614017506274744278451258718609216676049157827200594962925542914253650604795360205723055529119414361170134038155234600603218615427370308077284865387763310266480502878643797087959983688320936379968845142058175415767523156684109009956852525665641610484266310794844000058494114931748533934803787082633775280629614724043504936160478743327993522694465848783020468688275415412224411156956923019553191904027616341946548657223688245297028720699650953399548699611763181950428668411319917384402354562982873918113406927901776937115188171898943762903326500958965077487508610951299016603790639360890366214374001383602634180813108525180470281517490413291999169276508312978345235921625661191139769503740955558031478034740146689132497192511573609666964283421837392682681870650793574512827412150930097891937805060130415264458592886351660583545573391268072230947899567060417392824049028951573448991489340595763151790565179752766311994905398890204828693029497871523665552717095804206063089892222359605574380488627070718405126347656626703079025784255465373050262331318449938078787032010867076084408110213993935356695590803720424179354118740056874643979615902818947654113888406508754599892003218647908969396566869652082005771465785483853052938226131314573470940551592348436618726440186541854882623784901063624312881327056843476467992097522453163033801964084564528806804524524451451502389639313024584392856695704024448445889159361131142173605695094389510266383539257074659096196886269411489085623952620159898820835320826052643811775003079380832828227647340687617438378532006252510463488508272976659458642012797309930895976053689515730977711575894064413165458534191341412556842614577404165128812037657277152471980180529027567467887172999471036876695335726626812148691975295744225926704034995325197090148245939616912541899222508178312755677189097378935555937227850809528867510766477668128135435363228256967696634615108756154868697617087119139679550721656808291651030109777538331958059427447057480457504321956441674914789521033906262191772700085870084926460465938427017303573117291813641616263408274079033973732715370746305174774375743971141536220171936743499522622498391862672974424153285980628756873793556444515370127599147976536096075987739674283356619342699233376735542394728670297204322156332971680575991703759527886232609275735848195960668202095577738070857316717292205513410868329587444975212934130257432892210696738546573758184628056534113337880426129478848010029796139788169288916523533814618896495271938608681665099586047646936624900412759594027235316847128605890838976621220373975305071578008999514574352136623061241287221625022506679677167537833049720150632713406585797546778627114451430236637420415953691267264993135810474379104917093718548639174644040608788873036277782170293591361007553633825742053002958048928920151089845829101221713062391599867520901737826199529956729169944703629581908973306797428763243156331398344183633210987805452279641707847596783881802390494872128689711912489530496542248556538480214638573144081929515666286097200354630513813923643443241286095398933705470090719585156266142476868143652271896477656285011450313377082332074493570346768816470332358823489381772399018102361984022329814142446530567368156678388730423788662801305983487556482363500166329005439063101440339575944504596888170535098642486921570725691236347587387446217584987679407836143640874995044060309459781894739647139207335696116865097046774820243383595092243402965486446692466140014378233850353740043339155114623647520725286637588860485731709762014240859207650110013387189424969440584738415354884945768417976862833705208811062805028677416915040191964356511653736515939219857212048445757565940637225233866392779854464886976838721990291572332487246222308582022275636304120838545454194176695946201406161729594341118420984435271498483958761560282069084677173294691555272423300082841638267110078227271964741714111502797523718168679044425614998743405038701610394973652928773799245809703222162863400384973478203104567293467841788862355014033652993966080198718810408121378554375705800817504596307819753015754379179193933493250310104811929472544640027339521236420404543450301215231556518607355608191311666004326767990129369600961807830904587797589502553802677791190074895017407407807241474544875008656365265915485417495487257792048062485483823750827371753801663310030305726957701735597583704199066072620063790697338385270930200587352559867681086582944647530405750583794693517230721752768649368088155132380753191128871697404862745852726080692533829559285315414782578025091340142162772367485385755981705437196501619992238868503904105724286243033623306083386027018472601129990424828143778268033663627300552393622525604407186559062266514277971570579766957577502754959768715781227285388847878781014409499018180297580623291155484720550907425383260098373442597158326896205214679241231472968574410655083745568106520119294712664936160162468556825035977972297226376316390242552423837948144809402904658613574477253953716804216606782377814603287397908597526451022602003716510678773334597309993250723303186204865572919071948771096071849876238481536317787094671676011863709391370243119294627130854652486997234830209529671843969708746244917022503960954819159926060319373679205773139443467666713737683910565606888863452355577000091999519833531560876910252590926910893300619480661625741671388846649408239350333607053504887087578797312033402284827165950213828883773455443644519364802167232921758042354548556046407096996037811371805247499548127836216356510054661984760805387332187728339020017871812837134850991011939928907573281964416652835934630789840291360045353178422116041037404264000765826550784907481372129979739208875529216741819919767581479771301232351752458833480569371542221671248498064850722406859006675975112773800583232135370080221969937931882741849976052011384538748979775587020043276749366048328052292931597751058389270831291128601294295383158805216778721650574030377815946255853966608053190355377565252009115376867012081622437241583085888493428879225591970115210773334906552509168842954357333643075029014909215733911972759205868479283997265264485801059209580415436276986949947002841437667797076144905097644071706852482966951321271636985762873011915357619166702383700429480730582911959899181106965465008782993796136228956923808980712675881699439150275348660791272423512340060538333879131236145926046901519332330523235149191851871771104699981022296645547085416340929355511465080358365035477621196329491999414587726626008354136437589196445072027114417289252620520903282593126069100900244860232315924782790511874350383553597451290985145721060520876949004836112691012324619988985997810579086700983177252975095492689661549580485395962214714044602216221740646998844787097165978500174898916936139711251050756417850382706527049797708300745929252280324869808854719174084759994759378296908805600860052975905489736525502846312092073028999453075249393253875793805559937204636544921183757592592857719506078186829860468556798331983786304026585395061059531222350322256128639298640551065329462481427665165405091076223044231323386084621190024213155713707836352751776377224691029395454993419342730347340026589874818550072432641700724728966631813924979743684132934920732486498753458087917158323100994465052692259433965377573142890098115524262977083039675278725347607344572117993195633943235137313737701384790936745336734605154268465635218066211695727072105936836485623515129303829444123531336009420983478141429723743657871191188742936651613099206908944852989232566946614302012161938525799519133803841186193892367799868493246978843654622699715611027019974263616592950056749406533987374033881473582425322475889267438537809898617815806249985769961889598421585944824031279511979833506755789660745137660893317750259506330166570350972134352225237694813166830829292063912311375079204018871138959842427628104874799445763368155277367237340539955088591322415694520936394611927746098166290719556333303189641027293044827676377454753839400507756301051213757475894657486317052826929204479789300536994415494629116369799874224927030367800749952446001925279429045140543404962252207067724174144590127758493043844191694718244635894535939390830789523378803895433890359222988997444506298589154496813439028830830360916683840003695132934181603730804237573870717324562322930424109720189860453003173899620553578128544418282355061792320440899877412906189973128715421638216468277986354200269122814615974280512005192917792210336553990024891563748670369943612120199331705815084880458080283305646333288559525795885233404761374579453435676820909288793942228680477825485404346790464505771203498504277786266770688821042747548708525841831365559444120624195477806905673088187880949177038978139910662412910854607112964974961532934288180241119214826879892417871353581821762064061951771334053870494016817257120986041876367982915526221053282008477516736391622494206369201610161818787901716333934902222031570464958929156601118207803305972064699370958685626772920110438990005957454765744962855330847577662416750818225903068287275069878488257217008421585304869258317558225468310904869182779741131048929137166367812975552083431921499720774644944511391095353451388926693903543337267918514971086606071349232917142957820780963331112872998094220431342853122205553230474635321503247220394480682141843380265577877704303313391612427662559080141126722763973880713509294801657242657378036719365796198092405617794861522862217607997428061078624606853360640070839707114592742334374037273748527158849645044242038827003985926871878524821286739835340528928963894648939131289801119522457109164401439304742571903350798241299511764769485141318150826335867388696114253323844864135918454793512740648627338017620715010406334262438386195951917758340343087442129509521175190322595371899319500855669451497770616477529853796317788916280981822184793493580087267917986620952823889876380609022267212853483193170453725434222035746088250068363420182900024384682626303977811848719197368915716207812472256802586176144648230511721995739371989222249130411308385432468362936477465480962694911649560780968583080672297591683428902351587990569817403824712174802881505281503977646810066108627828119446543976228133204447723832260416402482380796475396452346258307257117595988487507962989791255209533695841989368771869471266044971879973273734918932450159324541862197292595643294551313502009559337653286479618638662812430092195572577621796394527694328178065718342029946520570179406808738866744384255036080320486069124482917092481478719867575741838154744464282949002344558041964583929473876401063111655821576831373136162262998328715460255197095076828732772322029443889295103218631336526391245946304146348941897317590138847258071280780976051503960404388374826108575490181641236053874893076034032290369593696492946945142578142915205953627185606725865043051036975872641408927912512501246323193751289498641695201975797465463433057256671217951715736312308240106927401195790213771454471177652949560288315406297205689889858766686118438351926079789377309772097063372093969341194425470294414832905983328953318737767559457661089951945042187682296054850898990893453685460352569008479672318972389697586731456445251986925407253276426411753801556416310012659234564190318616891998273787062974008151350146711460212315974828562243087108859899190551738579078266458150802308221206199723024910578099578962452976104226268480853716776371523551869588337334826022068565302047718605225232501653815061444164768150139575110128696246512141262808941451575690474791751825319155364251048173945849643589138009618348586088643988442129857772687105479123551237502833730201624730959476122713898820543661612956624583253426755206551183321564659632731259823316229658960955343549561417186241267818718946886665192683605154367228880703148896368356453902806201327899555959312327348099098495120327258061405605744356310102004734008233233453132062557396460875154724528853994171923169540066434789028397312296082144865239862676371784281403548594620543051228913987705151069648242905051670866881267231201496924470991934522305203274430076764973158947717143689663846226286689787169092611878125538612712521230886407586698430615333708175484601015414933566239774936205218111763417584216902632548116820231096169192192022869682450721505971821150288341031315756421940145788787279717641106562837796086713471177803224402512537359875009651352175484706111485179980247188237321730327986255608418134475588108353717509062083849567553038499393892357101996365134192492568754627070734065909605745546412514462065429172073186414794946270054205714202462163115042291964713018806070506526991445116014293631596527824543347094541859416111441185790996886720785499794746867787140883666830404314706948039642262187112361109217492847854360348055943275795164736190582628066618867191080241636518049024517889601325549386492890302432028125670991643673825129882348651502692574480936868555046819832175369902047269998297850450078410011737385494867700252068842129532259816552453751403642500301776381688119855448624983836828103017401120488512991774718546191749793706377334258931202989592184570704973987308148514151004269035084920667368779914432546209744399622385872721738590217480938174494293119032989967332049950120760884629599157728532320421768463385631131644787556055053814404902337960492949673698077118383164973039447227256366657539942291703071332600729207201310670785702153148861818246585764539355140872464581268805424604033413833817145202276844227474947828209811398399339782320512809976994994141470392278873462959005654257390460005734455528688232516268844830170840841417038005691980126530219692515639568354811803702486001603324165313556447021669651537610530368235321599160119805361562437443080489154908761459306328070543977375801735178529840500263918516588834577960962155770535174428852797557392671426798865945287839744225596795233148501674939920824572789020184898973355686325174942070461372572463551168639241026544762070752205122353055692384254226246908282007520259383019261781599439023913215673698812737259121312605313077606202212944982936187756978463241708662598344764706804251460125686879442445515779108821670238467856161267264299840724943846010251986718917385088911378539868476195751198740560336801934158770527649680952158650143845142987666072347658486515129110324279488081668710172857360035297007700992668673383051201733749831624631893390202711278045897542450181490490028450634424250378606953396939772069786067370372905674362106858434328146484000112041495566836354683128388376685931684116716839479099931721856827185738472865395754456744139529903832236139928985308861853883513264567192932866015278199081253677198501259329899446177941411025672947879656903632353963601763177170437735077668794119295858677710496811154221632022347705560174120468438799335926703389234517827691789627850765451584835667016785727080956239425179780181028800560734433642051114482495662861187950440272320478948695791670171129489458934046077467199091605533384561757765624481810398184432204896967830705000449470239500142714887802572743195349940700146557984866966940589994767653964503721013697720513724850009351801028657993939175993080772397835703312074350081900242934973406529055410097085403756951150846859180315703155681497270886262912282537390310792181234785472466259045271143034083134561136719708977129194809654240867974487048287377525644323321129125499267392447675666612540789154860777951014611851424589435895928847121260636774788292505467288119599903315970589622171043039323353821272755256481330292741635128054322508687667448523518038317756509106633306188002844654276712848025434780463006170945781272473199712351667119552294916503339830869065327984725464447960433491335091298264701200652831435716961259051736203333867548745125160582148675130181967255537417633792667840319297221579900779602830552640342420784318158971949619724823966408749906747386166719754927107966001282457700239981144188306665080993931999075351957164588138537139392004836519297624302633153281982241826773348441351036479525221245603741477010012718300382515573484071383212879444353950105897805570811731467773367085431395081004719885994322456868877299815400084971948634521298125293307606287452513105555419720110150045950127620127544768936198431844420771233081225843567116753180819899441397030690673398449178745580925419269728216088129832349384727912702578546491167687460282807945888126496069734008326824391889374291268368075808503565810879866633007050217615821825251557959747661465788436888271489868025465336842871687584598425884427574689786099011850182826397452887352779086175434261596775950547710470432392066873433962357688322165130183853939233934788068202469454858009361440313439447899926061202285835197075366648311596202248574708649609269779750354762145699705805383159848824415775858116422049780497386233630507130601350984704945067079689659500769496164671092456141627282457334137001434363772785733622545782457372443805757230127362106471282614167991867576489112657763734439506176952088570768944861489220806420266806466101445266045247548236485445362884498247715093700552467231618042965962817838187434649036942556545072275509628016730256842031443158943402465491003130789072902175877433878229916629058078322407669444834471476892211599973559508587041574983301994628554663661378546586919854917916898016710550714180826954218812746562120202197137649552308192593477936078132301985786292793348347537221049117409867692639172105180240888210370627070354062498756167646958317511850417182398264636475828557913148372896787331905493901903425908258299574655203496716385853869100677555830996073726565262968527191717935890076842007555194880210339924564268936052432240113379951679874293747598503382078777086453882724326931963924669901245483519932687713905293662429916136292370905000630046703710212993717529860859178516448116613518936895751396692324197150025860202404234669778773277727817474043598116101070634263475122298969987432718861953506778782637196413090335306981917974401215089856680227405871445959105657356029960368121282812985378317175947992968957549267345015330247935682377431385065870780732742857039308068346550145592961294134095639040819213383969915423314429211431355728900154732641095103166170828900523738305079905507491297133922531433761951230372655140322954763239003290434624734513694427424257902467317674801961043755305821848003088867097558030020394479859225951211014290045007482023930514187071582058170431564346161339520862184238565701502076088798296613777882961104553810990388929574871960521616486367195869619570068383533804341816425094721800859961768295319768631588232447298692460006298635064923867392578253802790034436579247627232488358472746689352716730447033139584084615571563285342286194585356223440353590280869222019699690068432200327715197139162752841975082366515348969559793627513574187792585532351661563838222248126450036396518425827324525464325429816359270927593793917687273984176260613634038259477308021763673903323169250762081465022304784863310936821007447518025244517762198302899127431955492586747168982131324585463222022703793701314904070746034333265855280594786667622456544760225256692947296993369571475704266211827191241945225175641519477052868981795092599842405737742138646233441672658025555323694322833689630557137825635739710864726907607238674142487422515855803453283055505325131232848156114003402099086929841074962218115651897068478308473427947600839986244913740576447705090695098774825952854424550397283494554013323539290148494025000718931562661900837721970848810915903359062948298917222852219434442272722123665974853876672007146731062368699859600832831029396878418783690436147012576738367381963951643357310573554568526571668234928934021821134622172710977014952524475733988546269316447143638429662560020298384874221712474269276044626736770562075146922524491542973453931888114086088962506888696702875854050211733857497088798969160902567718701585287586034448424598139033533153068602861693486344935014193122764977548147691018973551590806002610708031402090154619586754859067622438877982455649407050009304806753938386269300405302195296650088988565510223609941965873308873647647632794053687744829709411358170717544702333716066345863972239659025058754366200608100136655663438748587650146955191757867123385100230119752740042590837479939478329142536003653407246952270113427924424265262284469173389684342973142419137708036379078232640310226373212083986631628144257557891068692000426517417050945862885452566198886460086692430504467481695144036706174449779510899493691584570857470857699299941149860441915005432891132301109795334829969820652162184906061455889150752336959793630769172398449993102253647815434258607180959528300334807481786533301918824454588567478083928756394884682880702142397735851059952766367409058084360036219094701118167281849287970555142751424480375477543683973577583899398139507189540592017188347298048459437674973936066518425892066866212452801627083074994439162365276817431931202512105632124248797648082259909738759193190982030012610889849181161988800259163989623045440996153917036414263283192731650652467614880187621588241645468337034360556859006559804601300196232447787486029152576481960501285277359923561014211764282712703599767319472238116583542886787188172525039296167440101334102180835737585978068548930800735912046326771690852634141328665100062364810322035155050807113091412046235480194442789883702815221253532845403685364080364450651492683038622953072779690953689475921304404855681905924511558215534311257822305001172120402955285239519336554513119196908678668387401734313909927778414768372913823150350430438283428076265479679709922101137596818294630653769321873399973219308561500412642684065299709541084822265565483871189995831709346987519358552612232223540030664994390216168693695953834186910396738113039488958181696430477238713695583956303396035447354959410316943771031877296286227493104370783518832300699466806742672332912114009542903361000912674657289538419569302204136256563134005100770768388893170927608921745270855998830030392462635741988338173244231415986642642269024494480698716205059925471276432430513613257078109131162713378572197731881146524322404945862527689285337576937246931162193823345792540752849694349126158534060024761361534412269587565312408594434523133337637170457862052323366884853502976820837687554594954742188537225473699567146246951783253153019786425489394486782032291252709795088315084243092118023935772209598793329994565204257953692109135699358026849067160098692032912967212243101282856177278596397575227424949868354320441387925557358487664652776671468929411148730852712752045384286586526241634899979117902628587069655357691769329347976799817444035777467360132806491215243319595708189464280596994022009741646155259779242820783240624755980292224767226800049473063215951484584906306054449355441151144721950826507230850597966471722151062665615111551690741141268680929351387699517608388984662559467399436087302350439806874676212576707538140700969093411991655905544157076621777326203668497966826381312925215241883502955839982323125902681358526033923038436884266749600873445531728150103153352893659509359020396693277205407379576769007689142951995016589643796457047738028533834833907311709256492172062432071977373442991228759728482064213551831027480472807428453081794715915755351982646727120296034413302428597080487659749977624496816598319963806235556437943422983519266701968518333265252827011515697099250763435419594331639558954282398037642727816573930601920763721579030126115042445180676626275382811988862162601058179431026040390909237574370307479366873843440574423501358212442225074906488095984219881164767146240944559825494346280455435634540418581323627404708619310574139533560289414979938468802886773776218971003066716293885394334312743436920697530317767172626563091219048231662528678951899298214330107353520818146989409160484698717278547367875185920940539349715108497561490513331934835743652314110987322330920872160501333725672738486575157334791431572883719103028607728398133906635608641374955838310898062381106470969026925686219438322433064949945415090528139312027558065147828656444390591054861793644060806736744402734324255319069453803592317299471469908830423142423426528588237571065422028622764865788164493260778117246001503791285076279173336793437610636178342273993410752343084312238078740435359976962538628624347747840534689948059251151302660429975773474495579877557191323472672072461482063590948098865557720273646100561303650256020381446529469210031615598708648230424263272728397409044046137393840457307977081331633183103152431184218594396109471661266670495994820792102672427706591362003891852868683645953394472920057259061843435880778968014636171825887172197758828899657795881321600406853412963463327942090567269210788531394273909382176180758432157415277625449932760540813438601099965115027200841190910042407107161880700821016303059825141090286177106080554797199209051471986597611685271627086021952682441539448207238582129501762282987297516356670224636504638056283853262323925638279488300691395189947366850266959169767851382142851711475748229086492939636871468533492813103532110114976552291705823333635442395483223610206570531139849546113998482758177827671222133500285117465143159868222209093947389745072040269507832016263732216975960381047247036503093409165504482560909183694089298976809762468175302267542679049154526723143451381712851190938426897896814165653995416366575576793939375409230276970844473405235622135346048317804513374522175623233896467227623507688261100504509675044214467327804309056159481100692014427100813073851307560465864755125592862477777297668069206092329354025389470007937440188468759111652909135684875049622366584704315368805549703988317811017949903742809776203022456521629832698525006689698776533156158428893251877260381206883868037733938838503029014652529879919318032844067334821183062599379108505771265064803066632818930451616841444181549583797291881521244010579177502264776187128883020786465839787682354073661706460738172601024537180541858961307737131576291423864798564042370283921141273613848783179910778299029208881446944219326209557820099237249653276701601777429900580940467576181876263111308175264204114296587432168755301833882033358489717768753053371513685778827808999091863240155505246120197353781355734103892979658638898713835489738071393219093952781627399046694464080744415366710167529794572406736034693619310548952648695132886006484183266564421496660488473450588566237747094330013360995330517579516654267683303569120934759904752582922026654544723433474714692200868418617226462613390820465101616188941636384438887526857979912403477298673908510802859488304847781210696058359408312658727035074523517936146703624475979071004400946384419662561979884947821648079954258456113282730952764878245288803136467129614799673131690377089372841867629870746991315377162690224239364459968219816058021929444076230838467169134128642664851621358713252712441577218652714767696221701132515396999179441497436601849353647921974083311850102581599229988186009737573872356702293413078538971961143323736390311627373034950704219644525689692645229384708428117992510762168652739102461913822869388041193825464045542321313295874637655366769599536972820756148787084264208601404553753140947553081117791182084286686517975151487571114441798774068234113505565412594893436537316675255211581129271157567336603288498261983477525788639387644094723472984196773323261498166239821061721609993483153769427304606746885491461023985485351078515600377269822350546966734007938538407171283936262808683338316564332081362423619937262825016659635860140907456225790923905501196761984310526544965139119779128978784991826678871262078813632860604147383117984322801577760444165369852983099435653324543042175933081111539192170970055388006605817371968464782365679844706361493182699405480195816386268849534246167835093991843624202983177727512421342462806924007340215233998393277841154786537268425002697792403879444258318638558197986293177300932716234087670462004071145818580025514134460160320009298109600929417133960438221322063926225161966346487705593561520011735939899128364277953211945451801245207562563091686844629131875455069491687823916962396624008494830026575259228566468783628235183732389719145771674299557740328516952425268403136157490046852441635062504700511406035373236278698894832908342500426401290073107142152551479721076058098242959426446269626076548710491668408771200354274040215857876164667288151802090037977881419023905936137127314367368313262696200634029714870974109946951687686003411649168670216712082385725573198351476890203034958648772104660377856081650825483903418693965533093165765427554809659290063216769313760567730227363207604924333546663033772149644287789644253416762342539698364372915613588877918021870255191990308705114665170988174445895556067869282430622109391651205771403146519200266450441686416219824029427167244371633937582384832294778916103101443939311627611904876583528666166435956560675497068386988314025735473447285834026723296658175831648217110917406321811026100297167967734031393237214116639437273532118276556719781355294703523694426722360676815955553210108441629536304468348970380790281538502299551830092909096198045511215620610217660462933841081507036745040099656656643784890106515327300587365791530339379998050101070351169955518314952474960262955421028653995887710695170962695521779036106589616263992757377602235731023685733095144504004574925590517747114195450743054587041287656262816583271346062266961329021635206837743870439010240480347559735443338887581676851743183604808908280158167884681796639656011152795574279794893832389948835554437574434052588257711881884553166821556288848782830699476482175800635513962349991867549142848118692751212826429300015413756382314214784280471319086731985026321911653663336863969446007322809655791358960309765740954674325075797286697731356126856557594997175597884971904409222482690923535277143332935187539232640489215696590273581765562390933229855668258527908664138888981155608965795160234163974934092631029417692825811101345662811128154385049415739497820921460544954441772489626360605763008179384786926393652551277081813833080477116579670017244768615996436955602980015932162602125772969843859282612925383950091997250018573394476433465845380693457347616347214046337311849356012847878239965325836821912417827903211506043136281499832440945895553543564361991133110611983493560438749209139977808006865618019277815380019853119445288240933260391840351459345487415036944929569018015043304662017520589843939402722824975119686612642520882480558159615103878620421221732923670177908497629127805433410541369034389061094383891337843566388730855008615098647667739581641926358815675538785818688565138214579760603526647906696525437877041283507692905722160785609853909396922785011469505037475184811428814654115059260359439772840390795634485634104917688216553683310172991914940676078418389895896973792392121071697953304498262714085005610754095437928547635561838812993726366041068106941738756878402010500931470722886691109925212984296829923982961175532467056837911850653878175630461070467847707057795597040471852510615121333616251722352196599326897220248872757068147532849821273675921914376436789053356477016719947661082219252108967713823265039390586435855831421097856196373819880082132262548821345486570165656413883766364395315851551429328105401744519730446570076218432139398213584136581476539650042981903190041940374569542509812040106781709539611114020882991524253266518670522849996910922558055816557210854859778370864002624692253766711133012529586195870279503559647545885284864741091200401819454228208474360487337851572255889016178096370462690317917053939368802621548556869322914945305155902414163071020905477327316750314088867033967513728344058618241039836732782769552569680892938862395757460314171176428042031912825488657707544028704740346292771921170494685403475253095847682106101812933753482303027375527797514691749659429254726247371905341910789271321298599168908432299797769561590304257260325961768176301399937373534023044350048444197890738244283787077529705845538132814566991265441319283675901142152481145028199124090402375236489973026639567198741496002518274108319757003350951600014618103374149730070248537570481931601192060588963189047597178863903790739949342080231795983951653352099597278642980752055793987612095683057909246536161995615645795992399311585279168049797559406383409147079447546029933922509463486081772534783507878994047965085946955903958316446123539472801894858844664850597009838200619036216631878740219766963779296158571488670618466872285834719723089288281455756131894878683058011159693483713515699480236734952048019591122880668353456277238137799373218910562682506005703181821897967625984974499553273493434740478641569398551769736386747111914389870568124920789162496667163908363334669787128288094101339600048970334825535478166964256674736852876102765954187567404586169273090125402409940380412741595079833903411348875563868933322842620164881727424559300485680937551704598167275315266860151253108696347937109924039632468038367289956818079372836848695101775781378996636383142161072707129055068004490994388286563413612259503208741066239944880957293690942300500014795633887030246842717311321173049535028723291473895345255719212099661995710763867656254735873881326415574807337759449469037640800815431819361866445905190051752440226681405798038710040560557687382223753180014454039941352439645818805226606301378701825990197322867900256707956351007144570351377199885843544791055692972236742064162346772257086939040471841105762463683508593989900348227245641211985768264755924465727028858380477017383062862022586261794512580176729532532296445719175901305052932339431481072655004852315715828782517339705637302992409005131812214706920063877361333056907963030156333711883069693908158275965708079255558131138890244751454046642280731333465571299601905858478474762468997412065837307306614852502101692663508381179781506148107961554335111364791250316183560733807599621619680295747955533847341239812874951598426073286773225888789205900783472071631926804352283364182470304621803166421959786313106846486904059984223833081347339726612069169012504440920375527780162724311416104521820724520674028083007243342911090918751517286388532177774164690011606911794564264738282981728452713793014736906927479866405893493001837673033454489087367748012786427374943990735960297910656507330921172538494447589539779525570566036786558563704131095693691596244121943794558786461595071582979919571785796281137298382965755156806069204560770308529511197714937438377342142913756983944617789075680489920426085886797196418917119699586906962316126473299185326180285219807641058789775143185278685448091257560114778558090447522130057638947372965789894999699006700748153732231466052326201134870636387443221823848005171984716969639337943366089032334572415577970846553396324524312826614209150338707801387336304627498866681206012174866045165969923800382314983620887665698349281363440250461797780557199827378117958695870260936009822162631523066222677607626927630744717929323025652156780052820141996134239387531033571999485092822054530730064317943839010768133043052415192061968193046970088957684327340694532353875283170276063048119978169259281249439466497302638213673109972142451578236170858371083226384652357012153161744660255709937786176397273359519974620387648460830998108654950819603972852977390467565852595665146129751481604219701069589139719460085119365487136884648466780592768453476090941468753095320706802683899511095798434861500052905193724105492192695891731640757957558443457037505182514057028118889700462593571028774875886220624003558533121189042085914615562109314594308042630096656220407498655604792897750914006936860095874117261298687199934107256247368048542764392381718865285475755003819448538726547204040969394064769161541385693425795135146285432127581675734942164574270759057937007858280139303566004499693523953447501279512954318871935265895435897085884836361653152442578846650136939655813164878275476458680491181317516041599320809708351513678332556871063873234359935928538657514890186270886249980128085842619290175151448618579935072963689399078222983206511733784786538490146551842111656739483671581790530583066714371043603825838872222700111416180463210225265759273485036004359214042401894756464544502668124076101908199034325671932292183177514328300534965293511086873659594593668560394129543623204441885173469847026602641964122578705660402654757934251947185082440495116675620065769331529365965013819164681346645387391003730173600878833060906720103227801917515040347567821307971746349691511102159571677823550750545019085623773225508012194566670665556064953546169574466857877372867656247273199311369965987143767852019248156884139400001192397219808905736099315131677286477238689990482564911778061364658363248360956023837727307844931493660798924663274095452963251705262273575232282743848314336350635937180468253069030479663416943200584692468451381289440428995955581893041950844098697565084479795294211999551576853601229958888583402593982025680669415428588746084275026462273231035674377058933447821365402077497302773165544670101654885484328680114063546218018094126229807749366802304482913307876626562839318455546806831500840562054987027671977096246399859359425979125636765519245276163008842423388230457981837678362960438523901175863037197925973600829751223954221030299413024878530978435678207755852638780952284670968893274184533091893935490331076559757800129820005493626209088058215715617239200806895694495836746191662617532209758571181849997937295486306090184105869410644186117584538483743063613782870730173987470002422325654930511053346938459663263268794368843572424085701165994897949897974164665323083134331682445234170093742898690787559081492303437173163371068068279034086416689990197967290111984800084064515868352927958061040738632533112103239385861913225789672173561123653904220373429326858215370855585727546412633546910966615989678139016409459748052462378724305809771125218060681416158174194440749086476034844284221399860994208565072367267886853615707329188803638833822052480918791380994776246258801278868255927016660958093364508150672652189442049086149019014882268351264942149058120016824275491808556770314773531201996872592919424672583525355710449858049838619414190977068911439000231164370035721975341289380115409869147172371609394320915779873958436632052982743836020243320338744338973503726521304698957709475170812890906562594460130476592181868235138160510147473947440680131861291736539552409710713902549388665485172748744847313214988466732796719681056118352443739723297127200163817382541013921609268778398735327552026246299221034351899612272307758357703879280427524696095529288270835253974475721257778892960095653790106947217981127897196558846898886086505492789122393389764997884685462540520755679925092470253108808981867998080181145989102815222936439299152481162159483598699459231910665619795950856939305045226061480664011319080915167453360921429143709980613689448739717421096089591596906924610005687122435372167039238389171095148181758092832652454659811812573643330467968564674173103695969218492181589338001246363546090315057295038332665240060568382462214167256736744277965120515931000897276329142298392370338421419989549057855916614532068902059481384080442492580322192804189885300412787325334960838394538590434903958333692003438010939844516930018183663109969697796676742654643513094078049630874612303456201013487647626736597873577676347525132016696657335034185516436742860633739172808043338373877291414757846532736793468648401575907127466696443134177442273028232559352919090102965317338131633860847284176376038763522998987993998036670956078647226475282303151178802790734561206060483091999240822411843587262895819475443306621448370110133184248449287073218071297027748262333929967064699612354492488684861077535177014703882864220918614557562861821714394875794431684630845241229359179759790608813186428936653188667066496682724986640018309986001364352115422022064725458727477455180860512270937141212470783862865284947625909171781412112981908470901443457260001016966119924747212311751876126960430885825436696765611258425397434148461828181497551844706902320034510719451480629985147327727143315244260154663975383672753195752521730575178692170875622170157773455986863979000529320450592719753630704955204163350986662017748814519480630350458497529322549726745951616896550567876321377294735628650809040617254648312456276820125650722070080563756572705538778702421146106620259230316954329884055683122350520637555501577547638203334423227627954712597975065745523441828966238427813200662820776174904988432829178882342387096750950759362454956490680464598182525444603490978752568054461680304246139478490918846371850655099250914943905164152983432308001324552741688571396474461375357877006208428654498715884253202010905182316349416476780637965612923073499222891884741146003543204745944733777954764442018952692780191414721232667526531207201988165336643816116438278444599098343513207257618445126187836949290554899236450614002893215179331904443772017527103507880522976284346352998865787559634449103306966950533390241774062445849551434371101642916097197865542813965398231054133741608223590664280702649508316556264804514167380233412088898048396776853775009144393752641499547201928721766561808586496134057543469693507380431677081279235668504450967580275938483286528824599266783811643024611849746829123876887380184058235435278694043352681367826380527359567301018579308903331978068733729606906909300085980831829257094060323844385548983015956079646846287700589054008530852763782610270654113974726386706284681267444445318204391796887145242516588588584982682240484224725517738729467793862413322213276874035377194664706128789093401508462087778020864433862593716921783914491735523597023249188776552345230055316901038789083881151353934815994079533656508478512234479590748847075388839114360685816032909771740708504492715068930938420027103531498952111897401179078613968977211323374006897193260765011707842923228156127384099758029087940319106084287667112113587703246351485512322027342221441976327421429126768824317108266529449009377375348708462094086350026143247981341881881337940962141402989261126994349457058363674487236054929308281928047633227395239717616508322737646617618452217663204627425183149232353852663169977981834573184473251000836522717037071439097814035946069951180647014496006454697261724479234816361773890210366761372634385367209870701373006681399609538462178800320162774385142885661428753788422474602821474976386932754967952719801021101587448690417742746020514725940916594066848644087373183250909517059354442101412520825000692606541969626759018187824830477202967034461081765684034265305469145999017564263476263870922638845883035297796475374918508048378733203630689785033473713771351327070238061744243284191735882712868047165256848947740320900219622270986360358339278183217124323108547002139526854535003123446891150573412912193844856938777048022392870479145406137032540332401605710457577703901985403535438260489366570003341026200585415314693434572490605879765206450127910428751321086955779004984575897943799105145926766903395745866466765883263930358834386027036474463730947360211906426801155008436218971202599947127198553820307319403073993643724347961141811758841664618157944029040442894287259898728425912687386978691122526180663095671512380590120606771260985179894309805481392137130249808710667788688310216414063847970206882734175664602195608078257983769525702465786894088049936977695242545926358487826368292688283388533589585072137667341462266751659047786136976144665608990111675043457618440455511847412776506407283288043744691612809501245865563513878052427121167188907204557985050845207281809276889197531379995253490034386266354801228365232572468418109045128929990889707198765042936912956039001510693716703076527801976412802138135086588121830473314442475991886308362727857927665900085291341842563579201187668268575830465231869531288016466110508268482654457617224485508263522339767975692304556848284570330382844274727234620488915881922481887887101668175646346103601314864368511391618385433162543078352002402086293856722318393669810477175331974259609052279323653000006580420270122553945108224187951365262016161196151374755181433608663439466170538046200758323396429336688568541957092493499233528284361941052221667681679076652752340799216968339326911009554483011875343727810906526079656693599904953865919360025857548131406639997184511061938963090185939923292436620218288722043667171731614742039966423395071472691797807627144937661131498685047138302745558008230811801187159771826703103920508332053476975273908950418481711711797353882484384555385925663284269171207449963694792910698081310016078540312997237908673701265649698105885508654814855974323971942744839517094747015833109603702067569250233098479029789803842970338858845009102994018589556156732535874684208548609506610421427444341290556482615941862142679652652854463839170361548830824610250472459091641660985123978136499330399204141734784220003787354546884747883106784716064576095078768240241758708677038492008487459393500566966428331977868957348041798248907559264100619352732129285416253910826652430813907777587370678102061119548473935507171109432573891359144664516017898934364026203268625424627868141477271906862529319181290587065340647634800332686721630143288431814889261539489675644355566641178166358042255844843622639554553882195959786005380136892040635090411059319516253462229074647334573918714691071967216431559619100914997034040704774808111922366141492755421224633912323452785315199241071873342834772059645254090651029599781371111917123421143756732876011155302500556250896267237894683909283875709278712665100369148741324646828111510599216177339617274991310524099017320602781703139691382610295606234706193649974215631950839726327530797592672641102146366148399722684190407931899131417410218394504184436571266912966465473820481537869069419858466446234691266597306097948251607535535510339529136145211469563889257542242736830672975790651649990578950331882500020787349981859239465217575991891027660341898604700524226382551104318892394932652457433559234080264679399168443041872894115020674873089155593595417561386223249776374302255682701712564948238788925900087145714605458695869276809403994535042807089939320376651429656849749724983100463431721409059022828002837353186501467575505724700976634543568174299844633669844469412234801573911778106694393139767551120210953188807136059824423980260452605628765066683670025542998376334971469611993222235412624261468656675892754205707945452241177983701978683870312118506844998861933965495779126620657934804228083506543233607013931446323951565842497559075265748344031224828106611103237590909968472180176027438328186987374043664021496114197679473236435973931472576455432661660220168796098877566061669598336059708278478854538823283096656063369486877084381813124018713577310444571949414338651488183129681062057296081361392260567432278864088675184539838676356493841206996330771212611998138078374694749947358524011160755487956701170202095704202714090305047959998077156056846840400692787791995453596885091343502375369869184883152941837701418183397469665982078536840475289696874739114288630269738019725615519985935437561763338759682953423118294579631817403764430221433098340591802818643037291913893331728271609602500901888417807289998904142315623032905732990567482347367321301575660507331038161431533393047936449937099549985004592283789630217727687239774937618012433646670325730576772377417977098688972784549009712565515560446163523570101144968671412602170879083356837464609705428331409710751879461723758370567951383161973583425614103282899309352641299084530121340228336737177753160947950123016290996633844612161460697833963789003871341523482245657070730963160465139256703774543047260940967220481157741464543152223051621067038590071120173621249981556927834579130726999685739902031751749142826279727709733547071739266738484529626054245971782524301225133598088560282434467154434394054073166656385466584127156326687020345474869509398909351290836214189248791278930854605472002804345694118999035232764354027958771800305585960556158497060260969939367329590291311569951422738286968040547287780461237863008155474515406841753725448954399152649654097147382371664298514984231649998749586080690505646338391227732877069700048009951660642627133846243693853995880527174761403513857026835192156165211950577260471475944680206506111751728676349034435597573026360588712589681315063799616200559196386735194777663341201241103132444089365955429466737011488097970545887422930964850217270426276109629412911553643907426549295484823259788909547010180583710035222051771212117196788201118668523039174785488042862586899397441751740820296249755807826513115818975494209184867910011233474923710404125186773830147965910881159224987695512537128745643609497711020668660014437213184403488648138618259445530111932260808447392117350615439561916708310373373802266470852952706910854793881931423998965557934661084791477595320133946018318940021658148193795840998516039193532284665642895567457333688545341355915697201455921954056150489301834039321891411372433681963073925917624713788798857160830761898263664488160692681822650819702054320044666898770697050914356178213937549438550608899485511636302897730086044927109045227182980383255604340722013405276575497289646118908401013862286960235978963077062692264409222204083510714458105698539652927676552395334220837437943543575940107617310411681884846837048636369885009291936716550024848223424287164579279201485526168846796502324165719872882058870407623085685698168499165758900056975022732583263561312480686375182831667209569034980231455921751036022617508592802634197616207331224686172152056779048283830535792446751238402814758958323266239256410832129833496355559854679862314135798434059945908755745787228105040318686383386298501897040681346027770768595745747942824556524708438834202215394215771156525434685338621769411404904348333276245215562750085690462014210948427626556324094169781032432586704360815278996685077446044367822715556295549312021557229916845711362732078415161335686990924473746709408566766060998333957500460412901945937635387986776933729779185096788702769481821502386411149636688830257558819347738241158720033794617211983791608778706182048425183268943966357246913535995726965321311009244140435513760090767624723198636354537871955670697763027074167053277737004345605465794496974746470098747253242404645198491105815853687491214503948556317081232254424551721833262645982672420584397161299561822895254658636181404921145978724707480592964832727403525510051744658833490546426053724423486014119767706706437642721815329385608680523719578600288505960619310657389720564196000119509485435232711389217895056267869083999738352989932883705087501012216499973089244341737397324540513845369440832502562932233279693344267437171954427474479359531277044534049550506081922690997684267674623784253151736704159932679327526924463198034830367280797577605293208794484856267288641255202459893685334736038869517532405159373313679504248427998253289405151945686908323858895073735953108428700932474952315865657196981246160838661099318264869270965288680867158188300694481830957435031839283241842083718653600978597167404567764591792974209796231295000170818289023680151939701098440563648439168188882501102396399290150873441995109714254897745818279886549045942610786864390040180078357581086552829013479343661849683627738704189046505306965944528671372736989859952176150462893247928284764012366401518698100757601767532429057350212002771935206432294678897183661283792971968249017410392254530471730359961766197341106211370893222311745921179013944487047139869266171050698822297840488899292074542533801338663787044372079872026024784213451309152275783765940069554487785168322068276543725062216553276631452068232569561377579877796491081631509861602875261834821049324652075734255982691809376086712710138376013419313486870902492401609304452707057533867181440999304141883242046109670659711646820505014910913247661767432005662112702061789356053715718937485294923894982050208236897641855260843617540499453459633174124125180643984948084758637352102574569785095397827325142301870790717852321359334239958819800194294524193927997561806590830919270117597727553914091720630409928869039141882170435524900962223934649548727091916886242819748651211277228246792399643040032769925511328308835386887658682948098193381015112537897568253317015206295605515573393044896683126769575970381268967024487320340553653164533708777109934788061600260592745758595946002448867950440150312078161748298764880619022169938925083860278587781173173354168108857216687464366963451335678314749083897490117378083621452731569216573893871759565541241641785987600637005520496175502224643326317082320967628076559960170860664982996524398835717216405949817850959635416614075857600029168273528586269728860639966607049212565695132434707858436844344744289505944934143471390363728222747474525331918380697444791585317294068264200984175418469740385594077402345004177045739484768558315531941615388744056721362404132573809068139620406411444743898287466967669232551211265786917393649946332231218639868188855015009083905349342613883489453380918532001692045836410245191946768611411642968641864148074729409467057455847987320129884113336140914103106398192480051986528257975857009157634451235712911768677155901198088437335214200512089032395742005164786433658071466247661725682560585421939605014328631979590060589281795138324311948043301893055560331748643743910368560900740566410900637500357510665129153443223590120890415320260974403915330107762321157138362877230369280647011977088294246130763603526476291273659270381552138565770948984304966512917833245259238073827094318829547119812626007352792821713263790410329090353104653072723398392685325471062644651911680546268043001324042734907614852006875243993283849573452029090296868868347159300570982593966408715697061330924572755400012275145005482563589043882451908540941512490335842475295412028471954750484723905019095129828454000589770804628322768945178392635368844825339441730868989462491844228004351079139453540884965942404232211961235467843821504204423968145829970017285963575022168415351843567875328823729680838941410764727510817248848970685506372514329476425431667025665246813011807476227646994594193707986030532874405983290981026093719175100381496767343588799063572224114025985129291479571759817772633420813307442235206186686679853208664158827915295474077921710704877515443674119366906998912655388407754398305392170227064560140125551986721147463047327434393289050702901935401673341105651973056431884178182913757398102422575468591232669844786323143836340388961045233683219782675563040767037157729639061164979871623912766238267304881288644956707366901233042088565168634443916108402559660661041335221370022353831714963221489987183691721893390289232327568380211687892263745083193946679930739756419832533064726441310065438745623939179708608748177973101929753737613363805293217224954146223832441653719947025747983506825014001443414729967629205568163721701208780894417536457851135726543135047029021117691755945885086084244321915739941929847262258796266977429167492850128839752011084167252521224016157947301700205521824940405463600120743001618053279776764647309549470570125720552329206926022580616717989160974446769648358322442070686124319526984465572391313316431620118366662962439297901968291367737741297788780502801712481858258345827261769394542779731280179354602544051044524702142391000830325793224644742291349007337270546532753239366789479713493401608886861613556478604918856820519072134634197236237316704126853486317442861387048710152232302984484909737846444055104352016111309640233647052112909293168129301462268998791907745934347487546606164907136592932720779050455438639384687256593400445848175829343716588757393562990534104394889736637183597245553117303876951240801595843771205660041722034810475372791098501951749310218705126670343310070178666176388633779435779879326631369339900327817336993946230255503109163526615933196333704195847457325707353965887556603679601882283930369037365253806463689433028057822549402731675869594480192672429488140804563132685629827822063513827901772273719647424942493153479476797441967464977769480442372057583902157591239724612608208723647637655777899021384105600893604097403680524316867029051947126743494458082344417099267238402574397406210882755093903462020135381090999347157780137718767907101025345490701866546799966746084452268544193841206537310521166649782468695710256879455249172578548647912331790529816355660835018568153709557059863606723840653062019454548373135351380796102245580883229591532262405064790945703689049749377709723081905395092350484112273153346548558088260713452372582546570223101338007634180316765918483821138026250362335181234706638133422741291075624326229746409241839059999810324913713091038353445771117532161778835308631576871725799395168861522222275894353386474951195578524361194542444088632522468105540614554082459286096298832807799138069988049133789623769150336731848980761962452147981027862472334329322726354895983828285317110354087853934650777721260401514956566622894055624922729598871904327510821368819766355182623357162225421473019225382314599531209893467874251402512782436312985440278088362906913090512147113913573710415762412968274914997706645033342417199140116203744298553441762048343049831765403904704475665510685902958928981400930072394244178074141493139564499412637370801812245846845135383382824341374357508912650541748853166766853585652232261811954414497170707684280398972918389686407735172699956065221663999201685634745086830084360405437762460644306415692955940213991905104493177355315520425048030278685483088197714628451811119414773839304426090704061476622402924388301953375000565613920047728733967153697629652536078924257200238424200577363974313603273956598861249422310873504850577061394017218864234195909060270834280998878784173709170390996050848472424982390964299654309958357986417684344428045546047999130809701878904358532800319092673628377277110006216297113786100090813625784751694555964929648732834996446447271255894053504950137870800360766000232521608682486973757390255169082631332967115291015770737893588583576551078257419081643962376930672162438509589646947833935460097442057991676888392270813368107469263779449346211833609966948674421678037593935612758037658217877360920431278296174582112085120098439956637612566049641186879810406275344541454550041055299199700106004330549889973720989918094915929267921618115848859948432065829676337914957914519476679135136569699229934000954337902850146141635462944471551293727320098342598112882283926444125206185784552523016378547143264256806956602488712453322776549714074873394453158647040444953006297053176732966945207828166765123678210946905599519138258603456915254653247313561813862220855468651973664161267681230088071902409753999929732817470561614630990766169428629697182970781101992595355293761478334616096416437018970392739430198666389467013816882990288151854404103839775670638353295303773248960231001502573279949362739361325519734174341441462014312121843765377219305497127339251550207685580505778988202677752698997634733423337079231839836494107965765844681240973193686349966170103465344051013119001350626697957878483350775437245881295337367376170633634278452206935133666250273143119173946704910390721960574708892915440292491542484354855223405057064903496858232931442991353497887864986926817011609283290771220578298313943358749423809096107673415240491352428735298370201365968403654331787385357876105316762844239779441448081372809912354147541734673496886570250737584162940304883158489255854219168603838785649365562176699761064954711754409911698867798613421041475934419828564244160366848326041044088712060921728520113423068192143565940506659252625054609105464902456110523132434106304448930761970494473612924235890646972903444694283649964532860960404243385394074999561665379479863706001954721482334159364689724928815857285452473580599783104602325043463329739449622536129934583301369769861249641712677957119092768330892003875177752088628362401441730599440295711175019992667571593656637448182848028408221344527676397929596268828287084840321026384615794434230810383307326183728976993957005951190587079428488584337883749725400950941034712497312010502668727866437280843033115700603520359250927441330117535487926483699324485125498726255648793911809108568564906733351380226304802018917586409801054319725834655144487824098645553988477688188164580575027568128219616430614764383175343668283792036188777427920481225281798556111026018424890093831556829565865468926165331592430931209055415197823387483990096972938591047731850025538581221330714860057961622019082772247326184186961747293438102976049566732361299170709748605621480828282235594876492974786804914204454670012194731989698515250445541197631486309278297968875635783434311296244697832850282285172447400104984071511498928862990827826148812867171836308012468549607863733516118983524899896829270415495103425384765881110148264987854294069975652584206854896891138023627734866066431476371779209039328211955521682522605152273798746079056313908769789421399803956883494994697536491334748735255639462905424390253866925658774798394772106466275239006336859044084637231448631733069083443473931107814172700766360667236263605249748326600648063594232329501358765790934008666250333353981082763216676565576467183160597385474279661033407936922708576241325234629972872386293439359026842610405274867938296068286856336104761889122818437405702772456056661833871455755956255057234959308515598495148612650684692864912414567645625349975593058041626586197004080766405644823164587784053831429373356022452375386461844029309325565274295794603424933648416331784394845767792388163033154777571209371698382505985144776960272270117550917840822030586612699635124861218151598987266047690511973849899413903271080693245309936496517222875911187844780244384431655104038540953656364743084163927041841501159620136221762221658544931986345296665290406618280499971085957522725294129872043615710426854351566291756613218784061004254912740530285230717980201516982474643612695020678031506407498246894734120572654107568351487620159773403592145037995762277796512765384887263163796568291794648675332023054970082889586582151426518074627751895595872303956157470454341268482774843396190440158688631275704905491807131584689263330965186301409495986480525216958717899494172340976682062526643322938945415198354052325367556732788423697739158900423876820097719514512741809034546100746896769170896015633271659287094237308389095757338474958017467036304797616317584618707892495604843431892953396235887523353454883474404455033707069047040626436357105074747982619760722076734874370066547723174074252444315002712009542512342673548902318896848278485093136817884019162517943774022470528353986738311080898422541158167462734689327262128087039717920930610099033812421397621109677772219284985191213256323409411896857915829932165250007057045299110427168329636102680651536070181912978122211464173331357050558442868777369569112374325084193558700068931407674596359069518989339417157590685343828675632141711510034478376184367758717285087018692942090817758730685742802737566010212601457735784835208524950799804321564608053800313405249614518748390338012940213223970548098371872863185035520883034676435908356752672098331773258096090339185443724979735787647156772527157152054896985239382075915974040807016367859823506181234547980813433851487506639187096614923103674019853460628297186060839294577774250133889696391157427315467378570344682081128408648699757670705246694570285390873261420702304146847683141817940834762351262741734171307692062337185469142616998649696565439890263284367486815391939293365645846690361613115298408208570921171284935660227060442977101272597799801809769747655979829566724748124543773172811567198769318634864195221886861335705081504865319270016245153907782707408731624584322982990498754595580256425586010582622075217825368868895611188005253076347959535295825465660185540361459352844628455307556632929299181060917710010143460878914391335079142756646350451957244512579802874367727126098709683993629917413790140550448071968099699922556190073959566727085774598730629299547390135541584261021438860623629293688944701274090052323705347481351965820764970841841623275091442690992622006844803367538048153685202823672292069405177916734112102321195317714484595235194229251044530670329585156356390734854442464857700825031770770756121784314075506294642028849373182604783332358559619275067630898194512840190161360264719791100177116622688449338845457893621235767012948698472831264873131629784306302088977027492947793807582290601814310028800485027667071183429420820667754465128626777014318108926713197126473252576927564974904425640581117594416243021941221581277985284298958343152539946272596285861320939145138275828841056472432500392821795231605066720901357680956262220073833088264813700916883598240182770348798962457417360826267296045583796596902331593610391369225543041526750039859359867818925237479045474082679263361705087930273976914746533348081404502818894463134671838978552558471142969683397146015574204702928871903573555866857000024060791695713297819081219190922050210832028612900559809582704899429729866601929160260563305670719985168193059460197933522692836073399677781901053369309090237807564074615955699959112019584206366150744520342331131012379504493537172459899609174629563864360001296019260877189830567516539174075406994335081961477492434818712235666818448185141556650308606689164962125753478565699384923237220803026246188344563194562299837553900256292990127316808726848398252415331589889870646679447075604358892611615136343456689643017833864983129787458102846014888168039957539358815789344100770234407813523424685110661799800521849830291614408436903699273436539048867896058173279242905973371618023063654755850683225319284275625688768212436517017053215752341131499812233255731463412095475410479918468539272261445540691356841282823357805550678218105448497021848276414424484094639801467912504810021454544894857525429006122756608531114399679625485013709099891320949088186674370762477729133048466149186695271768143105663172000740906379787026149015749020155336969104999019948646067542595991408596162575825117397426688789041202304512021870423771746030761810760152834671146176014903464517710355998239932617553105266405342159609680311705278838415043878580230797218895926325837734778840025075932419854596474514645545967423734355745453913229930369608090404668755540416709829508225332540927481019830423822032227020759727241281861800888848252783562139279500942568132082848537315850938147162980633873675303097016074094720313578439235868850715221797088327113683647635364126502721054122580494512950659175989773498482804373153156307531353580331330074445723184280802115123627975657822318254764149931582095427025256229789968946203286165988624920476920206845161831707644801805170822571170871316053590393443271780347434485397857766935116685856270114217840885185198303726173507445147046060951746692692127054702973639014729742477454680020293863739186945926440173601322172072311372790252627759567862255650561473873365011353561760001587139369676659102280478517290269116952073301799256221912761195643787506926431771149799997460709224155429391491302031069090715916622823976980693247152691338016163796785016222433988543832551606526428634953216078789061133345122892335550235641363020700019888696205521265607710691748203540255209437061195358208715657750982066433814275160684659772445124351818349695808581524919902172420840322340430417051642986205898125050326338004229416311966637012670807087285448795640455799936497185737978752174604996687283146738365973126956163674579750165748667568273138859604829643026271350385940560978304709364608897352679447706407617519098346418957939265153230589599746054992857519455401025192790595470830018109191035530178803380312316103498100506077277406134279917767291524154939440592728519901732793185222127500106299586394304321543917269735088651441578353351501253360860928479598226260345932938220553180104457301820405472093045979387289973071968292000445155728842159100141504712567578735046726794425518909892892493260352609160229903215821163130643031953704334289357840081686991112395449860616645202399972446670684920204591045148014947083685533292573392713645699593612357606608511006032017804161313475021146810189400653581243980777431721187142139630120267039125362785906512677133807866281071194081568671202240684837685645717948143275389880294775352210027359838418913958022865972116570905874463423471776071218751813637521325854280406800957204867470531055387884654930850133574617684825124167765074631996675797402245139759574223225815584442790610869467268459903973211925567261425365210776728265485402899670729512227907088282132612218728613790056345325639905190181676807325148058016123162265375325343071842682537082074282911516407415852835480513726946154635037889129274924359261991765289445405933850248824998525737284712485160209405005130901358909464258933521588504272547853779813660357411018109775060168019095099660845732941372486457166884229408403261899050727488431644145421254950866570744195786007845642170661526686928627357064189999360929099234919792457484990088369019420654618627011183757465548732730237173637529964135828234076147812227891276563121689818853872966223119402474460539472412527385412806215384358300922343104427706748799161849610548732176526229186213290087244319521073938910575410087626557185975228564351165824306694608695716948853657490332139152114385165285839201433421029086927610006559346318968374669343710932425179407563623173640908235024545534152938570032891840223435407123669341628163656682153905794793213544529847924712599126768152938844946676411701888964899052424556675768310983490486354100607142795489204858508313720244990189157913058330314833967340202946479760741082901162154659530254192711849310062472075716430073322017285326845264400957235394571459931979724564046320078765502340293316806058652355274398614168769194073972035678325341798833522390312553004019808566077331954256173896531063385684340903717514399504652903784549140708983878501257248014735777038560950307649491682805886109292497506264535114468755034397728843296879218678909271958251499984549716236961502054918314216979963187614224742401937403187687417546269497111223000408710930101971529239811881797601002724021406819936156651401579607686576616772460317153885174645544303166291735107512570250516436263505844232381562169371234943298394420846229833381325049542408054556457886389913891523971379711751511229548762970556645359896483720350525380966921648171332371802088185020685039857120871497282921246915483248248690691642424611488972640610316880239363570268656171874183344530552891442805769777888625003735131977944177256809291429408537476890653237667495123675107067215435931025079577345394395790495845516268010703241236827747552144172675080544449576474689854926571077532484315659883970123828098104858916024646966446082353119475513775567842270711780123071326484663085265841611858900387826683649193417545442753630728166967623299012457573453538860708424579873765034210682823811970454744588724861629184855670427983992215663197854000697630929962949561280599570482605508345184364292208709112677731406146653257482013994316281789473324467657835148962623513499321478192471718793171391805026221820037912337686454795032560346871582415957700603799082000134654060459707528056873413701952918960062933277728850833054884394655634582597105304820548069275597896032916794751815843942549667671248102803340027420594746819474776270441643800685173581435478327540990392426108625451592866846801417244364898021964775771499923559002547673075744066862775948358921683320337616959022693379340329307721468487868385652231094653202147963719576262749942081818043049949539328220298980077315105244043335879238145608251960697639003243762538764184215385152239488022942330912907308895993848267827221163642596770370808900975295832195091103586419919923979570679841663355133470117604168607674688631461145635761775713051490196815158168480683475823570073293184814435344692215187468734812060246555713111495033554399726438935056917401261860273072617548342893736275407127297718030077425238691235848506958715903782264237732684278319095504466658489669485859795061018123217663270508878501812962702494025805422302170685798860702511974255359068604127715996084480759855435855788644923667546255663937341141529759830577716777812144701399224854770942120805943677013386231313770911502438451247261278063067381984232861673675205627247579268776016165341388572796091435274907564456460647510094008734439805905875522438866574845992929224579716765237554061701180069242894934835488116911411169372313831026662949895205993033184106722257092527550851360773671136108126417820389113885586414910449040963468137964066833308204904994144803227909319143484920805906774127256185529043230958309771800059563052068896249166104047506903019356490667463206660098921819172277473745312932589795725786321892065988148905192967920400284170576908862302456803867135055935559023630938029932422626594266216100454490354236577160683871145624225538898424415070012734631764109386416885926956364768863268991035955917328384976535305633548724728516224703075612724040605132735477548480958463741050448046514853386753047772919402803383717705754738016004461362360415650814410593492154967186928609002779994770470914968297058932627516879049492337571778219549902242432546212666229245601364131587833248301236260640599652137523167187909388768390535712210973894638720526136973768180104574794835404777639628578778104469628990333368812222535995969163677718955689088266573785761891000333535400175889647128231328238513936308724294506918270860343479622156651688378471726351736844498156003070919345527107857526279269412804597043393893338565756639138126446979942575132020500629682239822851601466780460234627958033713996276397439955205275652737149730765518028788612713687586689867325697184700652251362398313088880317058109989907473914931436179205147446753055050253606833906116634863501581018809889720497695273468636948834034289920442583735633382618413131724060318928415488485123698908484327906674000445433808105209261728451441633677015860822273088634980638310501009950804848519542249260587949951725809587617634422541170803038226403476851983387616781240512215147516461103029563806266371427642859857119524147545277150416695654358919655226517184265305394323459243319001094428148044200274176721682976169763233686581188720538413206111471205220364904839062221812747124163673152103569576803123489945557460055025451234968521840282353178367991845679711197428050381876365312348354714480328269867279178941363409274130885523132756815249238297603625065829799008136070882204708639808694626514839087163381565836066703932631098919606706151887596712151691482888282477796070157741797712397689892531190605283847661577687962929335732582421428373959171612805697874399782981405642823903391324082546194399813917840364753504229202282029375622131935786617965499830891613948002423831832690049060352156917465251527799590269119622300300010801841403561948768532974827290118196126291354788241798671301884578772483353037130972158531701739773170844599839504079959109527294467605919292223701601399814814361684679813236377497123847319022287759392969585368114127218529459889294459437671683412871328380704933278960832008037344054976132883870928634986402640055637804913090970355941898146469980585555790386621236706152724530126514228661391508665576817936003889016294131964715112909184986179622641567477663053271471638101954246624490344785737410097859784075990565213121902639427760550399540990303148242014213411329632451131699599886240904305053976788928544782776181219720072813288763657195717348239918760051270051565303774272169198484875488864728908865049967431942485793119568174260338450021668915764404861461591947766901561343843859036229137219817617123158589714625179125444189038715358263324369396406993448528712155243080177467143675867969678266822481220051554435071014804099259543864230443626337580272147396774908534128382485427627313986604435477035829426277644940927455163536511277155819923209112358105810722820430904266491387818597911931546529998563686726148767991379970152258836409684701220159395380735214020607077557685098800965031469583982299588959461298444496912865732749234536688231591189185229400461245751153773696490370897270549417327100233506358103761938862983164778418035317270696338309875442122323327085963912450650425546362609444599026913242208750311983879609147742665885796437750674094303962424700879125878530360228257075134110501508929116210850490179772958482448971629453192955819547703674840233115081025500093930123119092954112853062469985805606780803885496532447950763263260007816139045395394104160399314911765759757283234840063194531638375412964114642955859829096775948553999754004733284946105795881129638664793832304225778305741031473851885674848410578405805036224098161867059615815292590836852323147806172075696705007138058123785384548790523697749183223288843210218452171746340798548661340188291579070511022989521924089923235167047538481279650875285318953446946545105006499248832736317182214193909307339847870896134351418974407111545785481598424775752527033490443765947650930197709866806553116165087928362810049740941662672993634439952203980832759535766185259667002986097554502731639478748244065720112489140507181281381474417691085553606211363172044417588897009570101810111468835450283115280714421826284875795556164967085274288164248743967784924440529076034601410966447878738943938035571706676515885724554059108006642001632296103480153233281353412441845591305829158111214975377145975952242181381355113802597037053015550336867238596373973864337152270016626901123745920700361742340635170877155866621720940796594100113790000726322646041472195270780912773688287109156044144545477527411585866099841864227546989626135097187354446017394818682904423187601936509009618701007317254932140381821628451346218677986885237231256663588869445718862018910463617278862178081665568002101887838288321275691951592274966664410030583095310975400032962412457209394031143319148977620456222230713218052905879443296582385374656134892393922136418861243997609198027387689267378905425138514263579447800674918668208426001094871246862690936580954188002746129919705896324398441973006794881843687688821113496063236250054923064212418069564474672560524953898545053958264550244406941469959971699639188119078782035184218765855406332761854360028960620896282313291150483750856124482994605217412259868305997003366193484731757342118088753241703721570636488908067978659446343172048169324975259366772068850436826559121117816591283043518923186541346353404452862313399407528012040532504065276792200335473144539006431142289674121463046233567456037772471122308625918840288036617247422371904875385299400861184867678697334723382352722487808147750817687351700171438105048203507277084039502556005942573362271417005479706597036564585218519471577592029390532301561813817719548388691859239762346332038324482288983760801260402471000111933496435238749632154846900574412918634221570743659416122863946825565956542525419389487737389914865673687061894230020955923292778584099234291104706870827694541742423182790267725529665241930491082264381611970526775742991450175798844870153083390707655104795575287640810814914758563097823758705238946594440642837506681920680531619457992467790219677142115630901699145209587203032601874313836666301588594824328888628756346929747687063897783077352445675645874562111221633926408057779625586540250455492339239029583321240637084721766232118741861765370585958170095381234431269592476499254089134715512622927589574674863219583474571118770934725141678245455881494768566402466305704054858703320977742716935335522446278389938439457865727732849210794919744533076001329860902327667597905119651934207765985502589775391191961264805772178250487737937449173099034334343536570523030924210913552294599154554455634884179431234665997665578249861018481697584517669200294238257346190533408525122097066119162801979988157320187932488357973438493177573471261901150410073810263029251827385002299648723581749438260989109806053143181660811908729339846644303147736043061033845284718107665842880844040722904325512676617894717537228194800946921831941415354334272252035841956828952911508748378599170388780938611128183822262858498509119786218887363205587205162981302256887077676182217153220962715966458481254923059726224071238985472863962389375421491061376005626567331865941432375379213737440904810680005171808406219880676028467974538673517563278633382704511334016993013492156195935575182881258889667262211505428294954855805640887464266399949662578490532531346172532389777334117076199567938832959428224839642345947676101964587211173860337448826836677233834433586830254067516291669505942522913300688139277156290968851336202726535037595547623695296179088173670115522621223626838490428034390079826666612957565485559686708712929454724317152032936792058473217193506101219270939732955632699045842290668440288595515969804941753812694702989872185370539354651569286679289199873083829193766229728899450378553994140964317742346711143631162778219170036431920516872609174929187729779194660931690447382059804326566012229486801978250294735998479476461887825884319559712067496774187837048588631439163523687461735690337066930512284061134801643898800052701141479598555586708523471231602886090437439286950445339059290697121130753521826627040424347220866724642623601905815719879807815466453380059080999214420418675682875539000449486526627828086672940867619801361306057799764804466755116920467245390504208383991237219996932838402178155443294164844959645580144940220492004532842435481204218116932157911431018997191242621965388498126614833613427924008673723325326771470510779748991701926116460417585892737257292191136707167995693046947890477873679183095114505347370297062123597003236292250465189011306324859432939913253346674989023469176704424844787932795244093818234298400446539935294514906004797801005240877324070939641732120075267603027623928010067428156953473677799889899377634842710428064607525786618269810068166726559272009172345597667720103034125491008966459652592071511511034217471184334865788021334263564047551520787633344218929072546609860789769199519581276263374755429235662971165124570213005018765195922884526302912709209774238449674920392944047893335253752149828034178314957769802356325316162934430993161900836403594385398475133924097789973884002182797864177886563512961841400206832469818028051341672654802493379633366368211067035096168747741079360129086046645554652491443610354137333258404313214090120110001302485963116720326124055588962564333012948695530758779657034273689413684280882418170680426899009321875326854541924177221023132713900143365833592021192376430385205321866934694457519888331607282428240320351680927502340226205394932590737958580295521393091911956864033851570960016399730829613098668864714627758041084551600500081155810797735247696225257869603650160263271141329530391136124587175736342252217607307641262066567829357311874888335506070120538368315174559780452967793458466228629024738878604131111539275620490952061647872632312442351496275181303643778005899390475089792493379758221668203306903794885455350121411624235601452356209662872276106470138025854786577909482575188208984639887168320745255331593054798751009643372251450100888631300599629775058477585035540371120291477656570866976817105689357071274461976408255003227271742721279739123914853827719564613940102236883920228295436989208833354503215567657626109707725975528253218180173805634161179425440112799135452005282810401387690881684896517220718882092954238239489834774487779258010575702809887555355122271579356641933212339522781592611939731622246387907517478136478917958224204864581538026727813912049457507211293859849341109472566032701005103158921137522865423956237833219186800676135967749792823478809255435973738036713316995824817465926632443998477091737153151014896590095771529831105850622410772240427160863298963804159983685267105669644116510269104126996800799134213416258465796939275484217683881572756146928284781068913071071868313785744923329752566950827221823960990020880876188788237090350888048921051354120634750370733028657822711726500663865511642382234242142027376740869623648132298887848435441678496690481835859727731837044003575568102013646609087642434552867114723190577149706161291101225088977308717350070665188095701811419153994848353791683374656384617208124439684820727936281344168482083740146458055418663418369565790994016407027437937793792546937089462885064655668797534520021509293560672934747609133613491007699706414816530241871887337535267686713539566196686013908449058217374502175189180062168097573018396545159194436523058158341386412343010989856920838897919417055070807240780208163795211825375842627708483457415377474208481883868713336878963085235009758457772201648699268464594592848427027774394481586636911683067359449281238868409091239063853150479017446286410047648562240246926555606515734759768940714133122059556107467020815728066261574938451753376101056535983696255101227897789069260460097332573188036830555782158650569892021850625162963091524706357496796694139447242539666165934960907056418201491860273563128268487091612321200352046790680547526004226732034500955647977096099430403919670134961643344228515310735810769526577955444313807436852252497694898920261147717231475445210854543547700397214539949828142028128279355331962531772657311587082799513176090418514076523834333802357063630546271572297489288878983523273928490891059983073025537826672822982500115808345389768389033429530173772008342478564421057376500137116928212202209913224304682247327475165356234736863286400368518960953978919430067010815337078620586653639598017276646091217012340459035016665090863298538926462120173808582760520719002228845817691374078849858899875543459953420033154765802638591996298208945055646511437503928792549187394303336789892887008040185612739121289995126588329187913407553205625173301551764819617135577256485877832737606469005516488948672294215418173590152554788748083792596839701177361591079016185243690987340044885474808495519789847365840486752610689421743074191291990370341416241796306138812772525313447961807138654144220049159933762598522658662175741709708687754858312449265869086720038095340924761142701653866854437762280671065750323820487742632956306028883607923245322423143497739856355086243049044231413043239499141790515133556200018972769610107988153248399183116074409800150587255113065141313714495576390113194036175069104759827506367803018481917613706360723766791099824978624365606350033400411319425229600323498212223292070952121614878106955931761120493683748190079288083654831076654533996198354399534981678808790532385634389773152109530101578338603167677586348279557235776172333933369144818684215113331858052535878637269235003196424561383900934190245524594053538719645934010629917955627762197300871918367136397160897821673690359587085143642070496410311882574509539198690177907206238774803614033772570890787816553714707700387488528472007531457395811787050334589938886113608921260615616675680721349930389560246850459224237746985212258201490611006278912913122095997135283416311698281571602190314152586888911011997784122575965149053628424516064726368065060657863644676409016188381985457484516142375605308851835279751221672738073654670495747759013807885044544512585920597097487069274164436057896336029835883068149032399789035997677657929270671787720983134963392869947416095487231003133584991074913787968195493991003692898455755219094353632218080121368517530659437425924986272851192709831368265978607347283293141544863035066507666001379812511061897579458404079677324419853062104130884669477070919689515200713468157207143496166218488171060418812777769891378372829157262923024176204893925962113134206363139154369163412999316322247357992116599571150248057096009332257921093685716440182927128897965314114091211713242947739430376672938970409053395087983397647998725185374218250123455701826628199927654419510412081996944014868497329040038086967812315649560553883522956460688889476362911762604518223510211156040768455502260756363116620476494299611391596484383152002483966821114901660653475622568220714652893460694483379175101620220987147384220239671499489989833866131369945717730283338539645184760742752179665074247834080157344301793213640114106571148005996743066470175995132384724445806864685115464362101984990237061988334970858846441584898772356958599521580536475822417268292158650496479878776318778937500538424540636675371487078301723019720960085119085053126714749447057421212960989759551671302105327835571387115291059253905207672153286708547700099670064939830200504130163195762479153425322548028366984631557274642823337660988259408327441957045018161944833499738500306582886055557863595766954303655017083363520457479445441586954756119248042313544082911501953829066743288808602805811280143371021401687578062363245901133474981563911876670915412455755629995677669530494708924661115758457027059644613029312191876968914285917436383925755329277609311244662624875440932907704700567431189630098425336420880133210468197978502671656529562647546349532391577029274569247920990154957863919476492924433584331834673807565429221926994181848369374875432385127044964621142036746233605567118401195642449581164130138584111783711360640463108021870708199854027469250923283177350919401167013662107191894217487559529511854764388835513835479831616044257575108368748994921114825390548858577269147107608440697352375267797835070702105523121956638037348866386843965773793789310567461070893009668409534721225555476099818937925194903790968434736934560370724112278957442085212673376864287807831266598096902749130797944736537103035980008812306037517196075182140424321020887609300397371062052404065785612780671204108443303682138209812715703249351193240639072271002080944496157391555628763153449461370901460810091003168604595832197701307500901265614126285991160751359936340391998911848205488398921001884559037262506375364713528924352824833211320533019723706704211464712113197733480968191332643096699388273025702998874377040693517157759147537485544936755580192775215134129687267990504743328029484032919624763342049349876644478381585836316647193198245445540863566895539085135132887654175249398414723655519178821634567242695121135133371066606856218688663665088032553188736528897241756570418766522721256008315665355264784880353601176371351671408513626855286626300142430405038198002931405655480771039533847622599932602217432275194798929047159524048733511836635639548687441155208496583054293059216265661179603408760377617207155066255865814399537616316750072411076703288443218981587218748023003182124730509336800954968688050402785367370341220663411063844373653047472949575027779695654750010363694285842956515237948482181094972865600033887632619364400797682957402735117237477244188942712880250860957449054648360798322110084604229686112670790887709360980109477433682992411808457494378133479672227504959429592414415111130014889709097174910411409502424748487695528773543518755566438226613968828702600792452029558886245097161286144903164782740883642013308802947907894364009556567885095271938534522066969494300357149656894284128582526613839280539326725362043227180484610958171656263634823011529875973938918776213713561850513170191717276088013965838962722998394237795061757661684861784671773639182271018348494758108370184099153159233389083523470552904059043709411994537044661148359738428115141374139509521713555872718426698674633940072763064762303715001613609764729630614712764414388129340391487761950577794958601160515034493936747901080784242768540468529842172615279375112002438507536919294419132385114157678443158768286703024307399183307150341175045978773540570070688743313118074168966134575498454400463483623786102490410101101272613518241178396684945013268944326162758080256908367265928692500626883090952862049560864035435750720885812738092877829728874663655700913060533881273770509142601373131577780634723939510187591713709603546374117506389229290986917654045595144113532417215875313892504616257270955992942595901191710317720856710217847395698513788761022493533018849209869359153172942965120546416499804327613061093350852605001445071215183162097666472541524536682835132729117880107836226001779362373341143936337280545749839824845205270016379956632898849286342182823052993762466785744501546462358135845477562667544034106804969123633937222758238273352835249910407899644538864085450127677141066037824601882116867932370375579363395584244888876427869094263650913457043059165177346274150836788545130997618741641351066326077548290408815988383533984404443888389289704687342365249664827362160481322049638768723466201298222899057667837659311147540131051960953011929745081055526813779440040889565295590500541108335183203956914590801039483259301196694710833570806672638053368031541591016894515537395186407777895853909752873826023338492649185336724846321222404671645436287337695931322359809675348795160672344509779734465409760317047292985985712770758470287657606355726735739340407686849785186435307236328430184201340946852968023508238469366168275312757169139641795400850206824666882765677939083723800233525025514930878933534829833479810998135785331899397037103800916704382161016990897709205173122097788168431797106414723610718200544905946868215479515212785051982673968613277074554702160493436291319378235168236462222641035681940103104354925288029696041040737748948374511333133804867353112958228877604890866268819172671740461988864841054121520936073311186185781778127087482017781242238125531048320816277188146608134230703480798703521582212441411383531860579868342342140585291697493884561960273395091274436671820020511785537958470527823250075748026618650596959541572897514874256928447913503054320196815361990129327664294594632396301254616865915588444165347852987433622399789906798179863561520700621559928766360846481367975658064665929594914736610016072099578463990367386381460933434217242715206611874479851804915101379748113028330078068060506425531294409848064707212772572905554734245095387833963338934391800048145214695663655274949828101406751209590928177912716429395282968240679903121882107627828077123077841491632580315384023355270973410891342665994528557746124011019408019564321405301684225293376993995189087532380680084586040222250292395267898533159601954510171772339101621950630258510554677776394693641261189003991732283007402898497019961723501958513021259404625717115548056054558313904733319114895330783520335904992594446825803559496052169566252989533660876566535437962022065231752499344645763134272032029745032736586274034000450392642515717707632176593905763038704988333604673701376468232255554122861066193790443230600234516237394508574337136165020022810019915534521267530501614092322361718293429296425448883070082574817632374241769768098438873486239989347381381690392197454262440554465415454928718429138812269356789182331335114864701270544281432502020607255973511070112477992474402070568573147596827800660730188114313304921350720972475426954490839210719713408245379100484281043850225596777237394396911480395502427043325097301340354695307136341676954662137818939435537641861844676780363924080856838029343285028843904399299563423317994876222638687178568967008934687257163074777910043478778891955168840651432711286211499439658231141875760325591259609845460321873021845543514141364499627303263372214629879005613311231218053757796347273220409799442768833284400343387744074042040315894049642717055488109972180842868697390766608030108694167474814522000917191294152461304753135126372516163316526025985682607996152246098454973572884345063073323014479400335117719362184896148709519478423473076715636058963122215868481429521525820035672879643685707679272534780588940052839945658287679884471548150323579640323304894446602482665325002586706614274849358673684060273676119980996854356424303590556870882787970603069123570882572088252000004220197539025490821325317609287076928384179704425587525064943170420025047437063286529301221037612812923899526937414687553177226933402620514362459471283211407120964689934177101958682027559508470358692454540609183140432524481762133033446905452889647016668088874113277296729166924748973426452485597150425791110046034519859081562500911486939427362844954769819792229193532737392438967450879334543345288972527318688052465406176674337063691604086100301080249483422728702176264867301696725489672682707669226902666778615681676429660054899906155812586557103935023405019291921800964960009725153010704690019623616840263921034075486018602159216781735553975899952806013780135499429117719512853830427906346909364675870520098052112764069162042693463762968639743158943090387527376395385540065275708217452203317639065328791398672081656124710139228908590163132396538783268145757590446641398066759642614900833386815297272695650925550953848048808303981266511882722916555914381495069682564521023983973683896756815346902336365880965042704686348992527003563424059467375152862254286262999591343839015316112914701720367836838284651943984966552856279038489111978411908034907577836703646463042227971200445675602895473634915879956551307298683438984438110518359315399948567412034854455281917479459437689242531686292549380222566216534694663848748105215788131924356219229214483239874833331080047015054178602148654258882161556052305471429968782868797515039726661497426500661961187084549033956311125286353334238641516097305542728182159147219290912531135320122360663884373244603091239715240023783830472916874092583536765801094113789941952148478002710960265577612804191883572025256377294099695369375059903930469725370041413489283159747949162653417666044263142065751304218833926168430745352856066353132419338571959722044270821829365499393476579962130736903219230940124139127018130119947650379756986360956674681388151340628293797091247016507338205000498682773919478024973691195342288643215641960795381660719887039123560373044708335450162164363755759259948107379743922233193369353711759664846342779426032465860782922333065571803146708613591390500409063884879297518447914733612505560725224078668160674000076305508483902213127054458682179877832635549715572107501839897197931677932568671291789490781536902784333248248993187339079380594256470331963177218132331574749656978170729787770148487151927215032335016375894985733479177450454761282372462667272526552254995680522150650154463315013733145155149816181844531280331154135473232788056641377312934010850283446204985694366259116208750115534477429745883835731924654186587388793930147113003675185563539214539624720818093996424429767181026179686838779190017949354138392189320604320874035901666299060857317649337094312724305040364374348793002232457628231588711434228768201298623943780676891872852919116084086105560877833278035149683056516001634981331595431018811632122785326520329945968815604375718596571035779328217157501104057212375045047357569958139628440459410836046386782536186923344425608778348234530137452404292637934856989915448263184078058741510378596652170478706312824026755750335414430807422514924455672881308206858064450961878146763106977204352068602200300863339306784609529157375280021933494316808066645472605679695219741060519357281110771902079862863834177904146895211995815997183347701115690963467494761074445334766952747500930809909532591446745912774303172182728250588081354528438845369898168803041849738785497518599210837535864697545744578068380140556340058746354728550182190977326301648275604109874129761242721199926259599886568574115328286146729780110068186502598890734867313657485009341558788495617085510733746805991269564230542655291086235265580740010960722523818364863490805927991884069301136295703293954436249622850518907640540803271554706163857568356044748875908495455750371078950944108247570273401119993480195809263946382195702113090032027533827224278636413422234828172490993608685531817256123230722783012656381292066332463794669100934259955230550973042084801688587812588876616044284168585395311163803987106538035361003579060573119530783321940932056916693941009403894711904995823987328186567986295320632988241219089993314388473033435135903359748038794633541377299993019979876969034680440698152892077367003117983443547419342772965129712203767329994186301743470076060980580463043187068725935759445873102276577552390442250828180918701111051827841653712714601242616395934537203161880305372798430291672751397520203169528782686578359999555813127252529237396906094872891733571804632877334806782266617433400276226884574014929924564467446645469557084205176382988271209570195245133026275369115516271118257212806287127317859444953488347864030883040665054542104931932963511757821538304783537850075055285005567072025052896002741288589071733671429387186995322773162626905151598215555320975130308033203978604447920572331441840738035860916860688264325670185026305368704400242728879335472722263950989401509719973118643746441376974427872287107632840873839564796599218703984818958282730828798897510797033791722501207056939750013198178254775045418129433899370834445127287725026821764774267551193193934471169962526446358632969121401532751000584499389481557750038678135191528588847398606519239758813728577877907635999473997230847037722446431081337204236363650769990841606993526163277990417174994514951905452243342934480979247327808056422236511531094004165934034807572750671204424584680013684143843801515647187583367634426157141862524179120203842347980162427115505579136464364453052026617749169214254161193995884638550155851146131388473125888360872179540539687938600430271295711390256379783149353204554634197932314134927130122086211637076135602609518217975623652907402567082391749589812882878710868545445325402096970847918688420522920017050729729679326584630685628331470423345386955726257660510427243731143252661989750302568055408369523930349849499861861018635481784969896474646540545334552247822325705194520840338130083232414950926284499913735981191851354559497781318536698372845709564913191127105117623351045249376466128287549297855035708982918355065590999406451291344242976251068757501412226667278209905329206403293946771615743718920375164639748074119270324614684053521645978485969501695573638172519283041494470072168071991531788927316941537983826027635228453212743209615268979196375308180734555038234513245672263757993063606246841983390463512755124639959112270608692077239116305099995437134170272368411146213965671911846913870849729686912466745522416380841780179721989281007867543598564254235317984471592832995232214246734372108880073132120528243679118716990202754087462295267196256930912113791520655770030071394597318777881830043682942938267840384467320837409461653032119477535159772765010004960300952713390874200222707834138927301199089633025331384022524295027599557539307044989154855296635472713520167196087902298120025926429177213672964668429953403288644501608452206227527807101662953446090934405160966109647334225905648180900064236097649935404206479624669520174258117345555454280185732450049663423668956179722818953679868211970494905162673013204648174042746805223639996999750312630435808569138559454118101999053521539805030741816658272361263957268140097818237601299074690285329691921233972092439444323028660490122065023854942314237949912094125932841625848448458528379057962338137295246550235989480049061577217039287168861635198562614078263853230501362973244874989931540239374297690268333973221531929750259943459171567705414158945352928800318350365008928212755329977173770811875755592956693392245918513007466947701607100024817883101008373156028997838109229517543296361181764293371576248731814755934328752189365439060280147584272299813079895302951963153402116432384790659903276564780761997151275877482539985206949030139775812734789213478801018199426291657146000120257371103112670090132553174451785356496111486872695448069947715035815190530291876463917502566333700449647438487617951289503434264375210409267372527056034845513404901181929646492333930829293513519813839385869508689519522494924906360773680550624254046518783443602471493755807261305697437955304510909371099615351885640453685076477096140056522296553834451224377680872990781216101771615925480655164328931188617663159434084916689568028424599051290675465571355681533029394899565882005337792173516184307486428808569042816796254233124777101066256627222767818193003520185051589307261731417194439756685271069876874197282331641560829050588520752044107882459043248785554492505622143652448581895175894507355586521333520184125187723226354316528466784668338674413704211840642702828602451649029743221307770775720788348693043463275759874004719955115531500563022852049405773707200239683312765095402473647128255018860638200054743178975533355925111377102699070563189888095968587429026197506021539000756892019988086621442972207031948241605603904890996656212608210667738066032307350346911607517488877859637358081106285764774286945245650662945763804508714340305270451545819145319651404651320914588345285534055239039990399281163460566439794165104899610742094166349282401662245544950329104183428487888864520839477636613063822721167156609941690928784299234361616124699624836479767640486270637532193222968926966601438832385355232582740631201145248972969239568873433502451911957302846708926115066486500607398179759036102177447832491730277746286089176352280746097352122381700956854713126453557399977587914840400814487280849584163006600305833045126596542918687495888031858391492707051259797169394881418993439567244036078839312975672375762044545309368989823595214026769568299724819026581203343463500054355891962117075800140218081151387824663829333662720375183499372140793653003393650561011700167151695688652281975075514233613513773265936944354706451144475671782777851097080594167864521038058858575729262636773450663977741247555259930811289121243141224676039112039203321922259407540178667600685366970860464786393398391577166583186606825744406408056238490680981208346562631184809923698107299644632338267203640932420977057789711410134577964120397920170033651790432689358824065224798307420926004376894535836864096378078874873642758732232294241211407105951265757841769796936604630658026381253554674136427841612850863285732281206216730789526015172183293334282056377824809107341324591872756951058841201735684160730923567961158372044874798966500783545415276396752529576875319125899146646782638315233086177022811856624877517563742971297172687164307548267418987317027761933918425872700009919728125925735739879867845350635362090978815044424604674893803831467537771043869536837761121711952321363351846018189154612871417903533523024605631323303889349552601759372592642833988007332987501671384625469329781648371900928624526240199259889059311541754047895702264719330898768630871513790570294626392268854755411489609461739479130041676502528503994012586257291478838433232679523844052991122688442819342361248909137496097441247072414451134384746393569859982365605569648172611628241138864895392641690400924797625593805667170005383642975581089747043885059794109773850392095230544020483100468666134733810834430337266825535625447923312578525045435496940700419660141545535702843995207150053563351537791650006379506019897585213269562993903684669760853086395568243003021721944988185893992085087466961626971782672735068919656597384926966240405406812454572121935044395941148878727794102011965713464341194710258462863994489659622078288919084589313784025720780590367695665943788014709423560186889879268793960947147117352603136800247731521147341696437514835280479958135107777725398365893490832466918852178051978492408919414104762940272523818302949095691447179937549505001349719782680029301675522953021494085004111276949657030995129087014534002162956157613637376761393658824458039988353301676232690760463839690552996466727886708505946760114950750289336358754061373925860588159270844358931424988782046400634286054661167412897241196663368451018902449710600742922130163763926124928904303027484310426385395847885658524732159985356722374509894912326230253624396137811513191379992858909918098448762873606024773701264157635009355830531770162717238835953161254671378300790705405971638787263039143870104387329320967973329182204952307629311087336092077252770772374638893872576681163562749776630999814545621831850872832343360653778462048838323013336415920116401413017068903662528922229757318633085836498009864292781417727907616085735566168972275451110820761387267112530249197803179136350395125971640805400808674907822333864829875190782121504797735789433075259731294897988395433358489870263384759725960395573749309950427200740296543511376660257671335187219108072318059061174078046732422559857474648379414363471716234143980780818360714696816568659978087382134625113057324342620384970438003215478986303248531368365999315019614093443446402559849496624165004284355215063027143269675584096434664529778392935059436576844948364127181177426026464226365440483688901294322533089397588691899897396843281204018900557190299414490009820956995068359041335074907259848950814426193074707363959011613885434743977737322009194635026428954223758074218921635847497731698848773717231915324435964087735329402493508641991103646056983667981287927822597976213066687682559162963798743923074531195564609098067174353608012835321397911980427257120869626888780650382343846234863530799971016983019964803600741870216126199578924442995892178854297333311008867072215166883357624920090103110099760909806652526686444238443607669638591774789155455840207953177509085144452785132372162996374483825050296303249937228823593468535268692212159241403930198463699258733075355064946828749180137523241581502022843582922605621149563557408874092904827411367996061715595844437095177080546253928151438246362036415294103662710738159806966756583135830326526587395277547457906801710739642236195282199792123856570982265371866417592973906296544351765145045653531117055191777223690599951209289545936938504377189008340543632132650279087013670013797949825020573174711047080988235304993334118983292350098021712813357671040360844315740978163064279658416672936900099294229651387028721893380844677557968908231706002028641343776990752263406714604225789523896775224316785133268892385769596702416692124200225783935734707363664828252270998376661759849700026232274686882162581190390379637129454015805314069442559530659768498999649133963475087502179907529242955415998996798038684667053743779137232004734048172387700963243028863600147512368740044980281237956121295442777961050196603974617786348874999921449626291157636232384248437774233314595347718981064170105420402203912612497806627963134959585735479823284174989546398607405206345760807633104099797460555141959144165630574915813143346247607823613420285121397415103971802296071997429244597450376783284477492511553047177286438157651641697833276535188900532449923388358779858578579951165421102772841290180505113807651502719143257500798583814364900397601753398660287968889941491586607126520437096941038271971850724650248739569497402895748030330736823644276149531395504064276396033330453793766617828784446270636106363454075889569529691465154997883680509183309890112214742933088426691644661794209424639092083235846137681170186687952130296376364295179280245425880659781142906821899721404579935406943935278656587564322186932676930129191680553672317952848206633947312090182368431672410909018320948691720571329334718488379819915215752222399985082893711406940116494666586657429271338057124886540111284321544401615763836747452619832621306048192341589088578060456354314919620589482003940657789766891348501644283491632819998157123719323733466726817344264229540076154651490093538097281448658602914494503440936431228524228271532071548933256142580336597622260306240068214653587281891255241242874983418084665812469020585694100282674284523710667950513544445050847570420332510618906553018545064854234863476584168040504249717267258693851016198705759298687701743495524227542889964605146217495175436010416310648162077983094691406769250866992481965570009701698713299274043540069330719765360795123527121985519759759258683221959799984204337779439079671898209971636997136005955457007048256392532202420225370327794842580711094616030330264099864873807970752658133299268491315373175957131977262763670112631995747765553744198927991598122240370186718056328045145564437957341506473312244035447964409838946771956451514083481120801096193635311693176647698335132125830701897436583562841975580112723866232453698226988945083243174727228246863811172838600340875635733826589605391079601051747159535381723118196803572052659898636380875985755366867338136406070341295586700601395761309291331851962192484595037465914109544758266457840299082106480188107862996962921203069681364249157173489262796324224659948167475518954221495307686352494560126707076519661243393307257939855746284382964820127238312009045462337395491241061728886300887567457136944235047343198148634126714846744136833395300413301040529833035609562619704665872959745697235395300434502061621637111466277506155446285238024542352258465746013835234071394130216137346227845283325189541067663833606281562265781249232595173051537790341316115035424876464998140198945921370288830257945150459339838150867758183508688595368031597832213005224808952849504099585488122864581924521453730716963246663262525635819224978016199514734159665317025207166928790186894471012791318862086313705322530018767488721467137523651052671416973962384846649841396469560130010437912767424989559685239038629788233895881274564497802079033064898925556605213958155098439925204442005559953799394728102400882473528000975066724078930990047547254519709628321352223544096373011776832075474492167558057255880352737838364079150006420360090765437383515509221789667978297255842379399616716362103046094664932923920719655010502910233812824435224406117636919470269419520552210666383629068159555674863102645132718185260279935590975298967739434775762779159764949643292570495320838356973322336287160756315106856593224142095430552399775727967896204225806432457176271385694434268134129976379509223078698965603687651921994980241649795643305801362866830302219225904303108853351866699886897465971314019186015983650347045201138413131408444156463934504361440060364810796310533358204800425236814160925822749482428013233801436615966405011672911464705032474667805889522530143037981648598509962030023956042024500767906616131255771368939946100324727716209110234598898825934579196399399278396306587580021987742458528726486159119125393688165605897150274491496329658267145063662105368845455563405176376290569821585113954567615597773435640823266833536237596871888514578607277102638352780033300856247835427533151179782088995342668622686888862637364953253073852288898447761204042484857951531537721653505465125873099446244437664742523346111236203927509597093922350437099163025573194355212808841236586655804983926667546803686490447258818201758704581168485926820877142788896290484189771992382317808143069026254441135162708486795407372311800415157805242869655168266396969510115541113797109601957263195533390147562302770328196196167395980556969497197432473645173321699937804100046972590920554250061642792674816038862040944987364297109945736972028899864734984707295685529274234324595329208735971256893340693469446465287609370595462204655381964075472539902703990593310641779245303468940012698806580573376053681151578696620844706022070866294632394828039559312978902121288389171180493847965514831534485799068459935576005676000593871701080264638964870109014397363344553555020570916005816583588987218224016493519853182339735471617456358464112844995949443253128139644145420508385991572708650235028213124068436664688693308229319792972170988410017082568052678717185348814077909700160538230811850461338592758883737377682547171333973449672895710115925124183421442285558552400085617644472371483133367361241804055239825168154564638173769985495056032778770269269465709417289953980929359657869233930545284324306528320850608358748494346739143272725396721927244370237113450775076845627974004815342006581741482152199116301560277155295624011526462706439853208824754260458134087919184939689681339291016589269240344560608409777043451132945854773670116477979652981423030427650433246638744819026991143741233532297505789077460624430843452091281330781449700817004048389442109299351098467624810495873630021582430476528407906721060632486606168725961464703079509114272948240699597832402640664715725390352193233025756701440788211348205003940286336179579213314984043480047224202538953977927770437576104135801295393770893030486846797232835109130290370506851303934627743642674097287175265825837594394214941224206157686409824754312841629696401786617308526825554042977967343174468581465382764630351686095720526710076251130944094232237415526899258528041205211321505534390551444954076497385414667801363998300500982667157404531862884359530801259730249851927797525694954323935953932585872353676010968141235114036564405020377454833269784236756349483245161015769751759349653181649171958725941824850198269766579965088770288685841220221939947396626823489995912441194519834268086513548645391720968485292238265736332748990926734194081970681963420403006931794967567140323472917190687212792530699399627812426827605020851463105732438632546627872713070252459765011399580312753238143329470489978026872595544064644877658410607295035129817449354902551874413586904447105288279897282406208951304463745910550087364224753098255566979322689301276158040999069402461609362663057232131548952924019444464670399269131336842208072149547272928955822035376224351188741812624062461557079730555627231150247882760571013547133256389641181918135562323975465872595113703315964508924053285509634963387306865712477064179835793132703530813892994888689200671333099274238637711004037551430538308368637930067576033297192030239902812615768154338003732034593145456968907857668935085575766475018566537243700809540206418475729049783640067887083113891488869326415921218517214638670415885656108203159164532968090783436043507701260137129355812005001615228316495578942737316230837775803952672789464554252987908633278354639081638548984365018274114191816693533246848580545860312194152250183889108858582733700315439783584882479702986357981329625377288417572280691667787900285974983774902060518318237130163334544119593403773237502661990705785314140777880172590564555913758503403978169487617679939171604284086940065766397808045352503495891344132297763425418937831234238547676876437314597695878333485969369120235477572812730532563430861686167446119891505582853993124609282703973352818937335970672124568223832895597239104855366528975739931221807330177281531301575468421056291501973091794177455033273917765408533597516959396598522818740887193390005707317926225944199020515560193081925442282877597851023940783463904250968920422084256509550612110518224563551767757912625471269156400169133302158099795872815701019845309167755724162360601098210103002739419173786009146695857146591905133186666362146089398367750031572042643028918058607610182820178913655291105739001610996157406782149675068486058109501039325270474984745625893489519167204482622097876214961865655073477783487772452788739784914721260291616943176971505510504919194559810639315080356007537365841824207211147971282180019003463483440239392689558746892368800891237705207184095925836608359205595389564767223137135340092264103533170268604677122128419200144985414095706631024071893560803031159116116050845357224317245451784786793461812293212019231247511856083757889468545019552347299678790287489224073131859458371018780154390811857718752599675253635887885448894300825965999075935185722385250361697468402954911864986502615733410800856215484208407803129969320202122506190960818313603461651730739404773909064528412292746268459136994207278754902566437371193126670768493623784638101578441727587784122436071827667251059245285995580658898268821253902996499167669649569779945065625947468952732289220214379013589570979903768105966318642460972163491161587940512451738390497294424776512263370946048536048665352079028895311311224554267446651584347593137688971333867626423665736697976573363596885700072961943584349368378891845992907514153179769495804946975647363279986602625709143835174232016234229447067286476557112215486081472019526373728917108844204969422904775555590189694968509499809169359977647896045069965373375974073119385527953299696189300107588353347602003141105622626281579209655563219896352565149234683237507447655505448095890754585309565534462054416837175422202879860037615809582378453959404282475065572450066943621234614162357314693036708875879588758374060751205825534259447855807978180691046128419051122362766021402289903439197841530441329716905347354187736678840139323987217799619168696459101459859554655391501127265567533025394047950848071929995608275120418021369250224374169118782467764064922135624510115790035620174952047938347983727930818995518232281361333159668608238257364669016687942767086980161876479156214415117941777525036767025595540516207094980213234646482134137065002611204499932107141061670912768409812686767100754416373673438531272775658596182912779668095542850206636148117533593238685749087398689157790547662579871903840761437998581254303155628773786410920082996914516124785886296767039784565271629430279408540462000373487687539739790521421641097109283240690645182103032496432380010815726207552463748857790977425473359133793353281209910782580240765025124942670125615467127267552150436826741623563618285987962811507822162007216839100219617663813774324793376210463052807628087729738831102314082390192849312130348439475149715842677528008732133554499451548233773736084652921495307443680279013030248410871873226589323878816643368740444052704587613214498295499597269425003584949170162978055702256167490909349233197900381211942414023315824681119915058337084957712041320147068290870838011015908763660500219536816853096923394123536706669062207598266095900217008530798042658332780141427552785991569925170120491285538616661992480720481909857658056170046549172485695237079838162848019854607881056619674369219774649619793805396963459658873019877273498895699372673794774350812423925692394082134127010920235469290643125006482219945500067566318870507080725019338267607449418222251768331707481798971710699544564507232947419004719699591177576531102924782585400482839454506300523951717660988044422957708538683223579596424060754777482692443578215406900353290458236864025447039883942954130018557322159776384409040303085709004563721210630670070816158179891388521587998025807814082796450006200393534856626604678651909674595924985483588088445685636090731751976587605013852037215644566843814605121841423197855293954948118944346674412373053964816659622998078149685809176295512043568077286946236182973108029863654032408124575647451014297963020230203118253383611934295843637720878382039532478564518036663332433338269593740500722031541830925841418593621384730836982898108792738248244596705310934801770488591310978747534553817090821433741704986426011350238434868438721053598418735078070676804158156429441719812140092234787439505810318489887061681727671169468633287950873740767876338191916738756942939346383831214305342683821344091400620534555434219610114228594296786884170592705836055405329411116554795585209798655487206990121463049617319030880847202729564522572556897624733873262927272323011558673874457769402971824703064160383728394997425859003566795892933861787161337294811436739139344340142384983482947737091440308334206097478962420734154602458913985334904160496707280537326547095340551348247010545723344236024906588501036890074351902206310739517482368281494346169343940645274267796012034178369901098285596305726903834015807549976163975180388740429874852046293516824056154863263134968535740605900036540215422131951072692964189479854176045888400402324405734053866692780200952196910090989414587252131503840727649882242171622719919666690527941587937675571472062325319041646642551054031291208984078165959453303438370985285399357546410468733441072434154301685297307828408144048687061894731586096102239855251291294384282175104677661781672096926523512408065955741301640634346687463375115160605851050894942015315481926109492236598019416254990351730639551756550557070269620686419969464288004380942508357639887408997929511629782218276480907519305456485030623273286809210689904868343356511722783577753431078843214833650383192023719934732203999888115168891502080301247636284398342071679586340762557652651517553564012335101273261672845986057362325949812733033808615093112039861290653748446075011904913811584744185291943816251280698506139535527728703641714902573699990325450585271678469647192006737597555286467522029395251383557828325631929241169876829885420048541862573406704580018656709670231436598714280851180117682110319152105902132598264977208543304399197392201562129298144206920295241353986764194733141016829015925943454172058650955666648585576311899854155235193705695954846967097506864158802487950917647856996792329585336175009715436983059275795226317370614808248627574677498036187392616073753721545297190606136092101437714645999023120220118389151155485009646845634088171593590540444118571828428944759340986897868000780966433365549543351433151749210852343603261345593402053114766280922894163309737576824390360471395239707561489025153340356933556240042248031285543159327048712843154979277779211646154033812207000910709350240384991409542719235017225581159228963034832764057522785486598409829061823615835221182897375436682756791009625841805672861094121833023858119287855902501738432831769407310706448587447609474985213969577631932155430428483702990671588545463574144053812417517691912449834413748067335566581347936509122988736041083931886357768086535536154478424478662911698467905920563108694932877518523911887708733577077887583461405211688177966891106057224550057306488528457911184406798924691166466853573934854757985208427112539148893647974631379541364476626652201603401349520402144926225044107757271644154008219755520735841857095025843651406488496586329442337867312411824882268394757665585699682878541826624288084686736168135823437362019529785050162021708729867000254076932854979933495851877551239604828411950049024670640509902147273882403419109052025114002677799334539235307429017608527423682219064461874283759238286296795969048004956133876101683124564456780908647792459929217251063671031217818623155408566326628162806081698284661165969079788801203639832049899539382378259320829987908427737217058961994237517010480653363247047001815547889619490056823234923436804981245956869748918327201295788637163928636742129692289226210972578571700387957048184079779974812856854055552246135329033828748479794338897300848018485367519290949858629318700783499205543323128733028119238175456362419464261595364205531887220672697440544617711979304400301602346171938998661936584809579553772941921590832444357100284874555945484652626646403412962539986473437324502038187918207202204349746607655994897467807461252981091684013979035639274428338280566200173803630376090720032901342928674350576137324522339871668650197085726143712416762332561009474959741224862396782534275851861175483034840965200599567419264860005978975193496066120164854966973188879807910363420760456374632662761181821167318715855868428024286663702081196294641107489876755110266856197292978383275896226992836339618235039530492770545845093547914941956543688128000210390672211006760695170462658022402527514963698986200686349489095297025558574500753474145026625199337501496653171813240686013306952999902560487623637618622768855765490505657825653628020421485945517677117983705239990295704998372275123887498490034366559809585113040830312737871128769222652210167157101273955535823135224359163093600723356957204104498395883701961737570839920058528550919995128769939843237163785209019648108532888676050598694182635759348944442715684340784775941475966095958070808965916700945868882982610602170515822509674380303724149022152113367088523278606274735905323590114646368215769666119251130449187415524225205468503435334997253434637137656197561156545178270391786086749743392365758554482574916504221856081989703459403075660992362812875290806091307597119090919771613279959584594304015205374699269682953624295116384328549805906297043975241452397507172410850325887840876053316457312236222897791859403012105565858426320923742712074436576653952341863221350340631338840693283146000589494222125120201218499416640968897232695826051117744300094041997779281526371367371072633060494697385799624370988349940993334356518707300801184258223527110060612995658187962549198162447887389648417490106778354814925361276982884054867556346042920139193517737817304521107718846129014452245206838445116848303404266879300999357459211764469587896093238662187411093989390920074978927706206093551194604929441443097368367047889929898648251961858752380702211696608895704198414646686471508393404025647356160010631446182621005842274893394843782150640804714141498774785902445735253585439469310725437910045267329748974305898521382040464007942685408639332490425695616183259735213374112772465383397752427309871896856218150210039867036418044249345858462432521649709324362601548425047869666051242272414132278395892046408251343071771093264379375525910351794293943209120286640716959560566922139594093179691319311197918807175959717837461708378458226671864175747273950587760765117056419203585573078995129977269178615317951036769158601021668730656456941800957110269895714332299557533021600366362832508191084142403105149276596842878406292268970234455656644538703439035269686947148292859189723001675329668532764688764894500640337420354489666702911180392441153033520626662620615257117825546637310442752717606168418635593087581133534375804892868345791409019943668374523868287363137098253566148258783487444094152445882630620596472368030815094075603977228386958334403767080511340420629027727102942058368387259245135741124411808791196992340231955171402056648378545312910418768981745227366543678496526543067062568294430368760175141040273840584924213084643121868167017807683311504668911499422397789182940893361845754111017290030057542449840885462652110285915524511442776108834136914746502162519648436282932153900878935643095646249639464437110878872869089206838592183259422785009911467175980883894853741344563840464730817493787634386997352357320575597407733170315665821628560100183826589508413668297912433198211162084900986853283866959590920631320584935937895686026958583713239649646346168202276451811340743669830785478464572827993285300276620335946117316443400110658636040979017502486057817311004638514569125877034757027306191431943399292731833365035651549539585123206603711405790542224293867407119455298623609724867034387174771046225901590153008745283926202420775773350746109995639424600426794665171099237394709789579795998145940526078326412841742148698869785300183515570555994160481595226490731740743358946937989474563732307424505532320347726631954734597819901790194023188318137158050749593269689187048053987467712148373859903003665392784131815433942966527062767181616649178728305490880347083697344250930113356315699558486757454713240843695070356331506672406757735552810918742732164071119490373053042374812023705000976879755268836684145807210771789831171390724446111643699665570897600361259126494578172842225585824437597764801644355062284838796074691951575205724725744212331462582823753070673518412011077638384287719554294267523728011183747157906417147981349358455619680532372823627858437343387087803899530397490285192115267495871770536980891154412621820653780242397044893614389925346582669006786692251053571184699372791547031362602879625201299388008732487920874928666506426512727348637988616173924382491486034566941634897330187877025886637033228493540115758809410146959072791851515294722752096980634014391243839697716169576226327770310064270049324434554064691528290207051037594071538324346505142235835549915417198581589704501182252740630783219882312671340057608936342296649272179627034031453833519152742378614467677685552085480619139550814598354507684829111241560850345806318573592407482223262069381347839878409197518294230504393332539584334030524726439391780939070438435138934521350017696781245376685298052527617873349481424511118958312452306854619321547639883949814292924352880982818836661426873189180205086632848001484881016924841130493694752491443319179956095746198853219792587470482489155601583381108924084638206540363662934614146134173070844516615038916668022183901287913787165660680954334245776287999164077944221505973783609038937508157901618611360974877081104944423047901403854427296593714072718861348322871934189878343624952361605316867240125051600208854510753561882417201379185010948405980212865963438775393222002886154317977977230515125453140884966909877810739200667013893734900468128139546580982838075968841405440470716356430999861595763719679273353846639823977381975614240195112065405335452847652959478245352661130450219826839755036001422212452312914613200317610858814534364236533575646236949743561946004151922501571984047881015246227081482479587379707719196113201308912464714368632771038929136681110875694453284347253484302263375534574694681120864073558121285712639476037790888159907747963460505269835709065142731162986863088301881684901810657238301797780193893945131718626536563871883938201105601619839172303901964754558701697001729421778435692435962063763554737175978077626710682869559722710331359532134786066565772825915719040017815190423698546697036844439003368865575997813045640723293628879239735968717246858132104920690105524996390260194456021284153095488085200799925913511571706001164123949170085328103339232483084291526266890090213826292138664406521369051650383226563055943660826257710028258041145551437222347526956283557227403433835987980011320388871336966813911472990706317805727632184638627602262462482361884016809663023148769354466816419022666554412484573957126775550372727143135865451936391627056600416303524161411490623766773695969884921633693052696536378355518874766405414894819215533912954787878192352084747213414197444808093046367764782521558115032024097137601263464507288245151016556440685313752526119673467515677977968194111013539254010543485868584012637036697172074658295179742221223539855131601484713940937355954184062487816205970327854605594283159027928578793437277739579027409445613083260372597286124216260430048325368734965509373442603055719456070591247514975221927574158835841534746468065086522691304933111854234583679197768313997077044314616764680247412163725515296678275266386948116032469910235584580919378926222630546068038210936157572517529704856987131990754116660192940969490054667643132232988954762201403346681995208135442295028530590378196791795170756142819615688998786706215519199801099741950972753346931385523042200262830006885581990881983329962340815502368747096915676048605893431476146288840453877503318012561871059984263212304980612307534776102117005003430729976195546543871895364816372773817120044490552438869410309751572553587003888113831241342055778348441767486846640598053946812919332507587425861574378260862322138988740469586369393559182350558257156162836167220944605602528819252475951844074919488799435330401896935474167567356335299198362651734073565871603257805420801867563624840133541191836415232396885973574409971927099793506347786451123334631822903752168220487411427079154400175679926571828471180377881051121002512078542702903197621405995554487410730897545623817517328189631810518699642595999145896998114341771043006479637245177643679268164708258225782495542580880464157863153430707917101004426001117730229410995041432644562111556753660377814997048101884106669690234906234013215485810459582017220551052809554976518281939431331808049563509654954262436747945712719854152180446765781433876361787245252881528826338642182694994796256505244676634412027845339448284472543669892238198468050332600877595438256497646500624567417514175920352923089098045332536218061451640522450282783313474039693484654829036318653352164726804598368925354232003660757881127562771240611915238579178811066399011341812845078383984181282336711837647080001572426916790552088320510339403791347819113624712938553768892415680927024768619770636449076656401747422727169692336733587026470841484849039353976572022977466842640702821919084798224124794531661431005498005905239288766705833688512482206149534710984081044186282554805532234693474814959613342706804116912105336063027792184249821642033106543610151785328447153845902724716628951186199304042323459726439909021353115415232546083299122420424777521947816226903742404774893443981063035771283800954915308084087080366383735099720670545444121302959191774262993951499530723727017041536419652892720372833686032906148152774289623619104832835041406242040700024993922574502461717932940820792835319366526940725594459909980696882882705084439924663257499460079204298644946532397386120417950521242732173806306001178537678716909956899667473413075264316776017223379772449881543410241141375651098179956054667732466147492173103703039398387722702611655487834625787413335456908273853048053273814558563139990129479908060512400968502864706773045920938522393921259355580280504203178221618087406580697305895835889989344635076124741661749755624155799010410308563556343945404626518089815199872499696078070182999180856277154827593218266654059711522252743069775892015653524806416134948450711302737540641958302317732064582232236208532400667186425986562597903923879980189433336548728331745774480693683857312677684405957447096963865965167574948192567379259700971043934522239615849441256676157501775923370841827322977361487159136629589058559037641115388253443916737319859821946637067801795185141160290419607644554700345251432302647929149494867149270077141711779743248960725048432635120815735035758235593918945606114729428273968969380487830161109902189409020274088515880855365764567951407518768632131150099853890561279014407851418378839697995258995246570468064078393281505571517223339769359658452750623848414926777678703982604592686912668963582245329470391466225682280285156147819345358194894510376746202798373174207100855877259859786340353446604162102357201860143103727530744684130126299335086850970919272667348367918404146251782585204177044761290240533612358465993908152277004365622569004270951618055525719214843378950745589836928550875883303417133762511461429075217901709647808180019368180791114262992472882124273202988393018447690761393352590407732839981244008068939003030517952084504942170737567433831082211111057987729710781725093907621169199285878447574513144374657029327135007756915944955956192498961557744343529806421027385554542289735501600422301990790598347702603123267430544351289758078479356947717117120999336782956260266709014613014681538997868345549522240778775674379942331366100528475028116245632935099460842124016958718998617933634574173386546165956765282502725560687291068289988748665333587143479072155542600240096341835027072819181589094068420809341280351096537901421514559129603060236244260679812901767588269989670894724069021097804473819839257510686056949542664685673907990629645277905298989940689727855304615073948956853795824311920735883662519160325171091592378803692008803087114529043487999948160387570568614605088935936319577004691874355581650552565675769607581525714556174270429338643924128455276252835229374102240830869252772615821635528433188124571705355633481953870393448133988653784391148253294562462084049195597037325843020237632750560421055329593971132963527340628158514763286118105410508066417177208947026184011602416046441689557550262951709895840934604380107416484977945475768302550085662497409122209040912727443659826630564799165826560866578269358475658803652050271139510239450090441690449214529817213127599501468951688324858788266264666257273838099959090133821676908790455022151404298509017703940738966288728032349614452740475093853752849005176255290487707486134390870704269237734441363364080143070498991479098224126800987993475637999528144935980243392952859205025952161372123349811133216850495238408486549045402276290440023311953653209704903111088382526148266612292594608126127863112120667401384680737473859426448395789195266467906220308642773304232043550352471783362463508840787533169156560384323733843391243484918827116559588980621136094780383501051731325038351523817574428493599408049181544987089779666520449567690202634697471677844459524710852049611416669902809363811600936907028842751756725501791626666306130151532145067176003258821518245902534171142297557541829490109380307662079710733464394564042481652659015785290810340586869400502476113122293048471500887439384024466809401383229177787513856130705123257348571898516745838228355938065577179295652234443304398968833332641534115744479900802139275990051886607176651673305887603867023575370081096113968411118676765527043003538277530299485221029313638483699088942746316425330877528726141109119083383026786960618358343047381966232132673561759983518137530262037867941797012813876730249214752487576264187001453414766342261018973106577761730894996990883205148397144925512560834720413227319379437648371656153941559590920129414916861448063107087404023859880349730678731340405639617528639352187242974272460236411269965217689785740408474588165267119534733794927170799030805390352387825261081678578411672965066198862378109993886309594921056112755364819366884579696156467712986022147717207917973417810921652865274972759169370722342351602822657838923833375502254254097079818447088578955213150090968020564653895139691395086575956219071094590642074615413384504848376338317290325527888064683165825648239052067718190260223008321120469082343031673486570430310748145469367126140229789130847003453496181293272214736596307338152883355989598186322694831942014449859686868422500379162081529667776163401778910675860998136222579998439337328903638306947396539968822500969170384039142271158199181608088995680560626749291558825667466599010932720228134633356999441334830946514608606577195814866053774315955674725949578970484656552373924190869641561907159207547658082856888109020931584718470950397761708915454538351368960416381171237798308988845491818799580532831268996090751516195716113827114133103390174811054167663623417462962057239807655642996198194173445787289533932406202094085936939845991597192242177096751414072967694304221450768656867802775457342891979918849460811643605844619231567948886271494141542628374927849477799610265040739194965574129875343742194754148630244745514596652749920572958835215615964311895416814925956990329448414107279636139864213106376398125904903240949803842238080510513056555965486854878108518929409928144194699706958723392269849961929863809989789646597305013809489182288164466400904852831586843719752897750326615325385349221037816431822479156584487004475055240580540393550838719113353261276958236344312170495354598300091638316355717792313863715740913860435164514646809496592397500733516177135855003445384807786934161719106261136784679319555653118956573689543712858660347468181906943155146526081726231303142429900206509767634750865150453521046720943370481163164366936224124545279029384797993356467690162267780294923427410187941629489019372599694117450018461090785294242539798506383574546070160526860432977804358167936617826211022527361404428995551025373344779010698755494712450043961735351400380963700233212681999729400293160753751381806520576956044983541584848580606231033190272054067980676344931695748175050983325178337152284871464194521122562242820459154424135318824903312808580175854397696863182776494242350622233779163849885056263606811052370932208802878618339123124361850822219632452209534711613382750565827925487170480034538340741037400006484031396622667810480263187004866109516379520396055769617722285223871632708889912596994827642494308448102810129854072860107698892331943151936354279086584248592557898601953096292338408210102504006650548541945930197695036991025541232526725079799027538164576509627473925432917009776341953425724046654170941531936103110666913600747532912012358868971759745056580774573859114771124463780998112486349332610566464111587821909406968754510984408013714419055076630602676911943175468326899771170156661472854641533456215553432250148846514239771591617530637064264935923258501864313638105202120646567676762225561425074044953232185009660640804065735880307830396144422447826650014106439344885827753657135368381585675529516578967308705967540714398742489814637659677269254252786133118952630014073235216193911286016720781366512859302095124372506889854020839916026700705296319043896643998685619909672456081990431757852669467384137819119252741106097966041693884915589057171335749169185307941798176595471671042355067493460355756792615469801942116271293225121318606681396404190548147358563517082735319911979790464604527066319890745221374203648280537449586862833714835417713326741019469596013359485609943795102531387739205029931392200827390257581391444546481797222690890899034610861978830884518917189203500092620132782025832667941860190967320535517271139564366060717113862273541569835558626871678750779684447074696624403402248299462832103492329975279738068530497983576613024270033048724691574770580317550887835278296587794013470697829106536221747937412548493529356657627672095301569825628412139443470441527764016598483245067170709269285757945114619954249540472041428154746000662491435172495443343528708045437563818160972695437669177673855982034505232127161262978948260793465830054790988936317840557188863018816185997584876280465803343995945820172391515928388387942692446720556968514092670039830642138663558378755233159179166130753191886324505737314065598945416171812467030845189851101422587631499523085498287869256089330076957167020265343197764081943603329372251607897419985095426220054383126221005549496351719709344493619863056983625325845009073429458581140039451555760710860917048577408561835346210877033925212334343701334241195520664024079253548237156792183535371152201075884116726201066919723034884002544821652911775081162650462968199883266613468501530443851320557878444783701785461470405469043018890589127602569195055612582788751868472500976235487084810743960393219838345241964284084093173930802767978417730301759627982917616019544656696508503866123597721898072288824059161848484183007103804674868095982963556483577994271795126919835978421764805438117721867838011762336541331886560647131097939380751488387218099100984262307265820149311766525125710042183464004495990508512042409900118744172136552297928884343388420843077237070107162806177495461576247287171740381625000535040600906810530879866346182781794573629344512239391928170042882857584857322398329773522968416516624038839310236709787453765401043550758165134212079522825365603812341888610217022110747134426399672363486714636495896534211370778436694919996247648636082144445490779497203182649020622789809417131504587948170758041416839590315829072993142162704175041450060735173078811900541217948379410527008394657920824806297892263547828316808949555910958954528415375187935367792172126442054844396323500853360969606169842796456190960278949577622324382028854593738552041791614512448770792217050534477426854748964761045167450107840630809156812128320327030015781489869106829101850457473502713438775485783047828916260525035543767813580663066140749521929434297025209152405031179557632449441154111638916268850711852134080181335210579119145278041668789493245174839357197385181001880962384759248888323268926278497671663755398365613871638647629644612001533081542608649270011084050704769424154241637388490738118043575349750646226012377704402380224413189858553253235231636059562601411817466888741446663512251633658689390078467191859820137206889400505609102596140017524182077868568579196234607443796161997181197472356884415841264769074070031011258372707778119247445241559866513438010156065849428216299742693845430043221363365459656412258948992289092346497944703824177560796621271292554246873641673719242263307001445097349159067217218498317388792607275927523573286047160935729022300173790321381455582232293940557754497530645505620083002648955432398618825172555479363066031087727076764567218164257122076593864262289140429735749117328730258493260505980931422620971259689433804579148710380624076723283127291594239496143669276747828459224071148669038417642382739687029172352149144234033775618532148169005120359509195548758525809082110121097207739897472121990478796794878000824318690953503233649082789691162239321906333185460703472670791160167710715035200402623801363056916519169621104057433168877893107768953912897831614316139644594590693793980444712947350295719584295492993552709604987739802417804812085570892583900997807369203340311459722383204805555645439091994984806270544935533366212193008044515580722728715736971389122925744147873849538221726172658708822147201820063640873077445004926194924093748991211094682427598526778040230562431136133740024232001067839412320897982419975731705565224664811807688131996267369861666401794323599904199310877874223717268152067269039408501747523756039725530580424499037390745983446922310498617723139418380713454138349545651415996063842175570887852102864781616424338461604102009605968682398941736789468346635986054815934696051374181277489813422928488616846177620639808012450348677532051766270389779859253611514615310657834008767219116969447173686423044777627869935558710184599912468070849750364191155788030538883054576700436676638961051173680259161756945369256080568729798511828743224488945484883574649498795212410266087351396019109445266086577929440432338439316901648129503405348365180381488932176790407747805019280990760454621348355674358867496541827223853671609429917288849549280232841225196383246259463819666787545086611279984738563348267632927827118485209402158061286201815916887882292819031180741930130144115502854957966732180318474185655867218302356194311117758130316528912452051432596692389989890245154993628736999169806516366775887647845179114083635406384745747005973610517468349907779528231941505976644560177560987869180997840735122583195757358267610132793736577884109311762435510668423163485917974473180639007495286744903610225302508311399547308789383950967434165371232703936315166762991225031414012003441332258087674077072446927680659269968136791197342328164301808197350149866054083232787151764115181691577879860710763808292498274618901739434770872833310580658087725564930988153212749743516138854673616578683085978009175596785360428507198250743497795039642157597145519683497929660705955082554054615733434406029993700751671278167690918919785093813668794705050712023610850759224504523975841112593682181214336819613184291492985504830273767607256094698898576276684306925890881963510426209113434652677853738875856606650829290960187288365790903781618101045580992454803215351566484085842546750712989690272085380699458311442032844815815876504663234567694998972712447827501304047467068981059374458785925783901455100433648158756780959476229328303448923397237808587976909573442585837095584595729628388128260562533811642263390298764928535284814968551613238671665247690177294608052666162827292068381369894639113724289425406220598670033859986667386268636339092024404291887011781543316361638425723417846086580337293909142863405607257561971665988333952235453725955636333173411486038669764030373426649547030212003505517039278090963956646982973307863469829506680279521962873254508176444269131463297212874977239150635387211228259739641450761901043544672396198897138307052008479205905690249115349514482552644177835954091445485598990704745861369657928501603745629104623611657306676457044025077041075185521615567707097575349086528649698465575146126345163232369733465043339501756958494022311554560664342058535947984914169638754990554961549406187802595814127767052087305020947282061827134437176924142079800358449541355855464420533697716645751359607899376771774732378118911310970656850804014389599524954105766187635486538340579005515972800791891933254524673773750530872835021535754033933125919295899809645645211820852634439930795587311169614721259717573694026368822023304898263859722739129468323549660962203027778800656455852399014411639115798836312148576546960525369236980229374468366108346928975948741486958549354444172461179245583264462739897131553232065730431138163011334166358380780575934346546744562570160277313506149753897552471311382839103838747022189929814381483415150227673835557274974703447576525895001252610768197294733751810232150720562219278987658133019034184857842771869045581466681374540236948555421380978435057637691658858036261818840172557422873588350321789837044938882250070596355528316036812106326257274016983123604517398647211683970682476335449236027940955467917915889335491574278985994451151317904471170737269400972435558126160682178424446063640800251908935037567772798810781944809794371658644945029719214658778739984002884120328094982708308777215196585964392579373163015914185308343763689647074941129189955465662254758820622695311488160390431656583309875698791525552063203850109876803404633463030439716176510186894094522558286365118942233879008761970694492969567524713186971088506143236223952232671862171604692303207599016553871968826469094666718857424080087452916305795298432814195074435284260140417496198525493954591786306408494434385828257336232732309003339655929380733932665381686335111425446289009550527858031475068586525790613866722318728979002833638170475669711078832966700048970969926787607262865509065172926379995929155795394746332705676508368315700941669735834492821437909647637756411684269411300003745036543770722771233983780867124714215973102345837065218908718480072445310720401656938834649638413559140157150593829588779104868718476300912063835259187339259049229970332806031316959659556736261113618171978707243494765515209322773508251523271761450872040213661724327819175305136217321497777829539112615374262922085332030041788344262260945540585222466035877532735665369399417493498464219062798830762621933423463926733731471727140453640129691021885113160273666717189936028519357975914218170869056189183036035831246249997686500236784267627448112430600529324428585316804771033899511095248298119256176764974051560586722881829426493469692745932990448582535181968330252944809999139005971012313473651268121769945533610556374339463363171432403699665841464773662195029042858065852174186282599930152146084389110773001767842482026365127112945411213044306304070699718987218222569806417878373114081848316434786583470089510615832598455398206001811171137649650757961860923467053980576166889829331382252203527360679663948510876885479521630709488034259871379342158379147401250233898910795262340623633206547127781944279402836682869312684609333859942386125568522952878680173768185830938264496794630167370996798959318759310686056860540001424325743579250541510028663346906691472992772012452269641333538616527017721612479244610303380375242729890153123393039745823004346986875389052400288748741224596481142854029043732317036517516160459128443517832191077230147074362331071591959459580585404088425793118878574064103209938075786256674516437782717859077004333514543991976154267963492153230330506253244068174013226452386843746328041907982356935469873909282504700296973455371776085872581562011898956638142051376031411115271747263920479389050881424203365360364325435951595857249887777383025480299375650884486012571914665455625810128767584066601857190964726933963108234144921096957523179019071029386421270617306501270576567242420784450139611981262019971829171355175025625625949084654228284483532776899007903967642401730544295835796110536423752681520912298184456677408194259664059621731429572496122246447179420810614654404845764108549458156307566975041295994034650006298506741349792087232958425906848771997819168242796685053394313909356159099638220900086224345761796590999856209681775323905286043200640102876134734382848947182661652886707340836371777249787432701857915643168178830410240469174911233831126569127653069454882569589524818813188602722422789934442271309432681905863002784004874135692603372274088936025652294101138253746959572782849714324655683684576289213467495299012331911251267710758274608659453318546888474676696468762938752324250095192738949579475067716389604213011123773996041912578589160790997616586914943951783742547127741333924120947683017086402104058359640889718364385200027523757891432618988494100308415569951980812560934986202272285340643537567569072313631212120884094510441233781446843285251736642915669746652274095921663275019051164333068446373247831517583586599075188724199178413076253694113750913661382015812102911502143652161162608959890489641303891443054664783875913640358214721864346491785589416420699415660595056067391209170268900556169389254559123412910043719817862870991582994719308566164777316321418498990139716488786690927009160978128254067789529929466411789023825617205025278937802973502390158672426070719384800651238326410449199313207667315922283781105364956793678397864835089161916945405190503502716742201496661222265395201505593314099811982884452038992491845217356119993528106441586558607334753755674683431600104320460224520657128989431531783456068788881910932828903961674368118153178091031022554223031755351413267826408244009426304809802327346354379012463880765381080433051430165812980476448280698944471216902706719809718366562196794297778603399437201592008365154474159500962789108461677632036911736109015997056920682674689153390926539748592545804470895167419140907610198470125651396974829147552383360254771135148270865174521931034006816244639746884109324357680304046251364362882995994023059574222004489568470751488973682755342299625974734495907179626281746242060588684438547684664571519899673039741680364539349576708971695310923486816217080788047474758687992765935217458931715818348789990667924757066653173081223404268639122386998073368708389062640053415669041061830203749415501689904463773563712939923353705768602908312324611734700452091288755273590409648608413491001861985997244543764358039767400521395852070404761751073231310312012950678488615333250386256203038620856125691047195986331476124834286110640659843559096982794936171265522506263045465167369339467572453000443080843147453955175081699729633226578014286105642103929159897362848620357869931019701418156676423961056581605184664142019093256834332133598168643789801723636972149389908239564606979828500740064857800448966303069268985593208187842578471661960967646046643586049871972323509253532638704720892299200780004875525278022549689442560922062596352452482992785784966286333451495613005787951621492847944794228789268266755079511695772352314668135831973480141794820902511295743051561265207029272439721510508363410064685082735071700118386109931189762145731111709832970547061457469653949276502806377202449808003408476700341370014426711477407468321199343188821879885941647349382324740731312294877885522569150929572805418779927150032218895860907585860742527920225697603257103294531930940609148681539370498382919592173494225427529018310923549848339284831698357169675785381562656591003392467685374480145759280087008556035588127792718539469526436716319859873227633976066958176203749971821194379155643257141259182779523696356661365717483280308986948255030252740338900310180800725930365702903462383781237927040491903737606346764815417725693160242891101740450318083539134534132098809210373427043009236904649883049606669327848358891615005133709915564957541974217238003453075283198253150520296229733461526016645163203557422361730832780315332515579667880892450784638830469767514366397073839189425642098461678364869020333054659887380021379121644530190970604447759644068553198111077601353149928020468960949615121338178569056866229801276715259923932974334015868003843110972494791044982785298569378080953367535358221804570645147974105884201190032317269044569422162326088604865182901797509661727392446725856244094284089631880708588077204021419009301065756617887817582630814520863974757778123471343618442393106276414229466021485624345013193584973507246244266752039879599177854752885569220806158475211185966233121186790931963481595776386682450607722685598659329472249470903195477593911612838605978837301000928325239908292407052295251333131975825978896105856275745052886259271265740080351820939773321940133830438781010541001300638570590738420614225077625317297256737371783070863848053750896183159114743830174411064477442821581765252787760593916311066154483955555929192649554225890328824473601236277218725874002420706008829736832948460553288370623798944626003210743900365286759540619059060703654446464160193840508323161408420328478443792636977874138591794675171151602144918419531260245267925924500932366885595442984320420362101949556588590728442725507191429647484170591439205215647397610347491304275515100689626785213248252167607449860335542901645839181515568548104324888265409555203536932623120049909821017539734450179109581301468781559821633465031016602402586388413271738077845918014889606070326103174189321408583344879797256775037065424991759157437263954488437314255480845590122143321954609819883397941346687265977794408574712029807329825467094030755482797655782499304514609183509014193724637332136656290219722126422647970207831061174382954162571408160820139191704842788005267745307793336888764427134411668522714473407356103107957279549354323251055122615317903593010453454712372431642937670040225344039299866540530372864385531807409314695115140099994779802400262158437920321629781138248174833047865915177935321785057727776745708631044127857732151255554898671234949728633437166266367972523968094260616871820137684197677479893822012992010082387343702993111268803927847810194950171550612976074637725874505403145033000496829033855837084585842912801910818171459946090355895211187223859630965490295168407639583666842150760745168307740741520916376287782059389346096921674287247103387036513289256679663452173254075574407170765561582869210434099688091227744377377195046410203750838662045448915412915905710108169425960011294135539935530717608837424205948438422591564291576213118176221884236134962405317128981024877026147838425568742995199937327392972737995624765056186078605086858285866794819661675522019777951872337784340730086368814309843037065689304626390440814797761877283045893591373172671821871962055002824164871057190107713643466497814075064357969137643644222010157557845872868058841827754250871460536220291734102916618622266701720364030156403766138175757134708400301496787612608716690338250298443398420524035723699122562841457200112582166703574736744076292318459992553156022810728928059295783943100004690304023778427716736625752471314019784313838153489198982144438996119618017860863397708981657894100807828714135859231225354706833770986967043651837084288052043910836938217463131982428779842014371967213315880952955152588905474826812579412598728960296316962175693741523197170413869171111931162773395362256138048915710207487282961498457579231523710714576732647612888088626206709427725200150787896624076743337827250152093538874432944015565525996270707748449836750603614353598598010400781593999974574265907216643913586488312405964324475433491396171333850213817558184409223566605207590974054308399995375980397801416381310606580122159093211937361264450301787482464461239832165796966444007379386620503716481754452933564691304225397510298374204194533781300048859845516357380916900111596910486355740698185837327298779259876502730211385744831868547475968912357442365758203890782165705417171840353002046217491008990058059950292448340754464263060307920932716327749517329027677844646072346752384369556188494378696802858033949971941232793711318077254147923244942884619973503881131992542548416163421595330567140717256963776202786541742084475086907841610763044937101268230855691761913306954019425455568924850688516306166153525947298316767359588335678339416666696350419065442663039757629451159682253284907327263559588979036992813330725891164241631724769803089046372627082357226272829184105231088881666187873748772954322366151748591632364595945955849163923782695078125312600131915842378170308778743231879085921648179643136399224823141170370235991029977157621168674465807528872524693586842545724266879473720916827855772020402748267773342422161940905299030561472549906783403549073803909116340198373345610541889744662947055838947310527842869808064902696414237064611196186248499346085210673028312527026805329448860616402301753940861906555912512366080993931232466351951097088843730994534678990459179653237047198248582289965990669711984207531748203706646180312089721603079175129541458567578038858856726550080129398221460268468092114757193904842235338264857429322910551521813231400867340396156370265190434461499015081491333013036093675586099168759056738810555154888220706818904151073402319808353247306410230149751727364810056558627356378252500871755522154406681094447977668152271026275470394299358655106294266270008951603384384093868309691368625136219577490059288094297371526601393552495946913308327137031018077873859627426344138087518375374097078866980138443068614505006555001682871241185105864246392570960320127136330762192976587968237383929633425426759020776814256714533615570720779386680758216956828613023815798940571668480908646493439808014357758783396431268572368689905255046350207096134044337584620752071464472452856504593438523994692765355031871527326640773049440855917228258727132139529201695969484089274790960264478812142105289104493759482862875580900989091042083598960727009092373120469248731175246695971108483741354116769373199285460482020453335870031807448846840959232648120872380168812394511198844828295572464309003969445841927113813493535023168719205536866684338630775597316971043779130898869909503264889426823119557510883653887099150068292922995863584558127295925149805600209209162910080186470407916173939061032530498295141671365846510381105817518417887018638597685475233291208676530562369132228346460566634404221590227233454573776568870299212293053253970890127411597864752743608494701926992527899586784646228077287199601804412270955676735099765465453343286398810261364393407626441013830443856145689885164702186228881178922569560359575800029992866242986746210889284018791481613415854866910233174065026051597247623272053545696638773066032916043390873417291463667791078339463291602506729167758328405219821089127076820865858764346815007492251914500894888400469007914267025945990941598562503961677282797134829917399609908845650787132444926107546160134185205343587487266162775569041055955268794070139222475759406358079818683033676988791502731569110368929984064873501025592381609133815774822593559692646290664524558781369301223411025564554117179804261819953658474634664769704115877918686220971410782636988627029256866683481103648079089020882833123187519853655073776987224579156398304419583248323981928231102008877966422553638697971878667448417534566391043737416304277871628586215284215720646526064789555836872564005355169535085740231185025669278691789669067380213908348155824749149794106062105807641937492370042713107823011916958833499051730157519753537329454346413197146048881080201933698213600868258896957003875054316466523561693631563982846044347100475870692806954306579705647699521703533538216515820876848695519549912509967620600795439358734746417392193777130297704495779582779602874007829229203055286945334659401009174909297773767159275156691183682546551358580843451293789921295194453972081766567072975701915163900753815218043380499010548462573443109684798648127293878287996647220919824191248051494816986142458866677455473126521395029732210675655198850798091868399259995336057848968425584291677084809939297035240020069932726154270164604171197752763064325116749102597383881097768219133003931723134345721179048434844479898831308028966016697103293989318313437891463605770106566839293698357964727850386024358842415140143589529543502915845721436820321281785737500380703851462849917292837438423243819899066483856070789245037818408127773078651797414406981553214737636018678460205258723087385989635203147627534519116930787136407080349493909176096986935221767944553146323712036462741012389361800298834078235361044879285358152436380844779085991434729430122505419849079032899748814152122328695202378040136352345543846474490006751165976350362850069564805017488440256070185544739030566319502027201906910185161251398079621351491673287682198477950424720193794849268144737965984323085313176061415803820485667682384564468790193675882147757296505838941805970112868832416110595111951610096941889071181546921671382596917527851385616418358480978442628679167084911599220565908119413518041384103310017415368523604062136862679274963108941477836501253463682149438781220036380914694469762158512858926954939274292835145221492944701183769049941873348670602112251612935135907402942104330288742407231454837352425008578510657803542167828416547741393327694812865896415611333850936461129778309371427376139106471522333708120195160069455545147800565200353515762728237671713484790553295425617674267112580032713518838978701627334241821433161137475804565594108334094702875741029835720891964409340072448812807539812113477600957388908137662150144685444242376846635594691912435832930709697304344587037766467514181619447266426562156718611615386089809424126665001719618129646587469505137879306498577854961523870189854719347332818480245209189539098859913880997271548614811477326691864217897615094413721701991023689354235550344195968932106332831234286116506737337887484080205744858976698622683124061675791786813662232908514278141269300867092885499990773661604675588809254113968876382992634798634270657339653215674832763977605160275013580036684269915859096313939936986227635457279138304211473305129943328555719415921776684919084448095675778082127387241042094632084272932254762895575793031864806362827980019166243015051648364924359441570204823702534538941651558126081962075009575960624274834867054025837101224243114757720640995084904302350561236417161760234505941289603269874294298818269613612197181413391118920772763309433476454182565047884811932726008100603038647757386217843074615206534006903342515076604890808055293755993389749485646947667477833654487244981171279691836913670626472750136470271073476944624376937582459954863134309495242477085986101789687179765866028836266471837372852035963621981414495974228395957731529270563671535867896318170452256955107490823575686263761329806432200992932339291596440441896107721881645020964471464917194338008582741459997674967190862383485735017497558017581173821295371311634694872796267346818819095748214807657237981798868305136892779715861619729844313810164942970263870834090942461878853546374308029660325746184058725607108269725042064783671188037379366178233890168477387192491195342445100567603606558575752303159674903455726786902224275896180615370152029830687955472317792451874630927720967263135371701163369212049550427215843346070232600787460572290557780471525287160691585363613233711413049961809598730075340693705179688520067440097210209450934820564812269664584850685567061994583999000002959022214330323521817140577555179646598230833823595268298034469203379126273339959356541936589048679492268390383370707320955147312776323655715675710362388550035940580393394330981680989019020618390478631259197420605530394250171472948711328096312303022187437111955711896156745287342444914968727852624899845429487556588846706410640143408934656433674620332733837976771003786559028857789064013386481096571365831859230404314687603423448364876889088090697478613660859972959264382337767926459422898010854271222383738410277855026698601750897634039848380240249625049856670190925985902078901178453271137749528817495136483611531944546335531567952150613390094752588918244938221859600253798936495199036353556606154356410234767165143842921657834355925335784987667566039634220790587809457119311123064871597718715233192669507627739937808472697446263100148117042471275618753725876393899475830620189318562666933295460155232903183205213881690022239651457747692165386505025900343192147664730213803007246104698621775920412276943214616383063265573768458524467784277858110260897628711432079844633772815252704143635435488537874433595169469841958360006659502119091951332258966388259370967852890743960080774639501315197094068452652371261618323573104285789066709805722337830016082270749319459283786271506902140384706182014547055984283120240028059604825140097523811729376940472654902431643412347595991414137362689705917189272727903074202141183659338218618396607334261131608332798761656168225857569310084338966153298079403961140202871690770586021055561523680017814408895566508464271517258603801442241098062635218137349096186263236799347220871997580464096731713564859977056788400605987451199436957760151354395576565012015965779478189420504414033090714549370266672491650067001537373911427805503133339071378350881966236398277245880880604075113010604334904356118140960088901665777892413785229424124611569527577547213204746651060118092129013162329760305104017985277411642724316698612523166248344542919898330864290809704989685028552948119103606928959010862962215162516000338636007942550820099989022620821659740886808497262012636375586242817429578791850701313606103317001235380619250421279300799068401573008237346463989773541383571178596366447037115729984229652131376831691960656072732178253069264335960693809296060419657304382004107340333703998519322949942218601586606034395378438315212887404728802955174891982762995719872206139152989725045443756564417038539330475911648736569867418077356534821159062056205917316003756757697917791391614640265879743688152178990478270257270728929768685662625378918201065690269324031173125218186565204504585409438024672131520990418591812921336066342636847215849616793384119298461387183172109927370680379782075402119331609904639108947707604663310774454568409657337851864307909223731362962650247765753256233687592760457725397873010884702545569126316514007457333364955608669503603029615727810153717531274137785054835510369368005213988208073505469866098336431593955388823575811677213430896352449992903673234278493879704955931650560533940372467703633484012375291333138773500945668506203779730061131392693182226143409174048816022269660462172101593025824983459763902601596586813628413872812092482568919110834439521349785838914232759971678442165301777781054422809302145167836148217083163111860130781465585181052715825983253766322465248634147817308932474747447494477657266016639876514213311677226584526795027170362922869613992058682486057606998649298278387540570481396558384065681706516239303346685690189770057805535959589238223438874325290509185584397087586243298512004780615889722249157669645855898403877095105559160476216386785539056064587343567743126167924787379336514285731879670173043552789378167618463298487214267990433555152001315212328103058489233273896832880755594934262157599889235670235344628493671363310307620658792395363234265419710379838120109105377436453856185056477764318077696241540149154340451809892332891872147155474065397806065904190846812946479638924603264442600391314980769054413315807716897563668097560980209601019862301073402171336695483882804459407812185929824317136893136244091078018052257088266962154212506642129204061605273028282661789056887533256478526307200172341501614674477927283364170973998198760182139715536863282691525832959983703435398009135241887135466158149912329404609655405540799310768244758229953480294347610461994883055885235341739060707865607316698285355635601353003303201341453136661778416196869942157947392506895746556863418908887393230319191923561687198191020916611508438128445305962092664228076176240077503630502669582270664861260594399914563661702728787131682759217860370003953881590700407368186819628579372506561905244580973873577835394174779628640007147220087405809721520121780572579713198342069802700379374393725271849748527427068621515307863534728235191198180799010993673684053339619028046991512317475643957926159440445610830791448631389130904008741842431133212527449291772300799037394773871154358541086225042497724584671841116798390872190737511916500216126295146149874855897139455127884979347894624494034413169491194995930390729750231036413148951764359720403763974148420933210210988634263598191548684424843406226159723381714257172601483869250213289599830928371368749079463315609315860931334082193909060820771773987713073678800216368238480613948687454657585617383418090441995915846796113527633701285238042469430765769055376836768379073050511358748345370815528540501518214381221858386516161216769305879626864233120125622413835567774159864922523107434906124127030580900600495412287556291577656722110816118388596488456244063888092327947630601199629728051170274603658428447018265017315141672119016852698798601202932433353137019486304560052655748927778338700188116001681355216510151606750093815663385250662313559556679557600337793664004833651573022006454368225939890044503387668909861458256318134054159113432145593300242879568969915987897044288204827223365547652221059927885066991209676353213231433901633226824148529396505230390157000453371188293870938847460965532771062050338587073426863589050890841024722864092643152048249361832342395762055694002025731569174342153520967864787468723399331752704305941729172193259605378974424757701965547296879724439168672002105033360414476070850050774766195100051151126993433505315945202670526310905390553088425450152065610626559406548650867443866724517548741275027207712044611171424435723504772531716401826631569023562185745774473487886907235598631203365773800264922931455964543531713006379219083714417877443449064072300908876177682046591391720103507861348367132022592881192791799226563084394118616586986799328083227797813279864056500070941844084326411055051309958613075314425874995667685409786177684347937657100352005215523018665151453049465061143765927359857633120185958044373104550654654022842536313388545789141947118221889937987089718417425604918926881593753521027213919989566696533007036060918184832194731519287978548002443588150348321160161853393656479395095383843325196046707184743518038636599477754805915213402856034976174210080501266209170761901919276081585817986082129402361449422236458900598711374343374857900576556171183154133809612123799393884024976517807792921228793837935881515574207625892937611353224328350849895761191395935156328129373974461799359468359738554599949465249416161901764352566481906718278975442916266155612713722485927535210981868390456167920522126787523859277948738444685825507411469717918704848855781695037674391136634464803426953397404091668713609639328779741052451125017797781895630253573633623714450018267609015880836356365288077762325228528195652097147493297612348014934679467778605621733474142385207699303059017685333103022614273617884104779498171903287517530207338996752912792622223939958508166758925938289923281343126111346240867048084169541371244031552010339272903595409044484308071851602131704607189327356172739669065152733939172333526113654074697261265256276574557824665787191160608055703710308578980829628797842077017705917059487936688772678268611377042088973818370813466033973924265258171600234245795138850881946632514566360341644737911101232674750405751720028052115765625802459286849422870988995788564710239994704894249861822930922599809202995365858271638458641500058966627638936134634971577251699882985570137905623359284734645214452635355134252150774064982450913853887796469762012706406597031175759696268674856342642252427350665346119677780778612667122697655840336652327817306043098293062184191628553974523357902781691414201116264822413364580480621416056818924438165269794014466983001565013692116049956549911049879365308535313339410515967380191128850753867481175311706317635972782739667597822897452909298366673442835652994872405153844892391258759117170675473459859605951704698385498977544664216276368260371755268262179874414158741747266343105139587602229018360730408787633118867319916662921196764870934021428403338041813663168282600723787390979303012452853816623564158869958553711850212192111860531901417581225414916809166891268068311236661183838239384788389529884629782264017633175092670971723486544317620509308142799434522684530000817911458133291266286977942098399302224989310258714116722701778976458603790323127566240922246757534288565335100261188749989759358406290195411627296725264349476612765063818023963753800293206467453951304422409557382075332427310776711896458509775672407026314004847051207985802130797002201673055309658137446740633111470788240409357136401924843961449923361562573167918018625195167834070651981923816115795339093839510394578228281501271464484842491947979647087814167780802938830612776183404183216114609960826773398030375446113130718166257429918001031199343899661383335645545081183130994629127669502037376391437058087344862879450741658439561098741924169208580572061637070623578707355466241742892422401415843176546189016299724128456853019729467544334316136790218940902097948524176319936143937745555185547411064007871528054572312571198095385262923578649679805998374596467588455033839625592011423637406840634937460848643952443343421571551022550069857170401318435752165364459982702998792233515992926120631954273117731015311540237693386000351114882911894306233645153523641478565302836573418066364358746720674587573919777534328454412905295046617623208625775111550691400340764437921651319131371624640100879502192144078547301713152956300776711897928930418307199248765713376322894978865452555863307073303730705843521012986089024427848056239159496873114687237075865317751454855418614042902413461494537678036508231695216503605352397494892001332106560516665972685874656621964051241015269400305321975005162112016703386719502716259002925419008767898179264597769424983218228759289229314963244464642766585634707655443471140173846897326850277754724995534791830560729722366433583312722041363228878214617556389168620705791364179895232494720622562024032985037868792520357578451852913083223464323837236764539138251885220208425265411390280748431059195652553994983348852652959685808610100213182835824956926277194285486385577269770630503226066675653783091693678621039689327307788990260624107599060259610304673046401698154055353629068946806807286520014867612102951783695302827004208023472914857134811113371035026170974378785671442801502933637163071676973492024771898997560535445975845307997116285284477559866082912328529100595607496779125655639367224983187532363591654085542243144812792080230563335749218996944363469131938236139445325012130429777003187666458434031642959647661068508049304589592303219840808278157202729565251230003006676878116649650586329569408425944585162857373923356519258503572352384488264355535960743000456465158423538360681065144674144100188966895896252235730011831700661941685560467605050060685777136650345407696957674625309971284984030187468579302270533660599344695270755602803043194298052310649423567527059808186956920850080739594690246492720771864123190408579027556104481354048173720253329310253090754459118166260155213657619280389343154056586471907261384686765296021957830534846735119347706602400620760065441928480561395079016333525965229292102396654477766019903255349975306575358785953690485154382392959072679228352154605596693406303342270660913176185486300291475486174980668015521052107312038266553060788441989332888779972220313414898651721438024553591614641120149521686979100235070041312626383409277140909723047858396250817607656940401395583551538813651521484338781934662315119463299392048381100659547941150329433092694562602566234491221342473949518127370184701230892377146444092320437902506647270213897228202776123892087812360524287501684004567186394934410097880024124868022352337136962204843904378310006169307825488790232181515942592048731569861988364619276715246808697608798162287272893148071306778131175244211819225409907362361237210294387604792387622639407013070061799534961459431205302235672306859732958981428950432123718159835236690644588942734291554693935012222243990823931642486557067842131502286577392023360528369288058290214536976441096652050669346859197734916647284227167195002868250293357150311836164957986103578065566484302816227776828822846805018435483707862034082309006974421133026250093157997782682598706060602184165273947563094969442333973587938001984152252753035497042907264182750679250213122954687893640395829794424695591189889181252692050922656983833412109250316164461544686692106484824034666702264613665772288279949298006139478985980556701210523973760217914990071347958085965466056425352240206067854074843675719249512309545996407258772403074760891288994454833772664535214132880931565529134366642440523172390385910188128584808966422657105745951821640120192680201090270924772989212897730493969496973673839053253681142506171911976957931202944974626142276674117996814698694069807914829570921015461221774436244424561529048281988245493973383565867940585891006285216524199466651635466621745010924997645149633294763139205795918548277280433467281506786723850169907396791136791543452183087981858615127066042680627243053715893533999791313392326606570308871039872599365005677636466491138359073578251363251761544263613397404017085683976147293196377082067953276435035261835680510922319501044244904235944919340283761263711393400272254329108061245273149945908837051380341070288360920055687662244740124539918269779862300645737665263620383671984880694279470420599604875517312327344154007734014513212275293703228547510090956092551163112576042847849053580874711847771051763929544271198802449451968679912245724864695128191396153367471046936305673626141446287667827966911145245665812989693100358125370243876849543385298936431630610768320518217556568297994309567709440264118225035413028875678116542869284120547860043373555373293867754803366556578956970871070024821296342072700677682544507954022001365247401471245838108295727561683310037270187325938667278818501508276914970219540240797145753597721116182154478278101914661738870237493382334964293648733823659907720706452715339379067770085475112439116511781659495618812810212785339734108296305072775972566507361798487529440475522023799802450579585164595491834770978504553233661411977583696485550067782262341646789411406458976666682342458827829355473597579059796696846079859382857903835408854689163851634725520182179443314362778317682609457256740652680626213658630398494193830242650778035916106215842795591712846081277424647827631213470605922074210145492351804407424661780398061357789013439648535880852650329794610673966010847821050039503410395061190155552231841697036091186644708500041371755802259681029200501547456907818372418079476141682808426237736533376524725951038607767888265342535871356080582671886623062198715603113599569281222122786301135884981889528547061162240863514372347191984506491636725860834361191077414546849520827270257731416122143819275181729533407077148043695561964361766809976808999785808906477753498716567502499625901065245065190357235057830954553933143782895393133070083219581288406531296272841773789948501683449576560989493431370340720523664577105998425336265408478586536856654389612624914663876965974575885434570070319320340476232868589763856136840964151000523076333352991113343751242893859846517763700254145752267019103503419070161802720837576697497058971772896245316739301468379243366800943905300264696445150496462483672244993248600456875461571178620303137067152190137479861690029808596138015947895976759086093990138781280760771116277841550835282166841414390603343190043319804666924797715824912391593907970947397731265916095662547149506848249318181943698304009216658065167023487333534443125154863340708145527939131394690299909378422582417243979427474895100794316327167392220528180418284290528346636452680353202106435109598398672093785724174093464416127164201390615770904949745151498711890777146333212157579578690625198023686637273545875277133118931658931644468275075844800918268736777581917713567656154390679742750320706074312135953210962732393192824493294413625100223090499912276230442698366383988279899228057069892266053568157377363376699073613077761970644411343583127320958140420391958095995370891519579704645188950562329197559620685701755087371930870139918645917048418741497920925770994467740977906333660009497066148207022097000748092853863268620926174612174483159181307190070784375240191558726052131804658040674710261019190477114676952598392025278893985259632983779900471997512855431683574786377208236181148307707492604373144998609379710158328100891122968553102469448335010289042838543790920730721617695844711662916440251816878663635078049711883815691013171349365217428873254714047032804528642169480084017881915673833857244172511866161955338041489342061605323749436066922886297241532689762100425459902269896989570365555883933172905449785736944511146171213977816712867594873560247052099648851298358966998128794268529385797133222614942517181122666537320854204706719493034341301549236471841821001048914045251409646659454078905883537281606600626924656184985390680848548304465208284325963699067800973792114255910153813053579803379122160062247892835143029456697422633865929257857479715446288643528657380063625051941052720175318233480962424552429411614437457462516114593876403587493267152050679845391991283826135366343044024416740850915769391512568330321671876710815938434439986034893197486698744370028974320856156841681675060726630509695576158028061058224427333036699817970294680544221939754156781617805675931062593657637841291578950976649195932414916195371079430011423871090005220181162357112752510982030913963971402090823766557938758632685705782083356204620254299811779907465481096339456950118202474934639211079374029387172743534072092397761256678809364767625089394983717048407692662255714141364951962749542232505578076827598902945188931543750792361561250480896055080516551948019446896524395313472960601834187397653533293909985671823937751929829764191653333027257807656494451788186112941227772259369500706261065568460940503865911902810924980195083471842633961442961921474526945881030297495908551439848294652146916912894094357812361710030324281249728645976136357853102640375894970976266212282414845295066638910127790866774294453509689265976974128676265709726597595995789226284729991873467790611567180287902308103020223177773347588087969386313511341759807112057289168647536030388830442197756751727722967983725677691578867080492075805646761370448666132581770870108348431900228834475159485402493178205641400310082809116052172926387420837108194073561801792989153861174874239085159822980798641572743498141942664181046066079826063277675883190393594744286617804627278413552560263343991638987241611515211540862632785667872132864021915375472440667695032196592216846735252688907275793154212306854562364576995995793524208640819657365389368206385529537883882997233863063919545141987464963035968999765633939352982178133096776455036401327463921498717893500813901829954131870903659441751401242697188075666609170825758413749980002635695568417255050809131462478427691295933750422143045418126967863299190635477134160033913988034016105370609678326296182108736573442421548864154081386984500250454804855350668636065981407131389727792647105179564799695749618990497382036876936926019638846569950678114775337115087258828764316679002743521475843911702859331333704804365241206140380569014184871270958234290321376376127939807647554472675426576535030933520927352493417050535561908584169588086753330837436155249866832969984629917312217336443394653393025190445609095333620427486344827339794542740272985790613539330063348946367222483506494141436831442615741231323944706680852159680029991734149241669716743123900859367202610391906725607304548959240526299074226766812976328399072511247614241532624374559054163754760396700076601385537991138036643585897430948007724658665957317136535554098719386136343903733698347006240255506700583970823048411357138988434050166030301546639610727093970760297694545241185250892345923253111929006301246272778560133787153124839867529449434850083967050361253962886374417606535669798275059599156520361834684154394259925559924751065357357396464531494012282404713397624725065083080358300418067371820967005402005786217832644573190470033008184940875917382339511765769553423324430668676925511868622384410911017036062504065483473459278782968274128225146736923117799465424821638818128502045340488792904111244876925345104534024599558273923570402494190670341781307847012201413856217791561025883886594104492620143299590096594225196953604382280541484762542430106156614592144564179427663741146866623755938113088129876586181552268071348481924328461752501970787059339904814513558472573706065284995479562400156519488391663831120854593925198593243365614792150855156176120838029484274041791160431792364949656848329407710658307221209836743966071529507456396255977542790922770060917424673515750285316162762352392560548435948698619594248516861250369367645193171668564985452175183912481553640352239542332926494673353157945624167796084387739221949301675986627619440404650837774730765123956792222930725775385292422077104254371630691225903198143957040942750635296176205834577332103445808324819573764157320415641454847931564916365981576623996669152809239603076307866051123090743981504979001247178746525114927182920982564472163778113049458251230442214656557753449250672747438294596885609939824630537412616581176306673541540799971836857648958365741371223519486931496317090076619772248740792183450917008985010369250352418857571384899005754985588997189458062563238854143389459779994262562586876496888379851521014341597830566025555359822250886317000731849775005663165645755644101037994794293739591545947644470975148067622338498074699749778540522756851575718950608210297695471174035281922247451741936169403154946212097459495856132146701760719217970169272633098131448876069945034652620527341817106964541418885968337644804371381066982420207341322980750738443915268462340761393635686220735515708608850964564902218458479700747869360653696642311999039845803864529784651422655611558912351949252124285853835792098969931111524385024076968325543998199659194450170492427971186351810345079967616329794770604715653301224183542488109222913527202101193531350318990727522678614354807673483851999288137345102802556364049975971080225193022136943261117475667031943143209106278160640691782522344046643593993487234116644683167855547262892740785972139885608482118152484007711182977642027482071686043386006737574729468169510172610638084757914890316849663338580203943215156369654701505328718368788544961622194496027306796995583757378426697567594922041689329350125484131464273465473941239860311247544201846777732771151416348255240370486193610991226623286539080436737458749774914121615922189161979805115744221517308065784231352121383456063188281250845796669947357053979596229379815174640907158631366906275430490342876038132828584143422069471624905740061320603817147830572617511290516563027110832699247731878870754547663394662991399645740775387618399562766913986174857529481639418203370922186072821783230936421305112484343641718734150671069845835371387550004935394354831099208093561669494397353884684529816554811726300598321839009837773726877372037987999888611165949957846886347840251289642049829934337173252528282412403920288696815458547262598536698027683442450687369688009096011414316204566918171162385758097437072349020731555097570705360566853079164724126507254817653898465913141540098370432326504921428957299996400257949083284805937743683293480500643650758433485055438897751088664023520386911435915956485549792371397123687380759173109833659833981877800530110009428416870012895682982984510359957316221080100977827324616278031873960545409069139794699907973194861551177682379395089209146770454684478555720868976622686572019457834961991902309351877448409216936179229605980220758206187796524014119688665893342569197652859069797289084411541319394574431953767310936043299764184356575206669592965102577367932612860160772297466710583175645736013153339795713089295095655419455482303691929992351682016194745886290054641388472702782445197903482293041246930542855970265523026411932681856621669220731609556368540326548300720623082783746278587381561174735788491905871916124127266179985397863495491679183866956017233707175682715195387972296946403301080737594810398454410142734328043538840525744174857566746718096506551716931137586418999385160547185586170301603114967711279418862043360957594118325287958619434402960747376420490787876632098594165110747025751223155565770609599752180174896566928511314887878238552843152041021717178387190698213803942636595183749516278337703955419557232737461829268768783488235825137926376412006516918298997377602238074775674057817588975720684027582380799759597463056209749682558754292586375452438247015709207895441379632806882555655450339792870508409182935850587055653943310595321149746006543590057803432586557738901213643734388036189568197733752474699795695551453644978386020402986536893637835378061261307227243483249323653472348417673868524454074027134200680538775299952388431048597614704735275182656895050233339516150654109871715075031433697551950099821110216494296634338320018345845360741630781894290348214678022202606414546791758943782301789796443238997807105184271950714195155731629579557197856864158146443769473318775426032106499446998211279587297554984060880422698987149499428715104505372421565692401896546096331174299869925414775941252387228619747383648167759282656671972679379105582792942910616077210979021858941514740773904160337245867936053718701040472051802840746620309193210400864412093026358621399364969154223466542283562787913326686457502830574750421393243654716713104781594196534981671410316666039984985767664222684068588314138687654257777273426295398700925211316202886665435323178321391002786334025886758215953387676758178696626515977627775817401856560597308950411105276489825372030029448569078490579563125658147819259560718152909909963776687316289850655768747756603559560311216609227767860077254317917330343436504977316516836945326153519647778636351101953093908540320206402450598301473654273187363501088940776941237645596150979836511558768076217612534009401466756484409848893710587170850846196679926251138586706598027105798418910589814350554415924797946796440380911980180021277132244398467335819733884374489167772772532214220637132060411030112897532481168763206279176185645240974942841593388414499085556318527336206287224922422512712265899632018342274900092919942267749827590161456238338434570258123984747748629071623227805630213694127993957446394943179586391359166181917122468865889350635961930091359360213246267965413498396021247690395080131640557670537849426147078336740696153784993266960493220258716768928881071110876963425215988323355670659922077214530417088077233273933633056392875767101623947115554721867014003948746652868218669440788195232815087285126088940614958671421630509841136248465558599830974937746705224200818332338049411086003485415134745113318069607937742134716584249708192545075499171837354352409301716682012866860666199829974101117959459168086753602368595972267291631163429558860577404048994347615404196298284016963802948413763779538447508381930292765569454404622605107858861955029889524506540356272849681343689756072465495345798284516498191082466401521647144059338664696608032810569194208027942994002156953868414831753789229575091242466685659385919277510874095112015065180095873207658304063844225394543654461896161714587410314589028877996733542465201733259737744740230986042703382702615883929495541893557066421095314417658412998544308779990151742583051085964440137865043401660794920796342396269498094090640609154226906257513385133516790611838317682198408790019535569484077687128348396519684274333691753456161570169403058910057951995133381360224069614783722441507474437309920209254467749375241595193352033656297144741447196963606816598041553859759483905424672474210140618048097991191080513015449428584260215512110869351002111335178780852063859366001825630521472789790960242669265981298657549002915490987229749027303317394832134562367356290919237955542035920651549702953967313241865476687021442927812049965091976305274483930950775736453808847389516814693474173013870739991768465273779318035809086677408781180671213426193537327036296311997432601751465880944430063152301241887633609237431068854874395924526191689541367307227778884192752721742052005209402643055697299465240724541500904665915408429286128189339736532064855784787329000007253103049675599851570735944494228755022500033293500389771902585810760897957098408188479628334149311365028874601991097735104838594215866591108212453756851770719560077731861842140474385739773132181044230158544450753274670462477305565822070580570339012574849439569837083186404548347990356592716860626156089059699652283728136230916590119466389570517951091610807711918321694802450609889067038850351436439831541293578061164797290678899692708589679357731441752570277478810054436722724250195933881087435533255172676625668138784919128057031536014936269585364034382834432874872030223296651339709375148705997383516423374697009901226754344159945078860866779537157399637793032964961120537373234840513238302479561804105925686404772764028174496889723088325644305436978650787071618631042934920514833799061821056409474520798679839336738264060083924966180708169349674625761382165744805620012734468405328824099589181540205229990676835241581359239304389451127079279287315415105405190913261519757810695247272150642633028218374513445574396344815625710919472392749468965169841191168458395100088742079968661560883880788854360923308736892914403849499677698045218812875060623981370172612521694191158108944298405304774972383915454881704296464434332357571516874543615432688865893606317979294382820226172649846596087742143392166424725575973553193494464352240947068655490597663130649013338287594172558525922196089218117615222648492928815806183842988356560939694800745017611229903423376113765138762423590770328756916032561648511313858023030903757195366635582873931622166138086447390512372229802979637384378006230141555331472832703784437736173860089984620402623902600515092328169452447231367019681099132669006735730778640547547146284164108148875495793040650025748979586313127529413322247405335272524163227171019597493751956461476405034545876871566163995988421578249451789628518140819192513193095311907162594505937551387495335540432524508490930598215215486853027267838235040232300741035049771552200476223440049767961266226113706282529825142392912870549545070161718468950051474622936929871534750115277287131767673990370797368239807613438134191371566802767968373969830340245766681001946552577106784921976342290308419339033745290960900982831343022730039597205098616849714133595794891335573526679017248813116110361397842295795916340310711330347207574494110766032903570733828232626672843507047837031831209914259582219201975191174819853459970126359252273057200044008055443449109819506038257194316129822652350336501283406749676377691234184687609882482036428801109591142175538369011550785533534230121790975534384406153450770122165806428415246339871180716413977730809046499934830916677375606266526575951334738244802167049211519295107129650817871370770424696026606098845937944521211761652994801801218230107195763135131015654416107436142666124014042957560705128872636465100815685648848967893900662589061074880139474871570427380044244550496249351293942733861668048689322855973260513816783852744117174088966149926702772433584019994899716471105820343786345110311371343222689156030685651693067333143778775256743496711036906386752626828511549481541290393644622338890230091954592532571324540250295749028274842731971872511185154700588518419273309438577238742285143289499851485914850941423470579583631105197365717675155529812691862640344929202172452045031418651128371720139153723087922508030030803189687201985924782340761292227468588825136435952203097741040027577333483955737078289407908392927797964667423630528980924433599255141240402528778387162802663825389499499023505136324829195208623909651725314359745605522551538525570454640645441999236597467732535126291864269378575843531211042103729934856873853999445324280238065015744195171053256558549504838835410587729551787918069765336405479895065770460271018375873995217071099897350825584173623437209535288347346914666403528023714746284280427927229248456349768398682170803000566719162229500286470990636041043991940523258542306397374663333746767251954052460946549790491145734535576986268695937243614889526557845110174273889536505588607785479145464446838992638035977757923578687677159036776595738372872292411882810681042115111798915950527761351263848950728079513733837039919798046758180149403565306043653749710571073539734302207683073640481820227681616568622817792902986597599103038972409605621208341758253353316133512735597265042921986481479554142533070137996753595764803021254408126764067804138276121969425045101642772449244340852976741719016068170882933896362891006628934400897666393795494502336122343325345969171054498442011406281999268037030858603645880789364179924599450056867844143809719949101203902536626744708402205327333730805985226311385410369572068553446186230132225198685433830222578030368936149483761830845195833005819196576138847063552049532120897695068522782201896303127483047514820737870063195765437859695558889373305823974220516232416160917983496809120264954319096737866081006738291001945107281256033274348989290917316152068746337676815143847285282472977698370529137166207930048417915766035193660485714924135899642073519928526700991554324900173049275074452617904224919235730834231467421168965120680902539218672570086595122249986787019080122482366300769814809328536869741522520343192985624779210464066551705846264536974504503264925696776068533146897570274929470302143015145063678235121504351315614432181914077905928920390189456743612033495566518812900908233513575549544021499558939870360878723822671609413246150553614281433369973194371469497172253202761466083754604751968269589668160210606407379415475484249737875209148353902576097996521983238920519403720885619570125280273759445156318881044897821507050395037007664218483475842515049605951561064169439430803508215155555279646895965687169907344133943233247123811117194261710851850635379405653884781353431846143289137547269213952572971863059550886864313699132153612842944106340557896919651925785065990728336096064364388918375760606691992941116026267255063645905004835331926608122315962366009093554231184035781400965384564306430337355157614731267622793519787752544897091842220698423507219939165860119421529553042749392654826862625058654771085007525498561059236656506773218131563728029559017737633884936105935096545557023403759317861769295681967191989281852673210045331140324190895765379968860163103897479566577951953467525623221511640188875686106602516388168866761374777292749063520076751899789720414734506957280642926010179517877653266976493255781202057980000439299715090823899725663861935200810951988828959718581475767204649499573441229813477560074505109998264845221132416699214150706560526980512823622623769422965535579877876677596394687226839305500204997557706118046781885553913784472811310666710755526774610157339019840440071756583674976885102766412724744770162749916768309008383627093349287548409080041664741144867005823281962787241418749297649594286715633146906482400786733183148628490054820983344138676179833866731857734184817854077972343240079151856702304131536979418627995015927389529974278225588372500649186339571418825353114869424898427917680611862800906978016533589251607824028143942747278862704291441052030209752653320543055683955178130129904606594065770891545617284302516345901955273025780150542124741334513099957994592544117287296265565593286465405894675546547952888198469785868699992861046615504997810420575324434729367732813743464326404655077414007359782427951471199770447928979259420628555663649730033376758409203134655907155500627616570141978087731800073746646701341104951346827889259281977006417499311120289280894508367606462608447777520069467490245749287413961105384442278205668461775466460651261384823782906705047709948097981608079171822753433688694159714467585823075277452274249933603486629259018980687011773960461473022975069765356430833027232377849921299427480381946292205534905518440912560698517994592181293007396194464384271452600664139034702128499006521345079488380288154656322388166274540869037041440891514345370287874746459492643970678745771141865073024418346659525672621389466993396866080128883910119264925527850144931760542259544700962276521357629212080737862248555976593121043099954376958525834705324079983530335896393519387037463905931255622426574325343041792997852032088187905403745002999296084450710032437957352641597974280549584703653163422048538746283390267374514900389013555772109045463812694393612609999111517175907178253690017229648307359900147829054581195194365895973479636292791966489790475602327171000884578692377081979686261748505945041592246394236486316629067000267121991612542124640065231527788073714861734308614837393090809701178837810598298188906328899200613431032913896691896765041879126489395427821298505326603224119431139483840034416778633688937797403255181081941180317806383316767540801142862285113225113019255184546406481972635765588022160062109304752834823657106005677802308504606450769025904925365836264899826524765902922234686202691628527653625042775355514973595549142124450083667659144206579031573153581383651080599917821240673663623026790807280802973748707203741854336704812109361713832556237698583256984302110675649027986383234621560223988927178273198674479889085101591107042770560934727041702960443844738163439088948450990923828099245161001459129181315087189188338245894535659865965452084883234650883436998214385597584727769245140137306664490183211828645529846416714527789719974367742347415455794274158839583804179586367042959200720584899951528750380602500331111277600981373150299098082615259595560190865376047201472255726804499782129558086261719629446261521020209982560573705737725490921045803360769001438244172538062648032231179277886532724798878254301937290917070125489805498949116483759642607132853045673625749407724762789441310744240816306811677416117302733619437743482038893675779447756501774290767804317334040685673937594702565623830462012903472944433109152143000178830814767244142997670507965982251991047700658776767647844372932673619029976795826317650762248818984504045898375776243788538244906244908368318356864949517651306037650963457166520394108507772023460819853624088123263163051251087989744590355906150633777950819035548195393328999106557870946675412967881340089327411225915651483738167603556526858249859014460488994481645395879402488905295725714974815564595004116364322488769350235372007929307138799395460518136958150210742003663760423599484289602590679283016071478559074540654287023722512485890025950721025803663668084125585433780599936892584534886542698598659352549122067637137240873955387489044057612281492900488285549364912494924397571454043216775659796665178853611032779979781506048473875375887879096139741615695625464201564740636065975829061395226325813936079124265279373125329334142138429298047734605191106986916959637432543369568818403361478327539004960184298448061474887601395180823917245571365080784794708022893844631922189257081023680511117840119319272219410305624985825266365800624842985200926291018705209276289716212057790000132290269017506286434016894386309161898513790675888680953474084597000237434700769536628761502601652468171534790873046485082552733097810017165364275803853801542357194549623299539438582158325024694129896135471876231632174326341845785976983950809715079014432170562288269302198118950973214376717267575339161825813055075405121222369380003794232106330543713351817156996548105480829637236031804550900113985828672994815751259714161958262854477248243675578811494700753721439490593312306399989819544030226080787902062340760022431844889990541868674848530824025362324795624079339797626603629711803426808964184493254633049179691106137635944223036657390756707093065884914465011014148862059581348790666447119779507292109934948041492626513640028208108399822620276380567441073027801463859914344499498627459953114560333736302809911717327627067226415919149136352654384057194676673667495836021042449514648668260521857518950767229092437102148188839946976802528701325387981597205978740561727033103306631882163852895424313988498842192242688239415371365692518155195350111656661188079262840464664877876892667667102292060312424704494448198268185465306881053313240680123723231108472467981177485719255921066222158372924491723679020422234317900418101289810160202705802215896479280007392397006400679584805590574196733022599860526494388511038041008596779761777162698978947743041682324821493434811992375651577581855210466541888418126467113123182678428869228839734505864576059008154372186699998706097855505840388086570796566762719233728721557679869791548547178421649044317833026736278101360527392145852263215625237214605727833000097053093141238741126994769117309041063345767280175161845560620449757155372691612298261189350759404552263772093339560736062468818822006642983310108802874947042779520434732591279143047077236722159288032778240722953224414975855224429306089306823984866492644389111146631326203807793294318857534715364059427548562058187447664267353765626414315132312888038402996110262155858914092419189231193602177659498223970369650037411966224810932039509118283729682951903726656214910384322363730475089420053548117443987788000171175572498663825397688290919743868798275772693117696025273433374430779907394881064941612020478233955785257869482594839842054542274789943811553241598008938155810049514583786339186523226717079670100934912585483972359793627976812640701958605214132774623623583146541069865667984333152338304472188205227633513049958216487072345998352541156645429219649161915429006699658866720478959556975543007695893603884006753870101528486140149396725124108468362663431220432626552069933981595900638260646166934454063513884677340582555199521218029785571577529913732672152012158513143452393629701363174156127337613922672818227980744641652836862654649233341491418405450546345550812671991044282772275751920287093564188970334524212610282412732022767868603223054231395539621797163434676161317455038260398312811194924343062162845724754965768911152018421336353557155472437951163520217251732495849962087087316517691214216196530276494249756814407094380338416657211535804865824263199365017573337606761424011595077159129267663871968271581225180921284900817334999227952540104201513495773580210530027759869204311855017903145443348864627363369904244744500480194012384384575023552332850833307763329623156332477987330882636573251947042745044713665559853745024886694190942495716799068076605382893862369720012597031863111813234121567284674431473190624284337595742903213045380462960189756467689109554533972420534089629850393911736883109968210364965991832962390275173111861103266380571408766486254755327252958280486029219732753644905575679833728781797615841316472579509355988372190610823395244427195424234940851312248805291349296007526476805811912635772256815175846338093291340451144070632330889254888111849838902813138745724876686795157235268941262958144937735721831546223299890374019612738771614746228575906946506544094564530296654091844662775670138985630517943689797762208819382986160955549001222678113278535780041522623524554967078138935527634328410291872533205930303265997629147536735910344415095071622697454506792312956869219657033011510945237270047658444061463534440620329494125807492915030381143693500817447082772275253748974379402224710514715230475040668664441313160341815728899059547126104507233227632274619014809096085225665714614405117768212630220687720853382772068693461613364316128256569445561103957818073298464681197910244921791506684497827831215509355229469307361305624876860645334358477642408873919759588613078108845452311676612319717724474587574663825627846729361321755313326691230370572551269050623640959079458104670319543627543648104885278240602056712476172704531830471396585723018915084913811670061686672350296269009831225488354733321715524441848893167150722637868388422996621462015399151569852051666205070180240995432912405631304993564997696721546411854900980689870796385187446120395201890894566241305267259380615145544707143902747424514852989518344687779807185767470560439454852747960743195802536212050645342343295455216111478222944910794014745045036882165809209310229150608647458427467269056477371726211456643859344576314834613942681843786839892626088643599579568623049829605175672194097436994323585687126088653572530059480696550140033414282677665783457736168619209295199989963017400738879749691728688122838149225418596610880988080711277160193610779333481611880266099355981301396476876989813007330751812577451996708304122432617679116752408131120124238448463677891692594955671893564525670142552870660680153757333567522683385176296669312429907663398704352275395403607041729946045351874883593459644085688642629535526640426486939807716225215662344560131875712678018149225269154343513885504944013382523134195108294942743968139763898680460593471722071047567407391725324654054075378582509383023178144751611920196489344018166595363728621775887663344699563935244970764134301101650843072551492781161294181853857846094247190009976837928864292940225598175398606218067728852671607291236020338825054827037332817734758960959626930706296370658356959672534690815188382344562796203375123331815988807325700973473459156722265444168003470066152724197397417530538726503865733812356481096195251434225901061778829931428133210228725731489380912171272684944988321370313506391047570663611895043864549658205808397146305233377562642025473639969806949459727642180522695114288140288401506989533765807331436866049103654545363198202833783670364768751483267412171174659173959406065380187981735617451452619272170659478149106160788544884270884576731222911816757690615468459284893898722115071081773131679705236057128526489017027798826560360364259461006543125152843181210691481245148483199847456882001247252577129093895274328743083062265492280881862240097963973898908171621746870819642208999193295163416926650948368618937439115713803155584265157952433883806648754455097884243516657716163436826051444433093981924941667034955228799359345871349969648861468368117909561194814085034592929252865478106848157833283581836156130810839142972074083232434539431836029417428307625004215393664582226351093689205492644092425362593043915297619217425936966002799118791431550231754078783649633498287323373013450920713966358513472366360500806905487035173977706625650027880404730813425873843366440946907008055807713379385730954287106024286623068755927032920948445857879088331030139813313044352650554232680878189438434575757409102584660635898410600476044023966707779003076002607535793557570572462736208054863917612453226099325328088302850515707474590453383116123124408292800710492277752045958793797168011688195069782258604642654528625651068965279521685124860833479472852569022216377671803652589670573837813266453116146345796337854742572886800720504970174217849825476530923096895696625505162850853770840984420830877335174806022210855478726139372627991076426577747858622785549739211398109355563475738441614919093229283225012432402241860928852326643409350403658249118305607348190230947773849582529322132346331870144591805727692328008437891666944574842291118298526959322565418229000360843441628104621534151732628279917839801694732135753027896321287384662650845548671772554516512396403889019767238834107504385688763028493589341194517615641874580331364811916048740455519952268622728257794787750970905076584379491881524265548938120037622641257439034637104919503860031246027277778229347959513571331964866056122736851942893698947492699749005485930740598073853684149538460475244838895242017880695935007159198845026764211288516555588024793963026742474305220170870024303983610808613068454725052139782744058444187819256695017137988835352358852974607171077796326744775072927728714915010656394709178046095402454318751435845078282022514728582082025168606292370048695240573278165479339677067496452006605059488337533341833638428396767149630981906108077879273318327046410929508915573619559192968158769416234706107697812084173190415270708855284803337519474133024279005973283904830120008716178326332734615209822426815282302459749656982526128420001366754367150402161271844621202447318272483026798529897510534838880778876338657051484198664208324311157408343282937267613644933962397227723563232788890097382101204435550150283132610484053841555003297158112982560286811091827469425219961659888617954393071023058863656832320179740655608858388766642068406282691809464338859277221268958632160956780237634599840260040017984168617307680963348211995316884026268700318179698525313465650758401974347405154003701987851060608745994466950145403525700315463343181652311981102700832009938194609615740811912167380768981505991052410671914746837566627126007296927282268656536524699761728602528772627164034412557739350627352237477225001428776589721798809331924590744022798056902142643942548108616870683478162521738505764910726839378701487699821555093141656185952450071025756726282595177928405628829700011546419865595352544996834543991977275367577600211083015088181985414737694345938656106932073679707647129849355169454665226709047294295508361572402804820058257391837529525267365064964532820545082765760467886976329703744455637756378561084672717707580825514964501369216617785765432841502811835031591124044461803366199080052136088035738512840654788276905832668183588160700136294669535071031655856970419277860059350785515895291233820463049218144940520534997131064947615786044003208856028892069615344860233155094269047028980977793537885796495500203176504627651740571540617060556810513405639160428765594492606387332289997141083913712150343613364514225998642482920830564858975816032563831281613809600079089357349573108896314624095280140681909312399989881771763898555621844678030169346353090305927962342402106449294831020850645868559433312539513952483868889806234667948689065090313785545225072866226268387075001135266029181895520992629675692048459432624769385297312671050641686395052737901019432926945276489047878907610126370136794369716213466888141891993363958601800350752311880372725257289666607166217142440801983478847012145344728599155557751206583279140053175781538856847128680277326385785744132839204272952792650488013740178452192899568618682935722133951044846488282173589957665129647256363359757121458778333495725154613986016474539996485397693116732873730551902588835238311357879916801903326522714816421732506704342138609935553093194099560262759136869741526166935180073301007334771277014198259301874643563096590568345634047529332374810092373961657501382768317635896243281524728829778936104695439155035028265591577398476326430902916874343280159236172941536736171330029017371318443127049688675611298969326529659446549966747153576869666055829631099510617579271757816157312585628589712827642677917168931658000572182823577500040595670440910966673577965960525060506668336391902049757106344872344986348671414667822971457070330926915123679743067387581968121298642723541642698069887979093178451805915990193024320890415553049364865489871457765221868989480543917630846452590072752386292360747207015854707554052109965096985664096437228701528853392356263927312046559262864788402838720589249891362014140116438701954364134908633792812816479946379462758888908864647096699384993749171988260393172692920394277768198368331338379958374276818362166798712142119050119892087819383937764886284494855618050060890776507515862927701959259932442619273269727282349591170153098043676413856262557332174809638028686850431393791616885763495173173485922347056044303017288402580075390891136414772602774874599419250977050869807093641055120432193490349557899407418527130876271188824307832023819030076907422083327977796181370663373043271297538919350051789161968135373404265563118960258640067014831760354115429722378199219955602385802450366146783860579905698686355540647954895472040563943333905064967912674813111405107325015408056164659008063151592211744023788651578392189829429175508276709326894290315493806998437933333869110527761985924525647789587848205218852141409032305181690121457400000996644265987681359523843772789586952810008571125618625736520159818256202021635730837920924307867000796137369102191510547573570515011464338961283872425467300505177032344238412357186969741080593350583771270719869435995079630471457745058233650796404478591760716598888680826529696383780970611331371775036427801310107951506162854220632034462846632633274548315444039466724313311603250824944905053323841032493463922021870727593349291267258629334809932531823747239254168211340581999954132751701632063627822227138669138334899533671213609115001517313296170740208482441626454959049844411295455129254477851822119910940328781188869057146861771288605397996981855779221553925671787348163160922482776312660684745835366035159779909896769595855732036129228443292585364797960941205415893264294907014115892911151747514675828198789260705062209407774520746632170641558526617078854275009257951607559559358694734249590955813222044125667943467753504476532650197123737317571383329927089740755597885128351304598455284883725505348963823993522216929883021980165859654931248068372263559326792885178545028440227743854210228249032578020069485027716212766580640746044295175413491952164160072685065092605533789694772396579050461565031554592083799941198404765328113176568076722952904454592704054640301528777277580481067634929317134085104920767535997286296614615742022056653764698264317051380473406977987253088389114943857233740118607516023260202776489690769854336514730822743388273869510109983367002412872741356550372740594723656544777139979668513593162123433754485190314856734554181475351351824241720911801468584720800073086214474760652381302352578358745530182528171717117101571886256671263342372522057005040609846785448378817635810894853311597154020704230361452582059038529453305421552529753055845381916753218752859851621490132771902431638169486106817377218902942901257255798599068401968631641021224683198585311232356748194593610279655051893931450248751807494817730110934194701682708238990026147070236164387776608094204104905446863548549312230593378102433089512708227353144057165594711032300570595116958809547723393184033902776798791159248039568985022611527544415832061876514022222402950205455921809492704576693347259685762378792452978156078734321197429395839675195389759381487698825062538535877766272450754690246581015542998904807008925831171317063795044526884061273887590158414265417047560752303037514320873356208259285017826430877516092678982000139061350587137659246233219040444005541094239826790589788513968954725492262213733499117856428049837560966814184004884873012300129671074778436066123728541820386647634982744771519881430549191166958561741023343543306154249620117095447561973619240310366758344349464437894136810644450168776450494563465042127284873104769530870988368864624980955449426024187122657984578573930897539223073922614394396361212714694141022943976331155986107650382337084985608674101304473401827014699632053248032162261219872276106308296735952354410527837889212997617751911776446588160800065337119136129672434428226912526639092541244745021092606551372417341989176755715058859635759879349019753878356365836769726786356852258283316309747412348125307407373307360999819426228740443454965074729490463341796564687061738398409129385935281822597588214371805291329544765784586057353907770525579393797189044625332048963896018773846907201185313250307704106924418655809313046454482657603562089749087248474237422844821354794883465279340054035449593256847217774097990573639586697528608147981025414077749824382176715677478661411648398112379479101566435804857278367109160086241988575508013228175384359568411170372656114714123965187889969725516372279329246028440576769925136181587957996442755323730239420438378043723395895865462499957519674257552119758187295093541067551593982937352161115433301310121839760619739363947625219203341779039900603319736828395825324462716859168735502261258596855997293328634862478736415002413111838324520223189012975564495473279522762102123961221346390315891565946456517002893115111583899584089120679647285303318898137638858755510778688613336331075470702274141850036213131036184040695316880517889547278492009423042049271286713164466970085072710201846361687485658897041065955541462698287926417808359334272570265203218095070754674498459447013560786547845160459539106974876929897415552313396442264550136638216651778724263097417864199451522461720975708082500510805854447046898299552932494435507054172858264291404096714565622124370900409579216670651116500876064607127376243373421214908258246898603809964417618461868957256450273540223833095542510426313335675232401935751269512779029901859581625520605252141170135242919335404685921012941442825451689769120951443628063945714883398270881684295558235239973113917932009532495178945665510884239779931824108699001168417856466865172174665076284356763374215609616422026120161239468259640450662174564349458327378066661051975248187169406246660969530959980695526730011676599768840372867308774014466178927638224666633346439009550974725230394265054042530893228014677534643120361055779439552448025141223184821598826202825964425996761986739657065867591818307733655926649151606677879105189870615887631901907200799942001121060727352663581759714124182406236692537655586844120267568055981765725666533207020206468657551102157425375502224702151792599334330254134560548942682633331454902448797150672772028221725586771565787858205082025251694011435951563745165260857499459502543438952776800352026471740908689242351451908940053097185164723452317350692617266887826717106368817388157889779606063145218385877869370873454009496669300336013586902654042709727062360049229229608131086382062363237157746777941579740248453279808245063905313474244500679845083559448074476994541590643949947577587265167179354274249700631963696430029229210520067156761396661186662829729370707987560680336544905545617406880432897594744334215527869856297326757665505371502918513710284635770698082732923253150200691185242739287444349464793821349639800612978088775624504998845537240387770234830999860836699985975673710695888627191469194191273207257072377354090933966646988296703786246237372742097322673874205957598080387628843160269756877141258140418355049749059491579954586523893919474263932515109185855690289439346950557306625969226568916071581853723665047167294096157302535212660053912170145130062201470252349347526047674163959065925714397619654475299321372969486721952021496420975690368516373934530518178346657386709534879518172951449125348408107402656984993943680082212599559765421325735232103845486957843631211259461932672205309004614945705082527638896981351018666116539714240464717435865519629135935830979107667920459336541060853822380264841357187299338023342985665150850264934035280719715591079474539006551704628176246704455832256271752185225595735459949778314078767715379253656610547897685346274399613061141511213254846612266061878873571602812322674718192152888852326366921034656487316196542298536218204572623542147749897861213397902533747344614006806397258923978794408509993722074400090874480706386597102414622763051229062008549619071358379956148294569035103519834228731575593426248466161518945494558202267962443504371229866790094318156900416920883972603126893968956619312183319782784214225905522140175168037695649074338941871593217568492926235439373859818533807132051681630951419945900969497936354589480832854766013288294144422511444968199273015375054664584336359828936466003657831917243285039001818214848761694145762896153838218870189086341209385642748593687414944687582710345174149200431956729867841397888478664904599156961288191361810748094991041570897740126281510124286145286580298106609045525049938598791904197612084197869876039252775978270745011348306103501827879296599136285175272347903201973447314729270962221593942434781435226274762730767710469684001710022403885295067241005166763521237648172005211067944659956223349187398748395483482349896880523093470758747738523287792479812789691763134451793372997127445624860957667329382556818644663640699698912689812600586907008320976016516702681963788789760489099723055717133837546499962406872385569487506893829576325893802454115329915703979642230239954560954446411139136100688158673184687826510169657004922834582513940465515317019707645623861823880793713166520907862531081153362668942706122010721804137644832430328747731412024068312920145232611954037270151907848697015218143810435444161717341391631848565473766811107022045108182092212807230443329291246382443363017433848285842337962123234771177938956166872378092425190812960279364241936281849789409902089837989358300324213904562671267345728161863665893062480146095055977347354554750139602173216540096720666290583981806131688670038187059378106385774367863337205955751842769475832777375919463139842724393633418837631083464499575635293271675041716896988216506480762451820625002826244956810426430320038791711819529198531272936704170479631583803279365473939857208557192035086657551402004214770234830389426903212432500258859910883941811649772138461641294185517617144914269129300359707983172761485863250161828546086204179144853928206400054543455973041582116902859856829841050460286129650832850803299678651040095648664867159033719334677194350891065731490678039563888856636120160050805921745137924632783866573447286286303007729759504751660454550240702883062804035138216852573063414943870685159563959365268144969689561456438648804945043499022556711662996392402214409976894870875671432390355141359521037244441846307985416821904504338965724640214257044953562645495366225650066696760846093706482512743481101346727342545647975580573975059312483548763715800560284713466010810625466272233346373343005009621051946367269490478773749124054206998875797422158887968385177321406209871182774315762418171847869267900415587507121433601085400136043614323289530209572359320671415611071431927199267855857415759425770614649455609995524010019305889729272668590015287487546616870922456131331851306017555131260794334402309229537907376633122585990420900946722670259870799277615990000931776653161528804416226942792168976298442462708636221091093375984894717068395095634969733855835826081316956762157493332547077348832204800790339436231080857905294917244230690113011136571741367292031305878555105039631094535030952218312738609909579418876434542217174163341898636399966114987157781219546407977557588846403937077193469087088965536912400030650096894919810910052977438849063125090273785604677623772157855587044599761211641614571607709360754651742599532593471075775443502750536731341311421515232306099383925369138588458465583300328981783740081818750715230806200313004540211260868774528210801714080209025019302904190835899329186593845289040018496437142276759212891349268862566811377549367310322267420093392295032860515018993172710267170137737774780681980092040280778600554521487575529409902873248194013610819428190470689114022142526974181046535145505083882265139194530755489780807554244569693219671100571852163864815980987267933166439026522571381913093473631256978920110539609242823645591704772853418114026393219457034060179538856184362958946064994564456884534260278605126312521700825881938297030445738554413388360308065285703284651271685212444238183414201778367943701394790931143481425485908553072788294845086949935485985412704445961595466037043886200714466187509013042655659069558572808007436702068169721835178274287212890200809069634003777089145190128393774671339739619263865304770679339560519270510672331030954577996125205909606945242975063045591131866694831364258945244323575497967741239764794668815957641735568698361432731700290325161825227003015949280617705111925891153712912448237552457169647267653944748610995241519561470596988721410151580233901239761083088219911740432235600891179208486305907338802985277476753532255161242836737697918005443471172323345200912469080021645591795241742678293851531893069092932661524256605818894419674343456022709727360342662663293332460147060480984677870815939354282100342807812540810675593106964739294826284705751812430288413265395972587411964550163332530502538350291468614616174785621355745438559985536809346334218135992491857513025854760370301288176093643368407829046643979074260657889875070232936409310221412174671651380240699705434985820234902593988864248185552655392523719568127175070184212479142492901703214700724335701597012119744870055234050207732570028038799329704754311993123657068280793523817745392053432889889525729924276130454542719431733329906499702589876418489167682854083061104620934122171986713157686416154994276538409915956069095313831550309092016945613345417578475852063331204358017587209394855416550869151806877979623822521553425032213884054418730469599768770305078952437731941691159988820522504997829406594753457651159100787163985415613456743080916113137963336981788558671741341413562433600544793874511649628431398619498090600939832309009058168294722625721501353723887939378122086307990235097302051239224456328902282492563041374965855818486513730849341492435708684855135159799902503246106020272290938885380261363113939954246164878018279375366250470700691473973317069046849603151055239735175732039267415391027318967677120090638872888536869933205207556875837563603347508741564417601081667302919860840008803363028708690099681748584893218460108705858668248637184438922766552457679416404388318324234982990376540834768953770322018668039710107143904738681402160526756924847278468343160998429655272074857983721769597877566965816762265514263138851500029463778100995399948428758544194694347264934165127793830862664905885008132276805007586549178451292749263128208902202153260649858999095361534542814566649884653335475762051279224007840306588179317349691385419030792871411618904735766024650801839335389171063110127286667163498296242328941148331031327906581732919676649485007676812926993538799276821474605929527488749930372625979296166565877863924863895241511743294862177520541761756909310855888968473494209323665569771317681401250124226846482228750429231836913579596932997917249951862186844129607864696028982120058929309883877381552011756511419995279709411437881749449682137428601562203917992366860048544345890785336119103027378089893352524755352308438245867756621956044928479629946792772135435892988188021766783374771512365742650944277878804335057474740623780225900849411188421382924458214487334659190159120517905477677037123042491721162659133990376220832844427387670478374145472321879423312436075884888827715045861543510939002643601682992803197506809366470666203205552416310289845038254621159578764756730275268692915966961854961904440404466219953728982410961770798836608888765464812663453835327845052541986183376786461505503937902606819211419723841461286424584332352903222360905277755004712298512295034462883905569975981720603891611238060131318105122494328359577330638630925985110347223946457408626653149000129036650415696819102329796976984729086322986736259857848016762252651081120163354902154714429374311419756345865601571829914481186126877183400623878548437978651785682912432953988141623754485668630773766103746323586821327566531485446450682012548453592736093618626476619623199183353914731718582229857017111671981143210908544342509950317667941954485972997789585684124007877266186291441663986900801121968313365096903886076601284615967978329258803490420633988272079069928067903364737768174060005844154385815557727722956497525686438689492615492892422811034501612028147862135061650746318246473699751882020964358780275946491836629782131947714114521638211274778585210736765923913060868998506259211141528897193278701378254271342756342948078013316597626428724600273070945901109643398487458555697409245980898854354543130536647749198815068928976877790523905426819343577386344415133418627576363103309221959562032152909616111536857398502460586470105166770932321030649010912185551400802166014736254699907577893416679244807989673241799925035797280656378624214298434197250178843571769495769923984745251371246018470693148155082996989611720582171911054167665324330956734999515320318784523257613286231581752198829630209822874943114765360399372610663549507781581885803055505426624517938425108472627748409416255434123543832609419515909471680930526185806538104945097785880822141076356394755809057724715307228194873558353465435751887355124009187246416704347087371584931588215484345449304280820146553514695228084783053571969527375323791685194972965313540429490466047828855918514827632394899537955652492011489693944515057270017559068049990406500394736424205054671300501922625913642347395879496470393849364190980985305121916215583700455773104196626625077835124410776256252857389885896602141283489560740932546511813532435876040953755212156433649860471062802652027709773195155353964367570511511669289297922010971656238596325181756159324097731225345331060807179115050723027171482718014689632378298911206102765271789881633454175144414730643654303517316213084867640369143768443200165559877668733018716345340114171356890718317027106414452105849488299115311649761267849093973481068549003949787403563206050307362735703241596870896206437170654363972904691222167164278885353433721158314719824023056716166577691701782047529057734439704128473495452089601855421531362807197407863212316539783012975260127311264144074219061066955052598668135514950838403472310368703125551372593845851499270050132759346277744010111862842552568163298086149887806655297542608604241606829830733818123116149691793140607772024742054252825223107727059864126119414173144116840872792153039517943793250389503503795169979251839622790125320463161097169813970614523272262793660070862713944577587964262299144979225452099609766644770769921536136860252381189192278691454847145531289604003005373633181960332941406865437422077340300460338589626226249143524074564570492250449934933602939308752933492731296009170952248609955374827105478591610051383920476447887976836388465713305093291658206401694694257520296005566195780192767429345667772915595369902061069898654295537855987991061907045582620238521543273031940377298718451912695149432076286953259517115100777768328202749690171792568985456759565074175121287623967247369516741991950361100494679913552884022694009318381956460881316921126496562374138316824062390870556715397397143231819672932396892635143149253122454362890624416065853967688235767647443639801405726142598223425610742431616254886367181235328687781905059300694075129213484439877925776272696354453713072246861451315631496210201388385937144018894779215292776584543773455163438933719887384688111054867233569327940054409212196093434906759838975545248050545208004981527492007478773962841999650653312826961886770433480636917807996462568572455196288231979487489655770214796428945215128833601587519159538103708506397972997356896905840077884297089926084845703551831579008903486371848754166853832346086391982780878612397019471026529318857372148090467077624740143216825026101126676137421708981367512310831917641669348699848920291802778513558150100667443105973438339447355677251178364580464646154511791103512409349849185515938668926659381369611303540240672989612197624271093253858694463594230025417533215656572502436033038846139329939378659592796789640445880460781530594775101511536624544188983298923577756609314771616128218046692061344597992936793665024201796669228979753730736448188983146682455523073212575815350394881272641150423172154824435612441825288350035803327867068138795046279068704901167123760716433398555913024034299986141774716926728688032662557521088478421677452959102455067693030417913752457688025235898097486450246418876663753955536626359153816405962198252358709664137731287393367657901200300730591840963382082303320829895353493632426140290148461629186187652241110537769526945612120461870743123419502193144832363830882002756629868430784180656212360909595007846503364175480809850213547339492477584953045481137020740263299825807409682561279163485885165914475887990292137244847270644611909923666475752114983648658670321109564547157879150921747026272437336969748628074172581851418220835517052706348509600404430684366351630618264374660645751326570607452050372112015151699349112783929339119222396254376544708610566457427255692314651855352542600116083216787944297794249627338135768644669433360003524144664900767987001315602634920475635034952479198042822221852780595693052499024995443093926924361276438246861142681978180835020561254337251450869280365053502984326228555060426031993151279387411731862187969869976344775038869098068360404457437228628805709429191769339489887658098387379726923223596623385969349651233743474769914363186778270114822140166475473656103923727504174817690375393673340324675341536277301155010209342721836890941559108644000190965301539541012069012506039322699018115478295022820322332940051838683645080513195481437272080643753193222969891234924810385128436175602074022265582850851194699488425125888696914545815920656548779123375427070984517479370399569026762620140750648027503272380656705913217082769860918642944750689376838266454455954830894860432225745793800285031862765794069614731628135691744415980279981543559240681149066809467099298457459870154849087592460537422906403736044677428540601576170532587557133568381657407126425932480516913704477356837183071208139303528214294447528423402897522591792151607401080423654262857109748644667635714408207240081453381609232620352798146999674957232365782673321510911180226369399160181471229720238047574839535645531969454080022648034255526809057582061124447017577160582692570185144139446884905360720436100967572128027240520924070236106068818713824765163617426191339776345613831813650125609110476631833772287206373615954564723741474797489835935181626514376697120034135534989468370848937970738502476000991158661742991617072337848935311771707715239577674030833931423050272926306310810427056513028648466253920298853287963167762303822993724727238804118754476976525235078295056152553947594058247824218067185824570469940773949847206638562055732334456743456604584678377421369225890731018559958410688346225035235372853496331952837062509425074357699749702709405574704664521976253614179666244427266769418930390667634285923004815244522426168113317375863278378688162104759153725897596686964497614224837119437490408656025500721989350265015816346736884651287706455425166107828856031896999887126645146841021440231977105824149797043924612660441924114060146833811612274226831569054124715289799146450952296627085687501270192672559650019450069161290669680281044751819429202551154749424870440263118875457447610018479127818658173997692718081000728960308489860461868281985630942412167631613623776771405623194611338328074241849505346168611019460438253193097710915259173600553439973133313584950101728954718495231790656625098504617466557786314887545862387202610219482324287765298638522900425261971806704254117256223607164263970782204859859416795236085281768734277395883082869105633106948662360954350556575121651494372630069972250567830221191286550127146548708414022522315314922349722799135377306596695999875039993780944733190660110378123509038901823256243063449657581474452786185455973624700631940374521347289812152697247810912855652253796347373887167126032993068548886019736402716982725910953192407655558884450815785524584111204449029039069542391284884251904224558837117088816275074614797624618923560650081793494771742907012389798780782605135268992689469841905381462616330590024470471587655036595017893907658141376768737251305677498144938539294216678282025577904173265605832293549483419065860092896102964668357815529642139210405932759540606094382667031726963832041333549467969770041839785434204676632155519484482883225497653080785910603012086505540604211339040132688429483090898845887430230822799302359285478352250571849106381286476454845517180990773179014705880048292062015044206784539771774190802015366816075255031437382795267083761243204910562346257689628919435266610898013956245020951815043199823408743211317106906168240178711122671365966639792010198170427458666403689773282732783482435427265097716043180419225230944129888446973108347389636738109019089952671899719392145105811081271854681637015509582551670712406429934147667016115035544144119404195829177348510711212566297909861999999654084951704390036892200104226707869457972319692358506311570869384596961842030145055150259012051082639370399743654988061970374173921914446941651410663607945697484493484753903928138674582118301066751543184048468969246826195939986157162843013964423109548268699032237164474715727493632318440742981953985779956147592298401744048515304176679784900636994269366000284497979778555402605112130523495573706267582579971439599178854498833106655162366585612335925327183964661823764482973188933298423582595779321713014121787591941597440207639729571531892368823081936476206714779095674907015498500375134619114309849277077079813881887995948022416486580270251074679409435204495310385677664958793170239825103906602147110861583116212607186599008191139938159810192069800024112735047462889667190379074856332142834274009216820549380562707121808287309226498306657521911853464750185013532060641764122712846055854476173945305656074635668644245446274164837556905141206735140609630512645166748940663829929438365436074650614395070496807182684916370954557642484838692681841191211092490661020688468971507666032745057777334304162763710609751979033063295681784259746426287894087838516845596441008511953097858964472669069999844063218676205530341805186293917440636533292618922085631431978099968065706762305340759161580820082436207393230114223825630071673658277109399152262479932528001145456331269569132469003287389939113399249732448004587658771368214897661609726993825707651158666310721082849704964936552412922404458319170284889820717888485438981451291667587907838496209604860369296329147559498037031813978679755289373613735469627615776629622077190512282917429709472338701765344309957843106347954235348805888123165767870705850824650004832451106725338991623143190130522154367912612866212620252528521791217134969240669209558113006999794923037460128452771138770062970769971143803745511505798411100443420892244405163771450761862505422356703999622519755923677378987464319957016136053229116409360953137349004996901299566897955533271100138584175303346113402108458265475101286000488760968295521928474887072292628290457331198560439990051048470766310278591189112464625593190984219878926978518437867950440646584757228172315676956299175757611607203380465299487587933065448712916430752419650927579346244241962665068979948610327927376562005230575662079292016788049628387151151003364959271918795592587504074475390719686497938819762184517582625478953438513348198980951325077651603218936764393578987425718238395674181844535699545315008254213330651701030873253561161069326790930920286992237278546852170162806747599491391499370492788856716750623766241491470627964707177352085278101716733599884828137179609777795294172242633231851835531716733202997630324187764462354175968859025144782220725822193400721834777760811964062138041498200808250125500094176653928800861791778144959161543457724740651954213370876363668242397365632818953221083162458597516614903018959182319942632995596318561931155985396276054963997775971744604751755169760748356275981935720008229775742827761980249740387826085771712585604929460064061093673127899949269131034576458844861499044020842630270366957930743858844314060901436170601541037758867385692979377664575586123997893540001092857444958022293546749875437830970951410126183485483848043024138133763700045439222585371403771447945735852938845814289372001979880130845478189262812222019120462835350693801481974395558467756458833449627917263608259276112486592005998983218406010935540237663090782249162921384759102424114138283525160262535326443560057007084045119310665269068798996677189324926946968834526427309074986383877240528336678123137045533697999195782923213468213769631286354365822506924391308956868676974343340844475190866883257278617671161220784721824694893253233956669885706702469175860698905694506035655495295397051909949288584894558465406108274373560609412581371229484920447400580518730230088374086692946149844274867630316777246275240201540280092341527689170623571402537850879037293556007286459542849732776975398208796107673113480069814479425486208817046674396548721438545190427957906813604316634863174569432773485288101598510904505278953146912347550871562710391723957879287597667221516762426290107454033121290910112240832651769320497960323447741625216822209749915948920337137660945083003433482094425025108000420880575469221204932491412740342914912453802148341168367538419416019538892770332574663274933970568737254487550622141273750464064921367216536943111474833222498062154831615946544390898983096415330695848627858151477035152255146101564855680155145157917181820693576991718756087926468655559880166335826186906983549080835298392861193126653914027123823553159603815778609868241678428828889069354260951079324003869806311227988171991128600523770452959456466794331129299116310269044999208067247169181219944146723277613629229628949633548285822484860356279952084224105914448383351986521723314780164244324668059773685953774134300665516514617490353242511900702495760247350546953764335325238493880458474422798323939275858059539023968938237712832933855378730484423907837058366741966570661655005366451682023745039107491176744596320759452049546743416463461179784533637144301039022565082719110236159323695783124080932099889515512220447025195217689092004577612993889931672639165450735371023741117974677425892295344190222975888468874283967952844319832031847071119468468414124441867497050856181589021631719877589895257713494620473189831906849350590567486656066361494161872814849766530422222441375651762774368445361958950006024981300434509877137624632753556229022597004476935693867175752237373367639023878075084789993046661675256890853467552446940328970116709097001953439210332970063196426740105770080351488297717980208999511554350697719183129210142950004125473698396900926257576174182172854514180902614179375862899840557818298692164886698663110277676013148705745955340636022104938453710867987535523004150844755543283823453405051676367377344357403567693605327756397794300156553966443172924142822203726593828144945645741189582573967636074038756784689191341164573655268448231950716862099989918547408167476965264593524472050191577701134543189608666298327800769517046493741839762478337097914385224185474903599777927300185635030694175176698988283379213842510671402645058407950934317963443452138120457008634789464996325026958068103436939879400063643584999081604845363833459384668460430682152572885826169849641948253849925206289350040698807940798319638392364438832996058182551307683066559093103768487672433203894512823463407012472146379676744352707967363905174983695520554729230543799939924668029820605626558677183656564582624013416131229931100753179430055430756734790110308133730181874614282827094882837287214915966653383054981566755231818611599804937647046703522438915067890905160329391523227361170954407533716037477142326881105382638388724616736166218151780527638106675866198626757713216633750586919961818088858090304534169425226072051742844385927206275631375147296859507428030951979714172633173936801040610661368338612971585116523645649780973904823670215665424830790344596664449773327206540199228949765885056515003145211190490143177057786152826163455581709920603556205621703366716802743273988632189005037104146615929392034169169397320699281766417260735148195481512029080541467249755453718154240148038248804086427977435898916121703545051817043367907449319012163881476688295494282887660844051963806154471006018167604166059678488314532871814201878909597515762966045379017566531502437392378733758771808710972753689391873828700957339254931734970223666754781297833868661723105895230410940674846939354916402197224751473583937989450054307830493282976193624328031920646639193485959311874921202328497675017041446562729376953346149285647905661598385442545209062165220642426431699298507880496035622058922644411838145408879404561526046426460815181007907862538088884591644607492907920147760617916547750364565430637191268970511071299551757988645032253960394775735961606513337098287609896749614810925504163489071720834849130393958561561537885112530584564138508939125168423329771699984265597345688616716526815817442024006476350878361281821614624576413259480356742313613996434363939134106577490054718617459928593912030024662030855943042740321569618150812908532332678272518546246518778080661563353942361750986857753055772603455004242876288160054663484358359506003990404837423254917922791650054438450736522651772489055092372118825085203590615116012910800583263487878239155191885536884581095202778168211335771539438660506790606575873343665006677639952121556724806326098414611424937098465846923786804736523017031963175304678609446974067019754500307475866712471493300607229784542982659223265098713548763029743325365143042711081497001609981870871931338146297644845459522024096288450711634827748993506807615216473091626595767334340149745088777886632809127090068849167522056213564514483505541991543064448035410427618714232502777654443118991136758142566482245467623573526106511979193811458531162067018675306370210973608782253201201855446467387825837912129673150572269918982720292460609010004454649239226958238077022614346299794403455013628601384481705679781940788670187524024542989382927848032085030084689217768780828620441777668673017701718587104224467101212415866852437317683363757435749222097173538398504962659141391774768532634345420022713797515345152912358048929562156322682222400455501982839933600317571985446951201781949831295761440086304123281565505418016080796316294814049428897925168421512976482418160417326677714915291883218215958621137725717775260385358302594313411040312818403097087353077440331931702340831623902848166686144382820598846931136660822175827783304776185755587433870727679264929667764527563437097271524514003969514647294808944271904944221658787962899231980805789829508490448497027444728150945074527146360454918127040689711309472598263846991669098582844634851596457195747457894440780305698034197422651475818805997820997277099970659886294667088510718063885153628087046460233044071202515988407814713192497460536719370979470847468092494296759992397477772012742482562248342074242053795227830775917118530204709061591096680767096775607683686664863133024055644007860205830513959200133634223055604062595509778658261178750700240346141493672030365280484594673716033461580776687394788409053193115913072433035192388268292117333604765637645547357086373009047048409199904531050781030809791226107354968441180657282676305029453196175427804734122207218135533887581856953272435894162777266445191505611988239197730175843646388646583788719291593510968294097739970291274747726831720387589848459691646207404985491511086009188490915906397660553533373042494514639749139394069678159623311323139001190957897847056204825501342811755570403194559836796514760639714804142605897301919436389788627575518975154253662798363986459041752373036389156743623838244005760236693218783852568973512158019818344441248186845272738921149746650058304246842026250648640254187821913996477878447691641520613769283968151955660744095317017039947486727366018946959882938286323004743700138457968364227628872025101155862908906566913606630698994851018163805208969005713363399701354271878497239670995487091412643369847186511369877373488115125124125837179995848348524941216723401048733049182151092226099389761223205249361616085053898194263431035145369044449963588692945528880751620520554789494440347206225729903043072979511483043440288989495763563550024485874622835820611447747276533804993623290806124154524063867884880660341906423825103920658024353916814453261336903095582691246255473770921939424199973672374279648706655734675070640060707024313623443745774105350830622059374992069396949682295708300592153986202034165993769590559133288797862569209256736609249277750943705193996257707148690987473128895276594667672351242087581410189395721858133804773299912926594037604955548248302078780128635933052599796570343332320073055191079673236451777911545350381506424498578308191379604360853256583105049078980165196811135988675844842094566440324723348227483549414561945446415986251235014744920226688580162474842760177980944186704487002468123331777743697565967890726547929443940469107619103470118863143505573889894537638998555890107594765836901854748080223750624525505763594704761743916163448378835753368529103256987156423946674292014282827471636766763960834033227273888708884511039237467836803692305123034978075849752511831055727744867053766594734042479172535736755819375725596288449080110664441675438547228923033303672450855760298698576011079148544167349663858333104484351018025650210233529454763151732292251379980406803501240171797780457959352893557462988918011179231563350805135588969588515946692568815048636373280478366808768835713359090824874235895692251218534321357499694996744898364214581273169990502621589397369929040231853807623052054109771772047296645126540575902367298961102369614659749896709095489210625064955282659612743852591102410123078031497917571072695267281319871798545531782399408857721614539415237305265776739208668109124626294106362583483185860594612467379911876925157337239498554927347357018735957255126822245420169769586072072877460934182190900939264653856386477528741461772996114939259006374535625303083174988432935812817805104322299711224441511208269768167426259126786452772737775273998545561030472514535467602240771808160945322623169772999627314405063935493614300329000370222162508852218707943503007480796672451117061942316013042672196337414347849997715509907742334223655087147412556476288638438316591514990362374586689672148447313566870799390164238111839962174796832160824435956495169014580249255207757673136011738513258632324198863422473426491980000481197234750325615828308091343316650552244435238716008228035409403869214266481102169279541113881812732201999137646439520080203561067474758968846255476247363474205071126985703084178246811530516801551654912918639614129241826992247069915716580013407175136503331887714292140557486950412115927923392616837975876868389473027478961474861676297685829956228010174654510170112156125494130190158603517234647336671683013499248017422513929051229420944559920334927603408946084640338760953675963801909194175865593128739602791251059654044962121517702095789710665525923697193382282267491322907174473589256504616637356323687106519145729790961217312511797846672668827330391053486530738901742827343761899789189623531076701585142453285425101227669694946580772782287268833258449796975221360677681558124970289268946395008696088683831954944446782987391897744371611946661836796092472681901219652200966510256967557421655559709463617385951901907803667998588726281821700162469465174858763677684267875035247815719371219989660930530807126242192832223547407732670123930864117958172168630950072250011908936934022287197672899479993973539245316473694535674928619824249892701533049031342710217092763427697387392321139256193396690524526595044151138604653255007823514357029911169853347580336298771751407711771747888519445346644112240061926575023535192234588394664681092566845142871789307889112764539616153319528572953481722538913108821095296785275583232397749087847843029929960763995165637532502415276774402553737016164846456409228229640310885932408030012997791722888563781918324029364485558863888076178945272051832218487432495594041160987965977955007806534367817893072544358333637613751339444394755673605007265396738395570572898691084714648548664493083945158268763365619048744066040316695963755047530112719290143959056537036538776057340786577088861570431827468446267164831398921785036516853390666009863573630768884416883829547754431145998985862129194085562100339221568501505411675428272275652602034212411316804610907777178514882816245686615613928225676116676066579275738498777971700826379145688440297347319789894995464435020148496298713553305687600155239115548887853726637330508952014350496654959557489519054464275616390475352944406773319284694471886990192905745421068564803780564461008352032111850786314275699817935234817726061399990219561877688445117319798471312769392396483269659241962068811973691277466479119649347601011802062330495190370353533927379484903654780856441686442300192424063210365824544409363154472551729588683889312275149534614653346180420721208539536820702695319365135960570952973381882800926801252272576242895318534660831889363339937676490119229050679319508493041792117584766814515148651413635959188106854328441039582297859223612857217435829209497346683298714159915081343173079656821213168629823329382450650328036553604124660520289722993987098259828580367280713122581472346802473060972812158461466609568204888133519733152563278886350412245513443548375711247050174984444276575897565897021069619790654335670888331263349690881810441380170387416176243350066867777192088117830587548347280874883976197588895499583938032523164803742947345272519553309067355726410643535731419041017323941226020662171180861610657789481105443380330810740459072196384868212196534285778379917391160039491266198900431707289200370834933838355781093734265295247960973338475089091430092544042162810701131808824017253975744020617894384529266971870777043890651943693312937577838542524659426518808926748968910253582752358005538391269077290554131161212295012529994512596464192410146890232277729859862630141939346316212571475337521906915118309237346107481148056557789441231630373873908754235639111117764311268958757709545109381426739001842009045215919097649043801731561319431915958867940402870823097877369534880492988792391338132222909236275222344410597843245907669817445941648060519139764396886658086585395980085592742592991738562967734825877636931054513428021587288632705802794211027620779398890793758029305634687796710166265041183583593761583291907967473625118162498699613491153974675404046449593040898511443612792380382688774708995504115129818240816066411134101596555661441166737161698221246157424104322897923087381599316201455615890672163339719583246839918406993375452873904630486735909010076987079286755069661672080154495920277408219590031843308050125891882600785565045328408502502841434947059471417271296931503174630495203078425242257082540500144709737839267342509093684261657204472031916833424562497200601072227946535058615807259834868801932275691887176461383384160559507293990158893379283007053498067998968605938377368395656287821890392446251608364653186547642077765884750339334733969256698686052660101895933653543870706479390749422497538145933888068309748475644389837396483632207147449629101758653070855617542198209385257288229233801998170501216144274008184555860354763230767600856777935684645825663838132032774085729387792817845351348163545652860749033439502234584509323275214492824623241792415097705363134821477159805182917533019337635387106416262058736935131639797103981682998610295629120600523070174270277958147648848823777744403208089816076598789917201186561610198903844210015036800598605081060215472130203942365701174912223936807267177575780046997103851970854693470631894153014644266844713488625064053525102190800335918749471681623577484193309964352000478482307834738826852367486962529758251103207066805772369101170808577851407784566931192756398483756452781327555866663587086113456551578333456393127975875629829814269667227733693913395746791960526319353550277131306160263323364155851645144195848972764300052441783745399369012677499842169123563682171996875245518483247881920843995765000573835902318275759662621598719285885338597637600649124056563779369729691522297830913146235225695566052567037804115730949109196529555020279832001513426761578568038147447892381825630610327663059893993513474742547979714376874079430842154719196623116484882331008449194771616206516087898522378358710539402635040735524255392910959287081774318212924111817001829315579859792211631025450537957741957738483724662997552024441147874563118232404497946871697676462221165066663836794061803617829918580275788172874253972458454759487454232550668706346334483687877303020393973375927964737448747177937952521508586477170608263496373113486946696382692743140097013708138094453396589630930499652693447117036428665691442219480736578985736927104039420218361530220156163348358274517152333994599139440667915593293269882250497644157028192049685445281432767855325260942128318525083239856872145553939322744891835029626981644683344069868775289900832473350985497998925705497545802027532200772586720113548668192005966559911769928571240206987157151840975465352831883317536346853438074646583412161137051262611346832621883628217612254985970622130784670479508483078349322771565986289003579545054723530946316701766637177396697581739214819447141384933240711732631750253261747185814153880168170702530841817079329444447527345072878338669332547074051982959553659414841605371266467695583071507267329974523539160231917084403452033470674294002263040830661071005998355348749350147535908411998447423727142446933891837328448915427352920065726281234374863045253763564345023339658838041374249236619121701585260575900008941109756485088565910002690308639943301343920910247521203660090783581613426757565710519748062587871675917855574355886551085600986278381140781533339341732323249090255247239958742025026706475900820753168076956332080030214648719440449396913824893209498752086716815408925555230955516607790844441817315847301116250520526837393588379206083855597157682062251609496810731532715204890493105661035566204481410245441714261863968797705989965776636764161736352211526103234113554059059607550829753304032099025914221439270300985230192736000731267545281862277004619918993531278774713092013002766848098111094913401667676834346193253863851326859341192143654888247574396578944434495411379404478945345888707255504490628182382212104429355460875701730220263491531380147637278540616126452025897943948986877876387225290072877534665346457266392125481228868025372023313488838195896730303334279405590979016021579035265675725757832021987468748541873007053498427118570239191508513232228010593378486935371792232739688512283001464587560012976104262471241098399325910237886366007134799210166826494829908167053149516073381834119707097720228402701902027510666399075459752735217646063098295191368440783626825604925054184540251387446236193009476401530806876414257752918656888803964472287345453527447122724090585434344753263597866018579834263576243592137628910697935311060223729269677493061194757829683202278455747834102068969921349445494110812154319227965921936376383781846373219201164513180097921435795836646233135107459114995069182891266157134778946874583129625203127694693360097099359073886540511991728803729650415622669476737715429326288273954130001063659948907205147344628176490942564808883122410747129766917054824449932333292594158990864554284311290367649983454894886148696789578281282219437777789062615153118783833995531392488472322492416838915227059169332076377706630795324161120303922724509782120484391029697250996950284742066931425182508276051480159123577931231821765125253258378090773322078772669114437149376564607057997649225676767975725086540855139937203342440477440506332311576691195345823246702244756667936756860239142179228491344288745867540395323631789851053389017748139692266947521126889855390661766081927388661590281440403677862295299749006505254653167176526564194832366026655922040906676990270614653160542472627865509602273927196187198741751272851991490979085061580460763644327231377897662446434197828900185548772981297159897426254544627077740602779731085057497009725088954780724931022759340594594152511052648074871548590503904355798880160976735837729500766253677898842167747686096694802837407920852774608174127025880367928530855208193553312611117458651683455094354509878496905526612213653879850252064516322657653706881426952896639692727624824982199704948531961165425772503375396971244225829050776412593081758267850132083020912627820382015046742021143085077532875304935027147581045453506703810681284757244162774574793602267456409296078391541364660055906559192699555121098476618023494339146641241854191243026697360327086886073284061379132778703394943506757351778422853953372572293780267295305030181359413585942524331383834043813037217773775498638223949588837818636563422598740401672858208210444317618838819477593260821881644793163307114709552129833074187093481218160023105616856507485699771806211553620013462982110415213280778111077278096154795048980060493713532355614349415829969008366120609553689796842587414312732655447736150271467280632298713209902836700237292541244752261187956092127922073281273944384010240652106154324846631538038477587239543757583618718971981183362819534773568295867971416005580526477571750045867442933062541972388519699452386882153820307963543039588380880388906221268123643714549049557949190137925004488131621698609595589852004896590068731261732270964383338135953026914689143787664209851794738228601225676845299866879453368055244851174860178859884278243178983114045242941867735924706408950532232318423918124066432178504216843500729029892182466224930207606537916666807467647437341147031238467412959326755671769032537744596734904263170218892913026287339392998554107114371974545931491429493928600619834732094834490937959355320025915677507061471947383899822987132031411296188007739272617792813556378340150218822243192574487863712970713304015559625344747640631983559506725981894266453512789821993532474968380574244478911454267921391028033715573604128911401517021185054343312298294533702025115827723983560739012300019557512113454496471977300351033510239683218558196496091534736192777417410678736583849595623588592208327879219600304409784573774703770982253013654220772942250219911039357814085809128092311622279495801526885221715219349534907920359587340376019048097344338201120121075979036566804095770638836914493806388401338736586261862507486014626614863183148313442649868534948373881792089681790841864103104189623285225417971717597864316090238522177662250079828839625869402341053774526725627285493421391997860348959187538977750272491218850237420059105236627256969214625793851050526331230609358945780124701876611883195477976768062781317794577270455485814784267826477826775841651214693768715070991977162451017332471484162119959118878714105216828813833254499330514486353881455751456475420402307026920538044741985394272328752457945272367460680724987954653647189430391536166585962171069188666004093824019203218724156241011692564954197051017572899262204194172102267643612625144031711526263696948536270090906341600332265500998297389660288574819029502367237723479706367980340396318481466796285682483571886688934907313605659689247303897548249724183546335767412685337127942201925082460668024817114173322237177319860996143728517966749887580417142294522839111095562176964006810305168473483779714717131696568551279156917270677509635544675304379122727706364846232518563514569761533488038465468638229289300497521974741912305507549645874127472720319978395252046036962158881107698015011791538645826249359213512528898848292229006118665133665844202353249984857334668009925873800568607936162032407345658767459452210198862685583902658721696907922470589462816943501268246524231939697907627530235008185013487784801599394564206351552495651102858006302024699629743243762512078143696723926507032843288550637178706447094431321960263511947637492675144627877076135034051146240635512364536774811463638401780097482069436684589542647367764459908923224960691401382929688321868264183872705733973772949952007554890362257747685474581885168560943442208017178396118633987662224124479565349186717611402379484428305596327066838006919776804934072006407419630408066095453313501716078867194729395581778790832656032860938833383057322567913386257380096357631494294562270430491867552881686315918977265493097597595616524582504710991921559715700623939893219998138840847035474993593806506653740904461088932578406694023156525642731004525212389292677438189333385792218594647394427473050806011726728980930943508587370485739643571232008916850230327502141179207471246177953223746669504322733799658650485251267541355345680059170159750623326425159811064330674202157109771219776465986516628794594563218585206244650777522903356687256629547524718229010938343566175563973597121079926971442227922756655806735473097842037263097709333136050434402290975717913087066478630259061269764593118232784142368313934451690560766766213566339041659153453616184472936131806344705734139822085082783954258049341020761701061906337341496277919666578271113399796412551415372861126712913194646953307901094425873674182134643428239323489689998310922667363780626823430985443837663019411531570864871118805443793297385057932355739205339004582688958214143437465705700844944295475883558081762207577425484945478069374675334342357520169186214845110953580933405138903281602501489367422648636380427482873215292740861214386256075202899594826691155901322134528186145793808993527390815682058657873464934540486756565296959333642186380908344243561826408601064308252496074031524901940422574873646386082848502587761662728449761666521474428635040572043407799258827061017429231926351155661138423950617634220264666543490477999100900571871945440246381394497082990476115546808063488721536353145462078502173284167353908435279029744456130309583936837894906229323547660643678845180436076709893445712090316540859159735310413134060988855277085034070183763967891682982980202008316975640578241563601211753543851113761242155442066875652771605220823231299590635228368076836887222921219166988014934992924213374070265409523580941110524699066637202051266345424949268930416875729325942353071899903385589559663821685309735608496148591321034154960006994855519717967714669465358516927211386609678943618458224013684800373427674021722236608033396373682296227732712037892559032272492656156223837241419231212365751405198154667119399830747634858791484443217016962533878254859957672722955227680994341400787091807733454213675576599512192998582889097249109548923071574736985723482229989343356253171079114796931959238455929885170939387263142271948543282696864955013742570991747246501026950894999718749107254066507848758095254867366529330868986235089318757829583869257536803789474796507924560985074365996462776990487417971573886874320716356405683525512844210836723137580075661048587351135865104080715500066835690724062947718904223518329233150758629648286465726854440884505655217396364692277421724204187834357148156291639384997606828792856921020226124408661630105149652820308706966099873155820447137331296417752875161187136640761043531717192328872447495500581612051307508279678392731960803208076684050116823246637393483813363836717531744565920962853339675230637545510997989115856747421414887051083673688978027991506931973653899450269309107988751717414466411146811545838368894989420932287826583879643982908731892736287931603273242866749438970706776655081408371333514781310324772290822748716245381191409171042668154942958785542314478223503260541647060877138078305585408030901359668108023112121868290448353955326884790865626274276587694975144000603782083575662898225328877679997793686728134829766199068044776279650360179246011307626939705408032173899824824841766491451091782502047630768798246045044216720481954984327783659129397464610177116695424906593342803852629533933098494741071939216235841774902991662140797868349076625514552497415406795649997698758526183008755512259308042330527846137066845407489028757440377451582788502569212944243476835602473056921948755856911616971353612222780060571832819791477785792612572931011806600874320234140950794753083870705279631525030193695681878142458860458812592559793001566589153321516443208286505216626146086692860121573961602003739221429587897955761145029099429811877902720879221751268667835676304733595533861880595720811277686960593450551144299790138566676524766844431216038537719576918746176844057756799094764979682743647587319330578723066171282530877498370243918834476296614097585397544197826598035266263662670148125757735358969109093505204891842157173566110479244283592595276906146120553151765619491778943598264736109436731945519679501191381145392376785743370729252263423248752166983265064135310116496749002889677261174331497087383586587605915539940271074160874417414754215202506897715005577912253905460621182706488864893182928877983449667442618842091247973469545024574678134553580105679541045330056402913277501520806561489773894918936892850697485788405742131714257747103162425135919185464547831683703048897101366108219534464479097881447662195685049478444104495017542131129687855786459278534708284074798803117611652199745718574172340734867506462858809948126143921323577937265076797050936299916238202403090522223172360379812980463963062127286570499026498060120978948397215424257925248725268512981546953337801768475905341848150306820606375702519679715164526202741551613139135548870521555280737377692580071884554342427094715854787602277442765474902930389422453107418866075017856755357139192317084205105498960125832890202268441003098652308624053021555381261658386117767773371747848260022428664887349503420727333663898324248850740657978564949190309260887192480144762549721893181342887206882514570907749060323205819985346594532798777742468641169172846170688666124571220128108596295810354559256731389688922231289820101957629795624365005818057779709299734091146073547872769848663578494616335144122339842344168107695986226301265956366281652189695443675132647427695394753379708749632815324808444467808217398029483585671197446000907640753216676448553009177310527618369142166148897814602342887007077184848346665722716952815964734885585981313186738848929959347217789847466717672038970190450269515624915514101306213085630019583851073646688114526314494655077068899066118684678329311332191873836259133652164942222410624461392110204632902786780327538998454215782634013913742419000077435058416545739922950906305651618747384021732259347433493639309289353757324838896480965327848708773160213066703802537416340607618850457444373793416092700115362669616763280403426020676224607512387332206721586779791534638553660969059483802340250862895549774698663727101876585257005498163394010925815404869163909987097940310221366169401504738833793246873341963373347987066616497961497299222767127491582463510164283838163189031446320807057183419169096292178970984634074874356424394228545224615281528672439027539115366231888232450652639210348203480870791419726900016085124175999055774560886546266153633791338654467621110741547037200015988519146653002293476330958203233138721880775255361939079339371579708486047172337056797324219750149784339622326279209324505359883133849578488128968902847743056852673584562591008654854349498338964386794480111795053796530210648670879710694072054122758901856709120149600621595121873958011068321233910074622719405213469458226828329401171022722418606898558011045021852848696906830650537584276120581748738031874183870124634261606913959783394675639735051595635716334097951414848715768257748011144657899046206983515930083822474853216600208166405773100418092819489246542869608057757538402096754778740771171990184163567003999237889002542366229959224311221238258584813141013170582839257477044160137045094228449755647158698394178644514604190217586972074412596089841245203229054113702687144571489906242518264962821965369767577443890099979199111459776000521388806880381317135714351918198069306532371645909584845944993323836400036821717608084259929971809630107304335592766396843344972891612342321281750639449637828993944178466403822113382036431126711467102658547279648041293517501748477748046257474069093981629866729664343131891939363498120461223080914512518888400167435358066469548653452361135741186488723352508348469781465413485400071982930273933782524092435532016711390490183971050067665336412135704961262251041108437139752656578725969771080083012011407979763156559876463850168106441182110946277546938407746493762464507841564516577673588167655951921019667274119744031423415254176648072219107278112299019678174410634411044226163606427983789036188271176498705174622605670397324554897820470309691006268451726143976771219426743871337973693211516134006777287578999601986342158990446818414087523543087864358394290284609130638627584987044110479481080904575338255355049937468050856849769173412594142416289522811769422570352156276593832228042374578738864886592208144698759365856824816804498087225365723105411220342014138661718191440229263128449613446405236135168096610631424161774714386499290406977304222919971131199568838173739536428092904619323160389857096520740555203292581632311778622399664015638003600153064976378737513178058172271323014041277054016582228182927744667857007160404647269581763723793921192968897010228351514696485125155040494321546259191315808131030368597116807249391163705559528974374266947592515245454103480482314231098334436400639249646938902596055140149082860970648932453079633975410177256201199259347765016687480529869088597226253005336109982467783626930619717331397166999662772855604168140658069047332394270799289683481597120393495649940482234905019995604777609232004654529216902351797099514831461330678419745115161366791718349999684627103588922300236674311399008455050271151446803641433430075273101518358930274207162297447489242428264587260600861702083907402063913901327066498911041773214644686141766937295527267134934127221170943738897202156065461406629956895840217715609803367169742761504982084505421582866839051482827950132704691744886763063758157905037992599965358854277022338752545701681518897233966301923963838935832474485470188091451811594372695407944215771849905273162711922870236211819389961363306811019074296836621584697510172617125261248070733978512693621741487914719134982352666440840820144574786163071047565085705612996476657656251793524221485350863981629392299416453725827760249402897486239421842548137769301759919520630190687529346241106306480515230319820363753147463281878828786544278281604859592877952562034603143264640450315910986596958745717980975474553668227736315391160774908391832393247936311110482249825852654734150212323220860585713744824773640674111296503136026969202536882766374851173393724602150313833813471707585286846777640968213556539856463392293243916429258920656689995880571407787944269248667928469317610727232479111525506144810960270248695803586807661020883073664648826271550359809264903564797440897089046316072254129912857345965576534002536724789781775126128885544134166611604473622876943887500866767687772421815694775468378551005184572441690547206263507134952970106939058253047281830466450185186540309842837965831480037160190073381069120201232626214731422754560884568473348804476761918757565716610888575590809761412409312757924678877516279778759454293051585325155104305621646841472378053294914685584696709577226733183402968471981605700332292725616365547189754001618830532821082285593013506299653406810126677182732936742819516495604747758788972028163966272157564814408869348435043398283882786395681921190550845499475929023438657764397788935095967840794247812427590454771818647604107793886619086495284736594076099087598395765036243200198208081887417937624797979529615867516827775393604306351687559442818648921633554323617285504329538897513519515935262952768464839263656024505961360818665777829819181669647221820390932864420597441450718185335456734833201024254968802645488649000777358658302060357985975585022549430047265797422343954540723976898844471492761984210090230652531427057025186337470550558129041882948827249640869080557650245552132220522204037823354120576832290438159562731194978705341240853548419685122395210722091981385917616486535967623282954254112787273089091382624621758553150493727946390190058911940477228764340009796462769108370675075194601596220027335925917033265511084125454862999640849114691974331415479000222740708989734349213036170317907699692916425884428995666778675135950906564258805473193089118767407028901555996688993110417038368179846558974740656006030316511744414695081750584183728605819037518233663101568405554263649710710096848241054319792768675890699549633818560346782092700171555636654107061533496909846239649947995555995108762181112269098590048225165875019370891342344843192856957585064293814477091421184081721116334537123860939712141933832608909602419749128622416615273002282029424087675036067353206149050174174470519051924204897535716810859835911809262124085268915211455810147770530438495733884710586539922595063682840517572366656671512906260696187249516353897176231518177765580351273656537226807528512736105400810440710502192586524191757592796432287219050039765533816897594636517324005794276156417552085957508178961707797763160691886433580253277525228272918919552836084859692118480851080862556043411524327035502635425574152525360744801790118517694185443669324315410596728950869592096197123913347351613206625786930870350739176065699256548317175418796256244563813823246464514142430938199077624701129573150657555050967501446679188673868901834108476982664459156440343723305684890822644552676332993515739840192097302077515165126744507209178784515446679155144300340292940731120377061753435219893360063446203561300449565714060508463280673311060487475234170658777916995633289979551343065347751262868903381532753521437959301696390497882542925269364986106392927049925398474670554090374099133721235085805055569121798647809126581192715911673155325814883317129534669030820384988859261966740389855314827816888481738439494174134440744185410574653094108989397056195421160941977676445114224450412064557575387099164636180188810969047245810860361774068371392478215866455724424203160289150412916613035739915273299276656322209265396993925855977681871919453418301184159739615782700587573803524551511591160592377011094415608355954310556853197325733670916255014644447437298651588100379987348043724378241736071756521964513569269376240091214942428250162095839083225959094745118696925627858319703635251105431306976000505749617981253495619871907973115535697841805906005867956642348199712022526631041877717874967948995578426705996810808935920247870331119741503315409254939560361959723215576256187680095032651474533430153276486637035153948614294041046249508234178023036521910408918158122991857082036466474842475932671952863295421229890236633806859141609397568053534890244582031132977523490723647438451233497750457021658891302200289855159303477321770973704758398837976574998936309161621101101801009990320379600366323224202462280041296748647346450192437748075070816206327609431269245905165983408048002590039776491127128083884452956208466878317149827542476661494154695558734861777787622953310288594969289932513953067253831422780453243580166813459221378876153559793117724140476070043423954115497332284455485170131881951415504873045357646267670402954841859976720346011328551240725672699921076463314290539977296433529501822664078961304247017047013560683073700924113017978451540801016519512043720902136317271906695338706588301056912678075859021494837566196622951252454529503656647162393059861004293500575419085076824570847429576395199691264490940184832146318623880950559680729259909066610790210030763146930610835769093541416724670225886520236134869052784321542919760984616932320149127301172662239854862424059097573387158820408376098258640574943621649818126310069248277799896742964531484720214980270318848124149385489383710354868919353880078546193401003896276683349468906823054569866447261994163123765518810646390765166798931381027952144931738526902858376744930215345697926707142334171061494289084225310628467143487303000845703379717403156788042755378445340743830486239801748710892413748524578244700873854622557720243085216987206856385303020152882649922120830736827682694401193744820631153830108031059210734601875207249304394335448792728984092428188030513493380535369881964389701085932924227926040465050280238810125910888697777159551863362222524893786134812255712436033387455335458686511235925260704577840419763151274628262767015612868559726880309220984945955980912449370644153919709126508847706106778195928179829697166050562687981899634924468537295351106299061490351319172295174124548124110943956252110769375134872680072015510437623665142718718256836521060483906656923784412175380144720673447698350579550737945573327363818309845546048911326657530080297618922219071239055346994478911887183692694403288169075265663189338644162153431933727686305485255275512221177779432009897564789513774005498438887378242375736854548061241577806694334909815877808620436769731202161934664727061610161018646872746098281388223038020881647540402148653625906682328214330361456234275889156281490525831153013183862601627334410108035538667647558564717850801153976381650225664619779166236265960839132297583606211105864749099839428624656163007567984982105553425741927954467291731241459914881022463368069913670281076154190829537985273664575610953966576561011167785555889329234436957212277560982120707666064846373792539420605424983822462661627918531019232495871007644842232858365545570520097187889657859762985458843838835454523798990705396529967684449076861357397269121355531772638866336068760536492139860039653651396357856123506433189211599325671780911238302346166292959758333532898093079984903149642288374883486923485574608578973779071518008040732276355045029299219890992678890593307311629234381651235429427808963007912747022376031509210684296262178892993544714141833195595206360474706526868960538921823079022752758269661111194237083331792810305199088951569610843894588915496511431015489530198192336344937701123273272575712723026745308412315319743940142598606397389913258432844861248811589069588370832752288963349602123540110832559142867739090076503482439251707488781976233009254465657575164800001195754869374977211460376753804158212862736552524799974481307939682106271339725894565803395691222922090936130068622571500997012286659297034196960231057579513894750346175366560294669848654772580952000904499504552054567926213238892312229328162355886733206547590324414039903455264966499640845074109498215410022101256239585104410306194726626100340447271251848064704124485892116200488524730685536463222122296414491595547841988222046476557130957707062119195090970092590781383308705716285221487945598906388365527232255174013650681446113489395723352095964538991275504898526538835493374622637089396089888285731413142041209889372050233384022696321172885575285462204063296970414871936238531742893273731262246619970638431157900741560183324920908832728762532977155768734655697105274511484993328029669248936217070004631805432664186333973479027745929050590120247159336468917312011342764610623811056280237896068729265512650871341665291131951711531542992401163016552637267873892619489090611834303692672343616617611930812924168305575032402136726297731093241905370461207762292220962437459001874777096164913377636329529494833336383709780938432823537130289744112005659356734232621130877163369734004192127548788445662469961500646530165818404844921686648609693131784977512341115484905634483435460177410777386064485414881636254679903884338156204361470246794527291831364605978015760038924355366456493252973666712512335785908993488172175804366372451202759895427389554994336037449176222906561662061876566308796164642850160207075378761116004800967500335431505857396676243336320271085393369657727114037782484238203679494112836971631668510782278462729007174570435552448397925546006778584256085891855709522610849272804286790639878649758061861490252707566805653643147499979387637831258663775848438589089261445577106571035555971097793802079816244669159364357072553156355675134949377320984632325900356308544419704870372453903203478618404130879211236318795042545734696613790996437664886148209435891485858967444915626096541511740336493045123429202534984187764970726866202253359080022555437162679636738447390474894139432601076978070813221966252051194095403133954121031769569505453124806780540156923116841950385612741004728467273634207072252517160385339984844415125096022327988712600599182497096061021777762841543341344407812297200710034845879783449587764945403463795307262258890278499578781897533481657923847176424598496929542149640751398018312182988597544311638037093599617224926191248343514520688840538352749013830051475321282318968636318290164650184323766619799248956045295848665025523201887517067117928454823650273442417715639443846307319346795314655302447196864373196841706200443276181669213994360097606336275252199201068227177351417548163556971176195616409325966574369629472707171105222599399749205862331081033290564143664081734924731339524915033901424122832602354484781516215453594740565968640031659185288191072887535476909522007288960957952177489177373560893889185756710856136164538960121149219258130795049084399323055350396698744185321165199573867543711654055492144621901563754377095802846241827840941106721851370801336738899115848469784839326617074999639304996576571027649829651531723649483106072289021886381006881345182756825966762172919834388976406101071802849622589737467393414736523610402706768671929889188994663256882495821777631326638016085037192538845056727834995645532397311803817788292888164218326347691720284960485891126373903391569528652498186995752276119478407321159152553748018739053546134970969042467418114503382244039964981555695731813643570421190411238630067667891257441485884321299605669408253440614723679447869518993720565545505678295432766944786078584950308118203643667050101100558990942786900192067330827015930708542132573228648504714459348536160216260794889487263582455861645826469854784575969723913335217942973050965215504889020458537300498492436265287491884505663901390056712753898243508753290467335458951807525704428086690997596345753671560181901220936918241562979391759400948505186828644824613518677176463283514368873715430999330620995968672520459067332780140636651136287137448172317919741142950392327797688484625154928442013799836728659757537056885930387645728247562470333862104302865035208103744415743417929403004854680426975939703757710635292218929762081141418268482641302941979746437277448200041781481033550883091676883042185920834253830685597501882921019503280031548585505556098581082260653052024034215753062179270117060624639301738153093708561287474540290994353363312750377494380225281660409778392705279676537343050502877192613760121131050073122103714878032506818890593551698917798849240673283492361341602669695164544967890265475690654622858162064343059378096302515645539971287048530672837313978255550118385257730898821612139914385646088899319174563921524294948270712484189327475283025046838236300856426720387045873549885031252759527967998044946832733181077400815548495023973626585369935954415436332771266947196907213804917603339173901001071704492122427890950003199391375627365675428624042880409412662020244520914169161433493771451742047047059117552155395264383285816147088860777538408956775966206580762935248614264604115048027591044117428088622925311803218620308885641114682722809275582986975281277749576707696408665050320027302571568950115573111593085427027044542814582331138218322333843809861932282280557883311862908422570265040577314564433659653002759224816446565251732590577243317863879765791529228348665777974769122996427720353735769096023853611766862025093049599780838201419503667795146417646446441106306030646085124234054605088989051946510891299956749810686685763871964268774817964907398423934584837359723279825452795239121857590230859893678254231168117617421324461408181921693658231327019825120468998290566991316446783265250907417782176890386025734091673026450200107692687878571921765482401131880436604470155951900328665579122171627544610988985757450195167813749305708100566568083694535313828125852896257004597427695451308623390599521502490479671164802904824216137496567571211607559083200761104692275258666527478971904584676460133542714873301248215246836675895130305554667925634669813667217671751476949678776106264152241466925816596370675524374218853534892007191231077782169600525100916355882061730833206747389178419767861706447504391859294466386629319748542635238684227299472422479142294748309742676691245365475484673539818762089344976130996533103443060649180972638114315629424256047493046925988669519710852702252838975115276724544671952828175077852655137699075200554702054467510673623525136386409240346033503759660211852029455403121756845877249294964873708256551881660886253022722323571950811469815920000139826965042979497184177031292439014873198036988263061799518659640801317714741707471979497797333378540923160891880369582611858247823263291570765481351502877960239103257857290007253310488534792870488667804048077495516346309448705777392026359105773943359119774713660536748748256598002952385006533843059330341273671044593531627194905181899635555642818290844567924892434120802061962871578792196857115387889298611024766336621090780623696660356452381916021440906125218164608973474170218631600644178068213840207297681406712193639925242275911087314600167242423910477602562966012792135356678929999702667168996345165275534064671477853534332790471935285425909552374274889771663886681078634863245788488015712497900552484611693916441309338658714646811705868618746242928287416341980058969150470210019809237017851361105408191656644811256888312453645639161626966925182678473406618932265228630217198647756451833252925921321848948707173424816529184444460603011658926442191525077918100561935017771427680766665542494636463405991279746331069720035460750111426255568377347234536582852672239978910409004791221373461988189661416458457334593867556821381662993448701954819067709977966840859668103596555189705602660353912014169801530186767483515850696768564610302663652003981280826987553471228286400444929045080906108783433530610374498492382225220576079659673079616874713773009804284715063988327701378815007745378010573064310824257892589436082468158573505575015614663602821329670808805435672368139382107807942061526855540713572774092368039150837038407210653576975883688787252043505032468490225576289196074757440694302839918861827648911482895436113111068137426868643227977696908056617105813410351351584009974168592077570497039118590057145637083915833042695347915310660083115287996765177257168599127447765696502313836596121492156995842556020077142632442073474778491131296735003379191939928229667800302114219170129232339934136358381007934774040719540626133691245680602910702759005271351811458992551833566662287852349251544316868202846536411755021480246174161564703794317129888576632458771728978116324366917381868223255873052274540290751677904313910789024612002379663857290518010977651673612198063666879870835948141043095423966186916776873338969978065916514538712185499717629019798981016542919073993195782698504266018577250607330978934700528367269180726876520561435683374181831284120112509285149658574679218796343615205906549812791070590668874222414596229855362272181526509946164258010138305884150919527136944099161792297791815651346014897062840570488469154347991798582797744480849564780816392428245218383057773241420374831530921240141396629458018016589480597642236481063468039455020196781814620431685373869121869634541709723922261018823023775459993308487067982800844271179426710413754491579456372059533416124043415570076837487589221038797440353058516112447737363144154187225885083291442724626703674660632104867969800425216409047448985048101028610290401875601250786375999341380110876732036490130633143723508539584612597240509891961185054826768111878999582420800160248530532326040004034479728697719125960909867284397015306008950801372858576489769326680713118222635540314012741895435548492798965999773857361772249099896841387287333411397813205579712713369197710021295920747893274007321309037656325967939670532835440954142508577224006862752937709281066315879106071672589264649179197198072539115670459677294107999661241511504954692462591034788252896277505444608385365285220304030354866357404985755436479545403131449142447188394640615542066439766585448950298577788400074161511783656971195629451439606056758227753091544257740930763468850650913122840832876018419878612871615211509517966187894632578346988725694109607713084660588923051293351546450885934222612049427057460471814282893345285650787137915381591539983033223646241541965858201449599843916515941838625648233117162300876442771234739295291005316273823915710957458372109453455940473082681958257066883465542900682684292074616362757389137709169547466978168126285829136523453370667307571298492581576519464338230126103672242668182176727575595319691711609035097668582820277462541996401524768489224408221968299961712499823859353127880952430106949955142128462359839781738577270598137381037917878424295069664877632521200647414145742831194677314290360377996191160031965579600337030384813526161188088664364282513081668730496828618481669838667609502434596412503263782028735455148174000475207857637775369494706193836274420631690196291570253496343436523955423998551067028298662398959752938864974125407758076097056198397272249371001193417526910096135003604596589984486065367724978223900217229798567370115936357794017610931426251307836374335578239243073397532171468147122347666685877235554846712904140629376993105793785480947575855309097424137870880061276162840318126787681486032292434600042566926798409139439741369032417862679356818024401209203965533944269626359905078818072282986040525735878281564558743709024163928528235904605020120815890747511098520004629635041110869861462710489666218574932817239807115165972980701822031223386278341110096088263958961714028806509964304843269283792046525996323709168350680559862554913936303490759758010755025179245623329854790998772337473293054973241784500632712481095019680137896346542526357185179680973433848115474635607351468907592801320015106784353958625642232149554641405042587072927663143295126255108279139769192082912574027524320912012657179995844790276836924998401703185274298064821167496223651618049725925979791045871213636293128740483544170714902286711789372613128682107769974489078819101284783559473971798489603399547487257883888877489263628245995561743325881600828586763683950495516358603604649033152698833700101887645867852148261455535739093497494304098685158644101480487934295514014170195163570356986459467513356226647821146491953323509348991352020323880762301194652651015432254355300600332858806633938242372072845371969695628285934660773566413452915461367481442860743828773522958701913303388781939521743368874155312465447944175491923009560796336225191712669755141517169943948327218156649274579602477538080894475578757609381438323785463184906053829145640680630531366463018707421647249128824021998123382969597301800462138327233691363452682505733907151243540181020302819897260888760954968062231621907515716520316484353588787949063310534722931811154905522521630385080889109799067279108566112431111334000768708254743480707388850382062000100564735692080709011357643060217044187705390557218833230269527783466929919215564979474302414106505208383021550180091616605861024650492394310763901336271217460922041611078347482766274218874839818032463024656218322979205636660998851179991660063460080567390745947262364601368044242551556408662517856148212688956884215521700819982596894596852252481972520962789640695876664677044316595887264350724279379396035732115864427252393836262890793947697241688358513875894190802301903923066275404443730199469592767596787761568246824806736951097573759767429781685966593538146619182611048381936854011692093172535401555386918691171935929882993931154495514498277536158942803118085942527063902808409280049827369998176646779782658244204133504023798514706759382001935124044880108428174345149604266956421259369746408770818626551114975802793511595396164263465873206910753321809940586582134316565088914743381523074390946561218083253658064193956524673404314346291955235451953331343843593424630965349898067142714373448927585862473085888174437555257692539136847209507202266637965284786252209727009066791033479713554601517454565071815016411433507865018246851429023176623673837654583777507263504987837024615832297702444469611354824148305095173100392901599278293542356475899996103981669206408145256619401231549406201972280754348449567753420276891594251051266923034855814099193990961116703739811390097460028924529236843009129151291763884338542031282981705375260509860951897771971266970817754151139473184859914538894102916446551217419440858367789790449382655128527855217880003493697241325594805625659893789881619526178257507480729743702032937289933938821695809187775173298035066178495445991879473994012236977040914032432717442691453206756363863503538015773958425900012341202906186763134807422779560753243616676122859954701832185161939369968396637431646723530933382868868016998776725133838390410601249842437662164896809869879767801579177187165112169653083964942320881936109226809828704658792833535822854991218988150256914119072464417648499000798305630964527948408389340581031356724743979636377365565575044401615177864872915212780158687778697396565392073703932566123565472066254222103363587576276132470345537078739103389041540559006065257951693319396391023764791040562788460047509877982477523839403803671153987465655373826904881841869068301312806627948075765814055459792629504990498810976656559081055791844460608989348053421041429398608733904298072413777628952168478093349405873634850709545852846895033907243114747419282286839657455047743781145135220608497004763143155944608639026086900125532595827804087631869159013590625056261104106646447652760974085770953462178274443562503226466306410236408732882574917375377826692339013579272421602273305062827550810597516754258605280417934774909248133899441532304776287577820827117673054022792078244881861494635420715265730469080337439343181459118779879764271892517216174757509738338170764811628772328621464099089202904800833395928811129303954557932274881277140349680566557032361947069428015121898298082559370553145508654519286714262974929441717351221911591230477577894274111851518023297481231481058878136569534311764265816919501162725894903160386629047628776023852628361542747136699280883008812879900587133763962164962650720222561585097656642465993970486710477847685274838921329936407881069926800999715668983681362026888845825972551766781322896050919487329064353352973940438104949656794769052377673799037831765894343883477378109156675882037814394729288216071165341411187408530088641442453882518471678724224208405020073109247559822698845159449226933214482139600120645027391091958365632163610744446631510460577448284621634451177038485190441865470527671980501166669889725698437965877238885744057956837030857428800523607776833477266296182442378736597320138756022465498645621521180573158397670698437192792172530713128664387288569089937230558670501251533789699702126885334897968558965357324669501243578001612677808426905052254567518041025691747493000570166537058386274105626279601310596201880110523755676659005119224436599931163958809275233062494670718065350685454686404624011946365284808450876327061356012887693077637006630533039663496645065916027295458590105727622916309738161064226563632855827157266134457757232779267847220051395404747881556459081907648450985687609063508558939822147294551563317331482663268654645114967854993981457814145129717014763549833549323430049072279254269236883481332836339279530501179073104754396472191158518181523729455617648450064651442507977600426008192376439426096001745002733206211501194172089447439818365975528332708233298254986953548494465635368221383253930892242549243314078018889587918579691229727302275072258946990589666953376560646453230433831928451593855734566222014014485604484948454831046067041953647153924836338541898921117477313353720509963406991721229211311601514412677937667753272326731263668732698530447128306065467450214590858552997374170878695691578682446110205063021205423956492811042390635517589235351302566460328219580767566631250439086787345217059218934458231107884083080062066984979725598069533348464780045545624844235691170065345006173161859716155347096775755410621207799356646663945773620020094669105329327317309035495229176134404795165008005499481737789141622641282665616095582974237599816290599456935346847626911770179811377824903061290937969215684114943267959990348725393031879078707786941114678911628339809916237122669365175440897508092404400597380925807976703244607929604995116516011509751570557738377779724465699619991900493972196261773066502642992380437135070378562956686728682308040206420189925023103656505851471443173057152760792887901156463109442443951101497934479204259308628869485189456586251548712056438730799246539312888177348470349257847477602640130413326631058366929101350148409955044522430387011075091615307856458620816608424378096120552234394236356141960450177933633495030882258872921927377581961835235804147193012889687494201390520889217743796160173345067726093077543629606566317288487611895411495374862295168804481096996723471856426167988117849131642762905712184271869325589611046021270864086188156389525206308257317046564933270279579125891618163108198208312516994429666791905174253494430473070200045816054109872940550288599671073169009810444387906584335124489530780810124513122425547330063208994230924431788040213053195280025855438401516098147307637452308836975241190545799522719736020897471687923838407327403115633887980833559763815235979937724755978707876316544491845959320259926746534912251387343599419764816893321262341469200731740140702629629554485052116656918771541133976207105791805954548628180964611417792141902684320874664038349263141623663853008748251065400943079362675268137973395807173101288027002487250209670077725597952457596165092304736097016613075804264035547783275083436301496887032877350458934871291591218219155375639050459268232517179991564568374991544776340677157253066691385179958661240820937017557709468637102136053930532728644736888029517993001121653077249145449010399419301406629176003286328082567151968754088879929289079847654910042401561934519750080723773370939563157023397349470258510001728857117709626278381250640995214234862610541659978821754880038974971312803581949464369820276091599751770656264371327300335492683530600232208486939033160754731876361720593507522708723455017061579197493934772452058128180611698936698170187099330016691534036080341663142845949260681020670560272559882605040128830808993194828350844401282345867327816409271655872982340871400667726616843174293778422253805050128800162723262368454381396982112267086693734409615235914422434281365902458009938988126298215861290404757540791992458751649544172253211130145930239066736357184724847711060872581291172048621527976072863635266706414998690409365857967635708366204035102337267534369273645275014213429459947922092626957533950116289690825006992671705173456978472289158193557988176791997563814841370582428538254766300098310011403675069525664692925402524734299770072079824024129459990074112785634692046354456086879093343071017344419261079589475010295363615080677640913559716724561573417665046236716282728135694783540718150070118440852572896075747592997343125672697410153683094293644439379356030520163183734326721504767741767858253732624655158300290480906995665729050152141101953039264312626730240727355524985882712987125945369048879320769191562107141922991194840784765667685545423360243256514306753242229281618034140982911913235888897766963620895160698775570167616278919101354601551360722342978086642814559553624219565853003112593642924799057743386068894553312328821268595362854105107482511943774028266856655640383716315611521235487261093480291609470030228581790316832745359507243012298188510565091671897537034836686144679738822280572612489868657508171685305089061325280823079871645321283651829738204329547913726165803219346225768612980106878937797242726323882837360487995321726626034407750426381594128317716952381034186345308164600917048226816611130094787210708943406606911639779806877368383249270791181918477735933627710268585864442929629392986396773541393222706883266189265299518225383794364550538106659713568885798339043510241213171760185007582293714961649261457609543314351169100262312848086323152777261337485720127276418147630496258569886940947443407758962931900925952928216897496107585623963167733324564260101254442346656868682365692015829134038173458914861579809321979951575388698786034791304910166023914858755359817530704857570329016347336606859888408137341316513061701726283874411767486746486109232261343426340269455274331506696479629475773401488599503145340117284869900552633266265014260407950369428056148533436494721179666384236700767102773771617380207056223141246479306838393858549080210310478110641980703862525947891874392659851005574233204823298896303294352511272762283260000944323327658855732862520472217618447030143931297680155933848521896928370535954211166856554329069888777032735207688310317095369547672561836602276116587707033243690087610652144183555296404373326380058695989892083126094305007654667027597152831850110220447463213310381164490205666546526227075902733024630682516706978172020535789304518257035763967951948487541925350230228112374773459934069298766930385977485112971365503580470745367340098441747232352527760222675286523124105002542591462152939805521469672856598883034657427875253753423580793529643666885180453262575912227254140585767935176139822892047181729945702118830115133809567129567255690670916911972030299883841373210971863363593499461734405831468515538396216940150752000142491762116070381608900945735983772429236082916343429438845247939269604765685040248075262268808017853867721834761925106956931415257785923463641935581665753244952259131820111415045996848148720938481620505447280490119989522397754909344172522666392302172947876263468820229132897043119021783423587457884991439934907133065967989166089267563366674138847875669996612709892160753816141921365679019423324485003852434959470368275679261387860075252673285480258722150595411792035518854421963380616168460379588362838750320062771199966823541416606496022899869318282422023102133299327229545679175212406872742856759349432655834017761521554265733516103050242262669245464296844781582550202757619453875829831707560797899020420128891867633156558719158200655058035658355482759228969952912440506556723038882545200362157357234048566886798340669592781390444740669252126371408122923998105872704027570777186154763804128896212496806572827262439024765155633084141296744876645093969111757397604970450360981942588480831340363554940568944179945736927528889453264950447274983518175084500206475555447343554253099148860913641979227868768531021199385795328699346618113110456066994232573980488571893794666967803563235415050257671483040151095716389466888941232535007736639721046721634912216844821272168630910127413991072395426476455278505571039015016214668186296591248751767092796268003644342103373827802645399981822887802774232337813089470915327827520440441214244823590478365907646088523427761790213218648652055143183789765741697192631108554506323584897471967932805027599704217769815152434794478162992623825852305298409146871678449765783885201198084557661929960064900174714296707450883918498933450468460765597849924408077724832948245099735826088652536070597816633447710937932817611491717769683754313717528250653149796270088042050716419622613905059210218443411245579225193197968128183233737193384724113635039253011348386620928907628411457294112726642202226316572738392280431061874983372339079225756957708628771174883118075259866773044834322355623304896713911282711761703164834763057079403393134956331895257388596985477563334245945971722168670362226378345720107218563356447439240143503132936795615380750600694296520871261530368992485107492809654274498532489353187961231960587942842325980461071326612663058604668548076362593928992047699398648794678436903089587544547752035607420006617730027784071783827795954500833458217087697667510604819663439996178714030892748962783516228354249709865367886714052822069969572111051078609610651406377014237476293563856578956388001886895269816446361197270731397180595497366074971959552979165308965828331915674805627899741674774299157991299133468734585602528770053935339268872331925740012801979925191430219722589645506129794887527680362446976045156241564030420121182021197727541556409453923690837518025816594779806592691078253089395146262381492971973094563815615522852725658416326230161346213206742065997508108164180428147525044056117431641531850407433236411752013599950627624975115364493703535796251760348439041714348993731754563126179491169042994572605385617301691523178039877389420236771925930236203057640677765510971400121393907656133213294173056532148639342367792899845685637165185653684838205305692199083682063920606106352166356247901238787446762256651654989865030121496726374182124954776456003075851254154487759672415860884526176434073751095613474345571599231686206040393585098773196179332279038155932038791840937532516658485115939097219064320840564452182115775799139454487241030661068900660374295297660832193290343039277253157803069498512166233298248308772672564051491373852198853619554314353067995380062054981493044498345466986639658408050916889446496467337719720353475873935353791795145548161178712106712098334586654433192865485437210240904021207684263615070276869620544054697141565857584449898673466764421743825288304841969022942410981765986465875488310571040226002805987938183723847934565851268947029193726259261767161232255323395153198741341451979270862850229807133202383793000259015669901610729175018747939565218425585018726791428276315197979500454649671664526316998460151812472553993052010992039173959215870344751105634554270154503178798682607858839706322462032851812771738981825295338937663058100239367170169983473203100850951086991574469220375691683611725942422898446347922992401236628844972242859483539306345324825530811850160579141007243344304150519568135136785696968533420953506497840992058471037536978146485398769216115937485988101425709443320720210063591067017897129160065305163778732547399477838078933501061504543837953713686105046263182201751317745137280879287552112806728203377078526353766705480192413661375456458653003125277516443409215357773320587260972685361526503163356631071168930124567340314904876046877315154534793588968011984581861371740182751135224153194758454149787172526458235645502297450061154563875323842299434698211799362919250239613230470979646660331796054976742018118612404032346179558916240324459376626284207086144555314188869847695811127080487470472866636585017963754267284925559529712891721350292186461564473655397671452802239199744689063754429004975549741263402480713660289567970191722848512722159179970625481890621067246137046247130217062090696954127357257684314709411998029122933477184112936515506074932140305483763072554488090422567714646875276144745932577816901733724933417847560684833914509571170699502763980307263046704245647636229802606166163238035265383997075046238094819057929457904471632970112418088783452031049186619389410611616458659939751435690781106783129538296591744812378786532962527467414610777191340173098008155198649427416993524629700244979610305271063329943501156219886227800546022524593880251972973859189179852679633618403039071726492738934183587836592692762225124810895563883750502843283870606496126285437938595749280174282198605783402267433159636380337552329143663792253793814716611530181357354611730601890792146321021888643493247228409246675415897545307532098385943910931220711932834101598177011965229634380607453200986376101266743449569076014900966143482444379541925500847480711946555892184388194515861909013859483704302954538308260427311801229783252291223044504803267026711503775680190792928038250519169512050562746675655738858262177416011179949979094124983506871095553826664699054347359916834913548269179245781019687819246995985339962048619338802346108569940727861144850331995447498262331019647900509756304129906954298722807899747509060494676804750226201838494575663168504598730525367758920318766973688952844199767136115155345830062789181440123632183944344646964316638599678070566404865733907025676061986832518045609739359216759542282365351659724518050758892495638204376832763704884771304090527871903201585896153457705116113155895593249096256264483772634015438497263137103329803219631721020125881972161062856829153088691001780051842111629479536124361154326219635872712172119265081343906410557880251744222237038087550124844099255155076692671958315885066099676657766900492542326667522783459846478006941704610953313542838917120949198574536740161785464849255059854651134882059045769216052471997319222062827130560737743646140708746191427339679611100622959223247855194304689455068361691935526526807855998419842304460755073142338795551005025532563319097210716392689384644484737533820417692092358238721075531985413333081601638592577402072291809828821174558076143617497164081147884113327518431330874705965867306929173074580644942430480157711699943944249431637874772349509968252147447963630668519142544449169718996807077659013376011735013292314406083076766348400594333708648758367164021717691297267882572707123526309689842336121529314936185449204197257075512673798084514234345493601997582576787387445828057282695404504606187323402952836926332678829745023117937588041834110608174081031278392866360190860452294457165593097526222806927361308850888300494520993094077679591398486950770100370029841924033370809499796572895566259941954440337499328537387998666743116394159062737566113389263306223729817458238860300857419812690288334210568173578380915652551613939739478524644947107995387013548143782918760029021865376682696205958494466698635022396222714913232795303532960896293986385577401278665584994035613615507652619852317227099394498971714788951439820723520234484187822665317545487962943241515502663902307270343471571696656082885072109139447425206943123668255100305681030593790140270404200530091468489575058517329049764918095969193001757913845017075194426817955127175562829707173012198633131404221978704055815892872133275966237910793809126364611536562859278013940903226082544211203897707007743400489853538959333578771363593260215700178255530078061457644601349441108160415238819448159519875689893838277001572772681923970974611659587084866776425796386317568418670132817485660376242954421929993788203575068481124007250466639743285572290072696282854183970972233485730673820725569082992561683855593310654236855814360984758420362915541796992085939573602764222757942739421477916073310469008215082030155392049293365771357136684764261572897845236244765963608390181351949185888865687112272417537604587175608105974359884879340875669774499039488524184701896278511936999556870380850374100806841526185277563100732226564850727218744367481300094781978953440883472059380821077889708594945754461521687659124921367480755727064078711197830244412844418952609191892485725675576373294159100697745749855962231257648535122948565667531672432493525908945803219938128598803318238975709485075998895716899914013707273266514496115667439713434068976378542570160987382174293027670116527003771660824319888751390846465052465136848299597024941703359862281205009807028777907235720200979313539808633093586297738572868033454019801146256243898502295640674133086996697071493598137337611910442663975076204471803004832540979831844364007174927651802735793876450687466793072575294121629528546695991043379200564019349545696365776034931067915652396448304847188592049448187926439239175055082925633525143659622200428223384880794757447560965557380682774170846239230379729701925092113417710198383014521091411578542116939299033292921883421556389133096206581566575761042731489269582529391839574127193945597047192934719584305393955450315276418397111561816282004020253276827528724344341100980224541345456329242126323837602848349157443973743527742575952687978892687893802560256023093065195448644049690777587308865646141560266246181398727507063641683443602684697255555689641411430791451312614416513254914058183850288600048346275371780641326926050035863405915069308438383583416323051282004262344961112565860864203109680407476850422534958942778637113690790150789068547309997655546055591384360447319634140871028888457969600669060654675375833875969565043612086839999089818491537308394784413130698279494321943157681796759044657012493006592657424742593094496439684656543176762447805437167856619094434949957244747016509176773490547720763810701562782172470838550903340491007200772702542594468471451839636114571787379783316145230450634844969391488113568481340686671240274999633599681002042461651835960255648306879796688027653836422418819090758968603679681255329222139088458823758253590836554036785001526779499677786080863370227864248913001019240029096528388359681504558449764753488130673698876175929004057041901298767030323962315149299134130777054048028298676130961132921762707847436038900555899444817521513318736318483481587995466042360203304486905885043976374604592095539420657239584117386952462361510013347596136314323298084498347811112296067432239683955894028088561310803319205595175568279372314054623867084691345832026254626321953523931386002047162294564527648384285600783433360733221182302705860011796260016676383838529229360577427448966681142934915736964243105743879131881526349371853857944498761831880374153432662158567819024780305400354333184355087780883778463547614565867995198716380860785815453315324351709817965949125808099162151265714273234085699763673526499430158925802494115791486459473166140623715146376686368904256283887731122901639947495817309813818914758072221171340489420322601195652501158424706467511662690576404177015614389194383263766927183299318901978883876120216247300553623541064750421666401291494329714252965275903793432693833633999887444239229832407201692717007258700969795557977512298852384441398713195171426542534325602342859146060098236829462862563875613813747235003210826765321610916280748473037198075246813347496951710431404478452646878400872177902651804273052575058181858091781088761080206202349397814675759764866870569078333586841093645510281893971716171942478753879583095302659005134011023353283545538004300255003783369123282242492878776347988116089912735654725133748409591675029604446559331841410737197743620926329195165369669021794123429123807557536361959153418287505427636081352276819500418209630592293571576253767532299480784881188942211243805558900635279061629230552025650144832472472266399660133929779164430084835195623548855571793913288776171211102532729186713448064934899901118307152991764657430169600390775014217976697401769234338936140692688362824846014743323952712525979487879019125651413551366331322918142806148147725758749335116225885489341863046008566646472810384125671440902159107124146919366537680253321060680810175410012767041276435650344671876320259319859141762886544449433756274701793777188790754506934622262843814890589490339850260590263902643136969352599660841630423856331156920691769113600530101321812014031328945387369444481278215809182373986853567413063133674971564305114339060702944819335615327467967335933557192846242877848189768944015616609319026839175072641656807372501585886691202262737993897369173729781733189418835878560954364203510441581856428651687579549763858658385739391008798955180061785049291267227364513512762585412552203423864694986475419553304890757745873244448835280780810417748251518137906395371226274403859443714937176134694022416984358771489436667940565709855772269846600382036066607351199674724001581397675775016818864327466553730770789140900408106927863539811304792948927408477737848904853667706849159963555638722338419982875914632946220445270102106540065852345039780844593836978520024089840376191119763429816156214763511563991325409959078801156021707151152146897588083760930389035709348218925436609797411526787668796451853567614061676935313631412289794793721210823944598989486938070352419725869649617480396168621957338454101772675580737711453093941202843127888169868243644878006302179094426811885323277800367071792200648899644799900917945428156347176406394253971129468247450805162185422554634315659028314674260426569706228179119645370376338022286302472172352692494810738342321884798844128410175977469636555758342140464347865486416721499406431192341056250464749586203718248779532995801804209290258806094315583654063217521948503644019673874007014108290989779896445559390339082693212549909188665747898086138302997749048529943500401078784365217212219442685029928693284802493906739007802759308056112332651463433396703497755645890493016132016157512753438725985014297834578686017815350091897249737953930718986159170561205108797434908980248232502756816023789436370683379829920054556387914390402864386906194011180689708754329017837852940979289894645867950786983873478270509722342579114547690182180793720439796386714139376031983271760521476055473409229279649789873546431323646196536371771498166366834743169797096402285686993460795353963813502785459879343562823460371598253344669120070093313524805919960418073031876253344540049292734604864920474182498189381861826240323175455618538115889108320877332655964592000342215507789017223504671348326358294945348149661022503769209863415534918752646936286454003702128944395339255315027071110438291813877329786694212859707863006286697782803894729169927220289588574195732808569200928975152311017181429055812002532802048622064842151953837308584531170850671809886578221815931157775357123854244537622637160759878151944135169725161359001881106770198794241272796602598879141947439825727543810653306975983845539009809083967885259300278071614436962498107705331468361756948741998862419410285549367987885452477479844820423481586260629265164274471651337195260870256959477494281909567971889203763304902397980904222474994454649332688445031820895268355105894054025828169222484402839249092188494466050154673201049011422311584847303380717500904297317100939134046151155438349270786689186792741628107004113001934291734782446916614741373641150020217118502551917678147973558891116707883042098042240510619394849713525625110644456452123818288870288846053045678997735427361894874420568230381209008918748976760568504216518061429404990568128484409500220655716291167390735857312862745434864975944045492662553447338237041938907570208190739054210998738421350666036933830969077901054115187597011645241067202580195499011891567656598415958877973638253483826986031006068949326065015980468962905044363785264133506725741327003622886850973605341377960843319331554736300820995976225382372556129379135462093991384311209095077535284423742293302887651801466276224530869742791743713459139958913405394876994831305298219836509896672951668827479947425653099300096455698555893854704570040385252511531624684242582722976850190421243342337285713403874690684442010994231002105854413646046208207424351630159557657132577106247463246195808021978338692863191328755020791208222961507050120961167088031430195430040157526403980226959053401415154785743678976566488652971267571099275614951502597134659765213213817334899958909527122431403031576353690941678227955384298580544676993108799277718145997516935797783233490559434658010744334016422909801388457561347707181837349268791277028855353521951608309207954897068459562283707700218996206388235353974961823926875420580152044205964224917542736900457875424544025744553191289134940701218317530177805720040476451665987542020172311208299570967251931424224215229293681532331361903760700771106953935058190098581147256491227646435168362291453850137171875938327951316301146436738697669142161642160656038055750513078918935488739668896863438427694993760303453980201820467547188984250648765818851266091906646484487456769370343682329139548905571723718301864608715373919593539395585992818702632744263700720858903621484671438569485388847841686791703008816417262361272415547871749484381167494708301769274987080835288431316771877403423714852145710148119798332831010980921426073435488958204712832049001602844600453187496901496071288614182441485714637406458616118774939385261471741716065971092638620942164635171466628693903325630129859161744131916083560219621410563167367393184660534841436919212193365513882370387855852122560792593072335359304123069744522803672096483808301281180501345811367384299965574201863700681440846369392594375961978590816850721516115994405089679474545325290837998838690194184402320213801954738474548328128549809594853477882012751457979318200674802990728724110803787218730320106082282850038348597115779850872383803946123061760108309456160408618294461440360518556552986424306493841570045555694144368572575949733847305859673044099693458994510793212458591033861367584513377543774223999771598635326480983535470130197689451090816478326723510124526392006257046159410470913737124370414992778008502972654889235730087309879658603488167935958924551160257950544790568488525168984010160455728594357024155722778498722906139804144451442042794484911245452652152569783742207920236172658646272373910182714654088980846649834624593127633183763091138370508500814634890089527216116268954528148594679549755764414547738942502469482647343937557713891784852090475358709735400145508169866070254102248764213399647959441263529149308317135411282285146349073481848098401903425049617962585820863344661300234351081403478026158514359926123706674398097300910591738038656485536093550977092952496285522425776555189634009260106859289353864067786973615173878630229999735250406871956290872039670763449900834318718347534342271942628487496121791129970032026973669474752386198404744288295375591982464778974486953447392487654434360504536358503221618492043073320032156855739166942667054612701256517089861919275719998688397393989372217722773631212051505044134524603630792581122587635712836802366200881479581516690243676329413961173829784154745064945224733525616702355208105718142498864974132326864971615490233066014183872070693601338697647549426975482192392187726795462808061662266623939862760140756326694855242572208917533073530320774514998114914187420557227262022732815859210335014876907329338140885048112926609435109643574843428647814210248912851602681405690880252314840866155339716511269137407958567308874842485164234954945535002752332047160418632008575856541386443893154608223411554501605885771543134771468114443274769612100868722991434951802037697473416739318855292433612749854997752428946634379340425454120686041658258052826248673922993987013919328797022453891054801500121232906740469115760171684238366183554185763282863012008633298480587029184756310731085674409038521768889665538557875008060503055178562898521192374871927114006596388598160029240986198023268879486598425151531123267053797806252584953196166532269235394290384387483609854421421500178255622322503287162474654558214631001932802392564140611297463468839717017011002054428697623249532148692132944388967709958585200417148892624990184772834746216666984219265223384877998852738198810636205170438439253840545704809866944441055530007660383930123486251106060554607644291968032474572256622315779995877756635413424129806375474047186278266158244139606127427804391708277138635517938210811813018368565070815091337795672496142121576288573108229336477725557826882185190210289341296277074673008686181114926327308849382884670615137192076283368707953742743446195222727571702165042748158830059523869224096293213845882940139491863538430147752319760992034244046081476868792580674486598721460750689119345967602886622167660211706731601801269012465097035528851047542862715670444136782433605035181556800334710435636420132375257100256674033482436273187304173294393904882439751208880222094508892534834401563681531883109614167003939852405620658964221160407775619648182348071758760716948546584512352748340409640865704046561502291041725424289608197082392421057802856938663834690492462879206141751500144376617473218951687861559685744442365785042675129590499108687912393651954194809178366760450348479953362284213857326697775913946936917540761891636209626567007798385925377962949519621697004769898669703996346217558473419672648330477305931779964317933040516964056697834668455471007176627375531572430670302209658250478415848855651641485526874331634606218032439132509712233041795928821084961382463400567639109327702845656221320487113357483278477569410450846670576670594796645897945745074178290661614479343404216282331342265328944107337478252539891198455064777900173286742929027982165542403149330963741124625361367520540977782682481911982185416883759843744696995653345549437841127765745722780428834723081217507699261162366634879256302913611355637779647052986545927789648449049206728722794613105305720878882421633989181556454409994882544592706375312317136084818504414319158539215351169490835018341632277121021671927318953552665964145487121815557197491344391205761569661681218623307522859416842884016279426946747178994614518457149136674995427497947696939507008158146076705702718834135276506905801157115299266149931947825337991643251209208170623896079009261620938917747151109572073083876480659480909212866642921930936967476096337445615633367515606979070651575429275564877794060614855995927190866264584231218058660681224312296620042683586372372388830828185125346528022172064497652445434582443146165302663310533517524406686037811772711119751497891897541032527533511478431981341039764610379350963540106632753371424437514619612485618301263864372804512422800219714359450905648997468000513281454592627850329091753655873360781161240772478139045805174012382542848244021577144293298983044350182761526330695907710806371551025535736068348315936947953612329961681834915443358747199338405390170872481869482855308342157969749464013075788944609061089275564515571236002263685866699137733671239464352839917611516563587610978237674488278396193967030542577043951096301747885902503900456253720633577337270767910791715050950058554750888505655669367818344537209166681882955851511841641111406435567261694446733477564841475488451010857811740377284123488183205211803689531867617328727498932702542421421855226302197321950168525235154899748141292030516810225294795583733495220220257253242984390805253548889396094633109483277039640100529139784781932319503718843145800174571354493520170156173714184486634445027290185328552577988582005321706056513305092370345441933303278652230258769545544957954623018950654077371101361837013211236707650282233555423916017448613245258555692991642255597299355385684815077188539126746364191765996019833999636389508824835747805148883986918280162934020351096214322672360659345848161444391524432154075677301880908212482147278656276757389469804426175117426730373545473448175958319795474414116821543718159582094560695253728010074838276973908330073703279545154915288145529598363164176928265797235565821315553063334074183799852324611895505346117496815762531053839242429009380551784513561439224871082384291868681948770186608690511253489113817560850271286470466534419032295915724101320573557708485783164478545784053472427255503983887556047487406562549830075546009730033540556361863102578469439061905142305947598890403988662165191867210853796312132603029742786864616969743042993404869835260380747356415767240932725718456976996784690662872835545737677115122153777169097423344729578562223358151893422932098756438663884311587735821447875209262432364844325907571377005202640218626541067103346849410991266648198024815638147640420636416466381916508205138992753780411930587475315576698814716120991012683343933754553101684721466250384550964513217077003335770208778708268280877398922806777107551922342205047225676805478448795042711688429477677577327915601823772945721079541944311226080506229644912364026810009074483441585342438756401876244704660966808200796002223407676945171447269608787235148859219948672156307166570709568962083596819491474947705935027749005718153868790034683665395244287108414919187894326022745337638279728194052296782210028831739277272701994997960118094892788246814941411365144330637814892009716035907983996150563889692362359613621695013268420527225021706183522551277701682013011722831362372607100537804660727398167860293481174727298990548555830575454299066283083216584000697695309069241842408487969784008719778670957564593663916386773386294723613025096386679563116112040845295366914228945928749829698705472872089491823059957258023206452081767091351849595828223829580731383660944334292084107357444285459770054766380901359760774888090756759346674437162547499344861905596264361790532040458719144446309353774483876749618924766400627945103696717351582804610526003656256875790246813125968723522208204169242002931069512471250435269921390391310713168547795556824130861434023373300356323111746106653228672114555935769542807813087827432688280217603922794363295869219666599331238409250995827046821191926480922493328416540054268043926355686308903582182375461928267332560621068671039106633462036663459747168234836490973459213967430501200176093272700410612452243391676252871896674059134791718473234237939437986422543846148732613215527659890113304877762575036807804708074625448874632059768786692767203487315499420727298783574918116534649535220399510892738405003687350094756155543912230697175122881505650260073955895259984378256634346490719208477795032033034187855744946103501039442234028644288284603296718728450048253106921773271603605756496997571896555736817279548312778517615002083269031205512875762369000043817081371361017928842236211592811541866553599541634811688717126107675094532973722566430325485964343591629401707768238021541954303331697941565897403971176226267464835996818712075513423174042837781205191110539444286927862554442154673119643772248424253286715631796419667793033037999437928360841867030666867915988651175207491276666864139209178983681628593592892517995481143666308284175580747814293117331516811154760168386183807128626634496087751343459134767595164097998849749375778628690007299601305038283413614124568932896665425973179525366913125214385916926994140509442802815052867916073805473236530424568012514380573890664382675157498652502310699532833576919775527223403597117117544835375311261019459295994641365457745103413512968339917743135238914897400806021376901715523499843514061856483968203172603585158027715848261944965674976023331782562662781242518617688636014128821061699931859406075456281219427826135985262618511814678447106405375929877127849668350559938497051208264847307300013910049971822776974537920038380165780508592611140307528766102559292906359880583525306694687653879301987670693639205703114532887722811237004305894367891524032841248647129999385827072951415846665992490026730447579675155647741784178673388474259926392985099907565726755298529560737085423824847432211308392922506944681439901457994627833835972133176874485517246620100125357636656548187905620767160585888269543254069401888776479965638542461258446752576722218307358747859507034643019957017217244867383870871153490663167797321420987205878604362821552226414054588335314436342294586520766893256779297016364240952040374675020028650257458021170439753538977028705197189017598118463046406117723065014463646333950673531821884726269198035510930597030368696282814131688184840502534539071575848989565226281890084231706786298562500381232860232696767830055367915781094439768689218451218357387385380544621995723267938094496651870984861271729795469921326868435523253088021352460692842950084641973416018299552811631123206673399526321529330961130852443663192495214353107148953649974429909187610206964653115465520788857894653369284256986287897204859632921301349593766013722686258476327496646958514120394683440590309964862016134111648227718315418863633932760649920717647813259131149145080947340662101929460782261534875870401408141893332722675216802984283954457082765877809382777257611278831073717666566947817518554854647480426464962229790549338213872161125284874007532614490622724252902020883163660909709363702691056465119712639593756469150968895828882618864341549448607410108076957756591959586528720151811709810925572099021113068570881851687716913037236456168097379936061709271893959626157078649368526984807745504810873541163778927814566891388218954944428776898616848336889397806886428965331072602160712634594301904268628555039431553024567561073288944781800930034197949438182430559498474946863416439985091019454096381968288962133074133209418152371510883704768287570167611800473782817409524449548355930062870865580998743295735068880224085485991896541381243798060997157256129579610272212382874056716702190314671585931732430280501768205599333272784308273418682728993654212522581027633103599148455883672245863137583917523936089333735662158502977437616258329496602217612164395593460440706487024838074114736621847186329723581454329590169023272150034141421467913759488605855491832720501899227927011262842618598455111330173864287106485141981960581019186544515088968826704928167363613791108394874564794115722053789750969995516448705024309112711539861812796558492582315945067011712883623800667207938940282155726962199446591630654288161478255176027552395338951078246080363319539782123637338533871837688538989348318254845827412120472982368814060474599046612810330201720181827601225564000650855204624866230641458243535815964569361145833615724080994605205200041593913369882279954674277375517417518146801575723666745459424367216133211545105379989596950987437102249152558989631803898898242379382386618996433097653533185269312732219821631013108645129889121457997605183312318366351810691060090543965430480369292228694635099962600122115200824133075759605110600541182426235588970070508974012787652828218894020200119722325967873576396955193881699953491390569410705986763514660746314507699701606536672572888680602855338576213331404181115640128504910869906602929537227933284955211019709791144890142450065175174429238717114864644392507720131834627930667979733231229633428614003258801508227519513234397332615098915810071306364433964650262413592178365634716842379808639648623747922591384770762447269535515066605881475807852785605717885103856713219028607235995403109263088724630273987775300849003615664701961663881553727896063635535965046875383326388410044015923288525369448939907363950550352586469178408593043251587332109582152142502525201289623477680720448523251692162357234553580624780377624864832121822910483933693575653998198398847839757864325812346531972317326832790543726847499295340421854869884800574381283171998025235190909014079176560864364510209387127275926641360499886076478961300517570148088311804409613220781816115048502444651243574468731230815684894264208690267234295925816342154195864017749286594701570807056427014717590523380507656174311804382921000279710780456860224739588502984631562081670658004704484413127461400142957650295555809738599361680846597630158314117875841231358357869693098318748967347643033198549846759808819636639003155832303224053604600203918901915349124403657223198590380884446140313229911379584618374923716107860842305968566919363058997351378570249023352772674062863550250850692922487413998218567051675689782013780151894436753744744849798597167500201870289814217531223009244223935756958347787991877641073722110466660693485936180720870313726652274979997391098622910711374410917596474171006954564153642449034315063259213313072565633607742178298180234864134017649606453596310498588511000084744062074235931007493559444242255380301356793246173930932951602380437887658930676638837341747150629327368539012541217522037795120091081817984405919110734876507273590379605948030107998547265655710333646755675923101418095687273745179793206203606098361161979974164134140777181495578313119719753262922657295027389105837235002302981844696290684725657294443030541824788855464530238235829824503612130963453783364110167496058633827082150292990953004368779591351838659522369590388517402945774825754402627379664261523215764356972515499283358277847735190490058533631966945961405895710074034269336496972442692126793959050220107977319227431274209487792230426241625871375898372319692810529457125841021649356928905262216666686104022975038803102215720392986294914018439311640249458107897559082699330397529826588071483168813401730384326760244844956451312566772146857749564007188192063967014277840744840017350732953119938906573545674856213785981736863895345204908814203328866193760410492099630483254103671041167347959421431943343585709851847324962969285773860649776162965661875043929387513241311973489939840708135681396785358902526171576281033643867009709791708595833153890105645992811088055973612476380021812526997562475593949986004006879694431597997126229518080720265887340914567371112384076878936950081087267684206474150662936358473499325466686669262587574263444137904175013143149637809940644647542065921596280062714168648985123769563914016142491673227028296361824755459379826241141568542842275888897168657104758828962027464706715063980512646833134397137481485000791841152275809933527636639332675677096878421443118278713071327359974596562768450817464848386186435747376774263100752892981162097497635254935997789249519274436287981591632425597650907360144482339477504566096855160417738119143857541625012689843323879033273459075574974281624461862881666545106136081256240906599067171590107227706128045502145266593548749705514784004441333599039685795654198998860572484518698668478452762418574402443409280289061881067048102747001449681576887029623052756433291036815237608405336586668316992042783783490988545431175624947043646808786628003118803003585243828296751857611434823453947038968800260745797452031490644584631856425331873251448446016511296732400800831748937230979096809874734490518302771523406081779902643346729799857252008807159905223123756907675013173641336082244453431535401888419543604600310795345505567476445804239835794125718229655497952504302223724081808251529378986579724917175287250186400618950538217830411961826679782456080478538452579959373798536485570284475274399787824284057859579119614663156032678632505749971089990394566226836833335763761007800869990905413425341242268532868957188472650878299970643041241435939675333095793454350105317857183685586327650427552868116393697240951712407341494213363950095184046708796553707437848710295378571089796160829842843013458747597933034314564041827689386209976541366043217265147523837066981563932352354792815366322337623921678929574131171188110367077923364813603041248343114429141518585916287639265357536967782343982970594676975840035309879343067261811415845544341030969920494628243067813964922962709724807757093082642367629964796669483148539036546475664309520677300393000053825906049908864009559188004209446524623575038489916341101574118667802653125420059250227610715705831368720702811877284329527998262371902999481240172325640132574295668834312340423816373584430254089709135976240302877826757995169419317795682584091788992108192805276658447301152750120383604884406238492249073660528608813222994906157045265720772127439046364562393421754194815391710060048538247439158725368528493884233638103134271839979443993427267243514367375917236989413866917018113434646669730279245362681001299061729909142305966165490420247023091510470756915020322350360978556529050241015165464129446286714643928106953745761165152517423794399289283098875395644847723226215906564197825869151731314808152129175843442168142451537203408282401193811505698899195644296373883112345081392041362662849370284402376596873285815283234121084316032389884914914306163889646143838404502902485184683267813913108778290849526139465609960751969061833146822196375361719574131182782791714016412761254350052014910412794747525986874927471710303307627101339700570950367393239335924273626474221945819841344855108082597494725329165134886680637230280664759876548748949585912394254975875919351450817774147429596352487693596735750522944049805392826415682913592309915430569871902737212523988014545457040702454043784919014852150606343427492140202562715655769333611124267516568348313168361443578960169746256747398279582869891684999020126043324326352289512572776528041000429687520186972277364891860212862560111095596497932478334738246630039240779361928700150028393193802926512361371098850091053791903323451636049041778054705449110385942556486533298114018430592857544151292022572586898333406925135681068927539963327883993103417450717536267804964584242427521566811309759300568157373892796443523787878162036821290294526648879283439600906266109789827537022331991841909791909996744991557849210319252892077536715885460838056024574446289154797309214549923562763739840951491020475532493945202833686242173481036359042075701802244555139559857640445678908133625639409443387509070809989354504951341249108792081923043555455939462454205295296694248017875568627982803600809898599812576154155306637038498155153568893312598041053287282091526804191884265167137533069669143644810957687204937964522947175748380030607455834115077411024389523705106744830366428358591448914554229811913624005276771321343132182666895068340683283189013022790679893231835931478895219643978584095273623652241149371673851504179427180894961815179196040298279015031121011857850660705679061924434727113052521514832972593839150663448700330194023385805107269881498873086227644712890884455978939432941983808733089105644086302828313001952514877377491172402900577248610545217406763532361826054019516367856649175052597132771129786710136649040679944791706599448888427334415075039842162360240330768258265600984299733897343964925799362825265943337908230016304536749048137658532691393035617619878821229025411560643444426718741731863456062877695846920944715490503349222356361801212541778904137043988387223369561704192767985791301736116483890516764135601319048630897128813236540675062853678694404536246676680015276391036188927221554005106417770999898346250763333214068431130971206936306872666275499269565838360584026558607120444153681877872530974690247477595167282435392014281897786732139100748764909152063986998389678265925369420425050094489001620366491000230964816571862939990319254286906346122365128012362655505189566376557162100321865927425965569613234217950364201584789561747794779733633049475773681103328198606747369224394937810280535946101989945551362664878928164854323718712315623721368553433683167411904987960983297201045013474121738576382685918325278214414999169789302919804237542709509143121836951623744765934691802008003085408042077605466540602635938605094000271057580051565746484152999895696480996406570134380973886605991125462284678608873672129976517713799853502458949972540396079184221521964826055174261817511820690961251579434161853029189121133126079455274322802062537548816593078884854431513224586931959201023758903069935597262976398776116006264489745076281833340653202731974163614104088140889011036539114213895124854583681750269634861180832854921781535435231875660125451673722427096440970796668747139681862836147754271314963920326266011600185558920713120199400031785786986016088892187286538761830888831160311877925648003398888216680617707093187004163893496749027491954837615908159700263950893491610275218836490151031592603838779314020833657398658145638182627581887149338407269040381910541455304928962351254709628163001216309066951605634594856969497700040649004423339160837106249920325450668562288924447474363696038252265802795483726086113340837001052562090867289795054078168714837139492024141737235041888744798637345874718051833585823771238890757469925736080831906294930755201649414333458496189697219469197426001495410675524377207338628656557047296746074046522541500253831484326818696707209068344717875295205622257091537926466535805415953351265799181328562279296401496648958346135372459857644962856864031718007545214298632650454256298303522494008056280180930393653095088800023237909245996984777057466386469544341566479858167355432631462134113860339735010406169612496730987295177198616744864685228213619369085911724232691266153133947595971469808736939008112254830452752024182782611774120264901363667640486026587845053142274437526376757548016805111812683953175767711318344113095214990726556008850626708106120415516231802661579519848007165897859713594920023585768504359307601266617353405571476526524873845335107163960559977395175494483791072574387494022522619158279837412766327738624418916837684492760125547778732394169787471939756724604074563052707962582600916180471019973085375679324466653298274346198241967822817182166013860446147550035412704321669448814055121348881252103745803818224579889769812785863558522494183752703895500045189285870838490562981461616626796472178679037997328003675277829045931968384628068864059654048752790301546016115213346736961913640967580624366841461388856586320775032366431237915711920112078191926581364265099031581745209171598020377706421902709614942603814518925490238914532902992573848929316488145245588097902071472956573384543775060558455746212544510376663826310546186520758146583083232958948566481813122989647251887416749298965649827285215638975010541142209827419846036189516215368504104909082393005957028732880637758274382641781499573026425379185859750650609498334538394673650579069352994745783148043524483691897177470494005532438605111254907098495710222122622606312033464571215236213797658864111789996649823129965555693378998942639320910838879258329303164643655137920293173068202497295802479313401059845024651505008684233365038753923497285579638054930194929546971280748380394677957094115758945374905966825047565841272283563222516097108610006667054619982669033355618103697991671487106335278896673033099913409465925279700219378948970634528062260569116792884814951473712126916964370499719038566635699181409525295030669649732565726212195386260593173690058961336061003790439956685053396436833853663702508105888222317984383513035674257809315949907804707560014760870807896893672246714559849784112909421223638705164551102304088878071902949712051977510575003229321230217047352561786184541896637978750439616307073228151899026156431025438909980220961510290838059755555100441561341758134094675152680564460363439088555348296143913371236924796715928870999071232605142863187943026935353873874729127862027128596685904696632578085023860358285183519690871385539394707371206509698576229382750439581670800682389125426278066701306542518838785064659168221404075712893387409090551418851197621412670254273176345347420475643583268741335127088624856043989259544099370856323546567239738821545154554554012221421747374398769732477905914997243897394953121203024779624280688292774103573223142269530351376671399069427547983850358803704479082323090455796345654984815829901683356747177282608328308536764133092584484055261806343002917107291148070751794436658852836534329842471246136503310523678023362341435663594148487683306064404155076591906561668808180062219567251396278527253900137999866869876648606859116147583624221857193147956990024978351318492064700066729847454303796399983992983704353572875680955679894066061397960079374106699960923175066714650621993326028404773878537142107166200622732596504417690104811185719362785464924464531004895323286943824203813169631944430952396300963686359382913272246367094185730508070856808060985722757575907798724117994307319826397051581449338392641304359019502234355799531237396922012915506086231000261616424425434955644528599988945449633338415750747051657059129768922949901333841917368789762494636188511286072968229386053702302744523547692323304166064790272947647699269659892166762108158695346636626635071984742707730522075683822576636721055718521465476541168257186527475269325861312346569842738593788930155393590742312627532146547670120541070232207690458216764028032814018170225233014764936699520362810375730773753183483305706103326300008045379334468826189913500027724690308532774513279398548322519075492872679014369000795608410382953859017784971099644986774266323257112247727317571397032871509750672690493614077160780465821587861433533057088885049379806412467899445897661721770390627130915990076205636632616668842312993909227743877709285431249708099680890979914814500791382130419575512267148650148395045784214341249248679162091445740266373545542755306592266481712755065532979714811652320792833933479702769779572581751255559668180240689405740478817399708989891356581094037601144132563841649867354818606083965517896912532296504940884163742571833874787242984943654690438240109246659277881003065381575406357251919076942759814545270182518408797698890881229748166170025489142516719942839948639453506270374591323327415271539495142681048527202842476570063891348151624244275475038706066736630486933707651705052925104200530540705330422270008574741036172080910210145804847293606748851601645992505779328315592741655191478203748086990876942235987444459333144583374027035365935628467318575792201303046540513741030714799520445355850283525136653790501967540742181939058419150335884446172073142722402129906255443392657543541815634839817572291126727215671368667936449634876473678651282802388540609999371689399169325880745093536382797140084555376094805137427605927087357949020836166017224751431952664967896847021601041113510906911749282611207347972260456346114830744342977788367591238993235540510653265753001190576602447515781996984693938773756754919324640502792956144791113129008795805396014228329305370097737582557799176428856624493307494571210548834977061833469352445171538613872094204017393332175463632840275624975882681345055154416206048317796028808050786525563548697572812807009365139201179354239375825060472238847321340316055695089821131187615888973920919936712645896314266923662951217509481240730607929627146667710406661386017534505546933785418570576376613810892578798200723642438854407814370022029281308624403222946606767720467353643306404512016250920834775742865743469606250265123548410407208345845046078406924007262772952504863423014149081669260205706391259399263925034975046438493465927018340785863044122369600464150886035940782133894188994730628784527126873455970501512646299217255405819572735629873678933714019908509837836882784922124880898657173216217299173799180177274750976717055229731886914011896857792981415578016188531111742128807721616686597137045145884223985906861139202009445479194484095721616397244225256885755621892145587459268225206394758037535231713400752815040004944646955642475207190652488962351759721004035332694699814438010020929298845635893520647694375005655993888544336508319206168554556156015653071733127608668592405613824483274400392323238210600009189267748507730993948343480071431966310467831946839009833513561632369256475366929515145974854098905849082435671352394422193667323570881934387415803203559240396024236729479513341171139971740666852385051111951828162779405941842495951966662170380457514977845670133921614334930964985266841261892318353011167122197253225322806114513129423198400945750897736010902815358111201295797418446576502039237870506385276950318613544302278406452760269820173219230959181080635786198547266508150525588406592379569682095066926320324587730201019966042150345926036563996925535064669295582233951438640742486468159122418623387640322501421143641237131211973075494048929294246761346921485687730747092167530600431442780662571900903337635109371862280193548510431165943010757371901995458090419539953793295133400850436180371306747834108636704542272049092777714314062620292416379298908001244829112233324194700463363647901637336370224516724750790646992896033179163887655375222962275899665740451660884327618296804894701270369088219312801561280150251677493075224962978879490165105665393349994918188592856038045704405678046704974172945627940492901345635923357833912062477261481456109561162039146758648029316640097847236619453923875907560204457729359213804685735382706311819178140183610426845962771632103055921754774925680034559530338006689344814646277415367662530488126365802284254049796635383638005040395778442575829330247868802318680561846025114166476909557672835981104086079619075043841751635968836952880696056949136337657041673931002029993386229036991604094037874601237382544309954107566845181569225353860086468580504522073800047053740726422550945504190180600098905091138520188554641418740953337840314046782021222379469517525863558384372259099604074586650140237429820173361531950960789264271721678018285580262520696412670675095497324972953756184295916311715103033922231502489390376390911647892264553281125386253788917688150478641486853041877636173724875201263905819855348529156894789504351837911503660104086682157573144527890415272363374558012747105904589143821294169512970119435233337645807992755032673042415068795323191235972960981250681466619208608570788808594197015079956150893890372628460798576551054239850967593060890690578186484719755553411482776890213493860835709080797175461378201587088508669371085129595748618825819321308498728980529373338182336253252565077383346329447790981330855222992250650588082584297800747382250019618533514417895580004067950878900695083195875608458663339883931541989935028941138441527788163434865635278309378962788142799100325133433151323411992446752366776238949087894197920970869057267593632241913759100317824388703811282183004121878971308592205883231804473097762397792582947586680006797272605162978767439923127527510908486921201759088202453080130187994675004514293315174396975424406768035483041132293428966573877366217503912482169022452189405240948117586509837864132707702794397983338387996775646309156360382316259151642982204898500960535473422210410473331622462712160121567636119385296838742067782610493815786760829398475569586363088021115334885124679993770902521823974523959347335126444062714529657250623896672327510647941704581282622735173603887360885364685781012990435675420717746843475075837035947999373433239376751471379966340477308005940282769582351217335177117541438430346004402032700823314143691318648337835025997487456352925280806235341234438541671876620270384072112847098175777812651258300024183104181503241193201334253775912135240737385358617281535709635280015696267311630542329615559273587430362293334253901882792129420680831507177762976321465002150488329538589388712915939250307757940058187003445874563977124275354869490912914169630764811567487640912065753845107501267924245178434796406701273309623391373104510894568696539964610927133342727779401233937396317066887206709992336747239848362400608434973922236948783055466730354469742154839483136241694239170627532604720217507941932884019881301421204614744725992083934185441862103020970891937185793347795945835603757810233739394440697613155567021982274715300234006297955726057895283558934205701747942290443795095545541839458384419224053176994384894290581483767701053161594158154421803266637167193731345542750927159311984405175295173223465695743401388286252941483794322014179157023014499979784892773035928345969285668061120235356007400210910250891651027560996900801053021944104606281439798603984706495712828035360359722722018100263935304391546011314549591940603365834478470393491279039438672382041536752687407532147107072024715077959712034483345474076886302200067408678028370925835608197537138484604422167558069161971812385656216964729317427347558924721410982839854626382051250245248166062304450855586897468577015340412979012869920094116179932468875940378488308015008997396829917098273279586165700433274766654064400013955265759985513467506913950146971344307536277085508133244381252322855418497393911707169898987396505571956708174159498426283361258972912836470238773104084619549789891688973072609257091345440905196034254394059714728876096988278163627916744553864001235537502294270659777164984102354101698250335935286046159567595901455542945621342435291148195205540357378510111404994783859023591758011623909892580297033134747580056308026760374520601023335736402021969753403583770785989515236811814715701320297095952874168713683086626300121016283819659290450944826009404472033408114393781283939084133997646864631668668982934071676978849606583628951487555444364090790272085184679282416565820588460547107803439425391847021208654020153267555093224176730005598575345959272249420100656680715099169675196594688348936598370998618673114805467868920253919487108416330135707717799763985126729433502762618983066248426949923142835362721925614337572478449299746440911870147442814167638119059647970942109752427457062848916698567698534384662531218888076702123938772796589889250730287521962406768840868618424638674674338506913448951388018166855250166696049081754793320933838292272414948801010118360087124419078612955204219839339753097837427053944598178263456444760730876345415104207568766493414155651054300762086185658832105082562809160433604100739957222838196623951888405642757711454581164319932387786526222103089692123675105901674804199268973071570664835092621660861863116678509874389726956801073003433736794888789962744344438192385457343775873192462739676515612222127751406146269015550545044635041338074935466340359160765878305076177472638352981838517324773135223654540979141278056222135984161147334303193227968863362667755655560615673631654418071303855174048461959842742591676021537396250560231053134504915214636018376437201018712753846086092018840420127474616443577329572544226882426004000793216898304542687337260108777290700550011037837136737719308766297499689418307179157873986998796596192553959409567998819365918687950224588151825151712658792340694542370143073846490903356209411881145846719484131402412581348359474366144115794876601658839467422194722809510547226123770333933634371468054448630186993448867371487926923742194663881214756392794068709592646846081512642567265004748988792695180620336278982716665885602733046120638812019110692779172348574422943794149202971728478936240337090138879170105278831770654146701107297972546424644070681641432532292998976755990439077759418110831858208537362819052056528074966648348422060914704863891167556846044643928832361074216977673439582701992655511491200115524116821873151556340189911562944659169950820333796532806436281511544481726007089290966408799337853796298614405788464062105792069587771379165985152384613461169978009199251917180527225724465656164099471976168787890763474534425687766320288722492704735480256676540414802500981416814274863746877214199021221481286686407495739556740872745925679365263944439375914289087928052070926029880142699644251711819680367033734258095516475385001028128947786489827802297496265904721863276833807089733896839507495493116176181891947257461895931907066513262689865541801866483363988156898249849348832319929057974830385758419019286919151834470923733945881605327664960463007165103291070579237240242627005416655292657140651782834711998468029501210612145775364666044686312699203165354463836157590038202441617056953214311498489180442151443928807806331596498083364192026094292047910083262696496181719428130522066771582897304123009830023963546007853972293569571564070693485601331715262518913128186060648320444567076376821541574773248104683346466932536260052867591046429216203527139818164206732863522516926353383908649603741800561091413061371409496874309390362362589127706677247059801507592042123431721623131678099263533593815617697630150875684882568612428248081032245602695789319200216326843283053509704937162998597928864836688188533633435489745155812360617305751170208071587955539779524176316042818676849428885782196693072462249478635244940122396510468623268029747221616334761259571939945646879210501399673487865973797255195344470247121846362163315853169753983543835681978972532363158243819260961277692934558502507700968377161041109636012373379882896340096660113260337079594099858087085360043027973404475970894759930227380767667556704710944982224915590886221253420423498533755334122623598298201750261935396803382270678218700659690297052105104148974352762613409488281493854739139366041064729917212329649767877400112468707621098011693721903436469825265024839588541215619392769227872493304398521371164344624095748457113692256549188440392715603551599028645521208420353449342493330627823847435372411700219939948218708838722194836293719511095424298514484111978196931262546282482557505997451116097348923400072071543309356529622712723685277016821034956042717668756425627245911497124746625144855343041018870979037490214606032357730968849610287522112715747298057324879107366198292834791281663746741556467988239541978451535443764546480194380394999989217383972823670315774116786239109216841926012045574328978573874074200344257375533915684436652108301619798030145533216652372124327228959382223680191080975472860527917251222677353934430759266943241011253198180042795370001179086909235997968436280900273727254252587186213965017638779124193826036727861714100528429645182593913709450266671000529629771981141220079143394821858214222130002851015980210354076158404433053928641127245712316201223079059825115926471046921173194739254252044925985762434340281641042375111903353272031301830561292071241168677999514954788771055842748867815791609086446300991962575411020165855652766705538958233511531215731219779735469039247424557705232063149000017126403314609136855925196377046218287203430390836834765992682824418921533202563344592919826728215292638106221451669320547977575465962404843493315569327914681211325834280668374956098286634133565307365188777601694561151842234185049287836209219265091932894101744197502132655507135957634916543148052875670408455154170277452736020923812314609008952103911733274484273499122198882939090242236726132571052176226370400477276839229660875704809655370071776080314096420674622613623096627390966281285895215121891336205238516688482076038747835794143847650519855898313222012495861334859161036879928315156857033413940832911566068641460440514927217209028419099304104998297021801961496901879543262802326531672909283934256038949955398785822005934747465238614824135807788508409517499740728974471104117569265159892035906337226868205851197829248164341281698927291458452962250955416601585113379692561537227995414003089977175450331037272075177955832468633524564808492149395938578822323463999410594593520344596079808025381577370572565149967419538220570294187394967850391927835183650806011991720035416179006726913334751785514009559053678564404352796446028457459204699104623135167803878461326425006445906052523170966109414217494976728836129278650576125805612826218691129805294279425671508289415546999020233458564731766109743711697989045166170327396520826279241903300322757521104998378339752866293905644628066591081958096203513739755076344066647364012322398158290630631029395219377311671813662656042546713913444567104707694144494150510160389287004945519866563029010703787493269132535351331082582224528530230975813820236703835828576787576954329174552553296756289619283210075646672411351074974013669598056868421092714728563331765938475174382528666065186735597579312881727531877793782871560634156073233188452965905091524395434354464102982694487727438003009638604090711016721758572429754049474273310615573435307229265849681922474626208750801403703013098632133445024172988380246906191693540194686052853938397006515483634214290846630671440132312835397326140153076875044913366270743404943373061188689209019032498664403721855160362377736055199135296777878117896905356112323662406298534250603733478691738339418893420565914595579803217473899406888511106157772188064152207362986031380394935282591188009685944973413900359093178652395212475890363410737448484842689279577253192704484540657311211174399403127669959832835180666477086056515579891034893455651189112548530828578300570704759093882578120456558632698267509634563463404854542459348410034945852317729199889389214358439687555800291265376279024274098857652837956997497112335424129330792550311453263465521698481464922660141375913313241230174942349436920580747274251859552282341048845904685615554373579048506225301205418051327027559039163532912583242501706641592584121778782134037352707387348764640060454820117852850765731934800880742657097695477943240450310167477315316319016725077616895262221953999063086086256942023186428337674116090015934571855342163776370319071046373565552288730190959629622734159638202199357212075902966067392502360743289332399225858282664872786015727531760942131217815921320674511786446745738612893953956532412883738445978557097634847257874429009415743747876915148602551236698826588649418813169632218687486037848769131850021632032186342703528058856225481378029440437414678337599393858925575700862315211305538221467613203369233477704046939634529373987556146940026187490787792238462330217768352108815404794433503826987739460620808123488267457872957234616801352029130696211953839542835672037275070554919815706286406459284883870500757145135040993415727369585834976593747692029267393241422710747079363233073287182819015225247911293887119458888840244725352673519181161001417039290219199414589501434355049235274052627780934451882046110405649811396092834641357265924939092073854263506113563893159083610974046373636094667537265844312161367261887665057967878333628283482340774035337077254909938210477229579294472225083640152288209589050767858922573427417529135273880990891337390124629179466521575429710410783241016393674997423673329524164211271184322861731916598498843958970838347924436767871633993970374741344865994743580758794932482844639549799962668739502127373679363668546641136872677219715037803144881184449559429031869769493951805970703442963593749997939254747135478106817464640217046913802116410811827190282031630800008677878507598417156765878021098698297238018572597495265925267497580701503023786767182561522901428879745987710966775809963069848472414617143857971996250116996498590953878533425358450035612777151170788704398275039915412674087133874420644370125933675039743107788889336451254478971983027096988156212851238190527014653346612819550619489981054595563486615416572570129789060696590691600318228190600298950391505572572630097188393574472554537739947765521475679961918520591826183565390018578013674869638440380115388213026170728881056970142962643054875069933926188968379590721954731795140068793399004483591466743675791793606980117153133328819256093610888667450463698314354333560080821141892251156571667415236079371720461185224418362638204056982464837144940047888639647707601008380227163583375027922763401246675263627410486487622928883607766387330070972951597409809213997683780260503911803198042176939553247824035848815869386451906431366536059148236704563949971834571728899060844273227478942687175485492754935897897105436472772620110996733502270542147039638346093542103365573182158794899715451589785958900834403029259944323385438390656563252569626965322330931544956095059855382774958071941713191414815357275598620124885009527077005561728970741066335819389524985096833796269421268930802302673976541970694227040107957331526461904964902392014474350736992352511411279332346514751618945870108243122839898562544333932360093968447134791511051945067846998051421044456662330480338646150402164510596484922146869168946223508828767812417725541060017548796537485183584849440258800948114250808298977750506072278437228466780818961723535603241720634249813060048789454475084252796021577409490928528904546772092811962839535491263779501884001927185753070489614480093770810499692376060797332593988330877226767489111914583206931475172111349614744092472402994124281864198400144782343377646225385819908386528274722766337143084720478353196944635350973320362189452291387810849842281314023765401373999406374893480350735553936814237983001588084082642973008051862159831187881380546688510847818505149261341010388916893564151635923319724694517905465997711763363192856354944630839027593717799656047392753636567778906758470827662781397431818306239434530344499674170143199096404669807794459477774047247139012265288878198963689611019410049291545535448074057904971386819345699262390958023187633554642564320648801728586966054840124173448901038099282503450921512780572643672826575173507879788397916339954961073183575245208079363307655202288186598249427609211519388435494984144079383322210498269083556737804471308396212847827967806995545893000558153896262074521072939552792391411364619298163788525168416177251126484325945513972194963331140382938536826101875132919565869279243287141647271499975233814220732489875421304348344984372030281071862976638589855128331532058153032700823318391243211557177285349744845604480068430104533517667294369878546196296340952580455377479806700682351397227766124364335021596425753647853918367039712129385666012389555624183776659917553315586286527730027380704287133241988212338720826380255009170061483797102396147480396843951924759053883834438374505793219425231204383602179837068711893205250748949441234088194175720611920082016972236921277205055737276330665584819072253945306886320738521310288228579668384266408380960962907932113806241467712636976087499316445269454127010545516692582442364963164299622158401836206005068885913716684877761748709484272550197498134374944586016010926195282825605406792373529612481324096555256784649685863532945355784780867212697321314053409780009968283726939339707863231104442405076280094082221248488456987502769511545398943406937962068950568773400984502404174363619195512849634577204296875356340334411856156298729106392918778069070569264520391133777476639214378879440121922474239591677199345049852740195816084879576116993800465640569198554412773932684635920682227862120188017743874900468206639199280243420740413911952423202188497627856518356093766183102064894931933499512609838469540785771168564025736920899389575175628001518709912121757987750153260871830212765438982413276367625626755048696927934854705188689401181453479426314471801635248231129748294884061658682000054913051442065773891487925478816218196960251620774075632500842827526338384805094885096758448846917373125656666438389049851396403423774686041380721929791051058019686022163744147455271246018115774496775466611694862017437847840087838618197087166634337150499507874413676740893748572841459607371589893726405402359297372619779338144412888784514474937059307139752545201569234110817553988052249293807935098082724172743274394870395911554342249229076233121544738422373797528380550700238664173683139520755410580575039954486792018733107864680385518723646709214160016201948757599210288216604766797708088798585384461467394420899671325733439192473295849425273906977280046199782229118079472072523243634823099776474448605182065114902435707477696427766874912638164518469635368628633313608814769234906135726377759866782613229509061090268724506846514649199851423021794530440437334078665695188685922360719283580576755751146126681605604630308764862041701440303479497015697642982683783802588287928197036484151605544582271938530507429594213196192647660779216034620958394410972246818583619797173371265681542556266062483798492417252150492242260054595758397090290847230490728684457604041136710204096450128004647611670814158794764072336812494391455788267881246351378679699332819178233343528121081090163585056759868484111543033483294658401405778924297111980325241399496024864797304206721818099415377378487872331431658482578434270786061834560132805019434608290065658582975059915067263318017686465304014878723035089517772072141659598498190485224432859430260772110117929051314896318213674917763877684954192727923416113983894223181844852827872907292434763045476778135566736854987588439943178655833571560955898495699665710306361882382002901518405045093961206015947869058914021709200536579901068657168563843199076117203845829885981592131062738324799747435864330347915170704326534718324047330272628174223979656870819232987194975345464766677819496611987364468685879057350790991096551124661036118656488336130627164398075691215938702561484648526047360029378356551020158744562440526039409527187388938112027897217886008869398170192354177921032101895217880706282091918619593726103203653993867424786745089935874161973650623390809892754412173851645812845860124038160554086787206798847431420202627140842586821077316739227374819209065734413204685519554594176841017526495827451240796416573181555570643279914076103655971519550298633581547801530023292192884972452875450310111644729055889963484977618677647663294605635460951280446564303185059235594035483979410079753099905279058008102867033895636231606287660418963481805873562170599758239177919822829262788202375766485107747270799614443301798986095645132179909011636538846446848882947228121112659945700937526021582964823910585773521810833203498506434042613599100581847600042201416462929052363734013948452656907754072408105071347944932620130874241813636217899796986971823721459738066468649061218235882720714117618811763496941238583884030254035626719320697139542707999414310264749991292771429960559832871059423341983186163486390548223886304401998620896127790950653810002185992259928085304275748253254869395783978381272295254756131080940945099214527452694936565843422450853254160645326655967114800079907368638682846846341790771769721564737539673930878415364289207132287963501183782220291466726722422434205024220027915096616360957270165370331373477806687760952045132631237055921382036703648526456742834167565857511736921565215452340346680447692480821460681641162457419387039640271865886432806974215899932572785458535052544264507332707958117876468534154512347571137207414797182210360444551083203865741772873857051211123695479659611857412396856008089583953478759487113914156603001016569324417184778240008439138679462714531616034685295308868634087317152017310675102948331114843852486775798259380714193911686904867805870359278905117895990274790727534740387123156436251194090585180601009134113703221615537045827158286256064316428260774762819472058207457596296563575971541801044892244915643450295909455399265626566193945599637128556479545609133532165967354907704212652759228099916329646411991684620632778683637884056516343584350234780138003195940288816911276225432571113007382069887713596423744545089008751894896276367919541893975280194890467394772429126448158160577507672431531065257586818622464031258379550418648013363084497563079133724292362453378077067951951400263002723801074183917629906668026467815661280867915722431350275496176161918735803756878280166873582854625799559087865099153675515366738862063831207077992637622180184061998427600366597619890165833565638315880190685270892338061647389093019865914122477313673351793439621921421559039762763996893169525211424282604968927126521668119760148075376257673519241326715650164131511732463607794022476759469462027343529889464610086728459002223670415417395032755136521705714386088219918110926914418957813077724736137052110215513306325759440441661522834230886797806652079382622000181249080888439823289681056729370998850099491055163810246592351700255670885772682277018057991556222323852062730499371056842914722419800212522024317816280477790684404870593202744053546515432730915890219095862427994090596989746621034638513662278055849456984258610891322736119596584745986561053130052858713644725778913675586478788146958956445908831108122294652291029061117465355429869994163894230039815149828209670327725587156231096271966269953451891150353977369273481887314781874740507472670657085894158392587937669394160266523046149494581802907845322979927902524931430087784746123657634927144554818211967485026614955444468857961732757185682713113717975409906691717018819022753078206232666628729239321000621941338608585160708829342260063654423643715913017275436592754870994497664592974964389282550538528613749321778195163913630953412829476423963705303284227416064382524690258534274556246119514428461338616669014962320365370293627068145831771832175389328613649262357180854615181124543973381943724198527997336079046272652797684522727350293978302403464971806245340496989825955130768150393290110568075796210292074844851173196625891926296773701446901254040841915323880085039280870810139140660373453414993342092110961283386072255780043279026956170653686290436300401430318221528913722785168815891612104775909573459694259407266343499233781205633077000793042927034840811426316146260094984126240485423616649401172855070773393018582383081181697585071238453697348008470247640229783781696508903663971036026632785244590488324394164093863287921115736385966013822944634159553705790589407324997224084702022096117573896727415793719454695091591675289002666199015358150587156408192362037483479831276854789184070410522703693904635295988760699883659919337211478572035745693438265226615407145269034369297213351904749374568691840475776772193336873097107120202230459253285052393439566743893799303860986260793412663958596775928505660882254850318703123992871633195923121376471256177555963011728267140150074092319206889605579685624943090286234767243791614980208394809923493883789559500147191106673231907253282342609970766651031597939328856208122573720922638875198587041866348179166512271052699902769012107127266186059500955536035407898397842415116311895555343440736147566839390940934852012049042037512426627589722202281128058333318720594169164496707378590042676425392555710074961941485360815035918065604137776183575845442656225084471894179644357981478331105448761654023075335688137595652434021522548832271601646371848660300793054238418335220084891394074750594126106011585258517096552466056713258918857426191774416492767425937856647831964845451241742583404942854967244595543559489137770494103141831976485764741782145229381985794426985197552023664807189074080603713752178932885808609278556341897305258248035723892671087569172052800843270703065662929627633879902783129009066071596001584533194726848671729620482352326114707371294273904909282487549600531987566184242923066628936325817503883914761769857191006009272405718413050908334541845326549657790883191547695760826114773114094144122323296175765913382396627875448978148857437081180091075054076139936354560477557494319869544850442897972381755585534303797072478692582964834428743257924224520931180954994807036601657714412094700879994215247081504968097359834828987644656445761822959827501219210883004343232370119634709927042922187957254778877479486423993503470539690583739131831054121328465029019648499126920478262441124996346107762955527206260548088307155879136514120965148946244265749398413126600367222365195833934491531260265557954137434486868923407852364467458403290444512576004974292174215260829795127449773889391606449335910628739942558159934431819766140342312598566084195626474639218497905621783606446047947682105488763211194206151058772561471798327547291377388774400780527245975863219303511430802094021744517763148966207262463205057437184456413939892550304349560692596270417469336484708212347872418217992786376815493320626196485731450096979686614919407878453847485070267329614246262402096479772219100154226730621855029827797931591292262698170222066336438219753376180568466404726262314922023074444170948797096380621524703575179656971991655136815805140066214556510303899027376655734080620180460626762003577764302783817037817386650577112125630713281624753937085240570359987113927555340102151955045259181650345334140851190993133956104201969108822901923214605189788789923172055380225694037302085159697380535366718771974105742740015185904335838723979170156914345060710332097155898605164129647421483135842583466774466532378444686570375200058354803820801193362404015235740161786580753591960718345813622513915475902604736652744042481827811811594496484682588861789330274239196150099367477283172085938740667982513512347034075149825341457063445916624837539003465923313391784695834764274126475764219857998387577448626635138895765029001695114427184195707619492362694616788681508664044552887717640096388034255984649637669533082940689541463851112574689174119514043749294656013551344240890678017988706683446260818906321662134515695358945579595249795404288033084901680205316213379155508135383011310148017621890096043502723021655201956966850730951007250468498777442327586446881038370337912831024714447489374027699473010601769750116567750758252193580208082375781463385256936397052649130278316393911211709584874399113325573343401034555076557852866417703064375468701378930990052106886701382856149664205727702090520476576463851655408212044437304481759255901678328132080068710689479596556298052192649540931741599194177726357599908047491390641777384604602708953892915886440245470349121975235797378382072125372054934294178633414146608516073027150032017662593641019173381583701228643346652771543303252257103237260518732799188474500867742292556004333674044057061374657294058729633730359950513928281650831120265180571943307292157721357297464340202081341956779952063069413071940941485500119049547979456910629238953358611005917602377231305109697483426157532547808278872660882781921248328912109242524599545795633002176781470160147963230890097849417487413049346407080065389454093876082704511309941870725497694108939698451249209868292330959322285449408858717199561347657419079997843871935740546564352790079029764340070050233915673240509630822339536150140051339024746652671837641362926228497332971734972784202569977901814122929713951039115388051484154275285442380521498182559122451707891236144485097829806813991481053254822076192627193926184974085995341124706156704347232824951211119032228361362622855230575477276633313236623535526730816086882548623330781170270956410158948557723872511499602683158778700120074924436050048077938936273458402577848088081879597074008708232457545174932835306749124857428800899410297484508720911241471265746390099981450619684659123051998476956011540417741548888791668906515033917620356456808204871523685090108186289085171097700281527869104420498828634355525318973491714824374454114130440787614943184768635421607159260835866796682933212166895404420870592622298481258470873110125300368186063642570650473612101101830455267427765614765413765469951097968572254308577286724986337851192907916290416172412308203934020721324107295542763781531927804739132254227021056547353739601773690732379763565765097070085699059311963813571206246184045604541578857267522667363656307081081891004962868204882200270972687130340313549457827661394746362163191394613962877240534413548132802550511056891254278938903999611133828791951180662655116242614369844400982978176744167428609805517119405449775359718943607190248261431710064114701441148502294793697513157838004614797750701067822238198741397242775416358702305026710591175781970197778319843595523398575298188587556193064222158046656571722787396469757320769644963611555773941775542498923212053559607107937153578649943407490528667380911907266098174784455206456224854284241372798612353546548322625822007817180879388314301020834295458464326944447225458871196862516448171209910069151390413533952212426100742307346358443648816640231043431572123026230745728136396171413054343184830445331879849640496882557786084945803325658770586943151262899577733617891847604324780984165170248695850428819815966388640363796644149413490268607073260373180852151569957518648756332831534365886490706082812037588613778997750583304100637965663990023817870948861925613359035967012871015048192649590803545505995819959453731306463663379135432354600596981596302991174932975183928094869484291912786114312365641263995471624941920558973541563044912625098514209381092582569358676529126731035830327248250454248276833049319854669342077487733138358278515023031261736748046022414907841507312169861379521911782016095603524175929761383465369063391544789611916355989194311094868009042331013368616202522987212026654530840104463548477984694189795694979902264343869693736826003361703516734534324666034120287238040891678575962625616246043001290232288775314659753094378308198773394991952723173389110818401809537276280962958047542663622262768243187127280494127547207821167027776955549532321493869747427114382329079148082179181145416799949040416919567278674723774360538502172811765562349558685279409679530341511986809651314598250255911889017809599812529674951918591474848391824827489915030137086166426758436566293700821866978641027097183976220614759115003789977531425604759037457181470025021466547112740503351954929550392799817276231722019198925521756541972540430093050206907073744700238368032883583814330548469314473369646553608793189418479233195298832287103762836709278312731921018328050111929507563595018411111381250776707197932814376850652343566912091009749485838677619325916001055432263283512477757331517001457067956932548169336404084015861742461512563508709621177268740842807987563898751097930069444575657770857302909081403490515356832628171509748321945493162778600692728206107746156431477222427207012450031189026683312222717171740777334938854586914747606672464751054048145713336832132092563694656524195550038116400489609247230353593157815721138601413534546761790954705524876752208089900813868186869217824600242548233528172792337526394478174502105392966981570860392360704659639150544275103273291524298612887376233538436050118154794170622915654615690792760610861836496254733267009496003332170619593419659532696684320091563609174878842224701320504750962310439976571805984783623180523138484880572440228841563538898347896269024568740282686371923249255127524446022447923596680019679697298252799496440695650579122639892579273870907188061398331172484335290227105041767224753874271332343235932067959497676921999175768680495273073510070765639916375716799904324035687741806483679171631500954554762457907421191738170659398838202728088240031678589095158531019655557547188159467001468195903073941005231957645352945075680353409776316100188655290859262784132447263949618945651612543190787623791673464589405457483891758925754592262566711250857751648064972623682081570778791281032904054649456230466906623588464954174648033567747825321444589492295106025093287426118541933218351787922399682202356793850926519034532889528768758167694922505559634289537953452935567322408533056889457232861581446384972930128894278549308976195929069493290668736881080623182785130122979428047618792567083647301097739277113805163008266055793788703508192272072379490520836417810398171959424308979834833625120678926625727641219445142490192240131885908727643332468015304815110419712228733900683596556680504276956692220364162900795527078792045915485952852566157886875019383688120207493626021207588380863256402955560283200962348690124008019433237985613464598064576279914914361236916909066130047785692344224316586764625689076136444244271433214732420688231430335062873169285726402573797027657926641529951652806938195939957047816498226183802285090252397610634774444054562199472366392842231512795222664474272880436793280627786157349378583246759526747584220874550835213009800666868994872380287121289603649324030139180438041833538848314353165978601776510998058579325326146548606453833124468969960297736187012164836707332850868734952979027978299805871830342252195168778357497391946656066596541706058006818689751243543425711642147768166050707034115288950391562966778583923837873778765333985444841837257560464577277892951866041185133913127265186767632687487692708113486346270667640673219875563849542431454917840676505478453810675604942364945847794556003443591261997815908470103876893486409768172163623021416638309146478074465388670777240429084359876085264602303514379956778332885138651156374261772300761616317054001806954542761368228218367024434143539773109210866505238478718487961258702730724556651335080354866014888734745791503264140061709399521778397320648102934778675290188831987273354244641399216228279422885020734088736442297376257622492576291789394219856925077534960471222889049793167707701484693430695888466709240909539032756086489910227402403157535605959970702938168374232681910385861766382061468579365425113433390706052512550152153002942825341899857149610442793281563642253338064092459537690236278347909845597294952978723027645031069506220522116227590807436763165156620268109409620833936338014463919151341435290416867449638321457024434013709231467294825632897464857224342122432220923273577282385588171676822275776485224492417083578439706360208518933738591262340246584772301354501335386723233072301648381084302829077593901536616703799843680862572887341757090095755394867791056433845273310864579180000050110831822989565634448078387527029168789799386311814336132288459796810145288259170977652323229804647740872372756102805068147909373037681861708286983495849009556757457516695125572806765464518759303608845548308192495557295324658706750987343423926291297039397241468498237743695605735448935209693800178044480348275843385828305967104029407505542376058098261353801098519717591487783296110049522182109299613970360867440857293344394630902298349334977609399316845189555859541013913163229991091401985561128498982295034215347570957998998929503403769629043385660327137008928022573340937164232839113243416221480922997085257483923004816338087828187764081772401256940689786694742205703080718663062644260764906903593174700051842615985578753076331150419192540852835376659081799653090404027749242316554316153269129134896866398128224174495780291816434624233338263915452229430776181920487560013776405747774141940989698765361075345878360113226225541577522455956857166282499014055919148540411582567201903303165722229504050782477252762956571311811002719840447450358757835666202819805126760895059535371612622360904013399670369191113263085830596807973488853177720181129244548841678586535954182335165215695280074591705843603586821660862271300946886263308060831174927274063349578804099575975913681359161830060398234312329067577608712992126780400560690572018681352792704389381167276188994319655286784837065156395674708615949073715570585284341686200897883822249209532727562607688685481069283450286539674802156623700142266376051035634892822264577836046818927396489856651085655324807074532561932396575172167149665484029478496241194674940245721472471536960747179814725627334312674849849483625787353923847861413281640024762976109555192566887456350576052554780486757637208493312451509415915582209567689450748150842490545271770623384134100610039962889141864337472717523744472281063453593805065735768866485014734747715512207000169065585535434064122848410480571108582947566720149662884333996325098214727458567576261107721218641171378754651786368303371637197313028304232948870660041619029927440511720262983280767220788972824615037576487086879343156257939862031972053487835447297728156411160042145171626938212201672143723363678033858540413389155059013913393212720398873373749587150206069920471391486296028541098454594424105461249143140473886839960618935225772070715416236034137651486959163118147566884026616460662551032778049189753578524885671676572368255005693189044625496028268662153319100394199726059906809574077008438492021194226153520272468597063496115028355515969526236188127400010237480745198289065076534485970129316888759166185013168024422255582492940974613437533134486894193403751684247819978822449113967733783083343658045649204892683718561902892109710147869642834154868721011681318835088419994050476573611184590865215401950721650258217544062652687594104740998311285371841282118455660562422731876009141929314880035523651251291580971007776960458391709729697202229129284581377641479446615373868839783965907933021142860130890879678159594614346516592077311333218686203523153347778964656873552096368516885424571330398557967018334578461048309017524602856001085240370441614714226377623470463286050605864141115899758179486050935732953290303885152955333235955551665222739076638883063520900923831235644685338360124635779724403562145111401080312448613885220982487504561248411028222738605518885275979323907754263528387738244994447200980345941633903225011471357465665686267757932660566396930214617104508288857741343172503832273015918850022938909102705780967463329628411411664814291893135734331090420462410905470081390237084418796165454571214147714103394457041072458544043777840031592254566119197767966001845256824467214323651706675763230242380655075235535652392606512957167907000762711733299940493897360184275998141550717170912171194536547091814906309810878338312695465582919571418360461612560310022238061937806917959548226026367642460458480448140546239845802169041625372982082546894715230437322050453525174421157684990398762041654657919660430161374879930080384634706476239320939411986310692404835516734223591371830133127928779845847259589224192811258811534522325179233499235292850388884948954642807329932700466551002296010613190054428639028154682263689139240521772585800512957398563713768202681816723475763775481519669807103275944061706821106816683524867488046720934045072085561474586255886065524126378664628374861053300459650870344822038299383826223636545352436070033389380291225787931509220517190427965974107294439807242588770646514100079934756111902566149261183844334583687503667949209170147685954085705705438439998022279898934732942563166695338074758057557303727305759949476650316205226309718879030539736345939761256899314520060150561591399906668461880320590627419689458025482870428542103443216339231886100636560303471266791478362232031614976100614090174744091754204091847359448536358928317089980195494718345927526663364767156530154712656142666242528550022861479760222393188302584567834450106613638646855113138211575031665880581632644786466493354059153684734481888274577669098813684262248428606019402451951563497890797661495464741734818176258359721871658727469704433695679901750230670913970764247534614302992442006345554067060796334614592127814891326736675182187793218723099633818214532072143850612738070816592998253159210447453390520896669455965358515322242149933124333287174305130051904349485882521439834311613911540309657102141546188786190879337053269012479876217625926817061477286784340014281154761421533650370425072646054075023080458298191162636688807330982654667025332836874015692252227006760686749064592053188819893185729722716420092922876874192601368427243949088758471285804586442395444433190294303123113905540350576145673835808901272877545322264319363258984260561122942714465283392274468946854613984997638673635906466040090631436194394483187745996516516444569172226291414286763239699085308120349378590580976861213766301948747295817498778093800611825918342842418102028303657344023492747753029080579981845854083603204296418828417551468402911320117936183309109020893145724861299651470703700250683443597473310839101173912470198183070865375992346304054564381068559256282061402440123332827181207316427298432059104336095768872854159940992363933307151084296611964304032836598435761366552419919786565711985799284048813284756578022745784297247420879824654471609021330345480230179549644054867006580273706565893477398928178564980756203616853602587477241786047752007283350070420316546657932327022619892694505012756475926683264124055012438621457133557821740828140462012981874120216224918461194011603048274448921506429582099428127022470704382345979681422832660673895599600292508210200177368378322445758230816090179809676986887108215337895587479511626287062677716487123894027305009410382712402276582475301301274616021108589529150271590440442226522598020971882127511750871752776240822134365863191982546402136253284947489317714909198055533342987916282790787551393638017522140486082190480809361595361222640957889484536132963906697056221619847172415993636592565744861679183293253835298429084456422898174542787813951215986977726580141205761295783280999942328610542632849710187253825751668321867182447514816538586567409308704116107332871426639041286063208811020792815024692561359484004177352264276547631828561671856433355050361358794797847689078773215274021920899103828494089944287235493907265535921658713951790948696917942514502680424397490323386785545619759757337795055949293167891879807545711676024873419920263196577314483056838926044491102454452174348373390973178887730825249001726483572375237974129936766361995767550247802888790336792791336166579068773661133778258433208013686246822250160592156729387930149580931352440960070335497818774095741436246688782004105128422861140208541803330673859793496239920482202918869130690437363115249611994086325867974275687901037988067672516963703452671730611712654121406161778795186644202013368339619368913700053773300255762439705743000141856134822555869802999305084473836753141011163615784307899622069910271571597698930047355270497819555657617817124251698880501921228474296885832422699926789584260700072308987437316654496810967394626162906453885065904917016450002061707503504650163863792477362650975286400665944476885811834916175901339731954687118287747973271885241660167408882407189261086287453518897267582550009067278449724555756771955532421684848625028785902776067517709787403439346100263883367437014282927154922065357356247747235841666296652783182600848884669289294304843322557627741180931262759538781491709689786192068893546067582004759199407709762570627977200135766880131919289556624736862978944122704016171687896388903576152217504191786207687605096717098587740892079758662397276814032175993414471494285459780608855572236667185167016835443444770396198746947769947310297291036933728773502868677708013221390475547687609838731327456859099636986138161546901088904205726626733113777132783242505759077843186173230174686703757174360408519836307183316052121016525316213134531388523266609228560724784519613407879721585035702569205312719835069727330916135070417308198639552215008060378525598511663220566591011813566655855642460493234226438218804166878031533337293030865758486212440014839870561114072271021530114572488369746233543752065103866756412811176346776106169663777576519917442281275814365068212194497226930562119494126943707040934270047262831634745337645920840378817593353853964122240926088980888256309914880315092642337107489587471923369382268611062280003033354707620928943622471437266261365645601736863047152417296931751550957479877130782968293945751138425639472283410897195837485141966525495430905358191327473831830196258420269565952805384633168379359462843075869865242090707308405268195645509978064698370899183545829835426899034489044213070483397147830475773987785018359019955092843246465674253910625519439156781535443207642459766647420558134460749737458444095082138930022355539415284696031309185373186908146878198368896891025314164905271143524679349000899762483287195408796952420865078184926915122178804474118227264768455832060272735090697357519477791088443885346395975730410845452620299772472822837334793139264197007280858960515165745095756445578532892875333264644615936224066039910546982199837944926886065776948746667324872273452563423481422810942665092650784852474506580609460743321472341612730961327501632799841562220507821184634808149326450215157091014719819912222961467960432913651780375193152765442901382987310015437879602044096571544831398625540352131944189834659572915316493095905820433132342259096632070404107784495939740241167663568609651632572500628164906978677062804613808794700768049434201116399563508658606621340341120434661240970401211303721033175047474353637125825503712616543514584154985088348187245336118884803966575377855843711330988971512026251794413471596784451770488175376558619241260589089384252812510269341304195531015741051896096045986913219611138966734944692377170718127229941222792004104680127671892239988343126716210943116619407021251633879597073181325614966642031657587196230629605067126818221075445417377506355080429418393519978547675198287577826610234162990962534802862948470485280069826363511856296182845052576381940516023353847513967347951659682760941449847576219466020052969873126709825888472658638780563363260312686809188340021076479072351832468340534800173306584470846261727317307119958938069079006670896466338378370125890394940528387358641577574029621784879924324497694198473051538918264005589161427532032594557058121211665984028559280973073547894142814824637183544402278230833538797313728418913733859200805768938694441903458603662595635292381014519991530890186834199382706098749902467444453652874313357671779062119746225141770588441592682065213584826380520529841319603756623863977974882671694165969993756981610497279778252337455489850581154244020325652820918985537644123554789968270277954607837991737409898373018653264990911880295839300241342299047680241993635800627837231309066489054632324239340557165015150443648525673265947401234117190201147105367664299604203744221927886792555278934819705204246548091660279515461223665736826857517387998263081836370981021752091532836401219808906406397294588441379137900848497956626359284313756706656415952295954587854206715569049081089201726843169954364524137617648765566615739914360791941754689505743860789966061370396275986550100679002430549690664108529855399430178288509644873032576453759434694454450178850656655327531658284537169523595495240657723146607316156110235102687992012382453047341846434955586682075035502983764916934826994620699911703436438898876566203560102327700921754923649460219638962528248238362463223410723542242218778687543779032266943785600504015137428243439534275723922087560703443167946660706489299444801517777630641277771739958943874617984772646270202597590274873152853691736665799566953812958170848404177005072670869704811667261749153737646384328223806668278803474629942049013929471378164515778120856999989915213500998223324077833240105196567612169303560775980178124272769740409115439440297907808233561227301220703371552435995604288462957852261172578401127893527655657881825044377331193516824145385899161910745201279943228675186340486827037177636945374836096966726194637513089572211933762057008145520884212812294277625670014969690864942591213095291688892185557411422949622719371180093090267888409728220910388740521668527886856426584751258944628177747935843578727508589499733563294933889645562330419883622399969791554298099642357864450200347589378187219635321664390152426510552549765360383134211524793231322385278675677998920805440713058233050856231564395886419357590426915895459244877499443913222701934562845234898206995408269855530644352907561961512451295169019170003317738198092024619107938800894989932383202252047992568838255498630764087745703085207286797453236674144557034960346270475029864600973086209312405193935019478693443102717124606703335306090262977884383072881013933581344291554925204557323108324972230613439907946820582268959694246590787376216966229324921146513719559180519847993781433186170694461043866360075291852226720954014367691136456597502963032901957160557460194908683732342775637786214407778348968762486426836660113405338361258793143114630203321501017550207849033928389844940701499719219620420757546119359519573478567615703537296712582928192932125380241683836362695835841970406337826621606115673219761063489225346971700104675838358449952718383743113938589123199531105686277814654006317986467043339901238791176873674463074107563178120564351502047292337794528704008686127420067760607226149231266353742421054280700288210700256910955066791008674934954231650122108695063825082875533578030028743836965504881568874242179844610931269055611814915359597718807904046250803684050083262937528480237518768390075373998829991003112200643911997488913940163854084658954197879593434422542613931333751211013661739752514917223770326189454523614871202504186913696622256755607908890995697202018176958003408899489397667752739392674616675164211399331204638680155097662248702536943582063116054087675409778235735946538909029198004729025167670566224495958694811435180980640137633547670603163594839712441600575928958073112825181029757462329687637244091279520514280167808649916215508823674233698166098229549481323119644092736559463143199522948234374994105995688385645628318364319381282319922447669152755142041501303828039737472818514308130200831452872068679585594259780244766094202627009954854051277742953037226015938410037356765945820846574385379841634222933959981374342827642562477172690181067721970700404506232613828081988954471269817701995275344911032934122580354229411187469520050297767500988793849821507098551064656684295252208216977668192615009936096288643554655626614344945720891890880435865450612169312426308810002111254711469408095566770446027997550836877435692912788943578630441266013519089664449561353627373737154967320893723589217795863474115542258211720732464239677973102171735957967209004288925695602825400224583885104141733368687927873590142337840868568100043537553402514495556493579855987175170085238802292977498529417324307407690596179520235494823708934926700513012536163391084368418210169869965722139617441042319207856637214474593728050150305745081439370197813628624736890793272524438173361453529633258828459594976622793228340988964293329721296303554941488357080849591874014488102531128566837151996785164183921952215405904197629569180935312843303432316571465534548146832961878536643974454560613223323833651663250939494964144658762823756581446779202493496652589087626377584023372171639133347094135633431926760518056395980598609663926674406941928733042625439756849082566670059226464321987572714730191853264229560210280417379694950867036277665823189460877302949358854750647893927054505687287058645367657957911767564812591934220759328208509065217569538397229511648131086489242542202071213696221811669522591342000992751677923099666368953202261528120625994235834753088607211226830939617102681310383210742772973456352755228346950535077996114340051473395474939066412287153102493398100741459096234623756448067729948414832046262376557467350776927693805701138732002662175364313043193167525233694426070139339178314172330163935800389475458905714769572109054371965794852512788846434184972196628125792955436816783476396465953486117469818946339227879544408502308597252449879936610765112977699043446635706452892844349723336858046031799622215992410487484000655069842445307929686021002342723960512176466736136116223864409967030363508167890194152354017134794215584843085661425009289896766022600387519445698737146189513360766847810702114458001833107744692529842403767661464283014882172335810082951786200925079637093443572324015340916212902248234977978321682796558709026056855077670349324521813760597817693881987020036733872286395320628932242716460930303355325309749515595983676813678241821163491518486350784838773033710570536163413723389464929634490258300833603517616822971172539221689730974497503947928185498936627800173369082160568541660345213153538454728900589883456404263585954690966528032388593414196972628070828176314561215109239440018423288272784676772109686148935779981870813117624675868237292568002374308543258519585804017773214548159797642047162754422956973363977334093794754684102215684167974418948527801544424837619955505255473237050497700716924753403914552296084424507894087461562218490703751162086044596234506935786684329395448746242919846715579284039296966614885131700060028092962532478832965958782137691489007603033629149225947723972774463369079094849343896218608852899754691958141321095390457886503951426702750267483430848834147793562261040928650892435669629597007412786623420895274272051873622656973506267303942787015983318173132246216177256488034241651237131403475686297380188795715928301027704587702965858305960683136865306102214630146665499555190631041183269205819142735689139723381867152486229305616676605977265017953494985433267364519026571573290406645577989945415936302989308233319675012274263575909234175686323820080049531424408945684577247505095212201581839103123777757789109591626611507309171497952017043585477168147668997576851062342547240150200622188307799628443846239780250762127248616076113171913838292930499148231499240483316421151409147817736297586882716092427324276056365282049259942402540955409421416576157229630418644724235607648660142185011239025475041745548291533834401653959413620558712444900708089751341595645078356302652737070168715118688818202819594482025926893849386098658424532286312772338995749003771962720020183891709034381606184198763083959982098936801433981236504717748020404390132358971389683924782355246787602117064177916710762399822650221482730277818847304095167934052458280388388634050849576065333976688217488274077281500970913070928461566641494481123922674319905915297374183689320029998417664497709799782556433903377014448864603770880125414416016357353362940657905699792515239180851256928758686427891930052125308440112228650838311347493368117287260410208646126162357988907102098283885207095343943811728023807888212017845540664274577858731134856113143752542065703169273587849756507774124775866925175671724602569975900394383022963642761344477827567568032642717970988290475950930563476080373450773353078765842523640416391061854205473559754908760982781580485264855085892200354720851789032082437907423747140217586116508920085032596912319238890973354628756595973078438074217366137521678604617064043856545228286230047479623778881465923937710296274959833282898304617404255812688170839328019536786393859691936192333493864529395769396262038824700733285250712707194915647007227774724767481636844844545433314689086595545982821471242038962427089743010723294887149804142965404080217679813129573511902824229385434044612151237465318705738601193656421962583895846998373809268856607156956013672042106493582560405773604017309238440805413500054626554774945753397817701939628940769007068861968422389789246276280584637705683619914536942915931902212249285341562560168054676522941669475552609620845706778415241018678486453406353974329583168264029075794082895237632405077796778183332731714039656580737428404029899018528509397604462689824237508820856983021257306835350550870289667559205335715966638844319230352900177269226419986735268741585685630025757003276414025444375131875920293532770267953054039987998040554493914575627452534843785100954283326134484578351154305078742569924958570655100431374877140578494888693319484614216008558945399433509094775644211061006139908062883836335458671980067418158894848772586848075320917719221327963389156956880941355414367461417030560909815618829925292476026642906497489665717826710707580599579775450581967486268844499861844884091830819921637942920395694618907835084791248228162781666913613689872688036302037033663011976108893326444041942473166300419093662015552960708391357712932517453094056212051315539595771566463154150094870069105534161160219846181168327571818714689504598630685657258875618860353831516428553868874189761455851308244848651011470718248631693404274701923341446027621278104293114310611315253878921687926210603004099641994448784611044375714415960208251149127740034557306127677822244225695449669290962508275659687683569714187346849551638944096518866984612181471930125344045028771657544276275872944600284276124522222698590933806205392039894010547052302111224454842335579979608833958773186071346876944781957834179020866212658852548705195058489058374956842367959734358662027938706397266666937332277264490010312407691285828906274765422440103698024229500479425884622460347394913467935649434388825741200854162575442921132753794058643896190920010383281689056750439855275089603086447328554537651493266378565954010070353785161583081180329346264604543996625412265899677640505518227906757621079550835618393787839330213713681443298137015874409649654863105497228316213741307274689170428160981639018553287873834081424851304541672796451370078160858759935623029205014198149291140866438054154166564124831325540635927549254046093162855065375866523635949319159915417835461675760469374637840124556221153817669875059242188516427524767612807265855253232895532608842519352145188384899737871445387791869355411907928029434442257473028848026304528720519091024832324066120858969295958286128677704034572481249364605509557457988122848560102201110691477297297577513839187868179437146090623529952035433923683176043547063428218393752620753136856782490438613613566567073028801369936536044627385641229995576009306172713434638398639023089178054443947281851739441515921521723782129618046387964377694379900022557464384319904912874365400101978258770617979990096212564538618275475481944706067236355804335418040396687289875232607602816248556229412720541912414674359635477883092580140879743465929348545134235210202344282050950640618418204387219942238919632967531537648737637404691627790137602639672507440716347189790718327983485166834996749736820025173486410522164568198702733775112818844763774782620588556262914716895005701829212951996523481876372230551977577626675191956487657463932509842034854803097456566214460692887774455456475747448802298870176839840334712182854165510451218411141649791270577935637789747841238769817369476654397074327887495080970508391256299531144178737446137853035203968919050574440773374606115275177550431649679913532902150897834088711122363930463628005352034274423303688975227267003906406234492912243508265826218966709786495513360811617280250377701959152599159664010130921778196543561540885919813356517209950835686222575733259505859147582760740684864403467620577284655751946386455542826616983516744251256723665117885058503903401768698911548393960633340172439772537678862882326139708305879002396378864170410958868425179484787425045485934754231390138370317299494977139884656127291289517788278998650663347556898100327117727752268753417320241578698188979883470180148374681086358670703365190805691827748193007443412085951038121688761367868520206531866780574878903906361912487041734066558491183138244827057942657291476607387597262097558212857784265033861712421118927624350784730222370527385507637218042250729505621055830893317947851334426541582924462534444586482921398655227378489780512497079263894305147775254364835423563417496448674432960874171027690799680483586810249976720460272928703961913044493364766728651458708563503756765987384766644729375480629329634079192595602229729642177192433721015261101124264036182200523926556511890039318395151244087059188166631137192643234928202728271031668886095407594796599620582301959957344393801721728963916444161481944600185221886268814609776364496471018434817441171187158052281139551585829769208540213759337834360327947827716812364067399593585958045247102457721630341870136265116432976793055746837670960625359966418234683228206143550747494107469625568386351037545038502340500153253304703794872408816810093685020015236774096784985426253093534535482507479960307285095309009558032350206751000766897806546543106238930954106322827315424519302289542264196850141040020620752236958974204587304147254234719637848420010134641863015901605232382994231452192625748797490107673466454967446582381955967949783196972105908792279658200193549532447726162524142996956754626184956746587134766979950303043801267206970544653429710847801700178827875671143276509011878764974876726482413960093826412153375246937571108877743822872318216212816571155790550830425479027983944485356405380379406694563117697364543096405343505800514397526540215298243263720282648785569886988092394850687352954236881299145105139036562802461897826231281071296252594588601139691776033150556511530699715560817679033833219369183245917203917896336185206006032263517984652891258108453890367263932502353751970261568904518674078154080304783575421311715914104760310592552962665625467650582640595326420397328103376997796604469348516124460841903154768767219631648354589854118975010049792702723666711407689873247650497976224192871470847288528465093882892698146885407652596734847102917164243493825121205816223875531653046789269381648908257193141587983689566329554488824405691635895193516939504907752779878186391770677638486766280931710849744375307282673255953926845049171633755128602858190893538915727942626872617614094445092627445866215100337990874694073341786048352438015779927779842920548566187141058835345663945150666741296556903212083436547686533135280737303904144840868269746772706726284195458169615749636829267422499523328491815871158149818847479994570402993008112174679912920722939241338714643824333881187650828604482915575725287462164239771158716491680315861347301209042528462658972074127900251045623900191676062939348590020100393449798770232002351886846033929229191647989472634000318678556846652728883890135885693198459033082210069012914008492737240812732333432632609127147538464636106458107225567630874862153152752510666793086389941826817350721204314136415161936984745837525017373258837965879755323380604386348686900193924705139798429539275980558873517537072962096972245756783877301094671813398741471956507547161353744436068282116036974543252641382687436216611766789942103661412118747257289132537199880576925271561368648125329536603819862110281689020317598714064341423057513745935027481892653958142695292866229561669105599621393975752169521894000093070476430979729087634808678557949676016397106903683245268935799535483216254927056453080182966654712899273857314332746983929024019067235769065207259202313208377291166179017837985892807266181355710578467450221479852509513689881756194647656104774540513371393379471951709154445479140665591323007794043379213921058465169125475710700627768666665377704756486127467690790595927418152606274579161895691213275993589795795850059139360832293089904552779075832209017423711836713161100796980890563445922307677652822793075217392593140125400675483474977642511847404708196486536234814029304051824027456999189471245567087983255141148889858443599048784552506871762475289704482543114518505150812531307655190594414606000432850748150256763158504729824654700134548582004816507445350267466485876831120758450563714422668425631732473078174449459083742991049825864105609973060013521101942761913023262604765503191190758882188148457123447695743470772337199699053425737983665053059063091377408593891489714238635499300956520142308392102400966188917083819804433287908520571491726075915399638123813585550140393308208849249798312290174851038132322305908740362251453306377342650485783274261463583338517896178351065407681868828047472620826326251806006355595892552161291113619679216808482332070464197832438286303427882821779605615185060664616781854128905265480752865128273891670110374001654069021523635669626105253810481061733484733885365478766946833981675212277438286929273034305316891716897232960184113345833520614234564073854237196271899242819543966160806534908433681488562640924517779349747918503283768346188643848154314089422335224255966883382016264234613125323052025364221621614468848010594672605164515355483023010211325917106978495439978457383156270410685720017523897931590889790391145817453503499481269945074005921239504383585276917001596306423459740960717115724991505003611578019189662059239608654525692492603149390749926820499293364622370016360421204951248388553915450249851148136346491725925494153908821246672983127350649515102018460923809244006099278629816903269814533221590885502362136148793048546775923714400673595709499432108212020699649192908117116906497469501036734490234494765313007957868579540691948435270586000496481637060942803191105905631945357003509583020245122092088949890218624792846798915856284614116885794111118066595498994250639928533054694901473441413298088684360277751445871643467810063086165667076532629628634212862977676835778531963777278694994492046414905697952764100446554552380596729099156430421461003590958527924266994266489967852428002170484925189470117492742871191154640399911581403485391223367001085995610974348707781112501074545716586881744612540169807235328434324996419137601596986367082001075115621435970844156513916827675179088122405854215808473758370454050218230981777221787455305271036229095845601957833740248480569208352786819483327974126590542457127158247610538890541515778027635436251333692400628156112880051529305925238315969329439830882171940829201845066075381702789416173303150073732058483836433508274309621935902400933396938785726964397254778747846810089187342283454602892384784078055386541063749356224564795252461935684688677948907710157441183724779994376990678248081074682343157493035600466287419103551651869117854378212686058879607426800615549354446569208047833481770288589013523385102925094443182054965746165956400070352054884166141048194074968352545988482287464144176063941227423506979482209667023761743104251942265502619747918571123711572063222610736708378682475581571420908785740303630498751013553014958969156475576768143050855725783221155179552097698399628227227992626126279481660820105206769355613324088679697875817614135873761204813015656693043107426524790481392822727290421252613209792679363205342314767462541377391116560235498656457348365165456933264332895055206729152379024601735349215539387952132922680665917200073627972109769558643567075426690735571522252770417912486640432584677197243618124214553582156316983442558209821714613009077550851878020396268994292380591790164236922904019670737598430443365812248593797845042211759643242759202436467429575840238869535306454079936817400194211051902713184242265976950923266425167408792619908308461438124982196220937683475372495716841813071528417726204292565058625924491218866584962204069708332563956958201098133061826121115752965097697728061077653965741777102654438560630968149051742672671657056760980758845080211750919330646869263853635873462943561903965716115297883060128990923028022137723435395085999166919249575907234087960420364401177098903620650022079215901333262379048045916207401135086559217057744776206929813435769811132071386820278141371144800963188935112145944357589207674707194866250812014320428551250359835148790247831673244041189253267853528624227052452986042461192308773822136530255564349991349170583636384410673043132075140898689427875985276661117638294188064604637270124723090049998577132537115505648942486051302196840312164720315683871376517313819156307667463829402635505452650785348581390772848919320982855066352453018524101941755833418892584682571882450019921546732965819857938743512243752703276006060052024178053092475186768240517391126459639586685296057360963000874442830340823275148608367777921340587053532864279903553776886246066700078460979949481596551969943342461755469778001285687819165909416298512161909711138345380251761806501950034966959838177440680746324761047126967100427339279613355218470552344662557346563185627858840674452588778313979682478254496773621774290940001271246498804427496674486316859857152435750063645042467656031682977616394204988670802635448571811846455421559543499166581601299157961680126746260496077262002623805207581977486082322673905886974550039340103570556914256506296902904782411525707696776950815469660032334877501664638172208595453921830982886458188298447148754319422887493629996908773802528149709874820473629257941457121659595350125943006661264402123909402212974410737783297678391041693117221494265740833036154262036854169210749339385988283947185394404485760255139323034212771347389885076024627001921125432613337621168520220631536904364801959078590371466346193515319543853501509787681423869931675516969078674506877491671667200895139434611154894745698479448088331029571480893204700449300507847031084413302875484649839797629570066359261061727071533196954682183709272302130468097018266330621843914345283392349988090541207817755529848545123412857558210162765262179475828155972574727621992714910025920301202945435957083736375286801808095659215867651099421951884698780825291986461963726116602653161824071814892902516708365048326761568987248027048600293835284212213278617424723858287057473095024688483300479464360217407829082582437928077995291844002796585215808061452086880123760382459167475736688028357727331769019233438229555749461657985140228708113240479181532275821519534386568749640835027834880551311757149231438653608427147654336731102865916129906694959000069553487069956676066569438124166412123706332442796256574716848079067277601476653027038858953411985967955091282210133893935124630561979523213989652679194395197916552331803439891128844988947628864976205183810705864952105014956531796658332403014528309374554796631253656660266309426659429274522269703175661928277023613520833229100793218373811603892010733937555050049733792361771572674702316123792339140537839520915311038041817095604772114036102500076388222738290724648891924304465612230882111188395722179932551001189444490935728347692047118047709921771063955491212611103073870528152639505871338715767282832740831694602869516003062661032212022649119303982647757820503047391535354132405606204681397503410661260632177883779555522296936674300819114901177206164666115421190704883359185552549262118562455138835852481440786762827297495717424791322448834537746382798629103625919316053972092637778432012777112397108517057830624668178946581194037450688857398837042663123875767586438003138032324976189568920577638810981300307028075065784117081590739071900532732018401659277644247136462802506265307356067917791356817026924420936235839158334894880264643302643810463962049513550350992342249251321918239617181392575843029446390342306947470303029797060483060158447113451791402490825548841587936364645163581153169842280435109289541511063560117196584893330538713091642551538436419727860341572879555593465538024392560685972103602305541397308244443549880299713805104056367386612894090689628667743085944715121006772853882451153100647953528523694277563382484405433260337604821553388268640009138233455419895508130392473130539170957164600190202237766495785873124984119943210592134200989843829181593616648733425143507101675062551262776099940005854376671552982761937199428117575867312340699749946244898483858527574006102528837345889749588485836329563779261082255394903034946620231822541961019778852707900488251830243627067289032967565226843684581925805408757046595701594340473041596581156970673462318796073427639287205590430801137047625020395035003147395521261038924274418708303589292402746325254772784250804933977052013080660808008536043877559785455040486801381411961062188333779332380824221752977128370330651778259733832594156862086730532075585252832231846550585930582238634006276787929839359243629020197019034471451694928179699875012242394564420192928499419020331228791003951428934186887623878294593501014572029066992042349653282666706741730505933531361554536380364417323943758160165558821605528287802213418582377525201208100069643397887642020366721131845250687433445431751321079593591282786915100902778329826440468877515657647659131048314969601721043690452543909319272202996487602856625524115916785727535014180301802535339212752785766506858611888753863897274818292094493954958597273896885854383122477307405564784385858139183221219235335059669980186465872297028542790163977451147398654451813578559396619680413568986831432410127227476772656186739099145068342500237929866633425183380886491428808705841109072031223340545474585744175963731523231255772493053639520183483690508749280605290640591654018510201832487277351113802544637048282791952727146495626951621351083857408115333977803122043939921808031477264419277636564900773665228484506331616301332107099144432998206346932012331100328878630725395989141565676513780103202841372730096398092621036133546994810916517975764972774692158357623996935469551098651653626243269110641815044399390589039173734540834738647103338016717519623588168162885609019558292091671544638516739744191874186710451582243622165534040470131725663014222281188379132663776898728250049813794176143804589825768984354796833548879799711019410606212934688669091434255608828664068288632074789609505744243043168272196051880725527235976325573392028684880384882800723947841624975365445208851658087686131289431331025418111974172753526376079266992684934394792462847561782481117708026300538908670196447730679904443487174297653668036801230430062340332192364406099292942796185345258102657713336408858170324120927298298529736999495822000166977652699728565976904258564995855347488494800851453843348426592328141903857270476754046797941492276023564249337630051316440225675010359141161655414820226690871207596028985930097432360053584431421755213455879151584386536845467089464609990663244001207738474659075463645099744221799044497856114395158459745692757496423722812099272538988890038648637701225764158955516781619749035824761075480511225015202634231890599972211702822792913686012541261652856123160687296948047193747564742599716942498558534624883017556592019607410931493419522657796300804294966195628079016935363261204100591903545027944970456933467632258490493141451122540694192676496017349600865778826298155080828414451445174704160974097697054604481607180484721719275369819304890390953569168964576360838377735263542672636461347186939851564666221780884217198912424444132207625268347533161379674596425193646194823292694452617682863585220472079983988268741507491342175045972365823495590462623290457339184062497034125258018143962477889567600317310526701708010985996745199620407281303170133465245075924137032236626962448769397247190264447286716389962030488387013598022614392037209985528903726360390212152364067534813520428329171754183891836915621342631100762136172540582937468715863935144025345657345576076742756387087190587745967686554632712959298295314397888320018855063246663237398132436561818217182239146978130697071625041969728647005820017149768527802063346381832808750939078567229426599318716655156388571121741585640346810922707937458659223969865264389796026141483590478002577242453262678353160779319729760286916288584810354549230470116990760362861522285617319743184240284630828487125417269053306172484613983392384438189643626336161750701352238892863303099514921848778036464407966757972333392616151016434141536487022227557257662059707665170824616348940043825268786137388393788505978194995668130157548570559143703757740232388000759574058653954907556001123505139776516658396381707069780575280665167019600584768903088694023158596943936112685946201763751249072531856645836778883548593882225207885792138658330554276905973885137121835420551063824823402436216428238493846010139223768116036157655922044825086530074620407834148523843822784460664032293047775079304809318114465202997472991303931522451528596912787818565465595671166681953113456615113321020006493713232000507966779562821176479047948297169045361321820512126144210653175409759056746226893143507243868832701753777723206467534361136342073337225458218896737324899539949504983005309272167173928935031198648598843241692665235840229242952470896636228994823577466852468879989563376440457215453875619262721997138363491042676827583674028573928556191750671883064324774080759016497285336140105083472429496538669379682184744455418455000933843819488625360748130462309277350089025140469077127196603436040284608106461624929705907839412727442859280026482406215016368152099684257449938737601373811599168943440257928288850003896712001806620062205706445668338550052283373151702122233690255241540410487548493604925874072418221980309791282633132959807145802147410004085914518593265101229983236413604796281325263054198330160900788962215311748644217582895198606654393215207860479541697734233698538309667565837915140484869375299500521098740122102725671687559222810104086708355062272253977604887761667216163986730764806071174085370047985942335079435359200229470247150750015464957197597365302128525831330431862449900803181792419838411874011893806442802426118899897737878007369783897972032862345708778078168238393776401660483719319883821892313703384234977044230407763861242285497556001051175058182875494720848434455933704926144632337443947129700101151691613051687160930462426415882714885574775424506790320541590180643281642741899609574166316563739575096900440366767630373682494478577776368857529608139702304368423996240063642490789446203969819554243811863509324879457188333610689698102786136983930048414328931654846879809214715876045307005135026661490165158783064113535369740444406806710234441544114147403242966168864823793799673117502876826624395411054116010569039001326438389896742516259679111560600066753302717138477346166663538889965474007593084060675860947533180807706303437269882182617967639577129454926869080496648203323542331889974622353422082457239960070713716126358291527149127098986238279143162197915977886398351227833137983782936608562865827423170415480631488859047751409010790359374203640413636359526269470190975060737226200082235889818249030378480814597146266206886721905560640302656034465176779732251313664554746525183415410192636635819817178994038600092556197119728202539534842032846258222900525510005326856939767682798071488222316801111511406725320547777165844593978037066527733140857691063711119292201570391774012176644191362390300043984562277658337494501626734800325737268277788745786179153496792333013560739069155975678029736391471769479806009959870663734322002726968702358537363506009776242765912122616229089191083365126769249801849815878532919049015517586553722586428933910903486916501759397223525158654595575629324744095568199473564555446677626838058123442459017456397007211455422292860674771656338290042727511899352417520311526959124830625632134859929218635397017885326829511905915216903050482987007789687568580447204952648849461314432821106858246527799354964770006347801109335605596591959631048510511168282147303506164332058715004900584798440253131387258387674273317010397482877597820149983946907990279210194692216441713505368870044693641421863525967770190315903820564969979032545353264277382755277495373158018937492515406640664697400055987386697210090147875666767821226850005173455650501802294434674002090354103139653441546166568255468570689449256304783393537335835597255265089735522897538421168439581411898720714401117182925805256960340296567057874614661787742245470811497407395930109095817479988468699689246205705134578209522826455303142663432203953751062983646989334068012914874985441651833068329398705900149034301125671100508645503689594423952102205841234094326329110314196670881548018523337145904304721037678679316796791723601348698646999510007909065270698488017286899730381682116611350745595930168587380223489044583900965942150625033543995632996227023843388244341660546671258277464928773492608285112879640979800134254767910861223418774827897935219466779711499483135627456676678872233681966734070857441786503368663319993361357666638792581526654919526810575972481790704112690905380748781332367783943119604734969195556701417681057749950430910095170133059772011876329879698717553427196632179545394612642457352163355141032738326905712396310961119546895349157822228033875564712659348520592228994798848050177642848488864734901169497541755277634512358101799429930153006307003100398246349903271052760526239751049400677355115364440388004327792903582278041089878954966750393079337965444062431420856757368053024482832246796223763685367084273259362190674589189937600507528611967669974974387721146526431037974463611400637510270844901059646197702985920785130590613499790970644965251856842893420811793577964705358300123145368132457501796977418312956426504824558022537167465908560861989822747496572336158209925862963649143917692594457216604107858293870398048307345719601486817020563001883980275444323460680980020188481384902889365489484559406804127265792296615121994436653035530691236929675970093250521511311323098318412869264164859409433613909351480439313362251738371326568565626775414868935740529674755166991826430065603623231453918643124319088866412173521124816470126476985201942750157782973929799382266599580581373155532749793118397289028399609294033783289247953513171007688570804447268717138720600264230962454630460887673437946739009033912810493928512984921740249822920871300585149339884121155967544800344499968781711823164294109775667475573022487770331691416244023731417989472092354507507506923484588009096907899697888159482915810347931814269736990811648109256454062487173551164820147114626528381916098711110573803328517112045158925155965546935307087982248227391869936374185108827807384757206993872810779268933584472479690515845983804869533466362254705590521669122803305746985820617912009714321977932768323974352762478780951027586948005292129638714919021831859899000150658282607863707160010053496239866840191135371854142379561537466504224530622107031695031086395934483668878761180123576403378331367048392728255116533438827486606339707222907581164675920587336484262734898451121460768883594481084664747703929495388598444253611656064682987622460089851980491307718226419161822603780326079466294521405566601322068544830689467283282116050637240728586766426276447829032487574845987629153166029157396207934566302705696972443267444644209073703393676257592116540202138776877575741831241552446781862581494437551199337464721709598321623700822182107706739495857964924817350638261616024002256422214303413156213492807911086531510590117400861419301802130161526203463256391739642571209842258207582987897184054396994685823712977947930866076553934576531724429415776545637213761716483605745508335580724062036640822669212480276414563028123911342020910566552876028189305125739779283823105562229626481624713197054613495746241056855609324181955698553866261118470248775897452220542649121279799435001178500720434689459342483295959172244450578697782775642972195648378206005483283486175541788406406429101254598700750386786511258040616821745673784143228210250678431763911114182830713997763683198424989435807220285139401472555981310931812929610520697646244865451958639903269337063098522923216515092392845413378075637962983795203990516336953589934651763477466640969726086498578121225588214381731640275419722790665386495213434633945019054706374653595424506193816701042729313305129528517328184467705830966538314150782980805691891874402555878445199838161864843936875772444084285016604749590780657150406439680982263396986774906406319993972901842425872051045751452286280537175502207832511854986140154728153351950725261822219895285377738339374428599540023209475382379874649558260628562082033060929840352595747407040267191351283789702935146835227843056380214810757026235619167546882809496046669053109092645053985182512531302854676500699097541481134323702250655077803466245010866352085911674107881915040362780150708438134494049933578611375588737752902517600713585017623477241126699860159080086509958049288433916556077133912412537939976432090525744792866735674306647204744320114732085032906125561825895792284134368162403735852144536654307808409536052543709405998864159647653935515173248224442841448102068083301544880134548372138172536557926260413253254486375679304710412659697139770309881865409782346491712100432219483553930801456796807325197790508260966780363487822427411244920950658474318944528751033168846242741291613984680823442164671294177135264792973762223596087185125511370641647700571778250464033772999876539516068034709307900646471022118635480849943931491316719358412913027648437845003995533337835450709161246617301227423912754769970842099351424614001891878054122311300182945197953561624159014924646128485840645971154670654238820257537200429563915668247003000121563927364760141159214089564396719988341705566431102695428526481597735207104920727513754719566562314095461733237939588547206278942733355683524383784488532809033777352625332412185744833767385411557657067554604949968850478148130030882339746492951703685869688923347712949540102852541441317490723372969283631017959593714178372882907925981096633103375900602032722291430688371659405036992794771755051742866569343409515027954820533413568265348400624388320537048298489701682587241814706696446290095517029698173901729677490412142084447540002728698008556047199126660072578738807302599379691005583810905051895919980157621667703906531884830422853254886712276040231787781532142980022616013863240128545292490775739171352088030127271838361839446836976332853793539255778813893472022851010780119046096696686759253592645177959071469497705864264432832931489277017755193332358357144269809458652685992981343358839110308111735386634241727266647173653569532897426732802757561097509843645871850657936658859126182583072370212223537200472443653191254938730222517589443620456991566411776996598136978458111642924187413731548613552511478864103518230011387256119351278729293956721049760301424154279703989018167815498755234110004814772548578128173476890476564396840974984953419800650696185526487659571512294350328808051640911666940105307044200596342287843775147268954051987775923894048726854609944127315021298750809507302845140882645241095613950686198337614517927360996748736438855262074279730297172192203688869175960637928550756762106901452242415881894821549149922478692261556009790289201775391876763187757831415841184140759662689424145575848888285432581355952498290099973120691070658349531962035556851593995140500479933824578315428623476709252715007883953863094378439827895589898096389322397777367076049104988171844672433819694267579477950305579638129638317899236651159648751394685687461476008778110325466811023712555259607437646016029843974688312537765169843061748405643850456369279355573432680443156326757301814995699880902263311024130920269101332726061449239120251982435475473401262102335586958737341343098193612852506097790858264528446999426420143177553965267229196791838611654723997949673192446385533490646392934973508137469999885721604699632716590040061135403064247870444977438290004194044849185378688808210803194546735422457370838560230244906427895748715458869769246887036515648229097351603676835728863238782712458531137400800371842875410254953875155154904862575094139423768687207351956329081866639684990518048501949754727796991927363325687490498501768232093725590152698024241499723767942307833356968369103346057476095185143410904869307724207279438191769501426664694757679621424446782976109858790013600373375602316707875402398989277639988501869480153939268511330748382858563172537403363066009389771112923729278644254210250212551194456965988596567453553596023538451827727999107794535843629879782867717980786547429545928772942691742007354809624085595472257267913143738218294535160131754518696147906798783827775532554789648079068554793604021896454876825692563833007321218049292478718810500739882604814006285511236298958083674254983017480361270538609747967003344893248059552313255288157844474815756376285394433481935158044551625527822920601144406818238817322782143300938383775066499621121295242690757631142675655683737583881998875128128542497513851286380371871355750746389850214084102789977124664682592475279627039535133838147562815107258832878089776051944637868563685806613018176828140121170511980790546921650862041318142477263175215279090218084929729149384730145739080745453105391426052408220294769206181270870478425142352844753992519346955919833323001691000157558121931282078764759142853654887733545981702449433135274110418231056100785440065650865535379586509567945552218839854720243017532454461547788879862435630771231767124617277722855259627024810319263322419892426901601492106580323631447894801811663670099192213925980328996043027189104964479853885916523058797053669504682613198274044890050024523221254413688005770065521224641850045841316179510503274097500477622701894161403050209612981050810576164983007954234772167628838888749590351286367133954146035808075366560162793774111875274364165977389791215999811942723533361160483308257460806173099022270073172913131383540414550088739095773898536984090848893836538249683360617714749741332743017492786763435973630826115731500622390938351251736003034216230423052209256913468238148012852515255168984353396761233129007305029456602697727821945188631862856556279330831021192496980583218138827608550196957122800206196172592657138552191926280598152226015100944116028370822039944301026543225365178861372394205565242217219979541972588375044222056291687063012747410076790664025050610481682758133551045760481668268967476143989848873837227736845024796256227442574351056935967456624663332909156963802517324891769892557851305956079257891262633701947871626908170672293592014447468629287042696614863851868185432086737838026658227667989226686445101539392733356689360219079419893848304049333571839639221981564541551856521234867418224322435825114120902079851617528222854050474971793366460059899974527345779945087342272186907442119665789424718510956874876463350865688196886663132779135662754189808690158647527320303549551835817828900872506194629135203275652703732922610662522857972389355974381657464372560908961392858437505975921756977456271254159254461608793522160748523246027421824644613497867618809440493322700113405530537868672470513839634574849504621012860206688270898647312191400127325919333212155053427585911023909798982200792875022392720917409950707649318642948645970985859240674414457287825936548236807222974191985067325964157211624013582747244017328588715683400016479290932882088693874646235506991845283363204222070863806528131205838632548755646484737612171707147457043832670278709481348641443196612771749444227678327738071938810782106591450970094190676816365236722962184468637013465762415408048148741199324663391890421113264199982442922422788822617503465267105938040060107335348341363861199010711240753212753178852494214572956842319664378411916963481084880990033689360119175182969686987805891470080504130656087508338945531401011550383335874822262247643952505859898402838916218646477875529343092463306158556441990734335660552629559555891535076012687862725552855247692077152330683861950718605125619091189592708025704372042065482326299125152956099617458506541306323899485561022723301144737921434293499523845537562645814475440177234539946515114416531245567180937120920258272928485834346552230499537474038881053963667238423151014145993515115242016326997187318977007625386417996459044470303344526527813495505554777656576013059483370674835562563078528249252360095228000706949100080576136611975828080189193854988346347280111948083542532913276117812279488034157507013288808408308079594800198917294833811474118362323343078434480725705625669602478188001661741992612474623389529651485844454331368139453574607721933276212344449396672095174142620549312956360327410812219264795453232659254910269615285999464523189840662306895034554213461850940893884315645736483199193175268660287203831135379700915331651933082518187259146426424416322828778934629472720961217896652901147615771168136479901148415518346427647832612422759630365538308204055179373839514141713427974906257980296979396974156752733253563133379964263456906819103254425582936110028391202751207396264948732751010280437695024346462317405351792026706397945521452605847678363824018250868800994614930543545460735195240614060118169592764868989099782976116219093475103428414491206210633895250291945444557423894091259658356440171409438352397690660307917163291792520277261342670569788644255804278448406882332799642722065250930980078585686332417658151396701840894160595731496847682694366074748181747844340556641753916946676691087334160689127989389801896372268387473691913608502389106349137308278595473277092727887383251426277451973365453647223471704820141244617791205040495713070769087617433061473015989953565209190391049559627934914169034586671250296316061680175936351540988727192107770915108348200768716832011712040207246131128872615131412646396336646027922304154912451958507322805115970091189431024492116791551493006352008435432932103407728318688357022126775516892282455428500006635761533643617285755322146883969804145594596088530386742150628094524696372813876883664595812258806587387680156592685191480024029163433793241799653895700448763070470138410390916486381811675617729732175774254986326464651839631119048757003520716998193838126010161644646212011893139133959571173148849134793543369395718349934881955393622339687333178263005392339316083605582325427325614266210160684171974940065785137958871721752231741792546974123842190350428235710911194062845582614728111799514362647459037311929446814250598904935139273243134411355174609802487522270640587552275707279975338147946026570371500823680722711257842035831775230383003645776122429414848542793997155949242374649245365669814302604693953971458052196114362801675681880552898761882958444839265944091360007108844622489686073369618318873484097400197626895354131247096048198589567179523883322172777204266410637550291984923446296602353683376744391315920615169211100622950615650419630215299505605962129794454061191375872935884053878130249255971578835629620448466101030237951007888737350286309726008422624064268861910163362403843300508972247250378920441856236505145342927408469642661438297538366694463787874070293797594270199157315861142093011142534496214720967606761325742286053534590675194266794281242339882170262941265756121803224916079952646493832816769903746587412348275896434422056566960511320422698047708586947452635082267871486210188600223670984070074602137911562485683744718697227521495361244401615703593441170936348569132488034866052838970879918318780650230449032940377389402175242817423888612457683671890945112522006840780737573495603579988449897632903946241338095110029591014947774084171498693516977439591349820369136240203962467523373179469162256946160444623718663295884683296383963703749880578069702251890166245668890826689052757120789292922748297038379830782775720438360351340229323075275960485102514913258593791895255993730307396017001490650099344686657074098569905920354909003595800111932236980566211441350033460133331084050994376425673866538877193565450950412900712736062121898004911563879354219851918490327255107814316951105211048760185509040860531117746754483076433982251131170123020410721563167400663427536642918217014831950737237453643345556551437305097256526818908800890087362124565970990465516255607791480214568524027958738227432508857178517715311301525474854245185758231930719029844253454540107829246669663722575439189527820873160436889345123929696748049307450652582477275368016714489004710936123736545365838022803407987029405299334125092917217673751525035796843708076627749372507096903864581666736027104245915806792112458894179613741182026845848960874719004577236585538283823042796659576209069088685380693187154679640654033192938997589420569687765603124279817367022268044710975749900553275306499448129836664786752530339068028028482886818778943633868765923393840232908986788728970284618454839383385892456740313018114596379316282709501664446365047624885932081775660094103436381080042433759393016941401079718400704647748755186495454902538006712203358806650144106384533839448327976101376598258199724881118550305351766856211871594648293330569809202363535370772898274253693898723349113705662701131374475591764172643653796545889293237070979376100475732809073644051699106826363230848973350729349425484281464256375879985135909280124717438475774213925918679798358467263785974739796512961111414985158214698464082516983027188491979716437347824322056231828419899051771090285321704710479151965420586322629901933163227093066023058473506307507294963247532148904615469800837647755610028228438507424567093673676226351906797112680067003171510551472861613546210220837184453205352169818821106534961963678163121644908931510792925040767398364397069359355089713446914183230845084320653950217952419032598327726109380967460404945007543484269803549491083687414230887736695217904173935005032146534022906851926785816948828510487756420547382830945694985859320683542964605047578486116231951156488770337033785822114824086589949276530142561845800270310750264997039552074774186935668678016564496618847557569014831450737782203516464946276065826503570487987515210620359239902070791718115642338206279062684687895164550396880182445310625331103067385345346600068740511040521637578025040617726590703592716815751660360124107486653720210642632135479299941668791188720780224814509100341152802604875124807812438539227794567602714397181173113725778466707448763081991548567156444449781780454691516384828625308920575754378223889292778154742251780801145822410354945366147516473894747622596629676874021245230878509183674959281289628276785416291279354855960603663596592316622589526143887388092726153546071675377104796480970543146726432726270483876322994306305191241228605084477634087592658434690003523864221640708814792185807815075004763356979795456831616905221228104711314050430410435686265632541780618753880632280110416366616950754368451004061223491560112198838907873608316037109061991627373540526405616948531408048177586576338402142191770938369931565587868522780275120108928351416838122075777185093266416919885817480253758299952226590517421111945260653275443238707343195715868952504384068472933951114794343331100936491156098837559435946754307924650545845825159167184925516501556457484393775366108002363742167859857799782689275157015817744312694067010414383855168464231635453965043760376016266140588833944741962345540343631838128279820137994557019640903299753972548305531465981672392204819702536558363239106938670345426615276100584899207075552786834914042561974743881289793088717181053687304860881964199406107052165592460334411411789959628707831915874219318235899034047515036528038215453654757336843184182605059044344653929489478175489148462988325122340624697705138939895897939413454440047073816477684599517378749422235484956651907222677652031131046739923497865564639860638222146557297930850826653102229444733226879891724196665369799168030093154611882240077904722440134965174261129727081390044790910224024107090467488730279960225338443322162551022286447477797877558615928733571597699060447146714009014673331814817466219586745288307983364706836907847420602131520047790709343258730468221067087441450991245559811101630218476158569253009578231851605935063852448038883860400054765565971161191668411539602851366341576956902111485658143320279468300346093049735778723641402472657044031849393477296508055306440569527650304458419769623252684831591717279670010825170221353718308490834011621675550068015128762265000630681687640959560907218744867326546417560094167421369028998702076586107448353166511793671176066273726707703788773548215812382144518107190975045325451695129778046808209095110346685158503961151739863187066963723733596889593750754175927611960497648759209051243647849085492956098204301763374825345220679752583288926206944734676606144822784447682307206064740136199199159849613440826119875153555767594851663078734012974631390593024116867615852169566805647948789513868512460360467180964930815848102517897636872401295196171409174714764896974209127761338031878776659225883298222594832582873690213802093094002890516556342228070752489867791612611305004548004940599675903127683423098399935472371091968968725392691745103863733310388746183046740486889649659490427291711254096979796107606831453455189000844212113583798937500434672261996432385906188796313971044021439239850509587416816434776777601718532511743407778224114771641424964532302751187993305611871510116095190980676945175724851368872879489434019752362848947812794935237089513884072901146013990714289141872535525180465016887615730849404173589023252762022539206083647577765862839795440622821131722709899338449259864828983033437958907458195673045275231397738545013456343104148878361140415075117245107058836481251744783284131768421741609722437985146249159713328107840211727827964111724796023722699273386111268052580360192634780774528807946220798293262798670929140601305206067407188546669872152192028816172786663938838780922941453286751134790936011302771859301297631822599508940830546143648543488914162891149970842536949996858003688882181057570104767187449531622129571181563764925479656011080196122655484308641223554672922642276795942345270205459797735551642869480401233956804709605460174471861796127265480304534480014840924409236583559375658261805827066769315067829300122869621919947511090166085612074552446031966004959965272712756445635814614445839541208467079686730377987237067538716114171636976720805986904853653409467636099260239413258158194896757558815553071723424744747458162703060671035479579866805598049781314832284611782708723974948411976546297296893754269850381874590150187365270615919252626787136066356159245151909245178126556979703217977121688061990285358594815531746116809882922337791957231886233392692897865852875127469944942690337417029963270126033854736613255267939419962764996092401793857853895550340809750360920519544760199267767554207759659055483282096385284903958370479946770765708495391547326540262535637748341490403183608411544778418940777214498255104982223784945369019112804895035548036731457176913469487001727830695451527645243698631207219986960971013923645541102805610791552518428195991561165909044705226581448014269386723535364518775020551032722038200106252318914683329579101915532441806046221581821250634771380309313363386415577052802386761601302292739813438105572376220641719617842328453091435057076559724304499609256677047397296639259899856924111276795469555363703684396220699347252874361105484066491760055952274687294013872879183586492703259224308331800844330202496121520082656248673232990003447691374649549890706609228616066569538272921342681651640810759600763867136431686917918115474577414226765582041969596368893109020047896376587011553509636446863759963546648902564321934908142706670421194806454032024052445603027758213495893421648585639451721486394653027443993663483645959107035379863306908243885394246889879114274314239020054248640546740018451564807491552008216846014676326622779237946334324812838485649510764599530813658857652176212289080846696618034404706148362149157158333269763760891873575241692441215251931585919548796936846662460591774912619317119866961235285241902867359207383017312595330157570728178722549314724774251793651199205372789385998499261563018062733021510838884871278453530282859115878839818813383280269746173707349777466154630595040516352256375710235125680208130059557814743496515510585289014450259297111212518924718034219218184120444507192475057535390521104676625687616558341997203219337376155387805592036434724852981475417644930572077857408537379680773123681196402205091375872610065749789342387226594689302526012471660227046567889372332393418223125072989796115239292153409601991367654621317167898703491122618531189573502234562571326675857850937740980973604132018699395142291024406055454084475786710047391570703567090435682766454869716040393503190507802325273154776096756488394344979262543448919132304835098203459212428343738871351283273076462965331066860169685292552115498811923154729985602504272443032846383313232663105134546724271428435021588415238903647484472099820995736599668673588014557053782651741854473275949349601993674726735852554113671720975865708060680269992148063792794140783093216724494604959863079624723241433939677477184584309173751969944922031122931683690382754936733699648049892042739596456648459918085714496014285952612596188590699694885350020913922994805536493386008974247087901110836920736335581044516601319091360527616922755332439554202539205152382233443637414401973005586312939828269127733363016886901890994531181873248821487606530297523045328072172060920647821932182961168352297368418948051948923049380638089773994437643617978960984473855684646195865492000448918557928747401057156150879971332698154378859586654012109982403527198187377605950687748383151637307449353546969322480345887141108693792197662756212795205203316327424052977285113759295915977755725532066567042177989247200176537350462931742764625824338636023240560075433427412657201609288851444326512702364573728977221220978972508113899370441967613497558776544868330808396298678014183516267998069652421503103504172817143026733390708287574733550821779508504615257260035691426304981005220330802871022244965544332147421634640403447822880520164119858704159465561766264822156022716052728165971754848591189725913102298600951690887540153961405016156136563186426742872126635760501538091218634944985913887450543043077494554257191913645101182877585230136055293375607706091052357066297245935422560032381861354892715693640232579562092040855895367732326355577465704737172244692285566635829325083397177563779887782391243956827871830874298864179718317756491301436151372785909740982365179505835518177522730881886854989174247464328760817249457509699524085353442163239641999654168861337249012641778376002633342421779072655676567360008573928969749328632970332108360951277308150121000138822039484256104965312205175108058282892798992257819575990804405520473597672537172888733308117983568748006504538093300173753568627994385530990011655836268711143384541283654704527798204716107529007960333211065926336759711625935920323172145606740930166612829043301502453410379865284131803828293294637439125673507813347937513259487990321039060583608846469219014594802899647156343606058320702645960623457908288201564752597794084908107073901397516061137349844775386738643753509181683464085141912728106715355274217865395536226217866433826392687458894042925118977887717564852345048403943552217840103868386400248656612327650599119696934487598233734526677137496808026035654695736164820295293133172696414399312726699426187708787343086357262075117071256645385492697612119058054237128302386991140572432094455733643421286887230202319150298907235583959393171537551536912562705277836652666640385052903129155618521540464353058847723789919377850135809544766254497177297235822042592719430491578928620522503079048533825523282180042575913866071615432512504410278252442608893062190203660660612018793429171076421466158979777368574338912331188808081008140624740085628521989565694150444526778339170793756935933890409990587473652784597171076979144190547885057896264183533868184626062304388237996647885527129168334982730385766825103603138880548209407943000476753678294544231953030938696094452102534547008210857954444058300430763066552349855252130170633310694369659895100303440417648768259484633438431437090124114013118513455383849919371429207871831513225967700979891338152165174903734921835856037916314758241101059597103142881339269843260817519481833483749643811492442233025959278368496079310143703545078266520823785632291523310038615229068502983630123484932149434955243482345473007930195162854785637504533312009613339537256539154716642631314785108912208630641341230489421461118215550208123692805051779992919861237376190696269145660951721530855994273334600287816662344172928267969915022321912195484478051904749821789556943638280877147661606198678075071766332817763160339857961035223193996596573721622647427295906861631946856283778964375245193493118444934238987955428607061890200507183913161521136363768653786010623312288197702335520612909596931082530951813388689798495872355842730910485869433357542564068411763352755933309449087663993138445236166064001974930427695824012278598126342849856207948598063917681840283182656389510313857200021915427339856561363624498913058884013727774019294107452901160465813890193267060134946147005559184551634789165842293554448041755636373738943784200798557844735924260642221917417928526689817972144405716513535021531076972752199758655973361361357564849732974300796253531787546764816503239818975527625774409755619224249706579525231973125035517917232901010940495774472499009863967250959588733257305528565751544721858135156821963710390815012057335896029437956599077598898767865694362207349653324173392778370704497005996699889570380845215552647828291901505619575551966824391502267001285290706346627781317338651071499395880898307665777406086414523947953533573643503726471489231467101480017658433850297927451597681236394360199638490358591475983261482411386875506881991680478429564805519235821306648801169454812323958165036876562917700294050405091471274085714285273486332839487785727494755760013033144795370329226863487203922609168048826145734239887079980122108038429030694209222837187616572071430371724406817462964595518723717837912868681937664165145222937019004854392096787269242098173557821185011821880971399096572152912980548655157046997170097433799672046909558807117897434989922978447076998660684726730032335841349164806431053182304535713100433098436170286671024699364829772348234357016933648617839734772705169349849050816778712154511563464569926219031632010465663754518723207550138437863197044089471709958844716433256027335439060422113517953973436816473197973655967709453735671315939879674046397716626147523172800236121088572910752423038703292253935539380637210838729459718281351478563465424120618047831896470366149948383523477711576227483347211103025938672717271755484952087262397224214885745840364624680273581682884778239571713454949520354557656118018620211806721972770293502806206874689130784939404545632710104892764229819338030558141404224878713393013758440409257003606021189842191029115674862356926411815031634247458528461785650673250465001955235483683310022865814840070347150194611350939952152938016867040411957190326356921763911373613463580974380004080608364693073138931590180471894735761733877018359324154313286320993006296534834843070743513867762114007911767164418615879001633997314457691092696224936112756485640752976486852895537735773366193646128420382899516700236139450666945796883825490560485561463405071320931639172732860496584180431447687038488858212416025810984009498362660099634933785922602909106509962042620296226320311562087283495999955530579282418309310843795681075001789765285591915968901830258687720086659569698859658462213272052842704466190708397084143347944077686938247838475634405616567364506611712355787247277341110689995704519990478129145190562425278726824512849420344792572389139483908105084579574186286640623166686191030089547672864450212802584324032968542260114231563709844740012755025593438032266620726695290275210340554246686704931488832220130066780265707774882934019857245938523862538192408239058970800548697972463623199366398209980830057821661273672391840257665993063763580956010744754613011188862778264106764886050984251255137903999786989867017982522234322655517427413025035835858619235653210806417070226885579442255274427904499185549060940000815843520524348212189808559788978648394466385328420274931913444746733025681356994068427666089221132420428663901227153319321441009349791150379543354760827833371395955265830216427239655547771935750148097256021312589335830788077237898780858681985045703883966577705045932632814792158680833513398787004284182172285718470588978378875446161988829563749297802889551889650988364867819023260649915029168939354591046843202842192123366150622089349988648556735865745708474136842502871220601299873080415147782673296218573215016035047539339789679835847073540126887096990816910830764090399812020188851008063481084894973687733752543734956948651105889006580905325405326602283272832655542392321189704025839925561906995552306052174904517103972993339424856902151805280353750833186450203843089363180935464210611023650611829010294590421351624437525192259555100595636997619274560875323713589139006082760142197255049653758173408741263460457696833091093163574800122612330514575940639726230494271154351379081129704527519240812487666524346685225361358975213528416781617636451840559384638942181863084998210569454733751148995143509309414118115782364795761357372057072828528825052432625054921715550763691376217682160714164854432118325616741751972636837358835646531484667070446386541295258412727523071768623882008016502664223842114396003893191146743302299680046145559628502704255778198413659967512872934902728862683353676718912154917807913610813802931424157848820520382854207529174389291327592433556376821441906222688046578471202157196704017875350052988772206785734246520564789739030117268594501139417859736752975571427531725932185882227187322100966021027140007990130097476950108319087481629679103862110342790671699078177472956169194106054741743701107530639433251467261790529071219884307947998865835774989461501374332021905781449492389223382754302099600285344841808594945467536557195306610966355034709177986157010890582639564027040800984512542495863685721762486984593319229924336116555282886591631956023486191980921575786937110057290718083935329529109388621669312508191676196852480920007583668226961706332499539254415427558886169998990574662220655455189523112261039286934397903067423512444843511247118321757315447729026576643757424740322836344602649536744672210305578463193320427102202813024321987798827123253569459437084570927847592111573643904766923887942274741929764732605091841562785970726933539805528996542563764095159612044079574738575871940808648636060585752637533389586738499920434284864178199933401960907378823290785845979563946241446356070423463165447440599646577693573104727482697120322043269901163712003582572638618838266891300677382062588322578156082053195517252203257116970991796784390175971622024335309402220287697973823798794244962789946032104351433737107166396567392504607079488205699453191669626540037029468906902211804040094892316403577765735154520823229871925529577104879482816690188885548630418354823664876641978167574232935066462686750556248245272785828073481141479818619677210760946174195917780502595273573743634421181877292222643123494081778454552860974735977300126873430217431963666450220920531335980310237445121948647226544036178290519435130762868753830295898533227861818179045958297367916639891436320361635513778654517810213696044578545965522052649580643634720443324049467057209759077759250584961409509055662273446993401372195850235077264746885255552607202202411623458264796257205375666052903340497670723525704470280549686755759776494426033649540565658720217948054264362750389120900566188477261991809323531889288815876243442917638235894567979386696388068758660680201658788922968128308503503521605653823973230840087402085904326172334821992153493426430803633196733439617998018437716361905958836940395559859226796538383058760269630439955509994841547375573292099808627115963138672824830770495066116545873511644579035801864059597033035098008644081854205547794635325322344144272997537576091938979316880548883109074372053402038845003708755979480592616736501382882335766586175801501629821851246594014945941292896184812640711677897366637374762422613190670217349483394055731725020813704612242973883564896212986418169993492043799335177950658916646964267223721595451522608579468213905943767729789174342638268960283392562224127999245897271742866296334073108365439716104187468733973559171608051143289865575329181027870519305487183432697649694941014324457207765540791397842442799767802987917418355776290173982075708537787965235161883100998831543594841881887335703343371296243130863872730637708160204559569947437777867835057603708828883831165781829954630699952690741605701883595036997000238447585264485578168986384910777455889729225882587067267772464555694398566041847275594697302411198290583007019035371849610432765124637243537830280890690756376389517328738449634534099500942354745073041829739723562837424087859484345585437710468298674989659326451436339858651093855927620098838533430256529843493603968723162791484690944001991858142250540761781524695874842906910510120567255073798130563533828152610468296238074179446945111825991502667220518320178395731335635941065193160913192465037524782344674683762774492039300479496487867995239898316166832243222962080063766244354590803109342720540773036366756632763208404678894201110633319145422970050674585333662540593424789869654408033152201640698697319962253787527238954485413313183977322585159606700592664085086607336172208291695674522706468848535369596007166340571580208810500654394454643298761571869955721075131183008724541970588437720039646939113589643079078301792774690089767998163188575729115493260525639303554038845655546462477373268593204750878896735736785430896980766254689292135616880044831375003501083013731999548448054951728838365817518212803798453142113290700221609416980077335931375287061105275176866765180942274589318513513444119724876351261060840721754994137852881015257903268118512231755157105268807982887196200426814397871242072844384596772964786778082344427411365837330992523715323213033585507184698428648176412144021998702396375689201228976429417302981003066560643248161502106501120497209515977019494184629062909357221719824175567846830930474673825552463588813798222331858317993980208945644926842300011230251982693977065350623653761931811273083755636898942901826787525230731991432106483352054749151731239611424397719966501710080989792701692086585598699045378893626219623075074880480730726663108778433671389125646239754785347676331304963592312916639264259506587360837859292378130850011642579328567228226210089492092730137415911887107699493906433086103641322895127324922467008088012473097328486480412983742033755133043510214714589961710263315149198371865630446170844078028459903887069194383877565718374009006311937275956904626223341757844435553814353268048891828614195989557292429870693011770161386331892345941096948386406655596811340281114404945285470021010625342585443741772344868677967334763256941939176124476633438024895957027264759405829873895197146412085987993835317302440860951871835491197088273070463022731128698240177245714470863217418452117515636622874481015193255725737615494308577973430483704760055787535984114904474855700075451845056614779121934409689092079109243371527050928119371541167802075912029641069903181809660009657621068153659050178029171301790902367271573386445498802486785602019336477971882498645377026987286628372743127754362571964630722485740525517289058872857177443894875103009713436364294248266060177654661591561948887536444167480950348466595737196894543059214678446804856222564617343622604498982817073672142602400163240776347533263463344682026090283793947205662741010605602382721903343143675644578463443961289816424408195427109967424006565602709483076335032581771411772841839856018192840789578641411408185631485731989437488928297189556696581619698960728998552803180124247862367135454462986652032959055388239020767003963452939420129162638365808047934885327817095220256226917607858195257091521421091588084262827833298488877756730931311488842934113664810692255981690542289026792902703916389094481072538283853895919168242404707501469882212986318033914866788558676503353956698279880967846848002312411518025739372490586124581414615339336337641688824656714217179510175436259892914755750070737800433826670367346621652591630838164869919339239699046509017443217000991939234508997103785973588436703385986594026235013517721519774855084277263914088750639024371867447424550527925398512533488685669082552361602379430020028399595391999585854635862254662523025199161727814938472543731105333272487614002275007626143392696167073145843688484185334711527923302794440877635321926130242885332409140756121414189608370961806271910815461336920789249719415959933195557158512584392868605622997401066167602219054919379687652098610451471953996098833899729604307109937047122143840213509805494164524866544104086006352018603075823758104951498639088882605575105961108984941881548446890838342054791997965384082242833838503107365716382503915313090034588920127550575252569657333069194411237112193576289005662087293526182236117763406420832503151366347387727076501997425899596872863121854045834950674534814634285337687367969578084125141528693097027249732239587670261295036018070388738108077593588388156933367269298605685602964045495202450540743981581872257521549765063781848287500981293941099711298444752829611245193012191738990314538648462304174619860539148779787922477025366160823423752598062213486489036832376002657728136013155738385461940270809738401080156778645252417226199535778924098786189394707717114322980976486025016232587153897256933731868165379766400183183159053439718100841881533314046130503526711177286184934361840816200060712584990191560045793703881666990359972661879669219441156424738065554093852859014299325957133790180366751027633931618886501440422824253093577502532068490415399015031686502524263704985700512438382643831039946667516187968001439800975480930236195217070517464910384378512811130073293080389005685431297215901633753347769517938464877884313573803260991956995236543949370569839380643619400824205781804475718645075271024630358541718050072066159097879119683411874917953790045490383226213838943573204828083107880247307563376252590547737018358832607687338625099392211914005923927901558826369476961731688138531956979024232035930833722859866603185737700080568267759036256053805388969951291230119864801070533602387116352979950086250482884386641139389092064118054499115606879938794054955147383345406202525569569322893705034761880922510484918474030464507754828537257089156368216744029454247498552984133438606952133185218634127227244720775099221962942487286684923523126790142137343818311978448360302357372696415494214810336648047300792282253907315330246347596960764766130439188245651086592363092412362190353092242816768618664655356595006406044789633979654764120598602211709067062315965066093262948193989017336304479247723504273046577576660012070308260297898677683661786884207377756984340385478178153621221788278086976632182815843976131652004683121489598808804773416037101130706365911001305795009767471449848413538050949546813919942760316559611171827348630232708933621660288668493842960133937411940722467724622052494036657728821277015562088238540899060361518334246277887615128109714753713648186573622278194603971563948287619629210685621867764133532099674153268714662672875295867999338226505859045409586161546049151271910862144607578114687596986999515174779290491086596860220477661420749330700841180294185884069596558091441481870950351425983750532881050757375332309508920160445231321690894618731390316190814513249048461405964844639135420503183159971295257772163892738491738631468141559839137798014515055802230514972651270057632254851043674387264920898687947138296876131107723494319265651242237885341441901605018350548313401166755150833173503443024703609442572011113246871350604917486740648000372116339593882638664222488748689581041137809901351918146183972121087793351367506814309575740067563150410072617544910357280570803517902357416132906280003933499458092352038656093281465511752151116923109639920147512507558583499974958241339714131768108636507236546528863438777765644150057850790912644901705741836744632046582267215204357853620338212495052113694138457808718888698524127384843480508602403271260987692753924667726050642045495335675696477363237669077639030337654621878005208870054569042986791382544024161449696781260722078099958988491402065817740540550569480949724837502070945292565620166688732538430479326936607401119829762485428155563043940143897193469462354698328871962432868086822686693081778794434124768557426136701652939746830267691856840689486912559948116085568135788731281590649179404974429203958505321661702104733430127818184232648215223651300921944163690060583165546225813363963366618227518194813697357421118127556674878974416724803092492215048679741125993195393526639641668719806922611976638438341626862013454883459735208361932016942453732196186441454754258888568789487089659918385995440876924623521361548599943799922903539761127734974482934254809771853376013401279043259052272614039188424226187621158473166130378556276507050955522122158478051444196244338986338976484675227481902822284450303463016968648697527463469196067383886360036469747276989020209103758438775677833667726235950363682873427677408378998843803074231262653078504755921635439100093058907513253969814795436711635594334120631457510555818771482940531545305535928632347400700960649013600076100025775932784123027202396798420255547554129925803084918081778470992241452547648335862308309976870477843173651575089722934116493786799449179729892581045762303555880564246621381993924006695668887864632184970360519028221907499914418149511049355471439511327363665468017677253464891795212697588416291299054463291797494389202975508993676321462460179353356593969350247449567805738741749711281040541814588513704782183242460996854360449080319504022303486901288980440273937672046715483739323648004271202466442605645627234125903710991353418020138573022660168615095410400862346234324494478313097473011540966087541953873255736516256344967260546960018500920579371911533753723635331530726239310222700048893153530248920859635554787661349659965287996261843720008496406755042676812049371794723333822248777063802654978265103800821232692329013044190478816138058783239057151859130338110598460811159886594426638904667953107453632712811017182583860908740174878480884686298416852299206798323980841692728628205283514932292129420660225281817178095146094046310736808026641170576455786282961121738965640196800575848209138626881979827957512695351160428884636886067619175020681300373095339023295701796495967110474800616198636876278186003086556824668236899184306561994108594429003397840827867848153865656593620969649523037963768974604469628955858398946381254974832570709568544763636055083609193699676672635991606945011363608811865168240565276324666096031983310179047743917337376808641857856119663972347464422786826236607125967988784895332209676174067926684241539105926397451576129481305293157756975713539639745808816120038204242923797469139739992915715345446050800441621554106465407747255372623738028387195896706447933252663873207407124864377669008774913294531452035174076086576630123467306063617261914742986733526103910503948998978213725133143765611300153990031427914212154453058524668942043852326490918020562214606752663030688263415361221627761696814138388769582219736356661152561492306281798690122114443380541701243977773564237923730196067476816455732262186401113734108045184738893062863025853245276257807446169399172108751616465469888053618127899508937352243865342597402357153434241281282399419328516139085676522817818792302240826682852398429337564712477232817638413919460515198749624985387766285214704900722722724664407816576155403188393009642089230349945441828159121848175433385143576226867648843493609462519533935581114763172439014875732498105879741727869539765354133277806353460891486189993233947608349142830436379540569459385270510797389569628782834788228382818884752306741342946276365558477506687835420744338395923906818017764921836692987795416329040753226771452250079464859355651630328260349843326361387224175861076011341520205821517781543072899468849862972045466222561486664279465966106865064135460436335649600444672713285990635796869169788731256795979270817257921836315738640763357438738354503097666707575387648839940971395054934723349905003748888314227469999598063338406033875125594400968532565636135924794810314003948243706815835928604078847363506438643948452500226886992600126789144739127333822709946745121162397831811778935641069366149069422110703490601119013610430727626139773377966340360581815003917176338052161267902486349822146288438494643390001574908321699427993426437664936892038408217339633147327448475680496826596976680985428879699379563546828195262597314135472263548636831279428349470904583532107903252563204648026837003397367610545348079685349018818224153051734393610635498163966577728045554687665798487269502563241951408548064699436998310324762093943053773093092250075733478554248094056263094731606654163096829714056331319781995002542216798508787607369054505718063596074865692106679096685895868326284659678180882695160006517620779475894838191414550889899765531509843291804156942103424348322373198387119442586966768307305425664671281069043002795420963638671245507120518823217425882351501624609382136068639999618487156752951479020544556258936237388513624976168752617262469059709390562443954311063682820290171934765302318285879544017774935207033253046757627351437288070792982761038566376084006384883217870323596832100367130131842461175283637186030170279365092564678416136042293184061918808237400430876079551965441298428539001805086971158127632714329114844309422622613044203462475150614380054611950562358317332309403871053874176892720224751047604098233345597576713736658221387408718814907847048122930701462187965363766866607313877327282387780916434397463397079455051234131152341535643443153801347827730574604895851759947553737223784673886937294264730953393974940947748290965258789576917882548188872151941415313413951186763044226242173135637822969660288545578188242852116184310666282429438562212944752329719112957445805819163485596979293890837831069838949707810584439285563650781288222639259865714978666007189110693812310800017930047560901569543561853639714968759737384067034345181915501482420184919586624760694616059812518343104849237032772187040608037181956687600530189761872838731167267638437019280615302359592441331783962425003985835957988701080734690682870367025108264525563914508180875317045363034031915561742581616067979747812900524054012253495531751184476596207258812204930596132661291068320758448206350926242211362862489692409426271152019989525225316602745845308557298303363054006844980964808106187533768251316416467323109659364470575990177811754363651699289948265668015793509988707587541829866657600691905140123678904838305125792332115920622957851196700865496895398850306906957647596163424766885918708434432548975320355447382041865884137290535742953768265356086108585596467324867447713258284998394788251653229792496542572838193570454277704856372723040073352784395914510205477565960287223391710009062587272238437928794791297237846778818863677429320019174487569823188272303824876969235847177186539880210164254736204178615780378813948372148433816770918902204180754535397370892644847156554983500638475686520157841098669748280256665833067590342510003114227074513946240720529910300064540685968328030048669521680826607303032061478250634515385958053605263935845219135496476777107082641345583736224294294006448317682202326623695212566758176391433036352202589562716457882034212494406073647674814642998262403312605085785083221697900549510103048786594227235786586806452351753774869360908203131391797050788898011907163086756970404203117966424983001558824790975996289898554566665248914468374975106716409177511048946041211980855507290709435102186040131862938321360731018843924256143085050824552904496451802708331571547102319368899253575520625899162691873087954252872437060409060188576396042069941777618071529572697963695966398292767849542845885039243309580019596865506572179588781796655605876927858949428420298859942598039608612287188319832580322480125613436169807987909702028278697588964191572199986876394491851411234677841093691895062196760376162093156320870062140208894186157119842925194104164168083590486123620207385065386457416594917629326294245616307400809263007986560029323624493609795905029721274933804647696404221501271698225202237713457144447240234145997214960090238620549632194098740652288723455076060927940722232362197318175450923101904264448570029709457502414125716001927840195128723968098396805369126326739193906498981100088533172073259986195029793614474191254593579897151144562769350943016269699927958829018133192815551701576062518631170149124032016329455106372240353939998479201972800362520732053519578034286017027241667399728472252138955039061646147030712437145423452912627915651135429155616907658076738561497270973281877009071169884100101781841269295586398378171315291404663088044887445797919557308735297014179202118966730269384641440378424724827808070876956203873477304003773123415063340732191355887164991765116229557723833852839040371846390426961074152195437012154778149065554257732164074974036889551509114364546972792958555426748053428627110425353778055290279559442946628253950922241432284005505915458612755347224527542673693965845416975175070075549452445131880611250643975697029001116195118375724766024009609229594586725686213831282164359554324660743723983005639487108601382646711121176011077458355747045332129882553852271308465709713861900087503458996929332597733288101264559761393092119883484559421532797269470339688317806018906887389215847422229521570983021873680268427843634141550090628326468792817588112016328253172109333669700563566749115166902119840026377155212084631748788369903860029961283546669014389497951003971649956244329876630357883612273305916199240751142731633109185212094573379156679285125303259376790115778768136851446853970846621754074459810614512741778737446904862406601635067881618532662908425625202680544731852591564724595509716751429650633852263994364974282788132172644484784363963760638562834346795550470762591665277502227748405867938671207219741246003995924221378045287838799216690379426314051430257253307325776381890955520786334693327881490724147668965995330518556410566374482561878498952605257807730777030333185186159156064000589565506856401801034410322449936754971892572182865216718892858361666145858062833838861846017789530286555418361744048846206077394784503837155211377109282012337800092810566595180542241962798353312775202252740683633841025777986527596261595101729435518928761744437542740329014174873106343655896485000789103339315011783428370223284670811899586879944371477807244125627971157407054975593008479477043885992701172578401287098369721046971386149914217327904938644682557708547840881148907754944968039325685760362997113701298688272822591749712954553781455099321630958989221975452124616139279253575906145377005755562388581612685789286490463615352760671459761121452076150832513293849328147528484364735512135019428079644758219038962602959627840121985719922989734970248007948394927025399860779616183971545294382855205312614579514834443468354535656937724027522012316503914562333184018704465928661634958601542281988961709041815031039895796410964575254890604421649121252803274338326228980197138829606331413297005078536035683101813147419876229892993529072955773609171107406444666739315353700698544509595896243685990679693109839515806385897512467569283972270087075578160826371357101416205271870255818431391132172658407901757055879444769790558157169286859668656410389708048499385764759065155269692603730087012500269158034985050129639432643424654326270707460951268588147128013049449842915875096203727289848593964983292809686706659203071994595067555030763232115687554420535528757431491731591841847229495610442540231773452050578150633829059981339854071785373970155690611565133676925885666727625253572982699048766796902100384743590030303876522698679350103172230259942976028234161832309188908611991150564159428296627932402671345520502967703720478822526179116493771791931015408002475894824727847404627937551291060974522661184616536967857815687398544435242712000602797269034419643886914184968397851768302824128719648415079938729323387811432044978946556621496807474686786463783821118854317739731511249223891201615889419138720072123778503523178531670807605296978751589115808951671767769421156913860941560881693563739955793887594596217173985878736218483863289222287087816365840923711177021259078834638810070103015718115703859558403654912611172030928525164836843896989710312231929819064528816023023038421171155507434233458020155181737742488394508198159171757535515550531956022344755613025418204023053105178789397278326705537378037059893073282927800724812515252723382229944696704814357841231762945110790203076360378552648329850793839866165955441303687273739843216700499001874164219707791154926982345767103279358866830830256509372757049637350274400564447780044975426639497812489612162090862790803434164395546631810979913030312851168306393512999260415864312537620390615721918003000874613161501910241457294142313462341293430685158521482753926450481454280911404763525971280352772006931123017163459544107841639196089295295413205370999305388947751936393070613586161879127820357722603193874202897495819823109886160480045317705016802365119229259725226524941557716940111611043595824901999683678854570791161491530656497270870365502182583019791654364007727889321560827497251215604300110487319476225203751838298833853296073154024777982638669447957100904442054238031095546986671907243426995369566126452340473989880591508785915226925657007679688382541912356278775462991067545385095710196714324385727206593722798925679069033471559773916754571422123864646539210934457287483185138798604916012330798462072310595668710544390256247206639951787206673712932210278197694519812459040584859563728622959677531276099732945256741626140522992119635011613188179774655736906493785149021316130480076901017619605874879722022324100750564752073533039096467516360603636427462526599418448724193860077717070845790207362942693284308419926376227802315127393603535942879638095953648036789584084811393176482158567553663591814114865261577245002814434094867320130469685906298003844273873094760491763117902500536607555379825420612885853483550447359409624378258711923692258995492181655701402043966349905111032958037947003175355085482016689287925889346860669768240612141469461928192988490663653138365394424937933156235319854920479321055987640015274150662198192700514754614773732662333063599699769364340649342647740012801473804782025256111194523927630796081321264524642068060586310632272291522670304945541059353775486502354170559023352181854704351297122822384779026820441018828940202626152225758830267332392683872264562283256146954811419942043441817527080885425388540111444976579762663139340457365761993602003782655279291663587938601460172114385498326145811372604588841059401785698140380833949841931220464027710639180042824192818189819962918647316890792753861844924459637905924719448669401513862942474380121599087206288372438695497535641035428363768083858215515054625010554603224436141254037346406025961286633001003780130096231135231844613850535419270637701627759301438869898697476689147171765990039006341619992417212511161783539866223858540111161583358401669019026387720212089320157514020672731175510104726962752355913767515905886283784274924534969743773552622570069618092080980483216939190605460321052276812643706433436849338785965483565622932991131603717302403331231943534552629050142313212490516542240603153751464651627713676836524589021514799049965659518300505141774592821161193499772080169719078842617451535129539094394374384491634005583118867999700212478088465077766208711817711207623754822663573904507231839858595929289119755412847764512139270544184978622981638806285808813380242563310314016019231632392758483834107780530365348445164847254325720958098059197016999921490494228103714934501412602136926079262358791293409754540906093795534457659544903981005756012830805651104345192346566166627903994692346614926604994162266815143676392797337909082221620957504558686736716391600338962859694882001282190210103986413320620828041108241025659087299681340741079502650321515711127757263240236452011406594861781194212590916541058291828367962900623630395935620744522175810729091071775677474069607210446218709714612913051548061979091800704424607104494728159212885273534120578810445109298587953482803477324603072819136878033826829464170899274814848485651678987842471646527400582779206146028527597440848238063117370140893813417917880436337482511690821605982468074033418182982644883072469262862013599576689920585003582581700830494200370527274204322977782618658628472190239899461636258141468976698631009235435799019072234739061813498934245258515498662535259766512909697878430187785162783635392541977405985227764849098957591510773307890894686506527883207048891409330205276644205355791021443986446350165429159965393789336309543874493965168807086648849536320440265989610952198540330771881998550403396218170886592950001905465340561306593579768593845776265729163895033855558434880145834011584487620812712112554128296741259072346943302630457858210904360818877395952208148239562480456258049748874616787952843527896691753514357972769268825936750463826056182404289710044619799442700513425866582390532888030875685041232389491757998209580170399123636035195387231405247023210130483862237073536958108969469191685667937908446720427190364427756607679050501910979350383394040735197683807941850140451092943211968192640295672613219950735957158716981843368677687899647853307536629306428698987270019931942369597341858078431573457951993297003590186298937145841023115191478788490382435431544133994476335293649333806206306043980760852429763497891441627043040812477375294167903373538990943138139454425651866153648549273198329712240200521435191474852790786003314503607038316681342445210027320281130833088739176220298001408835618967338498193190458443611716888942220638064331883780169438531429293082560223980340326951535795824020999410192803947795190761599607108090303283352555403274526274745341751355287837341821218233551480755243117541558993648000716400741322348580094287998195308188622640900348873624462999615191546090532576920684818327354132843517245525569738461353553528586276055398175024936899738418520134138231050022310364666572818441228520655047645493985611203277840934250219537010785030101961769510652987463070207424433331886629220825484823524488177541246997928652710342156674060208429496043507745796594692672490928113136097621778966336818337906325206062622669585354796846944998755775978062153616798749739103471572994858243203742862857969900915714853006395640696433804781322446091518334628476153749454372514694256317285160528849480363574769951666459188044673355267421482606303891121155434158207039781661991195486290503462752029914066628016442170664565337969927215811085805041595298733153798694031434444273317181557023168359262278198208506359963368195737058682310423901666723179609497291162918144068171258245696583702950153305073986183516060047266272818822598347507699062737675904745001723093340055505996677518077065553962941320987982565633755787734442782204356195208554239092887211933081995051013142249240357675946807853777200482934267370104747635545839945887957730143543669188041680905290249804342216967635948358762457403822440774911365974932727510970362714556062407919096891288848893531907966099856472401820036554203785246568043414204829491319975631817941377309550962647987136645184443519087415745868060361280151568146411651382042724111493393985292046720123669065559878060994501840319930626644571299841861073963544812560219621120059066377275869131285016897294538652426232034768271093636333111847484500450686673071482866199922242117019584087632492952721409076539982174164175563978305708934866113218430057933870247186806242072997102017218583396209903776733686128316755027696445865890262420481245894271004298987957233329017297187519632270389813390730935161144086510589387271203433573493438753960204060149118537072102994426817761534195711853587440088531185125686891398372820078678357538216971317923270632517890167487804766615251867285298010111787921626716599805746066021571752254152813281664095544469619809736014135022105274378086206913755151606616994864621397203122324092351553539413050342230510419984490405522117023264912103881135521480274212385845727668008773989530501134133433084139739707188548630387336675671057778592416016655675319432230006508438808895448701057695303588738843817272153404599876058233675968883733170449146280347997426481940941780959398423258785500568377543000035530005722232465154843531886210432311790550216797330215201870440915385435876194766365628017061139469420676454590024391953616299823845025582811996605116216513212242869356961986003052300262218425412663768679840746828027063201844698959221415232548729323718913246212337969105147657208946859255861451018730715866782510621900704395226355317279308167248607194937595177765148404938846248043762228017993266218498077827704769722234237867414752487207094944013496088255015825886458144369239501383895125802300861353280547275852546629273928880864020690896726593160050017531372559916687382461362659501243719237900271610782237370552283133646134401839547367325826065739883753825440736517832174574117222140721074832789499045235879721954598550592365317397342079739232016736615089201245764121304120002609851914167280838780362127522819615258955026128174019368898178418551931166653412706118060887417866265588914159905027813154747079129133531253786797581619489816787578452480568783697267717451426381728292300587089368317077501754043369451516318209251401605546457257043624218219997434070907800807994267400043655598425166938981277518415773616687015912579577976813154365789787586857837779443449918176560421636847656838922314351532818803979891231489130994635525964059853660481357860861619131325278526463046342388966571403164901168797516832216529970682296001017357365189669945468333839022124515145893275148492075816849503941075398312118455784518809120002869280868333907533010015633698351850667316202282012015135328795179273437419926374134367103205654292962088705040980588576968457400159609158594536932531726096933008534207000851568819098999903007614338293570295557788675071743874850806230051021209831070955160875474175711392939767959587640597089099401463046364007997799917800666881286094542873099193354778780341265600733782045029926882774766113712749707795606093137462802793842430343218491345769057966473224149243149685288233928976933247759796112744145014009135508372972470181329476423526282198804814353394816777041570426510027062417254572950604625090482634514319640064021171495586585328038646455044948724718041655806311495499498778832973584237322610267762014457131187971671186640532303509866646609194540821895564698394088702343943918051914177300788464147853456721780618911829788073614918283747050995843994275890324251213572533385873072325920748606181109305532812151464275113124475867038562064160616225044601248772796404233629322720951840180295734687993772094172878898344602661666032896378723210457623197057929097593472546603155577313694078697785429574178244896133137942321614284661510427147223099069051978736319006207766426536839322261785450066812879458514344719049227939680096670673507795226312265892653897328063467587210738403970576587193455270675548550115402381346285405899609744524657596174357674415473411118124524009187312124223453708150222534295201497258617321952378976255640980760912470935095071333396338576965385377428372364939231859795211057248604640611730533178291502522421895330676659753923665904823484911981608954203233311566196532232321655142058058278170639675743811775534817463913282557239593569538095025991485055910485618294697167285856101271182034906119693282776913378024064982257888163645955559509039831794730341514523131240730136111613930895316105171274305844877201217866055892650806416862325863274969548410076607711676799166691035312993424531814498743056802130954597074609160197432665660001220174883710151667183021026801019092427648152270699995116453934785623612623908668548696219130874363292382210582241402193911342144134432359029127120000642540147150363762175774903932204588254762519600588467428575369203856386871389388735057541859392200349887408494653810796912510471793873987866656358411395447855206786830732051555482555004346688041728969375802251054308219326287710053641426734162608641064039709658654747667917369170451707762476715645103840812852020561979738355284760430994103369754809727049681196760421808140674824998439655490315403607901624230639074071693716581794738712569367818606356909037222365601066986678962951617790197147216756365469645565835955173072848801568705299862327188988764824482960748492572452036525784210841804174181041694517420091154957245024625596068041645404222757060172755681660177904687190728145524321993482719865554992394095196777946574556154995825721078076467321279154376236126446780228924851597705193667914537162486404583793566096053165925985647491504029496625016056284330421990650304861380330673936141015436245217714844329768684263390087252392538429103269852857889000238797543598849879026631932712736445279644828356237037892825439839515202597147683304155198763123346949816259560431302113950664747978388293792348588296702094571590860050254908008975578932222713875071944419089775376202575284418716870488132844308541339590976910758671019649779960200106487430240446144986017717664056020820460492469158263620654781041810211424377333721345974407283895920409232320011398300746710190727906330248215165572013272245911648719773563615502204437739383345519178430376847620024935765225127003119183129607331891163115087491671514394211882519512956076729638859787607127586221304700472205576568790219352268618797336505258282561617663203315009485836734719078382336268638079153772818024619075273067819907141863384515144561083732340298366097614502369716883961744647320419360405621541713205296183434437679405438400887909947613592339314554942969106840155667364935156289596666993072105074727850459742814840247380094010574732905335221476932609595028218292770985253137329010367205618176435672482418527541555568624080589284787884084507747738848826906014545340749235028352857288725102850163064931572035247785934770716706553465822997336913815576676554102466137458918141968768726869410457160342355335026324350720953909280661347063086023547496058076534894693847987439717400839651795968826362024584195279848423902926475040982500348031522128978479489230260075837557137166939189743775387510452141111987077668629253314824470295453777850101303537120867926284747293713918239568444836745327415418731484715909069379825960128457197132061070855205706228276644844845835716364926746416831731424495660433443663913980301403207712349049305168080617711287951854539937905470376347709648316114943867134959472342364657350943573636682465765622359017026475418670087586930911305377722171363619805357439147931122795591025674941108909091318629407873954185525693991310305055048142087603148476831846668619356992609194058033757010463925008371539770399052237639169698986670263255400215792905208135051755873594258092556835512392673564267360457104381323891506522763230263866099674048145842372598021230224006314465068108610260534015802187497917969227678547993197585150914079421953314440176088379778175546069375671546278179136699264905930134043803980413763999287003788313613022938182379279246752891460118412497361028495407657831429134631972674842678001127306477289163372048832233008946216201640956440086712807322392642066997572139724313673217309143105930197503246852397107765660599838586439868000162551192195141836637419719126206980601960689265429183368989396764724111618087358924525771852599683940327228791489773844517490778686703787035340428631257699499874926238860712628595257419108797174767104217330437519873419249368024127407024941756136835103302205171910632475760878395802745136282538718411497963648075188634398048762254741722646050304824125191365935507657105327424870888469627267355840378686334300951086475960648709675213684908812896400666994637616819872184550346178491017389574012908228251085528972123335629697007599063264836952318542644411378732341101636445241238369568149677438754959519410193896018072962375729630070636302854486979232224186866201838178330033076498550498980603809421327304513513828748201285245764561971663873352376427695194173389695862567853183249806282863488212780624130041577428631977914070769032100612221039161760522158888438183947684325320730693181177498476489056611676966821715753957735119861665547688756606422504146855211037031289704261137231490825354238425998207192079433205265034230577187957974811809081319435085800531164821418808106277546308558975401303220782291009182879666036317792910195647290100202968681882840161250608006473796517794577499949552676614002338504892414254796772767822496400399448200131592065656092157352794274997085606695492322238438137066522892338468701071377514641594410604180016442656510309242202537854712978573148150512624426077264331889337925502887378846928995388132917169608270222443372819088270694194793399144971385877155279381941876267288286096939377321903285764107290503888927209580532083471535191805886207949412251075423853281912025899217887369118874516664432348008674226925863538247225999481161896948497544748591056509917665978144643471902229127624223458499537243438025012941988817243283881564434962248174376121258078201713771775940520154227095424049135700461600220645833886473189805622108031298464577624112572094516853555001740246585062524625246548866185402758641158628540584841082150517665999377170582715839855793703627570311364763038016033946621502598303832674572278690914077930337094257790106055441747645834103114019760912388625128511105808993918308122635978878053946118138602223867382411258881990778743935791025028037812439549797858167740876685150757936072056152459210498920435038473303067187799962746928687456635757674471124075092070930737863861231730233668071413931395361046119220865024770179245231240368512754625875454687152930082947817974607088659520579596088286678684962199441027716058091629792506989734351104029047767299122924687658385635569812345444106684395554280705429144422753617817215822118535246794034317782328414815444974067237963449713776647721768183564327922594313344165419546980642040046459273683779578153101745755611342609013955198885435351402992004249226637571956077390889394254653413190702477725297905863429181710223539608808247536277277584227312924239099577190325184060581478633338980555593684021180450304575083743884307378349628664123872830706326343409010226798581608611290471751573858703267842319240264260646807581938150835081658050461317566309560376767861769779053025689598411875865942987419891680552261074957168583934249009689946105567183256830467699294761146465037668109266890324286635884199063774439344319720757569600707763651380840487665331868035691739987720595549474714674163570647060661737750911800637541199618413079605820557041042003430660887637353114052455911117672594015761878346681416178148822823539900461295122823692663980213662747725816585376784367917130926235311794046971817017162803319182525353147195891876089817065388613160496235160314494896705382674082927135190361061366032497200771337395303820075622995186378298700287585760303575704242424809801517793049021383664769465497378850744881942289414498873338050940124677911271706804900329914040860871122436813318076091829937643004839350792754615320046201630972340056535614347425846218683288551828415536624875683971610033144815477383815442834639434782406373328406632929652555724096593401218738452582280584658911776036890893616145931938284756424922405387084277021708854974056056963619295239900927255351363406489434268509603318385726983549868839244728594430715724762323499116715988162320318002240090974338748586308791500896781885062490303350076798701425275864263251787032198334994948786009185845582236120519545084015527133893015223597254675885797864279929541215106314848898173549208071158700673001688993906093183441177396115314360881664331799579402407699160405199220431090095342074993937673878865259767132445120589914890237071735080208610135935371034282491392683697225049524998755281397171367730072890405955448874267818293744876363177735239345096990460269218194388347212490939360226545059830136517435278138732679763776673205284393699470075381234209123536786266227042828724385497432179397250725033957628798734701667082202224943138796463993814070914485851553117305661612471635319569061584184044433576572173115227436141762630252650179678060603565367330409344407241935312877974856718853180060023378429772451629431530730044383529212494272975673310688089647251111983715286089864812193300943331976561118419041398276663156428742000680901686201135011687821578568317151432775840809952826571138054649200415548032445471180948818736526584666858119539270794636390209954413832615867222764608704119003689167633202829903751351730145049983814318329993079481559867125700976793312117912484257958370769366904799407840468758797265541540957479785525442398382209962172692920544768344708194374937067194532975460987756704610808546149876427762024043454302663836378775527863359557962084337102908302218893026204502844066697506679416695009601722567676350235652481747285119745077002661810183873401433885384971966212728258109510369491989161215541792282825699896540929351946234644868342730110219796532181051695457953994813358936123826290421609945577135832581430533337022643012527371791311210695072154309058824738849856725270836379139998618102172215321977563522719945113473340891163165507539931311468893022640170671137902550259933460310026797634555420758750447569859985024986251049503446412683339675635929030023705283485936771740460874730651502312336019184997155054580830090482452068484716693444354546470969042727380748335949789808658628644624479651986098185403345659241751872004266106771245405968766792116741121560684554971423575000745622508194358887514726872082497778319009152747793952970051415362455174316188641819941731448352275602049379249159252678532616385609410580432518120971876544517925988848591528179565202638313635127523146335513651445694825902422721841226218576490765986112421698547551156701733224936262400775816140037163805071725370999274579079227440042423002382509418900962963410966046697481061942116809965918671858788748405088118694492085314417017554380923191412870132362391310628051974727991429122832600891091109722869760634978925250946864779153051536004842768296930395561628423761011076775035694965954905186553338467908465925391428547454155417445138275567165897405943620958200935524458258747798667289145703932760564633695563410876030917660434658514907931527937522539224507826252492568323006968840644149142721680234322690165544674539799699397118236678573889478824208882577045838578044189039779238211754062527744783254795112103812795615532560749068730311246424074197850295829524362791240005807334482220407257113738281477645755947449112526624765559234470599587235289656630301184812421741630513465402829038194104894147434337253828297110073075895964988364471127456249322236392019497669732134047422974320861448758459525705294106036934061621898246257107555033788979071159783702262698706433232768983495636808464426086106230792645011209222504894299105998905128700539721239000356130016400678172437937774263427194534247067905723505588656281154525794015504352906764633171088915898307634657477607502222060937714638228519301258270585750671477456938697312596010521630014113975772957711444095134092622095569705317976694274590096800923987991028122042645927969358780140520448817152964800115990199402844811708161119630137068232445353492786606002642143984921850954233169328148993770888623557309905081622330215521539554417081498813696660547110191186264975121405011503272971119948565918019825771991390052378171878451976978892939426343220612559920232748047549917388233753150685231493208803111990403126723755838686855031037084764658838549300654502448916116685935921096897064332195561557063401908072995022455322964250360888384503115867928177474430253269272170718390474206788329275442666691409998506450253257101684599602368599850753112612778131213567060695905214529722563086625678166975219032272520284537470662272181827307972818266972066385839001328013470504402640821505050569645733796637452946200615427840569040283431361240405214759076835231643174805995009108366323976238784192381500786145241060145568027794249027079337240210439777771349836788587368384265358087193987133432357419971446361962889965676781636107824464669217149375863070608581160367733986297687524311587843259917308287745355693271043476488772059829847976807115656319480474915099990221233834137164653233229981247227990957720022728544207014394118801019532281873360045896223999195626414621955457899541269077140460188616978418616864458575921583476135810957502465025853595214353710401931013688055737226924260618534363722695109315408220099725910822362603553025668230960832006126717545900040567853627425414139355221972636494330717599530302341639849866269257248898480870485900968414952423626904505914185515837198573361498863516294914172675469474605710486126464045919216023599619891534646502669743819886100991810780176718492540979317272832428656803877429244779731694921818461193330504703916199737234693671769738018147714787202814284230509218846339650964372058271876907124606681660930580893688052819908897708562256645810668199078752630915099983823531748063257156433700842535954868620619929826580708109223460667632523557361551923047791145685169585908942872386216128547968371425335991687680644991439407395389457473853322791932902190435573078792387288436572912978712992740013795801308822788491092884144408941953841957571720196735881134278823506742472581161287753829434503702848497576244232704109412403108880777738501397267526809839891896120331380184824451751885677145995387665482218696075740389627423186512493613154189702980514585832674384187244507584771244016368867946759944349137374807260007315092912124824533347202649303623627371085455484677795332675276948996383077636554550938969108339728817148857424441932532501267245615244456260626877846954874013095553631078850095509101445706410750875712397803194824351064447454522032462254225779866312589455550987140306538005051533446591012328687610001934733102587678650369472478432039417333435226477548407147218638295784704686512839369063971069757049701491728417731806889009684979045690410229359063050098203940905270522719514092554734133516004351087412047814903267602337479131116138969385365208756570714483424656365790376811935277531011381450170645359132976738524812367418675467874723149416468463448575079150888504019516058300904846336468790278671298324244029192980633878539380208505074600214402376074431149886949040880396922063209258129335981700051903705060010674016987740450870772599687302804737879478081952234383310014626525119075926254816777929935928900489303534910963351054653157037427098184086786175718990544153356084227860125176468996588648584350954355870271839631332850178679286119120217594891414295706590660577083983470394849166255670293573027019019178418764908723523550139706907437637070272325725964389200234813530610527910559613801574267013084065164604073021891180268756662327997663379126618146657715345985016686105788862376199437521562336904328136657191109331488439124279304009243501496682186688439246770743776728527433842962164826216614056789799925578052743659953832819818693430817336644230643088149783163531910245833113023574688224411186818988731140923139215237172189489677228469939812798329240090574842281207817406824738232005749766564192804965749667468632867053457934552259354719572139913843195265614447155941965340237658833355459171505551313688150002774020296723709111250451945889732129471615612628843605756857808343419777158871362109263790510079871531400626352640031334249789240185133881302826011804575434384197456144712997257004793664262760436738900355509099521021689745623164285037916228789589554074162761966617680364900979073931748490272769540893497507041404449313761644414988753032552835672297057723523491508733651956356310338823209122966211036607068018709962315521576201773944407301190371246809514242372474295853748855858968568188109239633222903190633606352206728040861581760022075320008099760454904432543764985260264126560298683486771145919473070447064632395879533436790990996423142954191841803659538791092932708278413666988048273366265676135983869115067259008936301213837110601123841138651619554422186784690363922163770030395365615139341297574655846422568788783004605448106092351913085588316908434606808044034036606297625542466014589329661455850444005539346565163722005962177095702471863695950544602188609616818606562257652268256822152978498107790937516544964740441392838810376621946494995660011228091749635828647552230656874245766288631765583883038411537373981481428558261237567478830582959001312696863595416864937947698780646754673779775486177209762703345252969577507546367493198096922945557358277344847125411882605375976482139422829620302775546861499845661105466549371310537559749602964326528372891811136147476238602535871956751014091493709312307442654004308584571323273599638892732645477029641202584920817968623155383249623312868713119068255449760316799429439405558597060189312529042617068513823239316760075347204684843238757927431543887928746948157587386179463401207748907614574872037917228579319943091298075622943876025851839584326184120769867892540385136892717014053675935978104247733048543129231557515629673557779620444799024355891086330941401833744107118247669833302432567286247524972675816991303335263334246690499477091018729081378654844421901973649813424928409563940759528958655815073958518965352159247450889378983258738678051281795156433788849839315523540268097545218836447140108089472497442537562657560582074244297119371226513043873369029475243123354585115936290539262207240857951868444224731193722792931124567977116657752032497136246953548964902540431436024025589170674326151631687848858589469656390898269448939684844530730299485941664658196809439216682012159961111296547081704697094686243851373901686995579519850365916976623078401860716663054199869004412243574178672340824168505995724560984041487606597725619489796920732101545595091738442841077203631034904282987560797173219216900009157648692811567961900415566930620649538835121828778439749106314361602912438176427672991811878891031908932112843645440863177028699543068917209469814138803828389453444042817758945627974799641246591429563447283812178258421487455800856751387230573466401708161038691085703924647245845658905137715529120537021111740069823705403345932541399780766444190752384451281460736505974838902809218408684230145009833069287479678300048709182704037700795935948178741422376789772817234664344308101084738637172345359427892382881729528698204278063332022190238526461168663311450750404171476655217748330491466511899410573127614896171944331449098226850966076686626508286939998624301325666219380747406031192428307390238539536046673812850343737786149119356195932399969580558303994575983482027004857421016122531536636413694463606540515925892249950756702111238302350338194491450457465814649513252860776889532310339473477370830186738400227680075392425111896251109572648306344734799568103631874000739440145936653264053235338411142177721392177024514447445593530994104533262175625225483105351411545684448226962010602104566486077004885066960885914981417583145744835735740586795035987982436663470019128786087238086012064635090102421398097722274389452208781361409796158903623228309083597480483660215238321837790911378352515349617265399806367331685748218505450393872681284362628065680655267817552790196211020099283914666838496392238076738830907330556091367750194871724931733278567622177441233218786556726721241066888886763821525342491550537071395599699716301864005340218553360309934411031924358931645523744037429422279132364957868632692704206832496914596702247564029091392996847262402418040796793191942794395756246943646979891704744902494582160784323594991285583568311563760181255674070110623902594747038561516858928119970899603348225603532099719155042908165864647808091156119963511116674817423575591179274269088504729542367492786491247881416065145466714557101188446659086187988596640972758313823230346808093357794399464249624132097691180166473548786428910924588539162988813964945759557624518453065133757712781648570790677812357981002084544696043481451712883415590883246835506237327912093721212135183665831840656080647792234047839878013761277154185833655027878921859824954926696734937150766659496541456933173995217191487017977896701455008934043577139942019326506875362119867450034619232268680196001615553315061027882828328598498194999845776813454078465305423725562372551123202687443862337136954572963971532283273391349187648720425828728864261986337058332811830083620021529606506314902363762493920373710936597425242758010726589835614487515976184517418903394343641037781518217895675177256938567463505354925374623414856757325641606080574082283476758136953803489119549417063673878236186146030071762900076291979783486545762217648297350970577681192673178239917863732910804296728256219364800283368819907593988648577754413208276258942107981482558175904329881938916147081721576285817554769551571317001361164649545945217594211546098359522253786049059056060987607203055465307898313271911583818307176566931726958090019707831379973259590314560532360460574860613899945918742471130455054706601724910475130779885660237675463774931657143740614017218034387014456835626988340206743289774399979121710175206692140647753906453712909005931370349054294353824085619284881223127370150351527355000543133592876592386711921249496084646389651529208977438148750286441099752113309049781413459161472857644173349294073252468142229527262552917728974935895175646854813874419108463985283598694069898897398304124630065617845202043012021592762713926180570421649477631539811908384243924421852904650179943402992221649966964938797702705617387779101067194980439592781190531484620074155967473996508463821008464110348875739467163788245829848039084375894240580077152289592407911704648654490563071459728378722371692876891008450656885076069691302921354569545952996520500648874210609842105963287287110505750203822116873829122684336931805387917072768582987641814172383866321549361171762534495802310152013377399003878174180665538247802865137779893994476905807782425781539678911426826754171334750084476184270008336887102034592036798905821977802870558676237955749065874057701629447358452457468669532058180090264099689000195237733899500650652263982141516653853083611473415302946040525442458782338920966064189089036485370822569320032084223970357428283685046671982562684772287743739861140109827994767282476699099289876794954755630295070176397415561392339457109343167827251171220578673082834688114109326744926449738780205418776898649842478077144582052673119556946356645575349134072648557407782375484259635726726198682952321073031316256876653789096845949782459102523279291708449715934424215803461128267618938977053448395400096173975912748627437034976220249206971379720507571214058285538461572347513774811289433980438213264716582204053152431843805142058552377741212459648645489980647350842446445889420979802872277274338645443312691683445611626537822914487254169687744390808795873570218282621544367572211751854770132448350712734134097266241800266502934061118082042519840281547359034299879197625005842102529826645637314008592585469951289631985175323491839831333793810372996233034232643833148913607865554024079579256420955303752680211925799997657146216587032685802519321054187193831983902892852644533395304291415232740568513549938035018662481565910869662317524477690908077767500342609658664708045094923949601450317188379167765965381764387391521040498679412599471535179172563101323112854095479883554359796639388084426599806582956807361680806775717030289158004711098697777240609877648318706631649661997504798882840038678998737037350951674957649872503504124964360198803141735986332835810554718954356506653606653416266661100340443033131166364591524381213357782937350773430569523653174279462099119426661914321435514550282387117255640966772811589366955331423692506818853436735437306356756176786010559413057558806639744504130521093153865313373422051368747269879049480347463927328889587666452951142508455625994833317041298405723469614308891464641812015364674702751088523877075568926428213824317641443829060886438095462160013343597699921472296737132083861441905559157711294948106678756298531494736324357100507058867427142685752475655060196848036689294102182219652255001668466695588283979056388528211124429362641950589763408734285997569660194531564917868271372578585613613768058608372685722472513968746633324151890716892695128241093820722466286100685784008602682364960222290697938611678530891694610610525062745471752679247209764936045705839674614290602947842908424114108509788908010619238529365443753757583012589649398204745270009393715137749099484188191858109663443043907950531715266393615590730434150468110690123942858727010119129112048302331044479488719841034869557638909148062027170311065653513632627782394704719589369413876075433103974261543576103917731249730402843968551785041774890607999748101208080787617092923698344755891445971572956305449805033713658631265666446392738672488658875293275264530293014980343754528787246045568779617345185079094316576402971751180410881196805018556257387633757717422971222526081352369728381272532962090969153717722460010116393365569237560022540393070285905128360060659910509752270173064810707257646773372582240854783366944192784276174450074635422118177359503219042940578683019207287102980608958704620758915105358905394706379574829961938455273467192662960020615311081516388348137191849261181052546128079628710330402720959649104677328632665071276543381309017431407355987453127747678952912437860584619809657998417742527510472105764463275898366547378980816416007853660710008408566444589476211457712731634549812118247013341826622701007326826346101883193714050877140607697807274283389167128446095271052905403797779308107292005829404253727842521121981888058357783062054731729195876433710814252824116450329962112556193553246570707974859539818744768815309510993022800712331904396400622859107477399271758960421919998022397950370002243126549844007649487232519922027304235511793491854068707218943745713608668173121334444543732426438973834519278005830227175314379734872272902864424279342356997242849847977616560143324038861722554907226186053659952669773419813509668369685940026642098325832197279969409968015108429452290029705078203601011229988665302555233110110126924237824158835916395883970163564545394036147496870402726168164337479593745012751065650114822723435638701523148351656054355104780905093757979342443648404081330782761101774374146180660525162736900639773869629487952439986685005178331290640437343343279459028348446767740979805913206208045304146658385350918513280555275994701521087701746169881938544160523463387219293691880061003446618055313667309742350567939164471684088792465969166290034254924307458570777128934509962389625635835817896551468168955634630052815732171322992830906985879463824060528491667449965416524130482421188463125696109308830364899148280330447101099339518925090138748944345733313103939511980768735673098911230945598380048617783784420286818674162678116611805642186728752513493549715996275928821004652888212568050978544991389691102210378409164290442629845547230880398350631217768441831329548605068203748790971152157585549255608088118835076056142948760796081688077641619711999372527798244321693779765387814846458649071125035414134335229635190528456859223840391381510832260619464475537643620640050569854100405689142551834469151479434223208928056094889084923195349898057988311316877000331411565915669251026188276668768643999990242353838034560266209576319952331684099411271447233397429899943967904227218054962195549494492693053104733256244390282710528182641083491245301394538552594240475417400133208659360762405002553676610367563533275536870093101390466983757233472553908471439983964917834241809070713424531057885623166563494916946557778169927037407406883553746319601340319125411074231839072666493291164513964636249963356510062079277650090819685761654480020544826565723067147577206697962907061102068322088761150123214743264004334182901719109484971595979261015288286702034560835693117178689136668040630366413701568845453836354662432510229334275052964074665510747417314137738343895599774805794195176443382429013665581590601827308178005824709624042821474616102582195214511548711008685657739899594005500021460769027502576695891170183645078423838588798524732994003611393256167050104077793046651703163519055195366925074320762449082019487855272835712793900944274857916101913355905645071645710627949873419909556157938278969963212353151508812702103567503388316625767648417911282268256395900142003666430020177145554116171576251677797388340279241899626466525250839060010479292345853209295069377536616336437164694247997831237995146040694379668644838827877929187249113304814248715178437621228093865153923535612253135640831263727617955492336871354026508565447240537908919088606944332421508236377939103376225277354752784665827767748356794263320860123492475109065407305114226450081323874442415534514922399015230749259135796102979348607554001177596562355996855754651822188906818091564836618495002044853821525939734783724907788443102044675809261847721827138514604979570866947761895764815212475991588364724385311260899773419616155548053682937831746958556915079431118367502968699770221292811545480797699331537951833001732271515666249316386433883106499350646718083275784879040910869744010347408532410925346733880445217659969654719462029633203050663755242520464766323537906822179916439525594358870502261153820849750549400053531073291974334962872544271161564054624772455776704074930749941066358771269272223704506853348149184693044472376960954360030929162236155724496612348794641463635047656562897200450411433444378635943905188947806554522942387898521271533855007926669742565939158453896840312979173152241812611879401305543454696386484863708368487477515168633939458064985476465831822720349548408379893500314695121128998399245997532257678885389884264975965186788834015147045051608152054051586211626381585878394832486367361251578949975511565423896189936999233547867078564130752856460015087070026538439483759813038386426039035777498517053973154992439759530998690938430934389548000411261113516945417711197290958162104882302926806487650153992195329916488349026940979718290099836966680711870570695513725175372497725792494686346344158163849943412717945128604181433243045525811839106700082969792195493890514032376039620621033314724372650696286073262639196772040173689734908825465924176996693859132900203680898184577896704191749714927107041829040000969820421756534436340063160757565800568905292656708635871068450287353740277719677369819297570940735363676247226455698839360136035137908487671704352560217934343391415578454157358293288846526298419357692292182440998207987681963823380425663298525985132506508104415653394084121527593505354828077868548229346951575063025021722671202365795006811654545948828664287847689858306885629386815707639336311885032578544496493478554307271218909567878388330555425016639951940846990391555052245445493457054536523862797911852274456031729011058571691978169578086950875651955909394341181785533518714120938979929637340633686926811389551182497433996124075258578747601766128679008542577036240104036154019369321407627494443736484154960297295426080176785658041005532057982826862782910403254330194422476602319412672549393523427456906897251718565388475621175197452922319686677320900993033945056157126185671671290473812451934131667767872798624804718977720764804194529775497181658895590877334016301389871146509506955403264816952363233615495618339560594695933300628287562263577683810051265147442161102408254937850549651183572080922650410064974604252024186890316027363165097954436527105175657443411241283724349531023859403794077419910125247588961217669702874388422254885877036020133586689831545946344184052028908155961848163073952109579425022604775143849066341637856545455693618510797154839836872740562323301829021449220966098535990000800013014147048275234890529597393568024555421796347704444872764515163599961375663451483395527559759540935852177900862868292195991136189237583370517761715739715191479697817438074930198845818431328803862949237584783510317337000036429668336208003382982723971958098415364162497310596011328046593440916518862223224442080486042507942182006972436424715206816446522737955077723080425785614155650073990822027015283814038627816038494709162580411480830406720317403924763645060543465624065896558369050723344436071810159888042522134705342298935493205783734093934523570461372848116791296563216293409414171135620835701495750098792649414263148151213723686271378001178867826342220421805722732168915288515494157731848427811288144213058922866530597070546374203609243861757912319731671447087740005178062567392239651393284439010928622647590030713319236354645619346633654606904602159813026170330106059048874200619578438595868887658121375249965941321889256590215956445145285397956159554902807189421143951604604457770220617013235057016182347068681756227161740871605573590798578372240193194662314925537086711969212593692976174021034914334313173480630863608698830246294131559156666836061074093037813003369788967202292634904572155907539760230255401670561934372789388504124977652630791324568455805742901346150881023011774286854270860655814422359386667446000284926811950295531833030406312732508326225567788832192606807390408813300814414372219015345276256934341328555020842412671566240575863038037165982179914139883262360339078595935024414649759385117503862639429121930146908789530138732973611852083065733779274163380906792910433988532813033891933999593057726222839575755124048594233252289623850944918838484293274341625714511659570946260556375336878968452390301958136542390589875555515357262851778378177821182497250994246186406324706517613133842073943228483126314425854603455656763568077841253387748494224733794571090167467552029212217119140473503010101057132039060021232004783991971401430498664661223092697809851601789903159554389282879254347993909406825081769332315692215230730312418076538979380192759625852852344665012180983352162602461041156651505462712611735294831459255732062519168749263937422230599245179255063809304865974956140397658684912121489884341600693743081188666483651316722936389711331819231732260918896323623399786121142715649580706925522405886185083078943421839615222765516226619054578287691518176714256573385376602690160550596084205392681492677832515873241842624508214485338516122201649294861152828534394486510864775719553883218250601218409663409587024203255180614731366903325641372820056801073628912053002290198970313111058588592096375185728007444391978072337103885643996405225388199657708085278524780006327990455439670551071836020755149952060853778508130741873030845976084826391048496722099804962237418580617487753441395350758671347755700609579910532949956576386972116400406612767033752887457434670665690639477596030683108570825322480805642295559247954066237902434632284737798272197007331905805831707344531780965024243111049611256759229015156610439158055108079245243166717919536480200287302449032050104102675101259482709250551653052593746998711885597641471300979449724546343252011890855953415063736084819482110926696232992602589008094017894066758103569166706987894899106840409574652483781026684438569138834340729255494987567158477907866735109100128780961984350104151369086396899948338965122823841914266391453234849672797582374023707121054714172590245065946583836270680181473851052098975551279560147890642347538336804608127773771361824616097773818707728419598018933429877307665869735498666596275994401864793230182267638247245774255651370956803051165322546323813203358414037663099723148682236226404189585178067401291259994790831487411959130445405737820003004456130652854501998749725470882224776920228260883968622435532923152583254350127569868754146661294120717020567719677064184979593979073050777948130121665977726403483848093938227624223081268563557074085971442372602330504533248289103435681060358179947756758077840251718996056020821423130200342820402191686417652477434818905671821493973696435565277511805273724367270970832350577756751577115191433868400467681643554823702999562966637305421154966333135231802677117855876640826200541226569192390415382278936997880673398383758343247986626462077871118853825216416775993801822023222930534639729302478324819680424411252229478424126720105227054201250024165208105446219253666143219432329541288076314955245915908802307736883458439778889665606397323432270189754520555731055179830625034010540745519593884071178684609149428219425380288047279342288691244304207801559803043440017444352374571294288235033976513539767152782023708153612609808715408826089641111408659025886329093213797059929270905559618076485869214312106444604282484376717310545236732383211646324149028550747501661216423781206695385447784946295601289017709408981084282288619892444634726793349422853824384011011284227665769001760382251440447227956839681856226677998733658755895340918378310703531193540581002681032386353779471288437415639867950066771837996411444166967592592366825445604824195776336572713391759866369535075995001455468214236828839557778665151589824201111909288791215285846839384591315844783168295963226278955669299721014645119412194690224087548182858359591832831560402265597590024843041046852913050967414109889249457546324022842129630249474250570038884422086961049586743441561639021178402466969468732387690163384054098519409477488802343997213365998598961474463571366687624449406596291100938524103273050297131496971208473649557739246013756457751616292137329220088139182568246782960422860060333898624736166730306229934543424317121751503307254793044507447805045554713246508910766491857925324754357169201320624035147291473373975920613596251160104456669662998916480574540850788745343694714594745457906935965893532814301285497650904438298414593356674091655487881946903138349778134399300022992877523611186607893918206539449539940105281812574855688429896666874883334364358157492116850716097676949307396121486909677177335773802655526819495309666716393689287250200389717107775361751108277222256248745591071425080804435924729412097365016576249119835787180554961928434480402806968572895447687786482392963525266976887464490034367500888833367042585690792908621922953917994331010432419067732809790355818101867902034834440473202509091716364229014528648859772625593014902813836285404368275759216387095987748577336769600707727949921640509277219887397211205579966564768267261051368785918412915596441969633448096389461078738471813053915534266017214847268401110647592790868086933777840063423311430503911853097301120846184540817371152643212472737349624793284763282166332788890886069907570153170026236670259702236863537894589748089211806421123198238583711033875164580293930779320818664116130533709124023330961029904745402711696857972083521016343680733297371974996198781878846552196033741919963619882126582350939310648047670998346487685784538531066798942351556228602156240442382929349787387696668051687764735577864069593096560568625240751746864292216475640463314234516472769041034797519219545680231749468784188574508474098313911015664188905780540991232788377327281246399058329718054640458554538220260425564353445738713787751852721486530938264883345932132561948813736331920852929147745813034105173423208251513183967988186943563109304658435595054520709372051243198821400072527773453532493243472233875907631938873540165682252355047893198253323011533384865750748305957187953820513354931209580860587195429222835760880745660317467481864737144433149437864562787375013467993532842634890153763217861927492832781048341315335425446491555759592338570329318526286665117916679887489150369788525442064120563164711020344840828606099255588522866681489005432021345923255330311527343667145285029296909401090399667545886405510384877955296935934440344537975947135687168620811643940124223751638171773842743512875793957615736060827849520095570506677940509475222604495999400756429721441034804620484588592529356571788177773972166373291403587272848746146613353327409066350765322419216443359997612614653463589184244161488148596800134174316144565104140258079001253698110449623549808334063397891345907888128203690073858919281058241184611430905220983821042432838815655225983660553371795953690968790000815788077010029047691441605078905389388092936012963189064115252734492090050620811389049269167416573625579225513285852221422154872797449408417807505947792974735103466154364977105756098624094155098924125880666117300521947556218340947434663718122726587913701780006860242704685952992648846310676696775434682532629173614339868524103164905065716519127086161118763269538001964848350434004438065239579647404838340202354448810094181694596784896065277392423966302677427310607524504397506532076468830808149971580553656677581006351239108837012273470957258791863580862117024894196356366140801087182094105520689347778579548489358426203309018844012697443207052003001251960478084207474655752568832672918514864114526693358838297063440428398596667196421252519283337503708910794333246886022630243336522638982865605219959449921561025988528029559396407134002661583458394639727616079985232609793421501618353637554212438126789610852072994875393330557497415068082347955183341332287268252233851324194270730975926407249408273588409131679428474313048516544777519606796021479738544337055705953471303548251514258660668731203309094951122810765146750252126461941360038371323399527678908078406578008771028604558517206572085719412618561635604282366854984110721458026107153216307097267593041288668721043804518716407769038861154174673880789628587625724528154903654826346752163969115557140031256449397036544734938203396730503192679395146435070596891313009323826808884509410606823237148199379056137072127688564829484951981100731878401666056566055445776719003857348638354474669853388252519055386930097497057269530781340499959077503794689577826900442265105727663797415452094850866038959768543826479640185018957841540006971185932469980040587144993421313996654943989055857951108499626616053357718479717968220318998468434278790456391940172412702205888790063254302078952592138288236748296242421351110076219187258603607188340664350349172958693097466310584720183971892725750061143685380285897147267323408967280073388011707981126702349125809353991996230711742146110275343817323043060222136371395109862822799010350764493425982371094302335968567842171421454272675462411664086461695207491572083789157275524555969367314606911260706038372638777356767131302496451711691648949647537101170083863279973594707165996326846317968188681323265813812262288148619249455616322211192873848786246682200518659499106544217497566807368806474272990858919227401931397423102155529746022786534898324507138528668259423555085858023624182978639671831406693662768723405281280333575758603588768301637785217159714684067709238644387548314685166350841099182834467498902727725550841915872356516329612152983562172551506221579411035970089378970560339935039747081984111459123704268870952869335771830520348384109493570575999960158695398366520077550373653041383536964277677165800308085077014429534841366685216062198440538349143209661801102909971531605555192497337431224611644147944505608267993780983568034091912866563458296133621096667234399184271354086924434529244135717854454221240338143770531396795419078250509560249196274608647439844150451401825903900516535392274462154393015571883734765454396028838088065618319228006678440735032495282823802995197181905466567343675005320765254133274051836593177367582307459735174286720069725549171840512524045779741981771662582097932102619478421496658861703781091870501218256158890651263473773109316508802248276904345038539107754198498620188077773186629671953395601755364139316261333954906994943099081829789935325188303840135433086097561297715644484955495203873806483598806443669466403668617536100318254224256090781790648490542903192279365945417144735942047735072036600040828242160762473204430601397625393305542106132703234215305742302865740467704541397631963670417258575969486615956355740025676792657889889136022288836905148864041981840932684297326106531716516460173952836910931894965226543487932807047894574271956638665580492942497175942437897854973474033670195717933231175718071812621825104123012869396889584065742988188270427689467699280108629237513395390949153364965392939118228584093734629352024346332678004694838112922296547333860699790986203268285829813896529301292578843357217431754841382322947724681813205641206345466921175559335347614483147513195969208121393678550939850290449266914138440846103782900338663422070061392427433256707533089694702575012303329418466538978932001645720338317619843096879385152574420187602045053347390272506534721590036295672922093887402870664606424613119082466260020741225692012438564710043826608878437175501034629931668766854716115735160208254189575467352120847748621973372004551204601627020360314270591371343467568307881674884912604389087939380005104966428557544527307361950228598253395022552006912098919890032734824509647685783662185526476850024447260945900169439776850705475131804858483520776892188989728100496111152686750985259524174004705080604888070488483278324831097663132825401350173598311611965161142682453349434460858261260932882434459782393312006050914191574087648177567401201101657740165219069138598454779939790229277852332487125295182656238298515756994705424158576760684120769250425768549994920714758335413038597599065547100157647117465189958011154855514164736746246997389150070935516808903629676563221089630281110017403350697892160636003110072911869900383757816425057991834301450152481415735681800124220473886435839372353428127954646755208085620596936298416816791481151857228821340170390975156278836778993883263864465282784166364439840835168646438004886343274879725980349824103623890738063010591127237542004662255747980709505382826106872954297680114318547161831028846461034574391426609043516568970366626679590696065128572612656193543260958269080748668925784995286944815588376672725980039066623551242637057155291454990159810778130300738327035819509817281101873241565483368961240780174232663558529352309628251596729636506679130016726889353025980243456052494662560067399655977596418580223531902795144276212320036267018959239960356933711147030042397713651867186031935532221812864956350479658269239061392085018457204888496544598325546089894093089364371987265249207481152292760529400541629408762529226664263017824677336614109778039822223660793819085580126226391713437966298676100313137734431920325592970349414231898626278740268528454888337498247498101439121531691863628478954119495284772085608783784613361394755846883593538641551946894293250587048313412880024250583471794739765942449659413728163280654929678000240917394500009577177216011627047070418387157578559485647602895469916683864736467702195203229387779552627766227449678638938307675741680562407247206006229653665389038124857889209790669665522328285964205371983904830127689766248843295706405257537016194957886744198260804108913123725117744989757119045847740265512597013878030703491479373636231985075320045161933624944246242081509450372733063862719419558366523735578111635986182094857825284121415338283604831922618577963596045748697753928299508795482813475316657563038764724489504442318864993336234770969590865484369509637015117404546117219415367295570861797189243027662750264797899817099966774127690803039478811635384570270200847045560443621257971606967244033571283255447129142227195766474319028891906239490305416677882870039281220591109935767725625576046334722602751982483992855375109598921765776192640051055373713853452093198676480415439038223337826913058806166371760308889920550782144098080557165267114921467844920328166902478150071025996791094442115616452389207062942551455732859522355943030456729958669781889401422891844046197744025791509094683210220771403540589041008472639507893142934776718027655000972459042877917793521101716383133809222251228395691834288957033839774020266816924120767463027705112839843227040746333639132415009498630409708009494874549207576968840551152565214073620616629731876918016279477003988072437177008271268789690168947274377882057857238130861147185429413207413010383503027682797806103352573892801742147930048503892168844301990746069016987611262314117029004108845313079198758668415079261120269025494448007353033827458474027998392775656158442082505509237956734232197407569872109522981791408792017233800683771930856537859623402691413955450651150346562082168902743928780783153461318219481995980147658224985094616446474445741560061268486238047216552673242346598948142023173614809039519229678604336116970245377718407019723115804718620277391519846750795580289741338945361415874385148688234898071425002813123545239598650569418928535426015726145606503200077029106784116800099902212202717436777886983265675385184976422408034136536242513177766235484873851744601286455566455617105500128676997205417847626677652389326494284353973670559768283687540395295898510778279858269458656334467854786120136184874698990558063864332265910781929885170501869540091005775905030050664615966243459480704503898766738379821560166916926753560800278205210796231380512118877847300716802782828325507855642300644465976807854763050397395445052434073896394552327230236667410713833239346648965576855376607091416814371517368250856257293145348886843016418924983158603849040839675820358162103644294708005075282018945278600290016149833731496933441556568624256448971476838877124044975510892625173978383752251230165375551130089945676908981123427780134675713278362590733957035450312468193227217116491680054869627209897550307859660431130017225532550180131544057999885531486887717712055235611442070516714236283008877887996938676853422983691974428098561122335180890207887561844829413883969652535265870900530718572838488501880407466092778878802949828808317484688327789415678063386390487887207378865241444145013297136215876424614109944602775119188759608141638195973486217252621881784817443583042580259365522088358474738174112654949832776391184538558770476830908137392704759418306376161928009037135625050228326205994134942801408023731614260150751881664638388285070497716802210787563568170238984719693163940017717587023355863250266872077440783996271976397774468121238347871221107296736233427849458892604422956104389809973058941152116188913235515833746541481274768904181271855546125254457915507523816241571676173198041058215954142066332971706771468994785622388636495310536701051097447013146225984365743728027806413838418984638854647948003409761754621424120462971227535923432406901998188947742026328996514998806858924665791319343450585037821466330592307250574483498523604108903600789206525238977956647936391234293267613287689135809188548248137633760634128057945181359169903329279621194390408649810594357231149124146538915361562526338480217528859001271855655962546140496508918830184638954841821533409571325466051810517635345287039896213509579608940845304565656501465542951250155763089485167797724693554575394934045525701714271544400706486711597036151299879544348629213472563051558786783819432480356919751868670655817952382986226116635723479664799847173463740306504605884063059423600978479086677100504665383133687428982083193528661473346825766895069876622001525477220500723265840996723232648525232093386240639070171127382225744122736030350429614729988201262524172651131510563563343956103045432669349957522561660652597102862202091298215894508531266763693515992443351798010125105302238847513733745483760924241605242017765481013359830052551934036839082162134726697341456266789753080350825349333476091088834492367010880111925050093270653824254288094785670910698281054484753691344996738516543496559691971109068914277725156726943392543976125419272473287841657182884941804001781553513146095337611475903007657073380974787295140493303521680594987252031506871979827142117639141883695043131472433109988309959012535071000169001296346881037641652002235099990331047811856065042118714644534132341770850135216494146579537488197333513776671948568008673883937756186120785845885028872319354115946646851625733564619117961396747207234625558445893548103079776795115891891442698702601619231455083744982101267861381221542749771510816051226907242862459560286813318401669549808224678085806378387557439378148853809162767018415579900512187863224445726629666405551469854222847916313390485617744850763755872042250810968660007242212551941390235297681716875814656866883592800438009998921325697363981085022030093362274309684703957839593578296340295748410186693892954037633084045886283194393450285907679157873371968084732013195790279855141819441379927201658079705167837624016508805319322658633792956227376490243376314068861491292485459909363014201521691924658892345268087524319850094877133356461715896385816344586794009310973941356673587244694307437558155224918226635118799913246087927976622982690977751957549202071560119088468060718790097549747833223169792934928758218246591216273481683449148157702987405806348486680220237894541819029191201098456842358137711216810642520111257136092333331191577815278649812922459393538895139975540241142993501909679045249441555234192647000681349345585275899931081095760210263454614431497309454931064435054163246009804708881643518976271865828444520429407685304547305593851260729634413550060257750714906055814081212028724163832572964415334417846582970586635566740306270803007053672305906498369526451503128640828865440530824355760289318808980052659144252329871710417676775584589881361071667752111405497033711190287257272788478684006955313512763768142866468315851527550730079537974999595862308079876336607811874360964473821811227310674537830711005126858525120895328797554920971233879241471622418632909663044198154698579028944074269094274536531033446377017067686063559596480594015584596775822771535827159505846320491968052449727812553917216775183871980148509010992921620315603061066603805310692568469537499069441811499598059661004539547858946193613315499896273298592749287782521234844793626444087574295685844678415023961067502878621121621724488335108321556507259212361924513717231569579083866248132062733038039818674261860138833061490458223972765949817873120855377616033146545641517792878685959055070926958452880399739290821351104979247036149444309392277397851819297281925030299363895582159457490432699341004297663639704655991580955206997205933861608666428495859226727396230706675284562382908455150543838510020142093792052063904490532282233978569157586685737509794744290655307850095558130969425057787205310443718278442327801805994450320021858089385449291702026104831083713138442930445834099634855177141107194701090230674432005752855361932179400651167884469318286367944431450806580501860654470733627596245283569022078594133349364180818326365852354969715785149108098667799496305162574730947610411821389650937419204999198301808306549707829886834800029823970713848630619812775638335855026302581136513473246604140638214969413083100806416298221233689435733761556610217979361657360921703529552656377677034286389826090274796681593549943577335238386187455409753609023680966852897174921558605762609486254114177719724383187664329583831918513655700732321416592132593338345657951327401906456122483640851182490992701493223817739704479417111057106977033894152748126896304848226902666675916111888210978191299614326227540765096697193743159271263599531669334303438771074257616231109257579750320229829493591063935157414410868947319182984079556410877533973013027941667167369434372793353220400002643693661490588012607378617152353192960880948929879926626012939070411964361486899605777718022672346247161975305609416959622792159018798739701164107308594653955436464241101096761065731916444180072738588286067733865756950582542378797738278049835615143041676172659144993350933205786619991717090261220172508605593975784887162736283239270556505992031644138830114306794958816828594502296621906979718610705362510529195474996508734670879046350132387745177753894071857237093732855499545745185005726286897952907125144297146792567445943065430422131281975741884802744573974276981292505715936899244254071333989849281139276471432833997416341437926623007882379134048827746601175632550523933699710381870920805770770004735350526471227755390011567460057426173095102715502872989611691403407372661307129323168739229991343714724228241126437054962207257809434614979026458285937833004576337764072711506107067692948625543166673229990851480849605006689848034868009291556641140070078752409490387620032639382020973976420653619052136755803738176704008690947003692821806232158544413348816570617978833042105332815100097986317559224050538776706949633355505761087195018838589714132845691164432522828126689090232871727782734291649584189682193529345539756377933111582598624154707006970088511414440675445902775004108728874691787100357777770384677640128304577831927526296649630107754166365203741085580317747077988252126226284821559990608848771335594114284713493785260561856845918115154726087855032668174149463983991742851182825280903982128071080690104884321819590381300532755901235724267991533862253880452766888220286181461517271458132862536621838964726139039173215383943918781264729804681731298351255981859925624389678395845249929333907728167572414297488404982213372089282677622878104359647774185035361961023911165060952090788999198242740890190600697850448600105703005807069193629652469853413183254889827352574295081195974687258843787167444933141168937636485230686493523829683345454779463915128602168772888953107491399643426666447649117151491406875220873931534165147007773461336020498138708585009163565036158958297780039047970295518165912905274439794409099580930707496539296538088148634244629764337319146254738707061266521367707686368958693754906693779813025769419970735195534759941881119467615711841615976612221967737078331528426313962107152366204700693129912115731160588733659805078094733841701451481676723563076633483042680103260301853305841860177483607749310528056020936702410393713135508310622515726694143660578113327912107992423374501958866391944594470106221109926406641974034993547313380470907820398876207984099934333047279922339957686240101075573095568958200373180109853697030986727227271095973052789381188541326552314560342426427412714064612120742995677088333783070129303456573608542003209968710570651111688118591167441381814128768483405805519830421976496873277608816694168781367241018838776580375122824671942927652566175459760014171701440716510207330923772844124325974417144044570514405735848146226429615696823866873017607473500763210856463937192929225287744284131670565205453315845676642484694509056449352793083835690530924669396402250763450399818294463150844256854995140027863227253526386040179125439207735940014794536748279223798595354000684879525508845860341883380581522206387659138285787478658246316239287841083501568676024432369275758079297550749278612999271677653675521404359717789931790105671665051683197615084949851331641706893036242360534072392978741579558077940388655834478542868254052477511706104160880468792990935842993216790140128359330043482030831625466366107593327428202899253006148445908630531738151765895968594193039358019489989409148151437182960000347790393568274142495257029207614664054960125987761782532695974764255150778464798057847852989522559087011677860755893009076318191358945206646598916644953545221147925117723819783796942814677707879520521128014181063207697249556440181750236727918116299699892951807761622878483503003991069995032428128388152519528303862597317263665242400372965152896950516251878572590501923681494770422126849638300519102791660740397023544393859854910746115583928267156418038072425272345044029777466827489752324457669303095558928975772374720151823813697306364165029681352099369597129171488446707991591802747879105257482144573942476340044132976288943057505281522352215372809976658575048726447094748840922594965701561333778181916865606699320030033012410414131049333053345938186602074514279473040882108225879983520685831192540910045800763518989130408978439585592415601181983722533618609276727659583992148242928700531139534882546830155099432105465700686438472165888318129591045214423758579999643989352006806641820823631056981996371821547384596020440490281952312977852663080586769475401129377968621129295559865044535714596505722537835257380334494887041395752928754960848083499833738742711036809128216138347107988226500672813856987251303068088193316670384111127845892533501760506935291879904419008035972886822336362719963666617088826702434778957185093026942371234817044322266858753028002071106554316348795706718892844764764368196456534388569876823194372690351534215558323750076229903019545992960767312204356225945602812425776953032301160880031360632252396340010332506632302875090068299190132036468998839749001104002935607356773872384602304726649627890802022900470421173565728324384727616420388464771992018844967581978668903157181186807451499479460431119784163152486290564232831076324001929851854568553114415369375206081368174203306464546044454329634392754615451192427376305835252578578856941272269914145342484197814227290823240867329396171119614570470664182169162266240840197739876327029115502094506015735256725398681779997887873441906088296766387529727052715186784115779913273527042750267392639409834164555490151881869123545320813441454489082710599220705157466386644442716343978436169878518971744790862781641176928066230585782324596782562042699807823899105370970055639987225884745158026981379070852973893034952491180269354906729041508304515954633606827342022641045213484268592798495070893293959453177702566689348813365973310638493946441747841773760628558055421158484690880512443005492628010854298126052023814561221015799099485270679506067050453016443934377761545790588639725019882078557380406776924586190077670716642203901027492170999936018929013401558032083375020881428678004636000959705521077087044584984724327511510335012097099603840266296869685525053313287912336667839588762733261587122809429636843394598078008044799965617553416592872641735159072037836797870132535718696017723684550170559353598504367010513480883928596012855204734551046344995835237019703384385587238915447589886977274290166695338677311233760030610056273092716571576470738989442955212320231154740040182195449575719113407142339426949170542456839095779780268832391122459864554595556842320906568036171344819542718992093209406553630516557692108415765491177400262855576709371955892136858312344650281235399467671389226530334315350033043470768730888422423754014068016929610371499885908171835143103931455464570450536151766944165239692235495641402542213449618970810567009122575515930730255690605964126462441324699148550291342264235024045507774792801451798262707403866446541737722281730041649395239791247033789013513616709281614450311032398622118779160283480074834342130682718531475355442243127003032609149484753460598635487047982667853928497459017377818574836819410946479608272131344708611546378020643552723826822432035710289386898515434626047263547030854667597790633318302380694246980463612110265206565340851410986046838089087002704528764195677645025580174645728375917666041331997586285734912542454638006073127196628880989801021142501497944274974560339801661706242709717952410146277133344701976129106696474687232220664460445942277399302976623997093323947083926467128217673228497779795271492228809040521828485651634931902003643357952190026273918925549452660772216239498247158505592197713494096424277177336218320444992524806422089543704367875957367555368837465140852419616190445647765710707301498161603223001611060144841847030403094658525053315395694118940272131765073317893613574617098185099546891041397013433026640688464510895683137527798092096696942636078208453426131871398638733280520181080527408877167164469802611750667635027456018272044527217592263636756217018522975359202856102361473130325154183095456792430024581758620632042909076709120685861730780964858085108072004432090350065955643822868420559235297041521252528757859593293660577776097329804385468263915256363387352169286073912928313226817767097135182951346115307728287813790673367335933606707098169487916479477367653923286100144218265364093066097049602889131205535927615037378111128953958747454004831187361470444158082483075750358960556790161218848313177740232169547255389561867330234746230551208188153539504863815561544568146006330900599027607169509018861813941237438949848233386233545039183123966022981485000051199765477626611702184032628933645005129547646009136679091733412438381007476905906068426351307214534429896605739064405063182925216925104089405132233995974159465974921058775004036861740623668506441375673495841117779667535291879451262441349833555407005074530155205760514981864175701139620565688600356173696265159326263267866813838782462938884147103267669844404984757328772145513684742861313791682060419760602149977263150094863813095060673804002586513147050923727709238981073239885397986377854631819795983559411119445516097125187336625858734897517381883063116601883370828883168006993820723305906962087585910555626522717426986494589877030033903783474265504489532321358706861125621166025188768724393954412246327375589393589322807136727282975699970807956467215812729378360227102618029914009921260953293686756679692558740714129393722291728389738759576278875764349762041679856478193121543877206987223637582148585293930891501750685103704153717688624764895765190637572210028656057077340259318457282356788756596281764182096774029059362558545687290215831262053464764016508747107641052230292754034717717742506773848454930005547127740961913838342438726984318400179360105760417567686450958034272209639948235433585983961882318261490660848323783205261531134111798071937611685047884037327099161387902599963341813509647432558585995365145957307948608583580601751774064732467972366697193517070153909460676297238279450738535322361425577995577760000400131245350390239882867498659530390952636624269628604458695644509550806385592879782481098791443841881565638184395101900974153017645064691125782219560185635174474565097118340851333057412606104563202562767047848547113928562275120077701672987235120746709186203910604108866069150409967715156286153490156542745002185423007863507198982865559480310142261717240696442163826504548900729348384953188221043618004159981412034773722804035288755552615010167189999745659819649718983785480534285409328782398768262811662292099477988198794413831612846845202430725153523648515532447529226055016858516292310662758401609951558398224632222755442030697345590934077671686254710235980563056909002214569604774166663342639701688088332820940131395620808488104868413928213413689702266515550624734621862658903425017744195079369751019749983691856983588244347333244847947267836910521953771508454857096288955718935417566551972621397752787268738395953891993355137954411186737166181344639287831129296061471953903592239111441140235639534876890999315867006175212835182499747087681969756214050275763380194951427293526732148093840951704620760195432170615415924021978382238920476633679951746235855345421342342354746990587658402219980634333429940956511134037908114708974100372225888024252425701567086222828704516515367899279627259294669909414557751488834881702298284020190088326239838343591190079345592121563918142219765341823913345885085285391249363664249537437583057578115943030603400992402519062941438844346782274088301366064462083782235807090314288796489929394036041173702165413323921619784468179706331888146797383900754103179044711951516038318624532839510727154660895270992874399359211820691358923462933369877392376346911509259609277265916352064670829552837006597447124813867981061771083301570950117001393924895139031277378788970413007338446638902833457630885790876429437481780563725677378876572874235860232938956711537814606139269087692105723467538104699347729614645736557633924627978541202150438101007286399968747021688136471949191893902263697157601671157260957900804585444678132979842735350494533295296355629539005297291292878765852690510348600835526080458516042668947265752279510167063633391463131350026543868071480572644374311155100277881413740179243971691429112305284004937273051966178112301668151733911582223413951628038043907175089453924511564807285550707808232241900300948205579441213692555686213547867315352908430803694220435672490763355738788195405844531215560589164848977565501142972112511401822843034689747288725225721805705095685587936059265842503238490244284807604419614492689248759466645098414270200023956478353127373997154266366864490064217957093204043547417614240672080955684810449206077607349625625530419147481756025115488985474867727549842140899396072877883664774051378400203434350486520961132778483439789093896964367340242153002960734756290318316922181513453332313242560545923351721984113228745906199725182225668514215643473870295430556820296429289029095941241574976646987109498868874310401017251705965654341587945247265779840101446745275481712420735612893202820211661575781375123170834842530249079670555120744527065902782182757522262750114395406158529547379722730191949149848921092014161846829119278266018383786280068295519459623073639370993933624011705731285263065325918580841459287951174706018952953214576197788843077736491937270659385023555190720188478831560030282730460667897470064102562544432461317643167210197897972021000349108799932538353296904372621559206375795710419891029150207469580822883896932335182251807819593444041404209129438210931680687916670462796126127098238904297256954388725712245747070681483661708129291517661000356339447135576753265536179202995533781238264142095401945995595186706170215741056981832980722697352395591021170036395095571774674480312408430609093688289100709775844380690666198488547809523718650416472579390424855258677130980764356699046266033305676081522879326002966963120792804321043589633999432084038952487651339313141969815392123117782312575973286365253619233571930755251490315447072029357648285584586146093646238702473527038820382399959544538692640273356719164992022538444588913159103500459145607532963348562531740100698431395256043262077642202488537391983376130943889713069374061608748305493506108000234341645388564540158452967493740348615877842084393746112050339688376092197264142362250940712821364802316765854652679862269951178906886481320022950977870634894266442649453228687730349688442558901337007487462789324088290591501517759194976300846960868820209016068519047586358892688871859729159677901438118480336271065334924294840860145238010125715361536514352447798249150560716355729033134445012742996522325790220195495983489627734298814721080619759424380455399609715889803475885409777168064945364485131252333956627594957256497064796135659916095161530261579797728060553870561097909113904009669007660834095893377799249920561342435026832059730300786408667109505209537451126764477995203505234173972035175452450267228579855206237794134864341715656750552939027821973734571912002898228207052003589125659484964935380947428705177891173017705199540367679785196918608180692506254313546804095801491551077909165929136763113571002102537673783098938926280341030834054716586193659339780792782942960305032839828684407146111093754164970329550023516295899525090305175442569425061803141922598074926669045842749273030777286216860509519295062740641576536184770436158817334498742644938078620203522293296367344425017780764913520252817872769043961983491580178721650757297995440392723277624170669232279406632669489700848672102400810908683858928168116954741649404945284619125535687305416723192408437510179503803411856964382857465059073798909667192364996194406963414703412877498644127957098249302767074179630637173851858457653420216101524735353438145122891479366745660340733567642168919252401860310420881816816081763494113845562048017833217990476496409983121458866089599023638606305176036080118543247584040316087045013139726035613828121520686426603502782775233180830486956653755520796382867066010466799805381743449279392690583405328192733839272333316564527408131535568291009632476399616261379697047334283187219215067777047557638996788996506203413278289014934438550043408637898082895212476269920117511942445627580775114761380285712269839418636286909516026924441432045850449154574702059538562128681357364114804149777969535626768722870986501435703542881266967816215719246817737641650584929662269667364673337012969571441910112304162233892249244329338818874689844184631236593219977015461708185191214107103407546133471700284048267522633021923945488073246556902454607167321565875633854471689465995409039352617956581315772951219412695771043515190073006207887320890387936109841787623296116076167276848785686517787208046567351353561572657761896589667766298823140588687228341719741452356825776094722412388920382980764213336945011030672234466117233409764246182903472619364098979617659997116375091532645181371450778743749586692165035091611636308239328240411818869945318662268461713684103116819310031360609220775468441243917758474567547972552102959695170837306066140800045047518592200619563814154148064302231734926248079391691788037800834034743486620034921849490846968997987626943412385694919750745186456722869543883852866134949056274518931010157719766623861306799575579826607488864413200877516557766091450031809617566221859538977656224146497199284268292759548029734505921721243157082421701610121777507639162401899207371894054017027340198516044551992090799368929399374649513378785622734169251314267075731552306574128403988530333095029422326120270851104112068666697843685960025369544266486948126310668950755571164149317801386975630228121400797754316647472474839584644342581515858038794353395979139746456431386766214805163632708599402799407876389587399063990565622800607209652765168852842224035816701531601141427334862700791901332290042242373591154173852558728171048961024788883750975469610385115014683488461103810006773047271411755770027364276099390799940853705137247914073654927507029694258126759756507445525602642661098258571155196147112613463960647461349093822960499472146355703735480852173900136501602658606945993628565403363943496931751040876945689783178161507602362367129971346026804827671957154042367378281010189611496734342204582308394829672941645937280709278701151152272266950396461099839668831859692147928918755129812535844938079618515335179782335476024633994544447701137788836031690910436237450020281890318003069688329128561091020840022351455971656191385713352999609297645353699986703382800438639162269268099363016606529692848541502360078749923593415627459364545459376357272780974175819412548970592074434484636754709692962319888112302735286446946523841296787496322168036558013298693361995327309737949312630727197496461003136148931906042234590522816203801460240536385404390713900099754424303746755473712757500097224211478325699912309102429149921358707148766202735794204725075057214408539417339099415032380544864487918882818419340809510151312576407057939319548437837473359481793318885809587041974140479859282520553849717209952145487671023430821262449642789905794586057928652283984635147104579661614788711227218605182594311968853032863957100874102824729343963861355708240952439827771011838505408469965551667657214902941691064039143441360050245787502330449073685865183449736190478494561056880304478779637111775084179793044538082937856062226846556204306786222428095715584660744697862074702446794468869906164359056713108362327228017555554410156800435484961414134612089566731447065107176420195700627879444162551130698910179546092716965460234860755438990698081226567713333222192462471322345270038055943589476600703332916422188876991300062496562949844749949463868959363501740580071768057222151186055378242511177111046392786061395341518658944998766638690808842322284548671395333471004020190052441060242313573295711404480563092269977161940574930767167137807789480220161424136648026642704116189619112855570050883469516939832186387370274820747828329654170312749437035737611523206764211577488449281490349731101905763846302331493895883526977040566505628067658804744297893889960750319972595459421904221317557006911072433652381727778145939448777950596741065777433063893878315756625269097058718175618699100352491487732303815710232760710023733411093996435812796786945221450745857551912230491344975878212924016358572836952706109704569837045825771112711936914788039006134776995212024136056432055846586711229965838113229377915867555301154498824892568648035914548777216979682159172307759092018911489747817427661558985000117554802014406250666390210223714765808590880676614326314513968721785776083070112533672634627778300000082208924963479642788135058199354778075276537159523647945715304415431941621760469165265349730935244602750789700821332509438854102298639376705953402639999031054962391905331338078177502801571036713713597158800546716034006945412350665106032599205751708779951545040100985770371773181618980942157688289966063932024692195235511912539157976649473850431910848094837555912910363042816401589509596483703320576835169900389054989095804955361548139248266645361671951554531117469895106275140665089034152937003264975649726083024147013398631374655757995901505959017441452378531348429999136599515505977152131457649130432711816752490241384183647758656017756075771282086127984829142344511009993104656951655911986134034119256919972846956324982186777475024581242495607041082938814314887337533463806465641038251933739982944437746108033772134481307346745312329694275277209161153151598306359180922938589275541038324223022202568961779500978673290669248362775333042197930062598852841359763187312603298654476423985936198055437142671153227008737431083395937061715545377630148391492093563402073414506533023788878777075120845467661145188683381505648144045225975898908000050522705961706157079911684582864800510920994050073477434087333702902950034342530783409409408703206785282883523122111708082034486193016329928480676495666207393598901059024486338904014712161873651341798970600093121444381741864242769943539612708982290038803012821383882656623224001868747200052522155138117433112460815454174266517466895742433986971388523112975014978073567963694052858213087725418243310196012200407960680923905257111712053874689495195391903641464806602681356528267819811211307983076230182492434358519364943726748885417486744274699630405570345338228712619954401991218126247405924710903985746207504746210679717680230883686114705418918335234812605051748000534456975632638788900711625808788141558991057500281547138897530728850527592389775804911113669618737291082583922024855437460394436371363843762603500467301429518533984988713526584324151318467723963755614727884490304161027123453243839913175611073590128038455263213578401503064913659803434963709694598669577845910876949207647453095943898365711984406038259751507432212908521962079735350277499462062778073842116336170929869596917982257929601880298546542479363788362944297101611490419255523349008197408261803395521907597398379868194124543199500300064024408181927872572585835877067993843982530568748151057353428477283126154582660801372918495966373819032814775972210796661475931511031110885837384294407911261201033813425130480071108298480523776133367411353046841155666558141720679792508504673705871297332605728299568558766562891108204394964325578020724217830396536305393365591109728840087475344852782724883184196758609696346560205830127835371714894878662919470155403116118562725581696029871230434170587322733114671103307983782336717057262745688080812578198211131007542875079167540500890266444291742463964186639994677751990831015069470857839729468531327366964904626864252785750685518380082581481791109536500554931784363161588518510608729045230175503979000217009378297367796221299439497538481352515822532225837618970706114001425737789858473449265843518856940334601508146127929894732059294012097964089663044095155679915418819915331294030249497727141452030344794047422879644323060660009346588230476179086749213073066927704501702383770748587163713504374207181418737340992517605019881365784849370660214986266384007809357274332619133657646430535513453960903412118713223337864827121434073613916999415783695822744623791080211451688878453144429722227553964159754717517532753291750865641361085000143158801592913728253541429466348371881652012057392937478682853048240836034983164137835506616161452884980874663363328040082756896422858251248032458539458907568385629621236771090227009339151722882506040895254636379109469364375059970889850876141424108527412041024484270270924469168335506287198270038362686012582143666233201154867833031346680749475090927036596821082796553387032840922445105933464828725091458916659930836882317548852605507199556220306943558839704184548410564998351278181325917986620558118437532705923623485937361791577185925049031972687708172031502209464896641666215382035750075201933003418019487229123961293127994351322422596391837875094103671798625661501577165406410851096788570835820566068402571764013023038539060492929209890099085482995785710337535643871997566816948356743982964950864389982178690366920257058759759206451319415591861953272703538004039423430727548915858999658212976423110870054818673416789021706665806508810568255022823400195542998826790325566465841233907264681855014792448071342560719666265290545785036156656372177702638285774321869692901865329434677989516221461318824234451757902697741163349845319140418413027029020492684479731456400642024938615518459931413606109643300923881667838409560558359768730489205780730673249952479742553650156829295508086694406252013509439116644641385892394007535991404317382551486564230909558572189281705124498828680631940086952073020218649087245675190617274754106567616229565344513241813054479832020652347978881644651517171252732847082757389280748456868390308858261598115211752918697523212851957097084985440872692515834319453846603000549431433922129450270683254002719406793619758194514584967356777232517355707369873737081594518562193852747784046203792347237020575835300685147955353775940300683352876450609421648484777015049838512149986777642375115055299889193911252332334688855036899727198266193888291819261597917195334364439151186983203552444822898512733535444345631926003968767276643234758717081296279717922305343869651359952536903838262705399369118386983978424509839139655527179189007619013549283887532917615502108602782207033233680190179142277006662725075802000909400947683102451968200174307731371703387310473470514743683947532315012078691065971925230232107044989847655668076492757375385169439476142092010640574058333245863397700430587993627514306166590396335407546820064429201634689437354460464899336152741165775509664527875125442909621948510876650944854594625975943776775129338295315668402999280352462086759648822373956438255121072563981134850768857214234177388143207930784936747462187552590016115078440939959809044383568854642701381378178554376460374918740005804385337700275650921330250471763976198257444290004342547484056948750653800089109216062057048439181528819500274181316657653957485409349933597908599910880169225271562206430177873503155995388776359804128140395615395202153210576503378997886194086679814848265577139128612658025707951927066706018907247590890974112482055434161631749912116666916973149130904389067839956133340303890622893241662300474689193493120653901144474690073591923493580763230872187568267028085254111184622575979811875341435824705302278848187017312377791871351769566335011979841603546064060456136515460779695665897037489652698917206405451902434398459397775248044020945147476578851866649708913031109797724809226185943148666555967524673194792492205466235055541388210250094702200655011945450282475205233534571117627054413993713094011027490307848683551107012034517907232538356587462518500713682132516441720136110812991431622510419984006797428916227227005545925428848317740972746438386912605123077442595118768493504928897892425093603755469792841612172112997812571708468887108566981668402151327432684416232421961765136554404861533555837753615764915828959563217608464879691366004466027124896371781153472645182382005654486492302531484535708824992471659278217278426628255292409958531684420736483822330300504984672009636129416341530639958121523200319641659996786504659560332053490127087024056763915668824314522870000978475442523913905259578179122962668936097582592334093194386649816439763834913517086841924842461699982759382298793577241401998370594738722226889335852036307840280046500527612620721856664102231169825745536485458856290933676548467665673408689714947086586833855130319814988198138757805669239728692750367634973749247204484845538952823462916681587526543400146032224910660045483796963631563763375657305480616205882811342696849441054186462188229037446129797911251466459768488637121118361265563770319610688823017308759198970009747200433799904729952509554650857687289646229048759994158517247481437930013736796085376191796284198092762077026667984738561754623595804112644842404139155578570722371816264879616280380688691342547718144195461831619731319788727649954330753728996843443849332392040619529756193791739480852248641880614464871481589769238380209604884103641499309492526149876057188586455971486120344105297009577614815340180427253183102668652750159187724673230830607009748390371619116319148293005248527798449275889301165680987247299285916381156936307613778763322857449655128351562543734036430970424717782181996097430695585031565229973456439592111414694624327316570257115019329624057237446031190839969199989239763922401404396388416800605753363277386790885634140916799502831139919738337020802826120285807326923138907670036056179212904202464241007321793637376709868212733038972827669166543070810337094313898988499969726586140020506095178577926722482353108174205231485566946104072613341927124070542085631945629979084348561121674056641682976053334370544579433217174673109226498147800788385084241682062226002802199804540810256113545474650308594572610911126190521643438563041860506093239613554604721996887900048638696145184391509692550347257612844941259937604500746002007451150651776938840183453762351451897181003787623849683805237477202014685740830208863923429485233915604239416644981987170298333123071125904736369772776190611927605303610751481955231885143824505470150338310984179972830635326603340337301382097814421049167348319073174570799413733177698740016876111249329265434533302443530703101061234316248794052541258814328705627084013077349855162792319995677468544170193526415211257892295777824752876537568440755170489659534273169660755299713380886575257025657638494825816003620683987457249187789007217654679746211871869246925183869419623541331137411581579743449001127440859475361223228966803913049625401991862296768991515711364695719626723602148835667428892769831931816620381583094202390577657058105363224621682973716953903978282962781035872945437441227384362894733557615206940574329681089728095860302743722460943411063392471978099774951466255749356293675457037117768452477864894777874497455661880504357149782698475069837764438375362700248190054587564206355234249074815202540176897538751258520090405197112419380463119491374811754437272789243578771210763423066919924635200158025591341064435763043000415212924916181179323617003585848301810839230326261668132284172704102033611481007712723256240489790201540027181928185328082041252030513829701305546731960379411752404337838156303012116859093528773864569410981210919982518351522399995212913895845097714689916174150677663636093701656516659863203770343694293352505534901533222017174428624836189896424784144762661026068211223440328320293768053591551033270049178685712518961724318726521790542224600634062671361475501830946872307215944875964000135763176612302612126936546838650757588777501932361699027596352588321377392829710191372924706177166080739922992372518045253181026779098624536093417013862262539632051319844568458231465949531272084030015683948853020927120745249396348910485414255841439421332666215154812297988455294322235840932739777165826527745181609489617944452602553038487108912178899375500037874138384269206166961261441849355627418396959000479619157880023462201333319776943400145227546977511204792800438119106064305793283216185813987769534879672986746488099408091026230224806804449778816013139439805458785683093519053980213373048611379733391995757580930732801221781885967055309015986130651645634246514545620145774574297732987552508158291123409497897219755627263049856992872345687915604099195311230053971752312382034199997777221955704828139616156496046921248451186397602796511275516168280052427435700718988834389398038039450545522492149942778592587043574381344518741600259955087678105563977090739894317023299168004756481053176802606057638373916113002675259388908346300751539855357625403789930371217730163341267085955727051179082530492077652833157682292363912889496016747275138797252373446453382233055890565978159607815703599543944283359873617292759932009053604827157688714595406619417759351403373979379531916856903326804769708432336370362730918051298587131704516463502669645285486720128435660534822781859409466067773155321362866150057928612147010413506802654760635994242451371537904036945467138229846508141843583296492819609584539607983970751117842407384582667131404255197468457907518064861208622696994444488349143731993429287216865532036887111267878551065593961531227906851043632481664437352698327951511733744065566063265035758037603069751754212950727920031980981171110770066625957716286360838219375589696686179650421553297356515700161472142012761540079288042943065684330023429474151721948367483089367021806330615995013710021184059549997087372736236311261220862880996970308567717685555366969549821830187460397447040105935050172663673294721416290500754246043870337046420486446941754206174760134157710593530185370354027191240602316784380869654044864346353394114106788904249602755218095296845786710408220413052863950753838980877078613758910165152954139827819409419815113430879110469461622093523677086258759045063791221671430453532246652744893954175833716719207188415360881674714409427968801446826676599525907738777313948453558120608178588234975129318889027803065510354669371934255426662263047320256233762763147999527875238256687247952990811127817312833181558249503315536215622272991975654246250471837558783737038846597312606102644629197161466191477369560122369944621000652977071576729236302172194964188652285175203575402822434673993806904971019836168464707336363617071982917969404109367712396819145858440621360308960664315616505933996988452145852179651837061209533770765506843173232076461108404838703296477059150967306176483040360385643372343011415809634137780026204775118789950826587952464040989614198057056493811377960888716594100594911345115171990153002491682255525814849914992210415808258039718514336589292708375043329133035457763478396965368266640080923163888963456735325718517389858996427115231764349252281444641188425967176258194894916414833753060884348881543502393141414183441651027720252064467298490920290315705785053557483522690565964017999240113793487049241469759865545736695186149124395679506637534750319226079022094915139161029192339881894535006322005233269421712704089266405825143204272027803631551450427763446817386024515572318065190869877177814871573346741318428984055056074071528390146750009195172986506465577611447581156997640623476511796756054114854228438030133907513662359482436042164376997270046841469743840470651353005076504933710641096294967719093179617842418785199386227902498629631237190459893272249428438609195112273566200374194007574026462874351785975363192026621240017789901349518796653104835841773737176217708101616361935213449252594682446527018118878658458952827487742905267788098514329573219327786184807461614580753689268720241203896513854157941659136114450712624078875497550826533143806705835207003657222327718748737275287649420292303586038250845155228719555629069282029666624209948626194129338392366249640318174378149365659392127706303827872246137244007796750756458345896773505120625769995605312937311919744949798832162960651192971196113133437270904960842771571129687780333528345268154721804234230292525401364571174225324535704243926877966384749802214012617192353942253306213729864062399606826297701577644158083276662650306490963353503875451788393852968373261096613050295135305407590682738087840342676487344875171843613770134730068370163832596099742298163670255116855573376070337859845832455128661681857905105967602709940228058440798424953711442522125034083262812896788699429108262074692358070471381908756383259238185364854899656672690537287571201086905650701108530926575372530373509597316417010758225088369615811791186596053383384201420208872609792533017681640188105539508392044477048301233393493961663328967121105178915918255959657472731300400036041790713091712706192035137112484961527799838252267622319533868751946688492372353483347863613800680165968643145840999795064869747855529464866504902520539039080351480049113431497143128008077341846477985139471902045792919611367085583329780602238657155562138421965454213671597017194626286352684973161876163574491707250674694249794204803755965336845870909500831973599633705601407749387098029801917454480929497667965569294275455239661612383751469463031881490563430393068289449387706396597606994142676856994657351504153830509602766507471096815930513829876890587448184991068091952943947034706286577751565646358474078362774276928444255206030899620671124083480967476670417815482272156969968565023493226726471756341846212239965354054964103199134440307131383053017011686632565613833677857523451541249607632448770481726040872280166892198875964493682024420077641780965464726264549055952491287091126352510388417788306355034546195224083229727079472572531351395155641069201846680082320214621299838375351488708297248666645980359215302120413586839486682363112112242378537791597208069750830116771647113148065854747570405480346606518378474648753038519120962074952859401140975627847263168928485296302893159748533430055357086272038816744505316999802967371188665129761174804798194433949706170205939944641526485607492825153735299855495019867697172351325799545892407639734206292948995712829634754576710500337803134309190041044509552652079915180386704557167333670820665313325189454690160916863302237976822795333393253507444023422007078427880944807197015810635475993624657996723191765228617699345536002050697492514453458410296120948173201393021738626342263093355434508968700602880642380608455821575676329848717940107165688402989870341294362780202494595909347036470699385710771456738314961956435178293037629522614782721381050041074077601871065743665895531466859762012084768203845722148795832848662382166393943472580099402064069554958341694227910913732863049890700498183530255247711274257563981100699972996065084473885413874191686828977517509278356197951319134818171752938224261666755221521961518844234856452520791024913211916606301040597306304269122911529570647099178318222576142678844410028330513580055056640333764066547497699364263005602544837095879786038398888124289097364621107835495785725157303183020408942926399075269557738047872363774560710766269792495273840747364209357900148126842866608916709615034358425092153761425892661273256124668246293022835256565609509227870352439070388442470889052089597443703000166504200657638359420377170606430790243027411426153129361850779362217510849024239798219479633332465075270720357698681726567471543388042454887015319661052421214519563236518304435434526859300372158840865762959670645073103458421131395306823522434060714546226221962980670451062459322067121753261554314872812579967229206031177738122386004385811932035522914176113837773117725812692492749737360553993439545412782801959761680012374554173642512748483599497504695207675428643368940771442481855434154819894144714985408157897073264256276351795032614792961845851899516145015518373474152376911774904504240280152755312846453854320723489885090551475715134990284219232602116851584571796238850709224430976578012147767562974937986106100270589595801569247961413464008452911203547370548502133660502065980490508704686374234955868881597027536026650716884045322436559663127257336582924090152822167201857272740140181722932876211139821062394331952671844466018271667162103125606591229942625555901304348309830899652644665227050324483203836369459012709351473575874349666222895656693766161087946708273985525379854427956296381738623699237778064418925168158376976716683601555179966250999225128664857241328071371694142247556678140010708455731502244859466436200312333484120957243490344110405548831973034993990262836110353275464486820990670215056391359775319011128274742508463448140675359044885236961657811797914468259394663688934843420846256234410754684303120845752188772764549749548878051576943327634464645114338469530859921725823174559101156483288212259516338836898103162519711244054385956786248624248235498110212912662605284214864975083723205786985757888831864372106896459126251286381164554247133258457086072407275936271365015753787045109739413546272365173655440382326711062309344116315597143568576215700087771792145652898286981623080154221552402199651933398877290942099199039597934144615992554085169300655000405771496485289890866368786857563872421354371263184103506950629961456316321007387661806736397697201658533116231605167419597463412429729479543845520650231845477756865945341469022426971354437487193587966434546013552700277272508657241278827855429403204601854920804306973601649669855841402842497797001360548825003925357204315790312227685628858065115954066468559681470510387126226528898551335048688305801815302486061941630803131604391633967100181414423271086019693288590004882747749718104261594162054203260336289551630692837442477744252481525216744274956334178809766827628253283695742319849182229753694236866681640356167041408444254125185785982834821848863691575775457731590367333719737976979185135899908813639108973606020369551700794400406643590093668368902344003997895506107020396033506539738644157538555748018940791918760565419861532440475957548755987800709264982397785505318595648615670903816082817574280889931254907180925141297779299472438297922935304720530725355927050486039717370045919893364450221394644397977791505216543800777899931536024164124756346879179964477924664828382632804860827059682684790933930422474701324885224234171734092660471889116126180850219579335933023780846317987856130932093393211097925527875925855526323170391120009378252024334461698742219805538622494674595625096946967146084641290040599917152808054326467810232220668320937753262797416322201583919487092720486217925298672646811187566071427675891419370674739232333435920771104477428945024337602434677565040336244637212924727835630284773348141672714982355436680499988595662393523492294581476029347523064813123581500393508396013162758663398515793825441873169869033536787971350899599396088655068042066771083030034576294653106135787214859600185965050338561720804141141171992746983540770015991139580741838508792829648475746424215947387323106702556071688948528386441462918200636331779772557198434813901608208451905370351876455687259361281222513391705154289666278544439786870708275289952279547487243908630486911890918541471986780944450097276712189398250076701947277255873267117565210037927708174646240964069759421179376494592045779065967948446667002238666253956987857246825787398052478125270841664300142055480654147508529895422876998681889888066882371510933390476897838019593299581231070112628327800848056594694745045232986218936172694303640939221871855342033982212257091588081534753246494801744621047427518879625791394538570943188341185794843120314313613907490027394488203460993038896605671120037921357248124121304540276496488264394489692265911477711202733196937975826449390608349959314593328937124339158014861857199589050268013557146972189054966432855306721891934396365335793744774417804416250670513608972546489772699473051823734232683428183097493746289114372243601919958075148085118827884568966857104152264461025338304021186534439028758181257043109893612714226336248263209689955612322284289097535993374820604251850780451921751120422304400641810412961397705725299758929678807743625426347397921084752968894882252468678052229578668085806460034934862540791354132539825048760828250037854430492284467027825383631172130790746333722167013153517980191940864497913862841768003215539481904727209617734272335484211691759532331985492165138868794319861341348827320423333235533953638209609347389426653990340516239036067202783267323676284177542970070226074379720216868138668133264652393738999500329598841615667332822384649968594041372241393136845661596578363132696644058174711250882319132586400826463178849163795335107831690397063844036643001040016135835837146492784394783945461708813066846481157509178378949370240792816221580913198600673601983555164635037913850085566679958721031399674625050045867757504002489202060401458910722438084269327993577600669552269683858448234407862615177284803954600876298927738665970446678197411059316186000677943983836172510332049959163315659416268838577193630182339979657301215806133382780630497987695489262008155604130612330352359983140989563125809511895584044485041231716215264165601974134608006052062117932006802789409049370259720285816532381382610492929137635794973060325434035157062443001597164077816577718972254794486224958138543999728320251531434444973563482461471964427305480314402872538769757528162065880265262884053720118589740141444204497563209759876620285303119111880768326328933818060849769936749763601141103020720456274973471680207669844414655396123773391595898907363375112019681911013629025490720772918815671034832488741811063663167297584476278073260611319347891259000409480383111021578935229251588785734376594545071858281281870876136078420975081046136858239132733023547199857346848659075192957601507667833889908128232044585168361466634082481210460605560382988192835479357358287835836234240991174728638969929439848513767506770121515893304904782490748529104431865034649328348044829369989461096517801017444634221823070263414078200236411595002815159766189852489711955741651584256254116726185042088371466960834199893823638126783566177143863623069820820437167332534201200248656886594379586471389406941782705566573389164405801230227135474269336008138029094995059008124168488001972154120241417727454976894202612845322169876398024214678512402163193103158235935544846384238959295905403889994147900861571795753296672262953389067270505071782984052110936400097557164237870815401126472430415185911800811492820995725113394777182267929800722019658071651458580777140969215860025373623134161668066774292650471509655911799855236238175994268410937394358438786490759319611294218857099170199034269427831741280696381607198616859964611884584776487553177112575343050812927286394202805205156651161109729784625087213692561326845528268489555563763984071587492129062995546858069319789623385310430856730998240561322169011432380104557835252878420925308830927207063744973681168196974792684690259542017273392595595810930336515381535562211440379542807516960653205561686558990127293414452843135400974154081040461281907215760369864734279327951355244583312288463162064023222227129936306585359805266710771668405302235176990420604523596259687973338207047299059264954649347300405587926132168994969873720788296832588063616603690310232146173046695782413114534871389568805399789440340711433211861231248611700063201967994501268015941332885407905772692397185625672042086503019995193889406711896566233889064016951286570370822386180997352541840439516141999411500760024695062386887863945556872378002855037680173898806640273904221793430855149635063903824272814802801278353268428494285567406936453254542553086654953575489198110180901705006417142783168454805326529597131735369947812429466227951743576497144476396509769147880043912170566210234969346621896198044395353815500624300124606135655368188351585322162088449537676652598375091674397714446157458903013796422745472759496895131678768236854577064801374933668458848398864725509550898794506788572168541779928022508455964399021691533095980598670960140011125059024399780966544752561375945590685733868045040910411025776219301392180574691353729493276090015502065888007529994029811754207155365918033606932055545724721090798172930102583732134247311396632165159068060213863846574226836090443184624533068890503965648752771922074193184546177936196222605304825449722238218505022889309165053627704753307288888503666211981251294907806668838040436192938653857756525047420819484120721862967255124874223024341522894905605294951583847878111539431299194862755460152261508021337740917233617842430546424888294264425226576962973845054026971514461981786809364119988123789803723394617203991481739127740678362683192980999414300012029458851781651895861927257406329089109141590903470721083797373880341489421425749750359451320426553096639344542279178650268656126714371172681861996726405856551349879062059148345661953309742059720574027191712448241218956007998190349185757824851627843279863911918880781029637205362133820224024431880971494269211195163580621448304905570823178388668455685460992239542462217641612648240187576091873531664931655609455913049738616991185242932366104822565735920234691813543427217567162875015310663058348340350783452261631991064800715538094948466208240568117957795643400268467249433873856025832300912339258174593577365598805762882760324690827388178889002854267748790288040986049163851292163702476930473533906140656580463337820465445063231375372621834928075561079088425792999332481935080806356642080106061412871523674648212842636740956127990949504107854224149215449087212049330910240425027985881613950916225044977825609629942950968396987317068967388450792087117238063614835214605575199563910282838612968912092355384496931442757270330216230302462484577587088908963365798618047942229283752466649728178222199654756278371429870511072589989091672993240394503182744438381965948074066962603551573968240727401803688384479342209899251246625564115041530684721727674497975681333763905211876202048408345225992812285786354763587081558525864691492824663703820419501993463499731080350377830306511249004986540464406066178457100945134038029183356576479710538291392880885066720470053435543948162782352522944738907748329331253259169947118998954459431033768643689162230449528443402793746766364386550745160586570575408238725605873501562477742917725928490911919081320008805212089418934963132803170016837309963949300389105333482789785147148736268831013728836032856899508947883847620269453606923235212644345470838036736311676109745300792410725849120170660103155610900534565123303250598644537420234625867648813675986224283237424804754142723922552713829230321574174957920112262017228959217523783973156195383927584491332813750596293447415254669878869190053886485251414193035078245534079509009604726114738497463637297829231935103684943961900081259701020030200913558354344156814956737732925590941523910739074520645554327378583877047158645784939783566789412531759048070066081787484044686692920707147451709509395284088229885314602167875973121450750440937423387408792654857850160673491982138186494877983357907813524568425861762516471551238940477879697174403046638392021081362607610816387624673902566958200642942954155973422196663520147566449963442738557510600565938039561820192757197873951493749483475741810513211986760255799199319035236331029110442389945961305049203586517709681249598922058911104983999148134459847580337239109762409846179431718883682624589212511229207018257577700385100675370693844158710654937494341696989720298429450601359859233529489638940794200801207705486710679066922676517931832500746890474515150075104838000506856012340495853381606080337758305982343335782757509961977275022879091852565214988983933879582074165640099810988266625020267966070695376862996015232489608442693885969300214969882228946085688757886025702925118613380767178685965002778904886911724451803168313937148032293555791449717691859719686493167267636705258706329142362969024385132139737232106335846706606830260289015836328521330890862688988086808638006241520873701851315421642565444916428090268391445524466493353386680543680947410676331405622024027615717287518182492469450125945088359061982120435668667252191568807350314214449296156612169651407348497378957880075785326566138056700852285488539432592742841873378781175904031620734873549963092369155178519440573718749189318569973069886599704628139144390493238334128324870351999861101781011974740508853329060623730935044581484439434332191432236816783476176854486795796534620693180932535645272878047267517416052280478753019343192987531643139449672631723656149468499404499949014890795612882986939630623686324536164634877696643287653330539325225817560532936593383748087241611432255902288458013132616017922390346352826379116196915725507297728332346309930126555588708710464570435431738099199661373136517168961206246145713889665271577373686152229950653247135782467358028889191114711128756937620444416979508315124728996227369582471092824795666357759393401732603368186008541041555954010741478772086558479377995578520627384354655900318101184321758705061542915435913508830700005652492253013424941329209958525612735693081730836289876785521614616883384898098778857862220156565648023079758605340867175640627778426333035576348305468763814356612655146406448863151845970414299676630496363338408564098625283648797033030195911198265496426567755212979971377857507771426744284636768894693584487329648517184618177763823986217380197517206517303072245866713400451914647604126809541572777504780534922952258297477672586875689693113133453331559889241035000085138672284752014250160057553193087303293364686733884598408058447178302243311678424682832961743680021261457380280836376118382351945114632241651774000351858294815826266223952847870025616775098839979279107186601624165926369231319335737136978139140009227335796016523110805901255823183573639561081178826881366413507596889328739695405003898788605719107106243284753821373204361363252752664544651053477836491746517374952159439870571403056786146119018966041327850310950489775559769477394288446538994683554316811700361730719926646903149658662912777011866676366397129526940695698636903521071750067280202349316890822330930177158517669895787722746049360437603747639353511411693756853520803063162086232513399714005614923396540176189310918205607155634125651860094537001571568957951574787865109671782398898441348714574679701686536482774950419907416139285143086528242508188371472628826872194433445846698850395524290392849496000399294828165421508859974702940796787934429790359482721163780974947237615145756997010291503474649275492246366713740064202016340555290150509371723703744423086319080695410494189897390506998753547507835840695197656981980663400584950553412577434119486805372383405644470186313930883369954902710410384989952962065990975584512525142538794929737150156752684740478650156078770990011968184080836164971465653180757747380577091352607387897180816676814179246552011057821835354621395268202142282825185812175689279235105131884670532947672257316022954654788957773400629789659976568446823830005596154999122067347743496456951330939556519084031757088620914198324864614699747817072410529284148779310242244917224044405245964711951118615079430936514516145034399986075602310433313665908447482970938993312417093283144175733084496168394305596562363907321530345483622548819628676262451218443962142782711795288506201494384693036578182953684725660219013206596730999417050907172540216147772969312482266158314712635808157967584334522506243854562787310096456991843124245347132758763422725778703229994278140127472563030418376459527752680883281131426590679410182617207433989985232582752142083841360109015611587666467693778854915233936227918394117105203711472102215137214405485077437438414171633816679484731224282637675329946245435745477135325200055903842056472840827426089702502165370997785425289593215180121103576145977820875047097005759320696623702333728245535384827440842679929613865984573745603117186372903057058965926803902653318446254716956724561782620298546312052151976920099678629966690124354349031331646565696679464405619712644594119064346621753690954213192136426743014602692225708618534141254857001089687075455674786761570627272417086862960134183652666286983271048107589686628074255981842786081234712455987691537185091825611590749691240280476915841056015783670503241923409538530301773971433848193243715929215398933216126279626815199696315568180936607402375830806933250358259792444035644094432606092538921562778657962076512197837287783187865041492642042557446938245242830693181933719954496360618735175671956723681108333409249245527549444644568937707359575558534166648442055738961624396062964872676432106415091784880091711437176493214341562679238074973646718231212621797495960065335670554833649854466133855913153205150917068283413479171543129263513958508251101917054401019540897175431541020472608714994354645502941366602020088717755134916561905139491091851935299609065479028064517435672100397305281937580534800763535080619484167347624261927555091096127021789058545470140797352785174067212145263637640878597503215748042922094694511656799375401057908687960051469671355847282246664517184921241939279369777983498009206803660325961309838539532066047593517096308280313771898567967618816564717017282995559438657775009224643444902390283371174744812005629824154949473629223371556289096811631357293867875943748871680684312793620525865795979630633366176743850899940407458258959497297471365981831244108141497919702452072036474322551189657093723959542053782110000144020786118158955600263880325750823380301290270813529469317051732657422381091077060187835723035793745453106586550010080599372920902427764349098105620401435074199377987464436837640621184388434833262324576976252222870893497296379454534424922184071764619763804972141681315383152833632439661005459029410343513648452845938704563391978424638871302592422145613604718057089749212753292167740958741347375296865804804049123676149429307165799744172757918575575020415221485418115312886863733788349375414040927252919254684148538203019650961748643933783942410826538945664197863245470687475980212498183236412804802749669067668807684859844999383745855365102928395102008486109674696109801833568571411021557535590328993123312546597847379741014735407531304219358795840895186763427210650254258886566015464794054502124248264168942954071864278456471912693397895431736291715080624439372366614371585789258324267576567887775977254551018940044876636779799885915986656213985262970762371885419853644660030794431501774359905957565857420778252478411682270016639573354280707128911167714437163638223023825110352515853245050853533891657295128747023245313657726370446665405072930416433916850013477864282433132617735075345009767084170138577435336568621598752692754462495520719869239852918627758222373688181836644432262672628123156301851576550642300710172398402274107233614720490642054875430399563783973144316850783534001385489750173665900003143174418186694460977783797752309021263548040057775714217403167410659232419990203703707290437859829942745271894118159448494666147249241001873289767754739795062609027122729030340561654734395678987961864253001690466871423117961527555451987979451522818678768481694925573770088488532644057250396890991796759590537284118809471078841139659922597458780526191230856707913535193927001693631156688286296602311801425600473592576802645334527001264129880037126133353977901812666317032647411435214073424197475086977289572042980599446724438452969866358755787176928894358822195715518056467828432192333918653131586198619829570222567253495598108204139334773699285925557300793215786362572171478747289939663887060357311400891280848508626693996606712598098105265023030257020966674664107129405561620244555026214414636587255565977994938825887509898012068275460557963347515632169364966741438541174647320821634782006333546037910234692330691400044764640833820977821309774974181410513789134246991007665926539733225392612391380995140115855320832754887243523709680871500737900518980400318227929293650840350965782510724069993372789423436866504301725110447531739384057725644954721406334230360159809045423578345205816869091109778483533708610456913031145598957734757100432447593475795569760680031206562748996984353521624448066947577966846401302973501243591819764955672830128300398212536260150180713416011657722220542656845699674008381324778781973295501069085452601641404571288097683534306237107869197957946342544565086422300316688493634662123416680099114089320971221181044549973664014691119653853572706552804300401764450009901487345826786772721578186796440053614433579127074367884567542300640153073908797948760968662785579089836564765799388833664830626956997566911025873629159670491839380155586407089176189545458217861680386729752859339552912335246457263306610399860802310153926413631145891065736983036578393201149353575789846799583770422490266502854355323292770562550757507116372743737934709379038401846921264165926472759215043275404134547597114837013744690598899614902532053891130134781352806477718952590936336209494635973533685013836090687226159947813856896444042617580497629584489643459677427676087994490999033479810935145322945631256162082726556224340683713489967926530984815329666614553076816374965190073347946066985611033451685758596649264781614245983566672992135904335667515694581993722213279625561771652704909871077050689201311470340836014024694182210921231470342555633786625273586674701650667341890345652709198138758400532050283148478303918456891579218445278138992456740545420329980660550873038428353665798674637834513305433140830870544028304936701195213074336392684703981941452872472503493232525456739865735682525268642109484457507676954480953736764751607351754247715416686159781560012018032844279758968859714708006377696136569210797796131173395706248955663238406708203353451640179789162762882481192561347849286627211216585169149788360851520776246881770575587596928820816187496083441812680976195249660895272925017764390476177094482917464532970775862928207163670023597750966931225840781178814672511635657108796634447591303008606910219700699294376764978736294508640496578318912374127555646932746461805581120480740373228506151991796708511415395014911970894722517383512538786141971379167669700682855093335120229524292664648137031601989750550698856724788934421340294636275479143274129386891777548863330751262109272220890887607629306164448670571306956777529058856117814509774344430643317813451584710266453798649578931334236516364314055183248792983971302137266446151312233002054258654093413336479054712230719167115322907251014850211577069491704439667937742628961083495298778504431344866562517252171254817032336729996601852003205356994111066685557172821083067352348381693196623329518909745739322150272800140893140157267791571839279936920813904767914514159419534388791660207879322694454380277365823023871634797605603733065624619293026492132198729687358724925658077032101702544890068645823578103789454589429684293806997161926390425870692828762530186111726934823665893892033082319386882620135034800751505269641961979629309610268429626276941236370129496871101636852278668115070235095378392768096878094816334635984033771252929317903371384257881134234708584462782959809170475433587546801781695652456089822200711449372210139083507685027025487371214708124834618208518389754181408016920371790432930496439411410153596928911062837885014028092878108029608151598201576631037743547911328666113502104099945917309921068759151349851182307835994393072818176555424361395079444166750822860342571808084216114539887334695419963868914065494842766947197951280944263542878104750798045378581854931402616868547924037733740555718963332413681991447389986195502960371696795231839878256154590990580888107759227769718949920689935039265025526316815736391896459732912973885003065381647537280703674348319276133984618097065884836425767126171077487142139108105217139156820741461586585054266068641688165205678580966040843010786703633282988765715611480328439045118083992524297987189901966629698420883833288155036921138421555477341037691202580825353405558767479504542197511278282166613224033795988297195725403433985999290973850505911880264835977237227689757688677304312448511618646874234185023690868802915421716721182075955756546076307078417701337041898418518560040520549766763642585369908854975828928522332086480046701352306188536042266400888053695528071275300599044017347492631534322716029218013604596148763628138544647835313421715344457395378948916584874043313402939342994797124035648321327144737596416902626949585728220039458443865492092804847560091743694843799778964135807366745082654512710703871030765853934923923552781630741079551361972832798515110220989578275030701008155449502749527012711537388662862246550406872516080869971103534784368070007925920282693955772537415726442283586584845545988829564599212523713510386058857486963326112090684932912796191066411329060383694554641106689371589735076156065566893459265290542158311396727747430031795948136650500677312624161275166660760044204931546854688545005670099119637270016688589653217402593902227926309086983685918043169541284206680672833451377668968875124080310757173520681737657255764315697957245480330271548405907820847207217294389946488054527475030186918452220209845041282000080536942902807192411959252383589461203705033263381582682742701092572966658039662626304048603171879425859877661078721007795413584372617124964741490312733722110613847109821430822351619997803952243393069788078461080392456543946304915669168874511525286881193670892462517793966371387159629117268634102228351306693162851165509700447027745084859019860343662420964706481990603166323202754175296821525895058211996368446311852616454556899331518782202190987076176935157824588086230845325543666250796490272793790147416445349675474731417402812756761639563710155727455990111904104160542121966964648299096763515742278646453514149838792191655226212367107983367518550953390087486859854565625165310827119685387686737218911871273386309470922353161626646279269171139432326819209696031581614819729909501063832335494264349873078203110684733258048077636221471986676123995789656550601404505441743105181807565208098033301508369047866599165076186255685770928123980073408796991590710092757228694332000794783360003010764789236669997885681113027238764806850345938527437752131363758633168868471787690054804384795085963011116823345029621111889161117782943901223061518733832886100614979892978896302010468117721523529274360729337735038406524802732976518627463009946812125696222760168083891950414368231281954162055088937364586808379823023580904405430552320342358025285995566546911267713873094941600552796247153791217198087630959412463144553293026303149227471885321307357462767270326553943085576463235698986301857541620616054739112333214634580979183630666462082024275705509614815792885408832290033532303961070502793182889526666988838379039769575015116744673684713306909917265209166438660165088450763445550993512157631736383776383846711415248369237300894203647164383661153319933902340447487901572296678137558639635579543987629581000746819380879262518169538044362733375437061162338442614306398461547364515196093099300092151324030835374128830449714419341666378215324684697969497060280623478825124182516682508655072207177968891028184874494772826435139094551401777230663225900850213977131049615116487118261404334557399136349388057420829596912492517643361524881546934942689078507790451097447520245658650346370992998833972614082736014515222544056308032079459917153391763422872170450878294794190343319691017023570218710383479717932954991157920923395153204694782947209206936901544068482305809174889113858864875007491312188707632716909777080835252579444354486017751915365970535230627345968050232357218985589053410395600895340987510181443374641855338458162557088764958555169233547302059102336324380054585862895061827525009045339607031270500194569755645384081786671160334396619872443964837689773671597700031630356170188069957403683628131343627193602819401924874703549602185364240437022021117331177374121233215546782478265998398541263090977549596789305033384984754959477875053074785664213552838698776062055613835793056959662542659286766381649205239304457257320281497088020958534385731354337570086515756971030318225696875895596487665505637406149503710223894454026096334806310346614172751744294491803319136386939849947994446353032922621339794991674334811397074017519391657204145903639628073861678294950624470664691640797137649742418025410126084386566524870749079680390252392792687021838835241476020187585401738045052689611696123927141605755106783551724779573272131753811071081123233553551833483087009947858767076256551572829870479793512646336078268130138893500339514875414839008119662097758940956546371717718351150260862513759513277777787803465894867343416745047920718658364983677862863379928221078227392130437431442697788345833904221730523201026563383597109690730254135746409564031025719861425015680114565121755893001918491369557914712018107601786943352840215992363371653332179602899998601172247870062338087662714514382471342237506551157916644792658391462096221779658298740262179721314214185252260835440818986146429018683704019257045212468074382671776205512804108453405735637242935965420218097716513545022740241253050019128129996439696296062196577403351313736872750250963862212509402468780029276461273821651234011319502071119404256251722239750411134624173343190541985573929785124556189304433324053021669569553304750916130106418942123023322707217627777252044610980596199837583265498171542526459327288285808793306202639875740800960559979500963789947804524233265678777089020640909983816849618406362531634494238809577785127143997860574245313819854091473588174869058846885862429782287958293838171863536388145605460496226006026541185360282720812231076778628377651904791992958217669777517048648970173679920371571137875122373857226706325609794104763396763548789522194094485595043929700447875372509565703789558243128102410411494276944918356858815115270378453489968892134566636542098368231686269301012852898770516006352298814211037843043236100348775131548170378648361569105075301740717176881561026485745083462795278629201263463814245593404004568339781867888124605902889740727199771028810830736168052638406825732278384111571023586828946978006154229591214991500022649332816988329935092035136941492587950084063073017940591190865811282952875634186470563440267729089621593498294872506366739016196871520932865463375817206209146698650510521999245569441775841159876855113864387449887895506745783725220522504089001858708209087473690720292664452411827698334123294355138713308577480537202659586135345115273598509982949927783326689786708988850784831471224909637956439458956774618843260387458347871670485730967702732659008242098840577667061096289411468258619575100290398706894959520890374644244413971678137601214656676535449937003789687362947212826844718344447701658943725266782126823149696606334851033855856148610447432317202463842637413173634189609349907314417130046416591340734973853600843444082202131957946713513229597872668612234973844262882714055052149579630650068913519631407274644975302099197048541542153829784353993576341821064902332159222210703806933461434764737624484634026415524376309551230724143384467423838310319867034667489229798604756603809254642699553494820902112851121061446419670957694362326510346136725905738378264749378368853013737009976252052261625755085608786262463058618341388499682211384299036389729580907242567985991850899132658738773827167546691157421621890084701362157861175072139070200985051243936059423753119946276786913105765322404232857478945784691427714672320745729700629472189566632022390354381462417874518613560937876508125502392380024458313651259582946075310431986971656090442982632966392548613917236845228352398900286942755031959479084951725656300979712121181379231124297658321873648986559620837903558060120262466966191999437255756468394027462300712884220717469413166956487866718556520028375074502273829128992078781673799659512174937036840902041718092977926903300772630929468543620252782920730742303721554724714502308392262563896247239419534263498158414562421566179935853283733850372343680785197740806818140069677100303982913256865668978253194412317029015727765742024444041936216400388185842173693070973442611236452909340122223654455480326250528088546121397555472559188760602563061479408708202462006393168069294254181835617430864794738181796463536629058538141209292879558849871021196923741833215669667765275774575388252441876895847164266780999556900522108670857130441139929381441945896140557002280556278003833435876767433994246217702481136544233131873069617010758669449886163480529960914927458791347383577464430615924308224288945905813577449774725228133252786741234111159494047134485671613326799312245072268840251404300614506236933053481191498811330089003604770649030089404108509524133920838869165099743356469355072547855566841251355225803903805063880038242236734534152509938547800968146007055792526281176092997610659395435664449722079018349613769814309303179830056906127353209545022195523710714507431828388292475615793589162018175245861949940105141236207498303589157303678799077522798563402724433587723213125864781159402031097778240159477796849478230373638627712657311259755673096376153131689640878226780530396141099074420607808484350302912937136766962897062376203956616950442956233965431203061097407806096690801698111563121825130868659601702142046284515073429782787387207907361032620729099855982877554574905895334514913696963317948954814853933902417376060079768790723034631323499218915665744898396077603013331774441591638713511923543115920137563502852727285392693432535274998352436374630106831433079718089388818965729519274066362551127956430450348912679333056971321472326729801734576876163276316717678650046641697794691199432762850171036508448695618813202952885498363674254640932504157314587260271754862446847542335499255923323256267605123727037714568735468350267228333517729122582220330052825570034116905020868705684573997167992797844630928970624815415394371916150327913534142156934447299409194602100795388588768128427577614043461525673840683624566148569352535221511003103833923828688945826969611603252640981976500596404654724293212709161791773923835574367327717867518182998940144357321322505891734993427054000683602271753657927534433630293953791041647549119483494604866666776499991944473044930458595771520330574343559506832602394567174772347662455693655217350250349367153650276311935566946706706443827534500484063330242524675968985442865567085384277231519190109459471112925741330691194203830936226098542095761138782366410511223588393818059397517014610975270158300755928344329192067704118455405359725802054748352001989944963793818905469520392518788756384447947389271691554082401765740539955215794984246525200549750993075639553744115411871085104171990845685506491590496512533234021721205306267329299112859654557419908183889006159746722321076048285789389751094631920137328718112681563468304897436506222390556077621158222441318807674442151897572848524296424989713694601427289265401506495812591573944064100358398927647550607490009755906499400779920240190813205087212543652054108869424736695064705660712696443742977299320418684475286932319670571771859889697178037360619636710186139249665876230772264543830827280634315643734040296077882298237364661994027402531438804447649052148625805313884768612878175100520523302261523162173497695529283081145103476498206564510474310308747038039661104850460226341597964736080397513493617160667862391559633650485356972646300075852990112524202675341648170418143507135034595080403704347482016741371795832253317102207258400625259120090306565319008606795721552639503527940095510149116294630721228497089810961891244866259917535191030232222336044398245937755618132000853029743700343877794630453539601537637872661853012708229523786749493620047893131973641569806171209164270582751572643080412088154475938240264385939857460091632983919806061234283463120895268151423026770184351961301932923717435902805794905551992040578179018793658282860150957399333366265435737730371077152763827895144035045908896099776592171256601847520562269879459265705850950814500565093581867789047062914964068089376558486886154097856100922174462220356594195803294419924506560100670319865840280591897146741439049294064579107485376199024850867147786403533194042009501923327413942090676309003156219378414609879299738501156241001716423147521165402375690870885980408685608135294906588378242535208291070349890204960586810140259907643015290013104761477953629582478730541750602337083504196406359320313052899912253828396892382862780268622966958324078394719564296582810185053134829873991528814582384916920139431534080174886212638321103465956901934619439388439658290766922644397395879928399467621727176582501867380831874212312932415932541021390583866605051739702224347399241165618849460333334770326127799491370192405436281903981774059111890738563759983986738040999180839823894149699618705673940136016464211252248748886537840674215827909655326455042785561119150066240792591589112274944710706205830015301297198444738967402848694697955448874286818361378163320738448811502054493191561748217952278060259790966553114955032293353418770674477203290562464361169094695674040950944795505521092370889319638401227589241561268784844946922835472602710504875513215809829848073279336046158242507800997049739788539669105125284789387553645202065656532022039761042264685694267464418299129864964191286923232450298990700814320750369727499402961090124820760117519673341557081013865989744775904483308574275062341498123192719594922844492522321571569048862287320621993521094277315823380678524650163503915127545654617688483171556653439896213146021531024441107957482457182812071740425262200688231754818795171865916064414650472387374028355070733809527880011415186016921057066581481115052756781647715960839255717593775051895552741003974440834587157705342816914670899789659368552396523356407925465419416507061345411138374057024333593056296764615343197209523669941002988494956965693101833343210702803906437209319639446839359729906855426823818166097976688558317801013638906790916646146236063128584587424855294217116898513438996330407891019318205341452485000710133646484622937580675058296265083822744177886055509668536286200579557439185255743090048414953373213252746094974373874394831186608675587376297741889010185233465678671840917627825294597059189860913273061061714456114196259400185063115884471435533356573649321955028690953818201069984329724050057988990054736738940215073624253536161631809174809802520949508613870587964729600405564027489905543707379136494343914712142528103640602836537007763929204616927723141085482679466778974061703173368845073575257949064734905462847776441785690057486899396561036267744254578100214836169773753797552827368783412583745854458244664129186650766536866598396735409227067493073948654998597212656568299370188187328314403331062341136455819279089370396030862636343658311148949822643416605406393723068617163682436853283206496952648273637509847994746893694906589720725405933149490307409529855143040963805108953847936202937595247573032422548561326442148732086196745245959712111782068822818106890383797670363018095644508495942193604655854409387966649294820011003415117885163056733848983518550735832062828938829804861226729219814076033226026656314789477465499844681613930626424675833252527700153292952123491641921661989497196733145137795677122384320994954869790207531128637973924205757658726730636223938862298314280669928408798222982781475350407842639934777043308504128798586114236776018272443705589082064627445156055175894695517977293873935327388747481261062811891816690800279763856348101278711521919820784902343769721763409142128460571744855559647562487200890275269055879940313249967682313265061500200216528109785108465195013498238677907948299014979683902670560730637084947001574734043900648911427376415152556163183846447622299810735540140182255541715432215470403061968524178821048145350811567714340600523032547892651077091735982052953769903797754291814898223001163563955532466501456305525917767726667310164808854107474432253164578335760061721215695220790876660908691899476593871062983266658572621675389130711927705694299216032099994462045558434295578193807077548469570118193686392646346029904265805231702731096052676381901581730811345989041341241376234670613525840592652331941683317722854422458278086031449995890978116714980890626819367536643181515093709493668954457276207452409531170784284797978310826343353547665052315094947424209298811745864041156776686112158375723904029756511397681221830643618303277398217787666928446795409160592408626313942230154515206952112407211070608392834662737424362564397185357847931095727822324827862547431310207572665522098668859528881233625149386207250327979550910007231216849858051604645904161355174778727072846230956829985850047380808124289181285613369517797975639200790713558343484975389895433194625921361170605298330260518601695617406167207429364492295654613727629307289991679322366222568983152404033907396594107215569170124001047820557877924137801656377458614245866166804572226436017581051021307991950385761472625372542209141647178258666893182195644611111761210454104262963178806890398019129640818248783264939308810338984338257870344070240758033277738009878350633409665178477631855343207107475888030760442067235936631897230742750763580325273444484220524480908703347286707897812887894247202650351349247409512760034745598550534524619973821501437869539184179111601848714654887277483414206579058569825137239578211589638701660898144981958174427800690814530484907532600460235235501767203787413999027170354259729379538180307303979439476658350040373498410238283333471129010893330702304688094345251537854278914337937577996189060073556129023394902027117913829702992201838304603092931901462300477190965218702231566569100039331200571597082301655776549047858899333383527163603284052287086001233572471591497187799774064032504644896064660044563147846978593159955519655818137783555856864714506929233556470150133714145251530882113310976129305100114992138119639903818606882437369514262772023098657433322270986128888938033408784518576129331892024214125887627220539195283697188292167576623792445011584202029988381570987635713611885664225966212777808217050944300826390393893826756956527025424631153932312071429962745572246359916538341593075090009281999660917522439965677900309161795626697382740724363921358711224844797225289158717052092469117596114866266663339850042811949163059075586684742832898898738621407274475717643527739012320836189550872941587276290850197337555624103774403428087998268489460853168900817027462541729354704661252777528875785628518881894638396045927178964122398910618203731869551996208109898012621294308893325844463439203691248391114469133041119428866630845767581088453885758091160436514954423870693251096358797737332668701707966881877220103755603237924513215288096877344479380497856534896975619148259867719633794542670704584342258877185064101504415391066206603451052579785892215167432799611891480648699262000323361814834662675829577598714053726951148436233446430214090181162854233293125864375850750204544743631851760143894586491082413820374195257834161937790345928002670019556170178788328914114031654126806050122405985511753763367637910215187125353216805957136057692080468314836179198696671707502066704333541166332585313328717295058457088753208171370516017567685575057878398077643671191606248105909829084732235461189623462875096862902484389820240408033792955107968515010100959611207776309421827034738140518685894375498486808277000623265326852836594633652966333341542066038234668498025320150837003000409619765503288132778124300312567071274218031810648034882530504284172567282027619102363263966332684728597286202271156662702809717652465295333701643494310947287710917491573444657350636461511754200100358785025854301091778058514853759141110650268627590088381543063985093631189776995728538698766701988162288924580091736127301938372643550152716664469782220214178828745505746162657299181931680570074357847734324962402050980452243035424317228132867532356543272093150677990588742122315920752039792758294204288016294145430738114303688377717275688624208012675552727577092921809135515682714169428065252417193878262814970695239031244601149836427020008121194246977506530815580720249184212083683002824580541120241583601397173010610093104333027252331060279885323094241616586832326473447687612036624825719078125510233662161438747912561012233441096015228143828582458202431632086316104749905643521956028277194623213912296355086997589374201501595075002484290652939909412894173858988190325419156307328541420777934075602930717394770053580267478812037495748757285481488914237634435578496132542667665523708840909041448583262865181354414432694264083053854968326323357071959329969792751751379099676323869187885707397571943395498025637947881624625179047600209468582295072829664510912689127442872848451575318890103270143761969022502344402927652985682892033217137343035213692014786992337474152395841271473358967908351739815825268802930171894062075871569925759130015243115645136166484681700618095547911971707314844791357383705816762790245630540201016530745671813641324952757979844265978495467398684570973909029491921021719581602807122655872414980225933810404167730345199784236039351119484825381171996403898246717183197721552543298013513514365893588510279274520128685643697361538724232509749778733910751459215249779123888305416036086952115014584970763101137795984049269402768813308022667067841066855861333532996662194736376519742311984436820028819781801692595752210545610440084882326562954653814066980505829520066480810000027479917616591588182976496027480168918888396619095219766720007802147329023185441943346713581885430153767465319575842155661764883693292223768985448340311544821469351356850894101633782843366687163405562047263311600192871795059372600584556512914490257311576047210240288458539538142163380079808386387343209839603287434941435052209522335318453621318846625283904885939800394776847411292799975546436540243552382073582821366437693584553450417557125338332159090953456206575787262423731607573998898490488437763600989594706617288145794443602762543660318668937510297669192441065694036433692521974443510255006415028314039497412720198256950318931439861920874952752457773029219763071892522054969345150580250148409043804380676980290124737745509386822332185797583411578558758247811021193526343909725200044366333032383856758382578217893443183955994219236142452438812334629944879264257122744916262067169515108042060644757608736842377412581539725481092268818590795109283216692437208367431846480025973256051077911885992920467456593874520240275782672787813423928566588921710226599444291669979587936640961581825855572210048582267088419250381748656356954120002079343313456313851917070717620599618102992799991686140856865385140743474079871962793276307887524805544401272246875088373371520047392013860058913966438360092115927611792179292338197111720905305272756835100804177714688022607964612602560132749012759099227186321205184560877820531372976486522437166296972439264527550019164974770664061780679124436312162197249357925865243145894296515533398030161699139288493830104280792072261400672744255106445731838512968755059014676606211018487740771770676979600092928345233764319581585212352896000617826075643071905902925710434401088703084918140280509318388442948418981896583553866135488785290152163668509318887935935449735002998054989251787149904222286849220731428078912946610029888550968834684408485859383663072314561916608843007492346671478431143216611907829176044328153342098210116756622773524101654183222102234808782433369558962506406110269547115181354239917334836292804122206106278247839018861929974991213616314419076693864810617546741160162428206450728778224309793071703961550261378054833375773488726697959871151096680112554502665986915543939110821199193516811643763444879848262491488414128911407525178054739021615042009530846154573925469214239494349823625874757806762703106391446807329546811401624970441544822231206718072840163577829810789109671353933607183628387842256008220100915069408562768350203232980635526713017452140665328159680393954605085379344809132633062792560264663957935764649073343063033307171408418562261149129358917539158702179615366857065927866059895783476315735888206320628919693670004043926757247222455292740318793616061408034076955701510279974375455173377483009342423534820848698227441553855019907203265775589465822566540530545824289742253288881061185846839297075385074346500575262072954768846488064774104322544585183091144611157146533884688704055060070672590367343048142131931222619604766478065864593775971644059399163476059309744145308434344202582959818050037716730207290433067521842572135931630473890386724586215727793859145174481710000846457683712657968596013486002311619141746334259428500248496370749475876390397589457418595032993681767273181396572066203473635897098237040666837996461445746530087691787003448573332253422038923557435570728583008892566398304470547415686086454951959976578932115840984425514094996985733964673419393163413600227090579305439401167910320656220003591538039502120006333061415330306020814374344968734007847599277278846190728706626986594669180128253137231608462941824577462522738203037683687604747342857661885147862670614917957231100899240131614377323617928349359150266559669111840727626062938080581893704022021441140206276165698846191866048581262872704838590162057379182874107445951653973537255224864341238089591472647009383917090237532268808425248060821841097449911113939589097928286195315905929918706994835914799225503423708174629624129522463335408606131480043658863170453702791285394849248487008093840350959748998486353888123900852562287160807376405715105694682909783580007976131967450313122293814658305504397230502618015959936401391495846618245963183826865705693976645372637893995039267358269897023984538292379079870484657516619143101200313703207634798257906077955324798250361437543279417725876002271473396199506098194174070515156265521286126334869346809627444468337665738693708247201464419529989639888019765365706629522585246475103182687930857935071963945905346272829089754792120279238262208478897917689004378957464143925799579502039212263644158362055531045475440247163661802715651175270987239726093720694004824308458130579620435949415056809694902472058175804783624107542715074123242596559893990329462447315814643763376601854748446191262963417828914531424706567383768931739396395816081401860355190302206990996674495701725343507541368961204715821097820109788277892064152916010172752874487945558459651630137120716260751815929134573085269120384292608331874752616218278822113593024318431680780749416127963396822672351426630365753777065894092244715643153119579561703157930093129775700960466220040449452609219183836719130090867396427961406696414489840613781117616299588449196089870509681615995151755166521770743228141179942099671478862990093094331320697969146602086037323052828773913675767648852786285632987338131960783575470317998845928027441872723197054709806607708064946916408635205126423074742063789503293554636801048958656788475980515202021331873522597036875292859127153348911967541494973091059808050518625742848058436928406655246255170019879722349915157821888124519857730244004886346574257095804515863330202818943072006884176611003510543641175988786265365578812845867029520097737811183228325017141879148173163654084905563554439814980918231287963616882638096456221861621208680380613027192990624971637323149629387115113739617327815352354048777815011990072526952439849367856456407446974955017496612461874221648427784684302282318983512052594713192794464508461186586545577171772613359288159039069228951103900846274211916224453759151946446901084799500408350689132166755424166518303355523194303717067992002165477481157184510010156090159373732294883190453596360655414928223244311328993893527752400774143170775687658293293067409724818508177230389654753964142628642530919255995256038211795324112149642711640194477771068206923613884011388153828064303642870962968112724586103962281260916680062141433622663718248652158601037360998494228128856315491638236025858043631427170020515922272904757745485534428510116504765005458864963477053159336761220246111700727265918253647398327254434207606684531178095596518781515941347878821349873184585390755869929039311278528879519026492541492564818988671520606652824343157701266038604338411938958113710044530955767646090013640863881948989629111830147025115414548651543452605516580261897366477027299588800913867077723164584836176684901004172841023255998894318500768216599618893039128851341237629283441689407485696669494243943737590196990144129440547264942551336949159829764627842760542707947113944254740201159430317220332963515402898173084100167156493414998944229982067438162457532016969007365611205057277969084787919565012423144210558314800472710287077343915029692679529492851069726303207350462158311113351441825136051754497971864478824485406430297828789125680127010894697942152241880974559484356707727021737339550196967727112148341394775754153772744331365655782846838941191678897767723577858991901564330416137929004054821340220064699841858813669665615989811013849187417421173005600224599936012256303564924545148390315640261012387055716444525143996183940226841972111502611660135034810830647875409294416930458347841557381928248028209679895062935236913974914457649529339649447071928701761509253782562982762281821578714691627712191488909598629458238599131915536298306017758150149120125812604071920518802749264795973620484844364899011181532161489662805994304245846338096596013380888368317203515529536062010475684280756914868809453754392426522378323755073402664747496316803354480370816364004999766873337991215901319835207710056041227883497731191818193540270378132940335676180528095877331138693969682345065694203489779934775155578909364166105051365776855295990650202040257549711938751065572387948398808275651216664320939271981876816038854404158826409895780437552392765074858287873065266632182159028440872450036029386057465385768858626339902890119552688730048964699251684198376064024404705228601670445648990239476144855034387174782879340497330150894600110866687745012628083866555802888258797776830739174072649517531156660843125012964375791811618969364979316271687575025400379436575206625990821297051195137896782128759370847960344341559535578015040991375055165361674961681327920821489243005852750164391268333185336352731842153392977795323185808469574611020150977108719430767343458642494114926854846217320954391339488357150435338021337207186084622143975781048740935749531161216816911469770204518864609419469370932251831847613397188935690455151336352730169315465523227405833529188918845146625603134890629593743640104222121463848789772440720707552970781301569908195111197053562212720734503020734405757584722312077884375589441796995219838070396895291219501098764633965692420892317224496488259898665917176490953449161822845833902059474106398240035413116076755132470548522773640285913667879234344229388456908874836805197214612242767247797880615483101904938892738713343059858462686548966779726848389809573985380338040525821290550851594671791185772107716851027904259504380539739970576871256403493542418752188688637543230076940036444198567916574300971144935611350041082423357391965958862309497359756269866687299468002478354400202940462425617778134924449932271204302995548410148568883193423449890782802110573700585791263965391546282004323995294200596694621655128032722889976378888300836938634882638247849391578904052688650044229014785000918395157347751704638172858480335155059913854683089074247396674147151320204548605723738223229950505128312351527097850337778763693242377858936776812381590037348430892693082034271062512940796329736302014545485387912245099775610199004256706953688615481699495256051220331370244247848227331380841791083748314078690598148717941490135757831676645528055989949618652620473295156414833559490570440874908346087836324300619160355784625595756375082744342294648011508214327627410031424851228338469092225034953645650841678255699965728384904597624098504331893449945567377297428216961708081186501879250206328138365702565657786123933585412638091778710545560333330782919931887871613315415633339383788325040353499048636230709104570607199836536607038493007584654606938325815640023626191095033435596381589285106935396141675039779163196288764092439235031704332635548139028031769182573897267718103981952749960616025670600238562274576484120013598993725269892713255158126630024898513552060083099431810868281612019644389462160500074333253575745583028123285448234164791820837437785880118986205438522689110382346227118232482057752897415190412663321109762092037307735182689408302938994924540579488290358675407093847264973534750369097681863515364682013852561443143377245471764836313088473094020260587818808450040126703756943506747271390655307865706640188350864880625273254478252887656153981574404484410685141655108055801997651044800944534714421733113571165134196490894069235588242992630837716964400920354136854379280844201429695044617647525903998863453444246969251954127073007051449902497676563488680439668519639141399744875684343471368346768440519162830240041130044446354390410505055108850298271630857698099102124005119250524540053399685292147701164548869717045848981572894223132380904524127182830970314643994740961088606004646837165860072722358054569368046205745336447730974301701241468089979573868469272872236222590686263398835333620275220688149926120623006517127859534662945582594664377248162675537292420031798294863918721024756487985369400501049632160746529248367733227496080748114973899868714005306822253849419139363092140714170485574836596343037881284885493916098279073087347563515959634828166521778338425922970342585380566954276409730435529868706074478787253928148333098815629972325547584283133275862524809783012601273700114903456038580891906321801911659872173714036950838970730534029451209488615965054496598442134062491751431835640911508963303028396376294595043658559905540609349166277525371045168497257390700786038517259808746612658521942037488563303417250478554074783925547060986908846382523369103879725437136609529415731239819236281288716776296448927422316521955782661698856041191315750242105896375707794282168120845642249170105412039529571201952043215779127139647323374777771945688537250268451334086583624200721968796566457407623463881814836892183367230421862258474003882381293939066463216503273716077025471231905852323368330083008723714947958490511264775442513507720237206738320759630202472659985167426586770498427518626333087720204119317848318284321894470359342144795503870331413496130851628835837077432810526488728262349134936618347865855089003040368048635136773062790077174320240877395668215563831690100929540276064024740714391987329140436471613835518336453161197181269605336890734016038389448994733720689084940633067863016966263510983573071837498675884707161418768676174242772203532580268074880496259560648284619335247392423433202214590067468429463774695378955715553572718890832845932074269132859192291849860229812822802811561250659140952257638942054105694227586382657585002407344171032393164908906214230453190167692349873437206663090232863050164244643167643328491171371811493269454396059332323613162238588499884616186320428138414251010860697334904712070503665049310882041498996789787515183894071529716140174179977313326763930011006404208912209623919172276275201389749264348544292851132707631578257238153395909884503026960993179975122908152501855633482256305751077881659654074178292693088369878273697386124435630416863528486929607107487147655711458321927039813842577154591047981591782786270232361891518263643159551658580828189598847627137230847886884458304490627413686331191164409876379514998977598937544375701624699962326693809305971983447254938670482316631170493064618586535681535008208331582919261669967178290444923678645891047271039587162622282045844709076635914320617873453736936374475857719266070277135890465546417008132149489382398028535350436052476465036991751443769273302910770203811993043673912546782365571034199471647502602413124424663825461746689190024271551691903890302510641382436890421344025102077328766702293381965104843512724179155924195784561877156092044548849105075881591060116636880088261230040319509753165768303172966445381552456491347625164170865463539790286690287242620340186272842441562237015796952575997683711699430071758319046255895261975472344891797350276782847789500643276845634072582787159011245429903810818416077260809141532501146803557329977648018670792441749255391114249335839357171904132395352260973887966475244656380136935162480071656141327559895984363692263122188809770502094523033427763835717431788763588562805744616447897196609303957497899406020675271650926375959243699689973941438052553059663308193985331352493134957013215700116384513943609506587631577126792515484138916653002685178671178108765948267450526245086268886687163716323959518307751653569661279877033900058167919493730614030591636128781613090070320700150699892988543913511848723984889745471954236726007773118676558384958528648408387033478272153172143798151514128113738981894332849687132616043713178552940655159792184378068373073591761509725005860166881528072944041158694121739147017954111798100824035916585708191223061512917131718754857604707580889244221098310473984869444069855320325248412266707792032578595276792722443073305394491045461236411310832555489469892912920161387752008560279694070876504078130929334514297058017013213465831020035743489707536662451454450994101279869149675132490321095863269719663160544997580231445977578403201024474389925904830294076130577961366231556392143739992505723242487719627667639431797823146795765847192159936596348754854588290020859191643715418737687552709039631751154913189886824813542293892702204383650757989850352158942184713159316484903574838729613197148290213706780537697539297764247686322459204309147268415624484052167274849294379914376536770630823219362292813818323678260078677685861876320720474937953631513251627826890361288069730345518171501801303466385456690843342725356745297666131786368727123545603136487077801999101221385710362094296161129682359172194299983362275450857282885532988547424803189806038040077775081202448949726772204983796475639787438288025829086885297466068857898990014824702970807556029950597482547612644244557543959644977774865232720671412308880389518382597460285338796813231022697846835619397393481403463795908518979840960984084297157629686856734101746120471752193691898838591605984120513859388931624599058269794583530588713583469035672306218404216229258515220611614354224625806615960944471146672643125359856425131497683758069565744302781083132617944174015367110789836774244677334685866214405707206123636600779533734180492407203337518936975992445481523331815214779479300641908554509751435676878870679225646647546550763381862620913556028918209144626438966863393689310635736270147269838752787176096763341179696250277405525779531702303657043373116326555010355006734659465942180512349482027862860445876870543437412952133290614565112217026000216070822729437121510942232929511498252780320325313262160045737580073390761205695498825169649924279198856268900781752489912860118586903348074918328375331416512461672563358446778886946199781399099317809804538843833472447411496186151757676534255352124204433143064787586261334065858746730901554809568491482726843282707641198445368937189150599250465674962192937255298603136975072205032303991703152145891923766620165299598404082160747716341454128204043944341211163887306676878004619953842559150321377400164671598674167335498717506096649185350660316482709592903053181613994614127886263207150601473655962961072475198485623365313853423024627033917729819197695202307284622965617210217986029072237761310759926526430135975706332219600144688572785087849046914961424036651100047998051137721256839824995922856635710224608029936873553430086510397175554240364417239908132427288491401938945493374902784812238162680532114080052717645030322683529277606794753671534985944227577645609950433932760060199602055799105108616689428291764120665960427347684620716261559998564189467661485633776307586782787122206581237559882273907966354915564893296196221624027310986830644046013073687013526872498460201799104058810512255757532567583564492369577489300980459065765601486280170445594959676510386693420398171879645570775594365019618178575613709827281639282475751975248554049505874860774265246857418535436867152746194532959652485707800740496821850330169937552887966592473223874550748294112668135132862323888692659295449570817908458129972087423202142530840176653240357088099929772783187726193290501453142367964270731196155036648730295343592382598980924884512158932919151313405286082634798970184683755677194754501206207028001915804679400955216635757691860877977825883678678765931178115436837481707040684196654762932989593914770994182674869869556426025550395829886345628702603481880908621660755368660961399904358757825953249541569014903565116017385985581366359242047181792388835682681680985126194023790971725490997554820107832110915309103564278242277583721385148477655833569391980256178660050352961235692993953579095114537176971977715201706470805024943009593753815716515318313639540645446299993992947485801035755337469948740325370170939906934045018185021320103438753455705711016297786060428908998714773823005216221709024043334764221341758835178466890662761540401793802740436640009173789527240766560466779178204081243055701517483196948902784939645882430156620376824406604402991953455230208490919739363659025259041544219878522780302845019923109477539560865786010745293015608621493558734312541128177290386800920643961617671484901726190139193265729457095771744852697749665896383861164006512623317738460383264001876581391325824902411073243739613678866567130179839767521655673715048832986729375929059821202410736365703000190557626420189206053484719031617174339850612182313159350216055471063502858085930639223306098859714574533181282387100474741885507015019714473651521416110533248264504370824533236059572994134558332170886187937499482104634279977984517297188066461693646723012264982418757470923382075981272696067391466345040337351037576990603597310589285606036164998393258145741737895610085677972557511342584377452462370536543744680465670683476934753627279442503424645478711323013566818307773828236930675812141127578442554951395153813211401968551346217757007734928010100904897575723439617360625652736664948094075744785009165554366646131069592090417864740185013742243576072425890279957389934327929688639586798596149349191580577880771505940661974112055650355332681642064176537619360460938734601201341954127678322147154395093493904874846541116836524983953713625204812844880160786556739428922063385476938687318362428630360168497624075647402258456739702708485085639080183780634628879364198864122255741401647873747865826955614215900491449632619479429611199351255314730754593225035216962663168729289650819813022584481308208541285786915369515184246131753293037850360889464801400720431580524082480209138684835521263579142176901785249157219752443650556298844643369080634702193167750316149593719853789978493680179134298127954831312656377839122841582461481327953471803280754680054916559861869868384809727621105284044379617026912894204019834932079342623508637798001496566961798176788620080838329223058935651201323480102860333268838009911315696976872663690279652740971823115266730712097409658758036288652428795751355693004652280460199395103859199702409623916100252707018312145214245564784265332079129876675734012293486816263607189093643110766430174433502121952628446931254871938541022794255254267203200287918993197939166239491878649268815067854210870296850906729688503736598693579713935214798955890117545187838444066178028643010248931253761289787924778330329266983807753347581837269116989826428631903143461561406338161439340053140053910634915008116172421634879034131188908630260921981585809021443261065118120027186441568050792829433764077574193629697337763052122340268704371627002728815755026303628040903463877899686875297375060704575140386422696616290738667629344793061871579420492358783514053644463104624914285863515191176291058781996387529106311451616369119639794114053542624816729345956761672036103546705333672933669002466105536111818479894450176689310225230605922450403488287999341891185792908500350190238782143739742974128327492732687543302304959626962943829995506245833357914715480793281155380646552448717074146647416921542117861412560256237715047590204633054879741400799638879272472564613963436240480287968144254694985666351837764911589787398787438411956268590938934950061842263487793432919985437665714162742268417756653031515982802209022740274099332653680177684339008331793059903079077797670276823695476841725902876093337536522019140472766462292443995124571249812185897640838177964146241012210696891610679816347845652207085582255732394299471425331468813192357642446375312060639467195124457222937773891301913737223535612789454796738235757627676181789745561192673806312246506174891377879467187365562371213298583179227321095630093486265487869044817660663055900318190454828053727934642445221027375186215081097080987849438581880270650143293135871904401148779788187556305802071672923707432506676245111029522438221409984074607815735190767612804284294437357460454277511474213952977537072803469658688423391827573361324348387286723336018966637412296697373276645970367051067687866856234059635935600172984384677337861690730380027781216323534609193973235809093792427465730447912702372807516441361647330525238072853938955051335010153094544955295153120418610270811443363938008880656799537106528113001609114231077028590100082775211351951427993887588200001665142532719079637872152235501451984899418518816720271977602341398906776879738205189773662723421922711175943843942648602532992460289368811028458248789413269609928687265013548746086586506183725120307898400180158451934964388038175108592647259944597768199852204527836789586627132139332203447852743143431671681406506212204790092162725360620279798591079805524960205238826570062397545090039722275704960459785270957114489089919886253075476084443595899502688799681197662634834635594105190073497843969595567640881837747535276068844914163029903475711192488953161809007322665594899259806556885943685607116352991070120150882715493490946662679281479895113614016659454148723620372337074933600304545338348091165428467862310749546437051821725616476050147709044924640166288362670161269423603526043440241869811107622541724833543321031869840657550365716989330778356033580544474414675435532809373246762709216486649753862236481384922896722470859141514063466549327286812396420854209693111640814097976867549355167871649912883635770405058614266201358401025309305594277243922937128012206973094580842830845452122158928639492988656166580598240453606728870160851743906910741938598526547834504950455578258101124691505530932014619699961306234427001783822888888496897719058092403279413073906619822730255286402983679811852340352844607575064160604189368064460760402981479622525551197509848678379556964419300210650043042872273762925586354879423916880171357498262000559545417580621975294381973283732791053017760818431368557882172843374480120664892230208075253110760827698528634650315870484592051657407446984646826012127205475661891721755966809903272260431247077870308984673329244304769097475781209118714783697712461266691849661128918538368929521780247498763502849299716983447620943047207880715380439052675191999532100317349741019109033719759886011909271721314470348881995121511881647410294606407806394164060125010046723873976542258885133245827951177517886980349011446330756001640926513277926642529926414973415603327716874537869240538386685321228088549577476565046278552329451018073631896746797698483698190100264949279150417798825805700946425857469607383992135581518940567430137634512428010578589918131732392751244525964442331874008977715644473245639544174969582698370476192118661729792887103463597216053113911758442329867691868996209954747998270136767609002329705958383456023510904358980725549522974773267122002256098566280088334904816671072326553621803401345284363908467683230043590129072345748152944557194901726045677393821539728355674112378615585610190571301292134811933092541969175964888569017209194921011901295327933130279098803469329035183711652155799526438476579835631972888476037311387133835358995545733981974916710180855323795844824230238465119308386684365387062889675714224276475591750704378933194249886752524886935035070876613934733602458017481823244077609408718658106580089936081581358152746269680721398119467622020127829875176714996092843896453564042655825632638331787984695982213266733221944199579055182114173349642896186504047873810510246481806983850244292230082239462052302277230880661812279064949135882847288615766706669909771280260657248172572119386305978018609285857962586378643803491442139855416453827736164243422903240391387234526453792360127096306117240007788380438450387558903723118832552445778530321034889754131859144764773586167123236242527681337327274888216387709172593550817415900869610809172631510429277780104369604158573083645199663652833124622316901836405240506330228591916097101358376439125562124301311544945869346196073970058239278554982325341514330278771009899045614090755159011291784850918535108636090068575401350834914330419334244614011055826728998313179246701856942708539220444239264641676722674321349630644522353878821802641833666752246235607495912661887192982842955175812974462260853107552449403960216914161290912040592282643225524554329121042558976265344118141853352787332696362103861750746729787093925472079445141794932218682651348767772843264297081948957283881204191716272407780514401429916683732777351279790733984389996729063490216326990287664352242462914108970237720847539345438975395455571244472335424099424668319644931009700438274180102541830320694467977118319526150966072235231952889886074897924627749412540362457480090301735265733330803604328420095958083927906817417195311757430810513897499419219097493566071543139311192805675855406723033990360064457742497557114701897539361824947402786793102354713239744020319313852488662203779806279333730726089065689090047875548922918896316157255505731901856976052789691512881346556853654542490250963581081553660114645451203243488380389209390654460341600602008737385018533869633410344174016450899934391464425767249030969883419105253613284644926231507131314425894919652655522591547236552670679641272857146872939515503823439108333827762488268629393937014817013699571858227822584376743723504023235957140289466047494433015796296655952978956557197879187955131017115076147461633673174577508692239986956391310287517348377345844482574309798273130265534391721827312938789532422791243291517144266919383229295121502108586497575643538455322922148005240273081350488961899339432391926021473600984783856905784509216813942795772057329274402902377258521138905389241971209875221090708238877837964676995999460116586766703082006633873525403748939866965003661380150077312474879428372614971291719734980127261082744508145817058685616342870720808524602743024214094915779590233520321148509598353247763507573585854487669274275348797441562426891380988577553738546528569513447138532637589927034713225743427608484599077570133877859438710815148567649233729603581097300922332263814113786933388509004960704465931658862643172251409948027525611191519150667328102618826536060978722833065686503184303026177879952309294565112395060844927498400226467228061891980031005489322881063779478304572550804029992850245140009675997666644686039502833372287411562952454798943967375894988105203385259610549005979200746791293000181109263349250003275376701117913226447060479250889874185799741914579114325117037963191955779951080807265232909135040145762679219330022742690284128635054608232842969625331737328941363743931356428699610471835323970308927166249463904866650401493431234055333588644998840117686522725076606663772619895987147653579056359300123030592584731235486737054650718130832576449008472034202609662884555000631692427713675615302479557044896797066119873549896757263680121029708449108968925064516215037401440329138606936851364625017893053093002477951068541267279487768669312179784003422801442818290123395025310846294707390572443059008479776052898327949935161683970019401950319949261736010104258189725391589570596003789305494891015756584743934406653457534480994337881895508846750536581744731867212858776093550253325079387429652329937965185697536817534093805607200871915473326638086818428535456652913582437315779162111265426730323591419001050883960646783590851421657902290370516880537963027573356764302044323308514271000979886492659065095711269988131103873858627134546050313076649918977868744405544654046813107201145212982463012149073780412458315134936805564413931301425406906068072817840858129692037532433211416299196132625337613437260657579023737827513191894688046362087722537413906131075495797693857831593056971248766329700811475300325708626217456638183070593358334741979890292507561487145401368697464539544943486787384923221903569892284208400906617916921939004879519155346786916174411660439253792846319116836368723988252742637881004607133238149758392383988953025991846720127348023137988182257427780425916023848146714483593313893736234322310915353140896955916417673919191359317714946853131904302187274447545054509272108964901890520943489333180212799019997961647418175783056507827262846751499363335777242884582471792980444222645628564498301466175728977335678208811475819549801040470023598532997031142542865185149192885674324390559219162706525847139980695718156669136709224330905662661461843388539224223773787006010148828022300465816570645162753713291560635560470288662836259521109054019364620584847161554136239482253399631354932746344959673545916272528437015700673626661720101013163181320003453340469629425856155423828661627625341611906050736170340345706890382077940595202276429126907814763278069948991095079210957306008018539103275705382715587310412985388605842786861269116551570167280045571764746469068032074507503862612734056925077874824994892697524044872642009702604509968021212971277557566341415837628080880034752515980600265036259571787264763712447171420304824097026602421533092278844762966875487610969218674177327712510156471524455317178325920540307340602557637604092404624275084841222008530980918888344062039277962272525431665468595985170106414390126996687960948514515235674068447591654244202047683646552125882636010135408525650459300798773198121626446824499843407959435748771776339873344708175733185333397040347830243028729976847490211175178229975481185835472540057777127534472092527231865296632869596411190225096618750634737557186205232028927507587911281728418742189589012860737690935741835804391758212078250411452292753755612199497758516396868129911268496664001228466151136236736625001069944801004835014866821116878380491055431885117007806534455959712037368331520054830767118702085477974127725436457690207814457821584371889772199568189600958190057260180842027312338929041441545992641054172210366453456768414204655621748103699846094788054444888343443830500696783556186874665186266442675286766337466398909322136245041687654944733294761184307182663284472380078486394069270745295224757067480396674271527837329678280117693794290786443351333550924966601452962909087293179770781901676563211791342452286898549545598532504663440077502363815854264756739020350179397946951350867860407509566596261231132137236549783753759093262655342342504159563820211534927184789236142984042919442041817348649766746136583236110382722381895285582401939011458999580115982754785768219240671675282256002735407882524076776545600008466019820079986814063398053366648793553276470842568881976449485226592574484282729706538903706797330448209358286264340887802896529868652249690906312079678119657610907705550433118278405559904214994972367542558767669595604254318676878241763990484368190249267702282098038396008752027546652615271059599756343949904297302367346039677448781147107429629012385439832672098028091396382178332833031384470194190281282089577113301603714853823053555749198308532161313894447516240253852423241788374273340376086361685120372549949309773000301983881539728399826709325933698714310047936876030026586902376064087947093079727391194965604255644928637659028867280625544890805909346392677053343511321872482910338370751258572354432287490360996732378804958404122790341165452957978607999292583950686123820253393685062048655076604242483776074950445575585335140618279826548903507946393925459820509079808324404869973154638635984729831445802313117195795928139763024674717690361095814440112950818974278669462618948279853799847651354280371511367477814576828967441219373093509521706393382690026307675022495471678818786935304761497719679800655460671002105574682997922379295016578126296025840814226131604762536512327371929710581911580625535721793768726267689553482797855559818072996905484113298241116560761257310738722653962938278637733655167065042094656701157193544439954029916553930831360398243955677235634563326908041068951851731609127663622665598865761092482346270035634303283937404058774218663268870972465522390611486374082583543668940722198675285329729085307079809043452123689294662887392930491662152014072546546387460458163343948883365721124037023009074192899405725878715100665957353253885101629854696971271148408490037081494150359087585305380130720243994891198002843788793867957118731222751932707168532207246730389103942096203052842521096457186364541107468818643209461030226935836588247559666179488315470923246307179405892148780355198257252944067830162994535551834152577255323256796456459378189535193650352265332902443452270630984101671982911509033126216181969718861248904564091744999011905474036081181391497413703450987549182160684814975681084765083077095098900214321899328683247093528038403569210572302281439826420770569476430786619262868910873187402645589708966844897515145958641951757403455036314971134163106608614170431060811964687339444272872105546347571724250954365199602157078412102177311689540698712741531324163606854905118054251166382664091402937735166444521199489487520447766563158200743266464001452859274167515079386181799028684012196916718089170735044306707632047121124495348192598755174413075703069920573769571875903293899137178031931482071429158997037203196340975556024723319008498211218610159264467384827266282560771458482049745710220272875998114721774714912232014997878558655342738406290092813959337271572838202240256818005845688781932928068578536630737303876473567324732356051263036159565485019420074142667516703445528123569082313679620456859973581245638985428929739080220607254643570663213084540794851087862523943103195867394263438847874397499538130269232700166289024469423735817886572711187538622720918582453414862776634631735527777229723562533799271206539403337814187400976281304099860342343447831802878145630151294299367124256643967424923812147973976748637776208913670430779717212796157855105775049155643641971074976314376953217947063927568607994179202577849718669423744503785890070529058440481126967698788517180143456312930220765287879424779815528605620238056351421471688054220672667457083939502207604524433089460120647725791154122330931383047604038603808760288608222762713857640645483984187392610090051781994137731032818365235366911452876923611739947647036665291247764881601683981434331003981545819455651253909554702898913491943478352711224179041573952103700579742819760085386998548790931404540252878151867521389135302643350270665902590602611441326046862852278689250227139565715965928485477885861030407457809956773378152818318910337056888798545466283311261770106392427731432201212397744409385315878399491150179197453606243611293327684835022294808524846149120527321591332088116593262571098163863661276015584676651809534963162738139211539888208664736361040043582800403098865279987457943890034053407991283253693847261810377784500112902259624896260869052249352995664981540356910943086141000279707580106685976513340198449876553585873390375325823747458721444502894679217419186183049854119130922914512319050383933880916317339519076788039268044625973346597993813151488273711088756638428783789021836105862252853146656698952319740020916540395043589509349547795872742364274833502071404167871303725299672017573976371320434749573028785639187444504426399632366745668238481764895874363607820231971003060657381967500749904415297526025846058581785060582425297799834349429918803737470728419504875647269963282429392101724641190111287759099914165818166519117344022868665757169509137514710658141547167711277560785296959516844908948641013867769619391493739754222893547942826930525236351615752486437155138144026504520101647848919291771639503201337997594185604822758479951624401310098633487756628403890190253514526654824523061409877356836076315347190244876542168600623388070312951828618977374475845369203389371254190743253424394141136180558052878827688437737691985174751242069681795340065500676947574720815893958056848804213729254249087984306912496896529225397767849342370691510219207197376852877021321957069885861306372933797678984946770483711509573548827748082172230821025877451126534265011191245270302710818954242873511702784782509361192300876940839088731030556432133841108433436843187629938639462967137777843376493865979064849433264568050686330886738700083596638516719964682771967361898559244730557048250068298394204772937919689556030225620342069748371595820741579478949221971186680434821832842393868228351602180212496883533586148342447724065601242378773760866628674654140558426740958919700632021420588627370835133458922210470580774391483168857037655326795821806533838589117621127043290881646783241756556278387784333488806522586549819826801370742382082291099534303272874557791470563308128795162816266371997521285820462637095131455411773456820941258986376048823452639353242457222259760447376944873166970369496710151126301267390634621974061861456435170882637700096481655180694280652109414955618490612727923592772679106408298143958449506630429444528597432158622899348509262898858119547506597191938378405405167014398355509512983488278738461872921367767802420491985846132057350073311035890701127539280987026935268355154123620663644751947698694314014293626019067367757831111283039412689512836611951156510045559190314768997826774812743655443342207024515246520412859327604038037101528547425915209894204071901924072659447067320787900833919535293229869433917944911378536154765485003914127202291658109069057859685742455828119654265783375338610584420861896854067576589737135598823656667766848182356837052730047987199338433785573244306782069553270718477676213670340921726451372280553491207651065332830606135626933926867051180049711488189162210343371205457007736502517981683882620543648542525517991808811051299479333143490610116316730779484528711739723178699479875295782863623705926162794705599577739933837663758911565204985693403292489124609402040155772973586817284388264007474421702726367160875477089217655675570113918579371117551378362224701870557350857678450694440317659075139519782551606070400930821052906703576643314282317340793038605870390203863869579252475233267098906851938539436118505314661128659973476775180113559820943231313656727987659906443816938107495914725699674689331723578649756310709796771011102184958257572877145925888512590601996017229468454956300659120740850788471985719714484355824798908993913340690867861549882508972816420742306418672078140597416773947536525798709238210498010872233168133282784492094850462416366523406322034875566263673446090084387825549891918620789392541894174534557066508201251724244369265800104100672548456625227152862404561760563845856553617729356811250933898985462952548348754600317648234549809338210695457881181897084507881456543534099966067930631066162901909377219526159601121690473742264518219874247242606969277877892067568628703344381946427685195272587678204894076342851424756801540218108375052242368697661154597151551451978793897273377407399604196494201898429202087331082863863586347861173010073380521026045451966398408277709381645806645790826623906689221288544052595273731733785291797732274085778314613881618796268419524954750527234495112473383871212386735488608461299367121096644143548187385759927709344646521244697273569290446353701568774918273575327243190913021888581444319398063511783665968239336388669479957984456289944755292739705980019669971971667122083720205777642398101064938608005469572690011829130300030269425212273867735705927915012272872432840585478209634805704393985049809479630132237582848343854073651130889387220875066613022121897996018993392997332018170118537169227445748313823463723655765921387724589118862519176646968328752291692336815176788202299501040306609734184513149848534358115042298368364723924875715557975701123488497618707672980731497188353163874784998337595818493157038569652074123481327987956351756366110979268683241511527056520220323404932203948821704963912171248984921725709728877648412085577563331309858722571431877068724567577259916152798179984022307842866013361690864495100470025339454772975540918588188430036979312241977067617219987050197505317587198736360670671308791164289750104909590053400937004217512482153243781084149590439523199112280955072172410836132798908825600582894879887232672838932605340496107227137024765114914236346184222557528740670837940290279485736775755509806099320247343868629459748827827537799627479744778978122351899810546039984033590537867126274859690513848929671140075591120271884808010021570250410983916764465100464626713281232022896025269174476664335167242411560178055761568487411741228354308102833846633247759579817104429315726513562920040488731396971449148073997345281216791025071253511364662154255899529021914160596413103695692768435859432021829118781349511547223298632506099093625559876219583152004084421372116846396595453659758486354015496175736988551683517717296187267357882069414743822710960684013947364157589776274294851953995492658161481485096017192948770150379741070150281158396136229267341998371929452474993374012093764596471837772850640564228892616750657229784511617934867798294969710476735475930595853890781122620395433549167881039743910118837973797266607811054099468155677495753771252046100086941159297227249986678243981660367583775381690599046382100487706145262255771178175548295413704752169138231487227866260972637356923083446678497402353586160125469848530641729861463996342055586167379801656900934449935162129923412314481557590799630892394248200559959540761597903894089402846210590484515543006317474241837064058093780392149302349657815118636274575678441002253612022298024908273409044315364379233515064704927595557855430039435645956090435765134053703977374157740847542049875700965071400021424082996726244126726299831972550346983429538294114428663715822598581063764073866218663080655268427811779667851218105769609317603548128614997218756792333129990892857195027546937119971009384064349331075663852467342430412719980290752000011418759713333909831300264696767355460322420764058577393913170302940175941300807613930547302645326155193708585134691186798214801727701776526027707855506565177230012005542512485089273414122134575216571734853757799814309050679017773946036014395045446067624565762175349204077175678619152575937722867577530494240452332286872843916427013810686626344013573432893890807628383585379613899740967020055608589971544100299102768132873407396364509085004548811639955561626609305438918622414435900095967926579441157319337923461218001960764552733916128229092128453505457111457043245695772937188232601179510494055969898645797030754491022621648939939764312298695933228220469872838834547835519397277534190385226898728414238406580421766617369688975224589377200634172423194183255847064010875621022917475606180957595267638458001114266862272115578839103705925153719416224497621709820115313099399743237695344350679959734614324100397970029683648452056039188450197552057505272730819148570364536169624700964728412570648472096738505511996842006873245451913495381714770189480279257711011917289388645321962056622640221517605471662693368483926317982495947928010362620966742512429429136305488849080419766071606628144049968747123852059916240333831187502404975118059459411123941833661623125628684915624508160893298610686607281091927323009852111555547084227720133215653676738172158378556376090267763540127229068046949957279219601603618644789703893468732274989235968761426161127450062292620673411826286559442613646024596148414956720136405769133842560505433534990970357158152604059017568153756366499286060498441769106181704144553537895814718478070178074011884948188866880862243902332603586549336932428777022237508822117318196841239504348617155032963449806209720761374520455711136186764679357686528761841553471692849366819894270113098880178536274276685690328636781503381823212485496186807597168935690150250084034869410936668330880382717691226049634445546973712467323738118202980494479946823112391360484119977732686057562050867541815683123138576853480501352958362283974055930364176040910181594289540036887365083066766305415326292122915362300478654115269414563960759864136528816103986695542382357707843867324737235709468293660688879624768972996834616820220434637824272800072063794211650587720516767235849838061054403060761707937425379645720457372508827755896193533755612988074233398603036728410394087128848059675285245621993372237782945334014669479439328684977480147075317760470901225093545583871379959754140286496722645384121549390675755903401524376424183013308900154509767653923256494534625111407065567790561387689026364210529348363507261632179001534261340801382002515111761705049349983259132911937804227262790412117113351750154156138750322244074879563854944338902638496582189417209597038569933586104685177037900852921546538283730860635958436690351213152765460152967635796986599702316457939876440379427410217397645880505585648253663172396881895913662363197802953978223697648732811472156413239905687080357499810078397950149029654795277931934237963640862983214832870618072823283550201478047181969209590492601284594926149661040583179084491127897200294354607810095139126095939926725245624894483129569115318480973924566610042544065670402168511905654563201521648913415297924558383572007348738190430821440273248508487607457557365364118667506955674470585845205431351232757085617262097572279896321402351879564145732577868014682800095391231832464293747820255295297964120011632253136773026853642195026529014861857930708733164994793976156719727078138359046918520669160543116449100564135072907850574149094842064585923323279283281322282025414340416485222874985971513091519501918430423379694259209783172229832164486990277961200342602985361632313167526703195621956886502274449666705454936339753110595405684963264173967378934636510885623230236234172403772166580335267857406807539724160325966789134087738330658979361597445810744156957949972907743353609441974945482962063827393811008725247030746878142463490774514952244226831786527164789760117843150664385799354066775230841684813210088012420433570008034076815252149873932319991436161822124549824877253478738312051715333213162514660161463950668808011622096664484286759402534788102853170004605072884886601622480527464644154351333657984016527569518986747513176710540096740336162029480220712452876239996822443597954341416125910404421514906030150625017287829755371023925566300645601788935779264545853369294046060148440145345204231537709527388268617925167636541182463095642585327569778332451496441860364795783880610766655473418873865221861538474982525937092092655897396836406733697862861509838206576960206208579756849051507152717609126267914689812799897987904960953779503842764480311469262417306845307841139856928298944085360752957693502292922473445386126041995342753452165326878881313892181474770190497573360087013017581382437972522559331553460174311569637205162016243124994474001171839460736789017395666540898360780612473884607264062598793320325785431915646229983374436530855617154364820348201335991217164277046687432349434920658847001632022724108025846260567380116870621907447198924973716667063460294301918990113145563945833040419992172130035210361826737899830545274389237910806634750493366495990591383605694564071293232507525589170501597650082508028607634386141606229521832190626546281589679344299033600283731747687342937587993180287744755597325597390704264281695014913377981531244257759721113340668959547350817146156473922344069232306352270081943166758031496947568654197577159991943055298939347947620169533049297536516353747242014485658462795280369368112309793458221260946904734857862143404777775608332513048150059130821210142722928213226037500559134046489438885308663375656769768462650271877951811998142294681547405430708485210758212096684404849941467845102199242587802763931226083898735764099175770307204197919517704438232113700223346724376893064337304697654225164717956335084958658294022311514115436648809902250325172529229052954067969509307249193593251923519015748819277065517980785002819223532891101047785669855281433297100729432436070879045304176320407042070954756300672617202035706406905568923131538361140383926295851225461362066129589748588580729928069757333697325104485382188601571193520802481027075078510200640130806075529463220640406394774684707604656202989489404596332439684119217871496580169685991024932791285462181594764102969632744899141386792687263154193729976022794898246569012359890063977095224814488672147777990200246510008687108528413967433382440477410331387423195125766366827290142794988295883641676738175096961424580828291215931933653935498877953459872909437314946032193075465764466451482735246482137250018431767804233801204354538155767485050746062392939819471461358772559502664948534228358065692379433245480082426253743798948614113678163906942683785632227701433417346752791150314776041332637705647079785647791204267098748443002017421310571782462013024270022601453114402201181978014112610343483069469310515857061432987889589043073047447502171836004164621957790836003634475991175879335494178547592224370558794759449312007650644335701655295253881487415459516842011885917750317452288609125502439842570026030193621770363791946652483183750168668164219385095102256273072437700898052488298771244225840893765618381660334813873128660132195119319151289972314204118171694405543997945315947936592576252336689853909419539042950184734001885760534141046023545408930280248296636447649428743117625940234142037133875648434568400456812821976400646966642239993784397167904729715674682545595912642466637108954106982640953532443535512503488396003629429927624986856199933389408165082077355318399345278854055562668338887808133247479377728479368673246895754393004127715761533278401438296789777743701000666668283569361984520472629350519528884362124324863017650592401728293160695648104928111240401848417721216909033865245442513722811284998668374182245758453157294015042775108949002964241435064104092045188740477338608772747726377370092733500319753812741397351147219560995352101077730237999252742365418693873200071830716586158760286924312229621752218251060103193449986764774329829545624952520497505938603904369462902290143983309111130603556159114195386895676810880762214989004407236393887300384654067838964820285986748835094810717983701818713797555367270879275786984908477754561262652710127700358533461289414431803959506924403164725586052641914132926037838009951082098617074141758423508820297758700874806776896464726789358331314186157985608484130060726305621402582015637843896933084367975313437509440106058679667600345293805637990230469864835587255904617504961885157597739067507713031217523206562823189583146224926335889319804232519093084345312901896494616689174042986929440995764941420151342864975313418655022552522295436483965469317342983273259102033937968556748952776891652179993535768121181411702363249300479824823751404035608042550673103807753233057764562836532735576783532922336748512889004360080687198159121188406237418862878221230869949956860584598524257158646300348446996718005866654872216563027643683537784576425184098572765846466945258682380932338839845455068413867913414411192794944022595170675145872844893557810460305927788341744763362407417037064041669190043543128926770811120630108432040569813945125421248612337990611624528545054817036757929846001610370624303987014676285925017353336607795862418987644411657301041482468168098865735885041277476928734161912362675629914778914657701749042129654842128314559425441775317549255895490418008868093373013792503884641796224828979469098962573106422813198745109398248644056172718325505755620665847443727365021771692721642227853104306641670682427402042306711458862369069200398429779908492564589192312746337057954940507146468437969550763450782891982538755610763576664346456654929146425346548774037825597978769043594790545154178945806403082993158247240887220047900026388270517214108765213993843203184127642221208059693139747105155538160711252046879385057216580769293278666413988548820985569712300027718046631541965094754008411760500703034562606824003488789294671406082756265731875662223478068589029639091427051803232611682431573793465557937493141045728086361545021424489313911698239159132031201995455681389971639015324426573631645437469230693413189339700851932237391546089211927842556918633661751717289008507532567914101555895558819682815676022902344027362535309511445351798890591199146240169111662508943207337477813148511737586569944351379660682337340679957048756615868329175556103100968616689549524993381641389476899092514704342700650700522258592549865567517603821489074675177000255533242378167949634126445069609805155942708002201987852897478769132575289023663964798028902712946766932704207215316305695067478721372074168622141713463206910749258416967659920115813341854134774059439896174126293025669882128889983004408302835033318906506760545491953842836101266749678436349126130690759015202694743841131122173971528349765385744651081186908101203505659430931041720246093901323331740492346730070812383608734161664830380935977326498033506170186229033390307681541104026602616751972866359069943165852355023845764309970910795365374167871810065210790177549966229386323780252041205876838637941258443042924356962336315387244777609130992161359388282521411892266315562773027923657772954213445631977237911438871693291597503419457869046792481006130639883189259900776648975958677002141358074991825495681222788357142205449945749871301419090761912344435310790349151199454143316085401036490774119794429612301111030737188841116751770951110081477105384397968378636833377468206811698375808889035741350087232862049130645861306579332660858685279281788511067878531166531617005177439076914067164582963358257339570016661847702483023234160559627934439421419795534726850786220148324469026014328008601343902621003030209746729360632096170487879297397157791741193573419088549618500758288792778780461094935950851625975854383250741782620223870916679656116033108778101387098162075919452125386658202570267272628259911290278689292061588930537647089036924766805185384353520938023527748545158295643908082161874516844940762222747468800268389009988596538785339628958692318017098644638829944454216706186292535402269216598221397300032103124759858473389409212169301867072056195401612475673881721365372837267400002309308461881103347342473487920238593432899887047060276078235293656542954631603849917344938707798534936195540553690683426237347398214216821692063784643283462437503486976505525779891685910997835697241645329417421380234344909252635627598754479326015052750811390216185945253545361442360209197828714109318817765950387620517062383841807767170880271535019848386462107136257331599709640318886253090864666529905936575554883405103074002089813476405519385486518463754152031929193002363337847250719148429784047600037331004137169943651277760174221459685182502047689778876796420761683790472292055770297212816662193766698871371678053355279750044239855137831953080546887050460237224930224187208505032429359022520285349771840183286228494850090483275543380636691556505181229790418590998115135619573868488032795153465887029643315510301196295201178056273686751457330122486822624291758537507039848446957965951298341482905683690390216258986409130356352183682824119846746805631687740858331352638603332147924609564889263608128645766252028044512424671397401459615221119281957930713106472251355254085712461253979530691109290989372670841798707833559494338343996142811634978245636837088255965320384767649286749796881222350674413023502284749909364982336019503957978611421306605984454894820297675599490080018030717468990516989758357895020325070333092057729777160528683963403343496648403169419255442579360357702634446603082139767515715368589003991975258234616743697130519903721088796503613579952748553581848521775807434339132877802390071106891469583469673891652983149764935554219110634241825817686336488109285406728550602562363529073660956206909808332661502168140945453783572649041556563473273274278066645439419695253623578679412212559038042472751028781926940860669579567496580203615326769668843467449137079447780667429350077340870921741471388441770615889709326523714766958420424791184911686018464681362897168587500115536955644970767299056305445325456874354477651355995717665231653358750511601518811812133931719847253090182569672982041611168059564868424990402314020121634495636247441482740398978318631424239138608490240899683130542693376789252222007871922478635205744137817596128757791299518611650273123774267825889247395528363754142812435863794701841547168745633437366834940586218183029149871321663421652180744181907023085549889390578314120976591550594003745863909876580652934526036930041092521586490107384858613780749573139272831171194086310523188570330741194321020257608003556069245713010069146079205519302842621524247220900127486027134298582308449811902731543797327682004136336324684196274886043216170188165115318871433449366770757690119560144146902768938460063266978870265016213273081710342394189270401403964562523707794836664483004381151479716003351655281354738388769090200392377816764447332466089858667015576089753262695096670372331222053848378015562478805026480125537751095170095430475830855264197866096079835739633635904431896973226528988703444525345188933663689886234856207526520334841008639820572961902550522191109881731732503751271502949414029721152253060553234458185915783559256771088683815707517315993114254469966411536935750215862562323078266030363689684009572568394127315960502443754260106592535160588831932396374566109352573101584667425588078643900592361389795938457142437078185068568405339045566511529358908975107520877674919173962248310203799782914176688283041530704776516238664762710589691165688394491760083950920534332576074541059312488246644979694990408186745432458400769305606492773722637202674364738106365402334205393796890673484438087152984812866612220902965835382918162713580224991026095073665532795085232580045744149112403728509273635381832363953675826739913076324975640413562803312813613695565647219250409745472485999655178446172951696795980774537242447402683545811404712693973322995713998657637253176320969364068060247752748228932694697041843786395707630997013138033876927680800944834803842522124498073749996107645602224240536509390657822479219191693746741662584152676713841371059615384813070691936094529917236522032890158704835211702772893067346497537006905769228519389096767127410576301014317506524090114366854220256466967641513383123647204177869337528852042648851996256998949714230049103793440418008219495254136870212634120479490831622672804688267606970970794701915801977133088138240932248975263006470558200891358086702659742463569868023792295898735450170165365618178664420120144009434216035638522898147092735048264996178636202911869524954358992957428679467500765869084242607233319507309460117325460481202794723633805046658095963635840475985828774045373875055718214994914864424427482382682200788573409947633765129333160611713663780432393741784536676739460246478219821507953427006088521680542159111996959028761143495547235370887791249033652994907689028158953002213883706079808378286742118917651158062488855848614052364021736511494257435664960375844258228615998549724314634689555409219088128026383080186590804231963518012344407871555356991716329185480739923675575559524865506205298176731770247668632107622155954720706638936384389228647723395591064912966803936924891916507375848738458219121806487643017663828615955151214681219807941056313348530042787401884877847934921821633929412192360020394642715853304639007491547232721942406217196575517466432926195466668588417841576008769125941147548971686110803680728217871423609976049530275754246623277190202592817828237753137737233741125132584135628669854918294207686036266013269122937933912274350834440520953277940281554390970911291216835631360845683900154080178942358678087838468769348254868828133400517048642212872737293862760061166453689597682288759707762785914153302824762870331735133261028487052800130132002572219675077656133428730542065995269952263264963707581926016149966082965819025065470711886848500248588708340490530878629759756124532611344484909448398671667839466572455176922819275697793140590568245763834442470550971749976574349956833078460807846881385217135078547961903937488575315051668561343361362556062509250059661685755276202770348222137072379084532227427835601599265401635747350108442169476328407697883624070897451428487809684119602070269612086010383147016517090462142194851185552110921418878511423512430348701457551196597309493612025343283676250389037203998019872828804916867785068119676400757647596289946322311824149838145844432511888842060753171938437262547336297196569934994307680290993120673679207362877931824362626972619571734885567546185870049527811184450661995092499931172556953508916728845557469598927619338408454661399198137298724079948106151819904042563472519161976579407565849647928637232154668649261298344209091218692747255553191073047246948409785215294987390189684908239549003478724330861191508788851320660907558734240424255819094957781018310367892718699084357218946596840825951075692023462287566985446569205430434950475398917703666301598271590909949708273043406433138013978041594097403513190104535399777587070534220122463341331129398578544716625705150763532179062705423758824418252620014640395832334974746946996004406726680274387067446593941559142738067315670749728160991082822628936176178231765920713238912064179387752361354097029199031486282139895921468366635781601241855102264208188884586192293967334702103681676529496216419671311098554721957519303738712420237456424348082535536823966510904758669628746067667934937509446945690513999201688673709262978070401962781903936306861797030304184303856332471354465452579795039612177154342876038620305725389371057318184367105324460377897397220439309411184589891208447180581313059242001510732886408005959308361595690687332253766134011175284444958272999199430399866695296848029441707940607352582328842067929733841617989078224019738599568973518956651687788264695642031749766797236051807864005760677013868636657268273405643725530182803294723803098910509048350646537137960521807398349671162091715431360773147698950596922203813085225140699855421903343751001169991863347798327963748083926243475851862370546400366346183069271947898650358779348838122895902408674190636765539135958412223646288423030205450643743976470772767327570443857458922747243180425945742798332407689192986513523704664613169686801131110415541864750585517778393986385635607101429636112257814019169982870793194902487214116927936012684850619394049202905963359337565621234563491873100691290635915485981247351772551993822736144115206725608754666050183752097793512560304346771286357877182634448153696477444529372971589439763371723712666542095405925810458864038450077363385616593778739565984786916557718155657294078020250057273438937643897471564002046502862657257119784069147589562972960812915584693948232751797553844545589128941407030958845096356847550493785071307863353035531885760095079961969885280395196421919834117497668960029609482305676675280518033886378469790826602303638444868800141607009365578777974085609324117558988336550826552674690760316865574225563287579013286747044189211020387598292303497626015017422607652259961534921005716218412326386332435395535206974719319312636145516216913402996884509848083533457886446311784686949988101226971742228805604881048716244372292703576684900065953619447383332984905688946823240170467292296154811330124255755413789217669071182461365589662172975619690747133036617089544457216548072961851696214263798257460525289014071215939008347017402984459283418152951283116147624032434035491356429897982932929003349768701202907572507945423729296556483774741549628417567077860458261641456235944462355482590354618266668396157438276936471914882981773623661655233519150086267616664350532750343396926268525036090905616299255236079545411297230509904807172225239681212912454283604966558057114778033401869934265418868444521386974934481476651716038482287203441437209985424217974835751765705308078809815484804876190952612524546959457248244321643436857744046560715105199896382882543768269906705855747455984911913342177829942335434335266995158720648708514122294835631862298775732957854165745648139256575373301715001188147409047147111368278991610139687882201249362121365894803985886444925694341928995412979864113119094255957768708497739442436717471940816950069646114568754602248803780054812196149914063440559962830859016735605793173784191810232618521327504898414620171802375595408749043820725757582123754739078289535185584221228050696306577083473543786782391960082080283069706263746304235756179031877141925738412860402533351498103594869825717537792179912109509906529385533451737455400423686232415962616037343218108928063103886099750025929983730102136219241551140045068982077992628350854261921243079052736983599109552544095865130526134423498114111682177105460241253204632018658145485309159965820565520778052066605163996496780679777643091492424114003374290720674961574755755455798691435071141527988699610808964493459725637790148390280263924904388465591038249971061555485293058057424451929264258832026249768841313484811757785517952115412126875664337027603496030355024429839163964171805013148973167274261330776879414064119657791807366895796298116043014769102543098234300081957628452733560006122116487866708740805772477573071718627354096797091912716240656071128981290642168695628590491141043376068581085302631131407372031003231603486364619495405458473329841290249767019185267365692078313807463035256270485009183865839418292998995577998236214277979392231283105307030115827258175807561158924520736148212048808135289690892442275982311720266412518519225825839180695910413262801705109890656762768154240066805915062118608069771806254038858358039002591447491677904703784654433486507860596244910112464317359012077044816159489242245455467132359816007378730013730115161413334912775693297611612542096999321192415967524566566250351813926547564296365876378974717107822931098367733224567636355640240579050385920161638817757247121398088195837715962639881900679394445788232275280358239952855103813706499252250926552299597018148449388032478518930135185068364508085660762956863389317614294964496015857916851339792667332550761916003849208349359808748740919409428046591796565570067057312321359193895926630616393518912915789926890217806576342438281412550624786773420431963654539485709147415501396481759378529455583370592933651493131186878116679171831914433363726846764376380341272666668204669035063284001411204734594123085134258336609730035903503681946619876193268449103003175996879050752807789758496326619955920287924246377350445493649425010875497240232581205760499408994774317937539043853094125941435516179648676739428298372197647486749719270041740012836374030337559634380334028666956138848430085998233577692320874500555954236652462941062680555337733686151024542015735047465083149906719026102935808466788175105605566909177631085371513291362864615217529640726610718815936901495053321118421358330055941769071110264369193113902626627305665711542644149329878137651075039302743544478596103293335595338974424504947285534547323273928281457049876041917419678587711222113784405549385060334723282644117833139976367092671424713195773820257463255004693859529620876910998075046002206467220214864241889806132600022055647336797209752200798335626103679841336223873546094267989532929831018821774805728676221307219249172630316132710194970669556550981875760796062392966745901962317339405978469555334359863113733049196983126143918698775371108925779767324243048056088859620808320083046782668167510894933817407269713559839253342564020676221932918761763522107255253287143508788850033979705075569376236649598860295757450112989538056602122184024768414333635890237868697559660776455532489221149198534023433628957910330229352912102299310960293346787581858276141046777210795872815448089431078807480361267606419618336639768619075918870653691285134236533231695940094226115441418987722758913315691497557054325497588393129247292483133607807218624259434296767675778745502312154993931717264969048071357920869946040464463661727472635369970904284710419198292525950594971913431332529066212706201094417290555363785500325533142324040654160012756909422344607999745658967166957323638728121373280708907462805054297698201419773106463875227962990446510480051368891539775650121053088181674807563869078052685928002792807671128736732022252536785362870771315918297586796625381192939277169924696748662487734509991737177877931668358628801115656774841977358049527506618811901019556134331694447211706098788361586081936466029380020646892965882456313148615822082211331972894647370068345566529199762240473381792915614172488670256455025668717032236060383215081944030072653537794710294406345031335349229705161301381941702586972787127766162918102848907372076745547022586211571010368247644615507539022408443364576517330598131029596935599472363178381381923589836581699605695967614000531362576988940963890260583335987475335197020364759725978557739526772306162336372928643102788012913706840854037162189297378829516154621327906463306970557112164047382187272923196630347909497867615086925475996809756851119377901565135079412240911227125990805454256726770870522838908638141120684533226695311136784089517178848417564933014061066192393262553555991104397510303317486355210721278950438086991777360787722726033026532120554602747305230880968407027420805198573531182827002294877577347198444867185075106496299697773437540004886342810200039170989784150306372194083444281621578444868321962971169764785472370038805012498900093860716892099411248765298422446494380292501466252440986259686302529527288683056079674206417271332268847780985889972556433563545059732011630094013716020145161578284721569426697934008512733719058920902733316502573730720964363312974847266103267285314962080849068728124232347220841226959688170721587257823088703731261303443642075458940989384159853031550627252336605928677582746196275690667392021467329323476764086291453923681677635293442712370113541897383373954696231808280170848685971904711600988851441983409193251562788015397098380622362926030362477853793797373835744284735647902490691135900960765133988373627858573294490952530902160893194141208135628417925825702377123680196474268417044715059435942924383129928068791978792351333313312084483668063794725786750956334171062071868465099959515875964593190180632352047984735269807926165617925130374621458618088242846124167626272979437823084509382554162312797163217824712612385668891194228188743638655007474722755439907763447543506798730256994368464326081291979730376770816566460773931879473716877107631501228634042453153178416381374937290146325949792820069117886379790056415493450123745790758904164538928159787430562016633947085898193662199942110779850050254363745261579810458451445774696686917488817987683605816970285000617594658606676066116461274234735411849217682949690080115909852022365249537560915549687751069652795593135366342218669832230953189847557476596386052749326094722756510705008166916657537052378157752237593358050238981356877636373926301921315763448168409780269125919789068478176582164507441086013915972189248910772244632797485035763950620472264961339419964414283903467728885409506866961176681251373736666207563183953700091436316714275795561859974460652051088386693200474604855687503107392161395054123531943704609325043067937424286206001336481141626034803785033024789311756566479271380416697626011762103763939290654618622016736745377289754742189591046028222736641648186082691162305636617123101722683533269995199402081388257785323916753926240860443005991285929089628205141549936295096805311586994867356146621674631357565964402836953161242305264878227138210454174835619593012718218603303826443638577859065871956315615865297800251794617338533566266833744361960380889501640575547686329978648723823592473888356655013607674840735272734706604814403773281353775639567098209608411206082951857822817512997804243131685139097831284810799549869965514209251264515796367174972592173075324294065568569474609710774634336529943913099378269481995823075329345698994238656481402385955392249928844991600843266638400032595652525568284075651868646391187659006596485597348395485807498053909301999812199866269518720737161498539804918392201749146739314315477567545089557121083193093103541061634743107416538864022359292890434106298312812804718840154480272092286467616628225185237955389697653656136126319559119832153276702497589247851215444430742280411137184043454680480066523863134921407907496059488704437870884281882635730578044485912562511698561204762192651680995100054237995924081171258433544086313862165784937608734062916038885158433605587560091860628162803007473490270844125571338799078572784701353640488532029799059726623330748049573236980683084603353742893759177279077130973690446738330230070700056123552113519435819838423276601577870592107319395346332651504278165682001097121580125963682351404036451245274552589228142627731707476008877659226883339439662189291360583912476383340315842638992282060327236494900153904869187292148810065070753832474968758557098960173651905589530239561995731156526507327561665534232734098769955561008639073846794851203771291742324375973151503456645883090544696641603647062843582285201545793219287335860392703304452058653155341966288941378921967270760274241682704741776142565944015523648445477124615642063521784636873309409193143932178020345462399168928709785225247886181882629075494291105333556892765929200005527628425183990088476314535018473946727348734804556359876368552325013794677224753303544333896795383288061488221731758025332088795518247119130747005716172375394703945350219784127550211401939273427817944798715154891428969550357252503377139472385236013987762043431234020934566046502383310447969865538617045357248345483159719235721961511520689563216959774591972005386083610118165594968486639755893301930715920410377806692809206616413648221631873725216893950056373403573144507276026759959481760279839965122979344838917982728078166196231781701364942296415753672530807430073214957995332552294176611441605737348855210171421714303176445477411825570627020908254092562301746233388463847346902281805356734477914641524312485885318179747711487753516498541090532216353050289682673433378738983078631551375528247564290594160887944791003384250160927281077920292884644753983934653758382597644242246308854645113538576282580298154468699372843363277217721563289477788281573003741306810782865479674138140884014956484097147392871905849050154068842178544012110661314843299435392888218755232474359635475818212684534976652706339552743555328817153290616102504482162345881465473049618549183343131158876768874107544881718332606427336300958116214822274444000821479865472941375174600057846018814125960807374510131751689581049366819177399836579045636859431378095251417243553670848440379826025485444966562034671610450732970317419787315487188992552407390019563041048880987025323643145241125129635227302192738459339014099160951116605380837395500678225491196148407398701525673309433701524868792554774819304091341347917918170585255874476053740252083290083106830242369019724897088478682148443268069220774902057828627635763191177080066897797367321801311280982778995749129356622656067951288938651499109637801482242380473847526907040678941347604701925890229515439852425869509249041319467703275478078300032112334266578281716494593634264143793574050285723315884746036610305779756380005004765624444022851238390030624614041800397001812783849084582932151796477583440399457856226042018347714009265998337505288580290276275348477311335618454942859996155319739760387104006863832770905959481976744285161778660335410951706063855535792554690117356036644176929467320676168045914077457629466961076208649543381808639008547293296501797334414640298086215493692491955297411874150297035471601762379717692776423632657160927685585965699593373133247302422411611711106298255583712674578299824571029644085857734900425258400527693549724003393990083913698958600098321873670723680079052485631261776686246194032160907774863844613127375306813870030347227226305962549904440341948575854083504053302690687711970431742429844118067836279770482670071931174997899324491450936599375851886895867415888861320911484190685179714871456551121573749270422295934369998554627507512012915216114143468630480697377406056235542002134791217850530860221451359395485351242832057853193236015972353850141687551097243916792106648217419625310760797409165029905751393603509115766932633102186656879928797089138863934229615541120990344876338647945000642554556945175457179420013964580939851619093627038063995053312887885151504316901171463816675533264198653377117353566690773466956233681778554225524671941727484591884256710456683941351826278776595950216159483108385827821237889826406937534759139407495076071507739724735663736450988093255473487946218946793543681256050865145346426994442766585689764885096620716939303299811155699941921070291696908510236501647672860806768492839415281513933705273940086899418742747262851823421471620713379887361829449206523565369647310158843162922686449333040231367609548047548726549904187166775764051042178649508361603475472407419977705841154546200931175434526398810607271198540697925702392935949078463027298703508625241518384761273958876959466346037209018496448719593971876377988992842973162984123384623690101034726646626533124581780487099921679420779216069582501565921791423246407027669943022372296526297847253854550647660872099313869175925836128698052791178511018609602925015477303573809766022124704916744786838494603458761673899951836514001636834008016156095613529755470756505403370691494170709911834994991518866083877058242534032189545384728100791363786238917887651998512798902924275173022237254186179057109630120176227169341511182960021909056453575547553233999997103403876667143009437907552565886201645254818146319305522336123146913060607293822502144971525452017294245897880085625421728326989004189964112708112856475174840730536545869372784985544282648336997187573789514364556222880562796669230079764583347210430925055610175896239880203737201935778233503178420531923626070811972993519278532394258155604499398118268297995224751633768002779464460530502749105684124565253388397673040042860427105164082636538242206195497708531681560799248870337977175906647119404679415514017085381973525302848202795770859193121282040230927217345759013191560067036206620019199925662967526556238093343900896517925801365572932651991746261845553202868804169912034050711405317496557139829727022948087578385399093453756087232291012187973925931290217571643997585001410810515903094098659787102658712530950166248268136761532806157960112814213643606545566796771245486404150139451625742488690085627839486024525262317071317340157419837267853907632272666787499422042993771494418117874320117248830480875735255106055573083628229139593475398158479623806581312243100885561506987117612552955675328606322290467144209992581291351435231745110504951728669559030593792892304755057841144736873867246133681570038895093149156168312006197972783881205233785264856688901749417981695734118267318063647190420884025536582264149555739266407606368376173993915505168631808835745386033678037326394857358813368971697881930837924994642749667718269768823988477871311645833410386523175631355555973301819037940111792955876297047475480939702636247160317415875343653206234190046357585116919905885699979853544094381402259976637657122864069026702278732077638032326494011182900947418544297093943231000704030485382512682403623549044681142941864102416345579672370244483960097823376928568862849617786679705587704803175782567667332008572485360397511167915826890903586682377194088431581875964961872522381340933279197362445543441340285166985804553301563855715325696899609860985130703764531186440275971074361459099911312153574326355600877427211503174546673683549989369502224277421816996881855218679318403274092993099051694786960171050794895813471808955339830260470671678465208611135203011019312718116296101564751578754770288027670138849500656705742667207808752843674148314008089289308591940727754564690926714106657678548229859741696721208108541870210997285969762948662594394858916055982811219284712884631530709219164459931780874946516111155357675667166602700056412331584630498197464129599107059738092877261835649503976671216790966751325119570466105328553866419147263988611967423557285808625449539722726843574153633656347619307791032063413123068000685486977904999043116505594547705917481551377017512491317913781293856247360823297598977717092187452432092775511480986353001983982991385311876277792417391176440748734288998797438061010222595458051536982965610944206670581526477621914000363517537908414105678677815760562596044959866952096670818389844908928863391172247396775291441961555318433080387200353710137532542580618857800038728279752033289248485215797655707896587699795992951261154715549543665438869774259000379846080180283667685377498085934807024558557886849179504303649419082422326857057246398888572159471491692874012976051459032250223794577862183951223436648614524423621761864013358021644993235063722613050501931397732588778289342523729312984824866757471453595330607152433825086196807838249840841960969264265040912090191584693688352311249692585118387994849620723785489549566618946222305378202256241119869968955440485453953319406504979450950722241608549507412933638377322561900096574456339239110655182048038310135981912475817604617587636651861419884317110107637575409536843783382946478245389738019598680853527467844138060100008377062267725980595240671738217983510936918314490418337233495979134338971727207210103638350627344184054522583866973529562287071764401515874990265804738269776718408295917211932381211209777900011092561794067237478623384192199092691144008072832359444652848530320743699609834880501466197562253377390936333792142366631583283024534526738190079895866330922213511493399330073470944189633789400891327558877504578399446070896303800326539222937894429073682658741189049299398337696213002175520086941475784991700781531410263122039568239252710490873114748685089063525107059216538329883708453415557843504002427163622562227727799584133423473324784821161078848372936800539406355015886572804474090808728869380737106196035416212132003362377911059933417653544787955944313383332979072336098998601353413318052657136819035581442670068704462181457501562128988024640523771544608399050263750641818525335425020782400203158766764251135101217381417403136414653405345371090922605333756154094103859046011320213368987690084492291666109432046594395638401075940673943438531718438397757713707210030985268389517009747606517055664971081591255859941472358589786526864133331958200029101238836298451160860966219113979470675523366431601211237751845562506503900080913909465513508776364044712300520106932773464830617060498833341689678653586334690364671988824992858352814943466752885179111977774504266277002092195207999801123364287150977542811416370182966714204655961975540557341959484642205738630059611649227631444322926760467093487460463213702334083209796729716863484660253387736428531660163103307245979668683820798068856532558246263553178211165049568213642009557774968794243270624919966479273648807103840958251345463694822089796577091451002491885842256664407997517801499838144726849315383420791560933552732235298651505254533182648358137773078697701085922966916940816857187090585607761979541611592902845100253044557579879755282076490863158054893662834466328113446340626636815457232398760816948406528968252008645373322890802941684780375352333400793159948904568419319079846577021965502198851931749053580539758887043846042143766786681610525879721309982587317140432346408221040989921547532310246979971308954581825738229470766126206437573257437085544524766851324284584402701817553280244507597693993462459249091422777979169159616206807516711822087174098372746737015287241040759637183038035484719993788963637956229371355703731468248892541024675861378510060567002035667482644581834193820880004179842906706792273807785191747050232648727413144489678224578456243515880794220575569869546598864048933594151439349446374482714175824613639958364592886024766412017956206221923915553699188586076977519381003064491902658474055359339518475140416853104476713657075345570475307015164494955726335615282943730602127473402514589121793140232606864972524146372772948148900529367444682127550915029604746467475862012922258345800815372820968268050378491649936260698195788017166711775708709039495012950761902852538487987967033007475091429697190479557072370143735859305144223877832234913059000248561996237553702017486250430776383117817043990266171086412295260235039354675805666980392987518195187840135648149737771600647020947801491912264698844143830476472490638763614061884001112204910045373127137948746934275219071886888423508844452779926029765192319648013930649297560951720359457699595334230059554559972534537768821816691392581159517625570827880425281551177247017380470024811992983238859986389104836514233950415192567487988705876267586913967372178573703888891903060904875691483358706782714947199926765078872466199385744298757781972485192277965599853193553255818640953717155406559991820766978474342468318395847297658640442101415067689950037693332876617034026585884110732451564259835179158886976309961168353931038595011812479145628627381248662695372992407659248403060307486670067995341220019764364029317389932637051555830411297256893100149566358700281262560759511815200380311822888162581424239847810862637689107123819680357873169956303993714369786429655818333878671226900085176607284668966073715813182911015515443964814767398881451273302385459576809348274272858088894807898347934503598885783133475152337885521344426915189602937782610926818884622139244553338637467181454350493176142827527161118883755093511717089872914113114093366325710323306461984748767647219932341281882757238643172202986333231487396418204963580132809275035183392323186710841219110015892052536195771427838702016576797642262664889359698192778925584882677548297367592904121427660312675283574544504896717758261975778943714188730957131999586245031264528780055478713526833679450431998562505411664736567847128491138904024650428276354935182827703070096854717782207413763440729137783565681690343775956512810649961930861948870709836177888564247620257436467183004633149099944233264210923257260046806124549122425262341886407183709604003602747646699748177606680130998785984800784883289731606850746717376656438961251711935545936821127539881466204334435988964082492132383296899640800221640776007529460948435611242521417153216541295256536504778602215814558944368476851225639396905552117572693278670287672794499271646927608760533283543751629676747254038199773653400470260127262065565998710567439370393904711140516847378095172640301639175640893227910667195653557610613106395954014359839240707748250263386826405730303539471461006806618439918858778470348814709694326584543013833481978508548429953869298539338547985418902972662723458563677266375075008380698204336506479379263556756087828268179895005095688510790454529767037782514039453322501568856257529014480794231821439717734154818380294687429670135028463521453237208943112178157106449369447672337925997144072245658081459320334203394844463316690685535107690238400965266347803773552908391162812516677210186685098865377193102709774028408793873062050725418846642153268727803728708277673843492339680296260787530552258334693016853012425644886878972931064736580873349254318015461874023031563041197999548253536839679159809181160045189796335354452168273459583846188254024502952188096528484844235839568123727745939353006736511554375564931098254480336055922050365412351678624595977451254351799326594985465861930734826500891571805495350302141332069843212250523203853985928894112033423992285397488151704532475736405038880547930169075322185993573335298563937179611207222934427912170468468943022090533023131403343131517089886920532097206986649496970963496498680866068108457355281936066550966009650156571906856983380407411770997195050223227647892664642702470462202978198943410658144269312074813018790115970704107842681877928191185093609329027972033239378735953747395627613698240579116341757426355646478290479058268823315349570496501110986128379647624055853299474352228009123054886551676437879962504730238759339887035474947236254035533481504811697092918401054651805003576458453051881637066656595566477319891647391055415385122462484598522164532956358825285857789944214529500877524174181638956453315911430064531545370040549353441712786343489772374263187158586378337236660642073259082495069683211504666400728221812307158965238933261684080952448388418656464366427666248335580711767877029894878822494391175404765338869257954771216963463820736272844976757438918255348826343026065571537332328237469975479638928403069419008795474018493945657562737394048710540427555566276460812226846911216142879881022609050160957605340429864658366774129205056340214755150034880514541851043606895577734482418972887614312813012791826000022032695623550407954049102242007256485130915558066155638675483235418916620475687411077890440423847877931622216199160689316174223374711020083930100852446933621984230266161021173704690851241158851446653505917632497564912690353491655585251154281542708825601594034413761321762888652729062620274683446532672724833798467930115622132526362479814462811589973077483296526806294407104049856525201403013553228638137733652436876040302455505533939047899727584719634769067267156915344645911312769729648377546152027924379002031735845968351176659953872147390518916888827952159306998103848420847427363896556720039172692424487598860761036270416346191841303911211284790516535777396376430586371207474463612090559782376877243433985755342089200566233510540389716237852685765562785513276818389518036308540359287270959750359546776465586237908024778204162848861651915178601984739776092764149774742368775697831517728975649708587523831796737140405251346504015225380892521893723481972766609132736553303756524469887017858417103379638728725893354007279359854050665067433517518371892699516089268949209089014560661756498168839985554561558491153750755961222718321529290317460329264666145514935920909776948981758865935607498998876672143073437305193801845702239827554836368982282770212913913648894404665295074357162445916339035063268639441988876161938902200594402595597617360883086855342615661581847740548783974999617407213115917250112048118412487378490910374372515734287921523116678760811349655759444481999964934604463018067559035339362248323374907383675761360457721252715585807259383337295299644329252156187526096576072869963133844279367105035566927929412893184958002430470749704123242722105537375789318518861686640352310294114919719471215063213638938857215815447788739540849669359579579164537461142049753291721210030562034285156074218287416620620750078220638274652573536529844533197355053007033434844281169438163008932451431632585943515717105377052575235834430662571384273633261573165024237774597277589400202417239180012098145769618530288802808174102994657169181698035695592568003464212520575746964235979585088687300350045797256778139695964101527810260738731195828150236747628027960491405148714093152348348459968531034770901740639062146885204798394579283735917993902620596016575867754825920336869304476670597002154084418418135197020570780746292697944556352039573611386961272519875213511240696330039375883716069751942485520277314652208404873492724663400393220558742810563244338651876402424851078145841448841055990116366352014652213228333097975455110309373345618450275913339122393584488740012442937733242827738757656266988876189127727898666305730623800994050964279060043793195254515424485434437448844839156126868584438570951606485620809543726943474851060203253880882940001832690765973615255738174926966767860682925026115782129236853228772774531779615448610047548223415008801535920050105750784364914998451063689885860955663792806150682049438160886294368937120214790261827789208071294336563736038051462160940755001489692944034511100297676813769053533912522463733033278288103929117910240228604823187168468018618606821048712691545885598935829634402872774887228900186055409323330533716493118128569915384798386762990248197410616136072681187833089319940764560315878864647696899474826730505527343194051985468072114334369455969160521984658850098655379598456200491665677948109005714407635239724157841660417118464252196577128900780349660394067310150705279226678031785944366038120152461581385015960352281551924552828403707761503196959412415061937821577204622439650190247935590596425801685081773370942162137362936293649943615015618008993546023070989495576340536793127484061290939093049005832387970140567466382555907138343857963831230721178510708990918877868973949605156554401187862906956806689337541078275920431470374865201563079447869640039350730515472888036075121228129589259670214143711330150729694839007135125187212474254176006004473976790733796373640158588133968508648344718458474060261069405898250047449112724545487329887317794565722213350993801172217264093649209706946744914478695959644765747354891838091389695916453867150030309238301533443798514696694799781326069541781454651751500565819606673840736273109541314962985843737374980199643669021875888331826488417294667700148415535413700250265775192211668114419589682333718198743789995915332108856625355345902802315765467550764777969879936148986698790683033780552143423026356763821037733855585370549413569740207303044133716187333218107408400266159152737165254958017696386262211245746828473102505251760627194024340504881196897745840011157495121850217370739353065950510460273197450228437374962519220131544512080735579707324292029120700907095550320697783406392453136637743266674753127271766376735748684596493748360338938285131311392108883854419835907676253721032322568775509796116645511516280270906185760118422872068686113107523145092366559934893177894602691905100098341975718551759823902808688008931618949909254679886595514074626948220550077071095097155499475254911849764647660784921549955379193925455749680470953473184572568242109738124865544709199533661211048373769774913788523237208153469602737794865693132168192903334277331164477699353662205019803985427845697735497671887024966460095222786818402349353416935020981524383055769047156952124889736851026543577416894204825528101785438075521371143541702542873387064518971546109777970539380304702974488424337881350120523696996008333923744334369810562866809464328683081677748825458875617890434962976233648653983980761690238230835946237455021768690514932947819295070624260460250346384948688890889021981888980024584346001361436242795173787447377261131696421325912498621670777752816811589953126880711106354641191067702033979480661732472405312751633637728103628756040277973499206362199340693789503579237497709292122692158309576938987650354476921422047352344579879773151657314746705926578973035104044716985989923777836340699644969267931776413540899462134509905043426746382096066143207098132797171447289738275739058192695153901276258397512612591322560399482015287548847590275534276315027528307130184870407015233014543446765271977972735837042152790405709177690478647623100316352108840475785591111511557069119753151106846512961993069326239439485332891877998753802171591100561403656018694238816383647720574712677120035827088583956725045058087922094893383480973612820315614241002529018983752538534275589436524865461705042268107738198247559546282780648963897198637549631128588278764727605273213970877497534280208075683157398643926176890282761638220458646092316645121830909558324627593871549990640408064641835016952325471980876008756027899759603932991673383157873878960687431898807541279239777327401511530242019603035074244726218081982982541868683298227893679607508049404144001661941637145462743251156712219412917658322291800068682000231640113124077093927027625544062163982214689821841619762379133280367483100083133105015740034527583104945497193450594661539350118666936911147585037435735824364691387424826812552211717088238374617885632382176826801587181314467826065693891974357876460684984576985025036134573434906705454197614763260106347676985204119709436258529616336940920354037727327293185539449109998527078204981496813989434538045345302155104239923284597911887243458007899744144206276391233883928395829397217032470295481582716283311048560600578963182279841118179107396309796106594713705323907213078290648692999919614683392896689578870021987712483980978425608226262162733934001416658044085300657767682786838799463317433118563109738168598637834179061946275237152762864101378287499150063151401659710083211330656767327138767577998538867928498416972649439781098545204820383159273104024950713240979043648636561917073287023551471018770049878417244344293627791477510767755834206398156180169585756677359223789245303986108306768393435510679432587222220388076550079441752828877634900692922118937703430040271476506716264802607599767017991203512880383173679704248083685598237143304405036874574000841483490386212983811164017015079813703059233888539841760398485081089569019780994895216531061181477863657630323464455057073015149761597593597177515399937110017429766720768981849548184022560995487567785668534375098847202032279702720576840237273159545165919049870928692176452541517620509355973693590396036776851700519052924274489650975183650803488993480208399634509432116416447999990936818650638337775941086154962754363414868303434986267198245843477736222837728134366568604058679202180972088828178672461029156943719690471418933249685832050562688246813390187130534095013323165990376582086700129225568962611671270336432024068669573251542961311637701290180338075805956850497477365362574393769095943380230393140073549484179562815136540472005900685975545295545812133458803362075178970964685079935017586245535664239662259998312556832705674165375621111641456028641466713492819431482880415517312319678125479113891532124502025981135530903069741615690373510020692136098048666854212537289449025401198354549215055122432469746227639739178581018977141524663835086141326022976288410189088529961225412616616264621956131125408833746963769936188326985495030455443965739310539958372781787052659704037457886749218191777429191595623531796627993668384956710439760118200473368225234321685080967065971812593269780821877651085303856848735374810121874245047222439759587113791168096078951730779589053791320858034676740568421852604675040101111473137224694021747400327130712116660415710543122458724268693381664828141030220772238135276582907491150378856694350923201764182064238246190246226506998216299128875611400086064224716858921603977151747305711147882486402607142746840247333803016945224017498304153813451375420521275258580959289348975142157361998977921023573512395985803935473029360474794944965048034066818299810697379181225042581219172540368244302908787110323450076031434341293796447821190459396493525347597698067069006108649411214693011129919182744148233151378693290059688691814147323199035482087707878494763205662076464679188372933273951775188907584635196278909889179587521568928333999956628719711464046940672670864252206001458765880918689775498337635851278546162789330320858620345589312870265067905656083331386737620110079789068992933503767493259832704175412003682895704016519263047933216099506323145333839668272348823801255185530277484069390003320590723061906360528988544974310436106216808406218427661551607549990809074806149844475831638540948798550713175574851064745032456542825137442545981180759613797230765013080205245781679021317297575094154278320137262331229080661548904922172785329452701464490042378605705795065204547692472755992081985667382400017913080675239745324318982136624997820349124834248335368441064957540018710694274340680065986894958892871960099978043837034253899173306857601886049601152761577860691734146874431217699929956797339461421171226849167063988151386038179346365542956832609740460349106340160192386742370780736154310980901809874794813883377940841492745625566588588908825125415096925328119384537396024838648829779994085546376589871542915670192035829251699170078114762180268655409935347142787616514448051183968444677590924860760385157716022728455622111803092281293394928060987302353115466264618685389426070658934007934666869134188336024205448923620891681334806128427829740570887501486101066510498972120140092957320189921537551623813876612844011931986039620820928717887319233656949274947022126134542672836525835358913677669007654342773746514782517995420202066207807841147266799468806169872777700837834499563518908319383857674286271929677313064344374579039580922507493092393647820543464981458215539285215276885007951821555210310187887113699671399426262647952905834865045849557193350051345119654615642351664301066385858891890525336449957074666905600934009261330063343128267510842563216833342561507776049327411642399064889835540571138861185437112415596556851297183653578910281169623466086532990097135044141042532427521054438131228102371591473136319172211847733081315726270154564821990121548366659642479858918833134171950060786830150238643633496158177337341722903647113836509049871353793618844631362754337299522738889366769630732491195638909024019422907010198856538069897274236310670305334273363195910268798706741799914623998183444121618919928064416472428223779409383932695419697685890827003752582768940162765040342716337571869690880149488123821860419763536148722637673219658458301075883065509500819003332199497344977744318716089959302448445330351477288043411792443388773368061066713242044893688529998015912776112591293320116644876797846831806521142473801406868343904647180336051435505460129708624965790134365156580145808239862380641438998814184910795196711295034620571771270435274351547619067279682050988590648411510873922302337385055844329520474237657650935533508619761553857812029814215149512711928288498884195670421406316933315466923572859366319129962908250800748752066529492342383883749945516687509040403413253323628797614727365195226315200871141958066728633755779594970862441094831269784282249123357060181368555710149302526429424948833280331307462693053009424246048622937105110567679808482688356377912305991991853376853230831431728101185073678737248098063307354493128145617448556234554683357109151284425021723303476329567199943336117954302721126902805283440932163514453131706014542087707520567902196886441499556809459493807074688031277554735534677796410906266518429123115816793019300021862400110636059090450865491027867121720764094306939338614553872153311072559209105700250181443650170282132950123483692167832213606004005813191570661366630671529859980482157355026429796037704643842599072291394397346766606912352722576916330109771154567018020537877726526724430697660889117678494344253423495771866294514487648326532131334488797979835974457748035263353006879336092128864714314687120630933585728873702535285702537106586175377215343889727326359176737195554031193652414320735272188918598146882298084642181026118984960852469360268438045998362575131221809906234388732291475662463065430215587737923515991668093544561224994677409623833919923346770179804869698687797579276126821976945702142664321263562392603863272991316796611290200247054519997668726101409071721999699739426028023137279835522510644993962092180802805045623151685133970356003618511309459168686051425983990261200845956520685366355585028572838929539243397854201800138724251645568031555552631831308722681060537187357871019422022453282195068033203165355698339575814963737877058391645080489306956164904674400918134732131772786366024421466729463178476612830308275779814727537365540211870465052640438110532298456267394898064104612495659231368511266538662768999697764088518192676203599118447837472913740987767154459394935533820935023211194036730814733955253827903570777068636616417202004688040025027742871957140919584161157566728402499354790371436537055573246678274511370918064461785095348290534004433594525396275976770578831118976243409628720527420345883029430519442403178331476913570075150387923549622437283822189060503027300365825494488482008527028013675591438264208783139903405411365629587584776841279001235243893095771032384935559582337023119149121942125649040766420709709563537325920201696737708510052373690099746327244263934457420875188949485089574227552979459558875495114271693728868650113567914959572187720262972207997842844144909377540553081696311710347638314141379441449431734136789817274378976291639751194921065519145252719824306231550417948633398806571562209805197487641864559560533400563750448099515775112522444941113024305304902998787646959728209915599248130218790124341526632474973192356209427579290215905673190713155120030769044145134986688614379370519311044774650263514388551922063833804369268251820674363411059568469592546876388299960085189488740157399362740616490932719282212604077075779642462860879412101316503280552066412076620705128828568696076277392755045464832922476044615085142704656988234831622542825160477140347372401543304039490333967518903719662259873308195117789456850451205495757153504819518073934162829789862556262606419680268468418312803691227675315244611157574216164810706661327499726568863136898868062549051303633778377679447303771520076970502931560538915811275720671477971287290810771264368526236904680225016631598471927528348549066316238632400282787965452296703566912916636162143167155603168354598282367267939323092270710850886802488551859091565031122475030401711326151616727093436661650040901015405449234991686089068018703079253102259569792376878045636975378373495192346028844173720474458543717618561244196559682971682354704401140537027443089046773488779718613829118116871500857197925648117438458146631873520951108889925673718208570310250329302735617411800019561577053725132196633154668272042096214730634664958185671182664244888960261167941736485235494963326540796084543484613398660952608304258959187853379985656459193396607159826770538666804355679463708363599292339627623301012446315601412591327930178606666851882466730043511637668225110869232301024406753686041189146967680244667416010291458613364208483394740146834585892913071362703055411885594704318791254147757192914385709095239639128778711938233748949986939594137578623873222728575655132617795079989096763675950909383774674296714051084665858608048363023343232417415228109668288102993048683727583599117906507263279009973239257911588143524494165940713560542534888946908820536664224201532477156331040809866534856795795581539275261271116840292734713166547062855292131325613985804255924039919954438955295165984699715049962244465511408044506770751454452987122032828267179515750166649977322429378779218963083918224132383723799273315729135595721348671857552323935327236964775451827943583404671904066187004841494952996339570283543509673816398441091550724953251139983966693167560026950512035770131314461886190768406975659964594782949088615078426768484579687435144956437704256439433975344462074974444450053269126607285958939200786645563159268081870867134490000694520985846156817441234512638727261665259664260684782034918260632568681401542476801450695194733459233076565358255864692309258441468140729408121099171198368145427307403883767992375870528740546173388463142317591058244636730706196463274303038212959853539257752818926526029414263754532707093552640170598156112840108514543029006634970693751342363872652698274481555906556686779436115076035625386977881751504800996363632637682389746119159566599438078140280061791476730049545760543765957609737219043402174807569499980519855171985975940143254573090065131071401783213848436322558059331071538341284147476565833870133543798170052545528854681998148412051859316599924950504899304617993981904494141513178827745158269504977421412342549622500357877402945079568471117636271447853560124054219373692001015745811574436176738667444222429873342946985278236023627295508934528776619853084523998649061475338733966263782185703070704404165520848095584455072170045763952012118807566246875284907863900090229541679240592014267541852334831386682665436967875861443054274508620440164930983527159492348593012312592968666062731387868765171429154102051189803308426094500714089544080900638717658851652975914596460925729091035089880145331439703445280758201526843412025507473677475538888502377737313520265247831632772189754267568271362230359319764015701230661802855787234071523879352144092740149197878731870977963576270632119555727567622802055146929578794069284812857684319131517826658171128438992966960145027667741477151235476066068464085820938681569288894710864332019428042418783363154300757314688549456174970764348039653096358318775882318269580832074387137284680223530551022536661410749445650218494837257012701079433466419899905301135388190046138374383637766387185638896851414194728208427621114840110046877626459223289343652816605468720293634031756700042570336965447647503632086410839253577348973221004423666609786290481953611463428052366898381879811724013679674022318179466601126296027258302531782259537228208237054848758448461991493483423241733653031959574639294626958725971431284871321108525130571942202497435292778618966817727112645227656445246766187280420537623749920167069572503208769530523832012155026079049106746641254698607898890966484946051513802384951396282197214296552974592734414182381212282214261437825123916029748799155295797779416815228075548032542612033801709374668639736762414876514130029537666117781177279433263687802950806489741478242281233518432935710897368841534825999631815438549055612527942170601115190146355557886034188090351571833834350584487529754061231709443978496841479822849013990629132151788142162748693593440585576879823675028031416135640429989111542670123682267593380817864739456630700136669605554114735052415454339579440963254715727214661042318325479931850995863603742215710030611843224029677476205134905733665320048398174850874090544148285966534842884531256416449342544980662929290310951475807408010163972925644559599956504352926307996079981852713827694907820245013262439749875313750938140965741488592428640558400416690714124152959604312184131472684881347213846978454994901575484946873603825926790341312205475941269562387073049029244048845983007498919083371348721600283398399654184009925368958602984103907327196265986441393089653624135750815291891875681889768395874642689156976804193630381770836141332659099596772474975643493223322363036957532967657226061886806679554749699026929602303582291605895559446550737822549375031303879447932147523108139587107559346892474986674438048136538109975203677194469815322716095952914834617189728768925891795863719748650445462496288827409869210195654414320249666289735059349183271705166807094997685811664152450498758993007522513783933887133121488693315419960600764951633264208757205239552971231762909431635286820475277181091560477913104120726562531718116513478132382519507285650146687635871842493072545246127006818084520770344418366822092187284438361318340588284451360473585956138334901235567777529937819746828413139611085616118869466454060012937207241445752631681116995075798992038270284606447959667054666849386675968677953462021574212481763982674559132512438149508230051457219036429619280485478676450216271884935825373341320020172797188302914106243895733177165866921055093636143020372090803449171255811964542870019601212363493375181982287390474238461142409542057715175532081040187522732285303317316250383257737366479560564799334187282044915085235174007874957092318392655295892941158061918561670436370588964836663440300334405342493971923465337121837501557518957172805827989918877001555254939252246649846115253590315553427934995956162118872517369237468982091448223995351331308423500209175481406047889584904124973622217737422608584251368007928050847161032083794413470167840480864647302077793008034088385373354851185533013618637691163964012126175930587137461663981032969860017027389807349047348199813881011053648387381809641311308640499178926579782512864759355084047668982587911160529238478783891349444847857843841635692131193201327304917861221657279173957696027555164892680820124559028095931945225998506036639940944937478848023893255057128176631640349054979354303639599553813639618992092322305307093263876114613003427169123872323309465208653888851231386393746177518425013979641194271344375240321991822447815089201581360980990413592576463836530649387547777038414915982175406060635536850184223406335299735024540639086952510217683817154526685167004655724822357882534653585924402729537954746580732456839569792325168373641108519461782600813402957610039066568276139065339166672113157771717701595395585520733985310484004728699266565740496116365537973319625405332364697908031667589746430496295617963500275005922600413401349784186861371772625474099428721697354320021751468943303230238529913860081876912090182081912849619179872247916618148081861326314780497865951309213953999785238201398884090443028660904885471226710681008522787892466582385471137593550671885869623826273242521436173171720291350714570198061735112784531689718140751980981913808915352783732684141931419979165060483292809637173546970504673362365182766602180506009682023841403110777575226963926164131948408770753889777514158568485695019178287420942703182718765108832506835200046412516480774917025514022542227238465741496314149662108415378283910516469896779936236766951746337497436837137874015604043169398666994190481838178874645073025078973878742711380058233293118357677418645814711304848584648354719582002352914235421417413479836392804603778554116729806728771568938680867719864166432425923148835701362415310401090360311615404798325223222530662010435840394481701566695475785166503642784088176685527040061802712650052057318409583345612410910652156788505010823225967061328070934036549909788113104625626291188952249654299791101811381590160507631892462928434278478980600585455882649129976650052619174195225100514499328642028111665796454857357394022304874973396680894094813960097215375226108742904098063860828149548306795037442281495678171076860807603990406449508516071426764029573067022705022258665703810125616341840978646805203501546623454857337060914091417217764348205722534688923342024332201980566956110701759030397248160527696382580253628574770518214137214051676021118624770596887026428930761366991773678667330988764385350114239086125678155467494556363022433858620535715927876586877111045823945893408574911714121801526560033732325775806709780778234072022108550439279862120446820417383917300615567485848917705909432236797631151204920066008794641400169456013517847601775242066103748380358028753398868940167888503374192834634201294661776149305309532314541413716515635642152071252191177435859566309098730209408576291642021676426233940752496942185785122756363682076316483406510887940071881700007125225930099074298070728128832944155515079155777614401414060415258674914698286109173004297786014120883770796511739158765756614394238045960847053388001549326194792084831934307873661684893780151497511834947445886225237534294593821305800536222530311552887154668684058339332024098389673160569106321537216080548305328607206789381944339025798440227380206682248054200656087162582480205286247864558384006323035095807783466913397657731585854317875566406101051788887998131890202743459429903689116402852785271172461468036171084119147473007159758250406969929427877490451710040841725629588371543117873883690546443687740662871268217430459687073131030981968584595918197416804379664924079799529630257571792514164078539217785586362041061820263131140357287757159623384937659825297871635341118685978814067763067824186141668917074489018202671877380542339365194971376237117034498098242332779146634928175772703720374324240387495049179509319450233202463682688377674458489513274281905780960852642956726949712495116863873859834774697649485264431382669974803740771178975919722471668871856335835160170239783268992451745391383191071772775967182145486460745953563051147233222347025754351974390181098654963687579178478752779253952422714623180803490538585031098316146086732879946952176850167822320277062479922943670906586617794420713760323338490782321954363231055951376319071674766634347688983835427698209685383133301069677704427854428667539530241325553914524069877999079434773217433162446712974980423321088449882635209108244021681487739532629788760424089492431209700034794467680802671033941908877672417224041143461274962198054152518380581769949399390577747663781243959575182369337756763714815134468139453455259275364171802394948775671730670692925395740917678101618428439942379252137199760099196230051428194485649495545458353754018530757185368348544102463057881563699446843692642268892948035259084417298024572332828246868237094374078263604922508475722047875599956845576042598539286529586222003588276666463412004660560328836303817672211924101730704518836455042187241764731030170802800906300430184595883554203915534534447248685467334498651452031826786238165121301097669253637007614250068982955196442984602972039442869163175845983511792727299280393191171154274263916742113839914653660530005592724834767696307004451142006215879432722354876886855857856636718453266082595513396317591925425531059093366571398018547586471045864544037265443374920142124671935082961386273361686385285872792049393209537348015395219039495336249513418361335716032630168777108683323430530924135645313680001244567384696342630437475813296078154357307941669832440049169558813233851807317679961617948716003850903164151671168302767074900626162858570065026042094671254913842010210552944250937880913359627453977714106838977035878749603071764608998822104697733029135054177616267885625544651835589983956300380896330531572261253029993994195514927406853217756942272349624348279259174399264482389657698865836514822882906387409685785321374615518885709546989199808954893892581639941835653070621590884073192554365673017295664444358569056918684732172979571980116033778161285022397577468356602840133766816156485149349038619968722559702345600563248614760882991334446841380130591416717515880153849167309272685473339578104795890219663103537471074827527691046623567499177000343388750430245640626978254076476001197325079607811134783275197296105780857848014383726246950873738246261597734256593944964415375469212359375965887683062428973794799099834976210427437721645600422869531471248437607231042302797530746671800006154995441227619509806971916756466661518901368810212444748118242125060156442109602644025671746648547824688497638772782701044835810643079568694273402584922941841657392614031580122824923987885995203931313066853747240916390408801733365644479321115309673449270254139343383901569954634045543555196324036209028214151934466081856281857471774963035659104831185211771852943205940932714094682414520474560317466488520483684725380611495995760600087938509460719747308701525922121050784003366508109598712025456518469426484615837489802027822244403778807777972481595623740752404731665158155337918525611603676869646519481878796737649450285631370456288844291459233560805832732681319621362565043045159714477767885615143578083723809854461080339493833775408118507233580587761386120293088467986555569476716761121398577535891342850199449790319884523625494072228117873442495007122270709628824171466351826288264600776610329623679415034832427612297441305048205878056386785199050381808357770395757798692453488663910286275684122497459403529046121561619092849786177032387885079280106511688859555672078199949787328148674440351633377078008764912834486810547252810577179654544464669401574508915624455573419090256393094892536973421373784069629244522004383645943194776570104134002406436523029103019552760185062821169567913516475862992794188192218344528902078428358893007921514233111807114103563946867123738764877258333350076798934398971800678493911360253918653084605789791955984968240873438098250250452464431936863284150772637944268845790471238458558001377188207261227525356411414229843714135787520126843258521996800135230560164253993721445330095025920146859526907035433656781903875350800642601063585762603941482465829700924058841694791422568821596992594623139160414718237673152958511545291597791044703196623764511556365595311851402067627600889380267492968647155957256636085283074813842602113999910324916034318558042434731013299052079931644232771801194207623667268992700037643457313077052346107774115041997525040630086881221126694781429486060069670280356455381060366886775690341958954981106905925751161649528750495252500989465490613953909339304346164939652141500516452157451574243967256447598523474235339479647575862047169784967161187969876226414129958862172415825333409706858938313530493786550318280292644193026220449556895962012685164475751249782603230217904743365108747095627558889901680181700525623012615668597134634908338791363057313256144314702494794051663719120805520330113732954885556007585894347753283868714338723674801766086947480812878069494812582608752514178695397558518842949883810742019669897068185893093706550763291568542582353726307759551316141629142429430388168424702198906486953204733665621843057729771292233029937268312362382696498648936379510249661225137248947647183441088163263389984705342032704255299932317901443134085700389664804210592678973917881406684172340252970448915338698921481231101253693602355101658896992454820017022163004601832466548935007881643314830879433398735836611666793476897541593543297378572836103675429127601619391237566439950012634437332194869064432497509928194677042736535839432216202308735368878174188545683648201449154813216634467908590676580080265222291178656750933610998427317910559058808632893474984650567436609365320122141785268887930788068603561366438499992323558077380115410132379459455587407107482330164825818950160510316978686840140510562562731726493466369338086333043964659357125221506185836981427917825937654295112173576339829132397538852222807435415724266209650550038641543200352614385718753947356742571921692884619428894779368045972859521855172138432377714450017705481246648711764689642804171960027020685944285832874659328098624809871741929198704250454664799776624471101030782598449587039912925356485117071956304012941552631294921334781090597703889144101986937406095400648889497698365149011561321801387227079451726722691295271193119245172219704446128863377994719577531690402181227192677091014206318892584659366441838039131528734679612489141985643643798090412825516944555212661465058353895914306543372777758036463574585362562167152836274767449809782687953229645166202419884770170809603482241802973580636567964048066885872754675730916041575920615849579280820087516733246514704083452879082563700986318961090103919791969462538349284017168460914774848336278974955399863659378357637125418156133254343522719430428371005365414324416842026316963596945336765136873507951522951610902665628207166800780804938788163800091534542802228020284035435041910830692378346886046464772478500285440403038065338101745925865371449541526253651734316297984808740504589529906310997674067344032261482226861668375729470935795047776344110345791263594295313071289291890172552467055829523204368671098483075643917515192428904148691475543586433331740947712834082033957972057138532024520900703741243908136052412304348919002718040949724469760696385087101849614534404934909264657873029462814741377917795987056926667004550045860554920741749095294130661623003694918183325291977010976899096619526152695879880647463976330497546607509218622116277547613646242703286765628775222508631329485264821699872359468751197088202585864335804465225592990360813302284987786397662799754082343711900243411600851564085060037151605679345338393893929313344912697349704137733269304638474619204844792435829119626083955471285484115420873248262626184665363571051886795003443248819911742858281842056898447823663807460429533366173432313960425167332325784759917024305227706562880422781684756845065354589186040710425523190759047101528193795420244290700333773085847159444175254999812154872506678189464830919634127948343684698213943528562139305791933100224397184347099484333943860767073278681876245171937559984919662233107261932267314722635606838851218006072346939473533755936330149117465126993146234241702111119721725588110959837679817174647437904703507882060577040896777832685980149862398873912099576407975170856928222986904793958615255521313801555678389712286641066630896451289619583284717748857779158438711816854412370550241331190532982566901166333811625305754315486974461112296403365140251537227957044445612600680398280535174567945903713154882341715870307500020490513312036821101672871098980680702824242957281138681993128245177664456529613339218444510547042647157041885694365157174078161672418868984283473857896924834097891141691396585304912195658254005414692164283609835985838413370590260709588798728874441792561236659296678331476721896851251123381492960257817990708307375161893459806583428040707171412427612869309429415711653330479075848717939210230445086094464973141480159428934484111544041680633094593667220844847990369782073432407436703179340846082339738681866030726774966246044785386211499600210300773560658220860671740370482976607140777723890533034249460020004817284529828534015327675500693195969563912709052310949038734908424716187815052155684669179569228631931778839418761543466639313074559032278838636987853024340853042273317483247252234561820778541699469521898261948158484590007336015896926193276349932139717388723957195335735510040083206116030414070674994340589304385561542750097457411422060070225448629588525588245357782687756545144311034487346937716738888233207462239865208659043800905775705188363157244225792865361178231806524164773795189009251453233401126487419168729251755850263658464499880022442207815247025928757906903071908883564740686029376800380768133979559699391100223197180661164705764463661157625853114149787752589948454449204465851238452662332738201257378505217781786444811626372873456264603271705785624974922831009147269822558792810826384448315831649413435994181346099845982167930496192788746667304791298474495687309937294789937425272644666217421700017801217568595313416905746574695466662710171519376375419561603392939320641739089529515238230570131012294697500424493000588427257767389800939916964117492684106184885956623376877938982699393394903684090406770549885197256581013208146133753238312308646279445391400707346875358208575752365645134299654872800704334339732216704513344905032733277465731542633183739262563942402669624656549144727553821940104276976580691665008661356102117997291186184629173661706884030783335818398277675175404041160110037378658719391377427887236899824572773783147798946584865558136107917488268716813323088405730640138903837134532307012014952888275311057331950207388244818960613949855358326892379576125821826552517447599681242381712314742477370518506399552597236204599105524860657637008525957078439622990371579966371566360724999084724780609144969946382284337495637175128210443103227431664923176185873361639182047205127785974370759997704813720832252284735224688721236904418817658056687595435865162240127551091000974249501612888921357103004229305215898778361090796917046568334016860750966638463208373198307026518329099058582350437421438652425964427731342502442050734152442893330944589203815020689206822061982003111392101437929523222441842553974076306371374380321098170881065747510730198445046599313911863912181695704350264698239386263155645776728524825862440551113209231272396232172614615992660725003787459812752803326557515683741426134577237269418945554488005800399194372845124298392024298440922904733743017120798798458459875527894065933388445044680652437855256317648107227820005212320738222222114052750172231947711581404370009617965779828957678673977228200844253979051125146294988527656931809579354450518617968997281514612147893813980696949200193768793699087990755869229459215861558819714399123639073243361667465336014891951933347528294805121529110061149080867175760175686113387630833521562921062941640841485467747352092255949629379161077688395518179811271904837189896646627478525246080950854377041502511374607590007751973053398586356283823264350496759734537430390400906689852973299591097973913912122258052575600499719118582787260662302741862129521608998012783447142155584361903949500241201715778022948320404331056513283702493911905584462448122980001805782558198982853522484786421566228086310423805252948493921030356256989744732484593527292697649758453386597479855285229591822202958239042471021188016713198735249366577303958524774983540619375853670092481980333480840426865692962243377649621365515474039662273450727951067009167829794283043322466575052324467802174310131008158110031295633992703980634674410183750455555295603438835357278343000123673290975624926330700342944092686210542905587434602531250076232823301528993740553988163227709751878529624759342854871809670796548219156086880646158997902728920834990059654249512065384219084729425846141049730510383585214031904862688084410694994412071682024948212269689808927002650080953802849468379821871292642490004181168219271566598321554343373796491809156206625789833409670688210753738297556170014635314654330458214930703870892484343213352461851050299752708126358148471020972035939060147168135927213396586102426655506357520387431653094308158534678928006415999035487348421780739545653176235166225218201188880155350122966414122668213394936353667504438811226156821726697165168067907032263565870250371528149336146807559336109342254846367935517760013564997180779403513215012771486560185981961514471728172250860327532071029006575029031290861581787787578598358835019706363491682701199978178189172677742188281686635985691628957008297674875477848556545711097034268461351024927514063504807840237637628832513762730117247679777442244626299188587325009905276263067051329511350305155683921668147618217115297593452102616785665829243857251543588599168957088760737998473683272239946956719603024304119835789236443549611219600225205614009337793042177224428589416010964593777658620871062371436309890454514110718148359356235163093960472384070017462294616789740138390062504422950665178306763955414114944245940895609145846365815822744067282048418860144156080643951862076248880418355422421077336625310623194018523717322469311778235983945961892732633400423854200489662499362232641714898862573810633196431545994732701072348916364263238796836625842237192736337682060999334608906071599924061757984068977016167768629426377687482788611815775364010250132294646685858492201826681756387286650507008094315725830084726827347826405842262654865856814739523808916686043723463910446695517099801275621014408628307529980636726602138711979338569168412369121719889454554945242378419425261624313679830009169338139597539373703106338613238983778093117059895650862513822446225750370854348254846219782528870105498137327643752894835750393303592103305583259544959208097686099111929123516243403286293385277772586555213273974497348115500413421991028056346275176568687718588404143021010002803145171713227261091735806952437404609907147289356862091539200004791398835157665367938482309963288597891511259430542133293690256840013366062085403227578736131758533918459702345871917436031136652302438611552451911917708232040093744242031137776558541956271218234783011418950058248737802976297212526298908942293578623052632575073685898451449699522967873992599836602956215224669867165218280770414557329134863308112050600040754694939823714882219335765946789274119153721490818031957786939605008451751320431416121645073138503950955191148738527341587038880108002133675306818616970165991980790970384110295021601346092891480691055322103840176051149730317899094373589648613331426547084219774325041161727249805604158738829891262471543240216443864564811388709367030534651184341899628118763903955491689483926576212937287090155751605844014757616724195235805155051941739728601083868480958043210885946518688665845698875373452702763427248803720040063128191762592359278737956457110245013172376601972061099625413076300186656383563216569404640006383167321080187844538773904597623752854522738413765089037534515417385047211266215355231742323242345548095486020632114578852698402547750528148368893384633402740903927949507342938987282132631908267906489535226187554337084158510654631293467717151464244511151605933740829095494128903287539822873608557323071485286779438690291141354875198249832530988188492846006019064391313047866243535900794250822908946560180972750144632880266520572210312619250463663048700646199850915252740477812634721954976634934073121795246954884465164002576144354854269770198056308409545777314619901119777974383509903218328957711213415572769614550589024668915052017864678730193895625572774293656618723984939033832538153245125824524290587521067906793734725004757850513734130270969916264860323923759781665518927860846430525837697349399081198442664023832454929464244262956998988592562718028090600724751525493682840796789062780078972354668785583167432429714491886972059329368059496668066225172019199242911109658350249435345803682293324625047432034654942892325945927850883515040993020909281038258954931981761498018992719045622173475854622243899793650074982196553252792024391325051490385582238603691643181543850939906774630627956800472827111560793485278019832966238833326959167620323768728622937243406513369377273258992772864587250680542972479537956502557320586601473613683354993944709392055123657958392806195251100473989996811888076164141750065169844380055588253879860773624895093023858106388479536587264196370954214323489598280816306920300777974948274310024745795846462774549666549331722761987050303324816613555755888630832151535254154180366056964446474305313580987032645456776115303323532908267912818362724370623138838896382032980270461441784583442999302742841626239416118375044044347290774939577850031042690555578072768455958242225689081459497001586147496322997699998951245374976633365761787579557540781107244157851996157623558876911612028432147014035894472448189488233761094519259893199969874787483956219857055890906333220872641424759131432128956369194461212433161278049377264685440914390538297640462476474336378952161009709676360716904466647464105603552727751947960232981783104652193691184125107193211013818078280939720280580378860893759333694902327911307036436838636769811814327748739333703560589270626421148686353229745338052571199001173193702756286036094487084456791546318452660380140566357741638679164197894399642072049253976711864700215264217942419409619909086725206306975909680974102483399726779031431584817850361893094460254236224445022763799726613379699351630974139974566748370603164617558424775922857590003759869364970751287984895277303184192791707179961921782127972745730103035330171879911149292211849912225536393780631868008858378611515603039624338466371638719301757151721386521178047927444784448379284338044174725977022821284039515294712385717314009305858088362250850334357229784651443823030157384319160553474665540835963561446083062161082811540814835156259101828269726603207306204586057803055397445005708262158737819450945906379547102716347062000329890193903759222395243454421924413397965622992642149833425588644822628821263221868631765046940265675348854260466558334642516401644689397465896229116032481914321178307439225868637865958077435416474578933849521182556697926313312285799647467564944669143895766964754514939556656350510812457438438177251865169139176224629978873968740362190951068494113786818040136670843928009342840337048436357393413502424252320280916234261267375609158616488827558852592686210374011045095430505558462187858190105198927153229706356033596786450996390054186258981821138843541379925013248818880461647576957722024614215030181159057688421692140471833701792498830170818025387530225878983189229835042950837707778476831142650753589112573656580340183102523745642184279753051896058816410203632652314004011259810005868770504741032317804510653506476729872661985997929859792544967965895868757302749491418900538930684152209007455156485211877503211144159242990628190532270700231371502640437871591174874676197143185558872688661587054269265912538492621935530894688134225927630547352348532300850426978807574347647093536432331932542126150819002295122674268062273044387857021123391923611305039227516718987586733306548418452554766437164628893450824820262699257384862184088998461890199577355314194301551229197715772989132237056859456869531638811667905013879630462123068281308999420071156270480087710442181624656200691909306907163054233263402299727520995772892545661797832016559248863059826873955781666896417706052307614593387661414465739230299104737666897459700214951037389732923644072686730064050134383380900223252818110176642593246967104820754783755827876853100716300729097150007152848119731062535378001521663599061263337688832511324655175615573988128663708259433672693773954948692944425756549326174989493098260097502324987289479952638851439809602100195949524606222275416431622985444384598420183073091186658116221913658857037394770499375531941874290504542858471929105119544840264017443135031695609513636774035422447141170901339391575939095477189648915962400397493278502113301461666951759723795009098693069378445532019546955202830058628812864452203272497136874528003284224200822248747279606141948282707046035323130096162873918776083814945758580240408578318968547838195526413160111496112300858464592820864604069832670554958465768578590484346004123392449992582004304308433545740364780383710555460677885955060102761061389294165127223818387403955784094329825331244392460544053113608169482923965152254498141412136737294992951154941081803266216739941683415166071487053307686712193356795952772262022767822018744366475291186822213800092119428018166655775103713280232648708152653623552458092377466396786445028659013934266381593404576557096809822719166744639404262446200977166730948553348187231412124163443006984461952106957982547003989392201231804140845317574452406777979103803688667313700987810411296880399504640692030123116754248758087377708846474118610883290547194184804966717295965606287543529318385902805099866414889430522649723360897208058727363745549141205553233193506501838621930842896687039497579724573918492147226607144330852612758018292275038854356921409772827492724490495249489001955723020894916021598697423787413352834208135857305406410871832358265357635516775745576580001964095758432663660452264317376145961611381731345499483415327077025453812736779651029726017345179397569718329402298092104250980659453696752394394290085698028673458217061305647117964993794487608412933309750612038452505406529825855373575572418628678986103085295723336918517884801154823044690296909301098412884701494429937186785503298485613765520569351184881797464152553313244695888470210462115679612732838433839101584545279325462255489266208283100614008902929453740495424096539110080770380142095965979412920929851862716076630063268344638130622563202537405252932423574316733804360415066789540590157707644473266765609169913464837815705562457509543140685054270009861556065145381633175470267342569710744043991549524495841719619313845482857799434474362085510077316170768872098890339142530844135245561734379648625708531257227566250000109666480177281677313489273294821403587721894647940007175357276107967913898744503678882933747357423600802723261580282996043319146092539777159538735086133807537459276915612538330394111803070704474626724440413313916242275858688763805441446220370718663640946450176069654551958759530818948005075512252008294314234219948167467593264719693504078342847801427958134277215363942540174715257453243492086702331750766611442423221933540951733183711199050094505506949901940945932000916877072435372804391798848321507696299918380785717150093513742761290076017112393123904526187239549638489090257517344018690119655767086623076136328688765958214346344694243742434042858949541650193196688659608506967391781989040154209157343379857273431145810112748006397256229396324835760523335555396257122621407478931315981043412729425751402407960719126331750285696252951233957727673495222275881228377621091420366292769696219211169537688030061151581944511439470801603905339311988309351402767024363984374712117878482537986209200575508911194243744150273817077462640914230081227860787540947640320398611558532694009282710050499030174305530747423023217009710148018650534029531160800623589332535555457864303663520765152849242902226390843019708596631055612855698048392102396156159899305776672324982263741122834410683371922897503216075924998430502707458759712876869299656313138127563691392121936704864300572183905536659116238718104897454230830428594082914212291142457903906322861761398691144048512591157039129212772252695487248455159997633483686538363662668451636056632004458182058253190813504982027889590343400267448590726999301203671416760359382058956416167921209171810374236099925878219926865026734106766845588313023392093693982197094550108758765788276416193781236486501110001782939966086078662319309556927375856417985290235241333195091636683913066073348998468596699585126210129064817740715463835472877201899669616310257962795934769191578657144733003958375376820955246159405776048297672920314911051939896717156393650455951225855941697748815383340600380528409424147178800308966472119304663784278228997752208841206243548425454270980953336319683250362812738426869456454725579837083765481079161631642890524961490320745439119065120680833637013385571606099333581041459668368620594060992042973523936333425491123483133754249145255253244383373666038084817718416711231803855223792843411242981704345835099747745016146020994008517619353194034771739994903420309369547667394207926877674904431401270426091466270554623358659804027830410535733838617793180568039988212416522902370574118213345849208324152645184524215437508339458586242214613923304997760934777082566532690205368516012925265399165701327713537545191830495559624439162388763529228521129245507495117082222357799970915173205848940811809978687011170976606823762623750636163423242932718687263072910764041056434764318999587126466008280076261562011657627153114140206462293503779727965581066781377921150770618508296665075086199310813827067638413321279833270485131581480359852702214279084090283975537788178051092208827782729924446113913945981885663924737808898398347362790391745109543032291154228237772372499583323109937053091129273149086365858757970431520487723194003343161877075346397981456330190561518013840281457164865625829592771215672690095605800562913526832229132966422520747420445149501699662467204687975762693788980922784366585615107276505536125556476950910931108406344091900881980590231830430788068923848090410793351866110732592068556238089554989059674115518342127450155977268709080592428872185743978517526764128572273599764011673706490749675653801078986217643864383673665731712945959511935425449341946215886617487230979403568195838074439954074427003874091289817316744035457558350528637438147266429507546995452505366014710818917666767332965655194025493186569736137600075900377474831296118269076156890306080734995570979839348104563962427956752157569730068516839844176303560267683009415630214248942291314480100908014736053418821521138879948926913604531468898547946221556264105271552667615775922945133168739378845046137354658136412573006832936091552699666376226129272083387484614699052663169767607830003037047412507288280704430076737175685259435851699405943156777768963675166612010505287406820869490499101438586514068305093288616061508333927345484214429602368460196951318309410541858127879894697466476499139926158787988546813796311090623408362601211217557828333318486408023626834611875252019735257709190955495328225024687003855466308620617080325956662927634253715215903962881525024970433525361961719293484741074064517922472188983131048031447607123435190774664901120752310950375065679220301278196640647646073893821863069940633905847946731649269437053314562357017004373793235468240068731194853210095934041134571457229058273334654164268551388657565620234409484770134125052032379221144592506364406779324763051108359744390570784882586703527255344497147806601887683873923449553756139112434894940797933309115596452237733478751011611874454750610805949701531446935191921723154151746700975172833887302389726167565874043405267180989752550506470759511425471413395971550362785428401779835805698235718974496248905759527045573079337028549426948531791003380730220016391953356138441387508010183748695667213493399159165501550533229907224322152392029886027754770696887307428654953691833139934569841242465244784872277938837798097464903257290996933488175431009782942527743146261214938229194026337865972568434630296011648916388888296537612232120550595513611877784176459845534123896110809692918314437331636695958065685531736373164175671053859417327153968664320535084950152830228461898824108024536035178211828346144910345361708595822350887618022265706625459850162668664869241592555369845376913341101307342396474913124351642447257008256516557789365358672480987969318701432384549701654738391102820824073122577601773569580740987827775604653738608786939308448995877803301082616466495129414435269014728715466123403273692041266250197193077348689920305479437755144412953960855866035673981228940201831592986106980053581966250791053638923262081189413998525608468195525412537343323697831362310868619174935529100571508655021997715814367082277838095505277514557551099006355530467604402396820631315743328409987209883028962225153478878369448769251970736943077114906053528394611643398146941308684527262666208200352221792156818743693066373039356762858930614896703513565594809448904739985676263841046565016130097641055622563082893498283452595440772316166701999360841131967773627638693276815193024541888450059412015005418272452673740910786450474996024176885353614635183512040564364898040714008180545107443530905459371522351592121579720367184618214034644120661824118386615526308834291964072129239607031705585581972472264242593779093198387179770356557691150123973685994323079138842185924691581493667545527644192670981763461483173098904088659616006879537198540317496804691425869107693168807003196484319943644122428689792848522843042131625133350962315696686844077148274226402658764042242098802127608768908286362097562111432354009801244251425823206408614123678920797544373069680853262010893489004962702469706398649392449898471889130829530794448119658523550025402344003976955011773728316374609335586555603870923774802600216008732588909256110205043039649465837911025552334873193389703990768396407587918569030790860008677984175750547039468429976951045242533036402047435186482655775167716507784624292211239034453244169656325872347286898056097735871850510421872880861781165177511726566981399414490069486267996708978257933397636306526336734079387379422886663714749576342246020159661771109465602010943261294475364745996219075345500305392307743162569890870624294660995862148343154313610046224468425792530309146725030779934750550985319387675714664684357646407577631185403552791979303187605666568131893016735385748423110622748719338673148656498833416840898649541688751821226965964848688379627139026391665383300980704274459843281755682537634498227117352165081292210921835332212272290220601195871981894840443125790344954377684082262293767233519339716740280470434510531184974268986322722949270576388033707313593930255585562082716532035626599781490214834445182517032819267172110279749414368366091683868520214468682769093199902677925880661837162416153539349808047587451166982012523018240384993299522383355788328095586203274702205672898906697348923966477962919569868843288381000028496688259536863828194007718793766016922567462919384067253408214260442722489131457436099560574407250440838664812861227490937463860351158645858370554072699924871655039183573157579852158106480706907614568346714922134205652931593809716723125161959683165823475873259362330434509462491736255520777170902704492580967402929397888867861502337273623594189986976560512005802400486662467803542725960713249174900452871071575277969412195770262971617442168674960792968209912990082517013524416749735941736777556911085785143411636790040629216404123086826256962199277128595261359018350275771750282802256491030269820002611487006962095519854829218881041643317154976825857241628328861821491691927901438813332069418291364601086037321728335969304950521159721670090082207376564105840180787891760464718920911095203489053008788661743831639600605935180846029423866964439013090009429247901127288967379302831284368061936522198430783700786240702789030744550205049653851314926447495519984344188981580122580774028506277739219457570850818451149817412768597577322690088595997731161349548961410952307499287631846385120391216959670195669145967620373727421096320426386503930999727297328220363354636864520951730679793292647293544229153923991149873978794431718514728261121687742072124999411165474312120535843056786459980539375983009042938079249460786819465043186989883645614513674758558008258051202439925827927049638456063362526821780380737592819446053252843824314089610862812512092327749720689602499060663866787789505407918328320077900603999178686593604323119345779479459299259879782989416105286440890777141092351070556887588994503714154767009757914888097293262158965679834731541782173076068211951746841894003181314343672718238038659582524096487287270121325201868169753682069206275582579449519678910830791293240716636326550689875518120036567319622942632848762079650553806160425737472961537275120321589639072012253993595126769148029015283186946197587375317223088011701246806888140831132295630348823177612733725237803172827908332892834560246461283873960897895705362778584311064482324260077120223019434459103206503277380094050329133785866689262011628919193656902854064849650800956939773499999863272198433840920112926041261845767864929256913453668583833270674406139483220606840859390846428150869890085120961559182609967093297281813298925257555832130603087888297128015621991018488272928457841091317107001169592258695014126334347120703289492510733402498067948764103762731060707577537307284227714765786327286820967544408196713140447869346813587802361051176142184259241792708741191355200517598180811665747885130705992996723038441517275872747126189134466524973254925635719937307830352443290832593189149677103014700223336065978482601162920495069943278889583437027859140020085099730981892093613850376987168109438956463860207310572087661020521526045902963645359602424164207928157126359681270639122567983630297515089411715058800447769791450397893377275737177232510067851007573383391516685351115204505281131725972172603251074548442614432372843216288374532760178271948546254235368738051441124218968250511212198158951761009276536509358844562195483471942993592820437165379197003206890144419032557243105210200789815242952974984922665131520787654372859331651869786198594148837772992342145496691098623780377722942541933356676579038137230415716743694278314849485899156226050001901363717136589363509671321633761102989748033746356704291726426421595381761494250637438393209221510726702505882753482174840701354649932316675071430874220327580460285274948795652439072414137901354127347726469676283097321225844911116903461956279580743223471827472518647599001410638775689367446606728118494616760491877288958324126028417687091922517750937101763548842761837634638231798962550222599138703785741565308217993149019845813806626982976758377043272180648332285354377937457237069103604122282094297904124777436631465508765230604077754289406298978736338897988213912257119658405824855815787436204636187613460602819944419492373690622853526483208685610166485673872745497001252905164881508752588946386363023471945172325360978322289164203592026992719216798695483576510312375767305187482039139548370317761589979352326359433687280211622104136652973153095363557145580342628598829210919308707648076650181818852465953210467191020623248049855706756443898886452147697319327831826015816079852770531636332676546794917459800736803330470098100586198218998157216870572188040212596807776367023632857139311663706985164388970801968042118558482022782010113837925256026269674973767983574629685536325108767416588570681825581958792195012966457946503933511707685609126325378950029775168239050711980575151658945679145360650971705630506816417810868302355202487949282004754683000173244007586300115087732318750860403962792918865698268631578518252951452023609222911499614678076722036607989173060762903732942518663944686599935403399431993506968647485149403316475051857936603489339581516113441385699474877908948321726814735148750205941312858345831048899532082476513860145960379618786810090387590161794353057196541905438856611992731274669907887193044462283747969852684170919674967256738858465832782324393470773480124469483225808370800863852708640824671169245851366723672884171891026175920740658633273577387841047366144144902962804891590602300240980519806004981917147289388119906575637344138171549569340722674114513718124037903768992628149188142696389363112188377254837933050419900982586031230986556896290725079028809517862498747006372488300949511243244305547689333671753840351427237531878129624651268467326687929338013507858759364572032822032962081301777046666786465311929645561268593295609274435849388473590537841949770473322290519954372803418587107551536248681793929974547128066146072047628152203873307021412175280158059967925751296156552520943920401529741714509581337480874147847623355527926802591165819618545410814178285517484347798771825319006828273316689250223205091713762946266278798563673725834590369598855906181018796294470350108850271176571843190683525457782804714014241781075188441831218535861218501521514307696064824645141192927554132829409138462294451735153662787101467166424786724305693676244299088682192621098999476220632588691860309562131677557723225458698944946289906708782326471525322397806209816706016668671551481940688819689862639840739716827371415554467172381074312898359951650156184505863451335849831259326806407892480973378489017191892548394103279404327730805245970909104686170815624213925910765080350919738467947388719884110424520170074905472204112440256184409009630325015862586797820831681064086867257485787312795642266170049253622544780456539934217638043859765106859707668422191347644588349594231590418170576992584265504264426010750229699646438420921556672420908854817430483269314516515467606277931025264769564052023045867122414594390600784539565035366051064509348414000248644491145037361955896368525347919058944448919012789326794351121769347082783048800056722581392583988551983125141321850646917204345168236492641944072626637087189561035059022440426457959778130101335266260354115399416319209645909538422714497678233448579932073663863746178355507338925917255544301215708222048218762256067495339386176807095623576231262122487950334402286135881307545117584219153798579277608057815581183670928997655743952996223613516657334734754995081433407710292263452294482597496273650113522188970234821091562153445730196927909632358058610015496789326262407636272637675020886271289111044558813098457408321846074048553017108696544631325626557898384160849804017671341083400598653607698068619429200682758038066106038938226836635970373283172380722879817363001471298387639641970461643902391255971689925843003848142496451950113529944881996548964775838531301934878705792249596027187605264195276433892361680834430677444241462364175732806298033321056588030757985832920815622883848217694614387932075535128129792535982555605361452661594536832385205980291795020888853169547759125161344121451534870971735450297936002266915552206078147656667215132590771003796217055112301945981552279894828777356782754836207770742583411796129674595781150787342790600715741758800091753892615025233782632062587338163471444003459778973381284994241512084664177332196082229059419760402365766523706079903695238319149438196293969290411687821793409166096829468943980368709969836251699582060425254769182245186478743252040079349499759705461401865893205467409986797170351465210154487385621321552208345557849722520088987772882241176067562747310951891014195087171133546745295535964572519105635709629469766520174184065374944246037629800065384157206701180301072289411310234084976838284923890631658510175321761139945427882488228498569898928471980664220077748839241629403415781065184730969284222744136969774180820194426140748745335357014087191972538095404095920468397778477061680984891010635714896162384706240747961399827845263217967680568435550107390305595195250287010014025451322125248058729474829329594455663853589366264906837213556456525609914575602996954623422607545773811845711390793636207541591861116110265531857784861623252166704489144054110667963446697446244494950870972446536993738609838046745467066368007600114057337164232030027496608113628784748759755276454807589418632514623956548979857213345103084318734776371508665795038409308731639363648948355524700500603937747067508286478116987481294525341657580097870342656128794992046773806730817011856802514238625515997601721881205821244025738513442912672706798472470696323490847958939793735062788743975006501341257446593000792875720909441454528828371806547932438396562699376526024263552732395841406276054372086944841570708778780652073734240721187140192295548580827181393146215971175216345861300394088952602910396376105635953597868511868768751762233221262283805164852750694697744025326863096439810449629616639029971229028068184260465324695055039349543486341239506306059794514937406517016749716526121773082718290485011359273828133338551845439620901766308521895626142850221280236014121551561291328776621273916808977053915329895985252304926278982517622288969671636583881395293941340769202631053375021932172831214899267997171854823142785056520755171669448747750633768738471049148534118211415850118122665053479968980209063414477948396029411706330615597090426313568469145671655993700875598621776955173949479450042901715788106716630137630917297794111631111758465434862262021106122329689183579229195128583622827239866995196541867885498878993132414902299893456630409369817655391620445133871705132281768349594434498423525609769261129633202230933106810458067432927366528094774313395851280318443786946466295586211089467959732144833607799526937033236345068216216730518870152945696309470372370909048315884867116140674690473838097842794120658374963520662896637107525406485032764322686386007335244654320673554142592041057192001102454747653032616713412375680066624930372002029164711589710020580373040210204656828097957588391012505230397606855309738229297712210371240056625255969476793447373861804549252672695539073225527078079516387309043603217930686200729158499593126578301010760081481233928069933935650352455887481308213806371936426155688161110573573971991344266360397738215429979577536503772796261619700290735147949703563916050728322203976308669603746212182565587466271647592055146066678231243541941146104115784087354304644515532036826193263669879367623013426213897949107634248349740555439789114231342501620950239408175115984279076142820202602559470248962593366276203756587165875049349324775873512367867406587370920076423696604385571127259912819534230315174060859294594741897540115353326424551729222777028083569351602768505246574541836738280311661132279013709605937170337488949769531261250974617823458891268896131753254156040026656422721455716723180264936210316946675401336302622234240657850982761383647036396651155921141837706371367579689682594483596235133237512622655742862277510337627629137511600457896261653887185538921303339482912538735681945132415155458512548247057190960895726945857106186978737951836051902109006857666203767553243221473239104929577381851380852960545359961537414118370452134706833031539390711010939641312418405754198868829774545349620872034198682226576008922292738761181890931728918298704628742935785891883000744120477246106286144003556737603860831312769055639007646772657534679805418754018975156739676294552005671912865805223295620331960335004562892470572914077587979224309917512752683019165468011105771243120639342786485436692006127244959417796223229835459659213322063381688746500087843210416250221459655714661915018625857684504567696622040341489988926456597408555102693180045191670909420030293536509867881186736308662318162703587265644366267464365011437929251847637122084729387336138465741748397972583568407718273083967142022830276667012803334420848574293238904980680162060396900950500947744127595940087078194268002152604708695294412244307885224626401319733509079925156445501260256219875535228440761851245689835740514395145079310102765807024636563035721557102570364472411959788025712707462186322152324203390791851477489893010503823620929997216283749083635376855979169078350325910071690389066649010464500252480765258295241891341378113171761303298341590553682306338249591396468488299529510086589502785204050372539770797129505338070860598578410661104087082842882871349802499953058426990112567018451098116436454679862531951844973529834491043829709764866135157337009560755645511464495324492857809154787630071259305192885880937535233625489954528745638634315960569951213010162041410740141590457278182990445956785883960966641426049380765589123592890004031815818289869431685361189682836758392086586292186820429957271396208327516575179225707253883705463868069404398334843707769403118835830503762987920340690235994738213014217092337996609827961460574880145856577140049036414829607945118345928715630724607070241870070924277998602983174943020498865367940866479879584603662239185809722037245810111158281401608910951618531481604615389135899627600463196610566758058907950182425619339722981958137586846961972087040457743275843680252792200137449279419229779481662655171748036271465367301174859626758183207585336862386904239351744853839307236416590168279026489490320811877748972384682316092186793360478774929375430989333607005015838835277947410389195391901523622784124136996207098761722995700733285824206617022550015390372903445756182364574002770806189640911661322660471094695660815246018588019045991302317214262954092425436199201867261341182722020003537465992999277306169904936811785972669207711256173942826483420148429417537803415197556135638974988836898225420261890072811807694564240938062196058412107262820347563087987368741687988285459099955814718855086944181739026602420886759164933945370380650281456741671900284273751236286772622588962469136985228031818173355626791743479816170424948712066911772991428823967840671477111469461700077038187126359059399905701266203733935341013607915447892002209296128607395650065854803476944497627347175546583902201848751736737841711566899260540992242376629033337784793750136976160966103935125169696138493084675531312290757489560056586655623886984402033140100493552076185352879140947648161244444296211321335307860104849026627022930201826492476856625944683873545801982493030695358684560791088723204689265154423195847820880013320658739998195878723153373914287266494851012065651091663341089920157226877721008601470658021918541860392878637799415299250976370838539919930738047320671454379554073795391069533676373587771691704863229629915757524884255245631536554386320185471800707325066551214139526463429439312388576301589966739166514797946244348895753582524165730229573238754811796739523239830028440561775706803308657249067568049218730395565651223958418291944867184992529986674060359527935125134238429263274600194135394823527407634781809220364912985422534495364181355369522586359370344330418663117418402218556999270733340346504302789900196825440189154300483325758079049406688261389554572692449340002452372624232991766860058206472779131127396469182480917481851562984842919676036976432487737077366455508359254744407042697386537753685495655061542456479336191508118173414816700240944403786364846185982930822539394210317275973573352101326761841609851447267538102125001830396930325227278309450446959004745371417816314630045452278230421551298486023340123439184736222777082489699410200118237933508882984587370295069032852696952584569076767126035871002606772287605503981684725971823170824195286911970111198906643080791588022218058209580801379368329615765619289418768241667178204404129517367930202680481463896817847370935831534446659479727048126685598302603779001621039146299640635878756423835342218598294319669639207182315161776386444588137668392103237603166484230861367481457146784170842311088501319780855738099465442348658055126515444940795689257551117213714090325444678993999777233807764732754441548154580253052770465520663236710355819904206366715320751413636244968219351754372244524044656271243944454402912422886604249997514285536695298117223697384611185504650826262608601289459295586479834503127230416789840195464551980812170386093280252947418565715749611472677152759487446928104422727598015598955950486198122089973263354186184905055547376826873035872443646935666359504949897966439989792590045810800963442784675852071734344000279321711784431103552767899908362650588614652725081683357007237150743044814134994444076339926101915245293814247938728470533440378626330798747242848978949401324086500840452835727798110990412439433705157243643334337163817216576958754391087714211995273522660920016487598861310310789510780613213347373947807388790145331726167311891138956594623136812431030918593055560405706851774064630222429411605627657326338873643743176391447508444546975792790891127853694253876010051674301009434637158299489010129604222932010263349030281227852205798683087731816158527528091972512177927311133585250502100862514224609285783213837884947897200040370616690186393440947414460816047243741425882314692487264198672915725263461478343853551592717297581519705225103793288655127555707604954155496622576066083513492390088969729529795475443146092521389193473616492781978850024585081273049302692068477893665512590509299288206512374570802744960795636547828121182890133311410737546978314040766300159150627108647489542051112899797124959827707113520370201560200657033760497787089766859573280417903031671037807634013478784850404506057172557441732026782628140379666572932951826669144568140799651991062719372208676474418615534436724805237659566742922686852756964441650351118002720194968622227036581920936596952269502420869195642309083231949899188630160890632789050126515859252646173207834198625537675637109363926576569981063529575039827902890763642448068755973651448820850264141824377861809014222583098887387704532384560302188194062715150859906874753913311087793293292856772358468020289597191833435095803196588859656224805620560012173603527312915250255476471379943955618493812103737311034050165511713736650804894885143015832053345419018513997937724612188768955430887615139437070924551307337898208916782384468606369279403168912287450453023122038380879867166867001372227178452061792565485081704654028820518963500326073114261636507726143208920444897306821828632992833809385374444417973799011215946123142489589969471159101251213669309668478482678340190949160927114892974757941807248461317646558316716229967227559092227916327281918833581188263702791417664926420144186624605548352969932777024652731233859332927923830511149248220252727349165155527928792923850993538641129021851192299624978890469130691248266436436420322402132215545254282527935462330035497293304354897997654486432539323037174475930242862751721398244065034235541390907642828852065097909350936328600586803371866013487048520347087050724567863545786924907014750637844183112411990268276795863215530900482803811493809010409667933479676219159621804005279879146333299382757814418721968992771664989086569077265900247833475405392454282716411902362011737194713534721470583265953551776093890928071464946425658522786069593887533810745708152065949377613393087163807587109518343594512156899182356521246701770834423212073660967033663358834430140634024085822696863620463949812617196555609036911151696486820941167086775037355893586911403259946113873153550619443184764389147706121685231565026664721161895815026426934711875442499544271254116856093859859318588907029719339719811933081978906885200686394065573477419934072157040331806829763083975055274072993422913991124003744618329840531992832578670533791898184535280218695158415352765965704922563628592181679390429446419408109754543373512016336230348040742528140098801265886845974226785200058684632527527365701500253405872884156090503526398254416645882412794606429241230116879825295930796581014245377222486396513213886263938537964161668298686590063507893378889407410032342806870764558463827999949501629480295365159396378405381947718895766184459782931498074382104634712215119754179356799881176206866855498689763005979839008924430253226815866357452221295539189621162749215270563255596753094292077481459704822083127951052076962345741482226214413130758464428435145652537661948576274761038534860112436557777763494807640260680601778200279319395930721432250418925778057713049616419820480541209912499781802198416187496843789916240290041652995765586902078862203627521736097274723085060505419737029426705422837141347993672703962704213692417746721802215537598138766806954226178253608641044971326546856476428508690920550688359886424433369010389456680366062607133363604653917022763442811939561417534845879325340838977952764699582399457224340256567790451928725902111232404976115610988933945699780069517658008040462258798237431996654664873144494098656052883464592194586595719863275274872656972015845759306294096483674437443367328650459374555305422075819384515762825263920933396188860192451578215770798984249784222386434236912847893196063536393892940853693044921894900531728196208263255078675826323835536549643066027283210360370881865581650777906915521283685100669162169707284962734917916439088606476355144405349322093559589049827417616177940321704243708093095689062466729115340243885365373721341041473748897502214668483800309582066207997824205949697146401302428641719838691430470495299100530127092217544640177119350152751197778293556938250549681370090727294717842160997641519689307123695658844548061242242151557700643247868678947492872655601422019824135379849560820445021354013899098837385376987807769021830690426786491254228611620413201203141815107013387688825010622486872116730210834279435474618745837793397874495297790329734685312135131776719382534108257470487014838308411397493572708215493200298793425419709797115725479714246444307645551542388651768078412848365332991461680001122120941336194729037904376989837061726442049658048236623923768577786453059205555421313049741930264669078001661514338300207600211151838585080469362868818391048841223663980263602580090759553306599699412302075338504969828452629471800091784264808563821360835284966055708084077581965239207981505530378939606968678161512083930730953448261160920670975715419407796585057126470805490867122295944858335907987718816304498151093527734810397600074916036628406211550039917353238359677182835099384647417503862394121451383352039590361299844683596205706159822297412562503270318420048220422060812855941289910271702449203717324684533734086907717228311960562239796227044217208895499032939257485848400398073707604214037279215407493260873370444183110642405465732023594973241953846761612029125580358427941036190110006601921536045321607624663941081195105100565923071788261620714670804142487305964864484851016577657304716634574455444551223845927923054560492181841385438129263064493366888919924603368962829170524942682060136899960142336877015421703887701139150687623635889883573920526645716297570273556794013286263709729634626557685216995701545364544823771719275134284537373300358371188553795403311937416777449808848123099209334994566559831986028353116512612396803948011624041289426988328130002274386625766030487512612816465768323106277393182601614137968793923227690728112943351642549866966235927775613704399874693072405204688850857969973341240538852370583536976128786068223559863924609552945733766528180513062998056919528909294606900853895572195112991917008736591009699047770416747231488163591515635951985954224492244409590848310033222033774914330650106632834087934833838206133874044377802770353293655515730302943223075300487377022074194427545644665539217501230050596904385139618748944050160536370201329364584193764846725881666588384809043692870275409756102227597390001150619494010952470627953839548934455730956698430229451699438088408763373017711997633383480324234033373814392763142418316129787393244798498349610314002739639418622623492139400688701330038857369897639683856722411572475207203447744724370976474297127526070665511577919477138667408363547467649387788800049461595697608789779663836639738769334922913035160773495015526887917346638360822946724773816991199277370023063079291626507349957700392109505100152424161932998362164135138054494450438688296685259821794555100528917070663100721325320651967517203442129322575882300483298469426774558357235935614215858885166089254263636491133412472835401150347321145035961901736665142302262469833221496535727853602927760602043848400900610452390987486160540880034458194511900493592287708353710023796577865265215708397857464819400716793967700017481663999293353463193694152168759820763785575464512311885960814965583107102146214384793726707738557274784130730702120460981607437901037717934620887461270686038505838442545306088639467139913775155021149865866127747210557859533990987040744130156430504047179062869541459001016244943852418221819930919070382652339960877467178833603586769012940882946827042465784880404471983608535712493407171875547014940425406227198870492232055955389520150836092960070886684122827431727896805981017303293440872667613403919205474214141805407867566544178389189903575165436505112779925571964949517674887204884586281007750036224339587857735396103213880419336782125448516896856298045010121009665868908831272997137543563901986333475147959350816652813386973459926465332302819968681064250246433967831400055079243199093874827776570331627469871687478186618678359558493711957665829780223683579116160802075432698300555571893912626081498116782769070884423928430040236066033707741659368021407347408134493189086708787541314219228190083187005419572971197650341680546186629771840075596336895621437728364273413849888946083574785267248988445940074501245426811331513521978486662640439531773932800389073188499435159225710680801130173655423639225485035313220336236737101746543465059077321397174339020798422955937239990083909733130031082906433896984789277131142382596414522153195802298649176500269569257067569818752115410454300281754659560673436244156064184072027967089824266818045869457715930264453027470208813411992259984289482668367218512591008525841232663258194408028452808528188151020383311502065155183755667758850236205849399963315183558068783203803814749212182102787029531413183115613092356267937231061070841770796239667266394610319600955995154347899152215114641169300414199123025923729021058424288176087172416981921010042526426571049380220483863515125663139307236264046853335768838953776804534975578386197952520027875933104768651551795281118541000568231417309185004013704063654584790314328040516022029208225735045978627864150288438398688119460669049310815908190385447386283773443170627170752988757891715089359231412533496648138388107251746080477280388060319694552713665193335365695283826341376162701646464350759222475331441413499848236938061007845358646552096203929917600799809737483645521916380847896273782802016275184945171183338898466319860462225213734477344079411163125983134568594244274028600526791096776362032940106361302406333661518221738564708459729358899362204370917691229247832704650079016990480196171877804502224559066682892025510595893400585104496004636181010044804305340092082266976320101945660867639300968187915359624559411440944344349515066301754871141732523731752165231883105643103095038862228925784656884613687658800946189401825809792114909261935403407313681111124384041364124935249919307108013819387438089636497209015031951439300709797010407208544702695021589016464742963047863108687708187910403850726460469315099351514717109875358738538188598465198036546809360833715187883409005379372605462331281121418123457360271804345048932569494482896578269791992733346767453896853670709777169822647325696453915439881831744567288824936730406926401291971962300054906010489984637628860853567821634171004924441052976697427200637540511032462687585643356517406052249434037264753465707037804243221869502543271827184592868809676840083738065269780218989515904789611603304333201735518009294670697486566424858134627447866281167341347076818499328491780708825875337880260656525331321613477736652005608493144762160756654096830713741541038957080542074767402931724882320927761693634262731783228119877557457479538963356063482648648951671352779184629065302395891692211810014721859801792791239923785597482973284860142421744666404452273938070183761965962214160953467287409594542159198964281587832553300651226838493910340930474816308707070741951353644533667852373791167637707079255152508392265295957193838997061566046859487995404504127870060368278621519786289980017034361437126682177596493809723914979945674808139476706510732038425412366663289113544331707733186928669959429483922388537309016484741455958693695801433908748532059858056206592950985397786265201523309399402155401033054728610771407801390195136231157511421186679655603471083632711707830015100062963176429757671746893683316663351585505403974502667626538891106992061201411463822834736966307202257459592156098705871504770547195788395066693979137895066314076557686675383473984107649639375592656223438007504605483087318016445351535580178695669172457955201472437273051261933740688376305537343631175295942074311706472542478723693803218420604272004616826902709180057191846648953252147131631518700380113972500490525413645029004654918288754645950421303848642152883722834622790120624132510572644364627474311377816583359331859848758168761968498808311431301783405032253137352515753473980725144995189172441945365690296150579019978521655572634015601469240746649696272057879559464019658859162031699223450692531983620026912721532636634192673396994730897314323713962796055330876924421561176969178430975612892553489250841581460495532787955234557737210671143539697452789040385567312265756889168057149713117466255650536367341499785717407984077357491715897400488643098529383296209791177264386121947204662790022162738059968346853805724119941161114790665851137668746359044605709981009550355618824883073133429734351289711425173294160460127618274335227291718905682245380839884339757431499724019018546849518059301664219981729964358601271360665930055373143917967405563850006509313939060691422790692559034133948897843725348963226092898830050029754387745153361845179846131748548397489320561192450246966598964161719456118568160858380582398098116488378635485152386937191934597057452951314444010526511355656401067210066771563385022877375587429001427379293261785189923237326822451126876826268303316740473775080609438434357262268500682318657607422149409646981105752725308426027062590940812878834766335160528162773824158652076164873145270140582723097097292527230715544803132051762749065575211573980342994268821867137843674385277599132865966805169180014338549875553335825925720153830408553398325395756561717146673047878148678917620877129066309849133119266062474458551569319128709585255151387068354500548632312955348117144844856239134107921526504233199481556989630867953183080970278842625966339124316083299263487451564798777549134437373557776465157328847065990851461776128346162802126604786425490236387720934642895751516340631843432428193547924387221219254549043242765320489877339616116961288325357257488754065301690726349611796906893030912909322942206285699384791004402664801193833795513477518855040080119801732647853384281624193633639617570572966347376748025772147314137683553925488733241412165485171316795743671535830156760968236376566968302063664799305957403244161038762514653059012756111818060135936639388344035509254546504664542289655977015194224841008693824117540874822430152575444748804567874633185915044816078851739858988050193616012914832711701683339221883626082403645502023054631329691385747631370590992087486025674547820417414487810461953057537081523877878366498272600750501434980780941224067975858014352574695635633909693859525685131283389333786778279586678127525884460003788421436340831455292914468261425733708669181151629236444354906010469027761629012743895118011612383837316757876747685161733894519745361459073661005712689404200400781995672855641709855210706063086427240374924338841103761504033931543496038933061848556292482864499617046431092225723452218102734726235428864463109339221728252100684403809983230574611991639629048792521694476682134879735153845243625271182337710395838356189116261750365246593785953600371146739422374627903028691767843090289364269630448838665326843489262878780015201455631519046064090746110951071943585554225849695099095110894680443352469646566690175477086361880889454700193965623639779121770442476435074309205021391434044199483521255306337932693553561575861405591688345268779469271549424870325760057812238730306307145493773709138570594201687887725764287826995572535725490459849873294688441024977888034337234592851174830519630577280071399794282079644788164792801730652106849740280796306496348593800011486207169054952093541981577439628901986858659944786428195421709407769827133276470713725933868060311851137173576497204789786026511716022962493955741062930779685273306273848630566036924449378721334607961676650726672636950071646113510689173528045013143352111296917467311931059887522804169680450210057478923781105630327344666637510101765432090102271546370683160408820993806482288091773284508936467987430245550404861798846652846498590301768578830067138044070969855569734757575951368311545636930970716782789168054390079637327592172929738875329348768662047885574536522988190702800979816133226612326814948433920324920591340328347754608332046592605886220695481544010237731288890632553800998097755809356531504908833372246064387276301944883060001366768552837227025856298050965723486236929609188603296678212242554782825761775063383156966702532348820225614830036191045275499840652980388008604868389241731187783773617716684758873751273372068527823343507129218820436849874720161461810047950700845895925996775537912776136448566125905744858541780663573725456979574949041257516015623690710430524110854276449937564387067920722824122657678702618934691028559495369891400604568518391348054762793453140668938282189291692099180782503696911436744578780958524949845622565611832442290813369793010821918082957428738399165074679765157199822832045917278267324781016106856605456180250901183947340622582495329652348786175192679889236981159560751009979557206899252336995139607528854782256664624919639609273469171326655544077447931611851391334142873140724096580300153289697016484156721433859405041619625695830497747318633518488232806493401837157708874217058269634152483979119613410878584946197359933349637363547933898978994401508284685220241487584016562895357835334072774578313979058516029068056633001056809543252090134095457335984721153395791974590560662699254776289831478489814452989476951786437704321643441742249117363400360184501682042085225025792865384538740785184623523289161975875824440821637399412565839265769904230056129574035090152687730029356469696044306156291464462409447448689495226494190268265566144692940517532105432252694927535466926164631429528258090092630936478736202824836766594043942253210375668533117232982358702877050233752647290125941909573573513604996557556565380942928269975968964346206649152436041831060654844771635009492413151199042603779584816029536712990687102272277935213867040990438260628661316331706315211728066455844495703462234250326816781504335811836488707501694300268198866925161539404945050394998479196574873079258191611920085637891468114560280500606483629134491428697100236118050126832570728809656475108154523383288975176452520489368888429050849750913005697551402555520736668175199429595096117115739560966221287299205699624269327975471120352110265135438265530669762774959991408875072629984161483724348075431249564558638227261184116482677039709770239694126791034911189568157545425678342156841081188346934204461791794056850325032750735161152304605381036553300979207746046722771459005831404644353605374270464201824795362853454859930264352577354925554209449747509803649936807511763343017963994191642719297594783582181988679923408157094147276681603369667278982610452017771847555402090964481505782157575008295866946879092272460809996169810439428136871380402474804460982079751911536874254971977688846422353424030831701919913126613121139823911574039865881069240552880434596652564022608499311451968977019009696451141025980016776953630525190384523957485348768551139092369432390895263061459093364550623868560757704432312654635218838663273339838334569379767875312878971294495896774746277327667610944068700907131100420974145668455653044440796173508060966450931415556649307102390054795361543971191417536449260301405685492084203657172097491275786452201669220341135927641009878008195998711489908710952788231011454154679288362463533991434747948212737319547481787508867421607196262052301639017140724954986140265635814867141898535759937362227666144032999595802921429558462359754718489073263725520446659904659422082981277984989296269148510474595986491687747642684887420676007957144586782024011425671929933818925859090846246188570639117205794713115095892576335423411750909492058302932625821545206460564306657070340512882800193703449700923875669866314675539006682919459281781552284244464357412768736379681451829569656296581900270868558134363481103592867339748670292799989174685309253602685607720581378621257373566374714932183221767237647419037253758386967894455089189257816681844465405018799013985976640447292564501248412564516224116192777564989382479632244555912970995805604578600383108756280197664217479398134469763590665847895833307348399511486912278174473244118309636850606889399487333576419047831944440783618137024517866184062613410020466533219202210444117661814944951165419623468751201373093678830460871954175126312008283938365597226501982915295056148755907817901292825530191370402494300929750255757613526666147138019020071094295821198879902744980495648789294885844191030779902663863854710705542253046914763232937554503174686643015947753509498137038634667551642454479702240746088218805049140018520535422724438268818512640680382345143714790518620195870934819100737053238035868139947029473147899857889605252940785036355849577855670215241827862949441257117309678546054255338332054071111552308818688986739222334157461014428437699640525097953660058291839045743756876716523100480322173826896496436250699271004990257180681315883430863786943126000246107702288836145620920942589106460122939778456245322934046102081732275011699982178312965108188726103783657004245199089758484780830731552511473933429183811156212343917280446849028063158045785383002103854851305560481572427371223958066909484656392931417132297071189237517003704775386509030136406144642018025015441418869319512748801785495405950277453709498508100743500892119426488360114915075324303448802723894559841899093719985514740723230939098486145747850597580246905312180021223116852164479718251716135414403709894024548674575476975721431292152050100322462415606908180849908509966562616421282514099404240244649290170325158981339487687610898422869178017937367339754521946330388368642926146353349539790755739062028912934757967300079351553710218146861290485265220389903791990126916401547361090334596889493324892756851149741283435265881956630391848916359408527292074451049217720701242444838665564166205423040571787123739965984614560081881917122569538623033326099453317342981055008518156403829944895478535107146699858416524578968091144125472971053190952447288188613249486243088955917238489533226096942868110612051151061749617601741128992623030517196296948647335437588363236336065793068561959414074279474763576233221333099217334117208414589436800228759984704101904722918798800473647463926154299653589149511985989014554424170992975006817126487407486193860800314439584283674476573349182261620071700005799953302687681985395065113185552089467958224723595978090169197723714164166304390180445952333829133892638446493128731667278889431201816547290891916810148254120735769919264894390341551664588583480892727580962790339915675751302494725657798376633026565150928127755369720860406881992977495573724920964934162266610005841060274495769852020571859469998319314106676732997680688101324338779173347561837227313182542469637357987761976176041992365065393226218791556212735718016191989402846441235756587006638605360041185891882299953104848838875147103432481910554317109990131374721535032191635836704738312004044623049024426472459995549648238183200383581949584274853628975972458474287996983593341678321591185076169553785244020500296824686656219572467623416176030128365800843389982259922987555317075404247752403977110595746036081717253019646320030248988085951169983889553173152308351280548248320438249244715456932590771104133228079274492610055313745797540395714187584407622671592941559365219514406371577996662909516020233832187814380861903206911879390031543333776921437617285689285066853966795732000826009554286931121061130858793354358760301294947637545342843721019629057021687382843743592715435685373790334058850155576114058110572723893665514938718332229563353685261903047471368526625820451409530818468007020725623967000683221487953951405961924693785018604064661821797900251088185674754071039020321897229409166853319731225428709836176579408155028205329081704532386762343207200918090665126202663210005301961181174320842456595495586737593202331661202934215792644593243075812595435262898145675201436342564677961858823964767314174180398047219024819632027536397296355722312864517191545057045373509575767811946294871779855824203156975701487485345537872895647066778636140581368660493308214452245466466989192396902890018491321806367408677420937119599475234940876798181859961488737486565196481909538709488726593404496847698711042231251221431608201171509512786845122731769569603615610916995446227489935585046077136693895876396641676186749431950122741404449499550948167147285712876562549052348572474670925036036385533234037766237930670241306030914726814594296834617197318363271851456830404712231677954094430371162860632914935632869010129223863446670023405393315410875512750232014880762106697042639122279291640029122223357706462365121581168652437568262221845997017153884282857688687447956487928557265994837382519381113203100183644588285188768572242769102137668678976794008346909153794975870886439289630836659880949730879802465813115868144457039052600400660576652104904351817450702104083298879856842160863480003931607347448537753072564979105624221418438014681782216401919171789772631739165782217012156223008589666933600222945438114863227034933537713511130449179372952589697834642369131298084933051394855122237870426457176351402388616375916264009974940140666844405068853224290916993899519840220293055870150896779005397465226938790473102886872273277078194875152229248081858473296639510922096502556504083016668069483467889120598036361288391528458671442826447260307569325144508785069002400512654695870066663540109686026490491770453030516373042347013460448257619972400602893651094741059339695967946155903282138670533088095817862011703102432687398652598405551221294346754759483046783937284394010929350784935321623160570120089152596150183181787256892447137022277482274429393974311669854355316530588702741680448166251473888682088337219013926688341143483448717017482415981660821354778062828726570476356507168515340989605462301736413423885466144922129956965735246699989381389446200708564572507440774318183474954991834226777122726142882456339687683926327604308665227079038185549513550487973074549879586926705072168250311238017569328086725427806603347325066879106160013586738591597318893049422166763639171090052832466475566269499798483026007529063716422944495313384229414248667606871147070263415005038765131860381288771425387164058023234561509254280986014928961343170102163962180576058603398080733440455520763674552622494950794817075182119763205672300885494486373977394651440657596124891463102489819501170789518170308433223897772364620073013977004939030524239034892961502435731459967922557757407853169597577217002539130291547750082469676506550637895291679028409815800979717381118205401704745666697422329600716261256602158717623814021304265815135984430058537326090651121048079568417886495291838066101912596980599103470885110777897306340426182027417924663571552670562644103761588736393342332546235985004048210343195432532218170682025557378317784597710923094803978223181113487902528582126217968257160839825024413897643914698651883749126452991166689060244234764973388731061649830699528018458183777613630248323846168259393145090516760883841015422509893419417096703482000984413310450717367499254490220872694598494054130789731620883431418699004520055822602257563917141787922337860113410198424427225101701298325538821830111320048422520298023095128683260693817616099490754137795745589370111087012500138695519216947879030679393653982354574749746397180166816001374407650995981189561164065896511988574904514580859465503941705015197951001100956751563528820187518957140213171686498606530941387657205485528262265401720073613209848222844830210838286000458647389164023843702000484459964087928380421674011904967102682119650347732818394455841000509934980471640545479183833880868122175987763046942039963899289205948025141063940260560277727348694053541952805725746196741266713633644666115808054061642490206759600402772497151739780525942164660699719365965877003191968113262879987349793975505558906036377188374216580736624485363770379486561996283571558841980843509389524986287285203043378816473787257401808296069942096982076777501635182032653351091210068926653137319141639717125489384030517480980682314314726374479778487570983643410718113085845880882619028088233773051573573459700845145153885498689635495195142252158950312627995831666300103415057226875190564985863156709751477426899111158425945932977273536314891629960267151728084206410024216953333497566527689719332157697968638497666397278330637708036589770282034036075996002447973822421677094209159286427277094501696171546888133422338112178280529170851134772494055165913098199348369310992233940793877887730506100965705269489590010437340276206535150043535846906632298535435260301921884760323279154460233523965769143371980980529888739090361947922226470979365236573977431705344707800262347752278256570809071764571553861592540585809812607950421028544410350282652615818894112066222345242207263704360389251242619628137207461309789733320053577098127698363322024939713851730641780356164181531475223666746126284517684849983751825505134509823091476269895085487936024466255165924149245198451727013014520820795738261493497790691651006897305072526024162469317320399325495489991424664406192337382204009300408180804168149585414321269031959351901782038503239051296104170099699118570207891694429754423492464374713112349198944945768719232581030733917230250662407038455192597798955124274436425102883920081744901516335061415792439494456244166718279995428367505255921821824347290164823328098531039386583283475823040947294251051586882096966704985026969377136285901859752739913799089857703207039477483258152959186498407624984427215426631837018419358823464667536968215383591830931946420778990123070308806341826826560440981072455233005700812062794983498414739703252564811750732623257159959713076567547742530515839111304120226217683248413518501634229142223183963441014568085046646668069097984252678769097102717755462152252266316666306218865062489176643332469397127743292582785003166929797801166176242622536360882364945715172466150724251453233162319400004562377813323063551407310631430434443290945743376902338502322339532126597418250948686864837397212653282066079727181972269476624004195228367526110471339931823625495484691273384555763835956530597363345905052885556109662498263357916885045122223794851648320814211369371985052390714850601448462593127276414106274433438393296377720846483580904673665528509999569882260723453247453666615329573441274280767434127966329111522138753521163993604292374983902116671003059936152152662141008545863137159817002766300989331247509299671212302095933533892490331929596144851046565646960331233008442749602002507871223570938901938502090397441723434077425519967551688914332744672244802842554728630182607756862361560874021052977710244006110604718623319383051906379202239858016193898232494397339379212704763257837768347023497194909052264300070187956264697038934765637870099291919553012137755376436987925416835790537368032050852141629252067045244615622465641844777013172754354164808395830311137238432276248484087265714064099587415727038763999946100290152900550293315962977037063517279974761183219545985433963955301332777746294719689584385887690155385649638917000531369633388102712747772566529469707522933500548127617965859815162801930624618548963996333515230827491026740872726605604215025163090982329047852255323077349122554223867755259912212290008721710634550221471516720347589588581073660131543515397461829524878187169739645830858112401983124767548787859783261129947436447518023396175563533826917018151579432714978720143454001865667985290673735494531533513752546549296548661276543330372458406519350910712387979800618389713946054213262318170405317846568357644356019371325166929505889778719633821503146384230961843291079750466459029412977366720108853965928623749227932839778236321544631308152588124815194251380243739555089006817393496870782410148072653531179774486145789685145624930598030008103484462999260679301344688981168522994901060933654916086556102661606115940506980741710894912135054413377983668040766874857089505405898560138599726788488207683174784853157078834414844079990400412639261816390265702156032257139402080173175495320338682332422288484155717732108216378565676953663509610568069924287759059373955111829188009956423618379303867523173513820806050859204955268107966004827300786678970484099039654580360795561125172658071602279737014725146148209339256137752929169554719903318989842729299383758629046047245623555602479292572539276466025554525118481590981950596173585926056080243038178501593458389189484095453904184861049796610879091649711063338413039254166294123661965497306293744716394479244282917295711502858596648932514816153983433006255388622755531097615422995431503004315218326843775786766219170227286220287545086296226887600322100226865978689715839392149040540901228503705232004794496712129659260536195166479179346432504313049381818706795868501587532698349522687904026243598889623043412594416500687726226690773552473465630735755454981272988914878531461838312879468891811850851009376297076835446514822416452316372615523169578172732462347886391800246315663118177895616522221262335912172624150355596060233587730548629699656803082301423352803858861141928551236339946263729941485362778038085178394228684875422428415847525204760344405551431021012686415957548928367481880780831671784899209552816494562491889714872284216244409843891815601449540942759572345307193096191122622476713390083490583762348188329247207961082829668023699827373298910074439712698928392150439643208583176040950555969103637129679355887728235255857324796181891071406746659140542702325375322203781470338624325051525699283143263189649957703408020252701363965487164035008202084849011299672459716289785796337534162909008487960250622557322919256545218408219396251910967505830596846294396240817297776610378886395585710233046010531433778021382322984837148374631229457826379537438022990246043330633501705080783565400620817707986156660199117754109740401383829922981559653921688649526199182287338666138407522451342849662408497818817323064665047577541774252550169350599738059777910935210835562182047266874035759221724147733241175081068310439295178506274752077097621808995809615188091595750054144670969185101950989199990987909926381500669835157557812801059846992521662660879967179978911630730442127523362786711630309439922522240624766302097363259081641757882397874264863670808100189416089182371817061189433393101832372544246026595362357531038948404150063867576654301680247437036020350172823052151825598627693537463514867650367138579343134308184889994098596355287370687435182835982801031764735716471187185369514376470493456563506035308425728526511870954434922129356952724947930354896044530778438286741904091622397490921036247652074972525656522362395031256496512918408523145657201043952963434452492269807967520155594242286968148565314077294283720789289259841122379557684298671729224691800470789159517336129053842799059368008742806311073296657018899848705084836183230248001014962406542541498656890001717739081421662159467665863245101994647576629219413306194717727444423562325233671962552963406793420179753414844712380868477804921324849906823539589254911611866988360464500169033880538084304814972027270092420612844117195734120676142690185112665040508364263540898857946994073417102250112175262106409705707809660869056504461471508080540258397028487672114966314469165846217943183532413741725824830681979750833971566320340980189097642938484903230563945870386850381010923863071387788482813022837239250852579255003283825077820945971292685242662740669509254690239133614480370980881179264780582037230348070937554624775875470925350839137891265136390194153688163911492173815498299528761211256020974352612887741107169551485830758350343124218791898220440314826342117526130387683442930591072397925238605646454433623080750264157640906963614532962359158506234979109584094187891856840247700062187471788719384072232410767763670693982964856556650652420390493842568803241053235008514887681890661881254951069734242099538251788131111910478206650875981370436093095189966654752143459072475073270714681139062205966153094712662428663372419861151599040869730120252433158094491308526189546153881437628567077105465186931118429179277731928293686442059203473766834352741163437951561361702883577329200665869350371239126901971396149213081821231167980168698946376960028209914194763384385964822446277054310072216040139463399053944159242688380180569801131245096559989482759434289217374325743477845862263640778949122687961973237549648549831103707007803798718399516447069519041775405814053285527665056188755455025132788662087144321455565891381528239747845894649181657430048299027484362625937510052555250624269327121466632066196382389692894899960439145398673906310096486063711658253806091591102799025647000721114752106245041500887308589014236851404956918832161920230502483502155458132326576596596028256476094322682183567120398735446679169062060264096177360351147512176718884155457900832519392673695413977934393778780421351590824047423125917419853924477876739735307355009182691288376733543375138879547025243339010053838423297745575626404162625606979688927041407978230113026133870871123598139888979675152646755947922466598344717815929105857515768506034840170598803123072979134736626624655115040361589265325879990662046502193925517797662854501088002071758229903162359696822070784983594219274981667271254158132650625747469042515466032557087201449823329985058726781323733419031136073163997284784323972194623668769613126600306870676790238798001502337595334014895470245758268709296638771879028586287672740906900796390500389750555605165449600434832908705613983564389553351915826714655593517157186662662227080955229693311939470728986747614288138129250865087695267797704581361485581133903263882686276016030603825954485262508728064225545629023598576737353787094794940576256257154070696869100974746240279966895590827724400048836175660919639132761750479019433384181713546866579538733018499954933303651172667677120415313875147157895025572292522214381248873217403069444290381877018539999470550958128349157308154448388175015046007339554694601010600658694795292304303090478762195776033078097975621811505935451858960119351758387958461077142100527578098079861593319615308513827780475924385246587632910266956434138456048262489768535560605121821694294681875040313235763357924177036148658799381753862182848698469012297190279411886084613901590402977314589065310533900688267927330092448464877665066169192624866656000844642688129992698791863918841443410478606529957226703496734228863606267743009910020383839766910787070817396343757519823755288722949257205313146657678442948357725982315248553587051732584760585990735345949923115485140213506638300560767234270221055823441076349289024329481644880826972733783276990117180719501781140709015507105399488536671725338031420065939548192675516338817779323289045509760405249837998865780193611087483106282152277695513341623749377058379631457402744534264770883860758173002303193908524863091869536924254139188327644504150907079221235886069422779661883072295572458024974300916392089975862587033961062087362979414998530188656603976108663543576494761023273468317215799710987604780362342947326306192674167230014336928017542946725490017388585639663869790782544424160123361239662878333314558962639904733062499319960448521782905991700229516103060251878662644555684506537922148587522960054869442171537934858705251799334045237182252579469531041878928724312082190571734079835878052935125676150474019643385052814682990758801832545707017978656097645591549324038204551331980611937379209027792329190972793625128834939025901637976952040404130445690904772782822131316179869582141837645067235383700570744198409925115455052735068994546914663406495881110337470102657027488483468801568026680574837639294046897539218300967628904922991211498625660608939919883436030080694223699720578982124244789202956284385859994177447179205183403263264977566571670311134245217632994215897226918973143668091490161287154357739428957662907900311225293695652137736852446064960013558449727771962874790787680977995148062351865188928767683075464384236137721343836720188136108152356941527546543843208823522782480068405792396591549567803249216950768225077226615550345794501753369843431987642230661958055113100931031542538987644644277353933401613264253942775997788554248946495517850379632872277831708330096628878194082494682449300267588113793296762866730528509024223863627412702189099633590803541518548296658000181241784596796263741440149469103187805615550703871972409258539875678553412131403359094904886489505268565154728031282671111094721880481533658199970453753248601755970520310730806594170535562168488911298705671105585488263790570578465698745008340204712581975796561162249940516803600386830727208011700126587042395643550404861965843082865222266574753127211179801074816598130455645719595117815802504868103396489841969131715841426882475510716023774815067935681972835861028176989719169227511827677959188398509175393193280479934741444557308715718728069184948863476279772664039970938948264252644905306978110614994850520600573354901220657207408359437758292803779754248799461648366715564746042798355949575721126693990315310593511313200722099029659340848160753453179242015977232521488254063827690312142015429721787346603232025794993038820891091476695064724045143010554073323374978791438635770646890327543667844877658624536039773676119394237665949644773934650493389609977050955070205997839395256358431776998106275931512105416289334303974259908716364923055775275218089246623315452556117164082885360835778407946174839589409089730899381670308920698180638187727815017187653106816567435070751690021930964165578471805444412250927814712277492781603594285068760542385174635044758515991060774684543842188327599101636165669247794622452284169259255263470598081278403522224896154207780096248487423854411099966712958296936828553947001915400364377511886132517677288087295606167423691715655154251154212013260449739449879412894853634314173480810222735190798370102808621621045517575643189973694139888707723097931126866607830695479916151170365368648538946893980573513377725563226051682830494681114285421786483157363143893385357079424991553957997189081449041599434981111896373159687894954855912049992120123824813631111863172870553164265498110478654343373544065450596674408288905857542207730269895051758187344356894618081310773860206614387814037954202436166823835664273425716444645526177706995463360482430578130398337952254609548294770721123948044791027924233000636220545534500872528866174153812857526149257222734029672815144313064397637409622371930857156808342947336923421132829258937696941535434591529324538749929792104927114633898590732004320166676252574906265396146119557509591762838742813347240392210260989060296565945130925549697796989641346772859286334465016839416462127241524348129755524141024783034937279488357945716014644028691252836349674052172212328068807932698501324072275660033152762797382942143171356040394696567889041560687398608035610608111846722840437198067235526854814801452075574431244558416339098229794686059001159880106529266965122502132603561799699622825856860287569538386979291569763292328032987080495686098925679142565868671198111180130086172991095502657103723027804683133116481871025635029164245362590818156828709278131847309503558447678785949397424598770692734636998294621795273930663924279875399741491201192657622539495953814759526209078669229354599368296385497582057216667340664988674058606158576350841714867761024446663732550242775022171226095608570512553007887648902878088276473252690685884030617083747037415616868185098793450514154209159225158898958505589404232544436214162526945428983834020712233349694735530504606636683284690011612990721970061020596167906875325229251393553642743501354194433850089096068240014242959039853325167146395288538082580083978671338260789873944339439402639900698069263259882974598415945151987934929563947327459523229163661122453246786633315911132870804520412973714765630081305026400027826350587266124566067082300401652831938189488275347578733362141499041655243023492354372660316971382204489914188548066636374354836671341366748231409672107540551095070559568639553892985202203602747671672524789172305286217677446564668967059039255329535160642711783426859984832149123161130468436277048785444119085979274666731085962519224279671505290769231980688374170644672208096108957022771462746428650427604617138234011521468639310268500104207092319230382269949519288659741000589828395486447633190878853719375678096700733638626805156502072785145678329928603305878366832501947348056545167491578811943707580226537814492900344600614830212257023982339296168117385381550396707047277537085284258328497534131014851859151982830118018748409300907287928677511844859364815354943377967116382762888385984158605831687032852693833249514101496349915430639313082883265969422415826013551985449088106086796152615186703171024155777037433063272806177255029285645928932934932989550563084257346953160145783503234775970990110190700634558241497055474252089559351435249346287836841299030109611592159080824296650505010545673383958682568043466852350245998235722794104561801250841848950595219193067624381458459901666041137443893400503874629848329195491992173019275726909072367165758783051299678275160481992923671448779211847679583178244033846107297530840590888487571499531135503463792660506193874111511400120087499420357886005909437997074028658197614138309004284097576412239002036121281463170957712299360209050975239047528508245828726696478737153892943303945789108576296250511117970350543423851147609257590117303638817008909693929987743889211835146181407743813982948796271697793578552240364349798515486052172964081045763606048698279431746557160914460406232691753360802002943913310236002222100211976733527909078619661493000647713908915891144018173720168012099352669392723723021432385938981384960829702159263472310007534547653023302693350052775182667805842669242032080793528621453855558907935247888442579860200606059434701610069761191725157066565398134998542727814928962071001499812408411677272868301606429820803489085820224289608899075051444406653201048972644470257880190228499107416962643009156669735852031067826335123904722888758041657308700393025444036253952062564823316917222603115676078653612183726526855268465891628630935839923429237194835593689841805469277145085988228006799327142981878074076633272118106275042394174198015318253719382662543569865224039166859284283280570736199073439798308465177622884676512700081349695058763413405524356391783577773988573249887323807661817033717594708992238829015953957568635665373412412880552898225018476464779847571806078076479327000480248415302619180392815771039604907993902885808714543963688064733333788827770122628314703461031920601170846015877535567135766463124098756411030862547363876723660834217481859213269292520910863778272840964586611910163601381993253517304379376174689184667040090150480538149510970109025365201918320625841748429003732513572223405072595815091296962241437727440694771730593642737728005321462558404939028464324987104145931811738957153878705605009028049700511211498771605597274029723294122962661288375385403916768778429694316859923763425263343871872250346966915693798055227916297359126898509673903264023330133710003585237040276840813156433623047467650876665458290943664052049068965486511905500517459073223496190232119533157850888148785882536974525387628764750933798697040754618599187835364591172354272989093160852266312741448710948557867846315802207407511074205989142404846142099510577964443241257469148932258900037332281558851299892170795167671158658773100784192532328514785510600139562338827246325574910580944453386636961169249664951264279026346864135456149547236377609862361192917812472701203393162163783620852808016992560436293227878524604330006464219443668241520973734506784254239271936493648689285463267533801339256598117600921366668545929938692272593427610478861588658487123238999213623265709519552282579794121638261384161620681536619175340029902936187097566050237689602018810638136404345003379891689861502442396275255154007574371600209673978572681747171252126095882277965474961894204183367095740593911269224164546667262879024091403122074606681764526796474043715736911234711628591239286482950996434467128807172899695220037205179962043958686517133257815169302249411296585554667747815988882596903611960020310076243574919830336099328698058265302858224417288979162977839418288637323672963750261611153929859928337889757706472531238700044878940109232613243395234300991105586353838367890189099333218540946719806238252517106574218734104781516958192086850463533209927433623600928425620998252470347131375816649409170000002048040825676973911932124640746633080581884262438513738509501555495432860249053186500391717649065313380588754139888179552044713292422644866536734242752621493737318806928896877952946654331495855424338958238070620429497949006627402156318824416369183366385342925419014635921385994224026662393823607816694208329143963100041858432581969459980873317497765539064111014343561859445515298478073974234316027972899606827211878162488295323730159350365410584087852490987881437609066979144791278350305381912099846861683891238113120939149124806231687239224661317522529087668922714356441540131883517905247597788420309266619927550516117745009196581255862250806188809252659628309497361048615078478947834498775081839060460692683090912974922273791359849217664906666725864492049689379387990898324266999057307728046285057483798360975921676962301654012327189773476907174533243996422919986929612345535742937684470111330417101279393528466018873958246123988592261800023877924393875356713469366682536880803940507628259174844875883763923844540255239845539287878286571190392506808962314917511397946063169183116342327773275558193143384008898956189062446250743897378013137885756685915623777910336968471310366484051015845536926702078169801206602726063329800813351616461922020363568438084953627321261363720896325562429247717066737751421390502516771721641272401811774898798761765299736431129927475505045995165576426198369583582173897902495735673284219677311267871045651534048204620335665318078363285112244760272696377682947916146373744280090419410077910703139737551460499082871691923893564378016057586731941058138661136980004668391379965719100210581264695858613708856363774437535364939862877326099150515044073372686557714092916752339699148894268473122145081511081663630577291478557610357700474916778246718253733039485036323368373524907576241731593228219788976785269480241285043366539256796902661353529149619638049589353269388798342821797403422665083021040847832236999935007712855550280116184608044780890716454708338794579079169352033880384048339591753038298245201380966868363983793092973956627245143894899016436007568086946929727174593540275871626260162002937838959419187572501151173438263360271717300396434999477638639254610419386393302104069497035987112662413582354131797235164601208749194023025472693452369924612198466786115219432126481041790877378960775458670899573685383819205691761321398209979215516775762763615934784846537611181254472523686257071938854720251982036320020109567805156348463199135437933564801415174048720472435075003321101622900276790536384618648494461180167021689541991485419381383427680253927680944839820638831972065829351676230330668553056250232136932796666700107196383596815791297884907592487717041343283011515472361115944722537673481869452072567437192358681353710939719095381178874814132908752577440168573515302958695032088582726274151090238385253495804628311618403139497339108575802218369009390692479496642284484803921286894592108855066634032351516710332158438541873536362379684917645675215439717120661554186292052525884794380174638260608828846206722299426214709381378005424302873795661764755075449637407551246675404709361814179106228346630123385193745158538504037991357986271977389594857452327446721434485795211829453866046969129398714679894752088968433300440506213132823220509742795893387421702397666483957993134865633390005316474921884352257156893983291457014940780966655532487983005475531927552370534668369319829873288160825151587772587802443995866431996286918391363138960307218386409616999351381360377983659651935018494626588774808253666688592708391599346750844469043480544297722458556892621713751540378891717680688782016523883011465429562788339457072847273047051040160939581415554135108559003557101154575405728961613461070725452734497232961958717032336858374680100601209545748517277888981326488824619983069494488740111126523224031609335309514802408281576882860982376786432863677398505130293224763512366335161714545116171382604289139733218350981036046176666017782623030750899810817987784042638363767246178091451069182309676810284707430989002682061261435643507809228454568532540475196353946649981007134692877222719451047996937935526406296703427827106960285188681613901934614044217381541061254294119721719289275865662415655789760696453832197162509047510249248353975485594954713035427289797822069798760845430008689862474105936212171970838066429931978081836029247878261619809082058409338364696261013755014761429102484596088993043596098156269815253881080668361848444786824323636911485922747652132719635234413014952508543801609487500850790015586344802501859180621012967134042689164572079245672551807317151058595408647722305527305621768942770127972190742230273226364488122682551298942542406268649321702899574825026062934161681028782298493666684782691718513313671090920282564854506749610511598161171784637478806097308655681643394848376410306432040484396677851094046501108819294743347765244712740645668969912681704491136289131768839277369236829769327150554106178853631357372346564071198483953733786536689094252745985203353723010524243418455179327043031158307133152593135596671438799124954808824978315957288800860348439236425099370369155388562994411905866161682672903538630197917443112141941329269322426304967943723250164511582128871412029701548982880783904046506272982984517971768582441559758608504881319082067981140180391723356725636548491167249979999987494115016819267640841507635084983371928275122569985995400472415152956954406950289150537326920876419298097586160953820842836604976637636722309741034892448741699128282825128288802458138632308641897327622805009269265815156450733111719798710713059615403849143285868553240832040894164842814975420168656864583118767916835669430588566735677766126597502236449986166597550843037525465567408027884832346263376428853350593434646286894424236490040169772175131699837357826700199661983649586419068807429376191644494912416091265833529429813544091777200342933946172858549481814212953958565405513033581090730496012335296535910174584870063275428126269513758367976386580859569029843058989571844706481615060443327896503768193099364615858499176541301138473990344213802744634272054754449932985451693893783153049825184004130201308137637311857840769400202860638448744196315870098747905214732827698266535103111158939153332325155008210978961614529753920485902447491204849047960137998375872147692592844856736922607673611621487287175958711643581911841025865327791786281049904688271258633111040454407101606491418046447174133910953972835215830060783979826211212754734041831238454447217386059773748830614040128740604097591420846092257538985174072225064756178234351735237912030327806775298481896102686518673014729110993336481156113537099860470591760933556579926719207260565775375863273904289352115925807700864208211013936644985884900309056393379596839744968384376713313477728175631229441672729716704191283031169518978853626842417765829077301570395182693673026834383622116587310196306109154450160926837806600849831881480304282174625578972837908995744844564245015135654195010045245839473242132385311065654611765692949658970894742623854248560840833677341850591761399971445192862307944420301264413256934098337548492921401115026798924450277147617082354812484874727648525521743593772275142518041460912779587978045561022801874856377643323180725930529520869588948158678490709078706057875919798121832761570659213766643250455971515344095258658327251238457629420749399261579293365102157282420754752942327836654072329061465096997984594846470301266044066120996390069432192703913424757405523167588585994858385651264724309952791388927410003301282747607350666565897338506721245209797417840849665816050492418070054194726164687278952082780535753431908356041525251498362344692347352403251305926679470686256100441986982407871004378021208608534464189519740366451941718706700750573158630397781208937878625718411608906304481861389542766683973153170679599301860694633024882634293645154048268070362328874354148255170991595227968531809840743665566537444088778851853761589171129426249824706764707382154748696125287485252142083741292019601277049807718403771505882452949569538912176181180594766021861532999208606500801587370039917769191271466277125564639852987770424143786948764176500833154611043914621171747999163981941116613742983233827165373429505542094041766102231819979092821432118390638097448784813303718337389938538046226232823779086848920280586306590015030497434043652369524989802932633392401200757392626223375201338552769096551500982024427507575975429878965250680914438142798751639414372578956678848792114256418073347231520901286051860942437321110619819077230359228657495348419985550169091117445628896885201119666171988779164818493816191373708556637859849131049599325749956329480274992603784673511216559908168361625127486689939521244550301954678854007891476629160638711878745545129972249880784559118474589725123654358967311631237179079473645877713174581618540620116218746761064256757051725089740458734494574478810912120110828810060939374737776375517064732985366722890484143006666236106662384185122844514984828476001865625944027094249714669621515272331977429098477735858288538094235942629388305262599451223920054363996587248689780307891400444772190874294700877772613781941977269059794106815633251811132534908339882819128362003857308291312441243499227798488743299232916519320465021464079047771706170870515516999458396106795465462989328161980535077838690713173285894089364203140286244530243611125751968719706654644995211390468739582104303947609039927213154666969370427491084464970011874419428277457588423249805615612809336965882083196555752322916527413957093124063186156062997748036212506226992212273791274125573269095838435688349568790495301040814678710608756071200539804946929961663496455827339976495847770667236742393933621069317453102702464765959431653932422423740423894281922003387766925723508092411536063654389751004084259528835073337440230583439949006099234161132321640039879763171334295391042697162603841980762277157998334181838993831107674975945973713258197316993599083114322050094071041885252201985540036095019482843490069162737690257363876436121217758497687525287117030246723678575638785463418943626457259760620555276662823913028893774253214675330845173634658724038505917085288777104158197886073641629861245916895689265920383879850176207580503218813070580502430821814125042633559476378859447483395663472120505705066826157421546497381891830274771140660137738817304051334475003385895529772901779494183319347227191766649485735771738610176050494957651208759584216214489552371899457577140077205435541904993420436931860483563222703855958558577846827930556606399638685044732942575090688985754534217761708761662324044279700313192738880574530122805738392920700338782950310099971125645030369887763012262599564097992117549874529323182355491563774613182054228706414859848480972306302811831476841882796176863958943471752131074309565474210103758756535129608496243965936457990126459167368990300957971554380844461255532196868251985236670684413892651243462860786711656810368119792502336686443750985535785919424703738202185009081792867668275117014434430460550007160696824290032466011465000574836431175995161110867900139685634780822284084110438264983175656801955248223278212258168135359577211402633724947128832147061080750738704333269068182957026673815438950324417851267337392094793764730450932565646543203911838055566177862027003677058177473802630482259725861849602687793768691390631603466133696901857477320172291910656216609158349164545963634619957146490161364680430783002967645600127948070942395433152107176039090636922257589256437304672498898255423317730852784650485139807279357247389453668407556069643376277394128334616627428083045628638130753270044600603905825556456352491794641238873117674488278997312362776348272726156196500436657331023057745886395745727757973160631954997955654270473539480450469364608499165281267588259477584537510840433375085867223620081440613744145259180720122481462878536858895938093466708356634376020642815428903130671478416723474327452764225128823584999761002551322744787942137536573610247839276241890577504212653477143039398443657957415642177049750268498135212886927257755276905302347555320705958615535670015605138905411842972335774379709779682858799511145954994096030217608961606452094598912790964862765776572810685051773877856555156930712378597094389616767839817522915461307474029468671786006156377011900808022820837586883281311745543923092011629670429471698248968049596151116890206337163366959551431789517134614495123756177557908988698043546527956814881623180065257122714214550743795476379881444199611079674553809372099566570834298373799040830633824091703130084544929105038122764678443258098542553755977312618847358757074348262801699513528072785467914248483471647874194502006320494757198718656495049933651483172947634696830679526949136347355234551606110305658534432190642351313824342574478798072430354813927310878394315818971296102050161770666837146445909198595755582469023153877526152526711523075958463910693898710467215974577788388719347267731897587298302282007355960592890122031521662990868031097784720214425008214528917877151067443193275248106083595563539504033029199224759884816707555164538101370808619420469098874487398542621690967925968997369917341827604932234397310756758980078768462862890209238798388248465028852372474854559802256074400264342713261825770797499237985823655659961416750991043229998429655547732011552472073501392247090604939679779459555758812280736984508176150841888719606453389110593698987676756926288367577770244210934209777971704839626886823460274668164744230012693248302942885068322912694121695705162198731994359788494904820658281164547741528768428826343828478121685578024946591806363190483124649665351789680183018230137425173361162280773255651352622311759296791500041187461656664290574799180226322710453569211262515652366307660279486192923502755036702968115198211814895073947348288973557082225822496327959740805699292540821815550110933445736288722277267112147527802558929089060956531824720778941401831785576718861704672380100344583132655962877046667607286934175498849299508004169508834840987948925830589537939812681318338869243231983062119198485198472813228903251047563152711674705870291795572634352764530638023733976382538518737062147347852958135188395594648924219946116197022185019457486351640606229892636720848600470815367783059594080728033865362090519925642614881526643700979577274660185524567622646459051795380209625283298104653091011663393090786876692662891767071212995891789117916100048077495205305501234301296157117922219289142644122343236742142524629607910791822132720975634988113684439182867025761751879360826492995328031061772977310549999776437193291355660636740168952716803111738967205113526666456645589810434868742248396833262106105543489521257008759999788449704002602395530690942768281717606968993143217241215939365802057319717620769248665879779472853299821385541255388722651813891130548327501300710527979893820653863801283080070710897531635794985734416187964769419117083761931585236869159715224500593382265802644887916675677280113464660059640292532462157834171828003885519681823307784433003615722838684765309799113102686089522962307479584242283675867294984685717054108559411544416002619436109191721835412713615895981563288210529335103091072207748504402765711915665847648903087094172572416723048595606338938918844213569772196427883539279930899019846169078934728875236262181433311409089936463853693866039014472822219328983413124623036961814878524214151475366656973182987732727398905290925401266067850466590851946271645212065074246121261912042986669083665551011193967195017357524523075918824732139546710569571849170303580397507166185389413782751546008255692916380732411290073908580444890288641314665116139039488974193784314470037373377481153882621917345518416859607592571824080066660977847961917291258637799548215504730363588059907255783726582402740991485199406022542076429962275274596635442474674800688487686496710542038254841394140855350539736775353354160745054109754144037051275771146116664927443970478170392129385956985560348112788923905816785547901154311233838454913474721872780454506246891078691453119187272040285079502033336090416959157758297720653764923849580006557353907974825411760961930149662754362661325271145856300257689943872139269717528905623273507597075742920377944748178025238011717813368266066930711907991722676227969330196751609281118165697523022749948837594877893047073885223184204516718598400763405896011365826591161872346594591888445776264887509124000117175447523857302147098229934923257412732295334854126115985053036454822081559258600231625768672659974996235141554983997679720010712380162486926825988590458679745549801308619365617248758699752492933045988067053474437740405744786835280047201079216978048247361328326298558715675901804389482920150537141984777433783832724620806890705208843675447798110416987664672788566005984752359008756158686315635839048358635056457693864209667780515515453951198266594781405893333219477377508687800755993187269392849145771296239272813321855126216246147393245201902434180915851299937773799365495141212307508012098058622518677941431793210029903826691993131509961078233176979283147834121556667140589358986873490169804559649824143303971732796462494474310629474128853817735776669737924778557179906406301956039896420281592519856734464256107937898515905102242654064959448613170047832595595148151546737459695572167106056966213080467910206165961949006420186940734768728116181430755944074113489277810245555431966732305646114744433018495433982773268454237710989734467535352724769923293894221357869324301848460292854322679581094834662435366273557613864657048578383177353672395646859271348339917488201904686225511043019590474850922142422464704225526380552315174280786655801835019733164608597359858580070693356084160039855665359868859354718367820451383406542875527489146112312468818227476569715585808537723709897222386753470238379261882384421104436471327714292244079482191781995359891051950641111956174019046203340354527681889799654442342604735964426910946223082831788066392236845245656192491546213122019333977581964864631692529673279628874704851363602757158351239865809218559648926752852239171922404912113931353956389282919544826350280273396672021717490023243843925184873885349335300309774574388308039420158957759616579368709266684041508096370197836427909144918180591823422648010388821060429588519779567997055906543548440361840923976669122703962016914314227198669593135657366333110887610087636124952191312952830516329159431351687782395500424410213958018068142365846514066723481041857728890680772421304151558713716021649924327730438947078190636475774938099154004827827815474712545340185157806306673047532738723226463435892857941657095168649389941292565007935103514115391369743824593899496333698623954296969635458640376541662723979959152490829009677852002624290365592454773237040444568392405774630214494343502026987304049665662082791794822069320997184483906164457876535271535110589948655069182169760522385294202134433208567703987795553382012810252769042866665998693022229063680821957588735124087388009957062476443169266612737758202304678850347064646135918515152160537421337812857519090857810455607810888614290626016623636431530818986026630824806785279318679969475270781669879537014231536748686712956242405368052549512854243354798079483486298560967635848837364225471360150428142585499229092077571218285855555438444843906758001821139364971554663088532731291595538471141654159743203222174131753469776149417825969065652228083522877532242038322599594410095860311011915588075756021407312501489621884252049526016835622397439525470154346077733797063043826770070059633762256496065665651230277239080281748554303378866200780799809069062774462057944127258990193770539839149183574862590936375016125900932934013350520969982327290367232825479668632382369214479915906527103222977271998060673809778409482971845118698751095765369748373412068351405117439968280381286586226158337262781560607418494489056877554128416083452967980463871816994923913013797575628443504409697527423557678537669593894114394284929579614270320499394323618943496859460235715035787192288543752594438011406862367635169980468988952934487966905797157457874998673749244580201849025644846245027710941360556226652923661649683076073098422097387000809148457420926072975750171064069570485612943526170815375981269968842675818556341215670000460479944647602176756221535356010363205374014586184208644414233246070464339880633943801579740821164944425109642568130870508778660532766048527122702682689885973911045024602741571322341767718893177460170069110133149038667452067748450390456481808925942003959780459613107013059968594886308083362979436234477170109062335431071250591147541208816381819197066628691998103521040623535938138265143694839201869774697078720827401450690046737849453737908769550654840209813440799440014655443640395800116796740568107603157947813010166678138730390384780926393894011607268510064693606208454784233860410265825214260852649375369224188527914246560547396152501803873721023439492170499735920690799514247926906537291213018320831662238543566808992395405580423736072177638496076218244679418804317842470149438284993053118319022681453306816392885756986933056757196835731956993299925428973651472301264293255443775679885692202710158916395335463008423060791368798386752061302433532775334588324321583446321327271524057099490905466714391976672104403807181323491522509389320221584631543288220440126372827780937118693722856646214297719382794642563255561365432259782423421805294369458256122920837876879994821321098171490419568778627408520810777312286264056401444648357260557188826872077754839036071467417325475082042889276448193021884299543096621184518733247737117086151656885158651509937298871228955395717904236019436788631681535481596139184303684474715272801136636040831317935676856468996164172049281327805003738355543149095306845863489017713763293809997904693663974508210725869811411569039676629554841978011066877534809703053733809670071429539919986456246308935809637400753669846230616811083995913315710400960456631621310918304662494954636025382993510797428425621839113238591609767492363299610453193005913871952525119272412198041257029957647347350796292912615033201223939075913357589610974201586945714187787715630336101992922297384481193186879794109415512367390282342606431177843481818273030464900096511470343234048067473553794046987835474675016267180344518839460841836274695237187358599109197068613546322513708885917587548277312630167528779717581158393299509032678018462019167592528350944277505698457091129210265859093042629282864113249048708098985661091949036724577040607860869951841004822244629332224893972047120106256069262744084203594369938855726860322294826691588997818172222445638359658827089693258192169490453280219923570434005179183819968660416831571570863577164006184370449988522754289624151188023986319220134638567418578275386136420890563964360077666748495005177774851214076269767962150143066956531085489459539259344112603736951575763757586456331627865223503083538876431675853627876017442141089738815235606637502371484462909210839400476633753062022877441613548694671094273080511715595314786025109933926006123496658726077530921367188952483819095844617105404200486666522231872600472956954673359167680201008451432976316663727660413438073830463506471038620497421460360503181189492424105062648064651981896723668363512722223040292248363209094301303381797275563190354763526999909098882216508447178301728990383937581575485463037625206689639513234121231329400895974500968945081281938043374964187545918757000129683508115005042510424430557312714709467606091341261272067611006807215508647243870925328614827166837622760736142737980057506351305890772405365769940430177713403553774414545650758597506981262801417906999749296416613042437690981290118481968691623215289426552273654422390180588589672430443619209767034544356869857478299050355015706030615891475493935189807619722525856468691859660141284932226981084277788709775334106382596845319016014792457683436820318640990897779378675473258722749960508073176698119824499847833081069178890949711373318605876124277854916041595822203230095029605296163192952572423800477281749150353563715690247665053955005827443379870417921691516909624338745468353008874771537169260917293529288255437884057983803604573353120381810382269550394428195390368284771133932284949078138308278093401074070573068366968727792100776787511744678746597570146437168947574402329414761565224775172788150735538102516049553658351631357940255677947695324011218318323679431977866181868190207503623742328709623332994468562084474037606637949722606652431812113770125715923946158080398341228332438395990223018008213147646923143396225659324528804706235780817963599810011518475430930673747300536993224492248471920628873185401601563249283258206061213417615992338882686212834687736645503809850056697197818691888522981898895819675095529529001351891471368938042168820427046564015915582483741234845710783049075185501628699404929617581151167239140881278243539443764025737518788027796162845589963002722793578317448385336481268444599364423282432277862410487508048557644785517665425726382816537388798774506042581535745311783553648290227848201970062216945559237911607264243486836920610471735460252218936743891855702845639270462380426496987135807375381636303998108783775029440096589366630608864286496466425168371397699173089099398301820779208635114967685207190420178180102077536173636853419029878248758431339176916383779803110359904931607440074531118279967949651873599253282634904825807813074491233463359738497111181088317405033249732671938390830550533085028404877627405283743000003155426073722801745386005346694938818857339128807734886599177946757207000452254925071545551160597177919727607375833723714568936264293285288527763213234932929976781847644702424542973099674688409054180011767678586728486475623042227022186431315336348904673272246516530729032361192240616330860203898670780674528556127212696245217351147900125593753469292630806618061670709205608386366549257471813957791808971726945633049901828458782659565511841696187080036968328126122584102721343960850197303902671347845058040126064745582241428438461129653245182454871615826002578372386586773034496291079417081613376408459476581848694681135625689149653901184331890434375266275222835369012979429282566317185102726504784460076661809449666142480266390137148506066885253034768428248418511446121920893468811859225863543800783989890194230789685094609219488431904587680217135553836187201453684473969967871875966148264357818559817845106040889395617048740700722744172816174377980622891324761929983604015797804003223473749270034408287205450100247163843400018904324773340949468898431732546180112289840842537961304558816895160551150457652522157278284785810956226480783803158717529542149437105458145231634589287470303936611695057728489601113838135076933796094607412133081954038748956364838638708851004944879588952203178794044062031671031394362515312638193994617482532537426424241255889142689008333224990264353212545148662879970051378393415843223057417823415521823324596628947766659166301474373776375670366336284651765950237073394323823808768963196016560955461859611137389461260307341982821448000334014347500895447335222063290096824332092545378950585442949332695517508838011144223710239087950411572822179905607153328898410566594142571461255351427250275551265014141605856094369766667031931322893638285332012025619159149182458631276184272611403722777854175680868747710215551949822169766915592982412421335199486392367322644668522146061508643775451151103474889445031192715169266851089523251329434505465105160714551266770775771869952732697907469834118271159380834890146417307550122311158511144368163491183760632644622848872395511282103777371616935155123190635211597666218711923772571638148489750410658277331151235779094652250929264800815106016888612426199181808014958292587100764768125198900260804181652352577591791801342065589375318549139539665881345940086575233561572695420937583495761663742423086143483701609835178736124763077003542500538782540207664337060280656652158771422686687364187194397696468646890602333121662226704243702232037043850665816792129615331231161115627007580133246330611687464973191260268065883962490595995468733620326741205573694169058406876211830906188471455881141892273810750488788804631096491066296383882168380732973912266404699548080039834179187708424217975743621621920538295841779526024100298697086841714443419471702679882837295371362020073219748769786477235021358339954667183603995890220324854775676315010898809990143387809254659646158620498342386756839316094789096426418115632636763580393500267300873909968984423077826748565901357084285567675110746938001493260465756441237848890268013663094838811423167514250850142927635547809450819548549021096617821334624233914775354366118846466316430249981951629113446621746608651899962208834458899528423116325805944115816213382902873257997173271575224694195322194691412528030034660030902480562148660150219876231146362149250239192059293499460340382813796440702976088701534185765944456785897803957671157313731529379532496222866821347216929461616998971614856264284485235112500208052705710440091115136486592359760575142147804877166246737954110022910637935197799609557712825814034769744126666482129344083751063209556718164104823822290544256072886544745303447044035136748962226248835610785926236539979663162323870990821075680563350653085345364518958362983610565526401677907215085827763951759100270246732721777332859944956942373257488787529663772112395060446352623689980403041150408888560563053540753885795538686745274027813983670451033429111956475897537336810243179772605155218540163759083676684711905937024072029244496866668798747336015889689693731170638948768190654415329370453950100804101383533157313159030474377420266393117471864184796397939831066447433907657083232131142660911925037908556454833620045133667790923117467436338720288719048281164414696144161525957872197623356302028204020562998591954632183774547017949765215508975573915174704432008567614461154729670460569916708430600977484410053372767430171357028955276698830817112041428235687845235916457020133459672834241936391630962392608277809504235463527259315170626885485634478259274337135534909031795348348803410482345338705571707138900675756554351655229546877760758314775184215098584301461879232233684142988411332407166730535789280002426629065760715857136244090923594453057662674700436461812720151694123935299348584691434462448611832211852800354346029716123596237376849281220201224249350099513569551429164232721388326282192195746045396747567073031311858374162291216377137659853679855047477086928655868422586222552056249187575107323121075603413055052820247019325171311302675442732348347106550892073777737947046194961029775150938723144721351857156224448324926585350498056875921668374380133032437105889811624830188904338634158113956155622277243508579913332476243941239915738512654318796829374522440560219490446143177530555418819799658444255908136894987675210733192728892074101461195046724449192281309449276051318170179278503074913246552986964163122539961776151288556823014930322137527722493216723436443093089882226094835470736262845977622543185022054909008231212485008099464434261069792054660730635595296384570499790231269973847825381686197653599930120485523028457574774122696175576840539613150933714324906205730686213078449814151096123220631572860178645003575483332563754583203624868185565446671676592729582661136217197551165525519327103885097154882514603837855385939710048489527497356808457262927863681709814129422453759194427133310930962685048731591189400613705957460096384388249184181563675107962904637008295805563279122648095740832370629196294518224292448610334756168402682754583033262636400175202429561629993385159592667334199166349442883809901456682228892761918531374958591584996549044089069947256662041869086952329363382394090273536984851338081244301880015630101817173257083026174611334443276622171591696881136700705844130275377079689832380425327194853547934898920391506434190289615334917632736947747293734750971827599591700006169745924258765044455448725200955531518988892507705995302708569524610388042275548265887742854974815828622182319986522316207243439845026589986697298672174153908228228700590119226284610159391581612470414611409588771638741327065870326902353513228895469638001216623964141164646790095239100224725117079381985674329339904821386734112526256620300253420440608229678583735122036970709571232470971356439981878640743966081422279630860149591793878277742942793645960892404740810703679632382203990162695191916196694772235553000888511044171260564946730023037941599861090242657911834250550843495176933493909624411422822954225303227677143966204447331937820972887242662391672615518552645329477385323227955443748377719063111496401925290033601345180662478719834422317069123557156488030769604171670014428262722581018168420355297005602011516657259402425831730390717134265087777936961226072039025920148383251365553718840694413371553709354692767654329761489509113127199202924098153448148297293260573048089424373297198113727751002180898851253498992892166076392064137088565498368681478439071066389338238133382394610861642692372459003361899824294801232108006183421952258422267595046047604982691290131096173291924872671259747001419542194296012818533943035938166802182445853334540601658956277606221213521154505721936037892587431380067366383184486011327323747600399707463900010136012971727437299324549852546572235030785996896059270064264554573155540009803848564382669274027120888691937211052612532406081089260288076318061862103166730186775642433042436856687460241231921306498517795131401139261404834181234345649615237053632836684822535402591424724902529821438588467298425315240645617993629513607892670309256109892820673038158574407384328860058271857161388432079760803430977153668092709448679691545657175944746767388256475493499634707576716561477663450827692708870080290888194019876461563858225793550571384472092379020858527630563893327346525088587786057776659107150128400210952239515557740634218475385698113564386690325477215742536158978831266095294026611082677912393242891947249332232640782591501939058964360526633213301233725723930721846701446396661316505880585575501414182706043835273213219860501779055179168480960222055425643526448889989088642958680063777023171820845204181301228885541582597469258944357803528170336561573276417532688079407743893636795932240838379841559822214571308866318266373749803229351639957036464580736753377434685858296893762550787899172416520800229550513806613301719137245006841178842150372928096069426216580448432946076135325407347203585558016972830164382921230653044153114340738817178551522902600350334429585036456141883060923307396839698871117063382486642085862257193638232735241272212865241510606320809478322726675300500456307706157166489219487601513584911277826187393017618955686748580937992160066495211741860613929919358715075071437553562076631659991121583068832147674861481838832038335462512999753120134142979262559925098647823454556964701748351043778508606707780579629935782826766003110122924502295733131136916756117432962160798608717858012507725475704706322511350963224260655874701133443077783132069114041389594291515496513955636056843804034881934368618048541310795315568835734852166467724954298365558876851463297052695414007105554506213955984829560085321657235864786660546284932095746597425570420544787216056862863716983528862623556852856427235724883480494760109916268540073984219623636130842633728824065263143670583786984335826866637268050070644372239306255131360841342470416418258108475993814471587953837292297190649104650955500948259906185792249822691180398997343365261389585165922267683546495318756478337273742382335008388855766562289577323531836649644269403547215882171887883005418032718381794144073232103995263996662856081129129390008625911006354753736691748426677345895772433440206426009181424699266257914755223903654673099691999236696606621506886961634586357624244370018463546017959007709502584053696825947511142466446543464162558311111121509393853666387458632521162928588129763279936497288353100805401855160180978029252384511836988516601342710941414184471731708257330305936065749930231467406948313092467805739548145831235811079965378076708852381393726941469895096334014332284500454749492731369435999478864140015444575167759694339179781164727968059702641018924713877130265648606211787302749101355820138594880181729218056931545629667521264678298284439909039953074936217347598995143221230621483585702200443361898317782896186252523231884232401374459077126321211078954477066511382748579560390724509866245329957350066760106758404148073138467652463479107063250028093314773513444015745106912852201225919767112934556044138220047047509898950343278555654925875702600540462394038822220037293557272674593801271724530843302543925707660626417016647324265899812866007667035953514751035077746101091251894701393027524668557785770957201399426439691713518246140182089490770852000183288045545943966315924013510067394867415091745181358051816023826627206411846182277716910095541712833103075736791632491508852553976664030730976308274292570031171275089307285893161276151268507918413239649670222877642664814541260697764745283799132099641548785352569346179972008106231052886005708288824979186875697452361035651895510692928558407958390262472777808565605757941109603273242466159804715750811686340049494986645721523521004563738444985244905624698705378270671854263455562808953729533408211565702316834708247693072091409148288732050916877848913570275310245345278693923202314848344398879850772947113089475462865565751433520502753029020006287830572103977409844845335117109282531867869562267036576564906045836802218946717098400995765544649631513256721698103465070822577939616747713593287397018052598512521649763531541111558476392813674915375604360093283099843773919621927999290508269574904003102881555679556410608981350182904553085341502043180584217512141794520298270623678487168910977360970847682376700157246362559786566118556052966806443478743686259414878240217174151069386728699317754875292445112239101922099866291428319368616581746924186023942563192962554818704583800506917227852505354822314388141956526252813927741383183986158298643752588855765964065538693266286160553150276831814489406381183002320155641296441267228691059793667720398623707376399877051491607412087299013995400079654429234331079977825417381680074355448350787035848596497380241570938838191714395459510722811576203442623256892985543113789812249956968189719190542629359578976402168410781905812891493033775005548767548407222173593596524526425889135366206584700058000902691773726923276051578485407397243978194639194235921597746043815828171351951480653048494403463765772396960419402502956033652579096946171943930216038798937018304294828287871150977699138760095234367504763919666348044223447326618640986681154627369127378669290101459020086427437090831377881756413368921683826542530551814196676738790946490293942269209125320478575521282755101703488671801781680968514264424648459286954225367910466238427017390699430717525447089182872305221281097620846901963710576071051202403272548728954024315158760585763988628514362441141418185371776036740075171167043341516089414741030956949966171632055512905707381654389032842213843357414365102000706344836384287382797185301401606727601583220718216961658117256107373249910921804289917123460358380018527306818359780579261971303697004626394081784495178325004736113696081793679996585988606085045581541941795030096230118481111676407775186971903135001143597180268596582639174494468248457992521699753643579948928926712452397234802683261561810717480128315157540454401663506332099887102281083775274894476298360854670380849027883929554938247335604271517041105173474068262306235262397887845449103207303461364635416124954348008151631237793407987524515685614977123937595852991474235720697473992757020694518597141458069365800711218287093850540118692142155143007992938318203306065947879600438340618387742590891367353178145507746828448308619669138328434330941262718412171450114735202168836474548221006735616140015013314398490135499791330830141294345767916881862404826305526085205085180238254744899118909768840182298012057766552081726726113052995112693207573818176928800440280721631641352601240298811846747048503292295420163772144811767869231460475118388451844310036149694861681198788780197715020335926135641109977789540186695299498381260070743880288351773955164032853210530325715596712965051599758189493645410600589810555001558068148602548297943836902895993890578943293008405151904492970624504076244075307490571261651652922051691757144784187749235355802158713173015557269157450370454927883473136600768713230220258532274504614059644812847237353144251046435015131037660396841612991119845226479126126166793114328297963671116461605905805040032826000309757012980205715282016493337057805300177731934461385890313854847401859458613736978142485017101808904671507361496672788582928355734636801518145589247336641535483465473634870135389050202251497096976331014773526128886168733735814190066735126938032718928996606191584146386515689704889381758714044693743426446155830137098567299419571099026172822302592060458679551041024508097414947985939692356981744884178746448637083321001467207293042417612426939658485679519155512425640199677527739903603553327878970690832603997607596205583583625403634865787502802291576283541419614871629663791798255771411699282346673419018021390791195678631696431704532156353718321817987207912036274886942478551279603521034281474910526408996521638292841726788600930959974799810873082175247455390975237788191966036166507539800383056596910694911870885614964927889400312533689686165682780908365724062375529314966081577461972148283316482725860132747051858302214133422842620519763347375691347923877906071430613398360758984472573433502565302777978240062673760228510761147202331099105685860485462097274972137832357701500895125019953891680230742031670543712928524406468887180873578784635302535294443850157691109294204348237202528174437378570889908755410640435906441221106953328393082979615657076724016315561591213421502410424197188634350450597651973847992262727469184195477856958120821187889402642875644477611715903488049028552969537989487553525268825413412894104913266206285283759913817940570669408428700724178221733738253307711296198474770177080428648023096786916919833005039009957139899396024615893085855024528613484908482781994714275154827110821722420089274652091255045572777856598668418695994047839857737425248504862666940745104466259305943105645352093377274906220470429385282207807431343723298375209132061764042226093020028854795018824677024292384644545756164227439790378294021818060162325348772497139153161976904499991170467766215434686881850092161888772696885283672633095970757378091116912383619578241863976733321056088545153371713161353538496704264566153773561676649907701766917273772073532957549925122027380124713842538700448046360522197236431829238087008353625612660098973733112828834342093457494905134300410053632089787275073049196929184621325945675492322821915510902660231360204796760659181845044118214692257096324174182420481839532567786560151996783131052302684522328617211912121507891975568876035420780750211653579234704236938562433384966960002563577919662985322012645582507821993681843043391513704586122977919366141879118626017660185579220099141732352302785462894421958411854866538024573726148934777352930573507588654665117710456120330160280509016023892284173879848653326106668830955532538483309979861810686813942606196126526757249012757082014088274313043439070442430081451616265420142643419162995722156947688284875086974187001221710665574812640276162135137589644233542512346473673985625878748469394351053949757390840459309489854072808537414768836648349016865657073438021685494538654828249738512407217983882289667609287557770732026992672001132559439278092778930193300726539724832934841579213642832620404718080690378018232600721828893860679704573228245245095900967655585429118645625379148198709468233225450569678353738634296846905353594123142303204375068403381467949521634389045094563449611934297757031017277967945807037848924157847193788237449111508898861717139379657137541861726579910216441023652098551335542897956644481610013579579275405469538538245232415398451676585885912658122792897079995598119131159134914512362868619647687578285831005370921762572108022561899571511425176704918627721327264483883172830078284858676545232574515833980455098576925227678263473986719080970510987171860605548379071106234426252022202074752325340472587742357787229126342635463175254082775205227995945438076944511645711695736199632133024544277263154626991086081125727961083796404912740619526623982404390345844922234361507046439390181194299209145037074045332232074871791876115347522849117030091174251395151720173846420923549775111288476273222526367403811677458531121008219513795389292413863002142855114860292929119946052214354659843489627810617440825220056305571152907676431370903838144494682110343738312798139742904337657344895851662175569948833139033952639389674441987680975327971937631198165491499660513330325990540033640736995206412189034017429654802124026372798870994330252151884487031257467686473034686940318147865692957569970303064989336935614115776150848119862419932461595201612673143939372193268513088010354042022003324640510627763044164677912018157267460928625800829148647357967044541094448592940419717353632206048368773456346174568163249912565131809275836161849605252495729674026286758615268699165444033468448705096642676914805059267975707855201993440794347800016771335792238672185090679182175271267267156777387718946077581179936141879574876702793343793784901755589350301441029912905202723521469909412612023343346361945436568001213563013570197765295276219878747283682081511228127724929231892870711478958981388392877181262950162428797814625959339356913692887973658513150936440965765786297410242072830041515665220783297445990164235737360973806190503332407114972352656511356580974580300346670212788934923313836791135725169297581182387216847553504868157135776834813707067802781548133048081854608973596121265898528708236619757264027957383439765786632000437481787362172844653718675013951437326297118750494343823793389899370849135204722901117975296883850406427504821303715359750498463360339837225898589868934792175847902819735014996441063502555380388886410252219761783260903277370188003823872491638946395399452467644996662153743776537434570777315807176949032441324441467995068666774857954320855621523255918096655384364594774037803374259239968171031126536838362412858435443805131564493406979905452248987783255711331559610246350499471389033746829911068203966686211980771523382325257327902571659120889587582920638261674540367784879952851423257670863188395403715725592229609775238281707734020900571861423004978774959656744623311989988754077116510592021250238850648352029516824585995948841003009513730818380896802758223529802969201395147389908905102424658413597415890415098590513197624782560756522336524151741826409353461021217614652893108983138474657899059898300873704447751932165862406869075533902334328883454160255637620932283222190755781407765031832764573919778759849802247107837900059186086396978129749472344183218647169469221504749257856727867497577225398428783884033877484997486070313669227823977823611888376109348245811323563182528647436356106386386968875413179701903406749724064973046017724543867979043408290429814087180728953797809101013531146859768004924676040424571402199002180363554622464834406353279776956792307529207469109302219503721815083874205829921298339404257821155258113269519982240285982016366370099685818834008789432644588684993600031662102181767969824235941630353015610194182472252601050617331575857495230065494854607512595002995797254515948068489199378503801297511783755649158016749968741717636532596058465912073021017087692729473830577274495991672270627350762038485799232186894202894583663287914830207940498276983209991525588232041976073832137611934655693169765755388931179705378064352467561212940032439805632531374516673948597172876310355435642945081035705336280451051490771430593722244673684603608827165653543637507567343431469604383682295171422840912011979886822310529663743152354822991151148421569303749986195043646801345258703521141914619318068959111391883840266998984918878792353438748477843653333310094732992956601863744632954728089144541009829468924282929209620829378809567125069344564903446831322580068705423851101160248920874944612836671258167179289956839399563790408363534779545611060734702494037935252025539972232668629981624283852721980252318209519257323351631167014958437516734656319041276215046530990924341167225069483298171439167480932867865000623525896549357951943320014063653689708333055148621972243444591552458814667437037031910302028617452565441085876580369614420791826559045727705160948727420607182349875071625736892291175812731743643311132680926922103004282709724659125369904218210040147591980269609266579726253079883385875099399624931326931194020647339282976212968293261227335324507776434896784350918846725291014897028399958979038634934462435461474793290128929436684747678171284155920340553241011090332143883231928005080749786518339821187112848245446894694865004548300671925972777914884009306860279118571987091412769073556743467822852068696082010425475388028078197890306826663465082655720139750745127842977811437641452299796163224178565135540862881157906746190551778667691876494084259118318582239190155453593711894994394385591674813546087798983393229984846376800499549207294102426083732892210018037650510210494334891809320211635090785978548951377998919716960288469060926433395587154445650325401765379936112473729799027816559829594773386907323464149984400146603120060752099194948280484595627843239867457279969840871377690449116453346149096048634878796717502855372886238591239342137504948277002911853162403763534255575629502214031297527069394986354727955631342998114659299443107546549208496122564658132673075847975831723393520426020208057398532847918598265859996500209060646190331789735271062281706059539377879228796300278488068484849043899142577578768703116907940499305139541513080145220266800053477855679684570798026221869493676128871836789051180261738598901083570788648090091791862589247795294088213403675424737697514923059080008051653241126747595019763171269184251721028547631703755987681121524906216329407981038686016355091181341946516021658643469169240990450948056589662549329281162960389847572823021186002015776867918924605252091931348722308447517071198737813455321719721751237483008227778318479705121360216905735014874977395555999212949741088313437322301333385286357777509364249766118961571585396869410151925223081786044324893190791990400073131488856649920271319534730276389147336850092808465756869958104238496608022460633732914715177025921205678570841060459842809596782621233621384915312008402994636358485364093249834087159881489229553618904749939600134692210102653545353764303656442894182830754339536631801718738218262446388760124762598005235350369665398062567606698710014007718927809898312094534061219515392440289907145518452782162590863906868893159150291305478509549160687936486816648127646762043013845710454666914183278031613244682316710952273101765289977436674782127921147979118911197813824868774860083524996009160436770008314811797230139003305369246229165375837347915350707275528934675827808223449985611284197309369605048953868597905811045666544499199830893077987798173744065376442989174253624393067520939331657374520173453921792727866836308028788918105901107517119814619745205270640261907635789599178924184204435810516258891295539053473051277571038882577006647139177218323195219655399243576464239342193674000113429237564721315703577504748820998678664751588605341421366974460127915307811459717632020248368913799417688184628898512839034223217757123138045310943840240250153335332739573645661143763674840495016897612762400581394351559835554152165469617148986017406764936755367153485433671926510268779160423890710188524319171595320398826324468961819860600699882270717937941341443702071671437308018236882798286644278051695614877116815299784686831701544136464751613941780461188662446787635588651186309322031658884818398857219409382781468598299658697427260567785069875663113064671163559465423940035420483211553667207686836029561056732670995217543499902329781693790072139706705279797197603755991439629154291743079390990979176463126067204062454016852927158594838925920174979364460417469941309109433368484388718753586572961936712792807904749544150446715436686576724446461717221190713572322816231090023931931123597183049101891956350963453362632485528753579505324202266194500722657848810538667541841922742575655031370491348381358485588285896574115764093967748239100362357973689438806775934944887793905748273737999783735840101233482782950271023392613547575374803361937052966335602224417234093355833483696960135446983700938974189409163474560701286476061315530582165763288961268378384081852568153682034300247957202782231375848506445402848249777554092955645332317168769758614278654597913731654153100885814872652535722976995523979257280094145983068184626781183320525878619561736582308720774795409750491582269917723087992398505054688868502637812656491085524479501001638126696608748954690811748562557936626378896467742142466632059937293901559555981050955904777482722079610525358954867266803641990000992291339460989072821669748387491035955563576959336964281626911474988336315880967146281886230639000425776878888739411788083462138788109196821122993760968688969651507413312450755323098281297679612275929999941840089061653642937351191324544513637877063815828123058331400607912368147737777803017853404821530077072978235517086645686890998646007110173079223918285364456668627882809669278536146070144740667873252750701576786848908730762942214183074580712564327179514197841502656071355424880701210852622674234065660943857531882042340265602088836758409234490402692539236344003587811847288190562410019555396343546699367904006837601121233420271594730705222809473551853311336983529687373737431698177199516457352971175709981184812694801823735886108664534088297381468127889736436454839421198718115594265075034369512998888398412565870918895754970606466865431684420057864976824495716450160993238569197318642923317387918087053045375516888703927033456203064719554866370637831962456572444968351265650620292297425372276653353875566262607741599724230898075419748642046008512071989182348894241158771624330221903238727463995814565014950291717605351254461847914211430212283387252482558621847464208436805935462749047425360426387817523448247841965525330333368469863017498495216084698784784772939844912905100417761907556588787517586497354105139601853616684545600213406664618843433386915896129180118069961623558634085441548955569197754694597954019465019815539979816181876010023388756404947677042808143971016593482457808748470368203432352505108893243460402393613253978977736072539334860698549259251154235446569957821526510902016563696259652533942041350179249551743836557602990974499134166364646934467231203339844412791199249791578105374284205696207515834994794231646839109549975576355983162385589413405093295730747731854586847110108410022618465596083473152521367530531733354273982037374279816962444668674072239175249150992337718389604936001672942274287428596197162568773387546144366435451685448425243810525515269106613689248931062385607788422108751853935269039134852421095035804599171212592624245090057633210747487749498557879485789919927085066875833085693917691909687627837875007136725610112599804168860687673862474028421025814329604119372182673790056705840441481377465627325960789106940059026173615737311716752662603855535132572917845293764561512460161802476501372275820736479724316271489774150642242824156539399568701912883049776721438098104538187974347348837332550531426170496095095426441844915511945610841764571172758932694704068216592469815411058941200623595167377468767720955774539418649828502466235230742606991426676103153445016431949377054059919968249063501199319970650934355092495213699246540673295478545401824753927887770504471135924131992588128534099963017872813050708335378660095349935578350079819130527966938288543764624264869519677355094622463120019448003327968736032870974830707196778385987338074313675511099364765760762932867967581692085296904628457282480067340501327040028246946630265684385186699862569284346294463958051690053751664295631927613025125909900398678670778563128734472661051505934989297804490346035757496628959213067404300802206335201887509014967127857106484365299079924894207718170582952431857987024811674902389729780765996795324059868542452203043310634824713596909412482696185411703261353778037168040105229429337893801602899929589916897786723590984787530468798765612385075080139684831069461524574631855851473548774526313710458737936670071638249092766831756240363340140230671810094746727532582426932699066352006193087242053013176404746922367713554904798257755831467844196455019426273312887734113102398302634155679723660249878366934166527328465100195448325906572663649083958175713577446371290492230279210652963186005847830477852917633498495255269219548794759130286061395296355859328835674224872293842792138733879973244121069081751364899172461324227349069574301225426629171490685868548982948419018504598499423901571976234329722466695661982195656004735276074023311563036751101226372737547710600589328126725868978472276378155726066240275638908465523523759495024259568880385430397912963256425568955610040391335214057535955468488034444279776109329253069905697311108503370858530348611886740038719453068549642684932818471452208919225204992009849278686535264928420947844818847881202445791876284575576282051245502105251677027339791991621035056918354320180376881159033327128226108782131929776613193989249793043003430960362097459950251609112673792517204219411470130034059266074726208580317126616536814990868431626580494194491702817519596782948500259677827143479550978861890300785510545754811029590498058802627761894421750233096558440162567927025637260098210221559635141418012947707625248388832569063150403944164013698561337854110805362606680886354936105027397481274343357799133427187303170784657039186405117583007899119681919215817474965475392968388703942691922881131396982522176579776221564072701464226214778399554269203835365187872528742289947178311634902024028841074866046178993460356556843690099175300812515920857595261335509833408072396964166327373495604647269498280872793513510633809882198848896678277332258372207740792829012985890251028213261557975458872357834984384507919605643637216530348345946904132956785036741139567458896598250918107044289137520477070005711456828985288689248837220258128143639719802705451478541374900083856695945553633474681471423382488761884470823334645693234612432579058353497730288618021053684162806627481278837317787533994899573300107140796215223241146456976730227775994471624683262811072887348309919034596517938213625130390471660306878093142766016665353663046542257868901311624681006145266319564698092698637137397065314047041980783568980938706486480642481243976069280454022829096548214375044435221138612830945054123939229556568703551008668637122114537991311391304264757521347503896246172377901074362817372081324147066544026162714523528549466782480415341953954407775045008357212307961746192706721493841181121197039915262577035524227999432717453721676357528731194557254624196502577729229529192661012474887708741691609625558269367066862773549190676524801265368242112205091356483753187091004927351757199066244507504374393584577564426036728558511730130820008481645390289304696383229559809552142947992901179519394860582503229865798318852590553583206442651240574286785101509723816210030619191197356822589366778520900972078169926498590258045614564821506673760002520251752664624784819899515098872363167662593895241810167635432842682682613989276230446694050419583945474571802307529436169913751148706921214944031140704869187405901454625164527352333616266270533295481784252392626238038060503630180291339106523441835148977684381407367490156419958995602715007128985259130018864621421763038636260829661022808813855039123380079948600491202210768270182567079658059915910759563778580901902665887060269802106924979788994288163653770288392908543499511430660699176525718354029294841799758511654012171214729436369238306878109778592905085255708329908960172973911144898994073763577453844959872029561665384169186802859681248200795741290772594495452201927221394365672647421178424479597206133255257217817200145773072096124262159653542108659876272505790856455169598361118644770285794921813967612053084406605969941413561245779169355030616670503913121596319435083440450060394848404802766338435674881966543730658041189496365709313089661661359910255750490231673609311398851482129270436943862510718780387249356457540163852649652794998929599486718474592354732834722690570634864370964768540468369727404838437427312871922828425310311327749915187521011026749990587660819217010925352486016749232232320896791772606324917260339542493148181697828164999207688175011690452007971822528295814691343614344926768365881211165923266759575601702125615744923561955008652687286660295101953290585138131314681336263587061951426575155031137605481549268605709212277919183543183407623911637615530571282598287093901767252036564182441718212059340759705515456973571630359125244768301347953437457450633022251328920358063999018113067862457670426002324496852223069579932930241564313514647878164532230592591925435528569068545038337360909294783321874306255274319746713940521685810830947468516210172996046791862326986880674202094358971580584604431143505136172722359884620033711409655691814931676793061958860825818719922634163126241769246910923218062888899310764681937647272594418303426369659437871370742001177178194065424460173003825888525304473398586931614275192723249133685223413957354448660804875105609580547179800512757143397211474420208218048271540613249725722020866572576385400655593517473488379287447958622215996878017732615692756149772985647367292008289897456397786730034498845240451688727802523176098052803601038682027137555072120896170979035553132802562413513152373153426379476063643330638003240540567069643476347806425671018040991315023059008336153350685169176439830612102689107208687124710572502532652453776749671540958504717672406864180678869076010650631021353272141756859278591337242749148061605489775392231002894662262961858584488325685712740598080967041928523495008128012539180396095387351937146063015123931010474615145755395126143104520384143337049367907806684140857099258464847754908171742329838373326391459008170116889215238688810733434037724851198987452139331623358319499748496495873675359214879814971378619596455562340642064525513897255976450583921126039743793620384743927774191202270531445372418441480969040846536254267677230585310109468154173986645048108241999171179568853516503936827607999623459510461519494944415682260970686970714232862461675074368454584934041357887077100142663175822868847851414221319194894248833589381357280411915542053812026120683284496256033616052100059348964984883394357825116317494962198705585442714807370012112122073224776877082115737422539122791633522774209977022425577637803152107212511005468209089680037233703958683643186069209163658382945334620073472152528249966723935350496332042389198866702713589053464607688316277909890378140792589360678627316193196292208619776887886657859401187652002110776155795298268837884776356780518716932603246337916615276299689717588968311236563330913047025374355003420110030903255010990741102200096673626431838968474428453215364285495200805241990766076369513996844106240960316716844146446199291311683927476536977151366665305210239543027576957297667402617464140432817594085405307952517365171166248312530768321906434089616385909165077968172316057568532617750435496759219802064798046759265510132525717691046542012608260995013181603975609776637184960161896312232702953438316881333922959505265518024096980741823084209747368817985772481577814617705022548095801585798498107404865900970268081395658053724801808990480165874503003957805972545794178185928140938920939080819108757067072130833679016975019269868315114001819986364717983255539342886545842466958577970373654441677441024112913604261811059048733975345685943565670833222651103814094274667934887674777638788466845967525144321558416120031152863503685658966376161235175243521690127446726055044390191033847532108284495344446968158998518341429719595307246445494410462541040030512876836265127152835222774292173397062677515134899738619429107725633612800504208940750925168693134270804264304675098995397128321171974723895866196704038997906440225992074845819058238951724516514882935879232358932315602607221306275008067974882095166856334071220141406677617210794032727927163145042304623103349541779963548432824494911659869981352992640386146637331342593539929348535524733272533718524235707301838149994489640569063899467105819430183144952009934437197728299870835855057534507698903401477965177595202873755548288576986847825465998284498141804375471684078030401031938259643497724331391842446147516787014812040113178659242561644209388290123952981763798388587648403717715844936642775484782736380575795005873550749455533543023316611963490133228773653961844872753335623182218527240066280484527463321913882977703982873696995576127763347116251732817054153350029857643191040504498561086806923240658576059619828854022754165041707734257213259050383976203884481286618774678103585351122278820383959733620698556925092827006026139767448205405648817829803505862105520747042188477690643422294160954438151097002666823389979508609158898751850234331212137999341609530228363259542266876467108583281926774788250151554909127247682240093473243247935496650823340401781340954797523747150865688897918069173226262350289143388565285104862964969258662236021809164850239298643384862755358856998998232167003040650772989549265910076802562077920070273702220473732173536893063654897939800853625323461712639167536013608784894575735966954742638355678406965902022069789478161353528031005055030182807333725686507329832370268379926472530552354811051638670022619614471160477731409968032396647769475965264960691618718958290048365685046942977589629412903915863328299582781677420026753506507676728113766702438242705291275572026171942568896413561313220442487035070488901187637154539376882925561484050569447063127153254391122666373009162850199744932366730893612337691774386968476652844002383727875813544725238187838650725913374889302170925649305106517098346350869711481365755521547353127962141386227401764698887323432921082268559507111531827359832763941981520061637342556137765064024466238461023965004254217295880889753568198983949179649225453044621485035058691772406478241338828722359737230543280894314263960312041106358597499426948107082303815170239644323796296399967710997336251455797150120236553733430754607084521618005590567455093644638925732521141467575648132021843829423385175613733109158559321264988314140914374715459122630736391467832900930032445058557313248698442615637836176890033119800166597294603713820672755320983795070376572474588080484595782814116717248018709196807866999943751647174912304256339881441767668269355880945642630851489941729400850324388105570735273608183742176037815314372375980728061555089215752059158412704210370224254806459709935116183621518159007468945406397461803386865223996888056605214687734107144715835326576914625785261176630426239545790101760032114876739997287675432491974451095541359019593809282621049227289451327912985743149501516877663118934685952600311087874836624164188056230133144581389765956711976326658648155289132474535787624338425287088666934935193351682256928762203500356918555333785074010374569771379475602710828844626338668824582811318763660308255784610483460071126085828428292767711097886161039787772877920441201434686592507872004714849695391085297399882872579780074628380406118738922345672392108095593638261961458708043628601287045294566746919741540940404512963863987156231395056964584494503441562233603510733073704401040072449166558126393689553669526301344093442325160565733349556166518623403444877245885037972603805526575712504242001159549645486702557014151705294557729366245137332119536764442186060154671125276823964588837679693054768080949901597552651714347006956389550913659026651315448801959093201629561492693220221814089566297670059323176111431840540622309439159922766243626011526224869599998723403309649238736330303279133816400149034038853069138483470458687837521881637009329321962573080940514445454633521432717460344094814953225058515372819676070053451176990182830568370925767326248291224712993782099546894589691552970620679176557892346330129924385438161477198601926525820591124209852546837247049139415051053178765499066524357690854884123482942579830888251449525953999681392190643262981153550464669672019377583943691903396145237730119256436917335734382346471458101846715718897336863059008322312942144411574616526029890729270954492055165943675796908439677974156173115113283852767923824738782656402991510729230155681661200027567840759611513265347345932318081432678787489618074726543206956317718181582015473748437897406446642286046951176221044696634496332875003597547110676696782154596477048946535754806772568770347717205908655026842927268938156089036881766860406351615157737200481138416434532732846658756542851523585240090506660775991091821664548925529724876130093252320601858285830743889412464561136478347137757793365282259881205664842784007338923602799985805196473065936047535989749539155194480806929303551602849208166478550764797403324518197278168120806033449722513806988417491745057815263540582973396663044176537282136024978180934780429190834518634256205658671043607466464339065869597440563196841357057827068474632801760426587023052161199571231604034348845427399036266995495739387084086714863926460395437001895633218119871241724430185527726463083008925226754029395945251788137334039222243176142168202343228790006360561608987954594143939503590864446623104322947524684787672893466813033576462619500564421258265531947089150033875148607042569657153062428491842511607403353548312301027293042305304371749876791173213440345986052498638412232004631342747047405907351474060985430455954092510446163379589569128093095823662337871380629324822179152106099926841310243326105279120656379558790382044201101791157802007793465099208678213758156231592756297271641357845135943187904485663448290166881033919310162692547146105026142626887790850085463910823387534429860030520417420804934150732616201346055852528928291672804304419783176880504116632469674111409746249746099529313327801013950302061069615459565866387694092367931944395299614522322384126554435089225952848447349472398213459812041842871787050724143150675627697537761150077538555379637610147719417432672250451560176086832651153712828249626145817962761818719906516292382661245248028350528724602349364874871914214752868929646840334547283383069498342851964182298834846793983181728448879289474608380515485204785739328305076166188816928327436135218755385057447549312328277447136614928288481877302970007752932239768026968811442540148664932853464709769013278948670969233959558044841966787921594111784159716980435492491273774341317248954060154984250038329409429103027735585866443572670945530158211959929336002435499175481445892465464247051577936946304154438006864518466694843561713933522043846933986444396452190159149923237624124997618845781720651488676610277773528371393806336986793381651822154624447937161699528453705661354558755457066037639705802035101101779511937394923441508583498057344562230919175278039135537212100861348538157988068154268192311968712307918883798885623294036787581502241106675847876071718227809250303906608086632731093689114235154432913248430291400108562705342023868707596582191985105247594841962773032218221331104688205165824830421568711174249274570478560116086605179819491571696080913076771789191334159528610056955925137224824634084417319974514832514194633793806540239628508358591707903922755248681552387561682091667278923280255185932680429544968341609969190199164107745149458107244907783083215147114191050597105234487951421955021054663475242653255016818225762074049988299030425704623672761701492174499579438664084426988458765153811199766067465218795161130225149900366516662656339181406873420993113862247830829108806347477680900140505181016847870329175570803321804009560758942321819111709362602331422364562929620419145910674374748297529388279725790614145184452708263128323237180064834787596524072821528337526691788837125047613815759062261225634674871519246818030279741689262080958578532368718284414893308690808626098086027970255979884083766416421022811777112825769768180953291200878235297864516985702458353590349347561852248843710295233685331920014332958190967082632745497632744102156166452673711110675647762479034946839789370993715874062958495571268188990289249110478646084950477573911607989093468391321150672465924299376309181074667570362225162271983485662349317220310279395277323736745374062082003192792663224635703204739608723134891296575746507723617751176014768570654066383390716893960525712080924496337829063600783303110953297780271018862037482325745587854145210130310718751749563432694823288837321118856468659944941638699913979658804732333657009643864345759616735310188502398167154686554304360092505679730522418972243250183904437637169326246919382385969235380129389072758141913079877559162456674921219375176505181543783434320713025819224907206566631790332058819264013607558010117160898000039737764482298511817034779076477530532191555113162536594041679333126320712509944195619584703807939473004596908655563202838479387322387638077486687175655700639077988213921560918370791981641440786190163309977989891849348477270935386852117850982976494886658100659608575436687162999503526095568002429635809231441997706773952184702627635898940401897522720223151013123591170290092575678912842151588015601163914300899409609914278138881105853985369017844214062622510580423457784842938515852673060474700971368642721765760475071772102912879407335422446988681187605261859092416739725708913500528405456014683660239792608754798310518478070702518019225269563934722302968277613651300661461875079765322462551957089140940315311668034744212724949472064165789548025900074728354582165361603607866604170438449150651338895731271142085412604487552240846570640901706443260025938445014377266421566552547904110552747347034743761360348020104535992982839230753558363907103986594645310124089131636785601501121304558062957124007645876391199221546822454229905061545084406778171784338726207316876790605186356990583161028424450372543497173913158584188876582901792634360643232644254675748932756114780381051641973844065579505990207118668725621088128011750756706704647089331312507571078135783584877469485096966805881783122185757129884695073967581729862485787012744911630037636929815264393230909206886766512027900647877344270817023525707543342487699219244505320715293339579628606823298684932077706728313819938576905441430064141673350283451676930254650765531400786686424413632736626296141235747677518390407162172909622687470053695772077332684241808874476081791828038439999733836166278567702813029928291301261798901698893192273283789368823485588036386044672089025774870902288403870539109607981711344481415099515677273022496799167509321346206509963143831964180988062107501512586982114742239822439662940417898476568552465853087612470515754849531540200805422694246037652715000242009607451442805932186131751785147418363768173856010667239865543127128623453661296953196067823978857352473568730138138582841771912479017270197513010130714762713021462140949367665401946386304738878246380912347309594285012454634900201477546077164612432193404276847561787789976100001381035691521999836574974013173735640994632702981774716410396568287431970081720370164972922077297905736344782117212710640494473572457021505308730853371845091193518915994260551895651194189188591603708355945258750434017674459086226865351449240973820236275709587413648405915211553600658328314759687261493521857806262655622115643569159849247634236436712873217144875364727211962457699621843324154788528735649432848563104358392110394427731375571825584201816823071625198817110447097381592627231979416996491797535280690602751031132240057702883362272304848917082498221515291011438205097085606154144677564809102557146125923468263774607124098352286051233991663357995952950943685226052657839467072901041466308568575350934939588867558415996248902545538695587645134799058881586575749992498212181486837353958982815642348076085615693977820121727269803746883898885636966133628976243766000968704927656753812754136530359680731340539824174558578918156299115779080180943117569331990981885997161405972231784774301004286043643235581955255590354198630097067907786157269401416091488830798350629565139035709991076771105831460901392679423584574473441397522646257106784091011734314710190526597877236796557030140053935373910358252311970473222292521556756499540620716051565342015453126819939172197422375177262456731657647254329908427768212606115911562474423729036481276522810184868948163243030318056348951950402823477165712968937202825275339442758639347756118456807251496524322089164447178254818926922184782300955889093029014102955581122021304984191202941274091967084517412279075354790221858571599499837677186720025224266388734597702641764244821867478327552069976590352550745227575231942769979817802452560510714922636851768235230592191978616788545953972667419147080392884306988177934933787257792125726717049455096575760512720336960982616991185929171011436888937936097389376234131047128613585075473699593121264523882566277847633184289804852850058033271310530908048194935625653856341880880941600579410208033645678966084907559424152517741823309137636725681727699575807816919856602277398257088128133804489576749715896411651829772949606538411721531681844296770235545411781868178221421958979571423095526339493419682277249700152394123433211566918591465040601452238125579001453048833574258372824534062645296972954457940968638877560374642195365759641004800709716820107771669531678023513804810262472470062821759404342504635314256131394216763149791846006467693968272685760619329600377889655859256500518306608292321555733678692990341357716745596401593036280354012763578515926618430036606363675277376043312545523128529535867751877139631642318910142664673182928545303983241914512652077142822510345572800654534423592875692938717163893263056441635975844513033405912087276339342318944299444738493842035068827898691581047880380345403528459859586632768465373817074663650839964606549950124373012592516528995755415497772968479414397924973424807272144775657409988528031157986214923550968780448584094902543212555191637788395089228966201371196280042634246497981808623849389675187552321838994034356336339890317838784240465559768021815858910058549101924890090217428893273048317475557020139703371699238296611231624234484237576206519493188892905132958670059872195098671826233145009491569759297829853249128736462004462163423694459928117408978892120607381965117229581258811483173471125677239900826186801028417736424012099619923633646357048817716692376255791816751349819138757039322975846364425161752198111321501125514814086821369549434573162560674805328850222558195750177000027267196079187943456063720641730585640310636473128264888063851234548401971681938351650661096657245109881070928922759517446829985625793987122976709366648738315614255262283553448900539955821314038518846810630697165391602977580231173290869138483302620250140499925218462115243460614790393665470132027123399384821397145375356108307229734615392119183157864967353020268960043157797385339781062963099920707146713873224912205567130246864719571853360025075350759007562076934768062818230445856865576984918643473841796342761571795155329479153611951413143883307244711126852150933419994881239837593258244105525232102315610899513557181553897910440298013476258854535985920583095259736022604474443836645670693477904521169709568201452449897243789522029439634206223894475247214546414458833999447220121321314080865720973169151107040520005961279538346102878866795900664534532189337713541516421033538420626519044353831193995086287353817315704560580427041872434025451185999764563971091691149728605649933224446472198671452959816003385614609649565207249612164404200074529308523922228723069800400558562637057966644163667659436643219967054163478728392211100162608846880930293776828347618205118363866599464961223156425753960140726697030363595452999909485316370706212423652879418776542786436458534178618794609575186505862322090064830931030479101902456917705768766646798214805404028794667123109981417733370960857079323470378851598789609667938573513751995162996078606542444299306649610957518409654512896049013335721963712136676318872382774294881151096965691697779675423730571447958617039099749489137352004981169408703143541791313366483373696430740511984527288181161836488778301307643820407863816216733211520764666187302921161664977527710432579433502852191892286626171272246763099682278434186402804357549464818386595889209599845399389896309007394226726655001840657895838271291049190350458111246791919659168568714452705020400199166107424072717063194049776895992226853016907606739305392977737529342690812681010630481156729898188548964202498298568494463417575157042620582444003708936319336571595621367452061369072564604580461718986594048844547261538687307006073824220712271375320225016591669382006067373420744763246260353684676851792308316043829647633970519344833848774410307757240070879192587704285788442835329334292764175913264423493596063333653290410540421922237067999434771620799622342806966187070396280322185601333441317954220037368484151665526842700147922779209254256147823098846082449789896274878933157978363685116179155014537258949284662629271947407567725315838060386737180132464904087856681842724810713685136711486582311858616862282436764356498818663518321800927905035627269577051837471809224897455042764805894471384838310615737324311716153646422034395479663854808473611231313484219058379393248963490631587494247408001282817308923562302653022533741008837337013143661618384666507868095962629581045365914532910678352058751147127812291963194546802180966778694261127960430443625762387574752806023564224588117283576279587422017162515691685395818555097095307116532191214877411444853297862234978836915810732455674725888729038597303496927042026401189698531700762569126156340862930651364099923990866698963247030960615961166949354841537479135738159211155420847962324234094546055802677301148693688266774138646314599223389733801610164104162583304475766394794031320743471679114691343908542652293712198198989287291535318061973569108934857482848932556140276660592393204629129535561689429222901724290471803163062850256247944855978868098132251040645590677976287002750503331774302353228141451857793567170503671059857758467326057887532674293395913872269404508582670675954162179831658450668134110576264793025505405989993654814554165368961504646372241484082660595795668495425577393550529764827689330837198983010092411047198135242550390524966737168720194013545035974821527680465212821453927006198013927488291439474201945711879737948076995818000382634149922126418467553081566782704607130518225762489041375875594332435341754603203662060731960933891666286771858458630621979212658424724169648973415593715228782050735441095177028634542269053733966470913538216739338502503391063650577843331021357788952353549068640802539656850705255123528332542950725734005813646932013680797748457121642193958837720436229851037890406991487700559116342120347575445939211717016391946717589534953554841192842784773773161590253254685139087734715586759659977160392415953398241122058401494847031247578658075518475973319022758037199466962694035379322954567322766920065864291477865034278700683003291033367257256437858918957184277733392392633927205795416093906295796113798040268514831265534609869955310609572140957931181252010799422846771773276271732019511751951254599403024656512976466025024459265081102845562015635181824092348645695792764713175156199376313240894454203093562811935558486561780397974917949563501395179361334713441238181556858722651148004660234630445445977621911905896910375455317336163313309064652583199024624125921533874857212755188935854206248468308247743282146480159486584765497479071604798728775006126289372073788990138646894167248990767356421988237455232472420918305296811818530307714474655837795239925027433978375226831485273700145809537567516284823081690446322818594148413107743573979373522844246000292894705239349904920872555013224235926441453618116900006216152172721301833680440148330093389028541808667038974310406836510682660128245148215063880559362453702590179116501135680746162781489150479095680963799094283878230658301920712705751846936120721123967766397080154093257560806613128960496212029924156178283039895762499662992161348186875934571985367009396490454000581524107377352306389112046860270716484494795295671019118632829895491973656405266077794251337077481864522648635044004422628861932829793523423897750642171202978810944288518063776208956498504703980676460423536079716255118366002309346774575316795739267238926606194025184922498456078463484542499692903622839197546213077623316614338703131404008376173621574830068020914203496186420440824481978017483185141865298916989640984918769080748800119967307167893599066207494128157508443767178225105566457815671420864637018848316284016225417995285537334764242356981433993504029959780499443546221269803797461154449078814815454073761545376430216907236863879319176410863801650646585837697637542943426947273320722419989852291192202547996874665781401863317250168330879957787627348247154027002014286589817463591781949592932040850274813758596257930633908765574872765781784084274552251403610809141579934138222672469576553531901837731715030876001688650774876915590881014976749233179365766483401259782202502752606948272268781978335988548403971935511445716416267652479478704777062166453915653231274336015871400490057883246268228214936029127018177703855349976023072312307559921818945081579346935762050778624032398273966446174786104997115227795670642434987014194052722172628432868221840751464704003258149849851095700376712686074190177207646109309133796751908234889754247513938445245817392536939196641646060588164254409905929778644433061049936263714368656330401252127808088361228763170406056150958293501764564957835612630269693993605384073617295645411308494122527848515033925798629975872954959505350292992555434348549595771119218141251778747921936519331113755693297715076761171447251581233281353300135738597584313020535071569905084626874500812597037943910939667158892111932828891751320822618348332619205500931578937946446646389547139029036365411386058286512720133564972763843057256343746057073016344690103655649017588469646533127132024315767674490939377563846582026792115385156315659439859394163551730177640125177122179358951235724883512172512778652529720309376827741650402355628529783615892132043303922055810051071273266539972463705939084788142491294958409265092115943350433586145337938569487487701823844892727687891120304534741717440871312267361876813022827772886184461096871504164482261808594237949892522823163148855325164217070939169315306301912113680327548206416606420337159608058048722229161135800183728578796140749471445773134638559457201787609357011455506106683466413148041483492400961884352486244720334537638225243213269080380393291904623280744633093864201996181003779718068386542411934309871892498060776328469384213678535231892056726726155411302921829274624977043906269736071534984825007132133640741173592478201652955726342682424987351618472010939155701750186799803608969098800503190200941563757131204142725889987116703942140322205311497741068152560750015427969060173620654713934046471342635601126300907115185883503289753776757056330055192429630296704693638023286451951851678404689010040539785547948513740945535833863822014072070025988712618054448112986925745666459413849837031957056532672973667555836903437055277742184157986823707927343075299631318423066744556024296976161969484662680673300395120793460183016622253934920301232614866232556223047954919207747500637631806142125034523792192380322482581447323259764012771973891744782714453898809753256515974751562660173475117437149784908180922329783061939462166325863819023253609722628385645643395952310960811492305839254649579484542477232716757373735165380543182397171643162482101741354332945165950671370576957243509785229713759369239443926339288999156333059281132712842975142675115732515591885810494954556454850360967545559455924772929385748894960738535632101650520553947340188734685470636261012642463871710370840401761072225720011047404142836363476174227516973800754745316990943444138871488577126831235116731584860997887486917044147247216407789136311392219556474046715679596249552256308516348883030856196252176474922809213687056126406870702107049812683468586749772162407563489089186606792294474874913243072750065363443021334329503673465745765866020268498294242555421742950309196399843786005424545016105957526690882659649204401232457275285082409239094697528584375611249253338999363069758013484714209668345488435851661478741629268053949259470571164660781412282686925239684235024071466046751379730373801238850076909544534138674000254619234252898186144641846000646866175505846616757090384187219922975508648833173861350429771011903210599451648273844693306222177847540096199323707124784029712875812494360102131934822131481556343297046064868493697946967661306572798274738393385978715613351450044431630702572058954801936594486495206084971629865912633408736301063991949293486495879360258528162188432130198185370394568354620033752632881144743368414609232967907207286504803983421445112602064020356618808907797852942379774095240229825152401380667896831987431387487585329864231473823214344256758092542004769189884292802547583030802565529817683379594347091446475328192353323753673246633620892198376067000275124615522884807816659745878364978040456852199139571014703954305592631176750058083938412439719813010075933398179801885091464959471062665072593811620804586806754074989670285030542212864027741223952329713108752077204967808324945690316630136532823511380273969506423437601161259872894854467593914501744359539638588466947997808701552331655279550013533458423804952944737737935357330592348674999043998265051113119326328258532320964139971064264613766749390165341513499492075101780133319462107680230779693394631492611031385014076349769881750373932765153126882487065176161121909840294691541603211666392173384249369598517565507780739885424452817847083330028827782395907806565358355590908369560600013412439499102111280075090009428675472560002775130814161308498621064730861783168218863905927855435883628265350347029598991084391555680852783443717623519594903949598463701917454328359469024623754582076533944936891809654872552955256336423718375889400160682764511222270130965795257434890127755935097864920823692773461133248356326525667772164568128025230617068243936326592727011188775435361845947789988502515844281537664359876186275887077283971170702016828604965918831437689508920889668208862243348824470377012530513742685051368535415309901545581111357512334684466024843443892704920775388884073699626495617428057895500745027507691591802580470463351047739362556254246444311383979479060086816478716458966316250486097894316129891955246900935439593114542215794896416940323411751400931593724017678956085672451605398186010124474412649405598983616602537694718841993647402139377644756128789180041609528218866465094993806273100882737798180933861860149427305644825741844598809528787749184325730317127444536375050403401223836727440652391907300613860217231818303066105647273617600629639252244752395160846494395868821671906307434869135979297139595282872693217169308998191674727945424423613531140702320780472586447859971312411166633205846004012095496591560197961472439070516466903846515813650401781968207867311775717673781249881345607321226089490931465634676078505077802386610284713995618909007884297503503833037709116165066077788483997134545697147153254641392880094874650244418029363682716202755982435350845479701300686964641249102825031286867365649984050539127055684886186139676789635890654369289244902013231661501195061564563499232754508501079489458069244620230379075395890424094824502989939395638866741340608786603067218463688427541752185757048147781865201530820727608897085975360225352268712908724454874547480853883595278780168533799432994978515109495035233518192027490132766922561953945656939309644747291724928995983280096435773887167002707967425649781269898964851105758175497263410373402829425783061601238095386022647678634102641884199769384816290561361717638533682776060533672535457538294027570274244459771903507004087702139367049282616020934835696729868392768220321181568898290254158306360378007602755958563880569166237907539018471727646497331769388504359907345293355346072217181720029310566138826064539286650649352244056677126182911949564633600701782358971744831043339266430012124072623232110997546255991667682844169108064575266082174709769288447560416518814619847643938098981677453808520820013894630388235830222511836527607264690121012810999302211437362760598107136226054531845663602400308666540437195257545827616284082632256711453234154870527249127490233566013616611609913171483796653926948612704349161125148342005165899870478652652699389300750670336747837695212786821585576208476580163169722690181830453643897918342829341896513726511647544432132219808820287595917169854229430867981673272858333742776574839224873443100947854045851431134569967391276030055419551346128727252254914397796146063676531284359553433481212275759777123983245984998892864020782659057395032619812942640400528548648084849597245272253716902877745704818403548202313974215661010844336210597994592905210048176666788694679559619276561897892098142209644213380276335478499796523379114491707656378587189757921534202889188027656750448859587335212235654824720876849449222364169394442917959009428220034359447763655640291259295499529640039486165173481836879847389738020088645243050671109878174675764429352347636902072584133766494871619548487100331144613938467814942159512825873419339014590391297392226028297899460157755605089766820385709702403804145109786793149361101645470339249179645853727263252561900992744639004859297870789352290903056910553712436859821508439856018174627755455994569503237992034115725003014664769018021309724070726945805693799723559896923090259275756290694654884542881471798583244488384693586262107975988912628435676035438935009452316411842443853117564178958959596429944792133391799899384597706334797291318729968839996288432519060074280466658867185994271385077694871866195309908845810659836208328111845126821360807578435491791712783588769591264466577005524473787677094601717634994336026319666786535735985173540293480586553394403187721210667595569136255184257815787133650968292994337423937937529801636037063905031114170215587481044509482527691883792014029995275286418385311085741453692611511407061480668662466657033715294525459294363105029946559382661883903511360268216550707693453673720290297593801852956038482648653282698141295406678395394894052157861061630606500301212984864745024745745827227052535384263541179226907518519913382419976251280899569482256764479415559315723538716253541817281790323172065545824022092079166841313669064556052801392472241516992646728940906833163352799213361121443526129028753825400168166794549541762552583504842513020309675468198712000016068072077371443531765639957232020487429424849581342223068529478530719684772622865990080450926104472320567479032178161707403833785642001187498681238564383342340189576127253337605005002624418112723510050613045502750875323497522495307995248455204893015458596639277023721390946813471308687766796502944641724311244396136849682851483607267034783270699235841595014092756172282649374701056461460210367663286265064420795962327806610423361980493549203447338388375553034736821057380232811024595245640744686341402451650967330714371391751233130779912234528032548361603111874978320647026648443023602372838006662064814129334798853682565736128655887865178602571277244469850252437431902209174493290770633573335724433733572032161796923770056253004298072704484797934943187586613268283726837287244577794283317366938663154694943424774044542756633968452207525349066490324562756427840811132075225351054638610191206293956496745237585795348268674876271643597035329102425065990171401477396447901822478267095486713849711677517084579401437962265799227325958561808777467692929783773144341554512524041317147282793554853272557890038821355091536059274263702915524831101887907921577813473921364072414034514619578893830682962492627065435740835468967996529150108274241264535192436376142358411864002371353661313010812195879288484127648372922798310146233152471603805975919026755864953830563647498382157957053728414339392866503374783330682774909340451370193967525834520994485381063258338211162268412205142806463037094105460941495020605085697291905858988767345995627677235220551119975760421652515977092175406767384606149864743057997293429725249034886665365613667145389041474948825098850145393343135237935573835615557380268686257395073235183289893378161013790327088639103259441764161823086498392284505205358617636032013648372122859938199957854597760446535840607726476925357370021966632301859150585248373074014399576742787147409567386506176561514602573413699500989654248523219566962758645196235250779469331128819484406449887247657932814526405037536790758952481114626109069177628191837641150480958503693589192962211732005503678210345482646500627983628509742902478766697244663225303883382258444198820978036697677396896990826754582137572054141362250280854286120561555807269327768886025648340076734358932050034528317409655748678861812071620089908940174994747403358694005187953054410296380312883419245197700427216164174749988082953575818999052071992434105671141041990037806502020912784621333770229474768678290593478748338635440693033477571036905451357097045810583122783084600355845877401068022469675326070805721325172280212319701891196008911523547459327630129208990641908626965231486138491468768002194354005783003598206552255322686734137979566266723440608636468759906739727611445080621399973545377182017478062505227122505689191445093459490754517271081203300418204423881787269020799172389019949474184403039548919684364575929754751577598407106707823681515454382545185185927338740814122509041667996294513740237904479322732801935488188511420928497464417235852973371614540188552071718004472634273505637923022761444900144820925960441768271502136444910029270111066314721640941357774222126469178598636764669886336366621697155187657239008082650489367426895707387179571612400413135508039765972941556199134527253122546556345329989429948828391953216323660013548961159854305454174529761911332271596378050386580803759597576324033611126733090124771234676777587443518409076674376278302710091226271078052789363163059227246260045535440509128192844892675223879343984076976968940754346295005217030468618597956202782704736776669517878147091749555277815652119086444899743704024215123218266820364347830322306681553172159491546756542729373850209229774993958950189151359520885439707716215895971851239011368986530061436765237185757318616188976804567944316437332843194472730044048880244276419460610494077617068625290790682086913643408082460814363978365933378641288397191612613167739157422147714866398042061388299818932646378241190055064063046454261864111708948941846604955594413210017012575719160325149068958169552584096454217232808486208317618833126659791240079039118967958605733620539716087377063212543127829013279157991712660147073567655023082860032761107259432730646676415926362558591416535778700917252507873323697391830636260590196166209459160009080089723859287373255219135825368211441757159326838955707605462130454599115729817532556664909792503689079223929190152954473858350476175960239859790992505795182029602981748403468317252562961011229738946993275621737362215601131677896200742599719498742836628340401547687907115970595801935724933379320907322427442618999547695260725466096896933865880578763871612105110495418002185877048765799089834298408612340733339296045563626932709981637087609209896759662651692065379769055537955261411917183711096936372670624402410952693820784866874408748445391206844145215231652301230133603944696878493876496247848921874282795359137279767994500619610933236676433630096662087220171898745638611662775006380575669005203184830596481318336115176642948299773487180392318417681093941291506201678201631214693444000437459166904938039977965767304944035078445247263602499869593305812853922363608679285522654539310653211973994470238350016744727926211398099146815433878758019239861165458575486299394379948455574128861678822112168927765391685859614141543961377791867185006634404852286554992318259204640543881240965248853426258541669719530756509790211387918187364600972256988181364418032657144145680073012418862405671529609499944944422346742970633803060993742834456075981473505052711284085532172809215302263610764391941722719130541098151271169274192040407520477821005822932108063160804390020970109635713861190913258904224115115068437677086567744410174263583616434133541293756845182811259338542943708534386733315554214072188258172221006908627833675618030423621475619228541134184588572578199725881333480862976625941274751428621787628302558516776642283902027660120377218825447611551136317608224868647867651570711873116848617490787341455402812259786345052484870480742067883090332660694564921802939767735546383094269083957483421249548634760114321607343868989184403865449523370233167766196434699688335723810443511911870301747755733975887909632450753467513840881276512246235281948636074910644369380817286240807543705504532976709136982825907706713972700425431213745869891213453518504158495649980638129705518387363625343364437437900767237649797765187327986582887898761531625854841589574274696139718829393259444724873706427782831694776991997375606421067668867869485526575562456169839748463467431796300300073808418601959296294809626610216929341981705996238628609446026902266806914290565387833925693982941857908384530607995879194246769240478385761199370577345485762357216574105621063069753477056478847711963730893437167438744544589186012393939333015392246212722307519640982505543573389358531770004588867749383451851484140054487295734146000953144998319172622621983393747502152173206034955953586213109687199461418942847688000356238471052444795341844253133099482898357212513925457423543469283128676335813204130442720836362653769103223368786630648688330117064270979430409248529504617985220894320326325598156736228830663661589416887266583662748812005210478734124753593304455702795565811966423912584053958617897111337927902924109376163731421298827969353483371289036364094994383283298919896755293270509413625495989281238571540561256538206471271910668770443683559721884375644921942772549187609994782373881656200061131403046616500348818619458122055208329647564681139997097743444105955044656648150397266006937978513268458958084744600403105622988440545516301921124158836871927390347080727256179632760885839076636490386492153660216486221437788180425213128405206930143254787766427062527714319020823915406012323470172593986458635438203687839508920038754776303798615168627812634672396422604792141450021850133114393906790672773734585349064177413974479072746743148936690967228169229895135004940655662462814162129062022539446675708861010907175484517381016069744662214855360980945613727038065650317041590622768138553208809356063713316234573668793602402514309253099537256012697036478852159461105859487622000136686531964462636549302388518532344583395810179963978234379884344425606985110249835865844661008813382514082008984426184742914998730221673621095562777852602614824837604048310921003620971356903463808476011591319791539501447459085880637329301384418857537479105188018564845935301380075844133112871886274981264725707116250235755379408149580920714570117281141557919050397987524366054061085448579173750742052125046225027438070158448896171815821299762255428021917383310455261447204245651468534720656730194237851411707668557611768222231794060379431350987896775990749000804054496588211520769413034018148989889983725452463986692162945520042619536637052791876505662302717116472041157587972633174167574965817492156678694635407690976474713207782257972130144161153164090258452791449392058647991440782602371718172983565506637283485137914444378587679934241356128471558031958913807423477678392073242626418989920974105040074417418093563988803368733405580667091581201373330689188661551950513940920802238365621406056036923861880520221375921252017325832711431009438621101589714618341162864765877102451607398631905756455260841002499325517711161526226846856193666635177518621907372476652924266067060602160764639478688045961718612299445127883085068515909934617467134435127134214447272523059057645853001871342343415170911470853833995902066170144526567455956144028343961022324004378723789201381377856689163912194460283971680501000057400874634945929376247479834944730807211162652989794253948886178776317809838129594825677050426739187984827329183230260909466450118311484330561101395242065080416596362437932486156922573987470443483529133838824575800601060635283268309838014890682071821383724137367282668661937270385379152790380374551273428215015928315361659051076200886533731341801259675539586865311778540892777084663556952157936565970044787453977626853546488133781929503646035127551500133906229219584684389701860760281781481738963391294451952594517746154917276875472447066006778927812593326463202881952740088898425188044899501298330337692927742409647829258837681924091191771142797916767547057463160642219534131313396222166921925673741590023523621909473714320691285636663300574920282781364318367691295409811242044622287750537990155479242440246741505318698351550970532701750978020609725314934713397875113675310984661725067556245158787901420152467209809562922660744735766479230003084408953630287471822795414809731504565159413025573927455505538957005034959084524741584361959066723546922263303512159126561235108959197551478053808855090384171422414074983363450850634846328322729255480713752428242142848410897006071397915710380971595609814470687923203805406806095684061488258206023930950406044706508344525290528994436363439655450310422251947857185094995710468863292081537837211539796230746606914249321196171418128255666143414443171490413735393473991215648315081371026085448802157028312964374815677529884731510970484395339283133314105984221565116484456729634223922278092979991919872272804587269188141401587715719523917164828852111681369027457161029049829797747589765254293817889293205241791688724323383152988905596519853147795939899775895059288248672740439796412780000647175167178857034111140939225253668277461673474032342068278895138891258999343660572884265479604319175324020766480573516034235355998091064038152525211159137444812740715884638048427649718238072458067167662386055773712397484584262719341809880165055760702361947531214006576726120788400697980320789505046116411535144950051031327321083649064540465263725012768093079313429416041728805360410197914468407058580427545078384988725568422841213061572191954351148097809631295804090839010915573857865498443347260357642328102895381314128240557970982169989407435230008081494943688845716412438752780591500059484656965193493180029755819213299120509386608020940575784846350491717004699023953128657885528292042994111828460093758485478225716605251010856610504051834786938699122079263738200370757907450586603032576104012314418954564153062093631151464325600616649092912105362555455020760868861340961326718612684712921403920282894978431281931914231106442880477273578311248162296857298122078659215754669115342862865491322121547983958388250176344655216006404429351441820150594500044539188109380985871962203634812002477133287277884761173630119190832554188363711954017359639471302688084557829896091265474902364689564129991584309594204196900817897144669445897123739915441077064257376928081870518916568615121626351186539343710784156897010248196415841509563475784780135346596209835539591538088968413647988289640188377028802900763717988276392663075479040319501641241462205144384726773834141610237551741988142677294826607517275759142987897851065445205827260508197223695864544717415333065611663357914788658300592501750397540015732881538647394429598655286094912396577517367908948944708336415989113873363989277551014984427579809506737182424387004200384827125326462824727962495497965609421120620111791108152634121961072970605184920859513046157391637795881809700212250305161563739954576136370247748398089089290767904078743364573214845211589939821195941083425457951116862678072181747333182833045482934927977740931771837099793570008991071892324405086878561331005972353994666637049458604596582809558311097759555945590761847879690283431240588431700063119503056443637813919383635590611991346079626098544008914494009302526472646730659371814223865842251241208316298534563498648335055689630428733101585402094221464632035580656662632461653238378255577980326236200237562993513973766170030927918225583618861902419889453691356221682150028319467719058911633653302399546591865594850947899088730454511282263974158463065137088010961076531169794309159077859472825878570848568190560333874209085574169939693857328252137990764922617843507818680671392541901260644464242406546388518903821869992359242555693787470437871390149942119429259397199923125444371754541956315619913443007150283724586336959926033038382180371229291035372800581763603647117383162815322076350097656377459684762127156756054333851993081967356906358038988510206247733023592989131568174584415023554482641060417368972491205951520382399648752047063821757027539941872379490370932669869689183862499228493821785000143456550497646080509166293945249865136422777555523498233003342249960838536169817831564105494005033177517403046793467765669656280886834019892264634968901860305538582175689650251050685031460468526417506310496976025658939855859809802835239661476810410233805780471096108668689249883904610773563444322496210894762275270266314166494570835187407716621736830334900731727232846540208108522382709638018107192623869058206666741174182009702570847568458758608146466565880425917646967033189999858750731513410974034952719816773796308406385610566274446272937548988645765456483249300241925291895879940701022730806381704786467545719548922024539827274482206103033187470541723393284331585878465560677066311494891877142968071661128018639626294965934603947969501536073528153650271586613916226050066804809929258784562580932203296320967174277570752433844797936300911625733183790790853561520885376298787988693757416507204181452525651101048680750031659541650157992982316549828705302375193643268926964900251453423584464182380335869798246531482644252705698567027711476677858464528765901926407249447271958762407044917882164799005469777821814838811162721667027446642221388697191009042311005823580970274775664837129242124067585013994944949309477603299318005585983560311527422832477239798515949849523846355550617393323015151018224952357368816951546710693182484458367611006730881952506164303764015996154651044304879758459085742288367805580943605695119176302247245746583281071445117096639180338313179246185929843937919608413712798448359385087301710627614657480031339554486872547803795328773049637909088388388149110689699945939358420612020402683414862446323421799362547748631078843028186568899259216215690254844405387455782850825683228935027117828621670026725487850171427383684988426463282295901388539993800126435653337709843805102156699892329071950281739736374645737389358829381357255381056872533301678113482527096653613520845251159301363945488011483859670373464603412411174906576026033186939065849167277506750778402783453924940055890543301979089196958663996052134893968661651129255960459305640358208163548170593481387203300103400538849675405947919989299815388944584974385386954426333055944919265462978911873427882161026183925064541984138263230374688882650061287469180657568081584241959691336724039812377261836945376345828278030434541196331523846714260414079882455743593380395344660245115706259420169636256943961083182222495382615873355176728788107461213910635222457095042174665800176082797443523831149855398213891409156439491188765778517790764400623200787701954996210235998161706777364814211033514853529309310797043644271127433584739785631437217758978754519905177194186061637024230198296386959801564698659152152012255946204031213137503684206279275529092013681875542645939341849483691899171826346237355026880546366685562183128166098680899238871754286206643824702622060031793992235488555385300195454817658967404182376805914773005166368968746175112888241883123668323263626535712164964263708071317978289531954299830733021908638500677680799506722113153189295382570679425542179687314195680071843169979013758126866672328325293249259805709184875966785481601685119547217651408628093188367666427383191431206760173361426838208473910446150277644218961236523442562880799266525045722623748893427062844410970462565159844808043853640149513351346267699795615804101600044531923109417270833893668511123745399438019159376050610272688955107641955058993793093977499934278799358071873300620002652544553817650305384722420627324686117651833018853219154856962619368678365084830836690457067113618309743812103461840705910998223102277936602030344343528390423271596332777964473343210407167004311301279115428509325983586783624112154792505374216351639945923466824688161305093053498783100109465223384015941547041146166462196455013522491578506548197992366266800914939096303818054196853810045881776242382654963519053380036512516630945207153532540147958223090944354425333091471295928689865370504554331097135460046658039379441987670669136513474285475884008827250087903676884522837111914590390039155633388074089932061295028471233023891872550701584642222554603637606990859178598061732397768093259626496440460247729606770418258593153589740722223992765059220925979761611965673800076779704989445086778062291062563142067699124446167757307177771133496212373447224473512656146418873086537953140764928001978694066195574474289306336283345410306179358562352713758946821709272975305616876882255558809674398939850395150893535147327684427715330717972681334753473716111306263206264484452517936624128600889883814206175952503375971394471068051321782727669734578808360025297782276201583930247917860252382704397151324227197799546077844079674728758171808934849293474397950805448466274125547775693944600717362168785964056648673775180386610904056314861994458010897738615867730654486305372042831182875999629560074183486011126682066307896963416302247390467407677068956268172974790470489361369169392380586202938656816367827166414152594707408368146117512771924895859886690978185269339054484107917286955970772647982953366007861522561854203634931662445538482402222983277042612066218479311517387261779963936216717438268370710155584227270670528524768534257785520783364437840683813384479470569564481520991155781041856228405684546691443841896566537682021509960997559067944581474849073409480875736155644650530092815328042064184004230587922120415784437477981254187527473482925433939146087524938398948236521362724566617870070163248077482152224855600010188026876263128776084179906446712888996960792786300668586305282561668442570916782796622575288175570579679051170097052292840878396688857077379976410767638551277641918048542446351580455249668589183974340625670297328206328963916724435472592391320713648959117214367442289383527048290860701054059010520533182114559622388911669302532329334260561090499783011042177481350550069619304363692726719881006606364004857262831698689497412199628701943737520875308923038553754688965602010587854281871698131129981297110746013151581820130970797941890159816565564476258080713126020590453276514520544729676394558673733590003684153679155079962828803627426292384689669899519314481229733692403846972245527002689609792471758818964569939624784598390600991117858559552626194823972966060783798620753030094067114547345382508250085394842623712272305471598643282345944121392637466182612524109607332612438284781602046138828634080607806612474141877372197321406339572517579769102658400572779940613723785931934147893856528687431328197088132355638474865901014780871553015389028967338062106219872860392322934732193314758278185025232235450077142596977225255902000105478867287061940996104691936919621374163947443354410835235489906720426017064479530227661926578509763650093246628101989455914501166644749231726604472760573115446597008944737208053158686649755478670935296956334867066386916652648530194824343161804859533887212318804403652164637953166463875611839525572917379569272863198983853110903744146082354320733213132031260813932482002494862673654493360226911463368518895591405222908986845182014995074793123854995408359800207573228595653041643982096716480367022707711084410777156455541113263151075459782592130030667021866430273627993351575642814947269779218970869114129743496269038815541417681930439385793177669975532646457406048314950722482113368880337436607929866120245665293844426044029635703388764897023382634128358193589577628330718082563061149869200136467500440833701159990898014864439159713827479293676101761332139517928423730776821964716817794721063321679135865510793928464436826221834470761950801328189328932430524808793351839174479040832487690194323364623673533903424409501895311290627383371786403479200868763465539728968314953804763022280430657665448192310632592523695821998366924298134619872048334051673413007190630334219390942349126802285294404745251823260649289751144441601414326653728983687960342602843800211866376921294442763358758026684947678904910496905208243310662064593136214391390042718975104388629514466535280828381349076348459593710339504151055103684586306450873789248148424490435212887709719435141653944210260412801092966817729629884195892335060196489291593313591376206984023241481829245923916025709996557846393670801431889865510868466815072967062066518963750356478377731049930303969706909885687099242134939517142348674505862543365055610715662466563439224322851237231121971460350167619142966101936494261152161547446719202271873917836291676948068203029769142257354368815334750665581975144870033579157304816834165787595206518675570115951962366612493347922089740926579694513408913084103949547439878196658497305815549879540675479424998976128493484255518911520294244378263834092556362357693539829104982969313337329524482788319305288949958951260201952637148589358875374875394646894666670057171207860048042236290804086933882331776112033177499732949074817760326125267863075109971788401582109180382601911419075712551932618125543593048787787618620346766262299645894389149298389172248267941904502115899827200280168853690275146064255982364961066486501581459161566778311685780252501680225601213367062770391354503033544043596288663997091354242522835589774121860910627373002412385641282252408189659649874004129563349456774351481592206862857035050048794690768495200569606152613896489357376468868924370725254289456202611395714893345607547130116822549694753690616023128020484953641806442104854241073631702411641668747874319012586860073319914633449133616751101266214117416752401481268431712083580116471903037477974941329234705931129030764651680970316757978314970926295286301761506602863732264907074096970031113469109280523803292905096458925759718426227753949469901720190328291964265949360142873502065398096247833545767064046905817818623699502142764113420744298624579727401482842224845354002993153779472340997723186960460801794276580793566610833192319148181006054176741729596260200596131851018656564776293595524381219421415701274103328162804298837288343521257418804415945172817438817095547666071615548171731613482039475337286524988515990614984275689233233580603496885637236881363999495779231547252197364697309095706039938501053487434754223349305138119150848723614435931944187919163605289602185212467452326295529988138063603135416716463085174618442031731208068022951007949601852491162250647641689895384330810845667126501841560699395764718933405002957706655014602282319056373304380677278411632372801997134626964608551066121514329441464721856199476723865414290281028550085342306545534450263812113591533292544437032978277744343220623837619381778299753270571781006538398457093571301763259124726322957082581545282135801658583242112594317661138894540783830606646103407881603799960914596630486260576978025743662737493769312291673510122537079663558875739863709081284842504954915269262702329963049952066860160178777162377401220055665186154850731897142840897273017575194810228805723697036558949380413228814688995915999163957839551880255986458603702846621989766217256731154478194626000923745023651069310185211900223407391016711633869159439453979221244309224740792182977283623959243322471592022227010596150230948908521095069128377975802047404176735048383211724705482213748074838045494905497397445319601160568631234389516261985195839255640821212786695285838776476918720901041263000198259868003433966189558450331573712080618400019559935978503361378962425071713442941078418591322396909262886300871611678569104812049667053891023543659447430617814945625517083846900003832051211485279150086439381197428928825444137825815672967946348884228154872551733100991308733740410072690239916871057429940418146256845828614707493417603186375959882239843943045286894539221223879095808694204108768945297941092105549376970003775867773303802884372410312368463339682311192054643013023955143001530151979376153803637121531346683754797466868027169711039766167970109959956722087322993453234478763685975105355697670121361460439360476738018780751932607171611172250796946133409156613094186643107899748090848373378914287082846062098387345520097268792191968451508578668543917765521281025955569670998160777980389172924808729650372830070407165625343134283883442386789775152301046311994850291104752075198291028059209566939378129283594205983555314849316369713321020383303507365035561888202568884824206592280663529712976883167116567363528590388090242844454440902416761515266429318318630085551612477059705260518462510205276827374916844829530660925634660442675732739033751573370567420514267897162075362714856661053852712320357939067072026913257732003861458291933755173799455193641653081749923623872418025668034148174450918972526356890068677364120257883609413551595105693062036425007565067980319312474111551350479359141436094275938589964014487947418514255504950747536832747363543852117680928071552571752091752270111473115716178418512212501637807463952791304111554934399033476130354721430727605101244058777086398676747511498558868166614177970145693121247450921481954975380141958341054983564593192230204611136677389811681467594888922062043639328515151428458254896438558405720916768715673959400514394696723747523183173631025000759733260120025473502813762617384453881207550537857033716985983618331232466072555847726919942089468496189875796083493620629450906443240449989771004598753168385582686693035226083095532326258507405797862368750931711759697206450111897991748979697912766692435048018066005049449601718862694386583153988996440829372615957984301541512136080494093536431378826244233782776989501944132621778357323375440183984979819208691276429158490180476054391890529342358704384980245991415930736453586540961573805431933082307443421641369957712136112962278259599571163918723984534642134477554156394873977472816533880952237958761857373395258995758333293872017400675575225250758108530882761679631575886280101127267720426400900864383844560934231861334099421211123550016443181357302426603262504925343855754837744539920126195432268874532195641777400647926954364556819217396067295943322719790366775291484996751847299085766489449529700670435642132126893622189456421729644003534729633635930800854577226830705376298176288482347388213166887492991623773295073304072005545829979988994034756317434607269387244391877543798810462490536361123579763662486008271704424090108392148215362646070711839054561583521812012651361833976200041067504199199169616363743357481650463658570246806758084791990604731338947755816509476500622836505281043039022729684174341779540779210759583376861089343160623846049526714108224910122064853726496689933804014515055720505756861357637155178208189392424646959282452959241031430705178613115051171542400889643298642392374192407299132165308607286772472716903712408427931578371701206307772622540219833034264865516559030832397396087282747727882634715391264306435800979982612989001161507469695842696921176157767204290021107039196097950165603782565209835988945542711476559315111146005102747328434423549618504767131700393099072994580439964228025398939850449148119825329339455198573556248579034155980034326978428221979655096536441730842765407191363900877861034471340765515482497495244635448133194491543261597468798554117979788575788827257022316461053003693905640035418785122680859967006413471888327243106762186904561057663281913465005037699015531155290711490244186804272187157514709215228268818626324676960593578985987274866341130708607046708772155832544519261293050195617977047985345924062086151836370126683487247785875577291748055603988234269040578106926555265586066313528192328596108334732810297093014763971292971844523955520382459353199585747176465809213899955230575446641970143660794066195726724745565482866517291997543449861548128026262869548905190036588154098393450489791035821042831151325418966531546792776321204770107005540903886128404078107071447764834251011864691020864832975087639062668046858449069036646961867800253402119746356648465771650489909788638905909858622098239363707550090499698752728848658085835926991320131498144189787968188916837519984785519622782895331935364200995477041279561178766950470065738524488479152898531291386266697602368851356542528147227419984391776526178480090439190860553182253334437591451374709521265578008570773814499959599975838852992461129387488566451066232759492571542596985114785931913515583629315087035996926195715371044095585416041263443439410183285840282235135495097339511397905260007573482230396186417778234055928921009359493888419378138051707531687259443045320384206759403011356801015253143211803594326988989105120816786529246584599769991007957777256287151684958465529845962053119494612390109932122622709884152300029016141204393744564918016465881845555192518319209597780385484435921441674514225963183577717912211723090245440595914982774656287213117597687570719176749211935707462103558041029287351535137176469290125839158819957262544081342694284683451379750491103719408166539817164608899709253880448603371587412199973296063505123016063422942174438025572643335388825695994873313496320080534472956430093829861280429310870360994484316750284498449040236008797819056804417404764373836121186322176626649530117184573401063874292270436660488772049884835145206570128798682968360321213340416833418738652298233538644338835459213783607595671477107758621596884386744148294810498808326975215921631511684816337085698651072889240433318473498323658379806731768226386887116669582452705245540789649396663990804656072277406050598772620774321988087092717881015757516362106781102344830408792145397697666598925975276775880906939198624190938854356043539371400979295871286736689356478232197386886838610265502314238266184933501252632831749985505928128459172013562527591459838641676397609666711722760566566512731309308099802125974110513894313897437130861286765530428709778303027566126111718311241905934893402924645034404158085167764949021860977124955413393583854599917778931943005476448480300431841081030696220952107384567968319079831723718675598326012606974725070164757265006459630263768748347808919045898288792978432760963155962715773210053262710232125302249927669696852598071933112142427715846639161471506100202564875227872045872742506768219077415555403196057050621710811304240628171980017056773545106327203088564138960462877950342869117671567225310943545682239359962090114704119920455042923029044722474295454442182748202796408303387721143922014086255541644300838183431190356460144154677478648913324089603300415712513940926806262147013418228646027003356410620025829780700460488441323521595772260370104121738392579952226101017815757225563796762396537060443412776981956930582599880392902511005218064658237375544536161494877064819747118529773977703142950212013092892082595241712895009000842797231316656883480634339455106851246156150783649816358831506515978138499100632592448678889463038255829823013100456817504411810919428249987088915341576010142587618688055541913123776846335403237496628380847951163704122467659692003610997730890807031167198198224439174254826503781026582390567530313931209904578110699275865299940108396460248515793338293268924365659491405827862218689279325453430108093225599978851075618856705841482999033125026415142195550915743441157336180100621699027300582873124187135836663664988399953656694419940716103062339839699776333531603193990166195627313887545609265540780918912661170130495073455521641047428474263713223330787164952053679189384096663809577640820991668801120662631779339630176036286271398297715487880021886475555002369547392536436889452114757321764116800806798007349961758350454069295819682400851712046396806755950434467767615717378606312272552257443713702660902271396765364708581938563274427390119526448969185742373229952442032247184778720835828243231632839183827740859718293732941684489266212271109754675895563457657349660368072055872849895580090107010000214806073602442580715311167184437142759500874291165288791005826896395953931432958021343282931021246911103211433097603672114746963430224388508682012627856902530808033209980216534854594252677068235601213485822092994632675089221555564348239311994775226949554515446858655666467859012847845069713909099976017583258577945654005156728572891741645346292936489654658683542107948542709583133301245761268075662277028999723603331408912393753426847381242835788405116012015564948855985972125121918397887472844899253231571125184418603801970818027423157985161476948081979912337274133788861225893225466079120384740005172045349931165194363791804586871976526624140855977329801728432490920071897994392462128125876085695096924449871892943585004578880915107823977318940141480393468984924238334464355098198959533794885598691128250499896218607472271771181127954755793500156224976498073788109670606466551910964362377929840328553652952283583145935534343291769648947799397615181749656316458979330874995893864767654356514036861749826992443686405867515463712924394225135317308453897788459280818869071662379044407426385527587562886262524251999057688844694858254065820075510297085551016921144012773150925051887012277013296309625487315314003318258159993626230078805695721273572940040918224547281118875123621750357098716593008634213920682427977395795808277813729719725396357647802423563176761580956305835077691327813812065090228401004307290034261468566496131956091247111654768461320863263873489070818298954247181016431053780955706918849504687465515105682333673770094834945939862936097235758746674048668613685877056762881719550125399152549516627309027114204339554627533172840096419857881946113009974026676327321441962038196213488542984080061528132942490887219585308976062731397674624251431380802964955183845088628743683750322472110981578311657183087832656299183773630811266174969834082675039182828993689804981341648829345542315539746976980157139638439342965716591651089504341836287087112387254738572656411254500315543029481544718358410378638521868728712704422265597830416186980468490929157663956782223765542210236351050928089651720852555127260684792616951855859467025361610054780680663083677710634037149185208895871193071036971675683267861165143883359998439570526287272559911166287661426280448488523889969255958117731381380869855469826612084189629368475293952646266130749255789404314594489545668826582993748376981620274519402069742205477219477519571417267093871243150991133975232523908819317032141792278217366710876757599595934421047159561884083875998682922179060210870716561491952788753265167959367007346674296465071970815564414466190046299912500024221621905306214690898787317487473668544469987350893702068640464194275828626121388855736174179192790503368718492578520216711818746079307528866818189259441151805241732474765798341181048825837153117849764645940522083999687137297343653938811234634374675600835309490372938178370205134583507480516559798713130885519874954501020261081349418681914352849253045527924873128554101396098221625515664673712810804804533830565102673507313705609247986878506269618847205946539829974707189326944891743354673031778302466100006965493236769984175723894630514482328749558754621927220004451932429304899796941644157576548633958108111511133002246515660816032815898923849789394265514440031328633288984563733724527813665187315361641775132938632844965545368830433339298855148164299190548369908835579154302371344282495390813401549577072708290278902993697747898016040586186062348676937557562230653061123766991660676258146247669045533244944051933488623907666629414184214530911919408307495524889085360182235726443542978057649680974972049694352395478184264142764132186913916728475904382319574131605971991174309144969465403901166220402170023330013976847657458139284946181918755136140015986750562144776644219034331989832516330201820704785024835376717433210677141603733440401995619309934258837001444083043504627994325900137924206620038470922096732820111836013414357942032757414725981787039771982909248423930965821585331747762140200385221884879542970021060935163329602009554179393417492711152932898470081984965162960133405406492450057177314291948866131640726526953696954926852719798054259708171320764489511194018967162652329249078023343841593665167784140607159511605344357434793493248630496093758663228648132761635458303749748224797657711563104655974981919870273672721038114824011105021219171890606058155297710991960792685705512417534050948868683989271245434977754197138596865117933411089414875135771304334096764307112501280131527074235662282133761048246009653681108894557869992587328014686760519067362111271408365345350884174442567857050994826127363886222639185241520874304653050370311732760647937606456815243843870734944424517012780578883428137934324735201643461670905316083559789363674775707223806071844500158923968912836287344401270439831446284766760756371342188530016847262655963747363558997660349276740658654982015702707012275672753286138268599500082164642400757332575527652684182801008982884529063478544626812893120976525570926100856586486019322467545980339808698287112383082893968559962814594646491443991997864800448303515760612399014748792874383958865477306703571634446759606805831742859881567111501897915210715042634873504108569938738526203753295403523346009648339291501480087783585472866738878464316646837643466725268416292406038554406672578837341556358820061611753445404075645836703200454834228176701435661777610568312906855523140382670444108581572124362495867631012140479614395026415159247140710599318357822525336299646916132077117638675048928650920974844245469374570009039709140694965369382013125538519908374225048512666588895432184334441949389675417219589468427528344447262478741333003026028322846699213593327445850311817928032405214721732178090109708503185233520826395017886991272989205168769519478949065831461961303835024808929145209427195645114445741628354706598365843154971358051724027534077872190930715918025079048149294693819331400830068735586979703419179716961300398588396110150189674360130938026235499392861919661369726311026972645567395532294258935189367205443159160592612109806712971214336484052817281718165633754841698848252019378892232402950593285771557007628214040826617684528064972691807178280762704743267367190965088077557669961702085479542749619461586103738176194872175636334957910811886729581747452640679853193720242925998714626417997342322754873171698992194323296212571689604570588356304755779856006237848547859546399304296132495502553674586391286515343942402463486051202037616613530490797615387102613437601904445478524247853901809051472682839239844752217216492585905334166403580811329217581555303943958641913576192367594038188141177053924889934546813969676551050002900467242360527039476846645043112240117273767003297354896313604701374926324901292466110049485950367588873112278204505100755931010027633257423452208536194866296037421639236788719852338408862368987745810743586914150636026638009606809051296552543570726489723154077016788003224216960303912010313303586559400349318632289336424208230181768208842820596262092369895809334875312409570351174041634667476627697465582015577643936994437124802879172258538959513472075294419626945194958771443137534434383723750845959040337038122303762786713078073986309771240617799187496866601663312715456447469489462294284037134103759380693134711847414466820562669521163980442081070777035888967908030533724438630582462541476782825177702881594781682372738184785804772806399830069400297855131425708664001266089893283988098299525672403164435062636769829904280954813315824408215637552938029970810104389013493360378450824170282958026843005405692101513667591154511996177357544472017343049134971332840701452019469179987778042745392805431512168101341950636234402417567751017193645434392900566422035083182826055091510377664917915310138577369798472070922336375228859536391280830099209097018178131384196389704096537065875100158524629397431414963351731124930205049696145630257380868166544645885567540509294043508315357389673931480984918357175898394814496456388746080244920460744287609249145454191823536864551387452534441814639911219956200344322021247814872330484559677310167979551959014385142177386029115342029325380561497902434805678824699425558278364499991042689372733604799704240611352733921351083845170754638032192666299056544594754276369687871637289914109251517451738723420881005568127379032935479705240310423552848539460858541576119039374893364605564909490528459038810149289035728395674482283507526069599638157271508669914110302416645135358988824360011757232176249857224168311495129656563290850990347194996184185632110169032062551497118815156148297925135359942309454337654264753940388305228053010556181579497907969807938528017618430107697068744664039633138080600736059906935529973159855505846836847235924108096543754554148896246457601013811546704067796368196685188055680183902966223442898293138928231649057579883250463761156330767899374185912814493712389794639126719999078633792331222530712916815797750743642865215798562975527369523798971974584221441219340715627698359466578046115191058548383027428942415269381871502560203171311911679695404759214130337954972748621143302591089340888029860705045949411859399170947985000113111510426196190806829487271147040638862467767511030859361979757758064458457049454745231471539927350045571207391121683711522695748028106715472084388390224792659333590948121893846174994966441092080536523262580994976772543947874714494979392472677776893245636865884225254481843367472579458549646653412395863969213227737137803596366306466132629636058569222493971800495875868599161492400397778068017414123111371932651278914129398690614806510251185772188645783570327624601946783569781557987945149010575932102096818765432106865311136292811883708570079622541955807441737174178227139910873487433176053567300203192106716623311966699532972035087347272547706215881936682519602545081085835427765787081696060485315688803097625357136688296133399536361615640895149182884082404827819613040606820078576703059566079327207755268578672382517638287105808164718138228509420051565170969211212658703631106610278721492117361353547710829215734443509527105078025459385515998577011500911800437746223470382080178649369896894035924783860383895891589940954423642058601629309746671009033317820431633757056333713410685530547878125460934536728119901175029094202504243859877138610754923545151187837498890128796732550719152693488549365723633976392774204877470490802588985047889228938366624634400274055403541468910141535969828299866817983901345832592559630668481031730144141276107886177453202473121364740604993885970994285603875175371143447422648334155656575451081285162178500050146260455417934063274187100823345600365756337270523445041597749649278757728621358985927421154637107448499633409681902236691497329626463040407573232860691757774143850697491161890557486082828427310953790184164360045241543799407315372929526548826544503298617833968943369628312756330576615791398730928329301702382830914682951200692974975243643006119416769166032948784189793739810115202053750890641848298000037923247061103941843996750958003253368780864158942575010262221154943141002515866456262309834687808045438043301627692074333217092581874816545239093784849009777196823169056021907866330077016719222102773857414731536547094865469162785011671952080981238225683217226340437118580504719975350832292667486020803843491823091388662151566820600596513330505722214602700519813791833452309980889960228947628274982927951862537214228384894905467436102871301274917453351905134412259316223811086881818035019567442556711137486220304299639581214887710105384879343853370836584336319972889489015586274635488466070748661936220630841431035615525426739055985304295886510345837288512571092328135554983528229516539522262117284655681428514462259457141305124530520256927763149010346018898738128727234735778016846754116545840005754790630050739052730754806562886837333217432183042832002526540018696136391406354499556447045158012843944609989687416163386970700782352575006827250816869322820265806744495377932520343534419940103514689253684592644709402261468136231177403364643695887180289703726795868655140753757334924852996708409203182611239416934799445788017130879407345481187494646923395879203015877509176700162857217795569942257322924058370127369094546299312410435089598547196085077531186792978535779256743420822953169809798232975646787042317406213003252945564290317322628020800811031197512516784343883349338258690600266986788630971292043026125206872285526469969606768625420507567046422800446839306751490601846822068101918972092457899996361889301309573046857180471140021328394581116330890107713906990598581820783571481665225550404977134387427759599330001422471772440179363649929652092056713215774868273490913731425662150022092280874091364405795805103415682836179875612621748582827977043604020005358954813832953133338635118613454342188262755636818719123990996025436662534056381622701491464670003328822781515916534346840876646630066012876689366248327294935932089614390218515644722578793705544881031546184052091171019768597206448547037531015634428533604466643833326345081104909413436502716536516895593487200996207302539580080031374364087135353381573451060573516771651927429713899954144488984331393204071305731114522733681114116525256225982966226013143097232775468273839697902102783833149692194604879081044979038703803775966559354673914728767134098907561569932699552104544828415237341577223712397633506924110156936135624814588584036197806295613149946350016377810104731940959019080059327588969260232138341434171083752204230398403267961244983666289529951055028057818909843373016494237063728696208563823735420236802869975161926265621080056335243566838845092618740123108329648431613705690947916823867897584139641767536049184188015747911841223119340654224715374127685794801728927918364078575767372894063237221065212668625203156597854440211891119294684787751274219669339570794782125187204166240422057750547974176080734392183018552263837250539426903173400527200759633926616511309980104939035436455181334414307686926153878648742115505009574707483932725080240677256813688734150112185671133350997368064574662476843145548788401171487257046485674613575067939522246355562911381318684426426286979180071882329803999575527063088803518962909818808819995022820893990637961255245717998455969959243372662093945435839521867760121120880534423935584714876786221001333732022181289853607898247204111516311152744259331694821172892758868764885623456141287301431304983610428592102310854997156092376026970992634786020258339681235743011359497790640874525635610867084656167850766064640495720853108363901323863022330332565478251771187337295890300225133879893381124440137507695093243776342942665071469415006735219008600888203181863382969025271424670180838417398569937669257634756709182235457839998112479226001134775662692353371846136420317770359573144596149766300654463761497855046387235611928717856526741280957184834175174144328607203506466266246767664989993445286577591658004291284491416267256303192782180639421439929251388507270743306026553939527678073486020153103862619207492116486143198657243483333193807335340939888821656998950527981322998201693911499646452966394661642217848802310539502597343003767531063328580823301308789140614636816122908760682586530485957509069784615396803472984126799671533819902121120524611144698969311545973047776911901397461545541130899254394730600846668085371451222426738708040410472437541110600237675623394776688200658318352008357370603323091115260421263771938078371037488783905593682959370733633780911225307919533364285115526760030107721448329961468240349615402806887772147246489385028355652033076932674386803689684767216745768492399703807431063849775515832719322241215910731536376529724585245170821572636609642566451818956996855436138812353760688007117400681555456198564836350871734254214376196511763576704706339916247480518821629638298361441124294585241092850089179687177481396316156639862792779329129412511473830701728646191025471026905943580441059240496701044092424987385866756366662429570404178120811995942762173988301326098455462134311075303695069854617108285783945558520439994711173058946935089462023373553362225775606893821359138814406010072220830530533001133280895403365324524151570706077500365684407954769949697138810950259064034744281197864399593320053441336314341065176065692838879844849667263437845278003058304765712418446363382950255910719764533800954473200847781119631235334944403987507645891991396177620731148825211380616432617092230402310540302707197178328384428667606274191953744087848711037103410611179661818880930799325051116325401774669302397766317452122199226365941546083241906522203295259400018480864544533704796399265518269230586055261980349419543703195740444617350017518475277445148477208009026495586385947433072061858417739400141303874230763927069485791400736306584656930381277901440837311649129939163489597494615424767681394419737293893703192020164915850875050265681426199337544233174909440478947169196841811398204171843535194862858154725869080821255977077728089480958479990049847658284367870181207202444564848919544074596104783074581003722241327723876595523666584608327334512168256227394753616756324692129703925518011843109705834778312237378589226578234305215956517075073420627560071750527715432370918569700998175181823378655583814489821034841538625692802936021456505464287450121564156186917329144957783869597489782692194281940083905291768552339914241098812318763799064109122793840232650949891388457334461824808642543719687619552104950649082729294992288108748258319180939129571003945289340375492494186432581734528196875587758911096208291205252592014157817032550264627812386678750368813442495342432659145379145335442947347928176155048083886200603209817012170948854245942318898417899283431727990540272244543570023070298320393503214347045220665054964952691099191119599200113055124155027911416931828802422830935605124636669888192770577614704261087752325114544753672137297720235420869091093938273665779025545097518997779472834891832723859001920467821925514553911349577493253866566588174677078641738033801523220797959360098881159899746494942708322294929649558704063174407206790342179953869492324894203882724526892609214146089616248495018978132465614229266873798536656988517884008946022412460758993263267193852016088378361622837170157909825328274959002844804286308448051516409275936629501907040035609497480723926648372490623163417985984184394089010422425274999285843333384851922890125007535689695523460521153581443799655976421648388865786893792653153593617267431163048793212572493038880428942460474072911447809948962626298709005151038485304800883204739044614166619251393578296523057796231351579552674326458839102669713917787830923680804654962652930610182676658100299722715378005684648584452344793591069503223631543648073717967463338265443137688811734634823855167378969839922716655369109322794112313136178767121092125704862805470903978261270162953735342538658588495889483343550527294390964248289843840152431889299574149781737504335814161827283767012629986823249111305893702093227134647252684800487687436182839567822695556560688498252655062847002120941369521901449514363977041435103556508867032364183724431114490582713503336287986055800361912707781736890837337818788710105515879561792821519808815193591312245053205288265643806763131020734313741514805471430374712456005987572021217537669972386469637236509456004312394908603012178745883788092719915740878922136521519553506608067080785546387978293169333498752320696646632817268867349799292119649383363280553869241941331280936503559142707829891337337111721978957824980780054152956832798450929689121025250073388229793138677176173172908887269578460341020381550274183192272023724365873264002680463741462824895251088098443738042772482116343303440509664478685430275743503691439288570680704072903557716385378763344258586603984400618131020832001835154471073602327704154503938249652968199319118330880151236269057387612699610736464597168839822896076322272037691266405815496451937408935492495143688534139769459741524507513760690035957149263542920337171047462504389984918641420552189890918371307729553130191597291068883376073638968540247455490002308130025946214960823126555364578430439872095697229095607054554943157489337121590746871987692600343245954689726553751700154051123681393357977120840394164030930451171398398785773075216702947025837091668502682217372647970981188581743494122190570581541907374434806411831649660280987860348204133292155796461562807335168477803669019500308821123595541361058312902177008287435356857648939910668754668908098196381482954551855496409804008026845060818254540084844371051499948235457059869359859756779446669512295842239647610445954036289041679513431662385835814919584571038996368982266553864350267722036621935638806582050097665459038219815464709186163674826233016231557477195389235060660083886742906098752880245716277607875000087927775498207963303535003105233201678390288985228376345537000122638388977359327534098553396353483075598466583642574058825655932869819926884577325867020096445584557686716420500435630955580286248167842000494503677509165015580436970301406567263487391826892132934958045781311637471114135223167596463903449501276047319233817696419367182875451378856816720859731811971963838618474274555751544011521951360838293821400479934452587246068925748462804411949459810954655756466325803798365556939062492370919202424716804261421507193124808849565303028664368053680381576196777994130236531431062490998390909673778841188969831471146408890127271972575950848584250093436875418258615402751479339723154038112620665009564132376522664769974008022500427835136416783455867177601926170989843927340597991743157004196330707574910030020432873341183269696966162521910026881244214798521998937747029412023128102077313536175513272641142079485729067513822228949894149272624028410544354969013872355367161746130179517424829330384570642743767763066588893782271287734346826530037864281153072882450257388391362248929021409954774290880890491220539401465697189030534890605823240680007628149978268516160063345384974615054418488969550927747075425240659986636510503954785483665044201065471956203034285535739931034655834613502561816738113180028087523660978117334226572894695505843015523526300825359682592476120174658971822273611419712113727636144578147452474054915985260344011141267411581238379608106472944218908354431091155350803753068573619629281051603844531780814354450707767523687073912718450082421941908325595494766838286275561118833814297286019788979617970150075504253200804036034350433513658211116472372951542250139463127204767658410808864113443230259622662610326484416533162643531038917449584286674688052471760537236183508429723197029494146614592349424593515283980111740730414625924323383398886502436044832767563078298173599565831641109515814609305651550311557613636781074276811061309888766590693510319206688430051093425733601410494770902177864708331808466979576324911319973864184883391114987982563938128947809770990136585813792200026921215196474584826849269675364789707533978535376548611851080558910391968804248911939429548263193979851577033855687963444591518342831742616101007756836588313178345512568820497148765281573082164775936017170085633941093874192696334445402405330360310029027152336771108934289900034620341174871813292813417279842043322010543816730208114319969433399958281738888695369503156144722657603023200380821460055595478169994676882353808245688681795682695811587597860742412614889422941481446965774763451094286025667734756106328535243482357487715832268229670731664354217553555959958893327042188359236867783201531611051247421413337255435873348336052265155572991582439991330695678817831548562681382104142155393136524087797592315513183218657829681647107942481152136852885610672361565520003616796175327609845694330658410615243921284395352961947774671180691752118392250874303856735120066181477456489163813928984510472119264592512416874031566891456371245488765259820703013645965356388731669390717861744393782804420010479278647291347987207512929904479273897569501076032277033295418454782312703626445350957341862957280090512208791495397781832722373130890914512205995138173035535638095457276526361284782325993327109638266162931030499382108547371129435174298430578352095355201944620370043514447758393738584300253526623984271655284271377594482206830612383339887913798447875548376862842647060223611637467959266332997232483464139312343420704554899341786840735625189989365990167176153285695988155307319547309621142955319884784912529210374511620720415206371921396228087829383397046067327732909863712543799897626772441246156791864784894975613727828881724343346795679399794636997162536389710112812365967678835860234471327115253171360771662657477446674181898164297931806865336657805610790950378837067985528022923540066144537911298926702474130800839509726880959375464896142739779443546257130490099802655052718222292889221120637653597959348685493900341694553595224839478408572690144235753049055294681062061004801154966795713795897622746325677608473243671115809284650374153861189830014076725391278381228171881171232243591126918597108777877464265376336061263878257173539744361993987483885744859991323975936835332130013954570373589832174579994583766679806505083419785930203676313765310957505287034513100304844870413333730684091389935939855895324019629915698814231252258798574214638713772624097368334605632698764191215555938139854521815702530881857468681724364261345306534533579397043581930249673744616972576211264469706581944538942202854304702188620431303376375291813995931491495293829013973546079265155554834467596320104168727558015252573910934083398373919803791583747009400742055224333492248087937392620349325095369633848918495142388615077815226329458889282725257200794769618842749675879071582816519073085614908871295976896647369351404634195374785911885779174504318226526202023950452637753656233034444396340103841348019340527587687591325561062544789209508332733605309357269497482341642248680146711127048839900997761167140294972266169788208856820726180023739856273498545981053287476984502028528149484357211997704292080649255715195288924076813966046876988795648777747290672974563804112128970494896076839765173535007476361536535260427949362250552825942016580197704717865922277168519759500290022045636136924980049476186415011283963713617761166100065659418454458942399194118695146231787410221842842398170940832859744080621767265724493230996482262833699537137058595991923116361270807182022161532366803482094025528368309726283622681099796604620860541518160759500834982076783562543497302983031662759292448569586199480556353013164680124814060393998246752690823450510694959056602887647366161802218673935702727408334281514472514410833464512962251565149929512199909774082798777101740052737590908335290738941653494663990689280982043099162152407178342134770721145085743102092939521542253038799609713129922635587502620267810467719062578577283078773447613611267938592479330958727340021459145996772613509080505623240536565560295352362290429806816210734891012523100896717767924673798743762484018407076287514624355535299612086283790460562957075305379350342809285688240957655074245356990411858517497545581994957281164306099454986610720595754809627610017082422829954344441691798172546310220565939779241025353696944101388736032815386510562921279497237583454291374167522800716905465356797698558760410363471770071270213224550670633365036371458295337650777095254475790256470977753842210372783409725392793416241183380115338374591411299334961767972365040412837573976559153418001486610955550613313570334224786037578997229999747355096630853946467267276288002872248443989685662637088906667356221668413917554307998128537181206673848776226177885826770321884914107589157579365763373305781782368037135235618776173221983416742282650291755680679521772973135292614939088642922056729726487672190819358333000571441011095358400875065890135569569354492457157444836938866249339409634482579874236082113457247869553302029724255868452421412564628757636277212880453292618748333269012967555076240641222064463317897356709576750946450049159908441733370127463190499556701198817888777824046364251684606581865563934039654123297195384034958800907349423983585258934317624239037067292604559218501108092816662905839806492337681738697930824834483374876739474550632566609973498525145481036428290305367312157266397643945513868693452238752389885027113521021396027560728734346804970009610232088986673556771761395861414879091291983859892975402174800799857045741927163139108914309355318287505698742456590419830370243983812604820973646030148588644624075412469447175915392577109340966433336111480346015978893111254893287593117669864057971918385430529527283437904539577991871384091391671756520050387760216351314723040838871592838771985085232757151348626980319879227318213705257460882034577741816072363087532754771530078842044862644892810708428181010231655108055400168405068930744980870153797050752124853087073919950706826463952624507733646980787275806448823274659642925177812475250222605529177544225791094007217306048755082844095255178813667045116071819201307389429915726538109611568359729825640885191927631723114595496577288986268306529883399996606483019866515764379563462683807816737618391580876266990049295330140669790467441556250700845820084678701206112028259733721982049565976049234106501085565843663158092221323844107523175899024513904370163594528908386098452073184239401344491862695784932830625753811500332687085960147084123978560524115294621496037599847905996422990316460623378208581374131944624962567939349436401117771193909142379708722646283379503503033692317030112057409259797334795545991667353338172669377056792380310275172092530275718565667360636703394962556508007064051985247142825979329298902016036399882892989344705286219024037913156048469699999032567347873370392300452070415090971287643693032043965878662862418703378655050705646126983626514263695033491850915405560579270593634603727346322671864815750778287104328018312070187757621746896311867617962178886290123013369140806841538815651550461363450415238002423727493123139485595876409369359609349459237086136000371045504019168585515000526594932850790092703745913271671147148454316858794696986963026774937843246096432716859973969678850917514815523305901501302458178912200631705979816626045122032948085325783000428727525999580747896353142743772445878839689303171680574182588090423581744043101443287102619092006488319531411245277902045164187658551871051772711174759777125742372079853081678471979011200516739755444005844624291071143928455512257659031060947199357442379025985526144779793308457966391983116685342443937701882732310311805143700062480218973508071520282509395861538022682373546299807970417885657972769081230623891606846484393404139013885395556854267025673130122043338552811178104472580567139382721931986071518532568950682413757972145474670813059696182066915444039017048092392870060499638704336056861963619111822042146415951745587350794055006881492001156928175025135039335067513458878609208291974168233183595985347531100510766266343984234107961616180205495122970179428248066036528835380715751367776415971560162462093919621549881197033671201537757106467410345839124838939854939737452223570343345094164532982125012609625364654258608369520844986040901854362053944748429735739416132750353413810448671925380026165255283138584436617438855226448787983042880729361834410230056554113261275912968789485344861366775061417481759279789834115899262057959907914345943059089959327976063917529591062346968215551423318076788995750834412893804248115372950928666728219970921337529762834915465771068323812355915017800845810391945615054657896360048685079366634309137248128132849896023841075822798812617142304660776312231219261542197178161523713372320907789775589839910999664971071855878373845882144970790113019470969627324025704593978130714914391427736230012159343005052884932296934529865364908254847885063723440468206146317483497160207277112402792831683349509994023631949997444895321424403301152061855286107150164161640189726030894140334008535952304464334568731438190170979407559189336575700867665249285533488045480504973778062776909429505955260914816885512299399982459543235268308103285904393482863954641315538091679341282082959766709737656501829823427160238985085289945223165126151277993396483354083865833908068389376746614063221365676127658973446618827550324557783112705854153085493714844648385906036073657186483448403790856206104576865879981164834299890589488051043608418324073570727855628331539370017478041715336021202116799118677512358981503102604070515481536795139839794146698642038081710088462180182472346804775229431294503205902214621898720952588804163402690697187814613020131054336617074050916135671322473410530863971353901726001833439727372272022466302944043349821824401119223187880863651117381928383822842579032002032521261475790830555792207131562061898952776620966250692327658460918038290616002603227277274969971058491281333580195098085157104382787238362965384997616332947775707990157976204560761895582585198049179991209918989647657624848133390463599173073651883151654344384351845814059933980559983796629031535012882298815723314920496528451563384322660346071363693852962389676485179693184359844941935713016983296924761255373293579771883915844169204380891109061411686380127123922001040500183115369318447899561875512458855135700581278578417392780048074835672916308375808169386238453932841101350232492823936641664283314382409540865924456358145102754731669766817032803046146594004626886917681300153089434950463572036923779725497178489650348362326277345181859619840785194448924730308865185344928037619920405375390201748112683543898892653388812353720384078661513619025916548525692677365981216053671260637112147662353034166445927769179496654374029229696759721891516435428882213142050937412164468112640229737845947710943780840433374888503767301083058482982385884776334397936456701658260971799378317412359179281400884383606156008203465290692687467555014597931006487019836098293908399422952630247163708694485890319308076945023764311057381099122367820277600488024799374865441420214870336830986452959298407793781254985620540782817762519440240738129818170036179772613300877631349200105731585300195305307949914097015205640709216572491397435326368521880230221259804912587016604108151382583545432059235524898360669200047768846700450442792139280028663702539422505309984530518388616952866445658306719094617860896543436569107920545569948579375109196209178589856580112872302741219717291524535422360984124964668591270693058135169891129897035607691618897353330139215383762934827822859501280108918541132828280507407236829721006002729488982757113898147512727749812164222863142896495293346102851746825033108976212755519085774168266585593569406595637278733663231048786499203551627587680973739034876680311815840359627645699466947475375505657300709751536160207168391305818227563767113986914039570002928661428961622135148724968927527889285952902378746543779804881723140619487513562811210277812039829640300128785221327325098194565956024240101530034110457983834259177590383762760679067387645554555004759309753189358817134672228181207304504474438766373898053612041592369393189015511678311417676628526230216524126092384475853965161004320291900136551266645847249812524651492169212438698466595577881740759778735371938044156989834097251217674647254849151649459872211837560780559291642859096486786953485210092805192620963371912513456346430381986582347957256075957284742431691692413365324549288394115838684243196294575472879038705750771770913462964740415295302487842083229415008256664945563316250076469727684114612852073932610121547129268570865843866142269032161412984438640898604081068134820887859619511328102867107272423345181422347524534459439042751095644857286446813298611029049420336267650688141558312640911652294019190483416915445532398820809491067066644847096304054367245027993894461489279097595700810410032649797641896417781272685330492621160007717192098137847798641126647714655139954118232153235001947065523011899301684221441785584372652202175488001815078824600632186692566689717981381600773030398103940132090619398659924810330994237061380890442493361618921263795109372096251804799326750300996015927240932152217487751598360086214630538532995320677842977349078556265201446669346791251726929628930148814277049013339675468332978999984101222277425128251166601193191243858991129818446747467375592231909697691204266568741655652131918428254518146272317668387536789177325702760472297747005788316369099982387564357242387715056569116742825560995356575958466868843298657577441731642200887098507323243006382497821350232723959753323033040343420783627622924369089456404085376984932276977793292403881827320512431557320637619971210144134695223301438500757201765021638066637829446264557706073924523416377507438835050611044509460114072270624854748101277432394818443001898573997807582332845482126120785607731840230942924363683964828431888160715826592644231061261511314643337971500831234370899272299825529625056186380544002489973388908341380279264106272570153133666819870320214328006606525105967365858435985816866894017046625239288505621375662528460511561486668649931276683754319294733789415685670501702290968388212035448807544516210272280319862158269386370092353023219423141498717371725349884651380262760755503310034017855981801749290349271150454720379756354549394781555436895804644918012935436296683233362479465704101207274243434669413462559069080286859212026740764135016926120052770467061337002079055244897710369705017418188962327740581996223911427952393178276585594742277402609832704895911875961265581791979528355390071530638996866143180637980356576970099859704169921381844012601785581576055042632826500856695623797092574716612302238356413819035675520639131612437829115860256137489038117413124957323303314661188935127895605606332260023741947245580419350951812839618769536495485671169271538984998311204426614040010202346555162861529396679870491381372525648217680573801557069305017697602523241712863525854534075962198953284962568211014138963452979589928362038031120905648532328407398053228378858795560394203645788586743394433472818059894783614962175939751205456166687496165993525489502595049213229138201380904300771576497822179096498740850505505087131176190484677455343902417905806068176052531099132397910377523455347910974701787236907912106110715040974799050967660414139618503271754599920617186424127713977095367376564547839164203252516945189326177858157589811926751621523216046422727248560087663568538253315245531598573862068343603897740059866876468837740762247549958133949789284015796583692580281194597000549729471590581315761259699841742494776555362505172618846341906528658162364261085218028891999740563378589953935309620197230660690619156736494861561502670062289122190331508030540099052285164327333413940327336150459126693222420974010407089008441156726589901996580365249620689862474919904362004938078470117727629472969474534446083633564997559386890241311658782906057990034044083270222829277690837736597432277407772305819934751929250434758172557954158649471191737334132949036715477667615272731839330053070679392647233386061565418976291966687682907319893945350392456983517234825295716107388626600756909038506299356724731352324848743729710849955587032252168117173565532955810682103827499255225302723636356143244659336667177150218422299599191618526411236653347062228901116387464319705853168770360899679688819925542098096427431846448482675708774649169450131644197804254198475236872535735164619460346368489369977391347836186761113875258903452991402843596454478776914863721580960368048132082379316370057338832160411196668071228538965040162169305322561049757525918892857244378764789247960083241337707248107847724203754635444133529287104594880093232561147369105359667621482117513377318754406022224364419822276982793083677875809302444255078312379032491525085174929481267879294146161254749439900351507702722616143434326919576560590147457388871724360505012369968202528696338869784080370456764022547779422372093914220877899371327943878408912010573257774862470379805380352427466756642373490167333078442900469770656756097702326872539939361518963599006571424068504120673788348712513897708705174688736297254733119612893123764572032822392545123650213772200058335218853161765659409240703454011774402471132936000369771966419412299180560585061692466656856629519718354184117228107975805358576815148477185505594241873810944971562864849019782649459212823863994315415530188157944201577967759675567883379642223116950596788577515350308788090055744723463486734464995912962975300232729770043288314795413185756453261732414363085511222968363337038613827819835950833608628922412237674708203676332452678374427077137002369471139768306014997847841877576999273590499545312335706862117543764534120483680172077792974671698002200816970794543799542062615027710941796150362875665789745692850165870968939445228680345024976889762828202126562294065545104133093868223408839946494905907076548022742576892630355865962435052405064709903567925212236228715397362780310346402657719390999786024253053262235087616888876335318292353444940187999247133787006087850799042279505847155293633135498462554745792975388851157776360656911630835544879449776946676817347257853961668528069803100341801014847688016142761926742981301513733976080865611738756797071297968729189309962489685635720972255581717884373228008771745850511244780524496648199468602299782327300191808624562379907397894850681203540976415623958865033111072621976278081715447684298557225129156355480414216990029619582838460187059957009980132795782012067641467567680419769682063607999167930057909224462593827864986635629167318811723780217548270530028015316001071189754259644268613666324164596429942347812405304150142755280811024318457841564510267096861356550226248751322913666045974030203377771933690830628222204861523278653867572439311959239176482268032000454065148871516426109270880971716265842782611666686953714972236667295579676984448649766961872290469372838259728824745720764518207541244929488447720162556033315671560611074807317065188655899038014961203435697077187538352159524342105707217988857654740042822303277083129973039891074341052525904926389802128723984073451649452753052165152409738002156606454309222281810325799711816014097104881956414933666007055847356923483887033242311474864393961907368863905031677638084687216314756705785836249102042724358084660444931159021836732206017706076380432293614812186897516247268301122371507882223351768722057167147875063901084248099057182841126974216608925918651429696781104769585749398314497681458858439662654036854301585790489660538732674082471214531549653569231772104960074696351741083239471837462375346359286547300960501301498838484897327140929333690105259086726996284074756713312907579512320788176365117346375070725431263209552286223713500846706827951156738521929882913525350209374691689223673905537472236170719775775719890818166389371229937962155199029942048661917218865645484567969612707470845040610036638068615992238615582345270808069603703075283804936521215895872567399973289964101405387588332024895411063158469748643667137523058899477818246335199416169862611841350524749268398081993144518318538623674208947110204661498809068157988078429096994354685657501353294908872355442219432940259360886064607251817791611794916410060481810492482675131445274522716202262000936685261246627558282663289720555512818546240107778231980138094044367782369721437242318953974536249780261104628502852328280494390929029626138701648323219944728080350229703827860749541828884761330437241840947306357147600919530151816960766379124437545278174132319769045984298004712156361016943596241810528003144870884751478070248803727497620845977404015392333913241434478146755619840514714320872601597118890516901677342732782856394640892538678028791006899193776337385679737443459087899955356206841121068775397612368163561537776227794877325386634725203082981975140000275822045378222107112127935985928791088695611011356199203875613334587505134934034584260072723231974701344427155623094427679247795240092338085053502560523747030599164637229617901141043330421702956214756016434117717916991476196762469467966273501403653097595598272258037785609740262965656528393776301637917724290721244291539813952257525352291808290085398595454475536411557705029257312628883084581652154174298225045758961110616384842819601126620523945290426082490359407313773578933624022781992402145451060040327997485759420441029797482303682782038384085754066841410890680091518598452970939120836436855046607006546419709413507395072330726452118690547365609024111864611716768039839879284774897835593448833687574849794091736982191017615170100739330677496127694779030959540651860675722935779963532013754538898825547586318498586031855004773742446825268540778419180909084903276948093464113995553730953764889000943378360995139399195290622914061011211825615808715065540326562651649047982694605959456979233001735701006015444139252548991906488635040606646082353389804416186716224885946323428034970749254833208476064941769974307876469932221299697398053621139109402519383722347628902127957033175005369967227340379903640887945559797302922005879268103227150705112810254178777877772734881258368881553640038433741909508291190380723342501372797502883243147715241254697152781970994390386014734073869754951792318622504853567193812495175342124060922044346517637731447101863042379830060741955073002760589049979861146595737543830593120194990347413459663050628692540256756325189249240967068350057710689628011400137698274986743469829975726384564237741953382220583058199991406529514229021382215643080020358644088877098651150686264607213072899696939942906343308018874447051980591037217753473831401404014819174223315828408877152838773979013638254021096089659533212710926704681354348655476781477636879395566815033576750846997138637472355945257755278172653458027220228612660381983308142677595801442600673053477320762506245494421165093544354564105203950666814883729047315967793803921697105474276872102962266964618049304103208698336388887089731026443740058661505690422261369058200160752891207313992357837095378176504672330062545278283635581376288576733965023581571934926839828586350924886224110118740045772458869589620634551951884649960760878501366782068852292819786605884372466983323236858566282386199097980758740366630476348955298251452518892604143390593727468862499741110272930783742077233175684382251194252645155111264197109569577316964492564585675822796460514541362087944454492357257376292205558382071890566557539231807235340241889809145253626123543433924362790431089000349904531159482620831909206485278748589239120518257411813326703755857477867417665765472676418977487817501858674028341903389607621645736909686789348754194206200154043783930279557011597904876824134324790962799634814244503681036196993399808697579826508980116426215773505224639376433217378678983838941922257554323579605153058215495402384621395383037661030788893457868056974497433011353433968728238682901312776512909496417542125347277141411663408964251628106810079401405530788820072108422664909001486362052050990650877470478113447975336491545853580890329580008004191855632267819379037003125982806655814384759329930167618861848549086390066664922099160420858453162929854516567334650938471215737540844647495753459596022912022284290838509339726370467305548110337141967737159515096216688162148322123460315161839920292799091092342221343362985825886829950775076408252546365010207458135915995655105784661157929878721625527349500371015047810474943626543028201109876813205593188525394688446160232488633852415041512080742763029080274099536615597522610438240973595081125906392427448604301651416398876466278325669255597072544869485503854050978838464068646223097887611713851881690063823124589650692875244846276356741612619928984269515344913730635659008068901385302046858625756601082162548965711692819798935670751764822910233112021858332873457553577768918772470178845146249698063737390471355496973320493172741198187906043464804974737939062812725416630740722988897586970205627923293646784852521846086928013356980453401846739811743980472785885867958008340334631121039053479906392380007134819320971319399340934041360175541605376539905439680458608511486753481953624862891514948564206073570713134055227215802745943546046993249936042699011854875305427022898790843540049118828353505984229976644726157772541156660925323132492397377301902273222682734169472374613095606242333630324361514761103902681636007526831666449614349771162633658231238496420112132509315343785351334313626305500589541061317981602094203162714281460666963818796685252564612850284141203062695878107615323418961530334729517710983865522199427492030937727174101119117740332180151876609210322174081882784764123109405532523977408696892176815406997631264144292936871993111714371269223846036069242165349961035210596214076364438940924515628733127578187348975807688805030807542196952924669263610249835203600703524776770937248200357387406737875023939820874313351096951328263994821945008361980055453479328002663388547615454744244460363994838365803327693224506116312311932639405218813627558704377359523561588689553766495627136037065655801868960862397005690783004217619216408762666068067974712649836487167659123803578462182156974182344013764134206445181845386811153658879197463662425777913953810242683768520159798045797438370039538713297701021919544392702915292651889253431425031154122390402495441866381147002342663627225176657319109268898073850700918861001133449637896593308379056152350971282276182521206831881519141787872179790776693293578328872708099321078185149919256271022339133536883654508075039242313980216473987355975354333340981712758770624875096072848216493666631764891034858312217666173563525352744783376340897861151704322005149087465220607858769816003957955365649216876665999755757655748177466407885129140687220721820385373544805658780771223150799818381684136088717597071792112116993207032088284558793441981899911772623173437672406371508265404656268297106990881930739085120847910409319119550956178063404963836643975988102463728812223351627665552237877844937493495268607653148496469868409427409474829389818898405330768736114197919439054550282121416634724850588827701117129757282499364582373601044142252073301877983038918061630292650145825185125099402419835304932878123312611790462758859959595386322943922734743333428842764238136263618195827305861354223451598738755020764612454528579375414051333999528698101644269343421507273334439235816472958302915917609000474886374321067418214336033349761755294189413078048769480628082755769596126255261746532005305017056539138256227767525668619688170441881456520638242499519183059695482402715488750360256658881116703308571353182567707843929556519762718205692512283611116751030050110792113987127644495267897959244351133670571198477031921365147434367508920980852155317135150613471952385538297223213343653591154131601516067713533648423325222863976623271220941723319936463333813735179472486922424338446280669878208106244703168067122564316994679171282012306073181384892398562278552078223016722253581488864669089646911914439338337581295132405838980297087458270688738846927589609635304039990438674576489700190635113188578037403397815048271319289684094065123895556246641110721866110742161992886811870178220570521094838096992789708865769906285711270352656463096272314438155378619449519141653930416082553764245854917523507178564974198679107785780981965634534668782748506939915537264364427794681512572833871434416882977898124922881923341246143672555318422779167054182730015315394116883291964057382563058281469771319627916605189399914687876687164947391508314019241615586309075439874824670764240190624079002467231558665267788679787181934784307679084678028126294047033056927455037801314155394995723425148483614577940226599224250657578713212039456066333518331896372440052212426383144643627216332845981086239686625336672960014805899361528310806237050723388185155531461479441438932357561352213254809473959112841937411601314959854660535657282180597982351698607437500909210404986539611225458252871700869706257035936888718557864180845231760161199894291630538601912614326853202792571992016773551577212685115443502499839295556597406213635891295769456681731001634243691991430443179302124840523002119122905355930075752446736814823537863418561369488258251128177381347044880987856758624022966752259990127282562674317494781855445000101688282859059350830902323914058914678709211574531774693377808745853552962551298417545446101674707985139291181951839108352044709455709494722641229845068889735970453041025665207042186704721434312906888561580866561612610789802305714404372614582890854647948885695582429263933302010827540757901170405714209536478075351733005733065806923115322368862653848527519781486295197066744989274870881177993378493772742198803771378026919741791124225621845792327119997072888758447731715680198563409393351342222625907355699508173802482182779853360160910616837184652488090518326033898836729251639388015181651321716721674660666594841757944693212306302306998372534160637246456057132935432953998175691529220860456827618741525268383147858812396532058198943050597271405262660874147255394982949851979830759126113989967379298710527918104295296219914325010452261507877724919983562120975826623440955418443335983454241485841924719301749266147429002226003528008836967645068541177974563247727335863811245614070928965589287578693239750945255518501033996319831975083331101575893092470844708699598231168687835353247640060745699653914417144540059009178031155962038168810552595083120114101507460373354604324075079798621737303961198144048983373412186022735325833639277193759398113875225618376549111970801837167590231523661663706488107833087329937006237166379335979616336585773959521682093073883456368997696481516979130652343181541910792841065045194025532935837813206012634817040878586052567479553330944858120191486162981061052980529417613010901239511973737546624575292255267905693282573510701413870056871256918120518540336358366941035401081897738939388485313102392175760114975356681318723984603726426068078386983526288909237451809759595883124900758471352238472639820621462299309846769415189980875950281715038894318337726366435502071582165238479246107579807842032350149171810367980825716235389999487539252580494801017953170633649934729317929658837091778600506557999371136933066335569870496340646060531147775905532256822396778880173179328734810889343480704236542108394216368999298798751226754422220763884757309264684723354605434197245327715116399290653332838828105494665576832813728667901092408723362359531753404840319739285849906623778641952242533620543642663986605103619677909555563697505545974141668229296113637231229978141867960163274980953367418402912399687642561404197424922549380844798280774099553183434684489749582928784526368499115112824003017745294319589820680636799891017519736458780230407491467662156246882887220380353237501017353711805170884739003762980502679326073977064570315707255563701443832938940688973246291246279304170965343631035405023617450216652423911379508241973345564020376296227746364798769389715572533581302453243414876453804748420801962958229700490005252880774784632307313238460441166167440314464122182609316456462011391044044464225905876144523522839793452546309464501353846328331151369776583419342636003336148318889040409574272710067556045411019667049927855361120656009938646552412466648591272850746689894449264268282834857523004995508060158737679203880542911183656577512207693737317526446338179114469699092893791580803866171906030517432143277521549229954364293977536768225436055747945657489740293861655927729426696920095794791338391902591389018253892373078523536463684772877390152574916669325750145555983871040203740243938261416428302911359330856401949523252586990235741994675955352933102775774779148915436574901788403770886052120796550251711204593426099400864064700932955792228328546315630538687295104579088433361713183995688721201690986068545077960665535666281076486507885884934041733118804454113833187438318418381302359797155445684170858593051784023070190550694389425758843126340874410703134481499974454155231379372039772459253080389350472304684313732351902042366872119228991744172838081506107613526018835509301558768727285112899930155020615874214435928364935890331395924059028284114330242906767582251156012068016363968607543720426640490479649467659029751965680252378674151329013237676092598023263085376214228402958290161489134096415086183358717156249095540577073359785940632538258799207374339903360689703506289530436400730698584494206905835544701140086231972888893437523175404545542845425549345471515703469235347836684892937748920664882367794775468561962770674744398947976469811278109653646616289935209625934543799842600960891085083200727684972835105899032214052670493122428851545955221537332436558628947890900768363642986196512907058402131688880154428814664204059123064901709042851722001646675306028962312345051290888125413212661357318372923484757456622476535392288814989844305795847270039910159186365609243133978797065258877424610758619443677328318315716231455284782207849576084993903561548509537316518106486837883707271585453719657006805954593170901011508404556329853856279344295941855376396127124199474611037332663878251071003320355561802599428999264684136538349052349801881187134733538518938929877901301320613372160618063351166401623591546758813861311526526252576613957138079504907845708211842103913790392046895886857984955767497327372498424439694278017412231701681999250680248652356341309444471677624472920873977267484995686142616897850222451736449380753076481795358989888504518470765471288166122136654644402386877194184999025289589612998467595231165558824907062926287938579226797342428776458993122278571453432577060643831488011668286752754401516787356275443288875372618993365990448931046708535648704640766970311960894522590040866066169846791614691923003235326860157972922056581530285438790215141939674917087069857066699923862735479274797429066266109752917473990567084882523474413307562652234854825995072949140377972950177740904506728388902235238179213312441855655002986962915454678457917636711887593411999959389895062059887440704938069620211752916726560882440476605358346912510056062077649610163107350747474873465250155429092711673918347265964656387395891258245509657272335055872704316047253692414681343173761622346083138896120144344964356331964814920399378506662294141292628486700906664235974309839464670610571880714651810854532795020174807123096324850393156773582629743118344624607785557715179971985255777122123224481445395241828894484167219170150028484931561400031521638739530328312464230854644871324563375624472880016368623488837875513277317415911046324229409454058856498653149799559312237387646553901398432910587872168937684114943846061204079098222290272867056780494733881459522208896990387869728125356697492721287512672468820005195722373012168983137764976610692885025984784393232481569711428926014893180113040734080167138297145207188059778182350012925868232071323945239341643920833268693630239950179321136981194156814095339101958434678784617837503814068522283954123187233912170837801568003772433367688106122084642517054745893681038049195459695579181046970878136103644746225071573920940610592750997842979952204533895047362536340069878460278658129469279553543136743192698139045453049208704696393465456973701240091513764377779497590634972621661198402784799961302402941148048761638082695287729650582609000393662516524579307700496574231262678393937348527480645875327660430815096054312611340700060953472899215744549364017713660560194899890100569175591456582597427402340170431811891717166423421575791821978428109800007193841357389371678229458033535391226330168602676393426232556566833742968454329701109492729550534871104704869458694787036277153435555866665782816532906741414278175351038521065093684500954366571662073397069684284672301969102126124363683047600567980138937242740739621607533496205947522000641061572717756734452084585443957671019102908563021016836270566438921646491662264621032344107090243073197391612893899430838611458228109770058927512395589247599600262619390257190673051199460478595785237307242625429281269569345378039849062265855235854920271425947584932727696426393410534549397367104049580561592432518096072474105117941585785899485297312889781985643606434982150196787852572899433594967775262655763391068707205131119876731156221073720390027426935455128010303107449148726799246074153985102614337504833108650295928780369375054958644320897070429415410405584550259638605382959029235326598046696786876372157484891321025300422961083304697155771527076352470391409334346882728104475349733795571197242971351807917939768647892033758714070904215477402061812947719847263573469531844453014675848296179249192285337330452452653752834166991630976187907743660741308590138005055830382274689963638190837347554345759434514155257100475599547783221853971608435630508765332334967068852317674040485948416526151766868598007113837467351310053890079594691387260249412391060674490244699749274815698878020877729699641179223480949898972951888780126171322130288323776148317946600197451778847002878640502509062628230539190984676650869658431999130648310698403314403070815984690009847567486439553192044253565464331289749644419952453473883486836334570274051704785264765772072392585087289285319289671837679617929638115493730543321068681098540761697941463785723870722568652896551665425931448160334483211070855171989756469274818137427480255696853579433219278823661529365758875362579878252308110119106712661707489509513729945020173385543551872007237988398898135803425585100834141779475234924537981923706651227812195748156141937810104591551842878285919314544550745253243128275162850494997322644803511445382818994885383626896931624020856015077051223624377868091380902915938942109311163524059230864606967171075841541008277340300380229267482676086871645684154316221331327829646715673165343036276125930345789939359066470472386523007338634606616215940455023981977284930983126303840844446521775701793230782823180974073394147012308391971768700223401667380839781229620585675836625039583806139711087806645703617125958678758469950770507893880823465967947650540747085098640614370635721562527508713293927527728210146879492310860431854838548180256744128982586130679589849468579445515639616541321971838068643443727669521861947521377564565341013573379234859213088580100405696212488369520660448668029202378748627788317688166916228058467558302203707555058931662392843303236952554738819565430613974968065287089465696104536640705087332711905607840392763069781690409334556949030355213806409446381921423302087710129262389633657602856342313149277209139939913501926310852730777018321160720276443261084986287070292852170819378848647592997030947230740363824687742862089736377296829308226259779551330243048548091393322209486123034710866459813430494908172172056524340602741847110200656475230756455256847099808418901614122099108630660830613042351021449893256511731456567788333693220980025528382253648571825109623642364163106874569271949387361246247114703443019587491463756975240039763275127451985670453030189607901837277448199420612961929826826308047498781707303740420369452416238224521067450715318068361737930883777340112482634413365504960470536969475258897294424894688448138514923310459780169183923648340194238943549379247448613754840123555261195591196636652938455357199020986127480428023462810724577572981501465106619320077786309006594484728548829832290486201230023759173330845012089351097254499675924861454817177249644832585630463678152451721931282253913613446445505048495244892080758901714763227929884392092258616744669215388787680933819901079111849827000780517407549521261504899506362229894556034673875589593787708002598414001171322384564081718467524137269322608605509497672765124474463566656718694850243429324990558868290362177998521390138306769328414175765822341000668369043855973892681526763843592610076221611616056809863168723911731308840597198404983012367898038059123843272293688834403365435643919431903102974633750005083051414849399696492324214807227658257321851276589280765298641730692542055880881452336571722417058676165398948709848103037393642649506574026710761081280247764122419367807639365250029234753610714800283410754669986106471847992729340890970424532748119187987613535172395119161968503578755285215871403751526421878544419521890082116327575085368798938797335317736945539786065057372599470524775668025916512363937306045698010725339546530486332550459146338831182957884499809488482562349313345734857836516674657649389104888547530042903730061502190824805936606261598161871025986371404770917238533813891348256043794743104635148657957247332865549707963545404693810208269171794458858274837467508696658332730390782717989493854033703375837447385589349864343945443111436081900962448077457223867926617825108855541230117616235720703590346558778194425357059371515317902338483151751305708817212763793662732887767095284450715141112086007338652944213075415274192299232397188186140337101839933119909701248615844834624758137123897552008893636045242154882747047618306414318069945646436441590651303847364481966529639656099958563089155626871464028344962989531850130806167978436679471596305733637419714936274587133530159683078863141954558201923966045199020996680868560288548058876514246749468733508546377378985441946220886294260138577488085274326041269849313304007644925079681723717160987701000783810830960907411647814558462188932647286568406995145814410908370328613182768599468492276901733086306016872634701321569110737151839773492427375117011276934624064250379985136120750677747699983684338753196260146613203996575299289792806346798056466931052949177089215915889331451529264944246163771380561369921397294103009169726652625281787711181702398789460300135219638202788282519329976843059357865960664441680077346248546150093179641635788548971407244597845883168491509278582233451584668573570286019870004793992365219214011559728361504208277476495174839581987536354434768740244509004730423310982684336205611392684388452551818893406904899005698437253631503073056514980136191109508989355708642939503164118868231832436548648654394029067434669993370242020996202916310579712964360630767363633434434180909988531194544116821867383291287505272140532061186731127524695050845963119385708892459204314899303845305885555869291043906106238843125145936820048561804302540335662638185265526590702227457755665643863949516327746657632929871697779209531194399557269131142095501444951541527705131108376181808687611014467001041192582446454115402318737890978529676816107530536611819201636778618295464857053346037279128366851392318444154451700167169715948498102704775158749870991816854829941563060494770899912761131489461279824699740463809932979739656860613233017883115337872525074515637023391914755351435089203138266554123598301010826806169068095243345016097552482846610853999906491649669833097647876691791520364653236465970986157626429057668987377932231050714425194886849817118233509675015726212978597910002881742224439231386749640343425144670996220353367758632289982839476951530202307061337933155685274753595265736502384483041990216427305935213185457504168870490308264785767236456671768402818229189070710640073985486068511734335670972636774420078554356383707308688139632965547840059346172430424148517666830072395760120508977483364472573940490319494870268229364112536344895460981090633882155895385414943238721381134050411967513598060698058043397326297862630669585126923515710827516311551503560960530986996168390069958680171081348013490178850053499710062913917969922291890685764148101580319377080400361769686536202768562081244619881751507149557715629009519345800307156727872876138454571555257134706179248298990210673246612687905423981917752237487107748964816235487004047894509528398748858174749294964283370253437457733650015336485989902937108310143211616838023424650162956792490937064191929171461752021389137473936064873204790980128184620198378085529990126416192841558699866587756217184349766790925834897678744262281552341119413569239092274435405960547146227878735007747105178049931500621032268700262077192190865629590721305558600573472539332448620619021947523242999036179942214261470246468293314240671976589103356554993244875778585001604599280490492929704067160548035299904829399822784815313766605159264307211797700474770841625030735480559806408189523780589874195907117622180383214345589941546272535358847879894645980694581980338734798171452913067092119048590941566097909458038124880414234574860780831624049564135888771397319924118126737867119154412192835445205325429926735474874825668574264320406154991673221697961414287172037997138082616093192730796471775494660941910838838229182040286174436397678970176875404489359362551938734921656973416500800444190926251537340332878212755944506217088537600277950914313158443379852075112971171840771710036247992006084985462346659012695115331170951075144993519786343986134333984875137685863243425489308497586664346923394996698003022040742481317858192651977394969144954736403936066199347299669778624141470992434142520109893923322809954581994613607675989894825867406561650629020714639888401978293646832020590018307426512402651840775859382020923965586723681606736876279595332996166611130135577440019530090483941502511093775364515120233957857786043455673135419620944269844655066866395640307278567560135135529180861674737156485911100717660316408407116191815254468253060025727248419754296157512136778408601118298291099933844826784693450833602209160871294303222341400647173511898917102762690512171753090726340560499841282083808269213045406217271310693538725977070288928373006182045797708796247246762540435994207837436766155126507047442884899758265844438964481680823109541772383373945865602368618354343012969270208078835970860148564905722519445867711926540345891282359755787259775393412514426173739298510620472021222362817605889754056806537084828308875634823519603123915931715583866639072585578826030011669055963076699230189044027961948103424571082988532869519722904169924711080586789320497298028133457753839927266375931067124162773405471314966455262344868070760845711470984087329256628366682877806776606241482315549240523290745028404543935182153536970272416764034508696123710686764561158763998778544327759793419038743771700142003860009923793028131636800598977044408896397310254412142611835863862716072624038669471766664328469226173307467818558558529474489329953096175716577496841893959591548658285311626622163314524704426641776276740830052144400445020103719643311903802095037455578336965819585963084259765130784098918827675286625325173677838033833502110937486220259749330135829947021362471811919042067332002122918003823289109400069377596606590023946764032300685791074168715922374882002567595528758155097917323036367261122217453493075496924171406872398179746460928677951820252735518800981763447366850239089249495633898886254146903915950243528445316233913192655826889654263575313839429393277603060438944387376157094545994991033859801993117431318278206140973808652439750618815190527265437765557601766280036784910125452356244706979289358775408358025150365972285552044178620234283820220249992301607376924671460274410959213057433348745379224836409447239868028939140548121710729736871070729011721303179961807793520858659085431327324738998973104847702215639918816820108144506671767104896128124145923597686072897588343580305530592735027113230087304997620043855100847080006267275895710776215548571669895928273175305201859405793122480273784992768318998800907024264782780870254396131820122918521122560515749395741776944080227695896772521118551996844670489889471173891893543628027665890983515253974668930821384239178333627415625074790677671950260169285021597432791102179225585202108426434783875758557188465268698738203957777418881880853459779053472705916857234004473768716574830889776753905530166805133104458770101687595952820919973987762020933063730040149703424465750766859679007148065575757479023842978692311921593789061361676473655499121236219804333104793414621836381816197514353336592358824516504411479166266857482895010655388120741431311615638015044799490601946487997677684218720476682853115936254728465276486039857292653532760119943213520000427591053480940788752770535152133962645331033699360380406675352425625815014345226882651536382672140331585109199772815125321443117926003444876717481429117939175838864308340933843979878224834458704868211715684899050920563358337164228842331631283106673865983690007854103097948223440103403873557792105428718199515000291647889217742676305729069329142815238852646437299864801180753388776268683478728467036406992435805360185083638806969290256923220275442068944199962894339202041693858861696112192835051228031228032795517560510696716529949181046454705138603921977699116279563191973604148041560002634696952993761239964207277068731054877693199480177986844073059140910676840802739166906483004457471553334077103671276855776030208941048182216645503065389690022936614674995078129134257393760079569404972508997274114933442065694903412096664114353299053267913049935953122266367800774936775398419193098910091353858582071867508762972112438198649487605759492045394835669816189974228501276834443536917000404549856848562055561700392380678561756041447151297709028647540309596579302249216259651554303836161951362541100617727761073694372320275698828712980206195646469127238266827283052522961493227517286408921704642466006680193398835266353244143819299782847897783170076077851870094395570627561638766721966258513073643523664377695311561104544699223114989499912262957357417161202202196791959721863053385980670571213271902046422283198470661787264925926453707173875977832673807173875385754538819232570287265389501176141338396522090147223892336180261983686056953011531939401867371769161635276790498797691460941591207664703550959905833981737616645111073449988226043652266954214467366142361813186321652286761502013351305195865838753139920702305215037485983753912696096018039703597706702172942668569548340019035734566885987940515889447800806708624720306063374421148998401844065382742428952403285351775764166889199170819818266346970058558477844813389123796050879001325979047989597759398521941680605214072353446609047736503459195076673222451736984152616943283587800460686881201325036746497850198033974337713404401792727148248665968034336054364477630684185187290721797621640536236270256744021910514136470996903997893776980016397936025327233892976879603432148804736002925511014382457188085401185406774398361422950165548595993949824086334236669274000808184298548847505443811288556510383104960540656671398712119721359039230839488199006729256178076349126701433164509884209839502865142735740129723746823770979655641486926492859368058494517892020103918228752629583052534316017370602602251873516679045987933264994063968831648186998539254600728230316691907669855261761690961357739885906937471458444511174233777575042839177931898160007742558235682572783159990520435789704394790280405909483091911653157417178111572356950951813599634925744096650402101052058795722279740307409233389877128666877377273818293080393408854045534401340218202418015118732086162635473612227525683327836292325909247006184409135510676427881465535496640025267829710943653548564376310759658797821774241919060180790441281846398808830779480408169586812904161398620356089727581590653149186031570561079271036067465835531984976075055156558873953765696068327258824482314785657837674661508279867488795599289005058228943532118738842679574389356041152182693570702868037759861325411578284518536642364164435069327432544058553905399566123388014611283380967755568775734097608445902967620607509981862520828376162950287824612478372448507985700506809258503380623286824126964537516170840277480829526009915105421924470156066770773794814149330519581569718027742716320222507433232676743739598744076013034730848727743638951960021228062016295770351915194691796222396240109864023133744089532261805438552370633245751451367098993439126418112871273986404306135637219209916098425334358123005915700263175633963760479413861147962166787824235338020651828732169504020818401612984155526447468069201455524608851963924658022440881275261797124144124350064822296251639769325276956882626032484652938400189495174555897355745491662941236252211568542855851943470254252105329047464348149933476450063536501625089693913264146340949798856045983816838349732243382810254550196829679217058210192266861065927388646115173500187850898428134469962401661468889812678645924354915131659683742625080870789635723240095632401736887597982634441089654970552292875713797481002526781749280148185659713246573938150767008232881389656307078175825679617650901634781868866613852232398080758086563679842798855195983211268945203900450684112678116347162316303225370157209863569663366038417650268706965249336480117975047205378324101169637989818721058906352707382308777706449020255643717896967147261405176055906992391608487993267864412456977537039610893718130817490325338544516887555490994707639009765083045184851251665749682601024625322933434447053951521247148454008440938810180716719812019568710219862443337898849082899885586577959771688059547050960776038128552977034665916094776332554341009227792615743872166784180261256668772665045707570793717903631752568175414825417463532282667104111927854688711648984614379078360856655939760401899500514595954244434958082360533525062175329324527325106906987497200262360594623933076755420243087994939032343473955788293193758960858961317543109817402198380869464309992447979993298653807184357799610982280028781329947695897981656818283008172883336710776019917842185866318248510433904936771696761319677666018365634221411176182093129514059362879126665538316638580397737472859025850537596033489494579907475490748172053278354552060505592555565916931044427586929067425312930153416488445502529213007303041401965763993868160905297191979954149469367144541519215032021277032743491482486235265928577109744206862018289344653812138073304445790129150378403991824286483414054550825218434894000326734114188246999059454909813003093124574404442042731103961973176593094545638860698634017492799157224833743600744713571336681929089281535234441778997809938605208611911789832334448293631725927707670098429487828440818853571092694898599073190801408165103688000961073269771788036103209315423570661245726464500664758252658535261495391031724539652466200531587463079495266430482201675928954691698374810099117882762433096351157496500899751664025883084971713680507504638390220117046090756790402967720094522036121451673640484913502055866225722503788025729124785367082725540733733566200587931137081897843626672888341885568217368693365195951930613691968270615261671655161138689197098535664219310676476769215885762505982991980923127949092955682817766900847626691609658613009606445723926842795336318902737032708603989164630825983158583826208555498195726552821601915033132975985161133778122234507098481885972295752891591647442225622955497741244160413904914429094226649435079102543381751648840063760352261713976157172062687207078004068214183451449155726875333671347438020240830494878448094298118925774637101552106931389055511349468731141309733099795783104228795231299926908846123323485069796730837433700907196407350358120584071056110083696042020640108139874463624969451649215107030361021602480965106097355190792358814568029280655401322540265715042287571484452634689303352802693347865841842326668520643273687328393345933693088515444002322053248622768946600927623516491886246559389491380705260486599042114531136979095365114314650480410209133718097376839982586259182308193998905632445815988764608821315805955867070126544184810957945519657947161259836947389296646449172642314845750224580795115383066249895554572547878874593511889907379770655641614816963751337570127851430461480448900334358390003471412680831676928423819267163616044567104406135909749178528118552654838313583672356354653894115968901621079625669591009905351058820396049920493176686990610990063811910430121156739452098719531497232407819338337664079295829776898221957376925250930889770486231317534695590882030162856570290455441008497021930275589447469559047834796780019444525477516979434762077542969613194095498196259500800455471329926727117780607075041882330026318465279819348342756749795404096482378306156828715310143337241271787026206086997783669511577560454813736265919087465405623189031288783416529177735078438062936867491402682635845846222785377755995839390030237586086557770524995366902303980188360636392573676886101260626834401128016033385951227718465741804577140412387211973273351166927647795576992746126704865792130232292260963747234715121243885406067298015314231723752535048241641170368859644013759762105858186560093193876756752977430286258533958261915393126408770210343897337286314466271851101665058931736306555149887390980332448153157176939467869298639345705720745554835214856319049709492271609129846535027187003914028709098251870731378304969019873904823857370701043387645133350826972508612062923233399620015924345386449533103636413290983672494263394972954767153896925106291203260894277074477640470078410014029663326813869958275192702265133090634955485025619264160442029112327237859296566628319131713489257060508529460978244813245792839434362572268288198519570233140037570548032330076462404365243229056179982138523609813084843506276535889400583715074666996774106896090156984576528634530011782761457716562782678595390199278035249685208196661976085447769904896324540316827140049549170759427129975719691773092951199777675533535431983393846151061993865911919919050819830187867399077535792533194113164558756286996562400847080179504391149728800817743922603692792717028958871266026100938628628437717758447329315379348525378887045069963677894672902245826187311011570611374123641229975084780014929729703867995114077750991210906740689328835302395385517296013190724632412216127012824581782937015420390828174248855031572586766498674847170491153670807887154117405046422734624248463647116549898681196092867337320556509916105782473324251819722837880051106101197140879495007527942448881859090839247865536800989938988013455637259239843459305565895577680789372590448543910131408004721943879527543590863141765043837189686330750649835411977235473138159073777689299549082079411368621001048436535064350343393823716467890407701905423196001168522078583243967764338228825343723683284608760217188640553809756326695322241437649469642071132255901699808494835485024723697462004066281779918990432626927285386057568401419321343782076983371075731999330554732549630961109996121951548542961794164873145507316392234086939575656000244974217337077555633082983180919688501373138495451496130729397712318330939181374696872422527585265138817046320667369400735847931609347227109145341327684441705380534245269374847077762517473570971319466566467007023498384369106000688697887117449237140499261322811800759594734785522303283690948575856074749674472121132274850660484381560608378750877146223428914597398899420894509663383294953370226734238432113233252268605394993269287944634603952023079371431487031034820043954154462651449513819930334951897793183631255602046487494781066023352713716624584389042544443158534766700557505983072901632728115403951852345205042552027745672334190538660096115357218976699742402787026887834742899125118975742759331247797405161931470089806210288018897129629019223465248945827655786434765459228848243999117573964583429201314609826457902335400268846509434462937153054271571076651319135682522641377078221627467088083309593276807946532147204293505492016163480453093968797333856724601655651767058278358356671054731604491619125417765743863586899086352885305832831199308389136528373155505967055443326517989943881547404669007562693517296724538916780002335162696968379287059621305353663727534139650162578893633882088900885607416667685643682601305579411256861429132845922928976585410791404422713935571116790892276378892261818242010648378790219331183350225542294315202171936717083292619553026116253636179602704690120843157623288745178804670314543297075156668212510901308519326171921974746346008382635462717818092803436975868241131393481603620535109291246138168564105814574222832876951957906148894971210200806430099588734148474879606894121569179857468398897692646534400967821102370177813451185812127625721558227509768931234750741778334950929830521758268237994689509051379821407030729505564310811767371479130230122106028541422930753995622823529967095751881113295736236400071025551930519319113355045125280079798887861525638422004462991722296050208214504271921157334763481287021326859380093091303680339345758251443272832262877355009026022331616723328525347036736472910220303173486091071524446558886851960785636397160202470832983769080373305509214751486289492796731821667836147516929089004901692982017656862550686221389539198200159609586937979233410145796274806147706515652907531487202931787925254451747669761974822340182410222423004807029519055127661102569352536290322566651874044789562538082568606049488209018840942367943296269679585973391992266600031883580916479833055319356903275892513941284866788389901332360936132452233762198442501947225886512466729167967196977013858925469563535614976665931480351319847659621478039942017664827700032499143363057950277799775190372349213164703627778209196988105685113503456610451966106607557768726547646754492021869268948327390721169086790968985108218039533571926119509523136856072267436740802119858687420985466946372730519998184637359668647645429376279483455866520131495896550048467417153559444073132117590301598775739757059835047733742958532593691303660410255105484439804837918745902708835814085575672563981307861464948587249023209767446161170607524085219453709899282263739378739940823393481367541709297075103306365956921347093165347621098447207194619315733776301506828066881129092058647161986173563453124771932621164366120215416340956368716130343454960249568787601724263349625406539699973045295902487165568215071984769237809618990017474734228674157033440719346091486405904286600633341748637388776272831988283022119691086291913091536979598369317390031534200673202744804913913453371845436329095783965115793473440516389922375003116530461313522250663398185101667450832550872343689928600403464871395527460773685375997518170070283975473313832797145130630275960551465065672561631503696912368031064618144814549378461790306545802954022590282408259781447981607481613148039072584297115881281817308911993218142200104575641064049286468829539595243859644928486902262337063910379594166506940892997038555748691439629875569634133717300830404042625475245132794135053916989376156457448217636237854042372612656656863016696886691245489798283103916130872533216994638314972223408662760283858957260706491152310120889171327452142728466982806709881081992088958866935031278424625719923043243863397890716712910379419036280002668281297854530968586099242102420411491620343142940084268581710491376966039943686865953137031050131064922595708603228238403554672622464457258893161431278805711102311407424468195637640219561558871528419313567820906727828052371828854865728025296769733905210061545201263716371781007651225456499899173593259010131993526765725313573139434463414109850396995961891363801961508304113547580076400753973987955804404020464744657421014492992666581474653084164624054589334562590913314940402126548141904481125353781787084185498560470572497766759842718607199497165418611800459261526819200457969986827995581440478901922919256173645561321892285275175775071884778570683500912528370535547719848096426304929821841445698333954808830257094275397578642360894546887401297394200599225985965878017370735041891655558551679583360911828364224567166494920362064529613313461532961116699427270040298136684714498038052741549808990663894386921127006620673599255926007160418348469218567346222353168224334037522818643858159085198418295892576741961940447488951247872655808699835931689462885970971469035929754454564629840632296312494040145649673146871909119193937664679004579476687520448895455594884128693158258786414693097885346156407985391549503056651650386345153012066761288712975214591407162404596959025762576707024182823809753622650928698836348557170379917628264365931412062834776838410405377917452505853911963835463103764436405491316123160209243352445638361435563968612428801090097740607067193576048726194708165104612030550685206083649215950417816513314348610986880327103141047006900340292291542154638633833520451598790186259056212857650603422698104235662674191793853579796984665662792226236711526102989935399703884267810673053199924107123877577411882712793266477647486896091381655081500247278712581190654921149673963066093611802050925749468327718958076879817269038579963053363009241357574268489316312085531777445616643246245116214684958706641820131233156687837498968766532323653520601164696651842648542473812114000709871220161370285673668797403959869643139559448782197880340089100376536260018016110480444575787837141264577241699094878457986159268134973631228572613476947433562315556683237751032763933508793042742753648622336960919993834330806943871814163237412222945515538992540944118567827483514247983597383161589545240441495625736011893974978631543427510155303558003351230249857233116242956103542514324714737808717313077561166296578861142191060711183408712300806256828403084027998656527192049589631228692829233567603602276664164690572188618608313728925669322768094200804687431325340610321725602992192607237068465308002941202365966199815752089471309229444155708841288316076835610062588291588986443657656491973628024883690014051739627878285979969152201962489488184837778868087973448792372510468269112265335175802913331475949392755525104294156967592693323846966869963412481149550652103039389218172500995785869227043723347172505123921736132834396394280457466453603568004653585746827892923139833145883837193971681702899441030079716489866978201498971787441690601855546050696854905063162691334997201164937206572015914090894661260730216781051642836302207063245407317723928792487626489822159540939759871506582950172604646331468198202057851070336208667638781962975686202686717330075402881619280412762161264414486952010467874152119970250875182192235378889044909759767985985013251087731226680733681422272407416891439184472270221347910984508705450415934603309174151783274018942335983828448096193880377259088212204695968451048722951194096819082400581140743402262328734664150731373519536753652915542264600991076597057623909137864840629243954500417977009901795553893818021067961108904116528573010706340815257991070460743844472617205888743967272512694522566179943222978194649067051640679091952136404051588011693607826545061643506973465790415477002976449292105621686782665359452007838739741987710276409768021977171693224553953941512146710109917929507288192278803777841022184553717495410082999088698875317468176042696546824289309918479548657425027456879075113362009609366075385613025951036001029735986210989615293513665422454871254008993989012667353845749249882519572417594798727385280019292872794013204498496554978478680333642608376834011502149573950178130685717131006311826810844856131797982069337894190396000015228775358343509200677537342875580655581744163159704085403827685824971938961042482760809586357067120752430918331625175390039031056770091824822751876964954467793572050303247193688622249530631768246407088044230366760311789550340678462686806039900456389987478718757415610973668054085171775598673945538985567251897556246565142402243005553450628326151485561433021630841442776522256353081798569394940094108487421128967947887875831833477235570199763627379161420446817155481298017688612851910463819843000054100299434091680278664496741652943161694018798878637491966369269844628092730284407146871729440897928760448939489036524216279087714014162390922587374708119425184409142144481931304865698304181537649057025654895167792886610848273113292077049669163254753780549148053810756297181213350673463379144437342949091259229129668319655471842918808508514708438828763477739862646934638844870269205529452231406944156028608705182048492990298781822002905381005334385051848133413286805533967501395266232996853159662612741487660431647094785280775170852525634286245231513109749953826604560270905201263205085619386683394884632562760911409495958121906917494016000965334046051866887951371265005151434654046334274198334215081444023247502138013708435622578817741248568179309966561310030453669947176568691243524184813943265999191917076404498731569987590494565061994540411815584774411893977528103522995695180617519131388326206703631844550649564450412680761421652520554497504650522684081615294470694424472506226896415119424816127512592929994181105775199589956468339716276522166481249579336927815347464118414246656381210054443773918935043319988822445175702841657640463697124293659842451622660563079907188623760885513218022536264712177229651616289239261652295593331502581827475064718000847532387683216846656346599604052012140817062892715511712800861056791577643619566023291011398425330899332141303004054976318609710244425354077011846203288202598942695943509263860541491024338229275288678593518861611364169832965961678161080346444588676661763439018186590708503312844146252477745039479695379875431276424967921448528196908156281998343002643892567548105078612507098583204330553124470892963574248988104386194973341539233954191814829545807892398333768020803350149465004214835738447015592530468775790857633330871320792573163818324115768578141049600369246733095110093958203493354420566205630500019087632644577935122980470820907677129102305639708254110670400566130416395664155579624399490392032216906272810578457156210628085320785813211526567742756200657470784286047378886526583281165606300141398537155507478025201986527522920294273506732143535637088860517530506382024598560771903357983181662044538532089476100275897094747620029216796680653355479220592788275658278399383994901734760129719141884422848515147544826191873316688446123446107496485551459672060190737571442548597478117695909099753858488607191461978010871477097468045825237631576322540859721790591704870397467069698704752864575206685174826029057996698607175683780746829936293957671724915533554500667734709130748778627101919269241317421132843543134172820803359565337156541626873669295081577823643353249865969414605646510783128035123032703856070984558924151319996101087670849320033460857754763379546547459326226899280762722445699604660447254968908980186757223004047187767107068738034050923782173183736168057830483629418591833009061828507857557637407937725231473485023286277815207276786541785428679433353077596679007373500082080997391237508660635245157664778124338075005073432714602952394096818844514226534620354512218049688816908958245800043966818296376679913780713708894401865767915682060884509538450557765859959883110939381217719308664622843774071955665014336193112542900304155113087544201115252233821981489410528407594556598927770889176165071015377129382556560707675603005946733102802160439129285996274810804869811922101594294865359326489421637793175271114189185673674005868287471793346478691124005966495096008754147253350456338804047094477908006598257015099772703166030261960326088199568235193020194636418375301602288328523538122360804823773494220468924671140094332807505448223339649100832846562810164160960102652833148156573406340392451433342419698942482102611154313240660298355944556873060949419295969611400594634892104755207428773371715627291518922275317361109760048747216920220663063317287642635872920841801412246832074719392916594846637517368606608667690009041936494638453891639862123657559248576389488358369372645382520829072726154918570317773514762664808760975600661707925912209879895073711829291208536825462610359024127368488419236180841581668065571729927840475795125657876145342308898209111262084921806266741334618724370476337234890385794174440103031723876698985581594691074521837492860200952695581835555488793414134599680581503907223819175670358237420838038724614375691397145876132287748001048407711487761609820353520445015787367290409221602101652736332534651260993603736468862978667837789679116478130943925183837941623914728954144820717361787152830808386443669338913208345215509593982859264039439235135790916073667671361287709707876235338232014673152177819642964229890382137231348221943980862824955650524438940566552237147803969475413255441583710548027915318799646948254133838518221678492471295490757063790504121489071608506437868150804626630383430557775964269625861612755132928078599376521398670644318481525116130258108730960236746963910577674200480099250167589277926994583776935133227677200551094565126839410542440789684231682077216391164048189113617328964946892123998205152899932219283735562259396490931888687091223345075391643277467481842067595506101239606627167119383629739706897393663899434225699960905568593248009849116105269180989886055787578397018796286547727326135922148693646167265570017083434415632775298161384371722849467777567397393931096539345660123347747925339238794818421226627769028820219162933898137677085962432065775471860031082245720659141657350292379450833975231159794670411250074424361085973911279860793877408801914005853939023751405419899457689228328609313175558609114926650860454193363341955117868094367916665591575437765792600765096242111383624533809030019751413356862366980050515979181953268699392504169967647575098855551232201849996958641924382204389540935831135025516698932901154128745182556524208280264133604358676645786099644414231161239505287002962903849273813930511823832667863047399326133810637613031647411943766013282702846232027537033998544437061646182295293405222886844495191068895298444183702193712464676573526806743716694485724738589107115476396144900957995999348741411166019023302175052339937989896362583345519183497120563404031617401295892515683839203306426732321592734995325669132812973767232902344255701230394094721699820840667446440284198467215373309508738581839723152345500943996402897258434607751041787438305438133202445821756871767677399459721950480317342597180156124808340276555094029528680922782978594436814909875370231796755137297512723241163035540040531569588765935848138312979950146187727643351600312934285530752750283928713882762445266667530842667083927649488765047368900110607456918884121114740928193536416142781558874375263570712285150876385079648261938214278915923750679097504729181171267034450461395350322811509276252302626083106740434207415864281345720734276032879119254049137772501606527915607919118399652415847786609597914406141031951098395062019962547668313956441571151343647395032756505441681060307530198759288227220660526828096590118116598511908494906488801252834310442295719361414430403649654711292896738920037396472301851584684862545339548379151661894828294182374245451982401792108741987122114552220164831528859743927528416997805978720402951644969345534582388121921241020026859116120689819599937786559308880810938209932045507258908337820545546679877323437541293745474744927965135309515369025961298805992662573114051945101052181981152507329271713531571285623360618957686961790903758207416430751270603811708380099041759212737673840963855506910378872813832836290822767753218454360905101503748106274211350984015505350383953170200109396949114486917204314149018710740463214785350606210914702264053943461906892563282426131656019363014115673020980023943494809573174604829390777856888428934246593850665261521666112129462954888046602277374298815155318061939552012623302792555657563904541321131562941651505015416407532201876748438431626429827859733080338871451882756155779912969355117698704941602389675342851003419239990697082554678102019364548845528475321910896187554901345785922896469198168574569647761630213910110007887284452588887328966340324101761877527039719385847160978425121001235865316430718644560392815523206834123886368148084295286019258697809229156031819691907240833842141429874099557352387762222377192254789776981573692687799565691556384169889202813684619113140868613971465274159425187777551529888770849602527090492369954918149420406275292115186933309322255357780676547109412367242242750792733370287001233968942164211785835024675704889683336012938434168865857034122548177145345752759668927968323641756560497233906283613467859740995797714184578576713844197433871075376398792098406841875453437283930887388371889874678274898760145634127350076020683368940794306632953487684078621451933892186016274363457115754603457521289437835060393619675821637995526109600517105647292158048742618881192754024778541830330725073898070048466844690682074293211591560150932402780873726500454416302709543963584024368196564424191955403221156323764704948514042431823415479333932605834481888267556498794612736250548844653250072327969900725262427763994941698717088433459430883867821154386341557188550932292735760074547334347818103690822698048363096456310698208348769779304310707628994095419847272585306361992563420075830311232983646181337222906964061926274306282550272651256740108942417890729180749427399143744832017225288051925994566205170421988989437332322756660901164133707428041318647231122100902167112228751399510568150254029577931343478809017613244380454270729749182688867872280888960488492318714072006373414795382541261919428950903871553146206625603295203568831319236813072414986721366843796226590875064149053036778121042293037862583117044434389476643354900408666153849130379407929664541417029168437315219597680251084983611178434835916381104427774073291406488886860120353081195886393602847436817472904935073443249534828491308432144341549120527261524626307378176657117042015127210932541666096414369821760918133071224618977910329386826371916136390802844317728028130497883736084946860087778916860013803048966675529025906217724552624553541193975551436970815843348204045989654452745811987949244677860767993044590919393752558218887356810568410849008488399146379435803762374215166486354438004554717324659150723986345781088765186787922057336532918233809913664618343492685062102086936969665807910802948854996824327933593119551939467506024137416292549855667256675405864443636476185395138865974911660001761175381330603889468562488368813097926860594575176232005532188638094524838796441206699757738111655170674253619593971845642859163605477122821507887281438932267040819965463240151141355172984881218133046685413321282162038373704399263229162125114019001535619507543823968916934981764764592741755986870049027904382513430027189188059205213563023466133243022106049995803173959488313097312070715502701447504938790550299494584107322952469679807825475529776030091760765128504700581309566512062260368577170915035695147025983403802991740971846928828275120290946641687734693117615295210704890064547728149485442351972944441663243782936536280773244071488587983752712802057456933267862503874232501184822166640514146225274248750660893144640788519256065006946450351650858904337729221381837632853331337703284856880428721651707946954579722239862469024119240045416825465622845773093868530655698892224337387140360994666020196828601601173917121763256527054604886761168440249341298673544572335756601495972224995883444997226688514360408204106643316223402978343555949717566306083538339743456999032938144163920647064279499489030170575753947166326284380703884054119396368652401157805864036797924844861548049015302538861491620690065419351503224810575023359959751843419908007842132719112242178480009531160955948602946652041527505504187658749544718962494436133839909780400920707102035728039937127779329869875157706454481569256672261034428332021202570086402858950336384757537384536228948079682486500454241191450651561948720608445131982379070958821996779069872990875046091346639022534022909440783929194358905684427628272606553337110055802409487342254698870828318234386026638002136116309813911881324167268923158311474685182156993072558254993730461744100753003938120456584399715966090423204396338934298859449909704127011755408267355673711694552199868262961239574697169376122176060260049438966687790863945701013488634613740024667153032472749815945636975880386946055645861911523559888582931400798736232683872208097836725444251073906388452480118491288547305543252135143783975581069243792298360560064120731360712199697659850728997162119873016505959755900705397214959172169080465890478298763868018705845157879446992371252423289257352440385399268952951395036491357592866060618596735909344555714052005515168167866042277764645554462537502887302090638835017003131830481457896809355979469286751093364230669813754523300516061233088608053687672121312459975373123737194175102487239923886447186285909265781841900175220101972081503262325032569676473861911788913954847619189160440452076751105141105618847600674156231355571501474557340432128434183856238509134254159520721238846817763631819650054608859198846207192079643366844566577055877760091457521669187800959002005616196209619361030771880565494501122365835761326573417607762315370092707111972340441333546924689996023200507143711975475374064612752900108278242403534496699164154140078769560380935298130066376822005146083622417222605414635742003398372559589310329224439977606685529387837562565661362887235469771013064877970857540037756476298052165295883469279234955273809314166720805916658257931575255596158037037678176062894703297506206306520415064411456634998779788436558308727416456532743118282923872224901905456044677328460802994523514824097305949036286158530969148902872773020137214506974313398032510427035485214962423609953048879026764778846567377982428298647425676494905938945793298804085009098939968748125823675261511440779403744404242465895740579750957162019941807767383680557964484208457213395275996835227167035063144813506847446582969921778679863710167288412797698499978246208769865012413166901939672065606712561984818367448038111256005344182998825219779060969697957960907112291927127102308546979746062399722778749378201596974114537092813348530341475529686541697904266605763666339290883411621625771492739308453037177826803109633233970530276686032534168576659600937129807934234400443733505343289670407263557536156279640165052373869798545140297549686831135209431149740760920547098095680433859870019700129611520817013968243933476346611853035251476916385808806844614965082485702623263800736894953691747660704502171415367391772611885130100314941597673331363838881192239851561520467980755350181144765574420061624734647374490820231674322930002189454556366687575040127197716773107393422092884358450188113577794521773910538500579712133326185221308657786757779386603182203986451138799742139165957047528577488958116456647600945535428834432143746918912951483704459324401065275599750336662100542578920928026828202734899862820459447812442300222312183420943723896940109868603754084873087341891184938193803498845481630846599942742334274115916032741086315025068056304738368366327378464028248744393970734116637243696243405624347957308851085309490296901140541858421937935988462683078138849229030965978812486072768852047406681274730912458892537641708293509798145490764221900372362678914897076832113509784934164214649083070488935689245661864205707386293419140842365418109968412191138192776759070141566286034369148161491120170561527143747873910731489145399395130987282063192081013447203334600216593123496443331725927133390017047505466226558858126737739516364530060112921057192562205316515977473092046079582441798471941391446331553654421623550171367292948161696493266993285383678258872442384699715485530714643774213160068576340115205770958768910119769563123504323304199823138896810378489717969416506594439444472603871962552387573934617346904129958580660952729689170597811122823010929775081733325426818992877361778171306467691325766650293079006807613690134624469327564704176392997428999980481971962880932356918850832393394870111168239777868861470672608056076702657997403123075928451981683783084209436123621108235136478074866413050134084540150722687116439957476699642983183694836779750053589386949357700692717642283821481124468808982271254377414072735786769584943555560468396752379196047356524818508253913593712113119419242413905788973470489081590448361956974624005583046030540769987957400791472926312085881567106165531174576264411174761849147029124201757751760692925271745602160620429243244633646035700295343944278498784293958762978220491070687916419870016151180012710303332741242334038035480067407977365866584517870217474725143849811736360842543350238825362631614518102286067253124794732868758981071158589608067777859212560659588282923159191236923013705401560978211958400567264971601365517125911000776866792079790409316724242650410130072464422752357362089704320772131683822102321866649859170001774059072130682577737423266686237388271277805100393943200033467772712644695898138808723366636413988960605780002686306539962392531909312933286342033513566819714492894215219835091717701257934369737027485419068827518000115204047851601338971294619277821392562007627254594492234880773247456978704328796119408045117854946336897416208366069311128336776804330091509168507840538584515390825197995793413341949282151565837745828620216007476604366350570319830963286356657646251140219216112902604318584423710675889899115639802143708248298420063041184974482902932009624414869709113233958255047207449131313474466538538293501299135262523066368516501865695632753088877130959538862637881763727101544854719367725931135981857020824535209287117926829472921844120495904085886767213376802208546293368584411453297681207685862420546407480011095932512051802563692171535669930321064766282575753144667244979933957913871105097179783136186736631052503028506801114773736051353198998016655865944644877301345180016805487087315616252860869250403213665239847178505041960777849073429755094379962176967799962890049065397483613758636699276315014690451304245690819562841770401559359779501417585121529023436609053297557929910461731153755082079126948557457859981973226111443775308039292994163065418058871595865568533489003026183292308732585535087045916365272315601079084932193866364845860886701338797093787625216646836772180499597508847361133065431752139205113841944638530772760118982232426384422792348495892711982929038086239266824882022887785346929927130594383513944109266682626603284343136631166318680539304655661160885049532249583370475485157477192221922444614472437541101996188277559822209521104201300735515430781323677484149251642837173991034436813037904701721494096754115711667179108006303269447112897988558296498954463167563590800774626272044810416298577530826018603615415195643818682423757851636601846109686633556541090534634607615759357388456149126259414312289033756424267356964680607991868034031641746656342149452146582250983944434959318165253993082702116765702103813182070772760297369442356123955650553683095669589547528324000709143857215783269687623850209707588328141873014066800534983106727860420475641664002845918956587044826793005509191889471436597659370107918921724467165034214384200708675855664188015336145865363511872650825046918664252364142977905436322225013828060342071955704288012893756991088429617102991148635098893785216559928830519807321861493901159424124312075992191356235945052727536661309374346253301304642262100364282621671668867234576680587964233390771947607834907855355050863769118344712355488340233052812497298293897887225932240941205886003396273622050600248927044977568127252413648816114899308853306127575246539407178252135830369404631821281591635959590487571136588668388086465532834212339373484563253054562926815079140325008383190238190832645544193643863530248125827838938608571289519304825969266204406166543129770485223003980921585292328982864102878423835579397345224888033944297210664432922589724290990104890887805831126637488929220843233726111251336993754695712899354364031428151034533932334573748747782949456705952561717517868623396877331863469019211785968914626605261335335136397007352951350898367188249313837455842156434851015781594917200317258655110209393609330713482737737306625335108691727907162002770102484246201852261979908710520842396600409841924394569162236015265345839124838446065064285867204771006243159331976060348931145831180648815426811792233273213264688569467057131277141551936658651047730408895079379055542696784042088909436319310096472569083660920503471883524482215455432132353271933145054031067078682083340805840481631831518774315398687784935248306732810967482578484447013640500026684507288324172344812240328996787750002197238958115403610056147670187145758491017567757907729004974619571004994674629069315441708985836328819715874619331194971219801803011491948238405885110843849101233580539339443385041565416317350258186239606435294184436837532162550733705478045801106969468391050116213085316997664967877384898458273488908732745396345428746014489978430625972782640757122303297749966080045104483449244555400032545447685189216162917319282270670003761824881997574470700412803380062054206344129288224390831375395905693449342240185286489138453921796831184598705437935144866235303239254807181374007976143429653589330993854281206463108450398608746450372258912488481783928033314100475779486405927750435215483485049442737310877736560223371160311423169804738634096368381310259397219260811549550495981442231776930967750349631241560382988560438053456387278526993350119490091928281675656359239949789882734225707364200161745014047006000441865982348128627851110723888726062400895926031642157632752918678937298489658392259141454959300391431389012858310278468536597990993181516717631589828447772057739049718676999690581252512443614136398014041370989723933154395041870343871823129262229730960850721414356134131147260164615404502698179377894765581800975550994839325287561439126979078825649055699882277071317123473205080113078582708021255864273404520514816716578998534226088402040595910406648938891388257240521850320564323461411733718158943105966665555631743427195432904772265484030002648461129120182478945269506077419662712251902733856039029739618016763179471525334634813155169646788129108254268320845854614480463438882330604233402065974233441424783975331876954768035708157051184117600818670514283092013880544492295759503259785054022102417287216827861189397638013146288213050698949941612923739108091718073711625361254951491180060935360272261731787534990043914623592865202003609503219477522212714542770680978574498105916733680904445189831869150138628432859346194052020549010098777129982121096727998327059624353921897263732262361125290855168760182082048397882204750082257519146727849423244754687389004854801911026784425879096374111222400860825221661735525583661153243410657164264411057233516419530855975594724729749025126646105058635338720196842140196700931286163893022355271788371933204194435699143151342083525584602147935777992674551623875406523439291058337581956813105090838899929346172215975237890322893712246561574748051208360048594237933824654906449585576782096339745780578273365636490150363119000358163483417415337582559768336961891646923067969723203183517034538079930929884494594228526372905341208512616298884949574283008816154767704599541633114126782478975313835682987124130428474723112403693069769705278320283763901953929701835749943131461494377441991963713145192744505614193163911221953540564491202178337762033518342141896147360629585402805854273559144780012299658307811711276394662294410761001909944058147992356671960854524841765789046607065619263274335171218567635673608411432022585347102825032772591310124863042661320921128905568831841019544863173640622077338402833206266742611312482529691331109740024783237500845407410494379910419099307749429773144635144354198983098863400429915886249020511552318172730556457079095132684148791420693566519503474218869791412917750186804583126513775356098831585949763498305757296886061090113616372496538037120501300766991812652236043034757357432511342384607638478862985019453945006890810400316362740633508350063853793123652874070993781407375488591132600804410706090457244170462587677371968809035526469012120325466095404479664162278922966237965646023166881998703020446797111844061303066055608245644191817881637814902575072125904891795592212028514743375847464110060434970492292061424186034221262910503902272886379765951385647888397069837847046788955175162947531335099968144624200241275686995036268046463730976821333101610132177031681352075792594696370747511295677167619811426231343507986648144531949920698278908002685199546405250789017673260993051629864344937198734852127893086658918964899278285837657945012840225828867357675235087998173594526081464652059221706725969394588043923650792790168771051938417149757944163983523131342133381944316390624291470791715789579313363707127314332896399896671883928286364552861192395073634254657566159523477410765269103285731667409885764220449470557274390436261835563252578092198630210743111457548645634384843195209950637069302615013804264166055288354361225156455113047698159490649448343838639015600940228967854746296426221715224128185089222683528993521316632650425236721982115325289583403697237355764735714295991687974144480670444755857194808942586781498049750248171423577483063922398573575402290047502775978189709037645001298733065462543187917636376899028512964785616157103090475569831403845402151727636778289517966993544020694376837158746463106782969125996908957594844927006374660572601560244821147117196667050404560993473067187810392860335751015353965739119844481586242078580541710049326763679389620309077650886939538153085306365119992629907083352000331994051909099421676818392925953932201390294637980785511288169236362945254508607402049606092099156894221244821418726009201886252889350556790778171013266486602652139801961172614558812994676777895743393706498590232414864017256597658686229906574746118315539653722349497169761299866435843052123264302787568753598200646383588588664788666137082563685729032674633158204314242596668013367563184721255270410539473357473824531746359564719128453526427112984045823772757333163774309285744649235097890891040487302356598226810568008677718236011661704135684328645795353076123394883819861289213413622628444546324629956224232026416550662872379685886791640209409569017175952709920711954934651396268245338811513822786637157088379481348379656530607972131770906836961965912891810771043741692393174211233184300390011383399000834784828062903734148415740842768081943334955780075317800120968207064909588501200195498270315145329621857672440261280898745972846843804242551784703041046751946090413132898230048173733594472041956370192397994706318247366207534960811286949186041773063277071170406720077085595420547287755075539892690593693099098116989978360869513934198644000872925832739928089603145687457633866672948461259615663791750720341981028538442885917954699238675992759492430121684217903475593032800989108457089352810619966806853943138179777198109579757570278697086857911024049205966082398647241926725903865507458807892038690076671400655377531968129305932052457837792026441535452854147343383145926862645173303180758094272682105495262609768431247799738434992879310230959296906087208664068761152915066576871219284792433775049892405730747507443590008321851387080399879261431554441722219022408515653430414456335077450190065240275702070046590637585704756466624414722924642770883896158831093869827621063338572055241040737692249901508314132432351579003903133088906783600490973663123076477658822116250386134351490270487305039212578090142110010089716790141553324596770041624292541734611674525157691409416993290525486068557510037000002842142008726785181026060275302464681129376688841881137406616969227410512148393141013462692693665396927794575090052785306549486103033096452008346037286579499533512489848212274894715183015386933477680464333429083546563055389396529623117270974429171256884416792326709043551578613474434216541585819435188916475019221476918730535003365324748091553846669576509827883994084657504144064760965032894401545098426509707892594522698389273248970752955192039007605908480968077763608403106755945869052533215620726213209187510032930331104528619118433809703897670994994036369325373945807559217767410983997231403842236644634711528235697836942514096869732072891032206058978879972048935985597047597737108904993558338833512690400038172691276574962553432449998475822657179672656490120844060941891545460973122579310775224588335704917947135571826653210932027873356204159677289282797723630026943583987177360083916444799074444011292326495516312517050197060920276344698934059802027572521968291715676104335951407203564813378727490307186181530051481226317957442239084796153177989562344839419532814740339726075823227541909126165990118800759886356018504303170251928055603937073003194142461125889829576315859248466384846151135346395605942929674214672485791122917514061605391207471816934768318409582771162008313988836830778045366492370668880707731998242359040672946981514840949983415141036989619673368460549492983381859416659808894236578493209248930790402419367590188511677391178165015516759927166896125479068467495080760372858552147539893939678170539545576677443937967531459916825298455074737331673437290117793248411739264267635384707868667818285848549203577871410501773506339930423059727562812034386724935456884817729242733144924003048494127539607074736177879584180934212183237281910599881631925843311772007053834441204985723365142813753787495236045888598137124641696538954997961345833573716614959413363625004020226022637657063691647503654307945361973004699896534892138730933508361397388775406630562957555689590073958370628680399544236775704380430350054475618218332479422498470531945773059161655974956032823754357257042227242561649034692686839340697054643592599140248922133855130501215106812201785595684746417343888347387485274774676864936860483260243594379653403776838773282092564002317369635401692831324028416750645283658840474645625625938335635881773493646017538937647550971869372075219705907472080941734702988696083589545968347077531609674147789508119187056899918863864169141930096545740855905102981356587480651641056562908366523173738309084868952566901104040735017498491367259024856245818818982400974308996727017102991448306118223897246948001848787868565338373194589594888768301927728924990485604066852117274981636705764679944355770234996432919659929707675027967615602586589202671269252909482436214433508606269415362023326941233763082638652075574576933015942496128241011049567205814514575670457601652962358252918103025048543761511052961619273655726296811540802193183411748925179287830121944722701969000319397545265945532235608188438742443602108150849576893738357888993429950696629595406522118841709126719838185616183579958184643956090946637752950014776807603364525244814835937890077437480402095144212921674871012662188173289475641474894548447747487267317237388793322058832165073433181880888102841439161036536907425272246473392391484452080040192147792698551197568312642538634742771443231669270632137973202407955340507419390421410984980169470385692041178311279275042540822977393244431959080305308774496157357409860530653901285334239838202167871775321608826632404493058765804753868690557166856976506566922762818730102054258812364902260472213130651534950969360483001501935855955670677853739427355906516354885534054026897042265235855872084717982925336930463195599781134212200819254929207567205255913868912603837580420923142652202604570491549502652194715630004199245474582134381729685324470340140054434059455323804075071347463498274492559420680583368873707679877820493570705213868739516113433972389708053859892780869459488833503381712293876191588359573419434479073944979059804063151086005038477568540804127976802191362367218128958777119155048084710175284660049428192689985785532366202118308903008279360786351937874320431044880472495501435738398984807276964161223802359379151937006722401031170028402712690113776005458484232754446817455763516650236954158462371875831388238233672147045332908718846576029660258001883607217017204307069820249714008820886397931060511440055155936887639673403905060023404691669049072639037268865108673186770262316481692708990039360281512524721040743998116958391662217431430151837184767438821508992029157108476458105017679633127959802106131333293758303996404312748943001602693372719347963505344176203144874561282264486461062223347089557333105946223446728798697892261736550935616053071383213515585353843221518356369082295760270091366252029141075541780711320777969901098723651232644567327443501085003802506909992391466022875475909675003787772244194250385212821514174855999706427018685116821727743760877850177433022997116781749204887883020951810107267161315877707694588009152609558073616778202915879117293264854406864757347018407905847196197468139577815858934085626518532193299667150414342475341530167464451142637122337071106268119736977769609793697681130921425050461334118671068156993987548023851389899500291252147931959061859031782312103761052383180140337913953625619151831301062827926175149820110724543513478801974658869753237480614078226335907872626113245641457118775139943634551535881680411768427118844516065216574926714097147612807041976892599138930606646914638598028877175975589673443313720007573138447944778412823608200704775346104430467568409686656785903121262119177956471351198430723880752286359486324041023714587753536509888057028060577653568621391873847229100544087201780473428638094237396520908684333348573381287609385544345205636605737540059810806459152584361961772642593597902107604171780046020068652456452067797894729623397108042020985431213023550142530075246761523180379579117199562105970743157868543211782682476265646187951205209981997298308676238246493227179379385438045342704924108872611856402688840057492776305211290297996776485097023751009799680293986101737606594662440066265015839662513071242357631983376432794627314577352999891412618463449468676812583454592039001053256947089096247734214927884419384143037238408405345667333656206467361209556637384567335167986762243400296733110759163066265789434857798263684047233048873892595592652228988564251236071348607064387882838629333597313153692757514646002056054293040270085891579225342606597061052969678987514679788267750478794001920972846036563493057163795363364600303356129931599971941877821041726310942365992969106754001701959595804258765363941382123405824865042468959039894867303065749607762311424560217572054773803149880327504797513707033393242632153718016078212100584416443454393134862903155603852819545999667738246833436176561598789887866938224697814997692208769025090095727321188234669263737942006765945499958494591406969110979472784514912355847341360482379791195378969998739382579711518648032400285526059922168512073538899469286504201146835281944239013847372661191208827001630095653464230617578442077359971894012215290850467172948472052929155461012456523922286403097284399525896576822470253550969239780543690338144081022666840719147940759064724392037079642929322864151430039014693524254905803252859954686995412936220757078741669786398046900915332591462936660107719841398775968771191606508278122224593381371585482536741476545178734454842516279580482238379552454629701858871501609282101095876297766568827286118802615004946595307233711340821110723246473948671524232660841308138447621983165307356445033813211776161268942118705658843117629564646100778819560009471044767707021682774669462066410746444870787747500669606798894133918641452083766317904991556341188195788551120915836695479879804916191823735447575248262508424993943975542870647087964782649304882773085464179236654610960786168878123199507526353975974611852406147354882267388947874832275135552695917831533960596292064018750226849090181344934548991958488255903262245141593013645511743765055631169885475005307407366771398819266979991237581213715587375412634973507459649506477083663459334785659068372504876033991169440509030349912609149212866959864881262267268393883950448900301501395264357591676079322076099636360579865995913949218557075343387425742072211708639733223634507186304549182154980285452532087539955171697541095778405843783246243178487002839220397942339349525326015037220170358849303765064938690187675714307126265120891873370911612325872874294297400996009577043078681904049878537685969960176213601171463821562324233448389507660876871068310252533684309026182758680949091627341053330406314903959341332267845931883018080888627688769191631602023882018389691860555271486728859413094618609950532667580803850391369077433982714938711529555217096817672028263406328756790304220775171015286374136328994023500182804101883316568217924896054643206232131484361542012085138973552683203701712066708980307527494252409522301018787457806767452660489085694080631294029405780797571360522853670529023571125282320284856216825677426588899129752148371474942385021619506797369601167288610176250478671690877437393206898839814990839963715620282001769202609026035835669970252648633816391644287235349516257310833362480684376222287012081052526877499545632784332856830045898645732363160062258353714468192232644099040192203329402842973654345049716961427279409720504732714881515350658149511231163391611133565527184703552713494228946949669164478157852057668551478360288764597719407947765598391024796927376094956563201339770752403763788319130446871844249620562982947732779958315866662718862442723491079574933493931165319480585387990304406185187918068019099038475164883789274589778291651028139202449275887689516746583515540280625788320231285954789080264860862643657583897795842559222345181028959456159918709684610130014194081058663915002146148138916785566675598682573031828451069482568769630227194225579406634663774408196707330781127373728272831043076925875020479848092206897717864733441758904695138248129053071683529155714748806487926116387448953176693990729917431728541228920761739198774200197073316220322629059996509524288494322318512399772984003905031053098730710364088133563723346925326737812844747797782391015514249733975840238171066401024107895869050198109364488746699922105645047543109139285727906961871065752668198269517627374880624821405273997957873994819674121975747208907163354755552941608073185832774116098661081999398864666495157688003777660155701620772712725232628063574083958905459146586175817626416540601004869106532700816881347002877967771479161260719947298165549189482802572326006018557647638209488365119684083151285511951848833332448576259190673848641233040777894824091183873791288734237566297916600889131897215372036403505571328488547558520983786743860005244234824212784666170445659146632049656831682351764972042366778250546243121708290582337843394160861330100490183490224048051450618518508672060579746627043690339322448178687744670535812023597073244435553255586616483992552236452631451428483308261428200517171871524862411927666764481984710731834635162794427878378694918586255280230601172404919034564732140373352898872057332523405248699543738993928564006917396224413515998781199767743007516716810521110994981089178001405892646256429604728152752739967863895626747920596598236466650972920021487348644891661865985429131724243777440997041501543442717566635407423976368283631743477995964834792399145974916851845485959065945641638821763824607172294345084383460464940286029753081250593184933376202226491761148829375117963719718347336857702616553526975383676720654271181091718040674323319019389828308493640104621737254249357837245285970639298119205720455671504440888071994706418407695216490972700693892904857145030236416285163608919108101331354791529936678770181463757013286367761662859755577264918744011445896880049452840470106902302091334653193672593950625139730684043551150611256347106899630550574033853685011871783785716994046972169951162689749862421895159689589689595030548732235498448368895649948709685125693193071667109249773243812997994647446277304914172201497704907013187080110815693204917823658384453651526652552401885219339724088500638053856338498523491226215020045697030609177739253774402395465768836822132588639845015926222240287381061108324704569085881248360955262604652847780895985065423495482072549805690246565951011514463687524325815286368526221369342448346640651611762959602109735898992104720194258131494648819481485462183379425841318898519655433106672264800386126863427641986241921732281278231930937272715329985540417620638402068725534664235266106583521913796125945266286769348856164689880634233614264761510651943039394007430304721554608523169953160281541488903024088010238525313322347160108915482627041363783209720046735068806865217242405166219029487864468208829840395670814196639529301444646935058632924624716168181395621533204979329234284418468633876561518639753247302103268608774099012444656613079174160329833072907922772625394448328344827031656260404040301234279222934501742720360372297638979274296705574414402138081137978646631716932791594818098813291505891232245722969951974598733382794060498840788779561378047623465945966012218631969443374010917605817050004870804107644832526481587972110952008724020237031353094386460141270018921158414395691406729762943707772440982502164390051290049569170421818756024022390025953858349740763557833386525173065467205090108658730881987225708579730911323279491860488155827684570395451827792771484903096439930507022980573697665904030779999429129123547143685367061585373795251648178207982602645599948770928849653229890185239451960973040602445310408975899589087873464227956601189163219575809003932328158250657278730091746091701576312402916509253451518734267184579201375297064836286223689038400513288340948780355802517952623166341193561123547577734340741681029477966306232713192733214032364578000850624456371354583381774017380861532332450006611818198493595781034017202383336557999306722298232606132216593752451342372280403636868114355593662439196083506566131593773717584908629693195584834496365299792814329425340687274673029317773285180344956967247619970459800471178579132377404661348052471005622823691231746453802841981277539610727167302328580224298907502724612648054838257350941340316824976122832861643222460933918801308431320205894543086152494124597309580063257595040135382146066986285958172247418315174146568286851766621947983150401763624800669373696040233898689183744258296019923764425736154510972160503145305370412103019871272966196012588942429817435266280520955612287068549225722315798268050821453021325230622150605844409288314684226411404044238539377145797213959289581975269683315575298234980881159297647903973626667119871112565434059663251874552380651156999891724039828177026288160555073127341574639969738836374192074407665621694594408468509027030504376158700875657360141544649070035153645973264459298830582780992411278537747416823931826835475746542489056546390783137516733622138673057217381988395380484958117173150280907286985935860185534244654641828801674674591771219092382699402746875582859107157786741676321006562789066459929557102147476477858267076655692509422120562642614800718347640689185999010633036779739648301185724449959160831178929874476496548474816314877973388790836874388872429749573826202148356133333898566670866782499409704325013341482876792596582960889541072614558890530321087032324804250049992258238969465102929627358768601097943842664468678064952456371313142113106765952349699095818703112697330719467774341822844264850353419589887129116152357677045329764322061629561824064460091232486778720772226720954388073189237113438815462903339580320394779960793758053407373513322678207718464879797113236610073299988252970464552592847241133557316780792003236793917221254839051939065287318718990583358716803755019433713310359929687162051456834875981826662290642366208598597053896117227021377101662942466078966123091812576430337170727194405421433762878591933397379065489402702221228969372628834665468149094507003381531987723073802184795527319286862312094472692250887879234266177111170299367246336472223953652620497964266648020871101856177667872666603054205696950466072302040507651651341589149086978148065186127158506180373629059120168898680733867791068219839380952136983985196531619427699605942574822421845347178960147106095459798804010832648406259009994359075492603034318106403682538382972358507699228940213588990771732082824137549860245392544948348508250522439896355199080595392864588893616036515075127001620532292925025767293750151966651106730052812961165116904141918459774005272458539378538277414440328627981558549508024258126169247154543445462496830810154265863118367060186781988038342052988662266132614094682001106354097860972652395422501900526885679152891065785482058865923556769411400719058635856968868978158303138507428211404841280699480988677156690928895560865817118423741519879797778382499693819389511419986828756503465178205968997481178488228953010271806543367225634259405452091450065508944987135945748453695358811263383059218547107473352071244783953856026412907533151789620607760006344310455000187099041737000487022471824295434751414275030547115766073037952649911905733888659529822830768050392850784668049501528264882729310205841655260180918675636212552389587923768616321022731733437177758814741340739048308612994869064925309296222744333305242287229070409716076746501852366490617196631369249203722807556284807948051912718543123088739531849779083453169471571319973037311828569940273230928919087266997307742332014749383463911741484752026871107280203650852560217294236566141979930735605554275139692771444656115324634141297501770522822476038079022274896027970742040661708933041688808402308284100062900496211945889533898012991859340691902510697058631501838023514601450263215570103706968057857042977229364885704314567347729811466630539818551297352863142229598715017995746999669570154250130689401655293294086068679854622777770247238258881122005838963704656052426475008867747241252425064265676361335686430605525526583924161202667851432490753717655380757726842062752069457144843372925103816970662766568796165019604507042922842052556726003484031931378386700147864635537213536587463936343522535888613557500759206229352970946939189178636047019506827370802131456989308145650386010868569084196500904619896606035572051271308649856355440471300057960811782593390609314417356050065150211802807727709414001128501889789537915847064028200572170167648992478275050490627984794452979206243499612076341896357905578388049386678767702042392403764871363517083278489234588769896170539616007982142194198721465436259669118493844687270601271792903471922734276206272636924272366375534457896695238097891427011541113439449537776931412614292657388227829487242606949680093826977706556514370094726390020346390153133421265387153428770277997591689873379475202336151647540317894867241841344587754894450934412136858477126791732258071400274566233058220074140377770812998021515947839099579735322210280414060567673775025314754248265728448602457099905054237141043489747591040832438658334424001342418198766998640706806060368326900032767310714484936648894591238094218569862129697675587154336219546633977658300169993736248883156864681390077146701430723453433537293941817583832027221449418649643511682031471447613362538541892698918032620413689471952246158906732602871728253655810149370446917617772403098375000358436738013730858393675646977304809555740437255852542457945071933858305926108748704878737475484316540488710934602900739817027226949861800416324219861982618443655595073419556273738667250025726220595338745878469398285058619886488303322846409935108843454981080363289094664813872103520764725761240132173011760038310263255397624038418896285019630767133442945315619299242149988954234860988866580270250890428443032420864638624270036736677284405135014993452388929840619713084183363384443466982051493211352989741451429865161961408983409411675999147536105053533001286906895446199685355222588975060951820850969434030299616833256042199794219775964088115746998188882130893380201798194033933377127405293055161804645586603733936580638968671584637491524922056379511118127653419166742542669912948467904396872295595869890940442498275318456171053855706414051018175190015180976023393800734048301011186839471887500580432079543979516114091254724710973402918364525402973764621345837539504905567590249661543140230895422382847383118740074479467750367017539353314467087675782016793122579376833819666564713072251519776051283462110222664360124057075373256289007390780353847368841522351451039308005889519522527709672318937026296805392733860911820046256962130544208686381874669546399208297782959099832696784804088174462984702217340669983682973982634702192562468580301252537776462183036656909891410174557860723572468983251459897473072076740605804555188615568691933336707287941084072516192222527050757250075915865144536513492732612270541629578835892667012113150891607510672011937165944107484108908523677084434175085611011411302210819823506286408016522788477611072765294587877575255346576430477499722356617070877677911115640897280808114096597325568961449475632907508357081559239120889472186391381029209902248075079853480856246553484293759301161492662066359250973369903259030092635925744623066173296005823988779257861599362052590701657406356129614670800257848172845548132613390277100701718965137526682963024596134611807823860097303824485279236073567422795577233906220693226101907592618761816229518154672001799999944222695790464982050933930803952323400808841854546596815070855336160263901508609670208498064647463964812657497332450648468048288789886481852575693523601032885098671708215107909776175937237234067189385586237697091600553882745420473542407187801632757453906838365631307978064184994932231992612993541998798301054077501334703807914532174509245853735179389571870868900453864807023491294754664440315630693465146733667664979462833573196724899749713598710425045578822426920643626621836761336426274497042148299488919677940454544979216909595881759333024193892945411848926137727547308829607558761862030194881095459505979085728089701495165132307367453830979279745104857820164617174282114656634992315288162578031400990899048276995779569936715028854114306504429561997864678475026864280330930031022995886455286618364275543130248325262989951545381001784863366123581575247500025459368897532915202134564556081604827184259766651139156004908073233269141179027720460846799630184457962139600606493577935518654920633773520417672836718665363883417473037021302816425419369744385235857151189477034811060744609044057352772941482069945764014683477394811964452052808470589104316826422998563224242244919490992522119470454154093242112994880761278096591251342781360400714456119713396446485361908420422588572411098348658475385753675545134617288882138576126094269722339504867223874311167649794483119964403721802916605573357595037430329469443729609757772669630698248537663798291685752532280562097148109216804606408402835078901362570575385828198455919712450744466623387396008933190815188919387415354347830760642515534505994186868309190430580030337112299901427821887785937429113680812279121685137404225705391684494997247446301958774548228369399277398898847121202791383190261173531824816322793608696190328517679173450026461283864218647632695391951305334159307970027572035320169684350832787794358763862403724741976072638259402900536841466139654648021787071372962058542915783221303899944377087693801324823225348757790821917858144122622368169403581052609328113400595693983652468861784146896440883483647764767537737712214612261380697726490535019167759789392408075861555406837197600706220981173586710317704055016180383616010136620215444735924727281691163764284129713920566090671691506311252300073748337383891033492716818236469799643259947156113655284717225667407827648174980050564095362800238750126125821761344752345355740566509551370853840269197059863527386429998181461459662814021397594333162370926078374137066887673473556718033418551512775005159030874191660663172247177467014883260772021995541850899760971416786472163063544539411980768511392197525948946453618927802117712714190958018593926018167400705406585346349445087004553461078196550973922131752450204416465120233154172426643235278757098879955168003141764143050916296216385899016091207714214234781855714313424388310614897422499846311523900416166446581619700751868708013417615702606536714650180808582646436252903935900705264042402836107560981497490676134793428703297591793817014747851848965867648515518932297731745611617223092763199494616902421057997457165955548789042435061323159251593747273539266941133948649359433247352333314430072035211480386268681915959580301025552042348211878639266963955029488259039457979946161111024031142384339157512514321050053638788783180953614836515104385265178225429068686791558027788041627130041686984649983597053138059463963230185151758517528226178654950564893230595543563999979689539739753417465797319887496176336892321702274544389020373605571387526699863871915288414498715481874438806762751942737074010538832329177014604559217869927507349526153752018466731061070568565332448971694099785714185009333538334520033823225214500471822301027869134256475445082073195273482211082974991303409560739311994884194132411948167801237465139599779622129015017671548820600953701659081420080193834556133954360682256594594588884849381975126186540237515853768217610134555875221430877701324251203109983135202586502295942409191056428737317286073886488681640815212613079198865885223840790016166260647843877150434756128689189501868191065653398113055880114038011112026469256993431111620573791056056852895374569171433869307670545625955425670007580222948752092837823723353683466635627234972676427770009964825773807955838091873087028198720314813594967218570118032109450062497185760180750366441372465186177588224324313812162498354890455849560507484597719292571026858085875093561937875495572816366727394105771618089854516607200562454125331966464354374358134632988352604555420818013410784999965307686789609731378519504344817534610911184329983700218330825907334145586031414110420090746213260940737291559824595404357668566703658160484096854366683861676043143327330828284386966493913337998559684069633766225320014162480195102021737312057538720651189348352427161819315446875930295121999631931800092814692956976557953341685370835985453976554557817497181193312443519055658110975199388667255706629890275973441262979004251890314044162263077986581548537278412615177205452068235288731706049312383067173314779044115430849394833609138465166175700907130552457690009030433952318891999725442235504846854618006729644912979465763740482248196600543505991641472842050583283061214411108074042331948035299588598999711218059235882906640901736372997635571529806734436750292345633488964290734793027761519705185637780225120620243461975396843672195422205171305958959401085405583927307786216555411834963677936212517422316225794509366525834016500012354878574448572061250843950949820559081630166727728062323921787277819028761687520127217542659140850118881816560014398776821361233122255255708008047317641414377505370338708701125104991427082722613106227676225753583331895813048309240224418599434529780795973577398946611084884150504709514619359553232648468887653124046013249495700672447540650653668193187009608919872968361619104066433885721189443044151937363759266526765657375739145020870602668737942024990274261020166679620427803583248523682126321279981637486309747902449636669651281176122167903870885047722977745770268647188029323595343275544883399979808792932592880574878845970754458429158179083527440301176682671068353513884746349343005654936451342092813361983674205641734941300803712369587364368539437842593640396716299792479723748617594748390422101068150784332460456644071751674775882639990712689469679165688074742038527510291009957855509978706892854708550865634379736366579661577699782599444651559521760067921772717423606324744856455738030014734594179869475940823726975605227278616912158189887260409194436444089368791259663084043843995844851756638021464794350674357112497856785601185971414384393633066312916903711662261008946844813346650230331601018247144682691645973220108059017836618839806281261508206783554376731431223643866197391170360232015843083376944650438076757190893883413788225711454305978060029023259354885343012161586298616621544451254755341245098555132816481620568111877197379929296621911028011422058773744753551996622026127803034231118494854186822989108668438759317303895727950916092428815776494807394891257966740571000574400450913552580589386490548628430916148116865376243994279128491292361327838594707903941269465306308119348660414705004486626056916587607840565800882668569117663929962465268848906233216014601933605523176878178302020371365477200503320015842350851346804204475901042402205813231070725979588926296338008004513282633636975411390112807051767788170732224329822425490664231863270528072973318516535907550837262718363274472712725063347239812797419215109125048672360369419548679431169606409526742699358695803337620470714483118955979489655292271517069725872411231685007643779367496986239546901227617527409046504189176357805910823739665014976224186655562892148371326211043933501791182390196310433608554069234063451158715846961690181859354635466116417483879461386699903292354806012994423623458435031080245636571051280421748106686229227250066270424395089966328490279861465108743578886956396674268464759035513794601031588598045741036579330863574258181099144619860174056073051867235504407299680736743587722523405500924647181662831173544630932085935497302958709334246628462487939961139564789574075038623961874282282675124133401058720350307474175927347122255974178479728558686530496177210732878079580350101466090456282004514530100189109343364932838772103177435905628352529545939684292646143497931545134894998570424231042944997802676689476193353163472857848860476705082785399017216217573622031576162729235615235259329879966968665128631050212422727285404694512720711895233782528326165579269481550669089972784577898371430375925105259570245001634382262374242373484670185510358246917351864844435690517122112927583812639596874164093927960168810678953041101778551713356555056450439816534636007662835505977984753086170862187325904473118891161533785420326824282467989031026977502060305433182227397649642550241720712976054331354085250600298404718036562846415866065935064533546243904305742904420535118142492653759604982235050818797366711647919999889376585283092714828771926657895894093218039527430573433080748179202014724721389316989955112561595172601553843909388361462260527160493846001102079765829278059361601932675765678406856808763324317397587400585969612186463447994551771004927796340408439520407626001452972773496649007214286114585168055885608688343520615880945424957035287303484329018717536770129595740512792134724504606836002600673597913610814302784331626945157885943323142996711966420253284678941515901658033807957332331504384901317568720836809357905937718865026588424478598073855632266110134647663614094392049234436950626051145754458126202626914535937662404790176742589843419790116098651554522630537975969078191183155064581897760201841891931122257540111162344812137017084897980335283379820661370633550673132413137366109054624025565326140339595932280104185025629502580378264637978425978355902640524532813372386883184014698923608944091706871792947512390775903962430522930997584384667093493984339081942185832132063050730227237354481662638713814654894634530786031804807663438942690725413132719191214853809432268970769056447844241389315957035824876817565139401029124714261957820004550966585673463558073702571768040173619771558189286978949735382313124014321935184165091253445832558268916787975679095742882154193675390041172362307646233442490370488958797489306912008075115030965198296556862855661177578457675918614816958823400683877156775881296627189988279182273841752171008355885354319305117535651924691316361956055750943773238367010638212328319265560791081605139060837358943850607807764924004018540820745366691030136990275864806529875664496968515882275382573416610446202029153589555359822409850760165199593784403540738170861951733551326068203429596651257166868238704520301682423601438213998060993400687437269777333980049321795697645422586636456675336347598311760152555669627198055531643727965004940661185122299905973778007581432024282612779768635181262134727544108309573581708880787525749804687349719703276762208095162565066530499643330456581466819559145789982306425928412799799140395117015614120495868614761535879340069273991090802331546030494385888685883341973873090177987832663923194500740018139563679190644118599327020282489636107176350845258441205372785853200317260320013805094982202107845095609864578151105910841499185460560133816887353290250866692382061404406328943089311795115054719316249008256816072644430771453885168069029529455565595557228712368516767837200324572274659373352728918610523791473729951370706388420900798994714017777380568308598769171527891308195945679103577200049353805806005606307481041514052516333563910039554570243975743532250440935436886172444303310853338533977833350880514582549376050584725865666982554326010398673362997243262425401486549576365069131469322753442642265583666922288274850069786085810216703293407463291531586358399077465038227928141638681371514433219998415797025173784516759409602080380973546858024066497062512984089842687226209963939859105701043125577856311686080086655922603963301266160804111483908725449010966033497171792591444365333211613549036297453540029075490091610262599729043871079898680277976571556871623857854474806348391569836289843452242604118777190666821619173711892547304096390367641470901143191461104646941585280544285374228177715329158340450936164453052494146375567477292083617638714910872195269489050193959150518316332897534615645167409932725089441278970281924705613878930783583551783961454608340996521110084235622993330584472820339279073126664215081068999146733690263422943564047721072230471365276491698187626815987171504354700824151323901986457797874092105897469863691712788842062615686714883529070341992603775153725907379661457879631297302341473927652664340339316962830452478163181955463727623365487707435271834744077243772833382555282673702474639353231324883512215164765804864050031233986824290047588155192355072456992754926209039810135578604228630837072443616023056250291988960470323142633750647273009885315623054485555663647250583375745295516171187124249697262455310911191039931858372514756601490717826254300059520981780324363971263432355322041802878389018446006774814533072158391060201699499404301918841775928858342816599201335399966106609196708801315941524113526695646558817418205568669419070798922108587770566598098948718064319870936558485548666395815023548993753038907468875729489095042084721097213998290303920734376686401156445360712648455965580027464607502527594243517250371406616509537087893838437694805402543317741375638694455510830935032201189540386359564182211130985553587157470894358960320837439019593888902067107312251128049969110317900147722343954941217528243802660865614833513571461471409253415894895445373115174769413409354425850097960247798830943829986078831780569711667852273422004782992745176295747858439623584122771565042293653776045774877834447501576826960967533353968965405882043651819214094424709955074374194203116210782764652637724049393772944254921985893487642901432070690526451711089528449144015539126330126750119507635049615267031679714117032550287752661070105543972499307888054882953922620627084427645686666635627899326087341810034193476767430452320155727295839101205532032989501933568052489777477504695143200189987036312322952407731858265605600909791704135034170400853155814474555057655277088633327093853351368168287052692963467250706082706379313105216291860867131522441866804533568542481659624386356674651322101308070967105541011996680451860764612758682608006495675486036648203355345962849955177070936767223934777468540837436975806006636822424603845614731252712688066014820132888995140500145235240389939472270948537772049357220953649968590325486911694025194135989009593509593074002259347308023581443128531171950890381727127954709725877999697897886516592440932403814665691426790870136092581977404268118734693810782415679893057692932828545448387970280953615793668736534880820498705481665631834280767879397062713862569277060893566127275125233165418782075682422458889620750942455641065705830982355210326278845082270813845038054611370116923475368053126676202870348773773176276892919350239062375695227621700422499639542130939891608826501461011467107764780820779963365698198873459063336274160435961728653351734352040112892162231034762135339342815371646755105180001474796228172921775188145036000136895411392124095337131876287564288235217824400865504340625213221693985829634202631867287805458199933652738449325922989497946048452667073358981764855678625276610211514757960255048098414780337863795771467695041787183952109129173961436991038693556230516083404693888605827692351351508122980918014756159464521667632993986832157150005635658456042446009141783282358372170740241555441199821887221515430290337435899341354395739650986851102584061051648689421797193456876407771215688490461922748096943971586211080956325489716545029662959065513336099251218438467108789954345616630247051443022865742546340131393303156602063325920093644993961858918280475949734056082684690768236311933165999280763272291049048234396211807034546379604728478229763487599420825112223263686074231210740049201544665646620520828100899320640249310834958811872195185902143063987857023624706003120007041549697139804102505138117043831050241244030659649650629360840668563695121137568680474547741090742943061137146128475949004873277090985464725681089413799255779006841545894915191614347943269368702195462502642222061715916704742591122655200018145231325677800973907155157829330027404893410557970082892431962971073660011603995587877025149900555673914124180903499895697739125009237315858321030563912881370520797233688413673047252993927374320262406054767046971915888266632762909030641303235233770139049398880064464442964181621105920267207380373951942607502060500687470229109155214426840380365608201270735895388212413604490619971511525242377883387133926003543055074841834076789802934484737289588447371008970193311867784820474950145925180360171097491846771599848305253775319481372948081157173982867785789452557922845396959732828299327537868845612457975272371528191009576160197164806329856391248985686476472601329032261176795303492691659444962798474821093963135604589731367884040273445755255084412427569745484440132926535209340038495970304120760792810244471626684518711270827973301218263134844491768101500461389253591615370953722435770689739314716393910004678755572697499029493623329856268821966641580979451842469323421029453593799017505695147748566414968088579293198321225062719870821886839423663434395623068453549264963137183532203220304457453117723492334507938393093605206524162713098264050731340778255452471499710100960247764208456102845848055747683145774497468958583094299770081660418124214127092119081950114780183003596827750323527353411301847389991241645791657275011112271966252211223001585868195097435986136782633712065230297190782197454163011105158332401412918192632027725640819529402058986913154176327940989815756984770033167614610946911184200009173941403197448066806782957260959493329048005638666298412943399439983640283142394253821594100256574592213799231087028766000848717181341353917735476752376166297903212150411766734350163041293878148416872517392546833039559752572317980129925794119987936753110829300237848656511119066606978078069974410264691067305836967182429015459772996979602752369492104207561780562312831489687345720950718762585850167881533030132360757621328120674412990212085568924332927941870639027649338662922996726549530218349831690868582103867998341513378005479115217621190793659918170424454390019500224846357082608438614282850252815135379860552529690139762458570241171307936567835015225611759886990681967137515068871940698417126689323511393559009551357282893339374725247645293856970789260973792490112877623996523036634308052965084766521856735811439413486273791562911265890840764630657856096210460650807388451102522625395066576715839304888778656895563963902279464479678502221464389898893836691758666357627230350580165225005508755456971574262284150617162365689400128755247685133015941093510749955607949134531291604986381281261764855544691777552664251222054667696175632128160961655795518058317265034076924378362297772854870593362344024865602029962419438924187831505192677166184791564637421423805106615477555316048205791293539043757112548068286064630283344007211933014286206708793994224493452429692885420947438998627703033027801564679297929476698722796399672445507403161095817306075788112593238191403121415378846369275169121704923717510560923510073982627920567033008752713303967421172619174418840908324688611093969174017004610039870570732568797723955494474012103276318339085083403119030768294955504629965089482692393322320058234766620740762991723737587087038071757225024301119312071768754030225138164017779757532568773875659828296165304374876494522340410581986083886750487355747508845953704098244436421436825345479156518383456289375431968550211841452691414619050317759370672834994431502530941125226407412202277824749900106548967687552587898023730794407272763413037173083148596064663894696187761432183399373229219307745407473719823619299674520925888306693211623913819954340661518684126308874348071876957825329477161259830304733788323182057204308058897889748263336250924879682541091069532311412630131959433412950290010772598327293927771126586170462504810027886257684367110604440820800882501590307950465786906142319567601184808157677008673572004862912838957715116444225717011553766524156331236626033208679994595126195590258291579645841754650848503132609111190422625056143547208160905781285295082289717398502612168756663242957449767684730616577482133650114426917347721753033782951534962582687870460218911125474188131624862201466179926584008375902152438623255755645150088461362058737995271989466644091145793220801675326946858642205108630794972395324726272147065882809718795553886375717787929060534477617769439516129027592688999938643293294782373797386067778243414876074439401520013015492546276519331718153590388727572826594291807373501863547288457574687795151916730809127854388507475831681163104933332205245059072829270284226488469173585899063483747253069501498076685409852882217903262471333078547263083219422379492463135488576207069812033131345376577548621461192471153647103608440525197614730379373449776055301974699028049472537666765996215078060284679792972695887867340976183128854904411846703644156845273097178822646652702030143099421715251754567898477081724986810224171086113855765374459623762103201383914016182774704172805169280812618917814542200392312302601390518015845455685141402625741034972413332109006909121748305445028474798107904369278496416477705726989230337268309428637966625105289561552987547433695930331873382833093614255220074677017761020933079844005875715608746184575599441504384253873596055350915980071067295262555696572921088071828683605098312322059946243059764286926010827946258434289842332777994868242549113049010644569300031575326162203025392624869559981076709714178107898441689452365410271779091914915349229348447451363164754832877221493070747784493807575417648835913308342133307356626179781952654592603222919749584363824444127739148524430485278394728750533040116998753691742932440021457695085422865538498002969071535649280870104682309068625546183047117684697093911048391493936129648613530852935745408902709572900264672559766311980176512123488479139918772409743698756729966239957511160374735770617909841669357975261747059315453912809295113101265568206176534763780894169205101206075076963363802049565219840814696753902510856258811006267592133677559910407247314021335043808436312004651086821710486025963266452776633400313901202944256271380392784936008079706007973066062513226393816188507295745957930047739432249590916389163616779342615094445078989572008068485836275978973211694986636385746549870994003007239363130939438463950704345294983065688158128038936765023148944413872891325705394966576974501946825996886152808547295622655402996903707776647091380386008083616713106141965358124226932613563140313905102475557787024710986297316315349988216732443024714945421001231780463548589251395678158635032196603503009710571836063882062092574306815050594239333456463943447656317315464324056023660253586407706677728652060164271023766872069989453423830133756777362191390829620130078450475557188673936848008278389613350278816448800836808619028602741038139747872820686872585351796012096747634333582567328467557719850865069790734555245114137945330941449576031770032456685808712120335405403025106830168282728267569868087379913260075639820928816925548398175961736813781554091150155504379003801672362116710704179318505631145754235675666949753259404207029385073803461669492504921308126803429438463684333535296610925542516009257932155941484988969523926757599435753975291427149617235437372749295717744381327426018767288534808330081282748412084169158552487159247394025458238544164312014054266330656531785654697927515869991565053621680472179152583846179783850671239845439431599631923009882525748045084033584994388975236488269812784415071143726858013117867413713220065302606175715816369419251986343627070413173165169247970913436160620807462847528305272637445122836713242369157588822107055049788780147652112006751069655661807096535090998415433693086686556129895217565098273929893972791792925929966797445598940743397524763351651313337069567844995276158583110063573332718150032572401796468792190746314949754114496020858637884303842803574797085203853901365870351762351947978183075810235074489181027693928414503005443877887759697535960072375689921087027200738452201244673030853434941013891228718778444583609213226825828090112484842494295917252167935861387581403935979128502338814810402982959888067967829994321800827762884486165336021711912111980472360876964942796094517197797567726765691945257186898062268945528730216196776799373447243304572484772149930113694370799618534036559981769034696320620048080300249050047690434810941055637754132931464290434242365343203702991070154561396950113047288796937628838299040859462184403712942204863169189195820968103271726017674969708861263502862434465280283874474346983251318771973353187861805470815878238606921399675985609133039928847118411241233853608232005257164363570334431339589266637569736321559903583740965981237129784227174054299935564776758197637933655205173043848832275562204330945721467145510638776822259025157789034410193368962608444330856664084501827647607397213793601882600430871515385350220170803488635131277062853574749346607870255203560619283944220199243096075908306795693627665221923254542058084507183510023818682846868865718537854321452845598237396592285790073765048649223317711377881533039482824967424350857240309195196917519394691168066464190132607484622034773192724690160093372448186375876709551248541155789730127946367206675063089617775752770448857381643679210488564395525736630185819686616234578873409080206494582525633358906943945021257271050978368800728786132152489505373885769866097269462667851058891154157035626950519120504916322083791529381311520492906738403663948121289660610074721393296796289595077693348297901287293195449081682695657452586183685625199350387975260633797969929371598381950884766948377926717618912978950155437813572689167797546913982087615368795663661992753054356626758868481457581447423658339203912919052916637957825255746764122551288727424850554853315752154791202675918462915707850464708751261148110471077891069082388839614735134827578464498139851903071242734116089212940704024074184135113177224602010083137442405633563244001618507122425422032870452967633983752625950389663907260342787138963478112489645325078663026960128971478579048833825080117644485986181239223009176783315559061042836676711918071563955020644793080010426931674052910707016560784024049969735388744147928544525907165880795593681949458404283081766051741910142574371327634168981995733990783119917415029822525315249774948729824303292650714821732363641615022789087912415712703553518234426619106431057908456250208625859136937169130627027328620846193121438693970928603351645018456498533486802993370620631099676644975441260913020543052446365257753643604724627987919878931805189460983063188550021602176051897508637781402862566267797686935720164857313949147071001197924151391330981249696063172304970699071941510092897593449747548703481377257656499932710316590340469805880575526149480786627150392764828690005506568608286403979654891842150042333440501168173614936659747764833658035210109862836785351644656442153865841784474081076097603895624089900261104135868850383071217822970022713187861029219740025463383459435993588985128302288422445609907761965022054554523210809104113116986866185573240530348327776976053782298423371169533890694609590917826275828627235333489680485768275737841803345009075442654813667961395492014749605355241046715574304714985960676015050186904878149240655074248005683889757863360113934239197788792203009935780671991068983983148963724757986377420147379006045832118940230852314779502118254122895589814925648395655837743998265959293539231743006836761349904417485536561295896244927985895230423436940161349073448492730279297825789788463787399224203838275077017272464705491947641766552305997145692910885713025655775090900796929187335653669959004782649142983159704779165791660372188292810467069634351623485759793070444119413104507695074040399837573333039832022806197749605934774074164670016241268977028940592557930636562840324197952918157026512214642371743980837929485019847747079122744698706173010782703365210720687990942129465441953112973334832093264354526441445259206233659478818234796182082329968596708517273251643032949587203462843195490867139661319690236551031561744066545556688636674746346165168554004822004431582543538430142155316466402476498422798429108558470019311798420018366402889708476213512686269321900748235157248511767482510432539294054239229826757645269840473998251938861928367214766161793454357119174960319309166920453637607341609936613189283426803208761802118876772759054416323539359889248660802625243235259732402043998978550046985130334875292932241956291101968611490448051030432707271009039083723667075245952158943529393234738714369407403943895496282980775022903776756679604214797475651972032804551119048126337846134777462898639411423889175279872651931224106762066945961358341168231118150157787016453247463055964107990311528544665337539948198414932721528092911120294276642525278778634598103880962414003587123936983441452960602688408354727636181500029480399831172414220408150209376180353611287906812325592113043910236563458273873703401018738136392353522756141871202173348336044391387539232002269900935451175538745028351398799022850632131761968230650972051773809397158439592011111433928206207547717546374668095144989272220491586864164488695935118791497752106223431021439710824961004309636165124239907802151540295456601906965647572203820528265870334171859492881421486816109166253894980508169206461693971826553329644745178627118104585705019767803751581954121576740162728390621452757953994605168163342996944256612126242295635071270047106035597241576683198294734713247957111033359037061300368884416924681150079209273605908471112181622240975297534135622440156379338528363297966820832143136612867043909964690913152239299599908783957009393886969427302325721151185970154676725051108285018684540391753691666246449005935426190222800418380336742620512690928444798026993287307142154989392252313281447480770757261399760292844825974732137795976222310761831398014725356887051829533461283315876435156748279961246219613068491901863933169815441413366976486951054532772486945230936270340013045959262245406631698591302942512715360599897974768909251074361508573717065245716909023282545810457638336065780066548256693081834751224435965399873457598983327433422219232526523465702612797976510147129759938860198846731812054429279230521691539944341390983908723209427450566684406108495875451250021987902675985268809956553229473520443855690251574264587419234839551183937150563042479506243432820400796673730021773505003168429302840530837415142696298643881282484682822033555529507603360353697981266650295399375715597419566121308259123670867418201841788913329993231695243781579924071281177744519773793871902844166640996755918621111062549838413371162081174405966034315028045142934966578401526829865368377557869133533636865169201832627933408288858495692049000715729026179111869815674116694852067354622909235663964360356179669605218730831316071321936732223734859945650554869726151554350640076208133447660502949720777004562585794521259765639814770711834135394689187978170171591232108872685214252653578907479502700469934726643702155808308156768088442664328346037215587085008951146446544317873378559111187871410888376677275345847743019475744900710997515885593894260058699048758605319352462774385476441918808045805585947185064014479027218418822778770916290228843687433215062187812247911532378016892181512545033518476330318248823852859915090027290126529498137787767368707202103616142980611113674589625651126901358963685894262552523462689747306350578209040384682252467522375315160376074826055200900268988854973488061504646520394895361325148853228939574979749439979427700628282171017660614649804056210005438939104013505348411689605329894156720533806135722014531269323608403319867500062539408779177461985244108798021134684807043862627969634065362240883288923622289418921815946780735807076588108676387834814740478052666186977802705404762691285336761258832478581924928541463024868860874755375004234993000650244697900393537540113169559728048116111936201401234658030622626773900163492054705433328007099483195004664229914499690436760222562616666212860614988697949376899870388077875914566003812852011025704703799833224102384006290951305449705493621148989054337211322537596644107629090343101666343049265002524340683855105133124168923075716952744228550419688185635131586261826964188597155643786626466461890133051560906153133337293621485211185710119375796188121693979045079442737075097778768219360544775090696744829202400694104441462818374380205447337621925401640478850810265728042056506998563048652452136684981134692529831524151463112311780392648117557212539332306483188529207415347826287889430463873379005887209013155527130042827552229944834582535949180871065478334688971950674441287991358174097048118762314727836862567564486984817775383536928952375429779741656715563684908947485546331470383195384281766055201133227943180985817292747963840480060564903305800178050822175318330480818852958526729129966945360194848168616674650543819142217861294529660918182345533300570745308510089486915602924900794271514943898238714264799188022231480719599907725077589065098626085676617572401719437792568132354289355112150062440170616552231231139077266689395602270607845995312359508507163921652462351710562667496178908886715215434149486280863003013317880805975381267648312817811043195079233213532909391561978700371581067243253645335915859772732198976520557142652088751310009103719924892949884808861767026421003555150387460919324989579170921144580586663485674702355029446005702521414284854459613411820554685973229001479638080138148211335058367642139913491828341699827796112059603997670090318567493737756012612190766358533558532313065463675480615280112323534114400782784561845828690433160681585265292945133135638816836112066180017337215661650909920719623765704982184196560996175599010671737501011792885981956882871617561342958720982731873714301420992960896522833747778445389877972302657338137233709208575471959438042387493895594084745753926913367259125285949533418831711691265571370473113856542941848504081771023763965634090446129285763983724731067261141820072174500578978945169733382295967920117842896243592278577441589585637166758715066279276577396766351275561604660223257895227661860570680918052330796791291263773339333685934289587445256506125350056286995423406331476747797838940102808740284305551273102022840779246433854411689157095105360303923506201098821414700112799799326838187204473625511569748336961365142067808726209611072557648638774953596862783591408987978687849761518362070850296345000598871229555248321318598767476001017950418128785774217427611694268984547542097144049055384066731615511316609216890263516387191181394219994392725408939971968970846985310120860506909520382395773740680011417591820380000285350287257537613141198252024263009037979055246823227885231029320733689553855203736172221248468939056453986585500251757174516715042809876105634763671926874839288653656064440481428976821864515931442474542900186534937793942927053747344121258041702833728148648340697451563728570759883581148674924277369685134615613136564988686910851480080263969138903135548443336001012674448948688130377916326919986157333151047470732081480490028082835927491602517101177680250090679729237496302591457098666538535532035933671050063061884980818791076209722999848427744077221999966482118514964664675768093882093798443191754406409336402881582915904887857794182984694657785843663810551952468585422647415717671145727514529664384663523625692996668299225580413913387035840686087859572629771579140928750380217765731815239645272086245368824330631034047380406879898876153075107412412585247199315322363950594343982681765691103630928581916262072606396249527143055393489657124664321274932287877589446292154812266064594503898985017014234499553294919348553221041191216992042830039254266961033280547045118743721601057410151097448992004490696905486538326482873272428644087600151598466932741909355679500551898235124530561376124022192599534959005643202276318002165277409918019740101251101783982911256168185619734398752335795890813967965601470211475287018515665251701534390580977550418232830060210082170102388846296718221037689977603049461836064583436155994226195958996822837347625692706379931785716688114746228187728509026210672985513132503246993678372967545081354055349947995323180626193472365804572289977295196571129834065230520361294925927281114624825622275336276710022243267022801030675609592336715841074530005955158101264890195665752238466669599590677068375717198549385074492329964803160540492214509713458006757488752534336286709993864420363629910347395285083916106417541064346049257573584292246386819557142988756299673642179454627566535931422222188818743563472028843298057467963627029780213538426336365327212772415177280507771892235815845614624698174958354921512128886288661788576103609884805028158851836601050013795979342018659542625365090802386782344414783636646283125164187037620499503376397566068214082016692717446541437334907646353685530672152574918486619195350017629170478021853372027991652010866660651802558652847336981865013258564627958505209175169893791207809421984855635999214135582536863044900231382239845498976088950746908698121995551103447285951399746849018196816590505269878003675875363924718858577668649285481655202378856246200263899011985949675470504254422859649813878749258861852507592253586439325547220924092597557382351960396037588519422615933962886279496941593352311030285274811949205388780327402384918258821080498501241765251301865636077192665643739786362435550005942603060521539389967681119095639629835814980667269907380373591629475353976750719720639408551009040011656118652856886307727939375386982124648212179547746554172538381167315743722863575596663254651044378665399480088891424850054611317804880306391418816435178616275150202421921388531720510866459291197638295870148077702555930292488631666596002184198601499518144777708320028150758149807939103594351458472520915740080688527420313567884965240356116500698462740909147072898248838744729993995447176165844580077262301842875774989461152108157237398081767376749419427715676345762738895712165159128232099177454854737592662893651459669253418567622714110840865335874807088150980464716232747893214151099449832528625925692844700376200870607091983428924795046335905143771311827313432282632072952316992780828789338658535412591965632257942818549995533868269901136410082537424003497010288843470173631031829598257369701667018108626334526879258523211414905615684568624432691297426001145127988904930548754950253452037962164800826290340226697733001683918665982096531087791386364430116358321196962259542407624756282780210407018258456328249920994673047026283840730143789366748652706685433970285648447609876810833475857929224878990857346819657967719376262050623746408590957894240847774838659538673060068725826489180210006462915541726135596343068225738125760479943824527646782736648171792417110430735697710358450367256258082210838553714140995472638361195905938153992679343317678402120944392109227947708743755494746318471782066381469533402695143271692527838060221899310989952821316899726211386445340144468729345988556021197265062467405898907123254874862707398844892264413960886534883250504318473653003894302179000051176984772876847773414835850310477923747488575668376306985061846222197686497460838137806861331901282522391411863614897169116566888644189132201473903473913400043430925111851832249478857331505239766944098577147345710211774557533279984731773049064112015045466589718237351563080305168141818467921255631619191668701893865978558722519571254565337701376339075225676708873976193379577044475354302845810097331667938899914063578606986805197218682479684197909462283690766004883017703343437206464614728127548683468498840318737662446086925886658591921054941227458509722640712473572426830944906239922050958989154752682662907954297260403419693028412761709258219513293616631122765482883013497669360111296859577928235103872041271918668520512432325976658838070154160630382785613104370882044738815142709071895569106477115009342240820327489795823056367093257651300355714404449432037316309927302706836281526331113811168379794100287167855214931957426668981868206177995952621358173760814105229204652820509892658397837477320269112201925342607923540860564713907556584558212382798652242263094654938385465338960860268474344728572150801026213583541241129718685881515825117920153658486168783452220033980591567746473962454790630658021688005451510730838031438594622069391254285663154977590628268714271063563724175462074561151850271494487372544197536132021324943457640837066833845865676464847170994701868913700330020320781992571163372124738264844678038444641620913153425683515827672056131913537324800812429128216032506566379445347165651687143169182372059852239409045390239459948970809078945479199351583287353674582089960426263522370144856974753393622024093410232407335096880805262562283007744699019071008353547266803426785128710500543390726643237762369495532355997002055618763628726949943732167846621347126152146163640073482666847372236486396638534622035136024038194988461860781176505282532942764831015131184756759657925502801800107387863378954620867393292170392635004154305077683461925851309596420973469236907845127805985498644591025364504659630312231580144486890064453515157840822486687920875186646821513938457801053493280316477662669046998150003924081548670789595772123271302626401632757915262261052905015603107155914593077443932134147763922199302049767262492128855219632749108319136406844924122910671538658034034727910991023600060725893351108443514679968465359020093417537395921811470335257338152072368391770753441621573441448415665889025324003633236108370820925872713275574156833436149784619351156984059756832536478242651931544803550235810321764772487784045642118699533610682694408728379844329169703898612146344023028713532181764635926641486463883329278291526009033616512746492090425404964971474454098492893857527946475896737733666177006283749500076557192744537301019616058023635001506742964284755505114588966530371976841016980388580615441214155170614409707725210653179278577635223353901164270414772246453389802616848074178447277191775468858173632263172907996160210345219313046600382456266853221804051441286648698027353912834336660470691808055854331458394667624551048722228065027797868375883679142965905572025794280526015985752798056095687379457525752893144575302824843480563380353006988069622395741711162403654657137202948729596369796703049026315721422521944585440999809936146084117466759722023342198759338155143503531844544007164311203697661544738041060611789333150913037647312012734217563289946634951779409196563067525126426583921941282953288839937752514947538794678774303810637084107496672940698741210095031391776920821823180905253569638763079149126120885726238518046716489068020931952560151216946986456200745884916841263079164594039233205219444233643795578237126074568368938213998653166638804057992026040247820353110417096017164710227234944878766295774264115663243079545076140505025721337045888221823929219701453473238636003500704696907151738241292141848419478768103251753188280628933714259522053528749109574848787406142693141453600528492750669730787084429910524867218291294349356694748188075695971689611026358349758530464399036947582650733962256862256860527333531029494845796463276999891936585817812224955039051168057552041519922655712957986875831958772221049838843178478580842762438764090892997284462370498073864226030319356919751237915126441528348985798266284364453300949413456054892435307214284764847605743907951205275339250275990414035420699506567711189240836333479422041583463755383698186613018748177477792686577602369706633843273650418263114102471929318123222434701399329802478389110647790473093933421912547147310202753933660809402445537231270255902840290978811011272359346773858197908520843140035230205869045013428776752080202520056967261879305066728516130760464527974855471303258542826269166038137658406457140348682678851036506694348304872638287117939674016154293926389568550606873679563865758936876852934321567415312570937219577245577230555748896075315387617705756867152333916493929072345453745834044006622259343760630204962397366558686977594825217001846825101282921050320634307541688079513494006347020328801287323077699941688109288567871620533495132275661816309413971426336521534187750643766893679122499032535930016695147785769356102281720528192887625583795106067098746053780154346678360135928536444915808848876157242851821639372600876711263978679120513031982030539881661982967970019323184843919629598761784740278373390399358100176956955935486720968025952574758908574850532493191508296647825128337506769230598928433304083163150358648095514364832210265051575043930480491688828399243740549914377835844176687478132491021090562861089821248692716772520661403254280352235542957728893907903942998256706262802370254168849778891377215941382480461954975419099326330059777579274125841218218132707623749716761766070954437137019516075161359598330900634337204964797012683138496568265469736156483239314226873492715129232060658918769748125621584175363276523067996607123298370168169651564056903515934228076844413382429070168834922097463403543194357028522874351486190283429663349680860074535663089896765695355834744747233689076253353880036911166703355534238029598922617848515430423683346244773884080165508844909674892050101484090045493959533081151480479964715260609435638308034962136938085371950776053559784255824999616637703731101517474712361668314353500800639371060796399570212596299880761386259504077573866814330069371443764219041475293693658165292164411411557098637000743989182308834867722472328299908071742295526032582223861760266429891607116741295895416165687702465608950591033783101570820870855712078941909379476160822673789901340815000597139187418952358178405177651347620936587663686436151764033117990297432479138734810226498741512324265367803637624636699386998421606289283200134410273339604975439889192819217773434436615888276157539059002646814112745843376914128694048588159077285588547997574153062100705045308408715769908130380172483303736254611783005652862741352950726084148767419368563210873275016810509015368583731944691074192770211181531457699555942433762638901682782908907861835470671887603750279032887811757419501091849364430542681980866301419752675996011656926927310332041353552683754900061562734259461076091938417951505825715708772408524316102525725733351190929934399751580524930252753635530736963799015849056301273379075438908211501659415047497749702583177172684755160574935254530805511795932613153782654794838896635245973290010515516468947064570197384203722958971348341397552374288275834738681328264509929201299277942617504800743672629895992593428596624287642274731789396565227916922919360075823350707370225932329281279640130406262741789361035593849120279816159984312600397971762732137177910691369577269177764199550755526892870818538151961052866713195214136796364091744771037973928565454770063941069882076933819161546608821474352177121147866455767766541338963234850889069702548558890906345820331822008046982909373451944408569699562432944393666855235670186297270447915169201730922230902275823767457028240304236881834098684714478513157274846876147947246064539014629337975907691336661989932388129684158166206093603470140071419721239917561125449258185132230292342592554105396828770301985714910471482906140916799216292613343170591581171002555750622479644808784907026729772345800375157344970093592422857316179307457408081694209418027664272699177300753045749480324871658512519657632097176608289491074587730975292386064728897343184398365902277975661036319660827642410813612990767317530266517765139200458052636937081404625944034291570760246304760861803627547099035082316176557639346577507865548968034736381269457902070631862519643013631749507055801950622157988818956932942967750383526339086238170161233280236891824294405272538291891285079951580375644533343813950785162755856740217114719186711994624529415870546867781005189225201671179386465098697715776538956196445947370632956417614092058245205172478370079823105562670603287336991124623252087967267198293508564962737107667855673780659651947424014640634307109789886632656201466494758467659536861514582057166106866545150942514082048060827180287467778021647154177819491731708416955600517234189379787982716321340943232338182498306485982686181970619270257004711638478688670481717597229080270680867415022390899102821790112487751679376685046175764617446666260228416493784510091693047848671782528476764483764420874232681435270464570840060585169053699006222146446029951455238625919498532329871709209502134576001788078178805011210469009347044446128202685438330517339717378200642083957163359833618630865179798232017273481789700580759344410253136803182445861338232905168651561559253933974877079236196487796265569785684138491065114897094310568271980579824829477124333444216875083410067839387292785465511275927231435735723625187228659328655046811277801505956549626990286139466203243192445656278440000220139955535654610477794429415056474250251357475279422280369615265872860531752645570581794561764880355166980241191190004554048733444169358260120177477419239308828234920434180302168227731231297724178469768282851681703003671486034791145009170241702194193891679474333313436582559066154245077880756138683028762817068229152766017083145569673206176449611025206793377693973329794038764711288101504428084010735407636826185512325412853977101925689501392511665758876567776994773968281683438900822364176386121092525396150771744127057134723010900876018516626099033801830019905190244647098856165514914692155673250863130534105986173480943034656857826289952343323593803969800159255507395515684567595049976076476396961090305650315380978889368825790339849851527268236264702045975545811890827136948694084709293463167451339809680402446377417841107792976113888532571767946775469766988673543356512700209623909816749934221350010130076508840614571142156475349916510076445057784508944819440551647780049024034356132847312683371481024514488023360358145923292927838890675257272046592865277762387561807012054672129316004162745965353234649818168492486703761883091642756772701424387950486001083811064817035284906888035712779715519052367907079956633487075878166329493669743611025195106215473973221556880886531508973363692028434849708918956754744537878085410815566957544984455051971293973716232353640328704046153157813562586980508883491437321596518795886346873402083501585351115000084526736024733196714663514674609404724595128750445099851652712244036397989146725946748679145130252277271747527423915690313358682749772740260297578170346185577454911272218454764457731283196690937640797340310958050013596431913016202607985827697486736381571215100994857159065751286778411648832032051890780140216924640911391568804558428804205432648507200926077269372838900581230206338255114792377293507906707067620353165797569916685539113086141262170325146009417264341958683180067071527953080897597300152329976723292806748341311988780569567946802767909820298118400234806455528186105147727882038375324810888096966231252824261331566553282721365543346555435483765141400429189985638952799895768614498704524250283589718980473047557471057053995468890863171002008214845269574453667659125733212563139243838416208612306013688528938364249359335416437996453672805104168523973514930242418541650855335829070654938772891252956437904547263052654518447909458508327510530588360339840507896872750522128629839715445582231614889367569114572645402847929858747619820906668339298598291023417955841944424839858424498592124041523069477489089821621769768538837778249020082837268836500886814295551483561022049677857874661930329239807353446357692720170515340284771111554488356515855795798187495389989374525892896979380472414353050070975473584537304555669512979782890665700783845110156204561480915210919850337126133396138127303885232956736461058532865865192299270459803928035655715716998361089172456099301413841692257993738904999054586142758509253527570339988546996273508721465909004787038565216428535851810171527901140435228997247992378558637542379312458535545226367708844891818139762345015549369095453168292436661777725007631942013085103793289055711087609055943885374334443647761105730881255732166966353692201193241434791300197706960979248638372763566997987701001861396032927117665773130420234687813558108406418711985952377139003510510050685244794771359736826460151535332388645029607601390469042113341029611698720580439276362488885521871887019506838717539200150497118044510449002248878764793063008620075127579894216595668667934775761050735360405020446058470941382529918132135901965010790919275359207970929577814926305189489069719336685077514398021861100843803319545956625614144780556698444633440079673637554642628597072969382778561292722350942088291759693541340309914531026717026679981148958674716801796121038459556144807768247563515702491110889136654633000624222816127099846053510177168799016661970213265146071910183543117729079924552870213237491979861774530823616014660679930391771728254168203102825810191308544037355991476084324115427523749486265470930606206244442734432395351248231433814918273614760559172080190726722978132684582772796607834057266025680888308459336688010675806049239383312088007058655920196325545851650543854392655275198470692719564137952128368530077167890994913229449396843018880788027475034591410805891977089198457912990995983169043979458680306806551087419930005667289821773364964908421402736850225238440374444462482032743693811758790632995214451520007195925884176094092865297130023042199932211567951597393836769346838775684702315745244274698712286080854395714731404756855312030152315681315530468294818871792238759481696918234981123861771103309675951148283628190884507181454817509944873350751078748521279723051854911656832327156240135578465953762905107807005070048751040947637065160133152542658433122524413957490892046620449935718690354135852948878693831837838323597607101113481027874825064898481808524386437036781756319884216942595808217276538959481113520499208964661081530255332127193066429338655864467393672213394151395136101292766950805006863948423107853905328731109453129821736025377276282792586383706606651019737179726333130368609158629290364260210171121978270316461241503904467451260055095253479109199386571161286882924884084169103146991854555172228776238106582484423486168037653892695885685000273019633259673833775847810905108131493303716204250403567849585723215624961236440928948859329526815515622797705201769438977085696224654529874870976572746328373068090984128554126988195860110182910436212317931695975928960184458242779178150843383911355368315326488463767600925135245464907451833071576592882561959125581580047240634321283086906885824050256767249090430738174400061095015136152188554981181116406540402183493763218254882689582721357359109465405914959459735808241794073293811618778583897935367936094982786912209582202608541657055452347544956627757222961090424630196529026935709330191600883350833078476866592811267388508413789767040365905010992862154650421913801686073423183366573760849070339891107545084885350084278418832187613858264306298157668735859847424671286192230460018971405908871677871730666725570180956857412060824310416112279491662665155454327139985867272840959449043492205017544449331757805296595226512924705524535684063648744672891346580895737958047884882951664341471763523661345951964759543087670924681999665376450153985342711870954594489683785304345037554825114671442632510074101237056995759407953052911333289762635230996297574383823873737257256155778580946694867221267588591719064342813940513902855098709635562912156892681880970775380887129038183457255712806216335567378344629511043244070203412392629234001587307850824194531751846066695755547153361881639029283252700839459248526173718240571359507432123325496918975169424966949851583641292630674793000081250927676295696932439137287356914035579980017458052754561794542080481779937684464592938612984711578424016660734772881345346394992470735400376507541670949530040897214977163817982482206694294309160084649434041109626674809817705763435818922416872941823387282611883408606170068273875150664379553937216653375015252204746910003614261815881955844712967739959338220994901722968560914283189636501873648956948456441748858354767856716420999266593650064048046707542676384286003441340727358129587638919989106201934996569037666569459652619683612668655604145761325526803208193370806167936928371050297969389369922627078219295410056032499109846096274309092683125430500396511972373066092607977928924434059769462439046400001464681188066368975004611303636797799858879494721285788865448228811337768000891501878089692758110064028527463320240607924330342169012744679422560630738437466195511477580735516077283263520356247660200419726114251718786564878172638357859412294479158079161990829654388502078639985161110449541783702866284207174475551606945946173086606084531045426407099205927804391955031298561501276936879283623519967795706795666925656565701637422308965207977686891914744008964408934320050514186407334229163762117226559571374300920914741854407820616186609883666811148645417285890305848434415042937836596065894869322476779459716825607205853534675926377947240851150130401252779662724651576043088504426933712891343799574060706905362957722987215237755572440330886840248490270228455400831282631238856588216285339535604719485123021237595318712908499264601373814737596358985316326142610768430314407332023612367686865466424266829289338981970162545840821534070091312872854584974383020451715092324892707119035707113127900039288302555720192534718378620259402112450209333776791543854332020701257079828648776454635618216438464327214800598686715535900395167767705320430139332856588549999980327392475128623640714931110382859171577345772477933198714043691828626154722046284258524110653643469489281161185217220675228832931826149637874106198859522785363136212361773613408975223978463309754779643275508951082998537237310569570151040713620298884068745099538280520212669714071813307625457505145783969068927009334369949929184570106410847434183027842924637866066279025595861993710373816724459726502283707519600195151027872918496544578928025801941883571978757326124343616127111291663566874586703895876086847848417843325019332422366043671889697951284994706543503224007879342931868003371184332180775633841172432557505222425256374832311179598503695300442697064181197774845299897886851162364123987628353227730405266540998462443226692490422673469802480365861872408268138982302611882344657581157956713447176449911120167794043170733017450697712857526763040966551805254492857341501592913749501999853744833628059884476533672047177351333186055120329830635772104822090853677351956345790081101261179022052063499056914179097146756314683620632915974266040712501208048124836586985875712767563538136545539650504477068981931385986625618421212157542028806356416508868837439329113736968000569847268250911098141838048296823681958208306406175631581638905279142518189030501437845896374263821107571558713584801828452547533340047284876937561515476059918339181623290094583049820648084483816456734242818550246289595186340705224158372157223117021677140131424422187240063109053575507017761532289941101059196174789824184627827046848592008685802323803906149436080318936788398479345409576259025367081922168150729505746240854144866048037485204673543467977170007771394022379488201414087128912635699949587582764428869937717466628018518272308436281521646181997137434231953141784371471114000087514529352767474484725625233923485525015137525838969257481581095461938864902170691268320985798847061626368077593132140223784489206163268444389380004237417757535362775255197991102323741121687701619835757149559055716651291285337071828256756813288730130112805817779600212136836194950725396063323747140390742134913009883268745412988317813283862458674338881922195264808656500898855954811820241412536717539973138609075407423135001456612012784823257218530665034980887584986066225588035639480194843483791960292811462759635819089392450347448469471991048961508134483418471191036311220942536491698094712072391121600124385051998528086279219805092577260329970510852716374648787687342596174769788083947876161127564044989297072838613068885508592428239488153555264839872421500881310071727762274274617978054323094484698798633902398528672629097553563777919685836421000699062603150339201757926274738157544241316561283321326270046925164198351336155378438463271203751975152511015168618973090643369246561516899124594986934057447198971182706610679868088424527157615778067945816637055793548929819823144404554194397931818904133032368247421936948424154235897926477380015075262620273995118325730700320111550394468985426950959901384810733615260923890893720622905222832659871040909894173811779670164559586759512758332723616503205597998182862518562588267792410471548570024699973390226620168836348485700581396675259389334621282676912234789250741510234473998376143082472672366747962181164982129149800327943619617708469544843566647436148184010268314804364999157433442539748189284688070912809224432967027920910531871960954148451283908018387089150749802165003745424784096658461635541720544426268211629056267822788978726235598970615313937508522261314553401853695397051832030897710460975254513491656614511417215003718143150444957824995249144520203032188900310593970068988710110973365875208658156246503329549126801389426007258736387199478380101877623774700825506109059916530004254689109585381223176116059524395724582475263770186716916083028532472433574276921822318263902364909350321612761798990605194871546430117605905594207610845677854694428237208518940319779214551061115931666735870267807416567524980006181754718377516416623080027753732886252360067235121610950900378722832652982598431764330946317189673308098752456074864198149192796586122209499338575495904168934992259560510884737692090256306049891025339177384235520884903457297300011086435529205190955628896380108727512140259938641009956388172678421395317625314860538974209347793274619076477399408578646163999248369008238627699217489142002997539978639549773836933800204451150431609545492184601488825558581307155292561141838372585531927909888388929958650193719166344760333725622716136913236004389009771486819735017570461289191293029419344990102849546817184796418621927714674213988502198711097175793804731941906064426308982566462871396186558677912338961154269893857681674456803424479154949831591482786370401720417375991194874027231600160020082414553686515198258343103071014444178565761531314959183034649121197182546576320293981593072601411991988815133444212941639674199292326808088812096167401259256154704851993079195030400625227062859983832575119541669807686024153377474424676460433944462040635614594925058290510778802018729156788013084177961778417226895830312157629083661044565117808572090727469055313610648855235187811568151397663249945139174230914308778790780008245376079795204232611720456355094735203965822636387405637435831559705614827716034084860297195337142825377236018286998663501987272374472939710115217464421341129802637975840298609130467110530045890712047892170394713898913645721053236190515937333471216643268032619057670375522318329838412198259214622477857428920589439905473410449715049786038501579420781194095120859795583980116921474227937132664964326629701295510916190413766594779269949683997302651217176933177545246941003907453985580970894819968511705897781128963499229148612519742294866311228294750727016398858980341005126147979795171480469299119666981309531668759547721579853096265672140692115388331045019023425812915780929565313843964511559655528604885150339996083222195672790308252107885308448950980289741017862262810396500916493088038707978612671093880894405954666230901800753270726593160328974646838206695121527232927100371449987810178123962091178489126181479954862565302068320688193109147077725324143644027919817902920383165664881166965538754983277704547776231413235669654220037677122742913706216288815497980706359687071624124774962229798782670238592889591602783029728395597279588900538213380868198772080189104233061837286960403172600364613007895206452627543509145378141401094811243115180786549179243223327301029308247844590064660599508553681863045983505863446471564638155398072090568581029954669352772204248352733378862121953316745863600307649298543972883537049194413036984332588747413096993105272492757916399403376712954431291997994970890297200589541306786047199453952898875101663310416383428488588004047760500697756471526799069309207977375967634660799890256551580261431339028437043566570556424998659812616291555398221346810142172238559845895258095414956776829652075584097046181672724542985510219744083317436593664969542659226223256860901093503106275983621675616337096439612440862835423063094577475070219439969448471620007527793704746423919019213504381446464994179851864311432860986752384379212953565321551550596546808841004124594586768097140178392124395155740399008248674432812597489068005788317910076426334739645944807406664965850200617355111061539096152490672185797164974308448844102791015452302441307871107352765111365792227085886833523681932626364971551503170485293479483247360958254095282718940566904237085394381893113337390821581778636322102514160061838406510598858302233218615785556390632072402302450912497957435113726443520020455452209757444952451247428479629997420016224044983397575348667290516724383751438020342492143360114042476863119028743748215535800571770534779077088324459861405719989577935470330230925403216414354812582489378615780911168271538591232404873804126868242009231252602033942835895231921934510975956582675972934181798445444078269673735947625269180254330291146752696958272127268279561477178156130569909780958087144940639037046224274807788869833295961090922380870278689629873849987045380351135399882992497789851246768858338681047983246412929336314013797345346847245901644303844599152168475274732235423886232062547076697712806786302194105174356931004826098522760971439292015596167269575014186339981226344883368408963316388065673672734671211009674112300589688220077095739816795606516334335759559190400066281311280067016419446596706669367721215374187601851312026438476715720327533871875855145767764392412450357121006276460554011579737083081375381819868224444280158315137924117682916383745282479183136272781787140148947014205756454567334352007927974758600645605752583849284811211601747191805601412043485125361811699475793434952894480761699361633534815113465468896226565341855301518347245077820390724219518011853801608514167049919511487210811901145236401719081912559502682686873850323352938246791346554036565327380144551313099644792904257604683430272845917843477162447526954340510018530432227183759571634542345317540627345074836253012297654916524868520716566366874732468540967208968458372794622787120072802742689651505836143483057197944289089007942423708506530626845029997819569796719008684581149446272336734923347460660978095149003977768020741297921963089272597915060930271213762385167788183927171879672641461405081415534540635436755100930235251877208873654690457190480339429606618735461576079594513837041281081838529992635244032426409409272282784266869241130488328329063796289062516355576370653488952592830260641518284337332836358154116538331529855187460937359180125139725085050735890242213996427632682624129071886298354708696456661513876255611123548097263985948979679886528787222162084020599036531514201345361390761484914039070640191891389973728181936634692792097040778732777104229782526515943797654559954568144774354125986840005923000269916283131091465236796612824239213371937966898827680463925580793465358849563339374737903065051586095593855719575443929511233614504116403429306971891742689218940421403448793067330165537756149450017821320022545886194770796008059991085782818375241350959673095509275979060695407127198194631104158685274122745185678058921393065392589529446450968977687493681386922139639970889781269638617480931507775755811608097585658026633371032577169120646961052301743243111142160546446721172533963724673895983235269747160595873333573285901808004632002083419743389529403416475951317320279520886998050313949770916556559800747442308990903084075909044597715652892691710754181915462926449115079382930158837131620150701968577987588758889795686791980830909748319810860903539985760465758873073401553715528941636403190011800053507710142636279763825843073159557348384187151093763931234738757679512325515627685130671765321693776604274456832374514578346939518774480409073238416572854211630711108751774738002264133126329091418480312166781475489728246566579669895082542225301670308721613791745564823165817914411779929799377852861432591306773314825302839583740288604631890701251980202652695692241857358607342538758614783605141808514589289649711487443081488019104201924994360637180805151572128956352569579702637846262216191157649993298277503104330386399641312113725695278520386546256644623512993952056182173616324026080603680157336337878542298110361581441955309279068510308877772302015934914717346740743271184001940115716997510363234855183495896890681591436609960353905532382628539011769785732630218778639702894566417406586686802155863144588958149183200497303076449830506910781774411485596559822736363967112197466429867960445244235201099073340871903904099681773124394878642632981366711914540438087364417308674367832609014130674427389888332738295744490356968215419421344278235332412839419540663523247607935192114090655113757942195916810260435081535463235680840434688968178611395658884128980402031014698600856964190091982773328539198004633030862229926841817813723815241579227007575942600307034198421370086732331651070621186343423493115293259615127773266167037389670474752005286374927020962197879075498569210820064561905563868709984533656041669800496316608830119473905897223480102726822508556716235465906951508060743564664065499342248660964965579453398713423465935289507082937507508683593424785146778017056484124137409929640682240337327101922619020890828297259235946573531409653164081180131655546265095408316923374049160904757385920970270084842799655777782171880611339063617426104255236363735117345070059081139173041951740569948228717842315425753594793012005620842800612194827364202565714481451162486408171805128545751338161958005065936026152416997579288277591618369551078801517748163794769080115524335082920029935732798153020131654594823648770309257475965620699599894065581072531160790878482744525648490949576545632599284582245771679819963970663312966761609817293525971596114164826473884948516999694256225247758883920318156221291122793401728712793309259645091300600754809208815885787871343008809416550567888628625393527748918332288191124021746540618408875549224222937437704891925461752993711340407425606220389963427664106629714905021238441404777485008319497594383635116984012620789224259867281623950147829341714785636462797883640223521405212471062881951202408333835646013771857942138807887327917585092867158099585748650108081726614439417339970530585656438729052352361768408465711398946255977670889797841231516178145543489246423287002081930975426039752545774348673518992891544314450102773694377468791337906118835519254760938577568781912023976543861755248520890121993998668600197789318967550080807856491945340366395353454685245902838265891875185301960368212821496137625962663232744213311913915742007447462164261978105255817862362444342873698130838792264978231358783341644832740953082916330451657271859290776770692950765791601380925864566503265425458069674782983771953220081670140777636133419502262936389414558866532265187377343702055777147409371804981832059266659418631982372782466399662899551587799006285358143037984175948737197001673232170463553545364093245625137949303430152565788780105475719006548797308983782782442507651829244511980488614773087854072304860751708197124047544634436478498573434745562165745756811990286584683331560496471206293638332953808352512524203484197475878330757055805839630580734393571658149500013598113262410944175432613716060224631405187170839137241791611735858677742974004668913377136784973128083156268323826885292802215852283734429223597588961121966662136670334281010172826706855116428147019263087153331568076823452031673868089709107575311920344990486201368059341397205039456079841481319807334395331974278603731815857510859532804504223983490982883115862787327599849222114256105312297078046913391699663617867280079677757829840367798925739975973910811608945168101184410860067997304650169787850076630510807149667369177768702653674182882394250028407163236981977199318716326885507578127814945902045826240713930797204087363164483418462114664713154986482156196915186404951780645364084625364107462940830319140534713088580274976100785823720138775292525036072775593937084338414294113738337434726113024990217858836882209097514085154608206468974004759501273028503751691218175651210080797779633407743735245857811137846637384595329363071372059173482381634749394233540915472664403093323785075871529151205538210370367488799200576016765085921172389580776410509859927423528896811745543797296226974350443198309037740865930664964647528742295080038853904701005111093954737645688460350312684907520858322493277351681055169845557667856114169252290229664937899649984610858219981261695623453521649361805993042622837618458534215461627037795902793385786157317720678291638203122516904105923300189155446877890443639192576939521758026842110339323067360897384182763395590107620248143075196959530029602104384007398814054743159289882564511563675967440639738364949550363618685032653909401450294216039119647022573379604841129475119661104648266474494724695656939016928444520312593089785020915658251866258266365406207787139836981216469812337033471497187586203961394967553203120888027694119520145385071599586788752081490169894320540091993005015661107728636814879725885540907403266961890677087436146226179362350903749714627605786882363768820383822945506856706074224865531307562760291589222480477092352328201567751610168328922854643154762782776633443896023398995219882970406451438789349710646840425647692032697158329667426783912803611400188335026201329228142264843215736906627187579067034837256300010869472064200515591254037273841527722626406078490863474397538132882130439552971268105775321639347962082588655327341690512854327556924284233856452754389429338699187235847292663149141345950915421812612479429889271659884754000541800632177093703172771936580308621821608545832531755195325914483300673073690006595767892566170940513418793556767806557653881328822355810820978567639871832574310253412251491901964011596304069623533808900544624194024329765040108029321714599625165643465367548905832217217563114101466851425158294382823534705011163284158633320924763079298114541958831293699317642466343621317040292213074253751710245172431426159923100952095055870827271493231651972879405386094546704615363042385311964367466882941198447494669317979623979061927165687954320679763295345143550985973691497308521384264164716268674085412725446763767788267495933939175891264672969732937343258578251063284720493083116617808565830748186624432309323927617402950706873728133224655862031959902765774411629548126452921114851755879529792942969297986449957455361239796931402180301170437088670302667415059364154244081981368723152281087093281911824157232679587159343582110607341180848158750126148043068144100025890309178776060770144179790771583422779169882353707598562652324632137225248713502452701978082183495034732858810057068545561447825841276207030291258677783140643815068508428352901568668107103006929612197698771360350064183751390979530704530595910952849360622501182336449199954816097699013901088113287289407940220611603333626895141033139946612229641575792638447455535237412381881211938197742138318941357257107115130559539085721699847821423453335688822603915729193217048971046152288895816946074865364792859044835494906446150396955304684824017681103673072134999318327430035664882313647852342899894463022975420292615727070701109131905262979083515406790954509233106138696635759045224327217511921575859877272075562184014418572979866650091184521946007833345318536063107632765125839288473129491007197365907897174751811640248957595647192084686034061657632638300548224299008590507239311177811558215453174238853120440172789418644601183395334466319968653066784143193263808673676379656945896567608950333836492974523667935514715265031102726326575983132597048003395855077081677573239308416997305061074902379345120141099219320660192848022357083176073088081751344793564738353271447932055079316640727662438630942169610186572259435650428126808501631520442789380598963284712798207833645626748942989745205498985406528628579197178153349772739895938520723631942837716754920947044699327544335780170616537188142683660560682836378670386475155956599926238060607423637156645916991447560309028374908777490327814120878333069184499775867531218312441554442390354911869385161870796345719636650918807672358289551712343682787050568523716208941697001039037292436825715256751948769220826666055641030415238314683255979356265996203713080173662569835839159649991402725530263046537309679014988092982869850765497857996695499945216338610605954104750069857887912534152492989253331845493297182623388852559279593875678909673651853204496536561213046180023135629457137983064263025331217501876543624403428691324107901917435167583537077113694956032602153308891798954496886204904175429818876937013850781121115740291832617494117802766265000587271576716969181354745857363424720389660761146606929088382616903004367095963305458697152900682054515464798717491032011955941321151343377098541381453219986995893146665617230460272278475669910503289698959612682027816087556221889143242471870059156412982514035066926393914462597024948468579809440789544830537411012819912640956651667392058015506395552852141621615973279158608345448587080722615249215344796904750641908443809748564044398362831717083345758347546689351794814116884853045375331067988116521660845966204537140243225216948036071075982537753411693072327687611662198567596270508604423305568996403983198320870288128823731391121674268404858382037157866782565981597708318102028217736316429070251278367227125967638163947727749842390195129835843521934862632262460403389255270547856727743674059741586929154087890999965126700426135469514264380659663087692728869891468146127431207878598473891904457098186898238619949600813285879586437719984663769199673748033569493593100199295501469760436589365476042138269943227653879104870857501164632252713650333429018171762303779108367239282972861862627704735543589168576055494029728798639608628671206514847050302572579652358152833864797211010613310314403136383828246596089860473319162541793100606965052886756937173013932910775215605500792699616572200405797345058712270645610325615176790414557702690776214797123246414521126789482673597942448708639838550279821646710995947690641627864775109154930724238972512916769973469034646709498534798121736478739285696878949593974651407651083281181525347196554384941734784668154463388950617214149262088571252801839617873006408535712045767236915787341376037548962759235925508463551530498040665749167958223965861324326949915548547883801882288043050710131541025404792768497543444323881928106090226069652295666948980277522760106665577968355475526915576103098230389768943997732964116123843914404573424954237083258986920468726825274223333202066921369973715783611259452752193584690345100733615167474628237813302003901659348429833848797852855896530504387035973405784274292292218924180179083432938885116047938277121853026138348648409222084151948694419279941093655002287625341692810896832222777010291697454225911027704971379812330919818059535120892111218263302472691597335800571179958256115657952531753944243845531931508833692861938692696895327521335910217669677659825416856797536852026040306203543878635979414411936483749255094615416073582816620070166696599493535780112036732474652478935184237665626674127022611456203694874732376606855950928898320019686398354981133541208767749316474860834459683609515207848397834025179826173597314153031897810943754759277968172693117584984308477911686471232334438223480999048787513891718205268164782228447297611841988630398929150601809731169442900835443018851110269460157047806564048197979421563125574641167205728323646563330805143316750642213183865401437454883388593198097531042836698350159592126104073862337199284506205982818408013031313310729692455239762265775543063169937437761989629307158512013010893708010135622080368119090566973697574882363036465383606585507083806474333980145042523341503580739055277204373467287359543367711069608705643537214893710189966333656083554298619963760699343368203743543589063347480518706761135755671694456709084911982668297851099532843714930097036258867962953908222792787504780533938477249019892217083356826384791429777447700223804724041584008273413347088179975323546924548923771505183824691619071450176335949201608381449052810358494541965827746135844124221950923882784435153387823757145431244135439747589404353644438606852715669979125824871591080365087363814528498169547795793750450549034396489045066262327878016233950123708984041804114165652475460203762196977330918369253275074086990590542272550799312462993061147500914031143671650596485754801737645646833126563172423782584398629793017122648083615389931354358941206875236549817840502173470176857247491947343251357771797933294198737558372632428751433414806556868789870646997768362628547700132758400989591023053881912967691789438594499612766408887109472960323624069897915836398778626422844054101295364950425112792491064777751720663495905733843582795619964806599763832028138225198459309837584080612893918093452229077497279883571945853887924092503908766745551714449252436898516506955690240591994153776595441949455118294138037783016158579729516307487004639656128712503761898449673889433414801849035095039338874703914264528860277632365174340909775706748415731621064035319847921209911956701775654108788291906011379448171820010724651063577684591688093220719115584478269312723524286738550557113835844925789231553270018610827171356555796750890120901501862122501375951882239821286203166025279306118493762904412665573792844003905293826546240920743254325610534453864278477878576710250647026189315102256535351842156901345427425959441839812903433754813101496049196180501961111183177280817288888955962897109850951188722269037474083599352822565901068083577923110508686152481564524574131928874497013213613667975780608411717127147711751877364909084548056816094144622635272375418051393539479297460654243528161314962157129835099521943079782354617861364387800161278365665175287626516510517918045125227522804749611075025662869607163716144866154689418975683241342416446357872658177379164285510287611598263279179100511178021513192490227069441374608686134961033333424094645332737925839148107151000098703093514389927159295900715644515273639945670964188239800564506701326228296255305552451691300485917217296037812990419280988481721638366602965172172742376223615620906917340713760209335244626220580942432175852550536429617739031190311923551116757435525712501916800055239191247647088175633577674623804165614679374296913734247647694498643879609997534633856957400272271777799153358558870541076705288600000848476913191483610802289573025948320367605834577700635642434869467316234656108593574238729665199935865302000594709223837911812844978373025650463246889474128762050588911176234421998434615662011953573192379456767016361643470467646519402472715112293512759174771297327139700784523328443653507828938487216107971493878397982234118536429358601287412007644682666544754640026941637587735639429226544255330933356312135233310962870056347851634270068260957273841277667526708548903520691142043158877046167397782656407745731167501188172388073845728871836911582729330276560773951733603000385617900284285149754129733587618581878999232676408865701367005346942620674532430676476405588546960271902676936191909464998719440392428662401766222996279657684840234052107139568525941069163175392811693031223665105598422709601552271134508204283948391786017186286773098077521714456265422751961494431335476974084860340731601246876363570382431801742112381056619184660213709988737591288380273020180481482208915479595870937590089880366668854240630835810684911767545897459925035124373931989567934471389771548922992368772207440614832509450306093080030901754508313782924557008817519188962681543641523269108674391044221186100904460962051531275590639499196002566358564516333507975767422589783414245031018189356629218677267238664995610163880270275081386008007057887610869205662287782232164797938159834145174493832031732386111324176696039922881215375499092054545863354811354539485841840718218675985937227146575463267064166357851315395715296179978138025487197470970523863908214048671780505366526912739761376264674393419629205012039709784858220671692912774238043182119560097906917664766097995015681339993228641751526813460449334633430431511985328181511274738558136393094652244121995118533659730589727782876613974917559001632924929406682214761701057945052674499382974126748868471767311868806225231924835454746457737091878585745570541479717011477890877350877520143859291504017312554001450713799764571689965865861636517790079363899349753819732560024493992233369550885435522769691342041685591029815123508060632836190145407274334498054131816846314444537623664339436496124350680701526796435398885623787468050940180220972699069986613495584897889601703493051849039108939884927718238826162951425752576350190803326045995872425719945923589406802848614770365560906702622202552024829205142792899871173865923291363378806363418574885290674834060065637075723652741149894379416620932331798981831948614527272383143231956062197694716516000622649450097695781532575039598123410001425228086989996104294293703144204311727035211365525339656822629119656654952699921810849035963791379174001166042627514503511925050961416868036569463063003274777106064221808626920606454581113469684872253622137091537320112495285542132940464239014264876674492603508294618269574321234840056378403008169342409519972705880426531591145529439352064885289154202653108301783321168728316019097073508920237338840305176665107035438612351086096242740780670350204515083345193940414145121208715564463929615724126262732114236357035581642698213304754607327458517089703370349854312665774458677470138708299370168497308294809705747698594042980047383433780600371034215719459092096768392243191248840189860600619153953635662714272099105590505275659162824883146619025898171705508685669197598688683073179651034761282388940072002188394418393998703667363512657121018507722563309972368696476578092371118018063479657120334497210922818782933358096488001175913904680850785167063218106205444857625487994887773528524271862477848163271157551719794717851200510863811772334449029803948548226746957259008181684166541411290448444927021803369878299839360234967643263721503026038159071732338696181849901529731607274992056758705617023163899018215196162461086265039497257095196315739414799047367415573764550288345453843318261460352764477028209191397616425007207398024415606085975368110995891463444193890684834589747989568962825845725444206389582153287857508028104884573328818973017349583016593126150584506379880302406925491452583613126391311123575639267632555832349629517630005742619194964625300217549318561560419198990173387758253201729465048217977505461325054413563356413108475821817160942009954305565060913107942932068040318883245367738274448874157647230906099341473592790410839314698820077173866525791123935167399496842661650448767506213837988981161435431530776079764920049093386829045263364016936854770986033587511361280353000801141172377904318981385274600557781943867082207455220345951460790248557241469037477027889267549590174320419973409111907642185485478801113925933975604581025766426064709748535520550124605662911227580163376442584791998799591241629817785669094259261703959311165952507173584011496244370852001374184564710135799479665177290679618871258484666761451774971810082632598413433322560755288912722205417786640939886252724997973508964977153078434818712571122629060492994466981610912530439510542908761546161134603600918470644021545168562366397418301138920636620047526292170941524441885603336870034511929026129257969842206591304752231918434080310445058411488262075362151922362857118059499285659936000894480554112857656213759378905320634452035414959788540430548603047242314851213001223089189355974069892306366298859388695167534081836237737139034089998681862670983542243122878946689900418262863019261149151935920400015441708726605929685883760562630324150247549021583579723508029995414737459719281984528919544023998232473063934058494652787010199560026230607501734289705877577692731475442492430662961905034633767423816034351517450325222220584917843238538134658240893029868982300870696760533670199601654996236182978508769417399650291422548914863775394693669581009855721389050443396272365909022642764013605161498662716917939522921085895583001290382889380443519251539916084633043123381178445401352755561324200749948540273146824531728417473924255848618678457937846688197701043048014364946800316160694701380274746907232298929297919362916715834582761434391653576186176471082646525146061026233838428660702529926544663581531665042506583196973421998826599156539800437758263775480118128980800307761621504144335382348891652108530214344169146074877514423758014623155950569133868109174289984741585680096988094327992954115910636166399975707981244550715567129890525233592129779059217773824678480270921372277865129786060138805443976537475920321977559018521052440892940284372719108559841316124523071748336313086163656695475638343897027265219963464737359341009430950887812781047071196702066090683450609051183220627257613799012071860623123305826987465394362275779625527653034676388948097715681682958624032237435166872228213995110315255579770643053023798430291594632558641920849750276464378392668355780839766969775814110926844442696603731461131761129446061011264433976487586111938745067657558892865471107883076559525935458947050595341013160741108117248981999940745844718515613692553337282630866722753620833867907391838374422178023401571278241822198338393070190754419520491662891727035767383426649436687988895414032854173283305442193960443816598179258702394292400265648530121068351037810807255253864227399071671491346326762859039319415266465404574712192663080114866833966600209325712890779429309544145280074079531589982728463042066190918862968015083317315988883611890476823755187363101311768715176536635645282890116619673292572569293658385908247350248281608767409522641735861906110892640231143609262132120824506466010341690184012514498811179670962280430849073263415972872585834798822334967542816781269380477257933223363560492659105635077288133459941272618439268533635590522923748508331982969532841819354702120072902671618439582955321683651120326373286660722956062401969998365403286738631662369435273027657306635938231277666193110688278578559871457815072247466255232860585660502445254348203698771275601066619972461698381486898107602547815176445860870948872744306718459929382867315017407590863623381830299028487090189514285114739217285430780634638146085578942909909690234579638691216905224148878357495433475256183557912534994029890113925383709350048161044268776438740329045354973064456555519484662033273848555931238606150635896588577275619193261629716481272907144179642979833381965393091565772394845072151308119463442019414056320350582999573666606970834063331204772785573565049820386723164881265448367816171339614390901678600458692788912676575389711581931399192788505161701503859837121022691890011116670750848874755924910778723328125419346144735771917964635155015226165305272746033607664016393211199843319639297329255252542480188388761268974470816169829833734317689706633148768947590113803154635352127978826563781222859148419488241397254482332155663409468729616046889641416280832636315116230729023485903077960042702547613855247559346716340302101699334416055194922929336266792698889220725188713044718154103975111294711045172170255753213925378086730315258604075837144104621828590112880337601542086212416803088019887096490570689574856616570107293497010405292430319519523628920940328469932053562986393263947117588714458604955489630820995676185768479001604236438575798765614383314821198405502732253385906575054678770413965904702977378593319766208057777114765523576340132033903091595532038113652965208152925724682893944188397423213086712004565008768507263214946289968636915854515481417019466497815811271227289353161574433841854763372674684659410245634931204200743274833697765361746745853903460073501787902240131441575450052648325103187310791092097837062137103510354870162168287890920148502825869781250002509392200075737007413649771558273197767710310231743129766811071976664087123500498510788874328404797911289044154417570402812656831759817899789861325303459544724841906205240669373732741289033503499641899591541403697192738991972878020394177399206283258655827116725078359128842634726418280279947016666070987662269331110192576087144482417739023925300858142238246157609082943902430921364037663942652487371194150626274734482415275365804154394228714810100935550678449694419515323297173668777006281167508834807763844555291042909313272255937653235061171669299935828532470703628664193688670391633568201893008545515972052416225341008329237701460902489830388085002149105980880076794365392038921395905473737064519167734187496355434291298881847694731423481919013969228456206463430058628181926314817901709254401716578875095439539397960977809798208887010571314511435970445027745263568559812264534687402412491655048425148530352831942847982804134121214740373145616500871119048513896948992164940962894753802876647625642315789246998785915934639099209144596012925019567355477671535336920175616958482178562402136070570540905052314646591791399413494913135687875208806380067596679873427797962056568493108894590748373546633581777241332242140225321793914060504420134578302465864919419146195248763432552577369133870788314939974929719352402137830147966457996886126689610518807979491873401463894513021442173944591818910310611033960142861147693610656843531021613268941627823869802516809569693001895624802235251021369689127513732426007758464612120179748491713971801060549727647662816799879266940435540738101241823273394693935722815390907735633408865847300398691991024821045306908552662242579400801884597352889726559425884641408672900433299806536934397139154920474469356797291100982948031673758661108337631215842281903824700829266707599517186926067687223727936223532756197560713860152322545474022508843999041832235454049511227120486699956631450389952487810313498559432333661213442827620988217136168190215962428022949692689840303790049107448323067270247731638207642174439628286226901106804515459905318364829493868792925330565475681596038118896749590614018588436526226657419998670734583310336986483555726985432824825788256445140322308611810784660597720152649532126696650961749736357898399900272418038213095362380546015214693831191908556405238246098348534849910596645729036006405520743243483831949717563666465340135755690803162146624719532808409351479103634719313665512205276140584907087504537038318762025705424375839300091714250507275159468665874095478654847872138280494312729793366095149467579157793406072408981072274572588210817300344361074214851821579759317318259363006075137243028287385810275246122066541783617777002478452272047795565927427092423572367848358900791151049854274747282011764663520321250384461832160022949528995503277174224857371695997369537328406616448723702679402338363301517803425855667734166878848605899004542651730049048874472598698660710223865587924617534853685642390452479789290899275757368790961425108641948591519859359458388813740046654572647397533460832744046653593232893039707071298443790233064557784616895590476673880144707751527201501172756946541091400447617709656170436786990885082718135849383275367953379474644814001927806612756396568408684093900769848658921091673005493797032993741489960417347117522486920961689750558664205884842688463759584396689520099931846578363949135842855704142811444769350936453426468116869253638302037633676811592788778146723018973323017206609575931142902235228827614791712764083370096590385632545874376754187377686671786140014396999834469635196533833810655513895250249885457338317058423700647586312847613277065867056202486917541375679119841408394453553105477011676018334800323300224154282227596132746500589701300162828987906623758698719189550882640135362588574903566334542469230495418423858884813667388314871959821602930853577918920772447337233513541919726044393119854260663303332187962561420497547952990502562549426231508429345391576346904445117954171164962309610215376292888448400726166890132302969925784300086451352765810844500202915385303265624839604176915512799982901274590461334908821584425303525636144693424730717751872774932507539833874214673828666652705630408421878782321671608601572888428188803877628163672946874325627020411018972622227953579593299435673753445633099550058199868017552349900618141231890478826575048792785978496778241852896563394696759798733721175462469552884488189376076286624563720543425179160534649345025732913252941518714861921275295592805058262133927434344952012396418473170777863901607981428035391921538005305374649418667027856504543243348397196181705606698349628325515792813456383022642068279380756393715991695270013858702028189170207948736712743729901070879800864551883910765804087663880565785430639898428318559550371503366941471412486271029475630472298326516448399413587838178925579711829004863160340642033541794626052572850358861225327063979930500045650935118350441161111528747110431012642650995343931382208023330665066517377403736473232057190655544854295130827523836479110647628722202850138857591055844551047899210183710633515797120581039676369639385724847179039350490201284947411243075392587014885514003801375940963356546138350106224014626498929213014179654315708071180924628861276788712481301956203297477383620664040141770826618765909189676080113113066985761267133981603686004581912646368704232202979733393163656813353555131114205430175380524105032727417974612757375029100584030420595403917596546539864953166640272410693090006390944271256714747682662343510022783938676460192011967622140087251119157570554251771830552752673830659879169861265832449331959712276248416041115371915378084090921838976321117848086463893054902272289626437870674042178448174566653677475366779920163708672266045983298517530264360394653024590041310913802215396985330024700636853608465022123350682873338635143449552803523728109722652985208108539263018326763896584872985397203708031487276391459284481037254317734527437701981460280740298938153736020179479543383748042352540053120140278038499028453417646126611373329002982217731884156008090551513775607627108790854234956025857171809977887509108919806205420924157902231837066437465190266375610172588719685423245763938670693616292849648530669105586500933240101548823993985306759137459557981447728511059450828935120583687565548339805695588421102605104825160633916991957317846655392699543118743693784884075584459475863563068210076680058954521003783661395874792038997449658017256725469350065201181332108595368319941871351077039498161164472045675913609681230460892403208758807564134979712426698639456913762434807097753231600459337353231864686938773942996709585811735979482901285431642271544399973521586757004788136872105745327115082216588227204989542702342085011816433125247363492409933714881899901020466083508846013743223186106421280417792722098513109784314533439812133851362617957375717335657057161554890174209470941338519524568489687972897794636337587970321505044905036225850874267966521361349931715523462895409545582781305566567118446913565187753292358398528502934788306795052612625991403763948956148900681388070316156559739996190613060211030042681786124243177659732790202870262693986637442120866499451491530525215038694799115749624439219465324929399786438332036079867565598698348068710594930213483329067442396053941627593772768431875769820337063750625949081919270459359643258347325880044281957513455201007425036436014704862987648634952838302347343008055996380999513198273803111679901980377545984242967012960186349410089380603789912240164436688596192838640087442947258281061610027698238849409245437137956245922950780842249326712983742618561339866600947094932621765285297157710891794933178229548525070918570378702145966293412350659157566202882517102921208639997891967188785415347755874699485996247844287684748738004757079323010642239290824085843554068434334455984359533225480008658592977604329079061672547337946892979905196209176754916938688217131110030208922613027398431220077493311982250981061984643250384967647734664826641104528049669280553642939671168921515282096126740755642511645283624600127138100773043414141623396991456613785290951711038878025312744285242826629758383099159117236462535819514213717971492810738720951565238771560109176529444226630381928089730795916875169102305300112141391211392320845282976899541821323795852639466646943179979630096895924918952932596512555400926538251968042114963985137457426680962860601326362266056056513920804363367373010221810153915212459434012715295597777033038854395319858645091915213436147358340876703945650962992658868884775833369755423036745104309506224764101186721047050768848406336364180310846337552229678129722252515546073903495397472873876474951416749632920426830893213978012124923658610247150735585468190775321111062136202800780033559634684520419062029354354409697194868471003510516506270499812257110910868397550292268587715015849624722306332951779406054014345656284075300204975835442573939465564453112070240323581279028493728059829581974689626341006282701956148486294315618310648504517457775748069396109245271694246050351046417621737149285075414763526111618033707519212230992554475531500870983796728046722164793117088365801037679511079189091798504203880054064029807135642658338082412641122038977073742325806678085375855952102250485006563130511320806593741703290802718815848089960074132813936218353214679992879770446294864270618982415988286990850292128077856124428431901005309399048628721977285538445945230049092431782582516214400500935702684769632521041519017984300252111647286403864148225317664829930088728609032868302011854181256310144962342978534777734033875254469123188061978142361022632769698628451544551532077043796603811602362131013913918232754182175495969762688950739645463820467646024899303677374065391283860699329994194420926145298359345926045231510988577857534083876832718516596731581297987244145234770858785939388890633194428103730985798103189438216530006311768831553616188653066274306921981982790790702262729279751033249893702067202341703534039756901081912088309376499855340632402888103138330371292606436342882447579463504860057592605158246346923813557996676718620902102485143521100047206844092371174900668395289454991270559271192392795045111848315657358085980126590956329284028666357610460845074676367372455653729571762080536370362130360754438456805723182207127058905863148486374299018581715398122892462207108410477435490067530664299848797932460356558529874118410022823337316317172930888990670421186977393600911016097274006990319847669376704789724214570113381151693141521581194625288037285289903733704883931475015039966611531542279449956011023551977527057935804869981268165920920425561647568181172497718299468668991332117410705786903867567987406171671045335744539990395922829809079523660421094894952676426874151439992204310749543743948961464947678605625602533922944859440853342504635197601867197186258073990339194931576304708295034976411474792289287252901340641046940721507240966692113689452861040926143538029583718365624216345688387188582681278251176696538817104933126689006128198938277049682707972649587998345783131259702335404417588267616048917438043551776713413803677687350897285574759881440046289251189704265056825713891845702616148977719225206645194494573281068948209490058404621684166556014125769588002163530696815819301720557682809367306088009147604689115998037577493788211751050505455096377922541518642492699995239641774636056446370226776184974384846665802058784395311673110104507770832734531100577305868598555798036637101278554130791238830228466764142916815642313049561854235137101371974289597758014639817566150327498202986685454413039448699452769816195550720440805973469611738038772465469848335857129391253984196294910092029108023277405479402516912312817906976690638530061527751248907010668107617109154094665773970547534486886170436016677392583713086374974872654730433123529196791180182039492394644220500127930791981561545928016128539840942724242835536963696882246568199727108848027107936902504990841281529202408033596794551693657448382320541354196962887574708977746582156365016928477158492273431592423312729790819774044880906005977945423677618393515403116929387951194523973573216397165887800930820750903559246181213378741954661708361699746689049522179446185711255505075593618692385185925108973912186361719051956422938797425671934576461943794304878679830443394989714629971001361529025013493050813212267712343478978237231929487591564567685841796520892041279067602541870921463178791201141411218013400369131281906084593792838701272203076794582202788630181999034964262025694412265377922541518231968195733725307551410051919454798996483341271572846229712230537825062017729654541248805854939236856372561742098065340554215184870625765167026318419740076019540246814659142008987274030539632164961571687066076166933405944617829436965164927667747013819773822494111263844303554414980527466179751468080509505071125185110536180110375762864457340660605482812882228609190985617065253084596679807771467027267960374029035580922039692411747326747079869959225794276395966146779618716404738915929936760631376971535913619508303373494621609218946362228406763073026275386575114638134934991388391506678135750253227629018233769732143106079442001414150350884281507645596104253696050394722972897711592837733332861624587220035652907739277126290045828421261782180297977454059761350756274168474718025053215842783347094151336340786666917589654780351375997954743254115978973203353526957578592868691015556616266496411288992010920590551078083591513376697694769932238047294613402499989206313321245272985108607893671521555144562970912064622300817097889232642437988675000067231647958111750053854028314068213855931904994850018608160338087831894089437064979444687357770193280682608680820505772645833148572529800709255562118430776472431745300833463074036717497966262597626058083445424125220248853085542233998115393377824082986664723094247741464389768002113304156139957888418346470438687172012731599387852755979323050469225699999858406910301646033309837881891805378285304464811012470712411734201982862368869685130443727438235435864515681434049394335514663197401585246648907086272199692077053153041028089208512227985003850968751976869781200925110893763121992025000318521626214028783470378876111314726195296266732211867587535659732702456706993747419754868499693387179556599667193684112250698685862203902713465840718580064985529328042552300576897307926628163406700504817488666758810614692190801576677256561320233503293120938551053476422801963785929961961986810885840922137699375708824283575611233189128671806488865936554704556701735331044929557852529139281479758036416789684240724241816475399617385174711811390764508522979393455512218472384048283213111297847009379953706114106655317677318469242065251560338188064575299403018157831811513980861957114302739720004264550774029265693481972096818897462154507497578068901395250779298077233413044861306040778136832132361855088279039434332207230357905048534127404700929443299033847686112490921996509224006879524568024515190821489126249583449910681194394995893180537440329058142064331734927648028290885912309888370891651201487265612944333617263682925062185747332265728106322455015637090058710809175222476449516850936096613804300618982147927490855908734735526326331813910577078203978774210384345796123696879037921653989661270589069325453826307802645773433824082786018475570027063226877931954964109389319027057373775354985934822377424937379340464821717494256071753880078713961433729346356247681937472574238403268085736711099937935938510687130501709204524604017023707588857770069339853760955134567376462916623029760720187437719791165252805290860230117828258932403375893908353847204921905712673816654094953185091262162281374217118870725325823765720215228163304654726505965493475918085205464407961495447666813997211564947755857451139428511964451626352152191804260945931996654846511194181286134310974476970488267394502797115588467669598783122410774956199072184934224659755081218157693076748811333643599268740985030384727935209888002129718891654562805238380504666674621021773398233400514057473639675397875660725825649920878068568934753278088393168703368624490467486409645937752320695202275313923864079904265456019377929505150502305837933387173202491141861926572804841752394280863753636598403471829973167373303580490942374054638365062193107454076801303100760632124078256388583710490929939002727610356572662741770153355808621299088273582062615571222019886998226268482178961617046835856803637732592498242005946653124016577673334881177068399796353353231254903322388225348529634713534034502769454722122915713032294103354175116827248025951382945489231170051173904971084829192899492266310117549483811033381888378150317468991901221413183929455479535597078309473361568750117739057604109713373737136772417185519215435317020556717664485887610691950433967132224206953508625339763030980041284182849748177099474491802322593913669431131506054619862762444864799418618456930010202256060086119871144625545162183974147929164017772097665646061328969492793554722479082254435418687300606451424114004900080367690852391212075651388707619004355598397183754657165682162292659416085969118479071977602843338089624765094255932574127781715372815569562294359020105662386876941741575699932549032980897020226823891893821908514990144181176323978581968695625766612552327136660843955774465197866378658315468936950385477696602746158967139336370052081964594092548312206642749055200976477408839766171993574862341042704852419050491759928260734975714796662714741273761425122078833094303133755360985471237930646334984075301935036154797833889146376541018930259506183540328971262591985713415173907929341637601454649190480294386354493752664068508629715685309712305220515584538762997557106375801021941902740230754873497054814229315090713105849500577127394306041822950018765653057867300745741610944224691141530339985806639534968237322581156964951058495319659631291093359366739256494020449160918511973485635283356111470730895484501394196610905908612778432482568000643135622470496824773300046757645768182658794161173658494507344103758806692746255606185477338266297437095298063680627305458891035727738909192205134114061486858049703422443076933929448001519382063736328787717266894222496055908136016630454618125693944845144867722720831738144581806499606795390955883744924717202851074960280926667658611710204825918971525824560445769698754641319901332550947040308109342160637607048820815996136979362304017309013485236826869974266794648129461796049814843783009228135070925552717525509955301298021940400127960427283161342456320236283243885454747233662478447426859926281396329597806898775085019644560593165306946216755547797192653521485357822377322622238433545929797443962072125079090124373449609112283549089860698587261319270454734361422637279510082015071266779195301381665095920359893184990603167554344236285267654180770779569593169485590302857371075150860335563692995121723915044120033540679644978226422351060761044167042770411615045347661554167906337612245252784695203055744695749888987442810236851199137195775348953850910019467995112545374917131141017813961135700525445105542252252221765031160765430212067029162419109217854642671896643290608824980474534998745371318825637668082897781215566788515010205260245850851622112004095630163829750228200985452586143569881928579153328992846494310374075735110504637128039239344149550444294006085280272313284048002619726938097980588857125379291098178878971366883484149308281034542028703575572183466800131777304431483641392783166080579507523082614150840914170211623849467444153474276749967046930925808793859037999269336125798525356062069337902546794527536404241615748328432447994315871288279404740633635825438585978940627252187537150740231315100678477591506389805156753291720072283035867832220341269640920172178503251457745561486750812646649651544472982270960055833668110739961822503235992099596213730664506003841721013350590092793665240698344941038553801792872509414911008675291282747606124730720893861735609491067162388101598251172409564458317835249486915780395129474178948158805200799953434989000821666892504671919929103392234680543235437669487340568445483249119172146998381993160895221096828558552942680152282835513500318203923552942402914889343912753056246098314733486579674501764870084985836472391438557384998124711294142681677677636324271116980830108660066558894861940423707404402161538422270091572527054404869130168884054938582084592266884378445467284272682398444299226774584655422403807832431327588017562228214730038976345484047209345742484528926803444162077975741695108786487292615437770687148617929824436218323382357708981691082068047123723424319207069007895246695788671615819435559386198567786288397716874772538909022238083437161824117323552349226908030046553175915913697981146786476463169405066323671010127190631597520152572540570687743211912640259108432471911452474510715466806962595135589376847535787159355666969988348733277280392044738749225911700167457124129309983485955747701404686719312759253592907456380523500839488811521597504008260936050693855189347397246934308173111426757649482838104660546999288562819235825969383421700019574775736806153976690244366062296012687647923497286099566148255070983603969514074972262321065545293920384707401864481209683198507609004768727212983689226677634184114689797397805479854011819262783608710577136717802806232296063373243395499193924917873410797719402499343625142661916524641308526239072101207864046910141528437884749663066481065199929635368406003255715274719501345453352562472489004712210423634508119845142292404878887987592250451172356610309420729189751914519187926988554770545069817354976884691022565077280280120294717417471734002892501763085679522396947772158235268655632960609620949232431726700283329296329963498776097431843082420982727293623541423253584564030954434106175714529920605419883708986193390295039222626320763850716319115089009175347865830528666217534226911373474926071288410457057411840752079898767139402700292618629957846436481982824407527866351964777722977475481848661277781009200240419307679885507316660714797514634481184009212687530532957908361817805413310361986326687491020220184430623506656507676475808132071022156781042655543693032311124013167805181972926718610130847557300858425986836814827932134272771922049181973647757146584328842047578260601859531756873963302024025939181265651788190032692436805806907593232215453184487211655786297823817996249553870665715797497358703999439004713708232266650193431523539658897371745384554451985103987094299630946376417513768128322818303330924636544968577431527708154545209280363925767398785691403397124311121217441576785491326301550129989010467197377601964653420657371364725758224155096085411126900431358123397778967758827112142183484058172058425801058257755000617678131135042047621347565448212666378990199622143145397816755243978221956630666930178245216970726492012052649540523648658642403240496781219881892466066311901525443971195140163116722828023609642825699431546490553147447299717418510521914991195165666294210803442918356774484411083697199274957076864875892699774419007355692145613619091375182735671717901799135709580342927980876017372620976432857273527136763723480443468589744286723074751509913048984797522669546877644224379273043696947236792977014966023742117161052368453229247151322179863195844734302358737159417453757063583116668213919072127742973217073239885243767953459666349217423175994025279396110082488785342740163917339724310262188939124360854449496024201692025268642110315173611625757056453576076839465157544519030876160067453893972850008181665773335338697233973634326214850745663860294255741443888789405919833694886723631729763337598768125594121251633900471367225008811860033918588691436488767150228477827338683953516098780694499623323463772993755373872939235706747025796829439894250889897517943061738527656614090644664369978690731266626995124429707613704336816819122310035761330500147281500212019392082274433021406610127472242726104566695149800896219175525036301271984141873127877628960505192109807800214024692686849821974990088215251084225005842314477514851404530251640343533402163513054139916302511847423728015563692058495219202542165249500674668922853309304443422467074340888531134817790787621512937874926043841324305655467062378115705452527933451797856619844360595059178478157487353909068722818580300268984673574347092378095696488517518558717006907507511385455323797319371485871835388393575341907188530236130633179372627967941852930242002874405330461156864630356807645723301484282635959093930245419038549282086497897333381761975903924472516734682607996703387052141390984236847628210920395820378894897470382088771608384875606829689828589594939482035829871777171525709959743510536651768769206830373883444964425196910313300600953573868246657950104011636219252517262830517448866798898642522912647041724129335447959484073951514965077282037110414920668810074368054856104877527914062582105433110679361582330263759183535987268494393009300290685250000270587336583957712114545047300723754463524173511950550165651862406579926857571867245923439804050041850860321152345656031844595826391369877863711336323558542301228646672832421173080676754779771528384115868373007567803587538727626439355000031739495302111272448287596231443962495481702243441729780478050673193100838420162845895671102098663844505584101417723752997467485441069135550169163752414893918171180715530021577150780580343874426233811231063025715516005439170362797142726677878264505678516500914602470687481906023276762738112084887679838327802064117130430365906476427423858388522092976615979080817905866538933446207555455071343829414720137991018974660843104367518542931897323403684023315214124867338876372576035945045739071476474035183162939878802240837721448449172808415480897353370151688045532483152513765645169801411596144245803564109895427855154646753676148105815609711459231223931378001135279358600519945234179193629692606640009140745418937670123741640837585496338480570277007275279488248794806218573866098900212714961691545178686600153882429076976709652972719364382689628653567987967624357720148529248515872431149078606027273282291833119123252985388212489345254752848834411848595516166457785979930425944676217745993866224454493846392940154716782023482802387919417480015531766409413599486115789347080849830237285441795719430179732124862559019612933914670528942653657249821784869589622226658124105610610745010282617789352536837115047457823318775924264938994974137464682258058754775076129947213793325453353614858184163229575326568225173142305596986663988206940425413059079930752135104188719552530324767124687461803674366332276470117017479025496135438267881727165518650010400768557945417290787441332128997883267306960428769526319719276594468228506853183659719732133835945617795302290775054010597766262329530522120550697599398317010092387259230211336042589724357305951599851774335769678736316007027674217311732808516552684728425784038740786275184362350777359634637768054649588388578442822862863110179897878296336011932508503484219608320862153598735671474384123730628171636665508658602590726354343407100266142704962956117873541514040179665279979032792268314874844502530425429684450642112926746727902670218492227896699803761569380923939470719248973108927353898185508666765436073216734056302671211106375852487591995675474933671688287604916611189479943212141848532608932794582347722098314798695529766141287304770759602272762095342771594771011811480079540991130246375818569699560550733791794138486459589665140116389567713071583554100747099838417579835637159422190449151543887585518622500058066660609294786524064418387310343281056983370337062472956359151642058819840269135874739751647349562598236561368259519780238010920848889363594757042503498947281761695795800325749087382112729279992674736092249489599873930424062920890498632168193292204478508105013300715249915250697309743473305613900764899489686795698684435012985275641270513712311761422209723977619367497285179197740117955241016982782599434523678301497613814679321449356972950034419678771027646568045726881133629468529506182859562888792688555748948439102397140712209377505912152905237442211683067853548214204407195649928748527547602036040583013708738885322355946796630832157512665092308821519157337196079034575198210032345582227647441908856239824714225959791914317038539017882520969330196270464373946416245975791498498237641455773526979327145920045333198673859670155635751578799114709847547589209788312719981566516464942296690287549782995542261711332287215255166244659640464373498699097054062424962762669115327849186259274265165897885857703061724458944184612078515327784525844206077371257707125617318195996147623292294125903964259624589846119669589858966735975542747735994756377346654559555862292758731054275737100796236458644889445141266766817102080224863259379352192892530190600206932452501578185137958669358743406642712385580974135359164383227378942528622034664851263125852472258824975778103678973014120650257280285761092746105616205412967253660522654043714741679956852906783905657945651145344129387712458310439436970679155999051124172754405859591312203432310476852876746470183219484870091967298115252400340629250815345237953701369706423492523561250677127023006488386952680580389177962358139878278411930562869240881563876865723795694389460359691941425863239156115303011240785724453921944238534322830887672433562327485758497292635052531046948177127522691349380776182780040949904489019386278367130670695750837545699489685132735491231688708725862917102634745432716330191196082250503759341937910731640357657184585382600187224022015625641662040717290858149809956270453956709849045627851282469613205827629637169207587561696873588177534385603258293998182091151401434088331808329975631879722456402432647096236265369123808251609476138646196344347596039895301158318041503218819300640523683169805031023901723861042452897978115406395287899940518026670999154527211802201691363432034366981839880097581866598269459836073316762966575385170100985951350300010415340565257624935761950533820215688123304193056492323905444349854328657946967856604242230411868652081838338334133301586957920352825144046944833578362295396094121328424826141557961479157481522432561836775907579968985696484482012635610811444468681926160128712944843287288422673024737749285699009189667613906815935736757021481616413059950559948188312226300568218271827847057419776955435358660248581638004719392734410492850574156493308811216053411371293405017872626707058098060660598061634923410400296712153069856520866772550501163939893307249992573345622183358268023716762176771861312252609504974471716293672668253778053553181196735467686136381245852117200536434509262891936551594492705605088200636102386899290774501970971188192178791121113151576073268892960519977939211879339612057614979596089870229660222226287251123107935460183057141818376601701376095175102569281339787331124548597146988192204409690712369239757713502706268714911952240779006999457506672383121063728578444653385151214074697119905618089567951520483421115040270379000492675202480641760017067890209262317354737128446199589393173692417154218538275734794843087426055822928023514875799473550803990558117459146740819396524839625840670069573189078725791878953834754013041282959486267426912391382276578370510039471321535530179324784784263935018112499695915809393782162559533041776204559722399056720122243216152908782252535672199879458140208924863750007805503004121935634453316517319890887429343550710141938160302042171766834725499437310927878696194267062362618505147120735898414354333913588331828953372323091695599852842947303600850861938927362768409859326819990138504129339197194752241100908963787007637085182452856905566795010562343560424963340871461456903406510086748550316107342517991393849793610928931502351621642675987325713931665673668007781426278322888112319734332331472608947269179727173933269761713632254336837995558076628600092240028793231102972109042575681988126071839107296471632563046380092658087340873965142963344844982483891201620037317971827221562169392420192623067036874656167572474764350339727492463240935169114392995622941404271022172035715755580895251653281650489533601753616669057293829238802215233887850166861467484542915450474317825077050887016082098214151402017372458791779542133764946259618597081912575183084949602471034148537356409364596919141756691115283646739918825455819894239679336399686444871072456693271486789612128510308845908875232115777275327865702062738215791973066197101059848248263174818492086445641672649100331390258346731869356834628374897594018130157018367204029287340647075301623693292578059075703437071438404904511590090115204205564788916728781319097801418594937068612100896007383299246627536016253150130681893708699654718027366193762423832947584516277160774514600650116643699464164915037210675608905431181092873577048667381204536393343471860156377730183916579101042191474472180365916503840689085394668799412836959392456312254980887366567303490043107958881710837707150651044878154904814303360952516817675750525409694497385465045499690416415739639830322700467889509376084224519328067861483064220110467126282160609898708023740995317713494677903412941725738197086177631413889099591071325983496814602618493280357843959647046125861454694741928645566043058470997171372143176429236428522047559739271721305005322483702896483024526109654027020401002193450672184949539543381842765415992353182418431678010767257184631111518956979472045821636139802803274860314394714591770552147024647931852921580015270143342068617134573661316710259091777648758732931515216938079134851719334080522908227993023570894570841473900573055491181463512599848013464511072286365358059061826413586629230091967384221340410073595568470496929452880965378020959473613340807680722245886812808215647381143473155883797825047195133840895888289565611549804219748664753986490645055644177935142579476146863966781330447782143144506860081277838654138374599132428891687962072097753412815586210959990003932561998165245281568878877932172222569015875996644451924878885887587742517835297879824743014935009856301176548038861825435901875358065031516769730138492267205381540597256592968850102801857952137113969051017037880974329475712096040821205413780751022689046218717061804246886272893137402370440699737696101047438749387624964767424593087110396176098228432680735014427548818596573072109263467177200569182022094543019044464295712874732142259577678172401890271199025739313229110264991203763707407466513819520192759384263983513555318567761083349573735701396644851908017870543296888992783922550099538320887522895732165896387973681395217277862982049791903788182239038994937563477985005736808098703302857558637315954598037823121240580307926939929117872772506515370050326194162701991298554839029641788135279604927238748304690045672701584954399430798203345869203932020617361804602782134616042613781570636184450300496814490250726744345043098759365807592192200561120982489266316107420873916772601423306670361286484885403535756726380005787447010213048044364611009693093300796392600759168835618196832485101688598906004727164821458855164372431486484849561626451763995382886545294748079715468031459186197031862192126994520101782532689244927383507276666781152773983058046299015819823905498839203982728648628786053334631315209993792281422808368463894909851164034459545464876485335292097502044775532676952100564797474357331801971978622356005777829226317840600654385930970070084542598179757165815369667021398083390859446253114929280324334777251001728064331104704640402946424781193757264141788863532121247754251882110750756411297616949425887084152224020025205308509766386623522250827680204887868033720458154262860771843297014461894518251899224214218828698258910393931863789186712267691928242077181817076941867700732637805104016873219034202775293738348815728402818889713515269283261730144276729736587942316555226137196503152004803050268798807927641308646264955106028099252513276626777464110490049958323388089372369601254697484216161287700997720728387875562332485081544994852306599057409584928642558421567942397415431750172173964593127174909137374548450689893651546437222309716325430863613167452222197055742859019074534129923177156441362730251982195610848800831775309432245949676667135708007564807035174062765106295315864237996050930904140187137537069482030679826400259486341525937866504116896505971032171347862943599361932994643352425621983352074308353385069465802723001023830598626140242831443653287010141087634874591614848726231352005836981027485301451433344611087824432428943705249885684830115289080555120335681556372056021854868534377412317975349248429563355064856259917212014113568053313805282425985141333898865373266912054355165364477226522894576605729936029125008220417924548904950474395145279364725523396890981057209659749353715871354363620331731343707388771296254896092361744514968050502470634670585785194022963328293054325542567489192641241385265038121083419640820877664844073256917023431686810409608677746452695344481393846212387076592324228997056396963939203387397731974453220061994936551833835645361599408812499031269401911043016268803662466371485818818910561749786408965741331735778787275516408420170143261665566340272047272648560697560778567995669491857730224554829578289437103207492723741684097721373115201288355647888641583379415656324127581751318223384411394525891866492457061232210005647133803278334528642091098841377138789697813559734007845905965079572479586494976701696674751739713211001712790655111137922462220813168853380279208460979645715403808446994348709473060531271573332564999451821715322413729791724149171383919440354575746164780898847449169243954428181139533946556902221488335816838650204982094701568129301872867157415926572711140541954916185663576072384211444917463307076925061384214150194797318119775619554450629049605134706481168760536824959595750467399507508294778763179267346388008247557565689020447189606487208356754803346416228159732752582154566140714088396118698500695856957196361096664301488841120735726610242316374153041940830861665233744256395104784735103858779312162126640236444530958930750650688437877110497835262552937778949548788274323713285941027786765431686050363853499619505294934708193074662716188394055012093659210320213559823619004319416657865203594362246037955467526132786448681913308834311835994598369736437679656113193341394437756794645257582202876984930872696926753798866813136611965134598976544524288160873617935974139112145626667702878638123934521671298017010876039471927752572584743240701401773964765667376519879405982199640051692958066829673627493992535022593288118792476933298930418775159934384878528127465097740972072725099643077779193689923419967666798765149566116041052068141970479321852873047991800812771332592837014467330679798311788001218423452779537822634295873580727409005943666758988465199420062897516509402489590234476233877004591960902033467131914774132683327996520133787088008753475605768338891847176678994067191146076658729735169409714660197058226104902921458667111882522062886073720746793603414099664194020903773437222151916334783450655091984691844236209839578095289747050915698108790190778022940113082515678007483761827906154498517945232053452512031744512311032336878751399366044067482499616785040867660072509334218439747791611082376984061204971285980659782831117714610144042525181375221646906706276730114862574772060812863027347629663088581957577167468386594674525146617144606825776467384813158694449840616638988933060582201935153817451315307527260378667789168410100072395721988518179980080697652334945797224179823931395616717397924249177262248298880888921802765727856647177627853975795301718275874183103792120989999028089240265005769354084709514279375525048400387257442975297773598895847871241215459531714818681091852428636888079971494840008068519744932833381903577031590842061828828545965589572875822258387151931398296504988958468961289260721876887073719051227921891883780873354249419237363656803771887453511863026052278066563166873432661170666455213693178720056767535060407754674566203751345387586938790024422448616390900758529057622438319801153941699691647083273997985767045669888874620850232120753861095149490226550700490155721748339791767161833351267220122394628543048433208056695611754996557854089198294492747541801571006247635050677848603903483988458881491449567833583490698180951255583633466687732385307443829627470346050987598519226507084268427338007194123459190143151554728657628541935755284859708608972739887099780191781855605346811295177644680268740530649599781548984729324181619168261327092172217608628851489547070218339619200496281269570305412510926156291465701788207808287728347509522908340156234701102882811402893520867899193783203891960823712309115339284831653743960626798208022909123704531711344425928646606737078566073667134052304425366826325247292311265468324661450125076747517228539166575630382495101262094355668030223808051834189276315969697330012172824332983086004713646662635612035328919390645851515524145987705239955366567029505949642621763075443814650964909189141594564990904218976727625356203667351427225215963643351900218133478832922586733141364564285159206454901064072627835571592714223747369750614666760896380856304595993179799381955608914456322380498573282552043969657020892026720585405467919845133064020024182455582026672540701010470103321157860109197327230482575374859333667948029167984788622132247867083112367635125589012447659317879089842312346313068473984912747992718809488632434958273219583013258785030072279579542857490931206944250596100112140776789516250774254467460062508457036390477255293565006644618243942643677834518450475921684270122138195673880577891948376590502138447647277395090265705022757520887840037540549227120221520956018829487113103049580359078768482345796160751310541890080893042245961648963444296141572521269717571111214974368007412624067630477910750204749326296452303960177848302694576725837785238319397805433277155337807811701646487191261819277063904278234443759189033323173952177780712481366434779037286215081583879147026735850247646277234469385232093337017951826187138270485129135908581818820761895399162053341765906283655865381890825787199663044158382112772017992641703716040793047863673588024872956326817964396874326452029176898613425523587292538749847498475845810688493740053791609814307996854001751039199094925716360967121444193123706899242723700701931922655256107897038120607591361096924925105613029532586947662729735628671610322676792651054651727982520326978778397772789353990623280909551918835932317717681608868712211559959019247333160406898639502198535505232860505662705852100019771329773998257135259899784425768561097387426152744018313881152775822370456913924343815742808305201985154225349040292733252734328549926406543889257812034730689949089439634349003507623705542176935483926974749213371754092869247431357553014446838623961048957968267217743334664740003832274250857695370636381598569076634079027858315336958532484492636816171735402928022208735069662249415967062401966855498522198491408895548670948480847453441348078088472623348665576710032265830156837526108693238805290481706520997087087984402408477014865757224677624317613725112320177272334755670276581266068700594609310072286162476297445558212183539392178417155025652574900624822795655043210261185937080202655465515622735058990408835494175915746988278667610685569779174029383394934428076713785491503479437918816890910392669283991716851978547532270731080432242538549271924379687412545360898719999570553397195044934901813542534376145374932116790186915780614361231049989735850981516256842216549560936395012503348710782884562715602635431212570141617743470943865851447802441298710388311465966295338183367500548453238937331197034064609970012478538586664728476464744944406151739532434371358562828370140558036643509774232346793201778227359489325387614902160599865870685923618019630849427901418947224782308236367119111688183120738589041214242520540860017575082460974316547474566795915095686965282371670920539302759575958480141042428069736830140842258057556247381956137519587652968665743317153509424068722669148693138951869627381147355309264286957603961294267540129457136932516738356157319246312355938209473141131378607113127871400121609616775670537769588384780297630655489870769957275630222786724544246692288555133969716295483249104461943971661368323055706270730379436133725671341991680234943736722223018295603651902995190103359032463390305344230700558126555106833889167344586267343855745110025459311697779659921846727237066658040420270852586624399417005106840556643353962737367937535848368250327962175228025988165328124323426745161585874096658287835631514106562707911477989153547860545330629229927116558302411647106938928387267437303498267540183832505413744869138515217528189694085035192616960566685897583996743371806578573103924512247665590948565301358682188005895049388713559439023382652725802306434709869498914332265326586847156157040958548512540143814112061112504966821480371007679277086574018686866542298923419916194528521158724440008705627751306684810300359423554283621144462423040848976793302912550348028168001365345280664905910764561771228407084796870121487808671295788914435147099507279572302141906639788343163116270139248905618341439755920976121696410984836824828044257027866936606143108562580504405554167833756935880069134846830179303980818802256139864260366797323778884094769787102816004428241398602262486097851089012806125438084752380063946491904216679000596340537893857914909737507084813568540006100279403195019962981740016686186844526587796342384844379460302426795080850599021053561739604172286573059559429745922236185382988304203371942715712580616857566930052267299859750062815793088740391572194007825034026400789863575318151537218906833202188073003677451751473281483086522593951390156887799548611417488868567945303825358611891265694457535507952384738271156307292019255563328762175275291353324729023901444237048091944917559341335977572026352226918635287692042482970954555098806008951459554628548866191534294294873116273973568588462134905570571515549755515126216932798787610791144333808923689583492280482266156688807438628993582006994111150312482535830635029102474269573392556356194421505218505977689301217529809267620501090670414790742978084495958902260936609832585271299531474318020397474747400511361112868615927661049891558542574465395363767022268358033622252803455694107305211300155455557328964084358905487475916410418914521837928350226584576230849576849612714432828877498417623236923231121405299130832268552751802818006247052657307839943244444283627667802020546469340926766271019453444923102237432511953363812443373210731290407597775525405189245832612230672134272617350582348011139561650282319815992196724415887689884838321864655106164628922326291064152627554513752521714863538784781348298341055969120521589429712030454443043045787780798646859344960700697844481885790185142915701525108672436687718691474372648514209964877941378554452741027627784815959576272065972748103712321649622360529503051794025711108984336163739821830874149547224489202056870123790233416129946304203902041049231777702329746134394437071501621707381155652222899894386224713736640120738087343829234044620941728435813726080603867264680836564361078084884575023714623578942679984581506674322268605452295426223346068688029106824518719900118379325040050023489884420212543434191216668600254892424995342985345574409439804615157423201820971535386637217600072739554029213451594180628141139358626633077391359209499791296931599892419840037429679867499060137631261028838818777407664417016959279783612636356672167331835309966535240802462382551477813753967703995139681452871026052941379367569340123731766970831185767832420001468327461778548438534618774573723695770338076818766162440771047119811268328090183952691365143470001924792200226501384215194135335428292573929052450564254338166771592469978400665681107750687272277874568738068574750268588953045884431691686858908177093382637303352647890339203981165226685153509853044487426395665580147908578137387899966485438851555503486464189650749688670951152278336951431706052079579071811613593463569072992044322408582000098864946149718604079953062924568460976533512971136143898888887732554467723046024859518593290953845363859574579677234898700068503679795162102948843188679527895767148829918115676768008550289484883766056635877023666347488552165350485628840030880489497106831975507572733264885089473596218153935005495098967981961509436652083894568878489482789486278544940893843206323726602024884332181401616327572349679235295102763654215786983357732336793282947892678278467854143298983377322054757144288847329632581247346403495208246333014555490473412824526035113859988028629332219468204955939131063859926765726434233287445347720946617274655234269648034250861822335880015180953963457825608233520222142166093125626176553038716199121728802820188368655698434101869128932175889033044347247488432888777556095783857456608198802483394458282877169437849859083044503309960025086889474877458828502667529408399355996451374896185825038481759912213333169116096943942201889508110149311040678785382632733715020520878376890773317423125177172310214392000140785955418113795198280572283923826531435086165766662431980932546929698235213664846559526810114204780982393508657734919613822706171748274104551681419524345007045922951348410817602528137486872842316780859524090379179392711177013070867340783855725341387653938765755315361577917994273215664426327782009611531624820910880905869093210368035682512161901845392551766756975022605688324538580842642759690516041239777550754241837921827586950674341802075960922605960039293053004485671527433686936366675944775306968348003048238372017028406530449115632674091750857334271206246500514451373211936927078637041409760959532906007993360011493968658403736513143812084410849087112858674125481002627162914526857612263677220533078709993128890247448847165725505321127519166732004028595121758622587009664164497227679418644746969338583246776478427920133336750645313777522916306464243944350737292413148503808770962024054023186150968465851096974594990845658565874881420510219172263757817275111412662174916153837892814186502736404479080339658852925391403337244992288484806057719411631110008027197672728027229070027013782467736315852250429971483257475842081920854986894331074229540918990231471882156727987211620265717713024416398561381502758341915616741627484574030734146755731323900988848378188960220500972984715260010893504746537646393007344098716542925980528276381495279847285986347432684163560755570280963004032919110746567374758769324320336590567155809016573844928228482182502807551186010524543691914833690534400397893074651672506780536306506335671804917868740299161210858481540133565979354423567764931605596548777404192757085443618298506037289715048804499521671172835333029711392848892977396108548883322644431165465752365994007226764749071463426830976856819464926021047426320703652420836894998895015392538373740832736650308796039263804111078113793524510361362097179110887715004038664152106081869651902698838931469430158758158704908685417500655044204768036240146532444101791660494970121308135705376265943053453854389357346109302736682240270608144797114246885182205877134219325063032440117606078256009461005719433661986866387567680849562954249710263278221822435247375570799020702934448319778366782713506599230727508853932469048329104377966318438861886230014885436545170135246173090540314434577763310214147019776486915404486205986942091572681873546241246806294044561961528463544899868320637567999716311480986106477919607173631560927555043608806461935686167288675401478368865089758088400513233075121411899653793224431543110247216445965685169475558752810995781899471790027620859837780689580204491992204171496515772227031553728759040580523156112365302494541727930238080520035734521809189531822374398233195045538250904064872150504918013515133183473510778909826440288805817603789378144396527263808642023592590994247627352792527670955289947202261535087594758215169856192344077823183940278412110143924038296804146848035001796304744009251201447436580469214013880247630944974448470832542574900193068332054971753435206182655135668870217722444894527540287079674008247638915116819026439206486344623882307329168075462203833049704492010639253553957634541268631566143356491627560911559525333791431160380712408683730987404912756419730977220320226072713693555763401746752900510751868076464794997800797588686741794386684416554587692203413414010453521446368957374065368465676260714061006658097850958388180336219794486508241096528151350854250546334826394754994143578722116432031350349112569379594037638152718203297886500911773277851215882408766387835351864173131828874582667501461308226596250953986550026047814623110180225035441109914609974353420050752164847491316636202130918488392743000186126690368789477935396924142323884988195532743479891443212655851989900955351992194872738873715419704909049621093341850572038880636529481537283174097262476211922403234939297639012057664985166777081571981597453559034038898554239134075158512162334787362456809369129200034337095183298553941910006304020788036907835063137781107034105185415286794657562174940746866717728626109812938569768177237000005604177112846144938225127567221086938648476710769556669599878778005268532947979897176384741655444090433641611899929460657678802044855232414866010826265354657549523866777857307711025161240699765189582638241757271318660507012317857322149275638820319746698104464123552765751142389822683330025241040226931338385987484212762699947681561678152899504642698390150798319459658987904745388253082334405092750905825437544933938093377466745505314786326511524200988320301598995000609594824549593227394737516198594546847282600930061885168809986265178026891002816296730980382754756589229006146860555987587140858006453230563284392454785266998304618416911133238853633163004258723004632218235506863152686207314035907216049053739726050184522034268137960940854727935185098630201929563487167497275108267571585202983837280149996588173449169446403856581110208877591297415199710259685745612904261081587875126301008026328867195662060024680237313144003240356766230942921458671202206237211518016293429797340192887849184736622335696137677646204139081913006387970962932025128500819462541527296962724315497744715878412260749248805982929514956850962419981489738267597160644530844862611077005580276453167590547508297561737742101331042659677855467040772995039180877992691387698320447294447238805813400446628604455486323690057111720678677541691354013561381992683026353995494545932010001747109326496430831501350217467958683791055301579258989079669623914817351508434488265453176938976662077990620204453867563835812228831458677156904725567092823829783345414155758682658074982841917768260402368270614760755419974048249121495956074659915919083990085326044644299504013341022254361622523017373612829941385510596198149633265396388664085987781427252880560479945533017393400207182735519336085716512590607288136263349024065457259474701869446349495626250195817429253756599626427237605293134790266255966502589440231554060938424318581437848537749958370181613469175751972551010653809028359131923242281150389332598664032500873677668420538417917330805515758549981508054130493646393874488146590239850569526248345221282588303923886130871988449603472585986659415598201711297736972483142878397035023184394872462551986655188628943012048103128067641770969826824671938186756264733188858349693895297603400282073248211249035727007856469099163379606026257290000363599179134285143221763207451371060923426832690369746532764015253542093631571634605285807503693686245327986119288927772857629904305064007627049405559416943744053734611954822847552616059891515152779203045145685350498686172557287374937744930554224449382144719069539946742655992211857089707978568920467559930384094758600695526060546055269665879589100962292706017143193358172140301439241833537476836816755536433767722108652943226276970609763471995702119564919259396015951407105757162107934013335208781669475692272175747297252147769341775746219365843716072213123372485122314238859444692177072209804673308585488920425730420067886008075149660243238410103880891399542637623164614705769070557514445388681963083422075433375706440317173225414862849815360271606569910978476799386740938962130982020913222578079783417806153537055453078883890476310338429454452904075201831894563354268359683414974782897341347881516083473813710911438266560344214475977140819366786421400945073816584282505973441845107685554259929580826006355982515108353131949907020985513455982860597055322113068701735288584357113774213293290592574485159507341174394094326367275880690415034795280375488398110957022086750660827770895187319021704553388506819487509434791976078269710548408906154084855325347068421969480986499814191974525594512794365396538440225668792694206525714885117554345344314758608718024826572822040923106429502395533105792168003646291485843104425896354243413460229825745323183715536325299512096702401105484884252281705710913081311965305301462580989236575575974335275669414150260019384966675240660078085726130123326325000093716662099532961616540373687028411320626214871697996366474007891742327448489593525864099030270657436006391109761076707803841017528668224021771378724938133367866712344937084455824924252229805014379803830851632190294390493884112937314391763488290974348951597310021356886342901321955052933862468711043712365502831033756028517839801548999803893518663484107810287316369350206047468509325012424057877586507084329720531737112375410804128227597326901485054136943094686696298699194202725751831704451662611041729243775542283279765820535592860408928854369667644566180673940320140101509416942158161511913267205785819722958213795328771743382426462080529172618506193224019676199627097151756874293930280084159118680349035220808028464361509338128696597079649103914764365698204902200452366671997861897700135349970820154404716128893678361105201381159620434942489080168289293612748427111968210119644068630071159177616452019768338206048623491062557125560237200734530200117175943063965142727803160113905702924673085043440537318522024592506916865334672030251298851349074996163715379609337136948011383457870326745559490460773869968871071866412395807414059864250665493950713373424981789880629417675192438274250366104439505297393668025040510016865796125220090402175339927853941034267245943391907686666033244374567458225564855154376445344630303996170360565143291519483141887473675759511263593197242215004021356960478500288472384607809133356221375265317146844378071356862557385112860781217553362075112673396258488964081836728389304003359006292319787305085270257915491024258942627238833503138888573257649411137975998533659805624374496267280398854485305490494113826871422484779752677428686367172178230728414616557169367168506724248786435191624704129097313931177763727588029244238952350989179135780997758941366166829964943308484785868934728380396849927887199890564842359366303155441724420234617189934875837232306783778393557344165042627911297992117619640159420541456751159451072411707125413864089809507285927115595709865299795484079991701551600793053366590779732529624811929645656444032621617944987667372404601746232205750946722514607483749427075299145827266461032111434441639274209963428194440856618301747562990638254030562166557364146889894573585923905597924927931192830399720818015907631413701588284687003845366003084375372293460064152995896897699894019405675724593937604059794286325260827638575762185101920779132856625678394195824649282883693447879206778810121547288654470298649003017221559290106187671385654581237510369850165632100781517217117269006246312741896946716697387537142050471718142449667136946252585541106018442504096970029815717110415506056822319208877594323134390308550596272667211013274458989601145598860860037394449557979307675506698433452532717490726412426313722146950088546009859402832388065630928989564621349945406515310306466627651898727074554382321157550231544196205851427453382209594724712016806620334204033729337917030558558561423884314036136099589330154653428279904264242324263664146983872099392678102290384841348664965068905382886297056398172376620134265691139884369427365650973572049032608615829085489122187077990526107923167052149872024682820463270346356168273918903869356647550846156133338914019759219927280498128353459196885024735604609760108573928517440411916599651788181025489705328664882245096259111046012742966387889357731255461786948078241648677193207489890435137693543325039929061454255671174454029609405025152081985023043709170616003979378083098133114387919476001023546219743987386814532908573743991110795924051911376234888161858815144079519680022329597305217771618590858195476348520381436196512621679773455053818229490313330699879935473420238866909617467071030299254570164998796377382063651284443179744080460476179207835949327162798276280012643744330787183995116446623742960880245928802336201422673778327005306060083691296919327191450688241226026987880124328491538765715271599577637465875103506445833661585910423965465479051393065242764915434998622587924845867554873940992826448610706523029913256173907467695498152498625648088014818339758189645575754674493976247242789293628761872143035983518191012678411673008377781961452678231329620284942185232987655038352698262460692917078515234329921313561020328482789797074768171218686625074069080508949310804306231234344491230533675667498405262385637784964153300428390247521403386095975942278774595851242758333463109310728138140246431693385938761774682602290709202562465796792822687954553747539007981727529283590490310237823417117474833435631120363676461116622061252121827927586925959677484281897308742604995141236846547643072770996332055953364351577117732505823025046871312799752288906389985938849556666795980199171177007240393880028676327931401035707086192839075780454507309492439852858552075572004436598919766669097504309665596220370463399778701502407644640129955842485177062512679612724789062070141526968539584949763984776511735052159625508202672191906244323814329956747596935040735742208864278334698664078300162644436450918062988699079957456723384811145209609153501881173752240742104909432898581453408542486148090275542966277118337670132024368282037211436658608613565819236268979048026280050318043418564938749349565001419478133106619269070319993761887401154296094776151501515617408652292265357748478917881735326743911064668648766595840923402994369779473209864439690247389165214136045105858314754472587756312820202081580512891064028085023637827217673798395616059824157387303361968454179839719602151063272435119804539486116310864045969199500485727670537537514969597637256810419925752736830528373654482451565324563896840013744487672944789438171430952446719886441802895189927219892598181127365334305732641703092184329670006344566312971162362513903845704593234030076678576910181772934244620016341197996793778378986795310330987477966844629589172643375283706463358463128791346817492833535701039742925527057918405608528045121358613077653891534462621777207713927909152512535909384132720104616479889949013663443746183301306978857607123968566979452689082390024006290484141185199283342370216054221015340389369064522931017784987713317862496838481430058577593742884809030944856071986133594578548984464931008149221948525647260208597004003274787324281289059428234209580453832259932667543940613306601042805610819955248441720960389765054760285218884104538027362959419745825975980668631381234079893248326674778315389400979155511154572889724323823815828892023162935340194076028626826683254321187018487292550890060570474195763036202645148713006532006252999713074032307440322756765428254059040649664143089013166860513582317508962615097193119793483214977971177826745421383300503392798448396835061556614012537548176750980148994726272020165118287633814690583318950281131187334316715610182889084548361362230596075477905271288906293303966889818048002813627335843557518645222068053261385590864143838966722740850434019917057430666358673045026039427144585401503460486975053696469424428477828073738446892206063636737972710162944611677151129532862483161306118191743798183817769004110888847523811267385722345351026315881355178652504846820014868747970448267394071386652578947531471614149650655359167550312059204206047844322923209992026900113320317615070911104669639892483318379348797599355208184514754740281994888734997772107601967060503972258617733014459167295204187466209931736280459446817652157509340062150579765438022123604113041192261643379796921212332717128386589301993047316505451360084234084098905262074440869049905706226199866255123423509551657212904277017499780957949655524772583999267283897219193108968039628979714172591350773661213595130793946544662472587860402197994435196869274727188576176296622483571482045082974664875949613708342918195230211377985528560089619523626148643976985173759137350045759575079040291853931658643522264874898660607167904008736042389600489321407808838467930336388804482882052846907124182364362351364318590957589716454267203799155761723012258080707402923184557601878463600235498820341231370909777328223396164844542268079361433734632955444794597913345782092640404803268450502934939080569194978479900678402263804632819882319101800732461901190932675599169721089708793738112651889534385547963344567362913304671076131789495297775968478846662948729791673648690157692910226562350565114075035115552900084599552899152782106863926403866347768750820303000242734361932559505433020896154215164678070717569537273903429192916792476465448502900865990911771318652270550625023083837315513258601640026645437226582644544741947982510868432461022860821125578356853240540336578366785592432236674697132573417252107221019202287291367597512799887702356534231854482005260929520010620330237033903501465348977326534026981479561491471012864911318043628796242417257896793844401508770534798063842620449173553803702745114960184855240859859253186394032636365358973719876797600142525814086698728268094271520350134988331402201924310756030712111909483957755222044392177606612108904950086406581906910141746426118795833773192495500091731307103311829023236578205145195979679316889628235401712065799794111007775976163064196689498873073671496603393741228966099944207397645787941074871340762275584784565099095845440112721753983273880333980011107567281714653683885009095955318552519862223147919963277468867122161596033824163473040695788613086714332583736714337747590243381825801105254992713428932856055992779702617783137970782396651020888505708402423691157632413921457018209762846072742302585289136352323851865666956766413660499371333899898283443831214313483997376076521222829700421213760165441220261802659333648126874955497175043580404321471259037340282789566938829473665130245583965018180675570329109990920782801691066074546077546553556979378772505013011740849426618023531803915394660991561870821499112225067470898679836073428672114600164869487101536907245404472341887208670406458619881912962124757199977627091060055821444398885190100704393381816766135752861084280262272794213783049414621976909090775204619882469789811940795048389494416292628164623226299232173362124572871348746501665450616569189520001802328359865435959137931307448873757557846791627574847002646927041143500342695380500699025173429349413023499974348865661332421897607643501501646848297325717678038531875090895297116261466180837974977818070554491269798643795123678844292100110331202739354423083467333088634222256454335200516662047004831441258926910332196189621594920640416012663543590220930828538409495871841344319960882712246753084956097456818133479238051036324465150901075249962401657880861726369503045769698941149018266125246225034304766453590576821432699643043432765221508076782604236919474701920594256116363033650869017830420093144849124558255402375770979982840406833040695319886721372336118988568557180803188539485831197958231769354718282890028052370136767024666405489466354032293178251188815802464143196861065430977536198084086045539194434130164669785550005285218556942711592246947412385207562497734739143320835389413302960683435037006697797249815254117460019516815444754874891757056797547974791353353414871155156030100727060934363763831403335356146555987135530085551790408410336151088743229414658975710638074475568315004858126740829640790497242148440459432615400392195785635794843837223548693661697660358908507329886472646136250372640409538264305053367493863380503163915914435624611139672074861159246776780983058853455000533789268784578877236459474728282345933941268190906098744732110819765177205771924635860512193243013859913688530818478134216080320854366756347115720246909059313371480900167041878975325982879040460363075990724322133903858284767251679647272262094060963693589348167161930043436808880006730463518181762582532124994298393957373966261708759428265110169435270819879651125496058633260423372454627096505035110516811856483797078023651630333673304586485462875920965751316415020776163701860018419214059138817172921788284197175714656630388981626141898653511295473974047262878570953221033141640253235659449279403320806583880141217410748952653186083372952559329120522541611283977519318251720086510057243486391657517964227570185079912176269729654130408862012294119812125691386347027683153089568186700662385973950476993432512140851860022292861316259973001828922682560263086023330612061962452465522958726619785994993006619282821804784955172462505787250424602923123324656610045707374630305981145259707052115082309626314317385480467996563095104080065924751585125950913700522280715017734923569378568720282830170147641375428149655736479118507369395056265735436973700330730908087922398574492183872736680760929977802112101075031404401376774273860159230320478622448673613033871039403911828155552071175379797469848528882292263138181090814459313995909433057812306960442903512641114692566326611122921289246142286927678625557871660485680415865151536350537193355947076533203223660033845899552195094997082545283603301705220296962029528190198743632734638266423175175970783003158231258035273223359229363460369885185015190330859015386885282001333391899544151290140825928538189581829675068430891092218931189671550055985429152416528765527030558579987924825626947604197679972893070433832480577896998177555378639739084123734083144504116896705711301676966966817971754625159679296344670561062049191080013590667735555832460227000745665236830072332416730431188222003979283456178263507207146931843785985940660474973671412235891607271504846539218563584791531393834030992758880951461007034329607918778256218284882483855587269013106594916451849600296162672195652449469480000822837067974069077140826713333528372268860718521803856201299695521950494175773146033309836040229754252041360933872538595910040312608490245758485850390119418638204040088322330159945488235288368464461713540774731375630237924621837929987184563670782379932665476565624992140111247956095975465113753474383750630060863956399174725650275162905360116265924561508907589108212201492346144601658495382285689766472089748408090222893438872667907863172287866229937540106804949485461841549981173885553705813897863307531753773177029045546387727645934479975309375067265457586467574852866879679946652192780691026397679423027750086237287737389303068237493512757933737232967304715746184713649743236427137649703313079280930743452644278425754712987823321866162253872810164963561932011575415233815135986917417504115761496440071246172256462627106878431898555241098973605976262360996072341319612098011527670586242693041044569448944176724647776821485296459605612032298567422203874580788636149345925241578433970379014134429293936233831366378639974229967736070911835286364840428453816644327033358086381195969092553218787770490673133076285440154237219791277967557358703632688667934501922559650867254651438634678037023849149565401624699779551115638121945150545294347615168982708072664669587878802508034627255948314331696521473760747958494069684016932859487900791571046268684629061887866977598008354859690904710553128352987014820552534915916494785182735794652721542860433453974156759385871388537976552049933005944343961770145823718384583960065710068749195942481397342959434383462070967224053579502611934520762647327667787077029555277836542060174454118985049546143076141324286839322001100281183645975312171513997763849904730928858584997619853096678707426648826607412098117961308873724087194419030191151431398473478021856456578364999869030331858472193575799082045794752326091568889547194866788675725017468784660450764094638433831617532143122624189124871707302184608706804856700291331567459702666597855832135099909800777356087177899114524603160426064131945096032696081147312547694149425567562913616901338899100070447469783911835313952822182792225674397136928750859145815374818786064749897720314228625689234361146046921044062675675285157042458820565982832070002040864570596927200163323059207447567459265276838683084595274973534757406363461480479341614379457363108249486129649014588859674236590382379408069295674674055645169197955778325273438871929958728936660104958887193803716301229257599363117663789012964774272835627030168504204056270884279021095199227203869610709078468376239262466803405719185882561640007254831285704045329801850249805303825839491117337953713052525513980202157302509313725567092135339199507658684070252158386603412372632036051889553512457466737265041788611420693915468445835091299935130764132818299597835084514564553982421451476351470897718659958632692200670332727141474481588802372114280542543832304047836315110863419060458649815314416583514680459515607967876290949735534200736870454422465202881516875989432221504850443958276741826559640734461878832787738668936329874069808150922564315666366911837652120750562814358638928267795232064489419070007545371676650482273226145100566932824028291153337653660953481005558556176963292626005462615780961244344824730456514026725595762316204858946878787227697716716240943303464203083580847720985327764749891419298904935064456293926102232296389566778071998580522685268628626499048285424797511859470814273083614213977772984984462370075969686312045760120642530596313692020909838214089786911090438074474198130955838693807111289770137028293356850394311768253204381398542459537986904294296916211101632887113935003439442240884660598205385192036364049335346832941831341865373021581512084295368029659499830001482510908742755876909336131078288695122194289676691149886011567308583858798409442931028961166627470273836624086118179891284156824373253823240817839428943171485514489633045971636802106139402397231971267244880156705935148456625181535113583285849438903842878275661966755844953363049613968115717925714882030457643950707447395224999973920817713175176052895896055098047417620969391234315049271076935198214226245030247707695935489286749868664502520766383271182123951378090492576843113017314814893281467143070193640579697256431007057742290458761388439608747374823586285777054568892002575757815539860074946316166799514612119633005192131367020156505322358368780144743250519377850529782528562870938778926224414658818406180701196564450513195346580447524386144626489684058506997782887173855614038075491404030246967817036160734190678099339006172110913294878440519163867408114812419827272012855890274969797190439453874403132335274092269071372971124391363326823527541443938515454151507878308635272922056048732155558736905710054658736813602315025547462604562997539273034412154793918050886747363398368631404955650978232822923146933380523607510692560376832524187168797733259478905476419836461926544960429164164844240486668293685031503814013982575630741151409488891617474571364936989030560846057854810500039748183281323379548513152331169576716221217426416233478842819058502466611115363093111150866687380355374404289197173849424515128839211227875700047727598360279913446270817800814312755361745034010419985463023935200118191755214993008329576475183529135698859869146593371679095345739934062615508999276014619634254454131854766691428603150686127545729421697151823976637762131380844643459725097830376366659883157821377589758021289741269870056718451015942162808684870834601984549869954532079963960165872342118347640187362657819934137740598053205860712070600327571247399691219411897686638353910140700638564268715617171194802506742105646650956276874181437270262731332543945528036515524078978671349707567899358722769533067930907443834579418532638854652598283579430206460093546584792947155837577752456844869100025699587661293542222999022982449523045188538045850539341716353461220750846634927589553481558650151945265773403133628057249480218633471872467319076346722645524553906526762490225278634407059226032213915764367794085247390121122925708170342646886535875639746433770176968238988063433555294042542975086404349650742055864677801706156394004813225880333785547494158495223667955564624138431156721811140679144808167105314320629128983990143493938051718275872231074300460600942931911624033516736884153947163166824664157828413353011505641446184195911690835176720582423950495988956877764100299870725451365699102008024150229163986218377898762639529873510120429757595493854830233508856876714299634731899107896013036597850365852736056200085602384577196801442297408509489773428839547816190929525734291014924482600397564921680306175395757869238984182333755880239450005786469749880484823497813792190952732446569424300444310979791239818635449533970175739477635086253848236007824063881329011392750405133696153709972992065789352004804909742795106028841262026788079602636232345247048436207867752675606260048080267695338732934025398390913686439147424581287571653322145550248934361713884444405143646837791202715276053310413297184423917398304599649518526590346313451143805428073470280603299761759909177524860305139706187626560331490970460529152274539484209165015990731922798584675303988995248742418444883694756200440521704441881438275505567191965297849083703506778785927314927543830309154827719979259093635646091132425865859127033504176209099971526901538376351568234039558246528813443187940097482623229927726756883756552846320121670901838545312914014819871258323697663886944453141683638883754101906225984161050566941194590083524245771715925172480211673553145321747045897607793375315846764846900218782288603982375970082032516623035628067841133531564199061831544461563035069790145234569747518880365529066634676509793591282153932718818736388014997617625334560085730863460134698827929365316057880904491677913420435728297840381327355783016035677880283960200099683661462337968447676275832653611103808997178627623914306855030048005869290077109594791871723190560677019311774780647612957346991526322502054974505292794093560275489849726706135974689167547072159325537704049692044394159421514743725806516360434650583020338917521182326833085426586956434690272811725283665139440402897180926814861310032436807735412780670698973249912166368792773353979925805985904151278883036328844149200079440313814867756473615395636123083864922808032774247530269852290415627379904270779330151348972490404542426860149090343164538657284253295589543385559804726585568354934308706294618240640707725345332718768054397183285919777277934229140311734799743579675882966533160500955730049765390003148966094647974420986924048806736564283291062867686751283897317931428476245580592574300628648273781072773272466348534714700317907588798205228770466258060182468690234947629754419932152015773393079464022868997459704328287139084576307499451586694192820513944573088296199134145114035489624442155104420673421977401594346558762507255799618432950989473331917806096864699945902095664201988751926066029378496396139794464420475633546653788081061739283716775400113841850480738677837012555609485286967355709622445045523146953029395539751110950890950740223414907371915197450013551686653344754892274918699515520013447736689524310663426144024256605759596972870984880007088110513713505173985758410025816835565252720913867445200981366928910271352100431849097699993798223207912715076949279110932816335656449613970765583007729382272672329664236272556149052200257189199868931327925862938755815232065920750481401070965629080892033166755714315105892680701669540128655672108652555325098387970102687898352020031354529544615479908003984210072765106501868969585051811751752006155463132503087319366857280465246699614597983591623287642867661983808402540185472702510857089297945289293161786561904024917537502311613547863868816958971922606817747344839970684544334943013085384619377956722004402528025753002873790924095711598383275477724408482002425220756564234058424762795336877052714380353633554640774049962508638905499886684678220689704280232322364830746879124197024038834569589288790019054848691084538652224505262500417015400041832069624152787778697873741112306979634636449733090178501293403935159009670750861839692387212886042915828790276668950733035304958912082781503926398539769856674347231712559521008875460004783958686238706521715526354557091671832193653248561273034723580741865441871806834703679666136471060121844230100189746789090977280581452868164693595995641314515254269969435759115357051033193301735705109324938649421517714013911171774766705109541792104741518579728455105779415252506832607671133911508341940959385531243269336262206213948303777638365907953824506353920863781006425540661415391259483418538724569842141805496734587058887645880756164817364892544791729048460718303879938272489250284388274768017944939678510748916349257165459570966018621739830338376329583863995786196758819629272823151898524720372285416314364301502164616045346907797254207699381565550909758759877785309037100457278139428468889654919132079605299211678869607255974927373846086839964576512183090601921958434604013286446833245554469157342341755412114002083323858717434381991030373047958991780835090969005913388114079886662915082660995048000573379618902259499347758552051031754571091767227970355830344350757435480423203823505978548038332135643045107515490271970340616122547900812522668951732899911997445103315010205786822200965458356919229839467864819440692656671109183582069743681914111162429723659582030049811418436187472444617003220429956519815417951215076441646850935235715095376788922301353703766118955044784854699683052406377979176438713796205837072762940722462318165870515101453471454361136206720443280247142180301011385788761816689977143256881031141146175362953190489173353708694625772807665757580394698815019940891008106746000902833927152814942566036730893598220831206100159509152797695883229564281758501826018915289612946304179351820163497157789084112505867293045189743755858862701392398906418092054711407403080782525286398935733105859368325701168953461566015884135800894003690892127734433763311239184578698780726841688668338629998149133115125772255149204144926409556250338504909674064293487686537453923857596965709176483140568250184936011131626497372580095009627611339447764801133142802979775488521216989430323732612577812972997970589057833355299279567896085004474125784344789726310879738445364493898415668950058114997476683793245603649210330762529542095695398036281172758651613813819182494238268127625492672163743561694173140644483352496690719240334131069583980481743539501128784932716067611222186139606530226894353363370295054277631416085126146077827003386488629867786978757052088422764213722307006307979357863060910427301464263464948509062288615480903448765201224650755657957665052520077111732827005481530687410228347061146947692104664011847938087846850687393464038365510881163384566161276430762977227651365022161178238980986657089123196241740039832587553907214047823124429049815165621438443305166787450417825637470007003218296190611985656712101684439848642750951732302699144006945067573627133477087385860062028064174934408641192177575888146190124963050045863732233840833940555245736456665737594574611946231676311627233177536798025575572365589940268346816058147786105231609153427722090460952322571989842062265531633475402791736573251035421334866285497588639674839475824196003184515161918105475222443964832894145246164759536643105531819971819735773399521123340221106185212952059173986027334355885759746448724232943090696662778295233484674384419862281066260274109014770728874337630213700476266627208009594283070551252549053519142526148199096158046048494091621237873267198990258585838203169924764286321380777833964346363060562295703438969417484122021720999212676398136207207068809108903624941019703571545704218994002029560247327731074504472357591470200565465536519991967736441481701401976660682146857250682172520533475897293458100804727272662814027993728744890117352615355085146851264418269228132151601959509006707780496655864900745749417949442778457600294728818662037144063360091896048619695898934701243189214871635596187402474442927918193728061286528521280991264009966021028264320131993405141165995850672105797598572289631642962568613182457140116318694065943742163269724517985472793533301046839582226780990947369950343449798952760879779231142744871254546185756484642758679471707305413562447066537088351527275067122206927046745471193112964436168450883376384120512512066308539215224984198361636572180236577309912801064348134758864363328131024897700287096071028694542960139960176866567423623457294783910146078690431959562586492383190504448866427771927337094548785920661843484886055028476762788415189583314012241988177733817510307971046976955688852464189687231664838668904049932327122330867382858320867529547132289398743407823255640521390283115653226216696572838642814747215089537176735367780905042618823375399187508160942706030920029322068394625450902754093921766332492230122756080073488945303373382134781109560363040622117213853206753973434482473952932647822868472595214274420165573693989931599458278922471375154020990683012755115894374687943366460677433006043691304194864856327310007313735579870028846102853854604905429823903025439207211493416856649841560867979017698008413894627631607071569046421310090532225016523018766836077066844153851866161931291382871321724671884427079777599773438702429946236437464741672277557588182588619221752195350105977174065483115764975869739595211325306476195937102504677738832756406916726148012047854672721693629899569693872233277836635436230326740639866852102246479457555600911449221960736262537264037796107363345641703264172902522835652825725883801112616276944456407582887055103637143273415144272931107611292028733019320989100346746945111966824779448297797921880215388671425549134684244073372959439697874365646997201014200656841910622398838323874288830146856685617168501804369326457884565103600995757248949704074710360757116271377018802438467730226428800006157909065478035706432826788964758099355460081730630343561664564048273310782695739193388310875726798943026345861481258627565546379295973831130887564140087560322403460503350654408679194787269226848798325326757953912916205192361796011840348336798334869112332153603622385710711145190140470085796266842964234773760778932312367325334596445907678683228032157379298350357425445055448455919598409544990651411395263791386546678909506435636141719625159415149668386965215131529393972893189282277907996705410290140270440022653771538309821398507813701337751792788436233673873744560398197752370187043930372087186072580929144951500136597007962803656176102312126246134700453354031003499690958198349386995262358054677977342394037185758844407643841836301593398218206005024896934247497553800408734250849703319571147328916133152912513974648653787332994629917578945156752345303477690237155203406116659299486181497083759085353654397340372897947978069588862276085331476966996015051722577716209975505886623400385707753171773790481931742365885994255143887492706281758266733597908887722332798426935146318730714004547048777787555771979554593948085022181187655648224949389295391833417450486990222595166985933323656661587033895635201105692403084424968104840374969802842054890050769457356425278513460732456488691648212112320579716225904378016416869843061902709509397072154340700741277278854313643795053439172872246977497026365679535851973025253911773635589521276200090275753429297260346724343808644904658926546568958837960973394499740485503617881890597985844351114587745834021492290138156671361836411181257243423175934672372526550313935576381858626403401297550218768924785015884283470656282916531732625465840943013790786387509847525371605421850079627363544204191458179845881253582620195984848604144488144225977266749823384148335258278237989162796231062030586737416489833543170484983795797669554224745179631968736847143182991712367292646534688106966431951548254872393964943069914396509517757300053038387229257159038955581729469818961178856682985173006300902686308568152677779345307186107928675088090531009629137680651559907737862203102332104395993515484305219328460643463884726108703397735549950089781240931454542653149372276458307206552433696752913534048207291528720285817273899357002365229395720858618826824027505441368894978458050081485207745380640746996602761888047932030798668251075284083345896741305135864467378330242078049253026334413641322267724690642027802222986966060874500317959489108877151239971100498369681862462647480487573306697656387113897320475488184308384326262127488082353798110863878026244842267300124778462334960637550191136188226314299755928399749229021821611437504032572224584326986184003091144821521565413572298551311757921972564280281650220930062054314237249430545255284744055771258361608267399872422900244638824313014210457254314888510337939282763881006778704516563445242192359718460706055785214101968476201604774260951302812510551910643548935798500484821991327685818877595726998543398292085321574142221988546042259691369701940424080223048742146176649980642615473808901471043253830481249902129736664862889663721126138820358324478379967177656492918014827379328308661107652963408865888587602074631377218652547858949910588840485967081144005271046201556185536357744961398932253423513282841251220550223254329970072058673297406423055590962630369071288434629318119964430774963503075064116027866153507983540790099546586918183660868754428535443509327101658697852997292002876399932997225993237458069723818827648862421427318290206809850902677222975605531478237346877594124857141773978464011732218337564411415596125720697889100929537947483859188264106998486259593867898078380741709288657150624577489420926884299024932826770638515502426894995973056477640734193856212043554015957361254550451148963942682657355258011968198126913938165057083777274131499675609969255858360803598361291394332261816370441848574129751622529882141026497358987319932863944061656296340894645502988831794379178675678829115403953164696669741049727462952229544989548272928203066581883659071799231525722436407633311761178599948378920929909759014381840762759139474616572140403460877289111556191181942691534703685371007944326989425163193862767459096466213118021235414184870258449049329704407133315232409871803917492059007091593912341531291996526170367807526610276318998731286856580853417338863478892627849123266137884986862577025178572823634462079974626704907811128688972762145209423768258325157900310917183492172524431015003378965946635814390035826465730635011931102429807789545661832803614268234382137107204597443369832185162756870474632640798304517392790496186471873703787873319106014134457378129721772913950922449969798176311681573213071661148356924052022090087472799128891658488043003171649483947487849352426335500086866737561959382848629422027095862678613811191844450430006803918110788362628810730247432198313022099724593050867820618196746016024377741883013482428553555705736334673199199099315151662333648295636622950898987605338759725062299078297823436309273903241169653380206586401535737654039482536355777662403395168452762700572121762993809007610883484684047398921512701910820040149010416303147837459181759234554604338067619197509344494056873564292089915979851889947559500260036048668113044223439880495990825148737245447690799723975302872964062380747996104922183631064068156432457705615151767892678322611148470171963426035819492766685824557507179972929291039099398789024048426929864036116331637814731163007331181178291646671639378638236402675243047198189914181000679258589711512856072265346456419152314465787189069624134091486380322685842608671396474753403374855789999998128234722059439788572468588152130130493050816182603036433123721077971644220866825186079632065061495062676352932215986463390089133674054263045044225472713356892897754250945294186372773376599214741785599613223302980216495697756562638280316492494620879184858471207058210219996082690503386631401275721886953234322819387102477701980928686556004029219504098381764621692530964820255225857875156185459855262916384620302831635119909642731378634181709483100700886989132029562668149932404644462244907730143466566735789151446491421315732302333772661943914699389610623553937345754491271311695679268362885384418939599483297453445434329173538168623715836933584213422049498432341252789592198251297453038396967125021232132834769064439917807377679349864078861091270128102151587583419512232994104336786539993369950297506506534015892236858675193507801541044357477542123751132392773421293972728606746402999864663448253003397263989379295599529549878468319737883469451884543157071665732062773149624961596369513587661791812671973550039215621523028436246395830574868057074002942027203087261191042204888748815890994735097398992406189196757978088032562925526099095194579241312807654153473840140856422967780401188426998396117406851652505977325152071475691250704491461085135309895047792701277606819566992798886519220836291555470324832729982396854892486472452327468880768805521483707321494238555947635890343512481516906595870928730449850190183312215410222802936488568178183912285428018524973040429259640565423878690647885785778469054729812467681796037938090254781386374240319016354701580585719683888309065710889336074271070030632665360791729365700708244423660056053576798533180534143809968960886386560053686221206916820001656516615033391649724143199322730729254146194691753373216683403837129898955500394018107205813860862325957248123730066700544775334712828017448444208530882994716120148539817694715294292734299435810975764612962043095871209941043676256227792773496606864412592337283148244262620757898046652916992354192179414193942147875250831158382187204214647176239201917615595306292851551423867079799255227073257704180267604642021933124516804648896881130958401582774568425813102265559326591453646896631308935997084320922971528296785282321171107771481620924209363673257797081622306204365335836727963919260582749364080885219071142716413582069969603706443805208933245736089020818365562208083149951634225366188299271410676468188789106837236238494360458145964708799378065408747180342097460263539210817071659038872305044618098957296417381853642999459755041875097122085190510497409669498209212675432541030627540514389136090115289942148740128626755065428307031643199426952039846735588850028748568702280181716917402178289644561752190333569622012480558652888411339006531168303896210384211708670950902369901579764411026476276412624602935648141872450745846446318730668335552010315950855538852418247562888476017617202244874556841365063987907335377327559694867181031475858555053558792461275148418088063117087517605199707680697403520162182126193011645443536656947022836670229527906994031717453032388201017258644312635799247424179048000689743111468688023898737222633018033288338948871887399661492917399369859644892249976776180009724513457996086717421688877753643912998294163851308548276767074108152661862498720626525302890332683351410760904930242590124857553477491451683035542395309613539240463660613204335635333175600961248272024138653047889384332447420745974287054832028512611150357903165753138009900650983082279128800340012542987848740409158023071644146194840719812394034253885299517961659872439913975810188847104957997828529975170669740106493712443568830507179696927705249158946854682530812086337500424143421768336547187741887400732064798653814754537889524073326012778884522799732500631275356358492547651080175863620630998240064956914426584970564808979763584289440436168884937968416819873737096581088595667809420254141523488670016755921341525766465639278988926607962491890685025886871180138339412199403204356182567760323939053635940917570504196004562168192073875183770725628098605345912971036187933142633433513538985364616721224721390137154041366450656033581927884094055481142231223119632953873194988761844817981389204660532488621302762797875186982899269819046499917677102745159734105812725957578367594831135344119313807285323762559502906847036082328390994013958617503272620855747031705928551045907852904111476582977577765190953080549091327389573156838511496600758644663507913775839997775229951495130403859479004383099253298405045025264920896325223615195114402524808644253942745559478130249606202221725547021942137896581173514595051666190871667692629616587319252863232505949182486275191313335486450910505393015166326770457586828548457313254807321271490110425207221713631659604127478646914436313152918911378107176890324263990975803340395220798799045782365068099856915732387947845681711572497233386635874042423508211883835846798004413852868864997745294259787050422778295706319628332600950255717132108592852458126659664399240507151610504801577107769284940824367034198595305500557509562275666976765521977868363542393534107010569972810763303026667733792621972502409742905157355685844529588461379386649417359086491164784006236220388663564789225656405245765017890381625329940170222529456496592988989867595135067851510671111036215663923459660868252119739008759542399599479433819557650861477254951469165703754773041989402860232119713856022388661437863495252754984634556218107178604186858341640066194320938619409667007144544333958983373005230240636376467344243025315120394063428172021569928924192558992695099034856292046208850298311893075301657597093929487358028668639883305742347743032263973261392288107550452768154033760056356785126558806109982253063375658841335313950789305923273928239323311597676517385800632888344893920830105064109826307034547778948909769391369903465410126215749189252804068541258879841583027772684508246911013386723432008431207014135837536005805164979597447440598770873003740279949312515571812837786042713014613358764936110251538556055335026812885073520309566130668219842763604564950107404781273610389341081046609141806139269997473628440867930482363364055167313697251578148363656259508157639178944335346258875758926352184172935512931205937194114295919792236611024183075455587527033800962975185394147775238862166088637681595314983657340966175983443443705473960556562024022500283289767677947316062660834757744887488776731396766011552876489908955883812931240018541249654355364355883334759953786756821321369075825530320580563707899379745465516122712612779488516520123055117706924081313869881352340240469553409524832937485382366990556621386367141956672291116494555302289663323431202737204135693851947560439960053913298260469498501801708756469398837142465578545113072753932764463037729167414733902213191093791426733747924912614718714980021265471662628685078812480392641098811387194329749153949618935144642741001865531830362557315660482859951679382020375049167575536125269016851008690092452335177073228771021453604809258132068753262510131654584302174158519598105657979485785680472881723450745029946347966658744323611010334091148854402027987844371913230316691579382089461677496156224544842068866637784436606899518901203076059029963801864181859075439238569573878735298140367501677939071104121484928024763101506942880547327038392788350211205457587781461749577111463767886728296288660146057959145389209062122128129658509981786963016081920535388952705633194453735118928775120853282778895969869254465834537090110335802582770445501949277223454233109221216584220402883689871292963427753992564750185376948713364579104356625732692857753123239797261901226910186834877045082855267644326439635517189130847679830574693332642356168850235820465834688025581549428698780914480994946543897306390750470343234618819583263475386461502732738656237157376415865242475406072740083364249714604094900376811297592049161635068826200273832209473053961621901279063553857393413149925835822727648340660569363764031203834799829919133995022610419409042704101219914205431646914304288816027880264167041270688647784151480354786507119873766668057090933196793253392639781149237794461594483167312382146483288603648908193844836101783167300736244571093805155358774113666218767894035224909707021705101740337503589704680661409666011321144617499880257212783928165787464933489692402115848577903746091191289436467305772512308500503444520454012612295604194658050345112603043269482725383807772191593448346526642367504962106988171232385746965629351733829063876574080510393323805317256662217958379088246002711803677465554458936771197987059961124896205516370435741448552418416001608765749722716844262049893856855488377963922302637921321241299316395099151640336861570937392511433185942882908736296024735938686225730487450741972108522326118479551316859570793330772818505320403915396540717211876758701157862907562903708489618183657449701181952142312025067944492537167984397257604055921277374259912785032474789964952781912524173303245851790431054111456243851537011422119031132639991737251328649039978528352255913819043302298030048516892173912260436602278515385593800543125568839848121457719907372747456431682599261895119435738922246898502970348648679377296434021026912085623915716274947834464861211959364810028531157069348068128857899734097459146582747442637715438124327029357532505019254621080887869878500130419828846002382662321172236088619589627204087726963628083086312612055259218680203857575374949475073273524149547408700951848035102657693557657357815423133006917886756725754812832698101797477902950507311346659461449801583245257552557216930887029890514673318253676395851028906610051714001878827763541116732461144521740726168648212094764125840689383160239932781128585537028687557112477673418502821099769094093584297776101409647977286776054270463405017240205679461389996127009817983266175228907215560403209946071085064689327671103044105203278752025016026136956535792708024851306309052559450868049674724313368700741198383069422150105902809011703394220877423219858527287266675816504305061522347652380760611713348354912486422259999448060980594938509751043618854722531239178213666207001144229593602897111929140764268778537850546527671423509121295758654154910366079095251885375048451049356856370325394653772093381449734603903863391973544519272867919981650350082891661555450207680372119373561625857654723318621287401636549158942735692452130282908120283186341570820804438536460945726609745089496217485500546384942364250542161321935097305485513125461920633522270892771237072131863897537778013477761921518181870428173264982419777140227366980461076805509851226869505015283374731991672141636229172895207054564976930922392151590401614199122448907294492028517758558925695478692927854649851161054162259428453626597380724046288009766911239089809075037558887317675184906404668807215477001695215263918353920695392707840071542762781735852882688892478410960083082392113836142105542192289883248964980399297043339227719226551643140234661070434919894611653586794254737085378533035168830076544578010078952343217576102467099522248294332877992034803302664819365511309065785766049814310505860064541081666877378124350693322439915737968000447947078190082522556783542270383987249559203862714475688273765401070886396444735618667323573299010942975736410745317914549744840633294436278913412380260327172769704660362464456812507943758248327245833438418241849261007193362987076761955899621693374638340623322969090321044783606878085670375117401773503100364094142166363510837716347150325572322828558671556971657754602481682658434817046335458119695195130319039175370834833125549378805704061049423242527556849933930002235652073980052136847672093483410905570744483586071098794399031441041807264040672475180266130085428869715767103537882341372912619672084836041739975173710482084494449779310763420001805628198324039421599513985637870614484289552399410518571959460803453196186291032081718288437079237334815618282343484427005212952518145749952020494039754310376242075306606636129940299932887002099354057163965331659135635249062120330516732862311733660534166257313438925165202397792932034533267378511027349920203515365934189685520221896761659673785643885777939085714422927613693186001861453627904442645863484067886184569383059825419063533511595443795952041151692322966624450730688404116587150317479032498475876044679472740024931725325302469065846517068445342562208379442127653908024089245848923771300992239866461594228468272942127185588587119402370960445077683587463907792901576877258256815077103046893101491615056481333914725322089975542421453641818857819029276980516148977268103735661100828019321198157299712965356290952808207563832622215433611143138012819930984370985895992217131920193148351674711420634068483121469416614502533612966622191861050237624420276453691813421477770564015106927414587882071758387777576610998829070077152528296872097305519426306010306094916303648233763712518877840338820872712688894028255998742066746439741519402897842672118826830706679241065130364414862244761700828516166612785226751640769474294418495043211170282690124601415111689523569734824411820835942645705167923709905364210963732519223831923570484590744173163339323141667413444177659690611718726461670835224083058226552362987677635376302104994935460950506537998452908548089638523433020192329851370122630816161692632934584784231341509400019416942064892996528831456550636095919627482371359738178695500938631549276886621674139388051818122690102344426943674019749317017631488883464057398074036276501221845700522586466039510438329809225734572921735199632696151107573945338092085106620649847723976647299797886338834101813452968642599381234186341619657348047820140526404039239733539749980980295864746763961482972433726513079323673982522026561522636461526808880092951532470684174065490044816203946586030224274056788607436548064547989699661887724118223649486874920261182203975970595556278047603549113556325704780058014913024252070194375745207056930383395647050741710293497055558091880904003207605275224887471007816813788132976639302112923466963556144857800893057654443908610911670201895138866435195210086398709343869463568549493884913846565040648797580998077462571954821666182537516489100342108869258567958289226460662234609885701564333799840226880915724948465860467452551600691293754941205251876539846857768983961012384573762455843715461738721350865465358362949292816775423826716825597724742612416932185109485273555407397129722828470588925089333611570531026715362720837136431147756271010918109349728405875018370310599541578306597301028611360046083531416939358423632383107045378412056210808230358035326275076127862861670314238413381298218439440419686207494766905400118704803220013527059638685466829118432691946769485061005489940106190072810605497160597052255948963826427617540433106681419514345355611814885852166380558719996522963181248205577953782393500939486292487940652208188356584838519562111300128145016463480205529377878785579425681636420112293553745243581850740433482866560612627773793109623739959220635629817451527190477338278074922565321193195658918204359577392760682419242183687073707242995012330729502702366846975362951416462073188877408663952873054985284687976985964053604502618130496286369807398229260513573941830747940548986257914108808284746041189271212895900874055862342806399381724974780401043600293736389473486099576979983976685281621360204562511281069980544975513457156093130400701504844087010769728360517700814147145087781882242336030321209009651806825596426542319575129909704449664663737900515940106536216415638462394771821801882192636141918740890681844147907998802464504379030098527157782483202473726745717304575676836846400171281872738997253039723939563042450755250457846780113750595968137903390586275613362264184556526591446673997149273863464560288574028782627808223328133197595033994547663198598987656036988882103402456258431388771398453947011773312127125537103471168567018410540353772106511938724046665794103740980827868783854515523940300329529592642240559869075407939062023694868742208588340481098637183451300777351576094263430893511844868239631633089980132489327285273094750162738228837275133206995569995818825403950892966552585846626523896486078910973096771528450520668601630363391245064658903893879153834053963134061028840382932066008503906941272821130687249445336130885114162328380336967326026322698068506125200612698741182576563231051459513034337955495522202857121143784561457957016408108207516313389191276690123499174674514982270551455385511777962129554045571745334354377893247801354367810558215631103513025182201218423086817165934695867241092692304962257805140315937055478558433633513710321903110575338218570381302302975511611400530339738408094514385057057189263930176442226847281522666152722296445024757024555824237677476803186054923681797836642665768601525606149783099108081974798499097394340283022784354751682052859505510551487141356577593625636372208236407241910624287408048405585099204798970764538508750329373508427392209261317461284519181182695099130187506046831256550612016198406304271169354135213957308976816542594306930076192637708517146871989428117552646923439477912803644789775433333846618627532362007977353967405516168246723576596116311472782014244729548883101404022738186024034095468572968027531167752569757424207732930415153079720914163043533178754575448135959557091426493343046300041640389494773896937257226163353530630673478968529845933480020087138419129894927473507966271691016739811234294204905745454994940016031244348119836844341062043611794833297723511784911831400895664342063051278066239847006586599263527435865746089154165862420314914920930717537022397421546497002561035384998655971945558688639665239877650854575566585082074747355167449647805572524117383767387524297473094918570996043414831763178991004744358787923021677375351624827782839740424443812730674863458876557083080813982970218592745882917703220633213115174638943762867316544416917497083400590838568839105210882477777327803523154402275370894487362012848422082338990168391053406045396272470529803787219659555682219435752748257090921146425946528665535791492818907413842218965203042955543931335055621905189151574028056124661906917340795106059282825370264301988303441513372859107350247723020238970434333303005417467837262421101668765450900961191000943149790967184219399508556258565260417481719772497800155574134057980670887441328700662170733005355460958304779193995871014740636325687521040202742898313873469749925457876658734240860751776290931050806693449302416755998132211789185888357282614842803146972001404892794855747135951815437810777935945749358797917329965249382508420413705511247652486329571963632700916421517555665417653423102259107142852541800201592014914137349020125776622723549788784526309842084178702931475438159673738320881178414348248296705153139129154318716333478096952147352368246115959822322854427247132151584407549174842640789413628577693265988359775103697454654051534885170331620971558932944464330362657377349499485093381230176030600610428143286540732005733996100997827140406605314567534562778248837503902830621118540768830370021191511433661894115481459720638926050549271918791531811149613901654259530754117652256757984055574144533892969569000297754658016075857530086412317326232753363579622037572582210048506660933328806443113129838158229193265209216305154480945607273341451950567624114913227359011664572944358912888579916586120014204098462010512948591571445848929764877632812488582129870593545623943920177114153765739017399101988779152292350724741099591773014164597589325530353499046694937315269824817699376282289671532897980585816891081938065065190865560007029483117780850543825545039966241616611536786695414764672148255964601889940048597362668794234941530274936588861993028635697281562146922658867521070999918004191736194108299176352708661208532131781976549604703432096406174525456117193855016727420925878489405269130891505373904415016945464004220117233026733160214076977388690203185031409795908782170791953133907165053047539654678007218935259454523428103396762261973471015349583133737704851906787273866207149728484963760633898990476950257561341372855583246668248043502916283271167101241350365520728535614747143019945776440429189394841849456722077227655050987477402430701686988760950784672341608715816042383998839791918127774363318334496169710313206592492128120133589984355013714117956008080954472961236884018267587912878476627641204323649717153763704494849607466784219406885654865893973684557342493563106912634480437820628781059441781011967733653850202051802387658053003413285836167746579204860626342456124574732249298319231795806618860773599702168869844511959423483304010315999516913242844920570828640047468303728944600859015869919789010919300030544103052006598551477361556693870421735812475125610813350413396348556567599878624274412682274424825790474751457556588927278449679498331951600519215138663207134817863754135491327608525772704429074785444280308386217189703914385266941982375561621784456127712546397915984120742798398266210002436107493398196312166445289393907450461089678169680319212704307042595187317640063817018969559442171970771633177280044986480329905781220883231594905867602628724365974877686238388887769391014453171082911102928297851405317019975012591389267406570152301860032994764248210534389441347993400617355764322267536849783397850643768870960335681248765209381431529266797544809048927307898182646056670166254887792515209069249161848971703484306235450755080048396129431129172291117595620661924888725959674298785900731550920400412063689216748091162728515807730527127199014884352541348526275979871772497329440419602145721214629987426843371948899413117197550600453625464183130024666545929271259452369236896138177987690063297473149858732548055222914085999441451122896265844694010375449739156090573693798719154660679606982173129520775301090893162464100747075182915869234199821210456142542283699443461283675353406312466751436719590826328611538823264806015095361627259973776510136592080911519083771869918494367446200415873627601713593527354192165260981567165124494002177307411548168407601818969239977782544151233076280835715349537577728405634091555652504363215473097749920139384619765685686546693698455075137921614338092372939550246431220558100602669623586610741813617965631804582028620473764113632294823154573838951377244202029579043722960230115468331904625230405086470131888713229260249554979449610977880121626710757014057691943305319034734717717211470986311086434275341414446726188906566776747794519874818911147389358152422684880558344232924268729322740936328037284906230232176064605095727864440637473600611974545430357607219784353292461231599309191542069127976401048927848147761640413504702377467887441042435512480806851080733357045963090344571568548001371094373675792431932788416939511532521984390260685044477255686441125923656430680773870063038421034290134807490155113652741721046191260350733340364060266711441615551263738148725359342441574731671315165883328973353936371363854482486648879659642507397671175765922683398875664356317523925060718759287976552716616359774677153288214043536169778391181602372530704582625021639932560763258159006586872996766707896946937374953107107484751325169280871979310351545363651612120831817669839364380208190509072857574797812025132162186342131257678411495878224369773933328189383021605244564972102608487932662741681805753672244022681594349768272776700743071396606189227373969943459771095503172323709940120786600707138967428900308589099739641840168861995634455831224823044834218976805300736334354985693152998450350118325840093755466026594444944650275282103451463258606820930828443653870734451379809568705800657792223344506781485345961847917597862302033295646321266264890339128045548424804355693487105081612343764120870002967397155513318058174998075043591559930628388049524397671125617507829806818651019615983154841104479378967218845556170604238301191469608030335248955701510485960594117633488226300530438011359456171795263015618384203669233266031929338886937902017068287459983802719567451008830199392203233493476307161273813248183451249584281959478544708852926590124785444436381801968085587609370870002219891846476751152800694563518984194136734775699364676215670884667451713510283371483899381611498889622120589304968992392119364744621362137352627316752533409415110562688543487129092630780980381535784509568739643487420042378272971913500972932600929751629192456844256854002198172658396627586426701413697094599300912794882250239010520014020372099671501418789117618589066602829672573377400106092249982981654352889935748991137422066117022575620475888039092207868575334496055952659567351812797249259600298372998972400225952374537417877518755861571628070254320522608679759090868032903673478028969432468354286766627711963834615888381925557076171343492167759279263860345232966981939948610402219686912677590743535773213959168878907422700221476967068491413908978493998518392402115261461334752612125891905801924532894668348262827261323184541179721940461381375350755931969146426567858237685358547427355493403598437500738437510941503736344711138606469478812080851280885065331278864537051489071778753402537580195656765906098236173742989782740024824166177040433496984588760123593837433853335843248935119472876213634239785665306550718736337416772771306629695605956663744139673122820399932826907440938089380234387822524690942688335920006132242824755925410388692543755941350972417476549741841421185428553666635964571167071686397906669208213243269401708172308058313891737358943408609130636701337427594891051123247624945764971730254029458897126278576749804011550559759432608697676142011177502373663603544023145777758560343700757419470654748890730833907896415324095180027839646008777464880004282827067301813538995574878231322538679611827732521146232639357139831898442874045255267767522725431059129144847183360617660606177987843256523429968352681689620367197899656174563129129500779055205340222618479287309213829539648787661330170784109156673068174089198089471819493720765806036628187585254813487149897040467660457486923398038897790600010236600582517654069039218689012697123543740366013950897267820931004040210501859919224855103095828638356160440077595384302580899452136580583423224651718937186408934367422737878123782351988977674039893758883333712098119734396458379902508487832403437016918016285529541557800582150194466669770449723434987849796976858530676780781861970731815232626517340958294519249071925938249882682549601089113841868650696876525986015426642575012029192679351778442653772020921270942028899302648920567557485430053219594807972004307499401825778568233122201349361822741506895467862632375795217556628679018590946200041019394047673455490962716306608046537334421330083782968383171905373246551227272263305755136333141472401103430671501197191816799139819408017840272516113510094703359329897913330053765716026927107704826810096486138260677710031575999827281694113961062125863188196493613719827939212797657249191634385685530208086425369084622968336154166615778274086494320687961349419306969296093539288536950948366478036807610094557676489950763927220510060029155929066190603171061654013575590376028872631709968292410925524007751652680237859931079860077163989586777069649092163087646714924755972648079188271709631293240673774458401994100679354322150115987365279825863724164506223860476020847469935303165912767402381005611246599594520614910985788487909242437601181248787690164241246753406032819819550138737461796987276013619506147496611307862384628943599552033287818446910403039316062867895553657464130523502381299497824782918173289365887995668718034070694718735562113723276821479781813111503185883880393310304316187601157634928556364068725196446324232872647674649255113049362545070116976475524952024785848241310218473380189246061906459014598583426879142409895788084481455120912904421559118966533839943794007267091490708460810811299234877278465155576969904167739505957538462551978720465872303551636394498371134403866187963575451083327125083797634637439087582671557164901106170325066185597447313077579322472707678479265975246969005601751792759054387382968526432632039475637943798047667334652987397062147187371310924003684909087295330282987814339201864837318787616515335474249528579282365231912363858189497330895552317166734464326910962653409671957985365407910284982712124244888059931959441272622535168669935490375047274880520366398996524520845509004087548882205505243926334259180502846045515313683762371879280630376224367913350001552761975471505531862664807829800935131065528647389366405633079473610585644929947462719208689917179265119835461363856445072673252126271885607628093312564255869893490016775999723964802579019399221230470130576104592426079887005154121970474440088966013881386486749319720758331308446375688543609812636696871689197753379707069162178358300483620558135360658437099913920204099865702699508651565060375687072315323520152751231448339227799965263685525995443265765070465435590692233835610842769040333153478441538883782297987172636212850777831432228985134680391565566015037640105158297468744173225570056570231371275235483633808287558986020143294270697429635687774328766374641611920257272665085231019180361707913465067447772341774117278138655020030925396189070606220965340146658022199888939704455021833227713932632473663753543161647208866678332603963387730322715078581970870688901213305892369284658410561711361535437074252108181830387937816419923422586429986439048890702006460646866974055842024481247115339206850985193058988030762456038232900050238025319072649958312767310213650589967262602245245221922248062880934873424619842677790119404263550283789247749416722219374792098286082250779135144940254700363621657885598548205059610285880372506305172026339824162774527573768389335594477788063970318851179525924785283594385868491084797884317920133278007587758097405476664301650496840285487759784830335397362882759715700076608809646949947654199415998074090969378659909275121727443621756605456332325532181249423052008063441883555518090663605472622275117349260425140809518203928766616084060447784477074533767661630985756205812340996066477157698527133759198646037179454625042417278338884237546100981649946624184572367354771987439336885096175825758113294705312379165294603751736211187555520902910271294692293534662239932668624127627201404163101471048335382598976799186857078980744124516947333287592852326171177416631596368257513444195393685806649968482107184138805625158557485530972239424640063833569830714670198996575070670577030467415481459455444272426904323070064157248761334083352939376115094209381555652389414412345858867390663853790455856842227979990753557064863273067197727489229964067342294774519335672973157286750612468884998250581726955426727496382470231778953682916480380109666073145556646923839928914725531247454621250251800385487777329502812912796696623683801449083987235806227328963703055440881311743519716507855998449203908872464076141251010858379033385672497516489209891336701834581465209432127902211903075982676240484858859721074960139019339940088365983013764707302010478259243053719964989259225234313054230077052695918553340547968074296999413551962098140443738570464528188369354324778507248087629231494966872968594492321427741912892432303810485676198206544331049611098001173817296183649941544611331687961106817298975786911922417765237202299915930613858686995029414752080100199043042098260977501795969220007492920535578700410904964394020426581681088924855613803449577806548598592230521188338704752900471370355078902514834364450786061487881768260503420285121553846128419705487370851380991424119436678859392018257267354302466223214234582371453568196418695756770552562189060006871238688094998358378927124931061815715436235991103789507218807474603016289326405408193578794193155898506210606647273443104117699009034358193625893018477590988321287154738234362951788665471504616042298470205128189598665142990283042971341508080442757934681455906802524515555022008981019706267812727555512210056889809194126395607567363158611728126906709286229223150760790448361152628676770181616140784232758673839515172202241262723327844168138759442083006966157886983640385460595385756237789063883452561597565958706856885399082874148459095304043728079046159098909733885189653526481359869890475323955445954871731378923446234004011971976098558019785678848690580441539010559137071574804349199052105199501530997468966441965014167670308152471456351598403977091218449000966924901540792767649721783026094651004783841642086061001421411865476567776511181944301043025248884298501565825921745938460527577635766059131349731353454311027509621877873558390572417280281938092697230680807373399996632359187415221357091137707823852812246738026974871282302418934696965283408324309072664670579392172803609504139347373337444989711502798524835674550493740118892225263201656494160981349012285045605271616478513744923589804986772448399645155125807957721482250619888816875471877868554828118441689256679431585283748325986195741465439705381986720108924093015859191406680244022450354448230495570673457044095311050434866472078776611621699728653371878435722602157713044690937839026959894677706648580234617441651861295960273940238479237073439671808286876531658916337110488430820218307109190713003738499363608140326495877107070462263090705478689218086579959316164595489058042758322838046688486413246118196942803803113542967877035742283153483749764100624408297243487832180974703736320388845610647033787652930860308963889574460543725301960166175775942833598776775296703437116722141555486841627357520763483825061144460767738421066986213187867054139682844125775446547602896393505315226072858737861044547091680326890207953004838605806620952756244490081503908697990456889315849664900467238377388645943083604330091382640780898747864303369177602004147666437214082137736255344116755824587615738081149648316763123123632540346245981698335684474403114118345493686992411136199291781644169133136594822501138615246265705099221603191354586442031289506822862999661890161413357597419153993679754784166942815795680920204414921526500038451593823947499671101244973657961459047333997742623262633512801031844233064218164627996078289004218524873881818112656415759962531686531085036617250234972131417847175326763600308265911119713482790242523296448391612664046406769076444476044617989210561888489527263762588577679571024170928607708602075227749450988027408590934701019781390608706502832832549238498025851902881865577308142615386900172355159768636055671669450948486627588067397690897050786239152245233162308897045510165800508184344845194215811665099488436804299442387352050508932600285345039530366435191908074865640044738770271457736540931334157363676865818383435904083941929989536354696042071260879741256489508122368895179947222166215123666238161132568289926198806072574427689805949683207062151896859572393277245588347041873974280693741406427080462362092649010162840432278243555052246622971242368707552430446098414529088569801133303160470415428691036743606690194722927223353642134155616484568318743003359107564308472092301413739816355298321450682571488896104684278110683865157170224423423290152949275317257096306687539707908534911288684891634951801502958267266714989368556981545180805795086857953133612769587657257607482314465223781540297060874732622592566914591786423566319508560685364839884666132151827975849336816158578336504726407406171595165123713321709600634202888164435823009289666561308377346956932435403784268332181810487920805868535789038700169842639148504580106813321180024087547350738610769555161234970040337438547045454060498697687505315094815347923022104073323625316231474045186586590207591844007269060057679992530922202613947969164457227696121732333283303282891368654452114514623209199243373106154579456151953358406257822557473556902075661491964936410746413242505710237431263832824141518035191931609419786385536103958757504739672831538540067827578550266712249363446814974491045360104876285863530422732800731062661463081205887531829340192109198151857949038475775943701277968699746016013252614953645563001917276303144979916093697437328741872098612499792725222690712214604280174491596587231679638636893549698498010296330981891488975215772250597296516608033449102879680017798552729539042696120608751617669763607264691964714870753822585013259143956939558328573742650263505271557021293074980655054885020483708474014009827431957700410530673392148294106725448157566992801892886809158793201062629366707360942876865914862156274888519643493106603591047510393964572222532755014171135539930158675575925615060568229317352359362443978876659415978331228639382776557877896542724916596226367203613909529017682025213419971795410397085056038614383667495940326245039331205542627232428139147314722297124795125681061872073562163183729743405301147383537205425190884264543112674362982589038706658491476320505628897058885690462119109487152386051581077763845250016952543790369747331006944407883738808763062734893402131252486757495377937111867809107555359407297637179026380061050340659758902996305549671141088822572687725506364093568841287127948313055317791746409606402505048841210030993967154165714063578100164914238506024021154729613939384095041380308293106063334986011024070794487000902576844901642248614447130318155825045306101236554245512256991232695064176873970156301346680859836477341584987395001984262080077637171167511427375801143825472407206568759908642598769224613335954010275475831412329440117114056565311407728815538233137683299026322891352621041537332014923679043852660196479126930451906905024094638604642780856248675071654798010232403565886650925320859757419847098928805836139809127521631009412060621014236523070354792742191575366681417036337063402178625251811150249608401353423596139436187584451976726406866735915246499078602955824602994237621174681720990506276200437525465429067363616705481539554731908393126383675944510430229577903627682738958478787938114671013007587111568716691672539830196663433612330905748720367156395173616333224445460595074369520829315910437221742738380595840007261748996418180584255462312850760476274247236741992500638903613099915830804198449785920749089004262768589792405590139466156453895460963349235467194040214462980710049248818593065197051767329897330824798405049686929052323686229526781624042575720389542234568735352545630925626656694138074114165717343455070665236214349342770069515278298352113269942175181281250006243360596469241317743255608217601154738165256363801458907497174876902250150092431311467497494543805004206671986064707339478074801197561051670183489890839449927853090693347346686555863849796249317786567680469166237781030118780648041467709595460606212057294095827831248007922642034761551412544024192312146935948666848288261422070972963712155694769432498543139157381557436763323207803636677494903361151904425097430329447252157809111852060479722851366451607759892683538180551732540403941192446198817454094125842259148968956291425269912315590765985980642705480170951037501403443328050196065265560596244071757188044224612332292751175408418507122051009446708565634980555143359085224732080078992372786087994641480881166649143367080894670738109222979278401600615737972674395606134751889423787655076057941841153733641796244868141251489565943279742338654497191637025024571069541561370648491785623050419457221653589452972564505778511659082419644813992502920486470659452051217417661034909729552994089893989935991313735094763791249912697171618277651931447297381776226098206236910632151859950579044496168575690374493864443817011249834217134325534435869816965742390157131917711502060215848898234487299330521805693130697683709766762466267232579387427616056987126769423198926221899233106926026048234272991369647731045853503730026942310866246558125994581685361136142801149467178705066756137645191628481997169927445331979809695718871312143375074102811218348198395133307865536082153334900834221599980702376142215666684688774242606212221878737130337038801387550077177415747801812465139601547687780223771965181980874345628233858915247096718153426056120395961211202332867671244028785673996342862049733731851564334408913125011748991316574433939192600720161014661685647690027095122359396037491236378573164797857415966955492875845004904095225391720403453948950940638562469806556630829500404290899895478441682329738673354358060900002763508429478260347946192979731743102014102744683173482027848162730191909048194752442856875247301206679233585556641308580387582206167820218336867687513518271316617524071514261445272160390529968458617942626856360029112809379633212608802156654708276796452097513673814689422679205814682065167886320443923967435950044234953733719783802918119021394863830500649161296206889853416209085851783286845546074099838063736850201868191662733110837093165131213992085124942826691653899874109059658852869735295196445378592791073302747892529733348736724887259761757985559183460381353035883093617026206026349006282781312688557938792355376133751509212077500273592562130583748506163410339878255090459966814815825176790310846997105355922937951908367097857220575879017213404139096660848337627219249731244763768635584133662582616279608544090999989200015373244438714471293163732788672854255021464794763018325082375226243897738041586336082223989494494732145417474226859260066086102621558693997930007414611661516407941521900795446240634296249378225896418469256111539645223264790329294639896351532644947504042412259253309220532902201065356192385332777161250719545762382326864409017016225765568106134013399494918111492645435644652278588912192975611935617614336187692425544930853805179341423312475119935872780419930398426637575274536133632486273538670717510896883741755869822828100832391592990168420526627487162884677929521202936042138840136883830350649568981487718988617306879996066549158357098923744384953399090635002336934834369432587964269089362756894808547566988918147093263582971258876268068149804581387574174642404208397727069782235378788093470267769055323511243883848472315867252841865036482262307304113800904992551687373664291074227931508418136531159465616216528097240360222986060853930808603795342960749910808200503118067158505468141616620336147562225303900623469267376964768973609873382182570592097485316530366702763162232793315540928772779507819875882622013978274566879410554419785161819275174926881566432406518399748269052435820043095641641242974012221876223002249661926148916102960442788444612395008000858248730499781769964038405962381886262743819778956140900089750481213694759616732194354295508840385992356922359104943223040282772934626342378221067717805486146103478103867674625045520782873619182126026758887865686317901914638433654115531356990394185432489384568996293979611835636244277880650138868966805507756832641285682225826643925726430157576720746220975819298228013997452406502659965319379600779012917751817110648711547843442247889048149382912195408088502001306603198435357103316988302341963961324904649316519071865918663059583925369718574534932061440858964063501736394885964440617608195465929106152559661102009147426172333861783307131614186469923982708849719347568191897084411812619150690313019027093160457977459196517362095804784534302532324811763484855781908753075759776379248708192419403598108839461022640199862517471446408677719121172972377535391553889338101322672005752253649183664053627146002587917852173708269961713977020557105792721825780577936547419791493728290000321848370488777077024634122112047529473722608863004861063657886280376687157632937557601428662368722678396548096103050475011302490152030571182876011415973205458671645481559325890337823143490851955509359206517476971813482545909343599093523877653280528410708542803365352755257550310228416359405335144929063259143845729182787324789734911620098745586365676709543134327849462089718245748701875602871954672041091699136496753552995552832124057570742339351156158700839663632058442449275980058505002242496387171712557845948389482926300723292107361884039582343992552768832471714255937367730165543764689772487593290842603164106601901506977396077667888024913168325893644269172455922475260191711247347071138614385286584671755970186044170903729943596294214501569587138928971342835560499413050730867518482830937266032006774350745337823636321556637685873978286518877410375330102028433017949932008373360606362710099271926308296929802279512512981623745099906593925919241890409548309116219312677595415874824358832967369988162924197279957014280946367667887891380829211213430539085835069416274105837092360503161835044885520245030630124261621559167907731812460048117280477094920345799404302751606812623524626484555403361433612544855550010971304611651266898330636286502450387765515417363786199984567234266491203052705342937085965446992301722638046937120445198019585703378015541536927549456857538350106567649232202079446103282593962091461805986560489850318485905817857334652498954122516490864558029914051603957994085625068895818092208154909288490181197082498955728348852314209341788000080205274926867670410817051650937481633273685886145684716263694213715068582650773270961668654369202110411754201811275843141841707900069011466146892556418069813045164256713171867619494942901796578567988374354910440684316395318115706415082894315451359085399857996346350897253598998798495212934852491362017110339554974453774690191245334741080195235767634148992024767693874394758502753327469418605151350304909411064474267877917075036557747224398382475445443656031456900682260097830160667171717797290155861928070388324847107573348753513509410899410598898069601242569600684534243946223723360199934612846731132617744039858389571458557451325802147449174179925684379990931647630613280635285808248604124884031697289065019728783625882107923611626383769702004134162137969782443720230305485385467194040436623309373844728589509738122378534833229264697771082642777807550049907743329709804518498953258207828401426316116652058879749113691446835659303957111215493399045565096493813806369599828529626834065260728753333471770983541503064538324104284092786372554875050186516515040855974710957732633544693656159473664049311081854148904180063522500915860902315185274682720313810547605266289562539216535452857401083097182052226697973028533443218496393723324139450654881145446050514928311964627209818850180164630124606725763176148634153301567265621102459262818177760035337218394178824092707162620848071437946997562083458714252998141062184988516562773356079172109041768420013153347143695065578722872039777881497940353000780585213921435817749675112951207957876254894687396691470975797361029359521472244555726719239342328442173647137613523657137144277202181004292702585513765557030558652462186402237336354651922374277649009011983337575433850120164385949711880277685411013462625249351020795138142898424957267630996901037034763071628990808169024677141671911261100212547014692282385951984933085841796087711844731635562000047623331981668247876905827060167796970890700122915130507679670714136897514075386399985376354723663291460164093116103818622040274159964934670337697653315501901994920539720685487128798720008542714546171634247265926609092653502802732854222394646208522395160452987949895846939069338290068390457714366772718644105804269616121747803752107780408864588291627021403556768760314031440660616834448149171437623245403046497518053305819430187102744005865971469611259414206715815140549248401611113252167536563673058981386242479258105558917612812518869958594940946322330093467050997542375142386104686711675900185958470781344488538822980121708341452697979092764597482737083290557403709454957263294944408691771089767296430449355227460695227259663227818649891761583250708012042531717289023554318189219328061012653133985594708275278600823138389795716746306523064980718096877649494775486956636975437823121854072314755020287555242816952207729292936901190790348423546390760939092937342665418711218385504458455691305704956503490538110622836958337690039830801528350604211988557496462670040164791233692883433244298851683745135824643785740770192649772496777164228401035850001683956536420887527969170863360712102026197402617476490049074571662720279611544810914847589518794648961008940688457194303679952155163712128322790409507910841573395682823992033905606698512125538337869633791279873587778416926488912896984981433178426353127163582843183900177738205307666528990947521617517655637721819170794309181819635211801836549268480624241919460304971895432708754595357792621122978456040072312345225930244877819446271719402862177068884213332487220222900681934831318529505957242171129452445965473350970709156652338321932956729616181717407725792098661026707068026529309827416431584373304959586627672014571397764711617019021607212844003821620171929263589877189732355027345317729705519726158285630089674326251871801212379741993516090713623935055867537079027527989826741224271023086391781646438875840071188016426179300578962000519789119896384357005952258999238790545278577079903339421202861690815639438596426367017350024067344302377531850330758500976132914763568985267616050889833527206635226264289338353105405573655554232539482397328615558524619847685383655185967188068431200062976908227763358682844223534233683052235845018978413642286718741895432553810869629001477651012076553898975666886839764935545002393152305210385899142831350981584268322001640623217589087533729036108893343644478869758582026664520020814655858894500017294333891296493857276496755974782851589772646829514293812274793363021093649318736721123146873207137531040417320652968377880985661647168416419549597233414347376134566979904909711497438587763658253675668515267365956259673341671082330795969461591143777210911784528328759575044770335964351723052832266506472490251638875140946277518765895472231012468963489783619328831388448027029055279254429411411384656984696231349056659722559569669645280922125831359255669526036864719811216059487713548289738121939777430884523011755682979084750046743360245972726167715478007109729570293958429691223430251954586892512975537966727306241054169952363734765566364293567272482567222592303062772026301490010563445661097144385978990982501490262492100557018981525602848116885824819791413846299863217759876487053725214604191399810118396546081065151397905024093686749864620244854094489514165541168283360832486355403937160023444785600585181198671543952423302958878083652590708298136977619868396011576785387169780032273168866493828134198947890768095639021265626320394440652079246211785089844887823137663241174530714500653540543603354520972770745985905609207244251721795352151845554159436028972092991935563868527953114344256163541146408895520783251919341301712676952657777336207907981192389871340107856508244682898794788953438988377858346470498166718516724550235285268505263982757238806920726488514663068044132824456033758819432305040759042528522953040800320829448893467018889786546290165415345877066199736442076718750548509854673024072486310006204581821122822647922801239288335131765447196478500133186813052275446668483528830793630859774394752882385046757322161030295478170253936850652016579877081928772865732913354381513644837365391180182404197792547241504266385734873851369831869732761714037512821283719818942471054893765050775090611699796983363040338708268571085494550955853102981587014174613208869609370864460541274171348992052916626036512104487166510322233789086510041343472378756593718596527383671449438196381152389813109487665816155267006342908744226005133001042207827062114877195680884465910851396541419020048200782343744202685015620408710339425617456254353423952295530139575471184251024011360268882078996241599962634556233533518320887925054773839423745119511562918305323846426467250595014681408066733752576127170676072872289670740396939839528336183914608731146289211164941943984569399053641865905836974063388428156086935571441283239340063553086828964833506105996410259265773718147312382295512737580877500225256507183735876514548085717787845835310653833801518983023372456244684354452805227195513148011944710918365635039425557038218667425418924938886990007410430680603730973423795945993869941173271291001665594721280821953184764542360921100069605652753968758789991472625198280712339289680700612395829401847091980386530511899191907098340871554448942658716244242798400883569583483784120843494837558713608357659686360333473005842938964620902954383122052151151260863117654637737800586173389493935231813245581844309968877600500856407187106383771789829665809745029599611287992260702270694593890853061767932918460413007307420824061330933471830780974375874671381753541003483807665850464596334622456388316947124899519755738840412361701974138405207573072345286592144833875905831707176521531858412779083090444700895332257565636097261074294266877067863891279876692839933486918992597835413761563915483221768629996643903573447516345947096897553502491482597211575949243038571323507278382191190478468791768473402971475040696202597239323244340317746727019175257655310990353079072427403804718413713508619413369388621133657064364454205457168087422868434495682058747085001205517081504404092788556202881109916476215937918202533819818969536456459109429172295024052891613331973859153615529813799230811302135016420734964256814841389040861420084090107198602009180962275321736376059966149639051220354022021483412196570862344630182274573866787727923201112767419675612893839918647160106043609856659048237606558357012936075149199624036885329130752844068742628254951870681865073796814929288943706772110885128576076497847326579207583195814602806433288469976064178755836339739750349192523076809704180758710283713072181437313201988010204654156186772334622936290547688482236807711264616248322055720295947414973353715533025273498638628889457103353939157977878248214352242842047449416520415511456207947458760844184505295791173911881382078909862004572688698731102679517965000130927356022648773793709905302493854538310219882440333466460981204344363635780771405654611024370857608025135429517771452568791974270798723432382551078767938777705484875068216957450792842503194559651664502593940651599843220800558887124516454862789822790772985569303610573451187036706795660053094647135319078206028443378665483423175729156968039687180643150047350737079353186480199121646396559988992335580968878908704566247998667815986276970137532073136068321219313688448479923609396016785466383389908506541795364940213973871777750171584024779277994112686112809873093899202507236794738529753896618370682583422920632804438434887226332988954497045321388794408434926051916547601243996179670222259834554233846998280834683616962767378943026108653479924459102131018915662883809700114548200967915140186016233810363411095755364580719764748802952881849489253882548527960348364551275979666851777900547685012066360764666376853154121817874715143942229542034034685087308227727660701061349601485026656418816912902996207370974575111693025392937719117272870901901716749530382423957823453850524388722023887002049914577562222748135200719709772185352475310044705266315511763311204945012905714788938222487557102757206515810530471702672867583849788455386680317790068366656344880560157483593185256204774695124369328321787731952875983861605184226424025615309739928099323195347071988767970094965459971319041734232903242499201715941850433095415059168847793906179674826974153676471922382306610769167513704078490543936648277985156932724512159314393481193296027285496865169532056034259860385534369228841722777594922571475362101198688117381967521996408897528894395383639445986739087525138503959711687743240150278537870734996592806308832143212979384163918400669292625898812666928173354030560174700744399701250710943482089596348135451552755200345913007581490082850629064137801841105436604256372398869041631440253352573988119563011393126099877090380431363029868574554922431102770951027443011938679534268430956651575415277798569029399557308171734376248633839288175454216722249589801543510538514215752888894350622907466631412514934846929244618731942725193870243335339389719006421732804624035622605748567618051508922036602540814152459315518428585626106668082401444539177986421974662432595626499184593250694226545823360693339315495441363188392061330059551311040720927994721741358294151319597322862761321159360122118592794295527550751102562858594799789410041300151930871562318952460281839073318045888990562784959718008058978343180691433080807757442535325804263531261621122912947100635800100870808399278233168536550163824191485860794002268246541361164868716744881321083109631693582721722885032617007432214870851915819690949769524200346506994904956391033460541960158379861213689286602824072836204011899356624225066482706215890183475081193720162098116811223213679466223992668427713048020134800595717897309388908971872837230667722893036847695274067224392104364192332548871934017029650279342601070298572722159069081558739112780134879614132078449439597266876865095538131871266064718200517337374547556298025683631086471813638225260641491068930992482311181011404841920296987595770359455712056740142262140236915086844068456941559337861793607234877680636278259329930035905178041253096214626079342741462892021836223095715331984223552854180267819289575128338163704369582154628609760868507966876957039143934163085061476630970156237595062118755613508544604799396394249255125008536374964848354672697945561762304932101075561502767519588548387269780001221046146614936484704639860788316933805197943757838198576973498785244299765744538866485010464765384697049436314092672891221918438222351885616593397463798308559244139963391026158218538416697803594971737600701998195534097794349528051226976519741438656925485925372235278661078316851654343930435804622596987637457682352981265545196689695995511117258491965481861438749268326417088176847619930186749885107588654015149652649491198191067036097392798183767302555722175164679810928201297841613692198827586759323036636806053342864578783806753441771387316245725042290392329825993538137278419451683404505552112012099218214428845971483374400197903755309967286119556515726953039637772359894077890247534762796278321737333303020866900692530877249176164540867801077073951232028465807576366286113407921766250865806236645948053016862853678179075469522441310134583732823808056390674373395252592691450341276154910563286554163500033395850232879084012843825012606969494440189558678939314298810995180588992787773001660241269043819100037951384761734502833630186570816522973950653943061128477451690046552639164064980482379174563278587107513578847454560540523907187364971918462291147686610069870883598403309810825034537175545403708079624750601140064548229580301946921813694490569338298591830164066625200184485003731874623250572203071222891583437083746935548271944665368570219094982733572783493416754213216194776632573932210088549789247921969973487348080818174679919783451583208884518278043338635475892964807692832062922844469310221003032853833848868984191483897834171115227237675859469290790769479310081892527639083729877171130308779849212360860628323250968100215633456493867397850118638045574312469016036176090363750823478494017072150182625114066760600243987846112878369377713236594243585586824615966467221480360140779276139812256694952801220586660162111865759390663152129853216564882132750295528003996177080151220337238511990418639999361936610543098519554427079332385158174417309659901469522993976053627541623957871561908404482222179824147104705115024989414737480072338339315965424020506978166974980928318375948179976111116653258362487391544303016537465584517356535540051091060157339240830764501640651363445824197922088371263817132537212803429870124913414494315297757798173924932255090598275839660917095831905401241710787883229459831664447589168899040527099497387121929167633579536434027174113929199715421678998425255301277598621991647774213716044077534903930064539920969616279979361655900464622944355375295163028119908482952941589801353638262711186572260501482638423170376719227465240227895336325574023079402776685758993466290417761470332734180177456444231084442047706575835853473841349709191223546280448747786072405039155067528869204163056020556556411673176569871796734413527081153236046481585407941799889781056702162434672031985310479288273213687532249499388120695803588909885865128961698422667470694603355627332347578633971183265292536227198384492587147682554750635843975773615823534785248510411757393754659685640048880391577841787635863295959068087342787005673248246520339325150301898319786169431792298861881951557327282822310096292399512901378660748290533919113592132956419674461851405995712658498769283822798812253653304591795155663975380223566632828693106474228382265291168451837015051494989192422343429454802097218620317737228882690439494900668916681629944050953725430857531322250480170462809954829494737577753474171555202083521918488937689142892808420234765398824557096333312281703935882468131052264194249271711642933291915243052626040832477634222971237143778819072583979738498408757069681636454160740218038257010529325413006984979592874063836189748302974694954694446262097938289251650285006173124037712460336210613728504313430700987899449461745708461299940662085819368013421022229742759084795079092029174431015283951217657201007544698273680175577556996012096471189690634540191447170416472684020635576082110754435520137797490377456742094583918675885038401140128243880485699392329567238441855358719663246082302994797585604874759230676228357601959397584816860669368449183304464530114203042762326813151910888541618987483640227809667574522854465811720044303541307544795253479251191996893807249618198422168815620067764732290121405770486272465536452244859261603407930388641826632818407344603522141780622337872137258437041750162886690750010194762187557359310483604129543225907466498081792668670960847292643388308642872155818560099402877767856260347797687158977171272327297254791814551452724321186974308769958222122380013753115469301685422917948612518775632123564732233720244563245552769294760401343042394628680781326694055136880740118953715086417682828860282899572953496886203294954496992406063992553265827319105681427969140171355443067822835275562951533829183588024118667637387143493556965578855247187180716108287574607323795052897791502961771525801896480931665268704904884949411707091716211452925832933134252131774015723080844900192443375891588044055435213300046423954858848059533453345775714399461053151941460998043835609626073751343242090615958313826199593353401283092406577724484348046793444327588831444692825107408476020606517244293232212844365168144981324563480164309995236438328828259181246592562014533856973223489696614847411756549209502580365184663362437893642097444936194889708423115185477441701557521096965917407065805844383820898279839672200052699821863665640051080611329835984830699900320564756404152018287247651685583407980405309807742086511465486787747378305685888989404960036809334302707986557056655302546337504734727549187282745271734230988737850275683053170405724773104494591317180357715792358402574305863242467380084150552113847634682426768243145695513172182083663091340846298810964596431824185078834193350996951252523038812699349980433024874773897181052448578626044118752402993161618833929529177901592060115524240683208181493704010489984062794895762435374603236159269145191044611193678708013212703384119524699020701431373411922551474659523419483617136501844463826937235026696391568502640571301360940112151047276027503434845861675592262197841035152469298897123666170263170645654831100241802111598068290621895054141227347080445244646678190956978852035403461334749664402103348713367232003699202070041865039218151352952088256513323257926891483268447840910266442267608817513518261139019464827383482085327548235790735784622133507554763178414290229088860500114811458293901993623642389532252029021490640243687158050930037514225767443074328996976060899394652644640008295726010813185340133958407206627354565762521832745816090968536154432866448533959123807231375174091250499387765368080335622143980462383004724938311979144047068147472553015741137742221647830370386425140350912444818850321304948679697255197736060253202132547710487141858486773939885181497344481846886741463522881896187674596712145334791244077039798805329857953152506447519518198605566134227485907424412494881888703658425999593289579101984975906487154444698114468606963111866951567056808958312212381392027899638212641361808524454647181677689248407390816088401983856245675416946458641784244589999302656224301144956894922099377137412709254952919910244674757855324314364481973095644536841101179631003838666482425946599333347409605220451930961102551801027404104254779067842117981652897759957019735061926735737362812316816782256063009103573925481368376356661761122149276100771339685845434203205543426667164134868795654980063509735574259906752712345225902438907705683765813364098064987669213240087365910525106186081059475326278192347693270027258890597720665270709955744039726787927881718082725895011864846772350934134505664992091319996223668479296722989905696914003749894905447545566463511249466643989628173618913094365812262274783106025361177997697931685992567187044934083485762044907429044435720303125524775529368237737334579735726414758908349898419205306095456570428288357384307030918942273529613720908531475490095898363374668638543833129652691972638444932371514442422784491825274969644967852434629561961824918950537060385037872834746904224235970819548576155648570051997270851477863491260423050333082132554446229958999484344280068478860855147561204060140701444884390922145134436231790002349134014279270070731726710382991928179756336436055136899151973816092324136896408598921736830333859882803427051935673378502356778116708471973778864801974705723306118667435002707715724771560159279275452187601707666676511299238166109209505179300809258654532085052291218957144242079444601600084987352650830291609791473657460372253690232986512729922317801771761372029189724972750816657195843630493753576472478351671962249388364384260705425920350185050274073910078829759676986095438185023081623427174412804562476670780935550675675406785414978249868373515413434061133064326946561388352380091877746019715166097285696580478562662973340457498299237705639036905068012019076023958036064780676960386981034689618791613253591066141970922660993599237202419963672170154927175108175132469131861530341548705831582716239978493772920657318146393867201294859877727570346691040047490176247497878373996077621395165444208270617633307327105138399026297309183379824328265723558260100516645251432193255857012199085677657516363164467021607953903672818081963756248654255161370328642737447256595745378155520235301092800203743572095983650053144653685534378624022072930301643319823848567843191950264092672923792032153553053812693011009582686361320510063551177569755854663536922588546391015735617396733936435623841402057996706603557857067925723805807240616398503674435069372223186138413327212086211219079283601818981041885715085761924060843982928199654990739819354162530104575309614011382848693539596010216967812233845627932015684596088597967744927693515113079885935738897013663594043151618151147479044740526824307014486782365717975745977190242554582067290827744349853196653007290060908944780730712087734562247236485480071277892523395988576130810357383329228621590422771422478486816722935379776665897967780176545024285840008086070685456811116157392336618574944042078888815568324782512794012927816276301490816939946701718023435922166128715685643721473257667319696426141683439821383652241538500808282973421471315672050047960442774825817506343895795404444816136137988337875856049610858450005305583337288266474833336203833391393141585906459313386969495259560747976159777974655950625235705413141824947483289153944856132040364517838685239598322228168887551886737205274808828619285381720037837108941968767139923693268378648089803259640304023257371145843109347255972329809923759997228352842062532273088707005900639543023400121903832903320364022272339517250902754993526976136630796367786625342806672266795163221681028001935553867288025929815178908508939171897242325268626704059627890961051320662327387155185488696137994849008093361367671898815035837331153081651981052215435888350825657805102557199380563386688236198410024868115105921905531451232530099174437059000925506974106296662894949179751301179253532999756286584044623432008410659121116428508432550808178161986567388880137496268178163589452383488106974453495861946709868372092227934162072449032318145679488624914999629274633505725303705083361424508449574843402128156791406025571778995063537069175298715859049942665622600422590076488440200822687091386316270530644691733151281468272130144756511116397935608677316292564881703512793385046864181361406824699866395828680300239679567208185179054806373429943990021392733649337145661023087361184851873853889041972503685890704703702857664895874212130046693842800170262758175169353023112320519598370476608042531650260662451363553355003332552407996792092872700214772891445956001493991844742805645168929940836536363411423610537976554511930225819012460316226164131133049466975157043773750636348982734138013404330773677329369621271927666659952580646035533879026235484602816728193256645998194444747315887371003517279715988487842378562273041831473863169054603086787136349490804948595249501577184339397606442910358695428854565239967380113424858446618684795922869384715940915152255310395367253189321340099136701467750581194076542083041109468797749600413723655165394075808695537066517267059098605900365722851164853066210093188285609893552495982132975505339641624326892823021011322280265034656184388493349981169880656066366877897447502609537057119098978636584706091202063377551836107912313777213360319641071911410651260053752423041164811777843694598178848313457060688737868139884168529938006493257163577443259132102193018807074299534262574449436539182435238350279267185016846173644211408163016485916579282359193355641017659749786017443840343592621040910918677119380272069433033102096887858940636262421379347528207350900522658769828826636371401438530354964803180842366090243047292501847024419704015533915007385162151251638296902973531143707758756463546669055306721599080052480541225406945921656436558085332672651548255640730455401817567031809982207018053804259265764547237676300126177283222122145453759945385680323900476500161727974697938153822848501199904978351963398261378167203395293147564712736381870960787855969636551850227660969718986036843602564374619471962314133996861294040370721319270411259406711548006285344526179771024230129671338009800375453853960009487512907514265188828122603901430166788821118815204085576012498805004076284639573753294134655782803300471189634336763121019556124561493833892883981780394612011725564031908891238550223632533657801732567838796848659927603556937607390615189857638929331674413634356535959386677630550985135553064562543299121209293645530734288692718273870701084924440927651741147565982101188597427475379044517208283539684155916429610813251924093260855841906712448078357941383059005576738534436235607321191346456030661429650639523841427380749002726653113345987204067895287613657953706066494575992875626258316317518066270710643264727835374687165295498156931314000640726963452770404570642817437963176256801131149077271659733788616294207065398534473681507841603404909742238069021371018502334761783733418539821082494344128029738951561312547106872026224783721965868649327862727583409097861789724335368030093557151962290417019139899951205347875441422721157390826323662832068064646796041486748378393503000532426478978845769964229095487737916482034144612878832916105753366125569364410610679198422124495896102612177177152842773512233113419816467680293360971660611380190124256208072186299460020127284580114935906347951861385176095320601088923658474109055931240836242434097911851746813131517978664109082391886818860218083992558167274086038973844835938501967565668402844846288724254013734069905251908673284633919658583854424112014198121448051941730142410061451154776850402553835090633848481909953566045604824685343227051397061190717181897607859275215502346835330808416145912027258910959937059593684745414177464695236762480500750188630692859094206741772209493963559696776396106543624142520090010230876011504573934043492154034290994230623183914889445016628866205418933386925043216402737294978479474339825247868450660917031515231287881112077911047808397260516017856000685093330374278244620051400761533646195887860646245637512128646310953634271323297323701653350441144316452332994896805461694853070763400891078026961903495510839673366234239004139130290980209243075070001505058416501630013500362508990255052761754571761077371577513800484694458800592650821672002244063670330767447131097543520276272558022777923207140186331419108808870198941399241413116409709523984279214846313338898106289636696095803612404014971598305325078405476554030319579124513837013066661845206681576557097907335826484246702991834118502418436364958353998579485321380603425797303625797446558761504112946111594604893522896375139659650672205005744221996127047082747331545862075695879490000015588315638005602205600087312607809623267421845924033882639554146549157533198174815174527037149310186183056779256009918139623377115468894884082618287358288975879434868760713876578452420995267117031925956914844055614170024963563064456710527987408884249024271010850434626095385345924557450882691736053305672756585744658227311852232454425849087557910685232904173038144176873528105731904773712510036508690906186352849758975878112893030155951063696233026511700168680987432609210484909123108264791567485552111963713492580462792866603497761987912668218950449470032623162451310629709831883813540880916600406210582474355158808534148828795219034143702514472020043728374827448034658414725180564314632553521690859178004144086668175730068411235812760295289959610680219256552825518383026946406295455024508426846482396585493759812149861681567365817122062509163644654190523276117734338080179808053201550533241888403310173056831825327966471510446130403301055523664484286083281604253426244530412306383552388200396613257670131401774316066463162673701045215163624402494475042414332050727049399960207859803874495054000900770769986339723116466723881932453731324439812835894322706918107575395459244111878839525830518326119601134963757645843685606120639051909791560796962980615876062896182026131008556890877834550240268728466047139306597348426532530766672002535652870023672921918780363682886307298616386959635333074536971269341010256540358702611361291439208816025793851728742386593393058417477017668861350451407277629195264130730822162198294986237067173819153372256290005679671632682295874631758306346177352965111540789602668085109720833123799740065675607091546899673768405970137631226312420049943088011207431012332093467495787936783218027295057061747506551040145775760834129031327434542476892271853750185740636197175040416303633466959090821921540162936187081119159175548592663583355511401275856205660590575518423860222115855563243019956262797567892317967254755758030215183978213774267206927756899126291484299096064389609144020286117370754185047075714757338371946519557177163268124355594270065272010926085631041997019294354520122295380913361873875108499895622870968474233245766153310838782751656900435800041859444175975902701811228265311930179568836394880670918486264001001193320806751313100596260726170265786194054474556631069563297401599487750906946266689916895700195189654613846585117787381923587019503461452223850523497236907926303095057868987271265803099320074804720708958593569668369664943139857799313641090151676381467225150419802423382485018812448244985340825059520884325887605173675167340492047236023634907230199165310356539418245339393569670120817671759729963860388643240344708872603369316361180204126485424471925643157385934346840600764268668944823199315963477500508832250689366310829926351354531515812542384614409306943921521152788611804112599131599438919696373683711208842673048534150596193680130120867569095989601852622448599149442536473741495919671923704729379941368543925011652661685375745896796280566807106166277228205676169887640731729704296608436103238628109731095948599988725317262654065680370656403833740690985944119058947302458877052630888213599128560628413641412327183523361232476395500773113681283215258365687102233227382870950906933001351076354608629811599868284905748409290875850878486617550357714945337648159125403060857881734778314140437707870929345051903045244982876321273801700664158893472197551538964072680306872893479715777177935032465926566531564668253216386706954714246516714016356721301312581847865090001535459748333597737737300812314138791660114971459831855133174620754355896328415653757458411385827896530498429680338538554135006803415460093610937395103436241871930127962590453531452479553857432032541802104887261159555482987151865462885742961734333773919914807283488232595624372349876458964738085429356982637811424599167978272430572533286386413651540445997458370660819810984806798806485232915460417507371691093445787151857797409082213085512183244660047957480353970386894147257145637062651286373758686720775743428917582989828581960987599776639304416001241010134855679971409594662016854204729608302446567286106657882057868414198502887426154287293212225741648121443577170100194549327695911394713724851826471324522376101986134738475401776185652145756483142075692996263458885956234494405489788046662660639770274256737921772511118979732004603888874635176841274840739078418328516896768612604829942363599969475134861675778503543552640532529756674991203090860779719845274572127851196235139751623042692452203471762085311276666086621799799523667577052042568970511195101689769334319180579168884581056967585350202456950160056365095436604642721370707585632713167937766400958374217648118637568521684720719462409995441632462420823072703870294989703628353997853597467917378599698169812933285819040541977406371159783850788559820072358249914854755917878650604218975789008582848345519544558166577938758238348431324493290755899042280361864434466146815635750357086864834648494189650265853262788470924808775735243508608719226509227270715728753173525596581155860706258623281692063113261070777670380560921839533298046472861546509735357782917979552166149292216415010899709612040514665292904264605849280881319266176220431453280852639122079760766278197161741626357579364106551452103955194064958934826577336022054722729361924811185880630869664302554413052833810622855669497197657428296742291959116125586699020836060503279131505690917828229210584661227661094516034829415473730505021834878454168806369227188802762778844002909453937777044387341734604713805372031850111209997544144711785957917830487419155173996276727145331123032684527601986299117650848319622978295971430384976082604546251862376297978736150616286403755993457291789353926519527233597637853846041587829682307392630932185275689403963700585659366483883353386508250554551276691534008082715716794953919967222426033543943634743862878036380530784818274549353575833799480946307637298789973562305471582310700946296362057917206013446027677478318633602997751863634919906207719340355968858022815171504522070758155719991206229468482568875190667324357568458620724116099024233011824125946278516795705484692664157789043844843325594582669419361409733318823694283067892732604830559247744321339139572568109888478956734008074327916657159956124105204107696004575697625900439967576570134457987418779808891369763243576131001630824912879162483252109332311819142746697248573386450767356686810533729103587989083028421452083582449611931123268528260463370242711787859641603019011307686672499485121939680203631143821747855145200402108465650869614637107050831074767429478534955980205093042088324424324602790971588569876367751147005673848036786145116926707361635613424901676832064749202144644788043315108352516173334133737634750533782637466686437156891115879243488375520079514723846477846231291365063723258997787090566265018876827684782931506611784667689812775851730905515548239433375206040487240982542882892440451406075171838230074457868833297159792322081261565578459114738310668195413236257340512986851814211311064009043202705302571738017295592123895144229509693740058540609202347266552182599652675390501967711093059468736259533674668257553359268879600627557732161366074112676831479510899674986114715561797523145294711888430325427226951800036852579690531335863457316891562276358640632718184004882467873436423191532242918205332279487373426130638020372868940518298073970841180899655680663551158388801239072430378565907199486907850876857262504462196467787711582535808379620297543182156281978960083233245602511232912766713273524089621738985896289257681909464252087261639634204324461979958362550864913996277326909742968012957480010751983212456560008630301721712977524085778258760789506898566622564778710389993151278135009995507663699069855261381317285100828227484394066752653172138370697224171830546234083945607728180980230879840960542658579626562169635732010115922583924910493275932697885107749643502642210356550099370531382688145312281592851266936447638172349104964820085153994004986374001823590995742746351991820261331044809631861204895078070776430742369939271439141331421652500386789401782953507382411675071087169778191513804976743872848128160562062253067660021779686451042714147567081009895074623753951913952469948009699985130660566092072715003940577635344481308911667416363048176911606989898853721487593061655584311020505396270934884193378807808717302737319415455580099481593893779986187408410306518021853785608395621150849336028077733321022105922760251247153997949283007664232995438182246730144013612033281272937043178143791660334113136181571163866484818103719999563180112936820744762778921858525697772894634691956244285397861962553789875881987819080164833847898344354425477618125374774273389216622132903623428606395784402864860405434939423137018212144681212329477871782999141329559108270980213921663497566851471706490445464504217741760089655713440202984099636900669473239585198484255920576074109475161110330080804648482725406850917947229499776959089647013250685523053378134822780564536278941369808826254308169544026076277742338678406277226607607555720183955186296753564328786268783988566642897714766675585294618664821024434550966397784390141145261019453174476145460605915680555928350597291211400858571349714874486237210018305103446956866225955118214399466023910650370373712723173484842987950954248929389570498029946465453280603182164766683213610969484954299217325182020522743463720303916357777915141121243055343252706401802237951046817859241249622339917954080970112223023822255054802694621639104555810392396848592796917869044154434122830486571406680101747090726749568568804721942162068824573157122217925125697746182266919596683092380943165805945994273355768585416908843699950394526621244278108706474117591298287822340018797750530576055161053076719803008990008802697135969254997672473124253497046148794637250255965268324964938548188793771950018035279355054591235072417178549842832605364345615661657975260368059141697013010755648268890693276013645383056515876264597862125966551602575190878750650312227212120028655130464591613319011888757791951067448173757825895463404963011538982119715761474830095395374669674184190303402319911668259220925737133127025577691124054897297875205360850957491508935332742235100579196659626981369992352640219137156879101563159281392953561790823254018903376147688460157463587194516008498370097586488131050359595405073512267093996340619146642191596757422108915133157460645948174069263430813597042231123741352918779170492953110791073326367638991693365808627757288714709167335265455831782551774825465410365069676018777965290785126871788836485057130538096591823551204437553417611187048636364175244397889354145137012818608555774042992099440663013158615796594759531166534123792373347038754687043604876350331636519565047631997224355279222442242391612116789091667103964447680049825186821466215708917710421344027899532065209485931732469231080996963152691474829528298133809441350955959778967718231846760324963356180489839255899907718373489538174262576997474713344691334135378486354770268370098485815257654733489407714341071046182281126174870848508067117811895471648654031869365929778971706469469662938745793370557595210623170267543820948622163598322360030301810140936281159949263532563897229222699923746089831048405114589909967991052495566160239515428701692069861435782283774477833315417192860073920797733009829212288987017455218252932805430355264544383306451142599237954986411737897222396806272051592436277978491890803372168153006494008387522168938915609590782553849988463092872652955641990020984758976665500748405730012693840906264393212114888888655527445272172894980156728785028815505180747571511964012141215539786392630339080979039281270346906711556534550963190648039279494207722088205826951622101546087613845877070146423162820406028492724176227732382773959992862459156949945686566791550594511710222941610046685150080179873349658314840506141835039911207826032325807632601607610943538207060392176001309244954280696894275022765944511458842738208230874765436122950857375605895550994955272584941682745545089426216550602192315748651882205071443466042588746731952839486750922946362243476152809277443516596956258573968708965521038628566029917676558253912406732689695435754429118609121844710824326850041984479649763039907538896702435961547072573146913610186604694693239095283177321487778171689091036309583519559206156890907035187021683298992873401515957422724697127637652625726686519323727652881137064066601608738220531254171397810934709624553210316756259335916712806289093567081261549652850875842573875378669005758585363305141796051332788292580313688749214442739084743709601075681939346925378234822890022917297356191464343528632049235196699449110573077724572075113443924590736079857388529716599999876836163350311278882251783457746084200185655999443807519619908098557537346417034617518802860776545451494341455839957234581852163767935802171375367462547589056793456492004185792727461560298285660932272751470971143000984334286144419361506364450215469113238342868116553340919802242251368465372421711181472567699286484655118737463556213508924179348255871010059467827681864433097998184000840580427788020818211245722144975816532904316994657798702050128664160832838382289372462738126367515731545259608414345338512863741935752459202161297827842026232539809410823159129290236011078482197600939192772433082941747041170399071297592117630577680519402875259884469849411134071519762054954734846176763374486287170711898775318298585357273357219109234613130768663692664032146929877274200290703326887485810501306375528344433410779846288881078687714631800151963952015177202391539719012274397914543122111085439463121487091101307140469347559700499883559357621140683800960572935923236359282939976856505006035030745402554407409332725202800010676330265897606354540357556213723628800014107555659997447767590805638246928991705550603476779215221336279324408266638169978270793683478090150027444411764872073241848161638196709284386753676814076950704006169835116388059323136078175903177789500467416383201501230295328333905113190197187187117580900355914793048391818372350836375003414973606899234650329855632017963806578757179899314524652176258369963513838398161642603260088893136558046314953696253102053846141301741438232915485510518353908049969265960778133208123618478624911267406531349449135390777404280189905052085406811088964323531666114782593196433786841243880637989419342315969419566771239059073679148053915138256541407226496995731231366261851571541070719652773242722374609030719230926296231668936956984983425781368352626286075815649742507783309600219944861676856478663141936419764369490077070293645542635151983508541512820640953987842829262949075517318756749247447897802269858892458298799037972786851508686191944761357523088560585179604334710680664632894881445542160167792240190071724004345546554937891139162534558261037752902308463372982186224670153260529851995340241885895066928982261704456377864584482531796642517696296264114600793107679816812188721460260070285479111161489820176076244405009291691783051961162585511508727959927945559834768373763860941827517132986674832519516611272493194606060542740241006154154856778296368357521612468347511342230727692195020854944011043072704560056342741246652780601509670293630348450768711175270221066746802866086090682873944640736564106968394688293348877847036441461430562325170672240492654264357321371938013432319984483355952883126664786337663480537510107602643578253346659490571699367022145692919185658579563693772253018328916245987650872996042762842996411128892478119252295384402482935504121454930001686491588020176069472844648167611730131181272686820964936564469826625653747370233778337975013205341136427322457371887236208943947418056071574002716013256846439052061956014611606753210488346441068061337250407008529164633899129278623992794209864182172434464822673671603685112160991980204015404805216602849263264294161291002408488419610484027920215565496891754898697911635172581185580329047057717012955771849110829639318172615269164007805375393335693408567359531598386311840978184691118913743024630449652165565448723291292751943029519687282186686019575045096371535758646052536503033740351202874465930291430282672234986660072227053340012805805090903076831958206333923961885128615384445597669156958116980540645777628702846118184536616128148230304419645264309039289418236105248175433627803875790787697311597039025546452012005516098982657786678613586459891557685097946608420055432235260849332087175842014323226398570080911284977808208255292641888185371746608983868006867436893565908672452334956484503887260379207520370113658390143410078824972059159694806942656404917065940427403383756168133120526136321835528060447579400441980166251561104439313036102813642294979247222231292625877508213409479587361113991339300206961608964883818583414385697270458528038681841422724456633872900282756088428838491532304190323184816642202741139872113988548435346232174861679426954272613731708997468814970240586592931992859213843012756005845583759884970024072213944869319490587871256696290457174229198358469170533731514170770502484919658234828460220844221050767174156162877466745405263764159654273630667271625084419443033028755640987441728489750241948355495870364148204984071452710071031146634197759746235834096653944115437065743076508829534516267271478421493081902416763489047919647638814780276748046308677195176186608880364785000904742159523811331381027901737501029953677074318868459367647062147129878657485881851832685113189193506649831197273200190778582216391251008000136535742315315917248871593191352762695022442532056877973828775020880084136591138000426735726213555795402632754202579718418673063868833662602416835919478940425442530457212563575270646945358519861649223289948496079047251088145599739777466993621773191772152978682623545512517947896723915099282557561706266875015910925346890782837847509373109743754197320442650007906818336235305155229714397273897361688650483851546488267348946204284802735497935727575630019245387091559452458960978526380692852176023002281118529068160205948558833132014647544559569067507665298242356833772630106211588385975649007951763079206798640220248335789509505959610517554233316179133209502139304125309909110792117509491153287068973342160856552489814541563593480014789905873034471582955305007011907462896432653665421918803385969056494997199603656790118050787499966047474070165171179600847127927939095998849178772427600919423485673626413611780556147881054495812330607307511942423710604163250781113866004468003108313170137627704468104591007124349520450520031544575679262323930029242766726972880771775802575423770249299317119456597911198281171862981367029962809451486478317050948673200382137138596746894166754193551586309849131296923137227703321250278276442306581186101223146592784834514589511416966597733110466449794607806581834130287596895512505464887312362100356199607955361017083595166426949810603263278377178301909161391783850828585784350667058763480657455793119668643044211664269111462991991751389597680819286332257440551271945493473349775064817203147129604165769789944113795901401267482249905427904247820539722180233923129880105702033768641765851867298323074506618398256637501908662987563038033166215093514155462742859735699066023961192672960706517554147902374869059783425735266972026291384810355358586934848640903849963206766711983882142633988063926595373335864326156777755163195459843203528787828640982399953252565067136931992823387404886782869041499999654969004820001401019085610199274330232926011226969756774104491976279601910169884291152130615981276998895397289670776608817326118373635626239596162552245502483547402289846559771655480032000926831462916483096089886495543414950829074861277184799955543184277403712189787235474861665081210702513566093264180388123358013005820633816676204738413225939823012087133054868267333701737910288026168057768727336092162515470147890688021337469700801110800202113942966599887714633333991527490989622892482371029763724307730811583250484991714264494991502697080174906491950056293162205156394973372888532322728341014434923918484589666275623273873270231134966018773727810666849011327523789598818781387025892303981395305627347732748440188353331947984835933507256776571971960782979588944190579206594120745440237708849034609714717119263317044522855648679143107271110397605768560681868411650903875293042712901044433560819499722433464604132921693583080202418435459951251832153190024300780327992025949201857160079288136281804791388808970054897324726186678288169842456357902264469519571104815142889404427834140420329817064598724292901466037286394316416523475076484359496119526743656345288543058242758412798926988562778042239149502615300068929133418128540183482704104523935269072477607880694305464289057376565307520808295451582715381222319138410933400079317294539069765548878493580738612268912961791001868574412614319765918563704314331277826025352223779499781743016949516187936641816319590129235865255965133787132178842121044260091434185130576041260644351222293220667490566124041380914764011683673079052100150954691522449447732562506070762237732335779225273165821823728466529160955467760568341764740369659965947032041183825174969405856588305183660995143424311303700234028533030636366010565922626578923212654990623068363156491010398358917720722784537525348469598749911634506396201709807540312383599633968215661862816599380644580363019546087491490356711092084420779828474757738371701223877138057502088327621832735190724082774574819638591221907721720967613071480276825125888190888622680367344967754405165616939370053216716167658362518450284203500095100223744298412968788416365295080613563793330238715135618435263917119740032582489468770084939016656273958581434352295008937546172739848601759405882612726459136676115554995487977257782640418971408936249812043280301542111865554819900121669528667766370719174456891353193697355177248199201406945752483531959907476077599041883353487572220915372542081936759954426007836996932336013908394899253162422607471118346446689666795102280442763941517667914975932229080807895392965663306983801717616968584941984380262942292174673554657992555807529930962710491235262047794150549477239108679924684852070976080138322677687234779761146261797907466949638704381219074489252664725819199388552794615844830575724894965617931988884556435197421615746284117708057341771769472229039544641946851617850428595435965948559749681867389332451584366567118998649869842547649052431850928652922617233666208908639754524829010585019096768080143007717994178747218136345453874666070961520645220198209394053794574544257427044194758519609821641788050291345582352407008525105424587539038840097767164259712240407014773643525948005539607253072222781093103283291067399179703478026465095140153364060613182001813313287888354619149557723727393426537044454340984058256034266324877957270186609739501606017137206587221650983285299623598489850745952976678727142252180223006435973057892435179636509067154285183685503380182383041898265774391415055540129864864905350958448906598830699518827369711749007708583196753959875094427592308836291209380378957095705627062036804506762416591459731358709768890878855969554361389429147129864000554556475922484358123132304197171743300081894042505209568581757758105008091155851824912479827914488558114202089442348490666378510597433243490290252265091336478695922588674927447319798560572272791007391823908040166996556737346037359222589200220128885276701963830196832318980485962514157418299579335208183897435771714909261964116716334714076389071332332812297968103777527228025139489687195816270817875427816211321641555205977366971760303279013158108216301403363758403850610274899117660712705091308295731829094760259529454279231500501804470397791344627006159778130034035432020109599777408192252678322514524281461240525085471595138779417556366214223801038863951988300512701208233575592985927913202237352163621185142612418883655263404690779693542783351811452867211323516989760685854448376065943252460688121012823968741840544911116773264405444066570532110494939132957793740136598913945411600620460754413247488312930846775841447353087575262947104949284814630693566429416370826196143473580324594871882085830249137132293498793499305774493728734781708825651170822117663362526720103489358649073669717591525883900726627337426933132308039154342393010387688953220605156804719715001544549724265401602294981356809103018238271500366460721295349603441008573473931366436102661607345470104220215045566478891439457160048466989150300947867508374844195073566118945991044022139849061242695153660374189705843267066382947366345338989336480155575878423586862274465362106053670650131986409987383493381322047931896855392737095404482381989249070758820956098429908388757744305885709244383909564529362985401565120906791772151364436138509372091412117748863220267256258523363034890787465452396558422446200989846873049108292489442112532222986238557553802503361918825760426790690282720851615318211624938540673736389956196861031589489055103094654058862201990939497353753900916762550694898863913734864099068982304811535968857002103612027178486066594844111946635247388346710342271741506222757609837371600067898713757196046966565812354429710582414839710104101487543447007585253041415781833329816396919235887271395398882373356037858332413720671720342733808920755061945685579790680578607718586532349869411644797262289995644747221866083191680340809421205616270708649620116227677228384006115100952110160062378652789733176132614372203610073204349385458241965678265429959391420483118254514887257651603762621376743971819417249158735165915976338071698873920695758295012715236975926234930744175876165793263551501722335605302423035333459398460486017704838234279308373021378881004666399619199860032030431447826186052037232933819792651041244315237852451506998273733060487992547349083777443667205818672713511785776073976721841461840504131112256441386601875944067313691225287590490030790872422396523392156541577244595089101714396914736967154265414741233592345331478689651524165455530911947682389285796435972396397389808672848278760992752420659949094992759153575499315846594241587248360004009581592696390154402971099721419452312190729360779999381636995559386301018160438442702621297283819502944612835476224242361503068373938627542021413845339834958662856347071394685921861007047328804934098204010299243846261009485083084726959149592620850624920461678527008863951659829529741018854568519085836112120495054627355488726377750941075989526784426569445287179517014842213974320975264931873697462936079589705570252136820673734274245746283465258654277159529690373004449509950791852966295405226991593595366254971906206861401392707214924019363661772731919021080434457296686853997312441103036167287522590921839624975935449844565557020016840023374321404612383233574272497570896916626280359904856306473642357285819432007726284226100196995418231476096291250371389572446877348578077243182381505397959155360432626478454090594992452422470439321774737153372212700343534479191075251722205894203649214016473703194360013300901163092951382868575667664653298427502642817883376783375252545773179091117852997929674742386195994562943404572575694806383450786495235503744288918141261556659111301602756718172493387524818658846680312337261309934413935600670186982013867026243412398647417525657185465272267611457154051345742852736193632862772241706501984849694674082369706406278516516562449205625048876531816378880560446749439890571152049325172267151256024610284459884504305505399854439522688175240144299739352273586301855221829580224341670695474582980027188235407034387068228557047103690651478319947935732118664764585255179348322181549805664443497207172888565847056899933029089812864621736485093542858415994178879009841844629228674285161183849071923807077100021376512153550093221290910757397181736455748902678096946295007174317374979934259356421436227492631733498600394787017776171872462308357076755093303224312363228300780231006344272072104318191197076552193031896067767963160211488523013734543451263192951536880574022961454780475958687322223789200446974142802828466689879941810015545936627322554824716280372821528537116150104666652485464236674972834223052613385640045753970977685617556659723613777076853843376850280387167902130642677231245732431080358211048686903687047454205005478202659776560982216127578941456313617037212109536377289328029930480905076746431881326090575906176048072351253104337655033942281635354788273218260324986655104653108699837596586575153541891378592245315737905122177568081718800134426316556030604852471763962599551030974071608374278952932075776910385857776531314305435211494596956535906195082739014675078469946300779936242125867844833162620065459137241632751022449136936228646615367057843152617439358497610211804255849199477793801486901672152532194129165961768628462380196653353687978664757152359220189012400955552632407814014869150225438073091780415517306580119162002032798825703099129694128601054521570589829069254972549623702241876803100277612869133346933938017766804078172338993934062093688767979335510592143160972011767702878249688253212048748217611735164950201757262570672440998691821082382036415914296743141713765906223943584135339830790181727944419150102057891876834266965659073063995794615984095745317287503055871745032229798471017810566573650633764058872448380777680602530239152547400387907613041070676590921466591746743114238996164550187181278117222186317672828640627772711125110281885084354959834893394376609501628379557631362558462666674226154244568004454422430231264017086811150193233803480069228424816841655252898176695435937148514678378638676383992211191684754799246756568326731920051690779471386919781365696209888941905796841490547134902579401457613835124438827836875248725050608590118412629239850313668935099437541537011729694387171400569944540973806016483226236277184731108327737888083419741756527438140884049950987119279083730684861097178833215414268416023058703505219643645880400318976864425026753607860534018827347434925049090621023586595121282983868308831515563678555521466149136811937086504288193254673470598139505578266508713625586776716106716759330798316589829616041302813661186862430279791568803469949744717715035572241850575897922721811332986957731179303764347444116848443859135474099023071322364398626824206243876820719867089695872875345835429047454687213221502750502515572388904799455446832133106287528364605624883949761483948065647299983161328657484965591211061020434532713674490818437176558948103891648124439389566554544851152740398304451249095632084991332760299236582719798037041961983300790461061315171458266692069515682139065695744004397658248250018974384871409687628835579042095950282565119088649343126086566440304357777415581532101146817572671640731293290901240116305013290765607498701366338083384998064778142552060531042718936422310256127229260739652403347087726460878899447193833268284254770403422948100463873858764497064634613879126318843728927065437516270164599783000113976077813802748260502485073309229809492108261826359668780701834559789141519861861681167620385412790473939463931248671493069167666664478610257104117414739725375554527876852547830461036680269996009278398226481957290359094875372710174262258341478018044139422161058282924094228490228670120074177171962618578951161022110703819470247231738845108231256873930603689535557156734121999382182368591410637999587205077340870448740401452276995713074731966153467092083272402943409509843927922501323240074825038204690293549223028937863863251265650099851637182957523715547622573840706894951302848984296557887398128253917342787030831636024109991259806648995602685973393193940061045011849199557834049309351013429157920793094230512921031983465638392254391327412077424421660532566854027132537685020500255556555928266397381732989505750350569438861548707029253314366324776223534167278537517777346573345865786356229437411257991076237961421962837953325425466509391539284955149066759188976046534000261489518203439221556428901936417730775636316849065560921611044356536319856158833274898670758410243340930785861862119605290396813262365702490302941692239121908109332052840916693400045531552347302054809411454116922734688897259018817152091556719617265191005118751915514534673526503093778502436425566288764385366996075243439344765345544590703522993240120556084079028459486444727053246405413271532180523552095982919684884031027753420888096453315034693075781175296792309363815236524922185030060509033107527981381264568498036844405503631281704823500883270597605682174653580774091431189270017289259775626843583994853060653287149656709637774869918993842646191599148211406822807416150122812521538604602271943831470599622435044522194189494974610640279782526613619284174920125735167162489505622339013734668847109527228877903760760478367134163485295707441667048763677915975178092992245253034601891300504580260879147808623004036756992169073025569023615073550167732288631079038157418941073142606639791797693283817663460768370225465880462872459652423160823557901094241997525181103968791730198887324409598649498093974945857479587432492595581868878138134055221455045808580288737544529992855843996391338734103938440009592805588495353343261925453890145694124895221378555479476198935618009372703884709827683443788654766689502037978323803074251149718624195921000486977626320036787936361988979512016648792989870865068509190328547588882195366389545679093330853367279431085636040481809910572535950560221403129877513267142007898531907224780555801004087189053845311385148578308844120966181624042088566500978818854735501690339375210900679315550713311584365237684483699779211839195025089229371787257686639157012126304806520358741360079817847516054422685078041012666826173597345902068916129607300499320393832133163892997630330758491291879618068890538437561591920935989469594476084820454045977790438004838656685938815476696582958955992600730573367981096081960448628073555466516788412571023231218018699483161020919666409599069434547864542974608575177988978584167471676073569399703227484912744061499639702898586028591707446660744157192788684443126580362676369095016785516877740917406456940593972465358120256526828773748353834308312536816272242154079122323820675749890843935344288310438072702235448892838418934033866149508010742259048333649362761041946770385943715735244443733573927732934491343383178744793108914912305795154682226783145738215528798820498077643469905184396745034857259368743795423714967947601267538235439410466548611898704318230830603001571516571273170421012742888195098054547537992131935991690973659590184898008556490936343545757557838034249535877907928524675111272215450243696259476041786728697621768373681828061008642845884842292422977757100203159522167835523886193846007090216186392762364050105030790148866702458006133480302929387444857745309705869984050173651532497989079158150583308380918627983366773354625032033825490952578568699586835792549732321853802033568799973251222689050562276827118862145835487902770065337726118383968441055309618122167885124393757537035123503120135863714480752541087484349669624174223931626165013665498596482274148546445678495002081618996182919057469936681884857442617442795836941203405147214600625928182082486192540705593740610214849536002297385695199627673604225999384698831546586591247156179459183874472413709763755806955174769128603367399264355986465387110876312957925100271313105789755044329554114314978934337864062614537198913358720294564279961423625027026598817937733348323439680377536174483343743506400695509549259962941306828935953933792289844113137666079307740918631172428117835311759071558161022229058022025070938591397630813336776709624890531255276850648292944035154921312078032305520444741732822656823545379383687823911821226239756739936901856233406738331561180293938081373814084638254559868397933136764411408701392757972131170657531256212577154565308420114969983641021146969036212250941239382106545116006807807329620342800855545000108387018252400829978614162046760505040302301444276652861847820209923400634198842429033363393602363762108091984451285300646114253785492797989973664677214510892716642334969122105136793625794094891692161874565646527552382367086867681658657215403120610053509665499256510085385193375227998212585269200126441942003690179224933788704902976872971805755566216074148788629107981906528214491044756253335280381991832277620891456070640697870703441665227920349746753688411506633974577944381363793493250727093797868900622693294366292240186417339306544563012630028409745797411726810364571618235755985616923485718081082288361282427622479487990104411474567025046011374263178948609344080078272998940427069048632635360392487777786322465481933671383844934214880374349235424542370515094763617848801278434860734859787310197440858172188036802387707575989646678427711164318570061450041562292472179730691171797362748582264513886286803234521411912681186979393682634734904100555419638917542275896336109096731701901475565965562538942458213442753985198076077164229836422118214805549624425467446079296770234594359653313139180948354858967143776114720123876544731314580102486848966867431330668743734008524231614159306302865612625298331362029304164778534360413984680300562284190300768780102218528907351814252063050550397948798743052792238204652025588297753536499959024758708332513103521405139735810061365998159658459236072293182203316553557320389634956368222204115429509490238662524533260285824685783295023036958103485686351672411176660680555594387773556430935211231017159083189018778515709043526634291778522550668288583485097296118029505079514216874170829189735085265993995421173250361982131044998023196686683898035555614181466403546371460529382923764648158655129634829746977612415491156761161176905959873688592219171355191675897672796464808948077719914316696737743951165676603527257731216775256134359096666900511060037205025554518561872376755313048569311874670493644353256481954127731443458766897046538428603095450039845832470019730039804777643271315447104547895021190862851007940039213243410725400539366303089898709085748897677928354824741936770942452569282270283431355280269908181454131716479338664813060442619096339761237944759662110579315285465176638350271647998565003755047049052481242926073637741488689758074531923675048422922268945568761951130943401218479384149303578818521194724144577334530759039196215025838855717151957426830134283410522077244768863205891917332646240072139081816544170385989513286683224359050976263695652889850117126905556590850990017756629343342194418122222655427000591036467923631784599998681627826689384824648099227648793505264133242331642257746837284720863467899112576616262246083695782187923960471562967877463396719490456540646898195499951850384541523958068495946775069999388352331140077088840243901292188561274864034187588955304074299294730748865957501794486185374194231199133400562847904793546275086704339402079870181002460264230268459570947814615214700391175968544346428068578221558770292884071006525416812102619222765229933111186862022662134302076948067149942146969789073082100370662074834689184521592763660291052177126529575726263382466059246832923753395522789949413664479495627228094897760317834237848050892457701521468188519455320053674260018867322495262674319054889623189322551559764279823921428289511845865000370040282083284587386332120476045884618953095116329745275069748497053735711416365176606071654578937249608192089198483509653170417869066888513728627359149366036750314078346855925240100881250592813183842390900044779841506639819091393658943797939807509475180014174847404231430435918745925017103939378734331340620978982388173513699290261194118455409356263728633266173636305294184672668479210419937400135338828263092996738878570680507857386147109053120926988546600339818904943893956774794075368200253070745638432864199067752343416259614165899877293647097205991328299856216659493141430772588535681404078058128232848780613912086732539401549186864723596212362817749441967296402637756918889021973078195960897012229422276170866067164736840908246694612257463880401953154213276695141553297053670177997739442281700654311081033503625320357025276267908717862091603878813580538288141861069661085123809467490423449063397148391151560708399852012471381280982622134195157184230208959684983891802315084076144997254610469552840774992581098676021167347634915706971539523494715764386795314936243839194075691441873435975855792758537692650430221656042249741685282164184186229248047449991053671054919765345217064824285690797646649985994569905853760773350149984886277527019598478490652088988231037678150809338303990796045358778318220084053372656242613613755129468373714684455034706511842599894766536219721817516357554599153430257979683477856002744453492918647744988832552027606745713955337187627993546155127586817668050159527374015343936284380224078385073831274790806281568293200935804491342685768129342759571796935494856443843037206094626568561541971042866227222697815038298405594525686052194102523721707937620531839471812477295096546533458094013432925506365200315395395769616586610555728600666159396897017535474682316998369472798776588889098432736100990094867990775378669321895600345896277461733523994541420863128333482988870271211542934625992931297563641569072424134004241712052019116056762592293165109080356816596090826539746799036251044201132337317282906678704383224827507110781242209086646748469056042497252069410962054098011444556041619160130011261786565158883735948095232865045003413915397211126991711126392425627923120207566339999529330567549207897185305411052242755320277013587236553499729866801335888826959449989859600935301064484624306540794099973366650050270486927403584283658569087273770600345083172631346683661653673583218365386440453715059193738516654206247937993698494554343244832047887585914817048828892445666349251892301769764821968832826612534161041011312218403890754135957090436919869856580290680152247082121313492340607758182994917742776376746433828684781330559983192589320962340415530269768314643360374343581734026316516808569251749369120851459572133583811351219480530455375993383570527791506425372605009234493823147026724863598406031791419283729585281762042826090147781128823375727993288654042673847159914100651924532509378452399989744832743899170941221874224473141848730671365476123473382045718837620169047146802782918501663992207722820449614979532638143855664535866321990527395481095315917379961474656298939037177753571810038912354472733281264905902024294794051853378302682704217936004470962862915892338782088198383576240463583630896256861658319315379800190612823155641703452944080632692058801482440626051545011037263613521944522545224665862705520237155040985220671491756472560499946956233773480064126452079060930947507021253283122930217160165842664297031358752198785000069760009076750014027937735533261321837452469858076823773141132869138672109130004327076042173166890777473769586588762493011970400119066433640033593669130273524778562004919594848899755509169036248850340727949748079218943914074587449456190908500533099440316534516794125656208785443590879822604983601058172130489500719955709124793483266445495704231980745516828478178309485699220901038060322861020601605829495001748734748882575329598783739431071350056220277893827728243500509365876743375885014564630712653326403921700111284270926432376976649190667797941890847636393845060015564775344612408411921115225359452515720585347470289381823836435744731428355097292614559630436373573648112945992612624730792382646987222664593439506548689585075991847161288377053391066010150158765811660232354538006770729008547668501577516448395022250688177355402132127310032715784992090032420499193233830137300438697782446529890611651715819731935138780303773368268416113297339786880101027044700025434387045977127701900259603530658175765521873108017268088949232542510991733319581482235396933654787932218368254254150871505406415180313065227778482826239073074555244561236071952984729584664587595609726517647414399765913474026068133192364055049631695880223524075393416642983564368474244817188848611503321398022677156367322112453488179392307408893574940857730590836308280415698626851863681531096302226897731626481302020299153607024086949341397250174774644855494277467067463876081117288225490016590085546482843425035304997674418654757046140479412635003938402218612258114967889989258000179349841832079955400943887832877650378062121874112884395767801315574069344769979125496047905738326492372595969440853921794816226041951970568063505024772602574414978862021042612852756696297720234014927643513061084219818846225210951519789522855999922673150107614879172766546221324290044595704635593666585927111221786325300111460804689571666640374656627671931281534264838426952481509229476399893878232001357729945197767434335805618306125008753743696598521283432903148672652172520783518588806664480110596681667294862116296857974779269861171426171021818028455342847807507344870466948247189652783385360287455567800002734149887240671992839925965835067285860541586669922812313460089834360445775028305123893323552595177326468595318669858413073376294618347872674608117152039644175415444735786675417683951136113120922765483707469194562911813948285991846262095648590178906494723324350867677547706847782952297531770739685825244251503792321250334900567379005025845890812702150086326738594864529767693337099278142305108075795774625971692441276883718196739387284376520983887288906517388615948013236172609989272878943833829622274311431777201877277403953093944543601419876844767851498084108825653952601826367419270144198951522383472327665805128019008425469144261385116434596692207774365257091591404758349969050316302289305232135151432460520738000672135023561055163057209783826608435719034044321499211731746205609480937927423609749203387800999621921307267738420497062338451079806316952151389914712777904882482403853000059240166346245113124393562295416803781349888423397466320387986691197690507906496139682452417185865598592110794019060801764627880437967700561342639244078380638646883753596016951345321172159096150823668308337573325864453849262118491059926013020556095568383071347892917871317097335408398075105621052499428018526798718830902601582046512603229836580384891072642354691372666338004040127483834424255445477898632498139809520739609639322745765279149055356840712791426713241060254841235523826702382457423545935483069425118304268135413523753669073734126498109625525440080938480367774535293563759944012234654730401649477242976845959410124686271462637849049128576571137315595054249689947651295946374846519299590160950650593474453034048507468665739204080146148078829080134623868029324968269581609357765096563772219815055315594863507876083699811665616808346468926495458313102209601071817983222528621588709819699660845804430500182353078255716023064850540171055648213414387644757229096905377919436372461390796616760934148431748527753294307377730050645319980798684608303429545445679925249434482182969700086936487332575238961283701733008791252651328921599813021882833951040926359700417043921753948263432344969554376036817936755665148033977819303755730947216399413910490684912044644327100093153880887998528191527238416745266365779269598189335441407266631924955768111503918935582944318263423296066314183465166678769374965700846281653119005684258148913983167434758248588003851575609220484532575885183410785111249733673345696125578583028817255549980198952910064852455503727883799621965231192684704902226205018066907143205491989337454596522225265155751570466510371980833946156919970037900619494292761180806592144502399452353160180262728382562146271070828482232885387628423087837197971011638388506449291285648901525160090314094847625175772190441839163094002832074161978983634839937620128275113595110459795417366589642414496294664705801888243419605965184111185758648264731472319987873047784873472456192357825002234290062420155138406296898636763214142728105354643325443344072783756751562331967169035396445350541492761052344173269067573021851836245501509675018139808783565281276656982761750973016308241654143391670797558929669605603066113317046457516877981087543543879444236258630705077828730376470521188377012827637680770831302734211641120561748984837855662145766294496121546623753071054782532693431848256904303368888281809116131111280414886309450420057815973081412905468595363210863511809021616816289897912564157545458975254301497538200284092662084695992836344571815866085095721492916664079378819672809516465553981345100993251928097350271660890127364895121136671333045652783371124580264404924668445703781590671055061554491282852506883712840367104075319942483611886034253763873097231579558868746132486172153668120221818758620622237027928032744759741948147007790393281530619039531311397748777526013204564104318419852508445975423421688309287620391784290292785087401138693385185461347231156435189431764385270601581051997361098952032314207553967876863690938435163558516901674053991012083699892282140300501462514777165908119913516643608266586714307533906932296873635077727849678281674471793755444970931597263635923356586458221836853338187781329635362539113887551493042734081405700929390770602689212081691218605829673282099196497988596572309151366590500120503362446017930738107670238689344736060149694105841481133361954552630162725762128994355384738377089733722044757427238578877443055477865119735686450785878705354092959537653091725771826149644890934110333917388632944095672607745989954465344651600014593695860179413674992993625405592626275590510920945745971497341663130430507317434816768768646008919014269444285202343245054293204775585905399492821478817569939658738694188935083102480709102128066566694242209551820500530914539526054172740340917705210667390317515950499947487481657675052549873232243605351173914439247594186120933728546307517269939132505626125028269359598184666362858924072754001386295276096962012417735390584422503719121049807166077162284265455106621032229326056345132126267433954375295722508696421369765437308804244484762808424253160692119973338690669186914355503453054675986348826038250514151261939280037822836308710611831029677740763704730028467841397493557662649335281312681425584597988642305693461760623801416548916339430442850322771287313750862904497175396460631000743435471282991520368664440775892661734567177637526796418167000070344801146261486200823654841709258171003750463082435266935067554551042113614889525497712006481690194316694211151080452133012586470373910696306875456674406002601944205009122968467429529773399549546470773054647006725529458921279204873488988420176420132336816322936714568860636369058152670594835720325083779395389525101423577654348444774167374770847656080697747081346874358788533813060984919328493278620630177888282480556579377232420499551922822021839887691891667276798888800672912847683430515619593537723662784363025364893840107693087781019582189634683809621493173867169235199228926593207638637186337385188734300239500310619338408693760908997644539079606601938999439678631159197605311452332934900363393907268752479409338481671257927098976464413283903194967004048009588207960380308694060476764073583846177318590676466239281945502488634133194056678608605920453394632910461763584874615102197576639368102329035451145567248633884969363557495399615722971069018809669333050063129393072328150882764436755292253710228002612924430095896096381860433989046036497891366979273565122231404488560463470708298043631491150159101912913126039103645815376869996994208120641720248400999834460882040205200119685004595262391792527462855373619560671588672850566157508553513244208414659175923233340597850740106219923380475133833015631958720541278199081939169560233650097986740704975535727313771116400718308617443623510864435351315648716746800408566335016429603502583136473210345710300336593572404422016721253727585659490588516369687451633651286870892921650177637171140118587829016826744207419783736551177234756225676176746003764735324207744041461187844859637500380289628518523141753131644551720196396670908241539534702789226082138908127513969879920985297432424444554604161425548187696888249421759740220963576103067697833869743176166570458249889898349718487169502678003235635254987631066686831276974510562155029547393158818278040045551503716138142012685089362485600224543587581276159441958256269108871810309657388898999198401520504207622939176433387088822056527217193434732900781672177950007294244610860145300916197080382892301951602257517675378901402750312199689211631828547974544176033966320897878287883831415509412146177215566688130988749485908201237778139856354822229043664480570132844248280185526916604958229190509814057506116641667621826100035562877905211410990074698659045559453161674777958396093340674336364072876993654249256260298140373633867691443121476154141391814175969404348369384315936161686610485045373396902098941919150209884021397405174861093062713646396767638846632201549030194325888739877790207868059957631978023684588263426989289772887870436774586563374314519189067287127379527155400692685365515839759469998867583909560817837199257829357829064744685026745103433660072749012148060128271068987784101658246670591747890595461136574380067720646790468015275180903246610537152406230922130674766048312076565939411166506500787512367189710572337032043981549865741286742983249491527833489175804717269530395435363292937819050921653229683564485938227448170299017366852810820634045878707112530024321558701101292563783466270358829326015871347720506663629584242628192882716457921078722764394061520562830051194934678990261383390806106204038091776794528099619804151412207360355986487151890208924069624890771749186428083907522228938077408076699551402690592654261822379089787589443313594526502649491521445872434618817073533390848372973416557559582751130487253497127209480523774092896698365238005580554021940822158519657264072401910291437740640644500985383173975399918776849145183144369256723873795588632956623853542296577585384111507984615179931692518499209208802856482601284232385267239249238680609594359531645782450721596265059775532903876342879953355180617709780806551211366512169710294586408298104986135387112684898210092033070970104794614188640882081893175916503961759524421103649767531665866097662140698646099066702272052892611958181504893554191276993274411918466211108797282776313884298894330710888794542733359112396486806444732647920307014483859588173535527190300051493950642530421332768472781406003210034730728725722483575523864434514168378462053254853137158527339975677029143900096576088637337880403275913270821683517675198725227910898209618015792236706801532469047442978773832670615337250548066445926667944497057555918714073747051664746350612424746362937240826861908563043835824245113660663591766585581656017979236126500532253864195647163343939149146128765802085239662838758973246525333065832074623386438733768511228481276960316103576968347768803359455295038001261294169845281674788416438244142605352153447910417598346814773727254169239046294570813983439805761434786925030388621117300025392768396946243588545462204396573029340452963034706688150311646090718089063889640227042634322665301224324582391653781811132662701010299577215567026771803332092234233347764517935779492115267683381688015359382323845188754106556979625079968209808246190196813154079790881184729085909869229758095777380220857484772468581856230041351690349714878759390524705288580802951030489830242922883637897232817134601400101121760549890379210461900795901184396384349010194294723546743877863659931566859016340973023060584321403165114155877567970721073757381580972905282365129434019401167814574463112776373499712865333509488704975766493499311312172038938584960951566136235593567717477630885734685881738081182235378997377265817324214647341863989660395737974760825771701003742233729823278762800913205749499636380253039225461020608006867856850408584335070267133667721929738885134885958338278080772297109410029039800028441784425389090834629674211525554268776843934952687020644139391639936394058544884717832221889269857241650440073334519882736698046044698996502755577487303758627816612777976042869160635174282508943918709012545823216598383383485489796526099150017967255641516451618927277656554096336377748322016198171471885048515900566876182214563631625820289151586311213347791490962689538827172536483115281962994445472642822893338054974988754931403189639305629740929428028918476894055762718280805444846296146803638014286439553947079155083349810209130096974858803321500621201918243808493279214059926632729142181167580131113107843270244938253680987393115606064880661074445017157974789628138305685734906613799908178806384961356388858361819519438428566001768581974468473225859658390876084433689523501807288178273996307429082351600974701911384824564457646343592352922447440562825096991375104293476539315024012791923484280087718849875776221462947269209189011410232503869295983482531679054077669460257480467791842389878353205812942637579697037362120921729565049025054333127582860137062225419829239506309174977989662998738688295363165258223117638326527816786122074447162628111835647532488104137398642849784532037696634348398879280305684636757994734705121659837014334618016818789652480957993351387130750513649648406330986936319870947570711753072255410210255070700366135186071827281427180635790998787440573849718838182715475621835961459167929719356705109935793570304566085030354423626085576735742437945870068491657597650354158476454716768466161216907657334030617421975997760314642998178143061600687966927181894520742374196051605075372317705773635648482047881746242962429561573745800506790635056835131781669215065907559226595251835653413436802253322253206043663315414900343281794863689488238268086567931031788342308294036538482851873189590641220190608627233836744238709228684993696739998302271651839028391605882096022751020296734107531151681648388066143293922591421886677080112085464940110170240243125708023907270583186442367858113340628619865632442639366925054389426624459075194281371296677581137491229660357859767821985669211608783775819040259966670769772976761404835529721092151020513491847220647598560640158284305073920629412003727150317645839811910129232882786329012762814143530479313408581255580257067270597733864252748620679765765312881842930025938990205561225404496153005814978629085672385444099670132128191002954124927741693553737703753688368691813354492109395919270850319121156284515020435573916227747021691785346155321438508369480273720806626538293481166769175493070357189874171045899704741828406357052030752366463106105468718365377300120293974195448569196838456141425491943390340852424097948315765869450319384474019190142026826667920391086555531463996541459694292877762739995394719193694549271790366226564467042443476013465221164550389089927088178513878533717493201639369732464146233494305992686280339969808547981635565688415364508395999988568280775968746341542263989015813681689946857731591358575832689608341680804754855301066646691482795532020699086383275111276807062313278462695269618905934423068599856035645140334423309293113823828443607257909830783612030487277021774785077866199612448305595697823595263881572075444466406939881875980697221205175239019726931807073427395081341470569196177881469799828396546040127117055621434841339435141666715125780491560690118094017852039060493774393085291786637552171275447882146936947335461887095495129774512139035074548762503154931165928387869077015085218288869177455950933282816236836814474411849567568916841596930546258295924632796177425741586335238436697361794064393095248582912460109826108699620317666999955632193790086059027168565018133956932749482297153522769490464151426777518082446502702343721713489847000309689900739107240808492034444148590885104910490184583980952328176938732509163307577396337631685837447175214977515166214609778923060703550202439240444554554317481439398315920119700031217786752789580078740731282669234322525903826328116668826747964780943818722037359476698243830866906394451093947973568431372563257018734686399771912784246221822632323729596056295070527560740158154074160815371340172805533870406277561994076705153604559039053932824737543941361198185973476389216652809656658394069364729879384690108485734418749753031776745913872371851518204462408337640449705723525948346703677024370065579397376518271263232865471977202144710784637048902415657130714993582206763698639221585508738943031049739132485242292573567798583091962925488949927983190140657186192555790583973019893760121818041306447462625764039552036408435120515966512764938101292309088641147039510719326240961658839665842214936746145924534066972690865522735254624392048043255729075377902219538073296600821446259533323014884948848046062570465312457117513935125747307708108959058737568516381851764226446156439698328169674746163784190722779221356912045961991221671787507088696989855668772613891211530561855928677438292498180975535611235841144699032239204635039265307318841487906698999027286947468098865462681114769525083210107156426855154787981355704286019590634075377607592304344507484925263260870702351410596624051456895381852922111587160179153455043019483655073314998381292805181741216845567354651364869224980159318013026011831580353591042131132131138431531774323852054846889238897178229065561119554453524714775203687022420262432097418809859719229813710626329285847811384414850918161176521596208547087839390821854176376790897216993156711859118157519837916850793887024975103325017814836748699480624333778926631003789492618060502846245240379759644462822390821294998425469810643359957952677662256042844567787648469920187503276203310425256550055784530727720779228336214286183513680837947357792392100985918968341177660627097386015237522283288337764833364496406076565978539977843762779950459594429481993895487666136643931814672028770273376833549687600920709652491097043406684090230372860755084142078664808105966736941693371452366760183737264288678889843599455538296014855879284828002650150613596839788153687031232651371616515139432269856457826534204538083351154757904685647627772391525183285464409740488642918348013699470285316739225592742838173399304369168849758301185648381951141590875171320511042039146739112896291481972091488053795212645716735881154482946249283869656334461368261262762143236456226497436729841750239511115258587070791364660029826075485122596527314362105031355491999300441426988526277364760865772479051535097627470778959767043961751726252539393168733240101730991134192547979180045285041212375431074240894595416249148199802915068009726500530784883687881121289946355022401240209827828461074326222417634033450213452396075120966467106479310864459611658413072244959528884834465744752271632695607841213489404847522409644400278566814612232003078206587100606476951573438895379385590495683139367961065380635187722230242608862111498949782605837806686041548997361994815597278791072293755002623101307243704451223437124054797480365722600386246564271972229870158673136294727682788592398151465029568081317996546894989094343547917454291974645197733191028311112404209522932434053395584269788608308257543575604313299740961760056466510797658878291499872653213187771004559747340629820543155070543741898154225963972719537551384138998082622065161199730419585563323466981058488620066589135033764704653053202481095828376524801398449364738859399975736934353351692158328592913140367988911981274430639925215093835810704441777071665342571244817223971032486015307583915322011821995617858053431182006316401514799486108557473515603221522122029473586310297330247420099797353341044410125068100723126522076081555171969115374701476851941897324267098450018270039997567418496813552036222119642168360119225816867247705843844937014206099075117844822273419692789710308090751633468857806659103186726405112118771306754591316321056886823076117453965363749195093863473532889212371549851555199544773142794675965588249613159866097384317272196607096778966056837481773542617124422190234291446695671102671065901474738652962760071331528372852029387575361936699954099983584386635273451113301863829699993044970331789118355133418126009301094714267498652904057822604722126845836045842376277389396491461331862259254852504427310058632208518203577281562948448334093382206538327776954990108866654007979756112215947015378703107650316986315370630753167375793917338045643831638765367671304135880845102741964819870230916427140123408497846926159079911426213284420072783214313035647798717833100898847993698934477137651745285470561650690737264709591792822889081571161107179620536988301269182823818575091522690621328436844280347005089653434537971710038688985410422364124468317740424222020286148850258853769563850571899611128553078812772031465102966303732576011386037321016715410773275956691109121361487487754268239932548287366559382583040482827153937110191348819439050616289022723811063559668052426224740824853773754933309773703150174475693355585946550621732296648205427344422427129081884733295901126699045251348260574397612227380594193209801256633580535293642362593028838029841298958785407203897823202304856520338370736009512251738864709676598653766384802458048048176062018839352347223727338267894002430576760314242850279023749422070334935401479792637867430391573448698590362197192162885478310534838132681998601231346657107852790310168079716560856133521597692915039533443869994579892444760638584396543520988089484662019054365540522854582183505993131027652059225986767938957886756956744809997947102446193398484427864773250649723851632128151276595393244589213503384263107992618141712961303657062011395495700026986487850185823309821319053978511338984914633370269363805905219873208673696427816268036094442983968410689434519455398725980235295122057203829254817621014083565095853324981954159070793050764422759039393459436913442930248964420738000558184731450608960819538246636810563185499798384786983708849012977768934753734106761259213230596447768016658559904247552854799118956312077269311842200407163843369583282010532584333781336646811967453775164424450619475944986885512635573242561775804968052338681319717236146549165973029880363943726671833838418603612085168822353403979214516342644963763690391660648714425494586035830176008633164611122489086415122197824868849289121525918622610053469265375067648413857494136347161738554638450170864888293851716157163507319704988498271512363522878313901254200472760428272235375657676273684280101753407660541107067589336486860957096336873125943130014523401631264443781953256416588800428188680323753161098782970109495253774348530178417817671914335177254255852718098135040556633885049613784409766642124964642909787314414684310594477964688151999420808085589002641352229689017798674358954391785634527928108587555225611009679160368202656882536185629258181203483051156881104952650333942748656568170168780834744808626503581270092553762676614149602020516693600659879676519783255624185761703811010488346934364038641139359402180838014324616534355438938055653128134738824728658750301129899328273778470649960168390356681090698880192476681174821685314544138882638943275072642932061104723111259118543766796633116901443176060126873461578428470385625133963677966628532568654423500907306948680195265373715553419266989347062590001874060770482879817325614485241405774823747496696389620704113960587870558620033357966148346541289228886472030641737948604230653958890494843778451286952317790102539995137388502265779090288114455074637547016860853117474814737248259688929427122935230908568069501625806220385353888202515411571437102501582117883185551698853052643056235678346931772567242392945624336388432839001757190016794976421992596251735790433005776787748524299678137406353760520287608407501904712132129066521295333875185033982111812985614467815855360793129045068069895289907427536657647630820758135081873556660954446431670224412774966192679871558904408318951156123256731431746854449758553922187233820054721140682673573835665912114448549316161936919087164405041147940303081443324503734150250192653378083364833803236494012898991539307453292451989923164999018712832405046391308822412375840110139262384760476140677002131328680278016913566312137825802807994408307487407051142325540713945668108136389613042173081479776941265683282581669711334027525233244174701508087615434716106995083290054221114812238498005991822634856415812611764545126441361106445906034973675769510635316276485238183118414755502229297559712525319129465485021775621053508486001837229478215069616773117634646085078817119950534272921168447675828772021069055079580871974503220679812628416045303045797997504667890078094799682828121514672447789324829461487866886886747353012805151963838569467977160639894230376008519706452969250812497002533001663176489979036049290921555945953593475083228486158260817276006014469402168210235923542490246596934321091497521793074136857111321625136096029446644834947830949067280086548902369113719877327682302921756181854647331304467751604007275128496681691249299904736315421819696373278811762701335543239352985319257501786669492108436001185913646422352758470224609773765368770555318973363585693511519434193806713409773110808822607251338619553047956228215586218980670344128658634188545310282233279110211230594055827960450206807347825359231166852487341961303110569852506496923190623959474057717959580275704554595162416322484806512291059864295770551286178567013863144245138529932211638971388688459067821813960358201086859566094306616365862399908391948801002387704132261207913427216595441679027580860268801874945492549436694923926850193777958648737405525664445461285821775124076530786933096714620438338959422970750656663333864846573924943683870326123766033333332048273320234616903490620817932594167537657480432036294201022012098833328796454543223480851472474555645722841497994510011935436604506336928931766012813804092015106184290466289791327480721077656317137362051540418362607489297722212234651945726140958395882581902197383601956558815888907751644569581236365398326317703698296538559006455979008360504873421885289802370357661082908291214051838964560141192830028380017886710845158198557791489534104677455024575620844422308829957568539515669395109929343875699321274118109880214017273626670183214980639545883897361268057489771307936370872307845857469083676243016205830095726350713343400436255254497069290177411584230732200445498130940578432304732715593694470260367649213073456968233184146772844030252236065109515206746382406343705810958629959043008084827397605624422855101220354637972566787517486715605435491811696368304644153878168421001195258074034637265884723749386730757081946327551439232120896583923918165383909691293407872844122408985832120366973001436085829472801816272423358630277469510864163644477107130071768575245354854920248878492085431952386294779102443404641134208421349862215973952243322918083509005001634013419694683317895329066163307709193771785262780174240392459655281818923587141575257578070256972376289456725386364296769438397478404805391957740281036774479398010569008806437852413425782625955350979561873023243909596702091513206043162682075308459722544776756294558019956877566472125488873949021312631177561045929184815055444336352858671003257052620136714717783969845706572528764330381361831325091092300826816335483640163585163027669201387941992731147652168408808480305820526676943678570445780213003059759377704429088333499535693719899181469375885010591788156207306438908963689334334497500434864067022231539382310027416627845540402577842173146623409908907472127662413590372316653558074503997010076303056523793539289621738986187452333536086480021088672278324438336535594019771939218504659647912888251317320834701906677845997854273844509544698541510682604973842128209224439578407882681336054997350798610736381188888047496559700666022016301748065506753408334070702471778974435266711758723782802012176986963965923734012798162511550639704944252217996447072381868098017340890317795780039459419275562113120981574302414040519278470566481213984290493105319420151126825409849434418818975735631803855079947411028061669520876815035633920306577658357935551866654195267624108418508548355567634794424504186429125663766675921218055325966591470086730506919018463526572391389797344359957490363469019409891758741416654729483351731933275750400653581244368416228100064800408348721848994594800432641765249943219554675173974764001414802846600716812075713376120502832426608953077666016423963245202586127373361452301238633623398270768355012341069781908096118850044510643660825578296460410219896565531258504555975776477416917822627429379210287918917227262811183964656029681112061360704988745176497845193704376037723026839883802073740280167161976792954369589946159095612027834851498805784315836780151242883126296740738096622816457451800752545332960775194030089895999213273189972017189256268300252276918175830974636609796888382095402499322837882003668003313909479633053270259537902180290442749386652651881021855618339001356758905045213341776192182261671441171893589576533454357395818073839897864657592125946270097600954770378103953221784893679637205882604133980199930303387145822705705299271336832833728416973132885180283055988199723543147042433259122220349249608156788080261031599078430788395050804725469918596581379445464262818989841267914747205258813910774249295427265322366660095594923065732754039775990349507778060801695189924047887105066910299091200912070720535975922047769752703738494094546019024420462073930690612815041595567410037622848839776834314040317417034144661799462479637024719948551612062222887227818324985423980328583272949254902809114358208788989472764333384176768989218101397456704461144192124015298321117566383932362688036118770625833560158736918970949634521534391456813177623329074763641594356597109087446077812139841934872832963039322516713365460299863390068839432972227112591003720774980312241239352588793089140632986589325387186935767650109332441962406837635203348533466328227240744611854089257728716543093209521941625992010426362167697169600609469060762551688834437856554177508254173674379933083485267310751912903294893524937864507133959784236945824639004517804059277668949738367744557435327884114715212356583536177257967462464030426622086018647925031486056670165580403799018382447841219822740286827477456271652139939532276762115666967730191973983625981358949280588994935381071401981881501827672294708058586971405433180178770879893702787179098730478332759553304981377540079400855647524376701305758812553384867991328146907120219980316007194865741356880533214233333533395873690788358976465267254230303293416822262999383430828056878747486483562886513276858114568991372091203394874253246517547546241811642594884944331460861269776168892679412179465704475944273115123255659818838867997622649869326302998437908247732007343249133076221256059157171107802054289564344724794944370743591555008541945837238431951975206271390409347690593283827008345625311535068090483889193688809651793997489727701837325450319818814296111374266927376892887480331350170740481572786255423168521572247569995898336218414963879226196885093178575840658241667990193292537913730830018611825034596612263209176931899335450323270467415515148906208881007401634701684818977149793985335576463434156768342991988242834394309368649873630007553900346057047667297332793133038754689708211611375912022998771276910488280536696287447025135186730232574308109174197751972218103811009656515763029472988817982231645506999192262087863018388138184470839377384261823966150870277021678684961486020643623832253261841373075233507789827636404860685601273068169151249261169177243976737241447190434343045054633866210455222708936281311574988049047475806780338828575961125993339925058775931671496354910223679651284314299990129390844588916340375293715426301169058543317874251641565580620242809342550096989258109682049460836508318418150411956926845374254055095504490384820285516515669147574687735137664955571564106448995634583472385292187661623241645620933239930465975114093646580083227995214070897948634610009243358169214859779842842403340041432238865316268941758150737542494019682035310677947854834921376657172620834447107395267963205682099694473138304351131306408657459974989309928463983644060877444322205555577115024960173516650116831705953304727491070159974823471410413191178941194016317506851246973406027440465062169482114797241491209244609427731860134055840961722300497809168436117667544063155419751071765297631180716442069071053590712410639674506454996632199717890468568183839350475125634128349206007511711185825499582703891881357916149566329275684172859931629726218314954996137488468097957635608692995364220467689093112410930867398394896238602163900935275104971739722248770454846058965721913393131893684924291727647281634707705126287591811349641585961854357372554984561419974461422429471959384978404202567831927872774442337098251078269061300115167810399863287944456026220006164068181054664923193495892989119703804186891806548363193737195640121961536791998791755157714929092589481115281950306592241088511696946141925942478446887390046028253884870792945330964218171612865940166007536758486643885676070571803746582235700580168572077703714665897650237619718703020029533874686877484510532647546969075353865304804137727973198732785278917687382254511551296159731292118045820515621348718581071895584470749292465458178057467528355903990304559529606240652401394486020654466626827479298418083164367182383148724567397281114449225382766488710695435706174224547392917300809959261968032102938156209322534562747021899656833618622165486005690953693804551075207133547973989399591223865290590713888491122195635986941976058501547588970466296759131320653232548920939294600487040743490865278598113311261770477624674210566345667809059600890916749382510096050261417787841879490990928057507897136684066662155373495171791416856820668694851045340927855567400555607766172167969985120917364700377509789785743752906966340910161248908267089380832786266508399929926419821086046364093311970814244874821197815080093964095526813566500710992967873442714291798735755875398501136362977776196341595583410566867647755202284675830104611135754457119181205837178049367190620229587849069785745120841532138506256669140738293370813561167888966390231273153946116034457727840690511613479870437823715107596456680181354750966070608087589726984461075318128132167954850842503541491319482220662838081535824198744930388594800813191178127533363100034975940057795208845294879020295260181653336818697894744286350549047505704043361769256539013354056164146736997510375840464542330045523258798000899880331795387381992336064771821431545180070741845569882139348555179646190050986007739458677786103089756833754335717403970252076185138033528624247120911402073779684637053544379167320902306195222915570269798141737092090280176877443187055158844482791587006231017564806811363074505985389394334933845095512706174653398406819029120396857864686122483900799792717104777656779023584223221598078317844202786925130451201861262123916963588757932957528653939071123331515379669743641501494624019106540483824417257038470759159607028823782592937476707602759526125929600697190517849966758228697715754227886108469252069337054635281331045521977299601475641413486348118867238591586996035168316217507735088154128553030583675812358856450779915653770133982576346462409709417570110466409177873802686654455643680347993820609822282370228460679578462934766609339961304861266964230396540856310336081354525269314723466272029062156476163892933219447374663143616266854872304232317712114136929969039599274996678394178878682868722628518450223748412439247264268892758039770776887755024205012009135744295219643240454991700925446083895817766985699966660363369731799797138959490944857945279561124956329895997016801336475166527576797674247682484790042588966221364658349239105947984531212034246266997098884377032147765919220052898275554845711151466792559259700508385604972857637905214264651100995515907348152029596451838735440300845014642413550371601629515860142103324917562753980608202985359398282733987562100147564292467845575819432103734483291100014858186715788597918061542560637129599515074232266048690576708120138507995589806192993400658555402288850712860037211666600981346039646768994840270303753080211669742560006391668979292494362917442314168114515596297717472478056518397975749716289395421494689635494847422031791460010500379187867681626978189566349732116240523858082832892950665467324240319848878265177739925976225606871402181642272894506208654878245793461172306507918829313829921530991154295722667481974754328162203797556158255548452179795952608311590438846902752767462075092877846819240501327059492458723252732280098949587300168156254973972494701244974343168544034228843337183711611174863861664206502718237732518269651909153158283642667160740509280710868628412602227806902574012687493785337654094461988998497855673549770849355759204527330412709316023177811586853273149990963509404720016928693223403563426573231820473450420677211345857804127884060038311507097420423390405715940532839558388705200231074212107394971993620904342076921385068968732705338054397177306878479313913476371473155221240213830367022723023928541772604102354327047908493897464985420424724916655065809761387464134719161851558645610696414771492450544061826452746498704828745580577777048921657148490419636258304946429218172590934718455689469912535888878702555486456523223209152365944235606849923131346577091877332225226835681521427665862976068915228210082667793232711254244115071282425423833346530016242737930635976078283071426388974722719939447452407602360566064696333477840464367128807033254781340807543198428893512235822500136614001270188142108836457079845725406836519856142196313807852467186132082682039759413644412467363639188547871981552239103787592773314399600885352530774696753403850866845052718678114108740576458221464933509156327471071276692150886966418638598646972185077664480640200569605850803130766076902982224487599117718008392168367454062963062208252630633827295393125524844678106160816923099653715534342731876138589300810634629195881956111490510962640930354907251779940187794728531749376048253860932937669386857130983143866348413225368354467250439574466126212758905122214812685343852308464465609964878974669963417757044214166480388561401818089073125183539779596993492962117814856379584983431489914114029905347186825812210990198305907048523608356425078586167695740038305084785880466357774951812390550720716129660185254302984136150155445258887121691926553859897249662878420281565609710961071035843465392157363071947575690553000315624151312351362108493783198981173634291070720212983697472579383510913807922045322403554502775603832960129592519969154889124347404124533438960781583833082986378799712463199956240599093576046332720333275192613221542163249943870032636778324772049191698254631289078062700277740720739575117514159910036444371697562538293926774144690237810770000038142620069465506081916551176274480686611890237926741005912139584728828942850846357317871449099611011313639649369572112741358669230361002252555812578699137294299551672763964486536498604194683679552434150955119688135051937296977380642284507057723322842869722033541546178885566195483724003611912997063332699541865263287096221754817571649888710198147484866799457963777888172630056878633446035625866830479902098109320684833481454473614393525174043888916840514548404984133116000567003281939056012392639747701453664798815848296516339655470709024761619602410885488024201015578134662631977578606824909473346001512309384088747038894947273465100463250637948971976955443700796886745641770275271666222650301800358731532773215812943528248876737021855301057235003815979747036987471426629890076324057774621704690290511794478262960565708677405665358950096189410854693711587067053086674949400763893051341337677896546570766295516869182908790082910940480029534786111111042368084167638727785740274128908590231942275387845802952088711178749800101581498955999774266830798087416143811528862704362095925328847725055969061998572159959622448437437368787731187357454752701686400483723334881578451280246107818640788418193643961315257716299699788246823558626431523685421492637237343334677329763136341598169230196042160673495206620395899980431831346790410982163952748967212948320874794434883524324521729665794444791080894825813509843125688214231362967760767997233401850079583056699730736148806410245117947904435295414170259333339725216476125750212225091597166588850980806538481355080175164672041040778232905891760434805272605746195255578623283085266008518922772555246635695554205768891564572243861108379170627831432829413593641265891983475678032663742205572930989571955521905075533351047119265784997007656284104466952182623406328847787708744010335950179359090568074453669551708543180002693189164368157468194848749744144803307470936716060514390140482446378990527316060838121980516851461869331581755069930300015020785929996543081117828945094714018723029639425011861894085033982570154796914955579894322937230487624524704828569063644634007578530850346941075855853033881531069780538461158951628319664487384951249071301481035228611010891135832881660964498018008191193580059493642467483643229032470102232167293813222070613687021327919574490110303904101747120520414291710685830448723141617424484340804118649602606109356415552508814588754412483302250053374255626865285837568674320857122825597849620843031054499790160408257374586092966154622736855024966754784197526297719999694153179193675675902931902886886553002494173752958526155182018323598964898069038205117398964469631426651803375261427171024405917768019585431065490639499911005906676506686622929632967554847453902817229286787046167678917464302088090396689493979161563539989445024257097186496895080164973029433365751261760898195357502814854648706215277772810227996915074228507101686923133136475190382597930437075064722008450392972602444594641763592032024210513076322161820663754542634466171897398918708417536785945681119948382412123170414131962847878852629386317019289370828107179410411666643244478423833358403237135783330067814779921941190273534371044048518143588197992487540605467983063819490517496498510963669182059871295271696133029373205442553300516796222866223327596564172281466559166880682843607744492537298123255167431217330836439250336647679701187685450813719859079477063433724672445458738413432344433423573735749325054066270553879888489399883779048018532726428430737377195653173491403495186075572328615584887515074190549169234796658680351359468510461261492631348475126529440731916679745841774168470017214612341558591002592388119165609294652738941646408367119933438782013786342932761689295625711382856775415387535048603004708727225595103202185876533860736834597246150388367284919459653948804446875178992384467807394172737827752339159349436418823826388574065996504764825403788384776578892944258837209171167149644961442275616543389437746819415568630466228984654888204502515882516222008776658313419712937900260560379795557895166340848004993521586536830343655294574370790485803065962171725137258569025841360945488811562919088163727960644192261707444341859914696735951400013955079223689082449200851545441407073339566511651063062644473711283885332808683722956482670175327797298039470253197618685271363952418181929573471052400956026935079171033550303707955914357237248243012527532866388822703635774743332478811098890270991253291078005567630555858662542866215928960363603546022265477004616718990996051693628975929748884166598794835180743495424277808277712532278606650031195282536506033918792403030864720581786424360406479770974389993323966088350170732139703457437447794965576720219349528731238545370344241690696553116772656106220604908754988356773736848758834407562160387524360475018478501899345353400729296026150825592292940018842859649206202099915496223146318857608135694003042745515246567767746112684542625784504205621876487013660060052001071271306311804803541163078144403935033200176086294722266154126446684063877648970604157495611172653704036612715450212804509737438827508990383481465880015678392038814580813982671290560171732480834987204215608500600201122839372455115551549840866943799134460402907624007083803956456845688340747766370354823627643418953695574254959650596488446900614984819232180320981749020898983102006305647899329562629920537571731990702323492083412632991993807194130597103984845241988762503445324395753668391704809277647082362930886289524475676201593425467692266850239222734372378098473073888036622145276739012925214904419253042511459375787325613161719323878804242359263953963278086904922809519387007873618105357037808856225675390750137873942794782212649603420000240960539926440650069139727043494496704694982678771717432510846909053817925172610838871212967278569477624048411258904978284808942574756255604286809709669337990129884389556181082229267255745943797423839896367890964601842358850519152469389455067336056307820490916208945668809189476644308031573681729685310214180849609149614103636571379634554050503558681221183955371750775818885627717923308731483668180657267785004672677473204608514050912918839026913832679078698439671610994129726770429529569965158997503193517450706042498571032885081806716120013711797315805526070951119127911637417885366128195001861934494077725517199934635512724890137401193921068124567717596864089205340323275552066344528991476405319992611907536900187222981471625663712840700580239610809811925109366972950315067279815702957657937303166730586899816736670553143252564835884401209726169585355656474551756645548285191944407581423303252765966485344312529650010616602634521664466362693607878194203760881768592728311379174994177310796579920300748885017843454652978139061667282456055212729876219140116329361244507632191042668275207977905201183041765718828521925290132402371083172214301988559425934647880092212634593767033399750174316159911340403181203621007643769146678090094168595620265875751637711267204590941939170411208561495273873146600260826438544825876570148747682057562592236763305430619089533348562320249748255218599409354697540021555857074824939855764293874995127345404492364116872266225432072526056323376457202004350305457082522228272921915258272203805820159993216652369398284420794310708513525334198263174795783494519191439109271146746936345432590125946395988683958626126282944628011165423115869839195433672365374211546663945179297385297723656382856685777006676194307182595267644123921418830959967480294571615522621616172116177851284091785356676003097575456917293742259971096587628089047973306351492694948225153163791609123082908743036210315955081912173301125829567558196025022033031005075988019011046974231153315051426850056201553529549258214703420051018201244028578974264114679097794626456804927421502557993313479221261158361748082204257042002067783616336656663548117737269871031202956541546644250363069520627514543915100131161566421142154100963747405199384501255077652570557128569335687442747017037990797946309950774214065635504278012961213156506345560443137224122657613695635199141010733504843930156415296427553947178684292458731345503474141764134506613459870369007339266559495173462543222319586077446734489988985516359384465567957962102069432160913399289317630648692804792616410802054047833674356885316076402915881950641434078436171408328068644640699010540444094681990870157743924845775215820398278890114959650988369948539431795003618989270778590047541934634677320241877020951016003788770439930205355206893110900301550815715298143958003160187914640676348545989715863299411867454220613561890926601980832411469975951691407348035532506574366791163706973565784279992052916911125096720443770631951555923692670735542016789584048288060883388962892008650447409620710748387651011170493755563270164429637213978353764613474278675058674942977677791667614162369212444542298403394931882222429769899358617967063389279444234320874744125746642777296824863065578673544790350195928843556532706160218758585982263530304314110040784845785484391352158705452864333633151477991875277069726479564998050323163909853601832373494273732712372363248104935378948512663046995311716548403787172766290037074370520752060235264596935866311698205815908499140349808615010765326761518304959032590326102326193579088957583010493114837713101118495864554244986521201923550881826527778277153348448840124952034836144450594149088141826546063992229543779137554696786413195230957366639744546043767828166922399782495576260407937422871437892893872086517976557662446809685716994776932428186295922584924501101773826490148140686588775264191299902593294266496540339868012631319515565665659609122209093026417338293893525435406678236700491688192870242629046991457141219901063774102409881679117840707946736816648755052848286248151412251662356850900270883161327218051533102099125264527395870637734033054107764420881107890504843800348474816660557621767306989471763068108812755621420777201452514443977359463186744490906600609937896471608656620460961245337901382724821588297845995242309626029407001931570996652069970154782788938044820897334962266328983561453432793347870114608484101359022618248875484490277311087181986024454983574674202388867793141941001147805675360839438769442548639677692774400497282254293067135273222828946718780789647519404804417481540223605004766959296256620958270384676889164627796264212379977263242571104476218626255469514234088836423983035627774346895881824376434141099323583189059952807489049618772229488973864943710020451226961381019946038843010123367548102318054695354320010291053146381178767803651076964059622348440794156168891059102119052990303529960606568734194939746255040260100486779105951615714253349460992400048477518203687891563265115351487117094583736440262953081917884392251195113153052771795834316379588418921051111153219063819895161258311718202293665478884425166566820382777179880624987418570982145468897265816492025989079316703534099052640065189606074844774195020035669845958633748584378331983977121660790655339958699087915150328131061150291024024005341443401295487142581287042664811203986931763635118991861815149507187583693244249546278601107285138161720323086177317835750093908266991351955220357343252711053402558257281467745170638903939282010477504345522821507499950829306529569412884569808528002494650718816798928729367839069061109671592898486433821864156919588070686840070738733370560810657615497996505085357830082638552367745809132058946845707141601448642902230788543967158277617874011219450629013939292408041703406754021104820889515220963799366403183046483194142492334196806328483082909890272178064928930214083034488169098281798510555895811037140183745932165071764741710819396801956895239924181539330270601292394121919570338497862894623017398393181892234610842689892387715669040623978638288107432078444951882633517801386008482828379742808630079312551201195575453628055883680077315728779442455718549955483452882100629919120433450509972244977696702891737557957516887243640943159461818302646286188733693512650282884514160703789445239685298975355861893105153717606257719050115494712528987077755631957631298429871232133040957697089161709057049010310954452433773176812556929704306805875063037534866900098984101104792857344290686061533972570874053048998183872336652286422988609807838077045869276670012102175148037694927157737222286069626422614075572174647008267212486022419193413193263995963843455930610875080944394392433170457670737536373695420790278754083306952778374443924960537773332122296054311193417663089710742159137530648135251021386952493610400653563217391238522665758406692190599632940876919464379410944530079983757828287783427212223151996317356132117032868402422278427777056145226881837485925929159947291745898119089534550476254341334438095157025632769869671586259259880540778299141411530340594608171305110550898796772377467114271300459115442672852281704160923357988691478630582936848520620543732366166720523436317696094112432460118041198079571316330853155008692126400155786575987690934881384530187622579718207094576875723289864658463790850842621621239446736253836813090119883922242197515589416656461549586965251177316309555838326058947224235052972449511534840870148741203517319299724778836379278328510936788514401365641788916721848272838631094134976013482150100777406046931478502930107471503607302840097384331019213604587839352999804916681869559751224364382614816178602027986701322281981852194377620560555419584206832881171791413238642491471114449936230561743274297799632853190580638094562219134291475835717880656096203297376497070053967556408550702150921033724560236847951671259916592513395005514879000605178735104912959345910933117116157668662811335097934063390368656378202057237024077106592447612726920180093760862035053859142026108870521624657967069513255305356176404054925815279358308602736094855198313919370860486636294045701838903287968561872462677918372335157868795121428289875109204522902690982003841482428557016209447242382163837845789058805963002469543602906412909830429452870968117410623483527116099788434129521552571623535844059210698988473890616170665704104946166663403091277950130725935897086425682023089874990554578845679701931026781664112032570083409342655277275078468755842633403861606851048725309634885697419251128629178050805316831148391410065652109462630512419712638405615604688683022260489537671728540934362701023862673574593914207707990448991490519473659935222693950943615622241831994453297251330255795185564914720256327344672979573422407235922101026441694791062574041341589474952651886022095879849132365410018793788897840848054605898405835192258560685656975434571110561518767829522748832845698647812480277030738765392822012448112236812757095878993146392598362376976954702948556146987724531689958459792607470292819605698203367029486191953890272973677189591912293541615745187370522955901209250843434266891182686031588190489179596464877995299943799304384247069801427573278042359830658670206425007533655162982751076183369710288495154271424081549165612346485744510562627797463484916468093907002633059711771460742246784545035812848798288977542466530075593244770002721415538718284425964922910559034845220827868789448278306782128174738730441917538315882520543540606215094606216056456856558097386130759833660704748302495263018392982444982869029189322930300458091648156930028653142761901885028133988944096876848421417699025970525561522469087715530538564013861215624926924069014127329864286485863504886457963196529527743023359645631309211345187810369995994863224818319642954935831525407795684841536195102785378938455377266780338904563497283664070266933071038214945762312696461746722187998666288279305735356061304514226988669877313271555081009677669598757890063906848490152104311628007596984545107100575853021290515514738444941930922884950577447945544131639541742474520525767084288874794797956337490265107377141522408828523370206665743448402437228749105131343945715714466272518774812015181606838837255678717484868662051720011527484299223812311445590363502308646589348585449322615414158655472273794562494340056083891814634415215850281974357773539207090367646954438272526123381354558126420227635510817410267430698671497515924361016744762065954228240575622864935115645935291817403671741601942470562475835798627387102809373818990126021027947953923401902358860264208277891734341899743407629565672370554931694688856569548409439955532354960334485282899007633245885331294618559348404118489150513097966031978471759033414784181898439242352256399412368841225642016123903612133451688039344199637503114728722153964363073238574156803072316038302342784111296933252334687320161613567280652125589473936584990160600390561238826170433579555232213962094245864854606278363778921435749830121668396327762448712856095167347468360270798275037602409884658604651393394034611709951587364061900603213112881358874931666679236213228582747885308012502008595909096983928520914693121182359592177197499979132156868630888606946252049628633554363282055913644616837937835508840809789564773185804201274116190099681720502921465997910299055958517232555944424464698715257448570760202835524428120239735980243871790014529670023161687844231453259030192405104356404490192300445423316036584906897708175447038542292425218623705917548157962316840061320559108884137424582261442040898872992455164828241700758201499768856864496656905653117314318909425472644456908251280892639862957371836903282674981289082705823518194985327558717472531681356067393266641715033244395260967963151411136644651638879588724687586391092281574508023192944256431020746740579738702605540039040161474526158356236102849358545125175171980236295136532847913215994935741797462392301755827590520859154023809658269750577915821575202368815929469038308926896090343801959353967291658736697434708390643676445978370371489711654442556331501724243695984996425210580162582306646651885066786140351505230931355840203827182247074617672699521504095202036836997865759781152764464038835578015274987642566420242788349888303967919514307143088124694523769778782238642523380938715278044925548466059715777427423009368443707055689686624060646280551390843686932616993737354194206522948385970997987069507550937261053494619589985533357742094146667175065695261209769852828382282165013117395524895651832986167866899835791226449820288664234234223839262548701642938504639751299918145987689729324012472262893105477145168523385926841387266299997183994921826369362319859690888320705450598680025960325482048820776273335924674895353621395032931374878580434000192146571243004384096111972019399350160231849224878723352193618712837656686534816651164414207612846302195387075989007030703636892603137486161960674484506279203759057835343840514809081810302437118495246526757216302000041042461049993401001210962990981003269404897498927655520013769694555267368253468125584917133461616694944143071793374329552672533422278435996295106811015233992785725353502426556840830849574142508917881973235988868154694217039768329475705630850434435748847046833649518739962424137070772238316691264585565658272862582033219265756358856022700509546311019815393355273131228688849832248622611869104634610288788880087525920519734890142331894284633889810211927867641860988218197336316981888338639178717748559908215019269123045338851109532525350690924669602337103481151949502467617306394991042795832102609177604170923654420790102930984044258528345422993811361249957666046918175609709832229423861093536174834790249800409000268020666376166866810460725823131574097799703797539232127882122608731102571153129063451333608478075694540302008651200340377697647254005689412192191201042523475537077759677727343260176576907888318585080809435240797069705556784826981814513732619985361850224109146609905713764117831707571688658408003113698128662215623442506926968258794517966218674184812215733382925212421967370319054350737484396343599205667816001990069085903549573790391606701994753373627948659971340366946868021844076828611592968590404779938799263674653772049202526414037897417591404533344466511423500092144637584748357904933479616224725035720431343174039902445852398717671027624942354450272364937393473090909803220864828418764376558131414277446583540352748012425744512000651168802245788107076346429156810029048698123846614435257230151601429809468278986567309804159487398348893218538104426511465411567530534876462706802336140126155134247429729859140765092474268498863710363034099052070179514733925049916617557985290460819439671277494500082212762744673322026505440761764561974871236001822436184820169056427566410598387674867116609130433178032720531740695692093632524220927441992701946265443735863807042187110439955663336881647105350222134507591212133033360056758913853259120692915177760025873665881095589812917975434464699634294306370582444137716111543026115017046721459042867487168369583804303359100983632269628003802189410516020859356163246861491830676307366640470120886394253434388334310243043872240795556525295529578723694796119424893361845008584059671862071076215340090729545547840488557599062448641495364174206170456371850975304206933065776242750302250477054814091283611037776326083612131466626359654565845950876322067453831907004230935857008883034486323765669608837731642719636327944881039240936250544494884920726938332883913747873511008327242077813279600491476824443902919396883867494042966937275401383785233080697341662028899926879146314320420152959258386265424563684010256081920294342773798629023036205532977536008346943418501172430048707523017377940621436557451301052338734843470535117507363697672871823887578968843872102186524581973731207408188477837063501685415599515846938619691642058088520723761611932289935030723992406707638717107078713623235791850879395625440081938829516744907016795290227638287826821969357904316612289659177307452050196796376558379740402216189578416552699475958531185314913527060195975865739695829130556047650648560608293332286850247598899334173836015542942347734219688442684754905359449972158940586890027474116017194184259830661481469939132462045815215708978561595026198869965561229360506672200567293915981856819501363975123489098927292454477060914750717911742288097356988593623243271068736184040008878954717642932443835561242761155374738609298383103453931185762853037979800513659102056608726964571479782490210388965375563903757541560789521038291356615143243184288017414027739430761920763435787522406997999912190482819112885371839437374620629964314070920809553494824279240672791097703067205470176609429487731208122182494903724396285397556635682144687326341682934018186606285065375506042578908418442775659823918060769283244901400663327639534183431313690565878706234874588200863065414381902492489086339894061496874578814284487667282126569845152540657542610027351268366649867986201459468335762885948384713372661722211428240416004034030154907314901879879329502216990494513485846383328579010685189915926936640417810436564041841298327431315149300325387466718344517615497812156096669778526374931355055823540775119055602060584821559901133097714915060839479390670363348208394488718578102608051030993137016229304946754754002082560531466922520401633377443362240861821437204147094939871169036892858414423931077558758128619511883265266918344488235944647244865002319985949258572798092201635785284246156672823572780387225372085082286646954807315742622632872798828934017509226115599609634435885713258678611237908167914807266236300757734354325735511581441147655407445246172296699380229727719063708918047415687178784451033125621379148099565222063314796458402580966801573692882563457347364730822288556045405589376987430714060855042342407736501297287281584437734813590671807273902393415038724180108399888348611580414889266054059204649271400634847675222321162808864147015047278096851251766305913032000793466590594828253790964130116955747669614199410835433473340844909372686728694761479656331075457358182385481010502764983511653329457943193745911083926792680445604581818689448951431265390633208726360247151136316492185150267761386370106057615867815656664595903295966704016614007261518534325063176466795824625253421426044540641618005920156944035334885272249981213201491369881011839907609284260030441501321166930091464631621852062191319032684598541264878506755766408911095243605132765445333453697660910472695889758090304902183341083888113474557984678388226026055275399530670051475036161240599477855987008867743393298329132872123660479355732490239628132443214027858719066109430185847289795361458393673385592641903588048336179243626045808304575066585859802811174035138039946593286587111378203442422131213765755317758990994988530740409847873166040878428357700014469146079394477070615337273588536055012459263250859082008761422087426866977467435512529677699848494675918675183011024662799064025295883261198747373154487964613727790135185379361007186628813731965484075353128753269192495701998896314739521437807320254721571546154949782680014310765435196504079579847650333834834563260798131527386741631275605662966208790786453739213834433255854357235702023502783690951837663217254942615307924403618470004430526028364518432610312407419514524506786157289436698428366995291434348293923044905210751401403562737389148197407971152192135024001089346350180704241181168388192283850390435199908585711735581436275562887834310267228369849518838418750994632718751789567567475901030312730488107772589861659128398750644487365437335264120748739103128983300866285553411285439994894333579575883227452269954740543956092388772653525672012288352329837199274654652316430009731333043001025628094943597245853549194228699256263943008120071995824013754420487637573156054361419980695226186836789609411517258437401611835540431988871587318715122281198435091643570854629387221629544999008263931071093601103408204623642717166246375141494658428922335361144644610723426692638755553244981352419224879859635457614060486457014823677573887994663285099847979310366327769483245129436585199870809297759183336246674207864146262008231632192443060396084242768531546805967706314993127102230751911586853413038263291090843498190327006881835524384414313688121605649924504352810444602888803598573062202522820787829312095393014863993688414961419860350832748008969144217873360077128183170089595889059106352894781652087143616240008062770513387457818711216413081283574197495109834228137631278559831446641105365475136183370916095246068041335903712904750583291257881497069631977776853965286333965548523836962314495410915938617172584705334331578074848989256083671496781732493087203946318174212871008377454918471559037629092010152818505304230573327528664474749739632146689084785256170837055651473469294646326984846473086670559904671938294923242752569466156496933140981080506144390820354610094884704438783961303407052325969047183709535261087467108343854258459071940799755808709815005525899159446117922183142884614914821697621966690247978423697289381136829176237029633608335808445723912686806086259902925408497315725499721205638945119637362344379774726901197571506683140751255485322069108860614717797100220416494651902717208116716298499666247724483139092745045596928011317607299661361620661555775102667291117742815239231702834558066523922533978485509959626357495407032720444296165815110392776461811707546694143024969144556784985737106245884820770465866282617708301458580171165379439201305654226174051217223669692070799899250694936493376449080093231822026563972309841990887223730790926471554588177390347841471264765063842402659060953588026288055243004713536780819614304382016193053345657125304985840152470117307057885632443890087355740153236137265505474033621365622139091695054852796372560471131001219547108848123236260476056991983179523739969263509066371184698224619530945976013709439942820570992925654139801004564397168488920558418087569478563064883767412451827919461048327469428524440332225714483154105770466548877745285426737534644804045142380583502495857129675657229666826052343457865330417589649143153423381543987212386946842480034687750336651694961883920668682110461142057097983865737284883915160586940843985848481191713585742444020632521234342697966385549217335851583606986942764467215919981456334979282220944261998180568756377384941434961294424257433335790926057294296259041590275951416933039701231731792993568114635526436996993076148306632188767900166166794809564888398734444706490430194056909493501357431975748321031838931932728509608491028677288558254173364528172600769552798713109707961720538607964687389489261716728977220832633448147109399205563914646795354686806638665634549888181072159177747191103476203939070906737604911520086219864484903792211065749424809334721596445329234681253087928727260337601143226837540823795205269129426401081152944319040687109549270432385753172438341954858308355151764016381838784830480545625038395041130205360216735399964561863138266570359737443315910572329596531673222859176835052429043578311616615544952216465730010993982577725908729522563235493291450413591222712834711567276736750532179021669366484827563103358746133728733088386898074945362022943600339669364811256300858816854395192119173464877815163497893538990443154026720970647222984303683062934883872015598294674166284163042862943080047520408736710619724855561850350564063743576617327809381544771968767478541702846540194864459231497702566498535990826566005204289401581573528556684765753436631019688235916191177807976352529823591469002060675444598911615383473617352265097605839583836647109195702356619887563939467356309313331596924988902294697870953714515844601292035655894169929705930905314008878835579259798214069665966837292849701044784580090730512314238059328372196115270744165996926783368894374050970501718358022059647406865687245975219420008260468449319914569469861948286337224889999065526225457740197946595938076850019799888719228022589251956464802700408857361329583626419799076563088677525436862321258785873042267128659524177534233083992084972289384365932738955604503578918885668654888271263403395755030188056344597263417987752318620920721643626982420611882730003426824003691508258251369263514243166647331737588514928631852425512342999202912076933068878915315203509907764276952458421192216892141761208624280356074733723910011054457875623286142742559108009396443368958670336453054584480904177882237691574851165211605950678392088824695625116834574427812230730282958268538754850135599554408785548753917465922534848646755962724884154642017940120558973549565919590010877996701943256904386514837829843984822956152316882861641145819983636360411138670176970487647585082931622697811426933954846574752099628604255360047684006469158700879441265853544838372772507172560844350201983129070442019159480732094662509109788217293939942127687682376682461591163889557354951648971908346994121211674810938676437931090704004017588174386279610949341217564856587838803870600966310572504600679541332874865320474467056966063238366811761144368535585328866401576561368033827598449827349255645724836426602421092115737853644631353746321772039615145939741673971049915304495982577828532155411014681216117094234757973387403173767336353828668581969711895595321749975563512988377622936996829410568519968142230727724367095865719665653185696943441188576019774134303352679098057256410286968554569679750358065110602780299110830717091742846029787403993954685233312782178872306861708182389029162555699620918956287074117057009917606276751144365003225111068728904643477739671907760757388627171700269422025074214973655805750733558957534218763177305457322501657819663466080745069363115192577457751268515469173555853793464781573434778381006508681271563379293900904920661565653944011445157324738847205610467222910557809487173255024112187385958180063152555520564217220964504210051952276837119273419580152858378041047997184028332096709464817715367962404700724049773713798991815169100928847319251889322342582451013902706037993739407537131113912320927835078470916959225490478844889821434656654833180812542698554463298816696721347020182901883791628063717231844745771910521571850344010487555820382265753708945773445053004502824464014181066859946267997272221681495952323787519529630955045688595655022572783854119874927983578546999435604481828259767529926205609229697558806531579306366139611862371217743431293507742956148186165127880192035326137343257729871480131480599314828968123016582871164271804141804148656069398636495764163383873428218414916835594058514835253790645061440909642069781586176389763054682555687026445282869514581641103039627893394861122515784291330775934801844836791496660137601249484947220634871312422485173824539369180768211524935006827636640335557537608923637316588010652698069531849110024002009095077338827580261252119754164567501319764064494881392517165085382998321863698797456586812578022699346886513999962669289328555510304209447717530471998824661217350563532505435689904865674590895403831949489269797021596380434921747140997858024093157588657690319453793618550373513984757105458587292777897169667244204090213377613738615331752941791048729615337093205811468425495924934938258977722113318647516713313045294885944657891061535683170168548578760198375784775533070510444809476668996881055097259942287467137784036870904575129522044436830289406655939477890098892266682753526852147323779261581248893800632994889117544782169010894898027825758544980150084778914336984985409852482182119037498204130129701447714965712945552634354477030721385327867025144574839878949957242280849065393569802165101138245406859081361507640661117880574695834614644669796101903842935307946911285490321213475140630011210805527249995728748252439609651222029643134283247732137362880845685095516325826375439015896690708751871631710635962192131430273125340986572421874245143798388176324858728710377322686241103199655213638380647718714152869839395056975817914624651857087089322313874737486418202233711742207003099723722066217914364124804679070390209271612801992821977422802320444390955293855990583036057665720445568698417204219252617481812742562129766523172706445619636795515767263143282798877635522032360024494566459778871322930946349768352506627738040876763833981881637311862211924612965004890394211315816625503733654710072531085619497769579137462217326543037461617199716221379608702021337740456499888540424742408482279795887287163158084201841542637527848103178742903099313246789069497101333403895590982220602604551865760204622241176795015191820506352281409402798021853947356480834354389263275918478594782943890031600352645614427283303134295667480642747792193768902823281831625982807589155090450556898325655735223912630741648933310152903717839271738333147626305968183726082496218103552005605386206338503072960763638165543614478334045212248711104870605191972949290064039620621488067266579621494743563689781602510192153275430438382589729295968347295656868868284520910112294718004547532596931794598253460468543808988178737407797029666711945092523435470776103471407101466079954730226496210428388551854991755682444561335199856804715684649333015445091864505790631994199052721757690801567129551335410134937985923540751731056453537179346317344204145732588403444869192017851745100907885837684436667591503514520532896421136160825535950054435796853021943470334406998297369508371992311134664331236118091250673327008124812679853278335924653709473520334570385609320085154410791658658055727288136774245292327341377786317074656787708670738499196039387689656131910741802900461479562852518758180325484485582998130730334384092589406627195216794727687909176688506943125165046671831872241081691849574083178800727410120607786805331151206049227806416821624270249117376509796354705482304348009321228119581923203547346374722199933544327155356914740782164221086388730124944693222944813460672645017013349736679919271871964895309092746810478611184747857836905898831789022110271679023295659849790376070689715427237064151686392987122228703909731183393074292419251204579375497858642356429117787002265297906794816998731227413128710134225998442237873045182543502563757050855357856272495739685591871564446188116158916079803405086019244528637785409997523197427924128132410791876173104798049084282220671093546645900125934357702694887614192385247110031122793626490464317498582847057366302716603661443986151568763040358107506675649946740710059925669285149664132346985497595109164587633114528027502131398915350712312868842552645660958716079359898605164121681639758338312907281829682319928788575997568268797161605648695384811942703750832559763632964480916545204061864964399974558331581419120608983821800862621152499207662396578451875392231280069089020124854148959949642715831705441962994981817996250801492799489403035187008033898698425382827290855672563412387385413159090304099864351637273718116414514333747006606772476602157625487076388503274928147368175334468175079128396320502364458176863253078001846660131876025643250906978222433191430689874187673237694138663801014055779461756411388243316002088493485234524413413098924465620887631305480855490233589035055860087477021634639776047117847134827930262747136753725833826228598965119872527130910486126793430232231247969440564501391299490270602612338077278676129033834630960827105782415183348112878665603763281122052113768893689125113117212860377002741748695688755384842831638073196966263054831276140276606251339212486748624285225632229913385251524922816211139274628383857626773629014515570016826284688886934729994151297858056868877339258745960591982664845342789555807593807902582566689270957708441418382432545062869990455802139704419749337350687800957006270217219694181017583034006618301047030548790061776303885339464418641253506100134423138113326836712497281970043456275032266389427276192558797008717726075039098251960147166737137504519661165145178712158489798231910415730774999245962338021206574413325357302573676617778765608919029801616108859882610796348301813755420543507926878262553068236504980181735074796821750519583636884679294151799961174760573177510813662635650767046009632413566257991249752749278000446520048275698913459653338119494820067676890914346316571973682411875113185476329028020842542954438813127275340279263862121308635109297137910088995001428178446874071854863832820000366282232593383918564578742825923313619011841946481748354769571877680556362026718857515458196295388596091368144137412581346691994908420005838192367076150235533571674026712622580901683310132657151313358104573148606127523065825671473844978900573748317281405498749846131357487704453227920710423751974816135322759654117339399979873432342626878031130163973524628685079394119892322793418741770938319777515823222725742937852418402591227606449946101461981021188115370419944906924858307829662697091039460484192872472004298078768109274522740693530329707276060832640692515421773125536451189597343365858927371645510628800062854550663914041988574421059016917429855099701763830207246709723313595500394672121291989735763418985079927306327914699637156585126989595008571413253910583662465728001599992817194583950502858823472358533162518361662435479131874795390905792855819380072556917875812878657536841345460731199109191173348556203359954178506138052613554029020367794163620343090110998340423214690500691915039720347910795149845187701921471192780368987512832423471022661800034332306158473452184391757393225466434682896443593502618087044384979121610363810395672414706160746624055028445747653501035181436589095042934443800126181993616040448585409958838915132756500037187901246937732071792252984070414739873091956873409292376972939286630332815082037745251323722792192770426437410004377626710646236695974231570356307723264642740681174248636496977340985078935009776946432624530415242894720773007605140229097408703449851166012483750949399754209675568000314559847959641238663394322844498194976343744010585516930270577197886705055234507896415954492281966747892538191168577951211844101188727170657605137081080232322358749058275842631682668636320526827489393358521235728685629277582749255427633993758194170804855285051652302727982239886237550207823291994994466521853810165999652713401324939642416312677868217775582987294529360240480115434965905589488678346174764189058115486614845409063922808916891408794643994665614663717417097050790234612428037449504184629124998328438200367523435827989178209438521376336529596763698857089552513221290078449070026013467831797029190170188811701614103187772243085382529046297154632800055042410194137352687913053321147679591911576625481640747475367052949607692484314070557247961706668968349261335531895668313806202674391793530402372587158067498797746038407207713989258232184453697122231248093256444761216143350653303353732718928138810359645896429916143627222088718156364085317362135620124995122998157940541167537916078301808787431228944441343179692474223423433673081639987732105348672800255606269128163022968184280282975798825528805384785152110427485445251404591699282807674534693577573735633679671043287417377830135330297992170707872497559815659719314567896236135799390760327733205902767922052183740775915244616350592488166083255072961623827879626067387902968180108177799512807328754983426862124115464608638620917163157121755438912745308729586047984889777214331579333720741397673377491018573780853335313742258796422065296187815997023470905947574885340744158165756899017536482255435371158467491992249552020329193644435102758871182011753154293860729285008112416836486974187074490277179749401320214853775939163123995272679373005680978698382236285746275235433226607713406814350429413004479774589099431581457269487620944596952583099259863134472103169603615143065898189304618973899729853530761091046873433832526040180247252706994272036092247754575849249736844857904248396320192245883116230846047030545711606006885599117001981309932975095457329255551369035792635291173210567479727057830050064016165551872634727904968427404549630443199777099174987389426036780647578222593944125835796279755071241173033225184453781603383617353147357474077100585649501400119526089810143411249269725739588420465591042605499997607410043468207775585239106111534588577564835691366427410164933286115613680423753228944798072607504350098976640604858790675957618668907889472721587301669471247671077228374868092648610929892848097994444214808537798164632335854969702832728840820642962880946095464672486468196505346825783040230565825296466591651663832467370127056656141551229752242289240349217768369740878755737487074414178563828783579152730942286276094085622126578085087209988227694864761346225382632180623891649368186568528648730427993487098683713705138917362963236523972542990120995809473298142263421410439556587514615037645529505926297183844980921992897097873215791638152763920578060287549445652397019159602451719093782262942670202090518711274578040722099089773759003803466777519714492698539116536088518744017525121718992324205194130554081589700819595777523973674190239668014187637520420599224012068718175815456651524743227271091796209476832133265952547641614292475755472543820192577260219958797003660361638658574397786352479093491360310419728494284086861893706974875717221175352863700255827277200639094359422947610890661702641111688714835820709839216219481899015972866524790227008131677075225750992352545345688588749091594024660536941782814305698944318137630357411562337691875491147755882481287287197187127998176368115450772227880144184153694942562020049166645625241684671575493986939953697249556200837677593391016658696024174224720538640167409525929595079041036758387448033631623270948101492815444376635198244442344446944773861189839846808272283682805045543156032619059666849546007313520782472702978647450042939004575136689484606470863046747118802547755761153398631585630862783447581647279688611249836413827076042293717201267663767842593613307863447624240614084556722656677768324735048073483943894401438679595426329458846053899226086418120102662262162609723205161959486777032791747160495629534594714570905511311252619294650730549160163378141868897673642563196874843470729392332908761633774604468662469540335112471866176021693381981598944687742220512587819656248541672958401211790514963691077309444633133439846239590057796435414473793833491110994482372383447095504908889500180027571925508273330546326719190197354600480904283994644609520236932426161213980610086825387727953956223510915773340799769491383273244852396293090195738554889612727797066771701671843176211854123697923651589766337547722578535435169411216479163932174188438857484383840232743740759495328088743728656107378404415238443441758801159513386248932072484514277625119825721858599229158955249226590235818098885203656399626452506864856549719449048794369872860238999938658106430886969411752199770420055197137828878209390565479335311647070144982033827918108131780190777620926724891855120920173525361363120302461480932527126655633910496413981240181166496195708322036322721283015127172139898906794293298335144364857911441449914471388920349047797091528019286551094735835881611401201152166848586672136030008583841327648503255480395802184083944904530319685517712469089915065625551490296245191495711368061731881793477973641398478928170497379188562803981959679801693296742035447326041313713995711253587523677569442568473203342162359335068966966802108700765167181389423737606843753656251189433180182545733098219035939022603235222927749882660573749335804869448616874389856060097990567872986447523809560496108049414898197653234546049293720268275019476521516377014295710126367703669981634546109170169585382596005402152868829169772826118955420942552329829764064926168228361776963360464634036718390252543187746252468250834347472378253968461883548885486155185822494195931120982762802139206561072103742693912307604207734006387462807863144171139136053612341546574112409161415958192598793150274942336758499749224555159855362094629412886296660246901559842407550656494727375207074937763235850339347846179553186944601012136115964480759509049399388928569258775448727663983959393623211103546008441114337433055567948291016245480766787963650585955142818761824244372900960958271970447384517246005143449283901487373860873585587362133230632193546969528039675805988700772521528217376255067754678117177069948335661937587403122815110339830969316451904842062564550641163527033731062481749828641432753581146800548313347538194901913032116292024208195351489098238105664820587230622312610920629351341663526817900749860096856545931606869654130202705407742154390822463393000125765329490242411872802495501903429608098711108673296591718134508651652724397096752307999891536019325149530135550099645315938669897250706348614452058318246767282023923461094178798977905541567232582132222164127616316318726107441847819845524569402736004152390895711243490951444586654145969767444809574785416486245213650852357272892119495575274417887726412241841593608364821751797209110190577648049623042273747248375550742858398036975125474877172270288269358231421220622820270909762929186762362466343879532390852974185292822170864001649927850193090118210487962546537807886559578277294867226357780639700558499050780539221497584682768660580205401596951033637448487136524432889472921856392024965393268630062863910208684485259823240552654825137332929287977977995807596272130568163397228442599529265000265101717845052160529097782165745198500228479935443969739826798986923113569429200052706555354401642456950361198834952268419058893630921582846771391260228252665124915760560524635679440914747336336701212744572258341342846194714700023990705067752456769140598810450733320036593954935992926229985744767002946120291570600993974907339248065845036167392605831628247329594359737765468179502029099443412873525567924580561191781295192561673846246183320739843449426300512504029039302454579402681112749468205530091180587268761894259246858393159188164115338118688129121505811462058501341601846996908486238370629541780551644470203329985677770536087999400383848034001853042146323712295299856792785979344576678266638667269558593235937114299109560049035520378085479785534316835260008631065710648633350462736602611933137413694625251660896961078797103524951420620221260045639513017423108200031492836182237815241909542601168485748718268152995926587877458743907165448430669743335317012972550025391484423779568348058155385620665894786284622488573551432083063125513758386992710288643945191474837292565055506294320866223655456856932314509308454481323614189135060583572370785485190691694154251193770234608160241227783465795007531324620824911977861169069688978699821286130530047352988355030177546792874694729143350531244788225122203627863508446833287002751100897886046648599602278877703376814379798271650451524771921655630981268712214260470551251664188961285824628467737787896777487624518787890175606700207132745333802432493217567262569678494779764437420481377237292374538677434967451762252156533215111457256170239882123509236960611085648238328376442765094467934377977570884432413674855673659047006423744137583109411953614513104200643031700033999831894929305746492510640611028684641279169133057457513673307406747350831555910870784727708479636186466556580442514372775247694040611203879331905180870203555530763902926704832332914438591984639299082802009125788919315412433773705380907624413660128092717208820026681916864686415913683558308630572309705685266649407625803211602665725149956395252460053968295841464036100255926207836211033743249354985374311026105856937549953081497095007044588531399802404769405550866447253133275424782969427154740100339175152959578293511350944083260599964770249748354389817766162512381938427076816680492103182111106770618622440775940507663890502957306185010525651612533215188771793446945101156837969051392722269062177969971010999278571593893448159290292870201928927096813026248306276506161288833414594863244460244440840955999899038319198267535385653337807883460825374758382106349534775257698084583532443896249467065136003839465037000361222795957643324215329382982985052993908596296452799529421593294557084981649564027428411541177987775331691056361904450422229274771471718482784129046433510982681836400269077182686533546024109322473796592882945952455481595141499273083388508498593971582380849611651349061055578438923120841613063569818276158656207820120476622088278730074347895711050627046867509411323026379823849052089674674694907596200978555531772276227399696315737435504685687038713412094968041563689502788253273299907201084358897823584580137521827272034712223962978913973283693641193975419608170159530020341287617658326974588840200597897210697483164315185883698870019874733958746274353061016208113499244167849066757304863746233114695943146631219072840971822331927756489025858661749087100465202259358497891137098082304398544917522202625498066594881626165244453612387346348949988079078353852066839532732739617318508914909266643696589814615589205178502778283271444214518108822741336983082974723964969739183480254641605219126604201217129301944830780288551911140793624338846350443971987445516548781610560961317118040240302342258912405217419452883539359974661016590271559151031419974508332130233267206436700269422732912698172161742185731901140481479173405231843413957300787264198264594839813232890203874851725466927122737439369526507892051389591887274962928575482744670746981443279159805574058866037317080036553784334849655366715730789748702942298650967333598772246238979657219602947037758511665179163849093530807156701083348119863208490747452584977589390308329777632972944913371138014413257614308185523945352699300437958000964885466466202959492817257270426313241377257352560369230001235653974333384076975653729509153723097488536793819610035430254609081246306886320200804031500505865218683024105031427068405060255474790271874487189573375668568754813623348558459876589585037752586728653830983472483456173090541263950175361460169590487669739217555018612330887476235933142383616073181148297329187681356822035395595488099086510561335132391060597364619519265425747100013807010788757524241347626304771973529427362499189068161264946928845376913949986957078583338266032574010385746240360832279238101077714045510030825214602697428919704280871520022253610060543917677179972090894799774322484163539161996521747988051551318774723060561156058618722934467888750179461015346810871013532852394852586870381042141712824208480324561444637853878579691078865515624372237000649264372253751409546841747941565613398603705355562693352042547661523700057061400616618645833293744516680488435303756976652295703563397093823530301074502151092926505063093364115342226432877319335070637982078748567547482199489735246170946680397664706115904003676149032379877411139231657624360053347806776050582996063083060222610547251338239291438412620906652659935245426754499534949007482811558314999627628517051677403181459627357419052568526541730099669661394924932610950246492858637694100546146399806436007694557619854180530177548732799304490308755712808431692492245225654271228290354580494412478706501190267523835579175376652999353857740020169091461775681806730696919013583927042025834557689536742227469736415634520420386186377777990568227740008335545596643069724237515590992331582929323825786008477130755231419836751146463687383036112977071294860658761049479514365913581533793819557338425958961836530379772384382619354973469010339360849572734443061504267175484769388141522386476598029070521970015313075629941463670492926269888202091041094813068726967949136993210571280939157880982617764454076480912150283952204862557179543706734729643066783366129137876358083271442740217358966531009440226128962179928199782293502044133486840984771108020194569734400372855750145201031312184113828200783124542711018999623620117144841894974859570960845482621693301355390817479672960200467925305084031351056480869047414572508232815131726708173201493421408597454128432689837988054678735568845109369997375673903002967135900633382048707994457661161608012683659685722324462568130299648063138061634360670103659205263426161826185892893583910038040599430120135424238466292068192791962343308884236933564267033538778627314729439975647529689449133043113610527504690461734503132081497475577061127943184657651520953283070725290008360790284531142891894981479245578405410730112617131684222969706415167679903496162548600088152964037397786524856251049362400908760008833764381700288498662354698590698780289141311254074346636532524061266329384254023047401319440355307766748516937221938445359618083127726395916208681359304347569589819580616704313668867233910689330764116915265384425686299929887959425560863322935527925066332130649150039401863094315730928835769395335191073603692284290330315378309306855560726854597539057233558943693476402745021378932759444184882429447305070750427325297647395152657060405957178880972005067437846870386459709166722793672451069083372541338519920783038395708397175623688307243568690134115722559180175384345690339336985896782686295107062987029152429362753767366451033308300762632267508180160852809312757429174683438631656941465270144582944423853215774489115356282476161355044940551142604978038265751785322441673101362549161365826191562502041901967634260918595965718004491361818359507902517766335415679813041015189913832533746256448208667115476500830741885804963334047943288390976965057512543255566752160068591409390745182531999158126195077356054906300076636061439387232995656395948744474248860998840512678591067798372064575329487605358375611105028198721930181274822149676345429074372342845638890298747150600403139803986522390771166414766014230672523216378944893198321850926113978652066503093510884391365482809647503547839930811841697637084675929237432285767598974433340545466572970287045391743593548818472994795313240299019604152999840752131542481389065409981288559736473291876617283159160112843917160768757038377454249485779639759471677426970606968461450379105625925019028631760439224643802781238670779807668952662606127731032180574623453693234502319279829403391640661732666018045336166011735528956249437371548246168710608004244719164983225978216008418697920667840299089469730329499778249959164139265048315509260964145884359471834142795805525323635944023348173225192693873507682955750440668477728147606445742286996415732081254488618496327723271113331845411045783622874048924787228320428543948647958437195362345843401022254198843833025006874247401195042367209658659706231771910746235536085736501973372508097414011752562408804556891630157248425264795625274009974569378845154632322795968126856790554313741243881086899994186263846409247363412477094297597301411586018742354093857263635136071165599599991240068886925795628199363050738630541889224657230336427637795380412564357629488456125230846761495625988535188991143528526600894821799337929698802630809639294822376199817366813318174597972357760902457268356310506682525207715858743607563209839644348944527292707947935633508512375344237418597429731141726044703008416443174188252853992677706692835918025763592453035492511414641052158533430382782709486628239174574852422351811153880941444624486122234025247905108375223283659367796825215144247531343556974212411914626347113454825321684916213651230175632773672067793149495296782658929240908060043581910507874021161600466348129618474931943514319233466433925123614642927115306359170555398395976905928599961670657278508053155880585117820812735034046095375438446724544896508652972212523580775006999883750673592148685697398548498169218470829119651776549626444545250026359526580025403179955147918879860279987137351173278990520830175421731101981215027751365514212504218308000129245138718468926147103646203608221256151194489304575109363519369973788468466729330947369499861178772343801234556517406298749511030716184325613437515406228229944130567337583903406572869759517071495470625462048488682326210967926026981420978340586746084976695973571492771944873810053044496707466314756548549626508642240575495223467593694740437876073909428061031535632895253678136064092785051607254989178079464076277308817156579439637075714859285640509051259457737082091718759782030564483985572287448905523495544784486737365872785892189209842490917671094544378666228668552432947044824284784027350691208024107566799032770472459052687930776114057647798693814757527041913934277709312027396205209246837395276435275547351649257309767363970610263886678274395551740145292766941868155381552831375635552077547155554112289752979875969518300796180517055676100409816846702859858708257698242972109947082850095577167671628815421259498867572520107771849378938617444623657296320761399653132076530097783097503215994355669035670524401697351561169270056682590094496854732176331752371018990057495286083483030698067499705713414548270175741975002364244631054868866885578362715245160932407376660688293936511839714353021390784483347133674288293275025421449477405536436627988486564070512273364298117150974270893925612402566565520198461032262176059871903699807179842211106722865830223948648610898585417316754481976377778858399347871827816226327927682992987144518258428845190446749956580704532676131703728796784137004466153405615437901605300018783208498221234141671270230598502999810825050563149818992241781490272509372761008030713822900249709256749544068660374768043337422587245954206685393952301938144342545741088674776754401785841447802639304513710323171157668688988920834883869492050633171938578465494078053421816198905597099586733723659787568247460369203134248622392027584759165674656703043972413986566770519573963038100825390207164824503060445604491025065798570269815068076020383966224629814713245859513767967728693887755910587738891204337364486110460033620620358989490156548895910171207762998786572015580531047077610975412428020003339524122026279623477065353253828201797097013883253969566703773083701023837087125455394691487145842650097677927623230319953681464438232920699470741342667495325328420309147874502139906407554581735314912629303105563935559223146557004703005831382626155332665119204802244072626752610199270068599175249589056421951553549719853995830543924627574126761496339633224662320254781800408664765975691641196598263470004998277626985656729731661028587915870095741282092944762482053025296632171655586659722021477069829049179261848393527563289016918709431434954051322122624692396066381968223123450882711658215979474898169785376077495480050502322972791938684826426270137827370316102829552917603053343568576566799527347750965085336306072561708101310685322388134413453348829186934921414806293155718355600153923123245854387620489812088423367778403807536974295482610467200261173023025360755449424850325485686845080224519014787877113467915299503038373929408526066227644542396529448526799620306863651105880161487311588519967932553916564789610229010944828993098954580805931178109474418873643955461572297591344910046850553382444203713175549099452318449555705989696071794350171046048345282662213421909244421328487957499488613260335076233958002965489770571378429125810811050116260478134686094338907513062257543099810003868136598250957078501459757230031978931988289262675307227630741139007370964082168541291222474349357066022323320197554663704752138043141919525035040405808841564474929630476020752779073689494745928361012921362922845682299147525951445199394854253958703676761184911378479624178819205737807908597886560461485732119280983018446878428889682025787293633893455488449098796647261185788410701515351044418795574366557930672388055830269033309771739667943987586325383945795515611868168455466115281671066001541252753689886570735389951160273700909430892291277542330638116822984509492649263405717616392858440437549874123435512142126655879889018728585642920835198167417694807615128360716611925995301148674297943684611937540084090612597405776937992671464674370528995087195157043174727686571267590191746019183736307904858645867654872319704940161065522170201708414472305742122753648822910029208498835129233984700372766064389382996408306226249367325834053239261109727245323733113125625366911378209431551802496307345525771491416048436929260314520273291016571131110359938752075917525842104004508274811121501707333532168415533323719214030032902523786097971653260331453198903974792428588572322139922779496066364496831684494200216584068899113844678186978827580948977976242789069616009144398556632848818675572232688889520997288982049150886735466530614542199980140013771380235844948285852566872531922619148861530957830202593971534464218418042733192741171331610781490760990453232324529568952383255268833883943291265206873138165140795209335741707305275664821397257272909792302068251117935210504526985096198481632599534908049672327282984472063814965095304160472658315401250386062889286186078666011286693737987384109992404117385131141887535357145095566597689207061423765994280253397481395299355960313885419812974631768520345775652741921090571572628029090352258530945474444443725777426783207217792239294316946321011541693433065867144375075649768950631573546288908545887922403246095539393013437296734835527865043796319182857793169940939527466721513213927996826288916260347359093199064639787963399860747258047453341978145427237390581192025865776912412758500866028486739439153271341776324227531565629897053127460622948988018775935142032264229930790676112808151390472795294736619009865937812140063269864902787169013681905053487253497676476491525982927731262824160859666628053373034543162087920202195256830551427797946350781137942204452563776274003620318890086165981868844687517291365556224223243174059217577738390398379460083908038462807338077321052714507176122041799232502481367951849799029448852727148740428114587521114135006466080383743659418507731101832495291401022992777168311897161744374312362901968282257252270559860215941824130705262524512393015846017576951523887546047593285731313841110957163082869952018173013945757735005163996444346172601292315445875557585367877355210605554137865024454809256217558549149594492081593748561607039866442863854885147882614038444192855409819343993912328677280089475946641105659660337696384816375831400507824125868313217969994623039516645317872367413962605968613309283864808308491627927061935678693291921646974564718946684687745785635427484016201008480536044364358944520639176888949866032009325601938530972889719983441285786708952764037685406863073780358954938222898414146482980685135053668745317970108291661050822799415546390262569336183369306473468193514694633584318467332119088746227951067992290659392201179195899481542855564138949647936138129403439168637494780485336498386264380561624700112587816070341614495154454377291282512664087195373064173126880626465399489757615450968503754336996684955473836681816087785309882087899417253836979066249455214804447072299797435118575735426734555903086859706461275424188664399137971122491837201999522987302946261677040800568227021654839828374289342354032642184490609015309538139544547344777619373322736377169911754181798646159549974097803104992877356663376800158307741623759748231251251578979714766554311073379427432377096138826785502365881674203435689740528629665621818045416564768522118340912342766514429521267044660809553506633759902744279719160346929277409393684730129404514431606252103489186716847495742011252100208655987864117416537829633169951067555916666251646658187102388973084760217450270919095958252360516767605242397051770085497712921720570109517652227252549183943837440899684836994922336147024869153874218752218692825250329001499183606602368636802737569278451021928717719364251472107627334273945214930029046468700320251508791614473681628374479083031092563969293322153183394275203438805949331714171148484697156550567554802323787879647982503090718166139871987561993459908488219933615673006968165627885060561647532551006626659653981054116335880198409343300474732255064684448397902447209799814411549902235640525976823810352144441623616849220314676280401781024144066066565030530148386885862486688252000550357918449566463129983387971682548907588661873448290299818273568873675512381716820205431266357112136352775671591220582309640185744716871770070964843974983661804972846493851813798329887301036672232576708933782669688134954041113299888298545175386943020221128497578221096669173736992680598083496675434377787250973783036725211808664630193841638261088752151269458738766735444204246504755410399107613447754840507460379537436885901673285164377605819566635155945099582077091531822937533100302459433634892261771769129885912940424803130958292511178318517374318267673409479251819954263066155439075315657072409554488399907725303500903725148519996293303920717613079725089332741723502790301727699913832285141889152004544680780970463619346166335716017804449541922743445284757634788335453643249574942089050720807759698053133662610238642924199029256163805344130169370255894586070358749938491900470191424641515890818903793098394024514317823661521924998235612542167665155043777184413650615488492393659642564392087599278796985023643741053592435313759124902455678886220913508636388051026255670494270839398657583120412215869837888726684408807955179718970737459745629998321228562135128287706764895438337572042951138763428102834682387477683707734510988537260064568980568793820718272109357308391905973040455477830593853696847756877890775110644264839533412867583277524802881600763982780558751345586394006895472315905724213629604191760837074508409948824199026842660634221935116877635299157702629116796225505582698593325737163814792300657277735274271554793199972530941874870486185316673409262977297550950788385244620651152607561253569441549112700336530342495865586504745587817469742659566337568915819851539320997242418272991889936480168556022441494101112000030663722147824332523768156408558900061493764989329677969695691933454149283974159223041931782071862919879145636125321313923683415008534978996547702158380777958216633844855834130820866497608549669621656223945180758637522026708560609040616992007409202529040576803868041021936942825378083019394377725896649088695249445006378922713326847103454180537410437248810670426694363727876851700833064704906763640249858657427211381486168436300931953835022469446716248177913894007550797835719817373192682584919896005249472256972767323761930241060719587594922832045451148681229016117215240605984746207459906524639329389584180990866794322734542784229269912079399739421908144004421218252556141743742086232011203525867955224253525097095209283809256073341294671675459708665928784412821572533549960747722995961835600835556051190506829842972583662090534720930915418128239777165165685157626151091886262950958252061540718369512026455981817044450390319589508987548270855515464992706778179505240740844282185260562015246233074619174770373338452212900904198388992382575797828501414394571362068187117253541235889456751595504425312300789903219382327414959045193374729496314149998434256849041723334323319352903241103725283394126840795768742761716359158646043236333592211361140604418993269583426405401185442758368394762718079659654865870839401650490544758603804172616092914638641744170550577896046779695363734116750854502016430932933658517550637566089003300037422712261365847847040539846903258703705241459803462815925439030295525179073506992550978829795274723902067999632619713141357968490421101355330575412727708371397590249193282428387519986421801221645186750427611570536800042083785083475423722484561793291355941293253257616297859993170987043020000956458018480000367578224628525332267264625686041670023213971633798139890793569158012349973839168805752407553595881544249247367852149335312692055684060883782041773386437211309794464978391954982853675257920723732273341308632158380244246115147252237274529516166604866289788641705902587865656826612423536571442601300850895146959159914395244049036936458132431453769465703368172191518852035966801927361183181914284783124559017413470360766781191661185564217185731637584068130405174952362288436714375660333274477713734313075675586105796485961371910827948143866665074719645804120342531167901854243132096242844685679670643533657676047118263623855936344122796535760341013412458519523136141300866597565742803950294659865159117755484637613332497683965804916275659191650613009633303972951791955677510254539046881840454946286802828317763627971066791842264270540561669987274722454397744701178320963622543428687298190982879598083412896690773030650474822162030987005983754131546396650796268274270973780708012452731596616764410602849173341838156261169811518604792309820134452299153799003137151845435529544947237578173866926821022191119328876884724319101027430086972899145895632988416474751917052474266797693807173588410154978781070804296254853716581354470232817368843330362230714784485762565101370345819521228526197460348862968898549185635022267000647176593330968508175583377628666500748472151026456304654630464007931366524315385673758671077205371952862902548851815616046091892494685947535157565587376994926824814708000056514867055562854672577938501808416045688092586775161150624686724516605429890105730272168689401810857278977163362423777900324267127710216286121707126839276584622941918960384774914502500255390988970010789755800422656588236245605992591735723668471693119653875571198000432597819217464738830717126735742829637934003918795161034535704715185868524595576844468637480747017114166808608229058628709543212190074318557543781392536738654274207360756135295241154079425708940595202842860226614459836720347502367601993015844550737941829825027038403147507255898478571194433547090668933090329588750026911390416833721405920874745294792674704405039616719767018873318200334934667293912211326115613737608148886354626126508244552900770675638739462423383791700392272900500317563305090780251547701248264344199842999921016067403845068942178669293011498831132290828999664849082911854330222244796427985410879083456947304414139802805128616626616027067714702138410356529552209870784584609360622853802891411303400186417625263088824072635707991491484392041140961970039397945660546860086692810514270363180287550386896266117241367757836430906803506480564702081762091788577148890056454914742104159377209299643808908368216277573108187974616015914054126515709406988072026200202448938430192534516782223714071006113844606177332657568657952014773414073365149393372035964880514760600078245925823086806995041784366223181102420806073631553664908913781831190922300287978737565386253952027975461907824584971151374527430441453953445762826375425334633011304860843642565630504218066737558744116392442414979510915071646881258365158399008391785549935066294183640403833827203808552510919443715656242931015949094956101007830206588775834668361748460556754112834875764563287105973292491111082722864857655539452358284942550699384436794420882348760215463449205171272165424128993528119922005279603512278813914638786597042081085242417049960678168725386643142206624399249508776944608156375008462718670600918879318364444991618268114176117637920565265274864662635837793426990460641140898119306684055466462120301659684053454034346627836173087144819607912013034469268350428386510460271279805578324602323734050268386074520828288674615974185980323957655845257741726142430022754154433085587392768251016866288864714529563535053539553703847159257514848094580735543493883827290986549243497156490215032627513367142960334653360858645101390753808663102921570839437244356937797220358698143351494929966253960648772043825285551352641022166868235661828919426874757918457055307269780886067695869237151729312368413318511610346850199203558121296273140246202887399725050894714391104628367540635655067434835414519517785132245530984211336483038253625991046822696742018983514072525275480951137194040902950350394471239773229222298066340869233357995757324461025142212724933233220491987150140607883501663532567070631659354759929137744023197198067005724229688792423351085965953945656633344989550514326552137941914005500314298333648871789542562345737326670464404929299749672037525164303342430030364435316444055423139163638751294513536465305549248841393989283503591675024170273113269240542849863265618494496408270429569443995421329244005450229847407239079152326548269177103586619712478418928957959694530741575513139655003211669503171051475693057567580011279644998836576082313491349349491571691271204509845244938430476977875586683522292129088463082995952700198457367507929054972710301850950053045860645984798131099598064584209082278595651415823381939326214054442283527022115934266278867469430729551039859464885097507467572531054141231270072944682507030083821119653852750013884014074437107401227941049096768989171120158938697600667145098960350157417138545991570817470580090453855259013154215530755571909392379851991814842454713219992827645676858062029264370010804757657881502646466079981348345292123990112458203080726510609592962557356894210686712188956255276065336901665233530033491172121871240035787728128868670230091104247079110032970298607271013834963271657615785866836450200076559242131441796337665763102272800991277609780328206611724231976717293554896989774735559001580635536885534192078708261406291371823144386357109708584022543607927312404386530685797986729237640544904720684882685191728517206994054277293467044941053356810920910532902502950264100853771931564069291030235792226269518264549981341191823644211902734429040909694889220967778755807201300243726593567414018946425926282317086135231839119072543840975539709553884651628850908689415712562496433827650358747755965970262904481058052544622061671775193657379733360535611817716727757472356499117320181351153374072452100535293779432659193455772558671335621613703082964345146987934837825415620754966852642304684583847999338801893054834657403188273677661885040023894168165437675054346098229912418124774800873095726345929917530840674331536320705517553736189124421163813919445595857449847747587366475414834900547047408568232292700177323051636653039312873061394406989965286806842349173723547937491483365009910588539652518252792485954157752954527302571179009382943476588970854587685031814277572420438829889573804576573604642010789337409389274718280338575577750322346977249065376414043293917592960084145132888448370940324849037438555304149146904112859455813640975935663780907417511924113393591493160054313246374309697869311059202231949672092168994156927382559771035934270841507731318682360650566167601318000007056053706019782036955499755111094785958830450993826576875224512538035176445988988555765599307092068961333190344391671823899368282518978870009984033151213563953271370453986616606991122261087405158922606758963463506335855234382795605801972365316969235039558598302777327780846935574610472376618602135243968997987091983767452690219313222126669382902293063857829479827118792288435955458182198571481686789781783025619954827366414774029209480074721798997620506859812763164428419512734272781277874829862733370770106586514966737511880787048898351198855139185099520985648461954971572225485490509821229802684695573719816898253602450574218267932229357579897227952412101674758998216713595867024337123130817382076708782664542739363926510611618731228894492315196141663395113104135546865808460518735291159492482320035937101314613016474249660863906887928303540617280918040947235751308939457394366841777945340576144834139715453989914188223143970304565471472663617361717830673207249659613073990498036297810477035748393599924247902825684085546073831035222948981351758862206407320657370793739336788330522733302716683986956799136315770001872025346172896895838239547688947378626371257237427176809680221285803468468892030547649644903778663723494087439756486300248473119018689774607056337439728638843818884079610127939688501123842096374811921786685133304992776602844432656770407894156766165300225805136703805999140540599423559274200948424527197599530990697752546208782971189333397268743219510105200604272882697171102943067310853477818135463250179424685949174629589233480493374722411001512035707558067281120595489898774241004289744250732821429552082647003294137544142479516348271321029373734552385148952983991986703237030428841527459709103683508365302919054507770524108123028569713718242970488670406874489120882818392244187361129057342411181854421008562111302037249708353011266782041843645218639479647749541009743728077469566363690666282452339403331667313654955779268895596158811492879919183548447671766367727432456981322746177493288726909007829213135411399139738359739462119125214973246155143281226727276987755157473655469959933574915448491460850411965851877520643072168189644826338275612947976989574124388642986771751857035713550407903378247995572247781713433724315175342592515075554437051811707086272779490229124278432592167280900117503108493071892526930153458360535058260147688918575979217435545867881330756714604605810760295810289045844101413497016754832490016889355002077037743022270790341466007826830190983364167932123286669121318269398317269917170977107102874602744561861400181231962312753845916437885016997635892592600355470293701520832130839110640286075141775552969902155105692169403839623262879219390341413601083627079850597816961971412738456235198587421157915103877242044474480813319305487541436537019787845846404195116089760095697266189156980096689108560416155200933194560154419123962795849646756317522428619359247451532941948729614788251898987719680839796203864063539391043103616601641730259439653072623537867325384681527715419838502061233706313647083666277410977261870377624345557112559180245834044262974438342852999072745260753824013144820155684252233481828236517586370153868972285262540342381183040230944073795484529662311971986739970609429919465440631773778264193882215884608194372543718423751027570308978697854438000105728338961787022567964452557385988187719192376835908715390436791015346709412888477528160450732180607838540729933029856326821082465250592748464041127019017764049178870182187892382205234360569771461360512266955302978623616362392226299487658566237952008844335602815085451862816868003377215615713599777361716165754494631042465160530832982034121090454007911579487791195657790706718260861843278162538316493852889979627706152432372080259708830248114315270980039732104241985898030902387358260860805458228432594692508529887278518384344786862775087050395790377897944982114248991473686026410453931392307556328922872903988432564867887290149840996982622499735283658844865387235341768961495450767774928933418049255791369676629278393874884752706345912395884066438586914018555120104234296990850958605880308018195648172217001412549864871247308982989716092641860484956408873829049311188731192588840934199144737495792920818636929627217274096163221088990738597181263817296752385805190768296914579175610644757609706270108507588805231636314715131542114692944737582687272696035023546155138379615154585426922482102820407594110593923211713405114655810351185117272724956634232687295433010749479334069471403326979650110747081388979022070358167267337963697619739498621455818236160948730703993361872102788629803791738540488812573053615880866727000566953808591585404224362516778320340476987200809617243916800129230664103953242110925093020717386658850347419159716289281764194424164329954209537235982434427142321777641858289151026365454854517691523641577028474648480061509394813204388142628720887722745461386033403382009084415615075640929818543940376126464983678327863187709232962052333866931441084774329762003293177598447916646427852606605379352173686595627054333813000970230797767538935086598612719251969120957233726180739573441587288175681413553478995958251562715744367572103385979817092417220745007404454146638032789403894901014534213386413813093097458538696276404288824471373918055262472196366803687928824149913531929370160270136731269646882131498628840771784577520188112646101377870667469367902827538108576021384019675054098325965216353065739918778493962095906885564629352006165337567276930452210012755714803409504581374121792257695907962044189986292557108843263741093964032541737458871571559323118628580724205578282827945002719217040724596859604109149624310562455545243908287952274849013920272399061366609402944434032776071580132093120474782158488042798584896897689455497134373545581730371734891095621295053194731377675697806969044457217388662790863506049792603720511233291597299178761170075049535376762656353946554738084905247869398495913461642968701231358337551906566621963805831942763825883664308453962504214327734128211148706134782854123373142120874439034078938207958542691982903529340755655469056951059734735390559912570496944094069042991920970269700823980240224176660582998656100286707249628845474422620648398548780465517745267686471305964481326599443254248503106320498132720829947663605864317050523904378595885485041753326151652883166376196850714453884419864120159926511818162829895476457703618437882003299220771208302581915024673710990030623377241046419492022925319582516012016532234216703398717603142295702420931323828129202676878074403422167746270763461906311145516665581450422337451439104568896163990074035279965393841931518261332618045033815054154103300215246080846360165004107114946894732014996575329355084820361743229944792224688255928455615387737667240276013282046143320365246610397113014088688332134325401717799700392455018313241416538876993631547548766015555764447848848103727577930287525360193782914209008169171540103794839593644773055224829807997726458701717661143208427480701129661538364461775628481257733406356917090285492273501572323972347489211047918165229481761678071164627782896731396865527872235401331861337995222457399605986331371145072888996664310265369972004475160834016788866701653086640026501646737970049088141566599487071214454710794844309726604468336866357328653802288533818520477232185067745761238886412192826659227590112681930208141367674411995707291624515683688497765562403776750135279646575291269999406426459072336096811717959048127567530493489213503500524845976151599776935061750068987678464091556433556945631091843028172448499266317967587145056333024052803325134953425732771447498200261906255371176823738371877839044529645630610786176989907947341474968536978172702943683344835441063582904600205703134247673714456567461992748750070315199728724711269486406881531765463905575361034134193392020191545264685205147677886375708396384382246490675206830706080904233112242905620476297041985489294947740953395155609388209339899042802858180251095608194017100904940380058135497442887151711822204160087068888558782634946121168583340425815084557110496359627117867350134459766289140343298717812318192236253610165247091942113577584595362378061522339825189804696870312877249323680516204676616108364988022094122880079755649484819224593738382536159479354869576400139056344305462904614140389050393170595493078096404739295025986794572038885900972411664450375891026960097583831197028704588602037075925315210438703022507934191564308944407343497734333660592336898433184645784653676308903308580892769264593982888499693294388605545752667658997548326618180042659579671946696978366752862931249463688728854111694171447569779373998751628302766336448295857909456045494694038289745911189358986083601292037868372456398030408767687102294632260439836036157711385789713211710084250286058077437614752324461964956317013317840182762003464808285428355773457826583652986053936878429107770860232044611143738835308209783159078500279287952864772386898027096560291594664756342659896367113564485767426333578482630282151535960321276179273933069737222844688574501743001707023445670656425175744062555958322486969238949279538553063326054804510854349559891991242313708381438653441744813648088718042220869543434091534980323993766087458456756335729257333879094105888151454819660396344656912919994070871363671263487784479640489039761700000515704043644477877005861403386898111310165503708794844700494497096090749780124271472816468110544651569997344015883795298348651526452035556955699838070997566041070043962806895816476919899458770510037369924383329319984228306279943755932731675683849462089243366706005572419488868797015201383450414027771892331256373037345713478790470693874551794626169166355756482267771362286407334880822976069533658488353683435218057185956408048416567554077148543591593247520913731405910517641483448767436343127377086840142995754201626465656907492545369652101907175765842640724624657302180986979454482102566530349960119524449014964089996904670815166107717505016093750569550923419568623818700087949704382353020459356094707212825159682724935976953439670868306941415355651298422959854961708026993261077181639320354511078487110053872481843357825140186155173270983758299856430935405232784269538137575735330424275038837759576719479926545985914413316192821916713237081207953644402073677881662320261173870029690366136788602481197213545771883796854248583253213320011641223169544469318012427244433063928011074959436518294148987216483352993942518604813863391135186902587911655256071151155543094139804066269830168826623299386667719121373667431927816479134179701568200479515592523738494947522162145165018797372728958655463757590709653114391464001987513632918362579345060282453660215050231012467776952103154380292006082438410856151491834852147048631823776559754899010769397179589043948421762777968638489316858832511205336656244056862865797901589251987002053746449676666607632567550196400297735614601099861179122620418162144120106839436597322008093699733678343374015819016144736701793868636888112270384290999029282614359383412520143679878864272910467559621478018996473752175664505013164314026359765434824335704609285816987819790297121613962417469538041583368327995608177566019487662355951834781778003822508812377722792985830151408648812309889439318583603477438147800505495166177867109059269463258005403823447193214405981112756991859218900318079240525583697187693485303586570468951055745653582001472526786433006786572546877040236593131748009358492942229555525802959082688529919927897836121589800335633978778275303657220135482515429334101087563070343033737470693571130131047006184103848253138008214218776633692500890617247274237837229438617819812749936442732252883432980040295570965978406595017508808034740631548340553176342537816208617119685997912395130137207272098756702950590162880576602400337203012648209828710973611687205597849991300006393099567077791950046616351773510062198605361239888458475183031072353636367336593200197509718541359811669818220437560827256314416651697837148612066117405988421674252996773808642551436107557638941720678037671816567775147075320954138665781032241947804372850953189826841020371856846395585809049599008653276973446124548953377234539828610191683582250388076373299839674918759925866373422500411766940365847224755947980539923019013575613109788781464644668442344460940141958805819982941025506713541400515793579637721646824201026526244144073212136954855229806669081762440512635452570605542570870746801119797178080994236584043759773068189118269974401625247259480563231742467953591092103966031644017894684978802613766691083680739977568641885920387572641742011205402554321759562400382764056311552704940068351223078396171154565537777360127542963835737978671440562307970590692162880194038748873178413025018144622236206717287875211653169339643260419138568665764101941056760452099501597151080827579544237129116103846518128382543013714150336412768314780689717165275363303820438612442099427058584034682074631477065416350632721809435126521093090096637019951010809010075258537691963343378237154739330525251373417239383724355259361635920866898543501065170784085336960482682141752604055490737530419615877646049383090968884464573582143332111463034780830475150261315605797283299034545097763674816745488385694439749399927888387834324089633505436202237274826728669076614594087484658305987508000864290947614793383233539346571032583916670097447967732355982145527521236589920877598250229035256349088126601108010248723453114508676600935590180654302172306623721101515324381701602253720690745598720993547407864330324377965975134938109609700578011441746026206306801223742601822507892981329974593589958542236562710442353896346664436422628040468243692816181533287088225755450631082803098942378118400524522059568059711294957379936105119827549598837895334753140320141411308255069830020854637899268059521691947678941975195633747765799164276359494316732113004288402685798562218913296716071555331480330972983135975702698431430259390440846544457922233115886768848276033305335762057296260561153269062504927569670819098762195076933757347043440097471106810714850177993593109225384509336667467943352653843857223807786087912967408393106489476514129331229524281044244783368272992162692680918860823393688109921513044180790380410631855545648037787263646628179834639194976147491230090985688723867350999682965145446778359067115338340402283089212646376551125575121515317156744198988967740971108822358450196614684896377084018723499586226520559221692811094465469808683478865928613143122623973225366165843680226752198051442654174784182091978607207743986159442949536123599120486870070443221024870653252982370730321524857423507431899670070672759445357933781315144307156053979678241478809668034304046564889130681301931074523582132262387613449655365708072741853910418186122862923391575838924257044932073142154539829452197801983801294809167256616130843691897823911487599059336398263908911430128093476769795274604378601169777905442526999325319795382224592562180779938340053065089274410782212228650528279084245054062664119116485310141793091551432054229452507482117851545172173133809062182039413071605212827208685668353368160404096899539776322392063028392457890839844951672886709509885407508561130143092903366207280308113966055006110027063744665431736017146623263694947288809021241112537254253149434170964845139601642848175994997611417606356386572157980147984931131949882968234934761023517614379032117905049003888709567131805498718791458771746139492340192759282184478844703513321343399004527886558304378549401063331045221351414248210724495110843788515144815511708887375140696486155977219369472960363042739098556669956670930861657388162958527501854342444073169996597580038111074771795010134934234279798386914048699473921876891068788292596690499241115580128062325012313231135012192393748383480168297956160287978522097533909785891289728853149867573024681460354069284098070117159582874772715436529901316264548627393733000830931496623404790935795817555732498274703620328655727911451657371703068212875822138816146687281263881128506750162557941630412205188121224245618181651716988126551336872377677800640884790573245510868124265782875503410579558980546306107949812669247441193729642951372893125387310716611600496927592123026557713318583893486570975006663330138519645633191516702205990679073579022298750028553248495003609022989212954796188727841269137034103147207936113743007944419156289780833267014029277670959916680053274049902232356454056587142368120135931657382105407438331845506859669353168197867901960700618449852995122340409509558785731804264745851815238402178247433598532685281647664227008711488639478007229299255020685668055300212213247706472994387996261998617821929866644754376836253680544549583312203931815714416549039268654169777647944673501590660944256411288986097031929733094987580605494767440419405489004538552329436164240811765555791535799618536266582830442304022545005112704162194288450433066081649705178763552171777837696325477931854775169391544812281945029077423496063366371467788907818771873678319465310329523684199286355132445524945746479799977098995448256600686800780431055251028723326297529161262985876281455731336280648472185900416919925901941357500556992605504121642911622626788307430906116146921674822058953448926590766391020353144959539908934172806221036461408099430725469822648268687548067523636267546538817778454457646054418237164517257781912633669104782061769698822502538030056790760146562779119930130197154312086852272968453024114744345039179435885420957908523246373559116453120503957154416800664738206987882913240353349349883434689881629888954592302073797272590528531541209237006089211089595228050834187837110240387987319932565090510729853309205574057134400006785907944523954385440519469512659660019682229457942241809495472397480757274774726935937416601985147853769775931283542751408263087228948421479367295002138238839029127680562332598064011724425765828761131203349755789118551555429438095349379363900493379548426214871557425764086055270852806082766709420797765524180025317486194551751370380842363521026027765319525193030579490444118174444446195353467306085990983085524251275096114804761362169945463820187921404439651964333473834842581769924780186585619216886469653711095838471153826456193226370814340616708041563388597601568743019925677116875429805896966900983319018615539804401610295391940982322413192446894333933691227004672715703581831108174742548999951383679614669428341443675064983632019725271073412169042488842309632702828156982273692798124689879736171104368028655791860654147187539105384792322931151627894038098811470435525755621835972702529476028627963767228145196876345098557542396228490639924026247815168241732545960765891524358578284826879840355242496354003798129399076877370037415450508024564065348010007552576922682712175502915294739649484229179860890888247123170302182530485538698877015112010135061648372011911244791010180840626430446409026457713234588739651919956418415366584590283118188049530738334333335740248819843904130777439521464014929951799333134281902008066138347864517276705194437830390912188388966471981910175379252426080979199525495699042701375725114872027476841351303730200904622580468018072508151821064241263661210623771645546318976936750564541399471017774302667042244614023099202054931433101396833651527790004429117393419878087155450151952494620505791287466690418309890450877277492786525489233322566109577711938817603110384118233624944330538058188350782657751190754002522802096414035075512915382930772397990973957403673198119016832111274804922787269706651041160680949957805560026808866935087174559632307723905832503340616863519025469016648104555953132737671145273957987283611115861296248120019803309635913143853183894550075028194185198283985259193904822683117091013366386178622786461295455024469977085615006798547683232451805874590946281769656202683927175020793565435484472718062332190746780775955256105516014606153220464762037234739079547952525171097782213434342827185215846103786069091076391385660098841593967894716272159108886215292100053283270218668260238986076363530113997441750364347630480721821919872690084792905913989875071622099936447585034280934117680978874004014625374896074773440213902543518019156113771911748131506390102431930322786348836324952377402491983347483011223801488307338104595965435141803403138753120765801027075311772670467439362531353619615108268071060840521353440979984099509963349775051098326285406880429220952374676693346169227643186179245453130354093849228419481450866680855615938232563906776227565773344239145394049548017833353000657773664835561810922542173279208417022272252774140802648049079660363141797272856882050770595611946841585244742210031840244025062870393572289830266004895447206012857279264270711794887954851247235513493711344412845482663730248413590954056460349138567198296689205633383374727754877866651913572929178215818694708850794081520666842947239698499990181892208948641401249635582664510332366369182909446903319735469161188779012913636380131999083820581455090732222042510654193545063789928465959456635382087577143250344415378800327186592588717774741873245099047550917388777210938893513609982796438119812879427523917402691474210258687088940495946046562197040461556073594095892299520267374103243801771680406859011669147604023614415162343177502142143814243552290383035224488173337717053424329964901594132423321092559005761636259471703542486315275659651895026649545382107651469488529540095955692091735426848805556428295885640084164384019353485139145898102330238132331373697015281156540218082690154107139627050416031296867119552476344149235321660397920485492124417162573870731808139414354348995223486695063387128825291210379162289699070651636780970529234596148938566436310754475182764630661950364524632997308960934438944240865300674501830348951433050849778357219263499923209471472957887750278708754268110119458204805485914368908999554238302899079342196354776584458647042529315917981132021147188306237945162692798712864381977796711659688382267910183555023934270236475319783301240890045757255228030057160640179943084005601545959033064592018456728719207986801185377851241994438538376487344446991688902947268926223208635098742108110354895742589007399325892183865104556008436875246636528415267534668609840659532144551913428619517443028775922838773029019869021376927998072707235865404354960592666177824940232867413308016696082123785853770761729523463439433649792741068484201628771961971540091828729352067968208515312467196643011423688403015521767694585786687624578154369948971586857569355168656568901468027244078039946238039575484514300214612466236598529324301477577259307114011831582952793462445261585499353729934895169338797230718772392789834563715250901927021058489112625107490062975420860255205792978473978882647381895884755514478995145614347961923166402934139762833847753868796369034370582566749235129135938647594413056012012822667815812863944322805798459362828917116381698637707188374363594761485855529746402257013504163195414578048249047427454821588473145944576067822623857101024249446872852633903208115826929016891342189415529463845313240526000527072364521941810274299288547980552804981694866853984631950992155534905889561969434883857999584122759939211659412108495150162822592882805924455504097771478130980649671742499868692172042093400384875589249840736792267600713302524632270001730069712060584426327181542318910109202131368325712893915081041367329322495716720442683477345324765220715666504446672246020474306507494021242964079715282542191093377330442537445017718837120908650458343138959885324712220306293440195439934898990927893238026878182995673957261108551544350910763746995820208210160193314836191184032650289714111110911820734101183081712366055951256381704513813831151874246599836664818774642139415831613627784559473480711482421778989801321754570462391453183392750192288938323844829843203442109219985588199168812384962142978211648665344088662796669757362091701058677494099143469557667056792571562655104279008030376905987910036241985119516487181576190797092385098295057674461864320490079351112729341051370224244667625792331469970038834818319150695456797734564724365646275078121744847867519887330476172446208561010815584152356113729331206959034971888973393745799939893507730367395927657761142412387770293257592583205020310585469957677293696291718276440582431313779247824936733599932943427656395161171285705828443567073614866709703155571890952157512106319862909379081692022755893438016621228077350250242064899622769005394143166228981439910852780168595847454640894897811579310105800380377727430771499526211284048648351328119642806236488393915864614854876740952235815538920031909696173151195426533494286007853618100571683788463984698271056904561645460857307601987530991571904859198242238381275706668985361534917058436784070407784562847005460640005493373614737433403010869600262044778315987527738407745752096748671779124546045402244071271844735656386800275109587071821706246207395945752569619837424472087966590951388304755310231153396400439828578912969551848866388005572921986357783717724334534008478940744260165419606290251733493096248312545846950121849312895342055266955294384045543509656408710867077549542251847779237990293469303832511096709391281351405010663798376974328352408909942139532937726014629903783934895468337410332168787097910136527679442062055895999890986360832596104943994401120472145819965838121439034581268174810138342255889331393061088097681251017512352380827686018779673532189915675327162689389404301264833631360301061650449192415608352068378433347623737475858535693102037948950896115785510493669491632369809321705184277509127538885498224901482668265629709900379889800852162140754374757667886557987768576684526165749935594131852241334791615287940588171321147763169315226045742842164855924006078752393384421616967906653313766086659271985668310624607412329204044468832578584726124383847656655803489040631709779193737684113422735214954658032898711593527165202957332114023652451478486563327582681828676716271379309946450835874293543283701763677340362768832887157065717036160128331994583867250043790355667107810290698005876881020234144791818105533620902225266271738983961546349547351069821305978544551532118729842250624134721858934817371979549854180222799279080712401988382832961360293748156799503977791942955189721117827625659149656074954774921531536073172204601102802555652197224377721938603537484653584181185236814028906954514436619150924463094526834891658616922008098376565854581920168658787519006597716313783069770021885450726634836747987483830971063800234648951703801856359777452376998015636294908834395685206310115333250879914420751417996153659973352857350613101851009727368887772761339289936289990707801547466355839855905807941591376080895373800415648382467271571247263371389448721000750878117438496594197841536191833854407385918494031960426847603710810659624264507735403049828712834316459950564698705646775960724233423938857160644463997290191149659247987936469551651637735356167676526117320466806890323236232606866425356384033492909186743036787472335597787326556951911212723526934142724929009763268120776155953314100607395949996383717274961912017631172266594336727907086816349512753051751863794022947052080224332285909893656683684173050454789580654690747489571149618667626627994508434839567750181721643118429892688619341702267492750865996752407292984255998900622308943441221361160452485210106992126619551140398799164591358571388181649833313045185526992670964541664840559678946047877975860531444357006468886380528579457059960900482664239848306809028762580256367311455295672186087722764454201881296878822878090332264121437241289367355306164908835118184389263011879348076458042666808298500677041756938015428274114944146783881639127138126379726819565767429460591062794410891807290521915065935114895205120919670858761696834936098539352832165576460792590610060734570686990013788971033573381251467240010493996048740624423823252157622318990440385254419985984173340354816418895990080893632568217882487077485432954962265491148893653757209938493138468242239537866200045741792829394217091387665923181752285594884689285189750245852850497317890957651589811335477778396407663738218257743817223472253326039769660696346349805921213430571895415352386204219354278766528115975860380800626731093550552190500292336051863336421285766333692677195757989387514996033859657775514682671123966142975604831456788464826170631314314596978572512340920890490986599575651491137977732363741396831706394327386626200723902102446512231895689729557845335177693668008834502911512767484049579289107298139124282699664025181053520682376211602431009980924906004204490335057906633803633942771092976432237802985575744635617685688977425092973373131058777589521134025391156231634341238222943154726470588726833245008975054372139404062046796272697471064579056743576006787140905501788926800063047353901770725560720576866344330614573188878172643414116536842482374260771785999971225738360281465969847757350346897369865815234091021186051518971848934516728512348942064873866626575396333662023351781621227602909522295859466624173439026005193065254280422632811997511800037756407615364404471380975729524013629192649377955742149546314815108198638989454417967364651088387127558494787114782800757526866370695388638901232940719525143202536600030100521737801618448099739097437413697781611552857495047530005277712435872495369412866970794526306482278567181085843982793951205069411667127817620311847551859338796587971174876570687883361994428383758476448205268668241607780132660538297516319303377920443888680282863285913491211571842387533860326083730191401136183024165129665161027365550005658295786642344066602808867004225072343101703502957696106349625086648814732509568008326647067672240390318106438246088297554456791162816127021160743719743550635704283836461043344963584801237785977447232332186488868723076119872477484192880582871864103161200276093111459535179334175768012450099008624276320754772622985826585845438585382105599280543228084251098079914214577814522278936643307980621706404546349842124156797643833916439555353069225872261022345385643369899595984001614959398275580044018908414709736458264131170853441984380142518741429750442105379466127789011723263941645580195416991232786643424753209771510995916923302931655391038569665415235012910448208397342608315441611475326265428629788129401782588967794727919747861137044896775461862534121021264688925361503177453347197509452249587928595614865445688985282853894603155044303473433434780154644754602399332607203959413515288201893951447278778880397507006849463813110638453530195733953579927226752178976151242630828946173812636835569072991329742516539916064798891542269328877574676213969289056672591828368437764375762690626831644075425387093824757045815555707123164300617285590851688442808341939954664969028151516837048286781375687723833077575999319811529613067349979506921497862748083002974270135924468735010547741535119342383396241393899745034345974116337161685902300852190937371947856203176529344458676278752481741425085657822239019635075055343926278215884207304891009790887464817034944789625607246928556274482955714891746636304883606216395958515533470367715197280947771529644027927170605101039501044999739604397742587225059169695453675280259483938460098096242190328295818258288475762122614873185989650952880895961863063051821803121527944832664862427405389363345839944989085917754011545210664607029715366396831569405985421214526974690665048900884745262759409096914490726729567574668594814921834999037222413241491761048705456046664962556238939953621786862411961834921838979786278194655185307463078512355068586164467551744491288373386177843646915488591681454367972332368731566280817811982406395162313889582113735946188257213363300264917312135865200533730699599970069874736827241783971449981981317981383719928422676372182409160255400190579865128061865367386656119829701908733751962372588876324668808967059186168342384203810692027239998740002424779760638410760884055352218470752694920401397601457677060660599993158332445502382552062017279716622116102015647183469763277195676067027872428425396178003889665475022843051692519557723794341579184279008998349385383552575698113899259341367911449178735641638549615670159977700202807063088681447148852522384902829839391281920842662724648214369898292243555174916365883331885395159410521911460870705511591807884799229269213250531345236176403514012096828556075522922643007150147633380023014333877104719116792472735926975491880569916892282961182932997240578929214390745717743511743512214774949088429649587804392341769071793791330538891435058967696491794727208310212245749147829494056656138473245537304955262478022131294731403590113368959740273637849369504624339786264825582343067699192922352968557652194366654693527476405937504987127168422215491405501064914458841953847336075265893492409619051562032685557960614632638134049249227358155877794783015234628588667760673059606857824094685602492554840096139385808507106825565490543168886111230736529546218064110735389352131801634943770224115815988549447811716545955344659862024184762443787555562841166328502107091543411023239298028789072469736157583411600756273740172616614418973861867560031155690355772068243148957962762659791605481384480239407679565434999596311421860071300008977386163389483937627958100358638455116160271655517342675719289683425624941576989518943877142277544506504990304665824696055073287177974238211297809893493755486809741483064944622988443957998950974537328898990044260505236675553826815969892093761322666503122574483482962367357864980811556151334236256450308319745273443404678212964069305767987887159217572072030087519975981700444530226918541101172628313945724153688424513889070836354084250116459299324925304982941327766658184706260640841095131436047376700849530263256724308002438844216525516904316829288317275535962090206366723841972446697410723621426384347294492556814556032092706302421518810906081612170143664179356509626963470117413922680144627683236979358280722914598843074400401327869659189080844642051414859533097612987464213721493864731485020462408891236449892720160380428116970476478475106526208959610773299648342860454603855785765448349988557492980958596274659330124936006173992855593384837904342755044705191608620110208198184739173424139243648183811589198726140919970100547103229984594396786367564029406132576925075306845626029296989874446763540093592260436730982870086178214849117270711211344299447158234381388472964414844397430611915719748399343919637748691244462968045560465416831472537821460309398857324966771574732279773012598457527321308547309211935497919498357616857170012252848585127256113432150034513999128036023480218906595609834136071710166465269332893106109927188398054105193382842535978780507559982387718080254759023265314642002290969791118099316861107960338107032530360367587801844159543290842555284628513054174882930254086509782762539741458887869262989722701368739236002072624198771710402451557479858979305825834066299695462641310260722931469181292912741480289888687659485292410348469250034768516122647626611001470966319815803571046339235418500614328716732599413153803873477167627838657545177244627876742960694332120442836726417174712329730775924884584821393395017163698351836540802927176343202018146824052723196627246802942924023549562857125434652582110869599578494609048089455292032749210559744172577029670997199095158352350707766632081831481685080410869296636216504475780659238948168264130714191880749801570331815135746863589201052399469060002699236537471753441077628709626969994845282878250785508400637673213686183170132676059147863408091114930262710170118956607849810708603116528919187532264229118585378589592741664940939460352942146885348720753859279966650896077278992275343633189798124076315885683003333941731313944139478171016260090630532422339749793637343075424859179850587326788598931370415282553925557573148271049057087776500008301881550303171724284310952829586945491568336918095659260985198759010626826154336082348468491192456518916346194557091521206163451316176896110197532480564073427035187886447236622500755134436638391887862541144458425337185422531843015199504144497040632734821362799116420892931043057290115534687168133977641809063591298798058930259463361517541258588557727795872632338308384699947601466655685602728108931793307385766699949389206157355692714525397577471661598441009385311007058360618140017956713065777087131349529664203815226103028814608167588685903434740397634437194146751710651395290907701108226153424273350255075876411222736878548980375712944796267141329005372836393433637395976542466991518051079437612615946573282524248872102334553319349063097359180268782254452389776358422417459122076513465346640963060006697959145957460087726392980880829667092269599851417590101395553623864833118975767103242370403417590805567141518007211693506160594757754509998664770946819304717080179461712124303594370308846183577668282939518244115466542773344527821449923358441733877258283581602019428726806432494315118035209721109263095086144533069914463406314481252531895381413434262765668038339115829033380682489269449713668963510735026336681458522901686712558370242675497006570323982096871992142287298596598678210116706106484457133486603058453033776776467429316382856045573707329693822568222165907459310513571086479395176640791525241420154867423219978834150452793977343497748280504856967944446989881531160954867161948809691609174685580585349841483429509721192869326972067481693395312394944878704569021176893775145179631123733885853390212953662945035232983602025190138371982293160521007217752344328623538338553921364132069221972734412544443223832635197744269296359668957575990954248926254706295361314831796196988512319972519535013958473610809712807516086020065098874605960215612221380074500986731558104210381939445432070058568798016307453652946230851340817749792460925368588353889314436530560306995073452314158205044517337473798399614051633859124193314115392900910190822627232358250077586701885893719109982204296870882182790806998575543560121715127496316205304275192586653509287501933911456159960170529084119850030766118635774312632529778839177354898666851532706034231225052070823111679151806574786282455131764334489061128718282454194589960632534212209898619615940516430254861345827896373278866531351627179199430773590384944556474396818985921263696669555021616457823838623146082156084056991088909112507165710169522111871107409028304828865131199081055697331898263672257914242149248327047097494441730703481982403220830111195499472691243112107442748425571168865873112918141967588690279281075707188353648083805671883445665755816365395616665975690497170101672407711442419722966385940597194876675805286021890883650630375359569676249188064191620812803345204659847009656994698564322282771811909691671400781200156599426349581631007494024887212749485067437035465788012526933239493678962477904414113208263283318883080115827861815115732466880219647751837604034903131828310967394162376710522850681603941717086325464459479174892646620408867479191010485158951459410539045458740312015826931126158914933744917969498665737450189068506675860706932950358367269329413814434740365715725285920168555561594565681448882690748044420009492233572741894174587753432129297770767029761721688545117324149911672317036227337786213527707194517233302839241186289182264804509711559585384730472764193944834557526010305174806739677541839728796315993489142667260900246073547747531644838049982774561159103238571318154530371848314983053039930255186804085677450307835387553379467747446239616102001929762959830942870772905360587870387833566533835864374873475114504097184150193289171046310296537185154850923006756306334962281478005067133507635673519341680190265872764032422384634097721846423766897941973631943173075156720777799611268215511559866424385345100791182322053938857912302554995017963484446553312133619867448096369594474393310087257151453112279154618862814056422069912983469373214369537748428127344175853269231715153234224641079631499382741474701117546915698546337013736005040563072334431854711450552799891256729056802679611490211054344954670149182766096517191951590091202575680778693488673878556008700005724596152599150675436274412867392341471196080816657815775175981769549429162679519929788244297106807074070943891276829068917443671696493274065922516071890205271590069272242608690941463559638197640207844507420307493377828984037512139106772454390679853232864904506072530868992187201660219928645926191114294924794111334505631708601613694041952676386575062213415778342917701285703043083689772942443021416065560722462370468873293983545477767157454014349154709252138052974168119442807796053419857131521654926523585714318342416513055181490668947242603239851600836393136570497966639393185029894376055895280046464338650961771007773033654696812946898298256844775286770863167451964044374337138336858185301419284043322345538703054960458029888366178424681364262832360316541154520281038292310637398962926006059151441998924812853521934255875230007946293263058232784730598012573604257243518986150534549341400179613891268563541900367628754904422299820879290752146376914764239049806205177345183986884082466685711066583310471876663203986169864265911110781186020984724336589090588406616174035697037938740566673197629777626011765371610353994450949916964967576611974265264830861623510332014407650175399698927312554551817930233340063444474754136953665430283100249089815577267448762501278233729053534973852689600316201332315506200446820788287623102938458221218314630367987435959011388809657206128291352938612889444041261378624952344494750559652233202529445117821995921345068500537682885418226892575503837922702159723833943880235629964522861186515970833735484775830047936779516729666501546007337485794209062871453619798952164451527812389600854930447499972352732616645955639423782736846716354978271192376414687355867923238386601196850275648532190712611959455080715577788031667387280929301178271773218414331646418961545590594902031041048981040218103584395353278334600308946589098484224188769185926620608748319125960166448143348791054497418833617848854674504116160725379197924216367367902962144498689659993650741029620184015038205411696769994818204223539698613380582717682177940352696422101154568493169393879533675412869026151175166238713729858073267619397222252745475386697075267345028948573276852576205417232989067607889613092797325160946731553196169398675413600498562461881837584119277943061961973952760872136876402786739320901954773253195062775314149744932851341063655472321780916243421304526589576815170376755973261729472026801986522883773390939889054858619431976994459037676565022082445868166800946038426651108786744118977562708447953066904961557669572429511376770522273083565170473876852972594336963035387973164376149196606842711615487479565440064876288516091917018396842525210594478980515269282971999243358057763532814714076603074514789062256959067318379148375575410116393277622483942370696500849614299217701924945288047689687572395664566133592824132813196650701217012849109331866161484308134662770588123942627767572834528890953756759235478415335698713035860543242059991342044079125439528116523911804655594777129975916709944026965958961768478116455608496787780501943193004274449912912473646448116795211541539571604074904503591825810582697691230232979084852900753206032959797014118873349429855918050778753994926433762370074526361341834549978591059620821837426259697073278030257954993654388363285862206455818340518711588753242503280047966665844988773642928586161623122688164879537960075854654034649701532590488647101463021944975479501475959911272575749232954881343603081275868363627753398190710916408921399028214937478740376796623896155243995228700648630663167086373248110447898386393864294519672957354698132852255368958005939088971163044280168985118496340123192584155729903969432403969554227568853239868387597909325971347278270656677956799398563150793681475835283380401380957973006178207332316598881117117699834274993248887274692505369044862296385570260790000876228520134599893938654835840500721534059223455504265752333691226233443729781898384779690614548018091405883084091351019602815888820817745926128602871267563736649974321859801893377367024401128010582347401597635743217192103530391544236643816884542301696616411653741561292655079506718803402080300131781145453816924337720132707503062044212568782391617510310139146122120361630279575322617087561218720347564164401875363008495457990935897700751110264013002740341803947785272797150694875810844018410146956622289296312283970073212518205207221088898261574854568976375906693600973709722847486306101879386770900774824943338344689129846742890103002272969752490819813240958658131536331100031316391144830630574193734637453017497394466855424057084676915000788712225204370212487964466395344559978637191905203194093515185067362850392918923471683704022153959066669495034360673398662072571588229383699457976162957525449434746310547664543940031750574137956505756969663847915426939757757542572832089304173374799057372484466417712242063272430992922986624123210299791862541493418452698558537131115427362754977012942710815742504905254214640541307380852981350454053787867265382467250029706028715486436129842325881061372846626298706384313159033064337017270120499886799834046520525031722752815732454664873970466219619761631667538307778752766080595626315990134276678333604025544666196650741151294137099291515534563130868074052879833241233470700770297841917941498951550416902923509338156879821275076036947177457885438661708962521741437224584427832883562954397246359028584377852258803507907869610349770645348229361073062484956182430019584170680612578248397276321951491137403922683091395242678319486843283655574655549025495554568013540411478967396526119990003429585076135537663410272335765017800062279932397278445787728615594139812208227089677700539728870309003357592996574975559981331903842849027068548714543997804247082901865145195517442732176203394324377669830422184121319653918972058010822888450692877940430914040154915937766314917774404297291883617502097662268255055705985946097141573592296089551817081169530062947234441072482343643264921961579800123063690631843775340363566481169087098851593830071344234895235002176436580898942829618668842876046025429423960331236788761143020863698673390057071721190607399467044834556747808048989752548780849074260610790351201330659418658480665901752078663352421182696988984881560809053556176065091789553891409908822127860835160562840046975663704240486131897819352006126992376968520804955268241338695372684153327627013033332845376865789216349353020992501764823874162556469792265550249188601284482178743498347936838596194967052435623858055742031632347306202400096674816797856379919240865262797010371862729449540835237678864054614693172501753907042889963502986207962206229662182576564022939321608936896992802898487823578247641577791838486625685342034108621540437621523026203249831587191693914423319742048266669734699669565536793217945323533343528654479839396235146024685066598849096474133454573378163109435984137664426135359899717843526472205660292089388048651426655763909820416763448570632561367125729052061070029926388460758164058673010798128189925052650718262119273091937550334452857058327166240516009292647099570972033618056261453921670853351995003815189030694916095170236200966817742359775085029986328017382676064564151147367592793645874646435017034223457427818682430158288331282457545099608884165120589769643781028864176065146764290960561176701679432083028168352677051858943574399611819806629763250485047421188832846608865490017184367251152455931635189437968945893490318809036367976915640318867662616162329118234713879007796631355092013775944040641925718915077237198061625591352663249303196015974478308421345690692162192592499874496710297734501683792700788316120926953171482258161666471486873340248124480151432968909319274725114441571061552806024251671826511885110330867566655499765700440157781215620875151196367208865010137509932048278884537804671117682107297046148562250542293302755149506770273232814577568860133020652349642554777089402579899881363595990814809543092237114333284340176676141136078875010048501594337368501497857546953031253572389761981389749423532592440261251367273861272461204983603625568677594381796576752895760104313639688144852974339392086150325366339328311094024299549072900718024609298689502851341667247642777653072745595689825015813267825750398968302385105445938549123662434676564775311193271030214078953415519264591201098667506370145901480851521378462451065663447489393061007953889911583872891937638677256678311120623745737389439889336259174771500946796120300822198607526242101710627280310804477327733816524080311838775354021222030832912764667576559760278505653481168148196405396186119129194998041856180423678369457514541118839543302494256484779879834963132818269718583231686011918807195389978787345447930590851310105039675935208343836203414781901411871386847637257853538845168324909883167438556076468670877353756851790566761453686651522935221479475638593273923019012195326051583954484742355932829343180492167144670154838674857299706778066555166187035020389943943428276457878593861037505520454344656093397937796850591876169370359454450612793865151058659370402949538746752458084494967225450048797846055978445836218212751745511471147399027247225899728376828435043134348453808517923912590191260375326975458997311946149534230429420224984941172600170292526527281194659675950976439959323631901906073009579899633395795984777942962438696428131105240590914894278886594065629368855958436270626823760294987018119730465294449302378163085598819142590108519229585310084400933600980356283938183751813839344463876519902416754363717934376119822732230305490826894403152964691218337862458861001380870521106477576446117080410058120030759920886074235194315618798105089857468494170213789579509727177699476227961655976394363465164772109847527767076966241707960724894963914606462486815519945941063462473767169025524657095743164352249457797523610897635542484586368818349299353112611275204560625943788471130297094075746568789222980385400771559133690909851129233977741206327476619691775121320060080596858694796084879536818635614552456710205071466326411871249953288954201786105106146940824340942608809458947948325089533367668694172364322907823513518724759867394436006484199938458313559858623989995465507368046548190284275894697068171774074165049244974757089217320631714496559617878506900814360753542615381205322417285227467839573844147536552023771075142999097654113473882021713950018176629610149951244899866567019526935626381540863773364400958510169193569557804019098604406787301035834150837683840502461404892367207940643546973804627503125961295204632768936671476466181007419790120181814126315358338359042068539905645663183603494367601949982570902782350299930066457110941068988818757037091927479078657260320950717430662560384659520703458994333786243433361605590055431197765405922983736855938681676492400483719727621246110043582033513660020244328264336372615907530978104565043418560349928393907441748075134733127897938790594779644826393936918428325077197642405223468471211250278025396128822457360723054301305820608114861404063401523200938282439264958770550429325602069144898965423386231157784679409564895261985172517349107119518138499441226311229128029740697900320405506911005920900420890141096406154815371949915127337669777175111137217674845329342060351833478269662980514526133966515617106248703721025974470348696263587589365754123496963311506440598569552013867834800839878293423724717777122992378233336878765871229997705962464571976443955193236150073569473552964355178600252330735450079911496919855229342190580781594658515361163366494300788332019819721318202360131536428816558699326240116319463528365834409619731382685168826174266428566436597125599336181219838717049796287465150401991188100981129272624362746345576799681944219279370240574189128354501683891341136754868420253149916236493723395462149008921689854015890485815099758866473042356868910695315048541370756530229329455757394367006941026913997955071477046485090949904635370580463799908464384947354877226002785220426589054486932812554966144866135900917329992971901695721893457264026991155269005132442835342362405041175414103812317458136610777572067017065077161503709838187554273929042328509688544345758316382679449220392822989378351447635383396468914509205798559129885007241007002073541954245980184795353721774320842307486010358536978917194183358217150174445202976670702583283248710066352881429356377443024924802980633681417615014392512259549422185696721543282437850109764446544328964314236670698274266436912552259245510634742416696675721747221928755100365510616043588689746484864526914665147141766252163687155484146413499504105343759602130767397575331176973001450712853674665489491206840902515855587599316228674101348409764670254936147921543920179725630022550024406514244438156700278736838278458526587777777363142255989377313923272409087802760229562893760606257435348756764823741713268893711969844343518063748976879044120462930960605025408320306373539488786324878403570070741627477631661383063370343638348830011917049119476606301611666917316752149453024311826165968019546823754253592003091022438482625412651732422739785454858650880849044221728814174197521065266865697248790095230873746326056213329802751084581133446446145613972668106892459660730043325164050105952496078979810877961162942371568001532500420079411516384067609648902436618062276956645650230215240942554131245084928718837466712842923814194317065936681500445973143173516738934441663341565717465011905243066309959271409622466426260544410622972690083829528294105583306650665933980864383377633297152718912236039756587390317804493871506916901458693358220869677279875914098024264196406087891909067686214596757838218144687889412092352407166756415012678881474996918752171623980254824134115166291038720378893307477207628757924201534154867121593393770994409483829792825425522626855029858280680453625989789944722105496319736243805841380194834748521434544778349037849571778549717062882603995288111680091870453837100578491142375691473690079645235220340506707564236982393842594117651215793728828265269246604296411896333746768136642900616709046659822614803771502787433175705091191811367605704198129005496152022217852080289368104191761623605535648528433914993343943312838384367044924980357616529656088971029361122991306196342606782809099118381015802679274991309237798457160008792966567646530336162407421971836323218756610964144248808564059898900070807202359935123254996386222365170497632637816673247102572075433204015125567304855787094863759668943704605040436040062570702017339747349503701729964952820310559885089264009443020831669658622006775169956954114269139413882207606832329081383001418638560040360831480242008583755165868277149516989320516350848644954119381654722923065053859763716768003344243380656364708933966462959879748612942418374939428302646707124591640057541652164652595638896639988797414404393628981549867253900035074971024398836876827221203781104224994169711345948431405838818830106322906810900499319326387563693791918119612009236639409248486090975040020392139220291406782235379278993810405702146076457864758553954451547139976090480311795468591470682842297122216125963769455945700628506039733893425297461537073493386157562938363564761784749422879051269838713075301784229115169904689936347338179432191665002532299039211673966455468014387554124524780726135487257264363941281531914297560241083164896129659216592943405281620194430489712896267445123717836910587655903305646682906390573762858015707543152118638071394567478650714407262782333491851568721584664084755086667714300089226201425841460825721451594779747938340729620064035530342812438621511687422222073648397498005732018799135844909285486006299095421769036304596302202411863290186824272674502531173413391649466263283616574260996113767465323649803997640210703273240694475648414679051469582696691413442174531475783183065682892290397098951776867320735707610585058635482694460701710459896504686857412592319211828240218631032814503026752893418141370710203969510025537430251472782990411058555130951449666084365916156724160709402232520669725674433123148625250048898937020086709958744372663304252848408916751353943227219864301747857594386661178128630267039739048419188305394894357585034677038186508799557682150809099993858983918696972640095878240782120075303426405174352081831663341258601392280439320021537329835111857592166918639753317031752842640729661252406095179634151877759380261915707020421884512690830706399795562063498354492743617623092276806778431956374298235077160734937031686667184126977119583096375257793554525043980799364910266565101527249016364414291957610320438940218584409678428396374420450220582689105984309357732730764446438950486615416454178697597442835283171920335163598051038393562810539906320987800594264410964121371763481593294621144780638147050629412549032972215035215361757995125601131284825563522844088456700664726159772280954008029119787124697360475201903120091055731050231690870882282651289180155768583552776863082747834319016332462407073884151587456220576030684160516984726315945287625744070100651029829831874924271511661308700103921195367753402633067780382428506126631513576691079879631752854226859081022623367931745610781018667188409937118655999867750367458695713526203516229799214381715456912239697372810688370676733247513508836253990045178595722094619469805171573571692626391783221692243566757608527688320495332926834763304635990528541590260388444115613803782402771749915423273915244735275210432858047379726039410283427871863189517060898798936281449251691728727791391109475439611005913132956469224839068657884133693539855426330979098196978591871747083429447037993122374870180896663717575227164936571033821029166159480134487221516556566326651673034375117127834362294287563520447597888463162365401592097127072731936690046099917811754612753214018914608067936284616636853265223423916849317901203652362876880109061833628445425153296583294904398198492506333889020836936462939197322758576082726622161730428353713350173032789205315030474087960407401194824336725627841813169341344163913301139970064276246697196712224036594627071745848733342114461001705114525381231667150953446698221183884744098291399169019476092229080711495367495865579803751038620555571778893956220243729555090207002200687262117917481150115874028741112779582019436737527373734655391413952201897549604706293217480678274346392416463186108837934945000268129106310321305765832425562140155269276055645976146925368755206159902419307696258388794312788708233424312745316932837569755832388467569155944355476549284692061632921528336902724091000675635275845499555982139226431208080803690888615958047994227515385704879397670810065870518505192204655825723064605353669474100984022691961632696262707109952573685027299409311684914345584217935903688050340740659255604608372093255096141886685159040848336804909463812241971729059116778355060639123931128607121973141356086891955787721100440254029003496000804564297264015983191510155162084916815820837339987099880161169804634267149934061819491674894843454471224700043002182549560593144905579738973149005273433210907018059764787263258938827071988318045813941551458900382599158961718523861681925766246379255766349149373306592783309287965069582895379760891988746469943119931350724825065447187647338624891542307121516145055029085720494885960956623223211835551473340655727028061969951344913317893470529813905445896111264218466746359392830081577339618051383216299797272519155866007036173591677160495387102472786020081307873611975358739804567148862355791570624827933617875039307117842957448169455221780660120290597382942758599092399195542614576646773598336925544704126117897740508198405316214812715234881860839768975509610965888804791672747284979084980767227935123025563479108413635505732549577453150781219259589830161405573077879975721529698533274826352194441444113224030384136527475734855636518599297146460052944816307253280238171039450240527903335059935565882068795602990995480473067280776977677835736458965928719641163818838213309305349486340220378000435017576235606683477357578877517827733305117118069291536952287623511808484277609210328521601318523571176199122044234330724609091633293677708158728111063918481729536736314804659769458990417274778947048101193251514795066470628596299694272560606924236191067158919159364884476672022962479011040988162442695093577699456769483293904958050099765549985058147411952355611035851141248498791879012168277771580396589644523571367196759070478917652243668773880656194392761934635932140683635717472529029071452972158288301593148216188356264122662131550812532340773878236405739990419587242747281527010413383356114367544495435785510877434324402996462520192422430571011566610494932898992835660290231532260290320449540262632546302481384894995262565881598344352631602791878675814413514217451256723512600544630256525097426343095331039920360296736354549502086572883732361367409798394343483296211434103989694615028113140873907270931852982060593621004760764793314279254390954704374593365920031099010705432894198908548031281944538633431018815533483505251086729709894742716855858675989678162276169351173523151889789701337408889120131513198706191151278297117586995031057138756290763902012438771977415018994736831432698113223342561415379191276702569445830771721757572029736950351143255867378744762616642666395419813927606931643028259790767029920263593220428392948092206318753297073084643618264651687778827965603754293766023481333787058653634176601047867953813598441055360562563000486921383854180201385261088720096494082395309695846541969207985228044205662891317084933504632531659911983379482115052155732651015846077827168037113870673893824907860867506136653322505375610129696051758891283852830744721731282278451460629876357657748788064139958768529579774826073023349182069823549168215600866560616132895774116889699362461104222734676249977282915196568707266026209289157736436997258030841430717967552665138957337683130153944853853927088533517132619578718047461362337681638062801390105493807962810021869439244881854753842847890390939838286482229917968515219725354448378625777583425066125257589226892168374294128807169230185022757308159925913801443004419913722188060945971805017999466361364486587561465129617866597351725330230501992432084320943331995699395029960409932487442519039773825783519517921766549434457670170144170553530413826931641196611026729755111039573526488750462043704758095537807278091142386821506688810070398746477503002359682932937268196371934794760525272086187037950541081837819717467247076086856413508417437875261588450072027370714231583407533946089449531701340925641544526852836337256135696307977947641454405095286118247069729965767733674996867804603653929088288016447881772473823140372133025108653108651081780086208963266635479193942609151641703406472619128744373036284170461936056723434922229574789356082162036738589528515227009015436437850057244179040463607588400649189928711898583864803786277030512671873519643594223825096325320093136484751077534636734377850497534220972011075190197603619726306406104547672315143617792022539541155380912355930126375107866661152798635820189273511903849356086106771501991417392904578070319973366430248680883626724944039730841391671594418524631424107331120950569465706804525210621431660388422702314266405101064826821544569157318496357260639377095721248060481193482653810171029341669985900515258133511498617123404154327690655169295484636731009987130352241482562436598094570071956895712445152580981499897047018492331539293502471026695103589617349961888362689244982952800662210120483759189136641668279518226958068542712600680299552256798346907098264881832637132082731001268585684007914224827148432317001902256138022918254999352711927822577420244494784868327536188994128454850593951938140276212374621167994303172730161016465786786431234126769688681754541577279497175951254698255237200451468120304206710166839609571122230990594325303378069056822843915652282630079333364990178815278842847504696078095449758768739236243781408814487228411533305583324268594889762840882860099288057781188099353264056773415264640126069630383107922796734457063655647474027553104908410187850485399012258695395862915107803161915328533858405472074726609090462290930175198844638915781594316559581703709539389495552642054871942877788094455760245522328521410108433736692810233851379849990644377724908003539241921018007898017747303680554085349133167904660230989571093208624863256622153350715046961793316224380627753317442662113519724088452522580806499821385583198920161513088117052009161274661812954729361253930282072269524158256369747318691799559279388831208811743978505492323254965897039192774472894007154552738116500790335876910829230684534184591447537474835465997162497756933280595632398430841089295321338839488856923970621263785861393437689101067523602812713062804694204780062594212228547894285739135741370586358913525452547615185480651138600833511429687591363363312579914509529391638892536171178148174971273118016228346072706784163472237438081538084788685551447028778999238413341027397180613213319631388366268775348206323180619087203421831163869994726101426455910187704715314021502380524704956594768958455204444272022612828370202886710180764290022486627093572437619093934034907378237669703219691320803608776379421869226768722865599091566699100854879303458744714054449530216226716270179193354156199480501853536002082633899311124703958640626399557320556354220785055318968518683444746079267015678784123064356445162427542744091579463313003537602828593707789307165249410889482489109967581500592482928409051948423600366376082523857827844295372061871984762936186929432582928892308016298758197785469986510381383299101258001023413820499940500496262190165970580895666648685274668355998007999520332218371394949692252981475954878786073515065673949169715988172488204574973860490901108250869324907457409307915892611197061482880387536465951700349236691524253181925434619606276528328688796096633713229354302237031435504874734927923989224320640101587876995027183546484366387472770840295551598987195397876714537323252791232092849203427230229269389615239052375337453559205151100941963561537893554425292681523942453971042850928958912782262154422966266824380994270494865330869576179104751777575727947412389941938922327695386708427373070034195342245952660705963909940151741838030153049269516440796565584020009737414689758977438279352209462758343908946183371211585094567951728191901354676063684382128830366463115859213135846224744694568540889752747951627055389627761823737549158453993994148573422577398336745392519357150473473900673328408344748860595590297941363751388495677192130580859685309483320884318615051288383971443694546747616450204511547371188175429646884404142664860020448263030004717547150193237969345780747424298206583908718473230270598734354981173210043240813796421858779313249663283572838334820442481842121218648343554780941683794168092721397734489139406633299192350411824718587548048234829026913136510224085499442845601522370907211327849110450321266563267047136539829469499355328112888781044434052149057458529514562468618780233831526019847118450278810462023704478049758154151011405836175623544468814541347536197592083327273319732646019739229798342566440769719522462931462962566645219348668662905366772680430798600360932573913446666975116527161903944396701961982503206532204878270769796254295220975827241419529339004617849223951480628734350493786901917866777924878777124421653792051596926202660864871576702070488489438673138003782677613134574923588334429573173470399333062723775055499105881014900205620032953857839398264325701180410263360599748212289934401173459115662011161069428953877280532923893481397558621381628309467454340941098481180049953790972513749288968406366207493428965053520923861905245654829195371036268998574344084931027793062843150736847230609246244502086304424189735367302095458772436896223953453636130002754298813762499777294087070058107017971715012288914915906147397086937742587911986008012512982801175314313446033653338213563034294607943922109620874294097857921222660542740310893938648260936935225997502861261846458920017937321185118010705069597285999229594080945912023783695317653495384142103697229659435088535021588343464841229225957652869146231260812141203352095929186098166542732824288620768320611220711276231406924123620850165421809179237753738944459556955953797369826813305558575036726663195572076545675475402048865061808900217082907717490611682512651526835516094992910774727549075672608786250677887242390382262069539587421139350490721692207064005976395016861542940592512008814193191150915541673339463125076577933165747933403682727118327343409816866062555901328648233914980983772512315995684893142835249577596884808312861968581683330457474828071843581490146338483288969657800730740333303911088800695500392903437989936747845584548269265614938477048671240762715127604154467634057699279969210456434587025690344737858143376560519599285925118169818670890524422190096104981754116549492743640204870742874444716773226337370358601130250514773206290417587985637900734180018809135223078624883289587718141637526441443828559316272257420127441199780193964842646156258723337785225534375663696686223560350438119455120742092187753136731779903657744225726398363279136209197394202113814276070504763145718034988055880634787961671562382098276408258542764847108701860821952247214787579503175269977113413071244632025168589608367924236901231752322015473026742607575067133991503721721368219775563084137024406281938897662143159942270186680903116083862389767609033524849743730560552534467123822879325220208064968784800308866165932504212938280253275516302361925802918939100983405526953079004866001919922310545005735721342823195168016253560284595259759802988786770506282266144897459374701175807779702564362533326962753829862021965770540906615472263278307758715137824397221845973281212387792188395198459133594805535301814195995185638250664474119793068272568994478923578131585362713183626349092319199356888488447431774730804282777308197206093200696238307717600477301525323323625304604808820228342505180350672344246052456010886372361015798414252592167214011195441870761865198488834677186607705932658450767642695337725574699653178631320803256257553785164382501454375027531393458784433019956576473723226514612589952984427421959440643755504505264893492664985814482984997742983955766602993752281435052617840135895073550671654241142992004043891156421685249892501776071514842697562292073569446891899931172851407721797151404880620613167390993539285612625556689148101073724627987755823892526423375292839797993456442126312388730232761656275645503596060930953915033977278785560314246412833579965140489395901887822491624889015472342885721313354487550485464287803541300197246075854315704136402909528155605606233047711463567979349954356828380117162932908853068805281123833279227604238625520287378825649885089624230103243001836764345466175777256655913889652918739221043630422354760009689118179845556335787626565126836110607165058327683325049075579474214064985327488437603873783951578328051848147124122076391457039555854624795977695772725039890435386997221274117867336523846099684899218527850432160606474066969838480753544312250362535658076729208186796639409095625691186576424008292232252447681735413195434698279923717363059542495993711009711291534365090959374105230806075962538704909485749624292944654221561503121509920317493997796875549196587124186639953007567501319817941651176646789867007520169124255413186655100746974237379032496880877939501963434846970359067539668197940028358856551290037528719009280530175216534260756229537872127332968196110725101411781254380026198116060307607160396565654044311880356346532965048811477890678220352278503673949072305213116615096428615868125380571095745480441195425739911853437824307620438201897402810988599662065227381065050503318496154146143062541719769198723037661083426629790199366402664425196870143678860244530632078280787752603861908428589595607317944622377348884390697513359926271950075458467005923873763547748764301784613890980286768797626835117272734512010722361781414528190315671673555556752445566304346721543997831627399976890879832678731162625688268760764819075302116601389699873288342858216330000263985514969075449058887120740708054267662787118545678044791648434879505170413016071407394088334054007262744110011263445671936549590857786786763179216495859833111144606379095187536816713354674333398761510327448111754394170010650825396362939970002040191869691583794264454812461372621285998966622518824886125840829446546601211637369160222020166095251874852965420240568362637507027751283941320583085201345915943590109634797774117390887163891275545951294348854351716873520732307573646628257838472689972232092461149062003661482740600519197951335527723399315967665212759266012246990640009493626112302933077659363383451165916136838696103505928183555910953965483414588621828546239639037127592193344016852714034503252894598354093935654245778208843319712984126147350507357859123707995493046394818016018535095961874676266203129280416331644475239180554928950434041518085565267428154916759717213513162191044737983437928551319232029894319832410751071274255060798816680215617312959582641157964446187716078614055859682334167613168317243654073079322102439480496278897987259321148304934608295460884556992567856696667110967074195389602223370881865422288940020115052977625332371785428676859867182688371742715491932169259499795366078404944375856218751886393801388499025352485915112724481448943612860255413238179686401903566912289181397203367500992116475526361122027453395974892703030195097478853669706929107872996052636195793733962110255679591141223282900231402052058784609948827521953279414964497206030550867327858498597694599678120363454005189840230030002682747335964858228009584500047085006266790320962528479260493565088030133626926465072065990342615365959423363626490569339853762513638852079973991110313199444860230837904731872116804533655257801733685766130125125515698476970201856433945375021969958028651338380993758488078701356971845830426467605261987769621881347259134679321973967159563309094255525926137252207284334214770072154238860133720065950251887861721639743948124604093386304841931492201288187974396165594741178069515383399549100537761595651958213906705168973258779333794299899629610751399493401275962832496629141165428291487806766629530261652026587356063967692690220645695628358179905387843762304883265085423205951470883414100114654664072241627508796085013611149995197738978020186471811853302903464337188699003941393813139761149664942991035658942682344331012784443830472500911292999485396102656695729950447211137361158932313486978271638236014399828989170620814376579234671189440277150697449900495485575641734682177921447286663905721625940407482761988227421161357731033956210413986025328032504846305117578183697810948466318822769186324586847160891857627053211387922882833096752087481302418724176149621917540914338455025324951906327447926849313928787556861733858981894090389334922744220150181995303004776861167014222218551471745495562845585410520278901832528235938597254302512750138363942134374219341450614854241456438078298316350184076622392964374915153568313462630361889647170198815038297585671131508606815964722396678537865317498120572341931249210095881780595876140591558962031466274212070234348544865301904241853804544574877490252984727000306533987626458488616629879207664329939089295956403731528895060271677353363891452685326687015944902494889126701864161762006978866243749671763442565222736291365339178354556316672360290649928678122181783027352933474751255049721427731405053461533726923392711915924998520277461780650076726913195790222475417039355550770017822046009122889946345399990213274111843102447002162453886397690539271524530743720512754965038441740710852865542819516574541456681918866968051174199803989825121129656503468954615562829963802760102795408413593831753792369561942780291376253672120125797797119648171261629597025428583458470768483674254866422894635522536617819773933848702647235806294848264986900604890847571863541173453639005373752161426092192280490347251423336711371479065445970533782314642308927174542663215906566982674504634612212720665346790335296146176965181859027293850439809646866409644354955767697674316957521758962740380508221879603101203457481446739370360579787814763128854769634981180732928264154038729605750968212789766574212827106919059822593991260735136918375819381246354622021394556518840383827773828907296158183315221671287208928424886943719031219096030639122565771486872965146129954849014576809746122090752123119970146295196320709159974663090877119253324549417371980357732328781729503647542637029606628497924046192158282882929954404854207434451904267756908605867480765733449834975845306025239365616412577674308188854676482638760034028083638085511810307418698093658133091644608860947786452656526714654272891893648351644745330523296145544217868584190267774317189058954414703452891541960776916601260187548909773129276174890609206144800326663395402723490670425731345219561562468972614514726459313570824699685750349570615460934109159583806834476290508452701207907107599594704047604431187624984860776954821040634567303609541528269682883272889335329549121731068658746290770145223628073971400644560545765815648820537768567011228905081713862287653527164079470514387226940028374438866913264558562732095748149035881106408478210074562880576634946448737970869685658057808826887618085994822789788673330577908565748179359776184169465890755150603635841909916463536223947743487250741813602501565545985078497388445369545439891077206787999869474918609030035789845278846488287517293188155887893473715479552156001050090206351826291782995581313392971775623279031217818379864329825781354254422810872743871427909089912842398972284779936200586416335591210028332474035662462710455827935167254924367029453644030458530508514873956084856936570358088867707522175418855502306295165620536000635905270755005404988620838919079104854484048003039266820791818680996308350364396355074828722169358010541693700060039127017299904504744164965886730615440389586591813001136552416511938088672891538478756243492410375575165447877835720651853575620838166934340738170342684324972052052971847736652377387908925744210848871877176796654666135161942993166067657849014720877281370104492499117335093657319098436263218587574319288997529935806298595091559832852813132518859712636025450172585129299971146518795056476768986855934473435308796679692707108138928417710608297325696070625570110278345891680774071524359119527847447801232017837862921936568487624454477157342293497001454867780619530781196489704348824220627832916894681694131194983677158430349989703940612167397351166027139506346588874618852284290282170903694352393234620029407018887739811526223256059583093822427736693594351911068108609796039122213465149880486032191688176550641800938387017492572608236909982753392973029926881386696979805966627854580116779245834571169755453335889835924368075393608945655979394151957629834439460369250138614891046315479513509034323846641103331492637975491851657381650396783285806813633440382543307423533407837486850104669005196677400914951296398500330297511117631410537102560590148544901400081663710948696864629385557273431047540085867238598763839984686776281795689400920934255747104090130367209095334480125912665512893288040070851850122097369081789537366573920727109546841439355335419880435452155402956573563467672651452397702558124357614570194829809973057065149338687915118335443159609700280378902016994074221404332660933242587679920163560154489408052438919123242238029709762822377700500650130099837916326823263764519451050135742590405730176990573485171914066706444079114082160269481332381167747893639271435198680263639017425469199388351805630631713273468699510872652354213406457740775586513787994929143262783860885417327430696835185668582867639012022656932081331248525873568414163765437665665346381044067006592558396976359718823649520334642393390489932689152491498643673332680091633907182399224226268686016115248330803360517850345584771461191984960329316388907016856344532120754772093580905820921800813020181790155524209941866171557129801537225611015409733949673587721362405537233135996008868270324283356162913863805327953105525461188940158530916027194972416424362041544673178179999910594037503750044374888488071836615844077706852585343864375334443180261643393760846784329585009050112693505702143234759199239792581290769063704759025207819337911847113984446478414799767551055034970021376462739873185528689645247761152417484445693457638570477150591265573314672612668366356918838252725371774808847992635858905421944564373805183683704943838540698555355637241438663061018316898480118745584552859414623216896898469027444228975353223815118717143809443845891163721759699904230291356122546431672680482072384898223652853317000053338383334764189110399320774464961150079009161095341158072593307309929294654947783059994544212567954001866832575391458845025876090940706960854005491328897698391029492667802885396054711838985042938957466380278764633548116480297344717742253703756533129349852597572161626215773598634177679778901464861044546488235148659573477660941095332895762512480721767437293107074124993705052080169646445616355126573110466786982940069876108069816663840778302339977323166656026168004379968662996363972446833479109046265184445398074569268194486359871876331347538033051593328183834710897505316994570010416527213741534805397556665079915717479767933524673790031906537620920927605149083001907805408213854987357801000312060174333467404328915184808361957202611538115333472722565744662907270016474819463973189285555531298016560772132340261597397813128696749583806812213664953247829039126020715312483078308504751538540083426306441362818700685516472431763389126213854566774185930667914118185943209489352138532135163615856760214217098246078060799672071350543550967994471672384676812692017784906032680243528741200602736253645750146477110655078295668613731518387201780686052499999182286838072269351703478833619567636159666274939986878971044306738701940053252824627023451478052295498816708261475173510648866112324430802835575479247621152100062534230768472082726382707947123248068426264577647950897937031170155849106434709585161062393401949035239776252387129535889990614846320255277846159750211598026709683296401502892446268549492301962723806538056377690543154234828221189375510916352428173108516160029610106309222808800720368712225254191521606295480891886115953348466927355921183437116207871236052517259857259534264246723428433689105811410757658566975769184669725683767908279875599547268385528513151124996598203137950432851484757492091503986952224888963883874776049623717439421533665899239198787236284180379408696265079488360074386370534564954688739395821787794417555731755805630003574697691481780839336235453080740960876416644478274061708998309791313687211705048005728881691708334561793150063152889230876925108537808860247729896281325052442269841538393884543908762170300304544424372441362494356480334000902194593325343624748036696389609895998338019039208394373122161437746023568146671497874077180790058440723621379979568396258672547249110589538155912765416318142658563007024849681870138796285327069607385687354594238306590141801697338817921437552401530340791892288269857936701756672430731219798667087010859346777755003878765994317763162409868636078642472554987428259692939504239746221023886752916127071094119664666582323495898666671667021269002711386383070253627663633755575057142038449430421199634799222597071516457849624765463256571617628359498535545807900708190248732597477070685489645582902545324461234263557895354803216156721296497904328557566163841072245445856389971320947357886205040164958499701540709713000765072499717576767896412365763365500738255096994356517690824763133554363849866810986500849927450121910207290823303637525954812226850511323990991170902375727333789599853255205634382782657783068868033841850130336187981446357918241189679342322564083220277519216710231053006016371128359028923210572322678541929672375170047205199560728191282652952509347982470666977613492271374685930403839159954043304484874815517602265380251656992708183523517392997124684297792103109231328054862467241253715858956756333496260595279700354446895534622766003532801492289968783358083790116816614227768725128031366864457073614820914666547035442196496899303799156752728301485003573857550028951873952044353952623151887049729220937981040275437080565484121591281989808317391983086523798393883208045644931126773865912178140452389219118800598442515860384810443792182635337975002899252902288325752373278520209241148173047459964931906617706371168846767723448250781311388754366377777154677000226002926099704496521209162885332086347304150080198631512091355880057195458044596189845597474498665750527532098312848794448993553596857721276080486440029586693722345208026625667259369226068864040820718649964591429450702666911889741960843879928538133020364330118580641439792997757492543189590120627948163657518540263981676400247502955211447168484715287547535472708485837424334119034895875730969297895613160137289376710356161265688943885316464627867714127939237979500906403207157035629017302492260858117058418820454836770282152749754021139537151179716954679311800090276786979045656077099768574378137393342859350562449719815069156388674800858418208907475435434600998712125566967942696963104913713450905427278259833212314964358271935663084110980523464133770776995824923092338387853785465458695154601840406921014615209280416426560303826769917807979401132685927234954496446198841491515306541443688245428484077712883493324738518690442926468485837276282541580089747573942086111978617713092256690294448669892325179077141021434412749530323780289706471885066685244011065419627736896945548737308147921516676382847178098772479990769895425196174900681143093124372552913353046551080670028397686703514137186653095572566858172187051279669308918440044588785833276618012616473384057717380120852886949784336646249482020004463402787531980288588528554770913795059293484024387291509287620492140949649958853779750651536607214764317226882536400939365937082998304219120557181834067684103400647802622410829713525507331749237003443228825842557757569816494662353504772179616096767787051830704682069873705742997227004361214863480624662779602506774976948973065190875439897787268995558186330618489234497457443488802524145923925442412869231395474292699418801677800966013181662907140885110648599143356111122397893786742237818177319722701028420700599314550433242455399526835822493782224133872425830217396554818726652532346609044323180118621556500244361447769035840679694319065621731232969051092120456230435489847574693990711093052895227238073210912838090985557593513080159725885794724915950693392571598825509300401411649611670869946300170319743013172450248390676240001503643096535737426845737157611307195546469359413360578359646237162277551743142449457151094040954318636287407607273158557891521352023357077226461513403111247585527518289486360332594572234176965986828553070706489381548883382357277035769849256634700584273478645357424305423932557939121937807893837131019041184887685714087866826158575252009023641044429144203876264121313282056206521612759408914849121171499439234797948542003208314489912475752839083684372329025029945222096252116822435192087715267563844244565148035511297978634984952184042464934388775105305075762427979114107156559005909378524999086371550978443387806048236447619084088573000466012053354631332841851681059071311340628296922096818462139153062198405853379247792720285602971941061294326900597972667093719709693856560344030309273121220912318336103062464225343129501047473078420580821066981990059937181068472437680697247247795024368212121298522896826520496492148016243364625378521214257341118731611481612026355681244469189833894878889276400889799758115604257020350383317365579310884102284023748980319332731650819703461837560007828010830938631271180838672944499354345144820043472504997883775726527474142488218004892966328549237833656437796026234847424911650743999238537182215649778387733527050416057322977693211507100067260582046736414840309681977767946297659904609888538575462048825162487856919650643882428362942601443453234507582589439400904610525155618479652663373311078911125135630500096010700958416249402896069287521374999542132933180575117795431237183595576934930708173721964421800762102051365732937395091154839164689701003144791097380148646017207265174090451564960813812839127009859498052184918661831456781519039446834140643763819521420952333488391491556113573972118067156847879406717954589555961687591299371927489280291865478306947959540493137633580046810832000677402752318014274320557269222593006792991025607631858177489203367008921161770487540499387058526179950733446988354210794761880470463782774256276381476995748630289692795407774634704586831338760419275599957661673642739520753800648820576922957907032814412272525672457809766651906967133805069854856300551216406405479316547009707585195712459203197599688737394898282053039941713496084057250837724100784011056729448075368873405714748807205495330013536219758415096056004960971419616485054258811238194291950460263155663749608034489115004362055423146097796490631145096344437886852644518418366501348998931773491724822056054006225404346987645175103688712723722151653305942478355979199599777814649052564001325020972259499822110999767061832468737490443650824351523422345952490232833117108521622202798373650335831367137168035314883276279377352186728974867615319691155347516308252143758426509146124059291203009196889744500264467378194370735556019544776393294576142778497026950448660030032454154096976863938435871228682514444378539130595545992018419855970159394734776136503477203810764937059771114247012169717365877770005480756554914059875872567414011387053660888717207087715519373399729828737741074250385597519483663881909224567212023577532559688331516329355588044067884890459445661153406757742550326005078561569468060476520462978694898180243153732817186125689717569155569913854439377603140582497472689868900510446645205775173108295778960153434852132778863991200492144004554115941399257545005250571259887734086431613041489361623121830894172987148854122388782928647215303845932224714965293982910808671409190647974136392047352189472606640447526204680214889200123181679817750629045820766259915708320072246638394034673083331536666763149977185516792232779587790317448604392179511773606586591400807826474150405671709561600958264611835075471919573202255541711835982498579613554087916678996870899205283373225537403775800472000879980392735494971373596224450963797998720028209207241766980067250367077492776400008041060762619431506953500300388783904796588409741417871277007420186567596285190727845008960445624397283351071913809606389321719754648486611043927665441111046432965295536470457731098278782424970195149824155909343123372498865580600758573808716266999874492097007357239538482083886903591915623891991222856333438572614137042769000870818655477345858704449532833118383238286690647713933815145784798641720036027344275729872999678731040857939495684041417666032366410215197281735502682432022568842273875627193719006374144034262697421568539546602158136765359527885080083639711033241411966166057489510673506908383989945099410616994303590968276901805350761235313835296051364592345109969460243507548744432428188025028604703243489876794066190055449007428819510026258164107846195791480205109559920800441124364323628719074930925571949323464821446335473426824672864823378889429243868089858592992476269476717563030484533480386361687789431378143229267978729854989262069408807069760759990062772734149037414019003833720400961366470797501138351884465417856646620822301373579510276806636516981474949679438834241248855965264389355804871982162846031935489323804003900794425133187862346485852411622535314384734121748097608689118417120620251567751159299826524857323880779080052340067534000089945544211021363129214742792934551440252233624082785151888278244537561932667829705565890371466702436523406248086592339625278984442387126701041268974272192468326566275648030166418406914178101562579029501193140859148142522957853494462088900724724935987626732830502036554083476102225257298633294198574210018510699380445714046925256478512880344899243575813575124702024551868473059628661985813809176406167095449747647119424818909045593122028846648872724520753564038425430862557253148147201613773631667535960468772260429850153294371059657386729220592138895382636589268385815532192883861366998724464096391605174190183120886543840663992473035959926091528153270704223316087415720303401207134879144057370927179131529626072177343517058649974228884692398912742824345581051940976904037381410014708465274726850576032180405254337797057256356319345263807493003715344975415533890668596056214313489540050456956210317548255278705999675007459152377417874041096795026363001605331532773269780280393962988808923872258463163076610740287334493014490625682365773326062621994247225991180566333581412165792071568008154879480629789374472680120006211544964043320516928490597964165227611782082984796741322434876572995459778304842167082900417460004721526829183296089402378345470804843340066813366199994593069082904879626849037970764674024250931954929845404735604958314006063600211027092121577407421521235538606330744617166448596608429494993208015481351508072014831871117202953568409118356698636242065559051710074557245473701281260446929119327756126295688949638058140846310502383341112213754645877224116467287397822270910119901092392760987869228557982802540175427233136294911585848132897806214036968732907275334376927223176963695699314976916327330636597898104047479425954482348470051834114162434465430350542012751444013565615475081046999308030079021884660335812187652332668231854809977964306240899277425732523551903201258389645739149256580128230932599297162646959282664331525204749607972418448423213194405009660946135133796478172118066366451683211933744415152089957409595901278777717853063022619661983809512215050316411282531183886501682931216766518742664700752161490742131503385408883745828396838059559164738961445322032132399174233318643354024628682281277855716851310675058168069214926972678098482364613741836987486486223762492150143307669791753207017484218266088703002046775596315307180946011184908070905148472892921513624471459964559182745019331237386884109189472900993820358558219998703236776848690763517389698490095650688582286531303346224045472963249530302084945704654010764774200413739079184206842998537213982643339968516185506555514703650382943762517991965854124658732795334940719999262252452940896638188601067114893101912196540370807717084493206149287484472041458886434818377736205141988461826068203515783299508658872730187050701380719430380013728410046810950781228522996848600394230038903796491774854114359343858125371866079528931010847951984584471790663795481558423883593979513343978134565400088614486683300632082102956555651339476321670689737201727614539602249872438704789806926214625816524335021346378502779583247593805942186379799961410221988150894131287421259754668416751164711889025173358507362894946573762320944194770988721242801267838687666972708494438017209444614631881940169517861980311277107958375145560076764470200226390323148353616836589716457286842859557443169460381165446733741445063353591023815535193079162816333579059032880192075463393473981185809352276192153897052726981071522679618662920002895072311410052223512807037334415520698135266431319500602660753435128780316683865383461301514712578554613215533441801910289299431237303312130106227217077959440184043799973971878473423789009497871432646195613346862331660863656806489016321946591951944733375362334419369239040486233063655974166847694965092461486998251413399830701690889158632790015381769984129169838666876496565982477507779182076961031049241113309987408872362795332920829237934686417605705395752010251799424656828736023134247712498571390881170464307193078008171487953918180717715056812717289611199249762872525636709821301291543577754485903394135733918118950727686773158583363974746512046301072933054448095361839173692979464520573067658124968018942810970219127297702400186730103640919999999273120854209562071991986645135519856660172556710715039637287465461091205405433865607152009809043327876120020241732978930983968403296343737283794702111831784546421800601713249875900654483025438298902117674222198555569935843262237609805026537622872176758315878059929589045513601417133302442308291750387317887887746715062465472891164214912562978317313162611806792281199103798365346549563389179667180817413955190698514795350881092218600062738306032426124088966138296819448550290551189922349171160861311670084955367244961085294108852585020420133285465610053436073333956223006282790120957786292210308216497312549010628884620768352260970182886769665926593210682115917045516890385798426188547646553744346187789720254957514149636210606185418703089181161595744909345819425425217314253207521390175682131657850065892619476658992249927063441575364988483451004244382356009383885073117442482691767568749168835796457602043812896198983004789243230114764968609329547495321795235835349076361290739166138105969530317747129661337830208946640195844340034859106136002451484279673889320138542037014828552042951206866198526249371825822110835659522118485173393488020392328011520343460455373092482947621477950525892951098709402663537026265408857476866308996955650451300232730171342558338054026125480054948376381281144230362624531947412245700197327917058756439022023448524690718606785395154275004787812156532074520919368745558082926087685673096088382577184173139194114098862587121906125216866327519666084777641654861987356583368193791774893866341121154936819829608430610621252673573099246746848699594578448574077849863977901210015535221739446023577614811298163404469369422638955300710961370545457963555200479126980851295463557686380326442859266934009097851292054269121350487414923253400610152979845739376528313965912851993805840320157183668771094993701409982063212741653286037047995680765292722559495732613264759693984118889529373249156057147866819194816836181205891224913239646206078934106186099635750823808633281346700760830599579477725758645609418706403650142204176798253310779499086210434092743396409067710230252288307619442164367780498719951429654658455519090564628009687318451941308761626806068194483834045762850763467819528824317917827983645068762334222186653964877046689916428906621705001361908580858555544979824141556915486359943053783913526674556061781616144836913517811755432478799548058650895410971215193892286749781160583246728883916849497169025951349204313498519950250515415006819699888822791758697494618910371979163323798244497263451522868998028562235837354419256535814904495987488868485583771142063370233822515411371262261097226482867690786593764649711119138811375870606593516532184336058362086223046476381906738750795522945005800944558902440754961840793221401223231654091697572085892257890116025412273818851424200108237084856695441951823916369998580134644388649311605229185868696802659585479783965995089942209625939105832193992832197667335816233965909970909346329567635222441306456880993257449412211989053998213304810396745924088856035496945009247793949408136476521809644015128598653112683993387104543589886465309924730124252865308392468961176778788813154760459276520393962246239214048358455059539204214279308434153476509914919820685055640170720783917263522357371200644206000632771383758234905385871259771235361298990419967598876691572919360998751164159359002147616144532156789479291416514223535830817449832309588428417806682489809126430230951877647324269909773416904921363685968656607823251894076312238901502003320174180774709230359092980339148199763852139019424763458906691537585139321756304712332076057078627383304423448990101073607661457048291421234311549330645613555190207440187901184002515555227467936398698392527900461931604020943683513539164580092680697300167751970038422951439229253213416909677867309607388675453846956442495534125268351441302480485962010409143422241602627491879792844868193698422552062796773845371696178804660755776739713532792124253212500192949810170329173746108512576438768558481226343982925107812778581323380830083861536598319608965601592096226635484043823094697314819045304140277657217664320065051046326615751423690570186166362618662286493278628699732862436955081994601670970345773611355891295989846498599067362362081971457187589186298044769372970016299594159260799186394862091148501062197967716008476303406075789602082299028786728599166228621713807029908005057460001796374031686430651725421307444362486868773664232405703652755564427536749655164187976224637009066931862029952801091557603847630695552060057929587343719794037489555609768898175381530075866082815314067459155046803976382150675765893009990953355194968180854742096613153584698484970223882509990480649783748357195060374551918272853634478791000936536320107985007327633679092954791085994554793009562251093903039556020972435981645167062955322806376938827487544317349520112688006741955789069459198614791751797776358574821807263554054109703874525624027925848899978661953328979749397220454657084919261982498844877911700179747529352941667147588135843526617166937228050914887933159435572888405657125455502929909443203520637876559021272221933572878230854693199253867920042136611779492966982124405214616847792127909192094052573932455283267230909657171213769939768774624212911237834504092296616749492288504663646110047969055980339052611960899105617723842498285378103545716259085263562316226148929087309826014824395073293435326838600466359748326189950675107079649614619597099601062201162230216633972162125067162887286944570275685271183506773912532364959992968895772282445826480827815460414796908499822020393079042923223289685947111823218901450185969864377684703572600397447296644807214059514170425433128859676076062262687786747584736580084856146669774668597811992778649387283411186087045472719857511878806461649032639452084134772603465184902586700195390433265065037308665478223988490613142998697584220722138065828879170468232472658616279900216703239279351688531236954288080607491016183601992285909120899135687407267418764457167245285760088817778640212954715849113764754847173694880704472876077993744567217534168286853686085995666897324844029360887212738799196339790389834045301120731990770795219086133452302771761133769770086833338940995684308719059548936381544794283878117386009498795428600578806272051625674005445012816076659331775540460038216432072588850484927185092085845794559825339447871101877887226570254339644263233042290639570779519090518417205790350306408992030470112532250555537899721206631982818102299126883496893397945158198348869498454841872582061162554278019119515681375172473725933599346585593986404174766630171599784818728546412437031009162074408944494095809742388733936684807590546083172116601548798543877050796736924153458465894221963388325268074663094474708627132705821480629927201873948595710035071856353939393470354381818806522241123395885403662286161476422262374441430296164932463977455158534670557217683915957015446425737532171941563648633582153464709673201529193033947907240404524082541271673046168030112238494521396204567291594555514461468398923002664295751684043582604184541285930529187008683884444987446574377639022749248908126536493714360479784002781879034301753918162621628979467027036198932225896615455250132297613991686893764134166567539152969225818912213027079722193815675204004071511794860287548796399770694880229177643059146792616227342642295607756664141923677335500786386385993307447112643419764701820556154957957415231326838142913293330319325302444453354354393232925577424659170626973557824839709940163740743586290032460367663684720461609078924882703228823085051626290522996384507966952713554869203125027829122886956543039101235610822213904395524160890632738448715365231425205217872584915239480845194517572045310668634358866027203945111145987153015831959875329372018555774247759694059189807340079120725322771211119822894225337841418613510196860761350391198488511776819318166383673240422986952208153038417836214669605011189661743851001722456887171201093234414931904417900726528777614167885162411074179685366085288243603426215451378491328842551722497711816430622968932499323886917361006418359106079771124771101020444881687773592974686140007574064211609943198166538076533291513819987565419176846853483191826713351296876283553128450195272197057644298126025792997009343881529535159788407926344227045191228841100511566082831824719672187036797263588698819581030127185737613828033565198587753886140458864080334865575175755066909589664155978108215315271263901736054382008975546314223027014825209944097502551468164021943941872122718044420301935284441903520962324362633403600951266816048372085827907227892699496609322114529950350670931804270959204931713881337247964348367516352643650827263378793886764234094857898799094718603629837432451764158099190127116532734466965650431532258705776904189291828136332694547377222727021355593781530547101715818901281804986445738779967929918504359746238875807178677092090945512349247717658673327539653036017489079623243453624481841774649989082607780090687158557072093961242194142556355357961864575946984712177438397278260344478730745507989319819877674088228523524052840939699482323419813616667854329552921165364883655742317332746179560277050778697050629581227966062017298035273356263579159836262701037584563804222781847719854567942272536138593485704119792943742683662385271717269866876394836944250542209833768272162651745239377376950428551298637574014511954231301607870013293705475888848960482240875182448860900823118811159678150959853020670197955560670257145142448019729299149346132709786369998142849271078817329064574114218452669783383524151255558787976357394817283791374370744011520715183286720104651104073518107088051592274447262904922124887215520923760877818005203982149530781545171495933895905658168550014931678039162204421744011461599545627831713857052541433139645760150398309284149092083356277693604423909941182770168858517641683865744504942567220731164466031755084061787201892645180467187209637295003636447299464688041829974639464957894513770448887053483022747394207273766456515818000705379376985315900563245360957483375852897570045104757910290840336274181142818772467393698615890282486619574701403723501366416415692667350450763999474526430424200744809112366930204659466317886397429556926976216264345215249948828433645962867880992521799698186206787362027015569467291284657125362590777027349081161739138654286819091267735442221728807923799047851006727208974684734701186118152725091221309251950369658108234467578563156810855580670959128786812477256256715852973125948683632675045274446988759289610161886670557571502912588990991019232372751944134538919280469613014557401228903369624667140599254477846084278539120469875947836510376359862588289923898263555060466174560746270924626514300970708790266134394183398577730836990989368198158264956232307396995046058768833536973758461215228985449662140731719119872659650058823492112524705337479367436866306744142056133725476832547961922475217856509955541038499461999682523380968054935951392826542313127355753709474103264064673234512131848484836622537306480980598592043715745306314651554366816118875153454905955194683981871727762989632225669862267201135322561200955517744126104968071448031628291467390899261521208576366456806129103031199993600932773662454860453763842466543739453714552093561790840040078489077682032818973129815648460193395439369788042929637781633107800620721205325765528747167859789052576058147514362240197791203068888259750295805509863784612253716033849564579709289247203605682244267955821316002882419914994161427272046489810870418728152626430099780513416596020647526170812915479499780106965371358050585805397304226976286727302170284573083276907333760792438976516956151596966630993250823438796620275271794055672542920985117109531060181728362963800541592873099790819558134128942336355880004887636545587068505365367314613357364432518714505093996240587932497585020928069900447115656948985995514585393322093550228576036735638590168175754824168270729841973082203851026426174956033588610208254063994808801342903960860220286278854023029754318959635773961940746660159589791281760623403236383454486735001131278549312479671450239172271561767004818810471975501031941552635179799879738929265064844413589921811918019755594582271108453068047593893074831396569510036892383005481851323097014703503997368168701389943534652819624631754770848213215063078070372599427468412086138086704115006512252991149315965497006575817732316844204810338315054256862466197058212348305164134670221626773653009276487909856924007708710801989546868703930899920737236846408867547249081492134527406644813367434033866220377754134043257137270486437270519537549711777406433043051392747508161484977822583184180207800549731284671494530896451837265464622055929059733386066549328916694979388427439364229673527929929082445085843707323145076191031137551226001346644810961766549025289428885597259754232459674403129727765257598856406138322594501570874159953857827291461298137989391547094762813919167624906184002543049031517317631631975365313303499988394067644710902449178046637846836598094119181619913348654498821725162396559317067966337484030598543658941301480318856255453425673236336485992104214942211515017791054885849174927325690441160591919742233236756198984588213484409224373711790176449834168440366434104205109586638900867407936697482621473052852843695083300286186575322618256186812415104469768369400957680848900553826065815996175986775481502260826750172606029842958722092931232934992652992701252972702609837072137713865223844040236544140767092527796812907035492489465544151885223332102222179065258942727572419911231906231976099181838064677816672728294065108974474997483313563616094667066886829955771370945321025920473633029533050272662806070786635881656422424382270756419977834431654970969847762950285341500653903805764922401779001558257881678382111534450281826160653233436866184975404049413612096561892343348084102958211848516748761026685488004900977044760322385907677285708273042440488348788376177138106283000492534335730468300804208620341114479671287548530787578519936036998235481663589656475430462515247143987017248436051684726572497187351604123050724262525976741254772320729066496208736115313725252490659622029719019949347562024517844090719876997734342337335767494604655696359584588719682756263870421142241891014492614329739549901567073058552508230966419821782894577271783273797508218403055915156208942963053418009740440792332105438173929611083236665101569852452628700587137932742934264108974462929478805769736272758668114393594726175903310324475740411472359869367594841529130626958729005433414093078567164772167480809411159279555657615334872071688712696276534672555763345252119532527042334791881608016522623753112865474240374321057848395355349204822443594369126977292441342611465426782621791708736109785788787087956042523881729029555582286044451671780185585623232250482742850716977488012947646796050218870732805105882887301472668715950954256894171068715081042920459693898805753233115625789114443549597835737675171895898655822006071529247607341291912778155667412376865049167383852427082316137780388896150550317735445156441702596008745568917541534510819455578463251105587352315979296357707264942399583898892272708415463222203908806274319084343840625835473931898221129816273932802258852880840667810533337099693370461817778263085720682727858889087376060586365916124067638178325298639486090854815086952674259096135472913049333970456080457045827132219517631042129882954116164104082280959794903169099710885933943146463494477118956168429851053976393425628836320268418591605711607665989275960943435348351179693364266866965438550656819158622563861550975026014667466985602023762343188799908791687289816944893890082940849208501884054713638778509104048862102343697096642250715681156494883194179645990482862467737362144405980232604249326038542709570422924226517253216903440510781139208783040306534257084556691740932148264989083443256306227974114092945113120735074186416345299190753804450117110605406629911745252774472085313965545680767873343125189756766410883929332064447155693414812853047580857004063159380899404602852491549945037195626828740495850461203516636168762398488623358229092725936238487594536344927035668897452414132610398433931581341128124040714074177775976932912116575910475073811580376298726061404001033637619418275029497768731595198351516068612514647505307318808014778176621518434571927306767591644270719149080744582340879798500246283349844002636396623513392556413706418743636549598861321467786405911368651481052428531928867498636804881973487221079241394444501355939097258363978366795983585907195922081462436693795475274497870690517459226207312368954758945818552841385929980594695721925454121366011811267612204719926464136540382980551872750931741152449703339754031834017404463972510282378697371778368685946074502091833642894444110647689570095604438477683054982075874815348180619075095044429396773257569885994286462481246874685850615342846576811547753779523969032856333318220992047704120988730410718046518401383177346460374864046585892791976751176427606176203607731288757702557734524941480132157737768370820845477304857439869770166643197424879994719980740778052332198518176157137052144157642116566745723495738898956589810293917398166126988026081946573131498473058347903791501390828103849173365973698886536333612858119194128707408566277083020862483547082808948763851465374649559750420891322557789717693353355012278582917135126344105730441742987913897731104539777138749604297582212776917235513189355797568434551533474923899308405194367364976927148973833259511990962245220003010498920429054661177506408704832905401024192897854242099561393877170355986890138876168043807203437644424783467113442758621777600165781638811582707438944577500819784377050170251882382916687545071635208500053263694120914514113232408644731972624963119318814898495960405770076290557628655995454025751089330732678751351472358278386486723895960599530974220830276439104492990127584552064830932417296647326570362813800336044638745509197009976958542879656038416789168945925966221241931715429801017508817122627437260808157213676482735629380006771375114884189758637224732803465879153344328257712847696892580379151447861132998723253661685190887885903453770089911493358247181063698305190026107807172087275004426909404220872799698559591607344336680726763839375774063040503852843925627101925820975261417008297959449193050997342763040695928780205917524354087210419916679704733642157041955801087721844723362937416032605356249761708007336226609008896047479922305649892305768826619981787118848304830297228266706820353684123370841498426324557981141786248536110037807835920284155853285050785607326693779518517722259319411444056723254902479858897223001071271794772373553656317001806293194462800011548125806139958609565556154058851927546114236933630337554247241487710407389192402021088366666592412335907281192115957291443748032933948278830466151772111433270159070490915573397108788222133241576919440200581369671117122636635065540670353921615116865309406324818580821700359280840019285246429702270641559009528912391781162033771265103338400946044423687334264217575677230979315644110250535071886082476520723295855596784773755144085101374794014678737563954070201133613198780620058982713883000647731671192365868171448893168125791644896859874045830823883769949940474499709359268484823457414369264369312857397972487575104735577888582633650493615470346211245376455629172344002428795391315776066133231788946496997857635997888955073118649516875959193438567652948464025770261111057919575955709026800219132891459658751453840740137792932763023889066726915337785582595012495249526430709651752770438176129668277868939909291895777933656376556519538489193449882546850047935550531500939511540971386958639468514841476990788397683392490809834393531438819759801793858339604884506288466583055964656088971750351493878540321780573395235154368473123155694790041717324223055862149888490380520968787790159813843619005503461969682042906207316884673716767359110474765447075307646866730663029375240884549741298798428629824287017037258812937572819740400631421021778555327139494583189577602655833438984684894001348170867894745398987928933858068584042975029941705629513187385099269766865286500715049244523635377969686588202977394876424444796579057397214114532709313782083415995482000396086690155581848271473604257523395193824464532727001996938273918916192149223332904409723787448765255184720293321917228843612355504270497943905609574687238041854795073053973718126067738530876528860503862381018419750574132617181892720848953032847603340769253507731774728193030713380080545480558654392447926046145376793475148123530330141097343821608309602016902973020049511135685202255079634476070185090034809832620072304422893651934791431612728440253085270016935774479888155913339152025761428496801304153224084351806526295339104008924128195250242548936957016534765549514042150508573858173351275210188727685134397286294548316874073573025651288251489377975803207660384627484465441942082234630418782041015707869822849327811223801703246562105477218377345698674081368558744464000745557615875711575917218651576079036274075746779618376242389652904763042118374926836263540248578027414616566564490238358917468433933958699651615469120388957052633319463985576846005648393808698812690122550248463712501448694419539517782367466664677701756932824146257406203897138207432607504696775639314138455536439245532030970335261480392092280629153047567363082775772206784147559637105913285040537540781431528939129332356012842795802761505252080329710989816966578972852263420974434451234907373065992513090045409972568766069475094162548979336159543327800632799413419412143903159658753157818283533486806098439181189257923762660359189849348728585276857583103322636618206553476482304837500136407739890579711054472363699759832047869034059334082413845351164035505167777562823417176508984279713962962976840190515098350973347864027229832642646576830101148817493994584784023032045907090204615997034612938024773363058450445106237098913265376484284854499703029473197330920277252812680107115410273837332956647325965866480603904710950618260792403038962370806279337744082461269824108135402996971907829969276629055432488586899077502584379597673827904584187071957540381746442592422902296235211461948470984150137383176168640187882342202205698389074181440999252346112414558617657842859766683063159946413451691247131973536363649669750985059640565446503349729852383779033847679197097490921366504785053050616118690518557956265390740705608317305100368022468586538132727190662122008957316625097923705756738326690130501644407584056480892466677967044045837424718412413698813515219192290927470258600592599735023849152488254919413612788212480033910086481079574508503738205690618682564000231745442425953024630751962930227831956632545465564676736960922975280696374146465862436454108575263818712121626210161046593331625088880089113525699831187338566464071863787266378536876532112178398656564574299081954857142473906103816099081643516829830621061258759803298263236410753715956478048920028885752968257563584584667114397256986688952344491149295856775181138565301826080692438799148909332691856200517058819975891461172992911591996012023111986454319852411210489765171990412527412794051147961978352377870178718887761450546573877797502390114217513670308631113734828951644183882158876176196083523223215783736842043582819566329447119795865459438941408922814868722476825708204201515477775603704794767311449535845810576821954904781958915610764976318702444569601383887712478678002389217293013688484831694716524071081348644250989484652082322885598161681217865792990258457913781988225943458164838222544179504718390797174554551914542541290427564331400230394502257562260935601058806957951817148429355124677998881288220963676324409131293007344958503000209936021519381085660101944234155195653969697377490422982135100269794813167918911327265398438778437391478876608248463706168087684843430585567646228639133659377925010723305017427592582096859255030941895158834323894310375485510627465653736208064882025742063061333555870806906617486319831184282266969894193980303678078067623883630824297413692453268155305612953880153317312718701937684045692883959133198673296871549106616387146470524838585379056145220645294570577713585541074307734995568610095997527721121656080816081715924629534684664557082031238784578666051717749983112184516880533783953471139690311910986700946511286638484080945921956946594969584411903642182313036682834644660518047752650899813283572296863562247503175662998030433683699127101106735491925078771750369388263173565009458937066295817212612850387135693022681131700388276927351229459404997861635247165475966941322933778660320427608026898785008474931216603809261296275556689007359571520923121301862990409779983385528163866087319020354867204304051801311313175328604420956815335218225822829071349471312886067791424021529962928615350478486185141589200978749212888689158109983877591937676999693131632900322770977286924294188117543352749825881343012404194156628435571263629225961654317949556876676017090585817688329467706179739456829700584422618940829407828331400788489486127620185416741197055764413605985036117305447564831149987339495377482258284313064468420947795002585116261147355489991392424698835788526718988021262450056766886567978652040919639490550528928786088610299830036908371902922426058350274031258107132741197677924179963375754871280617515683745814653567449194913052823296006822067779975790901301716269618714755511337116084114357493514234102022514286225879186236885555626838430938299673690699735337240349004476987251573254229953821886967793141680251855441231239715601772559033822251809678742646067406708295429088158800912241379104316920499385159397807212405584440763295285094779752341126094051185605400053155690386655210180535936124874956483409245437159079955850880957935032486939902593937521039270464684674285533526681046555535238411012889438268728495337098016954927086784793830105114270749396441748358868857230176452549216107909441017962050972402316344562541670067433739929789890241727456246190822814803894008963929051462818957158761171274536007191683639481079707543692415304124306639623907133820621382273864657746296619918615374263226260187117295349575381288235640349796257657843544108844422473580311265167440940577115204984044101138300320935443895913203928693568736547207684664518913454128670089512309012915076326324796087397406448222137567704869886228187238393197948544380382321187734723885687439959854440804562954872632065541114461092317379329853873683036212382213618472687608645352832631220726410374886215919121064209733014026714385078209562246396776393890811199309677263829909027938828727917096054391501097349943176645512554497170235362086460057935490818584231400902997357425522888736783702096348467758829963742135103804402359616758891998111517190128131958726836209717304037319627614415200627759734253735756582283326670858699992268278068032505066565923350142245086138635473694500191389256173738349587079624854006756364458789492589873619045609109668620981076612122674969737748780804937588493453647140434519142924095997710420801589415766357996632304941202149759367885874291248640151276967097538259441358293092833904969037201402453185539904126230915473971521462846786672266683934971669242211596975452705237346531753002090026003139486212555160379556101178987091617133552504717181098819797394746980330932852467321744608138733838113501774648100986909534658424732419329688999229537340229789152127398675976151123391191705932682077955061508223626915825335229284973777931083176280553565709478508111186924768843997251994406595215726947976740714611794695514335197614739737402718416689177942864676283128209213230724033467989081295958062354218077290714398763762316569977641653374115433507473449912450683650035564819883743866707094935980532560901118127376327254893954095830058362426869326755891646457996344972868350116820836415002334185437935270678143383904454877108331513396595452810281862173089100895656741009755296134808302779588352111352308033667321095338674313703216445577187162963734892613369088319040307289868916426715341280784225393500970204167903413056423552344312178762759042894816363638691101426990385666463344106303224495515518305269517157654130219064015917317866579219433600285484702663201288247350701120881988671974447380814921940794703261992051206134922084968207221745647723748668578127079161325723926105193052004342900818016243998616646657576316037704053717292480751607246979882389154756587074614093351447989559172738496778514869490407595643113215768310246989863661543109706563197063629840842485396548333281372467761002382282322286515592028109311302704285276592388414943725461465646367061837448139119161355681770915437243467774878783129645227745928228385589219033973081966760596752451838252913256979553961676044086948010121532855847555794979522187481848724569985684239582596880696708498722936559200373496449001440875552643068149688398460319872750282701395736960978999698680600712210420193585408036850847072333691600249063481731960373221534446485195772135251570812499565392659839822316066917893548613781773177444601186175270801482208002392038114986883104127132639844750196553392106542491731852207776207236583735335924089521120539613609041590746786167902981603281088800009953099615323238171737784133725895806835609768447840627743618874719641902882178103636698184596062271214021331907048955362807209183928553381395969898075435888327343066722162201337980948654036994669598924047196785629870020342599994147198873251538673244722672953388833756502462338279263657331317862748460064126350122436926484345652088339911157356300783475200925274086920772649048357276733166972299107501374260027383003822698982425695691939878944464193157763412179755795478998611414160832838429338958972446329477117646360220988716858486755612038981403723735692674606431542969043824665199405467552322135808155512075555784233381646761584495111299514042839338804501377286781013233649533531480863861779224471679716134935826504946579504673364254306472785808858909186471990801362618266625962360264261165154039814165806183151833041445963652807918332132658769862558157132388123235436406442979537452045847601601957419637976923344116878006341236806526258351455500761315775501716958959064693301904065008182615194932576586041149682326276153901849142101730259915811455524139915654766278868971895949239064557039147466859500658560658800273426629289336414711996905719263864479296213798798571023945972958902189466941007395161980989585306656236748062241768179176020274261438846331270163463722556880428629433462690291166720567338836490497467110195854408234385463530797205956389478413637111041190449243424649966199322292896755990739604059830679465558408981385525836556115239452513179600759514108250494373144874389141937379073192357388738550014323393170715244288014943424818466722907588948025735172647980006134730154925163581911366433180890500131031841694875910339792586261318812539886737762892332408448229319552851440200619926360721025683528005072580459780970117477304660512264923778132026219184187498065607640542872214581784556558236845897849869986297739415117595522653708774262226209852528660045515676898029318113988022919130205930386661876853025261322122551149655068159218523593315311129173383425712287675183243247773851649609168808226486653549578672370280956522862641860734212680251132235309812059029754568510419939442941064359144529951964344937870053667282817899637346703234463619880890659194243952341106058145161030278472030677123053023734935300134723638468417414742434762273846407309879823193014705171429266743434652639860467398206551849457047474939752840638224936034045101121325305269964032776762608196661291899861663454726292592333906654537961928453701034640300819106921867509795385456905114328082504353649750219871279051896829327512227205487431984801668811882032032700142404005524962672448422755190465011755686583368985068257546146970568568990641592178516704329214441864376425445227459658734782428862825390901421560095554143671622888157885868464919190950622589605113119664524846611167392813162650159962397693279775388037231770467028499656643400545235146469349862907695280537691009712404939270090455578337406082328922202871623444063667518154547815264630240439528790672571504190975572244366433909054092344410346966277649152357619330858809446624260964683247628002638879870030094512772127576000191763399126786665286590899738761331580723151075626716687223157167222828449166837137708351555002894220692318375372105278708065376939333691231245626711549118526376161521737401285066446217705689407806547787740194642109431551144092832435884268207998046531484962623543404658926949024710778931440508241499585056212257471685646814591350689304791655476508860866252430809423449220389763030455878611876385609698323036911247550314016504962498347213073140019163209968809004485692656579512428215185222326841258405501556853771909290026866009462203692321651533839750099163177584500096374098202348899741639807530524306155330761710671914838568278107756460232114267989229007220769888493732680020992408430971632508358808144090706723049151443303002658852960543770131913106651863464636195000358547778359213714503237262770348343243991157807254675767418387548270489553281941454188181110693444550530858373818168915508222449738033986297835041752689190015411649858872577607752735027492197552000145957708059744714736372034042118121081115667360300155514745633482110644267391389864381086833216811389352172331219449286658889991914798096155198523826672227743160151914855171865986136804002233721388935298284843221072379794765186159450642018803767652048034943019299541818384222980959720457487090853030252643437850424683533468166496763576447431654613294157231063478057814470154702234018252786020652286037082829969220061441474485925905474281228398116592921155979607264505029717162910449020067667132250312525869631903674963890996800851660934828190273739038753679003335279246435308644629164117020979603732432329772509533755119371468901859294994500756746063827538462017956599447424764380014777319605094390555386446077251391813220005844455676025382964498719607343721102614150135254176044574173781441575223828398298283664511670621535864205241525142461947788341744887906278075939462879274038554642908096725270136115560017521223847599186240629289866251488480440492161318149753660273741614596513836109829617920609724324822593302510844143262152451009485802866548566376248471815966393293100011284965659107371629519349280876479994722106845103372877593764732456803489447152856176389545377654412841934390659820797004225874767375189579046749144656900430801402970717305004906349778668878033449049103066455506865703140833727063189289661854887051930263514208027125226143198294638334988336855992526578776914098724164266993790626816151498027816216383519463379761073422208026800785616929596344661307540014682108435423992787402213555058672904870083596983588050870963806915205604013255984371019621633243979848581527940208530554845954136778275700268191951203596475844040672536148632544687799581033280071188150328873920039466056278070199301594494069320065790711335770674998348347230652964179288481513665197372255570174465168859306726474549134403710475117386779837509532850606082159702970922565944211272176004238918700000306298719316368567657618999746673394477044733551466104005726024152856953180113542678980263941917673150178522992545925387462386143408282894809696691327018219925108364861262641552815397579492181066766284999595123267506018054422399103376433880088418782808820646720459021728516723126761410048072561019104842537793976703116844500806349771840581603217928150970471316540894122631259280203366993977710124930806242729596799035273832923110675703853862797988692768071618415250063058005611319051481816304371262293537071845221178215110827993238735179610172227060819150271687007036908784004698657024300522824158820487108573469916596067734060990339275047144484187256530118383583507909015148834557515500563916653764854581978486687031580972000748200222694163851610314782281813482924911333346155492532946073040538296873079988024345441694230395291148749560917170688814604929911357507839485724948170128122187293954506473270151098087066014823111305885322126685344907756906680678439765198122228103291781585962183385739915742730574109049153995048421168196772450709025272730836227949911431945228213726942085835795429115024071653572348678689753370987221137519574033440837949705445287582156000979782124433534089731953065799334799331435210105807803119168923045646123409981375266784714604650086551349128171174862011479442949374939314969171126820308674181806286599462894953437953023316868163276635228336015814358202643135430594716568458228796155019094789016314993316314929335760323856364819008874848362016767792653234618571137174299131116412523437952420901209070288502563264375568748537601675925845905319554090970194711376003508488375286548651448080977461674073617030763807970295843360016417563823467815254976262010486908236818164466433064020425595208663027448168727410780870172074346234528784736083776170191345667450061389414067048711136192956068796971168488132806183763710416625915039549702901307198655349496899632231237833045639556636985136193569393144713939945556232765604552707790022177229185130998306521970676915489697949373955381488357799493797154364723312019362833238714159638810813857418208966462455302608411581075606596746728409766658673378250564006568148635329295714603668477253539767170236523091105815614481752412740203075181579469490015721692185059084795704438561583581711722769075587668109034624092460573346994434062631045241957583340346942999635720981535143177809512416736747985817017978476555766705870458613162357097334917832774841977087810014083472729789445857011161348141153447975172057823699163972166575082281252548377374770419666602550180612414918483173085612174709869201837436593917499736514824350225829147221344505695521904882670641993449666138678109592461941099902997437292222968175377125803295824257843242743718345027753378107607678956230291447089870230855515940292054230950877834959529595449509323933532457900417887370415597021800082083302128591080965799032476650192689234955096978786471375171668928593457375961395586677762023651001482254018718353200172535885429367842181905416035464467289710003485111397991746935352780932843454022997526832240627728466095899133401756796368739285326863983162846835217033086389800254341190198874114969727357137081351269703086133868619827751856032836491242021389800517513319741958569952564469764530587295646278489424557927272708078104501591292937400694941519538841333062077321711399009310621872014898934596008572251603939022812467624406765415960869002967670099317579221653203140801727144383373682477201099261231616326214604393618327580423889505372816498261449352411221750328319157025539575098912416064004931221784679686868167684072686638977212303463230320925954507385707503379950019852344956580466706073630988075616395138875875397851107921899043358161844422843386626950443832550063018501457766634182922935179224490626024488712650330540295251661413516590921494430444994480697713077307909952887253898700846603909684249249227208125531396362086677487212368627758753713004408966925607837481127829403666453304403396510225662219549305750319679981570389526285692224887938219695403818122077264308554482640121738655693083242240948758756465788957668877179879326478155785292914710950745384219628360695132179756427259996508824397222024188604882884264476927502527871399145929331622560308971317225609271560622105880545819475347970691051054302640321738314443572098579038135809372284394074614896726865789049009303836812819295196251974315527393826657546202754397186911503939097072384367385300794090863517322524435789887971280411742480661103967735894883167710952446548454873155872320490484082967953169962821621808290420615980284424350357983429264843134292042866273232333877099841182205878543580371508564725817273282011873043039458747386890632056215403858478413682057150158603833353776189953223569330384928000221405599763363307381748377239562782997845769320289207230463530636605246704714693921170927968055988871459841435996180412318016540332325801457322546764769660544283646782824639011987590424536330065150016661952925970796751786059584867798485489844263778380251231039995775363139406802919193171785789258858936792879821871715934499932459482422699701275475396767814229325768112263065300310953956307665409469835683933782426978316124327346343338787721633121150813044867429988878729356783876242473685407213723983621923571990186853678737832483775648994524592034649418217123071758837047897469937838773260244354632347739501606260515859193519911870196417915504361440104554143705845665302475706988985895785506694206448099919981350682563871024413443596420488087971377873501527880190118618700355702776957089301281460233665700669295678362566260331311433091805209580319851412881850409477020080707158204078838460127027187265160175772357159404532821160663269055841758750817954738220474072632091701484177224736502406408295447807245550160806389248583658369677289361456377457465611577963779323029158533587955193692845194223207559621985487549777826478594285480533991196442959732701927404715292272599451975315061275250094556524543683488470363838690572213871000740341960202358182250178490408797098894149048161970260886807257656249965024133190288907321436915646519021740352387437036090367054491548831793476918435295206347867969955110038371065722389752837756770197608193239237303049177110957012350306890197779560995073329441746115786051405728532209058450714112400294508369700196463329135551363174913315928620157450903737718149785116629767454344470455045866173413570188155272624372487704926780649900554839155248813406109897877789164596265480212429556033728016635383442017728157173473249973371742592338894091934967357174036898499305818923007446446143288483830471269284233140296135200525920364265585011815854107505783199489971430764398587126634885612016600787601947470670817554541445542228725517228357259098914216432060337712277006125581386826883797541572555683178435060692740160865021732722087120236802858980498916713022556823683108347288798440727065374850547291536412537424544890604334791817011923085930095018765329847666332690317377231035023018761768254210498636743652690525074082420609275074510571461452549150762825291423471117100072369299591231886501099850058120615673112051668475449045795484858883418298023272777914320121284733448153808377120513265215818793931009594598455603187419980753782644764389801399550883085695132443034334969094744087189776037387029264210186829796423413560658751292607139628107961165076911152157752174781744682408678039352117170844356344741769384970876431717800897548552624437895074976710423279589352113819577712500369362415335684893603424161011029702430222628094406885157227137892146835556637455368673428360575713796976108337932987850270769472958261451209855961470397846278670097526920664602345579469974812448115776998463270224383205681707308848718063160860886490710113536122283551518732119020518212334656928006020596667527981187622938599961786373871143430160970768802140784046632423113407487581803523978467849990100887819102432212047558685185182517240581058778326474669248971349114184426963203269362869044110333151156802758803901711259197014993141746369779773124717907809177763766800504275083499851408101568759861000817177137674227934428804067271315700366447461039955177298082186938893817381020328625099987821510157842775112586088587521312333269632019458092539928589168662435432634140937498694801471088034954688035078182038999282066814083220505061502524474982862300905345696298153228846601104032119428646051171641270424083743251115634541664535922070714519594586692912683965885516718922517789864061668748593819372976763157137042968231583430174838128941623172611234248443240462926780174747292704432844664616141648073244136779775419223847995717574404440620412393757210126417296810120231484102236194274594564363616124246745616976153106102994351659779942181425136688957086468117842918955179891024073584277324690625839233459036730823324122855089592197028875390524474475428607292698835189713783350882565705445376713702838820270223042185070903853676560321624142560723147496261962581384173533956226086580800394628639996879542867212984071254256309403872364125504970113148782721325913112348128629576434194543972008928053466572334979864104644471981554010661737822943319367772484679602872442411391018901609720057323303740680267456149314328217281083100558018101636272492928078732498054703911179507409573665379205063631434897050955233879752282104669374288428958719050050604641377353234618817340070951776977240690512266949169445771335709995964073773385662829349645991458346816018629561121904314900667804529253903763136462022368417438326474205720377741740286437706207041919749150569966311169010399934902441401867587321486131257293885470336019625231842281700121931708224714287242235583946602156145477209401825334147413820437569607180124198363429610975772212475081914995573760882495738048369850864185091080640297134825731615367815207170453833853353372312250619913775524360775151909951688879985657072034846796993061293107447240763454687278322349777944222142343546740719829436424250946652708117115824299017506577893831809097437864440429817612844608094128431025796310932433458357161495497801392026951497533806744207240227537794292681159147256366084141914743961607611511438300012832988674306054311698417953010007344182861267753107084125034602249335365102823735822138540783812709141069230877365452855942035672796559066702743860860974706229917316895803074434613378760917107964639555863849683562628013282729309395953590142071750183503893607216415957312822259056852961521727737226441360733796781308347546316189681290999069288144819498357666305381684966101138794415873559771437460055543852743433820691090905729944606412647746759211212246420459050207085930767226530638207403929217575648261634028164051997887282600366122639154592845963641006777507332113298098409005207560192162939350997169813995334391586573609849774223825985739605801331528778698912649131833398867164540860423553349323680427802949866541387910138796670781648986996775935972128935047803444717493650875606164102681770989917094862672264830997072917071682386591314055183642841221166332534414019967480337950194380486886139655653421981027170323195103147006998558664754249505286209003828856504234467481357482127188335831542640750912792533752672158817243083083780806717870063382381802385840657018414038458677356050956250359770389209433811312474293859848572973842369745693334978120497738264967463267649711927002556909369029829512829128130947992085635891664775297763048293796994472637263319093939544444752922302877708357019413115956870652462192247490154529624705378549907382243250391160051126444912035326222948307847740656968584918050147306830590288418599123483672496233124248944007119971046775540845882590026241004816621948606647402837489935284272961590722861340197915916804391476435209621592046178521558374707003429656155443485406398464294010667546121741006831621229573428644345689984969419770313436765122189197729854777927196600812057867579172261872413119191549581566864974855778674932974607236936008346011434468022383837724699613242814008075831532375367633482472569647122378613398855922557633125550672981140951876505030353541619193454470397062834712011082472030221460128364370235076672600970821877646764687279872276602345181975831905239398949164477682446888275575861798562935134147062696881741828719207791892984687360115935446204782225816355930337398453657802745605113769385567432366783170869961187957174958719826650258749902917406982370122060656135023796146877758147465451523531853612787524208330752379483249773363171521644829634639836807322587917569732697675046046040229352120633264107555137446753431482935014484047087300135972426794886699445854899113982191703992051941633987251922716492291381831989570840087814152326681539378908644694651570110489150149536296662519013653113656774803126235759303456277346607547511830642583002146194247397937866573966995846019485216688536734870577893926051279077125693142572116919397225397776276785320300186628204207949238332345623807989621637864038278108545363069388902870680834332676552391981988617757600477635203914475395270314369298339229174557393812633359664363715396510799906377824938047458401481230105949434942250525738068202020963162293787439437826162824878316207931913127410461250234836456726978629068521416262154255014891270698083896527060350041361733714759199811007865400289645535875933529363352047846310746171627696296998302243625152373477986349851042610216192338403452250133716520882113191013316222366643154267462486537690253506094123989982287504657749939213497356922984167029756167948601089019123484086076829427440150648488914514623780420937545328045488762984535771779008157577130027421905932520710919832463405465809707018697945227407101962653539212459250105189346350214215385351436911389062376188544938574409891393489520724346376042815578678445520403194428189309109692278154863787931010181196053799704451772534526259715502500177982361276393453231595491764294265879610200437485157701666694875116723086299231867497037298732180884429751703571180132241382670560109760954845773482766701593720191214715744536428121657918878021177703072378293185840537776726580263381517113994183491115561517801200232406648132706612968078137643764406950754814346327677636933496468225678764002782909664230383949239549996061843534356106656923867889096406319123191491580665318233489393850458276987998203545219551469771411541000998765128149578319294768551687041598864268517297678366131181062812607287361944202704201929704454009831778224218877929331023736396766289125603767310338161587898558479781029976084438620710123578050558496457798470321296402567214616054057047754674340706979456632954063393940028147047741018465057839573929426158773371506350132940050984031408862709244948813219630340904214493278612349511947310193515400511645802083194200027738839253009293504168043503306989567944288483102333006684082299532499620203801612099793144252317279580880082559641364155846444981232412045573293401479572618440178830912654942344844529309091182652318232482728236389089646395466655626931440878693190213415639219502822839247268074303437047212652695584234436425319503315695805744179211324094240872692258376782159470452071127269857659842802253331893273847015372304484313164854059288905712648387007474562178302889959581274738918035753397362868160645660481032604724475863426206489108739205739818367989940019872074645008201301005829911919252013935669814163416921701876718371390668394225547704388989605720604520551090816849188173920096752930094805727994680333761049995397411626204900804625836369009307518968049442469012495581912036738107727898224147612202452378243329377613616956562379693886185186094806934811046547886670776465551749961791712959225088189100046916170613343324425059989906284664141658859733071403380523579485808627136087409679140117908499069382701248885792453889229696782466311425788200143983508741493273070328133955880627301519121880647855842508959894419309684821702790939305709896412734135766161038677966875255956362267074770169623550524577569012283933209035510340439187874422216912596777331422543585152680757126198851552712932077751754314896909421572771440733171215523886434439736619738807604749503696299523582695081817271618600535933781098063635836247159596883240151902896258865821433621676579638411037646441167994700011419215333328320714227609431918107963434871633726194716735406172123776680140847779550047215870613426647246091058635027870658924027003276679810584616184126326266562969861901789022098308432321747668003787981393080109741409786808883876505123305025628611870153832141995454338556537169558803515144818368421989699272909077876099457325791874994367405633204288196769644168740654484679831317910868486489391873772096245946776593089934438928058400884105575470250289353125599862002247458293434895397216483984243661556948438575467819766012743567904607228938454049290478184493805190361270314236474174625464740591290681004421143877237475380571192473296824428488587848052863919886717087057774249313434118551041234378134898908065381567445571526182218962976656196969483523928479918693606449894517483407143005275734648150590193904517376735734044986190500477015582369319343953662072099232214671693859576582203681913021665536490591987113066367174224480887650155314010409713135973679956034048177089075020591728520852476719210095465342317862876862906517507529167420995273385365562234060354382234499769269639303555941469607825970398565168480965438485308981403492589475777028701517968258002941260647307160554096809568425889208962284859066126099235035660840441575396955769908540854385018839303471553965559976216077213162450523833021292780123363976174287005104123486214847468369205509191966756552441549465746782116755521599232769425264489747047725750197510277873967146833730897638180153132113298576175157468986180318731029554048733660073552847401984917993948544233661339201281556383303491134084193969177568445104276434167340497554447544404157972803397292671432455084203165169799880904907701780852236856563405288763819127473930255371292312412953869084622521325337161973226150982022309757209927179879198301487338591479784358594614482187613639383767091474058687303565677496766860874369984890414478999403074344002884639203047325675692475469883841605193145152678356457218518940998376795445086080191880441689062540755770622052907504654624403544556822280951163015370428403516772013012066222772311979968784779588691625177943671730320303065569660827647633550861022749051333650229961094790190645993300421998996952068098118609036322358835568400449579265850546415091495841291620669233901958208828957915456583114262223702994588999677049668901910875049247342016658866237420994485791430222710717897621206028628445355115935274167135249594974917454784999597940265488631552266764330286840061066920104760887644460041706880402560988792291767175857838442801332919516077512074453834215585020937529006623489975902362719436106087751937770870503112352986919160154810780277221321672383204684504355158191917921333777388265264117844793256662400980259804450595079417005934925499882140771125257789203801159534877292496518396458401515299942207304076867315829987640605338298229745017854234105805767173622627145084064884622601079345356222297002655207259603647371757579569159041614664120011241618430261539496378424024461600910362478247552648324374935284935292876126907974399343345705581288108210952555661979439680220067491740004375874625589538064276004243951331624585021232507703981247066704873912004426997261969950364558146251513899186834144911171353793365276944501396853633064622959985910414623439022382626218806569992727934057121504651152961339801510786644300036481605069109674950040472289078056441857339004970137360939739345481807876657934019067409390256831143315160803851696629039592670420865699482000720083573736642993543105277492156810309389255761401488988598829740226271954247019692395036942253296799206362629434656439026118252981836784365996505745501817090787046848362796477978137715275993171878308521998738645818644604039638856785743520073947068433036721852117713464889365056008716545041949715768140537699150854502495764006936093857054811350446684429306603439060609142895675572588023299758933729599939843784392903577974821404576381242716189859033387411607198789173470161874855031104269404569002385598528966314476582544901372711492740077043254023647264264976626685193652238783501673096711003913413164467369547984867794348734339872444076667224725412979489078885399781715920801962998279435182992806009185817788331025222854977879171028624304397953767463493204295554437214678881848495578434552762688455779121168647453197410499924393157856820653003790559070183778597914291152339119309104848429720167934565055626522611736068580374817904028486903397028595133228429472507270922210076095786029455784265725284588895277320417611057474643393717601010393270818876985799369962638461241755693166141911313652708327121972770536725953079540833681777542341660504637163894920752801734638219552027149264016872376002062897281182838706760609234324616197363989080402375419515552726656241047004027751918697495449179684801042072399944050949699584200808527566382892512501642243655379972942032059489591648397964357557087016241652232632500085768858409949011427796182059623170437188539666226514546510356762019365084640812556104401344287003294351737513583021382217753890265343000840501572677382801770973335372208559208857518165515133882793797388588531872258723785344180911010495581143744242580020939133797052536336722858059400384583547517004879481314348963403972134801490433815647150888242085638886465561630828128867182651653337018803467680378757763402783415813454043499181338229770506374768778062878016690280827328677271220847668652400425282565521200952934013517800151467718935733761559081105408952986686858897569928120344012873283956975871545077595872559933960702236434915991416300633845418952721610900722666371353917774412108712313514390942523242638345192882855566928701317984069021593933960392573472444428546512894674036813129838380827172934227309347150665475256076548890284821125926985497138847057313971916495717888595882389951868413068997379171984490605518709476790619694402156052299849249706156691666142268936202115339752436738767794977502100136583936769842610834745275771180821332496389163669012078397494009659261038251114452429836493978599696938548489940676868137947047256466095671860551699659704895259687491354957947370309664674271157643275266081904127460404436289006965548312693151363300177130452319437479948340221715632081559296422757185480418821257729332558984509894282570324159001125975197833979833122606044928285819455631856242967806649150768423030171748134766355753504218541843312536646258765286340779484265225395381582563573000600769566678492847683161927931879959013941257775254626391871585501209741912463410897689459731043193054408197379895363745368777570335790024047214158550214801268222986958563625799138687683514393266543508157601859746723329986471727877758598039473045126364045057533442603220660523208389161251211259258580587480226012629132495343290757687228525478466544799911346205400548973160744978507121529329069529683427721734176604648569170766060199156751042424389066445407350839506319424970400911072171257339992268420757531284194966983090797359073754358619814134049523074710864886251541023678433783069366407418391184445434705246656475487489739486156974544013904484862816271528885812804239605618922295651880145733228721569881493811391352542634651700968475387167310029452340607490777824464933017150174910530785481388692741936730379489090117935888978652772812090082104034756422114995023694017372483573516854769596734000086552730821063349403955587281840974130024056876573691403861792639344028977579046361486827142203118672061760822767913514246565424125792586220095533522464616941901902989871441576367075125838422615620732459316193900465250068687426128931379376478138370726068728488262867439690261750586737956764907191876187292289773973954139706287395029193276032334285958679045920760170849967718307281527613786885129278320880623155951775957883649288571375385676402101073366646625030804426305250942934412128707214371924709296432298362353359606258221219553812551952284568768915070208134601236393792978752689371686067670883929362050595245489531978943463888962492066338682813929658842213450012240399812896433182088274738886737352567201384216412000351920515798441657072741276448739564928701811975029938590761051944554224586572774938562601389986570444346269243784333950160010941737048792940892907710428059667271466108118709060085371803940217287610991020366546291980657957541058881638923621221160701350685950841821936377157151684142953417702136114473435826917813443591264814763771140911508931828743914965127616809729876973634735994883163956473714069987598576553650331623002720271068247337820582610846353967491784380584788381490921331869082143115764895850981481939327641866576152310204411480877488268460071000120795354264967634335624872849089722945304407059647971689909890185897340684397681659223394425904754504949568781312010091283033486313634564156738331741884409901357019754416608001739086066452001923336357979816220191352361815551907111975917453049526861489448083465572408703931802479127765023842621854099493462472718260743328518212052270243138404443555714682132022744245192253566728092291607102400003358370418545181006059888814244423573115486839321642679151189133500822778959823626051972846194725416531340611376958317488142881671952279118241470624877974889253596000420945961609974335013299025552604834499014207563612250035716505178701638722587183132646618565441120209966313580509113326901466182324126341612059013382792634696523798789980424202562565195348300755230914411723578220431395757755346398774838689085115052246461355697819349002159285350926642834539892550344282317029457208026710959871058627006175063488500339673996476295156573238093412948833242766799838382766626113371949574028103163947410280693649632191567386534793518327825476713922304185727093143850713624230444836119369680009830746556166723026900403642955233427022068846592355905077926555007893744539002681802656347236326377437297475397424243920226699395876704209860942577389207390658996995225966799788051534491442863822913779792093873509877962454475072719285180421551123676710137537841914552698151056524324045861620240092902890044406918514606071311620770117219767318479302360988225803871332246691467038499413877901523001586129397504764044149369116441806595789407589277812755859370523249171191867544181641276832890391455572789332997454592737129571526596233056178230137267562559565369900322610755577710836899699912344841668129010346593369769086813743939130592276359532936042006586976232898927902645495338515119201941720832489448472245115729393822898179817655563018596003673663333831534958506435429094507486420131262006925681390113220618551971224503449235822826796966384267642934934048122146696380151145836507206234492870639313422018362995787788809388323700525891332740131941429090983109471642880461825523624690119778951290865843164834592291200993865707814818005307725333421723585367383202889401816385328358264049230478915764103737831272797975939410740809219581986218578773641493682245771336877808076517756536578177989363732268769606710048258055228097705538413326053791777278721342038408385922344238127458133582816339165219871533848355650460830233875277306902358699757872746343568423275328993992397513562442302562372943105795534143878881595032518556018699899236855677287163539597364081910715877238835691584980821843850721288522629365654165654270973775807190599049758922592497454151883110703803451800719297511836283026029249312018420560624668516378089336952289866567506827825531255644181949266421986052580724412778243892361994959220296452372700722619620635594590648332268163123579729193946760892599391474596235577647650724588844454022682589654784114341362714699753585070417787646188407517766024939616207300129621314315649914294723671555613573436929467406361045084244884830552095992372122658169441700508688679176901026543755986188205230951797492181138121259802686918678651666179878130066365271703642033846175460206112250976490070086455907206450204360148519865770326718472430684481508587229699490986288388373271343952361432888547213931619917590806590960859589711783524352549952453220995011618198078961214147261033423946026036566204019020407714600297272692206901994370751258860656810489699319408916229137872058655263589426739603114946681947236474249755193982174607078026712914228844803306803588631342808359146229408847049592733245038772393813861465562597433763870516657219890902017572906301644078739696360469124486687288438843150081269243468620364989604971846020940839377275175425172078209878171083922283789606636849661024921805176490625593781366880825611711005978693281896347506583667371755611083779697405730226190522042658937722997796087772643568294408449649388881601497425425644818016762854192782145422645786260062573800663769622095548854933665554287382090231662533659868838515476259254035702282205510430497880268509849439765677342809584563127673231461605112463908689939081379652447392768649927468910916926462780677349651772622175050123794195428683439768306060978717074367966473369193749032620381001724268699698047664813778871749443541123302597267392734451462240411656581634986092113364858771918362295945556862545282682931257645307934765348111139127549791489160956011665215265558069677309595518437736581865098863861915590248200215687451126981440651082422426172465541932356477048843494773408904594291433758043058337761431105066045874872456304390058952401676828563058925396140974103641904094218261039836253789501852149655129511858886734976329189360592555642627263353700442134297626913422617426007509953513545090310282832220744863377932995430947095768094837648102466344633635257560590540949415414334435535364044659622999493954635799991919424357883304798670514374332861512949234156608449982228059329293009026708789268705253142503007304336224020280840941618596955663355421585373865835777834458571272952094242631482299748639484173286906456107110456029035698537255926465455410181057106869898917284828678989187214247870282135374672707013377100866090011830096905454114724188272662303201103399502531429415589721130568239931779468008684062870294706599710934822686002345804577030437929044647530470619398913380768110870577581578057736670255764943742406113300831454812844816352446508576994868952178266681946572598069527317003836079290555360074303825481383397047110362013592309992794291516332933150815422313729574348359113483447438202404117344508890377357279189313039234906414951705258510393875612279839789821492176280221697636320785358253198464666062895754699252001079151441328403378665632168903214627033855212489500986165883431101547782204586192553733174672929640831578476381819482424537724074544900726352529623694529616277241638617804325562982894842915428920827670882906527124359822789668614764650763670543450817757614279340220214115356792445057457775607317785716335882517246059945615584526004746230057544554087638919887646062010886472530724944060012676612056535086260227859680526739744716459157051320116463994919320301353872975012066597523693399523119406216818290193587993050781197018276955550250168162263567801441467051559552335465253815444032575677272216857115820468366391994996430151966572974278705702840359449003834830549911190380792480462215089930150406572375233163014101308606128086602084884480642259009140336420665678040109398062815518513272452203539076917611286399672465168467902080343842077569780069570150456008707601186188114833283947014827928066212866891122439863660726514778318237664575368001121604059376832285387742743244314831741746403321837289660642125924692233850332727696599954093609765191672618911025236462113410031025428885098924600570091200087131946228061371283904215810951091111969922400735243287698024079950121524071840189315384193813738152393165573245454577490222150611264848548912886750738873793442554326086377444991031959700489729380123182075350168214312787634907724587939700023073482271620700444243000180380959857587175401622245642658455680426245882552130623811336183609259084794953545190613421039973894858439786837860803622050579758571064017376287207902217862938440929731931913271706302125734594160528768954982668158517384028415511163365334206570159777646440491205765028998170232823897587455925178661930648729859664956461997340513808113072745605743641770210703773935890056500432236994909290456328039935558012365882532301254077731442810799039673169676728181730180869091763547898407791009403312962314233702978238048966556002468448850248090530402479665154988072572126666036688847284924703797614950701191416320122243032894656194654685845550918369546328804124306241371526873798368429595411077236108061402281654858361668791489689657110068658975330253539400213125450691215316177885942236319996217650966383444724289136609850159930318587290743651276640556074486724545685997477528575736952452336190775374904668199679738955683655339145232336471674483629593387531137209131725506428648776125055370240456804942112047548570537798950023493711514194684582466316239310510689611916507357878543349384068106588982020213320502605243616389260226353992391800095124578252379071808040349734187869416645570692757978250327901727064254153830572853956099605738459684227346348393251355507652112146000182590817346861089979391845898722665750986608733205686081201756701714283401390429710148074563433176609051745276464671079171862577589068235937931882284215770790201224918346293375673067402422570086320357018676341348112758980663677313788223378232630253539421004941481349765327333320428568243790986696359247940184097421162615799552827210110555227856331502937050531511444639764674417411324066995025728055354485419756270888798476358073089677167742782235433513846543083748945453821952342383152553270876416731133128540170979277975063870196732970177946965881243053320648897500393848262528208768171213185769041553581381979158022662300131099130287126450502215243728485355674351101871042528397075576900880382529271973313392016513177545243248787357922244402856956408883210430400359413590248647692197163921667883169084588235469547223425038466882926582127406838238221034335883649139780739235443113985262517681723950619492040102190216656579213829084679523585574804267385110543498715509271838970797144128423631241698543798683968735355886554440047775870057077531895092618043308616490384790626078699218026562190501632170475262568239154053133519318096688650723464686982195378247410592419305578584403055976234494575598294172290671684468077063696303468164093479517422201700826336814267866287527742013750084635831163263022699177099632950838702643329819859913937072714649244414928619530299540560935231798730377878544973692107784059169844351316662933582614497424073990101195068485151971097752214759375612780991778044420113291130916486468208119402926180162386898528308534756915062236773988963032920204567221269710484978450557989024478042945722291710837511487914185847126612311036068503147319148803933692622676253991538750081447156960997847525712385695241069102459406144108954219887208058654577841835715844781399448827907721715993280484211438883050266069437070143808704412819658996794790871294923196691191568846517826327283574680522249945510233533844483541613916649557990849201438173481528894687175972017182948659663295525911015967402124330394004174294751633404678678188261588496199274638316981739632929292029531554917286394310565248973800482256849672764999682891277257083250252539565639294863557275316079593643082631385222747674859866258500481348117720787872334779803345522501231886314822207031639475282068272169000424781803789352087464709218049454937349135021248585340269852261526563686217263813060203537670744612522131417157909205111740019777295121754688037438431212817723718616067577580425959725163362064290540562147924405837561411609203889575448395363515309451939914723104778582679148181064754404760061850197684985987249191133452567201807654952340084271179331838614871097725940178516318269720349726056167719785272405757956769886891686399094272436053414538314300952452173708887053544337102737133154718789562632613756137652593660132560958331597435933097111764251285204531628012390780148275474726964868841705646789925370029877317460645125987438392095077933086872409209676326984912486071314972592930722963960209903101037468425454722071261813968597236610020754370457925840547932440628437419170430970875292107805406839837713841655918263819691906166613960128663335257744188116635208470567807019998123983817119353339024361913892885348729918381781075443705993133633927022884142361313884745225919453480358858906527771535903427809223060070108473056982808605401568053991140486856410570317061779100988068907438558377560038337632346962754091117561912290686399696528724860566801705212054564692730772039781587555993808000667758379875340238083854919059170953131167973460232243693201749459596682532369895531649995668502653486204376523826365071712252755270493901908131484075803060009594536589437524141779109743913178246499410836143145191736380888632995956251743665684350916161164396154142247635727181612638267926361813579054158096801130402678387831381679846045775977047934878845079236471539430438087286391395543782720045452603855505498316670742673316934912150900879579984514395195238057145192437236356471219285733133938963110291788360578727069952468235615387435416659233054311108525563445878248570025619947196625901705077538558524931291429674799029232364077881674203353008516983553393538318801188824391477437919456556019412992608976588419597357678934929801465255748604429415995558038077732767971966107480354304230687237323816625794177506891790001224133346675329276429008102917373796579195766076051565145896956616156787514020551017584982659400617627534848314542524282388721588060942058900344903279281486065239750707078733444940342128117714434547001414344581017585466853446056771092957013063018644985623033253484081277471196745051637028939040043938633819974316202956366780350381127918614868531624225469262059959581464479607533224767680366205033636913302653662208594948932816874037397513793047213215614471823031294846925308158966124521262406665514371261487901704146164336944128328262145556482611855748027446251221948328724427558099509548572642112345388420706663887082953238927585716495808109752940944517845255575644948636862720916528281438307836541358243712494629191008986497443178648513901957867103592302669486344896637930992034945555834692599875089127066448559498327897416809201688004852237907130294049389430191706990950785902296936463558969658746568900299284052597483569624993627449561123243754961428004656370415634200614704942154188218035866697389911480251763797578117757280032845932957215822252170176219595914461784995318406760552985264165016374616090942132948309222552899631751370696895688017202579660408245408799656950162702437240760647905517330166181933472118919777938952326822729218659417909371347519387623193388741340937864423633263302463592598812343254356694140137132532260908875199390231228817565425712038283916400002672536733515128381793536071843815280383261377065736368530777701018698858849395605818195460402134144772660967483189964710309603548956851124672687605664344809495929976595081509295729875832249249644624690171916612452302778677324730361483400363300231098717691363551551419196513933873769645260133306436274674161891357999980654577003119062534916876286669563170477865100748003773610684573350935099691103894392574808948859984675475837510104709683524521751818817378926376954490631641274994544207385926564607291025992051300590662360816432579271130658872924626943232907119600532487248220362099336368520564817695967486872384973983678572997096783912477511190764330198301608172310575470206147333185990282445848589920673968973374036487733010568177079552085560360503736413122153655477969802470248829520455299847607440588484563644604065038922446081815602816523335642340849477139693474600731393673273241777628890627109277200748583972742003250300359924194104407042766094207638939975155123548999339740988628214009564453788387405377571546258309027178876817373894880132055368126805727687739076301486977430679642963754209315384461492923011703879872749925777628510249044631012013257254420686132808914739781046233267440012586220738452657231395147163770897252375529666733137513015219124256772993430423881801055573108392596284141534645263359854595655916414048176876388139346905043561498196500988307754030444188543379405216837045342272816735473833390578103060911687867197670310584664628271255050731268261172926937398885239797650080841312052291612692150185104480883955242284723057224195173652335536049363774028490861550952511085299542686221453199683309802103745041837090485226390264607752212059183748702814861102853922724892871232507884712549670268049587136589200739961687527813418306663125028085913946774290445059231473376793430466094214523732870750927809377831670309588972540133558060298266620653911103889648138797116612164555105187217599693880743558388571056139228067314775553314285552244127728741485093265865807848775015380603811182225743405813929573441695553183974620427271895723411995151738269281215178935888679686732423456847446068535532130229137861394614556668426295419275781859059311264682134719768711760237629605470479684704622506229164827417061785632258830656239060505888724860217178017213427997359782126358287439154993754908091036409766942791005476846643409320573936055565412786734328459421114473829864124891980553480943456623661871508072615530979447691180864497589023655756499445070185000123363312557319320061704310819468199719039182718277363470182465152983207161002062944771263439356312529945230588140663468981612725831480441233139448978069626410996511672729936942760392603724106369229653421139054573415484370942493286234976109139805716516912964026165050900837287572299727055941584079914542912056988514508696332609206886773490876873051440645831902265621254315715560194716390069556337767632330723391916235568577945713625073086963329838030235706214988876606444489765979482872837807535181237066799214428773645839335536880486522662092619005848329196985242501776775445566686582750258209119581139317439294820762554623098849472071263732759241194343128569436048252067600014122878663489187570367380588671028870576407315473397696726736984328825408801783527848181230835332592377464500077879889443663672133271136135523197752623089005955207366438115094878252771028063239876187974773381733029340499969715080083549604026513211799691172806486472023777125263371398376823925584970186076757130789327960959579011746778858204617088798249719675886316796377638580205922157522907504553123484603949086481934390187406432375641352198224202837996850431560110102315447194692869221080240320738563916411246045323503504982789544474215327526689986954303195377251171939775664465056841431678593435018222379116122191210701792502359112211542134286765097418827004660020764019948032252518155981242159807665903995308374831897928626631863159157942882488066564929775558649298382990979735073432555098420607202707172948800495475567211193715092784200575100421881077752357847822413478993287116609881164524540172705461261744920152809096255790395383559798974156789899181222791331600543877621964918239471535182897743467157422638991514758382063423941828246757167731015918594912695611615848790911928997719923734642665338323291970553367726090515406640157016082564843381508829470789680504221541910673227824059076398749637137386343843876051633082441606372227350869024508302615421713616018932665334669618152827445788180011209650979804937803604006810046848628681794655341010956299112907590393844711939261020738214557276886317037526274156230283484573932025880398302016254432488946648351659867955558734501970754955920757441674150652990923283682667656449034722989325530180900506646737739220029604081210089894112214687853138268392873338019978156553732098572696809932660136654959921260282318616693565591393620926766351952287286677649758476266582551127747984618567004211742051615838810494121604324760101649372265817033505625414252850555684275841584856903780639477147102573153911992685736297194531833990902034303158789622604501800982216183038181107778243230034804983637457616784536668550147408616613717622295579477678077311289959737866601733872113933215803436272256434952942901674971287437735259853435297185193207154033710095434953318280138853613831780164493339019917346633953278323034933736889523289017243545530174805259734390351596303071841316647186729261738061248821535133284745026151824239274087579837600323689044205137995391431820927223671618712648128876192286308627321697981615159394750535052599483457057502181985047619085139943366787607289273833499094396589367702874048288894999634185381485737471674136769882535773655072380474834553577194113837179066918718680895073052789126209794627337544046404195387304222036636837104867107282997139017014280572287148714714203470330794383881641101748750083369278073098028580476356098829493650828706093168226468857065296894078543844943645141227677351987486752717072287109667836357103495473516818667643962939997845307918062229440166023686085770244181696146136956360034933269484382200110639195206885950714295444737056686185131242265809884453285817098195850179138138334756421797016823086473675991252258861975875571591011877155075326074155133212998118235740020210123385168453430715558138448387716977084352249268561496364338336896010756929898997816871061844148081645507792113515982014664599962421057834541912130297225200014842273701585118748964089116590063513969365989008249936165583168320705484500146362524770516416713300026461984204336525168302592475191418349220928876436101555078080831735053301865412579805881760061233256366133211167356603502050302045558492827985929488243066101055903359326929368801129690851654007404092911631615970089105095168159100179482715677600033016710163147298755586962260139207510399975489831848300572284247127194858873308663411995410074371491330957453370591636093405524387896107723038518471686669588101401007983078042822240798990654058630419430073201947085420309427455688789459218936821033895242470441333446999161998077221959914433128642274296424785994072019055857040979706950018985543162502311632790670919178467722918907020267963069431573202694292693193458979286076486738960867720845231459259832266566217488461304753213463400971097601444601067927511300213139618716262929419296584561160524426327052316576662787453179036115881511967749914077349108406015244938504810518999805049283904987567518743430039988606523129632266323928231048215129255575101473560264539148417359034877440410591128824340367147182840361979218570253878896531043106897218132813084774548723895251334961241924542034311661849832949868093367474649420937899322265243193732297760866147356819279675574583630449880001604237907275943767970001331307670903300000698811669916860726770018949907926424355370211282721182098598480851633579955883248479415888625832109579498167427796281403592673069616147377872185999918902024679652015368388424046733581684880795841470898147054078333917091206956376166854588732559152395494177520205668039423117193167963142595692537002435783016296076692199537282071278307776419081794849571981718834954430410745842910731573989185055062791130692887137680494413569206274383713220889343516129227315526561892569468864619185747357299087514942998721093603494486722643404856621395463218332243648839663807914991824566212024787381748827424152864892646753296268629611377906189374247394723389753045266196763386261878182601303582862209917245018149802024835729850145281373526772302719390896321058460977874686851433849763755678916701603013872879127096804092388019392373841785193754929040048845156030992076558283811244404355054466567311614302365536637299340460525060759648691944644493548283789742844466599009443366349513270665981514714866901414872481691064038322891864968768534442617008245192311115871298184335620407863535936311913646325465373044274571094481119504741379788248791290881751365504517564164268714923761298272320952168380121483084200353564018156193244847376905928437061047835015299509658725655957564545280354176591330145530663548165506199300594272613224535407446053686959855779641639151684791393916083301645185720172211301036198045775931284907534128093524069243680598651533570173124775147610885930421637806504796432489070626941266224306233264236580186128303275339760432503627547603539178029658596224683101818458801917706210247000341183317073436401876338683743696641295753297275220837176066568849388931347684804081061357007289615720720916780113289347872468016376110583719038033855248914128219710831932931467039552267841625744407782962296595374636510883948699622231793587474947869678191820663783168303143483190299665241734857131768272385522291456532591900857787348748266139879735186342368042137954771952362074141363771622501343019746299326047189820167249434647295340258915161490861557497619194143194400516608082427594093858233026185529389450932208763652300934326885027393742017390756182008743817256323683502181452744425285199110581104706909884929001619562464490107145187892738110216039208048215320338968336405702864821652539143847453891383163678509431637596656225453170143656479021462118829929341518017369150449638524115014163980733354456852579505476909264645041205208857830056347093343339422635254240841849435099281540652056425033190257208964253329909819400936308432143587745906656787386310068842046202671684068145098275381786802950035083574157300314397907735584278652592291837700522747916180669845091117460149044436984164195735771516746930927768125670546223799529659982382208009630281797503427615251692368433625821769578378623257543852934916688839180197215101065858130751117418834675952256198339216413020963411386373761323047917476124151596043049433456705478794172297942456150255061974664676496041301477743175501978717163299994195518748069825068836075251732991561989335628592028503279170326435347223686138671619623974150421815234067571457194646251329910979159713540914239648631724641014123291149906179036548218733451247157822222256442914115674198770380645115534599465589113442439614864271072295283263022642852982206522012485171964158763364200582841707075290710124772497349789964372434230994612469588105206102076130332460696764940770070735740194964255013611276809755047165305478899113311985821560005481425943504168856646577736055725822818302655684423081964441756339714103205426211792205592575543186790814086287909880196390994518241525808347723269209850844547458000548218847324146970542771334912149106864026349159989526727464237601260150601845466900306998739528262093726953005582045094637095518587478491152526583390735469449852961728910147482112513663009583771076929370082046792966396237862535716690609718137009885887034793381270303285623245674289383183037128708345871145639773011780084905721756375799075754510966580895344596292093075897314928788452162499294648458793938886842346651377929745491135669462926758475490557014993064885426203792474989145837858989778760902904726712026768795859441208803924220151865977085476614351297204626274118352477571924880735320992075613252031030334038108750192469172502760782509314252673140856288132589603253864287843556145276620602781748186782599384494150023718765715094848863365384034024637994740409848437784640610408673808556091412362796067221052667289531600874812883892524453339072530664214446552509518120974125219685423297222965867382802467216355708463481396301933944987700649778991083767837026748871210315839663198832222240530334786681645211227255577732779847763979380023645380009110133503250009865586530625975103292703555753939212917829455569746906864664000613477650698004517708443178392719930284973004795426391733976468048487474181624269718647739600855606651364124820608142122699428984747682884038555644004823120796690021294638956900094912359213688078930001750206614419300686153197319403771530887680488499929717260209905758739811448548337192106424102828405999044825906091288298625226531303526234691484157197550181212290567882585359497699754921422199870194344647529949525615859983150349528332307665737978721273916759950284879589538877578126489726999240658031354159392928997226853781381320147592530167087434280500618933843364996751748738069736164706113571996625114436848143020036207697768618954812233866593496752313148825549209662926541933946874681404105142968614302541654157428347784278933723007082450756238146595134419659004197266831130430274876646929161603729837509120857074524561975575437002251761501106684182298204148736457081013113629129937661823965777370177264110489410188670109913157214162920531108880746384609638121647885078121532954970050563368999728212897348553468715207195842949286231369229180062364848379201811760474796570889132736606712946054712356585641141786970940155092217675257115553492371467519258797088463399744135425049295488587457784450405954601261642765758333648178815395813155482403586468289618875250909586520538335270109666989036341367164585203142829346819739919805837822823943727789452727211553358666598768065706083870838729787454995768403602548890042899439520009764708645109989489400991611666755402907981456471281008453478719046310999685564191234263895872002191732114493346115317200497206786486103842100583968585839990518421651898855103736058038600597522905830446197947916137507187440979427346616651586262686804956480389998701980950410437427429170651362060184165241609004040039937164143295871590599750398695893513034899140710914315035423475201123017383792780377797830916301170744089342591888945260578574103660249534489616334765430315713333643758629988410883584501860274613204426996126473227334224189109668637271253187993926690823418952572601770942740288583924096947810967863447075357831955432905908261632384895882465317834082875224065715907429533939616483594771617796469720563004698358537622501281287480200831255525649856326604345466769518860343409249140821444972259306134274439147691868817426973259230604205349718216843698127070474704684735354193162851217998339161159849662919490693614789623897704719855849631734038735113551631211121951220944565106537784066155402175669691212260911249417815948387476585812768048082780193606455731273043038661303797503361266886215837630476744640825395243070400075418278365672266607683131509127482515725710605463476025775397867507740798574117297364242453004723474570675849818328117828010855770119724890980455793277575051089732805802057152977252113360050480900634410667201166142337313967287665694039582776233262331621871188505143888857236974014323317705723209870395665456418580209535212954043298297235939957680823175716495039150590450895925824708750882792700697461490062325980552306105755115980133764823236082075886324048126307739141551746644629938954223166544107805291955069646664434779137311040559559545477832329946545727451616030719157457056848804317446032516876397384892734495125143088129441066282575364156030285835685864770006178794939323253836349979605103606984961480663120544902136807799114343313457825477888804710252642928409794046495776809822843921853380183015776242372707253247913656717927419690458195741344803297918794127200860915253466275259010983301636732872896443538567739484473610418306198703716339870217595155516085772745209479218400243296580403166662128510455169642349173674209084184238541388710453417107518666592784879131656883716059418214894396901307701698246516163248758841068388468194527808147045345527729146259553968543850041255845909335087345607886882014001823090495704417244970303922477099404679049109070014584297824823395133784458740650133658067173841723011984403621332314091401082496593500643885491221608424304842360778254153331875460855673682017672686268433147903873545517098143961274093627841736167716303989636002007479271895310538617654522545723718306119042806590946978513034945321248922020042955456466208160932334969833366928042315022021102514013294283326098698827188556288812825995109528167024372344430220594440783424645744539066013993102210755946780115779698501558296610920528863581504297522343573563813870063160494256542704061702645454557809336761680062669814733310011626330919209580236035373976971223229380800401241678091421297334130672256494278790751499294128248492546270919041042212744936477822362666999241867030953601349219774892497861740919910295538926923661898443021445275954600142434541248899329670081081489297182000716082694510202291284541869348736273057189991392037839118320736991200985907346811396431825545380058891346552732533796586071099236437478197985904155402029689216940056238544527699124750515481432431662288779865887170054491973744570453886480968206459090372055050755328937625404403725568860339427889889978804613754290597738073984450725391017014090206427454554501116951923025711190891137203791766714491379631822228128442559639957560268574157536330117051614647242163373811880835733009409708099513337438890941681258294336885447465697386593605778247107349930913246684506338896695935038694007853004330284230657472105707463744037766278126312342978297482565119358610925325666168547563674227615681110815065607626349147111701884785069941437719932412068228706007398317930432214427424296856334154816614788129224988958144602365960270107424508099207508035068924362680072837684264851173667505926235498710467455345877844457871688428147818524347734589848816082239592954481774508942068397167897004388520875826995811077511091891640663630132634466969458117250276302070368391979592216161162266108850912967625394424922011036420098439670824237182662762438784146289936022963259044230504618478983237683795487813086533811503689330051051663889137049160371596262933749685842150789808686087938042598195687824238362899201508550988918480077829445764183588384737540545736421386984983494928973033601354770635790943733135753246295701906395735156279101845689594585653967421839041186317496915780510167600944682406125476812499091479692122950515581309763308602262986606606939337262130507160347654336903409926166473501666405910099159933597962599806107597579690772595057023609521644343738581011964889801822136433018530916461412545376218707476260853160391685216075619876021608942616815786646518374430509080191289517644659347766339941888402568131675113394980557304653501921437582752330522230379638331639634858467162408277551451698464307161520830661441663262967529639288651094084470470398591887671819995622641719695072189962486976641796384596074848414445543758735304362998028437473153409394775967455415031177409552679977534788903318547041450363599964628386409126838864181752336755772880598593863563400237063143800175591582839060684594920830203034440759196364927553239460965287448597723872998015803482279254759629982882330032393857302170997871260170780106680149397573984971311642780324208417903180958475798152731179254854999449246102156094976928253957545859001451422015870665613011889298208995033868306994212787487946250643668777207338868104927061101995065574789858152783596703160208251690580829608987841120375223779063262483709239766919618364681214741792964527671645321716960328718516045334683289813431885482705195522405600337298533230133481339063375023824547231199914955243758261705127431913579643935355172369425935132611198743899809953200033281172310957841237819178299193038049806666096507226376725143991530383121382148124901529523373355445899268162435952565481434701788324528851403556423781690166457178562893951962698777464339546747930488785957338757647328979049316341911073668324043456089292910142900402789056348017496689390417820998431959037355270178196833008748810749039247338077612171761528992308114119009648501915187630024546408770563101590844622505960843123785127080811902239125684776388827204013851281891122222458877723682854287961047273250290847451734441726242354984696304600874286223081743849189847350071287151166625108730809991500514006403955475826269497194013186480772799474846109287307275365350981734271090018477837853764667598904010061888695926710486306732771129286736452648830780507716927942610236164058290603792703970825087825457754771624557798078648617980090124361350571854584477673384633881528257786683697700440310463320047763840850729063969031912910095279779428103635735726592422378083917828166568440603083249479829260333417114279837478251652089246973533195881438677333806959232896875034459808476304478128379158618273048326771357164179133552327519835863744873682408515170703637029039707439215821761656962456738723179693778301737169896526919137378209234258446563630882207273525992563564606409061751000382369562621621832721033715709570765966302106361057566740156027532769447775342263508293408020578887454804381923164288727022916544060404731412830328341705660737835895250082452941005090915762265454460533410345331463577391791596282457094242894348048087374818337851433994575343101974815844432103856931299217275658668921062876430922904265305920241708607002876119814892724169278171586568016037787309450290886132523974056077952495576629036982240803017497709665565513544302650737715413130850299227173714318353150463201835427208927981595591826545950092784108159419116035683598675990459436234335850079260138515922463594870671979947810582366430825220363510294051314876552243231288287599768005423673512666890992169339610464329368723964270248236935471022062060842361482203665417017106438525714830628843315607188389340082037732719308429402998608993872535685591925430128634582702978737082453123757638017955923565394905214210099595901129479182527953259101813537586065956842494744779793769124721194919016141066123434417520620591983478150823144927706188865833290382744782923633280505081549995531086021071101820063073169960270040635085586446747842805933186679463841461097734237748323600764652736495300564449117042721216256610421567362638391382771137354860876206298925772953899417702464032482792408501952931954681119262608024832523447121086719099554443688254730596739988267635447753363553015535998141522180985883547848182844588576938855343870568144875799754423366810277427333036202268594161935571753466136876114290318397893843746791982847918428201416229986857402095667994554307020659956442651470902804767561574360884106554920324510864618916836005230061831546380100972993737188136188547169424755704492703243085151370963343655864145347402174603991520930411057743594134968305397458465828460143685561821090956754554794156967825280277315055291316210786139028356044912405097114691612463595105037485812394728262403661206938380681990120147530282409612381004861940217040082231352671158171584930571653945766883328702868286452343709505971645446478587262619060592406636978405132254908484276891413467347196274243828364767621361269862901191353150936348743446790713310911265491296785606799447258992907694535270599448501246070897074362444147065181766990856174579780269948727778522953160097262579258647256658042980053590922326389390792532168999898210764318867503669039374281579082632410066066248183327346432859095160243955434937566155654367827971513976302953299940429262363177346220553879292614446656798816613945557101348054311387870595723856004970084889789150880361221007990204669582952272780504797430039426275118918880579041431726876515393674973308327921465849429892480388476821722739808845159446058516864491164317954922075487586757628066953080685114537294736035977299475906356648580815687200426733613658329821172598442931132389687264506608426020759665515342418320784540480095675887280213094329211304822363508454595506086931747108141201569440181795666900753642903325742226542761026393099822140503371968921482057033235431631207348738012014838312570819994734491801135064838069004513176877398031235582765105630112185369241095324708064391762510834860851836356787422885045898225933344767806706048290430098608434183376387844295602741933843661607853887401747575579241109285712462544489396382989082938043871386949715425982506402781180179981470476003361321660784307172076019071961717772963881255018352769928800640938523815509222378576969283543216715136836583753759361233291182432701796580985149953959214494078601109654320373865602034149166831303872521308082436159372538021394096310374292416949860107884962926389659041524585173347994013166403284644276873730424006183107126836789255696657368640703505640959671506766389229849024598417067379971924149446864760522557396344371355016680812575073911386892357143751217993625090284632069080927883339513162925561744100558493859977507895057563992631020184387738449960814689605161538392741108131995093082601407294838375091746671767019455691689364976844957241577164656825111141771136413419173549728348802196648412559205822399431037004253459326826107696114392867260968654612263798525546550715519399949163351969591355349259434535683774117038432867105075483022025517195656390365615691196550723189965132752319197529076074583545962361712441387246914370705895534359606477505220355260026161254229296336166018881705510245672493554275808874066936999378999161957388523068587991584087124806198980759074554607295385001670152648822557848632584636628923036958361888074874466493579970486623231180617081956050557824049311278148563699641810253870121161383896836408311531491831836172715788480794869458263890010734599989508168544721076882644458010573501911366865430432252794791522896618334429226508851614425174670995474714202549281622528131676731428364865200227077753792101223511444796208964609353023995359290760714967610221918576417153211172432645415176007017035463005913408007713764372191268604663803937998452312569893777484576620120363028172577835784608709276040365442573304524144144929927884650987982691488475648090711257231081585319095383940431991937130851406580472067917437429816192585832066067966168675948262972512616071600684517785965015646590764912974382131124740105591583345115913877704129956259376013983489302307330207939991941706753614295966813268448448050889887700755771248343845052002294035924197068961872923059427615680759756130542005851320381643260108973323625140909933586090765636028250911461835311834863640835217059729648877615265992538593189911305826122095518433530886952212941603349636048626375523690916033157218863677994036321485796379326950406625227055644313883700040571329401966498603745864574950121461107756193836580270365547961162449515911151023097804072345998702610265451446511291165273465760619023009455886262020330670649286251575461076064141851911040796592879653065370649334934672821952074294780369818806348575383048234360737050536638242127687296695213663630984096150295282605418975473082437794687988204068348671224842777508012276207181456298460157551296124155712716303721449096957348645970015937843866328270950693794916141431870399509325758759956375101471679074870871167865433389808410811621312531244676534785387276037851758798730691141173584403430394894084403147881461424764608503261972995331327892097420866946248239359223007291374218993812470429789668726324279608259352295983674520948116095437657923359821567363205279664004972650420245683859297604853490651702149619559825830653986413816454656024018297907593352906432805223637294849842539427107201012131591201942769656611345088584699753573661709825485624431846330935550738688137838457834103449663706584903577086553824261836589876995279293271246191369055554064230532063946075757568388352605319305963235804464540414720462023472932140016049020815417118543095585952273436342441510178620251195831764603499693705037170772687563277141054202117545882455515140249541511927223994329618953384595448714279632170198434547958449142564751757167340808176480134487592420515035866297122295885595992588591184949155179391117416038780158081766868445306222702646623606199744287776659366537692072756607537836255726809844522569325662074992416528928722987944889987735201184864205968819179527396587056628635414316797439863756755918442072770636602416883663278718379327609975865815356877213812619177843956937990095688277029349070094523853902505667121886816179359185326310514486140318086177635821378671016487718137847776275822034822071714287483908252898731735471289880682087080199360065412179513665934761133633894449203334224256744860282727202567872208307372191648491736350602891643490601570607145205794266206800966059794986059590187691961792761136418607916401906198600651724521070561848292859541909922640848200441077055472266250993325746176531716348452756437775803879806622643786819740038144878846483549883041928451819172057887236612376172108864418488426500291847345595785509758101115232041312986215247504935509878531713083020390787540984529963684291555472641592570436090649114896016903850395831885170447396201771179571481031263445956317141856863502391415702564207972303508678061935516453229819752058777139519131570341246789804139192640323644093393907133014480622458342941701519275559031900057359025294029551355157107331429413396640486146536879388138249748216595046156798885538003677110573102802357036196440077610058391355315382880341884277355583770190124821281531365673292433797328589607448668484566685326875313420321644155768464192255510295138346929333516999135529276782302706789047163587020365078564434265784358142771215223326565053775885420479074001235890273066556064097924957180350135864704146186086641257748820781467452419231570985575552762109809004329348919564813892251086714626255752741677640661748277607345603949214162941556667328349734139962688408215669801123214550059988583137172517923983240941520511152102313244713515075140277951880356703969913548127603477951584313125545991785002127469937387459282738808103463508014616014421164841845877061285835888401708143766528180195096869497309565378810834996015555435167221517160468920871508411319948390292047196033025171612619588348564902153056584879721444753542216960126535531839211410177311391303272299114626829235172628145711615453049911738127606934355017116608659863094117814884877624451613489403954474156868943080763562158541744125813253431066266968693228431959443556561752965285024674495695143871136031858157448028551928764504643506439331730099341125664918671752651657918887096929487224948049234371184271586135803191564116648899283366200850221103538692029867252959736550126811902333640499399335462336326725177302196939494106961353146366052116716570272742761094365852533977136495611801677842495672910399130255344699710674137922011266065894464873657395861882848072200475129949157045408908630530148018278885015465253028931798778832859004413214773252114416017680593398328618489699581628871877806638133319851904338493726121958186119242726029833722433470607130708128683997133217898884776797488072304883038208439757082387441324714203853950888493220110079761918502898179077832890465166016795444808061493158271738151064918790085538822617993238993682430330382458075469401233971066940780498747713097050754702614367672632461864280595734631205232501764149496714972958096415046069908028496366145800058743785690755904195655121046627832093255680896410924800566916395816000813170834305688011781381042676293488361826252197583542880478991481301670142594903905270349480529500896693990618952509365533021436354457992324728727295904134933055513626169150503702581087656767012189564564038762725087711294322909151293359108199731005300109294295681347987437680102376330749998361792954156192358474691752273923426661413974309553549941183341895469522910381359160371081078974736368481861509485812196285285807559040003950364565751419300201090416290332587939797983494770057421205543877776589682463335214713480537767974168471086644682797381641551088969635860951459723429513561696617078480932577772934140791680281167999876775710339403575562552458567136443520366762032804135959272624492603271925076744546919333334878561448458887399826003206009802415910496995413310684363173637784854295583307170187343684895590511714215504868912704330626064220409370515069378028698465472797406588384715550151083279037352900388583621469905856693539573962642645043278831306979528305793829563702747934563171007137374871051092516187966520361815162538471156283262707636013267710093221641956097285403959551364014680047440307087733194263296201277338355387736041767453123607230237955902883534321515604715857098054474282136072202884394782356918259399503416908782714164286713909829501647628720416555708538408042186667432618894163928089055547212512850947912747370527212913475635248388057558041217494779569544172072473722191911554567107059095875979978877795657016132233685037036831356544341864150976465814939680282790068611969086315889340319391007701997105199783036205683792091964003464752274482373092734857809888591591926316216294839470554809862077270788785858675395391957000494258285698692289084487371526731313751364640650477624058738352493120998162976914364329581988353269388207826372536802536790473435313161887131902879408869753395493622586182228231025482597844601062727905183909406535574342558552555654647724682096458036179355254036367290037602135794059100842899677371856726511289432079150114431342620741118559946077796438667109419552325158687024191791445765846846580127046121779792239679942544487172503371251423569411867443999629301379558460590893746847185341656292247399978102024888054079345596332237741365674310242501385007639948516906207089590586222787035777840330704430159329015637189328539798531746144679877377987248074960124852168701406960362747418996864700319703853431073249695787767592512493718155946300210619711771598489387717960508454192479162435125521273198630430811091540174769935809559169357330548007406422448880175231338565067710502317629833315051367588473582066107661934323648544518181843763472254195927737846394951630960217799089533006759453371943775872450687634865676304491362424383090721404688220197160355865737361074686184589466162006050593812970901134544558882367672622366391978130158814022255894817183660955115823264090187751846022008458010914230954578364853371153914423857245621302910952459940271772281663796797626882458978552533435148986146434057687389912476446376462524783198957599356294428745470407563527288658680141127172989160737354193180437923948410107141681412384233695843645173236182200762081707883798834662111606090621279083492245403836281913086305449303532974909196477951073901620665721290048935670328101853403361156990340890534839739762787598178992888850257487433482647290571058642063012916409025085137369934420827192373283310351292915963973622718174106103878809363250772527108437962436476994393564532400775135350328266412106362944802305070087059075236767572274126450973293109167359766588025336632523924530451628935648979117073711900716566383389123854820106262722980724368804394582239130641165265540093685687119459646750811748226263096552130257541558759138629871566545198527453823504851001382433093420817864093973690173520579909406301023139031738743292731263959074216314150832357758299511159368718315544252360207029176080266204638939142692584601848606980862282705228938616719530027975900730196727201450389704395124963311815665891792909286442867007160410011909204988458293230389721394565580651444056668872534423437599791581764127851859581979646853732311698720345973542941733870157300287077097452975127548901106108666960545955746501116243677562433089891727143866726512984282872613441118610787245339935592046275843848479050623065152418395368688683939038585314085116154327560030598686199687365838152253827694941130114812712746156635463740743849089869360869361647829815849991286638189321256596645424099689818640492575855754959920690190360589641136017905551299942604463948901250329749624119421894635327012157186875950324957166349778076064253348919775698735343435002129170700773971711055901532955448392250013407664322032969406762860888918782310427054039077094165439417675359216994985767294150762703857457827350765819746295781166096721410921590905915081090907100915859954388703089145324558876189947072559205138545379596835388466631077947581668185581277746370020090678665170544878633335082135367767394431874016197976006296700151922664220434453113122285607156998623716492446291781056458568398529222458962350635171866849377050380213810012931636721175460708725267715305468910330728176805416529135534789033149169832646612719780653323680850086416833722757218254145449056088282617551763702003872798575886314317417562145253395722103116860036835688358724247697314683119788754726561139572058366068039091724559634668260304492279137484141149810088373288984535025753999511119100262708990504651687885372324287608552579171241904966911242764796988449696274107316755409799964487226122944680361904142809932422492307974653103208103420570003232271359459223449814502136546338762409499189478855062823408181911606986010329345925170132263720989524959353522389706091257719977594856185325792727885907760717055714002301759497774091625766407909322679279539969725608086628795867937887587830156408514330486495997893142730370629047005347952515573961942517103874735928282281222956688264665015344281281754048877284246183550207154075325932327882609504621102017193301371589445197921193573453750825378971257459076496808898386050494616611894842858547024702762121918972816925799768910892666279394396849346534024090910205528672837339915222532766710128640132403387292247359180680534550694952723956839440710727588187195168007991913793771265163517164005292208451525247454752695051299908330171000683400578452355668689173800833661678618338753035102130868446757032192883593295090597101192199938525889402040578225764418963459886555242869982515103833083963375901145793288759034414914699115709613541806982235929975884830356000393340352225174656606780425267989336326033140005897472808658199567471646651178317548068549318187723575183201747497714046001760299586183512012319129435615595990262127470314412144685089186228067321715706922814684974023697307025778384373305535360454008524346654628008434798602707729451729108295745279745859086316496647847587352106880342627826215391361437410061973872636477037784496337255098436144774442625820717146185588612650134023958654415006547589686536454594184266562076486022795184480384840780512728886337894737644604536586401350448289588408039366527035063420171847676730613814522097955800099889280817067822010357945042798545928794812225270292214813284363497529738862910051469103252164953317463076354188246897394983642316570975415688601753159085049371416998721271720643083912088687058775713186125699937154429715534442026436629893892670532722017632914630440285520152794767305628019949053826618713684480280166878647515914749948453119784388531261748375489253383378020037118727400750542083076440526072251689488949860412148147127406221089217365571284881998993627037577532320603666414282647529602814378311075306116034724278681216141959198150793564842613926456079458625075039134976259044266268084363935025096884277231640520005997641823879507354304421722336635716387644535167265189920159304695650408156755185666500553038624791582873603228897844223948969827641510878954864128447728619380286693933003964979326310535515810589856735516355733941357049899121128943877271681681306707115474158099677646840469127314254420501114891677258707742737167208377334391087720484047690556938275217070395792958287479416253909747268503004306993301772807504607613862831275361085226503918082679745405247733532326477010302111244745619595450068625406710496754969579649517858471949235002813606788761678454442055966473420519492714684198204343502364574727444885136102747811104599545651119269652428319856674516745358872127457664642957328239687154612755510109357483238200245715358745175393900609174206385112762154202092878427553731578689298262020954618381532058872254079868391878873231052018323485657939420516741288953827544120654957536139093543558890699434585300712143021916538470758972245636547969821500997055255691892724923703480973415673268705566189593839151556552548093542489151015440664061952728980335047022050008787858258270025403508363160870131221062713502169060415354786646094954720480251540068797106868824016386579236431045608778130502777762130372772334505422134553870416985304771024703663396502004296242118193061372523986742751282794726209061593168478545534193811590034112551020043724837419410668355929451076995578452962278921689019299754136159878396497442649097139659230685046956032508137293345404684086372970931130396658848360798576677352489312776033322173499338904202929353937171126706785028464076702304589570426415131523380508042585014669952635727312967898114199853108749192386717664442771227487236986013085666325943816800020050751438979645290662740822220381942779445871377525071071651173128601760308719226613541224287832829848636676253372345842391324468210741411436651769027596685114855559372206121877520955449561454831488539531593890587850466961311651434216497714261045675667198446758389147757215060260479426187281942929071360909533416245412231392255110949723258105425844917894874188610916286754506433832469618600830005551036865091679802811386035970940946666127151756031587918956309786112479080810445050772225611057340285156744819456377930359725189441924214171304834441668202523344584188629815204513836914082881454707655331798452248983817684060687123046301616683956424757921987157088316519290337980952937193647132532232576998605683859312477153630899500067173092162769852151365338296292418915383265445776184217586718086192179702920870087612320051044716040903041642659428320295165110894570531613072383851134136298914674916680551151656032461356982025609126336828421403796191327201942933076307151741793817981403790139776362376557105642266109330586064052940074107626641930812243575374282274118286346563726867900906348915987901002302814165800391814706063245652287351917485621310059999377147562732233438090438916728179163790037956396608575102895570357130634529878435710684809812123901290623357263349226758777063376507522877482153038548377586507261427617944748796838359169430121273054301389569183165021794328554727225745218769678147055081217045770798689091337417157146574259874670146530192517463394723372078931649084401505846986084141214204731852506431198776795069081543173276632205480388718357619704210122693192949930978373629613220289215549166856297703996879489317989797898320590749324570700350359144759367526291817330355483287067002107293768325100042908118647147238867041234804142802598438093676007200923689794313205613118756403865878093895599705659712955964121400322466980392610392536034808189555237013251268576521752746308230386085846012940364561873472269356455039967674002381250443189684572842746862541815216292734804303933030513803338325365597988922567981158660767919362691727232499597064593822005379509618740595041476642893576941676529614750002748906731895711004501574258351425969742821441134498542151373801559918136763925686187558531290950318146243169298862184000521539997468738847277380505652595080567589541170551552245046765014314259024894520006948131218797522418144584734845014941206333075285586608930279210721831683065205017855320991004971696414807865663328389223674975190945266921933774507410129651704332851907842990101346742014607438010470146276167235811888624125406894622328605938450720836689198696919773942333289050758760362058316040059588177348341873733709408311005413199681849063428475509045470145947217787290645847817481879119745770461600999923832188085379138526241706773827133758694163546430981227241171812939156522052120596300275217520355653592607779890612863753283211144803203090369084993276935573234139863492254762967227038400492760801740560833298321692742657861883296403710178386185093164924036772766370514160780685529631546578771683508731558625193255884056650196223041982124804683801509280740163945022087543489826048710451490896462950150699781836398127804706962832424927794996883170632929175334813931999512829498294124054692802221037971832202716213117292685985517572558950787332548744869351850742180231290131561927345805894885367096659680760107232792320303219751583359956751073338151877498984813470687884599256003043961795633198144448552295370510910160617978220811980618453113469912058200352071778982424095134085748323793557441674215611060823552007949171827184856348778715347340488916232455141836716456883145444143832538555665533548391098704497022670733614969874573112879935575580362735801196718832279213845494103475993296724929315000919169791972686176591051127817503230995957496004229036409925914011022751793046963112014287639967770776828921123408558877195211771555070969034679500303429957750027355239918184745857956365704864487398572715470089580901031015391581704844537445736267572845127300499985029047102980094244192948540232405052433374770908334146465001570812794071664747647271176568933515369131665846623348061326446464285757444632908318282646030207734511643396280932981889006218292839620420337091903442824090539256573047749494614408167324827724755548990150178771925534733882475438479427774287113433230419300455956434440041776946847061651151982597321650149855818395449684273123568407428166039723978718953628692800288499178245915302547599590802804135121254216983008392305302375290032911114987456275708384716070759626501317830010452373533324893724848994233939668064709123968338252707444764405797274284369497395569206490861050608582240520409683732128931224455982702506320016766405311886123219835153699469126148014594444198934127775419647930448124779335064563370461754411687868753048936063417704683716616231297083028919592532010312050486973429970347208913216689600896715477715697070219257838481527899813685593734412644447917432259358406708674326756267315448012774731217230889605894413589997143143035532106226190794401727688802448352014312986786203772677719282457336696026396552009351299488070744607140820238100355371918964088037317850171132954127288318401946635071871327614968230833118093808304329165133287331840249847524707771811231030559010347748424759363476028299730181082848263443143891810935397672605316316539397415879209204915056216262011889954661984786713545743031811328252349487458211925129873721824085938583972985299756613907917721708960138385109371501126025501572136135458035751107341049762037939893592325094708909671938629778686253521383467844903221205549469582728864266102427269719587321511239255875498366670909438059562709826528977048572811235361141773266196762903394023979275990402812770876014021775404822564577879943753702174083595690407016802581328080500347565439669803091056770883136960804334194218928387267075182083734095381238781952663658908928457739543856722647314878199095559063677479369993176901773771475859592964659692484775627398333078129808976474934492527560175139725962684484213483905462438586052891607019475543415702720568418117028713988126008378491979549759513580477663665639323299875174732001509767116045971146491688467353173199530672873735496429851612567248689737223892238289544880184545536176486271501275473838857222878645351568552889102033972757249535567110607821828280946101987432615538686330395637165856712746703663441276052507522895958126876452757671328320401529905487243113933252212185591066709448430461315197677246246323330933586980777085245010072545429247859441027770304205859035104270308824352065463575342676723576570787382701766157940203485762373528248721414058427623364032010817574983324742327325547909648335959997311047225832355669755271886493072370006117533204059367345129135837372296086670413721106854220725531304391208063041826973454677138231246431304703137270499626205201262668668638352658265409350109501999683759185513691053041869994790591304873844164739886879113319237256989560172752840905613747309130621006700009001934641795067452919128988413453259573442667111743622608558924196916571635862611239006167063023030286693051458497263639549857859412592180828533120669009906373746268322638328133139378151222047295245479790903796803796355976173230518125676608926994305600776289688204847764594112880847041960463866110101414875617375659608044076095290551725796685324631956694760590844652823189585722675903497804150540488709493164968859614207041773035227307378195799311065412401086723349804553025590086825695395443102495434907722385360085601727636474626418893569211452467186096797895800742646261486259622387281235005066876004737570485036257789729386153034892685082827883852840673802205188479611952702017547927834643367166242672389778122966357853978087511518679405542481279521589803087443376320989723207996677845957061958273866660850327230385559544470653511426671833335035664776432718942731738118928783048217197565787936251076419050527507227704814493697288264832534305948065501632147087427760985197866006612497599176392420081634285216889923596632006435352795887009787261551603662638247279117635583140712544955428366547056202886815875568648863677296253491983970423206650486201446547134551692016826474835838724639011365726791027155696671577243224770323430015142828390499493769975879465588712233997696352431665710550478229265634172946530793014603517398360807491748707789638361158820968786772068107423812170326930423320598861001763246316305948112661618524049698757699435875774676238587997184872092640498378150815358290837870395963466883156466825507860372225304593165706606306349033039823147775036935028534311632779971704329564451785640450932446534436775930127267120661330804883923808232266973412157303434134659299725781817772503303757881264359704878585032367383865747004569953671744142740793687883701470072369129106152207483140814669415834234796073034226085766945066170405839354664648196394287503405987438119198619465921100822925788587215833174822789664321407175252975054875305913270500903020696449993783981622597359698970509399338395277554981375701241536223034686973797992954705925921681301585507000397764424873254777097258300503141258773555075892605190130020849477515161696495256206822229962091259116781251128259013898008744191991476818042646775544755555724797617845643193306205390493245653069349475537938121251274082240264352301577913140176725714001780919035985081491970699403771249085484571810483036862854792350556399973420343025053026989008865541992710990465508407956423629464605608968608717742577492398644844153858979020429370773514381801164472483161250209153115099162249766077589028397101793297266917990696494960252068380606681254090493631260748428545184033257303060807420203563153804165905687082361074948643493074111894123715668193283640401954985084586316506432185009601203491461899494156733029812572658695246751174462554986784194002227811445115857120804461223175554436142521250449364681021625111054630708065564311942536776400480340119042966574044661319649481473541481598159160901849209154957512342379179880091911739672163006451909714866172274590024387876780876381213499605009902834937852558267091537874586673847598014436443311916920059950142614775412403342445635441870354704873337480557134473652024482886431942589920312868299289352912188482451926635945028501216956191688384323010304318236345546171660231554064266287083898418946825867788434150106880451960499985888617244594311676864821958205973391877494216939832332783470425222907558096152978592476368103600069091340621295147124361997519960029206870178249434371199857716414484083994979439173199895037109838211016712938046712148264411839267244114521188329939885522218163048414838518786346067890517070950515661003991460051662226012729103069557605855008237078104295742277539977775500913977416477712984737863271911136534446443911150327681484987072587925156499306905227866670502954815139769799147982249337464167859484624055098854748680384313363761854902410923745407799361805095506581857835958795354761115246861988435157257693258801474683832759365486855713277785911285342111198630591690856324086046859783453390664204505088259359175079187910486929642405624546001507327484639536153625282116859952205973772770955101459263275942774717040505529613825937816370736080383686424857379884348055217909011957214761405804121245134387328307218441200753903332056126009599371378946492736246076185972347606420403828678007386278165668886578460786497554577959722356495838882558900985987440554969482554192660390398997371159188498752216190145222489276016201398990418344921268122125565011057704142965191713654307772772373519398818616653405321952720078061755833487480235171496902635457071023846586175092477609463578545911967127140404062725685821383165101909667927769504396504055127334048951694085978028816701329113532816660730990015720306176063921840819167490939854653741298082884896732308580271068604363522265116480830171939874190302212882403950441344505429281396474680811512401803236929748984547855240508955648440131545588717001239540285690529418440343225158131237791218160498220881694816884663231750525742892036783571363703237410802629259308950048666639416913653453363793136788576050848683299583832711874179936004153842976852424948220024515317987362138634477588998364790074673649151767783079681684195660635994808215874467665924368135717045614442278706506464363532748937991337624269172665674689190864055864484039085169123038462817189471961525741125868309232826920921789913615559049761717487292591282847767587799492072079438729831238137145104627028406557034900658550890068105040258153280741340731195497270118034200256125455025696790582180932012201331819394066817940346774804723289771434819439493507384253995142035524785964391176454614243845074310972057470851404300876480873937891196160071248053945207043290057749226492892778430255479246763766522464103541783009255235227211665028946620325969113689435056738358156017692259821374052692223753019915823063929596153568307579703398555907595822383330145935871767920631360255165404838876968418258666616075977749527891538188389982714960810491587039700203061551421895079717329505935058462908097412011683190185377262016673940177646883967098364614950499334481803576970926482368352153148426179550314970218750062281591080284006870346291894335129683027294984093897724206512162627909246474343483809935295370200648792626998821640072845102048511640349374033655635963277871891169055555552395841862581137812460322375608314745412377462650167948966948385329873195515590234963743802573669304120499555701168009799255764776210731255958977567896035601437552956283643931146028259685736432264420940679655296525899113702030078450557439112296183788897049992037451706710965285249960151120293634896528059921587055387828603440347043113528608509197001447334272608665386160996937008589169291031149695746494192637760350186093046568669635683898185650224055141164730221427521673009094837862091386847930775068526583725414837086134926893015932235548796885401482275658936955611409694794477114884120393815365903323190956140820679207287897703786349750777770988439029523018981920947337992376648071540560139340569391165679664177173745339832255691397841525266762951595574747789753329943349265419886737389720742129958732096542607997689127262965015374584256137611838720413418955340794711779751951404241332092811295934924534499043419770116667691791517218426699892212267152772671872497887088650558432003962063346658731753932692478088093498433258711418927144338229723633165609516758622169372213225971989998842414039269179414940250466917315878040368167404694739822610856452730523673388050781465765036202624675176875535149045781919345714489252226572180931176025589412405619804822348948824420476213727055977146943748300939627836510368459695192779336314437382005203233584420249430205133064902167891970215826148722606868834178827800298431995989956535698686708632126687273990299761063602803669018012527864360631631642882165779398920970822473814269578598213021871908863735915416780968282858568504555070347502768325679637314716160623981365706100721327640496978508890085999686266670326382300598682582325142221901410690107548901691672317686422577311688898433396590306540856654118576931258040450280862438922676170158468508135356900891529232712707842693116925254574365725697162040047523226032065907072575034993535728606125731615375147942134510847343952184973732906919238679634815014031588686263588580915173713755774960233079620318435179059010729974164714014544885040460175056394359223515299335944304427212465779810153498361070713152817180067731260599143847098085703617091322904226096063916550683369368038203680717673153457024144349703537000053749594530642599357804587555067243992890259447423215196624854099608678083916993971651126577960428575320903901256250933905302086174278591147515113365671927703999492595083656569421117414357827464970831932552781345458641676436587760647696173036608023355534609162596700965427832098719717082148804909841230634183471959236510287148723268234537189889410536784177566177177896903589220422354618987742417348719053319277210640599988127155970130931941639121389192709704232809587481470426732876529767342532975834263769514950447246493304853441055614568609076168524418533284579271081241802453058332062384796171597876140380956352499678997409790954436765751507408026060593956998191963280485702468044570337316977405922254709072142519209895429262864678864712871716300159693955143646474606315175818250460877991647367750790632996041524193155811139784637632088965178870739463220447917592786428276649621256408764083532853747155239915826962571673053148836167970309299294984950145250223445560551285668226507088172577868570990159635447093572120137428377340275024507151575018232576851854926495360370625380392053703820675641477786683313819628576355826197765373259328301000096939537553256338634367106623905218723465371288614287633735820407134278701677026692275777473248910438216556343687840376927389767322745682712186514741207524318261452907497893576528395065011007857122434871785339537700997788055359131478091114282080528762332014770898578757199763797002488702487044740356582952386423822004969354189212371676898198740210230154715931555037812512496106977526080599327796307661081517789943656905644116712846827395595949967043596153989385677374467625249957144475265599146210134338359103010660834830248224811354615040035494296956437964279347503943250584968603091044982222718223620108316757863709281035601387440928285445337921915223746847598924768746815312080224104196363531218482820049656548863869025374617784433230707505406842747873240611254791995088729056119673069766007294244812969147938341500805320483365506019876946529542292129331099761029643543029311980228727391432472894970250486621858718683274849394949012599272196399924215428016101792003860467342891355436410943532428847792010557314272262595122691859243292466431416066477944101665341831344324423889608744383027318057272329049190819793860504530209645003325569494571204461025444924024412737418495855558157542366347006146733789286263980724599495077699928651633591753451080242709160338731783730734923909729162135567089363162008762425914087272441859934486129511515603358637173373991034973405285758376154300575713117754476171341757987289913446803160977815506183413606542791320093090076869915737976581006095715563771903916967673064720266346038759660651122638301422477268199649028426310013695338640768698946222099149655251381472470589716113524708707367067308907334851436793200345569716748705960075301594168135399950643978101784602737701526664184407239370835832258450562315870070404063521583737746339770710922576259718468090244844693365156472723478031046954187201965164240472009559762416271051155598751596373429655530764551598615845182323837958216494966267537012446562411185286126223694141538633527381242782749347564782662257869760320899215229693522981800126495078776174268457338906925711202198218511390237648406355162606520500373827521120563932921023868672842288894299538979714063528929410218146555049808870821099198105020163816604212123297037732536062804288399560875492073963388618737899649991295460699671755831419455334116764764994649022629107806031217257306263157057861908016469825298819377554954214717604884807245505275625676019934386073829980254537340471947662035558690872189140137724315739066755110929244728207087002450909976733597362231522290712184211770846922143324324583054666452199885893447168090814827217088102254760303487167193709016495323376975351671303441433525533010861856114865285466327841589698619441671684496401075491522922033590921571835061510849730526622271735503981141295035401815290641520247103198111784010139805663929527829130120801577764913599086414505899072366695863721568942354553099970236403846791969332103158105714334856922523257685165312891865735095810169061405035028416043579371847938210887372565589282087014783240293157891579163330859996740949681556702743295710192842462609458743858480438626343998968557393563790904819582547534876498599392720562555748555619465677734256157566971558218495044116304887297283769359801877533138662032780283615995171771992237696551205313651634325633298532201551388391019646893502658670827571756957340667744733326926050706662048785815291972159196663819634547493793786679966177528100086384457638763018858840551196278013142955151651956751249441307942147994287132948501709608944319181039715639681551055549734998624349267973306787461919257951914855806903170651898868048126180389044793914014782507338155053770868815244708774813798988109634302731220003306073470651424580990352584834138934541939904964939896565452071385666076599361866837610857765393404169712110468629456854089759129478741585997324920765755403252808025279738174618161038868331781240099353188404369825598610690973353133144108718296042419576306635267137865516601393478595175674971905144000023192734080279944044407454905101974106197817915899376319476746991864341079387352065321560736134052117873648375784590979667156736665569864198272361427461463582550563506065805593296648211103319744748339133202069614030799577612541226248850480514157304890576593376395036904783135110391496510305945846276263194999139672118429054832597965818940180421376623858913378502818421723581391775785391927171707501829065866238337220846741950256454648817689463946884352927849847974936934076504694292915778716656882678055999307161507851130081877556667058253810698823821171754841727496372756546783935153956303652088807778150913287618077798346947433962389987099563061443764178615311613872083348688494866668621413887044717098381519589158439464946921704606014703460935745751283648253205102331842164382237729292533709766444523051246954450926482197056893723131292535280333031643714810190202295289892315848025933185710198052637654481514094557844097206514759281476838527780333161890807093895548810766799308752185900697172627975135606309330078731057390705891759618718595820642452464983934774801645420237449837805487976740654797524952622093772586626760173582317381235870088585335754500131512707839103814816255478846783435183163714610520719699472621191112832763641594472763404261036449461499301449276836306948007878921059400062626979495807202594958753343917024062060934527175502738268783984856790971759629389798566840675759979198583889628105801804262701754892314050710612075106205307670174977309552864393903925010508533022365360179288226273272856091537026365344423884741789493944890081747118245721078957733609312205238617483725388653593750680917892675611895352001399880971303746608782581950025315144366901046522360486675776011182890598272087761860598871532157484733965438619330217105550465412635694922095277101744530803718668818302299395202759476075043618700022115602190393135480806579840312676909755874839509860186533373047279053829077904086303203663294308441360996706295945169950201122620830783808548859042088881017168161512184977999328468083787368280303362338950904011879663463057611653032219407209528964299332914119942406210033748962822814797706668324781194960852307179087619424791584863353120110789090585649541546784291161620497959810811813192762630615685829452512973211406633850939361409384159050484338629438532408894040756582091208546705767461862915345917288170770680877309430222789528850632741269199621665879131232614702492106086636189717805007989706481237927134525596151239181308351142372819959188964990773112091010211651977902588497786845659655489252035032677685631063204488116661773017028266491889140667253663723989112655913028800751486131190354300988724539023282440606613501187670135766072195787490001154126536432322367404602957611935622470731697582518749690973245094262528769225113735129528080257230353977328486912672790651204215477461687884080054380986441554576026111336627313917533963970230016260006741948943700363765714948801357014073620618031841479095002930065294200663340233051250078215740441062418839256746351390865676571080582642165275790602286598102110815684002946945553332494612792660872871096644869001993995579575367930380619282562753131276804565780949721873929560986242486833678234298910902305405860432003974745469967478500518666799662204009977240785954875826335286892605605966351204932739349839773865170446312700517625264874361196190056193953981647597411940219983637445009048992841641116673932101527324739086249502341333275843193565276043268379720388206766549307314848138977829585199869634077396095180307115421869380966915737672771661680127336713520215887291706661322775344126854285925881001292912742746875346412732123930793121309196028063257360064429271479775043053536981803211155721597654199000671629287842975792628198273214134014517084867967135567916582317468104741303887161567158787504087932335842973585053976711807742258688471539626859042854998455235890068331522850094574488583213248968834750881274450081918218110891783781791723647093776565260776311713193253983214120936637431610058097444256915332599709843054934988177983034417571473791139487657895613491548342405417361874192819869057692114587485237251443635776391511828628214774146604528440582121170600065089784768138994965969660731936632460539397503632426383298137055948833732758150943527296427892146003435093259081066177030984169680063911941420619474030828952055687111605215588591445623971263127548118410165709232173795154687716931761881696701889405988760077283521364589063971579893378571048876463289451190827241500931507548328678549711468825362060910212757305828014183240404812362336650065493078895963570823894768270312662863193090321405186807914229580902883249316466794527026563721905608041558450321631113213667428147569999849492236811590419841599572109395053907107300928121902931587940504971028541136137343571898597028962703831105853488354199700465572408504700894648008775412894145941287677906591270224345171134110050745551469678230088946732715627603675884744168999848903802069187357707121262682433218455819090392292313619273966607218431245963908758127017724867986148179867286868081540456915986869089709844083273367748493100154540660372308071544179453833681954442113275426332140734286694888780379599999933980515204975509311995154092097364026065263372982365524921202546858589092800860346428728912879936382940729144858299542552146822908626772120916684871931248289604060492388991129932782419629990489743802965129294756486184869038512980860588570046363920072823962568825018342339388148608840013151023175152424998693793880918123154488031154352545258202784116071066616948376858100983559721279171086165704346155341511025988513631500309345740375907121951720193614131186030139543446287377993900268379732330773372866831470206873494163430339040353617058864192251952654056540861366083540502228591538228621923266147773907013357624024885214780703237674795132612292491309217482359806459364548670015444094725143383083199498285006608287907002816087530261615663636481667099310623643511371801659380766270474128578197905621478628111974913562794919652754504232197545574697164883525256051883395756061295623566981865690199805694968226387268232028718953214962408282949164440239172463817051556748168705375286256821606713464968912081723822058387973625982745524217383486608528660606588744462175690555425749870112141392871782885354454147927654427634438986447355294314017687920972747311607531218552533239255859914766792625819124395279885979336677059738567335035931164144311816345122775898432379959735230538382218769628556493696686484999871270228453285511973601605947423580018101136922430445095703993771729962660063176193153046279796678551811518303685978540994105672049513554663427641530089472474117768656590129379868581680974816325711903554843984067968858486624017514805913693719255367982215864820147586920141452999489069847203114763439948147354162603453882084298325150180027341114689183425333693567615301577321168378388287660250152198137201377258451705602014027489740673330493657200243411803840362925930690194000358046637314565194903551284628109117393993629310095264575579782883648196672929130006994416283593909759804800911236484821513461693807591052051264514307507040382468392241913280155487565633140311414867645250456146160885251926093911130747510870064614159435928594918624030786128717486782953921626246281628233795266243842612048561631022981000983104018827526736693058750356007870338686951975960660157852623971800486371237323224497050444104109432645316614196421011468040660924127194956042727415878126377740685059075264381320773253599469120530706056078847671242097694382792598800978403149194214668938187769033542731791500697309073025928207558279131921608084889031484725677330286492653300636801222629673116508884166662508898252222044321687736076466869065347295518371721975515038682797608436726393460048679855009454373507778178354207047901342453469593936973773802716408071281233601642585248920116923946682979324139503941759833046712684233434674421508334356616464012367505576589757261364384536434550277267872078258645218875092385508097458853634460495815125804614734789398956205131442472367475226112254951284143670295362096679140612678318496009025369609259240055038802318294502276311317547162573955153670386761224543314902918120060914637925576523345344664740035685774447806186150353129115719666715264460576130011890148930487394062651121287269525550000922326353573173419098442733714914038018472637683428238883885391235070914357619579170930457164526800703126794307601074685983181144061227462557639152128560128122845971963725771607150699299264731694396546679688633327231608988975485131725253551838958224924386457062236029685599954908127240605112750995864880142136472901932718122154756529840134368836169789622833561592339958956278811118019406148896713548882697345179992521526306250478894539076733483310424141917125692698241749334816953930878788247612732747243544604793150700744772451809310993852284773123166876643191613686451332582437223694501393793379738180927119055550018932105026935940457080020427845748022206035640336921017328218101875080636111276369152967213646501855977315124499566427563318060874605394187773365906652012586610451167552758584828811225711416534277722513473002609323067605407159429784009222976693017104275013753327499946185488463307798919767821052583600211450698346759727911442589225436297075210229746622132027241729003932029768985928058921950279962117791721724076778995793628766402057400996536698456926012914449714225169403360838784358430933193418730259312471110689973265395699929994398126343379768484983122410927327476931339663560597549680247272810134607298512161450766513409184494624575661068928234809384551209077441968630460881175628977965235594196912166201572211767553498067563258102304619792994141604074829892489847245583707091633996353096646015021971558211072361532437495016149391551852727774284355066001618616131729284060059340332727123517030451871990870288301765437529184540893356463454234813643837600689083253248344428929561080811629655463955964319412152758906387802252304621151121357922938037560916906612750807369649204432534642618623858064925720091704297921980672553122733334599544859286691665067576600412495847359758227135801285008218961804275073041248941191642885500219451927663052693455970076403549612739274648461437828130689852429099864640940883273203278293649785242655504090261211006639014369143418291167374885451477592963724269576145426949639040703699245124300056639715940235248503234835637449968459746464595227633072029064464490767903039079251427541079928959829899609896630237191491700508297237862090860358168179079724190134065003050314555095294036852955491782457034009168879696775239397367194464283307781444553055808608123951963632616385263462528728230892463235597660218880033077098763208886242120686179307500185355064548420348734420756279144739864839122268745291921714163268925700290199707930889338500864324520226954617132738133828597609137284219148738639951411939381376841511897458063942061736629516261855475989046769886152436252139247667106251814220170053787277518327284171042752066592902491196993495853757280170498844455227204619149416594884518971179939085307680640060512494684027254620074976357840922371250086255956074665169118002642517282044424561210338356353802594567297818302269937329397061605180676313092457343546089636983350398821825317097873350208435306681629311926698947474066093578663146008867152949629945858095566654984959036528641273865583462562111043226523014656762297134030259683482523327957326900152642799846231991458302040103136306183719140341023139398382757975678632830132631231158705272705138860736945808915871492629896563602912667046057813632224942414580188796210734941849036855871748488331620852848423832470066976779404224669688623380842852363665509620715500806787067706266809160123863677584714536721349255200686943147636360727611950428407049010533943700071787861075183083557859761081162215070066638681705065346824299942108154177311930025152518394252035520259552813515209618113554108439245217801699609111097825923942772333981243985717131182923811120995478486012682950747316337783531770960688738333985203123960879872951091078551281063593198160119450928200566894296124975984226543932590397420307481241095971850016729038395923174510312727638027090211568650017764380744146983441421154629390935482560338431652654313012420063793691993285777633906230655692274668895643064637468741754950420491266090385525983821177490322449930813436762014007045650133388366688400757490277214951381153275808061779451795020353505878162307109127803043831796554535757963089107762898529668563682982382805066372026067362223093857991820196698752150401013466773163982420570191467879058258345147703019256887665678944215772317617781578250948879060325684611912030019707551832910698322204537516732204289469459793477530379025325446358857179272440524702350046913075096261544716456890654461862020118411309371477497365725705431948544776990766045469131178679028844014650764891504147955654749476597634975201701466832122871168899657820742122610860107209345875405147505668748193811422261258088432788526136776806382333749904401290632750151028858480945019903273728517853132679095066770222864174083506024270926325427294468035269887155639477403092420780836793683319658479869969914130077627771408093986000902032614132152569907158949287797610987410836123681887756327392075219930575858668488780426183825003342779972796634008989906499091581466423144066643938090679360781850445015695730451525203156790417931259895155447020693555358100089448269803420636626973671133714968215293086188656029118699656953365043839728611492842735611937501601872587322032996332068240088537081325426288604989301464539500757047871564111966047496042630528979451853953906218864707200007242508291931665433272249708675979850572348628675825259779551491116804237267858511292064145583437162665509471294880988019951970790303304663485241864862966251598484268150007063975956061115090969516980675792543581084855589754739190962621871460719872928391331290822718043057969613531941463741770679754802273101483277345009956106519301840649545398507069383366825896975199046432999707344059692887088162648756185805571220405117729483149413484736494532908726279736608569495970112656783758853928861392506161983289765915837677313904515206592073587735668434360800459857082834441092774740921238593498444410540464243541290165901171623974545084569898725731860157315374452772527543209823912101824973164523549620344285608905570915462904582248513262878667626087282377152419668111467560411720676556659146700832129517871275915927802872019722806688684515838643254546198623376806708582706975866807968481885591625663492531323380499769787818342688324207488065260736264091248485831650593409233816125543574311476072726325779882317534654015600682457091977045648897405218284237833319227953295920838728903834932608834150956445828646932891257896855834270052618324650415100066404291099477360913453885099511698539051968597194803779588091609474901375763771836170126648821798605397541614683348670722714993297885028330286440002444230481565890572178561434035700647842561303856505467796411154083319726572435197117012145525096009887714873872775189103626235019249844592274885700377738167467991041512262681467272448920752775333752539950733308160793586428512558727546862910417529570114519378873461434761005630744511677357128871212408968888155322322131662422201834197350270909295504667749121262470234924626128463307852572627576339971190599749281114671375470220812731073959545968359887402060484413667105404526847624723024220938480226211921177987932031386500570062527757760793751466445502556955303488707878057280979337921305626338562811495781547071001681778858396288527225261234714669031934140904770550158927033229553276733559358045629775845123685341221109767609874269209518791643001010421510924662366093359221655194533013186809284076380472658135973874123448472152762042039572310552321524200961260514846609118193483119741412907091159172617833181737120468469771062473494689328357379856240859165277468841388285334722372202824093413555557640077457039237631906551832358613768820908106268900308560082593978102959055842541595177414645262195991459350952384257447180108727759550315275573671619559718097520377791871343131159537489825392022040666718465229142555575604064644397553914964616935845050614924913894396374992331001874530786636426710496395985196338920371472560432300276514475504124413258453357022027574450681441706818367366258563069965281201824842480493737661029875060335288579675753983997749501546769283629245199347206605283127399092569112096928319999378256568211323430537054521755915057424316273177469311937195726983818367012368904757930547299123402399698582499840470791699775796829719681649868986677727323455837493485515349337921929932707230571054613886828264280528562755788117503524880382200995588597102828420211015979296890974159671500136408456919072377638926061384262626357728867297021139045636813078570225622654433413873156089116544807832955932561798959108380754174388386002764546029608115987478007547652567402123764505325004881211204367045358253429291455460079024030965853086220045421259222288195238353365545565509301199737992315007539731411880392541632515540751211393060201610710365384457847124792869817564900982311426253093291500085730588885365187539501832422023234572556737367997710154454438649373855032289007163503619766987245416408443017740488997810647432860597347762424888283761783867883608585572018720122329641079407631163689524422985119027363361048967090665937453819717445623322839762256977276526441093300467936594279036140058002920865889960021219809641321555693422866316405160937450854643456375735646882975680147864099197537917700439154219937708383572783070367009580395468132182022776346873734837599738462603887099279427496466340323678681038133720984602079569612490117373944442377744125564751605336721648974576475288374804426903075920752170599528000739449770943881267819123625641411540727800349330578364987686339002233055254207945574756816973348131304006220644213488484328789711006996484381294743424303778599995513733946711226982443777595257668814541522078031254949110758026388070442183031825091976873532113677001701284309580992546455897168080923004231818703437536156004824425602763442049144138178704759615351608511127583681761626396044101644406867994922270390547645644927705727619464707556721000873048290379586849997903282602773415465578527125495175263346644310006912594257597561317342479215801183830238211723189057391986290876957815723133383014957343430034108312114139261302051971435231941322544369971813423741759886362174683801228755351085994416317391758674644785506411041268458346193566152946216758158459283856436917664939019153172537513916635536095827631112247224701891288350084597716959246657885152565606788467573075874773908935970635729484354991501434978604971296635439474887144457460585882988883994370750041075961677266760823309024581170920720365123324334449893463519230691250298363760614979615408663424550269303916065949176594287498123502042149505005871899257351798324406363936764482911049634756694645550731245666139095686894330039378775967625983205069241126398561891311861350565140658509888494235550566398982479167956040768387339388606535188368300750818628781541848765233536500169046730628729783493127876705614215135764675582444759242340011893850849507927842290020874517700499397777232023677079035946185026216409669307467925691390706894537030828935247826169489795567082763951662939993286470912698635324032076876259150036177698791148485207805354600534303284633790127495265591177968463016562889536859795710268794449690627095491028827354150711012001107752510669341520908040325982931396993564841700839864864045375380218556657759626703310768685778474547734808623243915828488158981679002901476581324857822809847190889695477296875460134474952094218032269110876137357516188511337201544413396761953169642703539472979670599471277659895863118050453913087735376761744641633763889164782206516612330807353371080418678943316657771607151592359764319951102585660761057053704683164089397319221990418110975558638604830589308593600755868110662639323648889182674156911669019537566391513447712353755214918436029138147218168822416243819882367408330873954861991340259076425716571800743389261786325104361419234554031584054379133822234677907883258034236387745739726514072770212329813004619850836695551714724452526686938919394033056636320680068294010561990650177156022116288002665031915719533177638554591005177209549843249479022859542557180820808884507047626865856101255976113680295774120275434855262194492572165306993189493384644024633384742059516917608547011343065649969531240413770491431410672975418544553216685859298252239497621779682593450343197055978121892936921743315569937302182501785621707299034425609163819112942332176494236727482371934069925992219154900235638671091792211397901931606388545134361010782809553262482710442393811772293583894108406966009260430765567607343377339390080800502985007667265323435721946731674239584011144941637428289262039591045433881784208073754489058400221070720597201002325916018580276864878911938243159019069173577213909074341688377536700331107777695632010858561929221096643800891176038950274958930425803392917889596402830443499406904890760318999532652497094965607359363117461561978165521152006157690420543917905369207329058939112667345837940380634908681768926854431638972817980327753071512863407231815072531235367976298846900603903227185736740990919071387945373543771542052793309373292527134290189559567030485453859701515820365930089183613766467196730317276049320773539418859267192215859324096751373859816694508304390859057768275700166378707845707208255925267124808746430009132482365661300435960441193306148115374221555831099316769450104233847473728924673867506606520517531733132685569740262600259388302885492260661583378315646528204102113239357142654945520449871099522414274359307371687592234435416612923464197720606407946727672143708043743409317955825737971058773750691218575043396607087328932352259868749666434108265828663243515209987740793333551872368872333024885277341431181536027111427855999268596528643792011621284687496280227474261090756769034266570921793680109946633664348789462710082318051402296183351499786546130566102158846282189299457092161438496578223006873453869803937892599065363641134504422256353714663934701708589598557017202992246739588505669604528505248299486963110329305210856725124071643741780251240794489390643061002623083348223658882643155241829332634591887400900037052302624100769478630034909636694590751093595683511704278539286633345397112222649004542163190915292101691050374300130754266088446087667862160253322191857217467344922807781978392199695347754442410068668414309212409768919543879261274811265334570455888644750582704428463181180547132739030856514545524487133954393503385372876870556126447755400756146686583410049705873367937634842545546211452939013882428247089610537217192353115758434726130171044046627282715668259246692989268662136796863056169487985579073574825754287806747466706101239849664736169981567547251158104553775106300883711080448444235155594091078599557793350064061017645321693073397635285182250332437554601321201596518249290027399977154609593003881373648395112971400936954621039082556362840070229848476106543721957014198906995826707384794252418684740105574966129127323621215518631727812059679583157761909019340318808054277002660585725886592832503956623112824756246845556018980679076670857995846658901494378304695003282513841643071473313649523508075677293285993058081903786290590453176306745241886984646793888376058624629416376335693229137679459069306192654280281980249899959145202711414386017781880303306805153967388242075660419775782600969533032731552321916302163589258953789227102554578685721646690036227339156912787685390483795290183931185022719777385646134653693532071516202711571878631878571684346688463054276583102163558448799991690697479690179551701881735309586371042279297188871858331172216000993948116366354378015758841919123319356840596845922477080169446490236844330745962624319293343100029375037027898453183530899328518065813439689687773976016392220656314711337705608191555895216593759696712283600336375049968269524111082231470215431677781746085770194886041299208269969030199992060901472195788861752995062784322085226427371837496727624873688563003529567510713162781708869730858092928753681330756780986533049163061841829076644880595364096006153794497111429097003817047925990914427502818167948319937180638651396714939388534855473645076799840460811741603301727026559093191355165263465380727852861855925669992139765075510883132851331959638254281223817369005504921096287609783983940837514745117053349219986194480946072808778583088579160051842620907498540760451449205728648873532805347526563522613319487416031413793185680899734844596049307772054031806498167762282975741332711525659174030643278880131550639484296829609248545306152914052278731456182764753142764785259161353002464926034932502900126925001698181562999567751874408756655875183832909184555338382924643763093983692849333662057897293755842881171704978346261351181231766176668100619990221057981322003992654113034644341209456429814636714136049851529862096262674962015214621861932543065732460791217822392040204424626788216609960958238517417478767893069234007560719167102321272585777338811043555902314896882142521612416597584323799119643151986071316998219440984848983277081139642440096729898366975327922313116570207350357899558883141506293980950763790313590209276500720952693117581085825320714776086925197423763319883255448807000979256185129945426315024637310785921825311138744028114933642569677305770364214849473302130775055228836890690392999745016400881027911071329048547913546832370938099420191952772275687213428535885485718937146797728097008145118559189080547596998349547277494494061291581753986034259418619439388256345084041273430534027238542152841145126699720680346416880988726365630069268563691510492241857745361619896788982501305330522647357527609368139350685709685470146292330884523456811538375245522310123922242008790372600382722039370698825314666282624135688957422192685210411070386959360598076158371029098579872922301064613479083914323857680339999363042535425437920605179849617071194416859384248531200261886840322571551335870180104634119778458896027514537195095324263574611616104687302558967259901040842555779616180442628936577912240007025502295855816435006624901614820874460117840397588703449355521445491376873108557143445657477553286433209761049863070035751875460931805311678898981353657701621209095648173242095027853601706081904288752686848906134614471555604326839721566447795988300779169307085178735169807750538018546134375772333989347298907629406747542544421507403921590402411993404438798828004592347144356505485932825158552345079194583957324309560198384925413309847374152345388776906841883121202621026312738410150610853988602104476743778283796240102983439376305042185955044533510275688782774806158752282957497102951243723441160874004087414221274310833963887095665981198052140655608151217186060654817597776040379856973242047233379979529273283325537323172254654725830660116387693365514467312316256616341307669202953767719946763963098295830568792468592862355319161866484284061368551824779816768168083962438414136058756544382291452380337709122699286374725681128816338995550514680878714943347198654108866479839876423956740968762289232710949561055438875628229851354527466112295020236994533644979073502964346628735975214083539316530239482529298068809334628308126318773118781777239574088770299355537292191959331379836402297639559726358254753766857187697120466954112850909719542486664016184838647020709498225981622308558094476440474501339380605200570619495301867104152152380614597919143743503664886367759303604127875156323711602183114395511524885652629709391338046515394810899318126955526949624502701952568580664556864973486240389303966365349501265064414788682804356363360653051140655762139455009104711876705596786688241097455232213723939523758408042825213410168424444443254068871946618958888746349848899355258490184020405900873360628455534235758985031557289215634978036574316281186579813136232501472695390269174710580864682580081499990451801387226347628790530872314106780738516350966066921380359493746892556066033397799827817294219955176980159185646251360532604053639680277237195799434302785556131553721812959351028743361719728594408409432167328213693695279463652455404043619025930213978497777677008293712355018520075065825131323297269397518969736588283268848186051478852541698795172690854572284140661020991920521271375881529057787469260374205271603667242715329714319970140379962307149599723620710514564205466201162050442487125344812430504101628342427356051885973616798544403539257622648773926176642118812296984644182732149557634777933025710829466619699790254530893234086333133330379267711375775376628299156562399839509292173746386469227922396093193676523646008949438055282985931874948101702050418193883628716504437461174745379780496149206681372621439865490632381178621551059876852713319384720491530930050005745704982739199971239035005330741983316878491062654931954291076466735472273326864412925081312123087477007029535900569809515321955248827613681746766889718596699789466363344389787649031263378196550810665628073261287294674478158714202292063428941180920929077290345801527394337108809146853290844247119311183084404994793925792739026197450099459289118917206559041103282405336764272832625175501936338746290834131067689519292136953451580861642404562523535965108502445458295188395795146148322400280732312548327862605821701528172994967669905396903928420564109484929693061222454099276975255268417037625348562774580037461667288827878797584613669757059604963134181404280948601973915842044267891556826327882263555532581341192852813467381296565001538033175244964428382689817328283362213652005765710160758025875445462440266272012446421675889080198653163528780169460165292623969982704013112320280140437788606682708373679404481754679220598720014114301716728816538157432915496009408252273798654837508987191672962251013451699092763557783028593083007971753425101512252805805382553472100365670043206817438420469153376102902454203177397285360202938800003417703141658844828454551343621722357738274161383496234374942798637697969198213905381622174789841424545256180747859212813826904955919672819934119215747678530749656232584817727072266845091640307048601937015214301435191998794589372145970585726333296064894013503696055615298702483370404027254572512558718279785081713827817466155135208682962285768010388351454762863424828531453137268098960095893255834796880178317955635275429421162295177796079757037454947470449492850296502259634962439551235215669013926475882456471003122575429839978313094109803030290018750874009935712438386363668597533882646460015491596627993725119964505258110819074295996313798555950468999397928185517069112801063291548573089848154853209926306036548489411453899344534661221112782662957532892078872627329472560499207417502215571975424860249197626965192332936575718370175214076277097737325223222106188470802923904306054708908940263951514045409028021043400294375847070529875204615359468755419523252507289121466068353991899368267717879878413758322891055586827100104660921578214828143761309615537795599853227791211736413629981408891941190523126790724916520309420886591226779416371407935867778444453976677654660712523256584101189087859828491025673535057412657521739882230025653716853492101760092435906660845249437804237707036535791905795101610310776927981412833068040431149078767659308013095156665906153953492435774251485934545083014903049028815659429619770439524651877870107316587983129725987562511837562362982016016633499575981177778884186843364777266952723867884730893372252754754764334737181224900293990419688047076359252728674014462440475788925677650901075277887784194994458424817708026065512545402334468806872689465031307627840660437528717596282285770880109646225646271925564273243935254863663108388047712754875223370460386949334663482934612496335565957549618930562049461944163976701873335599802854995994410831298934300033148101846180995496945213096297849386619079336809191212951901995878691968522829223718584492721636047699204074663058393900492245373009578104050086500145037814847400398443931743666126290004089915493443779701061113607262909648385156722779625334309823044402248827595662973813228860609773844890567679277395192380881777445382087469647531345616591393862552762936271717735399573146016048878326903100418810104290204890805063068621439000932279167641144283253384219951468801022096550545186757806287768250109503841748312182058134987007948393504441942225751793141546813513117468603611383359684830150996788097707140845331723730682730679295744671019820931031364922328103625175755880983865787013921027444078912414501353713569156272948465806064085062865788026075342892894818931502507140040914285008834128371449674087134013741630056163177806126565172554419889954828012223945484307844085273301998640834172950136851351446109096060284247397972029309719715663688703388024665020827178776435806110423422131736076725228218177608035024074881396921247953476874156386694055925747062407366406615102344503675838877567623732476070797246123136557701679084670052112818342934119037993550968639697275020647049476104736734496485448301804663756503686545422230058546721877274417591768796467361138199827792576328531335894845816388308438819368682210909466792903982983603892550184359949153448396481584699075714013093835566640392813964439456512062320054173906001059986589559461480823587134210814869667543493307807938909660583448467700548085446027584215094980550406913413341420819139041662401133048759784321396540241937861322631778814722475776717301270824377252260429446468887293292155320915140680301364183621620847037491829450245596673228987713371925684882231538951804465452896451708019268094997778695342678248036850035868999056689055131291046540651958680776586665554359302777909795297444477674554740694872073414438269858898545454254454804814368747824673697137324271478785311559013969834107286784249875260017486904498620468930296687192407649998831247019551077870262227313304787545497646211414062184477533500210840648300694996009195216808157223524440588427626977502001388402219564236926413572203151511566406312957290263181190545038681329326888741073494589294239078374899328853152611255945351253069287133059301780146028387546473432169313642648098073386984111052736458106344260492561461222387662116536648955471632497782490682764285861733380590894804028749337155349426211948176464558728244434761255809860374479161098464598195631245687434909207395774328527582711333501828708956835076373284533677837544827724191027011798049912258546129620021978876322271748727792527417791005715560134458908920105299968508789901294718278878912075572222913800423540778240012661280517837214266839557255259167351997403546643352497201100483863775655465770165385664957463464478773616610190344206503961858070474583534572196602264795079065198178856789850160503213305852153339190050777691084878074546725170551423107436096448958347287681093287729948737614605065514606850810550325204067264068543168247960348030577082420847965414785076387752437140075362961847795917565894946375371666276368502338098424963610985532559775136844524681956128317343667772224633730750204872369200400430636504223430191013508642921850485227816229600565984425527664202338702036619122945070887856826673219409931377394824225259313565607575835038687382798207357708265646407637158930607658580561434198718714646989129676452642009159176729119382478429352208234877835535909434230400839441859618757381069315507005373187142072613177557867285399899904592996837665555416827431299900034809012195307006874590620483057671087885364968015455910430997759419196531499236455825590011953338753361150207557094847600854120224706781458678986884776774883703238397369974788418592014637985221785953072857350221434452443673979598592917936852602213546596672295743966302613025901342836168775085137207180290319375079513285828928825433728540004371409660541952599471456938162132475984544064587042105439089813517586609301822784645745771526202810217648509121574648264395317515826506447958565600096516649862250866755140856738528967115117791382482665547037062609009703984689431087534601034275661814235455982899211231988519574688005464495212223749061959752342064553355576189830089957454950830412832620026279857433179086284250004410154438609191551411025183131434008056031799826858519555414218952943075554879473759804314426890431733151686823500929276369312585079037825395471790027903816287930490968385676763368342786581683695596491053661970727304082027998310482357112144338422113402714520272793679897461117707941124554137151838229722120113790950188828891189200245802647868969845411772639422302330450109668365152144035201079677509121313268686320317664569750926489403070639120015929799401642115392844066033812592978478084037727066160011227349264479056003191548601107371834164433391841696404955205515529190110977553768205964762069671617655036594640570842854492107577484072675867979773439156350584106409720580570152831475953384893201727293226021432642396506236694135481798742086483211852206264803260876312607770233071509405095440614434792629396860296127140577138039741673458024188529800540353596435584953710602062589797706943443693775870426917361462397373274458536709735882783531514533089225561742775100687094380174684121810798279754309205047891457359109338789490627285906688487185799350679630070266027849001591531889955041153318154724001680204346903145918746354628532875939747647890725054718925450421160647543427693493420760868587142273122530655083908728371308219710543281109039707526602869117810616517102440051676988448000419346439713827750330537131200021858208528696794819426846300739394995108555510812649547209087766352107232686684900064725431708694778335391246513875954598322691947138225144097520420582603398205594028056082650078109575975054671694754833788229735068796843779041764362469477473343471741853718391971825097687896640159072466168450486795899313699519527264368880342619322103953923297802386672987836947330462989828997042404143326901200746575058507780610034403778647794790010904654756448263577519495439668407068825077905054982376487742147328755556374136988886027704633001250723600796594690863375922376832942907765530206776220649975438646773357760225193910921428808950902406568386495982914395087807862747698932358959988138293357160397726296398370840221546296694512126082332017539451533078958269175889071469265746435237448718201263305023006462345612268741321200080943657446106405762731976501272453639133453218267757433269166441870503195851151059091172412226998546024977786076865571003460755041344049801935254096593926079743111055096476553342449886819738893765642447079627298401310281065644963937664208009206816859000509888375740864673448139935784194057352966012116789282117763622503497285771363317610657155700859513593713594835965170435195910728121929286421236277222610740039564540163487581259825317786914940947676301006808230369223335430094553212593425486736313222914042352770692541525457251321307078415236557676356531179364463017473115689207777900814935546899341966006177019101356524269481622471952375988984207343312262279909168814339258267893230070899871986196960967851957127131808918705483606164621521440487518624501132696925175490241408610435634078182302169980358392632772058664343618731257064288426422359681252114474048920129155285776867886299900253699665252157265537216842632057688857512616735101226058482198545857284239517430953728537122970455453113730275196402851330893165645888552833343043581136250485567900591551051922688572528762615470045324521251000673198680049857896510116054544091523332565173412491918115583383026255292342609536209297543368552022107840956104002813191796422956168999404080127745019486051466548536599173139624537464247371696375673508692312686244433414349964910423231909017421461807362075842773940233873786633330533179060889238906011995225920028107082289579219922021794334671442409001720474184796243380885641963321917151300340332470330016726946053245440578589352518345538437803798305544471326302432442153282942417178677431109040732884599849837176565018139925092405540084882046650247141354865089944156822526294715872875129065747370342192397006870334491170633552020386406968333646003026641816560863026891498914006449043406808433013734438353440028098251048788519825091609388830868711018409065025000590579997191520115780920068922575208988401226457244498306886911982034580971696850086957633313915669022807808127862819976527501466268097302590784929976095187572816773588261264815191698091205550582146628795394695153804437377739444439675454450168899437369731724382133265249823354918085592836738131408819073743113180758742937254558328493217196185960745740658684182921182662982269624003350177954307261685610904446099343858856200072328347727015332593878912942440640937806875662594494117187221746009707638899847458185996562697897498403078246002090236500958525605689554172411765147914684521225359746941786058164434756183361304371335520095641338041103808603939241385421992818335863983372239365992950492901366391062894146751449225626957602871612992344347333883006380456731493077021202077940859922152334193992820441325241398342583322683012064347868435141610704137644658120714705977868375428131501050394643704100232663308420132751507214113291180146710241173409726508901111787037502225307561922511634383566640591352752737067039685098995432702690520604465955119795724892526267573491281916045499746646257869117245364935770343005639342467076788079215098810251861197711549206305885577734061954475295390803835598200103493847389597562369203572062937045814890717913628356582252748896575670715568838962038767984687486836180261823547102221978045286441291701452432141117790702852077720104332677196485951788617088726889286020838692321141992111561853034011438297574964147238199536210463705732734736398182070016949117462465851419828701333718706765790844584426046011532774469560291899332140783400872764609960128742119201730345443554120413237656777275842196286720477952469829000723987751763432311967040237416325460302513614949522341351427745336218063436738027850892200741218031547786618149300939578828506740590362257571470249044901376830484215229620331676582712187242973451829235727444916922817976244357647823155481024679986031460494233094430999517739830881980892554671875432550663752901988092048338748810715912921671029308799778020994243574282970823265438453962418835705551815758113101881782941532150299913574693473461828310864572105741515299569494842861682871633823081657164515525065701687742458177516182706065678442332180441343838543894021893334665265193781525710091285208309770241145713415220545914494341031160513169666078101069749093704808297685272462788368895446046745872582714397135345906615271040178010122391244887478063476330328964610045607355178844059897802179244726971550576545202654124016467897834958720699038083122374095575739618215374239499536303947387185583937430954374088978732637954302317628208300527667431214184629483664854472359701718694786263106481065904776954213417633006212956765999990565824819393829694183415762542442637006590106859097425425986419689763833301226727852234491446704496113644952992096024906565451418996928359261509089777520130749378760076165324341062135850532351098945586875105429582315516464020819925035054381651559180637387907895343839800959229781726713741241324453719687699321470944765676319073819995339255779986256977819627221337345982941156214610817318767322199062534425681783602377856250444167117936172612215493581687193337622314420825319413066062287160452621831522610993931895324077871786757701621157000941995619701536425595048229748114101450992723224410136969762896843453577466004518365654852489844222990988929291882281329410805559035306719087871095031835166858339537807035957873553876133034016519984427987081820295518625198171935716484905300652531261767747092194292646965198776594832893752805374722887995287823368260548065182352901228335112705314001695337687750183414185490893612426110942309518705856905470468695271168408641966977418655126127468520547877595893480623572430522752300783063326281767697800170650414009267885952297486265709178337074789730979090978297163617445337110300551091036331184724943658791615741379492808485834094215284813944266155502693438812717089014125501433074245924629871044905583536984619896311384732331920388955029406077488238367878399874184154362934563869587378922626725569499008543964747534186014809663854430074189002811044330518641047186073351602335356748973605695877832018616873139995121349110830905184422576898030910286372370975522589884332625624912592056364914645119117202232391508706854534250821687689877485320747733229676597555607817769308762388573688738833819463200195911325528389892072054124504482990829462916662681252273698411660442903970550213397736941064010292744814943705885911561371670389631094580933266560446439041258385030741928549309751037748177139357235196090440415221866597372210833729921959876039510032527096807203875479519069634084897301292042077371239687262336603990932262662587323492204397563612436181982114291184286902263026989273649892368843636943442540005710001274670839801647440699260865883869126598741430449793932908383462879233882799880717364575360492580861536125663245511506767225636632796627544995438698469510211928000272098431851333275498732828178111006772203736221889591876494773287939879029031820058970312953159842242529463920259918356018673857027108583777366299740990256812068486919904505623886835030339675330159340155738969052595443950074519572854465229638512784240420349540306255874135497894440996524986296786090392636204779531031797089218809568210930872520587708921742048396708130262470024207859487068823039877039510171265302370344874202934526332321542968035147539294120081971100888633850630561453168537176898025873859047361347509283587757263309750933191119519538889579152291145687040279664987542538271564281798026338224082361293288134525192604690448755531217932083197671574483607570095907200092398552677838003834714608523607537261332589768528849983590115080715609194182948689049759459216404693093147622111739248197792655346627079818501578988294162506773576279940634285487579266882577576345602079606558832004120588526306184982651194312677392131101081204765383578157375285603359830105374691433145766745734863480038758525690614955019302410769238816359100036235357396949869457580679894342523248101259990097381677945869644482422639319224513975541083455972295134393379501270787230275949245088698791493841606703357075665491816204401312552811236380419495902325290807003708173448361477084116691354139612292885727931919930746082018426653634236962817529620779565864510837935171233606765672655844104111979375157924377739736080756694374195117661917769600336134060597047537976266746849152813149386320388257135564293582056463403368972394416177116747940949484176470943657766583011034512672704845057034873932145016470629316683540237380448140692433652877207999132674128245171462466341540967419038454873877316073736445999320960476922036301097285750542148358547309135087758144137207479984353584031577322155857966580236721778617805458824309380393492463285452986901599971859532713007219493739767449409908026275965427021687481234150841889320559518993109865866421952117740624397257795140726599356360814425811922899662431820353471534595553625214656182699785816795698746521530984133880095158864004518146883662595655357974201092001283664560151172718369553114631871838761898438321602259791255461284330874326796735279202341958941465378736981330084046550355361614927826401260212602149750769132643536663754991295986274549322977340922086467075745971218792002672514302194830076338950086438406845981622625566837893332227302697776692240804033361036291403116035317573851422999528735971325454514704049221046781108886697054971787698087751900104138133350427224241936798106001226007244368580201200270771798394684123657949295675204337450162026780063531803021593743069357387959546017700088143571906018413305499674945745493489981353274650316037095018219981640257500394057991258479912974709505294364416585398160074046128915409468869087277623063421259379741473340502097628059177807927726024372044350621561576167780238756825044438285405049910758409178060794424563971080968766459343784015942303755904030196022375704300452109184820075561901603939911252496507772980713987750854181847594427291835551078657348308629218045447563677369642690459690447175469532543509380089401165313345398796293361163665960522894887277572545029263644597680959718739994566710003302520903480630107279940739792362111280932513053276807045423584591808201123823966639126199712944990221058817908048829465158586159780887769780100110743436779461363464067438205360616110868658469926417411439708256159257818761290862549804734387117884068860096180106629018924997827423147502128045142454081993123580377569032799975715227156449224224362738594923730099825745797461257544726292891895081405915291413234715775671372004230766522331864733174448683775278696654617632096491316714898908023416682896561766043327230606474261506127269926753073326424621802239237402821339243012908772306702907700446437483564623239434330933847181924282976106263829650112802766705686199118900317230188629712345105446397325133804568369046318911172634994356238437162224961480607351298958732758166779115490419027745183474198636504313872491580571563906234137047019854689830014967261840756677956911786097826988091518546343525049618676819054320563295343916539314542311538577975617262426772760926693458164557008640120961063151704076299886757581832350042797460659270253554636892642057268389888873833006350366055465320384901632386055445567150103716137032834141297845825441249361373034018180038553068474462330404321743164852818466907171080795827106721655409972819348358948566954206990711229628220410648406094262986106065976838981101855463646192064183580801966342255751032751642294683887800371568187990799867855508483599081153859051633177482225433705155442132302030646298267327030306754696946117681322906830398545657493732860992343308290441682002505662917236006245611573880996381994663894471943492233609454585175202635999716274091482187632073757136429056788325299882686838315784293609928661647372085636920925425384008410816051953421273877641374554350902021338051309549426071925248898302170331700568930850028275288494755231138707953862811387316148666549392392715797013157574991548409973147306228265978671700881408838299921636326496816345620704034753698339278413494950322773295083784572971091332841464899746357044420963042977252938479283917860604195907937774595217677988738668861265321846455970769710280985852380858256254836843478858241522087014893778938121580673736506252085267826168041449004902842819408494734262419620715853872257554496360922701335909609392665029977369165334301057177311683753891897667699864527573406839466220180491159772677787208594196335479972818381398111045648056864312076752376633084304363900469321960812957533341006562103303846529848988792862669321053533020347023901961660919905431418656701592756524406624491158605546709826250656144798860585080799973812283261488814732576985516761332446656906574506094294811950677889674706448224726484652198928932364912177305739244410419104052302108263429737034133592984018477762728928050371752799695311304499183164179568958835617713073931289468676799250190872299166020453242866421857693153339312683886380204646809078681486135007579046194728204705418154791218932262507770240172179668699622620820276221961557225694017896707825060362792929949555241044680006676031489404268991283858741461815146041585271412411826311066290099418417162372246244661282222951347762594282619712282948772234058473524311563627880100154203752832608853908822221624373545207464064266394436733550092328700132655848126334640129375521796766632163334511591294670957328923651091103302119920126419246586552833553879771373621997709613085310383946269973291001065527626837900010759886167746928985425793408788842600347567954367360821470607062096306220714179981966928397670593121310842286396713144169139245790702381917134218910718487715563668579971108298228169002582597064469834609122227324473979212811074739781934902454699923362441986402204331629420514742937094143702771861362511104550515055727481507499742958952600575182391181167935448426211798312442300777894007824263580830968562238276033730805519221969235694325814935522127182069272421840719401640574131844960821607299245380383450762228179899625441883275839079171036951051648429936845649427921393083815649850660226285829168117738804153170881625740975451804914645894693752163072285436691573174325760667712447812774090179220772883418710008001015348187488812450892002942786460223771020215135303241209986216473747996603552927132491213645651732594811327371772774273194046694127337052563325184555959290746824102436073163299084926646073611287033802386817652047275468631868627688740000864927913095777204509963968988239500680858772539700747504005343883684225167748568994917291538781156062804657946567737685509657807119673819596421169189731150817532737439062447484182054393298585125561435150070186143242717172461832942854808970271320339816063298121669547720190012407578870229358190340234884578017667423324058699747588777849903755075854240589968687520658156650169630433138348258341155073780031117773889359011644943939738157915609576579429605142090430535994745052245686338397525256035377016945391674627857477030067737944559737414471466369740075906367651352517436034017567045890834913333224357538319023419801185119415487090507635071064759375319030990579390096914415642464594128201261650603536308237255431984676603437259383158662572865695853711995943309833377973844378654651947748047949587678346518627891018583435980273078944886196572999761972390957938825480356570189148518540936932587260034648177157825285363221937951761765289904859926121175405109665814847211760004624096185132175270333847328694778205247692675640919854573936980076199589526090296899808162633221702064781724146215528125416239755206262621496169089242651934149764600031504052139068981119336426479820469595225147450709993042152024198051953629247716364156438295590282485856426526645769469448546274710964796438403665764994357354750603536678531541376747612425650656808448894590910713997452227872684325487826540845867853416569704293873524211562666768505427884817907069680298893817232055672025099198979205102374763005959781420475368628308630432786544679032012200342318124863862365462519034708312442677931703021299687641549786547450981450068213063515866621082354452143112662730719129571457735234778648808010252153278487524527983310131295132478476587283331800714266259340087393802129914646430411448373333234720154828900330625813631872383649051421930577060086494740291422539396541194296459047249062965938528301018209399772499652426013775186959127398864240311950860183542404834163049498919599974374354912573273344732692207963778819107838975441366206309023302741075185960096538087401319217603767584296386282891689877071657400528149076077703658661664583145285830434740766566455232378907198873432042983870379256917456597088432154624201896691438560901455202676859848240707052121767561083164535693702260249363155401684383637295680084088608269046390410192151076006357310394512070698993307412132764412365986367613218855697142413053465546880771993597243840724908957706901086686965417431794329970649179002338809714272696641488123056840567732774289661274868134147503759275685652235671750250826703825398726948175905862350000593587615843343078206856166001094185303238084705674189303014562365547279698279773737196544992264765353405821633358479296627937038448562568781076174330233237701848457123931762833910404113814181079021023295263483111138054313807946905955332826334798979951969782422930025024252364655330626484257689478998636685720791073240604322333638160610059297255491088908924236213394457653139069375839010339236325881478820193280437859951552818875300237350384168348778451750378253818917713451081556535239424078913375775762895669732557527295103408253858330341363313952832621902943808813896680326055364995781969735805181095974185470181609798598989716781651503172853368407829805166214967545251666285523077384488627144378673618003142830172325211781568266596521956228029235939800425508678823755298189071807091363261996654859231779746773564342641263176127740271331602812494392489630229930547781869775080863076387596458070495468066733574325706809703940962067129801304485215567542853628380327192000704786066652539542813217729246128992887560594610184355770473714346899221513641998419630272564865210755204477762210308408038497481523418731378470687747916165683090323710454621497840490161489194148536228102762632842454233527537359417398660876658636170037341389654967627957470823900858179924073412422778580178070035964053852053167478132948901874573294690757762901151529953613063471857880867117975051173794734351243006132499000489875041790018324956721529580493106862579179682074027988987456066255672331752899312149852458296156968646239294332223791434849851621827905174472406545054866116901503840204755711530845387018958694804222409078697050569280142163353255360426357232636825482885872953809093728305665222498114977028028924758167622600843983709559858552906503830123923335419734617091328140922513742728015470174711191909675716679184523138892343538680985978463523401701770814679392076685859903190404298958719632008865149431895258058444978977216687511196483171892797758875641257199292992331318398772043881340930990524010820837912398003830026965863226624686416622698984081662496844362665171909152647203956728468290573853876543724086133932257820038678700988212822438313756737090073628102895333931844391346959549952447851149318540495476892588440047087955548351784992106784269117679859705190170053104181234749433824485903160803541470110781898373091186427640905387224679212033958564902534388815105423246411387164732970286916645142367142314657909211676311133508585762781878763086242685059177138754115506245155332650732843006419923929745951361788012861494438181958349122181313846894945640558816451476195233698134905153875773414127202723320686161735112320211441868282533317148223603016483685988966241134352466921926617796227067186011338022402398439791938193703197467287300594473088962998773694363380423786063775363618248852424272053132453168940305059011820600969637283936346455388498516301044509359942112091235531144291912599200796638553982823914056726360045320655221280188485417363955731653693036881850503599011324713673401404453056947494487901083533530649761925289473583818391616791671690914697221571422425312611430817836034198058390600572605353673213372560727945327736053338347824787859118063591905827364918256156015420735951496938344716423477911344405373891685140360882040599392614756801912536418846641473499816577676649044879157618908188033212495279843253960123569541213817911128169964959482183564786233138589575375817516083803214985091034986696722614759442415684551177548664286747715867366439936731110213688068002740981380670929725603527024084131646161956159623621939854842707282441004641646261532223176161424260597118873838115948760702888655796986639228502633874039514841566330443476940961813623644509840216091084277176530961172601203278372691516942152156898450515666966514975825088714395517629149262054828992524809605921235485282549007382592075948437111760231899032998375905039048169850083078951777873750248923403534718339083974991978498909425056678853922052548253384680449811523305873189235460209344760473617172919758381685792222916318517326876638218359947494486081166041982398631580631914431910147718461372536345163887166146327336672457122395474710434885380426695359964222277802345842702976698597590922570312090627992955857487367809308626820825947971444021087581868450045761725656128960631662392938361633203745277294323936282296414537905357577498762671918514048465125446517355882194886896959838582655146607538159939588451446179499138975443378702449073892758627256060126100319825018400920050731300469021630290004953584242299164264580888568422590593188109185450234890645680298222527863588647933828057520524086499701551209292052715591885165499756360546040525448650848309001465456872278140132250756457764256266167795398351068107931782988444584389714024647003821320920060796893948483451625997553891365756403563146611803616258973434366826341831653010708064118234096047246613161836017689683494505745239823621251678131250437623490252973795212865751199938765268698075104294238138851277160517367354386198644908479391599852489177526532626363085540531399294028010030033056254438945321491236529742767401868161185492642116736966199480941651726875642324460143499029572143256553986213734695975418591241775276178403049899166849663225359743066874844479941280023803937310832548686878425810330728016904820103620508050915214981145409775386522638774066721704475815975759075448192278459822133240414126693288786065936875194716223632964221515260207892590730840119705372348946716085170172379680756234899167815746287159341757747017500609139267634382483063212337326049920983945219386403904884680246034873992990349755596935397028875887494873513136900739548165821179771516105465321253835326543704663523487279034913217125234990388785111297857467740659365771010054467182539379266293139886430635836558725471391289249469584379645928658787296477140690445693216860307386841713935736980799261292144852037499273922749470871887948043056690168661754609611472917730865294106119985070325975321547106074221481280735031896552539040809343092262214768237233351466732574010734292419078895866861352837807594969905009531133639999459142821745128176710154117803615011240432020201932496993251394138106223359098344101445190507017534604349430774844244762493407691336034577607704632264252098388053873943413211229536796445890161666047578552247749476100264606198362178272440453172517145857661757681615969399831570961411009968264295223334201277890010175602592902542566837062265323616714835509114217411898339221965917254093852890454292925451811860861272945487107183906784792324182584810406172358227939888917065887652190753803168276274098381363618595971862526464190175274411820753278449422212945370423012233587252447864578647477312766772135159620774704051158465298033819308641072521118575124354994087835516997348449811446772404159112942841311741243559771677659414413042303348770366200667839172159795762812889124519228212342820968941839543312701178177928135799788987125759985689808403906875810691873945436250828038679905011527764612529146866018576790301513090128633750155748768892750740701778286983292871894057825535905222722857188974097466344118302590183525406645886472000577719079870207674543729390418160352449330300092409862125457201453548043492786207377870120181162122130866023971901668505458344755306029392111785309256104722852413316617468117896678837787613800265125371384686605019516665874835900572135259642765470088380735999825329936266442801948946443759555300687477764602331708946162492563433421548884079609221439273487139469949887050999855941997205207013288021301294556650749956916391847573092958137531236356531912534467305507909944940766959480390294624076344341287372868152842177582301164409571320747559266961460678830637202908480323950590021090594920840138786311660022250379837349773093116395523510164176810708699458159155046519515642206176532378044114134427946698173231676217418235044098791186967131153363579241951779120025448381760968378548012631856613927562632734071066260799522451232333477599614707424807733763352715992579087982900974582449182581403446446994873901345169617680621687058086359854976799091358997972866551382535341777871882786484335464931675411858363194010540492884493090081440557047261164016773750027466947517172823735456329805338689506380800994639194796628973012398485721688809370133900476439772261169720042218244081318860112898261842190459019845225377968359813059477969098432472157065704523545639102442088985445246890011147913372955473000345597187633445503129967397826601643584832791633147034336931000102859797260886613244923742430260070005427859060517037601960472549904991577908489000575168017633205628715609237818453602039114634399756785962552030241676955994529497397709085008543373100077271656799875124999764998267522163312524355151892201444584954090336392647546587308351520673348660633486485400937052947597192087549931770503846673188789109715817303552434317928391845282895909794360783265111263384523371154298498210816040668412848030477031598624117383845171765564917334819823041110227776798405795000126758939009720862513790718405920726529546459195877319007191371018739560633299449653799107217371028828898919493388995253158640122693982191772598491815159959397086463636896650670026336790281569745258190579654784655623383065931867468537548007121726626745357426987890226927127051096318618106536955713204649509519669306840020353728531048522569760611177224532063759735492672055511158293919137990938259904809328169671929585975881558103274482080964928887583075048432296977687080221464784464469458498147158452661480253008276834984647113230931326669141456708603849422598014345758868984603545783357448586011875443735015508136733066225758067325501473647354239268774117760651716869375000970021947319683288103756845372063737974582421343786420290584454086110798778230991347887164195763898374392392966261543918805329023090874962470359345436369064226816066031982132682241744741839472417991215496004315870455543446957178449582647945557321141570263006085627967549728212334561315010627293294762440326558395503284767371989325256845861195084162340787774647122570985032657391293433594638969025708432428901322856359491591343892408808484935122162214872735736010368848449072207876870129899020905566507298723661272118945230471538655879815380685792948695050591775557029169494209770694492474662997240001996571528612343128474267140381874481622122263404800647873357763124712227928996779675130324943903573220963016987804031639841390301081592595115547649237135082338458906768187414781107817156649939161238163096564393012347894325537949443795940765567765986884655704645212263834859104012821856225097008988278721054808283563931436193680681716823163545063072761004613247189963194439630854832226053463461953857496886025496878623551521158521870166031865882361214414448129136952391035598965684796649764851125617467287485500795948443545303679634671248950943281515424054758928183279358121262051194816718375187357688274968467525888241790933716379936724860203054014450496465016733828314184001172728722057268160958394588985162393063354984686171905070808002843841153665120106772009092899245562219178933027682172814528600581214907972400819411196095068640273800046288770442970779414435589905446993155138139350430830454520313235659158982496467108366671435749592216457101034884999568410074831450370728360230902523554024216451526768739719945110718328227683789499039728466464924482013002270227600970487628110299245879517390830387825852898081076136548252309844683338313547383874964061924647292154686857947203597134519340809189932991773676150165914488925796750903916626527351314791798086053756117828954610172444250045817365620851322808639101356143629044743957237234014707472714823153212917327118368580236491528513350823095355685284471881476211278780298036644361573779892177208662022528897188768834324434148918105769858265307676938087622779998225628108759154485959094066643848931582871966331457065341055218531259399042365556361552120181245868012124728741551271761371084087208653170032472670691417036158824403318399523766951984323073426169876170531427067548534401629323226475477612831515598652571903204649699010622689237953148296294844608483551494737340352644057079813344149489624831617729648161011908112426436536464656406577254019308726191606247557588860941726877516511197087050068634070948791157175673963129504148150773671586035438674555424012262902365536119636486656547994095054921396105651886874586818601617370979256833393342109397973388900910190254656302123422863177624092601476425253414899870093910296234938525529075886432255259402068135502479562887000946930062367284001750164790150511598444582110099445815353435807736067337778265822705925266369293170105203932338739991379469415748225296296429677266621492371824239998124753615354513017978993676582203262268240641928588281273102651524431879655805663710588600438388920054650715272112503806371559379039376222405136803959181627504807734369782739306610970837208069458659116392554089389787842767761803995745074029351657156301140145645196674834304248434769528813327923495863405126557175824417656464625670610961613707382051896644481778061881475630302984509095544100048857822605744695909039893165692354379808488062498109687289846867888943053711709764966089689088370061886390341965299621793113726409929208244938814769176064983561567746288961546482814191287678383785455567740359562217371163898815869043451371733586077690827712326471532118861759936498109205140775445747132090468345981257450165844210901723530912903542967954487652586573282919100697673766360405446128850443896872965571820420801235901666877262707738041114135300875808868660757032618469623617922507389928217185504818132242284284001804643605469384538573613084326713098102858090375723033958958859729111398472778614184704005907597877389152683976522116831336057499222837514107297576864304523678940936797490491772922770661451734721833942704334925110146768642488353657870148565088635633043593330135693382721662420869400085528733061866175423936261160655439417323974095599693657939329062861754902222189603838142274808291910306688551808005348908446406948885194286886086643703063172290624392458793804512681338278111999995989925148834447248872141396282088568821014934371154102797651650692788519747786644187498080642617629789612902086238113623707587184198439016210932198987303688551201927135795824732100621087052814270967010119973195278446072650857639536927142785780054033458968677883167616457082579307029903705019600487830968629940880728836701203121276744554719881155428443531429079209666657210526897762601156711901925332410559604984283796832801355444021819227725876826945313859026784000331809266814350293887396151052488524710615524448839559467850278477498665831585285412554906245418062915851316015022311256796071327276484125154463914984118088221067208842013494162770702242152222994124981501915018240285120942385349588174634404756825064284187273655038047472465067165187516184044257323817960265258072632692814872472404237472891704149500164274342836813344815789946630933625380488288477487624437300666181913428430985696844322101517135574797616958550420498077551803595707327128272547085581973404396358094090723587115582635594837669752675952571968723604602737821360823069309935966807675499811658729949632549207319906051679854346756263262543591099668462228161467151666789593096563707400327140875583794524987907181269435347620684841946032161674169181000984795127628566379715629670260104152599873770914592884001967453104683435793803315746087256291515965090688887313394828311109605414131534531589309594471713351192331188393544812327127897960016035462307781673631127625849828455237228322024689891993856136770252484139391391789804096172197404355779316617386141519073105592735662882715702673740776436417236254442479011515641973206950897564119895166027615193654181644836572549983582714025895538747484494266617153367528348432534043400136845861521270279145335147149548364437620832787463811174015081140149285123452604852367833986875595064424879305488992026128198776421854911644786750685119635551105585149832868477869122134656208099186317202870491659711697902562608457516334123603909164681005454171974319800118558123681997544833337799619582096227414791198575414448388659371118398603805853268643202704106738219707639735688926329235305964959639113943854650733003916299443435883658050722106909767401017410744116046886206790719558561467115354123996627054236274285230411606160836054803167532984175911021291625402510385953221169242310707497070697659194558931615400008687977126857571355895769505967230003785103730950206011173256127911886025684152097883095480306180508962393506748535320911815126222109033625626881465885975896394000484890966846415910455872487279341099176303072231350116096387171705147942851486989775264306266058046361030341539829883161003513439930772315510148422365108159327584803235473821188614419731816513191770092444613916033272043036291262664042427008686603710595318781518269936475511526333848472180870187484639255400786990785407330735708298678195809275625854955119835356176162924836808354015446552669274991253296765250630120808915415471064145254340043118587022039316170821895941786886260707203021006630275123001228103316732906442210733410082401416125460272130722557694410827905079741437194445000858155712311926501069385534018255179382609383659619660324294945935935811857567354764906629599688339010350792044760824258191711277326926633738310242903105144808789312974808079904094227395180144819945538324527301125690593060709759125441928403609142367374472984129309451257577051663920672214921161222787316224855799494901441257688114462966917288916566478473977765364152778406672078316945783059900333110185457819565518003832395244318055917265502126028381028511090033961397064061285070066942426164329742325137927621534957577936621172239443775056094024268951514818444611432192906089046344487900890413576743800862157144885679936688117340550509058076690139988704232027349656679054938860904595094811663420056491260035051288825082592232432760738214106284722916756688214415117257704288302750413041310737849039401569556137467942740486176342922799484812310871029516657917168240443755734045746344726064124352638229108166082056134391712002508613316334469481126750893635086609225998024873030603269602440854268462134479068986944905632551523185633738629363314124140156240269049516936423969398063432075390612941758838825043933168094415057968043453498897733246605286113145782301951580248673269863497154896180282608375578349948084707404777895058691418906019522925511950128497210946123269028019699058483833057471784542941263997735851729932751301654688971909755218965805711240290091297002538932218969660988511178620779893181875883118002081551951458263925577290572161420963644433502788338863350682583907795007699041427621491041711542329345925771048028230714965933303824288494905444199664491723642895619803886183639340025076761887794834192736858628515723147795443862353086820247673382572406995034272922817569244503503133617514330080371157155365581441584891695888624078829135042427359825261458108830715464508517512904050916136370861493005708589530832137401323117273165633800410097715087256438109532647628904606566146096285978363448356974877402806472261228435236898436236151490611293810552793674845963485674376072396367288917441039047216312135919280186445867618253367189049125576830752417834116826013783906570527989386495143237446834329147570396885280233081215457473568077339217078622329228726919963230852287857856463120815674301708059185435777785336713100265454919937262967298229832130860489884228590495459914421050583514541942002767117450832474748210265390710758003597868662746069681896316214082961238451338192790961469059184366988901917289382495436112523990843200052289278468667956273300306706483920666073931655816083179906917222168203007378076635197587594626959401007738060022666950296263471937143986804037167785911734030214675900934516486486475184040244859422428447181096375530142596712790988949358584835676061608130392425698042885405147140084789171759954281224391363119760144147837512369594765926454304641799738850031564089086415601428102115505898662284989521128619062499960030239872609002144390444972729040129449340313170397185319817825917096221629195888686446354121034202014452183748367230581581745532948647810101762602463224010886985206282759873498474854943355308677947203390609926324441763573873079185747267901093167318385016103907349968304459128596880089239161530968064950026337501084423337546816297513816466084911113689008462701889379374352788340246007363975255609575868724128945225011442837620399551893092344280979651587521387221532871198206803320286773947821313346274593190284142117489205711422831766858145366503093028514851525691426471736414921984542121285547690003907438734658262979628166519652860063519201380001608952627049915053056311348234323126394454231387838678625532692834340705955427927205294292287524262639395035605094189887759372961972954979789595352039267488926444715615751349732393695062696709902137128469756623718448236962936527081492143903110160867793789110467019206227224899424631376089954746003754752089663886334019816532468373816535115804485862429863675041743833139353940202204703766999491916580893597406356258198551616673072192330170909276674497391958605060985696049705341778966344554881155622754638490698885044955311749217506299353386078287943859405960797297846751492339972932199458608580992722858127624133975343035641781776042221411636145063178209656969207120436678846553195485858442257755160739425725056259235002243312036662385660131828459210027876639291268409454543662788914755301755173041769381561813532891839014182496487183082795276633349297869555823645688104357161180754328079335789246249850918833278039816987367274190220898449633518005486353974370821580418036821096026187921540739673774873730842880463131724632818597596712076652454711190255166612601604237904981188008820507978433150958630952919317888775118033731203717765210152764796708909779587583544368278954195229522363055235634410570973318976038381375397081040936017952441885959076298485858536597595586196275657966668897552150222499191041794350063606573783554425506200520934129946145980217288261306107518625955905318882602620796027401844788942002053238385791680948719043191336788404950365690957500435159433146225797576931832197376735748011134371836405605688959990428208969893560983174366293145329798658319505166301394164716567592267408412848753837434993551030970354939100546766833974982182111503863676644123216451694791160408497497998726446962724979123318948200084296036291669566508202379318921210407014028240347834475460137492586287170283571949974272079664502102878483331023359895252676344395423481236063539687779346701989506027510788974527709660553189685555584088520488416304316112321015043667942832387972724028252154351176403983956797295582408748803034442156652264869930155321895915272089757136863051355698856287752551480434477479393498250673218693140265347856504170761202448475769638094968808021979407635800699448639335131405352494304836166758851947266439328810270412422147766119916253856208180862801055496902237500338935422671385000327965721817656180924037180294633119129912117621658381932318617345312540179465857970910029772560746109914540136339704312272648631048744118472421366171598293561068726093450537497821412786497244446522050387425041574206203579812973940255051804234833799230570592803279466781177989889761229086260305872039513190529216539799939247453039076652539231863058034937802677218657912280516477578041861271134944693727366626668064406996178997059453007543604841637537177079154626843532281517497972198806330636336362376049129011307196600319543129214993095803657237732563459144445765791161590424432696205603411691233173900280819269230341537376889546824313821899846586828823836841895145711534468078020868085364974142357541671435837442001758681226075222749540266556808876780951971354699996031969646189494765024643801526937719656935999756373428781809381621447627122252338326443731182212533594850208374905277691248469262081209460960460853600008223855888011708142182601386695236830474752244703142924784085663467371028422146327595373845081666625033727341533801301399939759530018379616978974757219711566735492713871714783390016535402863844530902603106661597394744441205994602742431843489838005781872531226094611173473532572454975549768700437136154276513378623293832163458701372452587557942679397818263061031086939713331846875424474696986112405056421363415599476779749949654794689272015444339400139815174072994432978150502512198758771793411811871040753052137526067062041379090827108649972831487736393899888132198935157717586700780623844197878798536530102544921430563536752618530999264579587458282972856347385950088857558693534426140467667446070977054571587256841803982165404498192947961485548593006131697280268049494453021263302683734591862854763477961818333323441478641902086546464361666474837041639032050643666607938858102440103883514900052941950366090030630612520307057723540744572301877198246474179376976908707046331221440906813339627511446727391214909810161374046830476331716368906308042565254563088888832554576097147754460235369663497975063086588131211210163297310864210845521063184105548638247818061680634644749639439639222859385886127921713032127041906378545748388726093750306204759055775218775285253096940239331741629227593710998870407990440939056115722770397325123698970885741118449413104996823719283089349022089094415573207738842282195039475878592500773581553989476556180473854262081712463997181931796927161906019931782691484315833354615359560860458648784613558924460036112581811459510143722597027631428589673803501192666189902044317952788616143257532899676362602688806143400602054463314143579101614233985907372624918107799621551488754013653252714802609825449931545115850104693229523237267068394410834491230704789712508647886232093141666589103207211188722431194329983136882540375161015967569455787840773693910815069566403971782168450087129550377982325167288941049418921830191350379149566229279317181846408375784573581426542565671983621575919778526847942413408964539421754866184746441686244480487345486458262040589314866704218506249157066354622584658596942183824503727452251382137156408659498743621308912689475536204855709282049631071903461175132336796701365327715045376781750366180911585629684512528553242942184968191145228641776214700474341402123086482325730109251136611562267310656360145629050616202112486433536877900557446627512179156854009259146135505757287938865174214548348991882650080789683573075019231071434119528902472929080645876173756164693650311984377190363793177111425980721145408119027675221005716296761740726628204188755761769479826983578424676679073251969708673287516266178994834451548137678853252303838989548587743237376187781550761588507567231459313445743679903276961857395208302648960988753397064471439274987959750045963406537817270418213100995966210595708622217306547999569398519755128932553435790038868573305580374327586199008971495005853428113839392647673725359983789089391681302216671573996884984058076794010634635406865780788660538247912918569633445850394371109704801281748248981696766796395322329972831945134137301681994566180268192115414511610604924303976079046003780921186703996892948905457067201894996566658303537992199742580191276769206362679805471483724478571964262452326312964979310215364505155204480884582857795688692444205274775595156230757461609211105703997145938446894985126252562964198899186629572964344609461383663797045380416346846294099476849225323969839189558220666058926396939425385590827345608300106062533015893375960416437875980987843075459502878024670723516556923096823115077751265566117091540521000682522475596499568261212428902874074139895134723694747319083168757171061447871724483444840669613057800612696889190568424071176922598326968538088667574624007806743173910155463385849505425055623929574544135625485250738436370044084158822069715217417392738790550572038315401266011223141084447985374564728986514922128420059282788369550192457407133140682943602017393743202470660025563093617941970040874211901043647877488845341697652578498679746893175804511542341152817210759688905874267956555622018160048220996718056052701424956441741559381690229507794587759782519020460970394927397774471401913093237505530327455493283751172491166671021805786938453651312753346103277476349619720223755644560449535514159094988728972310994744090983440850339919810639000880198728535796791114894574514764395089031445447843972652782728956421077086718178702871851664667321226148345961475320767377038675438276366885546221833402190617600804661744624341385462039637766415788998458376650614168567477497854811202449987267873957464550567432722479122999967894522166936971497862959688541988837763859249480664116744112248660299415824034246655516045298079789285876634619543878788285965987963656060324774108744100283827103770028143351268552711867724254487597976390502174961816558011312103808398523514541605028425003900985118733714366850297492383740740241759825332235360465785115828749373041250946173117905396869711586553201497503361167525611302010570945579809594816814304109854632902368242288996996838552625791425689125868877192400200668613528042026906857945088829396572388948176460334658247295041188856231697238588239164713645149896639272391042901288624275156930743184484597121908927719470395002363816402067902816453966951545771802758987744889284869414562008586985939465443590812776238001647056305197983811333831662006325189224414886762504186418298953963555841871332541912522872327112850488100551511992371782910854734919269776753160898188609128875927029403026659631207438817152764416176064677026960621957611298573441496410931844407787707918513626294094360585317006338930556657856026001970691581401765552093299556870028677399446327212029772552000330076578563074476287167695666975246973051692621946060195079687912986514136488790385666605541671739691755538313292493429239439151159393989646450362802979999430227496303655538225223304850480713435207638983956498228181648071455604380283808369707123634047638701410977771869723647253291018487353479769474608109950567673854845750629434976935672702300958724281370765187488347209091743258321953937589228309006487860449766771769929387368279954805910973141610887087003505743117463931330994203867708761842899979113079171875576735031286410235332865742982491285999711292615307876381494816514323554545930565011523552779268143981861836724592668921524666638244758586556533443068310759621604298749078008836027471902089553145117828939488914985872344018314352393011569028583239478891185447927027033844284551867792117136053667652818486220709407885167536895104344075876209684969421266129990049326168486148385260560186507174926480939085519287801025057785575653219207671574430000088020885126178813033273977947060678046871685059062197568343433188615267482085079265508763100173704159439397065039574835477868439487955377218903733933660643494218965511545858484774113672597413612386369613202152582456473400571800668241319646029722708140071452337017216268462484786677598533360475773404086330561017473135525633122152648313641415699724016620204796548917785641991203441698782828102632799343182292609699767576271263956242845877945361867388618731700020551453742251693572447382565653037210019579795645337610687136327873215940042349366788759683587711718105803308089836421188730165557211118022104917059345863644365016918133229263168295548910696897691739158253978767595734199597734600519900142252336777215195881173533553086548555308671478480390674561126809018845418220598097699907145131307392097849315589511157495395297058209301084005339520849506095533921696494249842218478213302453012731684065428119161511160485119225681865374257841203603419995313919112865691374842257778036567559847175763861320028748843763336491186303943223348374707371561796668070243195090109318726256267363854894494987430716824269872412637257308003232408518146977473130739060268853390232845685205156585037191808705140888195016838871663400906076898068589119976574761433455925550452824325171514364698396550222231940841557747553644696666011961942378453161606480304164885097360049261268397933429799516588341329037330625939943395932743669469163578995860106281957457659987047819843483640447078644587522613527557956975153603240448739855236374315287966802307465190158529855829081101391334107267602200560651969260234499042702394977587111658357420135975411366356581886147741328934436850468500477325908300198250826012369863118279680281808204931996709500109974264242940426648260963893346313020870907517348335453201805795654151193811014197831672160865918999434108228841412548031778460466245811897694072522402664393233858996974042338774295847933218763059971299475253128774641515546414317616623390279005278689539865461516977014105328890108002480235963532020781640721080211664157079248210147124150982994440639025521396504472303552733205574316646351424527492431802803053483686858889016750633837533953569865634464583365605121332343415770651222653806600549528558771007553937786163009396631017489726028242002620290259538847078855579948029808292717008593643387445115979738017363767443660748536794928609788473982074098753357892527596162548622344211955126420433991806855899045183920873471276384425655741898295416224007056021537461302787192556540526340398761951952466039929669175480362531962091289858384655037452542606692558445571502750762854638975562078611767762657828212455522957004514428974597098831898571562319600100481091554916204534162303098693780160114297847604797571298490007487083072990400015057488237151902410290664819925416382424203573734967971297260098288926316636780893007423162051932885069670394389786709463867347080308038846152941117902522658608627207892156867795515538138703415231461335964956857080403925416683448059016992496443904083360700169643079631757281416190856698629299762914097447907818839271943998997665171363211040405901646560868857669407112765316820765965646556578486341298057918028558195280202098914308501570660112300783567598450794663202343300413868710212546435958262060885234403319554494894370865160651768993324940997334841841246488657090057784785407755972744807649347243167842023729029009601373812729449089139416354005794793201648063166955193842519593207613933660453703343120364495377031237129248270609378822025004248634679643538664647342027450537267781259326888890795510571603481574144288366293054305432977863242652464694904237218232165388442227991501670525074459644377347754726978562132899455993452594016317540626057164912840767706992793603808594503197151485104100474176565778159049054113240906750271503408506769786349635616438429223702481866900528632947129935627235944066006020988506345173967266219935966891518376797898327439086958995761097824235232807761118275198711603871991400045916433137365189187037277349880392308424018808956703186286622500251812618219246020661459369004630724516292028102929876219466248633732657248800945864863272987497010146874136117270772176360006253767509438975624567728605569951177067319523029793173804915276289341060858046053209494762124937113721258280601251193688706554793072104810614958623611644562216106965239176210767961422568526646790236228176168049690662263032135245659094262757918845698568142714104684403507661583301171201098261666570251803312643289749339978277780234552170857357049419073700491537119599991703718317245340289376008169172003091509747096733426792411160497832296742972281433951834292892443543315871200278968292462306191677430114707758173866004170547585331219573985224007833209446065428099081137307951700935593103834156102115141514559086539924213440342863665082086663371081328643025320769040650729614702547998557690754786447199994756328896693311179637700986893165892259726186831112170717712561772514375845015400092806121613354336659352505436950459775742846792124170889545996730567901975533494805262014216730864440913780255150280637418578950376733282430620525061526936467005850936607414729594147211116372395942049834812209544253251290277786445475020661073625284159464877019062619908669802067255651791427596502768633281492537240771511631213289222911591278472497382123068817510922342978372107927983534154242394859955461027153984446348125723463242222665502121745428536915810292470390119392351710168259183164965474119911848035779201716823651833593904469371392097912470578796233932375434278863426498131403400213288985114861977461213775668407787827832906750600526533082337963783421803128995081257621405572682621478232269037211341858081500187430221869567126003670451625771979975214742335201758640478846234204984403203642484779438605306734274466845845544363777109100000443302691667774631797272812770675237957661410939293999706302454399266235143565760789971575073359347732231851772122537231390338394913210151053003439666848681149978166293419553240235100251757704443340842586027421084908393202616292297283698904751409550227110347622479536909743953570165544747698600668104658615614837680670883629723016528253118520909439690575014061304586188114979279449570179079058596687772656552420691770969207737134053920872987163153857828444325528925019789430741558986635042751802148070319439848125157279605576021108803231231014773956923350461173774264168377880840904056932603624193089648669764689040702035678407670794699101254151317744281747840833178938285089167015257668039045871873141192768614656892586454713827290393920168370203344698846772488430768287757115836532160762584727549261152681575506045273096160632418656602513443172816873416080004462679424741823506951365552308166231364831976383855836794417420401604182938409096668181394648621731958253248424458708750536327801964793715068972512798851253778803712989501147410273665413478258674649933360614977118810171843009510601356011517313040711871267558687952382295494580223513548583183649123366587689657410922886821798354715098399159549403616505133336969604278072872547535834458760874694026885485364018589978053389835162768429472454987160738165570531216345154112362516297529873546057746048105189601242102569630936921245746007308042286623240162688918380980982474551211610871922016143664645217408499946317277593274572503762246939465927653183877948646267254560668098396501611774947234833837467980799682112324294249475098706238360771026747988447616197521767636714461610984503224101751616234178631158877150066937189013542787955964906553744819374904831882862146908417321343751103090248100715559246703824881777840167687327273840330900851084626752964507212108163293940326016452450507776322203062398738305277022098314973966037986911373591349977568633223028087839214873711538673479411841029028765579499649505639224696955317670252491777160454799056771581232430859374260504244728870197011248479487710331908014313355749475661062448014536817070804938057784498914208196160134202133614310077912902537342739259412031749051816264010177343565008329764311115496782092154076979477746371020044282484605178552235924154179337470450849732227640799637563032157278963462921115417133542546001070928300147547896237656346563276970281940541963509819067825643565250924695884768979011981763308846751010241003657488269212597836891852894316903086728327241184496517380478360523200928894195149883204197859808399472534288398226629161274576221054245874282634376081631434980574527472016459875415213614740239753002753029753875800371470327437687633148819657295748518802299848093435321198802444658548133757836217221270409367604978655655492069465254053605751985672279670031945004358860425504822066023038176773029430988526635728616832613913420372256761523000541661415840533546210420576407853663561174767145075678149255469746936876371866487829356194043009255575897992095230250851266856952801024366509740002632321693495541770453095276742056251898923018970825934169424026638720296234422975210429261366824217648443082893161104120038713349259642690342507907720741535489717642329639764582397259416249758242661938640972862872196051483593196218946254689375222345436426123482778400721899805896965278412273739437812811829829089178244347292946885863784908454457436806137980750035682139309530235869546508819730957225696443563099499286296373668766348322510954852264203945023639185599302874571829462732492166967393188067573158308637591786595464213414334072093090449055728719371245298324172762529285726046755303889482139645811127406071797764273668384366803827522277317638818539457121688491594371837488690314808580704050414676449584069213391045969510575588997728451813784077354987909597531440194526355189562483849298300627461300521870135006161456915948598784286449708664518807497107585828794834261189904637312078632340738633463089545277212752719949263944445339359065707378168419553656294524512090156545567965343662914712934911314085845536498225300622086272308758402569860424028215185795524219873445164131534596082598812242599488262355726622927693268387928006855381296381078231173157662860044703895299242521189871546086558881482031764184387231447495752967520938864223003411801650729006373038010186192960867514388859559226772396105840090240089557717838134263014292877106404845308402681009333822283012593734670037931450958131246288972936555684521282979333130688346243296181969148628553377470336071783023293347405227529180840077603180169470702681514868087445566784283521797669552636483697465386654177790457653350333629731124345649835527308383669275996224900660012402344689680313352461082251810267016365728401150251831912149149919943474512727033160364345719274000012022640817334766421023521087279460884921906942548120551754771517246152521569945794898427713250867899655555070282068582756679309447919621295967032712560769676658930663686430776077239918743527839463779378646345593344807630247703142860924974406362771640891088182861947655354701827060832189080100202709539845375716609869773421299808318611254463140488669733912975176743311574461432644577981778949055106984943500140951802379127949877785364294378033816648490205304640343453925339286894261364077351321446322597488991843166842907933768610900201305719114192254616800250839631362686353423288228256025438377346363089286174869695211902443182736546036013458769361460171768559360706283676712141217698727956287474670355769626892021479229375900893927762464857522356670337293168370433351710395234905114349759905543465306161682650314257423080507898185743565846703481727182915628567520063198506953716145523959277225828550966604157670024318667606277525905749056103208249335742397723696787845873775408187171753764720881901101085365368652141048680231661034379655752707700079122269160006101646825964730838633768338819457641805887448872332411253384247118472038669775195123340547521212726192441785836341964618056743199735477510706396561447974849305094520732828512716349831730554783100620524881481398048663708815175291783967684447933182026550094525669858384612224678995094438020316706736851875041942680609947472085985061510550612165891246816676557638142185987797744527101020431343574448206808736215745206251138395457828994506151579070986464894969627150205892814896849346774793954295630806716443191956080215307565088909492057101951435657033733622811448239956594506457493809853541688886669457598500185770351216498375070576918781111730724666125379902746164809899058897367986482299197148350432452958442513045533626852580036206455253177101174828178609773857767592855858780795075951441425950190599934729052316661837040876072274724045726822099939669246747768742921645598937897570441631628276971201663162184561756116045273863096265313749290200600949470496338013926366599392693530900088688596692371712566713662347941504245287791072919609081549489639241014452959218163272611316345829093530843227073625583885371465514381526846894195080069542226337472653786750151205111280248558375882033532859801347179722662064129878038164989217092893983956398442047900706959108768474199878106345997254824695330907970783961249635067852055037157328399919993000904998658037422807997874131128032217467823720544029758811752871176232137713783479182395572138338210174822491418709340128151202624945947567247268128372643031254854131107725160543684318456350707116912305139494700668291646276690300411777693644202538055624700247255073254978943059607277101267075260049915802128149069184457279147665106876971765478768558700200071271531743635729315433879538826455743184518296691608182435662953060658068073980859969537879603393716320555096662163149205411390212690533064676931483858372498517034236675335258665696625062826809786397520026072015388032376950780736816247434326873988497067000670747625904237192001721682524228735624947899410498868403735300583914173086533867675228484093790996708407706859252261644858028771359171682123305358918874059081370743700755601559664425845213106217597565974449829025046517107011087751614637986459307741761762185632601999568037069824469922011390694164952523136250774100004037463200047269633944688578915954539341438557115205197917103859751430360163188027556598430423640031116148210240126302627733358366420587863293768535249690503805137962236916476781157608169796185979998855127770615412082465431416717699873774268837875557241170744169287253022621414878650793868796578526342214005415900742947554016612849824776796930801418825251037441591284916900954898283563148675159409663808754863121162760318775356711819493866973066711540453613247411276863539324007548822411251801185599089611038218563573092094352204631296318334338469480599716013135623719224033490534058688278593451537152799043001976620875539659385257421674179492131798200520223125677720089701253458674578307921134121908195969405329108020518039626040424417022852935980976130222415073736626726970269877092244279300565703199056238449496523230118350010234247326094331509744982186272930883495328480263757491692251965544744161756067173134463442876170947005800049124732994746969482611384549772285214867768311835769587486334098580245835504196813671504041596872436505539794200740908965003424253917795057903085781056846104744115941274651790418823442114984098761430270508187920724487142332684340734915582713598906627568958130974205203886382716750731946943168728541715247981506778789748168485713091040905505652322756084402796361772817910054058454671959664808597449548942242386964351722834928962232695863740270874615017692721450171306944722993448550422238976661923285939749074516790516728242414017965071338081253306117655166652961093122375688692025584279435341190806693271346179827927593732847274177241400889432123177307595427063146147286167595063191243623466501143298778279480786997041884705072000230028480734494646605659798919969060448896614622089959811570572241283657164039285630439576240512742193410955894890356584697845704027161855826556801300042735225011710828043730098245623575076311163262176962294036919636909250359707045482543141961981046229353573612460469909051571885538808799240094151672057582801379538464228157020888736772186481691031522636433384957540239875308625369533047492545979603657419225565360602537189064975995303780945355946245641755412686419563282701392851573028955202697099647805972929687941562636824759007382741961145289467204723112723140907991218323927946242027838797319314184579626262853997620153476231676265259674254531962040587559391014831743734868049506954108050723929973174038065120776345093937851316620297807183044616949570430286265900544146601884409822455407196166791539172004898840689714450295367163488882264322053736602298686795101191863338804665643179091156387981125890972914307032602272313753732178273725246404099949077730259511889080606171592568479057730050162227693923781879117271597009778656456068583995241844203554831242059273230542241529862477794431544778949372937350981442674319322193056546234919519055281893459546987541702437676594129613205812402027923215658465019545334001686867855561656951757616699854602716917437615807088461990463714512669397227153060137080296917555070399978947844492717230017391269216162546039860106653971261664710653321515913959861781773455687786983517580784748700529647424474927500520545399217477576694382364313997541681604907123354843666436942981042079379132429090447248399650379069754942468769058266071936018727549108501403612655628113270356179980786973481578488052527561558607969135808840790858895006419252358451064421070633697968664239148764492027014505665739442317064419966611956839012942489013361105511883061408025458537826830157054935542633500354526431184567190488919216852275046042913096783158176447119448560793227759602998705054854280779023716670413477773090747039868998037607101366502063498989726299450724146424339666847210696125304245703903871051336724223842299260108011798402147396747456557178981382332522600541577901906410282736800815038556233551225840769378132710534384482326360077750260462412096982373407960729889853790685510524530416034100759952788087556360443080794112072385472190700634406410172665949343973048560222082651518990120822978967573673529635782355272567545225893417589665807468701857650270292520336112493904608237076755355419816720880631556404098242948653295900851181277707765877204441151924121519796412055143688444538662617252014078167290597291290503775042440677218720702094472035916656586986361468321341169856625336865793350617666189310243104756309292301252470263098509836842680254113867425091748334708473671225597156542702585677357373794393974990900366095414958815224095012029858360753663070702870680429011316208929830029785097740387476354792323931289601986364232527036222814377421377323124372430471371082380452975615738230343422687088309218299002256214791331474048157564092667006410549232503617536880556480133108865453722220756200092253836423078227221692587618839890563592258324096182300549915806505600255144192086265697586378364984425842902022099324767300972994535655504044788129594758912186588385134664668375839388197131250923117522139812635869441734393104767158596374313471328162867683631638061152069583976052982788795885333573422839748694055809113128989701712853070335751792226419372558094949293573515793530195548954749324138036778932220503410813762087384590165108073315530472740364247029855541179291056500136014063922621428866136531959796576751045217335113270671936383997586717144451637826778435925476143201983246458159154031015460081324926189913734523417546730928037148219873978146091274812627899944506182162329112590926707969575568081328528816260930632932574605265621931282082933207223968682252112124543812542389530111062889718106270073641265041942174241134799684811070497209377393007104754748124106289972433725076620046599231414745032621986691636259832506542307162300851269195671027668674987203350366057956992933264093060367640982946036397073323830290417888746109340418702227040018272445757661094038138516677234767558717381414465491264574668956159390909370128112023726644031570393161694724946632281458446548645471986499106481942473147339239974763711234730158068493401775867497070784976733021000178606778473177477639417646033373615164242281765432076849875518873298356107286633583472841853859902589477895817327139732511726763422055185399939462193603528411092916802046438150829473421790152521054396488086334606022184413822307613538485190470237502565259668042875028884462166874631654787907623515904612017511209009496497183696486842412494215711165985081741941331966167205965147720077291660239309886890139287030165676237574168160546514076338807225251444828368400415533423379797545559052131540682145519348171449059825031913793743247926184168970041532850212011691866495240676218935987793068437304790025719608474848381351830015873051905383713951642431217711943728925451113587258718398681342318220724831382273275203591578223853305796099048970975079025534664769064282916978285414657396519201431310499430658282047573533570785408019764370071903124142223175690646139580581815093191485340007367245859033934043995080985671062748755414700364412958233459096689636369297336072996312278134677118552119978996531666677939267368617736813600594781247116557904133662532078502875393845352665442684013950194702551455914947083536491049577920988193254367096423239284680349184340065463449256151111665171684880213328756861862838055094421491670195579124692695757697131796581664638444767255992731377465328306770164800898916287199251829103461151405982717956877552515268373475334590358175954094689679463053270951442789945747051430121877880582642742525860934801000894750569045365251501243875455826265529560467090947210596136561903494486015673741234372600468337238435662303425707486288757010979182653238675207746944057278169614837655787473931763913181817666306830496036620116298222967728991417709448077789819479938729404739656441284730234320499802654325848865732943876652312807586187364714142649644121898876388650955485135895736097600554518383222892976708966609558217369564711483742139543054939597617769570417487727216494583945221118872394662673984859051740403549274652720591519323076193257368611633168039214999454846428835377473406826265469943053548131884069444775187770876566923119212788255181653780836118440229341518820730067723225375410993398234022362937333762452200367575902631351775380702273872690205248417439431367646644183549837769452489269323661994989335567690925746604871635916364093670966303140421716755832482988452085963018448508708112718827299982359558847843783023786401721204877507750173813911906638815759049459988644530451979326939943638383331236482570307975381405498494641380178271662354034948955673568517406956721401402876522767208363139010817967169342451810077548287103096878584272411956746963877546338763096087182380638171116037837380260480268029986908422910170571732665953867344934018847680626475783229266673700058472307206365227678109926922275379685700138259624970593373214305835313349830138024139087289445793882085644579888440233014974736743496882760470444893716456731527330538254944373460768584157056649179836837573245538003103322879836680685550889504938078294412542117104210601651309446177641778967327797278290079453425690405350111921149474138620220330542348340781010872750481696741442811535573902703460237784905755758505139697323715626084134071030010038614303358068223152902711295152899753236062838235732099227067340086217697299835567763621733375605997369807240516686923695570559670873603177252909878790449071408661247651471324198714806974470363999583365451434681417520084654674081455403586844765799379947147174647185032004147047980494792738379084774076189493314148340886418926874894605387200642046990038609355180521371072153292524547291529542375215582364029310923174374131588544886491179927611445868312300514435038290701453205334767263693453068998231020254650429523791488354967302571096185085236352358363444441278032723310460576686855548953508033170994247655586944253648269205189721374259140112535868264749743715610920174366426941168231116559538945992095703781185615385246993260004159808250708141376287962078448257202315970353985505360741619538352388485964987170319563552499274232507285508366867455848095733572115108775694163300116364196862901238507293564501081608441427775257192422166318791947091391998722652735257089534903016933131865961748912254768502966150653293907789232978544623590943091432755047019468933086759420767511614801105357170601755065313382069904309452834127233549616748150233723363666700254378134303908835575706828966534558355454181931615893361418840851889569934981442656584205059343639689095925004484302900519194667668378505791823103754616694179978774599886402267633261923226425952893233743468937519781418656754813599857403309934380635428219207351410781230115814863627017432521169942086666546512042202371440335688861780415002563867101198539118975408394463612274596593623196488977571215715054681703682797488286601364876594170143916619545371575519558079149884540679083157246182635074431004142489175460582180121682597577693142166210831274716066694495481721011657687558997005695965572042729197402131899124755580580014742118777786124721191697410049241524350603331773775576677984480232565412808490875798119612501042197370827240534481126786913597349538407704851454763146691961837551332207253330676537811286481613034600983280115640338888951640987855782799392306912498781014662500042784894081772391747314714497732862850880215942304540861720057368612783844018826782126962236334012907001486454623829061048898555296591187849296631073937885217169289491747737155914491176887798429342615085004656488380427725409027152238102683734020161919639370145009401673486048154693208905619973191536992505738057906753693690612379894964069603884412930934215908794068922188527802349345174693476245897755685061971319160713715661041466961893150400195445394501431019451557196849915398382083250007979645856980815725018836366004700022715382839894683029304868324765685804859814599969599326641538058811824695316197498323817464896783394617070685545829997326576739537557372713131308363923438031500913854045129432276867143412706527620217281773574234989398266222436523945176441606325116041545126865089135773276527305306945353658432787979552332889065983681142335472025108472690907169542181625358799051911686853722359952352243409324377069026535304151866891837184841949784169041386092015778196204865033271345313408850200671319663869320222676873559119741853592802555350826599432241480801311699584945410789205035907264513220442005615847091684589414819615115579960564171373304580105774141651050616025211244217594475085666598686106272510036635342191415873181078337205837472978617668721224297243400409609279829622908077568138235400502972727483025210255485217169270079434364800447683153781407439626589612672107277791845921663116062477648876483547092868218595490873336000477564879682773467108556758230238301127982226748899780186233804018739788446042807574678543740100338286560518599921033344643043778376223085697548129961666100708171149289928193336762870676854380909687954190167446085816789776563645149882814419262051860906445648613472745928617143475846354746339791649660150412078151029882061177733182681450058608593824739425907085248280060708452128235810218428531445983911796701463378362663775399603825076564942440506562540552676485023423859011817425280409664834071625955785237236951730099190475072454612002310889694952892478036567684043507980218151454207788434311152928031715973504781982852084314325170778231449748067872195263914536901361183629617499260576040845756864217162964069112668055604094280540443290090078191382158874497681348283201371143240399001424293984016941117467444811690162875884638485696358281134243316774811854069839046510041946855470600091207920932824873212844942166838407060121080789431075069607660746938991669167259310662320410733315624210059238274211167548949805553577796629036327868438552653945879939323869828763892822334211777540879145981309552418052244135262410962431636283652324165974275881477651155672974428016396784481142471520788355767406317707857844558210961392932450309266251244481227325129600630145612656639921796542483551386244139551635118802884494310465251410968797517532070082211640443108256517415326009624990665106583096320720477738658350521581588590098265769567811730598351072008021529326185125761648925821303142488385001091129473845566973792041151304212174239545262030382212945646522446968566352029466708145250795531819406337448729522315492068271656293964311762680627189728421518558763183802398106614083129324080999038551707771902787470129652961699675302832670071790213401924865989197555089659944619712852052920757147592409317546530469374693420753113318615166919139041779874034388312509214614954576198403959393295225218724543030382229433486066562541775610624823555096955495629943290094271116631191323239827861533190518813324062904589339402872325103895350371193597936502448641566616907229672666403362848610097575404146082101192533322781591808369920022517730248109035733031093128421945100014013824538951262471073191165749329524857896094100663254876225905646483981484664300995820726775463512618607399444604477594857148318960318760226525861649801032952668569842755044904354401973702830110008879886684226900228621534837042022044171461380139304333800425351632125586910334797545827775320766843914233389955657860829483481604630774790777872556715944068040799720372572468224667773058274247739906645674732108232744946271624249243025910734496322405073074578235088043170029177042745812654357270681271737674665844228080961848587394689264022701371560296239566261804330641679199158156250035679244717924779283742925498929981343854402135509530970488465107952288531754505560510772154937701112431804116512306568400715000364187257906207201290774449289661217206000826199360793593409102534316684603151025078997965317909494776308541057155188646129413678087564145731452908822012812008579471376119792060144192154738365686137859723144303975624583664070106627333020828583757143090479072172080773839238538438813165859399400671854652571788214767290351070152800703054246786675827821754098348781936930465006394415252322112849206394644291900056666779832044249473901103714124767253548871629758788329800642827495837975300201005813738747286359835344087018107290688779249629793434138546592582589994619395344510105339138619091712377558089002177877003256693927333711675081832446677399744634701209317497009983039676171843651993570318680030499005049866362451684382510244351915490588685662859998906118875350374489235887510729421134173024280474221902886723410213740365534108378165075067440670861507514079731700688864306730570000521605419493291997965489382141142486848823156306002296709569291577082700740988380560101071455304408630006110153414239988661436281969864805938861744038392032936455420048970668516181967621530632370172165001141435406750366140007081164902452869714950986311718317414667270768392894754410437580808877267760706945604200527263990688687250702177653296704107982637391039661523718197351338085456749718582410346241426575720125286952234863574161651302194152631981507045343505551705946097174132616979998632595011628473123834893830775131797623374363041983379975992221516878207911542955268600528706733410272416858170455560313925697043582991781341589029125376310938566623370218441615802396602805538608620052558236617986332548460169994899608816595119119738562679726828895077131589143263367343132525165290680607226401856333714757641326752214431357967549378380025278617512864870913490950002278729981018401345447688949679103976490852643247214810465075973942103582865885412688145325865581469397218466941526828054183856569272532601621524877060772887981907907215119913415408139811348112355151376988824519933169473832999801006457389501902851163370005584473185399210377821307456901652839212770358560250049395980730876735337856913105330598075053342872195086633609874949163177106287726062495774249937280686685864990840749793780942602901700070583153850456145058325528981532973134352147933667136530856059762538612905062850126014653299161512358247606136838958307523731048218080640004517571600956302057504658710143050038767957033248711883245685570454149853282019366473832598185755785433706849603881560758620506421910006818459658275119270440189618842833050917698552618346486299255175461124786314557067480814876447760020298597165870417213459334298504647827084060434120551601945167659269828742483431826398095797438208528054354385877115296900734801892712890595840581797152413605157803169539780741791216361110252670564010701599361038982665105755565576631786632524981786048829787877686900185633761628083904396739281784505271926560246329061537408792177041109042067500489860369328535466462863687160444140294713222180508429782236707248949580626952562395332654807427017150610298514287514404711594366811022880877360356724771118351293063177695348389774281104285981399152294791693934565879375975968051456813051280249300222392378170241494170208456173941241591420453943533769234086171999035487027711662311538229391675020587793854455601422448947054948298119853896997416027885462832198625021385237866454072622538617941088819228901664083644410138740467976250573606947472311544787611752374394404061048888014083302017883576986149992914765287934077123422638546359966577700580609938849471692691014800112371898237695390626827817977263701769112676724987243649193542940606943870246870059098545353094572534557242159159468696599306101863359041483290947519815321252270562276751093362739744847016381802421785803130582731860388118372455131604313373595584208874743348193835456324996611791703003693175810190970090688177008364659396606816341125313351480582800026348239030877291899443887580477228711053552709223203963499643449214151470193329847064637965877384448622950122168049897565476683742430896507109239256202805519671642821026817438288426606833108458502331640464700107072813024742570650069327848698452743438588327524610774498474030117830660155842170677506169416979306676762821104112326929079301153064166748882821054532790080931469415570025749690870173266912934116176689050259686615266713568785634648169357549919290640704654281938419628507091495202895870922307813220359080747317977529630579799594623174491088511924085241787492181657172781948025039629918726225873817363658611277013414781687048215688169170868886142675850673941730923706417222594013854789844659990367714873078530555587259265501822600965043910983499324132599163065529805391221858667782747595014493224267376805529168397402916924226548308293713809012551528635946420414761602365699357469495677440056297452980013122503301531222007873589147531033017277077421935572526180274876235393235195534876756922591606398254529090108110082642743492672851738635767702558173591513556543667069469754535837857102382946840376090616100593448291030848287759214819802882797861068922933088371469698051310568805957504043695336279998036334410144654031305270111124051448627214154617230038256731135424391116462472415805246139886770544587765431475425964836606236661907513564512913244293750142054228074820825745697515487350107756053492614254220148368007579689364188166048972985147781804853649024742361535900275503315309220979753706821431139416918540477373526348644877840512258643825500299529369830711691690216882224085001403906385694254294644008618548020162960856422248142104868747501314675817842082288037258416013978359934582537016525208186765260475188624556080847733007687871866118464001424190814513314475775811139747996970869045215330690374092458812777513957916924560872532519668502931825577132543172524796573897559967011415230540291136621998656740243881210606295436360222122459817378957592997263423380956662212169560954908127373094567473922824314511171880294235895369348733048725627870289059388682700431016200612503992062101571349911114594930676113771140109561976568723257291921379618876931243963745935265099976747146957970502177199328093989074218108148067942168309255725912702328123200943211118531075504061836369946880445356651596436144729548647302484608857262438021729850415221904199277734045883744383276973764927224151870783848220018044388271609101994725276205821975036531806255390018603167716798096050857860832838972526733816525063379754504849180741275645091852956750887173210188527396550501082473220502500258030001132596127194822393586742246470063076950547336200522970173760265509196256820627247976263539051827869013391401445515985577275025682258161865836142054301062719030257066561481550276364575087267576903618047672180569528169494748571792791456190690313951643219010183415211152265476380515159259228878962342407387383777586319152275412685537752777458509260459120578822263412576361217967787180521379474000273069857512907343932340277640691845455349436648545098545129416901912194994757519894937650627092247513477283628472245440790351547798500196701331656601071445788214648529453938884260806080138708747377862025837282120456700151400655468155879643050125243628224893698618173705090145741687697085350638691504944970526424857631140105203167124385646815485978965820386808726888445855106066719386763685060108861703148947768438258811545821840752655141284602045125927087009962269818134561814611438285066220880024599921043274406642667275261072024337547593176594465666213224676397747037890890472067596245498451530551546436392649819512348960739414016348469496446341675196695002452782223393527267788319304809402055795352200972566787035954817056885563284239208611220831339547786042429661743824945802597937224418514021018852249019478382254566531978583940123359746566124150752521556345996635021610160453369196086309387075021086515054623701954585644664775577725993203437490863606999837714479018038561363460232557741133450003286973968288538917961910169911370482235348972529500992528028468297845178465256552246837277314962780857998774488550823692374543389612029449160760996016213038346471730427314439312838385765335114865724687449447134365926175705153372197124821019389108058884586795763525677041237788249893661229442685837889198655786348431380458284931068504603364788376329386348825717513683155267611714176430344210210077097257992505065642201040717983312996395000389236180179752058747109233078362895516481531397736129721158539764572989273314920440092710889932346757883228843820147113691607134695981648075318387956371955219090892751482437696172328277627971845368834086464704254956521174630570900267897218952930994937039003273100282744596180295675690568821770545337479127707097217913140558453351045986282706224537951989285771225104936604449073250973246522498400107684992683724615023503020697849881161570478419411293410348684099552336856055203633981303980117079103820962489156937330462353954587493174975635192134313561766978692522842898470235215146259634942604787867774230196826440791208950325143518203653086959876866300090324849055530538141614806379447675099835255551752873735681726775850159897953141505842702700367585564731994243676303706414922129600407625758637891830087692772074967934392933562626852512916712240914548610524862692160222851981195012883483869180867865396506231310535920579815235968251646000894161417734933765810568805117281882267942609432234410467237010961443370774018841584023489024734416383412408044159228920021597957631497802353141619429402402231229981828280447808512758383072097575838886918859153175211985879326569642954671798375679819751162754773247872289035136363270617734227241289562121226690953922944391431030965240823283831389365286792126670332132235232029332891834842241939992989558826260093678033871613382727335829108243958597646148582303802255378265887223150626151496235390778293523690531273685815638915161196271436307788559781237178638133020202331515109686971652777514583876189190560795959954635020709697439793484752762468847071661466606527629956138139656911253430366872741319609170804718573135524966423315885061555123984446146681654539485318454350503581769320884853715120675761983040300767392497947674806196207000467669501356127740507355675150331552505123560614790883382613115679907561326120343815492541832219279930382673341170244854405754728620915419885173794918938433204769974350706364202991310727185402998466564100163990746313105425371898933998140545209497474271071334368400063029398583901338918174093626329261049633815560710418105904817443656407302402750451664571912277463110296892481644597806445661931562533939491669034677056933730794275448460136830927376558022412228253597512733177130585092185889700469408078650959939721882666999812527068847222680325322632641685252958118493690155720153072029201835200066252974556911553337550219710742281900681060875888596883322795794378984880858553085182154092427048380176008754836029209841469906225085736522926550835636331894246301858262973384363231177511004028419409388052434545177682690764698211731092976629747481124930295286679483853707329065410749910272335432487192707383750328707250724815318115414246155971369064045980011013587455723480853668910122379890092508073464685494928614189979732462298634519153526017065031217637299374086149478039817047985288167203539903577315127817507257350189266888342861478563909550292214016883352163099548300485296033358930459259691359241980762660828765330370080561859132852267923972472631753494694057656933470420463879516861877509685020900145465582394196421529969249078308299838864320385681094947098041255961006916500226239500576602363058709221739408435885984521363181848784356356898301451693108698811676950470405170616434169235481982354259142619941718875259893625573132065150293886661276767728814411258537821108905986254552463841450121827150701018412341571481409809465403069652438175197445989766633678496420275455720152183363498284687531841196315781057989138105929208098607199913933590796260448291372705879814787801607200413023637970564831397156390132413927493866935685824383866231440843283012626610612810169161365265132830257758898206869956644695034438421303861144086843312278604646011152883442814566643522586731060926275891107780212013369690049785480456661865169939400236299992142437711365076686966945397217537295846415706151091451778021286744142831761714112797553915123307529992619086581173889581037730241945594791666360332289382925684261976112560635807403341472517669800628933091790160748815772368757863660032097611349474835621539108159695025153315855532208931024916325164706117560359847053620352917114598082449353853316714957497166268010647207341627734448652930745240933975858391987502306812873044131956595500629487549176048258120145370337377225516940307085554660412977756271276770924457703150272451504536386844753925213749751969791147383976763395318570192784679554398695062095392110722263476968473028846803142184969629621442532361154632364994016554599741068295531522215839353431842659485715808451946040703174241074979572536269354208701064378009141933118886496859174110803118702468490123021118487061590145549550941941620795408330824460926038052816623268089961726011519984232896721178992045755320665802415820979596269712003331425897952862747421481895533375409764611791578534972113515748042005329586588754866167760472985425013029147563584024536779938147248872065316866709230756135431812183220285856530201989915711380823149837549287298090881357630369747916463483960679279459267522844441043098481910155891852390837849810421855779426460390671295886701241932300368660916129594006365245127117470980958383262526044750781566742748914039972290890658936049638467351226304466864383416800835171036968478313961405851893512308802659595126930399704454100947191323952950557410308664609360698590176236261734801553055583506196858110685747295179752541095645089406065703970522250529696103158119167038741028319749459868012748926210547351030724610413944799282320884659042512796331515825487062162355445413736933115561291187879956873153085548755766642046973207837520091976415942845436656872122767992836201014874192042607973721015925859352045284793699616351163820275594628240884170350164331073809510223162031792347411616869404198661789908383134734602476339531388668189296311471629616893747909624055672742532326447501083616940488903373848134886071573386124468878387132485318844431633719897650490872230806588847511560287334322161092581045252474429583201681249900094052421203569417720318416932351010796591215579476005009092955784283120098763344106685245080654332236516421029744405094152022169650530466599647922471476450612933122688214412568599561955675668839134112597192034370933111720112955408209734250072663261923342140135698428032434166867180661989020267642973519463193232039273230931922219863561049606020800656565483093293429301922390380770722504616604620753791299017219486435356693535692270078460357557706438544638920363902841911132174660994825867685549410703170889752869866994973590698323798038555783886911928744428370812374080308290049572526118021725821461921460208035158456433084669038201486722681022680379271333383198936663624942720271518783987402269715207600664668015737306472260642203404029688518411387517913774565127138079419856129905802978881182586900729479483623490515540726421799090751254577397477005373125305767954300731632763946623944371722339661159309220631852709706843051591804846046062437794685855666705408864441554198854138292281887946931502816039528030773978937091872184695324029593033196483604234316884558935311792179597501090684371650951875370481834147461677775702011539365829930436992214862723093862215679712606729630642582699855868558977215705975819796642119242906173000561397135443670501072706576565273128262436275447176650925459960372146204135066996758977966174327107942126058234900623683693922636013601353261882986450735894082898798712114860622515852283341521334427135306630515140509306205270372542272644765768848814767313398385142907887215813875659061499964172671509919317203772706656514922575208640886671386269240255519515679930055429640292805469187294521619766688009011111456097918662255538096708930102682016545812732219883618935452913163234686440063024918532542884545466033747276780644131213124667733654295542415403262679337789444194393542953605922999457527356744227780344577606261774288979977997177994859119263023243246382787861623737437098813463009012000530030268169052932570227691595565092322539530829897725167863385124490165568231708494680868097190153669551401592997440228390433602832547079741021195095571590133589093737609074226424443550105949614050334808871591099155797412152724519874422233105035731510578320914381544373741045987778351137293254161724192545220132652665106513681035327429644122160036034495711370517889735411257587186183326480999936699681890709446871810596567352387341933913230295676802176228495149832237113423854497719251456880283398730799747937409227941594226210790469075774820455236466811844182529823056375828085888675545063588419622253226883722583686641149220205481370846009160140980687283354555518210056997766410237895791029018525000624029979782638099725067156082916451012565558621538486673065866285735147738933634782780679596504030647851975999873836711879321897219920877029528285588521170097165736152969667132401177457446069135290585788674401095086459104909495211085385803897927137690338471804145092703634263221749346297843031823387848143899492256037134754674550042469136438753624482558199846263096544050935400900864400913938598987242025320741947379680897504867645200872368778008803634253052349512986824679701309521900928435543957494414891604728223737658189878070513445715049796718576462560558207749691730508631223888382547418929964860197940105236100069806620473287929706046083485461583486722232551641381487557840494972366575799261116757675746025662703340447242715013532218880595133370143379131800409921500069874468590733981307981658592415214264554058735650369410436851013407918730257442452718685435127286070733457302825737871327598379721390741443480161575239097581236325820848883064440714162640185067411204224834819863008411318224873739079032130183640684661303888870858191640375277779116728454432012367147092017708291028463781042232639387389950397110900667026906060988834437986156334906935908771495324437043401047835448620820626957241214741753881735085859385883905465736951315878935082865678998659826926005887849144345580214065502607488585108869527726706940367173090576355449451867390307630563312518403853802840985486295125073871738573001330299287166539880005089931799377925773044250814873003679670902120748587609265579936486362419356833677430104000428638466832487455162889931208225223072490845047710651469376534837396016845602081153123553373488501739419921967586291703847345544822439781227835435742594628447267894550290370073727580817916964567264424300661108046775356366323818345138200013771931239640793765566986592475292275584387877867350251545266775005808997423362307568282765977427000274831020687079917744379075789548450000454929983671056098865666387882137330763934072658673922959129099485984014956937099141328001584639754493799240251141410273875191519239169427019771633502019833781777369451856902403657997020523489101214655447108341731812357550737799336763753759010445546733542243661675714587649483017132680826132299612350842934706921065055865509557917523662475559054586070027572848819847592670128438178174985120859961125275136165520646287388533571926451080721126997690281191987445521531136753113816220817497712604849027536496785343965423716611154502223657091300597928969211668417811949832454321213568953072084473742983243886140122054347959085599401150912493646966896858259747928960276877751176090331438126764993355576050906428165023913026500607534644115362974790275837017815015751463313053150653739389756711499112346068679683046076795348681493948520472445857249654442461260647655935775133163288706239220097593029206788024608513201603373985387423786321167585421649244577972220459784988344598607565168049810819050116517067586696900250659339307833365264048420695173630935788783840697923664125089325326698287870582400949292768727930719450963354724930949042625154129328014221266266787727240064829181234715588259957298069478588089509206410570067079407721791346793789685617104322902292707769757479872139041814144191792981984876127383058236182192123313001997016634857696925137903484246812955457872212361772835506531037609146437691168341460203350682786993980018508401093254854829123863759288239997939735117794427234378299830802243488750587088904880819401214562736232917945506150544751525203655980042373479867861266824534505344568652317467159189026526352327117318234786798477179367256233619687696265303422558844065659069757988778513226254771166190518491199075432409390690188435815727815583062607711760516727461175166805054258832531073935308002449553253508552222934725211672558563502662013758172155574141620165044032670820885066292882546405234823574655655772826245833185095528268621052486122408716525006235303720579554823803874137276977640156388171252124179949138112367430394492931994159922042106526918943835927835864232649188045606459888323597449614175220971526946648446353137929554379616417665391549339927954008312024860998387267399231616766567363901839060727863486732963752286274542695856176756620565491365147012433131107875407875691991937635918059172318533700901206650772090236880535965645069397106719005791386914665604670054728984584434146560465023964054157322310631043860523072630789682212777943759614465592203574328904784300527770628709279176324032102299866500324933942894128391213500211678743985668064389920651545438998383970392641470917181431918891170680268057583602920984926189409375007438423537846085588276204060107489187015209046071104237657575560186355320937715334305430827440360606682349441595527808981711127974030514140190611257399345250574455623892367690897047262117147201299909939763173478138753283349596735514890053967205765569102157123462760650569707334373073832576122676464561476861582942204341331534085280540028601450018533904730482488829635850030389899053112821247979322997934685920765573953407238818282124660341101685674283338212038799482865306376293079121586510216920951829159602331569702175326553138221913691590148090725421265881753448506069557261153871677113252627608035100815818948255754720513591366141740636049427116598897617909282014072100594145449273433207596199623004209069637127414959797624564994977410451212593662383093207342684294732862555315565716972279614872324242426150667369813163205769819297334875539431496092007123587086155397607143653607920640751399371675059986525301107594745710327412990021790060545062496002393461142437872105859135950509500706566880935501376983417816852387440988413609386350699198483701091933636597701070808022725336474438934359758277830086007436223621527643269064801694451684236924857712513689957074708638996684796777809249463044946927518719314736414621552012301288704353300045405872037194424398378136250060869309884155725051430983550252752725152129115272482698827021372806681275742605900131501497406391510057631692637131699242095370539572524522169306130998039178527044598995476243131313829969779264070746488573695768883473007863202940999237947992740263545640288735604851472162242515117700366667181226830650692547736379650379980834684612775529680924517416702601727234496430710376384500930750407889297791210566939027415580371545658724179193660953385949600584346851676530192593640266164082832237694434897687562502385061732293154467905843867261063195272839159334483384229202252745427233809049651006517073069987811777214169224833616634380474180541473824176274719254053397081963940697409282841150417870020739580699100254471688552219467775116436531157130616960954250064035364130045220616407436570920396716589408382506400862597246454846525980272887816926111838498513603237377970194269864518923445868863666615941147025205180263750870874465988263414576233033027960949339528277466126067282539290071656779150327342786352999582744143443027904767664425013298607561928220486427105666871914818871590057188970903541991907619071608744111757321475414405048776015744584579220708921668385202482469446806856812743511936779357487140696957700703219407894698082239489549437543615552286570033331847241864210185743039375657657388748934035245398452122900036904847789986894040264786735120427840266983410953495127351229374342422360624617704000246164311764597247309665828870123243999173078504783027898693973769608958862971796372738510916228409868354641380534121291449666412711506936496735891768471740943758636011719902763652029650618368700589289998075813118335610019796336078735911548566816754023164445262552547141083933775703525359464142458000489484672238811433251898126312402709538857052111663040439258235860356011607102077434532818046345543382216672736244959211267536967622948175680326372178284288345686883550551000130838681853121527773945373981763818002781396584884625534004064018682610740795416760531701146354065652052758805863527703129221297888745746946322311397640225371374017794354948797663727494773586973983372814539110999522278236498672760904413683978019134128008198273857843438746246631534480507410385307987058618840185782413867023101499566342752599065656742095073847403869208806626673565638481619119882419088251856780410087440424563332254509231467169744580966104874300188410899976123984814997336107099272906857046546387130199790785863081577815736215924087022791447945945244582999901442014212285560133339583944586694227772416526591507091626925222426789504795659762609474648506181580313915470045969704472763549720560488776348673698817216567156171754967072282640131590316744840542467673166411062686220737918812987019736716026369991831187599451634777147975620222177563620826993579178362276249741847122387580003882810565882005456064615119134304803495704049732839840947014465813499620976022966919526249675551691819573257495472787389757685904383414644179239463179036412533956664969878975897024806294442317046266084456463648754430182751776071903418435136363766804282811556280090430401627821061942760557835106959871969979774624800239553950716015765213130047548341032017047693948719154680078817805267172646977993536783212376038121895151422375359973074543431954743085802802646098942494511711823112713844764591720112745912269398660011838622133445083199940104060967896065871477166242708108266745287204640667759467906396507349935173350688102426399230451382382253407664563863725409756717395743605166619720840492527343668225344508615521211862305878494625881244886999040903841007318229979386560224979266055683987396812326219178692596276978968089514123553709022655373704259003840306824594136654552562971804330598586385480939557505604872432750995818397287516646054154498400899903403605794970235115351513248263426567077809722953245327779414394538061924750443190391535369121533400532517121035685738917293189009640616971487954506710125818657540225034371999168602554279687427334516595179655573894797706109981687969455465644416957816853004970164464851061075893116213289432460311582992393908324546475283226184430844610648227099293092018452509231604175786116996057261090281551425158496298232572251944084542201374981812627748895371376393645917188748298720303240689460240540995711127845280939982081273458384883842281070854531362875482293074311373325243881427487783539679267736763820652581158632745561167729114904737581297436497070706907944988859736007230052228390680962629094895689199069035214405838162038488329909316858931759858215701902337841986324959380237172818771182713957666669825250807478442357280930652711825998212127902355734102355038421662412766958251156593834288513723525468100894102880107577069912491930158349694886683255702365822233248092889314763478142802071542132249185327585249344737809080100333000530959304131463912464287975137688377552252170224163066143565526324643342868901214795672914724051973372334045302657265874962922460876314922510319192638982785167710775670307437054324447086776144658697285150356518005790308078056934711968187106868331221754148609644845384941265076052913394698714997586014947659499181958771158784252134787041622944488427362594555920055765501167833956849027098754893675979273423566662883525976376132289998089445641053988194630499825657313766406085642515716804718219671865265927400824961943735872614116850154012814012555970330677562392524992587608040181604264740554354715063392075221932790830776294095571904685463044676000478726248519580825970157900082183678829459920245559399211026064346846279559286046925328941645581441364014999480688936785599067433250805254503044186049133313736984799228027010658368452713278112927963248611437778118943818789658161936144732091424969724136493636017826524086510721305904181123978218880737093292685072423522504848346168516649315097877558242385897574718673245879265275797576640723456159774285075745275665774941822557960870763057317539757646954522726011301033458138069885490548898955428407254013082406962304571314172088658827413938905951844715330471820718390956919697837535878478945288859905181148570806181551604315547135846600768500041732356253554321344838524703180707873175144319912515148247721970859831232197795826696012769508733537171492437751119677654211084948897735256159573622042831944479773212045940464999094226000823762485598136811154542793130313043227277093719663373569368219909999846545067223758615555322557841312247734087051768189936849301888366863422003758455839870739059456182262211535960381907713143966577434773438481366933835568263325469153389211119722583863741149491368023397502010145265944974175641761362976286204412857827595340440803739158137684848766354657483118745062972058580066956983093701497672727714123227062037574580356125278950449150733513159252839594589125877437433789931723417264349466775744532366064082597968062967844932527126322234926689102221258511267406364078182875052315909097033190809131076196846305109034637486359656094784370909643308663906122791550133030095068261049160041462647072510714143823717596719632435154862624311987694493550670536885569629690482760427585016747506256531546330308931673055817464825817043826730971964092527169547339689841764173826383941791066223515914051536169887173050714546371027335700444346596345125492137576610114408574881530734461488221763329956720976855014682382422475265759869587510183087257377917122399463817014591138118742013901326069208167639790359055879681761338827942737497416425175408995930367763453575315761951250835738007243600574314588101763949565180562414548827841267038505654670156472647074470068125649789816499067294502447222889502817514792915191134648209990546910223631501186287253341900751152648572705179969726571178177825859251937507234250730534362085859040918683562753713895966395006789695734398418361615139973339435847304144558071969180027496156072929710274141296874117727636758999010128564806938597488505976137556237267071655456790263829696286652441788046144914639590744867328390071750993110724753720245296847417079918115645487596496356024970956672204080553158294482082201734137249193482074836797872846471261801870152473465138266081764593777218224032772035703753375875713111671596145675097906146374242168777122387158903586811156437927824321063646644561675833575938094487667048166217988726535028250961976055334056713489500046014775624106761659875006815166875572724125875074349895173938135855926423235643446621707305552354421895240187189833518558459829788095875848157084664977051761159681813280559312977594229904018626223161930494895672103439149779665719084644569882814303700337732560630483552829644087712155109633155890983504609590859766214481865127824224940567332914368956687259366663546662596145271919104559014267780529753167469951834354174374173781838410518193815354093852205772722428906741189782918227173660360174226912388343724143005990013026396716452573969875879371266794512784856742082709379205195762514593415956964906412343046850644534719013601251615106832220621829126144632253429724365622940032219425818859368538506665113562505104658117773918933669806223733568304012846109209027994073529136411957594254052296201731571691972586691538284802697951487104703109665000443831235085898224232329221380543699546180064767813507118934772881196952892051583436519639909856739482602609222385626559348118051156692315280516979617623279638232356394533879879811558626726139585640843322700088685172160583988277099009905656654312617618808414369832699867460002182819576112351215605591230280970733718757576940546643735648764657063979907229835315321774610590212262995814606787443379269798715804005263569467536638459582417505586600479920517692521805284093778549467812016649960443880826130575476228466580951875907145714672542138688214458843436615051236017820202628083986726575517544958726828867582089552797168762006015341354241195024034631661854088420010077448545621290796673839250379162822031888053808715716340459494160870957913521036247136057804252120530034164601915388070468729677079555101354686944181747513564740569204736913902217004777350514411406215326086827611091715070498968768823806287168101250517771980590984659780939667846853797105805142454799422152447827658957767593646469473120460132444015326567437186164170263277051751002474555213676687552888313819017220103049219489287505652949184970481380338824932498122123429374475685002266648742872047293525939957545204134289925856752680074119061893698347351220827939261794633101421782696101812992234628592885256646294226148641774502055966233729972432649398276207024294155072798425357364916499980702598857871862792364930239036860058926398512320941963203861081035353285608960210047161540049165048981876134770244640179490281964655468755241910723587568993764200085919999211623028403519939885775980999985859130852795556271720896073119989463947062076422614160966407693001884043484246229748003625139110304687452353649546286564545070626944089689389357799608996659740360958980978230556744040721323422402071675283453683441051161619201403391370849245689499362862305953161786362905029582412766206094157570489935113749143593692100784372966800127709818622163625549602634831399370159109308862334233087893196959956059516924866098093066294885009011924907498974386533577370135265930760582762640524072221543870267867949627983649274219638341864774868453083210110867131378455285277072243709741572159395194450198391768074609567142111182243850582119668593953694184563987294506989937220831519175289585129044351768366335595150063450602647057762123296513918272458350268666215608517216633953297275748319519970076816351301691028682477950894675939929031634311927593471520651998567738323239526931656304432399441056657965628994052333902017500968715099006213877451320661737396633402125264848504651895437418633154315096714790047419492019497327808148147118968805558929073862134210611707867872924679469998810150185320869459909719646548846581263063749040244995703203721444900648743715491935650459742720707810222762654115804899179413477929874934876276687128090712045757000531330014958597366170811884646312888043928802107615084687188850572173808407736436307510934094221056909767789210280932344611829493700729029583308540394961190071157299813169569205753343708292767064629390471869860647389473853003467844644985576357295628504188148035048272352798896602931837703791605558628603454340800738663876706698259162628993222023486785696521897284659902844112917845455839944218261218636459149197364251046358384859104119562108174331826100803837040659013446258438253429678825543890288485123253941945403233136174942520756375360150626823380497079144517410761637756183959792938527909616381095559554690929858870444724565991743539723419106351888970258863842470531331171133855965207987835281973991594036955379818309718218442841353139680951862049831557392577996551440524061351083496682176196234082446155656046197415536680115360729368688411705212453823933483338586229253456918901845995588386692389603496658210721027764724752037748902540003712134093441239110670603509601463205485674583011767296516625894742266838492968242078012539548661261094317685933047669192255869313877038613435459435710757310674237082470579241003610255501163322810507923084411035009148588801027040339475078633725989741861392954867260773731937357409815394440327752661793105832119466269459869838915759249806451795064750071058603956137150191451834821794021411965106740107067295840261785520645680899836713859272431459973521252746992970509749438822319914598149534408273401427187111137674755375724774906932575784054316078277773137576400236128635763637212657352210778933428543682603532717831833179006849338864699607560917462278386229922048629047228697797952420743818305792875060044534175218295928670680294726018524391811544704710567459589760343175628765238334344219427559881861058858237064055800343410678833329653719217616449509862938558730770935522641885147642160639647666397375378321048065126180923339634662969998354678572307013102558119259724933047007503881734661571994786559851233045672088019542156091709120014815229569917264758789391408129414332593847909228594033886304450605044638001820441806122625189227429392188819088828979738206780475482066251489746087638946444164255549923214103296956677481679192207558635944910772253017581781944062256827976517273473989544717768435442298263920253157430203096194092367785697891503353079842448719790001960842544202277098793028298141435774873998991734717671286626173976132645580974728356020488268178075070084331585954576675646313698561826267047918076653267477647671991681116854591770926227104088433969676163917970368884342751507296433082235792256423309677483720604981400699656673296294212559131909759688712273873147925191496917474674546178761606595642180904436559933315548755557699112410958058148522959033283337172506501883017999891462824617158913391351560532921059611865714590694002656540977822581830336732665300587148566975806668344026149512216931113690759780984779267027530642082476936406404316195440863941201672477866452104398567978093000593048522423318962989047153355117927765241058874236827099739484528439771266917409961657044468414386727170829621507291036406205176740467539844522580809049189833705589154596422631987533136313484491896130222428423482415073879093800032822324084153671781203576603375581130467469443188188363584655263716335537507423996733797462599825878408096511178859467793861013780612260509964827156621628618470440804064211241845109782842985802694051614477402350952142813289805699627931339521585004540006299289585954114018239524653458318421765845423086368529641133627957153674737980359107186411178076440560012480279767370946843366695171909200948207460090872138495111526233869407867215413645072999054538726800490529650663402032112702844398273921695246087345931678374071812886903200571298666405275737084555054192637794743864211774887988578958524556161528174561762650405958098362018989374060910099786755938994695337525921970044649004578313123084662765546458361081487589005322737376489568901933987725101719134736695651128160754935865572836626231183214564933193808894563233961789038164038449544073192761597023456357705797621758897736303536226827978530466888419553356864298344740991907445436361131511608873865090434692830367902992081095289677520285453797493334908749225014348042625479367722927568563915266994652624709643441381546769532002702096589105855654916536982236722557540205494956089200886750350572770021496167541094795974332870174205480342446416066234583236737852649404299670525304972924467550050306171339499834484096370811848372854494863163395039578880147965777927768086581018253733560800857245791373675692710269264246993191885532384282245637996974153282448132387265721757398831299294386616362023989972330889570717534721763692265073665572436409228227481254493327874611436317069943214252592624504558856940235870139301475642635213429521218353183185026267484905816174397571849939964141725880544745131926946977815952764996377082641051334754509619395522797266362734777702095151012494584959328535070311300325815043873746209019378349726379479892306049801504021873592122386762615748330538446585733632178218838233358337472894633853716094119198981687800951026786730539801968134517883594136030627552625739169894388148591724545740356697071073116019909747028138001821895173912779001540585500900426092412418013066493249173060293256944007441774620642601916192495846875140848810762033644089327668863486932242264372364522596436132522009415725724060860177087940974651654036209686078378999964963327124580475526085867564247200643111387099522865759473993355503435681584347015621736753418815832134700569299369484215864137323945650469907932149987727467289767865974115427284485216373435887405184974545718668456829857241490678164747009384925677806913764159171980135970163338924074622715553567731500223241586998995371996803968616998648995374127941027924030173186528399316938153493868388530727434811501348674873702880254681388091324740053825499610152731347308719784886925135475064013132764052669491996201183971577582791152617124602189513074302333830332476406920798579366445736871944488338200939361272936505983432233515637991994046627528745351880741910650987319367305995101581363075650841361574748193017386205190871919000925301859127697605806617691376520600627064638850388434892583483319659017490493183978399917094966559832576311591434408347268194153278569435291335673120207289296214962104782020283305133235423321914619132862494729926206161112843947415001587484851771645863485264313394309949547133564229808523972325678037546144658552412245249947210426839567247258065264814890142392104654221017198617217472804863816430069001116096536499025583892640004239400779525059644982044285689010420931653739021609073488653125965106089046203510118779177181650838704870847563766670934675807978564259690684595179159747838642093918889492420193839065773748829328967672378402031154361973133447923540270503710086152590548540924220270252433943735353171910937143709005487898967780193690530429375940609844621237475527436148840892114282106153591595808791008214820289610370230576119106090582868011706091864050713056096011398543534368899778984395120714643746626595979835784316902274966788659358677309691946196535018944751136641561426701595651455742459309485709061901885630737636840412649282413545871377741983796861773472631404437740218898793561398388068285225913284643588494541145707194028254847879667233990861493432058481478411826600621481629827667510757842573765933049799480579856240366441947664901090672361532891550174902038735171823038501116354753897039891649697681200616795646107442545022653734484242522217141785263804402601142941172709773610387658154141317528648952423230190310364590496035510671343205036330795837304243770524923691629896137732055854802038780522466900264093717940120232990240991360951071027624618941945926784698436159108211337597157747319077864577143293690460220824570117031443822946133289697815600239297223143208242362135615218835168398418422142673521138685379605398781769926906960525215189170956698793665237472967187808695222485406692913911223339206536954123193641486746665831589195849133208125855646979207819402175918092096916165442660732831512809180970442154836051573460376400359472772490448537741301534964622986743789891046034358447800241314698665253005695504346286954784235549839130365481452595223365631945137305242148652522628863530477029380002301406825809825510311182516730719862035306556092592500685182422213126030465321444086903251405845873556422257619400979502796042161617709471476573373376014468200087001652412695051751140669015262665971622315756080392320785174684099186808400300088338738904621316308212089343331739297841577789873424051766783634494707039293404106614100752774919579139226432333254015715759491371613400532084743321155805138243492231818052576316033225821335685091004526258013355278570999194499200260938205982497231957227366790505096211187898404649750208725768848625557068585864686574496855786499749872875322353544598317787336241128303042570331486619585132631404748615191806748299564181882741876963844477150840806637449301369148250508542547135217653280648093705447542783780765071897165328546655229077424657130571874152160591569584461095563682074390242341960886733581181068507717411355902634607989975888297844321866924656951436082534886062039586465898225113097801376030883341823032955479274427405342168172736886510576350019118161277124296321928322067589917528148558506498953903256774881049680967706405846641911363540432242716821926458454861751401486877594270347313098117582262161031988072155559571851441348047099759530979861039525520326412420209539234208383554544644538795143427135473868570243423676048588536672501224018994211438201452109452076515072519018464566529826162821255009301078388334061167204788789625449237842368086236748089620503650893184150143019655871819728084133120562458877426077056680875718744339818933863701284220297107869509081883076896035318875131924319499063877173529038404007688189492814144368168111948594119309138553547362021499816785457376133883399867966142063646085327357548247330886227949096837824801175803863669603316460535809213298511361035343966638410375641966765687843595403729897097639011156480857624378288727470043200507552988205695327220993998050404746689326021325720422869830347986155601181571376377525918535381208739060730940093933450593724062969203034433077825329253803862172051928089326342032768289388515865996707206930946601726292640532300240760947186530448070942401080821989621809911132351818677118662465526486141423216565302421784705020540755696486020404933612473488937700859779195735675949077187545717923269910250320977251020472234103888949887401822748246210168428804621859469659309730490142290185160591042530014127092976503745275511600183211599081512887822880975886711737161803583842167715634548037900646576260171827065098075759002746316843152545531302894777245799784784034638508625249404430085651031201839320232587337036533727970962238201808104268491549706360725704001216440811387145134212930822893914786645569928460786809308140062093808972495318554737064226480836923486193341777865424955147428583915528061920947322422664698702909277075738850968932782340931742050205276698397166638581786408556730541485239547872680745303236481122281211649888532683945247925242557542605647157043227764014744562064319297504321193053981466222185618545348093178834221961317915676563369642084751453816318078636863213797234193027970292030021894962664818743183638638987948712722558301649893131305753073019030839126183400381053156601888486669063333048620899139777630013891163279464651980943068186876910447075932929177725998411844711881044884523391454232873358578149101828492668460933443496482246947457952412685380038733539601948819578679713438263312861446671652180813472128644821861758114196920105269934493599037462419557165956893844044656378716708263425790985352129441497728386294408283221462561491713159741574345578480280333500649457978236071954867058330156435497904757759155854887370173851766464651138838236898650971943697345114201282723171756253258787255493540216592084159610184952359303558229443977359598349042089988802220292557037023730416347295652347873510094338594407796500087975918557521006715860428238867909441633085888073017537191815154010372283541601896173341449267965554975053834928338556925404977776113310758486171411213313426389236542901396973931171163985558505381291111954589160132688959459271692182798803142043483834984781877231745560015666974933565910608398129460157715718640053402362227277933478731935228518449718547475154599913164735318758055983553263769495858186754945403740240937769093017463317759738843112476450454974401722946130234660272320647413190587711584751054513916405733593338301737758437932478120035031207990059131514768738245844135897833196991805695792771010186265169443689720341347463453344511650853498442649294697860831103494792080842394874022827040306873215135120516310702789835511906553424341118144073672283216842409650777588455706823009784715794472866523231205827700733548732537404282847013702695446931744403619310546263383826033305377960958001363442138237701692331019447874238975241633162830755814483350421330761537243995594606312861481722344356110121091206500837280385555580015900760594430306464751671508781412847663035887482296221416484589496308075917167824719029763785166384110023966526360467270535620513965985704571171154631443424418605223148306394567904115274035306914481924236667327308707194630804867063105681452779049944729227984188246059852712124285798456622379752704021646408682152286086653913060532272512416062813567651996303427832684240546341809338103860798755794677188239043599016007577281222638497822544167461605445478535357204918484019780863263803336964816835638168617685317133231388835794017965592883239292929284701497093956445427053714677575786303343202323125547746000145006138079695205600726856009829044807483282694867985128386120533551626863442141408673961860721132412202671298858118592680575194992613745421309831001712998156544667742640515173457026435348650303890795493415133537551962911735262334072614259064904930433960182968880677321968329996451503285612435511095391917263850981454164773020785024553744557362290552627289365684872346242948110892059581128488355369984118535043813772887981305465154734432731997616276358219877459413851164976873493502764500838964134421893006641141175631819906122906373059824854355837847575652568671332258043242337443365191432050083614323570617221126946650269229775727697895259750267402621138848412338660691165823679169116738107039113304395431524295781353725878916533962131162357248680438877816851760032827802628630580134537560075179515163650810816455323571686227631692911050552547570364977884796239689225387920846152418084131161951145850150410799820510184130192105137717195630027658510154645495116309097628593283934529293326741178215881537045344266647971405019235998868341506038297978356280716218830630683355540635591842164257426891601191133687299758032221715637862542323250649978080534213158543500380778725604050071590650706113365479200542926504939222304194960861591603803973029240990868670618116755977689249365246410770116670032228142618253036594809505279030937627183559182628173880189843117231394204233202431236586014028208275591292946024429105535846075221958595663304624289312143371679726217902540284955091203695143657613412941173993738377916054014486995598410701275410614260308043139529959367130287468698007959611273744109350150091976874460362400649034147529203536380946348616754698052919072931112529550443531576223546216959407957452633613534799340595579575298676709279575352308653055533924165253554938151961251684824807361738114289538955094090670608487269644721271915073539232257575884861718484292158375455707253796496822758464302688370096186479689287678884203282143883055478936391419116803440173843265986235144621923879655343822856439396491623674065333211832115896500776788565350279938212065584310498432438444446672760556358439276242066198060037780866311507333126037187680145165849950611928276019990803461858694055976664470974803859341212634785620043419378101472262890775574624689699100968326561477125357612433458205465824863028877737270989827335778375901051141483276515004050834204663679736812295822597851129863263352464071216426243288835316245994904312030628242361986004790678017081123064685339784407868803978056853885668424072038606963893671426027944747206554276568500289752733131749848263183702337117401362361869028034483521859461546600697465957286878369577013182306618855740071553673983878294362056091056452873758734407303575753655635119657599348919544281162664647189475272002315294140350743581954795823822165511998774911731693830540489945875784637059357903750900673401468236773299160997528758535584702286487298698295609517893573100919211977262011545919740689028848725990608818395486162721526843734860481636166394198582989877057594827939150860249890766608831011103022993589511482547123469689319523520953945008179139304924690270373069238892040257929268311289730918361802848956669965016449886743295677519739240899550351247288155951470289929086382245042108390038721415371659671004348758567543442404055543797715380476498037946844310788573828608846931695690673215697023712396264520451956772075519629643426779418837236473896323414028360238710271847739673426798799211788547290427502614080504860135595850539662486937326315834482770225631704828770829477171297561545288417364390420271833067852951247619411420991340432762313236700715274830386062869402897431426592251235714604232413373080284518557239310517151948964828666175924661680700330170332293517096160925910998396548237905218358130565641418585846130282922527495973191213962299342102498737256230620890407098726126640690445205966646502910448994293885643664645734233581677152388664144067711068040439225554961704968963077437900770919681141687332337638612486154784250533449346824247731329322957618640897107020250441689248056388437458954920854063791356415002281192334295486596559424770763696441609581062039357685268057532493521932456298907362114454630271592516735466316084848858440196081733545122820259036337823791444727887573751077210479271115376024577582893049528855443677064803471687617462770235977827547549836480015069061925350996281038994313749323506947631085570482524681811146039090002775962509705037859487903780713340969580399736555093295269578308662525830628314422914281552763289881110307303069763744100628913399340091568450044762373856621674669768498231948306527015740319325094390680024837745525324866913766154760880998720110405536656873559869288705976647389507605094756783147433410837269123860186616478191835129775086441817964801375841406026954070036819822562812834997880541397808582659025497211324165234599092552136752214780551646945752256594906839877733326767332470359532886173444390482124779910716248761130261109438700955954650466192876110933198808720233085006751520179919573853505804191284930834024623634417654731125160268852388519053399662886882076440667204373398514940913697700209469770495525835105303367440937178288150494894964429760471393274328117847674334892926950511833816481119161460419182809023745946841772459168282994624122151565878399696079882068804180587704935666063238008034818254997262842005953300838545767107311227680078542020346784394914817043193170891473388615372926990987677872413845796399270164336738671616628902331966730443686831407884854167124582309690832515338494287031444824061358609185015289388672841881455564472304452678595247710628178277886973088434980430372590230256878380440123133042497500898813189579991666141967065571043249508424476887735739305151167686844443456466393288352902663296930236913282398850248862463432092133849162075528384134594055423366079021663010814367577257606358878149376737487018781348846771236136830471271246388472845158554149755964209858544559510666391955740095528351099637545328151465610274639129087021961741546494255956186837693443699882267399302002827689547246758058399331109580041412969630146323488292942589300408767848232070677278605095493557065480251129357017366577102266396000297637597968148883136723567814292853453924557148012544413880821782691209112612519989534166012127980776113800705421411585727368793679005768456917620569373469160629040054519387766854383993494335027953124289396280022271815286028211821803268111751530260503289859680551356103075003908550102906467075593019084662610842500706835563159277624486911901270375385763242750278881217066283254521074645498578996951173471856222186052170454984957684744739873766053642214942915794699883281826330700919482101858373764113710541971374263621422318633027228103812247970738802892184064434161297823112757393469737565059138381425609005621797315815094885357284414245454634444118541663293050542106158971399140291001832830793714540005925214012949475799284793041103094716991882484406481075145011380654604602227450424252948690911404713645001356866381372829358962516060722586108260104756605384655839452772964449936662036687031616063497947621274120458421951212988833545584760987403476069714344747932639199128547067448941274035734857682835507841668934074304311271722919608571499019914704932206933222427914381831704103003864188282679434954950603044786802179613936339052318697442998644347039631104316929313255221297019153088550179355238165092460205709366704119652686276202090652356445205824434785470951156120063114550291864935384382886039390534970035665798749424920411718432137891724625529996034230189970889873287052856982904896460890596048311969533388578777356012392234774025252613445621499132980782645145215411481408331872974683857502587742564692806236178527783688324561505005064977661626693601198091433941928999786601585608625144762341847453664470447216039676364063991035606789876618722617367918736283601562302586909679326567342688356640509368574211158039592784189251139222062488275388448388900752261567324524044400959243972571584000069833893832584926919733790326549542760707841497666019795729615352272783123857218789564780778371014867885882388005864865412248383011903506250434825850035567208257329540702991302796395340385452548238075678596522397084253655502325433491008882071481917314409490841233615096274215256221928354903840355940272474047897540252469881962454057613038834680894203654345447428596260454406127178633807690966933187640039962573754279714402694842656764740277811333550709610688290439152462906153069408144254814734938351840463503065313716000540000157261285729475538480483326085932350722952346231731576231908591371422835818448467327598675891975134320675763980635667531763320890854152423069039609420140661565099486675710491392639774625516645828579366417114800780482567844180317945483179467687693385292440250719838098005069796590989943576879372519765697269149014546807107439359809212828109838660310238558284275644903627554258288110282389172046587717712672446271715532008752105952948504498489886973286541066680784950040190989638058086870480509231057368990642740615110773448087029177328517829532997274051980717070592200460600532233328286888816345262437706276765347316755621494395181153616337904084828345960654642703163899760649518043678343704804628923304765858166109306901525985687583583615771934542068457092065462750851963881540088787495277479453135559424369523873867376779940782491023629904852107037834571236434656215892161308772001736902604321676093934263103575892370810974507292517165947203492866159569427456131367875361681430864094357902650441184039048244895747388201126340738059223311466328668346106880700651401695363538006303751303394427701925462667917238526956878177557176115998674672804401591541293667639427621829621512834537770823910034764059289085773651661123341089987497299967142735297725722065068907289436602981893346922158413383460736711708466169108794964579625030450877738079125070622289722632953760373276629958570805456619907391356187337846926484824241295537817692047409597674433833837041043298945259251749705595108224269300139562241696211666890837875711782294248460978159314568349133638638553664078967452151390367905649344346132065072059050993863952349221846680609119903412943677813348230019833025047736298834162052250281831147562318758391517073036162981584756323411317915354887955333979336536030084892782073567001871112653906668576596976384937284717312634733312798134075153348319727897130603163347576013136498463991673386250738998971174013456522658150854727297508730383102949602063435152292752635862610471455843367023399464792296263208167326723067642424251914680497358189029213380494192738468684823809118345700901786914499767622296696980044410911395971147942685748776106279614735059259439715172145813514095885024126206427240297098355467926072029882578168274464045601317496971400662020065975868696952063413143551737528045607675485640581952123995651005574614792331147928943127059882409679651052974704797467985412295353524735453319522423199275130996249885900158024094970345668909020252108009919336904923634066031167696391066229552242700447293038318180484648877814582028395273279981141612990891472793750984972694117707883537805555665013100043987108674784606243578871015835804569777242146870874795160978871326783278308708951334950765634608761744871656950473820897342253823298605335574593584211517188894994984679427700414683483236441179031825627097921486930389598653529419635377982236260623272064932330721177932508793840492597784976629554928262809989946508320203291140868127608091009040660131758933048660739371368932282561307977307861988616589374565589754164858348204529027284216608714148665719486806213974876592342196608499725346994667003108513704012134939021887273359495185125178629730344480878270053461865928607518991690894928073070338924636068368128804788369203492084027215482688304404876329488011278020199918582795544895401651219684831896117743103234068291497439215288886384618298238938840678618097026849350820895517634409178688647978641554175179673563567275545211218515151355564248869179591626055512885843745895518789420087505410217697344318793872715721801011737376446144770184898647041604840091233629735389769082278312708347388555515871642014981693547544007318720786365377701601075184700373906876290105583766782531748970871864165722861803615654928369578551106868672713216758655277445003493396846042403438586473475491123880834056818115656972755154125988796634766875907452450529730318944101482182709664673843620495985615417110024780619132573005381407022853007122009097679793471294999561524858644302044053255207455225226717964156331196532762414085285101344510444167145798217667288100702154047230229199377276283329613577775752722586782820900702921763539683283115931625518587327722849103341257802064084276361289215618577478158777191791162257177598666629912685677970011393529223039874402492080122020991589848369307199884950623796172338509430264627765293344017526219384227666718326199492769269257219667901110115333984117347281116505775456156974076210118490868445065110935768536835994777778797915256720386881736196669435956682753796759169029782209740524159606292793181290949883977194334780063433295752631658297424545651509876817494583891685454325931881911933690597674065716671798071528518008822894482618555989607156250251860712207432047286852183832963248019510213317207243185319102321964314863918333623289645625627138803646663564005356400733615955738377912763107057613180728800143301666495754034611826505236924224228881692132997645171642382919032363332626198639562970392093613728449962158402899476994767273348143595978192441476267044162501388012375861769886282746251654072719432708770023508161086124307455111703446193025868959616786589920860576875314588917580838924928606449441114324130823630096990194118258425607947047961291125080894585037923148503508994967291552895399587025128415907478372232638737933939896803540205853653108125058659645179595325156636205170487081841448853029237195807847479084604229184339171065543233498191239291546696916779502998424816721830805607183173731747111007136293835456210417894723837119745677827818463576273244472909499842643043179715561780774435919068175429136901984848341918440830079085144992377857492996002960740543073699222158327482394096503840027697467704448499957030154658870697255885854722894817089621012074610825924842566619282627062377079619996730277843202409634096500589419826468264549835670810508042506775818559435376118524653411260259815596557389673314968027288816581239971820221442527408650400557881374110007125948478961785343982380283827449662324823386430664166118350182572931520475992190927635397827054422654738608030911072253370234769055365653359872410629835029593523045399275968331626348926129510835934419917688232817775684960602575780965602165019126217083920957642772849478281559232096046439869619912516992727375744164700470594184750633284393956855843766484112245776219204485614241894925640935365354224140956152317470037280777357013674169215383529929412472540928271442078615387917210395049687657329487223487111691426604168754898227141557337575126686357838640218214012873712596022501793555217927387588021736444214021193240008855491591423582983451525817684655172689156884148910712425220974065227619169754919981029843155212364253368062776711228161917152024980970885603435600012171469097375711186860352987947574839372597516101879182165325917094865319605513396085434250358912637336172790746384177986615721640838165832328231890265661345251312701095478372792767409679209249112552150470495976833835752152653499042671474905382730479150218369812382227862069694437562537851153247517858013929356883608279664465367509299093377532394483491457475501905377914474699500731035975552228365230892164405262914409745451822527908122618378390630966152902634466371925147029581448003413510774931432892761476695385715099250527353044366158844563866803222107571235753102171599966550741346960186539594286474413258963007168388396328454752407911607161452090959719860551558449041801974779130312472053817611965210926272926092922562129504375939631598169407119265575466693530872046915013545763896046969419330740749070119696319200005542204806200539532985354028520182187154455199571819216736316537479471347570998778114248855278280451303357037499952069808765559469866484965598564727672345481472296716101504879119432310411650122749444847217398283292804766267282150518023217792651602993907289839909140740578104770572075759643563129838294563668264701678413525468830130338315012418788497267918989426914029463034298730411745346985739022128793327176306403925898906836875965722397726228306882645026839500467534046690414930951743529199798148207744100277487064436312522543506604666823081664519397475165613585724305569500726144937107961849530141065502672384033907500515444301418719974081370081917852909697931671949176485968353177836844010678022327554995465813929433528498098894101142245888681121316786840666021323298723319199801408352666754056974137120075766689282592878068224695189361818241732671583420658132496807049043171394908845645204478955430843360153135827023082788617828057472780176428725426549708287546776892819247100653501595850302182754015819831831431473527025348510054610950565657383443906882974969572468991601067177746072570301722786588812475083184410165113273987032445297820906915198725426479227918768818463034015172800237590994888166595833261060013879461791394090524324927793660644696757531124261339543986966473696844766849607329364431945046369637607895581198939469456487683108749048501431358934467423608476308088645776579585023461812366606098237757261066501788031463737191189133634259450364947851914103850269097980506220928569930870607010129451284381834897223649405462109590473588048797776997463432204284245340804812109781839219760960189383597106740605121745719179283159387680829543106325286065371209588186176869664310693069745756557399875400356255187635083179625783595202504072899422103389392591313347643229381716384585254249376906189929299854267255685214793956932679563026666619775875057282750824121568977419612149468244853713898756316012148912931047240855077380998706572488737561929116772877818599091706727933229416515100197611997052352818011911134897403763237285466035710680991231515076167257590724054634708406658409380121725904166394749273097679440511959367241911147343345922658789611012944503218161035812513312075207518734438626769239042825963478394675868736678802825710594614511277577952484246361623528779280681785194068646156768073512590145060226934194027621876839996711531997486807450324839188293155024941086221917483440389185008188361432065551279020940250802629346361094733918784067859685515727095248636588931972564108965069560665191419362888751174421638761573541199611663465127256850793823461930420956926572248830001169246347939806235539183767126254072002760826047094911861554517868028598278462089066041491633495006428596382507539951858691480685112338252708405928102780044429061865880035682529276713535955370218872106241800159249107661138116537938003302555881445494379830509781794056003948037742392588176807696099157960480298349884248619539579233282125626822620306563045441523777360241706794621662812336447573409625546265832282020621076534617236417756341158179447824468703109912119850603795895676326116708167008925063523397236577139248247612727929473672485420516844660796507550165048342540703266497406175692508884500341767489880014948007540488370516882674401915263916277278791942921992027910857404033956680461310960213292898710209718311253517628077667620024864152618349195091555109043026001654938535645638418271297772444896465007789921858771416308021257213094877973769796996489805392964393975796060842242660556894669208586505737921543064599777340354621128172567285329435961800653519836297134261007895291056157525311748148310422635260426440947476674056465101786309286359523945278890091230851474786521701581569028726175607229217647448505462567802189605291883626493243720207018945000661505712664951696701405081045921301394054977344634045666564741241467818643461925274782748309530500892978731559055038805660841883296046284476578343224488836938027185481051470838255412403886362078097478040112574299787361114594212340230930605491685329240810285540531941440961414813339602730650570733609623402381973493923188370289268671049875915923623738834686732554911257817412954338250731083099011900663515083894965528970496550616473851463829001034717256800962662006602580225698270096308256196081489744297146437822004735674767403445929692838532426022696211671562154734344467060152280384012252415924128129972875317572525504481769395304504844370575702922774123511810065540223576055339730607863310391374182738193972954190215470451214094778523335717730322079706837472680823651899033050277341324808407543633139670467140806828434423805548034002610123460459379035231019778070349297636940286090043032182915329032652920772078030182028156789422323755539414368249149250832638031549892067946359862087064120168287878056838813412558473882446267908293814669329961636216284909777459942911214169629189816246833404046977471418640601078533555037962545878418335119429337069813364464865295583644190045769164099636193044489790018517301431168241531934997016344799899631578389027984676449868221026139082347920206848649992757580189513689605991299024030901876423952549865526881474326961033662865871343936318553841607601559097711372071057157132115674077619696055304532181996779808273000296023923812125055252072816766744027968462177124941723505971325435763743284118993272919661648301406064570811723231414924724884797928021479185915197949026589680493797751251983517958522118661559518099114321466622113618700155134087941329450896415909636397444396850334818855830736405986302329734365900020846808133730801293638637835894209849002153640127441498081458423279983590911766872201477183543491086056352621978891305770217319642780326207173397500104469174255789294600700657479183151876625219022935833691262868373789586841836381015464327872799921546916246719378744032817544994384501694989825125494273620896146081092710859633815873670407746207712285977878664879325907251851996805718745094410261556075628586250667383263708587031596611218828134334081887731410983110541053573677005378721472172288462601030899149014519308057709491105450969817940901226328631518797006040817832583081320536179308132269440165392170993921418475111744583601603019294655228095037183996265344081108684253908443884579703286984920919212926179738987759011818802464211839875570679542562255822381789675816941707359700909077022853826845862106993818892073917380205665227090559291085782029760446738945847526314254828301600515808816854942229376317362877650982939686387228553812518247693759204348722024244832738216188978084470987343082201569965843653119291604770254671229031700131308201100333796028401438661672299570193444766960097046936632009579522299941037777911022244903959625026220133884124201668024442528528305805447140104248985019558451297811535324414822457190385234864900527835736942661475891661383268297003472898978303665437469533089201730392278544922984376064692697436515062245936806620757182346948963720063598621240350596814790307499670611129049663303246730471955612958187441341875232418841339252787101889990191588949299059701842062445901213028811357574005791767950394803618865656919783946114051110036780901215573004268739248877708782581317133526357267861155836279773123102018662433026822439472083986316070384870805359586641673581972758294878931095932096687425968438890488459310523595922021650847366234966493930919327942091005025463152163592633757568238358609811954670700613692034186830654145581619753268626100243623602471447056747315306605291073371491879763156904880543253351617543739598172976601645213134030637621849505180029998929834111942526872343327905745155039873053759553932764670380887742833216010219361666930028191471593406836244610204446101390118284426942853064131977539532614309895587396424048104542960532130593969452267777207162013521774983167983729431865374432032122763028496437032058072157111178551591945727565054101686024079151899099729023329242420829030104498493636049499791721190199364351016452980746889796288510302585518193179115847158531509063930796388406910376959232577790375212546283137396294481355845275146437285231171086305140385108238575850430773540980498942881012772044703074624821897264738593860884003598766535995456125769936771577169887350011604988127628535584965909487925679758904588755833982149765240665187156259270219140419005893856604895449477372352173260634560309556760182576665494311890705314121752026808174496491488906853429308953862410529535896820000896781189575005992651280665454320474304846603821758058538132534315725404382953991980777994037724459323584781805794063724002856599071954307612498273295410301163105355256314060955140174198554898846564654299291314566881708598941760458513647539882905685394520390252587046386168815612324685396540303836149029254248770195001284577682328299595995315048649187993621578779411479985373011841431830907055520215008188622395358904604838558781471252263549009698357306323845127923445897304803632648387461846371576942072481095147691372839746157028031395791732749387852754873543643066458582804770072643419094802383970652573546023267769893963437746026945800039547336204625322050017185448337623267761173722160540180317723160017280958657968053670309686057063281519823329618393856628911690940352265539856079074060707802579782073040123887115165660577098715383430257145595078553430210141937556096860362532120577785781978636248707312022678981253780563715736322044680043944013186018331719641065796331195419615251920286305798989866587899967331002794231232215257194886275319300902097254386232436141753022558056395220788317638392484835772979796429118013115489852888029385649240931382019574519625849974250567888685074051166300934556350339734325241152018740967426869151323908370362738329121102848806178939185152156076222963942306901548430828339566211359476976166228913042320528873089715919540970899140259823589825417351299337053004172638178876891250147016641595023539558580983502057455727150484850642740756368172408806394384253031894142829239181166861020252401001532982814722648510343527174742650637550140538568410067833628315345042465665461233505802627237907903023642728780521461506857725291817129874178283588420302200105223018788147590334527593704836303877095590630154442476567831044352153428862343775246031371016916863747969725319564039280516847043413966933358780166908991550158178110332207379811169530185576030612440408736567030543771689044906537657558421210936580139254753286441464690472434690582060789141848979763456749118094911980790286512052825093365672733434467231601625337565304300079461523237033908308627120818587967253339365912538319341938858122529704034640044403128612492766482671356169540538496290837850203868427653897779683731299120227272158854581657801536946053767367161229260435211912353819623359002828269926360664876199298633179212021756921743449005314674222834951134042022646354954079069556080117496486673046032894772625820864587804635698743174781203795920455990741458609757468551712844540046046695800989741157202353589872396147805572149569441049822597839447680654436880853599204843044111791942921845808461797253083743371263838356003957993649602521272132010622662196198082885609013700531911574577756797440098608295142629420189230119565103127394530065553967323618896032302819342654795004185975033254549053211714096125825436564254014369671004382864736255516801392057761201729499667294826242633805786276138449870243578049910837151582171182718494382586292016761000660116073221122001814089266263639811364747837283697942882952028040619225592975962708493899952796049466341966828289357525788265434771041198740310913700085112377377614504742787762350402396311858220828294292274953080424068729575567682862213135467406687375407321141753826578839890313035571904716276379528221534868681103783453832766192736523067186589737553594541969047930751753425222594253787833076060316806890571520628787397679516651862205708387354914102231487346486359052990018002160196216597495393357646961427242073370832662912706814191158459919500655687419692591548651043024100487156504629633890872474234979584439578790164013317824455272453522558476099275652445411241031155207604462958047582294443537114806768334498129004471814502679054307355047995603567112818171756415057903743642667766472333985801209315024439227802144252283014370110111209998862291818145103508824968741694726740227414205534225301482752570108961818983359112499544641819082017480848933376108652729481725148601720299752421736557281785677807668781161067106286372108359436255773640325332071323371264390357851106020542596543259715995400685160406196087058868552710543110028624024319813374064455086469215943948090555474302729848202553235171974400434355001844744494149765813109947724355081948081012782664223284068123615954707396303666164907116405228285909283501741193140615770094814174665175404331401660592899949218560262517244224577924603378754182042442481317686764146262274146842215267909363223891849154062968960246823795475859280231058309578812877787887384963275043233406459263027084262939778276052925613000547429727845243736794438838082127226740572588969608328633455671701320148123500672336129154339303432378106288026560484450743502782001420560555047617447900322872262479699633738135669435102551582510413773215084816883344980830867879131024875136795506082140014847855836161342145125046504031670039342030752106148567471264665054100041260879907146052087852427155898754394142026771674315234420434389122776299728640563658768475215953107612466194435269130366991974237852331108941981196933523926038141983407695551251936325313864800677850868605712480195063064367930911452748795351055861150155667357284378063879135235740833144866940225982369997770679325530316878854673410058837409667588720418651751250105029232760924480631205289909399154526743786722751816559502074556184460239678745514317404580521597537580696602453514564976328144494194602219569361957934385200711549039861715409753404591590542452091978829037321321424676713447808053667639047613999700139052039842083288042817362325756348726568308491581914613369930520093560518663567984520199659834046583438653909429495688056721702368655084921951934160783221469627544005062611771680805785700693298291039686701410585719556763539666127807063250276763226311702868234215630464959549426675093825511645208007066244507052980587518306399573899809047960499114896938938233900009425950079956462889577925144912977192496855569188460386856826081189702149523938759963879788605347626929335666696370298425209844153185714846266295688870327502298827019763704119005254084923322173512948519465789871629577109062021964323418751057397465513437682301548463275439294654945128801311710650858581550710066079092904416722095252239769086683371978976000254140599924243779342746258712281076442067927959839470602752372583057680776543136302226334423868711462670712929834574578173252543258082984664352044361660629345657080455472750009117859903317957592022651005338847199786453425656642930928283997701516056404756096545182862941190255744151289901495815493287300352678854513309776459012949310736423901334325833996853706899143041888121923361102964864092625048797496901155934550347916905286869326127289442340793179333325238116770040685871563334827606348854672354882876550812229757468492995585457541022056316321328223083849783491715764394217464148999208489678492467183474488367397492394284315457105969866970117554318465773807010571375136830006027124595288621823810193154542236983964627153962839155065751210062116180598295504173501758508645443515727244585495171192415850306016127412498236373372294206263982861826484896707120248062103259285621932524483504348319102962681486228390106648821406796324815146992372908392674969027406651308510067976752666223773978866863711496607259053010816548810526001795042389552847466393117151274770055371954471542165560552092009618200226577238553798414122151346569437688000501698043764846191962365572519558708149198975132797015147499668272703222342643545419050042697802298128946103634898487512864763986650946050228279050534589437117104932416400642989813200076539495277374878942858229094035915467603618242323769565179683230479828757413545266161996002869402925389851811168174409168727784639035950347511922458919532834667168543792354241999878087941635376240139665061506517811265737974811010333938053201673422815025852462108860422928403068747802138987057518484216766311517701739688034238127318494076662549325776958359352121448353917214115263340400013042560342998045355095348233749516183067851029929294006265601378360120767198879156272981968532728668167415216478860546315560737830156480006303390952479415693270132842060044802446689505396428626046814887101457155270181228709854918746588669145188722791802835073062894593112080059114215734146065434498840121607086270153102429385102157641181486728588977900672999442164496249790170546242064419577339703685416353757019905367457965683865364570677173387302256439882298351458224572583340731798774191862005911483748029562328238198935002807383117363256605572417050850651511202502919495010306119215212884367592896158097728858067650831085906734020894764445661098266424436425866298354544653159395709785443838085919614949145489072963518648144600946478563043536372986374113427341755167756039348231241568133571322726966486620655859440271556240498352384068769707930245262406040101628077206381201539198934449558411859279519723047573187239418886786035232674054513051511819493848593899649754051222439129399284395728146446135113764648440519179094970630866774072196848055528506649779103245296212069399513915278318754318142197621992057707018662483793396064058807618062201546562944319001539938767662149507884046470009076844516704078733569856538554897552365962550292505805566306618786515773112129651627337608364726444239935673825322782391771900462868337472325288989862421439694186465745797407247489361145483849787943458986833002420174608120604768211429803728477274412298447807204321992373988128060104146565568695739581992258658657993571742481523448504424295249991460486204980596558977447804315349606482609600937070726185371096820706804416298542034917610775374580687083720750594018863692326577703076680818747233787835324351717072272547797718946875619418140727056128966036584879135292930855386589414980232879333733340020935696595564580027158009102804541981317796758116324143249690110121890875202747674295609875749471327882823769312192871163332512732194432856213153111995883073459070751119616761888983966250003736600723505212858696331707454618473104860194373612594902526032370377314658610983511717170906140024168446031551312858227525118345959291247776403450508612706261035030855128909219167041112944320527179789074468260756692750216649698573851563274086197580750848141058819078216490784213589832773295370275739889363695334173552023333174432823461897623556268710739452292953746672882120473399603067837269120674068241779029130208013585731483072181994537630894975009039145362244019279341586983734837593876062907611963316544184586669798275684938784274551879525164933155895563814184566505754668620137013861619698448621742958512571810169821464734173540763884833724672315821796106650994787919705067814320179323347674774642345649085638262000069845195566308208973857248658736852801071817954174395746863930787270338164175404676162698591024224201500792360798696899284936805882810710489385830197464625094897802417095047812901006850969446592723552594747656155770182830899300256664695313210143006489586097659552410484678518576983517019236431270985177693788713558162024556678439651578024992250959720362985916725469602749732884068983731582760347571857036452774160623660379510234539538572101760546795204019269059611106188180583063718102697476036761414968873868609850849841715813371523601819784505514959598536177878101019125479441664265272954670652409428383408993566555929471283845030652456498524560111216180442360889592965247344741414070913223704415167177186900379062601217694066845980191047206557368827693179784177073341430051247574069506301069868024558911305174899661987574987731656800157711379437908724165535283640506342460881070881926692399481637695560850706950952703653425479989346340166994332862903944248440064614919127397363700508335280419985499804283400565025274649727180548159761100634934514362860004497527376250970685705517627703078430465573118914532743944439790526915736442192792193203283424468173287041536360914626777727938620057598826924361958586291641101383749908643160450302819645227412591652808269993055935605068812680550240317507720271226383408562388273559312649882772044921716202940949241628391535460795414177231646650590459513657774408906949806297806473280326812248311707470069509249437329373746494041421231798397269819679947586357786804213007347585667229403648334163925217594465058613169317883755712384736489430750724199389123440369162016431604563000588706852371607272803588032585317288604389262788518442474899804233716428211189728508716847231359694035957189794480661806665350508710757621395522183099524998537241556804633060402210475102089906987501996566202433572669871643183816381486394694243344684491433173903798060993948710546664477277186216707940350046157779477247403328369476878027326125844429377567226779982698183713971715072303536749554757140759544222446605717225291416039751124033461961006599023582289055743460201864017229394983379129504295516772061362698446668888957334200916317413157675268778487014907208804563884639051786351388704505209225982184526721707767420377267435042992398663278186648654764745156041795515022379254376781054409260588964315146715278060951651013590073039815150181338221019031917896734899649164914833430186479871344205389612336551028776050602479363636157255932512897082809416452838325771693926825214817739721776468464284004296073543558816615986156828062666365447713865974362212385191764163010832152468499970450528377420200911601703533252629191987967728817275926254166613719396654164456819627642803831983111931191523974391207362252897939186637190529317694591774576422761485118604369587884784788248694773161978054534546751773610856693279208269244779441726695904912147978469312283116691073734901315538533335618363907983003481345902783384760837708448396774933031177922207318075066040570040696153615308557589875264692805040293488791274983540300746740365178772668271597624264480261700551993497036739273512718294712514008268786768288534158251769927857812097879407202848169054627439851673466150482871027217376624661394432564484100377805395671018856450251683169479153183087543827798771423440242906499792447767668490252659991158611594535297689131604894899352798470319115404159960156821426227491352782974304714421764264107582137849383692892616798977736864132545965851525295446500169206304734953423184388212649684250868166637058290701442369980020934020093579465505417645538275115905682417082267459247269591510277711464042369939161140193719347152890423464675802556016869759163033714689348920622595125839618500399552936191730359698999559004700727027646407673451394246983045637148897120101290855691867291410855440545119015182460637700257271436188325873343850025754070342166205363855520422039200824042504299036725214628197036768596155432966238934367987078259157017340428201549219209274614455325378543724650230119695120272564797435623313887490378640411178637678236868957572183960246883998700884436278895889276634542538925413264599491492942350190673098370463492052819996515530007656412577540199177671172178167171659296889652388501216900681452332343261647608976605030260053224624226756655837416432878439288436906154038135320389448799127652260361055718101309645165173440845150619336644258515371642327944315362467310192892237694974621759873793915188989879073471980569942199235752589412827195060469697054003537395981592998878855764969127079055603903281197182727461283420811043162563525391802300423729503981584127508130768654738453699349469866751468358531695609034050743812004484353280975930328103343731420597237409100862471687029966923668620646670326710710948673411543903068728609148386378432815491878666070914661346426409397978543038428602139653193340924990561458269177041073796990992543221027988872113697590835490407214312302571546907222004739824479192187020378455178681122238919126961399304585635589060257322649083963447913840156382743607412543382729856418746474277446427813808045087425856113583516703781423788792526470983643219557993099367799486228085023287756049148801690906455395573820628398640476914058447983542845659745511222845400556994381944900579963142509443263863559168853561320732569499841601380397447643691968688270000963884947679847402828685044724371938539811810542465131839461308862144452779263038011746551132681249038891031547770985427033406416145609796353220228122786539044686557176812554852705831469291836099923307632249857845057698665353623773802083837809778785577438217791586324650701861811358689307410887961891428156926546648976395648089154952393040397684989984016564322012286369176727476208542418405830612547526962185364124041802284745739970509288154149563428087578566045110779676759008215087943975898907876323819860924734718209545984505269870925653981464513060818877192605020574292400167498713360450135911827059764945003607691562398565380456612546378302359732440636386987581434483166994989079987690861790294528794332188160401255645171897221170420999497724876713187365017696644683134304813222850537460720511959412776772309268161287035446090238737554530986671449706888559220286657135289136386950384524113365401433408091543574345992988593587387512193708143083638084489985354894480063156464402965625264462507854379002433368585357443439816193420143341482762858460784131627509330745349783402949815440966030330165147271878635922765138286495449263648666072848159187232427103273588683666125464221668442251106403056134560434392824601526039345985999426545865841010157147859009005209115007174344486530531107473506572171152902161405174727767248088590953928256002603810624140878276263581904484288872901873731909652993899405461723137330746114317067602129901082792164165131987259227654040040008262151110373648820890227119605386689811446367201142408027304630113727359671909110527175899467419856600844382081290073149260162307323300519859617807444511961352068714600025455349663565139137034498925651647954326257962252879602275513259405236736197987153944804470075745838647676228777731207873818779158177738991823917961047352751349922249368660683720954922622535898219676662209334102443607254611902472387105895557194202201967225560252423423714564361359770744657188223787883150998666079040434707299584789019561573562161235202847088330759345777969072750889272893448973302772045122675593224014239183062171759155339925837671660002310473669520986443654926798582725701972170876615615243364494078618648736668034955736488099089888260073041018876830466731754727536925754985661602973118394071644769629159114023212547527520458161729425434367138692881809413778260798775467667240890400709797754660960399436462891214425008149637855974898882172978127217291860773405244651242780373610246507875637963138966282691754816422234487468154307997859798531827298143898773278548619670139819985814119725527869217880689654056148026425322641167146957951726057827300691283767388555245859391971889448635149774106638918104121810084287634838575668878341477713815986882203496297877145955783679048882098127457961880147539981156508173147994337914077888687723497383432114759227864775270157542602647656607286558459700346090999292033793318392823846928835737834259986903100625840657489029401833700193559983416803590976843019873236011813383062722624254858680764507485820618473028713062922115033575994353081678647480984241709147347861997146820685987086438390680075799790129640562944478349038405211110103202975972834327500302365909514767100297663297116346361060457427790979031315567659014269361634285536854522946427910360961668963816742634525336384321270136003886676882949185447680325647952238824600889568225157752417996722317355283189032751784864553607409988552422301047418509578251713212417607596922747320258461040961268687455911356980239755108387399073112775959390812623863082770021596693492614720510259218075889896830207483168860660056877730539662488367668522884777517966530386189397045126667784269282725552721292095470256612678193034272660458242781368407167602596580779646116958888876233583521907424945800418758975131553028300902285418006999443474647338096141724260872716476127552927453582939639059410124094586783020501476935891487484137429562641187300390725585074479624125287158239978993704695593280520112566519593668023175248933722791958178276505845279596140510132112622816102390444521803746637173618404480147576744584718150310984070966876410592583983716032476805842450918358143428218167865420140019988031144407532717013069712541605247748106827849231701376264414447840349689847934900996438932592618350371797893585244348544811455863553073504383604497275197191552078745959916053273644931269024598313745627234175707699443224172904497367898611989675934449374342732824160111261224851210601065464528634261836447200233901616229266952963690861669985904340442229094601649030183170756467960551000361132633386572792424610727232893772614821849100889252222120170091799490815815910289907108793784886762801107307711147905720938600138738514159677357823221088286413105787394911684824453413178948078991726134984990797834828466125788176854664929032957984746661318260530041318843017060337783325777102000365745291750227127311146800700135204935962586117085481898001462410847302179866111875245068785609103677590101679206612001808261097113977717795409697182106905401851030135416344068948142380208175351450587296170293042076048283481558221175018818115969518984214232089706607719682135250552674415158389990418146772358545263435437321290321891891960319018304307350520435179560151541126119378417241878532337006912807975677426455535947658578026639787684520869681337034495725507976129600907932148874435851587947956319216588729391603274849742082698046930113331102912587831026804168309908133917167474003228671944689649072050184097956543667385993326938563245082893581680225641714002568451325839270444517618686501313400422682318309344493961669483822729964763993996042370899841681432845074191098001857053061718852352831916860556719852639223576014245269542707669754964526285765885019319507291969471337313023311889564048375289878377120262838052488936373887581630871127346009207830992515261720877661199316308265428175701915073552612764249312512233083363564974258902647418105660848565368703436214650665987122903855159423768177480764870312413356147327762108888962815290167817982796269208323890015507719841833950697268113967439924343150098326874894771820831295539673664333813277962635458180692930980588301697891930519809016833856990887220415984274682557344981572432819700883843134874638908891517504542731648209161393789553146998306825623771398048690706561838745863027529057554419608144398900568672539598604968534712845467861524508275136010998133879409144835034944172678780665277485356468618608827722128842486673510227048777543626283730466166696689060930875298494774412811033816241577800895897801381258421115915332068932698675369041298560103389632728397728410997617046513812262758579175607786022139060110421191990189234155707232414948113137532831281126516492883399926918013596711551417482465426770275248100779336804003086742327166395079009255842770766886763493731067349801995978636566569909120285009529252209091773058133686291781448257040170078255233375675807782398545729875000858620921947681366069438416460797521000040364884854930904765452612873033188653893721072365816100081500699243685641192998209219411307411200974844237169970922389646104216186725344673807687802052597368141873915005114598902438810861446802276151587201944293278105772082608151830291653493426681381697219029781875469316722762447136410716758048032729286559349845721096750485118720967678898686563270343359489037192982353543475149249540353017415040351517584269081567026443754759430277446603606137434449971258404786235932956976698132167516217354623627875285922093043170139771630552508847159688255108718136404419851253876211722381515077784680516442125830748610693243886498048208012406929643866690176070844444038022641028383571892823585505893692695375957873610202068632219611922155666156659432844336715945563941875129587781053711425965748336418070608917156749368524750994486136171421234563237921270166195779268292003225344453048550107247103142410136218972697229187822708473702293254368046593119184075412590348579000358739958939804767774095150470119215206502746839024465953685402860147664570523916084903064071812916626769290021787987888138836237944429720414605920965523815832675089271094598893396448845313497103712964672019383165835392780048488353781165072819812909119322153451474221655715950794748117465777360170090434282865767587286940412367729751574012357197042053721261759906937712826711265229185670133682273927731874827917903610695075146128763123237462442125267903523803523810204629076431508898848376911280801583877126744947456280733491242117306148205033520099658004123319520165669456038955271389445113044649122955539098347348120560260794092315898075478132075453761269150624528874575954042998947201990569608755760157744974709546804417073421746241161187191938545162959994025937451181766356683498172664411922053310970050039075562089408786766742696381470071225807923088661559437839917072448886599035483432407796698415042786170003873314337017661453948283017307911765845925052408789188060272606016069155841212890921606081196415296780913910185876747821473185541638839285113394088558229888911262945268086228575340883316263493376686523294688591586318171273646042538744823331164593929204330960957896506495993419494060810617162145352093063720803447446198474420895285928426448073788442674495607811094038080134409443360384830909554798259317525958885705453280920718448880765070499755020403028232069335454160444695231863201989022995901572579721140247266186134820547772897344967614387596315484840601174513647800505844903031997086530461210642046746020839508538629796794978728254690797482004633189098406991843423659905743236614777997573888488372396549249400345299437286298039503136314720095788706875480699787891843604067114695111710878710695412922775951143983792360534458125524370964767030689850201698006622416744247169133241403675555787353714157752846720851371990056695282466760571931867787394265469625154979114935136719634318492815234924274899625405466900162074773286013407436667108107687122672947746941329515070113288365642699301827916956833674276309802766134340260019199549633434173889842958438935272364495782933612927539374032270090792844203008218594957764329984219091472621418095463911819278886680812752503987088920763722977878357378178177362759120889569755106213354398852464084726215620323905396209297293852972823482361253154645823701716291891709189104471588780076276171445792561815072879731727609840644152184167126876299533171118613086132786152387420853873631098660295366569781076380356559336937137329023061766428067508200572480793162416240789067831274794467534627493948678526211460115691422925042535967518904325948732735236515280900913325269612406551808636807052301928792211428872772612757015168314040327655454672994379134289478979392119318435545747809619675937186185597508466283389800157355990667403876707682356970952575331993610137907326274838122336662542172166212033093073371936771576387565272806154115900861214628083485034264166459074009431055040150384262256448183464932303091715605911614350690222701293487858097286795173251181383994934624407978360170981428349822589703808204321557298910674244703536866488741563221283244939836302491380014454054763380360067790007855130650571311384503149894339107484428343348062560022768643106101960666109311576312560403238910305930003597318664819584570965270094699319862842599089271063261629655324835820726844763447576342973720386096296040596339532877207266651102587010526754349686731750868550585821573610011318107395056603729666600832817194497836402018139665742289761674751993987248462915589325545863428483977237725177551904147190052954582396299356055116160621312905370703960584488979642959641580697052857958208111433592128002582357928999315075232224025929091250657733399701796183962069470744574284810875838425332733812646857513175827160233273526196392390366494028115392823137845516755321087841366164663900165323358620956978737842403406294979879243512620495621329022181805052100988686884905742708569923407959500252770400473324312756706318890588390207420361655433852937263857287946077008490731554671344717594346316399892120597899699499183320040509441168535299758523026539267166717289428444180613744917255953856257788320728125714343665035026715771679886851908863680734250233759407421996336106409342466076472376636785361466034366341965884828740983044427237695553760864395896067098682637850047042718195622383294226202433265323138505402045490280251183814814200683460365994254701328419705567530608334805475481367848507303999351069884201049132938051844989022707805320542525125900771895306289594730106083600162098447339898827995417849906178539393149998083892674769065862873846481224865311665499256833402613943614271825483893984900180830747083822744343205038572478633926178553767423992765075039359384846638579519636238581351977978498773448648498893898162828912030603056191663842096115522121011545710233303590911281151608110576346067750333752919486671539146137931530993569501960483880637403430310581109174668628525906399393721944697856083683174721094655995927747881028968990352710630118701058999005171866422601480948452452699927804295492402142429485051303798542257705408683957801740941181068103555518233923401119081997974442751075069555093774229830086888827387027475475283232174726599029507101557572500496065021626825961694796575748634457472977035743696358807072572306611944407518064131832968939406663698165662514507320239963886401378453359888462517805429114458168047370263271684446231747807698265716338495741073793676855442473402237714385773850134486278123271376738842378102940109606748665100967775877713360119336969994278014319627367772780421825556933153890118952136923417776606142161900804180241751510470603223634596933008698805877440643494150348289089985843805839041717137030660632603886457538541168576582827960626281125251989134413657527144596742638381621905280644717405998726029465081643731402680918121673285314436402925701708075630571070533446099327429218590645923086857730681925493473962629787040655980015105277640425187359413395702676466676984464942483820796530766620181205415160936362805574870108132485277546558446721121199441378867909256530967521379810094367740440316208237593900965028039978088329263718676261877125388948997638043457902985714855906847193206541708121002491370695971277292215690034937816006862027255285058272272103988577373496170294700975839604227721976198471490565218259317189571205429769633979559932602145362966204522598333802405149749883240100487993777054305121365344795035805989215936055142011090931565937589870690667816632502060774812613847940630433093246149344600743496026252841092681003103884956546284851192445002198521063226826511348851997653146114482261735353132112166280763088643165397486848794640696602737780975595855067955381883444025256149018252129620835372234610971679215486134565273544012572261857149682416191181017492851910897071792681880987220048763239122782013468175304307749512076432894415509405352095078411586008912434091122174577818040585106293880372999101446113681770614716804871129121568930871548541590704716305446088093523497599302785773796660192011171990313489088611861727597635851112331498182344632984766810219698792918124755187562252375378552831666807204091622548651737187873592554807852524935110095505062707196740053205656543348514957974156988322447785486937354841906876200223339464057966287018943063063015354157856056901936543309153197005057085559217514837612466128013401767081281138618626229303992812328652774345769819892308401841113844438414453649473016693658300223009160236526915283802889693188681887364476080591605810094798397600404973942945453902570029547015182125463928448540208734570610003153500275953235462475991940116217145080601953674069389071445120808269892625094201006970785872935415777176475800567952085365351325206071826352884951478200189531625180063358161015139932602567737761668151609094278344724686138159464230325769345738403429070600488975744503721042043135737160199264253659518548262426873984975799263986641628222348090582942526842865927541400959034938722627989841385188976127368410877042972189074016509312512083230278545400925339933824896284064127143643449116977330029956502272435658339585045778349048707154799290840579175449354647165722977103036359196074137947555956914967408307075799411856523999050998700103391307903780176727006835275484398317514794631359244847436607318068983936595356288319781087823386048844115729130002344428128393614410521602760980642664825956973924751322364016598716214127181969931705114743600814630260482552431145166763402867421228722191751121685824075904977133543497491789228150481683791766335957851603259501105220786779553479334674293550877760745222006925748960434711673611382378729984289369230478084434157606176777974460040426344974652485027567205276083596158781052781303974320660440400075185179996717540886115164815632262336941592879845313719896847634774149320724705787605485388660664463370868067804187879795409800088043148213931722304178199050619577896489431025500386712211551690925328274508275420883864717253605189694004383611012860611213736520915023987863926239568830008233067768647592454479439513722805277824054255118056458768152279520585755773282549204453268974094518225422903592116835162548173300189237384749858017449577165769959937729070438297615061548983521778135487188581112526342884095385222805024571558516385049366960763667922320919718731263901800879050344648746607679569548727003555856988442531440662744226734229294987651240560781474836601941467458866860358093963611363134716622006875473783625997391662534699751714736356201033777789699734634469897210469198630720232229271907117552556587106641171405970372640673100141096180067364251467526777692456339060519683490520860450218407156898163579407916638588402381075208063945817668196617711156607502063010768717287812680621548281852586566071193529516947992970643458722781099216996635397101547389749751600055091456942242927230879460195138290217770633814264942351298470492828347883973350444995749071798134085679514656062342160008176247959422638187189532453249123334387491622161892841772356364152586057367034000632642425632927371749699860666206647669655997767565951922894065604287741569557440273173401152272831789201907723166794244188962252862932048210667608901536112009035461223517803622590972023422728728765541428981794669144327579404045589064944202301869686906957182839384587471783265566041382806631185219510062918319273564493656059949564914127298946602320944930013929026542764308422880537181134682484444074640041686690651314950997541333228982347004682133226330332156424266123221099078792251438256118299312251843289936940855406868915136874721060649344433689854687517003592461454286848163380537247694469685863050312641553899877849712812222471886104420317317951686854107489960884987487906935429941616263603605161387475232651483971016433973677063384371106491995861056026393269073998977435510002151079922259704140500994123118879062983628222766186316815801224484116227200139978512175167041304437420747006503428200538505337278785143952746207743604212853475600097277826146506157969710145586386081267127043835692912374043149808978217166340610460390811421724215946147246397625329774683759416929221415408096804753211010957634904959352236120970289355097576182302208884830264407129216478172816384453152076776746243938692059711639196055755948789778833416062952463948963739193848563597954428793754864722731215906583031051644575525807693899433121814842726161572518979405300488909423668898698895726322859686984755272875151243833247531127344035522980371051259794948244442567104131784963929432028265998969536284617034110578479462027683377664602451156133123390629857411577178117629170508381017510547382750378028235475855103224956375580854293294742341984182223903180602299924968531552621230432468407935530406730958581987733256829608689609701264937568599865498050845423503317240609403568168958719982098170597630608594154065167155862238136061591953811824031211752350676083880092351249155650304805935340164415083340795796497697135320612185591340685555198392888699283953620757519630794443780526049776366433755617940348233985485679486854583006350500460761767770807238387486076084977264450788296551534706293835092545387004940213623004139619007442439163663941090581224129007208054600264222280277080241545646150388793414004491357926943636003819350759199829379588786573516975898467039177861879214648646725537329336265034857033218648917790635776342592159586375006811598928918595949651124787558074236394178852425155193041563742773750453364116540032048063477520246499713859728539708914132997408932848568438143693403537302026164125945822300186986441197858894085174974305873475146107473755656192157739848744670552060208371928909042123426906288080844471768263430448716432624726986761843449399158044637272561645046827873486011671001353241732337190701302986288325180643731284792885127813518983157596379071821799445219234349373183991865323277665610657296884204736521189058981724256720781069339743843310010996853013211679602656801770095805506069497927732900876876101957869340845328268794691623203693611421801362141206173000644254890157150086828851364379660147307476550050592321960682625592113116804581164921912751910034171639532888957933194079399704857781270423151295427924920738144806322229899418876731159518817344491391040832949702744889772259220971777061139651095440221834279708841838908675105434805576742358769174775187675665282858879921008308762579908498492222876836462074635670757616859368773178147404020889301732617375934738278597364005366113338029495869546975525171704836409621489730068820665787123152114777458889385081505687128801909284007326299299511667427557922151811538250306715569121781905362306674665910248252724274640806816235427989170306986157304627515502014731003556455194439818315328509699674482798708447573854604115590938858110495664966407901861466561621862960435813382435486971090021613551838283724921666629201135168273899095984264920579552876928795751317899205918704253526994891347915364864602550010329083463771203670025223265615950309462039750682979156449780453118525534706322570247148671181447937895998067031283117661431821079447274637667037998164680575878758358390423660800844208173967249964562462867152227548224156504859460173098906452643923119269131011610175217129330262907607653610469749886455750878833754889644729289260830406920456490284995457227062164656000498966241880654039856560129809391649512159857060956650058691474242085159501577185047261472527637979702365992127523577706906176350998979424073366290986082094587823904468917470046973674785321181167789065798385521424307373188111009367655914790143048855570220767183399309861405873013428401445308782843022213553739153795409105803211112738494864955008396681027431989157016331837591905725963189676350790870054265773767449293504478821672115395495232558187411862473454009636906943570762019978986930195789617437686640781148232829225990627366782440151676798608832439303722446970509703967619778821413172151892038045207362438530062739442332905802597724261171663832172534504726120636603868198540332422215087373235305614396828478640700489243731579630312446006495235877312054484623935810856140945373096807239623451001354628932236283222954423865780549751425311184010759200571699755227608237307466391417745630257460020285939659843123841489891471802400768203544848800830473799991185756388928011077474142783850702230129405386748126359849189849589335889379655208398299318227474272132109205455014600576810197773993288291253076785300325086167810220983758413191585455486535041056984055887861977559335060035689052553311883231663625606491461309604056220594055150714183545888700202259041696983407203366101637650785147563722274751111322089666137617770327462312295311263060675987023374776709323472133013812640286052060682386131205242054521612271364592406791389058281532639194538933285310840326492890430552742176736110329676688283515087563474191910183644570731066055223569248752186708384681526844993565724664478222796837902646121572934525062730888123438173957079433228957599483329949644323701018313878838408022336718888696347996361724685175743248718238955361547941783993658859804720281037995149042110527666495199683155308052336929539416845341172305193451091550485852830923824257489532465309939711387139622818322646291384757104661021867460179421416123297493176607725581808208829914549636746544256564493590260822539310793106615885569417530188065871662929635617884000904418369076497585155636825950750259139061558318473555919194368213214635762867740265885542772935684291809918182422176965653040244886758278382703206405877007359688060360329087445565470967318887534109738898357959792777451372933063102516191215893971552889814946287357826583927540189945901643803665573306284566354734078262994421744122424667304966002318323647145466706901376684350838628353056858740893342474026831373540178127279896398207411844981024699951825553890786594111977269745797913686712438497111300732985413645410933384451937756653755330245020678454590113132795475412105336421716830668441576800395776527782418519679483458550002708293735784452100365189842379212016173327625128170242505620105728430447006780057687021236710833946209056159376219739761370719495573312305628995857259927283591567835615965926330192337527316091768387985208904171673580616290033413391842701376356538522655398323812882128725264166122593584223208154242879093561208865444369279070545064008099984400084240677930309645694981891437930494151137310671579012092350073378563612318346487687496008648940602105868403415102920469386819495265850467038626629987940391775074217096413160690809612146609210252887823159692770055924008374346927857461506495831462811787746866780946528997156129077206886954246722630908587109113526485834773464351134558038457194573561436786705469979556466296501656794543752467038560263233140599819027833548825142247266428205111110337245622923670066069583912485607335037768436416829608362637494855683253734027356662458572847066099229078590134346362477792940462102576587536524136673812740008375176265774197999101446213929804487101229863838316677112099257697650822659433988912800875135126768087410610476404318675341853389697352059346328227120571407274620657823280946656521858950638080412970787564003968701908973946012914467792637616276512945017802883491463527652267335196334785903646103016561234828205787351032973794603354512888889942759333078675175575392201700010649942430525968050493130897363019236994178828741742933003057669273891613139144198839518116667284870475447389770090135797884695904177252818649093998134192741813858077383560641610533778030299247911823531111305992327574032096564693128461719252920825779931170959218364309645201701789950895399328746048736429650984746166826408591664723356043326486138666565306882622009057219310475953420099136902008320154695134794285548980148646002931759332421131765040196314483833795971844282371872405777498807377036946866438576713348559025929065795873644159160049787237452218487314681312663322555270383019246906973458947730689877423433307278659286539311186454099872653334115242259360644015877149740273418134761527729455048788535042935904268737941946274701184862642167403122424076795072237972953494384044472662787211233138830389356827308017321237182909174555669749062282095472429019753184419856842420992244186578339652620058327468020211096463749736636080534664569134334424503515281023335914511281351579934749940847651757417577936024638820384313003599281772328762723408465118288822908243199611870744336176133194226317742429915333573896299827913116282089055559618694404381756378614925861962332120478397034530201865809055618784174849855659927628393622920267253240340196223804783380690331882682671431346526632698756516274095099616129740939798085054476433739432275251330336279434111307939806195829055909349833977012415334752746300244473507043726922453579977171488846333548991409786858518845318227512059406391081311768771629871044243390573161801277254991732711758243377035823104461548806357289085978987584871425755539851128374385928165004448415491482663526322909774740659931473192788891040031841576094527214087622243875732658610562779206184109219213057009633586570494808921433989441679023682352148641431922444416042525387673881262469290637173682257474993247434321583343157525945385711406689751615892521204443211051876515820544880370858232004016035844537322213428882597290288821799273117043020170666236636267236666905930545466447531818022168035499009166064759369453940719250805659798819524187186675978489219414843772640837038458107367006528844729515287894575750996509452118064069497007290982892363873966262511899566018551308744737726825333214493933532672515956446021674772828880882072191158916926196748503457262162771731911078872969223723864954141211607797604534074771569482976571440919467402813163694744183962637934701351509674769938432284289160873709360828550636570693229982161521753789206290958458557670146386726469440042059438164348208689246398348653617235303661110684298600399082973891852936302836741945182299618881811996315064408461200158854306060859543271450278773086432220499048617340137501953933390929073390729649098798536765505206627911897049214197916293761715744189519051986851167847697936825836548082167455663207574259928365573189550841636925816496620678190960572357929163474052253681219183284013476448035076754153705030475752873555924244077830283927477273577549991252045782478966902446359583851129683221631857539795383797598298280701604564528925751683661919113988044856705340239691211472076284670481639416012141120147944475484525188234284386648316279852952311097266278156771725523879230067093441016976752246901003605046898719693888348969236143616653708117006153650938647456367884905737066332251181403853853671692600133533668627027749649916065585235582198744851380898642884726921568192068384795077957553621646338042817267260767502362241550735393735541788732114013358488796373428845202906439388747411356756397213414794321829073970624945605063296368878111995182455130593536375358990988463083955597857112587398826356582596427096440687596673358335250561410396137020862204516857834180775052971162827168703944099644869825964684157768663082230913803186766857678196156933354588670762733160281744554515840981473215384270602755729959128337734598059003938404764035944627639541338905324783692374456328507465974990977653656375038202729239813582813998671653039660701173108227819803213113981340707139566830217447964048932456637847715224495909502978777526571407183047698792375968104837954471822366898737433407426400000847356152260713209976676229975540274373796679469258697324804353220731393990808856165107879767966000304642848200493880398020158533141912636400521244962265533162411280418462287579921839610888624256290780240317212065199603926494567756806822446328099556541461683962953602775745277666761924730368106909372015171894947346149913189687751728263465628026164333636080285157389559547932111854326980210539744933180195072377075611297037278535728686480573567899785992018424952280992819259499784307290355141938519365910074449460384914292435208673787184095025616803869622303634053171031158710243289762121742327381357051188805628053272858048672053265106107118086389382278609536528559107413668285938388644618640951269493735556733183136343481120024433638209693573925127569795673624920267024417234100530907711534104144252674002358245345179820469592913802074571298649751076034204250096808702570664535791366923706731803000858257721226998218502130929129177787390702129503294547184807695112723298307514924552950099791431721317636063619183336727621356463069211217414249127109126666197895533771523317783657880976506447233951660186633414245678299132910304648964362681838977260242817401136793665212709964427617926033212504265039903387192290140112880108541759972462586874089488824230556202319634688352206708181137094236409570350319186981568223154461668933234137849022886408628509835278588127618577553773563178176519830488126972893475480992212593428899450444152056476752789525119817344127291527812367481893101357837840894532086804051816639763224759845550395744543143213534884958829715882919375787087339731775733676303069123949221261282636716318704050356664899611242968562126422316526695250436965532334295932338358830257503465561486845916446697115933309236549909674329812804037374138548824028520410986864359733861442188162342956675234756626081669160136853714462249016518481490265414590393920550533482621408495439501982681222340987457919398085986002846733812843288338686853367303480811212499334222413559958979156860832938717261137559014032341970142896853383187903461836571226411315355536946696502544213701231622535739376899721790124501995447410805775504255991356884947532639443700316167301056538850859033964782976668838323673962501821404170339748514942573425483054257117448719765122338553997905501288464347824317501003264494734307369037143736817461253467095117747611752076492565409653220125815143343154196024568336231938508031788184255834003879667509112355288782039744477526191870982961811700863738220561066657288314645515853750602201855909982283929545874551182396676079024199937506270205572326586251644552214455274016592083657851183728923954311209579683852283939709146326235375317469027866997189118196720022033442597790629253804796673754915640448630753900034620204560165171263707317803510014127510853255269566507500809950366851529054279360307103813117739766094220604373455285214431979849017151563710468769374050309153664310197318329528477356364599570214783039411705982441415830561652922793316361943556058841309528062521203276345653495833547959502926317371608998047991009258901586574146545150297554599001870363536068066154853081991865870261475179538893971753364521257955784891082823398167370684530906912014841266248253798794683200704211947099119183892939634139131930161088679577064562475054067139107605107905128667815281216258551309192779690558734683055424794152829381277892429722084010768085268279595301334208180295023098074843467216305276223304007110516201308168161376233616850092586661416566690388034985346718435098510611596864043674155273095750379591314443446826398977095389675378283530749722846282635424115863063706703497243379074013188773333255415073581575172551934470176666924747740634174429948439807958840020293543599324514447715735891525604262631799510530314505122910532227138179287817531516318061730803262528642907576121443958154103972327039884693756194901303105373695177635362152253504464206309943608967900939825115233601113604144045059780071016429927218326640416844197552634518510046650910684908403192637007679714194638553710101477901885927399336574491949800338861921052034757791676148483776085860958857872978166011483212262931204737990982942668160444296768036912963724122082382078484403389964071433491957965566821215141267409602017926814816400896653533762659886632273616984086100105027730085392338394611465040792169734412140432149521976560529318408116513490840002721186005126156944962385625480943114748908151547643844729231655218215798123873517485855537821726925231887288628151285720414545634079014784066469490614534571142702940718337284925333364154857571492600537321901103775150209943548027966613045949872727189383753245824293766025071327657484415177763668362870176897910901310855749330905192634893936884530238127886789991894330698723952189195066372173265310115976485255404367620042162064628277420274316586502606731183437726101712755847231248100999532044577230438031478970039920619818246126911789500492781298567189560445118647816515676863094187877694245503490876986744789053096343831366656569498612284707086137350424952190809451176704662516043813235549425745016768369729123079488520141625855714676829563394846294427339110617937218989080078104722512983607967181654736652533744493907850369141332981559645006299610286066672578555836860395668633197730525428989006597298560521089049474774746122688389614763281177131752064640144482799201520432378320548879422008880545115881456700032233416868395179299784189778428212120451841370052799388903005992253339046598998119193861426471198363885032444333210451469589926888460861915243882184758906261259244002931589924743472250748496385246147397252337471670868477826652484657744410894748022315031303197890121450469297753679697584296397445367824587299269717288698405323784691449593655001767907872649153414795203447527033692004076761216988613886876989345160841632731655434302086423560626459515693151078544547456186926888671494864067967600030760975597694817943572764890420513821540518265294165470545281755324976103444910781079928431973654332002860328382237612897877554433506496440839397285269411863781615975346675182481697203619001210611296237640556647566187128634538064499241845229988236126734400343648071407024968496793711107469621507132798895856190838091034441089936243869856243784748954163281082342019322922438351938588683774249278611885024205490994775675735784322893216605242988807920123289261038542474176236426311415626130045334663621940967331792694238787788725471049290063633729486792751323100404470664349873288824438353576106313502563876195076439053871281936850849738802515452585624153631400930175817419461583111413809933438097016069976158891074007544128314342464292558030417204957258714436626355499986219942442927676241238230003102244469407224177179147488063143091910556965393035153396018649209870180587070982765762371181379100483578562717870962888699442111311983721550594104611881644825493548105807109491894507185064675010812849392018472971114052062373498318540830676021268860981356090262712998288913429948718494790506898770769540345522275701502715367118274640923006091835370231316077414740464608900264959764831211184125191074020581405916224629542431352090939987846982850567452356192942721397158150064597994272857220648563297350438278442129142460563956436084977402707066235074061018297501619269618020168268571338696727269070105459271838579466112093425834060510498707556657155217047240712279286093903563178599285285607789443474379313098503561529255762995925658188360149462932345230816691422336984579622115876201243869587422742250086700965137873267981911857416585375682065156760150841695179779276297541083270453073421117738733241633209226767920857468894783865300078967978860696752564548051207413751342359008933522014306768175639904990811733937985399266885309983007428976843710009027816372335628864118899267637546504727520544927404437183738299541825806916131196959834935685050828220798840449312296136311489077237603297592686919511710346845562211421123787140698587432128568513998679381965899401979013077445232826891095484950814599374174827483507014580687752167544712644822210092936340161532775168112858157423654598778840122176407404602982188577534471758173795047512633285216638206244680296041394187123452062887282735029464294138084163429990189299556068548645995521546643595234639039313606736466364500903993762093963703208651409561335808827247998134120152883595904898440643945079950751425141361370538209445566545423233188184796221447383848246784840577540187569867437626012842767713236730211609626291421841046851196936658699162617037286458855778148422898552364334161213713341104226630478881510704572756153961924917436696810196377389357967654529577599527460911626285739364249692251969716571901541513457343743475239201511956614928808881655211767768776744985882316243700203309490319335746111477386109210432256246540364757214672149274322243973376522945769586064068044252055044081572654626654649360064146651906659675949116727201967549254100432674075628394752567584800616634840508209061516711170671601515776663964850278484665367038932603328398345255860263514183073586531844823841515762844474337649928561229184451229129193425856808793812095368666630158236895888678335328837852393551389227038716572060823644137384179314575480927598315232056448516940034908662261113550035227627264450654307108076117001417196521675940386960446019245577173111936917501807396638127898710369269792938623246245431501859741434510730725455807217359393410737958120619703515709325204907297188207690843299526830786626692285954194886902664090781917207752739465213688814418159023461120616531498145452029331932358031443256889369413211531633691817747766351018260562138771881446112135268622368344585030529516295287745165263913199002615250637652545607749682280139316225252451632837508299794349908299240403484425645122413850491506248596972495767863273848428854479165761226334242964812750649479711048341597688802682552262045600881105907190270313418656183711795427356714191159505747649900768628497827888056596613372477763832464875644799511800080124400685236252866822294015414772505069080969630380984876010446590493437876468217520074001900011561107749227211767162568628616274470396184884219667427559982604098008534219751365364079204588174102089061620538344887180952025627773015305358480329415791464427133139136164646346547320708974434647089267400653964314811786928207444481092496028272367590940898881115995141705635699604879109525050964830421997188432079899585641512433383681776399048289194009000415688167008340234615207403444591644476472572979837671891207410103022598771883210062765144820665677117369331542552303851695482503454115423143575541136810708081937475327226202776077446432798580752911481389836879204638421761030130477659046515349161035679254445500647323030285745289612402046368076793119673551234162321383846376326723343654786038956446139058167207514721103772686342991472889342163787662470390904249893192466747032126483208839010042658103734280977339952616458891056079380802113533311768976820564471494334079584924794888793150263359660992245524172014286195232626658058501605979939509516985311546825972684841240191135756247596920799830753417188086309110895612541874237162604129624205815949686696341992699833565945962167319870003128312583104522570388645088782487445717199369061159727468987245891734990938462748206639813816987178150566413792112671380244021304343408996970697072973540295820886367021823895083227143918613207275123449564002976892302521944776322141903949061515896289271498751155076906684312258412691673713614752009194823865752721861851817203002067797084123805970854829458899649645268640228611805415753219063790759931727047915555182980086818333216408350393267698683658642976825123824590829227702459214206774826880035827425703055807542093411121942623147348915221444482164947874795115926304117967376843217023156103014602068740769394583582490384036705067483799491634393475803206868353316647711350691073983178799308159272463881269122834138290641998254625713473440984451243613283599271879746690788961088864678955146109548815235175119348697869666762799445195807051314936059813978002570897492277244509248217908562110145650917789835195855662807986509157220263737515395260081018619423307129854566427047116705651930703687568709093427152786702189191904329648090526411845498705833695552622564755014249849382420659838081664562076086646554166267858287717357466145418875143097059407950317800782904219319654262838956904504225290652368329449875416542931391657965126592061214424837678375230545369074566866329166858061647710665014012156451847550463824528913862844115168784285883424302083900346631816086658063273203261085904758058119192965415912328891197667692784267800252599491895317678181574194759822259010776020070361895464818649204162158525804507458464836902914611217947591708266261213614297217735402304812656225759402140263854710179944041354286957516930707423658781907140045930559998829767680241424924697874170121950303214871578469331835889283251625004161182016146864489238050593793448001054461787546213608274299743326857059129228778402955579821521309989587716343627526884322941955426232176715874289858658840512424007185274300270882528936474522106307744110765388438389939428720166999044788698538579788887971412324108403429505249369302246156396394998758364551454089063113290011052517261152219907698035765028047687593396981632012305439059590861783639889637870991902999785473512185145846377689720250173765794344366710825502107082040260369579849849343883328794099231763785053357909212950839173777504732245113636829317112199065096977343836572210256290648994677304588575938209931700591727368974926858390239399367989247556996452912248562555657432364893191124227673106514004248140626947261090200628016648791969058845588607334822396555170481944696285310324625057811611779237960940862721949809911499058297420245427100749890451548553424142664533616756543587387280154286293489373202758617910418349121677914553869035422945184175592827002584700628860999455927204762644476523014800530429380912141901875803001077999595294021881233855875173184713131729212328383717327897921139696735754067750465441119211738300233083959442264981602380772355339406430606268568180898675521480251867040442779296271630808410532213606328519496867452979359541362461240353249342723653900366055097059604115318108437196302051285999331637145033212839474781920950455134104559874360183055892541399399331052768754876001719411825174461795024115489426765433059432026856915814486245526093820378073922140192379110883691969759944951933280702117997579663589895521224016406147618000368030167172822750632795193418983339625572476746795472625197910323767310381787250936134458197081727845846039973370951875869945373347781877375562721748398886985967902337090349342498309790540593876943900716033274047442796620366043573591813923633916769970426935396624188607426704741525155899939378366862813094843615785320941491315266112525752099964911267871369045946797939987863709999513613099587378644025721587486629037080740186490406567368202916706170067315313627765499502962059785925981931571541555284584299232707577663350160578596071845910527992641027353240631609385036626208082400150419024011281966214136648387245277394850552129785202377744393961660204208111665025892073150081360966827337716857491680621279179233600454678693004869877217084617006956116445090575949715202481904171874051705467642164640799809390218385964949803173673524410754575091604106344946226919239485606977037345297041919230394171322823559009060202782290864410547721127406464882211413391603393818552391517978460066363315315316773895359441658382806018713006463606938257474683309736414781982480314831395054840904348332662054927536656956403698507867832370291155795552715374760505292674826358774659506722884393054997347098307564136926021983940306509439822090418569245869892180105764915651371988010156276182760665649287736675710624638662598952505915726269653139584649572870181915931463590229183847084691631258820876966166179306941144547457738541694266472583375607023007530364829839784759114090974707779590553064801106595520729145870303119803586329888401660341822625891216918880101429213340025702833114265833773896985676410391380893460984265837065882799400431108231491725068821487047264081460435272162314256971058551499846433072785603673253450271936067838815216112404037968937372523869971199665568950908547052069964562067895452667885546788368221182222638624322994552103587467917381919497244622342088959403308873662660748913122398963838264308791683883310803725506416822810970451286148333468386422896066331440726148097408395249170343187781486436209376229853428232506761004269426064968344763889754110900001384014018419408884608339514482210492340138852693110214238712565309882582606238213218428662906007457278692410767566245368304188540933641217046374331200731945040869702189102421086616696115319183324813532837669910062382485222778486399298441851201153189526187613352728794708904244958228236697303151736691928406831838843188024252920661087542125451101355394066153042432996019283544737851583313438940619621280029359046776636320585397621813663176453615126345390785733396729997340667052974044057782261434746648769485725714674702993311571961040072596254005285957847670978365601812568769856557464351971896280853391501576132277677777773405879534479226927174084413349542248332936998232477837125118113288020163043347537144565285671652707689692819020474731474241363313854416157782072780247483603320524771694799698380798513436193177048043385119556472089863412918482292712831059189311720884947275428643700893390043160161699708866095085970274460782382972330945628439671761920624922010379401518081890338844127140014537329552818315224998672745844891239823059765350950590303719853505191689232516036740214520698149465385461043771271507655208265042059088499865672680993769368854789975170180809844089559029926286284655590639509939990956941049452142313394822202498243481257702107631051108022102509216106375662183498165908972775663326464494854268132741047511521513414406279652634733340969829649588639515140082261580262115604735138580139926349034088568802726107934672788754534760035624088638090397098248808955272276804258401963211495204252515598636560351448474389304304978348494616663151308289705829967531054747662363878044984442083798618481410653122032214322195131551770442507870367167578449462850976929549650025774606377569572306255854933862447694518029609782247022443833179009843613513794605363433715646874189008584276267543445089648333763737133823336336529933317566248650089321157160868094168632155547089837418670328908272505969631788002511629919362761007934013739064743601960304523277476847376974272960897368737388467986038096186469874798943546543860428598699910262995726823887486252875263209473773353565072070522988243154844920831232741870054453899515454191831912012631288421818745454888282431473245506380070245931236509602856827268448010597903871910351492864202000965825126611297271891808535435462180548327899819679989395582628785193895429745610988088664859897976607934010058974681609027520740105189199183494553040903243682184952464196304462892913880052973587016863423092628335078545423286950884487016017171433250900495913245578825234730285035992864880173665078447531802317143496816170280972712678201288561761778904167408496500189799867742915177984640668499084690119241396706212761892867109087477246233969885902497754081705358113465918621095429988672083552286938636060564498610533179335086591285193195501707741286354510621464532062188914176510154120282463890777711747839096761316452612936257230085410064860236857711350477715308574056363355688724789780373798928412628865894350160894621165236078247611599491796957178642236610232365827019094840142582658301484933049488039658522167172613533362923660523359125271791057183636625941799786455220527145413948987012569935454056407014452492090371933983317620298108033754366898482758426098924096511974778290407233905272707208685680778425412055579896139694648195572533533673596405897082614116884639269248552660880538030092919881822054866572974293309333079434453507774648893648193379661298152628002957534802604367743769848443773414655223719786428697598895626601146607067627380942089555896882343619432377721609363814988709666273849670103502140250237607283171500401113495157841319698933753980980632570403361391336417237982084280404937866691364215834884590887170053328110541600937435555992363734937156109335877314547980178982140668160092808974796240167307348418574710029933181471701370875173372967379440301286176933248371178743304242821500005110558411629058020255456536782202240862681884259576706866165267526245894511845007369419790646186062345170560127004123752200460492318706387887224362463801974393727855102874420523345450076914598783738828062516041715187363991425520907592185228918973856534384036456233588120416058334096001503220479846160595891685811009043721980090492295928734959041494398180198329480511073387625062167887294533976881005021144141618188418962045936963920865229074388147524183623442854627048683683827810871988841661490129067740129596097650146647300231778566000054074329915323642091951256103306445164754911372131378923458934922211319999445216611547434007658462665892106232362622777633003182298381439321491874435466185358584198794945588587226647100894158260824632202374739146110673004519035376934742917558374252767855658147538683581125249481847988994565322314565085677639756206204566407070585475768770342466132161484124935343229728861286349649106042914703495262781138087192803809499277422056886649761468721786092503183168798582784005697474358335626104605502324361793589432838779337263369076664590153926930693862557965974238102407733919225327445915228949968807596307157108332614614572292248455140069330624717789530613539294032247552631107175892860934021619945350038826076590191646412341484687654708890951275272072513757738799833057566291066795964429890037079857834539547159097434690819490477637476284188635775791310518658272561244176828475543579262044320835154767728192914959418576852411987354916586476402283758351344062527782671066498441665190968406561464401618052182802916456443803608910838402694359077411896746868408546357727637460316219399522346530602771647876693791561395859768481107106091191283464367954158065208401251209417141479120055154863700164689786392406952887121284204317449623266601224484026209998383358980305013030562228240325721898261520467224334971843568850977768405044319886085300115170846214437083116344420807063171503048398152508557642222269193450441384313366875665064165624639472769330426603912154662544513755373889779159323120838629526875659879729838033543956522856362393563369841740349203309965581299613090048918681258142172075085805974630692776925766109628877423926329581678959249890297432480579866467186074271816349864803064624809396642064167367543948140145172268502731191848481660501169223300381397219064843002023403338536554759013365132553374306105992968415628288907656481054188955787881416745861519742881031594050759151130059123589321117074736504672572149972950241531475993893565582380685220837697048775604818936206619509821849565834615283928472650415155551983778638218569390141109075270161343885514046669480709958259283937341614564125807565459664442412486956113946380278022871002861312047107591204857827645683205183736431613781925368836329586020704919694778547872240183807508069296127487407712169075654294691669405481874237493550184125483942406154746100429531353359066784297411464014334027468792248550546298107737494441906517945375486064448271885765264723009293877264855176846462424749428968097129332256826614996484458204201805540623748811424557465260793995746491787998656194836992930335334575378398392199043881404529955849487983371301508050860044167917009137634615933769457303565864415259959479933041167278283871335994467388326714189944081315016627966813990571012566169311342331968536470103647282745772635613889413199437846047016230519420828143240807891581747002075471554921931276066434543521681089261537041929796809280638967856932762165123274897259859414719227641607716099063848735145093693773851100981181588771040114938347177433372717381288134204520859725907330523807625582607531211757164274158424559898675804829047429950037777329358480544143829836242751210447175958911990008489051793694115171744030537789687628769213945831341613697590231047492045891155582554299607749117222572345046686615950209364766303955485505878881086521436428651118271967020979658559627095995207686832657128020923630237273707068086176905166704901679927917452916220338352273397390562197964182673995186813459975721242475744806262428154778600284210490141547722363974038150941585972604968767884306837550764812358601563201155613862583103991007069055757154421542766484716415378380946274544397582913854247323796971491710726883585634500952042984290208014883952753405165239698516343604089140687600319080530872367463876833768419703022315442212206811213525080595706442890600744604835628816593826528296210851918230491703370647408339108822691002021157931072250568279061479383386362616819495070286512831823874322206298423157500072064616593788498259915289167860050213234366161081099850358225628433832859573104176861630931000728796432452639335195587783314545444909911450819215316680039744195522351284479383538206856937654101139388629677507070250533600503490846989020451811852433485769116914606994070044404506862379268918732550443852888673956340433957654891426380905471695047807526223247340229517651134886232321036119690243287029192688415330222264183713924950585954972424904487213308118034524948132152977697806057642369407135448506868928424121151362427985045054971652291015689856583143321346506276705354151227602523085622958380344521600023130938486046899828696897590782598996021392780628627110401780378390785233435993045490444199051840577101843360426579241039733402647656553077305144089529895335128324493149343787087155166092433620586191127173594118543214351043596552241583315769523060374046139724147664921477777274318801910863339459283047657542062421981657167718872814315350757908450837040230380825935853646687159666991815119477109157819618926113596016902918767017798522064624663620118848587210418409776237572924524125469090614702710825149563214622013977716693901433774123494082553537365332000612793116413769759397023307423833217621602166712400277949518714852865267618414215841324424156748113014184392760655653876295090215218764705346315363513464453016237484861246390948913534254661034175035430310276655564310736382859182151853876675146422870333971410352542564084834374156404742802024334868856246172473728117716236317137097398560143127211710508110381985476481831364392699496468204289331939631238732162565483352061780111981157385830885087169184336520522223295752871363489153183097608766173026682799183201375706679479182026570353549583160596374436175181834155431878911920024363155188324377507556385525402687798343048597416447045806303986943785668995242781938312647679219366620949796829856938980624429369781740813908347409559453128556433610383279042449512073772483163755064716230814064753552892894874461897225393231182405599659936892459375199211300924893467270813292390475037434105861380092973990915263707636701618376833016855247929274503968094103467580807262482363678781057885738082874138040271381632566641991387414246367518061232409271404111022005299909084366968466924656817616245055516654914812360256372174353400014656752652757110434692771487447010008623656357866328394536394653217299787122174899533699150402709910453313584613564516002151354659583992165155758252311514201906247501586577739418567767448881076590645166971198798876154979270505408320085201909657381933242912738346887764881818238673926282321042182089544860940348807309312182003535941050824157369845313049686773302635529620203470650092133555235380579783255870608167826459307859535232920995091143018990189679862732544946329392405368783349468260936768781588870388603578964779116597756075538564030190063072143011312023162166540854770692829381825373422476533941641980757652117238923063760786141919221639221992516075185287316533033886851405853816648432490030257756083555814765148865193933285845404660901023269784762774350385894999112709723494396641816743960100177584676745282899700937022773562777150725312015093984069054030387741623056519858249259281460862235938310166109140604764487319551651213019612280660668481102447970724035540362075030730829606451849859524995757370986193635115447818561399641656933103604231964900934906304579882354207564828351200484117811997151613713879574057671887633163562401406006958139579415984836949849010493163055460624698795710297642853895179778490259241309221149203470499462314952005095159434100705951935287190311726225618874600450803746783125578396749157828851423532228701946918681520305706646821357056229362183125102863098022580987687948048429410748845661657637917696539979231315772940995354613116432080111869057731579121801197822137341816902994453306049109873119251589516974194901554227811686580658604846921648821147996081388098126666413051136393282816649496452527981661775913177959744484964845778481454579015578085771510093097698484362653749532826734957058873458253249376282182512958767420415577294461011153376724214370545856106529464303163749927749953424832804215732646547447216156414013133214260708924881435124925857404893041274875054362643436119088825404033845145370952487865836438189140244047902588430932243747180913575741166944619140614509726949170646933525183032272618330310492324640576518670328444152673323343090974440471906444839041694207577926720964125126029540827887798580988479953816147897306918456298332189217527536684892027733172486925886537601656038333977761469258712090998531084374205392868694636251575134693101087395107924909679343880595304588979107314333657060079727223558580593373344285425691407702584353568411175074303244350488131478268501845772725176019269110334592869777266608823047530024064197479014887594437589054079745627612192157083135170089266141748934612765261703250602393644520913216617882115840202757327005747862035548989580551691772543785482521656540704842137885062972097903845506762342704583700846118916960960352260914653859694410747963603216929878501831178244356337852958181300587850364144846285271356387655333693593245720405962515442655964898465095642127477402097921234603774927197428080594061831781578933527634176425820723934037739180876599013811851474109258488576441090179736902441917929564372009972999030334366197553713224824276828410012134901902195642209811970199835052701389524765072241882552834635837508226208988626292550872879043735392774939998225372757621523731010203004522297514429123478644639785657509242432906121504201096664028330330381344752209976327463377247130700098295458918786318128390912461783724105101037786888721465213378931162986692972833380026506423131495573918569800951830736808297050176546913510447639069398205665426846780666766647080424035622941747750947089387217773136894699655553705681606418199021113249818376198982952198238273499196598935430998246349318266772284951768004443551738473040971869611052322173452736163484691628931569907886528750838414723770728536053576376814702358231166438113661338995258330270118180008366830481453493159705411200351577524261088120828223502886055307698012621149502705497348319601060479351023096957430746709132061617189920938669431050220395479387265809358679411402967845342644039450129149042615265133699082202505437373122395782913383059860321545244200954691043737241909677531133996275181404375753510188651133524197768234161703584217666579213000258617685289755686461963771164117539680359492679996021305859029966277628879783187257184674232507080186840168105104103382789977469650144593809784830935111954101887998806106978115572315478688695575388651795762121386233917133626799937463214239791289347073724438692941440466036134178062679144963098033802660287532107127190476979428000612504178405768851640926330032106125061597082564895328841725634897677106900096707054733178451380343501019458261773172228506989435528355706838724137373520397576559849483261132517295998225806577186135446414668695308178211561608276705258251440092910477680970002577636492077332828372736701061661586627755532676649210846813132234487550405061951088157120592174109531806603255969823630760348054735553698283667636229244514536877889638770306424082528274189536284146099466114114440122541011744675798058750892619810288590079621842416804299018442693453694483312639454405027260627950762421786715910335713461569801692537767907429560967287699845811478570990085835771800229312638507003196361164251683922020902905138676207599810220477204924228809705137564613498693767042876320637962293006015231654488359213952344975974794991455708966518310078483582149807188165234885910211641604915011487915152680055177478181907587800015853503392694933907928329952964827089369602164564050398926943728391932371861870038321815489560240231672205288381287009012124265311106640181684651757673210507590902195164313186850439302635695115812873035655217782007026128868040772621446048230241667294420726352364024139302890156834310847773574913843224360231458635285851636592105694101401431962072923461019497818716926202106674146299598983298472361276198488988362268892166666468203887901775825172777526771560502639361671138456422440274168189398042013153869070552431038249532024662965358042424958643427661269133462221805615608091255679909232163956567951933117886849276816077739649347922867844610358249650297517793593206541719322584878930545024640834818831247668237568405223119284662036318200089113575841848526221616464377660680940016516600478746541489054871840917150210164575392244138501531549611062226406823588987395748172762424726109016418454727583017989538770535911469307923302774834626673458864244255514140538059402491577307463334589872879667955861988436117662669032371127739966893264874146190737409688156526588988989923141193095078987489519972538184512761515274578482455150054964776403853458134862121833375103693060040330093332554601313130716740058366961786960363211963552998943619451058651542015298301559837686703369565559200515886750801313289716271915336385533394172924457624727434749946549466347163383604528424466436730575736909768007294698425384342840870811016419417221871608250669593434374616291147102444793408633867009069340646637235380544441492206858089256685996379277269273511353598501995354141443109036563222315849958481104299957518331964407581709890533058828032491216418543405734447753810245023355962804831449193418422009738226778907206231264144291678885889629304349741500637580262502754348710823300377093064960500170357514387883920853802552393140022358368235797360911863874941818285522857251994390470636730860427572436045130939726997907160986534494411463301826838557023390855595558318634970506118654750563114761819869482742348811616576983731442052014302416959502240155082257567550086456300887450067518819807687600731633381920629773839064803753554732031617252569218179243456791288358685446545379594027414996811547052417111476420794950952810320835235131485040818626279783267634587031490682941995340412407259395374148592517918692995062877683760267681831431607911491745481404853685711079580021794083557309680221781871683830952334545282649345477030136654354951340685423974544325267056348400745459720669784413710584237082628689030676940891052573738708841115669780311449325287359153946064946451127311303297567793875463757961407069339671365867851386708275539827076130212847975872752547906114818453985162361925100125931326905112932425737079277705265143997142057070795505473173829642808514736576501710751009275566388064819904318653674048500950027275425010249253879595818206466814051793013349588521358743893832915463966352869225490443494013574294973101818692316543530699976841350426254574288183297054583889008214242125837049976051039276778684976834661356345527849952034719274256681222609435462350189410560214618122795023596159215444867482024092275948996789543449580210078920226559326601814173480538618578103713976600484747385524007026299579800824936083166504066422999630005841108796966348985957920404663684994212068943471458865880018845136339869216155958562779478450838518422683221872194381500581989750392434959804160876124833584583272919879278414470610168084224253517375152779283082555303697289826469568528356671252337229685966284616331182942656648709667955894741777477665437138090496337140690162644937132085139669197899446195555951180269180805457353128691644043037681908540581553063179702420171345316517214392566230256573581216676002994563304226376206078108688110668684144840391002476496859814164036158211251005986978338583009093598891973818225879420495622812951094419947847051984460817789004821076994077573505643712967957493403091423450782684401499670061689934406849087548490000000100674565804065279839901004306154297278978272109592207844075555053767394717749155563607803222768580608274217092567020326380191456152659537958576488022474730836518112881402451935079402216810515663492069748069915474392492322734145185870183620727670689791251490798374929599920674817612809671244426011455074934193916959893142940668809530921081011982729473836043969266338540604880553159903030444630759371906224616164883813994575771354709326662710595367055198013673572785560094061027949667253930841738809138385857861719603246754886569914993416847847735759953359919041694151465756332390792767406214818118623839755744385715164584196124416015905337917271094864481552466002565233040513153869133528328274986738026713205045180210005559550655806179603693710892586894481082501346024983460024965906995356438233021046718005848724028618326514363392839491230676321396226134014144865396807448406029187352760479706888673453343670078236287428546410315105880066199659829067618087442981318707509647988530658514781353592016249004801844653221315089709972923539136595158616148516566388784881109648177713445005091722487742634752537145995063911171912462536859445252571423497642356709511801750817365193706778667723033937782199840588360421432941500513766415253587130546366960589488472955276219132881844241594711805589660155716311900643707413209632657591748356091420344235392185180453643414948701348600255608603701825935993241165296640080753501683863658722022964615753558668868287380137153394847926322031842252157435514324012736747920772385439139229568636719443071519470951188858925566937586915961897068038254414359067731966218038323550204847800589998799914631625060297698062004978714037693883140025889956529192541129068735967905915473053825244646951994371155441744466507049114113821894672897042949963796250892723069326855418446356933099342288180007987615473460674721183751650664541430717740268153219661451466876991091879657601964932110448137462975723398102922432632218015133150615059578506987043286126157013601664132028724420542829704433326465860495751176455068886269205845751258371897784390191282474828016280949232198730396724671146694853545986952404170888961441620234971705066255254771865115524580328068324425304874707616452797020074210372594318285516830513588433768096490119812169982990166445556624977457864957848679767410060543869430777458765082251733079005391627799907120116328995284639885748491032624554060150974297285331486672726277850958305480247891898329851098060527801646531852966840896558356146971404270496319876412153826166599593349762037572392411445282124325407811567817539050943984863721571395939484945075447980847849072665442549195804298778450603448246348356360325576918522363455551710936032324040247638370986102380144142097620267221855547441338489975318916696298439173831445194677514467802114069664414595554459836977914030020126880686737881892940819193754020681641803829773954388237480905287215529519678423268446864696067178159196440955744741548148896263147302942705224275918416957355343221407643937077000998891508693761275185682658777408779099058293034558765630674832417973537430721797008593024211502707757810533473397023921640329342926708440451892300506352810114102085429709477151126564189279278310967463180799137758086321659575069249575032516324197826900125169018838509267265161274776877374508976551219663154993804761797177312232103990256588995823619951891813388916424963576479471429242285330365097759312393112480814114845492521079835557604982614313425953147451210986586297655661457247225682508724347103901857139756920565791161610210362868927383102587776928573388313003646000987176687128862917130820804655843622315649170365646662369926775361739914240630559666052821051407665870794273614892893510352816842077859642922418955873924404289146561965943719637176481443544870862383668252700901003392979791345703640941742877987798369140030651141866179808702631811907994869290719122950572975174198324687034233417268025681107024243019953367350995797003615953626398469267389551150162918258951453264834858209629091114219989893165614170175241161966829310494120871049025241176967299312717247595716793060873673077151118135879572760585397485298245786960869737327315095751518277185667069445880745243655369909983727596512237258867296927337096301410774882956401560747606294744738112767890034706270867740674057253135744983062811032302203380747059671398262770654595019556149741600306946445138785989281362111022618542769320285058908310314114638377442536399892680769122703881809716856915641907124443798966648492159803505709592051979954224366602614593934514349863537819990529575744580955449099629777715794455524758835655128293889870776598153582765067210205422816987893010719926996342673963586626059902310767200441857092132508593857375154649469053315923598945481989563358967864518587549973703441839511675579928149500045551912875097003058018725394984212002777851461836343816484274025805234603467790329310292751701845895844657737882219638808763179514148942933740593808483381914296668309125556466582327283351631185618487807322638363321407668986017360784596378932839974551243267793529889834891978468607255587407933237309414029842754902007617087327505450394291967049830311205760370065004667886060651752661041814568163779831569853732868416122921586757929300769921339872421197545445742245592805893650041757383711575428287964058543327181072726175491409931871038913774073481829505235952418668265044349855677991476561063248367992903025034274751265731028084438108242647841797659885966123030697037733960973182326033784806003547127294822751456504852792344614224015220257204804948695305884745006834390647171821512591553040329697045947921903125723688062970862465667320835251113843234527328331443128776027669443701083402793035792128678843997987726101321838166415481243097278577894569859060443506616146262295220625791774500265416982839109131670487789341520034557113545700327986229899729334116530948441674278708520514503715524893332322869540727103798019352649701207035503685397412302625878619406723818468299444924801443493403769940082131120435902960739947080225240700981547615771750323505451876330265984139259469929845394137036551913759886904588020459318594715762789592114636315647576498120087666329891506626829243855162297333281683544857005905472077387343119688121741177156838583608838938233302389161255631710142143075823069799109519002033123645278034744167980939382515934520828319620576573450514487891394616055621118430528084001634739408832346810250574429282663562933940295689587799637695953164620245856457062166198294457267571163090380723289694308989734979571832408877645345379363245268438720154455232309408128868176360551914623863606730983719751631881719257602789167637598384682164611854903166138140657902125807666789490826460038062362425770479260524878780341519844750512292730333002526029439589596860511561503918498813947462199405780676543971500629845224690451862955547784616153584971783495107083798688526831004487709926614345812713635928973262546341782031265940657098318031807686419440099510649409608948203892547127866491635231391661100023787469392081822590938758994852711568201386484160614238668389416748149436140209861217032417198239319360029222091197459547805913863121219460842908970686795856902003853699879611758071845356202419533296571160706003289992390724753479149134741882420391823969324086419638413923545283737418578344566752643952929671156853315333706436843132522456831145925231382132915139736205678227022345790008774176227963427625119222681663664427204220897702559819356569249680667258574557243209930740624530351639163630773437623027042577466923290795817044197663514623710068936981929648256270334967328222937755108030960358610413114134654120353193434248564924488636889055601948809730475572731977647979271997683556685907853297955631530603426188640420627262275589175659219102780514984458085679830619700403840924987075718574524193338940412159334489155043441436891855090021975818786699478328579384567566428753019488364896572100868995876188507957239814591208450555608028220195393856337893263345522007502934758184810024378290645445372771507543157322365962830429395834750479599171828909717783231651412361112457415596632425137589523667874570172454799693205076108998472073638891862540736437705826271906720434957585306838167218705152988145867644932622087462456547164787220823017206921415173029593405274601590387548986111505436449845093350524315702878755247821956996279738601481530525041837962059941565109583376482303638254054914611506619813286055380385254396828481432457318676207534907223482867103621279287771567508252382107116508127413689925049942212044917035396909494193982347904651400747438224804195301908020246823825648427521283641984500624428577523698128570473354728675416612055778210217143298693620088537234966671931081700233070338863124754609806879643913499244990022205644106468415992152742899519541172839652597575058321499563278805503326819695587290670498404907787964304199972303136659305591483099255256431068313727227675278760933138559963644337896261148829853741830301849046392236374567100267246986458118146977607732657143132084984376289445829540343873710021887088066298757718412550318817939996230183175895487988491726786755974188356716686696208657968914915562814058125619713354816438901554407507641630124642856646790845188248722965255955027996845541810818189201324260023102382588637766604042595816215301528134180991928100761203019106759212548401097284903242446110982432330624590197348597318034442910125393293574271614105069464763119876688374912841863236229947843537779028263335403416115792140977839364384105152059422545745000158888459144670528066379319263370088054658649584128992899307912678871724828686304040439914177009851059987657061766956223640869697587589278285927511317242337862281890424420914847603091058098562066759072697799599286393204032984788609443780814505379819297483962012363162128283423793656827765571110202631629103566612037988553196093241596250532288881756681532716662431490365460179938934190668215502965859506479016718352746390186417306552116715822597609348938576101923015608134970301083963720823940809802809614280864791671229869855680674202672997290313096227918290514771161539376070862838832252701126667298974746501330623663355069495080349858411187726492093157955965701338563517267082926594771155847707194014665934531026593621483160282688477669758792302726469852855133183827879015340138699580739050039410726426405795511638731044327267786067267953299744749262030163725161765608435146702626949639553785211027611291426721686496424428187825468668509967200671999053885913306623053233273900347742504793274973362990878938622750091965874489657398206413336425770445075650217257626880965224122788284113055320239947210312604215600109180350563856638224664985146726029144883988278833202571929683448678513387178510383214641098316447698370258398342019582330011599554024902579697264526133407968574685148477041239620724917505481154386003798950014240722103489627002196395648381075183546117585621372297106591005070851282972618245013419812985094640242818644786712534774562782257736041213581449653114298724600704099149708214706220577462218701428125590340148998787379183785819539570059092243805065580722649765406804123572038428885871326115543462402706457996988110151754559253954604010174299009635789242761584277210556834438495419551857262606420672747018394748698145234041414216538806841202761358915574961705723718465079067695797013876345317332062011102701638050774461244506991280623095270160567154386291151924742574083532659832084901240966769407957905470608503663102539648202148512814712186587598285409012563974877320396557820752571650371402750927731240118058771903247974078292484034534272549335367284632816037177904797902080075876652917916887577529398954093972097479258970974131649845160469851540625621388125641061358113293358125102208129867352194940760833690417931156321879464246226684911210665214235149551161834869691007295301803592948832009744091604858525181242214883046038810881844359097262486213328019461000665652016678041802149277499306616580825249863919525648913397943852056926443437282821611834537604777451552553403184467963241018676690530244458240593301062396417488239365326302567430316500480275887307840393995604381587504333505419027075095708594851932078143791715820791566834841507000971398325846913824626257310018348015894590917860825059768648627346762812816246023923951482094052774680426771225505239105024516337377431333335673887521326415173183399447351276258421175725287526223629808793298418486921315347923848136168084617850547133313427514599280517395192364973623738260922355731901185213796749095818278713532283022883302696385222294203007945036149050482549695904524043941149721206682252257737167230337669524501493096018302622978974829470933195645335941089652626532821726719928328260765714211098412970448106184978899481964883081858267977324850702265509527475265063081221963165165552390924325355084879423476531261867932882595787084224966636820296114811489802183992612757408534438021543756879602727047022783374384126039212850320675577935024296268466059771746297293387878959430704505899075387934697451636915287461436654063956800741450711045204529305175057233937610829858297493693003527440417124710770718259846063387877890189618643019072215419291826582615454770687187999863559955370581404536531802781587193245004470583697066177190894683701414146199972208753509919521548037134742178637308422852046792859726551745013180600872438481244056114810859309997225585048000738984472058430386954781623962593670183875212177032366855762166409810567968595866413721394540918585524607333179957232121909534804629226449619843446418897890235583752657732378490529147236168163335549547049546836707314802363289148848242349015895766346423515033092581316083081740018719889006549584861536423909212765237919703319001493783041614107349297908237661184075497762562750129803814737013867925990021622659429552746734902780850468509666393546183886367806297466327762829416662565249102228562050857974981853249651683278007206589540648877864162410285949491749782295680977210150101259387016312101563620474938964669547941061435491702825113149617088232254590295534466815161430665355567723837605673298671106309628352289813176291107168293982068195845038022831985436612158988643220115907971388327194171808951130465439459002588589024996284040438008034553404855572640657284581233259681955664883978473825128939592458005120827861348026701124776991729317346100730048969153565433454650657246961782807507854246885035042115967133488093566046249981044396144209033766212199403444679747770789224687320899238505217864250442970421154661993617643920137357077269340508841105503886547488388737740620553816322088847703930360146461166187405346812041108134807374986304348529588487936743923713657892507367652538833902970833567321097070452973882510468855833080682568554897359612641156162854038165959848802741497896281036122876705507258901537719377226203772349973991009579144908212893754416738016714727933898841396127516028506885017079102313701351880151777244007136830127134099205037151248946103494110438106425744572520183902381636998312479895475800979750586821618756522326555330276816994553055034809650222461760174782130060738286161682512231413899620620413553941313806619725302720380079105257424824873042040579303600868714152225118511967208151782588035051765161308583197586831444266787189976642275726068996539439184659510603658587019701649915440398924257936240335279884589060623618573693208624333499851847257066316943792946507418771211106042172278521359621243448167928543552783372781980837135124092065269284186371235769975263853781514461609608382471945816636585893727953952689243426746898541569612484023880779020229715608412622936710547036635301580429921127973519905771264537509808682130242879935706082114762948657360707772634378493907863546905890677130987933070108353281827602040880542418599924937846255850429836742117000734654928789701790037580635861321165275714108725596230023570696498382763784193047194810027432218116871451891967536278162465375668097072249799304951214770947796068868923974898099046982142542257550064190435518171120662033617741767897000316709010313004073082417220984825941902382389862644077417838299864519440031088345734732304341545026272744989357839654983701778184641379257531300122041576470208752634524285354929133595482185533574476521191629642146641968011473467605307902096747675568904198660231975803383590305077760845494923486797517005777847318328884574624923227412945496617493858214521837205717183605466268857138626165755875934484667716251682252577214115160820243809771637588068056368194943276011843998964762954601829892445028269274959248368946935660881537570463361234797237644698696699033290504054337676428550195705730134097130152663344566113857155369806265020999967778222548207026907778809657263794979176802575726176646246090839121614245307365385203595095696425992340383569837594950901906414837186469840306081900945582691696606825597192676116105619809304849782319355608146868186861226574414111640975685707466073895629713770548477108521458258607201305952106839528057264646945339623279067799602738098238118322975954364002179311819811297458864385390868112689195793028264470197918221849600454922216924655339778999351336315283107115574363549489679891498244371076057618315288703545001640303266917307384207166070045877299209676658674213949443568819859537981716195644192622908388273529925185496672486627171504385698056362182534082014027564692818450400128352371128177965266754573603622029480009531374740214499497413835714061931245355760514105090188182150788598299419454384091405768036125670811057693985058167191845709413016088415733167210004927052324751373049031622286919849824637608451045714749759251063039539172018703087646560506507522782999399905021112435337872565949830760437645229884855727232033665665783992071483086218914807711648099797069219067735989184246107699118190107220657655559922120344471158261029311049984668704826718263685303506772440694770276775336945861671052267547033992291455801750699233687144408813133026621143904253447623639362648195609403043875765289965031170439070276073436850761996180806863970124293816915899824944668951418389356688096710189142175840643673271387748753853930480065473177922257996572504714454092753753275372282345437924299830250840142532990345849397736074246202681806085681100659997471368799127018737715987312040790666655449363487684410106289362139981906994100094460121390894179783149891785877150513769640060669054493193276647586824185010064637260379581394470906049134127220361723759856448694778752286406263960768524817482971524806187601645961091225347342723002928754294510874226965890586033358179895117687144343814771467773467432658380701633142412903205238075130511012524537955468761127996801124404130332857513644766480413021062378037125006137324605683774750574226543735003309999894085705030014763754770516995215973947925198358555305011571659739172907144523977932263708294710167664280259811241412763164599629250197173425418903849713986360027861925218257167133143801448088124516247955002564720769003107929908687204802123050768695044608556349592353112611089345064795918753479121154736873889338424882326794527161732148968780151163083363652786296901236074339312202108572395366242327321547422977988268157061283790505059787561767212929182586936958296107969091405285460897339792611288091868685906704837030423252065893580429211890750526379650385466666626395871279429284720959200969242729489214780488001903823344039392292409662379673412915193658183361408009965261632149200794506758826081116296081782113903736768138560674792305187196243132124735822167161308410429912068938627747639481302084426940047748591119527142378771731224203232685134233007121554031083191364226599719627329183265476675391875714248916296253077929435741695153130852475982738981528375278394342786723193194760603966037422408545909419670610965553827600623437735258755492366794859339844749861376719186115797798230127709575286823186386523245704290375893643546854669372874491115143541560242969520741051905415361788966608553525160205153259727090522179918282888582536470665164174040245091614990983167097527305131452374125318708422129174611545097504715542598607481084060190044299952045099056653048356792597654365797980647979547426890901417547669830644306915466631327863767856099183931899431381410760811175550579252240570342430404352334860216414152227030560922118112199139851038925694296926680638605672511630661920794028224108275106433584854095053960062113075740678288691364908463894715953835782479719875274291288618446593302499373554958218206656825493644051278413300848353862639689168427001033571881411476751256418289003187360712064493656794753068774581936801329791083580884686917775698363058298781804400371623952944991497240584029455048212182094230805629780082282669155794354852585389283444611037075890681752454059356052398577631884079645554117218010380358579718971454475942661839690126584251386773057563835072248172420124569456545469026574190585268131019854167131460683725330542340254009795553622228153825577916083248023664930254517174273331335783626234164871552677767671883747573886404506167084804701829384141018261065651613783865828412862045224113720997543762954332602721248828666982190119867199745169693158790879740766803622899565179999131138799198982563803996709335484783591536656943177374752371121465188359624283492521132071842628438163948298474648940060575297162264771888869630789418161214094553966898176610227607815321656182746009227656570270016614572024702483372970532716474652489808300323790661825087761965209598107726024807055936941633978526901985348489597741388762203956831100076853406349977115859358115594582448992932998865908620796152721748719308835138476900869923397089535735985233170200563193990149163746809167742812711728496130522144167591205694862469994496715486224415466530291748838071834157524167214180197909671504296080362981549311028029408604016929095396140411157246002055478466878717837004917089038199666842172071651502627138748847652751125845467212857310400083494337077314383748021759935075423583870111594540860170920726247775205365898940742905890452589133387165430034640194490604438625800063783363168300867497711156255212105814228036005088723212034166695232032613962031715646579643504198901599050817369468895517733582829837430867231375638888617330416382630647788143312581182581526450391257026138024193881762576902689760323304740189441325165971759328743045320319753255063513936765790921709959428510050172411110190406490048868704229834301424519337539028774141276677428254801185553250988246931626803295276019425591146349319872496187560955097132991184537824615248217168896275307030851934388657615646874968547139472778633515346178858259418629088288606107245887537188420964230217670194409778679932866572773188849824408848905337885899725544020137814849847510385868585285036108910228489303387450810778555800259867858254339326703206289898579782363546953388353894161427765669536397220360390228137687757714001160255498155532689679037650011724429618686002655128166002618944324639195767832570071154338660656411102817980491228783122206124272300051170610526252310746831477149884499082046021589070971612532763617803585834666042489799561981697241052717996881903154972994175912294352450267600380409228921440358992231878859977794587417027900067662822632311387198599594949097241234704198239377178634251477920802100876528904178104078636844956301344649973063960086273332035467617173986953895549517225908644864683592105475454663996218254966140551824703241606843889925912433055267966285493387451169276866053222507516000820851671181725310684187715020097077286606574327019744865886937635980306443386141300797342828483888842964458173659816153458830540449270275390575384169438151972016808751619244059553328667015102778629353141750829944603327591300962953881813744416478067921700099724075825515333699811232545493846761950796916424463009775716841765379558703848953954123858833207924507743432106192411960227833276883703768622715254017790774041080762114101747943648168146096690876209203063012688027730880843669580215897615475018104675856161151604974192583172021208041256606940534919327221351993958508723307220566886381243948063446724892828530842431455652080496570763645265615123270981946055059529188950292231158424927230283336139262257543223784026600102054673533344646831845181493475894202085831566332299693284241771356077145454764814500941954479974559334524407622895031987232017471714635762833947948405713105199683584974563465467088679829652860737423631122412540851660328763075324459792855354681618513375093435118685529535356947138806318636778167952330235250297279106669675561137931145062026007317736249327655464748421953811654722426671794242177257314015129737774964875910010218410049273045215628597828018832054869786394439835744701534747882433665799555762695917997473830739487462210238190061257629394940424508784160472853591405802682289801207203877638845769805194608667258120098045015637664178216843021777491782412065883892337319044107162429827482699438966783712521529779692155461081554579961606646378577826160003311508183438638228185617132460028631497421163787013416518405154045430479925269177189966487038720887838108959563100407648734330395584919223186084177354184176229714293678000766147686171319105339307735851606638853617152860603061176337697303408863927637245378600178643543742299357770420235116100214397394091596285505354355873656580214924653494122361612037721318260625953923168151784129681303863834266303315137491068491358482082791445565457530346491325146429702839268779340371477461251918380134816370121512329235475602063681102625322109555255993266879226240373805572217027447220679475201955810932218176278613469903113094344155092365471993894663439758810670334187853934872857362447100332167039097699407347769100705399282485697767695806724314112704759282288341482118301467952570411482291290462199307814043927744341412228449399690933866512580885845808121394271928334696790886592877515470682031148978333183496361152101806866830586450895613059680278906920988390933305903370370901965011233165455036358220053666848718618836030212791948853406323386897904495121791537074412385441369173583914870715225254714622244765673323664751514839480851177821429840118717012708350612666112047852739535535997726521181795251225571268090728828923189005384913998668368968340611328453473531630368779999285257379299262599625470990758097644177040479078433487333239739959711174599981907408271798742995592882993891324518213312478223468232464549521724793632743940753315432995426906914955701871567989059741414379622808514007908205448396086219035258887992076580218993712282498257992282836228007456440535531018546406774645189358772722181546086917460431734105418933032105184979874022156683981033275613901613972950535735547666593056789962217760944074785033107932486412143437656021273082677576200412154767412472982145927429806006064527469487836398568180822018656900031060747496227119948174285185246236756965022776802518420572642921599693360790321205773616500652649785163076004242862084017979700048717982136458990348942833766468220522752668438004854921902972409312994478028063167801410993719358468875756145318628459573076553264670596043494028746059132707700458146549962695995785744614068746658381471307328042032878039432362408765955499518197378398342145898566881856634439564088289987632224419921821938436021167422243258472698416958007559408656779122846336197178648251108957516972345928800827961976502135682735469179103901332616513932374370515889376493767849130976421253286094010084782179968216035845274955987408646116718375055403294981526336552087873911211714829030048618112561577551005731039423679781386559344250324021804548276042553324237864239891618498176493342905564030779332423661939073008753640547575348895739576420122318973445247350220583534887144066336041141972626236432036063235292350078079142368172692145274542862747470779263626242529540257220467746765155532645045125109801567027991650578687764447302553271448670250315070719987082339073438441117594161392491346976375021947786874824591610839563425732163533823055790044306505818545473114062338882215061582213450430674340224938578032845628034157764195557535544075682012813173439269924775060598523292005574313254577459869829004734817449892530983349937727604600015275438493553445875426671693869911047761424203365823453624197644647781349611680802277774190300015940746013531274591187118968294082864755189451533583302607099969940970410227886751349974572157556423063129714959334783933522822004820593641920712462794221435063432782373634324765548378671417964721574694904905375492659409512901954410256754967371184801748339929753243600509505979016653786382274334206147781434922836083078373148197910076424267624064984281458615320944654374595142541246943787487380980665088719441772408530141144257163652127410686036778381656438757567994286277953109279071354386763308778165909022329254826337680508320558828746951553096133258543198819850927720069927711478778311724272769850250737418460163275589534520616260866574980257950780438315319416754992612851492500087157082370013026789083830464386560868752928929784911180098854247823254987845206995892458566125776324086691440991196255656319757050394322139834768316404513906493592423166143265220305880464544773600515029043310063765421273249130598336704258647393272002110665949889203525824196469547013015564529964546674596211450753975794066858864811988191919878019181934893458441514876808127808207466861473243406395099115774422911123350357406397881916561954955595889629282968673659414298028913222706038573788413571335542434912738223291555158689422358308875943333402381033148399799236526780638140756859880972514199906221122459321153989565950435244454742131139801281902381024922806972214654128345852003877598325132576424725348712660192463834975496328135419262066169034849966611863492109395335243030957398747489179774457047639703614093632639756282630833016173507870630124180178419631686012064273885646621184900639865919664783395538492928101459569511224375155072871751314653285528064275563792912820131286057157292314978531994583410181890602527148763441249462950529568891936308362602335853693571760690318531131923579419524059681293541863401187783803453803183421525297051308956425730607410350286257060807941766629770098378217861829713150745188032640310633349517902339957059282338462646288664695178672858236412234804882783711498771016480091817138881021895145279719059328704362975713967475402625495082541734889940040822730077665528862762541347589701117485763714031222921458700146065782360499304973423914271475533549598392816287312860298365195885165429429208633492065000329760452293973550619474899593885660091133083443926453454671234129869576565765751224744003619528654243997905146557874000313066232914310568931780829288875456285072937987465142498958195376816433885377360792742260822285263645306282614216784552171627202781284530812420541303091159026490127962708798862660791497691685443156995204725331857769864884803517760316865450577433881590803666019472369739242049390173873454459983095841249509416700462867761354623342665477072082073915814294967356320893451793688376453878451439064727669550427334401805794972764277093590368552713299159496345932052171429503180997629561940033743038692496702949082704283949906895373811879892437718324766072070159064916226052574981863915537636736071434963264801840668834495243665375365366997948507948280199283823931643787482643672899933046247980844794522917753400741261551516780502133212071676357993520708206251063120939097922531820719803142554846172235570905602295143593546759798866759502700001224741490162325146393725859823667583456016069915911295592481075037772126542113107864134946627463058672567553675793636159384126304594332619788608904578669285774023808027038742985213624377934064475084189455634535311360632726915538445722659965869810451912481668423653609019841832768647135094714588557778579436885351124150103230367727632040906001761628505141610198617176996657204688758286311213744327292411701171409160493675465111907352764738121912711207603212752972803111812560811178105419096035252641816705683815483386970809441820888962155319632399115065142239509857475466788736522483860222884632214072538363671198595013031342268798000930930624887097284220521596491235344985077945944327015630339542102801211003071414504005179487068762081594618351149961616946988915624586614197521788504815934821875982843938379741029865066010594715408620580428354425979040177343786133943745690345857858115515101177055173013186420340494680937059790959564223543947661051613549246695715498314509771626825737349732075382723027085953181120016707020201646610586326842537811921301312526919857934238856339076111899426533634559642699420441027196425364297021418227770758913894027098832714024524396770177423691020159581923401631932412979583502018496215409735898121958581572562638097674378443875938828692056162255072216672059017071510075192385331315643711448724984672642952639817371149769514549645599802674054445973387219769031242932731603286470441484002615294010174814843771058985295111066874071660118011815985280177566956313761561343267398035422836650874599051454038385466032979494699027105692947130283433466918409353410771628973597830843717851562487957992854742055454802043909546712686180989860758696859225205052181819581652941133486165311403967659046211982812140297187265231069565561016173702193793748605516295370480881543243865795518104705749075599354851948213830938563127999611919429566199698178632832983341247990188414526992469796745214964206219479088144332799877920047476454843761264558530918546915316832426047464410257882384531915461339824428326552689255358156190683882391626433345312800692756633702439270449416474197666024802928752550529968693505668297688693987446826557643733897618710657412338992518675532312057078733137646021715643457520117744656771495620785100203812934922504590361878716637906716334011505802904133831964981391180014493663448112727069530418425976011656770025423868464140349935224887110010042084790039588315599289320256587184937587714543753463121713225027367303270773567365684220900098547420862967970911817399088384121148390635262682961898437864216129373250729775276221673837858834438509909918896690370858103213660538074067055104446319028846343374346286847235441822026159188072199156512965005170111499356981760067558097639225132991394862351245965260596583668610263644728129977360488115814447913803268803803923527526314762579076973720924841613925281819393701219940850655535975943999693918610813582817814934557494533816830165776383090059589573936938292360365557308564126199594497305386048255812691263243192983291404526282999750094764558115276185526790419050712684860966052172143177077710204855894348388781892512555871920755691629644471823561300813203737153022589455879985346364032180821151232714975111939053880529272006833528491808223984893339095606423945092477614965999982223221547752143314362630902726861994630083009641079318402911890125020363802468763353324924076950491470180568977319724871492904467902726111680779627066522102910529199153745151899196919077987486335487485334103161733360768757006867317045918231606629194273441710047203478391554820968320579466502451353075041110347781053300608268430167673518586983920462365970101611864784690799871492042361213570360269113768388924134342798888628340815529464335640502056909192030821697255528510378918212721233399698932945035631546692118072294091204930012929435214733119945853334954448400637655344699463107530864712669319919446931621213247347300823787143034280996227981197822175719948385807455331092961612630066274412922028827242865527396957123847524733975928058796445163067153404606488113269704683333349351342988467291679119246154111774056280177560907039077076209664348009300725582946314442471263835469015510325255518502065857123900194016878959364613889159880305776472138262721665218225173960106389485378526793338817750868142897122758474550428420723094305739512742656237397513690651589724021131468604901349805393713621848759135605093060820118931692110779044343611422039689836969905390394905009359111172174227367454978248076522599657052298249946089330458218894998320637123135350559772499480665618012631571375050211137558523244802756473999161175281195050662251242104242284586344880496950886352304743911749701978889036377289675306090312019419335609017158450405285530359594243580090877080998008011143897412143844886755138911359976899231089709031265989972917579777022984444672500212981309056787053517391902763913753416316976711770648372548280487813935563542978502453372253850951162471591464312107062747916036093548091407929603509388349783261436225723566821076456129581158886819094455798703456653698121197088890199177464071537780719694967044409169675845670770871846352386068824213520784044372373732446969110599355225802028757437437329045821774011547852998136762106091704136486195546464309039005244031465289312132660994379411225333188267683624512635975961251082374290226975082035632956708623926963739530672250479437409032839037709346493010971038547202199320500692815655718797817273465619534635639546322259173172746985931961858708990146349072609645551321884929316676241272212702062783860371547318054879801864383805115516422842812659437510602886096065965344202413131243965947402941338602292205733842600005728268986319587538087242008385182642165086645108665596405396351788485937896369379478069465191859360259343837123257355834998398067439181126371443749782588769964887318394138288525640861979558623013829889524399630339343343859485419936891648810649619412640242096866507768304828720991030648845371321045444282762102798819650432550844128496918715971955832778894548712135420718313918474392958702899603447155913198865137504228281437034209394069345145135018475587801492960923308148568941002469621074955510291586529292500290002392810069842465610098881855369518398431875680929098848298653889621928297031857013487296746546347001597393392241862568307395964068060996060518461911630697062095166325378316784451728526178494127088103128385665801375392394414450523342765077252342938928570657138289942953290560842523624346652375550094425027926188945768374389181357320514716372101078997948470731384645523442461770102182073840558882809275664912388124725245244288238081710683492993434852033958405364557577342719241706472725345095935604407536409207980600336484964739829004289044069318709906591477454913286493278308835242125117052573902771881261176413419132208075878770669978472457888613985056351966547485822756311082567438533195822596177089412131408081932576907910276697907511615254984099679342978136816846799408323864836348180870918554608579421267699007879701374034952180409002747668875942329720253830840517110667779928081531091928704875157142480465469162692603071561524061123772335062021703176917254435569366370824867108430625866681264036076041869153583005223455479383119407877117484062277233732901967795838567755781886215456746709096855131889085856618854935033182634285124555062515535538633088317214499216069454479114425351185340800918538358397222218324346270844925975597373011207863606387390124167391715412265336537780391605945656687235643795513651515155645822545439902862947721566804791667876922347765540961169930745838219326808471517535542389023784134052686923379139015324551558334955619142572266789712441212888599012473619871674097175479720525495101109133150692485209101345644347962499712483403486122363648152233933093998890704453673861428531942548568237506235454696484908204409635351451813646120112279558682618653720175783025356066777366241855640265418144645693477656151307064336376923503824255461297303724655942055979523319990918468109213322317170656542862383438198142481078070452653076947130838327132200932459317491890837416617909360212761623049868620452003897546960654358493440751172689054620256847991474715171334204578368743299230172340498568714083426589377416412518747579604153487884398818554937297806050323218358000106443844547576569016504345747202344920410443376282326749515087141018047973269235302600819455533162826093641764455092276328287587371499804211659617874036654683791917085976157331523691416891942136511321769622070726051008247197987167886779436512979434376475619510843188712804909596388932978350870362167784907581013966801943131033487783252160824473127165420397796576471531248754530590180509666405009001424212082201026225267299341840524181749421437926694474601057849811483583518936320407943253114956186273569009941525666050508820835367296727381974341502637654669285912266038277127881333260391544898744717161997729469710220554000095893802856104503178373894419183094868714701379585195762657977287845738644094596333964729938753382136779376926377986517870535525630968349512315011518391827477059134411487776334091154606307991078206246025016750186338942297984704147205667994259530662988430489849196147980361726112511343935597779317889952421714930606072164068610199505925173403201815146972481433382538176018490144850032382551172218146111438582939529499119700469768086964093914356766152428949349647341626960217402482139845850607186755427119538097188747655593742965662552303881719767930730428969354148512665393373258039300113382348602591625975044127716663242637069155280350471152204403198707974373033869031217321056788680031966173861726729220948171019861950709704738903057798619828411612080470597025930550253776293898329250266314900484763407402574988679233929740243995036228843599670842998829661340800762677823772938825241599059146845246143881836103452436790165364091919125948184144299070332119339957702345049380551855860765510647044893247283405521741836057804998086810164696844110526808452165013499772354542590202097983550054846148262005262508709283691841156420594390247987468329403315128071056911125987675618851171706348506769191366520732896235292139225162430847302373885242395463696681436038970872368387124728924650086343084553191388972380479209945907754328396820990897196064103793012916158119878983367572054686376039946314455066827548341408371424941917050878813513129063845175766727336842222526778443788853407392725171139141372883691482556242909443335113037822384181106615831157520333760865533508116244407033151336758602840629447429045173935722252072844429042581812655900037010437426682190884737046217526035896893226280291512090043862660192950229818470316156385894024342623978165474584344234270257760413504346359541169205705349227221614760532234354765199275473312468057873232431717086490106927871302533654933378284892065850852216624190069160504880589181224342271116855426740261580241407799813490607761996661740976377409219836463292750851480441870183002397083547341688974548006331290014404341135845422830669089909754140231367337943598695542135393191034827392401904163792422622515234325591280643764894840014053795542914246892237620883150544364926035993333948271264725841011511237818688115045680126395081063586384090347645433466876110081113926526427881198180071871032953998100327911681478088876239831002701874307780210080592831963488064306420116240547058713727858530888655891417474234363658583746665521808675018535547954705004771507880590944025521732835894650848107240153202668923097710600683558619755506765408230551877830711979506511676634005147597525419655755717226805257858777319138798483941180673757809089238328322929555845991544630232962843458314848089905403667700812271513418298269463231194074144539187262336021245445484245131928619508263834764128414476013249387069767434552910893304132897631351538121902109149165438805758755495383663294423713261787585763131450380788935072773308430558551137423882943212343678180146692444472157318959202731527874898493984713940564208874759470479824894997161160738461706402185351061781315135277532890366333419300948293886358471213676383557176028294096452178840602672994585117934797062672900288791548583927142374579300202304015565842082163769071658694974885093285270061926954125794981355872955618718582699336811241157888531365915187577596902721931391147576895193203073430267869753342420031504860681736208530825576605370993128167780127136176555900813700555710510973476348739665844114434245299568673800212605441660985962743873627002874596193819117964156180537069165354082533079144854150549229650671125471311624809372274058769377383729744480496993645771129338623717760357168574034777031887483335174003974084582751147974339392503048140779039717776878331004016260925387101062996226522173840543754602556986460906748702698367616201494535274832603072488361870983428797993396798422735415899400015393736028102245065702619752401635615718509269376370612957790730023585180962147557240333249423573596657652820160212063005770586437229812619227323143649000542181396728432231662670504780492417431035844595368257440526775025087696183887087373802525173351438159087020386861257650499855810298685558681963461317694373850997658243439231557259091395199973870082824753473533628978782278079838878837013677541008336789053840222317569969230293455927119880049373983061667361205466331630215798876022227788597623074438606776942233693060878851859172673555150779030273263016382295123870911278819968439684644747779359873010213402012374980508330860844785685725662153129689959823227538287248430172633101199878490381234941629117988535423871240947877092144833772052666180681741241739732648317080064130792816005364483997196031967700218516045252596512240056246289051666988855500782002568255383435710442862916604359768946984678982788541751688422765408098574156719628787494313969720546426825854987526155677193839303008225393616404199752562034719510776503430792271404926702798365901146957175950330024296655928064232542429452685469439479552308334479692882334355729464195989624151457090448150380070445733454056391962902312356475387083429558957632150818005628995728249200622953089865396520248659054910993891889027982363394515399502602868557142049498025277054236141802044785303093523603970837048823821731865547069393880755087662535335555424405302067836478523778482801837681272777644502571614849086049080369446573705259500740581000534149539088211067468084624053527168000760540990181514626099521936900534249629600378829345528053631476713854436776256795524342732080072399667125094125195978674904029191668177841142311396626866669142619982429595476623187483799787475344310838488484801493260794278764996181663539076838892176443934036625679433084734982308119652254497745223436708372830778330925170958072973239453663535123176118550892600944965919459051355478709149519241221480762935838605769685783012176172672060900808658756355545990890225594335750109813796255857975092334842200648770518274277762328760299080577591221419108167554743693690598463255477688138926258579327088306018231481274907526806812094906169452010886683523975265130770518009163226355516130864752549183171162059354858046209694418823129116036705199885207855576149064611109496371651544399919231993434086185520818118760543037919733088482151850079118594058568132655690791640036352271537504406778712270601771997561917814808861278739352344831552747908305399116347501483653439356317293552062883589664078803307345284118711297767117343639019472812068874919331231143547982718035979531959761622099277601482505281183872358378355305719733040489743223419253832810795461887344298265831615358765910355683151996409786385745827506601377180558067138910783640605188173016940523425173094162485530763982823227342886586291029035553253664152271735160319244919509654529796176962625050326917568542421666008578773418218419100329773181575692402506308280727827032483858055908018641623031639310642652218475735074875738643837889161255763678744715108989849496134896878328590022375382022519336735449238205032763961966541983124317320353635317025524820675447946699612140900401618037978238159643953894691323573935587893929638185713498425942069288706368507003722888452622912103802718968106618254998577802597503662534755320718984964409350900759251152728697805435328862308100222525029496090498659846905429321501322500021030677280012330556991039908974223324611630306403000482673234643626098830510478699699900819095479276543098608602029075325441398954960453323911699595067767891625664808733023516164210210296784036063185431198338091428387982278251688923111898255687146014437573123462115190837138289133052385495075197791777101867291243495643981534356251148514247107437760830228229345486071806101179861298044561911621910310132646510181167532059659160698083185685190640672044601361366215332310714998126800777898693120650632130652220128194246982432320168968291887082330785826360507267147364356351535738625112998722811087644715796811625833470601460490785065090728128233750883042673998522233737197541492078689872361463250701084412582254169864836863479748282066293492275014896515278982193855461749778714883165661113023049657101165133097355531848803538661565665619656131947476429657121903096501527019054927256845161823002893938665149803435424055739044967838638713226448405670601559816739134036713963831489183460644233537639623114790410988461736915761480659285821340562525801544285026274519067552623540204381775129264051846819666593369678069587911628555930225457580708307632464213154899592535471845373876398528098180345552307885516060775630161133202497452351582372959754013883162155906286133295242481592878816375473361055619555682564127615949593790269957673198257346352826204489518342543669518984170098196109103562174171985111774991629687312433114325930720245726447779533320149092363385369497341420475166928814332015362888189365842483984169676381515680449908955697375727169656362710989155281214596566716013996846290525553649526030290657591403183231734703050846710751846939828809831040883365424116006897135576893222657078406398452911663712000855402436117071556652257899321057318285872798636853935429955791152861701442520938184243429298474630893758376392469395761954510194030654328629779304567970651838424481952441733202126965735508996096484219599311491124185511599417156001645601668960399106896148016797216433207156360435335241031385213230289145298132194345331453949339944984256620460437173549793240386282356478962285106260153341800790347304871118024108893570781325361845195305841853897640287504917768808781845084608019648833294523089378019538634548925843927732611337622358510120396716444301798813714230516949757324872770226858366458414913219534838212223699354735751469213009539648268279230883564754611232287737448367228736754912945693010506509656057680686974989684779491473882127108613455368440196770170401037799150892427098689428953980363724454288665628383888578481326843671489534838468082626248720051263546342553418924468972574843769143400925883103227892135039950372760406556001431301062663610492405893567754324315383765843698139217478567399387097402800071429846717533399509490306927714648517801365515484810202852516030400580070273802277945482120728370337083907556375233997454014760278712765226220472614518269465658337597637081504038158243447267341939280577258220374162893646727603176738600044739024956704066438749277753200447721708659558282848390675632422340255534467558437884110136434441154421163728891034658381548275951280426839026175092322801977449632313147190454130146133951577404122156292530844123807293251134398826374006360108515038992680519369951451674316423391532093192611745463913730006994770303476652918275125541045491800713181252437763023899839537357084296064004810265653349014177119753957906437701301532607687393671303984666862077358836924898766042663464636055347105128114536065668377593759152717026409453669015621130213494201167518353672447443793011525897408301979162736097441396353609631708328101178317155063834550138396416794866004179306170741961960445338458805235473889466861350675277152671625332948271545300831093307156087329699469822647307579270873012658437872327720868594921641078284996697671161298874939918194415588564142808572290329198744774148927965683938355440204651097178098624367199430741208144990223920747707644831008879690871446548773367940938994385266076115011795527696665924626479579112088205757465610007307505874090223387846083436513532354848734770847687319858890124199644331250879350114502948809429726606464645615322161200932983644343993320417838166682080704390998703051060062013043800176209985852827858808725463832636116963877576021768120571037006824774621649360426563691611700189255422784728942937304402081016516256093411231708029748812747462396309040980929043431050263918887257296192330888901699026088748498122447582849172768792605501876436179874549144387956761750572443561533088481904584224065594242841755407806281058959026090511213250815157984792374595695217211003603434781346309463652934221481602128657461614367736209120875721295698452347179411186101796789659000412582852460729566189504195522114604066375035030175544224225567574661882838248097493126598778949851146933650104603423293770919684974069247794348291267076654744252715330801389262140427561325265766994868621883371147961617306014779328285142291259822487233011363456392864528647323174261674705142590989872600999144093031870753411103414372097986189569478671399966714438086356317291308230014538602293510025791602476651620725055777380792119343674684240801692093558599693993234746519579588864289764988287481894646982843147238024385328214419257930375054417294533095847197227353994288437227013482664890365182000119341563847640130569913018094982700959039563450062123475945891573158385048744685098734073375697785972868970738126391146780757198357374571067483406766889553456975119771683340418383449608441008585780277291337655793899821646039706603533863759591649704677514182969925357697872673442575048530878651713001570899413819637305627009594689131886346075818339951195630556715816928952642717759402119265479131566260237765219023226974617053775997125770759940182111841011477029284656758957148946386680494291466301115920348421296461993213930248983462093035094866051771295330329036020590457605049220470722079523509632071303723934466774788755802573890638027192182057840600576426040698614032089876139917838724114162030566150151725675183327550725237437853487633081422592751846157958202553273873142496677234729981302387406295421383749919433275495456581647177424957209318754551712343845717625498149514095527495413788679967478121765573502668751672040266247271232983878007829917462219853219331354993582722800985632174024432249619842083753275318656053313897100863494501372879177521775373320936966450540704659762699359195362268517445127126080651772176755318509442648293717988973286178933362894079500438846721479645373022198996204847240212773512760929196683037137259929446404845433946737294171108518547425826670721652259434900052842269749474009032385977229299362395264134771185161178514000171770447802679997893619431844916252643149239810308514101929524531724079949579531720260313661144869949877038344431115304600211517792484815276964649411770177432694822878569753237287870964178341127871297878446488997300391947569690573252830221703852890296970011632047418055057455570743855694861194276227465703494207752356472230698215450759891740339210191644438595692088687430567372124194796547822787581112588627015306953966029208726639711004336820811606882790493302230195381974789263980301979758804731351200968191626068813530756890090892904085795291799270547915645544475915999876819765180245226660723727509953008632040887612873412516110825140481170491621399745550150256744893415758243593286255874898470062075526663427792185731708894312938526344831093921026146852094464616453462502653361699538506120219576262820491782365306404625450379822871500668417746567869001022162769915106845563104338304374567389034679834790018701259355412220597098768075334947328738635308805094855557005442306387184846614219042659037494178204968418325809451762471835963842680033476918896947712750364052124856073363174427971573275974457108204904495273618002639639006459209350293326747594298679866030578944367855437131832905970708401600470776229265241420004887206569669472929975767656788375635827300437790134297237591170873315735352715699432668136510171688917088845560520749384557561198711075353681812488531470052654922815812161431639597272729044289556666566460017654410021477172398070184088115301730386378609424454486916889768954951128862193160636844634128897115513033679448399989845121032475397057918755676534852679781165853354357720405463251001984902047465367851075976479072427321961427503708300769586411820553981647285707416824104631996628133188039952276962294048134795253326574489674800261830130158869573766612060807210881669891326335980054543287385315108381084716775613385211201451213038400657813575991139985545441135353711267139168146905312006010009404021067706574066894382163258540207682687379085547735515259742805106283385520445140042861478286489056606716607153274764669093269662697374883386246957779408572052358536966663035567325757037150957145056886542830821312228484116565711772002281490815451367808494728748492116474302906281688663319595591514269587679952733184688327651336808094536423477993537482971537567973202267058972668850883180563049061762312069862854699033301390148978904657333522559023017340264766502541787628309448025975877358889022228836955241620093501932877750389966193153906607133271620392945169321470817955216790698134251377898650236475161163567060756805209783809859752176187309499873633138950643838238001625178673837142756254802196189201067167842399900570137660966096531799254776135039307509943891416832884160558474146186568134127472962819838671638787723871192826593032553085006599493976237941106329589390886284681653711581085910953526462020561933386725745151640437440130850298528933060734413354278385106189980126496635802989331964514765027266787965760549066280105617778976617075705455859145775736514263410820338456307541875854985102929956045122556230476969395556605526273236088233706061584052081047837048787688523884306221221899708993341202674867519884828564095543253627875606283789240783868802012024779617105442100750837418130974752617427852595523534684118283067523856879719206709538672824429824500783478401595318826809001558318001845870454956623175980350574115662250291867577307330009402927877066705297671149496981151499342074460517484624203312917312544268230139082726122896704845124910791028835366749952240778125271176006167061773111547531768046800737578213790161212026682733597102864045083922073362084700141033827116151997643402342831494802786725630083241692422803714104117424775312799868761108250444519157195723117570759357560705155455617378515655090954531510243002879560177765337363444721676644256075612745282430482269285562281168680872611892911673825638118034212904942051498506243084441200809675541124806140615977547412136114205555438109806156447664907820257493812943280428386128570942330955183417580426612295838142247436289153360233071677223703518218846477683824736523484758591677233516826956699693753018774556933465107865666367237485592063962619994581678802974240655786133624424227023896900758113889968931404753557937249533436099221248138852193893016807684942140417614311779770776079034487101056584852061276813665641883401878685073368613198728581554441975375916273520643311151578826358233776017571422756125792657595642082583993314703424172427637551528014279903139628224631330449842049292774597072189262471987355440365775961764538038283632829379778471671562120742132177337097333981123614312018459454798789447661319104704020292017288582602334224542461888874149435721819506176196811238204781398166763568606652803453879654273300346754797410493962400779204731088036147837529613340924938588462988624607604273182951981726883666931111478792920669829529275791361075498864524674110230888232744297932388479336295973211755515506051204627171193556436337831505660987658980007317846287994398080907801227471276496999831311433088763815190060234947471293239213737629224981064812301490487373818290653836829258825102323674783265931508590526106375903994351861397982846303185031131321815207850519462189433476461952416333344326448365607125348439702520399710102194999929298136856133421519760298714583575700695746816998819518520902814212393218886728677462317467698787460880809230717892772643600887030715620741873312173971288064118218435444631481865480901000068875997692280144862884686028678022911396613261545330730694759454098832365565769107587190096381438660519682662954548320803333754410193706913853102363833510308512823994991713291023819733407208503730974246268812080495962780906175852937031095585584980687086194583976426655304817714992184621986364281530801574339508682083358023652377171027217093738494939770685009658047041981881652551882414582711874901158099419193337748802817921654511180633164618941099763063918392915636975373734164236198928271621300104867060448039454074401575682559647068576312043207304349614021588263164910243153728434105027274648458569076436274185707660175578033989228586166414100850563479591001098425245489473600746068646407724373983867795255168307768191782539923134208295660975164725086890017540274351097410699262328371346020557943363782693291174581806024222077016428134246326392445153676117018113192898903442886432097308068265401034712515570626339130365378756780905578064232561766402955023997221999321773946221101786925992136257297968402069915675540342219084290177451835636451572352707116069317000923781877219240080230061072261979501351889537637109343167595716797852196985187722651417013043949077269744735019709617324357147646368739540997792933230245999838977020554908775701426605489050699260946400928994543361221950528418893064037401462699750521734502351197701867903652553152634716643676959518930536712969441787550660865726146583203871298252727959702398775234535227095082397430162632517685256483922425571368374115022817638117240077047484940186928449381994830320159596272602761579758244369082869441237776575610908471895452089195264034130441976075772409816677580016568136174039886759357256848734487694236575632999207460136142149782501571578446964803225224869287827114736001389405919759162464941817691813551066907324633580739980985911702461880713259773326583360821328736453794003627084446700862887388965346685605023404939519369198537656798905262352783010499740450028786081773617739054871969624225894456714246555083856972694017008587134673659441900175606941442412663040013841224129496327625838637529742502473332216494804395601477732244329858220225736423200531025610696605158112049603486496609511062478176569472914798684869581222673677352426216901037286728499162619079534811685627433124797335708825590796070325818534449365330294124155880559818599524215288062275348508583314564078509402408539726059594130374208729010532377919828161260976787671519385320893034603618738514048565476089612441267883726543688303084474989171792897524413457426686242444094579855163703995105061848342107714691675065187090287108684182580720532861142552768546151927146087319396294651509735538591037183063178890248872158642949085203947993154581895851651161169256850384242265527635588510245418265133426865627398696684630630854364781121852596336773165921921428539481376722660884280839171635103666157225665923178610372648348159247322599488323448735404573662354005878285302912517897926183865248598709377818232547482224258353093459721890013123432622888581764283401121685677355890167932889104324241570902923661321762920575887665528835764767058396627197306586096675275014898858677817232566428846643267565452052090442216315094153639043581531603508151734293223504753770774125018357717960240638835888190216482601698549189092339495603506874301686006711212430371497043984749129981126290329275396702325714937933737515686395001645407630415522982238657469946540690421580619018217543757361144329148923012839491440277824192949990808005843420205905445766552350060655457415174930799365793145532857467206609667281426540573008146684980913707038947136836635623927615229503145617735522093887855455947686517370398323211782251737472020839349138908467938601988330520901074797932228915933142274716955097005230729182736492794713032229357366535194169372541993345727965741739379613100557833081123707002424648850054055796940557615386474032011552346831026494612170470482286100679576086994024299906114885252033890667076087886149697939984861275008276474898957332141942038040508279599369740240074964201675688569904215101988355468829136848848065734355164318882060920814125462532912453902158454500898435575387756384815579815989244226403269001472153283869326852521874333250415029374252739986920421804254522895840996530407107822291443108040736674206391841437925499771634442761379243514719143532465050054325774706797562455187652877737517740206883538950830828524108570058441887598091699504897931526346953142725962197793883027941224224587392009829572818009671728936986471413408506074161382302153551562204804487107233927202139400649680759584724918011764861706707021190423608016828645564728444079613774845231086817084422835113329223461181688674343428382967357824820498549371847709904574194779846668933913381275352472607468204508213311856164908751253853961646180445616357633213592269678763411664417732790663535959754184711044112390992678803992435100473331079079990267719348109083283588486428954552390604385930828456706412244672114611914352203027260429114719435192407736982058582710333918599041979889365391702825574240456754318203853530974809866490087980178287708683287636956972099059048989132996724763214194074441551312318461406537717400039725271452257341917378987475920211128949244536471873019119981440535905748952139843275249390556219204220872251530148183914725346772120336765852346406482523381643970607425467206457605961563484786571495696373166104756261277567494515618024745948842290668948765392253671216419172181104767517499952926647625163401534012253328176586691517745217162981579008501005456918678886575496976653632594602654699909986636275235277945254467272257181045757581101872820963739568950459377581565761855778227626773726376432985969964167474712038803927198330478880533400328875833478578175530679302526411152526515557236103124728251634381455472589672674583894560879609413398526046730619149272369872935452701438503451651838995072613710236462690767899829730821762515534051307414099750490306561000875962662144963051541112220853013327136423127106063802028507309016928996660209474361835697042505079678998713451412712687104717843471218550079644706626458959614458024583876866084857475639337385503191364656378130806167927485708495167250558412338994471375370414956587270513195687520095480929943897549390208664153459319870090419457670751687975301561822351479173426739936216107871392446025441626623904774089080185895244703109676170379955830602935455169429815326563523468284737889416632978706183600147333996268138273270983771837789890832039532879132246174105372555369293535128582654559136752309054103056775756285371521633491772206195196544131100923466261652869936587840098468154702044310470449732748152252519850873797880146584020581762802009790783508077137268906161391822886859654330556303407802226075111522013695581417251317537871292536786326218895287921389502450944749062708206296988836801392566262186197506016289529620148909870282316669734078277977434582886311364564864743896812259211972969284170235601826509735137618402233919653716888542536387663982717349039322652098272920058933642066324628280408070014968544399290944272183652846670195815649405881956509027400163808107323672487004812550360049256167656092982448854048644349128582925024812126474346942012226723505961096209682702171488688143336402801683781041560120151638736993612626206254051747897285619598440188855114302617589664501128989600143757708257937876861691873876209369142659733201465787493040449977881050040918202113592899992800463859845782402403579118407085483884614637666824580470557081919820024759046080196544030885110763537102400762023743430931562303392210617319140255803863380362362221565236468246172462412323575546953905487432576278734169294550633664103010023048024078580965104110513964417001329233486158973872293107243930208344017054601247877759481101990874663698428276847727527566657204752868354857771028717005631944896624426391328747887065894973017512851483537714003130149109429961483369514289988839113958835964092545319005080951540123143763182151038378513131440761712034722143120026602603749661954359227736950396417788488322059402356970872743432848493610348526584849018763543124848233710593137842876539586594065081647636241014301956343641126868325036274200941019657288793223890645734496028961626549851457866461564508179703668164966571008143370277794309748828188466372457408750055260112679590198349334773382465620583183151529054612824321131379291369453349114290889040457033959124597779832379135856508426505212094504759924592728540143082310788869603320829632508861761254717514420328509411994874409792904870842256123363163201311096645596605692663831019199335778242430884075013403228579462292537870098140439473801746199285228595810058494484239894093702855619388962259157903817994568809188001722542702181838725766755177902997198329822762896030973127054288091369545360424776385326034545982355524931028458366140102956345135292532800414812310176061709627906140593060239177304574294713730628150859039171320380525098222956099740849708727850949647712514867248968401362030451229940457649346292747423034969309662943533310414055050838629981040377063301610194681200844201931049254275832379808846597160987556311006256545971717191205083735687093655876503286764019974703691307400286635136997074168523820991845349154584091508559710589303563248016031040561930484463437025450675243692500887970506022260621631325957274485148639428697070440425418638047990011358141196153392343200420136759341895095714539407398951776814941943671939850859908548568110072454592515035934004681740644776747125784463274139670295143053266592183609471393347310846609177180275431015333595480762107676512623877738854151813459324913643323704688638537008282290003260713921861597728996399463034662956011156537198272718817379677297890685321000894445927683040843448536220511588436252542108839539187020293656368694185014502231902127615524928149887510898750030533538525106371341913859368965297805857996548185769793293752703906538451233119551417082465913012325500337954059184251392964522380214111301160051093144924561111005208652884080113578509411901099586296554038570951572754608303086617343635138149398711636267905339707215682369269635590487002125452316293995473428629036062131675908949504645054491222185853089113219502426671328837442839069361001472420711953703971426971710907406629766515291396127793029042959732145825839233834339680971017448397997836512404777567158469094565003039742911332904816404078122820938375565301157124126874520150969525620296645981501408684642681900251408843659951737702818327481444333063047548862482385490474486517908455831991010980879938020712061633624654231795196505057614931068490105135947567755264875021372022320970603503907480352308120431546094142474722389809271273718493633424411887395908769472530030211607515852257502098874310299982367283374278395939606517612118947502458866487487677570136810930745959448854015555330775343376103056612821345021966286356591424390200983656639653975459973360589880242520799419379803819498579627476604594190601289022550888319577901404465773786339394317298235276761780123379562018323348500621247996967174090406290348204881187031677747494848522172094366258349282433258658416825096941994427898403931029738039198920293075714001034556175865436261813024005757812917845894537195575243977099218865003996305202218485311112851263340100894545386794607019640954224045201885456860750538769851714466585857445302255107604708340094384577473381884022597170201448007873396049141291288091908257132358726336595085102693737452119835455232692993320969940876844426895157568039347490648346807617763805169619953987425419330493031376083936187180243796539143592867324028112797264652196882415693239559697087439319189264210523087215174760713227270525467985807484960438946903330717429672858222347342922993114451313239927129997699101017305106029730862647045730740703941387210076767525734522857474861457132456899802796161213474313880702390086635387806398647434016709739074267729714793428835694284064649485746563564270069194585839866871075080899542937111445151350818466934983730618627092555495115357057434418688352147339463936954932415578388693403845461811885499755912489287144879772200504901820439928421949764473950935733140568430335823508966870111637355442838992065201339547067387430970098165131925540898851518677956391924511851601692538823015231330782501408096362856226357000407337585264209292196844077034256708208828744622329147843009661722033730068879638320209329986283531641577771376357585600226024055613134203996848412160860970384637938869441133438219333115966223234226910569537548343732528177407394452390014494768187868607184481766622190364183487645341684585805114233583315118214856038672358867694764857582859440926802315163358887467795304823513028610206167388280685244434691504319848146901599808786647996683509184427588828139400382438510902773145004447625090957045180474949084135469401274237382368713174824950532007185550981041109642456205128363960149529330066970018724244003591027197955231549814042507990790211450579515121333125543600399202205300400921992088820618812107906446412778506423702067743323592342657293630364443319367940740458918750148286893356497114743123624567924548776703638848060234437872910591587283300816646753019213955108295293111342937047565729660592755995676488214328090338382034717476836178558994542674571940126174855479277081848760061367233517180590889339601060742748445425749463061546041855548492586214005430270811034913624574245489026420887846299078072078558778163242190866424548995125262862998340689486983252515333775721304004055956279621591956607864432943537087846495241551635091817890962279757762765270799285513761407447278741498236438844199730702109448778949964831853224671105978599082820336289619674289574460172754744913040803397662518271455751465993057744527038264890867732298527339878835008658802306656405744266205244156273257259486306321087285959954108467518417863888042292409149559778880616362949474381437292191257046727603185776491762758707245223490662664471116109601987956516432738539932339571397108794031810542847864875129867155089375528628070668943241130641877959468792294733708183707534598151943129424806483163915193141529972586201678940426863909669263420346595971145663666870114923953451380261473141177542273537686901719961468782361058521215462841998824338187428250623865529445067002493960467205116520211132876902584491142646886458491820873096275252353837007112915530497315741104349420482581890773258193817674051993726482949443511508160211838564727330295590525400524054267842895941070585498475825360913732841830043109999805375758804529931773388201787307617836738957971220588657180856451831418897822130901105960087381740925045438984981313722884784568774021263447798934620188761942333016332395895498866085783042863225363132765050786623373931184589378489163550455910563216315385439172717534414828425293417260475620954178578628011220851704633451180528790026567392672732185373299338419629716703906084281752992421240924527984936579397385027997464147784195253237081634612843160871493126482731757116903246211254143219592891216095420912863981693073634992081597619539451344183596380180865155428428387466698944817130167378492632002833853417940159480035275234737853899121104284201274571693141460503177506672099915599675294402376898973780030132019702601999408408141624127341211290702679228880105039889144014787438903513268009247963131292995183670118362166851741578394977095728886594141057122128961631668382346223564552752489229754283912132148089850506230881874171247377512278717664014107609700611731576889697397808247490882701166455158037270169130241436382714139143139581910307210725848531849600157858810552139793439957172453273882267721821826089011126424569417215509958639213499656284867656549345992627614280830591734337544276017217706954566196443919825632232804651803617046615861746821908404107365494651262359932948036787967674175024460939636433494992399698250044187701152607949262595499014934910058489510750368579064128129679209540505058643763529226279534408904327943122811564099771600948270925933201659033880063354605571620508603935443715276547371664006452767036394646857114997518244943508036155822005919639828917617590195993678832768775722067794689550235868141063261350692535579997969826104556072066557926453836358771529090324409378926672240894562989232666042867059083020865064307323086092706940315510400908861737861146437390267910496422172869089645812014709196866719574075328257740031319303340797771240335729708328117608963235280906293147540013786149752170084018048924453871628629879437078850220649221918312985442171600440672238700679620877785773079667313652242397495629741373213886934312314126492889753704039143885309419482347257573575082131606978207304567512718195899225781473501564937985211599122011931363371883734326919038739408347408807808618933203340038541426204002170226306141063001923551993124425668778018414043893394439963983869167397268486193654181411810618819075167369748919184308267699618365672302685469377291549329809811897197039153878223287966118300280792512839331335634990940924556415093874622652543512748088893542130906487834135015640821037683523441090138270451286070156479218749102504734353381687721448426750745753871463284521458122212902353734240316902677533590972323876613760816274421282231500411773337020936800111679697990190022421858798813801841764435076152900725802480307170402365097687138181357746697551568207692685443389043648723545849943231567002636705301393826277933456931889618580181412012720053111091275314376431644162749824419307903515154411439421294786997234316584499437246829858311234089152660612857598109601653642239856216248602646544943503689879727835973736767772051125592414243328249466387751594824925444409016523705191086970598025679157208910941500354652765158681043538391040916653840896903274723365325455967694923146295549124105651865278312731454971286332591688473605432011163061493116475016918710445534321011475396120120896004773365780124932728489881606481183406028910944687145653658948718518409424208587347484835463171912908603814317860773756777453068644061605013095735192705472099740945563174510650837842320262925951027167328549727466495924790414148548553210217426822676971408377230619693716590537308277602624573057300364067856653384426994337762368105603724822977823354276412576336197620415843829828839852459405098019908735761742753559429361810057557891241386414401770922806445215760749804569017127456354966952225000999287897970224374751237313621654840406577030868713810695238829984017407347188054856475453065713963684283022240354656898599930664060960091269039319036709280910083007980660240363566046269789125301444662153425819006907896186578995304114649258911123934108181459728987935206007277010275016419563894530866239385630086407927444028679030029289545811721545445423947705140177756247611355232788267163955534807388456312969542765055114792654830450186752448132092831978502181103305751125566354637557885063588014756446099831052927169315691299201485428237789497218082746772289746014951763477846744758063625456312749744400860152178849679525851680940681025162722447248121887618168858360891825683724780759223960573255696007008927069613620952357776400503851723550296009538089930931489566178139972591031585151709409424722395698391993035772088114220461295598069758038600010821881780726255969237954464005587487030174974032925183584450396308201370117356785744787248989693767173860930847392710996691048551187443557645670979691024965636212925802163168696245703227800809803974199026746667182508699118791697068613859701086516849006005342972127619919214323329853009533653491054503986515684528372360711900479085592205094300231937624874336419808516751228314444833841819439489668253731226198899810576456446573231765980034317820612481415826988713096070736023016539589656841229707879384595327341406003457356639917367022419311487477871792958824246154264844023166085614186325751120172945282818916033819410913872412933453378408275027704707972390260523963532623409192593566453013211458945958240624233653000589449740418110021891583885738832271965965189377713947192926802801644629551711789667932348701330382417546309009417461712839200283288496770484383126800754008108632533687352148379843363963089660590218426332760493798807634930551956064001692059570528918478248715854881758255495324714597563668031074151131007157467685635891322537340364660919897386747672984272731294901975999185664810092953997773131562142326233365430149935894695566017278081002679048338756785592786678280643592018762415561009696789600428159717823946659471634041534828756642462184629028369107649954229453946272014976805576041249515779584502871629595504894793633531596740711722875640566344898372439543369546854861429909874841737190265016910385964146584168431251218000476068432772972715408047617519359424098567894292172304130930434141448246215368997768464728466938635605679182494824826522658652960153191302460667204233169890143085423190404205821085548402438827880451549195534081722040328867053605188972973362966826564288283599268049457686526635634623477684259754313976688953133545689980807507812254916135949586207074841501285466020096992712298205277104913262690525373168942359884589055970865950023085576203146227260193733393793376176704731602482820585861299292425651623552575444792013556273265099078274359753378443125186518918230567887441972638174567603552012081246313491046495766470283212184676153432168773313803959570267194096858401326699263258919143197057184141558486603020384528151117818225452225250695325812876729304252119146206807270897437711972199270467802674436145295844176708939152150257944770573166914526004100958693525746725685498931375214763614234831583737808389245722495137212634296092865111081185729695342506206465049858900797342417015068579089347641137099995044551733967113193610877058642021448523331341294347323738648814943666120388613391623981086798501539413974837452112209408894948790844889633348026589509638632776065225701403339271180317273019607900913068392036413868955390460409150888060204376245243528298906893073007189850389870068206823862226577676969161467227930069631542418397902172143687105842753834967262281736249206484930802122023684710685719409028572180864396282259792870863811924270206997679668611338861571623884951484656211736551812732387780201715298634020344354206858564415840127390045914111543746089088173042812111326296134325315392599285818908520157238831310331294644303243680880039799535520102912956704451175488446048671949182761450091875956040246278049360440012802692992726376814556682216780105812246223308627952811769342967199733608812142917430346663017069380308960235608604360088161061742933982693526115847356486364317584679367865215373194360667217347832779375020070184261105641305058445642178142059872699760765517993381240206965604451235964693391348923764349585871721874057837018544518170986190922320552396195557820641663757921952995929028475072104450157526271810924069051242319017643675954683902113720044764221010918015740053293391429270010975952346408674871816119501838339820225027408303009788456142608047496400579851967987698504720243584984146400043584401976789855026550958985413886566323391719290458158178940811896817298169606302522480419470044936103901548073208755017453460340099286628755586238357537928334607793742194523449994415632632761288909480879081985925114738043577768733017831528304469280659633523276133404089449849492924836887828654712112862546713429585778070518530046056150108952479163208548865055965667388343381756290830256339378256095293628380134117308296514410110500954105844638879024477276168886688003892965519780908971847290164235134191108728799140491305022304360779496736629886895047086622784835935492310402697326643905629054084574062463269079835591562409790351796699709594195168756848504691352886317385010635376414116737935880895233890797062647336874030826252831146976117200170406478492906356235982230276915478332723276459799764770407274427721030678884683987204382292321856698714468688713018074760376661113480490547935827818295807732978995143556937156983882578227187342707041007445110733030348370267523524366127581969186608662207829634951761352488725266602537612155307632486227295623038524016494184378855630378502004106341547830964716714362311960721211189224458222143127543155874315041165103564325858987320328748033075209347624669416314189765858074015325205264367859784865668469581509032752675446671911709704054895423039522273154762967665991400773224856627414327093360971302419126278160524874471608600938429784869762261614574332508083465339520194298567113204582712930335418854597354884112245154468098269378683144846687178541493366874504224153656569151455000827703524049701817133600616573869645445318130962153702289644625300030959678630712237143055938568825397307781373072014066349410149880967581710150507987629115688565699618080141143797834698286502139956359723254285501822315553694895287282137879334688696274911421618120250768823182582947353340557162279200872846366955062157959395813155874991626052227697549951129203698574465401852371779281654072299328889629333586399575118854590131691505671936400191266307794228491434454408504811096830485858385801843942278427153722913584990539134188387439448926598765254439051093205054372167626807363259000366681303925045402978810588471420074707837694610587813776506137335485759505793311313234460363987928634675091383001578914390107444642768649131416325284702774020031987938169824514653689985201328332644322601842490134928833661126627066000332098779664113180525576979667757783010097583433788415876890388558638888422330680648519836922563995590390729587079504430989207587590883442586964604859059017360965506259445138879067116765981048918391442835696418586831055220724265609427326315059430137640327992516841759432595622801623919960989121917527665280022640605628690107372749542709756096236242167176086941892092726016809210416604722461382733904488959485795619117005933932993519619794145821217875280438432264432506820264195282094094998647270851040470362458919897102340921906118862322594084153048984760641309192706848530590722020129390893351093987425437755550922651721906595225497072328080067011721648191384175466812449082047751559590613737513486534165618562116395398927496279770005815500330560887929254558224387486003180695749647918441035658192269606431233486905717096462129895960228515467116935248239485804345044798487079985460285250820959020787589364230903871052243535877007325842601843815349744029016939352212558168461210609452711546820998393548937092903407326036485948878321779766888867697029934635435472413234041359852024103102287140069004820797950319019572858388923194416361527401306116083480054194882883146902628390341907312230635529856796011470390125363788408592884809526405351322252125973542962344820078855030876093345353434528720415497940651545832994064166018313064879785683514033160476930851119638810580510964734268791212421946193733352568639602230119144340607322656006435531130734042751799277654904875085578146189343429744407241983890255832276458472612170164710297090032815078482972399467919089176394388237759104677051870738849227927959395027371343752601728773529510827805707305883539203303396396226736776358979934686759629937482867940132819096511606158925219887574461514008987951108231148408437131846181218899905245987150552945245667081114296031403386843444681995599068280243665349270366777086761496507938039123934894302026674288801468801878871402762020485828479763920165781509617535333002483029816178119712995550375625252007994432380640808004545804655383460683969627737310490822540435281612609634591984872655430932585382391549402055238295920972402705674177865976929916917927244868595158183529336656384857314072397723995416210509308562033225872819873916359358928466766044385450367995320263106129847895506170692155613366414224110371653335827007177970272898036892886737536002546799208070044570810864883093211324038378011295295853418623940698953227951069002404673228565710089077098748685655052629725394132682465613836479347491488446124179608984136211066019403890408092333087139130334842622494451374571671553741257186144683061204786660447538220980136563386121384748009912106592273810787316736730912348404079974469198219214234394160050401275042678556824395357751058412059086146731768259595835360798404921762584849860502228246828204965383067556618224991516440776681219426598335480307043367236190991220716566561195894212343490158122133807618329553662048205594079334613232376571313252115945951945434373686214278801265352017577858035268532667129383279474263223317815648139118912254489729193282418829387917191164654377987150818592923202659191179454349049734162313135140585787203488280836705158336030980349515831032336603190869286106713227616495621532266227726756944996138910941909803626754683252483627061809614272910254034831781378570055736855499673555459234329095545582730465670361829255399717993269211816350195621723279024782292536326327889149239791266934470106242132402602083680434333388117983619467579993356257988893472049922620771214705871228485876060305197624416752930899271120443264073932808598953425897451839476930262492394935204134866816004010564962081159871889690113844194314530260689248005903069518283731730410290505329651965480707906245649795473907229195676345969825644395127419752613248546093808856477655711737553026729080574034673127840774940292704531374161868135305407690421980681721054310079325102920558777898266826796385832458498016282245348428641152929448672640551310185411619701690680667099141349483498332311134321070522270110784095593342033437240970411662179051515130713150516122262043541394243556630205353640857382117244550621899071613245326140191516072922121784926400900491992045170365133817101355960576681575465158148628378020837389263991451657662465582249179588827548592702684390616809537693746930705141155392956735301015721337788125574645022127432644994943411123459939410059456999271870532335924225809319195748800586636788903270568362858347770880755678982220113684715338185661178911285094690884874707510454749576221507310631841643552368396801597090151671120774474085813328362090532074212899103299197084338692677996287145918555784554883860398504326184222740841562633887035201122944112935721575915883090362429290713836547198197321466232243209327644731483547471713699811451353097859074730504627173283422054841309049409599227447335222443239296290226620565433811529711907568122207535151722064716715039138661360319614974556928872080443235423530069943532640813617299936240172847021228030407971470201305511204530900858121299539738364616705407886119111653435662824511261411036505981838985752286966507036719816823676682568609882626440635548191074228299726821888290491783899320632061377330016680377704439614069520656465914304381963680947185165871851334014467958988758050295639698883406002310154683258052253951813217210275580004838038739842569079991753254486137439445951147549889021074149920932537541104519716428501039025463919562248149662936991297546448368386244826394776886012053495898298530255797133823008003926020131748140233883049876445547497474283463005389563456668158849019882938385979514780509074126175779545926796013446789856931887385729347268954455392296265098245270853573988219923980221409803374141776267377843784302140911985646488964358857331975210699027897040463000568679535231782135264081110898028021539457250781769765740581134100482068527915065212685321262721484941479220081241485458890561492045245556088737151498279694716818473747801861504869512502177520509301899256516078121092753950973247482146862349325773587079874123900181461840034540735959436244060888825253275435662385817110126943309781105360762342986952049528582512899472549880403680958178697232207120056459831601551036974838707546712626477199749198187452252993264354122891157115776217373823277652801382726071369370842096246371860368121809089288199084187542245507231884362759384635822335496912858403256749668470374403012117008537205609829281743549002408612716368542655969406869721466979763876256587402810861583816835404955599437418884790918545279771599211166917726382996551675885073622537955093075078178662992503982901367652434511502309667307451739451143597149631989321776334255612991989048605614115804923463213027271072724213468302619691053265789040413579025204934052022087446053075844706360997011840857339845596112845777082636505990166162801373882141742348155220745537052081464721554834268945800615090477139519435456204764805284778336439143030667542091592933056969747852794446661573133258784646891124858564853458485513040638408645036355072278011201141930398025037192972100386367291734142869265168972268082471473850219772862488570009307502305628077728929464140671175991785745672043772625134246567473820094955472993866859229030170387452213501846952929663637333137089314482073853374539546692610988432660741324126392523390521425462826873670960824048655413931118856850820125431156194253694360436518137695010154430607218976006728541125077799344772249584319742865530509099855986006895569944971720265118656971773682461862220900133407847516327740895229820496365606928022475109415255797232922490870173749938699192970117489009261474552409505188976552855266314736673969397022597625007788346346942023938169716873757163031549438186528922693418636242396948183846020992040016381208748699559456674506534615419455868354565423997515602258109473947520455511140377743332429550015485332551264000673121259036595558545113425128283822756804726690070018623211357017957793273761101957596101889933881204068593019478732140970150675629082122624947251010333542873277635120976816936487783751518544998863631869515659635806245544839468673822142168646028518504916510722845841435536169792687755716138325001566268565135778203679012877484085037285572178889802100881796236337324149101611164936058215010022804890667631812323593207985109515307580772696862132917874905757827225041737540013667584318876522144872442745932457394510469352398353989811486206696200345667709360605844183685846872712949840720430977500589342521399875513201532178268066126737272769542684318107051745355685620116983058692171999688555160861040440460710070023692836409197595146994831501223719873894292045824689334814590242504722166645684562635245913235979257712504629578772468914676135105423416968466950196387367976318499935742922329248601540504869316290733585742062525632247188453273418743708754880726874495607909063890785178106188573384080602788618059503471517699813443369473751917884794486754031866423630345227433619422326671735513244229838471170058240127551551617771271658937147322721604487814905172979527522034312117622717789160614586850469887540077550730288662279660610313477541586053563917952390256835352495712680049551481901342723339256434606074427916740864379279332206536161316883916680412886964093622104321478552050823020952993101442433832978805985655077273509096953328535461700417571991131750331526216590233655413756657761569079785866508954833314951790318441989508177792416457802833667065751852534701964121380070238249145036994672195824565241277050638019932091511085668805880170620910922682942703984434046459762128163565834993488394799256738505303587375002566309031136735554401957986829794137407661078257349604070013341955140872700469083782669004018534256629600941022987937859036646862483790744326600090284505643780855286424046188629070767629539130665547631278920716416030235305788287683007904864973336894441074740554967937249756768242942890521055571608749184663630010845014775529501844298536611537228701067009228298826858047336912793399527381408931898529856106061541759433897148934807918946159866494261731802074725964135874031636553636460405204019054329086871242487494223048427686030445929076451543759754570136612070802670671779238920552885678968615853634957849623821837325626130589353227159805473677274933105562750198207976614643726073539667252231222001119148893222316595956587984374612085477838015258807974725237906124425790275255654261906201516931669815787225280229995303902497990904168096026713763105221349924585159467113124212884828068851132278115170781083662506172879448867381269708494434394700394040040399112957115238330680677627742523137679066862906852362074036194623210249192952565412638655643963334745728876164457014307348469545481579895580751757157103698073907291961373979834968208895628769515164705908943421963811840683801535634205066730117632461455944333470686475246204852002681293457919066094655776302337316021465983211304821115764516523413234252423111923422573026247501508366101367979144667575170032064849596438413289503598514228302241911462287403915246978485395411035530120096006319789696821166889645590404480438443375633036212667753885509172307314100885247256914505463643035332074218702567996752910469783965786107909367995470431243184688190907370496352930554932754867311815199158067466975151340888058685113801020010186501779145791760624949391617172725516542093783837590288691003528002046500337136640784621496338342212079744097522296199470151790209400158148205852769796486316850192805758283263499099839811342860769400045354421592202785216487244262979328470419433305631830398614490598460611355713439009868915240811512765295636035042850839480919951228392062927503481077973845201788705858593655033922105964194939511662214373901282828119699278113032101807499026291488927539592815451834637352724025401725534606454007876006238757520585100801553997679674317934822520246607065999917208005706896863478578621887733455229981052205475974251427425343280781886879273380112431609781332150026929211450174407983077488821184217901713134347367098287109348961959067029411438168838169193889388265982043787744773921494451167031355675538245763848097966082065739612512223199464040002095737306737557642862963638081479429344901721394154418451272305141824593945716498208345764648201203325561467287223138696650010241922589313576849565730687442198000864938090482831617296745790228259566792835928358327506202324604880629120621750115159281936836417849423187663502680940240105487382382447229167158127821792930429140526653977711247533430152082181264138014381048567143794160748654922884537413080480738141068245623708641311781328285364359899277109032498064266812347324708560219544878816815283491562226709201034110806032449365697595187873136295215892636411317759626355195345504838098896374815520225677324868132818497305088873730656548964468630168441944083014301566012821457093168882917708929248954366404270735384237060104683013442882272923422005185193266446845456146136103134365410369462169733885680682080277038251987396257014851060409065560606482503231959149505045262911058006394916747235224058672229463101198452519666920210736705490664329835963007162697252374238724535134355768839422608163423709496884974020684106033143425228614378064516724355576596387102090845292897344794996193303108701712970810094520612774064926676450723250028592079954460751988260771873279522751293487977907906633810204757649970281950411005615120727575981712133003237110318011959627601066978549026091348735652183137357102354597076283926380841848776964105967283119683761147270054935934984603905363141137237095258838257480794498674245663604070501226779162609511570142083915174167407307498716895571945888688807029245020777790117775612781289877442213814138736595472301218314330508808783098604189609672738538900483117602551486954032490713754547365848567105947743864372396148350211034109733946168080097283454930276129816238976118284190110485644485292257550150909832369670409981344663426852510481442707178678005924215183996690251421651975967103325754515255083020357121047894933008474705581123575333626739347178024334502409391574146330792677184476319830407539303290010993262508988665034092063153884534980098858811879895986874198311013319228649384014504369990233172266800854549621853807933901045021688142932757174998740507338335511129243424713833262594738915288253891737786099389707718710212897032159038933753450410016882739880995601911979947499555470865672488246606268432507945216185936945125172357233143925554520426276087821930570331049211683795107659323814079151153150734589560020486745114629563888098614898204882075317121807957904488294779811415157738892372392300774528799740130870255342778393244392709343312827123681077475642127032598538490289259351160614447961245522219072277610307461721564669796559153265629038869662412267755306381175148656486034799449240338289606529923060153048124551830573300479676781568074338739770088332536997780678138273037561387412635671392448555991275573984944147253422310017115385703926867087952979396697550371171732531281408435323001667618412681269533393248506942898500723850796599038546488512613807285472842784167729076089450386891635135811077996349369260193437434789449398121950808080660914977620189169660006187183585137508961460595545132688904856609264406578562138574748882987523661999119447257148825522868607521420309289613078928155200686585470823149604493092461334501152145061515098936193427158287454136183830881426184420316169723233954008793763979349388784466551518457837934290337311615776386602205470803423262899427674664468707878238908128207742536423163248198032966896829549909234308183841389085854778472288770579544223459240888962269270234579724926345547585106884802702176633379386432497049567151705840847609963408939184733084286114511301596432014033607106931722009985230287733514035959046549143631159498108777287388490763534631195830877434854446581166292336718416370593484258628068172677705587106312552309423290656894197545934987742927731558512168658272992121394609082176237667605271566029966648585334707640708705819751638207778243102711824818322291095976257974565984353274216309477627005227359760866764875412968151431224824116540351911043574490801510809278179413126481661504123391868752926699266620958823765199327911008042129247133388966370840260734917309844267276840344068682409600922092581229595152247306140979145671365614241131603407609094355231812294037450208962785209472083728780287793896898066628051609738038995329158810749169340420689831649391638482949802691251911359602330194887187490582045774054452818265100390957319663703102809370049795143899050468420869548594940688682413965631538681020285197420935365718424815124464292447610163288097876502476792721117914965313197562238619434544630878129304986425598771633391492883534775885333714169236827229842819699114633659475231683659934297258116999510889125856554257293990520660982152758758483796162939651865936344171547423772996745290219022866555064900489520819673815048658763953242644361911829928056127498568848359707751155803678343890826294139976230241024009687916351221919563332794561842184230353822571432309518311645563259854557057918585253195304028216573295076949499838760055077154165600158023996049026797748612525679696964690471291836226689170815480566434695127206898537028831174082680093394790770745758978638288229921131541115740654639693214552806505954530466926338911946459488515985164524263958377646498368983437069747314590294506138593364592032300641524855399480337791858649062769608037683676825058185854735848321937460253572754884580451506237937040176862149987944920967094195820465152307306938429933432140408731406174503475049769751352118353912633102872026873367410695847127163696430533008731930575297782503450880181255221704132496721821592109970331349098322427723033665933490684369284522001129585947169738886757359167305592342369088051972851737432260550008297475504070330424428221340267774655182089168244937169390087739093880411779576471448433005041481327602730252373922753832523370592721317815553831359687038966591732047503986433789191379251342850790151959294826592342782451425726809358106394439691123260679136348811212370694543253564263569156021553019346431494181690352386270526351454854360259179510881197230338337995038672627381243724994692425741909400089126570865247065470115932927455674861322334864083650873180862782016125548118599066750676617514093216032535060028742911755724857508521224058346301356793388004346375241261602700184903539302920222366940797915591204581444009909593779314209909968805811564174111263440658879840251961419705183336011012774733974705837220402236029885876784718236475635253160811350971974685787897836492508142329916541929966197853389750924080514440256897726969096627291395176411998746348294985553411362985752313923400921820551384683209449762859519233714286652695967337987750405271635571560752513801633751517927647182629666406722269752758144268442626641764234455370447451600233109668596662943911180262969551003350805618811791141337614731746814198566026716320699314441478055144740501240838939936607275805112459775654784445774928815316790855473207171281478680912226388524603666038754827904478315871050331686921489048160988701540582533982194528570917329034202041567988644250002539553976842529162201070067217037609364604411376508389379674660311783689418656753907374355723411907080229873750257547711053318030011534828596430981309303576100405331263136101053076688192449212074114369626997675538562688030321946567781971532208910267677611551928773813066263847015809078054038660507067347205927213596730229897358596203312766876772648661206764848825583132999252553313211524801043395122309283857053345508412194530804329673832675464635009489114062068872764437677618030301085829079830727047249603206487988050684364414948670638531002686911120704650153438253825543994939081521657093729491203752960408189374391958061588696618033084565106216564466793038560506273290898038717199034298445861203435795053643823185985050859867899186590127507818298909211557282951537506521959947311834762389157570468507376336559262585244463518176576310158583041134117381560668675729454813096514809659045062114843087192637429556297014016506341796752935699558300458840390783117997531907083098685653356238637068736778957954413689359336923121971334941898020611039148597130153963405442592832556330146036701846139369152357327959143939823510521521792941165755719132352229929963261977275963596181549346831302587830434018549288477781246877619891388381962141894159990646565281712915255925844010187669317992009002915195179747125687778528986875438779543374134567652144961687818403601625233705425728784311486294850412018432316810990458780797642231661398289573339242724792334144522935096904625107852779857054924979897541768889352285109933205313149396378977879541763830128887889522557951676587941013291392187543678800430593605270201513694338417725728431278223288946655380530697059954922439925108771223982894086358524147950361623007906691048750138740125496682228367072864809451590585845456910801544422043764044771935245381345858630218742994108943353694221837264071931225113963939104601504697325664436161915637716182214964662526513920541656829361999173968804830700855903409569524467803748219345962938666068657440689307043757445521937792240362364844621224388694557087639627176736728490656826801862021112209723640552437276492447985166557929330551501817963820413461275552715627772797619007762122786714811703267665741121233583431674384122957698072793844364904746925402118657263857735943920233743489858879925641096590410220983118456383908044121115650482856483083264251148758365145790170326291039926784494700833108085674214581749090436510292738102765375718653179127268624900797633972318054666485558061702746080813714301408736636570830538547085312381069205367582177957977444152108959343887001962238499368470222287383251086644029936738443755531737478847642041146523851712708031966285260294348528213484996123606859210430015004579282346699660054641790672896738927170062257139162680261097576833763445144377879323128973586999314357934891068397704039798071252478626935879137022629950272111369156422078672627182689117546041485384867970735806147483533511536320110858995044537021741470146291073893902745758714523341879905316272390383722333420919490106729250413220062649735839310053010444719646815214814487264416858947163918391724200188594962046715722181707033306321399913230749652254077089580023202811680489455094968100971628090097850948337273794246577402614162962282883412885031213346712516073096138115081308975540157875329161665678265054320855627835060549422479352928405096163731947524713894243097849445017698014373596715062771479589068110365551801819337157989132249354614163784584312353375191650544593905755524748303922326138894588934713436579261725640141734638427501708503677181135237664203925263874547020233377656102827347256331845144939723111607207757701073854040559286606517387016457896576583334397408123742700475019979143081078714114905497972815892618488996488079962622774699103384268996218889698191169244116222872548819301791659151020286578257305532190181256692120429464397110725651791072723537671657338951559159016141418186660703537009178754792203922838088926981497425411908432011482018678016395548241925076531698371943873439999935844782918186187737688411533700834680267371017202335978280397548168491104290774803991960011917129772808739061823985022359974761330726375120429755409602607918116418102414424451430275491797664242296053614676550298440195886302650120327271214966589530257282890266371890138497783885640799984986487090358565274133830779713138253035951814743986152664502307033670047968467109393559986907910345279620348517837324213491328494552706878581690719634466774242600068068638224273713665931006101135333882334339540011574895188489612182491705193213408747565422918563906591295409961653291322167100676893713538499493597894735980292978701148363595699609957406800768484251708094905657378805215621554078771613938361826839843752954571377312690338048776964437873484338931522966603670719843471587910467483998394405645227227480452896549192447006615236242304150325963273872947612373840922116206939015044853018214597141429191605255438823311704551220327675970859378258746240088269080603710773934998731601192520970418469536576803828240147108090152315583623269952020085438974552506633259194565783528443522301536758213564897362797944098584851853934049894006666528114268710056905049192100419178559315107086891346813618298255638808060974533210000367555260732776336634335014438644917587021734483261677732412696947161065658643226317382177619303445820843489792726587179085777604610059188022399124289288134931546006417852715972410498814397640341496698351499577712522394648072512668676696155261876224933547147747492191181194834070128996094344318503909443216773996016078446585143029796190498899577977029299001178903418190930780678642250986544374297646958620237191900736712660866220399323494739472641193403629884427177868051630776249319861263036965978803797645252468904576102758212941854903469890533240908730094267590163917226224932123374028697061020794898791199827003319509783705191635645854452441878490978832666778614363742034697058580271455504039633511281545574908239193902926495939312089922303829965300338460834160959407575884294663024051133529107574054211841901059299463164546453636396903656590024495025331210098272666867913054979203018342892902529705297337531107739145589896942138167411627430807263120130493499176994795582306429792826349196598917480009259338523538329874425259565673268370888451577700039626158405629870360208411865193163249676753145691484570934245508346719614776296022360171910422288811206901214968654681707288124261233795192256802398701048266853290607553293324567688139456484727717938045485820665874325936546638484715247914444985983692016904717680993085093855318973339601550608732202967689091560125041684102871164820860453755008498255371067953029597016419118791063699879141375058504995160492310438912683433159304089177473676401011713853587649462514541903947755428185839327094235601513521714113101835247846261717615749596659851128099210460842833894495585123851367367555752216348045911663125971110312603478384502493090631819939846552380355249872551298412718354279682400105016816805418520547903628609527078117357437313313889320281940283541323145166200811717056137313244410825514514790871225323263474941587167321872872059877828971718231229201574041229793097359273580241442522048843530117374048724749181009106840248330698244482642016215073076118604772587443636945934021303029248145113242005113130522482914131700836505479782061589732306189487963651025756154732947984867318648795346776345750065295531245981873584510924956534939491260044342242565768343808943280891101658502009428436891005993825223008774334519808283496857671204138130896472909764427383809802295734420101491176817060627267580385434073976187863727470429100228372880963236629220604639037008240783881736831264545747144033323914024306046168425567092556764068189511095637667194499127487147339820631477121376449180048047608795267717292643591408267110975085792111130564982447820920578010751105510149826724788984564983625232092114422645062444870807065294151313623439241943764784164224783408517503278218677775034879636747303349612125631796767966486250863906048805491330441925191699681840522369606593344037377427784903194851776173776578355308874042252599164766027560815345475056806318856988703934989227792555264285692555473270371549089534160768495284119511234681773147927783298083822378639805137010174838241753380769663528062291644534076708236853122173846991457187545471746084897174748714223255280494782459638906236389659800091789552825861358073041199535431496672856847924115710688092173824100660084947819680827990667185238591606211198253678144918584233594905824918880541428676781057041101667294158181148748548553821289060828577767518477391986485223953728420913170015812615842405548676763717999979490559355997936799752446531407813196222294995626718053964839727557259301151711000464653497370913481337320596441197990652795574084694688090396192302755698302377425220079228503208314681921081164179810632473355301300323491224502562313615087025565300341981025074576733088204520351372755446570025478084432218218829881916481020368415186981941750051864696406046384781957830497203004051642943892737281987444778843505159005073696590860426236328007396976193747844103900711750861504813985538590404960250521492470657547751508268734783917583796354789845109880142262088351468982009707107046839167479387926967067760134109671199820422228395124422508748491136862835625123898666483084794568290171622499488392034076145319839995581868637478147415322428734868501173940470924446338254036267827078073827094418679985541859278294215262427123806014111765958145672428539024046521540519462694758019682702705909982358558374990698285593188606946838068370793889739819732687132539917736577127858715494701630140245370538860142229613771962907781136600547441384488446172163664225214956559372090990809257474292456330378770174025083532989460331313505032043619409488573991046851234358208989386404284898815714371974226462082191911680521734813857778738173732746695986261820097080462966588740204578594545467736945124216804129988626813027070540338149845125657828169352003346253195622305967128758914337130292092240821191698673068976062250053001512105932223830407779478018165417911586235409979800234710641570351025304891027673125931683108715687876569264115247290494809014302048298677479621369971096422663436256403302363142656531175973903567469162776280785707838353032702647129778654917733404881618483904754550713883751214300532513647597354884671837161408721458519364064628370960224436490628955787576679329125661198479644682551333528634110221363186945158701093144331441009587354890063607462750056168888844416910692814603111051620799771849936183735598298066329447782307016713100138906066169949500657084289715105158345756433040570977279172964562627455865068875319835307778625947524365207144309177721625832416335534570137062108005955989166704666662105573365368793759813864297447962724246501293103907020115488271276425031122602221608639892060955616195354211169172538921152675316648725760232207111690396348258608658319826647624904729885137582729993862489090979170769296503052659176226838873373095868338580620220714703718956532444381047270891767071041501784401458834943633867808012179651934517245488983442234350399842252061738109758700267406249843515059679604529473623539640530531333285675276226534110192830246811129804270243167065547105687061868744138224256662536527194633433273363795152503637005473075636490594554798775069980286563718235938821474953230445582459483698275633262040403700248186882298329344055198626405827235886391683314600059811487196570438191378115204200429039851331324998383059034881483074581468548436949411950312321993799827595319312429941855381300321080078885370316129588898056697933332777145748044089330468805095251648465670053672928447952369638550347072397613543840799779513295142151613772460575566642296270402311154562426202792517423339258114135682115375894997709389311127847035362979841289449822250063682401433774893587187404515711905316743722736356377155619472454273842636282548844359625677787560533647830012277101493380567078700492348677096515784966697452942076367008336000055446084389287381710680913257387354917224183645300131081706300172889535757324013807410431414878836122449002918726256859478835460172834162794031219887873771523232795878845238882684133867752184199204030513914035838802456426628527743769444571624568490715213862127769713290722922833188612132321905058126298082548105825189618042934481913744534873648167386318913552506725734396238858082557775737311135963516930197662491335395921554288166563783206626373338057705954590907217699932160693620952863859162985975266292157081112127458922097425219431454169111182089160871692740542543112395177385316992974066916448358840313581358749161760347708021451903544343945666645988942406218571058516406128911205455517052529945875787474471290932718584721964235028927594101657797285047616737536435416334021431243097557637614831355738718450578422216104359211130070620634122891052289702202030330765288732139149654934498312391539066393987870375851106041454341754213037497432733105966137581585112989014942271554007686592683513033206478800149604532349873171115843511309563328415065914475135367688607174214027208903983346516388597733486392904665515468973744387490290326696422237443766861971518836665744116613540424774985102843980734432257715158107453344826408087863623023670317340435297559880770835889112056642284188566628238764789451943353362664631189313079312054759838195356094392189427708060043558986985727106873454428022794699452206018482688342688973940574735725547382262826368662220126516625264092001693160247450163207910967402935343733791707436184879499274793028333721337929109287525638329683728181251560073000273565820074418165321698131286140859944995295057443062953027903611230299950592207393790587998633423248344412009463292091648372027022414557554269204898032864105625572899600763083904567674377562871075475580353678631721298045571862688510834346408906338991994578394436959173766302811648341828495215537770856502373513157955279106141778569262574653038093348518342763927357309131339158620287600714148536323398728842361106683278242225633332302236233547405721920564391879803286125606450483437884719988348211446852141998707557765431758764916322236785983087875280448069564657142103615348647960820078109069179953415369549256110583654299922775824433190141275198152708897147541512441804166114612566383311730551587580518101379012411381040224352713288849350959872420365877155379581870464416603418446453251240046364162893050273490603377853687259774238699733391168665408886503851460872640933391663846503515548573435319215634150231838826720257349642527221561894680129085354135946819731440013659259115522041719523438183073716577454930186453299511680503064310195024637624291132391536611211929013879041573648719179819913006763892476984644437537083654358826752857961404820876109903682537177944131279958556384358945931819444664514551112553696616785496163511374818877970077790572489919871220120650623645051894587110701375370835022906319294801401842506535303157127023287939018072651654365306657039148048140930072482766032370012096675657929986066694733798853751871697204016011505046965424346425353019937995004827731714507477248709942719714726882069867844657600174726896694268088241251348531349240245629947216092462495880996747829009535749938347474412582949987603065178437924858359721438947104194003137038897510369964323397445390035593231046466132646182565586948840270506209260060720360920169789013140741416804726394031955733741366201284597788072308877428281682006986949734794774413578762030718013341329086693509760489240091186329827244499426954284678229068013334906331275544176977167159273491735666185982582785262758762250603867232325050337941719454591547944233398988795533808231530412711158333473726693408364678937877665475267322217578984288151244762200821704381406695106869187004554048546030428607337316347923673925665038329398646840417225402733283957692854153703102032918504792207854658132063657430661948960018386722058360987202232674299082891895158505150107542154678549589878557219911970399589593872894763274670060537287468468023326410012433157084725101151895620053374031681083934005506058648489485199040078420527043401413459621171348399276527729558084371047948308530885873815712478474787631765689621539322465216629594975174965736290962845146526539298125411401865691545911763074997540437574149160950567628837879982594812542583344131571414205183181617668935760877710335172665517305936696488978077306025617080272507438921322155801151190203465575040223458856193615354483674201770023606482249891862552836096773976006074334691460547271222078704301171379913287404496519628782688816369776273264021609034895114611827211465878486221355247093459927480560441945590858780431683141481571753936720132129112466384310642559044993655251913091391985047573626432551527582101749252218875464037693802030605337916014573779330912602009401564990599627237830382995675629448380013369371793281508628170533158945860211352983529059992774490661860595531209941824224606991530704219536805016054724803553292520109406034572124212995031949562777228323643174319941245830487972140419737365543181769829728296964062926269654740724772963071114824907214460157995045735444149159075515535327332915693289813070663464260600503485121888057120567745034481432310635440706464873024054028239497684945734974574879906681043241390769532513621248697758766657173944406446995139047964291070725228398964536282440688441609005063313018174337423995852898868083513106817046635951018720420865924689064641244950136073654383771141808934228804972294254187657422058845211977614733850132121295081568551664455827679677292474933322027786220734958971135675731763065972769723621370688594498852600742860444428337253289210370503196565508556703568595706279443768651964250972002100270123485310727282268500837221348042753542988691673220311929065724187173914735889481188591345588769348887412847447042048944020162961084839872427534576646900747356789254176090087850028838585085626578297253058329290869416148002391114165323159203867250082929648927167083925718224790830534571560810271312438387222681501758957253451198098641496221445851130793562404210322117953892999944281750906748353040194516479374284059166994766242866255923074374987374899338788078074233502165844333421193989833759679207832692480258888602831415464208369312843866124087086952825004372393868164074316994115220749450563588366427229636465018086920283001550090435742866698547577504069172980606043185143164830104830502658614489086334576598020931258393820599985370975107478066871337843335617184555914534438510703198564467481324389508803409248580444195068165674877791644699722114121201720978813671636034068824578178268287007996570437616807548593319584143555224224005310608704804534716664536528345635891846594567153126920105046283076548473850123298429425820606382477934197472902841418925418272119694943233327782526221120701762706285703505610441331833896614866707998176160117378924129999983476294136544226491463698087851555020243978529990368138611697972138885272095872178279869967125137691553647233846676886002855698969577645365351062269837847503857071835429491864261546651364039027298278522111834959883983588511066511851924022474761500172450018832106289256727121999236589341452032064591267425498888823421020272105095082579252850591579994336671922425981126713158615270073741333424143496107301025503529224986261957921234598476267000732699768558942119912242048094654326649215915071654658636287773720902483723278422308698797335706063953416389412204733468884106546587849706856479566186523930779882132192005997549322193691001717799866151687094597509514031487494063490256701087947145227283731749095739944640774073503227287058260008745204659452245686503175943352367703731702390076776094234321891609118193988522291373402056614047183990797843047337256685357650860531905033084178937626345462863736867406220756309876123745667534955245166979922852433811599813051265281963876954960716093518498007123200550484330396393431657465902757922340021344901554536375528838371429002059234092850207903531803811218177776088952910767030944631635410843608034949559614889508471198338998334245783749166300847941559527366752097273179794781559334308091676118445771128772796025270300005897332148186650171004950673579040303130845009016463925388709277128242238004233576787303348945722979236471972235571147872210543285843568450815356764155771843552871579796120133138760227442551158057183426074479090509231947795130635904070134321693435378698757986185234038895712253621683162324697714385025240070385982866031439534300413805458757580495840845272120790787138201686592926229071773605097672980028378152133208077859442431690341271764166579825840948381281713900163599655161403886464989284867869447455501967329202184989568074245013289688524817734526006242086266780057076307263126818942668329646764282605531070773707909143197104713172177610867493225632251192145044442460743720125823717330391708468496954330317651625529657914099066445199944616366828118725938061727315151081367232941715603085141832201694126435351221940874258023419170175575183202552586282444966418690911491731563370946891575240527774011305772088830808237862238405628864290368453533629810455992762980435518198233763384564445625003418073750792625798681962803364858375317635394162943678386447265001697254162349872291227587839002674749393620626278026904780265043503773538754374435347520871909430375083153452434221046925856865455815068506146137582037250401802670659983811444005361866607659334110609908797639549369630015709169751932667182043620652438548483890268781246508508729290782589056582758263390728402685587158760667522709457324382909975385052886197306589138838674269582187154448166076733054263048529022061552982695240130862681756294493190304959943327030959227535664288401824629568022018015992418104400467103150276242360103834466745637307241068860175362881811315803390470711753438222339862249994983288710301359894637314576694158648304090449463175250449667615735518379921334823397269336628100428730677957652021236840846018862968318026653591924883199618385825977246000242461731476813155836530195817670395042955112849406499809522004229137674228965395254678303115978358299108593761903369140505474845374609247780886870192599026997611514004586704748099913685499425207195584040042304174941594367290509636227438487374578331870497765681062607903051559837331973951620407529542578691862762442721459291219985466206193188566364511128939662851825605067754792847265980290625588907572838928516376226086870697720735941519994328497861321335806011953204020340863859637482783613518830771233692390736491572814817890414779956413522253312221701572031310962202453889497133706195135951670293008113607005503957405606204611687794937019520140917337076392560897605156521327285209114751381145059196543501918579462573610855039247724818435529932824197534309393954547117999109792010925101093145741582461167306526997655673907682767999063962204060159832985659023922078476248174835856696495562769253766103960667529967750954338325238196529924942889508553344237442002746845494409514264004551851818250370580731380660905825483606266188691456047690260151062154869810650870048729199908841156050924879550385158222094549391554808021154663778784699357509533747539323143209238324388452640085650318437155039989443953913747749670770836267941022382348428262356450361735871815998442430109472100127447501098949070386600583373271055526857321924537382620749894861706876280493520045731101437633934464679616204429978221566147661286221111083033266787417588340331062395770176800898822765496792706069471163859570818523428458328050898532255773854100173008151752115658777423725465011322942088939989748759220963650796489055957189571346825993305133678576889294306478834027374149382091396410476890766720132090672263211714247578790065548473652867934299088498872551632772955173384679157469194808071519460993835074167074627915280736687699097549181687182122643809114548392833474497901185608510542600491932381701470332974449183594416709510069278577244376750088690396369707988607426337485926565879799308580887174661896468490101688720403750849418213918639473406217466648492467011471043079994540487827591825977117409226639579767987529651399291489725362984528019738867538390491612310950446771571279871765315108303783768730842417594961193008364592459078628870517331420355606131700781860077900081253601671484835015003984693536194654257460921144630499117676833630087818231090360904534478575004884386306870256811579211179020732003210395250244336317829588359808711929841212505955891341918269609645831888512956068740939741825401584651977224108939635861277710188790190331422399223997848238827283557252404238688036089805052557054682901540931779346848154825025256563692173816629120902694004163012132996925858984807962425936387447334516798889227910182845221156730634683596042674549438831364528681114279695615343189651086877801342810976822101918031446140697070791733651096635961638356612899381280668049399727708341875727629413017545864940693272261743911493682265347256298526151892390748322368590619671237085325719736993343863159015723093317194634521905447546515585915857954595986608731059189045544839443785343000891933620420484386793156034157418024721414821898080136686711169196357291588323160278326668620893813575976565880290589665867942182601453935759257595514922530587571481034410466990273337307119265545173148908194318250946436745910056635100851951963154328021434606423897951594510970366812502970484662128819313952734080810617595583431050707612906676143670836831020750138990410146290594271804889634397855431176109457829050836250274910340934851607795489848518100067767346012281306219988480702913426984569476814607109642977086309976466690376184649551078528630969031785131440296920943595610740118167400803208667129760030225265139339303698456667395935258561946986261881150510918733914816925270256586565813219403304409809345436992002882397393198467219451347308130013194373217320116980638031561872880848900464155176277443345307143104943952306817952369930696008361039026444263292705844268533612017025687928393059416328045486458661476754582537517766745389621581120729662774694354024757550917088141670647797839369590963491456810442263003409886780767297674220416629207542234578131722559514364874936991500511766813445189636860540456649664566317448314191254454372269002067588670450208683430299123588971120386600565538448978656821675395699060691999755561055078447368845098284242823245084914039148740636437250366898092318714262560421400854644104414912220257193323137468930964026177563042241581807251545592898036064330334959432561078084530955780648047995284540493075584569297255231656772550388985878475615112654000362307430748498970428387486408702825503749682178434129583160816578137573487229275204135231726138725270306837965177061476206834658326977821679342140986629449653874602281554635805792197657581929444493400913884070166124432301185769683198685195096782449251973699749771489990104417715929459525627795064586590259686141470496662161439142967898001269236971385238886880881928907316902248184815779539284336543686093652521877001767815758022461323561859716337049129023993659376990046794039782869210219966485747674276563872584211496650711855463405122037384082598090088267752965134051172155680895012493279448746332952276698294838675123506149230592589420084973641854871977039146200320946542758451472480904848555349555773731617336973997815512581731966817560599333370520977448630667860965801154412496334522700418387601335637377358579387927164110452226580187185551444750748276940133391052821754316831535873143639578682674550063195732557389831002102175940291948291625280199203994839226004035244278822498756722241929848799916095881679860264352536577601609091429930853772731684477154514611427568579772546854208962240095605847609156734628800655605502964415997171318756261416330211037981934078265164694096466151957029265422621874797069000583274637795247685460457101351624124847967609554521243090039144338676280935755464929880967033960335401985095759447312718191316825429931813613282070738417931024159378675968693881448432515443622019411770054496798931572518198207007631681403967369560519645241638545948851546113998017137027242242428417091782172704468339892713117690950408946633752412778964325515515492957245108953069411076904871546106289987609593265059713516984580661296623069606546694171532669398580022368753643128215700630826902355104634332555184005882667798294749454883633488661890238640987086269687620522554758609643010533638234123079337413178522306717690223159844605732742099915436468461067302201403150699379021627571301303374232711988006076073687284588566487627523206397910718362078349815648678193142998778412356956176102077728611066962852587786340314238321987667862345406848305060642971551270032191593459949686506594055385602598745578686056744350114073990396259324615529362992564845018249802382720819702373171335307589726096455896993395803871802973145744752394303627199293437181128730841151445632191480007207415486993125961738634979289847916334487965070970487364456425088943822413294397989955951073498309776144754395797236727983644114027483161402007615079153169577136228565582578290982799326802693367048043581950077574263307476361400125233662765854844934845868106581779268499039245383587215917296062158625358763762323907820432057609596974181369376452236213412095723355188527670564268809345667066185361397612038247150764480593900792525290971979300618480748059891821842268255171734865232939787621157593706879836133177298634544752047253648666549626095370549264418557518520548677538370921670635579674831004570960489203835818961857499905640510702934188041652413879391854927773731311833583839749645752599142987684432629172845768873601689410646006045147525339502189737714935202270648565901197074542570117970506509611913812813617079550892678837324211612063289786008587330536879272415596528116414767425446237422857158676959950462438297705803823999825527965600969408847505702766875459371162026807620691902770982138878968892918006817898330405705835883643215783327011424138042493874850883708962833456202544889876295927671864505426911224495021829116627748529213087135532560981379083151681597315766943972463280358481561204008212282727337490423125486262289124478805035133623622393046464436484880016671133934169587725414865276051165909315332504246505084541869647232628510152126025873114971578347747253287011935989000526670500038590654341192266926489718993300690650527139223736023841872118331041858782610278467340587094752036050210334468688252041054077727211420403621023486256762708266169028419506223621746157529769645150699462057948869827726266513511840758106131703405749711802241891844045560447167660528414631898680090822601379796478308408934066689200615338385548794397893291301852696722858805095537764969936145650242560042914037894072833478675578002783535373860075701152844187917298920362125426643772903238478874767618345152204635982028182712439375699769329045665651085644595400684000777893327156707015390499674734520551357195921383452485965644848525677932084950678641613797872404299117771874661243096340407557420295592869569224311997837055751170505735168238842292213415147586233229606690625733129669059064372928925570931483958787634701341096110354750565313613312464194129371577926678476470230009129762655784104040477517467272814942684062391098108829124977714717920499084390152060246024401299071604809380218770697478087453674836435352177127027778655550540596572162475749581823775886096272418421723883749414991266739339741448112611446862544274808916260341319358453670284676777452213691395638626271115608998060929914011666440398373614152649733361130472499422586305994452697330411185504992518698526787189132480310539395586325699799726318772617286680272787563386896630694147634511604730846576080569100391427731158134667194242066604590277711446187990177492837263572547728406730450247700500257482107848132999438098131393783659628808417384891078836359112991534274774945461376959672731715815188268591655406024279484399698268584600947544373636532297017359882094209097044829379162246986056495237495385215926361476873147595754801807155437304980698265871842922782840517253039172890446398868508358190577995883050884528344535913361437747465500714990845813330232855615555062610266846609682474105664602148060978336140102494359672850821469414159908262079691841759978539106029400756765513102478036955417000412857386693352150118744034647940500321257020675785906030696570703511953838334918540915618453493831054981794908238404587917694735249772201219354200088108183548123680466394569907749321738112939508833315350524782381916268042493854598332026450026740636696995768787148689937934182567498386335236540915821941665000762267168012682213464924362248327042178484455040118960059594707221714476128408954636523040467936364489660896018079114476046208704162078401496173655507750965384447748078953627551111199173634493849182279943796024268909730612650850395540400427422036033909258555807365419173102043512439884062649291664567427970516605920756564909559782261451555584715034983941515319669223792150550971214453222057718078491699393914445449367885491588754393169112893925476077208797153759834981810278095648756987064340423901128742175860924015002528992958578997937023129606018565173832907329212464867044337987442163603229695337218788433235379128411249831603434824341796608622258394675638412952753480289286579202866054927639516012075688961483023962512462331557117993523226310108282525869491429296268857610618656503018357232973174804750100955145369853255767806862720837881621657102504461905215511178731457720549660903846720301114148444177570035946440728719456121203755480762426167134105613827812645063313457855894883116504526073393689617787038035491190481715409591413230778292242410884747347682941326385916078263421757957870732054500337401997298881748195133085716857353604750744323381400470650522185875195955207260963120363751775019677321527517246918047374521572983781727586565100329188565448810140495206845575579910274895430696379768244396927393378424930136169703233050044740798984312593569584911544637651726477652215436345488225822977682149714884789526896612072346160591673770000261490743757503439605838470919600006279312235959054591662403052207165460513436978792886203772782729484792823389128742901591233323191362913654405268000602624123448475757291749480940599806187967901454105957120303175992240255200892866435823424609369289220995192129914019982933375180579456452761369288413339219377494577128937290866725008741418458995454169833989314432990304208534348032905297425746808194282381047069578530902469458178399497890275824899510518040695455205419196655338009799067884287004495153213792199647135846386688108070849871056184363766296194736574785585091669136990612832907015173178661971079803217595946523514411455918894783556778695504463041226389400128100717121680917191288275812278044763250725478047935427528713966228525815225071943159407887037113752246686996678781713940573937759010395002280780575883044931906644659308232050139818245739585628387826800011695719574098871119015325439152596365337764158877633123140967860201648196970168799105214987636388067904159304196780073298778054957791857218172474054193111367169982797936923183006180389988543517072869612702189287682568273825981708062587869033767386353086871881336461205805628542859395802081900600905309995824161468986215174298490668261081527066396533151297705483703137434691646475581709810526867247153203497818158451020922768492358713443956090098053673910001476385178060762893011649166910910242130814503447356031889456904682447943249077614650705461603138408727410085067099455739252158996044572663876098943023427903998754381912229296374647494460086014882217580227167644590048278692581841694425271640165091956848565164313387293477195538307272475957446438398350968698842838560760472049616748425133458475947664508439368688615754412253971081719394424315665096139714990581404377548916087252652183844970324722533215275390298471011922238805990932857960185439343532787684244554225798863230373003767239808965783283513392673218509309262564751163186399138114674122918157050544444028693816710080996676650809320851984165575335636646749597290888208825945286281085571847825023597534359977956904571678624393856217612646296653802877980031964646431359363767382271984338551244655723986843302404035584646731306317835981496688946011159461400571905449253348735875301463431795467555949001259417798480131049785629797452461292781728694914090789255129205154238381511299792819116955577820058835258418744938479607372790929809831319982406944931383824748952804174512190697946109103249240937219675861172494379819462052724544816084644855346813241016655477486256861933179786605958480824074237456776891019450367709589605124677281271391689552863712013900483443205945073992391713294221220712469695604723614976358880008516348238355301228218661639817683953784054967179864278730019526809445777749563865192048723185815529126557273193623870369064351657328164876868359064982848366199063721252812469769058502418115569762235618711957585646533541257813104984363119081938578220065309857497500438560480825266038066054593042750919384474431823542922388002504499145940520904828554265099263605352341557305451542542848006051111682848380737237973940140940393055215347567924762308177257194274107037712144021436533796909556555009673284981971288911753953107840389985716708859774439036391360966442996360820296009925646774704718838006750579069334862611935261095480999336973407231500782995767219539666045888689683341578758826447656929548621092438340017050933516935947311234017329171207874664624930081950239814694789289366733759702712088428658104644600091262426583159316293267873856577089870402882149932137338653011294439789626757276989374325788329130238215783484222068630214539093332473539977060644033387279491400205393733157843382903989267923766934477549449629017582091448149966635303713360562009077222162586459780544175931844489097112355099295727651441166049123601949101220098661623168010871596372925349879123347332265013157507611387773319534058650807415100316435962860958502935773161562233832368152600120440491482076632183723451687212124932034811992624143338393578628116735888897902731066310261636979370709218125206385522782394441282904318552912907906793907865023390193533455668553339963051478978544477301433524928468186434238548007619350730463757492471377372513044941537879229782910065086136742704667686921503281005644912070696068298393602691332805105186804837911694844924747569628482619326791082342044717938347991410870200468893256172671332249389895145258286611885781985574234531351563701541666976904924145885599570848015051297337485885050601782162914239970401714774783916284780543355710917431675073626737455160411902923595162219835046802358623698027479252407448425439777349490969279161133765647739733348555238745095023714819962298416137194673573377123894031557081992878607084438509013870688071969426705428423291825192707660899348672692854755284704730624984831947108977231346218256846370300527592196472592799229946727666374455745051819288088007297439427096598378656288720870595072997198425922982926555290512530816686742605084395387449286532041690388067948324539519202912070630768145546462756528291932740697449079358589659571004681133909040723981098153076986152005120280415095641148930971994261692337711466428935317096790430835660492759720042872208383196269362075076920347117726276278555664047738669241044736855249349577468321645271815324532588374855911215395296714351241809571507985344334625225939194403468572449869022809337870229497253433327719317781160737620695293055432578253988343958545880914814387135691232177699822484110350427846145223021856053582561830169310011666673326474959121309053754758896188894842300962416062624748049171118768113938588110018676132893653490621168761322502703277430825553594201032748399749418221118003305470326796350084797897163778213371343982041531295869983725271845922956757146761901146227059150108363038342713581092764375722576853118012404189042023320602721280478452982418232327475374888341695375670445250878901340556574841841476063983843102091688327626234818236566864693384022205223741453130932381201677419155190635245429417575800050324769320354073627283461945764869034894327679462953074537253380333785924385620198218543555175322142340226450971859720476618527665830670851826652990939022007752622201625243281875485660257725324496150201827816074519193411393255745488940099596368250232616262583958016781010966326722282293502295962771010459276901819281778314117896417936893953809960468895410009164163487225589697718298909744554537799139012916249456626877730816772192421457419151973695982980573393616623913718790942950710449862064051156510824185366261247546065215953792887377869632380102629360242836738261539685451512412119565454872882894595955998937259197036268010874444318799259510695330455422077934344104767080832747302293367580565123641825757744750967425486636106260698067620793991955917117854218756035778178612820872519926203337720816748641065325015915747690538748993130236034296573403104880739958299781586067895906881221500278511723351828581722654334076368747916564927311984049814888185105294566018951970850020092181446279253824681802552793046621592928458198275435755459147049380142753697219896302069260387618788283185897349119333523481235910352585847552818212918974670671546949776757009172563827975805978017209208393732526380392426996861391216018709932165670334492048076744047784721156953853662133835073711552337444372457003298505532174738767312613820650580030810643567598486098255299026150729450451572664661721289035883688002519266514825883701533094422334408516835324498378727943562512805104172910502382021118542653324911624569123691094811264435124089499744742758699416925177001816375201071639739478443307969017407662268943720857693427747867303482522483022501529453939711334125886269029728116767714507669810579396202921382854749436162151026475076574317622014360674994076264022900684648073943092034445264205901155377853142647493659398782451605670385676449610749637690466671885200728882017570015151336016328193097336043477948629578241369408950869795527618645006193501512784176595247253224587190995642913399974719792111739676779769972628517758204879861400572522823225692314005041563950574781484138890588125199006494176553507986684402057861585393770829253146049875246013687692182610110700960332983733745064591500745410146488017955828891000622100030305475656964893728237052534763182230306773728002349111016828061915515048656352847113984111628296272494068667962315947529430268656530820345190839910619792100065591209249854280325009985084387593060936965388958931446921231244396600139566470183008942558945629586252484004668584073674398193058108239243207378695616715041937562562993065560473177534188799891322412839933137895355606563512302382004862708824468232598748912942690478191459759350146004663534053150836345709267660881580103266747378916069894532393373074163603369950658813630614406360092860662439430433131969544502040357000282401004355317040303059605024555805573738153021120412598924044254353167264037300525543981834836205818523410130823687516605771248296208884413415009009701220139456155780363454056980915952882003100001960297084936077126149074445617590023707125608682966612080984122443287058239869531817547743444793798837781389793104135265284227551066820470109899825126700335569343333142443703602429773657281570925603814961983649241708130076765033167094458840437811094886981140071838030493539219251352034964879661090910740945995482721902695225988057609908241987337704341671078817734526805499833728486921906618062820706365728201747919119778323027062074027122501391297045316922618200241596787569142153112148958548148182832726216132181526924706494647799684826187555308515459765258546378421735015378477020989048841890613768493077742829753724939166309556325604501772578284207409336612122516854563827342232352721470318999448998040048907595650828925961735987641089699567694042894199822590030091860124766899180845434575035626627089230291308242327990305528534962688201624239799247942917196123426038686809310195845930140609326282112546105969696617560622849004994698749143899459897289119933414725960079067957133426782868037382083448155568873520957269729020721841772037049368493017089210470229056980790309694089283800756115174846831093382292786775121558754746834876919574208750110654110435249952573784867719840259641542480648884717761746111499242917719460682882343464237687004467068612825838143618580869788322939102825299866520843982160390758810970724949937577488152524050023300468722325842346611470239599179295934232272515248053798404788677007361524392248903742269769016533188357144638641605427538749633114302416868548668868211158050876847759599841146980783483772757256264103258434269068036813000332105471351412128428875490159433992699208880217066972517548593711538383305908870031385237556321640510486079747983672925185210410041694318427264013422537942533896655168901765655399949611189160503986637411159943576313670272138759698560646555071322807233323686567307715716669016929937034242365790600174307923103033117230154220287507189988106461217143575225905041897702736210613342232714623284483790686015126674782311984617969547675605794410102910925460782177774633499096846577306520792268172280269803801728946335666447756550460264787124512534388177546456634248024232603210845677198832971780586097099213612782697201616626682277075261295892344348124133520368432080502075538496282847019947355377117515772479732090485077034934658752444694760479141118209846626604814072345856935184263692710978816867255918976030163662650688901596908754000552880837649874419160795107149322689432933736981404781903148189909609936109750778824954833981143804716235537381867523716030407431360505444347273229920250455248112489740477193381947531204169945037423962966789221527748403419496404951158797584842092538953731635818955020484859407278662713516577070568676703967021730258674279542216731410267285603603047084401543126035625945980126620838766164183085054502148321994263147326949001048894577298162415895939258374124742404598408189646903871318657944852959572901143986224614345302177724341054995065026905042486696856551300993759240348348212217460402544295204757660700794023291176058361122571333671627125651009384958744852989209021222793833875383739458462452136227211290556203063578296042540356404510742087246282023548689174276662219292179065518131394200313863894067824576426634833615385383355316870115674739239630305180532684990294374273030267531296809070812697848654209079453650927291056405615179235103369902586324411041241699762894438361993760440478870529128607479122396259470581301304955094165489532380445765194673433298995179998858247285141809801386164835630958393621970304049542652161289052609103561139147739464307646337824086411781767873573993341698708129339079637183169176437423939588159749351514706885051560557261555117703564670212487114896219620639732390991502804827027347250481031051164201692187489522004047500274509368189538135144135113582471427138957632826454523973228974679291617718997542201705615638614507374783709510095529663439500402777561950958604502458518967191025819530722718350846978453102547950110995315068879361667212658074981197420805463240588509253239486996297609876936514246372471718990921208177876411535497006453135905291166778479737766299197696130038081919799315201566599404412420264170201446780229156034727255294446796051570857598746126019748332825658216375432521972419654162700362833150708128096779820761837414976678120604437753036636104698193238801953495545054515314129293611967558401836364271173969278155432267663593137520734300062695033169780206971865453252334010242460071301157370538670100168242163747693522625077393622346475586681524638631830673947529692001188917506954017727055159902129549624047086191417443125120565299856358372009209217327157140696387023846195825373193813355517126735828650090662305946290771947191022876229710883978790393531540671994993091101731256689250884600139523421944086235666309463475750852052263862633288470175733696009203494903600318168606665300229798394826022258517157752879352097494206910016607766893886768413670355622581717143489596147512079370196267948459345865152481099490869449503667557887256220278506727426908785097809888360302956018945569245051737007636324451605423358670468770056141348056967329182245868581747663378396641760519236240436761299981045186776346426697610682222460185321953593244454406367879379387354972430202382203602246291552347707984789087293097805489229580061047724627842424978011140751145062702368819620398976576647770956239796356141553086133203612996147008504070620577604925803083198201012856469383146795819200836794081661617974293448043018136930833362874513641999059163799496144592563213811642623485550806528158178704603208946237112381002216367796777394806177061596668020331140576964542994219054646411264956517590846500309945605693668744306829837418806553164064225565563057588186948495731104974136157111480615787240147894278539349264515673050059863952106184139622261195024111995242245773481345114353912292166137840581822426621238496596623934007495818172239993070548087705607149932236599290496030051122282721313531916413856371726147342119110684153544171226070278993419864502496914344649177775051186489167847829684350298627070179355928016589776770790858467054596404589023618770483605934487199328357673039006744665317690347111569013951916448834871750263754837629523316928079916388717889861407569643753848945750168850323273932819035245709235746647197623473302769121147669797707413255787605072362297896723196493317206063984050027465308949327400744081214000225381251939622099674461035524503874470896859068701707593864852397706381735504222881508657803042222875791275372145515782190203781306955045700190761684844976400494153759751356845222191377892216021224158471772460456591767298468192296011762406340894778062793691703622618597646567195815105729353210579348985899379197854371189719062257263354581443851805351139154171571924865796806218076525580025520044862988197767298020979862300807737227805905199722833607582951123501603932383983837698851458113946864704216055634430605811421758917550294156728095288953605059305197443017236622382297063322333653851974320382980334006744578444518541657887231391885136779007175826538857563295447107266859715053761968627412254748840219210384802696469546763158781726714981658591974711397533719067291742710314012987095137351186255517660818053395069472648832585240373314498056688943615456900077393016804723762800971964075991527137942866128586191931201024620817531764894728561160383506992249749016847763563550388498508419990141265499595294280380758005569999490911541587577173492172292982484970123308742482073246987112841561171904356088843408350490997149001088049991935307215717890660278407741629512589413366191291821421237722479442258919103013736163751753581623499967513533354894405173191538290422247230489843460730017209496590689708189122500243481047458110017896126523456312319848490966424466069390300377347306949035394638717600267022522492103425276578838120186276744159266953936851340408352139107629176523346962007134701479319125823391840394991859613353023458805715404939716141546987140149345131131391929934084305746964337046544424618499196677099682531264441696090497175472679353880863894283486425040765228113422723448245262867672357965191972461121871787320450251702380160583173125907750446873643781023285147618896466889016343804612455041120783129768761618013208890307586658896671867923232053775121277745385955828059953031341307760728348705450808580049999417107405838466624056133109031068326180662584932388007539266624887617241632148371611475599559148929682788293198411139784263420760618471981721563942347913455430559911207396608763989650657249808818371391572347093296547092749610821034170391296742210023999799767025729853124563341626911780246341243063245693203144000675075237902504277645375195079102007005645680017172636243670710830548010309882386437649935036885719842545633421344758991056380781168853149987253330207567976050078782212499895781783893854572433432135484917017182636070160201907333847768750620418347843832261660221838691357302825323604198976825269154726102363389715260877496041820332346207930796961493249580403095682229686820993798510841724844132556699890049925779539716660303711573338748719725985898229508371494821678187079789527616830768221035251720889966812793929533534399993910321460595120406128944785391894288061341986682462984319417705350194711303091291188244518451120596762268075113561387846018328565811212320967862789980609366365716707328849571579195351565809612926909970674848596174284874223476452469772768565262452594619010114395208029425850978902595972475866199223401140054274135306577583858469639961126889371226433825147216286898516197677863355275082958280403293156522512574357581646156184671477341278217631122282336824899987706427082617105445686238912743424525072421793116567423039737970708964636765826992578641796104298567595717704790150361939090345551677199814551473017797262570247428778390205702763834412853652177103219851283951315700394397324859305852307851719098994612631680195634902705700726141480427277064917025046123387012413608787681620242902748176591649779890319878681216210056868458620055809059025066787810967960513844895495792692544520101671441625628636489403669575476786676478715750913093302500385048582694106893749732296976816803087798700190153423365182336155873302375490321986624811857716532826382907828410904777787421096514510009551320537987236828039112667725449275791894102420436914968507698160159552061906255242797534855808959528341504302601018811339123380274298388835890622224890677076167358982881943748027547670925458517378669888135794172452593548855597329145800843497036001396648288674716781215938985249645787299378754001283061909264236839921763353415701132077141391570157783426104088859410597964294741270172809699730445047688082387243197501703623480800873287959865141090954402726945127692445065820761390433105293445806004868435971458117102624243603150186652224181399795745394753752285658414870250340452971003012213735042311168787535509694276415649603591589102701144940660646716976003823067528692621810837014916472351300551192959315357748321196630975850511516285602245434298739552951268990788734963826048858118233350473972899968799848518100736267337828467064376438752059547683770747129420751119285697543281110821800349296749971550008580625146624120397257921611391229391752800558045670529250075931572035994299281953190108226900166420473655239751930926684722919513477965585519160451456367845635092167478090700499588982957663252217899102684335259846287935710121079492957513267115400456206130601431713391192507513854862045065842440071991586636731477315602022781509852807905643462449924834187836742751975786751587576658807614625323115650128545362752591945793875768462364539857685983171339280401160398743957534949778660329599525179758456254146050267189379004357678450519813486968799934069646496690276539235963511941291802656833090608793281138004697572896956898450721601842167698913846349552431263055090002318529133062718893003116115802514724891434855118709634097670374899162235168185754627812962898349984024332740555415485873622661320279083433102702936529018875406778935872322534169401068261234511996742058293530946155044190366372890799616427396135810989407963582099210771710290053787560658426378947204488307957646056145196518888895667925970101719900113517353272702852816159190171070034017490315961505969026682719516822222943645895845289124934583091439422313374181273072464966715533632111749359603149708677504573682082861532589465939261645317390737718342418471514745113235046132450701193116573610252392205450219369269585337342483386126379904154781206214801302113067239227698877985095019678506934959655434878974827224424751034293897493767291228928624258013423085967836052739683631501653887784098407646583454058622525238225376480847427512194073469522779945005812586482760366950051821565920829397026998741179099637238017188411166230274017772188994393350646581670562152002920499359167765975136392574431917904653109196936417259333012235482892487947555530949118013844151833887767413234498607780327476405624935662397291649973479176807026051508142269783528179512132313966894919692977576268976192192677168109390040471725098965102704006949709731355838412743288068188144476856337537748999824697782097868221089215551507746751208226710357590065395023498494501611293487541957144581878512645270847909904772265125129653239558319192557682427344501310412994451058838123380296773434945623174825502438601197518730928281055782932447474266865966222183160283398951097328176383642708469277546891589074971472099000021685290034099690778985083821279482128828342578813846179642699826525413781734114012720276575636814566917868716295510203583121180105755622451799698105323436863374038746824279419923306601261014749323556751286716988804767573403452403792615897572065382766441402435914483759665700555149467110019398306280542376694261841827815903112249091784361546154989103648404695748220532792526927509631810581453839010135317212148267950139688368513001395122463102453303748268115665982511883998701346436698807916284742532284269470804413797059704952703909861769321618389000962393634503364807283581216607367833901536019705355724645642990588068643337966863873325944690731539943850958447002087821839176320332187232790612651180037420458623852557844662012486795680495960729703971931370789858832461283007020528855255947807464215645850956096879899938344582902863410026572519488251448267476903497195804425187787801471764929199297056705418765578661608802786507812946039710347431621194497008286560871386978129588623410607641755617288754619873924120277709549082822677557192332946426358311393646167886210005331900694392129082529994530789056377777059529869241686743127043397446696188284648049714330534229409882149037518754300233827396231580576317320366745901205467301489093080811143053953152072122249104933848204513849916536594489782257704736863674529162585343842913373519791649584242064268177925374700682298554934972413766790048237198239869888197473689924798300165215411425699540067920766558348540757343804527853934165910182330767398558599514101190200574416604089264892402488587442340522350153126895366452940661404323715388707762005299138627640927028217054792331595757094172925119380520902815388389041537199059110916473157668007355238572489984342795076812604088908642679840548576801186187930554553156222059110773135546784762472141825623534123665168215514485386988011787415591092175983811119057276283850725069086091941015242190043187919832859193280119455341940821778154453753204902671071252058298872320132235548993356997703720848574304059752618124088717808369016249646699136012058543905357185387318406362135071225262102910267051004552070907997619163037376110954987180153832736955393674490053833890172189143788914035684326705643780385855236788695246923662234492933499690013764395037800592133956171455995076737388866538850840022872064361168283693845530660320734034929723119770646505246398913784256292533321596388930418130329348819521323994679762456685436237809315428571706149561642645016518556828137688553462868540947204432512394374039506471058432690227211372951573867383557584544061340779100017014034229767948859544730274611662205878413978405011666895755319115973178058081025911508075537570405748904312248369869620406457759945814047283951687393440906613806844504536687775685187239001336359423454688082303159355413261008724121124021842106448427844414190436493361096904673168291525919540727424926416261496465052022688472020035224729441631434345663713371870565197490484431280324987672300147383253681053286857225510560069042680813837317106355177146556095890453937468523102686577948798770300726097625267776769065874136269963004266866447096233864181265985124453506983737647809935295141567936929235638760869935993349725214839217163824803712361952485475041165737192541227348421133248630254297006637748082325759941817728986499036057008397439509828524578458409496510807649038222086597800421064521176391054040569176489959691856934241492185574263930766379899919776351061965125176355755978940543324773202131041034349017063500253993065872489669126681613651827488924104897165572583710990073358164095760507695272143723273666506831151503802144184194735940876509964604047366915753242237608920371384634186988223103637455329851151205258296160720127300370638521158168742719105721485732388490526538458980941763807089574919555860662292710212494836716352018301555329247146323434342647669850242533870018696700610419161631304010042883286570347440730734435910861990250896326638622841677812701172643445129411234197872776083312688602917688769629136706575095321096492599634004546664639541757295475846137599454190119379546798843311476299403972739732727777469470145201343517118386632379190051399290433132587895012194895230176976255121267745277620307940153285475703831959555127663739172831454786187631903250586429412201451216003434787426361096508928817050790131065282719946916224578551995659106421733016820679790015380786017438846381624744030778603656224739964834973863652243860717086059047349948563868637016033470075401148387356549140802957035163565949942808240963092953281481614961337589217979668421779298393138573437936927709560123187487258038259338973186458614031332710428499331752564030686969101294101212891644242721373991826821270856037837337871099681040983773941828406397675396969353068188374225994909854528317710659866867383586043864542386317476950322987201178075585868364969948690801409067506891913206014724603835610339287148662917703248181623674048393382909643841745391853273658301166694032746029988706335727213755289879377653374247518175755859935485389437927774567628031731525974161184865219039946344065420920224570354125120897197169038243625472441730415982554667396871400179073165226512702076289114289715977121631385673557894570039756916614274699238982615413444931181614995594242519453237484785218631055557292545890827060049894950318339310098390946634328284541059934434295286836093462833079721994124136505773040093571702299086266947294795717072791919620985694107887973871165377224262930051593151304622054540266041047745059794069172574433623083908319844823102004987056228401536691479945762039068248086911407938635502098437732426754622739647232072513331137072341333321587943809144624292096980589582696203600123011374942704580415419711074140622305388255044547781489558429133573482294142475543353749508478165292294799646516778278524661624723236583365969927931444984111699639538871393317128717670953440589955108292857403085360984477866556856081422317635727274440343057457933131003317519273904677709021254351804852044716282955203737610513593513735767329455207648995203080854330094393665851743134154146782626142221672789507957385151732251061507891708818568532661077916577470213734151762730827841980230697417522991432878746271544677702445983867001845351057198347809314291620493304854972605996399617037610371199530350902406276287582703527905501241189268949741076538450246242227212680876893648664585567142469551794652713948404583102026720693586055560740694393125098010201690660546250602595215842215341025510290457943003066098140999887768700298333204360679620161736683010764604561035905025757920738261384603996181353847266272911601058211799953040979707529634199942589382067702254904983119075614326419614266039494773078847782652770031193694642878923748094248521372912905398346845909360111260060179981624592960289522014897201148963256558038904288377734055189729487145830455172361599900107158634663326700769497815620002419273447669172654535506724650066690295872544940565766858266686085953184225587905041082523536391152981381507570106893800051069331009009411166663673194083534021472459382361703998691426878299339860677229361767712585872430174298094823497947076847035137969696778376268070487127597262932966818353596773586321344401666882931857681515679228755698100387919653061482618814044481385357964533846294557632364789777172945987307420675091475785888085263698851641507418131127997700112011459529603925122726533094394597962928089456908586897232389645925422751509928089259060417004257521426169385878764953970565397113723817676987748942571675854807607370163816204205441239969496921223888074095367587293801953448617723237206859438263132425801859630123640304101391863434446732224291436786224322822856291826478700005585505672803222186708059106542025397346036748973137212014603258237161448858385741919467101355027061282281467956350751131869585802093963017767854773221419776790339127471831436110388579270487938425528949702708154566118210311216430928389721473697566120829766090810261640615229713285556108212401026657560650790776410862611290053761439297586861481092640127675199857974838259280143819560339212185054365535391653004640483022154961721209363200135292335046635373876827760482314732710573161858884260885046413454504296687833399827587843276115125380888065204736875540937227345025121864057207132802752695512755679335168824265306341889559156265311986369400943616437066531815989915169732963504547594554673680699673849563968103027567735042527392951406449358577926435303371668107876125080419070359464174583034395536609872258053065953698499315110164310029924621117988648130176853091082923367102269795999040862560702134305851881291843288194635616083879002557057543122621835378699233593775784483249551466130066447542283548880930974784700096901596520405611659260162683798708573508754300010195452911559302680719642110518103747849654812036081348316069639378722942123396766969425372299162255390013887740503286012050066103886009236343438283566687855270102148749692280150232741327025187596691637088404852707103452843650717082611790387603340765013144070243934626550382999708588194103900266602996983770973087713965526007040745781031666802426316610336225025647537850108572843742561805326339930191429776460273616081758732164184754466563006343042521531108882647077922017557521357041589528330168090545854055371015062874233565528052529516760765367737403996094547944474412228390009300778008736280412564952151762175532855782570455006249974247408359395798594924270963754996242726744803464474572813465830658474698261932937638693268607963040614133439782488753460787343270256435727479115985984130325739267039418734932668558446490824010035138513933401933004292564009161249685744271581928533586864835280452920149506509026591002565973020399089475427413368109237209966473414300483989122765771610079504428732834036109498339471615037521395502852679780644810511089853391378683173535330341706008395754410702426477934322843727307837270814630959585759594094333789548459265470665935108562854690051876215596256879454341791146272787321857986981518836498914600500486725016967305882549189058653367448812322056474347677368052672532732243589112649200113213298646664739246268093470144526999128110188832537581807745732281620204047623214127703997701930128754494849642508039840862266786218390495105245271019418796928574633718283798806862715686048167814063043850402300588785235242003798439010137520316253822810616932873918976453578094799952944896231164314656263454843277901294686458634223970415219430396299086258796629421889889398459178576917899002926749765810590650226021039625993585794340499566090073135557541718376004654816950691559443632521013901226389401829740582584399459420010534069536361367537489395287931177613431619400401471743437968490246021220316474074128697247439609710974887972081727749151886393899968102488893176069687994535324231314457278637281516701684308216814511671396759260152427249990723217911577006687313426638356946130340456821969380135388760553070541964522176988909810160233257990489624732654310100056724913623165651851413797898430132963435727989019947038884084664445127251199129180210933013966325300854350611445043357724301683156712674114250611945282435994128311778283788454880980831580470852705586378676365593803033563237231109248986726948148382065722928962089569194482974534496929809291013125219259467941118267589666271006193689496285560343243348743035236359801512352580013476693947619655287183270378925584302034342684694337867244219647459455889099190195173076000868073798558367868244098357710368876916825553944507529746665952589560625987013926588126352334180706216171521206507194751365180094929214345478027750888690465545919334644542013064037717860046267936331881820841016097141532361949918606562810578792876591740032411499510575444998929484618618632704793900979801574503896549923671553293111324158023441328868333450914550230616307101112107999614402880016962218564274100422190540692263071268394057824458270541385050333566443221835463447559784040549736033118395805912870465824963904786232582388874931624855777067258944880999787962633531446029792036974852495993753077286206572691275678854233154394191690100388614005984332154761365480382200225785571150298823153068392206322681558256639431864519404665574587955742752857598997390089034126770415545445282918299984755877131324532280652388156561755537700088917105078628491034188619213074573323753342071126608535327466059184661416315634723554898434300004678507662610786475414971266863768561784640261362089685178849379627084765095784887306936271581383673658294239424572601908230032377089472575060718095907100288930525818583218921252985264138340892005868054710964165951375367744927971524601657967826345219081962565275422748868978294795814263457403477711837545621252322633795816673684584590935246375445567460461195508022937264312645717060594818821446812856435512419492174423735230475283330276932203887011907377262071750495605473080998731652959052268155818016138357066111046453350539434229641382729856516837148670530220163000416009245455217599447257619975509175456379537753350221412410127927650887809185358074728147897737493747492627261502944569857819101005872755883703309906341777646356713382102978444867871715823766208339168702485688767439883420057514627618381413377059884874790051582753138804942344515405699145327822491226716261160308811019502450215514898543776722897750914697200945324357063993251358462172898826660587162044216824865812164606819448514881805497349562347856119496335075538083956373029141797093860155363341034481961528780024195165867064701616826319424152727637910071264405762323517503994629218798343776343947507907736525833794217950963330728109123973330063885662799985291713311043271275191352830220968017301375207235950832996135063908970304656982722576400313055137493480221239122972092599649182442284214885107881375482859849561235761720360404180105447245282772517224885313667944656466766720521612565347083193287293987455949803758050138092936576787789977037427913225864311859470689780468238128755010181077753977324582131873229187854299523291037379568903104963925264677544322150787887285705628421063533265723168674455061753997503483317109313504229329910430006394456915228775994288423489072167712845245814203384268950466720235633011618765872533125946733453070100177608836982161126719413798657668528544597439649568185296620432385911702394358286211346354242667686969735464014204536313136556000508436692428554811620679177832379846985019060168286446803837194126394269436172861524540036841264715516926591218613591838618677218892711966397807513629511266839122773932727790731299347169275075181331862062273941912017077449935132829787165028729798538338666338724492420190527492977299399284042819997953651384966882621782410626108064057318875782920571713647193318489156959952444405437210232095644080117010811386657692404977631563860219724295539396468232162942861103618093952199745843005849979757303663869910060801032811320391417745880229367651852381118244766776912305263527516525211493047290151775731974621410146387444503399397469278557184592581228859925389470727616548097125408147930607175966049578599964802889995303310286863600510915146424522919731350505563835918503421110249029389783169260704148508824335901181647529610104786848221397552199730072015353581205105455337871706208176817347237589734424424497315731582475894203089312679125567097045630736902769296471470619085628516874409406676833103701814797551913830193738412085792326707217819097005536736943503419972273797471496554246110024933683578980123264784883447011202883733788178915480098807310066422594390924046365938708572885303712145932767385341695309732466945522850612032101009210156170827039969943082499455329313827048087153491862977151328223672356222146968102819827573957384042481059914476900890167083237124446012738600566866224821468932888596245650873651606072370876872473272056754496205863073494340923477085024390702088633436237867580928124690315433732121903141448733680023589142036902561064515140027677329524579826472925988445080971070292535258410443538807301266137364576715388304512433747816361141531430699092184857082162127802290746089214156670950804530133106921303233142570462313164726982587032819239408413194513040894829629748700237802291360523959806433261528409383068337287041833759418924894230728450381892345952183522612822314483612893660705474660891476257300392520350017597472755457282792681189256535402978166229363482344704679550486947802983004521307630802556975788535396994797416781962606262776531871267038282722546956738728768906982663345330586841486474389089541806236776709518536054795218074033418283445975366747010568345219494399105749638733011227556592508543849692638330752026695774414235252069292963400097905636387675329227690946004164387223439717654487144772650621639570167236418866181872153087123266780527659934992849012671572299656534160025978376883022246797608727163294248326422994422735673310565417929474368425698066394043027811008702202975350995438187015141713255605095047325491767126696957822151318720851085768283372737465335993463194491726340230254619386686465974555684548563208641785731942800328530358697132887988162997795030863570906699457948818999995010689565380011086450924050486849552652516338059497057599631793168386620223494069811009564389338664299657807122799061485017011525974690538943378275896222618165541430338087628744147494239581741127099618236797528672626927176312062703086424963035707243192328919277211506479249734733583770465621303007550780659065082616664206157563679357475748408096072390978695633680663051298531745261135498984355406525224038156507584436415781386948939293090965360282978733996847278325248270089695479335188601637037251061798682616047670708695292927027129565417802181361289133651644047379996221251527301807804939197491681153450145488358091828066986182310304255414105504204352362867031014335327897508590400396416586513934015569661176017492351999291522869374323526309488621046911534932989524690131245591300388107527805133521126496735738930985592857712983245111301425639232059348964916452732555012544869753629054701100400576599304976025354458002898933346466856016790833983224257756575000985032420057032872892567359158894263497415618507058671327479360501838827538350583246573649174729731203143189015481482250294925582412803196496772298655220174463484181303825347123114378506810116038639831771432333001575438761674374484829409666216422838810349777015609075929712666215897570569688307764401091669794206648556141793649225168541424264190439793623024863249445446869404505088224299914746885597441661676067721566010189276138551575932806197659954874157962613735386052012923130642822877395869201899369051219918704641925085188322557398918650676522083742142903312173902956823529124686800835147506980617281310040208382600024702067117966002303742024341802028233915805087075502689150476457942037942457976450908842470716233978462923992209564771775758020596425499809409754564780126533966385798000113015484909055070441565659050808179284445201602733535004263680214121113288289036747601212672753167309183497158886674897430625218729885687836990775434277927506259309736017426130466090265705417517529359662111825742308062105550580174171079249904947815692040173096232289351632221600775611023995257730465592770129446226782063651193364687007933200948253656938191093114823803617081449521029731257950052844449783701502718765051961722554632771771596038157611702343276883901949510690566663399109575904265449191757315006203644587727492980505795305887087595964435238453878816680332219217063811508375260794922060322608776756596849661438189716617263709379519909867405918715621863098605238695741400579112091101103439385961649146413934740925344795203585800448308563945727869483263167424513970007589912037513824105367999873350599381831534872290994083182963831968932754502728818980361569286367277706131487010954706836219525797007883055423985938234623163365972960491047509581291959961214621837394416927847000174384185176690827868221443942944203695559516821643178654822354712724093247528175487020152932787352702892934578264838675103872359248591356571771279148541644011607656935075380128074408830697432040639019209363343315265743844934668295462722690999635792797581555201885000053885846324478365017388070101031960001983992232127566711297082679967192917558540024248604861291927508245899215837028853847890408630287141278455042415017768753155732428152123230437852189787035384216310109461507688890578431570306226301097771796982065089236310367454513005600618449190083744711149775520014938124239041295291665389773116648871952553850354917548411225097209609856042298570548466942158592425319936294340654587956684118890672898589667745931796608380284611359873944761322544881172264294870542995550391114425219729332874231483490408895052189019337254324026517501828803214724924217191474385203104854831364569185283277042676278817832643679569381333996698223480133519870595974570770923339805469665681214649171020469449205164169332279087547597412242965499291598349068043108753362964409939326633610043390241758652140555534815273561688891643333494855464691339106252319892687444987128478044289831263658592769521217848570455126481969874940820862789602571805016723213385789104550880579045997560292000961694551796563209190661103361506599142480349925387772001386573010619238872398950961329695959633994532836247632442205328577274763215312557934391903649143893799339506524613499063438055696950851978296943100281811301780205562141304071673586740526171959691084568337724871495006596759677351412234204370483657818057591425542591593739227274953257852779643506821223347666405994734508854341204414184044650887547482980908391166590342549723207260860535950893031944555638293053600182419884059419864043584315656513332413028687866741108923540866409912537922392382763981911486475006599268304338942101364131516531459097407065919072282576759135257319374658682886083537811968781074301389174794166348325197341504482977737221068212739948320040583954177319873952113904117514878145757465778339439845442088961179979959649470856737163852923767805696387327451408574722704607355207713806542752812067322993074965647451896583855749734192294622682097897477710946718181574110966485100382829683036963477648826556329946766693921168595798743424234053540999691165094380932884420015044768128470467808991181222642028870443722467873615165483619577940328107219771069820902058889696726119677319801486321056527776683153837392635938688055148490438179455704265103414492983446936334349524445407454994947253996906933943217973228623146158036527408962473611302540060027346622183632957585876060528963638693212798985817035221531596938561834758252861362868713505658920242458351657996404136319313267041922117903201887420373595192291755220768603068335651107111677079602284220897261972290387084166969075044473224765210555850587659366957583858335037348131982670736713793684743921672937285050061331710266672690165268931281297983507680958396639968436007836121949681755510610656779419282751958675111607873673751419308292971443125486547615909839563947958741061657605077756950042365128462732613415760455095792269623798632048305070218296067354992959546147435186333872200316876732078651921430012201130963048193600958163776248004733839844647036007156992348841266490554333601289556706228038113237896029103697144315016500611244760145934220950204498319682557322204597936338734030954645003068158586612550052488868536512371939772101969868142360926395056415264320947081571558454499685845573270166267721068019442828232698228583223054961809732172109418708713963529751367518878149293472701289504557284353908920712445240477975924984942709877998587934482211205659561838115615521563070938947384244607230635209310229861584295392836171530192485810842729443203975773987878921155357731508729580715982722769931919647927820940407502382067283425713889621093546796333530374698759128086028662710098950480345559433350411754888450095090965622190853655911137327610587294617005937511893271127742248145745366124794335887904445291534262225746651183370117164695926960469007048728015025213750624409396932682100017189050409240492210531473626561734878387556801344903555927048614843306157309703478297567159829918500076356788392898347848319328140190368823035027905935966753070198396452152321181789281662967727490593053286215283889652906939664445377265065183822687995115785815617291225104087637720355802363931214035222346526860483505429634619050914663847046316893567895830882726164675909346108894385258052314247192380377011910054533884639102847058261657657544659353286326804288174779766067221731031241094928193488651707647503863980575447257279918987555360897003393987002649644441930745324904497378552992161292082743970964357268296101951511251883558983756453347006257359481669298845895601754479885733138427396436611317236648429110116762201148435759320354681590611384385130375617600846129293777030797168943192331064520532620250003563689514771215667333226873176407427582599392672708995197818777226438120356072177989224980560734515115243077634860232581888962318959925397155296885707437525532491122384379494839288854028022802917488889122633458355169126937102943690049935863548658444041600147564506820142883229240691451448267308342494591852803041038926852348676470587828156087480184593274808456103217067561373356549403491393545186814934543227086831284145603896874816157401986475338995785034365260695826460587876299670832137207697871777657890501615820811054938500044402561953510498403394547887267241500334220598057970782033110624000715476672587566712662989944819796982660611086508734046599651526448588185931149290857685858419756471574892814296089499734575890062897544355168235275407183806653047899300598639445115210790848229562208607799619836034101929987221090407665062535060931625772810244427481939615945132610703214425393065086177990115372277455627539726071584943989947062393078118924159702312332377485009644630867790680169419900116299726935001260884040839500473123529317547977264605774801573762150507097821291199323910568455925699180355634564309413291381807493616926196576414238099119935655500043441388755912727245355391606528986041639363059375670159456038880347585043694760969445746209679787080003034281840639626467738036893530612427686529084802624846607789737595314587716415362083637411215158338774799712873567070061525226205321207296839671439584305001615253238350375683307247237087369116332805509496451078685288283601517021525866531552463680387291541278985907363229620006796564878780656444217824563623353685401193217610554475135086620038448939143541669813739756946743567164158809780681866589511970632180316631927819641861136236451673655119862321138364528925170595762669887986662771750210391271442736989239215273389588334091022432244474346074094389668975530772352128149075616178566755163770478315682177757705412017585815266457232531495290058225702119025548047922733767442255473219596371415295500034953748581289208130048427117743513896017355411263411960615864945007609907789155978299342233547910894899214402966070047479864255432074678822521208771875687053250806841512038882160583702467165411767444789727551855320719950481098579683716857666797129273116581409301238848992019441840729220948065764889717391292812786973766067973827365807323778216309636409694150379453118040350821839412969323831161954392207288695361995957751551756096129224549955444603601158027178617591601288648839226971754892968681435942687439875879450890118541121956878336736640471846204533120142711129341159632227856028104103923363172900151055206175863965840686648391139674452086959556112279099281511859734040126620910175056464497384940695328802137016925983487788748216916926870036271945151717557683740715512608635542096711673485159871207535448302781714678607979966615541863918892231411407431646727772614674368533663082729030028450167085030607380656333921173895188014602578366928279041174697832170669793663058336574334941988582089778983170513174084675234447563793123631577205665657149817955682405826618350223417295569891378459257412220910971905514397205717280125742349757901860808062481944781982558100047881265657331441638613965365520908463036331128778127271890813534023072923776183667364272473762463356560366924235012099932186356533346281141499060209975961917283744823071661617973467884020994862920998760036091956330215272265078677225565756892487169085828840242710528155984914389481852998095147199418208580977145205576799130561218293404560996297798541684792443145707972930788585284258549715890494261288707402297034226147810491041150421528506608700862162140647496272452353279265793390969780490584044979302980336558354097320096509869739766968147387085479870497486358439034713955349916100701474844399029301177255597841153261810754422332044532072209466416853607383020876644154277105009233880980876905571021624013828373730513606855140470554484202911059204168027874856936236414815366276034226650242614690572490677541271393464302848005670218459089907429726406139685317645145373600607437198892078720939468598822095293906948072412386653777684969865881783756865974878040455560074791615708831268785952412186178143863090109247920479152966278622887335115444336564587818023960881649875872146162036752575197106962307241413391304882199560202627692010684500580412171962664771056349439670067998558450293105453685653688025119704718538104566751169626222848366667516529725650286912393318245294023165374607921152138983711821185109228381788181667496548501439782846920208712739591150310388176000267294838361526036411155607058120788697605505515619699399014602650323293891708961454414328603553869481990293441301818503473812530894095058255337269967931767082644529800376179792438022687810776697119072787282150644194047267060696459402599197168359224720198661388094936609139579723674734554884750790188774157879725799975787959231099950323479059162329041149706760960074175650668004861658592687229633456415277260228697390853451305410270008270918143696386496038041565612089030302519657593376678786408858402408581505068361628043020800883630543502698608748444347049798903404153190355610369114220358897778769278422526293397059340660995678687919065189150449117252178796441740985475513040579256563652920155695148622167311589298924915017026727598300675754812020864153768888306769473165171477148693506046641248358210915074231560596163796128882929586662693970720868954137065814321049618087311615170677689194401123781924951555594688640163731130421887479323128964478945014076544159128045205503501477428366774096981471158663081551103474338135242433344157635830045311248785626786212332635348781738788278709258819476546132815446531218769760917418594743267331432962198315939541089513268915597949638400016118983098885278981853302488542191042128072812177432549619687959625876719443386685184159095070734997851067602297711549946560848559174235664598054433551911105221803883081540863530482388867886905165193588060506226415227461905013781619945421570747683540419752532448942456415945938324328863315732427873175926568870590199076527953213984552138279475163073024641043638423546521045548522770548276712239826793511148483833206104708645596977233287280228229870106518570192899707944630361494236218096439662837591470013125885982246934990199201873003740141859601131286625782411895440624435768810200176128421117201693625737639908761098924501290826676706941278680503610793776040276212720402515376827850738516539260439589849422351825802309856131484992359202063977152347486066207541395851181295899552293373723320872072507805972161381852318640634051488063041847069687733133328851648908134261905917640673441130289921695000085926699945438814490941794345776276319490153346196308856823895540503755458849221237956147771825405589300546290151942977668980574532443296351334450904360637673831693378905277148695135664320863564375413574884929853494264946645774092042772439200081011370813067744314123248202072865137970885405222315276642596342847038675215982476124269919928248913145750168266306003592322004182444933143209237504034275191194501235139875299745878570543064708230476911436133976275437174784452425184519364012045091960217856670127482391855660639900483850178891899708619745421114465264379717406791298307263945754069549902927524578668482871759807843103793819771370895894135136575658856285426436372764433887735343021286494779389937723170973526344618925607597119585452784382115061869622460738359011898314749393951253149128820747529330595985333218746571961872719186652935829005260147691784227164375476079804564288722840541482371012045853036863980878733607883765390135306009455782580678287145725059445725974201481728945527763568384465587607545321450297530359584862192180920351006069389082699610969981114676757947732967462273814664755078922246272406353323879602025524104532812416204425563611385613729370832220278105612384386599021502466324341717799243059448782446779927978413258407678376488486299398314478598111327061056802244476277885702328037204427995209290213257375627035601924978186187076067491581573108211516714938811986593021033764012837589542417989803488469508251241494473134584814931362156647362618541626419102969471660746554348691817460682178315848968065912663112588895779282407482715018841276857528167080069812862862474427108535973416103505921797289672119604022128191803386299645835511239349403883218363879985272484753078789366446556200351800104988089155533223228417360328096068660588076885908476686927890723179911648433273819936187145250160829671807226687950398268378073637414964023024708552375679110254867854312648652466110351215891333483903779288346710080012572884529792550270074729742002416745075385515994501565835406102658108833370782598904371799259127733022587060989838620628769932148889276953582925959318708844195942248778530197637026598905469625600356023945904772347492955205861208091666299030116706574780450517526964202034423183194753993046960362959817590374849799832858577378257148025074695083469826558503146402660351184790304585214336547031515854957134788719419126111028662173448963771141830044446426684352222723098089068313652204530960333046536280028015456305757543010844794328790376992895858414655419603016510636031251369672510625550123705139098053571791884948815198664434995574148031840943669185273331765964293781213621613855844031650160379145085134598868544302875538974213693650036953372539513116692126678590351943763585692971082618952156068650213589226371769842671159472047046983431140684995570192540346057609886311921321167976624882710224272049639442580531802289698412816225844077526978995644693673716911042252859939410903866029913453799110995440442374572683700218045277002517809622425775873092454042712687697335468156001198300559816885538767849849177493192221371539001583962860459416541180406106131518926743689823073031289867777078181886380954391426251540401112878834526880028514881374504861333989356558729482541205270396956476442143121694599286650076137019757345788904487436799641530463891550698989866246817142070224718336620789625231345856102588852843648252436064079076638771509244798906806132825933586013595069021887429689389292564732257072922975612033627192650913807062351395367020566297268664194399546837873163991291685115526288121844391393927119991594239096994205686167659454458358511632388465031813287364045689259643526932389524141459957685500935873795411117488433791028220098320419384731812564789451514807204598728151870921436957089388864039444998375772835471999883871639962539729221510140277219881484528921764325162474685178314235278657666662882937334408786318741393207497778159549791190958855038816902945628036381808884574555052907316830843282042552794130582683021658108337643667995205184511154420655968851088282329797900787516860884141609700767280455018736556315220460421074463550026831623690685036946093068880482945166470702054034177161932105709072217829322591575816709883683035216852344242242659698716397271359956880136635439645230861974154940628036032656232570884691075808892397393770722970882668783593836404239309002638522752732827359094118845564873445383330586957430940035215679537437025493179407381156227150504675260449927747717663176134285101577355471051713168124769386795987761000076168455437127227732282779924455072775703183143202885230726299634660267640684004479729023592644096973715635791090442909592395912996994580569559662184086004654896410947481581724849403998177732862742692307126335657585719639360473629787481385029721629623329448509890700478378735316774434751713706745144170943565216950839964934226497941527191259941837944886206351397394966204163785451816131929353863590661358293424052999463690947665812541732857051134395855116469223201602892611131612581257423255840480246447904704806377645944902657715663150704960210003839304865717495301906271763546773274819611262940958445671145932121441813213547714263217112355569065425248537916921366496990529372413363774171963890664888511414864548093377161684460181723666699608579567194091850902855993451882325524413773756770943568350708501864813335707585576453231912595816321692696411491907923574389690175388253822108962237181523383036612238880887338814507428324436899143955659329216052628129613474807244611693312452513165116905802706094822984817072206993424108104728484443430395348611743438506066197162187896031643433719699092438169148413177841497719275430383296675554261630718940375903441523169038009183065951646696172954333355555081079864374060510725640304429073279620511499212845573051108663643440606731657024125289643926440392367894444061786446307208082694629089407537289289262394427525907507773519737088465369911367291861322425417756299845164173233641661812926516230304005511468749284164086752491204570533660202428137944289286985011890931227766684085351842877632998710875333069132716899627583588302334880285938379496407623443475901988321945174898921747476376544127475098254053780359976036480032896966096916497259304979795789255598906929382212736961262398197997441522133139248200798819385041579480007732403236417802384449530882730694341620374767827134758134203710971521461391191802095954637755477610758725566655622046331636154334652613809636652957231417854176606902827320396387277065927130691879870359420556296954905965788281849122799680680632932945342022828758789015011890046680669066489359986273385483744438630248787583541221126553706601601160538084853670690318076474064806551016322461436695168466861278818549532417104465980455382603393720203462688822794204869380403753414670486604805016154602048849709945851589539929746499765294479318182663446877727078440577313068148000291556953924947114729764863843489802443167299833262783735467400799184725728347921917277475619295354323698688055432809346443642421865914112321024450518596965439233555211301660107775179593506875582576788193322428048483014090883319244463910580959940659302295079733785488950889591646099945751028513254365625048363902671696684933476712727090954355873315517124600035364453941422033303016663277041572074705412914667681229005303031765739309456700105898368351440585204013927463419338528049042680376245288610071317625907635618078644560257853094981890256632078633237306612649640560332331117813424634576852187765366196862594040215696768638358316185359588148067050957074720036280572541251891681846387691192471238900035489623682951750077144962620899609533301449454595985889704327062945077686137230002119846919759546932483820402819630021403051081961336132334110954263739934577321780883515905151271389193559018859098082281817502440634069571849928873347613915287199711263183766842157532105787045318023718724789483462917756899930352352022301319366937254040652584306283159329353845920906278397069139319116717735844509753254570705565477754193821739593928744045021043195884445346703953898771076498723797200294517942277451703470938928765789568624508938181774557269301048383763590532119235903045376779561267248224770099475897215528828156503197654314410097801622978862463936950356658886275628026516231826381603210279987643188162767767931221893324896671174848498364025290300001930171351205159400585703152063799252266986257125972207209754910389743587357560789910784089972727120977770365665401548634801504535261824523662733543172165218536709610925227897245282251189620838710805341328253682554250526305761223611494581786901580614178493325987660306359699765646167358467762731937395648767341655547849386106850552440562564940912735807271071411801579819575625959935408364402658948399882410993062383026405615432756345075085802052542674208992273288900223543323345305021026772493413948457724434167945926622999720542776123154296881108926454546520791185572971967081562080677745591742735683487859273337115517893254399813453024649551300010181397667250597081590243562386559255930647460589765464257814115258636039190547487429227018298869097963818251636035326984308311277410407573058059926305268010395445033348023251859787351975516509037860170139386490731247436298811888604430369612556275670054842990320322925467426900529543473087506294214391122881840424565073672648459146165847200790894340051636885212855016178978437648009042944974883125178646801918568706616693078520017692309227279206712939559585115150352071858809093920716809846143962744727298955701837246615923354553049441877685312382921589489179718216795625941525016840682470123774155994524938592045134730045136697296735381272148588582229025126542340623101983383566994802919764827780662158451096294202366723749612133931848561079309428997810990819920916689973162479771736609057065130682697195266334298374928122782806107465157967407590129473227765245150222298808150918900383054332548990246543663755358326565060014381553091255521941933797097774500648864939619996839324838400536795588933900948989613256441574362282562432942416069310763471939303179477675663840087871642606444864247435849104473530139853291377373162879602589965212110469960487170199940870147940402619432023893876792604123709298706015431286103122532748868370009833561892492039599359647141176604334950174985736904855015060898082332898549680296763097821013178573803332675360129514092485370860948330416479140863142143860759982519511921702846860672789466780878643750757206672058957034455507051911099571510783313693475831203586612178206680134383490949898717764493429816448693440921958595231981776684331654447945326787404772188956584435722774315577657768506712613907034552147386090545526003247446985341971130223678795706492209446655876579255174270532959221654710326880459436842687666885693504146438745612760795585179609253779207734645663058887642501199022030629072212293974087129171602130416863423404989961111588660129209556021183471591612216400060461098601389284524525679925616369666821155868431335578700295401831458116227838452650606982094277581307743813049852076951143212537625430257953382756300640379955932605040748349116851863100200751740350003527575136489667969145259459171578136113354175642658667882257309968451916936832187817564978716392739687995735213152263906902070246130508463268208954120462612966780421957093932020216897441237505446905343996083703064665159615632540718743746080118280960131494159907056960742562665752919158939075078492279234022608045447989148760016164153392834563775577229945530807182969090177402372998156670435826132235025955305730232220404485329667668372748324581141264918572788766624363206243182828220943124286149840994248657795450903249079907801636219310690480369178377304441486507066881419015134784371309521612005548268744931882605621358003341842048082273095085522683513280362894756344885096276279196070974544460242201541298003750982205075796814229957589225177476265319996409534532050805304397296011219846270032441893100598114877065851616228142106491659688202951344806850845705057436727895746483280836914430853375709834076287350117252617466992916185465372658417548449795292012830988356696599471247986307575192272435029883628600176385607847117139517298635927662830384305833651323590921560213147885494712642016367971689419433466221522212739796538978256494926312000993196492415180893863946327895807178623745674148815844682445160021650931414887519616788833112849806251086151529341445006936536675629104418050122760495210851811838367833948595170834994049550344820708642099666245952456214934563098380442227843360903709559935170057760154177930734092304987240605740502816298934027898418118039177259963189934577687860437416961828667345724111272347798726306952782971206891938936693043318975816580087896701656575222794068608634680831449446808489627603219697118348004674528633563154351597174716411356035906589857130551454832333118859963147233684553309625911569307244338870436465653414293402937026163510431160296679778022813645282981682738833163929864892650016320464170091067424089958489673855775999916085770234474773436348162644990470406049813810575005110039337557559477536016040868852542103568006076917709935781932472596862295133847583393511448836063497866618294786193627199616059699148965944118707024199751912126187818763169912507684765804465234878708451517667049608533197183963107960023432587120246763636514700347088476046688152046578665514677540080038386780881573623254930360756285953094614295040781376265997567539188722867055123837536666557928669607696765346837560929399041839454437805470432275506835017516487938293052536209067094124470418956648731804208973651233214565511352336885886141869379977889910832768197748979413321246423624380270006149861288896346675922151966439136225169489973046329753109825712967304872762132656288841672694140797663991180937250054757748219125083500926686404296795212256200168971290641339037790659678993157299262213390738638117084628200074048737019270320242500361778939348287983926124307174734064260079055340166567115068784549090394210027320067708659284092329797064604654455913155781499143770155268013359658653967722278011500313319207462934819486192992295817014808874194204198625833175978982631094154066373008608411527926696351209831913944162577520294387494397329258160329468039875597383473656852933239960916503582574051007625210792504268986773766678513954724032259806588297859674697473349203390408456089461069630415462084440229990474266351279717220975274011477677640421488629004850244881899534482092019968213724575364602891100476302288488027301967082174163277484690271925328122945528532822328132912786355471222606063464661247840670848293870395731191556858102133073089231139093669199314268184290776896383495529417425487616394624589662880216517122128269020330985333625299864586449219574529017872868988617149255936105597063239726944422657535577908549035742024345064106815460672049177245529145470498265831462173799291481911891106561372433309643122320156102175869550064538773243002465581012460967147096408615090972190485917223056565706561354072973167773677710539152512200122915011416652747165179547188662167346418110855309074224273296350319940508543866970659465281153109705392074045861601742656854964339289127471521094662550434224580377111701368800788667297067205504225253842277514888435338933884491386902453078725842048713335695118483997480445115915518021768662511007120121945735190724327128647440738189067421466641907113394396245956735219005017535359826557578063934818043180422721142648536551392248578323479592476787249516210160801077685402245219161426332697983368017384061388476501167602919807898175960431559839652483826061309308569957084773495319731306663301643258171377975680273639679957095538837982656129479002386539411478489982103025899331544114094579227058500759212403144303421366514512103856244654962387501325584854808860132919124535926433780407063123758124881642031602725045947959775573495953909062690449054519585761679991189245152857055259419651167901654392270295470543462378162439809519309393559434236470425468934651798054937273587794227189329573587634944742922288258393893474599396191938832272773093297979306322244371398769268300236369926070790430624933326851736593410579059730076595473431214428890535918135402556596795919973814556836776906682717305633203648447383210747642984805502545494984642519478689715815695122488580887882438360410268535796658486139862273795497670316442533995007174898875401306638002109151816764936035179636459645550989085735660435401961844862662608606177243415485042470192578519608432558900305053192473032564978602481764547710462026978293951754027859353132672344034307773682464826151883232808951854509902549768168100025574060211760321871291852741127912906674967512956094700665620776376361467321453411951143680124031886707769132107393994646790315855517647626333151189003015703664363765599189425589662993695522276553272422169468341388340845295175751402255356651641396315004253047439999583240690880051996048339864288289138681971783215881642771951575580462325958304895443074693278898088082061484448747391298990018721457346912197110886882388463698519569193265517833706224922577270574626528697639276669423805145513484893724278227676206803129114272805028805802960966146936315498817254885471309604082395799288171098353157202799896014301790062437837322731381880443230570559822638214887502464321234284973080084027658029527018474138985763298972478557119489347581925894663742074730416165666546039271314328644704103202443240954442376192561361403786798008557861642136358694808857153353557099976633934459993347589618337917208889564770403889356538171862502052010766169766039448943833705412875238312088555441973297263127730641339114708447618558495594183440026768063697720501047176843104274940714898235160285193788453954014144020760476906331702948412689994310696714303424914232810015373895501534885960377829907994592913222519776655744275870771335563178274597205386148135647710896935398458241586008811884545579919942309102882415961156372892958121468128964864197683786997343415436026992315558754313845794703233344202166291708131030560099294737305494443753437566316523108976468737225213328927178395830534448764670247603992148061068309822932918262760634507238124673053821995437327260365680426303891404397152580962501326021231681904890924221751960752706579103987441687463057307918185653397857349362933217605090181820572862579975343233408548043984769445038242882372867220428173749320202281768832387646302832673933177742296151916271505777441900552661783097219574674249883514268273056378775240772871507729370662996156014838521768253577724075605235710984284906869133094773974288770863387227666982382190517946175208103766520384200151620635493425230891212200878757542120119580305656980342920361881465914106960668384395994862218443440052958494898129148113460922481084447524825737627330509985538998434142439594724876854684180320457828091033986785850672862886037520741450006298370137098279492842781669109722120087257819669212120039169888309208197814771275922189529721577170963268406002004797446140022951882589734315101704396525439813856562995582484082265236567383885755720714374986420475337376066320308712314314988345281946107779551688905143835629909374180469294983555596651079213046247143005843872852488240804938284312627797663305059343418227507550725141540749581605979667296363253455543680803772890228694763054601592292526596727373674027912767227912886823478888076646275780217537517391379604191677090113069760334551909083297317879981336241309010122567909188447858550635498733796664773380662810106648028147229952235268840919585266834750615426940267406899983137306833881508455463584911354995271722629250239312625927314013960334786382332264340803240771495843381508513694511663600305288357239784768766407080975797577235549696812563292973171812292015550744233800228044612540432803375553700730243245322510811850920499031409180690509040199726903886643660358544485115571852474928410052840382855462042920967630294739334629028851111871257412391396854620762692466456042903472493741382609897268165378148145361121664506196730172112842874205853401965520117126380598935272844374322479477234663121405577368521994723431051961322490022601934167385580147946455241297656428633445632476420049501427635899929832352945317146250846398591298923007110971280767486547777312170003154986331645691399926259244657968915861014037685388159735738821408227082402781455481786427918874383141210751615385752923630220595981134821003792458314916702410416614335344639913149180944604023404547165300886190989413069748881330154390419261807675287522678646132696816082383308476011887494324778987561099296601692106420004350307223321407398855096787056323787856444829298305580784299975778081407717458072693583323518006563892455066252599064565108081066763792683123948397807060153209792419321635745080609982652395084713253316383090122810651742726258974347366980848781045453633255929592145061938420675429606232699241188139816942742492065460058947792378341050843353245753476949261140036605031877996271823731837093667797505655300486635158085924585469786353128831608377236906604125978083135356354506107513096349632131593231600888920909584380536671542529934718270856292381735095391168906602012962481441608228029010626745064263324450944579214527219557012154291067414162791644021668891549995634505419772146423697831819663171716891297022277567010546114249562765303034780337939917548408383396079161613162681477559936114243921262660855600152561353124189514430565002620779764361131325735316935275255662885932783491306297062431926341852849932199542180469347837653412678558127533551565536259320412647659185135293504950011805510332919757426299645199200689651918886397122014914428718387193235107651631967399526929631741623810018263970580856096913867955018798493503732812104610952671940237883634399584548411228381422368395361990118120161704763413224933563569887531976121422100232577567821440876711002145950314596676243262108725716521692509849947960908808748528608267489548389766927634474039916645716202707074177357016270470428197491542000528842304974664272318929725446660544725110506564589179742292984004371906677817679363365321316789870052414888528813069098840066421474193198429596851869013563370101916562269680976493373993441033875861009710316026123743248262205837793157196292727319942723052296617919210462719653939470962500494183218699059875044023900244126245670004165493984284573702748356758258353120023664430858603754960746957939325353526042074572670724999467947740465786992290859308449424849363892319137872227057850962835571305475794908745144568501436433566228999564733104029003822283629961803423972173627735108998011467553017809271028027160443879867951016996618935537428592845002911400225141340878025539677924282235769364965029427362011222156561777713591449487475739492884737433190915187160966302809851058391812423395517390412572707559721231430547338718500221549283486486252558596801614322787821157369213668098603174342365278700979162003282326871889981423793700760059383746328529542517467089361932435916366927485180041192936782370470565182829135533036997028466741457682262174908462200424664559330765631199452125799866908972374354002651700083378654542363572281326504815074038746015730780849577854541062616043700788516771518065680505786346908735085870643830827560600338257048389930308934973955384154438843520783304791929227585482967468865349809005973292347122318924283084355931723412082317347108573238410495705010982367792728851823717622026975903506661593040927793116202037812043755749231942478762753517664805912033694100467017237843129489573145615661125497888239106955436379824669501479224163524975578348352242923008358653126939745108494939261427846065951882497520965080739416707280744138519873347953845797405391527122764152202843241470903156834164049354832913001775764850564042597417993538568241519373671031446781983267012781800407001826172680323756488467511016227696511683577737629257787524208621579798045507662500070470788570637879757822925222358076762287771993968662208012631832431746907086618992685970342424373120964141357047817554760556149427006350503353199875979817340490116883666729872767352501764250591440108687884657839635235798279861295202228408262984840837544819781489009097136774112875337596493118078656861534648900354668020781123820882664477031272184593026309377268853759807856189154395261147952721126592460477589518676051686964532148972427760581019520364742507280466845143859838667387572383652817385582440693949005838174765871673164532709748802185635963341161489702222945307713914918681179769047817798681044661748380382199993436509539966749877752940081843552093863514721898657491961491408618503690014156274601885977029203989338133670749061000386058527788869432849182810146381489494254351460627813428051168445672514048745336470899887494482270048805569618857726421565387578275040285127892829521105759297155996402390469849415030664424924487847148179815944670269395894658005573196149212404572925108527735881309982865056588393169803411967954710619076315500352452871418248660859874903658050529875338676934898121238525479157691759841534572263698158719915315460298976493966198296987005175051696758604443169980985035486216486973728369850049901838530975311165184143355712154667557243999601573278686963471222179033058128729682549098006780166997996644164924648160652509804222114251028413149994559241148419225369023190157611902317228673573662989001046851381001405016209120806388597775796886240053993125819093795489591629285838158865461565250118240601271626650492292137267782480788788825510528438362363051993892471719575320890970612074412814199600949124885902860983589031591411951671688322436300573166314586973403839648759691133905947563425397491271349675907030022485978030430608275878877791351624080301397399254539606380231695442043435484398822841518865814839510830724549977925284224459386419632926163381372000423336323038097374717177339526006810116435237482457902523746391170877865571195298647550032465023246370388047758905267041157944259895058529955931991204648156594156984327495480505991416076653407010584664517398242257536285263177560576908394760050440778636605859693072954817900747065121797609811645752511622330020192624666907311056392511836601137639039448440864383685025639861907602186760308476487995930070789548296024945581943504007343964146372262075812814399991959660908815264789003796701252601080138112928042804048316833486912178175822644953598646077321485408399133635987345007417795739203336715404359565468602853114680980241211377769885701300629778835847153148667193647833689469792362901964238014937883993176016103395129059493907686760815951068236296859336295886161343674076341545485479914191438903394750126265996940235672642547773088029113585510224437499033280446915689691728874630012228689784103578188143252765586274130613825000133594973580346251576920998310791123889271139593092607487761534666124489437609189290061809020394527767973709478546645442659996525883991330539680147576121791308170122671621390481211179520062138777637665202004585675374500451082391685886766905393639569588885180780543462692901114738311313980151863898970597083665356970216221173331336606315519207215414419210582157037451770099366040009625911888195485646688748657654861783820741603424953859709817112518578280382253212650181934708482725204532234967179633641511485766642593778148074880342168479708782397304576724067990039941486952289563218941279150420009117647773167503806416859349809587204999682561806384426154669125616072897766408047821375784415553733388189759238358077044155281032407258679007051786194439307429021278058462356275041256912906048709992303148932398469298289888944805879695422134076345074554929109123052567712264212953154110236454580534352201320298883276772170237316466173130643947387316671428957745888875082871941652288386091397222062325692111272491279522242626681283523356409860417399441928247354381009370225598194682470830003664363665221219964548221358848115891213593275865955317506871742471203089818225134625458902352238249957271628886160144838148245751059708012524854501455042594143126584479380696299843571187204425737407433104375338126896983662799597250826357706158494937433811912227719298188024041168842701567430157480465677217520851834127384257735142407766869199704983181321448094309382995409954132644072686847209179426857439722252978539452366256497942664909259651113674658193148004319404729329183438519624168858790819507587710018455268717386596382067980476608425147252244786442846204855121268317818819620702933230467184096824644215149598364042785327056820596892223260921645596221704700452628447248180805637791044175469555201498866634805761317003110663237494376864206763749512330936055689166116322328557926265855526682203846953513660082234883112782133495179801292339774551925678153061235454649091912841529582127946847914087266407369523873326890574301489505522090600775408055873640743906893884754997685967069056143464953906379934899410278322770117214517502398873166316041559014645070077676328679072985037015587422386044667468174621247368580941067902915837848017835456453247231020645203096511975198003991670752110323375630274630236026114718790704541548849155352344331798841626811839850282551882808069627334924267285296723500743960515339439308952947821782860985255133260903127077404331652637796803561532754795916474725314698560713709624647655479675482094815174328538765024734257081165966667845938682418901985865881506747289922503582668161838587467605057868355239111668030836654376215264264442108829823125963907288619889110287536541763527607115322887197591226523906439593149929103369495453744413608463745360396321916030545558747671232904410144096411068560633553493296209891900158109808404892197741029254878058564344578702983189086636758182320622326856819205075046443561620531042951015179020529917241691503488084892494047457477030611101100590764354754468052866791734091983751459846205144700267464705510041687514301159126402710463930575898010817781589214400426447077892534517058803038162198576561354174285029375616814548897101046249584287181179383766582914434429745708874416444051373512373369145032703801112265098847069304292168839857329916275899259818511057353680006254580071397628993244798882871317253925324511974190717779132868299724569175762711041633689061822815637057140359102606681619785072424740654554967955873340866831670781965261533370681698614755685693013709555204668500820523636332658866101072829123786732289947558933416378399004711493352913962002557441077423613494178067848490854512941994956985603318097961121289490182099256170341482051649161729710976852171351443893937163207184896967807091939631363200370126033835324804090400339240685027514261381041611361325940904935374312392743434952686280772535346709844744919739288743933181307051746298159861638413073342868097905699916993893999887181387766515119573952379916465008710268425750225005413155471874399732003789616919745057028379909798236834476435742255726026572357425199238942304922734729819174929372386691847544142080909845777576628194419879176719009033504638033033564633976493250780630682894176177903145441574835162765733405862293696441691966013773008683344979704754554902116052609084425701500354776939856548453861538522436878799320115799059546627459077135383961562963520854262028040757083931652029026013257482777396529732579120274748680689595694566128317742367829575297434651441038838431355672691244441981535914684003784089851551920520065907278690423440204463607807911050933868661097816561670116788683655002908307229394281227228218557112318825295244294837984041879423492412766430473583525093987520254193060990592540817591347509041915911133031285171277945227813590700780735320400478581031326873358511344394180948559139527307755389527616570548859786132357401258821984927723531201041808420369583207919578011670997059669496141173172061553298408692335061140860007062035889271959464285560130094167510874725466673760775251701224558914177503430444367278633883898663089450688248625230451848978176182914950522818731241774206279350918383397726681077108705896681807165446912562597205392089613103067337241086538345015305766476692888770013881502775530654926599428047763647125177997847588452866933672439743164885717114030716954561511868458704046229363330630571774887127445447133926660149676801799529908603264666310437289255675744703179403801503042729310606312239820810685542552174541480883079098944014239020295957235222852970122207680153051175563707695661806698918546031331573161730668361064614753031037544024926506995867738180273719962658951757195750742629477722216959539120135591487976265914621328434838201494414793350920832206193665007015522787103586452024145628437162360338775458140351975339492232482672903273726725737131506046914943326610673515058667936450691703901962298051947466033438181640740797953618562108425257164851982380685960123361726736069688946340288542400365319277691250546404104149524601732898459650234977818441949945288563803533666651034470268449101886720554990711100769491853363884781095114961859724502027494711333686646549997466926650183428232670604714607893318220835226241471703470819217495020543206976665187314379118875861595424544818603033138981374599299102689521838484308782361438079026605696921716772277034177203690358157256467213573924097830542602601940420750518292736214654972981047608161713500459117153110395877521682828485440393554789595553179888632436942385663030395757113974222792491338494983640507339428492365525293704892410615992980992026456249804388822146151201650372184669538091022119491276518298562173804345798746554498431209599534160849487854605862485013355320414713337948369332174797774092886461738047528342571495607529346786442920956274477545063325041626042802605066235827777689011749212956905577316709792446390785195094912382483820700439903744727492333856211048784904245284281840781180139841262530101126120136416178200587982571285504707288318147226976802681229779896949346295946558599576741406440188474305518196285189012899055683151577614965508936323951531181588333794898109601873791089665707947075750349382264076752028491183870093135567055406837896767473636927809905927284799229848902284565306887917432918315495139307373548935335485223792769370660058401794623538657106453504678816273162987705702923047236401034763685676511746318810323661941711943400787555853210761249676123934415529259093304031356524326768385343486725644021411771050096134085172893365527896849289762549878438660816527392083656852093610910948691582004878103982392904544494905509730559169956421892554901810212316926414924193659163902097144910529715540050798780357772406078720806048338962466934526279046841336290870941785744460025870374287646449621459271894111850868781663902047833534969589684422747975619283791005430249101984565777507252489097905855012133430587788515591349844082034804411324187264204805338345806807239886942775066871358825994240538556365434920960489985617686088115575280413535987987684333784409577339708729075397707108898606480762471461193618480213002802191706896222025010245826786197945405298392687690380014123676278512696253081634126921674525546241743920828028615249298867081947646310092182262385121219609898314619150228996055949302703695549426085309992422358267577814907809542159613769050778093986680058471642914861508331354802327017853022730812968457565367764287803459170263824583506944056725584751043685317474950654987353795499338261485704017717611786730058643415796181376553510391888704851015841916854757152510554460106151043707139547400312933462997942519494102869299159319350944249445605782612445560169506898575264271071128235117229800790537815632247058662432845089735458962704835808338845232832647805456970284486472535530394929252485312025583476575329712593986599906198298990652759439492127904635943502367626824215203648800524226332592755259802399272542933529610129289018870197316579848352503136265355279746047182613278744660461669079969114013057866031739226620197909592797442001826478397027898891857367601835691752627620356415434420310461556703381695918178905185380657650291313566363015360617633371059293511184601007048779887356010598268454293502768418060889707313399993394806518807919769613585104613811092524146956622841984881289895200433101506209227812255954591151838550192078518761354843547488053197603594876376189291263487353269869072371134026465174560039698761682822934447420440853734205188756288274775897223672301108909000487637873075895658536196200303773337497075391985366352842130477428779496351379524166816850994635900012733236907081427651334352636980768029263306639125982227467644066497390461942782372456642736913166249758711821439732498836388985657100640131432568277370895035413334151976563523932567017295392346763495398144767780880595846842350742473825289940887061273352893452347827733104339910761328564593315536537508206159636054480684584921508870392171215389549801432451032950087392790819527143406199499340553735038016122206513313266644299278935691845081731778701148378996320187660687307049543215571721058830776139718108444655165405541699305204966736222575563550221611591204195061606119553294856978795276448709859950007205359552753006192656608059509657432389318610479827310494768856089719740917364434566051708741321059255909664723546483702009041216536457212809674406229285814814160568450580081483614400766598425918951163830111814343159223973542631718446683523791743014403280966441540257109989445383606240516262748282300906346987460613058878135630276169089306064118606414609859782845758569924558247252026256888026440436873350675731267316396999994281372039081957383259951248277931494175246952390040993403826798711461697662576652383691375617082385260403632389686716148616395196355102648778489495844707500507917107549390069040411702638110361703359132065807367149424092291147269369266547677107096082101221493505320177957781744751594798674415142189799882008373879479536011468487102332811753730757249845937210036288422462022979177103347143347635437589959573307712300382483273167464583492540518163441317048641588804006804190297245602005253167386496140966505064348845095936373884676001936977269835229687503190044899957032721386955293359773044625050738598748577837401661059891769468279627700400218211052231003503410060590737149115739761465764895270580641051595007033468655337657519817787458440363901794370783341174620591753561948661600685712568142082406419695857809222693399737948600647244545570348378683663726365948887267383735170415393823069854003123058963043499707713088281935040852997474985698520695725755871370208865615713256414347562390053401406576633054954726360085760307303333070782864747431559087221528035166934407906849639115077036953267300821807420390914545065684728814086302401346787564329536475797965809414323097395700382822913054375361802741199934638555702593747017911656236215747407924118422901599102811640339674970202738384715407088130665144823339554480330390977551053768195986366336452836612068945504217118491695110553599531051509045398674042041012688780642454658705679423827318987566042714139989569487863734243557852823032489177383482514846024359071266054517144231009776431436307151946445724893874656832429725957556635202429453034758513370788948341474904077816735104865320124298696203958414319682720256503446182633408018168094371169637368978780051624955529682713410035927170918820403635392054312696740896823865094255777297106479480765687018256902814750506623033577898743451705040543143534320802076870835213500079759979299647918646229634678083684358981467197255028383728579437412981263012507897479437369803148972974774078326071037239961818661749851656094938451614025192121608479891953900777439506612733668729287324212761686390210704719482709468720236673479651962973744026608244976038348883257586164778499797298496393118307616011360514790005928991469098648522643909112104085278706668029952321846217359205358429309274453775144305084388324677133853382265514250981728382647471391082244224010704646670315869578248453438487654984031222316028107638416158133181571588043965706826487770068943849012754833090377169771229650743833794400359148662987570743525263079108190837268129969938868513766355340294608376944543161791184970462085705870030726539371676316163246894640825270797877255424154798666098317631544530968232059219705829839537541389697193377974064460460791573981153444622504873849616315193123370373438015060385254239636669742686967118273136235386771121128243291527573465523280810081126193226063962536718481617323099682545113873148138292168922052729887212440466269915479926896351018696739142415841548632244541361327590487276807377101947247017313062042762074531220046004615757717613391305606302344278414276625258389876903804788198841899202040406075244014699054140953510097239042966351940668873288039629971925825543806126307143948398716382380064088660555299530029027108175369698650465987486799266209321503441277062671747246525696878980854283899461067189171847911217340137581483902597024015938429916663381497198434097205417906837858826895918682220281160302177338288685268711169835220293256419446346445365031747956262607465372338875442907329453817305604099617680233425598006690424048231722370041023500462831013828487813491056981548050124188543479755570114872752541457638182701639700370768692356129346441862161544642490108386660663390072617320363554465555568050932360887307993384971280990991551332173904957880658278687527031936352051449279939996406535565399805501413289167621675023034789026954704389021340048388648825491616435529363635782078218279618796662503501469760973197057235712646531229474423193719365137320477533391123317138060966994732220419908382698263354695750674005237526326371957783273953972245671819214564261045246569353281481017492177325174791580247412451598277065466436706339100054944784706028187687599522795268967813331259175634114771264024355876114811979559192523042407446367879868352000545664354985111673655727359453662943687523378745417318900907594957804527462570284720315896994328630265800083534167798225403851897950703087939868401522891693797481339021539518424725874068096485594080962085128975730026492859743998729722762630533786543459163896681574891269934795449214656944847361207054965925415899986127993022705639311782008466149037330612824621626747012552061191448984407651059939287785981815879922998613886093632202003093543779598945453318322351683551998128199110465586831431241503937492613792805220879366247585345460553706873367123220446133963526687111081264177456725668396390988152819107211597898728869398869115907844634038259028984283999302805156558241706990312509562016614069363298781981671966209475022905783773376391217283086198588998122320259068638753966386918514154674939465030933784561735997466380916401198359215772935043991103741559082346134079416838747515245934811162952707579259794081764282051331447874161542918252278264313175697843221476529560314702671085663038188131753784135733523371635767468244254610844278636675559868136390807234787985441097103316768723634612361026572291433162580950243084863667769465202447194269912079772059748686550186554791874037639056390459127925014596405685084675367003335481904001354332650841054650021898421311557988102483278978304124506091016376154190001058317432136893747333930104003818142900106966196203974426603973219294655144080797502949765352964694813489109729881252415242569429067025525218763463339450965495129672021677308092629548602727526914052087412930480275958779261455943680802017794251591685453490279215383014523126137675826150041084048820384200324368415035313808715497687247479299953725266117160935375621318068272953805099162532192517780961245056928999585557207232629495230072835992239654165654940535120684670495718165592041255075052156155292842883103419482568030753414012330749653304406864604904423664983931583846894099188287298133718877000470572664648074691697372383570682831583331270017401840042092000498656151635076563829604135787791317428421449914170029592506252886432347779625838593640953165441032464258383934887165935625164020007864478167382678326902174299176718913779845012393851791756234821251746016054031495369076668610019850477320504328111348439418946477435382020194165441745641849784308895730692386051145310374512296842562566654900783942148683137316861307493879190216137765739480282623201120521489637155828323213943441886749922403959126807713621869582136976990657025710865380614723370215596099298517558650040762424611446617772220494782827520604828743180056207429024401855723056279605696049466285221880413166032213580925102121457543179968915631959318976516019592758385065130781671200743849390443443535339324526000364751870865385650521645013705651420934082718260962216839961753210538536117769850375739336489151658958683657082911569218070605716320478190746089614006703634850605539602569238282270277184486040860059590347283820084677818975775714690465604875363647223950935089369978927585026999947392814408240331014605246887525223426934735336131053603366141860324236124359570878350969551594770888400269653150697772945936789525960184963845406264859407014889943968460678614322007143804203655478625869427549968128466876565812045346482504266827898605361652739307575421291786634189342824208131216571336674075606715558222140671659296595637137939185472421200027007550358340504697193441795573918444176924113106587718417715056563872534425290543703945099233243635141194831843676360453474280415108415048656628238775028990606297234582252943172623760130640655777472174939177365943603357677670781778474175716946740209061622345125257433962227176442352698953628727395793252780314885294512859464974076017241804166157199999069567352437801687594428953880922003128969766970631788275260692177080871501725835551936695032362805203498320169998598189955406032664531710887644634220322543371846245643902878463434917022559700485215704052415361506547073739674153972910895046602541185927578116751168433930354143353425319560491257996115369947425041034072819474548224115596584545624608827381706215390673974736687663348903421040913346398410633192443927044288422780129902059500960244964270201699449144253969980232316407553669962862427700284216137992191622315975786713303252646146279855018612837360622184713980606665710682252521236884875128940617554935131049422616846350999352094759302076227203234777944257041591518973827047764608741451498649446475824810825749715819577819520725023883705524489063286158932007010129471409561337072055223508713200889971567089711680894659982041312272853829753496345027521258813003731602426145000048101567378784918393030737132770883803832328219363934675110855743061069277918510581499183312412844756450512918114802312102336097360319295023699006611577549250799753661086395227517562256473175218481811591083656008227695105148182642281875175006830226728879836836131435925272708695056701187800180104245454912629973053787739686024669441033784506705086227206786598041127198302838481436131546527800609592611800118983250179363197818312684887092916899800364083325028609594629694749455136171072156688897932697477158694651157522204245189046346052877659238733000278095685301992279463228559655576479457508596438273211297416162387837838610638311224489135596398231495633808161620062141872558435356851485267860211820235026414121121579081368442756354190954869815866150821194098640819527560422340461673923407958877093852003374395225393503723479348119633650510565512964677092324805739161714544347509553974441272501411888673787130971459490826205447870894142847454850678197466468470898428547776046948312920268413758488014672987425271310452820572466489120001277005411845149369596224989713126431463989543460672909884607467227377586298869214504139603135332070442068544568942777723879068884253222905624845083646813837766872205410399802440407708752558576741386836375425572968425041744593362958274916531068959047542172231242136121919384130964996166691911288105807754930243960608205567262179224600650527216438102818858363715046957127255490086176980207682893997884728316502296293015362122444731572810918598725612876107547199889391468834444076251359344450407585081076868215989206332591877465179562737575752093644821909357805649420573202104782121687758355206843747561834763206439793621030521590019377580995240098027790664095763354245180864446330988962287049835985325218932708344109243612111422727139780531176514308108641533240392443921567968141099629597522140640201758928171583622376587105708415076708402906404407575676950717199232482583336609286776784093497142319067951231573024790875138560307048161814342656512392914142224509789628005743355125266210317507383839006481914376727388866643611265797945412327273283805692902654011322737970295233633888582895988898501685813458878566268697765620715014596464373530269097636044637167871151186371025186410581452104963813919073339473106270885707129820087362443288095745501590430630972385401782471819991901457243692713934779331087816173168903261983341879297387081886092876157507849118218644101743577910132052010713113228970884512378687596698487089514490501119735926721223110987723529466275935505208096083562797923045227489319572267682036017921245339413043536264119537752368951651438393176683551134436992368352354626426578898099258635921586943101554033193428162425527616200929929028120846750534653756318286241262598748308246767041135408625027262511064603565169059573520193283106010682925281874772512254460497784606811286561495760177800303082357367446178312186998013197175310540083472849862465969918596497134050213256070020918317159275240791760367297920129490379730274069027369848900661591534586510309689171266561343721831917277737085921822663396533964803997994002030510664071118442621191200888203879942188775608514389205541507451090355854594591939919711226205896131688393567302232704991762957842924655632829709983376250495591938828191959558406820734079959873054056543816085838777787491452300207740295540590953965072095152446292196273468944353066126889884273993093583844831224324416202916559131797500100518540967906638761882330917875525889658397688197873681279781493105930939568140178471498560990784370735900963490043762171373999652688431730757057853514631499855220120541868164691073515837361588549756857651761943092347684536893039188355122177424855128929923762566813447359922080828314237467626385225949987980015364611542414353064696926764112993731776892075615696479281053421347237613768843083439926017329261784497326071557892744400053876170916544972636066169048898118645985995252836869620770266215429775709761953429058879582146823492686575482954703698739530054083251551328465652687541604474470189126461026744203891178451382487074996519237012910629654880482097214776317196110955957445847723875870215286871501510922629841114310094607361413586938878396816975280649663659718145749086067704984376182327277887475688804767981239518779081028576520779703899765939127169641638158840332765028272545635003863778421558873488932990602332322530361902481372160778759079806244190539592825184310686088704228237452079358021886514223073329689926925506081681446195529006880387533149853352241683863229395297481560084357152882073930813152997296276292551436308102400505728885143192705077268394728488298355528098013081317565046907419116126864193057303746133997264367219570842133684891965752548149260832648564255728204379254410447805430481437715285831042254298274353215966440344609655462337224845836748548786094251785686236008901600440043947569859541299571807518362106178533392828599559139929396014382134879008801381894819090383388720513174276814007379509149562197495838987203116379810301347913011786060451108785502751058160109750802209171035894308639727134764894838566661962624918226953451601493838289472694882329491624539295386968860475426641595164611215350247841884167367040624229018032353253748953531069010997385313894091391654686392041483155530501362125111288314930539825518256526650532472406394558232033192838519869912564691796453637889500226116807171343591212342833720777308940142181288389570039952805560256685465944870738201681218563919883308690353836225215425560549690035957365051182673913753184748771490797635323193845188196383787071628449038506813060853542337468397562871434838299029860139054524260630284346358361820754079033806868258886964302320019955974708543552738102899314970913378331536491761013522617784115282463615955295292052752144121419433987585456645062457605372126382419210932632820052550332750205699594385909257887715028656308784367105026703767647902228848068451276922678361333171445517783180415931941712044123692181812800130987187157241871891800107656099266887698990093674475141491161086079716826456875590158609150571752770187392643928582013953628238112947133878340041406625904772982355546118630019186321026915381742612010196113897707799443036618534911199581077402572794755600786978403359114203726392682776396021810995172681506780862011382217560652674935457083804346809444256259202085957994774490204413581987459795227034996649493317625627426000029254664953086045057906644164468413549805324637065286025829267588567063779308619589546813527901533792763016847729982031647273083652662384685968095757232080328116507670150628051929485085399046557137923349067380678797233658691170955471681200935644306017734239819132381012042309162943595255181145070197116678263357517753583192923092722050273128305468953664030959843059548482827935939869304529859502950231575395234255546810030139704694747169751882581714353917532936102738782498909713185683054874911914905724199276955020292825765945200685076381970064615685906233391813776870364040560798344814520857590899719450365399644373165426085396947432122311840668937293445249629276475589527284349191755897281345909246377272785289150043058908438270955395813288528641229664092144609914902161226027510923522024289820561039577153574623891524551929274575820153335634935799973726374917336185892476630415435863405547678783086040591748046669721444880430190288928447688511265707173136139125103362165359376632457069817825003349330963184333666345835559927881801902546726819057445905967400679019800395911987047937462981306918903829665392183234470768149791863377841748214771098856294845327522057896544531669385490068526654081779503814811429390193851848718010135373275298941772102866078004296618174910066251060514052127739798449071864364661826562362618051040699127578733706789011269458356393800988725572022483515673131861202852232265321955925034567163939780005346623360399484370420137641471528998670967215937852001939176131647998285468092718564065960743997818309059474890906250077627191050761759556049412029580827902920043983664946596772900871656569928947727805942705935790028678664368499386440013492275337297076064286094059594448130255626312712732871809964584709364057784399998120855191129982739014192248839102209107493329801313362943335474487370695652170538566577301821983094889741267657705661263204669046704354686382078647992206533687951486821051266500515934346798559822329137529949164229842609127682287480191323042033981504558151995047896579150520175962194897495217425999527727429249890632667758543834789275332647544854034231355444149392605183605533981881246203053838429919204257904595994566546317261719507215681980682525512838577443321774081702781088292720648193996351236009538674867691266914152716345099463827488102720669141175882376875846431532940053949157456985158804298852326649262665987576302054728435479205428767173640028653070587011190329162695931604090870100780293760482881426441233667238185872920324350713143082414148878414951640826065085271074421153351778598293710349793657616255777220226759145017515592491277406334436626768290519414223050342029354394254812945978888879005692882151425727567048403533899470340350801662275809568124348582100899863148156551555499513349278297721039776338898330316769310326564314935090958690508538262875807671982792877633474967335901163777420093403552212342343285803752066850615678709355665588305431180379967209772902403101924418207743741904974279437505610839269180672029518647309437861272411200189134424759835607562148917614853487735683192979544137753414046275451267241382120652970366699178043366904118064002370855837902546935051034040106244130003880691958395493971403011452074503630699015860334602455935714794618989761486318145568657194712965338484448679587309893888726156908343125617663890375801619502241222606504194329275228916080421082276557752059383389106690138815055455901719072320106841575555684221497572694597095210972035430659326866232017552798819990112024142510098124379623835304268097326319293364294171229181849993915262965153336186056834461332457589297580314772017846788233392936667105931029187204857019142225883893129608393344511596263315856971075174841560580727926090548289355667755244167068370857646495485307527000574283354081580668499923389311804903375297181033225266171274380753567982303627495114692587465272793332278174302421756293536916548631813249130878026828901069996947145059982194459291479144574571878107231157915485325002723877016205253368054578823748251299013713472324467007569329123769511677681445294433736068484801021865345390809221729548302308614175070785518061115237823641661704391473496205068476688452523938120625135305000803784400282156091916181905400665543946926033656374846744583006325218662472190313388650831875111250515381148360066796025122229052903083125419255914944058161447196052542190058176634579695892851208432634048004048792034185939688374134821052046838264461463800373493491082145439147675990188579712757546364989316490993582576590399486639960173335519977329910887255783158240894767274580549071942031608128337018871093715934218781988318911492114879909355422116377385800057278817525306048267989024530483233120774253035860316757942226426561045027794704033395277729087944196421728806830888977223449133921515233157617321133170786490818546572679482840094249277393804153496094779003427635411203206244908427323819301599408109094138960400165364740973273951292749999161334272401470888837657412676666039118073670493074034849113031051133901748285603052917511526890017829601268247647048400214856466599099290144611405390993817296193897115694452100970774161369279413122801641526449010077680021197465262419120722735911717901420361356363555067836759745481406343681174611138221012924227034922485622734576139642459467999905794565328845109273962963733456999737211672708217865884264397034519213851794097501380947076956300714764921737031671741709203415127971190104346208853400906255563541611212459192613816947548044254753176121833947214798730533547133834767235570560539765398723750000574955711665555912467842381648109178917946635021713279420573218025992540606058220980060016488714018833736610288375042659902148373099644781752491249709067711711079499743346837680005796940704266002365258878885281569288401130009028879565187685775856140946813746689551213404572826689269016482464364439498984712710993300009503938350754710657633811521960466149038996377995213279115176526457379615745154562524825289206725123888017021568876434810924317105394321219925851146930275638600435601324138280260488916602918989353708528114679927099042379089900682842153103745045729003072733810725038746427834783994606024654989157935822659592246676423485902469296616286074555164878825320079961825129006702898454825325883569634846513771084468335251642269329871830611369005254670815755720793851733154975105233442339606823542230728157685048011588908519883118550205402476006523700873553095031100000605610172774079393175320714507714859847863567467247422200207702640570598292007626267833273379219448880122887874761490506856903862841376071249012751147137229093821353972791559013614422932243977455056050571543076589653130232604169049909558492912222434544951421897768825514061616069125870382812004786069335155438578327730457659915363454692989288695195548973424462500416339113942555241037014912172096960359076547472915923806521744798433318630553388031762082522858115696997661567826823554931819102519683581278353297820226078428800613358646229661218183742776084282968203457634823128124050413210188138214623489059035415137590154693923731614627021315265627425405125334804007162973336844210184137343342970432568811222440530480207718566904345710635507187864400364430175007204545737141942410670530700667816586389979374647086749748297350048487381783812985853650281273132066632829842038945790450663173359295247657012374424141717195722310829157855727625938857816118278939883156543957804525648647402364812604209707287538727585216491210705375700062213572459880827748247567582304129555622615154375834908621622179401691897562008391370375765191087752182731193364260773904725057807031547361358820050630805880332724067290325233206616962717705545298159744534746458777212847774025496195998593726871087847012472686325074936407885621682543537717102083124822243544825823992411984304127838927559655536572732996187365105163467413068308587377744653361761889584755115124096475582466961531812375778462376019936155254121964290751383899819123063781783294025797109870894849252010813595361230639737150970744943794476825428435592143474030589066348764749503522627792602126824656489175054586801268021424136914235609488824202834314242760963318287451212282761873363761656708176016120825593597798860792746042278859306078472434835973718655709488821650287280578175518134318731412993660243714946220071068205656108818540707229032231674784629144042660995584690347829844538759907387897599025049358825169020731399458702408778045092759428591774475853376387304148137140628510249157545213290320794056043211646383525859235851006853086261661554030581275510726766193664119657082420834669395577695502146891496121496562142915903685688090867548862744070494692952616793297720869764639537821757909297357174589581488123831216184193073956091857267441922327011568182401674811574033577630760787590545591967588505658841016714625821067188478994568393163903312685061222952302064385701608307146174984281865204143633107963075874398037423444144193814466750117984369725207501303491789955863957270671245907335210290137593710959130500469019435352726457117992436806520547459917271471870105647070496578547180685803082207450546668443877891285483107012564121664214250172238420956347183091170107891099110481304602280368774078066749659035922519163332756417049759444301093363048085997019604118966270927877644092632808186678448552416191258120414770105383889230110877899723570913455494343489367229206898492631784055585134943462984881688421202733519193295583218045145300526887763963149827581605030063306171404678265672571784569079279926920913594414932911192434701500451459234887976753585424053198643101022322172029537437236633066503587487540637449469932252617358913806403233032416848466188629039075798512714453706532172383922569906393607228442860210075928132513152496611005853054071847294505939705527637185201004536569518320214542146571108118551502944203516108402641340920376059392949975767652539377852141940677311550651541241886137800782241567278627197184452057143258701481336026961030022209688091671974375646982012822199309166970398540243116923930229669965678285691401744791184787764645411843889413323060066263642748308651200364224022980673857304419811024165927650211163167004442222192558152439881122375866339568566937736605543821494131691980807951441482379167885564206161995858929966984158866604076024370706124177851031151406112462048809002086705338564250561752891076072159492157428687530344650843810423284121248513754749584225771479701218283131279859948757359005806969542751818466574818548308470149065856949862036709017733963492290138502431125017246416301957222008530796684208366441589371869154622576781152652612173037671052378048499200209153749615108278467894739597301695423131406267408638463512814984010752642126049231815350950721009455990068359369859620258890974518070830095018592939515868013882585719249423444708200839403391169332791339060895159508362911759918413908077515709296410446857369606101875767606070424244152626782346813745386837408119268912264222635336179117230814997225866860939086698078304070697079821852556446747020037863060393061700645360881502588557804718217950884900916537522592657901997206667762391359946094446654554951605096651072795663801406544281692569968166732765980409711664840709369581407654268638995821366905694192373065025686623700108769780044062903851205118768141502009722741584319800002523932726231687422975079715724391753761889181005325394607915723005438271631087803616616258203109414622448151163996583083755472705642480946394071843693836503330375608766691374194129370493135642532006731175656689746749185176359520710059009056621476063552870157054476608328257431060226767885493575581822839901182690071185025817607946108703573747783435467265367896164567820329473936885888128715599209679475210338800275667232395027700157342801156940250610687069111002193684661139267895197168785013493852005750570189276195946221974806543922070165932038191246930333059677923101840199560279702389672273730942034911064713232022164513233967279568347179134511577532272537836973878025189321887275842166770164507970420981443203786897201360082288017618007741551740974774259880919099981135996192391889187253887038379412358893507573020329912552962213856591907553193881678356706652412386176668025350942188322605268057723435820062714629070541652159441946547320015818298731366697082806308404027567828690259916694671374360588781452407281077908075631483536648202462196405379651514729034127788520739844065755585302681446798559361195914870111914604733327780152338132101605409055493066800237283631634651792996587350107161368352870607024191308920508753340744800326812819653912554495397027513849312189563911132237332501520288184633265176061397816947590752656136992900641053024015504057737213334655985749504705430809700822977261415360950171573955894409641110653424486975649676549960161762014236518401028041247481152654731534365228975004932807470456084447043779777939463458241082309071632532568120192446120989462044728888246319107085619342655368473034761046490431944523947111956491807053401808101432935175619767426382703407621692353651327950021102515666342861652552536038961709267219848759598489538396814651647395510536288742721643498285787196374503801971603874505794767914003928537431815077186606702330914366240423119895534946603954687108394448940507107949798808820649965456617088743332563127631214123915283493568804886775017170629421477268728986103105643330880911794363513276210030248085433939146183610144126111260397695959095558713109341375454720286275395685650579059370318272513429536790472472481836504565840411778909302851726903160056463888187614199182508410799926854561556050837901070786927117666207461544212108623305515009008158328996250858122753361111692218243873269593333084928493897116841747189396335935979153110787393785384950513204347265619835289966330867611039716006061277297965516244080651438491752249399798083943170003232925302753330784996915921241888337703435198114585028516582323876199436434962114139768147559965285762496466890690793897646314650568765356309536384670853517023068839515632507167672352186091106849460259506506566542922867864134094454770583766845070758015351506617314923634755205741901339371071675233147971336222170401878930083417655971079956665833151347238515187127930875754893712349854138209872038474133054747261257010253854262788782969968666828497669742382391992642906006828164329599314381096809022124962352913192890064392642432102164916153457857742081336945931505948913838993320320734032424656190477588921450117883019880339158408834921682561848816357572957284099248826117848008018949442210206532231658467808879569336194881131381842696473583963588583506816073285195668344619756838341371183363053756847169420200427929842244303606464290761168381767245283306288137220244076301963976973729585943248326610742560762246101058100339654725502257609828333133513601676686467440807657644286574673233934620732149241897800594650361924607534359295621765636408732595956792742711400121385395531112350577548116400592628007725520139480602229035897617851527367430380218796242160123429830919574301370089851151727116693758423680525429841654962111842285285478563713412235186292087194648128956182244821158721388518013949765790225645685022843066046957837849673078428648691357103338868341733993610268280943146425782524444912477669250286898975221337681692448282476759805960550876681094520682645472623927156488326080970531914535275648038872955372418568627988547629279316369177416750853036218068533837464067876512646541547759812386937214653095249729970282634230281740257898667629747005169355618487757774243911939991849727668551547023752207694864598609505688970863740481022141120429663779710850506120565479239967621684172022793002171074773893362271106116628370305244517090723303584668716390220642269599238611656516955020978405994392715313164540984934165512492750331507062572602072242328040015131905478581146623570145951859626497169517043694620084500309940562953116826073774342174612315652979957904169810312577187104288554392481629144267557837550140400811413712490822558524927500103822741500817178953823990543596067999849415283634600429230290036648742638888400062399010001839104405999714911530109546908573141375667630849190400613937854959423678933731771287498492101112099301971604158725971720178165683917130547948082869849709188846120689002995356137531885114207227950678609938647323024475935476634163061902144043643500064691937523075417320902399424408519229830339526020762343892278177228000534580886903255378730517523066169381352291218940371194468694315886892533137671388365472633340335285525859903454576807308638011217950966077855513251040850055375399439711618236871811721834820336411117328425234299379318295057035800784950842556686738184455279853068904961815637034409715337259463351625986643478535473192394123657703600258038637353994484946843160042487123695456231425412775846747558965537946271326136729996842358084238280533349553873487300328646566910818640324678791929893556163163970845673380771660999984840561944087711847530409226604959638506379141847456812252961553272691457820422629723408732481900715594316291777980167792134872568211315006469833246665225053463954394240699036498702431848366962090616891097067207073514819828448127959699195210950777751005115784338507443926940504245283321576717075798708631882461314156152821710017173485143751135862027565937156500534744356651017851549797311777986718597585164524349702120917802196533228505183985624293617796834626687398592660590018058826906640188297157857794836849838023493325596225965664687267908842533059352030033938472316197632150531472271949243715557329383175884153724527977195887673739964843017128887485836054197519093260737737124255081720653051244736076526341706591128275762959790856834748691415320583781023335891947876521818575560162127609349145143558250629693192127479735576440288806463590715230121509450037139791584375534825399722867812776854178671471013236792696659861321646649610365295445769512952014527137261965777291925245690726946330645894619440224986108545598444291211755763685706650622009415921622168198030491977097483325707305435301587335295093523906226958507146215106759465581831775577887128065059550554515593196342413508684179949969362069511664375838344635945514247102321579196398482400213282361670751553978976244298498117163731853273590415407396882132980663453898251851525470029658135963948727554385553217450922074687977761358106130652022899728679242602135133104609766444628964001892337003900292658119951606703817850973527826079782023775531815427458243251207054052086064572838406189570797445848089789901860799296634079620983637127158686776099539679964803393828883114022296838154849034440898478577222291212318576801963083447659784785035252186533419012714713987839795766683610595970728731044722136345237586466427749119978965910041417594425737691914286621142027232040053924981022937070548466633620332290626852616952312228218816740894770599214283040408846818915629967606312172797836967697721144858365430410154300880483150791972905527870514040904807324462952736834556297483222778281936901032979325850852605923054780440574610873635650489183012732059845202665964507681751319304979979291594106321377612391541346526741321668199916322056886874626746554728321190737522842174777611339717100424381679439155417003482391308887976474470295682522450102766188517533164996181397712283433747597807014221353585163832425026725972129445066167929395683088067425091779490188826193048768241522582248663575472820627364450173678070139534513214131148860132772719585124935770123411604523448879193766314597826147089053647986181784982833229212210224566474191044242350924605347983464865490231210550283050407804752693908371313661499471990154098327907914092908753172188269227892713845408062459785163868910483602934930278849191352590073451909154345913725190297908472742274698252297652891969736026992678540253850778961957764187818587332118379926241552819263998949836653660757100437148802546271752157188361816079663558770193317126980013794482810434108360209665320914398851948987447728735302243058934625377844812527415748013248930891386206989691705783261123157587744159778468346445147779425708629239626705918875436839159463193838123757290806209592261771697881617782702921223665559334317416761827803450168497239761920209099296462590869330858783601484536412663364097921341282005927063237129478989188763633491914405938890083402593030822176323241010428763848147475510241191787344835893812088722654661793568868686031012326390813162096637596946550535409237887481019768366987227159585168570281541568638816004274824991529122038082398789739573309491836420219052771443243627714909061693540098044212504813850227050990281205957838672033625320050294355015541838358657675298254858436285667692322216368919250846251243514986787409636450142171046145664112110718357116770412916187866283382012616254588593047212041039132699467617283436326982693216265496553928971268334435718085678018633965085979160037077626913599491426747714592778726467362389363805740951927791745448512071876808016553296937413013981384344692875011647065450979704053537591638122441666411626217915105993220709460103151639548580154611223388579172769185489797209605201412610490282531518411597881635064858232709942862209432787561035951639182635682526351777405500471152880126378153497638795022148077390337025464061197669421717454874465431920222888277338831418798761185143679362989775613719426930005194600223478473008528505681546802757413076618097507459558311806537214463720689190722410004425314440645737292864666074063952334059068470477365010430175370553428598466004491655967451621530923490826948467931496423514787854257419038886033436101628977924995313561046822729898037018380731916445090785301256423583486304845125003612881803601730695459875355781920499504578719798278329096442196168444456925586032451195131261437390157486869493099878606117991622085781548633022058454697539835591045793588106212219112908557424497983258811760994243305507653351809157560238754151758015131555894251787502143435143229891608609685307922679490074421896950786578399599560101633240858752668036336712496936729481800639887472362920345168319920269297093107178301187274535805702412429988056731331345758355891173079844762788403428995606712675100041140371363615187918982685096739597202311834065138078473364193807058498224492144912352389351342447652872796327407913263692148434836815703600844829581232752188135100825321870758912598016329550011015130744534707025679049508331566298875954062265528260389389428842360246248685216505079617530613112629044232592186564644765046573206816526305091264198678949528059386608715714414074779191954430999838419541957013937230402181456700852376380507007351183899139155638053434529235570056013554840702924404454174177092730978183743485298267585937284700851759763720115396972778485824133612133147564076884542743785893752714224201892953952757274451275277493252202831256207686971169977952722270717982577937049575159653092919969372549502896318918419366007157225971826845381661649687427302600918725107570329462180968363546295257872300353188166159923815920810641573541840554058930242873425600689723789139138347848057225372183756294503556514841117916609538479103044719580050695136922133978185760158243081789018823000415028785335460767193406113953865819240951186958027895754723105142133470084106118091390225695246071642479671981174807308871208338459232943830740257756819140521114233585863972085310927577100038714009354585416229852567550557307167021384029872329260492308178770925105877389146298277373171246261082242362637672631151248369267246706433951350856041090295372046596013504114286180170582378006513253646394084376164019749905813931347755785635127745750349533239947585827271892600029396395687393605623590211919017085843658968821675194275485292479218937734547668807663166075613307733004098631725331884818503040753737358676764833278384612886147852790890912530490451972499818370349093655178532840881998510539170216582171423140597182924441839007513498512409830903316002603352857597511971016716369963467376051322313566963150184559208123334015554708847969477537114087982859941323792931326411189758133447349611790771231146694379181927996239065226443505933619017594910005181419140585658062900003194782645146709925728529805439829011127301265895253123951366652537386144770438036896008193418529152624556822125749787570603263115780555520787476173699593622935711567973696563918530070613258973062434982998224954804380754555610603522042709764065996852688916081301165629554892210389001422923996572600136897650842282374253869291109669414041912499563120583664300640862819650732261528209542801490831633230304156183711489896147852345538785285712498391617833887948811959035160250520228623878075934662107503389224690702460680211440945078731993613834509466909230021636813988887203052442985660720742073139984681855789142711206152671351027229367596611553345600278002574546660315407608331788806750092462522428276373600052171561782795983228056852059021582424460876571640160975034682073726969287229323414285643106818792651075544877024846175320182440491596760436339891317155910116387516446368552675242402531083909172059179564738149754606861430144131842214732147947456458730416399853344224011040279153920796630300729857920365053750079741578794190816309597190427656442592425529179913839422556659695954480510989801567930883390862303277963469929828240407736372066157608974981310269461194321828610207880959247342164346661677663905272354513667075072586426296482305375356322891099394126460182826313649251237348805718554258354491354733341322513484696095508432526564655817498428073211430894853134502402669892332409419435268011518167733475374074129988039414888642848820385121225733506080202295786167586616276980766071487811191036079305892895617641654478445618018488090777462550966485338481321697224455273995789468034232540699300279300765600104726967104622957793417190562682224640696527041321835971928937051893149912344065228854019356207233511228053133294669502256994436219595905295170343451686375404893731328289362719517536952183214451468458609270796468047146910477484711741418078474455432857948689748066126700120796766472274507789116203284382100332238090234977654076000394783420732327807738412867126117995528642723954195388797152176395506486396748295706112420094566040771304775108616334561846086361520573140336029032815056877712426904958318865325548039990686526142603413808204904273895024156618428625819649821835590104695393728783341474467908565343644104122260962756322434722392978405361761920124414787406385191843503656871259617284616123750074952532310195207248165526773285035535320868662261802335238748756295603666394097313329319614665230562425647485410505068117491272553565968997687162476238286570661494980945691652920535712025601180787766408930297863266339313043383676378247394994485312259099649685448797496265543554992771532868938880336241339697024123141696929308125295006590740050985189391488570232037976743184571473921656271930340822800267264115851826198050211809720229610842432045568616485168908770239093978331894699296284056430522297555727195284062421045336696662995302446083604370408684961177861173743972348036900281957228002254221097736871789134222648423153549718974905999047702079043964048459150279448108516007693640107871615311475543751044043649981401193740724721222116339553694032052779639106187742262065381698774771675855480214225249963678545557402521696943134989256884573499432415661921261194545204793514206254480386204131355729817914615925137032670267199705909943068374964380056261660204545368550168271880883335154432935531190435859377244416034693798247845631491152754710443211848600120563349464587131856413643147039012353046465275216862038230751754474009245943462612057904247948204262111639432020862106329981457585851810266928343974448159217430036118638499762451330980447116483989937930859751192180407711977695331489911004825087560919579041989588821775587332108620234912501507750550056485794659065343791897699269920762654958062467644665296335910480324268582585508160787546560390571996360025209929646265808995571111349525898426509597118544022765451689794155442118446478980159937452006985861843508909308468766480771647360367501435338328170001291909889350220778031594957408662173160749604575078984677857884156339269193431384718606038145898038307558228285458517273320999437973979578791365424552613685440895206243148191994529545181230607323812759846517177463957763356162857409574198829530258435568135620119190115754081657668312824035406169114561502830351999848568034390123273200799149428253399325396620913523634095499697239082640146868348143640050511544778777224328194946702444015939395512797946832522452358658738079291356381685023902169511561789690365640528701916053932279162269054000298548964162848871146838611564904861862248733031191225896018948126202136653080549198882943469179617151796195409626850634739305170638588229403795973409882263468820914979339612183978010479622786179976523523506946112931354389392064711661978516935830489262202320417837315005572886801815240649573319789031633475100594901695082267648905899650891962906649814996361796533852929478565643667511433579907858433165981827134867130497403167718195622891230135813967559186770211226569822482920619664443842392097716010655559025581617823885844078174063834219923990749030410120093184825274405247695190275721734213818522630683765862058125252842126076582724858493073932219599796493321964976713978773278664670099444747890939491009320316424766659463589144157280142788846366382951914412130810808915599996333210495077511176654402369188626750357833075765583790728833628447447529934399545632503016141720326323033740792114003236264540455391277998813271038640712720660118617120005485142772132484853565986033501877596879502577971013668422935145877264241009474163947265170832499856047860203175350370633337611562398160047095124207046865341540778888784356040839658731475666325400646528750082240749613823902814671482498040468258358298536685431805164671170402110735266653014871526182417947117898952568861181002149837742552223655212730444679385013730378346954520873962499969481901703969524845785663614728518706240083947511226098838100487076976391853970783260695683229131726001151347308942671099990863538446836113226628312684145905748131798228263656977841037998449033866975589826362355954453247653551898675264034991180180256491038002758193045095037875393343016783379293100266899896092267564181867713625584320855264770507690774693070015880338596877691375224304232494859849068639978282827191229975422765062042663939866290554651888899403005693537754862871991671863837724997706091087801202722967322008570830195892827627073213850456149378025828890528209553506867561265582616602873344603590391860743934431235191821100812672812919186065673031988793193112777148640427019483861817866599878119859842329991879128246265433819250045430877554258987811399391437238034987562575010264515291673938636921949506993991179271582044100368873030955796960185457369558914402898017856422374231518700374383982651138331809052865112631642353288910012238319997624880103851322134141547905082846140007487851256402316113147341203477106224348007213100691934130217210530200089073514758065683523031704105930956577574170699948222234910221700873997072175814143425166805705778126224531087902188715329561452528345000221780153023585741256537899801490388242355830856351809311715169374201409128562409714689476050341447897109963421903969524763712990140595649320740999477812966152383211979935054625009145835784786764305104457217180462956697270198722393362396111584705748386821699096674765963391781343868469879707162962237026446095283476664696858180039734402527790485523249942205344763258902453372441228949664971545532118352310981816647007769826848732271487330831610159599172284318814811121041091926367927524483606079852258439365795324011028768228822990421440162381295671059952620011280466650635047970477260828989764134438623882534735674831187656333055892669282865059573699475248800287693336249721380655788232428043213116642994498505198543086743153864663410383269769921349508330782695723312599577396887252505476424302999199527924020158658814666539250615109173243557322542467035449605910942428913430383373653401944822338219452486487350568647568597002106155192925456307370476690766298670005476041349288098698528793932073046896621066650092088360865408023585415844867083090215892915934747439523911344258432125363896820873312282280294312755721343486937460263615061223623705165476034891811743009311292931296312478054277250259655327562872666893554964078952047655059030519509672483616793882449878501722467233488054946649033941740388252224096811974908040502065839511831067772914880793514661992162440099976791107810836813160052124488290480713614132899652664219915401747214160206457242515996741948532940447051740001326425889560783412100719439077215796883204886518019064163375398474632417966447304774854106776878364647977178525661991903220844105938901416853488253295640180395472044355165235086722571579266615439592349808644413417157725926498366851872634031584176652458440482916709969429380531491469758872206767232482732815597307528601126823215755830681622103207319044448287931932652715618777801118826109301418343938455772900244357717871155726918480553648402822085995577697580464905823290639428709547205329592909348300971245500517085209812991451685253101108679314130591571576619488996844675100937806816746321418200905857934459738685055103426607541974353300465093853212270358183309526526723420995295511507286053138238884387248011904222779288926678077169489013703567352359642153052959330155881339776839064065182943542216459781646552655452144336928618705488485249684674518828304448491228633355526143870019940683865201750704722176735911656479580923164447238955730006630674121215071070649304403513844742934116389254495402328186229809477424913512091555275243514869029629851674409419567100261849772154318050811789611979194868531021003074609858051426659522172786160253186181605535545397854265968320145052229641192982382870005971739930853194730510277099128115901160423887977269492790071608982891348372121316996562217870699377673399605607361218353778572067915219494175617537056629198724011050212438458008023527457815243260816805106122747321356524708222612873950197315953750844381509446131732186141921123298081814818029580228190305326354949066059846704324891117261312942720042954462851782988013119310884112389723263455146685969404263723695202351492061475877809823213103441545545702578721455568875627669020789905459128191372910387065404077323562601658202290332059619262631584707685446457392985250347846025750069321269534897287065887994982649721331186581200949073140328755908797865050674717370708360826829817065686127842627533718754877172520236216951140666742575293511957240875305846045199805586034183639161901734834342227225078863219493710648649234462395023849814912408558411426787302377855713223946981465849779024906018417708423360793440607907888656777516625376789618346420949609605576728180711990279389134351261235547734560644222447429995123323996068435063240506574278468689430697617163320491764656135737595307543121293760814986301603056710099552248713342121631115240882653143481133920098596050838718684121715423492109552462194444507411043971999329343800005235335295616928988657438581411964969614187568033078296997312522990469277560461651454306006259546979658220885723676731610499634916534722349045684233586566863295180383186683413994071295492713791151834278636391255642699383446805711806723218819648028519421608819294202648666406577485857613102151449425025825981468442908842370717198477734823697455469426598068074013845425043243140983038513785038998036031897606010039949595004636649576293929394278335479724118100032299184551139732792544204276768291164861473242571204041191485058797374731628358164070420214131908716645324491629436050040926896191517295875794386308626566088802053472756466894646440056498533968098548052059472836903459594516447365163268923366707435688848866685746886757963421019777563621269123394813784717474769766270873631790965072790712592286815490671531570186716914254587817501912023457716477195641048476911256716525398027706014065305989484117953680724545442201296649008990413495018305136384475903055740927213074474487730326434631402952361702803014810457299368581604285789852206678914568980609865466661265826694740897656364348141410527327461046263545564007889157685333502617183104324804006060866127007149193200496428959301250462669629523015949426926063202338858196737667483877871429466937553799575493594165469550121441288885606289209071325383156259134894138519096687303107154154869846066208110653071149258158609630516830222711088829667090414616879661659125431901826230851136910049819104102485879979335207835370590581356147446463231360641497927209838082283277853823811272802493236871150669997908915808393331891845820260106136412119701291392758310996879114216130936040419788067726522064627735949402444631825847289475119901375619925420479703578847045747173655607512572678608341211605609488341864870308188177652234372243154913250388462532683939736499399039886557735069869169047740172064130256686685249848585867249280143635861648691052860629143386721280164802726762516022898206046001335978830231982306705972560486774881476077104809443159101847864668347988382722782750418776471217536039106792196634789813859843765435038928381754638940850062770148760886759951254940102476690476046072687618251722853613533776891469356668964568590908805192553867230657798276660221207678685589099742800295797909563071557267908839850354450638952010767763890741220614513499934787743654003007238369634066966101285622515963863668957979145946943671236343911387250657038827298331544932259239349644328314753106205651632387691772273412028268391608617862791152037584571126353111476118283341019084571568233035687518699597478539686065112063215569122870640863945081913239707388711389130489666673696594603284008200380615185033914298088067892740854747787204811079143984763458382230849214283936380610202502771064677496019376973063037434913375791869112550610513439850605505972341826991698476900444501051118185140948121146736604513117743785101006441002219737595450008554945018382154785398424557332125799737464380494265729701256183497347122123313707155700071107500637498025883042149779468272188334200363978822725269808195862211257685566966636473404796000144636614449454571020879680184905003034455039120613589004509333186333926661624558816790523115548011184095343419140995661130930110272279028124055816455290679033505803786259172199850361464753091769008207152917437325570438568856712932169795501732722042572684857682270915397803686281122999522105431205040010066785453991787130457291191394350261224911392156249798821737986558223924017767674533488584016704585320690998064538673264014563308182238822107812810999286224137212960136850295168782479481778413902414518632273477867006560430922033261350903693725848001209083666561186236509165743709790492078723633824980777760309251089229145865834911665481823631081085091324908857150298411429402905765674300995671178451933183663233401496018255075950132524590955082746352881940915505181133818835489286758322639084044232276377798983116194066526687445703273330077933274382376103801535803680549928669214139976833543485381159921954072764703478393199421145869794988904051889324469101931274557496052737792099514248815610278766122485770573710837207247880866139438182954119975519773054447546081148338823880276074821471967873473237336357109149314346904207618795307625545646925646409096093206765396952028811485252550376344317388599994914782800528715486023142717550533493264530317266907859016904721223267107471300893642942989485983563572367070171824492667351311338622865977203741070706488918967272346972152834518636527218699995155422138114483757960875821499050307699775031351501512268917829536191412051681730769938390722447082739336310139978247940505300620673273755252844815303785705557771536043879158299687656848185298104952196824420414942855069622019236510668237796528568150822399766040084755661385790482000884983011175861533339344369925021015922091063762437484961625412962116171914405774967030116261945259141516145911783824098422096923320348714884246456508744252352376071312292292654339344931711860254844800196781263597155758882085389441164244160892304682484405934006091858530975410326758480002591091241463038806995001043973405787676647240092572599201013632537883075990730248387812538977764341363171536912538116156062840906217350271948697102863783395941864149118841365824755964339282621279002451749039226932916506640427564288465061802203484706758900886471719790684330138866562016128764654458655664695949655196874543004172311696691941383843822994623083230816700146828571478417637227242835271214927497020003753514581272979328591465277985715635834535926161996290193432269398485073595173493151835107740854429645425911692485553793673250969718887354701597866108178078674759585370077014085140745269071073320466695924768553029544417018401326453432320607492317026167883703173276955388119925280817260817413430998713460139306527468474625447522227273430713633540037942627657653848234677439968823069458253501776896961933104899928731856572801504026966841722556308772097283294122060623350264493350039684065973164697961407733967356820105476312024054926353922200427338029784182330586702139897293297255633228831301855260432057541403467863556249299726345218247195353407968936217745331392261994578547341195694013700083331575645487767619975480157590840190309729191536124309469256362091377854063806450885195066137406224967801342060297359856542231305761054747045720214055440465830421191594890141039425461718966391911584949742862343781472817090746167907037564544473586483957114875220515458923412277708605627340332932005312796800126795519463813537688220066820450555916390931348251955540124835907455314851656877901337072582544609670331632805205302369474709760890826150191449282741505086361690127997998590109549297165594021082014162775851979712906834169612158254527867125272479781579430367481450875795293593240594696151418831700895880161608911220382128659882423616999026357052826530067180549343724089047113701986772787081143962897528392347182845956734446076123247208402439102705244720766733520943109309467427691222938702642828233956110124242666017640169310019904710125526545172188954566864088257251366398478127457730187918427171987273134480007308014270405272165733822495055610263261430993375800431235070723270817917719839576473214384766393500103146601541135800588735509479781572214160762172803461308921514859528717853741943077070263495479887040705409420285568158397354808019355044866259257943918377813043065063834324595779407788459170057599168035747407044849458399181979750807258026066687697395068478969316403549369619718961587223207416960624696373814993187800881384055375411875587543312647277747454325856635478917417205062156198882248078163097321118237247122522393565892413388110689322760988949373583608737984691561555767886453635561932764488138766157787104531526434443552065456568425650284026829788550773173448213324807180414175428213419614321266395454359340889573406814712277247020619120182436036205786886389832808271345363593852856194802099556477438459592816212160255099863546029219377547123401009553348702151222130425926796355484480787696520848739467491750892235008337015310432111768067152214689700046491094808873775541692653841176367045375828322684376489232663246420287656888505741956551168960776449924134804966767414379354300931411989607962257520157538276215694629975735460086661804231520806244468619268057415709489137791119185036809485013534020834241976283894180061023276508852468087178125830185993154384545365186291648813324474473314478258345425435442849104472616741783480223579549884720304543819799284808403435969479101359248149574939550766585586204448251922916839916258214917712233407466709327930997517146676937850270885444741548050446096160145969502488436919799995698833850982427819763185816616571241591671885874748020494486318195282619017414264519664542850925161158205433643691640183460715451272811310424897237982954955110211939462903511053933140065584854264519519366581054953531018747529323303303147281040277169693204831505767342047366659261118073800440443617382879398238539690775486777690704034404641415156692779320922427021664682253115437096881171146879907107414859941782599858143953516084208242101004626040603191239913955084979655462109231046345248165659490444196785217956236978025905666322763452942004618412130354660532198561609157355281854492161452656695807983856649092518498906644384948842664727844957088671768081809503273272695407580980483949046199156588497903868534042953797137111046562800583338834148278501299383515451891983741473720043442941778206888071422007582417397231484107279763666365386351185226216894489133985159391607277137259194816311554997493598003178342169220678295328338742659803069425447349862082365816527605807964230689980907957011918272890183741970632137497988182028292848863720435626926345609459828112313854699947335572870395698144207289321407752471149149475457651870325526610350969572409005314454445317460738998739523113627709350895827191303993344914512595650878195572029443227530899020925863684140870482096092413138016802943829313750089412701530050141869002205861270283692605357286051359136464268504024067534902045506379709739645464272004339134544918805978610650695457588996434410061790166344971839044779325741268797593822850939316397857495077770042654395588234752750063596694165614547659675009247144440248190002601240380373986036630453380685697600886253408813120661682178610939352600427849224489460948594993011103961898209236884100783102672571553670200165050227496439927219012563679042665820384347381976624858850246752652145158370664058698819896937165988071616619879232354564160103774212875687512445929652056603755309585553709068301018811588000262179887905522849434189500555667780240390977210558954125253395392578261139503708195308924603486678315202049560467550346109116771860822728909508347142505954979654386370451026454109347560126204703522509816817480489700429714378651972826102742373517116658509848044014761809201067766103170348042909286594419490761687714836475489426381485803894311519463168605736551425028598858457570201738089367209552187507852550932788027336343804726175490704652489926662075956278151811336854583496445071984666901672635332761362301491464775930853692163728859525140013883611441982971769419604791625065041456754226296894508467592374978061545098375946149190734800228298462883047865842025674624074819599927851890598596296200821401947458858893412959266159329199910112799517844204373531897949840887908194780148516884109634056204017524926501722172736995694440809217650499359013540615449761991652772464752963046090367613775407649196122190652194490090917421555785656476299505828434707879396233795216888349963797636780596490611406573222545637737558852040851221614104369353621574394772452698781089472561400299342118726113007357653832559276744990786938161815595091295783360802883660262143016342534089513359166169464801283478698648104640844854682738490405899952130498807985698053344463445964892126627832782274352214648416067865746844661692752859937297027809254493543599700256469872759797215918801914920076760856838967504634238581616248418447554675243800327009232596338531592921672915969285628817969820220691446529127182112375457540936701773748894756391051483016261840244962581182876436961198323253003028192052814418384976227555911580440063720483530367114018401387619415759300335767262930699424195914881457542503642453189905029139050667979979000255340466895105539968985325989040241355222033369354067906376458491684345869882464879153275413493485072984647979025110888358498575049522983966764713979291723389285310945246954829919867507565070871905992534973791840075748739551953770315632240797627892831048378682573846374120754125493440253342555504829063772657044035895644076210786471791837102651164633559328670844711054083933055289048425410121501420561680699146057028441965045029983129292987223577422784488506987474403542091179023858849824944132730275483426168974303751273199695876884934936988892180300018690590264857676530343287430911279928630966830670348453557874921046382501382118146793236867960579890815826045046444874020998965041700737419904744433526449514994141749208334396185738448942425440602932264115735650230628606416550845632868217438740463310266399048270262371846381613176358921810724348883758816285519467689549898281372930082493584670954425020917730727885619819873269108314072993656966530285705599744056954650401242697606072298687272224665977863455558636728804670137277954463569781074255522611360938293403369492510472640666067112482843587552896563175567922355577369828931360779805449971668396258633850337194417257103142490842785266932020383294338974372020933409338664049987604732371184586524396394657259458335819122421914337461425962433170044039359945013257227235205717625972592042762808486249467964151799070633526665606463695563634708038182952464028404150168232735697002720521459447523669142918353927222716262333503323693879737706195580905717678458921426172222093940576777999955811148130960482186203848091242001408839073381382164833649077126738008142974370623870490572366441825389761722123193981503345712392937113572388505800030070895524018835764966267024110439920707926622688602300021433658340592636874694490988060297277851057001257835040964956260279807825755885481425487368611510462967105117276039391673417295396346414727663129392457593836287433048569649251939208850396963808229366770622705670508474633893613320977473592929585760186457447344807727956552876504069513492492540056214970978703804934496277737193152358117109706052703169963431552037755948300426914730799558707879039212298030392000721134366377278164421490633202201081025463577102164773303469508130342634170482705595054197249021917024120721833618465957665799702413655852742163969200198040486006391144052602793597903103476697152632174726490213042509722348084865115187458949858331673314745747918189983306087857506805121232176252080499280456164298462181104448949444148681775141503238918478587114040370796518136262644440214218534344360512901101566056763356696367487774324504909183939491073536291573089192961654235069122410571172948905242994426423163374596818851026013288911462984214521871268276205294281498023631487497915364361747597280155929239338490480969321998486243292544816441193681336812322546053969054408685440902567543196812448867838962054933336062061895155767501843919609001688655573710511972472462422833795986703462745447872971088767695974590197574289335310455675870210392669122521771191532894705511049678123017843867028019781488489922680128920779886333680322998120505872962528413367267652703743635932147047480752483035132285836813612525118170776268604300265602244057968980136138077356357834339665816634614550754976346973297832706348038561947556622686973682265795735741848859905524290332567591354243115769003756022318782816835164185878106120797570069067056048806990697403921173151424829315314348258284987264786757239835501264764853646912434534283435534602544973906838932753555897979679671800437906653244585767381649404990093756604432275052693198295567419280869588703941667574573376071814817571299728753927489326183603688351193373661301844134580403567760646237579941526762217727239878752256680460618053617850578676604207972860703130355460028049755511668631450859242637439157086503333765075685931975792562075704041455904495417939512325889230964933442812279566712271386423279432074683384760506687387356008029257400598475637233850292410485276290361175311059998977979267833035575375710118635633131495089951898334524068116510266077313002500640331868810625491573126433833779514774642827099303123488628399062250085751735090335698288642948459135594303070821144387777578137766920156988378152327306387187182779306632953433818956948515419194707841952278461073206648268421584760119122554427132567326172264490629201596997315245942265227154010480067228101742666629530321964284696436285474096137408636090556155548570407223153290307516516892842871581348127497079478846096176622019064881955156535304205335770734243781591924160989645256852311755210517788343700510683217608578125620848601269385682957708575515070718159025123174179908098413773383108882529901484136977553894109718109343912129983771661327427693859075566883562740622960199041908408833555724232362990811751741470350110982062549412614807148573942156295452427406110644268999621660672399244501160410550149384931785558680613101340549549821024779905623981838618479300781674988733584858514285066415826804603091016584664923795608678485439431036151469460219835144750399166783441413960569691527228306571316461904556732033534348541753457220128164962416098999036747701901492043558141834566569157951176423722227658691856610521265208298211453234668371470095542136826402451133065519723670024039633034657588678795918831665811406443749296392701075472294946427183814537279472812790179244495449657400002818535489995717522975745850346317244631614099074986532398031639879704442493725829750098250146482748385116050050014132900941987521452432349046570461324975180802463834857014278593128409848183959986447832240571065922218608254764231376962703832279397380259391283475034348001677056740704384644919014095996266540871737441603229999955499288579249548484366947476772681024209712396285247411706146490256442742988642793514045022031458173013833357841781663448453515754698672874785413383359221955898453816447133326129612991558517676260682356782905212021073322318158805115709893622728095520781859267562919911783840691718881249756356417729748119114114862075590542748428749564513103662296769420818402467283988134216370607058911523013978363993582018312979407137136313676862082361687139498156913968130621114883209865144287271013781828115094710286634618129675736121450855964264524734841067367169031117133958633384665699497490542818639692071419803435697413635240291937908455132309405199619366378625528302871912510755888052342873847067559943440226566705528678518849155758893293939557665268490186251718297073518419058570921955802548850801117747284216511367281249846490653103750172295998815972916438289454194302619274324408090863598409651379491240252570839537536553717700118304348645267587089688043786571077652924514789326344463999489996052726375893188092565678776116120913904970009101850897846744840284668069187965782168401763464809532423258318857475492052120978742349639014801800355111187583091698585287067062963863876071913642586145277790053652938474153512427584527196411152281380048816321423229932528480897133430162539890940718990258639706064228355802224022610096060039425640686836423395232578974782274728813715363479485399483899526164295874296093778602690461504605391512589688240235004536776602413118134583800547777563475163805013662456666878757632767825513161460328181064761296381036311784629453197176839553154460129568577494926273547622766198088526610546197625444923025651059437523093682278626875279222761985767005379014742345804763253715208016141326335492287782620952391604135401545887335627354219923122537025707922009648089401745397396504597114110771715829359746074092727750140532933473736646888621686893670391234402163130926753217693770082474466608822454271556025365547207836703619984152496337549835370625806541676654914178376326493274511086051383519154505247196080511452116131114350247163603644092828010950102181897188315121091941608086934453082176300976930677293518183519615596358946425170841417141355992651861121419962204463354829668612413093311688955732262931329924695879103637429465851597559815027078333555595233484869431273520488654553478813246962487592924327671375083444548251039752976059733888127352910787123471171328241114893541980207585813311101815004081726526914462262722524047566304118182118066221940452384795841803853413417502073154447882517692022229552753132519345009392595586112589282547436908354287068304417425921902399958645458904477910616466464489000325657231697147107458073418039892220560460370444084479303991866739302342706688828070537774000867964800455706031172864834031513903041925200181502253014756872770667466442380671051704872857319676927918012282216679865605710438600362990041776770053728173146276474844881807116033331947786932345801005020917654353563872067105608198608379204197620899853760672685844579876500240229929553216236704178682147282106660749190835809457383558729279567567668453058140458092952430944980136949039502907286273023431168342795913145042664542488934278020030663412731237200047573432167224748126406070389696461699678046685288424268784248169564680253695936756363390506798377771871932795841398157739703982115405754901520334967840056845144635675415547684018738048921433701816287474683485411271144564687588072621794123209715138085304927676187483141962690108724355755298853918546279476963884264200979905346996380393100904722404651249252399344048913511645498875121844839898692263393365661915771061500132145626213167410436105608575981110158762299850965011386057292071010130531895734993321999171345921394820449885405724461271299699110479012523692338574903778364829853762603748913936536516845392932084587264386826659003048500224684914442627934749993338600282899605875159499507973806728623629108505682679204734439601888276022205346797225204366139687685722522267223252359920006253076914586095293225070647047940217943435986678673854407153926444221536018793749209168968810697362416643251218608682904950371915685395163330214545446841063919523558243108346134182063697507428103233649879548897304372745917561501659991212616530953309401400911571117873446592949772783430446637856863246413594442236757915954364977939912674242806843046177592408963985663699718266858364959821732332746881464550305583269162458826197227993074298792014062262536628667889603100680559827053065725082765615608455885386055636378222998303649444402710402363435110057229837018831282377657719986665952838123918669624993307594568061045559875038054548685251714249910678816408341110791263904861055538975767060667484999840999334741597698041789265361719398661946694955264914081388781803308687088786491329997318112635111748178152451982937637108201766461477757244726804606196369272002814636675094179433050222626168789037261801424361098845765179259437485406292539532767395098720130138362856948418955156707510211111924367500160068610279206512129174045842729417985893869058237480141020919390264093677672010233951189980365070479590045620677199674419871295405977905537466060752452557733977691745478397190344285032605239746168936975892424115047153339797472389937288618289762229477871131265719842999278171160164320741409627415392511409548734695979878985586669830437341731349386651509470357386018262495178306750956152198645436509866358239596202494847380275309760523150193174338635097654878707793079970772230589895115071380160852328584310895839054076070587512336765236503853668509658423155379638695783360555648726615691628916966298631338202544458111497596960866476317925414600869299457427600534049622386629679034113518060272496295368965003696321618188017724429634471074448345160130316177827408046975344432812054491119725483161526150430468163551112385453543650651719809140674841344901531429725288995567413408335719483300216569441102701673308418492310891084001217998166455546827123911836447145940427513298684182022696130952423972681967876452883656543618045140599371589358938844826224245843331470774006374446015072583836016244115442994401402824034854247882618030011443203423347742152677618875449002467311209521637443917729177748233234655964269864018374237346311922083008474878734342154154994170703148944641081459215552192676665948928130861092793930332714568494226981228516518333026104425809062358651709468684527997496828713979968953158461558715127278389769992216259427880600863348327585133884388245660724480026844998588487505101738914041253580844691096915301956888162596406639951774701614786926046968132110609887807285906485981047040548484641028455171758692551233548741060702665852348923599726842691987572849133806441181009917866501742007198955325360124794343341249345669601344782883180912041096043771559078516278978600663447374777776853208645394389122384194941090260984329391729734951199038045145436445369709774921213382227320309810961152142490378305059345254400081487086706147575843468032536849284342698531769366638455942851105893363680893118382658637831843886465081417730440078372376322470462380951647947886589828826871369724494100631609799833124212598987547463446111412430800009780077074871717413198810504784350476604261033991511306086275508275606370088083610924107586647104017518994512553746513625937483570960872427518162327334325563153722986429639866048071234963167696269204772086567829986523928755322390416560750654330776304057765721702471239261929169221127965781697734512303286757203955594464795703603061720171740919672162263501436079852723735737274975805883474882288226111991335232466796797678502900993793083185560349446119150608382421967962312298474285721471448145893945811208996025018163782943278073021931879141421053269074570716657786097485333333615513921226847915281849767026006397426749356325120579753869744655704983726481899200357399232734209293308956038301016865482307459376534059497807927206646825475720089378016434084805571402843155597445862913339320070431513158011454660126084896576564273697358424829559535530454571853035630655090070805918310117737604604580085881274737068329724736314340951875060599367060571279303082351961618256735387132175220939246163532659688837389148366433966115506590405992664213797566936105405158056018356374953072973128145766699864273020026541610408661257099593594580119974430070795397081529911931751388496472131131320513744369587819962135392380615760010768735798416164220267204665217217108603158444037720279740686539509043459454028897961702571655197540730381959146052639925676055777831135203528185106048286036480771185995698106010746892670080020921151753449314320307147293114570623799365577257377873532078653530054162777109549279313120137180354047341527114904183867251545297837818317116219416442070165955368221776075179072783568907309740556868450550407681364767509436443822054413423054121344432844736187908330225831176056031436434511061590969419856714385070766018259989827972030245354851485989655153109919826880916351103721024457378647156665508317089180881144984136340791550913580179811672308855004057136996408175566724753669116037345266310308036511316078885858695387623091619569228402655996556755722692468983132213932430861000219437305028757531532152730665709169325989103105793908783068704722496735740822479812618544670858136435088823175257869734649135721708837668385697629894931830619176323216305964288823143099555305769467600375993903972001267371185481494571679333407904378414325203398249567745194290118905952414576576499045488879062016185877575751342391014092269514794297065560059527941251792527483695063120554013908324613869528528297209737026948517152419931497581471078061112842732726929470969402902066665421695814897306744708942873439082022601168489045609686524434610044308989599212770624311120619640590610575481990865719687496774454143536127927241690544081219838543524831888897109783036898164233392665721309952028950020941714423162618084663697017058014640705314946258773565977169681206158726159417382922645997150630465411654002118114700006839740062670033561097130124972187420000780438457125012537242518688430408975929066391237687833557114840859923282725704729460591866306435601343735041324325140398026327078220413670480937230321706572903946646250487059275912171434101501091935080482859271077111051426217660171754942853962271505391012299807924004702269171263222916900143579334265102092284357974285812872224775519286115612188016430449290836232093995693782076847398620237346365336904689726258035247430731272422976672381441349516187666174779363395992259296616470861347722654440934256509098054364975202932865841356259567953128717572715005205591813022844642510581271034801395887389617480281719155212288746314395092336639051893214406318663522405327536356875745093897631605938560939744735511822739918591649277117203116610668113626914497063997097787778648705750140930977033358034777086738027257030158216522056253992801622000573231177346583297465832139112186435360066926251117732563585616859219112122724148022352696639824170592336385255198222033269453723669134989821773808038548087056865643937080898901168683532525116704479480731199298395410032295987982562730476426762641767615142042186962916331515019761174090276528123567605135102804928486893142430994931148531030630929836894010296796921205943375416918573748869553711634478880044130874465441634299385038969181073111896882825670553800840448291848787091510715854115255110873904723483004768994526861748847145120664019388213064219414629504373002174457815118225362324330533773052269689724758176140408353171285037257979632767436829364936635407753325225638104853255317339236552889767431593072626540161236842588610475194085551694190724576782953066048235251523416130551686443231309428737943322910593640321373549592669082869271366411699684858235002578942076594516310476467719674390891393134856670744112772512543516787780399730576575215163350769140967845790038619335314552582982538164752391171317862419487983596847064241178674840647474527046679428005407603287637929463131877708187086384703697464203832094330862663835234153541782180340318126408868627602674462759413814260944770642149724675153789827352874385098277481159606410522220467463312589406128982610298310281011850270112531075556510501416134761117917857701313797084939809757791892475944494246282357924460700915105047985130188755338884950782039443145745684084175310320477396269945167039023704199441610247485966326580667207542750436984007791159577665649273571901765225579799424731296594443563105804416964431541659523919577476819421717886826823617870251329361403419398576599054336438342452151870943001761927663028816543064979376789283098170005903677018220812243875682494736057214915803345916931196203302542263601792213247893153333743368367702209806611882888324211456985720246406746982018872694778058491282635103829751083883621713545361884009423057159443713894233935689414481116050457641481748179755305456110526263881376249139116929612194403131680711019794767863021364797721065200574610303871432791303713222359268957157597027732412040657937066324986759479502401154545032552670940406165827697669211494840740344079975523919950101222464159350691984480191534567920718251556672219464784986487292879353275792500852831202521382374944461032663162825784845420442621291852004866387285449736357527421481339707051359686046184959196488852931030705270748255106860941659023984894427653638754622990362218176272639360162332613207138973679864201079468246937122146798522386328376083769434033829980778272711035945213074792749279691110931216748791319043143651944738619481542484661581176458460026963968530261277725628293546335610781752145626166010663798315837321477885165516467357781801504739401961300761005607800918415766770288324950590700352377089336567448546115582076790538771210222079105241276443292599666196346536124889240544575683598645678258201610337580967464796754552511254579759799131649728140148814285107737736015287543815505976841597605138441240285049661533325013989532226614334122595361116814717173860227095315213420483230440672938223040102648742493205338708269346120074643285661902113027581273478509357807796279193984862244064403159203792681583911228319516338157628694561876993320199531806291349415724223554638488428818651371623147015456828996652173410548079136811694539473528812149483528749449622422181971417227451897155843360459743054928887825591436144108136310354874236462121376319278341798297588328440661541310692283077297623330968246170348513766557482450754665526889343313301485263497403314993658333944676028855665107723621812897296256474921179812668637261716762769752027598289115357104797765963932436618761387653751857998693826531995620105948108798446633824774870052871229776931378040671628496572551115706912715425746184067556398388568292691714262347294987244047854589730074504858604807283514045476927131960127043293057789416744412307200038194038403956279934521077655951560262066487500168223780667358538837053042562490505816216734117430942956670171997331414092951521495967207076200101102278887526610008110129362513390975248807712285783665832916619377838011785314861069268589792608024596157576157898060038283080031275004161964111140176050843826914734706404003778034780694084792761615379588869245736371721687499996386379360310312786081356817616853131221059660104357980384565885875787880023317229605466426246438384132200841164207814590151597644189754301160544525850606144033607553468772837846881083330715931347612834551532598447330441614072466627109913773038998274372281386899148808970855529127350287335420155046268218541789577682896007924410356961460204388854909443022240594736352221988737282822336228856291450638143586933431716141678743303108685575033216661976146328504141208428035174888859970450059739671477930745509387579046270044090594845632276062717644261586945845291559579050522241075602004585084811868676282470428394430598085808530610003877348676702552543509319317463441429425334576303246689674421107715018599782128337845180284672786195636540183411840722888399491378708430085821391983684085605288625618432468373242056356173194754781684858948684098066286374500329084841686283749502124878713907828048138383002026363089619044349161214563489049952743852905330405265442794542113987969213139119063159145133973233504316147713403047359799305112914624002037980476254128407987787607498408829937314716040852997260901123889921810548120928453322789265086318403661845326245005926725091800798753792082798588583986515916093764797547408290013425392198186790236786916732733267701289595956936475976294652521429198896513678623527377120848303308177568648143861720367603454328540510203631851359662650997692898760676266737814060315851236531157575380679810615338106501511225660688540251610454581991189546882604620393028829937058777500618471505853085877048662292336724781144113122761073343221379093207161652930266737762940278459747772749625865471876809137269972975436369672583734887966704611727057680425449544834184261210811128842323944922294675964906527607661446263390829243661472147729159343598934468819249179450834893853926888471157142656835032947889766619866967293820581630993278168767004839390784705973717256270019654020838702829408194465918540128299104970449107382525307097441667199147575551295151228303988930926020639820383100778923091745620380217690646343361760183751358561229449105029844159395353695788939414192095883700254648084182824094393391378440741269488758794538084310942468048304062822438196842586206132876189263430146130260967002251585006096452488314150555040929703686662234568043090158944802777752225262950294748897468282287497804917138053508468696394097226618604788730346347477386014729805255815823172350851197413787690282001765569251483044994751156825415468254648779679494821303428592668535970016263086420381316082075135183632376916705238573632380432266577615280142030289385392228841495415597273364817375609433937186906071170242014765914637887006039629369434668926626374302936794697036268236844518008948142015855856239867208602914820786931042979486924789855541019654218373433437403226519806119670981590355579586867883746371215477342968858886817560131928163176125908218270523260530994364915015075790244589676161307359984868034475498285608770916916471907571394216109244544451593706586981144614629612239338122236399469270249594825465858340955394845453429996077235573518141081136349589421162125038867921525795178838553255549211822364696236112385237105406425734424984843681780531828080483247572950297616156225879814141262195002361627405839021780118707216871910759521999316902752842560209953103771597185166102852110329098910527879780462760861510171014605246217622968679747811305582306360345680458115978857405720215977015812155291414444715339034564293532872015537137933963507118238194235442909617572832057674043054901883367173875158679383722197778842772729058360187642547561518673062733132737256309801032551172599959302120603146494227311139158840219639624683440787163100025414059113792797369739664666983504856444846611048071702454651769699034251419544894755690135902182654594676125970889330702062679560536163208498351976846396176723297683906638273189057815319434975946471475329593895676973397446286737099149956183190394672284055472604252994137872020730144814531346692748745980147313981528874661712251135381918400299144261962933575189788754047418097879344475408411490039295492802113571364417916532198159594037135023930625311178460298809119787171455616978836246397677311276111013361632126190783184443632509350187833015245604655353471600968498545687977821498885729392984760472222658934577827152771625240120770088326774462857097524866273638217591192617733240646647646680042075452531916692104523877197931166736460151313652458689375685559236154581107804279193012524942471224217116794431466345334801702599549807776507079164602696639955909824364205150276261915769988901238657910166020534308272168102262136034428684518093173017200172779525270518760489771050632458196991737863031853226328029083461282811711822318966987882879289846012180593522331807478750492225793137930657668741534335105873825204968418590359847560975241523152427564030132803875867688325548859196842503088902469230746269918833818809239146082487355931794751756893428830389324082058768723681579910694428039152086867396226539046028828711329618961830269771131604127678154500661980503824056564094860164161959720877604674154931181454113312404859304502456893198752453798928119421970446627011086926646474824227352467217217948222101829113276609239495952086126480165645066786727103541300734454786979074411634543439485467089497315595314632057398235055413207814507022921953554579461205001195986337081828707984640478344666625990409039452809277037550685949730358605901890249741247287493149634370144199899512290166883653332281507925206316927952331474375142905758271421041328710836833634671530465292858055802572322296216865532397932899860465724702041802300655091302011438903669467516961459906414467120904483374939782365031524979473997881418436870493191147940797392545184724021317419325991792489725650387831504249221695710210866846379657043941063829201166685072403882198240495595150619958256165855013843545895987310864022768220793311210923395014709080145155028382181130632153389414346768518159855108417622930066296067772169465491429964368106575556525341968108883618291310305461078941173261960805134339488358250970481384400914973669543915812508746179969086235018070351242330460325719217920686928233686356799165396113708399897487410910856105155598178361225649300292585948725553191061478457383017507442028416920288040489470763134027757892810236339011614415069391568649225623116286490533001994556313659792121020387740397013796007770498878811892278275350485292028616217953853485331193140642185435782385600919378014098341115014446920156212654957184893973914894874119705932847541476156861159398127464091350220038702182550247770208056662822786244384998616718583510019388239074844321130894675406565530322282660457719656073517472175309110658415815940141169677988118546360743193070612091451692866937354315842012643748184513082025972831026757360324272697060184661657399076152967224376788800524112382953538143858676418389160848348145171446963209514553562794117116530126896640764679349828651259281985892439573294906306856092069073383113175479318713978522219215991915317432159546100667313441628485015263984973976194198110644020898619854372530821417367017121599469510238093643813844127004749221031225071781640751907396001873028483981599877277687191754511763992202427859144828375632011802131738693423871206554692190466759777363928656380864062115189637909423040741284404597433115105529682065930158572400591883813895608385213541530276576187740703967549536259574116841799360779099730934022215476171794894965860395624743704384008135653809088133964487262159763661073051843325899277231777014751378929851173181305435977250648679369263923786875999379995101778335080543898881197394192228890957162282606170630374076500913720687900193708886999021424242026088546055448068454626990506239772832190104783904548397432390422339311297701370302718104292499731595951779427753229017427143753434626057645361322448685189278605685323631166378761534631128799407248532405329438532462288135419497644510406475786565813282953334031908404531661662347228355242915445119129337016988948721428874181770964701050549961856642334834725619117776120990774974625557585050730727420327377087807485420827281698470966979725671161147880577120636786778606881832141750676531727761780128700439235381257019943262155800309327863910803110650708838337231385490543937176559776099807210600346745250881933830087781964496427645574513169237363746435118437886656021064093921185779196628586501382080548147656276955173894794056666272508077785857048085841735985295131642417197978942069997380748242262227112200283675063459190882602794804310311732090872685053840604223599589932338134743502599221079090171648335769992294875856995513417609217489648034337532028742938680352528855905694040913386465092590246274437795328909702205669955927424343202155460116645950904521694478556396095134895961018932117771529188984345565865063942711438686494722491263971443345723310814557383436273101135814989738905435324610920243391022934806743367339465269163844648728278703539762413818559878676626595353523743547465013386586727808862573073677132390048217292811697616798523401047513381097739185359036259596782805144138596411061966417214093462198860266646681164519015925811012061118394791543374695259587100826973040186580869336067931714059919233702103330421298350762497270173508379991831207776347772675139373747251797855937033330319535731525623123588149212942785965696088037206496832754345385381511985719423152944400268867095699164131252793994561403882017931521791387191404098475726603163231235592376016369136065798923244980020705851389304074083267070007547055422076288143994174843285656993941516544686226884434238425987628497818253471211216517019297459284563796759198871987654451408785072130229423163284044117452151548882384104309430497963971157168542758701961854980149287339274641454757762992554498913866325204789281240889152841263136658958910304060514605604715711713406923205445711753227559061833613058937894986425343675641293708904147592145836587431816055243659796408435340736713606637904577303842122704163733395440477834991567221612843368891707906492869323930453481324277107538396209834653011275885027348070618476444208616158135969022020399739699843368079033371451013756573758481223376447396255069510870511245624457662838870350808974368525900530378131599601084594484234209541236423348502497292106468539786397913748622691590518050576491338124531152697779892470067581471719312008599931712940129143048787426696433341519872846896931248218566731213821274915038084647172862526922118202131785874054708344316381238044684601087838467545045522969011923061628643879437104656356344614250267045443810438269891047484688863596753616146544335066252970212945160904471600920890348602388544054612405636111752715849793308435123261268511150787014381309889279424057424716954305711364377436126403860978363448918962145772121683183089182675487658110219106267391793486532899773463549117032759740629826160297387715194219598999833883734292394637091659511347089641265790132306233816473470845912780928279928407456500691929757040928801057024760656379256611746557488147126237398413623797269259887532889637228611149065985128672858140687092280522982419981387565816038320447414478301308904233958304577276124704513637407702401594625401033983101361372195020004071441422278096922188729406340468903548481109893388884401032063404041826529252871064995413425155507082431668745396267589746843810356742616076561176304754179494247560140502901481690112208239542221049780900265197408836098481429651742044927990496368300501353698214064639049755407895025431107821260987608998832966697826941735880567113008428213805182529372302533136356566232194934603108796121231960452804869489870930541525104196864361163520110646772637012884149913459377434880391340435666663930427753891968276455366160534042866147988660375031465014937676909713240929937144107057677354486047512528305335354121103785600310746974960731033612949974362023688175730683944577213587672064960499098219584087100697269331634640274135090873789317815836128862380105208747948672342677507579988129397174907480391183732325314544094934615991402377471205960142728180687489396574238089316627415496363697510921797562569133709452919040298634670228692026996966374478630067012966166678428240143444262035402040959072347522444382241237581973413525518890734778546874877485076836105196182695712560726825389252651252377156769381308068847111924400595421002005256624898785534846369919392737916364181358247088534661364726358211704203504409532273628672016693963222198867392170650269693380021071408085209481659780304122738010488601650000623392191759516092675567216115569157661172213846579979327294953937473238499103489707930017763582147079365691005198139924778268334785950418525682430440650983399789003824429195683131173111000241207747003401535206227460263587167865852724343827725201629217504254366695869090099149045964732364556989707781095497501906368441466816738865841776063945570543104430728524261799187099347061265135897727650206937691911077067025780283968853277453065517254096403810658915416914755297989180786940989344460307007928043380470368134778121207177334072190415966091605510852222513429953489800157914261954500593098626769828912223855255244495330525652461136811879567912412349377845464184360807065983638948528945292937006779359201131163221876954765459486908135922237361921990011151103494684089994244831308265068702522515025662812276167508512691873356598557310111620120385810583303708490275570800529038656363503373907662953005409278776499958562207312326405239891853467264528977560555589785618436240344955522253406727974214221326253436478310219399725119545045622083592508021160193233885608401325970843556177286762184009253679584737525854599876605739994760427121875370304338721013865252834593156396744832675558221767554993543732527778050733672809764367836202214785996579886903697773783888855882241070664280045729635807166585580818409474904387872358855713214251682097377545292596991165326169128030838664489468686648615392937652544771565984960941132389779859140861378511003830134621564974413431599301559929227703509348658497861611661754779522145714434940901367997535943683063286938007551205491995409172994776243807510808559222321168965166710097688876348694225385909034911314411654830447132914266218937318400722893947672640322572352284408992954632491688118566281561459238054673503164910914896911438339211882121228090775321581769818349954990182696718204889557514596344393468332119693837098639619994757190517574364604452137752122092486335984921579129318879734276206696186909241491230201143369328816062344935352510883689602497735619530819122004019267148094542129023975140271635510021710487710055543129782664074454999598266521716966357712111884460147647537263147879502289191386011805358436957139410092866344392705434295664275209321776010047068756495187591871889620785840531227267999305948847476818654198787535297378030463236605210376988262214779403936137217343151879151044235904905369633177771019951800535691218982271826334527856920291452917042091430919129847010959006778896160300039732824850398802525833062017093446847466018070623566049611007677494433041841360256528235628812321153295862248546099138595181922253157280408081685166129901634434599976669639851040246900694220298699303937157129631521433838540179118130245866102713945832291208230500355272883639715649478952601113766450441864423150508910858486569792156116995920124238540202796311485129737632674256505608929281412747329307853374790401135133474058443051892510482509547286637628550680148427903545789428018630017318714953780706769075888819196775412927942694802011585313116814238371065588750272584831871293323180620018406980455496841848932601014883896236606430694856660361605566020786043290444124828048148749452931870245800292108212152596733992656297633967980889161824144906917571026425047469453592729464963430753388998017134023787654630493941791108342234921125593131482538041946547634202524456497664906577787377574613892459505664254291155480897736804076639300639419374632066791661771505583977809418303988277073314822086237786726519600009806557408517520160545877625491548267038597828032107485599991552781550583302632720851525321286603279462256665398662725793518956279126237824013161982233813075718095407765884687332087668698915554875631930918484855477771224151363138159706084672738837817643020464178342991377693165825577275012994707368603525292686006341405962426905072561962422007216274953915367824540103313627588706481944206741518759397972291660560594814384530243693870807675213287889257618834455714688918605165118025960049218363405865274999593847304459480109437421935499126959873541196055469249762263474082942323178840586245607579743553512934664843517643852766025472367202800339532641643761336454687996245562569023090802865827418916464253278821292945011447950537935050788931928186696392832693657488946872894453296634870913296270751466555279549357081504317533778937649800224619671256504407237955840854432865375551400354031644572026845930354715451317878526822521729434690646629868383568424687462670931510077991221085704601265818587298645221122107444421324052530719015720551065033433928861186162842521716647812213181609915493212314462226152978349368652414675241176643706251487294230351460545004953993493037320235086408837851572172974813028079133069090269266845075485662653044883297185783040753904398443907700692952265566787370370686274369677887199730916615009066530186130072660979191829891332096709730671303070343601924614361778759280308337970739667302571711488614607289871090059035206052851681069447149786543724947459208895130766491413782078931933667177581197819347234075061529295667765754383781297347220669701190901471125587819691028379248790170414380662900663598650365233235012219980404507449619489863629194381971510022788283969141380405470063079326751852824887250518765401470978547735364023263977592300407036733482585690049895603099058690729513179273239098664568976220031265462265667384884463131466042461598207522499950555669537308557231743024161580424484879211158909986760745329167435400910103151829616683442053326747659586562414553041745673673648400865746578299030923818753043863210979983264670105020977405456953308576513160800812228128017198331532234137046461980847054519841655244093115931738543767822661688490977697232798086902149514857728725626084848527483867645214580291368940519275690582693031046997775138893655031735038127199726877950063561021623340532594526450183085532152802385640565903789182590948128465074572447601302364151832849646227724572533672983460828673468209054630327656401577228952463277505900098674538051695849551803396071455367524289997381360577282587505665369019606149619427492834288251227379255380422152532933838780254281450914286695959671738320215503584428446745527789372335040102516887282282608439414576260760464459623009305092204946347007061618596742225670771904967928220284440415084353393244616704998620352827814715077567871885821383902543357216636460566114285099242079122350418147404055832924388600241403792526256682420120077135221178924515549659641564498816865442148785351142214896923005741230884674796810450765008796517152223035935198060594644880534324953890363851083539545106366211470515436192869030569889642060961089969869425939182502550385554874340202848171643367456525414911021584648422786244751057785186242253771780831349693297197744794908497509310967482083944228435378863850997422391069879806843576224377194609308889380467943785853920799898246972766769133241613599217068126131784248087390839465036455971139983068055451176585204982775643782935837421893382212685628334636180006952907439082710922916125877087966016827180633494581251589877793997881103993053453396635416227703011154981152358874674642213361510369147057895240065362654982837886545597807797965364899103739575309639920793718743885370714038923711993701168804721356109698065399911937566572346118699724280228784555804284643494730222737449076588630302097277926238944319228996231101349890936287467576224966926711039707414873272926627272137171732183463943548461148038512040371784001722053190939937832757422550975320743956497521276772356053925406347401827407238812756474663106606393861013068826841606581134461777384827239894064127897755873332489788325496054699762458719537462316953919455450749461793953726405353108696513572127065369775468145221473969382904068217737963009604335024074131046092882723861104973237737966163839036729450517272221225657678670954527760080437096495868177438887298987957763709402180563674301869349186568925571789012070255944897932586852425437357888286662518136017815336420110703857618610423540400587412093521188066920550622169193431175242313233632386401976792378870712803026461432507069880480055842000020485524086502151585741935247160896264462972954396342875526386227083473301021221371324025349005360498325173582093624331046801649451383447696517437016521064144022861908019373544143324367440274917868896189305770750301233108362705542240444219122638981305572445470506229728487324809808233673796750640028127437760912593136199145294213797962150469704694668880759717349039947777645905712702752666343500661264577933630616194220999167366386873202012067481920467033113439999311433680159261264102355825284026772080991709601635951227049776692379872011229926631813501258362688715860300606034156226523715311252311873022381902731325974753857170315534906790413547355724481122295358988965648858167265157134161978372612380444481188324694601430232999122205476141407932392636181759550532831201267572602881991097930196574186067700569389206513177947009886727669278956602350781331015480016820912266527145617852249435793646791188696064745508358062259490648016266056940667861438926567068098316930364310253983105894023833884105866172314761810564039445229689787953107781898523285639914110221271890322345298867708994340638367574221343163642547985400299317687272776730117203331191762515593893682762084377635539357325631374738658363231360462409978860788631331323263957185383865383438489883781674562092733581946022831009208381419766132570728336193549027463150648571046095802621701730407573244123616242341111999285464488064650471757764607939629113670435372305559669589168425210808047199786899304586397667951509095629291889838838949051031131689094332702282296428693208392562978786746435892185464115051226434945237802730865848618659430910480255046983531157627924826012372301415215476940059343175119835406438019841457617564364273622204456337392477415815829034455115638775598144367690219353693703742128051302462369804105910720025100540344890846962364311629427462970812765982452658127978727171945605299843940058456300275124495865263871792344383898219177530800656005645853541482933499646080845061096928413205990759078328210339861954500140400995563757474783806549723686719180353554918041045313578374807613704880154481102781043653763422926155154912721447282236408436459340673929990891538624644960249879213390012002596141990397750888539145938116270233685599906176758222858833744997604026954212550558586045731626971461012015593099175675745086277735439781547766249660861827355185192785355895891721781793695933561664989479485455619226368832377588251454874872259353687136263818457044329792266886824932775777759358960162831017647661088807846429139301648992538261977224940769075416264532493150180247208463610105388721869882157565341574316530096433306674927567937885357019733628396041318201260449271169629932757156941745836774991729965140747230937531270454003673720403917406128124655071239971128746958076461859621059551716855937086022189939779635388702992210403358382923260046599265656619759196008316890210164901680952373557284886567262416831878407767462032908030544168220960247024366086787576238685246907040154292431307947221739162671875644560213324148941595594906739472792649889917997336224668278452324449160737109271625606196887099374918158565075040141560085346029707190184601851584912521424335538112205518234696264135982796540588408570132864873845860759307753658104052178555496058812869549097737774664352916888500949921877297449028287427700659211845732069247085437971755702746097271312751079755193442506576459121539912903996675782786106535709237461958364485035029960020904118688037952721686057536364111247463623221718603733476916054122314459305443820845970231881655204253427515436664616666612622453261280748929178395882462315650042127256720623297268104825659146717421425834957059573950826222337609256129375365234495276287375405336465990987246698135826166881065926547659491937758834081631633200756608649887326393858202066141873718482347752943330780144225143949283499782154635861446477409087132543663028330091476862893393739271631526763454814888834808110690582044578432951766092675554490831128832720856919767927990200664727438219852340374232734220286242279414828813759835328721058447065732055163006684343973855271227875468796945035819700288330380784911685168263166933370903867673942212878664216736225495854687143835591290541174478622867167304399271638666432827270782691077247151433329463858909815168667335922477915432291631112049605957478647319129720897729326405152030731551493463910431386353083597061128798627483571889886527020914300682914050143933179121650135148490818958957025850314258703179008498374371909468811366581328874325919763682051462488542389529813455465821570225837456333050033042372445296941753476393599001143973380402690552379909901108210061021977848738139758160256185762469721530634877148301629741086937828941090008158070826177064024947503408896340836011094726345062114415316204013365838161115220782694319624371377667369881297543347047035263584983311471635058504504374452137582852495948764967043891910267255761513882378135666674983599342323452244041424513773790311464511474697431058270744572227464000586328950225127635883860701024168602632130888408584998562688253218286609572822534226715787448644558289894197217438608194878108720556405476620856501153989900065781641264513918324746498283638779504530146687197118090838611285582919271211696274429217614116873811368652812130228226011318234248283233619033222381520359946444423271339100693284290573132802437063866553207932695976599760358370861482909379735046557929909808194058170049952975673888176836170063099679863931244101153166393042129926473577263979998768985868331809170198657765390862242438664344478800371850634028828514949271762692952075747334726692257640301112139203113237894456572047219813667154700551557713686519772376047713240531001737517373406270747761847146436864016378560205544813902135535462644273451706628828197625220364036411368393449271195159021439165934104321057529165898615652811546497720085757112782964180297949908946300944570720144937993331624755610784616318481274905633099086045067495402463242873242282922019888666816002709513906095062152471307672995964286236163088835522613672640717837897885207799280515470299256628929646449117202723351203584315151058872802106074250362860174178024167313345799951220817771320002042472898469078948703842450531570727406008819902524758349855820358931028378637489769810270190510417851067917970597389441602771056225441972436933041001054672666868159504413679258649555973381826555052133968891934591418489663659895707028346243909684486375705669085299758444476392135894412396768514239887442112027567234838469870029114414458741328402967469852100840185127751028292119704443662749234918870489032665706999908303292764793606379594924253099882487370432346159543500887070713676900545206094264185917994346408023135305952710479660767141465203792265167540225059138391164261570514192141619648163691896694507685175627402447444126620592741808229887270365467963132154142400223663049143732113852473984133799851351020564428168906837385011647225006161940852536960137086828644623456140498324364117197268270833484283562401032195320268389893941252561106424136066209908209852087992753261387238096493223059397216765594934530317937256591061586536976449346442535927695366103052015363305565201953585407410296087424872714138561608551854833687012999436955552296566075691337872527737676080978903273858539422764462606173203688489801686617580222231822580557154667833522079930364262733676907989677843347714002637483014387811661917753400358984036268195046280364646486192776575047507179105686699571962229567035492810174583321343489681309210488992849408842129574422743285468488669553297151540980534091093517572586438551204668799251154123758516762197920527800105526298444098583281879146359438661753978006830346949829192850807638068741896748475658737431047064319170550492013591073836879299863121954843193021238479157512786043951997244397091705439314240385087178019898555464665248564032316612901471243963661696098271784131182968768219294859121407130267484426660501730838668642429692248544087430983921183582399919130534301256288004432771304863269837873415906629381952414125259486834315523984347260443331313799270759597002709497834529902243665421160305387748967734342300641736989780031689879339117418925515809094435342746880682662248478182811303367455446451729203497208230752655055610730088057913642692003329619714725972010760306315535978193341333492295134268764725255795655840893390848977790625512823139003778142646852478735963482622710218020337397851596054324661869374244443869524961865311071321582680167517064224190760718783275931823476107048639990360766173288186871478007774690365085872974424618505663975617378868232457601592812198154172939917565879873935016749884721317889926377827258575092630959512961637997449607012928435931614121431232444304444359358748543570524186289241982635599267894100401230215544103900549747430237369455002279063783924520007420298576361152919218119381925319969195283101983091865577565644894443607211335527051000592879159460600463424410603966963260093624523669621793368605573166187056314430195325325979320134244745744303746851928840672876007081676834960422519950374790319108357333090067971551048391910031191954822486301481596023733038445708110867279536342971650952059950586325184786991482484765472845640181582978605994751521747934285845976725319924999065996058335422609028030197805324345527822795153659124266799701202114964700551361545611893941104836998357978160291945028476241223243829073727768635741708531381467319549924108518100465383536154564573571098830757375863775812685304401501588628023334671553052405411950093319515439413630723485393677504559591146844836885911389432990854113282943144111127266400932106572938152256552036779312611120709760399352784531319530276659617143561002104291583867571198641424353856021492238890086754509871392382825232833984747995083573805791691794631994267619965631918604895225787209987136852884616272883102873931821955849940235734077803248306095513944711636989621780857711736247540210885502109896989369772823688616631193770083411790941801730467305864222238424619488346409270171204285587026048847231635449042149776565933954470131403911180328380193315622921429921057358835982523334942601036661752246950672894123438154210459831469574451166865178378610689330746492596304207151674450286708416662041504741672412193209459507416027768905613993111237848763651181819541357735987809672041993581499522628749277694414622767985954763014392463739822342224389935724200288126937209913174343851211180355384589710325348642950888055664922981723950514679237896316625291815353579920038460012458427479421130089928439537505282424372620907181801569118817255714536136316077290211219499954929155218678333568246663083110013629314990585286211326430396072345376948291072096600272472098433124394580603671209827775149034511823202031463048717194409783736368119391728404470453816991014273533605217717640588527547333986008046111747199237442109923114645621699483069195482855829366798027579316220131038051090257578470405556292418697228571045007677417391561049978557308307058785810739103802593612588953082481447313845872501756018509810793552505700633046918982959193927958662838397245191309404430384111826462971578646498530630123957735129422475969004418607887377016071991084117607144567733045452737305402234679886967378528862071138285129502575116909533946184687774072710955566232401478022677520497320099641296770881990688248640382687733326492320337988026349853575741384902881888098247486359225991278621908166189555090703053467154079634936466656357610934660138082000365889832435193905222632275046655487003189145305138312348378073795577834031040764117121765326943437894047972268568197933689622378062052734616201685495000226600175219696212537485221513667315587242375500506219859825873435147882350164654590304722251088445577550392005782854989891837792925721690558407770178902126075107909699547779053454934268905671887928398709369718471416600633224151099832355716395277338679565589828203962102089226303929275686099787860938382149745760381688625928121158266318532268471392981892962111062178273067824608619558536531827130143573423983210032304456135617068378186369513652708831021920030883470274294079282648724039422767667921706011796432664310713460340683789936335747988666444783029364400879590469507551254250769666974568343687433230482580092694859402741282191715832189978326470640603926473034421881896206991362609045225441748999864634864371299469319603282382026959737175572769691934871158206680832675341739327187706906877792563032139030026573228677373306994000898462918439258965916356278099998207124912736115107895834399892644018264286484860627351833329522987535980647980535860984423887316836756747441778604402904169317925968784698880530674928595087178893666526579495152455659221158515799943651607783972701561213925682983444742531971736014596103090783580789768145061407875651806339468151198396032008853349779948972925301086392942956449043536141000978508860314116978441087600943154115417604332665505921556237399386585537150463303018407559877680561599998846524999044658504319430502315401911413403463379038381264160843579638494056351703729916090967820198868877697625529756764070332667267031341481612437337238273438623537141868483237046237016597339467819573872641059032147210729016309155125852891445206063459567607178870364518836709383935748316145183241040767880711732674679099950281172794962802686750602889188048835065787219509043434304463983793804862239590276500290142367406901479991430728057921043404497124623951518367822753061490539004123532850627867706626915999688812232019661685740709162441414312701981636508908414493835630411453632910562873051380366445911334130288274441230674720072292572450684841938025259077743738609592371830709014396904665414492166594783683961047661286313016281137738372061973475491652238221917290903361935081543773187702044506944795451437466988026544697290752016176268306273155436534034072100195577506127582050990445212060211061603111338549533599706879531494114138687818628694185682215506410813510997378042076126545268960010703266371995450778091998508926780412663478107322475632511134379465759721088882700090831829631935070075092733218035687867011879055473589784349337086367450025527592544200285391093847193586306568912935585625861259896774568897854951758802458355201216890800071445988536693753002028315389483151757413250577783197481117660598417079759476959592224003693805827714677238985187860382932040808881304048428279769980041648765667389985506434887909517417357796084734906796641774693202869288602324057332372557335230916706284713893824089754029799100585990432434147243191781868755562078983842577499579485934415617412028215719729944601219448207280024262437688114088495528316112558558690318931746483708194755013229550699426084312730102289597662859653511445593484140893172227412747695617525922279322700258905704656480185096587687078577390764844121595240030542184560871414539780638652679049439770045774051046500119256930135941177073142279314255729624085858745692401142246626032104807189487734435860919289976904446865144683912714787362080569410491965583278828438975924227002731356359345716920094635005787705258789417195280397327307772532789592989333748948931516073084795869767796278757847244837584329231787106667644078550088186840670144539967715010451000790782269257642030682268465312129713407841462411328520134775774516203206130532596757065523691241949151438796073019880982417114387672925879902683577701295421878792837297929216882234257816608921050652289954679778921567342719236213035071550158319763791732512601024035135214336471766341288966251715363927487573070491111365119147272734061208606718565969397204504264429740179621129257843705369141652017262158282653864696042058524460178087947227245400633804351050195541091405156019915836930704686085534697151888084876350330902003784328224703121110373741527425795137666286458819137853025907894753902297634127449242002901396160946246551020973186105116767989146815249059096806297791845433442721906007458726914306874693817361945367405976570230546401452213161783376516635899233631734356209824464918919559043791223620692325345791458408477245327136052783515487097483097032673216316396698502255742413833751567460925818409380684202021400047540737253324766038165268726272139790239133548716352911762111496633465345056614575732734093104244664136816964305763521511816808779737838430510705940238863620605212675248202346424051899633139863039281568744111826969014557511339224126417792015075764874475634131982887179102478061331743596390344125153394116515162387959109574125801392102760364504368643130647414104824239937875996249516080251990619496933043273829456529785127587009062085058786381050369978827900003577649334055087763420541027515805717840274067709838482190510232408570463347808470516848380885257285250207643204621631190337335677940979195671740754208292809123400327190158242691981831910272398346155025519156145300402574559507804141212691625545499790844740876597626067836887924380377333452104730449928184546801730404753211567004893484985492490122559698218429112610502612890398559669477430368552604181418074226443619376408991158580684268334621695854457368695505805775813060388336683669449195447613878112272346002548516560700025460300422413990703401806463271019963865731748539064466723304907821801340905769546016349410759705456001936150433681864694002874615807625285022155464856072807767477435131836682731711362637250349022143915650257925482516601624871632427117079015773270609877392539998545080403077750780717437111870750559580844913747015851445409081949219415106922308438621269810544310235418988474571592687752983335617206244618455272841095286784815010164482895554511785051168802475025527469595464063109806756172810558813214278650905831601422461107410918215476126583869989029573176446620628252819624858503313172404582890817655853972702419107421104504065195627634232295049185600073347565378365887139104230339263482464779554884961055592988203291528273700233643792279211567770649114080494768755821749222265363568086029386318203367952929995162320006076239949836438199741354914395977676622504542704002477240463757314491829811056877982074155642915089047051415785245418495948686418503665575119526459025479802439176393747374225078744719598281428974714169652447950414147129851295667411752951095529467252159728574902709071141677335910181362010434200460120083939902069659708949475104150685138013660605735306235821634149603117437989579232876168664010705706763061122329403907898189279363431966745455833056129002142495688228666887105283709489910097465112690123147989216974050392860542635854526614872838754523014211637227228408337895294818106884010175860791063397689458061971744685761941937040890750010621678509339036973729784090842980947560640311164327494651337954994096784137806596725265306488896807236477109149052527503970112907583094633405084087200467948555108455447706096822096688248772642641820841508333420088596722977921640611264532141075079526301635117267538724844623690548204685208702941616203191432645452573458082410195386518715754217831026423618411595329985314570666495740864361012024569814061111512724117803094611776988611764404363152320067362560061990837964803811047301558305571487712813694659466575455045226750570959363383081781749294564717819608387628926663919052806738254856684863929185456786757965995129777475045147216119813146928672014119881522723215378143726271603000539039307915802546771572549573915041713443630236212096709609248215005418481532126070630788250741164981092547789045099814115830875885489773640157914562565859348355104769129443190546475142151412674569398301748396966099557723164639869336162673002764222971093527914009391229073090248708249699512503854932621553718584485564490115794407024789277375301532524298582307600778150896832513523198451884064989321447432708654116401707312421905905377461976522048149790889802578417995518313831561877393647370092668358730094111992639382805574377191083674757857804722098530546614099912101393458188836737836274794909478511633658690507619380912438218180877009745409799589802955369497867370006377050545522488774508191562901141707989934016713289293578846465348660515732617219935269944433154313881405705199988412316637528398855745412926327525082054954917863116587423265947050572213134300832602231084091374995392742335251027063324759346409855221051330447422641899713081930702887568308267629586031581439420408551486816615373904200282102804196087862243037731312542713902643778054187104591396629118424773925571698646589773422986368372120485620298074833023498019785298111981805230767888872668476730247907834518825573169588274931870275934147172937450841721927080787505307170144418693314452560918086894862774107057069683401198375745205641409055945885961373961373968795461032604083936652335373783772419184832298058201006902776727885229120842788564951249468615024441047388320805366124892477192977662895516523725832859776676935607474340827125118941684023702994659495103291096061436304515042489525063174099324618471714367630461623451019589070018314178842826854039752829240975967669399748483943578695401752913603130381520098120828140148354448123115126166143663933781558373380747861338092635189180941872938243956131719333970496915917631597136539633237565779050317646426870783713082422369056604351909819440995396678770410751716853990845076472864554759866461153895051388140960443816595653060876295026667829882392357348108256073275500443752991186522730936306791743805867870500820061050962978765648742489220923024496031448768589118789991145787601061949274392809082379255564012421523515884748698633054250966358841832782338444676995488516044970814908110732426182292985297757266219356393725968424273574445191267752038564735244149691433803468049548203200155200508338399620429507618429686363630714294862660475583604240338577093746372645434104776045942677386442686842843538028456031898274429193173809692492659439115145853714333194768256451602313555610985948634103163754983704889632311737646788535553755110176603612968206470784180841561833557722646003852373678213154820317824887300718717488032651940771413142447820558956977869959277805970269612197421115004987700812428102067775245563002172665981436083253614678360036387313695271261168010503818983625341770438043848258652717011311070475527789954031767623812907454626836667290099372485281879965631314180063690295409879970002343552110465740330249148215006266766869423843411243445510105473990362973857662715470704459448752185486039267131018191829566132703489995842224747196623329121435963538506421439281074726838434096219341899547619890516603756268193697519470647855807115303181596683309938327211202319923791905659296031246124089035038934657469768422473862678347299259529275881543106970683755816050021752503412400871251217808831072675196976132671187907464043297431094550599153372453822832008488413603864636378632548723238032201628847898491594426887367409407001721842712941335476988375804215729444620483764023938982547295264084030614544064184471193861582754473853093076057864478365760140691705278756873393360424181792656751732136670549972144133473255857203043759622914580408061861603005357074003911723649624859306612913706004530411341678292867738164836588749199581418341966311672257967861066944235969890471592232006114185905409358403490326727458327905121007323274587292367698251707990521868065963593159311004519497667236259479312063777155989323046206092794317581797235632851347500291976823802002656094536587954577239124607975531536770166440170129057824270705347822819000145973464311479442965326328694811235323442990620680456921488994729585585172166940017123596537464511108073638171976205701106414200279603337648189475495660727626675859805408224098194127246147788650369363440031559441687234900510647336703901731777444531567684122532258544715839797392483004457485793563571668317214304041152067542959069152802276144592902585406986371457435486569261474794496539411058381708220196901413462537200485931829410980486207394646499902326485811427156556784617182157125469503848656587491948024768779246547199575844716805881576788024010201622973931095114791298447507033541190486616802551408394765782428953267545462434026106386689259357674641483719659073255544470924383992845496613115356494192137681220533927104973481325614164054269753880617659191660048734038214775231861832603197890182575753601071970664158049930766199410780564619898348904926802669144496576113743916432674051924779464879129001036653667787413338863417624780183702549218707282319607856174329909994201072017272869772698258539583891586015087296829596958845646924414882507006879579637795432879263243949227952760370006562972264515854685420882513991379861121742038789698970467512873242917720428014538243870098652598900872579226748751157075921488779289766969996820005629175806369580663744427980546425365724620311969325875348118330089351134591350134258603469968474778423143917765078282307255442615212597219453009112166292998946512073813402684947764929753393597852085252587849073150986634204531763164155160316303569500712962009996215864883456984557907988459896703487405219362277264314696257120694280068848057085312335744819103037696920891186984070973555199108561654517817220779220139694777533330811685638350471785897195403024438750030730089500763609992736093545608264448128353880178093323217983517422486090153005302106399821861199125079474047599973214939182104776919035553503744760880632507204905627104556650957323077360252699541595054547353528918486469722132177480264552003179964105277561736392180430031623378908118488314154919628769610241647969034818592808481970187722011036266210711502511054254414111513204046535681064380693828079303029874894528967696086165581807321770001607778691324130191228298144856942126350989032019667831700830687415914503591635346395665671211084358226239187858649319303093765721037314460578713221403693879351776607054239909592476857213046002280230371649131000553968269105553439200262663956452086556683073732878964819760378177035166687306899971951370437001756756001827823550825667309828229494395088980701050550965099153336261975763102644084111797214128824367731273293450209667453915651955149766841889020367295660440610672435841083612106541189469180133254279560315617625361905379206710745943849603297013123868907390881024752039334308632527762388609315039343939839966257961079763013364478590000084201637945762655509261913640017507990945891863641944774229073979943371249608544000748232622178386362486132451346796508150402458611998187464416580502018084898428609628881806104198074312118306681264818540288825688351208699769008235562563682251533165632746959689454000168509016380342282278082366001958315619293598133869304209139884546161855840011764703371701131424350545387749093490360433915648171443298779615697047756088168799158917760526666778378897480888365913344486928842671216725829188622838268230918743050264068271080586234281384070894641431113515885937672746950610018692778051297287155684395125132089365908613865759326147520715983337631519139696660984944147913277223451741951910424550462492569843495517822506456487863509941146271766046790591209285071664657998687644854793681394565689282871835036526846149953896833908035943822828121487788153146067542316280263399933751491196484968141433751423282563114248819735450633489101858626805585836635858103366497424917887640944288095229235211087142601167395895754474974942470049961267555653505539262019908422654201698260736530183880826758172823526872941754842904993384851100929298974666978228834738948641522265641073853846984697428884548311376815871099241739094288042298314992206045866671112368921898892448265358867841906487740275103544484522107702105951803161325094548841954644203246362471974967536490056282874772310023609803837746280294440801149397410087578490639491487650591291335924152371940757075938191077432088882516724272765122861610954364017652385015444208355121623587162788588391712645228700157797408196423838987334073537429325406915117145757908250378073692663820235137414782428036354107776207451840009517096895120296690571777986925092598409051760560939013773393859084717896712760461748636068564874412931083536039255054230263166056739210149206494688778333735864206668499963980713612426865048616628290093035963440148822157165220042526875525848557891730032559511546879085443354369987287592381119065364684691768034897614488789349009984435075791510991088278227352056093825756661984246458938579558615784010972839632443862197767116241695581306846890259550410690606963184451810902106770484622198167937232041815207827484919756923486402828236893672484277750736351390106160405620584754481252383252133919123390167117322539487386834120607524074570552671232508349779459945947544172050296419391946817697214230655388861448363888679774743166583702842527344880191234341148557032117178830520164645835178032017281938374295889948398170679091524816688271592779671253181507549620383566055450423881764166344582554189584436572268613428389462804824572303174266191974669394598132197303847628223211227031951750898761218883623313119204590280883147875043977252562942213977317609332222609886112893667108266371617622673604645634503837383877623200476495071268114030951987664775866752157938865081747740018777514978415256267924137168873113567606376351578615217338187907299145793697872599067698650059029224022362116468337458913707068334972988576565251047719863316705479373821372706241105335451821558013464171654735120062346140488891200621173220934403675498452500807838431067779137883404878881639146976143026728880998826524576233709011290574055925693122348099418816847024303887110003090894449746637228159730906190695907431495356656608954431479189689438854066381278977045606213325814629189748627214400494175645533981485179400337140855860498221918503899027112647812122900458355531632431929963438300149604367115842497111159395037140283598431759908803846581440931686034639266301759629598727819795451683020044381159812843115068865294848196015952597626220783687827658407735823242649736295679413868125104427235950882493067022978912562109672906085169331377755569934152350960356181940261449107118852914916240899548199624999613237526998207686516783495259530843687687808588923626213302546387930410923379975077106471661294183967014213509842633485253981577224736466059306905796233511635202980576200361498677827983865643739771698943454031601068301043992461169635364881336453094949584525002055347129627278691473966992016982088505858777396175443102730290632822444827817130212313159182525028420747264863644939944663739691969440395674200601905224669513054227569660831720154940242629983845878443010924156319421693131158810968069020720228752295386730725033416758867457645777731395194650098994501848913176284995802115084836220176751847254474411033028301876194347185567628721719954681783124404827201871077007296205901424163688200307891011815017568039990438698104139417097778620765770833407666613791304109753498500080655448626954053672970012071883007922629661938295958755733951322380277246257154798039103331417242361601361882076030237256810929658955243648512560624670789478554345207684498827165349572738929499592923237620864955610278119900303923035560596605790419468916335939750093991179408349791138361013462392800941809877939095833986015596575338852441871599731192859792237208952375865457943907287301010697718281841659774945260753983404773404124329878533276972926591261579548572946043352416326485982358173613582333381723005987394563150972562260561214843293072124774007959161493540815567920216797039563339736118350822601978381549950205329223187419365857300736464155834742876741532277995719397942607676507452223060515148989104088071238926965433940108638266487318737038603431999566603879717465787312446085524386432548731295093514165523147792310886020245025489806699300899945778135965530553090573177654608054351321516512436237177323466340343142234055898670130993629201065311849842382555997996426045148293975340820287273356313455137323968483535267094115558893221961102084762260826400736824765438942333832565347759058454646155653754203809422146061981026715553933760780307838548275964657165232191540282992431389571077149543978248319169913258574072478554347692305010913669479437836677189580542743952176574780741332411528705537869082921397657669974567282511766790447833210837564120739951030594057859917347387298241303512849642392888349088403113820840023798051901240745740775233307473159220843567671134224468956768121224604207184130852205733387874378138596007159461945537519872042654880990698402133619906684931138682692161672782029504225110501460183728150160545999632390558397523051502727833006580183665519305872325095595041293968266741429766649015998589142751452948884713670900599060219848514125235911291178824084986194596246021455638260321482213166159612965713920132982919601727728596051862566587346333733123070818584965036489085367731885236297739373049776930142770322368364560797085844580568819661658864037573999045974746128321666500071301427218782185939547762937019234061750915465377703150096210926895100612152973617638254861314699582980124393198624033566917174152939162177310492988614635557527903321477776575905498717298772168007130920436711489246366336520014187450707225207038775418701631588184618658850246953091858132721584331647085646428672536293372563977918857208964299165751449471388951881651513463319657206090839412821024576755429037828312707342981034816226569505930970027514682437900898816354359437792614725859921921167104625961319312049238330768368135810007170957152157584815799068781350504037028969522914782258962911044267952302959208410187208361225792646932321014833794619741435422903084051308707933937174480939201092494876110326081707470329233708394891624325402152944647053995942064154762937558919010125199182680108221258094294905490143619755753253465867720269187561020983345081229524944227955018575056640813613468823257152140119134638071230149670702120010733481579399012260731812413435416674301587797926362652211443986978949967793950180860806279117194547831883802317212145806733570772465410739608006313196509214236988249350060629908788683065555943850241337133944761717667113846780961815488872926373439332255138667298605595506617735248130953960550451923329310437596396400694292849311965828535097304085263504681352236113783139182614102629403174982473854873093928830823758115335689725349554774914606184029101496151308434185357663551651101250326683927078643315570140315743434789060295663530942200554497068294493632255324570872979337431028004844166415090480469960035775319689971909818109348257664773702107682894208923885509754736529644947504842410331889616726692185976944951519132935437453220854685955738091446616608575271425648572814910974301083282335186467000350711190398164474246689966467979159752562696655304092927789606270085473115506959681108663707473654004712377800314898479650278493823873783670792786043145052338290226771194831106192525550383689392044418509769431822626848709926029873603363891929627427999635503741076289415589659277418076514247793137088157162462489873280857772402787440774669842900912104708244573295930872067851485428532864665555120661720011565343188712596739705903424740472425950673775563434169103408171354599524761638956216906390709040761386282515473701856281310735627365184117298184375842791194768336129218062110154529415118743877639652298533401112284854576842496313934419837873653209471465064223420827612156059891843758090426954460134564689154112555304988445157092677727439701611410808746671285584506385393098436808762817265657131042341052922365180000258457866451722761664283825501005841514466531860105352065329165780881499003105742735040999525565964501417451103226165020543153875094886957869505005549975765366861875643226323461888309118354135944466161600563101273745009388009941830403405530522830624245728468646370056579540600359554373827869116111707681857889503110805142405438076752794216363023948732029197084559680435358967769881983709960866284257455772728092533544802204580543687832323744794477813804571874290207335011074904081835555932348615163638434669759049170091913326962278456975978646752171607004464242533445987120665538947382040324142204857083602108418711448885652721175683359223935789534198073103657289076528550905114097523267738555412629962110997179578936467255030684824822025875072444753125887605978488473013314497771694202214397831489296942883519965487313667621426853338015880177240953210539631605681027923754089658997098381407000164708099111808910017097844705739679389496293160559055469561618077286953979587594860594307625048707538767671568557222503328343149902169292532635898178879463157811826064644686641126241104470389878411230749020278473039214673297959580072120456728332534331227438908837833333134470937302689199963160502306266491225020085775750989479438862373579678385534121716743528358678581276323849676684785524857975169945371643559488405720982688517988558756695589576602950969324747603002270481583918939228419203480330917149920959091041801741081935828244992783627794862335246281821863577863941515096646412288312308915898743757524326828511271366841861815695071132396883296617920301293716465660011100204747880507124189948750164807747708368688947859999323086315984115699084163530581735527200023744249039857558432319398453779499294581110796975089145824404423138427650510429182284681163595145532349017519744018550177387220660583963019161206392802039936681424145710876500415253484501548662236127469508702756214092592824309134033094089711471156375526365709892228964954559489092845952313243202273979317251544062884381753870270428574317415905312853410132267089028206715320228113498476253806024952644883716910525901619929923820070229240831507855094868861198859555178323656291549571412674052692426305586190245496306512338979127021974790643574571948106417581205714452768188030775795684396740963187190178014007840848322326189690312314732696409855072046324121260426952951904106377433823769969751790623448944188679878351580266345617300543340384904179570032165806850103031834933925290958624065832489202653425556690402916444512564904459935359409476904573815079971308213873178116663641393422460037410248716851466692266052081253918951584706283570248481332651204474206065897343220112686214729473701404098357196148174528709772637744660846639869010817246980728535817026535118184495936381279565848817295427527551026450596490054260243480468410314910976141992384496203128053180705809000200424688726076271059544489400646533005535517723374655758506117534918113834188585072218311165621580497894339770927813838901707352792945146136441129806212579258813575524765201033901106168519918375184207190223863532233770337404051831807688940135154607166191750215257400860262007191002043352835599625319695761495534808254324600934981135044451384292416155045910312843898690593401487153600154676701805350960952499402353089317606235967306832967558007492429253168669354199696500063051658692858812084898089729646377288510940834413350584807797890154931303940301508553186801002172568926700180750595166769918617455046361165528043948758573842143558230187804459157717647883033661580493101280644258581800612113434345682424922571262896445752393167846699206163186836293498178280028724934905354200799112242102082734400329326137184236759088282303747287227481565541605058849119748318477574430419638630948881064770477694053394880341653900723954669758728356284719763646122485138012946007914226198303351565647083122883156020459752388310874912720361259381046697411577629143299498757586736471295049970393877655489981982672496873162043712178858320326326681470098356990522548955724917294070776975014036203454000996255433521921490520737450482097340052859551942179435676775152224510379342509270741495775360172227845296956271670219690207629022180104898098469784415486256686729195004787670850337090162404343036378061968499861318120960694964555643847321588161989780515418773870958315920121511357636990588328847808150618736313178312080129002639672686394188044741905636737190173638427671529810199892990013751610496841552609465746501004788148372537694375102072161525244175765181313615225870191384336401945523910342097961837431547891220235484273942086905233653128190935911022639186565664092200728446469240877184782077665372191483217278467147043265275914268655388023296879576377477398565928481553493778528719622338461583695158120031725953184885503055852721052906286265913110791359741434207775075001952006482591215505459192686846044708293862558941774873759955490559780879144758690832430735810356841965792804410449503065253326450953494469243431534528607434051477601271303519942548760701343626724162680609709755373518560870064756673357974468819844179710449727245506689457239356315968862884034251651060685940894159449741253741008969294961909722608593443819837512241275313437336917030329376109363989801208063540037330242855834397189342274747450636407100946378556523065851239488621094967263475337606103773218524810876556136404054552103639788626837281970635960353349914613833247476294664735345672947834095036401851637918303493785417036101199160821625920761987590300973582082793736291779406654868894865225727937876695975264760089574143123675352399403387677307469767983462996176741401853745297092944385317603210257688539752031973360770845025646346408792671141158470389244886422926322769282397813057718748517468916178787371210412399871788677348472209414601416420966685107589735072192592569998708998635719438672746470301789865321483018044135293326077192950509836385371076796328598729473168018270079470602498806394436462582524380375307829935562479944966884247199655998597658284017824359051986590786450383577744291624897907642709326308151503065164637816893728661497240708579259926200566443184054579004903395715173264727069654939847807797936941136245383472034565518654269720390141286033371946894087393807125673449374350065597812699578616741547850184279838745543076156014546401585093031971155221675754326976485851392587621734265214070619079555507750010572316515392956345251576075839212409682370116666921075997088978806159733643379447039062325838929115030650387326160498840804871338260983287376919422860295047490596017160243482492002929333018361381916406183390606033154784984765454558958374328276980167933979801826262568644426136975231186087023971349511133597992168060817246142531549521481922154279466983152510842693805607324246849350556030091688138949985964382148796212104161100195042656102705049529176300342104688760165776195563820504416185195307533527388315887621483604958523196700735820601749412511890790039139179728221469578782062912752352610580161314848220438606009816770240842247036278647369383226402382495846571282788882439370797028032322999081756195858495955461071928308314986126955992533556706823785556808284017554653088640805947857947176846848761847123691223211296171133373595577330772139339436073221810428016153685250059505540570446765781521643152901598705584923109611683233766790101569574000604255013291595008161688183417472042804292732399134911029834949274502124414983217152648962389073212126874504704219507262845729901248422580161675242106766183801419888904518115549064373497817261614532103314907069274249551288823254272322047773810863254775685700112242381439082258214780703550105495587772810253414456873730389821451489913891122076624680018422819130944548689301301096020517669457867245314225232389682561464793338202274410841049632706707911300891313193531578375378543997465498576010566860905068311985337759265001969378237527786958880675103204916206194450062487952404240140482287876974725605727638929846768191700713376604527207096918629487755271256403483462789026190713622273284406086303020681848575283390946448750958114934994905523666230875599456197976054143882169598917895287426942262946857967197297754891423127613982180510611097101743467521717646027717994963070940441259867636361289787283768785645702537264545513308041511660635129335527474836792432033956163162989794433405623624312836069630721197669354409337163649393730167748471130318647227420727620105571599903814282695266262583557235099428565550615893017071203439712557969061674794839692544148328808340588169654627401789941583613113455659056915378192556789986100888587351630500297696499404705118918726516407783061310357418018125955699504608308803784124571271939507709270861848338616568625962073923787647027291724685039847851458846833167032018671543622111894406891745919463803041755131031925513786480099553052869884571322526280811364276657778768659333903910005294858650294488671825213481336614155601593161418321109887056503184761399655265751729857679138595396469481533872323887959669559397073918356350608880750948110790109308290656927352998765530820271695166699386735719437585196964024785814645308665336106650182414149487488772645286003759747460159066370777999133565745556780633796446458486189037363294820935193833857323869766402213248263564988261692879518380425761299842009995782431127591440786704183744633570496753506741929355214539815496304263009159207828033052096323549254336919481349249194351692975947266885598128930765303328507256777489524631528123609363906843583859017624173774802031264229091402639893117590048859395637736049888724541620285315193176516293621692540005602133005582741908610770318709287082710592139224136467917113808512167587972553861016956785321150215486640058980550548670940884227627994025847122800355560761116277542643368521113471554920680996440967472315808200327663207178846884206756887026720960776050746050092369970180648520079702173614838657131397343234103419136448214596302806717913793619195509724640427346916303776777106525139480545721559387633521323559046302475839803913700691921519500300477263281013904635268702456301057793535332143817730821049096095120974006323963687909667483894912992953484937303373857669005236972005301361161435745461117793580277270252096907908442980683816115205411370703925027043040090876786397907451956242438522580320852119938181914771432686185445468568341928626834762501023678001096453998509981727769189587915758553840973689935201127393920868265222557030374974934361091231419457165856987873901978081448284124594645319914152291290900838727036077675318583088894569068001083842428937576562579576018584407259152306456493025213503268088308047547062255169307776565538795639577158435764556577141095350475496850116804626113251146091052577626360893772899729105306595789301273047616390260874133353281862870231064757235244672339142005787139561841564385248545383355227552649325771561331205976902751633212192050452491995159894608634375030339751261092411335000370285584090596858446834088910176245803926929277478893993645703842456397467561403814579132993342638497814066536644546905052521461728521201352765405480353968421198438335454085951048727463900587655199574815755928974682142616028687502444639616043478399441498733825742602560247688708706554460425043709749039080517195846606284994898338234013014869296376034313420495412982495179703424999144062949837038370192148545658691955960070430386427498118725598660022775043656441237099872697377620463607368571225235164649377149771385979532626634423612251071764815456002905192401821579059029350713575372635974935519657019554584848831967744046879683017362350865046770153354610909563274707669823199690108682225495237910395606394754376177496635158616428627937341076648576215793521558984505923549224168697339986742274728522192152538678898974748398063877046025948582827355655341722575439882811313743936296500738255149899236362652458851836297513847869283995318971637790488352661996753750633061330227233662673186630238900008193107694797465083536558473789209291496814906371348657542555141014029357781670249439956100642052932088854690075752720223417999988054998654028752001991557878083639367762081815306816091115632249556518487674377130394385720239407026537123576720252897095755853990196605171580895684249175804215500806576985750302344494906643786874963823560850779250138083655589413451851959416558611486472576633863048894290250852308090860346971197654484442959081233603812920471363935133001358995431719734796184476738610637519374740621325139551325782614000451240050112227396262298346454066761642596796931652528690358151862110283583281737866346669728279875974343809979254897238319118771024016215401299573971736483307497048805002019546237156663459561462803320010059655358648887686752340255067289657460370399234923544446493823992934406495017866758716086381646870308990442997751924891052577545966368145164998372693079401997145315682773190625722662893129786804072409953012636256360511383314508448200138593965401874932783150744714829159546331429717928691663029168105614487279435321577083905782757792219006303896920228935707176092608288955093627817765094732194469604779889808385240191189000179946024287794017560493976253799829043318273901909731927848558358817362916461994082664128940243233416021673715765385783710263998336615139476598734645739943551907494247036907944543995061444085756754185410113898653803975639520392319383619321338233300459958657930492551358562331300891658044134242537620004862802528780748006727579829968687315918091468379894225602229854230991642742935289244073518425188754358858627521607998047773982044534396768931212812468003711614595992462783430073030963249396635977866442778449619636168889582407570161144378011989611378851076971841979758498742633611595606691405266779869730026576607512369485335720661974266114968771826360450188614539350054158153436103948858120195775043488892857299226607740851906683197048689781593867937202199513464017627300717930056969382195398494140089074591104456346296529850355671756571900209439268138191465213513128174272069635856839626958662320785241611439928766754048754755899645141559241904882676510513889741528640798751741541859064420878777675761224050136610217795394412276823832064172846316016445413664409700375475278086881400411983899015618133476708358888095756908541376210706138684471064149361076541396060834457182810054731854742873662015888940086342368548291560649580869367726655549424737364430417178674645603171917306244683972016923565397053255793235889749198177431110642587475661777695441715005879660520538586349705463529205187233503462217963230898275997710665220041779630037157920373379608263918535802917211382976438133950412492058516140029733653748353530615769612681844159078492114490036534708222585732899249076577867799182825110178850602956627994607026486046808703476276779480327495054145062472299897098400830265661734291855048704738742320213535754675489252666302736620306875517377743077309966071866233101342026959669839547726612017493999706924175336620080625326069402726575697808168887325839032577511822150946756964894860532429609720922064396125936349019324621247283874069504994593322219450886302627521435266565518680566755851816701331931231613651159702288985159931499868929809810009974724788608912881525556445994227389216480981581899621769253882318783429700819333663323307360548474104101217621520203464713664794672131777983922153577311783682371762863980713090736411758080496136645903455292511996138737173705392547915879987408574344015781156359724474679810341478510978075107037045858143141588165396973738640075271458946496718638221603503262075044876932560415491034833860399450376063012821311783496584649619525405371268869631200544643272248200969833190955288316485646199555155802911110552957984834764208119587114800162428725296233706057668249579544480277809502050207718055866675650482450763185540830489360259694488311092246394117854132054646726062570102797864724856979062907781191426300232365298891922154395552950185193408648678332436014708074897812538814307261672279982860978262301665089961033755535856688384139263527463446793154882391194708532768208534986838783102820806412386248216702859861625204692031668534924719704320705382960867623729485789230268421758039303048756992409074488944727538978955791509903929899246967136656692178429326374970673490952419298281930630809989461090288571541008039182756559909999495142608498358013807196589059820100514254446539317964371486753981308870065022651966495695252189846575432621910142837001387540537048117305738504507487013204779807614991652640375653066140239125874549717988050908920471647248003815636228420837145644389371444409794775796343940574695445378839356847493068658486565081179931565705388292865162894198704847143493238727870062913168741349233807290774605591155753409357368950556777125890375998194247021617138752945835755493010240055262459758379184640485908098577814779827189488762294647407652272610906900451163668482972045906724499531948659701624134808079954053589239899078668980145111210356065152981484119635247814941963532250461556018315491589083160179740371405147384122957744166110232044993098281101326594372567666659739414085182624462025861227186828968648204316660807398613006891958282596118028161115218912042851566746364200309778223151476696127065115311307238267735575483950698619549041456149529268645358996109113728177355883549718331816841302470612640615756536516150874572528065960468202172450904077054930408655079382159082164534515958142782965055560963512140872498777762385676956133585898172078994410416645595935619096561029435835771221545426746931729385322357245039905898469905392253889255516087831657372029690276204465800191127044161298673238128571597778687149737300616003172187176931998245709170745297521386887662279940751549186229014760139771352932495612878022165369328269378323211396541688694196249249844957904543833961978271731086517714531744311233168602062653868984006291890526297703408576290710862549884245136734764276244146544117176761910264355096742504945097271018459693801055587475520879041374237057597778796420121501841984983144625680660045696287313739448576376337036658407163050450042788999435427571212994196467801943441524021712810642988311309005416708213156838921733271198815917423187964220258396223278952972735886710662609440611657170815968931032175881551936326004714409893404922847202044649258729026526556130608089641916951846131963805676311339328908362362277218008503868448862201285339745329174028554376767019876959949837306994942501402555417405589201962892635474351594656106963115290157129711720908998961784094768354368050025405802865530582184591799847794605712923835689021048631356019509354557936052020458075742774249243703458911221184258633623631516856923578481561661662676789274030400352234171545338759008376786785146360463065825448673795291808388225727095862991475646265791487199248757239911000302122856647544228195784999200323663819965594707031058987335852407974773362592626236285951575945034781430890656431431175860267124091117150445973395131676918710164801593343397669254154932093479788912203319010776873223835993471527211036179521967096674746098378097559507021197779580350270289368268701779204058878487185584692419859624944729184791334605924119799825841418675224253857505864244261556356890816356458654793606977287951244109065206336052551895800160805546542488371275457856015546020682653821638334287273611447853285796898566196318908637831479605103085476395436119429355743766207695820517757750181969785555833706244026773810686096667842504816346671499318328494445678443152656571546156671912614684182540271191962874890831365711783992492924832775665530369575328781876163735140802934578337414738009628986189551128974844724779116631165233136539491919674196971208522497801874284691085056169422740089708867094655720547379305212561543672543026283273423204348134777493462763514860438481134721709135057639616718410759672233187637265942685068689224863358284867337177512923335838024397219427194590061551743602736817759504389430642513450692163083091537792440800390982041449420939245401755788035192976105184833148294060340688143863356267545722481163456579619909050727692445439637191936607948180540108012343405698666072574957868539720004295711514351771726307333182866124713139421231824601848611576951344266131464261174668491972565041600429941322549698596491791729644853530922405067371186364723881793952962183149424853926296869772633974241378085799273009075551014807411458568810716868772889380947058481525151435852874472536848574971992485855416054184322483179229855928310141399578378420391889220889061318931436191559334815263119493886768691305864297514103073455473799046299464533468643769713630014927147590494544726170631046241694790864304530962548090308780211495094303268063765267293777889967857059701896260635885632843472677359875073769353071574464122465073913586466592712076799170172227875279730165019941959386088694671647977621076836949797448666337935491071581771215778802762231361549668575509048691083096787929439390454381168847200088682550834027902102692910289206552946806088875240992148280122620103124165788458816593711893967259553916699472699619421005679704744118557387349204350403376638896997679450704264702847878757855363655854565970230038433844412856379820066808740477066374790188028462193690725784366956519576259894599749143559323761129057286337101400026337384821826026818177350453701867138442085345395378584427078632418916611970894016957169932454644910350416650209243540288294325078257300151341222097320761310752778244480720613724178273787086827451876361019606629822507828323857742585505592230512054268082348737815208132089052725697333873223141542282249009504356897887459791253638005347070012496554019218830867229038122151723706934976029295743870103912548661831451573587543199847265116236283844513125385923066370469792555050549499172841670349949011025581943609484920090053404580593899992776731179460993038763389489446862921187626558168653362472372344990292526165111081881313527527855606617981385852895921620618810978347750290993841677555460372085259973485961763248820205494857482922985601311655658081433856556813348276656298682883483790695605226549850290540548525935479575369786740408121598252464733114681922860401477878659965626582307010476084967658180609897797342642163378074785460990135719312859945226826155229892292038551257624130456481963511097709459662108695651616922537937880080182156152628077263786081939898507006976305559247170387328301833043099297711546936949877852216702968002958484033107100062188902697949251701810183695051715430860240717437991424643630759027683261504881494562176307071943684082717577255629779526879299184644197632604841309928822915085026277925684743940534344415992083960742800928980686537821811142463845285556313718793271482527329933408442449701380178673055406977184208705212747058369196785550727559424693424283450742140993532326297517945603403632551833573698271150826256182932445867689460355022462759237231207041747892137152259593595781912807841222306359253419969666090183541205950114472547319202068910905465310162329972186060437906253318107459471137997815728986184286418848522625518174104232623584561664913166278543537807109535370970088624617809663620478777967926389463612768842700064163922586633539361095551053621626528770260580645491245585365712111357559904659947352959236088366148231764087577113906089702262180434556896047927782023916027968276661349281743083393363654154267952016790437535605118478618797864782577631140604527761010807753455955382234050439439758061578813536029687724786104265635730335285724601094249365241938178445801484032830268631940840070692812398708068206732448948826380876733608161680176073116799713049462604663016401964483088582849546628840833808857355156947466083154571793460135022250649248327384612088857683611430614624161491534654376679748360416532188599358323316979013807023313687364959232486652928203360005766359037620704616146904036752342301025991240378296861625206373418796959901612548887496421953100531086503272993391941829686178877453312337554766150746348511383732401260999991707178547699477283934067562479590351760933988024155344786084332772203945668469584110432848646399162194217927439976785405667466107562790785351458530280426061200322796084639414594832445922935659136156643967234005320941338254021949584040660099690306793904093306855105755418110798618075014779775995161190212208802529739143925066407115511328925598064126516969993852017840786960228267522289476673332251970113927153556876606814407303607202010115582151605743649823177092664463568694195858696689552268454322000421001012675092999476696726845866192937785455393022646520107644702792209617438203127494928748168611314569248856623770859910773949169227407437658256593787566598596502764432331124113543619848380664565160642217505444031937318988156403765292385387071532301910803276630318092667734616907158788094081843686896947619039984852849321728517320148247332960887913577023156640613697058981576052509201506278804297790169770921253604296785021278677141485399873268709660083313725907599597046038095558486379096317384767473691709673534754046556181505946858554869653036560509407175855508918573052354158231441787617835349543739295063213057688065179573185877518231781073034947098857698943362232583737785690601151097344267550862415656404865641430921736234372517649126330381541589421676785964870039072261734068327681217128680499806506539432468906486707636318394776179161187525885938702470564553682601987838763204645788815019469015205294653481376321117472791423255672763846433301831539957733207559696180698470778764880275134792970889350304854621353868591840115333393916609048181292217302327368838083265256363605859380727903167110096870766919733149504451700022702448604402994209698944279451770404934191836520418230079789690048232157044930436861540727737050742475937106272136069210325827073789093905840633473114625401002289875416628702389045354595274643606079409411374309727337838378496474393546363386960722986205091145476610024219265219805969749128844574110619133735152627018253457916594868494320511365917247046654582478361120441114578184068609308680158367086699842437826761028545983983998583204978565985532687270129271014159930437667077583632962481793146628621557507086950768956024015628643638586015757300683513820545738135651206428272298388516793538275390202151070517163724103951911819370275237748645196704217607947652811305308966908168212258474226699314344043680332673095203918030013116424759851641813331852203360804688783900057715215431606620966078873591891952471147116537843205425209482838346512729639944711573934157277679344906291087141774412359499525950961502303467319289436072753551193094851767174081255271506142091945250467485184205525668223651557598313781491176911476767533812714232979251427675552431843068134041412893676816784928209941800669107880992213129533131394630704696814342555955765316925070504867688438585421953502178104006743114529504705598430115808233001740679268353381701535452909160654780156701074996467350417539982464846698439181969663646199880538924356153041512709479540441775831760404799955286533208441419275238388547220528258583526862386051299604655612919868011062484700048256249068183618264602356608871043939794694730268255105254738529929389631646244130062502994894646726790600595285068879884523531954018551936763700225423584039559116943652161716846147830300913817864304199442520301828701205092815724216237614599431816217330061146021394480757918159969060410952821355497631804078927739865315442236785112497496366501650353094037644447015391911113097673676948382448544880080371859321620146551823035001967554082004942377481784802985572036169117050796448577641151443478665162781982384222095324383148198685758665828110682081108198800323664742473574067235748004643274824061239764339213952485309415150567401013965321637606840106104339851253778648090337931136935330901613096985627037551901080768675642509307665782833421862384612014675544274386435362606823033625168041478085165671392564520864298399302015314160014665746789803006113331542898560837073903603532393987007490685278848496676456694608080726753501586202475764085433753101293440851179126294982994446716547578298189763793290982268375001901603698024302490285095204471508426059247822079662277980747872535557681588431558226721552844125937453683143739665951993545628999555280024562529323620713403638841725805470629082002177030120587730029095924559594572357769121257799238246889506613971690543628309934358286061446689383858849911416334399569999934140267233781091493932003224654863559253006877893951187982921470044051690827496767291783891485527942477172453432022819160940100736888576657449343684985458398196156013119681509334574890619507547164425813949293518999641500441507336302979161078233552893423142611095318644777019491691279077351614683710420360279597976654003860363737865031893940806098879979756467317590195501038709045319132896083972571888358116970871350604526473170470079578980450051424660452083775700991439725538369580865295001708149272560711074501290233956023905911280644994878936109544050045052085835869995740404576173650024310406971918372688549806481437689119790643406340948806539082772974379677308216526489739895899185294613396467402936237747702003629192494544553701153977162192161482674098193708133617356274980016901582146139479395569466468047494284128272152970943909882009573914543315129138073035899051887187952005343653150829800741128951860214162590290361337233075454941419783382571082095006071471715597490300092710575903997729903438779806144754241918114712090247953575149505081955975994226352887819209822288301679008757812397137290866217192226048511742251163490152129732402339536778538442636675143090292014456974571112388314633326865136194109991083283599699907818262482179453674450308702191397928874420079945709486912025577993074518575706647039392168258121368628498892520051320574261734806332912563089740716699190715831393141534850914733096056967593909417373536554078825232942422179043154373250669631145303125470598694846765947210743669258223428619288675349844904849393994926339638437070364608944822836899609708032731925534754778615810049571851812237343676843518664176384140590319005423686433941738005687878213510833045334329085761030026656927653763527087300781363366634500414602271437195924329812658829385095158799971259484558388442893111791417642290746927865832452231864361301698689458607727309711252881709657981903163442830460450346023822883545903365521586685501035074015026558222320449047707701483820570229163102272544926120779491175798315158623494962587630354051901344967970398892138209166054358350273762811224361191083835176115057894273694148902871750657101659597442954033043846956870263239595489547417756187802820196194839244855566427671623821229333388653459556638498258154860924145744291564756268065779618721706066963768163246939238735802235204591037222632012445925235809264965785723578717392083402846519484663925761395737775397854885196049344863070862341219636916787954855340815195407320204028581163220618406408434522219155685284211749196866988020110776896405417818466403303413160062379098752704268714571158039893272024441402235217718583609750542326432080125131643130001245249569260194198086293577264106776086073118628797930330042173274303659476676889918917766591237811681723500838692661594553028430445017226009770522372705831840671019488338535994251398772744900028576448798216159451317997049754601105030799118968482617789072694040488809827877325608903311950358417202814896682941745816657008013846382063708569015990195786831750845677742270062700139388160481885650841398514351861855196670519715642299827690331482238939277565546441128698130952849953851687400447236221236618031932882728824778029223747501079510691957555157856162950661336271113334171698385670347960489418219411108695190711439554315490178702201121218793227273498257724172021173738525348793846110748638653577632156119274452298520697420200675841099981566104264943296658593866787192693720829633165228014720919507605588478562869849112100616193406130168989282971076096412513277398604455843113386414940708856672409149792990726341999759944891007671119848910378769785359886819799709296043005240553826889167623441882994806327436289999495917304469907033795385697973496397480527280717155933560394222760105810522306922726700477465188227765364780840375455450818304518788858953985893381261278112124457459299272019311252651326374412308106895282888113523698965997930381798394209817202859211211988024774734744051706774812433151201256460526484344477520327727865358612865543288806136165453660555083567331538579245070722989605180377818552871467319460694231857013008961889213947904262895505102625753554634266857014656654721036080951754508895248792884443578726464867712983887744990893938420561851775507366273187018834666878257185362234347106923992376372942819066471977438336892561247890482400578300550884489102213648986484677530760460328218157636015970575306867807164037263879984068582932260438966092475428671285598752765613451905533955933522067494718427980607278722716854229219279712849336715529583239368794109642533833155854113863851571629531315171865411773717680258565140638311120964755032594588705907685033900724044788964368269544924743539178149141217742314784577789815523013089168214700381581314106755608099027014478149700858242869521982438275756783099972875379967253703714035533663745124414321981538917315336828208371580307028998667882075479977444742723742642633295867097389343399516624412999659849663189751448222078288857166566351885531130484433047230520047048687588775314376218821735930751578016040149009270000368710533048099776133273222293526745299466136777549726097633200733199893223118179202295955961208606272155995684424781963877337903337173866088138880672903395500103852230991948489425214894895763007535019062404881700426418477392225578375178790896302112767692842940224419340439614656481001707125922344147294479412699435114616409755209143793513846050343758159217654275234210704166825484344919292393535481830692907017943887114459275730642489659765106182639262969844518029098796740414196841004120032551335786946657680417519227549239887333906163520958866730087267206197225195199091003597299332557644492353573032092295317477263811933336882443561675666740097537226937267631216371240512863044959737287274306121486023052565458866643720672882470926964529217260993269306743302209674273218227858061019975762988479745524183866081949567138252930254226141198984221535639731279327350364764360375233230890669273953488525457335969687183037154827656638287180489945538605656781491844505902242907712835798406690254034537492151602066076428712338836652314784893605863994859178032994783593784639701637172592852586068809482052387526352830276059311739420509797822758889294823665340646185413150211469018728463868603816618467499084179347567461382954951807804806906701079491865976064550557265199388186812451494542478651159387848713767438067677235400957867200029523988845995276658912720783435611287386833128311183507618098637556913514160871762804407213908571975345072147171544439323826048875899805846205178583579626835480331763160789565466188204413528526968563061040109775684048386546326452758732282368485075217382723184340634312758024227633712725568675440353142530631269254536121985250588646775078297598782404634473191333666453113612827814006400542009350535549064889153196242316127372338298642149605084558681769747410628061586373182989385524484325947003657220189749055527479536291837507770477534478684824385481340880408141533141074981410431701053492075932923971300986399786646122173080961955703844539673059326619198342347913567513636828454082196029187417961603749729183380259437666872876730703271974225238579799564776519701035942538361680354762755343152020922479856393086205647197051168610835965780924637429128236915988414777504422605939360122033922870445577863907435502268757132535219659162576007371095519207786148545114090417720364790162795540198086502664049185367400785429737762606507653555715690349638217108573659789700684112800506489944823799775172471244432298978925073925212837505327272854548077931419052633874363194120813097042632241482404473500016864783096541865166014427587691041371870083362378036746375996897883551299528168452661298032524854332376704501382319860347820718612579326357406585515764042754485198778001190081185094596256498604098863101869006391591356403942655791235783505371184421920563245443556147263087809162776627396588751013983181960062411701522110739782800689912195035421455395631383795257772672968870140899186612879347998865894815149189477400832277527394952764784888101830290387521064954432098438631034246498492453799186147404853929941577365294533242624289403889957090656714274073181539977746393449592340191440180048306759337957998713868905849442816371336937480400173413064576674503281198359169470116243562917733577716807319155492216352370155618535902854256156627859274125325374497174109247889654677776968833105619530937358330258699193390384015790452738893542641734170543869150909943156589712666490356631634145044251928400270160882461347232828752755213845153586982569156750077580677393913073880503167813016174872599870979173406863433779829385293790264879541874332678057725825327075759404058086738279934193743582512048911707854112007184302314534066630028864604741292905958013977634093574996951296790331570483974158213198985226860932677024101576046961361825248759607612657075606978830036840897447832213919350982806117714086733228562495449156124849893465534901512018519262180790230022156236558133572154169329461245850854857784797933604445199191919923940823720368413810723051388275697010235735464289577479065780728689667436645665134063956671803359222171408501230213359040452152993855947370334626846683687378740179786358414562925043155220842345350340961015701839990810851495178129812314511432860171742939182178984904013137337844604123210109330751068443799569243258266964285372950322853524817066917001748082684356443562102588767568356150507347091822361955210010067012806380232662335175103656876310370835134637779360389814701932847121645132779438809431036064448744880919594157690100898104581528931709612623871849060321654806141086891833015887502530992895426584596533975919723060538537837449703572385044515679609440797127810463717143145225894974626260335146198015679387305632889834228354195707962316931542485041533913873199258124414965070155665088537603390552071291880976600498645896675732251984929610577214180124690952344219247853849018717009956354797725097642647489405393203933603436412977599966174946301597839362637592302154442519062485580515329607856312873492221407882297842832726540655683352067745398083615449088521070733404479223873066388138459410025242381413101310146483222690896015744031443453145257073937414131152029390685219852789838527093308349755229052262916041532062000337120935901390419641778545569464543892613648098890602184815284762958474421922575494119430032548030641393666563504793242302849548712572848102280856999154465844945830397536453391005959034730548494944537089775559491872669010508179659545858125794473879926396948137939881356588939754954492956504154269902638589585655375937361072029453902661125200866241101851890752185200836747116429821809712083366379882840802089334536517353716890116766541300811559399864568572124856975112342641159617040872087668107060048475950726726674363968245986809118439275470038404283307159419562769551686308196931698046921295365483830642997125206334459661001067509794825581523488694640524559563529146975527476499596085522380852370371591553327604081271875254456840330866443448377982602397409565141624107239141799094414183922471311612626448386148746654657126100063138920788954545488437446198047043343291613076359940019471958599987800156410509701575670578264944323549260736376338854425815180110204375542208353953238512962295481870630470813847753987963463082709559874099902386763080358166697410024391401920952941982700999241711699629016585258712175973799266974446572243370013217389692844024194208419413471752909960800808167868923395097179365013541868225857029835183007481750115918963451739952427314878798468208562692225145056675704463279304812557081081186215105719823502286916397604817084243901377774724645032305645831336885080635682816314163164305245324544118456572362803097319368334558292967832772816308490397626810195975788851582789764963854859968048550994025311917447181926904919411025669149888683235013260681809396743592703049478944422966941542114511917755517759030737042967872693411034921142907395676202320798414417457374820614168346099122611639546345127823061234892270699864724397454810268065683437776746781956472545635769660423960214212154491711650518579251836551163285130683142527868440013245230082580659139209177331312846447363710452249555747212141798277679619044628737415907169652923113973769272019976072615164230971763981676427509297736806607340776404499311096244108968449241480989303354051267472255231613144618043780005960744943724357316003810198941443890116188811226336122602621306530032192271062542202729540405722738707611614015476520052121194401152213893966177703781348695794101785457771215701125892203257916646568501592862959281663786580145259109046969470024772464020157712881969853990721613720337516169831952619839945713616884982332665813067637606132923515096962171818404310426070064291654990353465829584571270702375825226567746441372036592342348453453596195665685675771582223057821931427344148352273723847810822464277923453443158565512457211153390713871675798144420916536666155054729424455388939782267860805564108454553860595271989605666590287034482595229084620576243730244838613240022831514844621199384004442075976886677631432219321864966901008638076128709538766377130824774527511089698072926245468712494091352462304613122395901143361387398779405166437469200972050423807727632492819323450807010882006754511018142174771181659676911136700963363999215632309156178635394455914581628847955868646937038615683155891856722330021213216584614456890316354378894031176238189410660265892520432468599578689279754886687798128487863031305655104170897930866590841001701696402665426785408342046366298088672259639133064809998672089729282884666537365971470047439999825891332059179985257121960662317810129207466214721496058694090863365812811227293734149871262614492007807442529991387635277166107887850382110289142644909930586225988490845165812927895722573668880013757219936788087625614432452673869345209308421966726002971911008558314589608441525198392231054808860963847453496594348417038266981677514861602220777535613214954827233528498991565577363510559997261363485215430071504394215900376796120446461763419856079167074891469606207698702834651471784956917205102086212795352088126169465477825379909826985142594828899389923807960103815934733683611671092450152990308759351194941930253252736879603288429171417538952044988500992456927609437581351106427291038506154935307721932573775925888949355559900595759045422517839556173226698296339634527833535060554369142354969223546956167720124578299513764971915438270419853870159336336862039895690748637646320811005357981595478237183813105476014873016709200633511285712476337397106967753419346333949544168659352298193205018419038057168714334898239188824611870878534898701079041807560995285618392360991313989705251353709017557206447629610372029329598936762832310863128077326488561636847932126570053192861023304269868188203460306999958160214350189817808891693849852188146930583723185301595204481782180717599125406827624902831684597609569979931174492956698216393228341762534792784854092691494465930833718171445495796528620386798881404581828531481305092464291459469904926797624587142013212851972511927968772943306824824213775259649491945418152559871424158089675288403290947385576065458381499435153937480038491064053836748869269349812478442184807442660183447640405596039114116117121476112225202561484947419441494965078040693884816094079438746839774242342688224105159381179715639215765116949880211855991437293981393092318046567329300531248347394597640476630262971279188762669394314668887993442190269443912652283691411498562763181467736917689384767688426001314787862720320361059713985831099340502992968493361987117170888217095139012493903865712709532504379815983600002509956303523262638260542485483367676174127895639246343779216824975173751574416682875627729243558410552222522059642028031307433660000550569252096142341564145010189282127758690500574159276053727740677097258522998908278386502849817713239309977880479269306552837309769741563298003510228021890295099142212197922607275530156382316981273190204726672928109103172055972443960651823829230648123708886624634535519595393760812475217555504371542085296198196263103679871137347781500062209822309722784575944018713655986332028202955144629025623150955067291698404536390904210759642897691757466631590768081992412590296239771307416752263054543464137218385864661273852664602404744045886408811864510791151295504915612064936496902811129896452968634862109163350985959242923215703280348485582871363726354437209797301068703835617823415104763899705590195971005676616805819452463612134229971325552509266085866202129488546171211658458001501451528694292965817983676440224271996621992519168932040028605632606103772908812456965211191594548251255282113265851975842455542247563135423780421122639642409873740219838558398188769237831250672465207582254469021059574313037389478494624429408000679471409423039904133299816447797021740769502341648195680679461547290591955596614345426552488482716723495802413198821679235153604857920572762196907426620430472460630587573644547372081072391636259501450448666949368370517531537605099468766206903040682783877627649238796959178755563279697906600308331437387365206004314358046139730813467433324550760836185640113685835780174245512723181862859402145524816194798320238519293063603874510021127312763469944315238933832060759757579519864945252854423967502282196590881860532284784014505188435493648265423869289597454020217401868815561095954311827960402121261084689321141095096058006264983388864616008827448523136937545565156193228224424080874339315477272835423080767495723962524729547984346006613161858976447852996809505928858514509448498984032449582745997211939983326297590636305286521043459601433703554973702802896196227149820606401480046384727402230094550127659826077418747750180773269672825152145619642623442894144497943834666237180989012712588084165189592645296636237567649360688302523116723840369722285114333769430385897615576319281637874950646446099724451943934152627518176082904388545168604812046063279803272253110072740150577974885632961380256384153288496708131361269542426854337686604268613008247775768329271911661445457678999984414454147984789427637156137919816555934652510947771741353702853543560315889427922856478482800935533645463289587964465626782763531855374639387284403331816777753557066480304208166771599516326198698573474932688725824156785497953008095686849640957172922427038118793903252867721590867001588284218408959193459120191051305626291923728750258693128393501982104127992083590505389302170561064346794638215163406587946853588421727805978731783415218104381900470508645763174444625586273503219762440480659631709308165131942258743691198950731490188127729357204518440144104996060464374339296582820844310527842420250993324185088220425220647180247668803868673781181583589148355962100977316734875468509350440642417692219317611361401154203319566033700303688873986350422826907031478400288358290591989345811646883629845726466057113627695366446537878207516260392417237384682390364872901192921475785876801169306831110883056952560482341831874098775174622127356496499365590684723021087555944500745009747865046897394935235425382991773927627996559262401458660608085436632204134693976802006432721275593636542403555856018521280475014140089406756577251852699098272122293585342100139985710246516633508398711802421179502094496285893884966873501271400890718310114092834197941434041191268998528921184442616105314215789223079335044468862272379866656041395401228290131356206207358957415270728299068969076646960204620974115381440429272119330862385788979545486230921151163103213129473331566633249482223866379172093780349981559141615059510516301679755509706508162226299936922235845322025566714611101435581787885402556943505975637475226918601612037946345199267472345877845001899990329729704954598420249823524132387238227059626943109238980685441919419325476059069610007451319356990074552492321098570271994236316422811474135520182450047250479315699230361960387608144093564800595093380707951723917553842421736903072444716997686409116710345459026924433485736730948521796855981560806575753299525612450992995656189299107950698433831721570438912152534190470025990950634710358595245832795153269982994912946302833702924878321320558921225151729420373005032474159920529253870191180145215378790244974024529488142903021704685555369905608742018372206453527665324506499859457941640351540879548672537302372140989629353648841713593745694258916927952811418601373720214757639417110507963027269424002559114078040818409823624445172915752268579275688466520713218320439773512715665254987854896238092269873759305527558156720515544169515616133650024224307045030544376821253579007595061272935283544104094799769489238828728472390845398391541138016628934296677342607253084326930826233154387827049828577622136421160205227087813709079334815329163838126821175041778913008600788048164039118727303401376477309979607239285162973902472606863546407043951725501259533900001022506410724576122869060140057420881368782466027053777281999142383365968736339629753547349469631243613959108845010965560008154071768512229280363651473104178008325596627921648951462513317872730280662620231120696830983808504714460452060010631214520875123046478664218328417362048536535378119179872973450805012192944206039536741676597551979456482893137865199978118920593694667023640464162412438748002214772453909960970671113336469101111124881445190003175237853267597248589983689092922290303078314617338364253976035834314203800508309654464202239705528481710058767392209043102571657157026982208279535416744331234527193959358764652939242242974254403888346308616628825769959280983789430109221616373899471740132847780805356672190045902128427881649454082940897805398035666317096383141927025965026265679979049764841951204269965665619936333063494094821062378765071481289629462944225695010858169582163665447611970524892501670810622559362594723980801295015097679599810186911056838155908678279986107269038726065511949733424782189862584267757807574041359261755287891398179366610220780663296145949762559500766038710360643141912629012931293957383906857814983423644494761104851116348504249892491298403161011827918242435745656388844117727956216839751598103807751845619530550609648930881017795629972811241403655828088891885183922045668442445742199909355891924567885903091210920987059577010908489114784442197639541160198509285120788863606359713491144144731482399391869477808893266801564175785828654456571152666913720957626366092494740611650924449604357841569936619597634166445359998772434096927015412256690998912537081192208116590450045147905306188551392740142972457648256696430282909219687034899107895095619668195736800822572331586193997657258196955512434587846439741463343608329420560494495693681114204349737362205470329019344369133972121945486780174032897524373067230147859050580178116200441342897989248137183329117938614731746884534528730769125984115258253799926932684248847239523404331536846892134937020517848130726564878147604114566812534830635518212837599686098969743166266936584655629942378257882842711133364949913765243791401154655714006129572667655585492978131027001285743242363962764063495315711925358916540040258516353127343346262925891175087158574278559823964080611938182100808474444892751488175350797906629168153801182796352874481379705574742438322547757577485695058883254912060628370884065042657989280858211032404559319405455707164927162846202636341339599009186708870308218732142373821588661459207796103611986080077239882350945809502047307110942641184064123639605414418372503281814763539937624089615151700448469425115001963753063097562907732818670586375341569727859391285730690732222780393695571381604657487204223121184453538245726998670918973716659980715802770185211072878081549926718609463596086699122969603599104405641900880177471522380737254283528177085066100042000074332641358586471162587704540201647440521337939375384601903053501090282339316677838358707556309814121219576238516835142099331248954885015351663205150958852806554732470953666382378993721651963089878421268178710210176323989433202738970200564366699045336646214953673259837315506794149645840905883386484188243010059368496205249612715982379023127187880870080645619340789704726517203654375713872852333887700543666724600195108863301422222313032548531865975686298193576220233143411185570959668697820301094246756652913358245750328188023166012377066666688320355391400292228276030851757328409654137423882196802766683953864374437877282265328951260205236512983735851759360544344109797091685736680954644159196942792770311548881710368832200334140257033370089305414070801519714422766369673511126366891517816844011687163874504830281219552924857816056052259967113342605228394457427643341878591209854208047327808604947318098219060185836636043063135316361241876615065256698638811754245507104212060976371855962384458964707520576592613558510235642653247017727650825410517509114100910474408493830791083321365235556461640019596516534238153634058435628237846104140461049498629712996870890928207156950975124131843635594821740120557275156000716207933602749141428852634929355356531824785101813948769859759691789389879939840093552676885008279307714155203232480339123324494952375434920881726809013961094656222584392987493697808160225513133946897569651704385214475574032972471942723024215546757699683667340737316676638199170269882475633120805383947638355432836817929470934275633312611718708675258833585722153200486036373273567781026653696019975377410690993323766499710628693383501142732111841752126636226444957514422795951916080429344032836398653679986768837664323614371800966458564844352596912146163949348569543523571383643574216228484663388655192890813067489781854060604415858799698054425842278793265511088197196164269426492209553793446174880357808478410182021810628691401209811163204740633921234779388099040875854782495190597341704401181846243277688903985897546293803246574448555218610620950313747516434213559755146529718721026278578065576844708938009787477941565025329446990076350247291246996471831507767390462952585300521840432151140312513348078824767046192952160222376809353202447656342862650972673342329260244991557674431037947217197066191550342497165905027756626763698708620434227172502543180167103751468740972395873867048182295892294300243788479681556406465205426547404901976895251763639929016960436171584321933670415557161275785989309146880137974666229583548609750179516747370080832875509595467649825814723741161500932571659739774993328703971024896900151682163778654089151807704559487605701768668244693078490192987098098000407981109486650947764559685622227418453011099820124783355087761183917118388474150801867811815014491137646662710048951922463360627212914596560427023394668126104929145498193774231909145435123256075121913455595145362704815121950005234165309934704130381947851591792733680810371955416182241896357966830529712014286749454219992026219468350119610463813312918099897062177428093008908177859671687995783765486468896796683638161603028467730600927392557265059024092256393039550567099137809918009275717025124787412913213632164565204690449134122606330733884800680810661880922836634378370082494753386402924031993471396813013238727171850358627020921784535928973994967451249727635957916488210759184981129491017113747924560488061317215703667270378995057103512788937013076973865240711273166214751448729394435022731741960994002407553321127119783257737579016941951763965238289782149574607863477600529210355096098339156587129724703657185520636446825609177250692602351283449164068415622466982645549628958329570177052309499203953459356074581629985803916281600499720705928847828522959225164104461306688176802026196159171058673658113074256562834071511298392109021654227144424574671300892275848656262219114233763628605290859070403156537766992364037872970923584451474984641774469173115460888109177358410033136484767112658031927696990705376085058594885069542923185669933564821879071310908316531843780087877878820729121890279083959036064054639736783618368969157968668742167926415349531981508534976238997577561137676808236740126190228497715609461243711791679344970952005199279518505416257853704692279697274243188754160435204582055331133301809258729228033677171376026910260366926714723174498642861280239192635221496232698149905342411188922521396195581379011307765340170181741720262038464119165612872519618999537919143428285241768548493594492143279509873434788287383253535768988392767291609272914987039853458058163236877875117021386323601091023535391854550975246884077027672122280209655132132747988853171305395538781166032909658494880708763838709383421052600585380416386365432892357579685322438108706145751407301509552578512836225323118682123393542205500491495955620597904675361417185445835551370660099012671303975104151527612741071172096724289866759343646667224256693320873692456362725285334030360510074025134731084979351634252432854446820639711582014271794348343167124181563964089144775883393495850943790487435967661553341982380970429392831957782493865171544040164365057160043766273559552038489368004457722609974581137646416260826545482129832444705785212777995488419364221396549732592486074759972452496575869703091676269969913371344004725440837458002423463239693174254580661758640359024141753531899452154441044834113084305585124364456298503884742153174555867045849557948513971706965868407588750794210401385852147541867324505304387560456222995885378375016533249689328509600784651266908570528753189224969691145001138259009693440255454733276564223883105213679424959132248869240176861141612435259817466002683931668177100980814765554812357807494838302595347988386511871132974276345241205959576847505880389889035230186991365556359189522965810977962375592481123422998403183599401104847143134351878025087268959466747968609120929140307493891430531040370091574566470104585586391094049172208723351230539312078985255886400610604710175783004475234066588468991805390364765349656907509374027233810797824523892579050373218486228797281206835187000739670619227636376665093845528104853774845967636581754681171185466909389463056297041296099453517846752875259248343123386225758552530901079047144240709301726640057165848512597810824476628022477180370990264323977841349235191590810771799366801089307108256585605046879800272802021541815363846306441251554925717890941007754065647720734524362243634567059947058989698792697587070783322534643096147616171379201080354497928243012590786591208791419512184120118080730935096851787650394495335542299619975895451448988222035584106025710624788300881654365956204529060799711209866511948902275650615583872178369279768896404476397679790280004859388557223302903398323562568385108200975254988027599957631930135846764499696255862054935845057203446184623999641288304108145887942879010371879833573828698742885893980038220951511613827936984835837789484120722892774801232923570167867469836257715246560289065691568286817866990179073199748418585852990800977805325717865226930171081659618969951758579594566332525183684775656752506974562565071630738237280161818896754226643943222008065823920627820980718332464988025856605427258612883906438725427028288973489458002498224017682641285626461440834598709638796590276890232254239505146253484747091397756894098567027092539548766365488135158781657904644802006556036037688423455582561310475820382391803373635725570326251736926229470657422853093619773272102837905420103916732822765611298255600172995041990454043276856329119559696239395780932139082343414895537087590437874943002437742749247678555802442348881773875960171906813913076464682302744370465217402429013559678126670220551036620790462109706982733790671080829637342903356758818398747144697071112886063793801296090777058575946749757785728625667230692465450468407458656690198384761194658601655839677009033007361290405659032084495421070476700721158449482916037649547786623088121443230772105018844354613669293241710816959480696381856917712126300226111437883420210553543303584319452600333797387524300559955218666115506020784483401130719507480558595134444650029079714598162340149544370277010141039242665274065585053158659143635905394143982150165073511462415254905135960838786813367603733302627294496154390719802894529397064757810407306293592780459478648042917276747357218635709758772407682324204671717185090256494610897696850637792351474090287157059548849130859358710553220478046790536639938465385137979256253859367326417971448956873129932087510492538294674857263598216714670812756011944585322170206350100237284536904116629139420009437876983429756146207184404869390710862750105926568350875347844814839574914009414284669414710541538377426747653117273040421830930198571545266177967204416751749740269411041930514993148981152266542756156329143959316388401007627900853935277710879604390619483921329531770622304195561815528197905498327250258209102398505422145335430675255745122738992098694984170367652508474309599357968239070080371326799318981752616928767579349013655858717056682935981585199835170940767175239765021907054517288569374154657343794388539561771305581185986818512926357725242742442580927141578635705080897558065639956336778173137891781765346530802742646486026196788432125014798922301004723081630404737035607824928182800807604464381706012543584883259548723460799527882300836514733896982396422909769908707258837855022204690138080240674432000790237036232691484547291677734001951994784703159212640788321656291628938308838959244888621583282506355105697791222249363397395253080858229759783602637552239549736236746456031555159388253791519953768036378432444788117842213985183914560315060878797331317459786455984973824154793665564032700589247146512659599825585119385710146215925348816661898086312245171905265417529660817603607977643062004301253819028723799189853228938298005297332998310143639258884979183622666397105289545977606718197620448219082990478929548011511889003805330323400173347408768332531219318685143497242825233660691339466843684593772951115033105409058741042188070581499272393200162512994019109725001622220796059868740117745573206328805272926264615955726562187967269995382650621334159647854931003016325791383020317709086982847580705790825135912636552683201224156728699095975689695153576210745117449934520280415876655947920073966894832051142768726012034784314213258239515059568275044412487885095911020277618753052087599779954559715306306869853462385776906722680087904232618093886228111652540205418001210908555981997768158460357116833036004847630187842279599079084181995470015751396769207373769418142135835947054486882141264160929319168136829857549359583118910987609534025142810751306134438801227435485372933578747917358283592874428065668322930281157554242347868433912503438003964053881367661360760899436214724741990882277142595152455429005249077023694542258008526791145136454336126364874444044923448268686812181134276361488245072034433205402455457375207731205786060268275463106288235324088225650169464100833298889098054518522580398845575162518858247999005517959841978937509529447673844530072881519113736642787596870374446266628654184019704054584353933994762721273204812322706639311694482594480245779625543947968279980776383040396756933983060247676638146142926357950058828117269960509140864595965774280626035751982800623389368338838766624138850027038988993247539457722382531990516186239721331176075491789076335269547280317229468687994951129307615520102689545845990527294937960389364248256203416867891088503933943736983515405801283855192962439947000969358454768750081728892130175849650774807835342887175343946925516138930544618527768310238252286618656026048957394731124913296187873380441874589990298173029540133607447938434945566331609818076838373305675194997979817312547148720509518794879160044735883076495444983776266005020986746449147915899598845865756520802505534420752133099285580780802227864695075864072512650538322870457562768893159646341128507511475427189294665816615933280599317009234028242443309123841659716253849857736726161588135713599785870176609800682275729570227803104485028428214073075349958214686132668899675486453700192019804053687052670248626785078912383056870852113105722547619304108434830668844894313453036079191911781085195765079383099688940803166346411453601191621771591845671194535377202848339364347915073949946260497350174414109335673436311042747613275327351982329638185807975839291925389567317545715529936557859463824760711770531977047643217459775981980548182676460405141956265774620487103123736540647677549098196590514347343692391139929850447042614081662486034483825739981380677255250781364492110985066211049997508608564996291351788919919811739589660424720309845941893218764415641027351662076123670142035635960957916967640044713574586730408851763200835029473539775167647881708550985624989949712982217789365994303522670596095961081270960082628024317178249690902744893537125693573664585876988752184453300734956203094404944431728869895039230420615502076543802232656451976599512511070623668279197999805248680051603284327443902385328907380291607155860846110501278425406094797239410214858625305551258687859956774977166746418525081658142890073518488576493322253799472559854991342761446638594501924724848623361193173496328028358995282573209379719966291465773322486321757601721592821362290563807126919697593624397505972589290927512320500338177497285709067196339010292049674584127488838048654350556471597025763292373067815322225092441847321370717585693206862887593810522171105557009303727698365898673603243830791245853643013077968436588859316748679116825222907524864439460614547731879597238659904109236481727392606048450236951511841461634807733083965275364428973764504908769049171099609376245461492578378663926244143629952180648870351428108825064655813183420898687027098241146981547113234203213624248533113578191144640036709081209873716962289797245253428491261721331223946745761042278813563236580636798115671214698555369814534105071053681267268635353054309949579766791163341047320096864703058354109486274559879407032163905985349561289008395294217733387429212119449466690485651886065299751717943796246147194003530222836757200675287095781896680013050180296391381904608258847745125663893345972698253588794338389685101236917207636868210977000877546199863526340338451461285387827725385912484199888656807011137962821815464152658245554776121330556316748333959585115874405642865766258758353549402205922766329714078508945384509726525715183040090052150266164844148232811798134150115477735799484771968970065523042029075520101209373548965823173552233316245581537107904611278028323440020615014881083206506521293688603550943828143969570933055226011387614928556673940642117235716579788383396056102441038307061463613401390419311629131639810538299483322071495381519878672145040410240718072461891263776745647455094615325396626040881274401155572716590038696701502934767677950618110876252384611670942542440700361703366051566628325517028762969413988257527342386371145052485462798225023451477964876305752862688095249727591850891124665903187470854321926920498609206773626046795454228580023951918599338840848704659373114355804692210228184113189308935674456944241318348471289759406688656263245350445834501836531055952530436880145518951876472964237643907777967086993158026640876006749673850807288197589274905357672946716384856112571779688857064983684584948605677770701820220687034291200571843978153824283640061753851812759439573007028942240914714354579103541957972628204449957495096345541773664956199736837270318896784962409816064224419294809926652563811209380587764558462481545383705923045950060517176769143579437778518547477192245975854438568241377419090985926807466164435466499718546637257163751351330346409119414651440646860547509866913454510070153953025801180774322380545083469752736855239927955954030059651713304503174649253258755434500808520110503850530648378160148923767683271768695194339748529856418044497787304034359059523854108575842971022980145288322938736212308903136595822499227510172621760461041935323691536260756669619419415309356487744940781199676898849562039829571834752669511057399760946168766756492949750023957384330219473640875064236993194547201124955485427579981573248573217374168930632817118097148492450858650124162765441139336041362343365228744928296249110325388055820361523279143393286334023948422125179963546147217337805269632039289695292993927688369751284418500346985225604392096984235585367190059207870424426060153662042523804537085935891811308505513246569946815378226980908483603102265650743640095677008481888716380577645131952341730118315651745207410990294132032827377750266341545148174381674721984628790977589665724516002066524938431255439913708513935251991562915387398782833849013202506962406703441870493604186500653943488302461090949503410628049033800201049464904335998472005147252799636023381082342581957505827923310463024386233169785336542371279614135953739425078359526647229092851692865046069347268336956056265698754228554629997660656751772075120992580855709359124431497634594792287701405550727179026637333270049907407001682494025292756805328980424863455745434063196596442429012857448029561298475302840724968229776196086211030166271770340741534436405887419231798092278515404495644490270252653713004260191798601033961028984120783493212640285070658777160320468612368335421629411188058905587186412974531800483900195069465093911799658331277875901389100618524839309962855537782279037459043937898329115295253994931358979125649732071618668052909565011210270179541806110715277242132499428768622049127272809978930141922780840742638537566613278924059757766365874498220272964809762380290569249722620459183688661844609777591780907682968708014184126747263374931752239058394858975255456439379358943188472998073947755629129685290213827647513548650639646538772560899766999327880651057717290494469740527306470774664799782964034301839614822158579564724387781619772729464584557916571366814992694316784919094227307656700603986908360266993169673053058265384707794123923637695004788838213255511361883605181248226283194408662920847204199359008085840232052343791446050857136687863968413164827821587547075687176626883504072585925926227712551329164431968637187085532758260137369274638142146485926369027410540973188652727076862674450347639907406888744125808646460144443369633242943897652701385086218774625957880883434338688974486587798650118235487603759676257816359111945340705183556153024058340085069147090161471377813052421563636668059541967507788789652046742460403449024109082826402363795888265471116263481521017957695668672667753264652318472885380648059508891447887489227436173079026191563094545200003250847564273497258642601125071392144273345093409076746953270008799067568017995755593315117500502594179939734237424293628658511097502320716621433088384501986852586254522266623913220192110525915189392188354151038527086753028792426684522008831522609085571230290745450207102239051349858461708129878708441336856365172883926935576384401931144786207138965164173409597721364989925037740304937435181981497997964401748262487063540719327532638406290789042811141429548889061474952862094713265952628443962559760662456433444402240126731860292264632207832934539263439905771228762243336135656125333549466569488855943469101857528834301488672264644379246956570403326915691015825755474709996263991632459956802386496209572809017785327294925622165627256845131585482080126427406962253634529338011182651078920681220465833519945242926139261367232984558288706058463665083510153883920099027139619368390989282179034747918180856759479895094497346828618078775573102049695896346327827055581726635746369816182257746786194246472085657851206279634200919337306339519312639870079888785225359922546806817943739156437296888921210169751916360664854844150615033597519184805299374546074491258938385116931704099628197872818645007402127094650623219597351713913743876783407207444647007920310999109100048407025445117316653579543081033422373331748780472388613251735280787208700815487771117996821840970652031795729009935602465944770810781951846007183989800272480030567759427523705280644347164074089710803368254163411938718575451963866252162206420948992226561078431759407980473013842659456847240229722625681061192006583913284203431974248755533489950123033448916294495140865617449382138253888989258264159618161833192501180948870980564735258406986782758481517697427913807448172352727980589169055228071745762525991496856127264586268681547232287059082042366334873226200052904122681448883882151844249942880352540570454279486648865721131297364444565064025596565059412734776445036314332051321780572487734068613533382327817784052738399795979040472792586925993882213048593251107941840360642284476786363754808602586095962055550797033031778666297074564639929439373791272047188299932309117821399974112947646846281774913871462280138380391030801314286320936180215118434188492222882315305074130773183672959791865624013079899772724377071116227457642989383583324679483523855867248236721108524031997667752961567771142108856239947754065382016698449364179555191031881831437414834796533030458155540828149963629769632099808879013109846368290844372088048827486233739162796663340434195731105493191486738525696635794828694703754622197584333756815130509869185261670123149918892821579537985593254754180999751079538228764164147159596196397351138983381591633039771062908129369419724031014985460882530959144070826347055422853288560145601082149126220846801384713778119735869698070625036302833912482700454668796153247011540046857751197107297426784637246332037084173111973829871347265217427916211596255109444039571628125796597919531922112608836305368428615941315983597237969744437690024966835348417377128884946214211261825532899403703340242136849342391188687710939899164917697029718579334033036955903866782356841209551959494709853278422689069298656874723006543124176546896111269763811715167791156410610383412226192744124332316598733299429806696138351355732079856475176389105149344021291377517338825882456349029365419077597635200888112256309587968885624740904772241245045249749838739393697408231857010306464781050332737313767239417305121059410993289356415847894160209261736478809243839140974116351469316828569188836979057403228232432765076769474275656279167542058071904809400309429618921619737957534829658977593443987767418519788422405125113556469869364283125484966361181148668623793181149870552996284151267901795815966343353165143908307765351342983412880348133947197772604434008731920672378983329085685120200163003381956725272843612058789783537324696172899958660578004168557615010114719094151290560560635066874886588335066464918596230852114192009609570912366946319730909540823181011278384100415522269545264157755999789933992936618589751595305172613009840846366947597894101970148171456576126452565007444680307867320135780619120479683684292042455118005617512179936896927308780764462316610425281769784990011543980689269574493848452605276183108345271900141249328531539344954994401152838082864676749059605732660181072024382302368834230401845411647980315508766757710637503755373758891186916035688998183146733598534684489846519895675074732420755899783986280184904300996606322408776853137989706275154865303130907540896504731257361295170388258002014017663400624267764400273430087875363944432301568139541933869760813655049879393568574389575242785404962793181901378225900520657526370827974481523919271518004409815997049551084956001327538800928175142439963229075621241432543168612421367237344601010073881392391472210134204286347365900673048158388911533086793286666335394664745878854426970552352896809392828491175093398093659206456063948197941050088120983169611409166841656480088950925570535005011062223149818338518274258792521987225088395405394513260761159312647385145932991894825159130107503714691984890807703356662553809023866880575519908405059379575326530009299504505166499340301471438279478041207004891982100540105894514437624102150763198579001784340621850036934678135566308017276659566568090887558551798635517367451659106872930395704670941060857009959018199956732438851471128905646278762481991260930898009806137814705628393651254473640850201766538561800254540218551672736247613014650175785222173994106433960732659033637115671620799706366375871356609501466533119930782875387872108021611633061671091759465798035441837509823234861911795657995726400772494940066451120961882249550730375445361059315888181514128688884845600194365581575933266354357730540958292084082142864495337316468073535906893594799081592446063252450109890388114718064875316431382310018764088954054315583003284055867067626933200602813244313081445118256862612107347250433080651874080196542055974019662314359585640686103351042226688868897655392761010614236102680439012119261265842542114224922534167029134030182826371215451948934729960918818963771025830975576692161105805204974549508904400682316450175328872537255001051843567165308608647273550294139118610034663331152056522213860169662795966031245511322178952433675749085212740374235109432396515505467621304481466132636225848957229680200564973920713607656034585308574579836257927008894325054042858707453768832489093537414917504534583515196673202620974755494331428016175689780339475032590628401241140147403708660078477714314528116863167699478925046345301721927623383829179784427290050859772195667446973059742886749309380440017691964327062279994949293993842607730281454737620453869249664520286843015833792412510617268042775558431958053913828813792621029782496635334153666019491214739378656000959767292165664596955604362170109306195757269874251422527453670701871143844722760397702317248018452573214511027019643784779981967314316638757480299088812684787410510042794066271574702414886917810379542194183434981969789601516497185251969515488718136603410551773232587943850574414977788758688537244704288508211312569411522407869585825890829891298648704800648907641546510098258056849519634871084473372045774606722987761971785525661468167799979350135166651695048380867202524146756826226357490435687172292424972781803486841616641738380209962161389889868481692080365063362501358950552528191396141832303920581543926949197422228582377074173681543831624669995712634807446599300234761912467427875985533143126736638860742400347408533395259672426747090155063107669496454510469114082242057292620608005722352329224209768781932486140947447017749564017267092286144481756082785817973064551286595408928855592911015218093095432172771716606760073142725252065035965673785479034489043175264080230794183710864503696937346006393156614520208669622231971637913666038814738075504114697133035825791245380608917884014476068671634163883365206989844321698186836479378149345016203524021164006986523162415293583150966851113090283656300050841997651825289856140923602403512698584131676587891499341824133452939757205355161219774130012182462398900054963377433561559683497552233392825020426484889948195744787120205348458037926345491939077848026650093266438411243702909468295816114202761079904011849254879591532825696038881801003492573284015422010914003133916791695538693253811512690685650983340307278530021049331056017654899335279376760960540304272303982891698924823223449060448406732277871808947971002073228659789761519076125946168157837606493731363918515445858410085251876091086144733345799415433425677007714799418807899124406561065916133471442363888234756900303897360590660028008236925515571351037424284207344945543655593367726617396053179094910517222076953171610334153205850800038256735665301795406008151518999492396569771116159544912377218808642513216091244113787990045841765831541403984838851874588123413556541769110548343285392243082819528413046057806667947445822014948461881871959451517861910883106355570186464240006516905188880084233248501263206248240675043694969211658755939741791682484589295696093224519934096158415355820388675729868787660665344879306158402062508359858321626171611761967510703119788724919609398744708034113043647770255526903916342990630696331999397960066738835145508053065100954348427505184681245427073028396049572932793500846991332717546221107625947592120303450676053995089539034993069323907130570491476717258523396299409342817492270553179114830784483124268939483728846719311371646823506872656682774119833581902293698830116081574279910577495775673573823706025864464616534901021162855803140196026489879287717933712004466732258918514070896390092265371618147064000357316223306666376762771968421457085229333317779348576645397382894633703379990401285174794714906970563188154109540423117182041168851168573113786907445744512636437563235655899132202829813571756925396296223954775207841839869090006483981199211096522178280631061850710217615525818973356350974236471083182879048756238956780538176929392355603410496732356119615955289706339620103337849002453707191189806842637963276623891489274889031131919558989483448123324635652956886920471126106458277244962893030674384663196432501134365003957822907051187991380057742507285449632283245689473135556759322712237963664025306423777556495309604270922571549050177360374532734823612926576735102861954183047270711484330383127256651958948387004037392087291845419269081691005339289640759026028757897927732775858017262490881688032090827704074779903693181506316946319956381812866906149355543432247716561640907269651186860788388373988561702860887571403156392075595188371217439063329107501329092026042614680331381480047607927581025194127847409549712175950729520083483800462367547543295251519098887210097568030472174512679791054486707446342150245671379271972526479925224237671283583548337665370254948353210150051698223545838450550776509635202306331293960344212122926620260821001569188709473011712639478137419972784308423657487896623650015983252592277217659582151064423334282898496728447453676680637813334632336406539744031254238585073991175584403175426589379795854167471368049226669496492923490814136004991790723007519128959340982135897257695827980871015318269631960920865684002564621965863767578497892033917663704567757641365034974944659084589933255539789756892250534028516373199994455551164815927516120587669227209619245251753370632427312801448540474617647782401697749116698813595902861952729520368469631800825370831157134266689238283702318831997083566752507960948839970472834942855595438817771256939712301148609423620973645179243032254249672648953913400570120498436350175911998267821438499225725185455342290991509200702266253211400943268735673014801479037859400558361911177549334454261534595833546850738734475500430147891622341013658303479921952675776030682655146546502528769488618650156463610778241417357615161017012801324985554168005548285644069670181470974215454252998657363938849177688218583677064439599488187915873398578884363831383494033538189946668718356720014353774697738389180045154970622674850431493941963433542539422719130101676159568139076604278238719269275189948819621226495743601923152983844493317022435687523045380978747904912495611036997271211789658594724320833107652223777037772017961469628147392071294259678160359246072929706276516147437684250495596662687440303046402001363285437343322997895030040028992775758862548785554519959790822642906529974865006875954900697226943343498369112289100653797324669215624991999044415105350710791144020796260546761480980788235721358519762073803762302941539808813286642952478916541959462745132348997974488338520392753787568490960828495481281728161202133869062133841597964854157804247713608593431474883202264240077180288711824746815123057818059864414919083748880780697662372525885468438387274634511885701911591759950080580814886437894573279074875350383315610677772450723615053008720231571584742647431582797361342181827484635433641771144371990022620101162581873558703372170434065045422620010481483162008191173839658925857647926146402910598037343250086967857660085948981370058932217007149982357629747569211198536202312840856142702160923528602744035389177237009533240360923447739020007763105527806229598065786968770396709937621518713872588411239595226898882763143723863529930553722458696326090378353314750578605756436879721101545252851042405153606684881980456449372051628447769217906538417688299276860245101417487724006001993495412185211842066673288860339581599356874978978985566194097222653005050328078941397357143749008896528621423320932200784418578001398402012502881453733112557706515224205935601525899571082707267931633872261042848281194346891890121521531939472665305178121584148939511871846750017582748175641804086561607672069662276482058540599078563117216206777182699926519997958492754722957982954284196018992750428289539122269601675373125325177564557633141299711640650144426763376991356171848445599570301097335957984308080098752713359500115750289050309478112034789502176848523864266863491025629326976046416322837476202176501503198531411327721014916380556723327451749959104455133771437630833074825803408832161996667878835782636156123189935904814620488130556535084755996466941650398852447913372728388017787600910741523319225558772679838971107457415771796649112476706220914334818540734875886973928810242421345223726737492541130899535070630300382229229012684886070831831809277084291284237478594524174407825217736735129586932830814165995937783427647482042018991611970444630800563649427242464742678397109762763953070290406673839860802797204207561739127319681662011280530975184816837368039013298728213657288372113206945935833880823052752890117744823983027800546662637055962839187854636610180817179511721070717756016568533292022812993182222336162398506795752227480848441729103310468893712042050092338513702645857575373246823066577886715258957569166959538603185687685645317519133933792353660049879793336356287320595051924293521083562088571139646471812803318349612563346112573777086309186548442650901315787092155112662509429941336857235647118961711333208044290821177269152901789544514713960437323671897031621552927259954367082671767194710869454646313879574305788885158918638590895991499141645787617215936646546082521131667007028115955980175147285699024501772805422370278046444885995302113267087020833338237052636223074415571480449868317164096155160054709953850659370141012710253603859156188249572667528713488193546559135137813558166251522588370549461798113656190861471566214680101905762760513221244787632814109448319377476856904742678693714144314331521706619240956652557911186111985033123337902871256601147326710681255424246132489809757025162232961165800253205683690171856857538003263439256680281396190760578653900289739480656781537088342425649109860633874716950590026194123244999331817129708472731500308325891551139449353321950554377098138370604050715538444578201513436378264117823067446312858631784481937913960347621015487437013119829270389975528657392801225743090806220142307848405513848306172965020291849349959298624081761879249555025854055802813714452606521815982738008306866639223749598580754924837197765268598956147426527466203316309232190506633182929359459235490104013966164041315023691786128603802837543907403795128066748924905077717850030771028337248347493782822287896968917831869495237758410040508539136705060004138839123511335496912993255027448730604017226688828757984652285247322294362091762481661128981869416842569116205310121753128428442812178612748603645257519017119465169688427131698102801129176169733461578505858678785519363096951440556095883845363298455933351178152344496658821290805633461056010833367272137198734558728455240834755638222338233760936238626623824177462061807366846867062230920249792736872384343148226973900791851311390267604575612802670763185921310879077546902540104887209068030164263628954380285247503146277811993152448690327235044263757366547509589162054819838172359750141056313472218272258177289828952287392503514906489681235176926404318882673192571216131835303089584078573863752256274512247230572869258302802743889434478067892474506120906669596682919095991265997462672641207087772621930019102639532864628647075660889325044093394343675348579234350277315420831795475044452764886207386496324913234790770285768582014267884552731160432689757031912155885573604702035343158916903987873889046134852248482597023200573436889797122864344073649029468931497830019175787383029868766667217943544412145705723819796108640484081976803024531013503069333325806603567059966241167020226112988584297569599419555642907675418689088036924153341634937674045021361088031206247918287126532204927088548759823254933101273278785072079861465643189183633844136675051706266415445289587589529025147421798532375286218174053833772246390856441510561274997203189058255798164819014796627946214243936429070470933125235410207335540395034671140114066091459629256098401289624140070375684052316807568276796513594301779062796239986404335084733537198284888144867366469187470903130621900113516782944172871471644531580940685085238213313323873625486308251767332610042412155686017786578011674323314681836046212492650440987310446763538593852358081837561223930394466133836748661323742574358193617102674775681206999332255920241228328681449464649576953461153405309775284942380030009803471759411924014007511885543204368769486581957263262824446251245287471925045987832931338234861884830917194444220115803921308856955860150299100714236374082370801956892587993062739172002352492767123051604505254069736266960264003327776531193598681144049330759086651019959462110811689628717077509306641303373917294321133851326360157040820413540403033882771114863924206106839119938979985826629214405163486536581036073024917961229075966943648810691657577493035273673774599185822805140961018672410161829081667450944827477450199156696572591459434983269003569554118959368082137789696003539325726343847959856766183068287706053872228086626397249079081987456471349152552202561854493870163078806516481344896220126468821489008787062253721671027829645611173943637156399484878190532823582175202202217674236611903478694986852244959775411299570978380422200138509037179878833814764411841119790156155083880868873347739738709403801739574668871899385220448395318118056876401751497742056115069544612847748177707488679127641051970405233923220918843289956552168310895537731817823663808333719684435685938740122642416344674929301063837374172581665087629303753077271669596221893930122697943024340077339701720144548336625571028244986303425765331444156902513467537587398679524071721844924339403541575258110241884743984802224893846053921161082733539200991682582101906710868555842751368745282909962767996491141726072918763894591341743008842529105627391071988446106331019862279907882676263509915719809789793948305884362983056778084458337426539733056064014423314312794003961713990529092629533558897873399719097473528230750829078455053828851632788085120143871259698195265577612543409915465322604465818349642782374618739760798934480176620983041619777704074897904781707481333158015032762437375636331208061705606817650540015659242727990296164251915120704389193955431688125984370965300906900885220300548741056376784498402678924262572216363690723575789129076974834189537083862983849061333881310169286228718109276876411247851350149186166523105476744817375990217035704255743872287512953922547497545592916749752909341632750336010765989938058207963702958666761168706899818198181277155406832444491151200271253269061291500396562495946284978572727396204714961760849678403959006654059467832221420098414146934807673905951575794987441642631056364635615129561930480753418548808968888761623674669843037632026043500260715514543306506888130848976585855029081345206616098059690284015981211524310970042703582035146283864798976966222012101788751678962432876072931049693830940958014772062646072106676948872749450962191117229479222321601203985292635067861979818448571760179631462276068064420657066267354625847050222188066327319428584873501945973054935807877086102898420590557813531555471504621020124908784016091574803205245148250220899928237780133189998073845766525840704190075863426947413138913496371070987294777357385870832128577663871912011235875683146080956459688699255674964349417243971485821014126487696254496089823222595700630927508830670642238170013801510383602064294715557272169298594727973832353568982280879195812030385291334092845596490863564303608631472310350428877686254058125525065695613740795894870841956501425086163975134581555443979037380580191187181609247280533131513640254189558038319016512174253500471801056776655531397275923326297238146163555056518811761831796663712170893966405435269495279441113124278871740141134350822804313823318521758205796940471800908907328082996685588490705927802903672514777520568313173890184846009344492497505784651476987019410943286272090404048677702643062292667559986485013005103462030771759903961243909866406156293180029414678192077750104075628493471893278992730563407049776568646745228974546044717747197893529153139828926384062183108948431517775812878339628758425823129204611937634213540972033719095370050714799267732097910759906911834454369120849529788729201075278711579533775407262033408899452777364879540580556547365655530011303919363990992035651383220318677093730738375898507600513564975231168670035169747940023440786165798548172307080569438340446774965991154607082165183818313790267036271264364808016645212102367023656210869613185094706997025590872884694916778438031169223218326026220247487062739592225870153695665524321602279847434453167664333108319363780594365249053079964431207105924313513039844985144785355931295658642989560090662193811750254492227256588277764410433817575361780355018808756880031207571309022225230696777411431516047048082502963527048061060467338733335440457146929144839805251421918731153192005492004974174303540211866889495939991672364170569505366885242700066325454550482558008490018446451644234728538598191731544082244388531518340430106715060658320459953765829874151013672351489567789455114471307980807935934334318087175751214117666301833584021901470358433610628189665545492296440724635530551713524564204759825876169910896061834087632892957494212081072678353290965451914907552124354080667225240300616355179084287006464112712717440072362327293064828891271633439126426358963511651891805384673525183944986387598594217936847921453123702247659558750747062685448580892143620868602361887333783272887261862667647262026196118081843746116534228722146011338645372849237255662752790354547385792818524273155365691644251446901698495799436257096786270925500675069418074664857429383018585602181553165815036676561219361380287630259479655955802562275963877939747046120927626783636012615724457918253893944217278398380447961325757324710927863741016240922913231316318576358718003505239334854243044177240651913234042536830088773160322162907965389337287308159593075866610623318255890505986491706745318108434726125516906292690631235741799032293989453093621034772244296225385724484564931058472799892331908327599694868561872653227460687990011390885760838819299828647732101312405837983384820505376517774223445256175462783614569863833882381524918016527638080370030465850207898510110003910996254639182418731518917919221576640810240286846588298177590625985996938823659706130419945833541835392516476808168129560930371395533807112535210538006564246138486736694210028001083839722964751261291651368366400429472856442159002136679959596162540946772794860059447805183048498316152956873007831964970339369267360210066476413781602897878956891973552313865801395436736316329178294464614916242299362477970866804678951142530314158992640532192112733369881847088833552691092595515544124963150396572012510863207022153934201571287567664435075438097643861140836814581946110701043549359066615815738784796751507443098669325158675417181892664942533236457760403163426986284926977951889653901280709822303497564434417514514528204245103253264052637864148194956679504900355921535356274266040512854809208128939645693047978163942907776396212252902685282705935553378700324543452594455339048504660810252419709614022571058208615437159353035354773329833090483393409833331059120308219146278303491222927352265667790568428537385311643005929768159914279484195949021508823519782523399851355751628174121537700820827676501622106556004409579742461396121406412182983128034509323641801882403736718686986230110726291285306697901992244690751174316652414186710708011151501355511251588712745748272602467675038216874756637938650697133651424315152344345663819563457719563230994415552598496220228564299386581228419608164606870353050033380808970277875068343482003360934590929991368939932429064752870675733607809468493433579010035236761005917146490636782044999651329565692758188802695542779931750376309459536759960739669992783950652126389668791934563372833717085609131872942288262743268593428637205906117065000712458278896591041889339102962775905815223607007460360045662024439067646448817653746950155147061112412631896610412375575284049910124740011349953696743057314412396601036865763646587657144910453008225571695796493695905381736116859953117320801243904268913803506629135714714627252508593391885121388788805187595316668259843987429830316912961871072297968393694018606647650867817404045563425387306457685301621595971096665852822697976312891945450539733105619613873507027779115744602160305129509349556106965536499195308795555232731142477502236694762959880388514230395834143968743611336713290458944128872326977084535305697122967606618675296086607364608472754174170811941465146602478566535204253472099179515590712018469322295408185396296751881291632325110935184602957645923784106646079380583311688403741940877723477390075052274905166414207509929640033989179809338021455819338391590165852550187682352672801552440860031299089805741545985885337727332688901353851605457712123204655906054796639995573135767850025906699552654748679913349870701257426271771610195187901278656155704469397747469210687642893340111727620713987716374327414257696670982574918252466507170469503096081857227645208609885289385816405585352463301178824284049464961661410249285604312378475234184512569506140701939803048802136315056214430563897555561662884628905100144906676351325030079078085541460659732061233409551482196330088779250855920546558433497158225136282295375298301450641526950273598738230668026452887393592694669533055844059596322852816970865564310474940904984872013672643664512193959524321160669250837027787779489086304017315040881733780843220190417037193624401204158774285015434160553122432013448043331232781442108162849259644992221830287063431563280448433488750756259325361271566536254106848107904761478095776711788728340914588596057707357427647470013946294125340112140123649021709645007462745277224213458730229253718743439230779907752110624901612711805109776725680069547361845339044357037862144006948108310572537145786048338371714865065594517985373523073833322816811700731518296818692939981798179723082993147695055455604296770279964774864161081722731096732642446579197430120506312807952436810460706532315689292341225692198472349357924933665966587314253828710246698792882833055925868207462139762581090242528203063879977945162510596800340440478330620181323394119969028589654907322121422186572476406690872276970113641363773766002336673527020042881975962660590626694923737740717268465866816101142246253571961326968687186307980583118113062933672302555354047576572995323846812919493385564032973752024795215120825855160120665376773891349793710698252589802066604770955462397007058662005955239447342757643510534516910237256565586360599364265718919788169246095088639963124650375938536991578141495566391440981117058637367526017011466895844204444296809177376436470333371082729135750630179116524405072689705634786804306009228474835633981396923825120692956551611358927974640066376549471598790109278071096131438837880057082976911458825640259750081812757219416959191859226005365987119616811300516341310730389625003142257770581809668316343438060560659406364981056995298299216885692434569840229668965395457242771671230847714581947542732336488624769039446107165015842910186185157825813381510506577937512252643482785219415404492887035423783117478869677274005039266574483056499234624668633629873301752368858660470332554167506963676707474890505348550720349664801476219390697646343875715697802149696910977479614075089151522788296917412212087956858530612495416976998382902694408253710176690232605807962877462528387101688690456393830637987005423992768504267988100415161206607193533528080631002143674976211363535622995606985221609924047921170277848094910905899768934546522551968485082823880336063715870486618584224033111889050566841404155366238523140061518987285608702666300340845594421841189768856305945730904987543047308175873294293168824872457128401685391237780361349984257645379597323141620456963680952759257588441035486882800644178274052866656198971241131235212901539611715770177098987275310879775802832944675957302380344605428259586485113169577950460107373888403506560405492533983159076169220842856230077492330405225661681704616706974148813419005626962557179198398641057415991257485301844516793987576448427545103059633423057872100312631977689362978479175474604819534827139046867853807953807059282356352833614394023654547858957908869347932817103606223545477307508043149957696597972349530813051784100562924254332475717791714490604088816967288569632752684586541667664749209711462394524947260506413565238369315105673583480653910606520885483304026374944082395943051894890185980693084034128484049110678302564744822351803965794102203265764505079031947668397642403218628802587183960087299271298235976765972314421261944244340863244167259783760921801919317216208057063201621228650690165842771582316446991129009515414513055318403709656276282190919895326573479563200749385425676096467758918942166489941303746856910288188478006534663124887306334611855655494743480958632887234641103837398682620293202428276893977908532779343219105879914577382009775050247227907277562886495851548810696274889791472844123653091179316577263580511418052702487390941432903828726051609518546739752575991792891310454386532157660543024710542665844032687215856825844032324276906411659782555625474033663097067448876734456036033275154276391233428625030707907303608410765980087006241350742833930115562326873173407374941578670267202610447933390444101283335836360022937322164170104827808762899892697695341419395277046042120655641277124624612441485330697792580115308567645959480543974999025053572689171277047083185472885699745712957283844445899835702217645398814878700689139243761136236070150033256078218962070662337513249437930086827786624151603392990657658672984272979386499561058535776474928933580015625824383151494954064620393812450486988857191563037410409298271437094419923789584001134038664426292866221159394187690949425694093488386037002056060946332225078923129704398673256911743145614972621111232214967124524043979102609860266520517515976060276825097247741401663885330689357579657044234845394778377441516274631440299965121369745068763026832208107883077475023223079891367482750717074913206903876713391015838427333194916746778331566321168514519685432339212494647638057903052888760628595878186895832511835731939372973741217815146369322815120253582390659548939506918653073261011908757476551313988781383579467306868711447173411854726923349457738521043279880146632413512646494665090517315493398798566477622959522911467600566112576792792935284041577424863815401233768914287115650116461035190186571251922267078821224359991043433392670230410502168178795743086820868122276497865215218723910930784983396045042449834107370597986307897704730125007277011847746155140592416612337813075633178631085102564522829910027252498694193255526276558079169966473533996473549737054102893137345599725334897897124614232716755400073513476759010098084617994335980714512931000618592217411845419514864072216462551038393604690749468221000998850932790277879552050464775150799889391670949049118554660254640208911815696945589189679490499329897075914899092102988526431888745412791508200155101271898675696833363949476769726967474573748014935132416087570275025359548479358363299297021118516180031443592707580619083955442606978354511975533970588410015724789440672411221774201203238861159921559992194199083196285189585083172177308726849510170711042121594562483228274769178236390980375571662622265026481050924882391484905018944152717367486029001337697934705770596834322870807437878978036167180813892511337745210429810447342128022770365063708157053046591232246424874294871300643035082519722201072475181224981270490594804247026864673717334541036720171772647651982826290586947690115352925044430643284058914055879408133566805070093533578142371719415523866551252066329960508397292858740125999099829726340980619125024290326571188995255159230809132494145572362990609283614027529210351302500009387507608877176696662984728555727394133055834698833064197290970524130833346300699169655315441778416449352031743662707197673298759032446572589509721078156242119205027781290716295175053947365175252617951483791544097766368767005756542411432027008568838477439267385314613686104023874566059914304131094958792794302637983026433233932238057310926910754866958706658166896425978342940041725789178610889508201098717397068346110311467899259421789702194834729598383316861399470708599072836804865721298267199303550661351290454272173335563629688659686038148948954930244550458927473652806295538479489339229096079729389568481592718910336726851759539132750882845423519815810834175823722115739831339546316529341745601450217182247816488313191805859912591580778905365125908980887540108372127484521640646059789309121901755545971612850185699550901789960269400521867818518293472004278189686970893333698423515202341166848635857193463424227033276723911889629438858967690182086130006969693337982535510800077759258617906020743342630417576405877583396468857336525492421090833698089226390534231826205499120941103049238840196098477420656461116943008772673464156119919481162894883247879527318495702743104828784662978487495975959358443541013645734292786737822728223264724974817557484503805240913301071455619066691545737175204011512696821242268766499237894546309675045747259382013756498902603244934454033785604365159519164272145394365561303813578147525176709933599610290160079552707069040655139844515444900767174647832031095766012315413280034730150432234727562409655076616191494923792170845390447541728510149618417052860017085385429319414708750807461187805960982736169391203519047702659781692523311230759005123188113740194790893929004201431414009960996682838165453395777848821071972508991013858505919189684753894824504388529999541466235034048055714024097461394302035879282736031449638515339490685515221516701079895528498539561120294015430712465828166854203818347781132694041996892547354642914659196373221745448397141222744131332256116511815993625318682044939373117711191662162938851082321136914300541444135073604443518793407372006448849015159074056062519725018330549787718900263325794138933229064109976232373383214239911915899723361732291128600854117400763427326401300212107466976962291811914240356642338928403876795022568495823784843728819564831049598484507932728794910841067552554875572294612228350865323650304563640618559939975192116891777601710665569019083973191647383255491671802406525848232734803740251601722601138087071883181621952458807334526070771168393762920369517001262687648026953651147311150045959251570476462404217035347099515024569095263659937199530534730246977238919450020159754274655555255693337504717980199401205459073315849831907951850858561982227876429844018901371880238801122640248428515059550481032063812099384261915941136460014051235640910490875071972173354957689824281855937444588608750636039107113688264425065228531176828547748868596796030719626599769647762520762689160298116281088648905004404794332100051962401981310926706450821763855847889738722131607980257294700862281341986990484223070490648375140693086146369690621496646921321137596235908880207332823540272588562733910482807319396942166639592020376308471656732501164205543183162788002680359277740577497900126225717463117924732623107561959150507507292823492673061645380429195025100719526927218635522775840358982538240767251348496815515887938861393601872203439704195423020157601545706927269880941853690472425948345639486603741986956375768361159608114348527659744620671010344952049714087684623041983458771767343740719838009407534947381103501210352065144638896525855738625003229516833732484920479462952901653289161734872458423325412665317418050918984925775797536094521864211459171787802580601775064107201635567619277396886812773220303914303814508323141178173001707311876744153118305946535865965078437000102131254774446505606079939744887892131048578612406674009808473515973168262331512921663012335545372659665323508264163515514143786981872237977126738649708274630085052355050452439244348571841164233086267875009406848488948941183184794222983437608906722124007303057785967805725296722139517507206292771497741775252247636137562577923988025419767745597138906719936134120510003534430025624464753578778911006392917962604523708690827372356266477315792591386062501945851294639711735624760102999501051468731532175514288814861257462873659333070369649878911873565757287756907476804073283518810793507907789949833163856012827340584672924572312546303062753570438190021970266041154566477086961601584736831615815956319723453822847548843374614777945919775348701526339248030988682084277445942520190724467351336577287493820262746395901377274878967946740056629319402521853776435363971182581533244845422287262259949317493226674546203721298169640916240394382910309213493892326452111035026159037709071091137200635925816149990625172930754259179326261983973717932067432648361866098062923845278341075562711706548456758768253816093227637017327416262331108888083352443187138128904905650000510449433732822256877989682857348288164753962068563646892095758214952424642560957374140634448423267859187294151873618280487500120710236471459018972812239108094880814869615540943449415094410187098889976870815040940152758621932287050447518994939324732440411846831683475898491298747599760718335843130480192862028132514881606849248341142357337318582889509546035450385417240605503534366375765257500471527461684208927651369484036024778065636714264566568267020659795167614527569780075910883715511160608997075031369101945203775542283574748665557180192536670960388674194124333368627194937977134785030387616262807513683236327544185525934840978102006451644491483705158774786047756274401690050428970059137491580815401831678878717920839069183120794705639108914857800309645796455890244821455158752687753364429749340950746955332531517860089824132616157225366014333079879998309224427762715021479890755114303104753860627866609590502485011047570305461108932736125024289835170206078391542437663707178823822297126737654910275269922902047618716803780813375119903523327561178965658895784225859886996801513596139998955663257409390044414575600988602519396272873710253972369237348594521067398154402083896800948501585321471887154348121156095383266980902417689464016375316061799936053297440178291555958327702556197024025504805731267904305528066217824876309615335439538108427711424472778082042402446556874324080884911722960274256031766918204770948265531059512399723905100664772917913164434454226569359289533038023857889796497198482481076499058717701498735843868732630662096836652058464212806630748202083874805700439344973667178047537769733414315195879563220351152948179745908516416637188435044849896920858386729615821619078063663595497084569846212053268538985603536644545745292693062900915255482871085211885070991990177256478729403146596160745720710260586694467063619073333002940540158025982034111341818335907458814712137940024323257831562243900754970729637782653064936907343584902450929686598355222309193672492966636401578715089461549811873526992499413869458135565302710617598021865656590192567132962897446794961111361629259847361768128090785547308529351767854932017572085122383513310988697829859491566244261481152763379592448406665312931575059673704805560245778853994655561150079635484206206550153265602800843036804509367642390941459823152663983775458080826099174811752501576973940096300313876808883899035386810621659529372205614270617506878995186361988511483824558574195979094765225636713184961361653426487329286380283758994617894076684077877532068136204576300250835555698908239979995481362294971086299714491613374349951677287066670927628577503183488593460345366137382069099491135508794747228824662394432725986209171179748556580675070490769702432426064488620800322828279225335221662326062624114654505159292822570095182975858947946306854115790273498002491266850520911921023163544039322195869617502847023767981564081452056199584230339013121724578493873693836010445608525570547979164594360671729553057874525401161316955746106812993998196055190268725841422569925372596822761170805911034202736701507194446328620342384367836398099798306333377826218587116741033327686346760147995844039467886999257613883275831640119714139919507541787996870134792338652019438761078248941139361167065543241412102910671473583796857798650981740914348125952725797892144577688819145894912077079937710276105133953181421583578490758632651480417799957851215555882995994324019030053480597865070285118799194610133723429214827088048018366521516994614545071261079477008530636498528159650695251438938307237749275057960214917074937355891388263914790445283210634615467512351634050777949143818022940115894859667379306799260724886135644055169166961487313257480786737645320704670039053504366246785650414594696196759460909932160639582822062116563012545855128341712968476049795685711702731935880965039733201292644127770176831125484529939060305378907617002808679563800981995388320155069868721952447383515243827523247890206791077019812886355860864793131932491442324088435596797552718572075592354658723367313516295224893464639983107526350607982860918524773553609426468689369214899364404676829083314087882366063010753488988679912337969503377322082220525110167162306473420039277024238643702167279877871779780088107047665127821007465364409841128895479563569289308324080253091797911568472910077249624452664895224443499734024344525567301345291484015335514187929524439539953603397936241144057123547542009161312125410029251446784024880777475312855060113196167044096300583839656566916814894965875885801929512817359556730602356622990042225492795827290072615919704912627319315371678423741056253455440106547804013818340262816221335471575365462275374690713271164958902298011522108024859740778758473519854605184599658367537339608787178871839670178536624960041928474936155958579232545003208730820569922447915570073532549673562847669410836172234178423774260346758574886981835221711893159741542794982908100017861432937728649028492771701864973372758789613453796823476210848089532428024379453062968138327319286823451170949737907940074173821401678436247527271554480421378412338130180474928264999940541062488637339338124258264277997368443027746815842454516872142835261011826247039870372854636338363066214582517030270508037905219086435120175930072785334118689390576410459797302694348823868101219677902799847231216397570285601387336732024281770545783659239689820384601630620432089313110906068430010883691518548208959187609874223079339752050820111668220135151282206851323988190714367264483121329296065857838542279971084116769116418835728496309304482119511404554898950136079546078985618094633950857552058478785833262133534250770526084304654612144396831844823159899261929399733218339882199699896337768586657661749508221684748061719400253133673789851325849828553485784439470987863539144001420161826979744565972121697022817688414139190164479547532681759161717458930760044817954414002194497586205626769386977898989978989963247358014726746464453486325522706492863942164258183723401933481517228568466022716685778945206461651187693280170334384189214008136288348403404700442832526117621595842380492840391238105801352514941983671212147639013058144799059941841618087072269782639912199154710034464391997698719706236552440383513839328099745786792485707166554730538116604494882042531457249196768536584376398875253204732014069055523779006672420554159273252255138785071582407164908485576134517483954093009449998309101777749779894972765364430186777135741183380012493227942640530736899039364810596393924349079502115339817166626390926080023417686926021191540053915838664770823952241301674965903418063599607604848113691113020271287593448684448865709319459281935946399700652371920089450022635698872190533669517002899213934549154523870548417589712153473493723242627257099571517988463488841237404386064598832563023579111935264549319146764157378467261458674865920744737373961439453932995011105578993989871492205757846247493968756376306461731618289635205373664316892337838195144089547547868287233993962779511636861180134969040198239141886374694660971358750628730735606433261759413832742306907486452699884397441329554626674353951830017484419290995381966349639044520540956836831387683303934502423746678901414334235036157468494883582864001431576819061740003530846485308741076682443476835570358930554196273001958143468622314027600432427622549512369693932841286456143018285258691138033741406928789349505479393465408505777757784710570618093937637398670997908091083845782643769595758040199616051485360826210297631374192154881427907313692628632506430571215646003716889608605927289730693480209523549836072133428087536292278143041695527639865375848188500359156511423308737374378050568232925525603392227099697218181370883093221636415040251913154625292922922793163042285803968134873368289077141298898493494990869753169731530157650783833709166731849147772279819824498182482786793104669021768348265186954629919521566559927746691145612353500341986020070731785850474483167260018992932757467503311134603889509388642246051346033901435150965463950722457872889870897251879724910480069667646056652679943459314652937529983073743893716463086693072493218453534637829979081298028714940556584312838917451321321683686505734569369008650497436876277361274214394149961770813708563933285146331670777417593883329076939752388275988706229311399513820493419194700824657870897676756710476862482824519095245915784736455120263772726380068516874608688693130761958543860081139417927979165410270246282658990605769709424536106612935250315757230953163567284768699808454547807227019544792548334036750058631010929918053334386205841204758391432941245545516532854529020217000945084653918201621069254524066885482189819283509457855675892697604823094080720950872261287398760248839978709982672925955139871602269342160172338329809535702251848946978623274535858092566870413036030202166839015642351974304122613689566741582442672846018607747453258758079669521372249055747725962414139470042670113728044991495320288096760001964872382806259216235616536718578410570331570122499714326472742295884662836614498502226822463971652569851358881082602126036514173706965964457028374806787301542810328852265959711900582644418531709485163936361735159819690565922994773957129690936591554709225443926997805133984489694312744411195313582853117582440127478483728102838523746745422841564790061167010208085213003833473724338791655240593294547663773334256157665326222656814300399654276535353630696290589881654715819797019700673323236853110944439614316979808211817324592324910664124397247365919944105795254324855623112302401033322033074730954267972530808015745407492340972091035572467257692566556188679188546141020593807190365836501131859886885491612639187038756553369904123659301844625197729629236506225133344750287946489842729412751829759023934570412960788167392086885077899274949772311361160267173997208260461838603363526343845247784065067008693780761482508436377459542096806307025113696131323991365906212838132467079657754067049691187848699273521223540489155712429688075773619708770151674145496948158473287283315007001119722281031980936826598750053431331669822604029594835621834036536439777045548671889092062712239867237043077207056205767085687513840367392628973300132883509247164323211587783094232722879962798723191074852356735593836827481118887556576463532879581354935073351133744218361594374312459115291757151870493840173699240556740625891972856699804714130536939031411296974912168139934912775983433513459278108378291437608112149066561351687716990681775305620781952242466279793145798974815349701615754036030818303518046106572313673081821500520630167075756063718397930120242471599945902608160815474771823764118259948046485328499485504615660086882518777601588785001973766909554250818937400138760957355617178184807802158132560828946430007260257321938800633218163616481497621796124467724709568820739928263401924863216514868231005111877732779020008300454910450947067035502226442072188110685403199095117730259130591302507700913235720438155075656997484857786158638035920193517865490074778923993205076421026352077830243515610074164097827136801904935537760061288228787346508641159218924913804879793399253096938477854474052921065723117466108117279251951771540456375813374251844415030970000711806579264064807222587696948818890293548331406331921340471852006558934889303304528300784194832490403876294329504888242435503220060563610931434299874457134353509171516716475983025001546200135957520597783653313476646642296663028096525066136232325678985821754247036881101712415242518142731652918320776325975581783503993469737012795463422973082951322161070056485863969371966684042156385648969339455643674950734785976194985957628786017843052322952579878500483596437584488696293407555797559553503669812257674669335678840625361045852679091439041189204111091731846973322079557937979728922072203913939715520862545573958052358797599634745800616171583315037085095558461863177974567397225905918324745445774736832221448883546451939449282950495320482959446662933775805171367917866515409525350805437009676872798177417557962773079597965241297898097255853799365617721012119045570640369228911314571662685493662987076360674045230656672463546510095970960548542330619769396931832082175762814970010170602943941407891128808553516651468503739898351031146534948349532229713557054484120196502335831745777867467742551106144476373557354495130854698039541256124205163930576110672979160622127274472967609832722164400712479830388182640278434217021368431470672107897793272208649366352905807975461816982242502306077143040358793645868510419830224237500756668126141508921662695199386512055821873655701412677902026698944841279783983572072182157295250772626940916371225872317188141283847665339470469886298290232770940201122416419600748227134624895295277564523193159316864905559757560971291812361556386575798449663610188143604936119937090921435767524063561747346424978637257762514545031039209018080439658002635758039363493126235451252883514314218026595842193869827696618492496713777384005486946717479088490300016583091237809155325332677189859557505280526317710246424300395994875380629802002376253299389058099427311672633393136133129803625860400325841552250799823488925506892585679896019674525386782659633106477977064922841894762157299314703576122893475203793709128889778048668324267784014688935905737930139108411615643446725555760054718400212414779896304305358597018358586618358581309678455345503195185037143268343338614979359713753004029803472253916961439553478452817269795754908239673934762468195975803128969442989994057711523029789289814389826449711419069673021655259285221416500970532511749684626190807501002373561600148989311161446146388921035573577814931250548043729449804121675451960675342554367329774687972785171279089222004128427385645834507835132038193157575093353018391614341294599083898310257378284095047989289768529020240901099857862338885740897645677093442927659414296370594636322096056146900453694435454045856872412072289076444494987589235379778543851469196065604377551710677064967855492045909772306120175814942672612342564979825264413444961706461420408170402263977611602496980013835310494426988413407901343481126494226604480696174210775952278569885121609411404202752265092349659378343033285577139307158141088258322403132297381616755530482909208699118013755914962145320189907576578437895606790313319723856491188019551165987552390802242321163336858118236535032919876962951218004172741581413462973983586828804555654729887091929119230260279052637812643386304420182850489634320820620811515302288447101592305719755573514293677038790690447922914025843548333287066742213569446199127062495402750030655247569889390597351869909359268197774907099952093524937651993599975808849027757081882316840094365705849129788314356844945543331535849203208772842010732245101788624012929977341637691868101350115079218540173140137843909863353247208664350666511556520380196043917864467158549299362768043052317250439058039277439366953439838563914967741423813109711435928422411545061815643509905387119448475636215977713028250541735530793808307143755230193910448567826076629567580182698002437018765130466536793702711524897175906410627075483612517809707571655494059488412315734568679663390612866361968304372694846595865152113815205934624301929121106130890890533751416015463097893464172974880719816193382482178754172321844084013971715089493650846209453710787785842336615146473566377516969539721644158595852914112642179707598681838518592097526393146162275999636449642353596107418648807203207209567134077221677165474658308337448958285531483268677916404932023906943663080676822708826446936762721985995555964140817129915863918040119945151152452515644732849898648000103736225155515291457665819507844016967798674177780266609932062780322584074384563715227962532655795190299397485734212233863704890262191777933201718099227588989114883641774892525826801849281200898814706221897053336409799135440451965859680060807108531279609649988549495097638906790580159256615414089324772028018983455652073015139813900530166449949096840191923351465804778740997940598263705716403259933968042557696506090725910659308007329415795262632748957155276034831981347965980993586017967921456821110160194335900421983734389544174317709692944627010036877133543476549225087732512959096569158600452394567766624658600636604567115304677292849069525755671324745329132457875042718386589261882741483434030332238666483689160309346032560344506627392513546365414067753277045696137123773966233025754133758565248132733660803778655658823623271835707294820488618228835071736739970712298231916993314676979942855232093106543351063338233218893898433027837527136668985983297352369116065480254110448542243704902221639850608152551991887348300957051907638784488304028908462944547014451690144906847798095109971009088898396955468962249367048656748940182382461934547670536466999154978413951188878777174071216021992571168398358630354540228464057033573538088451014109668413891605906618458700852408840267928175713113974346739395816339790753775137766599242280012874905610874286829890757910662235274693706000423656351810946470502304526510471155737678619390147005382624611392612768066427712443099851695033343460728216602386664804137282826358483967828731483144553963537607383996305284847486723044176003056920099762328040474730205466354526758965469589959000027714407838820428118848854976863606905818113460042994229278361116092103343574991223689402102141451352534288038338358646726832739210892748273045154616589600897032600898476664250664934942694318443448628013171906488556725953313223906556503020805243665536944062595899258592406816839603861741238072538311070573397429172267478364475060466402220179168281235941942053265666918303688532252629961542150662994035501760300668026014191619455379341817067531579285914191631147806362391280274695021164939793416174727018727613153363751740955363834121451017544191463270099405194280351428609324264025119489120992082506838294829914767336253433128753665627132319689438108963429132844356102247304977969714084513183792447648520263039767336132079054518645114500827513050015121618130975060841847121426592787334595573663637950548419465398190149542676394250196159035303307435507396205471206836534257835258289553985403382647115809708502134162689366962654941123096525853611909063588803516982601643434654370775557464198357001587298881861551523204984694201408339109015773271249747684240561712081020200364125377707937665128533230214347334544392248832283389586931256716501906069109328709508484104297383259419699873604628367153413511348334254895345932552384876335486146471384086009044042165370640825767060122425525340297717568669985209775267116468352501544743600165033720387316669783641506071284065052325368740677300097691320670346288075604945177976567750512538985998140546547075014079794722997075115659424050121850326186086154723318024757020274359471336211996889349157046505287677796732438173673958128242258130474858383384499801995481219388011688579955890375525027830495054002569167854178351607249711744313038811714508350762360899604024455470260239336645990940545393206256019143677341826804312912555563605603304828544111207761788061834909523206158481248875655711682719206401376911521820437628858513924274076155550971464450797134903330738937586071812056663029016327537643942920406100846343751351268202491124441231015558637441134420155172080442209721164533307898149965225765609082013202169068944621511293081987123667868896700011033361791956551999365081828375240762357924548693895416561082470458605936329576770440390916504805998394312520615441593260943701418144160253944465403481411341550025889832251039848586916763132280625873996543515760400143449235951257304059959444586979943457021355670505224823082582352368437581140643384426610218832972150259445385973429818518294097644529699960857611822955130742643960961205315945086579640868637424848206089130550100173975422424844950411504984049362497944187012027542880823246265856003423251739658761856701958741585970713896039738670287369694847232325559014051888718819384419733208199393765645372687972784748973949601832664661551853862560247696575116895593294935195322103135872303919030181225971509229816921402000392076139673943199241857613891190990828087063399317416732181832182662323449010958261872218695989449474413283998557865949699429514487796831374704904584556609760281461018847749252263346768501343807514748904826568803052806155484249790468932786866907812561824746482305901938893997208078346281581599435315462777507099017075681398843508971613261906713563229581857299129690047202893038047894790056640950786759838757885500732262814198451497770100369804166458509863695332632551449686802385624126694338900502210397405950703495008400440992411401490174033422444252053478694537573559994971495032379582433021281433687843027562368798257472782182967025973423500812792813574294965079793004727068110806864340947911070272528697803412074108539825425338199107277804889998276508928938690742676149060006925232983361287905455868778382758529206809686421454196491668933681929027378987020359786288166880522847914840049383759875641807370045955484943101918150767982742251789221939699834372523542862980832423678563879499543681841234894043650864436444373538490802692275716425694912866907863647632567495359359871162184457624263404045259014297352757842853070959366778810285010218077039803500139385986013015828813711861276419365697216362186114372413994413609543088314504387146704883354567810740573544485039362605587835801095603416927371231086707048585899192889496069595517057945771802362066154571858551097652623566577713020939067885466154905278167953567963993267736020943561686495087389331208117633551279769818383166383685636384231982889471407138207907777848750294958074233516674160775291531860499181827588828350033410389551296850299493212848363819237371329284511154034898386799014345624819924237393760501320663463316501868541798442604487109066523672168672740122324749265616250431060007437761342764832104923426577593351142933828553443389493862600901618628706928771860840722849809603409874508365326748453097224758602707313517683260357477330543773317427126327244661270580046966755730211742123387714345266844876612688915896835712402123105291767481720098087898688810093608388230629081438014833710842957680744203650404276873991132019241383633229407987387837083572767955099609965632752134886883557570149495315597410678975527240342297036098229858956341985222564926345794091436332852061261221032257611751087468311921485241990500275152709502018172376370016949440748258532455825250810888162195579232793285421246157952989059662761969622232831476399520877928604207998863543406964097597823188516370033050821308713045130420203479887951483660648093313179759049181262929491670187144246693879249638024761624676619979976922177701839720151403354527421231901361150834511301427965648635816778899083356728730054001106590504176541045428217804235654706106436204797385662355306448713474138817158345791331909584225854474778860285269505901687716491915544494703875835901630902887749894856816969288981321422441165631396901963828043489765136335670759265098143343578989187494337352561813553193963294214827169038564445049418197285604458023828989778938465587419822455595038986856079329522754141454794941500616960146591737650496383086043427812322329455336543201233519578459661167566831340724078053726201766557768445272773998952987112259403541366904819398512327645293799435012159210619029319403058366471714769222329317850505324963645970908730229002696668028456954124518283515981685346673775434079499881889397719504773992468623271481700707155360778830025039143025176744504308928174556473192502802061303898804202031452725641638394581451381136514233199586699319734662078803117159343716595098639335141127459776316239297319639328655043236909757641150665259032947431276722686472994570657996088310616194064881853250323306602202717754963509235848775216579660494514086015360993093368074397225757179486621228822857731324807282776414735033223961835290609543255050747854189543961812853455553878891828644800424809234867299990723531846309898713509031784230749126049386423343564115078553020855343172467915275985203429384247147311823236166537015279026325787356016969676681664206224796461700383955176708071436250882246360670238453821109447408621131933937423730348169932849596398626687386470272515587795486098764960625247534521943082664703983582326181935355340604252127379681937674135150754101896950161025640105589457275311562559703197812851429929108574372130030149443638344541567779181401138764400687516047341419251470684191174611093413008505546652361325200689708186686942998236309704189025888101604040145430116786137830229384518634322856051726398286121755651137781790471252300321945130459886112057994049320130068725207295436703243396820311587964745920092466593555653107627821487804994052390129134306747044925090048244060768301881495658751345293847697975613339121604836963031910561886219427344797156262529701682817280855549613128569179117134074109694763149322716879494303761911111036970747990634118653423790010660715740912954452577610578463306760057902564092245279723008043616529964441074483771753656711981181420108397444867424865166505020893004757618987143440834738521509436535692870835021393465241515454360655170187468293263364940612622020965740077386474696402062401562896596543604710622159932334854178441923273469205246930973225653415031694044116893793442107582983659740579961428490918315577684927167119139790978254749282067710090390386946093355842124544490948906413407643225496973958150325007497601259091600109833722982004370266601462027735190173140841229177754512820148151700280127960901289719324297180827770990739458723908743270236035940459409929137479813316397227826475462934583739668157489267842104130942579498263030266374697300590984012629299690927251065556853832098888967493624354443993341299898046209883009394861355656981871683732160448897090162046421214898897467073881173932323699329723288031587093757039935842166501132005230613026719665787055479959740932150261436029090784174918383079313135621978069426150669456308935678675041593981842263658025175146593573860987396126489935732801676856456711219976590706524734007752176994517521014073640430466656159770401014772537937531541228278156967657843742270181485718192528196910699426103030118389451028709675028087772816328863333870025210893215940978982956642393477018497912261514116363971367577365447295391171663084342051939113529481829138634051977209117331998512592670212544525982204632045281299889833663746371001493741044983186764604106740038517011632405122322060509945954905616220437104389721405915946155904953162117000257994974809516082747723891654178415270997800444074668249546747120564557281690990628131239955958867234945891985619148522718262588682680042954438888379030999554368234314682493852338118978265776433051783079098284453985734494657769823372369452109053658036333577265098576348127329443939567791321921736663375662077369297271424556474470749001626546216948449525013118528934233918048490292848311847254055798875929082713570776545142654937140321267685879457094522838488772650568032215712818577714965263379922671761029765422526569877062197530006957396694789812663646617095816768502005442004385038031039765971260408565181619683185298517221952249709585191364699541723748004647643746697787106143379354273246232180713303227481521307006058942999170938692259098869731123298543574714384144884458246208732886592742184568357343840898100256446699355558506037607562855002872202401325148068554202453326471179851381221297608804990223860578740939534659734581616586073031565836461150518345414286472525229146366550261422113505933281507474086491501855016905211222637578083573276833572633600756862749797541585636854565977612364833063024614789481244720971210185840850847103361058893956262504663917658378633666994562520890279027259701396804801963200677662062707390986558166203106041268536271786612659398003884916908556281439952836991118305274984577872102011121107135282316059101578208016939047922453446830545465714172871813062395315915806857287109870580055078035145123011632257550357462021710127303093539860452953393011883643825500809124534289786029884246614023942743313400745164116438941351859024610429520685710413071355439745919792642466666345907689303575804081285617163824365854328271534204962191675418132859964833306282584222652289583298160118285911495975101810954582619101128165467573198886778196805166576213871595140176090261188143842915465924702008591929388277441184428892022610175033962752522773643621694457738004545187531832820850515294503140642495391426959217482347362631437926250606163884618799605432213018878189145857730557605728106893087986173306306043260021367251685172798815185730467359569550691980130894512473858047453095567420912503492176369910282928683161480529477694515314104958065128659514024032780897685150167286916330674933028242671164830442178390949804861028846011023733637867372118870480256908866599949342131363312174709778754362348837715905648381308093911277129146444377494722627535919340475712640838860550704599514199238865353540431023543307156092128918124727958832386406083825831019703894855038477049228725811904027209294889410793273202550626072438466648970971774420023441493841648508272638470781018345671336152820225002964224253540963454705618153676076912351933472133511752074156421551330132852979671409852288761842765599768840541007855459122120439680816462923547141704750799158683870807314133354555961777732167081697474445816428954646830582247587619786210478635736900541753192370752960439009601135507064113233655131270414715553335764329217531813409760588609164368278407042104017891381597822221996729413674261567469400829435327888316324611233077234818549077895784145625473565683681091684010934858796989182602642157829042623267960092808382386598131285788003711420281199442887494093585962021852013542017764590825246617000977413558314074112127836276411216624707031306029307583708764571047525533411210411888101807473327273420926491606836716009084911382232010249115948042208376845452088740121529962732168130083077196503532705252336323909250745377584254204953890069016230883067613700520188310742985443228303849504081689620362387207123746491612514724153005841538721455374696263192227529929013385186085578443008287391399535965331449779157886149826413767347882936003334216289030425293867095626507661765186895267907750355583904369507113432022041874171962611492700131457816410573066035602965063081455591083271868369399405799086501544903854332815736226818427502628852829920858242830823252072482342885930616403496825130749112857388948066086454500564070347514973929594825120313906843129517374580304877068299692430292791450358479698924640622980770403224338882858830198213820254253426704149663876567275231584317278409760042849301041595695377676524568667960773205455471962589262914764250015575412184466719886147134701806535874738964089473620688556770416112327107247957774189688391049636840749027268318375237649260589920792015825275019995352743962719412482472651138502314728125686015242132255002501663090485583393514341503268918824707186807722062979479731986353669138716049400732504167300454118937867395980556924936865781371291969398742598984477964208586879827374261527246645821137890950804982049418794002405134648559595979891198122857144547688037835541467665915347530991822596449361844327939310065191318891677817279697417004685047201133345508894695084093583529416696039950955606487538480025781078426104924928573369077445385032990895721623236400692547550358989793269873616546078541056610580675700782217353902958921197642073843281579645381931584808155202873641101254681185971751420423164806931105439800628821544917560978177274329791918729532064385317249172856702307862401490114711879952756648584224669641982979342408237389210763973350202155901604430986581014685707393695074160387578402946065146067025255285029457761258390968194759137941372371647228319721158900251335030133752618039821454196672504565480445658187444178493898085361453382609248525004120952413921722306156028070035524583922777728250192256640567155385834257982841168284125174894209874954346869262256308874068496154457928192084100013887487904051977683180949933119943015211444418337337739440291078988017170044608884061221108557795772348572024155127386623570265602341362425605310365489216466218973628051327103283674086629882776403779468910944292103843307202559786535520706583383305572384035472141755722606791057724834452374437955670943357724264272249660086348074093227035567163415671813415415061755308253800354800642691375591655064704121442657729985522018769595811913360559957487786653926626448229302733738536641075853109492593924195686505761365643385930347442952741492706112243712178803362368288093313647827760584854579501398347955527447224144150533656366838775619828893161978069089458247619459272648195307906563049205065641463023819683082961271923876920430279090174448202187566013612541958635892984226134483060251867482258396800281631522442613346096960431059303280615327440715657630024805708650912442978209250656159789969985377116839985752471407504280397112453294002991742307848701752228616039843272949634572947815835155311642213955925184446459047518949043283311113723189732321382859439766897165115278411674869176023662567616799247006121957458355192123827287905809893555602904117207421700977763917122939109090045411056309025143245248157979889687483531578061387365385297690232648172052852939953539447805163629773627693821538602628275008798636891337470636576751930891655311697153793894094434096458211149275522988744485148969705293766799316303983606968275556790356223466359578703243903093493881557234342399341406469193187141372615948624980799551504967855550697323770137935040157564943452527556049093999157663095014005612464549632805554164315774007980438274664025201841755951089526131527491090843478702906572515223594535883263671238102271824933790724165310871916321824640365076414434321512729447646216215299264197273200904154281632593623669601456757007998100026032965394259626661152129117273520925404790246993435442147703014491233703418762694999837017541407220674969226117507246076047611145386274611574668115156893052011119286455830120677126430313151013915951095985957852426077527632749341190112891790251285416102712855249781401291719920811504900900202263865522350913048302427386633639158253232212363600323569201143737106646545230619047865214352867537155551747854635668010443078234955110246227930517061711434168321842055771435445343564645020728128999158246119610558210155106880838894716563790809348355185730074731629063374387343897313560228087342691261203045149291350052484087661689817956374472981814195363103909758013973205662562017544962926720235516379447126382130293612285572403895994940341160366364196170180535742033537467327276164619152324397972834263847891677050552002723499321293999146942536697217878447592980170101531226450751953330539763613811286369687218666313655285051162890601869156841639990321238513006565232857216251497313285241022269379428463272914940773696341786320875946888924564407813803496206917543837450330909807866788845363199906424703835182426393687644873671842313134362140520441796472933668203801274978655391471320181964270949875392973669763868173596322166414449312815185984061456015138246810189079371725461673621094921359534700062746053020653326407246849490449651196490016054567944565854490325183062391471478799553844184520570691707226577441012193193135682959828445810844581796380141649265034281572747586733047344888612538443213924177414302576591238463545036375428947676473346152379816658232278651128738942164897508948342237184770650807264011381673540958532386777155324023464461016349665364292427728989769238416354758264348702485645420392334462585967545421656646857840377186631704554394276740452282801903487930150600413269506182739794393077043897809001727131525785703343614310847210817926078838253560471656935140983546233510844827992701548118963995826691120448192059983216381929486154537616863250189688503613548407099673668972946397857369723748129905587762870979354633512292055738773565283595542675030571033911757141324743150429276749527690200454419253630011709091742490689217297503940390944058824198189000458302075333995530660590680174594510859395217886492892296893732809373349719421992914330495437301531058540818963046623844121556468865502787153961408019753207973656275451222594580449825885425061525615070560526387557736212592549462377519083640840177048953535057657378152429216623813192439983905596388298997016471140331602802998796803431048340569960258269282720199571713916414139223515515229356537694914424174182857182766187648199067944761044150449056845519827872771169729822640750923355833992191389019909278060375171855440395263014344222517154197331562960737773401710703761389519083889897352445980880946770696056746895059956223209234128051422679893978362148943769562236194321210776610668169342566772735047626508912347396814310866699060895866437248244104224285463660227366525948453179287888936685252047133227977398933508485401928916617624110884323859096585389383581427491443497869123789653134437108937939440493978103372032665915724024022797384751122864404687108984375843508813328178675121194350300293050337554931526705918774002129647383531093991660195486054315506284946731807759465416907329109195970390388865420236872517688874065554054936569034198473038183452052362274610329583292695600704892796877416881145556031485720878587705352541786683858064861883076618780126305082728038440991029252715023107703917647884556026947001537360445708174028925589413255955035460407896576263198181480516909104596482589825545519013660092665847177441763937808192623700356708477814857451756065015814723471283231432974282248839856642600075837839926163635014002975487400792232548437164678067335102754140795441191361861370819653819598283620997306416253768404004827325807506669026206740836579350161594600741447943685114639346726910230737739231270647384893090224654677536870096991955743576601536537624291289799104764737256485002526201404985878793537787390999742420446712989003051094510879507244510365794697033785641481689570222718860482242761229965117704519549882577463343245448893486712688513966019907356615601823791169839288369232862235058804184613528119750073648324825887071768823476399575930020756523655683987971183679550545222080996725653181290300940655016468969412533676435530524448118407528793757879763980302377905143087658343443399232986373608497372694272043055782391703821636285576459999236168588192560027834601505864447346801362332346790853164415098678334035458908259148966911485087426459918814757430186298318814236007192747407402790491782100833794884606588171487146196670834146486277380582287300317152472958463529018072229978571397301548537831054227819374339826223488578908833203652426556971212395591318836733279322877413970968685528425199153753601117490550810615443971922026609816802770399592875513516964382967245921893492257895887893095431636766582150141083533132239743133242896586621934831299661101399689016826996649439637414685030652967196363245193896150965539597866976315202792243593991145930536044885600225214568557906873452269971858996243555890650238970807493812780947044563643977889067482613377095119093605109868228758884097620974905048638140020869298431124102682770773368819931115460472999360776668890233505866254540207873699150077425085946902497728669121061933150520378386920394560326225081969277241847630240121022855236750391413683214778707837962713829563882894421472628586769442924293719753975439011916853532561921114575662986332479346819708287621444409938365898324274818858779734374339962582695266968180692176381880388007183288389154193097684170031844784546698832815103482816563069245022756997074280572531817477365853320558576555517105877830205065996118448303561861135392352243714679141530882205673762736657754690005434684084408548775044793213097971492132852624871390222191319630658069207145415963761331401189808284988545581733405640442592185602299937682854149121600889811651977521901917548916741540470907302921525344418632081614380333150112162628964516119949496827732314106867265367239345094090176388522911813279341679593847812464036126257201230878030162511146435519610255870718407949037073689663687004508370451559289012251144883520632078051102036650179394012463155733018330567088271388972955924846898833571333658993439639542193989806455086161312917162953496747794831754496196284787080250673193703475147233008180674403137867169144815459362840775906716873771553370342600600973218523822841365303378179772311018808789898162322343313256607676559290791153564050072338270141686067656261983517663046913881290127599196299395738577585902878412487883316561630472335790678570432963375227806246722399183881300703799634057044008137189338671492406450164710325851700223899408164258433612257747640741540842061649319596911394080747938346108905461273912081260891812987108745452270353541171625647601206984953000900089364876236781608974341165088329616476857193495613206823202143012586586925600452618444653784940669237192403685036747537697254647026860498052082889369247095251790354735984781937560865494812179583827248146055886578476432519999743985885110081525608481985605399382692296432595510219913523105213989634751228163515372020787616723233515644830668639683085327423961506383064770928658080473043134673000522892549366026757798388008325601521291057565247200149579275350536932362399585773170055877607642700394618036803746587122903250813223942065133710586010085463328671133779027584904184354714162831624995711729349041020236644701663011035935721145362281500871017408430528161441482338805510147860375148634298423934331979505258739459557307012577979441046698997067836992726415200922853115117924443833223640088507007976354718026277730837927204664354772258558007480903323288239109189778242665214475738259490063118590943654926743983152227707323934261656034614249588457466355363867615119970577101177186939957951270773269674880713924918844643131303422792579516408792862473356916789802898760908960323320247165425617147087443779800038299079798230749074353031295870228446480380175337874519301477865774121656836897713673226547710584243284956624714008925100980799846514715818340920932690169278502697263833237207912847064230309268233795119629755981462151764250871573164052191446653313830733324662286985305594325784779508491683611100607239466806517084324419185060284971143209782155723928883235170742428004811825187014532346208269130209862945099110726646669510268925638219913845009110368165890164040510012876645093604337782538199675624681930218219803689024172758904597906281589332072135020164449061633143157561618409040214323606639843296273130875647765614506125642386732662347222962290676676268526436760764734230421485877084324732964664603606740212402228571591862676865041626113399496253678005024226650517965090763841154357524306357111311396640708575232815443003231213303729747563646826957663472163109418192156979374856690702163839839806410100523120191942033125415617751115281178016056735373879362400767913979829885011633522336770431021525567383668875131546469668741898171632609661700180036661488765399312308873798400130740307407200033588022380478632195598291184224320944279537820659059438436929745578789034479844457706612340223742940861881220899390653014075511518144210238479505488176180816901530072295450797127448499807906309691638031500215730384060119976151849490852988287114970988282360036639799999990961043988809603533258904644538649126890264234554949120751760287149853169260054747257366321668264909390898932230458497981775936096828586893511627619014504382472969847099697626784500610504021628361734921555793549082116275220453535552583757807150007447125383156130296253590083532891431344177828948020873619980650383524556106013693425581171995652195998044938604669606321289633602018681866476851349282841636827636816285450272970520634077650384896982034781002569951379215375282193015972539701619937859691486654963764128149613327400788850818633740677937356831160093329558394914218298301562395324632984270506572066808474899126351858762385048278807927832322844705175342883456861312078805611936737048724153234290942338324309085595985764730016333478578645556506058796442100056579883196144109839990287007804342123375808898940765183703567169774721343061715223048357521158597228399793894877150997666487830323284909481608831784756599639237727569458326679240367205806769828665796844965979923500683404314428711000644410472800373468315702048824305741862824914073848423291837666149024866387059677509942324851665904930216791053654002103492766178975992391968990968108576100752393395697780856171309078082199001650481073762931158708400418722250176048319921028715889930126076119960088995720289413014883407617996955787123339425504887478594262481596402295670531942420909830382047634778763100744930717776607770294063818666731539979874361172317625684137023512293709231727224478919531114963316331726499686319500862529999442460846732430767341294733662728273592173508006095187876553899244018820220897440619227889429229105216426729779603968890788565926813212734691604875725597041766534818430736086669405118080387751719135225085468987429978480558483929551411143337679879449941307112783213678878451073729326046976816549735490306052518687155828105143952169941862363031011601880893116469800873492907141774927180223937698635409996989734107823535776317651808131900974244839404738766955770400841978323665060672241902255302116742906600142473191098147446392831203378559139999847208927012484990473615670950344512208849623823894579827126007975107894424691586940357211739229218119224582198809577743541830373624290000777634334087804479285305547480548230932434125555182233198448322257058783724001951177718050832100121076171682580927112950704287141096317063760987013674607517782334260373004917017391995120161818493029963412189759992545312314248769709118491647069477012089880186670376357766873778697436988899940810011312683587723641823246656540579150781229911909459778550319657907759509222563246185791050386654342424188850465246882226065392716914107496706974210789499904501541154759877505553937778882120168855146529708140666121622789073017760176720864868558526887405742276574406839260323741230919272112806541148221941892229410572131749039830934642162774876694200301832998942583583869908112843390465195346262106734921876893674541045580445714422919076827650361828187293562837231511456189081307714216204546894371786299873162554634631728893116268609216564559239577737649018065766631839787353708815506523732257208675344795139163374727735853454035614257941536137821263615397610193385203731668207158221347573019652504573013686645355912585022202681280140879103623540276233350849382783730119958694240155435700345580890188884353382718498247129690986112196351944830261999459700057610483358276906712828272292220778970505944444181564055429248136445916661436195756531372175549502953728501654927243403695179950513328922203190608127673678072179608136889352171893847055351157615387335995487612668442368306256672427191381186532111597731221497391709258263203587605498875178141668378875849387952982328945901701428529528816624862320253798644257433673569561695188734244547814040038488875683516591305265665797372378007846022919679607713477194499567339706744352551534767475806366445673741988670129630414342104799010532079899708229755151293901706740856114432357801098933202056299544905514250356608336085554966047467202941040560676826656546606481212778728569399010791177986404113341218742296723978324118308306108185314714691145450521631093438875623274222439666802008879672595382497698211679613119515342868409321553033943924105428367727751190540049455770431198245515888749438921800375547881870889746767153005758985164524369694277262085663293524429154339162232524076022981040004981897770607517832771498504371923487236072981650802626432505241883879602550553914456343594904876349169056315676441191322975176901247161992979795901729281143042951236347934281699042089810744115181766969878726986762282525503507957146220668793613153056688657646236755937191208216980399420500796901482678487403719549822233372290870440022120742340095246562219818660254113161273532904551796417589365928396806045345853371116183959119967696262946979373497582840455178532288932293695769178631835915999112445581197030247766124938349225984601003236574053405167993118208901918263386713685074152628596481894181294877211893304330128311544579876156308793081429061394050462710469925456686661951857572520976900000116140158374669678861082144055558936364100930724852593555898175068412434274308285329225500491233236537058700259809821760613943420901517707156851479233213156447622414498531925160305182919950061670106165540197021284553370061422204386178651814245026674960175957162897608402049215930686553470154710294648130151822033199552809447088382215674417252408366437437712254028290355659383415542882069925262155797584358814159283072628399308507858153692029827420223211749625570558535526659968253877582169315093588905040254138831524727439790633802130492273339289843205334783750589366705104496447296176360899412509109996265371505817363556926082765380124146413268167199955121558238043076179639086691318554767007125582785571505815960857350402428336362126705923153051908901543419875662041022820082037769989463539634787526845984969986326314933186872817824083900015570836860569051578270000217943764595527814942332956491511373255217685334446652925659400913095846920663912494338279492548682462171148214770461352786903263943896617711697582808904126288647245973428935043171970078835265923678726937597834909723441770679455490026008173835056631494465163729188752648273274507348283907957281941167424528911859153032997646586579785267319811802644269827145652731562820377288215272691537249543230844968312385398781614224842474692531932788907981062972036918961726133253158781093451137793937382853143475775515259461153957258163798449691845807645683131229393643471148965391430351275014636196872966830717064696430351355591272819948662483987398586862661693758633907014756986765272628634308621909788263145496733246729431590075818815213502698257773796634389335615454433523347122186685179236923525993479542000369493784196575039415791547575108640118463919230045179921378369770423528296998946041816589774318212861234640161362988844284765280225747917932920596976877763491378511157663454514558023097481283499941077019731273248079685760422275560971848085209117550020082171158649410210771444107838759118300166787897132513081390202997300493832997729337786401979089717882121804869840171326374846335084575520552877477512832365219557067349661325342851281720869199702332220075174032589270196813423793085521943460583902507637703512555050262471231777108932295657232476857897791818890857028227712257187628486268044148167394355366568191452289908822673193808341081819605068786332992000024126130063682593610712804216006415536191162404554928771543580639582408650204984499107501484192983581565142617748287704926273860994316959518249769312239527850024400162234803174208516777851245913991883278871042972082515692421450290233257422119832266609545318355198810009881468359697711918239058865716047076990829355248613797540087021293701799788517048383044413660155398219843188721863879778933774736675195932511678779769108479058770947119963828546007095025277096674087100397913394536767507744361716480740322479365798767118143335739986511578746793762257946592630574036217770827026486100629951012997781870417538785378092387176394988612119561430396497802159059821598306878525621376364559704053484590727639349968083143863416903322050067012081469761643728982706404240375769505156409688915653713554019953929793691486100278713697744109030672563259775590515733390153555707694320270076155370757261669188092141320989914951955556349991633883872134082889175553089504428627203419534021477753989355555062122461499687679183782674680118250657190163944149386311694474623864140780445524984577208073614055782436374732854041649654870876477398944596158299275734198571361189097664824631642186576658647065692979734676574089874719468090281547264148209225342853434432900885479853433665372573387415026412783307971593839142415074876540065338604279066166945078947845307154941442406374655514637296198877818621090206301118270549925877107275502118178353464473313616260180452542544904330317039403112083870489764537223902677990038663616863764395929895238746273960072930297340076433270978541289793876132160282665150756773541334281427268474110635519213436686481526988381356982504650130922297392887664739400673631229289290802402837818937781497805395958089166480486836214628381452177153513902492517278630267951530620800582524765594491440177708750693616672435486676682335253079963149819406483521724089930794696905079341579961653569842370984685530186636213567617178865172982216865928488576563236132238217195836463953152204525884059009643313713761640251271109478902930011041954748027054240996214849437516234877466192264705249270546391258967427714810380384242213937316604083970019045255163832607527705393007014255527927456297236835771612339611576793332160289261373624075715231719732607098394502684700717759644799488156789432780144125522940237936620567841704018272197593612175567853615623874857514847687735242212068600183412083278645408616479575161547353217694626107830203810511454396562860379963270340327925815177670553087455106540338185332449194101204283266519472369975940925471824692053069389340934694782181905384245585207900762582971633536389290764969526343963926914151422784467444540304367820923251450100513120693251646532677081517449288498833743327440774906582762621930084738505768401404534273206939604058492946350777154296948889575813778791140604495999806725817504387633456351663728313409879373821212571222542458508024407806737602436217116954575236713774344251055917031433003128234598920318487717246604080300170941891311472161761439731382755397781658805752716461052436397426928182865488026362619064949067530166854293510768983156850666345516454564699704659120138675739316649938403999272269758033521234833216417048025165888364370372016154396452448871007210386622626342237800786613865721995618594725302510902512560189020092904652555413662536536636684803467917527494361178649303247565366537789521168819678126012211008426381140409242836789062966011068547561287105816567479043912500403418268977614927693880492589247956994569861243608542181603878754401680460141830173022936604716217640970331894153035700673056282884181776905922360303127910581947054801033829520592956803426903367606490626346658624409996792354527571042136904021308630559317203402489385635659527062466152883481723711491140794667191149017950273221718479172631279766852563730254026552275225203328669515435345421647935155256203858455212200567454688585218281630866446628357064016753656868108666186222966309596238039315237497843112285679185257439675290345605025998594014788646054838384188220565362168794356928577155746862825249860607350632291351149637484973575425266011378203136160355483926088252178773356381863564973395843206548710095640484230868111660786886984445588357492847672664254995430725090110157517566897486621453728011936268335721234543420166061232966687127139132124384335078046107977796284684647121767594359901746170328136021168669922112285036431897204425356910398210351767483101864765150198486470072380023048035515154803609071234808005703306070001323332849257039327015848478571686152059830202256286226449987212313300394768643983874913599750901699280108119951980360636135769828146791705019498474475488552028509109685652833016902046507733462384579190795449803894048145352302545155824738068593707707576882605611878612832769763368578722379319192041933796821279136990955722907239773571251418953303824401593873856612975382027430127762498287961470610294120325069134676596216905505823516658271241243751788381033033966806795101622696944573328446187253142862446314951548802114250324692278120625127853949038558085273085768851983069065039693956543298919039249493308906453522025719499178021808155859931013234552790128384939244494945126575265071003343057112136328931946201352039103766650966930256166993948778508536423880700764954305018923097452488705963715394795646743128395961989504565580066243952405805345950528590015063390219086788934741891268923854654602731315524309085652474985960711032335865512215189594309671229818321436635268903420181104440353096983384966305567567903503063565344849769104056025232785563669428009220290846440642071857636143368690910868118499482370387793983792683002495452339614937767442440385172281133410073216330461842867056706854779785346167436246128722354474937647820436531452240985305184726312833080535265463565085465599185171402527294333641683560595484988990059781326995566348440444071580405071724912200895195956744533878682799758831795623563917137367300644303577410224229288049362592766352653225234712746058909844075967199364657886624263012255537822051855549250929769644115166261163513005248300724361234874924019139460601375359949390332988925308544918297820228351810435001580231683985591309054976205825200162410043467744773643180255119821079991554725172308881690665798223539296656441337371413989748131511819183519495561722326453858109761055751944330720771021495081058823567031048353390318164730386311125017963018933317181730328280035787116002437071983547372624991754071894048163786429849167888686225637367715672455492448881350090308464887434814725077663664787245365976798298655571410557055025063149374334162747826694069970270898674918085698299884083238740538139375837028442363642780865210577704639610743332105890418151999840213750060579016237505851962972728177633911312593394853908922459102139835064193445572483405862169519321000413660071386103981296572729829321850981020608850372199971366221850593587427248148068846090395853263517677700734246305098264133288084761716907875415670753802162958835417471677222917356801938703202524746908439563030491371826176692386022796692135392690307157968394810774285054172749517506701005457809965734254428231249965578720679864318223759707760456699184812931666863651594483347896822651333998723700180176376941241675985638384310112756524419458352854655887939350231989467868879521135892511193697514552989849229750629743363379889841094525406123275762158712299194432312932414310453387228848697562922265223239311429002856638226226428508757119840730607054672313706926656360017711346652824956572486041907141490370013602697765894104986383150530740124928437978884022147361172713676473324234058586016169014913612229302941905055018443383092031062716702772446996467928727442231841256550191437171159665314207941947073449981447546473897536902399485185151874053619365180303811642868530346701649560759178765342010660933123499815143215920800997743842064094891271740855224443037453784666260413940105601232496468945045980854725067288703936746590075829877830209457067465094839968275506299235912827151657599021808557537792959612693279763410592159011651483776396054468509286630352509700166538255644260046433210478228898887290344615855101054662729830003639981794462740671782521229973078941672398296140493205668502938645774272531216586526634990918501196722117041594842522237541027138569426433915196433129211714765496800593853994817322245184609872892417940088394402047752092015947610250055888065487340457937820795314032746395210878634682271259412926876082666808148336109612391716177835918603957907642786339736245714503175061141810296350388414312606328000580455408332888597157646465658140305205322826344243789305344039540880676982801979297897314580595160762780582270647378174220750828526531604467349958400709518210093006300739973710845894724565509909727602217584357534259063040793826795433572531067846529177052807333849330416060174976324393129166822694669053675430268029840125939603584222117513502222410277680869453407329168612005795913153167208785424927106316270627936609512166636366699768464087373887248046611042241204467338164842110801747892424900435667576016371830887928224296461205886161642597046225289610397630858065053537710195705160401705590277604616950417961497537580372239545647321474501605088749121519954559450374758322784471008447055618708276967373408473969546915414764864807508197803182086687233129795891079615139947473860030664711934965214302801562986537482025756205113340162192123317535063796587729428007460124483070896336815038148615192355888569301728740206049256692410624002313629611704297506963516445326542984058480966411589323743542219180786574629797177011394778178839412066869924473758345714604248129437264054143438506680313121953904553723070397352086546774887756870196287513895635135785387802365724642652920784497974372504824320871789122600239027508408437798498772451709306876426766676468568011677195712412479867736877877499502991823075913011647100636188732008154828992425267225347173274632204324184422545567742591657960722846601148937911058124489801022886956696136293751671059763812543957334146707720981559292544729784135288021888253011169167446310214586894087518961144412712194899256926239960423853346626066897717766870592741484690396765393562107028640095049795003051437683265618868189867079367675754565607464874712194233719101249693189050620247706937703789509572572950355083842354872328564614290907540388725496037862630327231442085859917978857931821564937975611544268112469824586173897691957688684992208258741946922790127619213855878525305307006216565816953812613189442299960558786123271271507983290019530841013598549638614207034270575880986006099750341694681750696663905334410780941915831052867337183993103194284714626532014322085056064432316922285050473531129923495207087618624205642311740291059009743227807060811109930957121882075587419118605191956047793683937814389946278120866794993977926284126756059597006760117762759816389009822016854601383163691293830495332570301744946396258556975017269853767846210121420542860189508248230882629921480362857902566414115106849353985793684013335000683292109772520171625336986158135047355305265600157085825458615561027506163066782787767594042093533691128251038193745747813269263847658791766648293066065098327737074939525436485661633396297494140560181450448781364764406549457023021188338002960735005274739535779321142358249226266013943694460014399082243361582053372926431857596544013341517027850115568628659467142976066072468029904850547197024380065283352353255559301605491254932712814457809639238534115759216131486568352119070615500148065799704904523919823157660668522567247363130929605980051677532274604662676852607297791859023244979820159954104678102169544336437635963018167660606472943471585367139295743346394223880614116910485509600302937608862677584827119564199470961353830310394535581580834238176828508062316020091673100727237733648812158122961752991379649257782594530899299061858854289408245795022325416033673792416430032519400366789218011439327343271942889910160385654094231524482856985077124619481641255808672328488605937488155486656623948202613344401700116927548053835545896592619667125472433018226038545553939049893263104117634224636328081861516284288842495917045883443922896263040386478475016830856696955968763517956568111791205231156299539945985384096548655445338907275643003064764890840785409904042533671520690670627819638281892988301173608976678769970096347582090749946118607366081646500472570338321993407553539516126041799967954946953336216567345989639071591458478278032791104176743911134594798109957269360236107027053201597669323491722194957470295479581512699865312704991821167379245012202970636117650182046935530046461183596253964969591959331653062096927633447499892382714410272713716260940775653683057142398970942465549598280900987360479480024058762958605345637746725891762897863981725327514268855483618540050315653214445495749277986217870303680978861927845036919516329007779795207495088198004640369296052743140329408009212732883285996469469249364297522538826882796258155518095488699213637820813938001530449881859591612351851092566539600206783600383485972608018633595107187245909758002281381202409746846174879805185403893742571539492742340066584553742507315359006808533165490972141614582629494487688102309002938998862395560297094324916270243277449833389932325850130384971026552061262576720094098668517475739631983046382727747814505948260348035771363930069486270883088062684286807646849181259021976351849515664602167419489437024684494311844729450711176298402773030497615667281155343444103468763936289248111008062479263385742454317191537185949442681500074425729249030177243484689953565761576547834036722695891494518525351147995787118691367975264167233024120028841814345532227490531956114179126675327245167585756672282544779548344966242757574464540257217565446330888575388155070530805853246909399176346632660832585984127514471042657311724278531054041798270682938262504157191137888524898168230597382118930854364569471479407841554144692548777798080868259574738501826169207142174319422335705166578838445579560512760309515395439369667778165066782569147602618053272170006423230876824955078999100474300307788195717141265034133151413627237032318199371498294665050769761277067541321530210519456384682464149869612779483278570262620546249067518061215991991501172070581941607358013811072261051324187155540222583182999176043151448007530077389944030014060121130428348199841321247055049859707030692855703304313689105278275297202188164385027426645603520640640238273388844702061683954378896307030706950341216879489786913303938340872362624320678907261401533084531151723454923237898015022588641959504763972957643766096645987015066105226540278902005572612675959755993376113684734951472196249863941561321606714557504730024358415237859402632308169456709605452901422255643973657702881962809868982251088434021961721699713961389617324148446383139185785609447228592892374891556459744227096657027618817050354208955874646005475562934012195060538735730883681473830516659657227297660075188668058410559292736397557024276886593517858993737739194274593002125527881028349473229552097513443164721351004039758460564407620035606863518722492628308614751682056711893494949999362965723533303970674632100944092846018470017202126234458835247517260922273011975440930887560368270439791774977640541494656554968762040252593949521297027530484642188912108551212256754444145778243083944118594791878100467372979304970555431638020554417972621549962674416999224915611375624242082068201817058243457411336642188947305806522213111711552590721857885993317074548101227761860306416822432302756643947399195861071700956029129938124230876005799158015312448228897957952375448068100292454632964328962282958434333340206807127162198731325301719211279787129891691160259249803070974797336801441297566350770117798210054376733504205478218680134352566911048161328703384934837358875075761858243350478884727409335689096471325185791271108708508076317491531936297274810406905938988696911908775126758286408462247872965235787840564721773006640543377095306466220906379166133627624997292113218399604626837960953238921958173593233344320093643090022770315516342311894848256521333742267490626943118559777337713399097166880689253194276844195608551618878629833974581493707713022875927174611267107498555462997109244622425355271649714991530971785285475135843247674892742806811103666057532193167900427854574934193743201899888224536529959872043870587449494978649789670786869711948388630049322604214001391204345502084715923574886484941863810899051128405275436684382363807191023532860051257401821966791400313258843097578338343980340519940112359209993645664539262008307570177418722131466970835344757830395710601378846474881371201566311582097175720542381074603997246576590106963285107724543609753863513883917421488149768469537936350757775859061528024154309922268990424106944740379076851937048238441075415314812291117502036108186178927827707444300329417795718204725347990212500693443686288752300833612664729802100386165633799548215191148372744326306087227498856647208898551654996961710175925087646640684868679991306627470981051216049644975859961642187630127627143677624400985210645635784897540795300784196848625676947138643553038022397633734487524310296101875477405199533777024214116836938242015296465382000702879700210434777019831622759005798963123433680667839000269588237198017644073571301500253587127664061494832816782999729584783024170143534248455789578026187571557317741229588809654768262429002954419359746006473429983164406571955529700552217784653444370739121327137170442094891941003599976619177901817351704718041298344310091330304765926543215626259830409610624869564360073075378590019256133269550661009496784473740298951675046528495400999931850630361547522115442953877128115519743851870881981751978029882327437692316177930406952446260578305668728179681715425338221318693539199580039635280313221651228386394828793959285233887549517004447042360525078660868941744643811324577426872822749624042820791275159344382170238780989360343950019321023213568914722162028760777458252843757092442600744684939763165631051914484940681653027496015632915892754162390240835141538763790261459654057348070954535005274816713714525054852922611101597405760646866983906375437514760553209944421809829146511363800374272090687435355876229750883493077873261643909068723539486662599848149913913131697311543246312438681254953219067261125726153934271932028599910616779198952470026761916421338124194738268852195317910498387601946886388537225335493502391469690424942998725919298865445955254867833557311926918426068197911241184622018399358556293023269022000318355824290741239587899305874644213858147869401350138998152737044230472073969194764384271260815932685741073189469698060434086617577620765448885609148771943712060964845682753261324624705285719132481288199159588747807378729258589839124948934412121913123750902112934157771911766415360919246774217733192771832498199100193045810681948115542482111568592308576417150130599431013361457752800999778215127571404534311593866141856586983015939183151539270646779612647164540895249585892127899316129144937073010639765398384076232051301802259863330760465265623306454567743411269918496106598014293029354094526780808895547907772094649298455069436049828135684079507939383837500089399160352027053644463974970525999052776246552162861759676606400250480625559612506001364904275243651475969483530014904660292660531966577120301503861623387195196134255165284250678710277904324425483984931327906917670380360746957735477469452590218607141512525499762560569456663241648300559425159719977508003357333627840730259407491579446419296487375460715623014968883002141959870925420116517757258309895404622020402498918717244812218713745918003680492742484587713533064895903538568749223918445863336001968963830941537041175713616517576544511465561448177780415314341873627422268785079167674287169611761246489671292591331307903373108888758055945764698870986791183794983867717180749635966539428529236344549545709733382562757798345593478842362355369573029970229728047364588306599399538121278990416192231442735027383839510469723493804063927848085116238011253288888299374905312734356754370405001925390763779544344298111488408731997360862051141615890655828099939147072720428927813779684263288465147539557148113324494603042049166326341948688649109680332009074035801890236845959901281619299093838527537672696865415015538202085699208394238313155327337920597005928510644846291122048882062356483368702011986716014958678746153134771734517209533094491072994583491350879274702199970810764479382368071627851753478071709483127069472311519276525606753694926634788779918862835812411953383469135670754550961596684303400773355848870893864709093066172238600457362014843758192208572048472384455805902288864201792631467473830951378411047158289246764745126367585391978369379440201836184320870087360191018567482109974375977546124048429025073460168682934216294833192288428001216497024901377959393884157582721588342182869429642925831479705239709265417476251397490977355679760745607130556083669877546632118376884274556550714761116233788774140882619569467352151462684275775185499485996598163496654446313065631652847953298346612859383546439836313864214699177906054633815599037567414391719089533218475890653663883322255336004058492523276096888201006119410099416680367686708801724835760883852935727678455582364475006228488679889911975817474854812769466887489767089492877637491116778404373618368574136615354410330244170092384425443507044049167069759973020930027541351953479534063201608391710296067553765508610758509423900138614641633795331817822501773764206743417109512042833489459642699535199990690744320478183406236781517193308604066371312233231490111951995626784512219513342669862662167958995796128437885228967375994769368618164175137632030265677741554977123095546320742337126969505442086546852440331817844786512973254391840109515044396581606494101156108218844823906581435622424108583907258069656063727499138703627455602843250527491208163074986789344261633327761281776961439138708158286529094518169946022243685795525598188237044350534039060855238750709393485074862657759752382856887419370331833460718060857640341484631595010314116943382117695680350225480270274042395299455578878611777409820642849857716984252815436074377208282713075636981008964764747552458261809212401273039312574594210047484008854765415711445352174328494798724041480039048205409027489555685839955492796869126229939051199036128219603539849795353744368356573814493706166673917084559478332012362576901130962002502176739229869945920689338885874645924685729513114771970967815657183549317706226897028392024198163884316102393624683419608081150044535734442316366337340349306246372837283977216013553809959272731532149727649951373944495265495670196090361395449448494479335136929621744820126812886014958972727461518338918202279937668925717487685698379049905886707368307833521712126009816459354527076781700532435942017890737932071797773495522044156947416112737112952022830730879238588302361779668581109508991757413737236600577886396505456546265805268812968889887701032901405162018678811097553688620231109194103465676070377879194710515461061197959405656234681524271234732968140218959658047747708474038891170392773597354578583221452318556147276411482415583288120359739233445627032704248107442005426469994895164350791099157046904524266450502908679593057221405389696158370543861633883349402929344961842928181804331133651202934787947478087268500533800447230374002888551244883425591860376030459624105046534212557305862179326486044538471911238276731862173693292019483817680556487153285203089146597072762251007754114393669802076877162150968693209888333075686751986344906102798309748053709509126749571181503730341210463621412352775512844130062458632712822819000629233920664275754637091437744420121716975906657956271305138410508992808130423350373136502889940315794344785761313158903410741774805242780087585997651250828828284896809976334770400148018159338656450647078451256400634260483902953713716800005623479370702013773585591335256372814570249510857108622571336396196128974845069534305548276154348581826526710621225722719147477531703597289342452629114540872531638071837025740861637700537639239623966959477981751918355830912382350477606398340201725030223997932166985970372591239344446954398137378062498891624699964623648653039519800590019139770360914391671644724061626859522505030786210991837782641149642924516074900473761970593950886864151061876477346771105207238262642948630992410221081447608363276348761723053932999283511477895331400131375520638776346605020368275691035556015627428024305621982797561662502957252944858127468500052697560721078097877484604171665344198835017409689146022663111087153437629185474439241551073525869796106589636356515688682283092122496682277055564848715559639089108691057882444170164057346728222397407234944262119919290226797871328468795538596234448400740039580701757546415986893041255605013573112943838006298796827161962117104567027026645885701892517050589701134970236811189671540778955782141332789896055793148088609898261501177271793320865638642673210524279533652851157233679878782269115068600169122762433355504538935051764548041509956828578082125304974688825566093218986473759340188708273894041361473516844894496450969449327599488589730145477627863156197926400236974885547396096366744148375907872883524219670935689857627178394027472622470703143121354366430293828037211550637934197374107386876123345300731682873427951693772781372839167929012084049914180291789173915208544455145437683586935985187200968795568943621251571213641760341533224914115788265713811121782487581652389094141079623054114883561457927576433303429813421011319361684509690057184974004731885684779963531686387367094999706620571716523843977964072864851738518142348569093838304454117893449466118310097970844241260012589817050286872987163529568971900774098744208796587738892666551007165644804066222475052559280171397138366990120592641461232917839772185322372629687283941028266043169960396772427474256815718969607923537334809731452649712579187421097460049402248797072201948814340865324105553324044307867980387786036651648920711905307588332557229272671167725264247414665004393655543589350881037297310480041274044724474228690737801066087605522631167067513310636521847150369620331173056161848905909649278307047784475851156562479394349190824548400820281336160676956166864745861867969191254938754855263417488382891123550315849416315092373610928248494422386353511235036620395502403714557636670440185175621420335646332103854340489616347266241330093086796337757060024596123552011853010251476601064424439322838485180036247137169893116358472698370908903664187030030102133034291358288863124764078471557727950451977721748225544448788260956041861242504382606043628483112386602388097475851169450865994592066898268567396276803071226079721142646634091926852465209056480995816731254293364004671149327982607284057035568397096438727980100658758762495925029785334284488659957895884786486605307950921724687178917451263285775720046930359839442947312119007082651528133657978807754814766613928500510578777571581193733167259396592240273112408733595940345811547936348980940559162483348536945427289082108583212168210086122687866197481048998335744446469614335518235309925065697097965990203393383253180392916843444180295686470965423501333332770134764370175685955266764887386378756189433991924715907385114706441137785601042217091918119894175137876525187132844615680497704724169339632192021604769184638248961866079622675493078397975886084805622537685112713860440006991265097382058575437418661982702592302720460014747391844414692545200280818703180130066331025898426065007049672009745006413499234280703796627995207357685936139539172015656280948505279396523841121812920101121551453268828346155126435822884809696424349241671160337845140349608554468358378225989391361048721426719056063649526297971325680773277113032200585684247965666883754586945529887663587865067585217937416894175362166085858721185629441392378544833820402117137227420373164724466259484602326804753724971953764929169504714445346817311721741061264783566150460504728256229709037258093498351179510525908485143143034814559602423112079400969005530876172127123640876882127374445392857749384853376283772065204047780137327498027217339577312447109694226294036297339040858948813153891218730193254551928040196631944657871089623993766220728322056585577572811660675086498509394521973088083542923970690091268780811287584560647466404778194334298714947102308446652876812046423739032504956792357330105440729326165112002121287814465669526796104027129822123446496554557906637380805251098378334959112254706499425409046423150434655343079368211304956487195213803377780940472278189108205132108898655652713484349201724777385957070861461162352907594479262286048564835502632658327439159822736104152502935187289103797313231439859976703790976599868065138305416965256423454550663135866737669750290520907555829250571257011824880230018686487579985600453160149419323405325653935409459218862828866126270735511454246133969792982698754965209219905356605037317549488773118055404690099790921065220097766270530044023590998882217865605722896289679193893752486570925048563299949390934902124016682188069221710093908030927654185093268537969508183381083929124175477595714323579586524598383482026518024954206824077776840890600419942715789271297277919946672949680938674941398922056971464716017105629735399699843515122895879562975818494690100582947042075156793342080498619011574568381021010159211886732874215764510870800760521527682228915071723996247963711085979961882876336068520143724823561182870121407729322009843562732843628029441936532845065315266959889094348835500630089611782382751106283497703505620666451562535928797836533983824653880971172444377932088513733599945210373685332007970054102066471372786269453785296464789594285578200735631415369185157304824383857582252625249115349912595789245538857548750505663041650632707148919930136705496101097556169753394718371340501146185677627390562021225774838362590349228673744468381905254809566909567142534215580496304572718694614934998907351877667538824388031000377492979498595391715725038441015478751075758834818629771406857355515442266609326240113270832164273475670842396009514103098004081878256392701247795309123181333769593314065488635943234785830584201306309731564150653680456303323014028587578890699025756230269318974560806195010576175281272754242006898696913361168486458455571807250594943480760446447672670663708095473959531995816919140532080448418643123675978025236722232588716883212839833470419235061940972384363584710630172651627601992935970629321849722576205802971182030682585753623468391453258083261224689345121327575082445480399898059844803532678637831895367274618461754666345381682752419732286752587466405894033935637350021604765782775060105143818850017506619398569016124108465061600354805556094300330703475643103158945861905049724128005361813884341921959520782988550908967149754248955047816506263040164790625048306332840599732772348770255808711514499190504322520807945919620413091113894570217015835688879102659692620779840024582305130684752274061640824772945754608735370608049360607586690969619656862908926540415677487426220978047254802427171241267981798755888430796970564963470897335455892466781084132100430836572953374206853754337477801731673797231979740503535229257827964378830126656887383466476679668853411220668564305110019219799013694411957447487341749836284071571733795019595554707050495747217555436017642004545003044679951082783044682853606310210504016036038737051554660762360704257982266987181254567872547365588584061165165488290328578197813359916292397942995705647482983516756207487064495765542922903217015716429292305544853139976376582530262722106556461373135296572211634463662953143608386914445786709443931936029155153779064609008354394933952504441986137719697661773769199646247670843937291965686844586460600603287180225795281809188604461704489904330071730966408488193180299530914718842091344960920825599003937809753940093059995015318321393103974542923197670981502256460989239921441693550911998451432996192567431837852581852654071776960860265708697566829643431028402613622647333602889099545101997567753250175379430700871226457224597410158306578747392649778010615792715820857681326551486580305427756327471001040106959576007676100833863183400843707513032939975243063775779418730010000841705718398677092833189348973421268479744664632485533223995755777413924538769713532529208427167457515477667714056032726569588373867915825690876039794773647137787158653606235866790173588681835706679020828662824910899512911945556646798939230278318071946412964416259711930859399196966629445556643121274732092074026467514627289098662689417462185478656993915795508266743798748604450784963800444038513914650843977635709753110942568357260639323808108683149092543761283320699359838962134559431102744510166100273944774061336766041582126675157540909785181903659018665975200162603531949030291517599645970576655094910440241421075101200303776429161344196801296307839921386007952244891652690155342697233244355769551512391170111127994418461102086602323850772919776830359622470414716675678310062907425258861392873524019622571228366787253517162518203726654570829511072346889722665516200363569127947022163956947430880002372231871607682488404885297617455565165319165489117218700348529001655847059435007261471613812747070616606600955040614167808361481698392207013591190254213147153899259144129074779896092234217074822409937443671129024178064039709234059416151387256901217962337731313471559920564591084702799633495240744777364757119814043133491836707405499604015152458927845842764070552223963417081953145768347748750146176018120305224413885327950970630836437266901044386517623211191292183313351800641690750680724968063636095220440194377220766453380744043307545022564728814098974746483028916766053960528810357122828106795449974356244788231884262165308919168814163776039253346825395289105405026276713574261559558795028250953790756524167568857161024100270724137997172518687222390037198029681752199136597140600942359050262354712134253933176381618823073264811087068182855124035263561018905092845259269058022789181858634522772928725298126644872237350062884526715649755921424050809996119209091292355222333649479546572828096736383799148618862337516918491176120307999745647734131539033486099792795276107668096690675418275136328085456608454312723024038420113494779648948145244306223395684148834539787101207730635383272684446564452206438470106932232765135773600073397633913105683118978787401624998202254739872545447272336113267124963449775395400756701552054862636974794078121612894193642436608831854525406857453936493774045534448852302750865839742604258907351193491770108155892740882351133196367385422444633472879356194192558164117593374039668625401210555131497383855589679747923438228889290883175638951088205101686479207319948506286649919326212840092714579261425867708188018821221060587191396330285237013624474330492121733821480060443275913544423821010544970591133381696607408359520398383786618135417900644275581244032103359591479433485691627663844768989683813722104955934182181387171375263277342373913281971688095064090424466415519878780516981330066232627844867038608843818612784253838223704579497793953791746173933082070645536377783934387190535212304884740931516241261037923512191700742934941623021757660009795385409973359100144178895529362268206252182538243053523647789307123564598695591363916212591829230817358974648310648684658473964320257686137430995304400840094939790091571807096520631160597435630092865567504320034207041409581197790957241422436621586243579260189936635522253173615229018243644832155167596293138666053164923591736319895667426159618456627152397638943618230174111114156095245472358245510026705742962666834085847249633198543798489551197516719799132757991858702662607223377597831293458939675052624556047210154617671076193687628145849938453790297804446088219780975049379023767515309436803982094215068843379204665247924438344271869189422244297255050801758264892487393808935288897554633522617037319084098192715380588849519672550113358929879999873272910541119661239443097509323405666631129729880744316260535771909517077474058368274893898447204644974118230279128126029164382090521003795826486093693662620802047935673909467872219065165291012354888676578064009594166775769510714759462696872295367811645954084477401404761729354234304914193044939733025750394954319898109438427690758265753585302928228093675198545191769269339400237777643926694504420270460314516514734355842202840207227372114817361374457068640329185242839652571922629302899471574568576041467079661446463229841412996819908849034742933559555850054743544974565730358181821780514672402644053360574335949289728483435638003294630178602364936582017931186463198131662481016632768609088818169394054874938441776142435719732101585700386406769807500715866753960561373191125985056666600879997581251670513044674836721071525523250974844313933320203786193112557521530999682039148018384515970385227274577800492406515407517763470533729598389755879914462995229656750416914669918041414494923744631970624407600829847640717260569639859842695046092089322504879126088851439981850091660601415749069024329771567844867519857133865296543692573936013633514913742037642979144119237244397800588393921163359434184658319972140096028324648255715826668436857281053750903683467713755532049668389810170907375457535368334643288659665340729898807357184313287755957113115129180150070106789643690873830164253667221551804983417403511073697125151508411283579999643882888279126958465701481181992082167397689033648829020253554536047683795217702020377646176729274072820005708617309878580789321204321080678644458221337562154565269903457424217328391035247025049013830544450780239909559008908359664176874070489442329576494475111495363079780994758723773508480561545760141724923413023277776829292282782502233682140756122047771059115265023745905855485535457094026779810461315785446203348800078753961183926847458659295340802877407793688022697882957045370638074400795182905965252257669493610727356809137221056465454036588495958042886939091804530172889198502202243702831018413105962254947728364966700709492981846749461698518875770622260578076423841759641369328531444425804022396929711381316607686103125874346215735251823206851533869007362002810536975623605869255145983545113358638210410852120514316801066695777814355019470776263136844296561254871546968285787552155895740366086352488013621459232557312722207764381861184105807228059295337726302553647791424341859357137842267229548960049610519436513081606419895033981808804635918701794239170887918727724870049885762760383115349057951619971454789935781384624669033701618373427516416945520184211112905989992169412477949477914204422738912075803755461001312829431220095574720988371145574202348430872309405785891304385886432595112117756666438946867268542730889015096696569685342174190344038219782875982853947228788478371002581005939898202646226304327547966108212959231363483826871362077989551578784212724523423845085411940160593983134236566477908613957524103212768798063319674346522984374571826851670500377397354265436269184130061914727765672623125826638907512246784424690869207582748650320801975207636012690971292578171465718745486490661119106436846359879855842454477884279932243383453843453204009474389794544414361955585114950657162369342636202327892585644639583657303078246498413345139934345444342125622898120960062549642603967485840881305702677609898565683051718785585796073385522894589578366947039191031652337418110219326521430927010243052735027413840529308964023008225916950965032335867443985004193057461410448214968397273748407290335004545459854989383854445426238033708359141499406453540411873878925236444588854133415947955671067889074680579677434609464701761809792003579245988710546444487642726025060375641660463952275207210152937421607808453302135052122946731327271802141744614715226573350413968095074668020772116319444959892331081550157348059281793487857745729659649007672682651399208725585319037798384511853664613133453267132229845833479545660179023807211884691528021269019080212826898503119953338530952544057401207995049946728515489201263144081225026492216475965275046605107339942040942608639278028486117528950428047270259850276196332846754033637897023198259403552612880045486056288885652371905871004576438673184794316646183579659377700694333595568822152823499019656020187193085708963549605424616269565660366677059693154663803999309048461413680011090146065587880899764488254028631876994797171952426061259922460933857711945120557263724821999339878890943645313132352077044019882207967673871876811617542806018846052038434495656927947159588562258445329847646371983055256047327954808708537763704415406704566671859866045513706537576310333295001560397076859734565058538985634393763559982651147047008213611747775235194603788193044763585585225037376489433691308086249414582526769671069260944617211791222775085852119140414362156604316144008731684359607875311661811324916355023075129198860629697178569940571158152847605149843586761406128001980541762030892354065317075606110597083698967620069697677273534055361254956903202963066221972849865471691851289088222152527459596398825368261013953017580699127188828581408697540603396878672181675736505319828473895322307742716894818366871882851003630806011050888192058249544650320529521079928001220395089842145229226506277415193832303940183991914656483603656680900214966638802154854370114496006892861245061150692365725167193379777228565378674631305131548378885250400671543637285188123779909577142411820211783091323108375356495946864362309357660556847486395147782641104064457358192814024511952839833257060545595544492676133202693784535053426380011171440614176714142761661735395471984136874173422255280115741846854113914534951014975550534217963139793693506990619101032539530321218841838291517718129653709002873081543179716180776744908202237581896093219482198444920278214128188523099052068165937950108017086103833721602397795580612426876645267816722780345911988383226630237073196989222120311982152375399892524171987884377167192505275217543149004983869815408275077131863506707180586234356079053776241792688026670908248264627763576531587431223408908246494060896668488986527200527387314027552893169091392094766300959421770219777105880101687767990781065011070071541495969989936112912012519925317930178235283902521520395090723088610795737336051985841180900316214911076930796043359590457153201159130445124946431259811264876198549929479907583777824628270744917294116833809463273886669956966454902595461384797004465793116085502237361834446220401840244651393852582978242867276606827033624645814890863316063697507207020951918047488465076858713553942398456681513493363552007022643925895644685525902720477826050492251546006867703446620614468802524612517398688640022253468658735005113475995620362551811262020341431263670932021819063251661786337144985141974547472550626477899292997551093056082978860998225423192435544311292028534903856023886009456687733823097382548323140630022696258239219727914280468668500311053903698201972464208890092717654496348036576095117984252972171343551279176906117598489341086080805166769842678113038068569147155731228879046239965246296742878866150444031765955405729574019173302757193475314448307589541095600351524398806668955451229205675012635349357105835718148325286864979265161068252430443731284500731667495932095910524478645602850963082149916366109475522057144037750959595093865660045530097877057145762920488632808540432815094737105764331852328225290170441694475292930973228375435891699753475533572356439695719578783988787692186915649615262349130084920164849114938930922422619371122915067999408312049112212411158071600164721104310965347204782143605352131502219452821096350598244514295079014017767780327802337181993343336604102204575152599286917881405365110194958425709505251837803324272925144746153683956999554096690261518315202178701751967165359435485788937690490756386323674905351382992726845747715977333568589524181314590082332813627540812644592501380444602898154793919969164548353229574467267613420663539728444672365558534179409037184822970618937829277839815551818523500704295387389875167757750145330070061791414017232281276594335626843288927479618447624118012550473692138717593940212475224843122783777366636524642392641400193288614764963228908611051115929656897230747829070755920595178206308376132079135829147414614094849372394065665704102630620724936704592957531349387485533652018387211859103020721240001813677258076235474763797549314202452563516701038762004437899589613663046103011530467727257674438882066457925982449724658073680442423206824800223101183665518089321329472346960018011208097384465698454235604100886176507491774434508677829887332453368749759512907612404974486329359535072268601776903870292781354536673504804674521226318261669573914257127812145410665576361075780120722464409738771961122661565531731492436309510091311331352801377498198499537554695922792325085414061932562714647620711634665418535326828348980557294492301138538088580218450066414947936114675277879016912531743938545084014737904615865147743394347284556334708255650459516245195965311861805159399542821108742986159470360580059594846166982206051812093907775240368220231551019985149578492819367913874026112589549300512932867859329508049037898290508079328871705228653541662776874292361456453134277796675537175315295835958602211876172976005505287405066484680168031117951313986488580190950074066845298335127255837812962049471448702433989853696867356330614550213132625901515092315483541994736232800971350383728298116113971767355789006523968842769081348227583381951202499918669022418838648706751790730770447156824461704286673220559289378065457416047613819795082663670955558323081849600735103320981268837202227097033146665656660438743972291262058677824346868598873338994175143511307357525275434632262531205919345524210656382439884599961148565277867818943992295732732198950313991311643459212600760556552240601118585626480229834585046702175219513639976077189228875073996475777339507615620285645005530980543305399695719573012313776978659273370533758726306106648868061584673066802578157424038219076009842063759599069222094893506848259198759760003741878701562349908741302281379451318095261398215068044430456873377987531669654944476669688910447169462533807490717288151368827382186360290680968423502988938353071962043500110091933179673960664075027887396769739531780243564219119946028633195435274939013684531829717787843562198895431685998660965180776029561767991588421121697976864670294866148168079264767469871041397150522337754352479019813000028343845721909001718222209422875762162191919608218663256842408671117399680924433725936839614068843831194845507079750626778575219386702545969113587572926831721879505713543543132046163935182346421277930223992245420759618844966892455930956036869845409635521842327684134742229819187300899797483141113004013040978906817261354829183653369934663827735165786582645701501717588395411105863009562236550626184014530095725041761041737943466679751312275459725170014396428068027332471972809885793105185364057021635306195741815095950805736565097157691701211815948335543937696050873015390836675462262201229231852619570764859255160947656639576429839158520698729342692738451571440599110038070332326446471562156464001486797670663508185032767909571492775381785804523564662419054187676248109286479125650222010446870598910545000678518648160475920180289979298199648465998779543222099556170972438775367489950733306597604010436982820460232176203002579567051147898778280621887873943314816764308128965209083810917100633835378849531375645025013534782430981979589879041223172563396661236728643834675118140601157478613677196825408057975936024250644224499443131334335187583700381628216401991432907868340447711165991742687376750417548029080824923122051150054426437999323977368526785274126322116651182908776494425867018914560100377692747767821407255481849579583816914796006581668222994548013586548242632434563995817050838606806225233722419055948603487357198778672588304777483005405710528651853161390601425278858806180423492917948718812691295485539980903461458592182268174955404319330741214567105483905547559407264361395077468513893297509250014292919026433965297592206393764486258570259381993609025163231408023615938607644919793530701891525875852944537595611571684888946457076049573809709016398427097538676192537118101482053684239901682937664358168026344119866814467672621779178012174308481122220202370171377509368558558016741479513627156882603812280249931589980361378374414260634059503669580746274366156301026733382657896170476645065892893408178090132344181255574401839962638306497622991652257345600822164006659547611548460067788361788570114381745000146392616165615130198394624592633025922820537331608438726347263390195386690315084356797703096339695976808248058423476074845944014542559242135380954648242279895047538651804609701109745807713927286831958910194306542260340949851870253388129167156930144307442450098423279160340392042530821480910265225868976654998522320706810969212101808930522104224339253514625572436581061401135403436556014041542887329020531492866630229173075023825071968273302094404512579933412253641038221236045749607672028927872849643252978600613552134087509123875100917992665365607124487594231231527437360355303020117114236808633266103780805639283192837461083712509921064969735976793876872822373825972251859801384104758808384638435348152130909559410592387736177333282595533858599285656963795329300717690346322068801222367834779973322533907372861695510293039739376986956374355453838419764237671576476601236277316502016027405698933411973188231236887660073088243161273157926682373030825971342965252246830825286172620271145679794850081660500550933339161610080073412296175069238076633688093656841769482251516674926369110722343698264454710507291205506477208018035687575585522114812706049776976555237333948631547470373452841420430584602605635241742928413485034531295956395463373046558003166457386863150449921616942335864388677731609064504768974339026994943973534230773587416841537667280450159304799273605198340389342914359840333033474808571573114208877812390867176570335439476676380680837534511167763417459090328556636645307321301356572828411379653637544021953295190188410958112996195748875313215452607645577437827369172247144808057528504223992737906370198087217996530805992432154281887582701767527056227954519699881366527039323357253806370702900450158576686340188100330579734760063783158612520704977832813852646774402359613392924359883387403916879863194195332578115182592375361532052139535767082108851433567380842776655489469216543098700206662962278546703491525741432901102842306874752666712759594465979665554629827881759611617109096746045560889755510969241141334397936665226845722891297307931642701637763321946017939086432497604173042895517774212216485162371821440843898983004971252509475748736073952577692836953414569534258818382622010784551057602354979416236943599051091101461216484576302417301021399046485870427116098551591954618514730164546986977589256023196665203996061230439383881683893614649915915551975839369437323125334511719052833515807849798769208075644068947007867375136971899344774745462758693620727615837504930193198746805402068854924461321747437954195018697354541984977362750593932679263235997573246218239098513747020099201138876937751438493252145339709721308152428010225093284594725631925913718393628595777824870224448892650066175715834147044666045819436436144677262758929010992092950952119249552567172930252641954056098571335211685549947962601477361572832878292272276335858852903314718594721475242930620071450525667477244850793444660727932037967885340346977553760603647323450805214234857269890854576815314111914695444308754500763873911028883745992747835495622741471656057405701412290694207586925529917292783027883695437671767812452571145903033331944333560301519039347920040419537654027566037590860650130303118635091388843732769951680046666211967929113237508460005031415382914811022391642450363164439260393324724492455932202070655812239568438345913640041176875713346863898257853888244477206361485340832945169156658760436682134688293904374902333045195724734308787473991947575221825108579329530212429904914542700076487353702076136027241363541704689279738472788740205938413429889379782483517934266179886850972477265666571708756556375604553068724531992532878021500620885853832857306482253338063384208565573732699727629111598285086343013857243311440134335770865990864321909188937557081284882478680181652474633715498596132245925685723194816539488999082820296837920779393974125019044475154700370550248623716860458477763604375477633110136073740086446830867813793828511812637399257778599267811776909038193996364365027298967072122545291326944546364995763293570571861055618664190587644327022349196973317792362620306513797310986270682215326931260456366212963329092630430303709163534894206934993446344448390832749232137574135362660286402200428713153244538612706616644373417201816888923685006909839433196789599164757864807891030766449532036170554028224835230434015443466354251138152746674595197394114655978822317077521957381551836501619002931210569674963144565610886607826402786606366881822059171945280509511322274528212476829093853985457739257078821214119597785932474980643950325614579643405852017176457969193456904415627789413027335326547772516884097943132373331525171500784525285509770055240102492728990293553858532106457675037501169086459315203026211000444254264972039226236040702489588517826500657340945015844923971365226650698572305242791547980102067330764254142636983773235720651691785270329978785053893561367708342133391978325997409183183881689329992316069489170103757153815227972575017265426786020306695332652507791947964609537683450861903793482391695112237484348497681747254974386174540405998365218214473872804451097196752406899075687847865828887379949637245815488727165274607950300742436133826755736852706804188434807472277842189293298917366574662358758331136825519129265492353852653716299330327961420916882825826504260190113381054934209434435032314554158700384327681025884515283252259926251898220752803331227327893630261313414125566362871360332466927400817055354525503663624477883525163151462019948222467661332314219180312741641139951507536892042163886465483773602464756798671414790249781997841021159632828782149515615881566296449589418284976638940904337596844304425939709574697752863988450738741463188642466993735563057542835268551635075170437155359312268090570295080797872086732256299664591575530504768527499498157166598700863544716620123897144525617438581410773469162121633868503976291342455731201175307491882873858900393502370696863834921415736932964196627188630320652206610066388477276882029460528576900513942105256553197965684999823666865489535928916458527836578708111585438288724159040867580536874372161461161646925214065091036889577188158661200753803168149856114761851903784175646731204186700972618430938797042837000630159220686556676666838030021641040803260651990804298835917262593516116992542835616215825437072040349752781296542556463855666101407253081619792426773306366029828410647085483288017724878997635322365542156249422274761155916834526156586938974307892483949988431794309438342613769753953097769648807818663015141288579125588281428252875240537037754828659494828684072622633661944316666269176000749312282163020329419269809319134894514550287589154047556305901726291628880314048337214246052169999025434210899805531147920294406089330475318923734845419005898232277518489895836345102589885717681572730411936599572913648386546559560117209570387751318655062814657583969688679519825633523686626734173371477599920987875265807132049811809473665548257692923153452649923935580360236416877986412645429367820782092860632527722091141267764169224360437230490982679475655860781811290890529089023122446108166506233865734806561381821976477084638867718014678736799148140472984773740399733211173670048510122220290777821486708962149972789681895048985600334065338742999329553261116601551417961940704490932703932050483023535887000366409895562696917791465125191208633585256632148633104899741010588037081001715521151357740653773468841021889767475125850608119729552140903844583167774246138148331352215203583328988959924344630224050938771054170107959999333971646353605576167229823328516432094225879191451262346981145318773234867277382629922180605987558015874963438497856806920951572392977346476778406998021278901673342542476798448578488689025509305165451504132362129294057487504011983567403633952411985450115161379363181817097281800237285388112796530275491723797320367525570441656831582354251925668606073527002859954645577195166539366139357664560399350914585233409967156466582584583455564036394409625525011355096303691890258601826110020436709405206870671693546285744850293583074937108383057816229889542319638934910550009831300216697801708735655410812688497891550882974511586296499207369493159161421860073544550533678451776371959633188304812122849114892065582692794730898368331084249002739545037645436353297991639198526418458402725784342071487100363699758975874473163941402390209026757643719473087307163202615041204991451673911138740578029973051791429333847149527639843175963436277861151526514721757751454289775910151278111471176538143550456606051486853412992099873214291554684574163744133858776436787154612517006615757729854497501890214226034116505831267876699985982639520171039966132960465926324170869362492142336634589799496320460392807632268950986703367170854620301468163736755149940579396617732876007616360167439873162144163703695807868759609460658952912220916677407976621127901740189008879141557608625715479851573624987304812938959986665180342550308505467826164445984893927946543573780510976678909043942611564879739928765156448543031165162774153576027757274505557839937346600035150591437049685505790075819792840031217829225030947053288553257245216003706382097294531541733139565884816637500482059317980706700253417573839797006881114831006279800873353158758976887180648243381138086848276762480226379243463709548619945201528078255275192241288687806739482876716884968897152638877310144369194049659767821215177646139384103626673984978962428227550753575375738700389430430980094335216047209747977439666019492376735126929303882605168931366530673170475077085959651317593182247249295992724924523179587407770631326533309066478692461686637127182866898434297834608479645523911953396172169127516184886158289212495019087473274127895577982235521075326651517296429180576405928500376480787402454554406134417392145731152855276122028571160072697004703683799374560467578857688451422716939474136837749959723476460578990103328386090563300522105953052599718722176771235864897853208615543089722112637705040211099522888222478119028240283889404055087856991225000959518519126153580419321269482999362506599150303345414466599892201307323157936219544069203985874004535435140855659161952433732081702198735965869025468650442212900297479591863288128132484013302479789840067939130257822112785010025546536631890472533558716054377616810775744641316538515081792665816241724512904309010146836144179078152960278415086677886529293089893509149284835565778418087076034173321475850734827604722676510368093380869266274596022600576917545665022536891547976581846544397191954863152732394349992738794369384958902155582532208009664202104442955615096591691099840524650313385942586064805066790421082871081198688848920739865295165881813881372436877347162241130844393151475065689141366352835772926926269746317262776755129913160082091417192563969283515388073595479021783100133562380481936848163274616046205069829668189230720798075174776060437438814091275154825090675935328910596486364147656584728181633684513681711457895421354106339060310961379683206794272729380991771800556471906989937510566709975175998984813843570431194862729159585679280883037880351568073291250219735009476140845060787195896988628788465485714026378533869856674613999458546364764552350166203250028051040502108275919776027308644090009787896465517161315089532243097664855687869100788882048178179777427628725507049095279655726597826724518117087217199434873109030018771411612005556952873087857330501192405656107359919174818721289460800108726355782080435510701789056172105204417208793161217363306151410351455501207936697390994229169623294985447626321533765239034685849923880759293713646962164382613219371193004653519029518861425534994171601697191776827921868902422619118842184614799033162192595458697986768296891327646272489370062612284397086705449923908860324707127079125994629111675456144126488626906343262816348676202597444640794154155652451708257530430721741991848049668908594102515508772823469838006016158222597122210031066589520038572065151224610838946972095327196380170417023943572851662430096129549890125481708590569694439494895334843752749599913326861644153767643544791973061375113478211279800134204862266269297599439697697978043962672360634128683918495286154565976809220231890140686521186242049776755391610490440989745093450301474276430736971518531817420592720164018045655020303832825910784855357078991614566241240990067289343831684415937526028798690219051988036450645165547467067674433965348261323442338456738630966123190610166359771012707547222799872965406427711810913511536264886371148210550092878583576937994398933737128013735523199057753390666503737859103565503674652510234573502500631324845489639040571231663466546325466949498757648733029275603234714151416086487488712615143885280147078970488685472578566423220906731625115602979786978934821879478792817877447256940570343251855360254735083075898973504083859662251052791503499800418566735306865396288511569261797918711093594958670203265320969331715560197027653451757472337281422560700555991061185667253033180949578826254000675881270573842331830693520768337874780062530924525505076034779293120622978180327421174932092745711890283260137106365778250512274370688247344849932007602642369789302289810869605117169448161210750637334649068388939686994985637035793778438965158173811514704964911939062371335991765829956980166016752458330237224192784490427998157965427997914338583825278251054136303639096861229498024242269009744032178968648132558504280177902145482797740952545880645759480978665928175352486728672049461538221991692223866018083403493101505530120632834994568081266738763367426757935594102986086206042783907866271733011303555585232842082598248715483825867260766962913829373441406759783822939424205754040498992560710116679364765972717378996543511167371509974613728561254448325718472221082981343734385779518829692338949418644661820524822651485766644303879260160858419570681393207649096702452757898252435537681572171174900656198078285037110414093823322044487482654316020594161772022061730180931118461103433775381152889593665299646444972041577192579465212427724593516912222335430970578318585647686256927613198356260516273421055112977270056509206981399135324205189212601235121002190989761180998248444353264833324715651085924854132431447146648796965534028997355513378296238619094633647467199820731260144970817316178362473911256323773225566070346693950579373693300396934449396798474877140645101173517491831965465649203238994259198597510032797674920989917103956257113323392229218959941289462289450569844505566305831618921152062664889447439793503293088900415715190573157005759072115401393294620542797506568894449234050097431933306629010983415356897763784057989658777969673040503179369934094535947459772509445061596002272987328494009046924821263098456510466863447802376226961172481791700551590640347383529301760746876332718762003696128415565325927285958264822299578418193052900054715272872254814503442813925947476076550397907650052418962528274686188251909764248544153210107400317797967181533261790031070590453407118402962102466406964573062266023892992974435522475089031011862107330990906933786668195071645128579885839995559301684774320531460180456714863369568807315798705719454085981323025659179079264465835369506138292284507448308035747486845945123698964431090892295719190328176369248932934765383398168508244989714597528964278817524826944864827302988844566104040655077506210043786377630682161139821653681111862845430138825752249236073706514684434953178692682392966423377669894030427976202121173125420378388323779109404150791857232700938513805342421776103273511779745302994578221665029759161758809125637611597820131794326938804583194578174708607239547473938791009928556388825122110614900494199401833348542160439195492599958436713452069691733583227691583051178103934919289045706505609009997044745602371361296890170569668943896147917844357955669371064690917525012879154396678216498624984130118733907521506982365238885380657700480700830941329114620536511348077560594884175448243592842271221680032824830338472417600461783501481896233966163224711172029912438447792724275934192993731162315316164134024031724926791104363314775279071240726511970543907448894208908135114573675075204768509589170320727792185213407577493634569629731339585715346587383837526253546197140484263503061171291931385539583215696902124569047677637647621796857577310263715578932417671033998372119023890764872655425384202105218183984921491353555520816093182620261397363581948680110725683608934072356061349871434193055150574984649391262122789428860614667004042335220307723873940769361794292531084961665822345167984297364786476332413381950728501756687542357337119431123782865629972342937686298455704912750264007719997086893170084343817305714782576031599142388499631582667862323048236331780006231191420144613977502509780394172086759086120274223916097851388989852127082135030500507934269517683026211573232917337842801527063120328164790972877297405178111491107797207416534365926160444009708032479791334192811098251431681649937867590693903298793531064458887697807732498256399588786494816289275099427517229400569137266253447393569630090868075074002839667629401374799460589917654458937674414308416292949385142680169804922567175631582480104855363672583379521443822937442596485292417141908257147583345532093603910648854713094602384132138827511193894526786059941605196948944735114559250231817717349583181947687574771248842112944067870913327105766087866630526772022591714980602412100748136095517966832697177183263902571332238340056313347819135592356192326969696764814348024860994203776457493151907537128599204498743601376755300467542902473563323383137222118555442018045213874079862680447472499712489708012509310585576181162734430983251143101512080253446221653048857115608737411412228650522479356394772225758721504775270811496480576388432510086704772914914459885806989956062755061434613959473280596406669264328565980200371167468808189642877875664916701338839505957903340392853613585792775266895199211651972903657972565661723812969064842221071286287101234615333062024380138376851477401930499981171114826554193285275759621708946076390259854719420515470881248970581091919781923810062192925139570599693955749733993195489754308482989742068174877205946126756683846805681450583035231800125399124570248351998619725521236681493650458897081742583971726553237283536191164881444802373445912871608055813013701946603454252121992031982762899490957876084435991893034781543109618333374499799902359511234269847013896593330407173499687666710547016222154440549857839818498173446374292438250996658731010455996452598805189312027448496966043714250456273685544326238024300119646605860484944203387506701595031927403815761144921304373947438425635642845399814045098102813865236129101687201924828388859773417293383736567941119909038191559706914257714052356350474654034560609147289860684554664329442084280698148230804125382271514757252410272983060882333844646369732494057405112842683535003517642656091010239050302097874330114413231326234185072032775068396827458164659759940314735085034120111865071094491401487198695004362456437499513821050985843002874281699148523725773642847203881425697054482296211413536838119672120558378806854322615292096247539351509068211799526981500204988851809451948010239394961041502513513800477454528598256192389620853003031728412063843109539523516202638835190392548749937846782630657800996906527300957974946533740945420703065724652230231862658238304433615989503151238955429624008712833339407783706674870557765651729162588871933758321610938436563844484711188737987746676484415783860557867176707576995106641901384752697982998190817614536495973783265112895474142301448772228018228147317856798480350860201298303466425637013975537502680328106844757210475049741591823665842954071991785812906571489871003740046377822329817337745643086068905932837175800764336618627302857905801469440300319943311310780128675117490287845830341788491254769405381068209534610728535537173094392411826096901373974295503071797843657232346714116776949797966388569256702658888544460723712257117048778090441874750860567491596938392083981697807721045326319801815160283208902696552598900304207144099963018706536022820044764402358422690143275255810747601117064056863052828658174753754516972384904321077635087583501355999286378926080875925576705761791119476011410211046119483764380766310253850079306736384486929866848610164617987521031834456035403287401250057884455687029877785667787885150911816022769267766577112257690408568515397700464014203047329080949487574787379415512266794071842850771215914506956182898968213270011380521939322722371288832480424431857879277920337798173825111437955593770098512711949740196396986314114152033925619703768315528790270348502122184815531498751974326856664910337257700813805141556469157806568788758045329085750516963340443297296852531080238219502775575253857483739941834069241583316690951105123758383015632055341920639319828756471582163748615355577548510585013131115363494665528462352968067495102474588256782457613458293846698050581321904911982033183212062105137487724388621051935762248925401882968509812623273919532580572946376980978769279931518165514712859548464195147232564083292633917012474184047955715205919539142022071337256836425752294475373102867205756033581818104049055314913511631824626021041937017286515786598471079145997708198347013543296235714378143638654392128372884104389915594283847006489880190444183909943469811052648080104465961979198808551518699637101373466829649060691166091296622364049480632856120344187995265959818747091440218527428567174591471968345967208593013642532236784447673412143723848332929159292918017038185824423647449333948827497423973556698416323349621339972739926598538039853142110411465615626326096821607775754687754100911892356415559416943990291940753866212734796052734157573875041996273741878438076772707807645971470060047636105860882851221720808416119531159177572288756808248368865139870899905551614177729213483527348411542686032597352768712212760298822130157082139188297970199717449323802988202313601166013251469334453093543107708602478725565608910571565814401800636516342418858747816524133102289199338834406457239559213519148062158063063967464202813518020195933253261715208986541661395258533402134984619921781983167179942506771005321153370417176992075875633573647316280869904049486460025054599193509520136822038553430275519650928300424881364235968117121734073513068289884384313894853122769364338947640178441633759146723267064844760845024163051235433884030498050293583669128025429932635601542275229179328504430031306732528420665498701589221098924033750021215722673770462081418681733327134951708109037160032991061931005923258450414624887373469464708654904614282664288758215409108048786511372155289076678430841616523814098348275424617007994264831186829409092183996776069477440854567766428715857964534006191963797577846676383197711613850020657433013947767496089998045110338078228906051811560969685078929472631508366674139389584240151688577593888722653792386837103916396754726630273187766182628311745289551074668505360392553369604365775734734083185917127090600782529357150372817560783298767093763736663387393720992268055297873248279662032500052560585774018875644066210637703986345700912019400927638651909573747438489803422451172438826403997825127132139758292086954742294761973597948989708920724307907195492395129209935025332815335480505886126948799997301551706198736282756185821377400149036811834443202422288814751776633817020954847119687523125242028478665918280788278066693239262447446307575824473692189868002163971968989869872294190558146674400974151569031505850138827267140661697488871894179327239408621940667971342305075588476577159764887961428636440919738419928210146332103768969616025709481961509414182313823910431560897516147851989017062862413343587746240486811451050592887715039946601221643971497662122650580121898718841829861633314494026094634150888672292134599855274428912464753174253180979052374203778236796102109388041508284679275300225461554553747583784836351270059355867968812087603587234280081238302631085438300721492434412582030047009014470297640439078854452326281157858736432898540440257828289011932832464479546031250864700904528155351794456607925325003887068210375631302324012447405313380728041656895062970920249490205175108214922670260178609092728195822845569753440429932525743355303014183514766371415576091895072855587853133364841184762555072592373071756388158000698856553296500507451474808826870718891748053358589254650007302854194593810282129331624378208650495720641164242822179581979995265438892629105868588790603411656372747210376606810180877958041016649860793054533727596555441676707589359435656948288428701274655689232584754320435327060318872727987759890202992943535825594804058631064905021174076548011077961683280759395046509456196888912087391574560558847196584175278924942881174648949204118650997405701471491344934847394170005066579309436745363894721822325810655294493237856444102901522014737875044272956750241283281285196795683131050735752906823532043302416897053690120020084526201499461385301822988476241617422206689287378588298443534099135463937616475505233392595680751190977102630530209891406327406564626351893839915217181200332698895399191981692282239033856685764775277958060809565218855260548915795107744751851986515723043661087034897674972015481867211626381949060577210473162100074071141455631096893906134401038357101448678125747553928680963491274761182484094009871170604659799055258913371339063012629664622410347865104404646870211134551124615134207063015165139081426433117093832891825033809508354499966059970079338963053610844462131149448875214659772074546891341278981251461458636140907060695519915223973681301781660130576223949160888253185115342476560494285071994012200652861886178347350384812806595338448992439361313201220080522602936802107116986180090156180048753860570579732523420278933351663287592972752817179648129621180544346676793619772146002595981209339951192866221530964496692133749560766717810240975253760907953434662779680759588433372764803441815097829589094509780982662153920300002500181179318563275608288617178953545796192434966864212016136265361547189988154273826793172959013945249820933448526087454978172967795798393939176117664064089576717239348303310994192654890971910268800504371304254250372391415026637208755771682398201302617913761023459183811097934835613757291688120819427636402108271912046642212639846240503628133751571988729018649138766004556794624101749920317010412979190702054238879469346010310860609969980900236365208243324187442554141071876578446878494861825794701774249873700654655781200421373570813012365198432150578822688897842775094167600484363209649118106847963129682832220871982067297890066144463099446168888432587246876787613321322687779388727801525515748651276062550932380950014869785125079537094321048075834651792918786480785863915209040659309664413474940050637549078637914894058429759463160611416028197274572447142382202078684269838081510778512871157239157677071119069689198786954358818529096813566290460573712186323344237563830785347777281604964786080506573958014908094270776227812650614562359929875472057848420838751994253605223278411081089983329845305315289460155359536376303289480251713670935697643434630819978379737903819560887283700471229784456654864564442012974855974257456567840259042031217547960137465647407345756545345750189075283859085300086202417936141138877527644354607245988450981571459891122327720585623943224735296131945867007565540562587767431837797191316407094575804911030543478855156327715404689362355043766645643684276268216446127598705471807620816371351138408071232815943536054883715107524879001438008939492638614720672221709295097984117207802796062975299987155121469179998079170522143727035116094699289999907261673436273211853997600119787863639683330058275348116584463615232806823414276877182300205394629373997428999075825772937509230735576848353264510000266846554006876144975805356686770649240174909427341778647441407823661330902274379768386127192463660239048492891712614855509361892382395900017421872937386270855246032359910982781690853380421743148737146052429085311582676177846153760890099835810525394842888705434603234576381734085153735386331659822085995393438092261019835792729064080535280260570891272631297636192573342260714523170145005197060644524905999622957642374666660309019338721627798143027035806385419635324097152556388526700641981275033359941796990064358386143533288798001573306986853626434502445098914422298220262701130316712115605021599892743107848846334053076650557875241006180309408215153206790677377521423978691589365307955879654063972897044858249098600729221337363329794709071416928157658949093077698673212667678053304879846326694930053295498948695807661726333211563051483658399602876437688973440614909685427532779739371762471345500039622540188400585535708509685384830885299217523497027303323662891268180575752021154690049567282852826456322256233119047732543800405901025217796253490094776118018254167290598059713298135232390802481622970992960726165542256395090116049233278220289211643064412540050394057247907722290394554785844090571105718700987862885984894998614428058001279963860546550551080369893498292548680116784566059318816564156608365272011127288518447123068159373246343093339212173041372016109267146822524506768374832277298192190052863027632209275721096228854354641469471708473946242303914470927376936867073208740485632960124822435896778691118878141456472770432564248019192294719213561823472139134564858430861026184506434925758477815814834283357026873711927361114378250191738661436441324118379713951232392889934000877208962802627262460411951140784644008757117060472763145878323766573742535034628318682610407661187720791356752281882976390971693426605706475655929549416840231486247572344162865355043636198867479288862937930660591228544083489619853118630294270449773920400531770402651737521392923959233414805206865897615298599669635793455107126729804823703568886306643983992419714815039543375073102731085308711362043588418942067962320679242686303342602219241775825679890823378858716076413229127352071792746073455788584027201978791039892001588452977864381927929103207080847586006225840650796683315329555959016617407119859692344602105400110978107817815624170349168307662634639702533120683292201204092382658948173291195674388198275054215686648325642210468104629624427010308243784021833701688198573067954006908098261150217603103372767460180959606618981377983151010373377387723052200297098159236427017689777555307040839434208872090917639810820173649915313312880522721116161007932252863910867200006317850567263932538533785987511941124761642393404978234584667504411904337936911291427707430168602872978934460572901966701802546501895662524487290083871017367084178781201483624517747029872398410177603643164678855202960427485297325974052521947548264738259868882185489973370256753756864306137261815265865240469458804957466930758283567369398824526506927626292567122529070709011757872952240600350758889368591889490209922475286668183868433382972373368909532870164141501026803411485483040643691385845834169271153740067723734023630962941462927035843683869396440511563705512755753468587667102703839301232059613422365890809212872074333396851000657560694802602906723502697467047903878355680609305956614363313516089510861444464554421466963190289849035695941652777852990572377404601304078078258563779225768861956437375276210313779493896520936972040825888223037204500790306684335367701172231868928303093731425231694985451959637671628557554636181675666772721220377671080465699951077440915657620111003660760588035323751521696682980724708262063649380396119131185430078684760491359647668807033608198999635225055293671552679115636988142866645202751265396447922303974722817535958980106696883616250958043295731774396304201713691884911517068701668906167629789384891107349002180969602689137492163775305301907578683821861209658164405375380945341659080676101140864868180737012312666037312817923935330943674612912164574991211305156803765334014982837570943390051688228610490638494016659169476348239539238177272265538759431927037360315536109636477442863649143300197811305272008531938578918323574991559929528969412954666342189213934138272357334830320088121247705362934350667443225331190916891482704066717167320568585367949261996493463616229651021531194107200996073645456319736246932701794694692599469702653676916503103421798398471191782527138268827511025905146216441370410701574340097902132300453767898813052837414977548010202874014685141716088705055211353429334482829935854704282730027625027769225634193153015475262924364584021535823372482765554536449305374472192569869239940526849885185096641842301814519102280873446258683299813339407291357847257412010085191766647146376134092108783299149637519435477048107213989355520171372390221823174443510846554066243231008166406069765713107857519236242118707583919876478139841550350259351882677121883810059688150054440073333101435154745822616088084396299369817822787114304495793583831718125592034856023004467393022029424157855492186937860979312372450136846461857957008460864232834273444561148363095371771036805261139257169214403943343422266280836269243105553240386341468891111512961278253949594806867220036935348964815292395291435195759903236630544607805314407131178024285186163318655311021149909109615355820962124054594816317197632105086303358018994752955646295010688802762373208094994468531504981236432027200914997547972712284886507622559402153805819083617028969802478091844368023669013130943523306410545193723064223121603995682659421545648396721394812471387941191403418956968051813753441247694185933086304322882047900625948712129619517646915782156458763342644345058473957964691580274064757296247934980851200757389407999799253817925145357842758382255532353977714111141328500675525336902484154182616631168710728262105276219881952716028130176670818862576532542645991772610110876518203925189717307133210150231849635038606412850303789682649602704007159903756930732669037199562997115458751283163368402541548433775756571651805293708118394278995424640709902839642978469693090414759095172284458137395908002586356384276795917370600599923449755548113900750836702282702407341854926347964000410587299618895135716234321362583086313625203116130919337900753408649791022230133998987096335359612611713434538269364817290200620358211641467136723288117453322782868391276572740305827077966607790195277777085930339520036190737815922573766259443197801343363615320499315239459969372055889830276282390171302910065417827140396712870680197939875141864501586261716588454378042403443236374317215410288057684947721282484963364684129493041241107256337006105743723963473808205820926078237129550006490130700640802034704590574321005055769817287740383628337578830556626257311056564693046161270761085609601088303455238164066684126159539785152276734233669390720491447802299452434611103926195730453420429857278489765837762544035050840799657778239796256230693274774042467623096086357115383656911484939203221986548567553560558369610021444934154054649147461433999483265675434086726672155305107286325826777547692650715008472442409141638949762420254217967573260590996159872050605825260953567141463829928914287981056542396635174577003215450956019813959050687740943210612193308393505315015927745360366318774103853043774686133348985587499256589558823024925960331481099568059600469310751642748240687976855997851841396581669075239008161097785848494778698170748635398514732530361673613491113089502310342368977639882841914103029555491928213510450485146678763854187658438754951003567958427742589738715545513281776080412279405374515321232608443561596367800780569062031518165982727699918574421996441048964890331880584915750828969962968851904418708590676285606513298093680425995809672699853944646916891551390602283764889869726325777966839528408322852395569533353520084158405213790614914020706587719548515967340032753365853698408270471842873919459890389044325297322155086143819040150861118308059469610565654844387126813046381941441053534126447880697297066557187151953510007807673402785455291824833618705980852850835221353585029821338810963038162161122986945603971578943818763357379383526363467500815928270424892760496033181771528856267910809501872858532443708756873934934553831257586526809459515251079472161191690399437667229486586940481535506650428102624486663170682128667133702703546515701512971837202747711038884099639989158608034035212968523290667516085826912307105029601462708710052264127711463783937736632441568968702423309259398392297695205314690589339460670254229479348332004379955440432477561735255890404433000436593842433941004632325053182361938278763976900626416120105240592115161567424406946707617460866545571900783793185732837827724669274441067323510091369855728241590271270254252285600361168983123618275907846051745655188295276202527066262490959334275366572819612696713330125694417781923195002009420556796509703129772484049364034540034468262196264881793710970720446238795411114560942520657831672173530645347276231885043827769799287988777487908939752806534347202383102447708086922283920315321563163550738578287516123433060650516681599666933433608955971904519387254357492693819979226827165201895913793715127726433046642183656984666807854846073646734762011738105827442990585270545475560155449602514017852406058537915004385316520641719212264673609607631689083845609327404062691553024299893422099338059482411010321475463320492255465604344993341160381800258425658003333664700925398075234772895692531845247247222074669760851714837219887109186287341458601303958725727987517019127103221448877167134364323007148229967758066707384172450548124712332579852859115955737800379970356211312997939227077854008867115305590846230737963053178235708412089828387331700174625136649564692975653516519264316596237676345616080601764369890995249863375460362302557267291956880878698134146344207984784501643929394650329875992471599541581345103997546194094525921690749332801816943060554146712126315811853639205198608634682168228378441733968758073440595481873864656096576234518423974943678531367032511808114737025540914059118168126145646049370984277343094484206662899419088159685811371872859832363505343569002146457740790361089790177605160375508427710665153226728691122576350061259717121999332612745050019343118751629192634251931917158163073189501295130527213526162436556279941860404199630034225180417322000199256887373730218657837964260343901538004167479557980237268974109276451967372877634853033837921178876448679600216014784653282276576639471839875052170945036679229396694232731162250453281743646682738627690805086544673221996281756293416970630208405350055702263282456653606408769309873992624708557600296934895720202988684093603195609764799833488359831808003605174876908517751011887668833574120958241000883093935273718925853289589887644288683730624996384617008415278630872695340582540858562470116798223727809131181314070710025090339836864136214276196858507533176821680944114758705505199285958892521203278085423311488300376424052304021090800568266120587968753009429880122579127607913228974377312186735840420434893237663579472491099630367985596413013943772526971821877478352759586956381036524863531780753425715035486757069493225766289417224508147468151278076445236716151784541502389646350701843210731857067062994963983238964671481378978737305519629328352382137763208633187965090021565848680228460429524403712576514035093868968181418196581176815288827812456511053320346419917297073981362959590953177345966670358716776198742835287549713637666111132512004622078668085156557830781677746978097045006027808333815551772047448777902531357066299322682427979056323982862475129202040993631934426617658187956719992105312071225719204319294086968033802123834096947406566668474794002384169970380123214841385567883688219607432882559224506256597054635633877835448238883188353567599127870854906979099182489867694339501521394578696405352425222308584093072118114332345774215362341417478858095697545663093704881423692107309001843665558172335553013672435850032258878521401804281575201910563817525774392751686102405347194093892725415798656248878147174491493801712191554091168498616443533904831815887260995908868962276375380338416730374096321625006449934599406635743903409417858664072155360328337961108167517360773126998082205288895534376404383457711052892808633659874679311072381503339658380250558625454605897209925028343493554668480250123249509565269208694446333041734994731598503692013427427585774848594290263192523691207350974628704917550923394993573509120357304864395487109183087978819938938812788358226517839298883545631969630305997437340978151097846847055621044694533126714648239922217130166967454967994103739273265817653937305165095838261979074527371246262798686444287156883638466495059405835158611172898630823349412290041582125579178137690048332871691085114871073316142843261338123008070828780634119770974029889898643259589717826239309325859367946071411479976413859584734498553389476668783949473906643175609253589224532853054497775659687477717247548727831863606227328897117475002262675383131296504589229042913953866887100254114470007324967664041842892203865877388197211891121402289301452591021394151078538503850027636615399522344360267074662522084455637104392994970542833527275041397455797123067856762591254398427070305283208773221923451642597277028915773488158380565337656077107983113242535251288284680662931056398566705608775256818194046875265828127743926405808317353277294724025821581876500351603193893453071909450623637586873241555345923601879453474791351518636035995044595126333617118411817347418801063920774383468659778671221502192966589340719422896250745601956853340899100863943980137576499347576695131341194447969747766654399130666947636166601839555564517057234320126645695963541811653555159390989877952449177753779213959250180644176305589561587353341561036577748722200435374953937740493350954777778200233605028814856365574371615126536914795699702086887660692449289083772089672071525900175656207405606300633194503836671552764598694426034883606857505361643733732402363977408229039554167652078748551951120995237254621469059751008869738686041507481749680578058669394858334565184764463659499373597277626739069183746052662609845686596656066690629253304332370017647714335374226735857263239427470498010271316806906330153000926057282279961483079551200636305462917026054857798927464947141003333472827322405670930996401887749407728289896211217238176618072048943616775460760358866349515733359757811124455008713598149967583500249173004098407624422710577996830373229578278429367076527711720614003009970896353876208055938055286485427877527170185634056446907761374726806898525036735829224242994406330425195374892437758935737539505952103696914114485546423209314872674078830439249684161253003941503975056654796219486274427781919082311692921527400021669711774218959308622717180450461017837032139981999333973668910225793276201246678341069398183499887519505983984404696027397256100148370939101810682632641042193403309107988802875869984839580533612071999801045836179341281781300019338832190153774471408045437976061610346448786566983263447321356334130904048187006858831714602824145190679238321817098348901273370041106671936590496559733461149074736006736115607572934485678625023695249304015472883969948276563771778774993403061074248048923931566212816866712781037559546760027132874558422606557873452343325300809033211223133216206627569319878078460362735956141767970049576364081640589757191991053738868729790862964915165382535054183693172162824394756668601929807081032498568130834252369128204646818033443648789091004584112761158245499628474487324120238116303030827427967086068285632871998690676987187175561168307208642164174953050796692898953301636924484706008297890454583864428131038524454106825850690115054792817581347557223020086582589644495762040615059286741196932942818622276661050211014375668482466226406900405955743561911052401362395719741240847540103551792856683963767158503100440856258470579148356336035716023539649276326999864410089323249675857266965584912244294006763340749756707947425733059544572421375815946679729153415769881068226273084440051460993739770607540325949435488315691730236557359784584275292023894909391609834312102135059379434167590926628566896032218299538134629893092108187793808198388004954236235438810698252250587586241467603939932229274485890473903904234202592828340261790461001909098856682054363097045220688366427492628371938418299337931011935988317779395791898540982622677608549483272387862869846647973149780959569636534069253772682275973314535392121380034866072264300497311837700401566200790973982286000989886921792725608236772828724226750060100218573810150435608928154365107868290976354461971604588166386556483833238782841432303671662299580520133311867025963276872081228119059544397779471532786518694258980351556272814836769408608481433450989589354872037473836253976884985790118429615659310110733211818203744624173612625825903075035371796320866494691074805992642601050162962919166742366339438631770393008038651292677325988318804612502720381537607004970236744994897572494785264767249349176371038005580393329036485761282693926972556144253114039274366319706555164714065662738249705156232856477918790157397221197195916104092305761348183591786926851076917516936000601613639497579793939480039720583630515433559922251998758305646909840912190203607410474106193420073102028212914532942159283868661420840984822795832360022905458658598782947090607373361324763700693311062473429803935959293828644439316908452375001633733964815459717978953204789182709875966356045374593186229399263791390366640342994164221981996502891689356309209507097610206750147654138023961064172222155883131115444190289442275125135696190002969935138686215479353661926002270995491775013355609564554287496110775183406612230367900553577981946866915526930340843135496797899811360501322046215110281984913616151415387308843013362083831451846080802083590204724488773524443447532374108340034417227216717537758143797490091550149368635827940981431727761656945819809863070186309337744071325380699536975813148647206168477609311528306169984609052322402881240131617226561769044011447890286481027532671455849045521442969361508835858064114321988670828826141523486231701744369583227457657707285581647808485137575304911189755330039277875044322041364844619460222973931599574791757263445571763046416011098414395508796106199989252673572646481911323206695745378922449220342712075774060812833477530280176765140799959698685428485740829246048436434294986450906845817643838644943670628256894476582907479772116559685075632849345213881424975442513893610181799696065121253460634486773356960880240748204735204379340961544958993861849731813272483334065479647443644298540466013721154953803330988126906922085773117433749620913993383914204336185176213876793781590776026141572510872044540090001736706319649734250646519853742568447742907598834244203513598862492505519593895629199527989407328149483931964162461532079940119513471277061020523510390358178689377432540931188352652665389524830854574185198913062721229138819818546032432537285890878236092736246657057900498952795684488262401402677108089007432020017021156202862644431660279202911901128649061850532399256450508881736571051631442023366280957640352381675732349050098500861530726984951145800042510907547937020377633245482089916175131107487754393201023278429297026559728858193346926270863994641408480424372883212336428415951890214721478085783821365586765065031258612945874295900147992179174834075555678155992974542280258111417606869808141771687989391610203513554542396337657525921904238371451375689086635591626857347308986974325907167838556843124187957215976194475116130680015731964476152819664654289784165338738649609383641526259254996399305549520352055816873147262548298325031930255021337792798640109100493482967079682831141649083710463110451003083937868203275149985766607126937246649811703188812179366736307946983943415657921570185469381410993388799946516003897881052461262805780305077773278304457129689269187732248957157883562086714177886955061808029196233547572023262791215788322794682576906619493174536116612157159446981023607200708190046465565980406342066145424275805675909098234867772518986012070241367948297592804724932168763328636804301419071631155170481026167118594693038606318332696049666605829810234476781670072627723166368941322426446175703600025326479485654555752492210691858754632147048625850286303674532293589020833768276048711334416268490916018042817238819200373783539536166570815252318438949101916219244761294926807829970593711394775282775722399723438977527688519788332401016009201914073468364274822958651056233513544761493005534731134907081861021066890311650067837286304179772987292669760498027981609972590296259075630340612823062705557252873867427259071936392533486790125502178660896575291636670857953445249353756045721708741001276208829709872922209049043200596851913116416335177641733606697789398339825395913907867746171426652456846556399062651403413751612032182965106779690684728445769608401522394149055435949969935458552366905733584393991020793582709945546947330989709757941739157427963639345422246307612166280549739099706480725394609665665540957157817371410860173172956512991142869644165415744311768100361414472829922147458967266572546662821864000304666237111091706863001287661029040187865450467963153240427075049689617289276167049947131587898699704401392713502355666903612635318107116676655806118255896273815822278800735297096278177313384211164559388307554589181171464388614203982290394324899503828758529715746943209088558706988000359461092592485602461722387012994602725960020349006277330770330492539452240287502460089292554202517314666380404074645362455665458620966541466692480032809435194567334768500995553203998119120911049844191379523397472813069535626798057961890640490589783112340585432707882503047364536233828306081942873501850102379452149418693989961327883504116677225072558247469865152378318389169012627874171883369008512498533901284573971702423872392761415978917883841286661074970158700258663204661537853355429172177471240113761179621609895838093617502094505229043046219950350695950623672023023576278393995271744969034385964337840710967050631633554764833604888980172032324282713918304831253543983140786569486594069433688162046422711308322201869920900008702411281520219899787956178651205139892144039889431061254300567520615818851337084933614417445563855692505725237655817031234300333670619509054402106352089761718927791588649754407271971417205355020443220744185622364691412165927890644368913858902498308296784402551238678785636631743290538173683052908504884522452455422943372503325537077812918959247529261774741818985128272936516073940189504523622086668866298967640045154160466232497086830402025584912430888420958438558643939330814726284305091627713280903057399442248249985471665904856300616993592668621162920046856461716839554483020538382662853394153403938175399202927667497042258966720739531503456556257641782604715340938831460211308041336799381550227116756513191369839808553158699436033964938898935762350469244902851839139116821831082614010435537914755617589068461339238528083715474728984648540230946887159418854209546038844021643907701832369173105270243909783276759714616414591256411618152181581800708281416782637612547225959803991554851476371110980137258546708680535343336363376367113340265428742049453350870206301925433895848603567083462776368665557926197148066716396166220510368810109844735160001751965121378116433447130307677295737742170895069673956997103553713675103701493565033843744853261613321371403993812618307379398254695680106282696737514180552086404098430258922796843778760578687991191506243529158256947311254883043104059594487285044379565046073549182823448839566734040016830515155971968489030536205145451848344309546168531759347437210711105751210558478699945989438121678962101051489148382330062399557294178412106389807720263397080968173033074019115697553245064622688664601261835227529256054874585714560967265638193918126846201662026472077295696408073449187496591416739502921335182797439545215937612317481186209210794976888696289492655366711901489550816378471583992436530355145716926903125991888848326228148556725689924937049203509066894616260995099456985014554301737519484017370252602205034740981671058206858330057615186457340433651352526776379567747913260099582859777286771568155718350418477478071545100655181719413432317539396016385098396011137598939540044216022453759962382126682801079325656624970948500811066467177966234850151901781566849143501581368987572666384177709746688238469612728794585031607710840460377301360526138236854536205291170069924695744193798982559286379650276894712249146370861963428918753927849065467708433808261342090614408840141291303654815539321107689352440250600305721296726252627895801633240162357997937353890669684855075796841507716084954892454332338639302519490710514170410574834456208851589472713205655280029313183122678620700414148872665488887603134511129026801027320058518953296694859878862148383687141798788546370614970586983149800044011966802066542995264583165573469192432509104734868050066719509764623240642164169086253593372485113640543326737594007991693995664216749172705445085792907593327302510386238642715261623167390374523576209199916162932226236212036109746113064681088093007887576722636332414272244594046461543685740644197217998490070596778917147630986494434294096065936973038176259243097537517485059062225532620075199984572444356941159908633046950958965406390541124298462736790834067400014762276280500135737651888614143657703833093642589276950875934322424715946928667176893073317323124185098114509383243900763142740122145609416615572512968637518275099284122191731244038038567705054348341528941625855832801946289098742416677367556699352168987129334794722209617784518478654334241664335938309353809974006767064940097104466692530945880228957216907865114720625726324341628268059536724682851001638766244137579167419007892938809429209306155959569668308094008567167175724115439620686422534340957728207792073591396798963524371466242338815564975314764720613209130372090539885987528200681203874878076392069566332447036303024281929505797085806346112235616386889221540388928019373021727686688773007993832491933992520728714465753998652373383844814969919093904167649011837585340290790889364718506000834159028201818294861477433061659789563573749567778070271691840875774481596204900014203189115018811686867071290968973513924455839640128395246428813020144910471102795055072036477150387168400634865348422026602683538491069444076155912687796420041393145142906371590449675588963171858327557028795171651187812053949832889868827877159392771703061893484800689794052915817695343453690495016450745297786598277751040216047808592340312201369966568675093128176358375268653342931654469246785171757522021966699650136350752578468154992230010069485908383680545861794785697629275031583104209330411784164600844332676191839417985099256603381193866886763509440177340023258837723215586329921938421445974284892597188252378722252781194529296491866360655906936559233298447558835472676781722968012110691247555970628629397197439142591230841239933795805439707783878254076826980660259543376688503084743875791950675021406425732518387543511250193258871114614442143149639741546804057918228794232205818673840717475083496422581845535409362075257785922671464856491490110834355040142109348580195707549175315366338349775853980736940550833475582984356961566265242091000033863167241603924683429310935706484780495860538915693265798450915687294150119539747469923487874677644375614103853070075315100963186044581586052001984703413885438596896043459269179078338515173429957207296217092081151941330783933740282154185102638956231084232037744137899654781034165686079801983652598213747301407762570211539726519791692787062501562922582185658770241907403202633267081584589340631016203087232870477372639187576167962846777802145207049028420737855460298492725089674772395154603412386569396864644112727959363124603556728267234985063001561832722753315653333084201468180889808351275231392355212903369044764387766194020864667763020350493161519553334940530274999807272159818477065678104570102759751040367326020019704245436749199121659735377928349853656169805973632873578347806822500602461630828485221547603794237455296906367842340972392264017459020793740760717546556481793183847519364849816560853661250494964915906633038644113047103377918606078015108992196299406838526137049990798339515932889521411764057297255890402758481847527153877831633529196412112600705844493240390490260819772996830720717002059429491643228853467137593427651115147931578600890251421304148521292770998010293845162243363304531223135373260739429638080179429012406257438634439610582942954790649978681183202962580454501900273216103287667183849202985669152106326019812578089550113701014795520765295966402049547785017531426728094388295394831999872850626238996197860464088811796351242558397882148653365864115072616001416056297674097287823352841580686127794755554974785349887940470683539229234767061017437774997877638697506088512663841674044431830631487916939364999766259008912667068206805721272356901802327171836206082036427736889543273247792845291502692403967990546116622614088135708987423475190607189749037971943004980354465875157328963924685906164949958198175053235135680314726698790355498880178654989566584203986194954554666564239536344323538564545910761094717630711329354051020938964473394760687531022575106962175479784288540245870616263099339053315189936568274875657056828608760889992495579070811593379154810452978692484811673773944300181408809797726367632875198769296601453347134466504311289274032873633976060807590458067304016101936572403563721551298733891791195306118877316535908032089735009120990065998374212331626330246348306946200286059763598918734539185176472622389739946408814735298813003908240698902323898829977102567066605243736405819003932535365746236285638986371433948054496496755207106729962543704742424654086501462730983448069215936179029532435010846895114774172154525184335891870578560939108981168395515331663466616757456054343611316381590488142613724919555623517838327110786624918865598179347277223792478213169571303270115990102431459431990179507658670710806845725136444685084121859567201474032277245689479295461521521563332963785783261065314831360335876040144345029013093872842614274104301600752807923891344423342406052312672212766913263675292841115921698637918601253141758520436682304633847036669081546570985784927824611332131037980718603685867204947993016822610341692691418989565110448414183443106299935996950991468461806778559575487242667059703069050227357497282809699453023453449907674657280825206017330256772568753377698545259972101342249697384302800967354299364061478431274773279992500574791376173287094290800127867741774016890073311792350598048451486792832973352772838123371789504173619271113229043953034571557531743615431356482754451771067413038225259193880424455460036035251090808018516339930082732199791676439753357117615201433668608267155911163119724319193293184966766014599424185654271709640581654637675032211404094151663400910770399573730594683356592263110700464458456004428418021562783447712525998653378489099764071481697693549832372020529431289743999104645896024605134380130120404340446208357862361117726951363149850642463261754666713846814063284640048403693567206677416418894187570306671297666385294431986336700592464479843725105201136442425371208849986100489995290432903166100388829750722154567298454657109262765880359529606007086590309713542744828326661973688092867993520921639343579981960282837471087908357678197147456299547098157970605860057831545537659529810051531102762463791073989553090523811434559858250736101100226188091940762264071189498097034327913731139511124535647433461580906369176621930442903772004955757481067569207053927700676681130962288488326055719094365793027942829314744635145086680000295374778423880566454498795395683902383068645592350022850741880954331416446193980014426691158017267970765574309306351523529216103823948715893804367573219844412070516296009893342440142329394337340134882643435101155358638400815117915039544344777653196513195443147319936708002674516081900993671961248401853593419634151946041210512526858026608119024415495501754922351480622489222340545743263317863453502262102628898264800146326786182885747938622267487586345102953871148752085147091867152504839833316771396210839621687338115075467434260151808317750861270137166915129910503335577113475706030547062280044889372105374658135108482870007454050238633958791084703225012605953439181823263682267134081400272513359333847679990038702118094397509572963194359117210759922022154211045896901277244510095786560367371502662075234434252413959789728605834929355915213424574127021573729444043438261295518629916683529945179516228333483468400286862383650792266780598869145697806896133064185251606537589494119894750959887341266585420725683196276491702320401679171191526382910529610368735023969532056297327674586291839879119456421338001673193048058796703160306969607724531201764269654640355432865057484585805974906145038180838978475382839852723367655435928737466594867520620279455002820100958487859564517605976757005540984849405582352683728341307510687557212591836350502389285292285840622672646700132118330556453049120361922401794172216973480071256046602928909025055452852494712877330379186584415293350298048517586648248809229198275834521711301465530511107026966041176267778864656615997453946366450721225639287677395484279884520430799104784156352049040073434316715878561421746623053932923480491790918945231243169094513835896376544361586132528209384552741692446605191523195800133996536034013044990826569856300689174779043632865340815552848140258745522416826204521922387698855899667453204331450358067506988741102744176008072794582342833788476349047623475853000961829552893308267672640002483546287981573131738148655339844450518297528840510729960793437748452146327412288037989692020396511039904967948612443668605523047541379245004229355705811916656363374426224339084901143511337632671362166224238219792435959091439680557113977614513458335048142388236199330223771019907927175036691195612445326646110086019624625932777777526111334813363143066219104482692786606131119177185414989230836285688521798334940862576676347192101054040906480934893476605306808749417235445909641077823321397335160752227512108112460779406825457156330923220018482601463125172788658153898988309889914589225571100140407425247119043904923181232039704929432308615339070123292211524233170582204047684508233860919753577569632347946888438432273419454058969152032619518189046401910374606244930807647529170113622641292575860303843016055539854592423849652368165561801783695622228084432164230024675799179249342997362380030069385931268254709890486921681371994187980201651902326832298018786425909962943648735605205370253221911037630493857843413816067204312717315564771034657155609808540853859341922764810894887440902436406355720549002737272850305388461713680148392006834497951767721528209983999577956185274658813127101368514643643642799184611305409959477997778278097788762981779570257292211982860753454497567882261702375601789728644517979344002219174430176659089276083177294031930176281796739154681112193504761596660960128352949851217465067754387072752246298286706666397815883264882697738317384890035232375893075094588406742635001253025087399544782814768287070351608818155020532063655382764793303917473596405661539971734288140157078072053365847510706218753101395439829763517847047399415296233135170514322517474254992115353418290877073348337958835026159686801677009081338234692232167945609365286474735660351447886530426676818462511305636123049390683404151564923657722765213977320674513838948114457475438165675782998369115240295505381357479431753898400085077215465873375463283959099096456711446167224169252816648724094979433368486716037680798872583543537382050639879841153614130521700465924284100942635863580765767192921930918632708535700517505104948154480661734029434122579767022099998395246811377540004560986543579373463078928006518277352750669828248346630998503052275306401584865056944586930609749616109598406339710144412817190293151241150488551730522823532003534812977300476007127195142336172549797477865976961345641249891708197833694379041207764792833788237524292773376988763736162134121678253845737404633249754409899522986810468251135583645606213621719439034091473474803735163310810070915073594189762247073083779421124284603487442990854239955201187230237336572742454662728320452849800048112444695944482022928874661791973184110827166813975371518575701681038147285345443320124587857888723235048403833262510442603451758885462387425758945305826815926345761998328724490813825772355123861153598804398658175139176639773774403331452779966653249476053451889760308494328034248047288269303914745175990098494975167675499148101676896706664981551069681117563647613628843269078547580780593012660903553423596204584354935751630695423179702439793714129828770683365252420153011360481451965723650948708469105475167605772317930738448258871077498721534373160309420673755960849953712704757115718635826052828400332041290201721470452634039131022178623139106885566628058705429383552938116090010456997716507570259551089799658179858058873378668103212734983295407227535704542714826623634893570396041576226169709089722562950892541277366317535216655678251729176844487439618903986730451038822448829128173404968952009235576271818593861623205361947355217247867221897943641299594027333028497646038242437397428912453947276081707282110735911878150930253710321849771442531775938476659456394368152503927627135544049043325086172296109800310668375899875333976795027113633896590748473628144636147502841250456975686478001146960162492888190692784581589433218106776112994307052960746977803883379150195916019318365731601677397550318110895919523250672266560882514493635749212722769427432512185105381104064823524241897693423583183262697067084524056940053080043961460766289180438504285812548192239093126774347869045919624854030316179539294185024862153652685923349183929769692189011661999717893590870633842514075158007652205876255176106488682627169248986186297462519612076120390491876802014244868722252578508185904906376526022066182607296980506970715555469756464242784701412835773225888002953262159073045880742966070435756683427486088836590527449332053230321763194316504955169008191029436787601626660412165445937957853026989165177264513413720047774324324135089274234387457713122285495171800087632209198383529220733304421236509081626448742493903851914037621615863112201917808477420195721857793772945433256416625406372242632824619242366320082007100167866992538105066574283921786744050800862355207557825207785632367955543932655691388380760750098358002242686280133728718805375815938436421705107823409209772533411147898845394129278657521099540766396501803644028414186437583344059858790197069993204210224351478541726624585414687377779525130552486224114155515414066207860103669078678283587835490661117346874082233543958908146402955226192031338582147460523062570967972843475105604516064989427855136432682366670034977890433780935847204106515650147384217697073847046145876721968428148187819581925075005653118283301703018703290904967667571397122335441766729437151712240885315676695577015067831628523801794654858671358695906491578145077240464022245228692853964793658907504526666783177053922317432844363004584908002307986111854509779406432202136430979738436721329786876052023634876733847616006287968873970672748249767014782178781876651432160003148611625661391810897134045080444895886630801856663301984018305742782335973996204153387906392055909777842973773033542053422904293849753616134637646368512362811415477681417979333741213443146935226373175423619074962744864880085755626608759636296065677317569631008711221684162735629208508065433725747961495566962864464594229415608969369706824010445780640631305898384906717786486207621176538118371745366153594349566676729700570212625206062077920953687533956013927663615472789738011939671240540727495679784744304233540851864554445829362180843963142550371283921630485569480919373719663404592882671821535406880354205269169353284864874128426897248375367659835625174249871366421985137289257609922922842824112895098673372591549560711208188155028748114519513120024596747321925524053954291844348888917529786411365050124212440410131569178350633341386889513504864668838289732599573128698981922895646318041456043249504100411806202608246759234430457004206497300142107524545725832786652691386570948679698091347392952086111014900386161458222522959510967140702636958230299363346485672146016130301364439292439077114616830164664022185940161858250755722233372653553413063928470753132113421423049289130495012421386198061452735311382211873006432946649205803167982917165001867224781953081522697039220218488292507859786534353551763292609603990626600743743799125698078223267292792082760153642648345694784201026181950522382494725426053887513306904929525491740447673178000144557562769893395709938177123204326393104951215258880990119941098830701894933281493929142770436289391359743041472374764333783760862990518713532326382267428704423302807419330553782534338335692437110852164295129917685827301764556416497690887950240826696429945700981535084963761890395555348632267949463320086382549167032383585725194240655735785084600949168701728845282180730316954890703419651435472729279955621501613693718688638650866149540039699028200654197006512847502716913937289227410333896395805424732497977395833980601013852170057234861622358192532294350408202869888693621157960118805440456796675874420932125385910339472005976443241377581354591022522089006339922006589842594626112384067978962588334402189289857440082495190497280193077514083288669543355669772360435805206612677923837469823456856274712897890082630172173857660768450657962736419499618469965800260110688084659379026490897233355899769067607152474451456677603624092361125995394601266693022020541332136673614127560596972262261305890948346815871428183226012110017369449200747851227366709758204631783386201603598879311417519215283020319487026859238448601472052661389388860559972520237165643546596077915114069842816008605048612439194025892560671896293929928725892857637448117989455162745898731381927376617237903413347320648313265232263316108582308716486429270937676733662294785183727378701284592051471585414691715951843325800789835308438857809666502967592337609196783996757681699406007884071144377301253749351360550032832905115737421203247067847573170918602726548084851610635370128363151606752171886811984986075478843032533475682602728524859166250888955165958630303225244652124939008402119458256943507902738606265153640323471551073674944945760099003238055352629003027332155638437933743338114049234432797458464826692612306005758246615221615550585311306361844455480978215236342953781113037377393301391218383934721618631625138271779004791684723252424283355666624004958015460512681273093517208701638355787326983656249382278572277821846969675608987988421794569397256805371084353025029864492700277298125571899971453781926132302285231362371563252937085448457405482797213154356632589020757013938318067989466912963304185901366080350331901900591610212185259508016858499810048689250560293589728545137395449996220416287499290492501487191840909519246746827522373602268812297347172024381686471711525514654660251709380155796482209504023779190492103624234395862468739825084510990405715913323403384150408241183272711623808155299426244485416468502173632158770820857578086551308550536480216897696471337693345564066920012058441371355683654737455396884222346353949613996151603367982506739491932519189126885744544027527606452013879709646719534788369959156068096209471728683530570214159915401241343737870402176351250928174447716479377741954570291625948649098640706356947602041941316625004542180242650333433687558110506208671720852804190422062075703291969329504648814663289708326488271908238398646949658528867831443569791883660261743107034939185275675551513851473011141719671468706901330388379466865605678892134342084645151623473337416682906487275388378524555771985704512818394875376916318197379749510527275923579563209926988882305728469816597455400708334901966092354106560312280612731598775212482001397152583623245302150907187879789633838191131390983093696208631848601465191409958760002271570983905543083717145560292405424340106579759801694466778927799926328276973520154199715536841974015647718691237227288648854610023603050863791283649220210538229225975905837820542736319279679588910416489479637609952207271411600370367198229167979703434039213968884780420811807053530953228170625148439641246390090519875298412508358833294100499838189086837518851787290071105875514654515641745894282548511077919693398072772797906700245131330747618128560520085006258214162216850107627780892123697227807858330868403060429518279558432044454457357141831170677638461397070148087430789948242480864513748685552144242600680270521861945674449399064160097623817992545275843815989882623625396008688435650742395335297315097854976116651844164299994518442354935636007850692233918092121974717030378539939800658232297943950597075576305970401950617967013249243201496555031981520949002292787993702985911811321038612469118106099996076757591620059034058803784131043419865852292343161783378894287817029226175632565611208536294097237627096308372501803791877490941997374596092443017012763764285567037845134725686672004984924552145022531978064480865515609656296981967308047203994319510342631711836530275459193514626953877466631408713568182629351443990631212266351060338208144642474832327995383978381921518577818786366526608449366421345677649892080665046138539534145419562473774501347838831323149981307474671275222931721714061177243356091025075720907335426350838702497439700859249037328703405256685355167541523829770467510458265541002915999719623650724199308381639069355653715629294461581867263025519669809211019496160452239943580718526798707116257670270341450947081670025727863506512287355298485490262756036195781509233817737664009450908128799351390931373248712297423833552862145412748626660948080808160524978350493266246685404843120289170043537335427522396741028617136422041814543348371278180438714308271181903261248761410917407539257667754700379222648567029787247458254097047328346405375931465047178007471765241564401332668817634829827768080907177632586691849129807217573855997486653562752169938631385191184609797445960894018824011136512789050428675193247711381362365215910437562948289826723376987671884109877619530885608503344645368792275382389822050058642980073507481008975294629495053060872043276195291002559541120441993028466997152812091215572944152187188710692972722526858803367166822447957107698152466656775828977167000980979435934931774407548941870918609693731301180758992413827849774336512713757673271289966789867041705108784378377041265222067489050298629946518183075665406899598386412946339378124255557661490386774694509174233586922603394041225711485790796264992165367544269507837511636095084683040977332217974979902440670172395690440756097841351139771698330727548122314391967453215065910848265474634178681477999847771575475178928617829912688747604591558339539776858785922386372817664129866067358307134146411226276761394034259858409940839253185135893823987529262904629298288749253965804667891821248575692042844155917678681460130157935810627662920401991575681331568264504040863438336922192569930254375692821867942794424106684249924388863933820040580070252922006514246506788781521126925313429751691562692660494347812987515012258857170388058245925585737169862038039025888775266443398198481881179583811037951194266545161783551790878593617511994362853857080747056613314666158817566608726442239781121360576830559443540336667558387859852830157400316878550529711381644056980134747331960322846530012326051406704006207085759766981599578498807470751265191976684294392094384121730206905390796191732509870820588121805692752421674998653075899405157739974527248013881035646015754023963157985700249482507298542166543714535017271362481350493135209011515440627014534452021996785408523674781011530345616895562539965629368803812990859154072243499133881851985781797825323053069248561116576427014386767035412335465626396850976950041144945076156686099305816057490848277690000471245055157596684000922353875052663674996056754376152239227976086636292030389908785581240383141219044435857080038009903551016457512161378222006827621633877720233670624942534182560663285337439988522502055244548950318046431970549125682371187321491134612186190480203389855318711075583349547746137640274810309261309807217639573329919348981370291074725930089449213493209372797467833470457413743466148393481290454412218362778247876671011921173559507810118206202978150978652349727374591110489917268929667633739835437416541969581216111256414191863096564662425169718963162223575496830783258947750315608149586705245383528064753482177745493933361414685812120085255092102856095463233906502712004522497046806527052070981068901189733853125004049911130818583871188684034855388786255090434188660316316133608057744643669094115100818859210763131434244090422079650271396935873353488473251977162979870257346400076878287889732395867852059242866784241364570030427998117313430038787294788919976960829390802355094960828302618610777294072375385089817756479296066271082920952045623401786790520733724570241029810563401100087281665139819970513899972397160499958268258897814274520774633245654512223807602453264795013026642322450051852115629257837560351346547433474066906308821703862489945857517214657447492698647711537024603945751538294188710508728018113370192631789273479979275298433076768254421305559260153907093858426718506529732329789677781452103630572502649127132402943256484133469257512904752972038548064471433686381438847345395333614993192493614759211726740571885532768011556236008603149019791220412125996878098195210759522953869339188857390344527924787198886760419608456686877023109503844878362266876771201090254601951402392641958483579584260396270660801830110148833664636050996916332601550681369482392336960092144529538522906556379244375658586768494251647775858837842646291295278672821788285992832821886516503963294688806388997880923239750030483268849032457260893996853273511510115746504630178567355062302861062241553062098931550251160950356102143826760897770135964670861057897569276433736979811896219324109752505996636955851477179433338277349920385609011795072596602679005243390767271895538669873747306988389646755905783952754594271317175425165295182232759925754313334949818127457765165913402114680479695005320880081761760086457484577173249672137134241597654821841271597214786758976059183111917820038255317215407976584709792713882480759611472949078865795714486835991043476191906410390962523177630621875258567316687091820764592429665566980845447580585037938172318711032334748533636996306528473632744225513466817875375300286822767209736825241569063231279327262471991522894657635153184486562906673493515016425934047735395353078279229729308896345159661124150456755506225600786941375883751970192460675040997244419689427642639851691443446659320523176906714807199526353695407447120634092555469502192390136981842576748025258233260968240162977187907651273801733102859073065253406221710671314222024955588379904546850628782155059487354646314893756562828214999850162838953138253898853170609782376396196961798481693824197314230808097939172253791627122735312226685397358405200304219268729182803660334515881861462499236257712544161468433038445765989291166231120823849878154167892107434573329727939936138977249417820193535498958178225332987704558153257463871461612283113874318491217452760016261110603421964707164692113089160065393081844001963547122684763077921526856413590370092082017140294017653729547279381119958267352337698795947569847356646933677548639374648590009848035992718812218294547760223360825383166907420193927866311020273164991478854203913490920203500966699473209324864649879763035914056319767340427452235798010027368545910830237330463794344688788419843878685360320093316641968617586991739913267199273832860781901412315428992842807165133987415893439708067571544327848396091944564575315738702792183863042341309366600474295224613097413844353310489351611222487656115918137480545679183214687405850772259557096042880845091591971099574468335272553574295484839587582898983541749042542407856782820928976514876179662665110015176806990885250419043148556412546833131179888707669718023590223734730711117768395809127279434748096516199318039144490441071325055355518848705254694639914059720073615268868033193072715551556044008699255400639665441325405718824597054834698565255244240442571758446043636107186172413530370559786190839687355919005149057100201843645266703908513979214616516139287652486914986398658333062436508929848394192806503306624709494126204546339813942162280052058067737036995354731530758300964853523924728024992190562606634857056364489536436119483415752551556069506932902442822073969390763675593224098547619103413668871881898288072555579762496668259783300541275541027155791004607571743262652431153439617673623208823918001533919905519429743732417879234981108643896418783122270013329412700269845233416799251696329577004141120775007195437603596567133345798480598858795786235340728682529619563955434842175195703464730083490594387164220703602927399657446408968899025908610202746443564056837283537326304281653839782458042525479824330384937285366856717918119543496371876444728599366416472599191526633491064922582389288154428135358421044057051684158452533019461756517470165460876527065081741731083310046772786132923561561625578564505601008227228517705189333000365433694099906731840556741317643044030359124651851591171352282741066064743767265080057153670858345880921824975319947052486227089806170215083932657168069596958372799858487604092396319285593964006725694311112642411142861496827619654669819679258036342720761510174599627239164741618868049722133150081124031700194202506910674001207623971867597960004958229914503554429455233441996006024137196675768287957212562903441193639865356786049921394966058688978236139892904132596772900034999050849899095729374346886258646802009035471502639147724667963020973169192635530061661805197782806654831599320097230532695971694942363550515245950319964074556600276892754782353106956287552300076683796955056942012558866070716367111590663642221137722882851407533577988690087196496433647129182250204865897438913543720384436923444996473348928771782173010393958784714233326491818268332928788504522555975567593266305167641116534513704141198127646083306883552499390614537961331282124204351126612774039163589349845454621682715090624966502362626937329227817563997408709985501044012480571291922819110382226152337461603135737839876112721542770237650100908050209517605299562722835293813353202343278933869391641348789187073417145306631626292999865951560834530625087343926927485078400090419987412700651108714211809578087895708833682929154842156313694382859997809455224107626635777141240402010237622422369875961245270424106521634071777038158383784166470563334443466603347079700849629037651890702297716824577771507529587391086019476393251229061517322158492497074116754730644402166505660588970827228457852153386245546325254920662384694233284653599900030469430556355422444070142823066320255557105549779121355644016282600163220063326030628882141188225913012453336170969748751573525174252676971950702595923189269131799582729664137624571873368623106580335909077248788916632337375870383634953427067035034120220191509970989202032343732584010429834193102557813246658866351178345372100470674967670451154263198445803479557574555534060345608228805789207574322241304989296126941456936177083959535591371656189678491279090782988382254738392988596070824311022831886129524705639740993036448318171610944068013512134270973183301471350876967693025961119153122260430403044480436069962389183512633457596786672350974674624736058608080943046470018491364803773016198537726589269254050756235256548078294907162336294693588117961808330225713305594900430665570841889460040733318489130086692190032766657071144945472601247757450559432017974525934848532046000624440620774164548178830681508327125055515369747375353627033544586894544633345658344156139947117759541966645848846343335370029962619940125604731906212840875425293883935422130035452597997741670172111869464622895163039620268469901264665255488871531125977443485741549283919144154984128101511054193941418046435774295787527465948190132303545471734676234805351897510202035347005228287497520497662877126924901505834757501041498512219859098283925976451238488456274166921434223094228783467755032892635409023238403908123590166813459825438756646398654409350931361643456602278457061185605529850807633550091845749958889880356295681983860191627912240574372104472004552337343572917221239604504388372953769162200056579397981697367996045765073635059317372099123000112293625301784744606111981153782442148195369071522166108456193792959193460933694583922213679394499587969085755491642709987543593195050259673390749309776069704142225305741738524767991623404144606014284580062000004157019235141616829202030854969158554865831341328953440628140669318668457505210302558509700679948606790518986862509493560729986072816035733436688938009041158204596406876962113203333232226169907741620022865500025784452224382985975223803228707828624523586430479211593474961053208742271879413423760937045679631570567349975737888615229199074676917411261400138437045333382000863837974168290196139255401333704820673329627611336182481351624036417927298706078320428084425897616733038900927429333316962546076898346904699842558207230184783504478429029739828973023933585042549221576940624503517770463964226109713411699319273331678667381066285540571046734247191624174804529755248807171117495113237661475006359687700244106239239049056652478204490537728908846471404791238232505428590110920109480393977058021393099708899142331773518733435344902478777694781033539179733822964737906262768633100470514798745651849889361067263260193411319047945623205694865148044427523030825069853841398061495889882564336306776663100222498614611790218915939912165336814704096348662036193463259990457191894163038117310496559655482249775227066702963702713701365126224774841260262271022516826963004952062103754356807985996137128291474139740884246829576257665978679524090731885298038568368366601239404080967191360464566827842185867381074938278235540289391347782421960993889066570171569652363273379978123617722391487430663500414123887552268548370758441058355175567586403183972505250702077179521113766318894126684706689692284627927186079509425330944048614736790292421494302498510810763135098119341307135208134129610888119599471573137887019680094487419498565479665330585217075512654962273163614897465131036366743727615190125814248236818896150675967013485032130449554769260754028660905070353198087278628903140163878809347116638437105330436217565517369777754272481819719657810608656629913046699276701850359134449211028639794527924069582301821053185439547737525296863286158419075118884358775526952935249116542317287633402065798949956672418669699296255806440055317947534656992884742357673277896999560560764263339614800146889593275223860866258064751583922838645265563235789254094663159579459807984097072809435629029757631416098583620707347023677619104963107295385864516585919540533123988146196152320065841174564819536000778438967481033081239675164399316160274358423027064021139122241009118514810983386003557718758487784140472408473291292421465774199787787807129953718986258677374765515511792306197140923381114005036898378303292647560118052230821872036615849968302754079570662088882898789991953424591116125482740272735919008721123099250842496598828976754917773586686187936255107575882138141429878956168000881230099480928091973844839123089068033233763518092990125968969687422246267934868573126802371554760167591497315573989842295416979196738446880113459718799054132597899752032808877597152418863467106512139093670655164726224897384435888390957675427395730427200209256319339298842371883978917767911613470324642176684673421577521179930301999957093920673240274860392187128703795541615190077405916616163538972187152341890855074359008526205355388774516783108130909820313567842531982165777983718150017372111284120392271887999071031663561450624593592540353925735176936928139377266558579777396018579986312914235644603702773673771675187187556392489971817787140265414134587018868684381900283138719294569499775876974166775096922512199533976560115295083618570750926272801435465423596105331173292176850715020711341217498047558533740274945465632290986221878304616332413805044118019931667794628989767964812856004214653846609854189481489596351560357565111358857757115770837547627754099923214308549625645318800547301782940093362091822095562713325702011099854874678837337416044858295281157155997579725420054916881730972102122733995030901179368802456854305493655908507743100373712538225604030630563268622854751814333309763250826967739707447892673941733772300503443793277510282162740484442238536964686193642082291520448317128279144366048917357751738159352634152713495530877085883051380817166067569041495857509052265810872524242904052503830726490049394900383397157975689646039235455601624174332420322573024681850877551791393596994293275359029367057977900623523477922424751127038220971803532813623870452614344354795752045277854840387088164250380586216745469327696537100316568082186013250653366872244776218642555617075929649907162865839874149137609338705925542180921731520432920391974095176338152546605468207973064923597355754212291427278107938299538614961839144893933470439220093025424523211789343074855447720369340689140779751161193770186055945150059829382689190076859211079108792728264622513869033665246978496234492157175743423927603670799069894482192913645434783672883938395920325040109801445352743214678683337514221349362460419400356066113193222252438480313448118294657649592427940122143702588146700324880911357220208379514662791316488058687899926040914078642602035079673062734957439076296936401586826558336893643706622318230341070132129999584135205048418506988174476702002308812788809162923118070069225111886011533925234351486328506782998879727672613318559964338380306969069486883460058699507968683415306994122640456144736352737343012864684070419085938582903440814363082403157294088680868260288064350914102910780511592488481188823843018016571094828590682180558151330475562555597340403069847438957748394882533556167062929874529735706805942579351046708246946813707187467718472402478335030189716338214660466750404934729987150863801956611884894436108575282251594406447013383473799383562684298627387230638265710492039251211670560735656331387733221873310639024242685844149136031582652585755684995181727948046359610569921381706592639042466522541338972525400535410221739968871340006398694407891779047635874858797398749184728119572900959097843392456962400623871430909666993277498955908073064176562223766944436794672885857432571253472863180707070459564828535267753342261892545794103579353722839005585530265410296605676083571925059256132985109051272333688120679165424806255083898786927963443405543597008917440259428048903255336519890346146388455910423523932324633734337167104013101786695586540813940869200555675021026989182554993624285433878635931518916457019200178787298354383326592329290511237958379585153776540332392634154214446776826274646980119601653529584889272272097892490111929492707110916840111779837397094771470219076100285070885965833257953300157425445529320882152478173721978723471259467268199089906412408581459348821468888784069888615247671004908437765697673397424699305499603424862970133620559875077388271631950799808351170206931886623661600048787599123347675571156483537742540480474535942938229104400766505677106696225585614112313714480161828334454592409706963371994798775113650324989234670759033394323531209939692918507860203437346759772045493622864585157774832332434868185474395589011892648112795578628875810897872383017434890203445322440940276738330836348046797128809536927431298405743272252403560613477410374247310703042384381750211048493158398461524630843769156854426440448271703150045987749482058579714832850425174022328258928615809506475130242850552694464361417142459037661579026872148633458459476478841760188066702840305491679802252557350721969346015818682204574521938858027534233474170724905691477524947939808834070519789792778205060334038740654285849843816532299888384910268628967199721993373239406080804088161152853594900507023883927310465392650560163693513129634516131751843466023211513551844085196992447950779200390931036128247060978936734683823814722057669373084217453566445428784957358558813137059765257424095747701516964669548550687124697720202761864004924281422247486469319178580474620774006172182676759882794595944726946827540394646331253634119421651621473716089024971067339380714129997027587615447669332445258016316625187004883362064943265523179494709469226863451460607149516180431098758240891936622621061222842833203052892988480463703688775106478568796407496462709485808909812399274700294221839264415923732050015511710712781610298952680741459051933345514455374094400325466518155147271654283291365016593146679166250059778550333218058516991342913159769515487490401112809214084315244026520792104668721124381025620937861533372134775810691122271311748202046659987462149363558930583771113510576137136283220884200366955191588660993463054185544279899959688939371532306063105276331586552511244285246990381610650852255414336116415531127171412009711194726216510152024961758079334739650523445640117145449918143396627905141816737760927602786838644665018815044917645535779228713897246884175921830354939519276611515364465147156671851297355331683526387130033503409568886411703888892198319045292889952233627970015705990071608067633083724935403242242560669829924141213720294678481941013924952529284397084379433660529669210570080337835876583312885988491465398121944884147784710920379005705661271348173750005359402462712260059675276125274995440681550878716719892410566092288242856191888086454522840927954860626102994951080813526569879797305892905678423731483433256788699539840304017944355759140285997494601505678270214949599600383628439010812871918773800435108142058087710355859864566623011604859328118555495865993940401373162083644171145837627333114568567275286979263337877569601372005018708685605533028850374172234119899024939385486601489554650484615672050840054891606815945543391774374986587032100303654233743353929085982117857761346024813466454125625171103379343440071050306361836573649110708992039816464563102297717184813499629914705459160601808960050012006122219550427185007596113551022023394766176987965176182628733682187090319906849133235475149817924363514615483403351645462566019018185200101417762416345735548950592308590019993240294974336401600947903492147768263715877180603927414954928199546906107598965424465790248340540161128304433865263537312689709880173483915638099745842461399973850520480192262357363378982878987435269643201488942824156258673709053159925568345375540864603786466217712078797136191076615567660489423612763543059616458883177647696542591443629639128029372929273460638425182255604226778669439409922501472013352517722954750019000423346750052825313973500597866693258146388814737716062486892213524672820502979922660290649588474721143299248946459540533254146945232784123478851671797690103039757767337593722726286222638416412828281115724824789358940728810185675471758578675072807616962400835644707491399990019126515573801226624058133101769856533998830232669353288871263845068426661104160881344537426071625974022269313263699735586427110083476098783926361159371075803669055872458997274866838849536530161287991714339060902301402708634451943924522687291057871849435652138719687969089507229702216692599369427535028126384714278098802202728654174482548851339658946717244586631917683823807073863126266751361640826086506750456801407140844624571686511218867448090498511365979819609786482637586511433723314078485825659969768225303439706734266791587313871106858336413516402025518555287301031639597581273193049338872765411815283964116996481847972804025904557020580190414864834673977650472959620740856268326713876742812361781128976513390794100314752280941899893795325933627452527106924325412049148972992050232278783859601109259263959889810568402057067774895639500492123634049915289821510197741258384930092949774363777286097289897360838682864260683267241802776574574841970224076796965139270667558472759345983904292703620670304223624555370612427086003654929060906367925203993136948374546805941554926837114197460492258291005117789719214446869314890868565521454162468862298785512237354590703318199104657377339182687846956013205545444928458154569204102271222988358387424499613970748199330821218298332834151652650184494279738995781307849528623871796073358646087499854709769980073021072910223832171637510961120383053422743380649735016432838590004816225312000937856878413798600215231578440608928513874300698664625618802453856368436982476741593778339364160322802612959527207219855401942173569582535389548564564284014558005271477384880723092178969791398590727240144815269656360663993562623969397405650557707112296490564108487451368146408212096728701880434921632552489407006105014262981126938153105796470569221582131051152340010358596544276933860811489752599861319036703362788159416660495296445624655935849237978002412435955018952256915857831840012300617489654496260322533473353106495894720058326151554975236340769916490342806043445886715083866750188621501395086963732643697561773619244308745201490330606566820496912883026650612698149233956096493373107043603884277191795006934369057108683729145023667961706646395799079975387220171898605709271894930869343940408771850165500520421637715228848339107510085555403683177466950481634492424362505255050101561273753944466879887554665884824258745188529508920821728729820237911505540141366948042864450247910165214735645086210338200891808458368093170198474153182524095450999050555939512310008475893645677732224391846563352354306432195401127667856185578866949690204602173942418705761134833618712753136838038879669861546944061875340377176403438325977728132330942185157209712777386757204771630382412612219372694353704650356364919096588207432343009537857418194225100323505959630825623203569976682872909532734733240863105331987466605434371580201756715385508989629832587192119340145661491868903628153792301297306663552959834194808151866793032005223419894149934101228549252879915264860394032565696441028570558207567385134001982243812347752273771951754156660830788585619837331558691214927404375250643133054952555268183200998857712189254892172660193205033995942287565378876206913956446964159357300972395470778310057064835950242274886030990544565121158667362577176482547302574962659221764206786791149933093155849725257297511188911992678318608126154803797727550993071403573123690016694158480494398280059429705734087965178241618154170370257849553882193573886522512725979184055195468262259021758387473965816187303680885892747105226035111730482485284040097756930176819178871093139925785177960564893908825358964492091253733936414322838677007416014775390267798792763316789578966782917612337738665899602209223680071623214258819863732524958990458410391744344675517933372400889944380840926872746091966003406372062255560410460738675365334257950778842898815616071235097339924036313132017770697163505698306686316592724588257817743741463035562642022248007613707147394825278732865083826088962020165112974369752170569370892660742227262743764263094044300018572277235990569006364848795487408252511003295031373208972850989181214051334402193699066838831132183385174275054296301621004762598430924185695732069852327536723703889541493865921140608624687607577059816094445207462931585078277558132725926716700895572424903100815095845540421318334145224970113739557278096352884170305536075781421485613884002391399963248271132773484379456541462931829989292382575930512511279024729999335012796408463220385296949278895618637756923488439489919043305922733025828746258909901059729533065597739290246292242563931250873408947706335138269660008094334984229670711898533708882759538412618574696432350582777999235749118681296567435560195230370595299477413632298667007972487062318383635978099309620606399428881482342048801247125471691686873577433691190330542343342525224934504555394530436917265647903138900214468624582322607226406490880335606277734764830323216032233986258735995069441959808078109157890035014004295836859059267856717646630666743119662379834985999283156081411584956325086400837758265526125141611598294365707157016488854993298880275411935601980363629108712611889150797705072340206816714816001238044297268464950415104098875192847159316736138591804695602997984097140513743645918939428029893362725659038457019422319392991585403211371534837410454379009237674875586904720120640552891576222013730055367652672529646918962159582489904790327288512852758010279620878947518752019227323947672773448869239613387936861450846939648594451939887833060883173002863493919355390977041622549392958334733831116568291241872140926186803911983626445021351294854930928558653299518431123173559126930999994401157539662361310734887089779422064813753519218714775016582342100115209476335576327109955644710990828448974171930330762139863758221261497562366885110478349553406304711355642744477827593118241561265945004423803219513133737995203815475699244425326429876979993747464957507406954146277124946274994025295793186592363750975649381396330745450901568815957360483317958333736431793147946408703086128686542195423264190353530038032174168031562172945173448189784155509593506237068706844750779068835043737169307762797787970902467943853175189823261853438105713051797461937305976807237724810673464752696264372141692437288492002430915030793541770283251121006433821620454056502139890852978763484819002735534232609273936334127478290870692318121102670659117068734136011397554971181766921705941128954631049659832556482033185388948721493437122955593784165591414330273101005526991824809615402624723703037118895590000142623968099444316639041744835373463564894406496537409977125471906964572096296500965843631902921513495110598929041991867503866531281050203356163470430434033033589612313929802569337982624083468808260952660853739427861003483710421789142836084423799409455569014700481942801621450401749649951421626202593575513318448195180956287803173048221463025862851896086648298011791104330971337850157204403791009440008522122142616529317130230757577189905272284330782011182137355953235572093703738100830664878787236725153744065724587261212514264037943391313021380855102985592789821279958319356056958862020907034479173126779673817476460843218161751244611436613340914270848029171226144176914761287325273955140494265966891547829108435083962016974674690025548277413170049065439455549824636855194550457608626820256890128801851921041791964864504435863025444822211833831569818975220022171211398699533068129219794940165970888183096758356097973309778982617422411394399736852233296095490936480259916298056960667735909970035254829445379332659701559370182264011913841912442036095739997692570879060141541434360245528708207431979349359192391554613030292149760872864462945594452606474603452696335183059208979390296298898623014456280781678434257065250730832967790536141592772042677096650620369479844896621935181979506320645284164676489056464143235424809652240089408838194714852426382238351596916511355271176575518913945113851059066236037083057946690962403959590447060657504557161321811913300322760539697881044009469381580282840705715333845536393270520101527673025012659392468568872787964558256185124042986924514548165752614807048673264161807165902354119540306560898501160732780405237105425387510399123048450061997114234763125380282597635767227846387969015231626211560408546643574401344907443846738694292170907618253507839751066507427119474835464512341686101013119285206815286610051728997920754290490702296009994347995848515008457426016761575769107456918684757743977603820520827967422859692817280198358913013383734144454633849948337041679054470575108575025889596609483314712092674030116962641118491152730426500909116207244747339088551168479371215742728311212796677265295360165864851244320680315214499450073165928850080009691059737192935749852918808205488787251945380253439710020219006442179502083369731797729492786883752176337732057123198189235219015713014605553871171375728660498011070214320313621856858296476985745060032293706754865326755009941537713729436467947653082329495575609390437638714967258641348383252811572258334079325028433345082991934312250689832483088686062351732196145274897817461013814823602581550744793150543548919820151858544813034534248055132759735014026160460309145163701254278398150263901675895138558387099238860647452457377638317835532685370267265163959315445328357612548553063394436136985849454256169134004143377059474022847372750128598618047648496624805814257372663689722882475438061646241029410343157645045759233101046895433700133879181195754888955847104694391263092223128556253299672822182792656941649394534375406036411504547525679362110518585148672862591554759975089245000577816334417882931673244530969962604684589535564743390649118242436277907796488648940755698069554602663890971598193886186678421393746666946181104615314105031738552156069122843138045413255906245956107149744979364533322517211645104342096971453534498176413850929759814587118899401489660702433466701329935548450688656364391573471396209567687854326974478191300960561153774842528250372614134908714602669351993558529338539773218153872066993545336942535271604084117595689041263325007667576995031439637528034646272138878561937850595384526682359979368349253223220551481629939611104279950193005346245460039361236267350725378623599933508545086307488718135472949766813636078503088767500053640978888396160040860892442593326207383053715016142755231188820673322560282665827012311035504320113096753275842512828112917806694717802282289643941013393041433297726554856167043712716376622285799168850716059104040693368524165135763787433007103230229795389848183240800718667707284993768823495966045502071245530176885596833210131660429942467586676840299964633000091949037644888480367632438297060495518499432795082609941795938217982960638336062613444913470259357450893269462824179415388075623031264129771290253705725186702192028219701252345103095076870272199541659539052593229613124152706037059986189413391714997220162349453080462249586674992920690304722414795728932219594508290093441300475030248977365104850540100163800820707084978647316916193724260814577571016109724287648297822105180738244593676254102137517015229787174767991403957210923905716357329145251380630888030009790807003480815547851476265815397161921551075277997463062850726764436506130225234500115483590235312426690396021215634424016629849813785365186436202098706604222875124464398273303288838135493915216803963598822643341433197437822626122132140200555241192028363391854316252831433482793601715951514101169786487756435183933398363382118875115462052703399093921819633918373892615474510295975264778713399367081156727545308882442193307994567342277026831183473938014016570693675190634020983416770380745420200664283016012280456589591743090439884627992592921948880444443407281533054642630961200014677305939449891470591247359037521352805453826499483491432194286257606814289925292314269323101973352864212209166194120495673874707199373956066350198255953654912456241039871618559746166516252208854607727100971244282388032074210309708705314437851251004830012134950253200236488815747821567459362275660406859170048425171806206225339014263199783402916095751197580621932102746892416362724439391253427311160595728090154092312768410977538280089525238959525051519530733184410774645033852333441897937134469288586659309337826337571996165156831984549526402269359650590809823361846936498816260661607063470765595078688185872769936608599923332451255787544474031584167983822883305252111515926257747804436599592773968232671962433656581634639407145669290929444796298303146091867444681902412649509195846057249901464297260299778589427303148672108057076094199313613650229380022194044919418079855070170063352011619218440096786233202781367009939473419953087145734986537559329835741332754232211290780990018043889906936481097486460500620671431650714277588297882627722062051087904898758154392211816470811947986025026273380333372538759949700815294561374292884174094627163783243243429826004728465762956645813955772015275288335440323653440242785543101171930990126309042170966819072946092813137574214195775713811420810390695491370944740885338179396223022455028044559186489244309579285312670856245507949602030558157340768829209765117406105382240185282461508304608580713714820435126358594230060843417289262643009850045459428418576986535972890719072065134885966169165703751430390847528819099145729517478375915480782417812237430972263272634616052443765670312914922683528816389690977573588723709274367145263515824126034447485575064125302432728742396108686769856400951826561279263377650642385366368135381384035999174975182808956429472039159480500359080434826599880845863942643010262682116960859915944084066386674631405727722499660915945977081631020243913385996290660613553258181442006279487250201299794651822962813674188259579932366782378357079116710804387975043373125383713471749803217726943691522507237111554777321329583865417445847820696806850287490758348135058932527872189278571174548317011300783366022537324377206310461706073763338642890642494265655573711108355042043268601210996387611919633383559210900886606970231551586200899165778346940572116962870236862192806408009921736426014576440971013609572524049492453300115441816714845166009215116803884783449465699956228264213064494261046367718510044270898270094445594847852576641787420752511583937900992018965787038074011299151512772386922875577885271841416679600704311640265590409504384189452959075874543734120764113670127811708886888308618579260015203009931911812635420602744033378897277747801016039673157187035987728262545545969200777904540046965087881209201285509163619097381339440252073715837803640047519235582516549523441381367087505390930380840136746068421576567760035392069400929510474353424108350816993194622075083882773279712737942412509552129502532104232256965525536767527846674348134004076200872956169645280837698072130246287155324704238975659489024914148427395684495850718170214945674310177203209267620790029785302827392862947141270886818957266535881581728514900274760605069906379064259498053131002776976520568579445387945603304993256657724213720134639532301259083732621492231461936360888309570200354682544513452148924759505540301398406361087454543935629754431544247334211797575745243374941071564915090248320456700104427048627883808119850327983402027287468178726420319996463853992814139300568765155411588797767194487515002912961039943946677584493276176456635267655992423409955748179669422350761791428648627332737560807430890484513936057594887893072385470475716799431037580416556755227293953104000842763190862884898094083014209382774725481435592795229252426221308772491959644767726765039117479525540457634973296666431104479392221358489981184377594455766387114577459758857560524344699181741662420852774895436174346615034266869385821922636772504579548550279414603448450952417984078239190884103521439151793750030175313933313826005456093194174975826710300423563721689661658078220732418415920934133150702573212019555414806206838251450232518530459459920763718705483060018237896855847155710499546751543637886435222245800151639437626694693595350780387079448486277796261934779657631589047687079205454852910013751251953509046622518233131471187022243384761361301387791636034017117761531379494778588815942039942350255739152028046209696103377758655057306050650610072809324815867148450576241056570768268150360954604227785548815046608014755649209545704699867854211562771292273894955656380775090456776354835853572030007287950645477636267923151931230825358357255625893070818890236587480444436529430167084248311236972825943999995310381055604698916932518764535964040997228659279851010210168900262689921882797764432466329646651546188898753656919933496803359848711253750407184865943059493466004999586690480321666529885150883857123777373940452232611950196410945728774143272229795831469642167441858373832160376660715599725015831896340348465071262759073772226681135082126094056869103718653152730526825485485899844730905421103074752752649137423642090052251889764840147972436967781346438695319010692089684731850401981030262084252335022619010974821617069426694463584646478563112661408293905118047894522926170049003355700913734081328463185205493727143230497814553003358646233761256675521430733557411202689604549957488342671914665783333635070378801328208132156152799431786802598457511417058686091866404722305702366438941239228119800543271828677812593012562639233901893116636305584176587749428572958633512679716895397934220933428263924783993072492601790080008914822882584097054798529618249914721807449248305314104184839567785139591123303431211872892039588685852519343280249920474402529159468388071125444498982217151529522908417955654068740169406818041360472492831936099781475511135977082516976783965927438676656866559084671709402427134245250724058893888272075928743368943600365255957752466729844846065334832093786306327936448731323182663342232700745213046134533015781101985185885110661509018345652418157527615869953457157517693435965724181706625296910102449752831962081409617695456840165671229916869152407811720682018778041976096225144276259453023851689872861173809140088997357940234099165840556244126596617839395695773548022391687273458449641614478578589686925190936498622155320828222755521055174845748965980625379098975675191281256803127334161129277878775827653606718735852041945304171663964276246228830653449573185831457863931070380077235871191198272889346326304551310870285085073620691600358757059774272854316885353439603814299914764405914696684751501528615596963190346505804684347022977265605621721988853635254967160883735967491901966189047437960952143232493549033694906278805938710238238826657576723000997308784824954955931770506222187120813087661012587100506385745222521655600230505045194239701309582366319987447935823519919024221203376231630064492374784415048332999399890946183738682306437059251860909419889995001006227853062299030034587664652841044464988529371010003928839819871945533079573612546396710971353952669895232934974811324301140486632323247406784786694049704912723350734066548774193300858477208342102443019115872137979348644011485292523092842313228796935291817073334508701132817064688168914868853091975510856146499619960800424647922885250324960414130724882260675949304105136174452420702503629926911792719791710631523108489942103403237335792168020453790962434359657630969799238432530157014685283847017437559373630788399797579770853029506512794504039972007679314119426631769298898950822878608011118076081665117761277295789101142618507158356261652836370192972818473735705788344824923879279662464065316256624355311375335910254918382930518723585107530753393523482502684661890039931266599419906495057973294870743848666502477034923199453492901199961475453649670532504323577679694475615489296934817783380599839196270501125786607849993904872479609037226311819357995782874708497741551692193772749092178604328134071307520036367774186293339287873595046621377829371584843264761843363365360842022963592722019830520568873085717161107032267373856208712388760775266440095669562529611439946627218334059375273768266391398637734834523964811408577555784943017140807840744293390888526662104317991286274522623762035549261207242229646889157922316817380821275879684813637610954880706220843396506845802413136721317898540643586491966683397388057032794085330071290349420713373903952809003659821113600105239706811761430584865494561681595088966501875282942389421783305372381229174843684883329925338569413886331287884533610879317591235391957297568989171655380330537684216129955008494030917336054274525673231763619310202426536160272461780641660656848087689322827973548658606015734310594004697319281549149201994503925851991804886227634357803555542879794938210531071798094425400737389537259049105447424692320479099540220414225986248430632872182492957424734789169071284864859292286328074187181919861290867341424178779413894779905067979134266857340804707558999842570880056072095608075626500347651822222836933754201034822386926301700801226293161302955881518241766783152312011251275522618774145786925497724400078772905362805576137561055857430476282305206460130932096745416282153527047765998501299598006351902534569892609635642813003922481866084553294872512372158959204766363213628065510286180617077439823224086313865449274570956849876324573265749521787068998927895477219222583827612367701684842852616112110361208498550106106959258451368773175167885572281541523448056923912043412675151478540825316871971098882434654062407462255507832735857822887457907490817723649392745698232167879194096833464578792560433672637643601517670552734860742631191345032503821972641500784086395205441645100918191356689316246758106552753766508060492290185595659074103201224894919183572932195545367889382832270014096216437183610349330258412759921394980155084340668447446740317806178746524042009241637081178614921661147215100522301682499265830314036190014512954787112701445364185843673175986204141573578568370755015635632219987665319758491711280460304675450938271739258097842998812275784616805079219873718692923622163536152752874047532361130101504463695230447474955144762532323330937519791248111736072025968726103553036553218762634875868280625701416157120417690550669913132580742980650605470005367097086511881556486932100602533971074532915558554943507253529307443673030150144799269500588676195400591519723061110398999142026310711158103984684284747613920173669067620897968603591849437475311350653857695376769087142346367468504287438647443661358346248441195246047233468470782114884454913432219652576931101014614693441748993607414578976550193321351944104379477974142638245787861221831270423459186609697113893443953024123290808567614562044798442807827473533225766969079995704313656311197081189610341386716217464007816629409190748970875863365432230670502720386733180066410114716387638713201383199491112928168738966121755832597298217726240638472971274405477066432234389432916385011884673357721805104357489772237368670978818130970916110075139715397764207444090262156143474470233989570577946156394086541535745153707140493259429884644676590038121109549976873766661578011118480118250586392450514689407947233865729996232741518383981706840473440190718998131209594742843908407227842350164524783707194674813757321821925419035956767026881105293235182353643471675675461226764106745790861596905136744346707713205305312129375609969108034319674202681956361858062527568418244671838441230955734626361847234555364178164801358179667659929303209960010274290083982850451440508040495441911813864403059351189416287076791463774898248030644418869196654580306378258666711154318301256302156816322916523108908770703464081234825812467110361072407758066894301058325214139316751227157216583048926583943411805321921195515400031941261868845714213711127719768826309575810682934890654810613550961060002192182300883478903877925369151225096164160013704713427003442404021842428791364766093211024591320447383310167951668306612500656821149182129936619243955309299066868837419615656914874129211134363181958498324324239305364102673133108233994208461397927120422187379251497074987370739272103536575586597178054454265956209174857175939896329856621936163719148492257934288591976389621753829760171317704903495135768318587110511238281755342116944417306421179655381418948399494548587761860388431790416644723450624447526401635313177015233881437534799858094674369881641499825290014693895754945971256467882619717841074894745486793346232655560270162667516058780193079145426089211237849969765835065717653567266924595608209475728655626676361467586427000344604099870359280075181602624275083894008951084649058022091764187426916947490483402109945400558681895119978791981165016036583127540383991530389639746808699115381127272282394010517273686881757768966574490608721033591434802394570525559575562529917067167928885247070771137227309711930587579429412874494510089526080437656274647643149375747796173777725026252090221870957113462254529377020746182398567217609970251900836365521473635316935911163213422556103393442380503926929232568442920710967986889773736752896330402471279808674367073639066808666953180605322560471955460444330728694191620317087717955721487999076570362311632125930181910322260633393715536142387022764113039950628258749101957483388487417398680257462385748775881999473825821734253608338572378632798854750277656409709842509114592574282303823838993670193217538932951473049048040651738458680505965589355773798670212701865742001928340359572284768803109053503755324849213945790910655952640282468557815240688571583749275282500397319347165602652953351232221493884892769597022071767332152514988278134604566536295323014945195330275200657705559411332786277585841288479016906593312855163314281413672139787178339958599762078714050612600902341989779509501805970308317528424573030799106134757670111929773405775635385019554347175145400414422929170647565739901660323120846269200359308472341721355742018451779864200508496134339851695448159480878159060320664764419396346724776732180726908070385469355856455394778388937355582621266249567088084661934911813659376222360413217772759167883234555431156488172373945518882662927233138933590461585832559086245997497019173328969793659325881281015840781296426367066760726110021508069530058887440994769969595683496613563704293762818171932701876413403876780490156500385015549178544062071000349583679553766636702090720251034104267529385384177561987346634991550928313072102984968809513629047803443713947301924645421337527477243357043740103180826373696289337235925744234238727757822490430238008989561473404923662004021945719352283322410029379573877112251605069305853312930630424121334824239602121249953195966513371747756053608815075439595603594059146163313956736121236138083495819116263512688931065543857578376497512565034492783964419293199813707989549086564035261936968213795596166037443533177626769270721196200950773455133194222188111545485320669511399952258539249938339766722684778200225475131499336586066221156711107420934678527450320063519529180500926404350143671648074247043208424076094943696785788034827395005238216365388966434675644781645066760832777152543410357311957114951051963728360543710948734027393043907654267040182163780302970084412244036772277725389212175667909029090424595756773764157661687844263999538622040713429678842574906889831937830587194600621559879239040740313646549583511429314846470975809426159964184553883047791208420864663640664997935821702025419722144662359130249521694204462542169839085785778600921099529808385482784287560818146543373301722802177819003184730151299541377846804767265469494823155415472472266471683869210396168209957296576301835082638870168068970433216707065102731033418371704799439898777343883216287008141836244045534755906258280978476013566774539166358020782107763217605729825714709971034522814688607476075515307972137745097821283705928951280565282755981153593748346668109417454613874631355856358265224208474840660089454696729519990044402043081633497955423738742725802304065006162087179573762132750863738769171366299880094246078669751352632368519397163805784114450014124083261789495314728736362451503383758074973515576988876225633833436059860505899540099139119429497577650801585804386350160301819874928893739010752614037527426711454056560422597230578094122730850067147784131040787909929838388922562270871805074536208946161922463699348398752850489804576576864091501328245990229896115095618885924984298627567145224749428372822292088803942622339737835082725744784213850521942725729873444580226820912064858169771440328426740229449773700935430066640052166367413404295339984056836593262763641867415068044647970048365057363414797546929385495785825826859973099050968803722486783814061685207487412039092494808924366203425088509053936770535251752944430744190407623240912262600813193025490468733680194421550632722687264688517203633647334525008769267802759677584334136106304281803371936283328069636919718055405546883034726113132533880664237911753959715716123363661750118091622597430177347884213450910623966459247778651152848450813998686515988819159233932957308568571231961289852895522193183698138272914012317502936166184373722497572671536288449585305468585525837353665444048009272722164524213992435115540460462883228495098251033351726483506509816049172453070822881396506989337223697645357216573093172428835480808028962453136804914419002508598060024304799762476906750352578487365186050146034034904620893633799249551517969969545457562013018707980867123912024998347451712726541527942348665315309875635868821404001974707553006925869680823765078418797145374951053166266022332458619999940313375595642587227818732510197973495440778474536648393344237847406490121456403448682493371607286276569449769461322008961524570058367316040995957232105498399023058204961152619260141836289916168106649671067665012758499979213640673982787406247459541261549905600429551215822159346550986682577594826995322293412281346155245500838714338669526050772305942020687526860840846337809334553407714829356164445408638126352647804852384297470347293467485706876448636516605478521982138055087646262969343633485768619705271345956596384374655270760499352159021272319835660980329983584040965611166369912032608636905136762096662396915101023800338887462899038010752889233581717169794868907326618843736654078735908148035528765721412684367888413962634925681496616974860034022556694071110260211907556545356438507601257224510491053977821009397203892079690539233418344637811452482272742266401080643840548506685334618219385008837641853368433756095172063473138830462576883999216523180722241814080292260187582241500975165312357979709865464881830109376603309112647001006218893848948436606729430998770317682420208658762536084955355685819309794677967507027145338661365354070894507476114415734804154021391644534370290036280446306179805415152539566984013093629999663709637436189834378369087524424617737616292420977113980284786222642045835005531364107304577946298265006920711454507641627129313854751578135662226865936319733187600761284041874449524846150692172109947793906138489860689201921629679138676085197771802140996286107702206563560586729124384550666870680636352178866466315836531264888368050048207953068600437619788421478321822361954626950283419064714383099277953756809135665924555792064167463199257769108919670318630589442793076737547790725139432643329832697358726012055977775855254874944011355155711406028133491752381764916725590429618079194256417209712381622373148156444767965069262670392335188510308985805122694350253648299180268563241842304426910768170450807342848116960447488003491857671530290367793265827780249220272491042323387789076082155581401481802253051992246872843349767696266743223008682146816015438856707294322385494706329728732713788714343375747875834929733460785353331198009913615577228433205586397624944054843711072997419839132611999861980263422424155998564441396239183024173939347271932035954536290802832017870444688949892721550284888400146883260187051671572556632749447121687024334942520107175442229511916259554464133974774838423970973646983198661946564022256198119910724009938845619503891459800722687445327870657271084419406778333489628630327603453315837405717493154273512175051493103152151206269192744208629791468420627280135758438416659791805070254574905149009369025684350635321555854579786566103413762643382186136102771075110594893469161262540949034380979477299523854370766665974035179337271519925420541263946659869690803710491518236550888865663851290462879573298167046923780120753500751414466242293913506914629408503176142193879002281487313179897445212207832550055964388736157890862553614432541629066091761641874434455281687783992544060586543907218740385200380517834590668211752777158741882023776631302747050310684303901418837389487802900467014843862867698962271376582895351476668129199428533253566004569314942760836848296661446369287081783373313803370112260879825517175810020199089836845483494813049358476864573239571068730820498772481637591787361315301358353683418311728935715328706708457872515776916785770824404180716867061275643226562394182222963077936393624116157968009322319034635711233070977119603733946098425528274363134798611076250511441129002501328360742744577428096137120743812407750944101159482108871488676169211875024103657497146583548376230895095770962058896473880826562564868527575641849982805794644502173868485738736317110025085526917492319097348990909661047082639169604496175706339404764937650748421355701007143213839861401716322739208173523899327143223676797743892013805097005812171198197016658491027851613352776549669717457007374707109908650715982292158567775743780598627671111063678029320075312058006054929172017530441849684210678402553011488331126504492448664563221458627659601264957351807999855780249506893150765226593044468788794276707121336408524270337518250869933362386821031669472330103700134230376037423173499828214685783828183231097301575534358246961646137435470499221583740361858154893842454478615225329576921569628600339945615265046447474512357951283574909459865641639423715203794401817485000816061205994507295641057883975618490933007794973538792185837232629451764170901688343286912614690517629293958819201223550273320729231997266880582549223920185895363597246932515595764966488207672365335865615715006028884858047449138669533601392724631092667115828475319080482076762321735636983224647108805962108211891920150043715734227579072556136774689829370167029654753189501026618801383992677525107221553720610315727984762872292981332474264700644906533283142199637764663926423933663644726356490917288745221379909265447058785527778352778405180072378636132240166491756463749530991779230647707974521524574133335922370426065539527149486624029146125654780906582802388927011432841766600611269096402426504780032432319543313565154137407259093583552699664793867759773731007513896327537361742368395097087123847845606607909805966158823338809719893821281048214770031783376756605117090866601102269240932307107215751307128566339063115014919837136456502050243191012439670387362867312268677103765736404293842681697903714184737480282565954452664735353059984152990517759820116354715812000303233322319262010810349707701283807468370506248043525920680820455942650718881074399567607262615642895493382752917644893239289143783192303949684101012878486039794816730740053361156988075974277425008420673922351339049937257849119732123172205494670088760317051106818437160295631580729446372353618815899490249376125819752496061451062790997275320093856715221396977470169332423315433369049984366288805725035284069502010067678242868905653836250934677301286875366614997259056546842747491266910564250876200948537218328182650518211784657413049147814281958019305528610913744060547205088023343965984136609440462495355671560789144077505395565181559306283039561647915975581469187810512497562976276484291774951703219870119687560077137758570906418817374689644460150839303534964936397274044784582723643413899612389071736475659413070297706260451503167902733096827502538168562104299355413207707959317445012456928406725157891822141886072363549367962282049510003579639151076651656064037357500962565862124381298635082137507783728722095249814230761349950037057421812649332952430580710458381944332240826541626586484296468795666305467823447924201490438725389849193276456485246416919857122241389709216995795253667748544502350579342037013388379075355812580403469186773758847027381972480749651411279137239579729835456804858444164980545641873187492692229939367368415395398644194216833520881071602443273174465677605381604615419371065321176387542556505811151864788531646086471378537609464497944536764362875894295207411874306040890942080739970614502169132232163046742964275124155564092515589809727550575617415349066300878443745855730550926252818944420681206321739053604629206774627938827676414963856775875924972115700478856675702373175906220873265841457764340097941680729308157170811713825960945468377222422856457035850295268733791488787979140737235981877318704306506921316576059662319713749460478615156811488977651967592362602673655590646737450045181697888897686597402692713691233567387808261459057851957366533480659202598063281556260953482507226696355308184150591402163382229065983700962168675647957691785415409096148954449233744940704864621261859791309540163757175811710645962059401753559078247965494173468822402359448907066452457744495041231558761181103422749972307344503024818354542392217808368482998245452650197685458383462089421792125299633102396608354569227945595078136837372330353584315245373223839540351494255953016349547680416651285582842891720421453523051274080323752639960496049564413977764088265324711601109274523656364923385560612393360746597901250137902380383242588871036973115462888081846330368264278239988155549983399934102140486925745690121057922791687340108494474752662137314626940781672358970633857989321339310172465274417185861018614651724714213975451456923252275088803315364130327667850485934834775947749706079316861849741883090437258404823266916694143977961463710172695755553966634266435346321773787451679770737123818489908730300974024266076275726480211845418827312912410686279473504471408895265142300681090397919131247872527979410846694523342405203698670483516991513056683705701862234811518738551012970604207268448170380898827305885705898889247620299304302504912821635209601118341270978153380782739986454039324726997487945102544045285030100109157409831371457179757930874620575703052865432299222033884716037277063404592669695389927927676837310724233937032255547945231176899087746827158470589820170312456037653695080240982554910631789350108512754974612712488685257025197014482352138022097361880010567161765409416016884693171052485895781749626007216881437387659613631427229300894028664038581074879560798337619088171979148687336257606496601099533762294726466034475246899313607910612074681412587880563137565081915408311837092886496720346695103052998251000775206311971859864035976090599319471384120648822275413196259370560066486074101488485079454766955011901609192388401398604445864553902414800984583885402191066447638497796324533240411084879714110605517481736265629239443898929321340031380876456813295578052547146017927633506319846624793955774487282792384312965482868932539481632583113678650612179299724524823465861299697562760605528051448767004149222650255003109608299262700387301982244005890202914835309711453457918329963329121772406051647790589907457594773992036266172348360060418746098890849861926312804713271952155757665073658305762898001181665374475235698893270763217206998090301110020500014070565214130232460099900161862193596148332267087891702118988552116464491103473172296356391664001343396659875863743634551226975640221347915293071210710149593087979242764607463637513212356303637871012091372752606358388618883193959972261301796584857228554041850223983663139575325315917629516560676702238906726398682755904294610974338175928587395865364025619641444062559146614916877191380750546572248003681874808187179657339312662265892468493579906377790913371073425327707487802772569126413782922991671529042831970844292583526003315471519916966523312886713365089097149512148832345440052995085144963889842605709997901380564299758763067627239973845765087314654151268177455492278617599949941385296838553436470389196498859574993963483928435106616710434486814360738940699665821907328190517497124999117044762806935884079948669336253800276171759922553495801090819853043284926008571747313121372225466712976708580933787363542424243254646529974954252985572892738659263186642697105963825231293709515830194817357403103175814848229267435324551567873167076095769064655250713561845298524633306063103589715779718051988690260927710743285294163621081437063963707059962450246792966781418972879063083937873480785614887201362398181805007849481463669637926273588938623836518744131301263916771982509291615785958095055681847192756031788072324975173198778354179211627160097377487303989131794953494552052516569997049012375267565841273928673097159079624792962665412666393166870931996424868572081637267492657122995599018838960269254697347571921392695794445595582086517629336917160465588543763510300206344744820980743218809922049959536521544986845123276239209836475598963382422196238150925458940670060870699323458423281766556193087495330085542905659811532704921895592230668554100978138870872787610236407386577385121380663473576935321547444495835548994293058077900392458112304695650164716057483885148198984833941129369307972465600851264967835423087262392598318639805567118015167574850032205650085000831161253986160144673794890024219954631353614424548495399434504868099815706432610140784138030374757355721687596387665245799869689768005616840415844764318225240346124246823056521122662387768089581493769049612860742442541762766751832300220483402738089643151812184153455229554374982325365536632520140670627134315211463066440941154556439943862611628714194058897507028905861011384524573687719821921299168516560626197461807812413064702945554615610286079003742554774578311708663728038987743520063168144771934964323370286447690433719701183834176147714307090061523472448028693713135290709807543680072168082276145654610955358364893792294690793960196750610552361825356656873718959619622233721025082781868025361849750740029765341730122757433929609046942440687228818843549732303468477051845026068375256078517599694589768642760993021769550534261626665857460008742969822852022650605663700837272773694687027855198988315146394936586947595407178326231765971852246725289017978164428800056651019141394409812020601562476397664905794110656332785491124576819038940930486810799053258184527481730079828865955761010564230512376152775233900247146941384487631113032749971100799436709087421801098009253431081895755828017686645954958486882381961841140947709710786675426124898826737334839648871459715045780230939230825992686826211222554343706327796535479178379412704869420784698086790168434499513308089605522633549839316088741534067351236145762691241607425903979325439003474802501930391074397182212536016699983690207929428522492820350827325784309160395273857085594815681418478316497566914827452095510433184695095926991730514166492228861317836720437918004161656539500106568569306202932222824192031190702547526761875631659242078382699224106351174443043587252594943368345302450771567542671051557855844374674682629341714871562422471683758714021137856075118979019325466934676182784281470645740179368576785530568201463553375572574541875075137346522712756610367426559081313106767613133616371306430929281533393636242395279885605630406842004348091763276688633663522530626825077305934508703820707008935352935755853063010702575163765422059458210260611045651061538785815621517268275800041948239187687801117618457073637729956993286736192213073247268718248089330915116252985766369030929291429454617168586125327648112069404969573142827697432121855536220712796720913582356394468478920223840712976920191218196238241944498876222125003945562546402825750434279593872095486651611443556183053984522705605150713189201367494793147485644302391424841531839444686531376887816280856565130230282008552466555988983676089988968807096823842242691732541121293945787530011297340847384993798001533322673241815590160704626510108076194629001338725859089834644457568396991664734460495611303801402998692235992266720925031136507194853965130188494058082824578339486071002093641593901275001166611561331724704842206192892297474629161257928871421965179652286288073523762555570731492124191342630985739931890492041495117766090052042341397895741317992848166548917867961312826887428499208110885213846422280842456615554741563365433717369232537527372386765280052629709285530958393179950937983035478151670060882408219517850323105715938514555870453793611580613714984707096719489888634501998920797690022720787481568076809132818854833841007425951334692961432095930805394822701406719849935874697966528744160553601139784605811253158293987161141291250783597702319978154394938607304638438917835307341811257301675382698146005301602187451810669074211944025851564378047211179760906216194780636655428080100182063948090909652106664989025897075070728783213991903915214399139881671052199011476930097632856043065002300854657476616427782373257054652588706478976109987777446219583219652983120480034948789354181939221410780764426735879627538026082204849751315216744856838041024420406500526139137452018579817380690551814116051857741475851596411176636453983507613763429626061175875755026607006660395870404430518006080222606301587862712262852836843666016512650617120851543692757318756723014009324314455141051277845238293761640590996506338690089522750510340101169884053448374351093010395730936143023207613331707076028536517266835317195252962156373494087129112905787415067069393738606239831228410648447369823014126251870435400994635309153740312692588815348350682675081301951857598943792971566637921449944809309901307244573726103718188940426179779907439249424331191104003445386160187338543465026429908660670560806508638133260606033808298272209722636369142922773673879350424466327130090339394410595754411499745701952148098388692076918140680188066235492071583739297539834466053491363389421362566886381602380157679396906814660917139534098727165899395916720286480657111049136882350774244092470238630420687044303758396798004278121345655524784370665133232860117095296736413757184286726686018733828896290026393493076556788828900856922027858251466202394927561839199352127304985220122521320361637297178715864790121460759078442081828980708258830951372193418196869125190875059538100720928448455569180570959334568725003749351731912148010717932152283933257456517370997572343272547831976933654716182429480543023485251793485514525218355239964925559521784644710356089165335826303678342405457511985044715014947785908688632686450803604698498406228433721237629414141883099308757799832503994310727408759039961981040694491438259745591623789401854482334768469184002954534502908032928798209119039257873799493861602316191600947243635907095459967566324646295822364625451434589097541405809388948901801464092297683279038958595912625443588939265305704400796622110109058451745595137786826125084611432104864411969511688718759526282895351429329513080199440883248850732038065465210635571446033047705040501685181419270884018356453404421188620208506715977699849098259933337016156939692524059074095453200941126582808109909183523842725376769015996781332563797304258779451916413538317685358304760047714971599789767931704119273080169995404063611866943207692141479231566647481124242584176549210128666548253326152045040213494581218192339001181515311915668952393773808915682247963069220888862341005656475583303879944771980251949328147271196658139903691776977667581004446593774555473573442074952262406260367059349387964458923845328737433284488518025146040220277517745039430452213522872175289029939807552478788765492980869861763220242559450910208769430423597264650175351634766341485935488171461129980465532668988122121639004594195292758200220613824389053667089571170292556587350948671931684227357800406276002667098097332474869276868109361480984705510253851620324958133805562852496011653108883105918613642426122173257334767534116879021952868045765123573736262188342435168496761689255994450743820862932009047798983666035329142697847557405757852367057652568067985753452642431958452966380422260977854681182897772178270524910477862936778363477589622387330060704944658618596039852853571793274878486998496114769700922909672915451273536660292460464083013475910302639493409638184178227818790507044650741200128975795586148231912898817301779211530012058351861950333122135187643492955356711830177050109592412958061134630466507373587544824950210628801415475819018597269637014648287936414791787060097071179306127517646683942423097552833033403124103036601669682905671789503784483014154182282641657121710567438888063841311706118297751670508861144004879424746506188170117710690335291841377621203280193068028746388586997318368615683209361540215197432712422969495967617432045592168410514044907376484047022285315114558883458294203580071655209101731972151616548108388294984576241057008650551136309765816871553694627377718610448800825027133598984320973704524847028151271649360492270134776353505123547336975774966653456509859864014470276099976608002502230715457037831896752845617508846650925119280170190313155906814693221089768902092882384880881346068155372065240006740248405840596377258447289383606554642407961750747638219427296352959960051641839373703283844781802941285712212456078008759139405686263134826176992039671664588633498708942911405280755934592112017741297011208071552232599579417533623303101473927277371002336048235697094346307706786111188946508899987351648101883427096569665098961914179904011601617416391694318729314622111951048369985099346545380261782355264846201554340714459966105201349908790594112327934393008881743466029553583798773389160002652908498299697876906674469077096616489729893816742959588806752592884031648157861414686593451098052094897317410187354409593079623851994159488731314033924961996839074730544252548997655985050872172855071253277460389537936336868429854613111623414009151938696753314353074134541595036675459508455513769804640615453016432912975923778372427549239767467676727291110252179485368880389311912826323115094615572417303136202512813135096835286122371090367645977523958494015072475616086847533958822974544116854684387737137266600403500145364713099411634916828776739740510233062001648019451478605326292145081015939772347582643727288961622516124014883557038829589129933281269151427301500253075906448872807655294032315930195430418240785105533803643960771237940215308577446158273686374372114513872752848407350725419447740863446659095583506536298096746136309906441858299394075804115835198720124809508893169427047569739272184100719361524445427044715159283469210202619812282210877554621157622932910562344825559770753380900804600059977484708655343145832249366227122357802320366109507750486941148522356339266657720768977718419627385834223516550883652581783107466927060400433162533539441829860899279378813357773434779659235376615261081699106911161977609036094111279164378233313816922320724088871455794721909444809060200842695539503280507977699062134362737339583751568308504609846396598852313866627598674767466827498506195515233978019469548462918010371898042961241354461144168555330708515458442895084260125714594943136801541560494872817320017943662938513300234546568015240968769506845288433926517011609501203330251060529479466964110983386232703367921495245936039625858899361468140199891071142200162222023336428890737213943423172751017023732390210712872276355399877378001519677090087546700764439284529229584224652304555950364672618281095610157482841734367853823393558257702164591834713114142350257692731741932443254957430393473404836112638088664636615075622516600129329419971383478297835055300604975051738210117788118221765522411309507997867743211117443440758736442849716094885554083594531214420794283802754282069499541707201762824596518538281058037941410401233243244847686222283580192256762144129533901971178250212613497598848854284175590125356382732756534373861126152272331820966614225874524652079566374724954974045932575393136259618034941110497784423046884423705909077680225515498827544238262118409984557304810927223932541089683884512628721566094367118255556718784631259770914755550027537847622513134839611917133371619599755060551631876387966748033631565511130045351706554890655904011094319379277246664537220606975442135577106379140606953275272383894649069274123887104468006883239275975725805176886387435540430295740810932647735119227336365451536128303457831576462284097803521808122035690956159374528871066386317070507496079069643496437409664347940202279908456131504806409301155043709655934832530875607261343601087454967326200900334386389360571303399114088263890817991448048223548115824420983242656358661316509258201330079866316107357860677074341715593210980040545501280841696928634647108706851560613661482299069336060209557738129981948850122765645158281611076114363320872043507808101637311332509692111929890685794014614466165229400378035282704641896782365465698797593880169483055289848857494085917205557155199017014829248289190101957721936626502953103598437129635323010173730446530274314700460024842599906406211678820938841195298304306094409241005647949243155438387893882628667612645715950189914199621719586345069875754503160319705871605554117264439570065083755417700345818438102424669652260631669924013054799792471378383989308950879549002523532079274633191991620551219549555506326349150223369651504171212598231646617003647947107710824530706934888660709252410002525287774267442140455430547511586483317146766753541480815439431320399351160913222612760812959896335316691954239792817088420488066267762450284954286976618988887705649268751938289036365598950125440311604935250142150590545778395554492480866390601993945417749305654843044432297996408445825660735493688090124640659355956579829582019788643141879157553806694394089496121117538869624079676761181490314933009902143026824519465042271167321069874553978620468356628188498892173062968938868634825312614379008387272319024150603865953629528381434872229053580654534713498964422120756726696128617015634774312530180934821478462529453287086680844807040273660899453208770725416186493211070731247169860218872023460001481117360417277667711654579057312556281780178136171282030803218087283808937427316231627375059152930414921595063009971940787130004450264068516939292229788605074240290965726573592066461935521271556945654830746757229181224766392652691270050813272511825357676179553462271541714777395060030959794091969853665731888236553265022399518805479083508809427841202922385780317850691264977434094187612393776563657725228800281154756532585200295931141249679041367750812159066468217290246839616929689710198439737644112027876678248089647324380752473905362508221953934980229547917598321445931125145445546808619161265259969316184269329707615584766544356452952298554095203168683836131873227200085501402386235917375990165589978646484057401692621814765465348460818304789365093550049413521505557606886208844325313266578991144915851035401679870796691192117435346499037722922086230576395643852060271751029302416575366525017283203142955131974172372467267993241321178951393786731731382249034890602585082722934196592398430485232976956870051063547210181116121301133770786783364995557121164174721863973789793098255490989217761501328772416648870676835712666858990154810787417160841664055969258261923471139645676393285405402000080158426649290800489361236234576971702926719436785008734546391318696269146207070785770267333377228552970055994475858772022421371670402887502225847573103557758545065895165234946372269491475760324072132381296718327981526281315843598449023001228321008130492015301931250138928313693326625556091669840226408254860065324971962653917593738212945391263106491697345390102227643253637167511863284629189547000925776761691431283376229378131188465019101993078850889206215315533951900583895190234234023778158978612016829579210727467970961587590880914021775314468637786827895413252364366863077518532216833689789428050172020016677373920727787371782875499444667470531169277847804012479655630783998825655448997552567005098064443045494451910076564180932567533716598071366899792810570277096065010064412309638445061321039921325087880821661344679222539703990687078362834267986940686386425762119436994242929667016722937707475814692248540674183698027810997402077787998610931943058513530703418516667017795187009680395020329343080354489770641560901403454012752506301358961672667290314136586397208949430873010713896474331860300348409845692282212843663814655440901864148612387381145789876312539804549395511685568865825091756208833964079861756311258658422358254218905035460404555471418834950471892436052945770847362823442732891936539317226607926431990211895464348104424918656578566312175935200897024224886753362584228956470238361947746921270671755806991897123983853817035414340006396632730860509115547665115520613405325777773355646551540709317650087039501519888269988389720603924714510488691481826655461978230556639808427612947124199582266341890117316686017164208718590086116059454509165011359900749987545979171356819852508040766885523220492207492454662842223943740396475139713501254978167814003932413692447900698663071158076147974746793987142150427312638196549908579795162211302756861118888185032680375287322061810303705742591485496167710151860672894475478368530447534464611423000539983421172893533405043256206731046485064615443373686202177063349197121840845456366601059196208036312390095965545431067807184951595612316694779312373373518631442309483267624674767881241584487911144483580650412130366237213734904626035734591500191819870370843701038052006341313082884003323387628393566096748029892119408463545620363019033207192420314163000203639869507434240394088830988271795395491685527326578777178197338459874073138106797750862503147274842283975447246539409947508525843185032459723958156342390643023758168992069530382036354446757504604268792434062803107305761065721825261515468446033868677494023448360387231738094392325914887000398316636201486777174756491671672120236710155088436408746836010518046251647882574617712100262926575629739377663627894343620672885484904497014421233945550043910877746447763816789154060728944753328228666817417173993679595255159083437067090354402392218029781190446742936216641544560185851156225757117851100982563202701804727189867400582850277437640907523552963463411605979467521875799915629770245394756723312650672408778146428497843810683246987138883246613169475955323407500485931515677790008425067729111415091048356450564917971596636099667452425912010973452163928340405564458745354937799027108977529879439695046100099481079960663236707949740564832148278701323650044301976673103789488360964147726650421671132659027002660837313925394368281633856083366602411784739797425361433259756157503867788551401792407679634787355486107798041659332932775783249061155106513689872923934640928711753454714800576214244480732447909977532609248165829070971813157094734374315016950211330290310272952373631719341732148825281608320573570831597761253377675341816517363238038002571743150576319721848186243847296275801481287139907773581020808243894806567424414631669983917858204274522656057579467676270660710096822008976875370693508553771926644488059385896226297368256314310653464444857559124856988721571447866696371848169691961756161068235354168581284821071873268430660471278962710256955469250515774584183293963868301088462731798838712853876713044179484047969072177261392380358382210232322303638117379790924207951620004796416196875416976700312374531545916164568808802768978450151657609164922270033279118972039471098378626623555874203429282393347029966617189589491559238265628143439147000084849184322660230252553403187849232930906871879905351010748870387769844723056494692875372128461939567120326580277527204223879595300156219198230598782669908560392718074764493426171571787621061720966752157515274362948614414332622167435249205352848540967570405668116043759096740430102654889660610624393145535150500442038100377116163320298381120667427157694420087883069467972451950695486264683587246842539628452786584241578997415910016727430264439131388351347958037326762018137077899642529331621187982822856563289990517274183846125268924800539674435239573826179671594060145152684979064472717434497997513708472991291150816675253458749113297594295467629926795612969126084340739709839678836416117533782956453586848864237517720393906552481452882683032195052733602889400185513664693060419646889130740467522586945723986093753630347560283176278496870605781413443199124750135102343356710051945287956229099949920744193353223119727001413161345346868661466964285548636260936091054280899946434282238295524252187374391630971162848254287223151320675896970093566202085520763720945167059296360380934492605597407259107364096687018709000774473622975021281715928190605869874114748127550919377008598108628626702631724873948180324360502898442354233094914095873707554707868945385336118929335537489794179743219783590081000243057105781965715152123682719158942170683604196297097447231125907373731561373308307472665630746108714899407500634778936101794705838801344017724040132907067103476124408511872892697797382092315539160674496666361579699079221822654666779633379565640160883639159119213195472249316832582292969416710291648841048963480636555495995903051893962865550908446087984110726510270964320053804979113904420778254551372066308329360810610186464468491172805542396754059656397094033330230262654800993982590656369726378788857976536078513898736518527102616603243386653059133278012968003427359365390481624487431241218019292921986668477383137913230770542199090420045583123059276820493817942830719724847353175637091223122617885501841605417732844696540018105393367542293596279253113402701179218582571804990917976736750975583050666443947174561006234700517737607699789729755608321653104274917374013541051696401017848102436374520045444307288768752069879136464644934973553130885383963748915441234788092578633785524781088894309310941098288351232726316855865998628836367163982311220270192162252242908793180292933201191640908836032021537353912677614135225541574713213096918500209420416356071121874537432979988769796814681111286966352819308795256753450302050518418098088444985391691031648242239880195655889211241893001700096312824186781022088743859957591508982096530272892450040840551105747023938617370652820475302610917152529218223898579166169718194732556125185066968068212296887544953834183592873374267886476769816888365565112936342831153065201973009417896899872322264315270191593616208755634264303979971003386686946899623968208528137170030318893438966086391888727990170898937734364921564118798356299510637057773195566433821948260783114413012892317384693233390947296853328269477790980302480507424746905967877307332547817705834986048857567997981151468568526276797749114711857367795103137557246611300541346967866256586964787708130552380261895678037962110309969045981613485241118564389665607163567716613412636724250327995761426117665327986053234454043589145400283635633983219622779471594974776809110828089413079956890049613383624300989460981999678867516963890090797365325661206337082983705605571613099127762921491914562656175068623988866609321397508345931969964888945151829888966652522786520755705876773053088571118608974422859272182338913486423633983950103633227472290317707441036385064488409294668529856235215811515281000949771150979080997265624812121422921677304176768077790299529468933634779706069679316619150077733044243114769221337939584271093455691963268031604909931531586933955167662177716182093846423435438941739195523780534733719709628805405860893468442610214191714788273465027973110074238560954545107287410136809473363690951217452882821281355792850786161399374553320564026044861339356470040450485899415468081205528309138857590386218732533538561113107886014966111260918060914739838609532860384627084356172231217075292049120755053486134209653717495193348780387996243733438785797452235129236220765000757711283539714612133831591596862724296987157594156512981583561518800764677570982847226113158036051001322659232993010880723699923455775542194264594075933528141044366603313357511404955632729211596239756100165832544555767482687459331513240124329824328036523569086066394502481988276044247884964750942245789091961575731361914011781604141756175402056308639686236837128720050724258212680893757158940015361800332416056851323423442377723751806025689752782054829656954876182862849243809408626891792040419590230296395635693966466937212633587998132601640672678414662240605371207937895864897352907899646475636372434638780600667936886994592880604955287577454179719613603746579773566418177099530641541375316232992183526934064442053237399285861399690045848214097351447816164265566024330740991888878768661770773690310185350291552948321568218120840030719331816791961231421940837577532210412882816491586341256579853429090879028135681871376853725478499038709650248815365143105752138140048535772603039213962715890128000435427850616767341342673388986947926502846125039274640663286890367558136573860861957324718552063582344710567788387918262123312298386820182342708848941985410164765713934172543846354472947042639864040268403760972263102614768876297133815720968346039530738242971719124036396314842929474667764456211950128736962949083939772587506090824076994027285887598661595535435958431472603116668081151633311022120073470419682609364039196486860936079704414279248931923704144927226602949546346103042166184090887452630438997170181323077214539849335687538692582336910399847964909553986173539183861861769474359149170754305561624467310859378399722077904196639336170685236102655402882936299834610984463272576994679798673768360472844755627870081978525639740867219841579104754010464416548880901133311213238390987604686042902176958696472519972251315863255630778643695668036331378024855312936546464148047390122889959931329477262434883027880220152107330427772690994322757960740954273448842105480013725398732538893829323263483702025793767483883817062684655488285636416085673645173662074437633260533421735798438968034897750082666698542137342399058845709385149768134334278118475409034978716035850995471779477446430283646711914081089454952217351790240224804659950211446981361119274229642381994883669668940888723990726766670693056528560110290274565732137044343238053863852930357350570832142434147275741875907480616213833392317761988798205020582282656716474081183605474733606109600265091732502813693366107297654004241748826747179168754611438749305594054640567957326440699234908210390030423156710830343754572377216935349720253848612827740644386003308027384422946224538135906118368535518704333244963555710802922302016061296566323774538587231444470724244951221479216502161992899873471455861069374140623361221855885180914120683256182225581571022869297035613349363007355196591377995669918492115703476280739556553145355652683191667441022044309758258164380150408440203188052277507557666012129472715574717986092045783914314983178670225167548320807512044667814835318581047128999844945827082798808319740121565642159966827588698248098983812525953868967968832556993353896977076769636053017926267341638636911358246443317716182720617824356224809046776017851805238221644920136802782830555979380801666152792380269282268835441387195707322248715409599835873409291105132839150300312216257620286444994430457440224442629527083816065807246698585342623875960354345354047084093581809292716939332485688994775233318198110900706257015627115880210401728677340052385558379882294917251090984815653742904969277107336306865191478709735306232058799497342150881147791551929185243646220458357773519797516261417589561661947260224655681052354022165897296772004104021103519525900058019190154957733942596218799268889161754488173731305298310829926046410378778613101733301382666483438055443460629472432562161530362473899214183193383470105501369472988198903139770892537774134499761887536356630321538987090929367141709826789979919131475058526426344654181741962493653018751450663514518701701260271255880427631465176849148411656329061581957613446166249081935359641890576989508372749498991450309195133864869010066750556953986616880229265268907935137622720899318371193410095331390070037192350134186603084556730217173658586864280235393737271109050709264186933833619897681908523170007142876693515593073886220966746094504280808787775835310223065928145334502011428327230729477865714565054641657148745812992000296959934913236603523720187137529258209580321441084804179152945511474288816161062055367212330270490790636512030800931843440639768736732955028293406435441049139256596258959512510514295778239322750004401016873491269065886197599438555833263974018539005873887473204711503124479848041201645749535178291752824866345692594938280886274517732984049603193644003179509147691725423759811023998168605096021897477965765824993747222522818691710867594719259421006017347669940747421802240120590724990645055030314843137157762574110325366795852610787237409221160923105932977513282183879344882935487204254800001901161466433996824466158457225716243229988154849756742364910810756714847123230380070229602920260871980892986018306255520003298662326039773995827480637247732152418002838224369765647747397593328071716948373847107171059082819429584513461919412961218506816152332207772568159021458632489337948092236475882243170925632371311625324308568981650562072010303703056135171240368446241873182877017650659576120335586777809671193921230546108755850163173119840271624776736507299526245797830620900449924795900780147828172333893760842738301202151158408272345996174175601771044454324976672178279829094894547270591958833836171137196958510063228805712889268452277480911715093671401545771576498343678281461655142662078702381778638740723876800021950142347257681251640702940660717892068446364526095460686004433618539084839182051294547395735546440815176076196699467231941485271181916558455676964729761589025553277663048779743113917000472944082466654689551646330083989088717127697988800880102108828412783334130975465378181364391909101910213481764679190796770992762329877834625213005162001858736404475635262832332252385151584499026627144914912451950716356975786825361392829250780151442449063160331651655551452112510297919101049588241273756223006268066281018500588786880469398176385964325937157169147096976931439539534066317297421081323880410513960552851222381311634271455627614801966349106326901591881115994052146090829836070496741993357052269119619114628736457951606993203385360021128848451676560613013331991097245014274577809698039312233514264290760679163755419714741129588637581401170180953688748215898588743893229412128171846810573380324032720140219401821220188988084812784795643967014387571883520906604310153787919001435367920343217779135484893431719053009681007657590034956467314084504166165762798370243381473139127811716820046617817063062134710482556231179613061712189219942535155472869494659648161462981767321663484779842633759928841148195448769800144335116405574477719861558898039343969446226301291345654014319301777776342024472662770393059794964017552460669761060489013321410615132539013102136755762083001810110195571919747004273985838136316009780950385786323039579088168845124784121009620230823884937229984318563720296798440816751910308683411350482757505140667950817226118822761961994729500703048833106070334352141042519896963613388068501972406670239844936643946821134858037173324255756753802084719094059904002936644469526800382683752728283142840830736619959379452464161409359366215129419407211494479617911435851475898597883262321075187898640235245457093623355015374002325936133854562051167363755998077313419965632721224738767843406132497972489493532806857559182197739390407331428517364950576799312123076721859660433091981273367887567686537340205580547637455164189989023607574864662552617912891581646050906430022243084781133311536367647455248063831853232338238000030178106014211104203392707383294612676053001323569553869019160884006444995107102665354370964705561029073175045254471582846175859056670945772541879104680863011040369027138912622144019418100488697345707926676779691071439902996269732520740077065687787587498190820366459871024521256610313080114793177196183903023912571441516263639122585485295577893465724009080665751490900319793538473015839183786895151880801615760693344893481678979581809144339246183720848330640095739096241835330120066269504401906293646999096217638759099534490754090312888196587740849302153901167315370252167501476192107444153459407130245613842592437707798018788301918376276332961181924449841683701435714325041661826624611446305091208080479160478852688415304212316297393817453600744742082540129158608585168426085321927356719725799857732155677798890056499412585142752565874119151340874960094655723054312059813303612120314295022758118445919838292469894664281888094475672743255528669179915821656758890314095955876260960178705496052710140189015186018279091445632038351917646142820887966045631394609663901902498507318427189243708878039780678038934152850943621164196749898586310422703526756014099342124226270441227428516621331099687768237341927488075997337481291642055093669904357818064511518854257816021050705700001732897841861445044493198019597509201448433599405450424851076315408710916047843602175092364833169986325887689274789281710336313338359331398255713986589759466369321377361844160262985207788600773769403542886810615364025979649268271458074910155841503574357623123393796366395923224675561745802795754661367776780332074198348253906066414435992741015924792088870053091459333573533950064777771735611033593480005012983892485799150042907758827195071758913170839862119580025458741636700490832207849462093082964664650735975145901821183668982574318502181012048644938761218716447441427397479987803196570203894893719667178614220828188546504034584980034962743035991025776182715858359692876335906894459511752679381728294524691038942390388385741666309758811250853457364897892155135029873529915631088275939767402762966260088677834765450577347253326178713910642356964841402158905675038387991782981558033993213676075814926232930511449655883111335956009343171589031129812571009622463136936044303074035339865756023832593105661604315730162000538617519396412156981091643124336281764570305787237127721758040383542437184189288304497635725708735202472790018270318288399406311963383117141667262348333585716812679668548323572593428737451030546852829456287485100367690800626002811608337533949425603463783112383898881911527289277503083229396734707705230091687299132230572533525863913853913449341884902358413230996762128198492760869077419745926356542389188792580110971413394130033671844225553360627571223089665631011309809366753678418466055281878216258965347320791192495250209369700712689966941053546748594098080751502579164841988320243260498088156211691400853908382987282378403953996469168852029226918630363081257724175661080943780332549501315163926934928533708669648065526334124103803979763229957644092541191123318137389877927485422237700574154497857156411846803043127320607654089421806698418836393523388611089500732592510945788721472111728417932885126565137954909723255367154823656436775411300305707205052637924767508488379232613703888468369872383749639250568765753545992353789410773663578216795902990351342001663267988387587473978872453210274290158688349340140037970898400034345197984269874672076982204954200167381226167371789686353109739870212504817435957034408739096001571959868033691138453184500537795121297220842909618537519277387300642928585986856410827637912877507512276431827664499255388429530431199633739384950566809065695178517172274367949829673989709731058558265514965282348219149234788353451358812684006468189031314058602674410407148081474707416438459064538308467358329367363517352224156684053222149411633838310617963033174299601017498561496122266333704141829239065943381297141945546693144200602304704322212204792535132115241287058065933107648571269499473623484132018559091658624196883422143637066504882164685116871874653167716590940671591272776203563703887623485925169048328373737536702669283770429948064260385964088097894799197080730352418306200433399180044183160476345904600769600430951315046237039695627972378750711520209963850658816100782866549961605524623643178326562811530862648468681192752880099529003624956491364908256744860989111458629611259432749205653639717553540387776071690507704754145078500060975581185488473164765513580723665433012659193982249190942295714862830003010033680220840557649143275566998927090610340123986578904586669883198939635328730652804237218734672820876842006362481454109760826021568482184619722816591772712029679216671035980005670761437815721883705317845673618980585336710214226276531311670331940655917372967415238873158482509089557032726394315560767701669476157095807898165180778289330148956568966929631474519545490529188544470031462257990909894468327557950933060022957148803935136614253748037607977467058554150607587550040267430070334071970458670019119667946623063295196684699170416364961857205640118262732975872808027226441403221369886170448241562104330960842269717269429063415005343304478528401156007068019315920724685424178987782521051514101642305558782344529860116295923098305602535920268407545170645682709712931522841259146141649656355417770885740926665686043422410844674612204112277082747111852475225651486431038616612683943779724477422461718461634199134524630945581357638001819933351660634387562033187221001330935604327593987369393274672731858964352079550252277397820303376900671575794114144368030430925955150455633826255291554181491163810179405455834817689501899082519371571210905374901812693131062346106917913998372869222527185312933812014994181968804364692820471892719803645196989150826311321740496319566449890196435131934829585400838477325824197595102264604903931128396563051155780671008727854988253604029673136197979769921209728094502116492842660391475530832945016264076473346624179942541360625887319527121520400903212882374349648362764341478832405760961049490239790643205801813907909577477192566710766990216605097138684222316760884668206655431780340358483056176197229342977793312846140838540519086715844644440429131479555122552250701588861217843581167994554669934193438152555880572436770027574168026705956342032276145173641791995810291638763304993127736781607039565846753577808884984826445198619389770236519031119806518308331036133106069252125477155320636077275770054267201166136038767108961793034187276532755791350305797521012375691135425014425256088837525190351939917167697095280660268560475811753540825906502247588404159395537507977500506611666422140461546920623403315470771993648467043972572862316549515167188234049592891726401062631007659481764288319895311591287731427491576001060796186132220472339019479102817746826973182319006066278159112793674954679995629608625265080615013226064241103081157461887178286560703968645342934764443336773444270923328419516574886284594764557851972396839350938808081122130001770499243790864050593447904888929374563739174125154092235852096121748717469955166461721633189183903489495546962903447259098820094475533064488939310553500727185254783396081054060661786992794654545735934048716227588273078855011857511595388526047689279799238354015111836860884264633496262288100303676236041400089119327251386089718730909509226375525715635515610653868215619864841656207470264145361732766792150764451909817161448862188160235893481316023571098893868104010103664296671904980182093929819372499575648923473381225334554505994452378702185745326382481793536131763576981027453769601969183202549067774775656330380549007015530890165722102385875908457618308126367589898385464575671573935088017814920457935291492141168336651613131790097669983300498412754403286696245662861233182495659576965410944317596750144487533479801288947670010846907929591144038860276010596908137971450057948657081643891245712933248751685858591302429826846002293193223771531046911926348613979152139316669128439621040214363647808110631028073152711653120171445102514326778140587352964401853935276885197375716786027139982631233072434424543661290418700319032677652403923598453841589865162762945298980090240776995398010584815913041505332194639532648747239265792272373858613802569930334091614897229566903300576835030012615040986604173517601394170514987325658321205483842511663039995919969766961617817846166103855659932191529785951246579150897863287837867215202136138378034773625464312191631686801180142614150882562146856120249525987074797751617046782683039442895482698308886911201564032142255781707266638552670760342418279826728108693067616493762069558170248954575867395078451133302330431885003752270925531059679964349554940585681855205118078082584774989883447508442495030376491847653873097965915308277822620399868886840417970294658434693508679676451287699331707954749075798002006589025930282517168216112785008047706554265366464158630160976887410916354850701445942617756955185577665532490337391651842691236183721508557468951446283365145322122182936743799567765381115163283931498729858655278313111669587364074852554546531221964671115024117598093216122887774057882916485283939272702748504857296264960089594235501595251308195780845543851288199830541280552917154324199714394060941804400488999494975712927398482893938431307443613516843380304444523823724580133810805659572052904134470324317900394204395395380706620370588825625102346712891957943773853524075955436434069553192069565815905988291163763976968373868913577971627215332222372400328560836085409062152442693379159940797054509136306921649104226274423703302095614034333050525535537532351953807149782157030345764594502806092590655058869818272546905419628253064197728206064144189583988486105755453190989048558087380072968835502437976988895703553285111857560221433199369212590874507942790443611996378887159794160860781778708481870921654777108344776785627041660942922292119480203512079887443986991958796212374995069430108197498046266247842893229210122803052495110913452238207194545038454832598373533202429207609379746044177127694084573940527900154357604254613360006097282765961178715060576459491347373079699608690721744279477408660424475035499144069589439962328721290639686533475257915091408299005528984039980889930302294277844895477083374895674559921270548945915157753970561294458067031084776260768010252954984947063584701111333531948521756147793274760981541029943605543768101551563650459472091656696234348445934216333602491908423937424321389782025581717239063769242596413931084687814411132091594796676916747678086454903300799985520275153354272648574800874239580416697600104047591282857032179941333554833249185789299252084410726603509103510981496636331298089070988828492536580811795512003980612823681323763104457287573936215932619919830666892867646558224130321452331646468200634631222061606904671980595361861800609999266173173179296601447769034582618179626019941583302495465627621630490423817017997130513948914248301887398984172718198817609654087602047260530392886172573061125509349212091184851491946670242135428523742267924550578415207947997187748885259504520152509263033404878886469356022640860726871535009680576720845987227707413301203860432326764615825387219598391107651185471891271094020018368171784833417342020609147548822234863748317054162225795008185307313394013717197057122509504304203109822945119995350849626528979240035913039938319102268954450502510480831474089255393799298503601846101576619537085055916256096705155801086633466230995289898827415984184752465453387781691625128530585073029336089834482166055239074001435399056861117625974941005575165431020433975113879608553573518926937353223674953193428241716841710831122873689825366318674542895660363771152802935419650575497573837821958926341220033461460473031004413561605777501275797458441695189113475203385726765276808773049271442210724655273738371498475718870869620445466892666042907033779311291704272599393655606983965845520182165826812640104142027870630106764677128252434101559095463389126396122248425541329130729197900795908758320957825685650532301291842650799523761441022337079743173266051827499782221981084764833634332393852973025099600768940534387419279424956218544298862619042307624238472717090483946520674399318171125422551723949528249384799205640678151034109979521479730675801033800510621743669887399807511384217733749872448790336825158150944924641580416804061684260642290458251847470383742589669757601619875913302015495752787131934988401359113433817073601575384110991449744593528153616962765673840354589159947833960468460929810739053608377036903851996095870202464828555038010743841487590809002075516154611630568842064950284274678297419625128050411578210896545426156990616934002300576232661475503260764257483712283900367907674397477667587174353560677493230735781924897244277922966566331388020231041465585847368438440373014816600922169702382441940125238785983157198376054098140585303145727071979393736378815592820222664074019774429558547294911645375370600102578857210794035969018111330289412947388662419167189820609928207767521541303494232419391119328236057999600591925193707044735452557838743749665859039160588900681601341159221316134500044044933991626602556649979219479673540121721100659446051596044984581185385576265390890830837715699427860323843298531078083842918029393618764796148677300358871631825174547995082616533329737406607938516466673748564811498414526406250213696226813051519851561288418960029461527495248264406912852956881822955224224064357288130088681496451210373947018724285868547620163155082471126269348378284422379379987022940869768667659218277717322481568942474095269318234504405028365134597696044598275533485689157052870687065115966171732185916035551292779650152958755999997449176868826675008282125381284098134821567508137535388721792197623722072255737922031401548790523107126501209931597025089523386385121042756090642653739008428910945389434099531987386757300011408361720295557269295383929724082653828692521885634366584595544457765354470818912647793373752776169033305650399936805912903660563145850344436603943457178850010551738079363227977816109075932573869392939073289300564402631156251772635555492832710029413924635423918719880369015333850481158168301465524933231904152989513797366389518444749393714937060078273866763268830656438324011966942985841845247962894876084169311560909118778595144051009116413617687840987118648902937442642643171392254656350227577979620838478290009696710618875928933260007062022390437560391799711865953490327584529119059046150174012987300168036717574742872421798224794711058512351797955505128177933990834925773635265447643561000067033315534516737088719964464745943525659427066711729976988854671605193065421480719050140489259936191214453221055046653087108020443302724670234365404092365559683325483229893722645338213911658266817470535107859260027034950590119201753000412822783465978719372601894864384081248536558447119891556513410825264244687631362227845831921814092998978252979863135166352820762642662675829793215398408321204953284697661041401044244056831678027409112387066166766459525857522512296801487558895834293393300721406244111668428239660387628927206180657374161439924349132602655298621835268771781638945902772093807281783695721120158232673310789220058288867772155604637098594131357827267466245590601170888419118209824610719803547837531533783240209692912236270163397338856172805905959306333156676433330483935393331307204515353069609119534330426189647043725084349402921335953809848131816189037725385921685678754442804148306329269016144107539633306618047561545970700910156690084332033623980835781482011744659627624399727987404823408456150882800749576990772284993666187339935597341591283234150620760542867210468656312433217478265373469336324064721840721451880041534488868173963262656936090284864900875593591249333384265276183868760788760968471436985915504029293691588969931590712456776784443552523220810927443368047848587428183784474545955192094116783196883396144643688514903376562183930667073080214651819812812114607850989664858679731997800460372967788213462527492320871396528735388014421141149299821344891804662550729279940567500862141311006331254331991435758914574252629099613866038282984402204863472109907475575907566039756493179608927097701963090062751103513981945679989085131775881293064845923189458217652457324592163785182789299511549200882231525406507072821173577736210984111595653798665943288125422712781791460278209906103902944919539609767653707235884496664754758719088001317170888197296517934894005466568574635959634605126509242608954350242648568548628437000334521862873982774657231589557598579304314750882002431785904030891079370045767581141130523895872229612310615997022819027251185989461813813037728227655655381552150294987305434298177818464022991622529091702826090436448227691811191668353427968364890275377607455956302569478504986480133714981845825660207547729623549661268179241914493993594377835996355174354634521168422660952159653999511592697587467589933479334305911102433301506175677879076373692478558827811034229419250445030788500022629974412040443947305291191049324383992241249134732976011153274862239179922077661561534367619641725976071102093299654375371093780330504498132328604532623300205468744481376591003994814621666058375363636970048302056661877481757272214903754147454896911075744238618211649678661668262848650999410061800462281795140063378811150234609400364671429110996793837619209265619408727780273922818640783373830572528259798446626234712113895327300174854638180005553803231102736440218713658909473284691056119488118252040282028694291281480525667318629417881816064159047500467650191900313998956629571801438266968111047606697702209019934682780226217019650928899280722570726589680117975095847029090808532160079770352767827962808827253125922842521749297162649414702864732751972294207694357784269934808858064253276566335665438201726868226388023650166119044968053487866227151522845157214597242249306907694531667084041819190244884311408110806287623780011018214974075803854854132324895177156821638486965539562503994082063133987136941859996086742371187387900904333308446626235493201346546058239656565275021385393538457951689926945503563775131915182674253124328340846416744932655155660843415427375496453651482291220876520185964044632149673445141577454787988373487759202492663034330116101127491661224613248766741402634680622796172410383182081595146402891421564610994753763692304521336838995780624847388749346199509036821980459572836751566325119815123705363834321812594552468823500112219409807550809788243122381697400780444871757778087933428437791240179809246634786102372106063114157560406291351855160411148152967380924119068597434258484020851416527714791627206647686297965085527114857645722553006135285388658879244058954745799793488134313161999011270158177992411377670559108433818668867492730604518640062424180862495939492771999043517580191442884742199166442935754423957019745350172688029280102605105600390811400250874467602273847429374938036170556779720448679219200209577876343331209247954545308108421136119668934504363342110036512919508617102346081456295879211809016978382281167297438413625215763287867164004036253290027852626607286493961458555209845932775784882293552793832124992504536583600557293783479289861055585497935649237772574295167527472704549612914520675186673615111523712520768817754452015356296157429433453489433928428239036200949485566337603642120320166886525413736153895054399979762613997894910344627512878210215012500381414117451760277037911496140511064759294481923892483015022263268559817741412823638581993923119327987660023372819889666614303729171763134908014671555523681289871585235841429453727212746148230819945611477989163533680980460353275301154541173725684751975518539807795111304220277330857147863571140000847649805614387335087659552617826087870959211645476058520074226296034504209008502570053585722637740303095579141196876893905528509545613862727208072012963143596234323113167971982043948586474426895489566847525252958631772009084915139217805662750908861569579516337276672951420699219211767502949828545529787783039437194858836640126752444048793217210569696915157701105982580353502601243078682451429163778079413629063756408742628416383961946281092918926422146859234223091308868282013132413083048309003825101701638817358810009811847549288728862414275948022690386851303132188671557224015031243088709236936310331229476813690856522932071440537783587438032588392736336737325635797124054767105260962623523432138426147708771188377445476481137490559857352530310680456003923222364373550365103036420257747029890186368058336755782983569987240836143354278716005992933295987832989184494960460837062109881660076951988499701470315058090061547727424404100066409407237619457368008965368701508190799589472965630645017905850505583542657711923983269254169024799189984152421717657554656460660287003965066122981938449988270790277178273100320961045431837646619090373309005107481085851148676980192621712948862220702839213392923851601790807683908608673318989719889293609297526744348810149787670191873700003474571829040999975865792132831613619879865170588033499275261862240799410712483570685467519559953155501744400091106893496695506245659691249469455693091813708475773556913442096096408964599286703825773445080802339962129214927156380118443837353730629012636920117683410539580831535464781637189995631654324690493852376100541394523666426172032563839346360971062170594512787810718457289960800906429834579609145705236586442930510909548664816123557769671318272004583572680333923480159119678320199302792150528978487528961378416783399194362727044010133020530675190274815365765432525868478661690049184536111647833888440974474579581095429894656303363463792799624947107121810573582244218609297710349643671147311456272307883813206398282576036684563883765352270024444372003230874288895638035385756493428313209685610666823852365053208321966125573123193544249096635079620574838319882122501192473516584829041201708084274678596691015965721011659363868108889245471200222737211763997796934957034725603377564105988197120697346390774595248641763719361018818874145582077262799257253432324378418283401795352050021323712487629284675580913569500249500514559586104807742316572629511176542517786508769580025421346994157708839691250808442288489676792670016768772556207371595797920915851815234704726284104584174255069671453032066309307347214743249031308030756364307545383731044025049416517007506205025107245540084601983376819766022438759332457097082054827117918414827280860362376196187791164650279520750576331950415267820617765682509380193223487440901113464672275579383687167326265145608149510075521710003609018526817703543791649136464783845791096882243007307797170273696777980136166728089864779409477182072626242619256801110495299239272582834193816627854124874939716457144688825428796167452494300553056319331849359897873295211920314003033905808810485106995932983987519255423392504032003394431675293737423767529181203795798285196388309246883224749764726106893113898416634241114528157093590929153150028104798288067693759444901321862602002409805576784391559521351622451020290169844599503025427446775328667943601775265408707360608661201391017082721076547539541716175506340939597643123101186646465393483165110416364309774487084939694802023705271080638975379277045297401693572641556779721929412240611611366369803476521505874793036735101192871402224667710076239029094225805276422328045739402976387694530694836477644107440775696040553508473884410820280825764058118531201431395732038182607181885978181931108530042992147929029066139782400177778172077586877361683618935411906586182076642048462329242645569560338976457912651889598597632800560095518300151020376321912271893411970145600873945898724413782849740749732988959678813187421578339190173927619161761246106447854042196245580504703702998712114074284790266946620796399673121075665410133720843934438306319750215786240742818655307855830270172355557847859150480947156089197367320138621737546004633602869102061064159696993701317219244461409083617079156595792816915225873284000615783116037665954900904709213099853490801827190924383800079006360548009663952533591569053716598617691819972480478052467192911787952034467608355920128268094656130366007966819940460908806716521272173866417644317450334633281598663722938380137419578801283740576775086634919859619592039970003899710689648288983825512433656820507871919252575865174852495674467561038845875583702305393560103152323119151000193636400173518401066160494676055945723540594633237509872603611664815241722513809998708946463710143310894679886199004187730252670406381722821452961758161781659670731545615635213887639535862909377480718031615974979012157226214457394882199191840145738593733028371912413916004907747089549147867971473219277671219970259657323874275678968778952152490705489117150310179015092274730185799301688996465634994193277029747606678157238778409736769659259225741196954578249689408062706717182514768793274348961942651211267941712014388147944697255064009700896129684046230816444897268922427064988301368037963305148377876338546233167115038736532795741573729500926668932230965558168875807783386606945521368114846620557245712604419708636655386119804110692437553887559961535805872171397099947314247279185012123243070122090157620521701958628929271551829278320138552208805580501945676743305156867290107801718413173803402399991945540745157013165774862666026988977945072587485451526098374511505847990341708647705002039328598770956882720054412962932434152382151872274271901026650194341547540672737784637346457709459434828953885566367771132577345797411989337596713376266700255355315038083136344977117248481364882259637271062330767472354522596479844888037947736614830579455036782320419568035333485226090067524394004333530967036113133870560470105404951300750495623637965193614948176827306030505637644464155330069429489314673967458783966467897223924213322148875267541226379933151492067147107591170236008110671068542615456581685041984629878087317663865082287321506548374530484275624605257546057665306539736162160467937728893149894328401726742734983687498039219309985315767056322327806386627503268693576646176535581440959187857803464016052222018363838386972719760864846417344695224898833878843326257603885564961980976281935281479111162214405429790906055535529125928412836293151853012021469553927286835681181541355464654899871123338447654026378755803800757005815634474777241454752136216617145775139161083933812939009690947968145452778272639061498114403591730110389662596500133915983934432784209901990632295746173801592282765100960393732394052346384873587722022111507890838001013647626540784860806994274648386998147924640114133843239885687340031669806096143414665112822362575181066712568832167860967687353851851655383939537206613538790371827259284973728431028714306741071700562785036896570180916748419417591078460183604757762980966048752522302516887829673884231317401186723691805171681256274159676094591952582734670854493604678461524668590434612294984467288417570509295280727704284165354333693060550449399669747793497765508473000138467575786596198763466015591375127931528854323871149424042909101363420297999751845063753290034811900080284745097084900555455433515906449064967331084666580132493264962437027638803546861085280469714110079284956598319795388835388687444957156198784648608155190891887108500214953750796835577372480531087969551707749375725741818869007929992753166255986158342124213097901798672740113530336969420958414988473894245019690594845975578133821753109635964492689057111128972720000687914288489223562879200513438416784106513613206796607259999974117585493359577491792485986845827337875313194915487590256938627801432081064740201225112196529810928550321900992261739857943119860977229828348012805559939695804042707105650060038809203059632301487182131433060601219345883982651450849246731593873682626721602669079027850182333661740871481222779466299850601262068557105752718330742767118087001757195914701374576623192097303950732087376566646631450891575127512027801288051465232798228303715430494280948618210253659706850676766019664837332542112289753772376769681239635707915073212455208361277993843945053141551043017645085518643940074835023782779406468319493550756508763699879745696323713688191382908526306442718253884457664896433710792732145573169453069843139175151304120378514059731506932106126920537377182212775265007251653318502641894688345809231146699145613319878610076070523818298962500812451216560129586750578239435533102126882831738439507221118699499338303438283450637170487211812134278321046108335218533376455987208097389833564177659874167106890923495540380197002299659364511778333141633625210713275255432131099876303792113519576842397854337716809412476487093304407298987252525187055977778937691154996072950700182895840977111799174075351141615844978703849060915269887612559679292234444182092980010167465957059170852829659363848693025940191139566492425291650028301666556203779426601419760087220411670921189621138570206774378932340997272536423219983530417651068112765973185555283339177706545765133854965312505330175053854123717421148550932663816703525787782694460113918749398741223077111857477216486398244234484708304882352959235422241197811572863853212973492554879978837477330769832613937080308531673955624036101623099557466977613578289858232228023562599947735701990599018093366861353367359985491459450302968557789953961671748483201004132383051220975257207305183163976561935833419192506322107516485014744433935614189509190224563343884862046935593500074339692953177761070164767486497119301842781366248182899610345193161718879134810285133548624451264590910209705331425306580137511234243218106756453874920868366306334825297886429704003970568118066552486435348777711246356318533695437115945293800928961617796908203764502559531142146070215855439636171581983468807211795770584153639211244514454794599440086585188096450307643074167059300117432216630483512673141186479049006669749193272156505307672110824168566014970851626356034428145650344251451410234340513976564936055360127748995099130429432549654089689119216765492421053820629401132424401391795408637392923661511751200629152404171706668031252047667899220471584578594384075413140997913905716032621716852095679705693083492171586820750969464034310167621335146803806159534173852211902502991399631529128609828740183837653540930848324658259603946238114946159445288641174516800989515833888947411056377578643585066667866525778248442618034390172254889077964515071041853856627302901108669797784442888355621178420382576121226802229019819099902676563757681849748720940268187021951355300045473901516601092633244936798416818652110991715670250119467077514752776286522445073647947658479964285351424034589713818503859438971770633416701761160763699992707499236840655322943030169977538547306542358446338072904454086991285048246776918303304900695057131861639755366260134581084205991199387597725238163414868940494252702455687995669068376278724769696579472354203600160263121558910181712756205768278376712426796435170323497817054435785825923057030340467858952677257679599822720969725341161446803869518349525900803151040753799166785737242132872576989564467828206431189384679612671695247162201042851851037044674188555262381722920657358772122134003696986361512538326014809621679961010076895245160237439558244215536195197327444798510013739587268401746428615119550930638277488830093973859838504315682826149681706002234974962405567025990953347922654718059231007506334104682688232019866109126068489582986070611812741881210701575645527114937099645505635796682473015937230603433476535758983982705796351182759478106077694088757818992307879289162360350752092888693788812678383913346591356592205772595481450396889851352666836887599654124700189311797858518320155230485455798967706626525656999252598167989893895772961925449336067557809941495591855113831310686428605654122045026483581989038914340212956920337661238088489408612439687366366801144146369836187346651089609506114021466171885058897105657669567653917805523799684898865283330228667926321223124522222810262345567511944015476806645472317092136974582544607871920956445153348058799050651522214008104879432462750573980931151004576500294788204374119524101148772521683802653034565406758301203661887353012501266058295260360732920797977048639551626993588450313433629144834268317640651082285376817262233959958171355412525987593239355768606567007275342804723240005708722829388829538522442272349818695701632713046014491883257285876509684094034229954549663183418034261814311682178243703160998360494698901870145152721380942467401746954336077289206619618324206509022949534615815310952066371994186259976679410084330709441228111063924822192209162490422798904644583118948439030996745113005931733453855036106865178676280589941278126370609414117720959152861608727005258290873660548088521884193803455684355203687830820223605534457129338734801996784766801267070404399679468427996033196585077704073091303187708244884731883808975191011699046125503219694260066700131577293882986145586938692654085058615196332894773499714885316495363301989504830770955495638618950583824661614192608550680437301400572459069987365601073637968549086711609547849874473053136947663014006723644052480221840954841587144411303593155909808286402197680194513879677333383160642262242030211714303582144174492878559137427203466161317144598266890090712650729688552912944959826964572689401696547799056723707927384744728188043349863853077908454264243930290604320990136997985986742487444794060409034530878692097111189974482862320986400068012175549179646758350688219588249217150723103382180576965594906612613821874140121781967204575551052338232484958970763020694200647236761763909120758199394309916316731882858840185912453544094055971463969716679973084616595530827191444572631508750117915173328552456752822117593383151092971834125693629420893020452531293749521908706810301377992884516310357389990017302055177481457702843600597109934640164445324839652795297174046922779251091593878403403095765657028856437296366672007062140888093665560418185297988119699733285291748371279697891639987608872452091411706053372504559573886045735511976694696554090598527497869856791550016674838983793721963233361007251917188158778824970632117483771843106028966468936734157876269906009339327101194630996439153237343451511164160734389138176630383617813495175753320545503137086685564136070913630906545896162633522137858722070131554805002651341906855165308497741830640257900119363088660344106454088271247922075337868182419555257744504799298695829463393359220190057848139599832473847013784381165347656994577292197685331687854837308478805271275996172586765967762421741568575515396094243250265442072839282088491229852790197121126186487147919469471314888963341893805946638909384043578907427987817965719084240140715119055492364803411118827915630040373637507747825767763918839584708640458226141978330749532050571227138683764740700707746903302725985525890781370959984565167068845097080115164931633506495135774536153198658357219989874675155588057444325593372809922786480352719627233087418456827132234741175129632018655425411535723477504705902384937839979770634894587819174773094953006152860252429625674340294917290413093096933214324223133018818197337739238051556574586134235531853105885091777650735702270883272308164133803576632300083671275179126047171204827751972098742276557981118656154193893599466054070267824982847478221641878710036800827970235924636604870289559860412336571487812281983975569305007510026739661614710898831701722120704290120785097761479298722071447374626284824979977488648512958438652759900715213813306218430436991816894407453152651120695499758496849755685955879477966103638206692326746802257343937066802317094289836854674067674003679677575228961841068758542279452551676676476584737960326269981031580418063128366638960714609781303748524328305690232581275711088239675447394467863103179167366351497563538205463550243291091230790448454159601218604360653700451872686073803429802232378234386140321142351732323648919221629736326660624917577573639276072007395853674152521201411272569878842067147230716746203043652038537964886194281802015863937236269574726769857061068949814516572195968316496141146595092204521633695796901108016854450467732929837912759779427321239254508556178758082532752557932764800141440408124210241571337993803276323892890108512403155494067612826715670023127288445804469714416722233079280103915400588480533130603231176074174476570646324169072472064720549486234552521569326624927098189328172437581710819140252478715474892657461111324617054565979883912798869563126307037603806165437529743958701317154285840916712619618688881261789350326187571608542513695996875259319281524682814344738730883143527232379201806753997750817526136587883397304772118046234688056821806673222071114846589308058660593088981148389717582338465306069811560734408113594587190872412158738302086220862374094640516474931820578438197687513043608967805575557028785809007580250537645309451338711686028735782289351198682497633079615066887455251914933777917398969853375944053801078189379267010049644049519748392016484944283078352093614787385625915968924373433785289383044894750668360193562874067080220209454230371455263840847008914989220985733426435709479860393093597277556878036910746566621305096385963196875488868363110164723554596835367034427017284178350286164369080419837092777789878642402652509867544225511514975064858170762470202836406659501139016632374137644665068373648726328223886970057880009552687241555193330539328405126472812601334598735145565414530717438620483004722285079303882798801412985528495500105085467627481635189401887082177538419627001602474300166271695278638957100372031668972069486709656339416137845128598305919850619811666438432652533757555444787344901255324639206644713614018325713773464315458220976735512740896514687928541076746189504964755665719866849006097417634266766052693552797385046090650020942170125626701734915354463315941836183658107755821701560230315099930113563966004356051771192379879790537109173770353702931751722927913860117334603222250002187267286272674803076399301127175673738624901380270907141580239572703049457749431616969414404642826270325433520060976717053599719152072425298015622435807862652811417801312224687134297993926295881400061322474764788783955560725453237753120234796317400128244754722651681245116510824103257230394867550856341856711307627212657162115803598128033085649008358032603628496808901699123988633390037687076064396175322625728431137044147197353932069297029908905639041311833944352118520689148411492639493119241047019019702959952855180868814571518240423603093388311986590526701268459726600457651631850857266725056923342055523922348496212455784009574963556454590783385908331813621743668153961791457018481795247363973111317117564567550484952016625796625840419525684664817240403217326682281059981986814644239548157723686647280579839079339577445291344909501415903174870117854075380480184602619499758984804461835090571111131179052893664699796995502104604377405022624280015715790832075775652614139356574221527534314539581893733186641518280394363658611088457743728012809370187559662415848535873189583879014975983743627906778954354495113969363122514305242599588080098489287717966206548926226557490110452143102795310386209465619587090805971370571113407082603601032218236141198028154230198359271324915064045660041496848729006046305935943489515524130416986673785687998790130054064325334681011740509081346572232762023169250970935741371551054905723572084648350280128428282768713746451699642292434489693671394795338782249474886327145217147259574808526392898762912286017070545173571448299780009406686217616631509035067290131040251601450704948514834974957865055108388314313448192480729915858546759886212733895733271442129028812821257228554919297298758402509558488819208066742799394653070170178989598668309868072668261209010895403567160368358090136937211624208246465495223276049382316597475378155778599055905900990573168225873595174355693031240391118207726991178417785084149841910877678253495935395676928283433955451725860288941794634229651526984466734800664808763374318119836285416445239668083884318628462311296055861804482381407284706599689794408338307719301759072031173885119019301522854497855506440131163212059192424729308110314933712374995813966575624161928070995552435011803852208644219487481311865797693227114725929739280037608268620151927813609370428803684206878436920778953671416796999720244219992131869070296976519558941703885530600074617937469736390626746982605810156922963130862054510957308131272003966096225232870411835949903129484864589996552113203697871353707170037576658289518715268667149868127483497779126294464529239880471367921171232247036154388022474828965649663764102320384069795776934713968222107664131276943228563078314473033913523192963581562164257580437249315329720026379753446547421145633970446673790613398199982441803519419245646314946821750101560657010711837181381944107011323909179738060793057276780860424881057006307702854821719378499348944388653207444492888507938636003780024811208886041018619681355101122237238783839395800519041541073387544085101270319247946855580888836208140254713530072390691064148900583965758126961481755197325936492248551634092063175071291839845542799761720885896338916589001939806240428924213231470145746315976735898314680883577512738087655902378807185369564693210300014130342298754550053280935548671364908672688050568137231027506997114761705693456073113805546924779856797772420178775250596445039200381230274098657015566034307887345854498254136515412031830490201517751365644668460692594780698022316392406346670954532434845888878520809112693132901713220195255509313999480632033041959414250846543955557689723683105514170718749025697815843119183096982520168217576367625853379982615641419060037593799356825331884150320291291344172101426870756729634223117397952509864920288799855755432104774481779030798235139658772027823214639929831297821336132654383275569467098974707763771530394991268862373351798687370685781861613698491480575190963686939934696748460289952117681447109316811102565857142176809770378188376192192439093527496040371369280382576557308914368561496804284134773986872178656113614113682656624010090064669343624328432509116740092833314942560762258639809648618097306609096494755463913876491089285623468393166226132738409494908808439495150492511762979736402917460680443999532325265897661844639434171409160324547332323142381054103182554150528262277862487711145060583985561306648210043472117337563367023646894119993741874780613880438268539437041323474346561976376506374984204989462002269912428005377794476542378059993400376434905055296111483639279898558799656133391336535877263138103499868960922304151745990932022636516760692858368820094063547713697476848103465062879743449642430171165756561560728779125539333644538111227473617239469639088160609712126717807607694678440949119078082195164397854112124998120382104594666770758817633029720791645007772065770190538331311907345353467842242108641508443658901773141510391547127292165172633716395503481607075431447361484051072058186360809569555303017324114914101241616910594665774051302564181335059846824872724328993883267354102758911932981570075900346659264858897536754200184330166343260002793346433705776692999875954283798641730960665082787969819355393944514518873481747774620105361686091338472182730648508538194605458397371264418633814867127088684664222643147429097207943733173174984597712092855459432425653268677072209131057272198724454822289562976583511449869005948613947322863946344115926203699832261800018561077787389284618533172907721827244354575200239475407488736725218607901462281608509119456732905144719054836192836172800363830444312842423569179513107591005984331724936634911233308077119152206170743204335379142187546223107544757067936548215314559285052890659732699800846818462169478024065001771045768317178178788587032427130095185714885771691165174997700379728954864074246171623344390568078128326209576412077157343461257367820804871627284398780036375862288766105578618322386812525378615702405031249034353218937221519860431481476608394052404847051715690101069758608370141149306219804853921359740295860278833105605649843624356762089647198847941143330672889398064754639698407998085462904183454913537586792838272923103290510722466561738564095622902173880553612632569943564506688364670163627121135023493799042975969060862911745530148301095722984267400715765840620796786298201406121421965291995280159858303165382261158632306652707237160714738232530266479331598684043052313193849836640240934432422410479510919760024320802215426272720147119356924809543234131265769612189008891362129573182632956452515982767900974796995624185806897104243801154112514618826693982179620437489277484823286538687078836976300988051985542025328997139788843156446635883846923368284315761741638043848229858975137480778389530083132420425536444741831044514329637067617466562031876481047912418109629891450992789657016715832268847048144116475155794346827324186599801610348703915736583084530483912829539514302289932875285916472799859200139741020464151989836156505586899944341146748808813371723218578126826507184856039341090990828918077222741645037563723621777620206972153873522105969345707609069155321320180623882855681200849311737352097956216546731746683989710117405243215022635470303048017286906344537085794252134184130992913787186529214164264159659759910886351873012502360770428665911646294458561378961098785318231299765535280425817260167232484361320364169826125753055900933322419644475314236954345394752136126023017411699607801919589206539327925427889043082482676721516372169766669713665818833882804351908463537327679700416237201297336034988791660922970661837894402971169759911098665928797806925704380948889587924581591020529053043128166814763825649823164429105031309421260198184257282973140667471853740632977453827416276130740317594804310619813513979719296681945967799427009026129187303808889502111860427883909113809245275044155083078968757934656738521028935668455532411921178824606545428734292568688020643871372586653342596858671586280715341111862272257215679321571939705605861004870026983581513558902440174379396633443365698354454620272537336747294287056481143394607275280339828918457085554815312261635785942837852482703414058092257045819824718118630358172753063212001604256928075057193663819942332802919091631218640992039439673812614732439878903684953678005887982545305758800893260462634448967429025013334453799658383597571882863090054121665567179282526098226988064643103019884015594916235696647114734036551672250933085835059677353472204503123291664369208814895217320403957216835033473142509285525604061075342320153546620645937796322249046897761268337803568553858508685046584079085564120823715258718008823142169007731012647301142187345175298835331641365925720632618999642879970973560575393657716559860548871449075146011011008289904297221712900922620979183871945546488738685107261745408023026039782778205638085724748383076521780051227945199573494225199299366918832250892484254570817935166801572905449173926275089980100484441272850392755517905050427280701904472110555651741079992825178716682850808921640480395056385191105823402261555647456796248692485473616814486514043483974870854226918315896975096684314902741313005565012927862676934476055322150182643241636027015244802711212183342251489335612381211148275238187461083516723470249430052052159947939343838695811546566387878426743858142600382728067535984926382723319695029504503500982955673592797258220193275971607735036371740243386435327685659612952453263619928444141709583195187324655370184134039013093570328081675525800477709459466052962596964480800969352656420883313116826580986814281886243008401408945281753386985938162508558428163988586364256701851358543596805845819702641816925098932031090817859655435969451662639751283828987750199288954497570282821829508048194298528649224545468472414626447580179825112258789878866011251751872926765405945310386938176487601675793150646796391237812730830518798481947158871563258670198511572829097335414846471565547101631709287337133879894866565817563050100390440968700266413764888858797925758802711008079256439084960579526108025240837807880725875078388424363555752636276564305892103566855486496272817314976100856044771193805783504617180693450395882245886393163542764143658159988954576217915149018268337898498798449840689982511873774810420842669720661983274871089761523864393762220618919680923760141133999677772537313201383630173934242850618744925157620705338296477443659898189216235527306118610558409055117975216556633542066113013722366448603223077835885261829667568184170623928232673856753135595648936307701101220317538024154967167562535217440060744716300681648885222210339931534193239697174314296747543338747940700631821594915887269974598098795154091298621258497736222449716009836335016421025635504326998509878096948675471255408569977559739804790424295386463803823141261412782833931803193175520648831062797053545471200503173533762713286523728147732314746240254537874380633956853168621212733655341356043010687486667577766991496499508195088863534728835829721128767377448862676189474298494045037126004838728785382125595599394019591092117342093935062822317014915721996384600196482629368975381389491313250925357783309172655915431694820933488805216795283594628266145202536071416312347144057423983182508201945227072968088786449480454339198256000140420485860345186237980203730755598045784962981757506268504658615330433745824413504941356271671252784326069508337769507398615768919207019437900747278889085050906867882927697581540833378633977832387908891572873296739230934669176367875344745149537541822541007028129043935595326994910555935213736341945871629423497759024622244321162494436729352522961809061508175813031569421005329050556373663783935888267573314684441037832001492686206773720643309391698566915163211079030395995426217152356940059562074887369915521537487742980894672334658582435061827788085051167034795702176179658920405375964207062753143491866125905994287334262682908017689338042708278681225883519366521907809881590512823247142376398659858689466198074281791557942169776977732478855820160254624824349949506558875785481487136839716643055828120452551526191400181460546075211217146908587190018198313808996192888043935064227075229203740491315977333720659621576213821618052010044024691995065191008768787201227592277894533472125993878071762114336110137441195982260147254494582025910677381932394832165329820682604592022041933211474686532620288335286580035779007604423681810565523809215880246990958437610795439935293767723302647069748277824460641575871694943503668405882177281484391287411309394341848284151103717007813974953034443377561026128448226440219451869593660557508727138306864242499210200030706739687478872948204564898056162015368134083419816510148260097622065513087432773463301460814400645221458623561811217233039011323806584912538557253037577695394735249179978044369229411198494506120169055022600655840636877054546944254216085132247166134546037661453872637367595729625467335655997129891566464146017020396288705025314523909013217309419441730135249635703212891800410643349612615560486665468214510910445219002676778332665663653245955454355951217191219747339800662582008448062647824837542518856594340839762416844802359703862311127983185050399731810525957964150738341869716230011669501243891220135426331301175611194075719939098123187714628051825846549255881056699018399797291227520633419535113210608080247159731132939149976011947068888715791889596487167656016477809350018257047657661790758446811247437167273380484646347824212431718320900689083828020310872009911367548154221828318297575337391849204197062862037679745628087975372094889252532472147003502016996551728329787382803367756372292905705507409937540423226798091847889994609570718682546415156679086992294143898729662736595379356611714922328118156799294981722260856780691823983533185356521981524748122366450956593248780757645034922862322403307771684957065615854482703742808155496810116604118207956140211330191887586208939544646123540781916645458659565787853830887115467798028630102961361075531000494484210455786829366443167328865699036637061423309372029209608370274670981076802733773967069580694153447324793389465828793314721103524087080014053953772940133680815629210814275320418821654109811928473485981079023568346775395465494208553057037869085329272579457571632388197709110030421678191682903542499158513083286279889109013827633281553390791414400730148270915004445172850736912473892158114581393476503044473111932513418217910963133215262251469242097224116187643583047844512709425797915182740237760098360922063544279906722846260714513853709440684657752234265741354026559923960661280368498978780649569489705622213451863117233893680480006842865239752643452164937391080411528775451398980457428945526511657934531635671595740887183429556585963724656687917318473692228492235228781713478173359878441027753671831566208858019828089881686110461086529825713217661549252866923658870611883129394020647838071171317523955550936863978123249542542914430379047107934793492825746834045130496384637906683941489056622216811664347951512384432480711995510525998743053067418047519280822916747585613549729376311366414057704748251879835881469612804626460800076979868260719992297851759845018192656488163296239864311259638835373361925131038791314131015098822594397807474124559000508136537186596652299204254497159228814798864147502790466695297982736798688898879266712877246102213816224410164629161685355552230366213357548414024786874748324384998628332833370019191492195905622700377398738956972857576049957940934066026343775402310210915893263317186341119076804125581172667598764890450415682222596084381300680006015698380506399134295944378329687873160575346967406173311307275519523702920080546629954088239026349926330231596636594598757598361476771153154842277171405633939778631567276672094547931086192662515780843354712251153766481806025956925975900597980587719051269271296291059339988979229522289516672455432870223774676062806718387072762688473130118790416022874900585984699766048654892720241056978068232094068605995459098087224805609362387164766676869250662902490674559329764986683533580762442825836909164318077830619359512012434658885999662233692720283091533775549561460885374912658384743561234091694193292091575706634874229371543439229399914470046220360866898411132265620710885336493646580302489861623586885229530303803681766151260028285833089714322593856976186851311962829634526085147674618657754658254282150918138688180876446931315959169099094821465877872290333034364598538547647082130686440414061209777993148734062391472200187156763162338386335282390094447574755551679251124358810823064359792724787662253208248767867146762857296124876937799488359199217650418630804585578097214400073286827034746845426920298143090752867827900544013157365155982978804961616047364977418988267182538822118991703058455875758406134463433258902852886849125976917095382679061102679029668058583730565289274852511533741168403979036823055809459602479278508982074487446482243231020829312139426588069217443789307371380471971420983317066754493060093945923169106738986224846882136049830694008637448748392102982436314616657245323761495778512360134509577448850219195998361077771304848307525009902504997061882130660192511644973660556394776072235459222341404334255286530564622123428915480829243593550814825162070594904000361862376211311932105687580015954172310101456684941422402101221234018048554761295618632759615704798542853766611871420691885657100654687436717382396804955234082919551909436323014772542606979874044655412583888973430345177074200808212636629947606722053914692688235873734269077293334492151524962302154954526306528537034397840775772221143278899808210695260755561370777163090694208439131189670392981594291270974091338234549038998235654353529693748426762418070524294342775463920981061986447495816861196540140879187575193329521669578377249801155812606784171401632597875680918272894771867186749476017448315261073674673277660130099606558927749224121880008766324881150791245052786940968377035819716687963075369643401586437422833984961123783285281540231452064118117436653993360480481921120025687057521686111101627135406390423214942855324330415275882523361524865750682116966738068565204410276398354665685728836400109175046083862155984042833312503131740983529716777209678913142893842207115264198815223308207842985690219250261440645575140049201817342486129833303181231456678224793019122368842392938544613966790981051686369606936409547708906573399075492083882967171464084160365015732297157294734804177948541469776173289464468174400659378005051400644960837304103262111870259282523998915660606502615734870736266750111711805621080038030435090571576119028372880424470039993424975224172169175531273572939050921058907887343178435877614396772991492193540160894693021750807231413062112451410002495388246667903323500272105322184917524154682516748516626944712100843820853127385954375843607017975280662028992917189613870190241921976638592360681914129493248645175732689520050386114663785775727421657268742881529476046939103215794324441813143532020025664976794522722415502652915537298022892698665590952827414746537248031235412090694406147427246805257928894368313555497993696541539972414564986907385805782457639969625272843587982689181467161462311153639498960020308266943252748707097495420658496364763601228197166474807942816710088890614850852258779002691381190000463879302897665060494678956456038763932031926899156599986588411842467651813583999051216394629307910758939288142558367409256157080515753483124490982267614496048158781608628229113775843979276406412953647792437286419641749045782981616794529843317269230194705592396665389518799384725399985701032081025719724734151726688381520084419526252258662053783164247179875628426507145671164584370631176644445101663408413235534694278121340815593423526799879556504770915614435644804656826644000228587866648921041845738862116061033766368298607110082911058814911019253502767594792659909253040861876237635442550511278306227973833394604120801873176028583128751571452005563076701285869495959860163530769779826788311774137905376629532210659074264980674849936773431564846932644171358896144735529269137816154068264987582629047499850870403859762884885099669200918461757453774192297121006398433002961538334535362086421677826190730083371836387393012102309090855446073800788022872514052666718566921399309054263018511539838119827935296867771993783108635983752051308528388794207072721824977844552193598721509268107783560648911932213190774461308737183822856447468676536752018742509633760721800362537431130858661247329060156761276567369418348807778093091908358755057862618939510508748926430522017413747997616806041644601895058011255768436311622698882239443117345507175166008028069747588305842625387367814937462927680303800269015225833070688315439556149081868595584448125501466596696896673039505168153435914960322766071285690532512521428386719009321000777734513387745437097181112784613764824657403957662061306521822106610796159886820189101692011429678928959955469502630911409806443131565734270552245639171683906696964654278070845530087375046593707627061100296976159508350459430099460975026295779430029698612730323051520999795450937216524174459022456084024725624040441551263346125714523230033899594935892043020242288623994307269038298299365620263441655190437939711910982301367692389181934999914241401645766613937723639837137274203898440019752104576654444197252008626423930784850876399869641730251180506080940352722293543070791314150083584379097708719331841120313265748936982102931774555021868482754015831523387394848046006058013991558341178203474997114811994895027001892600146293171025643813663802845008397031295767378264058155699160105243148731805003861476751702205276565145420643048282691877608674257195567005734572160148394250394557879069447407102380476298343546488725235414077579537595719965495203015517700522530458889274329801030814663952284872877526502823645765444299668866240119177622094025400621949864027419229805439652547882112488340227660141852212194705546670440823763518433134150132075480076798364055761898376703688653185159711724491910098273605963030057976790627884668230934787730924675135438245564347563048625682868845786727133836419926257630095383928563275329023233594872004164434784181045864973639586687580676708526136432679479296608388973143203846875627273208787756729520071361510193476520853642109795116072635006295808714383940443132031352226628296482630875062186605935541655058184537290125991891933202766688155127317740429395875926711416181587184842597572892053485581523240348121920135095495992372287075033215068804127054454172722120374726030460589372056155571803550862226967605491340259849878425800089637606127720017172395106220826928532626098978498192406981327196630299719570802510671074574981471438891512016690795377179734747269727018912016875373986124536689936132257348018953119568115781189232718751949890349517017439516711047538077959669988804353968677676792239416632845578489453564052754125321640382582760491075509520321043792679322955772599748497718578445426336598841173328749733818342242381911447765647524613884497602334418001615649035720325828866298627617956893554566221760854825186802865164870254961498597658858871279282501450740457230347380220151951363274171098486771606258592061532227200249851760695635816948888253163301403793776586615433557283636440301986615677759218019128486172611853379945916265827224983597479567172608334205262067784953636051798023737066707284179732156012934083313331687073180454541336047659427180118995989113037827343704330349766548130562567057278875033750478539795054362597404929198201943038483452095765442670894783069081124295913397642805431673917313563102688034317444696694892904771148167786292831875041309271339412874865452083174380598331921154565936528272170541939919037841990675159057878106276243082254578740065467099251750621203352460731850427900766256039510485498314309328122397275325148402330965046647097698871270173279410718507830450493320735060169713940285075756258976643643980276864248990594339503979483565444443966544991190201827074321878486272379635513290282404656877248058709365227479675385660280712272596171585745563503808849100430128449387264838807808256203049315064932802005735083038808910096668569190330016948342916176694651658775013240419279185632247555719678478099021908308225868896394003383217511530711932589820101964659050271782994751301059841748268920818124391327505385299213074815449819446169043855810600826291597234147344430402336050955590085716508691130800640878584192908988358068784121236272408532988244563105722299496802240000255518180543153216287386733660174687872390869124759180778157521980704465517216018208376401910068723744032855573289886503642461161593923411283631096920166318626240300508660761142379751185984249373241647219854170430421760598719792423357405399936693166248240180048381087377586244431448449240869611710025456867288902703721999052385329134449448089112155497844065206301438293346375164984796411283868159735910794361083549923752075214478915654164729247987039542779484570918695858547499608472566848356650238203493997706176423937310717253893988859151648939754747636872039314171780907838429959094171776637836705318868561983047724687597621688405675841465323273038153520788347246058955147104069464243893724265263962985244733909724941727877498192926310773744919358481608943894580609182258256451679934428408584352681272872402346466947624260680804938732235302864892278484049454569866194100121725829999534559096008135629218675055630158471718011809243912972265088647623796908462762094850021264481145653531661374629042053746024331280654422976266465167863443729459354840719494433268329434334489856100800311505156981704891695621549371885802928780650813345691684538898509617355841768227375561733442788074248489190639633241518002789826037006844532750042339850032531641551315418908042555077100793343860730354087922153849249133176410522794438232336835555863744396571116952664072574391719805968331442172317613189562292519805429370431954414592225230598157260011646978530894941094401946023730153108681879466832440901538100539772281921312913087063078777430374449944781024686156792434481802152612420085433722957717616799310767457082844925800232562603727940642312658286442843424303986336855818265278010724906738052614596531242953238635852597612548459689708350831798568606116224842269154511817461275454335345031673822094298509302434483765108182600831564384454335480237114961874992554810310283364446612830864790655992045479831908347725907277436910819434594732654183643993174396868085226034020051484877254956942907944170999828756709836400575915097080948960423002601892494732409405977712699936148286408910866506086273818551097830941982454789231154310528149351760616409755965504840117891188222393823169053831041798413846373006074870864163759784164349167350635331742537707935805885947912897910497816320304393530299181190309310223245415133852557859393041295431013506829922806141538275647916176261473329478776915065050745494050052512742437588073395023270754238233956561593713948075479200655080124794894247589917104177292761198841659506919707934046831779724090510082490167510545370872956178394407835239740704565032400138002610410731277057973702328011884618281846916148512035271793266990227400172346653387076288520130240168783788921430344019752432698126019993601118878543398364218513380687596635996284825506264517085656680530125563709718944980842807969275645285774797101542099457687224337896980340186945311175074661886210460234760746465136919149398156736229643033578160008638687854440377661175430787928019494755629145606949923320595062699404236870576020677083249679248826777683852075521454471322180641992564663394659350016394879055761500395163130603771999490998327596586544682305749092499505717419966640856007594288518227381229480918639076462475047648582136867445059909500505997000377395532338151848052064870175083935046611149012553529356999737309070475650570991177663471268120970448262964749078530819440168610820445462123833086532486747795756735779242081265619851481326987915078450020896002371985794981496236018784739409007284927653179850309676522450405131923465310233494429505420938473160937231992143030530181981601458560654737598204783505523162968327988204769888561746876689779694503670055777746602954211010149509541881567786122804770342018570132537753844565225898957507353316512151588593838755841357368565741955560424981977454998583927281497886919563823333544165865102549750459533674285069199999363904447836238191817316626986068944478465249416722139262950955925382901960468312046070476773337579484719305012647207720945788396119268775669162990086556637044273323339398796611930264287136018652112938081197285787177871231648055161906031180777240063907465928680906774400905844243996274882455517871897685869699043781739299604874662839487435482055541924874755433673087637596056608812177196287102729188197057961628246689006986566863567193215811900565913760503636219242052499913896571391380016756392419747290067602554570950454837598669998518380146393977177055457563148156029874847430353266000557712596499231897666903088991530876551938916783088916121661945484579095914622156814548197367384040710732554462622197576947594768572095264454272986565245119531842708410144458250581011027738662868054010498810366566769483366305156733955129211086524280690865303831542122668260558504551984789800074593688155635571278103860583499800174242143278339579551666423588055811592187656093881609483807528303664686615028291371320979122189106578158902168321309636406807308709973878485596439002036913790332417857058750022546641762264286143097159786033835526463544781120900029829727278711072212390006716566227647437109063454397839576055496090723140209952084605764785812255934966234304583085722310060150096318315924646250180236274962448925247393809982309806476942698167246441402287328185208869769136618322462434164899341238248133828445127654095102513923078005427741747722603067268180391657895459891558967253390910423952533565496425773351513478710172912128521824554271842210165060453386636709710880163818271726519555023643981621562288867688959550631449651034769722807277331980442680450671833834060790738062820856307079110358195648395931749587141326337955041647614941265902742877869668408501148680415268337929490140042337588789509232028706680041040798500764373526227461006946839536703893913280485234801770736628561022674995980182836756778494350322166666406525835757851880122226983020143651348514247908311725615889345200361033679117780122622878141049707899166448021007346544784623500207679522132170419813625617351164768581168530127793268708030584690285557689771733829800425572109861955627544431228623401860693940220062836450717106321161325094953979698711805891828208891849031955793416825843894004401316016278119691466167193096185336093274139149834329296164326220207929235713454254958873817212788137360322033067478142531664971568395751859386148551152104615179199440557060763734167364434787336474224233841371914710302912827017776183467329915984687175820084943816074908539818263599699401662586602100431174940229116506013872246663662787359504831462637615499953932478796990118304292571490259699421348021306009358001378971602241618328161412875943068507806047856536758490519144983069174535591190085507256692162168000136209787575014964479600803792103258440855772193331316310942223261520110482325109995380715627090510601182117476350680927835019069735325008421676527701972077250285329370654512238000323522201862190640437499636469209225124761189692343306282941668818834441062221522758919815324361390723519678550085669327374048944273035168174134928580588005960617582890824785775847852541978111442627209783796579122567473194947296062016331868550563162769315057007002150335317269960619302949910856294642796930461896596667724740651756666233139332238410792802145841462005429183356037900475628575599664570489643878878661609100167103971806122390834808070268873098838257448410070531972792456139038617687999666887081102289735184532631903260128974549528684208319420180890499346107929494120029847764321853996525737564731226686160721428523477722905425546468450390839980200178621566742951879447710523302723546528682182068653536394052566100383024924252917342536312268400769389383062947716163075454924199048322722285895012965509722515191001113486252101147012784323335012163310422564024925440228107742523080951864489626294504632093826274459489127090620132811696783790779467895602335955951166900097916505988127382555713735416148261649267712954853317749947899389834289277413956375728684620824486453573775165790435302013703879919547497781707972426203936074560782462331289599394732218527625489934431588775292942213162602490678923967350292933879445380320560746738145971062007900467138013093371224214633377621135223240187265143552037871271588173324387017843944600011036412841172305122909343157562810309412554659274941284212575909592659810079743046999002010298455793310722920089237022018198981985305472738649770228756576541883986604404889853982100640124086095209481414628047035727386955013866956286000967985526560124896234508270617130630143916837484056411546568889912462954335872897692862125344185610014352406706653721296986038565196490400629366316909021856195669438645066195053352068414124874986840086111881761414636269252404177047894597400608312813332267463957567538425005652930466854665529223556403747612414311579223658448312035730914069817114317172920845170329982807228928494577517712737721004573389813047629785847044703358790590055590693706533003408949294606253224725938991967105281102792945475532892601105424165935030670937915529818154217797328134385868180333764551981363632907000330445130823600363263683195103307966454969076327877892151196566847939186610800733308222720161613169844509001386723914014459157286188098709684267882168362030101664515864397019267596691540819062949749095198968709644009627002745753076438424152847662792058411929068003728017084262789620193562565761896118387363847793878710898621633784605003194770267379226715108205268450256532334226648845519833847724347869796779932144459056608561505014372939222861600695593131673838732936747551197566632152336780520666750839986706842856657817231911507916110343001058071689414936546686369897393679765729316755384997274701987604280129620898621074718345703473395708231982663274718138922518577924336857114575034411076231680810748928027704898759453307701186548583843915821222632796746481508588814276093572235437707653393067434609019410065453317093840449925967451621642670690380641408277914155810243702537366960684500141332353339593125373134457098115406704048199946036900449817178971978310495290194169935195229989985409273668069443461655378473370271324188507046501434556270976841995117414664282068612259447814094777845137034611233469893834807423674340545338667045780178421313200489397786696141475608352180626953919176061865131970122511646010127983832761242567605657696991159746695214130221829733142017796254489632422389547603089386766079195438616809723498317698078443950047960408193973316347429925581346873625591804086113112670307997889336812597008420153991608984663929779026797099220872622074422404981239020088154721074647246613564733395234421565790684784067100465919225787986361921846249695609846908049329280913206211884303202512360154176065796323768931316218388147302970699117868321513214369429315747831081367340196080147842380071987662317856858084565071180476988952537913898620237521809178593153543966284331687895391390137187391437626210446022666524606893116653071424917876148320594292121767307668551576355868586396275849473762035545600062161726430226014739097464451749005824354953239531162032747342351465216490180226036954128329190179314084801621203102554195775447385766873897389663131103294794178461036566614505579708237355186255200527200962888396782103975817650114649213786888007342504107369282497965680056763756610536581329906639753891239814254147466688356667370842374750886705682669248964005885597812489541863173526775937358278340344997336128473883730922130944423037213532153593268122152102011431927658190702766822245389999806367243547006972368952788144611110445381271545996170303280883117213078401091817809423053218649029925247747939594606988915565712254587622977735930551047469022238114731232172669765991316965103501902402267249079954966387999530239510184812744476462664465179563046938273328462566492107257932742850466851450668937071860558544867949732534614686586774788738067369916901828418646341158471599005053769053728159730873814414716337684603285958519596034362444478885406283505748632765474346658777888422297721995715632857691587568798826884430979723264628225756090170014871853121049291121266988047573914847532069885999657409421753763254151595016411441313033422814401340105940674763154024360698437225619365715635830177251603107997841992483089772624320893438215355651705164186175937734177943003822117332757681113173710626559931429872496995861054427671919101458188217917444392683187131654690168389826861545054571126442590146015946477810999693079337978022629017127858809559162722882570634842411904830732414200839175561063124032428536080906432982989667453326413534530423786701645428217064902321497386207294424198424801710182582969415445268520199161980366563277924842183539904073385646074404744580926859285958480933992336094483312326523446109202045041719701830139729951731629819984452087347887235251365363223274604799446287623251572939223841471727098405450144592072319485204875089955771679971590491076364090613920695434951991183898881538108375887510219501910157176920364910861323454151023013154976781775557943761074889215640109812110159153628364192160275682663039063824090334381000091997475603914900888768596911305406973429053586048524407664652393848761875522394705625127355557974477239774858044080031363942050111020222903689025770186352131783397115671351612679517220056499559723638346568036429554702917066666212342541416401634410374816976187151638554368062028244281174626370159831654550936320501819603016908491089471738288289528038469521578146437952015222172069574578648732181714466075540546397383451774631051660394606543109037474641037386025043934549808706332049455623515262292932188070747683939405996248740922353771948897260172393845471121879739967336029913910239710166350378972307849853503617830967104424619665048482733372817357413058286149490257505939699558609233764494884446184879091816437810104475972443594477321299940288179799017504755912291728465440021580684678578083934620794597241036558237016038481440019900359761435439899298236872655642715207657552069000113337007569914722812123774010222925677135822202794821038918364334476508947627796493703930281201078296036862646676622979974520138025024075799380062076642713479730146127240252485015510332892106082458778717096290455292749818251133182796586278704860371883099106834127881387616814857716377506898310170432320198865375219415432623842671746337491422544604901353830350106890126945296713389781264882448689267608532903451562000240693250302530912249269007670596234292328782346984831068806595307943485631088538951298519949683827398330366778282160403987263672146143257356891396751245123437786473931720807364880016972029042255449758231233858921690387822869945669309379615551239451478045366891188730683980493858418273450766080242248289027861808784977164707069370183511532575165219308287540221531113328770915116241229998853635331921748925277181842303727702611793088871707041578044017839115767802572837516951616604741838218830024850798460474589138154665387267766328312253124029327631663140804650855758363288248425490282391986183809683801803433706776439636109269069225863571661706397408694112730285755988506141744163445702668211151754519311405315502787320075907766516241579770856171102839416111699541900674243641882199069732262435712385913344317278607805290743874165551751889901633216358599256860564374091168087152505389164375378060071495682991111754211329664949494558005805414885839500896259337151889020986437166151642242016144511919547306041859105508421618408969351485155222001722777327227550558538427680535586581195329123135587676177342067238151963641032910164186330096663196891674574849385902396371784171165733072128271776882318624268659697192723721006479019606748092514302454291375706686949310966468580918828433616950813020048672919303810680504661581788846405217847412805411500688995586920912319480186045431063168715402366749107958820785177732387054223086162836514393792251034918909601806028965668575112131693445794309077704751700670445327680222703374286630913991910275692487798082862731490540070953898159741661370963625922698591734503782605854465639074003659287355191485466847241800815943557653080638759248867374573734252142783517657919044244685224137951056114849072036924897365531570608418011404616480726258507570964879771473108282416913521853567686207191333241706346522813636625710377098512455963418501587167854940525633678616170458010945149061350068338518166637524230879735210244863979415482504199477071405693175714630966277537048804790794122270423718454378753120263700255786252169390451991677419303388022595984984656786511079033145143477487995474727441578319881633340178498110070776556478257563652317474166166801219844993105605727117978929070500144142291602646623773846700551644986506493945836919837397695992329990430044527525875842821218386124384073050977789174486348370025795071127918532798992017605244031384437344313895236608315427262243058149501214492454534637932646615839809775670925059254116967965226111583109945230640855463713219795536388603515705976696782302581131640732529508976766262050032301011809013081732226872018960298817533322749376319307103804933691413981483084971205712663245731794742467105530715328155078792828403243165173167155876157697525671534016664730921360287197917262329161924849639288001789052812872953994790570439962509306356423832190753041449366180495152921022570860072984888998907830055080659321891187442697531755128873989472868232001152344971138820627782763219133600670918121258663742192119875792202354626479655148206689422471916438380686360681730953890368162994138454044272616576084784271269120494606100510974768464094581525260547593191448461529583146076829964921057320802731106309093022842646506720834727230745360947520787267982588896144678627823677156258521369549504397119700154735382464457761312634604432707213104464221085109806034164826995686543369204653685349105037394066910632402410756037597177745192805272567489255183887673628777328877003328914197140821557059943281871639567507032380686311762516609877743384273915572255272307940874983583441387365253545990904766289270532725960305046011295872517867500046551065193170521268441592148946362085361529433329952761734739408547862218140490443741398390333170962755729869462712425765905785954395577812094434296437234277077756629655696493229053439176106183160771968454331772834904388652688400544540223821200989658383397458746119165673151170791400605267933887196270041550170245959347278565701198770182857041274243903391750351152105361976421699422318552286194683539445860658415276123813120297134061458468047427302033892159417924099303046692465783304753001492964530372123647000784123743016898797783186771931906081955718173437398553922408649556671684662666110263947025159318083889261106916816724680158912644103940745429178148289526306291156338007568952725277036070668192584488923872119109420158543267526270870960221301699939387618025962431928318191178053811480101724738571069722271963553429800610287267417682681393755128305153856666237062002763485615547634199383867724151885451368770986166103055059880147529733837852394965326055117125167816428316499139422772573527190248281889512599215708042398058914497301517201534112201195022951894272176869256603112480457163427867758429097909728601154467736547562488523563055104229335104180277607339854576236409472458055433593718690609480701547876655066282381097626367308562761308266919224060756866909645101842759195018199368534814013658479430455183048356979517285900504111143377381811734847811026260282831805982541123146311725478386525882003824432702046368448639397537800130897765193866167493400740343339387138955377936079263842966710064734517967947175704220126318907539860469670591968607396930766570860403463184243832617448847278130045408038812514322057181641320578110003285731046909514115785281472316933377902375754472844572463574477313035429917716432741786891336626288399369974547185953678337932055954902504111740115459764296012656767034966440570719919455286923849673160726608588086257174016741923622440288581363515728906862212482864481585890313564846415076377308551221334371071611442209884395599901299595783858988266972443844233303508216515959366105355100573386900814718633393340224178277718513189914782882260596576917163899953671380918556505478194873218015896789390122978598429071439488572499832008015403302985008612895919306739942583528750402486536374817740288965928781235948527998658080987060562681539035338627398438160518301491991251731207183481518960524628725413968360217534242585131382217160209640738807844688077893771095350551530624272067350750984310265146197210449186742838795304247856241435747112910220304262641750867418381826796392277207970650719023425215613573896587137254631161642102147265975768784093444382446071547769036619394658763842496057498902087938909868043413640483263446832177469549265988212202128317430514706216504665336959676760931247821355615673740623155392222193951508001096391828018729917990238396967316846901596559307380178391339904100354853554972256170537566114836998876948257621594701727625880910949634599990683997308149153046836624295542183871348415884087434867967957198949470640794181304883419010028263598387288745498383441410902922924182203959485164563193024576959921683164307343541980488215001142325107977722090473083656367352760462463787729960996609565853343101240609354899275707298873767043820128301558231685051544852056776479540197041674457217909327101318569467190228593566440277755120933764004077815287614091178833285956933473471357000310672564314867245737743684835052782669755412068416873792633081047567507932192126741738475247946012268490339688152541997893383174889997875559803283828746409250336857336971196062331527299089381884840869173983501965694219354068606527742254822069162180104927214804901279687009091080996015181513804403526180214493215862310616555817944027837194409153973245384107770073776762727408330491636845660189921648645162484936786138467389384783370005808403480531946569865138262687598148450687077408652162134216170393951003059118086428669480458589706851532085239644385778115533544928585253403513377603813346577763223355694288636924167074152005689129941830052223698259927710021747914326733875243165370987704543818557799217733591930893386590937447545258435089198749558459443495446155814943571191731845514918737031529282041242487836238722470888053590885833291780562634457705971824800895759499514219738907424388314757948502344408021940645860513266800999809626725858815322284919757449839552404472399637686671692897148968045608159350892785579788280615148195662395216331377066535406651746336497610669892521243160974613277518076865368244535483238619656319961058650882970874712352081780938592692972680731743936584757436953789742306802863552755543427582835528558138154294668495755983482193193175485583452675444786300022526526742390816029411797668449071986517506876299572905871268143918172274936868955732124621111791922806534086046803936975415766552013743659542377812895390034623943157772915450457572942983521796337273452581717470294286032838620782474364513302740381264567519550687987351772106469357330347394059469645896035355781845208153984594548246078151360233149722520133878893145790679805994062986049428103515154146058434061594558970935466216777946788077218740246812407662063405852816908277572142001462774229314510056300630998757328932589782784496864132432349966966738706658522127151261946053348647023526214652061684853644094118390845213664233010694837930862345392782284399426752392466365366780557169112983446457300011248249406460396626865715126264521798043552109822340050708145507069131771856644411695760049520944969209903068330921362431418740175360866487035040259080411737023268281853663197991873216398301764035165275303640155447867271954251627979745059524024713681109317836279375018809524059247858663373129045496287883296741387471487794056379554016914727371821694620066896729971245085467070209869553314671747055637525760529719476331712279592142698592554202000092642528492479308863361194063576745293641999320050895661602607850698295159522565417319249174039647741266124864533955944593869915059459350498232806989681138490288305290903318468404215829084378426283205981626079784045032766500436779867565212391494402021722790164247888735564516256379183591054713798400427200098050897756644431635810282072466807191753946966853324620197188852843467428925933247792177305459192608210542708223772301367625878588143179257912363377659129725874014630973419524427285645180396742202986265620413205179918193171974733813937116992327314561094202904239375826475939010200498542516717580103682933956197582460496699365252689212613338199307461714816253760900350303338376542449098299025158937684163614487359445174917140453209033738809367763162721619406613007125646161161595187334177950517565295509867177928070346273574530239618667648802929598833285149303747855182756696148291864303281179669162499119439383792523636661018755696840170389778624753146597886926656701637145582871031825377906707364138471650711408029120064189052299910006725107012944649362158662433145041054395161979290281478967209796958200066548541500053617857737409286205207712128070004858585210106433021211671060167521760749487662535288041845766549482562420348704468251650843234659268382080909442005573078152895420712020633463664518427857829640804182671843801094581475404384449666907232362205682042743043170860464518365693761593031512925401774786402038294068447447161446406696753431275143210914982655090961866234515103190289524231303172644769560348769842682272248647622385136547658407755239837001688197282348164082640619704672277459586868241180857279283301903712710682394913525118321267904165529422310390516113371720930032459687714302706296256877085695058119246371713977303134230230381305326976401574907173387296067501196824210141906649520973427669501339068175332151371935361425281541560681131949242053501306512672152431725300948834483699051630460134644750292884571245107423825643059005655923503741324180208356628585265921761216069041486052341778849630611521400724142038417582907488749547387105211659709205216061734708125744125271211863485720458393881791471779166684489631005228529428872954158130089284833448062851806650442916953248314397203290552361892429179953440170734523907349859649348511215353086589921068813940432021738949368201612820615104193923080823656220822970996061555174637752835487007038585873381968651753859097485656074420308384422789491634112427955261812228085480422340813444971599085544340621651471064906115938774283982883953796809458236866511275214627714731670798176090040428934407568070726904410115799309419410777417187283935508871985558078531624176166601864494709244927865618578079706925680901483178619446476121257481269958691547154315720377283584365749512895978028273438762650791232105546910744778287732328865535133499547270474342027729111016981786957044049806443338196170286867186163648539246009621234597464823309173625404290209948560551851624174391777867572070160310442148000531531891785195054028731045485600180159813316860093901550238214766982024547831950135781384195701512276042136648659356968013570242961894889745079648873276839400572957875888002962314856804624278069465033945068651120602547676054783310872314317057460022268109919733068891171508397420185211484064001450987537082619606446218062811012067336165208984910758258105142941407845763271454653499568263747465922276545064146891924110146903990218433091049353408314134351286269340309844294036611701089770544504430295224942330915452383347230365506787356800377340426082284918022129023873812311275279528686138114081126409795512593413720357197831482273754749586810575884791006717871846719851659809353250575300230231459390266070305638038713920527830020290841353375396472470104539850578845219998858798839917959275860072866756713641254679417096806913272658427806050638728039074402386152952300482819226901001792184668871768243745347663217765117005123641202662243613238013104859809290111633336170279263137100056623787211729911668330753596474989694288720791237780776166385196169953577327182628946615649833458577887589102547414700241624972832456390801607245442224885263367670568700829793600726727442107132773512886865336219329042593901307581042498544083302729878599495912712999215151934672812545305751873315997529954685911816084831597222408092624916665999393484755598505410988605993140245239705335115998904428395740675839876201884448329529453533199258805570570395778269279810327033793985245622178524446003259167510617504308919928423475562645815912828321878300944083848934588264023605804578368318936820154823137229122045540524123874979551522756475020033805814948055326463185358656185251045307865042720692712650588884952084018765735640344891878315925210436483389402157228424822474665351867932117360550357239923399704262574046608168580860454968620271651192274302015868466863003817011015354482789433679164396957166145116609937201649342994534693605959107017462372302581724251350036513133978951467548691540539561976948449722972672997756867238327684068667816539786230454960911603020010737070033639724601033624733357656823188861931847126049267225099356450479672599746499974723357328212159257787996884218504338183964812913213701167720553107189278821606089891024287501387052060406000974358174250353795052054358015516313491222045625005246696260774689411191861998426511556480175766298456842117039410458901040994175902327004569023303472380379638210747584283423331933293334535488580835273870355295580318288506417424605190763631716128225114095606204973650776876319980677798177265608128010351994481006454907070146946202444951259125552813014813427616699839765149555073060279056047018985490013367449535810898102541403659278186938636753015956665272499925515429508265179425124275734976098072356999122811359425414394922138722081483789137469235254809538087261268339727654405207425593181219334547988513708260604534925377611596883865686734068695673120519857075951876626500305802356053337494037700649764400857503677201245246822067088763267370324002560829061283963222582965883586535131232799675649336357521103978142541633185827648783213391695869414190873673805540459568232729432179632103951434902148352516488726192294133340756439146833836723348903822961082631845879358729497726897065362644372733285211053797597153242777596724795287391560770449188418886957911175682187735585215218088089986180766805808842830713793698711992460508193816811272747292842579911458595054055587795273880037319686172379509705063598625185872604775004884874579397713754509594056716972905728952160029546410404523013838460313465488420308686719720172912011719224073760508526848605276163570242590229943340785890054016403568693053960074408839781366924010949631974056433783426053776867896468029379951673112824586856884755495941681066831006394059041162119542032308767564438443734909587344571597956689710639915822624654808825234807566241217084841408246265086067156624865076061319502757890128177961417119335152295992689332990218942317999727311435441122715044710171805649798093439113265928976410242383848650717239028837732765234002125263492692132250471343815911428355186010336159138333995692553877247598413714024257070643023815020666265402511072798836744087282699751429737042730740016675038925039854144170690740944129881206540786708155247667972813970755468137855905243708422966417480833585803158150492145072699942168539985079453134006694280848811445411593404989971745180365119242995869800163155012095558518824757152047563927963053217780861768938151310266434402772924773256945187995787187220788282824933059821437880561850021412283471020932160197641951873253606205264511155111882898217246557964488936809875874101390259049305835176800571795069561454832281810635178832813651699971227545094173567906447357536873441803658553913995860635904118048930868361694397643993703680566771853259544749218543499784959930061005863358750124378781506525928626127749249099229244961766779307609560669819503472686378538012552184376196106198380156139349032332058773435364851621647628997251635327343897180003190787133826758157953231263573233382243901465933206318612646308069027956304834042497269210575969106630047514402867174330666567772864151267294287316820499806224318353483370111736931914936803703165078049102086121800006096229027440325757324716526327376639385267949741561438051796205245541698171183842578565349161474922979134694268405578694318689681664285499460767867207553080426910037651228724465092783711656485614599437468712328874700883551153672757457730281630619199068875027620287260946393144133358013738053937031300014659882289278659669795313548018779630811851663100825101563582714670833349290138735757142331130954920278214878604832085138683717481877992817878548735077677218352398380297425011746337289682003603962850275972741423364192749589871099041438307012283027209475874173569833505483472136816906635957091438788364756156311615148285893242119813133872058961725535365290102151832475812410961662723828428489462570617660060364585773917323599076247934456512224419670346372535248781074145913438139451637310183657864487098480807307107467777221374545356029881577900277694315363624880206388444569119288805772233869381217575690882178823890659050442426116497332318089242641454498755426034499604801625703954744103004870753193505418254048959760924063977235752735153494187926837443337324364568855648091012824579229010137157939297898017992604885353996683048289519968180372771767657502457166131374712676755300140900707320948093068905767256314855918919268547995092543706912912513299876409458675872875147367284616625684696018214263976833768913785702002701671413581921355231330748525467407372212574905639704528084822041877314406525578275415558782611289215932371295438360124533687171918493077540128298168329835092117371955109372360840332458533169627926466262298045911471092908032932529694000354886746359686676522343778307657115200317612817527472364273728122360918515024645718966684202815145392996431473499006989447023598741436121336692988276736764259124469515784000237692225000793345228606422708856167325169525170085518927425224016061237622429968963436038363203336588342222469797621385988399249063157343832708013530034227464461111191742234361501336607206913957011821134935422948225985992156417067263215932320076592600748549315936745903567477006503056926348898593581932245162616717451618685022461927247744688946432184860698801826025932394643142572911061245509607747584019541897771028143358430763549081389318389953282842217097517285356821996987453476067714643557171544934315654199502750514235794025144684892143165734067930710223807485588476060805900007381728490471085901158833943808100964033166036089257170791782303476134554806104504963853117714387529414733988270454625478211970936834979316394425519933199765068575069891514331785074449130544329549946625501135694043977291294607276319469648735971451450312631283616922351680724968677309269581273104932319810111060851650223593640734962901263993066155442530685326115100409296681928585969364545185534055203234444318779036197540385803376019537868024435032641608877406624818443356826625302761319971676304988165940763606334941265608624750721405586332099272506443229437705590041814676554598639515375084076229074235273416159687729975080845822569251657950463038543135858623653068040169879478020487769264880280594351986501237246235420931797983413756898841886158971765044931405350446512502653102643064807491622789014639292107768718031070840299216614516340981290563140553509323490042734065140056028998289300123824307114417791020281199519120175228937712050950322180115906504422193101093076717757038563777263723502612216540387319085925927658891995239647524154512333853262098295972963045244098409884711711572803972167328215432380869498417324754339784445419020482481229017502749683492091839522795643023858033579524123750703098204217758329284826284843199033467247136247791566263898734855478229353763898029290357362795810768699583365739644881106811488708992473766845322549232611493779525202892722785338627510862406673021077201470558336680087476877874873431194387982058260344650032504233787208606902855823239772642664588896958557395677900642518048742165647729829479074004524119159285587547098455435134209097267308476749047239883739524557263993382100713688971881402298182301651956725046272440410821011360400676489853054873685457081185957615677702038353178593271036269751194225002755011758337173949402199516068437371577214504141106785853987238331963297575806552848441023925482637182364562376853606406857434062730777648351892439859320546010230080795193228153038851145920508145399257645754496574994445860560066401667573763887098999805822662760829202316633240475848682335430363510030691535797148112862916799906022117339096288573471212387954159761138265926654889873619317725837745324007015219868060015093810192616596586140616248373333642164379853113424168472782064704715001938714600659061657114752448116719985257465137266973179349248993320371904374449124399943999294412199441632914820609783673276157192965317976607660729899939546254599490602751984768994415650331512805763144942796273765244580397130585581830558328018690587382217207830536543499585786997550122100599052046952152814039360817592414673444810247495417392269001765590891834458409509940608988300442771862125396963348982132761336695267044692064774033859884877679182799028761753588955965348592531647149141954882981673490493702841949391315963739873526061470829557490590121243697705073083437824843651646545436578629898853998155100908673870399894835541839367350475911085619765947242649143220624960587627204111421848415397822110047069938220638163245126863023410507449177733857455671251995621601010453644614999715041383810812620834652548161240034882361988337866828717108164503887691051382179128452155472183883896605124279979070605842905306525832742396125391018324721891632697215986667460597573775347832331050972385088401453163751297803114404747062355262172854850126445898270472238921157379816857701047907638288611835143910147610332366041127462184639809609233813404266540198009753838663039067916822642307253933763041233228431740126987291033872612900253957410536451952546252873756898651596244961189770062691878304988227335100249198835180306189003728337089358802128268169676721198029268939927857848323608742087110292890589288983493482758537303963588421096458181539414798625212388980316453763077046317508014939798677215363916525205182611768702180812770728326672804377864566945235959357770731852132343290381833597322098815598174251296642833704520493332082850815423399028005329818596141217082320568195150071170524650973688674924635729433482724548397812949007097776152020889850105575517696561655455108916149018341986516646757878845979473357066309735183439346269867088084975521503039680225118440662316916503564028308793549812327726719623178394888324525372370767668090458190537461845538607088818876081438499854973869816633571667145216163358664459773285344847106650247373659996549180418736999139727609434429326587421106419739219267897420799348649555881992608700707839860640664905040572723404089438458096865139639244190613679112465905918425190345393778522908291303833859295956663902143367560550219400937107134235598011359461510799972925451681063492514481788239079480514968116180489527975758130091029775567829548514859582607725043433262073512671745617016978212928400791239318296444126412917549042322472725141940029753925991852421678774098858441114096525044872800170037494321308518567857094423893810318918537080786757745051847874325263938096405169414350996020290239018611488902614708817981975639948097912975088067007074854806928249720380653741338379976090399851113334902976284991903357809084806868021906884303623924333268419404427838298174021925704317499585719230927031705623336425148354434743438955991311008284502315724197328630596377792249642952833340552673889407038674684479682743093197276728301535974336370995834356131610703604603872964089644580326639946479151700176080298256519852655701217758134489188827228770994915211471315069452315907936200806555184897949655291019652386587697955967775796439578756992411988495517260154873472869333459924074712886234343980779262301691551021276585593689267957731721329956223836660646524105460923094074443013427591146823898299224741620694067099949196258339171019432020902918227157061000089966260073982587439774847237042997221699587368615579107878979436685799633008726952536886687926415624656473687810346063457766610218290934473411768699574089305494670604213481653164211097133111228671859879048455860474234773568950997960815873679951286974272855942660442745440475423318056059522769557087993885324002297706643527669076231217457651385421638023986476110891800685834049855143130735806477882879042173634619683760849952509003862829639529587948661891585711637086277805552106355902290855404891328606810887280637813310487262533128892008449451182117771456609607891755194788208950295874473620031969107376173798668105858835600571317680581073378594083515222586351726066228089535736567132331885953917687042815584527651784473496193913258409869368286184923931767654667446185947481839051549784591039374401529461928217786934896517757412306972821247394063991784340881144235544100755668978151450902441417209406992746717725418877541464643631731508474055205591117294497988674501091282854751434955103729420395447161157977942976507827073106644123077498456438376629169193363166985195752036763229827471018984892708820531790010754286278919436120543661085930449911781568718529140642271434865996491979376204548688059566481915310358439927851847159488602495222668092264446428040839538022523674538452530620754020359569661570251744451547387264618061374609030913523308955500944400825595018912928185217238238583820789553791265683110098766915458274058819423936164565366820891486353559028074849562848103888403044727333065095701763384462081132993297129894982950880487572953565244714162828537542315998953533795053494429594844830729896309607245127186477072212094240209876411389735062159132789081207461723035311738859527206588420605000009971726958961327326946836311929692088033356615572586192698311941002368977954697841925616318247871293379544351101279014704630207876949570194774951240114180061537654529187372538333333760738230619100781049643996650935660285544203751330450741409766530082530125595515250776950403513065187457393103349519733599770495756644830348506790871281774283233960316520840655148487859594622548869589682282275675684192532685388124437248047459717339865995919196181627803977013798531534790357449487889950866145791465813837538358127341428467556198407002657817229383154316934577122580577953480653491928559122090787576080445450318448718163713319531526561035561814077781085238659405946071180985157713997843413388746079365281791069068150043788284007277009417166591770447239812999472790133510492361539129823239620727713832704650166901736948859950088425113178744235813632082346583451002481086024947400171403218709694884251342904165192703868899859194730620120819188474744013544831331511492943308996958817032923787937055018504565035941365038577160988273973545970219870534974881306478260594809224080406338908356682689949497930931359276723615976838463776887188861888060558112072233329465722225212569022096953950522927885255183525800309628899074170633539988066832067448841481826255106978341178892305318003340861239133010220947621899958699833292811142373867284946733529594370382425334262164016970219332458174797046505911188150732996819032211526397127813861528027767508816647878499265194996362043561233040643600525571830668316717719503350523871207875478901246456537376701184220072761547262648211231531747690756019265537543873670250333307283401734564140866783396949401616253693556496579582968007683190893332474365786218961766716911577711523222253620654563844052526178807655419399495495134077012037311891012571481306084171856565789012839238899665482483571941173607844419142383298997895517782405771751287314644250379523762396476212622899247464839565320406259051742184019194948754013756330876017758415557916497295718495668925062319877522537306241026856020288190164616976950615790691975055118795656927122901647602588035765708358150964541613286301806247704387750858617130047785972224757127611728080066970779587219034172578112554084340014223106526748006948159583946747512194562396942004509002097153777528044054209002351731392403557932469580010651373435007754208997919025885778435359359998589882990119700388086615666440114308737229305758460588459613318448856575563804915332498707012206052993820180790486638211092260083969660683198879318808101681274112783803766780741144765263423443494920470066200242849055693938708141059590521745170455576905270375841137703667341132247662533163948368772063578492003601981720623798279627340043885847373954217956310160073545235244810636060387735557273212186081942221470550969527694381780155341811101809168217966878367618694887329828504867255969484268359586676791878269680715558426857309146755730030362832970855672410030216571674934753530896764055846340527673820755959318643336576215321748920723712434568387321675149999218761929546585919236021646394021494597336922772665976726888662462369094673243061077629899204617438912606770388706196267373286018406468951434333710870738373232082939156108634219025297307783720747142247282795525552780457866635071159260444276791214979565243307635200692456171606201000927822939798210092401676286528121105614119730847403420122167694205923890227315130283446264242456000427420462634705909237170622849904695441149343547262108577852117139835559636494234259790545727746094085214142756179952321633266657020562448911414511046993607568188725737172225877172987428704343054605953542416202838294441279560874207470114272709734497002070984454437398995515947918674298553215483804721221850961243010615852542957943296999738875151536246250269900774500146639943628643773455622645761321717503454108612106234707127738029841110914797502963820281860413432210478546237547596022967644989153485311342486720766377074717352809443014951931321706166971727679852241471533869134472982097301800402177885854398258991917536772519211942249835830687821110220833595615109667813254282099499719261766593173497165666404337624771357239785232970683337113718862935730034812107809816735554399281253144246342492814136293179052507937268891938779702749763442188062536629699839470184614905346772187450334267916657325093328471439173628047053588770773137908649135271567926068440741847900386117467628290089888983040250000876240116228909533987289232998671761802549805297976961902531357885533010239659342601630585449141409765368303483934956164804743022997671647953271392597660529700714289894845491843822265177544350981299035504196642233720804123671619295332789743683373710112215527623717362612856481452962434096560049160193313531756470594981787630806616516685183921431423536819765554154083623533426171939092482234093031886089973749787157967745975399277509098769597952677142142220047923854103718034780252352824340958669344652255512528717156019936793785157933161337752891747613642585539039883849028577870912035860407797360976013934147802567743227588702727762546108357070121723999409655927142164836757910693058473725846426715551343492498989484655383061434681611032603304713701171172233566185032776074179990182522836340693577817423583917745590668079487061955329546976343335296622868982962261945978770542878437585365848597202628233139767795069625637292446832300139067597694191174639919890835984411878636500757202941448180886524752456376345733942828686689566292611839986741381633669810707010393332991904920739333754834765405902523798342583403126764447395628081344805031028558542398860562838010324259005984662841935191209959967327941528945016420466264665536437756702472002682347432703773807028701385075306871816342003490711098242963679565452475130701609829151589835596010738154001077093566955126258654936636881445497555934046647338639324841976014752189583123176176275861424000386806361974352347573954529809157255880628279164812170975961235937881841363915496426159544453916027045272132296144014099264505272470174376198639943320785819988231692188867111906471590958968417238306198178665342216397745975252402374981288493504114646310578885031621804621220548355374250156008650456279732441247529776990294772252447654763107582989443190893298760326280510614610237806452020444503828346350684745833368094935405975712682025437768854247633522643997940115320354463611373479682343382790676516794442010938021742047022982052168035225708998307174791318904657523372147166583011636152932368174408047952243933039928516915483264973954118709921111411054877736057952143668357974048030185777135034425271479515035479228650593769560020497560526396445664910260102202317203295498992391840918450467774093030013243574610314470534643486972607796599744110119906630301782707410662601399045562577908775633988062603658237733461595169305730340779066234560895228126848181852125788866375978340159812037673809241214349369186504257642382175742778982482301456344356439730551346622472991055977136804863020671879194430202420819157035648041344707195254520608949149609195179911992437776054050747533128690709702355812639247760973603036610985973118037756682543442583210620238086539878318117853668292842633667732797724161621642136648840351546249237741722161528129041596096235375249708067228791962262663860929830751800889699792927797481561999222223075607767440486900360440421124725703027844016373448457159958065922985148922582655557446580501663731771710783339396612624066482232508201767056327788166981452009804627283749885619297904511648676719071353176055004729815576520549828405964106467463036420196707847650400926483167117650754464461544286992601884682911886792296349720871498815248429024457369185815692142997168720449847068458477040179437112935484516224157523292165451023293516582241207956186557196176303702501183615225941916962330875597192839168380339113187684495386994253129454692743468947073736918516145200773821633294232647266699577198996067516975017432014037221568263668321155578786301723235600479782547767423682240537072014033320244136751223591816209561480864280125586546157364345861207475714641483084602757630889419786198562606918007067493663494849814075436594720814340557004088075472818822057832906822317445480960401541482341601956747093266476027942860592413343347684733797624696641304473945363989191014854106552262949743301135922872192113330053959264113457345625976737214534801217272923714233065486617885012042669094542673485683922317666300301019643042088327038917552749530373403379819458990307259704573483672583093979208560480670401207097168286102409260003980787340707043031541630900849907560619583093637846544369197497897378673337568511785781032682209242065954354762620443154073935505922599834604476583545764273723784858878284446212532734781902364194037509927965631169726596968180942986246494025223595838052992643703006131615469128541260974818881827565975013138722989019670391910912986612094546553653429254202026970740741287794747149583013051071195537926940274043639930652984724436803772032883516553024147278673286029595168917121087070038352166742514372914747890749992358702497426055402016479903593919795623048227385117424400681444364346233781459909498841533176115236198114433377995846639186657848006352924299871001420536643578559827996162349225571627155539234360325895267605232715689052586979700296229374258635507869293560090452564414155748465551669291297086361230483625963576684708845119581633329813182543736393912997503910243222519796970818978296549669816965986454135130494977516686493472757918429509058596767374335194740649118269180952369759922408681853020236723636825462962046385797785061679770040052368532875973711958873716259257298453929079242384510202697243754820852042292193587901989562069545573370798787437471682937041577430928650007066527543519817091469213027639326347478333590957594433860476434958464428375391392126361639177208267867557102255030615083060725370642565277468749519836385178385157914164234553509443533829263881566674894356893694841213085682813517718814805696636731014087746847961377110742083831455252518269570189741745012062958643148543493092613456788546074742253172016946291846278397129426109516674452061567452252279152864532103216858742288506239725541775617793546859899332183741296445213005911619622084856759935200095599541072965498098835238399128732926451869446414581033081984614229637667790225834342325924417561328083289652458211444065082183501138495249891861299839439589772739849540527938357171046475830558281263050558524777887850776471871331328706400027898465862442296153701472850667160634010098431214256865852262444643058422013109508886582262005066567274219146469103552467309790114611281669997557845473228303290232382741436595105527631245408044543113197507236388490099613259186953704571405786783204144896854616315045215373736365906368663795702208754389256167306801049292923787203892529077260133871217349787921235182580873330289944447734908131338139974815382322053567663892732890846526571641314165314775462483067022601820017914510156406258103212200614026305411500071030944834883809954560245272668602746653664651111544456800997069103823754342108997513508804811576200134966539248698463363978309360400487030904216771227750711582956429844015381271710856821360944613331586322208853533456017696268674541240129458545970750075814236702823455486776043308459278111372669191504999222149496619467120867428142583560355571817098015288243392447088272292272183616911912325580769838631939140368741303814973826621571745845463788649204148788119641524599857470817367789712835373151166066374697729581436318655802137138870236805569274976072646809639209358707749806417233817594749522436967361255021552371458847926496330946338371928813340015138944048218612512017651927769993338540921651381682176963880833406717288032926516960048700102392815821025142769127725156591445337678476629620537907985985792077555619100665136355072434764901797431940570904792285451966424032810754860921061185103043734282610626304081836142538444238182715375641241206930154876249549815812795728313639928912779485757422881135334303541596351592990961182081768940320933898452306415317003327843162920907986896371613281258918212000377804745058634251093084389754920275876200996356629456551555747231253119996807216944910016012986371692788283045632075929246375680828473826328381618972386272426938361265296303873394507769064799018000250792936567645629129151022825381318447467856395625900616894816054852944015261355676345901677832714144725967315620636783418152374415443560833153172896712707414728365695064612377443317807886322211049911654437836745077115682642294165718584890104242109329338371550703500710228050336802185497897886810484026072305819820890309124526769592496846241219476705484849470458514651886144707395125080712452019377774361965763364918585816548455587847706254002043563368569245693481505682723541114248780125352596177145793422081081912000946504704305035202400556071189191334832932250026051846571218396394967281892016407232122255795294420859214040187245266220997480107172761282934994476726279199877030392844986230704432380329033244927232660472598775727781861335358000875504321136077245927621993551149244464739822121304954883612092305507626959477304578127942208906814754740504148168072779112993306935611486512088857567933947765840736704854317192125120653731629054200217292443884920934641140899957710042399987975951170366447779357270073128646932189158429831422857819535280449408173380400991164350611703801038012036133716922921604397273797424820159046386520532629091561156852148518695903216185667024746984440064697417214184154498407515455747202823370979665732631773012532934620408041889266618617185339913071511133729823237979043934148354500164390805206533328223836133833017853716154959960408353025091408785155322290285452629930352438402133134307719354309691608317685177008697121224204486920542563161833584674553346166115145283788349218281009800350455780946749684730039229375054813698547819386182876227890265350867145555949285896864765200200370346237625663009933958877117134896021550079857006672421401533136620728392489365337983845144503048254693574506927751585361171545322728205377574649974787948982208249040863413730433172229359690664636374342976267088185315866635641503534479653921371769141671881901614705243189332838019054456138517746286041754271214894519213447492030497831141360585448216757859016641709709018344215643898827155694170284664499695480866760349098673200992797404547369260452215876344564575907150012098256038914018646707705063805631599822500261889707963067830873263152075387161219835552055835998172738185848522747951253165275610117629118311814423199745690247202899721104624649016689673730783914227265814727608132279256968954106208947163042916947845745227072536385438775021984714515840747294703986163472563187833642312119776041785380815094311667784114272141480952091741269628708839808632098698611701467486718689445949674679876066970735328802213922615886232639257908609493782746503447040939542193493542395972599169508700464703925720303585954906331114912900979234865606222490020398219980436088090676424749246357203205051269164340340939782954193668049584048547273009130296521887767363076785326821041814027356435923950943951885611872992948839290245087125603889445706134258634141050430704015853596513165767295833600846201998170042164198340796950447320177879081544398322588411081549260053613715012755091803401345805232233868623321701320869873009879644461303950413618380312575992551067031665961841409951489390865640468488878252084370830876652598513719020938330326076765101006264765257584232295015541483009702077493827726013083290408364682992042357095911713592551876536049050764570575314340842553581819206726587715249503807058492750832124471913404248991994727335487422183638695018664029628779025594516724066578862869905273057561339512797821472335155903841687329995440904730104098780157832989821456842619830239832430199889431132902028321700402092948576969635670687849362289546536187903203344992778573080589557395872738821568027721103215837326457114848443016056079276025640177878986760995542689924921895946722615682319914071472943341927407393497855234819294643452141541610266761901052176827725726716180580178036701972175009992817900328819324036735319068342019696374026851290303156433356460159159539802050931447739506203842698984649996056328737125040160982042481616931744737142375777488856564451119412125061646329870866756337070823705068195663553881516234856478745763723622168014659429195309053270443836120994132288033896357016988195230159280746692246989109560822240199283734748973181523532011234830487059588271551860104300269955571248855334318598688890286994484460772579942382918452521957124709119201732545771288072303947536812737601372027040022834890044109331845374659571444053220894730492709535310037256933185869720500944137881395408796516654714812972903351173246988855533798143224643213449092491929752199095291855187961785453871805474807291024547887142736671278739225159508028759980118966675301606621106213088779652368043779633156015277479542756090430814517877715704740889216896316966178265309560828740712951783298795916878335797124131049041465748566185592861225424681763265142890959672586018097762433297987020657825442559953490712945485251119689493163782078282448633467378634519606342099920107687676017707188224718317380921108381089876069687643285770408034519155353595818555939026628889959763887311649270044243904114637191198031797049838180659010959687110574137669298624064580432652091754886761453459971404397383017891322796526011539337838405500666868211427744428699535707567426435046963480656534451375843429273460677061887325815736159488303700869536716118284030549085364949484559018362195690190057968467342858475656804233677853347901208457851882854005584940236554796404320030418639254183218839853087720309535185786642218132139170508129470985352119842606771111111044878715944913375640596244963842195390481097230306938775724365743118305104359244682856119483388598803047133959937319524557971526518733337579839662452353539667153407573139820386736270724369254376402261596661160463635658913762856318593720967526412815166602906657876553961977396135634976075945167191454598513642858755581893742545904003621258392244396043005777249613155721755469971543881562495224302882021619342078006130287492436234634512600002444765402081045091702063798566509672626370362327802610583970371969774963664181681329851706720341216425570521109434875791129876090797453911198772106345915493229381290718426830390777624572120763666786525582588626414636007933965467793361655456715999225770220840732916608634848130124951220919047207233902057883536717551772900250938964998677238112727392513900561684469740534557613316564553725868066983147922539220185341479407987695924168434711988258860403062463341815351714133576038955282507408687944989106267787488141493017371652525137520936013536555773427783097852777945713438364411119146205848027713493169420668848707665291765271688830949645717389185300889688436959354488168880124732783509080927077497628497091837917012182644520930456915339582805260219261700287956897336474116478857881757740093511791917025548132906638440937755824320272843728643930537435593852471696877868684534729785921023511513974803253895648787834030202789679117739458156934584612473047375883706261578769623152403826915396078731516791044339125679717830935308864692721974321610902517490383567591969630958344606584696273315749315626240195378840071899883700139653770483402739965346088860831039485103906822049678232398229686978650439250910571669627384817720279354920250720573023198170491904867030509721250780118908977929505795434341056936190080803496059378246625669177912427199857519464118620230594145206291288578383097111319074967857583846132708205189712977349227417168385146994753806731622523041926169210970915947550025753502227510404550639733914723558749521538007133615688531080249582803895859498265138013929246956296694550523049071889454722847597214386162572726983059375359670402905422267096216417551822880030707059981136602607867983838636550245801865105857361863761191177291309970469694332077530881662477081226415163291587327945463193080550901953772861011514811409821544904116538933883393908679324277560901764089208288481319136177747338459428567629758911514418539821178913476814990824573251756216578035527063210559486944164147449340898594098473121402021550415516177114262696759790478788343128809034692929925794551767405401087898121090328686598152698685750585969746218715112432373801583582683291335430477636450409830908628091454089718281072443250453996757564410977005944968988431835522742329172715664881185933466422569076555840307694137063610667075093769244253989619280853378374518374171842787153252881878605216345683557754304392132289131739918582648945240048403684346303912382756013793349285943330616897449617381892550858547404908601172264045731581750951743442632835372384938573537397868419404121722167840779680449279091716722522131989995600438547473373036639163128222144392039059080044139418898722263202483508726174707470015047327339443812979873414911680068906630820797826413629848029890448251776916811093457713117452671731519013480885607456643511595759787266171354654386358966221557954726760582991649649418810613543979724337514493095814183686616317970319405466453232966565908436175872917858546246476601010670747587632336487582287446435142710149494797244456694154582003538828588184704636095918111021552265411191152500089154445100213862275187855306074470626850969125888872789789039904374278958921316566332417484382800416973404434638788970366190161893782013985892969305036499434649585301927090024142776395003807900155276176975680877869315447476100159897724698523861992943492157033862871936246961830357697329720865296214029710775971531067123069592880995784788874405316403399737613680429809492483893274783177112390681495591145338936690037115711219210407379290084832738934419631393772349541601289727006064623456439954274049022659998392168115830217675727981205238674178858732796685874711891888778085676290453503040159316089696201449859921962199918389768427790323018548016335223371177182077648634676316031815901695408050243484659118388464308552940774213910322401467047411299305393274416359272445162246966867475489868945483246743364189518303594290647536228158850942720929275254490325627730565470362457800097306814493407453139297742657543282921193835235462018167011724036736251785840418744146195425833661869606213319821066765293321393928735995574371736643658564528716648212073271733070227525826636118692134511626095810791417227640539008623156277285489730105638747415431213845281164272903765989630667230972043468540608833522682869254214517387237644041129490290022306177828986874010913661198933710410444651446219127526893301332779523141585206149724391038408186204104823819991274941923000077092815728535970125837683122846378374165968361051278308682368462780881707262684322727351205840444775036984425714500594166084908077169284302442112788856900459509397370461891848932174451661043176739146133145796551621988186080695825167214982194709314753158922124807652807751095054271524737051965830797040387190892424904678353572921901564169404688558953561461699225951710029555686174959220204940638492268718182000155315058100032770789642209926054149656461966132234027479347379423484200364928578745335698954375274118416811105747545989855262477735712250157730989374336312204002914376793288021959120759182944540819232621730144915638825876500909949931046156017719464412064075902709237720460705955304834566726939035536493305871838920489071148699911413791966890004532713529742241116231782448511033721801350699739906368917405904937427389614046976714066843061848488379091720303365298348249967698704129124476841515383987238283246339619513358784132476089897584746014698468716322446809819039444592031527712128372431581874127610207990399008345046587690003084239896096294059820936731691527482260311722370587258397527533165517468734214554153092940793398058793028128836402141888692928577329723245147427457996837217317068415936611301713003996669163154445745689259082292096207574077101071819023700419505460496278765925973493930290626503960867953484104591087722596397794118705985025575770094520457058001736722025589657313732398670012656689145096407883846573348412901525314469520512223906762287895822920393970830863449074371018569369315122768635143434376716722288123888297715960440482374292402188602399016712383263473647186988757970939702841950619581029921825487404027224682798897781894125474897783841306222804997704207404824852982272138592633173461261797496009914326905360005817815426955967149498366073923504409997197540702354451647291719658615637441037018692586788916935973944570097860171035654724559301582584088168974631728006297856614363198908957719802219302689141208050584384479786943511446688033376047448580520651452216768273307034627018657929251007445446030955758377321944715083995945674443672358386621969209426835607244029926632877643353486245645370478827021587828797768916357372285609854146185598971107004756862807426625818906085314933024723590755494617149878551180775861318329794176299308379361056036211139739507889006246873430356948901784234182144708318553118911116530019164043719691501719960872164616554934797354915762492413440946215410476897267853626693175721375655688137673729728432369768706168198967580313360579742007889421645368684693419498535154291057707078148446598698556804898482195479508201657890030623386690374275195286796098755310444874252566589117577278819040516026422685383621167751927444817040684412770769211376555860397711484461856017795721939266543255769134150212085742012915737121896516353811871508067615652283641196204925851070603995889505081630165133607402660571665897818078165433476905175413553849450459934951047075117810921728082089966286021806399401247986122952077541198586066958628161039556227890416904726930390206448015480065731018506987254475853461718530390801916942984040604419500587718672681364671596430632321073438501562086173546060561460252720780230655396414430648112630989448907333569705412635915598046504412622531573591103816057613761521835482855672545867601255190991024826051748835082617835874454444367957047456897934600078958596964358364906357106498224677614732446324151561716685449058772951479129295647982024154449359194811343167473503753390371898589252514510629610525325780467273986454691534717564486573874489264798202293247580178105697726497215389761511805349836514521824934610029790703676405067016324572735349694944298418284826160591552914033398004290536325148389799860471559989847792254867872109432371946508304919132939989683329528346069108722508944968603791502264564225690521352720119594025349824453136632702918534318372074116681597745499615466730843183110845612404981996104258918251515406374860085850176776629072162388453985859230944108926306558064350138503162675856014273429225977414228805703742793991164185700841106647128929079707824086527954216170731968572257972552760178634080631581439717245999546036554157783110537900121681636405423331513312642587351753485632936138272889232676498716722640448694322494682043379279818526226352182550714795974178787079327273683072388078119555570355784889792293293101862156318660366915904443223929460105191984296432989469597713746495325765946368407089555486627510918611916388246304108857292598320395969510841468077739416425431016418315434109500929529468553747547549357104077976484408022988668501769885044259134707284827908801412017037864793550068172248364832562326938047309951375206337693666292557161984911181319612551030184984265350472463263125585156506863775059290196030147344928215603306161807802406653620319106860536122062774548667096917257428632741485046167227946578935174212834033334363951890086794477903265319150988641636201214864408789182802578390530789885701738904109597808259788791379501413035469180262098645753086389440176560698191809478951537010813184219376345456129929389599075128550586607832513667689802939556447887231185889076248106705931596714768802772510626253356661395123403199828431816279501027537907368737003937018901135561489883569468102815428366530123920438987143152339719810041450110501571212450301660007457176830384100701953989760706679793016876850474920020558700659400423268781864121890375489175410788723795387902599585170961048446233709180983351525067683520822280736772225189360286142905275897976740358192776117856009735120011597117710295563588118426034598504741933797416546927717513696700158107592991282546544418483251274259038845740912894599299169297475105135175557458405838013974083884555596714058086507837141605834820404215064393836800679294638942424449578369154058550251871907002684367934219287661890284819918623386944215094987466905607263444149285547907836291709551708576256715913725809394125107166250321707992602430963596689319123196854421571865887546068576713757440753902598965593811380260523979096337670461887038574570574323788505841724935287800475715049397621327774912952947872978524829652482344957947913902678257070358003181949254572170370750569795096879703330474467266237740723266203206439287409443786968236880539392190449245705883215120214474251088572265777343145383072267536201643249425785863717359355054466565946482824782435528557120436099258114971741427454518981666837231940389969079869288393687984706287963093973105184509746377681142893669856506149202338123191643035428666843097912395765929794510036913643159653927614796018271662426243517135834454321495003354100063705905663560849758171177362044589118434150042839082184977185425897423940996379701557646916581891572243299074582437882605152574756640111612044930307205806924815863826558475554075175520210437146600975420406031395477971816220651497854820424029217614434466521374526318767971904291001208830625769063578747126145905299980948352229155770873423033098532700134474695979509275600331222101879920616032160838015601617627723605037755946845536305627804454550269889213930649434964920450886016061756557116671772431856979693310172675284966091896421221724444915578561428314425467450908975800729332446050175265585299948179440017348418783547581189789900404477850620790082904468951073726670879035197300858948316590877661867239985587191729201992961023074066667594640770689878380519587079654600048586033028985926811836557371090387497399570914911205348074582870102505060189837261961582463430711265274814337960673148272852503920852653440283043283856961171761698546551365607469198420694077413880382846773757462674281271646996995684758013832916367357447776156509060825963111703339092312191210382388847773926497694444849203462042552450313833747332276178086462912944495387648348663419542076686083881195673637555119019305414301829287161557538323374025836217407376478991986480998553767948485977233394877947289291419804654381660040993529240656920705469054349205778240243350515072500049646576447075575262212431722813402131225632516948108552784048984178283976937124909566155947846326126688218903451057045471720535752923050225499077734115020519350633376969592435515647214841651779138008145715848468722480069487269762089045021181377099397806227963255457355716628798924788392489259187349673554609251785522147770787783132285135114450089278716236047094365700129627674108079213913581104591547723440396913895492697788382418716999390112788020050062410532302684183347634637411310623046265676895017633243699880919887388855805979171533216328728760274511187741290666561142283192636530005204417220113403765841991055068362929392441467010812411166306847382742088549270781117346566929685480938201445957881900110983973398682147254534050601230734290998664551260956737935210954080679504152270434215121020425033601392787138225984346814700655893685792904175828748802332052665548903057386296969721109691189595012002275127113336672195851097513171724027268988292725252552619230890275361150656965284339225614589728055247273598322251425180044852485812766986431746145773573819656810746890842162183047183772754113233667793296681358004251971547211169291925077340765247337107316763729962528608253957380137655432620847590132525664897370605974126809185901183127648458637723937656496169149420013732947580845659204041484156674047521386475953030993526177352230238076789002940889066412759113613369643037784434499115558138126364035638657735365746016706863934994192018263451437657764421884089304606571571905482354250537357153930278410177700582244012555321399996084652234130991901498307078903075385228547902840069740395502092299649123691644887008329651197383202231426124594869242565411484156457712731751756361665572540630861671542026675301970932596514285010215484498696120907205188591489775806200365804629623372362529052953856450329893413215392196480807867704751330145586919982966458202563102436282659070399227244019289033172640752227199529926393612956841049244601527275814345646612424554036915160100895614256012780599777400044361395833241750996787986553842322718649484630987597994213758302192971266802225847016020446599045029657066950155662800513723656699647049192852947096830151711199874753665328681512825694631096209488962830879180686405308815567477438749758873529285353014642882637217756787944250992944295323924020931342391935704158639198320868476202960144779563060827557978946843530921682094397082092825588733733060677163193524591215264506766909758738070479078251765288368007859521363293507705860966999246171316527023650809046636172510491981260491999515451717490986816291775299750355198040678191238849927013991948516171967724268700337442429027326725390779900817446400697934541873061721801956600110817319696492639040408120345207532031701307262655388242172219437887857737108091205665102937470590756649867153529439464389090741186614401013672390107775531615431845890196487320783547960651710057778332648005343021795001579069927019893655428126104643739607436717364606030740093399106043012293167949920866240774292696624763732391388657344031193565990845839807487375731451872064420409542150852422660557203816358000343285131445234866193515113105938344665615882800817265668571105668023269800150423664972359674973200881142996977186246678151574623085868739410484285651020160826223134148891383817124268635564189331926812033830949500472785804785571051875096211387293434162999122013221799885111850714988157999632415123197409876116027958644060364462205126175532105070082369382998602811423977972395245349594387755790408255608342968399354681634033102322310625370296309842511216557535432186670472183078339500423039907859681622074945511405883580536983390332713474035997110859603518615328486299340656443673120829221014221781504159339017261282322477491085368039042248929278651299984035193385765832009682283149569804032109421757229194572617474259371167221118785093395858195044860545004905957818110035830418750093445407884615146831265213518749585049792073432654535668228015514204838330809339168667983794557523922206039442675594397608915691459658231068277024025758629043558203798545377217878698000589432467722665329848177511361226507278628517103068922450154761762935083070063831984697552671204421491385111808595190501220975131276523228348603397315262841222562656793327653022982001015748236323517464152753740388235542201592057898486790152795751707505514608365801021077635806217202827006531377483204491799621389390282379052791657125449001999104162816504821245011552230206494001603336824329678782165770514777647689449691694244007858363290787037535058390604352223554291082954198161468806524815640711896674885795908253996868933900115033224423443722409920037052610887423297595602869648786713416516674695676826446136427319878656389633845425557505363945910419902071345169931930830618387110026795070398859834842405655036505577797360502558280311698111815332158195857275018562023304122794417760112019228878829796098527440245034484410793303167737466230590557002780719105963564696704033950574931997122049690547952229955909171279624262785666571352276530153167562766225190511787872250442883082496428186094773241159294169989019115067757619999310387302311938928337001218591697559440905334171690929738119830436719144711216558649875650794865810868070772516298700143070217418955110644563841505277996495876537953073294211020325104625923225177594241448979471860349110600274903214761970461263735887083231237498443074532256992711948399318643566601896203942452413059881194664036480105629280049739196973737889705139838106874768448228843443556306482871368617951261107679813684407800750515333110943167709097221527422483535891861592233644665474691644176544257866144735902410890873523176301172394613063877353497676478896338718252973737444001605994279482816400217516844291758421310882981811364465065927142427555999088597653614283299334176861190303016279860649557533499909723407123324329513043590427071316845211997803825380042532544198557429361264858806399693928435702217750445370165199021397341192581085052577758056123935784836004416633244591628942415872698615842947067828521832526573345983993938753766518788062066744934415345873754884477728276743417118695705816871517015212635791948792889380117586053803254423972069046206328513824675364251257086118841843920962213506031085997147454624243776375978519658297088230756579033769114062943555534182794018268079792929624328486073664621620749887977251403265155939077431697441118651257973818820008877914396773346629707417079463251906926219340401944385541176210504821078835159187312275789186313307734406841768834027843024361519809600404273067750566434758905434032558164721306790689009727692714853278376845177161043665819331611564014955497345920533289798872725913442209777288809057733787220601926387507253445014340417982124679433373003705338329435450121147233189997288455266730240670130345562375616795751638967348757996791296939895380668906232439423800151523129223396035800096946371889715281681082500696078534958064677188107888583199299010325214539534394858381740518972679871112715232468295287911102174193853984825267687090438943241878350541550851685015470997760651454492099949142719903779424815093509933670476832458543477044643511968133579551018126292205381493449649207197983676681841375466521197783109966322576267047141415662252336778620728378039308344777491367731479747147343692152335930904231985005087565592549850307444446319306699734466301713198188412827614551869668165221080910830047552678714981574528547076234619676603368720970745175478152329562828092530194182701981207769046467585349872258152827301797151856074356336458708513736174672894341841890163870356028505591564917569510631388634178491632192462578191620094347062861364842825267062619239928111435181059027755283175688643770898217516657686885497337806858877660669809526399954459794526651813732080866038327837091422269916935635977020655514684775037798762119127911024602565245732106562691766766252596119816422605815187376457062916171573733703800693416214028248471044642649391517071835151102981056402304690278113747023138889786394112797496229482517140818557074138412675421129183648153188735669119583850570084335213479538715817298229321259141249316184679040296841411668962625679992792109630511241092176087263937476739715202854647539597965800486568665678699501712600376495289789973077665145399093755392049937104544087275220739634359519274204110867432720909701801526523426644038966168829537173703436221938949451108195696524709759964013457656706073328718827525891398068164792709760464206965359941012666187854869948246914578505105477476291987771593896480900609441654776857916001015382801313945574650170923142298296698975224059554423678038087032016608749388068930565291194772649050977204790499269771337821479036139904984862487059611099472053777281187676336111779014734505468114985124357806639541169791100043277815166684591015229503168721941039032792430540645498999779649993679246717360756077877024516241451025696160051221064148305409767357812443545311037697154421395441782271376319677945374664071285411703367085962714423224521424242724728805360450714944954638788992752418981821816768211966266493495392667059077208112166823750233168424496195627256307739811422701487446962296450628822062022115181889769820880140658159461055984670179490777326712480614411266121908436612733289168887550310720831873457466308636278423093818332897193971420287339791297562353854835056315740063375520671870151596888929091391334197255537853193788705749086191376540572437179145621772315765244749198890679507171581710524087483089512847432258955449843031761854194456307045742645000411704036499767816114592154218685770898539579230002397365164910707612046924263451533308978716752243652157981275299110800554224418800656141938006830323020194438620066944465232246350376091472025281766630572388503183265237974712622213176653294159199918806038430957154365790816742151231029121557733255402513133550831011233608428317078923418710493944016635528628775600385804958410399759611613225393653106813326080112355551850018684810251204634384922273198288861669880653455686692747015195586758935502673934775233053683887338852493661000979757040021718144700233471087057058558179160580125024972035147447914034349469690799471009129538875578490772302121298326767156549957768946201205780044768198408378162374711793161069649175144048842965227251916513465715153295507339024527614880657410220409573055945123359597761924627799101981868418070829104972496272374324895891413344815662158459818753794559901365459345837839687568295735059463685944255728713258634889038540485851753237618829831092357199343592180509362189260163306385409765604726650552007595822063635614992047561471375787996839016048375228235538782075878228834269045085914342340415421492695528996948095651545178188700177427482707405510390082413772132437318618928865375788401921652278965717046027267780652511513609306751892257996700481590109800417447025799785034102875394297769694056901461428966463328591327838516440208277626713476184747259796413025624858992581447916288739690576712630723480904803978100257777172175817015211038957879170596770960264697163647086636065317015268307179125765464729919283981738039107863207656240342311399452535082511229110869295127715511760471381196813509138880161482180768464585162139544897001549573978879763104940694430566175931587860482738202918145470333315260477622527450484172727159713198758725587009393409042001703741085462353608588754742556163440816547943501408753018127675567659089166585876771672602469680680416159148503637077715520476407320134199172187327655004848797130487835292602420831393097368599055955710768512581406811384338524251525724348121496741656924990808136295984440539891033894792843935270426742700005451452421963607835648703760729224952611079226163931661952335125299992972067122761670449943162979718663930717482618320369731477825748568291518356635690029182478678305804072162445662442526965366677765132600850270757253883651687574942213840632521628791392325947552558136011348556653158332684188738021378776110700946095851192504110429751485841143905417186408314498476952834956379008966248528457882555993021845877930971191417462533529529698000400341657181163193458792559569909478334340588157618892559497596226977687651881693054358259788475548464314600723584246680309852674968437752648096618352718465420216793069367634436982359771305292256506615434645779055087392644499975234861451524166183932652156633705598735880237260355085861198196699646878717781381787371566832048336038283124080267951666326622971055239861632235669283662637093992464912470190483009620718029007116504639558223908695164096880633604922891958742569751545683124581740722737558068784553482716744374109233769552653006432632251411470874902621365434441365361019291636322432823679047508244190830268348394827065120966601716526124882559165632526844383156901057818364847018528005402630150333387205169853287249728616839457235334220298254883149172623595709861033479142856924051107724266939900023442033515897442411721041778103579422995038951638317225695580438502145385452003112753694747447679239607464726363036186190821354306800738841842597433468196460336686744014371302861310363705125480863000305518757059021287502328675168241533932984713690707578156132740341938759014970798191512451814637364366448705417423814526530549984441297459722434134365473145611908029568915727204388160026015218692605537692974038122689653106356763581759310848837547314778063985783638960691677956857623789977537421528022079351015418969977715677984579089803357212630675980189982820942841599552382133486361696052502119093349186609218105797341360051536072743663685462264828238706247901462328591231478659840217621472417068089434799598591092257888436199136459008538118345135743080106505631569643492220976292312202172996088710308839153925493297810886334422045807848583149141996732165969657897547423861036113607784443652087629179554631934600817512789829247299281605967463835668330934249463317924714934262464814344967545272013601924003231871702603909251414609065031224089182379264023992594311239839755651472472276740425775146577793004225652771139839258944246602361388230091498380625977698597276247761649027097851765703520783154945956390660628008136151122147003924370385352019870132267175166000739284932560988818858210512605996945736219374755655035902499812828961999565797611100162848763543887860863220213765671815213798890137985733243687378082157947192494817751958962403230022728614026123280402046102428826436357553117573960257007243050862440391086563348565399182529097207991845829734148109104288076280530251594613877014787562150719359177030497193482887519092445566206113089031054923030682085537270937341414517726781517445462417462311116911122776699958318150877041684096937902936999106763222581512086117136853419162063410862391484758933352101295112091080590937552601371392574786568146800036073782873621212161895994011200746703399763092466730581893217739238731870923677721816986085671992464210897273491371286073315787071779386394716136413474314650416534443603415662248560139148927979437375128486334897649313870126673215302718892128160017808963566235048624758632137342779147100289056998684750207839513927583552163970096016599924340190032314438610255186046426171024118138943826780354461585411258308055444767634188940091826045644657231228109796554807027959396475595907806684482670044635223263789188380486665347031922068355539745959757758143485709537993599523802233313685008500603739878997329357109587691498451616123105218364902488406414832318269174115884639210774735384514032001632708089792849249772297983113867125209144194641600987121670262564547693814281653375878627139275038424694588899108994630732384137880072386406585603293982207156060274896049930812386720104462289727823072648601706568311264763082301818270765801228362316170352927013541556077376664804446129143774518150668705795707982808785591891064196843536247198354939195022286715017143764467606200972345200610528317991316938750078557975746253857952983307476464767410874394902260679269696511537196647473746880366130104516387514349431113450219016821725387895881327333648782646774960719619631034101470913783851387565277144611499317778856927534312275831038884238942302077464174676859063268499425399404245956854558230454168581007059569977173386681046491453765840737821599776921383754778169412515797390974189128329212273061095842579155698102031753823984198889738751930125631167691285194356961671833286222360340019693888357368048964224264484741658891045216266807464903974402472778322010492551106919158668041849647561825191636948438374132675476347368985121146269072440496239866515311124776632205285046882578268235589562480689220503977613147110048402689548857233649009693690842040993307233359686487740063265920089091328861911558974394255595717599978741702673824826369956492762403730563329091042873918539776733445239496547594086272879826112960560749297053052868214920181921941100965763025154965508640467236246045670179935906789462889160668628879594059264988462906341721258237615062288096683952475148824468575900805316762544988657535935636431044634646864300436771329707208730301086909201620497103766889763245416020261027559737882365355266204558517737116946343515602941331869338684403989156126067586672224347718700903381916888328295519774378324105234119228655176803656211551096938554813009866120684211571986825670881322751536361213420522715207646690227921495472588793809924118559741418131976849613378337170981729847634227334208566637773154634525575530268877604499258237347463522230017943564374983388699727628804442846101970557390190980345956227205006375113475843739162268503587239678960103576327141644145667142919302515328245218780682873506304778848504653875949116296256222720272639565854774154120014748892024680155351950318642126167555477817981193378369542600238935706466681702478016012802322507607533555873148102190340334025163239986392312338948992673727370737364086843989132837647046681730220540384958779377713621631876428573997158718765587992321996836670606761789818466084102907986297225627125538138903998365540150619943553262711216117795840727049195595794333442461212287504422270984356972351043915831648084498827021351509943250692729683322541352570708095258233222168435516710609541868407428643826153119091742809351155260614489675760811775415159431992329194798149851961107416171649730710173226800224188613598489094084238000604751491261828688904658034179098117667350992943183325954581323907013489418261383829898784550183381207759938668048171857793068295461320115860091531856875379879492006164333807265406365789125255468068759680352702138597207337164855225744862076108679896224207731939291560227439208496300480765297900488961741539477272760097491058283318990732966369672949021497500283419236485121582800314722674053435959484378200313169023613152017172061388953557532540926349599256527336799010874798353141579714088524431130930834518643466483674262818442813598673662365967220041803208776841069717439127954508778854592874639303901852051940534119580752777108673571536518608379875102463435856975913542678927553004142564379854887315445984812396796422632226519538202652513574720891808494344954189429209189979819022633235378995785208264012651502542551144392119177596840597137720667234001435117687582659310250457494256286613860199027577788726837127052806321274992226807714789445260665009184857804618381898731393236757132383430719396689308541907430849380921243284316202647271006062347437751346723117273546831876740769256435058567778393442281183036256130310963756930882981098239754563414899757369387661166317715614226417578494879594032397283610486383748791968610726560949509702466961328097427683089513560077290855651233968168688101268772496831252615867305199008502143852457757862664012142971008240388981801368091216108438638812828946990740653608467660145880008548870867913805805760919334863449846555049969001196960443275989761366803232780098804427006569799770083678046011459083171091517733197225869936032849861497007737233799187270660679181960820921617255345000466967253855754225525555080949291584832638198945953165731780869085072178852595615432823858791756142985409694854879543223979057065025309243252191199539840678169744190696437548998949041543939612364344991540336399004197483922289198223576469706914153848403762923682833631021841745836328055748203368227323047611757889328235119437647625334023011136111342788372665239029294179861420119984746782826735898231209129545311053006499461409253173556792224541506492567986636688736848802624539885864930808661103636863017679881788225108997644826794953794872272697120145393045844258783514765247057253269938578694682602423913946813009760392275789601033612663997977994361274070216085710182130688894938932128603266485383272214208082062817343766392792427343073007522686633607004395138946626011075547657322982450666913421510294925202505003876814240739439951941225757869279225195129270891869850058559938841749114173545901931001200373331245579429242235869161522895702650263287516209486833863275061525361701906311144998168750780380850978983456702332909645553995369854249157413469138294121820803548561092225548803842426953705572926064230936811386134342572436128883437812523049887146250308914827548844493126870233911340859829323688195412573736466128523384204398741813983626947370424450781471929046623104417602600380583456392141908604897450336794655779567606829786042105708280840560430914665212433098484677283569733609791183859993199588238187076280411732592968231703543476493798120507776818014198175867728984749133939609667765003536717663679320197227352957988947504141222428665491687450256408232584426699676051976450659513591022405951117602379153073943090081369269783157108261330211025798228721238094396121543174930951614851342983699145757385212584595197989752426423136084072901477611060654745824011001132541188901245772334398605422424488694251964156250266893510965193669237265964546267265054700019943885959267149881333696281802066291430837205323834014203840371456272537221565502694617816874899869414810126224831924120609285374563218607909377965267208186919450551618833542868269359116401083038693719530078738051980031689222155267624757122263108884677264671191553652053490385772933027464804364495235892720526973125062818989928188291749637114291336344395642037295576964384178836102476203059434010158118214196533928200495849255811427181243832114529481850583649627579357334459690438726864731833484507068687199827775816405638558914020279283463884063920584722941246747338464504744058085205718693346297346042752545818135284342721926283936099116892034956476530511936112615104349537510232579559676946385945958427271465670878055515055877363046859663462361593349622146586254081757360659405247200677308648541077453577081597324624345640929262112755714876829018595643595341220226696362826922535625102450015935702073686831708368018793147469136355011038821108384972311657454527839162841262221063509135481849477998586154514256129211043732531129654867892848045174133093924843182384588061393916716564834217057166577894204432883139249942534740857764294359408025336614980137017918317621246694665792231765477255244558729356264612288946645187134080832657830784571027213345018667380121071108485083253002775822192353724429461977121920296530102280622378311979340829859643492888440839181604933282973667591645617420928967952822225115140458683555410529122386433647971083869541462386464648541769973648626719900288973115395180447901538050384726519009201379260085132998213562236868746880020273206034081787771021806794112971772625728677582004458404094124001327945093540946852081172891646621750860689742173027578747563686767465532789224846943665828266972612871749765117243490108663434494807990242366976075793080337613437953424669030524766289769123577204972207589054548492011008560341751756404191898577775186602666746864560169762371620296475058283553207871840954530313902908370336899129203997873595380504081011689033482997173834885094183097631557850582771866064415643483102321843951053046807023884561340405196198020967804875240119630995897209043953590007612647550239797236404455456155200345469393123604406352753829096455707033404880606547279773142911635474132976510593299779807300854079821216901033106213858322853905038667538007432604378881093778492284691907657374953921846264499440278734947020505190213056250984314079714800446380147309607641565471728031704737507807882270839551068163057717904726342787580425914306216503431751393308904610595981044841002027049672963463936577806652464254764898607092634807064748892420838313526068988914699769814076259241024498310676815643845329499814780297959361997220725734878811130321025306139656677961532351311051209365656278313207751113540229661073993502480343974343786036608455796014754504937754709753802111833698439533844711750677451665653059662062687979112019899847479343111171751628297038481183448028103335126255281080499146513004573708248969868431419686358886441659301659927435729341475774049279105006944211514707640770872655770874477156217622230372304712637003684019076196512903944459126867646300904741383871451661488840079361408870693498253185727560115181915442697413232758078736757001235631754122421633020299355680108966022773808504722374807664715126240731002771667212341412426337317364271002149284242406943693214018778795851636386176971295033031573014053630246280057399687150391545306737896776143134706019877076912580312704975851948607217079993806248301477833287704070238768654626089012293830737431725545650164501534109744403187437391075676459913602622318332465894448987659023000006055563399310365939520711808363834000737275716695471809972181013597244883979228549073598524762329095186530147665230985678404376177657946929305078361694413671097747410102764459955348364412618623990662789384429328201659643119552842583386079105929152155632382745004067602200984944871882596953966283800669981420174908255810056077527232862275193400374626184966978964021118590417493184689741159079985062978619490112765134553531287639524611339329565063617467758697770875870558497780112812644350261411995739601972616406324463596518643413232217402636045089235578517447302534486414997527380316310888340938321977006494062765236785642892340982747597687483490752710881475800320021905271603168822271810964085124291729854386420601616193075987115569450674531477766203517189292360173714881045041331501517430190576547101228116738265924337816440924152548939475780076712061632491650893161140663197164496121119013233982904966035973245934600324818750073645322221726731756917309125918414861327145445494739432761692446202443078832928103411568164748347708183932757730499257582681867769780875598972817340409845786302893879856185216634079089500297828880373919927471389332454741681133879892290525333095299882217795501414485624755862367337358551382662979046430027990206381323134331756240512540799537985049753700469609981370835635679822910208941950926871806135761414700028557450658494103710175877404158725078310917404914078486086648263975461116954276983447592964175007023199275227489924473147811768377442246722652965284547330685126978875890575754896504865073409019403516117172025610958385391176150255408005883854947265919985963407333584589577473019382015878696502064397433902875095518683695720538322019878059768749823136755285283120217610892033679221173372514447469043083455353830900162375747778895800276297398511470373960465147632331565524981505352184344818205267683345906479804843725979370819390057400857134983650072839975413018443367791355480899892932238711711352870201315616969251593905318717793487350618680984672384055399913125075541793489298060941007073487649216242583838366309920343446837432955442759202629875197557261503860584930517614896167316518255707752159781425890196592614863142927667928996144020049787911456291640300553825919375314965881483686110303333914384558253836514477611699926400968020939978354942578731258923653068302540634066271719675965485860543731473280410179548384279191859456271359866639546536757333338790020789279955112839146327724637421329536860723102317026510756127367689537325817467382341751169416523395510216118606642798182509731425093527723538981642025025856497781440434978223052225814629738393706197476402918851652658367588256324521955734095762279338285745068181526817884521435856277314725862832682494271569633912371770612862708080565761281466941668882799588523349701027609963992525725000858008398365159844107597987829168778812387681976328385501086504470256213859292678439425617398730508383402954870487811407070219042501263345036058832672957348880920270135591971245951418549444000805267203013964527995590064969327740100888848040567818336591662078257089883632912612374049607090883845556774642572945000091407640540170916631782021162426609575461474654680298108556142936467220472657789127798147093234794071160374675796653315207194456336567269228772837635909340550958244186713669513880679913835834624834509701895461639354941619096442178585365188712479821175497638112057938442597457982235375299782125077109730505044411932902091131921855903831392279738565536227289794917236110289590896778507949059979692070670373485005109171277749674876785240110526594427800804179830813140393718915884065241054840104900893179217701687513311904245319260974825147132054453753022410013535426183444194815745304461161090886847265961330894937585736174330545083571526619538412924071494055548355397424535317576919844714225554996561779377774137856103251637641297834526776494463731129930692199659744684122007548487387667829779509541940976863541038469027686540686134954295053964469548644947453218734628975937884579350781099014111959008337909050051656509502940695254536265547098939163377981041474395125034848669296847534620456065113395428870480185317966960167510052040154270063567987107367873480030017846604486097910522125255051789024729614054742333028152409828557587059388336512147859268351925782319751626334826658492417519570008101007722721571091530290502409309536267997681335752712177111977612486857191881146462633199896902649165244570379049730100357844126298303647017455004161047515103483154236819102017972218655092404115409482582234978322569891284849946115571853273923526480225470404350299893245615740691658647274545332774815882655740210090817145588677863418927626572774637442914303621233293936016690156954393749524460197164661090254515858996576731490506102043044684369676677740061215978735570620908407849628188476128376393596016395556195748275372471669853422625413673684825987499228591337396568037547982109658178260567546630202238927918786044072635104229085665991762953608895773570299689382641440304093815248809239555646953332409869301202979714439413990672685445482297750202784560455972422750165011078078153405165237326154002966117215552233139321221213907244936602840580346549934117885526897507513713883470722297285473726896527706935134505331646800440649538705974198760982081116730337092925532132760182924697835215281445713463367447520910004536789364891777874756829361377676079857593836367895026511936196538952991466576420111579226994647925093458280788316910024151735934259929604929508030651175254442810794330821385343947339401771601519421573764085554130214265575787643425793858245193834814564389413310373868717956187059753916084968104012844124385524423246409249692760342536043810687724789652469688248326244032282258706076377316944741262702833878276677362074035093698058800915375752157975525247729365954465651966413169592938288158767234654890999360502783230206083226089323083382491507096230929901679805901914511954705379643206685686457489843078797006558698733591992588118165993717133125841322825204144346543448714019931477463010378287973789420016415268061427607103973292899324848372300556505058830525964011247345545884030297093959863380185159258028945093864523260506480485119108279316783539093438545912201918556749574673418141244051174351023228550737759212130363703256758686665563435365078116337532052739732441877815866173889861826978465005582295572473562430732711152051520322926280928246609747979591172698133233344712580911669300449388811434399719318828493252007880181138022471970483122362427040514789658619892536719481936846094549451486475440492816972272848749672148194397607294682913285232086031932965618265788310810507340555447466470163857505434312524205399103239907704957733479364166591928097912993614155049328994148554056874577780808695584612180225538617526402734909759054447124624522539870019114628753852037366994537308753680446183395326140666494828387681882240819472806030216950574837505914262016183983776347732097620994680974236645461598118747582574885880414943380642451611473926777658265193551384333814974621219543490230504384115008061527486153022674890361054168546092682803909851374665592446333215101160725309737228244993394911060755345455137624590819306287030232498269272066638753779796942638418209378548733634901978185380415692807523921669600316663044008344512994464587528227882554926459370537488836716905126157104575762633280259224553419774103916529447940939032302862574000254450588910621581597522235348293234801826566293460985925893275663965145259386033929892430747615396299671538352838926161982131969093920861963250512326400058384619642761353955534814229550347617378671196922280392070015468001029307593063877444647673843908734090766132913053752595752032182958797862916722733562566384864172581697981277930786220229374219456227793102189002303662022258797131958574332346255090036485201725183821964712996605548982745466044218504095905323167038255972786378791918185858353860882906307457147298270769492713059390837935852207790600896081830090682248292927365264217232764623886777932899299114514370681258742304535271518438266074662263549811595546718663552397937310004643011522148547171676475502372127314193585168449814389740058962011337766560540393754718922150708618854215028789875744153806275197253294338471263524903498598037127453522990574746111771318567307954152048624224614384829535329260198038872375952737868050688199523140612984653405146957435492999684632404181899789987605162901356521642358835975971239810741836485003539409369794357828630098918636902806865987656334524042499529079276400817409408625826753920678550709072333072489597300623427154229028901971196018820247029978374342984174653000460331607865277681788911656184191337487203753711054745190169573466820002355104596275328938661256487896748013122181735911470685605531159304286565280954391472266210956906666694855274298011059823961605044831055384603422480747018512910852306349130058578988200890499575690843975731664497058620121943308833151063870340418848351985471718836796582447791885614544684981034973308687838046804615013719893034452728812954668276941221413248447084091388682869824246666740013072232435919620738972094430201595540019078116795048818048142000294081526915134295969275450629060579241032639221909642192157903111926761803629381772361703111475421030967443806087815469955325628468424677399804796390459083643946727570364865718620515360902256359734203838247754817844726098366041085359814517681268804153390572118791336855999532646446366147205971996416760287812216261741698442245073377080190316396614116413908328201076582543651316041100915123701690668059374382554897832598998993052525790363043929817349284623640295143747856497643303072250870858094636186292544040197649515846180600348535715040817653983097048764802332935783315805404434894191788035800621670210164801200918077522969944375256271233063739694295410015532515974572970690812986322291187044339578210775067364955559178436279931940075344142374921921246367089405065490505254919374630344354925196255980942111254600207241393522867567707938707955741460720381785391110677295279444448264524004447308445539025862019748971867873852709189550584561232696988528896454688759286007113068353295383399228650769619571162499117237361069606955764187243897547486659644804658002607356840541030985617580482672213676618234602663111500969065116583967825501080850165628702367753790154592317362187738716649425210017912107789533335370937471160548026765915166975694387723785032477367453674613330785245632934547822096540746425997157936546622411034116129428974516815015849136688534697226209469458832961281879505450029444356482214417816999669688272203953678020948578703265223684069258888593167360135171402204447350221490494325440906073633120968170031049490426192146525398886512827853770689259836187043459088093714841193343950987980125344479238526891382272523619233609149769776989066644803638558725456133426853594921846748655153652251871900633116684400386805734532039784390062851086724762400633997536608800345742902656149988103882526131515252390482949667020390666915990825656822331623999208356491662879831851860248925827958116979345719455109459067766947273346688591822833166411247592981167295032351866944742780603447617760114684068481814259553355595635206843194399844823471923424829599911230123146851866710455343910800143013710245119023133623349600543850345912225104938821824660577342394700305279268774186256169314296894040643971020024975723880894390544303373861447367389791203953208997473280222533120936135255416322088983424761671150985590956889184694351485249208046886035789236788899209665855154677493556314208652066999055012972451461508003756246434315047451091315353965764772003781657401603675890108366260534194905505123936198777400813735771368979173039904579344448493313104695016449450605791085880393187051783509916858352676262570318399854295181204450524523247575914449285304514339081182220238990832432693644260711603772304550296447182345807516822888291064748069186953519103480571952922823074567777369354898739208946927044521501246195645044703725033952664172376465841220002835675714299218311791271740511768296467391832666460004480067603119190072397339954536397705698153190867172252901270416785633451863458770648236385360204794068777923798528193879406218918834997089590004728059486450846718782843403288323421291074333849118017434614594217702210773966211290540438057131109321134472502580838623762258408394507873205445184949694166759252921597937744067926095037950970294299631476319728109416086740036854976368372676438634253617674744734753289186212970402250425185539594616849547123981346033213985432396847114273107018088329170388578863437701939963310263381071306957269093033290837979211244999771216220518168532826523306175768226759232319998612823391380449991156981847018956755418032988229538513604306619300580206149715380328836515002853685083725640978004842364320710696320908623672826762861623729681710602018800694700112517903416877391379332297949291732164677784856431187609457135691412930676826675588353458757265019382162257620121707338922836571952185177405728510602653146127660293469312337970426931700730124207368578982481044361233806125910734795970173604850269259912615798590781453427691242769604794545409901602048236080522138554745499002416274272943385992389731581759493374906349638386921182080101621274811960130807563006475858059821560024259258279512820103191395700385834658706968890326325587613233799191059278302305157037903002170090884368669803331448751174397307300144507332479872267835023774225818290557786638083959173827346507298066663051202025797310490751949984532101634059262212987239019571112103760883989480068534298275218513599398612285672457708235585489441210011608276206314304016394658074895369534109770222278782835136046471116643670968177552219066681015106685663833179265163827266828933318946550211887251094127008158146004666818728133713039915385620457110684660902641792212303177022145715941975701146400343001999228095699862565949064620445130296334542749710935251248665285441899836097302967741126306272452913652649159064178532326505280401785887328676249325735131150473322775707957344783317060446415093657077137230673918215365250805350780481221857348589464871853297566985769747599159345803111393128209833517827710979448353757201261964263164338591322350681366758709259591920164221925620763192959382996241344988734519585669639499089208094296393698161877658256613733123479377236291434204918411587982638227677751799470390493296074257458898317095934864985815503496418007898629486437416106780882433935920458914692771709076997878092471070551725812233110360170250331003733111953611734895021325319659513495861901535415518635555859764379854514094296706253086157497981220689069839165016931531772794640221313915433574375153638558235810578138795736072387292566098749650513517868159093399393145615475380679647879933198077033489226952760355860887385905747754415541197490733046482816689619256012091336073633185187052007743490380069867198125544529172578437185434896302494898475427703634925914912209718180838251593811557620568500230399328761884988992938048193941857680044639337048542482210853313382423292200629458669811891837545687961706937022702709766302258234218188024360161783153059759083904303262736550932946215756752639622224894745927768325510485573704213632849186910755174732797055119501475866394166291318708565032183937650543502766673545822619390432428165953133700761785908929268982533427127712111670333574491976163342243553677670758987005762570528011679668697814943452433498233467188648448742206573754040233011622700188200792878460911655198611716593013286867291512285597965820191474121325816120498733936482833128744922361421661911451980081594606227390436770650470059425423597265189074437229040744475389565073451452400804201402623066448658933084422233060773381009345371372266931107067209549658435483078614534034073275374060514542426578507894647222672116449536926458149582254299292510414905642455700425960602438956674675675070644153628747993619258378748625954423122055194127435952374370323680940949765717313149549551503964475362257481920573601568440421478852416413508767373692071407300830710106176540304543498489176821573279805240522053116412901542644035127324621448987142261385733460594830593921005158306069449718662195760429659091738645264808988909053776755522624023562090459133843104899086093901733193376702295712497552972995768693360146368702916448888211458998813322060775604976232528774227777846467413020663502924770791184704591551392494418908108335768116194964997076190513508303933750659996975166479774548103759099661390960760719114037735804461461384904517087022335546658982592447062716072581093290149338842459339091897634048809242284632725616793478636072814564182600321184691777630039461468220483543315579604334399930417442978311781342382289670675291271437900664974620710359600425811549697427776633250968018413332765906776109629818614440257449008425254072692624448244496199055176357218185662341839204826214291400379149490174213203865892917526551410754599571683747840183391459723931418862554103198718940642522351322387246231424797604984288087245540071686080251788995727371280417382870288002021732745718045652743113376531637732962229504933502677572512345556140586107602248133103773967277514046001518923444958885512890216915715526965731134924724979020702208276015714361574889437854885343679036504867308949833159457146443931068148936947394224141671904035319592390099428478307765856788913606700082800909443975272385844905814500076170992871878561755230512989121441261352298908404406143208289362513470607579153414542299294573489451849034097745919954578524238113519286404014963888409602331285753506757915496602909874487180321830478952897806986529145974014062834783424290480083920394994774108294255186556857634260925968418415065548135561482920501070887992828644013228063602871636605386843974276278847874036851144016130858394899363901145353902272224904999605628788427183811684650710212642766553753583740630893734234290960709894246638044636352140876095075554758407714401215762728600415101307234261384302864438712399776260714556614189767483009175783762554591632459881905171277207214116262115165791093638409636160176782045644971204190367422784531757248227686246148536963150819921242633555811615630907023441798724336709649234898683739905984000041780115001302950582384679262631219770281185351509687662851834279442887350341328045652049391457534948104765029565057726780119470850026970709244139046027364165950116121577052993805806655607976876633524719410373102173953389126893975288436873332458023647412273368817112139166736600281289702357381202335325510143740901085569352522329362934124154775645045309864254671363804089527770780130708121731714141123308872343819877005524157499020554979424496945568377809436334690582579764721821805710851215744281510384367060332171016910385030021841470205029808449944555718295733489611706934186406104504611060996873865431547562415494364510898400606738303721053968052374515793072360720177280951734395405917197033967370346802003821191872861869578133645847683902417742403599935199606279269958280349598067820402410640235338012104667315229234676522216392588430368147143562511117014180206171900567214915639816617308489696258051487452361978035168241765128920943454334729114813052592738126502456964909686103465852889549140500385393979790415699753396210018915985425981651216991388152632160900232124028755747211365881333183824242962369792007288817940611677133542026235340051046711520538685509232146990423133290895391204158340728468807455395907887480925907567861449006406597778189879116742484360061514099913568663127966437516825722199086326204615884700281749807534455039158859766123635423580531961558519038950795891708469916060160639271771576521723750365433098832943015591414217831422794100493947272324117761896094399521250174047051597593518911367060365712307358893136090585989152144761497972213037633266793284224215974225696193290645954200607427646160891578322995466482763627178087354296991137645091140457256932054289210031401703478858587435477003923807846443494793605037092673366428179057439905436912736653344178447989440607191475469936099275837241535175613023916415581698695487423364502962417311527798449373854737257118459118122068691608458310359465785885369731538799713224553122272280170754380207161394171404944223411221043891289063260166416874296432932051476313464864386821367469259073506519934196852568783383160006230027003911225798785823301177294444645863155236568257535376256544601993893175635247058739813744953585754423614970687497783372981060484678347512074506587929075349184934141592251326504303346939554085211592763627609416242251571421736335153656257417065376101318711969413026496266576470195056484242243426673017334681271586301055550302043219164449676097183199244893624665252879885865720832869416549137890436912139263911262827344576896673437955593926275405269768825166662200012898979110212686050439211533760722557407583776533425854217863223086376003020756545861766597075103456850604998596428260520520423724247806799841952033361727888310824016729300606274429220724487318995953863177699426665263309439407269596914686553534766303779628422564216244008451939524700372106207638778266787497721853131956736769402049360947845517497223770973066342508713942700340212942678891148342571325541146680983285014135059225527567494560796689100205768320289773964122392382334330714327075189196237313839199785265335049697860243788571129144403242843051726873984194508905619904316860624689123059743755780296651290614974526189003888257084692849796653661662109978524681497261372852971159426918706636573110549339148208301941338407287728146823890169774271817240753663668860026129810385320021041506715265706530000134672882006900451767265905639300826455792886282237871146667905986950536353576165807526295050469168300929956133981189761793597196377488339402151139708602831927027166834412244322261332005225618319662886896836910261937794072366160845581662689377383299542777596289151455333041288868439101943473039730172492874981611356715593711013107189493001932447435189708303771890562443331201655796719064721392315318852612637232273805891308538559382355684392799798797768769315202908851666383017063527330250222385226370245246202577660612119029360386925506151690698817182312674904753711227482410457263877773354299566290389327172234568339287317002195235299471071735176413967448902201959463334966168853145763883238444227272832321138210506443126272250569715542293128604340370047749130256588070030348658808217727635084160031677084705984364570174799187230015140642646551464081288549629563823288963870452688892342259316049933523857853608645780164926379895705309247952757312784519551594355608311981416984710163804075672274254483301116045130718766874804142085179318840896419987103182220625803996202971464192493999410095400936890833513634205506937322719072694709399367404108739878520543621484694441646140965783305981189571636684347371851526432845532641583996227897891086165968455667228099533999730871700532762999244347899653062159644391829170292301240916068162749761513208255437497872076162281274362784441044279780685825294661876001495383527800524543437137252386611057118971400461772973439665271964329597243295700853174141845548174463781776059959063072826566781733133425441933141854505271655185030553328429391158645261815102649862620656248928457107603616786984605244239478414796927549330755743484966569691690056752649430376064187544700083845213678800276029736631986651229683424962257545590271061415388387095600004974511881081147656477961535040410215856241521789621330915999840542855650749585029626377222214143708349445376433478789511293191422096302889730487763844478877091124175109551332088686479108491241322984722648000727550664665322179892750416348653153658007528023719283972049470081596704190474421929192718492313895407105713842033146066651376880578144801362986853951724586889895711325021094934824657157150782947387993348628930204730562632529312905648441762002534377135494003466437977841143555528657974982589606283990621394761454675334599701404224889617885437605964806400583431420424772653122644138178115155460099172248861212687267094378653697508467718879875122972892419689002545753272568196566993606080363739448382842826710550887521847732372610580447021554732838010307410116686081142067839562650811913801835986123635367038632718950890971999042999935793233343212852488105158879939380389298979757604310710934679696134052111599866133247866069191172285722463287815864306528134505191107817522902798927319434044913938711383351675512723566870602220144132083952000722519412157213983746388775575328592193444722507499808653269844729277469738219254014285251948884511586504247288018496067910093452012293551275838994863877225906295569433163745428047965790797578984671282493165416488856485187666726189446784090784638254437017655695339201751322781204180390265106143525933965257034151090990689878334225756986076956135339454690106576395144362923110771578082558029591218060447596518483683547938032256133789879436548373872482043687089533055284918821606848822865879230753554873195865556226939571026016312722545259148108660686093525219327747825911556845442851382324014772554542046999479766817189465911728837131329423868904512318388481787712547842013159891686478672582971534938010890899599153845910115151286859044017260905950327185121389936425265964039871283840092056701020248690738941384370136756962927951901884665969298056925341867923120030762305234935112674466486889038119288323370016328295427983589388679347199430898177206616127821121117134104685886307441685020722888379824133169409128666350850052718792199760362830046298709771468890429842451166818822400174844669370193948209846985685024893851914996854341633368522195600783682715087382262623551820204391125517618150724604420812944011145444393702715741145290915801326330464874206877978789104063053305283952865070373986554065042225710435547935622567036011915219822295231737877645583582858366642596732550072679525645155504177980118061883354232647588043580024825131941292296044832617208794699588573002030532887996713152210463601905468980381996932386761632890021440359842324038948890221803309850391968783837049419992264762537624254741801757280902892428037840813785739103871315229113540338915147332116241887160328350572787100884572135558025130177871904402438191075382474629875158808600386730378340885796610102484350229860036553903215629651383144551709104185556856174679832269001891366246782276145982038631193705656551280301272594989738336079797447273057308826580211354884762294302700281005336372214611924961034760170566904310548240661811937721302650848076595076937045796714177140111398833232725137737075335584650436826751432929870733900265571783472959881351780266364820413089175597042307772125931030054301636498923965326628497255865954804877831509649642474997119579832827444052903987049335357938837279439268230574302100680763168066787473756771366756019800409672827767252805266016805319167794386199572391230151007341586167609011255532291114706194258878628629508076485624618413195603421247741948877264295101561957393346857232809076968745291622353216163063122254973990275926073246483290509750408143759244447758629623755008494511046847079420984155716930068273540051147885022812599468858322510941970250484217394114296330832708888888960655442144630225661032553223869934531010070162519604460518904216634567228907350564011146528143005165497782014842758384196004197910585272932893219033858395813685284124827163819144800257673730373271429621727422765364822094636292002889818591211111948683883100428412936482383655793378707556098818830356406472788135954710982348566197825648269039738138797350295174362437867699699278939205868505528315560228014612331605847478621002417571041536023209664595629729782968821042342972007603196475059839243184546285612844494128769767007625617117368490494562036683297630703648387367998524617674299479394250243555174681384402616130747472610220916179477483219794431719881856573600329252557396231136337229360594594973229296873034668699789435479351370000115345014960233164766478758972207361523054216987570313150592517664075383070331723691694424548445469559147790107675104723072243594238513525146714279683890816090250885041890681175099150181965263764753360376872085544977240100765968262950725358915580778072607409238567425763746865269674663360171033917382236080437322123255590844913645854838153874976500000327639432218587509518632016548831704298648588906350833085150573613549033380190192175863015106397290412533780177294163249751114639005971877052511977669389636379346050632696954363108445153864774481018893914954076269470162679073657693057888444402344121430544930360312285971750435298123297607080667974005808683284390774896842129699182017597226272187031936238213463296779333485665960076827275878675707354376091429664917813643061024692321190168030008518013065735985890251583248212265109992664416721252603559645495376912680562393378840828977377302961609403954464171241709483681752494009113225341835987499204976267386380608359909289354581643715714896584585198289403949320647399692945886224936316500194140848229791823405515587459189703311270917894220853544256953661830382268342516955703200020793258272170381169338276118715900160421720705616822328762282730550233983496293149588811200370694797106146771597449120811892816431468631048937916781402429011812018783976690769519987207013457243195911735975708167272628431313414508258787389991159397668061168453169120717417023676288419383866649047108995616528955000161827878736410730856794683343359933308200528334219404773852207981813045291855316228258874569172494279878763571219849264408751869212251719930015422239745287284216957167843703741027176630800011263832948793186378939365355436213315333555423389761551064496769963843227737152999367234739334194090186838523350558132844782538407474549830496455243292683680658718869657038659086281153678602177539802911005792794020917903881004969099578625703419428093915210033120129947569490246110213853038254229177386981105707280124077412228960579230094775673244323231241156405898159288772274606471733849137581651146336039067713688988012999727399545027904640032762331370406607543421044814279644164545531672543378352580382647897278223009751570864118031415079631314975717643014541103260506755272338362158025428729646829818407117498541243505570455579271730924495674614817505514306493775127840190400485208349047713767453095253055020746354690150413446987201662077098365949576035136159943749488988635131814000959167358243166605385137523196523120089348998341758158650006914252576583543246818300229068487429885150120210776838876395711773628048608014975095376762285403171323635324475698413545333405512276749830384121531670173971222856235278077704637378729596933186844036407152384175095354932158248185419740298874875224608658346159868198464649649123190243413022211651597926637422240793489490831422710377847079907516741428207195773139583999886945919719318870858123005572165335712884981508623438145340541421848315455499698732495042964969222402995167956079871831240994713928955857302992870396150741330931791366225453041920863535347374735304302098347715782749477355584506720756708884042741143613096732082046901850626323728312753358951504359559605666743168472815047502059155597728604145444123235359162825337835502329353772198397155429984847653297013088262381476760896049095693888457307024059985575396972710425682941368107138615489283998624643961010399386431196621126595914223735015134632942554400971441234284121171858663531725458722029291399827484554280656111350185798929222575775004804624754328252670644902400218859103672293142249554498746127061313513560257442307587557114300685962825676333843831539789908880338174831771002453610699012360781424884279779348892118241404525479111814288246295394128490671386766220913540865532239905296907627974681213376133653872190186350672861180159328280983243413093089764650720741298531390037780449533368113108869125167660044933184311106576468956450822583306789661093475572511452468875343848291163805146895197544346779614534420526369342077416808759763642263694581763043079270753787449933875871659405991830712060240272570569628714158459154169406580442629665119936387079548510536022197692280844401001394398275355711086810783654087648567861826239267855576085068725737235921739481747006932187877233688523791145537974285815143872811166237780427853254430941921074021412123321842999204238494807576376420105331554757791574261299413611335663726015011921169388087102616941571118500214191453462789023158492402948631762243026502829964032785045226307441161521846316990691902219431032733794816832418795207759814926416912413706214457385870604343391595060671333533829701878370096321545311131764114552480796830309320685402543900225468777681395497933349780004437724969711504493018158707858415220461506775047449778060220858962946333864931957496739896919214555390336018584068176160122483456687206416198015307437180172051255306030736576739934060952397329897171506068776448318081115864755567996506375901479823949169998501345359178973830270936626536714934557824345154209806795919788218330549032862852327600100926356442663536507288252716488200334944160488543119615057526501475879823637710364562251151862335917470427429669160762793153387197118597441832445058897440974503221132792077895198218173258805388400739026980869265928528169327826040578373094115569783515723490776648079103952786798970305741134306797450984431954197117696623656430306012757676254216096227778890210358184767431235023251872910190117574707224239743730069759947976689357843366831520422867848482780903576882611921794033491705474743789161680910323012221884049209030170835793589188472502091176945410953754435255738974406204769668892872437741829024712953003322902890546017143764404829911923203799047276821144077129432540690441779849847787616149219515189016587503809002992165127724177994065843880510799262712289106745017057774049399168426316374559204689273956303980908335878088726835039389327748128299780235732592725645686740161845977639685716735717198375252324531457386954652446347289499512038490131294654685051159245674504654815178344594118134884894475067123761558817878229360688734471320406675684316511357302271222404071519439870344068105346578378326817472142208273737948387266619681552905834883570172753513783319706555147109831116055316317555621073076602289976029524792458615482942114587539224504102525586249187246989457676785577005392088431477474669279150734877436590498546765097039184463866878558193321045934897098873771574520702626029156184790859169917896947789931707892564436833919830803056551449393381748236459412831698723484993831458174448116518977577061691338274880317693893095297818826837369220161772506463307055346608329818973371646443009278637375099152889168987053081983649271659080483635633652557420865149466568550801635541500193675468748615231932990972763046903768810904676925527353277282959777981939074646743780178923453658911417425936971074472848785154194566745031391887565330764681395680777300208113254281631810790248478491218571421881243008710817874210010239952870703828938841563369589364835745002915301191739702995515928514471717748273940272213516831851748769275987111650698245487565145497554013451612544025581805116550826015075312006854521482762341286873134785086884425841392055028262919992081101182115608106201136048037866321818727815106455414634585363740013714385344435569159197395311601838169148196522937367860275539587661647847483294819792447459146286913057089819727151717381125164642501776607148956547615550905641639104937031072867548381283246791898781497652012614161122494919194044097505409866634316141661630968152922179135881822271773314881656549987589324347795169946517423447514862470564203115162847915890433985555901695593182198172682943022851737428965735565334843209096585730050325031213854435856933428572207799062724596343913625179048849543256169198142167890423074770343332687394425977140510196406448418076321245824548135489012471455001894066968279969955533984998817877829257011837762563817886192571911000907339876364888991287901783391963626107058828872565737215731964657898655837408717669480599735620708706687171025063943263112057270943259441877591940316710244927014107881368581269733432336327191091518283519779003516524817960569946259637169840541824098823639236263564253139850995748935797813680901454550944439193643665489214525963844324406330262123060388397374273777174482222041522736095950683850613039355951878898626272344094269266294483379965122819231937665043647525942145685397410250348642129946372807380665067393801980417441947333040346519811094986181120085994030641900338754436337031640212100915241178161897187684932017609401720921480345562725199050547359699220645100288577993980615468946544450440377722351472627265428333173893187829703798393763514425753020443793332786571394453862152267340108533729572493098455167074773497609675084386444240326348427294603668367566911484936896919346355515945081133400682165512650187103200488752316054602537779944388429705477583996133953967373423505488230511761778708017093943070254512297340477387618560466449179366790637131701368569071703145241613414983588001601521100471232503612985624168872427225983169368532394751649204447025662574361655929129268687790934226951804696446370719980314884493263426752699618198396862951845094137163934565572131465494516923393640401025081086368609788047476935688919374249273605091800035097616022182542127935729556078191702600516925868720984188715642218332287073161075233811959544005389325372750318563760953478338352676331194407614392228777220669550296906850131083886819243989164695389976981781387094536446290120424717137794641581666895337517979038544091865296394472080298073797994291101419720091770749124976870379725495290620404894299678354031703074496038440392635881562579838335512819150883325649387949354605407715576344999315598860940136498298761487387227060492293400895283902569350329505713103148600540723472342901532387052457997304032317544902432024822210031040635534741546459174316788436800948917930098852284394793283604961066531957525843843467108704067677881029304832148285001084431660950221839343373718864179625191884771350858579659341639998066694082842937307102251753840913423675552680559204435700354001045562568837500432735020481282464600134008238449645228689055795279077484387952104883839082278405114967858416742776225384070797982348022906946919967436861881461695292264524303952081196415355275330117677537504782710625706255747900410953647094124934785526449604717101790122210618273879083377294706126977355438574989148527589809735880952109310712670060428517904848707506151692109352686044392354642604693085836657403061135827160306900357529625741176068433726787007574180005788929556563985093851682484741035785655401410688217110678055084850273875676537798549814078568104734775289722000279367054870451980020624661589360144340038950588356494261275975874354557645358394068659181313743922305467316099265073467617546805480081089143320606929073914532086304951474277673350949901817531450283264071409187953228451587759062982807332425108093508950395290053038023510127976990993766237886275799680622303217115013971517792921163488007509619359209487131857492506251684093197443964070392465298668287468305505781588670075812294416787529295032311885908897702111091515845797991794379604867643452490442263304782315875853452623705219853086783495134194967724472606855192820136645008182332187833379999627931957964256496977090529912312381096583074761598572002971292428783533382917241685893360083875975939437928634533189838878488122137743357800569516563323682586886634233215467963041141388077319456932071762616765505243730555827723661550596862591144904502645474943477687509024730824355806629972583914525375715588575285334464682840157968486759869699503761967123285923176688276081410706991225269049715553150440810663090707341156525434725345084959021626256802629231045055516061592500610470995608878522094695277750283683408503177357812145973518959856471573121745315155280370439062987693378128582160317689206741565348573623809844254853948397063932685381123895751412682830570138817301674845602578456235383351187503642127608907794349645330186442503594915798874597837917139109008073697875835817140695700919444815738713623123904465393166242821922815364885333035937969670363908147797968687080897611759776969097202573918355232352826981218493813350967057797636596776516205837981011616500080930070310489162147002741279072001182905782609854714054539539376270310685098902814365364079080900839886483410839996143951718391669321351342349639531312885207747867867765690517977579659255160720920554691160514667337448694281587544528757848253079591256625813750297753378450597410440349210731698183182213179742494981099665205079029966947554771123072547179843840896660992671735264386703634822269363854621921051864480000198587110764561496714313216713046511074070447257257124274200457755455719295209989551561787580483226276008285588495149332803144727491577579758039850248433605602265697694367181900994137560955298628542304921040604259257655693063889013280329462745704494800043552254726659402762887789024220296463350224004054263045473559211460585658846291953440094116758914781737442110347131888310398073201684747610842053840345347820941136727332027116451745939679847048268788593910439466238486320924713009055718030024007250829710761320428036132694912305334557147173758419347525157834729444091178412939052328791305193474363943379726743351698793095519251817141954228932706709939455029557529689024213451274451407816761001111952462342830816048159102404927866866253757085907695472171350576585131333039425155536470629661477430328690506481720864894561479052357404177681552401533089924339769994161325157617258337921615923274025713479941837306385605381103577639563714286788948384227112234144763713923331291629383539109777762873370531660523299703026164756671853603164988004653585245189665269814892883871665040366494533643422245574042106793820159748752344070462832779765452802550427626930779394217944947647791274589773033267841179814471511400048009639648227849256157199713093371866541335097582102113860638612018779407395851325535313263825558000189545041999963729930657298924774582901008317882619085903636866653527283444940575778652150301519340170522929499672099575890673835430131024439980516039959815626386098018855654442243695950616347723565986259497773401403766426669902766464912667882981139830710363786365659030259221240037112635878556521144104680250657479934244202836910952867163012670384281023252992699937894710977512643952076724646678312808024731089625376727652926036351849146635218446783881960058843063079133792964085484058771004820614212298433636828869199137072677292125709929973501672398282662492538050902146125960037171387703339882206898906089150840638143505363130382563068405304878769361937866247355687194495668534370958242533243367670466210880436749081472823279262292026800148795822493742531118887283534000847855143436748381092303971266036912535917001430871111955533480548259188525588484782468575754775498475205466829279865598894926215546090561400680684359764672622718850830849929185524483341022878772603333315465961822198990353704356580601977886803692462416283500986574780256181004271852355345383823195633793773395693316474772909130259175745832118731683341664405080919901131852326900726092880166069569043116043868518413925620346749447911106093416724748774793111375731460467981462222326481786665820123946094052807287575528812802212557167554164784244461681373863732773936701735824327889218814774487024167332149020605935460463568742183448981911808315939543597749067200021784569905085582725259539099663338133113256910951381930539925500641443225362205394679726463656413052374609703239815060713998259267187334126518242405834983434229230710707802582903147762719722737166397511062816469972574997341527891713053218126160213523862697449877288080696045402605164594005841406100516023279042822477779793562750329957707778257139022964583328862192085226050120981545391178833222361397939167630307167838636988389391618647224484921261526332780931059643809218403058681859972910306630144746922906588792809354989534285138126646047945856406915708180974647297681747241905530780952202242373736062306353668004054830782052487035437427398113140062484622314575226328902821981641830643356251697028602451460964763750729409895327802191896117810576239627277835943913641246191766033045604820823017471313118798078183819495309643412139567933402213121236923063578483822035156858972297658363308065282059770597978052818115688068208546412690650214892873386514452298536840918773541064373567065993124849022438851770729542616901955579648881243779972430818952965136611941266263834337935733259007713544626577481012669486654052539116720244627626848855714551841886587186482392385059654998850957441268450380581403205547886671205131840300990892783474015267136021832770463378654033602075904443678038427678218558163691443260259283393958316370463822200065600276729299353958892064624513227813975518698532502911046510855064696824036121567833982304855068330328883122505842362088954994521430098734224665360597953483969138725195713470510057625778076266715133902109717479599894395881295989488862689001388823729353225951532735845681865074250214303444132007363303928731600381771933430830067343591510047805019520923648583722271299862223493788517392597735470583603262414250043001254658971083782720482386968940491593369804388412947478160762715729928185748784943957442740460414358945315471147305167026403629737565887777618795726189502791626436780920666425482013233245559056120085675875541493561003898999993475991149277884287261266958810318257638110016589484696656337862088492282090909960227681663078419766965440493171304532107363642143163422539483039786621264421692735693639327628561797444079904332540530628761363922030403836972828622989930106175057682265963522313342537866208226176022553020547082497487436062671456485006747674758566835376440123263045299437232482846751039661732166879232917928106852859073107436497897026068078430721099001736736442493804753125012331240018352735226165949365280524797037843434732631546552953296859899285019653888619598177119400497395132394704443175094203335279102506400970410453996827445963214007559366140740934292012419525309077421462790438223392383486481603426130991081104628665009794537003998568763782583181828631722647448114763801082110786753682458019409154078139483303833576425599562545018971180445756219294106712825617373310797669612988973491758437737616387678931868051604468271169300189328809180334945366537240973763547091177334095095642866663816035567679816236249444955327016396778950875862204716034352650065070644097737783408473936136914004402650795970008592872238442838183353459521020421957430241892641332973371113639313033963755704258180352377408614947183395800647001393392945336778233417358715402398878625760394315680165393600297235360896881904560382404094429066601891329342828268083325868639595933755404974824046209292190304497703435131725696728989430830451654311344728865051777766315812244664135789106608345344541750048438864780631732181424936889616601448035534707689950942886548163616530785901935402957602253683073567761958709934937467613525787939129571669637380689151337548274650717147202903895328738400822108371131838475386391754822220125928034951330222497943383484957818431071764595046992618652658436970267201753947926897709863672106822472852988701526928096704067022071498704839082852330567608722034706175685445856437624635387719785138090428895271665064458936625254898178787619800678846591586619178201593137592321795277494311875881027765093659997456880213817342131161240830784617878338917445615626435309839958702921570913056032616416966637381833265792308158445293938834555454380649128161086070642549409246621438033172796186788389842411657148918487354495448743757651163205214399789831492240184250052783132008250095241194978943400949173648336658647260553640692277396907257190998463721074415643185929040611438148026526289598019312524695370433543318250155881685398494738044104469489323721563023580616616057347208714549654048226017432819344329951527311023971653986692189056419135520867644384438840629009568628223263029264039803852307004539171758116793247159485071420235516042078730563737433684827041914454093235242538867793252239609459304442643359967636661091491024714405852341783182247021036617701516860717742561076091790260666711954730166725833799282061592763421954530811498963536705095190569508324684250963731305449250198809441643808690571673245039681539018368625379644223007858276552035592083176400209208281251361990431282070198260663769641758736529265453028242291999372688227687887651076171592259524901170342461836884353999672905155273142521965651938957158426466198371112226599363483298179026175812926680947665838157166836365941111746613138776451730862665041813573153652221457943993252392583285554065590759894186176934041652567317042362314780038052362510082624210174603221707018728888120791312066093730383530800787731945944498686875232563836004782181257375056253455457035309933320916158624026995496027984798116885198300349306566158110532776914017524377762190250097260494941890447142541734094691747454366046456569276724886083255538169874788412185162073544115363154084221639146842086156470030355074405453017416969938486999679562291585605068207845609192807888762595849007718911930563916457061287714820066428203316674035535361388086318756594380067332901219558233802227054970553823544021141334302462532666898827015439630716350383931573624018149432992287936650435759311792375344663978676526506745814652801990910623520381288810318234563671607447684655690362961872655900094563183077647264170510883206771834080116808251723140217380839280377779507707200601924642234939982240363029317786126141263203905452687876747741015261708137662664902956705686549861930448949822033357030504557316398904011057148607052720821292682024305073737051669947066959203216568730318279678803785303104057266189015095752994911870356920564636671930168525025710030165108972015631077806356604232936710816478567912481886231551803331713861463086576043647180465297373619385392101740190066175811362496012317287894120587185471890812182783864119015097956396510481929721723921209877864508135448539189851363839184087523120010347806103322994620542283881088921523037054185126309477991519710162080823645178368773524334315867013796571111623453944995236331665282454869925936061852869901679430718810020710584412434397491400065705528305625854375649613315155047951749047437572544805241707359583259255833270045378606710678487775235321509978259870359828251452486707368797988115706156146339074957499866789899208365653460426392047572647567682177675516461792841111134616311735095670479705161099432328062280097330970210407740464251388603542988610130884817059919865079268093470860384738635587917282175174678558993200323260725886706288049764290489138858873183026025341109762615653292915569015203079765865613559336317955204146036378622083239895244873283661355178172636066065753600455909603772241169793597662204264732852424272198689492972649493038839115348269655553263996048454780178912603628448159489526206229284381145442123371110990871729203364502001808147859277107497452882032427178647517652697272667845890096000731513453590904918235971276675218697498272242823180110226186648337483608548177193295977231765294134448714367907609250270148460683536995220573540943775976780675806417314246219001543554467517394565743190738913726184437306446394641439674192481725549643361601176043496295134101058408161715792790859873392670765792531853973929085504637820821856340818846143968852712648086591680135977733119669444348938208905729465907994209760494340717819136593195828951358527988968082222143549443711580209854008586998835138615753544427596788503991543609971048459511185991123540905107491890767798885076364273637700419226913094284014418026904573916610056362186544415570868221090839703026854497486078305640648207318421446124672818784318391999245944487739794126517929399489289082452989925079408523807048032627776909826747345638704775358530383956627374881568060785600400469962850864645951115127975401309721053050813650241377592074664302823534577221879226254964875770554421784921989966880006442047261038513721286518634179015203517867590769364585185599091628923617357602510935557656243918389265279523755176338173692922561836386153199819296480118489339286347635071120900359699356719409067339457322264005123102360820009830489511250847378741921506460923388747441075981240513482827068720772730514246998389285771073262104045392405156697279628946430701402993975565115074249354298928134478688449129832404192331068009264965283146561483816243107209510189414132576272165748248834612263346860024781344052912643728588511464458708833374371164640538715771909946576886833570417249898849575042841730106278064882149131440035743617781908959884542298354753170927903224820359401804015961472945719319240701738007291443472230342836825718126700022685875464494976930837859303123874524901685988893780679145113591146893273350308823355811423164103246974584878352438785048090480639695990604686048281133523455017220721452158552486961084948383705395531576868454644063948731027152396036966503242793746808441720520498736193552223313295660703174506439411806370879719865966805548021619431293376352642508227676075830977022350371454622164963774322849580418564979208101309328210601758267716059058520961773359052856914671185363723235008333515202715927799993476862076436642238995236691681576221073052967100632054168407347820404339442585595111789349019864125639369412302277600241679283249942568816857283846540351443293417793063562123138235057201506699531810609996125306723149349274996605859482743511139351836345143057703936000608463550681261984858429012184383096526419325331823444639072601689328124118099577507115915936134768981634267944780754030907198846239368814015849672382917297662080205488499639900726602316366926489472539956931695601697412318734015104345488022481592805430984420673439819987372907498658268768903176414661251290779679333839102230098985137321255783974286425168656134889297107098670483038684753669433464494707554466156449745805516623831013529680975171432054499280632112616124821441119180956382912924713392641118369838233659303925100304762972186984868039240052450062006288970020409668925902672278256108364200594761517824665930213001790372360024301894102670934541387749271794475597529823327042576922742668523834400053119368512818088458191922125309859829686182719844929833740069022014902748312708447362153880027210296153683259728083296699779447781464127113863331546223691005608501499520629349862460259109682430739741879141520555391752799969189141463038568508373979511999349202902868314370711031371465582764987380138931532811256760734781609901050135190584509893437296872540241607344670567284099149218741206459842678710753371172168088315886929351105787057552726349591918524005466941901734280361673020200540782327210387736851920023949375637511295733825034898676198071601988601131448345265006196304881685032137540467887297877333820076637509380596373949274851555593390083406651900272391287241743639157520397863787145008517481902016545364720293152856662054720929940978049095045180524276647077429360915851101654456935573102868162703767164870294724512762451632846343824366199842578984754814219719136378885427747787888422212335918015949481470756888994973581876940381471199649497843673260458144026007666091581922043662168568618821498351926075237361226726095317288785586251922719820775281118148227274469352682946809020452500997946827866100479881594380778100486633065180552109096256481384530895417284286461377536849277693701868079516146429159830826030339988773326096842106835324469586644111404869194185170144496318421175603620872536667987577621081613927572206969594539674808110366831463292856330381328761606898743912853661446277150175327043076089913728539705274547907024129912138195366632258955849763763623001724582360120268263113494230573375307394672064085008477909789595348848106664890395458725643951975648426174711951559334699055579009951147149110871646487845218609343509726747088359389504702377902400961741160117350054918538085422069322017025119273003677141073518790991870116109126514796197678717497913220750818632881500912327439336329502129457555256613425975573302770104063905820213575202374749779392203370627892692247377995841377296835394821247415667870730915758250271022474329797650383940300282332131126284796484869051193395125066707885328922259908464771114317461467461496726714264476319254853123005787022769538117209497797213033039741411640454027982439675516668823257391372810393161569412224166999852267289070472778304916156877445240664361967472933890180363302635106019393127906335303505400458802199636098913709143924367754003362650164595285897350758304298213930761545193171503850021192901355838115781917688476142996923579580577667059442422534372514459005767244464825355752523840990545954881697623633358634083527904769656127020309260480190864315800563668951711243197598311215629579141445001109002251728383992553297818540074841358456283460581756825905064041286730406527690045360909843897837196898427250614387081225653899281351080478689567738157906834139541451993059128219523187459105236273327820986240160634434668296809040396616027543049085480026842192736379720583934551619998339247461137553321928736953302116119915656439253787887972235245752081154564802099120821258168266646882750690892154725421674544011528307740830872276592610040757187924548856210761924218208608210554949669192798880299188850246440039664142739670407095309409360746586676610146466301564385753957645884463865074877539617076326726821531333384554106581459338649318837466901093846575071020124623586044363426130800297389752055705832244176843046760171916091214939944896804741191536089069383058099578805206955966347606491490141091782388158901273426670605469489477949157946957624506574808373938657177732741802020159968242325655623431382816311926686948866235274662541768333748299717816421762096119455970781518396730250649956636819172477171976058424132279289467108502466702441421564916327767202070217363590268912961289881687914811346049060374942893271071997081965061363715707345471410737426142107367510705666471560426622155875944037287214017052170528931546497069040352119506377296450310449871358159641531855470451245675160535517972344199065386865106942902508510253463727475901154568300756353046044778396735945836288537125897386064607285627760418780552180712814073791215844475251752201777405684754231217123789001220861469045124800725264874618777867510493886729003873362954128992362177261118651997444500768884084519175569239393483105698417858103634979646469196416229695796377450246434951620373989621929419715406138109662070564564533649498417261356774690061750299742647937236353978843948569998980390619243486134544814137905269606732878612490641507860380326086115883867195542840163294186550662609046176467672116862789959153753288339968516107347790904492029772893690351626556582049215401894395466159719891641074514319213385622890721801792012342146482426977997357839438868423873476187698459673675899550750991952312880599509992688802270039161007167736699113806398113954123082423337490477071922234926993364455259275907979865223335073421169836368164058570192362222527304559978556254548359866496349165191297041381329381639246074712607916349380606349955110864827479342562565280446660069252777413584990495996357263700446616334751818785878387928139208734511136429369135282868162187381913806560534669834107468255538249310716080926481251102586075693420170176437490168992060768258812976476846331514175169790794872459566617969909872184921707211369307996119360756443933533904236783384027409700062846568028047563492595824248561113952678960698113481327050985022071810633086710297048677433211188894934167958297378014139294790411845476098403632261136301404579566798002174324905577923836029017196306199152291591306452409696460980038683869868141633941721278696204457622472707901079118993464609015743009828674708992360905773054195829492256086174279551645862168742003598840663525071338618780912530525963134180565919716645224339718442244999104674420525747095610372031594885703553349674464085836233749853680497823751743083472151921416965516643938613677069746421307422265006342610684010934273141709313185944256863148989300209341781841938285871955468325587407785576440036859203589894876151784818191238182002428810787249752426294524636419108715882048986313280882345595542744213345887956457424012032259756686347862339294310999855531850900751976336212809331155041489264509713729953011537243271833669723502059898607080432498414597394977053545269015758256499451088312111330890925031094931715909813890173018516910944789043963078963889991943441499907553683681202341854378161371276683372437700512860892384359264085899753403514149873454006837487490657103211127672040626507162529258563855679927792777603735758821345774985620692356158363178314160388765783179605402304101792646417228192584420170329389393097507085550721515433526112773022400008697045869126415784544408436749934741599657633681113374941758589329554819633387027411475378485243480587040884889930483594799398020025409344849024606320339007869846244736705029354203115615045794395288267932190798881659703535119322955950367592468904764195443741883173966228472570934542929802480467696153677071117791923143889137932160994957771404893252280618076841018118207356710515094087231555988528322228457204603021131175414318583145262996760986087438546605137297829502520938218410330501734753418487530348490263708449456494140608027984435113057724546002693726768928789509727536724252708348191470000575097325209128360080339962584793237488656043155136060986662804692999879667854509729937271670687815042256237198917259438575903352562351764874895134543378563298926933318880837012604367420433772344903294365337592982682412358247758833308488203992398050914466892814681647236872284822943991275431047001101500046433540019761777668733513802766844856698912958409410137550335062704078089800017303429085856485486013322992086349453623722340184385800662601421278130459079825396630907726645831326721267920010104842508750381625693352627536994853875476149580885712426365594195380273819707711833835768391433600942059813268681340646021452424988200969349203923998057948240521736291325816388195571651001042666331784535452147339271562829266766088972537930947744310239144369932307229515602630778044269060255284517895564364049585866646419560323904135155544445454550840652889904334800526511265607616526198711488200713221499938702716259239220631210122901948652855624794881907834843723556399422079910602274008841756821870834312916950423634032303965690736557821793598516649580016943577515576891000896573208787989526414670860721098567533710576358123215045036827725635085650967083379849820202956591536768124100397728171217671642424497288103831732031494490840695143256500929759321446514193824959973781649305841765879550130102121436333257439104208460242713278991350476207910483697381503929986677236826256767248278143997279157945255292498891147199212933324758542741056142824991902082833171032817399579411282028165193066153197090232526068447766904135349881256739169052201650763543401360569655131021909868157709122642281962826512747372035551594676313382628781277785213861887081418942019086846939808322361964109506561734812186494546905910744765010881230388445993668904921955864669432603521939857041877407181053727884519736829669944619467774395236141088661292756551279597584198200026272893766228579464720452132369361395787278240157446436633336185804869343020064642885392707684923921876887012711175224422564034733146867570421748792345747451286705946880242305101152986342700726337862389079115551289177905630122087826442995996738898411476548072687677126287781162374884330000875462975974833133167137058093551035533501271451814261142525641090942286370812960444328745894118243123349974841921251884839394827158747723102058821869427915052078044472792858468148093376093602882055327477016211631151143469707571191457921369275313561871953112401120066520683254036431885784819281089759207787751493240625982998684715316537438273245718167741148172927585432334567551580387852133835326497755941575725196406155778467188176084523672657998423418256916616995415483465746604266316898937223803244415284835410867634363104837610338115113936010343120361034884736073629712118306116167612671169822243383789597360295232310776653147305035915313816260346681023875780057471942691433575753177719228852415219408217061014912736698563109861960050215987672186898628682071127954956773135404600740225442703663871535232626277953856491921332754485366503336740219954964118533306416442511299916629058046238151184771578015512568352911264288417160363800482174367478093531850732860426982557425185267082976103881309325317386035842843395211502779315509849806819443828194804185009173271955198776621819580101606556396618113668989190485320528548604511258469917369940571700517487451104206432730579623133048046691775005470865008454449842986583479976258960769922971167796191534975912940516571254167391307703707493252101370490437935669786173621268069245350295735812407868223215311853533095090583928173744366543355597452930511923545708820550166804930321227447325915849453799081088118549640983898865926852901267548506755922107253264096346604070682021950127210196952478244702117667838004301348860761238520007964399107139208578739259956411273340976996260546633702174423830807631197442386954423938032378578999275692138420586887885804541649653707309578742345429934329548605967435987917972552637334020177707623274752197989343015405819321194165821658808057178068754311631275002338037229056974886974903720776886106829838857327452789649393881685619342444529792592061751031311645299043883173218753007299841168225519528330474975014226648301159733458654518774846866744846544594849895409064961107014583602006714740562691100996742067233678902325458880147372777108257451360936906395717887075286504814867189511539445927193455943316251871109269191638278007155977130371417721568116614206573075178088308525602795775879955444942010963530094121736054881884738122295689617745914405717777706558921294671279735132076116038836997406830209219082370662342265039911337463993794901782197581605611835158956078207542255473751105973939933931172413937570899734188914288314394299112740055461044560171439107073487778361021601742878615325732061341151668281025256538497524974338756093528335865943848986642703670829710894515810229394664295969625100935406317159917810660755821563324307626525085374929695485433192356136336345431564105276390284188229998636152875781984989122663532830477669220019901688621852736201780409891174628901551259536918581549350629247416990265398316868771056661691868013705768736992935784723644354351049795068269152783952413050608806745756005803056696479115660891177117590939072400649335166563781777659513586403465673002423177960089274854118918646173083697555799228490539262272887614092540026237981249881168929092991794766769296820736825753256208733727588360790924818060362395692176491632271916177933038447877336689704833102107151177599516882011662002190396881587227630675344654583186191073851285234399405003802898943736627212236495087396437425677435131418487091627906730171315574130919380579766725535407783626323866658386612051755358367048571469719283231111531409437474616108317200601430758487218721511932867969036277292603503877442400065343890776796398586894052785305834654994148818797888282435816031391700443122849302734804391720114617225046351539720632749844446786553765427989405865450547570510029414737265898822910801241259986835587600358659730338522215373173723463867852402519270813918146979967395755746054025449790063095923172717739502359239043996522778166636171993472752604651352641225163564406160181214440238002319101986625520714697715340053666469322416180909695679900106607994067649491031144444810034475110150978535170450705031162509374314530085276319457088977283076172323519722457969022450413796182142628717498157480875974732507333542599389940202426886704031454304539987315681752477333947950928316247165997429590332170282527329028603476762888302340336300557091931548725690777224702757633288262289422030439361355817274880517118201666570662440138562746294892685575109695519454012587908611469233417230941831052923289968650187589273360285143061511831851955843940945190348020383258022779007727707177731823217283788731431202702685347977547136289506942450940963077294777844469669996386745615753584357949356120443437442641715066458114877454655704449642221078111968720032157026365661398093405824315247577716304725063864733593488760892261741588798342849528838796055578499397687936908373526142262916331780493408971177967312214776871458105590493663227294553680107721393769222847868791715226850462163521851876011002254511455396814621868393394800699858015332333372427713197389410790955727617764779936328663881607450218857929807276583886918727261695105615707234807327921265184666064801530430040996397618832313448835295398315005303257281317067630674016144532423802352921387057300097989120756121562406927929132381607217951233071926412697783554889606563531966413057547255619741681543493609083734271900118665522146655665807841138520065124035987738214740693358347201287745766158267889652766923036737058553925141008487105556096752899189672154111961283545427901053720919313562984463757628053073503237146650328325002010690206688762956696052792646397298296617465647862271687032838818641665463265605855837610062110309229039319275600701644609489210268398431982981537011899568372565420711084404923964285271507004324867656957503765003125350619503193339204985370846362738903261755575830298810345015342711149712962994794053851304732615332436724359876285194334437674739488761152952901178337235738972702145902413321980002839251500419775770091031143281222038217154502263741685962318086955987511019059598423748444273249076273720341108917876129372857096991141910683111210924948408009022246598231264716529840521089464063286698951062325987246225359015940932900047252997349593872478134137692661283972592143421882443027371577536775443209768302027289225992278498014932240861977687548647851402501521887156646514768167371023423680713188969476110039971682460774056327617100204266247818507902443187425514163649422696837420099661405652226416406512365337981944684287793140223848352330302338332337781830260987383163995346007224831699656389651205636962354436127253817562065238385723570930791535887959766446931672739268106030089650184987567481963672012876807655041509159547700327271395057476530393989134334242150982204730128412112810989142055734598753828830633298381805946591170533345790263482145330458146242199024125034453164828453095989697267544432574410847070504637210737465599607025492453985801785874446936714047529478554470230610008456918349234791811765530788232435356762379060975802090401895810739830288095406679185310546563145901130107108539032689884408154857796275051522710748657153195281692336560982394126146254838760238077984095746665215108413435271476072327676543509039328276119071934343868848613529160002121739418678526483347819361583000580210858375858181467383996163361449449829111752512004129655410289021821603249168946309659695201657417807249288020270663724838149796384298275689302876811359897010702672643980365937566636406243950682466507841295583374462783897394939300200915864388523987808126481093018006469945040070863479951344769346765835491686169650792681247578018114568574653919263211117378727601983318349358492395135595574100661261100863608097362496841150221006578614629049162447920262407467254343962424807054603679233313053265616215955165382020630947371999323755792908549592208654724731154569708620400941636640993295686596925056969020591497892696079575415930696227435059760696385564029181598099630667612819482464312332944525038330083525696720813337171293308315969663727273809202938613581536056402270161341223932840385005043520891341663101325757049393527651221836695355023700259821506869875572423549330306156390415789246391967287097863546674311061158248487735099715967332023237346885086811591860868568320843689533577514438730318105814237442610790515288640040967226282407975760630046368993271753472039778802539218790375416339694754001583167246568005785142339012784841180225134747438320039005410265685959566057073563709063478618498619522812391655568843168839060496073128084529644362888611266148999644626217319901037364855971719347710827238960437851403854516012738314865023779560156726147110637715810353737005577371346153719902008525884541798324410807367038255044510501394167441361920205181866728367707891026069287195360951851513151088806701164845794849508454146242590342079283854420631237127863799270531134390986079674888374999436150087410661554400092007050581856397001692585450269437186684944540578001122330294526908398027085561334142682725703009230437895013680285707042993067874409347204125548639996104537973891795440724978511480219537083415656961893671796049319220574027678069779439056240279434492717050261359629564376454356022047502613682712887565100963635378885730048932579839985356210804121245030333927845519262054178924168018894022660352884535343481661753738138230684459630543195607877449930861806314092128612756407335765835523840352981139774289516085838177618441142987055782759469808708924412563958694902517274813603415309769807346744967473639696916585193274431509329214306480338625786574307715242731295020695697341107948506216520326171621050605463128951201480685848533158579577695854455426977377423211235378216093962560331879760360401089456665476746323716712872009281904671141336880861301795729591850147857914547954039112181522004690286452427864380191792582277576870446688124962350576259333055965345299520710232346019882201499195224470518646766573950116078541592082004963402923546199498880170313966874190073023554789774100401542658915006127677125729839012315245258968817132151991585833532048702441114947266216975986818428694836469552396054020990767372063894030797482062568857340428772231114606640777768134231287160198493736986386440528140318252070449179462197872522235270212887103537685397977445789950955779080888460277711053981061911583985788914268796294065150435226239591561448222037609090108906068647866058328440618132373330842928546955453934072333736575445028475228967522120337114828669305916769389809095462589552729393310691883402838189733392800375070254480243618680314419310577360205305857994744734279315109374263790152375882725319252863439290892339302995183148103944412882746275537059273293579802625714661368989670706944484670194467159236171089604933956161641067252892545913120798824796492828181352955860658222682763330068302052666112121746857925942314010986912088647423796611301969489105376072396012044065616931858852553332172627952430874744945122584692066339816130743375479127180207476233218569150829635458031641362367153906207746542895716173470122471037028586577058459994770944801434025296394325515252218449763364471094542043384952973195119921618830551820765929682869969870012840031934744123507046113088153723492374535656787919995519464867506382350065064330681411343325470152833538200926622165588434731976305164286902199644525184083348486183871152000029213882420937650749234223122230038641115738192615698179533120988917507412227862870091777364534939988687984666036890998511134859815873029311446047738873871770820319455426012634550448607128602876436876285515420710931718419727091454484990769638682990817230701695302939715405504979876905215949255824029543157699815526800920161372247150978396281292074435438615019184274868363425774021229437847434519428032631045373470972453647058936623903806883184982053782689768691235712180444773123361761604166785372256836639541754825073496864528529488405934275507930396030617306762904966863382544796019413721168100585021757013570789108674739438017247498919792540844271547404789360981995973022897008837045152267056862300860230448829201739863240381799229912436844696428309548767781239200209225804593384434362655707568709911417447635879829147047721900496096169927215468000284047493784218962771901701952402145356289127069026548454675257580843444633910344880505781305297273977029411637599456525190970763096325276615377312076312584590169908725563732365358776414641845710186479985030937688634097694755197543803888037185368636953680377682595903669556762439955582231956884300620807162582740530243905275081430726595467988291879218151520410052914165246676522189613577144922030310802362213729525672009880267778629184870125848102164807665879071447688165308962096424506747096231288496239593791315179331693885852652974217553341077183818532681690328429974552641501804764668624419336146081656360035233630055902393743436828617853716769546756766629024612824174716991507015407477677531751022453138154593523732717914373653032039969942586423921353026216042536401650555646054878480259302851670896507972409739995628635333240577992132407761446473902585980331188545084741138215704883709043162602848130362299887794103509663914242593441476904937655107472738904157616325471592795689510754059831545950230936305726812289931425731001109721639633277627731683802056210295471095793065274504544705774391026799807025774120140029214251201634594490440250263538501411076132420768911193098527954012833350482353306521609108805071899326933749700993579778079231491993668906649156324050181352081882325276017671451404567275069358417160794635253310957566242419841299845416181060029126210033335737958476542597691824656119511598970058837656105874588921587867442639248028633159948621283972636356305058310969936519069524714654608063046785389046705593871128465839235396078699724403368406470859905608081370704110264660281346159850792113435538213024567765489496092693170954946045426440758250008914325901250964785262289557091310759157249956372469572684501201467887943520908805163576899354181252989370778792101527280177417643766194303214007934784433258225984677100209187181086143341539894031272875399351596472924952845906492241428981857491373533821428816640509060407888459557025126388123277999597929287403351543868673629835612383443191870058177884755974068004982025926305821192237063743080957670871687662687159522302762933306750236188731783996832104082356825597399094001785676311105679046081922262790742711217557400468834195581080779778757182979627359894991460169619494658309649867457266651344460347328263934243123765253851494923388731379890728852618174476459914213400778415933494528736202530712461098649541568409417178673017265311085154796839789594067222262699625565806604309836521473383704170352261563882980560556134633341735878363299046711676932324638916608987093155530023932004027291338548183601514701842121099070714613600407433103903598816842615666414709576495291070206597499387763984473674341117203134625629341285658240917117786816631140794459794934702043615554830632429360818323176879055906728945942951137216324622693808464808589413183238981502149261085053934070136850629523715661366730523572582437488900895222361327520050107932574356224430890211935672386453682517247157134602586923137272750261173202679151389911413899044702342466375673038705368314263092037256225704802148715306226715195549374424050706817729863663784333467061542220440997020068987692014273585441874748688591784254866584517706590707323376000543192717529691499590585881968838164246222021518282269364343353413662678217358629547573447949584299276441428359056786587507583639001201843289063014769167372084792959095049820075166012656538158876102903286193826408082125334281227646797139403159794299258145766469429881211409516805139571075414565006835526130581608553402027387668230233920383257284359089347654262234603169918552994852767355625992124058789997524483498468155399430407512599301755444662422324903687464119848248884420305624875061381176478358717773221265515272256510336596283173018884483563523395351710307644528015821131577050076324186486347210220921889433660917726727185454891461281072348044969540368913275200669032937661790547221951791870908446554391682386148195885820125438490509706569968393124859444781736831454911555833007804855733561668270102303618737304541767529324641276366962384952178454292245831437562034087542312486689785259534969723870060083802091887120388322236890042977365608518010212067675901911378877566219680350658018070183934595068074261290294865827890959556672325698603389076125325319284840530244508464731734652431019261462046377754503026209089033460911281430419690106007287183217990543670248849723786690403795018712639727522223787189892775949636121813155873187093634575548922533663173874058899671853036952020239509279593316919964462267745185218947744231959056355394553570733818858740393762835609590078174091479796828858758226093749111788901252452877264698840140605582111475115092093705455668827287546834761408788666423411845052596365684581449902459140280409937451577156659758345929293393765602866998788838415253592782962305080962142784393048150762555150565863655030180930581996092043035146407038025748407761066304412722540465368279173909544226925800797485713913901608203208424536262649146641901270597270594458233207098273046287797280131160359077262677490022140891916658478758638752415484707102470424930357375047716834426816615147171834183165158412392088606542438462487582513165362773256369212559063927759651396788314434693911794774609251392351284376527982706276133659795991150294940509480828550725936473615150407926733542393114831800310099382748598058773177015773800932079278954267407861437604853418914878408232734639699208177369491660424015370039233617109133011606323071394712645330937223453968262752954361998379807784663340458839906021266676916450379567442338948882177907300249102071981846164013774802951663629082049107272199919873527810350729396462326176874412567677333102194795053791164031943220779599073303883003887468127389249132456204046262034657752114176302446164523583038102414683796302069271909486080512523979450804319861385198267537139834917316010228351982078776109077823843758505910619959409575791612877101382494433075252592073372887226142799385654961238035108765858641494373634141340529811877884079271328816769656442085659247118840128920933265330164831671814431096193208945851948004523995779221119717916289258663913236923314670073726090089715262523513309855443337320363701267260174270420210633497021573833457668945848025671797934038769881540687128611629934623607853851479130900147740687559968632687777660386784683608324327484775095210619387732406183007026226493167191103888221015125854114496911285226564500111969239858265110563563432013076376772264128612748031417146117898133916584429207741023819500160136012554588699939369129039021595609491449663403542677981362105640402505317813057161568442510154922874808495410782897595494279214810382109139052892708162076455150026104730598495564429873710761902031162890468548565987271411853936065200425066151939391467884445803877243642789304716078172577673458480013693864816945400490571609278710713995647545088363902835191239308429503226724648676919779150217480155075237857231100693508611996286801764837055964049968879512724353872168202390804743087343245660197051832495914469408391796816322974431011390436915483708397394918943835067395215037515194081499572379336256462684201902076775681626488509276286397278130791228435057892004717889455724763784232300876811002781748221849014818789790481347888169457258805511171316259365954628054051075715054480961693869534419276894847843599354013317592603915655263259259933076274349536732529302066446773264018569123197896035247697871264364587290937830334714851821635701813303855593507944984993243489822326958307166366918034970109902927977763854902102125095489672838180139266762171729332098272936603004937849386705672736579375241069565614822748121921861016435843826801384276934060713399701687590942721063698321852175834040087164284525826574932489247185448366246080487931432493105205354870820359974226759798093905101764800409558413933555515579675932444120604301294674529967551134497152047030562656677223720638375980409335202116452202113281401360184724207356370878141539324047615217322556978717726979434915652517973532547358592340205138866958323428101532071434228919205497624275326225657432001271807094368926558351890828943974763295103033693527078950405013800189252718864540885688614639791416772760471942428215943580403882324033253703365572433819827690350098850611823448075011583694897331736543816411506522253906819903619375654658047754424362060729455274512958516482256327835213167170527288124278014184739696251382481411533265923080442343689788184447661933477607001557697116746555804095400502088150122076545769188553512438176875251602650728836718610178144184859842303997700756540804890477539952575071730340195017163147664041183409906794663051215043790402014788753866019597266087695358041050836486678686498882119375977496478788870399633676285358012357669903787333487348624434332259052075469240524502848272572177040879260498977406351284402525622897081068815920734872756173037051307582042101270935710328545178069710048749349787122485936162846972142581316871630539513255817420949226283826026961999767680850991944408583650092476679059048056834767162351321593860592646430014409212578402697364424665489773581084690655048212467866533365585952983040476936836287629940282269704002827084813852561702290519156430028641962570757409652430196936971024425497223970860840478065190925864426120783069053725188991136038319318777087953720475049572721568784691868149036425135016938682327421130322187665336403789837305809721934992341419220279503842169997051227626012840281199501390150134277264002615208186304988031537631241793561845374321202716178135066294626119030406190128866484363401734653675875824059381414307395480569683637889555780475673251277402272962799601457255020934949564074085749795015877550411340559605745948113586651244666673163480084547456839236849760048519536758245705655070139770366327802638500878404932495006052459131609146325720381024881352027096358418584857241730448702781230934263868104049793564716937967126695678231861930666240928788831037910371979482907953975859933445759842536773004371955500062706276332180153993234730360616378202451172460503185086761175597832939159148362757720712001686118396889394982799286753987388988892248776317484877906533001463100980074898826008636310222707687082348587960466721620634208150502836161848794651626583566207855400325204415054780031726961307274524825838516089578620815319404304674312361344069037001865704279363932859584822675903004009928573055471487807364768423518540979572897273279376862268975578571072035547457905876372450433789929796424940678230115482558794921667493283827189119848190302165568931359837727319180556797170954222478989523831849659223338817674284641943188532079311175957014172274507285930244753266990532415341758254890628584218457435209275624759687092978722759043840371609095956324726851886603242569394859057456676591474810419233466342821938876178392836785969707040590460883221368015175254756142542652984230952114082640687249605126205286460673456353314213700878671462132702798725102952871453582140344882900115839893742573725864466782250162631426810796067796456075911221557730596725349369776399130740856719172745736512499810722060032856515218445616229343936772535308659247641524799950658242145403323371966733911966416447134746422125034697456279955758892922370509756157196860683369653153926287378506552958018021640849598312536678961551662301699599091506886932754659144610129906743805782591843546995739791455950545945821776431905733663340437144110916337999127889416858520425263030209380716855758541411379966504848375728658853837613937543894273422538743897990847049690253634426705444769547518170382280606926075024273973547164815581165753808538510051544471205926445156596725047758639997312387706207046222513563319765057943218018716431266399879116475506286605247852658682889601785117280733748335364403056628947567000201785001988899149598871520788740506703164998807536546531696290854583998040921031259222183674402811839858858467388795860398658886053401691157800876376388066476139952209661026309304908237480983612855460189514504981504694676013525848374061991243515527396561365967383114579230035148741491826268275692799055943496134335675344066583978001067934054835161887316689960853852826998866191589883886513051880426499529834217667454153473664874601922109334803364172547914428920350904786682707441321718828927196775301289025289425862175244914371915891098635389104345091100007058451663788391111229500968471187814797768257487100368919368115331269832991340615119520175596089106310682374035089178252116726430895578881886669623826671614679468054071061157581392585034567823358930493218714512512254947959191040441950608745347826266561737717710306083032117727409585988592835502076134204291599585069641611187547984754725259734303800389086805017074938474637160619183598085497804588755670126105666767510918404807469928403785329116033853757133190499421401095275303227495716345063899275236357336247341596940902608839674420235595158886864465478717173256625873609521441996525185342306323690349287812333769741017566261384349546051699398363437511560250624894000496707279443330806620246069962228666781077203920631545795032276053982761477756261054017128366376670325041893238674800705582983579483793417649792340177399863236965558311499931562450319837956668072328185912944703979498973485984849000342627373679920321121002436302100708909648097240590872125976473942282795576587617237272887990735020445022957468744565223700702078200351014390563487867032751032427611707441304291163021413648661064572544077782566533322937862147885039366109559437066313448707427622186919852864299604650113698534804168458886682478219673568066742020693319788424867110299933800379706421799853941520421272584139799075876809675368460289429240978361616446079097146677667881314015939446656477485960087351278297778069476429410443044756134886016937874347691153684381587399087706087270367262977241200318083413270281493630338347554214158101893244539694874479079473748859953704635448000623357809509551906371122302925655959949083417282157658348343164358021393639327100666921418770295420034593121357430316882120284243504979271141468223384276888302622453208728631904892284962411871531987078955640062854976769343063745050145265589249210037964470095001310965282856827869263786472696992265896671383195500612570931239105428451646763561916284069456941139804206990996501378175885087530272842728524036207935772309692033630315170251526408671910439879938325911718958997617516088851960402488072622664074146930803230350429264716284110865706344336142550452199651787290926289141932732728023045539912709232499616131722547043895139968950478877324700867385888366540061505443842660360283838814155021194116028471920520315093599909053989602363699070703736196707445872852126367363077206684890656230322679090987996174445297489551071347470869138341025259936091749822361063554666148696087966175514242216840107447332144082963525138900225718421305558940967515506645617721859328400366053974405286036630142967569221077482333349886230352970386910950025456094878608700849443396339988313709766037548166525784457637393449077449046461099737682267785386024447996753958381390980179099573413868795234311263761138610707327543315917247401599179538665965835401225027721981472539821038754364516601080130605541873104256391694309375368268428930918111731235756065706458434093713331494436288547508584216941314934175048761190939596433463445421784510120587716514443820828566962058780931566065108491410308620000678877762550646623562683644366765513154896281930902494475711353943660870878737412284729058284900368201701548968283639632487921478882928998747773025522308561835940319990521296176198423719840365770152491616720120592850855620735953510400781878116512010667152081718743455582179213455924245323535975052647522158781095456136537657896194016843423707121964715359595831678825899153435558169725381290154454811147988079585815665834153524946498193542686887154337585504575579481501260223833777481963572716096677996950433451922148775348525041621066554793826141606823012424052310812449752047494955671770210724866859830259201871283107143169010371550754191870840474345416142215916143855972821442542127716618688008920919310772232579207059161469780233195814115766078293214759913495738870366726851210722394759031894501752208406454036659202934716587610098266097968874524878752723438465382276389405119382537540879860521537810123888445318157871941778043250069261109369159819983258443008324388930785723607285936438229965961674253964501129645323801165530786696725115520604000957803602160260608971117496483480620013367365728887894773798369381306668085286779997455602607126275114247729293884261658307194210683106841681161024785989057866961462321523499081728213847331864911120462484565237364261853457435950259277152029822824660641693959105614229727953393346366536274152662018640704465602129469396446349710022170947449961396635024039474836640025741305724833647226319759280069411895775492753365673941266904823796568215497033104024286329753507189113159515540922532192535391833290976601582598102930671541586164921489487439792641378184428793917261244548528145240464091456468050908741392344655936246144946793101570317779246395923518605060769374105905705962499064217752327318217804073750677094884936174607748789380203041936126732279918605193359830353591813354569802809464126512168564134557907211999242951732563076113917775311056061452477425560762875106576568081227042183539329981231581187031662845282140403277238719827818427834331858162931757942754563876895190689429536317615327163934898167273189991092071257668966305669348319118908624918707241955538536419405149261000334026473622455149047185522635374493412486202244248024037240455032850332774911787109426921585841549928553255137770085493001850074519619196146513325656373183344360287824875718249538696409360818081799143287190675339647928338143496817633084702695854454193923128472017064347436363067211961982270457901137968233090914521433332815600037568882351865869525751680677699513020839036203514188305360693984251306572428682113276371468744252552030140125415206037751598738313839903390299142246928389808018059371664595121840766524987449053571283959272241093664957682987429535329431227114288521332607690051034465571222921653924594652322385058840833439596847402907068881361673436341058027545153680774160100186134466593127374077408004831888508316709581020963708973004495885583277256443868101290212918910867937882376998887769194081492311868405922446820374185531944852222752922178104806366293314647049628497407696188769510468669430956648273341787717282092585345239922172238879064763758755902346948903912888101497764743110147069981816321053527706413942261371016353220797649380322113632550393584670587781651311390632258979791550074700550927034353222308568551879099909874637767530920434380120388499981296856160036625818092258527911764844061471732035889966530001207639505658148621180553857369414800763732573335004685153516433117349414990076612858295208868438339772890399154225384837535911263100212877164150846543277345693479535271786613415956659164912396012064813156771404345066400220727942013453046807478625562728971125052954752323273723090669868441408751249241520672249463454076422932801776814093012897112521928142717203308463580300299712415924664367850446327963631914407975625678240103395333095397755368420656282813414972728824547802339961759526092483405104980760375023239261993187273224999805402684539232350902742612138842563513740647282497029543048980219892839905819241958100178732019026569727602283557132364827889569507904533575323129198042250948535361074403364636467622085052625360806919205955337060753758608046691161618028063075172736149270288321936219142079613454968424860630951220278952686162064415858893933888763331934962690824007233428445925190405628453766109251677954576194064809584057504938915864525325719676248804260692394607819721521631998742473899367377982346373343537995555248580928413350952166542723295863359127831631342425274291853736727803374674406639602772388635640942517645682724539319034210180182694946705451979681731321739225951357701566825706379699841752260517929855647639569110360241727461629516656425838497888717314558751960657552332903715790307901202821351344730175788793167966765348144830209794263265538908105242355984192915080077558807787523579208172182855532326468397860985185578726492013445919484643471759930011466958630909516631423677361966024577599228265542873226229466139350696806785806809053567983459447529918576512342125586186926203334441570131813962401406792711029676370204408230840592869943423639420745325640736198284569949112215490603234106784182187727402879826327592968289795856971751360112595698627971894673780080322905079656147651793069889862783166319036011297292487819555868512614591850393748859607749566415605588948914831320452089811840749381721906496632881105565073966914556758021629323932928855794916359933265701966092291055865693527050328003038946101148239777921469540422924364919545540551941451350063955886819069502903924354502456584660857188978035476850704326002827984622480130006637341442492069326563870350456464505038024666866496427712570393701022469702027273083404383578400147397240623130881945731373221177837715250489938492492601769841348755286137043412188829020213566023210807553242270162443230482897143041189950976279180697095243960905125632029737291033830609059821398844530417167507128147502622961485769825702023186668756581899291419280233314622451110646462177295433910224868040457889055681116063248663322368583043890786721097417022003112316294351826178085271310677095136491085505446653648857890435167917090069241056174207350893204178820890371132182367662705824906463246031650116881684866206744804919789187866179271444085840946063531314209129448927302675892425783204661665404074258175870530014333865640791639482212688600756490485015339462065000912843223501255964677096529767348355486236342087568996765144358120059169074826690924938240756541055603150626524283950128356770803146625414363524547995686226478381205461985996046621509450837012679296675952048584289998351000137680696208048463338906124030984434096441608313195643008056624297847907415241001638889104794950338874888301261571151348502905823109784060771031667203319109672882467777028284756260685246049565858337248435195581930555259358877658078812832721867007473072303854369490106615202895303446809097323370648721779450505665847806414630679680783714239081846942833263188118988367551756655453551695023094627512129902862257567933685825434356026005509715880511991867835392166177121373544267417966903222113988212198315452067088130341926748754262979563721664890498622184917543194401524501383738363641172015189413443818885184573610543789787723924492230103212949082096301230225441300137374070289816512290397619690876879526894775350485235237716695353357254875885515311815159367178821600637395846688206915385010119600914561769322053363167319875434418961084532060484174227656456793772042318243696949300195682053368016647385752701081634043976359770498175606819327021978871909349907219519780028082672456251819750306500597827742165224580696901639197286432775408501178887648222244688846347843752593879104184747930939326302998971327005356483711241163861576988377302261906608828265577321388900616580673721397104869313800551621871483567064079524468093074293308668249920588157537837953710091523933354044224870788730274136278174739934182220891295178867745487348203405298051512487878170140177790507619632543276249657513819811593013059918588633409211584260231209491914893836758665559565248596114228682744245611858024630426839140976871249141902467225293106070765097647728633132088879184589441738505769342800576584620530590748079899472707239609107549086380874706827293015296487732043792790238523592789672232051388370273234768212553799683374223290988551076721210356356585908688478345904105808581130657119327691012463427644074477815868232484547455505413629189021808153508059338776895896783586422206096310558832604836789139992163827909155686892893947853431205452450553992397502127324283388796127936442649984242137015248886299365043172040928002311230820622142630805027282348131253793242176977271288715666478723246616709277266178243593160117127029023661338539464388627693366603633184038462843170864793654501257801875843536067207989444970850171421064058290221235623829721042563529542193678924789637039503447677485490977482514059761738858717719971652335644630158333415869050155402494909833066432310121349556547477846807992253934354602683522181052334200614579801499506124256554458979110525787410637832959606584318078580745656521259163422883276964599509233695982844985453682232587200465578482439059740567482793201934851836472850309012964356305304537455939460742314244447765700947464139332745484745231592152708561460479229925294203725103109647818723395176975237679838400340917275816624329891952761761871465497217491993981660268836970932783035205501546084508237537143087704663055005168791891327553488664668588803566137591685504269788874188741855005986981947928952604503265373273688563909449587677084028345356127072214748381139827238769703130340947338354764965900658920848874399978512930214513543077347389559804261502668854391337760037584209715236109922897333124418376081807040475001453603260868020913588347771662608238117483352875497932443095165304016423961123220818484077536727429345784188110343771712747127592668072612999763185339765479862611554888664075834098245258501446743525099635570725748475632204998577694577743274198136729704653264327399975667783565499675171630202076491210066532191010958199452960256479758273983968274322593370647462732887823350609105946172464697513339746914033191829293165145199642382117179242727879054022668590727426505819673102411913352697380465730257025810964096163324753714822847714236267138197329438318361021724526018455801704715856239047706015185940366013174673632932071275976448580406630799718676004794774930723133393323871429366092117762008589523687591636964266547531580938097474595281799296976227699798992335020589153051663898085264543873344333177490140911393183260026160422950478212394695988097800511793831385268619581315572840867510345056363274737433169109049200842538932486020096730857846702942887674030248849808990721904091810561838532177038699461612959429723824645939706677983808131088898967089891379421873193512568968092931903517904197806270748973316185494585967119922905603604226315854250287773569326214223805512533257936418204886097737751931300235938160448132603003310150851380954543639911281053975735836060018384982853540089402731469666945623889193917916755476789404481137974336548628291167596245913789585364569543535489920374643885223900312213543065170482145369724073189447601044958135190717115601216842486718943515873365458946452332440182963200256427362468623954483392877959163730632900440826061854977091673042991556566757532748191339551693171542616721137190198964710841447044076266370618554703703213687250813941927695173413919615477718451933980658701353174043012655106337282987981351917380674237796450347896222956198859062792776680435757711795531999741621100314427816896910832422885062288967178807587904417452172110686908506498669084195191191156829803645511224013359578241874028911506584559261445449445904667644047340334326738419649036957112982359362593587745647704282783490051902537853409543167947841521211581963266473629968216324021276802980914955022450448991773765664274631540451480692989239397645597382078267466328404890667172334598372415353081218983486367524929496516719838866981308240234360026140947998681381253971909729368555082969491479148809338671413884318131548995192319572483401366875628451174141029057368912296678895686003063141313316391144744645091302209573073818194156242174065449565671492686415546196474256579838040989906296861523529718895624913578499285068494812591546998327090083911136938221260114193977029756440281950962350891943337475567483672021895731477154562072874411293594836024720100897109527422193669484913009182188409766576521270164155708330024541394285684275283779895615244109714409529510029743984703474148889788834131332144232478341608582000345531784399553138834990859612704189539115184445788272721982263417509461392176660441929138448120631301077026585817068381383109314053482924904944008939818171062383033725796799178422597785585490781977327840752217609349425689075610804683357529889370032183384908351632647585715185695204542281292528879416881389624098546439206517120740101182982760046347261818594744236426439381426814909299354353727046204405651618744101780856589735349356351649077629520632578267620767856555956894274059219934750901093225581872134694819354629255279360057289024060175907132990678053592571333205361285240470335003566255910433456979715400147823058054766476658077127604191880109700313269067054510292964099082298177193184750856930430869390991754201436526075169722495722731850352356409758773045006614617538538335206289732029819973108496567428715229996232907715544373264305095355623461515837090435786291164805653824341531755911227119252973806952607226655492486413430190574854075867692832953574935584100747199687436290261459337874723668266339702756503009860862018309772613174876867323130674754708047009683555475647796069394835441046638802978592595598452064439378893296937444074229564875345086837189965799227117342434900761703801628996637164893725265329161197136958242692621097248458021998603976905580454656702546971944669980827432900855858038574527761147832545800550284315252925273837247914737223140038953999797726732984648227017019548581118016647495775891920133244219974264352116106250801146582158015457855451043594749041135225620366802421301501353104895733342431435252705787731662823408161537420738335210864700482357946204343518497432054013156343479958013546501163098562031937626246642223609375644585563180998771400627965725663100145050201093479591584446123946627136387796637814357996470627932640651007083713673010606746483515834513202580226695323103725738828591470941905980338293369537980550616314566653578155600508078260537859767975290529048893132884044362234349976052058958322717226660833776104104393120833119918614785943429125555443232384056081177494675452032516926265840573722329894878401144296510840789414162710641307631500505380556211047617784655533693185878358340369166468410865915476715344309575990741714356547772209507421583154163973190342951752010178592602989356631832004075607749302728404540681169741600072225126715278891727922054687336286273104174038787878295484363474558904812008262184569724198887137220499805395200682555173296452663291139617085495244790600116991130518359778221209370107298922057966166134539042091843445559496485632065200655529165723726720784746043286346281562808355718788253255458904928248725906158039146366084921313609696050051139474062852128947693318751581942716131739989603288317902108363127358918715380748171104038477600269201304509770636710161065527454415798556324111388929531837682654371023636283146889231480406453069779782071264356690187577854724242304516477430105533022048678193820227234655012397704191195673975312410079933735459984130251192826441394400678654615175178734139413599429765490750366724145504646542179630442686882185185803637834152794400573765752205667026802582882089689459215456085087870023366405505310810247443459493803194278181560337723701267167862469023872656842781046849999476085693044682793502556788777051882852619825874261989072012962258746341584132060038319120791425444472897040318807608912348213803030437556711196158473923146425441515093695223787168535412776183666393130938159437130984595492129879241204293904267922528613833860009585459520033803862130684525291817094031184045509973207811878188260926473148470446477152808274019858095154201852336613327492941753870034789755493153447530210195587378741618853020171867754674766707571851343814251150634102200843333061718551160598782664315268513704529073887848459780205218696532223235503992809879856760717857427505242681257849741473455510370937321320613922187619477480788550177663071338154946793231930057408897698972827908761643558346814690819230853413776753892039428147459204368229133298586659280584074173312496476677966273424075290243002806682745308432560377283045141680997964644260395285897541628580487479068152556447546296248007681014606033969208759272530126750217200796844424923372258831557922526970175320504803665100825585438162744004672495042370999943057265263552313742330417809959539422089368459595783004168365874905089558436904480996919701238808454503638305223723434375576864940253157646755920033773381393266652422999242511233575474495537750653538245630897728347369191349815360704273546555337834417584803724635027870805177680520745935092808236330318425210121296145116379487037019740373714558913946127207943301988749676392035614258334890279790840717998522779889518925031923913234055922261685795283709580778759236418516683367845746653092446864700406833761349467979476515790003901469302082956778701226005345192684933495068582971420735610059781327976945950122922999672762798656122277241622753519516056344133134422810705622934627910170668799364802361592287179799989709628502071813517926062615901331587961701216365941635610579726167456376909415670694927657465108881752190598807873001464127581522761927507242642393320436867255500500151173770460813821646194443290462083277141373352059121828049835765754215820534757496261700784163192114639410743854190855446637916038310940910188218357426070977447349973511275751873736333223281501354869158951597460810614909881696847235958598330531002193965650505506806940565522753589110989001386943606014630058317274496158635409369171015426524701385701696079151581773810921672454626738185242941771213457138972873543213122012740506976500320499664916917625967734452207865431982134411986022317107091840453098951395167540985730282480306149624488944793471825457515277704677439287037060743389850545797171256121183444087749341485181221078228867114326108474362986357979175347205852815746558993322692424338967411666341785156904012297612923578494256122372505569689371536747233770566817252995256703416939402939539352922184362423663009719707484398788305813541919433170148547595585822474974325379447107037076484900783764261017471863654262181668387126200299080188713915045245541176926346278913147673763944108858675544403950507596505020867164286139601010109031035612630397319740459289989676576997390269809480211590533482364072604132026788482660947184867183834740035565383894118426819883290422120007947701862566506732305217233764334418636568209780754536824411805105078983519468481829540346745987465570319910784501531751082028633852278544477403106990705754127012831257969843049677460171715287028953284721705954880272320507729708725457160219970778148890136018345291194400725031089469429656551099255559548781277298009430196613473202745029941114227821501240565297218692194049470235010365562103218016882124897428794904661557681661982865106193838824313145834762982556566131021290198113721124448261951221298864711192118982645509183983017125977008709552739388815640934718827867975613912565000920529978130402999290744375810066982950803862777764584201835019237114293976053662405991760208420573671529505520409858357656513324775190642960531771993614637228450930266021309964430197767799101799253879198927159006067223313849358753879058174334974442354952496874636853162765498631245864865950910308108374129444162127968638541973253651226403130141393787526010233938394437088520785676274926839751662392745688555801105845140859645630399616113066901834146928559622112951579176873997910919333192391381114232938514501516505558088586703530148379989816296494432748927620165212108418458655282027039508147472829832540600649813285617000658274035378056925298133635467963736587921849952038035124242353731484999329271468043333488725594548817812381839623718328325825218125412330247729800243559006698845490643504537924694357417297079376088350412817354626258833467479189561009605781797162373819646938087643769622330725411934544498299339996128791598713360282455351255071846145181099371686099684116057780893250464534587140125643775081675449956112434437810975327549055276404388641196651305991560654716078665311355833414839043800925478163179237990095169368436008313410419883085276838425633885738786376471655422706119669856593431744600398204970802069344953124398682519451616207977886849230781455610254203926900949687344775916169648236332262135322452404573164969601550250375813465923700403627991766298537736837449870540328769704735191598036713023645139867655730306253691664160720913306568479514655086697338416249510230173252756427445059342165894977542820191052532548220921948326205405865661197801153068047729037780235435456523733396268696614517565372580241874354698300728826822024687337836221847934014871473774606119510709500299138191525925381752839131473433177969761335316047161052331362893705136562379606694020210631510475944472010276235959176434861591556163839215864106933127272208642004203259640595469903309201694150013398053229389023384219222670920841869227263808992882345173626828863619996734809792609565291957816515213024785643322858307576091397173989293594915419935579388849832357029608822976667362278424260281444283911765230316480596865908443971955423821363286538515379576423101106539624626686438532751883511805240392192508756490436045170965107249675523832418326604220441692201390652596004151465173970948934487329863942165658248789509221966831369214895849308222125070636297089676457133705589521805337552445161164045392122705929988682542630254760510486882781810656672798924751577657153835789905451163939484300793398075471274266027173723674474546192648024978048391642728194384533444087945329868852081518695247812292834289177276458258165544935145968579152819032867148285068025855946325074803628866610231550854725212557268038155822233179725867993775097151513628160884896999294911724591685710892803155854272074399477783142365760457461990711608786615478580127759102647844894213337699922600875190550328842868857882304466447254922046732501441763812973000136085000287126210482685400423042671787099801891227035928581278003306080642637456142179080329255225092865150579174609561023509220253722372086127473053263046317298175322901935429304084454353255613377272282426850017008699681276451498056350732683354976813597347584084566553940747687527820107828901238561820470219429210803213774936698312963792100098631219998533110167177946106235512243533461816882071049439286537965595048025220542293078892392741451308471401700863160640287761573713499877366757853845350560519742697980970646949640716925029314477244808052424829928040922425945894384403792162807628135869335423267462303824548657271103846258359185879653044515225984509302864019927562842704449734181679418313335430312592586506169695388184522793808257663752959051366254225834619106077221332420160837894165183532422529793872057535731385054064188728073679610234384501802494699413659402432400495361681136528704868925485039906898155961544584761167894154143264027911506806194865745632466817416330755854512554107943468798974307310138842020559149157719893254269091273841429850069132342770812206809376287227986269025087364864795890928618293915664632633019856624716352545843839924465319021460520006345526203039861836622915451258365062029922811539084174447247106867068270251972150423933651243610682377067374855817304579489181654061380213915254040123429012876917994885884017996144601727822076015074027978577553511364309140874129517124088181285883584664936786915384254842094509691732622541885366638840939800663366894785032459880575594423681725582622757645767832328470688622940540214490589165512408512938102454630998083146954146450592428241458904904631492699455942584810726619046550913214441447123931596984906487358455038086378692902737362432203853917541118836499333600208414289764717745353815809968756383655711638346993187984865618135460232759632470624541009387491007148533962561877777982606938772739514714549322020123222542712544802280769129944115488498188405794064786419480799161809435071895522142039289235656050210826978736335145564107676418480796139031901748075432736708937108701995682477351661761141451320054175539789949891738201564065541134710585784216181520188537177316938952754026706556984668001726501984182877708097871524141114105862164214588074467466395222671257064577495732052288158879819791056355003682962204775306546628446907963265187370137675892622012902935483106529975858459793106446607831867998751553308508065636222789268164064686934705160089888385221138276553169472569548830659013879448863828566145654298066161164216341709276404875562339142795804977767028013767033635347681277053892062303211182188943526975567363759808214828723461275149051768514354957322037427925305202684896092142483846047301301110596171107614761201340263990953517345325985029447271223979702456322934815233653459112956221652497540080563158033826147899401381486918841399109931876733593986696261389614276099809904444718349505096794427699383877389825408172839564082512782311013398430915550868355237039965293443883644340429857647407988931795812481348661602761313642056246436073160417420078291606793442535959142407054030202447559216079188386734816758207383496108822226911191657184000638670226057218979867659293025385487438294039812601080233920693822097577061972362366007872243437819114307860090766919911999927637797098761814138997139959741059663898169987888478461635822281133310040596031412927585851136995721604776684604199107459312082749187004835465934714748990761755657698022571619112655400161781583633116458420579175225905629040714882356612867401990374678976358912097815635370672894376382905664427331424218125854058535165907114896147559097554035430292032171986073296399572034914845409148624483527870118637558415717490048528097706407866660736192975686354733966305585544076138852661383926619462891179760922206162346867386631376308310874061345125595490728445582640234961614627506864779779315498057072406779309349681818115220957774957649684814850070728347447136705440723673795394727673632291835284719930281907604117714716384875741060137716988002165494815251205715738177063402153757055132688023062744872278027676010294006817195676531525478902746083892496985910679986178463738835700955765379000133481147396869546131981551797104611371406175757233573238688216101120420843931103792535866287573739556347611408815683001867170316665216506602898618702544145807161240096821286975160898488919167175266418425179768525659060932224584783514619359165655942956390214523303358584516161667724615893106733412513724347261486811855004929786408819210002552632401722547367280009807369575676992962915318326116119138985731520776262826633090630903469261618464856844485476899635627124099492666330012493504794662400266689830406663755872436222046938826477377464197929930279730823380649395791890462892692786838027908675475918222506756377263587504809694017610043003638895846822617153119690689086313859236960232957750636745344363916423488835838680331158231621565887829769942286340741255129219777170129849928965240045340198308570093032980013471004881833885752296550332243702167898471764912990521929381342631687982131157416537814951462585886097618298508252591904496090662238844352137802752013035431676901164620488702628421643452480918079845412791806625614176862428007738950240716631164219220124589992160506197958422287924096440897262574854194774383454188111754036570741773795210052904145518169684760670748980632442405331133885876888710555237945008685871986210004239455385205905512636906567431289341347073843440314014915250144991049643708404701253322753369051323619365199103549944043022658784660994848901529177283482047803679784738747718626733256209499597578706217281162925255063597294995756325515963557653857082595919293103659028670042502652361132553308990469744559115294218957103501287037158874427449787494295229920877288607911396695126539535162724712483223664322944518336276882270800341843069874255107432981573885999177575041205757280715322777944866680252937197726776509823418829388188050606428601980704997603751110317279813881844765177341370168918554717415827130829665466002102224431325419053659053048896462822970871150581143030709638452314190489950498452304670728199143734268297390677783544197520560368331448328102874870571225575543580129109248357917552346685257064749578817908012875326509804133100906923596109149684173530184256362063772479978128200808919519884767035884938103804893499431339300819415499617189537170276457684542442386134534224297703811186814631506527568080201217994927071604914423294383964605037484931464365921484438121018765493591602764337124075638328779998303717183778841607343216953295855793810838960240907132907773940125146100197804679128396830336020861034661742276745539123773979656612303600419603760475129965038835824285524658555862944914647656921514644265853718909617745856020375251329293721136636661945382496888664779822786953304883717732147958802739730137663979439592053988989417122118807794547920985918243685998777707894641384446160119055268861325952071857922871009738474887091669581079885260288745953535687945128770340221238257230533244896528403647454762664876995307294603167354230514938087620361587847026291561024040029594212137783151347979124743104405476217227983183953128683095265614083180766687264321562751223861116007696329678640012711649182455395460312512709327616948741356685760724002688495964113864310169419077027444622610450600245249797414827284994534809891031076319970940538971063419690323735539355528888426792387694837473187011276541029213255394959286633324274519767338185032322718809746701367172958220337733758640955036481142317686755336960573846166156624750475776038711608443309202705866355409288553192986015973805483328640662121951785054857328414208309463003413721173771941542474637570262425605838378973175536723885208101829808245333471128754628568231940668189031512206225188139950240900760438104811134117959365412923564328696089521416420220957778853518683880167257165766396863687983370482448372726157743434794781954513297016543147699301416568123336186203547625386437794964908654626781048072962765712349144585761038402127728490902917788882286703264451697641000117235154187860673199259076641192358457437512442582227853336389299176392451260483940232998631823068629627968081945635162362030512018444621939787721456708507226534426182650461178288420833398235760337317856686810361591385510691821120372774807962478974068238096093318532327356383915886292977266165609479682159332801400458282517974311584559581902273983477121283185564464928371136249416312317695088014749587446203181958847883905760245316189452106208111994520247238631484897695545434659079584343513912601096003044915109296607821731555203625059269514685392653976578602962617578979430999488842504792402686314380764541860581474998943391037500354663328762032828057034555193518594784236669939770895210878019201581425259640981598288352344731500930100537369494382820748575135391762139693701297987303099003456201145409334415703952812522759823919171497704950524076319396832117415518082354855328948419169283353709409355335399562623643937656367135129205854318151397371539887076061462885261609537002609349736229052696484126926035086913683201301981363281159919647192235626676731467749541574353901207729837649413088339886041278536411658573560200499618470892135007504085530325578382140559860950585558132990471480463334497109256053200313629807018619719299069591507854390981567685628425831534566074509389580637066100082476005531542729716905521493981354468211618468784268855573182776929015745772825749769612256408056437732002592253532043440937423023850339412006429949644866274115638587062986671275255203859504847585313005718092365969736133474535705298508800609605333938652978273189019139334715411988970837390991026314655181791785600627850983606290627362291100057277774928545246328453879483698000319472363390883643095831400321668872267719938570296721366740037732048981468455221305170146428265213846339074984882474618865283850639158861450253039853716191700765339717810360655759104168987246214240477734720003093570055489670522381136864628869878784589930833430573551863453151220119445415419556054815294793011074834936425488696794353390398554890078081053287501560623922779276843657981638421449674936347735464704488556561231883208652422979121051937324964164478372330149732820763345583116030977631860801331431288805975845192512919856018767137309844239353955458998857907006467650535413126990860201429796032442462856357248130610883267859283677925592457734540071782078610795048729402081296125943335616555147135558943283483069663504558045837616911522790021208168674022670760140504757019167667257113234812896964938280046999026175505246966900130217452223981330803542196979240322620358671871412627168755292421180961250161828242233452114527698735530131710730802069946339154884431294194095254965428999857772717443524449934969723804287922621397129502300240742725003888334440735651002024483609672045957916759220934828950327056586952732019616402784964568821763989684801768054089574039190924087088847221331630778366314385578386915014415103108691232921208049080992881101558501492288577147301827900505547738657114765968433693597989307604387573733452509902405174177436037452188823978319786611046637389955816885985330760175821125962554134606059063697347458109292007581260699975316987525936710941783623522501711501923220100166105157673757205226157221110605574373266716435745761759912790024313401965478532748763173021655098173550688617713973641877488179022711488515005627319666926508290118164823745030171685454712089348755465594700478433317053523872639757890699172035513789909522651703445720502206158898497688901374504757982995222796164724235028231022549600666600751962412633953070534610146137480918570762254514510503810300591414971735240775867594591367109251537809471945729537949306499550220216966176613571500313085340613432171235510817804196475416537263915585089595240669772676919715605653004374703652230593286822581559609170108720105931104902104899822911622460554109272316653395961779393082835795239445993865685601024280182050440509842486936941755874982219627629032150184672350756985481370659290891861653356633062603980406492736627384734804273954018049704107561334855763128492359483438077576451711727348328643084057029685007802398350931677697595112306179179544206453450525550224581377730914923356264630533951544853937987175202333416039547297282952295876072459772694475251910949913692940671749706603856016951122079866754419862273115463774686100160414802111416898663206013440652431366533546566517788010979227008771861036104043451229260357502180744424180791961707769076328954139234172742244233816794133036531176887415724997321343168021752344478409502399032181324879059019019217535199695639798060434167351142344294501176717375447506614775010639559923694620690855407475766405933287781097747671872609998923206534175082903157819288783478429041308840683650685782039523112161984288693807165332812904220342334084418220874234996088176580817251963607180451768503583331758650509715956059545951411248672123272201737808379444184790244979751531252590343480049733463466054383077824343382012514967203598849947669588539946895835854648633569406443589754635396390462288888063040745916402220379037091499131528468406797139627909650583193349612729730274785824674161054223564579297916791156669780972487944261545143103848185563688012646767426745745651824491497456149353703861538079968781254072589876416609083726950086097112815494749463407747251811407852874169894099559165025152148667734007271838058444850457703560639777593426112929764517268560888887291699555597999154546265973762577349292705068419099834134232881748676731192647221286816542142991318025589703598232891724713829104334137799588098385585709659903135773880328451834553067744292685731619822723538800787486613176579240218835613894692329406043227819652144527358678154037732259858511572867145688077912826616588549215711091647279556025175502302614317997156938274548892496004204849010362700923886974016072474589224474231248730190797200979676194906669218679081656926667576119034285792387695746485362796166217476443236206038339843904122602755227678796379825264964750296096625437829274806365410620588200493288820183168343834162050215538624790229323927379145505216834980010341220781382232806778743371896689853271055866824034166886055707170205663318649984951048057613763324354215692923453173258493644270384251052168675028225580101439312099030843619316103244019232105224022364693062388454669705174272564333811000743046437103060418071832214577330708706178829861050809839738877692840233974190373237375920989229984737803296574067661236328212026977403202519692116422784513523381539676262156277581617722567666173794845742657399630940789636076243265348493247549845042268213999569853198020274881043251631168197319292086180960008287134111954795891545644900664316112031050967910770236219548754809715457453021101839208427409605640271800525765872925762171612819292278567399284631619074278774975725999331128879412612659440621470995864075245006517483602951154112078809245674840096600362407956735718193698789556570300032344489547087384112935896073151111198310950929877337591038999148953919474004172348390170853728488703866632536495772541583580220744129693780145244162681712839689103317820312112499153861168553620644486257726287853073219559252698762183883771009552922960743621009266275962712214221335884366353498272547145000945394500539176055636088047991137237145600517043243920538493000321616112818171268214122923760620048903495662974969526005289942181666035018417387668733949508114067821613521961784013685752382185406106440818358509755762390613290858817879627852941561022258072124170477853927962700366272187496005793489677967730203503585202971369623268140239263466922360187475243459660995163054707084413373834735700914503176240090653246267276912200933110545442313967797178985056946302314201599229113095135305180422571887400593678585550699439724527424013305980777607366334496873596212715308917015121933827079268818634981943198729585949626557300870894580587329420004319590066150370420627600733587843433983391784026613380609874777967253537844883645548206432667214453094429132965320350736004854018516341847979385096883902630908464980457458963774479110743164348551453862170326353501331925091362337715036838644068116694586445938682690595213394099191817300029036629236187450359585996977824697112540068802581910680571541567806176512015898782440225152311750481215142156180504090864177335380632877323420331090472459319691542813268145489684480793918860398103218665465707648294479640810636994505944881851499951083622357091538794106295725093767347706017858508705661396166698006696964601949755838157204219225325300242315581165636557245530946269426786987507341521464165695358777239580011047642769869881486266535148749483679025666093137894297510307046260808915266718196431211386697585542081862644774077550476490139400506982989159402653275944983793764338058276846262911187341117302762420155588945693300992592239894467737755252427478655076166248971080638726890524682719133293627932089672832259158551292336286845793904100836951024302445663031104004451426772934173005235339241351567927349621336097069070139123585640291319652070733854299363005325127132844371134937895345705054969205748547675310520127676011450117558772406233940859999966969872206564480166347733163343537907891032105228296898690609606672792552423307621117505024535912559017865219895460784314977209092383232235507306215880282194769267826041532049542912237417668490870795448719262326669428541567618269184837767435377686425448507400436528615942245208194251827860778523873660737456806588606830350420479636021843109573391976602778767893722850173651751653708495249373900777683356496601185356445802261551773599524021098803301161340280548678835529901220611618590214181453259742950816616597930826375450875802588088804754231810601636240882971259698176448039932317086666230429860404198865381375577592169812916637134868461336341375598023616854142427100713100861121725882358582788111708641667670896625972589946172812219382408270038776879143607937516828432797268793144127417518593695459088824455010221811105984389272416981183955133785665241350884065519382357316943544812771374714871156701231743126771104158566044919679183053436353254211686357967319999753660186465998585840058490149432801291046308889190243402189136857433835628865299836087436577563229839023810597479386965006519284630814162544327006214667097064940520986972246629729674132812083786611651913486877739237136774943514154274932535878448153464238589766040624836317354644829103743020514832474486606204916532644851171017553474499891011670774572880313622232843164180042688508014575337802514092114934228967483529691497454661665008395805287764199777437420603416540355428793372645480006328839846231363260956419306178241405048733488370534548242362709892303274335768457052245569022023276137470838741238680185785290290250454852085400480337556365382805151326528317512704814771746139689894294535651556458887097897355627498890361913334574951429036411885349031126158516764511255128059128797413141195792576397236888393615639607523342845829580735336584621757778006112703229707211599481023773353016788948095603343659734508075719948711939409203882295593628501754825541095681781548941089309410289295051210657626509021169024514650414380793340040029336093228647176115010228621145187512099131882686115158532112351662905206902438207054993580406526599122775086250760815121064475734765640027007308543397389537693407783960489725789977236505148835718517686298721914135945416756224936314547864278177977689789335204363296206821151195153662200603965156837467618484559977596571221818993605680835342551287528191009560993162353546593327681488980950454469302616912719123653420033362679638879112753968246637928458968095828182799597318557561348636728130159202486610248966795012479788212524239438835241680021480983489431430385613661915760459541545167126653919638160003332169607184884193982227052975268094392113778926731203123147411165761082736733753776100945208647819303762186322282985206823207010674851624603206674768298676854439778422417547158524879706055955401608694431106115324108326433219437865710092377677477753574412306557779535948962496104872062069717717664865183531815182918010549728360718260307009791406754837950343903370119468324251198935434804283573011563940230796161805112746324028513063256024870356781170629259217161007016959587646717639481818886223190145240376316169975646995785932601447717285130683053518204959745932958097385430434799090212242431314413341844743342773135635937266006781550251443250616520548903579107908544853871893315467542716915979824557787799649455038153297165048889679228191495686851348007078151752913645460554685944394201115224529659279237492050209421779280471524119058147830982856855631415591557280599588479137253621924775524579594691661774536139328082385833361067656351094788695425915408131396199819523506189663954226992272606373519005529793677789434776014434280301957895671846154254179337377929980138482589310984209807041298268806219221746411772735298464651638007899571182403804810584486557481602007148309181246731261323068549639176367297236418695149407189759819520831321396878732170932448283722942185579044116579496051380167960719239109033419201323986802557563327414895054557606881427998263023378975597646078993778448346548707522372258756946263228070417730644026191537445043056601806707258537136186586683551838053022624011625707074281946494654190122893978298857230644197184087044005626313932687757258448069989256764449925075246651304422770608293712003223952381149328142408156768119911279207720023600077155948218192900073261377585182805784599733895623354853608912197596869996914494503871379027636155679332120970938107573922876835909998406543675311900516271932941041972314027620394954483558840031962461705742721077869290649516665977736073783747245127201131186799847187840038093984218397292118674071895053427339715698321447097966378768177930676154488691940932562615993714508626919836311913759035891684993897446424800665165747857325553247756572235838040506190980955026337761074358700689224093384378639655092614175759688674658221630977252763967150257174774910089298899937001836280860103546666522627024434100942605784494096219821193177871167191445179716840239626326985540083447893566494087659094874409781509409720908529894637649950887078527087545536644899867206931230345338878890964093511997016698697678206186239394232316725930981791719831795131088273977307062594819392808676230698831039723026111477742448683127114035178770370313763656236187468422870626289271455631023419092218411452071120167002937010608241058126842275580313307154823339572212318242446310709845170461649411806787801141806882085729791906145561706380770148873025708781554193574060501801855756750884551259465923664305646991907817760420038449053603487000275352710472206859083691585754998239256030258499671505005690216061596295176922215474609070096824099193257320261158773956391719922124590390069644897317528696011082947498423494676607864876560108569954609083500441102812447992499816136670324599200429482766157834737355549934259425730286690375395101041716892285797985983036163814633353139804706702291194043923778598430722491446156267156957722546599352664789390389059067339102065093769240529226029991378981313587070203188064598294733018154156202578365933606066347886823180585477337177011673195921888387166563584567166929281040754890906748851386602255988881968323995324948601284782580423631929153738361413522669860194511036487034660005782486038300871960924398004819891461263416138676460595088708126354041443522573724526652013108700513598524591334270323577354883665331713564756881586087503638511892856829092183595226205352320626172151565664232888571090248881135719874123596195181439336692238467428562673094941685504597152184668415342981856307104355560631232040677742283658686479644776561836284620745501212201757884649739133431826716002472783041835896644188766795938679592402227754167089677314778895735017353701864847077590231581220978166639226742107804242439302511312304345628397072418972003527584531374484056685430341988491103254356571946463370219852876160815089393810488043728446857856664938009503244867170666560144913756034571420873527094471368922043548243070669918560722627344691069577330147951573346448370540749571846018581874567823377504667587497987884320875306288827306584139424202089285793151998650456801891821830624492189479690362012039573220171983635226326309449385889459451646401407672163168946802962080019416007116689671900462480357068674413197510978652171099262258484786671400401099854894749417402066471261352512578192004089336374364888456676733392798522754062575078972776362439694350678307821775800413472772035021496000601120938593873927595030154867850234551472596407400791291903693483040208891902497443236275233679445859654453138281025801680868515153039958289201918100693152889445905145129452279362573895522507484948385484047145252017705694724443054207718444163160067254563309681127553640757475061857720844065778252527819986202555461256904713362627817735462692104718059368011342584058641538767503696493956982927961749091800326485898616129754596663010613014098138957720525613854258124295778927625092133599988225058483304965137857915764784513481862592878234367245900223284495969033468750120143882831310833375566734710923878583687051079456518668496771390066385142430942451853840322036278552799567219619868984119257984058178712688303391358715012600346248692934301424117037704866720179588251558942130965271675948645461780790562253262865689775037073658717936450482790120262799901098712463096066037732422467996913654598572383179795229219022208896380097786121225296493805363962486092890955127322446634428012549766471747458067751656714189738873979714890772947442504141794407604876217829587973842569603858390618652573670697414944953464485333443577924721215327411884657480358767612411068930744517822954394482001386086793253282934656778284915722083298809722948011960545959720868950653861351122914326191115368321709830297494530386936655600694970427576888500265999538128792530036176883326309928576734893674787253276400309421191009182756356824674609301392512704508810694719151171545415625400099578540402390665671766546795808386530503923251143861263114912022206636808421272099377656013563038651622557063475363083211916295772793662418147687031279114826949957969348729782416444978455799671472805746354783942841254598639511427155012032449710492985023662751634952410415496159223996159410464861351656203910449919558280285147730114409197989349569810558866479329998585479285460117872560075769142225362635892907303631096468565481034861844285314138894430728245068753575944372738120094985615610661550904471691206776367438375538535234416434515109229750751409967665096474294806693360312422386047607948789411725595140179683923674018674097673383094290024283831481602479028099149650105717598381741841762322438815463735410671194670694135892922622338063371221015235453273009305471872710369169670839061650306795140763149918172449563575934570976752106278068553006316239029270688709539404127334573073400541786308099437587243723071129696775248237255597491968054905353024880772218601041707940187488252306926030545587900639917242085514530774156991854532050171069648789502251297716124654961155047622169054564241231331545848302549663511407662250662074952878490260649959717345609623076349616922701617222351440964202045955538570771563395470071703035259990064069599071454157962211259691382943336978610374767784508975693564782797877799422927779419800918553605778043108642512579792279573934211979461795009404994967903747640828200266658610880695383052579287862994488146503202946244209684821855133559076308032338811115047972856170472796219031561488842519773839451980923523319240328948080156925131871620074016662102516755717744312355292820817699591713984230386393203358882515889354424850616496626949216423122688325691487227396090313901458920177722531394813911105563858411659574692681402168158756737617676408544274047448921478473108232521183709565132768635882199556981059837905463019302320397674145797669001342668276095479486275446332371697052110503512199609895870622391739651284627925310304338151421446189534568281235845025864293913767545426414151022253065788050693548813503081322571746330110971785365908852749995942675332673119249335579587400274897309300895734281940694641401801717346069975398876284863620066733492661385143677177316337295167188804032839787569058536893898030498686672804611264867321338617952836872958876696421816915977294404892930396050326310815778505816088316919606656436887330731512710399511542455171815545418276245582898769088896454476913221389810327525944543570666062427013038857284952847167446057727351340842291215642922473023969463745189426153553789288030013211332060412050261609708390577175745535055814025641207280989977311672143480805973510863284781694647105987186664348937034667642161129864778753775668842429801216851225221435933693303733001840578663335586392435155946192332103841436966871049806623095515600298989596222007866379442655961243008325097890378434675775125684435088451115381539442888629551477179928691181902024515831079287206668813285102798975738391588017179177457536543215339836600165280718191236532135992128391364746536240972629958482761832591602789236890358026607634047601645984014728258113115808733598305618616871007145547048978884084243282085139794379331372417522158328610179271363267807045905908580831794590278124317010238902673331144942967993453317261822125413385958936370148138219989464856891595527868124200150962985850414286578609803474862845335675884174675119643275194524517801257056166106693303633593222706650260532616992891728442394146292944800998536175510047795263660333409333564325825763324964478727443061446731696284498635274100224798986848112237020060029262690398525320251425537255840798114281357990705077905322903739605559551380462111811805146215592487589149287119719542685020777039430232546195196518767038700832652017410765388917748629945250386407776999921335802894001197892403691621655266793631511120596450382111521239289723449269056860427878901803303174037478236047107607652139507758588200279340718050669202967050295600164869347275958949945106721764196216116216684162950784170516831227931427358186068572989814274706524662377575353282444909567113633899930645995532271122886896308114930045104368558449804874366788326663133290556504173740863938480189970595349024786856423536761311545063371296617860338710433163200117370576413459842121731936552427891687524050238187163105854649103566455598071233111098496470193640658118315050251456360717176524519163633794790165217060021554033877411657893045278887972340277685628369047900071150328720970252274660381800692839372870896681620104699699485865886132588564758979420157216158665829269497704642503699747697753047087644943100815428319930254953884279638426142992885970199848486618138640041758792333385886709645850028205536181061761633329091435692529257358200267158353599959432665463945744506799623414182249015247983461613903478286327661388781340715392945289861063238031503200375694723148663635858605877501004585649628740384267464219668310584049152974578118476415251199969189627409102425095330060591158288414200013676795257257199997313518513946533433239201230236024391835880500222897170782774208493952575098897327225919907015948377656055622672066094137234123258993259680410902671576455264491196182184572330216779801792679370303783922228560085788188878740173211054961437170380060018288765663823930646198366102404052318833625263725379482557837572503487079511078159051506871947934301543497896632243008923468782712798212413520982479436953712096799907021820688423684094820168713090462969715776245640742214422056292961321956145799628667585872560159417139372599551166924404167140504154619998481615761620315455193838998233012705608106302497433126243010876521573017107465597917520384430881445126652367113038145211900415807010819049822994714909264685748263088134478963612817318787227517685530396360884201155416076950703757536099800219936127179523058426448605395222972850015232667910853261439067845068226649438278712941728881015875620418065874951493711677808950268751392129536347061433328015960236237144215980433470764986358373973130468361617479928801392421254512222877952721501548726069578904854891733928809209115818356538963992670694383936166150923680835734836967870761191810340325474903658207921004751166686977178871689046043545977182388371108524173997446365696996902141692641462291324688316591578698538522670257423124142350433106557465764678684456507860957061675111377879469742355376460575961223990999012851884900847530423567186082165168164348284826158719909344348232006613940510974633820417760768924018074613328652113647320311197550498471606024008403452253720136858776750694571739195983859541761707995760023913509975596960953136666130934973735765638190776643516236801579364681185498482933982885078462546395158063584426930389465216468411460036813978988523144452330245304659869222346441173780661767211620457475423447973985194644202193597957836647927726576536614489363993540708251769055583306228284389863758601262325704948939394054415107876516858440966570517254391082547070068582088566906485505969014261641741081726590994649747173034971680493336555679782067972527527412039039017011291811575274147890558436324234084777985331580179995783990634186685527379099613741607406851835212004544765581591108693001989739871409912806196191853711285104518713594739865084500254987368548321946296718755900388777276929095874888646822425042211718659108415424505075270970504021117265596360431383024041604318958576714572668883585093509526858634742128626046689754523923950856542400744110840027295197428509783273625233269592207257524160460549064601446809353756436483973249776851084882123678539645058575857935458682544075400242863197277216024950013972391751349445145348931059038889673340619877569425795577443601248422211306983238434124129651439326557632562347824099575552209400699043989414494923240651089028111045237170224272441916765697689699936034384325791248741257594112271790491343520762482919645034487693118737526238840700976299123534332264153772214181186071902061086485292682625457869647789156249271066353393561289034627470537724048026987198252920242722584101561524913583813630035990599362222706409787238037575685985980001503832776277163454161982362792050110601936104287555668028353146732913776915724686349172727030477702833586287918918806439697645772110464976616978644378015925566909698937364888819611365574057334460512816564204653869790832546586811502002367614281186289133505008252411681024165810634793623314668230193421690482046810839322083048079869864138234324273609957212283314807189887458946383595870206578818709063006368307633094503729343114231730454655904363383114514424075709989243148922533904850628744623134992466041600274100342321938841410758715672658654865914349543745665168784275859184032387598234720577969313000478129605555291052874351282127934050836285489803458545544174575915724266658270881669285079843895736066197438552805694743153563667847953008330034173957955509247989372995763098616240681233352551920363043013673327935707314882889876060555507171752326324079085156669203838826895730324860042214598260091727052872300492373676347022411659911082046507609868130626689242820873682913235887302039466016551480822882217073096428694404576812478986739789641738630467964724979740977100698279779956228570475630366556373075902226280400484978435028236712749403023321797118350977358764000770592482116925817387662063710131275963899970078152594572334671779308146575098146862825672147603052200360802378362003137715856826250235306796849728727739661145235873405179437789266057385151260645202182426287816837738225183086724430480923615763044062941401730316244139548189544328426103813465305920874877479126404916211538512600851526893166130434838779453092148663723153439292473030825246556233457469737783208493235865134034623808282795317338458107194692191912237002461009823575445231652602298450611379094832805850222543519965335200486645789261908283583324734451623276828268144292005280363850943247101265302348945286948001762349405693610715222024383207395099346139214360690636700191257913953398944349552137055661223847809215803484691741850802287616210386658458588223163805033468428494762600198266296146903256581020861060236065999724575581573902660858208769808345816965657301481717199757603890511110307076883238780370752090039486137647702870990754634854421378186348689012043659351221121109239450167922356815757671382143813905188106540132331479490756836485912968682677563005432518662701404165418419148130641347454688673428592497736885186369179400910776629914338223414553135498645886397221219883982140915655467922828377080565950840456524088942766749412414790190933735641124827597445466248358635860627049220033704225266005643074878607768158302939572976920051672642860710215696492720397463599114739185090892006490321027719189113033434737780397566350178966592293292736624667581901189610254147407975283979090164723138461369160999794686561951216577814270239616838424037230772747344573742413270676774762888353821951873253762584781303814681869964196822801687013295668717425957122861019144207714479414037028559215088943781172479489553263885610371741436985554424439107060515252955547035642178688684605512460674389452060154173113042692433628573989032383455880743082838766169989593444866990519909219282599200988089611953450463659719020510723282827697988203915139941179479447792088126430452527150862017145701659837402427850880232633064612760909113251165996792145580069198230688957053871819044652849794619172743698131037065169149221869010023837237278812661711427708096508242408281485692038239494524412391570706102719219102291257688944396316964223412319202628818587672230897942508366027503937589562737452963621071068753938818516392730606441158104200802769627864052906206440045349592730259989318445367340838911294921905969733365280008110671003934832270789769862731405810195852070390936980177604745425754576997496077919992090025733555813864951353979775739988686203381744463418380820588275749167488222770806728428428461640168778019772700939039076218968239204313592873870454615252031425404975088833740148054059641226795966227327404470612030963789070661117743310730425160964022652585025620918146040103573945320412673261477966079829602874084478462743259437255839285970487482305865608610291886848260518773268333239730840253459331817348299878349477857087913657173622979187089196017022152866704378921971312337250958510749920954789606483530253303272478366028752753273895185410677808065656383798957922974101205715960457402351434858703840813128430502096175867709198986205385167607980360030617920940069278553388637412810737193961355838748192259024955589232156008116828783966981042094001143933864379304686603244572771473618787526786364084059511486629389185997909046943106660174929343049773878176724567275946346763180934874665588593509541080335823549337694922834436910161657559344732752610755720732039748615286004492029630111085892270539210216773312986760432462386567068354474980074486134671908108940694157867012117666656353730218261399398239484092281796542065168881211452254189284645171143747544774314175495753924448871495896846942276141343003847493663060518574474648525492562602235086228892065466167387804876702261100261759165177593071920641804976972327668748490270112177061613315749385575160267551973961285344827121449309809442417297684024713856215962570971136521902546853101929276262629632561822010102451761475654712983585938900789815585026322194574604616996032834808390797465463642249079729480572841724949419065081284027422689608526129130215091930268700968810135016874142933219743826837757609195272062887675436099541554980485697750757541015249024917489637535853675445560654261853517073595093747913100816959009454652785060676821858989403425358405419835520641108116125713473991217348980599707309131386354715868045871762530616071469137092689126138431812849550111698899967518578236885291439754982337984945271977783258397210811751619560159210280218056917290192786715621650555093759485317456223987505836799219715433278496500284956832573741521625461037753606531860143978850900722847760718215226997323134624564060875867363948778752756639966434895123653932464970147143638241410774198950331697609325522505207164938947454720287789768757557778143988174273657426249569959403673941538179299812362621152224921424228703581738787348806260824888438647555128887857853063275303572608756441389502430372162563089696994178779910668103975506433687475371613119519231979355921000922811740812715014650003272927339270100722977589741392489287442382764337881267403877739621644325649368381391773984331600198766757849586563942263078846586656044557864717575166459752050182222837562596319218078660949301310967715231989452701691526537637902569012639337341471837744209525476183585054143033155117397821033684314595425312368416694758866796539013060576604485874426867039102722857816395134791234170555746593135312990795343233700896830581210716171635815825456697612846783306023009740190570060776956893144494381945641591888941940612354747411504482644044289391462826640056113034076879663401511467454321948244082045339113611934345408276324269239906783560194250656051572595567323213646959684017275602762600478897229167056679594310028213711422209645287335021622785085056874628330151781153226081306550145259843166312630264479437048218015870030401190434752523762590741294469275250546489048071963632102440912538784585567620722294500399940777065285574697250346697295014075785449732405424148373536017403155809164008655739560225651439565663855547196190459952751384043861886818775257334080896732860693399993383706712543625550657708769299250316269611914075639972566730635127892073286622692459927574547931038966831107585830997818532068631842946942948092298070378110644706915507937130468642825514303520359110880671796713745121696263943848382176682649357310293148703903059815551729167947184589811308090161245689863105538112030805965609608433055518078922216444553178729345371596913902754409414710812785343193311151622218053526339821114207347488364801026071428886982544034452721651447744670374016597495594485151311124273093556858745972681783904811743744363357661918942722108375421404538969535608731221561176066553993044805418498945437360509211821760282310031432185686159442003348249729772774121552361939232563841704140147543027062867185444974342063513181007261844217453876104514334734536586908044274966314512256450994029290896916617957074665499923425655630570230265819654827814879554597510880232572561040365199179986029732277315526558631909271841518167971758159721527936684723399365326579647718253650613126067829952685404123800057201492932872854384754469577379703098006367263894255850203471015750647356792272750238093029922346210401021067330056714467609685296005803643763469742824219393695629723073476575140782275617887833322994813622733132866835781849523346769223028742255080028296355003451804096216710659105669620844573690374636056363489810614403366052803001172469297433735193618643918886355381131758266442742554572366927278638225604693746628486953640561876501183038509401263593354077257956418859463641688936937072696681980149182416037059907861304468955546604740393029589857941279407030836376245459927681223592033428076296554717973322060898383094431524683828025124499023470497437159197320565995334313823369326240687173592360244336074154005128371187580775549068295260507285198620850799308310307548721680726059741072363086292864355574024246565114861334776980020201430733694554881842715231599292502457390600489306078854420820510413878761271369603677157160809160431827002425263097505074279080954914920134305328055475795227060083027827509731568440614983828291516210680280656240984358997670105869762881750450434952090902433290277788151176490547040507633915717640876856241898251015430169164207353094459634558362989336396161965906607681103929210113670208226099270159712158649895183094606669149364256469425004850127408251834318102441501109654943213047276053483791025971788028554997674807654887503423202156434664805587359245840581976560722928055441724360242092361403157339225303769834554613977124700145690122158636312063014801814671936942316764140386256581228656835173890483221452488839277566188651868428153701375903385969022427855948738775969548443185922118737465337696695732536941137825651596520992440198494157255825671473691525050739080585559154757716878387569346071478253483694627572101934062534539835558368928766880765894791135421959977404346187664577903434382682546194471572376619624859487930243941599474503710189717097342093334334228272776754216920599760228305487931504501384925725821595822649574667794603399824981562374256040562167498950818578622214078872608734493552630680485053297019879593123880605079209921491840695381864761934125251899008371803854171279434175289292188964114775172027924960460291373965809454363006212810121768466402623604228193097843349855231473077920884910018209713178222559469303534436307004829909437732150670905430293007423473235386396255253485913188599751113431213986069994695609437376184011438373470084453208893829161700807195052375287983466162464712667016803629019389731420784439329819572800612104628622361969998967714403603626546701615742299097952438940364269517027154768328047338256112692062114794353996173791247086531581233167524125986327869230773904076754972961199762015984349329069332202294733600325098236712015071453790470669500389982499223790629239711749809256680730218823448859640021804912388649665648671277766678771305922246942256100482697773009870091149546483826663836373019918829725358840611681496895001107732970689984427416903593009166802758773692115445460698014944767785978826653579320970071554130555168811253199533965537333047077322791367354086847721723243573258455372672704029368816043099999163831503999904274851383660388097184646768786781650148268938464148372175962693919316855441366234577054170534834566683262590748773824926743169593044210025499108690937732964308022121027275790707966877552187418970367896419814495207061655484629339982658753775276725400238525943780360873596564215734823007865902669059871209393836692013923291462171037615844484246826858415960584155843122584855744724744585055712873099124434491290582759025067817126102598310909538349379397404578135425508311621710680459175418765477088393654011973610842321579104086423916994200735489020483836460673803595882941078820384639186693745262967281937884180588620100603452520436655204922779328374899600389794897377469422928616922055959003571204288223087934582100609290942060735836952863240026095128721626813454080993530462509006655473163007926769112703699879817331707792467282585038448683887694086870516682619138415028658061828924869637986155738792458934579938464921511295346763973034642328807008714141118932472224089040227344508617342062116428556641767730833212957106454099711707144512931849941033834042900634985078145299550125108363523520927220298958305798222645428473339055546861010419213605890776680240558567175437755567337084046020184601071654762770560501753858078560419413397389600864460015484274984583960240443973338793773492327092077341707954551301241077598411199929025207005353677811008719369905652458502680234761024830863222872068282938876691802837655821445871892547058294343161635027883176982809444607924174176753628350949715830072652940242184065307222318826799089858541205280721046111080329236795517567009764207720476816433231249895364103976059059017050462172149977944403975196369850284410949703232867194550363638446726727797842467227486795772320215688509015791702148323186925471185180686506853881923762028960659871556954998324284033627265262887230276555621873686725192226158621467904400779116314565114824509689870613224877296763733293327051584950148442585511631831216650323584203214035680174689928681753149683563615461040389483943736186880334127731946757421152212432514424456027222537133163799847484411399129470424225572543841184086921454219150049394626403031889966211986290647615273272922032016646611004066702988862118950784446615047524645869589221689885651240598739097231867319995966409427321853620262095655033877041862224825266501654038750384896912867844278011657018786956674399227031935702923820449927472326951028007726021334339014809630538252910237851221631764848272277868376493788376478900734864671295154548367339395948114845399017358611278708502638571722761928027034525785900576368947358419084331117740202281706418005458093278541683950560505301771233991328967151125358999726030884737122292833131217120506756382196824317514104920770621020354779370464482148274008369852625981475349175938575002248228272546393327663630152270472058717327752499521152739517481438604972965326815157729488943880587617139723199930977766681728670049042431502840591510749629946900466147827257626354354355243573972895858689313517215358299443913464344193040142224360916707849684709017488194378618254759641316215107263514747424767086107119067926016248593512747335404851362215767290836009071596886673541948049045468464953908489782699944545034939575490848545652575449656315307997298401826295710160139002801475157996247986296148909854460852419698178314368677046878127640921689122559419959665143052555284240435330843528853663011516865224979858731864303979673588825382331013887716720567073861065471820383234675170943136357921432946551744675420625074891604115893250963684897397199250002818741009610867817122698085320094469398141341158433638382392189740437613310194546437442342976580510081917471508127948325846709196912466492578652720922899374441212471221623318812665602498824993564149907785039321191880699043105317928992772711040522638072368571381029446177189313729348192999000100970886223060912891174227497344271702206307887877084859773120438767176535650010798188753533358322142496800883658957814563819913568743418593237305144303568430936489982919389470149636581790476999946819142529821331370045060152226083272333219135546583979673446266272483184527990197194423300141875380633496000543752970793614244805186999663584318389864001678678724127189980715928970219817083983153693301231879515199604726294872310505498246396550352448540575163528956444344063025396659929860159239108580476610960863915817165241412538902446897746947688230133017507757161306581028680359007186161336848004830625545261333754061367997098601834048917848705391698956668975291696065366550157170343268473012183380200635410217777804726146126735286824046388377044034799299484256362671053464012355002218284809055544606249741305515044045846371672555651929783269968327866146680511483817042183606031828657021360618532067156631475374191187613965732712279058731345332401935008865471442558644393322018879427354156342906544550959722858065113249731446244405045152034047273979528159003107119034552137622032369637624698509297808348500472403892325058733182439294464789547484772508576431607478832112932030195458698915542191560367907187653510489213556930269313363077128194967852504580581898108104001947609447836874576389984491726637737280474290102447098416253954787683823699378444581451466522294920945513529672950481471390016990794680690673749259948174720520266492941026948159364343437113002449748889612476192562370784646178627002836278497542051551705508226215496986724690839769793423390929217444828582117622285785344855671609024269272406685679588813135682863844562908377036060568457654244962707588157470513276741339616451455822422471966291598604505969406194702816585055503245278245847728535574527204012245471760289288831232114996266912838811849068855309899455383229580192685269144452441932730691566011944081209641763010322668864112763632076706426755506731149582176822760871745454583044545812742874522508676844172552177660010541796449063020980919263087762999536835632259808256657715169627133904470906593870103856333644633648314476800029396871306656711550869341431849136696793981293772205845108830988961937843359110529762068060924858800013376775012578677044862764043135221589113047904922035774100150461097557032987199811412818236124345769795377323334398610861155279698767556504907537595935494725796358959708236869163131337071266433938461913294333062069639052645938830108832019832688202724425586200449211629423319979098740881076493587579562756950560799457877475184360456365923863746862841715636525088301703828177836670898708020642519324418570615336951872268687999694113203900014502411502779335519865111665600979292244565808987809986568619581344790156246921404828246117330549211730458190779641297044878568763566480828112076125268413617979510907585260149955457564209231406331974438148885124060388851590816724741604455013089915869564296164268434524496603754592635976451550038202651610344202240579712752741367175395686870373666652522745676332783798641839447673745819759743559560670492106433669591429752969166044915095122700150989068809540698542313971573710023362974242749207483550195979082053678355139300326396316927661476264108806495700609685123540127576596777589406969998968722146638320194074828852080080823368199480393245987954637201622324048258085405723445607711347494679988164489602787010097349628959614816069007346071849111495657126497132291023911744618354347435715303083308307769189578856613835132656147323131725774736852840635301359514068791392059518040115605732922817824790411311976135282545041234738295703108963883187030416027916164248458688415116304863252390804967866710822173854647592719982982428044029902008278751907308812803477258679311319630379349221190030301015025957470943016685235306795495383407686045535983267030302205651876726577672547595570220691766842094887828917731771353430925591921200331389265208783033641413339284052491688517579828350390570841998967004864524945812579808938228046393786596548706717910731530190686115302904993761720775165195756517584874302752772903771946234810666501011986878894282773562739192114185353733835038203162689886691395051223900089902236338175306337814264486869949818671735071409698172365649771657564689408748152111843590936789095652981886246993006071880862396084813977990746802687782007819269634769899651750065301995438468874986527610906582606722029288812138133437654919980185218269328720914044626359154495891089228016132321937097643517337069159700298652629172338228035992442644085619108535453578191183626233976239645088271892482662117163039126533677435066740342647585061819390148353867755661091863110857415600562248829869909109347311050822611325283865686816018170297595552916649677468243772201500522227093126768732370739256432041381728821514629677897260399930063717220709890924246348873640074098805103332834987991485025365180169500113674034763796433332230954061912537067497353814983485241297517324120961707594362323519577343892665821121148270282209272707831476774949684406389381358721940380042743436379964738389801768442165843201759424491402554241247118561334941253724767602349946138718721024704982530131360635404776789740051319459790508991486692499422185593159098844019559368149936905355338716708921878132070931319161801862824390449430072602908208614429162963201581464042720262008909098796509825728688302864572960351870982029601296636684108024592590392895930304146577665430977184964544948952992892772409022540744386174296809926966993649518219079972911131395656415394621669390931078176125173742260580241643388952725936439713718570667683428314495602536991885667447668224066724900519386720897922418758900133982014258721560028682807829495695440401946533964627295129969854629034601281401999600786732472795013729067005190558464165888040027336556253621974344182318574773288145849615649357295453877289292559303691405199625910081270038682650963644153349974105364006473381425433986198983620990817486353857224770680394578486394876514076334726341271322724740708678812962227247703991932013964604090607585314997486507557823710914538309857670549559065247214226807319286666036463401941349081763802784745919988730621966087652933842272985221554551918848446078270024246203254303609264339156809391322633328641163425483402925017054910756276070956617909710193358438963278304251026666571527530918428580208228185179019258458475425862218287237796752102964083446941636354118599089406530336380379903466775905253249027429919606303171510997871736147692224140921823209651994459206885354630330986053623821303429579164115269331435169205728627022688192999609697432189801474116734588910429480226649172559811207560454380195965359113085572147767562216487708600116962345346398535597243402801969715076476334025820822406871837324816535448884957247137408406944001838054997047956826864659952978519661939912692178469090170829520582450705730997374335454008491582628889650721705937828836394528961253834130899620390204616826315646170095511714227327393389536669525277387846115580829282475577807565117999444828035816610106158805893177844607683256640096961786881661895114279022339933114483653670806271777177138196097525414501804382337281073925233028432988437913145547430525613842152406694648280268965718244268177381197471274681813743550065964914741369377122791465060491537312307281617460577994340121267488464640698715201935176312781552647002177157939389155662845110367710641346105500969181215070668218692566966531509671033292372520122237659217099927658533140193679401096684571594142668401148061729876320539225678538500356404385594867346272595778324946476430478646510189879197373921610488897643445616928031715325565707624340948068049718414278369561437720035772894451310790029266972970543818621038729665236798626923235279722976741855194009083203300684794100511866759790912298543994412114368312515058691544552299338119859936451032213863977117803235610483056691289196791702864794413771255073662775569512275305576763639718193545069281027545538064844913568806922962693012941921751702543663611107783763959716664770284864893313762032467003139010957681223997273857053499081154796334394398024209933905923513346224949914818566274360558074371574033005950258078799798084517161340201658847986463322621868280536419775589025846212241304669405709013942321477449037688572527916778950891938881961979484064497316855209064216096711751158592827034955133243264250966961815677641364089206226598121457131404953753607939466105205358622853393469852905837878375341572872279144975804732840490137124539878642936950530596599209579363934784509187156782177134122009495290489725227653693940192263093968290616202855792421840318826305997672459816194959195933913464123240558267735235740360884249321033702985081532126934657482704297373685506522782456167440841326852871085013000427316405078052316225561848082640972285666255939754485286933618897788518158654330042281268424096795578727660115704020732918482381641607732828839568604438616440103368581148511333371278079136781970034646643388367387283728090720065278536523511098364751058389090711276396867915125820415231347259108771859266352754263052043323926687816680184375812934910388540313743650664810490781159572940939693149591491191026507242006197894310275608631614158913487414734520126447210126921444531900050010113220307814272289358909507938077402132904631321582988045425904967106460174158583767634774105827913677777188069866747581403607778786016586812857533085697404819781395538135334131785838986448548495172840603011858371583842528262540117530180266539171287542537562385622544984313759375287860648423336989208649723977253810525333766348714358904047676604414992325999015904851825623562965876876624232531159717296016698699786439165141204989500805485360798420031855129417430718366438513663811838718117619829147527832477674120074703429981934781766242161007894017547116771350038216272267034640194851670586545763163064971863205793552861954941322336956129080945859949871705231542351841040743002265208890041285341640938986022989064131664494076115379136254726465018957967270457207724294197097302318253366404581480258939382948573403233915025013662706863576615434875549027641650767696615580094718943691388025806258516744779898471410903562575644339589763358763420177140742473607479731668593159054183588264356130880697132149815073578849976818831767993042517846961708982929167348758887678121281513683945532009090885706849841948214725355421764124317210128978156348787620899852832406575862425477600677864347331260847606680317806764838773502608498202160160085800132500376641770524322821780094289192517629241738833334829553642534966740251613854583646779158823733149682381041266168727101957417724458866440295512483126748904922447606473739794562323349485149724035297841750056621057715789001416181426115437548755014683362075031670521418648245766280097341447949521394122249729135149318448814372298196049454459162221278056449030751629454739102845429960122801031787602667081745049698573798232393140165029872728007067149136206933070309717970839408879392857993652444103460769008287881727135454347311354733053937363166793607677063235328375642153253214773182737821503319606163114837168759997243984833122887514541952730317312420436631051986181706551256875097102549448459151172299193728871489505234432286406365364612410722408065482929388611850738730223577949481668373262609647600564019219813329306903358451554300709595384256728208227091239484233243683800685370117252154458148562775077614613034188329057271776509256557471803349466859120579188661172161160743129552706142967323897771514162741628265015982747646000369798970716846902349972393638395440133438755694763982559625836720015975198676376479147097977087471361016512003677012492067749834161681902328685309462342022846774192900587886277482281537649989884564840484170138306208634771042293533109021566013724479478725706997197103010518212662821858807510559969738963652370817342404655132871704770168893100654147776912864417946424936986102703301468016549878681161184417328321541552602083393459567237694679279756362053334967800439700181350926870900749930346503137081453113863693597154824195154793680736047347127949869239753737184009722632164589182955424577579223994856393072360061514168657315534552871831343479409873281465020357464017878523574028842576985438019869784478766550052698153544006770664565874980194058757979745274008491715422074362304150727354820183661716614411896678359876339006656635423038384145034855460586263077667467330396748065229907701135514322536273678140645928011361950821400195814706437574204525760501693419019133991526602914985585613778110898060661680789916047708835148942864408854127999357941037279652060835809484978944236011655225677208441103238999170526557569409787947644485229694877565594116824383181134537167142062633955075016737639166331251071022970768698798840276135159334863262170415996844953651253781443935916077499237135061559749308453405503922942653850224248133864332220697588128720355424115104595988376252756407051730525869461856992743837378612977263890473674652149507298084004116265735562801851750652898627830087962530975834211609563429528941935237597307463399106542389178611581073593864982560921353194588875038437157746367052290384429997748357658655844713205355865973791234272299387256105204941691694049154452162771048689019576109961796838131342986817206960372622623388254497689371721623399150652953030281817084891218602509885912901664844834099722605548823723120521762858251443763845794478866991558683300477872872267910493387763755725853603795859517349329244077612108241834091846307751303142846643384358573659876369364710008476517321098388446023803145284865659935009842302134774183067915961487208123321163221861754870590479332834447010053540175896285436871550097178971541212070376268738774265463308780708311799254866162556205274587172265604405879423090066365015933061753225212010157902589956233520372706468139872804667331445158195845922789871702075686611248470713623243506713323676783394821365216822798792323644273862007278186575169039836266251131727916452813354333863213546475741805293939454563661871262022869748784416612163508670751038962272146510545299950533976551514900506940122008564737249391054860256326300110688310028010567502113983531907730951795428330728521886226535019956028197080153412079197873743812120998805512227768857592914099700981364726639205140011933729658199664249729513207969731118732938531332156301467429632517810219000873475775035557317131927856764350324328043367017006472121467530449045305698025765865358786536172330089487564948882412127648684589742226819524458638026877181131782733919587648860404271524591317253178755283087402008948669540010070048613043076687633296928013449464229470639670884754498088472468536349318847124650353712323118576844547091229329329227283623917117142427928253099063898834952946565303481799184211586506474391701920597589850568325843357173350290218459545637332100638821808644453235634101381307731469492533346499553038800317207261078220410936696666927683568955330262184934203706908994832166575503603383068153783957253869997058899897246362034396731096452854067689255468126835022620692527051245811413865404321008809939943339172194402094163031023310542519517171764437646678056267932655364529880653999396904828342162397669191027091920690434790038111298495175792545945976615773520835302160355328472038221707184477258741948387675363026217297808598885450805247133727265839387181769281581246381523741401989173490356736229955320462454264930023173235690843399392483687688839450472960181751986231891270176150961328393993530390701707548548731519783735167444719172062992950465013145074919393707575578726244264082427589763012501997627925505737781818460177355573517115716895194306141732419411242321350408976121763435764199407235569211696439390474017559299184127462122252509860023473706760435171728145583847905502904224505918406436282448592217423723757555403660348755261451624757821130724710829853946341240623492099538142092938217204758261509717566471378615649857515994232923662121857440825917161109289541787837730587301873819889813184933910881450806085283007283556612513805449153203353341717881666886727740219761534067935966617398264425227126900527601970484989749071264939752917279969495863352011827590160682370394114208294648743791729688489461403253367567673570680858600741004879476339551571296822816272772171610445997255626821872631137895564859674139648227512309827690445820219070379121755868587857001927164036817975206485502400519332214110926397877855657967967577103468028577545884063030234061757551995835984359621324581580626288585185978213692395683940804310289964528496157368916391102084197124117890220520917687836669490341193695918383980054960279474936493902414094543625717979436184929635042445997460040886429725820729075672318567205631579684948180157936822107686674414707347869804364308369490460948015263206448365283532913105318468287482899317033079268499726873200380781851812305858802587648233244295030192977104610920435136103040569501610855309603943410927307878446576090418192266770453170868389144726054751401033083809298832539959566906741081141036438122170614601365105661372746667819056360104428362806762787227252370259532443946216001026086641059872241707781957864248875787926698045311836605280585705872758075118671107323832947748320364973577126222070911176777584996325889999056092671486382120932229587185827687773268918872930473928591465628549654193785323356216162167227636028762087242871928780086983855868138992667419954597953968466323824464403235706581582302753337065399245730374001771396282048138246765113332774236811508210796591478763721572265028558678680356806841488639486164145568517100141705766442533150394457697784595605029290964118781555053094264778780195896946648028294669580813566993640149532739695439044221272048838697976908860594965736032163545958203669611839838441495963491822227295902463636969502517884230578361796593537886216347145771236235973171683859709477009143603869727069508017496662166836065921076021946057690225714959474038866901761364652297470510150167289887057346497006508294626378292319071276738952049486696679145081667943554025675121796260907545422719842338087705411889372691494105043491740055659662680765633653188866385114373380092070485437289677457649273534359280692438910416458908756058973751612718704329551254766976289154494013206564539551827670622886373270327064047216446647100057934365169111540926718523290812767965439238162178386538068546898592039034472801764309359368817955819557926303619751992649458805933018410390226394993612612532744783447094204122131988804354260523246506256428029218481116296408636717510720261748182733995928960911692928518623345680294492432023420148377688533247935502168193499619253369464380768966514682010319761186163994947925084928141829702718852028616701227260158074421396346141576716664838239116433539482221025941018897517578460680843935142702890771615199973280201776376271770388736332839784268918205936389977036333663611620278147280685343354413751232794229622679542003232298807698480573946564613632719415045203766897749684757694405600596804567840156569901612045692432891048513544029974163356271231714733619519361259610486046988205031403279729665438989910144498042283375316090639060151809914756840579471128976668323860727659130087783451066694478502654868123640535632530225200281462316655980445780889550126382522129727097956492356104940494923075211562427328672064447083690498397556092476140713372984732090207540411566299509344421453993034582835788946184935895412109352221846587924553454448233216383106447743676379568781049203704409443446566219906678755554700306235514718551946743290220241169926563018057671029415111519194996881079746258290788911664251537665857515076542179915100856702280393634944905598364052998909621830845256873897534314441171273165252177893686867810703351694278255821537096140341386494322509313964366776906534045079592500675143871124462404830964897267256912177050870833489774293764342648015813047722451988030980119024353453955689805348631911717223285921131590122232003715175718701160116303781668018940249486707613285817142531632052604684149120016633276877498525890032694287436837035333676459630970223861171616588521417533287307705356528362035514725217397346172309462550650951449716021830898981741189884622596032664828490585482604404595583675483823075964111494381219472331338108784121100629871862175814256337903531783703805271553712517357646350825262637611114767044720888088044546051573597617177439466617700572589781068345197085995426963105561625507783180410737714132816117491214421324802941836323827900068794309349251644199539330370731554705571713209318266037448392654159060772678203422557914132645854994491976956575566836638313222872619925365511537942532098008567597746709791707642914362315838866920208730660209900732938546440490472083729586329695837244625135325626855929183951967817328898973560014039835251367717645606108545074401805571213447568478048102240885064637676947380899130322297273915621607343636121703761915207532129462051059459528477074270190228081094232995879384824797537694915335702231397324366980972820363070530503613814522405029146895900085560584198515526216648748301302894595806022985121783827101167836180511252543602890810443466595336490813308386926317496346312401344191858117423759877439746014358545636658968920895077634961630829259300795390505932131386428632908745436642928035372538555896153057738148316859121734605919332410750028433477521801648431875237754117341054445233222007744732963977463905912553072576656126767133511923908287401279813355729924998443271292275217368526167852434136331244595823919309222402637345505863853089472993911564040253238435423692590532289713774552556977539403083894260302771073565019698298075579524604383150366362719185539151304545186566945190382136850800067684871064450010805344177835777923285909824695175872872949692151795414759060253335974890999166144105605934842135653413792968642734760022424883917652999131991125744305193729449474437625608288430381798477342215679129971145079525826835238517721301355002361064265884665512976159398123361413222908055995508216374439681664938786499506718853014036303075930501233702131012436908063907432121746868587354769729187840459013109937287114565447108321168464233961659223308523591723144337461114599944676572919224038251879285014744751095335103619881190106948514238659863804836471710748918319354494533883530385496766632625291218224139270530754707090628616812437597713419128881639233623579962823064524010040749361988880856419711802125277292129334256197975683272385687730891401621581608112837377267098022864151888307051042597456641400082503106346623867581810417103583673535654735371539383516183595402128966901238800289469737719001717096825806690959478586265832784353006079339369898019473239738296673487256627278828715001225731574141091191981948987617540179863532106868563834027375556435626524204708496361557011976870098881792600597887739212329303508749891603524512547705020803688565144155782068238224840212531562358042790464811180763535982111247156228789751578437540030856862264330324749654873819744498645118857454404846073954451261924304244982576356354424389136288336681793142864922590731795831383193291000093929185000127897778267957715457095220748559032422790451163986786015744207327413415340421619886240358051700141009542798256889095561748985661955350444372743127335289105995844530527486750734212589053852016111842483139218446950625247557565764662588862823073030045086976597647639687150632579577789244160313343632428446924544923089868310357251531954091734493560567945896098129691524712659605787132731860625668864768109013987820073460950026421974730349940761947039186699680310030075799538144076915555419193020735944527294152611917855134820561095450404543471176713058264626257440182908685086205574238749619981653171887131276356588005196000138862558058425574415882674503050478700064473170525166292356012577863596755197707830201364255852974802292784369652850993126503658018873975534825842718703351642037858091485834421667302900760551238693312450182425841959001035063641878534839771178074108625902281980440875495713754360145597859139580792312258900686213453948193762756204479346519318203345877443164542024130545690707177502967784869428440569635965233749252693710652227447647602735132740133796535089496442812565127173587054141323734976176564285053599108119881856886836812552609580487050848218106465259296265034112481259847525926222064657775047094377112963915801699663963293893902989910794103337960274556025287994331655261716895930896583907346103626304908300923409191968287613349395834118065316884188397761367344011576324710129994803488506660238126262866987276554052272310261612665280207433356895932519510055359907384998691065491911658793328680551265253486092645173392496663271271023562704856354289990366398837963461889265533670869460697378595100338813841589556954858696533541463965771515064602564603721246989409072993878020027868833070132654430968524923992913122105851244413868273479909576476913595992608663523197815221989291782340947258127801661974248238982295189928449950326227453781050768325937479509351280625932390781292951182363782085196479364190951819715187443489025818461153460233634897982903126399708326466354437397246495830637391222506908993848332880366159205722276751977030154047731069641233411827567153396879826739645146434402726661012879242263365067371151175111381288495435677722672987349625909390848084260077058237147308451346267090475204901004864732336103060005610426276360793697601014521797317454663071898174986136727967751116237971275193773321292053699805444602752282762956017057241611198105571812946795232417886145558378715355354126347759422356150625714394646431853054962311754205030555346783839360418475114203842527849025088258186683526808839449228959928057914126525072085298916164217341089450717418546719201137912117356581048881147724861264800805514288614326671860248229949410953693009808271073476765604653431407903130008777707207569640186136215015020443454036889289754483350522033691574453766757081417896596953481653690418357897233068426237261939219527945260085509812122407071379893477085446232699278845882023854081286843204857371106767274217669411901967338782864933476346828722089607082940235124345702661382602168944190925783402322664376279498632388965923093098617131249922829723914456569016976270504082457905705276298556045482759694449189551956857563367283736920720976696235830775296557616112204712772435134444388424547057278013052083923139179434574546374398880188120273184430312516264846016593575687546514809174345324101331536118722166325286488344787338673463109180471635061092693762322132775782228250850841314573327432990495745899931451723897808174591826233527870953158479038293480909280664459297655130017895975674502751377657154269437076942648929754821077703621753908807306363490944538710953907925405840879001272685955862485945026660977460657018599978166159655353929421942475018443722354364335906907584066341080266684722163992345740152524489812008172892720420221113773172119844406073528857135549351313819612175683921974119025297352530486318160415067479101360910671957781815381554843377884728480000903833345358062024198968413116686507645236323689049706304873206265537886274798350971649576295770326924443680689166208927674180205339520753002555880479779257822047059917892228444018314630293339588237260592068477172450228440741562145854614900874360345256490001494165441198631763177988489159025607956593609619130867048995300479400304303499868699474246532714483185546569543031158483148032435188546459860358945971399015487637871897060982904547888477868579266890679929362913063332127877153753774676437626740279606951361214039538627329971562896812856249025947455531376721733644157852028095170862469667382586008478114797049342058513363249988356290257296072961293515063034551640934202221054651783843549365711334817164333977355826155873838204528541744737179344371378522304395888380589821430436346785990054047129285953536075113288432592643090074086381935259023386394545671921867128357010401399191757453762532824624942110683167978282523738249194209825074772493635309040299985318986841208824221270092643623789549269006077174313203656816216049480483122617288375923725765666787837466743910768592373704531748768180807287140863194119822513702639991141422113264791800945899577667909601331679835838250236543806853203428920250014795228717788296216657751027232345359295837334230184673333844925693246558648945190923038633471876770615376853908723509295187361501262478355114602892842348797023641007760528225428654643054551783714195587691594309157852095346449847275513532613034540857472121929793342190811188963962375322981793205453164751687251559326227650107045812252186691245725511264560592288340649066542861958841342061286411871481597694495845484475450629419805751336269763275203614859600296776298321878421103378963075155684597831228267113819664818171967935110943090052355203243701899786500257102848888367936914922708664648582328863321636766998413531618929317070161022461766243076450846703067653613606714556229868006776458276959424837030090954662183821437199660786469176807453759199830187357037940465003605518379206308059354144621533171221246104909235514533293936732690373040600273399379944025677544920945713405905924681573764457943723598213218108615440910188649964810950690289694496643675041153485585807906741565813129131871793267864859957728491155691861665580304928023097765312536818642233775457959795655224266842661645901272444129443521847908967735180863724173897196797490689865097425434415775271599100019030194674101126083744176267891642229788999523120833721660227280435119630145671197996387899258837373182392072549230812706857715762053712727758481436455042300546346052165446726740829694159136692710635836370780685299132852395744411781645978752539646352757068834643761750089686209664062187153578633172803876330098448698433189977778798538876544527627154101250493869917789633858694215389265361845390857693437641995513687794540310221197280677331412879170858574911518959320232960810805426054870045349872325806871715137176781216343680194090972497995484515100758863235867131980590680367654461710965765591340794849806103310024576026820204512202959712414020002336776205632102749926347179724523360171861896351803959705334015028112136770627699018939680621920833906476676467170714007440240192499558156222749526479246356685503249610423680898064857031437132987424814884386107817947126367077471025001071359432129359069192470477340537978375771244100337408819689813088761404296562986225566787513937181415355321225089808275137537490113914679876162379803049198030941643155168313642756026370560927023607910462345242664327105572701383999409588603641716418919898986360953210887222960237853571709026870542713017585966714788935120845017870540745952184382125698195395194278090650129619318328489105663215214719164634546443882640417344070291634674538007950627454254870531332151692668279966640692038118968937370311113944722602153708818056239292755032542939990467444737277857607923041595260931099691488896005231370057332038152444687503626890502915535243087056728877164622054530224674070933760787441047533359320813358305771820479355168023026178449747632635979510869122204290854211113007803355316560696755360145830557138956787859264027269945147314343360688416871586378896243488158404756965428489625167604887263366527116379657282114075308642444006159386387271510443016924266926441751607885210495987128266705786696806726116354455891060026081763392171975162753428689285840730351171680997768679937079215019838844386817279595864571581981105459362576037412743817800220189372199076568443598206988642112303120921177137110896464625319611796000619471935617179962612020779725162641930333856435249896219717805187152139230331635676812620938372060776680995374693058772145144527404830226188377964851630372776796292508754245439424713740876677517251270284206429490115968937826408783301621191030384814376610665757175886474174221482910019979994839550278956718749705428245305461928836721417248604341504571598667335940207495662843772078222595407570941216024245641236847248615448087584067453368945913515554211002770982059329071929178598351510024403542397939940581488887551323237415389753942838498926598587202803422253669542670647212074701681534926372529319280226641489127602588343010022772293010601990324156802358030698928322314810565193063621302918752567031614731238290737616976457581088028149613555531192663742830055030963600121098625354587757658270315861106730377118471731746290648680473875339276563252178657463222556402596486182705897136864274821607628929262587113959008951905190327886003694911575805959151833326548807193065763056373023110019523492413591104763623817011332116418636759526983316941116762790732949268341891437148647574467985063420534755972619694392231478448666378808989177346628831711871406960169603466030943779647756406442862359165763033616673710011670481938834422758294915264059387070815323969721292640749674061171875064613220676524041199932324478213436874234974908983000768117215058200053850210383756100782791907553275903895605282587079965503757302295923339916551525466006305488351132689310155388628638432692675171845250727824098021328653800833522623949706960275491347134755356933564309961840298939176550687927778370010534928263577743305633809022141910905443406981968525099348586657811828317076457216391345176608084149800387970177641522932559956943868593950812550443476699132721222962202501497378301903325562052193878088943709688480136943785918295870852191945055112833147577976896996526281402325315635258073736618759612806438195843004213120987518479311594440587180349321731664938500082558155408432637265092580456719408397941615294385510304988697998343235789535603982482550832846627088908519173010184162870352965948747488722801092377922456743572293876480141508769703942683944877807674456291231848035402748059847608621329936312276184360204824828303877242445066183654883029071017067792773480724254246561479332704703946836254639844335429774970324490683063595018041727677562617229516211184099648046186881417367574606363148297693781771177605987836623294308887796876974933920418617973338453422365925944215518152233224319140885488399219719847339687050470350882112025917203487754884425959119666150632766485842926017144146948493904945245338687670140187085760684465791959458879687668797627592277918835059943190774551552009946840916483906611141573125650557235395091509661159540812222989190829000894703124320202140040522151972490856097006468063667535255683199797843812884904888047999041654976059471528023304792615261523210566452753107943450089886510664434128277969171236637803872138889117965061012473576244393151155771756823713600528298383101823801946309247015902900053935742773513194982344081560687706565938675163198748676377847133680925041095749110541206834365641603911820680867258293958994018933356871427397878534391099205532896406770892703734544188952868464014409128078424565960853942966989205993253559445674605602135338986023352140615529330355942817857434775442698481611609142069688038753651324102640931362943229211904693580293900535851287207976749614520226976178344216196992477998382593220329831888131064223275465208613403255673786260776756483403708424834284453425472568982568593606205395221128903943794740335605153290646470250936204849418772796823098499146096716312568880769107850782634604793911878033865594084847417736448992174213932138053910821539681659030906621110534621294943061523937632734861986785778037534954017896921930927722319035548145808863091414826067362461800211296742015734796913525249581476723791048314329251327337487074854276983059575825986349983261787648680435014970934563994251215039737951982391454717979735282060373498976270974119332925233084559355266266922787349393039779230595992700163482555184781176239694934032652687653886020505557120693645466094205297509025539575594876635076713810013959946828709607093612461295963927883384062413124325701687790584450401681041748821130887324984596697540861775446476087603792152725129392993199660588692856232089610559253426676298632578450292421193250800657233148667686068140153741949688291626138637922890408147594834947378781855744525628468614598178284667233547821399501123929728660976688666662409021560368919585613148452743682676883095469950647110082102657065979904513657649933235081193782986545248535457669597531395161122268833482146281277571239962479937648685667600630502818142753578428958743212063270972456474609424907593615401902904597602448056230737533033726168867956118047615491072993776522578295962733868229988561827685863259242785851794542780470193946023994696062486137165045897783783382047690486810481593949060266761981214888641566465293033420378764892824278501859293448890625565507961068504661264190273551158339450214185866093397671946600000832323551619369001272442676794088707503488379982381953943479060676043107667925143553486220023547475384835980372811174145541522432184168818189843635263352180394201351598292500917843814918145110593613581424912341698462757935709595911659580233071034146336780070142536816095536253013952924062442492811759826615229428849208937473215833087194379952080303774344089515108758379580905166696512761763157920777514202030506617839286759655420412091760190869161219867490073633737428619441241614805346556249771226462559828485810407742430259719397685327149363344085398644421223259182689508373703180588700525351787041215281085417082144143550494626387970113992243859035363238740448459541170694745677203169940043179745003995110416463718983285695369087686729129523874493098458426099888551936493766821318364441964056878467468021483280432264042325070973613007778873826371790844655469305613030069703189569041864514200731689565767096792421308822629390403791308260231505197272344988416883144693989007273195329245136114769654690643968715983980990556334618494513277659022185674162650458963516146519921400645176736746561805014591577331202633890518640982675709593534154022539528213955935956467461338694492569919954030324329605328547908088234634682171791431737921932697218958303921246396157935503451489304263757803335139684153015046516344258109873798355800741935303999136211136525238698244649712538118432278169788860377035709518903881432538655171268420238460913516744028168264826640889149386487044233958633510907080350468693974796515137056003716833336437780375149709909971918015022443379930996254483015138780519182012681615048924959080343652091493170642556129669322514680099585271498288837294874877664491782901412472647270445939955234351310595685565751780231472998220977845350688297893574121292472406138097946157121046712929576753418279840996329339375591158455837829899494608603756171667348296021737239825193484328818365396003905961344974405534326229381622913444813527240295635770498484310238400762895764033005646979835315358895756481401273479337783679836496168867118907173803410518906137055563208409298685169071850090438725338778736449644587405515288142221067769599325115743009771505102939244511133137069539920893093968429564264500736323784793987423553779186534505967844255953019599309540408875384605136812810293464369270738222224033247915874071334862613622283098994813805094326882134025492802090660121806409233167103660898295334853778829291324566792814041659366386904868781087563192875077492232822949156401491993135266912776781108812072822186182562950978712074143418311828980306653063791920622389902462811282262026087269135729793579738377633980378462694494477347971812947374642479027838185703134370724292426387708083699046863792677831109618948207933871413067734369393377821231339638131048159488284768506496455912067956781490514772605122715310818015252159371150633003284045902143060947602661230127623737829009846536495259278310415107259530291283006878160861706928964533920131621077387242096407540414845915176200411445275356507224723952069285499502823445174047426636243682824040852932920933677401984608472656713003403764120964136184652111622417803922352950559418856628906377962626261473570451915381776399691212272827194010497974843259030875442532192073240422769315212064430401517990297446527804635113678406511276426270485165024946667893862166965649173708429157954137961999841935596738499029654462469931011606182527442759112784851819965629532628257414859635076160301480990107772146422803108353742887924744317966008346590308367596255732205541706785488699152396870024648508865461314554156096620066493948079448559956486943190167968286111307228529193703605700795166067665393447716775665379293539129589596301044900397295213102859411889367577266799079947868151146652911820308672342574325375534751734972721738360357221312297350678633495868756093456371502606168934364390088570569983553086214995500426707991799944492193456902517777498136179131806318804454491750919419834524963263743039943853979534703809251498492201016061840428085043740283581598088107994361225133345498452535961974550307787704711056450108994430612696156863760156234743444945878454328855957915459837146303499780723823306316510581360001694576746238844921374734327141266667307228126281023662890019980791744452844695853396822758990320606523795640193489877141615208195091324808614327311849095732241587278883519834750340427636782718474949049363880480451848887779777570540527263714392855568157688129639939670462247549508305894244424084204897202487445346022719199845852807581024858263426307486449261207617545210729717167288828903997947305146029008269854502728610033741355165329898317172794524523993268938286094613430255513811875969024293581136029813812269852896770477409219926088831136701286426090037388596617924643964597022993270261502730216529502253772849990641107957971738119643099983559015180347069154789925250867783998641936086076247583002104105202666485293665574562892247933483622271281213251737818792849107984258162168820482039654146065902361639769098946453449863505445482210314698647819302845004921150577925495804272729834705200707463627141276708446322773111836367920049766388591267797292030305227725871799300937450110555699429554991528783301954493692691325432832808043750793150545473378586333149607462208064171996398327475098894497820691864337365755352615509021121660690153909326024045323720259133177657578901726432627326265671429349867799113747936391280087265057244868569829498622437640609450320980212237946706175423036177366717924866440241266091231347733101407971778940353123653770380472600172628738712438760752883185785215776081547962357123397113561832616255208836516143360125668188722587517234364055158873647586176488098480840327143789841385208650250986712990091494828857894854880997523557773459640563170329652070424941350832462058786852743367387479004093541166737397949692856914934726326416796825640835236595761685329325573001682077630139749460347357991266548496048908573371375827231371288171283222584011200874337509596826551094919655332545489138529829678252857973698578942822362475938155428243563374088089226179326381310424881941742688363797943746432921855642749377890838726796366918613891430540083385274908880228592061602271688823864975786366568726442710081745378453865288607315843247240843227551319025054377864581071713032625274685493541470740355483502188766628801860588716019074496860461972518012268671427265008825368322267273937255003433057936385456132005169334589969093952226448697027230001631353455839840208084488028148055601044309455724906492994824996783600714404795394948437361026029518880969236552726411202148831644619412410593727300745400048448042053255311014682497957432084558995805939990912766430442359642893321259564409281018572788813938866204689672826675714480789011580058994938960933486571581957197485313207813007742518793113813251021022157703213226835816776258808776089220145033578642721601614984189751968882851194060022121879809779247919615013574211444844425271612744536861361400900644651121580429479049044167565912748268425437957070746627994789610894639503034016967577275170804077276375614197890476977972894258965786679546897146900726500784998119992348847031416189400765444963869853041106795157057121272511950360947150674740374010788617875802375023387539159180615961932790125841257820526479693343339932696480151309868376219359602772805317014257577288644191582347980514839949567815625433269327583831942947965865005955227852683554395052569495063480232016482633798968887334667041178815057885515228187656600251692123504598221995017804522443073954439135877049348625575720753008430349470032133917679631232319166640571628389030210339385841569424399216932752830117851336030836052459798083988218495275429000223832557639739100914148524086646312169869355955453522232492294101929714669396695720441019225985669025743268531900541821682349705333339895549671079743317088695098157873202213118476803542939550317699569863052524255779189250562897184411337371014967315578019947048633790496349304409786870487517777389327483486968632175248644442916448212342458501040177513277431331291647660754739136626043998768251111971583143045204076886812501873989490830092628739671095818417542589193225654783426814054949481296110136694781257253615969341687827204956283285101912528817447637279060145509754566410214269773728585999056282984981272406600831673904840223764284857331755677082489924450435841483743807201420490069018914235794866252584558629693811538671059997729839840879866591926897288759724057302962241708108716340215297943194422090330431721991071329006773614733528666127958936568124285456108033409514376963770137709627734072014419785853847384544417172034383609096416992677784383355355979769252167652923386224397323872230373912881038696315809919897069499964420968340592649209011770373097362127790556560638012316529554431443468224137858470255526664106697330454998879933731856729239061744080409495762437685065735821667228069793859173810406720244935689455851146708923130402493899277836070630142048663518089736072287981058768524759958763102438039647256769512757264195893462786181666599333226697846772674273952648197178948491332332876812079573169715267851375570835619653904164865286902383652488678759696154762173264100712784969940137429383951070310159095700404931899446725565847172934306064478393044672168744745165844549646726739529888491307702604640831047705091639836364422231362892288741987620764268708239228643493189893732305182175686498620716162577678793679480661048215977598032451465868640101081004066334377593743302883611665206989234288029934978492775505367519231705496057425821249878435049924070517823591729444051960354958067178565921176340547750030101592265721725530093391127896480419444033847307705347182526378904169137857551006545419804847723993933277196663503820887245007028386222952706690694605646434469664789347797399298751102179160139229744379416943889876444386098331573217119583357708408436389051446721482373383020976946902253493819310751150075445313933685909356165781550687276636020431973059945571440821950115524691071325184302658031495166952313628858412111791193980383296959943126792434126189381312306400338090809944633426812587976338603628090618475455994097882602787003209612340531635787171402945328872405990038746652934225037500250832606177767981178325190166931969844101034336943525062163652068468240865342907769635374726012685413736979785900785426334558670903845125627726872922026144849405993741194218488111173642896824474288935269294214932469327548846809907006829465356709115762049459261780049579354005232658709697425164438205094853249398338659893193047239587865181576383248564073607916216061518956515814664776914643463118908003210281987007062555933691715747681424251103065900057946582303425645150469557463847420546720961598863356565110785047635941267405528258121698380997973171107052409318351844957000381177142362384048084675344651836012980959549485859398297290919779327860746156234898806219782550439829483472018077179381392345638748821201561127410070122650322763177766591434465710917563212883322215711169363115844407442160128546349057410155108838522204531001064274667131178963121433912661399009107936896138713619590356039432045665491040994575331350649614478413155567386933093211640794050032650617657530785521531566021845032004542442400086531098892530965389432795597433257560684013072006396178574879392362022669294182241396934792463484264785047896944077560151765524772907921240110207933019887403160641097685807916965852696723501540173792962320847815018314810448345654157100917012579967250538152729220250546193759904847809265687903280303462270269808853171374283897663870756164903290857452870502257199054657202092803917519352906532257430825194540405859991836332334896324231368798894711827048394731603184275729727299934521380775985888701985065582933969112303136200028628257813688157459202566260383006977750947225790808111014277917803025731639661397863777559661356742923512739741001639496618803833993119845844720176441462563031244744352328651015253276428938764418575558913077515236448359400793212267698269435307825309698730663858715364454728549116350357624064303445823579074245199462858420542180512586802967749538097145741956859084553683505517395229036045721562523409725001252223777738384086781541467441589242425005610253703432540834662463114287211318157903945628978603648357338001241354342315360608088308844189425078922842258457907223893975733640317266230108967561388636193312434573942356408304396384757944199737928894551603908729291245871179843837909434268952077939587015646393797230956338757575253505914194414877815747518485604515684247999454096426955856749370015542397476188782058433443312806503967073027512946136899054539475803311574862607368455573289866394738702855909750048274194413817465629020437464054279469313629057729970238431595881309395240182194560265891258241196178809525953614947963799696604642323507121544701726252007482159915513287870462259438068740069087215870724194713627181022291967273809058229529274627900287970517883427076635163140100591547488766997020952509341941482416295427292117269105852516959040239395235674268520210798369131567539437558518908535509896582163033771515686552065653168112298517959081449190348544176170894268873766690868003193484343431238578609315435491120626843997192487189830550832850792008349360985120023398461865233407716018875406612954138908428261064379578067499744952898348555900210564495198109969391964440132551295696606889712962681669218696556614792440925449020913769461473712941038765358637312069911610250173209571973715656173723215081103988354985690513785119997867996086150348074621736173014088872680763310435045060686659372463008711670602551404077527444697661041670872152977206809377410017532456906362401726885641818984428625540860221523055266426842121530787150644237621511080179132801766217677544331733967190332471220303706412203334593802310865827476041332768150630017014180828478320265052698414138246357755203849118246300886781887509260659279926046489482686315918917834608135439236011854110034150265862030282453376498010174708629461507941135447160694593630655582499739929225273337125329543715805938637515649730372002517538801552321622335742445865698485949743272326469113957857586923573179461904722025863351118322826565376501157060385897590152848906292476083451790706686511455096531416545177681609896312684395205323517665177659873063920871927599958181110945992626864828369017999234742048886712221502413818051532658518671959806529810841856882381644326991524818007919822195979728764520089581481937189874795915387969437956207353789992495943753554210868489089408962124205031441582982456533824799886522053575246372395345070759299162627462045548809988100547585829946061698747573478783928043783148860317164172895117207933890483931981531642102218017123523256836033142149226586210006009625769179518537147751701418371660560511861511957945762138892149550217485324691988577988730274097279285072907266602297072011598516840329408427886019403583785588179458076021614903452094397375009347456091305442455697805036181695423122314960602904124849913009449625244579671680979891782105308933449989579267419934675524740631862565332991277576280691324216623223547661814902901902471915472733071297785266654425441768418569227253500551792286252917118677642978001956458621174685235725959175029713176749977139700466550124470996944668992007227987439887915634527734418715220648173100009312616981902593538706538837029854775756632917057575992629954427679249128044631469204785160790136234432930955415525246076918514592633618605314751671183178271309907289847607043823877366187757783951912108807778149195829961310540919712793143731913077007102882596785017276198278572664928812993588485269415683964945629976371586908301121438639255340439747283143285337467513677325736129888236682599103487983139706061277621900531241482702535175070886321799597836309115214507694583081973439129343585291386982907535947095498079633207355871305348935740972628315750264736302747745690357287427426521469817524454067412679877533116484329304546911796436433396419961966713989452578744365896190352861311081668405666933595814325099509106901021722206489149477888849356544414972780970820833150592098689118930913855851597889906858924320811213537246452111512768250798273665447090003751770569289163935731453199730624995759766294466236767665832194835142130474436267344444934996406290074599916962747116590467891294927464691406607479475871199737234548591339245825418173960917122787701575504122003428555790566682139612455417069660104330700622754521229180646095029253209206114395781111207444719098550071176292461563004326539976500549547145751214280300005388829537453421106019894102223811531700826675476699820143117584842082923999698635960573091381235446682304572076144418923325825324551191194138607619746644599309317143723545131610683203308599963791810780979578189337619842521605318479853970652374503318086641319503565733838340050181433254916458064597743245822319166512115877510932497255392848076245123957528445697592358243617377220598370883773377225066485931887385558736247961583697410462153048184969474454382787317991049254130648906685100340322449618379307160871081921330677162692360963826241280096969436354143502039806777485667674094689043062903889732211926753324404208014236191108555856024312251707336406839851178792124294677969483320891804626368297044600687252545910748334550931267342307587418482438970419463079444711648798840339112098510129677149309770149222314827447602888096129984789107801118220817284137109927292611557102265495464508834848484573366975084068334182877329343390141411002889032463651499910974593993693618541660811771723544494831557547620356560184484387051747313513967489899526705330646912541642917291799875230387679812003934608820470115800278327751761602153368623826735018698543259605283108265524195034915403238683082895691959488525976234459586073772174076228309920922913305087384710417899523780722143892493667744720421643862133233825143743204610096369267446785217572442049628276917523494755667372694033353383784517620039870182847415210662756327932775697051092938214388787519312899842517647046725031096437101201982638674466438615413225842586258187111442791690066074614415512182689814057695670691637344183282730156343795392113545448232196458026344886353691410442715550963000063534393366292908786542417227600278374006624062007631921028949134286205376579851465022351922127423097544703808752764449900580926359055789877904654806182214319273956548340014240266305465937854354707172967208921780809935106265287821027083855634904040771497988086923535694607366154612285547573196040950976362164987986159470107490212409485119703069219798866760178117862808155832716086131472178503360643856080409398163252474853265045904417853713100249672083641992645005297472675913670698127353814550380618662766746475109323405913241820387991228096747730506739777793314331910088573040135046409247613883594606887354184544646146467320668148084884818615079729907321218651949238447824532681280189925140894407816582416935666583752696260960695264105358982961239907818094808880580150122669561244070330418529711261349550734515428455232645256650604974087668718004246013776863603224559186047916970179985822414736375827842927189882441400016394029551518110817320713336623760274255147905002556255673690977908090797821597371239779418685432708997166089348871883020370347928482613536417825574042324150807727602879243332358921381283535501860987179082967923707966996310949356835221016700893812069047796708696463629527632139738507260903486950967386154322661701323063831404526839427413714795568588036662998726242503209415510983289234241030466497031445946812441928044116975594763975849278521323942189059446802446805599051106027809774263986411920114883657735442566471667064681912914469954686796505439760625805726084765298852082463660452689480897061668732178656393564276313650794409091566538434450730735514977960005006365043391960800330261077056182701156195169587596968799587911938966336390582389997657255116502817717758277244520606542436109960160849134183958171394229216606500080875791151538643700057501753408355622367236676638603367611864727212915379736289274156368453084366195085644806196018750559851381276575759511207039863819414911109720181868401283389627302961920863183650595808889780212026601211379118566404870992247120947509972972636148214574447762880429643044846526288345428714412918132561110865178134392494527295210792494822829578187679870394226597924542263938331550612232402297357566349806210329473683899691059550150445406337441109764765786439119346358180275952435241736688411049459977651918415024904058157416476426251640652305897178642748697261186695624762660266050427292555430916304789897411055025360457036987139582150987052463615522922189671789001356568785760643947644258676054604293503989961935815812569173405671476542579130705597588585764407792967974416217574648659109174510998499046503620633985364580579837293376015741051924474359044556439688640112076296401093771515966508849542283956477215320473526823257932173908923781780901192168528326403495480166509241961592308889270469556343754577008395791351085719140982499954396954158554393894618787363991092807347824331073944401423587968812520047607697760700045354163736894338877568926710824306910943764865491642908362638713826632342486344825877553591162761546522204499637528577577745416791699240191125968478505960045871156219036531611142559136099697158729759032075032034122968740713731235711476913990631936564673882827878215622676700718253580628728754220960273237876409239714114974270908758430265359366939269532387718700458800230217717040304747972362144717756418363669544938150756991444663684177821264732523499131247727649994803325548561515802714935601281557060697936796876043727969536292307954276313571946739205215305818828724825017826632486416150558551551706515630454036485955701397880976651370040607808750624623414073017617255063406578948527525435569971670136593173854479299068892834688961027934082832157307058675738883571292290014913873837595967646873924579604524211548057005371560141269485123350387145799049938592084690713087993084127986086542560263706969470413122004466492996605095892442272389112948467863980882610298853521306251554940324316733470435287084354220473288234624976331519203539051955352770242184982385528121844069317077219751076147351898617331761620182737525249203668437535076934929435241922722286982545946269071065494750395703991425810300945620370742900990113928148527675125328911858127762327947761626723089044216327526299467691795193460771790412774656669199951626527636792029018544080650249649471719805847092723830573543524638393150903386349625975924670775280187745041675420281233284257330260664854548321747047021766822021308909144431398855941024752216647435419064574075263913978595227930771539144924831296782732452469615918581874927355399510310317009728200298680162813283184217297965796657314336808217034724744652566913161129498530682455867254177639857284792518624883990121511153285340967781268318159202654682734426942812472647070808156576831413491914225290553393170730412097126945678984836775066160999647644277096881585935696151691634059625379154791695869900639036203500155472185150926032183174056918549608524198771426985951025268587361388146819467595545775335408185361041690797673281701647920193750064796191387723663312933274248505461391851534024022194407213941067798903156134622005897010893692371899868448725523942301010909174121737493152346261923476156927989421552775446456845106616692414037210781172147167499792692873273535981588333805775776997162439985542549259307108252448804571348021083296906578085084087437925362678125455416470161619798435394048676678507370918619160552571815559693666433694624631559237735884203444829443506651251779855356951960259208135044986509236287177448662183974225148457740392901653694885934355934327370836053433461527211354491776261536243489680892840760295506074306378933911476370576908414675692350182025088242094379774499292367578209562076851609414393663858200990781056916741861883049388302829902259316970748264708460488774443735998759110657603917095866163814646307203181552365128163072436704871759829943644485063278749909822944566243791691805454207492716293769989140537009886449327936225436024479146662712006046806256903440410613535862328754039458690981456225306570262942285268934745887043947563745273793394345438080369187737134945521623528187961522396757073297335199872913622377596288943797480071276469624385720295502191180150541304990219943344142455472151580871336848598586404778132718590491172511829869971858832681934585151885827054486408392200695999750466347696616295582782339705106628745570277961799258874056140345192419723013036995389519747203855292842944974963413644692701310045001846185077380024270462951513588430355846528351734488150438439198177338141366573298982973523906609085232614146417411727708671433406664095609056394272774536456890095057168874011568031479246808636910717552239253281428743036886477688905026534863069108114592986440769097527070163952722946012037952047029964575839344589994349333990711000513980740190822481334841331070490492701678969807675934753977810736983752020249176525705095549169818210367826697515048301132411740010856512542303533205791344320473432762699429020331971374232274566366679547462610569573467498878857946917317062151433557545426717472437032175141633647328362737415164870046170813034690782619595155216228949611948697202640263038282422570928618633459102614757984238860417083313403468732707911318029479053145799736581704254990710386437887419580489044615014415541905109744931506911198403811806612707951003957997292936682994330037636661485290148853636259477371364310653173189833838929877216199347836128650787707669102301039938835933418003243203198521278147938642559358823001691874912877823108284536715982094033187886977702655429213523742832954561053816093344612150568719149033119790848468722869511823357573518642194843105656930405512929852900144531318561663205086487483226420266004139589525723773176633162596481092679041222060017448107891555514935739040103557751090637843438324939565867094308323514257906032056479681708758188207874883134174021705685989617563768401240460352296736301519515975729645598775555257419176514160613859116978020013158383607839280479414597518535919431642319509720690537965446603688177730742085280155004243424507602902010044660895668513404434342091483161382396344605608241120059740861024256346974349114964491654896098722934719560059098135450308230512668430291302716499933270254362958532031457521437013250622058929765717363893328996371365175244738343232544652819024396212708239019978376978494265978263269542422000453575396606802019941949970408337393414652700679712649046010708170315607075431765049688963455534478703710415729269846477633584688869415665652798799057482332225771943714148309087385565938002485446842939895107209353298877978928292503550537974740023071567786249951572911097143701566678813465754296326398546322252860008859984352625420882894424881628213039843540796721150036007337688549419249004459477021328320196105220816074430804962135159040882373753857736003831656950030467979178392612649252643387590244661513362107715862904281262596948176452781863248686026668761234070001296110109265130617963221882063373689619116052847464600390420897883677135956592781845609470202057017863168373362899144878045380535060679273079543402885787031097825670339268287967267522877912268629670323040658792598864757628815728345848813261692961746753146338698385992021250344073769684776571164676324458277009760907712328524543070208155456210733296089018011439456142511742548366505869302367465290471032544395812530844168980859342226176130704735294213441689405466889990797644652640069180715740620504956730268527692314179343282579039603296388319137686270214164423792885505678325254733968284599593923972621319899287472869446298117657469502062239328616513113689892390324877535214960320593462458786997960497121455150772441027186309514668599459419383957371900591369589989048574466744531688080209092716773637703549758687280842018525555412361133971011346947490125747720950811338285522387265802336651319302438401969296328388466134153010072423894960081849843593703657547406289483784823715786801824061862154516645477015860430610136717940968419858215704149362163895993392775774169481464814218702105322425258046003763884265161246459345106380006303792410984364994254996225611248882784733058536414226952622698415015992102390109135576283922548582942344145318311635529241262173178565141116383220368497123605180690613722046735182581248437244833922032927578675214375839870713343170953507069584345594373635206481548655834240117004986063696880800137686776806135364943351359292617682793502105494083272409281420760634479747792631451160849638378134737544634823337777598159477286326479414456685855172174014063801832567335462352146359810800270017067718174228965704182916799837909592188945431549527174091266042408278716606246026082061299405546944843432561233914011635483906008572357904894293824837870580858040618945203753029765993019975121489038265846408761373777484487243946298180365698721714399982824269397480083710025390095180772909392291328286446226871528108460485313400182150885285184904841018325271593854323936887647665895618371077696891644002195504282491553815534519730702770711972970355285600521951159031909763492688472410510306943379681567610207671852724957036302244197957869612435739863773704364592714508240424096588555580004970361813903248903391352550958247976264990820278858376481393709260039668424156117147974562530249943865480999550614221522752987360617718481957288092768896933609727905592554234548287476008971608857286961009998907500038668801473418251113312427255973856294166784717274645920208543455729772623759946324922527753295323372485897252133940832633568830290026782652906725606974559383985430160444824513863043199331054127181039824898679399596944507234132243454863583853787110723001727599135911790116241527344450844211594479655348623930359687642958628329765637990226694905853017675542356084847008561927600063671568371592332856888681940915884414495448973738430347979285433542302372943349375571919754133007854103854501830647330697470511002029309825931517645964168593779797953251064291690895941257229813944726330621914203606630981838748105412275055600043196412051590338710202316849435123871570731357396892493893957588165084628556067987132771453551927512509684761699654767733943402186426505040246645557797255628473279786802379144869548656502640767442209794307032860588379499617213563878612942054482175806428864961428065278508735060237669885324862332939761975723770225620236350360389791119777863829283583874395884226235667935433899054305842650244189979749736859276227675691918954535806006781722176970562224720966533819004850246581522493903675650681393666529924383275913720112216978316290532397768836891647803409801629211142571841319592120530733562173557491599091838503514812260024558924200720477357113814870504828342497333141188016518853902082947363748775470326863775549132771694519720300423340076231224418102045666672163749929114321465327077285778634350012185120812808404300798524723625985474462602502683236748699603185698716712252166924374241897356400183824784018974563677426209745519830464797305612185669712288108190171842856950749231413107891716975000882195591634286890714224695832342237048599225330251317752753321941132925323688594942207576493880534001422768558538392264352372937285113357376970935899467717835638528657815936569805650185505383735592247326364285119894907936340183875076916474990518474719779254394089048901450683853898512108092040315204163321855243183318019891150920883932509488922165734501135266063384864389133982497175044017186222659591602481756790197272151487168240265803900823601830994775122911576534295168868229735833666302266474668701209856279197407211198742371738742722879828931358540982851106548745313147424165458263508748636797225618930183410347919246729497823643793999452045132236571849896943367091634636135730168432886982151047187150847551620614506215718107320108937375238691387672714534393134295371084106661672637747095073336389193308514257540637125689262274612442371127121382804554819903526233545196204637021805741294239757413522913906834641816331506108972043092097145855588119504421252257519183742613457343301242306774506414865366996338577313532201798477939729662643721194631158526717300735482471196279022738778938488857332519253298859224894970152110973073500111403813475643192082174101685766047885338111234331462237781132840802712432165195321738381103216092553995430960600463230858862471011250087411080667235214674427278553856312767481847316337766911652923090035444664442490096774985904893302092108926386501001694906471314082535355881587364120252425333587413184475108714830811721812253129781579008875520428517907599324131057034425025763399028496403657217581124981020033356136835576957108154251223921078543901957165213984834064567184853888181504434071616610105622491504265038617633514551205922475017362692896126461818881742713850301750003046520957082722659060531574805101290201591156336545952627103380398695237454434946079307707745149012137233834927825059002353342663580589582280034933322074160735531500547835990951626983534416331896774020030707310194000880782975988904836363267801481473218354356198373578694832974226706127497935716574006784148062068999808365058811237414338417426245763859928661651137765120532553980358025442594932029575333968356617725248831687812905364062267504050134774826487776718006265294814312746468659025381417647029195013256486066849407099703090686186025039198007483699725365714802618112349671309362189284481133485031376208424267552384487812643559381101712548547196241057396327421107110548209706837025609065848463064605602278263405685367676574394486833840812503480570609300747167533410627927251992067673057986579765163543476076506331651511217662503306260620848924106924707330061695649322881150725543020001948951971731104764939962020344135080553411346423333669842928293844383646017876945313598580092813912900986594817461425498997072949996207067550738056650966799343027990754949209760492708018171476852175770839233674249935414941137014641342942595103271867068457178002194318336549237147060096729087788966228015522032260024278419849976077827697792127861710926362076930325065362385261731592873856531515962216898834474773413505416426624932456006760977965206695106650009060796578861301586908274727539603541026418208884172695565733059131452253369600398408531166589924405252369878415170265911846595078853625910436483092158182771976531067605108497793650280680818694421058343935017508628767785746879474520879294566257669999694451390136215330823446677285869427012807242435774089856894543166248671249907620927953079169946466701112484494094685473743947391582979733970713527631715988138834400806968508717202273976629747728648946900630194610308828861929422716275756213349400479665289614952649437384104598873491729811280726157754988132443683954906492356710306046650125875944830044140618511764788620582317789539987104452337398191899166630682735534142338798515479193300151418366461047703677864555849708994953293241866311912729819275787375986159161963543964381905931439195553052298837392278337616780319597583274309540155805360302503109180221992094105458616928977756449057144935644375940248636893053342319137771557933521260365078195960833380909830326233437176830962601410908622187617300312961574069294130796308908987558994646128602279921166792832787597646871551830516060856610405249728768415279710680358270295063671010548016204121681738017722913630267985795728559869908354088547290814876095205260815819656951886479879115419167402081651118009490725747916148977145227396137975322832632644767035600088298283357972934890001569846583876935423051015482319646710038446161537193563675299266960678027238544685357028489022902828036224896539790785527683734739043104228599407730376763417106748401881999001973587463995370731157357248039367799034331586301790467558662250378638508098186414842485452151928269204223786409361510969637048778900879909328097507834080956098606571469754632313641978077873401437217969527534290410624189132677729692233043198791863791757988116792271446096044630211851362110409384406869687785876448505425764352048387024214282072749471307259363093976712963448340770810194687019644037729843339527019765188324106686034655155736500981831837328932014417509371809617662770759115185792015975305332035608657545303786908191865517000143089570535224571925993464587070571360094575583750510038523453568974582565410183675460865895139258279032816684217112374799361650902814056475405823395281603307048400715213786894455997499749724120372416468447355456367233707784251376068888248056853689771022707535636511671996444686305028275025571274337101114115311781176832119481619008307889784316185686293448294088453268784944141922925178008076541672227659689790293228820205313138380500883776240680142352738383811971353163049692542178239254369281635618410003409983593856592471271906840728067714972934191236927695701595944017007762265910920691682771528601249897387543289549313383152531788137310643963957820484348543494534496611003386449812607252096220969640901024823388851520008265532517961853247528428344675699671993842586646933888751282486394286076931607543940631898240976264021336866836491862962719202228902018687707587673565757718662228891180292131848563778325344091250161737080232229012137507734569909582362814168914531093615593955149074908794966972981873030201012501356408579234967131468413016802057172663570843948902931320263750894531197919935549872864482718897976968360560440457680085982108161593751497941065886659099271137802780769634079626682346156317330237267337725285496387572589648697177710964599125105095142142239226734387864801449436530510730050830300522269081181520242435583073209362750114534969088656800828686058752575222660272019428470330379220823158318425346678476260144917012366351224135069877000341195081390902570171007156615606030835528452436835340790277149707505522320573610219621518619585312861205576169370384785106539642709970322061555522167551959404726369553101919203988655403001246328645854888645287302276094918250707605792726560052995193429488195634819722758394571569314574066701903096533429468733689794320639298602631733643667517664888936856162053783295631636350306657514970770654062481138858030637200278314886299224761002043948947960484843072212657724481045765738263920542936926964336087991880228621944118232855019369787203801676576579386590773016089181416891281511557370246659708709641231767649276031386524466929313940369362181471540697737007656446765106518895486218128820581032135212663236819537327733721024587630573930107937621947982157105824525809181402179372823908650057194040211412961144347735266513225372598595614586385787878121449700269125968711484571286587207609628659588526633261285430924486573964499639925277968270761722105078237768206951473367321495389416027488282397279699105164927619184204364644737331708554510022777862219252175483513957851536279096025799564552501273414947952773006770625595995492106738321331796891749819335059460069982207605938763020788646989121269289791088921193380764118005521157914832979419141542139468427858312768356708129298143541597935752724071398063291038730244908657755695579875992326550220169104667088793526841075831826658222850941708830717874348570098405273615702820222388357957843449679528905967169540299766947555260781259804242604628080552230563346898685699902175806631006827495723490026763600060201950593717417647530775124499819676419727005236924727185450958148997852420747873502012322289410104162621258797783069072159804987754161630189640807395012589205233825241457529328035675348681765888815683718181521650740960492590128000992972223590314699150792659728758825770566376315004622530055189824794813542424040313051341888023187564274346913589707370240175147794524519182591459041690477195638588497025323976963014158609098574735818040051312239876431934579826739754626578800423202213547118957946049289732149370283148275306045491141076495110031642180038417871588514028439330871324942608148257755384529185944899438920704336651393539656461680093070178762831393336986288854209509473721965764598302990171712444692933919512896882645777814423353719854850677691335701975322717412733915865265265973792967801046882978953603406880498467312164793660061342051479945259553436175487381623451510949552300869286418909414716754305686492058808111624486248601035127242817476078952604075493397860257856671233394504056086153109404244921425773447286516952051230188223886437103603410701101090775207703721074107869357461165966775966016360518766818884442549048194067271457621757323243064331852506875842672413605597450520934473944334421736783118344443183806881467141423105473362415432799777908411031916108820172609296789909148438376673454085882602427437105235691600318930018729211940457521422036915740524865715184307995847833564877819535144350590170130310691119072029614464060049770276049701509168566047107989812615378269228594350495413680781546323051898255151912689727343455040620959342054854488586601046859215032706263573112121703351948674595796027723483046198075320747512217447121772073218828367567095868324577091791021615243429773739728291800126833175080462117176854348589681997797894883221953940180538931333086267919705349802279759030718029528222444013622539585936435090077225473297607186790273302888242693335678067409221705155239201433928058115959773908723135863228628992295019616839779894459562971988114619575043554413262149735395953207753584965686460043195039990315696995542469756221100758684562749199824206365858672919044972070597294024048153066005633575048189053820140052660722065611063237806943656293769902573148337787394659784680478447894438234894695688082414133606204056914678447373594582458250646376010924307685100513345308122363824846094596046705665837859705798640778391075074237010863931376827177450907554604537035936174090757545057516448258060215994011596858766882982395314666933697711873918281521615038643708397800520972741108774627107841009514180882999315902326013402986890222701261711238369403176860649601393427179347188530256900956059039109052064283568490753820848265229013011505640465665008571498581790699618883265264587507269607229911982709934858818053659609246479062297542376267777020594272558094322952305416296579932501002660781157283638694617376110520282696195891430313332462604419597884456323597481987772135617702886551345622495053660375199558024071461280991143005250788727598608984823829876191655441989327422225972033417803034852218417733347892305532322188363833392173836497591060575940726066499042671238698487355451745407866632461158899870218291761825321767982798130372012784517682686217728466471809480857375135441864113223917167391499068313532085219310737204807483226135525393697170601995251943761544325363310403657251812387265809611496122388044346082601815929033034532046748941437796375575839981217514621771248145538376064860452047211437317529780795986885353047614644195984995339682201758728328090462738527223453066499933547830668681716126265877225152080339265101493068031054669326882931186223715917717172146009968023569858461091141293481592063276977174602074989079400692763658989832606891700401321336627789291093826556639961722216223458425838049906258754551831060054007790927315875588706561723047775958148441002825108147587181650045846021342557237954599012740943058484921043090933569878909054224273640272834155455617833231115358368899967683130175591730214316705522050868412116053600418190456350605951954813643885863330096022438030148264140521893693344494599771447177893600999049923701577699851908963464443834967364798930159966374798087031633436896396216091827181082388989165660210841437254555727066091139180170592647082349827353578512688384614085886130823572435099484750486323382985808409835500911513266505675121115880555064111554467127011650464731142883923860737954381973829276102175555931959980455548459920241962557490516139807455616380160522454332780958627780613551302563274337734092413077332639325219467877142965163649950072932926545381316842292731317700473991443364817266071794525550140405626652294073769960558265804443547253203464771059408907984115914545091903214600532164255617520021179014591490268208672237209485821815753903944700698580324900747500774319623777741715373338581753339626080519528028023438562178355492056385334164051047015322851964768972585775077532353323446918047035731210504850543001254411713804820606344486036058231031073874480403078543427833048796369467453621319842461579162769236508021795010830923473375465483965110526917862498269522060167987376937862535481644837409750755774393166231752144954944962417834682161205343310498501673751225488548528729360818559334673744790429175569020058522741676684309940454642684461962438874201353997096730779899333250551345924855604084372049223156266906695265879488038607904918675862077986022393055306707252695825094947210124954798447681488999723612543089544830852780151474477022667170524427990706747039276799362275789186054458381263503673612599810067137245472606160589360896110453253210328840468526971172320091278642370339132490853971771600944238813416943132587769933607586901252839212099395689449623746545316124327089041499272411546066436102287260834451878493286010545453753128843795388552956014559315628456795559896885735123838689764406354325702228288186283378531327322848919666852734522143437518711333159227301001799254403351059726365874717064547955465570876115093137477536373705006249811719237214837282571654277791451406574742509931639589828149151926392419077678528430061237531630421183656021925274155376060006088420731571379715073251229000131189571881160611298307519239159400089841310258256972754982797256634693343818979713232236376143096213875088195881803389935924588008107080735930816360105097689613756526698266406170045257140818148110619516851839722162046595657117868758548908611468724275202947911678453249017313890511015862213527962693730744146111901130588391233902283492294170135058533616477624286827008496641539971696595729190974373855011317071029443987271739666822346728537082366156767147986273787632280556772757858172770052604027697118754100406574314949907046080847641937944427362682521632216004598481098282471300270044534599888182978167449942670908814038967595563704441464759541064205860355488984562655491076459014853550261419626490415413029562528459335943198344761750782447760124449948854438600104888249973710546761568720399186948771302039662353783908218962826605925766070113622166155897292577923025019076543418617784319457451192692618514414958864592005901978732753446841319745800207561182159614801533908366776831453349529484720676447961778677160603344339384814852503806971439056698146596513879076188135106054804744613740189180433284763774591413586400251598670945984907228111872946271136757271280649523600596539976498706933786397351131442313263510253279766310348611678351448863416795909939601166576574559815800188886886071713995491751059081678468159097052589974169690830643490394129621205738965962276236213687479638968729510711814910258045313857272714349088719355226188284261293298023671904525772408822245810369647578941757136403595457921133996184724402616939547683549994495618354115226663475653614239292629923170889571513189339256237836930066207122335431894143861374364893289253623944613699153579901464797403398682861220999664147378288460079560734545816001607844738095635474700255134905254184975787496817031952950377934184059492672215743325101821650340665205993616076064449560778807396449301969113956315588397934519673487147900744086351637563506823236972019901728872889167808516367385928594325747679251349371431369522647855878482834143932795116158706992419605484290903571807543747371176619063673854243697276348816596850865367177797351798825352939543767630716797237170077045988131240756320492266529501701591428337467350516372495577942269669256244651306638963549962293873114142190811101483556801377296665137112899964124209998003193592180064542400472320712004071203160354357908703958425637344084843321617498589856971250266608233611411065912771603489081814052150362630432657311217859859576947789383398760642588544481516799738417298910320151635504778340197155165608364265461485920107834140221769663049630334380765619829895756586080746635022060981871577054259923445722250210523629495252568543947893842356502675052672107211214252105004346343745737673161168564664845532502339159114808192096471914717892139878926314582434815496635508631938769617651141451234788539016908330213379246334042680170038819963450731327987340878306012157680839514300506760716405646092345723415007182357477125943172662717477465754145089884697039118453346386000369433265540907122999931908439649528393425715873033067581024250034659455626266661781365932354950319091563342105943244192671257618577768133884976903942622912638291624859046545449481539457062633043583876721711661666165608730453741336234013574370499109492559317509575639905074759154137827556743417150178647612226198596852375580754987022630911386793817628004252554106682132700924942728438787188896375419846053941571412507562672538638618491710593404311822000624897428331861541703237253417966407855615131315092913983089341749896073186265363476393973822466086937454145085892446418074280328957516638966422860479361876146842966071238125303175761630439936231326696379509906827410308763492060032502898054779587288138337716410517165669035239097719722456798864407785243834360051893878781916512170040338457224906496216536784487372704455912570317137012565851795608552806601714313736038513691138668984811810133595347624648441682102757384225933366971562497642780347199496015380938742865578150473269356799299278471740011467809070825207559709651263905321146330360859247592470982056161569437500920200613094626109330735151045510504822963482344033267959830904610353716777411793324125549982265120195536283315731100921440537406982487923086108930928555133124648409709162002918074566808156283266982972215450674740921525021689418744906659190589064026259087897057722902698899600573892919778113299423850615242937308329090100746829900557876665570667338074463974686937018360920180889864902582415682857549797022390623439818879327474673710346766186930939973839273957450494163082239889217308100669350570750155201720136559489861587930299794333403931556832644410315868650960124854110941932168952822666115090936175750082190197370219504819340779556660954377147720785282130214439127828742816840136600130108479993393783470553230532307517968972120029782792219871075167060035491700458647569234192518293030113276391568135821967136242221188608462156992972763691078243037266118899325869437184309070296039604957796950939485578265305485475736355141513796611809786317982074903381693247646636155470622588456413771466532497576576153981579884018536894463807339476559657324162320289730068209321580589926993399364777606169247331728992217393046371239646925938962719098478396521330096248733991184771317621417333848127127873866799480761019004866844076948813394594034608156671113077779128695058821497194705117110965067548844799769014736433738411858803518596314544088760230176897526864048235212956791151845606489577944658610133074677957627432090921584374029058990086983661458407358741274866062077570430493700943321007951217756403548638793990364096336851147872523682583286690004969640993578831937577298270269436276934553971559622936319362599134814654833112130888665963074275680206306792970705381985818897541398083162622671178114754171238282591920819148120044618871669905893383285731762020912255031675565095391539047812654328257415865607668010334852494959734814426911164190900909302742043808899902332818864351036586408833004365169172728252952591261486462541783508913618647823785544477037908484426517368509526967160194117604873096962386516839806859817456686598415504100951392668071914438278010810955332233288088341093578437654198521089074092713416992720809902723265138178491420590627042767823954071441698422695667217320248410793281867310642285561622746471681846104408069193024158974499825941796020611600367745648528260805611085618345854439838780369666001488930976137763740405314661929102849684759382152459981152199527723910824064091785648058229035376131070466535259409976374987449742335608769944034582532686606571376904284066097746252315207723386975872761779216166299406760841781870463846103393916766643263371139384918238138822431029495022062883323874937166773696269776635379588412425762146826813465514482774401071500961017657416220033817179794061770536308158056108172118637485333238707745266386381479187052756907440901195784595093271485112202640810083448362083475734500514955003415409750482826729179464711530915580514779786307077649056263643182226178456143173211404532269143310003766544026009694846337123390017142666314585516104837784231379576445316839927199741523573729211645762608068518338847508869347332136615317831058270748734166929072608651833625896712508733762079839533557148024009376265778036985205103159752427354486239878508332473949141084618023291209764795939466129582153007493018832310306024427716194167908126028377112036297549871290437034973157965588196738964506180348258853252604481246306621263344497438305561900681840942836669918965121176168766151131188129640190360963943310091854380177475215173056942454309326862874584238732695180690964467913149740652827760112108723892655517784371715512714963119622132012229973345737415464367069183932480913200365560892257395630748096043584569338038857233018393810287067850426659223433023198696198548158050155657384927312794901132774132697194741619391781325845410749086179646820556027970312319022895697105397475522189875192104024309251355697471782192659986084493712269655727261244991792395303513402078117071903176062248629627703007062457088910198833042802226883003719707090631141792758855212966468600785984202416878632567429482386491946993672515271135460600311152288847581905885691249987392001730114490013113125021923735388810979367843051621755128605920325438355324196411150835077277824038525897530257482144492578651463171793448351968230330306602725615244533211393558921376664625664311862718570395068887665657820462483806909750765609188149152397228746870196709412929895126168742777770685465868421677591797195087110431404206328790884258814887555423852976436311636555667803424002885717631669610448765913467080774330424608135182802589734886413049258595747607586658054549608039605244549399962154764035734227017122323772055806060294248662308057145937843410714094961719128505223579629285948876833690276800741413803809115826828186929068829328034479217361734990627664939728363769128975886292115012967005983190784622198271049897625697093885711980047108016353120378661152519882913085728903386215116985075025983225817631474961535481649544629929587973500994091432489951257754554584872447699554206432515429183199440316746562717693558732407419338690186663916689718626129959988083919738909680157976270562932071733342011646239001919238534978950095263010975921175135783802042204455126545709185585403900858837077977735750721146827291249555935990295069942711858311985461367273084227805680240486279514486701049034563911607539203358742361855652713277331891097071737299674594216202180378113020696776458580936636680884794763124759997561974810332090471153026155261462821185897745389623111134977032683660536347490549632286260591231457642681250539464951428629526667555907747956497757141801561246751716756537366021804797736502091453598051496190701489127855188503473752875640702406059098324347619362058559449725850006978055573223045806407607550078419477607558459722291377714658931638357437453096666186759008261872499480761456728805352863009031004698033273266957652007698412516215733953903318176615938938847336845633139190016007655649730599937004725145199253886751335458864544760997474354010201885241396407220686626389483307802159276497328500613321852112523075636590238034314455171282739120878945691421842717502028751646809962482870172280329147692728785356873020262465859040136573422319435933253276089863621498828363277142126317389212212336186200461607965578679846313189296193159603717524609998005994218142551636950594608730674609910917720773512722908313974106749314273432394538329441071162226842466264197338298610492709585235026477981041431398752974913734575653282383992282408782622687228337508457383676769698949967571793183012339949663139193066194333663681989213374454239647182071493892318674155180317729523940443882257917651331314242483624756904872441604871726195302857782304747690433573960515266811267069515216125034490148552009684981958576876271056357443650466841931942130204637124476417054561046073157372588928913965089278240779380041948773473373461641234456573222402429162296516047049131992049498478426267618221222147225974728578072161135836942163814229652341678883875774487009859011510658850487971185209802691671646709025571924399168312825634961975929099818112314434314648983866955283458514837304487525449918750849948579728373739437584506933061911198766408818094704545437857666241614082525036401349425153873992426334071956097692300774829326654128005549911959512342100188731423815242880258644125184356604034182177667273798029924293195994159540504504540724614424507035485116059217753588176630653371257490717797092947768677670773791260314882690666542596759942123619644290458834013210424615465787905738860637802372575377794250525262417613050200405949787793020404364498268414984352557856254609890777674788471549959494655493441808931585986651096662681334562387200265863305443767373235003822893090166940724789542950819435591233067517250928016974471673173941762050377698614943216247920772765151401152087291959364316896311928667299240145088262875901161629596818453447342975717974413591522876848396357039234732794387727759164628537969132735535534706673606947640121048577878490539610885888306837435877986719168770078236867756571970086359979742034871500281198160659845176252686155718466930364686939288713559555560378934445826122715741258604849679901244433154066681011353865346601397123512033560358937738473046438003599079780445475318176998891814009125957390130105924266517423033015785342229491118460704795103488238290895195024041441948762316499892476253098550358921849881338797402771339485617435139578278400671858195551026115151049478679259634461165455195269272122724353427190238578307999906127193383403721207601551759214439321555702386850184940132051902191066379947991945947101062861912034015110142400865305938005887595915819531367253381810772553103411365255454910453859827916238628658241628567119423689695641370237883831223462348937604467276996962584218573102559684940039533668974028531510483374691294668661341357205228045289186091875071168431302350494288423012209157694666182037317434242248654490217698972134113670432717054500233180490909990508368471714729252147470044629039841147016496961178908906772467813238903201623372575028443397711309924635765593332194271713555992519427531623256910883790725028320847981090299914682392450681453590151471351865484360564148929948287719335048375780497250254037992966238279316891302604625707678263367502984224684305128974874909122053533414319235201475714488583447980736074022814663624595067744488987906268335978102554934761713817780525681982548591821241001279967398787815913061564875101473985319994951775433159741881085115633934415697590217553307207577741282773610862270955034887694812332656458215400642069095908170717232643587533347009031613626751328555907388537583309900419877938406409666816743882480118407242576814566036665178434426591159092784388272356005453005020989288456036593071534139997738713344291386441107568361548878933759513174316472408673402199103150116289540728586789424422554021535672979835719827725315223311481544906726716644707913673803602975577308698181312840102447817852774218695465194051119323592444005587260682345619948712176218519631776445751889114289216811428775582042207075193174144960908813185744844421923595561788111069240570689656784107064981720610642610913203011920688185633585782428181547624234657365082754749584083994707557686698807846810221009621290300430029698067048657391239261945950205747980258523768259935517459439749415029428811871446516963650727710986078325462457818224895775383193079897367842214333388206688802123792768619414484691225431823456255583339947913599557451855958363960596851739987509782219574592193919924307469074924706876637198437971567832627941358721412585914590033797701886733335181078474318290243387693138269303597119929892309091284172209808307772992650433054165210790179371149208149888253198372728876853918705414139167797564008929703137178417610158242364602364055595447896908577715341782674291247271800099749236180128488852865685222111292034117852068227364230771551069797175000549304889619203335447050693475184454613869272461560728871703858326462272349490596330733136146028460607576941704193915186580306032663783354890608060068936767393942252860398563087505095338019880651461109749146675674697380591592102657212910084964133632750755160771855141174789809963446745539781234674869074479814174147622199808119343670581992196647455832437153337997783963116695813498164701229847758221562658826831447694881786903130282898965736923359295894687067737603618233118889059280750528085075512347720565471491532502246137663648129471612270318376484512685725510448408779605741761193549990756952726487504487001119210842212159934044991764367123045343777773033856582644138369193220413958554326717544971636568275105952180788354520040145303055666385146340163809740911133201524506083546941029466152991564597556182641358324512176165113737247543870810813562122151613095045606381764186673677193124063370805645818037487322986745142298115930796669200010611037501876911826724570839301328953333617771954588455978227572452749916268739919886008140961991796661347705190429539717774649723994660664113994028625282959170024242854585541031555334450825781481627129089065554279479821195996309595136073680913780355327696800749517102435738330738200432572815515145143087914099382316360115893714832125982769623802508060007014758512656517608153552521236269302186642513307424058970082468296953263699675219844202603094730778341377019175921303236386961408057299096644890818402659508945023526544168407367322939609353715284077038069224209260875786339573572850134621975964480462931390818800498402686382936205573115279395857607523154012054816356317805091299189389146398179962761215708871133976388422910451904023885911601069241473584425041456829077856270552482257918019375010356840643119830101544132586146832930431421522815999704344541756129782051240054128191486183327012831422922256111877931966505114115719092243307945718680390868482300527031459723877432120601466717246297595264769543779706507987220231056992327960930230358204203385144629038566494097463491839730294146969491401933363317009412660100816373592532699704152170974816718772317534294420881299845215520772459503687915467401783803038254850069573533402021789896085325722877185313831901677853203939325163101997236985038945073914663224712130023982268645827069580930622505591892493867826912365938689358078377375456760608925621231464060574842750042757297728447641132784037190822277265035365971120869159868444367238193298522157813842858061702477286055928874614053117359451778800631270949418931606331701689337141877928007945479222464469156261362986474600800316595427395223940067987715902676202448375391929053217397817560749807916991194226578922353274413412975163908731794995632751106400628400841101944339636431234406535111340292731549179891054921736384246552902566509690819003516644773173026878695033803033028986794631753676093924453719679930645265183085052754236925673766089303964467270335903518555219842009665825705715807989689190715864528736634785870622381185932139540332124114123244724466515406220255431404914122138057576863846455900824548331486476101686014594716221977007955270175796356197749086181190613102112434553208964142124706519259125062496227844510273981983520063371141612788853572908781441731325214006277747096878541461661191619404480487352997074114648121465831374314742071583252659303901667221931490058899079644362302714496607437596935620975134223354996266218404955923511297773232165480035467561797209946823714877978577697391324528755972659229368580971242428989781195610536783148631442788773097770659371417022887927126249846625991990319718015818081946588400668243231865204768459784618310407273708777460062451124175875230271084263906743690063987249588216555965595567226765969869861905581235918002533585940773802958533042029217887666861416564511439687733129696707059664355729150393216992780569410312082947874108633665773062840708421304881996906545638181484907821038911810041659526849589502558386274043253234443032253524647106934184730326658158446383520312856916647535711362430170506259366148809464717489490067454115307553668441159397321328999976785265839751397986700529910443041537439556799165234608674107855472442463857745209226190045080498187960520452478026955157058858962056616052310043862329096674506052963139197828925382922918174099001093276061337256593224348798271373268629397482205950914521191802290349421182853392160968517799292021030093842440371336084495460445315196430938232271919058178798988593847700387764021378742901151311131317149345485323281704457680615481393879232872697337663600699869211546677000475589447616373946357310206129154878532387730262267253451458420617399999708736843005139898643960641273573142887988400494950061942524614287124799516891088215158622574658058149802850695350094477547067292518034842757764296738599834667760978622849297483902740561287578634266079682680554886709501470147684385721161257474514893148883592951744023529389741398793558836115611692462332986469694766695099622096100600720594935109792761086754752276809591860615407425413023307608562427112665521762446721518900367290695650513557763169875951729916360542101105933231258354076649052327944288842881501200977009782776302152689352081459370660682392329527555026624256513677596999278869007069820429310211915464630558577117753440138590212903847237032053362292602086471272198083281639989528988454986908218877909336632905923384547881373903075665945247993951320200134429792045520984921392846657271538097014764944592614685419180662028024095713973724608966032522846436468480306017408173066282599614135399803332972002619402881552923722218484775241435088890883036996633897769385241387355968579438490387521747484706251908028794842885021245873274430906344602602699565378242544039811687196081652201910477574783491476519129370794889209950688112016865388645977031537623591844207351000221516328019775320174716724226375984796554491102780952934198644213664023710093132436219987537891077904679293992160512354067385123592627151407752285852281213856237390534346205726912458945558354706756185114065833901135050608569420126915969510272315369998895200531835953893625177380802792335700845043034361463391808409978353115510337130310130652318462978431276285455249347815008602863462294545876375485520561099868751981026900898628845484086041457769274132961209282373263454267673988696855743558667451716363725488936211686260072597306814848485223229223167537057476072101478979745018482735266566532074605114663190912910881258363920642893644026354313033967566749684344491976221082369308298850982708148885635248591183325681492943007503522624136862879657727961182763416663958396841628169270645470881558435446587535977022551760662169564129434225601689277155233556599475612241336240527978530208089387576744458394898015868770420929349322582949744365489747531055359338475346747348217025901235114167787126814982380455688611206986615312852277277988974392020094358505024958816936436834154302414515749899567802306362558627290410285552004194876799843808290611497011078439836272384100274032033767925072596244550289856285814945306758091841401766454355936858916759195549821847184001259272446679581370484140878571446428466736419791234421334598964545188312192936843906050558117919417223522145324101336714968001694958705934642594414641542057596990700040085982416462774163294633022518623818694881991076201259059462063182176508076829311928843611917724957540367429227065169699616214360084331179069717122977737836917832456894247368369065733646169230852035498294383049782018881607431935548040599406547431775868118462738770105888361566025071691932726983945144163219865985340403530737870939674996611316547320880858504039152393154039384526783910814416632068483007664364709878025748156021988253452137255400536123636623386695385177124649275702001251994650304464061363457619090379352196452656574412696033713032596874292655434025507974166501681089534596853317724601681303334355349671156430693703612303707113582052416727076761097885521936313887895984364208005271762748047391768901662471142564667333186056760840737902767063014312151166692234301784217025740751689338044129341873406729757991683946419648630812037664522883026311996169817890635069430168354350298072569335593919863742727659544982535238957021912631190224447896726831233985041717635398995296289254805094724329869025634213218673549493023923292434110455542411115460163780557837241983478068228471102946987478013816466565699525142824725756098297032332787048221554225002556971216515361920356028599699339566158626484676451385068734351204176576125627790623132735434510331002025115059137319747601392393541871669577499802749918287952222314088241578723598696630508580792162459087350945480226281998893513116331545822136468474195564887490679335380059347172424735859303077556278536969962355436700089285809202641795897487464058513060618123250148980454475841310415684006419478334134982672372525262126458824656655984884807039843055119923915631063666174578445152380386042064307515680270378206092210521494159469000975821530788563130223770961795605914607550514824736100195150847237916759862851753581808562619549716306882642158846269621923494246058475175619139622928872507117007885603772618856784152362881721809073181561175152252283456901790864563746333852494418665408227331397727487043138425076894804077356096513834425509992647435927501858504967501225288166983920279383183093470749406373995921827230253795659703937866245929585365727041752008649640464055040538858694592582698362239026329983013150579946934388684482825125106342553847842266949840846737330858976059192476177347043403275819332460205837458321979452421468678522136641274951559021257834778184333803254399468248723305007676394662984866954130179008702112914063552869331284209453251970312293837539372228274485787742368273053237620495975832836282159803275471753121880555444435224018647439577931731984878342838514024648101464505986325077138407476941979754697025854915047111778285939609975494650016963550222904588068883539259646409985782349424824131556999461755581247758284734857304149459931541998753163422129741072163546034184398573530944984711170330548524869009276284675358836935940358703971810158529194706719277780777722073508538870545048596996540193722951317799836877554028140257608130698803897771598994093905638783145210766784152005443487275896677587249101709149587474541199023013081879521118250646065729063795870456697405918746475914068388320688856605974896346737810037086154779422619921914250971406414617791969940162581344995165996647756639761172107136656698307628491078641794740891334532240717769019911329613546180866744009816060602831604661322453612723557700052315808530184569727434527404225614118819314369633608226686501613098806169569861412816500321213656681825462639486373428962083712028967295372346432760963610371468619457504533088978898086143768387078006578989892281323971319209399561128718019286245435014716488239469077143867495085988101054003375242008705841186601240087023664791257741882214557808442644197146705449804207483164449851154625311022628655841468023377526715795743103785358260356011646576453625725041002054723264274310797896669337815262901873403448365844737170806289728421298885971267759372334156383266795245425603685140980751562972011640943165184089843489644241668272854880033373996909168923495180490739401679437721847016553069860486766591125667245720645635967646305950398166181645700607375368290920281184492908586105193356285909299626564917028574925656929637835198453829220614473963758640736244124919837814979514604362883882281605679721940768804071491788337746625503849387970778358385871455197106966930411173111164576637806019498217821532144381966812742882124472773044853753747203800416613289079772417721555925369717303152375971315506818331396891607138918451799481195729331775451679541462420342291409093582539808308910075827039033952390646982394175958016972503393203942518464029966022452328640626228442391939936998537323460688215124325289450000210635400248477676005218138544339182544025376573829578601501241083810592020187863023993608937930339543288348280778421696555242411977939388350176237303828672435447850522960170584744209940584697472476467656147033973989167526771479629231174357985987969664299691757667925109425872580241409178925722738871818190591022095079009142635482638626553128854874811949814757596326360508792476670020802900297151227634634286285540749076259250725059790581454058984007447443638187070234374732061101929852302085044999435619288026708591116208520337031910868011869588202491963061068601399295851412953910192698804741181197880452423645731612493238883891214023924090712399625837016899471315958225096312339725706641371627724820784344270955574340475406827990850412771873349019987959400061559741823449812769997488641688555614112751908243432589482681706450753452963350866466920551025758745496783712748203050437635792546001717474461363956669024485839607597271234234959586336112398610605101465061910419248205005824268168644799012009610888685040905750364043847614324290462300679567961705366064164312049467160437846453077309957250195306399163106205567853488740261546461611415090371005391604456791668987946221487117826665072430578956902198360478357456741935849020448946666440522578052933428843516577337509351636761609646280279396858408295181774199936818661726846403318251183459312029961855312634298109508799454249236029817761169618998615575695984733123474583596789947331068042553549172794144339663643229173553016439927294728254689413366063622390555701899288456051289679653437713675865910042063716695456637686706101658743271486334810693337408367029073295999358833740199646633307088795442417599096489510507009736738143173065877276482111917054283554410448770728595996339177990844625954240428893669423009089979357091289165989319728620673264248864338398930948799274939077643539857081364653646194063453305080420706176311294501703645620653423464395103331458621139300852863247948107457486114690651463212953469994511337394459140662795486082989048544721578549661745100089371402059107479705092105896081837384556725283505075521092210265018344656810436395790160973611495440740150377432596901131510673316362645842054853188664257254438869080217429966839184846650850516431736309714781649942930235522393598568515214867949489567770439678644525704234596515599232766288628011498278805399557410865378320964758311418228474097105810546477123691359703202831043777934592227809051701276560052566852239005075905920238082517511335339328518828011573611193992856168586063852357685790846434856044839909735880973341912784259343110393938573070373927609467705215830240317471680638925895196226832293822880317471229863711341837835393909715723718939377648528882725064515658707720736306965685798495362741556599835362599239153816416992521729304562140372873635769316817252507858713762501117600879343360735185565547844384721397409429216034951372096310734990089935228475121770836293906191485781398379745187815603522266125703266401635585114384282388964566210153581219073817761789329109123572862756967447850610730802813302219069379567019659268600154427461846940304615159467756366534271431478315764932236027988052875193009409201458499149298068486971689944679353114868541447176810081100475310353602578267228922410619236923770609191020036898785973492270235964660725072835746744227588442146226738036320612755101627836764541724805071711020890608595370511673113016929029793545621810013032561568742053391998521408807197043593277454422386792342881095037590073597938790837758220680652086055514872549572167786084664506125968760302454198881829175646372539074111625290632411186103721852995344513237167167467810054146459352985745945269525283531282737118867826972076112328385497824606181951628047440879358388647975953852825202828459149320277582190918164078905039093801587466276983254751561607157840739945704384146879515118358398830780163533314393273885291240895642027018803561798353654343241732455086396728880935056337721454185134995628711767962423789759507105023893569435900135833332233737656231759261399507062735199247773006967371951217885533091355042252769482542638909508094107674829926497939950398726738910570092720674862452120283600597791581795991569839899524833740632500890610055269567014631174796774676076207391443844978766138116745118462399224964724120862799044165951715868717082498884575722283340612400691232453723880984785805669927740715441191476486409914910997117403451878333025731320997486493127322560962932156083275233869693887732718917797001323701003226108751644028978269623039381647897265559616361178105398417354092330278744158438307898245277631540875024484005558770184820207702471068453727060164276864729833564467873379686178870527334686905758507340123168301441171164788761580651039631207036301929161571221956953646374947616886162074639002872370185013504902608179491245415107562801137775220092537038801903284207307185670750609947129669648367249504224673252190286945849054312480473810866114815360839847755960279684801905126558021505461775056653034369784504184929870853411614925433249556440657979977790176860629023466636111050380022278620127526816709743638766542598768032342672200073234691419849020882232513508054770217355242119589441571272906879372431067661325383547049833034427246575322060861314769299185005063629838519725283952332549082779468112382024337005831832040832726720031456555496414519152062857104533529070060154301091325398677738459105342333997515007041837348071083611263788930173863374860437792643879297495598301566623004330727005230665281125767197108201410644073147273390720725543927048507493663830780610770504005893763453769637587638358388516810786695579916159926957424884050941503352980119103877091148527463615510897061103565922830807196715816673602015911924485174053671462608954062301347590506501301311987478263926550785384721315250868140503807964335224882326673028616553351028735643223499579521905784847488720327592532011408687472402366897113324913548950045225360317540694329335116946642551815582035387078287484950340908230375778354263584557417473858611362801507098500933494674321247462488426212454591665762358142862192687744962766827773646281733332771191864540020422578068739851338718376995256414421015564314167826798956908054330257125669058683147623944952616043525119824575007081644500332026019095341718085115539747775755788227329578923115372633825023339290823774684469390453756692060267559096818800342223734525506556364121886651837204007648483546717067431707565020089551899578383977179109386585290841884932525416540756637189923806064806890885295874990926625062549841594478472585339620869978968835535294600420000540191143525774101753968542940803665435364486044768913287175511313949946238877785819050669075660933294745109435637460940879356615651522071287544543805263737113267204105452172985626202004620585701806411200819071840578612364075828061723785932284030392878858674717519920660856773767471841146545966125530753991389124205438989185612413314657700965676749612939459872939941541934674418980371217340825847521540044722530921805666405896392665834045222302740461422485047716225739327737372318220765407463100922415940339872123574519737552602934138486742851730177661094731189384123797954362358597887310204226716014675863878590405234965295938387600641759489227527407185901184319223997530761815780703951870032078849368612517607779038031020426674196440414550130837013108324238367576519628391306969009970987257214738754596173492773412883907765999108694731090634232433452711702547611392116884479496260244834764351696080406949550547158767802975128643559576956066803047577793266361704378330297011754229655740545808870177136806329032677422875285377176865640415627333672876970630178862500039748653892609758538429294627556375756706157862273953292694687684056049797525152413714340178983891236310429074357295374024057886416821513158020265459727303661017757301637937634844766984179882413182707873365292425641945922509253664520121076416406941955845840655095877463548873622706664826310863036296261572905824008993535123032299665805144643218906151900035326761397083974122848409359296469471058867225178735690127060311667689621054865565126533316969341748010215530261989733559468568005473999761970162625194946944372540574201309297531708027239312059928314266411615861376173050185484567754562589044387134701424927012941143940613957914777890476402602902735246936709944740423598852052414795098214052202509011481507160233600826002074307034336081871274465903991436319631545366206725821528711671903671914700797613526563556958070551767100201323884076667839757437279339330328699499875279434522890403251765531430405672845748159299547957624266274583418795013856707980482361935166874848520446279318042356457214444067196661136289522588372475208496221006922386595638169532614529212959532141312181622429790747289828721473041425396381021700612305569655453873285284536501944884296708175798897567916721420025885212320336855708108010016329055841332904650994340254189638710568961704079266897096864083677606391239705995072201411462782653471459285985459078862081092209720232758566993731435314029050179227813795062149328458018859732127853181442507518825787898836950881991698926322101304215523585971537047289719063719354509098121778397132512009854550418055984815292788490651733244327582143424966290490175655806278161412272082662723612959062495244078157941473032575045132929681420691767990532418899628425757264403592503622937050617432501762755439844195852484850968729115459082403350377118005780424456044632247204931933605966475237489568358992611961438121134695929567911675554801275839651044755992014034894078112932872791158404334907965530800239618465844693293284719273342437364158618782740055427151017312147408382394819730539445725317315965434642955089054349493764038816544432024426784643048123776498065112548771337127204455231973626066483881105725018221870110607143232677220806228675887822864723447779797474560959574404910868129316094578179174535465819033089920472499421080014988829314987696849341196222260031570918526595718144742008520234682802131369829152011722779677221369780745431836625851607750180036169647601946921676388495989064227592120675835465902102431949820239424992412288909765563802747860226919473056668116720430231226839707286409535770096640154787288788117744060305783022906772022194564310261010659193767640785568126652360439872522431694652265455722828036592776033892502681558070108755444580614581608140134734204221443653924458413196752335083683495801515576797078824618706852093665654866420169674955938816464225938013027454200780904900184250635887301790679150636063133466260716757441009786616129358528769840790237895112769283631315481911740108543959651167846130934784719149914739398824610574639975924774140078064154773161505279201275931492805024425129691882265622803728825333558830497974885461586036935621359849547933626592871135042395066080265146902782197940595877394073667732139389410461416157038997181383606798779281966553502979390597254273783538257309130371317282272600876257567728494281207678511257683286264548303188678881779423068037177367698346028113841804222615971763743344868599001035873036786655476856995284274056105663395708548055044745820882282588001459000791629573750748690738199780536273117992276667376748402653684058990164683616890217054021144945737818497086885374417090800023785965666250058376321295864466686359904977857025544804469974157318397223048235865152541078698983548841128615604068419429625914316788571830650979324735272993362462427012855574600584706681070751976292461883606970680646613804438403206136014547290829400245196489401970862709352568639310633916957548277541605988771062616692448413687977365181005225595720754626430887034378537315344733257335374607954659463380772238801165473558504288216455684397114338822247328813751644320208055572051668445716428795459333057954473529822514459590718034856989668741346333047361106062829756675362828831227903841146830263699494849289056393882735081273663605217433476591215245210505105829632330697539072873239521130928904142615394016829482778624324588531220921769947092988911590879526973602780391666180467425147476964321863865635990276948741774060205592670902636453347651249356954528862486587110015501501355732088415820123565150255700717272593785913770573192670183660486875235076360191660544229806101805332639272533246770091842977928202129124547488880985001347829199839749280187473261253209370090111953202386324119020519028062790396778565122530543547858186351190296355582101204768904096790862369240826323714939842796047859981751679579511064400203434517569098758219338275848066958546186353312690295327537509221027437029500251452826989139281693095413067959557496180908701638751044750187593191019797951019883261501557028894029354438021802656606026258720426742606545244548004818050797741153584412455495633907777131987994273103460473719500145967407241991846619168417846320731319650482805051955906000258867838967664452930371620527719742387474028132674926407906284051188353806531974053495159479235234701322604800887993157512474730289649823957662321043938919959889558193772577777972341788124454074535750768582653319948224376967241488440373110863554259208567564564331901088202317007598691016474358879377016616397389880146663350574161555484977383211925422171704808168804535809946868924497189612113925769357603034780787366957715569499376084337420428094603823650896805593763429449980460339204152837531279518599342891546743148626564306852061032027289579433992341725876012417218050457713854781728390289151382094677747474605502045964593828331569545687017580314856504677260085686427168905521301667904836343922033873176604551594116535662232343360195743605260148666890845710415439295909455544060532719133907536256018744271121460298830507969335738577483048024530704243518513471294644155437598517323550750082271130656360975861907288015663613380960940463207538038434177525808101902320401442886063179486212050758166830257339764867822635964769173843095191957575558731673651673810125928396749590968406967824615793157396619707303265312528060642303271305211926849230764931736608760437838649583266396552101324274393612779111397132530052459861987665744239358935767275686806244200836857724288593388005856060872564067576499606709673786503646463391885101092264788397663840101317467316885506051008472310893242479993771440762112959879256518612041967849921105233178849269092634567567354287304755568080301092326463114744977978737316435187079629723881837856495388987795254432922275688614397344962136701386743131480825096970461726682366530824576172875872085632013060531259513607762491630365420206916182247493849090309064976688706222754068160559194672145245587955806761098544299977751360670406456866444480196139557906045090273759936126218259156376279864356281394697695439316560116726106823962353555856100505612860475039024876578871216496118308099128082393813427658596246653668668623933908374266065934397992604456067252020440373764959506208592340163393145976725279568218689025549374154798924285484689000731653465055217758355299415560766865460718905033348416868934555180977546969058152427879183122905119006149361673465162611231695503402416242759784925070255862730655224834960746439707292858093644160480221180376746923285459440040896252681451622212678681935591483416446226434238537813407482460181805966167378381569032858599562941664365093119137798950018510732971170827769334804163459853040541593792003285506296312474206430687617926678449809938667279069736601371096528086237020659490307804285887841992193182938659528721479198539076542874566098904891605348033111231172449230561341961816971133660586158513466592718937840235078239025317321910065906263162761232291074787402741916363349921457851696971537345714337444628812950584566803163993531799358775422427170079192089533772410857663628943829798378695040409816603133963092651433822738642067734137547572591467842504317658994636561169995531191051511482327204342213604736837175085069917194153514721384024330431964850889124142699542362555195447642840203663606034699217213729520771244666798592150698965484617539034586531643815671076906635875736955003354853122064082290824169215469324337322028241118401563172822183730320633133963761232031768101799681902624654659625974732613412731668813927653277956335610882474055938705718995813756955965983609435373153113734064601324084467096866755492330477535989352315038037797093865378251572742058957389766147046541334211672094809956926661554321323444977100919400511704692761611162386602292170689020135976717127163301764487307506143503118755156108246261654679741378675449550321259875009088095188524596222340600985802050745917686129641662043716509701353047912034651522778030007229470281951307528638381213143089675918145358793494097629929995149921457072118791858920151067204092853925681207505377255057956554818671781009435045588351922355396491581179424865189426595016326993764066427006477703805225514761027602942640718454637860959817475864749797043664308329750551029780812058287202913776234734857317590821082714778103909844331602263109800903850658906006072184480364287403741805515388030531971489102528697341788203972663719171634727919912357241931869941759230339492233244941434564883674136475657020697510499652434031667368580715159146425040795593343858971418587423748620254188645569649106957630188160139077331243913119758194162045663994616895614963956016983693643311027046737190791698214974224537115828862197321337343195068152073244025158611511541912193866641658800313594406999243281151364100241184504676198785428047827349624087522138927229915538633600855762292055385122623757821565556473540619765277018338360392415929860445445197724998404141625125961809469084706919641259551931618258602248106378656386828011469612030984442008046835343211432800538992692326538835650970259266175678489410143022982026803349158566843374459759376053154272834930123491729888352294130444145521701879751986194767198954640828073792160681072097867879420692811542342248949339275255512731356116773207221731919804667227178309812574946380796149425341343354367072444310449463310627767889609435537133917261610576830019753976211453683484258029675152559803147665871135762217399563640027568541179990440215788006136828812501206630704972706021070954158294783048748339019526219058455102169516492351219376758152827022756044017231608067864223128452516184431089722479621780403711648141763574424664828253159850665880559440683003773957364472989629111710087538756202614701736614666407747729997986551142212089503772129877762135941881490385093863505612489937113739372771330548237654086795777691378567459684682673505685141122465582165468062373925236420029494092546496536338092754378151095505807411696750859295212473357237994505487403940391009274121444581216062802365143167042910295953463182330079088101564856291318430958950977643069847259930016777063805308356238877024862138963594310375923351677751180081034924946507372453901487760465549796483524367130273871390720753060475781348336991987892310246694960780420828649836685709712607697678871252736957170642576361779845470470423606292646660178194196609207195991471656205269955130421118227012422805766628236244535607130303731938518649336012399654090679346496612786068987323136624718240632182335202034496442762148423360672001438358335766926250379221978216731703620398654515496941894882648206912345750945955914999308100109644857508558802278368771272420469091585410144491510581617639688422897673767230541936111829338697406891582684519775103045126135362749978237930100696957208793746985639500147954900360226921907578827680344546253819981728181574075587372060621468602894101240206851240790521082464291904489601515818524628396066796279652534429482451778333568171013021550451189191749489208726641386837578875107477545796678619583455910180653942491170559811488414649739882885971600173376997221924201301747051517473882674289410279680501808798814324343353290457500988326133254682940857068822807891320560592779272155907979132510186563157602836531053212546367874610772385575107197859974723849154114539582916355898893886346794756938067382475796351631254283391953474724512664678524612214654881991544997671420174298631931319369679461137059326584726754083713098047703389993509913603448000945819622238639401717407771233899965275840221484813790801652367106364063339147518068299105364931978146745137519832715192535356089398939769052416251558770481943398699757295330240470012372313699539523792045099021181096220890294845288264331463187180908807444432361801881591922934539434655202760606404770249459099997256621128975017090227642085205459535680497339509940522397349234854557329654427030446204806210109361305098565245075213854975426012082897580763046760353541926540116966168109883152522762868122609177838530431348950639907308051821503396970045209036047831930925313836514242666461751317928169625186068071958133357013822296305210823142329188596698784002946432462317425203447461020878864185893797895588148372153640685918294398771639839259685818061754699890437685429421740832170273474380347324341803370839942763340673858919502215520805056148003444892380399260311072076801389273302612740585914961153413941233762919107449881692080066948625987811335542277476616740602465440760864456198821259086816349267037407193852677258038949903046899979954217469049784850042463013721879324498208298357724691675229848342249558913098411408672530443971715125077519234137977142885583361890350254944147352047977306581406588681571717740426555631077126381663872166389765436781858231773268102223921939049126094030587837532852705309019659155276595029617151527892175197360513232345112624447076045466139107159996747398700633095122576304484875072624538692309570239839497991129767918238105952707876658587108129021274005874585430925916764926225393793943408152263146242961109150301467099427470205827553900469975074964295904835034395005518535971869186208675174249769917861423261262977151142090211431726168638692096269967808773397396256452204137223004808156501506385951436360672686869886860960715466352447645857058820115671832387267911519579904824884770874542196046998556902365755870980876729665900742163532923728816646665118792866340942214746270165582007620156620150131345875172362153894351217900452382012542909558645794905192178545468145272714005513388409113077115413158339589643529966006080607380831139654934137931605620998963617854488650706546107248727507248605887591819672441741103800348991492913471534739516069885220104191155955799159275247490003526681724167410437895223134024816237010267499348698934576417297999326166298566641518232867913587284166021679606016028318720229060549559534839211739203328274117958061665760550671866224829152035241582087535308566154090754439465031950474171458658651178139810816235827616416453537321352103058893409154232473213157434036554830430725944375833252242101508322158231497602476345104490976812541898687232462918915677019736086698670299164650702458404453085055866781686128459822459266550517187052134483794498580268743757175545584600928767435642976833982786165434246109103244814066678405266465729514865274924797717288176416028342795756363251673611201996156117707849239358291825095317146205352326759199477401995753198027531222940303524023639270709402028031291725206873170778302032085058718900484780386065816301827698632345178200402205568424529693977708222995779858564383500129031684677689244324935273261967353496455099672680613941172379285025512240975378765485246746706197995581711741644698789621585047012820870283058774621741154439282173599581846958262438377981484935628876870347082012067263108523276052458887070123096207825805152761426890577900686052831342206358252385216113878873098662038000682160558289045456779901698676134204112834381958072164963623583884061675672467961142475058317686041634845157823869591457432730541778165610006663285926058447845532716884261152773048766324480083724463178952617326750621615803826144428307753548988260766389172523378304055018261028381306516152437403963998732098302457360150132531905721113095906007274693984249579504755870767260053390031053951738518164120052300833893845202581660591229834779218694964901822863489077633008187419920054257367341607310897170152433983771614562157838398601422355566234642491450741131290621887887080154222896830138502903906926434153422140067319519816116302573706621887952975756729961717364165784482593748251817748035482527445741094448064608496164993440790557673799106076925392197724668610905464329906273013480350666818638675170657411620635255169280122683954837060417461152139735941583559460628666627672185204669083439109979949182497865300822781217430850785993655225391772348576371253964900734831932040347443655349336113236736287521594229583324874779512689042486121581165892752555078042771091325562759769117299039368558870982665868208222239739323480913747502268830543709874120047814158392012572196187168796703088338449501921418746263772422899444238672986710323333164530468276600732717453289427381689031705280696506318128885540362330156380575077150239764446955682927303836315289327419108890380138567153234413758175491322559944985310550348291435403068836357636746646776936417298907824810013628303620951853399138551461643123874282526676070535124475533341234056357177194762026143554010798037327586827191558944814690443044852165573890937947136342462896123983262406383978746588978767783146300073667419584482892644585343787825029182187373921203184482057053451190326627320513111831763908739886095926015068838274462900053092855085683402483939007936783474924730661063397781628757251924483191048752069571780529259324982269320822948145601896688236466903393265714300169310512283669947554857854670497068708367404680801409690367716461220031636336673526457430663310480608890178172843045068693766155696069997483512836927221749732985933908103885709954897617892738438978310082859496303165071004380525756985176154855016167295405263493765820430907287191518250263126480388386998218697817577826541678726582090464231223165127357922488269895158633353534291817008334543602540249732617111175665200362974004373705286200583784143054531286669429454026521913019778940971464911094027226612246623620466341497595693328817121659326812781913646306595838002454718509628881732336527546869061794599736797255474345784412426672942863085067072208483996658099839502252925728227523856043849615567178199199492679970610935905563535824256442498000781284356543433105956951422691559059378829960188666175176490716335435058827977972626223552218600663345572546938424362794336154870304972792438606370718672719987069157690989470480159929529973803882141032439381059919872607656085266743250739156694385374379754161595686462954087387104742847267209391156066934821938369944894343737521846888022009640533879241166277375287680736898618560371664504233219837709171246874513894049650376140732013430275505533959033359288802302402456314205238750824286323014086138076961882831796153335087721574487280060206404271023310364673993187241897781519256834252034681640545578379234758437650073686970132865588685639366871236976060443413701542884099187842135580973988784570895634821518301977675023316442981413665024894685076954540466551558441583257455286559615386715280793256806833804401502137509275321437841537453248308349654739971673362293591629729282084811918359030389483331424909008120591495418775370053651231966931222526491575000312440768682755386500779302376442178374513449208486198016717038115363780176127357091944660489803541869439643405204100054280080867680220754402894902874933375990363667441591034267324565635059652347294578333699623020372617495141066859478028320069021778478075190365196093597854988645846683350284138693556078526147407697281182638681060495106962397685559883958038675853283652455104261584121711661925469705489109739656739427053027372597996686590164773691036013385130190216413484943928601683736566303689267414973559680370112574966111729268269888580153023780836091673810487832784050610878930287699060733617354034909552589090500019119926717654922936313308292933044210623682607670589544373355502573664333039151861583896158690684191229509688945453828025692179733403060613290227794310624634105913445141096524029363131003546688176756042248569822053655597680065176862620989646646269509727533842171004096977355033891419307661956167816832704785684158048552443171686597922689772197209620588640337137856447770605168015854303474440109523064503268241001989359347987714249460862248293301675566639525394090595891339093542418784380907380771440813966384103794381902722232108016691681037382021647520124177541165410508048732668565150764311038811450322906642939745457285721060524899743126045289344684637108305942836304852065910074345310559467970449597520047850036811400435245141018005322563480345229350903998300655792135250509093049860579386061962485507086070644542571888953795117350838058640315094759858065715304762785730031488877313206884444335598205057172794987558666835062993431988266957583654444049389394817050531816398152375686896160603298888248937314743462761190274240851211502885193886828498565015603929703041732131316219092348941722724344494331861196923280396953593765863990177434223628879729694081849048038023766547600416346743314532358237186537983021533825047354943921325855920476073330075945906126042478145501769092856036978868802424881282193550681565314717378343613333903549249921700599753922998811751468404962363657409032236595078380763614818368759488649112553883576749638294910039877155785610806889719741886712176471786136123841208843898025150436734853622098505649185052594513542222138605537961723521505198092579777596117155235016506581389497675711228498152416339090876543986717332944444645870846242915578979580111754095247264536598431219008298530012349013960551141728602355772972289389065027549348995913116654876293778011900125900943943897026579327854360463007963093548329653728530029700457117930914722647434275390264232500818897492412222263064544370186371963182777073736150217252299218376012813622745488269054993995183727237076929821409144074330742664023218456956177796727869380714979997557533180743482932981288610576783628102786627939387520403281544541242161027059306575757410252140002143034669330950478715642655581530178543764481553276520877171138818724656226665098667290997212467787985542574582433013584348536692470553506377066691777690887161108443466715015994941847427739481673997427110382088003480536147912611106583678565977777497767061409804600332200242579286841702945541963442127144328065843110048992463255470476129169911907012579875796766688456047407713871831470605205592602488639174748790253550549006266787456146194190207656034438555511428252065971587207333604416236952322136804260495790978796330249909611399203810768898262352327195883377340682870374656516310598110584289324659977365795994620762453050066264035841976750471235979359711373288828041641465054934361480310605065445727349784938113642262488464706269630099853313950884416858557604557706741660140745222621444805380247158771259862661477489470299171746785944402518970601702459448982267503645140707537089885457548934747542444830077119522076041713049820396156753471846910022915324269537551423759010664284388850553288539790859869816077855472621502394117930001537021237628857444954158294599713075191678092675514843415359794591701568197845746128708303237426715341915240276959281468176071016795313245752458262215687408327480047870678099063202793148376101286106134039284729140974989141886715171711290147069627453788050319690593607785926232424855838780176546492245887180509637918340095192001268050715888797982782948331018732004359178188398911473249908291392508555774182898057277172353621544765079141367400159647215498746963660313100779524005643152820837381957610726208950375054318890747165450497424582194034687344583880237445056443094626195103116542664808911168604292805307983133717345747900407023256718180422590963413439319005409757034965882117241276864209394283461531471490270565809400818654031607271014253605923073978145350992421299780395426669880396784344753888568086038989756106614195704499730274110801706875285615370653042311384069484550987150937809339790244397966496073962565705179588057648386391301059169763507404273403761792129585881116693855226917012478427434627753308355013973192881719593029015717468669454599592859372993997784601056305060514447325037978028623204884390256882332933765051181461502350594218750750693229058107206258536460085332973403106700979612825835413519049793035971714463963932322320825224081707045526471463011545589891874546082135695698255675012089642450601145410564873620215324694274395168966790846345008469840591455533192193775949743557866717811617154252620438304320373354730605895713877009457576325479920868985151798907455872619028709188622595436052618944758920830511355825255560664841740633649074690830657913374833925408524952468520932400349975598528526415849836281515392040467963682601834439835271402997063767000451823382694035007551902502382958008929054888444544376782037061136796128165685447328792442947001088720517998922110885152029535673656804061009593221406480865683741779861878864691485556056583737379688513689743057269755605400557007289917525408062030134384888680113490223590974857311855122636043203115414019760307775058886795471368665642017084360610266727314988859543974494807547845581001827319316324884128044887222969567985501546485578048673653522790283699791808486723064962221004527085768335035212069684801817137616329975617384251603404725371000563516403421624920271796682492645893096018264502692310226657054164147534720341554913770421505764452807809035248393621093031022880962384868779231452408416372711809530588900406884376678143149891429989362127854526014314043904849938801556336059513116731891132765777881364690708470368634111963230638865074808521256828422578525240308699370325569209396081858741418123048415320404920234989002732447593020323794790776444752398445514673044032109689852449619671434339648958931905523384981885274684492483631463425000642163062868685884827453318669926734730642735036364002856022218966350114291826343199741632533723687985534511112530552623910408263997093450814667252138110591304721005242818988626533169469331951675296209306752291590715999898461792880592620008486381388112809440564880210604886585519184670236542176178350518172132076461971556837616884285589097240713051877681976484099292998401923246466176383426970781145355172271502371584920351793681752239485781203419474810278994041277975605549369125252265753963659243315473069558127683575041708386884373202832949498590353218373799746645525684496868329428637240860820735530503179110181027376893333034254979866506700293734874848404736249225509252752369988785194662680407164816007840446385105548626538566047190725678665589092724500481084631644980700680767653233980290659903876215264648668608201526375731604411077694464416351102455901634900546868161939205863963394459812053041519234752524279848438652108763493533656230326638952328463211989435750965937212758740338942181523029019880332325195876676898498826420201696478471117515943973622455326876024449646075887690130148796387681526172143548860279799958338050702844957594966531506111719459115378741859950524657667335939187707815250025568467589940540039467075461897377570529806265883536056117101084341555181572432009418533450627069176380862870737823869586980576000574952119145174166472576508467180132650842342282810225219671136155818583388874155699212397969227198851473785252259790859337335492072757226462894709608811650336047020521948150802218078578257877371312399597873489896175356053976443406662268392781657943821399420018616851951608898322357602390948482987486350387382129239733163007424183018154882328988851207520318010179819267505651006822559535721935588322143433395680932039261653357060832148294575104880617338996800087702960391312905052392678540796414323839996727880949249976740084347888882701486754276371903468064334923327284940280968730187790016109947281816875929190315802640009826996796792239302268460606358008874949706089515431131414689931535887879534396664672296967214686186760587912155352923685310898610682123809989715223597580205699802796897621491078793589146130436327086402469848919550707229038026028564396341983950140714104271409752031733080567689406190027910169397445815390415012810492144257153344513923970774457155484356743096123820311100308468386181548862756933981860140472293503985740383812458860459642522552178621966502343458263112227114911594887252290798186528685461129505148809445306134717419528382761338024290472721538932399957334905618233807380826409398709125365584160310747030287230860786353811166528634358202363351490395163579766643232867690005469422460796739062216348243534097445250757651193764126784163211878579002327727276133861311036394075025980806104362503063004768353030877117941612149756649982738407128504951326941321925504891370330891078104820321355212882361341552889531864156642756192462548779096100674196670613058231588468615222934360528255602729057105999474675437354805437501832700766256947458689243340867321110169621581454439873880155053736828792379746493695022026478784090581534807213221062898783650925700926598645765640820645711057737631222187443640349776134214967241597592159866042633216580277850783240749054258767936103687611061192148551099863496722739232696549971817774067043376843463095992457253826590756852217267623570577360988558882072040693095440983638744921924996783900866332964829421839414731579042688842208537657554036944222708958890746905780383470351812966727134848282619726564031478803439079912959842143577925387106868527094500451085548244439046686078581478292887139641428299179722689164777226268250690713089164148402796406022744556361358434373945343144919160726173722073572455536703375135540596974313766165712219486529760987185908259488394473933983963845683769166350589259133681663906726263543140480105864627332575381065914066107150023732805390213522850519385326811467171274371735232813863574019871196309393588828853093044910771110310912758875523651982153240387301872101441701552699216328258891919108832544726833168778810971390642168049327270574475886948981712912328773500592299515293941884741915132708567848712219886280634876612090307202252025023468774079274823643199996198319917646476632396243135044305816728156054273451411488567093755509243406663140894296354857217861845250374113958691847281378204134269893308634313546531055613547539241811190154639258318743270788928066896578483475196454935162597812326889199137839596800318544532979918927868637821309490248336418567058453759611735807453076138229356568837707511806399476692773943697684690374640488142082874228671589316058425012263864070594522512927204858365296937645876706902542295905167813046727597604276558708690052766095363312301353777185403227078797709952561294219169139058755239309132357192195179558469157115614067088057541321721120496209853903361696657822129981328757349397998460688884010643520647581843712233639977455788281357014778631831505902682565130779411501232867544480958863552173091883915356523334844935039874169070942638773999927685262732087656711996014192162606949930541523141652196419210675987418175388500562134872521679340306237786180163572916693901441447789695336186143279687825380373825783540721751258724142333521233891775869047035627995464671243976809647341872394235887939639042453295531015914729713357607208280043265929991289960330281029380873067085196224381883371750970930464531132252653338837811765824965200027848937830426507101921425031829182856463411482225012701214749588631227768689071536886562033408551008677466881544308369901788055642605765769841494262950810143314292598576258778100576025447321719187396316868889897546441313391106944123469739328636729903801723242342788938679559860103659609060993449901038659704143789137291197760094829227700902981156732003487268239289759509893213193578421311686368912081623508965185816514120245469763606306915344907384121324521451106595729559332321593531872657277749370844510813604495267320508718167679838699971786579208068976722548399370247345429547611097998755187211469465297356005192955432603895265125110427092932817253662876572453538621573386657565686813397414100893323150081620826602264903679195051729379980980850134927866984664643693278514363474818149021868232398451584228796113568464439065564506639012736711997658407024532787744310716587875149254568547315150607501023637839588048316016957459770287273062667350278294187298571826933502574504419132913516463023633241477225845020773727267256721104443862847439269706125934102313992083304441814511242550058208010377638816955365355789092723350931527733050003651840288028047095120024154930237816792871464165525505056788519208714577845270090081364303747931087954570007122702245399915975223477457944854494344200146460326626507074970974891432953701549449118164185620406087323246714398499456171496812363255435360097153770543192529076909786969315832673056115079173059062230350257979218362439794031284345734338946288299257807645635306392411784524984546658121173473613495901720678755085051968575210355321033319589449944011186711113448853078288581109957743488171248789993107427608225227474511860322857617629603189891640732591821970821602806572408765142750643970154108839817842168681037281367843011879079445729881270105084984952725752743756187846989791531500886559999121165155992029974053987165481495089565964959541543970611190343820600996133510408987437441165958367464999750671472948314558855853276835742430382893867323067335274891777324582114226424322509140300291529231552068867278481170360183705856845351477920743658789351713049194016691960850692001216068051808272636669489137307708316962627164099385161901971306587053649414849322222440125487175126923460990371968072954456556401888368356366397016236046423323702275026868600181359576207194266828313665026931830182363854470521099888982873746954368715313545757077660742138806428211306419018328319582230770452007021271873787200645886456669934523069291868893450531036150000156311471712482389582819707363444086469195842814139083733096784796789569625839525667848099105379445440879472116534228084394300910988821278203373006635210664591564589923623921447067254614689926205758526492923022386489660397077604722925020396893109649660901627014169273013994843109691283696832108520741490905338609508359728840098602975340762616201468143902467234629763751666991626999403370684921964856454889416383269378944361003339776698972188046781868881552736784637535147622816670803391727804501795643331273752903406052256373209454450891409941918991527872246593251475806415844600646956640619173610759016451859786626937653105850452158223041194429526333122285622849841055465138096441908531661855519078357766753103754363025006749154977975406030248982584674944248023671346049776308140715920094397652112658635300258226930999835875556557368177692638240738865851173220411982103896547159260406683376531497871853985053453553406525082079326063046113882869973489070591504882794230945626707540742641759721545001016531480213587442699202165594093676433820425091952863749602465495511725617390469867171286560656074327558088046969285549314099545400974419744780243281896841140746510677528330829870833230783094835388255667090070614866488312518901794445637623290064648367009153507761516991810219104708079152477620531592703380952001592374569402942197312766029666363075527899855253103658634628666822127120321822594517067808271864353137738878889747111071104543829637732224073655534886029712406795030108853730407956549528998364100122515318269025895017292241108921425895669393012298134797257569282168664338974151216677469145405789110392113569031394813233743718748010662098509289031848651786769200631823886451716446374184197792351915952440373810050573002134906692974139720478429958981577749717200444308321309032718255572887776684659149389991153898896906998973770826420652976828139200056812029987062685687187990806848883897773255265514411830337214484725799537837936373421217219879209216518912235998585082398217518224466440296212473119400912885942877810209028668327976872294614189933746264380181224425585885070770197496506522958992384712630996742175018852529745902441101072468917126198213132872021430490066198587260069037362306313855453900979712989434010816897296201655960020958311743064202524832501122068817725102850749225480348081449633667728647064753264517001020706805960977392075818630935611147712231588932310404046051757032949753886633566185704051835414910941098523592330093936323708056016694722082096009265881168122685921921424678393276993079164153087871846241537573760979329204283686341950666243774606030395441594870783538487846004569839039472576792357416701246911564854986026263237619355540233319822233967842179075606487320143046952587460134528510796373970742224447154205088810005120831317759459179025393852948544262495193417181455955480055658229834098783910304472393139290225762674743509367265503056973010274038986046154535859719546901156660161873585631921851917119317432448523870264415775375283474057356451810375661184015968838097157878335878535447310477450982016714530852462916166780188621603593024335384216504401813895252638667600259220048376911546457193133533916210640283621863607285509492595366432053686468830748540939255761693961642240350746735952963876313022724939599192117376827662918490819770542272202780229172057853482052516440537041682324795184707751883504388528402910122635856157565694403727940755652088262884598230519305485737341258716557719329975927023552438936834053242880385317538541814526760977307021825745075445038179736226947783467394780670604892927308345569029424211454270882696997070112206122243678655602912980722609107030168973073339246515072803460366947507689699780918009314561211568454180699543460275819733154874222344206225173884505316794832427902382468290268748838165026661210855317803403480469208162721928873335390463138481925238211972039170400619039937116253698637629268275772716513630388086154289201570909457215249842286119979621719817159265592804152920159493411940468616135312709084665200861333589358003323456495016479718677709146690592179877037325273096428800258081410897716523526159888025802225672727732846627462175274290482343410916889092388852471691547223268051466618408028436623614108995687624231171374836064284698670606526062851163728938046376991823459341579924300733972866497366773883454093212215450947311674967576901782862252611209692174486930589247264248189907902579657749196109653210321257005026047160912428288239724627245204365870797862190845220363008986786564014415972689198585283409503472489441181489302577352368791221390124419105261680434837353067000276466645380529344436195730295269241637430103898717972247678926348038588648938587996357867328922498885447026898179739021617835845761321953138614681610196987500821961590575166850716298220534873265325947228972852773961964932912371836019280149438079266773625803158054258635276412041266726030612305878430502654463299412024528006361191235907546940520439020922937827276324925467497192873971986091152046189466171229374692950452498781173449152207515585691667952511233776389654756278980925300239260882491549717677948000761432814341577269268949536488244159013901176381532925260214990240630489959191952255321889582249323937650608937361961113902910484189537289689163700774215348460082799256079731191162778727966863886335787069891698736077042861206950094614671216295390247905347775888414150747020379801662674164488047392276097647208793307788980703621280692376670630587473437293451171445702115544393040856106678781001732073544258640757261298794528781956134013449846817736079374200844120147850046965281446254471602713569460569573099199792836316318709974051681625442947394612499432459317459349094871867511924821748669314428699492317610031977294734031913763190517221113441630325360426689870433930532106239629929140821125588072964626273690206806099352992288045262790781718551613170961613478464239007735737202665020602086059344177157104934775773821478654359000865959641720267129323302212252711224813440715413492915222651040038939473019890131514142314037297165564893288575690901860894726258847218838009613082038085564632576583090363787443870209982101100217852266369027429744740092708877879027224094353142085327186171771631518421021450814565635768099210875536852808919179791086972590906234099160434894763713534104891600223285639787261392502489052797687198222472591865564099052257098357165921128314000857466835652395332761239367997822322889376318847826011528041688868511971900961497492347721169650967292167862666034449896536008169335506932011510049020247930974558882043944311553389493097238020943607771462783891505554007349573161827629098203138249615405623251063180542062230482741678218250090241278715712318625707133376323581073938315314497320593656592299925476595983854065924774947043634799390953738902643937006656745562820520104646948854981435588149462519182952912963921011366689015817204322826946413722435033010428475127410036551118341014203558521781997684465652563451561917728307811464123193701892352880975808956642474113230651609079052773056933991274277811814256470987474411850529443566173700620839822450641453218571955791625752232094467338182251096765087262307082572631388945479069129900238814823916552880354330329062958423757224929893796164108504205734751329137055710107041543976773637544893081493237112954213323418724897200342386424147678814371680490351934923034562592756760572831026264277375823839827761541489892095998691268787501765935267691073983171306280135649650452981274936069289945416911698249066871868740631072571242620560216643989502896396710035686181887642071364299760389303637961616635904733745253000554987717669243114380810624774945743960520359965566055183929362127625792192015267813155877694845519923845829138584325140164658484024278292989938133539691306032610460920639471026132042715132027320838589540991223044975578257994259495573595705471543576274658905811427066037571750306871590276688946335714131975386066338378704642374145788437137224352485924897936034075958076805318298388827063673508172883539683217725072267727094520977341389751272417874056589330694041346344059981753176880492019671569994627971207696425404099771916670841209304713982828844815338754576135972506577162930712239149222164854938790266948459125884924813050813305609679979598991814343245424428995432670695690256268849691676561925722659213625770813804826396274118592187640383254582865658057403464761404819993797226840966487671666124906206818646811460288267158218607316806196240279961043614548073195704577087410127505366776714109456339362169629334606195161111960435168351027360106700299134784618701715241682329345985290525965664712830584373886121551071552643073370069256304129134991622664217778471692948316779633271921633360729896963426446639734435286354527058511517821913170367971217725991593702193567322441540653764245010932090465748195731388842667586380653474508292987983655332250528670157563657026324526849083830859536190012361788278872532826697284666912177555389954720586200005388534705843831342415020568580300373927186068272066611023706510996602271831753877083761084078528704933331681051075061871845607785922999318009459096969019073834245441872723801496581218285440279202565336914694904453889148101512710205130581863508592024299331911048528410805219660405951084385448427710490270249659198285743870918230366963368004175618222781368388660718132190571022517315915258200676249128201803838182463160297489869672839130700364432622958048879578412239965201455639962044545307635121486833035464545975014257451667808586239284527554320091295378071295843331627778418326807375030214597437559845762177705685646946389775530373038451294765454571962333443760951296604589685486169889262416052926229383611283971693206002753425163356421748573827025534849581572636804863743072762469406582785661889606013738906932985450114702999858676418944150475235059604755227091303280374089004143326500356516717395925295656327228977946504661801081421137574056344052802312540080649834025875030243665833306544517783446379985949980969742527353394583589667464245486941934961394990090729157873407366330926080122563274573603925143784958996455815159853487769768385877569447999524140873257468790604889630923390284872551333916821432282464287699300753152154579261024622490363287095301667008580338169750805949481952769425271244642445955792073769569441351153361038165951982486228787904424191560115987350699690603766190045133591209869646249863893404664005860937617607333953611023083272553521355664941771700909775408842928148700965128547914839732180932450426742165106712030700809131379280029145530498995730726512817901160684630796436037888693551174628393561068601480327939392232821999796411488219014404647103026113103392329040571592344573770088347269565913407764387173943267734271556888174257831851946603262499286869135988982651150986776200872009534991483749229857234574935332549784842237543897650268498803278265513123550199987451550821600240551740660523438226496172899285465831887318173752133218886102722922630816828329145685404516031385074249824274473203979634814129428931775739366813945579436922138382619616400536003990332496181200102028054990887142380902992987817614945914820530877210970967702167262375444184556591325680103223412011700582517250158458671061197534492259382395600584690268279543189912092331852325927006700330598576365842710983098759329158220151259049663820414557777056560805997110315079312917319815663342585789465682551366761609460229192692059578185819015827762846605000335071549412516255318012332793413060868174433168146573919311425078282814798067246909937049478283720027047459315530441660869539046934211693444979515651419041021915397973708596180903325427422839030085222290166301897738359087016596487769125224926481009768085766151627809294574479797360797948880694108218514915456221049644698541138698042094080272137660574018176693396762851974585155430568955485429649571923203458327453676100971511269068939734472209320987718946267074821307954609883366685383436624364722048987684029225472563385231293264556340086164422584049675409875217226504409653793319923580001494496786117614293695464772533030387978070614863474348336298680806618458976649460560566042298379719421243399395274156391192550080357440024559626196953235042101149611275935833012663502516332771156468677209263831057756097701200595764023461220472176685487305377717240438480606049019241283668882864230914147073380224723502656994469387880837933204279750370176128241209046793469132787630257789103795161788520709240143134229001267167230293349029523678687122885887809442359550470938403648766351650790316572380529205579671242936641274637674307112056741430154050842396189254060982505898764141773649328492096063618441941565215666371198654855526666390761283761160359945411929663725626020947402577170623141284545914524336589919677683775553874778633343832200628960845575955015250024798936822960932806567475506655214052340296256092234606845999412954571766326862990207934058469935374156591033585750912826863629806202146828814485074357219554250514164048024507132888162364312593828959924716508844557821840933516018604774844662752446818455072978158117145858406244887268142006476816580489467548051229438078225141284058155764748504449026520476499705918747834500773560221492070672867977722659709524495232686669665076079795437957046149442102828746937306975587709391378129958238924462434081668140348108186209629423127544608135029942365264564757254153596194069866788782614046286640880530703134577420480646074408929673735079056042814577164853215258938881079739232908145135974947613602928558023217985886017781156941670984114543152153461481967493852907222132444730531218728128654575580327063793614200509059242001820812733087499108739914753060470284910353329992116222468131871260058809420148102853922401477973747843223947348961113750292374979431029838514809125360929980679534205339532152209561717311896184031269507000374886796091710710770257067532280171739055926276986974799389590039184885749571781832289651007207496662827366183827935794845483645186126050895189696234446355731194652286202726563349743775221300020562578944638932430922438563122502294442225371140971749471033921222263460008655209013943284693945144594230458648585642891276531460245623952252803750172151479242313570390508220157599880561202430355624418156045088186119094213157524769440649280549543408723993192139382540158762238000828288985240008526639727061468708405028623772749211671599755912257958479460322958216597683423516225985074005630890548856135005227133524276262932111583144687719047559554111450974765718174597404490932056271202498103783202258131786801872255021023182816235780933564147927985019332907201148630342132660575741380090712665817620652095164646084140938780312936364927179468094077849665798385489391690019509222726986681596999516454866573322446731341228314886281133761442782594168124624873309079029388717841432866053598832739554626113883279248600147937968177109493474016841068023709472092963999039367810893056984788685049785408895469625764906058772232778087350268147454779913863869696037556364570730662139589891540293360225821974779525436282230665199928698962800273042577900497151793318368145480754859898821586965713474326385414845607698123349804183433435788063406757780527194476252226830968369322823197232397151808247445454567067159584902493406624136327902946628374210043298013674313579507196608498768810116655651634953514011361547173145312491316810060607551159266974838744850081753017271770079988086931584091334474280968205431962965295303161448957916744454215535914777179070654309792419036263856005780906224683081258913441886966228815186557139007248868771232219119947263077558994127650793039386808639073301227469394151061736140097065934161497257830372903752550988893907245859353348417633598239881134520964940622616209436771668531100847310150817723542958034689858733905863248522054626416961232393031310199218846502001204092450679510912089818272232070783723454165482192196017628386027832126664547233169428643526935575853761676459973835019406404827471256257431711165763719243643401801922893389534796770838504024763665110302533361401634197108238699995823447626543448942505988908246813919509900416365410865314837821097383732945410410317077728265888837177501875796573445787577416168340978458874364684949088582234866936218236923226681829904359055170147060939004275344158177588249247024091533430906418131413404407667802120139360105010938909887143410659649419099058531185497986776790590112295289131348159830666296633279038560615255462169720273528504162405495244468419261721731634369196471646430717941260090668230703503028160083987262283329957661081503732633844728379494857982392985192660145749699761216948835381216470420766336121863944008694214366940342983279405821784954409154388671458195198478445362841055916535183269439872078798384261958263335443366951531123406527005385546827239278977476992143376849756045252226228159670527234954425464612729945233445700011395840942965691124213086881933623052234124375379458126878787143493247101810877932889229550747322421188863051350806441479500583639372071396736968847816594414633952787963189436774786396913543861261058752560953840346797598421542760461013594216729474471433375248025558238148316634340978019464809456903139128297558928223003265172503991879878419331421336101195663686166298843688129390969533572634012102172033724197563742553414551047631345994861374628522691967846790179028423016401567979187257474851465220815877495813124401454147979661826668495872014729972871093235764174079826371305055615928820017767479052650974348932593353107673777424252249605104180319529077921675989419270734857052099621846979024102757248303914473527556574887511000187749498073098360934870907459261704315756969736160453887360066882907739699762440149198928710323970038424806038405625274373486611403332345100430868900451074855147750210175354484372511729844989094046409768716812815536072984183543271113289577745256240825675120606176107049835605845456612797350578754454864444035047512954622463722612199262309964018149126420508333471869609435012585646752369249820485406295702733754260728338632148994248854867687337611323536220154316686468272081722447699952770634725174679287536419226579002764285430156048913753843698335900744134279079125338380398521311749739227708768517499059525981986801896850849420962385772598415242271210277585271016091495271558849650922321315387808053419896910608874241981115046248508469521759306420045381946540562802265543322530416901177008515025142471390516667473641342337370765315872027645489597229135691537947629679564549788364510640364562509960104684381845681057596480117137283567002154277469193995224627294673153026185582235495200459191635122149038080574880921883013252593304273336968225661914572008290145601080843541900302653602346685371071111934555753263316638095334844263832711691619305742388572498022730041135912177675848863074724463345190587700542824072973343401799199504924463337111472702173773817415164182830606468306508343050241875487075833162558217995871397535550673038838839787592457239336561973106528918144780300751750038489525333172065425761143091633036703346553160166331542591865114850787835880330228168834254798725286244879067031875240214822747127130282956004553401125984572429520640409877747716274911983056811268573177325467419059045619427381835898382146889251890127010455323269211446386006704805052611847559633415370347391008024061705117690403803018611985795585689930566602406229348409271878997288377447915254698827466783538484440288872371077456296539416322574450368103406699732813557014912507471359778232120542029901486101625732677206943838839861242693797666111556574736478079047760156075900403763245020419755406839466657189922985465665285912697415742094477224173849072770420696526156876809628002245068414077637275269519645867975192440788759148674242757730816843289950937449038078323740074362278583417179674861936094130307835841263620217123428222833122602189061528173467193387500722629283739597479501609957101489906176685989299523519521190369486724836071351544561377929180912310501844760817667663435220735232266424575985958851773692648854899281014316304287736328220414801883191393213532987483381152354710225312678046538626219027574185792526026986698639848261640276957946262530072139433329936323545530292626142119276724006604071714680209460027974060725017076137751104503370396797981917951780416932542392662522232744569918296129485137071087569719145410524651156742178194617349676533961859712124427145213453748058347812312754307646932119301543793348482960083452216500811134328147162660860053068782237619829288303788461081815412100129428512083606427590146466184571278635267620978241201767087793192617849442022897829895464048888246872377567146112840102128949286230240702439790549600333769666144286382141571028445869725833920637987800142208652160640378890688913902317633209067597064099327386608268592540806183827953292100093837792935913556388799039279398464450701164142259497996357284665644210026511623474730614186561638718544634101047026066705533600822626624163665813250539334580688004932475100467217330116231878433797530216933349963621516421450817370711343207399678938711892824451397573530333426353137324589121686695828087439557652735810978774971489509985381415966675227044832041721603065279770607258330613912468462182637247000948736809051724633658211980334227955342781536933187400143169732776239218536878610775507967373702453259800934300720085093649323685031433610644626022079445183789117071190101490052198633357760354139478950633956758678565905054621202393784051451752033148681021296644727830222516185759648009267287032014978139778477257957398122905402232167493510700163979354219011668140113420626388342939623362991611104205105138428847133582026236976987907375978174920242625572120266689054684896246130628423207135618330297058547910262160281876498263960131338073778838602918382036350283318147528075771245294676019832028620285013834556300395816635828683260994852358307590677400531704910545558590956139305583085808916028400057108455228010908520381654141075035538854641563594382730147777230410310823607225283239792066934294557382895418143761570867123033658748920384425185832004462857265093950467779356563658303582235580773699455799041642912578275482278858881020608790797988976026192168489224535612808736400160100955865343939762055432444482717138909380828695305518988713302048143135713142674333376665583779319611542145724782505593746113289289394007389095901708062327639335475384959028354549791921877577637843149225324565835546182435583843158991548495670033694980527605197000833087146461544826204282086666067837343290610012701278811500530697185402690610978897031131909865358373331527246270373838235348092309750865172004912153099621591874026473996154314891807373526200754629226084588235852089657035071247619342143480966008141275703262112421667535844661603903220247895006329292418763568380315599338873409777754712328475996630486908319611728131221376278007837305239449621221640966481266794190625493218767790980352735126677223944968865931964058668112482621579546341849813112898677514415765306821664880997020256333190674985156352039112200096456257554012405421457669082069001904496974081529384662528112064692650017848800621468422233072326139117875720292708492724919136295225494491659760697129234526722702161169708591562512202775076343547062576149127698897077983277685144535136410319434602712759723008165702393114259671762598726638398056578905525829440265038096168572365398854144231664280089704995518558381203320172022378594364456897441376981082361882439646518436459961819173950095805927253431750692023151613701437074261641931786141620306496463779774749666173911744288521635575722102995938414910143156192420942409099971908725850656251698971310184536562835794324932991529725657094596002745973020309187127625940838010074113074275475529709687467747184043029452912766570718681707778577377546760944098593973802769082414962457084964187546776148327080808721363219909006562409373892063792359977965558487620254472531490270118477894051051300211717881781300981803018563125005709870448348667963483274615737785893366502564078276444425752485537493832671220718636668227879737688539744019977512516673958769703254809025014342420867219422045326676688354247656710353508828891908852766430875736784465255426927941260820221189802144775288023653633302047115463405778490817305368414817354606359819415585894886369576643619033950867479375915647567317926216296001819107429120885477869768464347053008351933037846547724701834342568196341341425256780967807136752164476283906132611443077808901244390142891669654674366365203591700543418536494122377262083270958533904629498792338725812763035543413112460390777108491221341790219384851635387523430371848281008177648545168140390520072597266641132407677105567399934901347415433014703698047382304020023788302769317481530106123956108885570915806478736814120808329479603944112911879099446630809921885158010919679378193129284273844828275994436016130499601288423282177035650790288036169285013865060443303245555867180877795877432388024637238621259373341558130116442279147974575216315409560954205506687646832207071107804004021161126066193498141777587354028985171558846849916401287661484969820898045676003938001454591026568194878894659704955688057870056672195222361876130780451226184050488618739643733848644423465434874652285568711592670877302268202773129563911592592083498582638746357703924002614857676107835790396709070432145055977840299373943946363408838978252828419751897163205826189160679391968313989038458518818244431697181708953972350359149209248136325608267709707968278881421970286873205292886104265363080860510709058911617243924344757182612434854037149765174488503196543068562912060574117345988258136589672945461908518138957515079093603604826725231452440913838973513311885441025044962634592168625852112271166071227283590344755609509968578018791172845527811693621393679401495193295237146242174775275756749033630040067539298469565432523023590329718928148348013926027042889505268639610751249401329758171924814654223144912120426926197535481782944976335924167058664151255029823918414079539340672071511940619114076750286017070108489281201062206172429995605710439333483025277579497067333316872885605707064355810310925437002193338008539508456169042587496602444705160518600123600650535664106503924336279165447740778622699722319212062478042878553973050368008873590872596817191156121845687528038434587560672341883795169482573025253519784008115925968925572331205146599029428238022257373097157792623607968630842886436166240160422179223111435659429236982975807164657767834101687728209374728160400731511107316973645710055027295124856785177572997495504513923131663393168859729625985159225499373331023092668806692972060008184115878650988417235820828480365072803144968724709304696502787694662180540948616025455162183330509531103435279486367292807129961864870616464082945109590256586562488798282328214949050199803645168104404126842734752578321629617889678493931388096554769917666663198356900235898017663200889503298329662066014540336837237133509095805368212299852151502226352213721328946758539637923298944892923258945956991907784287650652066812065528049511515660692007180369643627210480058565950493833583903867380477278433573969602241544090700527936549979526565308413912188920397487909589786399929031561966209241857837368375520481466094913280975979443768469488539034660969962610865580578917844784680572175052338008410355065159241676403678336003893371104802678453855729169523333211970370128991238512178997864358595224539865101378508324804315755592970318035219107289399664336706760749745189197371747060782028306609035345711211427756124549378051668497987159662665970282473288186730668006177708796796101393135266639614825251798247223075826374667510999570152469297273645733206720065256627499051614968011017037444218333283355490879207234950994098763107700227917565046490558560465493927669155898915730307545345684735273797969922552306011624856147179498808015505823457869622280909988396194748319209925133744815795448238228627519915570601186512638673229533809759984352463582876254158337728298236987439527991159828834567433786001634919567405202327631377982411646601272099258203249354098108080199163903401227669817396035139512048632702735474604281777034733359591826899531666652166735614682761785358675874929410956862153166747499904204089786400249023858499451202859351070536174334688462612356132905719028719244053048998941614579200602076605117622543528815856308992274828585363468798383014316775402837588878778302070034027867520353085034183963489491656271760501591170401030850668844525175194098217168814035131024631938277035998884472836665379524819176418252134600667518311881351680373882077946670891988790049999860382184129978130317306476086425137382985369743693272246420995592642787361352858042517722346399882738273340433229358332867031993310347506214627553816140495335375125807469868913535828134074747355495950182786001583987749727422575012895160398779298363720857162165514155992466350328239720497531358650066345390373333623456320998004282790264708685279100498791988211287531887770874062523005592580276505000205791631457184485454123938055665367481241294260373035602374864669172152290631357361137924755718041978641420506627700710726258370336117565730558254264743764280234646229198049705325510387375764495627732530016097093037522594152242603717030046415683334666692782410663583692939427259979508784361093684859565470057384777361863621518322280382263025037817609078054133487052699752972100416403970201293542804476092439142130426649455907939000358220384439840741954571114033383699222911028062867629013264307350816973536179759927411954067001306796239346131245124139447646974601910308388833149029396610287736013287079925092993764618359624261444154520414887708976715740395416171424159989450719081274744576717570318025438019859724130837371002012747065306614425983026951196456740274360389789349936727611675754287805821467772398648755190849254089215303285019776846468412042650915698483252647210355959627167335695060241434003103852480669911318965489780116660959684624309697637135696173040558957342716415980011712410035531566169235880188320029466215913693301698271751123149986552117924630877651212329138799751635153814643120282680100016023934891209024031199416283865652751600164213287573244879163615240520019407329746042448562916070292736934462688643967808898175099773855868754883427367072353464333785322372063047879472608586389337375577578426849079311027187881265676899909480538026990825285042820246265136399081223121720445191365046835064219144958443533300667068832760936867048641726220820438365068396408700443585395920164090742417105309146288915148248579788001443699001717664891111945624715382646388540977141406764334620505374879102060655942556056169140701661349031690582261268195920972247788511711715192840992494188543379737171647363507209057237801672523887250956696447321603832930418726193294819800800245575298482989066486421026984874880491165820420845343723850547028656481111020041417416397017013279488218394962309364548194501267077906768581362539099601800687058596740977959702124823112662741091061707551034778507847808902949027244365342952256050299669427044844760257281582339325491349582861741583638601529206536135920155618502012535251239552050850137872660386564941589791466153729252542497015986404427043714601351807235796996222908251788524289695658140148101725550048494634022466721794064262778294547577622484225898310961236280658205400888387945824015729023691304527998887070126509728095696178516453695571222140237962644169122860812610308063708614975849868786542449190588707759695890935909588879079279354723175478210637630707324769829036607350157529921306892463971588098592281384009534913903950956966316775105583424423464985871194423868630703989189996382627819773133274970439664639560628220905977944544230512060253688571392381747758608049337615904439803533735034207705894727747725629310067029972579525434406529245583000062272573376075721762550028421922187340432403006398044850962534447943388743653999390379308391221671505383959789106824366351907686253611519964614848569819085920096710149332424398308030603621444968147928768863300434127086794296478038918174022682049671105050374965217626341696926617093027764310483511106369731804659418721232623378007111142317425262821413680516290877553597040448555981578720027681451647670057580749984746495418163627562414782539061909218236118109712771414519471555634037699823246482162158275529981733500587270179334056987567626251323908176501602259564514497464345689390462422720523076403258391597970456033576367322922086022447852917108513105741725679754290446304364196094628186236348232600072813106374681967033051272086155415882158705683422573236776812160406362511231591788678149861254720111689569978287656842084521658460835881456917301157776830016924109245566337434690490337689554318217295202036445150025363479273526283801309841854205753180780716368644716779183675183013530750685118570915175325047971452012325425604775945922147184296861039869040900567691351210326389281617026012455253422915935095132033771651409009047352219261704768681820451009730355421074668834310810661799729052675765429843298338038578679491182602375190362398472633951428322653645393501340136438230321752712407849615927397558927521341670913410168146595544646024681273727785111343179413935974400252766786919279395434180736503400342852183693942384460322716175250039739842932096385530513449849617374077695514391206620239550323585034508448247538918374789485470297602420550488779635922190366013032432942052419094960873718145355763467104957289056059512333371370437528659457617730862232092243461632712322992061728898152455672798331355824279654518883426047607227569252439573026479250642963840232116006015909239281528009922479662844971513596502890617538210202952447987138188327772171912744851748630623346363965074409687846788197501186536232213207701994276133031090837833581287962033104060684529868975355229923813889553410095174148996032473465403315037372771869713101197434334977650954220245304543965688294146704148665038798041992656898245955825475169681270763377063562155139927362705543299263482506999667727884576723453354458207723204215146943143898996219641355628603922779050827241204694986943694136041838909505514396922493304159978108519432165096523168460382616277131851512290904663225551403049735941133633816354728901550372034228798660310046053121076194834616152950587423646222808829979815492459018751326410843693864049924700935713149906851353649581656103814097352347528813116224393961406598831740552621106376830595769076594857514719640882314494109156554497887691852688892884246360858362568655377536023706929863161543342593748925000394536958034958407837212133775123965665194167197499997128716266458170020750604955471072822593684049920585279781253164735872946043363789436361663674103531131569076514412157425463004485881378628060913638424790575682996199059562032304153059903906077502021185242340999348675587089008885305434308860044811257599897373944563183811414814875578885549746810900362937458321917746330560438796148029593587363191812091040050123461854639044305919476367456732312108406730436342319889869667842854356011043114624621731243366491387999617601532265190423769539933017567812145287946694001639416750639267928394223500469676079006789505444545187291192278677825368042186069755771108455691635013805872531530125302220500603301897362019816056084882232764310858074667545646184516698570104568177452122237773186454762002393857750019347967217638060896622879107322965396343867904278574224801572353167229271846226592693837409898195897155218794991116744261038924968561879124008201728514330671783179949010213624678276913140469821631526103009884602312984125349577870674234843572307453859605091785222260312545030925045119608449155399076013972103794319352959244568255963859156159091229830555485490209490816308993789660914866229738314097301751836622062984484121147151353527205131246175071982582289980975382394850375268665832070769047577559684593821428205019092225698495600186583274896549094561644472808993108579292294469877563650096652306783672779207698249635948175332108539725426767170923575607889479824933502295317533012093155032473576285626157224835409847955376616677139164189775938897627701842193070930535807090629071618829377393487280076753590302389122361202568163672352238738944089308292276206241521238068103422676918979249283413534134640146848401287720026187811115806779589348872350435049524405945419734511441075610554155554173356905266489142350325195790535643847091822601749687896658406689259132801784669461443452622107965514439372209871244431260681077699577439809598938062283058808628775092907552293861516230542130393101573641316316475179551865824754899025696176158314063878117262940691738068584132428875597462980984849373729143690351291117294085089411489657134637661046904463762196719367526834060930677618204365568497295834438602858116564473937297941768244952013541445388720124973693370527338049316776055521306256631870261757427658263486622896621482734017713929383902701393514189131535301443422661976993109758132101498627822869931169931431171963522694193623055391186708256889600212998278168703026152732740937359682490106233129554742911017479363612729885019758150404546075103991578000998975024164392268876226781975007001399818813891635966225626332594843084302985664344553788810034657407513825474969883245158938341629363893639854952724182887740963234060020667785128320755002425756618912368768270376099394679257367780706389944512489448253794977865383036772458301530787414284065898535986305058786895546955415637533240873760008022818345742894440196546135177130607214295680488296061726747868483977433631488909556209349233185404841161294426242899398977268254713165636889415403091051984885462965530189267831902983154832716089163322111502251772259315013671935681511321864306939824651345045562351378900514540068971024592184835105267658069477263757681178301720930999626522286044085178097566925689361782144991767290615669419265344596381488291317652741799375889854309286799740583042518239214891347245468408977086833497791110164399973420613322961786009294746850256608542055805413037557517224705203178900473351931989659335353324999878916141538549667587628991025319373924561840680191094864240982231485742245470308571695547563639375876756226599507915046196981077555998643310759645475255660947347243759118508883890182893920555805968771477143917348995545664576894289360449820712095697798553500515818602322291687499719207737207397288036935653110818470447038572470947620913028259057267053607576768319670576700669470532783307493169948617642836994209372644874455126368273271075208846635082504361782931740598389636140199273262869072879510235280707877329606854643347483246536819789637537915308884727756375011008697598000913261624196829862566683031600976027527756858457129805248522640165610783588826878810006469807767040351672426883952102485610410979560664985433620879155285215155683214146189530035385509844869455592665280624996207654614396017122374415074113314817438308147726135207499079720105863253137569477123882787459084367057065966186589503220912900408926945185354724036102402565281812643829050822300822916946193095507176559350513866378917237454672648837767901272604992920398163972286423090045776844918805324706952998628343024694129554860461494268214730578147918739886092158233633587992002023814595636077745820884504798764035960748746619785336802024505450123889111297329248664817242453905325988026407625484931703965568484031313517285674380752688319424986526590015028199588957610931057415701572443524079612196551008616523033403187915616803204617517736976502215639798427409874079647063332080670376344713610601232680712416198912966872212305218731486716087188515535112060551886702691154941789776110761456106699234077927538296199472179034861424331503457251046772154648425480899439075978114691540290804019941201702589475013604857094229297198047314450480301240249705489549667266940946241204369412046365931493113355420408273062468600149296763568982564712537983868429503110162224036590767520141140591709398361275242160598080664061365736694207162442807948066452491366717532734557111129477251585363121608800112066603713937529783717338627364084839256975167448346177188446489695760513031902004114704668508862127289410992375265756607135902520869664867185826242135933027462682658783746221995882792308060130314958786765678933263928286268850282838332973857312345456151465202877397945556756369740623773795371085851206879631858535530609391768401391906988955778051190807079129406174217640124104920776606866473342263184714612635494617786741418958222209687976796131135327242947642102231079889403799547608780069199077103308503527319802592933351919015013688570334760992313827457935987333197569292455873163948758879230710847842189630054156549785247273433195791498951081353055189096364371668900276802128957024909918615604077951074608107656398365343134843033984370226178821932507964429115222580782465417006685572039291354764771418035216134057538784109594145014194669080326316634681428021573969847408897942733493629775728476799088816705053986877086549563501551969228843248948473275311480654265535913855749449938896493578552911123037997605100385150048477090595434942962704656597974574269999213776831858630456434399624424660115303406991200592988070493468781112702319114788700789716013676567499948583520041265332756097616137928497437538537891168045428355023999722525468064934977934981186214211210600413410993856702757438739858324990336597630994128116150034154815250901014989775685948764153188463225618063525119341802913768460216443079592794659726048311167600072891794562185463588422214011464332939108467425684779687231187212861482209934629376620675134107771820706698688275287729673656972985175346124433841534126277565042377658833338015772567012149006266164818312653357920077132721106015098676524689873531893804301140514368814839556521342402369013401821673567980628408709499130285272395517019530140898701422062033184580754451636401439398835126861716095395291812686587242806521020010268440019700836824888216598871964414766053478821815813792368686491243267276525784357410239672602583560047039923265401400527372082497486498654214875955158617144841224858561990617074989078452501570402732389628888391231494250626857031920296710146957248060876963653533280974761439012364021339150023911463956223455871552122734238197571317778209540961504126743112058254580237635172486530887939775066477081382448490304112042066718883616257615558386599043482258974793248625249510106851459158024901550347435627788492141707887793376696605248503376082540423075134007888463686263999774155275655666671003861773315760554736462372756371849301744112831691509014866847032294524957576543998355328619020474268991243219734888705981424986056328377780540740350372531729673268523125180058533702794213528193253899341162942616912731621297163946481125390892814309144775052358463609331283057849754869476120667011429290851539524402587564077451640579242085689182870360253597545643785872297004071673437097325180414155553179848856838733031465282035755785181721694641857604489364823657304882681177163314607785053971159097313677904070541058524666459802116413696582576675952140367186998668724689538310846478451595853021704827797036675412451520066600110192113715402965625918271204906990014817979020868490026054899110005668223884662675675003898688822017431657064690681132620010636395710834782461954328014624697691388504786521178447269870602985467865337835306293193300923904858091317389665453007337826040979569562076102409512523487732227823086955972745868328602187429813554647357998889272414232016812486135339728541222588459574431363698538240426202206890627608438694503649317566058215157281621558374750222645180258971689330835208889465446930130647442802486669892026322794411693965003433347656721534625058544180165803698229756292396865716466648672137629231061243885999060039550031056345651502030433342925590741878879729179387168123305189966392983615745297175295917567098374205803883668996714218268801560123287550297514275304303877820833338315489108377265919084145894953834877918544563856925985293314981412530595449167579466379886266241898682141310194360854833800814170169386405252288818225280268723524077924784987331855279326568167566917503940982897540831021316367409238640726927533526593407939126538865305370095927683127271309623113775128555181522943765013049819725054585497699493057935327964591417076336062162124014942554349789842211266019693795427607075335931736818346169775502648864263435503151732914568093437925377847926078502084810308880884963337322207299208819499441115332593311013336135916863031106327643420652237058066718254843718060611323618918713799196174052969950233721806164120950537719723552563933562852455608194843314181302643011255233584011841853523146070144832762713353022038735690616535311409189959006359093994556571003526353217605106624096862035763174294837979628647993901686901188824514764836229675904211700057381192491576467940171924739961193879745588418880048614241814508025431803169770553452028175357130106239476993095861470739676777338320316085534937379309430783885593938827059380920785721492475959101672315241341888506782059949200091012971550015774341840248729693110654266078808782601029702097544641606045142933793830622527691125869017940048336675570226346097243124730018645513571001311640614657174580104526891681230505718950227759273114815496828996955227204649641008768116721290709815172012861960766854989731238320389196488790479708283833912078925137656677423420404572002086999109568608090334369291852792796733992752041573810440872574904553627452211457473211691598479241933064227732990767511760479060203397883730238999904818979511047254325468518214002710700709742600850220622772381219610635855945083503141427788903639134323858330359893399130802647853415182077036426478755061307975560624711057016933323006866277196360997165881066205772183522182626262009764975412895907473343788324426485044945577505765378204158196321758666029400752249126768896373213848251576863566026090380332163443950950587651715221578533869534447615049380068064459871338303758713285123719569697435862020445045742054338220184022440162274405596608246932528842045545056255571079892970659010617605337448654733053095177902076502090937363466184482583334034905876015659229460260490252917883948858715742659565278765907100790717843094643426808313737093654080029651770669180781934449755069512264822058543863372395504131906822146762863359639347929531902129938784604087385926203808148975649043667473287810250187321923315369310027519742087658155405729714684673957189132344385600143950684356630774300023746765109416111577241281167895779342680998014460462965095456238687613769179464079200092104255123920156761473099529625774544395654001693254827458790086033888029579080606206545418953607437012445281631963859736579347355241834362740491613020731048276395475611973709085132486113781905231514795754717801270289585835120719012780966628956705936437444450998876046955067942263122742443391108498664428088380498036004491938953310913687759590917876233185753954851628897186806494002156406152356149949959393865002199397311925147821158577093499404732573702034476038597831391758263315962802677910971190658891251870028839885800601447252814621830095244853221834087108316946841004347842163412311099105582826139721993341016634336839587041812929308827582151328877200617016258740047036051999176088761760395658003675193779560558493463444185167245360861102433530568663567537302690248883378948437992548928708311725919958114083357906693770820859668783631254926807199254829559785443257623206544491947512127409787282885427392407282270689113458168074282912989901564214446087722444810512020989380657982946591194262580182696903230022946436307773382987876515359534246882699960351601171763233673473575097738296870643844047877885922495982495607174312440758975067556955514938994381218211835511354916591410486147100627796456344204198634455333419382021902305183321373899554652464623970175681656560588550177929061999410491518141788132642716097388822350014404881925167227281054281948605459002053262575729797646821440206884907571653510983795948875118191462098349778712205766234080280001163977125674830471143682725619582568803057451714287693125604106031992295250904628427418457558897294439487342054275393271936163958079411104431104818120066387519223950319735501187091789935950417754073861354487466349154933230494116144109159524227787572752303290633403713251725557468197769673477518543273368699044808055286985692821073169000201210797332182312592794887317354951380836285546930480670861518699279187374158304713447337548216371411009328900263492542042994498031261255341534926392731836459700460310687451894451547880544540003511396847963133686067656500830587994098470332510441954777500817638733859035307597465101255625426660375393419368067704465235678808860360014078067980905332839910524890553925315626279099528914028100015703885338630180140085276500467897215974090431793526702930622119178691069850355693789107047309392578050725125722000067376075764024788445760103995542998495987151385650804494837355038151258510816784006962875431262508829539739482442103740839235134387424163680234246750412560770257242527283920730210529058363288911206370473978293616756577904094844422533545010582891301339054697312078976694212317953715069680810585568835109560407009485691377643739895703457915887905328969358678960196350944673963502948955198900032813752247614536150753806247808396046686964884987074681618733292860441752026477985048855135960453384629319015962918654457146004151546110588625245216555513419061074535792931588021074040621923461749756220771427758003888144148645110696479218453031433873724697165853709255417466951674773019230573076861226575971241182214272111971457935114208385799321746150552574801131369051224060978710647328181359982653756298675541558133804464711359543633152533035169811082172562979531113788301724502823248455645259562556272716451105654473924229515516724228277226687581356241848140683971413738629642034373668326456332853579907345874306807506999917308092910854127827241148605784945612011637270661935093557870454965351678214308631464903134487158386192264493875667279031353188786659202374146315660752555107922856484509105931475494848276070742109555667542656768022447483857029553668929087053557087892363498083907818821277532264687513471759767300738607415073108590942390668527784179674545161213590031655855395743546713618681282473004986794297305339936783662603634883763622830326827052728080432910338097462737552369267360429146251552300370271740927046492209758613635516054943422773834932262885863000104931237133510012919381187157300295979681870526630085246089268451128267327915298216152178206645280645826562818832441606621196301170804748776934748356846470269961950921013940886924649377602714565723746827356127398877263890689619865577007044759348102761583910142686987077918770510112926294893710513288141255378461041062481028008993943736845790596414074548599081271288696928872079375291908281578335882405176824335689403068896342579985913817016379428244458045284522212075362852831513581837871852257299312919126717842050823056628425591668376538489348331535612129209864199598100672871570319357862843955019983827973037418822080189272527769449537985493330793955157147946889423207809877849879806615103139360551882373188482180169581027277283130547007498540683600709760438031635977434219680689036112172961578329604950215133103013232380715218408985032300032878449237887800049892392554889664530304221543925687482748515975690270409840775697686590748544463928244273436728858682699570703964845281045659534904134299033646299834237048437060058726129850528455283440095291282827994167687865117685519047196369786364520135261865215810324473834347643734336263811668620898417604817263133134699821577272451794867112233518460613378481830087358291023517413931779120785474745392824636445571520506173298852304783909610885570134297714357736861808175153484982228789754474206993856857825310774561366436904949566117669922668162996461109274012415994271813746900802603130394473330979019241976805221498983586271180620111160497139290490631149418609786546764289831100357440646340981681344291936078939076247838185722554829958501658248416385255204905368850439275527765698329559781309305981083986673852394788544799337816594028906625531579154995994068474884019548030222870229514182686747048620894111719803925356365769640565155570316561580074840072392701955468779195951600163255486946241365156975518906218612037763011145494916337242405888053274746277979670639593067341363718858425146617318771665591954456122792253974348467232959038569044912122264470523725426248449009663347619075149800128767028235273130439991040721578354077585370961610016384549937166406627522300093706639773077307466830076258188064608410248176518860438828811699410678703781016939915061768284060892948045954801967472817971795036601056741687190591434947372708878472862952883557638541068515292931250516368648295330208067033002481841025801294425289356101883045446024255587731446298649364915881125401310476187412134252109642773506691636276220264729035256262956219420721257382213179592424569608579617772212980018364314886114556760790679500158095554100578114176666736930126842314311888179556923224593618966948626425813483146925775523143055295777744608913287386271629665478839139275470604894561169003295105483759536157903424413515408334982004198243637305228988078300581013750068182460825164196833370046156643831808624123699679412905279595365129644615660254412895905647355954546579066348322173981813795448198877550772538564079753165835505550603513791562152641479078705373365726244579638547466972840086730495649719861367632391366967979250457610352259860588428733202760651584961543593423402283137432105107794391023685636216357581482048114907259742013653886825934493671910183767260745345163858491171471220918591936072492969850597238727259682530906969875801767001141249174559746437072304321841809301946277912825848360512873616418129425204774111340489121044885752828353241659405292089258176022987102156938719576903377060707336423403037988407558780548503545044418629712824235960288746093182275296838260655568978885438604946913566547182910662838033131878127809926079182512623641409530700093226578446962000780068558047723609777080351209763021330886893288420192199202813518578443387993485575666034597627015292067783522930436396433018675787380167127571945983136650540269727006868124588451219347952100469183415952807276680123576134315406216101804749988793282169431902020842261401467119750859512247044228862991209046238285411559552037617180284605373895947302697364790754309936375839617624547768727181390089945200926248601605170353807075449153703489708147143616975714161083260612181410655568637453064523098861776874229363634530125093209544986602347736873337661173305510497376155234117275552194278292338092208362374716166156821529083817131936704826555256961325509223956125251033067225129149596289354211029681801306540911981536445286066039512161933237355397946441066011415974017955310985379782408288455910334094456715457094480852855329717135808678035821743931353175254980418994364323810035588308193801866057021442521887903518811704538707260297153169683049687794683645407842817647457676609553515909523041734969188977997548399517878111322994785409818808037766661622406477589764791927757206203495566053922267961208107300676106964026957327085359271491067967321757575076938593464465155479549973573871925186904526341750065745251102395539914931256595314596056517780165448564948390839650946213090231628208784614033972451366381874255745050468140817749348262519606865678630474130800344662692923967932887782815893225943989768520397780549310707151665999728432872795874507540171423767930582719535574653104626293295997461299005197746516377218151692342988654591624234775960657071591331885484882437993814954855480114023157006397184794200120114990065595346494720324282225365194743036291813658387002132319785722776572754143167797660007335515136277723222737130863601173660893982912722071513104170386646802526131745756078400652349936429202106629764207312143081759782368686664649388026746797393029535782213356314206963224138822043204583609191631661214041524917680698504701901209142428382687561038020405445930545994414512165564829257257410129110007537489058576821514841291908218791244741529541489367699509956106609485337840078140958620247645291615340457943875058147111585447642473335801447570328177014937577038947299052107776627567414367867034074124423181139382924841871487008514754997188975353158313464369448438910431579349641490266878404263593994767177371520540857839470622839381090823527711019677324178872335929023230851257159245814799174149105378553083714502803782388762747124782388108576332163290411592893518892669234188902335012358416618218309560791576591869775980734059441977373209993668821563277863313428239853562142701075696669406936998786205312712197036234605720983983014091522168153779858490944356631046376602109650405633430213714339488745286000605884668193964787487184455991201877131392835748627883395397371257679604922763405281803675028540002226598798432864378873788313158612576187965833053070830508456197428459925002676052833547014505313409343362421205950005995699429581812358703629014199194078877110349101382258195343350489586925223051604986287395736241586027627030075745011151215239328579063314879672118106805343360716125402067506296316647579171901996970729979728951586065051312590786100830440362534193553555936018369967030925553558481981184650086608685190568963048009293638813347179871252385343565287585666017249716633852786469744275883059609394476872354158097250986419121966872678451162782094715669353511163604130700694406279366968124020253568809425755836027821960248022121171592831937285377570072574862373963258689271886804826321372202604716718764082236006702136198739465881792793490315391969361926941089354461504738260051608218007751901010882553375652573915712444391555545788885938050126165729688299395573935029446613005691381074923379361564422799737690120678076467593624506942460476629656686671640531887869525338245815674343361219463178330348304352918358356584954696810360533052544338530430889418695230117925474330093463926762970649519424416539075599480003828114487205453414480724599905525073019233221393777779087068514065085361253517884126439829952081266505978239848579076532693309118428942554024125311002714250126220803624280215251503557973370888035244944987240982635468013598862925120615611345074487710411326780350404242106118072012353627318287371620040897434335285110751017773579306831097800508271188057311790459194550387115481018707295270045793668419648183031245467682343236750293977698968966845860212348312419380164382927938899606644550353268012190189178293772581525236414248043997375722662764528973300537215034064315546924743246901433846042859022670952537894050827771132556522752984951275139634463739934946834322236352843831416617791540090544021266234036638603854397233221544772142881863241480775013254709481901546084054448043348748670831730156436109823820274984893577141928334955772048097870439251069473997234231261957222352618190395176372474266421011867312155209555606532607879545395935978133359975819927529146219354832889759812225388292944877952139044332903439701886955156248697354613530371774198900878511512374925291355559969747635390984796193498397998007465872461730481354745841557788487360047167279173526731635965248413257040173802624217948953563234780680305680313411364273746022969556741007731189334178778444570032733690986481824709032039839914418888239820347597251833917925565959019433634373447943371039202308653584662324279839770236607354811226089995878960111554338737238688549550196700556594886031614828465864974024807164135283456440180077725647491845804969573621190304480796596662594455264071414709929511617464621720127296127658927410610289606472583034230046344850683482841662134718212527664537455902062525427481095990647463081791122409362611707473132534283152059154404414597858931102581961386979357424232385362379511454731106427154461658158471952560018273565805156365645976223488445561789681176030074966975667150813651186219355829803257772765705582393344300357636855615370162685611383045800788072585530220541447425066956871124979604761479121543190796779126582832730635211977716491953897542085962134605646308528237875791942134323964467714022407133209113377506544165282096105353811166638335994473166615627359069787322702597600597250607221826837995799163055141019453316587434876895420022736718548296792477367899494029920369215616459817129051935174266451561034168531339241735421073051474596394138204496259672456914722811007724919899008366512515590139654044070755151141311838440758088917612798645008922552763129752105753986086312002407847750867033989779049894311679596991765569655131388189440567906194902005333748050084302469572260477770602772586503744746881532101982184175891374635807139305718286449730891727427959045612789356518313826746956954590610724100139051394683506426114569609191255878611795717023635507902946300177421289742439565212436921453695532085383048156643397143890536140329018483827666797620637879533998106809544371984356314618841577567448265692425213470426784892116136645272834115291523494874827689379622771388904700974312577969926666622332578048614423659888043483317541387680667221309131810406211037506997978678947242007354007030758905541584604836078936698646434738367664785030228740867191302882922315809769611749861131225023268299242086465793431802458774151421397148908128968906616075952905025980044064938076415438249657011194705274940195941490833744528474073345452507254918580760090031077576852475151572778869212430851827889994049421943362602466927713560483778962337752630093006175583736467154208104099173550527629366163849986956982410777755110236041393459655666216355220528695851618619971519491645884889175012258752706028162856012884822249841682288326386827712900614842588326293335694323024907253932499689899872119636247678216740751865458661621444990911421759768903138933389951492914020275847279514339240695145491468695616061471348467319038049696667570904412217748877066293007965087494560079743642242390376934129680518876220676279202197759997279524295859672156174519305228508600300068486524097712169439951442875172649275770894717341173010048964022562700928513750703354201502704133306393170981535570406748659859809862466967586738484114107501673128396924864398075155470235104413142503229250647657116346446368133379936616748875783652723917578611877928250725210140568733532587253261616859594275722818667532177911823052705588679024273367263399134769451153946753859942829504158687295484347763884741313389799389650038810323648644712934711256250685921825323010220579189358732428830635828236328935973028913676684198768046044295849315993498635805301962990597213865889105319282491871749704512447490389549528252844105643348094977988073965765516975048763723585388422665717894755784531304447904152914545135908288187599973471225633509465968929599226238028135232524492490187689272110055914969265159130386710962264782892216751654854958983568004929404140889519317514939542866744562211148169437063338885728916006161106523131195896445978137819331496937465221970486902148256491584961609314450195571509821198145787210324527986340700724480334697546152388932316627794382178958186728632530455372483799484278779322749418114074355301187210608685164488516916217932103732595531737665879637866745412418063030553082520395727623740761657931352627211352095908339327841288533530582184178835559131831040239985815609620788279849820940511532034023357611935207958975162195109777581799175244680579982924426319135016380524069074352680312223459230414674140849276920811289002192068397673306761539013093905273275737456887418976535273614852958195822287470700291539860647055610428224779931231061483927450003527793403137453754083309475765760607576515306948768482481008079437769065282285427752521906500546210032273862381763965117635816073548982181949924749770803774752609873908773120692816073079906300397384502345168231540913549942261485092361176012200767631126278321020715621305633208346592377868497895871918397022218309807748510025941177519532394394054167690285314462206911077578185278858680704933766819549621304783758243189099387586412597473440401986141458117595384910525775152002705047837675680402479943854524198756008382897508690733817720882951089158091888246038416044583006262417701498859257824432216978473743414264320718043262806620949904270540545887735426421429292164250668020670546389680248661160225502951095124280743521660923131443446751519838456448143978760939011049847464255142116124510526658993928144778434452933760791419709107498557771240867463129442478108947810747574089173886060671132988577863141754356962162729689079609204920673404394716354830753787032226636175485788927396311150848645771923423566942559208717366120898299197861927765994786506576243224102247893853482749783567871723396559805205299158400548402725137248556728240436371908007869338441083293559481892816069298648957869388162291591633125220375655849081693189497413507466131929721878179724145780129872536487914370642441364910115822235472357455769371631145533267332001088901045062822603905382283051691796180433491222731028699535761646902949678842438936478196521953229795177835257602188750867855576980496516377759812953323789530522295850407781654318859846761263308369186310176714229005253699397759696489506679497395761275665423640910068429945003589220782848362461541168924046389410113590107784888558424637136621160926706972151348780598986350803169973429472498144239840273795862691878098235004394080456721879448769156547143767723810610153857591181555498955832545214503983782474813828729716286566566475097449650915733986543170196103691287808411109378694578144069594041627487973573817550613061868364791803330006081776464106295768810894318434366286909602950230470389626425088584131141890833987687563283047790538590469460476607339964590211235271141094070074917336499809308816185902000005406415339421507653840080200271157834614697125138814197061421772595668520281717545190966948618624474810467921571083910923401828448848331679038182508727048580567967487061319456199554535871750703428779526562152742443179033354137449048462672193755709097917781141412499163328395270794198677386440989943367040090729698801516812221507336203368754402576485817722024917360057883789462265996624767846242915777405351354320570761970770873384727555628018269167046996775917545662577161846543327474832494998004964812786126815567537256649440516532646804327624144289945897137961521283582189517635843694229986671583519075736980948896067979515000388825935878839160952253569584538888682157453872087157090205818575133073418051712780606237865890479016600502112983800664488405788003394273133432492902378475335394235427592258244194351060013859971089952508756288361000525791399615595778215744799929869077685617227771484536564138675732610872899621746317090255611812070325731173602476616805763031373917063967462111160448597924805807269290141799765191600029927040607775320510218081360033791322405333447292053948801552481289273237151498240896001572075575683203916774784544863149129836521956436788146471888741201318824120796663563755886129505242126237009073219882222020020729425340429830175558230847026678984938242292297609844448179738557760985365111742705170599028095086578418617392392953575912301600924320681274568098449150371146701905894944138101699846730040160438043907056896859806424090087601361601005138017925309200312539944543988705584845559769100347170312699720856914817780786407444326180569354393785567014550257936444833596515032220287701322533260622646146974609293098240060130756980007590201746088866449781138385104698545241349883088240920841463748661006932888602342351129388639513447207127848479746009827670989970169226419615922083024205849267731157171456921354025961391984907690779190632363204821788060799555388151609656922623808769775220169135057461243037510471424412736247957575602855562749634133512990079427491310827270821958183251280896581307125144815054448192930122956412196708254892708583163697350802143396803937857375387906784727729804824452421846603791668586248943981419048438451468701617074814011105243494167174787570368564832836034712354383960624927914607017065583784069684240271952796006875737201979508502352211559722234755171784823711174847979394525051051064441351678243039139129180702300668401834421110174755032823144827205757753458085799011456675440288268908244142024318283657610639910318001596604063822139905573766971083616558030591707559194021992857227079437857938916346418209384586314360729708101567007233423821115154118994829581397274058320215839192048011680817735912821941994408627302020931449566742938998400000912879578738351457539032824168741731801736035351687268550958197986044957404854627164731794337472512972684138092739138999047670360827876644132786987065667253348438342733354815005651685297182334810829253885204492967493982007568313886865140124467323762435260007841474763994801528902786814619851171091991157830969520670862576645489248725747894614273861154509279609256641392477468423598510848785640912482239766866834719942057584058113262762466982837697303430187607753829500845872304881017582271609185495492037441179699308729539472694765864421056137176685087761089968763544449745542789984995650115478816440734228136648977243935069220834460043922625656883909327960006148454118076711895410809002526862997209909024772643819153170004988419680429833432069466135340855632430045771173036743890326366492359298276477170912264111368835956508187393133937039884705185026411693987098159994234463231403473339972299912323378066391075281041790574301506469001623743469896271669364263162255422234916253380399647052364007186330308341604557305423912453788666462227649193658196032895793408632101910458907457669091373237737316611347385275888771350160147878584599853882319539738136607993738554814708902813233938873740852704157612991221543511853978367449565839419691088437820013317885386928844211082180810900230916614091640283418236454253475439956116114753495753021157968961597277379834510147924609203256423603350415820193160702571955327185044145768883100626303762671282895556761197692382171488922433529817849101985667641389393554003316094201066502870115898718810929171075367812877696106833984703402423815508581425618637170613671251020062542082120828052556244600303796514426376877166069577835492548319228334698006462567259668042050324028444211460090866346358718444506822384010845165573056223935519818026412685511970695845936125628052969545924072132545869272190401597682609900103439927587935237867460833866312637301227727668070475124232091940906248394511147798061677454695831583016799387844594938050153669172897189086770680918052690982293516780026674258420523421922813322820592144959553989637064467585386100215798227595001998337761999060470529543772658233457677458851612570770439027762248978850645438944314116595691838519040847718752735870107945492985270901370821099612019710691825796500953739224098073834360821465374504093596338215375277927966736445603508425022607473812623261214001164551950354360625557084758364938706205885194306665746322239649027621688818459481287032234139531111502659695794931381144860843713849553191663851255359187951360250548952363968689068132503803063961256383775267686732534320154352026296431430555663995640868251220897266399494345647931161322502192061302975625154219898160223178977985282171066319656314926490023607511288095117039127412008783999652806415672046627023818120748406039686538700649934128956372727272618857353293096444441862737548174618362071414612782787320644072017320446260873173361865519309776474764466658019722269621490104150739821301661664810515403296189918752442995551361816013294089569566170577787149293570499128980820424910630436967883996457656644542039131531782623425205993189200529435165503055937811693098492777204138763507244345724791020332363417677923975763921737605224240242493917227263879216776827834463665698104658225918711831042001634678994032214513259153162699281984757627383642184270469920991909573529844619251770229387100493587085488245002273714630941866609175438354613811436338383285392343221883081076667444513561400018089721628350096192938168598242706963083766961872035908367160186575398733198302900068528028290966835911397719651173895144346456785995263131693124497531366406045118758639720995611543401944469514115542871482788595442506325863259093385574510428458034545822836639693134673691236254037336204910963892628286270829562058009224849996361817196494756930884047031653092048645388394432909833302628716914747422350436873464442737920646655774870558593793391367949223635405224465330201655910768831181317614097828355416278372033291340375265241903104275667113004920926001469557023152014665385169620383374377119411659519949825773596115623586290430391715762499095283606466745015413996839804649754528510218065461863157875802758688673773537918910075166498743685254909614680225023711292313570463208636777768771642930137520712879534940545297470915381770518916396436093408954282294182794791417468054182910505054179019775952774939531606114575796211541863762041403410877535842394608597124154460442815175198248199977241301478717189239013224531485412435979831848971488200120233572189673935666422758906524016264566952216105284907866344557008787543724905801800344786221582811846532956178080583330794648657791514215287859095944120524482486571894710975628518306937067202906986571399486219293299323286652517692289050948138492993132671463798509422478384251689002104844060424731905591283254696149914373302392135287960003766168213894767226430160214431663195878578550534443948492426354372216106131489859086644710958164316484358444474059237436661992811237181210387910945417133974088868957323767450603323340703206015088140577349566227931909896487579351934319974744800620980820475077980235281265275499869938349008329832537871437898431761158885449487434090360848916689967473688828986357901167357353146179463824904591683640627545571217033773816436463716387529723995835643867923300426408254097837250271966556123371879788615488025839361378990736149875643739245895363141955558182462610735381872645444183652425650656083518935077479176776125253761141188151885720777331717669267543657542669590408130949981934709863164492582003702552835577490204538546343847363224107551537579161928342704627591027343083801554451616673778685847188157100309915841023325683364372726671841591742443807942774852786743038254752482192297210614008560800839116700716561740861438870148677988492248511531235511614505561980863025587849975412689217338227279900429508259393270327140381968489035100509094703554043314330208126856209320570642783534681230586672942216996614055488757477081331560514888863075176446573411593117187751977470996966978788123343808728963947957785087577941889607194026675017536815544019621404192041614701271797165147507053765494456692739507300860269667252726939168164688719360164674173998231859354275635991963026416757434516278774049958020215973375539759698119541492181922512678877790179024885900873984769667871380474334491960594068748202175155640957601843907204785006963702072529984760734693579924044412727861793671842014674889748367383197340047991335272870823665034796419484377524758920384970882569948137860287924266733548373982471674671143776316076753969763859882392708666262282360242322548938501160398772631031660542981183936211463585186746498028251716908348499534017928026992986692000498441754494354526756165690451636916496145678140600340787068071803788466619430012386286676101203597443806299960198989370487792095108130616633994479067900249715733007840731848990749688053799240445376862173877741342587575945035919026846471033277242740163106418734925548786287038587933913287688069197896316324046584026774761372479965625282779553099921059301264096703696615705038948361911379673830112579958204953446978059194417770507482241105459548207058257057051408581480023253314409839639993783424755983735494439533981886088458385134218192511812271651903302210752874217681718337286763891967952324369607693155150903976339154305160730217457382107520289995191704711021611286776732690642547347836826457983341848308011660961083625346710655590910342584309497803819939149343122001797391504251557291633329578646517129998051735831911192562394786564747608138177894617859108126979409249438552200577103540071289140760535837264878670840687192959807240698953919732696794990250849152710085122746813010015181959830062098875602140848429320943465392087198898103083763224999986417659410652122909492668989132621310050600953974703371945163687861728286491705059855321793724886036655006021370621124108600590713424703164541236859210250723007919289933292599685653548486272016841565026674301703210481156206003559302461784944532630775333031204386043207114279121050109042066281272470510589315013484766955798757065627269643582966264254110972908804926210279053697826386721059397982985906488330321335393236535163349322605226078115572948005152349465618030007244560293656511705410469272374385010033117225511197104054116448728958886723596397277471286172506348624851684498685278608427875647693622715019954063732741402922158199854263228146776833685186813811865786756662834242106726065102148998450596691667213401363878219714151484533837027891908699338446287551325578694376157114187074230429218378848208763770060313375934880185026988958707311866166775612506690848417010451114874744214484751584568012100152428926094225737053181897010249596667446591185130641143358673075860094623060993380123330140128879294730878672166510605432549492907432192038166099928488949609721985229467625822022810603506348868911616801520458184283174858147834854119611805583583036573867480854344477701157923354464558261959573488144335228368760626343650624255791603254118780986519534662897775207862693785692458558493160492656259798790368470469126537685204114500882024542110471609750136597236843417942347767350862649757747197350687284033029621039664064279001571063160181599722753053001818877730935329101284178496411546576349013435812252778530696214965757251398591864650747736486759140957440122184728514410324111410744069854164090953194029852436972157682717489197700067917094747071432128290037763122861318542542701497978325573884625310803546140400572075532729577109542275433377145029558817510172491673286278571608196471180532745452267644657213018588331820379866855888162838890454591752760809743370923106413746257495520273814802270963980790797896014498684695190039256624405063347369373464508443674651043045698431821663686976368073799407454279679712249823214691780099069863809423266297641077183331937349345989662105615846534504901530095467136012041984144094794886517787412188897564801059782168389655765941791158735143067823802358835885927586094469185818799438727328510843194719094432651411528631358355309350549101742266887326157800531670825497946891511998535427334319200634493286326300974576563228521527061595324943482535252779328586973171528028365639287131611442424658255458750694263495896913047444897677893613413422451931730499546266581710994849422806631322798110504744998493257183884408982288308587361702710628777347531839197273097299691741986524873330221680222896063391017053905003873369185953903830473734044973767463996196236461435881689288561021394731366737260046595555142817290094830892637399193200000254556519059449226493682745357324283637539709033961817148664531248065690282065071047876258282457566727987175744307464209956939091632523397363056924834479189509401451155269365000353375311670335023636840523646878744160616446757437665015866186705965491540507976544206935810943708413512497309868986716650345803848180156611629191367939719139639644645523504296987008498919147396831173651732999067236586641564672466210850604916897777134197168713476425611464072755558472467351920368229176417771818107557470384741316434072297776169421389139522596654928721612238669193269570136782017070486085806731314040563107282327565178177253923574191189013340650608873663005984340170300077390516473859611390519716940117410046561551488907579422866935000528801026710552991391025887377490263090037025964119632602594412346874985411401293623395803267682698556607830017518368362312041546785828564565480973991847100760744402982635435073278079000887567297314205133566239656215662472143259294124526287173402722288180168817571803913128238971299967984912653481547317018923552870302202567243634746149463638269642423040471123129930776888340151036818497134195092721382213476489579327643119703147841439438340667486279937328447350764233924330755674603111824158700035951842278707443796432076399002634107530431922473072462536428983208206564859658029768071106650663842392083012878333746251114542468160763225367913563545004468350269417168558899430348028193911448844947452184147065113146376295178833940009440316531334394566243471708631167123735903130263623244165368746876895983526581564719481500304101842080456968873968393708894064478393177852344535242797812937073377731170146655357500102551127868577152679611947049984671283048156194863193477256018646358239972497060123795251619370485301784830332660035329619663160866355401859206448228081059905316011886443653388355189990842068973208127884272281811728856643224495479206894960031216801964511923756519165830517597328305708520118866743485796549927349621816953816298149832691958051676480975406012312046693091041350405490959617958501831328663125129039640693655602569721390184252429012299267025120358749576328141548343468596075246509506676006453641557364632253183545636792154233700117920634734968208472643961090274813427470477124884267632448493210872701356333466634378938434968303879006720500471114416452063281850166313732722926140311243231640762117674500550014406057050752704619100526991730874052529759672583019650636226526060523015035047279891426706085917757331775977296949418792783644589914210634290328472915645251839572256461453987303799735406474290568700420696755551352393452276832806593451508130698244929004467282921547830898099661146941502467940628520307688254369052492632231920135462007621629046795285769100423250102742837953172309574710284556556439541432188080768041038885163875251930464231542798653075774733599522135257770020295866010966820044093487695429258918062933614884652740481977305860591724313189592311480581309777349186922658444527349144292437783866402464585569909491775595964540779905104527070166340743812076474285488065686625623761181118070321461661060174252073307778290270473761995897569346148616085407912077408193625127243974869588181520870608536596482545996508639023275373220508928437558522239310714675464034144574392134616259711387881924533850564728969636285670893910738265255648817906394039802426914287226558799105293684008058179290832667698245254659911339011901850431062853954867683505490193936633594719865155274221742943920822774429948397126773696019836714393251718226699259760154062155717531082216227002575564812606818176658160054034543892088053122788920417335331353226177395209269062943851199360198337987562359860971035574989685974846653232707532482053634882424629167918304869775616657342668556293413141469996989888234988422157690988839698019330130885136456968058658942839938156035177753327148002651500940608927190901575222640760285164036284240282087381009030143732112734681670813144719292665475515498363956833320625533261431817827686510484366713964574905764881687723157989616799830388191987418632684067272619584361342325836746054905649727711079634813662390209142177855335084201791021145906205410730315825500296567741973901589319150032880170438764827655243054764414147666914029222355285773280628422060991113487857464552495407689580492614150379363007742325484609334180087232189316821319049101325967190772188368887825276301918900773467298531800488451977558709076809575965736589742271842050774624810983771713375480807758308765623971702074012632123343439285008037626039770783771655087706057721964796296518516951606164551398231782620392762133828316734552864762459337226773675389277717661828908416503308525359528719579898194593094980575500454227906757326096107272314505360458539619895746050474749852292937670092970941598028377930964819514665106845220990982572685246256500809371215306263471339428365338065568566258667777401435017281457434717066856130665692415178834344037706086642155091053532747482918859238313210328799099981211465009706720069513605070605119825457398305289013811738833869714244512221426194643458882165635492029882524193421162379239274918796549091639308279828016465778673147194565436849879885882880065896217206796838963244536197733230262076245663016229548938786157794980242526431675010856110428714917967736675566455234502173937079152945933901188276862743943877325312851423158731233029555615472701822140170727730126184124019503787937306460627222197770200866528821646955677265257430984407356220242464653364178195245115994090212981969729034276155643494454057818144842688215743683483944715379452092536201915445090197212294229588804122570146261135130568436946935814210196233042899088284444689353162705956676154919975543676290306799448786649083385120848401098436218069776210768393551847296727446840680485308639791977929827278179541496389053036969762862748961047051173424659038281918604128816357399566320862706329578556053100455329975707480117407884855128182135605954114047510622702066645539014482210976179452916017445701780287395227327112919823304404727950931171219578866495934274413994414569588910851929594214301049947981964141687152192841778780960074145551450492125582950017397146066423451113134071366148490442053365932954954332894074439348934803255137665902905349514537664306775552274653597627447263160846637237826497833635350930133019237600620526869656626203694331535500605313136691068314895208225454402632950834115448351812770405159518741806183998245321556500330159127733812309399117825645363156957946960403185973805241003162043697134052503121118105985387149885913754103401589870931100731702942890447351556908959031383761915097277896908536214814198266742381997166839415475351047094627248972042369069179933530156318969903814303251177721954933034166362893288586954269165352982430608691070312914590263850346146162910905391980745564015554514937693129083873048387186770762613988313333449472066540422390384268636571666472868096277406739678478767233408890414441966298701481598209379629752016446874286895126439138325340421904490632417145894610367136168304120949387105485781648735007729515650312829626486425154423606955925977914730657119921314768164018851186415168321064720520148332761535015001790558145466316303964788016644468935376868636417379792614987323719719656028472996966036783839838865343883840748827035206773452836962619845379459051164758208743844701532600452850568338660895437146738015652106425109835308946012459717594709672082831542149991983555412142914282322058530635548568000597320131005649146742870832120879389480969366366555457676026241192116656794399595495503799406621524910794278119368712426595692878931656987242499083823630091340588814935841960420814522209287760158302999240605585363524173944912205045598195692016052753321628505620719976949178838826376258532796095752117048294889605612354996037590119063862124584339197679609216063960642052448954870635820137020237482762643009134960798643500005149681483084170852936701282206729617924446549935715505463317013708045954652064431159480641757159848428140029572591351150643766814423387816514610711868696751322111285216042435957245306908520676486581535721733533440857071383684780208878866684820019791109777838318459313247566468019730526334687442033662906009438031606992774064952234576825236220774769146568536783044935390048260369240333018457939285468866497695198883537542031696743529937137510234530439104050654259774099526268351110124234505977557322448342640925873981986854578682148358134127716983224812776604154762737658224812928271673312463978082946969218582098461531582440102838027925948072083089811281105011457999623235462298242088660144063009124838701545666722110231840726209671884030652366837910759747856910004850276131178026113750602312947470555100394843786448803179944544205486585627803004286028142983583838978208856693264834099935851957493301148689224691343598765759833769255598877777663389426093333638813837858234531061276755011510300901220392620265990902366615049294413478234217935978394102045993626315329500634520015269336115568270042098462048261424422072000529673951629748354371587361417476275009999824912204841555013448158570950564034837579518015105356819080898993777382167957761084215270263851508427453597681008332033017083968742790452737105411053833497303494751802551781946825098204607189615371850022269815733163518359247138047184841063228009245897092215022752459429627976157199024278253703878614664444330851054342458877799944021126788412232269288403295305238655266543061266323251676606260292279129704810607887214889450402067110790014847239225610449037939514703896022102136901631179241188163489084224624460648830463895892543827063285815571142900360116166447515462553225705181419788162389327488083143647746155683525443197344632737715591474440651706905365224613073932394114000884968014193247783699769592753292711772449792169714495667565790738698083621425218434977315011152812335706728818513036384851190374131374721378086981068349626447715495782887948708558621641454256063836068757996452427124744918870262845063408140770144802123047049361364587146767706804156873259820858288812976808166456067397410233535772404584464509818421673069701689912271807198433092011381221652720400530673709463027736298423262561977441708854068943443805760754913060377299357314213241332554685966386865714352013890778719268638669916220693864012225649497845651935855866972585082959798154157124908961508485147544893678877671216748610105442613731237467029997511308051503086797895610954995906898116593458114784970785310432953572591059283093847261417095993334968530907146058821127038200398833402690032510212873317805903716754196542428366739136531840222147268455942051286351493309890498582577158193649556570622288553672588937110983205377437521709404243447220806338264491652907011348941292765734584895878328562461151406171403999715853351754142880340350737882912062927214218084570618393698432155147696156700530190215873722542763283180889926507881918099202964064175371648154263187391773821728491312364176031203991850062282661981709030754511652511376581180812964685767253501879598736601515102390453636776462022209380852962180359629299107789839558292620794151260526900765932329049506459695175509710272306871065976095324471055350053924501650841982192179826241278936527143882634068948411567883194363651004889886736691011125849846474786279417697055347425391271444222498712717377663731921406853241982457402184098968697565700006482277048705794710302507696548103712385008865763498676561020975563745936688483706671833713305420564488185019805336014098858361704288363598277860611914941431056089479751436996787839133655472154012733430063221877475655178827506966031321512739443550690800154395281006777905806989285437547985039937664197985452618587503273740134630202991857079710384576764115874710144544445406159961998512260371676906666523871161883212642239203298905247971461154343451642858003120344308158910686098740881408399345721625495151683534164347779564438781963918209750956413105076090454668138198212645528021168148909981143149898683993703206032389556042611979778214221923048985885082657358383117233769522174210000761617925414192885677424640269743436521988025744905039410414261888992866386093203162627787112572202476010811635267107557512350116205740476311993013906970785786039338678000763296989867170737836596417874821821825346900857923518596138917705366815838040318911608819414554457192293331989571486035760125770601101087791966894769274253233753798486766671735382166573323504408171582935603759746006105303069293415448194744253584796027561339692223530958609090134600660295527669503744918773538086730696668931228068409789914428881926275004315169592598833106421379756616083742265993867577052755786970576727802832937925353189903739828947118823241969311135863329455053985187236641118985758373247138045036040640222246378850016838190394961000614005985306491864437801304521150768333400995710176410418802031870303579918618969055138009042624592116758876697509805551250105049383417791569052647912390460447688756359266745929484045785910365528482779561085734109455286821252585391491079634598646515364379504219706607184559157418851066243674967201965899491043376051524121352393067884255326896361986004031157573409865079198359119010257052304180781204013548174198269427573001058586090227987122599962372979927372907874567108222905137019434759245691586689964553301155282174449899997677611073667288916549454226565193644545908431584799872494241432256499711538152860857600947035024573632455404638176124971392027858674349774192451855229373172393544935145669482211539464652575812782267924123674607217694700222922961999880313609362199353318683261530605391857024724317153333002745221887664670123815249603161803126976268955844968109169419223985931608169511939482095046890754680744095270743897511441259843763879581573589838335756684539809380486071170732213671800392000726477138793865050752756006092900210908646352697927012785208536191633515846495102984452831170668184481630167157163163750090452433947782037218827492324589850568942882964754233423486927645399030736014540201661756609908641564917536932783045524149138473651606207219335619061266933572528000259041595393589025451748463737026092601210021449686626955042548486515759441414239357769232172016840397237513524570739376559475668619793900899030498949915572268376495935614961618651832670882861912829428043147505493991614428291658684549364409981177979583641050909897709760841803433094924002679071206438998182646387963604195400474178245070157174684303581722765747988812547278247393141263164136693959944052692997076155660851635707290465397145841836129558099737039739265901886393378963646699006778656740487196368212864114740228252382333830229902393827327244964353025778490473296161510086836869095951777546917314385973030861249202204283365229143385495347368043354452418863015318527870019193196888090578383992458941280059850025532965583563055472174452359908485037554819223764422109391067937092765882037212438904221102836775222459229372256780787900448366039808223048259511537329761823650088794523854267243931185957247470772966479777645228433405546817683872649527653066685651575240619669028546228431878486686374193014952188007432155619441543535196007619182730338608367535104290060587197291101413691899930827213328537944173712051105223104227743342685865135168630995092576247706618608910380760083853988904269929499451711043058520794748587108754859491260430533825213723174878424499459081720173832035133251951040115105534638940725298236139484457262983187335840628849355812609533534858824088298685782253543523050252774589411653507879160098320583691618933270229452592700990151370791444531292622928291415304238021504624495010340954980755051730702927078496801924137767705066140439295510955493934067581482878630567769512681868418402441153949300357908798956637560601091443904525564280858569961852970076052978815215914141826484480636543026298481661640827409991359312439001246883563402293188731119826699108085505311248754501129121367569948835473362724543157274949574986161152149932733711142381295525808965278811638973613272538961598461418078634392456066053033169680014317840963175297427015950157939740956945557748600241653676336611456431512432914012852969550749312949172361619993575481104265924803851986213135496468191335265670789109658533008105036970808688474946048687129959022846800218585590811984166709875099731602615470740458937382484763555617587000103933258281178286072183537480202762325824235950918859472579645442962816330567673985115263893786493804817360789668105838414998678009047681122103981179403969740864680806577818802882387176376685337876863526733578950456708232096814034882934603889734979161364116391618480196316337586766216158462943486196826455107054336355173792893481784587510032530182119458318747788360205030283488786357464119883159940515771519187578048405992297976834658478136664150576112141005468341981086526660216216995808498942113998054051908332762587679424716392634306306450820989030994942525080939559221951809788955239873030590290341840777367287340232076084029757628516735122707599453049503660987106907474656502676521638925465780376894441987961728465060168627375780997573723465532912151815320750375225122073219755891532648627394994823750801563967021047346414729082128447837073522476125158731254096370254750541990561642971752284936357827457419764377692299292518187075895950911979602317507363583339782893473760271012568199407155338256621828803142476806462228185694161279583122631975305940787973118484557691442672092840997826619258135941230437261403076654422790920867065279812675241685674136619760010857776296321137498575821606942283193719384670669879635074317882365648582007160077056738275677784356686329242773937053679243314690103910793169044179411004708685460847626117580117723291489604889169083245279165400247135005762803555834067615563688144646725956927450757621398092653690051113643069802292739324343212999466705113494159596797336688698931907810254662292293177925441979128893740363071683326093962241811620733023062876663703378908794781084010243455630304283880928163964654276794081624342052289929124196256923085640848959981450691433021960334662609967289919763047156660714167008255499462785366962123721786182800236101869095828650564396014912108578707960131211047539096020478751697584736806585095001707077922087217276694435664185425979549210569517191295764490200178988298161668752497744693156827826097932241428275940290497606949636356021696175894430325924001313660340808148837011600464311481202988359806223272317418045342151409598450384433148401125767665107005265999230267456041130880655276094997550625948045275186306226498730587635211389766170274312762343885696464126640625500272676061359447911377239344382932604172012420319585830836452773976510819825429317589043732973225597255429274697072621536509968086249407329712602086357701723076630503383873191294569650981968264138634988816098452847268584107958449828817585748203546973589616993453236878817166213658599258693450372158294294523908777848615284875778936164445596517072424404122836172118431276587719569005876227146086278206754465236155086464088197954942980824341416870354057159810054338561785348038369538726714319865620281274659773867803962375374219815634243562451439627224128489049281196622178492392730237978569012162465428114977204633077062896476008256296857298039716637575437684011349250146521923067929691144261812925902300915437107839839710109393975302930288054282385270237377324831268920274298957494941562041323805014664786078703226017872249367631290747924517465717693764950456857127159074240697396894527276717780829189746145213429775780826506585829502666991926266895145357967139485151169402960203519513090758968511713013437756828024268150390170542023015888982891973021040204958951997738362126195042645923170600600434455859821560224267532811516348123126914033350617444555442981763835875491433201414768451664631841580041227907681214003856507218420099096663285778740259760497675162242784667763348311726691926252403307453310500138582960418741695101820106672107805254232820869822466807934312557986124475748836363691684545688023081607847254421098812668206535522842287768668343241134630361386331721238986655492926715138640475717385404210825476424602336438515813660464445979223056893069779797414413826196358886958078742387028278983309072957451435188342107180330310739654676207711090239317684739396666407695190431878613331986913871048949458722139335493099554324762145045912437830138480635986517912330700397945029659517665363958750865630719103649162383236023409873592161522576146778546234151987956983370437127214222562520293317582024214778101618821475633664257664192917519177254022364760636103849899495222944968537054169286964023929683185781418436393672288696860268598310577831597190850938255245471721212269626833202304556661007722677319265381990910282100920560054266595614981024706877415572187655475037282573356240514905406408764699869433306492810803803545157896375578277123998896295273693217197777946506507145628617976493210616836088157386777945495061047435916390557988033184860663449360031870975015156694586540821194907298766851342852546038389720666061016802841324864182149178086131510038593844184481374893878020225794525052739778686385529796845492267696604906757267403456835010618621355132870347756667215902275239838076170293629766148538437492068944866666653492735720900171427363635212358209431077478345168887354156237745269459808188515777794975847203434113437029226292352037620779532043794122312680003817652815273874887015601589526931005236351636863037901060626310272840180081275509761558375512843882875120560371177137891573001798121418728323814496765794350457931275740407866728565592695126511307135893235573764167541214858739614398082105134460482516395219391807091045568584938312159550636044828544346355114901774927464635593587479152280026419018700807951310945243589554079140962895828933480176287702309196052863950147424435701483120832545247982740636256557742611602340928688884524930013426453697804158526674428439805479769279274827766851839155270621754134562118138595182410136750398040767764783051044055886677599414582342521067336563186761257896985920018072130630848703936248013754994123527495154388305800511819956650617066028294158117759869850292388337816883602374521684649309641470772439110320911716524302442857111234109691076432299660216294327408163820430152894468637086067484511804195719630538646470621724318788024522846643812020195029761321747852927048331806992377758620243368310254824595366584926344389332072234440104066906273654106212845666247894399547219951551738122147780822747744488536423452417541326510578085701922419311782273401408563373059805509092974555343559623326913189898021544404519347758806806978938876508308399089067425769735496976570209861590905677479817444764806562589992927102752100416312355711581221128997378672162250301004801045851463708451347100645007013329448050710577380050576108109812177071926896440281703405533644600569109318255408087788639854388180411769097681220617498213637310196833673942365261046156665056974853633528494360704651474504947591428524411650808495051492040811782847259556067480154258920969018446858236597180703142176253031341741979665593970878746649258404639836626858740222106684631370744402542705661191985240787005262603247331655608479993718445310307756451443228372298553134042241125137019058317826219063285735293588059651548175034525424954277388313487205947581047771564085073179870821286509201793590016549906895674277781668737674446039423397480532461508276081841182276750183424373799580509725986771182703405613483134124272995790171963563445060669071699821709264419145392401189314473485914151095722484602429848795805684055682015043813009093889970579418968230696847383039045391917013637100294239267123061906377907477970022711879848256375373352217725171267212422843956198508584727365427715708466561407963089372726848725419071029972045298203219698008746355878005401508662886356840351870789338637215693054238384111097588679317719370203429751222961860983916972956190171792973400436389181971541641931862754555807614001896265432528893561396504122183464155820679906501290352995153067081161893795594808971348622973509695168995600060230915214856028359541663934411942342721270891543124151150726232270828310016895104795799434603959277714402616045052562272667161157644118573884090181510185061014192512847973422802289598146400785210879790274795489596470276493555817247692211617902752801554791796126370285319764434270832117375179399879953819417729909485717541199370555173401780665951948674038018569357209379918087500871910120977532617744159776364114586480360116097463490133797250343976974841964290398570656352487618580056371885237804939510148423825709728602883467850646800478099180731309233041579541269563742661418112293569770405671024438607366455762576959939504744653957837032580502511118537112075645172040704152106235708309950849058026859150307707583097159676664541071720334029768149553604340703161318753894440218806903719321021171029978688255007531268746820287346471741816161964765741325365536056093813461282590065469959324485215265786013329533463985857767404117351074840617014708555763051713331470905735876958854040122318409694417560981676590372835908884195642852580097797832505423984043629361075404784916936541380687550141470594745792672502388017876343703038912130987510678444640832735268741692443445471287274962172675390571494680213799731135420629595247733576933140357888049513273200167191989145855640271559560125788864230221682384354099054359844622962235249833164803112405961288149044737555612213109510422166497272531632804410202804019322572571426102617218975830128332615959515668697619296572044668070269195318813857474770913426427718187208409525643767495188180622260633244717300239549958212915065916793868865892381966368954847140100707231370310501836338024700070633910433149890593539856264660214343892307467740521301517369851939113898455056418333282068270125033988998813948599521140184472601884585165121486801013588584157400199291375699979877332152193759853633249806475842872801076156107262743820042833390448494763245586998083130359607484603403136291514654863337199738549542861601856640851343667172124355082716935368060041441372164991242782319064206923145235917477247380799214309444665067486001528325026279013381916646568986076649072636735783388259919999722219632641113512804844329889775237253556728242330091923117552009929069661492813880400858185309322729777283684333636477118387279585831413240155852406518422300995903733251516947539953456816921699047321463474613049800888858735553206674343291730998382379665904100175659215232924100355945168319242188537172562120736634726272900799551699633945610803238709486532699328184958268840686141611452665921854336789169549852111493179935737611115555910731045160443641644188960815923247659670270482934035295937122837834755018229986055067028461993326882667367977354718335054964235785717121746438767307407122647106339653765440883576474267754810822667892514479511153474887835841862198896816901903001685674535711699244380550813308385471886596243225894540421157961671408080451671559225892529708835738334327343448048160842675293027916096114254659879766787811367402215554539612353459567912561185180269684206523130639840929273232389105161301472039730195477301706788049661304013732716182182040246309907278224916426397160897707346550664610149045999663919278057732658876361269805047210773014431744582353927291736584359783675419248898588978305401214364092813455983440766835927523743565065415275624782775699951714672710177112376577841561446258714243169717106430381861200246332225646919450787820310038154570665483015033396801248682052693264434438657641857003023317708246186377965218661538811706603942955039297946761838627105687147778197000576430822212945739282005238597977661070743212934261901510994835084555321034103965795040687238724320061141353299148442537022039868187255232400338219705119680871536803350369970789113749457486339221877022303044967656059571675504035706818605547341354547343136219404907944274473336403006255218855287741407410298006376802810027088829542352015067773880154070565661035959765215726463542907577515490232319687566814672329316033356248522544090932828365064460880068816900762778140540279720354867819389804515234853920515693482646277283597957535142934395343198728509468000504826508602513395221294941137319807035418040007588234274211493191692363814015099550174075304992374304561381143072434311778740801092364146115789591149877159118246823272751833865152315921610056708593706425034200221124701088015243959952343678319055438050659639594825533506136130860483612255565387278217725818702504252988081243778988334968196751298648570629577328912870777917584918952237620656223148933505756657076072351235476716499103027540838398169124589959926074235745593521754435135256228985483406184616840789802571501465074291276387631088043391003663197368273424667612353778010257342715089046174728233891345598178736101277007748382156284267436389008796366741720730549660839280840928974819945955691042474400143585239187565411692178372440471565778826421522526930733726137411698381463902204397016407658674244104074049615439315050700978722909606194383574431346256258856844916537485184571001779828620852088896865332717004553061827491073972924423266258577942227649045451333294918310103740382850839264984767779870329448520364151511815437142512055667099804461921076117740956737697752468729146370593366782832459895386373497808503271894639931761161861230445791404096858174674092063110183606210412843633953073113049903443118637159478857651470162169125467320128137706669646196472461254765710583999403349560377022775704417770932757918613624150048966004486995853651393553894742646223255953883461838733153423017128264575955522780040707435470896560788000187164814684450899327342106405990569922376535481853668309313641864109040748278482082091562582702960902023179921994047882734937922836382381935773721984643169723316139860855359464283702084368414977701502111726951582611205179868161052372387174277800519033971589489497217727607131485053043437870743591772583494711230393623314672907084623652990763316166080875298847574531413019935606266430185891871991881626182970833686712605618450699262141579675558740447563594253452315852681469777618981379000567459215950201402572919966332176466517852508308076920384935157909871696703490849356686102600223569462196888435436287928722610219362291205309367751776347842138305349170901539542518504657117791152460019016139584664027553962256731954842323071167429170788623941898359875616528845383654609472416215128018169937009315009819599052074713028134168718478426598602136003523102671044199784138773764531657660603086310214769505283621068995620886337568231900633270670237542665236892453331615885677466803261135980094637850232739675992321311123732145040713093605973751723495922973873820486894942463855390190586676236031384484424036530080337593644209041424287425127613147550262230853527301758681337690280068289258193076320097544979127298448410844828844182813980850254420737237315207196689551355165356717858360988838255575007694573028351996851005263572927022754820164207490279694358576685447054411004952764389016703384217949775064717541792363840345391584324954353668686861810803131955873743914261167358549376330105770473558440598357297205856155438576877082156188138576955564810464856892689743501127098531521004343049054552001854808004710191435987460757260765200521834352346395049156369964231983828712226797659975038794720100557541663109998186908063568156387371959067996999233042087825083974778060522803484425213594921236103538456145534439692719250242981971818710704231100734932262607605521156888365724315997579593164236194072853895237965170156800302636742048493190409786024678854669998497613818210244707286174738839507236698857325725055926604243073294522482502441962727655444423220264268947617453391703696821599491475150238435952138817499868646655156331840104069793789825819041699200175526479916538635077470981604931905712421713436251999813828135057902384519787640016004238428409603315849862333159586660356261827183327960752726705298884880608286633128715953511724241418093859169284258866398914152194206478877900485316849252215827413885105193410136150480143415034656226516115326458613803102401443372234753301906272431118294925599260263562096739532038411003910478094177186714705655415544039349850182099455127737075268136268013452736465796146577477006126337252064311780532644604238115603243410880966662641897349633609089994928380762420811152204186053130393556554593871723169168073364225871809924643212575392039625679650083572029097782235429650024603959443800758522656684209106572957216888599686915204541630192368153456261515067560094724298240473133015017119438056006601075461815161479607748053207271965814972898430690235743732377003668188472377632946413989818767307818387459080259557528998131110609078949022091194602506092779862938420495721942213738555300366342469805615318859683323233065226716584877415616740230469540194267650198347545667375773665095392191346443113174143166748131329178447656434883872998531921367221483829488416296334037628600841616322860476680027738734424943292811590838648180249269730323633758123738940289326748234037896844056557510518605224462241684904668640361492913313379813372558658436530630891164604973915286393123096194339328256264185152856379135907009997626640376329362230337960053401179444715849604108693333588271543854462771425518999484279909259157816710705919395785636444184867439990309645396736309887985877508977746480604474028217235627422511665341448520064345490089286055814404440875141446758895339772919432499675427315392821715606970301617398349963669870733989874567919362299803821827200315377532428670296867108954422657811667353175602492641648050621426110080955446658454134533534714916606580649033182028486073960797796569382791777737948729657305957811177268843078048402337283231815012270435155491911261682665909485381577386681499587080059589520566393257217091493058466735108135366632441630883505454940807700083076308478347401301693934027061749662610100206149826301394026446762814865416348238305960619421896975089490015313377634388014989489714068843406252074634429070846040454045145188700763415816209007161813222404344775527400090717419775625924164137098979726804581558889361150184172252976933441954477175328765892131788308812071929735954579871761700449449687595353271196338077429718425947499799547800515998023473023185428503559464880786006164850349798272876955168735141633967468811732045929289731019388578773595275107442678242158969657594262742523187791682069931356553575030644915702732277043439531233465482730986445480406694941073396917305372461140508571612772645570453131462090705909242078676468446374824662850316032521645156539990795558644199819356910096548265279567164835943288863053465404096809853062938624483878556272511161501783022397491252942349692890822141214949278024319347785710281551293002473482919158123355090888563126571117529662295736855850751074975643618544786649144630284157211665749287707318458354952734279696319509404397561936988996610639707495187582519472396512129837998486931751551086675994274842586456542265418041756581281915780011962981944561242168618556583409607059918583023797142435434010878332669272436589624051231195107994353039544902414946225559568798361427520848286523966961495632026103298851557560597629250709536697813391959923343068297558616061223109432152993542318676702643376672973157803584199284867483316484692643415109526389468360163332522979251863179617752815760648144298230540023116142658282271928731210725370513565001424993712370850825319618599632762938868988783755061856432187463177906196989257279056839233021713629571051511535424649834718831976663156291962667210409543220996406587788336349378700378634116414828203203501433073344599198222750447550874417210976759908090021467147723252350310885590350088946524254760030589813731881814670462553602728372456872242250128057559382068746277372552718698036858115063906205344861255135713833053456407840246828792121272706389336742611808542499200916921480933424359993525722838952632372876357955393937188489199703298936596114189104087671972215031511462137541152510607758891823595544785067314187233628474904919051085792426531298216824113518711546434225644771499211291845544203649869348059818688011734879153661808571298465024948529783380728197930172260553779056414820871879058485971275412925762072440148831809175866241056331697562478012402036985057320816074417865901099823454661829492522610039335720325556541634246642708976394720374807451840365634194791156502921714656416634091244399818464662515829747398059059383428726107933218205583455831870805385119536409798932505801844902653632636453859863205969225589035244320724151543471041438884318977434089361155238751169102073927133886798776404451019182013799995255100111742131787362673338120244033399680834533087325914575292403161446169243917606581205420556516591190934243711458310853177504714815539998217464144883212048803407718009164746725107960817707042134460567540077134462061897002871560762269719174684360560517012486622718963762000280070414070380424693451064624093273275420739040788634665833333741368056095050381149184762976771130497668651244369060988278841993801406852843311486579646506418819815204812863417920080745568092175131745191589418342880957790282334551866889305342661623101235589556169592203967172333231969385158032365630890782883608595832636411369965370933221214271957098625064167192499461698195607128699408233784892306506555347071353730949080126943771765227885534086443543619042585292807779634619329662756463377366118403074438590304152358477712853868870604582534136216926033325977261598824340556063990954365162369329784421703624125991112490344658026570782937049063536072070838645416875900505137146466627494604148318690170316903870457044596799824359105202610921202227609571464426495795957477052920301540273107205264691714892012321600609987978257137012149246685986877620115417456684155424649641930157614329418182190516888169597635775361971342841699193667940286106426010490365341250427563333233296496095201563969257367125920182818570321093436171331053722537807230603275669790202369042274717170920466106765724694234385628871724211262904953993428512618033651738206217683481842513402063119712446794583029880230386238854945346703909239535918797258614141074817360289315448004988995410102765046849427640886262473461321571489377987958911865054505462818023351778138825524954481955016857818886004709907156424814157602435874708684685261769046213406629120452775673247033174289030917924899454592920917913202411845571540552247004765739988833972802374105234482067088545130504816256055394681224769357891123021324384160701725230233139988807929935910590805152501414970574903007244778774881599826014795572928503280700801726020782694992253086868137830152343105688800302551000938976761286045604347127057537239598731873717215811263722242154829510500268184477286051058704989566463113413261147419506891225238598684933629056476941575622058551420666206667305268909674742181649137085638027544780373151722593033608608791342595519530962017913095180122407851106798150014732846017794699257815258069750039919968897616495037561014488765104951724604944945140528973250020246015037681354306616260440702958428755398208657311275448649613461533234067729496833121829906536706999013805845015308260891436649547417282315911063509249033043879427055042220858264464514869193867999053070654231888653553143564892274767144012806013859093404209099234818431310104336657176414370165736592629482818505117065473526749078330615651510468434880350173980312276171776532451588845740238882239301542823174258817244880822710016939935258562336726161811056518102193651717373344266499850459055609084952657522248201182492894515755745920388943194320233897488528986355102381355218085725693071917833881918232551548813445905952464051062142408693341747735957497793451220472785950029803727147228409175251791385673993987696928251928670260712248386429577014132064657214567352771114448242546769830429236150371911554333735144334741240717506306167424763201594401940119703788768775661790734442556000534633417978010995242558438366254896325269933339051435243858991607368689366574174504139534300823285582849670125054649411828210423305036848663580061814653143635229923937633770363351770489816801987207870156938540026248047792666271187703804540288421260551664202804784832471916645197064740333808358392481927088876191487741139844843039133823840883384391661085191464581065925420327682205922979546970554672137530584365039515607995960693971209100059275119769807843486378654241141510837842821317125263330575806070585482326387738690660781596527153731197626464033229178136514133185777991665027681020438167942802117203858414613495188909144038645126657788273832036141725438068746211460956659580193579633248313893678840242461073010603439902083465165641371975673976993508105515074944944325468357489094561205226285820141157951051622474258480231109266398200317207135877286919891484510257402073456404335007097411972706930870284967072800753263519821374023118940022584576656830850534652077653863884490146660148822876432123124430820025915775488107270175252424156766529480577270352830847746222080337983054660160513100051605922847337968712465545491551314583292628135434825828614598682434353048592708968980952456814898943471604718611775509130642416180988277209405054947966406151298162592008198732053778608502386434928441628053560017123628553998064748747566545040615664054536351595314349117998353643011022695531307421572096699079702248437539098871188579030799365592342725215100266947310940263879858478476509445934117818556044062145353486866418740960341580324967812505275785438188993178364521933794060594346949550644201483148762881455758491532829097990946328677705805290956201616379008961317758612684979163215736650424715611010181798353079259279507912586549360132539773321785588465927046670468316868395162465426386311380386084967434776956509536847497181378940293032384709484002714025658469891919586698143383118966643005997942612469888302619798353402907487147440992476334384827396044709860407699342998444532854901106719707851634250352597472943187814293208029273846417134919313995554496070570811171346430431262409672051220538053104505264640967052838550505746830256132119643080542879692765488610530975916186781562804518716661012910543681315306502051548059063580246749415625837000204473442020901161139994502556107072195985376597906947868034449112065669999417608189781061425525746172230026575002278917565656053143339681937971860677451319354396392770351007777094817593667221941685941155389336671379529202130139136676245247372990939608383766219674013718716667182118955918223561579963191700030845571645158205958320728125623414799329423585358613716300590466736560958683925135524397225119549861116366857270939275719229758827006738604311305502947853907831281044011411792622555908121509390406478138161929232246230493063326608432554481780708823651056343964638011915806278613057149726091141826702126033244787073823467810001770040264578117757010375400935814967654562740605507645022753447349530000998786030872097912744048987455331324798810347800665375923506461460602576724491515021507396553786496126108002107229967901760490214771596411636704649106499408108938033741168237850131893030148237346331067571484547818005209335410152634984442638288589313966324128521922708555065132958502316659584830194278967873649321453542340955938070668366175673424247267817920050752268213736505068470833763130900873695033851789641123637314423619535798462665461762112209586349891885764157353578229452967159748304993502744804748895008177534030952526469858766595459739094423049841681782450580160522683717856160821146785358524959234926361912049854151273045109743494571622652897918146461216940877079878749965255305274643317528554206142403994629899948686082723385961949560016522596054932915983719829780560484922269718242123478316465981375487910440974432280225829485097732462475882394940814834496678943649728344872809365753741409745023791583190402709254751582662035589747050167750691442854445290601501163815804492527412775044720135323332233070718788743956749669381557894613188126536625655972696224981244271087483253485508466440301465638040236794094261646221923221722768597540174108988148214370337080271608071847915887895636400628475873036125334008248334093870547382219513227634577942744313668592789267681733256106008395295893121522167117846598276459047029348598184832967631072255933709849415047491034959896473606842873720695137669154913941734758513810466128387565696891412293669634037957506173238693727225566681425426113840066711552177847305667378927066696843049383347320724333687872389918107015607187232418384848373078351737656032682856508088089951601115446808533677488904606130015972784927224927989577759716241884385807241049680027396739613621213414940476672879534940124084732247556805827497907973399118071598732029193319168294738046500042297442373119531857276515089882984478899205205534991843089953434653266991564423622212696830706769196736480479339085443324668867562135457659518745101550254912466519586891078879678126933871111115164355399356302158105371380793291502908276851495631501955028638883452034436915291270695137400656839504475367472803741943767916393683062581100310602514868316389715813846521358869244246704384912502480507498518768389592347169448104253346934139784461564171140952091347611606034438495509342304427716503086313947558043863350562468864108067080430190637338660704972715771261979350149765086038857212215011144150835466914821631858788174553081397828832719136053852116154637383421927866118071561293741723018153405874379241294150084218710035591495242818309245569995256259513590033931440092451689099266180453892656446698053977089619140761469708918830504230115504066663530911944698271623237762387604175115434703533355587881668230544443387858165414433071876275540913167989643489155991246178559598887224738631719280648716030030991297107111141273535640458207499297693763280320172550012984594506410163743115819065394916012173935451975154914908167385447909226001898663075907521028152492479455152743499352104133935881968564707883619065827365816102709348345798423981845332540160174134615346019248037494319618312996675223874497007788733149286512087303351756681187894789233208407523688339115732905224353702064386977712328711042268236031257086323272341536937679914599890698770656018217175551611592230497059725615759982464997855301126620159977492897371698602160653197361356963946887070888994434933295848144641109291150354499955231093793329099840143448547892661262011813623535509318342175142096630832769906544979483620226257666355032279385511377267370765597516876720943287896374810814741767344568526947957627047585620201238148963906743252285339511448041345376810356019555492100391810688854190959243738093670328774282384344689644539024153193208622935479590953146630851114719163955236845339048193144587751391044803052771954113507555915558351981375789659516901785518078679443195088600136540487970959151309475359096811974609986388709073842924119170569392007466734538097618654572333125606829066580816706286218972228441737698261575635862685695610510570430025782737387299317869139832880427131224006869648314509690901940233679718898861549152190446534689099606439022616845013781206649742092115418766644926747428969009468713447971072717848039135493651266196935875814947645848415933859331708240113709694962728644013535825859996630844813136583351487600798964877866832570342350270243078330665305384420681198470896775301875243849831973116302454753349143727084643772882607469209938753211907789827955771803409798966611940183162088535897318563247901211695389745380168770582425614044871565144237007872442327755685121726561769031408596076738722984473603237621354526582052606626729108727606227376527545654952133715244716803313925401966265357667771271303174921125833237518169580789310607616092049284467461726542889130290073340293521994275059305968044983312502252933184028262183143994497158968136947861061608837764194786588145417562882779779818258901442843624081452219445157702582814358720510452617405830371157836357513463550665516868242932476528028611514976726843592754615808317853885463220506829959517654360366057046784204021007582891394708952970890056983338660975894453101662673415882680685352522708597216243533424655675586554084276909158301995045473260131913611630420865080251733588322100804346895685320689910316725741625650169497263862824391200654784398858264918612986875928835880914270303089823824542030652605550316481916785077141135163407202090286916364015025474186821864323537911010588350619075719781984155242144787362613261408949952582959566375698000881782714953367103969309337501079138596272251839479498822448755231407618046626289961848936996800116428846466386950101761177463178152918827901109132803672556783507092051392270690336823455914050834665838161943373823207159283474726548807958249422757646835192977493677793018376450156639765353833591864686365215970648439323143481888451351187471691017234550868077687436347205481355431945674570220499637553986272262200821614919478580730231031838737232116296117846019714803417246953769435102598459591391105838588911987275689095256068068014150366875610726106835090038186698457268087813537322160242094874412838110944955397659782466947142978403545169657681189773203419390142880369510681945038203326396840916022137586781208633525326585018726588557209702293681253919249186421336944104924933239831294790432351576040283455539757674329952911524379026073673313757411111948231193129060501030337481907291255347551526052002289963718221573806599333306336205108428750885187410499839244788628353024635038135259423322284447877606700731895750482896535570261813200653290286115644923808650397780782661766018997264723633864541162396028221393568166418292286113440438354154346261281180033646080741087139321393984789344879536928270621791721595082920966058954246994957767838535181373067663817827754901717205954394923909987143262812524182668449611668562717772817654616313883021364660001946781275036020299333376912978366235247914317766961262824159171955270206473646281755145396738333401881350279382451830125932543123670219245663753559677092835746355350988833997288996800948304526843423448780564826229719083224261279965896610660388080788063846119741533094933178283524762489087621308139608267035618302949116369487049802223811579278924128708073430425693332490045275440712262578603576431377365642632617519436849707220764685109050846912518750537612804432113942717549371682433555885746681419200682136986408114978162321002961414818388121751609353856701674098134886445679868800977559396186577399507825658850420029799541409410060809399524937532199041054580040873567651148498686213461843768828099418663337912365665001673716221771179221440340602785953701818465796003683541999082877589743596907063438197027512342310066131574554456285385444953700007972367645664692781448745183702205543636087269412671791494429621663500108424290925266047269541149932122171212450544393826243127046765564938953289391875040379292785686744138589451076585951761824552752767551028785080782259819178360419706479331964564265644510866386454670945635202544949567465891812094821321191377436696805842620989257701264704141309565758725560212016351094438130151673462186923108142344582240701463874714643236734117869530814790519450597312996301303844582468401712533109141346826589106010641845911383338079934355915525220707071056984686772210824652698088924973144593557720873843384894415081546533103611396196350055183747903836664396556744058065148047670380189277120729765140799919865967241396667431372709501258169290220110735863540707962693306067419939449937031239185224303048896536158169924123882590430042030655416345255079639659288077597016819137779683365145420636024886989063041551212968592227567698668564742484656984122402920764090736901917076394415189834947758464659901777748941876273122576621498283734795053163533680562465125448367600686602727218544611437834190385345385267118363294208514736316241546509762290690888639135823444301089719741910784500889606606311365845674466297932607974938040897069335749046358610321090977587811103692372719313098862496943200701036015795788700323006219324846656877123864517859005760280618770233634406242785577317429906981229345704777476959655211560360488372234950735311160402173907798052261199063333784383324169075957488611088703480935766339039078134522596791668344561708128693166792942873682382563027717882986252165558497406512647135125053024244152570514537898380263075875313056497058100262330987980988129851854345902387280935082575101672699031173767084263808914243323199718450749852402807830350211157363252595515553895566143474749984148455788571116049407717339999056756588654570267650502359211734561846254614729203250101630187586032126723663250893749994674835662139907140829787555161291141846237143002994929815440372990175878032566667871561830728357869822986074747494053836106148341050179471171536018949464904478588867892820549933216240554511005429296944029585803356112070804294487200285862425471101671707751871329717342997042404143989934470739126753160876349974653995871964417599142042700057335343015183827835383909505675079252823551221750339886549897120068440633182910349497226539623046194231095453557431237147151796647238910706614382567741246116360067775871201652919110522762874906724800755171292365437350491313707342551339361561845295373795209709131158202588490451765557602583141267912774405133406947906511994414728726745181249411948308554609006236317802296019072008936765020258458175680424705902503560430436428824636157272083806888287601754654618792328468535959264242407733850937728065831243868142579558540361712341280917357432452071594854591529151651696124113592492806797236548620481879940309159102766961878997724122963752378687134150140785393361242671086874808302645374679281963713359993866539461137020949218180966958219268757234849580786121701163219511410089483220126104449057483117977007063332467383516969621180794962983986086209370434057479357959831678242298204561760564612610184852549616511499293187124504718872970269789190112317719021574426243206029667099025371949090804433525802645952643387283669489324635304093790319657051257564552228866362928749641521302805880366878572963794030682507755288903988299416937818704682891578630652723263014499228520004853164302008013962437683721733602844217793771368315159819470005504602047346176214330824519234103585764859912349437824852343204835197303549994293401947981447563658124171243282565785348680758519237248297201531305397547472118581133257201702197977792149679435849073402094210976132061483320449167428407001306565937051119543108705893812479111237207296924749458684868234313484960637750700654421622894021341239624290601388434647101075468414146402639312713229219275873338833233651043540717012727949038114359729937048062175409437160218438557635759419307625494148714924429957560127181168114980691725134760996544681008004740235557393108683351129563568498598181318783328702344643418717879719664203302159672181613131869131853266261577357538419663519294178798037561593009453888048880132389618221531286923069077439874918776240511761577083109381014621009155456624137259315751345919520058146704353297844581559266062828092532853325229525836923020601148120848735625382055128260262236104585971645548940981907680962918142743914939596351180810335960001316405456638017070808722957717048613716509555020124256338741855327146215513357674233714347487416137992337946402818361805150460621736426602914208126706027958878136505619981026164343436519311045730725172551073955883983653542511904642134922551746894982135070854829009781757476046604753388559665921296096600029974481879157415842622934073779550969952986669784445122526836034959846957377053296779290872020676238773083490956577845254206169358255589956227714585567509607758004509756160909619079381042407403510544415918720135998447368406054362605697042379311316332517731842981527215823359088109225605668451925176847264587519029150647679771199508486737537169726088314847858877775762998343841692145346946924063978836508463117613640021598331873515325626266988348535304083161928327477533206358428459964509275539331324183238265593614354856288235642762207484725993243950553171790703729116085384822431989610834801928499260349812071121053285235246377463924430699660064596043717745235113499042455363034545552020849161507321010138147842219423748142935708824241395311685068822313534941412801670405847861397071657880300049121572354013868875563474844109211212265528199420312978662011847921494940493953278663925968786919614790146507577372743388938382267739188160091386143477147880152620268313244607456748509805925817589390261239995706195702766807221160833639450398200824745502128527323869949422482055894935608675355294850026037987402233820544765235295462928171509312176517126934567003379820385202831973768298526661408413347601601186713465957471404701995448208282664969154125360491714659582067208806235080633097295608024396685457469522071570596157901818394036713792222863570199199141472339342655468967516969942375520809291224116732945126518824574723632197429291191353618651182270517855055927158490452729800078759932595563699851988878172571283752604142916535233238281476553583431213827647654549921195566849756970391444893981703364088923327629319080033580974608331987823729814451363391015115882117774555574683454926042871280019715343902665860230871721984005898654701026712813574963758785981378594983227172447563728047742080905230098009835809675763869155250982720529877693810458574766656650695982289499641465349289898798090406015669549537768387406182690428572959942922913200073262714429798053033451726406212611860364834190863892851262304336776119673594006766878736861907999860118284948502146410820361700140649093937207578680455651068402971249039625115538165267307655612550115370159310163991734320191079558533817087347764534834196437824652697776252890498044181268887206813005139969014965972184688639323739743515181774792278906584535263361809452818593475690418269333655244654549009062127101108339594768570177457193528372605249435689073225054981250719660414170720665433451945438748575404892060834203301068345597428513465796159058837110180288439502892657236619648544121154424955572873614425543564175407034898613119697674614210520389082681079194067450654217834310013108615654543303482311997760468168958809000876301227298643388719077925179211580092306489970419758196723890799773848355867450202437427015478954335685243384427754770897774193160701841374210512524451975650575416839214062619290834584807426223574001771759182085945784243025668185808311840287536628351296765699195068874214539323979327625108379978867129277361999693305779632705136012264671791569958803459746956073674549324542824594950495467909669548049534528431485167248373088842073095704015701014396358607339644732177085753568191326125336649451434242132869125420759800571822006036588969382463641932385991891675138575026712679143483630508390128594194285365206997633970998584375282065793349322618705139647162780114456465789693970842079563211166569034146866995607237102270477737201743510567278281042228264646541959496684755332168316513143029764783908066989615448433603768867583902386280080749668673782425500418314107565966783050247726841736207981212588164118573040620417291027537948717215936107941969978500593972587886035863939514879173607407046511294475021462037408386545977632814661156052930357483285656563443781569760251659748679680036591590286548930059883204237393369833981496964675479131750627379813224697892918783668990205926051185590948359234087084447818656538529607800447536777614874491397357101732608190447518341387221162381491022928706620431302486388567056095067656276922699711576974932897275062741092383875419313266088435658262449887734313128747704969317755479655203740018180351480966279878968076427003208247716917744652543530515476123709355313872949937395440888092093573455370160192872454835553925110575308496326207193062860583339241869528638807724495906375025223915963270356139755096639705742150502080480841715410469856466466513998091542736396339909212651296271542849774007471579146545410197521095804028001698427930469685697507139223267169569601662300078976731334001002371209043471448403807114216136447479575849270940340805708068494848403623391632628778832442503568367632489026370200140967464185870543475185343984640456129873845302873303683404809879443233085203266802280193955235607624101542555419638977101188965180711886515079790549162345439041207929841044403804252474603395715201399433917979408051178273489008207091931977728491709450923131640892358498298681507401035542001548087986160765411793206213347092035990319205541732413239340568834987827639569198237855187582786069316927541344722934766030420757720092612608572422796818648439595134999495606370286675936591469790343554241233108911497739948794358940809485922515167282166913231274747107394933921896004060734385098351185920858207454059503261478512386636462121092038056284272044108909380356481882725782222203174917571917003422871876171642036224627633921072691439776576300035879605013070908429318531806842964077121591138451619371628746721021910695219588155483008197145070732368247490892512239837956026446386212351841611157315935396543740912798931040409875810576763817297103722841289614910747351525278212155790612714984912983895009805855288812865865518437704905135262497979879996081324522091894515182344114652400533484809185965830969010463961355431517094261793344060194604564015905049963930660519383434775701184778837645339523415091287298537315077293243520264454296702968713742249994572942271402484011233344576489170911164748609701009439458516433155814192384332464676336026953575042131722830992437986886935203830238748146999634995575216385688863499985618132524520479470604570009239215585265386048056396908984599778857060639336988513314890583056260664061808221216091074765048964243538255772851141628634254147651005939342284182581946383484702881401990597339771077900042998279283548443519311222044452433503581317021555679470106309192303423738965163598967708109851329584357042369286451310721853073971527801991862226517808869321811326516107049264210335719478358255451738940457818729751908966387562794446766719379448215440769513247302538747794175368230803468057345106032841252565866526320544911654897882201052218455489784521639737084387683578488953251254777929758245776098310189812438009040899675554383380471826665370516411943782768414548928688851115317241029894601740286911547974213842210745849550261152115369028390495543168080025259160553332631154915693212890056133912970195163693313809454708890638915879653347117691863855486468086222383299842627456948345563276033811111499772170090686893659917920635845372460574480014546313638281559205928981968779724575329274515770377815370390508381391570095350688974251700684553379978666688900793412568064377424795349367417487391638650525623279150328177623242100029748465093058997599728659132257826977572020692848720458765752393460180318623136900268660021365764449372527187600095386042158544756080144397293575612993389420615582520949254463454296744083617192899134021466054210338938342536674604105551404729662472324844691553420881117782635772084168051577306353024865559640708683545715457646728602257946716680699537384966288487548727741134720027540256273181591193835911520878298980044307417889566986849512096567572870227777929042817292597760416829912772721211181114108982304435990658090834619872563991121420541112743428728621816096750166145680820545924851020260619228324954952458360217359209642286555528417137564946284016912480191189121381722220451623928466133495177380061392022061008986099640453861605077969560882638756697976587056211769320067711860624518104375613668001607067311052664769904757601564399563183374233993259059994182861290924943220155191835626049767244338794209292480986367087112348101437732453532634203601761581622991789997880427425738803919827260109829989493189805740934248975000485055103479181478951029609160170643989877886609579922029026803300812302665999379701456907303335544414148243239379264526523135967543070772768675295134994502865762670369035724521390873183596068862014333216455880374428371217369600210398832309720468375369857820006405500402775794206957999587194877904104001050948078241934885234869734073797449794335761761478703443856601669051630774013235456753524226823089999712121287998649795215157233263813578887825401282862044299935623193070520006268966256917737168249945892290893042454641476408211308936000028207354545807548988455231456533581681032529360457532418375701296393770564596459904989246244499124170531629496629856007076353527643372662073924415976857000656411357927901459056111241800786631442034855321490780239304772598321818142524519380053351870982319779234629095883275878897307774895324223328190548214760526834284222743307069641239309238302020017079973501600688498456786003725599190669974599881806564269376299446655465862012481035620408820460003135681928067635221720587001208486843964535747173853791813909038651323812599221552168150492506112691785540408941309414702256597089967320266329454684915938604344226245384382073796342490553123424111254123513631059117797254922184690688668714045293390321715018060587337883904280490656513583618484252791030674038076611587168626070699159144400287057520242032183636112794287882942261717510909143847887315488248168643576717966492486149787340236668043629338522884963774261569539015731064204561566960719307756230524110917015848349590015695145874771478928368530804286475368250637770272260313351923381380964644122922394684078530418255335500511566472391826813948330247348006106298970353511895371849222684753015129891403765973272516117468426205928042533997096509657792189731615776072541780049500592270624166638316950191830998707866360816311231619675253751954853269558597698179960210940617858306059309156324043349828752874717470181108864779613011901391324576773497939901998818521202439980858199559723252734359062213617095813343624407676152316960265806877512167215986632061152458271903710156207146673776999537030186926778604713950493147263860239092632007651987002527085668053714769738904462273009527979192579880029000300385648605879804245942586003122140149801209588147631748126374322992640153266481113717041231136969074588052147999696415115230665570471418125336455630731124875667840068961899087157585826449129863029468427695357689714981637440112073739682682242307663758320467895051503647809224099817404105879594114330061230376119600682422799127776957081425320547581140486704597182413544209760146567155937661908622181663081856480959041210488720926518457028622956900080227008889822607392731834628326307802528972284943437843540910860968284675198351917044245645469815633159520736703258300769931079144220578463826338717520448573375949036322730965502056155736457343775430583437466707867305193405411562744491472372343096254252888467383291459097872716525913398249647297971820204421484649839004036962520830494958416327051355088798182360582156908400735712917984780286101378882887368943248413081411016186142001963498635937197695588292402487316121600770860648789190174645659466144859599965075679488155023372217545436535843738444170958624264828146997578084580971671486821530594916435699075724815019949464428775288920589137306304414550988096727268500397938634012697670077757089813188180229704408617011720892839928419583538795698283947643252287018317892633597112719047925125713995684438656775017024498845156280598871433461335173448385674758199444777415297035556881364954213552293346807916628360890433404192002677883666589998330383978685373727642473842987015050709652390856214994458619599212930853586012367645722068684639750713275185810454515878386362747853759584114781372954601423847086730042783559317265790042006727949207717975287986268388417434984338840793234788989168511810665097600252395925921448751044111021897946572615254121428767386642868220183631379801138968386101730631699374938438719028621928655605688247844964552184259852803416288802887756644888577541292668469449729892894641737102536517402566913891354819794157775688389457460224796610189482204002324117793385744880863702156578106140408552470124008901058390668478568471377369099485602105316014259651091998979607739739311067739830803867571301261989467755832606712809211541554013068651062369488203202020963951255287610089903280834006655094210654005881467648447870176112011096471078559668102658023394675897037670078124728456300276768222288900138655849323736414245933768976229420689047857651000056589831793448574605867905323391720417222540290653305081353671377528931511375640827525932449611241456618218783951066658216307972524625007205456879724323112272427059824926559706646284242031510048393979280717505972155187223881808117111070111303564072308133647711016161970963136327320284787346980850352751743820937317679117519708877958571834727194821275860678844347994753992043491193733648167303238059122918402574853148845474410815497618969906755755495751098454969726825759786563630730039076324693042787288053795549502329999106420323368491768681420315362770128661470456186394788839161882904626298483117230408316322108600825720009119082048563032224235611167207627438643871535483625729540063506780282008521123611599418051919688857483783059366072683271766279155986091406858771352840753930245799250020287370697461439230503165085376645562076648422101867445033499241646373078200264826933945811208734282018985202608736840723306599989903547760636592563621110912012820119826768403932919524000071250198358833645828685861228667513545452062501199964625746291769503112557885020709175560679506877728318857887544768932069473484532103188468291759611297383128947442412551594634590880712581005234265746828225673466715030423310908336602437323546544509950735531804281684849902216653162949525364162150400342642406712844737275231178468827220966834561507112068630455420353444038655043147140110674893890062961256302702509296675211839832261462720898447937309258787718719457501636472590986744555995376882634745380145465229123170456537221371012743485640034568088529029964779075336168548717232025829553101983899384735740500716601352647553021785731183924890773134610458721609072401718493132332291447074236056042980254805595861402561582606378934230924638351054025979122136098516008664348609510487679492496081722061679634706954383593597084917830831000370773812709511255627624745850154421083630014233056258615483071791419159740293297269574556591660866211350347045843686840331950671887639970444320378500483164938203771905343387632536484306822970840333630220213939026521094273349244478342998737414117404227447203378048720113855154377410674324286486520724664852905608484255181318836003742881323498037110948748247760942666575140732498527208596878907859597960630850478376755143042959396704499386312437871519590749267393404619284294776198654669459727044683669049375110590967119762236363889744169027530526009784701776933244551559317628447782966580104325824795088587283461732490802267271583295572408318917980962858992507160091798965601642736235514565868716087341830748547120403174714927849865188540417534185243670224722348251793409674701242492343612895413774263398041729053563079355211432224732110762309791177863592145144377691154918970159908575474897505835239313564503205849516676387332958396762751965553130356149491092772928897284494866312634913010437393934334016146431755756908887040072093914370558324307908652993155562720601731495205165095052141169082546133066314501344930760453918190652926714756643005335034595156446672439975563448745143439396847491422403278937423189074845371119366040852879799712713375910607483444452772590422219260218201614707389477638169744579507612444834891994328818207570505285772901524936087204025366760348787582256215256675446052637376575616951236703457128047557575066384050895711344269487560313766957980993202326161952101753867257319376672293939420748745617202547522924965683388726310684671253777555166710034723734077032988931740269692386791731475935842244116015904336369728075412173820255931906028019575942943775136777394978102230969342488278860641672916292229334823502756501419829756275944910583110080802255878002297645562904896558164730187015166713007529633244121233459005289182629674955648367213841692278330783827104902692433793408155213718968870477635437440223736171396971937719847933365262259712663766884059091971235536825615575133855906322078613838696684251102504977717289120353630714286748116837210429520663672379472462447368211745679170261212296176555797664603817596115578017898760393395440155721235919392793759086937413659309968626659001399072661143531667568497503567739795564736983714563468048795542255420187460674330708598668032837193719011741987367484878390832036205450934986645900828528331868670208525928748939575729354239217895451211894560636079178945686833013465124207856301626558739755028256804240997563703218207664702327933210401680860957901813105794549119136725234626959854014969371118077301757203121460703200103696570572115497345952817272532262867940277758595064990919425585505971086514427763678582049292818679381356279439418124448591730194954885084061318265836851311188703320716757032392043334615247093250462868546552767537552187307488887791259178579242308865784520668123347306633863407187138308294467925354416476424930584857616865397626628495026156439253852110353814637831435921934950897720492177686550756079316901716366702999066932464184643249410792724662537749485077425338472368037058038902560873055458393527347283101986514610291737002609388928781175609964092874326194695469135134331800978124202062831888572247593846861114404323836792936056732994602381639251634700363428013934106352472019971386268792689572403065062697823917408497422778446610714513667649878132190627634286419694540451910547110752834266946012494624206170652774135765758283047477082857675717960121367231949936617303623384066626877575410173352727734305315179134452906829744504318361170697080583841343824363370744676467822727054044435084015326106003142968618790715225480840915194667776198550898726648698101970065010902263530556454801117199273065530840170642291188296753774672987147742169938644342016671991967888847677403143950364559977191858080387117130310502794199807949470295893661292620326906944967090646727897129357673239811484931989534334093527098284692579330497424955237146572908040757198182829017447183571858446655605545746747853787851988055691970647931299214069680782905317568967103008887363210819161184333229601341678625233503141480169794945972248623052066282578388357273979284044345292104200961991325314606537132651531458617222931285006920640634633498917540318035386118562128518508915367899623510327261984302825597901336907869731680458123859548637515891644664576154541142876722800982693427338721012244917087834385080551041219244754984631449469006127471246207721031435506604803469582637615366355483229175016090784432890346246449925190564620036414203141655735978881806962444328321012362718575784725292903902526458078654633702273492343776902563054485943023027460633748725355046305640131589975874112434655211810667124065896055420072852727110449901464479701005693528789657577686195289181202815601239870001162089534534492677223793775742183811903217717070829301503654065547981644691791962166620957435218991996423034852118323832045838502211451002650078294392476360088800020948966785139417782687815758624632118068071192334735542172648619349625736742568240502509115388839220588407799426774821074978640136902435560973404188337767133749459714154769881339632155996015756031152549408815065343812249903115538577162399883883318510733374743693290611297493273013396997941507686387571712197988078680369690890611380692928862375695364319404753583106689210058815861960731006137351633844740182306954384259130661187104005564494590716666333250828927042925308145939754412090131285482716552139201100035083054523201026937584586244142475987167184770399980677168221675314328256486968830529441503202418026245372249904547160878860148083807059789127223336582224245724398807773761559830667387175767209355807821735579282774654565295274409278196218709655321267560762116230309306850167034716864298919634212466698635998366738496043312866029692254147300171101532723265367639974903263083896057859898522452621296171391810178529483127722981398090358264567184853124379001647543570501050390870489611840457475030772728716446528933817395785332361951630742042536843870041536511969176400953886364897219648126833910045057194143945962926723614604414862930858799237603379676804760068773030666261560063523216350433567609823189591334478541541145920986276139003726010126969631273095855997704422005947301362518602449092530374348112721874387981199451313813843839011125707336506714326786742603283816806974539252342528790042821009433895114828206003655572112559617540763978157236999274391914561543700699550785224159552411415995573831858973030252507059434933499264197298797535946647019877969139075376707381599000768726158904735688854138605937343683936980559648285895417497604127267917927221743096305290840950982357505721800275036777698226311197647262057572318786634465706360178573324693654846316279503415621822470133844937661573840745403070300732584059136339860536616737005385492746154757821102073911529825119341846340953108647351098509775529416730362411826549854003376638614606212315201522314053814151302585025877117310101077357219765925430276818001940997826722700230458325937004249183499898838675450407644497800137180507982033422204078971867487428133688229007078842208253105694760288355648310305667145503315816828274003566568308234175133392690793763313788984767093531747548959752984748145039236904217372939734784717920399083531084273036868901634617971202355833079739841322187224129341308792423495332444291714740590068821089953783675420725281532292427153377444349883610033335964201738037109230603133793231575045289091505178419564077271201447335068369156570509656677199769716142324839217644752921642369891107951911310257707888115985358730319087982250889193788576136298763896170311870791167599151383440229082953290093044089514490861542312607486468795010513163040773976490343863537367160664096536003678264734944105740426090597497828093375247046510130143240329614709196911054308525833843441189403272752600041398757281691008685249649106406589491635632292839480877649399440795858614236872994641376467367943636006401873514957196988440192124982983861118977755225946112672035721990628415075970890667268806965513986503723086593854292118271894353686142714809067684092241091456236855443032540825016241483527231923507053248255872551307541723882015285075244725291051245322531216972268847451471162392111719911968383279770269907764177004421130094847071160787193029715346295822174201975040528263484782892229663630386080453776142489269474592659557662916185606058588491793438143994000406056677078672135090454480192677048249539369291618299407596403726193493167452196302828914946385251914227863478982238034660872625129788143068469326663910276219749922694214840011434328346509147783253245260273440467203391328845512911425316680463829164003295610482816662647185445458287786786387710469447886293521860923316392016674400361819368235115919335933402118278295281502392350823811306852234730538924487215626617692035794981664269952400333568979741231859667171314079129998686786697121029400338231788202947413601641124968613211446731202207146744617729028353964408223672851382154641291217513677046615641888900976000185746727564603145379377680231587295512490888564820094698644526010254210119384934445107753013528451131670829254380198160622614348478988322272398613563159264515141407404009664561525832145553660710553677823962312597625222646154799440457620331009381617753501260781384311638015106009675059121174073725941913045108039950847977839107988205558068160543044135928970455667310947499897775884987834376540647634311262569942198611007397515174168071439886583201386017374764493447712539625544593842402862537832162941672458106446896053334162505773796498696988695247115250493993494602739337232442237537260043409270014018932790829395169029077544560755736768548048393649865821638084265787040973685450499015416707884227697746891320485719680710633438463332567826096075758601854905048623417736296965608575767614691207060414889731626380030005932949027873930903305010498783213504343475094697880340206774060929725109816325658381594596190404291963082987880949455952672280106686771207340192913557063975152823323936894476430506496821449008420744310281549359669375629363736832563690766175688403916022130431863037640814684170467550761448937068268810887864896592379241704288374675899932072952251174310495245430057308446628266696362023026387624257543823610693528760115260339502278268254588586967929298603181833598937233048257156661855012277110984079132819876327039381008039707065577256049155456425982383882084839391888549353206977345510119320683283260887136337731257549484319127089677584492785635124160538085568977673845845893727005504008407311899213589410857213642644783594647983485947711635693214472123952081856804095439864259156980561927737260092021940502984355817127347740526072621828139887792730219048661875495592699361316211484377850413639199480268986788908045436020718775268187313089520765378537032705616088488220421315455967463127761532291715377746049235716182160344607022330362419822712631966360853764058952817953355671302757767050861326396182689182745706443604963475934667992883115783185331804683344957437253989472658351312606548217567619723389946101496054588928389075959996963859518428875516947107082433903575870652283355335701776911822870624017120008350821784592403237366458099664138663453227339013824772994704546739106008543885061659257716399145443872442926231164460623346937518833703942692004807056096452261776275826995009269516524943654557257533703539896131697696708040954997788520923665337195130393487012672724503678305679831423868093007543265016928595488556179014567546555790441930285113936682902574519310042109522637588681154873619343808153512565196537814519759119391403282243069097108639915329674254844258755695886806399267865626698810876077140029928957315500259184637854869760235968702757305458796059282888306977476591584816275672960750178256605155755316449333311869221817338119071960171577624143589255797687021297897523655383424703406543610932437908418036087700696173827673453217716659801455470556826242308357550902660468960427368862569528985228335900040223100147325844511772754275552069370983506059470818075959353028804932918318826389735990567895014194170740505998829143207671164382212468988061998031704398751320783279253585049412852112347582910016186667615908718492356702937717559723233937878378814186876305818742604398190243919093182934002085738178497893981544946129022701104322580137065606131993793013235555551989186227030566020183121819816627502923113433707383599039175889538606094341991329519188029476397875272784684510843748348593305231077113921170291994189419655969495464028984077674837168317376954693865015582660134894331485639410086826691263976307234951135624868853917531802222997649741906492141922430680762446224607096804285067936056647400391493196771645143203761610425474011194385598000719457796079617855585636436850374626989848026707336703844964466393611364298655695253114528827000562811780973571540771567972817974532867982789782578103187061279445012030434588846960010587132748436467260413271960024600515199101889411173431740416904330281007290447643167820257072965466864471759503919762091288494791795741715130795396098957982174376902148009025202482916538478567786774930310447032721843711486391551212027562344323769585319462615445152145401213418698384503862041989509809700638315589640890138135171744589411893988910472120356035938922417458957199150258857215371718305227866895666922589162758040709669783704107425442385745562923267551770327334790945525842786824647971728407672370169822366736347138603115171279563329975526462817607155283937339347176326154302207049004597108477690478453577677670613260515696701562168636498227811520783184756159608617012536765812853777390695937901265768155927985778595610249424384037769059481509752112443560717082897365566577278565885769540183979840908582058063018555254045236056696229798230290379551253885925236523622039729667644585034292218621806482125702661435913003823044806649789743690411228710437351954877825372266076146844298390887149782909445428365578048756311798411335769587339869405289105785749707198222997553872119093797197339882051938603223606885851111054871792893697869842189682717518143384901845089369835834690158625089194820427822953081208932622238733368855963998118727205529829283398252037097004851993373415421865827593606484224405589155144480157446303745021980146252865562971012132346626666052739734644696922234071705492983666247978677587470700287532621989299192454026316518137688572246560140096851135563470454082512807779756682416420473620307360287003527365104784110481365532944287375794842556319649762461933482500248611935977214562429974166711286217992459562095446701683098412719689675103950711441891268916839171717321591137678996697411371489477724931609660087506516207567217675259511209692021270130875607171236183940700151163856933777695564619921291533048566062718694222837330630988877474531334305150938840616425070350477881771494579065036451624424830773708998923019796490820468834743389302904568466567034607720971480083611975508816953618042653743171252433261205274378627152755211298720011787001712668456381511537000997277697435166784114658210958049045070025836916278715489089860274157417553396669416897360414885451031101717036619150477316627474198610945864187816162817829035256846041830108005799356252518484529141945862881736874647549298192062461583928157128052554365157837048533374277146236563388240967306841321768887356344973368465950862413697033053976265096820064043901598790848719677910351273960928502765630468140975723301687505705108020593054780627307128053368591228864804738731404944836249462670432037723312091695413720219279712930151649358637410193101996929147562872163296208036347278154265906848488638884180751185146342978700857557607728997635313167517041453515533063361567597726403101504321520781964891578390117782782760746441332375542089301429537250266550360265616420422809447654998561896446965434154421785695982921673135477740204016877776099750031534545494160799969574925796378201700969437613091538662592073407229276762079164385978598177427242550444575175541265281099719624714589700007408707499415498829549881141783529381803902898859632360935513437677888570843630682725997904132852403358577515194958405186233145714155243736681590001372357373348745614611881635366644989283572284968569279009555665287230588514271311726554063939417418161284297550094344445302649321829222663964660067892327625932736041068007962335833276107453991104503262075057473423827153424581463103160688903047325763960918803194533265382077692136935629653695153444225600116840913799635933853890371232987089666703161718567850636452931443020227731498087260650584499382821685605150405074024865566943558030511879530897484255653948926342007532922932306307953465175610276978633891806577574238427501986827756746827329043672067200161613511117928179543098759276776049833812453072336764741975027327158556997874151510954341059848175287588782364578596693467174285858106026641438412022447083773533765194961556148772684840947956739400622738928847212972607225150202821079583216710659916730215449232335706239170062128377536080728585695757511982293112738021829879208489721685534055665382529261533463765477206338686816339476981189075055878968430459880873686622977209017541086186361294172327380719842833811565779928596894733401601817893586727972834985645553904461536896376566443712079090584418279175505138210149625936397156392457807586466153684724092915065014030746783366231884732766784058273756875567857011511328818569193237457233255656317063813356478944056501743802749359732468917288893885460585193040463780771603395187312696833058349928352080575930645511669983975805611046525389764696658901202949335547676511270282727291578642981029506072501765201128473015091814816379168943324072181180777623626020410523131912879322333494387360342972092843989419515660950258594456890299868890225017747430449760037060940939736128678663944728431659267064818317229516925991029754234254867826445672691623564027039742375001641168256687273406323527530637504751290856756481524454480316100097285620463537111810346432245896153608063393427660741527705714149260004576032885564074650482531770671234610507695335095269554954627213208911130250816668027890411318394782430802965077821975391987562369421136221508239759399242467151658365491062467933153782426333578603279808405358095955952086142318385226890857269277563213617986544706925412174845585188639036637178828957455203561276366118100880646864689011203237217223835665326585482025964507406962499579253822641234477492291440125944798250518579631238052148882796051752751499222458393997553696755631350782471304789174008444649004170751823787381420531874523935453413368509064262026390588340126203493048030797998981832681848947780342409534635234854533033553128357452104598517719865808639123408121541622169810025745256722769024829619289015408812366053953270582584621106986015832011493751268506745948875014765923083704838672835275494444681619806510015051467148499550422867780921056796653680121220735044020658744560993271413826327356708642281109547422999801879513833519618710422344620960361426364046576955805867040189128498146333852038480858177571575575260553406357479729337099474046513047168374173099545754813201468013393521176306080250397040189207134954997279429603106903823907489055816137358528242625201702405066623744914763437197659287930869283631007750853763762536526297759085937850458631173573827693348958262053622306730265789372522388042251812983806055206418013610329640509859055663150431457958610855986323383892023704198826873086502404163533830230351699772836535673340029578561932807608337697100794838462123253296165818314154211366191191913346252324778683227002316989682450209747266729006038712803481861356691189787493831641648310393290027157330945878783387327134913434881790600471469305495869818229137089945372442495391085932292266035754451815568594022516672739608610796502736863363428775155034803128193147424495116993313017000202328508004052571474110768496176639989010997147325582708173344324957438024342276064545017677803501553758239030720028949543247638834329816708818230211367060399817679992209839875661050225777701367457463862220151748021493375352238542663619438117762798892237093651547330593544464825796953545650329608074585677318866999196923118635317947131835997310888194627896911526794045186293797362687414620960016469131951922611108759281494336991052226167894945229017102272509418299238798696370717687511193680845413644112720231803098216615069558010944177842277484525751932706071611161892149966475545727337716914896445274265833761455762566312011087843062817318338357752760220099271564531641025750848133447282440379024255026545026576170865429446469395006439426952443429426318710019026554169427235366099387134060420114759016557668082869004241452695470297090645062577102274829631625605805586702126256134980624763153193361706334579437231204165543749751732469523191592649430665203658938427913066003250129696612637677513230097807516431301066913233407891074675082660419435735140771210875450271491324213579454653388869616186344081962851701861752077867321305440487521023627115560176817478244954328141785850694618877626761488235859065112803479429088577186634769846745146905947373441857169966781812556794452905562334314746965245813227989664739393255825388736326152621528905010732500509810438272000167050822318080963022323424564901538733230269909221786398731700790855773922685341792497368851497320704180379262177243428719747818870571620896386325559288319467379520263889272992147882927399122495185038639219915990922123544814749656448796153563811909027852743306336173743339112706277749143505963585667867879905695025340926505811862291803414931621659022872415218812906128413885158503721945224846556537027890208953348308349678837278948444758110310768882759789483026801192417234457457262102506864874835050219403946580762589943151878250889321022262197597632850497933410397557521245235519267568693624488087112901834924581016169509126918036278936298318353228803050615711827202041249652113526046465591216475848206339422113018461178662594793727855472659677253001334110414742292943230727332128148786666852122927134290023819517224360087280014855585642449920721331586156485068055699320081489083172523121056195524587212178674024512899905680764579334707639964816960638607635568038957856421463096575086182663101082468884534081127123748365180408841731882204007748896213989035114645497643672988488211852436872473081917660887703883664270582162147789679921305185274128182183299694930842682671819327183110807065339200752334099707004344347342796714684956470413273385019165230817567498327214604977024143661101195768624030773842851150444990939523033277599006224818730749365311008672166506219318173775700293838609334797423535138829970983405555728234394469516590220841420885138245838992352125279253649378563443385351482305981575569597018751888588552397165962309269368109988848436897298698515357578176296528373043246232309810192949455395810942539559906010339577533023916023071596110521675778848079432112964578256941731090700339540078192185557896393215365537830233982507474519403143544312369998355911799555925743242873026240737843256541535018201557373002728853704824687574719589540270671438349871272264263696994430538393584255701488878001764141628282950200250279925404098711318477765507754271050788120974559082217028368020595032200861309370414196587993405366489392263867849728185164915863485393298873301726880455593838171938758994500318211636068083635491584364451456438557174675830923184346263954484100951235815923065184189462023751524119387683135412992126566720958679429950221758758224461250725170663969474466204535489392634738301091668106935469547207999613549663322192543748942050357066525035846865052841504749193639556431085662602595689260203501145083992024446013476319587600803328978372188292267851599316141119211929894922224909271379337810440217888223226886264937334935912406583299506866437382931034004682220589176738994467952094636899495181820132923834562852391276587031251951314516528872101362029892838997224393664285409826434999819813855254765751733015955505478192334616199114296607197070352274858997999043998048521298305336783405013485297831349120690957543284497658192265024543212670978570820146003811282209919561114361695735469483268688978738182985222949723995752686285396186414861182765121993420484701197138386042470766410589742165577809751006774675016850982303025737035592831647112185512216795855451228436251183654351243775016333185577746629815295738053059549174033491770982232493385807310386861208289825220698260060717778348070598553698782807915417502902956486338992340081091983276009131481612740211864926595163293706949768958119449598926010445161192060828749688740703949888702433277754732810450985235026428318419107050935286837557230987536640874604084628112124704835786273038995382600640205640056060073531439622491724017194575279486985143115630219275160499344992401794356191820333889862682105805347313025739123001566234328737792996610217404088379058016173423512284722774644450347581139306115975711224777715863873520412597650044417636849217249656091464284635555922162541923993046126651705134717726064730533318168045037178430788916124488660024260581226427469001573125737513249432920587433103431414862676494324017686540352999917302708766368839862552977333274796903708861373652628878211751253614464388125255026820470160178431831042790478008287815609918338672791218601452820730655057027412390597277495807502189167252011870298734912773486842020346487575217262440693220402400317369132097048994916982652932437646680215671139830497969841177003958887536831346271329301627115408962267985706327838417750722217343471741815512828456219198228406036140723535925261404096148228111487861443503011401686678453390793669944288408729592218465317710877319207701587899365187683585109962548210159095122939415896273553618077597588355061474199422517759878321135478331549007250858839049103941085274608933929183964613855238047503215259592334852031222540717314181701839531672436613949189778472833323366546610938873459367408327800558054764202387208672932305995772782622422984975228727189267857324892374571216225917411522297627210568895502728279696266992671981544907959113363878897595252733910633693480622549509562069458334693559957187848724071513175538738478778727129491192144788901849964812214137509744369951949456445649331898981852682877310841705670315974022490569410306968707163402604308528793776775271660923710647981861089108562133419888966625897158123710151913879542538585793800749329093396883393808910870771271254023303134562345553001335125585330347680079374615084853892326135251763228507063667863300825850582345289488011716793791670617622516989510664423262608873270402889341012190827685806043851813226857086849800564822833787507888238425037762623112997834472237045908674134760855292744777916171631906697252852612409854560883714868688894481308335145931007371710317102751326719952735184278126159280296650660253953520059726397004026352316493381471681490627007696364648461144559978313891967170779673295124758201783429023511856310749659705656549178069535255563102489277038207698911041088028898044673830373754492010518478012347595063808081676332862051056615238266657178529834774817840237497692728495112934328801863384078346208058363701436796123000079140193794146627711048236448804275997409656026664108135577819388557019532419228024063142713430068055776864609227027306103563012016700930174752820906796985988766474785656100753085320633543504105207850243592775147703200105264380288335722502976159406014937861683128154165034604327303237971580279504722545994112291719424920706867765986974032921014071349799549468200062124915987611828989036562450861178729737718836960702597757138071530938625673783510030150192714089944998163250988812961991729744152378613274259912470165047741734769207804938182681526005857325151067806907048400076271568005109746384334915681241161026588228829849897252481809448984201422216703438289885610417638710726213142711052021038159666410780074418151830333901448549886092298747857244878493005019178638326918596287418282303130938447242639077524331564296088676575829220887461265373149630757502467059113083404050515303705996199090777220492904750191045778237267711158073570808128394311805706399007065509393574255025136326734249868308074272196169052596833454660407142257510410458362549865522134457832501744791980945549332436052523133192722718130198724352248341852938139501953065564294776965780759905794281415367981662212188574090431043596383177330492653411752863014605640190074819989125364187146029915756622871662196392982184910551644133253558776417766159150758781323549016507822895901080245191449779123334970910764465451175201181842936435985816557668970735686108165945380599669283152850293258767975496525397586061972712001304403647654317980317741310565444296146106056432762034478630177628442702184734466681547643651228560570108464837536844969223526111175730996122553485633238830585391896923887227206209572609593790573534952707065786585534486470863218611966598274481955736786107086302141186857308937417534640880791436528929084421272181163862606639966598551719215339105231013342421266397376220025347633728461622962951916567695941424554507740724722953528026109630462433633543821029545160816261197548131130719757030236761596535895485250950190256628099816876198285437061422826658855327096278555671400124775344214835786825657295018343757393954882395928726714493227710964434483883399510708742660076675806591166348296685003041310715196025309563878457963981848529228282486846389093787177286882562643393350475833560584078372125430904958515369386225464200563784535571754088727789518170059567855098025624801044824036584538156801238578510270941661011715654434184082312881289775533804780888730788059363496268178969037168685452792515176819934048299406679570881148500832055985579885289000258107005307235190105387930168663251897589221922463380689594111175667347485628075294505914396525460886951522377731675551011123876816536104657800067031101686866004283362181165258446286449381769021038437411067053623003000331424587954451152914368820807070435117371156483636081320611081999958519388772428510445796562096899115874292956969330908085374341561716273822384878607664839368134100824735508033121504402461018720826834135413103597816565361957303904058311066309125891054352447350493111859495459282483598914667053079480183913586841594783881158319454915005155908175131417254548216170223477973369080637591241386577237387308638689181014460536657425947840140361324932516337357570344121219594071914524968450712308719724472491131625320110330273661271354071930999780357352364302098882206283960810181879320405426696023319915625503598504972314137391013857551399568806369920332840978288440119038736212503124097866976443497258318711596604871420390610028123802772123667305783154158814479827933429728390782718405706216095214218971936131913064139323878727261560990065714136831838401283721247990030703294683458362961264237385740271304885835250719022859367915144273570255115726156753250592959672627124851478857781898288722287566243397387999863153293060382603833474469106720227225138364700833538119451636793495418995912002795544831028698843084337094087413141470445293766469888656126720471405341329770290418416868330818570455843848178326741778186439038536224262464957978257293108973385778494753550191381138030383224549134740351628348546878717657172807645915884425505018778562072773160526308794521479155273496674645638422127576023215675388799802994587904652568256281253626597276619545102809540743825175277709548196083776336382611717647341813779658712604333503126371319727274412800070278940184584430831517294608635604771005050784005984669722038591569779191112962006774860653288398132591069545279610722592169843772228721442779870290463061544088473408324459123205348870800137663350011028526964321473526211053983354816407587885875901676773314111989410802806204791740186063521607574437601628769971482646608162111512597019751078430592780664519493927164329313931228850653935666960721002959596893076085451515535630649240531255220570991301575979869203354141201532721612067142981418170809795437052802642580014717073061921169728431705020568043085354783718061018722757339860606306175076466393199627360859467647952150716965466768634750121008952032782580491114550406414790186285004388889756330714797414607240947268387525618253481691022734897844667865854644232990074605224877897195509260203200328605866508328444109818598508272233349792786585232166812902360096224550304702905308191589755600128113421939437226398062782392425251443026160280975479215094351056511644528409335915660279863759994782148087040099584739115369415283108238376311739120168248390515402159988230352861134221750371166634699365176206914930374508151334545649912960515818091035663824601206205705902045447384182798296032141647370043068578910221967666638510383242094670766849307630022243030248777631917469197348334539134573241567006363910561558717605504260275127956572807081149610005995598311283020230131947282400761278703153836702267326455846776333115672934460806308694573485668533847028813746241318556801891541096798313037870340025849593926438924079871028867515823514561751188037062420173659687573207742986735715715079298082413851467087064158829251180771879251410611283934885027529918864095473376286355524426413975240611442019504373432255295975571852559295599450150057083775250926921406923469703234619489305833607207665939481228546822914299299808141698998166158995103839783169974790837080666138025394671732471735446186033431267622752441413029577975289875837561298018345011366748740375003025676037786466004596934155512846773412387186316157238826120833405234792457316251404065118743062507468204821626269765369005628979267591474553249956836151796119452443706222087646048978378558266440945856569215649032256750760627805469885444241783694539285680708786421272145007153924402442882248068826978253429467928438503731224373485569794269399370807722321470764407923035029978939195615976991236465160556754575902220463358319071939072863579897937960167483816432168049508025329627640294467956348395714931432400724966081198170747502759736236884004019936179027833500154330190132737561651010135244635450407154198148366813428507269002179299335405891843280777640398975618415854248998475063295109587194668052228168586484524578593680440102522132068755300124056290843470155358131420070774783241158221169982368787892482036752957433453348783951951332565096760113435729060923212418980237874902332008837359339886715324238157622321768880917618511741423234511185119819589511885202374230464399836708527249353250078337832795593085568679549972272255150919460779916825163996437979815842834365507453607202246132990314931809875549135653564047826604021654647951679911332286244917647061589852745909781914193853485936278830980482288089376896257607305442058411503663650018274407999187284188314255487976554829828560151892523940874256764817876759259599135449801458190662116142448673221522336298028581546985516249239693499273175422621334687569419431228284754966399487789347389908031390025879230396555198428158377088241736150982936042661719101244876580223818046170743204382867105077332332891831355587361528860276332255609396307737965822137750088752534687393864422240929235365780549264242206770954307754696760303509441594698395268715012814134301757891540108820490573759151621225216652962177467329016530733338842858099814064212867665581081129357317571502250373294267588004187350919278118144980103557517560850376552188432997208270467341619641745128809053644677575079005090354410295919623443967995027876251694827186454181474000765544213603849718703963059697609082470478238347513438843139480288325361362219649843330068440417678216668956279240244880306790255124851696615580986280056326173221723710774151707510170829643257382455268708253762151709409080065406702554348597528512624820380742511846305658740983949020574026601449320079249659035285282464722824972508055063805210750728085104694052001540945667239652042590452243987339577449675113019007131810212581039261447511554311884662707760849323708822585484550859659930828252126831317426752837492324296249171287686895709557691081610311672976863959141577629820080718641741667997636037144900393617873003619098316949817451998751212008712616820482879350228401984334584870112394275150283410119908076986349574970426662008226102694762236278842470928406319857687928072754288815558563416712111744704763158454257663103375765523035574717494845918719249614505453811476400380730743526210448530097488779319544095388654722205583723505125157011086755779980338577682277285923587307614295174025738952785733396657102139641548592598564213677523314816771290121670867786874814492464123629041647773833663843261631715350682422842684465338311840109075963270337575399903877765032113471032422597541791917174885117322089491612866153651601499726956188211428112132598650231185220282623297940120939370524144464992598620532468034413666716543384405437619535686191507027119647389021725825968986680383344033025755847129069914405679487105501376956138947883031047968252284799571905276760907817518804533200709790686555900187756597089306341419293046394821428154484520562948901751344494079733521324607653695285265488469201945128305994280553082106918421784662432016447061517119376949855325912870806531203732449899466853590655937190053519790312868246418348688287402575814621723417588558106312629771669969595222683479900539026870817379137746664939289783247668009206233180421628198249791958808429076407431933211238753924209914759139019477747419046944211405351233709920665776457150683912714142461711990388625804852562754134858084336299420739393606849924556670098609438912743396258075749964796810460415103582538400813114688380690318363894854738267630304731516288518418801231978458609107605270806526749363595365049456609330646576017888603784288829132422485741486926661218339484118162773225918855657026331251382169292620399009958711823526586638325771555936878107328744551837876453398600734229169975087724709330092156591197786695415382770154251150462395027095618465933451253692715548831098183529129964684223670987528815537487524284069423172855494437339946475013087895982715485068182186097966838126705670766238750717923162948878175223056811742602476470299196732269134612868449416180610554920956447732690019124212090134605847990669442004477725356898762966160008518190301620170046898608123724037625290597740546787924166867798525099197721616213163365238087257873564614337633453629505148806448810729100610767661022192113756037462732759273516964079440399945176735299960718822323936274949103533882799672256926034709393348887975728079723603316949782753617945701679758266998705517345103980296571366759942677086424132825815142519003615357947622545356989435807929607909548946020175640872732340184846654478350530825646196354314055057290213902292691965224263771133256018401746184058743177380867497690706006902290022855770885651266832492998133744692788435743645383639919888084567425279618859901911099498152083824351549219680321161020645435882182477666926558447473280545864629593949537195151510116363020051733105267398653852234104357401188098652408105184089585082577905816238361148059996541402213366978886837201738326965237231645925477395869673398603328116458214731297792313293941014792096980410294470383990664228028513967811622756756913124701169532639886763180714226027116603240870066174943223087804975443122426676120045831947309699554441313682341903708821722965971914812414881478485468182633320786844247846694491342361796826593067454335957158106026241470096198038888704426769384489906937330698506963875974229687543965513785635894669525761118460583935496428795180975106175356539414096112657409317940547271776717180452020650326164123424632135420748223116750231582014332315549235149420723352665425554422560533002086681510967506576116194158792120078393891653044934759133476679954086859744688746733662279084148450856396926480022006109819315781276157998441601902174595356915859500588047611576626693814513546273764767028058475875856078915018602182511119663460335487021181645732773574861874785614143502870726535449135855967370806713904989703082160053227285294673062790510587689607134049205147387256635973212468961870288386578414895614221087039778990877323566621312995566251255217260367320297714873344292888066779909613912207775239797928134821502835802709689044083100192663960075646567561689520639576683017778729082441985348042539082711237749090135903457619979796045504674573503934320630048263653751444872013285390704962272860810028281193226065296165246008913653360092259039980911108477995431228096000295554207546672769449868248337006429258657826362674631895428790525026661892173978615124843395411974280255338712398772536370834969648966385469947079742535159631611974317000882594415454012606118556974728484512332866514144947965506728364929522545564552106310867413274723493268342177888928164619444160749005438116710165512276570600893447025403468298952613684375313135411539666213587236214550627410079461267993909137141318431703128224083200018868797453425674056348643270426118129347916265977494595516358162386726771879827000590192820448613555888414722699782294437173065410959502855921158245272694706184979612471117440993678503551710927378379257913427958832144441597982184071090991385102835396467424858336795509357889119598718228736914942045854721199946991805209239854517182721775830652362436905974490095879507964760480912754844703140082115473190947144685814083189430003099821526166884036050084605233101956624825652444190853447552353688290392836678846765643363183491642553210553423496905658714312986088513953005114101306655541576036600122188038045548478560911779849961740708700268430963228592278624410778906615772549060744356503250441832888400951746675326235092616453648735380647743389982502445498556395912720668878778540260548335154046210209228047052533778172395493192518279050036728620857434274361832108342663441150876681974920671742675685718029329965295898833730844016778662037674386184592051597236155727674855445458855801253734931116321015657502740764795914857891435983669251212958085889932354714114550915386476596615880034150793313861097991319830147952138115022252899003603079608482450541113610578703818687510177472749164942306407655991114074530284750964738952898664118627932896384367747702013654313464126522973437630491708831952506390540961327604616360759113066781761949138570698791299538619748772442229355331980032757077344801634905239773304506658499257645406173566454410782846490978005547082081400413508979329560063997330944290725480265161634413467244670333596836929838042781637620951252013233280493502123090810687252433687724475579530417363754805426853702767734078082570962660702960132677240924112162044945764003433189784066612001558953868938085092009427168246566459710613169982768037716307716306981833085173575470562584682856966414453243541158613574640679681551988194240008333978766757806269229266865285643404156208330405979797176114699410841312968339206289193192814696565924525047784912564505518778249823664399847257189290727873172754215373057956334461318370433105227917648003117751788679929261833544154258913699969936699183104134414681992189893673606457187120269882318013196570193600818091765219746297575882931548083077736769689155712194062328905788739352223592591463354948602584551928108995687528009506987752913025590930393695359379624713080385758883562321487523214396704470008581663876991496071426738203788815312114773357640377804379728718106114978652426708903380193772607947652217625475962890457831248266575673076097168814048407324741731861200300887017223298155862388949926643608625341431447355433904204461118806873238304247401704834964325303601636773509511030388187114541945133864314640806380902853174927104706270186973078023490714858426580532283326976171539098104960977717024590331979436698652391533043686570384699320122885120971607270201833529946666911939527534720515721861134136739729928768042010813098252896293735062137800518108854955070985575535469079546954037807117458851194104014371884507539865150253423279893629104332353383957927265802779467996844225944382548749028185569899376686365039707023708547619029841079212722660610528196896697406698434069763975737010513775489318661714857027478833820330405878727102553316074281690066786127590082914835710065823853815333163634604865035626774575459096323407854191299910623614967582186192813462210345844705176880476079048965937479704100112340233720092726124712620693060039517669186009308888345384906986843713996646335676230977113933833853738353947853200581783233174916378883482042722572374453660404951610149534916740133831997054022885737746351781546430816165412432554634130237961061056694054927360825134845680698446097023596642473616307605625155373403588713188139989287961364471287301462006253319844560916821698160069908065072276458354010146605240794091786363384836963002720013751602627676468920993603154959365575666054493178068223670935779037814889761393455233056516965860718491751503845349918888245201034608753657742794359523581643450420911696016622183025626115557117679811279529789582896125284929773390912883422878139118976062466136127697239144841018450845522739904808157685409009797462665823964515629612346148068638116940801295491568397367307551644949175754178748097524515291673221297143606417595041760550516604250828750681907418420860327821917522589596856257627777287442619985690712555797654491892731811855341361568058068524618933814120173403670624610251735203739328339684708784063139622812953197295371175374677410899715179831860053426959786078077031920349344702113449425582752072545012025042037196828645256761001183920486712761075225961697727683984931985587663986814440144610076346161392200397292555225843310126559628129072430981351503304991195785247100973061305164683489224207740537478668941554611595833858216750235704264863607290388305199652969460253543274090789153888415849753221034095188311823466385548164732363678081699906433731235498529180864183503934371498967824356138099378789650742546690413136971175837194889326516439338309360243645291976155356003076925474380485368523241791561393090945134065685627455470830584793691098258652554725795419155107116666524178576223690731587243072604591123599025268184080676199655087916751329156775672524683539177876835501306866095113770138940382965847803460998806506905823558871172159122981493369716471280772933989914753401463829135988299141526055652591509676494974201408755484883560971051116333786896662417275039565723015873954718847317942330181237602807618450472599968180409099708783100800486794032354192188443206241570163974596233903787869983997835977442734733351612411145829453693597077760175423228062058318928291552886084548811054696704768312834283892847928902043088224105707808734501015693961934686452409265849367964563318085676423152517899554932888981907105876316963179906822191516066149445040376308060400162623448464456500101032859574589286245544998497734757880571789002864716891011252565819497996196576375600234615362259700274474424925624108245514866600673141762691303732362962159461947152465513879923072515212282671426243304823815747034512405443589230486931730358190366200618283212284099373362961874913626167516629583130308434278364427916326399861884597835390986096316999193420573119410576825463006560281566874276060513987575041747411499867728794531017605861175788204869351611246938131975669302267072581874062912901693720685939618627858558878358771305721806520421322667552300867160270040113381081871636672723265755719057799193989357104311103185964007460063847077805668474959222253010603469834680145756654761780887966691035187949468577867297120683149847707651776289620621339982403113915086948797266436796436607406766842470498617013754810984626870439270866026509348516466705922566580645295905603621565305031622079833952086579141071946288847697800212596977252163330336194452444155733692928732942159770781676302870944075726316025711116334095838385683867919389855410285891376119768735564714883632227913303978977058361741988134629985341959575083332281148538592923332549818687070591425207797397534547111583632964408784712978511032577931808749323154636665781894984985997033117639667832098042115791157342120479952928077355589346093415734606899140545312302023202719088111576866024296005624974042316296943382175603601500170537503590450563692877807205599376358208957833774265915023908637836441898741274720171874054804343555263852910180268903492530567851131615751737275658050155109707573594695214717764426130772294524848131232456141667473524341996541717369982881645067222148166924637792387682538985277269563166405377172323624795035896923872178536465419963932055517985205075784638114577111440235698162778610947578423955635198946740445054728712565081204500713711613316122485381380552121572162324446672382914270632691507149844453067631156265142116322404661922784446948375350173048647796797863232165581541659252822799688564966803214265097525168178201352230571915667229755475394008159550622673558068764662584148644678689413682006675684387365493895192086370900134668640696996412913904984426009995042564935025820885008641413330553518325282445545525109853693998678147185980710542779187681480727883511216672478813769390452968378261492103224158174481783828743110166502387841876805067228500438012377445230128383394204084416641861933486341972483291346163321287383013657019634326202101953093494735100990019346134853523796361541124959592511942840385461950003281700564906798771706910084174402900538316412965212225717951005149022792638672759793798746297011700285267963986828735194254042042359469853338855078528062357419425702100080435082211837938913035719046206358321281787410354535351390708534498981479249399799499843412226833402238468770863756817531111560085112789683948370643996095959700784350185688725793532665235897119328108775921160033449664863531660962938057778814966083128861853379812454500166017718597805776135294007360062063139872433252328131340131576370230555262965503196377092235890363193604113471142749090551003301483151988616069677135464335924967756075649642692797230747872918145010261707130047326964125940789071982797985269362141827859217467541347514385621019827857413029136889611439554182283732035757135624343273254318246656074078313977768785193883379022777762351708389084996312174644720583295617991926006413817839551408810399991137030139514720654462082857866905365290613814176751480161630098181980762691399761971838608860077787667010487068555284848596568564553499748054671037049151680601707957934527034804981299820790329842545390840541914843986666284664709612459571286081805417869256985511250985236519646513886974711300606083015376150020747784437123525033781435179152869644444292374528687647636555014012764347654913683964371865244681020334177821129927330444247482043022008529749403983283613543547685896883736672795284160668490932353625910414241984528944140345592581675885206839046119336517587929661852816056409788853642068194207011344618778031791832687016000699217462498520189502254512491440432139692619324194107007150467204388387872491904388383503218268212941683426536566539334936130983505755182478182443221508198049143323480422765764526267095022240654057360348360885950095474974788499054985121341358198003198047951240637234528425704435338602792400757887057939004562104543028202155356781349042925282148621189576293419091789368532445330472526608075191293125968546084597806715895190439876185462646073443114908440268043885264835251523047068095825508660244684178272923119076655817810014292708070045228579970171705040426656117383679576897674292791640763893299640189338281513190620331617716593870524308206120212908840920178972973262529754424117937552991274770422225549407908959306875326553805895387447451955605345303756571813901855212376477457905236102870989542248278016311870080215022129588936496472321532962222552767205677875597055993992841486711644773583414055356376975286645885980626224352254487724021138422707922083842559538477479980679264220923537571405424719648140237186243038109274648728649442849758568861286525005377598979715281862655894174549778876552196619211356143145054682346396667614314030496044450663049554476569159693758715675542794048609127750900499041540038682008863588198483002473005306949224953718674259771715905862201734358088964153643441966059659114057215934594156012609127729776452894465045960297642294870277623293771781293664021395647374361812766256133762131894578231572046136558569763701394722532615041011986872587002441311855937101889658396803975777681507101166743982253301854877395017113897776001644352392019526102655529285009603932784454671209583448374646750522089274149823711311829152135901532222586116663717455631350656279019268438502919164003106005979139650009533032174017863868021579779141474989196168050355945107267051877143092221736979314045915321285924405752083848728186469743765044805183488536173958333558609214207523908931186852235726890228460554198918356148156154678028315221450414650109300842914686471576696176089403038364144074442281069220059571846777374954239978931000636603768109262880646940437300854045418331742283700378109265672540951931952132987245612426208277581943916875793757149959600242092334019079531008632273663404369882776905302442706185995479689583022901752228277806497159114474641894269267422042179699696947127605125792605833283874176609839462918593462478826152162166189363184255936949746457788694264544419436593641947957097992377605586246731022641717463550748755658408532796176102067750472494774749250895289501138770770436487853081852564946834700533865108747312011434365858272016903948318962661903458516546566859707790113606999045907475968100235958521910385769610224254020926718265442807801631205916943114731340968319374292366851832976335864641408266044085639436638507545828756602611743634628485066108777585601621193623551440577117471522864053738606906125351935522598635209686548796479349643308895603723298706402883601681186647783419261122806385511374135653764005433312017235592255893844928997013872024140536777518527936918523575319416226879722970160449589341926798435211266900444360412678157007911348585156343702569780040025331471497710628941906024557626312022136200687672674026914420949837144981022978933629737820293115418356865807507517213152043756617028847069077068287190214182989268502531173633676523255890091177618700180103422245522154497758994270950571782804107369791417877538730277359439245257556885536439568980274157217218170394279875332902226199244329599502820261846189054270693011964880590781188641128151302184512387381680697585954232842174733235123476877058716240134719922944100456477629090673081937365248319230324003408041032918826118786737242280441387073145305634746886625791379378255140657855261849590782734014855705742485523869624504295078367256244078210055894120583006692492134648055917248032607456688026259714938398723196276122545884536509757361120056968700636677942648369616239309173887030340699025230124461875588818353667753215406635608213440207286793488262396447287190212386190962811283041091682307593654987334181936642813000475162737719619608138838749641848909661372521563394986359323333070342121251565699279624579219632482640750176589814410121550898585162762156612939014821498759968483619367310660532515208847900803289279695226527549406380043416615679765075794833773676089008592538122070652719208272245645443994104578524982015569879284810950140824999566086894188693778709967536226038793346170487563120073376750524012093776647094088129424634321658062037426317396202338941956028993846908623741127979693936295020437422884563837601542215924184749359206622260687496621184958658153130465613443096023626934392071358923689826029332830466874839722448537619945994586287299228312923000635748040663831630370862761465779929089516842290623666961126325292419534663453762184820184062773062753555953685189491819683406632638156536653280373314138896462592221271687698004492170704969581027412829061991193008655657283378935650683898722641651910374002464526268030647043511396445673130529896084370228392659057231512451900632563389421753213236187951090238003401310459151661366974056229978732333123389618267661873282060581119842988606480411179335907472337424016684315024273800071003107112739757314668903968144309663196728379895149274146141013110368840488852130504016004380377691914715488176611278152126410988798435767961463245546482728664768983316950173919016270644535005639731072637154732818305559088612553443310126140956568562416524825754817653516054434631389757605790885503016339066635949571553730478047569744060919556210139250433398770020120567375039873117785628370056898791443467689886086980316211169940764805601804832960361673846706145791959343132628927024224633695845102794037656797304682460724404527912773303462420261183659645806077772126038134310203696506218399525243434559936263008488991712067140140016822295546462809440422536620942370951027421217707710509155219060992392912628685132244379272690944975766412833329346036949846322047320397292549918207648048899506553841050969090896021129136090158458416164078014934356111141809381204272998143654494420803687668927653108520739999163503669233165503477786767768172336278141304517378795436130307360415092009651532396201370894086797025278925864141199234108065337594399824449455161425579340748724801846028801153957447216744539943921442015597786220213076308584631230064239412325282905262055767486724687420547760071967856556707954982616725782397930872862949104970310403473337473849520878794484689790842315469074618920035459474093511647774250118070175040803807365001814433040503981611331316647181311490833436152377323946798367163148326337803704941803386868420217707007422063172429479355131304853498686153894483867573446123639970539024866855659293974220278223061706698569451651715680839001407379315607955558249299781157136189135401629827245406172744682324429272106364072560206279528817853094600355282880369699189949532742106222810869977090040303954701177647191115520729953715804168716177934949801225758253745594446872593613344366571646504914847089830087752540302043104627061991366922163194392520337847304481136489295788115594433000601791265464557782579932563757314984341918500342007100268096112960895519852898052286695188048057376411227228709500877950048112332215102176880332974666898129259155105954452594344852441789344567620514965946685382593310887806507364571737319764414374694154108148347788663143205907384792145274368299084225850197342367933027155341107029035185815040089881526504538887503524361045854555949454541511284032845223250897348455213027812081782095282898296678005783975278902124898880732626770289589615998305626220340444068263011374543197193084108273161267938916621415062514832637595166306537638566259230504819632872266921720874645871968977622244470752306493864949934460377484915314014440178801994407969050794544998437634331774095800351175161046356929297428373114569743517963644143742999478666962162082764480641814063783448579504908884633177148009417756086317075261544437477958969123679955145836791005730961526708199445225462313315104997440415986869923087987186436028818941136734377673102173935848587751082421157990382366384811626037395059357485658163925456306613944828791664659868358653429474921533907048842103924008256243319594610920888571568224499553801469780328621406167580937110795059433558322355706293325814317727438516156360525335705050678118407037464946112322892426411550707907971191819871164312631929967425924196870967270713638074260576333156389331299150381888382285228280416428917159248389315698174579124067197133589918761911685601316852416932469558734117907752278853198699496875330096197284590846248382176872726133992112958064023702997612414685604500405440749522231579740917061577556699060088729844714073056963930731149755863691999868986497605792062067075261708567870777736202911060632005443800554194445585288399548800279834156240861970455106479535486952833619617855996448758837305568302970384096195452910806803720580383431874503541675949025561592667014797989816498116020982620424137466807915084064664267480607473127995882406332554936505848949888811144870993660593816214831052547213795408212988713793211835173306581479094620064990225681624575590439396760690030577561851836120549231151681218078725237169789716240083292370800199996861300804724823553442518553370316048290328609082658263594738386619468192934463661171185041554732664909164161959649290704534614884835734093266308571976119089033847570768628159637930384650772943886979794134459670453003908276464693183845479252918545234295517697644991574162094562700196635851015470063461606664241891831554981088551578351629043485166866723863506242201415460701728036885650045366705371249463854540865890653541058403965006441369221341599254867426358479067532559319815058157932619052048091846442897404403423191037729569344349104189685105610611379789793775969498994019478657749683379329404413196389348243025516358906989388468119244299780795933911393724605725348334930034798370753044993547447061798199014817148900539151797852643464515364495421013720725559707202603788966535733066736219836515405555903260514933670574250725382579932719029583468098927964101395833069987029808836229427473851364545745755774492312325235459957463803321287011718819666390318960736732888784191481662332326495658152778435357051973981270560449840577888606557906183258547882091147992369256946079443527373170807603876876236787450720002429772686273468753469619190152828664961229916964399676822111487444240225947519747228070687718160058299525435360207692682698008824063265105816447587919619825915468706465246881537833816564930387323218910422139210805390753020661946849515600112058251871796812490637333817143618895685627226901249107680261613645456510467012768397555586830555668232982734467737971605411595404345392614725547433107424986487826224630330377586421541135870489348222545583459230591334367731153982674088582415508792188944675062294602615206807007793904738123687105785836084336727738260303080920506629025623570950197208454541655482811506458960100800542485332518192264639935149303987506423643496891375313207647806465848291803894993453604877168820404091115912946872569686678205430003974142278027748511755609227711356678310829510033288041517180773959592672044628912427236743255441829733198984383134055805868430658339681282620710629682612063492436711398893624326241534188959716050398110857313604091898405043794954425624443533119512029647549858030013685048038561725342105570615635689732750698106651258022173902569549176986914429170968277737821135401478523248360974860665795948838625623575444734614367218115167103857382301122745225733335655527271289293106909290938938849269649985385245561802407401894872426787414642917814736554911137838943580857194442722789186742322072954271141883927834955209820643904100440696549183933446371589716172886742821541331479838721705345869826686397874708577845877719177710737294508790366462299950318997314392367470783232621041250921563591481304451443533661257652518891105492649445766294012702919817414712394997986972699295749142770399103155640884921345310755380237239965983317510478210620667732800813029828856559082140489307578225036901755166765256611328707140227809162615220518194304707476639434998961102068627652204883688173052334189786176715423260351961575526135321401290424079422394561570676072253156657403705785530774219575500236087342529653799519387178896530831839880066799327564525801142503209842761658924032961720400188839941931000184011967066904323236244632334769347574862432962127177559184459392304278759590459488303931214547517531367473186172498170759471873802161602915633521129669870930851698757045566754471553332067782667631913525500915430708874325151943887769949612601335471988318764822671933112629296936001569694713361934637464781300939375540655836604846884399777801396938661480865077269390564977920535955892579754279693045979983471233627105956511170494780179275711798528267695255755740029236951085808165513127630666334188442099321521582408089790357168427414466855550515883997352523334468506680040007567684846934075041771223492685629423363891327210924941451753982228687800116740616308111420764500903247043546169710299324993562503647347819545546593701155911233730527796508261009397955228691896588139570480877724208208341941309780769504282970207713240558576083822493628349912640700481128428590861448361680722934028325508703441890038168471504952794542159996073186217276615570229761526369546727760421909812762914343551456819342513803520541622527692792933288382876939766661845734069598125233633658935311291037517837818258324075108690175847661105981855127744686324862180345620841719757987585516286605643676092098092007186927598664159788315121272257743996147079730081954443101708793772740796261879172795378407172464061047776557633008618389532626480673676266548473867740518500767079411070817663270407882539670966093927503174835571331152482810963493104780384843729243328426343075239712438021593310683210566393012671081001277380513525026259077680200741763936036098059239707772659258632118090873603782366303021816629726821782516971503026458192921272208514422953854509239282844972574353643318790628269167529456699606437380911654484967899593567464892507215853952477381616891521078734772296530446508149057429443236795079461101772312004372354161428791840183121873619427340122569751028723493284933453896437008046645005334794348978692852111470944498703654964838674499700847254048679268915099139746581203631202017665492709410832235628767107508856436909312298499356641505930424341660691926866113242779033590491944109265775097404222184421024546857628557414755709627205280489857920413374289979710617287304256065040303246808090253180821216938670222704467603809907181674082981064702917013585915011040346072312312445592720380801598095498025714796542066720788456285119006784097080632084660209757572831395411617404362280622599847658021718523728719604225193996046699624952533135576613557952553471938221839983136198036057088819193301859100298592642059924627257063780658869095827054765660961059872178662908384518570409270168369380401111453592471398499524439087912367831258182829553391890633769822283053618976465820132422879076777294823598500375538852494165968664079590712720469603480321520604057561800320391648108557329838288722014851480116368768063297564243052892761970809481070894743522270105259746925031224020312817762035739982431930894255392907045992442716539716867002441019885540635132469936982287960729455785330035799608405318965468253930967765178509005655835851711442494833522870900975394807397407168991409843173072676117126076818633620828882214145492195115916364663718187766423665964579984635398716058463286475179693757104229604716365627501045582745519728605582183558551084708762035916509334559737055338148729206942508784112239280548505867033847609256038219448721927097224076020821265754301374218845098619527337237084345675059931767007140799274667110408491729631090808119558580098290902589405357004718698523549002102526415223484730355020589308781423084996358961546751364488078865120982863703621422961502947433720682603400013931530261795348560787899224509023684293536364041618542813786859607358369686843723239428353859392612925132554500981047556499930940363949239067244595901887532190907052949281792262148406764323781962821447588723050049734910148685443674242949549054318082432342241331913703236283737601051030166265078650533757859217347700777697555729177060385791953388931373265433248706116837319466185195958965165338793061388368554765710262727036515757510930956312590753501920324215144614487337113341816804033241298519387656007949192675437936006989035085740280401828658006847698097039228876724578090664291356658149404300744368101631198591561231243877959301020713369904941822326688859658463057719680568155188046468631117909949709001378449164301384721099350209783269603519759942310754257731602110741761740412717688091094115249453042170475744932324008065723671356014562138632051745878510854359722857291575630610210887115131996769610191861160915139349476619970890269084408605326588167883140245633753901932036431669591585162249046444000744331968440448052419588191418890768716920359248187986293618532490762932573815972447488904661191591645813838129835238415747832456686945131961421152035883193884633929230545565510383795651697928348361544447136289116756985378636139724883213436867519297993527480820696157670168678496856897987074396024767990171602712632257557171426457429742204854679614985179653990808731286800280187447567890594755879246390807983222143190765625891116385068142156261049721721988122352880932998516637466097504638623228267012705595383101359573888403508760894090672013898168691291599904311552588209511568862346118217199233288748724213481312445064188329146133216018361001905756055414853710775930227149848004682227827203143395832465000534427814981016232205814455453450180636672567633616790675743383592098466511697301250615682169880184606595141385326829304995254263727342916438155029820012766768681587414800006052144903752964301361401584895617881760939276343054963225095723689139770058386631142700614883927260448563604580602303410957683181927906556934798904538449960954873477936911476486167280339660520460029648665527038629580489473888308465212179976096722420665219308286956675145009636476321834600471419793345111198514022027523560335481439845695550012385095713290972685281030495058165776261992084749517853408380050258628780952106902809268721167367822945704443092725458513219262661382704932286204181084878805797749504738282494010149955116918724725351176137085202954260500551562363034229979383419373097061342007254642769293667287792413178073320157169247998396851985576228143029800455788250726676186351027822042923208390596172418863350102404926013071890092289100861644129807579973900572719518974834872682092370953311123179363061969124732375720182038666671405486709853999027872910160029961295451733866890358933882507993178733368481832798452760950251429959721755677861289580499313902497617374417350701614871407028971499623401802854388289258781353543235712310869195863615831543664169521816427667333909553817421938549920328806307247599685001934008365034011516492274800046422452983186886684091017368724731088962937541589510968467967637462101489676476416444140848723422814860690293243490561532840066003862453768142367478208528619088582421917133248683922580984294141978475246703614229203908346744914683054546429905845046228553637923118052880604831806335129361321614853224391329317596706471190271984518722129845916812037582993765568206776156891622340236381081269580050355662860691075730882809703281969836128716635447610002008603383836125255475810675576772449480845467937007064479546905160347719563852804586877385553489894408684896994292382234308138123613637010433554195108831028525115019430056432009326781356795407311946050352963925363813474950228561785052096570726035400096720273518760764526496170206053425589011414421996909134919425911201040812129576812672135437539579620842597170197722124793055510118198558628808388242340417605747618311884620142819660966094134429536970131293933069223758725048427258343638289159550658514045383873946540503687358099897818839944752831550675625206805547950873260895248828301996489606477014081816236317662328241336786653516584818667870676240264041661393179753989395206164832861264184924087942702780214302104829693675946826789263187858759419599614080806244481889893434206242948087427024941674988013810587275053522073818253773917020023291331689230516870525948796264887435582002704863806887783443419925125520011125125166990120083884524383966587813294722802957875798323013273318160348973810949627823923019862465573069365404590755386642481380691474771507577660134094271108119552288734046407010655590396691915842071692957956129637047564795062247269137473986639241317264951401614704749954593413944014909814155197303518875688448815661814550982631138456121683302805059298264023288528955922895988300306801855786233046183268997042706143204623209386029193000457063604037167150955241942881400601930218254560226138982830140099974181374883248287862571124740996527255069371797898550753469270283117855143671280597656489077485353403108297363359329669443916375854966077501621256061358572628275281079039348642668212981859029394904093359970680602531546594405117892090115408748400288222019940804348027746630791777560023316795851622134183909028938991669174436929792515292858461926735045617463740451473483676169769675027045109305000120029390660552814208901421769526058663599710899746968579465604046216503715931237109691613250872577875095324936761169468535615941487491857871433978540508150867750587619418070457189867803191840226113790291158255957161716476024915417346851050324406657973572919252198399658816905339137034045955377684712785280479649783351575885119389016331096538294236588005177256634142015933757513113414713912609168572064072035873491389887898005789504470810759075225991803281902320919273970483976484772521038914013476140323464787946409902946776531203965664800190091643803580154565176658216415323464178550517672157895819983300385195833404244773291082144358686980163987058003943243403308264529254810544406739751255565780635095876260599227191666901690250382775058671413755951939991749565641641283962351021407434291681059314255991452028913146897460763127507169061125854595052628895981997443434296747643581781782768579327603113331166734135680122448176447260254232783928719398067240270112841892948354178484442473600897158233264601064556150449612289376127055031924087622843944340691583391279057218463796254939840957324090345359649678530835797529861603346632650676331465050552019429303234526743656817719271609483286495598637027788772280343359903652219710996233529108498473095554947890715557361193099462707089668324848169034293991653922485839466697184715719317462573054574530847984051689587556520059903011417430696564929662970689975564417336721809259290786784847542865686258681892817683229665070802314831406191608222097274827828102962638601825775449842149152963876924226574257352946510471319590884177971412776004239545129979650368384947583142965051420386753322954712275789029749917287256637575855827485278973926778039381915558826624826972085292596019411657661170580388843049713047051414709694848188473755031435162639846996418341996968325946885136044449665737631096931820079386326400615672324794930697426284380109487168701527302670111344311624899951633423138840948328436833733949255753470329792175554369590303092343815865432183666106672043501142880457192136681296490682687942311769246051999187184161593318876005978595687220059157873469587604059001992991108039657257171428669628774767507044271733311272374540065636466914178880179122426480227535674601882339704729095647401204803645939583885377755729290802695477578485423188290183551033032866586305675983754260477757084550482831704279341825708366941448319392950562993693310797945502147732822987030317225261475048499650700238089938120215608911962306712885088938287301636034946465876142404261368201981858185129103604385470479150504456763810181396391920098124062810430503528339659532898981798132554752473205007347053862502678336533312399940021324627406008721915985876773224395667687178467794245797501950118312563487218693702967337891024789048404305041011219439889371036240507313904638030548739313085540033299888052710655819976145063364203436819664268353193598939733693249710124988027264789854463638274741274779841980568711693922193867788734533564186854557284045279912621201206874603185646330746737455292000204684253463511951597709972075041100423402248675876924789221730292275453628752410128887754539679341431885722696436889202909789257104091960549797159390133330996899796881121818949991834879089874591403088746660911583389089007868934972602861145270066141185669135029738257348538347703964141388577500779300355463927105463745878235281978714668049516930560766001017957673396348288113822187257939094221743184384086376526644664467310080901483620023674130377665328359647227094011162026150599554937617748540561493019618281468944410620676757480463626250568199365835092400232162407087655319895680600334030553049937841011436259836301998765318139699448983278160650984146329427799231914742308286915582625391283654289358135078976617739032683114201216893010097576132724527245805068149031173862128722654123547974458808902550285246392679392195607193811688331051122214456899156886530410999667134336541238192048715678271285168158310907559227238354629132062387802115429840961022680305660976441287861834155852169334202643469141484968856261106396511042815300193579047279264824040505272703751438299538281348593376870192792064178716093256788895564678055250016205036213467204124129454612318333863614709778743645082798578327651581758003126644351011009092520880267971292216826400021197495045284029162208294731040589823709155019784087798181045395099685078743377882340243903620067680650556554574629829433447236425086520954271379238811862006416172827660022833816813862947104171411043424812011063463339047298951154602391894029508686784128386934511772471262691078692949890492275238530080995278334577330431845456760544727071753561383912086636910730907942739511155040435690819593550713065106925533581866248212116488986372880883721451902093762880696878334848262047558286026492332024733470882977879229639802796731210681716650663170997364827403403614172908849482104229285771900119933230669422783068715539148013386864739211644238162795276226989703516226782783197772478830862341836175702057793388083755725412378575253159786135357859976207959359336702743968548826623391795867563597489904598094025873215951237695689405671158437973739627802049937220007515639788685969282384975723771933881905059184262412773741096876983315072158462666986686838640591924789750489501543882953319110990943686028033639724386877657896944049663009816301645643359217719392655214473320807019432435164337706231013424953903113507260294501912118125636990190062309010918542462316977382885457476611110486637789782975958041721421884006297805828528175980552673481040451341632180020605718769098544745404324870122463011307053452429877786741180693959352124190746757784133529212075470205557057364361129892344837156294081968779969342662410993868189090398253083482923916730367334835110969410385626234219759244839370898501144716196317325441788066429048586126227957958916675611280008207763958034507158894414504784902195904643152874939116696268937962960858787990008490314557084433666335527140576072746016010391031217310140741264221022101476951469353002346343999136045691575160782897565732723794245828667603286400006189622353829300919809490901032729912598539716250185170501375528962047666880809861441628012170477733703632747653108982681910009623801841845645718473209823988419392992088273019823377872653000247474016611156184133941070555495294819582808067755207771886428799334173014413549094462064698170493871635271860904035664026596223803943422632536790132367417859188942175181520938241222181678797553608369474028362271057777156917164291031312982059218231321735838060757179149406290164373043932927852593786982703315504549817236416364022136216313516480387487544489449000432003996024347806921237339294720042650094457968471294249129233219456348094975054622763378748160562286959961437769542109661901355717913636177998139293335363320319502714134994198465961289319816504024730861022399128582873792936693687491142342488722367839814934448822889241641681796547212233855953385567911671353927125326229498303654019773215210428351871447106424010447329041189232372882126404947444561627063053926419066174992714380522338810934782336943497447126455107227074685071288001443103689465446776891264103338582552353730756448634684845834874419536233887232451599028810337976252617922438233869955073196493792201868496480670213284356884818911545185019279915358145509578235046800980748663890434061295723161814047429094387285832074285590928161212560211577835983808150661849440725372913611853372808520312863762924315302332509844188425368302864563812055516000219614775392002815802450669687591114278480549052111685466510367242329515734613718052988849856313387803291262281015480248626060874578548569964731226344507614106002023672471193232380452786657826919334237873120517235375592205741017201069006997948981854990989107812430132023845575800548936302009377268958432144149391913138490534187380187038410580024851722272973944269201908532109640355196811702263903000891247807801862653415277404641531414933924936394071524066957617793644239656041846386127098813583170349555460315473308375029990001844786078552697416037450612850427467831031821911510521210422617798812960273291938854207298846572376332627415586029705819722980071090967581948340094139791907421192618340232534085014877475035973118650259134355803855924948579468146120630438093116487498227731605983955707496309912140620436289629414982315482507694064493210301791872425841955989225372941027827824319270340254552951511150583122942930181602654019300639500426981045734882672146124172619044272704297359190704532274676122546812506779242567503378099227714777261995795029357710916595040763734557077109481196735163331837594201662980119226785670022226182517970499936839303734090961651004040279133731332538465751817342056410535768489100186418188698536231347700124524318163029378374735895423265576232298128602887659917716309416205561939041828510416846678091465816057762369570965404247028291363342436960934948158851838459036189653553875065017546601846996734999863542872272867661861369696875674152431388158036539916423614415459287129564287573284300098516953795314941828405079100501010871293970862022714958061550014024547264381027423285978856913345036346053123496110281066679508858331571376091291901803025359896860832642275434266892411423531660327071504382690550961579237445967966489375838843461594052541575268859476431297821195124030672852360036558172891267713595962252977381446878586716005195963301118673004069752324981473780380330151246341839929421702878727427345678240233028028556030019491195342757657466403395256225815273605209102489578113900396271569890021509096657216024120443988387889703569208934531386861628976709091548910500995776021470596716413573860322350479684370572544348386806613778674872633661959153405926628364291418666791557289085513992339387880413137037543455718640660180438620275705791032544749426682127918424435263468848206856376696666500941892352226873536513200760335793912701855669641039047172716515595908421849354304270965790552654868251382364178864545638256038093207173078583239210616739339938589852566102122113662786593660693508389226063086853186644173566131898179419291731423996332778383244595859975236785152469858889450378819782904770351762053565679931809637758044485147943949737018438293047718584020403910433897185656610287334502251332650232234238177383500616861195359859456016269128587633195450861388210797842013466482936017140853469033397773465312433510132605690018758563909222395405816160083845571645787230261400786554687644752636830685384824914167027860723994573201045300072402050222772899038510669227569937078838645560092321864053711388002133164344795489827895016759547159016348898785098487782324207796193620263743282953457369891602769679967422907418227513240887818016502876863687468975956495664733021656465080343836953965474207942966490870347386576892108316779417148916239862712611690378314308116770025784678244858251542555311934747331076142769753517235530201393195582428915670182516026347887246932641739535298931080595503078568724672642883211403961731958164931021093697913211233210718420052088231790272811171766583200287088464491911837100855782965244389330659128364807113417633538050732381409402715299523067908477632252810381328776860281372604920920458767525608916602212974420250299668516220344087673717959205253301556281816581627623848220660868951723297027675919981503564934892127944453923739247488262780695986367671310720829314431739224293581434627430965691855093275690254903565108060708882381854273818917906159198564465122914951614543512472832014116978230258232562779054009844636293644011438776254604985499720575529507575802753242106693717549876047966624427524739431661802194655022660684445329314301522382564344080221465883526076026023955073837350704652240641472327693592374675815311323793845613764702151429972385195804327838339098831784041329468987750709965675558438215641402084301188272123554798157235481388644517964769920834811753594384811199108798909001803708368229283045758033870910989216772862107662537652383679114292292560848463210244660067928301519929618627768510969449049428201397928695236387149432674071969964891552695138455626062226613082793665764387083077863886295280766492638627333136949650180342271440707745828877421288936718637420151309500156719415777233072541494488572527407150470185309018914819357136039029548641268199045203008524555391472104328894633237453281168851196134764741867338967938279730230658429412381953495694715489007096867694979571311339751124592150610754592319678998774621854710384568260369460333098421805475248009318060163382150318757996430090692391490721487688947597723655273739460526863816073232463428059663941358069631626516516006012580417738234717346365484717038112770708101388627679264328648900316218637490017110265671067705393290509181532612013743706349076724540637995438154397697916620910019004346251560477347734913282548296725946891898134878623535217992341523049560556710947234163648880566187626692331991916220803772824962077499323208505141384553411476286749157570654395029148045471615393622140576704226566706114974499791164903601313856117061674443344338405604828049122383475325261097689885835813638819618613266750046199017970894156340218671624906421783349634167801663708195835852230362867331827611424998948471379970689879582767538069218364708429687599672907989533033302077822961486559571196844254387808487328203687896712801934295225618300110415689621242508794549297907171422642181119370409028780206856124147457193191731392929027009028588910744176208888285244659624313563815993459085326807679043786981731798935871358918743929222748555074686507728168375193643155904013653129895146423363817332841783696849400708778046135934022806138529424690820922785962870407283938270416422146503423372000641247690358509162623095360467155938652475502849476272861735622225556487341098269149592815378350704946259587595798440634113831338453822173567952111213295582993515004961791772393429092058382159488940087159327397414486386726421698874792964676321647635432572567496817593405883852620247958214575333760923383636337261303866270049846414592150658364202625930798434138179804903468761111564198277666647329786513199428633731604977763547482667321057781353043343935175743874998899613824225108116600882679569664719340001573610431175760023076165703671588322787366965435072374664648570392705874423038221099866867991813980828481710446060129035665262640246563936820359667424342552513254609662605645774693257477058903238502555286688847427796357858303459441690362832600388511954905662252678257350396469675776607314734138679096019741383240604974554836886115008713071302509080095315154351202662626087107475766475664840567024575230499899053151957727459032451265881736063203650660622275275730556091608579505270565080055298962748280649935436817172508523784998047441432532746739003159033370851834567057825095869350039181558875128803797712172802695933546995906399284496063952846969859439070767440945670841516284489843898374186616278250491697464676833914686677517439881160322761103302351927327564235894000218018205372876690354465679802300355206274904166011918882530111388576972151541953621257184186052968327757184554394836165165988186454154394783023099955727064342712699871847232552774863644368553755241989591545132313398510390734875988299005674180572525982392334109115023050919080209454859063914616173077383169821175486427186656932028079673116703107267609646517046969001314931141884901603985307902630703343389434678748264786759088262917965329980807242284200829835405109586051261487416979018812840756178744863190439238156574128001888703659550115814279317904645945213332467157228862672560848660916887058512655018514887372972338076409152631010770164671533489757961566624782427658203819136417904650718558921899657060960453362045554180649417097081809386881525985683405836297412659512066655382084164339320363389437679291669655291579179882040306174357146047830751758037636143724924545459460647930604695731441389882526380213295128063032120076139225302892566220602752533164713376561252835182020089625801587901039308412008990415388429265642029732774326652812485440871368026206647587555015753878984557353504822755410084802748800190904028935086608658822819434480482876675861003136375533387993448532476192711191293101125408094942512064687304490473149902149706972337272389625156701628687617997848877063939507588893106731130379045872004773164443368100682571124244100908047854468199854666529296716748618847736632183326006163019420828307102682292593964320403138256602618591053049234736342965857539845970561518413345023322211875273841712913976222914168658282483951812779243293111302937306476383539766176970849507739247433084200291136657583055243077116390180532493736062041499536105939977164302808822136844233687968826800393058888766562702369410214693048013055207644660716322808078799202068655572479458206304988568110641075027872602994673061342478261964957893748433624667123811502069427730311088318408604062514241216507998045049399055591127639051567429393112426797169745312962379519944851282436540476374638717586875127221579691625662664929936305236235982562684943083751436632297555300796403078354834138463023735497775789406294930577916271792867272628202441175502294447030837007601554568692620816174517291942271246572914178270335236213914096610507064175519081731069216707974044510992136032518750589640288525575443343838244032893896808142767166592942896556289713186923793095941480313236379430843145104941205757335303983647939250141583956261338368466250503593397250564637794535626712722383506790087768967126578531965788770694736879217988563389406973614590114684513150547278181165539217445561390530013518487326448885100829351578139866521457747508517616749675344881299741058864545551894666937305127586369638525729642848433155707969100670400487231314538523598349733301207634828677825817512155698496252697566352420045661025313879783043629862902098668426932446680888700745495174784548346719827476204089150089274005890043278164165225329558025334384098927810518684805137465536486116464444158082524418811046978707555999212266935872316548601418028268057101276936728443695350783869705239411460862678984731981053618259505843143898083781115202720534644972663551785455437663086717908836265974567089752264236991774945239995833522146122323426061472894735477971495322654684466984623784204323290181181654811637776500036578001397000284489990340853017902270171930203996105308716514620077971207933595742425077060022522621143150035063360752545897756123125694895050242598905568927692419963020367117551947228673456281292089061344342977233966000888795446499043119286958555403152728080609738544183706559058562340688852344036816135248403339002155892854971139939700957612741143768548688315353050974728056276741135415486511423395035297686020364679549112694931277511976503055592119541020260354394275646329448930120260942053571438687768727828118482765442438898213698408773110282194535000688210911490791854376462326847215253929139237028964665153537119867843341656360405596288179291255883875065496170178000068099967443976728817420747588630907122252463213435324022388773886811340908194180927361127346287957460607528551105612033890765454803509135415366810804251785828302078317668289722839001925931446086954456200571406660212979889669680606217254244831089490116772535857977464806390811825767226350598409776204812336233428559081558292812645286002557086768316103980359463834553550752658782042992170112347846944275764110433438926200961224687545352319397901216965645522473222117676096824375950582636157541233681693320948991930821003912846017620610748836993874989124702620462825241912641949037313378916711685341175946364057522497072174266153905003848940427366375158330248815471243154869521240644620309554636698968375119077973078858009144062835683835492455976721583096451693158213041066980873568015956488754855017819924076884101067496680300616938113135826394124713710343872815960091272597457959595180546242645590374500876609728998826057053368466889752629085065531401832380360280415118176172429628821127235896697722661514726394261410229374419099454861848663357988346900774499608310531531869027822981855661992800445988770607011636580915341075220289430419414105070586427557222875603902587805907112292525513914621909152404104897823193233901949102360393489442941798731869938052935341261243231559603339653353711442338751757036660518037003242810627110259043135932103845605484312208376965521710245887096089443609186966569345131334124967691901013080027286641456575395235471765597484102572743851374178844780929290198003401363550297125799570282507764849753519020128052672034154455182726376186237787324969458922796455232242425753903631387695441746503889839534096436587764420475645944292605239685875477365673132804710843263838046311966184551023297992641115249038289309665720715526271575972902850234055293446851471359348999292294247863270840839274641972707882399268388931394450030003259207438319243584221625269126769300604192125630348631510591084998786379982797632140588601917170358379022699215081299674844873945512116945831228010976072766674805186212365451991509649948818983546683083981242439573157009158263713809783676870733163547041919364144029156416579681216989387825280261960859536145039259057369775235611094771717133908796035494639281873388836427811390484924921385348754055855320930102889723289574748161123038369056937759854056987247261971899303909254459485476634947973158748185081675564072930863601938047168742489403137094371496023158739973929755500212288699688299506062842669881324528363697410191533461097845224356072370554697950738724057806968670293184101370215892989784048702414420941402523875334500085609114869344088318948025282091359952523337006233321395775912513947088214377293480130615878035727267733389366795326683640586988762667705668278534813412721127600780089878556050726052410347299712687865005704775216686486365924708598511616388810523541839376350557091695962371752800165594281973597163777933313219710896728966588417200940769714113042252312680916361639961550661807685094734710523758858608905794088983987175799522120636010721804370473281161630604434844877985404292463448495719093335999216327470501946096840207950618928592283992685367986406003580690315883124466051811997281409180467421211186658315598174609419045211780910984043847274025898938904186202711181442331712701582384796550376214537675905376645223109548668281523046194687665207872753125773388426204207598046356824851938533035140381137157091643610923826908285332557051182953539392871706491368712426445765810060027304128152414716600826915578936239298404463501940503003584167686125069189537142384671069633404242936329781568499062255716471718655203202666586874391215625912026224990839889608711290263652978480122313781283087734193586679652631536486978047896551999116020300078796180981271515427525363326458764772447673729267598896768884213356857521867549448789346944757818231289411717314308311524988070099359434393177666623007115231264541318033577072849370928302874639180164973271202164527928306462622021121400260416899528606805612304003039172976136986683161067657296061076461397588842699279883587745747559314010715012839075871301382286673864824392033154057627884929594245532170522888599805486620889435106446513639071573237818821567136601913750768865239337084299868909244941016472258660269610514088104495858049276135078204282976086530271607469411791844979105701682297532070730525302276457665998897039817288218522389106068593203115259748521396045310625191064894002145184133338536615482495794337853229837749032265092448093084156997705396525407123158286566351228956918653135311558517039160226335627000789669543781885298591779958004798327333901045612305970421884892114801408522264150815678344071192172126262512661698223999219087443661898783762277894522022663864892624450540954141705013049682727388958797130116250884399163140324378036866773278984837234420942278443790772066953509357822385909294199236370730870337843162604056364579665428451717970778959419420645841357938751943688867743226910599851439335889094858198694959025213576040385238962340259015063828428471683032631341454437718816838787569786052515684001263870166155438712462196927507128627106915089602373630583200804491039692499322872051745897910863781044932162807488551984536489671900510517184440451791842190272476310705668674202208041558818743861282164483189845794346121304992191445195828283946006467509081928819615281721267448132145727409610875534847730745750546000708584425149025122632869121781041229491242137885628248902268395882040563486566527960811286711060120367033579509437099338713126871520434341291963512149609320897932706953298716271160282624070239876756951247615726485512507066669516700430806690112590533535422841140737334107567809790230652350002455945122883830570289158095196907664543044607661202384233983147738204563580470027123105933118160892198968421813964391618794512440383842038412632289066227732334557393025495041327282002356100389107671327590080198821445419990323780706344489163936744309618113754314812020310161045809108085266725627118996618002312250179627883269419737151438678638614803651003007395974928490190430750243004145509966388399987947437717418165470587190850790794838348516309536631923163672538725159788394239619301585428669511707145842354550999518032209424793181661619349518723940466915782408564126178649346715166802291334528561926119908432733892764771896695386247046083719642991371050014144080690978135379047127606552246319419940796600353289046125787814519857728152300902716139306051461235652101106426304471326370027089938112739446498484741205883171949639764121667486983127574820437590835082617646451373886383616672776621218572511043867873672506881224678184719433243082936654614313096775637332041414073577729655586298331534585805226220862121950114214297966938380721139024933203625358301960352402275799774951680169680207971826816516707794776678202040699764912738606079834747670918054487047555759807274748959109958421561772698512610875875633401948078166843889190258457016366140802879824854500565168350824722611933833737129994510895085203848076211511017367959131176364098338998942600859191432097130723101622679791986680721467056700738977073423712768231801986760956533993847200200582763708326907131086596461254760754769776167373932063215966811367730705435555405597899880099621383408773165127895591810516730708868010937530803536921227570152122441757442212989923899860403863090868718660841479504978931695319400531942425400496077770987376546411005788192192343720000620198988359051533134219136154469240548460094413969117213891374534897591766727597707855693504139832957657314528545219722220078654022449858504498214060305269993556112153661853766497657178276098291324593569274910498441174586996151353915038880165029033566774746191342205101734670433314519346103514529301271419963136262837674054448918495590412357576627884209375553050517554609954518147010859245522692942575529515475700677010091195523956303838287149064238921111653291100130027463172935226378335796870385755308258676412655073086706872803171512655770010630861227170985204302263165004889145404436287098163659006848045593981334327960283076978495610164119811695498109113071749582300262727370816456627643414087519242803981862965315602161226207095124695387824442673904550265107470359066490782786812609030002560622457198088283559349295251059811387379374357332828274420542070925269275995635437563521103490344194034571482854347483873684569427459961811758549983131483637035482005425233720042939763067551281468818459829710558521926180869790456316212622363604715992554235973738761133597702380220545769032875599256013160008812755822708120272160942994605071623010548113865054436614461801723807530627866778350756808194739590561050020477214493308006872748549721675071218606723176376235604608247307448789618271282576719717464342263630806999920511885545307761290516250415010055509991353590713183914597295645375849066289875505173540178943296838683217614528085249073915704784467704745921992275567375012015958523104673339463689449367985699252403408825098673505509080482017397919165149148570935964861362388211355461054275986133051115026741449309427947136401226909957439445034702721556334907042911679530153213602667864572735522960115167164494249022943065967082165414655583472964620146748072440189979167913796273580477543228508673040881305778620436425010380292745603670112728873099944497995079336385623292455041276321213476618568426456124101908220962885532417609664793226297558267184886206018078477220764767304594344384351151854021007685260492091476299493805129004817419683744068224072385493717460256052421598982900244509229963921495203983162036031897414973268175675819148333913367096020299984366387728005655089943191627820614872203130708711165378978278423829936897723830842126519747992094391869121494550973882117392177591104499278373826778909008876860967854622780713695371066654650926694995281042480559367525799534801349936899409961500169861301815452675811212373427525535762133455684184789746288499577312595929702439535269226059732594600362395478608407786159940359514707500205534482351776985521988228895876018058046674837766624031811578087561733311037440478814086311713813243525813629898154606028014160846913384775329328120920282097913173380183728441835206395059886244492694511894833119577149631474776386161734894436897462737825463741229972597272517649321570770030991691759473562099427997895014654895061051164864837916824557950088182125261099396039781214517010258156321592153611973801902429382819864538344087897140027142797771069238076206211867315576178007630558377849159919985272788174875863127201856936663752307255472017587784571975399430201299754827713957590594520206450153954884765702087908125809167241363843974421905912294752490033362785535792516809093453237117594113480606718641348933195952792783483262848107711252301902005943712527221082215894842774655175349653720796877894477303729867304879782623395028491265479793960111229188199120725735817178184986920843833679079617769576705339107931808253002698721095498216378521602117010584652115798803678430917660464892757719842125807402787572461667559513300656894287188265233879472090778588936173746416758309315997929143959344822551465565084148940748191152393756669617537858308705657155611817016301147755320101324577848775804874046547722409989584037093585261130766266636145975275869974708598835450715078821719389088265323901862017757902156069465181324848352744048304626106796540188361059118604620907724041621217991758030022882365157038981308081594724980053339192051817884080437807894868309251839231286186446598007709021851508953705501928083244514589195525145792234204407031309315853894212945300655501140233484705143566494509868170566520511809802018339436183039505813742991444728618827234753286255076491337070291961598555390562460831096917619611325424426636411248483828833065866194287169629985147654189235438576276480350974817593438129186409702010581189848621587523876926814329591341792930936136896081624067513093536021424580172337150012184243116288918504278214499301959179028870180601484163740959668057632816527706784579130338927295429948797647817652288797873767975523452798715653143429682060747934862712842392640801678661808914943551596345705149321436126010740693238053728827494899415357596518008904536731481829795251097797417353926147178039642301387365963996642337378168154615181768700813521579948686718861088437028093636961121041790554006856251238183354738187745021820771388080222594813295679074499166446011615944343683813477599350564989367408165728151845004160222846828488740727538431530125696662183942780317164851748393500820752599650598215642282551727172006976421268512935268145846478844383201090573744707860599586026902908575536998418445978110526388673467206425321930350173941266359323240430190266336450366216420660525959607151677512188701420657486932066592481536423189527211158910819849351199554609610651485741786383605924066225951066827951943729817057863209485338910018495985898338586356171858201936364184778984143851573237837762213154438066744821576784696957390186467133980131055683912225796717589495402646525840506072430763982343113214091464518357454602385155886101086454529706567858429353306363960317043272486124347843221974727782884276814310025682835133283926705047849805883523010930269470384167072990560509575563920512302768879495295839511988289628937124820825928832076120364226366227724961152835856533393470903056194027789260014903313903811243759254712173889055835375577143367911807724292925180583810800626321984342786349962645503293325931827443057336030896396315679723422459331487103187499323945599428720897125749017435774862780007819951117091296440289133422765732573779470926435899934472132088120382767188372829928751519116583222041038106731636183468774968442832495956955901687951372511075063768085406185242323650518664295668996920745057547440024255041117426159214854385228858333591779705624582343518490633199107590434705715137390454458286466217276928832050584529372590970357298447033559705973323138238771550384486796569052672946621046135277885336879745535587494369935573874187637742135220096864340307378731777996191038353959973800871103032926826077654302370386969848111113670045244859263785064040977094934995093846902702980773085478540040096435242022785988872801801085094466336649385758819406860255195164629567096546769421896921951906500534781417830982337781702289477860517396605459417751002059908425360899908340120648924189387338215980584504486984411614149039995250957940875907989580556653739448622058017526925624874018962785746865026197177319727693826968803537993645391523594158751956112003998607400216693285414580774956972099116939931475441068021311617141484592932648731015374129833929751725456671986422821992469441639305105825510016005647787994343272474156868337803132451656013632174733664653831570354371970504662853239318167745769038271429346422813667151152844862269828083041936618917741185998265590039112277932367627261807893221871897547647997392914894310690572333304997357705001295980942031394180487563410960389074775769168565486405169462398808072408233949589245908745416099080748332112713161004629159297333883222923157156543016914794648969364922369399564028333300473071903318989122155628847631817141081687102308679161374061178055424522731394864440305250867030099945980700297946255591047414917504376203084946432231436488748235706206850365179471491768303060309380555015625807912358363366686248886520497407254883100462237665808009841467621616579771297687580056367026887740333529126099906301670528616296379072565161693840320594252298904807450823524172031186540516933360225434118000839168221307659233526561798837213086220630357113798945533307598140499543917783815480987983223701027874253733452320175025810467017494668845837728508092095215245737630180920015618614806776788763047947638989288418107019852656881161198759412336894346524595502148102591552377605398368175584404143402222699507193677786178283963697065013225994046889978173571851239453145418013736537216667904368418315293840123863378417442408272722874058076479935959795300823007951831098215085514461849631791070395004080499541852355294147166284013176460250560487964727783024564057970150195372984067036448092857622891299709045735092275736440539952428802865184783084929151207275388657218847845158083635926949315937457197901626262412638661056933625968508238084965261217867721163416873798717060724664787499575456614573304407816546793030929722924533516795334290242248665934519578628481341226182403086967131130552762729071592630711700240258554087080526900452255304189219273570361049730165735420607905828684376137592703991033585720161787180361477307256036825319241937945978036354653850579737851614868084411480221747815867422471173447299093984343960720001348420225053584456412793882440813827891668958229635091981693163599942758866973222190146899383671046382125961727285616843632343013783522072085464169554361791234284968159482028346898277435126294428045010420317960735827221423484530733502322533582641918433514394515285744255478229068452665672384949177539451804383663722349007612892273937415182085916567308427679255179602859410991114545323026441537253664500862737322150999403641932295463928394921136049296933763752741592965355202194819281163994720244540947311777769687344984195248225826589446414348354237276972555389398970526548698237407264203394894716045592781943986375139194258531290546151654104163884090516293310266950922581693060116830899577851862699616225265539801747578125798243914465165011699809068308315598632743236200551158070137766502554999759959572171984312749751289055096732897701449833870827559088639374803593038321095881260888375050830390349571812265937470416990157985990201638776998887777386972800744043274887776332541107289446363598690072631254164215743365223128562243010294223200950663337875630441130218584955463054616505642318895105195139779614133086144596363740004994721717633345205082435037481214373741288644855664781477771356480138707439287426644967937227749128755831707875071486817366431107725362614764122002482602075763743963806201283591549089895968529297413050969692818685041310188717102710984417237429853985184997044133725009902775659623887034363919034295121010312694588605355454148898820574924665655874118518209203465827436837340504845899123247438609947612365849045864304912238654429034542739706855554635718316561056368317896931585404691099433034215131150110012964630262694492846017032638806866238554318547985910606283044765467109936056310849704655381131147811341838500688895269999112748478656649132456029993911349868830192564243342545888113231299281943293515458810490966782597902066377880779719184779485133885787629845302694744693158859260805677215042936046817798513941330671626315415041378902477378828200346820210200492915033850637413703574762626899736907602620086282615266880049473033536795742226527358918440289586088485165999008903508872342062673517791576367461985031044342679395752892782662910025697783180418729091930335055585638794703847853421769717525644629266869978648640848625823031722626915815606121859709484972549226677041291379057159489379952801044763950035034644031678704425654260664791797065064776492889204135947382967317436065832460860501891968134171066817390854285023280298601621284176109380595443236038914768657358408403322517295792714447803563887616737145017233138735143660355174229283145581962823018813694496734928560055434525172421009689480874294666404857812077615254270734972973233630937760675586406968666677896891320375219897077964327487591500691027926823789746024192054335850298007768459478140980597881228293210983225710641858030261668351753066244163801018303253772645754688342426190065046033877027898178715937738509816171750410020723668881185575159607068287183859789929782661083498598457195579866675132302013630454797288035309562794645554842722272459404690872463811699763407958510536989859129688602105498352716075104938640796771936645381639618529813139052236616074676258017208543057516503698173230583340599551504851529739053934645511627677265764792043592365537268509875471410572546186149890294914098118558059466470211737921659881662974722036389961527982319648271906544818850928571083950968844091815278150566657680599844638199296370071001288572387358656490187021607247617638071854215458565565693288067234657281862458823586360660381135314471822515903496582044902397999625532734132779528278026785977149284876380730512931977421004806918125952868472742247645278897028262685553325256740002559318294624791183254656900197479531441639520582022142566341267803866172939053567315677026886690113222801832522881812502008938478373210228985893873831931056927497677195572863935857669887819631564821340502631476989458501277985752987965810810650222051851802561258605956326597470253328089385151437770306819636850746080585643403816594394778778663670175247996912159102997486772653178959527486856320243162256091399280011827629666685852466882419352731654713339679550967225731331209573363729176192166549635899328745741385532921440332131466105671594732580797913980167669956314685200421353271049324094795029392751690232855733011254294349484419552678755582599278949916611922165584280929222241566850576218919484805414154144762479845852223126656081900257340894489715216021390185556770307461042924245614733426394201057903595816869039842708204498062025861400392638291739536995015290362898898226807868278950593577157419683847777779214650025908905235985075100602398596918578339230067721895065554259694772483677895055273144335418142263387428789891051125257787252535038842978648431192934720753705371434029182582924572329466018709763924458973885447134931685650681866927456240346794449762605016571243119118311704494296364715265155605129338562277766598592273318257782016916825420935758577309625053237361371057601555527746469000596309116797085496098146754621308267324809651154159509937130161513510535176814304975638618614522470722759045914913818768592722995913937954742260551387432158443297601235181923281772889182312009365153119090880671952494995121012509494041669303598751864539598454653985345124182525270399481157400481198996391087919116928231324716951198206585641470944244288358240175682180750767409684850852745853972583830036069711627764879462266450021613360528484529722308061855752167299213587281299937514504714074312561474924734211233020976391529488280379475788569544633827031205577608073264457683846870362321465270275712945775237194679351015692674643007768920748020256816885537137274446002532808544043363803377015260836975134055806960331004520667434167849949982601877923799832628299261790140793688026898601132251882193160792240815799650240894004290875286530432399048199548158583444172905643360526128436982000566600293057650766801896235092488732467587258026899963186828394855523135134009890886922468802923194972951981234360985368875303829561022995763525255141053772392143441538799707427632877004093253761341654859323925775409035250865157810295048723625617369555455830213041908127336244254651707427188444395431035825545374066910382659776671813568489530042897173541492631857141672696132320923875527840842732494837792502687751150601312635246460540816392459362335410618318427161246971258648042067635975001774947805693543415918368153119431720395646483471369087705614723458001276404496040900770006664459447766122815584701862446458826473337313292028860899709994363551784341522418519365672468550541909619471151559534874359746699354580504888577969774655781894576252653961725581223929018978413558962233899710701804512464627269052299602018199604975307782844425285654609184573602451546978019966366477216494880520703134235439855855727115453803351863768759165323011431716607525875878451620584818444451968108891580737362801657293560351868849796878195969822847861243629664569054037120295733340680283813399586145166522681596937405251455140545638227615820792789157967481975955770719794915225016573421818970116693433979436552633463830793392588989339779314601431511960329128998710928668028381148253054163272445240522775554470513889078106039578049431390110798792663255433801223103201911212874396621789849853671994641047487091285549150278706912123521780342874678135256438491155022548592198808603707497372280917558115936870065469622787960299903258064102551387289460576493951192003289231189722954910728334362716965242096039310815126803726302687657644949147195500013852346102688131236310606746072859949848127952477864814007069835990111661723331656659412010668036025490126742960092437287299193444966883826469902038836415290849069437299649907968191512778661919439695185769715952241641391102652128439376475885010694785368136042953981370107353810853098605769799929624421880751224334032191226325562858343279355446256811680979911256123056405661492326112362579822824333848682410406462517651081296925980034596945829553878301794613865742949655132202230033305203055985560373324598388070673210215882899258427669984872698504234685041158172530917237684288824911682155848369582542284572911900040037349393819708273243860174091539572314447691177620208200317310657496454062781867428639532890761011185543531877625664393007223625568523019905574115813510670500486006324504774781299612652041803796438558202831138032753472555714398463904283682120992786359721120745103372862652385598498883955934872245559812283336174333913191157857619388082731335513970194516701933621399162981096249217976957175280423941143825580071544258208221563201114310638503951134455814041397156997657430730783804553614892569773045347029355316905239292808960006517393749415476707831507056431705330114167469685028104876746421861374106917107448470615249883610663127398665248013482587209215820866968064873595262394596460078227682816571894050897134789562729747805330874735256939806454960791720047848378680378375212181809228711042599259962766890919623729598198597674136402924562212369292891731639195503318737792510810433027133782750984944977090309403167573557884485991849654718120743503829034193023324696023788167353791298821175987599839352111861301861797947054819309705670062775046123904527958109705983371249658221754052082057707577167557590674248450646857150746938158342503982556938082258381109620432831013335828527074062119010439606218165647500271352445509309116908930903402585204792381742043375918786433825031881410487661996288230454294492656421012160987785338447659024219006066512423482951658583868809347331705534024810389402528763324100245380057277943009073472871512116809145940089776001805114319381317216786526322151838529278990217569725946655023407915665040587572907682840953663469837951994477725493835120261838842261198255055467694416886877297846111548865363946107205413570863742295489935178922764213594281606586997127816087096233050889922813901532090130938941066835765914460901625747075872770550676846517999408311051321935667396065766881709285098172345457754303958838141317794429316693411622810007059296730791208413077445196765762529320895444669629590796365780762176761627269483153630747027531151503166863452743698668491804505124725073020233697823329658069335458130962206980639911309992292277723213762383085437168485307047799294506598448058068643046586818281098158124132769844605775965135916631351540234146886828847678081211635141392341346708154991696703744371842943151613192915997842751865814589109695028790603302918222433637101250823310731581407031763196159623838984186218121981239756987649991451269650920556900334424726102460385384126353895559270073302698208949623752222083358420307491737026354489088199022835066348978311961286956255710912949976535623917400508684377426132564263231464432294631545188668457036306136976467080992868137886671685757451376652192932482701852307819894229517489380922597304326991724875835388527445391235172572409203801138833343553793049244516501493116582386059281089113834607280794769881289625788838065169973504030149749818332615089250591436677224259681169887094107364058711172707877873865340201087169425703662058501519066664923194755458192452490145279677906953799247201649989824125052411574156660255518869758574021393072687065538060152124293718738236728362092122475514720168641662350901487374681443116808568357518856816046345134684912967121009773348317058381715524124075906043449759262076794352107517907158877847618086381362780253313539591992915385435463217775772421498852791590215642268945605935595680425030186880066293959521652576110269491126577722480658987846874731685971864009338879314653714358782981003458227419341155001573828167687324057177614098424243784927078077082367907875761190067747470134597979541439232022527871274807403237370191921288777449535935608997744864364797083431798525048143955197606793693537136742993449549836735099786901701812731953727047688207279538699512817489204556437849521908593350809610096089471161699618979860776074962078588861874150291681005995765519544751306041854011386281618749959932208208309138575436538002619202149724323365627166600826109058090914935236080306657680461552901530643689254814596873727057729887842583366747275355391404935475488485258992107091021165791180813637424864367824803955640562249962631288155969041108647188437124186457253260619005746103195717185951343471791795837640812010028152943397312334475854251448051179408005378657285187494652864459741621374710248327061632499239309467894784954809401079278404242599786425077139769546553331877557532134583130211971450938248935015937126773355295486905623416605047237751418010027609499314674758697862888053936258507030514463645989099297355160675230968319594616479473595516054935346436935573525125971830702872701884478990772340020399870301116434598412450191186020958343702415961912086347366971116297307701765433588906529346824357601122291125472585623857991159752282635562955522489133981938906237502208419305495177095649351872910023338541309245420108974837959747839072348574481296929539293666188052414523342550914826392731925757802464293058142794842484893772390997865238139976271562331096090348407894968459346792586047306690732663558590547999582212713551389865256033498302217439645192472625617578386220721596823053704011063679246900788427424333028373427539402918952905246995726873595138414692900605963701020460030298080349102817404047629202742417649664513588518103012246040697344253677677826294064719550175581036671626328492739180527750076384122272039524723015740075923108050843385120599755970692164669506718237546141438047617533908648895858533898731939418580892400130255608588053164057827847970295738405210349742626479042746670269152357952743605292540362479907220800781620159163608254408791198839757188550186098055175754596998994683421156979114992906572074746754837721679701706885019020580073853891156187655565520216429711376233305912925063818463222812815730777688075548595858208806913684996886611803088157350076781088849057515791668823018148611586241847188063947619620292635195524942733937467542533503101141546434257131942858894683948644545094985185630034856542220525776108587353343649722286001645838554823858592366003997643923347187482889411404222874172986592195829009499202250846744872019203593870125798854542892522992177492578101292794256682659500405702081454088864202897761749921104378081505093691392273855445821379497931605767348062863608036580662811133712150027090962153095010723566081467718220536966353643623708815860245686883738569906327296142110949784463332959176731917014584009035410023541556207394872690319976895174269505330587851561035264608947331647163325843706368992463047780919356358288744019263004205595842427079234130435152569507093127454041242043982669177908825125241675624596399169422570295127120985768001035236358178832405389027813434228717267111510399499379855343939830974017750677739649321268227847878122333740434951819967719170846939054131944923130664209183236589260231072280193805073048641030972241486268374777473914278553051728368190909607437778400317241805617894371541536822697574320634780898049944835977166222157751539485276808842563146335498059843142814990626069933795101138492624093129806567893592695114175766949529422598850468134616705312896574863406030703171000247099830249534163608440876167866470605475532662647861536586773881215899893103496733645941718680348439917022839725119372962686703429064538908964469657918472163032006934112047085742765278721536569902338053501886490605290097929462469876200130250372401457169246473368512182872051656307406670065719093177680004095212686836589281779407902372047955180367081274735555640488111777138509694288254996109181416094536411766006307269147557652284651030164440558966624099907039792778453439687785510868961605548688385046611812816832187718181802430564963181458687853860593103380736842913465000182426422556748714582710746493247552334635613587794683933285381904254971276608762788262824154740334598266618484247010478811506589805480712276169988683509016349707694648043616228257226973464070613953655665936098720557694380429092397057593208658592352226049927285408263120357559774373600050413161370515375197322113775247540074500288936707323031858197597476984400340921579859849394472260599784340161558607918829086733644130194564976393125297552403970363005827723979420151914996714112733173667667228290370059127367959158416413142143282555280700775717739336193495068411596584344012801763381419804233351598287783773054312678744553408719042179964199287383184992834258365282853110764044274318807608324110257659380112838561253295785696165988086706020903544705558467691427586735921979899660454303284293301396733840649264661345670351121910409303472382615883890483214965733651382959732936307815437572643004947603410544581820149251658681257544489127952560001598591145721787478419611308294714070142900459049914303773133911492390880277452029386301501976863373388454572172689036159918426849780857079825253259014084042293086121101620365368249254453934436013954278312472229782840682658320575140490352182437230305769207450496105403320141217950802880542001694255011388920077914032195437048877640579095195406895440929711741300040623594403786184280002923465718789274563728332751745699996811048199363479852851023757058668104901560118495107394479350901814808631422897865457976050590588550790061715894038463680489499954950168414742142232880562400697404761931145671581953538985931204704102910435341355394206347813162683346089022217131744587007201142835458508355496443514446727560699960151779460081787358294695884998573074828209714153318672826669550037200976551020591158191513152386952626812248598250601485259475596810584398208574232161574675728619332624856116894655974075550355052308682935169614142248699002644209939541019811737863315909487587049960908857565508097279927189744726056784164714116298490416439565525897761057243708414454096270046463024733931766498508720200024714352305241258006712680964877982769209681200845780740786003331419732195688178591249018411209287278134599596639943461281655973284484468293663449643029997030289011095997561486887283079047742856582357471670765159896545284738752174796391623738707968120320204348399964288559193163690142964223711468676585602126082140506075908660158368097519945541024113939267584932258631124536525367563608362154772759835268848870791342781017971356006467067793677908574334111934690145934790772190574252990023398332055755998053607793691550222356354305711361741887726558040649508174517878557996304733583328967334337456908159932733835615626309697884848586482452855601403933994253539821429828183094851425845443033364304559134755465900835537372124461682003404760075497584290856216704369673463113452933275632775703958000195260745392063996425357493792747533540411851110008937730473900878865861044078485724609525915873593412530756749228457992777872342731084685587398530929341919215303283412165815239829585407411907562577438599324881266416339860490625959437451015527800214213045509762489249850014076078034104127188206784949335957093719936310040746785314337739161989794080471727768925454275296323472617467603226757059711964221554891473106163903901357863136358822822179771615255672767945074086075566430373054074951458709887928065535606972433492042036514401589752608193020479907728251747903562961806761434392980987322099968622857837196177923009453619791365160266472288808719864731068281701767121909439791435173103392310820612586390407275096842366015040758182132892717483834501563227719457313036249856705866425025585342630769869550013453716718723962008246648751924113022414646979843879312343011326719604291773717918907961833143918966249623942872322367925457220363044417285600087169254536030988264617796788186865855083547304088509718797601731836296368445714246055102341924449450312897257582732211409365974978543494271180795769656549561372178806266282297200345404881146113801614745337148656710230195996921685071047071849660971103421176153249802268387418889199803644651564560855354441887364437368974168410780702754579453199715767071240120006096840585828410691829280029849597156814818321574202464708170086417525377123211282182265425688234490833423238565916331037242435831993405072488719719641911866712310399909923231750419096369717276136268522641604801767996052628499011272130504889686648239502460303782176276508675683358809219511736061495157991036532171905950295885626880476738978669290704219959996756064431911313389596684907208602175676681432750555618842727414778929042093578059371878146205880895712130262693266425635378807205310879887739758809123906337836068490348435753621253710325889437856921090219821393039901932468206470973682291539863904908784010322166942036724102486247921073515038976472208079659751934580383770556478177623159531661832184716457216582151278137481696621149364719219961293737989444653158495021542151079567497611152425273238697905876064932088664227337905796492892594119751503702234536893020718805215389520148606390688224250484942792663723403957075504319672210922535243558833928355709698305819504091967066866768793608806926031092329419370125561621415899649992926765993657668666292083495658251386713328795456419008696306057717839182894648820285145563736446077372224003114037591244956970148038828874575833921763041954103087505817227664374184894903264763778211731473541044577542561781500750231437657617878209078389325363592076964264024373102344076794644932258572469175578205009173596175802194356946059198135007668329291920877110639825403045887023542930371640057226307237322589985301657431556379776870895582480882893244956497459493475085492465751747213110264465355760983201223620683344479850905272945305761238727879108911197990416541822059823659674364353134050843133805616560551085576868171177579278943594437477224887517681182877639699748038224696719275547384252970543270357031468911881814953065259895498589349512860424648509251159056364754411681098953144749591124941227806872191260799297772400549501728796424920763633691912057233773833175659163540678229531898157894334939397965129514900583027239014672126335235118288996518486472047160550933067544343029515180294688281645711800324847138023428984840595579969587569346325415237977124767220938721915317533364772474042683463152067634492310517351289462810107978714414217961449930650125876308841400618902513809656837574434471579399837137936275162528740658631515158750613567891302903409239000959942533781382933295281886723835847506357126427962056905510011045778313254038382717577313814196048444466360510477733855552910108158885672292894044300664099202084237406561368665489865400451245345003973785265001546554153185782624180653862477557619965061179032078271191152786640823711862408049402070577537081141684111260590794810233961709029627550744196009198519493671958816805833203540307846991016238641716619283240170214363160644875451167458081346097253457172701751870370717419526661550626173108468395649743233550928949436816333107600189528696607301480394794430739678153616288116450372075664476860955566653422168241371383174339275357612642095924377392644710486468950735642423992171988814822352171455533621047940274111514321664956366644664343237815394105789581361006816274076152120521052357452966874584856285559592947458735672481631744201439550896392015233081743404184961795034370411365608702131875449055653878801149382762612113909547099251240172056408468723591036247674795023744675936849724877207803991658724319668761310051477496799178863387154488886219170235136464465081938128499156182166514828820926315071156161648216677558366016598865089559264920596667927915491381674073703370639614549117747834413547487352718812927468081532380351268037355933228330537800252921171517321153220166182768778559426456920532624927683508922888164967603980635071025575544657121618211118661179701836382253176629444838111353630756364448776089386339790857609545751310713175528960538808824979626718851124935680701280493247611404563191744613788813189376958210783509110379680445796849343746556807183970405399001372566475380507159199618001970870714440196310273523596054451619631332835308628091911768555155936634440499319467856428564903771811949686480373095047031925490647050051457569399749715982143299991645592703462208068319649827332823775302011685966103728032173868077717822990344577590210141701685020678873168393812643659387409511375494803873998875693996483633114370669607935246346586342539275170975808120366530774921765937154778433935523934755940749972893300311928333321509212358561949974116017184454232009721218002661988355875972430044737604967646395802863102526638876322178622133923736567243130021988840807264319285167574755399703710750482975706811871415481543143178610709128744924917586478672257948326153050559448841677686206484992818566275170422335957899959616606903743198567481860453944608289623367407770478615502041336072903745687683525039738748697777084765836259457627002368947094874316725235523746510380068026397678690313343859703057118314348704716069976550910842100687066212273866535088664040561089677032162865568694964841428359124758561390065352835622021163838049248844076648056483525447508349415620111058328416695583774503917830990132653558472112306428584714371815446461893710046073423657527066218073420856501844608977687417697088418845505868688324819331348824097725321306659025398714496111476741393754401871981696185652310894118393039241937918210600487868829552202007337227098236927130520906990298475072634086160577418993720366871047396642031995733564098716616412623750566584764789434422047377645965982011637742932670697247510664253384003572707595573387292426361778696602435270908564504235657061565140627337941249437994272818381696551220578644518151417354915138554239905194635515844079219023498448780366305946627752439267726820501047020355956528729679255222515423200845725457808201291854227889606493959766959094577994686497477946143160096477160417731924419739909530130560434929641086428812501285350605174917585221211609490460589413051643409395097821511108178522500946319704469230548595105969648406450808396740318375915880227371857630493036132653083293264389036097528892471225112405472843501824188023783572703581635811328888760177441792456072403084350557863785788912311019737222450828576039069325650218905920043323465738617536940787832579137499674867938332380195889521282436598556220962224593451175903100986537300631505919170539519438187147377975160122252302409896646797835209784224311155338819147739682612986459442006673021063807146243889281428715547763399770334484229681077881989407122307716534400866008763268017225161967817767497016813590672800838231421711799484402842442623979468937016495642175231265164987261689634189824993994566249441173936676726238716342246686560187317282192467291850880595139436922803873269574952474821487211032235324702807236622622236284777925498065581966560352007453313501005821434181858593231269786762341059726137533538692427571794680986357233027559740865851575750622083914648705637483079613287628968071060646208221390969875939602591418825058095003561511038488915201183152462390286691427580348551267564324280611345004305235216718252269923367464009014967677194904995997932128366424028347479375051243056975937884952146125352422542340312736398501958704089620315691946027910392830615270543146084210772743162641374121936334440690525795587480697965364221541230399970330341438400768701552373041961480056245531044285312568066726665275528126777845588509766922428845290736217845048823622187540502575741526979479855625623839316429198038818771126684442867942041088207884288459712207842476121980016798629536913651620450026547348761016407922095849211579744377564304752886208681037071097105661042933771334493469772961336342749596266860667586025257800493880613184911959936819574022887551940683005436009500301092899711404683829216360188670316521341862455168969069735118596381625031212088783499394619282591593491308888715827295961036395955023195768351821459873342623410885761842896960283775269905401698459607161636058878660599956122912547525032499572386925879902653744299455457506396611617043766194442690778594845550524141982526158630152844679756466451903332440583833293323744681197649973772662851591507903972741001163389271972796860717881008402456692506218461223846620231572243576003990923648291132883278234409357297534071487306163697023096613065443539186053680192781425218653921306493534592207286953279402898672878527605381972002768141278349569692912947765500240829081003130382352306544558424516791437354130585694462797297088708238639880883529316918112743000854573591527535341914299651025184130689854763778749329565082237933250207870222034999960098398229306309493699987385199497824490312783209002162497105529364664881731508838426512380009951430670016729998274252754485664404458862663465421783297425311030628031013989750154502726922267443977050927374441918857665395485854914997079476211754029600889418716910525886948335775984739540192402618130825727488925857352392276324919791370347095183430926359411931594095870762222341106233828129052181789316596434917050141809768428725344806054554441646438494556041874117284127301956880136316426064269833066304918647859090282219736789876190459309513900515844076528200242024502233334730511097903488144384603728524948670285374774652021573774473869596424209487061716458324421485394038594705913524270044045315909390037529746404353174174354153013503461303252699570436924414796601471556877199939452279971523177641894755163069135950032018245806968646633633119973440931135208414487750863393051600139451498613528286546386604852624877196663934147881629062450839227426401616011340485384991712257272873738315460503909797770205707986742749476858563296840976444712845936297894344960318749672251682965198947442955867719785254405795080651870151710570434585376728332273533979599509437240729505849768826680964027593661475388506102398913371436007774535866915289927888909181191853173854231064972599021716165556778310092565649063989727953753939293715173507324730128162069169019443486874116826912832609117717031272769298668196725503636401599012500417353391307551780455961887399709055455523181048728430559249718087322599647168628714783080625561671351770267897873159430634151707374053734036339604494775933031549987965099763510921025194118162343014805651484131167142834192995106501752628545575534639608268419635578801278692177525394142550633600246484162079344170158689355601305244968945703284075901241704764210079654774468593205026035221371660212423867435536635199748965698045298958915709375437972924305558894417930996195250078518447235807019123886082717702485934004839300733483372115006489170687446435778524115237678195195599840816767740490119060192553207388771782685659425805622161071990127255293448645901953369169171847364653373564644201723491422564363894801292214161587373315294718468711238899563399210857592350080177584187513097957692755955187251293695772373281802146422502596335004570081921027362527801140918537208918195128282307257824207782690155007884495668619013404227062025765109659487044149868302645510233252478753199068073644057955056999953041317386200250049278608669422644796461737842200693125563765779644049061399797535410387076180183871439846075258578164036521436394254941983144775476036791844161029613620065049578505659537234503413474272416718642454867381357386360635547608537658381592105905287781062932356460989171120194643396566636772451650705381634584444045386089434977858945529462811139743865999726271788097873137203986779745881767478103772309226881005833739062495718524429408274384131847930444295015652852856920798098057418947192618028288399903357540154036433117738882462739654980225107561729991767856699256026930874766604965880632182075194638390832684358545327331671379389500703789747438662814040405618299009933206431968265142090330755100902133597112931285935269697751917216491217364244355421909312615037312174367902248621266962484000171950560306170133111327391715073239036376503416402632538485797436681362322566560957950544037661543983124096951735526310059121776223117162298362712065230504393388647602117732559715061126938820485050054759626723091164933098099313056918727212621510853438447127310470052184948344981279209297382474475501129450719382703491217669115590982399466031639388435375738866020503278658285234661623032170700266131641516493426214889919321337969431933532526791068226073579096243945292244832061689260297199484745082722721536757265532791317835469261049334091035324602368773570588816563568811815965474394859461959994408725176313690993428833712082521189066730770039044600306720623745042280011739418537115511360719745040931698617918568952687614312433970034708698065843671149805910105617834883223436213974981863322583589923088857593489994070097566254623221319287650934341932412809677059064423044800024955103141380896102833022184171413499891312924097814061835638743059870834129899935757327259398573837949212407926314429060816926401613550541782538683057916560749267669939128052765176215274478249908553117581729289236550203807905713419461233144127534263773307603419061203127195241747813818087870330839654643482288436952589355238653280247867225116077819648041262238270650509071896076649619776363539250123703207913226813159614429394081369404557558266166448362820624384184543546727353305541144783844015172350928493995089167862890587186933041062533932114621167517996242878332626565515140821769327553518469164549959393703397470286568451795939230719987860790792340680648199758421455110841229370556153702493232893072189357774282087644419515927739378075267141585416839021207802287552926349353707345256359175679474309470318599003455753208425573943549521584887348770529488260468955462587109578696506137481952988976265327005030732954741178873677795744863578686293136215421208465997382054293092214546976829272366365864097913198705818653172130430302639566484996051080613578345973178405438941784303301238293287314374723911786427893037596222856577030799699507563944593550726942826214205935886146624400351461976775897788114181914304142652519968809636243852383387361285773579213395310018584382467101098546220544345849646482605809773503773444487687091926689213051510458850031243848154332302504024184078300543171048448931107130551574783101495700724872147248645563729309338499869658082821330019481575623922685107427074803784166705263308986225896442863793747712543368928375218615331111500823732610806948952488846894883899206064193357016383922219812097480651769633305173520489486100737049451146080631698807938124655308884664274797051641734148584258504593622807577632111397232675399806751918669845598371085254134473201778296791589787779841292831363563774963777639750179002417670348707064245004453161771952595626228584203314017272036900040021227400940660747921954795369745992764459768006038648189320979008905917324011606395713457974768212922394143915942252446428579390684278725533027542249179385702801645566963020907138875212016587292580538939849698173425979807733865204304973502038229494117042903692347606596678156483107639273483193242481340037716285667499785850090810987402941621777333351865026481550680650539622188765152808169804359306503271419872414621975857488262229318607114361133306223242067143278222817500740057231205170651236116163923950655910244916066451427137349243805019185484603209399676469404610373676296563129170243826394529502557069248443913550825638390612320146214995689592989347613866846314164943253499980002731297567293945426548371134018108217137288575688758160587725860544921960239534688747136913803493081071021229786217846638407630204001824464021234474506700560014060723398599719424959480253508690310134233518738676238119939254632544289776887811893943335415077834153106237876273088172079437686283748118481458212640899620491065338889465289725378401571651865236684507238953786410646570751412379010326208114366945212019318997078768974278453685480178312200808674957358434334625483527665232527751462572546562629401776570356822828348297530521667956603559653416739367736449112207160330769429711046221248625100814725981059056787284632533857917358591275691300644678594015731642679310456219970545761605086814556291320917353106384053784201708293571924657618068703050086342945674427002189216064421515080110285761377421037220347637078628368005763597773869841978478292477526767918264237565044028734962778853738395958056694359757624089154914623561930675299058626034422099458843279916568069313589157340717755353226187016158117990837544130977049765520389601688546371313444334748459179345792413999272224382187236447935483687216491909663318088430049097378545609409849691025156044720763942560378795759020833762428716957707070332354160492844722520422332941870768662023377865782581731584974489533035854547292903698947009457246985621403718370469873099118711912312252383741723355009933279763490911703885280897082722609534581397504593978393912287044242936265831751734503202613785562573229663548566042136874847751721272069640743710822232844193113566535271327148390399374020660435470191637545338156233508126042788124563577239512037821646912126803698454965997573672332890808926197687931126131768272778670858103082063427685589905706251203525189767286760574094163833963363329940766565580472157852311638653581660223471782670691424284471834956786977529759680405002608681799477397575067358812984636647347365660447300633985695628501850213680496424960408778689357889044084203908253571473469855186415637836687505475289820233398677911675120736479695250582723415467164804201603585893198952298903074422853920826992003911250366724362301425478265212692561671821954944529738118052007074971749089423639782359275578768431776374424506868575633781265060107218583269955765069067788683719506549399221133726550351757483432193685450920014638149446549228968579417034002739980580388893167451394975531438713567567642700641466610288988257826466140676629236032965409267013858677171602970713230786819110086009598695395123691075340215926488140015346596401710830998948671404064023693257449377881645273012452289094900826796010366819670045305849060596558646289750413167644522825074386331902431206817102270480831909694994651602151031534491755327716743145502059049654950897342644336574766129315433516340864141905451229364848526882149687406376742616307717079696509160024886955489372695781429302651758911625600721850384424825708694641903526467788957404692242452381320084252601095005783292731836759261897196828372644516581630518859962259536261680376839354271158189067897128838146720422962270574594876345913267079928500997372300143185804332940372031653991519187379459512938165402750955534557341657435575133591761493579192622253482755298012282314525700619115467050142365451596931924063776343444036927148029784355016850001542330573012086607518552868342239352370899126883267565724590771833403236341372832321126761839514490712996537061719025090167793837710215945717565691651322555701998949745633185407535216953418851561380364482094679700170850948914862968184350413290076154208144330310482648743738678165478193643909562397230873027796734781213093977900350929417587413077345597000310361278031571016573381678706247541276761439191877073175111021875611705718077722108893808237313361175115273976998108882862670900518217112123673102022215302218785583546740011412405418663584628009722172359039589160002553925968102474162098209189506091044303303119832263494959328321848187736291683804889743717123401826976019850880192165994152481287884987198189039009230287011876083679962150984851418784745006805851110405061122820764408623584517019638333783521021167309671031864209081129207219038846941011362195441732137442214053352314641695036557135031960362250946706315245353229587431186907776425227411380932116847795762515366573490843165613076311760428924787661063034227232927472082642752505961583976073219072940090865685405550197047233636091528666787662328865922008498957638880437084215596643474903790514911989185938145946480341920596768460516960308822328391666298757143607822395879410846703083135033157584796552185191020324264643012589791846994660291424962918580004203171995699337761658913637634257473741097979404866308757641746225644845542304750778657700992688162983366031396690665461262476444989497136294024356372494756475127122307696977796334876470723089260556447737672258163322270715374860667469977659977972521254173318721526929638405345349456947316556609372462818176701664459741876650956726943834140710901142291993783224823775786362527279104460961181208705173097128112672000080294488606255829994381517582241221191300214280047547544578902746533058767230727703917785869872614122439615115032316059855956010254083393677913643966996948821840661814080186830755260387304338701995308629377242588179275895445463373128775845696510794686925943787120983083138819772129089045866121221484847117808925259362671214499836219514402768186980700758794169981490749119767613603232444753949681197094247980150969014573241055534619044168007968804633822613865275400041059541147481187622058825617700375412245893085724251657187013696594251631337982686812794352794331287487801964125982543353932708866277411411487901037097474300943464747874177377516727507060299141581975975211379389669456583601517260880923214999747024188348750235067868484651452234143898829303107895422451623265443953032087922344873652391496587998445588093899328263396553512000462190104038783512991052641187290534233370324714286953724345378126169251853457372313795238986176830970511194715107184462337977100608815573111818847973249670875441007322019655853347052838320541004054010438868351434066092011001329529408554329518370245706459164519060875486487114941920686252428129636518032428659182183602244650118694736919524883625552039332588722554596760953523274802587326323854701594413980313618373351949411760581336934349356238406155779586777598542731251424009672682180221575694093977183585922311147849584221620752360245919588718860604452135731982596035358290760382886868932890555439497385124722135352326796581855993127620567152616385872031168796901745627235451395461047351717437187457577421814815349265361844249007599951155423138610087342786085025968902732551465541169247641107228099295243647328496299991811907131557278193064424862622565492411858407865856366646719875641025711176989550643714785001207777709535174160989647686722005500388238181315370040194976364639919930724709599794307480639071688814700691659768682719195095330764963616571527722096407213242009580007886322493720567705579688347497088652702389917783610592829029666127480771077425655407566789799392710814164922258401908737915558547305459898330658257174473701113108231545604643087209638476595627070699126764431554909099063110160136853688045950759847970976748439265207657377837153517538908224779173516021897188773179391015401580497850725639082991308804870224541043233557267086434220877021682255973132009860457562317291388748251417459062072970450782487938173353474027274058812403666124032973289888897587884613022246182074167019814493003685511250361898747361224529404952892570790354206595739557057237253728410982504982005891174140675209136906770389897049250973478260411646248102732147967730823722760492896360824937200709358243843767382104436998944351501117943265885507088388994894572288849468688878017674386965458352151363243446276016858186073896895318639717306211799458652164558629596178041482244501567354583877735357500370039175019136382301793472917876865463469404033650574832138499949970340580851209811033994555832349281061975972539297425060390368166500550448999519345963219950895002994284437889804213081803722207330423782082957170419441027039829325093603047330433690314062046599149125430376588673638324876049967834363727859009115232976276637194922503574307165048561985790616053404502316128287395385611935982110481343649378199010612264195982762076537920626003643590606259160556000627630537639147005264439236539550508907910872239951457265741034792750384048684945984159890204166140151577399335341703390551564865528575625648400081123909170107094713358533588411616391533129995944757659758684212815170793898527733694115309283336740823352241274017482311953863246639213517474183189818285276584824305845081252156868107465266626600619293194141224214920014618499293979266099216544951276459322507305594735315354722791611923218321771713856992052884405671629093118256531249937717755672416682431389875411259930313378269777452611628576964035698054649584701564434903003829826881487603088842496762463530015333491508644327433986474594275411945364224228787608055722369530971528275326467629947144666623245995272817947429908651798474853642652840590010020630444039091530818915345706308223443316725454674419043815835154653836772904336410660213557594877526831129412069626359763211832651433834735647833748151864673499312806077902855201795979069649736609120670122677889687707141842209492176540961784088251383133665662027770568263061936346033904243752862029477474909374681411766662518923395006531676052993936653768474726636148791938394877602264901892123652346545887598063024654632876755112075890872091419895851351590263113602927447997632425306995040984636328142676545571764830932513991470372620281231396950618423363914108230925889104295540018999113801601770463316845366875020424668475692037725084023287963475320617074337130401747966145523208307316781846513354206707980276716649626205939480382300171056453940421868289625615092257835377620880260082792536837849889507205453730957755914565217061153509291611123787636635644685786863340149056383953266816123564312734167060292943248765725452446608408714588983386482943345982459582920562867356544228735588163441142829309162289600599416526370321020694452832126574482335555701766699670085638334587832517945774290155796035272818825533563035627448025662643789004610298053684709265186730414510919732632222993932261250437551724933652080796975209557956740806077958626073687271425446072712209712208109046230105152425346796069754646874399732092712945117926642959842946644743320452716741238793709337832686980799825611260980792396237907794103394769161659561675415555307680620709705669741233114901468946108578332527807834647200573716855071218295194123604364121127475083284422806073421228209511916974804956042895658291755956472340581436170950537002812191250587183535064328615257320555846095792131741264968975754987331286704904492526105718210311023581340932062146991350703138294637302221116774762335396235316866616685967002072916869070500346202424571705354074986541668842722358969678731517891081260169825985931945654757324634496368339214585681974816962365324170250305139955574481638618375576732699333986069937596870504528416591514011925643268281947199292367021527005804671801109309602481206123872743989821370658317494521109214684422204291080373561922416301622481040749881122331789927572836930016979561219764011936483227169728727340858059628610013012168925968630583538297134268895597379748771787544623127786758610884521768407382592043359945614146083691344490282417136907239830736320788062776890870990840665151807986111347236974069663853352227328879413558679480423309736270783492614633656459386842851103620260285825931593208098245510805435761069228267873342486736581962787639101637497825705339555907201839542045043029664065968716485700271832166393765772996358225504805232330891342338161689945423008064019313281888966356603223232359482746185202646288247840044669468291270422758793215433995824150318025455153515036422557824223716997604138366654707985578838336281115558223985746385516509638151914684901737295897803181440866666420789589844776209949131941623632727976016355020160657675546734620409608345511748756090312683780757000545265598080667201408814787925064485281942239739171836108836477933734131511767455690903901361354071893085793780970633415169429570508383039072189872037761279572718336509006087022195065457239352741050524796451218604910087650263224331652337047196198359755786408507204348696032240199947447674315523471219802729031745697890509811028210502425722459054706571283972082543229447664577090249355223078829212440883342839701488695619438250615412968927082680104517893956814323445259275748381823907924012203447602460645030240243722753363805786355124028433336790691250498700960481603300563227781934723408949217447780466545552525766333930199471096779635793795227834159559441518154982660378776244120523452621154546688057757414719783800542175170836731093002115657391437103873069549974305715603002711974609841941572762045110412959973525612978424432507987337716622514068539317700149178514341828919377075157311175342029210469012495523993903778488592494397095288427090766674023507058204037258686684881677012677000197388225256361469544209285412513732090201807470276978578916974680477409639184931792193939392741522674406533325814353449298230862152401820716602058894580328704355519906130086251061148813491719548401683661358820766123332310938148935205281658859857594288245189867922644964690557585537351084480419773457423708295626513893018935965331178481835771793017514936742978571153181100115674249648939207773871184603908866500624123126744108485531237589366635366381242631661448125895373151584838614984995678121270697720289577417694258001902436493046800481177314532571217341366583471936492734158665692863316965453317489174534415450479137246132319459528681495831115865540812943503515194955531026578292554674004746844012156791472649785076163168174717829717848199455194016259422836429453621015699391353677502293142425037779513132851172974988532286605154750263209580868011972267045381243797603966390860481150566033339729444958976592202984023750575482244673737057631392273770886530261211276492261905808821170248838129313432755232874619395328530075268708398225530018856566588451098662877009264304743321355451703202876542241226826256083726960538304020282584249118099501163277304165309534930340381953563800894026104825405414438232706912550108410708804974949574681756095776535436606617215583886750169444493897144744274854840297737429156480280154124908533890955242171811308677428033819117563350569993765283436213561223252487939551508018572872414197682036229991753020385750504742938115471944794730391293893357964428226693322243680967021391654965074100602876569615060921344695494907926061140363335026347304043469014210477438103582352971237409103785845517662770178460696409273395696535521575293869855129511836591698674539237586577635212277603904419427674132957979370219693191531030206223204733794860811780613623260128025034142959507886801868389823326513807545108141027285706247651558298823033109997961598886610415062614922148399575128842047802378729903566948829988723723066953156700965436460379059735447145031197395078366371204478569388514808139209541326079273336313708087399862724522864932538538185173753324323101814951877285635752664576653981057237176354707320175621744022636610883886619478924274005436267886712304974065449329932468323920974402449485864073689108572104271879147294188908155065033813649698054421853167198354972219272556674627302998549349968967265083834167386935330308977666662649640016329610634720080714087941503009053470325909012402301649007719339789847695523751653624544772764584253795218967846953278797720032147165726709054305019686552389688774565294758471634619655284543087315495075575793116418818915912696895322302901735410006454037095359875214138462571840265156379575756661846154433168585301070522938761948295275893787446734122920927796533610311529929330406714547417444264429845863862941822778060647986579433534970156654683605256397480539978579301238025886152226294651382942287587113639884155458697598880596913148644236961735500348154093971451538706217947708995310905262030803976495717223388398180965082198729703704254655231261729389189439268472402864696405872772828293191629926967770874597750484443448788379640640772700128200266244258228971099246703517100745853808997425800030197879341987337589822771419180769768249547786110699707016092339371413773907237162047878146752024542675705705814986678119983384701822422173499294240686922951126591252653332628274703522767526611750865657959758930879546671170968420436341917573216737503609238774129870188237265247701251283929340053678623430141821615629970315326077709300890470980375442578725477282075942086590161544681583939147533332551691945553582404733827354275240390445464646491737530968230943149750709634028272006897645713052436570221422560315574712152777628625741936388924914951189062940528376226578658849032092950534391590769850779661213600247575724246569498567594420611134551467049146266268489105847690714225595887576849341468103173365588435062806628183652816591047789585996141771306180454418730385290482455372283512774913228843298774012474833729451515736600444807362122091865431947793232324625634243720932774230119548565819597788425934577133335430026307078711690518856501657342969463082465985551809618188172124206452213332223403661349554068687570537420675951621775593077337582724260045599612812869935185258468327346563198510156507378228746590915003741816075022519768184226405509257204792913946033632028512372959872146578512729004515110544807241047663622698185868767487407777768462806374498200544461114130181574450817149645886778825943701010521621817713016522343134068407621357485214730111237468330965263946826520826939410512044388615877715328945714499529238891198620026186025988844284915445401365631512610505846778758188739456187416295217164881071410621651099350572246592726146140077064524039986849558212647372532117175024694093822438852255367001737767203617327699658029511061962946573288018755057361815392251045292538074084874688322802509856234536843912372370396435604462401654961564347976838201421577146303796515644127938808553435449878124552342660926144468980795534861252377495208748251928164958218936594148180380092971342772169835260876921157498715745128081697156152875828529237122612719425103308553317744396793033380874064933766177061923376432207172507658317878807101599945689686087308463227217494123934649083638612937931551279528686104761647873525017422046072044252876223030125772766761996116842084714846185636060509442273556434963598406506982786022177614720832851641013601251302172822885632384800727460397446308753302046198532177985221566396178936523683590482965059061105371063045122325965081398342865542434322694711048201860129894832532777755639154694660562794736938974977441304584760113831644385418357611272810446406826618411344273572170137308972177656753223173419055313244234796709268198111904729370955495512030807907932169717496355577841551502179933791319402102157006796349274484501166188658745721690859184697610872766581508726003697027554860776877205364310112108420975168291992301806227252270809814889540234572972767479695090333773582893124584428283262525507466437315029791005931307835494191439915223235233710167806819680337395813670029311639295746257491174275426942369554338762282208606251715005896623334116740929753986471484926454329556884235935984972121791018183938462416882677629483186415389547119935627194670476890111387409020797941893994003365607807738854230230748562368653931046321115148893461658742054366588201504295737713531430187538202888011192671867377428761977257495790190770097149600102405259266802865312630936849361047281499997007889337382922720593482797102330093091275265801025048214016225401539294443169093274520747211762931299130799820407589764265298518570702751715732122281839338873858863490123904915089961877350033612014394962058562787681674852779924179472424015183629097475021844362445972176076758432733332422209427942388795051977096689674715276600017051680568156377011636708196507936720408632201260067367732134025159298687855601093633306047831838968287638447620858217424633415797854616072176389176058928695678191534816829266538076988965800547689196642457562749486541322127380254755659668655977020929199661986020602536976776961395216822976203101964602542833414934195760772643723305037500587597705104975482418742947585238618791889324633556225726740168255682546821343093341356738996094552669000158656985855008576304201884257916046763282496963659819690464980013919962270930284940319906878551109916439830816629285247472878542502713910795736040483964751628896710172883185671804917828915206819277987579518050554914655103228708176610557354618050161629439590961844732182156536674830332922646638198899735171336749694338560575217134711013274717346231860649508275772926600240479013723422348580100338956241497847465744334214205522897852446333301379657130320928630022495565518169305818679168035492705418140881079246431289448611185208790463940077399996838401169132885460352996933522610178014334424535523558155280645867180658570617837516795574061456102396317908171511883784764449567501212676003187083958104670367619088623242796672444648344832490139962855571594848497163561246152705410419774656954201807642269702623556081003184241735306926997982809540608873035488503284928876141436956466645565177419015647188075040668098953266165882252637969039707479299603075583970315248954244868869305933769639538733204624743555991230607898897498566385165816852173506307870589135567217916133494477274398651486972900632948632518387554225218310125065637687747950724210773893510069928841845756399937273354031918975647794438392086495585837031778733203962465128253566499099044278435620644218653149466188294232442960284170144747978956831185006425360614064223436138027305293183060125907314934848768168382071855808209757541908348059007264658875625350087159985509880503275086583694882074173769293558880302186711975997419127457945531146309538322823933440400736907508973485597723408454171794162004383638483348272168430706515143508801405784213185504882701742292987038644934253178446656113678751342346401482504136740503835635836724427783842115034358454398896340765118315900140493591947189075958104217849576355097383385684798183642516996799344266807857063165741872076996985304026263768233866673402249528884938415829329375868619577503914172442745575176232044069278898478688604492413226272395369823184566439504289683291118272673327443695342119094835531416093810334742357933052394226569406560129268433252492626796496542071223501047616221315851804907182704174425679620976337157760751110304220063563374062331008544404938501345703610066768583662157483715600067849304370279313082060064706500616507303913445367563021621719501800141180616979788791085653641670853234013125556474444867631141392730590065527344865461381789788321529771221812991532370802575310654559466208543459167344590747568891859817338448906140483420488847341333570539448368843421919302543844947875829625185358279122212382502956048454083992123730051353041906252086292865201705827824800032774970213116777472190454471812661801777648830872869063904822998853907281582753420195436840949303594730276019054402539982114798261299768098762979901313507214041591728461526713205950393430829821216433855689535820322407879799958664825687150589502744862747184339770552148402033185024166979712120396828745647892879685361460587929185161677702867738552988476636951465241867190461753743085306386395352210301864169552799500500959944791995912220978952345575208742734882081719076650242833765728998497911239103762056349018855034598777768122640848421264845006421521921051689218326859514376432813318707991494124009841599853845109681029672990620476956610001279852204609117142076241623222483409560900295238485968356438193521976140017609659505174969734445539191864254456235990411721743173119123357644394909453034005575279581138413588476517986650802839898598373989855967440080631449141048321991459775295864814864385988930150724074185999963510014926038512077078425921547671092219307926273286610257633058232682547947512606883621890733673767902303130643996536100468679540229097654133463738291941245358577039545533503309782377866277508532437002730869189175075648990602462633720103468296009820571062234478747606854048065178154720949552886822489792308783509360507303536813090818329445132012219874508204677180810995309471397236391359020995419363772153710321879698845176898398933271793205019413746616430872006085474282765433178509631864458327867109354813751152649238479560749754382267717038833181411183706687609950854305079514305137804041903546500780128792864794899755542833158575372528203725739692699830029709586671449528125824840020809832881943353225644810298618200212761659807053597258493979965826351101383671328074516574055831134103011989699805823398003878966256017951644199512000568206555785460904496453214147955581482781779779475497183877292856673784672139892352354250184845588452374224664240253593149657473053261517615629804888786687581564351409938730931297563157424937666997830979734463429497208298499963510755372862449776302747936411974797945397532497053803583351946449080718884935131550621951992184630787962402245278392105816194713770200706079918085773182186260264875004527702918817551991650420465022223827703859697823186731111974998516121246614252625023809650791038002724719651077948519273910051913939007419823954884610609684830063087023360647641559158439100540092607219699835569990068318799322524453278000587421142672080799815699068413374342950134682669470225797140317709132458673999740756880042063961874878365310104999222881100155218690504961528964483133670344596683648521949672242316308684302296561808576382790123691967516539313894626304672055549493080500834669735756290750909452200361997680356925477723433805401628250053299875039860686854333457284557882696123515449354686876364792017830553450068541965693458173118493848228393552597787600181294753856231481509572932671652332147785638983787604330166048814373291906779033512146093514510358796789467786695927909942100000224302332473624415865730342679988709836398548339005045100517626710284946900878216645160542118048018583877236971437513256579231822393647020827920013547286581337755028214455168950492861221440223485840495224941107777480751032971303391179611554981878822103802155190006504828998555200533806123391133430050410721532817319074132490100781443500522500536754813451302059355857423755062702630839645981360411191179967055941922455881748302629016144626317662227484259020782790125701750573035724521838678070602915692849550843825483302237134586567915089043912391483537480056735656098631432766831198163033459421444906626039279753568227556639851933815399320951295748030228004124514271675823708638062642512302001143514178982275661225361617776898808107375272589989443154502932212989224924232192029669139779862112917641550357529294215909064253461528152828493468484245839082232283598091520938895839862064845315736030431748136453404954161236623785432728900741646136133336260868349878713940324429029585892088530615397960228640581683778706107399282904851221344059660382174432030343124428203793908856053160576102521688638770434114957593202111890496253118936863107172331160390622558187563260468775066086514030302259329647946296973418978095142695636140458496299204591940333166553010108409556787564065068240168490863658985025977991940120164556859079668402372650385783806769892815374417213419939784554216701283997476077841706550047286315286670084051223998185585503794058405463808356126861469431646559379307872803961449815980853134305142633436575563057169102876438934490397692752006821891347590956243025552671710306883450756250021976722009145029072780877080624360413378752378620918000269554580029403742273758586583513443826198807668399744769336918463365311019659448212175564461008739573751036137765438885577547373737449897351711015762392395196205566773928941782323185975483834126119418158637913925295026340037858472450025583807287125991442218943665379626035951103699917694465939546567735430027964339217130542969542824887995273309724627302364962990773195503611544695333314536338008225471296782394830752442332305004074669985383082612923976397312073886605338311691788014674797869443817349723770767360565489626062066480228393634416378908689813419168077034059941583887815551154291544464320306606711570944555352259756823815730599746025824444726462222377660701072559795764889788112886366395698477331477305609081960349124560162078379167202890703960773267587171299839093654729407261197745248798860018122958401878093377204728045945013255702873138458963776171781934737987794905811410624873876733144335762969958015682999551020069272154829135359924263403570185645132096152534921015131736418910135277967095559459957077901225592626229302815141028783261419809983937428189474852916278648280157489893934575525560406380637192576313270917304391223504894263068854346567411988931201421238044755591852283733848316779926468759239188006518147426612508077453142712240170699473932173179735450482748818329289757297407808387747230835414095420459166459554837102106145822095720841631840741854738846841716417015644878108473800627524534281533281100135446651680272921126035132914364735148936129885171833999804960053046363565559562534351963593377960594604836465051008444157264833751124615695358715677701287670744661435975915709491150725869805351453952370689460353750475659188186067506865938043714290807571976333561831501792692585924134032477095304379621865796867601743861537587699125824805724810472814531309031800510301334222039534936993295815181407867308712072879921602336126578725293559777391788718426968040493596780750955087493743333672199269184622876578367521286213632930105391444293052436192529175245742341661143117207136928638115836704614966372982322281436738507581211062211335810927783085226766491591320155807181493254251504688259436487986763726968216073359080070363860092453289295502994891989122526845234351796253348561269077359512991432585458237159022972542157986108305780802882579015211355311929746445430151570818022783614598626900638351770978741566616565310215953832523327203894293499856907350716248812366334908082498266026927418785753277144563746830591243000725464760937663856846387307091715668285693601994930320747681262984380375812428428814722036618509095340577300970563206928092907681569172970785068933208002846531129464874505068629856528890459045103613021260441655536527421564668725167202131558833001135914248250856038631253792388131242399271029282062072484809036342938757748859859126901038142039160848076446562561368871308103820833086894547244254910679559657190304988579638941625612663933153305836043469462457116476448895435408001226397960816662725471019714666535551137766766314207069122703407244782382298115030392886628077369447196226283584164756545127998571642854852785722310777118827877041018303801503389228749286218867109121450311937975286905498528481807088209391074089252083802294744055360382769008790135587057677707794741009476538251100849687341272696747138084762865097779189395485748119329455861129177282179012773649700722020228180715457080496241669307415303819667565831770742423641801422348244643943534247981982142277051591813828748283394014453590320284334575504406576722994009929208913308829646106466244581687630000975083378106413821166023200309395683310946663511996720380103874705954663567611573445223944588099732269880119963170925428397656492527921596006432625270024583425017846272186560937772250725474870611870052272662590234793247507331431657317442013341266784821762079327209751914991368879681170120191225178094503993069476334996691215399017688294757962819202624224872017986089658636657874983998180508059682559658754960060755791501245169634219561964230023241870635810426295207234306577908397010549410339278834582693326500787700360006571396231583589392299090841743735295777005413886546951524367811915413075623904518816385424053178730406431574323255289867179164611390931897344354476837740276039488543329056951199871292324353430636483729815484320051194339637846796188666188123168083622139572614762572529597075829323500017409213511607052640228139619210293560331721805776266131591326780112158877405785444004958964235270630686758274134669017952901474490878266852726119216010237301847154998758950463702441945817105272387134616409519712045365707334893936366228333329493589813504915882034460938383084032398620451932843685552170377611160889440257215737225350406405481874463401677532795743535475945321157860274632592929283859303933252666250871555474698103197670229965698549684224126784059500579621857816113320974951691225241942254120380553335330654265476115398156225618386386626050857934935333488519478906411146952093631779665335408907330226317539656130189802338136388975781634041225155168613114094624057265752671435264191660914716011594127887943781465064315259997822475701124531423860174349381363927079469090998089645719847344905475713566071680742695054939229493803060494322193533812753926412493847307938955045875191544042842299400167885869684923644446282265348086666214503992332429641655074631933614074382594145258225974522712181939465403216752127647483660312535362615748491233671460410187546276771203180714703329416143659750669597793947390108018729780048572821402006264650280752285218694136346906889862756569314512570161092113134282061373541470722289420843082751205440127021287289525908696495189788594134708150501210754215937157587555795238951258343241738923179842975239905902364452722474421007913187923057273136219063592802489784427051861192939002375397716072772252396959999043537889003995397824437436868415628004799359253491798206533842207941460231144744423671723193161564948009686244943849956990671027435868255565697045065091770374085969461118838734341404838388573329997174494013233680969588195237449900512510908758259530068626368947111751665372471902758807903455865567116505477038453783299617203517619298873552330714419798006864008376091005445725462239384123711045511434040899869386597869457775051950578266311056529961074048717491964334158633476911568867231176308191445518705695741561321884603384901995655450534774966246193538558829341041912830155037950004390161649231987836439509606081019795527732927661646887891836882146065577943989157505488009290260287765563376036334400671976688809169409550809781699022941567127059863927565749502023719354431708123590571965428514825543492223320852391153496677488433371961864757604086490257544569668305192514757053536403912397830674240382687636930727239863406510482628132405433446805928848676568798235170059123868902472470304837101336129464989985609708255705788646760625981499222833408119237840267940812886504810667873036532998901212999382481360469657164782851103718137763673169996043518049506974023006102506417037282943171774290426642306447309181588728399348026623457612432189897645741689974465708439544048005761154233856142755299761975659527734333188560930835246074950810464867721103964350131076699921137860201689509281438837485765494163051674443651344530961480386198931124664494782281384993929307626304919504929979941095613770871196352989964864329285068034383975326505352176692340296343877743280199697012738161203277599706614563666167343056730067431191288218276837671212380420783441620209416320731512969331011259473829884035363462677231863647197997911224343159369721750496382983161480866911350119495810198456526888553070354124775842741986399147581913721701936620405539244667636589347808074753379929269557933969023695436012411543142363013047543098952450639388822626430123388514000835537555738653424193088832277535017192574372185749735923285365502449737718180389428616553659963368917198771034640201137666164890419596683341763536541754719551421724544589762132895306865539768331559087274985336013695665710007783049026268485495943831031488123348313878312746759452222985248587933461235827236226250931468069268756095930514350773484428008306437628587809454883445735075863258524081319694033503605243090388097398233188975481874981047385248635763298156865421202418455715034751866086726667434120500314903663473228813624278330690234245939955785084578032178644657979146700018069309933724257198647614782666270120531781498870371282580588733760054154601753584907684363951717878342775353799924515488742937870044696184768357689076746864811599807757001455791913125915373480962066783674029016567908945676067729666312649942905415998015663619060560186240853247646074392409097320038650698044048815983657652811864561972532081746416836804388055041348906945079595842451248822111401963464740295228387012759456928122578704757673247443628660028969059594951011763557025234522351580207075642810161070592330617988390802260433019785321470025147901880601644365020179120948850909079395278512724034081826303630917377733301048098990486387121738717879000654963193269146800285630719657739853154485930127410057452159559898379545255205853362595500462859381432480884483936202645070115167725583001574998739926138368321410491376898437566684131788290127615751790462757540288127245015117446951060421328628268249886145818707414416417115674796020056888774045391805482735346016544833545444977660781758396664392270845386778898058969480016138900803781337823328908906605209652495489989588435422857962998513632203654800804856406479836056978478920801629594114968198685823885314754583943299060904239161813444323246850610259053040319694904479612741155209066662979018421450038200849823087650179093144325967085309999831159275150549367303799346348468618316329559656720457358575218362007534205524137022310129979247674220655130693514445014091209445070295912582038816649362271325971400497417565913353579027547970721726981863564946040073556973477209270819470632880370515398543815715192987440290228783555482640144766616856101223648471464815528625185778849017578126304418802619108171642428470636935183261419575153843959883121866255898080321857855685401919697073559223052610550893310015476077125387558217735292412233765589042997789361198962033928983715609127861970409724340607117168766389408980659916899503661480402051527341425507927735910888857253358706099148070461566354903740127939320249360602082746304795058150223424549867033113806445384727752437664460400432510659300502737219325796033914238435506036319540687603146039309008440335748851485596063042116661116770992676636879182799891031019771923932522305827907401521946494354228755820379225235398421981711386747924370837329289479011963739241592254234933282823415778794461790292876229902007185617538780548657004909510147815809587106903953824059581587936321785922734218700426119136006958231399548939704128772171642160271045535225563096593706834759602685822782501269271718686254145898565363965793678648108873358257703327348096675055776130636108980825905708191986251385597229131111673689579469714756952786196705711861788875962953881202609165693988848262184879184541197453956523665807469631392226443409249359796280596854471969870359772344676944598674475482964697734004456020381763899371238547537095037556081238935087697717387695354688291306799784097457086167722022564562120959566107053251362935215736226019633379072652380072860506976849751080993916112830376130217262204351677032336988103892441088398166841484356012861730560071618846628533183886863600934737949879574327040351541489275212823661182167289099786408715278375355489426481884639747192092486185025465926030313154698421743824520649294533550822910306047835751565942587770673646163031092954509630303523442536360566603497679402951642028121935474466323153296697209683155758545100803072687095441751121767351376825395700450905672741599019668182598196257173180025719244903173168602711723181284616273933640046500999479722526152641997535202653161737364212515740076531204336025809482935978864680480759393782542751362604313243803006577472986910538706952844804059882881807002020908124561023046322911321251636770695476600300197555069809975785266408855276638289342638068121432457336515491372919133607320973597973360411879429648275736128602226948840395843507782196544905010731301576957598414905928870510815223363808678035791780258986602533600038258295092398280056728214558165261729308384858200506452905483591405212084849145843603038817587469986143840148050861154604173536037511411516421353200982704899356365178137868411207197068857523499499501160952738871345967852964130852713555143161781913436976293466498924331194365905388951553080284833879306905285184980705361646554493217760800995789701358669387455741738806529110903762154508713314122301050616082135962415575302607514813362275622104426126130284238902127520016791893093202894145633727563662531778009550028872986257821726220246438664156176102919674460433916877098094993004007031688816163991673810272452411129281327361360193611248462098605594865564331050037597551560549578146921027196253146685954278982038922385246015682070537947243309773987059842409561154894367285515839391574601282237759539668486943723680739517208924657059266698765921524923872202047605948078612197651070383545302242597524254354483718081160396227883370276477128474264150869911334911929885137699219873530750929961095138499204808231921829908510361344067338127450763910012222622800926855263167897892471057671020678534752520658098575625296240358240917846080694668499285796550044787397564769756311757559913774271884011718160148711246948458504498812459597437039257999822632469783878618212425981357154556103394562547393264023220009219758825696764352982305130206170505156133227974732225296268891911629930673100755527053648756662734820652943378728878365784328889961873314373366790473529756694799436664822385216024062840526849534202153305866026502100730975311313542505249096158450137050312161485750336477555397994224225440848488908134480845494469148348621091025132373505899443489315878440765349024579959779439612710003569668850891726987995066438848660369132826736224349633184912678559710749056725739318572733053977650848119002633474104134302201538326978252927557767252292859053698691197917342807941750893593240769401671018259984826872949096721735571046254166132076264572749810406686684955597085849270619879034843042746816126372317249727602921565017225056321802592198336208340355705311944125424171386444165825340798474787600653862182941224993209658412717517829519998066628576939235982798508630519657338648816094057500326383345050257182374687014860831835300386481861945137643326730061692881890921204263405401062568283115074506490244683704412166687272033113699468577176149676132354854627836443659587135164651668536015851160528035786049776989699176196742874309702386044296211182457275202100067516094341755202958739775577966882851825185295261263439441463417352406485821328350469687766352173132508002434727492107560990150953549741372151458481598320144155448007405705794917759585848627765757710757433742077760383771138586855189105924733152607287833354195707419218964741654399322887273790440687659586310282081965350730102869020501302188384424522451632340957842728586883945077085857190507439508121903337552513461804209403399381615156137534962693920399055324087505929347724857080655962941289546645527745162995922720237309286063582385684431116309157495067760022710561727361444200058142745535175888598324968756142330602164551705793192262909263019692739202866914641423462306640809645027695083797248215409431114555328538522546929695280941013559870070716297521240155807984608144634019971097089422884857386708419424788731802990666201298432872671523205389281189546882481944157355613424334012237565567263115742806581367744216078961827132928737312587785787544570123971524229518746362998721313780535576098649834383487614074399570972417054088183552972975189994917128634468332616694212607943882648608502012581393984138679564926274952738432887477612198650640975149503299617632347019450981887884190444881002102259320473033639383942323626239319035353108976179488002086251999024093506237332541554051076037974598879050612769581616577178459372293246129832087095322166906810648639058614396149275971888950145720635089093041179287077280922723289665150157550953785157904067036128090665903836211220775809539576683258977991688343471732731074877890464506464627600736996771201409631031976030525791809523263130916564332576828297692506116462953208970206186146475245886267806378950369818204112790502426260885249029093987794428000080265277762761355223229046469218063826928098420405863794186511268129889102178333325925362663602089249377418496727196918679337039635302384112355471190347214580848652949426800816858681812777774090793898579780548242898443351877762565955289784858848737231836401145936107677353142030477756328698367699183482726027719089317669515998341986396469623815057848940232640352752672548619094748800685575811581495426984165498504180918266341064586963372339759562092371034971263693673250214041825846598579643120713535798955464082746991080633338057087404973621608925139793461687496300774669639028484292004795066754969451453506216960294010221576354003213461101578436229875503879796223085681825956505476838701074814236782417943985086977467893237678678941516827804331611965965022281425492835878168173199544594480814650490054424900384443702405148658572235105052190784260222817211883819824024414015724068490324121732445582385403760799480041632210362373090058351282732163713114511325121017411852821994259193782049133030322984130240509593161743783941289499413363881025218879481524164665114707714255078227864747927268820099722660959068828041804535189690535817040985744227300416127223487942323369763938100126469360914068441422377525412838972756542384136762442801060249454780445863751960536384289588383455651204463564239487019947312760998356715081936774199300924010843823596325295858823707379499833527696210223773647839340244956907923676479429177623244334749425487346350874698822662888456751238167229317734873168614502120223252445730594992160674495977041442213421892624565913201474303727807014210064716222643663101860294133720276166626473644511406585598268433101529896292229711026827724271409099328796027852216203984823681009666687729702696843794258844811024332496999206703308011997995661520373835976845284017999194361006336971898893565225099092846874758086004209999020505093575353459676737272600601141081466284582164271814976248454829900898082069936877471049577372103996557725256605971114659219108744614289457006018356713399742834340971765035152374659122215561644092733714495035867034036086011474885257772678141682472575020021682007098242780982937460727497940444427366567647071662300053373817890015892032820448588642397990066012317995141399704464312930882740016501365052501392233154506505548157134758822685409314920736703668071420480855380077764664329187484127354931422972374234260284120715341632110097849531399456328061291916255292969717770156126449948309022162106511169759945207111920777062787951530651913132779765034569894428059907862127962917705565357689555743560083732787614982792719709759239901646655055876070624397016191471235126598526928698799717608569115588152006094439906786811016496827100644480525033231700206173809451380979332108099550315411773702150371340261121020102780985598341046347027602378838947502339257415744542171503124926016777838141124623491564374386771781605037475164741871613052527700435758870976524143271250155210147210276981416343245977598150927826738285580649540146085417485150241117733219749925307734124797804983523939220809445753701203688062533565798181380319865518851535459034310240994325569347161430417244027468994096167857979855564510972064613395169389877869453303260795854053751595874224292817435049436620492075092676239046082024196581544233110112662480678371642791903118346915872462860541371057899688279349056720223793467085199033484601169548124382435432800728495901702603269176257565793997861819731185556569410604173791998968063860197815783262430642075688201459716764487431776452265352155375456236068790969240814712477505749776066540043753294303151210803629141971267750212859035323889402516987408430722781366146507945081997124274157223137304892146418431281470537120595269589021462899834082075107571576064069682723088473930641595064292319792082436929893136964337928436427292911838133214055993109919362543654217867113134930503763821710396982757593650137153075804705995003741031522980985955281326807997521881616053110912826142365593636846022721210220153189122022309542349051665493356483981987339247273477433499328379337535039787180746284773090653869229210087234675025318647736897470349208877255424470348757768360288416011314374369541967608462593565180123875695987144793394187144297448152890772386140678325746390861246228842576129686070499749882086645410849832409817722215320956389774536820783228656248955392540692937904010409392710121811860044688829863907895556119087229555417683717619770234053973603391347368089875275244618301990098789635403479408349742430064715911872668303460485576404108051639577300653495032414026990835753559730034023612971576238492487075197563760845062053016190399670333895054352807106763000818829914096073503553211451991441465313719119636822717571284384407541899925509532011151839346650276143996224404508928472829642753487741271234119617901284620169427330802407740535906722237005573830752723315268830124095548762969839912321516452418461156667421288348596685173510801942295981720982159312326110529967448375260365263129561160578730467839810351415402022872960656083471856823043094893025326887987431796834462500317535692236603938955981740187396967255029935292253803126979115967497300923322477584260498860571290075117816244207011707422062600211090200144155504359868068203102270717369546660780204412165403793589391055235801872609642963161888057700979076855758528453182610489880151216825179347329977398708482366458683969871322216482771164180410131165712835899231232511703404705776871506750376856467814614043035657104502440894568863915704168295106086506288933091833472415343824727695792718786906362721845469192625541315514524989599180334233246555905818701662736464078999333427138686887075383592070864007230110166291683934937575947336661739603643978630752490720287102940732734047560391941588057933421389930171109080352483100173032909773502569102948921252423067615196460504289247644312827944823028488486880221000560199051934452341341055501506977784124945308917576158617724476082970117848148202520459443609428197761131551636289002124461838146284067583456094742271901187665899085175834893669398790437871579074462822709553728947354864742418736349831403410184022003232296275224911061089539713595999665273281097173004595875413195937786668648838988251363837736598299093235689580376471216069280262863669807627059797884346716727212227489492949234677644711149694027954774102753002277304551535940928019912000743070543420930368160189436196815376852131476902518912289425492935876114047738460412805973130879643622609156432911135309110340624903647746417559598354013319903950008420642018402522127145605805549873021318108011293080686298998712893396764047258188593403040039586460977013702966887519078677260520349663716431297738040190683423570488809750837031979734430947445228032109359631858596147075026575998802420485954164912692888499953104546653738803572106367442875581471417117397025268899929158927418282134799630119816179979639755413880467562700904977240143369279944235685385649063431316538790836908667117562281396500250500732205585479502934930554494902111294648965609788802691603333253937978171517633676765486846460576360245869762268979047201581163424030483688814138606595521649729052111897696852770412544348525763481634136616580867933242855703285535228994812608415059736721432723346509289361894353894201254089000129184604959838279865457139696175620558154803220390992780726359766670545777203684106046746072999995456724339406701307701271268592503433769617032879621079370643268043117638272760676061318286179344816647733293762792986274476271882408930728149819238230055097739204720370824693799190611182434186422644438915160894383534658962102794430525785365736521159302286772997562546043491419700161935776497816333568859613678435888625736649593887498151553698352497710287646770490942360380078035281853952748576892460388276471342075014209124259558829907184604201788369104306325489957583265875452767058291804232672070898532506204979978050522371332489773630192958330615838408917246478129029373269913962900907005432446466702237746733064412929341872745416754719997057365745643375906408082752045989739343332984943167882997857059688925561968565764455245909918163178001534000132914512839339075876411383076433906243343680058240504519455867535468116899813130801821680530248362617976107481318726140927353930162153472565954965477582232095322130584502830108834388151874019391173249414724551844941267324384942484926660268639672936036979095739531829860910097671411957745753872296873067396827531662695954819617162322255606318786970128970385273969352746160452907744403154307138323963639791560371843019743430185434697660834387364883916437359405344201203857448856826327996181230616615985804486970384384105983976638206519748948512038916707019923415297203886072872866133744011918442974248665011565262402129852186856134203929210137916404095750444244417327145194551147245694825101376597309677758534064979428926875381696620240488470239470592608877264980148688354867671018815941985144086146192030557947354686950795393389924551222589934262762989196366789662479790381746903657476826348221460942817662658856253801829049554840213613229484695522893174797740455468678732411550875046868743725636407239366340074158525878989631809205309036770475061288023863657689174101498141121902164216910513364234341513318345543416212027012260036879411358634516680658220543818551388262657135242741822782184753995462131855721012821100690285557313362924793993169563894565936799550783140784733934347401218138776249064458504556561140964039444236415882464467457867253082893320159597981800865366658536328230417835367303508086204198650274221705780431498431637964930133756201258682849801917810909810262287436912968693634524272927281789523583555853427556244542211881333208020320633680681312225713307952592115739558979335212246677028053085596535486223455649526845008648327432947842624050272754186850266087838384059344257868915746119397828801782513740148098832301958395397721729644237886583689162610794137176829621292651137367373217687968959323319415048749535721614381707435436492077240449629819782803619256755966229823418638454052659605490832903781600005081054344908713090268121296040823371431018827279165505910642988399665136330165050252078333704369698077675689038149354960069232425024326718950446824731175892352951030037304377666281790888712446281514681026134733060585856979487268922039811341169452578019386266971771963764457442531608860461786512072221034337147477152264785204623527470758053114111312398809761161886685510933722467727752132118427701481994018807180928370246190064036579700451406410847678249617061012788030085584689402300935093687793786467103058395217853370675150875888188286831139124029637359824080419127704031262064564283721411036061223151289058231677665005847485418094706837425689458742646338201846357720694392073287151839266610199800400721790822770230385525561644909218019017338683934661093319627510777109319827476902926901845401446308065356342968080948530575457522666302641454194182864061709731313494314336862320715225804134308593901155084844320313238972684521054234420633698063647726188569471587266545490114345069484137412779903164714366900656639064325823977206468147920671246869359297252321085383597953237629740262396645784975032587801235987720881829646405819245694521511801329554230539555522861416196566888426317531654833459536264503567981407647679256709549861057426905045866669781526551984453365483466254615685403126546721015673292958198954282048920457280612330525238815414836563855509425457437425504154450343356298587231007053507794314686051239313830106550957950359685363007505134305638607005497823739843310989797022993605706515838837222527939467539925577614585913497713996915307105067400695983300522833622485208072638680345974989764791906004021496345297803567882833712908315624823934864791172423544072974225050622485499460265158757687653584927571164551813390786795320075217382499336138019453311314925660025225320413103856593854427575580239550128701999430419538443766641688220097908614920539235270122374764461710349071680077434939756624303166545935562358047215869518140344606941245048458493931707572730837599248986319068827280947587499492766874013474013328395644520722377799843842179683754325538937055152236239679504680629636114011429439858131629311133367530545521613637113942011612738677284916912855133965263618369881221693943203774157636011570683880414787725348692771822872146774877717463328488315719759545080479765551655327673081036959499299835334093945581759531569431946407324254247455347324233088974817824384495244324374765394285484779473975145040012425563578437423298383360662359073911838489972736955329779549252940334512174837844148018130758314851071470945687591869886482346766281979836823144997494741498954911843758264357078364168606261369573646528847285796037755399147933606624711797312076719784931561000667361586019062388020439521757784677639251551570533378241571645187389072187267599209541915194431129293621198679158625734074664151980647076384232462733603849007381327005009229610173392639584496704573031912726016103277193890363324290978774688302987058817765544771409204219844942895876160338544799894236513330560623532869571278375657179154245508046085251160526688271404741123265917709234760017093270324711879226573854574701996672636074127007233285533720992343672818784688426723352740577384124566239448475240481020241524792862026650827784871686906129491968358612154138711101342752580646326390449744173869708248268011025707032721822989817454288347849825555463213553076157509324933938316283865016544019425552542718217699798991404709722457372043620332305909641778239167755063564085416915196640360837349578638194543539823447253428834001368625773068334312722498545540764896197259446647301397844468837175622648235130814849812404777005143734958010781515306385064210045805724997540787363517245825318137371190202709475567159552029557668875478002802898045652387523042819955774410186751796119539019457937656004482979766970854651081194613866972183915529224735778843378744080852781535328931627827446011103754883263117537702632722421699129757218186507473370820974650901901927677110678226696285636590284396421927046188004854860322518006418296543236524090917709575864928765928344138432133059581971748217304790572317780104134289831595457286931556547029727639426056318652708111842088491488779268878818276661140461046584552956774532716238506743654892963836428090041913065568298873352759913740849824636933556651227409163948365992376952051653782185297231925900058504001486131172162315236152680473443372326767379754896509448407545137188066880605257573523534691378518364050494174021775016403279136615829174913066791003060294100671300394976234526838833590061630878096074256383566121609363528442602813799622285942377370402942773767261675044275182272417886996364387781936876803965843796840739116336126817955443350215133531317090491675181730859130365348606769652304940973636439888018010515027008065299466215534505461872338144839340758628221938350831275167316785722212388021660984534076301646828829355252184366038130855127082412770918545276859772072210538973248201305616433140681239885537703667526392828824968637234642323932005753804694723956115400540253786206321219307063050461213379312239194004550199331231050740116185784049821334910546189957601918211605573339127425166710400111609479843207961716415069773081274174997350710030598583443338819139390623637093189904472603312237170133811050347909894453275167545916838927245945153996231487916831670299133675070319854707871316238544952435606248969794762137716368319248632996366360589445366789443212220569081905813256569699120997022650717228367065828621562165828048547953101350795646253328801656390321422262529349200580088725574541914389955350268382298046729702205762211199537283523655409908066697235586715156973218130621608251601107131233902917195960975545743896496146529045866585671346807221300814007910031033139355549402466997094623910092460583614911681618041371028425000734388554581327566017597794673123603430061885240703174569665724508796854390491377699842410758759394801531448375608231209338625196758296488389143040011928165608925940411289425819553036519685310893685777689296289232403475306022881326656918557936599970497087385801194578399737176194421024435829502000228274107684144923308799037462582316192605606069413102302649713123096890024639351039956640724034810766630032157334541076103383574703017885282341171668148001913841539703253047806025537652040228492414709134502547536106440677202939303534129816756676963764912884083052675912344983865658511045321448185567431696943178764073966647268018279909847192451987835825432810350276265657040637054834550154749388884175523110509559046526150064255655283441619678993408769781654419123245860126242394847846357115184288829634747283190744986902876996373925275618312737588383239716500375928355008701284105332274779554831177016600351659419755875318082557275576817287812566276048035433153642510099064815928183996495923159283585425709009364552008191046130253129783322666694009825986185392959034534384260808022769586402427055008353239402600650183046651042846273114152376137569967132373939559969690107582003353102614687996432634223598189868850853261171827061359846708982536947240225712328442966002269282390397991208107060406570506923606055966795283472438740541271274436480659318250030261693010451250535410575743657571921502724855932117720023879670859104050883192963145475367246301286029775377765503790743770151331738120893410321598501707388252285954617243458162771154278322686429197918159006527946968611889572446948579858310189346411619246828030986348835040546100637930122442040232302423451241539317527305377940260408643106595147769134835519695786054531039676558332279887337100934897600672321551899425846427380064207550336251718237054439872747171585952672500714298752913862747935331833660668182667868681259314581120559517582405203567165044400071118418328116614625030605247168887493398414000494586880380881872546749428439645483457600743788856900946908820137670564923994217719320272509418742934322117343222270268932285571962325699362638220556921303417967355927006692078412205466930044389378709913959053208146347969920581639147878748055772738171771948473953479718232899648372306188117992529616087973039364595002538206983708369415495429622510089235073910381625203585918091306973124590536495659990087908471511657184379583681917604847850375620967884587216485563753795911803633071126926878459676258862773300205924764731742717448730848808887811834500906132691071078120909080140323784150826714161914482817072446029549080630839709703852920395818599502997367023189463710180117509610544574445303861312276716235441592211857537925103064389181411964461845385756692044230253173178737303808021339234332011901489484359505326074402740653933888009181938565027989437043601245796272346142162078671503771764582981832317301708242301585162468578534241934156324740043734252464364615009608133995685779647670488523406657921349817280686415178323408622854088511717984590418377077992647555037393462911720886098933914925463920120685177749206008978070274355395375928060803331069118112988215450911592125078118040754100776406899571604887348820673851432319995967699203524176675036346183534357221333887675615276131354559224751802649060906604469616254423666450240104161254315378809430734151502582652135495759558735265186869627742522802459522084396188614136257475403656607928689051395742665322122539865493534571266165210621788287244860330458617906186201201299077681039023774310612363611588327648119835249412314517417456170357635721462200794941720453713899096910529326729771981608373086625282068113487363303584185959346094875069569219848597740715324486887884361568736360177086009286669570023591754929410203882884657661279204241642115241461100776658544066092754874957987150467578139511677195379277722416326999160163433505278060625185121671589665714511078111636671377418209281651222516934719266220310720106436415826628581824990276405386342848751629927549581375832906914369851923420956043233341603274277877182718926621295797956682662983222980197301811391580967996028899859704454037252964809150537843631444583117196664906567925317370619506694728103736401008940617627173474012780962699734315040721016977489442587900391265511228059442772202729358516445060986212287412077458204193352100844763761166769910607999733890608324833973608574875850474370534410204082449874670666351995621637028025540920450821104407537197194048829145190843041427162999402078468948390733981884572380697867076348108205152142310708963069501183014650581882800763294898869556477724250271326182636246865655655642183948265639799614729630597320170115789603774619895520846874569897687002392220548624316774770937802467689978847345538758135036897547741211407465941701792728452688559358466026883413388100874309178145619989961286457809807417090346178477593475294039822416621829350602751733005358616324518649874348855546321865769820654505699498489598601246851773620347965300905529228373786664950344921451244414582475020332341279643756928809993341425309699278768434835642975314326966769510961907824929763962163920811372878816136915524944882535548644070042088334871633751197781820184276858618715276418639728730515401280472645969019568144566775129574688223583922042002665295580432758309391688036159626991141654527689011981412592709251169206896078204426343268805592703063131763749384220803553364854945791643884219206426770713552347271902274262135453797259515814713346287591277703653727911228340963732599814542543877297515789826818961865840592704940173050891110609597825976237805346739518727981825303658183749505702969856649182949307929247530775447276560378830763213508690538997072924765454422208109814431977986414771774675715661731903928686475304095566003376794951844896104556108538173938194016880206678070984130369943221623255793118642631467395972594942433239336692297131413227748802922606151365009094683105385166685385406594918448985937765527096166863009632229793795886003559676664137697458235378965814385243084864279250887884033335647494882996419959857818137022296704336193391399486384747994672496311261634671114188289991958227156726094742106639503673695336048160942961193071751252583636274388090067316525959181867412193404833783053410484100372320723946070126649485330070910716065720244655625824850951805350810389081601321904269844746378988477124756333970570013100940134372581047840582024191871010458412200427102900151290733350848234173879405522057032854318606650083158139384680856997107600343902641190802388059812662041808096332838383804827211232509825259503141476509128381486315954129574201263135785486145171764169940149608580256612862776213414329873328943107065636600251913228375605508402359507343258226314863243024280368385987175525730988716334260343094368425248099397381556536933625095246860171985207954572926501418899795777699690713504956936703093942011026876149226595118888436166700380571514074538438429512737078503917848604624428485408555512868471507125719652886390252426916630201151323012865152300248410098693320640882653194365881370631815614495886153913598998538605746752626109150748423373809177101616295965533658218322112597951693008239278767353940954283190019996030808378131053079646043876693996707180118674206036215016259880151062798017253450083149367181891811914516328855043406568608948440145262522199853958497669457446397156860084528721428720947987427776091533326967813754774761001885515076386472288788746812423369764576567943222371430162585808514692590312508440455269564614592542177956856219201298066548097957877317889299345576727472232971401495114932072025868141758959862551943958917297375935995116537673476558324100344228847074735448772952071338544086813862962037984127815208118862958524984418951439877549528716680246372172164193547167633505805285696952780206247306740765740439869718162202495270620954948313984553331704246242576046898094634228337697558424188069870621141953401709919213181145693405451932648434817031333305354440087621187834520561150378980080703792830497402672829131566718530684341110745773539544065100039398555681367294638372786842758478926652008621692986983142920322509527940445530589887958720156987010866030075930148332963376567658161501876641096304514293981287653945056398005951334240547741229198259130973664234668477058797815499685402344921061003800450315919543437934201304475185919157118049746950083123722116977419791426770682124107400177140560565917296997311383738959420858753590175923952617027072462210179703717870300748660567007794823886773753988249437737677992402561721399559338510885999335110347122197688251105298336400659329618519136908509232359274888428043997630601411443037287665556348361343831396559850845075700360795657020582741171554969391387783875573661656771117952642306260802147863101224127643765260197618022174629040583460649883059566389430318443992884962744173217808192567542321047115427463605243651448850116581061279407293673436212035427469800519965881946449793811884881597252902494562383613096561125990689246949703340259425574533465913304940956765593797935844679045897079727056888216223908617283174269703114810220399171750908336224011228992778814225358517324599158763334544817533918785906391324008442351903626678349078492191511287309143110399521092070811343392238180936619376459877171834118401872709308859574406414399055187995857642950720933929636552177499451993422739291451221669169754948527402023802927473708870705334645091015428487622629809568161002531645790489820874509400221633423666106437273142516305004891296894175030985894614467843544963874069904897253421262359576354089658100006952400212719707225322346356776474729395681293056252627920718887268167887556562825282807614837972449062388032835773985528968544712089852240916651839816236469366505651067505580639399998938381452319191413364221454524911121858808618371753645600333324777831437434871010052728718107832186545667156772114783601117586396737954874162094373578448819882038095445033402939134434627679784196545033066923534310025609974450985343025100674076418176993162286386571569974449593220492507119253073673571976148403814924887816725038945673711414180009088042061374762766189001135051450550200103218152248366481261746669449455120256209611511360194748096573901738040087312787618334930683874824670183049045394289220403652058199897215934989029886180754894951981822325393261220963614601914080791538010654795958448830607788094025364664526518421568728291393343813419943745838953987897188033278938474800399450852861002465459463718082743023173877973442533788405801800620368854453339501418316289295565088113601241351281477493765769767425352805760420109181989289008692682562088752772346530169611110314027789313120916868249964986354913435305242227283778542739967643454342361904012351629690377187309734964594413246262784645337230547662313090834251547732326823073474405939180338162197020054564130489354132463142012323874719539701928092596189177145204652852618165498313953036207333770064979059571574884616899967819697005487275833270657739768359903067942767254163921398629248681866483801677765899215199081553288899180994618275918683537093450736340920282100488847192231270525443030585367348597088607878496010420877056258027698353040601429611542350714672220991551655272801452031432190890787291058641904509488855647566891224597407199935775331158747037094222840841217736736876601357359195424437726405107394723969343889027000549672896539931241514545799049680212440882645861189610539687837504107246364888006685856480923029495628829336196394613038090189289660142526405495441423495000990365249486623840724118694065233004403829261893525706805582343007970188477136003048989030914360161032462210230312552858235627604978924855704333619945215532823120511964061736235946479794165878151838387876897289158757742910018063263179330641363228200568444795629423754303910395688364867909460296175384933411942161067950852302110690255526356375277467468492535648970398570331420215453838848001425541395184367024771367713287754732234529629481725555112084760092057868164282355601273125106860586869253970850422951041129082771386995377125387208699704904615155980254442552700977156488813849809129848073944259678001682913019061549523575799702981976414161439633852289963188864792490974590430211041748825955057019829193683872053971380981037058004875448560290284880522249064140436597366320057167637864622631041719816082845160213424958455530335076359058776930746734797531551659429903177111926926950506763541174570421148088026482493141431031408868467339508789459041279420725714448939086336605174421801309367958372754024658854540745219510198146212981984736176162171083171052101248277964778651805101683790188897470790623786494993813346916048615492252175510693969922205275623679154309259171733822097169061655393697282509650364816724094295052763076706444842324187797526750622141159066250294288876173839794297883658550171724995547049301338650156783033122333008225488573014018169746086493964528096203664988394392397362146708492100850905911038152367705544861654570197024371036800508979216330520891716323694510651727996127175767821779932638667419425426282239054124161920945779169197559258930884462876124155524374668376983010235560004028569009775479599642680236366316826177194963072019671651955893421298821123492890713040933971136952212232358227398576635790559370079208929494159608312572496019653544307848815766000102766861083326636081090949280262306428206966022727023798109381754845424778331774818657501227851959408139571497217688104337934655105306097906157514326505902754335994734631474114191014599870988746747456995782703702441267834497786713558138140692535394374290295050385827204307065023584287303339385464826853950331829519731221315687539877657387223887072987604500592410487840291051636324862209711537025105486735981667836761019773127877917019937461135401558677726733824548481095182019384535017767747231197563740792119554379258633629759448675432521550163745706801989992913255679288346027159014759586782709307649879823675923206220702776747629670309117679637252519496074958663835756664878701286691428861179980994192234581583298173284891712252604766834041067303020867186728530763487057095078442136956317409835692013146910011375918085627057802328595190320128605875863371089809180645032192982660007172711279867665035653536328365412394970152752830725059385556818891415820591527694545973528536612280887715840516455048331668265966537375191103107392665571705757135346174016318662642998597487754519239015675948144756604480634249714782614415476574355631509708074646151912842244598803589486377710260660109241449010918385558578185222916328096368439133298084530536459863334307370794590020307656393671276413715967546374679145732821471350377226464852131992773496361331652471892138638235750821625642377241179458233547076195062554742424715372474483575582885891382312123228339963400122367262924809936818083695198820864910253861064164395443756127698083711693563598506886671691043680146312380150071336907395230741236309263449381749262628045470708787604264082553407300586733810793220184775484960303050475164074289440595976480975236545972333350660489954686048861581202820587238934877268122693603299969945164175240686857718369015188190476703489577594293862886695572802159606482319985239680415523764833724253669938514245764010409540989697152240721334101650561306241357985056880794485072731941048121445699337929941839488257028361288157331780224224637282033545616429211919770174632117733795109752839461055202435544440418133861559366203992699568678287910063478152631588423748117718503792183339129046384497643147274004218936297449890322036516982301490230572966760231328940116958432640176034589142451708916531971865785335276277963227459410380265709869067391223634445065729929395278453432143511627181548266143393352450253748889070070105407835833252770326298313964525605981100516302434392959505983060074184742222351203862643866337695869597257388787083373148284001851087379031761259657860533250748911535803737772065949051262664251001644854547343918085061744724184861540517086381987954696843273877596914521479457355740005313873714090403450534098503638232326310179823556972941457432052858331099527322594190066406166918797062216000278722058391859682437116649136206529500746585660965756730602002800420471581984740447380266671487953630245721895712806371608155536441284563954581769452537696183474908789988727340260122131014788211384370914497854333325186351820031302300901858932927795979299943758975334814370631610835910912772584990414667553021514351061741527517270584360097464319818889343638184047813398010583432365827957452406158410052370590770024317547840568995148399956264033521526433003019187398688759813491288100235934255229200620036165482398614051690123267523888657922423933792375975323731164927903591013684996692314905469287049004181329508750492771853250168993114036093712066042940791505963010958512497552543448608435222981793170812503916691241797275836015575977150918297617564214862336042551706219033565755258886213355919252614598028700067961895230034048310343942905604807607878006182089242808212277712265191917655535471670905660355890426437214818528337282964714201685801734732735522562056807831697375577699511575583196547082093378558818744620865125142078649182366433830831863759010770827189783571622654848417807743382962563866240688341078940155125876310770553193374512426828913542192698547333969793113141609949157605877891934509082894030775978775084626347873710868631471767621436480582868364324419498110460205287955582873764669526152582250060624967166839326472564236712366200932664539215629928891550113499011463575785179803673384188323021692152589589162878745731158379254025677608149369004539932777040727669620405409978898699357344910586281965531626022290494930464049698007135942260314072259509930246912587994202776695158865841546112987953676442466283283068554563954019773150646272002325687433494923515886261234822341125657487537257670222178941813099497971819323662129596339879286410167358875379648044828629495796572057799770577974976790760053705381194914014408435782961282445375414315877086250603462068597700093608265091584969031357316005128665762460940350178297017423746523887618942081797710121674925937560638546167917269448609297467708364193833155183553302347084529786660228632615748563707574878012058654808857416482844116250405542571040657706808371201116607145784943484624954422207988473337243585906937335308465179783034795879130545077386001676828375144348509082222762129153712430364637396464546269631716991365094194179832382561912300009163246014827990093693153648513315942851196640025972570671679344105133571918203210565970999327243980295489422055277197859679388084243226933051971925133262951103431907067327624706140558252118799742278200468600872914614746782004132835080751729004543052844719465147515921003926121341449392585656516656611751247378482153430944772711236466574538276507701726753399373464940011371239949816960867111712002959914559058425911118984055914586376113519880207923949569166447159339998264445790974304800579177461581927382340654301268417327649699955717823766995986106497879841859460273461649095960530928058511353529850375252581656861613236495386806592346263671683134224571721016622163470277396508087080623064219212133168037907534500856985335012204579844123001593322735802893900081758503752652926339518642080633694790319366033159651937159504090670569933341459886865858535863518923419384162242506102982080915810042788080563037152637167830624672914458373225905301290555006093182937726435751432637543490445273154348373509265136833075194397925402629406932217096531091582607670266189271943131243597747826200761915784798256722089502945794255047225479897158901411690550545294937750982808423504673083288107346775553906653317477607603869985024495239280793475567756369735293706688470155446353130496307680664095245077132080205453487581277885877798240066828370195378792442276217946186946509230124575410696361954888519075546329931383297190375285901493576988648587673263624602989277956955929161193930634572664447530700275548971397130118904863610884081630963894588831716417835348957300842509581713848099244137757818057769243822910333914980871003278842507733696843636388206873561163479272997562984753775912921613332350111813422123636723122633664721678711239820313188927269060903760785692954981142449080766725301490244968354086140293917603310932626663893795266219658964676017445144199140198064996558309248293124498361432391602804751961740412997624185328522000988366330593703615051519408813227977814631970751956449100482893690418414436268462066532538860014459128533733577132701305170513621314211484172234414258792364279504549734332253093452904664796612770708297651109152956026985158931649665045250614216900270324285405000866645034461796392381215276432883150235177399979871496899174060465169102797064307676080604031741763944870898070680061973540149839337989952455055323454527400029558963852927110459979224728358812138541274529763659860824655365068556882186110692470457325490345930380124322804776541460321772402373732776504976056311681015759801188044024798448991751144643714348733800454517216474450356578003170619824820667068964645503607228210884441767595346464026687731846960703373732347568733718511245504031194241524771425733803578729753410824756406674753148347968877855744351095213651521200751676045664479787051984336271060130272008159785423985366408019509089546380548101281318655889017372140670615127206250558934451384574382728511887934746479301837379584292604570572069888309534796529836482294646582416565911997079415561794648968687334590060061188294093680294863235799731035930404918735141117936547884731085355452264924746396714531445602835417277983005308724618366301085994277125283529428473983992428729387504308130022431522737680531955443514910599858391843724672962304048553870912739585416599308312257867505454342736724944758476481030384749316256626136138841096258810210805653827081989941945234527606414244695304555349402313889100688174587850062232390697965174729422844203053383995202519385560579110437823690006128918176679340507266415599310995582865658680614223199038191599567149457557723368456303873507795257358843783456580078642156795956789672797470998382377426637752112639967430748255057733709245337848675187068743533910080268356794046354564290454198836443944291821217043325261545771900294100739095677805531407748267672110529004468102053300584428120996329395018813701404863729213434998476697061425052273199105985448237688327398676574882721029011497560149311994628360379774012469446049403029713218778139392266292482263222593070228206319586197908597437016278999795168372922980470335667023901566120280903861616659561682190229041789587343692685876091406754651786415633888078722029167516493635047147274437351125607633569017778089075919642484277537187239820478766717664445448132905376856997192535140542653306435450893006882784788313837999683011986066205422633571606582012881908037891678265844333501515039908058097244369229097147479213181817848117782682072924853727289121489599541427532978227156460376128907538478512424690590795744700002064258698260639089390283722408030634117672411896634427460989652457268542786451441338432540181427223397299447061896405479264388952420987580597852227509743782389315923906043024007240848216348594674727797006713846759123550791808710543914113941217904078251740702299950970810237647836229362330715553915204223553841449394695573245824081411421562207451589739701436282243497728341155561298305098605263082558164393164107615788071595715977951759488164190155810406339820414200834024776996420338116979224452590300442386850915574042168555981029176935912624571651699966761762703365198205224439553271786031041033360200346955524743900832047467770286790974004175234877434077464497739097261008321016607357859469652108081464348679351026725219662952690451474086861688780519407147597521316767659628152753436889832007577279853385853299053310470169359432033333770560450912737362540673886208651579131886642365940117470572894746736794444819741778214759506909643762234214617584553405638223807609638838749112008967862356889033794608926458420484339113884129895608561134313841090294255038046908112893875467185170575912992206382876005745084282273326252638847552351301245496079033874680857249875414456044677095713699317149084299540918710243273359154299016615933478124264286928864244434873997363211886061216691473327693733140532944942014801452259641485988306297908336888687441993561289073134844499128753765677467193375677844734857815376147156463733750151885890852563722340149316597126965292912387560223903782187431621518974011228616820116514138341730824268361981000159507368677267652506387004946792798278602748682654245298411474694533987271963677920838620958682282089622960311042047304754333504807089233849283251040764417766726855641252648283918593876603122711790996489762159897653415800672885816438053018802361879016606277033230496484262172741390236672986705333265315828297395690456816050941672278553918409643340517692014512793366455695816946684184889751873584463710419409359098815972307150643227811871692883678697838525370743521861403293836526486816650972908871860373650495448911140926382093363131801720139405603764336006530009992627782178218893232915159703963980537442510268440024351144086900092896643487229168462568478239756163615703296484405035926386824556210397293717764037952241994838077482657323484794036165979438947635964163576829497879807909024198729853367119826884047514588670899880788395824355904432767602062864074032123216477753394754766259158894368575077851777934517710975243521241647109380111189696236054091258482243633532178253918589814449966511232964507264632002790446651292862643542942991845252406071716869068324750691861446134810148019919426745726251527942917902521068374639774676972898505550891324244509884742925378346483062836269102202845052571756661936674506965586983655190616687251334479137180872299401046114655862483758410302629619196293348009917371637751860306931068149161052123836966179688255110114983502404620956830209340743560543968820478578887357060824738346867040289078382392786052038791766452352656289066595724077258576474890020423216318861361680247888230206927087203698796360861961612683689903766968620895214363303097389243360858723796251797719394234843778235326813667172266104612526520264118275408036269100041077623636175576973857345687208961166294874460478175294123578374547347259111993784313294817115972361983569344282569817596613506411422582300565694960603479005885908020779361061407120515354598407637577295549465322447356173154754446030179974259456959636801765860818455042842289357550432154385745426389420799423101618165936678318283664141387250340083191046019405289292175118974244981786259350806949904096985219759537168423127136543568075026654245780612671232480802830456492520009683997058202057791504013847425242157948206601867450389383412996885832413479350554558040822045919958881110763878101123473920421840629849483063467966676372197518145517084667907721581507258790427216068783779271335697047619355621511173474088834726756709544146211935152917069968288011664486790963342712449490149312148178496734718192165870061678300494678025325412536891164001901055096787332028786824683484175808587416147663860958810334740197682109450165062701422691754941764781564185049487013452403534196229555154469041712053996901816948419972358397606461639058105904528235769710001066305350346740462814149196630994607743376493681496946232146942498604935066967605317739578580281551169146855315569741118182587604938158610927769281781807494612593414001178530188314797524419657245864389289679491943953912409538203632065712477639346838892394583348825010425320247720415656189180084862945261075029874622419250632573717794609858401792189169785262061417109145606261167689914665842887479565410238700937712362643166589305189224804667375155803969757363761734294498608710964630987581280380777685787291218414054172125782563275027726114823000853147001091948948125565987948410063864984977640751248532257983952126897638909693897875075264867252439170068995435841781459528708341951462099568032894681654153995047296689344424142925988882070265089499127836369430172186414699824559475419091075282691113660599780297146502236427392063091746339334688645846900372526925525872187269593677830200240710711416857998509458766030774150605587074533967990259176802691669997631416112108126843669772055520663141060928987129745296581932925034070124264196006589291251372419052196384651959121507680305876623976765839216443529888138904857539848241099637038398046827045407476036356319150836308988642366925431135482255646654218395511632991479847036466685916446124853344247350317846964616548114937106729601595010027588377130384406989958691232034205598773436328617935603485737885293589035892381581079979223208992311864885491154305733025086895072062803322401256299257782430191776897051358343347372101842733901052905748548422118354278037725676609045794985841248003348052864749154400559397726977845564160051430731653333177339795775905849464652450744841371649487202803411397687093106825323809317670367503605616455264665481435154866433840437195212523618023930437180953895047787111675166806115103434650010634365851397420601280029357713257801735367060152984047755746444968306416303511571224015960475369258435777701313215014598222430579254733446187045932911816761703871543931452351458495526178060302262547869199087638513924724060108759505834900101539096205199618740080009448649859737113718509008264315028700347579339974828138075258427499552119299538461777919943330916815092671730328192113417632904549230384393237201177428948051732428145932437505769542530269594558377408222675328711713558266623950256902901181157613376085920983607315109945009513979629991246169475321101069131860914293082817604586707865106293131288125879312225381722220071034119103698044695303874647473555230738220517129231331459759197056227690077628934544355059156622582385135515611571612998383757076170383047740620966753921867594470148314079686148198686288687145436936402611622196370304732342252335735807500679289331274602773009366368318870145059529702646712863430230200533657083366161138034652238435813658431061776452955035532658136105567166043605117681156676437314731781217331048695287333888101281514873937278819395519402173050494556685426571812939247742056370584621668907414179094938558920792618871531272490870755060390000557380891879706154049510424927951598364770207968729042672458820886091006412499862055705304140931545726918807082405544433433261322087952764535195216848790380947153649395001883976917499437422458486759143752029344094179850305192581458591484370380369610881125016407934424488388031258028229356776916456036055058278142837013828996711208586853695997835991718134885939361421591132581960394067257680774397117755563391763689231510246501356181608690633696134541312801058532493082822717330770086934955396811211592352731109170075071633036081372445597685691961514146091043268607185616044064748885534918100608539838046264792901681873833963129650832895848102578696591685389414790189997978231688573517528714766586031567728497846767978685181948211532831480756362553677783448686056084504253594084954795250467467141909702140808487648565140577023674886419359397087711277630795467866137521853649453707088278162163990282814912536079218451085714706866601414168712199678368769311636162485904214083943703732099759552418976729981004155453232984043555232940459659218307072775667888912412790223442555002018614774284111470148256183086793593795299902200587447869771667774736344763590756545130978187268990098919048093985438719341925070468932519435294024624863974939500681385100630053351845522891404990237674581448780098452655849289594318752109001170005278356478069438925740542487561640912776059982718370469905788006533696817897177302485837020694111443636662625186878656030068679014235020572789318624378584406456900635002299604217107426087491071846250075936992760835519200632159708084465649950841503665981481300275576269301274619848956951576938752700753975916573165867504189828155045327793357372748228952059856356243494767258713971610555729520046461171826994814088859903325975595368856068739184266090597567139798139645247566093707363213592378233451390905554972820961779938313998897164059847828267723092527566241294423364254687640497068739244940341570014058006801641383825329970584747365069363776934410338305486584426745250745176020005780756766244801671003226205643772094273523183270785517880078627518141151266874721664332896121690813894699949596750781341031622171565382703189173731649683578486967909166512770210939587358825923339414354636873406686277297332463453238403548228421243714639915880852407197193712871589361651779545453232400243429469981403187157920857498941169675499518541099249152036562094231000085629074075349592034064710043746391374733650522074521099068169945255597425524561242584946151890834105014361933240304388252206175476866128860456605735837030729146505355835694762399308686088946944443603061057310651720008733409590831774990406398779038059541497713463479155810687324584601545405987063353906869538437774192067338311282416781596911678759891266881294081420050908513421495201059977196993604121150333823630767474585534313261964869580249650875605209056982967882329395637101302473437484260933864414086580352836164643566836675663490225679606882861889997190506117394592218747301318281820750555552691165342017916900729101285351391290898408983439409740712203450093436285244833791088114681149191197821224314498345914266411131302196259838951463963779731462096682039637796027407189539840987078774440586993832268492664695991955587822736372231702246947749912564362582954454909718295371336171631105801977027893109980696602093247141432392357631648403084188341809391234422935799697488741271059324827660250370420039266142379157778269916309294484876448679024290082740451762722657320344498792243449933984594190462112663744636713776106857543821094963987724375530144754383973693399819558712175082362431679139838743237364674126303074859422091586601288035004880865992141174204872539180543910956013505157500630890364996039490210584211735630714899501386839166040159364617785642264535821504958109092054026168822433731156400112687313970425421066506676948596955105038066307779549667997700205847545491758726370361754154765667907551279875119762914261195666067870495631469708071597560812930603308231376343068231486694512091047794285175500635215192380619856189244317388678781196635937724097565370303590063398003040952210650840592574784854160619427467310953164066180139933103896745450523918882374642261967392876975493390933696670905496047255653529107877778854199591524207212924057445818217552913190553984222136657262864259972797264950956023833868750356919388412005146062857062836951950914423014461811637939238295967722508776426135058640667542429962687148951899277007457459462206088019617402911424183076789833935740822372350861960443521519740491812959480171507481067375920469899291552774361698310615354122464669157300596526149459099495553839548513856271702754102692038885819620215714331936629273461498281456987863414210224995070899657856325040889476184385855266826675385433411691388736249632650848052313377080657519459480637017873729474338714205265675860632815317597725605369749693377734052352300994793646559176285151583765414446969985686062823224487724816492299368496546130801151359824125849543556020792600441356388091617206558961004973751983372615879216817979725889520866305993929267651806406601737497088251149446542651142245143372422987345435400361836624500500439782662037866270709893957125561254966266506404424206764708258018546132295977719994771460790185685973117916512931266106676396208616710772473282683275207669317070750727833716683683877764976586517529371854198386081917247894273063441555896521077537351625399844012999545123954440717995379475193010589095954321769693564719490667021727613898996928059904630274341740664155401485853367016850261137960028423935799863508628790840448105317932865626524090910516624248753928792908868232447557251078666126720266331127526878360393544263817753952318880711974493780187055867828113295393516721587506359136318208662482081582980472064549900377831082314395868347483652539949183452409180001503501496886019960894376389171434223670455589215000835523772559496277395580593951936897369794357166707708731890085774507984607108959597927059990824537199091261356188745174171607956436606834030188376439203581386808024635350097654578910592045676599061471585026055478069893106408365660815680243865033887276829208333985535652629524334441992685155424936744985478884586989291680331236454155027019709202798570261240796548373440679292705178658154541199910480810288237143246869594300487026807432036283689306032596131662552744808350136263957087698524668070218279428946113000874886950507570595919450427825094360803304307188906520461263487401644105215996841298221230269035502190880249703349835063175983409346516405919183770225657923606917464822228270061252481124351181600281784979764111654365876851334925409785542921341077905689061255046010853446514775652152752396671248439396717328404578591711302187904666377512067529920123892566436244717915812723795626848583289552941855932102036594048389101868064351910479278694608836716554063788687926634877653616028105659912701836606189945798274441880168751848378200241886501162323520130537629036303873234469531006641863670597313237302882825170317684909485134981186174824225335158723097271076609344062255916316540242918693246278541823227862601335584774054119676029096037996004699118357528317156087807598681583711321345737823670856865036820886740537825369686513905217167829591801102162678856286095685952491791924742493707930794211972256842310965055851586822297816859736285093441998586315838964096847488622330715083798401219216072024343743929893830172062629593389700665815506200404601548595690977349646369074756394273993853156947089092886348679423623742481860379287049897346815578441270208509158251881388514198288751354516390501196534172035392016236592693993516077004893416684110175390073386330999552926325921701803100663889583860279308296965328118698222289951894941715120943347029261753054058296019193584539848127786262520426436214671656753670675705211145515087303646177284837262486457288740055826731682395426837962599556512109171425647551062704953338759105202993516743971260414192029197187125103426789664245843244628559616464301079973480333577534830332957091910198339328732794762628516998239471956392813161082387293685268296448760629594686328499368541505930262054861450826564086592858260304299752029189170663172001438537677444289044390178037314399642297646341733514297039654213977325055961136031623849571208196297095768348028385733084259435691860030733739607880908197209645967230125144173616874977716550387275648481495022627641800239489136814402384094973855436491837727719071798656068233493701784087358800369252506627762282228000807155226964861651042730650925853988947288384925864389335550502291520697080038663732352965477406856317022347826570324683446252070364034176777129076507924586856905620986769870135624517117480516345594801331720689575019788526644115341910068918453881919653322895149261571844839375762042921496418340214075837590843577007487529468432178337220078292289929653701344507935361435907688504610684715022437066730174270772432612586791812553088959605017617114683722611275789221584605605979678266632187796799728874798556670789590540868459930811227861490372807080345991081079634079095049910386539982595501458815825740380696533345373857798763740398307439471892162511959654825058811796592250440717329155907280397814831193762110900076062369321643513060537144874294228293052309189859148803843924799769370449719985425217201159570965962353893020397070689734431155929895222193423890025981911687883375618985618627739794940162537546734788802436332746547393174438847501639618630175148092305190744458243993233580624148969359479207197127476235692514042636724324216221397913243442671589504087636403918489821599536952745403295598241800210773218222444812168720643854228349662501722749608855035960411611890926712521450878728017474688831388800936623654245052765248431045996032295961185755143009424146586421321021474898476336578466367945418549044143547975924267475991580408451238072836340446055114168558889753539425995919932284726318811088161524381904748738807129494682280004085401929669162186006611896817750342863360593525227520502588002330229102018239378057255364763165984017986455798351304508773995579043552171536276391418527943060725614885768291365455141729420707385734594801326966153369582141144414057466666112561395164600583729064137146287940000745021860587163495222784183392142603988460146207126044734738329362318130118694280602585518641083393908194366676936628992707735201295312258219583112611112153161533214772356682256114311790675698407146868108077112225977334385876295165738990324910147830643503220909678827405445714847545666945308057958367190632055665171942602308924579932776731203655885259092078270019559516830905116455185543532016068535200828464973414397663526283436855708540094931814817435433724699547602858340926930769086794904741471673976471699110244519090405976202396766493776755669914823441129533019511180185543620703325309853511969622944091132560199549214218966500550704884837175777291455645342894904667655804515542938356030073915338622061425181734827349433847893919172124104493969854629814175702891275417510009359450919172501939509787378117767200663532327990106423624214482738730849527275058530245162969686923157541785755815480742847165796486718549294654038640182002592746680307879705744679642012401237697788391269397178375167625485194760480166334466972135498306263471100029111377730179220765899686373262432918732220592967207253345818170845294528923672156089722425978579272666734148843523171041288419068613522708849117388441424846099640801116329734599970027144344707618865497702470408209363002466285408801220770907545872628621810840594300984223326937355347204391955793210280756604854638967548294079372983611599947033734941743546175582266428479064575918088636397560243093340341275673290844259902898949645930312653910973069739232130513188800388647222454399776932066120441497225317453108553319453633165456505909113872002488654630505428739924541729776338386298551013192671845784858072739048773173034795650054100295964700337080665980778874579872002601394962035576961932229809668894456291509657991617966211230662412250023069593784521626828535694086876412969867492874930123333944762825386882930192420313858826795148466670074682378041773821878301395311181256390993165043346275362040806122175856688724905782410504715942946531863443980482239632245470970421660884939141295277728690937839916535987046700832385803336326155705502027403886721006070704822682105190393460712230379125352329985855044027254294425799807005917764197929965360782562778417649182316910111167768071698042217518830594600021948766909099930821010692204063121316968857194172093179551376244970705599995577496782290371720992306837430754594536407766919485106509378280339655131155574040201860321805642165505908764668095025611067952399919474217632572856949259145687595242193566351643958951389480465261612739217300702567482796876031776957491163315572398379486163305530169249877559707354169719057313441662461617663323250708825570055171568143311463127817332663418961181657768913706917198281339337253626205974912065807136346047255882150055638416779763506080644220628663564920744478941793625719437443532207839739300313478391444298400796650232686553500094159165571423569708202173704309698371799015681153189821544405450993192068790385629906570164545592127957108991600844856481783597017227835791256159558326876157094678930868352746966709017814516812069602104062565197291656378300051490972657496157271852490835918663833889283747739295199390633061061095970886425888233484607156544221547815345044480714450589500101549506085169113539489446710270536114325813082886893588565650859020438857222754089497408273595005862534538013350841713638952741671289796115008087292105974439576581299389123798909799713899339600873430865257215545564316869124920248419075201812874224307943725474968413091445337153657416147579854349776326562963330810950690715315781014811589075445545170189029052697731747263913744738860727675906245754559028511905123927153825001113861688004633652893995946786732737846257554490591360907528692988735503873132560416443206083832315330441848006993606162866899548938157544530806794973763983657006454849634085074646198261147645852431120942271194511997032452215112576301104017385581297701940784815876345751761891749116332377077152977066918587781471767713919864226793478985636904174570932668818692138278733736498013218254808137479134528852225299214399048084905758169604671537787846053664797591316373485085129560517956144181433933747301466404549343661300968905865566967197545333540099040589991380142831709863977718141799337344624206631432684405555759483326159003287245364238880122671080091112497242173010501208969759247584679594282262120604401325624298296125954819019285902267614083764566918393784112890845124077834369240576745903363213184938199905222445249470613593054392811826678189164358646482053708382272938395133765946998598896388581483683299727364008782598050371733868278742222525193388199897337317679548259041079743710993843893729681758967754061814073488533242305704287119454134511853570537284057120231749547258629478328655436515359133337710435213810133052490083324335645425642242264540847320389491067186681877954043094491045272396169576325844235852994684286372185708582136128272941352400071775067146416560890567587663637272350560167121761621593591299139270279751311972683141034968296797478394342438337664632989319430946368058877095379902035062937991625331959100782097423361261469336502189221373512051606767346320136518446151498292372121374307856745229931872567293447861750092030767755966728808706574671004188973434616756356695715123014283524930222950024019494068727890273730226169136791947162095847512534859203822856155213843254257325687995222954704360708540707543511148579444331131926699858358837674924859846854778608919161452530770339422616126720134229830811298584339865782238600102783038487913473711765152403087921376674300314295385684146762465307878637064470397668470472782537980400605970162253304201121787863773602684986336024952612157835190264211927639896024815262999368197847252895683996332389131666551837950231681505294009282343260076915441894207950802673862351057806209756515662775644901169771389481584964917699616938863405006020923802725845307066950034260223072522982500348345630093777740269237481653129265538380588578432961632856984199852530725855823829180970610371134327116210810699319481308271027730968905504710894543511728567617729568335046891311419025319505678700523138785728503509094022930596432728357299209073976200027033225165091151110950972098462657075628203769449056844785568880137904737906919990773434032172211120858390911383223021473638030427891007476740735226532856262804473613158746417450827336114534281492515456880847578075313919514968869988765202179988346811978376913402184157545868525690738310331089132297274307980875269097871588088476245455567929551838643958322813162677198469598213266937027702722584714098503784436351859613986757918936630843367555488881888056480999262722004801026064838204106680447163788523624528856691629249688443918073494366147906170900603584166834456554784730269334434034283938153185130330441142271328186347744785350328988747183326667834500090748197341599749341220750475732206896971601125742355007520438285132063367871814491046446467013132929306406939079630865994393075254409571651949741363848345400433638816124325089246940488663620632503808509600945330278355512816859314106712100115222700354233188854108157168153275919166923995644656878030448801438895627359002325707929059518368051252643866485316438263009571029797502074722543681999844947163015371448999194657672930189047303924705889742158414790518122808266134718945952953584155102472454980151806225599183826066174337817218032872610879357103761512674795050646355333319529128573930914311943793940799605138439239750108905406189194940039020008541546230973809995126787919243177868307529387832456802295684756467993842877336352587286816458537975736114162888033622747940838427576948101603566883723666861791150977114748124234718283171361126668329208299326057675907243743053521178741324695228458881874655823620166137781607811943902558765938477955058167044249403632074594564824689493080620113701941933029962273835966921834930057150411445077111538232187104528542613067585704501403817939010574748547705251381629072516223344373125274187304964077694947771950887224994971745407859902102561841458478132079661215690489305409876720105025556107519263239117871943285976199634614580246780914767697962701544643933990627989224927559059153320563459966320765782391295374167157317567027779302713886425047950382737111376673531114499119771780505150924893077291066982809029820475000798105559140467140963886823450509271780043903392965373301815974420507788486526265036652298894023947935468437323113455777505049924517800876783524921538703405783861053501464930006333777881124719985736803971843188358580255688447068189822344945864096183304559031516490906044157245542015231428759863143159247383694899369337327470391507767792104359810062588453703397984824973213504680258998380403282252858717650903690707591613957919917161926469201515540293221088407621540535306036965305915698840931658914393004730728483999673437596623477330716658701465625842370782064517661341892241642707296178901914411654208542329975890661902664731471770288676914740562743945128912290057044440071697125456561532988993278185049537448062709588312543525613154979735780997721787721731657378954794884009113415566222730342589325462597363590912537043057506680011697507605909574576931281380220705780894762365986917625624490149856316029115866375512542723698288143535249063341009993996031534071483116677587475956490038432058931709873527015684103652486799550489464351502547836939109287215467606448547597102989545720732120984010081752978614368104636587999021518839754957918303365025784449756348292116262003908846120606227333830603311322161807732096523663434508678684547685814366575245674800207226412946136159677325699877791467805431626235691454494961625058562215314726130115430340852958223930206999501890112200877347971418120002609980854409995935935597268563231203933566005978497569745940253008549038719885592301156408625882150860535786279596938327997013791370828019390311945118813737588545055395494933602648548881237937254224340096566932199962118310927920164165326858536258665424587090156230288617344543863943828158630157157618025080567379335226085024016735424238274499318198747190475118202486073690748310726454794887180532494416223976277018781722831749672906031137818497651413956005759622267960561185381444841291822417557450227368288074779204987703508361642841790873416501998784949152476179686622484817101571348913899590140314976238228193336816429713874792679104266262807532812139561273688301062000874277686033696773102574786548009450222592383743987243384927376439438992826767944580742160473583200069340649878593541178516823638671884930098395327574027275260858869373709390360416311629368998860186204875980473950090207050248324279659889368443344900650037761378882620652275640213083390790298009127536741671545030057716711031322222438123425488152060359656767191918066024554777867922477317217334551182763596667272734266161299343223332995086377026358992470176373106935122529561495281521982237422115272545731008104079147949048798703373136538911198941716978325043240990569778163289560844839516188234976811010763146527788602400098856801066708399397977313732849417434206272388270972734736423175485313307266888589399113704308330302655542771070929625148142690300475978118811118392210313217827266033618186254811961252248095912495092809707043384982364144554752806388705338540555390246900340296581142423077991806030577991342070303547846253930434206467296705437143746259579847533668753900960246927196705437132325399395172885747629743543031787705753571484988661643472185511438193742639781264797576507366154366145318623707290460093378191808323050595663796475185042573074155996905969166750246136138920024680232110273395864642268880340137193491703193879179241928539973431732334147616018896763488540764795444028320936839726770370498456095970364422317582315111193178362247481525051910026607200313501537438897638884443770765991547818006727314967533983273484387953266771069702322858592684943807752288831182751531916606237086008784485339090154646717669806561083827005753713268605819274120378653309790451234234313235498801554683627273090684238990874871994913043237069630753441160668970167047335799074272887519439424822043649779205503501477284503254638718863164392630263966529603047656706594558052729352490569956762498401109995128492193257819052691814010190446957936648873511024121095526751376990284449335637578487129197337702570335613909213362151755527124821516842236766485077258174709174922638025385498496249866997948702055871507228073570028666965488580728461482685231524436941403464348875619877894026242529308406091614259949634375267921544831889185976217754901830892184034371399239815555502372164688563629433295935274261021542083640631797752200359148373536430003814840108875703767434507319010366976083918632979423366886697118005031674667171613309114608231981089187984112816320435976835856226251775629354642359838689987302866540558199750782801305293864515029810101854303164141913527595620456918458971573743776138019669253656142844791694415757010272537167672419458660517268361865112615517260234723029679370079375886860402403359191680435901679106273351951333557576843097839594913349613308837535773504210463947648843493878644755002037543289576313968440019863365539443343442610802485191671891420852126019788143423548813509257736887152873933943422981635489181586157989674486935644951467127823095547562359911102264437038869833202236878604287028977057494027774776121658154263602013788979821363727005363631632881833949329329346480817885247521230296073883558566514115853667797310516117799063100288806340768326197349877720276493310179110048500332021646614980890718267087455064748695259138506822927880588828913387712717745343125487946328069070357717392370015511298388288617122886529860997042109359333529099755820555196317908074594551716781173471216466944555857927463803061969331809062245802643960041570072682122227999191222736342552966778022184702005130965351773872810672597099697288549630070715114100546112597123318992013127210967233902420180920481466095774183085378328532157106729916609672101237246208517830528821325022385676225251698961339260450154774968254662373037075416386793787734198623942314739470078364111040309302305494312866449309301532956111340500394801774234106284511508741492248828981330735159105782716142311729078935061485434563911046514709711737969156762894148353934080756408013069462131684053425762557879917675764599362435053268817760148476310771044293313125218481707520471948435020126501954024715014764236419314317170229750159943000486140162415806421542366545896914229514648424103268978468334828643211641246658594966167823452918589786783137445553545587210363206514173797038435725671344750976700878248048336675381583120372958057706674492221795401588518796298118989712377310971499950175692051200396512421960964753860886937388421501223272263176236588649482403302865635897993177350614638152931517769919247146707597566286347069215212429861089752861392161352375405487660246667704371953031729735298762631346927112863218715885302992781760412363028230191666404147911952071657270487640766437292884657266737734488310903795018010101077254574441201417094172825699582609594063567720879297490105041458017774686988762992590796922792585030089360707547280008810621197870669946790308343249101160051578169024949261661355887854535857956853321773403006754332569546390825737372058850497312059076217590289110053773965285586789787944328625911251163031793896530786526857856628942868667023681705436001445482713531579685929018235124737204229633397323143290819375085835944033610425724182084538148818987776904985074287581537008441867040454519973198444158464176460081113608695839639218637190800764980459951855861638921620873459662744536140026948041729636348310138952835697747581763430193146275545765802397601001848127450132056030833856617897857084944898412078072975484933302717474638577511909053870583237638852524581961142445983017784029721845792669186664958031545130604243899750411618075665334481566349836030263675217786593873817424793380683422610505372952912736907269367424618058358710772606006613722669938315122382416196506310094863268390391522242819392542118196702023265044029257026224480107024168844222893160361244562820480004095894080415483281336358775177758351977701310731096559477018101886922216234619287205632504444099424055798797431532106609046475551268412744240656635729715954199199025162245826069153051892988641869311174472191646201891003882656791416791423564924574681814516732998244736837855568279255787500695986381145466871568684856285443833141904557408795208936486764913330629910962393862416509236042982812535000004234678800775547235747203167518876089937007366613953538580319761486749790598780781908029456976190131734308278812267368143851559510317215348040082826220477511810380028068867010532737789756111114199076074594154091775364809788142549461475879060330187768635047014721402375822215559804915873458154418521239886009630933130336530162039655513126530622979293386592346925662952995803767084023464165531568101188789520348618116816238748357972665298392590988492865348643578684380424641024309873346429212153295771722494240816152936967420788658631978909715123342258338336415953539887775341280594578662109245231342106238833592309324825360551877143656482009819005486183847382224951026529584254747910721212697298071052414497353610570515670294593871851957603597206192718212336785810152842252422514421201756059502749840669104687596707312284387517638639097627023908963298759851605476761915188856101457335116447646657821387275216016204843342849071697800986130050917046665336671304572847580945681841405104128115639248537524402831481509717801516615759381357250382259887255937092770570988368973439699275348209293096503366019818143301740695052646742410317806028323347492143369148903201684884353894364965489204162425999848343412511246027466316295652503138282139924531845290584449594379745904519699704132424956982470298255678408290776221142567769842895274029053778730970205919262026143289252035794072891248121422339301779260335337745626373189090308750120819477716756620824199611323145452885312748280604443829227122732844060601112219459892521018049595904706458063353413761887208069016522732460914441417866409829218563489610510605273958332367389131154889383235767310580209323010639484492638159882200309968715485576364686460453379621838823776992229763206965303334368999568377716960999395866224930171421308853235129595293605787210065151565912640253633835023229199011240231237154105288948653590361994451725004091892427144129646988375145027328278958486388559086293110475996679382370373750618926735457439435445886270805786058777515348470283776614063305557236067102610022814731177945203790724490402360262277246782788749453458803589171469480418479023818990176129875612721419511523251460430217334749159131517448844540116336688971240526865171311205109161438962358173680747758019009089530796523063766356795321737707810713272068111486347564095940718657413639367889509418323021291947844719824948339272931123366448491240344890663402667613796457396683590731952621329723530385538637159688762229575268908773348643728229869658962651578558904065831125199496450059244715375861898331225988697988799612772176220294342188645066911838807871313777936629678099446559379760633633133239403880153984199644788813977333518229105943117178782751165363914060620743945319173188266530379774795459630291581609718021115072328282269670203861344796205119434125770519848824007644098250783748730559836315635195290252063152268639587771327471659158542485385616886694303093283664263032532917668484092948644757521550581584971900744659827727607900109902349323219457440698889068012574076317809724897582864245259200888694589380944083960562160087957889023335298681542875903275753808737411610140164955185731972239248058266267971501164284219803619258937223290683179406534369200932553240191053114142665085709228558098213705278124342900534588531944223664759718061738690603850530918787737835059692014884982937841116810515097566165332690691236784542006270227272760674791119727740111815368907940145130595268503598456153357474223061824279642342885658983573377431359121915206955911181249601331434087016713301122940372120562949245366785002114656050092265988109750018244965894621513009107350584772634938275448159959697034796110860219624722520063576102542005026684309418345851972079254946869546975231935222169029770236313766937328157549626158573703843848015209791070357251655496792082322413645207019284996390560136048740680743962246080690236726128296785466672081900118080739527341835553998810839386121006736161399723890687455154362473539672675866082395045900196149623497252888458529862070056466853223745170503997797009900167457784234567108360208696621945787249574149296443348452629050662833669465439636353664335781839550929095075107178274454157583263064839360123595244231875591240381874259584237237331800210449979566396025519880478852622370197706344217167564788719460276794588630394245611496375398841663390514029656794205502535652866465025134615238484439746052014873132299505200626382074541605381066807270212824540364053271271519553736186421087192470737494593817977381381097646555326918913899365640484144975845525107812791348327310434781614572521048672070861592115012137578400970404737377625620384147585126402868780483623238369009070041856522958231823822901946884719907350756937124628133978722281591724114833709947871721416059311786275592169140377202752246778142976663095136963848315325861679141726929278255925125313609553300950906685304722961256694971740117943287274623483898647942242521606384631525489199501537097616202173477211929462941748955077400932821206072290353631061361564541475812963115888547811281988204424052861485070736773976198055170744546796666698820636867313607194635956210109495405741016592174247973968188982444794015071954295885144967121872318796271449613725054088235325767975126596374199329595705790782639974370932103567032813685882733964852723774858632617933294010632428322334231904066702951338007751362218036482525280487704887450759190628748639285113598804155335263881013380657015897865915327963900018448388420334769888079760492151814990760819599923177641853663019340928584346082055333432695737760492356096045706316778858058540325586997237846281454432392017754389343491311132144441594662021843534602560772826080593218161905585678453484386259271633388822700344383977940911571796703351147784608423645232911313568882118777682931259557104800166184522210244757648643428037849527787777006023789953599173335673775881630356832002842659774570549960928196068047974466878222879256194068394046327263034818883884805408462392972086872295601785295022100978427274552068105441509000359506136497182906352169424505184826150956800208215956963570077024868725386160647604355291392289817575082684681614038981951797090924616596849482633112280254421454355988315197770500102751274872726057985357227201016540584854187820652552297552351978507264595629261009484260380446041463135193449156167390084609777520498782969572648379415517917531256310986425562225942413518050708455043428005626898475021055568400048025628210385860216545651524990409160499734226377182418621005644010620138675526345204314894710250305476049378447400896567005537834775542559808905038327807283268350275154911517729991756343814422051890937226825426974408792979779502422666333805364894360023684472561083426346447328866183255292091933814883308824365929118584983430191205425402497914474834830724841202700520049196108887988257571050767947108198021084152304436048695072395073759772400423630511066580233000238362349247805366770053865966835291139160987575001451682042580501340792229544275405834302572465342239971418064588240896410152035762665384988329344278478566911680704502744803127917328072538863923272647667761302895641505147671391269153838696410189453808138987893958922051961420185560860541611429914197465034755794021869053034732801488728474757727869033479547820442849662064188059718332003135004671319594305060668696702625997287660706478394169406075461568728646648705233479484645803951032232400624373641609098830755302404517267923993988477011306082890476705334176611280116933829567945507355805371889312865721826547797246837028305709387335274428168867879077456276257111278646965290213677812796471366696120740082578135743128385739841469338472120185682942896783904452736645574984829105736530489736680394197437223009817051222144769247015451909213477269380916732311717257162772910066340539736068972899790418108791123470539092999176220522664834885161916451770599834473734437215694372977549043533468568070752829605756472257693284183830345884999760433473311255443646105126604532190392832784366530908998981478048551606801303339978692356861910923287623362548951080120619738981269821176132494157597884533786772256851512066577058467533269869889371848533548849839443989131302956406791129029886365526834498918905818300123818403283141741157509014341367259225610133345420128799796332708218455537676277690095643725562443431269494959301172447923680453100048472358627725877638481292386659099883773799825884875294981938292779995129337216587948661984331305245353156005641909360961909629112327432653792619594987603010199368465017808411342900717624702704274051812138100785315111746720579980051139567343328147028760467045093312606316935628007654988308917402970457620702097410026713699637007704789773121777479431178775791408860252409330536626917942131725012646938572586613104214239083950301027088289219880025865534972158665564732490456194736293132318647217166436718552160491584664229052368880538266132764849266532715015150858416960732471780018884615950888235850889803780638166845800628695614582888106334732455963533160923989508643945179237100826858328932528401460308715212586836306507447115926586239202890035527861573002567848677031168207612677130393047926475257618640393843371520661791596886039195936198416996230895639645445463068236560906045421175734068888984423521739193019395971963616692247226847288734557464783374081689580165708188541196338463231134610556612084320752501404642599829738344576592810947601011426916660217839953920986023746703733277025948193183421440317654046405959857874323923385567174067186227092690774582175477669740737636433695307670265768783576029629211006104751685040505426153723271390369828941672232851857242139444730021896785278462840666393278757500923409402426251687804317429536362494651592235739782186090551607500257402975134708756012656415539716105168874070831933166093789402322433196585167869833922412261727715367658380344063235285251705437629789642319975053149024379343261829224825743434680539693759847843100761715392381290597442249013656212689046155435336457456970192276757042863468874657413365761034480523713625217014802543359976115015703614529396383718004766794453626454890603385170015892397036367531511519279294070357275479231606597019045271638534934946748212097480114498203315481305554959762397794123246533788649362629110090794317650777101517954240214097659772353713893619636629295599134033180505348133541304090322161884554553919285189024875172526741106706370205137796165350335381223178753931296192903955908249242687397105042664396104086536445909844125253416062858078619386062416178373823831922030517957444233379307164541031123617705396746441670575785565557212598651225439454075001685476172382527360968373674899258924981793093677349366355189796729276548604782519994562708152980664342733614421013121444886211554035086021413661929123864742281924607118188592617874091048723085924026523142241216545142325736670803809108402939373930110016410974318109702946035249242688690101077533938749568788589634133345784018648554991898317298986273627023392862533066135044190693623407306973678183894481789306206047591902036588379901940601686200717090078764558238523931201534463265374688944127447783097650145172154168287918500157909580318092444919742620638090868121431076273478336368922049369909098174480935363229254624954490390663325754468928325268943115205197362012462647279662822486379351929740905614909056791924692648544636408509120968895680853631603107748292156767881499916140983174870397324999008983614387408725236048148456746274499571294984402692900264558182473824456920747528467456689173677157021317689413632392681444473415003949294364693553652495143989302171698945623438122285587743866268941283667146626047491558577286344967849680230037900832010755037549220435311111158096996504889895595985773173903083362363368389389407946992565814535009457710844960414161571354519258443941687152306460354121207457243087424507435008254723891758418534958340301308605352581116685621072938370559404432831284188161536699439232046963711682212960080756166539491570611212246801568418969104895911319887109405722898615544023012797766403268129621521873790425170065436160963971688092957223033387589097826166279077344698356656633824552335254613671287740104783748050521358149857878985565841355409414236488224779074585408625599313725988487516114308496900472068925116908066319485814841417628512808308652229544565640131931958711476217055686024563747578411433892659732367088645699827981449877037731965748182191197658268575402483681485288169894530324073852027319961858821068958821040832771038923352296598536864430423474389596590269693558319352564040091516469106277824828980839987438649864254660344644940288901924651379669693405976559141013832218537621372071850827974659264219749660062104950975363155372225261352539659540100632176228828316135778860559408766690138098102973722242853310470644664729553242982250794094032525252523845218141930400175739427104283823541266270896651465314310557078325503308645866279015417545338511116150549630953172685897721717756660970556069737287850764542156405049551455177038474301651832835762433673556453896166011979021161701448720820676953963572976108876084591022420301475374759823354217677928970556401382883803364531369225125727232379647485817011934784200143901380919897870298451482050812116865773195601280681530483471959737918478071649785295115203603100729319993040697529490984424519536967406062292606329936743050139967073424634516997706533394170874126773081188200113811513223179360724498105982722003107873304050648928709169915289950905019599232463066579919923106293374360848643027282258554535943985936135878756240363169607808018475213093627863232895901786124792409053378611343938094241985429548159137629531980513842487242363977942720503458955453877227205498823768145325359529123378227471730223233613502788525749133227473330047585188200892189579895452957684853549641459245528430074162355605001354864102194895010987697408071680229613538723033419512319843791381139172273649113632934769531256685075865595983554893338979091672464936810601617253361320925388116185321194818197912986825583493947042144837135095904501167475513051998371457938023660061907551431206127607214089342610856639457079528345873187255405334719331235733257143099742462277520400645401684490920546278944885305222812307158136349659228511585291219211209224282731769649536556198987419983598604909670455022665197021805510186905921186171928339817959413607055353768920951956175198405205983625573808916460032344904083688163901582222298554559559536127571238020150520346522279019729397171397402192347917135104893756815138652911714581963984050883404849268567725154420744288606351410305483080330582469699078524755221809834405395052565588335276081431778580597850070619332772475319996331861050202361892924596522117584451995483126351663797205501921589502582433823409629495141701611448869548628195978926285417712392662845424735164068229654980396625661657369554460800127232812379317261845920177084916273529459333255556142824485341936102757848991617033761769726718883366648273538350219400143580902792474920879467362001105356360001142311393182744841705348856984059412099248825998935639042657823084621675800161023653960314595249908366142665790818018791634763136607061482992256518680402130546317064450223335340380715692333521944748308482462677397368103141183253090320433262195957631069280104965127713533345123935450212886320832234347341146997035745945284836277705859686960403923077940262551901584828475890032008087020066319977795387634005953597049633432802306207734985788909000136664814814155240130262543716668553698514239912786934628903501066184821240693175679668242987323516185419859733498832124316529304468844364391756169042578549476262984834734558301934301494120114116731437922760074210549308049399423109193992627311013304046197514582076819931679823306127090517730770482514105796482265621240397727491261350232031247440818065386078351874876420656208974207662283354622241943567426832624251895442843934803163296135906596697095565925437649762733256533151928528363063287347939723718650311958099108138002210662634974060153731028662609997933107733038568839813578110608654461931957223705811145048231534943654602628591784515441322028415953657580983184446344047961310980165864262632616170570477157723451574479496217584239157239984810655038442629541922349101337500323049551765971257391727389216414252435380676868991647590597615042561860252145775356187144261661824604945134282121865252267060526712459276616846024105251509212661550095907225951859356759307558871241897750224745528009527631735753025994692566927868237892664539201097363243674675519708671712265815357885481470994043530717044986094967128980158852532463533265293458402832125226687627737296673343395129177049936287095231048529603892215992909957706734821705132381308964555765878503142113158359386212948494724259836782712342378871975421745505986353659898108489901537573201415064684116306035159084319460087801132806629737646134790778901672836024320084514863344576535391977686321217835782883194278883288833710710124508068645513446937073335329632896777116024841656171157634103085385876060180041415524740049312492374763131709150910871376071319925224525889060274279335064703800772009309554092449105194838270208564765259636719347923360436583972222780441638692257930274631400733049370180376829651605545833144797453777699738168127980312902920353229282457296760713578529579007583267044159531276500743900048663202945280876848443763889509367935553157144069370516749614045998468586082107188655813146730432267522671442988852465690786869286227906723105588328839300931108844732621503270695602190426639020595738701507477750444552929330715635605681234820926088742110657671332250731532481263826853174853680622800544437773676412714819430958476238618076639271428296134410981147234755230717098008596600557845767151257239262161395681246696248832034597344528199800292065028818518099210880153515652785722371174501311093919668721922456141348552336342054132344986971920984423581614601163128918586152118746263551480834765820830471231360645531341025432622358482882639592798373524396461702005883808548208476036454654712661801128973927723569522460231188297660388902283462550947245837802131025061430912797365434830342485042094355402807240439228712846535496774026808451757937237336214842028689029293368430314873104576275707519413891158233846755694109464914966569020448685147851603051054461163179864365806937974455504462420805609633351590162525170887493452975762383749499922159117841659768419921341030016933606562769775023090405882287684039836590468371367301341897497888117628267188369926913496488497367083136052857161266232809202977782368885354701040562791469152284366501507954206082116058989262038079098446427842780574188220586182663432183889016163175732154324886634831944503032518988867157756150888516038555614741163331676090469029918867537291017525453909773262355902097047019703239100516191902342209410724144713506228163137856927110980573525733710553680190017395096650708869264426589835905686522508283277115777627661485389823203993515169706711212271001739026505499850144432106326303951637322789779236697322147955181367471764951477625445388983437377794389513780436380116170455534773718959014431320104910398379822158226136409085635726139896502277837040519263307649411132693210986600678188483991730035740531507838259488872854223221836352666884996380085670245753612773333989228438201487903174247555617523153181181986031493559202189259987742856464749775492546330833822168876697237257112912904376003554441266130434647587078739155460871044915463658585627931120542958185229740002017659650320068199624802162125249522184847340965764729635242499355677356210076765802938525752791064783418586117803696491704588645617007488728158554007821237804526837691999505331496583504467270454323038836314277155293158350482049730873134549875742770791878212329419506648051650106765248889945497720124896926423650137671844912460865401626932305520161130937173526597517820727927313578231053599007258350963725097400089364952455517551674056804337178889001395691588354521091398116344669215755664874437252797638419228716939696531995966655285501182670277468792416667279662083193151962091291222166697322116276341750167145868978076113938767833263053158655341141809241902870798636016841485730689756204022716119548840198815614681797688296169405078072409433570596888170874789539714018131983713485870687177967907735135514350713742853678455672745088264091047164191993520958738257048132159452072621391862048791957485554750112882493685997959263374284620128893946666161816153635357703764079080935438908159463546539537367141939400401162788358402774778781466272575011203141439903913611126053047536266597126284576713069692799285328220129527194657698010348156432233927186585631378665829659864130974833556059921421815612683654819517518216543379253464316696903149896790636669231689305698739999870450827631705619165742221219878542734898629371458688875184327424728591393682649693654688114103521553119389346799374879513342052733497550797965559781650967034002706197145035728742870141677033023636164396247140804565052663931503188800942016066710996463823642654191144000712736720961524226660094147046947771987075856873609865350388219592676418993509046500868037621415702450118117990335422347518664928930337413097294140259834895681594701041394902914561188543874999050740512095766932110559596781849043084506289440864770350447123032710092712855012847610525129719759391086209020585875796065817590907665396749073445475913806428724747421090676201233183401362892720167935279314183240719802662190446367539597333451844941175298772659875175873414997081827861389838609260078910913741697868855318825896339012311067490767878547630165660414567124536619679841805638242875609861163146996729610611245175723265959194905950988519673702883935082450036547130996940586164667525331891959515562436172481396505288365499866695362112477456307078010745651269340438194817944040015119265974140402069868643565970136094323307963258689261776854198274692900431403382755247711353272232654040229445043609111125800703445211163642132031410308514509163237621995165547954938263946295285545239167396959006772350685498847590839108174204413500935878928697632563764222105784078782011257421956881157394478524283648248095468917400539159815067342357709206576405097878798985404100781512513387475935852008203171126870621316017980550178674196651131340030534863302729248820757708662325716482224986909972910087126290332967526407915830340860708860723461026767743060647211465815124740776074277769574812786963881451782357652954667611393029573930178711036512235800051068306757901351198694472696257489771003062248925298402450425003329176507770851229174031338211393325944686310278318398166189562615096186786854984043039059333919061696666291710100102684908622542521083420226272056020900680047166066299274352499365360415924843982665455638471774553715982178858602586973407835445173802900958323947573081868836820695767347761898337013893084268313860902828577330532374104187095107164528378676421205456500469661941718308671904204601445315994874270089073932285998459451093988811580949406102301295504863933218690015210702499985666483514053093829743582416133259223569004436801690859386354624372670041904292044737181107043091572772067364874550703288339671746650595622241366261723694085866494495201453546016151201497724380764623740787819111287520606712358527696860212082196526277799130990317313582891343745093910573087938288127374408537399361922603036803291202334882827578413104406047981321363332386277929487755705792557862002861553347530325268320648269886432832108140442451093012572007097728420026359032696396931561942238088248762180515575733831659636362359685849805031923280351897980488489259058443969772893005360978543580302043695706645434891386465585172320663660050244054640895017890913026382406562742777123136195300101324532798928817683209332327509420772860848946038984007059953085961193861983723216674704151860560170284633626014283493546019786137698541668652942501964053744080988667383663208381280723406389443867147253630775269845877775413322165150062952439219970998834813948521727170876719564826748309075252785800834846531024570239829154380046399095523510937521858486102473152880814518396025886287969553132573758682239006732490585352555926258578306822311185526902312167349809461480285633706997916097013890395785170433742224773948574210137413616375194324017979053198432810901847990630485493856757293929075547187928452829956952495139231985042784829472355533140401795250323714052027873326352308674440853259232164053959546372886440009687355042004286714762394447277312574396439678431996329212861663056446026477626603587834088421675805610873280021480392935380356672612580065364796873815071443306799553116849874925504824843553672788606746642994016424912658298105303258763408627363564962478388367847132950404721214811559423444350171242574681852272438559885931949847112637689398523095508443005579595080270253295516577080578471376946376092593041825074955813508935334993176173256993276469109389896064739215489369896660520839357894175261309378887282475593935176320906847954642815345621209864714025751539102381644681447685712939486019668198425127432228618714946030187828884079032775896972706742305865310361376231319611370352972555934698718962269985421264364516042683285908866695364741064384394578272972205893625805057052940148795356756673247340190717364804018896271221443285774104961308130304785007686856161777361640349939766837325374672375463362738117270056643963758783640872492793082777361624955324990012114155680809618484952134786675493544058603235174259321429548538892842791129101053178671528296813368431133862055086615182241345920743796064223126039534285095482767406073903188239621388479425565558733397567796587018252947644284558834563802635083715928923902873837546977544531851225124906008338335530293364785741181388194555976070465754136579229061579479060351316148553244168800640331945178582864649469909048620019666160310695249224205921682844430776084029060222795373467160840338773640152080579302001692535430657592942144667296614238756546300199560400122083996043284650291317895603778712122752382018019915065188668360618176309701329211655388681830789729094732998076780486187335180013317489659480865414050969079735972429178803622706210908101364488270310169161189958756978587605616543602506478648322269008847964933422096854484052297813142600602013238725753018648543339685794117917626495303389721774033320246730039888237240783455161676126908248727794068267739835227825162344527124513459165416651866564735963574735452700525324223708731167511308877720472448598904880215215156968617895552149686059618584932076898565589611893618166078253746927019091187354039440314215001982879400579730704359743421931031290160408983238549298876690149371801269046863157942245824022385680000409693428312992827084831562884575609611536364535227854835719306319511390794260059169763120443742428795871822715508758796661186707640089578156993634428669587653510283129821038582558056535413163381355333749628105481366969176399240733977034705103874723911286274147407347679310385985149186772263065691656588319805624377198467975596035585628527362539778152986504336566149000748711953972208543855638788069568893066996164142656234610196018408388159762546370823579450522212228467457585082655280952808316037774386539460318304008655853999171932695935351988433475656818293329738293831216022218369505328789609448394600411633410294660815881699810361852307772109179369537448442581811134019946902121537591039255491341381889199474840784728966457886831451632381424079732448372568828321129467025645457086225052321984596458515436463095073737871295342255705856147406984891485280661831961625014039534637362282183990757326418128384003250320941763296585554258337026071852936044866351586900912731024193559180076280032061093014583208592513161376122355487650339068009254296197274635638541655764308271763606393520137273125649668960838809017031413394588274406633650456931197641253426715862445100244014638735445210635107213641293082149428305042394103921598216350889584654808295334180355915225900789961730828737300326590617410348415255494301715208222093064272096642725189355107288704460026936894140609388280627253864699116049311843887549555219847002035171965024569113424645018589498308431150925631459579189856593628983614242388525002712982202319576200491751768090636631400704506111218751386926218081921752955573426499905507285889232048813891955429895110338449888613494558628410352259851459825352216173073437518435155350919140409174988405486122112793682793989557559672775530732198389627783340335520095632983677098604506307614856318197182875123057443354876577425387120350292603679231831760732244720497162135647642989154026758519931141109905750790964709816935897744375920563709380805996627369332676431876707111557780291982035063658718304033776254088402417312883009662933765316095827094042244076923051550814490362881632696572231067282782726156162464835948768648892898501083296560645774052635342458064202189037800586114455448682199401865528792530974381273679604571787504702722959482102926792389851030229189238556660350876456319928940399834513443039013047735888291180596414242645761160545888651143134550172211293272821979090133245924502724471972171518215023114769493858061394049280361890902285661456970986576891263970618171063487424166254398539137501404607953630982796252234632342104086068187989101336655140923225339722540134406039082159249594211213725844288593635957093236672970312873918759307057858776907331294834721093534471330100811461028708136505482281503285841422971184877094496440973293377981466273987368830099661962647841162499607660054153715393907944551514537143478088621724536881931323552390681809205411900526589506254675797410132045379640802744006140303769779705412293736656558830658480849920886809893313574876565530530521481356252131421330769239962974997275700765844160977296783636985812797780619273474763086714004458951339545073221825933744400970366479211899274079636234038574810591593979820751494189333965997776298728617657267000845597516258007759840959083736567643418757333768302356271140057993910257273528968204677921721733594492534678942928388490313341463621329572040435321297196990365797698435626868598672846506491551067217287540378239919520511820750631913030257129461495346029298081258314930961226466694519341742213807817739127255552062733699473278716145004732710396934854778692233785585196549135508794097661328612143930367589224344252881923378454212533179300763567799422152145774466168073383867999383751518786199976991168747984666853072643977601776105262567369645923492948258821798191491102981856832820812209630107644075555064533023133040907554261674287736107817626559525646460165772933498910856183793453787725686553155513122461682691522306761992286242463814641506575234333705681987902859867876880330301185914414650519073981473395135789104192698717020979732613078732939728183195124901713574696046834768760090264416796956242107940612144912561333831464122100568298337013915278544166234082490407039253262224202386775880298274671372815669786963463019910905468240812915188855288238539101735311028775047497953527183766180891318220193533831486134264001435207245309063286683995077882625792405476460832523064329046857897126552976596274508991564554883606739783271995437445380813005865178648486088225872178592245622665565174248235361859044154447913907604701600074829487649735635404735004038031426424255036423451460095415795995849478166200286212631722650475457297129703367124187565160133127135344053360983178701578194345936601128391868160765271611371017902351636287534422509146885906387229770702045069547586209814058565237490474610528014127779886414885078507951418660908860133483735447274066167749851581782139063158740648883241522575547525889043769652910466152216898663248900914777526729042399911657162293939376615800737444825465119836592962239097796482075590213504445878782728162929962982307018124593265924874769079118682443242494637829046833545010864868812443246359745597258744578748461749493853780785114923044501426340120926902297099900268420825048368474554117335756140747316420907898817362688193809935345030033656948884139053365643240289010355654860571728760460743886847015384131571138441668478600832920303447880613965729447391807473784038402269367890431425237958629688619986882149644781716981786862557391057624072873145077630920903569992428831096244813807151598733025553941061554013696270856365518686241208089675439473474302026788446095761502161982196622941562906920825674019843155249512395972431693559657506395596634754498171725892427874363630600810595959770955117068227691318097647819833583313236553573998091322642648519653443251390562950315720724430464182631112753820207059280267222081696040679146076882459674183357523188728462664254612519670816525666791250663867798666514898254658406418991674761665115351549713141943261061938539232812303859318621826992017977714412368416640613870849966378226472238284135177420927394424213796447428815630130445702579587770492106124175237211640047295146815030962934256200145979780485438459640384749001819601372866166106742584025719180639350830927105494577405780134934360798702409645036261129203489689371793305085629319054704364420034350096595395338195272398645426496104287520954208688759377731176408002936119791361261015370494999938945223398013799414719048439345518482581543946415840116914438959797204764136316708379904003317378568530905688414280488945148945490139010402388800853302459515427393417601862967770174136535611997725574400767077728547906262631223590422920697138920124303820390891945652233147810503196498233658389278414939103910613283427342720813903855426290857852498443524946632728816319343515109145224711370781864038613049428685272761122791457973049779062142329723834572137758648117758175508269299233973280128673979885797206643516812998442207547484304128123079906368246612398922864637026259611725614544515121073783281357080946188590477080432479509409083552522677004456604411645455375705363814303730049066058220265261961884843876444213224614020378137611404218424636272543731035067786043234362341606529295957266258762885074496126486661311519994711554779016662686465539487532783919446703035697087834253679344109572706910298829808607343492389754201518793203994907746625011513370975077925309728861485175214624221308522786196241804997609130965727733705853094177615797011654563443990832098845332521182564343745749957512696805675668539733240617553534074221202813665969170096928764152548024226350826154759668864166422135027415397438596702423061602056769494621509772586010844112584578659294126243978859460364743205858811172357012542169444052978779526227793464162080290026261996605994081801584498336971519511140338360859658221512612126455010240155562931352707037362270412372011785018434978157057653618677952864292542551544231478612568169527191430491254311134102025697796152599724655332288757973842677134525403964044139033706253232435503261578602346016770962804876209510001118983243339655098716078067088923802016052194623432414637041928100922816567349752674719193746206353138682438194225994885446879691666422444983832932117262763121156917812306497861238131415704032596140796828291454312238895324913374110018340340670738521761248739024101323866677830517696115028969323828539325856797167885383141648820965579356955979212166814718840799774825433041685916250306456795289274715282055542188490710243561326558377958014936415500204049834301225825449073401624455904892449708340640916213174723967092833310860036637510312443280301105146899470400072828380825705571919837669863558374219340290248344768587499248890866451053081543963349954513039772996228598309877168871891350369164477172532130773637090089286253417511362663483575093220317703861789056963525503814783222804135236061416679630025821760770318610425450764660541589119734963674105271374595361816997020642328481067339915774591939390717852117983509301606773382596101208609310544803668405424303913533253811908019517916122448006548258862085859019106599635295212065591614293301668642376957358574067774360833337701262773707570148859784579694893518046819362425447940336484809581658452880022968698865443468152385679835314602688455278801976167061706610569902760138671497243611137450424107036983373785543721017497287116122998007136749461898022846827408658221733883334580797535733255740311185942648009055112761437013773499125911218724415486670944957836983162732457347069325912833980518655794419644135555705249852163793168622866575953995319619325592615507764189892190911460873241340305837635751479334230080750624447957259271738430262641902066470670754742668872561903250183216016713624646234267575128618965968134752620923434067029013745616548323862525833287500990425672613085999811942892637059298747021223276161560908959308569017927229704615479868080721932555975368417764759407251524021771228668129608479843770460539200312655685892987537961161900371092786793639017346458605121848451624425471956351346242557641266991491107653251216937399106879388047282044500827146560967651412961040623006347820702852899623554315370448073888519409644368987301861471207195618646328500145298403828451887280140247313755439935998182794633013286482252579516782181744718442038532411371434942678463339249841151672842932607172112129377842812517866591166031223652636348104214418407467824184173305718852806053612670905928494647781873214442073617748555225960568225616201587180083755753510025331636701387415990899882368071562863239536088264820363111179085327073804068714352475167055376246082593568084624112217474974907536830114867923113022567482765962540220591628209543044015785993859763141905615017525989802313081498130508790798754429867442767629094447680367864959820809070691032318008689168392895139748165809358288421503543467991168369570609479950926706519028070492248590755530042423013072315028753990147088946613392570508731944041638215716963833459808620199167649524952072104134045663631878073946732908202945724778818294582377178455754371565310430200316376790708774599244150027738893060378988800072113230150945755833185260600183613464185048472602495940292530510785612441210306716889137569213625516127991662074865277727434475029196917100629852685828715009878449363523411246971182739014052820983515414223881365328826522736674993652423759986468648419745367220512811378159949842286758289347430577532090681004128206027559297011277262417712962215874576814580033999805724897078480589087922105604668300972375433323665616758000507041956192033666341273008975794466366675914190439556047128295225514154923585537754866770796800383448728208983399424026136261065196096419411548987590503709863292141168980435482231215268570384779417560753743941797524428388971579241619032983917349204104895177142224632246069586743258443262886424342267060461878956287239524959080816038456352615857907280727326962617704110898553633527145323747510572078089329600524425078731280551651366608918439057914622696206382066947838130184013032863130410835842643654679886864159379598618018952688391701304367582785333146188150004729791153930023188298661264884722931743187157798231478350787399273069367993518558995286061550980346124309579791177628882285074144676037763480652749988604517000601174520292702440070975774177154943192287952891078688046513497323216829177051133960314499145684889907147352720281303317435170905668603441255379793244548106577202300622626750713692714995574943245858277077705027278683162920679810492661843840176623738708563869034815948907091018323725723020090071668170307195514948841475104767734355646478829612775377961017915382568563042597274034978778336898536466041666698963694576112890528633669453499345420217069351152140748000759940906600035574778278900710995903806035104366815216880309545500875926014598413259136142808437002780061161791642898060398363951843610034916331995045287654616174333221480842009751077635164255575178311632885686358195038598236844873495880680160838081262883147269139647762225899308612267844542639293985661045623775699051627058278293458534280434295277064401117061917403864062772386428168853791247925762407345532610905285340004380437650218544863964200654406972768034263931634893295008548976525665899258591124948513949788685228529458918608068060894174637659043836900406872248226455330671306427467040371890195725445115108199827063259601590576801994302524308315125430781359890601707647143475129788125402297853223259693499888011685410123013840545898394538340596231467665610954525550669089794414323757994933402962838614435220351493889473845446662291019133508191846485321281013688019587289362528902837941771212799561554463840584632063593410038421321082651054105325119224237077699276956501809455483771509686751645137940875846403383849096707993220151278231119311913085757214487684872615028239522371045552333014011577043700276720717776975850725580547436766717380075107319250128611088478351370876300363953308007356913759549706839746052811973017624014567022152933141783039968568017627104291225352311469136036498374010825025543070590058423151590794325808194541593456291315637204541774930296763124461145051080346354720827763929839152034404411788466267881720615113462266578160755319324177024944796047116386951990322825159241132961332022490156705806234657530324305575371628470090021586321441845371508546911267482187770362926772527026720245106538303594802588467326315249427420766643951021843356449505703454866979774458798725167453655027057102619941766482398913752697787288230331049417734711583281973494274008134893285730526103485948491345411511942373172254877511117045485013702442147143586639250114921147754974647645682337342396090532874262580584249284972750354280373097308179668448394884751947171805601015973556295990919750650204615535040945288622833719487052827504606181624338046626674628374631544629720979174205505842939764273756934367799763039141975586936265891261930877669197304358764502950721020975443183677369858464566818179616984213149602577702240789077009184244361958466789938282011029701515116777724569607861407514680144210720176232625874146316065186409045893376155495553089555392010439820717864736443171155695209996767983480699650047616885208451936916759207218563355442960233754666244987814119452208701195345135919852297450633153667272977995397267401299668059998252932321528942846547533706034442744056592493731003874633908455253851234198914645077568144616817261754156099417827515569554833748836624266944813073312418443666461367550337866527452643838031955703801076468803560769756099218909270313301349181679079997413119988440916308630962809046576776770348072179994173434297340395472799923790596700268074726209973552641970918173721042523422889412718134544662583696958375945966695385069464958074379482994521966787024956802508723337017709516788947897737534125000102477976501265800320388708222237190576546507597136261243948018548235601977266781650472975527536985430527875229377081689401322608737963137189525277475831957897714446472257440405954357668559673121008318619186878655484758342125621232157852939404791144047351679981124813267181162506322163492746231214680513490369746107307355979335079369249860631968120947174290918978645278729919244063417059272021594618601716054742033431225329536774924311556921991287772389639823196652291283022603714854850335983978222045166453507227758832131240203591265725491053543369401220807748339599750303511898485530945129635269059191339722769104587247925299747365148992479373451156789035181185985797825172140915423295869448013908124224139306678014847620089878144366015872593288964891799418535028898035710654708091725904670575306011583932135454148622007413005816711964809896059060764789359869737621390751207899703717260502436891509043768268638119723135567249883745424346978805597457045812436415793440510399124763838455800582192884064652608899828630753762215319476229958473106204570278362407813537238515820693367777883611449600819587266509255612233068105649802289609345183650075422357868958383716117359244526536769131981873464216059214171323102405134734245434100663245451275719290639254682205750328484907642764191968905455918919951132848302830267060430391023574978198734091165582917798906239508464857312895345550240147776105998271122460587450513137631298121173682553746626273500030610124996167730164532142665879856724302940295648713155617074474202582576267602256607916571085013464032390746567811961668689346725244197548508946204087363117529982953464101467705159407725413556842633763265459883677543605558048719895567788354616304563073571760714972166703558402912904531026346059520013130719081139854234271588068830219344413472462414131703031400686364248104997581412850945215838686000159771230899094090500039970290891258348712882138454024115675120445077722787445870318682821578599455354668386329614679755760980824521294065201760297267393366666382732984924814767683811847100546825622375068601338196026767109966177895585672086330136968908140784980451325663421557586209909276444640460602675200616545167694497905462482380491769498775459587634043746595504046245718336740269941267225646415236411762126272422064757899755533581517553361939948978643079430825789951709916972354452650256986541481109480954230086570018284736887784116932040944747134200540414155675763275356774437037867370129154573349854841073389515451936392901306452944361048215676851171917982147648401434811227392831918227265012962831290870902564447764336778708210315869634200946201023149391109059372568118964836554837128179258024604247067567616777644307596343296996169039447957446685872401296189059439546741249420526115879080094187968901597374045340590442769483343672492357880790695001029308614316398797162609719005807414600155245774976087064118931641507865380988737354977339984304704353477649073795526199776866186610017363882032980897679702570257754970001967515667016548059824757843641792832605128097840193872501652042982672754839547521831780012227791081713940371481776921546671044299647960724508301301462658100991870437521656325046459570532831745626137078570910083588625608734071026360724822958530323030054829755177031740308874250571663601127007613912282349933339895194499340930814869626840463106666859094088243569294027960861438981512665288561818579825603507636950540603859768211846760679909308563808259561874746328697080228803753268223806389950127782577289816481591845216456223810735850820266035161744547343613776244968596581373413206843768461542354559107115565908333437529426882288910224942725398653155625987824947608927189782616056494877007524124377175842061952570051714481634978576150530069629655359386664756831484794197015413893340347413745914450606626958800622478044597636275599101022258944222883112314989965236782199293135929406459431537982530154495353577668346791044530509648730904865019168126612224939654473701790150555295377856821060635136842649198147217232791249118093208549338171399634348773756846943115402877036724655589798062898280257269814763312325754824924478477629362491353388110259016009468309242641131248286667123097362910165744968455662012214741150706140730029968629613569409885035758375964899713890641411052396487230654746767909797603318649363989936961635218527581045124984941478999125067957852234885542687015323416146248844717149928525102899364837371492862839685485249751826453728986067234163598184625462152672111284211517424864126899157369968194401134125835422094207632323279793865163245976375230984302426307375441003559931520365567686708685292479143117819392872267749255897476443550370754120118480391436301527248080990536439321529608400065401658367165800537586341127095697610361477009291682716657852375518858581039851222514806037301587705361745694617507651922170618999245446116835405368631571641529383933860735484829353461469658310390439378511966060558556642919222825280428761576848154923182872250352209918168664528364187003855324814629295350305844447017779142209438886286478009025342132838721433356805205827963274044738436772370107024359589101564789461553088364888138919226438560123634565925118575367144433053314668711904143094305303934978703499228776185478282395827250410025802457333497158742126687604201286863901467743818968531795707580493121982279306961489071950604967648548770960054949498494071288024396416948412066273786265998533117834574547929954432652265892317155883571911092585438097849992224188559478969872254699363631722431082085053511073827546383680867486082264104609069916554153971093790580657567507764621561878375699429611662172631473196408635163169588036483663757247264537809005560592120012454944532234584963743431043377128023353488732069567441614801858866306875143330874087148193388871989254509351745217189762603691148395179147231840397215838698654586589263287198261960031761340744193294039227382651136968000167429820237727986143081197776389289793887289165014832456693998710088515935931732380897377939238060444398680522751131098510896798961614288035401445835694700410523071436993144934378439196690084341188735910305181747662057467789002747653141825777151793971588220069390387567954315426383454593561407887921241329723124699700412193200976424148356056161163635923699026433637652751740384338288711543983986882898862636774289394486253198346912587491745820349040954305826030883247335744472611972436651209761715213269435585816355597190425822035868377211229072265472489216789635971394567966895142687909716469002097856681715692386587152550604271281653922940177152628319818234623479296248262981678778533366960731184364906972894337477886089209766142217776991165003473435388860603676403646605860414311539627152638217371999774720411789995498084735079953673498123215161377134834265052568892854548681305829549614605903026970612653987243703044022792410496793953881106771849225546292044493512164250748047938667801008337226228440773936982800721397264087861305681357122222213099034919069880781596826689625217116190888667453638632151510868769099639066763889592864650186632814528037217785299664377102939875200277536464198980940958792891780892848729034350434717973694832221919993875171031139624237119285565728801256120921272760561545916181075879549881387534236482171144638467988463238578739698484402883291970749970613742051459038764494552225409940687654020835299542190819933428213221969462531132812442643930389114867658204178374289342366212507396230143622395760905109425308937317071361538738303921817107750361595192062185726930423963039076523576306727604596735353260408027186049337807420266492581754869535381795969080142197420631045142140533246038057909856220356669582512473881077319190222096203631773636343833376466771753651194257017449900640905113651084497023511985452451098748638052941739393373492520990250282558523315998242930324069824734259448672204597343732797222363921802754098207164715565899044588223747337787588486588200608787373924019803657008529514421201770357325230871532159379394550605390583225541694388112127600209779434389575224913974119786085989175175785492024602142957199195690800565034970092133017685109142802358256982449778489186095713107778135288804608965596088852503728253039342626987405298021937313337952419565960646117797261273203785515241986176518910210143746574977242594841518180667848715457913074670552253856310343089811486905221867713918994624388185938362781188064265773604428705364651838281536830683402035322323421271691187271715994529932124410451225171422773406066743559006771820614212806143251996118396767884832256753545768316430748390600303608000789748434975960366043206729732086651529735199013235958828144039836345472449544746640731088582334254530564645449155687334240883328344865509717214891713225120522594098864162256173034099332018781654494311219433630436282286887839917271607288966165776011597979978634979606058959226178942522363829442756354566375009823781448977041920605506241142943995935020250931667123322173712047770932688133935092111861811468357764203108793810862112868753164359866090631401301892225624069324035479238124314290549987216020070315442317478126962231552808672846522475720605919490457580571621450536851616075816429562758369554690593455637965211936635415123199293429986706040468648838335093291529010092282607326239861171875878276654777026785859750450534511485765801946504698182081894487647867492255912892147551844766161499494098744438734927235248588540421853609021806815343203000912609438440706142475968884356321716894608637061026569742695515883592979919013461234448897805775218226272841329536136234324278434821461088574122580195261580923533931458208127964778185535313870958105031882367573223248317862275471040583468121026725706043492026322314948786487393715899831743631789999999231938824095503350158744818980346444593750787534905517827218906288352994290545570729084489092164836649976245041937994557768433044902461444198141873895909667136760658599458141085040420129438960532005413796762653743269040264714216000382993042559530615982494947354298910230858636962620279668631337947631181642231440348254250702501393740050388837789825003999272364992968131373555871854092011262807515811529252325765625628646876071655329707460198635362761492565584706549677311527302647253492068808586823741436232915748779859016981512891569578304537501745090944200192231317460153868619935346717858634142094973190637846294500348591086868360304139397699033196791096280030311635367114285745488545236256540867229216618901595181498044010914975034734254042197778554796599231747630739263420107836934897364802628969849093740924989882515348072306785525120531224550051223296331951942917453227609140055999189483289549002648617441337212608590057790493861887140539716721702868515932668144407367905983140788783118594118114167937246790236876517806186435587413007530162797252668096786950647474946360716795173748980229597577835406724629616837281241971605850332648659228247982769836329268959778440859132085312605332716248656398890863391657417145794901110624101759486786550613288107681272443696503494306876214361469209536540517357408821980210719553524792071511062345132365640521590058356854330279602768861163908692314836392001618026708832863221282136486701725475588672843703188289851667086260964162064434018117044483878028948044489509121893340562648549229051234336133786980237386142803358940702295329478538428944281741652390306581183360916279474031348691496265586280900461000482266952488472977312119738120263319878064409769796564826068784160669731345325619779508140455126962713365198005212587741965356846822888985349197109319319455279892989120118196445428260787636316752536520072626002424810514885718436470911083755258490425417320004838779042797859920813756839658727101966377304696846610341973377247086797872888449915437022021290967338238635054879653418699221374439004915594155378448256003194366734808074488444721209290489762229700084695196773254452884916976360281519479033072880158152747259556443911219164103012381963426288826619500046155305111381820384159744026373313661113002687695595012416858718290173510493451447924876136336185305983732011852992432079018783147856050052324077112347604580120036805744699320279956525582816861671294440771118191672801689354364515149490350600995284203667096125331268448480428375012254351882505719890173026797828944826096279115675920528623694445037683491354970000891229941058233317939607422482847283844166604396027438108758381756933346038086750995530833314913682604359929477714258105006848611260089440805211005551776110516390054008603209484500964090368724439368058904002526476949928489446604063953513255013977811459684479892636941862777810775561410268949202946063290948323588460061982463378479325621938649618728727097777712682264267866046050352080581030480686364460808949963602309073742792604271601510704967430620208333521682097998036180148415313505064496459993377034424464280337080187820364486276765589691194488362398783349228060751049520857445768251524732704361527089558909539704150352426461228929440433718355327749548771999002296701146658136606583246662187559300380349956548828024006059690110941150786288936168833532693746803152174125943047810976277635783022295414163542321615558515731098222328048296754061419925297418710682404432898707374459151550056552876438647827894020740481119309434643236444648563152430676718852838865330040542691690454599870529090350000283820979762361458248480651415198720847649063821586011316119112529669556950157380211581756424991359567130811161999705873618468464143898141858519062793347579422855292910062055577365707390995018843476304423696601229167934855714020997506443538413403316549840813341230772511700918244579597568164656168906558702806853520939518333248399540117714918209567857193380292895014207195370393305480666181185997249999176379169061154382476212735884590364906265048863591959532258454730960510560269800319792960740875212571055684105306592504271430608317166169128329610705786749362833315327460428687167387946011414839067119745847843350710592410893234371659178774964633274089350850191845882288386714735052750211354189954304060772252355343216803681638470129618851657138250489942603239530141238131566157489004587383014984234488194587455513742376913010310682429986916783909123007556426564210336485815355777659520433710641349798899048525138738984105168820576667686606323046525928839936357578070145614194341014476001868812890213821271495858478733232089575348253926782086373229984353440503205697151355795429550991579054971527145341494602694635507389151481669239920916429481564313339485372693834413685508062601200515752817947781336880732455846766981761372074275638758936842087356457073145163421139324652353497667994834233011237223817239274578103359187871995490379976615201499173589520167876143782476074246209023427102716908822378506417656972208137842769957491434445234718606385525125446967461202004199682428693781708517046033697393721418790589459126371906417395618418459097409870423617266380209330751071008555497379894440303718908984957096546879486700589155188229172687654411213782106335777273004818869398762317194057034034832767956732694219921923244080450598231082361911443239857633967028085771388017379872753167703453359076399460810834201195514566111782643977838403414038098638995293303592209778348068672110377332452873680413121000954342730879713066407184725142055700976500280244451594619782997059520711163050987755296365293425900431014202992011231680751122035652847104740863442714902206165014640741693813107476529110491566219988034782963068986242602084170789826783856419050645933301322501525925654138644801727088868873169961785678848501432021867673103970999828656622463830613931736480251545456582820030222040359359366481593155440291885811290413823887643914015356390087153570240871653224716747162657740008422837111524540227462525469736481597283225573565945268642914382464238716641392117253031213192518211147268319522279845531308214523058319291805027468557628677528266624509254503580888896327929381441189026919749810544382738949956534654341828972720722048087543187506953877193073817241187778824261070002791044815919024949499702178298337660005557810979394481652817654417192657736275749118427878120043076163105007497915096904674516082123456862687263641126704296969220493544089155383452952885656515666847525278438687797980165529903713571782554393330562819288740494250136156590306769349335590863149061327492275409490453274190643024205852576121032035672813488312298849809615041389512832410920603563128544464838124289823942916726365597491780377284343237063382061645213133205614807068969126494681281578403112479658756385810882740907266377782640342824224534576689074879781369446918063603972963195045539198844925672621985700116027093214751224530003158873574150833125043562458569967349610288598552202868642921833503990136425483515179500375729737446844667957158101968879782861201248389107217343575063618768535997062908038229355947530943352739511176230480134741228628309709961331542207680348031959739249712767550505595131930615117190188205969109044055954415950791625524343878743223793023461994369931085603845253897310006614412551357787437397561525680128530165315748238620763837743375081072518340388028868218229552832966263243662598850347779803236387240736468140240057174564905337972575767517310014145002913342264835620254655751627189710758128734590252018827034777444676060044260926215482370114562033216016058637689839227869263368663581417460385339327327842296050359774224195358253904556100453686453282886838284320815340067515156399063910747681046844048364536545592940309246838060319459973065280981522488526051187728627938926671062375199882682513229965519211277268129751757700321805858830819794596993401324167429416730816481292191303936286764280102963209194660776204773523836165047759948291642163668662683375963221559302692250462792958446574374184954282422217553005942827828811638830166223501871052491109024101353978372021035053380274909408496945262617867506355221866726830756012708269530685323293249431329247670409483585233793312572101458626448015199350787975230166048307226174270996427014186830802808819302122453883600505357100713788912610706797084223663299311045125617721779629682626361411907518932267958834552317012554243894671348949672510045573321079908126051856050885458522390194461092451895011516585071152178807393069051026868982502806275580378559390934676847889046025285932178532883619217844981618339626889887175654862482592391920772214079093492437430364294311601559076570368745220062124775317504316057978981029243310487387456018082766530175747510060914655258403817108675185243085651037977951720152350596256716737430017102812628151403122995089986207776964486723263656000975133354306835094741753776717334461956128190157160188058076315371525215760364224293005339002292151583993164188725181377689595117255827200822079894659431850002367595099057560554359475869131681274858499509029020454033656508937046199335712986433858697447214328291979362162309673585279216226693993539887894507682214695278646273759189767174777647599582922876591275698829386168168966095475378150347393487254337912668733983990768645927454895317490110578811226312511822278972273315745295638803335391681348012170355584204798554453762396190115037519020942703099588080543914712946943094882828244262204577525735608183489190172562691537886940879299129127717310656576348868024594192473898289064415528186599557844192167252089752205687961708055547334133896182470749928674693996922905471478836680065608363621947986058050694959368723826753857600014433346764743855819564014894147547382222912378292570787628844840428752991296878266344370188017925367076006161409307515805174941447724032237034667270773645141608764195399111182589206084966873502296018316210129094893212744844986248006312504052266909940667814024469155792989429238026603362639567214752311793743779693927019973866137360337049903521265731113194936337643242651528168083219899291284186517227752334097790277232003667057260225088930165464926276699208377567163281843426865601010178427447315769117000411105885411366465668582856771949502530393041327511043744196622596309148953428811771294031874443578336342581102213923796157106084082533311773998002123823569347974892415744736224556494718131522258724574912358751023957193294569543310717280276523637586026251817459612882783431501612403235877287735025919801516764917138204732373711948513352561304449345577107056394129817502484519740102506341134042845714900279299763045963216295514924635313998977615499120270986247222370813448412211800921525767160225369916990728317904787699823974883511002900919230088591211005916322126910588781527821240129954819449624126677112771378760273073436938818952634822201388542004430163232497634046783256619059991626505018046425023340644812597317890755641360063699816914219574582617712149725893613191599376167570485796797889885876555842897523028709201129755235615674385768440709371578937190651500727013398902176261743679773451110863216471682030115496959439562276622410027595882021804452629685108980549824857471022689677201530558959043565584415682310918848858611087608859882250237960339800565433900719313847428181629360140395576554123430409271827762856718012909566232133294494361348032082070133762409688533038515670759831841525187977598533824389450072352600573271254583474728446439073358774347771864881835052776455504421586028008214259719681896314347498580894874059640674455003106437905153865063660751784008266028586022678509103750811086078426900088738617217202622545426432185579294565451621377494446185087686573697609627401946342371809251340548105706603404382698830259210255428546950227288050871384559823701659302285566746221518947228213123311356598004794161235878000247020525717083490325235952175720148708761998335036055377013378979177326574788716011346441000097076454560696123561431046280149857101475629940298200650599100820466828470386378128317517002450367995805591491138569769731640337614818543743228521251879496336791540200946168244478638770310832193069845154079592213835370174709971526144526569773073239122876143556138211898499981873406483943065866256900179296884334387198903524585149641732433655374335984442173324321062566622499752289693997004921787840869949013399226904819293258185020072540275301163029894726971567218025382161697056379316679598794044866810680681661872618126569113739094456886995511195995041935980794143415118472023666277263202272957073249304405404428527035401013303751995664488286669831501735097401179191916317419730813709172577547504854033473314012163607537689728330758079324151309340337463473288391262274400655309656219589597260168623484420350319049154335255918203650744863423931848603038406701359221006081933585212145332368048035028945458269542851080879732263246139587896742825175920120194180987826542008238879190457728279518104188053699140829537845404979321710459895122198314238080844765159597339991540465520939363891965132643466135572551857379606387279973788723403498914839972271268748941091405660832397776836580861177988129526119206399286600158192901934310143158989629199329028050916490239755218164622383763635507983708520040196626760587084533267906588554773367021729510331850623773779493203282556460160994355382564541579278807172041212699050839775733955715901422722743907591490767338224712594382993241405838608994965839746805492842628286471269734331695799331886847138643151617049383880673931918247905422817700529234920034826227413224069231486406194289531952047883684446302167441677329268544063128496527264253644361369093536825752815909940054328384036483199480452969777021962578211595721758921442178089499612233561162159772418158768250820324518629266613347823780960113249010508889390254653348792652087465166978522477576721339058351283891420173676720722827837122916250940121530673891112419170416884535841740921781562834166797345122024541139428342662016185765557761311569667305006655911898884139720258913933837957727644766709075909412931291755723212778460961190585003130089382645695749079783718199336270492508466395023263299397498349701059919227131185069406633156487828877191616695920222298670304744150228282345087044214780379435762797635451026309360128506627530451312852000956737485046489029302730606888708732204032567664971699285229196069191953284630019182752628253055753116110846031719205122125251439438691940832445946391108407958779445477372123533496654215432281677942621579664152831584190299630750510795456673050891839085140723199011166733296137584190480787023809931700203580704861860622784443741566760825097038608084857987257597083995605672503690079289823268242636827863559925582732616445955992616424093338588411257744132151242127230262709045030104761723903240581537424580369418994811425570453065031498023529084348059417446501506551340966559735899896708185689198812748784668207261364183447022103829876610837998115962779831664138683844660051783516320782452572864222188079360222354411997338133559483738747332770840952763998730528000114557979308173824507179734495147702156321074307245948826029129858814163712338245565460059955431638325606611389832721449337891284103355736083278892230446807372772265086488053979383203956666486551315888312642896180346937381861377202839155252856255745323130942392405663674787820355502820329745650617057701349926601103438195643112743549835294918719238188397517239102557864024649899299549405647875147609823130080059648103647878814639681797649762089438515059214074563809774218596434585685753828564327727608589482459547095290795081481670906728889671356192510107416327634859094378409611064190042683211301340183682902596116043323476378968969686474466140486327610244241030852671605998827245951879560057013629768262522523051241616960433468994598487440767368329169679733975979790481500170536434392299252219925640964760166500103965681913834580312102337880788226619580618662630743615114234332653902394979915200284334750382779898044914623244556405914191972010528109312466072275310434469284867704033516460045370313510887393901275872510387848844600584714798857390631626928274379450628575315793299451945993387456015699208694646450369448417302743463354889283486102359613088122081612975400625949835871848693851794639874598967948927126568048586194959765268540436433027116621038510095874147736781246252681521755748616160517769954016115701197828055029513310379849608348673128155762444425526431968327446052142943914900521458885022657689974759000789988723710873129806247488689009684208725128561032801007273321357717747501187196448754452127190688144605832130209487118934735894452202661732409513063526430392987151695517684885674201528207641208886721770054229540893478628494067313020188881302361470587011194028174474402381353578980353528684296833533545661559929365560763996359965958045803890909908474950071952780471389764016865896469830961586614904595889206958864173608565625370581830042682162901621349859887128422911291646084238467059235012835824362744906963048541059571835570752871764297474626003713653423742861951853875212952242910817043582019129792222481394255232243570078177546473432232431482973908046225443561434235121431254768171312069460757400148324811661078810564784297719746096282954781782254318004021434983670934462340551845150245626034761431442982175535741698566103784354526889984711917058288793209689148001963100349451383072423654290911594510951801504839663597016036290521331106883437250976504453680542815817304344608370862747521858282361794991044345289833221038091124325502388902865936569704716628029275776571873308312305562765817288264379823072675158030943445239973054545595544737714628536771993245602111572568874947511227379613216432033872961972029978830945125421969998561165949597751214027830844250187821106056343066745184122037386360171448988367003612273687759522465377363054979156220606519623151438122421333479952478541719390126647970005616207793164189063290749332318487227235894952398907752660999118406406332475660852581417986544016695027724585544947045386303272728745835777120485077523844179916002051993571479193475041259995794137946392206103992449885412877469666069383890575493086069305460046432084957930318886735370129618793571186787880505651446761731771492619233013023985314188495640612571636817982425224057786892160599561804256772023435191938891341926321179597189283678907479115637405637059243092534939126385057295906085633818596650789413526670194142942694743816946458322997743030289654835039596341129427481080350299448132740754853156705977921203916550611904240588214471952794613732826007815541238811323028276361364004563563738094043529791620289145661661471127134266502647751990503465111347437573874822168144143482615919065655784952206856483959890656947212338773728659613669468031663059536138003613413255177346416291602339540421046984391330681674135385050496259251150111186105205518198505325300101413863662394955394740805259658990726986714064112192625847013592391084121997362819044311932891425463817524734794182518703101006084442735994353131888133924721035036719007417642143412899266329973966756617637455999525432123449804949897425550116679074049765293813213795521638690299920108109668780332680744022077042582931031260040794100597696036412535055433402787142368273396948533921111921681614996599934887590742615476649985072823278566527971333004744392630089610539944498540562934919464326453416111702187457527556781465319668122494546749681304789292066428268969809247381372301179583470551677796994754894490128096234194194164298538648901563388940371728160546428200334052841643453950405742923913425401510854303943163401596509961309215672912718243008148755790690835877523145983936585400352495296025552821965487507313303860679110612511064180205671494838767184704167280167767196598475267580186654326130814402371684082220325944843661296724225362950717769013022553839504350017558839445947776734023056614405282336873222797753436640040720011594234040333015047137751260533016794415238416542139988952332316133222359235228810419367174542043208486835377702170607000556428404435722781456296748690516564187008015812470039405340169662516298642758998008960830120464337977641763769108691118846656925764130836782576261710934680510111285596217712197596863126460007503358358583367633884487429498537738380207446562823010273145257868904593576440556672023777323740750067312709699875930539432599800394607062134367812684216534276976428977929871790884815717250278472991603392089547381987034280720331821434852659424874687283057934888706741288179569105648409045899958090295946529643515212554370949268671396853482805590553152499698887478893331171528670951442736593968249807487710353385471898898688539777902716222500623044079632021196886474441872317613800595586319213619030582887767486265748214879242510236827937563786160769334697774599497792633705238966591333236372038199312887977130770125250462240431289320126349557599669701393376355355115461914272780602360169214526569155872834700746437413019122982346641336515709368776397970743377189779084134915239586073344911202766784133930981269472718919466030736193807515518414990461284659055439825566286250026713388743290154924808456232985122379413761754334525676490799783654180895286277533178041616074460087190373162124001709636606242654363095335722925912212903840330308734165726401571215083108873722908182838457786098584485249916261760566704274846773930276705763105696114696792549675123332224840416612776005750915797923068696510473417184180917515891702783355010351773258172776246341089021078817917601759229434711822802953470285603776691491019716893996783377818469362673623806900204044929758367614084017724501609589076849331779465664462521534727309868510494279816685698967634653585984268362323479669376064057013081587081211514920991974275674017311783039813620877554586313426017943522160396393512277253721852870890747052273703612666922967917703265184834476924544259475186748531093006631363983059711444671062588530233152342742743048012450900342379033130881252728205145999118376936633140733646059028806538949394338652472797041371441617936146906675153091621244781011183713224890472307727521787131698416150562994305083766252759078186865273716181970422110463432728120950351929747201587453289449161746862581036009663985908617391573744536775307083443912187340597511213700317722400544769943300121318340061934960307816653274569702142954469291351807273796571728478224855947519525514957128056250030849796730517352978234477598645777881399314562585977039528922287400569685830339234201754272635588532737111814959544067542731498664057573033802668556227557480348413134265666596635020753967628303630923812583913018991552481424396791857274008496260585952839567532724276737903236343745654890436521573763511766717121673345495772271160559400100630905588289153972258518237477582016393627490571046310129189072442411900798395739402480387932969691968565914162371253366155922407420877637285525741811686327438378373708402040681341450113808481463325194017281535738001330949833172324718749574573079326737781475646939207774084406365550941784052356977067286821326995841984664192162322153819014399446566657715047982103300063709908644557174833983676500837663850570150828744558067388431790431144120386027029793077449440488858441048867067901395590401336603468016139828370138735118878067521948373366176313659883459620342203989083607930083976747204645544609367734366648843545983079551635480663413737710619874418079000383558797287319234188797577767081398371783894298015559823070140164488484995505125407781511168027332925967513726858202155002655503234657759798353271739250253714920142560534623377825050996441481595222770799177476348731380954207258624838014532928244830262824802226446413609462708836654718683588146858087187028430254372369355974788598682197155912266112618991059499601688094636249145566453354925079188551390152141145450920433136792151059858184753841008189262600240766894446753682311319673010267159672860219536233386124184550356580942190168892703381715202503038841419938938084946971299371805372446302706518844137042655870785914730502020615505074717380537292019283844127322537586210826756874433125250198955319387973460758570199823944318751685631531963861362824141143459008800911936384326257745573551436576608226630770991218286967963611054384905198406336877099588797505565927325488971103830874805310744549486090176574420392575149137555144260381871908148596183183640542199897709999584203852350640495999933477635545665166156584550210898994192584182584529602184037784545060597516001630078532260301566850137278286062567562388161811413538557571324580723415589748607265972563018987114268931533594014761331301455929697332784318390243241854707587975779035758110912839306012788296391546840239967992918053915028562102107272268048127092997876239257291756736072192978713861779808433556098489998038292470937933194155948725629604119645605334273101872357575818511382967118967137940081122593725195488037700038443179976015288143624353464840890554380946183746054770877492526427808099350069434459913319892588085560177056129565863836272712811466444630464030642616746595345129269284540667963751926435820858919421713725967595656220406527489353833281459067367975313386871059266439563073512796745723123612403702121625981335544095490440243498456170049355502811800118464656136578832082794227859295180443538980729462421430250300104075914235597644383432332714254945326187752488494319109935582968562129899527663501076824674418520669526536321813666612794896639734933463419697992620488401692222680688481562698113487705871102738854933748037074748659472693931230503723372920562405747105372893852550397237060249452376376160097761634338462450764530991120901129906705308923703529237164876549116679774490900905125999531813402569337277260941903024351746094636905020750791257333481527569928528801705039607075823291510191802030179669867108036463571894060033144594095803969415120997963070489165166609602414839958902146219187686732958746887778792527353004975765643077587558936530000980446798255461640999388876075999593323513161446410697657244740895413967990885629613602878924645069094418756939240494056581870137626049823321868334577729191560622186156268653691424963911143311777587571206750485280650097931781273683445477764008045589402539857044275197031208411569716994669756434859143986103082976456001960537691979206848504774715802083412649555756553252545343288637390037138410621215466820981447008969021543828797863502186166849861404412138332680521629468076035567927442490983976323008751231699886895668918206957215651347634206359161183658865613489423764988249518701918203944543780146713330552482249185575031279680676999847321384297763792845223608972439125772619281803588200824729602932222231513711197321777623233278707989630512687273371923901559387254589306853470793872612782745615769302132948551860359797639198869753766804727917259574537054598534000736935055484395190372410196272555286883201188533019781329884593642405927492315753803088318565247691763228517160003154718748828817568506284926137379151014676693081257212867737094954362593607390816995266021624406765340426455778665842817104295110383008990357524879170833544336877895403306397963756734833597029581671024385548004672334644732824573190686685211078216064206814711602136301256203755110700469436954314459898917807873481316785793077362641393736593038348528464687250903853036924797550373755287857251552454610113316357299843151307423849467461402256313856970957576264305714677346967587633918742683704542388437430363851647510219146664691535772500206118381322844280131860236749225861735690456390188099464970462832000311541334082188005416318329059706520861220991134800421479146326827475630556155128245182265986555573190889742853548398431193803627230422458390638771646635908901536881843068565766830546928252499709298358121205814792081487796248895457041878754179141817101921604933098800863606007574410274353511347848701937466331950100624904453404015261706446501299949516122373667160897567527679584551523079474796839991363746199811298026135610170258115425960418776826186189120481025121362220593684612115829101174774372441981960876423450397822687385047468846858738498120478676306901500946832652184647999421236105685917738065807268713673462253591322376163643140820325866520384179928907129555864947804999684036548014189522981211934181091403220466579706742745397160958937880646335638401639451453437115588596670972366368032334039320194386522061863405333267280699734911956375834274284173229326394843094828784172588034115543344728288663766580745353684849135285465081044175974503569275020208311168964537664994816431264267644481698127610378064288763932051137873800352771881640371162396122776479252205840924410286968247660455764956487666534655512012353684307900261299608372471668679374526298517535269164692601840059471306636957244955883746456067577987135287768067054832809661604211208453737866943309395801662556328759699700859023213615928667713032970822622220925480651056604780033461301856218635837354627197467259272334892675481611036338340528816473880270415124683921827069608360174186445722788110786046786739165897466390913573832671451602130025225466678967293977074745060920480214115525351497099308030342749094606842691132495989966357029766272911977830618848032287910572106472858461058960977803559452323636855110310540929707368899081189265766770574105903124588517474782124455410529387906054463461545115683370731236418918216894508669329086100041886789659554128319906755119681059007107345529721527788683801529739742731185866333574563170865823465588348999036990344790262572938543343466177468244869844769929378600044711059639984232617868825707023955853907400654309514769498250449729786136482337236166549083997786513519397244233945753692307021776634395042081070982510298528608519022160180278767649902080072560663643814358225842098771698052763831104258360878361674411241975527067752681502638448993631890622401216491237325895279984622915959319215009270354256332782934961846939317341491858864027739519686082200641379725185117144187887788053433317395421819324359533882354435215265791543849685781191833551104236067723036763496876118024144476635130481554902541373005986913716838300909863094250349378165578221013442020220513505422774374957481695225747231185641484311698210347209273944329523793544286387853693118970131162747387298595929072360672594305906447893158845196159319440799896890334089423819210768542118686598319728541661705562510919841529246330528088611058280023487763043324713172080871802175764715485194533142476548139829208706698990340533494982111505764375935279495738038122333779202613081994942955732778213478943861796714326985305975515085038824173089047306075834961499229928834933119285283804649190173223153891343275024868444230188273931235412335259430170063449625230894706622214989916931690236517216919959147317426208890272485985847350342492323805185587847812951184857960711648306024913453554356110835046697442665880542894520438467046059325958062720871979348476709840927508350703881574521279035707303176243415549558326319884305703306156501811594258942055773483436903441301494026229415321422113415524378190798930311636582373622149280356850134501912992203960784479775480194625387732475545846979908998268102066234469116032715678869534468751264879567459586483073850810701851193626058000272749597315464398054574347461565586526071958127652434466071619262151880747335889330632957634960118301980686275728434231955571626169686427935016755229314993883611840169386836404381153051955974222221798642113298570896851731984191190922003530770413611334815216954707584095910432319062500590234189845093766217658823028459325017893208161647858269168129957832295100448350987312125038674807450818144911480253595694404674093926407509768243085402882139394604901200271262422278104214115938890867825118490285038471955224981146105163047007092039688289040364242079145954355705152567913011496853383722542082738693258565649288403873975173379967280591517199401577382189366198308445950909825813448812162205644360935602678346037443253398380979575801804642853024662383980702368259740047262321489366096899317479454674812091622737928883710368447347185159058810441662287386547660374239660064301316760179922042607022436601480221221133795486278821899062899253529813625558401541602362398903358188498378957187231158002463053672358532461157883231930309040399847704081696260989858604172592683985781440259743764800319055369973491907065609448198887931107705797763142451360998019529484397199672232819537642916259001716844637585309239784960532938035310068077080874537628840970725518775649490771214457618663576972098847617532641706552604227622791505100563839166245341735325348018865393903169089531114077130780006804540613631997076546923117642876382748594817846380301478222270191910329770069665033250934726022169544764981278440848866148425531665257741620223660152360990057415879448274201510742491969950568493066897474691537140974504553684826200042728609466440447763341997162842803704146940329357269554267707727955779317324838135767319100295153836116495740289808245811827195302509525257427405186252061113403638622893875734817004554822079985082715406610058964046009814703582205062225251988282076887153789637954611417696824810076383015261324313647607011450558219217012668243244687021311826055426764816019946860314200273700988265316466696421928434915892048933589285937386923649602356299036394896997952089338946269377821814107509503150201027910291400218747304313186999672870703382398190758459155733786636182362737861977222797063365228162434905366700275787046101781930233771304959689636311029909599574362443113834467889689669494640342796734918432019587517828979830185187226958474094026567892093050591648810470802937737229333772762255034498348224828944334507446629376756186782938832588780361655253513697725277034312011504058874423120730492358859428356294602734290280681383792617628133109281521573142535317351408449277817925382102777488722153515596815750603866823842591471477059670354713946857023685159704647875360092643059703240727661459411150181732581591963525633461508965839114919418337454501171407004878601174815059090197592777920128736182838883747792040969321495454520834198351083666546506858720230024062969711119755048691327753276412748255366785088287082090401689279497608807451566187374726761430024744652093850403240168273674965784206569992917565300962553744087062391219896421818263234945167577297041077752791943708286019157224564169932263389756745584087261343240572991113402219201512371402174094759615818296169192509718365917299662253682418956949955194640141716872537040403919938181008132350579810323041179474463460612701051976738302572503673042276796412348801348609659126319044106179911556812489560318732814616931950462751402425582687314147269619301617694465199489267310927950821253182600958676118768147107131724814630888531612240395408662043564106565475350436536040358764536107697921930726645780060002161476117149474905284283686425816228010423227918698432504977480713696003980518529498711276174489509449110249177559889112850210535296472297423506973894232983205064250249650741266071883206096449712208354625235811226139754267908689208326757739119714237406513140970467432239125324954255582612974369551769208374330584180695831247161576806336005422321062304754815882089043003529255931865306086178869187653881364243771662401824126291865656033367860733153506887290113154521060499348794551076853314625011493155666555974349623911151958746446718772188081796493370793408583611557925617857333202345842128663410932642202407490969112041952218602826519320652617440230629256342091672977500073779561615128275756612559570112794258779698568992570281122980223045939982686530926574587267336275793576049493772624619149699029039111834732535703244813138953385930780123525848391051084826893039631399024344607915772297192512558361925036547177113353145672502213559998252099009080187229879650690244786469848174245672232529340046551223078508608431687743295104375611518529236738850911992885254856279837067441463348329546652924922624224926728231680997455462544881540917214197367061287858168361384934398419757843006881374182933717529544860132549698559311211517163019753232382727839519795810660979502991972066501947764838156868290283109486631425263976477841487560402448762684620228690777625308283665784243963791162681039944143190007431994709203368774528984120365803523573897391835361145919019509474247052862055000987506972500515966439987468510045846755709993776198629432278850406150708420661182646166743680251591339269147512931454656313592884115157356171643841468780785945237490734378907080554277647758189425814616482502922441424396193442963248575658873721221779907166612653026653507252644789048917161213497613786477964663431484959498556509348352743616954993002964265236717362648921466875240077360851319079610352586979438931600963163967599310069433039284124938813035747352173272010210738150474038107621729534523377158507875405103802243613211841869891046703651017403554594643373423108271216619270383797014423085438428422624245342049348992113318191346823125105358609420492324999642880386765526401202692808840338727759851001844586452693321876387737717773466823062127945751111714371310358404491846638041680689042177260371653414984823436471341823263296400551651940690452875108133262316661717987262281165969131425730229158360690051042953323986316172912418538336987307118104124884938362495680292829542737075756942296260658093254832888307259916430229819699307025783197208247451639106041045456017400992883752193997358848318855944422082343316888058320308774089286244876166779216853368009844456914246194332902963767611286544221938499175172408419197671470445933159099871315342044627971455270172708155906241270218576292599196654934374089936942674102212838975876077360014122101248353268945793513247205350460950812129391503683439723220225436755770790098169388972677743854488123110789835453486379931396141139029036087777378107014197898455337453172466349459020627086058540037216478471513675951205169374837457198917081233706506840275648675385280664940184217087343808880297522425871935218727088001777874935424083476943509926835533192477894668048686804720043319561497907601739572132913759847698909688937092217479474123925287403730073404727934967979189547882051108305604752131690165035876293036040851074173848195654767764590361073739726453481547249117915763551297396842222685086165819711080123250883492242330385926940570123482353318383049102252915051969261243755154676997285810168884039786959701630331729758973916659251802111921872949128929984293330847994009212956030680496503231845099582971476462426217300793507625992828320377326648724887462235953287068961291705188044989088782511324663675882989025258911479513251438657495380773729746352709017746743839966468044788946691694140503966537331415588630649157756968548730333378969788334444379273726613634850555439165772926987208795121600882760548023374835189605959798087831815757865395738276584347401611827835878364854411110774008874019232643899255308254327314633298755437609853678361083879632604279350770375307897559094543843105036261374499224935645902980524606134489663311703425043252345295422287885498506283255471917363102748598159261504907804002986127714815424884863304065973722893345649502648127152554905060073571913500202794345294942706469797546457907313610151046113286179095170979698297002861040245756934841893346193635649121245669025985470964837690886065072814838360876649804153689781972601078652235873169515311011606971058329226907666793039563164209521695588149453220672935584763248172094525739831134898944055360767414609651791227346351268881194074588051829211723341331177381120009678606404891468135008201344257846689424038075478627773294423477758593889668884367142630805537668167850652927124001705714414971224486971761712785529063925555312476620798503139281386701248399058907527486075479758815169463707207488568568620526233207474269978300116519535076267583508932775935695467306619772689586702915592389678863564557953295432399436371086929110707363795632672794658043640069057316793377173536845445657805680392844197208677098482289584629163164550317395661642549034353096478677527249532810365319225611363629174369888019246814743176195829213687070717746751561428705367807779089960711455134734284641471998959119788908747805967781579616306425222055038039651196649795743105852484687577104879920148298684745554115222925772810474654026082603323594594877394234076286643388307166788901265529050632072014198500450337145777088683112450369664922239338435959210661457484951237956449382241837834434421311955282558752178338392069845991545562613295695803875704241347783583878002537555877338620031091811612809381691066038042136882251399429045370406373726642370939392830699776578607789425207550212118119203155012798466304379858067212003421587905329461367230324671399859139147434405453274341439247818662283242181464364846984050470240912283354416734103541496368594184598985018472880912023655797373860478443940271857229816008429971785792592273703563753831504941018640514296915216458044910286532452237746925741581881995630108924437142700623142091317628914551670312481600061884830468782578655198007323200094808436904052849715147181109449194782094691887328598131089123480292809721608975240425008549311705785067293388324650792736138513110949876281255002295203791997311229486678218114575739569205023238957908264784702391300099155104989528345584718245267844344373127235903717998887879974634654801610467876395519792322320894354620436043745934782887892821404079719938164077974755186968138824990775651698689610919929721447575820848515178358836999989359403691586733360597820051277266903711094262067749526069456657749904501857061557457300994066129876772987798849598218844870451356336704949324129553289384629245754089670290495075933185836741555109536529114680685015286371174634450576931703973471545708911692598941500053697636807303973287674886217132396600418874045271232615831186311036131750203684210519711158890374212194293835828921045143272525076774056461142129444506977221920871487490806296721486463959913394527432245152981239771855146064528747353886159457649021637889658799121693539652459520534291905097252436029116209223694179348209150446602081963442090562047982933387690219691727107183703092112509653043973443295247988756307203164420871585819311358495808484863885543135682149613202584057896524535282581320636380941344068095037479670498965939018964060462069875507741602710094110989121197416634149755044838282934456271003514776818901474079971640765404849650145606355183875948017520647858488228259544358231556274448270711409047221101160769052671600100517113116454878685497020945900312837241645335045467814325053620685629011932176231117790194773560837642921679762929726839252708937061094445821507696559055326708184447928429912670289203363043797817370741396333345344220146366872292130117111973217267173044511897740105276338446394241435688021286397109680076714650564471798745959709602161874745856298055272646768398131966033625568755647412810424273575768639033483970094799982654504630035216750588058341790175375645023253548245667939963455402439966242336869756527155780556278177850269692005825366276555495313417844800785148060734512063767079804186627331457729453719320301017717059295895642650841922719330801350053853752566464703993751002978773014121900137103688016881296996402771190155132440765841821659493123043802324473761538420748248006050133112272525510804095890621656902883349981865330559563157091379795050917163843353998533891292791817328262619458195179142536334815183519764734605743637398361300861381373499139672092635142677023048768491456433555199303670227884708165960086345922440420314322298467985631558867439458995046185194506729984776746257399799817328510841285345385790027529567330502072702898728917514096500328168758299344123418078478665466538992714613207463162296201190777892486836195167793393333997462646959625128423738546457871941131874288742277936070294088508202190759306027676887051784298103560311298942598844571183158613131170966976086855141211009522168492433808621952127164122584249871598707278701750725911004287998408121394923990634589859884428521249260369932417364743786436655876684499247194614682567966743235167230409438086227761500242766541014862410017557264379568303469854405013283223628103463473740935178019622866604839735005997165677411935747478070927879836609606437693712320145265903703051623782247783412307200645680095771915853218515290402510980454121493928396942239737362878431284525354927241884634521635559524393532298220462612185213654669786674631379460436503675814447604545420078129350100941084677344194732910854438165292229246300767225972735536514563624081313574157042017033748336186041764786795597488427428937103837126195414951175739975630813787985674457223189238680908100294936445265763116375794790839215600741077232262470124684510678578123526789937666108916484308761937785758707460444219977502325216298901847416709155908046677669196510367688877833798844180655671545205585511189633497929734725822516350218644396713172218858267914258417201789314471571330219898413894573705745338552783521690025492591000181528793137785312916426832972007151403591366501624124679064694711907914765323592852693521380979887748260181875854752852388578379681111748886647230638565481095125667156659485230198600461893712164257637255369820115098894757012613126075792987142850824181053338869161050195565374069779139277799512906645846509385993568420342415355640039952252142254790995141882713519829787047354938480428980376859243576949554010259022921757084700877145935559362954142594246127881032994621422396832422700258782528491051837908767357755900736343054251020096654628723783005677681358004898397534698406889643328409291412813772511858050596097707242355905808898183208729825946105550913881172348438926526885888000528281255358368437774952790311665875408493447934112042037303883252759233879096157260712680554317780969828084232958964966516343784623405874794290475655061826242750530308815236073051414404045586953390801642819943224590958659635310431334711933840385988207986132390826579303823574213496945458777557080314508780389710481622893824599188791031771539071730595063322557769685639051665537625330159155888014514001925984802374195040787441697664347591707797151362528781169464130633671295836740874542126515286875348277843247164017879191234162623113770229956192550499757644508640623331501237769535240060885732423047508425085244268618600331118294127082803250609306332185126202904267417024204724003885296601190374053536408552920648683191278438723303442568849576579160589469945765665022368981524343087159902078819398926096514349467323394446558199761826638757426383892023062742582713839742770789130267673302332817869641233189221640769733468090531891098889610803037891096425632668781117144190828475938500857367658761572134739712589806407316247287329411896060949138025169165342537066040421189777477278561974965424768323086811074801366569241448015454254761698322384591414943169960413742957994958496019226973762044587600990120984457509225489183051046322554025212108545377279672857291213328498968250224248820068991705377920699310885181111998643849847422223227673943325593777844059144277966543225094279941429041711742605790330728829459195296269004523535065493920169498175949134797974580397643656649416873610706667076777154976706779648897091781194401602612051647023854644469282589449038226850118123484668498949766344109983927193855301883767098884957207908455144518003401821330272869213140483154349310209602001440819475711630031421004674627700792759271327375288971437136958410224381552832916224025600521284190200110731393033781280455334077169521822879536697619095108727190116001616698504881034686254475533718039962413008206233788595095557751523063962173476156194004158084965871361767062957954036869948161822147738292781490370001820243346249733609276421059547710187574781468084652543844161870545559087408958423445341254104231622268897020307175411280515753430998995774640104768938455708149955835524212287775195935811028675090005086099186674049264070925340361076736441705451885663525480102619329316110412919637581245695597712530144345128397089958629066587191897614461322977798739905385991241704239168068611927508826520133967645113752620884854096171666179785249686511882394258643719418753322089439230137202252164813643268284481895693728513162588562543939450085915234471701705149795541100909707017026654170468032479558398916036547924520982614827838968827108211498557095796836530403115069800087281879940933602247790531651488307029099747358178703679734302856635340121464613402674968328043806377574129603128084772840061740439450521176291184913341705134986196446071432215657582200222592412666781018707830208368210644173692292544710175013619021197218805426124971984564224768483015707755172309414774733016734254748919059430686086639716441883474388258467826750328125616655768559003611304151094573697768241304615376650273379221190530504260086610674570999341941215694632220769240964140685173671561160159953336330915388947687947224123924038929039715161826358736101165321508029898093016571113801070324912163977757970051914132468552091906259856227044331422909500564826254040959662243057958271169057282522046287166706224678612850322538674179110787893899870838018478606841378980981653816847701037135618114036225057314869160774840930101615192408989211469461852892975821596590908359363990645151409874200592045852096534803424599599314793518708824190688334896018607099858909132262106733085196331488658510253909352175625850301164465977999829336106832165620891263148391506244765471149747831341436382119487621778023858832960214228784163686586170741040903767211311995801156283006241926543661314542448809265252875512143998038396263111164355428638629796771115853270049005254410028063123276336646158507490121886168579907439524843846851636355077602849712769149958277038769855591375175804893854374912716596275380567047206002937669946571088373534186825647503048647352201913860015352476289967447947574130414795257222593505973009826601246953379397326932302656598749008417472894627279714674994761638802011098599996977869371618323455978029930764648760177520204232598412195617462986949591608942082722391518159285300566419646770593138013268313606893717210815769968985220820855334905626722080367323746733776143070508820121744231779569382022073482415144004529537803724600355574768795427657885789617175514732031414954461319969769543176051561884884359246815562297062408812398570112211437396341944568989732255118185876599631701918232645616642558790600577471315840002636627161784215564913897539058204828082850859454348632307232504060792786915187044400659101403206069090769168391248874112173337191532416342540634520338116470266872868597083391760898202672282469725926311131603360018967692957468792607388806886014866974736013560987848588865786316914773438754198055253617439473421620789418748108337082264989823639567614024788058650543917236418599552316263708365006384606177580621661984314044556425143494213041612766923557807416937237095911676615420606158620164463457714137434397266312923307517965605731035118953563594604083892283525229519753937647249602406738699419241657367826055232997868925554775373844331087503916479976205134223657575799093353141276677317619501854692407024687239165997988083291662830207334343764445588841847446658578603877852446199020430908166833476737347727948759945934388907946607484218362717460506653145867466651812508205883626697654392509637111527185573266811612953003504231958384282209285323156882722397998030801098016762929041316076695578106242284438654477969790002971973887272885492367775996506898934511826523185719133205182722054254367310931477380103118536075031543079601703502915982251104271309365640948809679434569224393270468102933300287922300136259756608619815019981499854687585998773471605670853639194357792042905132643037295850934786466531924420320095133846395202059262442400089973001822692274315624152127295226374539936467583248466352149845461929717622577856767473716832743771571291767837631293900585489951367789502018756949227693958138269947109206615325706043905231444162082996847118079202920444574887055890440238441366469247617287525393707679379253678670341433586050481052836278580926480698878380081067322967157305226526422190467373317040484094084369374347870428748799692817723470349461266480453243627257778424770344197471843721535405155678662669552881592494070476803789160097213431430669567403205389081673463714096712927242482787633596373523133176221085553131867434936670085386391351013048418151536469571295771501016514263552569959573178183892988025105857081109312659244742972645410883719034944136240068926636081174047875565139423681073080837225628240123979683914262425000605171406920306748114210015197828451318071522291609776337637360612540075052912488359236329177466918559264399391753677024942292040121790610964042703705342005463763243804797828402367571332711017380965309281169397374688093075759753059353598785256080301920402807421457526219487344212269946444596361117275201397810313220643625343983809057177100835455292918471907722955027980243929241194300165507893004021057810148352106610253713128733700970112065871360421401129966986929780702640150063641540515630880087182652179140495930194572423504851938599744169117883747068319370139369006609165837861265319995925178129561122688244071687412783163036946851041311251896495519528988971462179572080637030845257779355600397099025346302771545405659635280039651878135306084067237015703952979332160821609800413885945398466813048640752969152478989325744816815130286793932138443417841133256019017608487127144131932929448552643873048316316447507001005894333982374249341323887657565232825762583046591920827282416774848004425053857981834237674088427667636595009577212261849963653382985014406540909314576689591970986584111986549406497882868220989111690341964619929735951999604693756622119076868407549281110646482720288885347551666144528471660497557491690132642747752779811490304935121961810067458885860031704734753054206600927726294081415954156324448632220243958524829549633951801423030204239297353174715850645538510411228707228252075487437976714844984396696782610855535040936833640554734960513158546201097072139582540654999412710587048592168242747726559379227956166873479009707953016574513909816356366908989485992133416664264256974786832547991499431562804153109336601399526370349058567928091286238983463955163604889772170104034915189140687096503739407327115127970609211573041345140681614606279762776201704726212555646026998314711189651756941271898761888299477951022052067065085495527052719141959657061819249080953801747482116615333223625391059043925417689374207106621890013043204718566206250133616947222295481700344569945902508217912891755810415690577760288210290433447574898244173962793510145258132712844317117505399601315999146903377987651003073041541744067797338830055382882055205626578481361913225763164875419202966836495600768052517707261828796516627780427926524252641006079418612102652658554539015828532819744464709256306007711627058988440165301651118802851081938144807251814425885097255311872094094239122955065028896541258476756864896498725107276555248705754519065498102327513579088211689760255931217964154129533616022481976332361531943678199232422096339767742995318528688258561070945989462450219379852811566377213157788515485731127143404956327613182092442949811789698646880646714154334747060701327932327124378124455405301835369727288405941977502094770511708306613349598857380000417434297507414711001856769635989483834192393066828573837436309466243095312216851964842836866208111381247942583428052574907308874278857486707084659952411355923207041459152895101288660976944520696749271032025376017865017217961716570725856818638655386805287437254692049871838279789444324589798885433657301866579100634238738802454464639639262264692580667969183197819984736923332302092053512068801703298825301021944710233971425139762271380770287957016975747341340353054604055879406853394765321439836247287277579746694247152471887929308709994796696310929031909669310538876103178358020285327600706316175699139673515737191714218142615261551220472316036561287293319484063732172655288918931857833766534004068700124358869267150764493385809913957150140712338849944716492665543226502931184185697997374338896582112427074337563545116873746848327404698761220019250049548438979127973721615373796414763292404276828141308097967443641098110099550740959556791585470594929975737074933119781818399535592359619897936791698600218439468361277393575743479352971862874533451658287689008741574927038304482728778645754573846104383411386801172778122831311092626888958259465418795053066957746382670549305582286358209815906987266911956160608335338094787793268909752139853378978081672669102625237313291504304181166693348945579925716318776271209397166117972615399674713672653785052322241199041336296198515490325242724329161939905215128377530125559215343152507776531915831037130919961120955464092428012049473755007862069430965321233427186553583638046038117722994418379492186917850213157748005004523140597795453367592953444367146394243736061094219388037857250656627969306146970409272498223337395854664035663864592106994421952138412637719822238260174283642769384086064276129156815853494787739642294008895665829869907482657256181608499061291833423321517888412280939971915523292092043299093992809372569801068292338678499213699846154019056346541473052788311381396898531577147321889055018212121104490629689706638331306561459933754120518543049051577638014970419682831959727524214079131960992062996143124356205744691747602548419327954878117850573640478097489195628404611076971528418233360182671802570593749826822695576392434326754526800131237305973084522185748862933954860703151320061551126884812554381856470521385830886670036569690889532300052273640182155396900836626301910946574865311592353358416687174344766798166989214154253050127972838947409704685040525838737873182176033736571937247740739738063061223982554668352333925571881399780095696907308564215365464638825534080595321691550301122460929796138858480335542999756410630676241802182218472680990230827342437122792800985352883185747737434645662181545697471263117170708701270457951263885506033988650055003986450530432644282138665265187316552261230418753381376566834005229797315007393651072981529319820602765269251465778356820516498030818538581328363835510482943338826540835372668009306121240295842087915797124354533438014166476375299219475636618989370614862664446675052039604621262493845039791497333893798555001546579068738643245381031262778619677734464586982337119049874548921998548942273540556439778943946317732439238615229619160403891305819157723647680229107011056873442826264856596276576732146150339038073647767384602414153808688685041530787323702425808848395454568770430351523747088501195355382401437113871113132560108008619129429781617775392735246106868850356607916526623606434518600760093149020767348362878877448698698302163979535340658333297502191535523057250741106956112983147442572761445173588870823742969089303811404723973207353032843931703306288678183805632117913990666653293126203577960522503345739820304790702173555383820408473203959615790999947410903972033881048729823371852352890697891804899064432635232308876593934655895986863940996483503077143374411294540792542333742115151337960914333333295739712681089075792536021881892289507191998153335831920633895985242686408317678497310683837508392060995985646887326808748039023941968040772803154995976233371804310243023845675029547499219795245413628322399338802087003298323631207332457336415404485618304879383516451187820311966870398345449903259211310984054252719459796829410478909746417967036671397409122319028213868186309492518872986536646273470437883831192259128252745990358734060426597776782245891696085747426265418453239921087065742772374971788556222687446151870674913178705579247878766724920494386334397472014847590911154894886008609549834703882670872510741206661332177504279585898108650013368668990247988530929275308602361515780203621279732913829393895101416081578213941523980233513975760013415056504886253602140709175109169064403362066102670858047027843327758587068663474720632647454006359710945092981649790107863720063153696583931309534022222570495351673331128792445993816563642942608571588256611537667214983090494964472473421348535704163103427375762143405532331115466041881511197342292718081518174554685717224252638161836023048238861546790226135751002699903666192109132622169924482361031034674908286030418228250445358183944563305687979605317040272311987068026619246876013137886034396903097122039366041412582717306473662197339098481353845369574699213438668049359688123112592451045760428046152835992591103807332299480337715500034104953940720455636184819883839870612367687535740451307516955199299751222040272873515302046415037988933234293731484224099646496198512804445869780878980882194404994177020354295110200512643513758221063579701948947393516339871088160887837719295747944270665901745886388391337279796103810514258583736214476315418042555406984606120183451697935976894265939355544538833729169810671163777560076736094429742098986219859794098537225257738516515463672667137830685578906184278252574130223715215689906671629435481489330272737084925061393816340192066979085199425998507128314535460205026737144289980758908060612588392650167329968686391266803592632467961741921205404447606749766494093063614784511087544719465274796813285186485174759543462617134263283569763366542887592377694992393372848358684325747938924965979737474657253465608452587586106476298236571781825612802429270122768677413787367505212489796080129581541693404878804013068136779876796798616260891762537107280730860119654305382929032971531326351784216036323475516472959079504199254539087904506616804970329496260910679722869402452065234190625776030824222882084019671905144469712768564042232063016256832038408811822249530017314587273974452850520280858260608380294020987003355648795469498206537363489633520442436400459522543127042579549168024969447448056220283817741465385628256813190653037688539753439158425254588920641392748804701907931143918686935920655160222039597146090039089960609131683890587494609168195194051224771500521455348364790910456503733074746600799889814287270153252711430179872389464149759853284663206124136702881850992368332287876568899784505227066493736877690942817033596541474173257444040115655411866967884450337505488371168682454477573779532503823071810291408838578378077450564318986443125389603258733913670188280219831926695510825606456070982640878471665076451128881997819107526013920140518754324004286772562907239186294500774757400538862652205367965253797081200087736281650369449428757378692911626270583957401565368248968245691610938199914993487683241458026923523521061763031926969794299556781311496999812264395732748423934135673355762914198176434192722308522999222699702216031040840072294211637361468915690834784372416405556066353369599405282880202217255211310506347255308377971587455750048331736399139799154886440054296837840274183506819602306989168995411939671035138541557659013880026776551176860110834341554611486094093220136192918819669963496706015609675184435358151103979341928918003092466385741020682660626140026336619871983901357806183250576713675506153199471737690601481464628924238304579189406951862495210936250596034766765591287507224955267747130298539790137472850263328928450617990802652126498377509327463472790594800612606115976993906931105341945810763021183841364375512809548122027587020443879974467877822099191184943738452442645541784053849786528365109342088556231346367073430247221338293206554331621405963896456324181553591211884488425234687858549963996980199274606016179611285157173698711110111548865640892386005680262668262445812914912810777711717412031398101632957312278449635140674594502668480240044472938506769762781475251188846587860795241688596183371452342786462480961773170940314464696262561802870606889898435612810038292492384116364588026162002334763722002505097667232192732535686363991585140074504191511088200708281880951907364934576038415549204061224991766502794028559770015395550788863599342843764817637713764417323129839655946950025312129349977217166621158905098636136404219305196663237220352305246450268142952449807610556858891763138571910237468451233513835308331961802404664585393368755599234604737265399855960866747243114292064694913130334330323026995425922998287636219513140121951967967433358835239400467384557306179728426876559438816523163789920529102360357659834577158519206660678851850992755165825615059450095430786325257412383839142467340186500091681516679255625378298007228124196701329498069607388388880661611754190430941484359848241727796042531757436070424905146780199950405224905911620230216378022953702816414838226672782882654385538886935113922561050658763857841534218809278728782695368252729820399492549309011878821427152354439371557612853630782178090897722709615832664731165449217592333303224945864053061993241996028038344038086954485756261767906947366488674002912358159860482974938702761598307275889165827286881931339492485305236932215090901994968509733627087809730948218164086326418223085289727998332411270495835451859700154640160038574576047965191434396149006409996380963265315509152808019373385221352073640469867062198338521944375783653963197850617539959357909369075424977722998564434194123800840635010135612035668244508819972412982034397353831610473220379361932481400766771343154040315631982302339579438770367859949162190092016436251998402440315029307265919171576383810045278761774922206525838629363974620032496988688080054347407378237193814837320111933423467177419076761438918215984357102481108664774301996416462984984097838136132795434485061504703306371809865189230349700490464627301675154909780767877658455130623322131503314800015370319928169948860541406043806094417868385700770608201902568228373167769873992018744825367807341593495600309462575294539340811208807627303181018510954818109932849317291114086347579463363396060043052864570482762101515844120650892824472397135414140289118306249097020779062025439836255970730725373633907918558132567738097699180329302329824324011741659964497825373351716121257184969317019788090176415263638660022875471174706356590933826788230050757813855906707978847635805251954420160731600723991741841769388500829509100440295660540574649458221626226039850083512797766394367011249891097123982185837531696528674997179991446412067784197781969306020137596230681963016087093250317211656664233959507452378130851816751420125185574100057448173626661290233877601309032728830646261605717309008619432770935284133947739024263374946684014056009707754487254404394814870090572305283628791700922045903166994974967219733446511637777739433034630913459892227135573791651668088010820089458050677544357038616524685972805038536068416754743838143960459317609556913997669073734576196906859889236688118315224606408127805620733516758265633498817353777806339370045383961653118750230579792584328882382502424416601605339844090903353147396666094082352528706365002497397583823011202020448947153493708937534199554728581351856402583695905353471821365921121835371981060381521337137025344555012806690814896579469079164825650227313328832476956166722466770118222906550722363750866027089762476674019260921808856862016046102552748456068032695265023581282593742693493380427615565850622262306115981495812183368056729854980624807636579262913447447776553899093143785175569499786400352279819172547921942095738264108066420020446245100178392072600016411570775872253707709998071001793272099368385478922172122341020505268461723234641904713562536553703388473717821008816252529209263492914317065010499242945071480640222873887736692069149308980174916667639482675218593345928579941244474249283031110205793167007960540591262291289881471617713991762731303822363498857130645628300349785959966506264325062631388351121591182331345951128114870288679620045824224524352084417838369015193015142450254423001337473488337074223623840331378514891606808733024509793303493651074515768824878383915378875751460981416644905623325177342149410221089495735539811003303518749353021367937467883544039469017113098649913205264274298756669631474812308413402390606371001829088568994575757861094203834542397919104952627129288397895330568268276282705329528104271785870877139454520039004678553659887164685930091389023323310278184672169248457306016903144204529902485783312861377213952990485130357018542280360019276727593570697896277217169084447658456115431765313298548543100853971100254616794475625709124325521966440250933349009121693437440089409409821943679526146382106306636014487435949229639591954394789900218642910600423837269526173574496126273104572973112501478725989169948271425332084255313922073860003601793987307154299872711472152971212972092099465048409839512909205513280390503975688526548493017164325409495267832650266738126459812206809596967039984271552276009246479231185284413562214479256626214901052091377854653550719257615093639175949472114709088917397641524739097172070097390258364511260159629873751633561905291193982431246633583071580206102947492698238560590513584280028855667345913198651222155774034794923289307893951115301148765215017768321976847749350416950839523626088964947810089345167852706330469982006237702023439805094255695518656143356273703959984822687662582843802286965139583346985214154386582476875373878176551465522193939158215400961286462837283023410366587362285727752226165694771220053786624020638536735895079386297564293881387418558449760417404419758817476602791445966940418860205925910201879957585801793922992110682412055512834929268075167604790117189899126355987264515484721465263842564799712416381485356494624250760472515415819724352726810849812347507490905672196789357521777208860293989601859515999558807098632314747935486190181553917922425120923549151545748009832430155164513182727996485300897814080965123625612968956087217213698100524592216043209071016978093411664131932500983847811740442314339539874388688714030504025122434788503578063968340091723025779498910627835281346512576303214004715162393628368745619492647256526120652317954458516317001412825137396316752592278515323378777471028198379789989936061198043163876051143470983148750907648968861505607713225683679451341933430523960925877127931950283927626288508963745785143980922249037315939591233184208020188922649434706202603985832846548574620778037899437938416066992079124434893292219955952596951510530737441146489697735248658740430969069334672550980381260520332248958372094377962628488362128574312023177915797118299354277671896977898351606106866445423631428927515114585489717731851892860955176136503781935987084309704785055583806890812294158800591060452754459040982136867678785581231396104321454351746818464629105647412472691772219993414251697002722120067031461463813802149130472393784777641455865412824352550566640386428528405432138124272412672530442817615582829011037692083728529112384530541700507746504620109512792770949348083258814792370751057116234080407151309872214392933144936637399494475937790311631699773181810191879785092556535391704532367945623448480554293978110152622839494546414093720813353944260420504580626298833745965769188071768024662407743757153330513721812690303833677385357862486809957643190171729462224868548907682600642104259084286652069212840632141164114943155706237754611210531278117754303479141692782935161909272648914295167457189213364576230367372711078548683381291906792577749919764027997433626645623179926155102923628375382453529949388368904415394701529501496087229655506854895681078480087561570845270276938464712485928040600685473070013467723131641686023962636593407236047074254367725931354248491645414363613460933723500590457120474017736787730616442473010736254093783983665063822910349831199738463283879714550904577047105312090085157455970042580088340591405058851829065228560799888044872533695337292964965132093473417658483310027440704797678335162031921129900376883149632327165122475837141339884731268557825181645112718283048112654371686924853134295997695605046471360793991998501267769898731641606001826149164963184949721024653802439753902069381121378340781216976042120640650823806761588972690811039212662946899754472882051954303058213367079019864264527581978782381532304367482723709752340550710984318750713460233625341271407655843549185627342398501388801362348577686686144384956416430228407294493635659873154459227242205494361603473668603769645556912869844870418532150603431761728868302595614500325946909038085323475967406732984292707636057864136345411835936305860562968283608490258846338355071195016155736836480827785250352782258800890610290630555529401902371420106318383452137001204435432456408305416637707695980669583325650861911854814430670763653231958576923788108488667362490814412138831790253777047885298983938668173582194229405578659535151475069198620084531768462385564080619967443682368353430025858083909454070597024268755634899533019863565303039506026167990242001342835979718167880761071411276063426503272782281273538072947309720471559572497570327502917127773301655457151006734546111581635484252423942088439582899634298369092616953183606703115261883578925948720842244209088540838938370263409592140390241051289287414281463453914759920541032135399277972078801897462697930404133300200722905708655058471351085669875433186929784903223718830593356961661106543010979229947963468291053378215355322990923356469275782976120898059476832995214801979518450952097828291638679495338170258054825067096482551691880824160325137776904959519746512335366883984704325107815780001191194677573113342073553173516673626422771603788406424459741792164296587163969177315888482973715461931610847009199081205477480076719393858004656686569146059125474756019297366553734015913683409785110243951638094009604603458036110930804482033903350804896192677777391294991544677435222519803919794043626329365321828838643271787822308157733251656637434048883546545660160316805517528058605239317171844489686573846905830943898939482769337290700481864034135392995473267354758025875147437478610510287125015740676556968684508570332548205206786635686420633698384623773659510562382796099779223364598804163057667670173859176589611664798585905767172192649511571640584076786039209263062756704570249202932849963003533264712425273146542407433979606745267405652237972491593499856109168422311548147605506713293900730768086397371064717494275785691508367203017166769468595928033891742212481019160012405946699819447862117845065335661879071639233786885032040025473499412779152484998478366931502315532390860945466498249479107229168508737566297293060925143994577274740745526444769097137160776833402138737580474947201596163468659205689853316930469806731776069336039678412771188584494667719206480526474233860213240542035072835628617131049923913649041538908897425558237060485422862196142126869536845063110995878313101280780108365754228259204363946727719139959418661638389816228281655225902154457509027252498064731723491268432734188831159777483947060001514869189619868750405198649371748262934867547943830486660909609857481583949439664175706465978477127147923941005463261096123637325956505401668667240849655203339403676824611256986299950474176808178682745120512999156389671177818612451528424340847300082323827495103885086320950595416243397422588560181488146927626469537365575616643040380020351778813389554545240745437177562221062714072425766776092682219789050329337482089013146773022561256777094447740916192735540376820995924533315821822018178495474774732250476583723870584909378881032812161350837039591009491216356565784549891036746000996650042033541587486053819294638592839458334371395063539139170269636021721493575294961502451130689789780288658900337222308530079514285611606297013533892230437516114316696667967344007190210733269481500555969537877739848191648059915767662073507229922939820774291454985142266734350073181928808429557050261991080975317452218300142114366442397774369444927466681971245058446130575441023303372340357972077320395230523286174818157621161796623330601071573455682456042836440125126933802843845736110482904125607881985205431301635371436228413474519570240740233695373478205229575162916304979982114920371520267569722771422849826897626741086345893736274754339674037341793852880222945961560219644646102926604988155025505308932362300516057885096575295980288687194818760060634363162097476745799257005639489260388432835217596366803023432767353399216856088280273942954962828140153868355796017101783147129551682608032391127087827259916380051381225061891929384281483771168618291673458236601212971357929388281254331344464368779749991715445977797935359625759697434487466035707573114969406195864502529877228475115413343549218946535267772522213113170009961031593714234076664556065167891597150566300951937793707493900033589208502352710223598505225421788242962917699123132658867182141936290317958510466231693214129389292511965547561258089704190854341437241376473943129484714761182804021045981901953391230941838952818227095561808937487936922564980784821501753060373166826455158038187776401579067842651823972635249823661860168258740564458730641841690331978739937656096173443013603523086740537242304499436989957327857399988294718470218893820830594254756277553323507109753114758482571673975665872521771654584399549197678359886232485779820490586662356632730358122406167983701414642521263452811946424559035178738895396472196677407422566206479462460138294027990837690788579595761108218001756326625171303018863561847954989085577960385470933593881654752475355606476166604098084631289758167292277364091228231542553864780323373177840207074533334292059268829497036919116171451044855548117249340829020865569802990086933896397951364433344671328525626531526911108317427806588204100301892763555941938538646732763921562425822908721369207570105419429031235844247564711038065852217064408283980233562076602575273911283304498484027273369818596501343807913023827173313269386023213515333218709216323895493318994766056042745312210598085965187274811425003357432998689062451022117590567373587663397472792337595443720884171999271304219359891103200643263178656207289812258749945082880765557783272016147622021409455644210612591763919275795672214819497657979517558324060824194160258833428376318631417448811046697719009674483353217467004841057144288475930998276689782642135169976610292504768417814774411671969372272385382585729633043178508074553109402987461322806208597203615772680756118157845806816551255955267439568303895057525874771462635571643169869714150063168004212874987712549302380677472423413905966263215025819194415297460812234141085367743605645491226161111340028606848451215237449335626352490266425642969212420358343543768503099455024334112340068555979365728432519802059306296731030107244202372952947236050701182668963071321591527150721848614940639051132794536209014024884860731880962125463368710248175994125424174630552136517821667319640423912140287037990166768585907004660108348684626189411628499088601878125597416463389254377389491719733289943485875207035400405326323671310493939044022910807205912722175297871508631400839817300039596570854119278637529004530053770778233037190931918377770567257334377120070424982571587749112061088186307556593230774987332412688560533810332003056710021850762974819380856137258592709543043307265216980809567622858807714705755568397821393669410386641650405133935543617523723740178761371707220051851569385676137760933293048262399477103974979020684803267272185533859298151787694671237644836733735865118682452371306435296580564416843991199663917564976175720327938420034783473059854813972369597712661830298944633062115466108687842065958351714528552750623319201879628100565140347122668958867334851722296742039001367923022951164396294526348068351221409116271781232629341538620051795289414921882214707614833589884923719659383619739888943313060038426357419663273029941761036782822624088872497920317629806787760798189405741881066790385455691922348759902989366384637430436920336549551557805639450339483460250912959630539508364408300699390894930808347838084133338822403228852616804095508233400178593012306748055186532991673724052137453518940199848084980983262310994166158196620130237971097947863409995780152505363753215719443534073786681068455392071343014356582523693751875363441060092957113833633006187734465805688915554691544782023919086933899011313520323504041488902622589369986714250780920638085915559971507363211778551063920151451681497413413880208640217441545209859837907966223967579477003223541577593232259380904158300303719085287177406991712542123711623027265310247920737465186359933940278115743243091712945640090919989876820933197459188522224457680377145676248807367905374403564571217314688551686937436358506626474799962242325945915972602322620897283314537110167400775713383896563931111238973181540960832885368769648532414720368702351545070055826254491377977362153268998696229133313937915538585596201593375384228648883300881629047755937851801659018415110817008451629696751410442696354892396277068529578115833469645323843180191623479101848646245169359214620603708625892570085112873185594447119992168331447898093117347967987594921800411097121222691396776855783772281387936930616175557059349112200091057842286000657494553399535525978327360133205031804298637731861611767296254362315459721866231573904093341249237804979420259955456704917354766120289332219505284052857273175391921194817458989522768548902665056007409889553172172956796224622002263542679094239289153094334554665409190834915183573065318689274353805199226748303688080064475915663732685968453493832256146995475222964607554475850056681327367296512033048944476330039630711736019170477750519459334112501042970376430502072171633481562591439288525508212971075712841064873158171132515645349992449650132939314092366714422887857646664654282305532127712844423379426898683787453488112842967877086602589720483630907426693192326415076163788385122299161698598897277605662441940845173098312523575201415816101860232596372866022567012820547841902099044578133777753784706427012935192694961872016398902186860519407464671992739027074493692400505674137249237318915103503732133569764819363371615447138792884959107027375130582565876156996683211377823441469116341439758702721146913098742246483363046051833913804255914851925529146726795771320213257217627752006320990018879494360550528538463972954793964670034408896466174282597478452487444438473757166291936428738085955964980478062238172857877593021050191227128506555285791094229670984952346548541367474702233576960258801695799566637690094665952771690426475851071761666461084377045755693888571558814312713480388060164982492280065105714208954717890783826382271929409041770828363949385685666308294893557556970698102080534029601291946997016247091118233807358294089703541493725233436736894773864741269797387697915484132418441911284581976288795036933067218154860353818735634007058921017605783820417492695500674091995697899702575778888055534450423467850168711024551192734381969553746954708095256949288397730135566082714726201983568349240011606526649990119990435514519841746791203163902253565266972397897955848810244902209269064147199827875048175452186795550592519054623077294601804311252561649106968839058855530121158347243846230906633674107305171498089258706712656968466455584764091269244744949970484810937875453554933762823823580386623797238914078728796134712261477132519402643712636550352409070215053683640700280348055785477964976032589895394618361169092595038059244908554177230716260484522425308762869832834919647951260658170298847520966997875602519064155297416668811174512863199523939693864244636446170671787504234152036002210321923387226327091899042940256320834636899797147606437843190087153740514743406059853791542948530039298164360993035823156482334759103188438590297895421358101999902034788537760739273106404774596189541577634508300950232527944461285222384697999123455661960261385523989075667795117127880479588707078312119983852020295618930516555235224495586461007423099339327389194664562124009005542055807520781558311644478894512494987527046244995112188474735767866339190126940619260110354083603429249126716185706099519890522807510462550139181818559834783859128916652827610913827105388956993417558142614292981355359712811923808063351699283347212580644663977860111001519776742621355903872056944074525332210491614177868947490129689060373424246991676757381813821144701526147543364812117260711708022502717004069767547597909994605593395641856641713547225301255295125758172987172223703152048655291216810829111844125281713248508911909360830348452774235098427390268909225141599802154170596695610403768800045791689249121683150822101271916681584105100921063372229209418367936061242410452687050090451820706723557434441162619854500112030609092229747557546332969985767146082940832349237960611686708709695337664494271040095499980472293436800894602307722853385999526186719865080870553325238741364197863845061452901299383068282372915186091475915855112715634886048150973520114213001892560005903788733764894428748323407188142843549330124622086660102565942469293939960126610496041625849474952711641801737445709725046885468304639483213964204815514840246756192104433127531758559189242707089812561271524728063082406559658142473986999065126283410056675052026799901777827828593462258791323836854783664698870466030490681666246009631431057456588263930418031038914387962823681324500572394728346513778016645486256683875996337626071410673386512699077199890754132591353256401310906889128646325451713354760698126479464034988731632296248668748845374320164685571493966122525447990540282946267167881691585334858912308768579657558854947043847000835694397966689102800899477414160333313247238823928631716448217387860181804188979509286015884009296084222126051190227519471901387762644815345913000295121369510993760606263377651371030763599157227124150107053913820282760642218422055200653927297322276085194713490099758696915960263088951590911954972791936041669446151556549720836278772385569620964456055509653801965377829482207725410604201079804099847010579683637437912474135901966661197851666762026342870793853131452691451320292981545581050989455875447581542025732745024803326469715580848976450591197874832007732810759361110436372647008320723517690576346695020339514565860307742705262946279041751204069241967158798913077092972571369668054666362268212808540903415948695468416019558067844408432934234057221731374773812791646934223819941863760606729567148163277293689576320584575525918963938826342347983672458776184983996784538322800227282143127101539317124145351242199169211531151581859980529838146671550923271012794610377244526181171703683873623518389730905089593043484475552608674704192320330900372391455255766264013634826670619980264160843361016629020153466668572666409597269816712344668920743343738459280321878245224478302009635949485944740633518727761722430449316592682459326293396513348799971098984223664750822330377903183279904585049560733712623757489336056230672759744989775282529621621579324026124351266111990627093362170319427218354216594296560000548129864616920750781450216262208755592931724703414621158730334693291957482391286603117727763948795079103453515658951029185870509040872079400775647748153406462430777013775364238083626595616387989721519897255587375350801054263368816009315968049708990973978520111875290651325117509022687433092501917309986893967243944594740078754212662638584750951407811022848599911381295829585947167076627218427294160076427027136100318928468775766921304811212007614122859968227529282883229320939008032143659826319121157589227580741405552578959772421231361271332367808569081212801489526745591848751086691299067071439945266708937432067520175657213966404138466964270667686738471670026822727933949952909059542972556935199255761204737618502434833399725442306456822774892285148358039658334269985629483641959519292205640064394251972199769539170940126304308645940696522449868678060435806228485433988514666681250391054187520310604925436814939444237397386747364207872841723451897110999086443386060205819002915552300304567125393682680146097089772525514360376829111012870838955750944620335738978564691362108858915963684124069299032453679137173750257566905089590208601784890197496426557613691203724950233899913786605000354744018530340447921957618502450575623800097745844330694990144016248618143277321490034201585660403022878896062150452021677429495836052665766486204277400416099302564021173390847506487031566187019885147659164419429939590138832253841358007973966690915146604125489490669499928448294944092607932816576840030130116157638538426867571698686685276627306198101606528154387200412899539316108269639886194598914711525517204742661293451948850022325814007302548966020401038476607569111783958746318555985934119547706941899377240828938186357134628087703413141246168108366909643612532773096583618075435650274753467087765212193266350609596277444898937687513662131886649800137020676881868868750451723495131047873479704933785933654708988265553176135172312439920489909140390074252165920166825950705690053265579478917857113778820266128600325174158926306904688038601490771309264993245251755111175397056535794723509019371444355984689243482592513413457676847405080224410652665775693785861305626903174605343235833678672075526156426593007870439636916702636487051306563674378104145870917484498377460727816957029698216238411605258215919188261632743167857355829628255207902934035851153444728096406139237865733686466350132133195405789383425559148878908295484208827541768607168862774985977668012081453070222129196033717346193094548074524479719238828127098577812072092771061850982635525995479422588101319586233950149385205510762107637066492037714520704176658101492513442163183263876456807101532002012130161290225254474941752355606956977735477212010381166912190307788858921847339204598937162533044941980611845133649439689979901977868912285737899635956384364117408299664600247122116657727966474529656277311513986628314501101416151069108433764135247195474565585680896276187044325263296431511530553911939677171612185472739751548613918875859553407102292441515168467329511015618077332949587422184380304385726405836148319036935110783027885421214676609337556942670976539596824411130833004061429251836296137918380733536229927792434334714579987878979031427605840687202998658985875136841434501614208886496075952621491477840931055282078009840648899185082274396198216173916038843948042646501533944721412683909350766111680472219202286663251749138564643883570456831701217986765910959976084459323810798163429409190570577516816663072717085407738474747274953740387666386996036482639530177259873131268325370964373563997946201739372486832031677417830151769002858076044658316946812949389552146976136317009829769995981355409711333239647804171436782704467142450005795334138068346636029385482402727396939246402921722606533179765005022192741409554821783329083027169530497586568002481014107813680454389038552687672135375528441473449831096801248495548664359015909242170333812072519537263895722880701825484344804622710911356826743566577205708393389813794847134404936102574810457732393307251923799003335034950909003659243365919178237918978265484055370431036067181517612704017655382010794883165997674275920233417046591819415333474725997333321250849933099041701514202251859881819686889726186004741262274163352019752971090665597303680366312708477051815478608728539271515444980623187707519843440480870486082247147848622300758299104494535773020070892459812268411915623939796688340665049806049888420722007769135478690439813875798507668485955327710792979781545269918237503499501123795503168178892783272828266749799623965312933820904142352961775999326785502888505923777412539089313299696595102857342355214148263368584771181264079962367197854614938830301225417917488591964727809344890562480821482766859144297622257483112857683343166529709994973014486087187349956113276143580878064774516228091638721672831073587778804346681013121024819155778026713959152330244060642353842514727995869013208920553786420739253298235141755596201598781799106710321828618551175299070838361498557271842197957855699442437846558888316568631097073969171385780960466963307402487923432074697807990912863097177073735079614178620198646793546076954947640050948732091655026222644391357440497030996758538914133643497882817185770585586341594441162849542093232970957582100122490261966605805955895671083473666561792760226522084199581072937808066623229768563921284455461710458636188319588418597671586799631280236298753678047895428351630484715893477121065650668892407591090632073639285839977497426770193540487181238881555612314267622018917439141301886359011317241579269590625858771887796859091298768856755730516487676012688833013500189442907248701458613122621289170316531232346057124242419536815530489483255006733738741589020575917379951331517598971047184511249218574826473531226912597337861637506143918553893034955451488118126452287670380943903506481246793416586836136905879275713717255790528107573177248331873200274041527930630846561384669575456762349641985212595777758377083931528203433980894197614592312760890545561411104519954817943854772744846106416840036375713421054963549715864757043885644523550084373462226702750242133071268957427313341695561699910763190138412692861799352345821345832272969379011945912548531780323422513939635584311232104342140540736242068488375093607309669889914614756988045073998039967493372654506087680267673965611606550211841364850299586074675600449500037238326404830289379098830040265741159828045480915892781587827263823631240789611281542363247748123819357306013669934237769668363982797124892273175472819737866137055141967210854585179680240261590839114884906944963464173828975840367765103771404276880929291081021040293899469160111523958021866017110563580769012974771813630231573614856196527136346540037499106909991735820958515502292049449807341155633715372085567781917780468467046442331549359364954018325911326237581240663035811429177656299972219006045028810250618127048377115216961257343902040573470700637972722193593567958925450591090305613110103886791257260697128792665999891345054613335509817620857843834757100001615114070252724242298905660773441219430127950133077933529329456483611205707984202412645714873860080042647660068840967874924448995907809715672613250770450656496215583765597570704241251304416232459032414212096751928942418829768660478441988605121925106507613893525578299290773374923142393338534133796454605987313503873956575976693794477071362389025542468099453823567282940796069525345581086354045581997246748676849038736776567164181676301874396377730402053216019751383068942887102636119208408568628720340392253866116375041120444005733884784078044247542850739919635655472990056836211427301183809352813882522465432658208098238880317599502131225915243064463667788723499460397498508862582094231901134680541176412800885422795444908647258696038275735214396026317531412987896750248019861310858296861111792875405639940653576248450295831761918904759081426080040691815343741419470598537555534954790314062748220063066186246425692596300366862220731226697957709757205035093272183807072613709619362398051584428624046601911212541706485994205255655367351198986403550402683664873016675543764263691458731479508774277177893905481882173947534200980853887502057612367867553771085582844143286179888806441514229368011530129703802623970229848748954153622922422526604404768481600627560266714716106853406761633343984833536665871782047368695280851077376931882711672912579100667950117286083301496315582748104222448635782404719703095492693110860076100590999009496532774950740925714474871018135319344760629135452879622078830864664600772792381295505085714389630148970178038898749731506131719471603143247688193780953566380554651206154759026690840200554962753982327557007420429444861679602623056059037735613288357539315350829565956977214830745895808832303285243135618212038364824729295508893502878976120386890026315527780405567938670900565596266525799949380508335759013350812775005573347745977885130720785672896389735093445578906832079407210991023404911285969726205562921170504209803858292809576160134155043406833941455775592568024341794422241321911841289856744997691276053138816528230599971257988517644417715064991411358843668387048797283772256902019466754014431457520841309715702471689158835211552259799510497017101019537930094981683921361873621306948578748665039002377677562395083509511953239428167058213406484664097682583083670157530593130535764269960750114638539556586924897611732948048692982639181622760253362278872722634536758337729862937526756212866232478974687780647998872733106039159567473943328280983072373965887602191558097094017419693602876559850832431934614850338728719084716514959151093373714100455855305355836112032373724673724657743080236432587111290356053411793568522322873129994836161397395212622156149785206884656431415758696290871098293744711784399607819132561015065167296589032889964188917047345143027727376741659617926952297953349052611142214438129128083353652300690330172670217663297261082949393679352219131583641185219865798993078419538876579626248200882097524468629915633399609539654519241004712433464944696136704275878500023885388071010160464395504897254231056190634837178398445402440328050834868367754253190949588459871246034197752477984744885809499072294002968656549201003953840909956977748141606578160102576577745226344615808216869751328981447184717012111634953980583279271303401569975546083818714920360300561310851059326584790668198607541432341591370988245692891530915246031604563345702195912875106185141655264689874329368212364647071734163365408879254635232531734285409523364680492873627612298140856855250152460204839355104806212331978084528473499033480152242858609525878509271030015795292948440595383628227922630548434843821394984656076508825137239608586882965762526621426743864140087193916426070011179600154787771234865375394289655871536653695672511242115990541246352277933372336883816917319641032895550803901750173955826861152131819369100696050629251987351419778491332884271622740500044058070847939901320133482300651127686850148899246230146139075393383156522792618148956597717842065235517400491666633835891251490953494398359631520463151971946795396840182122735257526504709730695626842567282391487025211612858926750203036882258110399828760339228026127726130844106395867216001619833132621051111030712277318612048950795726128278697227385889571967047505257373458831114037660018829721733696407125636870590812675779564258681345821293908947900548330168394224655227344902816903270476134192062732193008145286833769774339263217958655643744493578095227335490989279041352777654675437280277624773999839567361560505391178756959861742479944046001579170049230055359497576867828103159461567482593773481820436700401892417241193241717002898700530659577394541454811157611322156572115649857540624386190330149500513355636054217383485795421529977390045973838430760085298453685107077666366391635309989281777148256109984588453480145348413541549817404457498892209971764973054573450236769026900162773686305838522259141317877821135306163046395007157183978095339345765960449189517916137162429088396450853964785885702722869488518764435205897155285399082011299499169275874398322863920918024087490162497189918622221104402380638069979204762106526392802901140837974099116411630418287889613075278929393918949477174338917651963334373067425176950256307134841202110556453596415847355602994519039408687009260668400727897193192388960376228972869798837167115841398668626830467416043332605512835871629638520652484932825419102575990170469817440070344646999180619473963379059471370202824622741572224983225671693897146763279566203280266807639706619293146518824552745569961857539169443986566623203134092390759479989686444748993114627116718438768942720181151526015261509059825961804614985317754103450429763876641709197178782932595716214383802631443789955941808229705564830450429880351507109737559789866388842170069012144613683421205049835477755899021821220210587222570477344179104211284019835281795675266304813406222874220406745623060657334183217431167866418213045281230801137081148479673952273461668346970200038874054498234817615068110115945249057197044329243106938460821540552843955240457305124225516930763290451309615277552497901076495639122875597370989277372896915648304008989579668796764357255830469234405044524631916079761048484954451249354165625027921475878101567819356782857949547826795875236966422896844210244465574654618946694676508124636735386423609622698982840211568445419997067000697640718302962870348342586958483661513676872266204728363090682401994645699743293785379265208747258259983678248897010416334445803942035768765328052944869286760422055606961798772871329695137879074505785868473495619339586342018166730421502775599999522604165272631628929315025307842180012181336276704803669543534009582387517557628180776198566932489846227993665284349569809281776952733824693386622760708552217405871749160606989522673429289323227960916791346887371719094576759932729462206124364259568847863486253049776820088440518120731304962054482987732845496987435767813253626199817076466476988267651182162239561493159426735494895308808764215537005134395529595514671683978283716103520289913703878006251796167152471976369673611494586210778898799971481842462237449233676287669745232818128592852557874498766200783316988547374868292140508178460076942544219168751630588973023047622012443547173814470680224627527305822897005358904405765722055486818264592983780747798228301950467820137227519378993974720106009098649239486852194385277297338394177770851189181088402625329395502817684890020707908369362262721244949611608929057537376762199737133025307428662669863078026734355401317368483224790053923418072456388729840830501153535860691306966277994208493281580263281968157353297770566832116510324424489814770993527912725466425149704696559025454651929144044607282404891075749378336194203639544616422233721627801556107717420991033902708187139602977930342806343188834538969504378978048246336895191156955737229538032448439186041277462150159058072979257653476894199952617071930999354763893540224234237366309265729532751236319969027870753005618099592916758871248368556276177678788451020077139770235543663707628535059868584770070232104751664794672443597813982818290731060625437416795936994320130244759979496278175375565458887431503491070303460696333489952659203964070894026878468047117843639099487331334954013153740502312408633735807626061636561023583292059488250035070368142438327057917016351081155768136229178377189814477951327777694300052388062337822680952969762637104868986489297114795591761535957130698948750558904222833377709670333758099054522715419209823822389843176918372394360848236342609947566073330194854399457538086627147962017065548214885348736996239752991087342851741616633339106416703533398645451787221880678942355652526270901438754781963061859975578849283599154435573703532604585019619454083405963100481355290155961870244379580710416458048055940153351293815717171426851674525456168476148323258318119398382767395951310787795647139194588657284573253676842136773985837616312527261208920855088326820832808857865713970430884953850027253672519176430306623959492803148027055405824860637599596999290172697558250860824197433571657601890812880191837168173170293878440340286487465350648136132165808027709799446086476022279014719356368080558158628055104325480795285103791963066613834701435362124234652310326264206049107386255449239961751252181807873427642687468353491330914726193985713054127531944343210739492447731680827360849608505637125942402331711543397254554746157790183944237838075636371019709850273166949849997157738391102977552437941805456912016613742854078886421540228976692475857349219702262956639371026910240631679992614530423818216564513465153724529922347941006811931517427855263564683875810807182959225348627896619850733442216763265571403057116155600027369125337460114588858868606409420911743141190704343107987850346026649539896304492782182958974744816237212333286535135631939152118946580329936255423902227255802979385204785149871230066601042395800528864549263492909673612774984699877935372769964558555312931995121081884490455195780339831143615796174927394828572692346422681031909195297453187982202038953744662330707816492313607624689471939668937995428302893359305694395477099971134460573568885912041955371721409950460291825776992594809017189646663759652772929408013741386085656457542111435220829655167089070205465672224330827076698506004067113164557311732591073511003038980596731948528108096546609089463833083906123141392039355508102300880492402448331024196943475661031718469964440926592300396938195387120113176990529855880677058896797515246936684519362905501855609894132106435852688173742429181216524527724004238274104227833643188200917506352719944501278015393682071762823830995448350407646350538992925477363126336887731126300499085100920194673912675506123508082712356788132490897746186741115923662172940536609851308303479776435137210762481904089838616747684469663092779432434879283862231717116671357061817471261982753613437764468219402530252994022739765996570125506133347980360630361430737801627036165385911889924542570323122802531286664778957099500506508954346910444117405922621064121483934796978908039812439072076866391194903096959028398723267101125036623348047851686512326937860856061369402368888400680600424252156846410679986355753565631018344530919131668524931094984072717817070399560192073197818948055237403618083307600540631383084747115872602840164229521698379976179261873423706485945248879915008833410980945748529440709194509861217000317706278172219879080979502462519410042024411701149985074913939527182987907523051848745683552762684838890424820562164737838346166896102726385757587425264345929718269379977107695512121527739417915964886954140991077607422926147703585605402319565739152366720557037209692368589110153411547661828440904961170637283212793313648474620832961772162771965368481741245086239555732455570912267089122204041512023751594947538113276784692369735288417063900114656966922184217518363370494712945772583739713968309373353346511423993998056086335643512098668535087675347637036474092237656606605337516655768480891421385361960506397394724583879157015092545167868963892343563610269958065676080223916399056440533137830694505185613151014248297916229700054489514974059196525399460529582397822953649502046760156701319552140652431704223072312988845418770934358514562380176594463875233607195612420446226334350197742113273681068016193376779787620415564037785066352684207458067106023632376541961152863374023185849654341185642589948736213271213850827934777602209855219020027891381201758509936483322186384401179184108432427433885912098349628380951840011087129055538561657422903750541955743202922904575875184211617254702322741387609131620188774769285070112481499051008849220062107681253430195424221466780024036699561973164937682734997827506338095875548491102678976712814509676955918959412424144081414637098907657040031948433481668724505634645436499403239958439492846040510317852504077994757884512938405356440841493838258885229729937086989074095505833472374790241645420554240857528511245105466778774463440581462273829260274129574949703461420650698007399833090937947241036226801221643781326576087059081949437975115393445666552470422820134921543319167199624271009179690333830348486787519730663620621545642001627550485946990090862747984379956702900525251363279998035151814167116268809099752995136019343354022217911643543293517322132754416238772152340820358260874633308416757630481115336232631074411763553398930193341412006054334337306068328522228309817451147231174445884841229504005312831464119937177402665983616637210170905868620238174165714535409794532817323437970356153026045176332532666886666790758217650469008722309842369935763619267373237401386746584432721031528188942492725107044623890889177624489493315612828887012665176790941952139032277096277384667519636568602668479086205536156918590856312717385127966020327969445683815071347608129295186260020789362725140236477676674008971147789967720498311253685765503235034736764144516071474136202031726928836802625858870977567231043140659778804874364047584035307801938343520692264034844159574313405247492106531024944874720611220425988657953398045280930905496990642650853971048918553952709645512736627671874981996160721133510573243832371607126777875719382841966820468061003333804341741068697275040905572962541013065481810609585577916687961946503375208365921669356733212671758589341825038506571133902462520707748707779452908508220359921229495525008030719650381184552917641259403868040613432288512304669878863929072947238586356849633775897898094447212741566958687736555822117876863899849821682966558994066269899887310992453663307834802856308033964056909595940391239731065828902196406071277924987801879933714314015806667171059344155572168208460730788192940509977150100313327326989263323298413825118214851145655213134925620061334532401129188593175997315936806857002300546064117447765528191501829498373166010962610922980037335297830644396060790657003397434301246864142244587604231369800526484178854968040799809761310769431497180808523157197162851471222207273054585608549882835155551363620198573284894781358991866728574756396308099607929164444664293468786847206799157799066267007995463136872554254408674703219982804783735594773827147761678016114346371469484610729637934822593712718744159965278828531485854013765079315528057432536309947550554386006820238456363321496725621682270361753490349688263449497806699713195311564675509048978967720440321623794135992122796062945746101218761661496854238795394171222360233001886002805982705876519339431523652338811363706613579895031831954855617190212611968208178068205380167270082711748186065546659084316626858925510965953020584684496195804055324329405326768642400185644251746769814321917384270998540013778207929173059820151145246915974603391501706534470377515956459325377633629406145823347938860622768839691436297834578777922308094406323045231646517310121327183070392391065828243673886935721346436793990646297462314043817314999317973962506667808096816883931564124635143242288550417191439594293292820639016629995065888626210147628414557738449777415540752900141072025236558628935345198093508609684844940035642887772956690025373327721423912830628780700310026640927047314979456577299597782639734962636536662359050667368071406715043143138232694025653548468127364374078845098570196115063398337774656589494696948557033107152786648192210524062861836797170478889110681152233281113698172371601405899375885461243355081550138422996772438975594867287046555643645416797189678085617501218222317135163853567272506037483162810322094965505066285468594425455332294460240947198244592782178056901788530583830848747384502138432533755591681553582432600819192868748069021290025849450529869388401140149182623745622976613650449225167905311017559832917275913868831147425656327672869101569735319231099528402149388408591216644912726775101780153553538758248651932233036363048475575056984220836112954766882651100330833032698799437538249574335746020257087933783595872286220461775240540933718715412089241961679799035730479025463179031746112261211449579520302872159773428090310796818004811769731606760421442378972539952309262797421426461373934871116501536919492527601439344491014995593177253935181501967680883383162847094180875335839800674891539008488580627899457928878334628817842504689396153549108235816146587731690708994005879935606849360724564498362767993205777928219156848350314961854160778730471647501917548361428307510671349289107488652380816901407859393475816453720537964133786890835040368428338491197718321245199390784433285247447864665329963657771906166380011179611218225153498467072467071284129057611209915376750940975595211088531839036663735081241160525837048595842803934328857105517839307926987163550851591244991707058399293172306512860801626972420389320455357349162679344955287712053705695620133539215458252564004951464353122661331996228267550808773926018592242372524669964493248068603156625495119181917894071154995626627623847679315697386077929848255923400232465858747823271176168511103508266945338863836604743338083473190181904426049339324574163742729713976150563514980090276230084268522698092478604815927125210274304639307713572528991115328857886323598675884307936513143740501518312842385004841091083619205549615055935861386958812120823112879967416793802990372522686920989429775977460908298236703209738774526896403064374737748738330077495306079479057109286411634164245221245352434323086887924206913136669205378378047284333853464222411624444438206270787450427383769454140265875741232079107227492245873365468930280724095662317780345684434359999047898010647340054292065783866822482501535029098395351733431082757007196318137795504844834366155526732703175747227725815100701349445185016857599789235789345829195061233358873302192587651023752580185877986630551160281182986366707775231612693989968291457551990471139364442446255751026716545555135739626525353567071624360028601583944998230593016489069667609460515296411631437099981663774166047257478417009816879884418462608198259433066857560757057962245318677044576859494735633331686664244522203920276605845375632860821720917373152022441787876914937196785041240256344342893595143584467690155348396047818855150989561796601045234949422340088454849240679477684858250971478169633812357096331572061458566653334104240980439108305022134302965432900986434882619383180270842252574416603697602989512875091105071423056674731791534638440087058729125369388010791873767898402054715408157586396228886462576667860708382662607521262915466132337785357576368274641453175837649034795109507422954059302609986511520930549822502007507238351319865120029287070617127532158105687374176626755005151504108065334848038884052584084468125062784134340883344322867662877872757706820782066304059591298819762277861717705693875945369649548132215526461396524264173490600084570628404994362989679115610920122634332480439049724812168591757600265631258005908463636149242370930197484935277324128137167361634929958931464442934237312089656383682538883827558692071843718525601108499893680630680886904671461084299571535368253732774265985254225607945478788058499663311885710193615946619863655671875052495685442311960685491228291909802431206123832073930534090729069345997141791525078050491814955433541593944795866471622260064409660593745777712557183367579694890578384330074753893778832813391669838595979440234802918475668796893671773107595308248196537174324674390137854840995501791926769838940919162554153505802335337247713776910268931057899835448361410962178716619260960666961308458248593383755242632394810035610750293547846790869481378053264019074734640417076487020764790661941213981501019252445926185374659043185588704813744846539974538272616270925567909141464744525948347683862087051237580835544550939712563376895911804301000112412770601860242761001737894676472228677082560966716176546613143490434917608520752865703980664912761649490305273287542819916144646106148944453802018109501394059207994605427271989588019448993136224416203851727840178555323408284550656326547361941765351000342466260807450423249548580896739365482852853578191937891247465159944799492272435261809627578727894319306675535307666327640595322506915091837968773753808158750470560880017947645178126642651148500650096329187674679643397318417656708885656786955451488827714253358244246507764706377186161701398782721093843610029185869338709198598279871300445467854505215377934477729182531214611767795758165293925657586235285669191252356515612764773329231441150451958630136431703440605583754446366680269513911315416014297427299191620093590254412982623936836503679023703810312267952022386175529861755576480482985020069342276129157593775024562061743369298187985514776921596990765478216408306060816773428064758986600455690526900733863791686508069557489387663614826860136175672439872778777894637787208043979491519909975193066058447117385753482033234217539633371651941864274671637808742380907252974924723175823584403376505694315093150753517306593120371110841633617940126097105419610164706619856040113631966325589922111559083323970490114995442881079933374321828569166496566633654261699514523891281043801876667408354036706929902592478506864124094299644700098405720132877320257507340465145177734384698670805754728070794611658589050021606309652280224647497238759860058171069331841424779492194725968206154466091308037668013414667038298213910575221708987052681313962740924710472701520477504288143390238252987069766733421075121456868057577741354263104984675248943201374175254647410300328732209782778081878956299015994927515769600412320557396483402095597642475609719984601577753294269793414944405568102449241796058404727193134093982893354290773506044941155972175326563718551547139972459447150915730393908902238153001760534595658117688931194545758055688763695390463978833733448650623464730809660817688910818092849402134846713739133496746187863643456425237188388464914137159795850878735842646788465432593843802188181205053872801865494177295197929155103206327661552429782782241679273839310053795109151845297416681070726030702747643759490686620961227344542514660570221430448705109329244383248787439326924945187785233117498276889365730963901062246320734850575128429867689630309360121196601292718034169422355527516262876134855137637796529903558553502043164366658612855021421239079703996670002764413795992584054787859548885108318780328293416037356411409268260853922333908573166341548341851245240611994146600797301442641839614133681053487131687714211758132939680679832154707172755477569458872681310749550770055190833492474573063911790342005567737422019227825544996637793345219203990411667516369818804928598901771519074858397989398635887728865711390422416432199555266399457686223793003660709551371464570306368751912484221410863239960793728906162243535566138509325051857892541664226483015734514550116517697550778517159959509841030132500499694269014322838306448773737029802915783829155100364554785408881651188531653292427741647671289802458586397261507716672905735776928301663730288438857092255343654712120689386921321726516645146313667460215173768985934248210846937852309845616210920465771551220568791285586449945169211002517482976493457730909459740581118999696848398793567012329578831950804431975690661171102158792350709851374323393733085966177102883741396361896095887182293767188020226337159838143279348249661743121342260285355624946706499800122409643969150272201202995242749834411312883255653558360026416913488889416065248886293640372124600239404341589002398187084855346035315041308543158993981353986452485495143378431395974732749785167767573455900939105948296053252647911089000135665961490779623290195182029406263439926362290135704987612608795810342169380323492015475895877679078478485581171709015313201992799535241129050120167409514483161785642324590653061081756656205050159932326343700423636480338951377871944297465403798456044608591025808041705400943111606335797983820131137883683046047359723519034300327232919449897239111516543095575802279047139070076075139668903213694865895212836986836986669653467063163653966703004133655776074909892492353475629700838064768271222165037156338431248043051227774121605132769449691067889756781404112204782562152833526156384677191525911553957397086198141187503622985865294805756277096850404285205146680208210236270280369230588634559906409267672023596667711920768417885136640824909170224360818406813465588606865689800863217522927574533678096652956747252538034963186826200166918368655782759526459923304025314606523218891395325059379487545830812836387044862671858509662668009676139438838738772879228596296614477840244541711331293084272788085021902629353965048787039813698302810290982245286121723323275985958539843025115075451235438226729729959547746181629721064016861307659081969714280759399535165348365366064495870986735361739338975859931601010763002733044351439846906937724383736491633090434380991152662264794581780444814464286643730203511809779985233582572482429498693644098822166074146197669189372875285766306126510602218235835520588294901267192877269485222831724734373718329212428058671454224998729782528746530549845234058306422335578420693092010752911376175454309725311086809196121554600434025852240055285489948795443788267364069710867530220921608639096931892495698662963476844205511917713316052797159154037125321788944232942743430362914903191668677558715688998983021318410901084348681205782416326150616549477908713983138804052054404701362580012390750968779106919280141386651363959086628940458172652685006448645960139681204333400715824887505308489377959897194546438912103038439928930339304025783562889074485987107156095737932283771912097826011282694380861627620651160044708649124849581180424289272686392577336467949115269235238045575008073469531877883395598498295039248559070748927132935977257514809559586655484733112408785260832475747242113228156493979229307379769281298970928993928222908174344788357756565551421087852815725541473116682696526903750822017913139533345273391219912181060185830217496047433342407309776857460053703294629662877091379747409382505731184062399495801818512816338193992298134229197780961623930193811368095785344910265898701534014225652631860733873276241998947834139389242800927845492245998379477105784561455644854193160347663759084140897644960561551828039994171819783890852312150773185294942918948892515958647698041879982169227119269243557924634177243115682695909050840976443865920030994435489703577205413314168113814313720959855291718720139023842545226264667569163252123168271081819429969980526136256617936922635295864577735103100617526292021157037310237239045476734588541579049366988035364506122230452752431816252545292729279173818512632840106275626527702536402575982527087145805087669946722075772358238598952917016355069806859288249555449514524767274690534967396754430297193382431441009707495595464896820697510256539492924127057000284933348571531670867614727703681220451396376916815100356951831518948646410287196846770614490190744452975096966768790207913210795403617903833726242170131576079804261424643506804138138872067874404469291853843633059998290372371311515402943308040727695519419053394445666781434413222626677463419268421357627236310578832746218516974334648320683417391773226430123477435340419263624499407002789050749325028565697888171105018659887650687102102755119196078892610600625237139898119802997795002574228374390410717265703591577425421578384031341676630535067916184721412412379444942834617962230908417150038181623638592798790842130385333174334297904373695970987275978754277082915974302264816939177623492969308720593385392579020687324228322496952033012713760501120876235935171222510179002336034595048818963550159395386829999316163939502149535512367383647668053918643378856609213558327717987141677402519067784674316775564988656476916929455507176587340814716654764647725868215543595921278694314066680269451307247410705811188274158466132230542430372372615361507665373245013907296671549548301163848878366179263727714163951334840886852134809663161078335957692270542041343644824834837258241203546248120458783604640467461073861907129241960559237940389161274638120233389385968182989200804920168276544369896002898232639533411622887056552356127267798638205408589852940682095554408407636034929012433267011283726713819498410661794054530691142203676646311006679542164755400514439675157239144903420525941439819637620451978428036077389856840751691013707200740964700434983356606496202396534091151127429181086344699335649561464757975847642706739242991611694955068905006222470263465549473964799095782950477305111998661916702671097098771955142988254211744446424057974467398171367788624150525986589808080883610097880870020869907466164823142626454176479352049460047854801253693495482342878139813290193768445391132204466736508147125017314977935194544137689128827750066455488335881218890388840013728515010848160319595794815847750850615865292810747187024516517616420820045798755885466464634953869852502060550582705557807938549235382535217101310066651764178492629145006494305947119560977660805519339758019718517465060916337330146872414427419874139608724736548774667643913141535542781550063934926364593842425932313469004770429976495704964467734770977132622189715573348855236009012536029634816843776084412627098910573040025118377253217707825654071173833234380667322465597851225445260911781849702675826242021479412396443295573215766034742156874919930147452652427290187122764478659148402610651886242047303762129144999102826400405483282069774811412807514944651317944414874134090940088314033503089689958995978748803148424367152998860726203526366390376320477574479329222161978449874528527457899966877744946607221063571953956312039219017056528824501397379300235627695084928369795887823255480375488434007139117490088536270675197929465370798678419025783147654557616723319976055225651361286074200793467197310560953184646375290814017715036466524963198227782759337896775257976071704803725112925038244757866951108453514282169830241756357893103909586164522555940890565490987434916484895768901393300967524595610786381868175990791874607269703888329381699466413848198742724556319369225894881912561238244699649443788920183604667182096918067390012616491407418226374052387132832260390587945595297305589736454757081923952868950336646845016173772112622600649835895303050870586754723280164127880174641850437321763517501953533320180810725672265970081587645779998989397366482160732999728896682281513645255868735844901998800583768380508372977783578910677572737539096268438750409992962110779665510669817801498580850366102431472304538034053216845981399085913663327919295180652148736109707809099361655121927934773155445986371888791412959279483889482421423686370894505214538313977188630925331507649894223633945010621342139482717275665281592242884778060995197108108882568302069266204355260355143995634741452464594385224004924557120140804007710113030205028750583212843402103210422778804945985568203604083032042775770561577932543935889723464943007454385146886813689850713681925181103032021746802829754978373050753568424699298600184375930669452128965506150450937778074492890077878762341184161808667185781558664099267035373924177829545657599494355802165877510596765723677715443592758692513873547934477010177106955829471909957993385393150686770067850215098835347182321862145720830972619204834682464538654476254580398959443160731999385626175492424360441320212961250531857144495581602777151408849318028288289088671302585471225859997311466796060659616374332879600989095420612548862734627233189844324830563663582983323352515439561646302957138584118987527077892209311039079771795945589355119129195340098220137579973046169367037793709571088376991020346237881219646412978088077172679532065156117558245619016493711351095728726851392856552527075928658096154561533496162221138238462785076080824256948046398760853065464729724530617521422656699830519760003445581355145970766112466446546417965377758139911447310728751760265177535560416962857120820705362921570645859259035388140698010650532611546504156873600648348629361201720713452209214162213092171782855390346135362763698949787869086782685797946205164482133334186993985335767051993216708178061746533487542584455508865478898943614562255726573033272763655906153185849027823425592138964460146793612152618966214322885828635667149632516137776132055301719561392361677250599751741425633575808427275127810008106857711930626671285684177012690317438719097909404859957584083938072055837487478607462682097511049520459595041901591049755568012231215572626256539773110690125875783207191791659207048059203561922646970846240947311192306203365111366118212276660956749563549942210618566588793286268877482384945820121096115593129700660447080568909055197479503963285561311332902954668242429607551887429799697352522268290075960808131847682501571576356246449977857404197059707808163434025870768108676196905272722917257590237512099681708564473080834922718560294307066287601185070907618379518789109530479099107194558204460578557100478218203676121699108576475791067207232176935916251518731150442085425857718990689867091889497630987541626198369334928693546772015626253501207243103129411298970951244124590790389471049786754016556205742876076250056084380991187232793629577408273598945046887576317335741350934435822401725445868277414516716308419933894962250620583133596754111615985310504729639862473214407916365856942443521485728148639189836023580643225303386788276208079049112990243336997911290348732431412217412514762962440514991177865959009879243254463197060396652795724680757618204510973307912698203561030371144698584599343863957691720897260439959457734154125185924514963570997360868858409255030379699289779807325749320962057186810846625682736359475199523920887942711390284926835442560680858070720797575112760877543130269663289285533535678778795988339115321581067146720119127817625769588839286157517177344408953851758228166739539979410913512514111865930548496395923879600793952087561971303623633067357162068515189390360785143389230452431137430379650553920715400846257512872346112247348087588730772639086676624679865432584744819391348065107170650475698298973220702054576787808087678960725468686240529899836589995024035911663637761401913086347569311963618285357526043261915241021265583632953487373416914771233124293454236656736030033184565885496070985937473491286008621340849573427368927881788834474985635852865914150442813911125502908386163789110891218721905380390450271338947402318862117078129322592119365789602763556636347240750774514017070625070642426239266523913961472938750927201294435717008203414406947439889585320270366668483011242161806465182888086604610639379804030196459946024418049568167385571088699067863465284997204598137693781741818393762307382684426395901568039537217050237978262304328958055461638305193486272884321751224087554392659631187176130191006746427619926338352885935295982480292725707546817516536039924950746505244275755467011687351945088406699275672943132710653622560842084718760004755082526890542140104871552284634895508946430005130447201415231572127396842960336728000250469517161669522798787078445893415641949886975557329554078471125204199714245204336626319981165162415142375737940945272758797681693132947709405107471831169087734618955407822996334483471882584476380971857883235158926524999634414772495464099853495783320208604757345782940630690111101384959428216890777431575408430090491102448604173834689082284146723731782160947946795162350255425302314912036786934286748332450733677282668432533251259372383021395719756335395328485223164280165523822179531400641772789365811389653617049600061911862499633087588677850542875309021869804491303351595404306104993268450095141369070388664955973977264469505080273277488124793303445560172278867904968569022179711067248509774835829767618839841743044966699427126401367776016053288780292419451698289255466086845831862147517131481622330427035331416261457734900132874072631777240896431210004143577212826109830144795459914569223169766899546597493253419529521600830742883910642775618326397504734890803609249535800743683778017716806692413498028703935020636452870253172968725142613259773419733796721790027755732139435838072005937554734121652837147150753005517170706732316212906703601008584157394660439395088722541283206329591841801184182077075205853999435836728221948513851838699266590699926339807654038566288715317757292479152285068028679225636555108206215742178739602772933119100765906637704367252300975281024631887806336327908276286323856012576847283070981300859922570256165931185215936160524080744012405116786323815856971872646724374751849368590648287710836948261111003724020359670736857186813099180573088256600932608197598801539372431601030201700995696521296721584797063297778664602306248187087958328164651752027866682721997691040438494483393370699441215510535877221798166368075754081961371473020324929409858874054172202891375287557615200286951159915927559771827978047573719255850527551014954996959530159847231381456217603908354112241321999826693158412822904670123368247519445899303706731033827322129916760906945396044489447984640947789395937645106667732467726060304693330561956992841551683738906744660425060952780950924795392530462422212215110415298956912840372701497508202550717709231240385170291789196074720538796066862447897361538272900827594772201938386826013162226063416657623242283019170855829361106453133684513436318611995034395894908671890552966527923485611592723508669775488004973309262408772840001443983132077725318813330743528883337150922867495326928403296716605581689317319705965864160079780042778262695332543176949047157119443666265273732389348867063069517282505122365917782591981051019890028845263435881606488471177460457241133722715691971834461387364060802073840683658593230463351727475516789493513059763329273808235303475098225639852689483053924905389768993530430962379480544680905384715777957846683981388647156467821828096202104930356584104812682842789993940537170307031268451564689970782105272279415768829887348554629823327957962608744286267727888199832230653180780649846775850572865548766320901679735737590324965918214268745765169538795222295005933140902508827609986791259360666286882448356776246461737702833150199541872832704228961093649633030603406122164801488128013303572833967576104464968999860699279868048159873463418444299170703575604466588888507700697816788671090501935556604385341898822091994805722163425604307992685303030204399723964565924337904329306292744932188178020901225608892009786147816205791189630020937925441640675167126237430403693621240435711697477884408851771323339074216432648184386953118243306247542839366923467630283061775532321919722481153280757356535087888164068344285093211067068021334032472449035087469331845710674954823768688512220190082916609964657263313380835563105057932091239360241995037819608475900025844380981086777169719688123359885970016029743078397374590586930463426428774501004527431518735747311887181165741917871785277485215880846600054204792434328808591396277888620738162668429492202808509216206883889184047129704559204263858888251737173800889724162205146033380871629428552658120771997381104901665784935927132595875555261355601422182917975557881555254227149824651719610573902155637356826679059165534130362502307813810929149683691921671136782650872729830742328936700343281766750353785500096988607954157372838544982680850594932277967259625430358278210796881529898357713869869232116528391761489204685487083517629996505639388039557760454105364739616620281542197894537691510704310311872743775243454691253304753058348263329190230547113504807972010464774793412838684378825284364252704074751979894698041088094699522296727614171686669340017404254153939333073504180000285344459826291936583477903850003501221048202042877470340837016450830819666110119501968733131947146865756382325965285967934625549052920855875287144730908681231734137741756936202137857757061086520856267789164987662069700621287623959986830234303995451187292957100346975085076794597315212418421200191378293937030539296633198183836505970928233139929198342879784798658031553227016618236384211852688565186373126000871468972560274448082979356786149331743981169607128712614845081057491646918126661382471391645657455405119709430448499533997968406134029858365024153420312923438440103582047796169055643037095606136361007070010406585034324763225420366052085345259471256225272130775016423066964728068382966347184454790217114152297365233754937942983614983852899537835052685227037400561644191618136686265760374555721525558534489762965843757209485287837209841953188222154165673846247028405263982664357137364990923683602091196322175031628810418573371804036666978092074478741182391365740144458651848904343133510399594271202697595354538629476685709218473225033892472807138116889219520316046318766754821233345832217270046794693430511365839194427560828154158694976373438610869240203379325894525792524111891054068376961584441004238780101567469752948961739043124784965491057641163719179330051617618183546916956232461310685117674792205139675473520282364985304903185969574228301529198450343178077716774364885662775005379824280281608628366782400871978845347755293005237467951453571681901038390264096750150302815484298368002488952436290044662770547977355890534605710533484775962005649819021654437753103979344163454258138388933729865814130997785383805455241828199366955050474537762252141738081628164851125809390477949325125882068569424791077931819037838745642236358308212713872300351234670788833779706360063530396011030477344480549569040150922623127872545903440907475822657334683478101879700235176405816934243564799576463189585373510563785661566745950413267883433655747215613632940349177448333368245888601064174553940552223610619290286791154874037514915810841235175671153751957882985999754683754917678270004688205966449646604872080871426463354108862887995611156903397250340562089416915405576339465086021430917444285945168292382242901930596760244314166448253510325936658644220117795856412519742989432894215775850274241672170403884059356905316595277631972737554086143995680695666805297997883543106152447426462210688873549302882346531976444156448820573622364592666268446194445129347699963568454149754436996040587616131747635469429433369551616948168489876208020636709749394133546802825562266864920836403487548810852854496488108078269931977579230377123059016044563258995816746748488936654053746888118816251239313580390228660601520529695940760471989974812293975423818476785791900496274307988702232091690287067746388716443440509740058414785926825101600197903630591487362117487234202035872267549203593622255489022641699114604632546688272691650404547473358644691880591759987491422641931080021696307762917125974029253824851175816147518006395882198640928385982262310175643101855013891020630616375363880106508819324173519100929282998030897657194168679542342195620884267338645402489892374979606440795038398049000735855209512996160997864511411248482884189631674476889765344708749518793717977377248154702592871069380747654287823044142724311002796037333268638358813341696968634170883983524863134161953078656538955919412534669163828473202618051272262229412148779556913440928840688566499488742724737088255912999786218580588921833264015506560919527448500990837929290637012378970170434256619190397379105981142243360623139103653983022581437750797769990948627015915873162117840958266412522086401226417912643114053280796404889674529778941155077916805577273927540536383298245215834082787400103923556629273712638817206583450858564494795405983786043842796804484323750262363000850066649781866725082577494714150863545464482125011225540918806548023266685352575980847759607840592213481457132294261789001774338927455641582280368560620601766992715012312322459726761214388407996579203357091100112507202385103342723547987009179203752761187424145045695910392901314271108078741077754761862965913897445054031475487121492966960455760472673446596750921724228429219426156685915962754370025727654267873487745621368510652612418937242585043704406206735098243861165141864162011535957547290203128398448612849754338776410577254764582160355367161901292919144601677786682396116969615786368512376460016007320820094745013243798552731714003991163168871307597730845836656667397768191232780976208435777707827981677410546604416310397239339636974578850632171581755924739411007601784973551393842224799333075824959449054131022966129927818797750218891861274895184710556920826596311687301874319637136330926500662821497371791730118498536776074755725088119369700973711460560103021291492349428502337889630839897439610362046016941853387791608296911845688812164234007622076944546484199797167763229554283246534805677931760567556874700480984095879069845854908422395117770324593922527478207141080141392277137418442876677942913982379204735996926174535051543697935583522417913307452512451756728710743732913085887688786623834422285317063793437658664918820125414021452422605437298813177959024613951678277614225074854991148583174465912649731733436415959106740984730386853027242559926520461860035364401545852919187594849958216361392156021723696008383833749121090844416481015995783201163534446254025002199621487413471051405463996658047525635633699001272013976999419795714360472043739737587765429539315344672696092377451312128238491859715513907952842032890708897925248191518279331406670947522394634857844268901497435396034065013621397997189508524721221177556414865240061442356417697166652692736190958295309570022912391054824643068439716016764414329242652857784247387169290141147486655420275305422520101325988630339773465966270141816057007524944735236087369729237107260104117666697490941315741730630585647924884524848163721712819970327306229880142361172688918071945911464754355650400297377573873496506818402597055185840842058897208321273556274210963354694068447730169341315387763283167182539129591137817377857588994301267449353726612978385527981871163877653226257614808710321550273904815501881508175944982315691317271400290485622960494758215022852625130203504207019753236417016586662782747743330727230041761845828430844189459061261246951891256393796997503156082272675607952854066426986745091883845186385037428536426438403779852996676176610736273093305033956443753286445869962216907808697100985448352180894774609591084486333999393642310350703479222669359028004970235730021308742096891566169975667551785934602321773142952160702101459902468949885518153569534137081048834372733918076533007445467057776484474610424892771149609249578852173064652713321084197394523696690561218072920647613933166741804246353263151377964394342405216201395835769313482303204105721399318441322410797617924384637709495028847914864897409545935869985387906657809768290331967484817339025040676457957710627168143873093223165871524364884347898864677742839190979297787887915164558206094666088816311409025211228756164730979678471607356567068507028797968044254054498432523120491541329467378526780568574594629206460255633925499800318782147096308747373915764472851535142144018371971976660460705448107555996454340812184377340486432226975484676471034702892274170437178424784343010771670967588726441928400516974175545606298157755413209428570434672238138668510841370273043974308484286855112256615461319677155760407298181011009265225642090728818996206586497134780341065622910011240054192416579163247955853334058909416785580569802242483014563148177365947077252288331941170286133002884034931548987491569986441697426543447801316420779553337295677913811562705249262854577167806834768212431608141521192027844906029428488707484299958301634707155095767976627863758961734399096810461044985403360455324035484594804317846095418242178281814890164904766163952062708721144947923564479575056186324095372823752236990520944385507597307381709142402256702841739806618714458196883984904314126958721169434874378129334849426893258098063698995375377107730127668932743653588680863393548766727882683101217027703231908718586781054042830717868805992740323846615366007953467373638785060859305949140620820793364832337813382247275750693314088199382545872379577321011273373487029831737527415924260858531727932265309340355303025429865931596769063967753966635095985322798033769248805591874245446023077698125166375931272381203081271987567339793765685212877375635599987596371654165507665027509016414672803278367029330719672693198976229634746842371145986822914104915568373806264423741375710741459177686905369069748244405856970317560489072636771410032171401578305402139816530224366019667869691953901669482088325833504424500828781909682533974038195424870590100496522477912732319826091656278358026812838336467083612243280631788840674863299214586358834356772074472723427676717262623284950297170939583947381580365607366102036993552635487345679086196561560007206303209405744939208927230714524220972797515874455026056630866328346176025501003068614671895672446314662065924379321231032534827378079729531841522090246924825632919824034549776221894667810774771264525228276321766873713413472167699851367902568936985179489617256091685831058037975851996102400131365468564762727446131092661881895979889209528040980413978586619922170283474794094387809152364319843478506957841716105380496146159951882935335218545121204731824415813283185766601922062455124232696724343259068266295011748260273119690383097856006823514967558530909638817253174823695508567714894129184304695110471813480704034994776987721009926197579000823935650769443135111578177393293119164682601818546311469271766458353719672043405546288892099131720321353080003298189543841742071344753660364821254566468851928529400398772086858883355644370510892641794399190997399758341394747536663064968839212319434791287852028656670661808677853224369986190437729023729880998725697162992830000840480265103075582269033384038600816415812320859188412631082000018838184162389923851625229123989132513919974296641314071768725129847080401100772866284201537277044148484080945165578819406015255457467587159028732441775821602632824607161753421809272411631436184520873627143458093192346231806024520035505514904227965690163288006849710287417160592595332485073237806534634458697851018297081223963700779435157471649389565695820501383986414022704280812707755694924364197261465844013368054528214236170512267273215991185303683855782392449621476923605027224158819379520619276423209774156268239667835771756963151809586750245523643195156928898209349154452827700954914015903599072240968717564453964564099766267183059684581665106307597448410373328644834089061962812619178458113200816609895924761371784471832591943471987183948036060808303991279471705770222186863031948427466918582711940276805007688237081010980867544015804792214132490145223880366651761743742225893456178158547910502755722523855930319107180906278120523136826477589641766822836984189195364563937581354341327589395853064616975358286874633917912232579619892528498768748957746119673564622892766220611283656358230101436155087515968962314658072573261246958736757015421437312756470853347892580750578367958530234511178866525267719241033302344377864283762685374750270163751077969987265123801327324640967404964207972060527677368498927085735817552672359293834402330444521917931776087866062919443575914250932935313234420156323912133913038466953922649615957563265745948855535037779762314321274566220047976066363863895473309075245520897899324436131665680971045037173904659687233936072286897394595650291191672822548791256450667383812348964313335427572456825816368581964100510470810107246023023249319021529244355726200679875904600573316830549815846657423451152755430069046332856313839629966682743117665808167671662574034007063695179772507859490299432789792423409688793857044568737033429709747942027472885210685961090583618355352939164190447668661713386672808498029585708244641971726475430621440441729703244352758644395655098996904506023052147028827156099145169792270062875159716255609443836813303386683155560460295923175480761138916726455616774100339519740310605386592483305946572616781478952902505869111381752028887080174063597865787296760429441379059572182291155665297301445995785192731441488229434054313113335371258940910304727489239272973368186731198752733682728674599417207806580117631551626915040983312140339397892616166715986263562022418595919959736519314597834584289852140772163425101861476734598054073345511664573990402646557475302898134276365557193962342777609636605988238181735031918134357117475685411659002236560382982818571486638833674054309014025174223680340593926129541647450675793079844655346992890680284584918824113781131664907121470583628952484325101157075551733462515185886673387237035790899564778833740433149737716138446756127488433481998061856351787559014256185046234276211011247550953723060224601121330235864240340661172591450273206986782920321538712537203700620506463210551070715937517207369993100029123729350716892071595185853712313328551349056463420888113834249106217672273228838385524601546554162730875758907089449206024155186694261127195923262650254150657359816894468025383677207451272300736104800269676375417875716223951592239895892237970944699891168743694040320965700499594135726974083156743036053011780511917451285448782601388872041553502573215901415466778787948878526076096853562145958297393979666217960266097803147098999530742907548623823757654336483344161332478229422397643388181305427540155399509967033594286292291790989141859111620200285506678867467021097468940211081511542866091926660941477757911910552669571049849923577307307119949959746452821559074326724583656574574263338852790526768106632275657954202991629833147833341271116271858303698092340235442364501710450655034486466073491273135721689568457523098739246109160161757160068635547679145118127428903168924604188941648424676019342177693274655850232557579195714110373482255230204277962729514342819199151855417939505147519508523618716068504273615747668383162331399952922429854036541247079523115792660725219022722597262459974898870650848226380553897385861301553225640492065528244439751760397161316425063473757731770421655415704991784815963422690592061902997317721224657637315837360271266029461723597657742889127669103998885656940370063197717687303713525613349877658333179574021534252120991532512054826261896152037194615813964703631669791760542209257880748705275084381892138340319948000501932932140878139606404928250372273094205753847744644948274638262952054784024646842769993860535188527852751790923555688595227940091003732949599494632426807408095464818821215392153676317640634666085350441586839236229850161168797555618161381187986964036856848054409723043751821755788896466831056520070497558002227487684168480536406576836796901959902320356734633970782996528344410301809952123258206635702668176583806600387912540999439704590770859850778205498010213951010593044100535512388263861400162832874616990517817580803645582321321718107009478723711050311876562836244185484445206863350096474405170945738870862509178157925493859006616175726611117363372498318619160021171696808724665823987765775098682784016339460343160575665933470261678897581513348970117552217915241782251744726263882935262758833707111879310817791565368895716208154332175544401232807807132735652928426408856309468051552092132142071779004747043473636508922545599263600786050997160260465025742056238945714983624075910767157481507281063181489214728386923503336590949662235973765672762357157846229141219175175244570297480196173858733015707632825105205354702011240120586726073915161107345743322284201485553472933805909326356072043891139810948648079343559121917990041362655151991240380794566187607046286783616073857066673573808322988337820411613475714843948014097121751526213679398432817317463958569386485290728867314902401275725851341195169799848071669423705032682456375198905569656102054054500722044374719569066650903424130919465104080376982588266863871848775867741042459558811537554129211394391078695072561207196414324317502440606915121594636521154638949427144861824022885507770886661927000700817053232155115015694703370003232934920177376907168491214961538023925625786831891418517545798869667902065703804392675225513489577326901945527454313503264038136431081472101440232805684996407596604864491052796880609437906850719481869551575992813788777127391109015001711039191001943997861549133122612752911142036599357365462677622352922791873087901762607816825928368657250937858631047100846277871843859050403524450306254518102417229893800662738415661165286578468201197300686168127467355081980692762878914046472169868117672275956688178928262277339713817077231398552179778615588631561413310234338751036992526349019251544636044991568565756271602864951875443430635638885143366875618163957254681586268408741116325210019684812290082602053083272146708409431926959439329973068682775047153267872676476001166399303147723233639239180465410729563549944383675072374849265097725574730509524074234225548928656003356500738225649089241469855242709999563072480041046019312267896097932363155611758145162031582505532314820618307415470451889672181252160603207287491023953975889892446625463945644102238236517691152697538484410461597834974920584648334626391246025804202533144121134026983202947240188667305210756164596060878383142971678145125777185400953342034060302038112138696906075258959108678110036779901494863961250153830538403940076448630369520931455753080218563758645634338402491165255607152640987710333019306814368663542051541929660199462490282490294282165025775594113367101778123849359028567906870067063537018001549743207540671333211553017372084818869243382371446825682801934394436411731719964123011400034894372329665533844534700165802679729255222832017782070965972882168892659584396601150747874181930991645001744905977889577735937259792442324801132269713807017827296002562732859437208684793046768445824960493200393682358176187287697127678596908397769414700281940287235989933869260548846442872393454786023915312422285185541477263261950120793442001658361905396549198402880616289665435724277466670692625310615900449280900604580351741060320284024598729094389299104135823294013712085677031148457335797245969274083816174205592503569285690926680330065081132080714559551093382374883191342835694059963681286041346449675021596556361702976816908851812876149886080627389610535053714363891590727152601989646439885291504977262210926076258329254602120738616652202030369713733371227331629716716248754808810049433998983447472362755537923950156884773855469235125470401293878640123819275980858828707631488854322441485453483254854735478443204821705715268182066129331567162024114891716943515350239375286622503136721692429737008142700183248867068151331118804899680461491460952439285967201281219304694445162374548417003715103844627955153610841319263119645351109165109113952474832700428133023922164658002100676730260251200148645032312306291655500521325572013770591235575532802945794554596302183253606423937441195029429854298962037068368695549582561290530521664519852349872182800671824118538947377042431982107596570851551777249496947509665076105230849461467010243216424842817322709214399902180548847324907868133383308763794383232565928384745849589988969935189967246639229130183574467830294346075757145989316678495609971933143884287258874100887768079370968743058783370786536357961626322715004371755076285197251810841536825510596380918729132287450568647101788703829506748176597295476929267310223583522393079794748612380550227583036887177736523543544645103574288402815659825356198138906908018413985787716193776666244452339855811981004640449313110016729353940916754112090155722858640307422134053567861651673661774878961427946777017245836252647355582757431236060065995468625412574378601470831119193838110829655174771224295396359998430558616205679168770394641684124654394644495833630103023733159601364340974773867555685066999376577077399003483309507589192737628605695080718761993701532815226940686949886957888479235450104701227262482600281019092903254249379727544208045853069085915130243803543178400070556225544388857199174001200100905022611977189667067549620192942749843439746497839341524528874311179119738098396069181172664380304558950109090691755112999672478337577607374198108591050685602761483105402687241152136385450282833210480016116953868053330054253013577749171384380594564924042144441238525047487435900240043025995626525643968927145619414491076265532916398969618810038729809772731680775050582260990683437287742225622861585816271228462047692106240742527390377528363781624609767513309569222351497187590623488157547204342907962790404203738604868937570656828429219477746311171856008638001575523490981623934805680902622437904487235287565509287998430609002320354554332188661027330499255200181480141334744919240430733719507185851809116972676277646776608591051219382527037267844067826877478536025317873316718896109770689460405241813982174852290572850344990216437955142769456502614988988684656110221462129710262391018807961055397734470224965624257055584175909457828449165876916969264152262136758798808487085350096221524484492569230391015133201348976707179524094050006003670944163233148259529894128196917007180189229392918795640187616772622988308386516070889805425381195233720436762550753701341189835558645286891978835196458169920153849472136371911891730642562525887777285831303594744321529806653501357588166670625670328600699990374419440053801977428302429940001428091149632376196145290188374077529605321637935855599488134402207670603972912457601814085976819199486634127757979137353187261419832264536643725801366357815451319424174551333477162988575292600844124456569271857149078231808919548574802567240164594223667603462185383594132927651886457519187135081686122256319367338685689470053467179386222160256007222055396223909541815281176024176705230737445533895494980079928613676346216482684827930354630757140201073352243215369643948278381839905083424147128853325553618534745545504272681865508572851326280255826707106981066932719888319717207682892289091250798685725349826585992189522591346896321011310499507458032903635150366135945109039483445381540128946748695148293067992381342256133852596601337777818495588982909058943517731290903069887121717648110707636835658318197939434428449263309854735835005092953285352009162288153336651720339165829813130676518570523399630632569375566028538288759329019048850297569737347607519143972990300886499706395101122130247918851862305597547863085939139513497800340195581849085799363944967894574000124187618379428991522340626243484900891668887545310994955193086218242964308382445207787353173321787721385113327005332240609223898901184507478405313826951885628033431248028654999741387244864098720938382515199367496093854084769302482381868051835634451916768873345563618671924558232551020117154280031767881671721463476096362515481749927483150846737527668880605852835146904195850163143994415548243824245441181269128386056884219205101909858622926039628767165897351744994427511058254368270914406178312730673076077228656727322823537607506228789295978261062294281205066709703202439734876359251033417852476929928595293770651982441780833153132610962202909345963521444743725431052296661216145799909306916723193279288418500624124547352898239172583150692069988047427712675926443731566281975826053803229417697403653438775545775318827673020983929790380332646095007541464250070371561290252764359672478237804211396079920722815368354258587738038222887973762286738141414036384443019124212411350989564560617631373971849877201311289106160897296628848893306659051007493482151163231302512618357951261625150599485604912878215965325327450865302153614912152332012947620414022452669805233794752964136563608387978376486501215162465028737560157786726303223422207622968912322433337992121346413240363895854501006213636116472599174569190660516658378994475019334130850232147399572040572585880518790430619123437088530485472793830641301327953693988347172560046617868526950296972813909164164593605997353530845809023797209004731973369199091724146290758521502477024832222283180663037367467488761518872640874107422832477069469686485290106432818002724497876466285183577997704864901247627208360980090573441978490644997134705741731812677894580065610892826067368678042854727306230425230914397602252462794149778730864813791287788938419602725727010479062188934088054402723662864030866574656390542772984167162039516706012764708875676028256394328481046434144850108689694304637625712144174573895182979365496691270433279072140762173197625039255851390912624624829616160754084694195444792998429920898294843257255350234829131806968400221323376161727741042313364361480529066788746807157250038371536137956181988610342146936920267591729352207211434117428752994400884282932567103794974410400143305375236290581553528251095375529650541931245439951989989096917169455891599904627954717556772531904118448116118220350748601225148125591442362226690049098947361029047346296369176135829638268849140053040822040769395621777103695183005581795199863258907169933089250977674758723315303358440562319491638215018207677858169037370814418739461393599278773332809941354749968541494754205574636130193448013433374583115136359604473731935285557957059730336230862329026986332278894515292261272158685898026651858843075108795907494901973070400935088184303380410259688436669163503599170782557289334935395675619212254991494381334724832088126048492067295723236727243160507531102254018699865573985681272425604156877135431440517815862060801517449305353264058957272252362012459540140613741700688113615344086055423177295008683599742238942970714720453991966318764799567627219953927512074182677803843446685605739691771480619645605141325172119267422656460874331560626512365249028709553619893635926842364599777553848871935492244472125214573783288596933683877448461648088620458486203228687734395510498047699598750842683859634741260429387557070272330242603871153528562898094094545034377287544628674145791220344510845699139160864019185436718785325075758389027007039968970305755002839093259414428963751869303955558844632635605558068889976851652972535741754438708621223861922113959446767055468478792673534796595943119229729759192788197420129195494340475649802989323965887729374126174518560188386704484397005667048659920918610705589729750835823486472943612537709713740009919319107615340004542629436618332118435526094983731446485410824842782473515116246728081101798051045906566848962669022484835099434369430668284006085716808345633484649452541238420740242270001059051044501244686087977244076250830831145953639406956884983096772859537875337921375402802485819591607032157408750610223651662210732880090651146135113133898367908494109326763664976770181841680174873275242861107624401672244182351127475048449696128969581958975695823808890653388523613108896862823446534224256899059017301079765508176742070450121023341252467702100332766136089201897399856473193552223771307466453394381973383556138476289117856824531020899087169397490442940312284043333171915533806114803512023496399771220275016532477736887633681487391983109375296486047689734943241425792048915150984955550608449836972724968764134174106088931486347629852340644042507249600566817899177595045547136673297900901309922252406488700939826687141271559345135441008120897267516755723162411000288558536235543612264820808985856866942940873501798876258419766954993722431006569469001922005279787049829083027439389596405053104965096031777440989380801438752520477199585921534320816508770521838371667044649193169756722361978589162213377130907282061453439034199584748428411581368821447408406913568701866988987648236722828032602827623134714414873419776700570696158983239257145597596809467194580003975278640437589917505359353279372755094963511111781977840054224468240814709244683911443223367321699799098713847184165647383840108733670875011268954488838517364933231052537588298376654317874289293943418959532809174063965474877999566862790920335271039549043978615938851162629128231573649131867520092585512895324092113516304467935483300312026270430984708920344701183147713800154373682879830079962580125711322233643841254575196361439671404053661742975515886498486188660025450686488776141794068603094560359432020406800361076188905782993989158626579372873890953326442209458304661165316710093702159234718372984009609316045259733615292918095214982092640907209516411896610960607300766272985782495142034423084677057388612873420081633343275750010365790223573788391743906598347119354140053548696617333601990738907508380881017405034656684064622283053603898894851876415349721141033640229568257465921297405625662111590331689947961867197962942665718586615505763852957989569082438061926001000953553803752064717353922424739364442725905039076287517448861350900164405237580977467794976983643017412835365843421650018687609975896062924082626642058096805064102765886170137636375237822088592616434570773376942757979560714960242954046723195934777272983460620602295461360844787791153279115491462521120150370608258432790067366562352360829320697383541720486054317011276479084260634899086089015056597893820860954714471708578417539814056339003973248781120434675580967972935731789681949863027354757420841471599649395678183022843410926811100955411419007896495428976146738970238658854809063268665954518626868913609501160033302035184380497516164112879134118851359950180767164320582780389666228939193302454859630728839811677272338841557368187767111593114625907150581149844313078457081244570229821173176583043919195471941059665388127522002620061524648509574645713688598304421208836782904372327639311954260326680162021982630527147852639241685006932279667013056416660836778358784937090299087625105448555691010428633698959957997009917458712605946142108444885755436694672629803043563819600158894518388994729580482803917551233643151003847594515613172419848398008445721927783262303434632623136517848939324480346033471104534134257397225609448046576808960030090829932298496976927722275459247120997497015943790294053468782583734141812042435594092997113577951490909545373621187077799267979976826672468409467179116218345946924900916299615383669513844894895060819343087131802472340488973419338871263562116411644242034188600406092817382811366657760498147910988901405172451493365590704213378520603595103310042835753381453184312921227031201398296536848762057747136255811321825379308499353559496686618699441403563487700248170346493536201867703564087211861194771942488618493730585898704998654348912432727470517055693127891161051189254164858233324761764593327406963110407578969907870221973272886259875729647226155902217546650645338918247584990757582530820308302481456907447865795969835885179178749999822285951531830658427054279247233758553143926056124658624393185790139799231931655792157901557645239674775424598539461490136339189471857110609896285673707329760348072506341157707660605803262004907096413230735547283187255669737749806070276433182079087137017470081026138176153675177097769164279381042126391103301476331868681410191937648374902046060823400357192413241150658795718628736897401505829533822780213376041949928588005070379251484175116830336368989910702959007497167151713243643292130542293644046742590925125864323638860389126424760516698149842316674071791412081688444977723193704376880102511654989387702393930509796108342992684065181336944434834764755118676002297428475431421470756012079146566749843512609111339875711773386676605509882988363761279720936114039721476408348133609487988129674795918422447660558685510204601052179543147507385525850433810191447924548084445381376176198372241743136981434635670587180491823113087027824840400029624855174647019638562341553537319077147381345668316750664428898445143796708348179759633104345339838976747866122256367180920344203940747616004975114391548035287078900591148794339003016731019749147122004665137778034428072903044011385445644645215932235851690536016552181607050633035520500829726158686958834449775370194200413157170535409626433564678070336837452839877286104420595355445345307404930790367634262504175956031884474447046885561734784561849555485243096633403254770880381463743725458380423133610751896354866939867993959971952030942150566780977546120350531237757572624786168984577291496001079856105980876274767858392025777125564916575729310236418073011400793432188550715549146181155579619543389634968377963391590809380306750988088931915530894192684562439182115119076795176786316619722962995247485386283886210492258947831967222729990419620585625196054247010958745279941692474286815415840573356003730179374008031167709516106007701614609726928659682446556775297521729452447604013099324951246267299686601465872851689182634516606295812357560223551193312311485660145137584284400755677923279878064532577066551228515569405709460770147212180164520699733924662580197421094119062149638588464313886235654680746606641495745831302486973142745454683169951626317215060846906933136674398852829360663941654816233016313897128960311239462826722570466593534346491582945857695119830592872378828579941071123768459246227624498920482277582111844055148344854236862949101107248903883868659718729933617840669606243055585191031942304512313850698914491844332293652681026113433680019218716992352705769551466892436220626360136495515761529191874061767884615287685555724741948129720642838304905084572845583922171274454967268546785747459766538952693437154767047067329503087073247081084793841071195868355752021284835148062835049334801691026519365708716935174643551016337408032588402904890054966536453534291395015634456156552420605448814677540179111887514795230755597375369353006555626687277328919767469208082780311156914065763144535516972251040016657842644601960579790490249951907837958121739437636353347480293541611640471849304453258523387436403899393164565767074075227077866550578365046932393661984579588607586599455833678658233893044747843832838962637732739607963680489678718294770119493172484009752207149793499863362063162889024927888972198863083252349582090383141218053044135897065780308696720379218433469214961247593977074009070784260606512597429593033963234828867089371772099220400393295299778083183526912213889703873627180629489241342164690688819182869461777123973686733810889206381463826429658270850082273278721811226661928849886922211570841274030046169095524881950116495997764513139559529266680170379441877969365855743141315917237500370227035515158960604937915870833066138506548858534420760217726961984722397129607111371667542222635269476838173802547657166852755271436714504330538774292111680398975164231083288404850408761180491023460544148204735228856900849418473486193649024427562004322483612077913579470254681446228709758459785685111678030858287320606003103844941352995490534104192266989297480668401053963147745182683867497055735859991666936415386604223456007471202605800189455506049182499932201671553396609472626020692817262664233887226534916851639916652914714080645783940124421735502436589320128189204913619934428312029902973583974883463736262777995104325626156710380220041415464078995801057288628846345250190182254400933634274139571713228939212768094473180649614740652824981102445607689444699611557118167416225956616129158139220938802191706492499895478227861834280043188971762775442899698635517187668080199660358264396616347857439894003584866405994065529207183761655916787033391428569610981908435699067401115089921236335684808059715232193665889698138270917720713724522266202716521023628210302870167584428533080769546495229718558791081024693381465177786772945648594546152419837489472423323979741683875017930985740246276896385882093823199712735769905633743043853335220613108785205157719052815753391134177181542143493496408887839828944503431920135297888083713765975191224574094647569392401923152140443132196804630703252195292044600620117714628862831958186405951356839352738853925519812633393204006561979011231564142640785101372508080904487702427036405467584084772247041119714971305821052173552818394870364305383957325297597998874928997120191669932556925884753532530369933162344141547644667886830815165316056226824178019806819343619923960240104658331958421761356847491122668969008435921521624554521701026866238812390819852180455332818181150610801628359607273057653506501391035234238759792554887266825869538488942112233866821986088063486925568758726563945590771092982140938599341905147761270245108634212625993317079147982078100807614954441729955094075226089755681393009754417784892379774839826281466434927221955825955002659428027308164842706072096971357187353465740759496086492643601909023459864558228206888494016142526632370344971557838002851578045005581410412254773506572904678604318937478230779386608871662749204713451948349965503949703878821025427329665627946634363409961610681690785297723174074914836201633269831484206071573290085415382974007360619248040728320967880391201637763761987844796280050930792147432630553433932213672893448200857956526825632670035471884029047428396718409017979182266840452175001065811203157238965204457633395852276569317130566031647559934544087774787941936827351043390388722770833671076688138382425675371768394179359087780645836304121613264897377861610268800122377407213772405591417786147832143430818635773996920348018126731846825447267981171593368217041300627197172297308322607995318777861567866256540485177890134601534265996604063946604807348247359083305068143981203625655235921777658350187888773490853692026328326466841970483520497968365483858207561115942298057385739489882034810608036798172716859029440199855631529962344276437745118053963178405241884518938252790698237501315799465572320426145557680224664980478355581332563291901883722400479857489772165384464782723671674012592552423752142642508499564312391265869146553780206567017440705732314590114062288145377233583129159275304295763850410699027615567159466564827903735819125151585028666431737645955646614104540375663839494931080746180570734903277874936794196232699884605183601231354048812251361256605418102694711934564076220343185579831223408665068359153836089018105338363690188887647128820904512382940304255743881687620384068048581096537450232692258730768016439678560705062957934690649065121519501665925275996910977824915960043996878192676938586476897839538656526420820088042258387090899003237849164323002110368898892880463821848479647465591021525670925136571121924914813851637916835522724900030846099297023009904203378207909344609083414352335546334238963712396771162111974868658543787965507352077811530872567043300654971046012087554229220447589862239248325327320007495268748702710575763423396506264059769267323122932242199387164339200382778127587472185685269688673080489064141568194741817272670641824045848539858974777157435433121503161336272997965376845061454462706320311994787271364036567649628542523286491792050712746111692069508121944884541944477120740034830436452297968344016775603189848686448990179657564817752541437885298466174323989816380061235333345582454711875620704331729064774631314987204560269010470076404487917276680443330221711602608028246829381771589817845981359941359535028837809729787478319267442131414252273832045272689348866136774216171673099870086936439410222809735663594170195153691743281281150266253718551242815499467240783714395231293157653560151025064019184634363577230098261390734312727868353830523046919866846392612445744673495019530085540025151597911182560772446369547156278576792518614524505322494580865115351440653250474807854524590515911953319419700025503764219229430309777595065720750872589945634711171446431347101062404822697044369138952293340022121833809023341700792057878326972743686304352921418299792257133974838392783088201697727323765182300343356664026397125532462683065559452252266676273614406362761962967608875785993885617428117765426362647751266861866880637680900976805748840350502801035119720805147812042278541497971161667335221864835608997384509945377820488483453444622514265738478575949573330475150685540978491950486118082532880906047357250827550958081382074339202564806446177473311923214241752711279550931037388195430525842758267164712646213712029773887413207434044568533342325779056109402114348689817859703502799476433517541909227820650256550328162514559876948009945978283004710694107145889898522612253081976402941264985144012622136230498988328587113947930639675736422216119488717072356069588448035212503966394960642394214601740244708377058038893266824537430229013459780546407928610034407373436501750999378797695322250115970489275561468114841440815254277021537583932472541012231016373537948626853286601115143930321512895329174859980949574283089566013376255197644938636720601361934598986889239067860431066756582151242605231709048802011598991797793163138803104789201543878459539648353446522628499923073238767297894568371990968066140320281720598060849003959733252673534761389018683118230389936677681304492136624837459984141355354228718543687523238507530728551051028302045312524572454269000670287471724052524493721803437908035590397271749410571386458305180242108990114367915998634766582089119189494316843953141214309375649614378610620755695361678035822239151875832307191625711214222557410673939337126772802465504471347346127362809272897390959712542125369754695857513784988786590301338528121227149436748197541587224085057014049186132736534517281938757236328355967938497935631989016798887490592980643095051621167044987991687907551417057071487228304598972883530968625861428574495661427050104579261807398249664789847245807599442988391785156522441660261473329615156051669580821862718518859090633800309333782967314727992356394584080584801809747727577436275821335775679980432058146938202576085941213369580106900830890531664962866905977793803855405837789215270770859620426018847362928315322447145751534404792433965500638240016181079999726133921813308852687314102214254723437136940009431375889668417041913830515606497772902405418635839060820550031827254708230718649189565232269785899333654698709722049296750106735308091561991236861162181022753258574194393444418145186689025728878517841463268437506200475767224379061010816637479640743105931431045408014033033373945844317932245949739444172348219795358942945926657594573790004361540266643173343312594437228136440827706110412181791685301991195505683838339483633009852137059094612306567270390096070117449832580947156860338979329702610227363179287806866891037408682280811187465137214855115092983487893096283717460799302567670771481943161054131140784634233501924644699840767227120542627820919570683444886138517675845673152630828712566106129053588444441126764775023961236703615624593698756351457442924104625650803085366300426881070057034051456907842658210837210510363591000327623244956339497448848320476815181740176738808489383200970336884686147905425486965757440443365804904156804810534355734631052658842340610928789460532364114948568191736981428852949885873866267140152446756334916989909926243307152894899198924869081309983921375984221674196582243840180389265373006718272231622959114580127838493497500152110433126536791630894110207396689913880956501461079411126391898101672493829451451811679819192091078846203707408191139993588382779209924491003338274062134173128911196767154971634327240858371435572770984897358115357068484988600936814774377345793367276923639349474169694891794468491109000373958590819084471574545849319901125709213281278545789327214805887408179909347270841841815965503816123508585873547872208717566568273671422926749398955746040375086353169603843738593393714853874169573972340858016015904956257370523159270501713855854297406887471469561351822198951542899293827707930620206663407180312152725807313527178910984443996457893776883021069637314856316350040473220109605216518063538777466287036598476955114195093898355817020555800659226593484473289508823564875718229487210559836791266371646266089902382190295757172347738454339591477687820910154371236638404528832495879189029318754811755090447971755729602218201183115331484889087161308942970593237581443442323475558955003693717547628846401056851134809625417605741093553622284210921621325851093359829630158378516910066621703314208662227156531910437563936350523933513784508460081900577500306785797285928380749575694351235564158250416465073183290012010437312133310129614585945652149458799774173954987970135382438479239563225546274655964404886237888088725109532029018797167609340629082662282174141560987394133067972741139846178092151410655831255806727078437043175224860496860868846628643198431854540358488792809948879379974560474665863642013842282512322239276211952452842561432660085588924295146649965161769167029220160880734119794060443161885256110500191127105164342435773126920872676016118295240100129489210276374940689326587418362924196509586635814039577362581761471192027058155855788886735122857848321484476456750046084169341444600297349641470706102228751540335657896820870268190208815373794877337945811391604096885248370744848450853599486754274348108319663492285862103741787728717184129380028557479305258434025613086351870007895795658200942679573135391704688697435263101221303933821867604442919413251098331159796375260085650380598824170564076214681324807458444941609589940324546392633564014317594215277264518518410687362414015565016500793829872084281999263242407694192797221998974447083021129938782135007472562250476846002675341059147379004207807379024746923769454969494435615556506191059060844652370238826346448245572528414239545536487429070906832439472785742314758030801495153672624800431932658229978928845668463248843195171603296577864338862362215224918564110615931434457374580202969848630194203169007707694454397689416219466816140947649679190627474755663890576951167363976476700448361885864444461126984298468556477367325166611723268286088006085290255501360332221045604420897606641732463658788687364534710491701512659490740343654398863188066545710787508332527859590987670845966694152794334670944789969825240968330919395722286543998504325461702167555343153790851053558876085261461191938415070470120720676839983922816721984227954405601709636930007757559571733283736759268197212811508771644059743988560308210299650036690601582412107916276874065776750626919927964556788705878828534051346877425404235868029767445716767430974401684904622776214917961115944759523030337016895170247420331365433556950435638427678880711069783378420653141794627246427806634266069441151284325701186989377064012827446160001739196752316213540144621824494658760539463269504667905481729991730970507882505587846241420877306324708885894933917231182204960404905167795306225707715224073761897601046117635441525165552119140183968644901619607327208926140043954764672192245493110485414237785631809735670714745784936776776502813284957736058957292308097428445020814806690762351938458720472142442798321847669571358835225498482179442961990918320805085475469295930068659568532085686607851908541493386222988711428741445844500096171622356576966579035878661292523898218697749427515683832685376802059198392449396871465008873675762616128175575853680395329702542694287230441679596232160813422781563997847069852509863460203376931726357055892921651735694823871777537915639570370520829089358863012799181329188712768989271847367145704405710718587042061176119272239660118408879367071393991440855646918107899342344666976156869568218442626438770803286980072936875561668569708903833084988968028306461304372881116229359339225450753892924921545406011277500989489114974994292401212406707608105986400177375749950245902472824754509960803803249333211593884738524709186758630104180215519975838690079659228747319834730521605287303663780370977110655216661358108566979034538730621014545434461954994437679667449088899499375659928898298021227366329372909524850828819749286735305336912971844271638250071075693064481608111852770858887923436173202408123104030487928690057128270857517562809708754746009365856122077976729403761348888832890392018081572820052245252239681030294380131514386424398219509375288819202374165278010935217460563295800041186999073650842793061124682299088391939682731335613756019994380289586851383421096771866445233940061534284706898774708307446327209893749439404690340808171505953427602464712825075662221513290680170976329495936361848384069905975494730193090317238492171443310242950408258894511031370112689308576083526084455397755797557043755471649254632120443895679565923759213329763707067590225578873171362406723956244344894121247986578309186907759143657178544720521699718769734136402312538332414804497599077541631953564795328863567552834460096670097945366753438655756597463023375858091919822737111599228945551745087201722361527845903929020377781766621765817673492446064122917347708594831337257012828136472575705567226909305987156423348633713095501003577724843178732949409412375600398399281402314292196681997653577207795423196238064447578406988633725844397500977305857849043904574502393147297171350719822368248876806193899776792845152949623795035548160452316186326341812945846547468006554297635987700875456666185250818567837519630829364366663271778986498888593754966737107095916507849387562768407477138636057907413463097971271889580126859497001450042541176580413200051503475090386216227684522271442473809596605539744409179717142159219942245476387020797353392855038126890276189018543419292669742709591339658966546321227385843647069116884616971087204326219054515564097995534850228152280473756449221852014383949990562264896548186938458721316824291793359438906418050029560240437409575487825925163967075659846719333653258735225386210496005921260505884129932301065892908471154447298368382578191183727553772290310728341742153454717338660182697047805229381533025282501822860852068922964989636925812984334743842381729528033081904014037984768555478677446018273739632226973622195889125513644704746871496117879219271775122745930708984643557871151306446349812687748442961555452477366132157640234625621520667498618732643390708427659207145243991677026222305644008828466542777902032028876831799104089203768394826214814901518655360923138069027661152133408503521835416079794428715887972009205353031040658057626855914271673940558027573779373406588810163151708382318338152477560571861918843644899991879757577420946091204492159184136490604876892019869477268140420342499951066055678710539885570281298138488296557387414004608853954530697032706677033763365870317890236794733709737505527138341947679985474851962762839022846040145711142041360995245780072911024580809541253607300904431313889551960601576975316974522156563239254654093893958845222180289187942716324186130994864148010630343484187249255890684677736346942913816499023323446874100273438174467543100065043853393189416193290390428868871998888063927661937830227505772810677595708719322421345829733632080014487568090518066240475852663274816503742965049914920405830872623612551777183942610973586945742419888850863748121575410580762919606790599767556246627856939507947838602748169143723136791798890489621455796840151352812898869141851221181608085274688654037521517987588974602121863262082980026070879759806897731766589058754704901069190852064498954988316230063659422969797574123412369567993072781441980217392076935437125021766917358349076777458675224104713710164074632565548187910345662924957692832214284806539840612600013642060488394463512653663835103700240515707403438021749378276046964322944435618738542414246545624591135769298061318301672549604102033059884905218024119737802762643845152945413833312208669456104372324875565621842281637350545657951624875465499434935984707534646114587281107030448968494602344865108209661698125594696193444102256471648899669372586327785719227002188866176901805430272852114870566139434980840241142421029057869862736626927709867030810284701662448524471652842258525652209774921938105539440529109906549739376076985346654698790841699333274015359049395133925511560293211281098112701691793883129373760915052048447499056104233855450395097436781248695053941503826586740530567092008439188218739863713398769267005630205052009805246160134644033113251115854099940266449263910388019164115439686074346629262581939186570990287201552334026835936916435930070387654656764036144713661562005036608764087021565263872651766028750213223650033333043674161731147305803866842909654856622689081633235417922106425223036428740067127511981510469922661339380598101932754980004092524039572430773044720722449694585769063072313420644000538551719824448724874673956576485584700435491758040328175509378194984372017759964010220015702423577534393305956870167215190904874163799516778984166552753620090524202838808845828086845109250162648884735889356392729002563915586423451068323690324394840565747843386653564493723305830724284095499974705193411218428593264781992192115685329577115368730127559177346423342103527560049156730110452081962084128844830275476555376889295807045965701178122347453795168821260431194219450497433802108083887982644929641539558463532964283002369176053415125482989306789094667401175619415703552304420918847861006054297511025001568866268383382133104255694726401154228259812845807778570457116718760767646235457951417522208359691081253084587589540841364862200162120686377577926839123589642123374379014266193409623846112634164856530401175689769920626837620949713983027938842251406134320090233377640988876228114480797239080609415618213069109248395705731031114274698660805900033387792092599549525069837111761130806417303992875375805505369039188540785273331894191810903522573294196404624891339813665113138218053926403586313335783233611291726436984673731204737347132639967175280886168731857586872191908534444587205052729762485033726645369739823778340092034044843602368565915075612369087525360350203207406449788475729309269889299281555585249871546691014131002991383571117212912382721758819330814823861210214259234541002905063852995573531020148039294882765826307594495254676474484111737692404001807508162374287858002309717943408964790972504254892933272308395964185415796500852149036383363256642588611829714646502674295273635893101624539706672610426143844513055799967716229498213814423780909489343895433377748628155596044788602446980712576668762365120940029124251348432078320910409193222981657450749041722889840344057347398165465019671490549755929044388528163384154620819604291231005897631615944187918760309542017583383825653374164192135767956281694772939785503666619343327093468130500467595067536398349286307668326049431806684180219755485746675392239571908531757013033129844613157100843232905952380475467064074480789099625643015017830616191794123463118663260013888348881585515879850418564272985569886805468312920593232112669047191792154413109362294644306130711440176456020254387972377979315573548661970701289544546108170205504723729081199885110747753308133869205284909425309412933607831828460698497799866876136797082445658105809801123128270690401743781753167704341505951340534227437009492597272244931756882262808738365235397374235420735670423581229244844643225842313357926359049794023003333684562167543760135296342421127128604155240380794462902037629217786853176945670339687542771433840320320129661338349250403388946000788332327943655936588433566288428224310120674007396832211757402710729269954467939126783086045420682995184408429168897030507321868503802882460351502617624336864986046036680813471024862315102952885246122892964729785782285116354357157921594455961036098404397745378067887493941324470211199995200665893454466429739230245135362086233096813658681024191250655683550513354234776700246934884862891725534867751450719544954422041855217387981040402770127729893324394575102082524047990141740276128333107811621073615738806715380027825021461606690173718610137080259168827160211319593531515487332497476871930038525502229981539672549914140824965852066896344757886269588724813610985154843013424549426212824836492406907135062639862437753900001855335046007268768621598011804431682168985583557477508404011856182239093599805298964798649713849107312975560496810364614420734192520430687058089392752031640729041315464107613273291203711575356404358805211120585340329659029440297779889603708135488471141197062755493085225135606964989729792371348623549147329344033259291401054250278919076468865325903695521561848970989141609208379464716549766628474348940086353241247760833955357187710644112976255096145370723502180376552086028508081057983830567604200089248916101299540650283430951258497670901812070084902556390326349499787700750159555600840059102514205330012635887902969538589444250838478924320510792060640718104801010765661312682375711010970165598392967646496746586105264805053680656145744439492000091790573552893025889796411191011475633160500517002396289595969165390753639956831463482314775686634475546296042842473754049210714859747088541348306969029121382612419809039696190792084219181308002560226084385629174023256510084052456430216362658741597558415303837987327729038118868225668251843401542170394103516375761849950685350860812034551251159409012121495289220583779382178200720755804717130827837985033748450352760669551281071687731981683425812604897195784297940390700695810196506816864450449997749724841453791882572813236657887358750726335944772094787261079240848391214195353349366569785376790144871619409620967786496597114352868224734840492859108693302606701923433819134843421866124655902273391541001311119340685415342443146162763917042078315739919298856210898748056812171611476865278740732646563911797604405913751609203376342060482001176655925345633439602776672226662343254108673002883798618136487612218455540697864641603269564129702464649370672972430481526340351464099080353816886544992967231134111540267428376797293986401208153792060342729610367062884391044339643980281901364924370690230391063424287460959510762207872228197242865838254040401817949815693608612403939624777688061585098005099278196998503060205923400683123233348182540222213294938385447927581134236249323470019930997224886934042069481416798752581966084829190623167534387030934879455736120840886132639659896973409801924436282233823757550749384042461814977607662986985477440138416536204935511332984712152989910218878806091995472569350379791416050353711238066675469561292477402818856571230100160863608647988166231238887524848364344715569178750330166014852960215902136895890694355389568770098085291926271670734584922458039888689448893109632713914911361732277779549370241839807398556399256161377536299829881173630895603841376807393138714778956856787979065204016008809523482970532285341637421714116666430426407631147223088725314217944060829884186786603121558611977095043659742037420978926335181903746598019059478836030718537360113593903130507874965253722506294014687823379009846063161712386684604436271880421762286510246513366331459368857444060452996021005081684539135048037027721806545029104020076028173127521463617770005949777846491662904117994623392910943331006546028876330828977951284558801958820520732435729105230278486016960613162209470922059127497315481202728356145952499967001774110639484259602974060927162661620240793311220748070543985394135562709353447540366953141214884718115266294525917178815554647156826488594561961509379455661048412620421162166588566120469990806884522269345307347522767778766665655681497330179000011207000033087295264867275921302704250229605246168776916725073838455457717357955990620309423935016406372047449207158660623745382952371852962406864858687463312682232544680262169322988627629990933508501673669586570034045469235975441218249431440369658805460494756612309280125268164249939488715898133746360849558495624528984058572182827715075098035330665866129286396964405052359006270774808827843284460258334674287445559809228762163709658563256652599346654640664395591950626727764995766799607142676942245997397917020850449558953982820270217570071420071812931296512463996616955345810863926461795393986643033470225058511872725662376889375557429549317835189562446490400254663190343890779738306327578574436497123885614464168040045814967280623241157105798463120123520208902935070808250734694635502545246834196675139994805449058189802822914766208018189910345524248780889422926551452442481657622427510700358052615870846051169333720915896753139871102294712971806241150498680300445102591688111274368233933466536435894403013914866677692388100062305291429789943728677328393895756648176677328775416943581755725381566948587653111951518743856020834037357833051500528466928024805856730098447401142029730532644750191774114214022745040240070651704340003523886273435385535878214959085340893298377714913918935499851403920478935684797871569935219483057114831783675586954879135924089026190400450455258773998696405241990580233994388685770035079043795081901113840549116344040946520755167982235251601495913767453722827954356512219793346936321015117245756171134362820187679400081145050481667785367494952900253889842233548001434367350359696358749795110856478281153289364532990719813469230176415716701063574906684521643061203582051466059158181957594431931231673868543823551281170924238170575089416162679489590089199485140653779949288992653706529976862777151501694424659333135251766388967460260070379892966656051104948899253239689744663063699883072242920169409945596022166042859858884589450798862831042247570291501608220565522855479813963884139704880715405395389877705407415873540800149877658735606431866598620871571128662361229756929899421359442191984490632471161062968189584470655961959613683960652475885695726781172031496105212111094424794007004474485709510662824320862428913335754720316972259681128791108596375500012432510359257494185238611105598421606131644312115842144028527098924293873972021971902818403930184177263033024910878021156864535967685843837620578486124511681042288355044142929696351312542952207799408750626327054168891477192878979918390227294991944548915563011239654825424909281724344647176936874494304212214244286062783217853411572143800853778304169598865797173377075173892571650708158962506316982747715800550942849552236194689225647965125788895546145988398171285063909232367387473635586089281203001871626480592483813212876850563397029623867800623307771103317595329008303241219166243025070306354144497662355465072371727228661892644364541025145621029424868642363287807671617950719691296981713016238368229583068666607382675378111879317191330831723367951422526533327277466969864850591254325485815111020939539272864209746989706507567152561350749292768705035250795329941236570353263599719931889471364566408561619641387654371990125086972467691942043318127493521577671790354440916051110729803070407603508796101139844403943179481379722193398762798407143249985898432856008183735910744176257661726432725609834086415468717252131137079141250875547119702394534908887210939842305878622491695188816187965271580217163520458831211150340644081415767477193751147600254084785737676470527125814237927830727279451148945280521370218031052049166002409686372800614126827199049561250023073258201252145212530593329160913043601565338591720906076494523687522817101609170973449875941706892377688264068329511289215164533691195671850994710502243886367869797475694004656115782857116109586315786142176336107112860941556479997980326828586827304901916023791038565544659388169189664170917255172383117926404152730571417175885560040148968407691079393228156679978645647102052109897228859199287528164439801271773631761458860581793801655417407174232204567133877314238010361464071921821492071231691872003242080414521339719031294729686954047392576549646618698960703764041971263404201480579750159785333467107340884442825852682804577908587910120006048006036572485299969907063263484518679989934983862857890071812891837258716927206069772944016171538680425019278815344377455741649785964376680862607257115137678858631980010263768189010400398461526921491100619988368781519519910214471876556846908068314264891946422268359662557446801590759396303926128033105318955508739652692657133040970133153579441017165020193334105130562755798819635023294830567268393286971328725923036933073091292446746424751253427645166730912073738633875499066004077648413710123578625837019839894556288409270300986503239539572391303163223051753690068464494386321787915110581786831117932731627423358775418089264877295141426778952503305076144847146399694313657941883650612342986557304674088581599611358354724303856976335284513183932820443512128657230979383460573865659700797111479376487344036471687858759272543817598700502678980982841606853385253648546273430166684590575168067016681197225688221848116939597380328682896798479902646307760261771981602134527130964699137567887873503757987011015954367314208428050197562787971418435060014393795795387839578896618876620858724241156457135316105571756492070165899921897880738775405869119606838414558456932636643853396767130354778832451088684793858200576262859897590420918900033175484400227726274458640790253772856562698723984011009430094779257245544531836451145194250956909812680979883470905361583175511536999230769355256759659627636791706165148059038541437069359702081802221483458022693292615375783640590122973380965431540827972735323754103545070490673275260684076107720532298216151185415459763946526053464678838085410193762529593473392435003523251363544504376142026860971996649406795076716964254355382039810489705788838842357633122711249041924017000052634796296840253583422658867652890704243052883127834871188977438977316360666247305486454412666358826473480435137787758615871672593535536099313453352634096455089383155335620854257808141708118920292351159212984515221957576622587309478708116148597842139545459178109833619116043134362359674784024425193128688893124852284214011700224192481148216149803483073926618965404390215143298471270000865045524230108473690300931395312913616474414498606677449657266567883318784544670472244081991082905743876056565184202873452892929278738043079507872361096883672703159178809797846422674260887136544191392008088087035903540694378257791817880906583985544165554808888481067456772929318755071822204530571452624261174940739125944388117063845400617578349817313304740783973961980386041115737771840744215438733685691682641569331643102965551527300506732733788841096231839802689874743896275857731350163432947857976432718672409133790438721895954472557570396066843175977909233792733813383243818283350807216264113293358254278110643495602622744574278626215303386720565151793682123151315106663621246614942512380127482146876205473918316006339848303568839871930108927832306407219393599457050908694948279793395657636672343977909644314062106507761937226196521268471192909060369779819945877887325810161028999878956270566139644103322696114494721539989114516455122903467834030450783324564469939475445882876841213698282759152550733475499157002920781306743209396377609855745662758446187193794073463370988894360051685650541164806012045522209594565385634241092585901993224006792159334934255149939051607795993846822403929594063542545082174457809466939553092338224109867478240155258892738908231116967066786099981979895605116680488323343850256640299113529417620650427769728541565058244240575843095910286416822952752875616924412723742659765007342406111299910161442267284878833032354476488756739602731998347210631894057821787273275918624599876630402348973696304591931648545353443920832763828650071319148766440260123165577201632732444096917009220572837889865607227436486313065940944669504355932391003314115782252256193644118346325479076250978877813699383953877167174040888857936766135290959578167353423409742993329239064015557045221592987788688108092792049196374963390268562134553639021804154001116501653419580725169933898481650567279401194937609072253439030148580331163302116694659065548826484182972409074853307867786044713847516937654249116083597607829720437676799069842871160257199417334701176563308849339117022509187792100230108195464763124642701692853415872733778635418385594018576125419669337328849694063170416654502580185798965354689347835233947268909756263531882986795256590239567161978154175932177037122388179577667977331171256990927461811593530775495388157991980251164756666361115258974013294705798415877115215924467793998682536102578770316266753918545110752839443220608990054569434377228435975881608096562778020101767562511747777382724055748252358772064765882962326754069371670234339883523527249874496534113334941601824723855670779901887794715538513644392896334342590414811590702208040513448892597725019818687056802171250583766152745640927633192919873959107436338107313941792827181230827475334555754496688886028162384074840405594979348903241793830705197968963886240878834852218170517927136683702045367571865851155867865930991002601978669184293054367884829402588023758650036298815449955679696933361843950925147300687053313735970920670165896893479511427902424278877437435182353078714269706574816907764946543670126429508948901177693526686505814536396009976256400667616354795022193908520530852774859110959047589903786809995561540699797338041735374741726023991365309992559848014323250894159866454540461985116325222932774112834791918093084264809659156566880229113492915226182955901443339852971950357541082108658706355885831102205329064497452942666002488807209716393929148123458995928066961612942257561399412485742512829748746709285931115035233255280634326149497754106189366540512099798634430085075744798188620543448691910657809681995519193402087243979614375622649921699810977770184947421509656751901863550150309933870099622692305711813727222855391196723661283165480041421880098294815289774748102955019902635617734591990123497241585365305681912055346613808799932615572536468810054494946568423755065644222960243214966281073723951681905656739127328864905716446693308652683168869900266040899230775003544253681218746529174171412954410895901684064292233685140055903479741445431515349529782205272176829258564196702955852895955443681244023444922892978428819936396591283953551968253867183890616349946654588556156774243534270277970154114184970866286466507761343486934755929299391814293737331040195542921013684807796777146093941309661903492868670794276206601133435147817270570059182423860873614003647814260500561870463026517054412819352027568727353808043738412039752134697673906765462349428545857195434507000056314681441203136418674100256118002792029253396787471994072515012360870248005422508625881093627701483238199932371463466781397329263106398023875431189396718522181846483996370740200698624822935857309010896014708001687555992012373766043539223378752240507145434880616352073531867997835022239901402607644017857553228387923423036160813874665225228745908307288277120141697790945787524916767113716948932244957939680987145436011909292686597912100754204565541374572242066888109117212939702602769321777934759955429606060157717751769987261039106263083101970504407315183216606641766461240666293837593881790908711703518223100707641394951609848710317456085037728312158208875277445664157413999123616504014112595057527951651098050834788847349753856873176637029475314410884171089003550492971370009634598518621923381668314146159864477444989216553021271478016149727332183843671251153850651459138628163351478243342699859946734292695032766449128797526019079358918345569003873934379610019846309154285358791631347701353605282465661105379557773636725596761230494361958505607922369997700262644964742824781823265284455273096240952814743244733985162493037988092758560906502205964294410720191119033572119227955865843055626140839095035279474130456450026016737514629915559292010714741367032113052120014797825839967752883691981374050094133593056459891285282189219340108849764414327904889945992288183810723235755228523663378135526249443179961931113588498264361244395562568758376570331276853393335599317297399831374329911589321232545938520807940537737814737579020420998001491015873896479729702353198841805452393187085748706077507038363407701413708987022640603271601063711814456458072448542372115966599994901568550970658108767309045024608168490139559113845564227465674320036167450328472188946479642905668579682058663960151568180752146695089248249354323965450073048132640599265521403694692314587246692842558747596804040385180127520316740432776081701565013146222536146757612528301144411096671957818597063590008011048255401797351364700315976627288912951346414094176739048587575945207582525956241690856130789526961219072591538472882334850739925631052899293641414419697986284960122200841682820807754688440092707056298040953449288382615741198717086063213043683830190770399496799441809720381253435135487298249514035597679889600270441637491530000269108954591109672282478508414482511165789699649743379948432459544398849453328793142042461434597030881263765678237889247366781669053125348272832632010175912990315467177107833266612462798786060113483797026027473411478290766235459577913950988474114677152470250429287392838804613972009752704425026344720798385445317767459071642542702994392598695308372694022227223285160409996818877721321790900580796764699745242691682217020087501588391058561712474450415493825961566708360345396825501735069242865161586977814793613331858920196502582571579364221370772225510236448790240627346685705296904252904818341781087288383103301124672852189763230363023450037131385988367024660890510498930231169051041276036392738151431349249915064803660420285548875119571040058340908007057702366035781258060861037034632755071941100928653410541518449153863867353121760425985275074725742050145421970834321623569017550927063557720697688611382084028802867113216467148626890214926972486104631373394199027161034218667694740908263195112787117076887482727636138528601458667855167303487987471122227524545773513798260280124631046164013566805776075303442456041067312444677469937997011203012597807374223987385031624735473782893572761132147181287857603893657638313715588756567166067303397987792859847959239131712769342558712059255584548835774570405963034693788698090602689663098726371278507460938347664202459721121518085182403415732122828768775312803947350913533892154021547475803908995228385278420393094682058073410889762405856888043238340602562461337033362014882487544436103298346591473505976201095051108300453079739499988783301177851300572722455501255293221586829659729633758337743787012812172795378123430041736985856723314773963892955463149458360341746413255513772957316926736762338226508975851020738631085747027479426730017742242754545953361557904686588298700417213039154617210031392911578952659734422399825575826544969454103256326322464270786890215370312280442346927931832858849735016796873591300317756860465276531175432460659932100055997490999286491139270797676511767543656669624853103282477683942783311944124145911098070449821018554900377226007470920967346282516138634102143615587065748585377201351464560601541815183729902196740412214295265876766973126452014317315037443790694427933315704041979924650840065460172627255929448261986108281322378157913066314899724872725377221896278194790558034811042049034599948643900149611959076313779593790266210583949063891890798786991080276305235578366063442215244705400635980563472249344318745896910036556062951675091265773026123682139456376882293744046032298247336558829501049711979687812060443461913986516838360426991683022813062242990276471688269033477821216310763092670443613805396364466780214247308652276130901106087060169895013959975673331005177667192451152518638331892367788974728306928652639546099534084919640822712302098043132055685077158137395389542732756847437098618475473263915083740524598182809983302184235567849690369984817996162438657144921734819366985604364887206627516688875908627432206889850641975277931822784498234881749035143150653776661190311767309947095243639349195183005859923605244707518735539192695785252085696867896096056316632667718229101380103100132048177358855434970717204864056497829700058889705897773332294852914251632081458785735622612477175048336495519629567950615562449269556741608326740106838786901758420575330691643138525071280562386231766972956663429776320667913347107717834626191742527038427685642943250578871454659564590740583477811959931496182862762779914776270227157680685395715846440248502686405175117797280403651987272441897121914385070219037111745725782910696442772714852220295441896028810132051289871496203959524427279940748461175068331545827073466408121199104143848993301100218160416506101942685309734040890496766187304308698192046548479187234449548623526559603813918966733871897869974881707376037385837253946661092637335811581988145614287174195730883914637700609472983706351139453941951290033120967015891891171309884082648847937271675153108770430998438813251041422655267627703150206808728430882822335410228317843909349929685046960065435356580451990795658276432512623580508636981126738376679380679643198956365238876572038564293988693636509205150165015150247237685184630208303778433744344101721001373463697196285514727381171329120637517391708067575772057612793052636583151496249643148242295561282411102188410434422769361443121386829434375937511105686763028935878524804433428117818533836219533852241199131430889032052657860967388822911812839650971604148192688494921648443550530905600829483956577658366749570644935049809038682759131646312559569935651871238656164293398712335202522507551066533750439485747018658275811468004009069147584649761391891832214172729230854324953903508624948321858066425695539766747113548194100119303470735582597312315347413705206845427834176585934191941203786142792011401600135292925564964870325280487811536815118288338098133859495111256230891469596912399126728960472800189949511530712945715060379807147408604005666018490015502284073726363920822402477035271354655098924435168645232040644084399198943791083984681989963165507834750000570781113084708592640662825080675459533472634497959947800286086286224715599299980352840660685937520592031082086051295968975875223583182422093124464150367225536989706281462908977547547157173877929803941716794584479244266222192009901849191314714012367336133022967110890826258611944685260302631538093530772996047590729461941252231038057931766726689646414719636149500209944450517100063134193184977135990617287262047518777496693858810307756588670006123734456516205233792203372052554156822676259233591063589495643622220179171878257784597650934117770603394816139128554292396110625930513861276878345733736697417967700063509596180603205291405682282100925023675815132480130905841251738376088658972728295865037836669190440111468758389639568938258843483925845390970485122406816480381352728992431429781671441219938578033481712412300818255602606671000896718898160004447066371320763585304977788956203054202375092318543533280203541199732720524410621598225115582908350883916440067657786542877479168793410379200958786101880328268352044883584805207360867714047344231900379411097026476169853579914215285279704988404805717495803896330782802581850978845743246335384840268627761128248944080586268497616062478865733031684627410501261915125979622750896273964932293504813995654047528112691432183315641843929343041161247600572318872620400849016269207355601605071942940879548685151875908182884103891020645856806659386024304464242507964858639022940373878366203798142571164264627616999139856555959098916890966403092946890620943401743521233049844005982832758781381553703996578450206439527173776929329014504600034224011217255577340819192031713362224430830036269901066914297706151140046887650353102784252314047497582222316487475066187660313693653803734072275640114168855686872924807631717783774396371176161697918013539067949205957493529431410426010294602073016340331324183959273726507609008791458040127808334490383219115167437681285440082243984185308601421746598741642123508561232776702798355039871832960532094302140032866178573864727520010278100230795336313021314973248205885815326109013496807408050859640965851915761209045487899611559058679818359338361003533880115871030126108857539061675857531614218459249462773269717548993320726130214573381275398983522733502276992494067392215064637758859146466066462333767280369679242148642899161989759454130020183820110463980473415348678447335231333672612859579485400341625049226784974879076603734076434394233294388756093377118120600471723037943254644935952822856113137768471445948531743647613197590614533557075298523681938036895369665963090612218217719725871898458876352040370529400664534604058263422564582442173500211946663826038793687328434238750599011192118597593199006219613745230742713400324603754132154823783487663765295642720263576438294100041961073083129796334176808443947677600605046434348964450700470952280786061914701218291901088032351675918546988463651615463134074267621688814211602482627528819795663707722441822420831203252406385765031886083146907709203254705803058134640149299482406932812871376116213387417928948358471051085101008335367365266435884672951635241826996599187604374280251003874467761608635563708261040064839003299343359850622879082211984756562633170585707127826994959368744932391707995718465725396884864248695433778799190862095188695879204848523415850841739010288548425552916277407992723200122652331516099549936753790975677004000022966158920257619435633388131164330415585104592909110938674190904437401903433268685792371459506148589471173949315624602403234153360371067646925972216137058301555048022397544241477528539992922760772612104684757071523642524336637535906367984955745850066049645778659192793178688085450538844786926322949787637908263856354829761076222215595472206764007759910032632531692063774924356560242089712896764867334321000159892926003923408765139293741261288951425918305134349967851887373471518917034320964031681988698567663316845664169282753051261439160035591671959332153078740748601834848965811737395697042838861130818802040145242813380164515613346439698969955544413999229797618958623838384544810041462556341377655965408052791167592597327103315892290892979927099644288370994973867766698081163062153358266870386350478203922101939690453070370418401900941317187967740989594559046342920430135761323330955120526335114050586935234660352354982579899898422757882376511848494121098822254658007258068306732001381967732391578493169102620067981891518692121436046096836373328890439213214163421098265436995292901038113892704544591574901025036307906375676665046190689884184666347644381331732994141661510126404420209003518024003247055894428822955139237718465138580561707251677122403054673213451137330394075743933248722512110093586163764123436631704130104571907901156957359605325244872318007180704731546191441627596757779222702608529425977966462318764030611576250921811848651341278422961653069062364111402354632000432611466537789624962040556215994659196617403233887706210709736590038385647743735500933158912510837698848628979622917174331931463062466645080052804768823170543222055781024216422142356639589513867077560489296673154930116925510897714217736920283473293646046123965337431555077231881473988155867809419386960073846380921154665212489756254538402370339804224426480677413140900739432395604204300771925437184489614951934055634455452147144600216314931118819458999764945588491192743139363645976586807309773640708803530389130009926549132965658683159829053627131875603731590680172898122614061240155077749733270055712874013219294632002262218058873557400942602118540734536055170209571531712693201071180389896972180459393454405916882472138218370755019694551554422734935341677068585403988345422078495363869061913377363401844964879117011226090473983022810996915237167866480847328826027202253593285074180685575272805200334823341895780794830421977038676859311301858295762795395369933139221800487164785331259050450521289373219270256424046892622710813514891860712535589609300031594935030420359241344358870179408330307679649153390178623838158226024699332463498233897022581643254312883923897029579725901201873655643571246397259365994774225471765971305924979870415815809871405398223735907986659263999440148253365169464965544244546054575252302392566109158196862452906471895450879142745112573021842662698640289758029299374519286412601207250137460088485072616101547168780981956029331019616210950424343660251944604074831234537051693774041233378027896880281561929514416286736757858274004502092930204161325358469965078964536346680988993076921801420547070917550943560246926121336862955525681451653305636941234632588559168237760779549644300499236046063435936039722887541765680912409495754151140450000944297224974729757374960899104030135273421925403040538572967532578225724411536830094447556605282831503648079155797866945375840952632777837492239293950220004757411230200227564207826754261199779277291509198371872059217514026954937006409067886213978164023672818953442892113115572962579587054426314395542889620429140240870369630758356432245892704810041032845329793238599841724573403294534639621506411140054737808704621853340922894116097488709936682967517451839739126604069020315689313891537961601565220164391942310532018802540073052471254346281429342917975591903480459431392380085938453138511374531993957899229663250811856771774989267804324108296683215617787929468712843020812427269944377249691379186169761329079738582395862680162218246711824224008271594436404888340958951655291557695617285001586251221400876948881289568264300556119473009621449070283638001088880749815789732077808192292483729426626564184148044511644989784840013433225163409487050454315243348534552314335755503375843891626989132721051140610455071366808812259855404370421399531719882166752103054765960981156597930325355544774348402960323830773739195997909472612872747450920767376753159535220989221599154134073133111257050549463715959110949188532151834068860019376881971740313962762932905312485316535333176877722334451304295093398168828669053785405498339870361082125753949414477860217038973732146449929545284006482098083023747981938205301316173327874124466715645486089902998903437277563189125120680412327049494857327464535403439295439504822712819041200162999060826262600807377850516489667186666099917032115176148064486038529623319523119061835841006118692425585304991073721677490477725300402196644197807230165910804178730952040275217240041616443856079051102140593782446454562830343992982348250070152890956429714019619371893069254290117525186870640922626288075248374367151322630009741714871342296334226545818544649817892733704932751652662368919341059575480290380731126071693728573058509948955433722281818988989654552646949280266654028035170878107688467967347616117056337812842420693452805718997518361072942083361420042052308472142548445284350314336878737557814231256179352875927946266913114243224999385043414753143922638270688754036454624292253465055502941467885897733333445653874598438873116369065516033147199068631139610122684584946150009823014846628042397855937941475903700188171438835659419296431996397223650560168488774838159002920761630217072195520511146796543238441516159236491925054406983077418558645243466690031431624817770751093599113248799834251676750080393621305667313196095604739663587892886883253216766874109362905395973310053629287337356021025923753016173407428220373588065984757125643947526485559018118290747330774169768736254857501865520751600998261924825297537551298048538194086206566380751782211624341710789905295204747040920926064352228266994839004375494419544829781697746612305671879402065706643624105727587503296443486807104826768393024710735866018827668279497026997284943309294689125560249664693680947596123600567627387008348288286619029127385902670094766536264464185278787733290409299288029151977406822090832307353701156245603424914987046740097004063806222560247538569055954307603059415404786230136970812948950530213083821041173390213038649770349462292469333332431814114681166712465696936421019915525055162069513288501926823097355522512711594656913928860381902771097694809654268279389097662843855928045931267020101691500787756721422648110745306224909679908906235886251404053633463252427136522624390209542454699670859024192626287145445703606602004466734906175515024006957867832900364058304883211534395838369822751350476547883648466689806213192709485556738383417052882167860772700401448934059675335546201862971785198845425732261066602624617448419649912138406552581983193054573887560654940836943167375956812642560861511986312011058847222484341688269582107036295224919266446754637738738686536425699658795533711401093458735825494721616169236088136670457709489626097677774516503091886763119637567225347629690090108418610174464827714026291624187954900622474343494942481656900291430298886858956014416476482547920309466039497771923786698233537987972545713490483305075516353157786087072851742612862806348574605962491164438381929194251975017618183369900458878800632682486053303740320634151957818503398667115997240691901704775058317472664659474493998503826609712055215381785287418701531506381070057612268876613277367813070302106480119447453149926335862711040003559539668234604777477175651093441100296824806288266653727790229571145627817826006703316113945967767303331464150548624727206692780912882241595680655085499366122390041931499681193174333451432279642534460186660981675200112795336900466937418412729942126047349009141208678145280589274071655469117667066157582201429921852101413982838725326792246659485016937668798760002456057749002471359205180098312037221625681645024827531119803935219100863973699169268569411814599449932870514290151463616574017649293060126506139061464584071004078013144411409206603056103113717832124957279984313972646218639687674743126657886088680211767176145392824174054411770964378488081228901162421534219106785247655810753247296366146380634365745872772845558241336513744928467092657830294541022136444125247233061907715076129336638087246627721557247365646534879384736758482880533745322380366669799714711397124938360401466118865162980889173229185197102869412103549356021811886682398525373641753055956465165015157176435839417508053589108011917829851501580247679717721607012167313688387937585507707763496838738096966065973698826187202634969388264653988216624444898720451838405357050180397161413365983974348390491913224043668876406558861972899344413663597601407631982668996213533325076468705757069624924419497140133461337497496322563744171751926077183752888259294271470692343334035628988156899682512171957249426490935105752943806998471407695542974024125812809553527979114766594976261605761923378212751757309015548317578914385635665041238290361782709919701114216824073386739182063023354877135000255800254401011311158438381959725704927863083081836065831518721911749726985970245491642011371307744954640829177187623705876290056744007008640179309393206630926265325510967057003898175532675056017734476065090719552684134968121204673036691668391271700180804170556154761406319542185967394377464178582619656381453375913315988032440290029947752117163677317811922913335067021353387016444234707200348137621645064156302010033669548866879711992567388672092998442597223111357001847076465849962236585986367539895435299160004674344083952925785973135174592414149395438815926087827540088876567139033757634962560976958394630671943937829327230323392721362129518998429266970767606341987062078235487811092914095126318276535258827010215393311963707559418753468090901855793829289787188804208602171229372106394937651342417512510545722863144934464397883639235245647607604259953437224994452742422277392301204379531633238587420452175727774869803096137997891442534245076000639827078372217296862300061419475216837585780360926798054943740799845620756302507745902569647428959596109191682288472451266190311278207794759803450829925661366678428021119719448245342876981134803333240195478996675088694128620748306026956913932295599712017114342317803182101804715263697952167106778199321572163652254404694296855544403323181039743397277196188069760529129638228789355812477131997443169940413751612905240706431669930068299118635631553844046089382880939674366856321175904076010736682105335369102918505160608069601475052299909651841160342549349137792308877314066100342819061341690518096104385795376703572325532590394280926983005775856801936371880436947494896993307539468369690044705390695068579820325750433154598347642256457061027611196110576790675093133021557679946585219708570421087146132934392096723310745119065879513622866147804498305453935179956006385376051302001312714744838763320513498425400901946805022515517387145753321992072031035321912519223656066055503323194898718770748577009616163648330307381788905427398245164551148886128819398956352197516354734407477338379274915075251089792893740381190973931830361558118529214728476711006863514584096954231249013516632476663239108862267253358194433806272445068334438718296286576655611424401817434806522134115432827139834830840437685921583073716465220435727927625574786961095295169975190076299467681684384825713280699652760566710694974090996284804405020750613482230621879901996744382509864668564690675127369915136959495544501350589547734045393879947304914863110696571192257692012466171339479394876638922093284415796700338934570892712613120599607334060917956299513890270787276050130084377869589035135835962557302379052742012380278223296064428397201812156050418782914939449359096275158687645505620302454608293197178646090247462136312253861453650357235918327196833297398710405403198985870070794752147738379906795010241774199904408325693229482492796877328178260197979548421957076544281537010289060595645396506835082130302328137888815733534258413217352339692039825380725847874487144173998402095160361847136180273488687560650773953933579460516645825965795990179575654866338553262032528680885408379933846477730594751616902049200431950304012352662673676299323296441852377429512657292379197762986253662857646577702817235853404348217051819150797765677962117371352374641737587656369562392816305155659861486239620618155842556737648464752557634535097101009567753956565041802330590924317701828876308710078170629262385589250648313237790107691151033396153393011964152199478412534013137038324560965822025588677052936564789027366794119606950870821923575468417647106750794698130455761531620707512544123901380647314402004977506700729341211888885527474740633993721046467720244672569733351128973261028129026461333177378812771420510463547310312256262314307081237076290273617426967934591262941554132398286096075262122624895401588859723416878139105584651603613233524435415983422605740190459457145200094513517027832917307967097428835268379799806920485279199037165539390159347850042038247809790771226017870464866025094891841545698704224449847787432958979154871112936323499865235167031673043086367642272230536842146661657734196821691735166393290036997099137674293012067485166430255304413742876546067147903262226698309429656837055277712065606950675653765447813197922323213012184734485414362581405320268420005988264664359937831779548190408501440608068430830357551320615848243586601609081025958067766816524297909089619273980246388746686753277223810435479217247774377006186164327632172360598206717472377827266683038052628870343807279711836169542879474991874774901108642077227634585907008126497199479707389942444112401281272205988277106593252734838048645954221150645090115603264472931860822043199511093603340793466010284339823494418027913198335096905823395674701321150384991451025210140077449992878824114789408830149979336267742384896163900090244607080209718952333710245691834079075502367986963585377703688391748636694296507964831354911230907577394119255361332374931703906361940096193139370283843716438253675272731386027950860228405009693591780934142325626149575891450580131933470872014328853439299800602025713430721420702409347874449251955523319670667741246698468168751852918767988632623028062890987922301900363960379192258759977580575822603700361010351295618730507709470072602297322391939351970759811205249459861414060749673507146694975874228907896487223626996921672249284024232968932480143011074440463825703926112532534768274275422969599340687119357863014385151230156872070885950305347945378191233472472942636039821419791050569277575030987563688938380670031187844227722414777283700673955763129369950125337005748958082048205817434611393569460549311033809704827870820968938142124131556882946932240736007678464668951172345849135827455512194125819796497930137199774886327728078068313226663926811281782779244093976496139763270650219525595431613557253718205273603452265682316988026818265364311690109057274694233752180515014868520827878504208657788135527159380871779273992030634016352662038504663448721603028764808283221294742698453321380339099605490072488345203849996303036858736010443050339557352819384157983517255400676169248879690424134131230980981741460995903256041714671360755921757917028423015114036337724354036001436088390382674942314029792966451946447486466489056597239727558230091750855158744828847454248758522743212432564668079495362149625738776816453015160889822691741276543602490334275025641952530597348736581191127530466462850844518713104973066680143207610171538234160784714143554914533618148884661911098733818134033841214124022676981860647605678224393832167802378408345624926806245309042793011151475360131600218314771024630155052587506792865650103389368318252838538451101504209374282619899550968580797288211869167251504403485251434702295700357970348626061616446087392678043589878191644231708698738767014034917317587348208666001631549562234693739191427080217222983472169219303476036016393747188916198602654654434498739251941824790232033796302460598219256839360910328548178805037868244608839842645121644740328288803871932755931707268308101743911684325986195070588677464677220537522358360939854454857892151109425046012431615177566934668185529561703014824278010911900589205098411978747109529324198416318155485181090892816620457234211169511449358032645266190101991384401623867217631176965804868709184496359598938002848250954210797441868276485868198992944596119457132382905963666879523654261595138912614740298145656925358853675616084274638189634219036046170618596691098979099614335149730603470749692215466357323740295518498168724603243133908700108710793126308934135941165581817509880921330585128193486383426547947696770518458666191729452759214275125848889040004870259419339456462710350265485823368626296704424572685287169448279915763341079021310146015544538601694019853018392073805070643366750790611204194366600247382469627637652061082263484558329386141270264782461388977012244213038394335800416700951204176174390971234925459977589903990066340361689841173458073678281208893218602297724534325841839084275990778051782507084507567081626105745810818943990750351680800543322823902274888547391915525580987130827979827205738659660598758775865315231946281255577122280812029190777828652203918316794429006954281826908673099371270094253308480780215713430304693749877064273503990449285137333551161930973452438056384721471276939655832143250139337219327124971731305611915844439461359302655781236469929274793313245009280597257322782747688633894460271925922798606029146818353347494189069069804409679576604529412038021735435886365192791956907905366570905769279162278874480499369854706478769157560528232603653025225723262628297264052745266085134175821570188943527640822016631039432253573333287297617406565655243563972181885091864174965674284385585833619415807328621724093546582065888280861947448662935798329864416089007800123645310901205762557779343529028512642290281875234866567535754782574128533129714720818964401098787737871750316182817801262134599172442818680423791719144299416739656319022664112464904352411200971396638140505995375490115799113667537210418421328940496860324971866517115865505328269664163396158619700034024119471286618406048083907740699831511964299842887204996107839789185243108973523185474149192110179459668953408564717077223154133167231489988552092177118771812817606618981341321563235913661982302736191730073526326170091519585952104316163000530750852837080997083538244414372686132870962947899365043863479265363784637629244850903381748916956406713357640988981314046349937211822774653819267969110817111091077898535724507735925161115565011173048940799310539375168651008840429101114694397790178598575672334464082153427377261890691957427855113166338387421279569643721608124939217638901343236566565846311908622988661536023548741752560746852238066232842747580138427514471456853146448904074482631079569950558591695445086777105002668772541757279281058434790419081582316778844964989455547430178654477427173688701015151595117021278199221312932591069117849392317940341498363694432131219693620132726335681843853152673100252589325014547160179852160112181212898767391205028155764919936497191355400212624149144701935266979120900923483425971001049394801126211033290712460891309242503732048253890756229730481029545769618027154985125676850368202140522955561667346841443830896326431874914768463546423769298090715318804206321962342488528483967703763495404028676209368049079281472553492939989645836024865830609307346727143359623762850310394551155475103290231193759121364328731462878136380048664937454717030545734925164880099027723464447456387808798047806495787992300125813239340524234212340429958316294801984624875067538839140964867807136314566679900714927756620708707823301806175245354325338122631088832441978780861500921994686289008159842597157037607170290726002127523280175004432090738337988400409394262941423896288765857225418444361703130848622206787610787215030445920628360623713245454901104910172407690252805421572138716868349042900992428497953560511615273094364210422496311321951936026324554594370964824748195456732543746624076440987449661961417304535799564987613749151079062503277461347886530692581143677523464819516817080072833217556603572163736868678805471529516944363808937396287509471964806240720134414113488972636767052651732120971284768664044636729003654209103067127962131995729510590011416112312663889010268513824596513990515662167104434026772089378841191065338824400029022894801503012014892748593765113549826094239732938733438856447515180383123950068007802216153177494817557618422730380534273111322627948747688294257333722731050238789032780197204360105373774320542355364903409812113032365190476528245333197314430814947435799685483278585037263109178362690074261326676224063004489908183966894960855560022433553437505945540888919382122419155049662751294390332216879941888274768794504064168409185594235664741424624203552051483128970977514909920977325096031738430925998352062541888838111800679192701026032430573535564478531338816694212735351303552432376933854190628598924126591622415862128161263212490966504074637430985229627247639754864923934253297747364776859958808856597095120612931865681177786126650899508553234218688811987929324834787840722058872787779189739080727749715315084364042092292945799729419684884066873342214634445632702190341106173613369669986196439908217598760798482107759212189761647573669629744181327704873582386190762056341939401294779554674394768639356295606716446770469762188736460504975276674788547212940937050091038892714653336015583003949672461138174732915743802942654180720399377861862040318669341870698995926813355384285711428138837139242658864567158464755217032955872436734508604931067962305008253208274147400483481747089651470445320349106312016523421477523808768091358755165632557794329912390682100044109000530552230547991533527914246299493402937785307238027024264175728656966106482987430673496345587261480544512079500468067776808410745406433733973946221769680157267047737891490226137986791532445951582277815768615758534416027361350028083610779625497696095803516085574827206124274505707921581214962062810159311438217797837174813101715550248996991344137619670430556750303084718531373628085213519289199620698405013846184905932021838001793581547298363911461988470588806213193784929320775844642142536589851119186611868457196341942254936841990078023351819131078491056710911968075504025434409436503808434764673053449640692137555121100512164173487067968040392088471686997012335823751878492348809545099661953289901253382012623472172788553547775634722310344323918655828679485046618459948151213579462500791532275437419809259448172401153363504936647320134568242707184219192431443028300296055147640066951161752324988049461998005683361408387403185604251792759679075430806882552632791478516998214653185821751458194151953909898055747446656247823260600415132768510856403724564985414484460456585761418970531383807227058067879735026373982679627043464311716596940453683020176076401939751135538575713303284725492553443556337344600645389562191215915960342850548615867416385717066295477014787963420300748941354882010708516844763372923795324585037401066080251087732898674957168492499928005456467286422120514508484121879872438034120445892073709153033135558698606111450732585076817367000829169288311878602918529463062548797993795903229928674241492884020080180808053186705916612159394405341748989723529139754160412592060101513544241833342184117678994832958680312801598102935766740404442715417138744141588603915818249260456993559866819039373184825856334020502293752050002392642109707952180739563601958151541137346838493172753924414742313857496362478899375079242472189293952524329925083371924023947768682295014232382125224713358861161125490462838944777347666456238435376058207559703970309401950068109719385215741342438642740122441776789868278734450556312962969503189671479433889727398663665286697901524404185047492783767056937190817159624322157794650470780887402900195748977431345609420257558506787102422304999365083243195264232841617081267971073649176441769486646250960778912426383415049070905429973091536121983506632320305927674873131683895255593960039092009777161400977497032639676615359879189586607711242877290424043671921503240062674675097977423384269780199971901741351656024116528496557221000716438592549376272416766639541302510384111512420707652628981506498776943738908845098161910553280100905522939438585986682338314910949047757167184987483990728566566355766690194179870371308224105447939357016435137921396727394912665891330162575670152143455626074692968264137079918351121537630917120605936805625200925157573317905368554586290069343843865492213343457412410555573258540441481663053691228893840282593081987192806460256971869654534873935852248202679968034101233631515223346548412516499014992751225113267994908648663528648865023728086922273853188666546449441562591099511407541024109621529855015918407037194060511523793784367950800078690174284249561278502000430257788935552881324029368775612583560327941508970661334041978835508295000075036458431771238737346641750087707369374525840102921111478110621812588357380587570758491604570492174842316547751113429755183491962645899288945467224922837608354195170717167840028138429290600437130387692809810963873563753171057849705773729937720856343480407025341437081445039050595036609974483154964106330751774884445648104904535921139581327344463783583487738605316834125588647749433893626036594349324457442403630039784115362184917198231101586633050378057896416260015878415578147473675627433039630102605721788670871300823454747892824148193369325410683102189080219925540319850471772533667429344033420066100204742470043146723266953321781068116491094968230279534873988829832497158927020805196640578502537087460579342724966247140889145206337191751502458765988956649985976302791353387799405068879987025531127311541746331703967656256491624342584351107435225947823655618033512043091725744773718711598778956463443766611905334762336551244920218031305704856919135570774616979563223294806322901997117788880855478629820660420129510012119382388667432332524791064810064604606310692496087848506858602934405587669022537561606633089116072504547775798554039680868362051841821514654651903124230043389041690946334663244014005853825310100838742951697524744384644708171818640443857602967555037087378448992076010463480137982293650292514199195765218685172570534176384193542905965460777377661363995607114777494646326292021301891628654847828926996915264275535602468921147776748086617826612834143852340014830121387292820650233964150959639546581804018714254543024922485705265744724889554011187453434387042345319843521692223453568485095145200774590157812396166258776718527973299115290773509112949798829942313043602520624714159605939409884924029878490106585925768692542822931990320024729406638123098979919386302297479427198312059407893014211667125809941156154370561646065444219440212255210977235186357719924567247503623068247618966607609605579102404537660782577802955162974223885197385768479572133151578387734610973704863878827292642419288194293626811637620704482155580866428820259570818060081225519653491518551999155685381420406176933589661185072148239846988444007994631079636331388028880414171804185315948342681706970876734567824363283792555849506591241906838378559298817981976439760342293741040838020623276389909913769064002003483383344816545779029591131118037911671725310690929311300480110751657096945536851810060708163513116153923912501149780992861780666178689987552792458993200782313220773075495032489867120498708293994236331547440358926056988910012644422212770302894287578338934326786638250903673440658164689247255637583581604315397431633224694111593313490181712345695179078192461623155484843314667043811355905136229267171061642378362249277730015247760787821834535078568354982091532915467535727185756976631567095637014953284522224783935012532675872989452279835540086602014656162737188592398945416315690400085811769286111593191283407627723303118738677978631533008568029038865063695596784351766670169465779643778066199303015236163447263625967846892421213097243985167438604392865996429701025159914505842655570294903478639468790750639593084710716691174205684879803328198323090313489627630376534050652488287653201391183992241251189275512230625174931774310427494126454908720985614874121252756040692339041035727702557599493178750406807912037877234950568397222981334957303397934436673332088982500170913149252088655601091324790040265018061351631076281740140432275909500518639752394599680891911621849862404957773583091951687709959184218449275522425880494652260238608142569217642166645914587173704337372186903711635771358474858652565478817906266519352444957163958169433623087791803622603078846094797456244792904454186369413069978490383189998071715568604008029503186388126436506294090730105746504420313618851190840800334126067452616172582775515817023764215967639189001993392375175883430169144538312424271423779381636073953760703873939170375973447900690758227756762324344721306182583869354116089943281076334100533874281182316527278390399114477061202047185097475221775997683036295211305990220748303869570355057398067742142072663725792329832497426281995385842214341322217934405674733923583698010311792720095722171391666232065458098951818537633209430390836502857620674508499466559819810394643870357256688312125107092008720875432715474651463951648589913832975782997741024980284904209973289027762094186116887669282448544834139991628115067833954789084813918910152651836069193608755332749708656125475114769759985671123181256518000668133818307054510833087392938909021866223770817951297314397106492672381331795903692463465070156142860201979734012624191394684098894469395239787852168809853666372513845681624450173474580601643447263475073028623882093061254132080981839172885569065986828712928566190695674681203910309579718588671116406500024618262462876570145406214709756172313684176366007762718634050687416782587877149889907762262596506565334288448431813269336293745334154550624158905878906060743193424362791232030828551417800318850737869515444336376756774114316641676374426077172922338868155465075670961248524741884085319483496772540842199666653588043451939802238128196997469615604634158570458491534484893068756489104234115947922749214056518623141296565704038040132467993425167323502242910982494786303645680068578861567968359890947246296929425939176656382652564440542061058406993885868188332214947946569770717351632915245654040349237135496285472004277527038775817974123723671056926563754184244802421875720385461990578415788376664161708107442852874877049385157530819596845698783292318611228558445001737046046181425071136866441271260737677331366792818473057998130954137240657241350091677164980329422586509475757959054353851775063806281906121041257588066556891773481814944324661484385776634620849266445852414156620148846126380930931539967097388101949813228009934488862653554266181190870595375445204379882022028639210649009542253295654967592313946972246765352697174749342220606867885284637750166862740351155002885045599563631763036437745451930641880591076483849224593850227612586337213289356865800716548457757400528160603978362523508876697335520190187559931516359094666231776831919205187069048642254683159423766953286501792202368557615748260857632601285534166714045663076119778777825386178424014901160265712153062421297988374978686260890668925526984874739847190537486348643214581475491242475637535030572592177780755976459482264809811521306651836219680994085729075608295918142694776958865738625687341913530112915660189777836831322077102413698488302877820240377592647462046297131684606205506871842134362814873226429500316113471754642605460590532586149276008402755613131546405367197901225549843526002939689586602504267156843711787919359157311740125117396787363020975000937863782710442907182195115831765048224789510275913106720933299626096898862772841690113489199998342236988538743501167431724358806999310021798001271094171079647648715422905602300771135994642589936871787729193271471922401636966995814340027810558552708728760605699937338939823574176059295861046497451269519612861839030892429273751607319547238527237079600679417279552808649603895470184502901028229362291229311443205877384510336002460037232264388504365478623678072764357112251140716254671817790273848413179120493570932916933199010175351760232579643572463799260472518821499594533974841734822591185952553347272219425795826148045863902808063112448576348199950806990325060081258864646269497829115678972207866195662706985152071634683350310198400046090438274755474065583795284671224803895139576000564501145107457833135051453093144723566239405708000370200526445937468455929671386276683176283447405934592900666858611367506036392178978934866613437426645119224736791769362450865680871802224999664931522722262619540854186929197168133984632872592431235547242828407521198388216302706990857926065469246180645461246473242085650304376518857533277813566523928532090746839537628080235400459344316269050302396128017787386446544579553486182714086969399135500250222641192294092305700521821195468055546846136962418825099739653436653073651807499978620106622605021378220887364389465377113104749274046237825970708495776460612610343119613179155147639998727548382982921961651740597779529620279047849731700941681016470479083207296170054100656615171173022045961321555878562434313165218998228056365339640363667385281739413020406135836549015185717175143932311502583603488150518448719173705759617657888003299374470741370299130763031773620935522902586888187014854158943790665799639911080525741960500761094691400762475697454829339275432030406383942382612996617622230596045368053354729578878704067994222780820736322292500293743130009871842665470896143133659041905528885610833798220410183087490699262268720479899401121775059610894928255802603101111969370922218222076960082773430007905056602150915518448200172908138008947944669650294327008307638757935458782641312175686002147248153345618408055344483296088912942388820653366048094071001045804473740788092158037044532136762228191019701477550166476897331995926395540578159522770252154507798287504979990499387263788444533889959973709275483844469811824910299375015452639000586550498546912160246018291218289915399193025301273879393741741074210317396189936251570891589873327783982036204023111490995733027317266704757756971284258646558217607494319900956204752244505043985908430326353812740829424009056498732460580970470436416970771431756496918512420501032536088010823955160262045784746228095688733824601990273774774501173074458893333062737386406355505482993945739596521141811452443881590309129928437771630631513686937882118815170339902322577522252032156736256819487121250017788688935621884389420578274964989559738481850578683644667849673927704499595968062144911259371142063786977469461667637957490790562306149958466648931418920734569105605375137829023765026332016457158445810388628170827636031889464613910172184006643461291793271743160367169582638721926864349000772039869051118829085256774848486100296882781798437602663736179877097503806303145454320715842826067730972703413024183227550204400084387878605089868049436684529651572987398193649474894010446838901880698505747497205117012978794582226637015505430433549359398668737757483394131879412695280523050178514406252086200679054733912301332694843453141339386887185335525751364532244121716070304428193583385075260371425361740616534941574869321687748992878362676517296304530412137880575713862018593816618133811524299431787309762392281495779897461657270368714366294377139262057047539352755091265147171134333579843943341612647137251003434132145155168508583164030822769717613411278440669393817727241509426263644255461809609718878805934310962871031026142023528942062079863560334336670725148915252933915600889326471436203497991225978464679140257240223368559037885387514258432920506223716951354804274735070006227991181662723229451249403111585080627589079918023767077210771223721734245638431642475322900968450474200694351612399560559295492262189394908348490079444281561776023482931391406091837566358859670446540856217804260975861946493189858031182929467398512502049761581694823961018575781462999601406949425659785880542171358815256508338577286379307193918246126565308954747439811388050406842329742432977741896747749486732845457335835834307313858255174168359913833867163654831181724981871531488015839457071342033713201903142691652621723459697719785156483937024638347157618675044473102115666011078214066328236225229216721134213990321775020913506456033471492103598469873574522157239136449212142672381499081784971177504044661354921061833975901007747021850717791470397037707998681136328579888753579115890980280569858508888882756559566514197275931513072751989468419116557863143073924138691001165373579556620461173544506884614320491905012254785614280307552830601423615894349565857931032170796968957973885193594117561692485414516326251519537807777345531011288234036737732464788390247528144013045955766791625922511137027786761710176078988473918386289690739403642852104495283309051330276281743973795205671005955181450368381020374911863285114181843071580825649159003418720464603463432479562696479127798878190993188123184428173138083962149705886246129931035432997928413322749159078882481838203964374894152714350587483107003380451988492252420769701753210093474857074768976476623069794569263363848223590257820338014000772056204009943782719791373926345075824155108713377824558898448878028020023044627631520301256311557847262126280614155008518218451428305958261311919452941863572111523324128036599573260534576797920524548610872868258265694957521675809897090677974508134826548016859617699544571647768753872044564303492872610253566969313075458942097379067161660254628428001624626029423961868409799364440381657232777361733792663828007128559483014764411650351146040776286240427166723351390139543549918663754791098778437409852537636901716200893946535023648064714693649715056669212078126998750096990288339411840217442242822899035283340943823786382870231070380842469699596196738641845231724606097092399431072774186059455363592766654214615631978450672877659036824877227312709534447625393140624811062055876080820354695065931013091896296189071222309774912672919553484050424221899558372603352218369829072896700909655262010140367102147991933057526358650127679199946273117408021797712982609276091948754981272109228344116553724300873276596050155556943234808804050136509500641137336840403429960674133608227844362569014558652103094183264763085616175371577413992586264550463391967393473151149862833651694502783850466124489568245525944137158447267292945669330692399401923221868355377001848337960260375320451756104890830249877281627883468429774383070878420859461493782348263652457294259851804726959001580687520992950535987212835120556211607684956533016152859840350925872989426593596154947359175504787384773938856092003377002316804426490374748339272925960900345980912216462702766528720240788201704568493209411243959358748546158134520633437948591244324879710996064764063465148760676111345899993050407108147662266909218671739309577992641802782351519918974664271704451407749409579093095188156817157182405309558677429015695729864880145531983799028421743418887613006853330170148991539217628707129733479896279417019153240087511266124218710872807200724614188120458681220094653706944572564201106032286468088781775597371262055904378751028157982415773382027386982377695754562472299837823614074888477484821213620839626720603248505721716407323080457201730288266983527377695022646401929398402882149102409948709713279930830571145595265393018264720823166230808891225486214342804460006386755925344320832707708899153481033469723860350894899802000231364895062179915157839052181018510676216308716132584728709385544309077361885517055873402776943298014394166574052166311325007536712360945008824796697969108069361932591435645797624628486021024262140151172174213913651023298238954329878981451050227154128519391341533787274818131103642666265742438270629888427222714620357823868026820924446437469070463548054429483458745504501265926081965190120475425581991316060634907547184611369144944479928895786524398894168705521924886217096846473589132551075604726206620925936585099826762418567300832029460574507882034567557324912722188125310033304155551663077247132307382238854383179346732195957876994672377162574770516888253183788521963743715770176494531063911179861758340479475888402070688834506915124968108843394651991647299130441634845256646511546612000836452199950474476745086587613802176044913879168667783486790144296522681451944406184141163727880625357363771244988235569593275132130634411979890321677647340710523717954196931567385448206527568997414429514405686770033495821600730985569599215894775857917071619332944773059536309914247265254344525044754191256233548660309753399473800686628757106929361101038059880173240846771318771513778615881520595899778301878551663978139625708399425855149000656180762242991369082148520284819221118426371884811037014298743377980713372598866371994167927514024281099155228035003826223144362813001274557831801223675118518166284281184457364839018457789549624569429722817729786101557772157004222513493743126251329225995314493878885643100761883715986972542563363777709165614481635463820148322355713865566966956362291395824548639480648784699182227971142833764006344646264926503837360215384555575287380501129176513375248963285457495179777962925140474282517667961290895300301770345240215105114129194760744661378122556833086432120064257952633916191184281350663161434070984101672998258970550730916200603956175466675752055536634433330724343507961706594703297112153002757465633193218630000902829724944378664698967252334096794105946568669956457819618944219694292904624819650411637458895325833463538017829127408373340364469239284033091725280869379459834684636927874788494327351209474785343922844987905508731908232351821183858901501908111173671712058103731108343463456274363871570573879188911696208436514119470555537286491109787716746388994217848736105192554080128263602928430320668105435708493016235716322663267998903227187865596438602946182646328897930697613701600810517016266783879334047769682742061941289006657708369638780665224432457332719295760619160657722119697021498770302995540296709291118784919808586536157311926817359875375226988804957632973153421380926529843617974322301841392470592813129349990981143575277207763908171306651681775516788439920622434967900734714594680585197049194598736814244512300198283058199784254703100205920430567335757113603668594435957675489180315608782540576682959667318127134425425654714394850264177780974582337287868725458007454783956956153577071494862545648639955440278756300183713595786576112179909105709424545971587198088775656629745741067186875919885691353369627260080625476050330573380839300209402021227233699224507999346617735950213657610472346983402441464463769596820270281062004322598035459694602419204382816566606120884375985440702481111199323390536422571085359541215426525554677807004809502042198260283766068148364402732563991540109404915492041366808966400654361481131181029173292110152386674278688562319129756001455870865822241620702615494315416112461751660911736196888700501415867289592721681748104255413150537045049715781316290602168105906933525298571320574216320382141770140316396557403127955954071540139508654212056315261187621217523306747606305616237165877408948177603287224507500954510799290379587947167082047047824727149216349031792149759746163979914506016735185210322839210529077828779459573147235010174424753221458059340746762045415999575534498603811260987895759684446978457997773327321912588138614063463520026365874072709118795913505686910072779858597173921999699268154513154594239423836518159252564486032810019698262625531452228620832262783083755958424549549290516899239473781626715484052769053699732003073487788199025571897686732850440720234566071817975928292538290381427213221620797421598976621690191751365296272312002340310821661044363059130132574679892465693696905419888642032335542672756105142903911798351419444792913294396462536149045622448297649967979734357482647600943543994704698918811335458773989097121377378176382521920415776701957224012440171957559316458640918101119039332916007818756227264141394462619385539610202856016162165879760663332177214295808470119618211120571922864178150459231774955796204027020212630858610963797296652887052957849204367966435043126785393410685925864316455591020191316931482006408867839643579161376109334972947424277257236719605347781151986414609979007206445227459541480579704503498123197358268794410512285474739234334489302952089293447499841092944486651051694049542865826771739733950915804464938487277234436091030053115224314129488323937046779495492897092307529578331482159517710071039759265448993417407223008720868337798122736846184965865035082364671388199541590076686519117196039356188737633024842636020648871496837153855173529594588368057010290771895976103691845920939929504800115222244130812692136460080155010515985260578531684423246917771089771596228796206212652345807772159887771174428754142845341681974057614705817519505363119618455236753033827768868389937045599095085723574574635377634575554234654653549649808478295283400457333977153843226970480144362115436552302479256453635393991589916301401682439092264048163056375068453987947995867863466571904856454558126149589541163637247631572107242328410542469715892967941748961964362951757982324885239536818671125375441478168621359790048995541873210315409998261844364606946958037646080944135859241044081927854270355490451473170483741618053486392652480119638413303288019528889628439621350986519100311301753426734776663122761172514977029474868076100943998155642239961910005138751118625938323021436247245238867320874262576617510855543970173927444620435739858805999678777295744290359994576046617830431059784538657730305074342218441392577479646127683287836385270551547363308311785451163348641568949949337457804705770441110864434317051068934630620566878992029412544362390346935195531750035484214830856475104188666385587281493481290138568850378441279345489050379949524106481828218359510114831838520638314384331997920810961197713463118826711060088676845343681895387135093810103992810189931062858580910783402140567576331575441438871804351652729644279429269106595171591574988673301721096964175433335729115807177008393156247133744194419994695237727236392642013836374340729787055090798636309969031064514911667461620214569210325464614873099167985256969280297735608685440019429665263902470602300519715783441907455284782629858887024217172015225763336440857912329670574361320883692928417323165026710323272565454614876221062299300691781738217852012392619191065624594068251015122322508584756842722701835595920081933004514386258757540329474425603251927851329007950892142009754703176242108550068598756149353075067124986648661538573992697414988396400363111116251925086771806789185357536352119243673182792113023609086847558669034882693459006560147523791810691387077780985407128813783601819736615034679607792263024145754681132166097631716472336379299677653914008954971777447988097583246867268733795455338387641525663318386337329117853391620095777436725163014293339189681922624563167364474610127495408264388336111379452371236883810394371843309586911558580928498829802775047328342069919074226299364874248208487380454871718020384481390547656660526056389049581251353636602491731767310006513946321492180150945902287662548483414843259075907727171843869636360496293973896118449355640186735203399951553711406143987009024221053520881096453906066745277713819478428653505332576982434143909247419939567715098306981737574165965556789833450051704482895586440873527452634044537663720132268525671766379795613859294387379766833881732284621403262436234610709090198216459345042561199320443646172116956997262494509730355155323333565889730952923041191357776993018293935571573165713602278908328325794063408436835372951399299500311311965260823270986966353823299282553634572918895824715490544193245797824916804787963913522543121438263465036741209087239285070719725435806591638049848577998876855143793862269607223363119285018299427871899314105193600083039834264093264301312158612784929388344037618432472317615061644819158990621942700142359337406686866809170091478255881821581172612934749092508637306939612235585069749017255540362680034413578402770068298970076104514353739660692934018633619150654880582749193487019319515125137461107532817688633201001616969108868343932633278780080525099635858995740050545614746925975210927874640253427019419082270447210568321306286753711685494870985358143364139290757283606361773999413830326485739233352737045831870964704502245425053301163941038548882562973877397011702157128484974433367717275036908323096351009597505815631726989767015928012751946447393050319570931586966371202042136706895484475900852360347501190102447148391022090066227764549975441031661405757332864917230174121559776609459526164496864211093493418191657215686353322632708213132053611136072937606851889563825055840408454555322976576070103856240065252081014846719484405360216225953122068864191903404940204358154559015646345439922227379401406881677728203127660713539750804100570474180218620959282795883931534352691779707936019710509268341268430360335485165754354394376898834309073704046867296119369143832139963892056107970934027741298585695560898648787355321182314318259457611920957600803187256938243144990839982905375997789321069542617226696872629399937358449267953524921506031131937036072842188768554618444610527223951766193107650032263177267503909972784582654949189568034637607632794978841483265076775311742477891838650591984496180538133831016467368373297594583032308739378489778836960893484367541168773372796520205161148404062841719358780600465336069599632736983695047288045259680097517827087680945375328451514675727076005393082511846693523179023122741352429882704393350854603400763735464163979043012240495240775944588571586683386406323826515866162795061457314494224901558153318124064748856786396310516612745374007484377619771509371186800566889446886309263294336928287937635685579975304251353133795790104836154384018296717522136452922350838679763353389672351450059637503929748656274386499074334962065163606783929950529247196931249205952251348648914602462263127195410510777533875504989462029867647365445611950784302126000629483259148022559177201076231494247037573644197037626967704395540416561848850098188523723990233160592948417880489600362071122457133182864845856254461383271159430105347626151880492501176150894314408498529039232269025949357336890952725072245685965761888289916951190836135033775706673297461809224457121049552474464882796131318433363046742249662444762394097962416403247235357489603673465142603351973462774027337950256947154112203957343113362504380296726445498387511749144608933941512350970097336195449948677686322086931153121203211217516272354878662426906271248432622284814808032387063413056068659946531841976779811654677618862175970105601916526895632480414063934072935688644743560630086686883459924852351570214717968363767008848784048132495025894953459814939247969536093765728593554411060190435516756704595883808361689779020458682502575737840168921443850839801222728432650287827095577591431895533219652508611059083273169043393046444215729489946084388767605324705854043921031823163717439544956823516407364542819304596203554223377308875980573708353397201596889579890713805541428836464012172035019582994232204057690137119710282453967028529646506965154676666126431670688672998368370251555178649322611319310684696878106715914755653419709605442052301665749554585824633318819106341445599022240060160831098112872923786998998514476600157033305492129427127792899482770075090637799124647316676915576444973788423135118604586631671584670884430410901919937516839941570661007139212912868847033512174484216803206700217836242992674028685115681798880723774482292290360907177529837337292513102755371716326143355929692986215176138152116600891314757069122602685797341037338893016518592872617711787199175418181750004772228508358902995690612228654046699829045062398035837407539391854797321553144452402577616667092714129681195967894073599261539711592075278581392488837939242111611888761634694305013806684920348871502115362304286531351009376880809776773765116352669192434529280237341985414386841331435459495731695881746759499278123557044091932149116811021034513311806203689326368367358758941216517298339330606089783072328899600490892155095770797503566115270434403797576113500889918403346259145549829654189784637674826038692646073774559405611024400620992626654613180050445086734346574351634908151925272360741743523789113972206147774582725725766515586229891429365498199843720283322580465955913208899328768365123025365222101246672161227429221085095126899590629230787812292809382844203869724193331025455662160397132885935296386956100922502984202954883717899889176834886348537661290269201499429953605954190760280979765490872006655794680341766707770807198941173045783520302504520501229231006190215258226876599051564547000766458692511630587906103351184104144657118199908210918964839637894133886712105357223481546101090690700586719573966517361983684222225066603196806868707235148813109665819410070335522696616778078890392153471928617650150091497843173087888514136457568071990789273372548316780394503836332192999660417285342521996016936410996690358269274788298042796115306668280432500599901047238525521567909337515433753128990405571736062852711943541735343553779411280480293601822163091483121007056009752404456768939632354038887207586919666309285344529540996942371687360795642179770835617957383792230032032745068155331914639135964636500549005735511637531940958294350009572437041444636275096360727212651568180745747860755605298655836773933489609362718573464627937334747908113880925131997372540023235473488007788839151155933426659800258222800697837679156240499320011224334575972861240698390131287667256901221651140674983444071935762962838795954999960727241091957318411250827102524134938050425265986510932475468964639714910213051767115665062165713333276804861391424180633819986562086682007457679158677568060993937469644429771440603047724433833802538250006360808925730822305809802176971096140125655258200443370748768542190515635444762831003291836593403261589499375769847742700150140743168205211119819867195241677563540101010556996657932423343771446020927031479358537477613970496281494258041382217267699395002106039706745703774285447648219943611167206933077473554027359321686672478083195998567863329846760810333742479529216584118374009956254806487479179444856915801644767223434900427572907440395935970684221887677306900089789548325040135324209695662616372558067691477894359001852657796933509370646493243528438696402171771488052363498462896096690928927221530679573115314419101934256847343379708897584039334637839621818777387364069764225877224249241371719336262656828564988931133976470495610002111670261802168308557300114553223909642949236582574853734994049285817906134897137551041717305128060863239471376858675528429074991439508315242956396229052167214916471800567754940917192195140627112252603235926890187298149293943622923816754815715836633590895095265940727663906692504321251506295927503055911711115841337472755378829509200699642755166161024061641520271695323871998856150414599920253901929284376789556979583429716896540182198004871846070377317425099821235837540648937740337470736648482051702066925053504677553714136679497603386348717135780143536294729191323492769609633573712072744277695238956951747042938070504381708652427705326763310472418364607887176894959419468510157702128771185666521396007074143070285713913314168854084912531637906391913841219969165361195455361466949655029137708601307756711614181859002341996902786184252324532149210326979503475264310898400294968892013950988059155917106131527764569964443154405997435314012190394111737764379262306929902701748347576587894434922345403689262534956830908362711798494885498068086729854064241982659955545370750177772758195571567992782842208696812486247385262145833416895211361494940309389363527776215453037735291651481259857979546127859153026502886649664068294583795480599176251863440487038036558519203371624761417023979327690942134375918286387695545368280886704948996231985197037590635819283754756170350378679805926294417962048555008750035897168327402944432721886843870025708373330071164641342894229619132092370990188404796885082634385196753362140129856731930963305928989245548974530357754263082280487599802219584874595606962350779705411466003128540282842148622269174648107382077444601269046740386868096964922863936585760756504705226393741683699672544473538343675302367403419191501773626585040834265797797075470063340160179374785208229934216606380645206206449279875363105671185889959537638748320874180662569111588584849940633129759938184680831860370574590815064395435735542184346787553329781570973609669581533784719818373250289832073725619607960693698658806870304314672342908161153476886262667339054960676971613066851309086392488247583730766879262529178519656652193724788106340232715037183777473986378734812982460448520666636513665328716271574217825244566545126991409259600786904172113705072579467469322155249458295121128269527283622281187051167988616799998321561154698367615438102678961265514915623141325759880227748384129826444854433240213848903026091453520993732400913082031616062963779686792508305102792535927949071708528692109132250432069408549162259734568259311026396939073716333837514015777096411431842764927721471490892195466238850741370539693175734665344109766319970731264732654811482890558673881594926774305989183916193521769828445798509979854153970531086880216424428734879981528569784747185298529239541099502248006445971947170496090011067824091246865835274218654215474910674818669388342742588371052721516064149859460199470548657880674682238286755323841198819536671315205768898519009426247375835704086394419109570605527058414242318637754182536110248063215859911374737721534354963773152350233728383692438488211440518302306051784233751709013226333135054445772975437699063451084014423052596381190721056742850636803606159060032147289691064628106228793789277390141190414662910729127138578345958465512084263461598720380456485676364852007765448939193229866090444189141397148314058769403936960393996824537046145251043981937565247652035182619028023954520357994172756915263130625785028874958921230652542644672737145699639461029944874445439420245767756383742487531520226744043530239513194384329072062381155117491834977805343904136566971178202161849490426606266202635937985688209184227731201967860414617716120338300175756607012932244207705066354315268320496461992254839262990314271969965062220711720522930388338358882198402853341826717308767823139900129332715123495111395343518760318705921595144876978001613687162033697983474500651683387707624160190569875951397083374967576148988772737945947763631255515524526156957131283622894012369765896325796264872283360478006371432367443090460621366015397810284507707484670457646950882194996202893981469395320659083523110825347753403053234153324529272261658869954350236242548585301944324838181192446131679846809288607918475231412693360684370698989240406398106428627666608697910042903016617612467852902332468918307017898439296500874047383974522143924204814090481992171487510958688130722189277263239678010748825513322644933387462179286317859005083221249862755555449412743720852057727148250788880504747744855338096812116489177436728120110208121725815344101330444183690348524317892590817431055428798282673175132223650994361441902180784194592567573598883009249091295401785299994509078693687305985651340992078105970292389956636287996619698720063335438862456287296031358256594179041370884316346974716589909288441572532074817549715110753760324891117149916672307234359346870261823414546244007066107918951658897916197785390816902945753330541558854646732047602514128885962040449812266242223542542580817758152163606062804982193973785268862835931588224493876520061642632372669874341505565987679131036526544874816492811542171701131589107023948610490286525685989624696018949835049488711106066894052515759484663044695288065283165428463336817956430845701721235002641356208777852811957954157019950895584271254528962314616239012797101467179545751897906929798428824750944270489515904463753076918676047579765078647445522544575549247020645125723621737910695009584670307973873708231282167190817960040945009512649360394237906624407934554363254428823081940852998871529345246439141275488383590624254233010696624894269794432049514854058352201448624266393402072558057387605246428399081706001594884759912721494930912220643068381681969864593004172365796635013119270236362180536078256546179176883451652144425910910480508883276329393178091015714213435279467297332224318918853884801648903091212626730311500901743356386559898444582701509527127966783184553802073718236171663950200988846102050629525731426563151950849576657940650086894998834245485835850547871311879632372067477417823323271264495951820173537398708202750850300303744485376104794441445009873700830731917671456131447230513155568380778539565818213110205322932261768216663064043591920044804554880809983342265410541905587727162859235902520244779844234756941918871231505915164615517727639257897105855243318593032889947898282709159566125499306619559177845809725689928074835796999348878358205549898191493857460963235777760916323779917776220717155887748706708776037536174922711657903526785578438742717989226937012546481087664285757940679359797644410868021633772933415794457015364356676221658794124232585622349918692695545991610959080964150148173486245064764418219232683045310104700565341660783528768037962636847722112825735101388289180145069646008578965304416297088192693292009735844470825878582914755601532460053090052010413730206115675634109178958788297326095977531675202120642914530200272633808765262061549497178254407242428608311841864854546410069133670304863478499387580942485642427721923258263628285383727636193065578700407243244171013268497654815250221073334450867197318475038473518097694680820913851485452285884254739105218216612210732141863411736867704431610155153702990075672605408130630160533215450935611361336916782992253731246751942404410664049479156130300007866215919215235647661283710883871465780944484611387485425539640099800890796070134742586029242460112213795770213841884919046387755018342201788378270198115641060014595693540635125910071771804351815189710292886572548527615421109155574079810172450031605495864562474090257788689930831859211786812079920396202581420344779675618903255915676550215866512521147863532020877405211862109104311389670814123231708476654132800062139004952860299506620685932137528533905136370664390543643386685894785366279855620067213132504201052698850912482383987565644834908134637169378845049625367036060246109749021806589036939706223055696920403212629751338098531777577990279623607704117024372407086615956431888852921122428604342400695030045854339903734917051952630707418367490335380840757648265456467545264368346371348293304637104502619024853814095341054610133837156543011728653869123589030217820977054979552269084435224197617098863904347560921311578229270787638162523415704655736905416759949347498581695816639722781135712757950027761238101496582287131213258689020239144245042499492471384548083663715352911652993617785289200580326021163193101312355919592554614182476935573149899679387879409859970109339741049792203019652149250197617377247966220675252208879507141322582441242813525014587404447217916314698648496173162053815042823391534622878537865913207206028341703381730464757084195086857518991732896658719384382408863535618217950673099153418228994899409950651703943993328726053760539733739785056787525498283894610280228519327201005878177967821223268873566723547504738698160260996646400472332326554734801328682291715248893032623145542236566678419911395770807410720452695780617299908480968317371990482400503302923765428678778085778477205292143317902633414049916071785433259042497562490650028424771682477113247075105234016800108883704466134303350921406801916142383247009070204675150368855381259014597046458474554799098738508182355604321124633081712557638896081329886911498803464404805326925840416030891846859390255866287054082664784143500992457740333625625052219529988566980634203737042729919098831024285967956077218458397472807266208024321070886999709603257161092690168429146309298062227534775766432985485176153385676669514558033319883933840235291621017236231295710379967398997220400279264414573629918209255146905188044195947874449698225334760015263055656741282111656564466559778157767437842688768318187898668844238809364741200557815335114378989924827319659589373116295051741359240024700563456585075496463170199574946683953528611792156477618039031652312715753259726883602406482569330354687247067603533158810032448848990115866035293811545022074675156313828395271415348135151556443430620543319442969247149348398333898636844771409063177303792013544356950688257622418485163854607784757696146742630225644126352822667299755811131591105189077577935303448131934809502027152076478059520818226917401159759256955233709390841575905679236410525535240091360260805636250485645782440009043758674699430267720304767049935394733091556531620839088129912250567751159338483323735227030682215647504078392433403750564462869045167473437256734282876747710677111397883136096778789238811009158616063002881062307498921833208810059091951099511488556837281360081893519105752246534025226326484245949758521343747336530233883802596972417711348239326170577618220033229194751263642537033520475669607986329316995690391096224446609816513654592246295620682983198577920234111557448970317859778275986937450052037698486409750134333929495865171112497564831489194495107985744422110380156369703641912771952070919583384093316989863500492323641944648288545371455403707884811539855161016671940412686693924229822395210260156027668205526743910851486263702357307285085708952224682460458941485102333288568792674266241440970951426711539999064345242260934023477183252538512626793120014447715159598485160078305797483254029067469617008628316555060452310191620330732100982530681868931491841053495987415740945415451464818062284304407453037913023706851984462210267456575825852049580094559240451772964923405449970703042302925281096337591397674949045494878294351294406920979949021140149982638349810119958835251687819589867506943134240378391849742103945165559832457690714607130060933537501185477415804399884354172817945178449461951926283862290250711465188347275564212164916527843529784983108531973218118878087811953164021154286086959949662341702041225988251637495572194281617000118200492458254400387419884418098360001595567492959410888662853225748516400476910362954112783588189667099480420097312141285920217144885221188311982140796316285298350697590972556472401585483384313010325318111415610192088792308763582910416605818564304128297480042654542976496669906745501368240427719547546575304096538534386343600628740388087809857008038177547467848222751721483031885149964929702279391295068947809348674890483729226647279321369448163832677471251692944945397415957617541049817688889310385232533789736704232592181749057137624120746612591503475150464979820902340489685814520550429656854823038748061267313692468969835728285064129135853418376522683111779747628722176312328306778247045878132669245399415656350194351883492876714057752679433965387959932130278647419939671046991611016428724690451781834880431772036471703597790581036521204825606334149306665100140988459934765371787186939669518427313264421298690441628071154449080639348791887073785789798952719647441811954988480975787167929181387758239549654721188765789851678836081996553430698701330885291700445709859698596690447318939024960326327811280424320230973487704522541187989004907566444351275429494530962625364431849752391025938299050527277191689039826729960940551247011334972848399486697642144350563933917319383933778233960143327047234171785143797554470700387118836673568885609184919132321718697612957595874903662751356200908112263345650161339690312205911112482336858262132587142970827172148494190745887913794860965568815414608066710875278057788759376778408682050510013589384716174571259781750020201049730759779816544615513095129254596628346409587210829926655083942652416883766530945478072341358730628486351931731482209002914019080254546673432287982939800480265949069046596841597200733094294661216101950084969382272770042297764095971618918327725993434934874398081235338390393427112258576276428114566173883026952056698898366923460511519505063513829195997685140618423644109510490262291650773330540458394943058847709583963868975127712222499428898906881500384429124341123652506812486995093638113316026382625100328992682216876361079672274212775560141461519870423737222159206067121398435009790843878376879497172198360609942736266277827836854933270234916843001476036114981509311605059613388384901315318201789767261305782804719826538356089378775003352392809993636099338360045885388920821353281858513918505692933409273882196149714076110146071429769920871944214209720857450313522204881879070944474046189130248728131170214681811974611095281783886844987031921655580649457787030725124644354775485094137303209768249421617910113191120455317682120274877366849205252572070044447183806568038545799802791283136583716289653198849545288772612645727661065494149437900671556257667558715350731910784268731332991126706156139946288436743960141712327768990723162663305590333968520151722769423147020764402221345694273064233681852256975378516716900511131958963432896528583704997016507185594696158521350940223453592688961265197128975716838701730923047743624342799279923220534087734766512196213185903803659300960022121353100079576960286157994925476701156222240193923864750764260939358660135773172670227763705470120001118786909004723787969819696918429266996984036871309876449716696313995377335228035954176706383824306051157524752736458405500071191055673913780922826402392225905416091713080895748804023633594701215900962076973106521510385581204658033415929648299722897729213716187143817032230199095530153672237942539638756450344312187293375182279982372047801490024362434746747025802844042298165437644465674891299502111230581928692612040124360453767969341077920215452411543960352144186697222465024351094352545575336679615553868746176100686832601527021472565763079237927795286143631605869100275774111898332815263910879777601665676099864871211438310123222124230396667741903122136062752550510139744622255869744648835024498904319480945061094597675418714767372154816930050402361357099639524737707723148092329403369715024620876156429054570829338063080133886598335921724995951891612759338232048262546837990315265217992646569236715818305845498604364803640711376967733533294167698416374658136262519837009796712236135721217341319771853585059279268532862216351856673195671096068464576550816500544635429767556408666027160786395733767503084039633855872397868269210545095774701061836048515301931954249618126464509974864161774978123625288237923244569879245014357666564685724124712875609015008001547283835619054609740606061637466448593669287277936001679139329346457165734281207420985830486334433419973526935977221855172919508120973837163274598129847573508577644523150548192328932469792074197082410481619546166328713867526994645853374379178142978223269571171888069640821992983582858772957612062027329044444938808192552249075687009655606231757674035687530250062896777496275590287943919482192674111408528496602677405797025948758530770648109816646349024562310243617094016690084297356585414084862075154985447837061773816568250161094322640554672210850225842473928530859558605663865043437064031170743796012953199994486591385216382080038842755360533206690918866311551495907166481119585654284303237297712448160250697833362822481703906997371300529923809291397487945095322128958238509839133944541105607258948186877931116408173170810419780932591717853945792967627771308041368594587859200119086741199090406284204735917293827715052758341303738895853901661434831778933420384994833308205337751662188051623900275813367137416078341340924059341844682474386157233848934329454827907001654986145655659013220415921040610620037494566639063757155108941569013166259092527342611987771972072165273014442537406805888119292198480538640236870172903440386469511278962131557064987270304985131580304210871581102635953711446978887905454305174018137880842225266463358401093353522930376775226836317051460840278428513630336095402963924289470804132085516899269949731066061565038223392843014470820866689301621892769801712589174236498630132344254629122446227553510206104680308230819864477885049146786120996241320367139692089493761871018100619087430373668082348969641937814191564651838706898151884191534357245682440714386193310007979867863367119889190132349780946420226392816177976294920322781028450099526292966117904513760817594048365116905212602689092442087455618400827324741298380122545916588300604332977424665247763790225995056410573366616223265715096505111825865418185739106766209438524933978676932669994575979483809704270456232941824414272234357546304615725418110298884512150649850773381934378441279819838318388413597086393980138518355969852644374126155873832247808865399708381348611200870208150195170515269800531781481869830489966717039361743754719258459457777349182437535962683391525306899220175681656983189068587864992281887484327393797427783311715960030159723825532455199757662787140781567184514089613527055838130058536925010734620067689550033114003943450204754346317400433341589079636389761772773764396208365783656935590360417274829459681625731726393551010242057559750498830737621593393917443201740852826585588649567712862404083760540230869089360020536552340347904354715148719910018403075213388203945398878113857917035853488807738429789201888446228860682744018686649570073763860311692762685361195483045114785964035565645229527276361220167883830552907022261946537095450268705230498986334805086610443130700153851601507818472276252921302427785487254559745335676878911507573694092518648941135773444033879487702033772688929574872825588651508782571360410028803998864943097440206396185980478344411535050807579943620873103820501212858764412711264391009885474356563458771720850350701060179824298543334430193628800990690837611954185666351518131397313793915900127574528292201401011516321991160560993479092611006270761334337110892644415953876192901080530429877419763217257095842975312553327755933779839475388804320453136324760221651738418480047336502248136261993602028826114948077334049226050085125850628076869260399441721198522320777364057299448741452633673471642444814221203827139434400877155951056243753609154414999294515808263181346815310583576066337498379485231213964305575911958809979172039619900611206560036460318397703566982792876587219822694630542990816655801452563073511993587961955443038480916492672181350608822532920854742211597674783357311993349289826614072404155779431579945449386039704962510342633204729034113167835955239830680348349842181897949931206201147136173755746764316546098106877202812368861757018180277023605352263443514444147821009813208697937810576158653924497179786615322125262381659865813743882449454706331256128696425672353393214752961864220587484403183105250323012747782475306363673511703357802374513961024903729289681982747469193236859130260206641266547793519386057854957158328222184064115195092179508531132553964948883089112591489869102198423083340782357506711696138304878837105240561506949431495474415647253015174575138226205984034430057514107691990841862303003380037066818300368491988101848425887620467761960418442197457813829387768970193107285398729120228609195540758868372696842198138334876311077812581292894655306583021476910271126906739638264629076609760863901854802995939145933729855628224497058404522209521840563297889155770443440268667266370677359930747820422074827982755387824296502020965713861027126390192576161826231105847639248208318624031411578031204442579724838096252195335945632048201631525816558141932946977992661525543097817017038590795856269510258632000645906351358677464203966799972320903817600461794691491172231871685260121799735903874126714423001595762912875579440359609400689764855416742458934630868041455208986025632785339287177894740477012225258538596476622955020349149212633769107807525066792824249239544621345704986289414507485586674060423417591589382981783773876868184995995348541976366730784519923100880208455806683999451796040193750747487962024191205871738953925708047274885432783772813970380401019639966665423164514336740314719050636879369610430121735103237873187321030593201311768916745400173060239324155864611070923478619095342406731919827828047086845332962621497986497273391301142235737880894329872625539200816212976280903777557619109999483626634899619376068350812710845755827978440525996848206476882034044563233560534911490168568745954139527884628431435420306945385946208997153129861534575451665785171451881255499336062896184276746665368610028837648675102340735821385275648349164207672376034340056667425446560546587988055905353446845108304106756530576381212560103499275713297754922219254737293132390498998499426379715057160317088226099822499009331835157674652482512341506393870586726443566049372601417671251985624072308641127595361427582281825832925774411120256163586060726818447411374221463806905585463126630433350219685726892133503384619969145952484183289992249106004642896036377631837707120088143225531756770158437832109875832299945942009271967978159482204762280679759800036476614674782235345957346417398641004434296250370667888751320990165448947448494089323296604894619678445947275678265343345076753801520515849216878211008996090671963505995402195615477424527597868870591266415093161097491370021978517322179522984693282999436527243484800570920732718050283226571461544446499219524561887138567496676201244062792026124767936047201242002037086319124888602617780389104561419146661037491147602563915951763423925205037575477032823770221281426442208426893656726482288938788935712649282081874742168744247346614047901126994619372144556622973124919254392311879097837851238522096148379737110761040266598038261401360248977843996527275721561498205619640113346343687582867481829955035240960738399314596961535619290879737066502769178548119455756071174135320054819743416456800804447713259888732158872449792812335150856985224365632241638692931739930082129381019119046118589124487192498048068920252648498278968999414428250032302999116637582544334447152023676027470981077700133906356670247866714423558081045811506997493295997152444340060764045151755321461774981631519934270098909132247703666993924664120338084799880199774027343537146385517171937738232723947575923579194305877976566758275207398895173392669366035388063544572677462366471744932723275902708271133695739312668633754816684352931869872611586427034814237077942299992556267831272388237982671369875435033696299939997948598919778741658841045746037839521327172194753401506818085052425620787076830715675470209689266341227693165719501126940587588871076431101966888153768251603752188354416575333230861543140724449113907991964408619772192457483189082895405184191742247660323763729666537232606569482973192697555058145436656825526712089270180028763170611733730308786385150171050696647706251846006198876527265200363583914793857847286704236529766564083516223345867042619219045829199530259580838680423005154858493096468488501942803605147975374957872565226263215513325293723085978860107657937851686167072777216821508885359900829987442104812323761315973537988133204654290784756546167048904658114543747928254645506129233136002417452671150372451235109641021591239113297477974685216274036930859995421855554666801877358446770125813059824469486996494942091991045289000714106233696813046793706772747470127282785126230019852812404240406631292443863669302954064121761562386649095283758896274664034027925422226278304998933943196425094514087794669177546077958383758037605575737836711379847162993359129957391167855258011921758983712487298943643510869067352839374510897399889824925948814499427318288558263200975173691755573523876717333212637690801870394932232084862605548196113486884983301404310566805432328931286191559101839312173500767522782304883816011757696410228268440603211299942116976062495730596655088446869314309676196892026664552398863852742347671007705471014798499678313373954011644277829123098013027274610857683735922982634247776486892673676056306702735756772838008522500983882921150660042464597702260715385067161402408287210128069066646091136586413847863543902358882572569167939850100088526101716883970977891550543707788874240547325715676555496445200455998834597186808572502818704374485786321149865606658224082916506313206296439151138876953300524151231491043313175555956366956999273482835277632291635920261597031921582023376070594111885454107581264427500267515210452462041773190322703513579313957261918822839859221917187779598462832081778770776825987868385223107216614344127612060029353576023800235183061197102927017987814900437655228574382002760910390512540222570594315134366380358386945239893478987956348802564150848416986935308656317307168697525765283107358127903829912040371140279361938100638047909963138137410033060636876190554961927079070773639362530249306398416509773258960261000266245507187139954210517429363099731990111157063108676184189948625362166799002799199870240049005026256964113777639581685257710709691782524224607900774686762529636961312078608120015220869861539263347229265842038336868516179548105343408728319076655275496714188962425393335609976198537257437577644777028125945660367276495584879896375663459574927290756297620987128768340017063687543016550696385440532054662019860454001161328553730145101279059929532699503529004125414871084809691058821177805451187265165164346106563225071483140457277838503547466874924025576693543964558550316229418564291385666695458524224135515854903193481460967485730493309829811564638397133248196987063662582627824793846259038997396651680698197171732145529502151455422774864386391589351333833639912339882173441024814862713872048121425864599681015927117675226829959081217376564615184064444329079701724768074847598276788432710386058559219248799891861763730464055396619671247044929837232511513441391284884692358022269794380664274695685551015923509102762662491448186840189832930936558157588191687989843771674602880753198981502894268990763189365867330040114735378596102407489628082382092803369955622923604117378491812404342062952248497581873487237683337346178556453747546774280551450303689685050853142039152392707365911878280054976916272074502811863654871366739886268416604155883438223841497234386029377303788216916411985155021270282984070002311446657037353668215942960127636732482746149050956534967770308304049602427581312494240461222801780164282872322507125387220083860562239196730877734018029922447331373952543448901320208274117338733778804941843030838499045287522291217215791596536058405987522449088928860187808353654507976965711823196792261250310819052468264180418402864118212706458149780951297732317159488108428733974599353332015661923599485961708635294559495771673924491987847228374027940327202108865937620889846260514103160168912987685484044699123609440850599298904146094634381857886632784425817322614020730627449876131810306637799036008822319870666789701844239605655235937962689842978588089835871972329634522951334905254295884330274990139919010539355344160755713258140719814463999441641966082478217589604613764140295017612059164467202133156507970414887887708831650017794119847872070170090686353595387399312170846584872633068641158166352743821392964773756102222945641780571777920545652441568150274982092666733766628877940916355152174401895405794895049356020104482954555258877234295452712722599039910475486997796377888736054246595932633423081439536397107894543326122942393211803773416070902171815605930604251433726319265188160319731069562059929731693107218495806715043588088249143095318916402111571491235661830326189517623829677156454876825144125555722940165127345485058458444481013532821758447140008202258917200968416707363955117577208464090519588394360218740245677180144895171052267762645270476051230369116170350928999168229841905278707781355223428647737934051792595237355159348243368010204257046857853269416198756568822009073482858500314121799725460076258080109463228225949627121886484764738345104015921261657043105493017686221045259010001892080672525921771148797066006321320598829127968855164334629462401000916435948420967283748972570690334832784833846531003064435070011296977340927141932485036991384755751381415935006439233135130444372143191955894224448715128298638370678767645390545848871230824232271628664495504434933868832929180265638383173738366781926293051749741233851878597077063987074083083113739140811868516926458204407826354481112896042580124458995622279365830582435937252943094617694404448140599080872251370079433623173329192644755250929019888231715804348880828133425582619106625853564567817657951698432522215924772441310206631998444293604097035986661200686255250598692007861561567188439349025812640392066828267959770386491312256698981573735974344760355116738948475132682444248699889107141246778031766190464343243620728015468879282415207462862726318561582374753064154899700926869651137936855198845385741190438888885599761363218408743338340665128064967131236503974488261195348206523625081886820150282006254014745025613595607315091320187881650914204892823250643578744373175555832718149750884040244726568190910956839108951563339903051686801794653436326380299692019662661453805623466852712706329302758269615215976412276634962573347719275930757955261924321845657053179556096942718290873145695097536854467882222994456054508597046796832742398622723586085245245238811317911272930842588705760156709965080209047205947093100417455522415054798657542458936775372120628989818056573446540110408004224579698662643999309945275108571689384148186986363205753891084318352241740518989308400843749251114957125413537888432993472088608354863290820417342106990967310918233925298822391444602010413096689549779006112642792160988576631853949648878515283066835674260783091928443121311129681298535115879436834678604064238326426298836730971039585683728264334050325389431199403302005201281668644118326849995559674969153372278475388472708851262420095475416361936805082711593319039555369604667316463559807760112033200836848000603250567845256880035863327670766737494625335241879342774004540379678804829202438891452252995380046780063969637657096255034091941576958328406125977398976901594292194473784799486694715036926047459579283303031022624477226661459478970269799426189909311997752904167096832000627782660707775207979540784107886008298571912571226812479342747638258056983139549469916652532530004949183200388500809570132207317796173856513784202639333263564885721727646222656375314234463729258835216905628500600718185187583413175033763759217297751012959545899148539267136304454944708845057256026060154386320040973121125571022093811946172811121682507176150799767224445336473026412502444967035227640219194976536727653206558888443209866786568883284356614643647544901147057348952613022272677507685481643396334216918575829624659102220613557348518285386933923832018478675651212682177504186826557395699897758401296865456124460181468455695388569231066294155984611605275958153667474553006307547214760771108980887421667255464546500477274674751203540211637150436666241944553522093612768776971962626980598086654101112841913342947128794602728038383842254412086028125247890166257259268058164952137971086831873940368746010425820864277734882726385771028255477114782587876597627385615933982964674021938658247973770936737329921911863048894661595616231590264333201291726375669818782865324703394747191776738489101694180184821529099273194267985371540492641852698235067246843824659449005226787067885905827960854828470901054667570988222757575802530834237637559569102227999897527408709448573750196525569396527248708249645347263397006240913728540400885496948953305592683882837149366396139879359587343610742080241205859936312196600558599973479582355271178851837826160490483923829946736642159259559212076418554474197279013290745439881631189611125480738108372486521208682908537562010521006522446523513482702880300249585389077869406256915893369226668479761741050299039086447629490134581715842115368476723743803919371718005833874643345281789659363919462302152270924884450689729502751188361068878696618859916568184107942561872571659670300212903099464393928621775703703257526467962092605367463037743513595890975481118433127686938334812084567011955708903935630576253014483628651881680376394288298770395277035656783489929342167021971321762811505225760703196354567030623629392267286720359388141938802414707081986830725312459854039404963394800252885419468266271313829754255820865632943788578903052545847957130201533250728139325553671580678250371840834816359202052467907750009539313454311777582015320329826027469890633840160265832782730978583263053724853599999140693862398400207123139255320455265235933049836035588583066688977715601790234941294947710870871687313434517826364687751241793483042982278910360414820044221373745385766915707100909568327094788253909409724039453552922995459467857267783745597976903898242540364409468458922299723334259694777264383928401952201306806952748226965712872269566619835358494368464938630749648569833778171528916795029650077491861162002505503958183265591336987633441746044034282676848027382687409892558228137712823422025942892414687574561368255728159654939577975182369272469141276710657626638455374888505468655503555685444550775856492718794989979838201611766847978212328959966828696556242727447958310323504285052382819123778167260849323386277529645859414441711731050431419270739484827849978329285838547727317658229538264071171840422186456704251335070092703369362474235025230697031757363135009575737059638433959783665618085942607148937616948525323172825371494031022053121558416987045077745310288079979655319787578410024144620988932181403477121522948525546376673914103393413561790059220398709715004360025932739356854320566927423889089217875087019606761307655654589615259153267828928360081899034921569781100361805825854486837566994822598603163250072323364697123187213874519553623390002909902078637604729952444159998572908980736492119956639041579555281149397558768326380458229124798330994747870851098813798730920052881491899180064035308373037594200990117019723479301834196108056206558117435275331315662460933844624299742616248030823884149364941208472121295586467025436028659984358699194450863896802912538956588115798556419370210746884057950353615818697869006021577796957706535358529875966792369770293354723081486823006513934752511502840317867286880054593299665691939052246969652144643419189583162817768511656804606534750122264257396619224734853694106489579896618408762811696839984683108881414153789549567617600835907128670575643078865356145255339121520144984915646189690363160688715586704411106207956858656738526929404330172579804524073601699059732019557248305587359456801718045058630082717629294620097402693154962687366891460588834971865305950141916560668080374511101913482812612224585759011989077786082196353795871424355821720789887818749821589995827706806402107532758425888138185448085369936950276326287389787423696061368809208496123979950938598301676750852315682357014203037472651401467831704292359207440810300700178828808825438220842966071721679361961073867733314239696046028926260729077060699142053636179744667409878431141394370402313007076559884294548434338961226572891328911477062860438375014529346002811036584506792932814193754942689627535397084108585388885047772855516216192703561569597892338298734260953920831090410592925917532299789488129598517524296850359731106987743203651618920705330114813240895815341502991425382796604282416127323457278624796618611094125153107643812416812171146534740022829514194553651073030337019124343199267032585121289429509651400354260444973773349099896084270543343856733473092009479309155556406987065775795130339362850934387567130926770249667035637678342959917845204785844521452618921373701686142554283981831080029601384195694765402399162869943060937100653019892820439949124155746702276134315797499263384198392226643589224464435732561935282698454511755002520200483324729876958735091508909919761173735238355831324392527797576681692866961389966418484924605775187895163164437891213135357670497650085360499745432793722222586026095682704127354017091470039539294029530168370344930539516440143447469338844515755037821858131031083894069255133779827907582111828858388327569953429618871227320148999162404729499914523294319152814473986808398130564611836266454144942280735945791392376160007572199810746057510467341912557946079774077565078049733303676577952372210166632893548724496212012323483724105765204816643143372053833568696416919190398457936956572292187084465282129199526258367351200286021428545022529635421757097422156256160526926504676372005039257006808163531008911281236320488819199592500057241148120273808466911355841919718288556187698265870207853556112729069636738781813367366451226718694574408184062071797645621504549475083313627986305443109083001982688591824717157504591255587617040885899306408827688086231411993791168157498653345260566663240089268904263473204453444578614833814240163548087234650583490759589771346993210354554825142917830072633554523258891892882078681457766938817012171275539325153318769963006298412528877692573249137987496487881887108711743100042989146605070127571372526738102948159804730394394897775919680782662874876893752196658388997809904802947504871483466408800608262201745337667026398339543654878441083354260800744811384956055746046969659989523960119769017137774249092870595536093366258249158507780051107022779282822351404797062199982287352083419601485775593239005351583190576362783387898667231825316127317282579229908095993723044285865345071696749365226814302420201546223224383258774040080427406981630971668523111586508537605297865782492783340799786666800894903625235732553739422262292195121596188864609628822902447232290553301442013796562597070070439730763660905940294136778319685272815661165613136962447282560389841711999418619098608885507765337842777334527151565530146019991222061526252863767443729957537843683821299865159099656182347022145011106310805272332273794117994232301274005566464982327056549247730023667026552821952063066077488699080250222422521160362272989825089075727767706605492521388100787659383877945800284741828560451870495435067994137030920488604925428952811932964433819261586132722588839435301853237969777609459304702270232242418484257467196796086867615369357993913820296461146476716556207729486164967204408513226415980543260556502350238662325897036162074924611895224866471287228761929820428615064250414025681336625421184959052469126484752386349042214702711430396302968676512827457570582517135591705444906072187795770860101350430656108694220405500475093924647951686543840660095956209309978827224593197692293949969309983642684812879318678534209256733366871049946568848788848960878521575355940072801656078743835282602451124095708576551804061677824953613825765041205557546760029792134215365661594507288399568096988410188766142263908133914550853531666767064722551907311549761880949907354947600285464309631838956826452082682731450500916689060190812421818101150550867265095151104402066324558092785455838451478252912603923002095805027673351801336621121009341829709201481477246713100829494977106716999561727911415203385137756516621702986979140852185654327422039300535555173948777948943195120201155990755689980014879220017593458914069858981836355768738376510371827131250682722480173529731238928981680792867951620606614661102487008531131488079218591707022053357826425360924212060907415679503886506140321257381678865407363784525191356331230199756372946306834732735668986616785095048388126946188623708465083946529146074956005724191016469448406689703470697646950208621691032976490956715439308566825561185830729078002896737230586324468627112268045884389049886620429951482247058967531805712238899467925075180864793196972339206929366737727485448760963613681507342593290694887021877515166432253162017439278061651524814496113876934429811518256769143897265628905359146285350471152775794318660984824015921380340439084558710223689763592673915288480841809069248018560498879778310722272863947953333316037896257914435613316012400818767514973417489919279612421265273464334453671549205269573583967678958960748887620321240680783678479545130080470052035210372854185176940260165058432206284000345187856455016675301150373948438560986300922636364198858964311925019899768657420755962478039682580424479836469614514924038018077079469988657778183465159287554446155300194404587298898522707595308858424544672822265207248310274734380357066864680741198947529591215911478211086992397709643973925244105684238400381583038731331492135532291687431057871127262415208881193988107184610557219406910671241763938804119212705431808062643800156105051314472487807879538896709886080952442167251113123357253168225157579013205929589206706659326781268730162284552321561279538487105308707508710621981588023499446227385534837838241441156080717115663699350421260378498145455476442453359992375278949041493366743748159916539749617034010710369508562183924570450891391658777429386545491513585024776132721703559144087442604412943327031367699848756065200942172537992187367518810571581107903452121283423239423042099089843884072316996974046226781979402210186369944942735706928251590513212429554233251398537093585448090615033018332807572356778486365245018484353856773532032446016425947508593530397220916478756624031404729483549552986418117332526642984650837128357371793747292549431528906613717924956164524450507875803950386972273409022142020480519342050690029745472638848071509177597171281222057501842454657635788969046943891486802179048825731356649687043855890624976520203014664968097882298140833605242133030076534634353612800661283969388140274878426279865221161998193230108386274463600142723173498251152757146695466512027497484989969121630512973014185551339098375051008095418229844590886389297359788478754375605413976722413900141858362913548390846219736304170227205274033414112032660394927359608826393829802514489591341616810611402245160193252549448726788785036881305759105690225251952942023733391401199426619691526464466329790526624844085409427076166806496185464705225879334272733001960146337113553885227562210148833754694773988367872542153488615210625141055420660639061321019153771136406177865354636343698288987480886306047693569837799509476917817417545890548305903544400730986260436973017861811553552841607863230779229641434829013023260361710094979364046634277919012767346147287906033629096467504498086267367912639641869394766131293340623163337773647810339093163135734360117919710897867331901828969866259154176221474737705110743487271962476237017386763219474053470873781436946072198913820211657677727518168656047944260363688848251197009940801320689216653119841983132938620949181877174329319080055678815222107699842905166425518350451487473282358026621127565210776120254238002539241519224298783198760394434083939075248001757463689006090672939136703101413922026016079797953788447813800308177866244436124126744564524567677434748759021285573984484588592088162363002933164344533719600477041717440217885505437687364369247252999464468868587926951565609396376923584401941485080436203496662843229459532533114628268698307487749671710038745151633809918810438332230426649070367690368912486604607732599230497148961595704960713562684730655267424950664179350435414401180452123965214704816082303110101611511432697486913367477543276506153293891230917049367508268669907273519631695230386897732642070726037881020118294514390379246140200071651412497619064780659615118768975434461227419429544678363736552146674497995693802949025274779020352879853084929523060766846673400765352607832952658932903184704107791051147100935538028590294196326623287580104436013875715061259338685646415939465296957557371107442337266140588617764865909021672745395667818392382737405327157420578074248359803773072616694666699598772100727036814045693269881014159391928235921255512503921358695445563703718344994211693700111309413292599227964435960091775445002351748663180447588500298772455618355765057843872494158639870846276007159639064772902506254201340739899880945520621960069731476072411902775600948973758890301895494074897713452573551716926533658929013554029113299417166370493715501260651053328313266844773410292087314215320216306542720146652685390902947615618592195693319186644889461214010149669761714614681711592336886373860860048875362395304064899745134957215717150956828819088663063335982883494358777813252291234291763809481498254963155422301082476337313633223739471924317285972007480239643859917110638717651142586340607543117555458946480680722574918444960690009000748754497011441216380722871055463077161039674732693319356148381819773340190460045418309613058711283143560512372841196295662991418388857314840204002595637621814379192945715723417716313680721997116702247591962663306683466787819852185784915478597354644379633797006631126924317107577349433480534332988976441578480937985638314926352530483001020543808426364390905506748462168555554231149008368731481198174348940083146671551669974988293101581653424611865610565273538716805193708162291006672232322570681652604345156963504936380862524783856414143905903509793103555854387361498427533524546839026117067218339899209377151147873107296653426256156443874008908203020825433921617280829200758522544857974606426553560291748439168430583595022856889319837129806461913371761286624116850805634114109707461062722207753827153721679819447103312658711649200651414013808937649866208459537695070699007664469948457976758599346527523188396935149273604186774214161656211309577839490515105923148809387744662244486121857593270526217332884311884641771021741464809050815474664475089067207667997614541994209672052109367198897156455104907404715779771255113651637779096024421639463421852912427670320958586895401613421195628635396686090122919024705032835514050403772675950108083364746447683252151283219736800386738367732560462363151297869232858771698226204732879485189945629307603461386175800896661265647122425144398077797996803822380474473129474321679364681817280716187433357938552502202024610975492187596713734015023670282509430921255089015496775668182818564705174084858449462375197641259857496246275783785926510937328884432804238300479135485182381873257589404377021597166058295760870316767521311677002170517005661976121393752158820714205007012560566255338587761990493675947944458329003433870863330888828419544026462774086576864396108589075317910417006165039912367198404808760248017515710491151224440169819452711111269936254192482996730259369419523394179647272661862615029789844499165484377261542513375811204013998674401202348064545096680391865040855497751861663230756368009274118255164998456047776755527624126541376974586391199511560207807819424838946767241756387322054110954734574199686989885576889394082105217891936266791503101029287087634157738152038612451888416267183215712646751529157143752246299694745333160161509865329622398687536354513513206794055401590877004498654031038474472083695139586117205665453595341360290534947006818327003521482291779675580506900157871537332895123412057840543927123161838261067948632184787819055188053217541748351456960478240055468013129572419147690748735318315416938930544964731849170164562510391985269621842565288131701191808707289241536434030376624782797367197698176254347827208936190589548307554319534128832933683971077932949748851778055312048434759693589057743966318547469984249953240915968628721154788553957595242902995378782524628092301297841519925501191639230433190626024879638146271347715157094451803380796287721296013507607200304780218015036107145670767792161972183105956228505096989920621205648686599599523919059448961393358884350376436501296139427456295523572381677707012605714071677157837788182491386498637397113302379103926590182423067992668806692082115583813625250268304623697718756222212903051621902869713689198798734908169258777354173103114386541157152934158854192819340792485769547290578204760116407167268454780212717490072311897328072448079799798775548591147852813761675598182354076281004810421966914344576556165609682766054053964966108623714412680184342587680898431392835013453598107456490838822762991483247597005093016366984777360342724100188077361047818735537061440750186794728534673203638386183099347359162012085176235841675768711281575077788654139389305968582836339770397954536589018662003745657898686978188657941623012195493921844349508092874429477712358349566117262215054929799564217171586716202392630875147623317015143780210002591913703422899370366936164320964082482040827202710527934781966460051915855045489148643230262602555410971965619434768330952307880552692051365547917760219533563168354634182842296211535959606364538789031798145046253995090333845398984371979908445476198433461452399147340905178083572267385264142988483114932651569345991497800746874185614027460808483591828374655953810774816969760504629877621273492413507966729249816910442627075713581262604829893084546779884203442064434419375669416661152476091131309009908283793572453945107806558997466587073739983440767927089009079654832439586020347308333748256392343737683658288311389167791386528318882740287205611694869505871356058091274663772520430280080318747035310260056253259863990989369127754777886451184844559224342737851521365061261890384362437929924220201942610792115567937618581833223429657586617669998705071954678458033231190926571581022647697151201117743107365515173769554493927290428375020228435914601380307159809160391388403901132457415954031561413699985157159413524656792350883436963321061284686569136495138006061012796261849489397440986361345980439141820988868489657019665495248373204626032008920736596574540369365455491546752080956902329462831466587876959423782989621726153452393279596403634475714387310463474019930382534265434585641620147223800143615183477026636183856840823073406414504349167784537417729005682276749627648740255125440789225495244836060951496000150404404100049911099736001854802861165752240308290385489919780141515171831797940343883772543868827128080910191392101317334029351094451245456660670397432543959303987749224778993800850612098130619882443813130958356930071606627081934142865697511545960523376420632602739387516503542398503204404003242070516764736433959589793866119255837020469815003398428387232404231655624853972410423387568194156445658323268952723928027834083331172756256572827168176064951372935360662627224592359912046481853935307844130130713318101812913276678048835915311241370565139125474362087477665013340751391595416653782630240237319290336601022960246117569598685059084490348671752503276233706866223441167437752296159667579838847977325467800434308339055214224918634909824215690545028305526160397374946063812166432192186222745353043558841915119466293973367308048254297344914319865376954975498278528128810652758260863374360731657552773234433099088937660550485552510029354593536328845198310696293907729984298188103025988402552420601913009385901706827845586060924661693704441889615468543824311712956948440364166177134032065274386233141284051200550121886834957121714445250104840449481805335583438731881025072653791147913800756156392843895341035989400185207784825322786712171680796119626664388222345366159385899959701091017075229872827954325888579609241445981291407962811577044536870898921723768170548843386500446565672202154253978318757017881634535340548709759062104142442368023533522281930075103511532121746606029973694579896963114435241491636594195873130967304306636752040812172994945788823335302246024934126803595476575042499490023131542529543500280842412880452873687697214831533988891710198413143887804430868578068696732951473175831980301407523176013952300149112944848890780314895709123589894284719115215884553914474720164288136139592518056162951931205061264366777015236990259564768489124369879543984103387549346888673220456259112044880317843085968429654943592150278071642823817765918931050702442032821653883264479359375934984498262548507134671863521211377168412329747774517526383002682060429726038378137380452040799837051138584786670750224059382342538614003953074269853696301018064090018605967982945041150933253602158207444339263270291630983744786848507950173734707703112163838503713880349437885916202737599829271272632781909086423464925952606234066708038676519660446993820259905337487090997850270169501952031335745888790059743423198600539637678110880818467620731593125919751615568184782629423172431647066632764301250238843675476564885496870915941270504482846012324921712165868163570821879225936046019830476763586799627890531798160539004744541979979361564233403704106155821343002696129195950840361618153426710791511809499009048312339464941719312755473078042822393658227033832058368863237435934153481957455326462092933987201091411995041107929091475285397223810235518528089722933518444057173694148802945140004190889814530881508051469547956810387665149158131958927931969233338671487530029734880461898606801726599011178111505035698963038538265006620299693444959960783959251777324163060704922971187447767776149609149467355209861594104542886072615078031391611099983463874846199087288855055824549730136227147132151206613272898394373793699764515928407938098071309934627320290078888320351095771985090704981889372022888106056293210324426588948117454448052453107091834958709279486810359549762439012357092577154131928188137158168771997428923111670455472192757740384723787559449513049822686968189806670324612540548800324811480635285362442119004241210211631718705580042972362162993099962646730443460428345004791577790449066114549173178405680859547723332954692390855995064933071941932267175166798518538601025842443345231358769802533622109742346435630662796138558236742785159722413925307684321468964492405408208145840403996501967044386279334479983139918249075407911615246025095997132742458201063396801871014256346362472915318829120240591778738516639858003460189355161537641498018237129863337042019113023885778549917944941399850157199048126549827935383934674581073742479920630864607279474408391876165400414628781273231137040873553441244296131624343355591105520228402358808526685817199684405362469139363896676462077747056387642409807075319267644936266735773676707505042686252202327538033360212146998434490038227877571439278790396316726494151855639459182858652942283563163453819193970199988218343327432443352370174586615151089359387490810642979867896521932235191885505827638901668936118962893277701042741216987443320703189255446237941694724712867365822945898399750142032852057587737536519323641379429644035968576186134188921908316919639333077017010925357246193624570331575280924375327135289446466901027842941014320745556388769718908839392436286352239063133125564966613879875690886246021353932190203308231861953969589640795673878586823745389483550044456954664531943738656529395852021200665155611659158963366772992673745547861380985798338574633513960168842440601771776658129352376769795346894017113834245784379392787418539325845845138837813057981251343264756863166380964668881911526678094777828791019013261636126031502974959270231350128138715426964454987402536997728893864680156826075344359833588652037284802673312286470729073683124360023838475221648950033776581766251175865543429644737651427922347231253517334897798875896754528531915474061753382464033952370794397987868248204708053106722559799765121349682549330705503705032212388894980863954294238202654941565382727257381639786766553701316904237372325133606590778822696874419371972102036513810970651998846370708459707823849039252697475171589221175962468300057860116571558721200916254460108648897868137485521770535654956047117161629547557865201868961671283361142065449478936433751573296889342331098153922663375544138372643321629097299417880618399278174197293530055022070911081702695814104055847775352133068819730921705230401389197336247045962094610814173380094657449268773184871288264945616508483711123971915179341552665915159320827908742278395791676293444976132455680380646803229720060885310609721195422951440015972262185800457384588440053405619158559527221485863156829233687246620732025595559195509226710111648639892440947752816197370652794953336007206381257123755751633386287564200520523450526118919130356150450748435852762570867685301412609123109987315472061592593086529559421286301189474551921831145331882069622451590378103315854929857322366749817657112889181226816731955334095088345901366591334037597722789735887868814847855367407693382419906567428448739364067958317456089499785434149301854993303617487818020482713168941701768238662008088207700172853563341861715655038488813894956502517673929088591623302882555980708569115109381800788030815636713088478086337103198885192022774292174178252223962628425333538795799643406679088170254319465743688851210424462794611901805156133436681813794586481113592040824077909203664808418168703175359106901613493903249658001252869170087530210374743824910429281134197856076333267956981491035254158067348653070843160074868027156063652997232573836058383922022529954834210155217735489907510505897703261873225880200970958041585941968389502106429600544584725371450997725371352636405598500556381463058922921061283128406414057125693387710435193424615295103306625260391206231319328260643289532919209586427329172507932695677304789234282294880796648341852367803845183919106193601218739201126913070001435009772467792482254957311268397968423525852805159360137326584889721492298539314330558051019737185763881729332275140910746707076478577092532122065958636853366103755873728264095879297819570755636217435023578221782652090583168667024612992752995832960297615913003471495200192887587652785195035404511027208234346412920148641553138971995242568849712524482155117660755160813972493585367520539896555938052727444551133642526515446851852176909172922743903031968022158325338647342836855261310893535040766158119481118835558281486406831744117518975083128424823199760789410076066243976576350237251926081567915535818293011295835016172332599832692376351986167083760035077633109536388961925208926861918646361109991024689847667063407882183617251213535475205059929598516622058963942459824152899407924918839721065625081283516828992893418905264041696681504348969440332299081819697576764721231504303054637281361264195748346222971256915899369244068862681537066597057951552068272812993617601853423485779165814331058677036438820329642112836285441439323527509937845855871118413147387915066211708830946788260882194916735449454158002017318446617749360166717628791872391562899367892386907623142662297222586596083944006319939501650127060019786776973643911669551029283448497620404492389407423536649381119633979841698804667723923749064399990466932851878208989085380318049212102388028651794090885494117232578593408622151536694362931110239110028111430079849369580328736368260376210042724154095145051249502346432042656774786592545325890332795872514421700485545600543919681672835564585747869344931471925936501885424735320188823469881429204944592304818923660360125881442113485453437826565923690168029219949331928294539475160309827204375800560540189956501047401031325882390280240621501076409484099985023534600671138285378575447858978220550448658554434561133350703058860469783987405823877207293753007972110961451392535901461069812108502357592655782972880793881113095357188698774508575595548908877726974037705316473485868187519549241427303582121208382709357528721469489846666415330951270465481934541615858335197765689343598206525336920438622354474829181205475014566330560178564666861340466429187387380003873291402967899019580856285719989920422158976724247724789266120628219102500976818839653840781598270946369793197149055611574223219747271358947991767421794925660752307678202362212895720848690936055129357674408011856939149880329185599558091994394502578708524446304859920612097932930913972053693447052941574954242858610400292867752480830154093653849440999660380410017991093035213790667907111757398948694675895629569082738823542594531647413407810258365483534772620752178740160881869140736560257381170767358958898994033706021539718993167140230838945403606322945429473614533849421783516832559064404077337932996174767316271733419011101998700104808831466235442794447464804776152737473368892935683923067566384468004292333850666896986222652774367114060736032208894579948196148865986481135028356747055387548171695736827729702514450850443170777970718034322327401222522723380924291485536310767268907224557198039376457862998228789063984947870626984846223420690401379448270697085171136976741452442584846257279007696794760751351451914947405325217930686984313249962301035255230077867864645007559316546530998590642138106480772342873486803994979908699951657254586415772948621974946286473648849717322690704411430032263928127610592717094421385516854574356392750266626437650477398323647198189213751257494345614771712399763916625319100974358011717082428923457216377750690182070243217419672334109921702659486779061884776061707229300451604207405603246918510346396283854140461935916370206200225235684986808960054634651782344966244539083661338809845169745024369858610650654901087278515792659207392771122267351647469602468015398655994379649578652616108395770371396042271709202572179030587295898270450499730077743947168731788217660737611177727645976211963622772267045536280050756839432016975965351448496656405667980302640710655249269624732261476298695089864807828619921935827124048057798649304540538690907670095447877505110165132243282540834755636289325271694004901424584583028541832423075607615474587611556058161141881586975458050140184243688781753377790333776848570982631686141954129570746283166149779375177456151769947892723426188075542933999803227678166986366081919646555472135835331087534527316665558727183471767380530051012349537378857455352495293184774212260963686182521139433275997639032940129680733655523646928133017939395031997603599137474815896918371233622654791214060598728571697547162666760303190396705166160978422583810144242592413608955480956989032522665578688836140386886556340617125081629355885266340043627900575626016277460587544054729116943658365607810315521521225047973276064673557021363373212403589957028811104897298009481845345578780384895988825861460310493294403493819511038517369927561047621727240816750319742566195887686084400757216102091719404505443427607909621087840875512721925013316290162358885292340709889622755246285980870348877423537719734391910943548599828503652910452425539638246545428339158720108217569948913530145995739942921126212782304984976276858844479103490844769770393679347238612112709359466947318292925129804397075983973204653426208454221928395442161137610059221637006792299076337531207877583455520771794443827432691040340975875077158024514782817210106675444786220950422740069236693772948553750620354210936975527166630301792386787027723455785481945331887683244245577313899613678262283580427202477652295585939632243710257296895774799530199863883751680073595930501643822631342153316791011097734997326938408436658763931531705200935399194662476908909284976268020616958629787183819637940621922909170885081418112299627501529227159132424161982844176387527398535385615205802134113536931928800912995715407603082583708352828300495742027914255278624595300640257763741575253046026865758353027203149882369175522437981935333158431889001968266435681216770298279206789897044339422540221981536092991212922617030638509012394009856761958168701823129933107921331766939060852622405775134537412445591388755644398469586137338179628975984657096331169657242197363702964254579422259935576209940532292234095081938862314486106991931059141960477395313264022396811097017663988255364044266206071499105837337367044557105362540129701087720415255942792362046229060559432463326074029760769866253428606738079197953506313669013328087757108435778573311081261665810457196232731517257890265340711453517925811527197768133328862528157846328360193321246822012324896190187948675837948231391957387682157273191914133119202131864356574004596983086624114700619821989686646984317488591609522211863641968157019605728083883246900912561532404815298979991582471028965659234002820939978486891073210956815836646638019886690731111494071461611068337254893050271197619343002567820772481237070077916276756970625110797374128090843391315448359553513536792233235474269781404464221900446769599177535210752741162343316996029962120429159373588013043524817103493234034149881666304179088380497041638301841265909356412864441439669430119928526556518005304974791644242210210197090316311355798756816906138954388679160050660603503330691516151496106841448395373582918414094759843795183072751352430541467706231968537659202502901040761575543901737050205436689900000693487929432745022354101198810205740846122634197728811770460748133779800365372959995362999138588612972846945409518864862314047558199130079809500141159370692013172355896183154513385242301132104589588028989172134525957208412013414286345644530963323500419733679142655516252789234636524820076335666851825913193565677988964325326523232056195065112837845523912160253612102098050784433703228506222409701350283122295918881202071834132522508486881537902955289934281370760192566545379890777914283430493694771194196966938433606966683188122910978127593556211170378672361872314229767246174624561722634435877739076208828503262842964218798717068339779199010669497174762079088304270714618980703820711630126599089172845080340955289232949138887616820409160305347167867747558683833297669414049175985641076921626411958551299599228793220410453133441830467557032752364836467274526563029635083192579412115753700761539520872150048114458190468738175987905076528185956115636844387869063834072720016207528746604623781049776433590892276350959702539958672856372723807074856829945395782583278466429116797471143354066710210876299032198442034326831263256556106681830553393630921676010111696441921990982997007291151732815918291654643760736950099539893813292619285466015556667557893448301313381752423520304267775474886615153364470405676532826657999423795583378576008832496760500628928609408298751027310261384983325425609619653978520977254329925480759284606003968500769026345702503412208488350133311500692079043741281246811619568579118174032743116802494924514390511893428449212084667975220519432724762196011708048084638821570686198986239670196691560823218185828696801264021227540363063742995486401319816690989213671812353444269396222919913918073851190503617358453075785891409610857970489136936468428211231654221045190084502612227108064372641757230911811741470504939763580580817587506626097693620529767613502382629120303470083765507105623090440712864299923670571938366144656985933281735746102794070110235651203694645162342195825941076746818740941906074646073293833943944555851226516906625034473031332280318020001388540865055925566831700341132758545159112859198424213948667897602477585994413796398243445909430705891028218793935296763510405072663047307640673078007062922224960398390954127488557526149161510004999644014426263058670685353320886693770578708711992296106793474532890033355698906941599150595438965731772468097099283017807847628603657039167249871713932481912434275212389843043327056313472222225686286862488713606768106233884029945321904223181424101477843695412259099796785646989856405103730942593234255740790477353651554801937411909692148402555112391370896844476200045192048678315407324205845832281142778556993519117466166220839859778762083779933068900914231518844569832663148182684984321771250049700737379504627197156529177200137850928213819930789617594537300034491408876388241537298079415493028228564518115711575787480533825256744380439902772088437000123681412744868550448338863072373397528668156675178345345269050871511708792603084724429832376202324705588791615796899374019631345626991539592981096834453473764858617105690901965038375211600147730222845693835915474329047269858776191177082904408311115163854307969559591539790740030589978664223222198377943851479391112510143968833054725657940372113797572336162651575261078455215429366928703932759821890479412921591383225357426748841709693376350315727005206222360183606137807976245703528439798922214926369363652518772382902729391138120635841666802404607168883988886229768995793026174426566263495577715781679887595884842350194326850260124110159880787857771150122973968545780321050708378058798879204454735239006696244975388012105227912636958958400380131356871092560259799118757319330207855033430091134340286892189799842975216102658637659018108838139329427191050187932175821428158601858676437577328639373993355381728205628247116139256401313677178421216451875467109730445775872668229016684874568420763948139460773757627677239254153345452640635610258018822587530585439605855330476777547375313366636490085488257043671392980165445094546054288247249076579025465454546172315273810509678371151466695009512761581846465822856502928996811976062833198080045394198318499604927757973798634633660392911716732035304199053006975475412824119868172258465162887080829779752407936268226525157386375668222052562828290436580796406182483121913521489134416161093721886435738723807496176131590451705859180636652756372929463396788198378123101863675447500932002615685636387594924375375666348175252736410154390890367082152508988308542549543503199559117806154792156818562257728514055816809030688203301371115637747550833173381983315492594468430287408556314432134381104016226074233279896680273420350236823385689931613870281197088358359800179392355515795447319757843747054330959456261426595752080229096092773303791417996632929157018934075849767797561895115646457787589841309791252235358197198027722844707412422636537334045057511697126959320680330320298068963155041551935175858125824916031491894218108896110237971029910292454291198189083589225429558649372582921367906043468443445916841009751408801351297988696066661270516100601739742711044935625127494074131089779426927672978575224495390858483943706646559511715588287008641573391874542193131946155228098194952434156121988647839173885345725755231292736945305303237515552220346886645975511311431676732796039866892700224410806403813944583630656205853704793856324442690608511999093344476295228579550477872649807382605983684479742541731804709149907901915977574799819729646108134632820260619749662122086762870640128491711048687646081794733789614287996227839913414373282771213674734438533997760648996475831155127204602318556685964050384519197304305630672145048706513332069419471699976034804337588594329547209846223734131464493936621964305373546590892628197023356781823138187147824323871429632343401398381812029960539586189461383759051287650640955416719628438793600617267913079952919871979958346166210001318487250637489887120123973526759619317529054928689778234361325407008502556768139295269296162397705826509973955243280115813683498820874996395330447723006142477288219985750357354114022050504907805328174116356064594134309436895773191059979048457894149318375867517501139048217741211659841372693602210831841507458997442228111954464155025296474187646465904025047715936543649974434989505825480129068066046006932228546367301896779658125484981325875088184495582574555878889334466772476201434032125765840427738664486516772507140912636591215348661290549881736731630276605757789765220972490207215452946913002835916315863435756484875678382885500512631383967234702095602523842369841519408657281213971085149051984750223577897337285466712219932989754207690125344921330908749282951443568196133829783858359718344310023721129480668503484778631814063035518220297719745632322096715879754701194798424984549368808058327658922521100181378886560347661674603788361383418306011856153024160250434479470554284454704628003394064847997160050267792382649859535067130915296364500569676927675891339996587858813015152033571162798247678102604878752368827664260047072749706761084954020097988323757074934805381311622838225741427988769540884385170438698356965425901361215153234883462491700297929882691673270538226841118192094735930691791974306378772727035628184129879033441335086909067209285167876023257826253255848474261782879692241680953019213817948552943430599641829052830301351988683918527972263084945345831828978998790023438362335917657573621356734444062136005039927401548550707502079704361854643724408322745747734020080185222790458850455077222969107709865422825957010839449785288082754683908740380511279910181565112977368852019776568542937733140168612931901259702567050611413836345773227207275515583998469484570355697852360213001126543814685027008159193603870881190789404621946519727273289072878624049659880331731323386555544222196709675432163704765663471471773599253176196914671800013501349782994835713046978587936463333658133406720884282703992622976681000352469539854156345783072523960718536405962239564696307482403155543075952245852216410911547165457562883290779475293230671115824670117000994487307590998069472650969197384492172426149716015182198695887540195969605270603850301883295242382715183129937163409862312828564446447692320521958273871824698196616931598919088889206635409223841530257378731431340895480162371584616833899769729235574540017542025494990768378765325609797553827280998287129245106097426486490087244725679072936326930245252779533749458473044031028361557427906403759248518547007941344629594051808475859415307926778693166956658149909020455579436444863108775098393522679031433198409307860104417671251595642919554587153093994740396095028430237249730044549712653620324072343565252993717081255338923282245773491964069307476461475721685504896312051142336983981195739695419780201583911220535120719896122133746703450802864788080565393611156836730009654348817265812210142307678346932463621945844709612234803791304629409368483172463450121936118866105140882471523225128880523903019445947181731817396877966882599789806443528176293850707864084588972906113871703612857195991645974446145370854862340407103529285144985509055624303284631560256793190604027229123243618884573233045930523298029750031446210268467274868759342835675348036779514178121939652719010716934756589041125056840040782756791920251679059080293659711007018932819095320810339879978646272636497588990829027998658410023724620089437788509209896031527999802817889752256952308760467645536341773631587470589624217348211451071033729440704286736087842628618835797051877246637607785898022872561880756225851022134398141084184952653383195956747900256448538145870759025091099753851791623601259014054581765086185412743365694862196015269123606524211409831704194828912510414621960361687129168784943321722375396958937569972952842311867197895336712944333871190306854728533811030157956623997982160722197441089130810229107477673038562318249245781041272462262476909954524170762535147538392355443731783448875907099022096379221210872621029765193793650153223843052970518736850561895001139865882828336877963758568313296863836456826689552575940530226547882405376556507022772683440227473819343089799311502217792541011585957954271078616458271399013692302842290330131272813199454818893840543524637674681652300888454062442970244416347230979166689359694079156973728528715040001491370633987226536043234744740091811470911649960959820942833963221975528492233075701422386391500475509323431243939764542595417023609773828684424926620969169593364252517559283067678971102344704873820146594918259889517297469792203296413691721211723227555486335664151368982076740444832623509893429585195679054931051983304227747074674559520144530872755816854132553090131461170993667045373444602173815195903092724050370043586113821568442556934650253690606290101256986214887955186992501699860737552963959311569417129126075048721981081605451125609030964129999268538493364294842385921154702641494560102206366868536596021973767607588201380711070187882749724928276266255828428037929524469563338070183001328133350333392681005339895785403314410925454169293746298229036348573883734855480734260576736386315164829894803020345459902418073641988941330095068886482977141497318687060837609975629408251650113796901780402029833475801130755097289576544588497354366318661190228298711354560157241177251966508849756729363418327266206832671846289425557709398225658023083241652312325704383842336008083849891240109377493215447563800269430153020749970329824390698379582739220802454498856821609736997294449915848976524119635667956934165129578824797358249657903297378038100191168682164936046560298940691668428571837495594508870462229790907451925641990769116060186959740990088544453256676089739889150874760402928467912991514523812947132061273338046473703197132334233036449204436295522705878189335310540665548168710475412712065148767764781440579176031082374816814162268111242366287450415616810845970789395121236760451997809903411730388884760913056411549443037533417773372306896076021634450257525078745499410962346874535112768347018506959331431067138658333406720450475130791525996690975957157198177357798827297109937820875674222720044728525129992048167221503961571983524000869051125759444747245930862428521492560717850437601803735090003966620833146290230144530998530669970918951390495747531056818132236516743421691241504516635082051719710445339456537802852396252319838117235625627349601450752358699039136265316375805911539030799395717875334509635039099902864255256376767089677564897155813775987361897617912034363934720687400082758719812372841050703984471645409943221563218824756084058236762580973709642475324500738995708112055979602558014142290346544386619816775718132412408122756110323721849387841814810522460307093191239165629686133947820954617860686119413247514849195462009624227666534408546512362122232320528099286284155022045270377243981591362230105260337385696893417928972879239803780331892321370340222638914988976793722691703067164598460664284104268451511830164363033616527820713716556401988655624444385391835678073090428896682817230714556119850074747196499598158572902812700539304296506675521013486328385372240522699152465275866005024127222274763926502503868748158785796645177032438826591262473562296768240879282829247218100170908457608042665786062998571501104639995942959845719158736705060730778917579392901055867665418541413901857207453675072782489641123643545810013648262543429737934176344548854678953823102709044966684939733806173687278846387710176699687342065341031298265551342449174496439876233555103953845416482317937211977342104550807948612845110673527551119440304950322995070977736410260597663243026047652028015301902352818320314392192789676577481852101156308407181817741005451936380139194350028313233896523700961930969910697461157225880694461887920320595917046663292821363333084316253295989773972667033395117498454749996491534126113592761705293637269504809384284370683847980867737753926239796090919012751510765792695033656994628880665839787335449514029476269746863012481234143911326904519214006787484458465874758068245316528112529600960551145733089780139645160698796437885943151749225606994244080038452079982721852373114892297352522159729615265234194522629941048426679443758764008024462244339042066143348424184982880192007652149710392948697856316166568501227910940528368997760634063349120603243901421750981366531397936947477994885967226353868791200603994564933630349427579829149329528425428692722242725663684728047898920256868286365585967316626027062295031931122379861353622190885800471383978682322655500095250365526103076160622223994772793951962483434847466641176752150916099936422354757375620242434375713760461747478824453294451748802802344400684491877425472337985804561037620263443361913071530686218964424158561705703358549527609579541796706124272021316004659926419105712276646077669808918886226694785630483156338301815079030831545843620021554163381609182607488645474843025270012346391056178609580266936057724197335034871311982924863561932257793613416273399689225268888577781601256973239729792450333933815987650769541736889673517495923914710792648840889143392562138174659868460768742622239016440247721775295994291889501128564050008769252782537677812542443661508706545904552711250766631857748556096825251771266515742606267548301814337171076778899699856423681922812703913042973282186132418744261147396574157400135891851793591364123101558517400360395147706705697442192418681625486219027157923721557539179947315959157590191544695085202634227474271705731763688890467933629021572815846452739471642915168667771024668590236839131889613858086814295754743827953511446351576634541095943040849382773309234646656927608441223948028897740502310222043372224581682191628046691958815177694177060221219099393220764085072452850016180665705083272485720711034806743130402843533016003031248015908187201586249729180422092419179573777087127018837340846182450340452461192193132144144839174944990451038633903470465907508406861031883836736668556330109008297980773659825311178124445124268337717411146848469372979501177282367424879154948663845829679987565488988732744782145773456141186798331872344416547509536214854947075586481141658480118190467717646153946245794915325744441014168950649347675640192893567667817372348426949417510031067922307794953347943251605678630778240573997027855062842985610361123747169857259665479011507486279146491643514745278174824253939288095223545883009037684454730502317605176631418403960258533634716831728138426544482523920389346546689085815342496575797707938584086907537780086201663995587490464945845720233301873299899333349656483845478347197145361302506436491754312688831852689312720724159948512148391849952397403206986668166230318541752692484420265988732944203778677251124612764391626900708423136394400904749292513717109447657081737445280112948172304724832995067534297397215574156749601525071328270546099005962246725825737258936882753761807684960300962980121018026935515472008837535807411501564275749362158196880979543845481948708107033169353052365144139997471769491332985811553919891458264776523167508563363752211955599254400402618322706177206109937311666706709250597462907210069131735728456764579258575536440273091771153655167059964141719735630526083241905318184278780984801452835621261779497481919783402235222683657396999885543548557884003775916324571278966779465512207527048928312883370201503114370302390870844737390707878153209573068532211732876089375924727463483728512142038378393432574910896629800246854514668024094157344195985910941747814820619278660943897985555308336338935225760830806563500709141944678903245879284370947437868779132614091357187913758484302581708967884005602731666777727544833936421189939340524093219765237877415797668626786406772177962558863345023411385146653564562499741294693070551451320344131957406181674660245216105014062603352880588693143119746928848991577515377834274871988203260562302154048523312401387606945346037280643381629532386506026493212938573385878325146128482993795058438127751695343431508347995573638771214454651041870569603790164745582398289979932961210512470558586039609709355658014748629387754798571561483549931724937022038420806435793342758035413654855042134776359968288848954405242897280305969757535444253987660675846224199898810502239202569183879387265342641074035432302285086351371211003091842908619304584275025744593329064442416985227593234619836109242903097893982984541971454284755702762916351136829733360281104343770796140530222226205601384147881071469932173145774992859822924161153502035423745858593512335183386662294081468577611858321763753665256436607532290445371524935661240830921395367084680967008192344715288325775083616623881091518976674207714021745558323269003565428218287001879207039008487532073132781230439333396353956849316567117825411836204475455179841623745105336617433881476988432975515215503570661907705881739375473568743195670659366432034268373301574847480454574417361234769954010305652694606577162361493421854145854446954126183640112007688088357201782126258031474959187091518451169009083695638739361964726514491067109298077688409198662322552100683946651461447822286705725830381929496297103808367289858561274747529087245545308029234304627111328628277618548401495461412544646507226727927607339720097581313660061240907778416026120269489464715067690620111707409788668326323962124923784057285370875028826532001217048572185343053368167297794040548262265405660072191574209883388342554883372182407247060354830742375290081346727415145709436089958462300994787746052225202233272411419747178521495001771303987108600841010890240901061970990684348883105008657988702148874999871906961187475416117232487398984824847244734174358866451905328451043706997997234075111996142062887405224519416642139678459309378591451102013717303540149090276859962298536796271293889630733285720976837642442643427766568648168188294014852539113537332859452350809362065102648268210814029284212854836001516730124878036255230999030586453944600217807296198716507734064284442369761924915518669406647404712719883312337604056675823054837086822449017424925991979221217339782890693720755029436374983642389700177415835392865264457100053585372625689395643569152445941095558253702108291712477432354385135446358239567063583991832703479676475751073868175523495830449436676102718977138041740747650998557866290338159783731585289813941053555392386786780764903043055671301070325578460812284299656795460249234941847904171166565067161639651620280587129086658518858460749740207447416365664733822015520761316913069152753935110215772377300223940700703976305007419829088998351724715713985007417199884798019547581663213467673805178405526110655459178434109047734638485536530822041340617860458252017052796130851695683490702416949186099187794677701934457498185620699219239106052468055624499008630384207867556699214485496379387448623031828627046780453294192065029173553314655921594018397893143108286553293149866993309508011402215316959982430725539899310468893370239682144659227196437794175302874470058090510345644024655774665739623061013191128782519246676923137771883799672133347162247665106270543388467531919387357171259014374479189079714104094507550033677121823052774371830150530023198401564283507655829255705976500532066677719697292177300289507959148328797606063252612449411811750616002201211100477875362593508406340673219013260886560735814461529724266199806574412895762435933811664885555841042351707418409612157505174295685212634202659445163900126808356171922311879194046702931299252272851656144545730516174845909104652482396164481601784134518789926066484778021651744624461738235354534884038403349147426897137510983727559356629220907452019156613045434019375714333496503371899541783981347836236005390054565750388915181988340269034182387514321684326103516857528191503475312079269144824402568974447088093600015683113041213406496485831856112760730113475456750257037085826095765808346776214043792185768884236723717329371218276908577170537078534727391293119279993894521450459776339579737121092219361412424030221484860186605824371224095508873287977543337987568660505815128445703854814264060242980345624046948170331535840150484974084313224692078598394168915473058177917024643960405124507894884387916092074897659874305362457657045009561616484107896886211640484315551194754865667599543995284791200776545824397187805346599674968839574835980956355353681382515778215033517389304883468868291522985342193067590808689144775708700036864806400688426221692348680909443387173472133217855422082586764216994569079440228961227816089112861616021317997984547693097587456227986592182931695541164547783275436511910364511958443451855299964678517665102060689547454973305220620601350309118439197090745811941237313205912922500174850574119117429508436346018677709011626145256449265723794462755347132312866760131173636776491141315062523067386597608095151394229708560951969392318097245959090418507066313912946356548635101709770728340388284350225984441692786788260384021809289189879687042961584171989836951530334479458834805684123645870322599515375117072369771489253933930360402514296024450437978592631191472880678677529484825142530953480001737405809413318243040139156322720207431278764972254730354520780427668703366393054661767312539680409020927025506263027036142632956633260846498898097921047246894461269265298512045177189337397496910557558764047159497141392729159013980240095708555841063593861844899128476421039567878033840848306782717456200465229549963138209093237374095146397964294697514535906457851198701827792021637124453934489526265277025641935418893833807890949162409801710233642967911089901730214231558768753718310958933479939200543291525276504897427201918802386158848572907959214679423180017900776304812359817752709303767280056648912518792227873145171794079217662167655642387753207841112676417218413359938937222384674815277577545812086437678497811723436393146435131216684686622525011418759311169777778109342700520693367589899339547427506990819323352511351001366550127621201735723325992000179623987522655602826491256796707234927316973376865242844872672258147610302403489942180952429862992323707040229003676989937727917929883399922022983821561310044708148890958210270900373740846075724557415657909373974378393561778809010329590508649110033631387431145752576366589235280743513262809369932919219530512896987943565284448950405316508855485164523289947126769356883105838279685443111123933191407287537643229855419039198463980324710461791612909523312260289060557771449385963030414189645924176771940155105586440029130494358236738167320981572010349456407025226939815082346042308943563441026176221402075759113847873217362839115835035989830462074622067172922240168140484917668984681339147101387400228493256345011798290449401514740398446054316438812905879290917555599289780064270492129291325362819395696871668246817292871338500392748490761007128998332945448815838003391613985093115417836952925347959753097306189537858050077393240668831907280521723896472817723145801851383384506986990179880334624113469180944027455765286174060953214928596426032199725356209797428258736573960054250522712348115107260303008343564545794266698365220113220295341070973980742226558176586023926349775778314711441661502716898813516483155129958684505748430092588397777909040640125984841217690394184681175922264426302759856673305780750292089557958616879333153487063469236852775814068368777364910396244151147598909940617204008112425371009669210505743798403066129185213203630184434457060481722938627076837102280014516922888120022195218173122086157709189586586052560133670130047825454726969613947878310528674167074032583958790628469517980258963373318897551158734684627099703871598838754061451452402296564075664909717203366589569614785424490973920691913559470200854791014964279900414674663506066992125782788039457841572964135324082931430305462869054629126646484259089938089003925141736299916565777342634095707109497548758846622994591497745192685633144286741004009985374436615526291966247297680768110068556016017778133954495149822711066432142967317510000865618143314885619663080611918391891190040143240096935917593962490136448529470631017253364920032096166530682350432167319960884230232726939453689060750775229601430063138430807939869328845965038946731190104569124365913935110132588772519105089406773380087979499136224065355581732843946382457932844210305106635485786372528840919420339271361177252873199431617294268283442250118651524345409665442151593754880729346419131546347874690709886210968745791346648616601057522504335320280620402411420924458917108538887507282624914873602491946960895644556013456963306361867033056600722704421770016088725889732079011542449012883195412819303616332656665446980496213462673483633603950109647497028530999099907228810371002736462598768802718993092437478797527120461638439565223145679230404663562214321467361748769097387446627982165024706911189042326348576830719375022868599023581524989643590906763711626804574518529789309452212898986569889062819888005759345455387489874875122131685034752035148540980616918667900881864337105715452739232788971297873778038492810486642009089487924310137929230894938685894486615823809134737768656896349689592375111544716265807961320037000467129438258128842706552984629460608038607320294095645678594556592331994204414616872553490251413235947714307172246958096401220620889995621484255363203166676190954717968294354217720881022569993928645568476229875223521465854249841949747606144541306697786692648449523668493858758059138539995105740017901773269386200898233168165355956620095559466737352403851536757292366551769623098963834207392387304484819841994741087263908398233782465835891996652485680021798803731851098638519230338836668997663033256565996140690825850858836632327678917416956604464556024856166569373704347981607808781913171689308063186913752164671871615151779235753812190706327329553548511785722438190658312432013963911486917067487700452247593421396441902456280466164931377710585518776620285252467976349595725858108405693245714579429972361601511689429287274350205512689274067732362602985509674568794308879403349490689567577287742481089233719970973537905249699798043404219774116064712681577062146601137284402055841501745623927638887416711643173598581495180009990070295230657640675489598512540889462425461444322073678163255543798676624077669791379975029276064948486413104653112000577358872958507437483394133661105066375105298925680429427710513085881883857700966023569378101293594958028980416624487637099853391692285318407290698881274326512910675134742432225108097009874688697247524600141597405037273367888405111221729259886249127739203455004506702982890877203175218147324405463009853832463193400797588962373515606333119143652682715846793199204142570469842849306730739724041981629439005393269278692328337176398025652033253581552815257390321957129331185847056521862827811142847469988623444228210976622313300385411999711310932806013375896320771321510740066928540447471857717340331492905589323388320635822578605806977908567311079777805471205086244790453128189868902467663442458708513064498504772353357175609753782690008286693477701729133442904079473831496085113069095859308661065921734217028325080092539276887706995234359016985925165313122669570925175196699066423674518613962925021134186166118710608912142922783219752022741045388695428392857219225149165403498840587908201889358767942034519593131797702178541379762350485196272832480168824982593965186947809234762891266293114478916393011462384998859866936011695025773971813391502975812125151990776411996012118740453333516383098930986818775661451390931799624981894922790864510600723796698290045273662791427960611021320037729668030826956772869134756284733387825136962634631348117710055894153084863315482934239957386446096745076064273034545919744307890165610488625974634622169338930666790643087503596807361370985035720214962272574927432155946521924720087500315458766201333165899044019633168754300616950952069852944088883089194117122996674339831587623501125355069714376035212476257684059533741048763844128879511795873184729150495870032152467223695580541091341073846765973958439250122988169336850985463739456841990307006098313547657182293510539915904937135226612440968462708002858599224296254858317221077032518156450857344790458915408334371899945221755035958133072933303675579599541340050197755219153366910600014868994849121366858995133048555859621010678263996514339050605816097583997600096100455074327755281428879698833805339153281445947788309388075032704282085940175429093983619816591615011878661846896548869632997872163330513901940811010259887434282635689638049687202690356687172334583081172258802383016800548282006562090013553753014577841744700097165650735512693804035001309223014593169162769442279338452932399452410543228644910086487397319758372955428272654208177156330865985771211652049613379347624230676576380667098566971123598552231446580790452929435072780864403605084133075014304534293623532828932051479681579607166551909649244245211389847142566845538646255842841913914946808968345068075196371401581422949804133152555683092278183923866543579242134885024254977915567018687585461361707129263537309673238548635453479388970431760340081106962648632071752179224813258286317586184264736315594045335343509824645259626896704050988260297682828703432321862944850422982450296702267613373574322776518401657871816034614419432636530360221649140449595893657937226671798372465184361190420144582624108968504484189234329927480827531497730680466742066338744995106986907485403658505636314383319424242059850452812964108379541552796686789369057192247475835567269532260008930051725624321953981885818558195839564730742319090563523305965317239833223598526218737219480042983623550657033237365508335055271645102289449609867793147654445108830866172246661065798676207382959606339551571300912293626951889516667493382091358182773852601116695970999946311325844273066624941054352010340188859761627614562477537800883542488091986964916304489303089387864636009359003495267486236828598570487281571402420704596934597933380951133727162796846763805183953267492283563726433926932069357685700577056865811547411243976583373520456518033502258902393593993774123746170692381000993393207067786877227347033753684208385375754016147809783745013789343865532420888317324786851117484284899034693930474254282388140553126507858058216182342940072000241523900368743896385838534117700229069898678627030434306422787432440862662979109750118495025151061283843294784702734629002239205013960887876148412379869914841499472135259496324016797703078952747599137240106139826142878254793681001725764647759859941290121918905220163231454512937112910304546315639307810142714985634195200738258380538441352674041482171269768878307527061561089362505522278866193859605834030707013969535808210455425696646172103258119957617641854084753235411106695689044488966592653142018782839928998362386642121998277734379184717475867334057003547116549476824806492504412799241597092767206945836219340419494559039465865315445868373746527238645478423652571667844748843086364102262417293041794046519704405816322328454795752420460933090418176258541760904151302110421394621087317462111655400724835148807998132175952257315150304157412174393910441850895023722973229662901453056556697233752903474112837713105151600853584826203670842502478770866271062310294990394878446728661855108610656631743948762195825519501334663825932453379487341942671620063655316357129887163791908870222774577488715632104731367041853347057135079271042453501499665522559347009722669159936270349564442690807499217860106942848810725728982788699498138744468923221289924879236262056716015123565686334719217450749883328991282612553828833166042169593762708125683710247331899822007510188527140248194774533044569059388056505519221057997325117161241631395003204370148696479856538429940118116538789413351483058742767543536683183622561326670661717191987760761419514873506339011708559778722377259926108470570394508840865227729791040930823772812118150782603914949280440743173192881410447909613325218818324310502415931061982379263620447614700651318191387704915285545265737177805273343874402989892734136573067504077863466829001478173272106998901285647784099048732995222075560443008769503473233450796317381435042954856022859672531679147255503151720742179435737817340752689209090130055327194819290683917373097573565442367671816681186966191581822407348403584525952166880666633510736767918861305771500953265590826001709553648455158144661977540177234362498356196624840975580169916582016863077932073881910089698379593557499456991625780085291958853648932136993244014310957312769405204826498633300574133608445036511986394458515694757530026298511657685257805641011433621185574580912163804826586434992299057604352077007674774652237976558664410773736396405092269006914375298583602223674963737304372890669314954977776450303237295629007384622675831843003996430613574755460880734646942918476127174963227845293739055158092453039383184773015197804308846296037767858642865246075276068367900876616338716798232073580506245734399990899269378227447380026364407413148242623782383484814097818840210403640587243289202587591147444471702085185797294014962704802625863356004934548628561456878808794767968848573218743962964622010399163660136720775057378521026927798328217930318019447738880540900998783247384901545559556028908960631755201178149423068198817802926092738828162623646602564829909400658395696438678814589026616301938797500398645768401765910596019351196422214091084127440256302747854161262016486289451139519383600707451511145532219827044335743152511497022701299917895211359171193995051767172110690864218814366367742174370661790317059339704921685593571630205680104362615344689276806894115488338024385906515877863712943709878585892799691422916627151043501852087421529446514107490895167743042311697117780077941940521382060019872599939320441920777361467714777987579864687144534099311924408986997709283656018961565657627789006864214681410520907920698647196519099490188661699849977473235812791848813897131129509617071110719827306576017589229553666276236931534394088408920992184246529151569936488343788641517176061366668081905118903675504061788603359280425971330116783608151774168764598019220224998497933980946898342547883310559742377834698269655738656868929239906268386663104298487836031447683683246262682842895446584859262255501822457332529302344881793325005111467990250759048479739894783859526617268279343914117322314750636126812302876237436488607323854399577630415407032942974217069819509087273231706376461227399534194728444715561429202561783333496553678365759858340733966860387050872660737913477848111429828102101327326997939197852129477237761797291973559278858432109690693221040384187646925855873810123900884720694774059891872216505816890767306822490545146262447041659860664261201180947585096949240926091128848897282317625988547095996275624593650420821885442802507300833770828817627796695815382416745079894852209548169885439472135959169198691547751745246876432416070042118723488132471948914769140568340814243411868238125374224925575845505057366850527458978609578205426267469604731966357379612885526713797011790046170026960213054571379836789018104828879277524438851660080244142280657392559267748816614191420420007331083296119943028783198305482631940095205545902800706248717905102836069399762060193117999836852530959412786433527756023751367538207767250082407711550970123851209065340540332368916027937644492649996317810418811683509131214935642339369069077543878680234434282053079181165564513416287139531217078578368930774928155678885603356436548751893837662451735096960721912459886737174863399251873973786470481368380497230985331720651544663899165928628562449708561706219867329621004686924620746182746849287301572040704279515235996226792584387981539694633210196377450459485226993397670635310097826297388289419801990956696215940539559831862178905850614002148794278335019748246483683214427211391642244613238692268076226672861037083594828690629438602087776793954099542699430973470428713704156419218848947371034999840570627078949447597660597398994032342189851350294424746761708296303109583081103960038551540168653677082881265567356896911429821456953591992897628291046288677958502504597076292945861733058234792943271835106980627884465708301014173931271475319979865177140467147654107970943757831215615084229310384567989479434611062723035443917722899328592979568357503171391656274264132775450104743960963756330551305027810619760524948551860855591868646818795568780955372158665647154225014554527942077888497639785047662321033410644273970943931022519270132521965731546466451887532020208759846592075481715001502067689730441887425747715384824463790460402852509588723934928788848457555518420699381123250798334961776080301225400063910512866549326720565737966395393550963136648132867404604937743040232747635468324989460175368054787760089497012467031184939137519939817497317935799355231942231752792653423210374517166925307621650307169170939724529045012422947595186532224999014577768259271739224205677152901066657633180800213729916726141723988073270226777075468856205874476247127955525594563773418849012803325538631554657249997999544682370844520326483258608673035974270692339763945219863812348448533917592354843891394972624147158980237673359279563234414906571601681268152890802375768191119196049177910238109358975774588245379427371365277165578282759047803817985702566821003971719193171023022862759656704870240214024091343306723318250890958748003885487793220119264262120093677634868563056876303236369362912411443567392138634102278586864026847617231606515420484230984768152362343303000706172368435252427637269476615357184838652093177546311517691593115689104818417827872456813240764985853577618581622291953919115804627610422116214541858759002621237182695511600970683096292063148062156840941417944007784327549266141278023685192001206185297470880550616607303402752237361098917231586641527790863673728841795708139058833067428628071263780934671048100690572028947065466422458559999269875338755352708389946624565632471660860058350772193115175593028286362568575601546724939630531793795020402357215539927169431404190826080245256771917829682449460353366716551337945078987625906920993866971920760888745794716410328813511258124384627455527205611259599252439573628265336287842261621215359830153349517947406008420160761950379204800116051147551070938240648726532381607660713484351989060202242088891336068215855836305851357823801029316729134586603930089765530914873338927439781140981001482067833923030868181445863618737098868603132818356449935577137414548018884669657657523632717079711814129451931732222539083114950278281623244931851017164416424947319534049965011590827925871980125932623045398223714122382539758874985054175402997117330090907701511509454472056929638278794679834008472753728892092012483626908901056731696344362154439192880688277980539948648170660655642815400388056857983239562075810733959553619336293918630793206094918262620438410660874616956006277463698959470226366377688946263425494822292090754321968258674559529416049554291719813337550990633041591159018406010650762072310298045878623761430245038490580870496515156472270579892889028111042081934590364891474481111446419576088796791718021558574587828772589211426000362325135317159270483765116209433168231450987744222332274947141050088509051026044012912596626372542566148776107367219763324963914181783367700600824759607863211686529649636028235971701267940861854268640865488898868807331873079980793498273812971959997218604524685089764995509096336212136825893461671047579961123460540587922397703522838856721846658261994202382326563366872181803578399257817578710835486318927346739273100949463608070634734109633853719069647165840776008663454546562351754937720894377089074253226490579838343012542606583860917250794805646136731953646011738828702330317216830303600343459806288697026461226258938746949503089806447228505959671271558777526622989540264143578318495743890216182356834383655892686375952735989273334422689597944763375793539522003761262326893378861543819989657391467458475537877656279417493186850363890682891627320324904830068906010999892670252749207161732678998364792392830095146451239901394440145139141436065028171964986223908287534860488725214083584974846741645408000451411071911154737558935165667759965902199319860048455163497271927250053982424504388076555240312492095847225785952517831764799782896814547851890642451825133462596812142793573633582921124010770860842521271293024678434270324769670688189827534845605577575846656009458963108563943293435674792215840663269923614949845941296190186975094713618901144357988325323252803112838908473724140883970635112207130042078198973153875727171037687450608089810811404954907901233155759302988361133246688974243663309459139862913964810264261120370481560139045509191695455439015142952330076887727278013384201252259484408064839859831940335593197184104881188481139861010559327231645523093319677793176836270861856089583113581267080438956935276455360315988887947094337056157668680662562711624732459027935946211897776114635697465852674799482451717947637652216009037064136198923506669359662408428628854541264672510884915264007393784966834380421929830928331108995824714329342476812332731049713688758597402590518936553957161005296689704965686253843875449484126246181782438667738945618080310641446520601646860242540672765108582950689961818713139240412071981692759675761212420102129144383526111323348314005851734681598845067918527873185844987554610812439021408419679389692034761371176065894159204893481471010819116382004661779918300022093406239823334199346755101182705065122072683006229322045018618910646363802177115224735392266376399690020841781825221451847527020792962165882837196888923084120471331765930524086059001856176158125049961773992230371335425026105301265183704281241020224047889711475374385983692037734159660277145312953939985114777912234632091389213370537398218276757296157026331377390341437609263492774383962822327909578089718092246718633178863382504181434401046515320611362951782948220980392440932980092196612005134283611999416816826985840173100368070518355158272093555609393331401027176015603262760006756614795605438879872455105561778750812508733046000822266393158793792869947494460945597529045892238889288893829448008868232452089778355514360215230663142160823542996512415825776652224259351435265560801912093461003302875326529182551487586195495610940806549211924966518263244229062271207898093112119420867698166441391853261922784199899049955303338390089060119613845016130246164684643420805542031899555647505681333288118664607775820169065586058957678124482329226393814172814830683421326307685718433188219068284284687511380979496013958091133716846494804870243221871028924994555054540529039779788980425479273254536216799082454525280115203808109069552328528872582868693488261461333082379941799038246909743671003026599074416743775026122789692410339412962352379922472770978538006213560157629070710846061114282927176338806681296824825660385315356526769061333851352590010484690141704996855082805174651654850231310793491208074153106769294773081929485854520373126471705386873611383997464701413046714364393280801642109162487884064692464498517315274922144796582862677666481138738546453656691655531319608588981486265220714372225615782532655744762383001046221922918763993692467503840576983072349489373750576895022831396049610928571034141465582201117560483212329935983694588742256470569370654611285773500233459669405104611693042216605377177451095351631775486893429252110965677143872412500188817945160878398046363493257100795939925078223935012237601484956550665624527894487504938669664025989390862037599802423756233828010311466750024888185443183615891288901636141398931775798822170548422083481353560009987735735750367675425114011266917861595382687871228564762477449034596887816837430390403322271710158820660898730211772856669465531643924089343005954075753815109929449427051161982636948380041682609370463939174719805121285785318412583447684514541824642232972355274871498743212779928389256722781515410550396593854245081599008268742535287160551029891276490094906916882606111120970010265334719594577133297037843521440942492892928945287981609273751226996678383610434510290078544801785654037966709342794105545419029376968956015918712000977633832594044993219551279242291336031678306345326348732069347934297345512317699483726336967422489339248024951141703601927374138114071482485142439172746288535184772832510195581486469799005079259595980906956582944158244710485943538357743703247853619453509518615805994504975716022840971558447853426821157696144631234564561458140378659998936724164134749829504574936034663579699613889508846133005846119934102922831083242472224530676611013017952264067412027630172162606611924511339417180895189378030950280320250593384352765719775327934561595791534606947596610542254171537910586604606323315247313046917672569290344508952089877280361809165710562057267031519684164079537573924843011254618184688003682561076353962079227344487250769799956457185874874239368005488307632033381783051680263099575225445975881939629054308570643523878936092555408807529861880319092671708712626778131760360769373628454146599150100331466630471482031933836350036550885872100458125093495032126369640859906496592961352024354098055095090865476515163078001787356078531747267785802378843635421709901716309275280600997865529369402079218492206964049717332411791353985104802792153945048157503330830296323907518655349011986475191361282614753388514561139471707890528496688818021835897261673403920867798520206185858913475999922481004268459466946604094872042506514876487249262299450221236419859541955047390545535616689681040198298739706359513629243999015765338139238311525480532199338837059547877564141980940948492753206590841310953056286037144475104361420150160583298967539447109009927907365920014224722165235596087755336104757679121256077639509947315834684410406459412722316285345026637387867247828986997291569021709681342746313524239582142196259417774064643320328231422470439711416171352799382003319128947720183795760909199276382909842655209381215204938758858420086840177394601605008277255508645428014188387004060223418939408900043868097085724563556598608094726687274945426602296139720454822608316841373693679983195365291569193235838624305119469449735925020608224394056061742891028342635184521678310405938433040725213319950599312053106226540248477500600219281581926029515037105983811386694255823459991662507596944867776530887157445479349103865872635818854096235726899956454666099947185918058689450725034269042532093016049807607435516439444743564375635057285725303890286101429470604995753040367048569479261726455662281783075096455838898876297008887819933843932741374458566451781315343543425395307600014618292574849854851085919045036687099645995997471192291580504334451372727811793517220989199421045018556415496326492929096584487473739556380419071843178313045370202802663531840134042157305335983335240842896572362983008405695714237112080370120158292330692712836361209605088850385872714015644541937287114515313666423341635270723200111099381485458247575533101798537358682537999127036655166295256720803010961768152212251501682550688342432376646589371247447800426676137344657507772169329766689203496468229851820359104740420077104928614781875618354173733149729043111010160975436388109795805652013610290768152604453988740928655439273921560936371954164644007515763326633165315550823077815390879481873660524419706497742792982808509279569309195685509986752182068111767561631295266817464318890697058520878224941802762536981826610010737392866775094700831479858238513039392158622708242900240112856265129920780938110275755162689246010616735134147841136154261031741289254225379218276609371551914593856289109231740809423730264091937762575060900904884549261939621565604120799852126083202288595959001123289684342486496818349661550501546867225306240034462806559885095562989226827665493736932177877661711277995739846015338835419077856590700233043128943216930047367291266243000406351941399224235082084258599228074892773851954413894682471938780706872397595711880313754287092580172137576731009617302546272066074339106701018984161138957316364644040053998528543193433139024912474480408014766198297071890042415598252258677350735945471760389649944193400651604607769777459203962966627609278789362115466354591147656414998340609990004141770764330297313967576113029336689605952819621739234248324028025267842489815368776617035317708841186335174592643363804954538308621791790128132933064981708995701316084374466159408510381085893684560446671419158634121651533619846098503069429131582998395797711981304125555953734274604580242514376981557969134928435414311682101034698751659589855219201788755559876760653931046752068540754789006999784114337392784032549940215451017299207405143879023155966186203673605997393852936674778724820479302268668106742983441114030956417587492223028567156704794029779415708981144666217892694494353401164338613478545852768565116374421999683587873213609795695653923965561856712703349448547284663916733647935270867991641493344788058948729297447290890825417353692647238604670029517861747988577402586180701472958947504625164984758907361542071670396158561913473021199039659608071822836903218172673131189083978591619814837820468165155916032646073234768126595047919783629690588925256985519773832807249572446676726855205016000308395521449899684827664034779500189169338726950858998185889234094489310431607205659543687836986336320998520407007862246541128893129568468175770504471223431510564479596219198245643401887578017676913060749988478012310485601938944512415571447337650077715457315019616852595531695506439614001912644728339515961801214027143331072734592264527155335951137733195185936790983126694343431161555232806139491606027792868981981329106628741325443412168593743212939406196842366695160980596876914244845665315899250184010266032620978631761594805404834614061831759690332640428070491331373734240128575005271641178427294912236307405915524178317865386256915981553499909930568739991043287217418929276866232027219084396644287780254887404930529487380715839799304353629726879408818573456262377899975459340318809152429717110908844360168523601346407834688268574417745482305424989798711098096125574052396912922278545741761515956950052367424002554414100897147103547053779783881373344710966943822338586176651633132541140445967173427238978172958948343431606722054523284417118092545608622620436411688823349624791042441944956553863764535320780828515829602875487924177370140238016589681075926892688611806021909204366541293090977380081055048933471307214352112099306940946903384781670758585236066194779214645527236132430847820681662547073850065935200760485228181882620978762305843493043454643171272922616978027349154623949739871320554065740551972160315658896211250261395077941484267038320669666911225963417371799644647777734192598993338359120780141442225445884367037755590962076031710410981616140299654671576058140528984569778587163578972572213274728584345249159607398230733444604615054283747507218842360360833630051634740051812295674184486989365758968947163142426036324566141478575095436803215129784141262732546738826657152457966123875717533537900918211400760125548923446580810988699635820707245009012120660421625858776539193615467876850118553145748621624530251115592068501469868442414535278613512050757382900456084599292566797738083874078726256145502087350788454574088869754665110201931603283968650927168226772333680768117014937977582363120032387388870557086010473463587516852517237879265933222742172826815186806483855867113230796149969814347283624485475907088275570306834707987785729212760142785338512023785190973765008314971151561065015363170645447512709295857167508678923654145281881528327938411290237660043564671054275779456365046502605318362923464645595080021962194438646432429747350102867839091889725526088814387158829571537535693431550364821282502782729212379444633397239790000491054748391501856528459849525326140807195907558313764750429173192623305778704761042911528059018437009962632552999347135333125404949619465173934529411071621541945340592027257613528200356933555458374222100297063270184484539265980410004697565380995752857882730401923945467201365447035502258132380496984838234045863983128755199957535951577115430736521186395735727881825699325123345394200952348044532715441999638745595017276817267806066376271908904677738695341775224927727328574008607226183248592867605016923471866961236879039557629178355093120414226217302760285089280231094926406292881485984364416189235190838506784741312133247582778129479760656658994021041266197911278996874858008691320322586721853216432350834981495133746926950627788174246525517739247187495173945031291289843053325080906843335051185028714318218135809375911263689102926416099714370853743631659346403508185642203742671033474484898551933208811586143334165034995686398564417065174586343224383758700692754672176734662912413082401888546386555044389624185136450310307607363392772447736707059376135002373999881945809354036427810680606884301264521218239536425708279512190112825382519893426867508586557485838566735106530255452742954866263947154250776181751085490907392024588451040211009574990318592983250814220854426171504777646376292373669802406242444722979876147939029327514911527685261706601231724655897889498421165290194585846498444551825770448628895408125272974907407586012939022657491860137319924917918856369282762952752630169028080646720811038478402456484036461690810573173507141418654395922032175560204494331115720192103092801447679823807321435593193814182086795140393518190880177949557756229687705860195507017948160646425988292428798825494486153306837361148736492214685690572874861339474709890066088486684204761449901193884548398756508322843729168545990987674677782232360315373272464742845957865663802009134865612359992838496288502470293019132563271457237683322199774897196603284139316579203779293631000497318206763235826137669995670409582107379472143369126340805998438047690195992434407243428341977311584535591629165404661240338079855007201223150544754908737831078993062908154341517118720517041158171112440919052782147372980719523348556685363476115483932007782978669901469142764069364855788773302708481435106294228458406872310211252539432222805402955030798487111799728790445729363162901645140203286490432810386254665362589116273344104317651852232346648483049019371246417085965578107390624809775804004540682701196154323532629220103391270908298704266947170291473975931592663451011807731721785064811555442168537853718779636540013740386440557550650634560876213010161631356810511943721478743297705935327936232529691682968968890895070714898095205409976702975351444410440422442327731491291886889792069081982943332447649186213061790452948521054137192985402616774007883078800271995660655962714223783086203956603238087101396667546246780388588788912137152653824659382756587168600634999637387391342397077262357270772688623489756677678281950375330502795111230731459861700591276749223700495649481546882480949180993386865510310702601100152593395564950750139473948629211398064359089957893578751546406607119255669514040956406000293517873258279312196867731537625619994603992660596304358459341418840765201682953987503048038663913913287473586346599015472360221739994695832522128330217705639337398533670514575816841711140319774653808174437357616758095758223931041036403066350111220253931835434960491799319194225172229910918264336762742352868008193331294999310279020800224957469693524589020896485023135606009280542853860993147966684852522918386646888829136269832452440505928382976510780778953933864495992454695259774401317319216706444978013631460407658631537620352405773205166228433330648316273138185789259748997237427895342356906062591543691892144551922056305966292533764011740667564716037606738876863275433101706258601203183747362130185396496714858647064629866732299984177576154464993946069720508290502459711261507445207135687220977326161930264145748504247280054831213434239234830670135551355114671355654125303593949862596338663861929412274339875316734314554678281513389956181107050238069662588223517813975337368335969806063805105409227413130714748455361792481316649240960556581635351001327519180469293097221266011938213970746246888948413686405608881211139531215500830369477834472732655307763660118409712074753799851975567498421104936891150364212025968877934921850214602086778781822248553596750534520223392895599856179833116545657250170678806787711981370601644406431819358575013767769732527408794576758276864213287709689169655545894913201758810495438475758951805505680400671887724614840340914103713804457301570833608438235016772010971529879257145313407140048788911096685394188882314002398612447151938520402635343657289215793724983438801009606410255594080563833740307178327570518235269707610895134894103560817419160504899143741830431385364403723362127045116872243274991780987822051662630260381246021330953214249324066954676915143003526652845561872734737276963051483180449761047354558981970862748107458690810321055846297153575921769884094100431782963130662180442002692214492502652053447067212229970822553770888359946197531854222962680757444905156606987949189184347583578819837138119988379281240505536977298847786971460776874128911862256718647252373660006914695269236217016610481175872770288247271995750512422234060540300460846967500446637078527726030444050841688302455348167872431152431213785779282340066229777143306851907172527261759663046704656302790524640499590089574913418573070184285622357399826886779053172673100813459340870000943257045622645726603303235385366190877891244842839402538363889724181160125336085517414239216911997880028089705985098934679525006895680136566024988548701998504389917973300445957145744951675488933292990390893797474662244267857469142460680516523254706657063270990528619758057204116561227100583480397598538481475922829169261576870497750241824470263852503244882527975323531049618304300111307153940752441517087024229338053108237596983087751797804316298700228477128957203612706693431689745489701731721636679628524160992850979090795681161682159239536654587776334314780791697451777792585660261117609360236969766949373196198901868675580730801288609709955919114100179562861515954876295786142462392113751703747902336751975618802382360973447911725148197604902268737342460931528317339285311634749976404822198246147629498504868154993748159313239879020318224043514265134434574604160226665169399162240041618048457619506079307411514989103467970673949468256613168361411598880920292768109608884910272684219916125858210632606864212873125043790151117223791524837419692883680604573189572506542902200748552936222379121136665253326737567545811413573138165084922668495944502037774480344340169952594172502886276529325350589926069122781869663372745960930774554490123367663951233114133646259581884885196430333992561615917149432012685154609517105457647011788586613555457146167295090878137110402674438973331974154900923568704307808821739240863887680982349880208375970902599284539433982201502555963322898597454967930769688048224513740192679519640944574360100518276812055218612031255429408229711106346067898514878145086859472452948515903334794966594343051584896912105741354971504516374171010820132380022650711635486143806284491383297560300516602090262136221473246623747447217431562124429999428870934757805024574032009129637295403994008852751873759996898491787166987805293680781663139296343143945454522931016929002303662723987604458756186063449832529552963087164460909632534085826438048862445509177274032567821130629630349562449394379637641696115205654206205393379795490919207348883257190765295246919476641692910508116723213020393487102086942966274905934580549112211827253357292816373485108965730813848850977612781178997272902461394684926563048418946189672067632451589366858438850231152249863231323973481365116727465038750628217594596233167553022805574493502511331938105102004023883214171785815229068518981761212630351707758455654553866367346995113481273973231738532266311243494485329956700788771714270016037867857257046250462661633688352981001003638182461772058848300986835834267375522190089917469899464741331105529959399077332221498526640998107641548658980542174983644118643879840668565158707891812752742205268776665244061832712841084306875914273618051537808246795917146098945491908911170597371511925311760053678101853977989072859309055253533533835196274825284024947096787537067398070114921987817799808910551751343811598054451935357017736601537896051060757257149373390877297420285098644636411629268293034227166514112557006275298546244492808822072568647158603979474948542251197045983316185400818524889114876685814160325000647269793010542854674171485982672604978105107983826254309352651709911729526716585621894692735093485964095116256163099270623704580118507957163121532126236690186139650356926684064764413706880375305722225514163026236177574329161598867877044138320400011724557338599081645968605669239383266552162567726837617468256010327420905912911639014311964702510679178273181260884827552677230639454164245649124794568012770928543323655868014828307578544890111214223124539453959432175184862160458889266378555828293653701643925010693028096225876417376087266371736186197392759475580109976481582426454677093435620442173228797005981477958844286123464991645563242967542812682004175204759372439956674233301862935384347308168978367921660021710584160564623883961147971383573171648691546290648034096638565905823828134889388115729802191887595228912918343229950129101035900034495054915357555800508434608094663929448299066593740332960284395755954498990703510756814676962511824403488032616867795332299249305647626339555848714358982816696822753849306778108590802922919265441541628916555052481039373181699347159655621715665678492428498052119096021926975912979162502185702559515495618789901259601205614253580979023701725785661159666542701861964028001688402008350657266578699135782643353462964007598341415111831861171267099945264001276512523674244054187024241567126263632498189035498982657468727447213281247286426119652109286508562894164881192010573585394563899493806265645810877134518254762002082420616961040786694705179896714694947348645669541396122126088907067795597887330707135557846199482614685262352797331370078618291378466732008910393183195466708445922813877411756085605902083930519377853896237653527848320935808313654379330981572854837285105522175049760682784486301369346511356519108405811001263294623257006847473861710963803182438741753744093841480040265779410695022832382195881658144410676049711272524561640825965527461381327944530195400621413706917681243797505763062151261383741709812751296946986679219590810212912501028574969758116408337719369369798619743775780166529571100195096387997125005921254846699747093018825777651450628982658023542092697337081806151010517473657154908687191894264230906226924814770434978300967089494199410557061134665954910395070308464495190375931025551127964338634697109086643323321341554947268705459645871964758469678313296181944635517440442379776836806780263297501529618277023339955098244064867837425530101072038787776382559511415219640881711739630465766366148251826587457062170301803646851434937249126767812086208529296606141437531627450606155247915263897528376517533745222249028094677733159478323590840964478252272474162016262276592282525981295126377927346520879571095992762186458560059765351164295012969078765152538790979180217396456882767940622312063649288609854648989063319545913274663967345858606244199970732405890625006245347800077104213821544765457848551323134309504320180667570691027911602562165552685355174093924943074658068130891244268152724218941208336679677199410046988746262743565368434043827930432934991604484080450520913067037959938433247576595047355556906638988428965128859242241181648798128658226889930982317946478364127294342559023033946706822940390375094977647133730367267178193021759737540007580472215419564682934119271199223915926746309737338326564639759601604807006905872566652027151582943690128646841345958559346636054051315015176269295915121962567066969451763503637489845886320089830339029705967759682323999748046510407663705620265823432115736955002902727761653967402936145735018075218348297708367562283919446214487983978328812972480406316295617642059677928672409743949305066815120026646416541559827072709949894200363530226001158868661270182480718771650219644351785646337520259265075827866712301979158818004261937833316784469230154699562305222910526775882162359077084701868854450452160846500849512030409082332521818351729116557154761551466172310085407113454639209874550084113295447336379209911862741946065141037155948619707679313140248250800629228319270544871767051430823301920356069006356156926833986672333528665836364327295028123353862804305670050047078401890407746641057369048710427445690491644264887950139067084990066665295809761153208168631168758326005770612461442543146071772284066425361259809234531493097654603075312372139431776213843124470842749448740108977586061774306238379118829675246831997579416466173616011913402444409018411198344194174943902276872915945140795745693362869268605638548953863522281244285488577390597697825751456985336542943920775708016287987080197314839257424354484240136235720906626950149961995480066560312470356855328753029064440968096910244082864208885483127477106699014162145331446410534144220813182843992465283758335532570915664689320135567613048289712990018457165926216053280905232720599176026222759845483864362416964169942266438786760709294906880053948933300085927558310650799393560285031703087929323382451181884348480608325474166438204458487879261872427788386690481719212335589857717491296518899380096755926415696264567017146135623464558369304879528499982368122413631625861915414758456142973105020729283998059633861298399786734883898944089083890516464958507306926169327597850328548774635848630307192752044072234902900347048691524106136237238099314531043232156616424201797227178456026424821154905656248920687579106615730675469041036315779628770213861462941283857113097191188228685063905980773951074752388005646720066138164372768141835384401217547544238884799249393878614646481843551875597093690242422428076430802598465552677122949953276102862033850893545107008776844183397986719219616137733953426239238197716064305805146276641598236229697384777558180911208440572428892276456753971595281597229878305204585286680106182557108520205107639111442660875343656957721545969746981446028408404520430105015396603411978523305594531538197917524274349313668888916806066133682910101383240979887441586850792664158386796033139329479762178032131659546005062681067691255372413724435786901978708019609046133392801092440218386157884856072385836978608753169369899139504001996139053046023665294899166364625100778934656398264564773622057453265261080098257608792975861963670221409884314007100398244540063469684870346218673287963834744363198638307252795640592462622598244952454692832759152460643404160164156264629260244294567248403064314894132045917943231189780726130025263186296455912163308262673755690802736597947512707569599999049078145297400541342998089170522775756717049660256543537192782398711894090000370710764716472868640441503220328351813178331072388545082000317840220032578376399940575335397369406859922625752118018549745854954881504646249728494920855042210549938424555072061728373341164836657388635020164600705504871649147105025937719563273287987874485687910991882233239056542391112829674022997260286184067022035272134414516625753413820477157484350054162934291684574972484259008052235946438064799962278064939110898048788393754682822124172514989123602870969829536359064880445269657364212388114683149246282605818032795852706758854185534248730348043709189434248249755941818812174898583759084254876398651491341251414800826346072660424377297542945264913957574286954672437042863145078347750759120688556915530562101887639781474980793901009338137415809298878869918643916734434293403498588927522130980920261688674092799862170116743317096591464696071072640861825614318153492838603722028603532044001655265156273793514228162128277164879836648657870551765608518241223271918192131229027539986588889577554078748913715537719061796074731230473976559808003846486372782443911303188436575970226749160534962016560253793184595481585966971060861437042103695321877783907099180265110493560837856629055373199382934674756989366166856170609739613665533565942847834125856952137408068549660385535465935440635131687586436547187073295410398163824041532501480892039464188397031641009439507684052250593774313131521920769653464546660771106717601924872709271787678302533841065512963875791694393588737071784040925161778471945920261352345019056583599701386483470700716256821500038274297697025248285841691989003013095758164120132700566785274057697082564102315127435349497612419494710997886160504310511809263707662417887784284985081387282269506130499880310107481397086075638404561977299872064941527907573191040767314245512145091952270350505256260619208792113334174554161624842530847551276339642110244839834211706512107122933885047580329340641985016028893574791911384899068373063827541239968464501754849377078339443109606844297130232231948682887516448790735095413606289108067725097068077794273986897579731465386243549899380897871222937989414413340597408109402462833237832117444922040820083019116528359350478921454474347210668942386096425032849713557646253228930523570765387431865337421117501835027475648089391308570253307880206905061226325810017070230608474643558973365117086076411137943030903885769034650613541170096867912511872863395384530763826437887968317847523740845193605595727642107803139420355010501124469631299538783016644806117369376849681934933321713959309288980343711081738513040894712483138558806452197537505875656625441379647241795614448815464867226017114865897711749004516686039412312333115211419812077419887896596211884020870887049355477720389493876632629651427531234037280923298556784724267111043586498740265909558511928196271909327076380601281687364506519665780691219097196270231847966478020394322580650966155987291154292301965372607096966194900412348760665690429961513508049899672562372301584332830198351789969468107218316664058081483838865157301436943900642580424405546661383437896092761611771593641623427682571607798339270048492544862000543654170307812793192630326108586668112133523614525771601187593138662919184086606209942516644369958864935451716858542238921464720107292686429664059393622108316669479554192457434119002855142356457454108426122804591810848078568827926934373079802484309696423885006026227695170992571611946106536511747922586742190023407646923375079829487793799231598727394226029697675332991556126810271591558829446952152789750576535014291375659002187300952229811582152518989576365909742214282493450172138001983023461056954324955160951696304141912316479044860022796195206126757285960275909999037395061162985512003168294280157053526939452598966175472270569122564591950027056082803915917423850649210358768850726559001775404298644706751322484065187148268409609482686069455456798796382122671541538941625146471310039986855577472932846431549147048536462487928343972694904285791699903656159277600606201792774730447075360822581179538164024573194852143005490337145146519510770204756983017669464548718751827396249801887862122573713869425619089620646660089604373083207986518394975051784149408174460645182280361143002609925050518033996822533909944980266913800172842114350092802375199378253258817885572265689138230492080501851335858293563793114978284437677160876460803544619718303516240110791191132532474187157892015821941337551179471829161910916394508950724468120355139041277910100359812564077285293413771307006512383194920054453566853554173817761641339146469209178455298289240616386100257092032093760539065151000457339603959697333482436637742101457328161811732079897359405287190864735784151045386751465761885208732705282044284877487542569604834553155482962118300068517247440058956783743527744573703195058503380070872730951280229591468158606432113362750732866061352289491999751098262241590508979746831014146666458146704964738618619131893481467473591039631141721948220585839794828577775399603525575843912185264888331899343640323199829844366122416589961402115218961086419020613618285151961346938888800148781598501887501344498901058518653104805734356968733684552646942602629216434004385179224880356617964153899046284653692080042995888678260110701780306726185179990688990744640176749580225932049008107643614268546309745572279091395131788248669517800835287676227800913072948150874440605086316771474031485085114558221458516157526157756938593629789140584366415744881124019065449120626272534848268149535186883981888361758703238229549566207443226244182686344037899895608746628801562076909562938251845118202590083737081370816634897944222986557462801533451997322745507337346227273357777157835532297263205201255850057572186445984638766390173980163554771070804424420193693586446307527249629724541708900896602646729758955060473522989536159213886097483562111202841600609922971630117312304985567262246586489757647533916862681922134032504615489372880586367061720241065094528951614242739378021432155776000175582789364423168338838247323979008344079035128970220936467990609971940006816873934849716849857753860142973290224707084101376146304696925216978817369571000766448973466744516908095539602096864099779301112141660337733364076959029723155187858575028706346292655856943161412367191534792614277112464536707752390690737807216145247251084939673381561756365233182386398585685821524303454495183150095726842406266144720914235967751069247493428055128018174283842244097703916215287387210690878216329653816164355345006545638283375087459934058078209671003774109135829917147115543667225258226195736982623361160343815353644979483427588276234176239203055771508089457481021642771853009375515224787580577874246458321938316644257027004268768703856831075880002666474752891310036277931499048895643567385960370367474061780304521810980351650429171664566742121212576296566062795275091929152698433978857311260274549439236826701350584745870739356788653123404491586396036156409804796213307912293892460594623180410298703925661345564149575238907215261261698593237575147515686159844055757237532578009455230460008005782841402765047544275613180926656144320113329321983750849979381542329302093377134817334320974299084146665025912463890496035605906972826942509048756548745113356912178463029512975777527086419716445471858127317226285657051592510754056834179371889325877936514997875162616699370012845234920072300526990017340583924687195154655146561216557229351302989584690341102745773125578806858035410111453813624164716712210329182476562991293932491139482320848417275381690361737717766250165904215051216580747558926899558272677503409305183081563381275859988066411275010334615801063501175850664819835158958120518887284168745084577203695386341111430311368589590664241880762098353853665747269070215264161363190964034401042712893545356686876794841297374684709689976664101428529724611208538674833390891260165052955877539745480636929794088588518562479010453337870966447945267698571988363209820932042370482106301384810507942791449904750901338484053309631721948191381851635390291188431602580546286870585345230426981729754208001088362933932103061005064017486230886677455561066902486951292080740129589672674845116671536730214878488246214974122358312711573467021562007922275764219500935646141122621749518763446136802833682970922382557208815403643574683253147102521204883938192574276079149729990935089158356083100346528909852677276312179101543729318353882034833741571154049776917471176822703845496176250520611746265448100854289672904254525903545239526442303234259134836599851880272855636311615105302737793373764029817885434202012980487641548891667669997608382450985234422545956345999185643736363249835322094518657639094234429894436126638791962676099255790470375837395680823330035406281985645562476334494548437360035113344464232099027577113062386074789187495237636035754417694545003736897160304295467793952394454015828162829304022821366177019098326318077926740182629141081095792216568487592951940653232912550744044533340471260340524911132550499435943948861202855363375249831127797354130553183996243803813851152187170622266202422578465108335970987840214888258845542611386322278891404264210898466407564561453673808928196745339063287943527013765250832019012375731370714133079161296103102977548713821375030321975635198911138844150722451346763536586971651437189712419312530102875839488155825888274424650617820873327341254440082296331004345401979153587595096885267836528501381988016827316995235376223529050058002727156361443543906856067715140945488683643658507034429178090896135500461177097062856816069321016657959394036687072397824241869407134468081419217804639987990756927506961967996856852595548918077984085872713272478890415917690811295720867787737054682073922694189825787065834073340701906675232421078882875727441223871830860033900000893316273377852583014801970063900592973560880886890386099886341731577720607591031398094432219583504738086192203355439541889178097822718886559936126405595534501195268285481338648868287059963327654316529728779994013108515649867069584897693246145184175245416498790472275579587485194699702309300013103178845997485621693358829178441819199324121098991935442682845232969226021628894336283702457588287538392610969542691268066506040290971461287697050238842932116304636294591255839099142786330195001484786789301212273686298537928146137028676696775380269470962887617971816377316616466246698448024813470268005903398453491373545872647844797104583188423125908998646484235816584868131544898278688111911129852881383211210624935876442473627844056743481953949336834562046961686344267467910600479408400406452464715545541201219269922048518815445664604223166588827896137488341663866654125958286123894802167414532411516510504033343409672245816080437199852991777180558911949730646608878469217128541719170140664867784784795002846144645888947919128105994064300180695276450166529144410856001774141393167426637124942198244618371701711492450113584378655063243144661117680734611129266171093576739386101917276297076911921213387939181461363724168059463919127199739115053540158888773514876538750503645948678570045547121998387788952195331779582907138298029865108315902949571329890478853759514418790606826783483854852696826087975544653105028460669380323927095252606671932510408449570739829250528594007803800416781387059501742732517199937239674693651797087512650600652565617269495439704855652559618223763209997855864196198881002221499579559044015000911083480291425707495632460452357154882170363914467775831706349517431666195472036649188116471829218385865781722332114984613532824657952295828607187554869059778518920228449097063295505072103481500333110636783896902892210387494361344826027530473894823360269974058313594323639999495168855500218707374789807117616658435176528139697448151106107609695056159410357639319713113062099176072426588975651155655928949227532369185921430567528584154345902254407082126559075298466607630989081387004835665102636799129515927323176283966709841967213602248263705770652668949832347549949136696506413459953755532105945155904008115607515062068464620786771772275222468730982706337475055270212277629773298554213037708848447681133110072587089476930266452364565761552246006853743932602119479460425388465571116840234278580866724057812008086336946991197146206987043247047923090613498273925885084707771186062132845296180765354403849638061351981892317185092543490274641060446421136947977290745995384116842262678523114743387678306130489190789191306813921569975440436553933715343950809773874452414891073253184321860596482145232788691867658927086045094682684966200272229933529082942747501220123272835251983863917722856383561062415097578638280909880775700941398789567418443076222468225281530800152614515120905421407642390479863831625269363011507839876101369275430840146895012536895710708344165361539449286318577305608542636258418578980863077394597966829313257158588545598800669558916084136225621792737884751909082435207821689827318402019292170787321778724985082162757971743888939091744569607918965615242675619252873233088974399594701291589668476391809953861351804567126884340296790945138755664376910211438380344296875765999516408383428901085644849422075397639391788662918559775677610750786447082304204000226455659093260728286184370455661535310206458269995072097066552432073193680747078548219280308891161179822369313050215273958251561576807978329829576023248440150824803817416781216112285882860191012287489482156059064172343811683202346308073306263281272885750170007832273622059673096131362022730714891493623021871674732758826761053057829823094234889427511784979318744112437704324417864295620410917774791035639780044503285325356867758587663077760291335962872351837102895147222321332456126344440585157069616479612892133695349271741812530746311939114368941959842831012806750470022865290835470206410462747225601044575077419896228675256936947558324152247197918645787087915168603248384420059011789940843318247077765876784395027973619806139636621880343060981437879253383124913667016335304875432358062028980103804264517448021761283333136384725460438816324352422412599485912446448968176815230991076107145557503367968971582187361776079861697671420176864179391998339759109006804034042122722690802474152999494722085153492615880460859638527881441440416066484224059212757814662292507366659172031544507679534056844452323014072286944751444652807349640928048741556152559106642103913335024657119720526968220535470357099450137059681513779721159497226790014351872437749419628531550292384703979180712547034869702590726189244535035536631957730248283988932980599776506638578424835041747288595303070778434624826452352690664570949677079952573169919779588178165270652265055363141608865509267473928721808429394223243885444108631667481976415424873183606398475589497119474867092319944379209956554389537286495891430269962256681109438013321694297846848106598554992582060850499436599584951653545876204498225069357716630433733075863032976573281787295715213939013417072945816366037181428901600481840483735367223276451021879982914155598339454044963115484856662240623879089093883605296376825144253141073644831371882292182735771498572651235381280615121427196009646022454591081118847245527261139683647560607606470857944466062539552634107330177970585816704857751511109180871161229116047610977098832511143725666150134673885956975328373653853126463936511882335376963327119539959321724029034833594938077656842992686574102440153309922952082612999607490017933985908339433951676002850713252544979809261333056591202477355816810292450626191435012461382069234917254621712249457254141815175261971374591639003212860356743045021327469287456240236187836823042755150078062257055915814405716700490037774402947030218414466233669007107101434287875748503128788215581794351210559297613524593954998847802232040669409726532994354731392634543785337640028674876700219557294248157015956745223793246310761492002927379775056349794664016341446863558231938437637968013920466862016730739437528241926373791088874322248850630348199203688336378624817569457002781057805089205641227227827686184967369794593678158928891177478561319420693976480218759773177040152622293401273440304120104145901984963753362331204841891009377724273123779847368398419135444234227633410424057697488169413688286298159041092654706700860743944568897536730926023637663613632371398692065828579851085176739850680416280119555791654796141458270209197851528394553943896356382715215603345897306357288270420699725938131387001954715563955585050632125175406493763651974390341706099610463011693255904806137114275216208174386868706430519999365374459674122759713575703920051190130758003117394891430153406346360073683569047981009075951076565265634485605602548455275633189621609719371945568188646823697203354895819881041383640168433291085643701803721441913485575575294795890287518683929950864208941976642210297669552176489277428979533055407614887510731370059752830480204741207172565391432877604691806137549393373990535688114628834093429636517576041651657748803315477535135728364180293769705379405447822125833468485499582032327517400742545876697625504393805404578235740448935969621993312102167716326101188359125737171669493479988564269434267982994590904609849672050223746305756488028153295322857692830155307630408577568601814499272069533893578357123099534822674481535193241141869033030562536196444422188317191073465945612431875714647225395546429183417763273054292123181330257641126799889954156698686938477058626486859911704020273005618683781114187695989626153801065272082502789123400230570444631616953682750610336991665842913643831099384021149812094691680493380586419125905248792951590674413284478673183481897222344984027915191810679574892282938290326653936989563533822169564089391408316163501286132276332699962490005415221509381115251602485559436006144728968326697970692248916804031346764567751746846905906712874152104808433548921830164270859918218900175013206944873391969512656410835653849609797829087374413006967426626861485642894953941410327639741271508858645356282514074677766472048103212291270815795918235097883380439271732994509613407024242564017772616371733217123839002587199932356709955513959604005422929714327906374070905609275430584270725873274058111287002915164753507522452816047580720223275355201793368072583013678410299255119069164520615689382314235859736936547608555750537162977251702912217848265546875680292816318970727307170876696353595986357725253652294207023575345202616759494410292272393146342270712542019280315123874777968733205419196431562874267703419897469810035302136040946719737969753599370614501574547506905301000025009457903007712713613629636439841212613434779305273640000344849758735697670033535903698148058342742244537039592717515408627432568577151551272066509939890505005768819741084601109187675804571618581577127389816790545696323655205804887581708805230172645502786621482734003550271300279748091794673058567222904931886123405943388733321358751094733781568599742298752100369455078855459095284817369872187052723019337644651420126512956585972318076138707601961544227225501040075154024411845863327709754297076218671424295608329856916429118230715554010238360501040751407150307376988357936501750399522972317343122170476265110228797874234158027117024534855881589050120994381681312418039352534572761794547898543395760641601532036532957617534634030225223540523443326577088420007625096174142558948673380491295872573142261157141181578376689845618402268300936520612474455574201407967880094514723609475748662063275158605090707766277394418899790161132524945084091368680815226137941741086946516034486283458171670846856693400366547644586245160771229258733242926374676992622129915911951787300199407331431202791722226056571360143949308395087666280462787855197933157619835818535038541562483268132528744870872092757849207385228310112434721505129272732973633185683366845228736779011915935523031520460268039825919399526270874945027496132891556241021353860071062956699136293731548011967481923103566622530279656557855301444219539088465091489361649262888619057211104097232354107364323856555418077340167161014161996238804396076761526628587803913563268347011946430969342927928955696264482355762713268124092439255755241176905078713919725449945225954680162777312833220907904428438350513377839883283490806837948115175421188551518837647667037946551712351346209229186130300538194516149994517992560734294162732206706615433539008871303458894366399099478541911472786231988819372952663118734775368640049900786113708565439774416977138900349624384426437244796933567856973935765137924002357954700890977374017958260597909779391222557367953003036516890552893284844498500549878255878890768735880464752520864707853606312912737976309072311574429005262174030139011450318770218085531238928946627899505358361686868396838261348599441718286749029719282015642316650993417085068205270518647129308663933058839216711688183227112063164966835926171508911774808030589470944294029417935812082184194771459783730478619600861159076887712673029171550996371275061416618011961494606115801016891958634472183173039658616520427593460910072651345688099221561078053434537195611551730881302920727686870966560092946472899593266227050716094484699131337691769822423535382898716609076716172629257028297278736819745449196984367892014314472764035105352399411501890122519239929788184523555842051544134783797718911597028266848844911953957799548769779376010220771499845634929208206803876871389129081895443211270453444995062692536866544122539251437592817826564130843584003450134793912725892743895447374397644165564591202669939914422259270913581627457572167271596546220128801779458149503388955294528634994293498516894402104992521660896886011035279529079627892021337331073817292697749331105862783353712556909067656064664729925957665403541821490180690420302724670849707705463106085982460898209867865841249043513054627397832938590794124563695544009894954676221274752151832643321895012156406700717000230332546352176278112478182879152658110519961174712390081727798436070635550782192647244427777352835154534403421001756898222488588616115385683471698084018366477100775737716220694385666439974035348874937872195928645780395127163355575950198670555177492884598958020110237163040796773061819306719510044419537819084418278418214717097163899459893785403379206337170349527735810650098910497889346807709099368713748185763042794510275832377005025629016806586736499716957631419808780256263744552294384803957124175517636861025556470900789366374170259366651224722907798815401977884125510960786574986721910373950504977918052056169219086252750489942554245974863469573047145415174117969140786290594748094161358875842143462312705685835777095786308578849962883663535488206066758817394349572169217266585429304514429961581758718140842550329348013604447021121698369052076394657272113710142439461066538975451954391178805278650145995976421604488698609142047079885547126841553741207243245593135722721614061789909632973931445768897014350261642941284821791321715168010942509924328212871180279412616640051830066267477741411308352435586825802345177210499596672094435378097780880887669911220751320015463232819731832978771985510136526640408970238928725555559298989138330133245200390152003395974736348547207077802291783782903924316545382757589915590559144999280047950243496524390389178126135870789351968543088093842264434798623813422826698957404516147174183611782887428246653719023095901484255324157290780018545655056890645658849168328178479855870616394432420272613347706077294828431195548095398182884715071700183949999646577393441952462986231473921365718257016711948530616322488157827656394252503832520228165629437848870658836071492632437845303729151483371123818101252762295459757726770453585225198406253849737863835382637343244301428600457434716446447903202257629475906208976368339777688925834529861698194164750736380510916571516124371730567190930442690886525244549623045153155998611559899636809907119649485678370540543211132081639163396647992865436745702600314824994382103421923667846707774455650224541096729811075780765091403754167681231211807545821173567618490825856156944590402958585301922590399053991343193543681109140072321901156156460949783832284408474310329233981615720592862543785180699015430231645536046847668746590583697370502353034039777515268706703766755297905917394752720790448129346811361894583127053604824636836801315282533721552005764274628139661061908034248338978547651553878257448858252214564861097467224548582676874745042012897548122092083062001906194472189144570988245421161923450833954169955562034658848337662091311096135092946921600046433982865302218998543506570243815217564015548342464785216634175356880700949907794158214005931361084278912486000451079491387689424089256466740223500404324435938954217782586199754038286369781877102539018619459482594715837963415792799998589075001760436129598406715426921445789699325293082000396034581175332052333646356958819879340608810551820196197676503975120871971095117772560945406925897445958878644259868943027302851337274902441844668323278436525422090586443065033867191186504834923005128790969107540671586798659460485731120163880208881534960016648615290106043441316424278106955912546756009400582541382393132150885731466509388193011546285824945766919546704650453239738754662400148499262840526344113820249316331637900346608359165061763369832270146364487685998741391104572045313131668419993984066771716840484281199747814233364850841430742453593473292140145748663564289299271356832636420508686724259424297910237998246212809122859641508442571144353244331935766476223202347203000175531246034900786969129523917649113474589444052794498378206334387827396722892804723526936848827163878800339754280318972485803422110299779396177964250144996752640062363627121834683473899511761832529485719105230995213964835267567249929269301575803408728070255951821618953337144043582062429233020210791285139939684123091084207568500354261897063096733620284622277879341583810460650243921658141754761059394606263173534417075239926398372402941522203283927437492599468464556422511098685525462170195635278679163344616260447615092491352496118437833047049022229426021520290787019404626879438275854710544671386338652783898387861899700598805805590968635650458988829808940267677655286218332029149162931911394069986903024288887223914771320833708037761709696845356806442200960510163925335109722799295219825110225034112244965856677929923534451212231346361814971352910834346417608826434970743304153961996361017149660601698097163141978995110336824938585912532233474601404286000568262248727912789542834959178433630285829345562079226937090701007667596588681824746297406462421245365382796028549440860695956647574894811128919805277984732543969878376695056959945964434266335147334662856854737539377713522113363996572971485660252831866441328183847027378754526584780614696693689015047819795046974419452991093398001247954870146760810885650623362407427796591313480084541261490209906676352868160978888500956859271604949455221287307096644803975880420708445012620200324406643329829792282512670256449484792056501393077592758471044448750967681149025117866368433480599359987243623737358908477404708589466402779882327499624376417216713157469088891308165610210491102440316777956280240490411046169878520936698285672398622272760403515682131887939383176201857739006513801129850559245818099228306834455622215461666209059619973896715861046377251028602768655893707658569721986234212974480874727496571545247348672934515349639223554142203493574490393745818518200207398640987198260246557751071977326764234304088766742767722131698151238809965748552891365432203636273333892234644270934175418408363650356075674496646255776409644453026141025530237645247988909240563906074019453129010577940918063460667337682910534495021304762445686709792477370348283146410142281651398939701139926119829757229710264429873345200940388281704882486102605628819838213895446378575005943004607232745551168468444171203299857917937189645295261731590889483703377037304938688408078903321988889999484662285861336680671135004769097834574878370708883615861226467953413594485321368421403263512958057950246669585847929717100536068743448636434708013040006257049770080633407232859550947304258411548266800502217145861399593171945419973643262194210750839737564732647351468063373209462246056326825556699838109955355189474176996735037100037352751910829967272504203699312170856640982093219849036009380607332293234523031224090435757241508148934106266277443120814298101930083661683740121646294789050901304841359864427943256275047560074096646767907596848870432127798365420843495143551855732427846485471718850607494941538141177363743692861090455982872548910539559913038210510063401721060665617373777311350024795035391696892486002156772635429988932376647930588080546809789093923265634796463780368499410195670966884237898226951256715863658182607692560084099856737105863537547392693417131003842602342059982688718354012854510268995310831870162214180697975377432526150436805849973426925704366731772041352884531812398625081602142608253561637513345176387158406304558278023449655560658625902746580162337962620681372067266301382828687635629414762937384248743321738395437240477778664537265751584091318419405540757104923303506904987184112283698526374778150184130225528670720592127587353138674932915953669118549685222270554549343850791494500083778668363348820156614617620890401651430834789286335834405424273219849009457204630055889527985979997758213024314421853702160466495153760331954567878379370591420370127450948851937614492502814978436568543568774324055872156306141944013767332272824241888766889494601075906737437462112924592378129683630505411534205454614779790859448897267485266234246402359462221470342460770250836799329454595748503439509098401386516482126037322579292750138532855155715808582693749592365904405176440329402172916944302369037914710735581401925396033936983200930624195793640604719986900525406656069837432606731699390928237849531218714245533098847814369345289294351981247419811457252426629436172933240153941032465856492176279913125904367163324186053988993971409394933530511096635086864936891617412406477875342765794256408499419361053167557654960108082584587900268106518349636886853049960630855361455519693339803098196448266991603304478324367564071547904608285141106001772809205189361043684712848902164833218859945158499661161308524426818513921416029914119862758444137045793122886087488157921168621527690714992926520790596067737913845919349976362612646783075683022845319170084052680226936694625007693442390449039598936532881183215691507365094429768748830371506683163533544810986291403613771315865412699301641179099330820782500751431564474668480993960111203743054406544266374374184099438044304840759249075027937451338028382328513487204626284551131744912896501369918766680748898214322824472350245115575613744179998089573890373260172303686155630664092469198152726478217295247269097966793393393054880592937980837189003227466759626055475607161326205033200972313163269621850244596146274599050532921028910940539627025745817873909639052275005203899644503927248872455694470964106246903918201205016186738608453772170363814224119185265592367933822376206600690926556808378533930181391855937117898039598007679377104360138150399660460519069285947632982333688749018465036550390595912491789658263207520242621142636844724437524533836338789114364092923276217088319280821187300320307048716402114631701330678562309513154987320024926512781774263612372314741660870437635643147218866670154042272547241315383781057213881420238941642868407550009902097715638057884993355125532721481935913911354411026528490721170803953494430971684024628148236314150948035506220363415449489799855898836108459423527221500168921824615101573850540356451236925854601964007096914278779761306309918796486670450280881185748608081000825608428470538608892798096525551043022868637423528541908733022828012277583976280796234946480059130307285900547611374963748694072898386771093283379110147541271132355619249936092771569952616006856098952091317215329553179083732604576475785482578157075189465094523635585486046392725831763380849429623458642387558606659859899332222686293372208902599490053737816709613193920607176015454273588307591750016783878531925918375947683052904125975698516350690239338841204535176316982348327474473332099087357096599557096430873346102647105031972115021654676221906632004518481155726329544542813577924547648832061176436182082585565101236288528821842240949046354865664687926783809220482098663468703657603594874144438221849028331295183517382106931844674666069394075877995383111615530901105785922125824725495583202001712504083605268359490564242594226436331836961227123875377304774366213294703434228851001639041554971505646241500782941235542913216899692898130442669042466976810311556957959993666068298334710460046807508203619182641412850395120904780167753594011132405856649305572317970284859580574534326254382970433664764904584949811580839774469897213917250052536341803456625490017275202070826001361000101068952850499208518536722343932096298984402397142291259718654900421244499488740084428569567689663914170628661932226364316361999605815235556070904542206338592638870527470741085261648107577207687042902773780641718758150652190783391568659055803939534657232315310914889100460524169927866401877863565604631788877587255926659826664247469049847192485013177662519804102380266414904000263101555869918148315173060165623404718247763035475557951536922806749069708116032406204436771040748374009576556788401770597710076303812182217243964143848462383092531316079006269267453341799149765136248788246888347605402838267600861296620037289441333653377639926862893793037926278691849278186768334751655827594473948447150495692650845561094423909643293020443816718428804858919127442244475665418364550902905770286349528136565387272000787334439845109667879941750530514215691541271747261483275736752003041942787398199505907982692275103687056444142797732718899703239159811941365182655612964613210947534052407653230820269753895908726380959491895725841978297798165048153423173742210362431203630941501362925442493036503069166181059316019997867683922185960730598427860676498569833651796249243983089117623039433913117600186429266129416311496865590285338945107254964532712287314787889366926166761164191655830784408578361343590230813399320767504243008591291182281975743374184478436895682070992050410006857033528492540694909837086254219032216256538289420953541672518087510729861681763734360350435898515515730861168231800402947163387663467947764160286881861897892905403607147034639757040443120178835420005427512616798060598359400738605071147133296840771223930348355567664804137511414556195994835913473676574220279394875317689867781975320849331383569638925420692087619649386659802056247819969281474891048000140500226723293896256389208235968937662703815745158069938144107306094280676140135693081326179479981068128483342392588682653549382239758228532724833110995939597892283403409814665889020003049815964877760785613103668083655115912302305948974455339789733648188512018085871208885830275860687348522757867616791128618619731802295675447916095190222643810947308297680553868118492836011454326145100361343977397183769395803463476478544275625972990184726306599211315660454261812535479414223276140733967872636870134148082391819471102789859531001364051447130467335968499168412432331633033252278088518324210299952035104770426622854660189574910590885723099712832854838592038610092474557651447483276905539724308304398229385144769675251722695843979518676830566358624712785287322488608093120224687711014901527718866582023600672514844026861648226888253683264355676263592900822120547810667698221026790030144279233879487238605420458212750888252203360279927123832425414439567645115106296470116941183684284738919941826267010430215956358951500545549745967113019789617677436073972553904948355918028632520423266150364144248343164635971473782761913651143296645640103005028664958963027760564409942082890613070488263921846887860828285906285780787764895950848172429133939320980059310774995549292452928639904885711447361283006546754840246024668932899111156022859612966283247450204677921936309199018434788804723928393004133934457255793511494707175324139737739923708433800901492313654435061559278681191313371727394627949004294932993768307990622225313968675447437248248768110239418452261320575014383183171584526052211212547335837968917235426889587007159573021201684460698148341126119553573684052207892761235076663283653459083375404919938322925285128517278579430821214161656400110569821290441162236107661432991814714050150127976582925513331645618549661372775580350496858878060673259908292881404440036238157614808498607683363031039576607872310789473549351896899667246651831926992402355529546312193738447978144735501754296564515519280096989049895406050659130777330645259764950531826963809953874755462044322981778778741638632466438385075239375609870664593302089235424230231600756528706094360233395521105952700499040014586537076773568284262092652038633199613529700089629795989081318662299492873069700150705233597320456499781051641756603552900099716394156241865724537412129886745644501705730168911845433778268847537742750934292034769970972098105213721318699432901836250722941117309722179778057892571717160179300067594328089325868178618230694307548188880589083915943578082759358244429750944661111130515960959397762631034030066648877451204300098903169014381463096279366064516270734587748187429414362011740746608626968882661667822994905242744080556024229842842955492579701662660852370107073674549436868178985013094655101905382210920020275264368033906057519435144881100884697535889334139814349761950374023855151812662236990029371904381196960524195448200146203390708401797798658605968376280882997118108648085519345904284145643172777891441367738711097669421141098992126924202147575483471162178241804591524731982916244408118900225007881046082081432344775532130853572607220877131079903960755747473692826003020908011538270492291748339105341035886415055099566461285326319446064550263221358935255345688034889924042948814057203104887536106886128662704286413924460065866017588952881374627629898547402346269605216970373086705923646765885850015607895413464844527274569222387972677728873605720234098793415467177966671016725365025102222071063196444705735879800738589613734487078103070996263501862610016077181133178323186499831289572320162211181223877012413698137267360328519742392665656691443363604406574984097228920981564477438767530662155768501015046172234373775025048203961741243110898373399530277478579447598370408630547356994125010953525772016642438021215760293507114614179476596809986487396265919060686118578961886188703027961149306054265171187008029625524920198764933072887240029640933263972786701382900498603673256266051394376235030686664060449520717381065819325035259706614003238262199088294944754291128234030928757172003685866579239624899511392713645992026123999276112105493131221461418337673576511983414994408209971679665255956673160744999309226642792388998808514827482220612880105453663306205554511026116206705543572480275322744387465437687284015762264928465425724894492130898431489687543288187959864543245418166722905663892825207749563516567869839877251712491297501209378636562992947012934466508913357711555345214435984851418764178196579475147622985362288788375547853825493800681417383131878018831830311653212463240463805938668561240082380691123057374074621140839138977595988005653869165811070715548707226114491670739375522337498386942138278672845503938277782871077675685881303949764444187736292738586246080324175555068444293620473040285665907259894778249342102900247854439660652618381053527937409586776341732742229487626714128714946256015241697769999820011356393884105500087579673761909746695339591293040961441737772542761224587004146884016974415279663835718676795347059550592759817419461942098750151244963712628344949798191797111004192110893900919040326911886904009063850159884957025401364100019957531787186180541488727761733445575223929790602214834792950831812580767507794679456728775720862094357359950496691884468725315491765675364092656234081742518029529925703342664753261496398211678769297586855929581398996723674295116369333945599338407536096657976068326620215760022564412048406765817008048885883017625410949759613559292732327618250869174010956098094601252875448239212452124763031399368662489599126783595924193614506256170970080059582922342959496930742412152187098983080217668899773655003927518503605856184069003132955636327410447748016499875006221076671975746607263911564630296161810534348214800281941672967367914689217481100728815471244933812997014016965275686484914357077936182580665311010354327248041042004968824463249138075902565752608996535943174632000810135748842732838188141085041856617211146278018985340493443439507467518913700326782118975033577246618491853436005850822730068063479970327106281968165513824719120486615709663624967028944395771884638112097646185047805036692264041591485622274382344593276764500538827185880927430756970432422173191193605521026072394827564281188487350215544985993388765021583809196665327809195786234914995584166610367303785236828234282949957958506522782747881040166256102940006252566903705519966382346472887616709806528949200514083458645594403111609277190327200402490899154510045171724669031092810825247575361306728146326829531789476656957912993943611603852036369961536456331263551756621395789487118986408974199786927355843002171364629139514564600574212189811749919889966822737728841060165446888221871997456333672974750580719105287019386160887475590128289601418385917663415668639454050125480194016453084149275295908490044689488853523333890285302876356304070213689046103970671012080583165556137041323555725904556568202660252817151056526931687152870274442643373495994246940690404178700844555254071345874270078581796774756556471917802222529871034847140439528166899868136732233841207513023136489065111597936440448689517879142398096169390915370456073213023356648733768205834701830590643453379803089296077501221538461579179601732011821488136523558859631638688140449594158229498173351905277411394212225550011208818244153455599111231484099765354034080201971555071973357125667054457103080182300856342279964197424861245674253091435364511862221048322463611600796448356706476521756431027346367461383905418702957126917990457627741971732522053848001807952889045348823159056084743042570516701325428686084133536718907465766750757256061352521082510942076753413145668937001578551819850471993696795816942740539459100845486327234842859378631972316631493775526983347866755539486162992100267003423623960106159837437163087119772024579256365479086133643108111753892610881719846938829648646173835429471397858490532451380928039516980596335269476877023596284806642974755037129749578339783959916340456159950461099437346485412889400133497192007246165553936533140079604964047608617396431417624801277934980703210833550135532090589771453971591251978510209299916034877802374215227007063407573853026773188602204068124975233354216128265201783369477865328985587158084963924308355464181917142138497638438053061294128733850991045728546850629940303187299361352181781672095437877024339944743325988743900651455731748202389205051113937383073290999822035170303041503289900903525296550266110018989255323340053429913535971223861883153075889729879442638758729645653961706073833110131553176361147401385467594368155844880122435657517703215037131992326579800653485692969993333369034963217583095943382479738918097349547178432832618541060123110649513522990057891573454958296308247049595941853392686954196945561131525471796773075480411851695275183984370894478904028624609718151519625398380758143957585567007232403913559801127924130935438853400588050691480374070928581235679413056568483048671610793194602863163939344234705404760875926896110232994409666821593173510051105361010483595283218985994163275868061916716234123919681077429088121086536865699155414370551220956096527476988370184109960147286426421530473677031049397023469200107800185529270841035546302304977210542479196746287366208726420232619413208265082185354568005542052898272055536895359545418744939718586473681114192768446505721508402238419349688647635722020815073824676666417948236784056900930918113366914773716938934482431494832429888464573316697302619929119145798259591493830404058587664793014661874883345647270496827069586847730751349429980593828480508230873308828019374604954839936695792686264666660397503632372568232847170040192565312832456959703726503214326724540907540484275902318247378900828242749396782046153980845063927477105336703534642428257207100021569457766280261122615096754312703914136869072221726887164476184619388761260914997008009656162445335186406865024919211846444407888718026843109365440046919789099493111579077090081819482512230554342127925546242740202766478175374927102839502109879933704188237117931259980488282374104753319944443761127038313885911906242317959440844314697247636605017532725183181334227520771187903558136113444329386783726005752480389742909347655830995510905416571582292800011118966822390049831624860445636096550685914953569819721657093675330717582015646978992567761043983656916740100642547055379646370109099273891577756325309068546296785813139582499405495218648800624775044486804265639727986623745086120891925863286042742854766292637867485734039623651647795375702150130591737399412170290168126792140084380136683052980344142464714950749361591993299899083946583933693455719213375521691694108423149745351004648855120291180161776320881918576433997157331221489488453682124824727760607961901270246869580318789372219364784946437122542359329544553279794948320300414906190593335615310390978798011845885756819428356990880862160112208155115281562475372444926463831011628736721797773667795410561485885221611489224527684037200453946312714253974410082435869475514685345766582556488304143547244833707219971417248780597367709759240535405465388745041546978734227508903010772175983655429725999981858007900712306307702476541489978240466264386194298750489203336290915110701057051938804861993722042159096543464847166334666151657159887088361400409505148860308740224705452406874977020800224264353543386786499978417070846090737862858639414643604162199807359280936876544860196053439187294546325754264106968409667050069771762701538297106031370817812961049827165770662205863852304186944058596637775715302635575669028350527860262393827990521747561534174429322432120196989023538829373682632381024521706804196443209491069250558860526404271848461519432733007321641433015064859451877751069122733048694601749421136950656919876437781813133539143054031832084733976114686358111421623137931217118716857090590001239267504902016417601119452056691404896787010555118255037845889877461538904644865118761062803334114385563728841896679440200629386296843191841338215926438527189848690994031753911756541654212171894910930746025541607168891526391240125921169078842424646940920741679725358404099170242699112052004899022552466000689481523116262234909502923034207676973657390619627424744309336515758061953068568641401006381704779881396827010744804100597381270211638753417299735027940894163221748179787986829996745093869143541856582332386332110449527043714522584965471527644136531354759394555488306176520142869699512508465443468301059111529901566640204757159457898263587632605705573221465480574843362492095140891640085620178346525023611616578368817475971150306484698288947200512399499068721306415131636468686450086286604482008427107450379788748381542077406993216361984756414787969087787627811677202236295060251323857109655454499778868543097252391252560338036400904451548902343001503754555543429905661312944020677947018438676884454274686688481129121699186635302653866785839019368321579110699917665646673495357629775776314646795736645589821658186647219937208138656835186515991297774562288846066185282761849492920426527701535201940561767399152063816653399838857218382862563139139847233741259897738527229494745293064760316881498422442601617519441050554970843484485637803033079619443642514058774455773158288175148004125222319280870893348934223218316719165533954543380997794966913744024066920587328890485523199555629647714792733528733265180757986777444782591360156862018646217244270291835371722089441427086665137850928709132749890468754403997284959294854969172179604742729724321217189461385833760963579307305043161574937514218827462488542666168498494403462007744247738722560364747443370405936967320017552008730749803168801779606200263776124791527860725339994148408569746793185917522354534909754555798572731488450159887803221618617517232140997086154246856395163758261914719828774738980968551249817338708915339132116971982682650129448857171674729151655747275834226697315509316486513242943984994662294771660161325039866553962876947919540048290947770868008558610655951844880876510085255981554497194565109477308109526352094840863439633230002987577394638153961927054191801777764998580615371411740908543864540308588965326996235848694839515223055710688597324343707759111334911337060060160922076579628421657302765959704780578053650458366604777996047190807911222440278357132100829947364093406906968353097481853995916939487842558614095968257265606156054916571707220043390483168109904054171521211691450744009158976850123036670512575166826290553572960075351691629888026110090061111357173538083637473383069590472566567336292625924173821876914146384896638147552801389718731777964341018040025796179868649607428778453924145400735955282358906308536105985776212312841493154940810985589470735669286967257537989678447069270185414668396003272221362183941423669607611012243446224009890848325461498340055045164181483212291477626980557502022927791932972160964468049784728503410211748529934090017969784078441973152874886897977546092231130824658734563120276210696624466514685576879259626523514464069740823427907527859401315750651421279190661473998037180576390428230822136246908029039528871555435804456300619368811919268024295560517576121082337595835838069586084458702150748357996748164380924253179142136889410001586786985157056245429366243525609224277609004187859605347986243527539853465048053229373564281932235983112032099461990454827831759083455426995439169687429203980156801520692445607288434034211851486090076902183023769972575469433537077358788736391713785368806183481261832889565469416266712577797555817405438550207821378205552299677544121526679341792601225491028719303223122293592784716019482624213077468934955238180644838682824627855692927342438015417805428991644372479185829949009271705914674508647145631117510038946692975470066428351622972464288775720357352555863861631944329408721833728809031603302475156932547430459474623311091131446896340387651324107791272091957629791114581417188003905064457599061690583468214771025765648780085658436481882914937768871084538807041733927912513462566022642059073886270250239328348135572295925122243428714327905344638136838371235917093620058220956611067185641744602219788614179208469707215706568428311951241591222443046069278559901147498349040263228305038232136090160594899691797150206776400050358862139283984834627408361794749962711567767073993241512538227053428244011791200357517889630195780716801042530275853441413269747836581127056789813612737698164398382249682350463433160592167787935698781859003309566165271477913335064551514255633898535305309489014198618243428103872377569016218449005989089940462615418805635190248802442992582405183816784204058556437486370103075529556084401762546354478562013801354951212436273194131521716199700380793121170347544938588421122205316803408578614467914490273715222345763158704708349295115303533419506637004690271633977359169253636887402839744014183458795947526188775999611617820406568638552378513579814402037030398873733875433877682179334616571560350512609785973255619357733201719908947479330235101410134601785972570065227107876368669102762204081115617677166796734383946570115172330457070914303005750494216719665346410840856974268082730728736196589680277664380129765601980103215691801785181084424818551704746060912794718250081117242766494816004589522234642674991860229716924198604822442067125616118965032337097592989486181267862525747570621407570904432774629572228724058348050409353540256044508696110377149924718153072875315651946951322719566312176921407175409471799522502635441161563767647880864259198435007037404929878430549281152436814823861325175494177563954711568658574157756366140394570053723824675737806242084528434924018731692004001425156488415254938703949540654055076963635658962459818769455263393354716928368958859148621586473874815267697244356512985601794004760344355497004972679736238550861335296064961751375330707945901406878152091246743839879670145415384190438181188010237838613534101846512597975114082625892660040555347348377295738917311188033314500065927450410240121317836803966480619318679029743369804223893995773266659503402639261448562157106076784112633486150504841934226719600559476124663816311501526859934952291189567562376826130863343519068112083006356707522845115422162096846361656763913911670975539594616141446337086518619367195658760134586421903542531921748097101960081521795178904541035451479775161341425895580223749466178087476748673167461716780549710595301345513157986855732624712160213757209490077927326485293752283380407461375466355731879493229797357484079125220412128794785237051529018504120437671932242221808820723140517950234327369458182840277312337662457608736356650401019858384440437562088007985106891548955462233490668935780054338744928818921653554715279767252558856317471833753606488676924679164793112169267694346027984103607985711128839431189401536248913914605293868837510342970823672565466462665753248446331995247059775863560331101967975016440675504115161554999206444375053750054656282367508959914410519210786839084589583611017264530093083816701195888292736985044359277396011548500970677448029846033799221100883797408240901988118290377584507004509119472979463177900533308459227725025257159168877508983688312475371474060988087465703729451127372496691196335121714863450474237254512859370604590748762103667300190375876212670048226382041140054482685424156398845498826911859107910339229989015821095724264306526267832219064370836685689930307754366617661929267970013597477906586234941321342844002494549603144750488193854846080694214893476837426453907950730571179262615268286308712217220311265719842989360676591318571223362113841118538615360658328446787923434017294030479792650454038645999509910248118650122776715936621002915678552006487990800123675738895290138489750259032493960230232066003214085680849271502692601704880601792313536540136315397352464618022484926448153384825156691964430308005899751559498266889762708314075322758181858870663426135606632572450853313719111080172268103986979570339576379705110027017300128174510623422779794649121809032037074867088333606939604331378719710875174595678793594253110150122671721524925028185397116582414339616169408375926847448987257688740941791119074467142352896420542781303904090400040337826101713707338705916488780814908682024744472380525358312365928168090368337676523149387384538857878060791570178529650913965737977708787673766113711465637848284450817586535074205067518079822178907823298048927831569571513846921237384801026130739824679811432640547746933132833610693610093388915575536388316589024578997201043614928655057896077708205520025695700169049002721094179220154244356238696953813554015063367858977631980613894115146938099263597644889368624877258072835529651575521132383258180867236592406841435607656108214603930864592698060298481111091405933018065643373130000898808470333576088978637477533927679234151607152369320474316536767717984324503461139308962917713825647289763640748886657719777531465375411201918455090769012897802518553714270454691391352440080802133655479536936333280912254160590980406392166420578393527665243959214711081303454587521833117483916858549128522475953325931267902983420034596972045095314704722311640058116401186944468377495972757793130446014115930706517118745512480212409913772491144237421217528123294034101414146049231182266683136564491907166560389983287010392028390165130295362536532956024359120500813960783203076807226697016594948171584169781979518089977154676322756971862831996613893980526049973304819487969755766560749711515884688222061247105078760921627769605316163987566622767667506468986289147185649088432581183207661073955901761010048446141005464535843456499794624075089332110400163981012428547862943996915197108623707053161860121158774497038716111533006109056311714793826318111516472691740939861677569379314420808833738400942251963383998872439639914309522036721332443004337927495019270132877272495378267353866997792188292327903987133089050934575062235685426290715609981864081137841495189573750528909874449256432507399925348929621163507648261473068124137728100625349986136752494135549842064450150824045760639129463370522651051579667970185385808338955605484180003664842330727671584797271231316222717689827488097664617757905822256968668640612088397283366598914864103507034788898782273466411252292082184116401835760408422504895927570726552623935709577640764014239512516318948750479500875961086246666614647745783432850043150423123298636945721384269626965405097144651468255788080661773543053304878090581955979932781221977304979148475674274195501463518634542623559166481958825991021727878984965118225101871697240730806934211450978782088930474563172709650495570131937671658081251718727118011121114951192441689753565022182006885349346832184762893097104970469835723151985875778680321132387740416706069210429917474683081794827628442358782804175794295763108519709155586443566210017979568270524739133117414809525200264992855657539048506687659647089128252825155454941733171488535346543824690832919684588067601979881117008026223996320226974924719749588389059208426649546081169958138690088842732180387833863147167255950507742253631038872557599128805335130644442584519350999329941015435205422770267631287789988738789136160252272255493222150562474829489222141908358991435701024057236437793249771886725499417827261603413097286887528630603077090949515691243078605421912112837776535606647610107016943549743802663581258212534746332699383056559666231584801525284391592140681525127749713397786341623878474536695760290157027725555289534781737497417725791910915629366401281017728812122903203670572656339886982984063065024792981980923245111488992943058909437090428942656056232233215344226978228348734081049376450363739453564144068278556963679698263511414131257472170280391274517816689489954184809013197665677869160032856882662867071479096111763467702015008639116749470645608510037222973009211697137140648611761332391723803789213584583763556209611222175575860219916655933184646268278219464448156410090127126245088165273033091571003456683419426877311265927052037429853339803972779342892386029892982837798319036496095390921921115609814986675543072120862264336188254739410434612260579717732391096088760856904667664877910072587202767751557707547029989492823047477132119427446729167055660394715260186292814587897897980132115969136957337271096547362454622149166682930983724819198817574768812150441859212099225053595436206485850218496593669213380253517322178552539539434333237055805604751988216687057822550750550191992181055944354010897770668157573676707893278851192422425594149327142708397481223656647087765217738790398709207719953390445346018042369607720493678169051867074570739263030514526847379011674949065779004745489938373967423375289892683363766466682013990597809715835122632127202328453055842924552525898804391980484613933558608013084959703677232636914374806036632452346796240211559839001724726763854643268703739569491687287614490371757618819262118851454480260124083740826484354057904011858529929937773757909353339116313979532243138398966891889621750243719048075724292345827847409254724393640763570439595571568215856560845121407591858367843747529034982025102675229146075296143116061135035938462722058340703831204405307157794560782358237854000977421750478876007064267727211627723997898994045188591803137451197572380717744714513097537487179244251709954074013871083360391271558440267135806889684285210023645173074379806484815745405278776245381075395338554801610594390385789119764006238783194320829695222517387567228377474162543807067554867305528212451913388780821835580463442910372932187356083722453229080142950293290811965930942371374269223184392091321853263392937201256901384343127706307922734324707835306260489244391259636334168489117331030399909088667904564774070972732633876123677750168329232885773913999332216114975674514941665004085299249603850023082640920904349178394437095826489086060799285335252618586356688280933249440709559644691839901613012673137685840278884260331735951145641223148997217972499384950255971689349415532778242599414625221690998636216805337694054407235265089419941821480155662606179225288248992948595083679487659315754353178847234268256357161672517569141649984783787748072560882896534375829865669644824465123600907462510298645271969323786521844297528606352198741591226608846409952178288214210625965907931314698056513464120689600621098722488251248809774561300734082739102367295832568153088411944549343286825943045625883350720525836017023801744291238522100303571635978698316342507494236949104470330104763791041913045517835934451319290664312885822009640574705528074623504075102103121633371007170934943566437522760988349348509116407050135904463980571293228694125588373065378330984844056968537203860879498492430405225310135120726492465420982568746875072829808661463759887452416427955280372358805824756721884597782134634394169555873370502754731793651410216751298488629027310942951448094602472294954668098124490147339227594320085212632379378221386808711586359344981507273266465124289170935440230285253173656395714493574804226864377225655414231115402400822979147823582847374956003065776840185060768769909500763013873019715739768590065503641475129753736200330204891809011888740849493203229846673237874689691349367867508983641441318555753804213886838197749417018953054473587766019873093472001614683791541253843490833921324055334092152051324229054795824645777611473962144767972784259187764010411463238877240194798631922526725339081849787926097216976139170742256719930812801902873311480892263554826798892435789522519800366556014889064825647400556247029762199449620595604111147231228261707950252707965182303913832633367348781159894952626005449877721510600700684285613308456224470152790754789909367287636711195286614922610726204703824878921426455905686325856789721191434897073763519128615171149309382865761565706173619051098436248357327346297210227128071374705192489393093284150571814784965499618950251869782160954564067213378380175125417302283418492559745993321044666607670076746590580904766366149648208723391635020232149469685416196905452635070950465659379794308774315441404998379106123144875477586471868715746548491216273781580087967946544725354663493292333708164919779020009050191466927521714954032654595058991027509992017557716293750782451649777512672155539605506784985249032773905723897778327881319168016049687953423856016040547327352161761438053344026453828307029687840319047150984030818941928801160105768144783773809894644234421326748535241823443864417534082202354438206304081836695379999044620563788344719483363207114767987473966447911880861846743020865661582168885211592591332261730074028370933593550574527611755293806391726170698261509395812574148322248550331428089562962108318077741155710085027680972762577108138021821933321557394592810362748438287401809629735787930836019557265119983232849328174288263030706725853308136092762972458861589895976767287415533126347817741637245885577344987907203793202245608901117881092234193980009190476998211754617409288110443025943135224611212327404332215471333247572898962905287194354565603281080008711510712750654697642521208755835652590460442439743560175142281545558747637136171231904847699368867796009656012451337148122827816984626924835177001634159844735804401474783953318583851974548220506833690469826322508472850358478008037850731895998914301718579771298209078990878637624543790053924749810529285514379462602759946269184749013517408030838867554465389271643325649946050608447316933505324226919263868189401454715371656284744524617536622969308174251846212781146744297890660045681991341033778888817465002154504414772475346934081169713447747779196307681813830178815801675348903107811332886583334979161156343931908698994452943157312368772592461157159723829182825592564373868586963406602031575545207321196769347451854329079951383116865696703010386899961603246429750118545597052967718854755430503343392310199141998013895824875978498983633960585610643481628495596296391078884238388685979237791033121228921718358693259144712037363470334854313501648682609762301144366631034558124040431579339416253573578523333873860828861541661443000526680720316251667193567936933248306062653134547547922001313252532551179980873174648922762499311059832999844301575534525260510107810733566257718434662493777223615897931954172156623503785974802295545295671045232078345896241905456920066042715190535459252952856658238043016976502533749241368941012610282761116259458539708658358612951934861946343256619135529204407429949101653665978984044493265955819663035702036040099771325925686771142197569542978684690538332849887033089077522286017115523383013765922381723984441262029812185547851763620682212216854527964354025595859562283829537605793537184920948314255335220056827570573559740344367434212227111897846637686046820355658008836340196473891952577018920411286428061352881895110538445352309003702376590681161199906901802979488258711916991747111407597916827423456948984395811135146227187260773712758397503051049691031760043607920256730358600020139430872256502001582722895338835798426122183674076788209631459910661270792970740002237341159455929039490055661747687622803014492511372926950807755564986884773734194869590806572517723827492232451809113643541384274510148578702113719268684729534970056812435107152310657170509768541693119745843423290888713214915640817278379423386206550471270497315349923980880266505903315367376721781119985923949447309038581288288290037250083398292004296845480588363123003998241108733258716962983817307557159997041185525638177937167303427938477289451569584761229808123361424200533133510340322386667014143489571719404724445974219146881766785131179226703549646257561258567183026985843881796908373962026520600850091455944310855307582726411697484144400814099886817469071349945845109276527815464450145234614652472200455723639975540659533363077597757110620785314523271567992302128304022073534373299569983987981073325850811951603648788870980049807176471250785751631242349800082515151731334971314172489024549102489947993563749784416608055879365765125202220658921123590392780509364018340408725374195153494361228625991384116249917379196260796849593890608751505475211221133040215733226104561561630807378907614391758287884167279278967140194548022001112262393664912144000557727846719563045883137179981466359231301570593154237214264973122263756213992445524337587521739011853364329644858429088142686299915111177937221516454448633459099892067893691995021885737853601850587441126581636310047251924819092632059329448156073543011198157747222917250390295301946769203803269911216827141478668975351499217207768376390192068808975296724820221542804911556258427096688733234030317037940680961065330054325308494619911179984746670753849103785021432934189601578582683637924956412062538222796233509226296318989635616286260759369805120956015144799394196711090377312149688489446960780796567150585046494004897486328930505680342707040564472681436077258039894748276048505952725511135691680841577902731994262245128232269410753363447219114218016964889956976276562650957290867529546407464825672958609897723592343625485168752014191167781998643512799391233490179131399223504494289848454290168167849002983981015587844712602096004357905910502489808983656869917667550604331487984164091185784379838090788412333504093674418685298848464489105703118097055897587227242415657098404804240046494933192449267738792833227447330641351690289141307393558303083134253669537018598113287723059052357747400666617517654858599102026545789785854594540187306383049652187864198056228773521926869900046873265513178958450628658015860196846487589949968618543644026898552739734723042846611061330116659461854720574591736992672066067878385274122728834410170178282016359125690315075999169732119597156287481397971508580587428101295036655939023523894873347713667082557053886437763030335873126328830064395835495540020417283213034897264125305029634773590073423742704086397255792299629895449132748047605633920430553556538329731047150351096789033213360738893022563365510691753093667650504399409702248621042591328027127068651585891530516183512996612194372209809070473593310712889514813001665188008984149489060165545648587727161411680560456237330375325294934311200881195485514700836879846585594043899336399395729824517618116929340178636378639000922420115404152246220822650178441172931141491182522642838620976706259218395186311650492375548246644047748982020223219282970681325917232226517191331417193578691754710848380218855713778551855539807395942137317220035414741541211042698393089436042669016864433422247825700964396380386292836697507448035410655388016106995143547105013203658685704540343355262139815542702765977106326619637840165352159623812109946220151738502005949823540302985812688045957632642701572350177194747979430804179598493175934076870458913315411996743727270699384799588487133552590789211360007120747286468957997408781954863986844535672621297501626489758751768739373084967658290775264904664610861187250763342386049169877609042557427387216512433820404833087912394365717170693548882083313651273066465711225260507096382983141831081570687941691569290981454088703954233387548459275164370846492021022463544808778970767532908193587694407179515548449321699560679631772752146021183280487888895443404206895471519084713037974197754041219418224761141072346763719620306960475558902614156454972823445121122018060673068760618239614864645547410241148092788939786365450625290969473342934383525012597835236216752017416446773040867262965815381845714886842451137139806213502466917894571063954298937294570698526999008389177435337905772770880755317873740946555018500331791967236730981247075601045188004394089233461441502626531464865023434855523700653669574713814866340158162816393663185758465898326056050969873138873266142537367276622079151947686021433383260256283717431743647602863001142705057735258597030283482805048640972565458522986382752290916619451110232586716672613286806486001886475470305039144801695698736518971296692689081513149465496817985313909241166035242123107657914501977977716647889478864147145186875482164266056229953846573053959950513620294914305771730656175748327983144627739628325086174379538356625588143744220664772973848245964031097166541754176209054725829328012875328885931344237070891934688454571699155211358027829166272128845596116099599775967796093368257025754653056946206193113706337362299637533807981817853296297005012214770171130165103684782444534466450092959059708136264667150354286650329382734125234430260226692063798845679769602785860359594405139542565071980007017568885677277270269942357387732456951700414041710878979660131568630824026669112753432315045643531136642362220136494337065565049105893982848306457820714691694502226576238114230934622459214610482966064139082658749197567890189676762894711011683304768391655142654006383232406656252668322185571163833049734471212205322970376109729985928352446903829677189940770352928769574349976395047326578307404772725676449061002886256367285320321097104369782404643382678988221139631693261385161828062041518218025611028452587150095813274501633836781778721026508109254551253546430708486077895404723482331390861704040140026552025625820486083825847922503609769218050790272142405176420864031590080277312148622703938240714719733826999601754048665153518902605479234068382124643900208550838341946227962572463754875609002787318596791932907216008753538611348197161465472876511246758537458372758611175202379221802856277369023579210164953783471435841526604502302840887166075715352074841933226552916376353241580065677543596191537155965800721360934265345690371495519376223984917957925734598556817479747585812686761226428533242351846498952322962073609181627880842024148637876925012194048040016249461041350500501120705141584243151714936923961603145053233554867918026621985857970640186069561204917614109592202363122570977090224800917798559705276280155046636839951033787529979751063507927178929240341493034200265016049913723191520775594517659457059801448028920673475664428241815117634446471299187229494393814025264746274092817911565420980818895450647163887277543750614615898985504239258499388491687963423158445332207146876290878160345051533566823596399452495597099932654855634263124092600200394995723561641533651085868533368252896335066039573487709636623225881246222093571810443126777709013749273942556047440470397029965357847962900533478467566358359548328974149833418227201347834956871661350012030166564652175456051063049115902642659187005386343261240419340996298639456541562094325089039496876438138541750800092280632953462996030449048418985995752525390340152294483333947484219944481801203311669558966847663647487782326257853087754566873231616260421409501787923212844020708036846768549002988235362140523141198330217692384156822521357581915150694023926222677137168492095346953299725836500669723019767765684204956220462410048122561230660332099322493177614852664164864414376614777305335559954700462668593321712338495571521749648121147946585513534712591995983201646584470751724467533808289850270831728876412700722844307060022205396710318676513645795985960181555830870037984732871672139108767772579197810682699981552591103808544015349912508087537728086993063812801239407068083945681360825110626672139685254539285043756641857292569382563368763437600759586050773740900843102724104094212939836204651943197836596209867566858204014290580771358209329589675159867345143512117148053543445610617602814497165263109931887616480188312130645237635409317023817129959048196288086002104335116281453537028492084946419973246566154504227019723023449142111246385773955970210168351082687761952275280801636985360383549754364957689416476638073340471868554205321191783519100421990523965950709168905190606781274932310251104923576177065331054133086480404117436232209923014825880286708703353799748921827474702880311637801200339414329315726075179145602985485430424563410204890630737066419178098183846217198801897367192904849654930633353002841334516102027977415875209757904032905253374802622063154413634423084919561632975113072005630745390025310791402800770104611646483916273462323386406737769856472299564791988835515993691897983934362138534143326908064023808951737717127117191018950545776589185344812860450633078717473523229717132663558935167554284175257823502955278936684652117189966657478410971879482972498289141097388036003749533784393541793584853122611092045281343064029789308067988295790195316480429335924270319990035000519510461334090344135562523742650805047569115149581840295684819134420387386204627356614116473858989071653967510163108867789495796494868122517931823595028359276905854926895544235107574584576226482742001471354154899048506910744692970245486699150544675906319829551229531486025569511397594580850560617680133019925035535759738237637383020213646643925368767256155421384311656786957781969029422619442579981922563346364890169698733685639699126428543457452887777327412153781313350353439795341030068547178130351117952991177000627228632006485966989741444573986417187720295499868532214390451689061377850402515992072032713567036242719655690580331074030351424528095299272900413470536212903039324641449403853683779861482452065749204594970126273878373588677815238538439946928413646015521384578051502124088556109385660619718848014445210332987400803683037533456524008262317078664925005482512014560736107592388969368541303374881226868914859271047102690150420775622382966991888357840294789401340104260143101173672275564087582018021691623102236512518904823814704783584926706710590333849466006745267223220342665281618722202759313615801538006813844844746476376188936970737577265239588538234381586158627436512963241832714052185885578441699595380386472002910272140702963347175590709685182148527900761933354976113884462524869863713195646508789840750199469102068396339380787096435892753939161385016676410954735560440272145548669708570614432807514761046483432587492924605653327028319197008804448128209776593344114771088372649768571574514748068658513368662358607166000215484506421281399739192120999188453509249290101550923487589123606730550083524230427059780374290609678888100930798690034224997876658715097113656191308520838651725416769496086343312189788756735691897735785973597800002546386492496854112659477363325723955913152940309465411714207120940304181529811316345776792027308224716990541664836079327375085774053132236500720344943115130881572494999447827931842463400228086421744649366749205386166844935999658997644667738313077185817493268842120224004196687644594663906566421195295267231780024968201706518876759847157617224079890804048602101672801726153091206165610560863658323422845322676391349894381698165172159619144766399790205560699181400250348785067578795107333640859595626125324349323817011093617522322132869507868239113823842073393606323552403815569063020856106659537059784609901332784133904923060617334851839394722493285471272590562579865123005180286933680146033036132879210294343350082299960499152867128864088841622778535909955088269094927976796919699712529841012207356815459672214548244888079373916654181593432117335084486309003411787788136191965170426453207319530955992733703430388037040281201856591094412868808643698232328497571443908904822878665689379713135219477999081000578390227767086818990043982825106741056081490666013262176462575002655430934769373318697452891337381770241552890346217176688109663022087286713785471925317452428835412937562607374333294859360027023732832897987305750993083273574158999551143901012937648634447020261355437410593949985716481528125496362252216301717971469940396081534499701041549090121520736923324030711790605764989181404485359350443894558381933605154192209238042741787084610130727363138524229863607845131160420863791946400258771635542689046401566227479303423963130618041089052172577252441556899240328637490505562070076330930686245055233651173420044779293269454761137011650815649252829691080774379808818864388638334876886683560843174867063553224320554466994923363030045189988067151334604741979536365011425534416023812784297599654058224405152584544426311892048107302797844260821208627793359117722247978383980926827425018262168789326422933003181843343668401075391852752897226345014861261708821734540970611439816424237549708021697083231237041663377060704683421263793402474050160691072361195337974765734996684891170857146639748608941533230776190753246620279580853338215621009324706183693628060623030805041371626880082730686466096591666220066664618831969681458218072869732936049655928092687012642576075454494812029900992818021019963375880276299330299176271536659022852562260114662564295605709445007000557987204599964317040869686198383154100215521895190363350941485420157536086009291967788174600289067849687741352327481549047035075945210815879153054582478511027833123829118536845140247408798078769517154193928726530967037594648260411143034586740919408147190245127406127562036400851162724796994943450172086077653656812774444957048375671419286201060532575940134711004684309420257320159187831349316098376031203977794620194127936775479797257418546519610486205519613903760212870063639541557364862702541487557954346296288291295131147201707063974226160967242218954898933991436813124656273845778530588165617813040869448226185654435939856777711449372475084886552307473886269207533491582669064953176658539175057169374005266546024112463594613693956496878758765521076241189498932698623176948784771954997359355881935588383262080445123031308089892654245244944928932870615416917589979662947564628502759645210818964641584314509536397607615015629965918727974075755855607243934674286310594595696236698379074581181706210690007496643741583912360939843544216531673593340745765764748999450249119786700653735538256933955603140077917931277291923764837398436181616126329122842563318541893414109443109526097709791939271646339491590053812248813260063651449327797858253190335821394830822921552519833393178918894104613548357803465136648971914361244758624996723443929845578789537100056076968746661151299352492374083136842377153355642810057062620312277332585878566265176383687177064888531502712164024141289207695043255130145676462454816145068344636609209817219103686825591005423972768894465673649660294675413465584055770490774179449359589700306959107565761406236571520255651922936186097331381722195748501553963879599039593914519562662349638084668742738060139445464391120562142756627601030285327286767260635048848734647197396448286201758413065090331194308858037651309216738992067283220322177462478164263294653713570153162788633865289303039131805498023210928707229240932698088661323915431269622932378655135594177727558499332459192396281904586333841958523249585957391288048813014269867490531995409834678623411463908147465214353581649053388897480005308510778615415136686990171973675592274517282085191154164461843956662526515988798178459685101961715008910366172491563776650391348831991912401013868960769900669376096399247880910334689094750865742856873991455955777364630541707915829185716563592158697884618535314616735759584963401752597444304768760712752912856456060901451183137255067829705408518403855631774003364893237948163256055871435939091964584834285200225548826038967700234925052836014791431362680481279711042542677605352216897096541252799261391522098059941467311229058980451493545818497123903778045804402508836886374295521692625880334233520687955696666449016340869986942331885454267557416188838709500459055916669922578094577241898450773067723896432755565166222499819249641832262501312987444691276071750947063132350257729899688987206636081046742926334540871094248117679052301513236042052474315784295272368678347468729455803173723286213363055096360639801864732053697457612273876215664377077952011961996239586532738312541995797435785669203547630730348128379718129478612399451167534970996689915312509959136278340980380080744821421560932806754740745311994776332174782481260438712463767766763390917118015373371248676406893785612419857470141268322918476530311299773753579628682997837602216207234184301768673630825479918671633182433831625976624010100000719068222961296396505666146584124989236674888264989756425364906493653690851590244836634643852215510358767547880361447630602186815203656946073481759454438423126223196198966294882157458886306703227621142975097123084243331588343943107868446612954937884566558592376007312546173542368785732978438311498111870192269714236191009218265852217116751511952984538912739087491500308701199980282818447969186466131508689267144334817878222881424988280007159377903876138182205701012939309076095983111428378806833874625429624362100986714669801579666199259038565800998607211174627975100022044695822421084443039564193493708792229410110552370613932399674442784535391996012747577647802840103163776532213134032620884852964664836403300617089538660685599113612889150893855352889861700777492946665879752044722751801484854281759128740800943119236447744329876283021649878848422066869034546951714241116169144839888201978366703767934336791609560428173579641779474355790666168168988256805247712099882980705147615763399715222847695232703607668654818921391860349422660278523524862469603596567766121751798888325258380111741774322676911506669822315582608373706846159149994921830206201976619879873151091882715657865315466513265336277581647938596095025246017711959590638950564354353177115813733872914955574685847988208621416885636916242326546645333459795537035747680211341755785526358447073091576127183064575156443785991070386546687231157339049587904460582894028474013819500791896752985030849827831978337449951113915332001960640844250772236346648324348227054162539805669194116474257564924732580682889762698716634025101362425194457206489557506693359272041472229010737465151224997137923738334870917167716300897720502855873758677794439454719180242496881606463168876615071214751926704681323707304864559602711213026617033880842197517683404545851049361652836177398750512992194512448340017091071100151961427539243812073190628104075479778382924567487011598816306501838553825820819076385443100174220062729228339088554331536369692695226498654736341996536988143104695749540325714889690072277525214865829183847182527018077273757210391710399528059031679958219291657947509810591868125649100546054590157383859089079668525079629152017024182447294743874263412670908152109280660636832568852720619386927856111320208046447518494425838556934838337779171647421431305918093264283592404244299983122801537099400322883451892970100536765871992226786529704482102658446702124818285613971152327303470641180440314582258266230194703284726433987021154149821778847512366762339690311745200742600763562246118902085016528248119075358067628405494460032847325531733796778800852697663699276522873072597765578127926379520007951007527150824098520865606786824696054468210200069608528970796220390047295568151878055162808363677474956652602152875728092131602286229650546683471153026981301159047870651865501337761374739789440848813327928011268707847231868605576570211191852399478358824246834514873962548929189620735919920070173561159136848982479315136420143118158651963566265667334287475535342478516194951095575843026026252994239346669034504209715878443623216282692425451699225462390079402182416313075549839764903760389742654796748758444835227202737052023157907774371569420890230807506062277758231160397853893645565637552294280299626810133216551733912466944516535102284912976087426969794095591685509141213397009540071324667040002063511009509699630808678397520233561658987760283177211118704197407677955709949361513952374872123755026813585234244621632705323393062851298566505088131653874873097738440824750542866002286931144190614266787998275788937428058089829683983224687649623081916231233573383329827975953531318673189162925563188942437787476367647040679407958197217096330030856318994155762906518955433469263625369741090303713284665837277978310742109456192981467610562082339936913741651129868310710725565583535126040617314815196988282455108154846007259332260115799776247204054864927884663790869084415481043618033899675813378054342044249094823374341378850373320132932647483469277748789927329812974578481625537332117453697432769636089553587068827719083792243423608076208449134123291604916424232584183112128437702593224005424735381598451981931913733200701363512324977178419204172408166946953036454830896183451527243048131464567837802734689580740471783896329728782117967191548259258063761637397085571528991357532743240158348132628220410871268325257668552870096143251940317280831998528455998511559187549377391860218211692742581644206115156310762020689829168560847510297041448752929779597353331054999307209803391250919361450962028812084735689320790835271546208754861769845818171393543438304064616532946703852113583103549405854087499182580977495098622438576033360232489801146398568642430388098703300820792448563966321664762069021845916013076672048535332649281664415832286778081485971904971160170593066047791107452229196913803395585511501794720323407294706767054209497073605002523066298735012898666658921491424118938423159510613192279763607013513143562237416500469008473591376007288880337728587485250921746374710932715405506648567319887992912677542901097779007381583240837982174656673176131154426644739986268904710251798316466064114959953549639677471943409683274585794342501873516319638709130350191753662635538123674575622616680592578535564699249745274011546035447943293480290801509823989978796449437443503189660159120508184347073716365243427639746830043978956433487990349404320330807424317167326680206992500682509547274427169387607095330183741058059346340001292308616611983224335726744865656109776149608976999051769504876297748537966647694735109348798970969760555848126815021545482551273913109936700099332720577812842125775949943664750170461588732374947607888333251970284675555145893039128527913857059470264767808356148221353760301307701040938754807641394227031880499639410925633480058250209375965579954009286417879251709653314915725631672678706774815052930857262084669995209692788355820799169737132458663694489286699892929901401167884027510327565024584308328816174541342607255771643422989433842789379305103617866669485047299395892064987475624660977847993802426711148520723415941869872097556380032443466467198334101494361088842704086002271645092061021153112378911885250861637853372951494357010902645143316622853086084698993654129270800639822442831402088971443626542981867825491836819831567163328736288415131259187972139680144067116746328454753915060244214159677639644347019747583535659372759948952343123003944917247164813036468929797433058809180201379129067755734122956164667004498544936532020711824146639598889217344749242262875338438912356040658684988135583145979178640110352682147907881759723948698971934057614862405929237808091121278560972653883695600886300560145554942062023141241833311851862413463381572352224232807711902100513098772310284395834815475530974992261692850224356547442175528017566769733535363068438924719216952644242996541921356235147585005022596544505006694233829107710481002105960004694744394313830734276095117827659067700858518494715225591882580961290168113995642443368388058009885393073440451342617894222203093492754330155123173005047741085320669912054575506041971517272157522947024985057205153106830026026276103806041066693613810995696817445986997851497412697859631513364434443487605775800979892334164219237899795184590077479196555669073156793582243017524061585217591994952186998378173231826878094885485976272065955935771102139551988502527324728282933591427451589558131538051625676056906841396844532057764017560908418728121675671021590413981534350637067649725146335156143692344523546234125283077173055858521530369075605023576074975723014910468703201317070602921773633121551594043678240160501335253664156475350416335939456662627602249933009093932780584558096211114502533066335338925274921500354781312568537932411899491514917772427363113455006124145656781361332997972569359330078571422346010290153145229783230264858068852324802889897329441832981794503073676082636512902926350265936661542815534479373777736172078864887232482439234977441268821036694466210502024989909711840044178950029433880378740225671257710473271682207355032047190497356868652649601819412335758560333853513614565104705576290603767230407400337307495376892892845465943082732688677904883364309345935485804557431492518733751097119881300092415981445633137697779723875997009809648087638220900188125174017868401043229996407586820268302342456108482256701052163289741125104892821394894142632495897865941699996454747529085913834825015946026905846761613573017454787611549836244397162898500211839935639659711878987731071442614222096006744074822737636907184573082838970038544315416570752944737674413458289631047275604805389830151249866063687896429031351873605416890146098730063701515072100462948087423337519469683671675941730874058512508171179325671321058627853850275922974360875438649686488748722622358415221252284825082756831153331654687186992361532498893699300481575679069933309132443506895438595805883877329294128396514812653973522439907218615873896467240595633287908751584655313584130651428448265501198686256140711743821709169506829622549289187303359904446725609484941028724405125918469989079505122144992691093688409860303775777182814725485368225332318856028502338919482021716133534288009536414332843264824920810712082405533153851319233256410743024513760264796070743759824690731113885081577829143975516959287484446499736925961342400524395921389898134229543737159258803684806047565180231309150702414424560497245973263540685548665608473360244116317119908668507879341226110080003928156523479155859876498252917098254213730769704584030804344090479315647082032511644128797039426950867045723572517357565679041104588990554900188256952120489272559379029439724560747471414024485911552459615260329197002358962077955378100114456024465375218836866609270582780017769980621631195964860933270166146990156824318479747827873822376518968074023203036664945540801486303340724211313887239653413320297708619941823998714964695670907462145715454335360417198786245111819477715555185024439153282613343021801752935173687827724837506195559756623001933199298421492629238706517936695456800956827221870711451948392510217932389316046010264681057408195572937928809831396039815470730116941935183394673922669613289289777234304603523848304456718514628456513910296497021863987182258235049824193194100753046994723284790304455888637198582876263621684538202420605208140443964688260173614891831217680829275852150375565742489296100470628899091041998854371111118218251820301921274327791548687980300940711022061216117294331768895317560727640602278700099835650792315256579137917879894395189381073718984702278547503934926058737914892042901731777858876234402639814503878189816017076668921086296592440738079122403117855543440705009050782820283463369500587527199271396449575259374396108507420043803194124056048308462434846389222176533247045712857824240094428817604703751769529062134997795098613601489070430608767746188767265003041634961281287151273915475622314013577901310732261624449319417733111244697066869927684723141213670387951272679080580379683489977755823728614426347169940823320328696755111838973002814214900958192634346965718124118469874932758185627695574440689386087479853409529390600583595822645335001839415797195530107983090553369456215852517166404253064372301618517557325011363700555110004379459731248444111327199855338144960055688747434701135348740565020466336075724432194914342866710008169120135915577408278821112666878329908020588119104320248288072233721918846074700637827502052899802925752299507250465200168623067015037534343700137058558805218704517070373366639530108718566647048831660529872090775257011417853189671550539404824742080151840265454609476619824374151260983670230102761804627820982299083044996400107898851982941494142766789038076529527173517143039415360054692215306618088457271554145691639912201003991890555569577154711015831120325074378867964838474552115708793001614154377201626743642688670233164376750479940980660878070844606203363378417799911736259888925760626419174629380784828602637810078537953405232657874739036016136454548215355364261925391727247830477544794175269197702737236432716366317863263713867936625816794868444949477502808903521826251890237704033869386482942120079613576228334168481854653108142821928809945160023568415906317445687812442729677353077086150870048281336501034768715785337901081067189564953695578527292490988947039254803549114972423269248252989891576247234023291996994524144794755237382211545548307666708949798742765801754910020811561160682851493091741874686724506524920534122567755505743071047668002750652885740995267433919119302808479321158172261329174654100950706612528221437153534865562516422979929935889500024387190142909918511188994795419548601966174676985206368023918195696384364739369049653892161495322892753911286541729967080920240800297864598735099055230855142815564876384679062949876818034883857700477509254724301656306917375385072944431084139250308889790674373403871720354667829238030117260723941950343968238775325446897371747210534605771185430120235646907675260372309171589867976148833178383682895335418656568362731060032100796175471670863490927461304035844662102312385251885245828830358079313504786052269441885799518804782693294893649511049835283654596936243826331901370232105877681286231029873861609595601463282560810538566522110841136764557172588125086904020334782135804286983065263037964114966107069367740210647420359785590507314555217580516661640219253972441357316181173252207289717650352018844531357948078341098060573471074167278176342352719583161938302167425719352127321359992330011099113425674721281418737046292022246073028747213730158817841824452182332974329061183269263430995198938713767994879831240028427226774755890917881178407301025230830299620775152824627161384548514941835080622464238151878464762705604532124779461294022485146602045775417103022226042157748557381221908680844479952854034500293930133526421724856220129615436921324551932595425624640046004070387342677468908313123639798757444459373091066114219636854643476362906171930464878218663783418682751744460404980272678409897744652185493990210848733586816053381156976416269738731969959558596634350437181467969869712709768526379959953981184980397161513207933534414862385039422948681967841990825343514822671539950656210451422161909751474413428101361227683942049139832599566406710996336539546314623219209812612379215124900392096273018525674642892237429971045230580540858504325256107485836317329028461298715660075327294205396650856457997221570615500138977988388193382617578147157344610538845261296952349803802916744105782965380098389203141403245074756407990619993003355429133548450591452513566123817431000879674445699194073439893087543176497502540496185934356820223316971330372398037409785928541990010037570036249948842335996164087117151776740231008139524435915220537492661344287952483651745778056553736207933151982994413927554568504930260208294856313566200880561831322917697440543947309210819084590060355321694707627219190692193859592437261952734446940544067226237251673728840720596102934915319931840738230337601362105845405950154294106088161282932882767454584457030425764260215479823244410073042077484895108587928980212378374429628620397510835094157816958581785522141133919239127385079813308236835074292024914890431706472370955294317966781692993896147559071664476169088094683308110890518241173004068437124005734918233903625863003067631008130873425515505775750244742545152083383583208692033874812630545822094654494401938557478753784508181930943955208606560584711199802426641968267233152485613536088470314517277725232775664763009735091829034057717443888817914267972248822330678232310557188494346956564183420096518245573747720088427663907318784255575107506880337388504149653625131055136600347739347931135608503545156336895344129947843217427912677820015757469209575799006243783348183954902881747853002317252496715501349007203472543297175149230777138574883266176354103501194773511792935032300271125944189454684974430510687922287210980976078329242848873943046549849976028199580709606544381463521963155062360734103677968719625071047522352496473479459008054467944752755689927624540889505827132704007249162895626021233800814886564911050259145016548669524750333205557295370895089236243019498482425095447363237945481215918627347058975353528993517469788569662985259997071978925005698752846482189369835644327732220312198461761153187370438897153320362726710722604189614865466637324342641299979815547750675335345637696003901556534620541796834154652638112262641417189505921314509644733031938804645850086638531424224552902945016362348019721963077550292169422702523522061460903475980202838731932048448921657824097672910215462919910817175444804746899544433088389230363290040346567539407787704631767749403737516763480360454974123775345640214426049697180185492541513414017974153237478639040906374412585533168317963844391303100989167424205228500686470684261012221598884482207891487931621117122524614139126309893234946586156350573772165021564715059309304785167255233086868984232374767844339015283450342887657436407909363709143600329976234926491503629581373463588438325182963221769353396794082037983713136085780364963406629418340567785364705421663672191705765825065075355518162586465507201294034713307494996163122941079180103716822499407645670162488062983032181884272503863229909274111031592035007078875353154824673652908444933175812289672309755066217683635725195959447790725839252571888942559285048285560695117335700908051435370244812881711037912164019951113797190221152919777270867610522227953880312765041534052820382068975422669242603129508923595787953588653389569920553744756914485760890842457457758955886860433665124327767183525961770155737882267810404742875635216502843656089560469526488826435321944268487475130924742114110227757461561579030175378000253457610897377948111210579034708318392696808475043250444976284489054770364500345895789908350854260079734589161496679500696859015827137172271599508372954013740810149630689957386710619507715652246164924855067888529047792601105336289283237238866417275336569311300088605677587251385771771273497037227353227014303100194494275961691571778346686298233343940073350145307043179428278186612950232968986654106878271006311614583316010517298940458069106273019427694771728204345576475940879130800699030225665987722653436240399600915672494702632683126997069818827283900365723414258923357062325816127965180242409214259845110079472475364933068185758789475397429512154488624531985699362800544646933194443606922761008525532433466345139461628952601287538744261726562502136985985708367215165738152022567468305628074750943016103296503532001211099002799836482899153643770479615772154659509130724755198880237655170851216494980097584667627415012421082331360778150469108112995601754074445643921067603954919300094047361954790605897543240159042532037798262509341022229890693462154091610109813753355137766436946824969676087043358671190553227925080587334637296552783878650543107722035205196124895435603803844144677298937598788176116656641762635788699731296231802966924048228688732806830164282896824184835455822810820165416005835061873760351328203652887693293404181886734976124158387903508522989927895560988128374490796383160021064123664572842650820906508775300819866635583516842962566965164078377385018855730929539687394419380856907137783831643443809918469395840110428831247618359343485511550152991602778746993525741038554136247296005303173767730190167825098090168044652001494896746624532220549840736421824952249415377609696203499573548134712099253098278296176129266513015615193097519825640594871477846098327137268388968828138855760233065900033008390869564228380085554110519570700009535994727444878220149103342724520152313128792135696024253548622835013412344576636041021757505633329157702077362583470409778037403240473020084576294911898364611333512136384939111909821186949655916928958466588182543690210467390785965081141007589376161488834390898570748958478613745265947943646614838592911950405587115635938040039632202314936577760099686139221746513933860865186799865678268641040208532960363300142545803250539521149795056809228851405596981721187307263690630157986741947433521581577039259947707014225853460511755117065675167736995364010477893477693105065863648193999626490925495734448821996514698407070556867454866678095070693941355532820975186305670919532613272893916455907206606433169230122366364810661978796753716567662740473385456768845160080336029913888184837788241383470474933579829063178111038294211819705774479338869711058753901575747566184544005838225169577869505495736766401676108524376081100428375408818999943597700305686043315284535196466340101789120981088904673099177375553959672947459554002975608216526371772274340800110832630001426181993285208964018323433643592817873385069565899688149483345219190865808854667017763448848450943835736273703809601417825047377054855293242286612755634180860696026540624105758636693344234665312593018714727641580755652266425338844544198192159646025388511655754402192264235341945113670257862199274517853838935702805396434220076074127039925245823839428703932718643364459907991706014139574505821674136723867834901830949534541964750422691892827517247550083414201216041464766243050124136879361712419648643288350347192009529759832387129495033659185846713145593517129535022699542404747656915829388927533340688632695616079600026281815321220650295065952586677738869366974807016077199315013468153433702183847749492253494915544787689347683534491654115706104461251654796922059382572605230025260500848852009796523468288217528932409372802200026676816163549615114501529814628670411021146677693585944419225903573332853058196292059014042501557663580402205633556608870857255219939098561645977368225461763618564790455928935165614114966987462932066993232414196201026888729595114595921144233186979379617798887628380884439188173629451947723058137427146102310242370972627867116019170427512055984164995257337979532081828047408386729508251247355550493239979148283067205718503221676583481243431433442824125608410632877180629052684023425840466585507709251605082682329380126706839372834048584893805972832756504524448003404972847225572660421196821390650585441315549712519690649140758879751190390095011716011713219143214731202339252729287760622405531905071266019087085028072733777531870628547440854698985259613887369527546536870036391568812766140200603807483188877763029539206121183213763673875826520349270319755784571497138127860313006227790122991981529871114421091354114635507947568056946161987131277450001335299901149102661543530874526806248354784276832696575730385383783464443825044559283060616971715967397320495674875878991937554662265402012890345042130811938179634958364359851701636524982207981927504374680370022525301446254187016666810640829840442059858361300971488117361451228939949190420520209406776990187830761482443344124184675105576493565798145852622491147016246130981956052063185164747747098565024601263474653107856123569596805252597562484673739323266174205534956154857327308318061808788432532397307377239605683733022581464588931961340566185120599158177190747788955451868035371179132383477077138767687372386569640597849005555884932526086612037862644206607402866258143790685359623876579548369629083684540618372845866187679025653946948804419818225667096782287363764864160687100433647041433380300681303917689822815109430027355512549019370291653324746852404065037232791314217405997050017479618453401827705448872659451508092222006203391033699730915910724175988980786929874028133282622175467657752857976300227534287441606484538672203883184614999906731544468156790334628851488656603633127967263706557867111755468464832815842611354279389800210825676740268137594255188008156026911317627708485513147786709161559644551093699586643160808714412838501125971425088582927334861083467587108448608687640686350532171112397576523907405357326489488792841367486611544397096290210447306811690726358050340933268761188947276157224651120831862811465810603682042071700378008133421684349678443371574052771642954555120868050434764025595322918281552771853786250509038650979071401294001063807405440105922136459659991847715328469571001840566775202932608343549812683101082433961481507531678147625340340384230015293534726182943430579517851357094220923388788428260361951001889800149470371894238094489781614036477557318539455506354109283231348892642284414281260474068215037849757363756920957183077305866260380270682085076677732452546053582163542752868753815101713443026912498799656760482618235434497108053808809196495430750106226196642764793614619686678776144036304531581612959012818020190666555414752117917829498766232884726776190225252563479457197591884620668888526450380165421720813655872623827729152681068573992635230970704780814468185220953244380754607848406757223252886803538796614616396651580834036566907887607962199681682732341112593317465240513493899872933599845448722325142369691612775009527708979591716166244284712329683325260908335265218814940959897877470827647582119138598470332496937379643540871413130773709291365834441680238406478600703781644434922570187295382660653318068062586558705897054535177500491560950064585940882134893377180633870709886996638288636091704721184593409021950647360076331751009457773392300804940205644202384239631284628498069517218122571523853252502109275014880796629927258950359790997609590389504887954320908732090163532412622758799672816739461742481594236069216614069079893760508021894549025987910463316184475409262116334621764756351856850201230478890651932023254279123001453019352076720940314216462562253358446205162335052362312980024924080769901133551468394674794840635992038912152898171909088308659337249688402109047080955885226668557607055239582381456780513006896368706058229200773912889548137907452108913546815651075946921282097512838897137484997320058550700627125217649468850152429510854385450221556352955465703436712350164903485962032702258162382062405995474077025648041733812481952059468864484286414877581542064420539314629085928753371665381187308366983994053137733041601147206670688498717330723824732109206822267991463061473159114569025043236370822968236277385773242250123570854832573589397537898056064950230116256885773080643894162011385592125425590884411814242183145096272134740354626939787440221191236356414125983995170112492192906071009711051042705585614595124455945799602900298827968885385665345899735206502239034096547852432952733678476618652898752142598085476904331644871037766157090567258116191795768707599157173809790277227103748877394537444790933290596986661069339508835253424041220531877878941288308116893728114480265103130033063545721593334735654894167795206479499629924940634859040746419584754463333347694646636980584220901652508541720795030021817119490138979163290362740404344211946429036324462205760181496998891367831286182715264138833062549740894136566080286858854503995786866490944662864219695303752033684400405525954062418658205640117904082626261780812455253000004679057014534680046691089027169456851659360861468118401157966658338207170163072478076177006091127609718628139996199685536280553663202276643822397175574353999971787770512233540299287799226340252061110419447512302804772898315930464233144768946077081983046106666505253276267457678774912773636027526979615684516174161086351248450057828997466456188047583757534337163801820635469029857686140930467024891784236097933479104533249240119677810588467695098279179449840042450781547089973298270588685655670410470847808490193526760139229567062542610289965263396613083567755100889436383152041875978708129009145150233042772039675791661653870416724526250725986224202082870583378611019513146126585217500402122014146274241711354781194195073758967529126537210093886258728594833506676288992470972541449269117816897453755191970316078676193635141397417369237088598485360369350278150861887592587926129458062651857674498524084666715122848854374380196082928032787633539815630390938732027676110560596661003868008743545411309434386780094793816204071762191253140089366573902771493063936826161818179371933439081289984831435071029898565676268433205531134043742577528452038004589010736920162920372908677203516533466718246046029347491121098713638348010507498025614242030474088469448788505475084031522660149592281056412172493570196891709920163983562943336272477533765243151548182522957878394200231034727317418257946799947156388865610707088662503600083597024520797555642407909828546142399366915309578788332805679143966097501472658010829560076787024620662771120225747512527056565666422651729079915410628961124388670253491132987717662462468087390333568555952022877478668665704756872053860402673613594147615300316855884732343734132982462505637301012952603211033409081821693577512594366139195194507008639269001449587194808443057634422558951019779457008531600540052142569634723046096792689901344788483819748639878951935986247755868302965468690127827148527984471062168360559688577467335122936058759960804564712826586890676148462848532965897024376113124893460201922406370241129738968608529168676690610524963462498669900600308081131192070233441681823202049119076123595724013866952450212680637923956431693117363850086363320604778890666434051127886435794563458924778264239704850035214383415049170598027752691016916291612373202119963976990542088962946616302709161825610939390074448624306262581462085633768989871134240731637203002625867099372503339396022968274672785496745688151895069456594455585838071117493731540652481430655358596554910847625099414871705658100190879640557034648967742709144836516846613212734852030687695477301655793835665303937251700939131307740623080549240481240386517729024754376524178985793767175913701497610718282314148762681134944072776560911943119351443397841487462165545397953671755211391615711975975439716974302223877988164815660401968807099395301549711291411972895473209671710705355181166086181998386698316232025198615643979621975696287617904845819675345021212978582231442689356149686828602374887646852343286514661481999005080991223551821464271935719192813259147535410361990691053235619453282183222797201408452667882275470259414426072333933886124644848666729452239025695501911737844077150595112322583205289337223299262121201738389085195241390530171232142580037839461783184380224589358752271707715039487490120208342564728157041829003895317271532081066901831940084838347371599622361382755816151763540628437660389586225309704361944858708439029713068716791854750693915003388953833405122818168038758455278567978635939844747853419087692282586224204219849834251972441671689585101088564270891836265799650226732528419116813577492752695433774386575957201707439987674157977689246509174226514369650237257359613400561467623682891652511441606481875311162513505515678621044768534279773410271711479217495765713127563198666106451432119712046363639698745815995210651879097319533625458363199812074286183679179381781052097464572591393456080329606924400294302470563774209812795808051283279387540566979820406260532114051696499797815762181149858711270314290874939664634656697403886603944670884319336446968381706004605439856016848125650781210368394125683426307275737529153839096071517959060973577347379668672250523271299406676410354327194692853491992980178777040582238207314979399305898400452541272987928902364647106066590917747641202966440752273087731191126460948420391872064701391479935456915799581588742029495907089510920686701302899778224159440443965724413540867423846489382971502796348463847723154228446968101321446453218975699646375058773498036286404922508670153270683750634685691424626993026862023597624258194487554415582231053684768036116821199262570075787357445519960977238908266247133961496523644066859682621039304130828716684860014914474702621668907198252807805187451184865301853207467494474997364812069788481180974162927458540882251866855534972749549278963515835379914840608788902639494613948866438910833247286093397658961861811357044632947994838215933333845810050412894371057737833809377634743752529688569291171260231760718171742568622351746963896828745875504527032524864911591294064708226077796374526168902464855718229267197234012620390003376504173026309138642079245179745421150573809453134067129032382370003051066967433194234648437494425533093422181959936508124503375042155030182770246030654314012267528757188848096115388122068346392509184364988648856669790232464819824583337518215612352781544037246342970928867230184405716431642912439698369615702954089735860305488884888334712130031972622121717714258292178542512981428969761955525667763769535716369837656159624862676737062704216978131076632028396444806370277920584155627856067606805875076793549378923844226891363481989945094484363519245882442050399963960256392025710056163121142330119765353072298913848617775279333262573197230448312443606106860065925313170490190664630123986699471067655687625266258551422578889409772926435813066376671365210577651395945708365943903727774714185543984705550467079444200999877864426766569513740985884145654127401743520411146455056344805857235925968305797745802590571986565304039048805286408292418523175208848164485853733410415377529295535072389380183394041652958314234173893296219992493123664201492445317735410222324291251975854443495396892775482500561651226323812039295051632381873951244172784090591780361018124762232085101432539724411951937042206543515488147418791019989526392243378319664125645189717250304230116314105252504184169956703775374248145489489732592841227642748905754623934934139542533979487976056708078623575803981222391608799885251352559536839010890395192303609418626171202192708357102270815726221959749812419084165102049212800046061009218036927896331227067124827091478690468081662905626470105246530114410931155685652389428310157283902793591678751342395825408793709391269583034859400354932841322509899995229687867282111640983278016264128213214930701784086322794927268434938787825024551581110952306849267083032381509192333085766384889787156952606486112394284865113278961890510834657270066852063635100379968457000348654618057649781638274632468655879303638762410952916848255094353315515805420321737670633430291670058453686793592141104016264896930199890062573151298363488815255252588090173916367866669094164321669835027551058661587868480164734565022348562006159209824156458931514883872034279217720925899617283328878470371315481296497534683085479357058862528440982555346578791551353815010321938743015019553871817623999002356189505850732576115940733266513561692781484720329759696126933346198512416083374344787553934336233826719003341555301172470423251408146213073748377824429290979257894797538818574234474296747204607458759790597037654733502570474381367874000782686439303657448118593151978658525096930546963417363674648519099727274245865941216680712233198227968636852247184562266994764224570514150659718460546138005533205823929054302150903528056243016682622957384187968229533761032168193996018080184992905265100003286994031332712014793015963729415681694552073827206582989285058554681869211359727053009803222287087839039295057046844129629301085039879313423355242224364683408142247905897786084659218348130888703360586780140776471809159787630345444005371900540565378040570397871926487831257628855864508961703128496333317478249392397885452461898491553095536268829615614661261092719908708371163460306819710574601037983511948773651196151485297788733468440273097887036258036644413229793854740687597534986382057801664281658568496414633968242599932576360247964260120540866798292733028448086426944568767770271553209290344396034327501226036640245708948136365240705543014813037259544506529684383361488448822552906063147918560915184192946855458155738009336135268562849682382431695277133214455086081783549612624215632207362872160588150652651829615681363427779481596004856154445363074691160380034580804589438944476786091372495329606508226748419448714034395904181477091185331067895837529100460060440463738551028091336807101273544910944113528614288386605276164518921666229147908568676205824347662289700792245053575883946938871214953107269012572077820991429076590204113208035887691675664711597174218305537395448362724729161890680277069266504489892096011596168952126694674452412023519127272485528692811112104845951617716625399313982393228553529951940762415889373443366941649777929618564869134227582290921870568735821794403806313345611044735383600588307096179261263150028637617011151761947119984598943974888009879044695719246884331011397155634740688216113127289619508748986391393426626464802727205855850975880363254061582374559801642883943519005315366439702422938512687943460262912940863293460225115496562533756547468494431539454616398624006150291860927229975513802590572095775539824685265564533621364305995893930112833357005939915569068225924086059245448632418273914449316158932744681631480865264351024009161315444446300912164307260131125639637828054790364113381252712247374773597477793031873019495950699263655750790740869375848157741675126661849462437829912229797687009823590666827139001368313968033650431449710989687421680323921167858154117438335945144724282321433434167848333218566247744833383344184318729314009200493579041837670931757082459920441676435079066140206642773673903967562184531847791866450695489686294483473287063152235524520615496792713195279130522266639591853631844987253573385336240956599032052175259572750523254751230010242600671091767016720047696948518765161848882097888423817115302565185264021868306603552541868710289731756723341113898327346585462441658150683545523193330859425437375497381477088736416378391245595757076825702379866470824062232881289639188082138086359333776108954735073265281141096059232053991362276583104335900739525615343439816857841781187004200539266751912446686039382774286718359811261408571211134182409396099532901806555051048614486264267928942449394631747071076639295005362231201903482670100233512215665301705908805547885191539671934885738903520073202019061945498336017951967099579036715919828478357763324542793142637954063784209003194026504639358521207186797259288414869560647497420383014451761490995927494938970342110270511247635034086143821774451312991671158692312127193738110674718214229951675355115517274154233148019493313678695886977081958100987988893071577489486044421350251978543306222115786992588632064967531078648065628920209196760763142181068029739239826344675864205952624236533537064318011938336024305573720211350878631163273866482003960692610470154102860282226031836439253981386502510069165154977884791193899070129712659525317635594944376407377186021327234198171853660264540506883786525626290780433666653547153517595406247159677184654192122969066378284941595426572944673606815650173366427564173976895593528518282181685085501222375796427581121633724188113611253858339811357953578548642948121815537539476679473005741871287220601955254705008553312369917721352473371466116830127020254491922038105043605181855110853616543731478107519250588044068254634918605455937737138179081582681113146735521432323301475173296118147959386285432129534382195571049663533319998010045143264417825519322883078353301433408598231753518558566514826804199013828371325432456812072723510422090821958020198051420807147315819825776418612545802865275968727688929792562417152042514424959650003768357642046821457190119641919727488857990367231348001916447989114180562953881091815680470675578662811115947997688170528641232153151440285615011903325448514834831480559914489602470222770990038041826618994971263331861843787425959489157644195854793802341497908545207673077814817898408799589241661102887888502884216902136096667897041080619137460279901739308389746995838447034024504046184841143351032754785133673289351406602260143650659904474125241403986544699065789236797798806641988799034122094333041703820843241183198251659862464827659931027195913013039593517525038431449913408218198344027595037130458750742554828458256277858864771871346458609384851234772352552049813247219364315600321303335064634626517519927430643272808327706548944556606691901410062997395857585571283826531820330835157547962194333146987230550455956202630241645662419561704078862418090855217271654343070846111342280922886136440738654440592417223056330975879740211371942666623758965665397134188613457712843778835772041002102078440726876941816956242486170448199088914772745738054126585544583760294069081927119311663593727907562778551793549076392133578434212401555745714336065922057806038768589792653932526301355711425019643745431138770017106780658180023549822629277945799144574660814113260981160377382788399702781153697582576809467864651514503143765735880777359075628696768964023023392243569395898670962443578788687597510849847531098913569308071286365195921968176390392050029219940108026349494170911686577899358735537913758249790898866869631770969244797225553418242621125422219789034957898435524214948003440865046820369912513488522357940693273432146637458095406821426178077901697370848762265634422016728169758318182737877043643081890113448836384373139436661363242386004138462076770250151378331605987216988017079180179623406384177527782488236450913027965482368956563155659761720528368111253758202366570151077515479653499040263937275057179894030997116639394730659438886913657024142506492509723685293984206320015206468046878057476330862324378415908708429222231288686405761853732546840327289689226957333152647695286939712530268637518533316771527225681068263817788944594350420430023607139985764181500643364122931806398952552769115191180498242970272784150681270816551796477582437808404496562233188711315241418526466400040597900970862412120941658672840608691469788371217679793202287878698647732492599619093143572999755192782373730117340580798808204353613307643242039476042886160946403034443691982160733168463790749302162969227185434199976047298548365351220047773483499553249106286493256954652220188770869420364266026440153337282844506751243830250656478187615000035149907939576007893059333329523488141124659699373712052230469074618422254214532390529491623598951883952262779655323751846939959950868342333727637376601469150628312183264483933175089800275669414800499076540247103019064168345868209704693154058742287994709695870274385588622312510155984702771067731783132095540025899258402568064593891077317452879677163770099507203155750176594775615827899604585546852184680902300331448140524394626267392907652781182955944893097976160762936672873332987511581224239545291649580930588518438426228819303248133598253722703754236571692148723182696061744177183319361666873931889859378758514176636959751753030393685490498673754162008118906454008058845865699793032998356281582058404419550537470522990625382897082325394028480463944598522398448697143589058545012825933013479318522405079008829901614042852273037194886096821750090608289194791464204326957721502732929054640227334943948091726090850915181031464228484750808831868952610476730455170827423014614297227706734654362147328599039501941993458753576818309941852497545374965137640912804199822306569384058106833320350025436267086829046160826400368988254202627868399449691257460944191641211280962629182953041656980421091470415988480506180121000508688632649497371843779678345146317244798072836642506513120000539795578735411907586360439567869279688094730270943448916617348810581954867835866794325446727424850903485356187168483820051588696473086927041719872083805223033114178133695928639088742167626086286121119649784638317204608536421916464731827927636473336206713607109051113557258307169280675447888596670610615837436115465097915895504853627894147478052167994930068962903862096982139056246988215739102899769797010820616782465079336780667902058061548255508036612672557010840477080642129636237775053221961740963255246361357560900067041143729155896482981302083932793671342122090433223277175306017773485335546316146296661993359723336914242001046428034883651770670971188994049842230940608553742205534346129024047173724202265873355078075760159766156612241950278433251474240114901952664215354998546576155534471976296674440605948851779464232688647971617177713082239842806520773764529973884182504868292983135741986735676552183221069476954823856416782467425814459509453176892906199357417371092434862330899828197440725606340479842354169514907462577764736942446618654517322507797183955089633667589108114349252240021662376184944493517452188776038392793475600506259299508700067015009298569798565231960678926409916794093241028547638256875932963018094962423655401082901109179539685145018815298512711188806545770209122673876013969609363661934292575908501084721923213017170820943375473947051312456408623524510858988426219830254967395095387251020543514214108429702148533528735423287515946471465587839158055291113701062822303211312447725580075838894472205074872279257065495232063099107715701479958743901355172238006608891351914347405287707255240717652962753117080337810057130178359858143365390257848038862506197838515188807492163650030618875175032863924874233597009965721137266057946701171453607044837822618637576576541437166880407468483790742057921536071774970581817596606677386511958307457754546269264523250658126549838125951354834748008566056511967513287826824331297409423199383990753017505194652679975678089114184132466161422885984631331367908797432063727235764943848824807500063424036355876947155918477311359249738953802873933953982444440977794493740062462676750377674652807909551016197990441221561150126773831340283336028176968144638737391751335357234595074614175828379862511911888265818398278910888890640643154390192058461690962453327689089372341827976805986008410543239793235956946912936150254261383525100483321052763091083168065022257194887396744808209743100794370171415500869494199917819785457191855580170475498458799322197019623326285392616282737675337531169659257565804377340906314511820435280120448360528200748283263878151366210084132744766096818943386252880999389426610219075401823568206507526665449858258692249216792354658844777524027869845065993667721766153924990138219765281708289998482593278263277731869465119901915817238201562276453356805901524838548642480892156371259334923381550540578347436335064791033976783068081514132202073039705767668068938295529380384277536136584943582724238298336698743104249527100170526749569617307694674651027576662658854979592657595423891279246326583958198098621238576771629119658827567073349139007087417968808809525998749286354768006575501079178028512299710699867483568880127165413534260961839823902948028825655181363558837532405182506775400111206965655968323639610654924013257800440468502301117754468465914357640209395579677797806704315283558628304414794477856797131601108480190599819400312230450362215131801787449509084271304706072094994359544928452022326541633872816862196238719520844982249450088951084598383461974906826821802007414594782157100587131677363506195528854863209457869526243898765695594619661940144587651924410741059482413708624572691044333441265276201169931803466108315328936237484421970953534167827349397890526415138731698676418736496231531723356276802486983297210615582791782563440661435633334946255283721268812512914303091509437273502092946837752746402540349415979293186915792836392799707952428182494513601008780976047010173783005668858834760277503615882148304779806121411598249500717324656362114971653227436351625302347438652756620039072586592384259862185568847577867594071079764181020637197073339603032338901748204210821123828216811006329991471265364207755914928972255397526824696298880055849946922723040307269630159147013252681125335953269110342517559246390772410651662075867372329659388814597540108331175862570789138054516055294838187413571132366628629952383674389226188827194873761235536049932560338206232837464283228036814009732556720719911588774724004521710820310505050771208103348338999033318336174711499238985725547290606081546757598919246273004823110480980442810048692287414916917741890853711985771666267065618199015510290957547782717467188801294219260226760295331401517125564058437748919392297190101364794507099621802570069248941587895120920483853555510642778670240408475902425376559053178821134413649294802924921959736154843964830169452741498287801079389466619227305949443605766026532631373369132968599155081600735510485251197155741739690127227368025862710783589402753026509038929259658080442177163143609085921689535461760496198352337566063179593883087461559682041744182143102031497294076809147732739550132664056499738769851805989907041639875724954559686276837866805145813600618624553094260964998731129119066606662321511696995540717305575113797899143881333478384788456152278041291506228753765403479264375552578182549489669121040241988174256473292064864767557053332702931925401195696672347990459399728648092107163749987658815231431533851699573385505755347293933889961448256569683191061948729229885817736336850878018675633672997910294979897891239671360852454023835069422990249091816905231083853876344308345415345183255119545041880100058764105719587486946245699854696096945314242606546922871867897394002082763013742425759410351137057453926979582057714486875437121746253296512801403918018483600661548515605266881630236612149102257192048953679318812156526820145529638576975910644574074910861327387125134468826990071498897464385951264614593700160799188355910495034754250037211603407323083409851440116273693538507864793517586126307243978895526977467945679295388056006024744461107384831422485680757239637548890289302535729884355999415781484444262127502129520449489361382835060670809446775823711737254514013507076731157943465980395342241115017660215080850758577226476951177597398116150746943184468160434875161195449568805857861201424460432436073024303808302527090232907330047209899115741386513836289764385532959956955870346468323811654152294407262297023376113075003526245297163922920550517795712794609050778577663266968309937954666418623583166353164063831531361242511403182009428668152841924250857358380013410513281607803197945405061158867660016448960252247385252243962130738419193446442006195218352257182739291991240463448124241743039127581984898301643490573218413932126549503224938597658172464789495833702607011371252452117183547863665967190110331174209622227016141362403252201318973600366821444268410221507335578811158351741871946558278758422634142498421896901626223288825844400305676348155179318913296352075231733793608400472568237504558395516114157045079283390880294386697754633638691148042659135086855411695552778632385748126380075486171893600094981748984159825567006997676587981223620116833205749935926369112494201513710062173360616554652668187295542001199590477948854849320133410681316195711538559315784937900779051401516412855000642306820031680500960353443498167085377068182575943405922174168918348631110801871566851994398403290191352944463658442934662163661361544628448570427727997669757838009095578968386344820919199786727082060256620423994407795303863098277412672834937917545595286557729288413738837583672543151719435512950399622435577939656221582024207746699403765858545153101023227682738857963051580048482085068401531150856495589915021526553094211734438719389268830823883880614684075680767710775861630323465714901967897473950547707756551743061161973664143044469367126345150942516213254013929335989218606245472827962257231867828185836651340621734027048512848901180824343451790865868832180101688707484497873341819176238995622552508975040786790355880147080213384849927477292180315579607881933947115022051221392889559048452091020963327267532145399222240083550625339315513108365494516851858022256792940689104068292586126505263833821952370338723566495562382553601494257321927149473760063433540839379949340249262809023706496388367287642363842149593363553658788812733261772993790009427096855373590874072298059610332798715753824952755473315834984137858764966461233624805615270350217430029582315216786985630910474659218716365517628558963390397542926883719654644299387464155282836959285081160930617487274079875909564049446778195221660208781731248904930476290791385185912201954618965506435590345183237438984288010524169816067300502327754828284303514267188426829997046563177494467846977277778677977377542534887887753812072707572914436414516400384149386543921369579038284095374870768270164603815968634597683176411661685550904615452191332034942902734255158270323446928338411504627987303138267793640433816120478302253331088633903309956979097871448776690042705723170337388189705348603454614282877143594644339413073447741877725757028771238572753475051137851000548972959559338933227555662631662613288656833214226978036255769614791012454915223976021868098105195105330367885431882402206923233942226091192155579979066590389563845016703965577613103477147465583794585956180675286532326004725873726458304562535978304894097940612778589456411597588031063804018351406793625722512183027690403864394287341977019180955112403459401120045897657888297443554757953693023208858099929329803563459103408077542770274018610567809826773641334201368037308139179138240503724394868884088029967156567722721134178708168770802749885514261160805471026748412322051765652532741425393103262844864059786163940410395977649789301458565708753839709417905554685993225648370822442267467897077409064468867101669318359495270519344268142536827137358120450977052981049727070535149598140259976894105722100854715503092916076379924080722014182032583871609019961456758939984231632259049572130229341228249136008147511498403350229249215703111185897398910992171300605629747039728323555921320184700254222151025586600997053416750041379651253549822137216091204173670171686399477454836394140219225666971076089103599763568495557192427463276574195506996828854527678319376956277308490796444641344611129748659355547240873673766022015180618677381957318072819306112199585208277571688058963044978312598196355177003606520428686956938064313476045011915258531881222645187807988002179056972203169639808130432020562908934760494972882556287121249833340483151161845790687090343116941308821527677376941873790888545963174990373537340032399774543591194249044011940294107744764848259905266766214574950702992793778745573899310902151035387218938289352991736197777907679494519482012686903732873505315041751382866876110538345605809394749765732477137193164574175873476065888687803241983579018576900796647464871115389378461976811320840829568240156427595450907612501991325075505611557255669465659430267818514352712878296044529415872759447598566361100529288758711677151648282559273084418364837433995219480646393388865903051892887625509320178032652043467281323975758139821334793012721139223344059638724747455712989922516407694146197818730418230238894268501544317695644986496084014937480095717169864244598626025331643949221889486340760086007717998274629888928862744247393441522414152601781290036828898921865654206141506014334094477173464443458061345646680949419375604520267790789790557756307113837282692233541748370682646481377396746741163021827018541329656356181722587010056142647203862794509766526208503733605481101684151299620654803111216264024986812093152015917688669794158533075241533987987467462387608040819606839508208782649632173099075960698897096164414424573102983822040039844003694993493858942038794605534289003918147784686456891745781394814924595973916201538119384270071810111080561086262051204314776631197138420446134742302734330933611077222179543843024381203723500705145978152996745228429678087208234726808094344583276096289523147153591050835199148630272095518999307336587510673794289666201054521291668625064894072696513091629297698485476882838129306183171281441285029613872808157232046485134322833069071541879193426534808290009766990618177312942415656169648493929858307831429019894767248646105521780792603944089551146639559057072009250675529767936501414364103279975358061867368229918536216966289821538607369294940679067563247693522661057617598020475369445175474137883084139019830540503411166723873474746411439288583080500946789880264376244843042929365111002335258077832015591362614817594772438764632188357216041855479566481265752854602103787870200826356078192186405515403306808947914928014285630497623252629829975916478921920336715293175597442289273452691015935946200752548421487949569638775413523934488749681783498064081697990104791687574580402331527461816292215969782832102445285516360752764495924007360593200086169810069635538935567650576792266217523690187713763268202099380441902863872291894838808624799876858409610365068427014620829048113179986504664672402330691409967009923408841906929965076079666313084636976265244506923953179863557879149591267845152009557583775495970756252469395864014928262665278896834311660307411492872809563546914039399962658639507626508487135173355293182026034430280935248801381554141676077564780946788232174221418274191819529092981567338692300071948656440501612447138626543250115130591198134426740761997456348866003174126225359109464950027871758840437228946294713473058622264957232552389082693060151915241700562415181639197887708200118293038522709797449433868071159924781942625080387811372792124909297625392832627102585747756435449287922780284416533362189616484342854151978361805095376769018196018497243771044966698238401552929075280445850872633515632715997920689647628345342408863351294485893220851811747343063808853537116365120094670874266653575380668143558782437967166119084284594098664650248285343465746768857979043663659270014501863160686596000990030933224465338791053626785672979543306203445206450470339540569213029811008051177302247003254817824140597661914008910261191941665609647214882898619848190864882001493026476444486378105535923420200404167308640279073727510442407908299328622438574164139502995868424085447837622779281351959624229319413796515509999561742897681954496473905892332151979650503213499438665977541042862057844570322989175165127879111652211983471063468781348053898716568897098736470189051930181711278594347370868006355316384750076718309185736566595666314182577325013802278999176140898030501819324314397391255435754201801426950115161687319053139432534924075024563621643662127450532600884715392547724401921072598518374430211093979700529432196816830863368391027770358643418231940153415079332999152976622298150040780089920980910796322986675435970321000714400081959301252349524834552067731474081677620388731025881221043986053648869951277642094684325607068905178714987580506478883910188390963408996708954279688881099727538909444746012591998349866817250994530818966653732292000311592289362092237591822094891842193358692062648194052545331281231365985340751612469231958966037550901885407690869322273972156403276384743713586530160985793980525333814289222271970610733451734495558087181061653094310533279124592885531104305326731171356596144013622893082293276731687274264577582073099979856007699053802419754228442620469929917855470848571076691355385814348507679493812536439541508507294579258995993757113651131829872021782361194396750054577142513804437127835911043193581465686408871313341845759426680363980383764763055329674054729438951547317497676803651519296917285953258639984744788229413128466752663921418804835382526051355974560440855239096319092717673551874094731840971649483674125646772099633403617575726905213579569162534584219430199477798966954166473451733981516242671112685314919417483539251167334421293036796455729046207145219012949331847730877096744186546436699906257612452562943987812430877069050477554536350560241523306944307148058662811793174375345544919896850258789445918546271991515202668054000326758991321559772414321672533002197638445699107204753592360033051913163041908011889891287460994984536869385149807307633325680550879262111252961988793093798841418670441963697558561859906248424602005435431127565153089767858374009151696884216601535873454682811683700737444480559173246536884561063844710797220764406939253537170166851628559043166627144548605717741596885672741382195786354104647901127057368904575935710611296643806726809728896938208490808201913269965381447690557683240715390879621174263959298409256350780227100872123383923976307317424569593707646750816178345257040451382295244579329405198064975809701041380422914281878710781447362815418270284023466838942661307924849634861379470514725514244178796593107187746936141665994577117821589441074477203209600666889266515328469514515443111489951367507709320333972186571234381897745082851434407497207861947511165828845956796834636811586516823214844960544477432778989565791683067878363086419242237748235759675694080515297102233683381906536258638552255734762829111234239200932814380605263644949086991648784570619746061868485411131755548511199557430043491316073432091786929303835311666667191373541928673132451228578254507628960989041729657821013255113962608628694701524148526893272541888152122402336494626039027516205981520233851804599189212408328845848683502937233284797641221915514165969617418664091801258078683227730287315100906202736212108939329980016847621356783489205083015590006402215640332074227963920040810608853999497831005410840928718367765862172063689410651841779789107732704226702580252908435950434620924379265904060630484228617435819117002502449692920922747226299235803261913914299678004584091914593979680046245347954037253293856795681807582318531766007021009192654618977962805656442913355503549777063849136061571823535902585529360070313192007518035024195453700214767793001545852558967632494173214370329924146321989804732545147574999626639254043360291599825566868071097758056672152843563297723164630078978659664610716778658249848848974520596281692289428069456441923172281661172441268993370433979641024473001218005012022831835969456761741899200916070574787006304157567987617270294514798297129588644079187384379313429089911569876454524706530469979805194735586021674471513110934364647125775127830776792026630296518191625723203987201934516805020222341316269451507367104195792218392000239179997806005201851161069592708761653337168018605910149272840163142568734388432418201247149234628820626733296017538100913061275252092547579306674279276265282132733040776044882265453460296919366636769781896509898697211592664357503131481599176293567863203097397207017924618265643187914535516868535499179136160333604249985612827605700169323690199012683041473923189723777528664625868156442981473826918056816444459111342956784845627067077661197958336852882357730789910961462686898241920367303425897092846482383409257330633678640013217357754622734245725725105919193820093012064098838524469122379893590542087553479451459382780875798868945509236352775986784393812953320252416021518380944920131571922977773966486902375577490731050824935536192513385784537565050799186339770210612277877059967548217069995058379439668998695889703482864949745624969535170879883788659023472442049511837290113915567077740012129238599714071584306238866655902467011464375155443468600062199501724646543171455415349226702618466899627782400366165533528086974773336036118969469317651329221577200704120381759163895268084258494164862343669554956038700285377131396625516366643412922940049808090055226014055275733130113230678891651294142282446021338606081254830163102149563223976624828262871426775715335303049650044966107663599316582393562650348834235233843850212019025795837831152944423022823036573412866851746589927629030028717317677466098766842961112539487594548607021729887034675628794534941053977205725445248892326463903885553454148302421158414838209704166567430800430827586579781245224595690728658430564309828161773731504574832677962194826381355656562461002096572192754444203211854506868973252086066526154491540901304359788709606425584724746303823193957720479528693218090929159915148407461476028896895252912705634714696339730564371412657417068768520070256634172785123157685507591042506747539619803527753617891402550037507813200093964747836095814639049764332778142417746235769657958487633604513206205829812968781929512339178032516867167333520800342271623034855579223382206643865341953608201832676362426449071131723157058837847995176676386469134917914731839457548354974040240262851152545132694304954900101868214370125026360872504399388367625655946888636715682173888275441226586179880309099268354266793171492416109835950058279041937448648288108489545116139357201807821572458218176659637789285499218043963570425624330562751492378534466443769731067488539322053086027516473796890794006882557861216923810138956789557428634540992356699847120921694394216408573265164366005761589764858061853247169957301530831964330074536901034307285257521491102813374854648783001916320856982109608493929205019121086771510124660607219276476930972848652330331835734871570871013110287354238958677112559621338449157130933294556823632670573515426707871011876419821862387053273058503684716661563916108344720350442814298178794477909513427389035310000980161728937595650551688238775585801093988639014586422153548799921514542418891538194130096949448675634300321445326663713273577255888694675962340099672314838539707784273961085701792280181076798560076934384991207720010866077779626014279843818461477700438558105362881313579894357128280880501212734600693938478102581775408315230620247892368800819082004627404376487541013348812385801207260803023251467385258197546559952739740513478202091405500841087446890727449124824656521925506520668954902642585978084765106882670292288951584090202118739826998185500885091882756528042410106153116180514251461256464294597943144227953135082033522494793145600761614035890725748792926770260383053520988906251672695188266140252937105096195261152612671005005846577103440625504282118171799355830259193071050266584980642493832239909006849383309736006698178732753120116338409528152554281625783132822828487529418021376631426451244842552394407867946193479704236381871623100486204244200916106247037904460133991128620839734851346141446444355816441452867893354422837696189015661648900296629494949029163180929289539987133940918341943344777104118576453202395971807070285913358377989433478992471337897320959468338014573127729701646553448470389738247064611630358298246042424139348296028381989384785137346933022627438156466081544560839599643169077849470125070691888299451417658317436702937817678942359928197452747542034299614380517374083826086676334295043297019676073831982393686629092855708399072080515397452478682419346822001453362323615203352851430314838803387175731898775886354777904209554037781942030651161171737341503275942964676218959209906962604996937036215122564149569152968095848996238006783173262541292701390888341163961616371996058002911032948148397206599005632490811505351135661384636498982594821733944807892160675044591029529113587769894599816829678281243643730039554074068739100859497120447704132546579825351235665974678176967415102191678473137081691992623908267316682049912668704768348562681530553631618583142925010372151014205916096735362790248233552995962093391181160393889048943711950070148690313378686777559824407778113664565404032393551264538415617967583294989263327973962179985749807852858101034530341661898831900291433899617682174591138529097533214011675229299851030185280339666106848393599399465394788544210223108667510479785576025538354115709225778792008824267974933982171416394256416318781087271769021848270646962697600087421371734408163181900169707682734452984766359349403584142878902764904066912925229599853909701857055721187057991604082096141770562734988468276740679958073813997539680817510667357193668103305199615853171934777725368800909312508722333551053486594151083180650969295664292757383727393429541043428725851052493229296787148993275350096728317020248242389682663936152751263531544409914419970987220065765585081341971666612722766048742800812493314509903506011135993376297422116840880373558680028707945173374787239816105617768490815360566496007070140910172717324399380763590612055133032023587143426808233883012216060400260576692350451266500597677184162356822548025059653285742002338054960513581520270923731039837373313484080677503420885656672513772963907502607456969479337992879866291520830988018866782330223798572272295598529920453044750383979395355525742062406356298952424741646975740581945342950217996123098399075036433072228147868665498955770258147091537115408190599278526445906109652127950933745508500332362221413062333614341660411941621626153108716002246577701639028692598750299788101309242997770800193052634308981159538669066253416309490966466436906153838427274139074298917189571781255456149869370636987698718004476712293099098283453343283592456818263900489414961392735636197252338075428416871656395975593213726961145229761066423892466080369775725425582030877915462460268888892395168700621565226790070509506050471436578305486866290189788155327907132004043650713810629745025566375641759821742832051818415804667512726002494520961951198431172557357744594072455685155586849033440457059684587654708477058317753263154385116556028646686295776597371436044091934383777110755939736397290634584715949237830707096589581624090503692452656981985817350485810590172859960138122871246035756973126904185396278461198608059364402076019359690472882025553509286251572544873640587943513697389925961357092142755573366163745033007720067592582798709281599979532732581418098072154853526445398086986219736209851683975944251199651823811606196973038008553599891165532670119376158447215024617574556876476845679484064551392534271555591270822327696518454125073566517623339417530685907870260753854745939387383486419474949198584968256981124967500637899176151466389290369448088353823736710682792269281963120162130989097364087324723157783479610810767523626915063616821339945708193571555849478457628211531081891384789804482211104678514458493652350972359264674121957717563463104985895210816944022184650637976544958071580607215507179000592115142519866030030407915717907878544135492224771267694948947174142687428178197208898227332321447809374637269126170624361788801246321330163753994713496198930822977713736353090381518695841543468364621193170108728274474880507479319391011755469829114142555984386485659689077558209609534766462074912568948838029483226751496162634205388976709927394718373556067448398277614813722350616699149910003075028041573308855150541144353215835466478280098299434846771841868972411942389597409846290668978002968765492679871701720375061959769356082017697516769804887619655989301525791213286994742902903681723853900395404000144662999702744524594451923821887247912047006168534035199785087954200969051179317916229348954886432511576840512318819498342940136503972626561361800022051999905390479275592107852559341255694406414359608006821298744575178735309184230561717835328796385406315926314802523438881209279833089050228771245802991141115303631061293910644786276625941304474613811158857367151865480990362075644202427785915600640843196188815980196431559239506572401071091563935526983267686128860061426233631265125626415871484505727510482945991517437159354861211592028059047292106880534628924147973428281257067969494480391052469428064648684371877355945245719271464612316428314713842529404004439013536616495323730009281690166646147882034961866793572890828926692765859321286370161143754872284640714957262768413561820384953195396863749255712949289559689233324786112778626008952756949057145111107235332810330150804957932507207001934203382780498463399819825158256773712046182340422544978146394387351620032106953229846835613066314658670168281495026078537379006925437812586547966591481653843863738072998420882656208029453720119394093451224235667692959584477065368310707641188210025382936828670765312410636445147695611296425815087670956148606642157235011483876135357231902174800286939177011243955202486396693744127869364689094195513036593782784841625126436904007675730106194835938658976460774513133050298351196068448300823470618538267632596169279119197530283329174275066367863736117693834299901975077362714133598533984052797983419830191062862139670592990659258674583973320684989338789808822107353637597174317065295111972978356375410640119871234768186843622202436363848695001793164933500252225740547098819898087316579537039943852109027164488743695506789516395360474202366068108859691423387313226781546966283516006031495013018977685329123635152577995770446339905608725407375116486726027242123459930357738557717166528827025061590989579194226476528585735888166234997702690897611356466115841198579584835783058015938696558683990396992562421615217661152575804187978350657887224032245186484116719903076820658208272461878644453004645270181831985495586195163109949155187655286550817329259372986963583497538086404666931005921999013828071456762106593553631393825569914710043205255136444642124364557811100790075296591673629417140729828035986208041732094811855262614208398869628454119778459755412113161778881147283038488496792948813539087912318612824173858917225360266633483336494330765475126328641674358305320450193826999864250142663774955950338876555736531416068339242113870099643325688090297488441954244507639197987048650209861059649359400017870756918056896598981708071110325171310140082257959580656999687354176598175385865091492717855806543269009938087282826063257460991765792545393542729512992170325381360301832551092166072703872224887634416194620522485120447230662366149995426283133939160199464618089920339381745039764566651991242879051491571595684902762999671319219168790643057535520185795320897082305559269939773845624185326572475114484285722201215988533732460900396338757343018673932197930579303359693453778082592731948112498614457092660942095024877214747671059847929462284029935688310735109959096209656963745498460245488340126281445973452491279960813451559877800225464526942623051539187168334475764082144437138062220347194184621310818262829542134307187671470241437982326306465288296796777421700613639905936446181525451773374590694840463904753532880749372062504816759533639411863161678373084297502792880030813582457936288337122311501292676920711904831568662288846215400161806867639676017493566664290932851309401429810630633014835353160761461577660584361466354557796512885812997810339677169846999084497215460948217376167658552263065586558158121555099548792129941395318649670274846388546093415478131848075236564795647476664972885617040645493284105124972122282228489611909546275998420968369454722293504054017283798728913438836324220705583561430943176491094290823489680814393196848553582915538127587715593583973923485736748571750172720990294353126931198388526804450371128097156842502750509844765475770603356432577975665333007985087500352431474899771514820375552089042261627693748784711109220664594842910361152477144833874724118747456802365705802197651042729882411988150622955548953365568122814766123242271857257522433188673020847387667325741882147762628077051377825599216520377019572914732576805560996644036437908425669706360637534295904816190847994484765269196778213139381889192362487091221277644551274329759693150870931894049807021464860312379072295903617697207422518137026255910785902241370374345174862101435794724696816524723383126312800061398696637406034926344931679738630226167528366124051940308464760786538533848629719754593671025402031296107367777373171512490978483625615385794251977341814754038491184128772872727585054872516067985920658756275767885960443938355723520414805290834790765101242324747477331269315049426273255866965827970346431142925934212681739449063140944532009777505614689401059454141159424475976927825659453404676607497366227353709849068304928583799522958507042970044544877787567050736633544703962622406410465601858473418079547003664464873737307230506304290878477655852537461337942397643665202827829284409813127726143261977387344648234306768716728937486580667778075694850423784995541780598301770081770181380717964599648058123511543131732346733709262856571555268401880060641653752866785180938933876652137650298270139609282908138404910028193906984858641307715081244807943170044595986432760051880147907217658194513119205539801665196339636876943745596954368352004615220154853261719515944948721052964365771800187824014597390546583945614245252555637665833102288438563943591685516590999942151305357949891791804378504406630670017557829428755383139199997011281051051851369256275029507439015514173052520561030838794734942236649897391343893329400915618289805820608396460638469007315467396806584395022443957359724904349686509228260080196765040524819441895741006899624560509529650232171938032352920841963929000466861999773083005216103947703638955221907974233199096681449117370106387823482574863277308669666637662357791769918219995996124159458373157537155361127352810148197750762502123343962129343575818115006124167799950315377294326697584031107143258975346521375157276715408854672949992097742386421352872133069453112808474628907367938395553338106435671278229103921438807602707314762304479790994562940403249690135549292009646734033570791473131194383760595171052448052374566517555951283662985991004424579721022672942635021929789740874466976578517078204786696462701543666833410531183127185789421260969669174148062738643478034310826797094065709553356569712229351425674960553537694233047631839939873970861026841452746077709074962596947801003455479523417803052355383095794556391443048307130817038672501675556955743241990284377705374177518232159566541099573743320192178821729131043033572104014089847237209115331725444045136995407028225861870789159514726539420240797351108630419927718863713413624450736161657961088135253597932102264637016507288932323381840108704404091477529081053128215152664164050363224281403128743472504653744184985156319543911148799338202553720961171072244898565223279029970483164932683741999650844452925832115865057320537138533097229656371831360413724325290468982933189399729932144153282529538186393198516428976580868855320383751932048130492167144324943359976697250225030969603871121785254022436865473287555959541564502947100723741585009876154493524119776545567223687664924156680002869730930868810652025395496382756946436319947839707849899005940277954149887807415147990977686298860002165829714380004288954295200290166596223674903165061138715191243415031943144587171586822427616000966956062606991902691353792946434272905941210037957555963115477278975737939065374859598673151875525374519217929519894896803020354614903135431602467349590315105936338378000340885783612432633192749094270339139186705003640620013577166909457452710886837762944502258639993012775527144214971212453047867308563364638394111653540982177077151054069232951154627254200493813203301973065383936592851150547808350919206122589749340876563254667371272521145184832750146987191365032604426499896316838095056459431178136222872748758297693583704749453756220132986722422784877687150907394384130319805879409964028025700927328751585983856299064769210287909243446195213595200815665348813171609646269793876025973395930690885721926251911887657155901894513233259119340260305005808113234174350010584324557381871568455519075946527920122087785666509295963791728233607797824361425720048007307525586536683276142345194743368260819401507592847013657310661484307730147147529662716639871424831465772768189045334265835384965482651744800802287543819286681320628433119589898165213900133771907952208580319616875349486677441692238096226996150949457835913588947380046982985630486124412891246234631119219353585728927708753880036630932348097798009338645710413277659036975053352584603713809598870483096273172634048366285033550145002742631915108933554310915412470585550274935059809339241628587721860614227390789556462770181630602453875609651279800591921822097843655222169892876015278015584572931609677694376389146076188794634144829266068780932432559389673801016099144347668590274269917198931691858591809922912714096943378067765512367657163452895125380123237853522850494224183553963933192372037045200327538608967459277056245053601179193512161379153052247881960557236093588486387627349364020899546530204341564599048851092642673947905845484599634402744481250983667760935183794335516202105908460495588229527006595568327975080835437789041453336246902990611302043464568963477775916780008859426244188614953022305659447107748686231866858606947494563473607101269166397223238670374187703841296880454824004685549980264033593924668666442080101777230948644771626729105278123445473929853844920654745719043488671617541147471261502118248040353362429922398902143848524580107838610414251540806785173263610579256672877494190417852689770961108685749224704782395622944025790733052443059319159101773334506272433100703143060402767621797521019772085668749017094403408068766188310709479971859392511305817638316435260327366148784763359328292264317271438081178070282017859187016024233907242883234088214392665988890350379913110123859513273797359953460976308802850008035928064134925582592561537044393365623765558448991675949241111252533062959650829621309962174062920829650079965932677746975454887788045133170377140981332036484416712928474229129944209933668722850418638396288269160043543691513019771565043306370013985325576078320712267493155572133204201318497797494938707189599161152181105411050947569109270209678702283372174191414045326622569012111025208757433565984680329295693773301801130739603875556784944488799423992938307512220821924319459250469286838002994028397420963295898556626310722118441341281404365553407151122221138478717542657153644313335195415876754783613730849179269093564870745326852712032518040778061988066089898292019130199360138926825365382434653600773626967304991599320617237238147799106944102406257264702086764710202042668173488027203440301358953330840567014655266332641040338353334911750028058913358098113622223854569749630280670570980474992899063936107125925385483783415836282668323622057081333602978155815615238904947408195943899140493811494348666942771025196087265576781653158626818600283829008183698707798714926706893357425561696042631699293927745011228458076949045373862921018560514056795991645105854266213985698414344504172724538041263693024453941587698421631962129880165861673500151488494222099541081322151733392460123053057060702847645082036190983938010549367616978706628296582332123017111842886593231824494814704103373928750378988753426987583275495433509931343032201348866886671749192643523825602477822882477380320555404820971856118582958425189465933346624703722646492678319947366549190075459641509507242354152725690113191539270015901773548569955441843879641045681887593440078753050592745888873479338199553837444104010315086517847123272572404864686130749922097953238788354045502052683599357336679782052050518355128152693762549469610104061030214117413344124097850635725365517896563795807379304731072377734480818401315001254644806361757268716856461411392633641977489595633165950518449583300282420085090978345900816767313172045877706406493445985779744284456433672015200936752948270202729794096528543441585113030925934278860579213276721921668315244680419584090505841367329999483338169580979939811063178475776639548197242249243576614302813459238545075198472451904833707501160311187006092894337463507442658776309308607076264252948979653299215213848510093287877495888488511542849145580705772360712246223462487647388035998880251491518845440079465955038287660624087166649703952424956516950344159909089829745388102992621109611726950500077258323822450247950737721211284828564866984468325372037632926568085722051481972184526365714251277373563709835770947128881426922463105468451544465278378233327554975953694323614174978870445493163985288343615909027908197226131907765359109943305429081451397951182379164932634816248863856609487594170239654888324882005285979183214547006215091821573228969908329428859785385384691269971300880540057028411409878974090516706821859565334456755604115291823875075278989440366803354646506245534981862071359008140906929629144257975365194283950523006556328832969210256118568198185340488169457613406663058880385320091180413174618351257995800407960714829156640933930917249367356589180967826418285645435216348277783796352617545739711741558198319086744188859477170282669978722895509731004857472337776476946758265530496859548125301366188193434239666841061817454304596463961150996528929970228614371213481539392721461698383803871886232282977433862490284864765193159932544913366967328486840051309704074315851719588494357906375524757536172088242578091966615573160042838592689540227343383620385217981960737047635349132794209111768397010388674011042680268995269978247008821044534934284568566296113308595518533044542775400900482247463504551977768764545907722908913507684914852178051811982372577217141541341083606819462586652678776808568149277752018708554641517906306571634246035934375453638177398682567554268254576941134127354474163267551114390931460587756516195773954483018961471086760751952515372294346119113233088642479092279620535739541629592668581656873661776532526148896688899596929295582478926740043922773980750537810978302790510202934238742170352919603831085762979128902406281202864019560172659500855497684023061069972368377111662056689498351584260107942641435453083455077169930059218968661972132190926167744772395404578426706143913329088448105069267794394651725757462665213223709772868691078406323001291741061177188409815617032484658116972588227121274308271871288618671238315630124999654152148846913993489825081747567675572878302417020811314404000256747137208360544491941013921819507076931567748319839999083489859035227347619984837281196884531229809271367994417811919177833250688295545125947489916016442086094847936360545840975004721066484585687086254006542300705575746695649223725294435011647015250314025383298934770014752260342876571376354900196057812034858109106724524165425800895502712279135169180168087109778940791450537358515484086164672732806623744612180944928764850143174697858218760412622250564887364676249612557949338112042998362290306419486585942660885172022578006732870920520470249777525028600872089026830187756919865245746822515981711481488803366605871578006487956044812053104058964509353721106965867335579737789798181995779178708061198706344613652623228945739839372443959803809190071685185749840839621138228266804655895125442678271193110121802443916106827098488686275534337576211629208546076801663711134859189915646725329423164539546020784022513859118451067657210547610959584517777828584903027055264662503294617388483143007809386325997015074705239208107712201884239091294515729097483703553053659310399473499409703900702900957560816251946809557425160029427959390304301837874440103247860025467696413434617364390829598492755970135635974518259255332619164558808220825092510706545281483633416071899007787544388701425652349938602142414508278475861006351805262363253294770638928705601784759903812506664856461280379850618055773676743585060085132500665079944989634965500168167271213804055377678321791239387757906978648449383723414939195307524367708709946548710227664706077072938177440617897606989341044742940609087038587712786232145768434999255183408660372781986985797187394266415649217062535266965970062140336305384898532515125961521821860540025113392183611830336966219204128026791884699045919330911431821794119888678806797985705591769996283846606217556435181203808672385877507223250919901752996545391354841724588546282872060774303069590215948414852841084330662783867842709228669373163557585689296379559420726751820096543369880513861746123656944238098645115666640969069844919819184571999333230797157219911943920204489627964936097053043894796336906042242700323377014592036016264492202856863563714845589087658532851973685215932017935337174500506404026851286662936968139307115520653224620835351280663570663798353387650801273769843697979473810307979252672851382425843807731551841057073112115072019488665570735908917336782214188555556492380880785308165734911184065000144839690389927602114200498735101413744766589886932059896197475355798159387645221238036964630697241398147156616855588112281198532395400832612239829953688373649345487929153035488438931103468317155709698886042710397633343267023871193360603833902028195563236693016857315407015432186862735511350423657339747278462444928318031305227432188803827808148758009755057593301310458342002137672986020051878808299988815293010121011172366471732134420197030424871843645742203899110158989946324785653835911761255545248676886058216045734369169848430375695140735149433268709791683010412661263951552577676618753147553998650077466460074632688962229741098266372145115981201665796919953541220094125926221807217071247598844725558285124703617643762289620415166890685107285548097723184710722375019147114038581114830007288364985450340836397390007623370017907032711285298176858771289365254000038018092626414619653092937998047344100684510941247380428935185619932009510781265602753606935716994628692405996591876781304128259290186082318381740868468634226827171580329910036926061368853900409315059286790155120204624429686196283420168649126271897513265526490590131657415928717789832317148229466642175517228095141653845817684439684291784062861947641754961466917481781707512517303407616700067948832695676095686853664262162793949064381797474869021771717610089988119976853286704508555042035394009697649537628426271463157893464846461398187232717467673109396565724024611672103392683890924507624778672545271535559654481614279496777168814743555140383720412373071087257174715399859883249008604136142749224443910926760573971623927235024260279784759128175110418954777707688513220774043384099734910332745188770002113254013703805790898520960580693432743392562402848464174448508337713522441085990272900637751430289941690347545137531048100701971464737390475600359429874700600829228380226955259394258475707740416521740968631149364014954992844492537588165071066158058068274395416464509562947834585303581466707552006733873196979543141330857735733462107487972334158894571626422464441952232828357855940250670323687720588496436268795163535553524221408187676963915702502195983044467309975999682122309829829137187520030077747145644117999782370825887631065216520672683292519771776615969944991580152119503754458810109060401363008267346914004516525143284222010352672754520751515004117360973479269213405220564507925933013776580404355527243307961926424241970647166097503444686095225334148790224786654660785141267529231329373104022447729564862084747985434858933919388356364670900075753525768972323935381266626061333791834158737305012581613034086648211442506562729296528097418120295405781002467158631739099633062869179623343613326271990813230309783696614602539361371338767754062822535695434236782146319035836050657643911862036374478049675910638693931560442930396335550791005873301452462916318555616675824841105951669325503674378346411857024824945643226079709854867481859834014657505788806785219868387719835396735021687081408196411074916381474351356998242404650624389019648769033633223238076886705008811134124034797286105158836445614993846172748621636869672692171867296335535854763077612732713317657187421956054779686135104445734364765570911598997175593575153500037755222156760592807174170483218820663066100523883668430392730224307836694186806837072153714930364693318675012543991712122765004360428322240012039799845462783566725436523136611037500102486660407276808234975712857533133243025981884106169512826036757132643747541198777012475131375408769251140322434860512023375559923869099349610128817063763838201791272033903984304054042603252577638488603205988068782902011343747934640222824739910825133663548175326495100813770265414879984096486007691745617120682782186015393957388790870367637406340166477455302382718466876537464398276928639886475491061732254275881276455566537994005196469201452299470483530134180617109315825804410526782767920113197418721314335483741719004878130273857230489129638426013139091630488433171599861339365044071919216837989639302091432165319212671527417326464846819724345440461557843687562964102158319895634636563966459611088775088624085757128491864158106002293405640483072149638082902732304097026783383268573120706017559267619190128771071007732681487658771577871709243524883318559972220565158698681479632132749011217731237084145964299839757280223491218321549180981387761232568230654247768697390809943589203272729782598924805405093090763322553404628608116090886895470874979953499670338050773740804591831032271480332137376900984821695444208540288080892013840392441270158354031655278937015350686489077479058557507679667447506759503328435377789889614801497688235858785110060485728432604618685978053890864373826173296607780962617150786814369791359329881945426715046430426893233233575814248815994722131408196227678719459699119293966946866460404360340204073132203891281659096648851170123335868605767800676509406447587020088480689592122719573761601552741161178616121725333935164579977223563024412713288117325215002541499979012265735549877513189206895089768745492625195347654317677705582616888320911585661138949037857800955073070771346863189936473175291248067829222050165269905868920612276474519713227099866879330207114199717718590100743636337720475367411901855386438423396445417139085608190691911969214141464036114538955515769759263327922104917029182986975033691065148737677032215143245999014918463199870835108769942394513940207251190585970434912223155307252105942616414101167689484315649907289254420166853325992076529337848876747330834489142904883796658899530650421605351415671487088410869520039608680024127476225674666331055176055159184152900362804391032810781953204828252324817120162173557801027365858823758618867908014225804688306495707784755841570476578743003729830346031142541366923032968941524890587805566747409098005566669513765974808034810537019978432247652129348124782246019444111685680461927912198358954518974459801816738936050325894342980471769901470436435275057295935095686440169584066856047577719669306280218059411402324004320588751632500168254066002637441424401356810175290728638315728906742216316824010548464099852868419458135232717008858879306231229099663949656832335022144426252282132625801497457914314491395061389650626241733960470329045921332001464849848863652915756795083502781529586460534538156364334929083937374391415489174615824710426752131908694225577206632831726329912745297590680339031679493883580927442563128140859327533938812489631335316718413162728993738527285313705303343404212933560604104991633627432729403452902357419559434440886215552568501790855946750728822557697465009967781047028228159398881075450505400785484697081058334688701511216985003252336884459554129427606371316321457237212243096941231907529614131054737683123126475993655058766345768912040017625570578014715415110416039601250462743603858898441435672982930664074466007752266591380609346023849900441448074615446384019705002381245073532252450697291575437986996058481780548835121522398526081279753668184802782465352731282767791523382736390115905461868583028645692863615884920715792325012746079622045187143570938479203467883410007064550802527953108850001606622768469840354595551585889966999902162252693598771244891810372819963864017972967074401246227031776390928973970554931273505636467865814512469861518828577301513197715323057141464160928013808507987439086753274568103050533055045463204576396786788587018105369867701552188798726409699239062747703584825815037504736963371636077425092063462391898418936630216668021997463787356367090296556202541901559659415847424094914582220114931453529564079028659956120456708867708191532457220476120580233560669042885920143195398487988522665842929838789711541168282369744371593269551826687821809721693713484141702547994058105450511339496968788249327226258921752748588160210864376305117892152929634495300459330305926713449837465008293479185351861433076252518681560289209573031299021560134976328102528980738651472726496031958500888607242230172993859691126007649532153676431974677535512020274131416233022599177756386007694771951265855739935407958190716179924334507571176681836294880585994166821874320029296706143002622917145188641122127556798870352056124499777915180142354918251797316186565308882501383601182052169107743711595133041801817234179494660227424646558065903866504530136799586299400631438856353633006460084202958293373881460141372712749989482105889076969481128188438566691661671266565050649251138155279004734211725684094375343593027114613762744716831405481849698387946400472567896256215906811246254578004843773582605572545224695152762261134296111812143873833962405398694371241322749961000256757468637476553476830659760605323881115355256894812864070205842674045353682238080435478071370530619958113578350845574520869377299206024783941317532347738674656493789489929476394812749425146406169343947928064142089570981163440098645405473687965879548206370314473571950696061016784228209199695043752055504713668968280484771205073724407283314960272959458037214339882054595891054713978013735431771656461381470245537701099441399688955695003699078434293573496763706335669478001206939398430989627083347920664559713756996392649811232109498558168378346655947098219050311736687883450180930537715685647113889949780041128331654929881793414787808458571447479322232973402084583776004509503025336582255961441089175010316798062566803358924033476337842995078768644156950647909301710177676775982937700516840418888585429234366518732415916826427105610225644850660804720807883518820634163577770912238267614358765741599052729212828140476541613649971095997431465622696545057770860430121047817098862177227990090906446868866865954940903339571679871860469041764457120835646302992379757534230960217893889606113479891294283268217793588597025198655927387381329325273538947983259426800421757996067207241452364911771153151875946176155860394182055795905441822029177864977372956481124243349285789281893480784997979961382854565117481922355655678457028744172561157423838830801481235219771872787694862262650708308434660374035904274021802766933308836096426275955580817486938233537534670083405866605188496936079352059795851120694691009994099092493453072027476160933436593738662045400536595930054429070949204396709017146313183439008789406324558804766272492673945529143162751180670056217133240783280336310262773095158241343894908962165455026916717817675968511469449963415099302088303108251542770103524288804592066476899387307074372632793435674305056624006397054971679124433968793582863965677403459032847556725515908930108496173602007250942152148657945566291286484289641175270640045679738059681397129869560032899222633995307634822327574963992591613245557564626650614306307653605631779265726793115396365477215210759608676748255885051578562775784406511539960910960908611455492420955304790357121490087167099546238773584213500436147236500874519069736177734660991633085993379603900121868047872523487215973640299736358227798745143802154183312272597082578704216175222896686135039797461019437539720366979929567196882303834600446751880843824395900682762087818601760062218245137412117222502399166286916443277216121090045204360382163955351017673897883703634964349705142925321776952241550359819762236998780709680104607089274422323994740219108360465235460711382872182582685806865768840770813014547935028346333114855462228389009123085689335784479836324983111940700071402097650259149036132288092133129378571292144076439850706559045606067399021564217940864210537063753644159375393560948818991263864568436924575504552992855173477327024306813859131328694167318770147252081247788833323986329040942087231991118521986245130469728854904836268872112854669533499182397684611707201418424786761296754718051647857896767494258050248778583858238879401902234060490286462289264279880424914989717909747639431898409548978560457182654365858648597255753406026216798705609484517100142411162238713498036066225198276215364499734919555991147206271368124382031318335698427063331551579335175331568054983912502591443848671692409727826045461846383576671480025115055218972888537096067188096616086454892655298977175794751506792404720549450643802214257982146191906550516788714043004136649684117616561079019384416547564118892029118207956365011202639605293109723457687475624685305088653973318088013215659049784378760193491173172429285806964305803968080774069624849384948714594835220254116724775805331092866732655685975108699133021056115683925380953116894250971784885721151079391858858486503934135867499901518003693757119655383724818020004270719844358495476339690758577068292484975870964548295625796781448172485130212587619303865643985983395474405451019747425123267036555658484942097833914615768421426967716190862900712528948862810120385368644410158491988991036003287323356451976498964828398801565206442620834059135697322344333851204270314883377294268927718022406657317300552805716059054061871431625227535062295485691868298137668339706625244823035972892448155108841705332923855153099005449794305902820214468479673092383814647235952251363617926804159719308306834469947656894871562514907914626608789137555678930466952063138458238965633624620067425755645428338527426063648959479331831612366834140947031310683863277939154417929597159142821672570669074464248101116573171437535895115856545414383029035278285603877676831218861348088888522216028871334078528294678670069035597694606197079319811367853712867994217445313387557258696891171196539013087071148923389927026937689051080451892084357815887901684375314596332679203188160709353582721530569764244636987502121778334819502917811456327787831817948403718369945362721388965510902699252541456843611973455768397323487057417133117299445215499438407683043529887126485665882082991206507217069782347870844922139000195378490450712597560674654484307448348914261935530777777008898852311548918547429487034329932434917696528878458395382051542879786855943638289443675745399208967074929970439443880516663395943357091185254255702535874803185819947053307493831717656336489629201829068342545858209864602327571801874237468545301339761852268307968789198700674981655840017073456085526452370117242552253213238988289860919510088484744844766258919558105718436469759704305223371346387554109135158120557649762506410444212091839040486335108351540651046931738889304586849563918992390577213003585431568091289342135682779574789729248963054183278996135209390685068656911508913124812391512892467503585396944192876481774580733473199511623586691568928478465800769046934610491701653354805812901541698551763017234280857059087590020121477456711185368271215113433751157692246560897863565293667783311449171877925492167643149350327685137610665875943148179595928404886694475125891372681658004370540050991071239300289563984074580820464445955012482996938468386571815751362841210134005476432878334252474488589733266545308735270662735661164104971587650328730641073801350975108504952736805713989700264726100519780184324312511680145856837319243668436457232903119749335353354763462500822148805849783364122587563987741404306882655190831509865797283922235395026491908513787021513402254896135950394757429682812539919605831934062139516912551143498889072508850268452219084398627758315159664541471705351602153750953207521317466668669193322310322936190675452049248352425303281290379494932670260378954318842454366288077477479641776636557170496367393588297283119272649827186609668996761738594114693519714136462838303981624093291020550684682430792823172413864638927849898467986664478971947352423770710945253110235063826582273213199528054617182961012210297835731503507615132079341746613503226131886208925697407485798919245792686410854121015564353252466008958901343834068735377162450250050620971009682507277204844349822119018101384945419543532120330139103843948905132227949257578625284647242535824458952074172645453709711785225741115005035851202612228561926485189617275159638165104956685227123130106060809097224760835752904207274173367256793198469897108729754414031692705544728137476451606808860560284109566100804326398552354890230451658445925395705587919616624864419708608277445397794168521632608006712960744211371083527114841114355610814217736505387637305680056145690042916799356016657314251460950547017870328379394033719805323457263260200540924435574338140517097132183768506826465323116932546888903853565123147820346486779110176054551763460566988552952963752374674986581008906453863962174010887786788867700023604344723985801200257980881519846885869881916846360627811534235558808506236011054383732640785027492726989492424574044058445675960020253000323812629137433226916586571720391828005235754257849981597072126776084204664951555069514029795148415110732088000983151656878398566649063068780431466173345817015114997669654564240834500409926290719829118588186889494113235221616868507131455065903589121284066386108986568510343449530881778743583126707384529984549395307430734858414916645566184841808793764896752846830994789158205623229675653581325224715778230122700430412293943384587472812790395512718855906575644430518041161479717026324400135081796857266210374938220270819788368805056674287985498035946932670314419660868621511140790630792791594133733771209524017467697578184241208053949032356415229035610785658812844960097165651091601961376033152940193671670681506779054362393845990789185566060326503424469405621785135752726340804933319942697668513799514378580535803712808915085645573988472609146507506863191065583978017333404449324234131253820157865238663799677169141317712660165140270663380366916440355829470411047764595441189267983222598539581557277793276711687678170832019147957716341224648725772644760540335022116474764475883162536774920693288151949268810735950105918174636939588029567969307333850471151987690650058386744995130597517896387099264356536165682491232607249107982168442949630700785104780921619062428146880578124567657530072506726660275986910291793799877391563965607368350142766928487556193355271015304201470761650603289028747165526075091653329088450028262631386973019234722840221286104989971505491210602114188856257017420335489721062474939231217092167411665587446280429932985213764683152091377759740473211047586810822762999809603261210084049485420489703017391391415014114015750550993201839580892281424917997596499262609564190881281147899389441567026605313231302559753054788195684496133416277160139996353087751237435161077798396550261911578586342713036330126984477746948000530407242382032734000433023921621799825404852313785349677549280281598509155273393017565661158651297779124174421910491898573798580322688187589164701682877137824035577393307794832039768517096892477768887410062044651223538781638090161406378511737706691761242165849554420180526202894597342839004473044301487154214293915794148712777087771691417254042688820789980677368753581458278767696068215395154946979287037334866093672711485914156855226844529985938080290344184406683935185330718858373035674090186973497432189156040034819910019450895005461733954068110702333964188218191006909504337315714027294199883502694831556591292757409706340028201730661290883336722257300090802571454468555231963960721260272698089949227388256764533790851936283533468846947275347328756192765642113652940912273871652487752765943621511341978151085914308858506241580317227954329272146096415992884132038667598949705928265370220434765998241602443469389325583558885231821598187482012489724044933011391044285703579068497743605174590639987406081867275857173410164133970804132708170953533382372006341468042924020474235345791717173932236008340186768462881302700763238113662195791556204185593289257680749256089589919945034069934575753936074397009229527973289075697147829420588182359513465947554014312095241425862891088338359940648920400308898329822288201807355232245179416907649414447760985391689393795702769953687143915260738345265956744717481504048998625307072549158359446972666505365346151983098410928314762712074881868005737803726805090731804658471164911704043507293458281696961727472128017216400075797586820916234750703341993493729487503762277825556135486280936735934375967499255141949195849350876274875034340302434071786038108826410432618778710137243760743428344952208321726373959593690054472300234919343656456123435463503765310475076454692579695672371460014072187943337062080285358581901490811929096397010456380586843216839119814847868326962058430725936149018119165058414191934510864762336775809531851770951368361362668569257172403287273472456391555914632413554432675920795115231297395499672694336129739358656753056119868286145176301960013595286384737050354807640491589730798203235301148363973170094705969948067707261463892671664731574220770272676648743860347321242088210828692902412803632891320526936685961334063663090765827552573846307700400675460012639793512857097498307513182195894788359660923703279942687883061177662490652561634507453715683069065397463291033734978371711954423209492720743211528843050386441608510717074136570122492826355742378153985240868227901032593097905563292374600721297012599408623990449439651179195572252043975269249880422745373750476497073499485647834116666090865046611324972076494781929217904631750084868598474272951469817043929689655294403516819105523651160785614023128247067401271002686542847377572852041251986270872851146059878515737308210143843239655545894420631446959147862376059961852133868242299575835206099391936403003675273968209087751424302879005194661341458171771309516612705556882355214606359851474010483241417875616507415867834165820394037213932439111922487607962637872056363471655079495470335802915161479363760291670299557822165870964531877242947457382517200394863995890907039304955188008856002388440118014744308308676191210255959977250827595597594229757541007788096748304278212245890804236467452635533250753852865393736923277144907942642843969087374434695246596894770757959896906805808180467349533422691189142648396033841690331020948011614331238804543741015306013850378067657777934204963361216234710888488219352046743079456885519458456893122647173942918793312298753999062562427476434372388391893578358393753876023006857731004502180921056439497311613004355102875190060971352846502322284627739290549546639258127335051231773774199173023386594066776555811659851631555154930086305572165575885609159488928391781182221763924745631279029035022497828632580452848054376381222749096412357369101917857013626899757357990091473763726670989457339828421451834196049515971220805424025138897276469071288728054334790866429832150792382873346459804729832664864578397712880583739645484655310525680862572705625681745569960137422729301692252311220596198884646283814398852399786537213457086761840014940721077757401687559008808923453377746615197442017399521497680796436345774570632304118621556702073378208007401713121320964196937770842180472463909116786026819308274449236801438776115382131387983788602506829703865064937348138196355654999246216987982795928703125835405774616318265760715300757323325661882776638860622751811024228928172976450667083352818975651464382470558281663312121876263222459228571464535076208593845454571507773814543588964922559620391479166405704488600602136037291730340745899271277621165594612539790113397832830898056682934765825548253338479219000369678110100791413448371059778661564131614091001864147128250251081164004599326577450985957688555403357219532420785921783676759988508302246587288997193567226108016036232107838659187454140458787295802842230185076084462772417011430982530040761268258360205271810708039820493062531363460162350871918526553035866873434934347341201814844492981830756684360978836998336211135766183769023726924803878477624972741648227496246253621808280414609570488867716157952667258448387526653973060258144249784226064355195314686257826425964915188209194158104299866543635526581476303758679518173283106331674674668067105100884934583752485497493813118131763191813198543690507037112141303880971212212090203673898146611937216753635450567229971718586746731388775151709245714786237178874013177163763632112994345539442746849558539617015347701849060601252891715463268479917593694837760198101926134928017578134391830095175685247249133357720262489987111875996468490110699282541887755076892870530998300822685879228664671433158862645550657871430486890736801497871287045558535012281622270849211974663346518918111764106702833055924500210056598006289238967954301372268021660532712007730539203938055177228372666986976038193064352843988722730685062049788547053321881128710467148502567999623305190340132588584485445908469604196864392368227901664459655390516567235152750203922526934628044592983725414995353721648029098207142976749652646437252537326137915284499488765713826448622056992825869495684089981591461942636996360192701207506459126498433330891010466236605556612355579628839907532439813065575391879560943777590227507901775839978894498535441837113368026915985628746725735200617041852820360247577228038855794064128936611594287430290373544156797750971735506284927844904363215398725038378972111926721414719894938930828426882939261884423440294003382523202705274914520357732689274156265356187374460000905400095836150007583719232673036868252153687211128042790910476888158630474347433609302386043096273479898442826242309843797233236107715923244788024549848388242299538643909637932975226715027736979290760777173691655702231454723078272222932875532756573984838868148901403474985804924111022999255130029797032554083412634659013002504836073640308344107531628262255763608169418424613982957222038214317960173808725079593730735015590713795250897468211169366041168838773620324167828771819840160282098020727470920595452411801932648760599186482556857993153231160923185025024579344111707801236673723473220332446248677960267292859783874525262058885293498893046021164479381428974701428875480070463777878013782162904500527246780638574873711625143110874391324201975855312173339175272477546071664792476107395390292399207876125184363051308855006442156247381844526866842382076730606104500105194591411088100542910999276166692390054401840452995155072461615298060336982836551253998356502386515717335596435508032213078757042876846461357415543871538132086508015365354419912549738338345169153033205836809624168759497941204207770728863379145910883869411497411271682534750394185271008958639199054227525745483988552751834421489795343045842448530092097950604242840599581671951532125652824826516417779818551220956533143185099394206909379322525739983561246319189936176018144638650302032944033007998207205095143331750482965890081912408230707898900189998766669618712831573613352210343298943133404043943794914332894028649860269544386369785387176262772417546233208813316843552623602709906130998848943720803232820155235616138668503337302573924431368065927284139955214620395858833690359472296057802064669469642128183492762336659929744128560541473615951997735421153409416638923430808206212005690852878746334373665848948762655717077853813203963669291304163888017017686146556547721734300455573317054807837558257636952695593186628283008053603902617028576988930752859481964154707243455659932793746666009398028052331299513040944373549010515953982349786167133524488130818461150323024030502432803677112902720129059486877532034745653816761397249009868822595502453452628988430772782725751751512066408145692339525120568296220469422912072106425006547342532808457731086597341857090518935254924071977203350970614421673666496449606176580666365703513270614491698976227550384311456161553925931861316985705261673398021368801711793944617431355349885551845523657876190076288324417718570728820199489752702037871068220361705147854915425923259288368824816545441920580954968747707990130450674379132704680869325809678968079775273441490264329575827079705034424689064340131554939993184916851612761839838086960906465188798675422400882180693857855193419263222345856067590042139450765258662389827111614424969439214276562654267732324435332863031497042647644484488392325756765323809435132462858221734358843019754095066758483199914074531404502656303741803907095696723526212582247391465338796913683509784398432801359490866927591439282326362879582785186052091116973499388270025841096500162501229523067894167250986575627530133815767290752423138691480681451054565168798964200734668392702043653547688878294745621560018844971249518550778586804421108665815189914521213664263324355658636518415048609280552946555977589789628205204557998289963907428870844014284470900825208425570136170954202872710066376627693167151215042879746556008212921665469165150272359493406696229279967464878371960147101930384319000118792332579096486152471806625782739955481733333133857729403920145034894630182709271329373852022811790641837571709031200669399946119377893640280471714197824133035210733115888377854833100932087098644009805114950445058184939089665433445499988734729941521884189122793371138457207384722576000575193695387338116754251742573660582038537984742540873570210717867266514829421745388149461304230725341969729484458098363250934415293358342688364399744391184609558360371497296626067365421507765819094860934254427438716475650924001756706226986956625525580919199106826003905445447247332436047707158404223050983697735655109397233046997337377183265644042491766659744133641314749601184465850911437987262745123891329378155022236290352349768449071509233534678070105297834003673042958557799488014975277939985834188498312411705886796986259559804384524328167545937947680124696636494209323436483495120993609862239510006028854572074252576748572401153093867605015838706627650822897400105952543697427106504598721854581309359818289286234672226169851669830828236203951438360831671537369164151913565584954618946204918039376618606870007718439773403796943507218356070230829999805220657645558384255216459460615052321011353704339639251713840826088045504265666871122672992728495276777233524210877160850920442202734127763874261605168190820636696336637455083120653540095775779586270607865005858669878733980010366472230631475734878352104259793581098614700772306867738369119770898443171516419008074166029890746699518902057073796402800156975169795057119949194998046571654126818468723382396251088978343191016437538088177225990109038238885072925566570099409100708752847259925880142462172491535307185690979587808045204529794245945812196871598028959036733507687671469486740027259384941851464604703826838427532664442043859892420832026297808714305349542971464004364638651460916009271546411843499531166006609734322278550762037013929764473518956598945849910336084752675833600845969427064724298046631552678756824712806686406862057742429888559890048222496821909027219042599268082337017503385204861627705273016054323370725684795391094038912590398072822473858501155724107399449703812969005029139166875601188191095954471670666013587471528036195847987712848492725928722206088263957209949910797740652563003781137625475051761667507684491804739012198738477350875820511108629761791404765466753450983276999237487946810093230072420581974671046376557503015199542162232109888425413548681650011950187408823598583179496276998044395264268915544999300888692699530352536322285086223821361767297808058793643315225199282743533690668130857953257340047704625238768495277793533115029005054437202790500014003285942434604442639379406496252964213517416236102111461896431631355960023255753464818065369027893163572306757973704541283037013036777048148937505845337955753202924269246967602817215047473806337108144262682186601667956388091505697957438531505437662554033011873924505534151467098026552731655814762321477081695021070551824436721221515481237387106888670938611021292414005817889191862718329415470319634125277763482076750315315495611170292118624554565543585719956311249323868228483698422598558068568774059176643233170067270751557302563349725165051550470362987346242985107860865075896406181378349487092736094106545909243432885189119885197729069890745301997820497704561776893784266695254040537154544014556571723278063815078106287685167970150621446374350294127961613134911559866590202809168049649831424712656863472406180007163386125499939800792601277368788697117608573923148386212149786014488873813223532911008914542982233895318387920786077421610728938474217735649383506130234451250594131883657353927093864621981406369693660139187351135288196939946708273480813877834190675053435573011910043864192002797517809229766224905576500820571723986588275892331721769357360935167824839553772898817747711355479537647693651797704659533035420755519019756249440678203360792958105180254911563274112207341860848511260807922239831777641352087736216873313865979339504588303888596820774380833528622783044522962660569996661772701014549460948050293940671856157012430657151974184326990139459127926115544831028874233694220337476403247507186787242688273181814567308219150237625560000994754894114874545629825089992073633959253088371589165667960472192057588967869882685591513857651207349857491435162628630345407216961807476453084176060808761530111797302208819945734647303289212073331032482237565903635781123682369006143570144111069835544036715769505605345158956618212599170664608754984333699248115476546354320421676805427401363665710660949869177400477042640530736450324850008341251327869866364973851514402689387814093455188161409982388930839414423855659214893714286493548932790693524329512984347977648723212550127634571727087372770181157966755016165152162735122237004784788659072730316719544273825443486649900468451770638868636012631016393592544167759441729900411726434098174116429660002419090030965400131663469628812360802253038471329082360827138776633703820004392374000645942267846924821649878335839474692996569174990906726688747948830331428836821114285049488282611898468815172925968647820692787977588240723659938932618886467674890294949382733919054409622987876371237064385603038865230068538620104642733150879711762928416555765269587802966315115921110306955447245774345665143672060875661510404454199169828527577061103817660540933069259255614562358857282913274590806813518897875759819779397311101882272224806403624315320757679172552250729414345969121243380250927207100536237167154335443635458516254489968805564760891522283042240488627759972334996164122210010202466344238070940855302225992294451101203335036181061155641274053915341151351718516945855448555986246510717232010532220164845473577373078930122047703835242963858754262791474878268993633935811814366821422189051129955145994303459103036679439442240090316500410614260193209365174277222576834784765584448149321691944807325362184022259516426782763045260796268934208209440970709350407270027793239446216109059996448026325142962315948506467980706625442534906478806650474957223827582606042356028366610041355658516470619155901689009148498399836252954343226612256590270520152690490299415329538677380723693556990955330569120671220400494974350012421076955163248504587044201204478376851405258461207501823740991259854908514138760562808042158370050093689136869418477787749315751006760311282376927113491249985600004026076728036460449649542575716258643325145072277128093147015964539264853906191043274910644780225357460581656268710857410289455913860231120190263259179717149427385083610171880473300411400894106406418410019605130653679550736224635997393871979751982054478692376652363654673571914454883733065819874783625240675320136932382539539408216008862050098353696674597614077781244825229348606792034168347951150586979708803668271346223534653289101032991914634368987825877958253280559459455202000261237801195050738707698598128809286534049893985223984640257887597597136216568763180088350247466200905357438926301379937042901298901874755425156362642731330498815329344439436977149581912141131640587957159267024066538925966160885814064190656102237959943692760669807547372002977614876565084465400218298716134931510097747198489001433049175522754087761712158225802587913272306865918083646928966224493179231195741724869137619260052253006438407440717579566097859218188600541738113787027238573284850704559521725882213473700152098423988349654349465462272887912803552896214642958665840877054409475351839809071734969267185122683221620960316366064021596671826502701193211928575987397679259607372923197938268811786455706585110358381675217375749078017239940940323915021163670264057739820998673016201284014205382905148258981263239387475270248008039131239934226014122570835283220260656887280266975525914020557209123883445188487480795751276316242123531765159453337135294535864127989194882154009113260013113725844025275296669708482191684333137463120735866394858858101301493728294825276435351499406987749945531403320790017748608813031523909688114649537233748385708798341959528560258124118717950895080933822725782643743268359442699736884395080583557226115900940317335540698129427814466912090298140750825085430244875103139767292253263763994324850200363586644109084573611667100462336553595098243674828144122806019412992410495905436441777987697604398819724357547208447857778560012591227048215617742979237410904544369020802029683416378998958782140177488926739047577245303592533271400012829767866069242021870971589735762209730763126741698957423716332446730627582237839144990946451194843791680396800592282072544319510971893871336776060456889408935972486407792946230213137525843544972914784425464522840012465182008689846890893816424757673268669524244101271257052489706264944369142772733668165739439672113730866002096108263118573319640449867149462878060040998776077517455933125939359975717218674189627744529646395740853883168213882598416772257071655734554164396163097369946893429392250038516334651464086760718206267829498651253548703959191651184593271213145299104417874015602437156463814527574362762177631890443942728333686094214667975707718238273687506640383259510539475187590174146913936023664555295163980593230608857069972880462964261964050837121022654635136915611318299384948421180007024105513080863461253411163944188202135518050435472526140913675101312983967881861172521660910364526151113346283587618420598594396355340429125618977297154750724418708755235407552283640306181657555829858089531356943905944556807158763961405456244967402761232351670736379870054759490045955337967338219858935329707016157729012635789073263698284047136313852977947218628716385863002667485956234621384477491814489268025384971265186897597814848188022744465098010057933991667162185091177774015326529546750993748331965357559308960356258632864499256449716131567336812836651970826249161679772301372043145124908039399725351493289374353174597429619535806699513157958702722657210335425181918983960095855888385181620753913134471011788847446068341101809801722862799463253923386133487339761717153024935280489868430686318159333719229946697286747873257855638391021999780707520124549879649514274451711688236857577439459676000387187138029104471351381222302293407295688941375259866268058009681062090727125995571662950332228280054274165242665423655441408691855546025109581693892713509677353890357346936956884502923445543884707468164772319291235619009958209939865292629222100328248071722927631062853453695709279995025205751201657755348432501054533262731554019588651821580726740899921106558585175799652865380766811680664092279144974713039932524480965642047971181650706652238822794719317470447611355987126952779153076759336870443536795538951893084194685947827614869199554205415178946196572269705232325629507946639529294076265921621881329175732489853039777808596118753910173631962975496525554761458677450975243244774358209920701539657286496155176736714887163711881469784262438840105692809693732454250351732378610806852568681281357822954271705049211688102232242049661683499240707884422311454408927133381409381916536295209938633331816740673022163175982367413745932212415764294363030774478806821877281617250529453631593265322851188296659703704499166111679387607566350544870014796385584071025764754942444532065352066276063712494611358288071840436149267686301631611783807128297159123475028241367767701985873897391709909027563637135048276579463877466875200599612607660585956554129697677574831266730726400210174794428299484207716812484452984338753635130808784771536411678107265839226635424116822397879874010216506403271233429674866800215291418527155431294366264403398374702052223908315199698758703807697715654766753810320936810048756280198846310046613371731168219890796485567381688756264263988366647842477364060533903290667756463961235163251122804705614372806215556399061064629247205455861716848789032784510713440637170564454659781966422967157981167738849202191628537825340981047204902451125302113000952619150445061714385700103331015862815174564332725387208390620703517346885401826354153059830009216918644975563869307322991089846963061791180261109612076194090847683366266878628566839379818091435843720258840309951441498368391531872218470260165673707809348927078719926266673165143364167421104403118071502973986891121177778889654097915354413460435536637478500624826932342046603279374747426910352630075102573490521730701133557792070592483584652156994115636358226260559541302495250685118113323483567946190728479425028002592590982216166277696009426197216276017619130297294370816613607780703795473055381298024963491983265058811904788232307289696744851014375499656192688342673571261115424300752765002493132861076859083404704920826803989137785377335783055325769278630163548522403856730541077324408345971276490484052911926030459035785086004945437708883360157322227935055694895425780857772941839433901081515469267397206908729502503748674238206718574649285026441075526667424022797673832343921883890210925666514175741457084052030165287947698644574519878020673798985574105633575417102537595074762262991557661745043240349783425734201524621143578110342542460042915848930464691699099476386266524417842457251321110528088621768724594465481292417054157578263427783967657262454672847218796743444079821748056075695149618704200980288397520339012996667667430252261459273488243635342355899805555446862050625501658315343055689262983150690275777655637472979994063637119684850927943087812883273689406961016833703107121894800427945786299228053673214748268766339194596073716071902756428834989339634200015313948923025849075506724444291943790683590152883391341711796911318618567465821187399355741664303361792897124243583463160872057246343751575609874147205596721970071382327202814452177994418557310727513554921124450625401639987918444378461128665464047506454061555378659994456973962025304084499189661379139460078091291012863805552748943724897695770611305417643276196202919925342111771391710158904332850152695763036355968443456623532042490993557418602459807699148510411110839126862292977942107897636303716087615939559609633420881099937218854274757453180124247059187743441955899778329690768141806026726183205209308674883661161884469389924542716880592803207925194258152576611448080501415496821844180004116184456543487359207318038508232754357322400998132260803209959586131383531574050663480547172387567569139111760970402075897703188528974492577654265814838071695507948053470903346255533040870650880225795784463566950685499946455525653523945094221120517814678551075829469706146187429518185185358128070394394840903261204727082465340860250536906721529394123598176622929056418117169503789352434226264213585587511286900856621575255252946062073254545808502666363406227105477488575573106977416127155296473163136575940198772350904338113370698086253531235382862945189776288085758365885948909446643151454941703768629077013752614424464264203167724196513904134725281327738844814763594799477951740229903337141721913889333324124937103735239559986284965382100764798938470483211030505720513213445183483010312349899018766630794172816517738247303697330017249356408424592688868550662433500686193983545588843233942676436423920802734979474715766651966949918203882569344374233007068154767752481618756832444494822022178365758981540656460428147275915430325565023523775353242573915619218681575575368714790369666813843395653388617112962300526724929368301218119123056473664104025617736133587451963365687038323776468721018545819557471765709584647444124664889529852895348951308186929756722362258389077596076591519987083838343829794208543804454601757562946393083990734714544828595108159110354751263382518736322572223338868615272717731597630687150189260960132669161047600389070797909343047315628242025344523434548694925593381776069292319858562820795871512366684070612726456027949007669561294275012464576243129136954605342972575729551602226710827944655711011874681943395872309886598277727235865530027054064397370953242122358854510749474104043312176877261244383280443070033376233895183438324403654976011122221328674054363971827049571840066231647476532310879969437372675311775270461614135987010284812153984595264465970625073791030041941378422369239517581383960231878738929300050225450075749041713020311930150849119468727017616408359186693052070101812058971715680289430356419561498506165712363841552358721274596098664788708234426621965865201623953005935045148322410100150619961548803250060962589979189774333294589730414396912634253277203810874492752640447243531282238913608020736900697868263834202198350801928931667933855510423350833627597522649536908679204084443098349908698498759527660722072352253989841465319811561927342044105797452747490360751355983685310325932164313316634724892116847617663803007193771709554042571981054773397892743050453223777263646410631821260503809046956217114977108677008632874707128301949493739406638099763487271599994551894375892143022182245197262729699528795999032833403104026932538192232580369417269226332046828973396909394949499743353901752818375367266340096108540613839982761665345685979341440569848733412710462668670749648250647282700303028869734018355477326567628285518224601791515903207164695575725561281536266433346841252024785556192688145972074808713187935387364993947094328688353033919665736756098456575006472823110197111723676877545374676675222475593250797306994513550800579076302294485428592103921397169982628516631743937445751110417733987303872867674409025083393666232976084361572610807449754711981279474110081198234062615876714750641002182671752246442100144532289956459009464150762835022856018233249730540939729314924336361671764091656950530506552399464642365263884517565049785531660130072409010372201359510627423421812146452313063658683384632335699978225398135241151464738498485601035911287696411357349741878941797926474785519047199724594052201462195760387178587746781007594875499537729470877374911127178129232074675669178498118650291109182032999655551179817676275767592787992208686057935486361084048899618201367139431875363906154976351246940724994845177015594894569471549445041574717116236030000088823891974377372675474848912540733757245308669538567768831670833512937174159278650216348228301139332111070081746018514582488827193776684561926467671299597648643087009524357430489554186954346715112626142787840644502133304060616511461739257137372030272942539470783732206543473447523947759620541388655703681134702371956657050862166278425736675103889843386860271042595405792321825900167219107943361097928333272691496307103583093929236753137197912345518290132768829060118081504063119010527008036976262339176132836221441555986126046702968261915247830647552175816897797014165617862502925337081032410351968419864537853198003684468228523275397890885652404969745975833686542201943815517441355975969267788000344556839718163363329953324400498042795406806594613472734910852187756348694774848972673245866874549453821551290904764591901510791970302739144638582814929853507999906329648938387288113823220680587549524979708061378238741757317707837625414294274992147339773478227626637018540192415172437602268503308340426643297716646359322834336730661315755259699505741405443320921928199069891386843495520537284347221145662138221862561496664380178356426524131799598540414028282314208940424566966682317211500541028638024388270549106274513510817503852792853319495183396492291682505304409412120392950429175878692308657552359424116320025432982235800970062020979677288597199535817963157176684751454699828757398574460482202841994177784625860991769019362974093594809684353054703400165796003883128293568868198819067110816558357500751622254835366160472957676422811620830765611954796964112325988197346217369574865112582731933205549961809473407933249744748782419573841787290327865916996303567820268548092183388261349126694837069935023759337868777487237397834838394639607683037016174630608177510088066915146595643352239557111697209676579458765752395033274459347038345502799643649441173534514095823294614031996688460485459580456527357450875532638538331271757725384377061676562495324405068198717031067408747919926729674099294170253029968934968992766288622715444900225007590027184231890477734391249384992526309168995602249115909349917055763321850907461510671198164830333234242631198190076307835107673024616207562180457066137457101602936396308077758090214161058680758812131307525834232520091422188145382913440272530888789715113669299609128413725514737973408357492580044231873421251774586989774861470016151853616736061791088352348127097168245743045089732753771803746533652573548425916508978327172163734820328804553290361346150953825910421092764422055194400503313399641424543563513774806213947704230327856573262735379087128764446897579245166815442904072080681159848350739062975128556558026201094180985921609490077647503138050392858346368481701218468427812781610895001666367596016347795029750387321886260890189704340542526419369916071037649896281821119214100347885020631087042376773547466542614487147658272329496240744998878197367552787663290510486350807565491692523476824545928472995931258306582185892229748754894084163499572459527055167636234447845777293212355456140574795114087341846863798882255620252113525064102317697197889909254956553189006992148584490341616503278049201317024741073173893408729095933657114042800908770537584704747126420258294401911498030362435851229671638348640428860743536561564737499636818472793146987768678598167452739989755910882490808912629162038328251851276260269252059085631124265394757458446552206894165442999538477472041702150832291737041496831604120883339808300169849262256152546507477863863081766306344622201852724642157624776566808122317295277179772715336753499821232086925950599413983163093227424552051428974864272386183969826375740895042153240754631544073762605374258956592407353496904772135950285324213908188635035407030789128361090397958177815108199981142697459609493077256772318588321029859215125181267032727260145213864390208648717438479805973607235163295759530744156674631945325965160688951698291026764046686282242130431517472274662289818722148402212920003329958062680346161598645019169022312611205989146206524039393454204757779910892292364860829937279509213898861644036650147186739313643433508472520326273858447614777659282248105457318069152361655243299577357086054373307833561146795791650189632713823037488102064662733913790296456017815461341840650652911939147172203198208498606755979541965139741367324289863970028692975131181260568209386876269333099806741484247016379199132034000030512122888957832540011556252898881806186860259825142408918069554217831620785754067325729841684851252902214139358837988546841681990025214767655968288907990195126516132265687237078774754994394002911225301402036639901327742735208938021737915547552195059471168866423616879236471352231791428298916375385818150849929307627226191216717446513868420580031989406139264636941068929111721883578930812800153348387492944781583658232488957472257752895691462317133738445196857591301191785731430357861565580684308186073875183163057714154978110179922121035802158297442404452182727119279854171561034114350757827412299207434691358087693099095393729102876585162724611732910222861763719552043030519816806082834017676374973190855328851463703302418524443066456705783526647440069526611612084880399021173924858183929488407798140292880903434151248279617057151299893513695529957670913879880814940829783874081316621497692440701366394654383694950537747265955721722386963425987567552212476035361131063006018577916108267117940953936249300823162242371154410835230373811829698744771563057742568803100388673042335074405145006688112048280505097645501632677460723281752291952252162613549954670810493714315787386245667014602479165191157252801920628551226953358488388850228701983364578393863536874640617349877267019240548334829861288414815884912822610967279572899081108305848527798423852173808403746276492617864593590817389093963276731145487615228475441425237458925662736964741232123962706186098507376296698543121018395838062089217011339939037571132212923022969349105441704520606790557446147288886621227205207913958213507695177767129773857684132812491505312121815888725769573759341513785780771416775726739803703394192582074477549461084440253595603792275543726929893336690843310782667742992385941427172288726103998246100904344836170654149601529695204584498687756365196838156881569628133489126379226709852965783717033588267958013489146241535319453069513129356868593831972456081936278718687775492988386291330584227998185669054620334374403639858652281380677293352409720359294009900917262816150567472360242160089820639850332100130815383802842630019168826400418412396370483631056231769077082701451069918014932659505145120986214465092425432451290354886878604676850455736431405940490233331015193169754221335487168477403430282847510355000247738529074810077108305619214197582312983778084431314789321410579755280472901970417730517800807591650297425259412804346127287806361119026572032918807735184517042104927216861518526618127237802048254282255388062131636265849388069061090160179227014572858349781022262773800299129757720825451044808085107033162472099438451659358230926119466952199705427211078875213904853281406618925132517805086181352552623224188531511399712196038369102697746995864626562741441067254680347497220872847094076838377091550884111367294587616425438030122985805958117187314962414977515419835028130779704652640934377628988992880217400512850959428772359689022872505294735518033419987522508719327804862835356231755666511685395913643447735201918705285303205609753080999418018352926070387490460584409448865561317216158066197512112590181132321376162647065042141126200204205763104992359331426751751778328973770385423146294868301145086889368062852786301040831449365267105873402602989788344789821817974997192579695928756738669659891185254950932166135128391176087026265303963986336952514444492756212455899762146572163753687132403196402375717136666702753042211804649420192855396875183433097217271350673610983022211472066823891577637568096227429761415802178648739633955047026609119830993064032322573548216026047534053165803876898703694154661393297920432648443041498831909879683494457382423492804362589350799482185578498737716293115684606478674499903710098801957840625879754544736487625504488924391462867983666741043534327308688045403203608072979897589888615108626766974127164979509819921487402971297414114158808958375973611447451727133889562098415257466490711468365082298740120468450481194151244979167970916248005691698085096922494736626382139160028212579823934157895854178889088501606602160145139260210459623035103756321396159866892975439939147598767447380806519976974622968578758976873315128561233913618440789843108512958306131892620147437059812051435127414802330340839863287054448298089865687646046530009573011867126162126909284096593600982695554671225348296639731490163784197381702838376090157540207428290444869417021312116213919966628934213482445725060719806174352255036338589171839774061250508182896210959697686739845763398935471239573133885617618117132098474544467522713302705180312345055751248969383255232134704662284030969406156955921934914842680283209148884320939467925354116860831116539806665889997983002070285086434133399768000947043124518253130895097990126750429701564035403971838366377814642336524048931743467071602904594418497351049659054566404411139954974814298313896381802937045348270757050652838699793771339307757693504391914095734917560320948841213402311233190011722620764028210307867560931828180769361046175112116688108927972780730631339898559581670276636890907176261925765324330323238638054483514462701957485175511892779513255572404272611332273546353759125546125818221361565712776356917757051519326916117770863827346478917610298459410496129570550091704361825316388963432892413177653454718389688088902462407443309282283277780546924490502733391549787149214381427304991714344908641059586524814734074931182577354105447846665390959978730783658486277434707258728972869265589423729945608563012091441448607592987001048201976730493484502655392597456331630625086383635953817045395555753777438509780254065619868398294020326726842986197816859945374153462267063804075800901317084412407392563069272440388312061513035152738790117898915025127901537648709449673632233648353989892564275437466022845286574173632864384689635713629678959326856459135055358717354959779955029394333057711731674552795523862939611084250724674028607787539452800830943345070244786659680385262453847339696349103340432005134108028145348308933658942298393876531616171118544900591399337032855178961119914546617002005231764532894183419391331606526457232486822349074090837213483896979725929993595906192447758966806266439349428701425606545877622893962522364574551893836187334477230107224495589756771105183539652056308575522484363142634527062591582788401050475903718737029263134236963614965915378799122726437564775905454106845789930316632849011805627057421752231676740065969186159255850146829417795802467909881174122402370784745311093479032700302763716079605072187162369951424660851085321995967976234419471962628272472706367605128287323167466639358668196777398176986753960677698871061956199037940297803245376655075537735650308965074310465227385871929454556435851891981347510074685370024675514414847541202002853527436860563283553514828235055423638138768857858930906537731498873444827342051602190240744339592832555609024263476966150545609359381904038145441760633422892144892001143836263327682460350372787700617227060581981027561073578467592644591490641662173296438599122090376429518910644460393928549286429577714387684783360369939478493725572033865647479650631075270051781567699587472319829978290205624199307770092548643697591327770137304185747242286234921367477070743072248428677079991151967344188394733659767156250272608752946096138372020012853658858639223383940717815653200231216331152117328048364864257217415182487333457735968676868457338976227612917013959698089492582914857906667781689562740999586196207420778499908632364600564208670542953924217469576140277593118545556725071449977972188355102356097133738970313301142961183376640853296770128528057775606047123089215769929484842605168134804949550220533897561769285617975353833327573637186466105234542879899154645380802109834856998576956801613579805540187117345287228826875787554513952815163926697481188873356657686903270070899922298141113778788703273297138608289648228896983876778735725886633261584935248858713842450673977024619038135552613038044728747013645739045157954256206075363507342563593117154202929424192757630218900134290135116272966270943427399090625543018983631272375675204898352770222363916334225964264047784330436397955132908837701707275313247276477821035519715764357208553908301795293073020421885204321105668271717252067844697532623004350792316792746886294486967726218519366282730248646459234777974017185679262440955260440249609966048320954236817169286230284612081342821211823730841109288313768856742674078033932650337372147153595119698392284418063090594348978203124753659160828317353680532406855059026619603832361538828153669672426837172721763040777522156465081891849989563528358024222410302087639932935424656475987498000512316390700805898804405180583603270026390980422066429150903594466794114541362207459813410635173887341514348342236575100061482183470232314585610467865635113822510684259761605635345930476831231951935303676664428823468544223107046860603568137560963163904785167174332915031283019655890912780906955798013741453070035877019223524726742142187884445544161459195675722117213269641496889267561226993234761680639523596301117812860357756022635472208628127095693026880753279278800843391425831030820757946038820898429065114299761375503915254790354791121150357876151166052240201174227855983454167247718037570547403016170625037006502578713603529983233068811093823890589546059745307722997133370176281702697582797647269952953752280663194305136032409798018271055305218404327111846486884409679078729570998281626929690691591890610891497097933099371855241765958462469595104263053554320017345353609632764131005002101874125620993841283857505975679224721722014386686910682568625426751016706701404767392258416523763879936214367769977052619470028144169223928390888116856428142399343504451706862517146709634521703328775554524219881241772858015184092292800319232676642949681371637361529589306327502927508710372851032303442853434841637352163752236667337993865683167557827402562722483796212415860309891005939476051034154396195870177628487626900229477551856911865199208887458601640662697153459361269744737668451464083684703041888395710869015295642148125649714940794823435621240269061205709594059087798487749338249725984961120984610261373285039825639458902116262943995818105300639042266719926819777106048834817449613131988557896831730966733079026137243071615488020186970700601609420224960028945381648532992121673698662209922178437326797031692857051007151679331442193076051596517731821994971308052199240025598986657042022326125923815309047934227140662504337014166608600044108263841214842942136006723546420108295376006642364544156276427616857586776937673590588349566843586667397495918805357607912177281312550808334090577007485144142749782881269042374011193139036992395497193333814601463103906567958004009676567284803168350158983077314085445089376668659902137458432860117204850675680157920109528041123348297893878592011548207847863485544975136237462961470609933366986398937260412941841350450625227577131311730134935167751756253009440753378462969073714580342296719871569621376804637835868079550974038806454862707568991026389472015747055594593647010566167993635686905364790709909044968812225698227479243770727087410833472772663823555170014377390001272810384843348396443831748975902133003961472259498556407204037411649561565548269322588294420091867033314925064951023624426728738851316478404241754315535577039302487685864717074358755452954569053763922063984246029970662587824162647587197182847748774991496774885015896068729020627103500502613641162343364223871181964530360862259225352147792589695954323457220584601997917223129291987413535086155213121997091433840037349859362798415142079735860401324588216248682505777417187355303487026486713805386739767738517016733232528607629339041872664687208221010194330096835214307336126818317097326989753363749846861226551230125957476254396771833858131839155407596585896892141874904163024449740956146953868803434881027034975501558216004024584106092661566855796449599477891617109664026646019350734485650994690486222135079278503008085090122505502833053381507601083545863125673333702619373149203131678490195411026843033254537965285179387278492856331289532169526497148216313497833222366423837607962260415791786138644286862933086541580028062133622553418682880292573553701605400263380095243232876259068424262703407144070816352235833620216767166335710979991574925642433659538330905702485165235192059135849771791804400848074658433694453920365820709280873386482452164226026878249581705020384523001759989996985827553498030347573089731559382885185453087083981190808899959352969842382401997522935992500237371008450492024671709584943276220429307265614070560235826506773705451844551040776296474443109876859590348587894364466807834345124075611394968008785120876121589326010893349894926917275427382410192032810684834456386150763063579915217815897016516011663756652558855758576726140903774380654115377018168003180979938262729768146955190683097989581025326765380713205235819997705903212309310090368960589650731620844777106713660653510913878456313169167437642537570688339048741644774287123118268916093970573725460922862040522248704204494842549691100514356827454637102372067603401019295535857527303745417862289165289841981064598770763701880931038991637187200060713531025250044925047677082786495233294896758406721540272886283936992078253704072340625715324647630509731156164237905197631242567330897553132266729415879613412032678089176252472415140334306500739994407126879586007012813169915870003290213911277442654506341796948739322842998219321564737941623040149126612961197207299812439053048557924621504524503798064853436301449461765512600330710431189295306271556289135170391033974737393347538569627292407039163806186352137420533968820088229428498721893918801974559947961964105413335754018438034474568608029525188150777490705395553254861184703327818054911970504093408742579612399259982991513499544089235504053492526542041973584402962592592120689182471039300133934088201750761350752031410838470292521379921696568236071324197875931671800203583103574027698884353970526584608282503580956338893913888831052331668262968403632427129006597294257092729586152140669000543687503486692102176534529344895441233381494807505919409247662487667358393340065501335416265153701012736524070916839806627321081102391365681700365670801415734563479695940264889109278337977416147682272353650378231785527615650415728760467712240225366166572989401831720366520382538051269485436362255320476438979257056448948745797196703879695307217322452184400989551872417509566319492035109108184298174849227916681137280821158628766733967421003010539055794893730369834155478772035269962488492059087075032627485997949834550706663953276925028346223376040465208600368283425684911804218077669589314805968739855662908489990592205677619770845551381096098496844830333699754110277296537291212483066114483736823129947025668334673983004831889771864787218304998892555430072515132845061000424249166755977314504605025091208163166932049202498009616276067536046763663120653850185255574348512336505652253085908932384714929327315260050992585928324195603076041603535645186452072532744132787354920387347527095215906509717720540724807194126986240462387360773641763639076118927379060016483957094527615139145845876502748892789548622718711149225512341200602443683332796725435356734385633645077294589351499903429228361047530259165769786917092018056226347968123607637826275825799920890155850203725397053998246027807994260636866583439533963121471012382594956776745870504304794059469863310079571164250113809618349780667196324142489006699668237412964897242254671700760272509617751039649250479680672024000671019475413255893610842095551538645374192441961327271878239597198455774678799646282562765821395606203157129415066181294791659419059026262828998009310464502443415898419112548470589758643066993557594666615004355053974888166635337600027862658725796968091370787001494079278208241585217697945338789624277042803290889599723181109876205141198591057107244573221126054820064707812321966452300070786620112883267852808666541206085133701821690583174314745161915291930682928306839322445870278641019153242945967169048955609769989640506974077474690578676768632881144192147600729177048318846046365747923657774790180539112864422321768149442065712208737186800699554357219813866393249254336240816227794735829538183746505774672530361802939400205226538219189035246075585491895344507539394795624402163699511827623807619260011855002976553600430255290468371038180794094404093133734394623466547776090800523193121665017775882031457654940050908999573786755967849106655889293061013394125700591723205663287728630045574370020014700949291624361152928759145614913941182493924514061137564878716767652209066934080705580563768935019982215692638161447835911480391916554635885423244804818457053453672191475709955790358371143015987651146990924869237900672789847923170693375689607517285558305949075196430667077091811417583650004649136187861206534616043369325543266697322471595509865044928283795299017728821390428901854687890646169218738687108482272437086499291128652600579542447836897188172811354563186252143325422040272591102654549439590216167922947376990007065692502539653149088471592022459801770497971189147938123876491364230079571719980872141717053258268280734177768979747442840101682384020752569543831590395664206812068420391800866969810469374119189758597752701384200958807220989995380735456093291934165720230859248775065621328719292270974855402136738235829363012287671871060782162922808512787747982274167838732414382330944810838104946563474408628958781319080034556272685741850129053835497188454578348973009829368045825942863070119351612411482904792827517353777661293017595701584721693298335574902877519664211195500879218049998885479447329454862342973983940109968503030695898457012123350746553415789756568708928242624106885999483824695977690864399533392320229665181426584320579773933806116842529211515743975255710750882070181733273068391195715845316393852216025352891373753383331446719552569830540389842155678550279909786469609995910607422245533488292866962399211945830085753034424054813551471014428096923163175331681357298776104517908723218048856345107222209519114947789616688944867074811160620085269972131198396449397853887228235397993675154656445987554855549011607699016677439253368012327648052317015583136830672684706604719034200738854214653840438961937737199668963834305835141667143872279233771938318260811493348663601812404942475496737679144468205782401856896696027630741088948652380900015060935364719275210794495825292331294461111933518592235675542312244619865558312847750566360692081487216327440458679837881208787415639587077071546032382669966012775511897024971871977699965855079308293724573722562328168297502925056915012733010357268444020386008690384319481102049604454030525355423885135008039604135502998592531265380832089869744706202124229275547310621973896800907610723956083674436834801622918770780573176987897191900530508709830918001370550025083321519859115747275819014746167378540725234023699641134510517515492575660635511540144144100834274131377870874640950678743356091003602939374008335252045362343711747497201421939539657754837180506178281315402426430230597738084497955672156274480051369630375967786517995856523300377854579044674455036545274494715758870282171092950812594490870466541857117244386563374352234363659487292377142424530987828488245606477424047102174811998827803505991874423211066143705949298237621638636960023724448642661039969128386132456854950207984566889590694288003117785425903003863517557028295544127473613556443859049333772141715559602407057140720102801471208614215321514391456419106030636521119044400499284467442100249204071601049282705696765947314307140261714146930560702389097488810637381129968331217892888420546316115351376765668283085246819599705604198633483766687054336076805279032334590669031350827900140390361842536916135776336137670900258870172286069911077209291515986725338470433509827361257661191777319495092951659427649124962944482609466195819366818214146107757620444237666613129588211084092124337059593932502781287395924213930027386153658626269897168784836673049012509858313219743415195515403126576874725743947953761348006263754431637210560382107284792156448140395673079565421239345138204369749834824993794475836860002166161422264010009795062885484489378414664466490212808490911903238750976139357975057768009148760878406195520885723115102420092770752548330994760294269568902430744161918149547518371463899679246221151810583089415632403441010502737544640301221806075117872493933156502043229397502856486941033233750482567651943977800659812942150071171066868505279971225305924370295145022461397140372134087155091319339894933271536674421996226948482318808836365747784253590969123935798078651946593812753200265469603089236891748269514197200062850449946603015977801714808840517372024546996963435314231936617067120433827387361892671744378734129266825823122550781600186940308030924573402008143910780553145187935804867509088001148945530954054640608167452450570305016801061237367609585897715574216091650892372484013894458028710557329822341420729468351162459034137721552986903746500380407573639729009418372422967138433314042442561812431764741212732138655368182906575197337302918686119807477662755997834939883679451199738880414101349349866332127744539141738169418552540982715743846298509996214894698635177775524044044192627047100107660353775256608905882846415952119394172940152050698400050001120326240212672663854979557137820168344020100750574842056380952932702702822031235855981805196660462364353778605718520588995021510619565170490363618035157151337168411240931125982811873016281120711952040205009231174903880569832154609158463842072789061660689268799284579299878441521350550777672733849042883467923476833008756979821724949975622224987557311918859039050927646547693571417221654122081470775063001257686164899126939321991693173811515864003606882609265987139563054829392692164145590600105910085652835514566832241730629056112400054284296604223867902571032905178631891877413463640084047456470934970010269499564565483271798896969530234133676116402066627700274693975168332573301138645181357054354379305634821299854335464244248256731951077426230557574683958589692087946685752854402533256136196413313865750551758209761702126681826415674218743007038685982288565317558799350899792456861895275899037854703803473999088073658854837802126059703151447856376136231677365898853026105805129638336422392740712115807610983472545261240264234897265038561585573482946654638151724174142858466598234383983790162028722145704961347871373527298494721108201228801784766565094320920662517727777645700973761872619125548427349498017978150135099915078204060235086445650067828689384166464961206727414715871701791971106133050952135243968962401103299150556824003200911176176786956294672723181862056097653950369511636268515814588327771983708082486983796923579870594207776746528583358061561810630649847551928420724600187979052077583070686958404003303595489052951384111436741645239158796742049382136993952708329758184237864945870415315664087889214551288578450320829996761402605512685176053646474090128546538676198971267953671804168131822432444868242404830326278049005774063369962499731290676193403185839094379035993905737085409790918064827905954029686038695015601492681673321613455443447882463191856542684535772986855962484209818933407934324311490534290564358659150391920710214281279518714298343559500394262637476751048771616087396094885744766022157061029965967094391250914629172780328511645129186361325728866528856350552951530128531872659436678201050604830522840499011770409761589147586562371289068177728034779077211242486191565100107403035562162452843271555266139485256284493167810165450740700235414741606637610112148677477732696801740203115228606065398811554811914231897128412495861782469436030251055947444097134928532158564504323069499532361925052890203715286776555280592538269451261842053297795275914366781112083761383158326072366830579548220638972806406655412334614243864759275310963552544003831012083636212262583247886233665943337238570960868821465393225452175747891063978959818369569984620354041247135982757936736398127109162462447944593299984130525091502481148436342128242090394837005713787860591546137728728588273013369137734293612493439168559245226197159819168720590957222232646902458269900363414747820534529798679411007535360149399749487077854646285232825576058786304050883761253945856612682356714628210709163557153622653492188991342338068957057778948455087664456282722071757992575019519930828619971272858674270269193679294109391540581782230400766048528028085501638057217384553196629022484038562519107832551528158601531570218211030821028313236691336398730561742891173702801143265988076092426278439171007223762360912569296635356161624902023149130820617564856069543322187444787013683366765894541789021809926586066551653787565521921081072779847297894241107274618049285363783160007275381722600041162730729759523647095516388422846498350360270740226364660258340201418363194408308836408979246410195804570732613411785650556832907030251308463364848776627123213284843739928876186750534370343285526816949291021598592277019077574809075819873469506696017351631413434398836691739560217386185468307061051127055970926288250249040695080310769462641720739644121623642041453641997266285155191893574848310387553527845278716418399727098763011299250197699563239417786075125837465716264099121304008101165821073710439633703195845216672451891197099809769958871443244338884110298487355456490952281766829777012133955301199731245168961681014623576910711998192913270794548774565444401154408995125063210340749553395118833442765894688489810200769471161573178608196810127886535623621942909445870821056922441184179856424637783361591162721476859338609270955231656515987568676425976945174157377127372345348377682661695447860222430215183268770440500777479954991049449518918422281127252050135844087418678284673860187742372343849023366503082979784842287292843663143041817338096783138597393382872442939431562478826918895994891303503864346326496262092234790438721217693840040001810571400462304489468757184686601148030260013874856531280435382889795177379862869301503155448365758911642643184220229442605124835168548736470353167022805226239359327811812305535115622207992800325520895726218308092695708247052111694944503355416766946371677243424729151720847210223431912112416698482411028177006163698257334580559067288220803027466139339961651820001200980069133676812407119669769741986120348378674008625596083063344496945623682153591200667499649278427573682561965658928466919576901780854306188746524422969578724124622665399187921016414731144398727003868265106875190086293490693890177506600667811318528387137802212920177108449912178678614775258436684398228815750027786229595071690667129348261414084697448003362864392075358795638129759021735829623987097838993803885073294954599057763393457156784367437521687363354480626918143875502379026933086973632885388178483467402447073260587952238972497212375534119249415591935974649453480033874464561396411879537573940498513748471308668346988510594470035696702695270660766005124640719676134791453401112596283587790224022519131139747698048419597438578879152947973941014293542336095996016627697916300666963551594248340912409640709894732845220485879871153931504470844816620719127884813570708204317498357653209647322080082476999204443481819909110855509077510432870027750793278910384023532136051249145610420544266365789652749439983904351556509042158610181506198830286227832943240239394025442662989357227527327168832797046081127578937355273970579486450833638530006347813875770287170263481474409296126387958918441429190813745174904764513371878859970835467226685356270880536015494860406752040769724832062973112352127372630748803103399207485497739919571773110025517771072285259103160606442910422752671349444389505446245908475980032083758451706079179830174468633097321205547227374046746495880821875529752333462941479433325814183848564157276532668165506466061086295187913908374619140261198783056507400484406609299642406045897743323304239469647422653660863449278878550125636416251832991693085751536108281258442814332605127922805012317997896653082398382288569728362825572063193456788986047167827399495732897457926717381704316136048014364629215847345619138967205082330791078083376360544806728017516471429032519585499553132042145706543107411276494923352044036780756897514329345665952353368278804592164622749320728997055591367851290517585880199005554222387437397136347618196535363295856529782519312446629574345081655589044036238198393713897867045944161850129283605800451404668934210185661782006815727191878875562921533361547159622851224741131461425736390803392693751621728104251725549678362236691820108591580389541990116674165150284083997005341196989134804172412456332890450861616688681766291717969764746896058031618774301143079370423030768308639508097272518151867578659562432765952113721813103804226374811098411536023520989090483385853303161635916633106311946153755239627661062030618119021091118070906556328629617052823932543314870948124448039917092354258211787107414969745595935569180729957180081771309938496506302441438607894814701137298777673770913658356467255111968105784085037097116049876190023154809534790752676609415954169404786624414467505329894235963437251339625948859924186116076190499993092091982113564432786256229500076447791814611849151776911952068511765290251000627610398839349494346504446751654409621577345339596869519471673710115862083563588476443942969568140208273008890559833337104649583114300638421379785464789722766524090701865344094284798184664432444351846916364859951306843657849573403993970743384292486269214900812651376244906925157624868520894535057097707553158115170314960296827843226603525454552218331847366281627721339716384553407080866936641662089813078557156814353893671253231368623033432978861660716604891573503274900300382171080104044287599419106616246256039938782726532091832100087765206761433859773523487462903247107671294298971792788932982265345025367575771060292986441150779868596913023555778629165819805277384931541944315255156774227097661846335056792958520515957617242450631241733413298225632961145931612417973265742369483582883304969678488639769101342948006282571992933713495301131073127428413342516079375808381925695114708899327328951360731496694411783184247282137609764299771631790198868370379036210398242873658042631304311825293350788381072329628519511050055107857114057303219290383667751342098402515303649531809643053929291771036426544964590415116417122739640887559247969042383432390782444218722941958575428683706745767614249323124124316703815913089419366749892057108217067447016092007446988996019430197382420644288675506802723328582692650246348353628821779807638163813102926061101487658339599170845709202631636830749619028748685961912938064821142800964240464340983811166286831465304994410725115464683026484320386717081820946269564763860835792830136577412590550925739154557134539824479628226133121711259080144126635501488312692492978769144155096428170705523142606964041677650858639485340005082895169245051638039438569813465258152876289708544419798374974982655113915966474004497868985612743099290051769218257153293255770459363290640075055882652378374831748417009355926621753178190274812422082146035367673583839934013670644359230962431887990177721259051224750823071208297279602314582173890556254400700595771963236994256078463431764445145875594973902067151964529266892136226277266954695014695400396074900943752623030868328886439443029025920222253511051035463703091319604389327645793334115815535525150070066998470624384946975256163629445245287805800159514967580365905406425960397799481185441921397991764281880036202296597750822936398191308488599699160402636235100324288835512949199319480446855661497058721860035379079091433835572528267902798681569818230456496992366266101043181265425440586807355564390698103553435872363063560443743412544132306241343878833919626243516808881223153097947352962306284175320943397162322263373987813142959194197139061931007466350592460789851456814019023614476829652091456703455072654808144458915428155841766551700014127172031999700030717722751106444220407071362621116844534990566659312575235331775556187153802870335531027283936041227095850809422855495654134342469335337128220584394384396946475108556137827095844918716135020446374369398027097527238556558082733611902083680982954493613852272112415833574821267474630965542206865260135866119947627736358326454538586505735567104953925234349570946772428850067518484855173213964221866008035715963283869909063634640678223124113263123139017073077595283146372373903212574988154804820338665189956670917033517042906681393333418038231196189603754479018584418995146762143312358369476283851513467528631316266920295971550383297680690216720952711595335789013247238821442939751108196392477396313880345466784707621489912799618417040163537867946985646401021875362764211727872772337400953640812305696762248645934503847283884147201126771652853982040892158098904957121485884814097290291987433721800434488420018695428203560846317813405399443132428876210338076978252762134873833743868761333864257579732206774941182598477457554637857656350119251097074286777995202619674940736760971214174137287970675195780773045001317298243762060096226212444516702670945639621660936500920636236700678797077483963824184203568151134051145434390392252248598574891702494648652144569123604338782353543674230632858801983302147163130142662746492345125530287793509746347730582570384964392975079182829306837202304311160724939337939272569430759021007936582839347479587365616253866652242908870320578600716847972886307097948404529761040634233215603609975469116695631860833661000646267797031441375654551063155260647674460851204746549278016047283536634871706033285573928888334895712247396217723488870405309083940748874036960861452308175663788803154682179492203343131473317055106323589600361554110970573409656524915160008595705082599575555190537041788529691373589227408340157986790768856050361414606205194736134958809380191250786893381549314744730275076343806766363514190074802566792679842397630218282568395517912871649114919292380639456720020235395323079549888331680344355293127112947458185573316686073843962200404931355077289006210245760114634877174741585156811143929555840938307576405447478046514942178358624678994980735491057893731419936502764901407753751289563579452556476132878467163842263520255875795143414153121316137484015265304342001027609408592783357313284661842771238422715001206838953569258045059145909402497310722814337303023263329135674095484373006598057950920917257898494836152123297792200208035005853361761220618644883329789913245941928899318895187172283382654793820226334941465223055870557224814243151955993155309062684698546675963162223494569436405686190733161446457305193232929878192480441874428608017188887680573683823723665061128313319840040393732807308755935680388060865089314621957238949845124109843689674340071797299347598699679857977122336222866826576485766921783487685613411327347762833236443792998593184262353025541099664682417582351722722627591158740113511612021202165907102771406972463956805919246862715258433254720790905165697725232665546629627266148866242908041113696739815424598749687632044620828474016384582066755458759788474889195092644513859083357123933531653985276349377431789171453673387548478712826967013644658429057232816705616116125178384333434336689947658893785976451426317482145457647516149168992961951763757389666159240293910402724456630834926498238248653976180835067647755706491201812022935147905647236159404497400674964610460864203470591490204027095113413939463243014958844585716084413573480971639634202169071817975304467069917395554580103963937483027524455830263101178095030175043326039862293194195817033293756085163255608203953298844602325986454691812414858890686406977382616307946493662936221926808350745955753459515813022878896411130870498243249359259837921541728956903721115001409559455832335169590656982946447187012636254514414602547860823203646443829318464601212948904862332858229297842453636109849356221950514087197401599752986158009371777923559651748862018710863279013761182718756861487436333447112435963842732965613953190809268364356166180197150637493919534308291385528299393671960588783882365050918491460435951006932193961694271489783670855681914783540622038841971557550125592608798356954622286969508798472943204690544661200176788796302787661816210544506897365418912826888586220541122155653156307035422522038215642275429508942162481057305237815786159007025055241811078881907415458315839864598566624307035144270466345030125433266564047421755327321847276768441010531331407786464729641725828415170995864171524408739461584560345616052244755799359896474327100799703062339475625188475774407038417936114060949946448522558431627256222414688126440454067375713020558239915322951257677134449758362546633347070029924106881338551906513314546347587204366239215123993063811072883874576308010142997654013507195641715520777568164234295971923010310393505909264023607203612421826860476865469659089510760602183892260915757812681478508887298203070673333575870746419664097785448520979396242168753498977259267324409767964705041741033976123177929348281700611273858283292855204755681544303513736801938220764365557100936373274983293650574512346215083891692924159509521239311329109467803312771137450237752351087748867227191691306449874074854674005064065547622241633026456281434186674607612582600751814826737966195272542068610604126002643564188064932786718493364968900768234609374133153334168826162152413024668634799324508922807627201170863950460142191577333488667164385713386270302347479077877760192610817793560673915498137550896487824843482479945532234511244713010478737548504986314153204884159074451068175271605279371462988401871841592349424508234189315122312424531281648835140385154199727827096522934530696038979993186791631813744016358620906243545656481333412324125042615375177288850268113161615610775293759357288522516702336101769009673957624500607500396109679547851020249227889671786100871682984987265999191658428345828141916882037737261325054898770374236720920400154455886605041644118891829145231584074311048589071178266266174211216027866475403840694293920991718613270100855375207017026889015988965316112100676118108432197725054248370578667209716656397342967795650096856432981044042267210947253976166347675989445189309441866096833259106959500317349750396933665176231538517099030220808090772050872014323021901701018649686926716520161229097539811899695173309991103264384909364501952411583213960737097871268689086768713961828435674178990326387726452644754549758100998492082779793772653882383969585342982174939121905759793778670534741840558781860162065221524278706191916946037863625558145707077033120073983477362244269838434859256843857612621785004981238084109415841086997812173961605782807236849135200620803185559339531491953310015386193860340153913883455202875050220781169977877348917866769957252060507145695762782650879108321925831058472549123596971496833998106613838560384237339710308140531028098387576904083387476162241481207922102156917980398472056642817363046880449062582121931326899759697731441825275394288342664925447538578004592701339806744804748588978586367791930146351912951147313827215490555205302811394110096482738198073252713541390292690169759102382819877707274935594097141495981807242984082444040880758924451986561090595883316510651238137113346271296339472134046484471166880288785288638433107180933677948333477204584741030196698433626548257207249033813616029029843935317423828408108306694676012856282097728434280691542522689394339965310360381997987069992621104236020422997536722437711350742342782745287081399365229796070646451721619436717861186576134080693735913446781503642178060463966380033344000886451913370295549315256739057955968716150875468034826238616657174564657181094146168637960029643467656154072546573626525504565104310342620182587098014467534210848994602277369015895007474876219960725036503732165633554492468109300189237039624033338119471419847932923506828483915162716401126744324391834219030342390217978553928229091224325433306775917184109380046864796491050400715394086353042874588982448159098342383612834335884938683858263497496321226129099385065302631801701167540042092576001162108820475328050291727463345791368889714345626996230246293467699065432517528029631483013544126559299148593362779757974019768247189281518012179894065568110083255347622026582456538804935843382202105931353258049503867464755453911819568310946367809922931056522762446624210591116292916597706756693486967933882523396448794217692667268982233768984314097933619758724547954886839548862863033811300527266995380453858517729797044165328615683273329968906451498405399030956151200978898503412175381509239383048315101291210992950269751456966072114108855170255003381726809119470133626149827251701690759128398117082495184548205374428493521986650372479652815637733822005890891807254111201713758216469224090082858360773319156799510051612922910949114942968049363775040102408607441483435680869555434040198780238045337517599486240318184637083564513760549326160642619428687017182499675958562924791040040735500765800145101510051486131624790516787514186234638438126408650846220183012162171279698000186275714296579267054828021433584514091767356130929557236660107058653296545558692118938958613645713828883168770675334506624823400734554258696188025192468501757105484314086920112818571133311810415572075189573591277337505740564629998410687709944054026150151638471211547157459717319506454237041587289342654390433342629966254713528158985793345247017555447085452146839512474136794379214317698702411398057487827180214836569456140168117962012090454700112896637067743079170771769227653260788533063619750944244144575978918778634485566197526421465890249804694850596365569318493421902361721363805978839453092774205410366249229481466857414212364254438426432247438939706063192795331868311802103395660840809795083630466111625192032636118842295555863727575500467149370307911465762330664628276022771737510209228522367571699952323550868661391822314886262173959634171025917733966933670336394097859826208938918917162558298941942712927230424954104233845963150445704053376131383237157769352226460104161235229247508207455670117959779816010853345066370869803784480527197535870205608061719738419632975126021336192417059094687637712535873517301209072172474401027139199744502388426335017997097863653920314379655235285517751315552133932033729144590962422329220511276118296955572000183356114580534128980795115088983725542930534290558369842730119067250949080910059409825674434373854249886672781232416505371197805808659747370511112945828136384912090346245017275696136817120550906571332303811080655927665304491274039245652326389415604697678760713982962708437021133791753882607380053067411405972248366442228553842445277699327151964734609439641070620831213076025028461739698867348286481706617351728471538834697275335654749837789830910603023364494389527902083094571803131637939608629108744479545704715103971283596856512293597679147023261484722231983290289634165676731786943986938254258575676259390722200662894415316378638691839222742377158224359223255652457855310552409531203134500919171682636545788451528913910029175730653477675815868073337482152701815371046814949541142253987143580192383265349708735365867525285835950984159716724336132363249826522913036828865205370078501859899006584266839719841680684210564228807519331347910414644539335578654609493723763118171094845681764531353717517949936658783888882447311251187965882206313694567711368345098832181820978168732979318674020051281280996707778269682009579411238080411305338372570699398502592043221825272589550644340376160208054751389442482332956457405477010887794169874593012161106015422580541194349039131066614366574583500778859773808993829378711306547376703716359591425557630898920490882970397275476706461727255391705284294698036018929011704373530716634420177355060459221692247068341187249548254631610414853735930395088714300532390735787375647993808290662206158776404914559938961395900389564807937047872861140106630029258677370859266766390867993546413249544659548039059185020577195156579236327784489164037676556037172840117570286520237551453518677075635046756524086362235698682008026866684240007498524847498665434859978643741081342460190575918357584563329033823085438025301952865302343722691416736248373148170636496979256515865903620097928567756762108430105172536827952403005478739936546829646737091086375938208932094300780054249350959874554633844551882873954214822110034569116024307247072986297443410387538414523117110776661966298327204158098984236297406690992194851904287149703486940269342953233623703877159695881203736277342128854657573784792183947591960013207490406764391154161488632979531285981234611856964347940679841742524290175568931564894010553547677523108199051087123731518821506346528627952482567004327411448694444559633631843982831111880594170976460005075031976209016108698702484505280912079219495999619160266390939703839201305559980134877336551141775330960737477926772269017272857280354430126187201367931088277397207653030687789600416458403939656312174478376772870846475824835697664561389560700922751003606270439403975697375059147087154993456656985656650935355559221313830577712292167644020005261421305421496217774692032818299180168730394691980883047069821214852721215402387626387865012387912799689475498969936210139927528430075483014242002399813809119112173174046849216440223900117805389034435931790534364158628313527904003552854275558929285699780907355157059948082354456789046339875350318675087202896589232073611984726897202076769922118980402600863999438985939388059512533451595929334704600999106956318583732614441126493616976030997817216199335674472089978614957671883428607428309398809465644010092073154739646076284769188561773119635617513737661111980728851113572542163380856256320224326451692619579691868659288736275822609300594814846613269777767877714070987585803148329333715862733498406489515381826957139644705666452814601340911946109918830510584959113558317773242519256070182962655373125137643823674439799751359981473672084146433039401319951475506452995713824476965509206054709001141025906890607222104911274510107221347681660570842828301447601105693998125344781203774456011479442771257606558385728914772479565061324614926415094303518691272755296922410806946207760541351150712002861250086208748847337378589103229870829471973870228630645960988645743736855751309172276025669667843785052949849888669858702430633365985409226022502243965964716772460125801354728175157777617026247017980403998752816696932501744171367549829414867169574570968418725976481790642219630674840409444652289352653654780666561483347620097417645157123673345920020325958468125858721682486946530333225711546484313317874972913742631681621135579199421701638765743092306984336931889773277452420250809108930902230949392868710823943698712791033916142233002536980211333635147637131332965113311858566660193881569931302860475100405430836680958258167524667062829922238665378445838254260224918126418729359540769147199670383918505571053999490115849856737728061515500408731523886434573096684916788478887837979938697875596105168601970073864561713315016413120967756450297869583542369316936562535087051776288639059915623138114301858733376827519386308966556178432874956017483356878305628960129028407953975759540817985305812203430876890295613154294273346053666172296809587926305981027063596674137267150460674949954664175086884275311239413614767693673388443687044187930525649094865935886946770608305485734391459003516936490748680886833625553297441672815802797045917048101742471472353948968712556847657017696909162309161324705502121777032469232632935016608244034799715190463560923941681911039198595579995931967725070096616070739482946314156545507621083693378898217273929534671082959826559077080040794628485135374160839117455680564060454009466309270377222976114255905801905972113441435130812577163302410513274415177504712007076239449668420015985780946408228605396958322056557704259697916332883705088767861281320354045056604970859462599564747453680049693505931883698612149868642061981419189774518170593541467244283007772897413634784805036526453374395391549366541251316078471630896147757007077894990042365037388686296592704725769070111404120083919372986992907031363996487042725570654253244797173267334779504399926697352847538296342333783108120479802322548866463034985487592174399977018364159241726572716635630971249219339226358130146254105043908642860565750688557803311207720589380950728203798545074337105453644531060918534717531798904056293002333264309691325093211151253716506344164647035020545971715369069136450154758374831241707189004714839621579701058266864682390555550295993127077327807621530684749184261655023371477398508552892095267953835081322549497969762348608234073297004200671462463305029457907956838942750710664365717840605482694361562871669344328938270105333062104547475058772510349299757987717020874122426293515961590444415527534991191478173291618921855554650077118006871682465458703870353402151561465437719374346209207118303158286301368144228333361807928461880061199753901135271489101267741505364021023597111615324936056725662920970440288149121961823200194545192536781585944962414792773679223524519709511437762252325733107303342584275366723296852375277783743882449072597740951540952426942454418845052204500471036154409281224206305821606908945359658762373333785735361894463109277447389421820535004728999682339456366316327682150549389557416008854343460049402128085585627028756023009011974310614834554032086658690501321907267669119551114363620908120910851168336357429492240909703277610841275844647661832791294049693269244716019373789712358284249066111185221533176133089367996221160014550901942915731764253262712214396094816960749550427779710678184159296630423777687364228033825923082055668779147218134876923529803956791290947950732883980963727241638369603659373914844108330234071252124883000579636644827197848103836786277435483933233554826974799358485909352047493848811514367528260420395494376188130360104877023268425147003513737671728582001873022803772794367258851885829661552692251068614748164939647257170905032362054714766144406153831581434430233628805841565426256876231671233230443636386868711102252160723047940643750560369755880844840713902075946327497676729937556590236867410673274718727728074413448411132509162684155559801752279741800696643176250562936971135704689174844914314649573289740659744886162344020572777488997046426341491264371230252995284901727705627488622693677602179104915976943124648932589708758647312369617585478824888789366636438821432176779625304087557491960332215288444467883019146824470670025953789841380022702407888800421192330496016085038278206960145131623404179762009762624025354437520129443676218309595479933126577605328516446316908934664338653412123497516414046977912587084663767507599339602962032695231864818532144668389722058761321827477185282798652138219839814288148645071631844269914273924667608576434470101962555798988756485872248566614985627212917113232421982143926938261286516446608368802070775426340003979356880902947385067270917137090945871005310636499760775950488522401020495261186196203670810191390863145344061952205850034237822740360415439987395286170355981434993312108755694512353912913916681139453795613212714719016322026099914104681705731940519499004788187035807321759504728679006222698950616276373647970138154625678008616902638315967433445518028664945530704946201191660291367512962431562576402318041923665717933077848245208548053474931320906637489098221396300794806722197535645845079166062246026863014924146532209309625022631041820570494126614063413201290181747436867298791627869637399309382715975049011172757157043840883290451238687587706432027881790955742049024027864050689285815454882666948742083353933733763348537088020368391036305087967952841532065446073968443393201747493075503096247874729668015785536067843257275517885408157953118166943610768035569233621520017968293365998253047584624619472031245903897274678460642432179998512806731278996944882044077806477673272430685695826244614496867170760313436927501612066307462367786083793918125679091518401113471156286651090802650292002667288154378109437319743894871963243688554624729422528857086024392181459708581719659913774153531075998654684041941463719541642212710579033539216105692777622650757899485723388771153781240256131059941982105039059876861424560770846236033974076417668309120842275638387151919475238387600438404061832590443912627676959775526667554119469237465432776933205208558063057665005087361788569408784671990764537070726188419745186244459118776672999328698000152647526834113761042230900802973676551300340806566719035381795795549672424541104758016673528154726824223895961732422661714380621610075892727214191372031517989727526000134051831819720645603516970285803998882104541835545899740171512802778385937040279409688089651785188472692684182594566337864506271058739417561915679709544840576355451704615913900670586980208032883745118966693100897997584140742969328567432523223504442784581898656867803417039455129316032401445497734849798736689835521358367092790372860576012905106224731395517025143726574505615988858671795063139517914168027946600329753992362593884685951044537604385473210500069020372243381901805560905047264120142100061156298001816473132334758773756217263259999606389492164613998859518854587605872493549281572637448421694090945684612322944448289877773407734276096549818682018089278759936300393188299819957148634075214863115500854958224271718105169181592339450838595249568909742230487945788539984250799180427091721877007539248371208698018454948759139623207076037242912046487035186334974879585788908315931546386503986997478564641662456739601006932511965780849526152515660367832726055881105694946142530095730246765131057074880571148480054775355928827174474205164106223112509941745804194871279618683312696945008880213159391341599821563074483080661652502720720661201500669903605845618981963028715083562283583005745304116090723654786156546103748986399350536808778213661187728886459292095729917258570664884412640054683258696682970948585077276735763387534136617862241569273123233756530077283099486742496411552015880861803246203049485396787117132057955038685885321567053033811864659504866136748386410470730231807270899222369135253923252557225215211412092070957650040661976115889381659857054988093650838174529567757325488633718552990084045611323066827366490267389400733020422442629754449549560571276312166251599976307177110352363717040478317237442470621939738726180900878146454952066423943005692177642569061676731623499452473690067203397694089080979693797527928196707750046882776933719471176906979752391641744847252805777046089105738383129632454248137067206057284185622923944127832481068508723783803911585697180618445269241057860928722258752878925572811335801312912771335177779027397426929894163977149079267906593507414986723220871697667411668487871155650775263089320016375153386668197564651371992426534172220423351201449668104364605405121244411650496945534735845136925898886139623020377793181258242897204613288171960857037501590847959270142369638773111913015679217751670310817177858372803615077101593436794599882077587207639747577099845921408664458658884344349899695231960801811256354721364461955977680776788803566558093117441735015482855873308075029664735056447788553683600522200394994755033899547553697658154390901856003217445515765333952231281345931649299728164208091957248678898703474776078754657913991935097010189764212087389867638253578353914867423232150359438570405069695043475795933438922162408489354445540593588319906261141828318690136430736604632361143659163171802126265719179503379665975945624474634066728654964507195884042094578772449418054219723077830120923569347191272581632808296768335573379091003212410744769215362256577584405327767215537875303570607611683971354902103834819804784731412784241480551215123461411292782243591111417306947554079357309646693065867127126236984429989453822599659084849129949463422176249787639142807924212938871063220991674245686205833721679031944747722779727686018467985837616221970440754641904094222028732479423514275436103551310385641701341640394172745409503699797819986236819013883414208969549969123923712398282222765204385974887195992993370274404426587637518749408470997548675132425181579892338255861341558608154786341917190381990888309352473127694346912212435803080839349901770602182202055806924153258650396991782200921138606542758773325511519604282685090653504594200021103943616788429259086680797808660177927408627585180310566738513189760085758511335042060915731344132564789829004499938019923941695354769056701404014766693789645763530326117829886113028543858017689183593246568789851394917068869088412462471821095309566079915651946551812719450107259129948793429332030325537978371092994575993573714123226037640931541385074594623268708793598248256302812002826030986333481717304878040425693989118193787022481045589328807028401533176794996614976756189532517453481294754478397820531059091245628226421853275650922743038743510520814448608333560387269937144799837280427782961319468687754843922416515511102182645743431812596510692333030532142337520325743825432385582199786219975701262669846066287082772279717168404993409729796621932025260418231314971226885212381777112663674195567337554579407819829472119790401608339233654963359420543863583507421205692036176421753005528538867397253382494378170324910841638451321884151518294668770115971093566904692388180751010872487568060747968687479738493807895261565695694501431442522886857568912701636809301858366327913741185031021327582898957039511165464586324421278233743042259932741396123235234498695507282028398139766204640236998271481485867351338097033525462097599784893667879063687902936904557268390366579471377348602049084818015688637393292796291404040159881922946169459335728537293661021822926398969376572464548125390681833085955517365335916253375453198391951881882850500525643463222312418224630633389841901275984928279455233057898520007005019334738939509951969697495986863663916386607716089743535604701983101385971752114229522965745543377506754585818301662871234799767561948021955615182208103896502243909983581950753823879557923526065218871749275309178083107531387002597182766890522120700161583827633019046356405247423214443627868906555250225061215337565505891160905100390380135170568389345844067232653568319388706852981369718041055306282397510517800408122090674093031901330087104278864989495339728045337058116162781758919059108200179098626582393221417164384488639450067625054942693206328524619636351608070312016877644501469845955865644414621207885705122191515303656946784509940841453791478076346600762649930023920742098520717333887124156009260841947067909103526953191078112384870423857656378987685833029679678454060040856498009286812769228374013170489018360897263319719340820580815487399885998477684253088104516140199407165554750674156660442718558105705926587972030987732025027222664751317223338521274189496024876976403052501292540035102030468643100967133202479559581517123631951130467222680425750340144215033813932813321438116077273737929156438034035448992289925124557584593097630546089543511877106656301506935779064116899608994242070305950085231917373186139900044556699165378407887522560020580402391378439629967195003894654438167810297315589020411052802150534290094722333574583142645733752463358408281676381444673073025062645443290961520998188142660742371471026292988603685250431465502013657364181733628984484553220116854324647996814644483980821764504344077052794895740391781769187777763756047791355892457179816671766610020661949989762731142425650597624281067386218058323987277960127333625460370287506655375025607805930588595228089846647954514106026164681425950568803722570563715549483246785491515440906473981107475685055494190909527483436626514834596836370589876314996311086025884961898105413223384525986596029352209802544318938062117565495713386490097464233225565474239238754053650041035352485827584656874073983191483970691379327862223733646875899576373313047987174304941348424557680035929964808340371809420573354295658152607678099525867715628853976177903324034771596318909482115272439116009156425356559228896873193515910483522876399167454640737423232177646909647207440303444694988363417710711175787435241389193609729283022632238148567560849052235453115102228725393784052954041660659559116853377544075234011965158364169610846111163766108194620970855914857206227130720390012740484170207445384796642414874228448843704710514697579318628987921670970946112235665908614526775727542361226158565000860646293327664055532815247234153025874009250909170367575507986242237226740983391728145175067551114535856125222466527335437774557077734614072003124460090375297965576259894813516393326445512140815244758832837964054706297814437240255695546028198152661087776454801955044277584229027064398057292443287689718788959349693378208911560290883065794710471253406734625146907986919172572792916678031876479051799198171948815164186146128263834097928073034403207800173351154863938819058968791804937936036993929278139044181260028281750180464618964996846815524643024072221144584668999460544084765437426116843750627417400777863495627357371818905088685981972932505370081044920421036423831969342183036525838799340504613547878978209228964943443277178408989374193775559482859642008663534077475512141240073498453589456159434895353036342576591525305190782799406321100039084765974070226504143825612537487130311383666653841297480009829083792714860103537459851504477130455032538797900088954315313334541511314004059915290996723595200245801911198467155050578968909136856553760526165490168229813296050303395272893197465710017903741910826559906905688927486003993723042039513069488926891423064607853083929215022923184131136739037904362872632676373439467031900543545999101124134102628807438346635313047093614735194744446116336248172986764375051609088699290895592628482670762842352178072115567902759606396490770060161091164965346620921932212808814376411913631196607033989763738869004325423153180577429195063656104857654349313264282413448090403015026167137662089530020727102390642699257103906582789823278447203470051827837407123023081581158795629215013057895817398483475938389312909840989006314297528621606500964852529040694694008655297426417584487118122826581654759026207366367834474842737958547429933656377659931889921333068258061649911121308401195099921658099389918607784548909649085338247402104501151908287771759119027068206462183820194593662882139432215996392371327780201848064797122121881919217131922179235987552143724554481234122618831545064048900128818827181811381515061234299540183233528562784792455460284401940274470183824675230106055213303608108243397541280636318092916867516455620081416845690267917467403937035423086099475187374278329869390631584903675044094252862308008005727271854321783158936930642033631080300314165742784950001720127681882320855381967606942826397492809313347285720350731588859822131764933892276626781137748113702503796263361049237829404492158828491612357375904317127920286913765075394499645290870836903093411424238796334673407267211341053626057751536214375976708172008605691719454477007702845873527826678757537859853288902553801659517102752152496261768984230600351342552785888306069442112627669174261836641770995556981148936205954345395163680950936085778226387276533887834298709894681674319758329506737712769290377270213215250076909870171234851017653084277551922846670702308586943008205135699557799526720979305511797516694373181589817630351485262028388382896945447445606648905256787780154543154553645719365044684792536974922906744803431373358919498558630152453828697787480880541689782556674849627249587829154000169889170507580832418615516056942798412575061944729339016564884041281845397822038025641158071272895545816552444161227233117561325771868078024768558303559583773785489682717265393276700249566422281010476380384842847139412196051834301295293085931763165373435740901799984587960650478683477571659803732582465535946515462622675858097827190443989850579957552125437893067120901743912778383027363561900482231309088841438484584545665194145501921909592507128844526133423803245090025710299127759960008783009029411537449349053126004717497135832873663752728083071954206141859402101543523727632135020981044360400457647403856610066524319752109281141712486301397297941195140378394588365917341939961910275878888849222592988409212093833763568649070662695327020172591898654849346111751942304857942667706307195254378292358123366516116136702296654722177768675449716199664458326253925099860762434055464772196075642892148851410254772636993646379026232348053013454987624103136900255997956637400442043972450234608599111460493106522653120881225333148522229880747057165997561701708844911903446588799991128924720534164314638353104635534716688140388845102932812602691475255538961325962757156596070515366074154997858646630980680154405894316267821814965674096193346013197626119739898689388933108022443295996197168058037145364437771432863673007912447297716883908388541600818382768295831356282126970009901427292807040236279197727837049369306639985825549620869267839471409299685104999227028577686584717907224545105473657930661172960345644068773112876516914342757927514329204655900000485214382363196341677920596526785184455857304409597655412949931460682866845750744852386242163346540345965596761818992193767880617679545524425337856924756447638727362148443943832194455869073414287862166794784262127980991198786519578462614587910379480569170964177960735973722200781910195244830643586059386197665232301480245127216156214774838937920297888610263397242716427179933746706816699435560190391360118773308521849377161945133108630987232005897472387916869539793102225249848824909477556350077555876902100801916751337009718193258280093648121140836449401802822041303808265629041028936281519801329056427570670875677441436393583896751694311971354369472309913234269949394077412337641286120179867323884027725709489552476743377988173848270346451589027511323651343784061646363270928752336421863110556418192393796332637141220101414374089385770809707029857872926513863433813652427845466771270402841118195323350306567103709266455428225808737254667998258015345023865519466810762429007936198253225561966531840477379920379921082730531526579112970553294641455370990374016918765666062688680740964545821294860215792222751494874569639580275713323078164814491814424100700612086703712146175145957490108770020109084791492450839074405153466609464912620220368876201166549105585191909671914434273329835403167910959943396472085840503581878431698034787573499746989631561055762151224708467173616547893588952004413212250470032734920622991754636396360475151778640078131093257775322486812425012922375442850641254967495202046553433718065559725735197422036150263173350701052221502233626566710992489243059710157067737979686127207163771372510279432876806648419987347672373532357480871629558183356757415535718709952842607674742889053062981914448101817863889161879478087225135345610848460702952339070275707065014348599816798891097789522336895091913797262568407419006504175183633080381492605413604746440316159349642873210817042939818671099339449091040258132750734515793036677745601535840711375480955830247438958023808646747738358006587608420132781526607910807104442976705220900716659999370805299031267703227728298370856038316955558182326580753091347708805270493001391990372157735159688107932831857183464913052403630361258953729114922442258392582058305396739366707649803617626021602907328316774573434765534280333530567573373644148919029237100488511585316923187616299951321528864560521998194681287442418138620325817969038224805143068629783978349429455594997172015855644823841175479840391175887419200008899344839196157972190527365039077838352574934648413516449923994494482313808813971905800760602381242182856493553134297884217722098185139063749170538861514058310237227418135093829850514530219816935979584943723157865657063614137100272502232605711699894173820958973362492304056184664905555282463404524588022856826449458587865517435030028662296778504254583037111988683060897474493759474427833822069775743522396583431348708074281043766626663130621935370766951282327659887400001042785887052854243573911936540217825146488812961156714538649695727274483803241655130763678325854269119533770206487832574544592131963563033803543903492435418107355748800383697894485877040178965010189699967218584146246474489560172291631736343641441666221350332625369921945274783809965994293173855141605450585189020234996198667526529964045988757291221042898322858832325858095183174066929373404995330648588078877520078010763630325651087579073042961242206508789881923185769198545589925183158722190467433908211935528211915116312797864843519662262207114000859934342941560748981541975171626678636357728947864958825636893543382395919137502093325753624339227417615043038553124847520539924276142652526903642920310947327729111837863630181197649501325126740733008857611546777688049661253686620886273699218653601575719809308266323180465697119698302221395966710945499661683776749561700217924414480794702108306467974588201071296893684938820343916699055324531053954127078407317307935614779425007053695494676074936339646992882045892517772529328951526485912498196199596381321495597989752787174553710974406698200583272545188760509789147673931660863952177906559018633763914355572353180237277649584840457887999594853773349029864675098621415116744486100632386378488131092423458684680820647560353856234424902495858468745564528397981600992342817757843869582201222207533673899007902110744358282896575168952277203283426176450501983222899689789430510469193661582602841749931921748594941663799594887680640181188874285281567340135626805123311699749660758735075643099140121841292940437173404731091033382580106812497425227989438667015948269738804101272837165713521410003950824795974904238128458625596984392332895198069188415124818252264136832098585377665715244502585323797923428049135125932487815276361799721665982628990680427093601348050404048932481534764946187153350669092577736532626532254945270104282754092069108593025977497835476987366125455878692637346270047548849885858278235777148828729705708286609626673839107443902864531193963165417164007752379012511272516310084746104061274744736021639800662443496405310684136104873480569880040814933390344563408506832197816348975345075504290096643511406658277741352563313446618314463229144575290946167182071957758922942370515451739585785079122788597939858934271000145813716858042767405616592908124837503185638187521086013707118611607928047621855367778141212461902815127704228144957292100634391801089161363407047433878009081883288887766209632955405735278363910990304529753145544017737453646164522579296004776215020468971477564247950195296365743617446097992534989210482686132651613540593403363410709070055009320268742858295379761691733222845922597867207956262711556261744495191354455258597701201666923631187291008663726783305243040154350483855318072690630348655840406822235510073754439598131239685447260713282205056974736310085130444615380562511190232014740793901953941303739007986786585090777928433895842677910087789357944503678103098825463897168740621753923833736981716142610788099298663894020854050544215553053493453077921024686692759640079157151190211706093886531916116412333960983455082578808059818893150727182690004422612755814524648189017641833138793609392090210676376007163337522692533557443633102953959027549520664032590350723204108453111049076779603910170408834346710663352279848797135744137431754625967415981684823307717782759253633232698881525288097528443212444058667482563988926790772278413571622957695267844006372754690943967019943020420833313959456473852159924873610927055687073659852521127229101458755120608016136852741809479984336040526740960256693784172737241660906475045046875622585866158228332024454615612029653075097686298803643994462828725243804886352565993526230405635944650089508510302025936383746574226010899682490920050250144860025953233910293456448084025926530925413500163018350120334391858690256105721872532333590538897423269928646554978456781145128766191412035673321609923325332394831355475423377447564762891037375997231556946352944639797795816311012448816902948722220301335879978426130333725738887513856449222514903284973959243524943547148959141399844306629701490453700859433645769596114111414275950340670858442826123662332637957617268947439964978017325161660494162404094518507539735245814577538783903391358291510648608573478713393428337326595244975312461106894969225496387476009555466530721763069486331823375956552703131986934151701000713917161459489471305056283350416539846724244702244351569965207520041842385689213744477390088187927233467170425819164843737869367696607191444585535803012942445289899100758587978486279096592520453573073613429045645327529057893834899885675404358667745881971206556726580205887740127691149464183730909967832678819187254771719265118542551609204102046058264637206830243994042057666227329452305905792341437495196597472802525290313966393692675563261154724297842929954555560600283137645138730960978458064672588063203774073278393696273305338524354859035263819523195817069970153005051850673830684254962273718147025699824024172848926508313039473358353457446678019346665750702644511050942406344713544234334164756006286777013587905529447436695782297190315663735449409528655585111301426884540202437354251527685294273148196925293300245055498996806230201709410654856096208407743867501275814297177538447834599198588080185753472941199460062852353477457578960578776626143610763605644930082586949954000362977971127982532513693366219904337917391027386570274751414028228912321585651488920905262908439357035098802429922833220178613880036301978856266362376134524671654452496606796570331068459244459016568089501950123699270916929120575619630663598966651062602140723515201423905513292806579539451296459728547950535027922127718165362732444241377932777483767496384503853128675302227904951015999289237055680069430274110748453426340978149158289609926555904618598358116992893263453252846161849402918775816102689358318532022367431516352973334649211890521660863894958842287691710873722823973677087732180721334703460107947559184663302413847753648379867695483047636848585870197396392070878515449722874609104959566057750770346234226926580488896473457118905160311028669911959295474836225310515703636607263628391540832342236937672758616738968074938317932908914513852213835969523103466662520574413751833373784636977584757694380976461018637548540737021521632332042779838947481221594071912294988478207170029713111675776484551499184303528249766413149836029401097643710342905370260271830879975794669749005416347670795506584557438942855782602321901625966845219004273876101106386222249663265204017910255401423846409796350211920431527237674044894844095328454232950898189579965424245424117387678462693595231774164593538693477137966696362562577803654342422066689302279116982713222958829218619269136056552501273964706735109331006372380543678466577525209951358293450897179936404629236361795887393916414516522178497475783031523008528792046493141251351894235700646970779232629747053633635881127824039444537011304217823496246459021409735677161013744532777473324785809347785267079668529330270396679563487766177770970036993872336320727473557048878504461478456326289497120837181625526627130426635614088455129257358880249102432821674688945625677267216251206763228814148013244312442176832101581674376138636458775955360672700501913565645732246293329712228014725155640539748701892435668808359580164161329274294694086871661835159820301147188433240041971827728824628528328879680924636966770336305811846382799117047714281858805566498731493813717635081211455539530955082131545321558500365799121845266397851128431770988337321264423879677983766035212455288890172723132028865699838102282726557935983397935755040961486444113990514964640359032498995267561147648726924116807097455542198418032631637605671835152832630899010822479530954525037608436664690436613270046558643479440714902558604100011765006705458004825599077564443218127744770287269801535401963978790996860422719660269455061806884787978492272112126106486621406276131197674255961013292158368633151356697173352047646764839819262623273163041419687808428347731556933951388007224760567256486284642625286721604614248560046861730325391834727168970360031619418488771789772366014993350568533257352709239988691854104499365338779466530746038227619252762386747767827394483748134212548589617439315202956503639592535188801331954422144257671457937597537035510120021515301549408407017907304321147644133725902162107080472690321772458185166737433422587472061536381262422566657990537281992268773555402984757260661881271292977635756939218723432938014379526204671911482748115234890700879063939497733385588143896630541786208930203063525551227049914028075492015286147318350752050951863474147229628136846559653958056453060561958792517786132223823641808480980558659165836619925527535752226891737871150259655613666946414758710661267849547275494198741339246538053268786292061754611219249892584633707550301436231543631184548009526220811812014200386325616100291045284752117825923949290821178627443379040007601526467420989262505791900381230538713752046270841866069211449982002868917775933927457580943933980053277965288275125598362113452941995507701887520149304518144954827905594023700710986306448303412221504497912046127594380098245189299095973546564805571476208667780202624333393132573789502538431880381344038449615386522213570035920380419745497500230680026785981053437814979456143397382298735046236871369035770890545064752856805190759010683240643651204936445427025412257522672862048511937105392621393613335237242142791634830345719681189498073866018315320044535499285392970174923767798994768182240218583207498866450172155749778210638039096326174720463762648388549365404376724202207560717166182808937741751576096444699975928130267920885115107866959907456703385500748424375887295702233001929096217726684130029058855519812213986746623124891913408567055334855519416485016046610867520065337215707179783454138554508287426518467470911483026501433043483589072307036117492200504324336244387951131374318118355573170265161782156851928837766991719431958504333646271165402845851185346061419686529694318378277808519574167415234279017413834768378068843590633411972221116887827390439249763359750922208527441229971529537998782804328945234336600633689082714544166284124977267806031672830471682715251228794746470515433356690456122873643796908676276132692405888527197027441230293897621176320019788032979654470833787539089514585632924608911268488662146457619652102086768638321930258096023910172543110882309547901996166821820271168897619444395017864982261928028041798343921914593471163030245264771550302921953410856026501546548665210070948014475781335151692541136309178815710550073551680113098660330960511951761936849700593654423875972996000102246042812764381305433508675583950333861849850376487252994683142787490438967727753528335725157818353106083190523877938110073878676780959051375917819393226941999765621692055687507177165120258673426212005941678491667061685300809080255119703104388848873628110375910172281188317427956713692829206415045428702512689401810063235154440789797675985195554917397554477644853144175091706982948405734917259368016526230888245579547466262758426857125682555678513805661830713559566727841916878249285650359145536489455926229703194449198344185044753332689836171784046962444684973792649221643581049120206003635913785234802293576628772590506113659915852957129321334034371171049100569491724294058507503846859446066191400473338929165207944039317359382341413106332963291225693381167471512583866238259055298773776103000932527325187332847315675777565119997735074719622873370123286172187072494327650667382682865881722101066802136510682449239399146175226118449808023253867773224371387157889770003603482212013374058978828937776563907891040745516688273424020473577169931303280646905287708459224248175677596211594957781258186183334617627519322359407874485136311816504552736890839474519185978896543973753661043507476804809986734944577922129220810491142098272310569076440548181849374175009840551702144604447187317650012708803961975756454983642961703206296152438122561872340701854414157833518334268212988782294039450390710043951728348627721447914106163537544125385617198223595719554072511386981008435349030927704950078185525586800697011037502930193251271664797384279498307172007396310578372199097277840817595802133648555949330856367578260307552983436023662649623439583988025966066137816595834360455174202662968302204784158772204304095777027289004240464703945220289532872746740087495842664231709695065455514271907009156706380136884390072472696799480700452013371211359914885423549265914878573360508655865368964903407809613362513384146802628188129743304315583080522665244053247763972210937391969304779469190468772712092410132921902555073818356348180086453178545469087214111703882823920822985074259049797180785717378533334478623535747343085892510146545651718237352904033511991971565546330411878124379820042289522011789961705643865491137457421944706029179093364046136351232990575575318654162710819459608272337730712268878551180097848170200429833109199462985251075870509414003043044899527407187808948827540108788325500846687958565183481258611308027082063149324129834482329672569248820871288091611804776282409213527979253176761972872220441161750130392303226751004900208516327527034683090681095747887358164154628839633236588668332591436897777950945662315934668681805832246957350653236680928559026733405003619252752496759383008297185962618185113413803920249857295557634163868009208892647860065350445563292714992607902489308147993260339995492372319380657771147189701574180820222961976880520422098459136771298414380155030574534302947408954193454053775614789817123267157879565788076462320147508918468789600627456339232091594621729680623462315108418839307171857723221033874644566746776245219093911169448893905779971798482151476982661872807901499210829769561954537152406228321094636809941840698161723465313801980412706073033028620567223806609023092116908861817829948706038872074540052026191675473130712110411130156399742782038636417835564364365384854024112988018418190023962553832125714857343968934302114693235424686655993935715208913017868360693980901687633752679639150687443764467638873089834022829802060116410399404820099977274709207752682226058409831030761709519768738614703256121236650915679279900779897587771510123431358557112942236789322430962599873549489453162323958578289695378907601406280723773798381592062792479730564019054495775812365736578644280065801152602367647166985406961171961417477292007077558195091382868255205375001431777657280777617783233067717298728396773060192986366677864910005571896157390624276699874938162244847659602604783764481256823299498193241817519345051631671259072739149059631528290424445554856377650990976819603782299601613896777032189270378383092275293310582114799295221911385497757411642960928911799664384108094073696774314171090354111836398056551996852500739488194303273353362703292142047256834347189220228308477166410748571513762692291180556463673242459404853070916654692025454283651886028347010430986648039679976934959763172570360344229261178922962875442221044901691681999938471666593165812303326206746296019050317956027479648361401679730503875846213838945546222897405696460250279419289973329155945647104511593870497566064862505495614481750463295835075256162217398081378027497907650192876957214116588855481645571267126067430283461419392570795998902907207182365800689858679553304636422780840124513469386191485633758337167505591203276780421551421645295640185018716407544138532951309851407622094994124346441734176755870454450654072081090736060061670480101229798409423296237336487790195605288995664768999798468278941235800920526404225841190903964705698552114698986575560390350335230919484919130363494041546445049463266680345721711209871750609435756535842513604111319950860473255610783555711009331867403611973713611806985166043133771807179415835738961341402878893054317069483661154204193205690667344905956436531065382278579070364010911824391341182960239848758258095539260440215219562324241664439278718907957472309419411372295921578877425220865101822722772299757749494494224742363978150066290650868819064858732099585988083386590704996234169327346770678059370613111934210350917499115236554070177992672319883177768501044603709848978916683043072982707295996232784680859072835770586297424118463399010302552065118138429683206295031450767107994211061024834838524906273727964357340546102744625165467656594137637453502102604555458783791052629790462646212691891850127675634626845813674600828523703133369799456249564434366954709764860318482700583444168636818427887873575969091420997953510535745186904644817848006763765983200742999724541120008187504558157477156286281090264474545317176870553880949066993745297968912592082846914341322915562321322272244827902897840133476632084902646260936013941304264799002401105228602591784423144652776382800133285392521410099828474951731631965177299988366556973942702608131511165451720000357784358557843346451681505872719093306625175142702177447967791775149939579304488570351422562474637637488897281323808154811588969065366296764172188997010717625886792641801920857721819259389873145419784893539948617569224968193193762106330015983918045784597238495678910929016971097160015239439981595890473318733644561645092647248388198094526048312882515391573141367477487023848166518025460497180524162019448486307631315270471941998742600016079373322987430753979642019203148509079858333054655113556564742421616216315531384861544147876711189127684580795333038855054632825354170763335777555991494582663577240358213486168952051052403696273459918362863083664224356158442737765555618878232487902906553158967822995746997694941990452900547367952037139661763536180919506955405036154578157275947649877908121557218097327442326889403337014194110228427851273927282778609235127186835818178271854167599215642871480504628146334991708858995972952859112246472074691517777121861123475912438216520191090018855093004845012288522441821925488532190438005589126250642445759507386562565205054050144310666510058196932811347576717202471459660751892116582362090427617259766316266669170039270318383808443277714616821842621246521164133582450870708713349691802090149849076187608941280352152972738939661764268448477925443340750844067872228978466756785855224389777933075820257691153151549136407408369985529323438257985934881032540783868464406400910609573980229990135472482808489529553580033184388445600465006088384169590948017476550851644434300594456605948858224301007013411137074900482255784631815223364076012385797088425415245367466355478801862514137039003024152453022202576322700282946103455637598836906665487062730197243467186143388865230018340517826140470537961416131518257098669740741749217847893188364491463394212349779990940329438416025964678174752460314195755603100857900263360824460350012137548362220655907087229017721598925803363327622242406473990633856913050147917147809508831082421591159559686329841097723912923422985844503262293108430368002740935370321370456906912115288047085207311314227228914447815939226746686165226686808066042371962909145803679262203433756461342431171831595080355231405513724760591280723409043000503116351472659376911120096703826920487709431227525516268232688066573818189132272785503724401631257075807317895419921885635854964333799445644980257316992488436904472786189243854825291439210244140599291043582050123935415646898222848914882056229986168863768502293096406978199186857698159873734882397811649418535365366316757672626247714155559245834868389740955007984923672756714870906689300230726472175734651727501601337015447476770803404105953564374796516732434621010227845779658913340458229638817986936862904557153341835322786136403072552433344351254999646001316964988329849691970154549133706426615430535392368836715972510997628732545523549395510116002914806152071985887608565852807539284668410749832418036186142252742340846906685767062599108735390106047681932168126719880604691576988460348774892302630848032776069650576579643799735291200493522726532562592467759261380298354654383680953575051908680923340020902340565506321850791290962921315621164206005892188984340812661010626739196023704197821140491255464481117061866186657435262324836617815680346896168929395327035679773456007098534512946598640077631582209405714839771967016780734413685874895301682520253217607064697280961122147336310767709071154005091671711248138680431320993264802896967552095507134166339132341281780108007578851224188514368934360804063098479402896137352758571905432957775474180980862255065675535394341512398147569438459376927784575535504979899192594495525855994932146046697846714592926543726529637039036472451841736901933965196269381077817370258548148860204493833760136914852466075179920694749350773948054959807378114111838983595973052377983064674719592780045419609108781237714457366907003082221551196327263753254570770202014931577636888984685801095161232455530272635531887198329007899410972783176419583447601953869587552300570205903561032925331351216117534650811630156415312767316181440984744689010295887237288104851312129456760645729038154986147282977030142882198533580478071949546681104009470429295561401688340565135691751204901233457218339176320409655927973377853541013590595231884700793138507379765077661507780450541854644216497166386601616737706783062763597822654383919122205617297644325775190561552065657285804575413668165746187260502233148982626857766765076421251726719731265181545225338666130248035846287843048635011324231544167719235254991350687693586158517732185407137483813098985832269300873184241218593644943848320762353050204777317346288429333564407726291166757751546479889253555893444642222988725596622235521414443781772142866151909007702837811727770443685444890106535243580295850747469481911640208421984242598687787651151402390397575783734517705291544473602780427588611720807696524445138288152760420214046345989027006938315088162491778830494003167161429956863302591312246847420963131995953653857509613265868436346260458258535987981311107083970804530378176652682399384027412538948712211032072739342459047050586014498748527542396119175905811478977863477905764486797162083849086766598472020350277546718428925985314472448001611562671693202639509198526886807731076556770597684705042262934580332236455926960167535830677446028576004823552227095832469167459411498653590278135451344481022703159539754207021258614808654649186288706111434029774056302770091150866246121664004733863153165760552487892590508142119301457957652644176877669277322710902354144117655080107843668060242743703325456636063681260810364404985094248583965767899750762198091443841343303748349465184029944086193502007121905925424753749913075136482712153855532804678088818954118273704953416684293813852567003874445740954875525986928028863211411492940388088153802651176791348932337530722829791921133795992463821618993654529859615563887532090052946338579893973468372335911510995288538611087130304146741347650443678310375041361629670286090882402806011992770744941752251346941096201089427241518885055649236915632100041632990828346432946956539172931588864679650038854560352010464273061078167965942041056588739243647156668965988543374575267588002709194329204852237235748570589603530293851850091480890813518727108853453697239536597001340931164398748098569497304467881113354534564428155320697193801824604558805747846351109999528144661889338141391240211928515407473059272705969134110624854662777943785436259692859742350242949948025200146218702065835355803031141214268820037416909983869852858494459006895090443634855913069050604064160921133165380621818779108764631185843976941160835019039675206502796880817284513738897888495583800359308893497078536688721108178715840958763109923744504619582118149075450938801558498384036258795326436668958216575081332933220701332775460158526972943494392799770384638986055577140701067396854017860974615772495423480852117437660805193446311962475557925501109061995980093650189214151031260124302761347004284059708672587128217689630083242690075027046238241327182621086856077963771033607860887310138227747781975264741121676542569431338164650683124691513460633113540644278651422725049259840911082347713505161689474406669263172415279921852484949481823357961104126095960457906860938516008749830294086899236226299622426538166993644399353320458634461431594695838066296446390145410790874996700843281989859812800447011263774894878515517063154912324439231091822761524033514063022316876816792683395390768792905422034540533668374389510712715221785763196872194309753160623962627687963992003742818513222530098522161216309087479179278806532179496676780883909840571686417642249557960755706248748986438651357022885691808571273217124300360856970079509834535544730680345891253736831649786458554148312852204925781775193837270075075288974034887297618180505437557335972167520832615985531974715681919953299551403537274641984669918612580564780685962719695492532079698734483105873342412704272381998740688244684666446996344247101858571361811911004348215123926831585414653453230195715956117227566626050823184272695204458098948011867264989418995750212152669208388319606954077450447539265014519787312018412647721549193488325555299543450332828287702598349461448631235198543984357233422313678519611246708075768104240632598540947721403419923542706203575039908983135684692411153514443723548456460631126097800205744748324346760659467496913917623468967656507952051621424292832664386304193112604152929931300370111216276812741028302071247547610806731301458465668623073166326663022117181745343621988482889478312678692825406361828330861912111045947522888051327594192032708441973376709020809562063236157017094531663241400604542772833939643177945644976680785528095578320970720041867078292663137352744650785326053755412467031992281698057018756785221032210460567371098358720088343858401263114675309300355818602167245026649061522617268556884287153033305962687918363326857528746829734059326225615797107379198012737511902323774728005666085598014689829230986409849404716381627104901285918977009349587404173105086574206168241525612927866195723723986088196403601824588429688528648377893475178280583357003397491624450965991511742331072536869322468055434336536326344396336920171968937163464474072506204253171643382253893436546186359638886314300820504980019037968588684039824196940275180391443261897343930945419816103841409496214777929918952557272021257682586964555163197058645792011943449302970687600818185463573090106845278391311180020013995703303063546798188328040328758613183944741732159641727231842932116988839686076886427212736743842270282874546646861264148330905624962483259645953094309886673837143101317520857383292440418652688705537862394459582686495648537602508946280228033411850905376824405912638260699138910883262309206263622776762153924777586836530514186622190112489820411771993246055963992423874926736404541082378463986010643219687165788332764506911182391494061256740252325974796332479125409314560787175709279338678004877153181002382589827806645867700104386627324623121039384820384110905661188244367583648610953952778180665455214934859253364360666094611496325592797434155226190970565874775670001211512224694091305729784979825455281372582322845244605697830224901515439659110672487634645383541891663264139297198628868491959243608342611825868019467076398349033409407722528463178765048703822791284626283251748313366736999172265332016985014534163158222100625908012697991164929865540425452304511937327666719216164877157716598133754450658716540251699841052596897167926255229653777470578039643122384156871421248325075719591897566766880962744419256322508871433350965739858348629954533774279242383974980775259744532717149349128478563535972494637692937480746422530117724462679717179158278219748103882977976814996460674188577887755701633887929282931259006603352372135421286019318920005800905450787730764107359483700875570835729020515001249853835449706800009847602995021613879100954175132462299508889254818433092945809335627282137527011498594710559462584833849427169200334366162321517658415525686875275539469906159735592226600060203948466227739987596141726765087960079454823938563879070957135576957596277332718161819077864544744200156916933153055670452535965561528607638917406133673667508294059830559095897787971164612648933485501090739017818478673508087709063931143591447985685479318290188232663678316446361268050472688488917660868859432810074249774482659694592937333377769132155730577432266165915210970391361739759977723895373294675125956852567515434983846524085628168344834597146550936989920222103871927768448743366912275748060792050165612168195348128886984978292070088849979189902567495595241849585177866255650704435006910952415164310964658645966780694710804188136244128616571263209063964524288209378821714669503912572411158340629967215243325638013162749624633399525855192500538629028427657212185798660158206345147839470178732345255666877108298594523513602243533514531554452886976686275647920743444579120805653943400946727931368123182872218886095209551613170049133397312710904821871298275124524397212604272196813803723696388482672466041377480528224217327137366555425446052984864389422030926146864042728556886552421167841256419130930496496099724432368289376150349777107829499064603327527276298603931003323294410342306866812917800321362603737696380688713531092680371390712522712660165767268053719257019004233634517506276328023580597762995213413891579178157892213797580555187914365433350645546876129751860720343330414467396172730361588701399167200542962523483522865942401171081580796566975415855012119903278274770384719715341428181655068685291693151225538824556241083913615986966164716540016413520114390023660866506859727373449362692994748262046608297182695330485419536784078434694478073140954129066705656198858348950221843739581132927200117508694823047553438467485887000824113815792220192990719208573479820430804294790449821051477612808301989189037714712120852396146728836517609371805895612153947878363896612418262658309313524970577392418566195455249672211136679046887373627250731326325693667371011764952938999845571664207627912880109157106434176973480656737997747084831401363375521789627138749376992037555297217109215106121219288608783406336877323565384613156621946148552365952600413094533889580600283322834157285736402580851239260283233325615766120850416928386513656403333109687211372000368944440586995000616967076161663703944456374888461107391449714382655220991484242726286566890911883974413103808466612921458103689351679575534602573966706918982538409226767581935344391500453600289329536202818190056635509850354478253627874720037414661104597313034181187588854048922103348255673243776596474122151455038061354730949763219403763504677554271577982808677868981518248413789319607532913691137907313922982394822536660298279209918835294037936276264278596450120226975488306413967318585807140161598171821287606458757868505891974376683318192556304094952142390100533884789121019489166830796102596103657991358553726872285299380896705581500964282253269592978361517291541332253788417124704154590088634044885802081702634023120197746249760089509451692346489437664340020732847939957977312388689740678707766661197807065795615480401097959119202269701899972621520413859036322018489302687698311566602183021829004913475121909238465990988296434935843511686599149626440304398587774665626772371755380073096868450458748165884394533022693706605650011498398023622369905518565881802167741253251973754814209691021434140732875537359888202608382505535826813551489578194825764843031856597857138401146394161018772713014605335597015547130975818264371442367307528301433887781631396785131509348614744305817567272418667362050973289423809626785795184007770142394202205586329024082798749562490738996580952938996479865430046725064960677975402258615542532261252864516061421917595719334782939391353975379635435958834946873027693513061268391063412509198117450554812579519441328095113270593528262689430381242240292785149196566641107139471519179668752864761014090988410750792894137064552425531972858324557713509445564898535432388061893521549208493052875831092816719861241264643681594023736749359035575037692220998490734695988974023082139591912387443609044152866303051029611122877571050451277394246113219916666796070338254674820392110396368524740408563207754359438812179764437198344044539741219839293559629336624117838019031947803690405158839589945830191791748339553802238887379530051622919741804663647782506263603692438888871074184947824444375980299921414564345818055276802205980973426279962105701452357681519167677398391930406455084635589204287526027076607972801455049571177028414664333850274943363553542068464017976198072280185568533076026380001790990290342720607310431363867607314867962661665424611192554611183089181673735974063788657488916482194724317224050113894026516582360136442834174749263391661475650034921419622557336493160421100015542465902549317440304016806396817831716560518939632091272837806176419469577242414083687489012072792230137931455027321519145123741642795533962005100033603386299830769443544576475924936603351966225285490053597471774515877103910931631993015172604446462455576089206331292416472667893517527194281441286780580336538919173853483784612510361854799827104133756457563072324043505126209141140834502798732132561922289470947859600834614102680325059550209903114427641723281664268811077140284797446783305535240459755504196757056967529708579264532151104386482681631785304234517697499003608817383180217913145429399389691679004749859902534569303028715091556700463296720315205597235274509813495102174701198990749078348224491718165313626590394741152704514967059335702892798850841177820390102588780586056937412081107750031692137209644153381527594118699850161370782535056526815300058670363415270905813239106288793730304726027950336768133137514182250777012613491591644216543072451892121710498001249582577955115254929393880676793137503921840207097488243760042369209790750860150791097720752099976768330404505401659641748823429943087849351057604389516270797546751455235868128416452448721984470444470438879974482270974469632808653508945266762354667485081848120151905354054796016378763250847950983463803219611204791662395740228965567202250958568020121619078292085929051651521514868556755477417788919332296891451640469474520990817036154923725313915422741723246985477168080605208462718392821090906275418061654063930579991263751887538632321038168594599866640155161771799825087016760593652010837067216108833098084345271897997879289298337505249598251891866481757802012392946061941892377055064303079236365667396402741884419533564593983937076598269037792045652825495981144509026922512097936501264995354372008616740525189844679443996944021978175131622927264017042102567324792383220605172418415822321366487982410944865032631863708722690926061089105460822420744422923686281116960005590791856686432911800116974016389189105440601302527066140029352075488262456103826249803742287330372449816956178546413800245602123367215304306503745470900077314073704068420951222705632291023778896426479890925691838529151140886659406749460050127242402895841331112745306709809299528240081126720153242312831328829829387364994416063482792647267906283077465406651310251635320077664399124256765518413121248095664023667137588936493921797241632560632473217867012845940285897760171180700925021225133480493762504843271092042788211963609258447408108616834035444682064583828244704765743699596089961478203403243581842267645825499792146802155597273425795630686211397049898980471920469705842908683466406136960312921748640291427216523129026219250902562144145638229447396726281558851738977323137171995370803405937974848446158367279274424230394733093182227355710350832368665617354234314249740747276637470937354774138411048043097278671808389829032722936496434316370717123940873005688245252784045052159398015688733717423448054552942053564634648383138015614244728122509407058029634903526171171356682459737500444917986352897832729039725733480923579972199609852607565479954471676381464358816752822429101224796205694850643962647739105633511003511363416613173631488576263500119794021782489197028696312930934220941853263355981973792678255273775419560045868353771425481206344804673269311088968154342382846860378442802645186652916586086590027819728018871391693264542609953794040449904067432323204764232004955440763958393297302962912511231417362377960138877960114482512230213894146289141829100926735882538065451249463474768072101169230662623931045327708203191645875655051894404574766247748198768897436708419034338881143337110597928100044282050350722925744985716565476962790259906488127789541079264567229413748973358139381169850890937205397468840301231888800662701834056806325566417910190996739761497125729588334047202218392967004261421004355897344477361417629950349580962551932460098755987403766796249578390725880627596286997599354556952958016500342540175771297777986743201210270739003324868386865096167005980293420315623091624911744566706223477490220953446046076011995343730288309266713949010939631725959537502434945745886072802057344854690888168201984457304331129194419558146143439971775921718991346460780455428655396631263167737899589163743124082646542409518980747639998527317449466638361864244537420020524038895236513683185517823711673466599905704125989484035003329692012678856746214185130299678852163958055877267353912953108382817292913248710754455626782830154940608835012409063616181228846811309431313087960776092867350086990048520064900521283292925688766594151220509652218401717999714688079374381504811814710337061882004997289576622804266852886580009332242296294607565963671872940078959307079554257663035342111322694241063263569339996530151441458037094757049434379433769494674398531641530738362957594511489443304048431797057245850689578994802513158889904075671699343281942295235554396654437874818662126991394455699785252781818374023602026038860556261208833779767301933306226476075633332695208093509487055679326948345287415867673000959037816790543396738339233545142932286359085423737469447561797766365594975927146651063093210492001842700898451938966293559158578583821541680602182481574245682503058086198049499973831828793502350619555942560762532095560949734834995239737269108440040355132160393920803366996964200491491293783186030869040174977250718284862241824274959227953199554305058562256542845236186151151389015696098122188612476095307245986827370422986059848229689551275632481853134793162026973752797172489228834564827620624493077233095192090883633628368340656060147575843901650839722061155076424385970781193867904692821616639710095147135230968201922460315345504494378232452144594255834113666500772326218478095866477199641664740657700773250626217355584513003692836005957057295815112758924459940954715373578777810991713638637139405128570693544588985654561719169252388155204249980039854462010324161274788261421613665110464321852462022132344439541147470911083465555461277239874703467045827165788071710849614032694391648866179261390556949662608750651848412981333039339030619647606804023441249854746239942168903777222523685347579689899857711785564800954853392682402651408493004897953283265468636449761257288979631646885555196655923162349967176748780688249625411724852811170083100878745155907271631252712233445365002975005107179143355614297690816254339791272968898973380808039989447258390689678175174010079744602669843695984286251720255346041833427056643083918858590359046668409669386667325705973142532235418307520247112912252789139343076415912421102495854668248552120264546008723398874073849453436168887210597629130894700440096127329665909025304503483498340805580757907926725327205367294597217856476754137062390566065714377910920850708458105074241913809535852338272592221143756262424779104258573127466198210160835862020744546167537490116722861926878336162670795500139097369370275591265164703818030184456130316247897650963281308795595147910187122106631836116792941494785229896675965568042358888614701010417904570123299997607265156227903516118494045325923007102110365878399791944807878412723939471111916596191591622758113383972474645953036353865416852520224617338024899998850054103519940374295108270747702515167243016483284177884727199617443296482718476761778830176916565279726872669321555198125763583069817282758366864660184925280917655815206641103959305113161626366864955098622137616952339595654546098539181446284367861851835203663585674842482610921412959712416436602790695055737178380136878026353560136935001429881082260480748830452470537101168953775887790972709197345291333308344099980708307633682814162009991948786269969337286256019820136220220061989454812687463841209389315965209725084880353903618887318597360350819545323858116995281742836046843053480576145423040946506730325836596165829627269646954340277104837695094683574579091116828606135388913752337594695637065253098116529730724488357250532923827804883929334764567904192728387163558478753495614638047441625824617226132184222526970369607563444467305437207579376562340188920030112719136667564248305096873745761742304166383817189059884167343448688705237167227977374418293130469973530718553996970314296766779126503541197937623645071606953519688360176223161588521917499281344016695940406418991176597902076465347971853632132252483960128436724968881226923265011628743780198149794075384416183542694473182599883831622588335206443103861417342937595884411927002569504013233896329643460331919592209916925487361657551321464639671720628700695431604757951873376039806868963400089200277679296101174050758984100493201282243580841880922064895601272769923370206937827495254384538463645822304649165583301246455371397777604093431701687821112066784970035110893922333285395735016798946792569248297019449113408286867442630658863154739801643822923112439767249145504899805785702088430519674230266162453156980136017917095636838733030292469576724784053238997386822176500716033607826343662096597361659583462494832521546173763369619102408036244462523885450681363498755834446214883483899392893226945167171029162368730745010149466348724389192335524778045554098650282803359498590652587343146449321771731410529877049492239622128130772272915321078964375487831093862523514390632765540442077369908992472002948885659926422179426814624417401660547271200182198600366915567673762346561119534680145808556503577146635392637688097200862524499461589875559341840593263404433135230725754509122026230272480445274812937398073066279293373261746862930655577338019981917646209377977511786224822805757720225405200300467160136387251406819856137176569264040930493599958291735646999955652559077499051957261937563641175403141479183677590676641399387712315252054819788683564746430015965650770293701540911727856830026428276804252433318771331864280640917888991832086217602406420454732085069020269331448708343588752871873747611350333022473422978887863610336780763254848239465201887221222913538393467725328077749366291984913443947810115538382945184270852712038281960213718604209362879724784459388190196197505766558754052344205739228603799493253251091760469997729464451575797345431030188778855973962064499172303972476340766933090008082605545264424663002792918989615807065064513051360711775148633306920043735919354221711647000165174776053703539178422224084813304100030170303741674522431929938521269865146365520064921838673215120694657381341685182797192892340000103051721660273759458199557299793027184198274152642876184162434884657253189901324842741488657476796338803221987440745500640787710639728131540083958942858610807798922538579575573315624752799450201466776838319300215642255009359532414145201343158097307870488095247367010452490587948246922316815832828936657494003410816570068113379656828798435140156196232065293766822231259917851519538994035727067776899341679172013821464174442217680887535531213582302601224782316237646882038012901097639296163169167739022855374714485227450469800116216977258079236721798649885574425462624352190110654367984893870189562707262716985636226465516469676327742301043901718844005534506361546272295392859193166486266169752177950563606398482578571584298999393238714576915965458289827276518903050305594615897660439451586032020864796480400625020191146551746946470340454403549747184819095492986293271337356695230826831368597514852604909508938599115814785695923009115125187694030871922320536413509776837560067494030501066457461974657741715864800710867438338861967526597651736147673686664464156192996209367399766334795660552268423854191934338969127544229942997292930933091948865438188049777975537617887938532176439661072774493055977455385415110729796999078245229907055949370936727040373963413284244985592946661960285441253390805512655957737627323707390299445658225883005335403853806103195136907382876793675859764615863071819762752984930336860854463434911857489630603801401555297214454141864288527218370772534990270505799392379139286406350698060820714972734428325514037226546031744037191131303690901006236928812597515116292389060993232551663818238810112303514831060707922432866340172516759103234958996153391087368093642584561184230479924770865700516219328016395626181601513706064645049975605723275414032930221523427522652750973602590538445196662030197290614197833023138141306993897837765179089841214224098793454171968002450340103022740018882987000419597692683421797661045929529270393303480278184682420368903528625042262939138631151011359534476098839776834939425209027662864731399575050187197748907746417627062943839786239907137775638550526577032038215491981795229968539884798738184823955755628593550795706629253504355561075578304104986609527089065165216912167183073904197370917296864892184357737576056203479125938421669749944482158008805177340376460628101725161032806009521749734930031864814739358025788514164021759044283880680260739590979517698292655605078813449033874998045912978990956186826153677881853121704309713299968305074188447684271302416940889030820412789742225828551792213841473179028274610894259922463572189839149360786740345973795165294649531973447145771813295911143001652171631899256374710863818810663145109698248139884272492398475471190872017949477419060156590846075988251056121304395337980345150701515988787731951924348492284158241254478408650845339483356549749654708749576616207242882022183474403881129076695377106827537063517806776824646550683139376943704644172431268565061663415198789324708638316360988049936434853214920932604460520631872816776946114363942008070245872934185132034182380510243085714347032706711950504134025194489761777568004587395940475531237511916769685241235586410764048958521500048703926708118454743977782952667146032547812829492890808641680239093311187446663016740286299503995551165399505169832169233599931215515309474296940208672045293452905503021672086259691832465875759722176981635370325689058856769908395915497939622656463935039751605454609346999979747040677102679109737797395711963552941305552309222919550029129643380400849981277827584712751995304685400834068615514384068776291125236338423943016115940545336695328182527416646413252488038175993764072341578561960502091578890540521899307864275754321426428025102353815279143380218028904603924126306996976725891256254926902159058856260369992012035324099355546258202214972721627035061813882543637106464643567641256338361732612702076647488399084536623208948403528519981109575047444414712984679466500187245376701035043635037958862903031399364944346924033142864434311750441978542874615891929374281232796111818572911135154378108609308651651686543378293269547174865926837351115991584903228924429155015181808710368535283792975821892574938419422028365991759921428747397415690682700195463827157388399020153564468642071382600018915080671274185989419263307057896943414763187132247333124389666805290951708868322466831197894658275811424464483032565855575494202722908353709662201974334230247859742091371347805323614306860992594256399186559162593018756702531178075150490835328579095610489407349453602380919078526588695355199318967626600927000231497358181918424274184315871507867773820925134412908733515582636903933671484452907882177395167596269026496479505600117739007192359584701317893191056768437595134994917154051757929039663648753809210417179644980800530760816160893918535242201058291365764714435531385182756602004489648847652374283214500766709288961575212020700393438747599840609089671003757750953270140641083328244377131830250740324029395947319336131960657763196840033379256784691983928529880725663589920928271393062047436236049872404056157588390068406519765212677099944848665656386156364707527850492648895827068226912004185538095463342611109160892987849056444599854933165666589059187114620193712571506698327262633920351115036408590265863830256387723276755123679454631895200655320047225411582208068839913226658190859723001867055012383975437831966225738461686098126374300917871129830214265479756525020354032662761944174808037472341619795562071619599982856276518397112810002690546575173841932721686524606034662704341729407579592616527195667618649381992064709501258682806935066838216130300711913286157097179554347019566749885819318377850423405320224461835845641888015299781725219099050694535342146943601901742706585005903288969827688123411443243982267866503836985282578545964547443730176001708828650857205488045310700202129095041722870774233815907725785020728856859675811405442304010469702772047355601677761831508812953433123480032623526734197795084094543816690761628670667803090641697838025121551954813513606068192779786348347457530853200569736158953477812823306798601464876997598282624649916687230179274633566500535790189939281406255859327410656414457813492469471598225330162984023474465396838926497023331964867655362927831492948107778917760849856139620469683657652494722767829632402964351439804347752481399297973070358853461269982101960129187704237226739104932617892874902806329791996886468296405818963107056688624555473499378551969287102191512667579291081951111484300431506738255532707254846864259956532148852977273349974232724003827202086675330424698478696883979025443353059425211061454765086223934637625724066093487190844329782154789695378739856933689685236484453034339284801227770127526326037874416525277188363937238529988935428000340110928339068272560250629282173254552407272434988001104360896201315519116599218059632575253671493699225608303520342241018611955608572586485400144425574984605298431206251455575277127092854702884423538536631094771108349363989039665902600562070244771740945001194476988832388718565763401195145221038419913660964164759144742773958450904613276656064724458868751391428553264800252698094989372931409171890292370971385896241346341307891213569232207410335577331057903883270609293133184372704629804088042369727112518283377089372593074850362082188001111548349858899512503066486274735059556485535594062968172984677045946651406233929183615494647022918513381134364585698785423480368117375381262095389756921271336309761520457492630670456013741499095772581189162323719799899080558967686551115149470756390832433492245480335190161096448556849873399661324018439641046810176627099663629824596295562110648282154746832652017785827383621258400243981858479474583341686283442704648306772099579130287545439534911818204486864258764579274542930327368951766952698355731138102210186614105592772391688983119420755213060374871390830729647219289333308849632534182081935371853890829438659967863258568493328615085323029079819179809717547352948388763641151303610172311519463748534592870748121498708087625600624081364923317771712199346650249391943563111792613528420388522186178470248059514420780973812124806279464843084546766738661619752315111093209668023596507923535787279484155941621798339317242004778599540972601163350929724479407066868827665654254214309163160203849655235641126642624131825554055697031068732759654862959872835811281173382435477099107953477067468803389355407869943599860221418737463582067525915420243159045793168718263432304650618205780227374710750236020216709621816422614504294152912568060216300118887925344611183156733530199564153737711895435631449795147814254103167044862722574763341180231266646398779055824969792438828667060172262725150357449959928577613195396141486845984925470751886512321733269094945296190901429627361441364388084971209960479976077689295119227703511765270113698827603263026496713275529063130849066377847338294840445318435443204551338700177135317795782949216499508041717006184172223003280795825467404972791702458669275042744538381965419343598580806273224406538431780359239402443617417611759057891855851158268282395478779247047650147568463485718938650928172775819606814096213368403924033590733308158776553457722204647973798629078202429832758329944439462438812502443841695601912596369438820985354208549424407937753354327313579263510383464721752633743498435220740147297529459713460046007916885960802421698745827219276857773706934194874286078501909495478245575352194208241202981956628346148769470181987378792645831388352886293519076003169364253076075198706229583857516197230652902237119732670890603838628178039770684550099770276583918284488550707260863707462710214475188894987398189522625800466402642714089087635061910330603444258199155575253951620481880569816694794536195742846110586752309004488610558484674737616284424694163736942347523461170827426546691990130653454789182763446046971067653465065798119569662476919289169017446718660882100066133385033607233861236322395062849450276957250282164976705145215279266467817464381795645602506209440382364116430230803691683950582629420863757559920171644698241583575296474747870653618073844517962184243838803004674711058236471609763018267064656738712952033105045730217031788218833004696031155266569782394986803905790347931937490593359918702861297425195353475019118313088332255566493075616494419793207421600886487201633087394960267486564188204842841245673836326506269702289072395427154624988489797475093552807066244484194451570703814504780976827569511807619317663334268967752521669730913365185985428286095873455129070409645793611373890255016108081533564029968468164395899690824818619172290871275553320045561139441548595336708293149856402375143211458765017237132939266161848531590522827408381301392017152993969770227043790190407866806633674999714555624964538888542754745135798434251589481383724888594402364892013800338296010132889426187887406358915938389913492319766484292559104717940825275115698003301909573185056821389053623238905552342601013458157204572745651506885290262143337811320629182481105207233370279883826367290799435713088457449360715568062019730338471504969891251975119094522252122456803934473443917267975949700543206436389933234737972740215789513825612961904383187626802325619497813572529556527254733347525813439572061998323447216847655958532837235385140747383653276984598068701658870134069226992773024043149147325584442137155332517206073560317979799621898383633915673600049015662303042189513540349393091503644821947340169203751685124697250925134313816108787210284243260882983392982295482609330392700761951364662443807112303559454877944635243166730793807360701766638588607289528092301414783483553695587885150355561203310259334674254487625874386676633242360620248323942897062151563772353229176565685408508556449128566818414704640558339901991331303875514969035424947766141004784860190098520479107150659972997682341482235942344933172635385920573210087271832763683532631028875688266801793629260226618379664159208227018913872416278620209902184216512818819088537421911665119082574821473340538608419091706956359394437760083285216735568151160154182608852255561787102541029399350674186599823887787491066360071529976716771628257393743950637717643945040136790281038062314370010196749084943092853565294570160376237340210102081645170901084040287635060725647234074538355739630690913743880062531633848018122209315273556537975176957337330919202555146617005235401268212157952067587839561391373417775974703298205835080638607460814890255991298845895917869655568016925901826306484393696588963258317577849723258551113083885010559722987097893331080775164928568818072342952885317020783758970435810469261878999690405220460980139848166545197759362143197376611446836990414142788504605451958454676361982113486313849208329450885254974421745742767034784661573033137164102086636721167125107331360019776526386140953530834313230957141040173749698304712031172086249202617238423061512665405005627537344802887374399338349649618977097483313145514869542911268622375486481504166721924907466849706419013327961602666124433802297677423348923630607879853196377539566009537759813853246116215002602000102677812085778513697446444030346034286186901314598360992590259158780048778926680802860740862655896183608629734110633571864840485397829944038299899788336998875381275213078524834431231790029831338157889050135876556214456389928290511188122666191523739300339512278964248234291923645733256401219620846137764407195249424572177467073838497060652267776428916976214309916587946064699562410030922768696304636621497400426946499135820809426899520917962020064497931372347458605170064496202084138653804340266786831514224062508644387922168688851381255425097993826483569171168929630634980350895356359329311287285524738549660645306858436925575171390559080596184074133985756227320620769559184279575912209895604405524762018422428717389998201847985287025837816358499711315777851130563551912915273933570739456987181011436652055019615993930736549419029359574247979596444230791073945971504295983102373874037758071860165239322512007464625706091838731087883127908594179152062158970475663889042147890876819865383689151427957455812468900895447911524474549758339972733062254383774112167435450171537663901665840812612054801010426860706517290689284704333991676976739525829329043511363533497142191259835007453717435439200440035892648121050178156505199115655552189571988128966273111628214866003281168709651776740515063355341949815778036012844056654320760118113653541601149726363869983377775940559950773130238038564503936042401568515849959219501274358440088838808607450280750708894289915398333195545949807201275807992088067531031190799850784616638520266708026336882994768681866385804910973062317202913071720111639809759267522184668758287170756134134997341551330592078093297219173875081452809038694507494910055207874925726602587570738039124560219374411782136126026126999830998707192770203926670625773810373252398240187471997267330105978598067518880344509610544584838731423031318827246529026870523228086954799818178348732523498597399669112338736086774480776986078405988949443585813705528551535679716287392936159085010221769469759107577480187439057526876941687220294461986274669873329530698753822253661060532130797503198498869318427701038320322786243345092334346833046632845481031905983408005822233440850971454454776852919950842488868852926671359749646470792510485623800006113800805731536386770390451491036933477064357476774146450724337849045670735961178599935483528714496051638686916231513175069746467599257963586822451113410047577092641054667902701872907994026845930041471045008366707784177732680693115550641106410583661739815328447093256678008792772867552846908261410842426010367308289832346374982970678462786929198016815717065044830456144377688637637113194937661350884719751354450103097991821281619576307635342711497660197967612922769743868571362458647085119488241097478848008183520314364124491648872363873753035654649955947372971682317435377641528295486796153965119234047398939223499753373350043644561785652764380061229458725869585140471876418240748016208087382957874291976548234505247966952601814010258199447136612576163513592966120171272876637803915260044301524449897337435749184623370160254578829248119598562435860698231364050444391674533112576918905336322512630813389979016745302206991547182452862313196959921964971426697051696521147889775168091342188185575998821703775462406455371325872282514935749706945209577737860173475050309173329245994085980341181230355022686575068569556169788359102012601666933298165328303329965144765607641996916269973248749657768732105330854822864412311494031180202504730166999774838984060960705102939075676641954921472485898215899205057629126784035814193432386336667028033334077121949126053753792598881020721640014113963716165511198230592587337012709596970026106192951177832861492008832824106949259948440209136861355090252190009680525614621909154261272134655604666127716711739752272730495571942951657346872295452459795293232013520608271115050079475334795276447624322819687851005419165163566716923023571980512887661177640165801171780211486334627704158704402298188554325472569058623565282080882619216844181813145386671492536261560385488394386908611429590263578557989589261675374567519850149671474570265210050825298455570622658566201857611952724463969704509910598722718069199428024909108787627836229937968890464264040095663041033308554056351215667146982085838045987926758005870533873059933697209891854984424922153243019307481247543850874581926414306192189643387215407919214484646347824008949137682070781013974908574825497347713747203667466095524836036634644918971396877246133536704164717739263804202341090889257903954661670697156006596202346395811938197911429992015700081868736053967324889736241035252395575232553921337523783217554166794141077255991963238580451750510808733141182947634741752794303923390897380307584818450772435414650185643976702843696148214339671331293677400187401480298025727858073981519901965242891306816385863920505321745707325462193062130351069845326200389356188348747902527990556833391753349959339468478412159599001384144185788935981542134576667040523811810320309418543345205520218430567459757936356682579751552087956017388907306789379679102674160549532968219184071012300093247114954409099771521493711525794565031299618679037830220550337633649805723659332473425049036932379851390514935878553188846898701652249725433402461046156082984305758069488348831592766630077351257314101461449452754474292095002532966310210303855325262587986845275134032995635216610749870038973744681547653887717977400777355477257058808068187360642069113097629480358967149215045060648045712443871606488563507626261733542021509671260856777409124330756843664947712086324912891156452187016728370526953421244076390808369921277509677656579697798460758268405658021815508189878390682529113630905384710291783414188449325674859896416871863450191196334631852801073579648789791880924774931837853557324502122802627514219873696242028812876671485517319944131780456021231161798428355023212152677459659764427973141883944152082096867571236856474365678483733578421775395360549532799286847770876038100201817417463719595878244372011364227195537260605830201840300906866248274753020858972711644082040802067476519714946692676666919031960708324689564185184968942601132494691627686958804906717251161898308384643222205585983779269879550839743525734237999721004944297040761653184601497711575904278998820989742909720387809685196076509896730154736570139239707100150380217016502437116025753615980485901800449247407627157081536980155546647908910965465371108624715213735802755692082445274274072367213615659721597602626055107152180227884527675553625307275375388577234800096393498863839617541245893960473771095216210133241447902461174859443659616206373941486514650576179289887730086901654781332116773415744488685107456786085712424217298927994056430251320878464551058294117571400105823710199694933837289230120214814216963112439413461779700546663241021279124373191597202398853383657670350363027069589630037757897988098140577529271977661653599914688866895664782631004317874497374519303582454867013230288771527703275536708234943058261478225291156580122389540687716408934660477690029659516166989847340454004877478676116601937983136612746931426854377200090497142265995253065490967077273479182776528926646370787342187583962139248667003303278489759578389327076797439552977798328469754983788032783290589563663316280713400840877701589011509771272064887479365359804081656871474906970150245588307479513250584408203235903034377203787087471563293835277222895643681077334627132045908762398425210807914042744735739362876899010940059184979393737321663959561504688773073731830773891256520451624212981489101559416072754765195840482800631803058158059937148572114656982374409916290138618632069977148007390591886635145136120429455071775003773045466438717326515749411271908713969122885001117150268789529497926872195904871671911598223460993042137024045806019290887360113146590254360296611739258781474745198411789002802304158353194668945618059744699238501440953516262704574617307121132749374948439408338249677068528885337627317332473337441782909581294530075830986491971297668277213780560267993508597164464287319567860280562968666516483587949557963544079073343051451276144050817107831362302070412303042226590746218260620120698444234370139416839351293554130444502336370925546632004644713566966059950811324850076596274306508708556201538350819337963657592816362322601003794987408122586845129221632205146779518649999735011821007897435170369733195770676328925775418776398873722212842349869026913771141856849280175036086488565418068172385785265901715946074510201146488721402858913420565842227556939205642720082477953863390143938734109732201350429027835425200749371639251897440680416817556023381402823823343550898256308959641439029838556108126002376431834506848601848154640692974786433551851523029307532352650531778217538146587027136759409578451346481822972798576726036586163195249100621748632328129556185624921157573723298359773425532827230938830934476228654628936021026486023265007987185356623032411977875418339520710150280036690437584287802366740867251351328860588541410966709798420234295204021859698905663866037503285586174270925906457583511024851363463150169833143827653148212704896937667382030802577725305361875162246723811122136379151553277990852536515858455253407632207596057721308695703195160507772658624733505819713294178343813236133974681764162599199027602052364980426964176754886686105169456389150379462648771919983830239312735479250866299141802485736156291163799031985481409982346366796832215403301667469782120696378943954371170447342911367430213056432962574125940194102421514673253814040475390896166277706942724191433561502919784624443507265687593640667985348663226623309839963612857895213852087406776294837968719256490904157004194388860897987696838290437776705435013505056109442122913717151375471148782963062682915832032015944504538055336196864916085017237379483040660923866894193341314761650661732470111653988297277470529287493445328992043191366820279638030502036097997364848401307415476020901873418334995661570327979508885887355617358913200594371557594923035116000368692120399916693613894543747334862921411709261823439074308915455129830694935426488792726547352838363189335916286059409635001482952492515098676720259071048003660601897369407143193263230311184513709818005235572226440117237017986989375885391446756770988325089647379002307663529861233086437776097383056338920559578972150012766775701462447713656068906367521175695518920608942491456179313236895373999024253467305929414397307724727310166592078384519752068202958405063077346004114139320730469817333484675510878796201407356152314092579698929291512292584871815000993344369798011090419965733519678641483955750445295178383992478446841549691369632870554829294105193008462359759479770546371129779605943441808094054315382370738960508210351562101063769113760361314637331472114231606166673196852779161031791283130573797487865522840265932260011383549404965015468411429088508969368071139427603971092953704134258392122874720093515437828399863162600957467857861335908442192634534760644460143623351229031589929230371501847802300562934921071723992707002741686507655777438692164191373943970639195836079968272266840582572141110337408341454497033461596436293616476852223360898737842203747310249004496703190389238655443158806313085118143379824152398123099756195782241135013199776926453264198614389436545461344186946939720543047328470781449061950088263180031054317749680894421430697309379141121444911600158647211290481164354930570954695044056127810050431203871463092984005326660322003671497316354202514237203181997449760818354203905868344737858079881410062491070863443291384205264193792871162150760672924534608400903538968998784289782247429045416678294707468276634418061510972116524085398191036198326327457008882464429812923058400601807559064132950108037721756445879217796095336332809995285801964919871541199566559125809371184521061298866094768898453560891007622540007030429196956435753694206149977817726462787279148791837490123669209533728274394427262019624582266727375460261313510002221059989196807054206077999127717089483576919606006645628127554581417485036795300448971974841600469983285283852280260858937965623391308263038440353792101361008005608552774738727380056618249145350623678908552929121800931568917056831172171398040031499844386314141485666306996213550008175898087299987680175795384753618169487782328481058203315368776200687328731393732899126508091130230623545391974911361205657933819914722720460711083479055610766703406383336816455975612128079573347750266386804707268144881718804214234968116237364037642197494875855884594531217297969125124815483768450886593682898603508534994735092944116508601688201910483118061114327958273210928540130729346146575786751302958191918787147564855339028461924847072438020330170185590913356272228491703369339780017031523502962892765166947389363010677206270040676217220333839682993127266563696482920501459601733206604061633066658584950035850159107014016585197593854475094959618757910542376386082677697698715846625561749186095229462181870907152272938644944628591573163443310059438888498866481740170740657455702326412112169501859907484210296924397736621458909291984732092846237270773644647471838608516500972527391371176390535312748604040582891199729727092953458112256818798042938942650666298450684555160119464813432313954982262565057736531968524510433920657531866782669469336348942556144791118185311553851264631601766208949944933067924149085838079852234130456617334267648409277273170085734236003246685500471644221408304306408743400344501114224034862750733081670334187468372135685199023390189268987143320439261547676907851772014152115475763646106663030226420553040832760015131277369740117369537206593870429906713365039894499928094720346708164565988588481333661321997351032393208477954183821415196740432411336307565322204823328955787335055322348774167965077078841925030561536261885995703011437464476842243306934532668972155751666570827951965712954576389899205404613109871248219465366712631858593133542331526119986851068443137358878265282880700149963186948250010164810427178852144707320187407912741649409977326314596461897507560315780399090117628883447704781127038454587869681970014401404397332924402331559243312582816867814720512976723772499589601495614174089877409522194820492372536539326655771160142075501448371913985154040297741301349561286464014070493930236602106504123343565420426470348747125796294180333608942380790548863107932550553761102218827751362502245183136206683395775060824117303900561792589748816414357024553053087870837614270473661214930388585718250274724133280145976646087521014401713737199686788980720603990638681747798800292547776803324677489480615808120880853979822539334751543049908999382028810514261228359089472349746708127164577859997318616486672775166780415662490905152126565600578625758624714482671134233238287384148093635135326722046943131242490163843306584506249492890025643888072867411253829638549685493143018380254734200816205959177447386069789208900130802856186340305423983270089741746618077841964977921661986691498591525279408158641485781889251290019197961560971530865165264674903790112238759279982099251286398028463626420026460744084734035118267561780652931432481697705783646406635590019234752923502342744993416087375330470767447636063373987883892810107650707462970847530807862879107502472288286186007182866481948376532608627813072539752491107474280684194561575451194729967923686763457604256629075464828468806414004969452089462780718989530756068819101078724045488724146864856095602807859960329409034627937730837494963488766643969827322040511157124498727632270699148210383193148087474262103566004328308379791463462892659456849012152669620987277813199878363281422961025450265252534095598448571340561632727171371920953033926513457388588896389693377836474224663184834646225490499115707893639452187163851969743523928031812566487914649916162838247807213261097061145443667269640564428976047842849292968917796538382039101587174468672547930424907663512017535421164641788174877923706725193696262868245271533408213280250069470791202380620743013764682326313210381796112760347644674731519946320871968517804404253070651877667798264102645128158784704183092884987779030997628304382329068444687264340127821549367937846291759570872581964287241298940048718365616637724061307464305990621141092657444033435140944404997425282611823913036554454295797178729581361222935547945762085746036915643252408881677104755601875950143421686229689166732995691336596112744756674291140585139574410087778219125940079382571673525509858061144376663822196491308564924854727680332127035671251345446500786185173470888063875246035280482784175873636058959510212583550567486426692603970954822210131372966516534126874457074058986147196299006956594943029451120123269278571321658669711864240109273774135466663367695854110886331433984732090314109253989727298977537713927006797088416469295463821093198076129703252909318730971438493648173838307363319483153728036478927668876281076553226352623833092671374729554994719897822026022697911279221043636955973102461622934138000639849267700629898345217446117907634128163190267246723042074503738353934159568507199041897003731569721684348578005764006012601352064357240180247085481769995185624230203548351946928111912508072542721875963317543096723569740959253375691237567156562004476352136958498605351879158568931726046729078075833018087928381689362726491629049347673392302811878271713152846353222892784125201154409918190561447075257764766455312111675365075570454220589494926904144966195730482466770753191398732141166920847426180583588276812024493163362863492451516346407575392919519027104462698311795120784578805711700688916466442436380645299298403373551444633228106129020650006851836057947476285038919250445890610403735951732036039635929870153490389142488347898956874181634156328441207828677302910035988736108179863849012282590981505765998228359275037335257451790235610263275355199709517436067352710314169571559102132399887779855986079086368280142764597315180323935797044601819308620297410082973282825571430816999632378383277511845729204536719167420079343343649351953775463749692223137212812484213491311789808453347836927138896073398604947397703230935379540142402532782145625433598354793365857948915077018871627771994165747459648348865591632865102208925587405760488617406880903601413181546137539413335842547408012978220574028253681181543435213719864831519963045890041016277833864868729477928495347689214256500817091692489882025699126675415557661988475040152076241031097787884121062555543356763342721715067552903790376493168950503379686578047516432481574218587436750020348483283750105944947050987444600728694905464774919018961293514351949774405611330786256222114321637111470010916836273529218421348100598027115880279545683172765391232708410933504072457471999695400501569663949681110920472917249782054245661527608006595199390670076647818357377814978564025979061892903595695652475273707023914275945261151532955340827646967007458916018265003855654951961629557301404068781188828447477382461725298725852105595807052254039074532530088982188768476596274371729957792904626650993629006759675144894723314269814847031247838169106197491159273121172699405488641812547164995629574629600525460014571863366898877759682978187364934085520025341812445654226482640222723275541819849621150391623221149910547405598588876665335036921250319301959820043710182561145149059343756697813170379267139285632371066471221378548284119773711028335601114739530994546125685461829370257842731296322144855884837258521231089286511671103869763237354853281266437670334879687734424114225829462840170319818125300725726095329236529970441972244567425095933663353548655148445150047026167727506507264557827790668920758931389044806548100041226702015207966816629021232459110139976753925249169720451998767171040543247337737123472786402039396566270344359015894923474227512759950067727345592191693112536770212957067296025780152428105067009435872908506925162888009263791987862662768411523204096134131168141553374814626945279056026672036757989776095280497554816230076980577601220548089216689479920366099705129426938101359229034338404735167736423752119368962530726001203270578435710903487890470133121481469756497966828138331233558366124463149328036283443496172517707629934107526105369893760763109897043827152463834281519896419281577342788021996398079491707768688699953436784382592280619183810110976815029558335541293524357616465905527520665796793721043221003384635247787070865759986490659422154331818674064993940231742830299986680972641252228604921080235859116454615429728446566968887378469777078519714121854349721466115569327451800549034486920924105931502553307724181185290683679557606517833944677362592659772180579873647186303302395461773605053033445382363592179475041022328786956620390112802789663522046766751438734049030126234094768396724485526480131482539479985380545537882035537590634494046745311469607228276161351333862262976519540282757224413424218171563310282314219359007777654635523724024488490117210273527431963059995271360149250407531370635916726704752289234521542233396868082892794210778018023519370255283697397028556136208160999515407319444098771000840177927200876169681742395887075958356730823087445583046808349970048835684543352165019203279190724392304305309785154587287269311370163912614008226269827894851726322689589389710520791283261932242789257483009029356379758033048190177740053398471918245959256972051517798574471703495071361070001973186915744610272243163395443154871365754861658641249024883558228334648219118120871371009419983664725421265172488212891262062158619762903430483030232454829040641555476768384576343748961251551119757488315653670030884172110814754426737263659317478279945191592813480351835283008433119335469130407385926643564943007983453226414195941720813175575658558884366415489615165112944756154254189214284236138045955214490145674617201994472534477423414312806911756373181907564937893924780295390836581458752024197798944824364656119500947481788993036871467319253294911818677830118677668660480717467067783055245242784326342268917218269704104295130295750421235859626109067079328903986094762225334172224652086784653420054960325672635260506163966995762490424974952001450886521100458889729645472138048638102401328934280810450884915815254728263098040265836763621754112226399192811999039006158667728515828716833419591231002970406492328709061436054238654725759881787737634833027072546869078890626806729790315950707912468378802286425081544977432589213850273475913066290055397203799954786211119100870562346855334968633698086768331822307557436798817150890081900548806536225501746260730212765630703942679914232096170924741863481518651601676477816743836847262918706735742191522472790313729648749496312249131423000423423867179754006508663577113081257491940484450883551219180764111925264585988053349163132148905003705460334775077358550203401375875483823217521715901358815379146306487113614985955120958668638013099385274646632188988728914399843906053623137275549222866650041210037295893041240572608458355669620839549405377109014973142232437491725287292088554451864555189079895138007508159997956068178394694346711712459415113029538132002863738188126245310479995686330420731325936376375612849768268465766801050618891262966179755787037259992870098568571273810743802801420497978023711499464360751436844759666985238221153539985203541607543281839314270822984819943657557480282676771472907101892818376748479015656999053678644114087986102614110982855345063027905600743449673526619527863576895311843683342351420549709431111484909301016297779801054418857913586159211341991017852007742356741161913700843486552116102785133734539374122493242164300459094670635669817280871797285972994625846984699158463557987318307538181697183563651461416105218284979805517729528154202936747499702051049170712205132472771485260588576305992444079197621194262528130924110166804354878090646660329307790885104932851574017364179509862217730276800473180070161635143241917975245634039358480968397391954825624336258057564665525726582976475206413653220835108752308778396615054510355710159961180333614662295518785569504445055076006514518754920254311101478588113280131303962938976105833703259438124940593451689634399353812730926891050899067023017870262877374159250447852288081457860851715225151129530676602891374032326466261951568749994735698055310756786308209615692344042540774280101604469336957554593919823764332825574786555668163352480000256816678067213866804225705694291248548646908117051336361952195735568402368325669394507314663106272116110444399617999207879958612004605086729166654999152283671377327104917679649458114734462492755983619581292730444745751855804297244966279535969240181155648739052209701339586380727818865879872481974404010163614261514460279368065512674928632254959438348058321761580226556701583071412417105600079145035377121516684950530220650617698655086485422146728820483173965324046857919332992712244535688515719416848302033642584584017451637940948326797484675069777225003443948376111420997524024115970307028183044173815747945928534266238598667528570371561146616183296950117112392076024452156736208987464597277527023535342928259797830627237445160017953753178618025528194290758240585717706478122100169558431306706576601866874776217633496275695821086732490645061426601272668347400095146501278725678410853611854703367051470986944193557897596347984754256876346833724744599428162379499123227384552230444993616818152286891508563844612744000078195939018806083358457578071238799448469682559096528965776388611825726812895578042972816517599281301252252021303734841281127504238856249389818114460032751062900879362416584605191858877700142186877702392628403000562758951134597285623014399500043458038652778349224697191174179697137127629174565320618850108696325704175157386474290032697519908807863197575528599738786363018263367244568731727428200170087894776472122916629854365736576382924783655570486004692912257981211559580475713544832754226310735494857894835829223638538232931638427424614621147906645224587936773127428528312991157047335806564903924960245517171523186392369547766416505411816626778918729542523233786835299218506842443315264346523091807119509927075666339153310633652108582288323535056602329404935215646694156261650845340958380366332792487065694900601796108299808483691859322298370164303777716545596934002125223857960379149090409529633412235354306525655133722064613791858450170426660169850306686228636800320687368081737567647729440871062090356140906169041726486393752075505747456904612756005022086334166576779365981878296944133550552544661925958590070596640537304223982321903042124287519373905776803418133067665112541091944724891211362137131388894180755030187992959185748572376665593422101545420195756961476627761980558029954151905410642294398321309636593875330453315762449214616533304529682572613352507187051047885012058019406789664329022683387522755400206853180882558041481835706749054355706723315838963205176530971522581668250995347226719296151139826628323455660500841319855048913200959133601627689119599385643703454604850519291675170846123216463249547179752854260091191329378108526322924397370281226568838151755987258220454508688043402028036904624562021041151619828111989924861610598904503770147049285038609757634680449234148476058452457277187044822099825637623848814539237156555568445780120841782101510170395914192800329525182899353952460995584716479659586642491715439307618163874767767757793979670388915082128212397721596999312076165181657876393195819077808769990083034694711548555847888213167455221876667782120344975572868659329760893600916147495892842482817510206030558675221389142999841580738650623598693623291781108462421829444895634745791666462584540497037978152994889779317835212563980554819677972051987624278262011629955707752132855620505808042155327930544572732680799613164975404306592368405223347946377009617551063577475204918129757095060733714361785941450884515144468160384705491537708110302076503903794892349961517110600807700729996707922797797790980047405376131390975945085980367907331808649272154405108213740237843896555056320220237596499135028310276886183530401518283102204680878274458664511520520481576653440059728504129532079861116030621853202338396806285438914507479907945631198238671410264355982947750463388971438706776701382248990388615249748198102790947123531015169247854435682157430535290155585593459519472260593011852343112551497064648051560887774645161374822102667467449954334624390490847219331357099331244653619911410615198360457761869021147676793441381198642742726802561020524585090743233940112457558916111537938984758298163848608120319061925437382847379746957412561179860059537371905463172707132268815233178202829358647285985541888369030810560241474786180221593158821697388008794431432921966977544656700672928844044491294858032356622384904933438419503052226847073356049342190044712475661978814664084467562608711251794036852772386715268237721634385640124568512411922321042039643078910159429835283803916266298225795290456448993220470461564475958212696351388339812240881159599360391407764049462408289736286066450000450700821776022408460969983844555425372097525691931493128970478378767319891576634102041618353916695739581174880591107830253455663012511353219591392976901319632934771537030929430112283568297140020624170480453596808343743717889444090799305167280272329905350913046681135118181579765558445668709911985583700347897967353027813035300904668104357620900714052717849008525355478068049539242286730657951891084851945581771996548703541848057170612099552944040974950590384042321146611045298458077961655493410688268784156266781143511127033558397992269897655092664866570710319957378967415721552165225560912615448255629197814948831719564643741969225469854515801154839530574773115895683629067151973489776606066628165369941862408468897739441333516100931172126410793089085529040847704433460220860780282894046022194464018890211895340580846858596293854034629968698846604948203010430044860612006397624241703105315563585908341599968563049264895140768131492916471396334847571150332985926614517049019703688038302051752893810610210584118375984060022331091586424513714503809024393315522350709868880656859955289624085656540054501451428056631290765332266076067328410241811836296965977013252468467879458924392690500474092651849077665783988762544300673338204452541415816830879532972271313112006864294893935778192058806685269963931685048535045977167688289304488544124039433683607124663134431571992655284377223740107106774753760503435389450956600776622873337532990980448601655582568479458227582863962805574607630821900293555739788622711598342034395585881215258493084803474397567990366952208340167207159168622831697593679033481427360307731992824358894437713895069689204668225691381608256511082702109111368695649004522085296395643249065382174599765434202480849770006878561553170137043290794885859517543479144594496557088098415560265450361835144727805657224433441977682622321170865357675507978615771602760810162591235869328067811756409797627528889992889045664644494178014580182702530507138880959557379216561853256096500386987537210594976667525828529164920727239929764423687685356764225767446093531580302808330564775263598314658314457253221313308548928730430911305632360311905088166016925629342700599271691992740454254095477261434305639242891482206984802758765348223191059870249507765408832323515800541636813036801364218924654625843994733438119427547726664487906597413103264754715546984653591554238281374363335670860452204986428260009844713591017178325547961453572083576782583644538407548100090304060520610439473049780435354266777733565191827778551352368326223727079773024481753793834605369487378220592876686725692389211124486039593040692597430588702016510982867061827017922272427072340758772873549195320264337113162860785320277619893370086466879722045984981830325503688947153056595836575408943215601525158244779595192626064332075470495792104968948650375967500768870678351944424423996378144893365634037530819204991798369716890274011277480110460830938023282969027304821102605872679290620769898321364424525616948416316712366372658107399714239649756540414722118547393159121531966366520165188325265330830574490707041273791650264776302582559669854311497508310856294948405904698857178939001916950360927320153770398442259184239184651966488418861777491952547305129872272525529433781295041880083199843141038724183757221362247458055833336869864208746359301653791116673894257587335341819874898435263718347144432873357889711978074617221719240294378185176559841005852355182878161915646229682688487010150428829636500601655726396079574945262280331409556871369848671078704914080232856100716297555285928379819932368135075569122244208781764124470223356434741758445184751194413376501100458268485119084738037130977511049090972854494034714919435638824241157104092494554785146537110628697330850993544921384122809995885720503584986917280263072377988696546910816697711451687201654691394302965618273664484018785407932595451318981511348079908844698363055155150663984931187497548847247780989889576024169544643258928360133488637046145561124323339048620257191282122755891689587384413929193403596724879432379649194041926960069240267706365335424353369946936155017468759383733617989866136790775503998754014476557620502810957393096297127557840678434271153142523259030491682592794059802548401938613438914405784115685682460182977068510993488013212573861723051310577002561963165679871440288554567142773705848542289975341934513203407526443148753795132994239990241380959661598893373384343901983538206958700406045443019702128984523173278398175050001080786588599053496955249397567424760140766104254682086234959124687194867973052711533486813935653119646080617797030937139866096524102634160748656811775798945067016626578117954766293119281438831265577722834739646630792058170637483877652682773856390883921375292832152212883474216824467528703447287095508738284122506100537754226648306385679895621618156020774017746002131954422730517657745895572902661164727636087902459463821792888137140161128586937469563437379685959509536056453323796443854465496178613986920723077667016065534523751021290101460559212120264746320787752632341391281354117490702059702788233258601614445460986662437977744949625086562406172900070716682354197930008824876525084496522656855630231773883357732558506967222171813828077036900393892719430583731048103556729212405490624232891115139973187283237720038805256310945468364489311385410395507727248771958378970376457544386261073660738250753552869122027165783368776878171329911880061637546019643572449262432178062787296732318071332409098736878318629593394922038872811511354174903173947813595035034982231757413436923158760083346888788060088566225779588900581202646739338158517173623924367874447754806373917133911507896024723199185874094403662578528153529728505003621109720910502777356175460840685665198392776984221284181513166792514030583760874217295956680979300953737526704849017073040142398908204007859885137097503133493278686303635179603614944039369294792408926178126981044465535881587739268703201644483897327499124369371712202018616004520542946395348171617883672720375299211845405611558394742748566390496713668760457596927664476796783781145296435860970566981414026586382617323766468027124086463553595760354278782878023953054461690403711996144958075586126275332710954937058760244857722797459814327539615900385534479606947846242791319077806027321825688296635065985179042744197370869088695114348807562235026834014337359903045100820357632979029434857729350842791347609335887750351070206549907027770522193372047402082993495820863668054454075552012684913146905021537311216487399384254175504944775020430337462049936051104912451924836976157153506044586908578766231053453268302851587087679572292082818901990968784727278738510734858745184081719524177196058743440832393077646041256803224692658798995832105190983171191711685395754634201294724323870439720669187465370052519338086051537512825032146611575208142963451465323252662543742026669574329291388468865007405691664554405347088817562760755261730595554031455668679343768995347303355832887928372617649649297402705143127318358799020649767034265735757672451987616999334123464675928179748294839904144233221891592041469056807773147476970324269467553089572431768404745897533089559938486580469326051086481518911031763198458784783548442881807875317141128296374391184063614158094740267203846483963182204862530312861133836271101296553736543672037441165067570511283671354891716607539376456940738043237595076389466216785724112949143261919458708306872384595418122501497971310355946066206512049750518520916031211576391895297369460142758402150390439896539415594472390103181234630349749448090193092082874978096440160088227344884685560383648778953370349997824590403844966582986502789299286836932916407010552027837231034714222078100728339540280179955562159722343628620927875221624896630937356701363722136023446439982780656272506559403395674836397234867003088952462099103173203628743443665208976219914921494371523018643733324364999933665534095125977724143533372197437607062637148512926710152070542374665991171018037319424147256186245761035659411910810974918977810086326371689690921899123799722108338097393979476811030899097533067194321251662554787096303062043936606590028047155151308982775397050839619930439182678590118153860816515885125769168990525879208570441388932478845482166811334457979326386968041646612617203799641167334964398297523604488359215199608603661180867102850595347601946599073348684063383018340556167031047404465632863066554031179614072579220677821042749622712054726072934436683077523820769312466862578703402234039127647311157979971964489548348873237542117488856057330180972527187941066496683962167754684110866514151621116806380554346611382455495183292860055053596728110065198805670821462563025757254039022003118499415715316342560292572783259529805690320676723379181421357528916601301849274232873402306480241412636139502650870302307895241197256668704009056849692588137622438406006310462401243138955237600355267468078585435527382026775192359941918881369678961335636100061917056629020562419636360189820389478993490120452172325052627649470597643560332537507668716440687767134204752183209997021958333442444075858759592223760027070398617210570012769448036742644603987157331414895507657185824684019546607628718388647540823804604432357035571453327000785626649685790584194109697262023217302808090557726748185745646420331899365171741303780730378722284284955458414241385657623482675051900689421422196298298867507594381543192713192368445432893461029611454054330082636062887289732147951538174698997032027363481973954645772950126941752291739686917306521605396375424712687212365553318115255631496702600807514064725993577894028978532674899948790599053892905997813877585457007515859752500339073229651883263657934641214387092143286908424877970288175915385193601681829070184767811844938490130529542287849824067741895923658795984882208365248797690007969824334974201490681800862479582206135778873287119208069538657267017160238459063936840166133562276208891171235697532166038957977274277491814068017016538236420074647581482060437062021471529598440801999774865280410045632322346097833055508007934773797365727506644365360111285681835580283627690145045836952778384518175338476402542285274792887228591733855520155335331060075809362157577369804383406028380646115191692098644125344800426898126949484639315722037932514945706481864320424870884482719296673336954341767140163910281097946860421482637569883095755815624801806165193386092680372879933569750091840171688610568879708611943323171701172456486140847010499201904614848399319163620598917777007398799324616879320673077896475550811683308839222061498135590202768968247753042206682247361417822235360951520695615597657427444217520522724903829967428247766000164511735969457328816174444442231755567157121708447217415775607069197548134690923773727981541693730497092767275837335336500047175816753060686875110098048991041216969620104280451362487498493190183977103213209528499346449239862059006226288461057650568544940299600362179534229131975400857498351329403453061084560486395571184806963948803745665765041479564580047981610614797191389619284888137917440759028143344323371734059280212303419669720494688609549322341603867249103741226484597620900988639266538948767717599976871861949850962998485066237805881837219831852218683342899171792421001039619422065976495094575885211019189963580505628183479013261340192487160044532797383759326177406292029189243672713229766739326875949198553309492697894194109143946194855937830814141737312476902947771905491608204443824321359305926617063542378094717213751116626955836442869843627022770236271780725655983737236623281769443752710077544066905512828967465129750229162171760704346960361996143072803851221640572908826829509199681839884198088847147461664710283223707909175663830448535921682137508957050087975299878554491182007887349488505671318045138872289879419312644754952623063010647774938967591794731936958513972451471601834780765475075075052519310327005313295307692278275697892883170719622237138687374428020514749048397637470644845193729509095782545514578122371356140210578108754360760908330269238970889309330686203513805326399870081474033557132803098221993214273635061311264019261194126955550934323742282454970500803883339534511798181288696887328234801732296117053416533549868911607401647812735075329248565656001366791997615806374735596578495269105063803158163272694838548302362969839147207793080204665235706877317172136184039747100248239249476130411219310515404315946262945703292365139117687775317556453941874840287341362758108379751809934962846436682076475583329154597260890054369960665909296990559166882292687051431531521308295053805472213502617892271656174840515944054203642384128424692819851980198832291450196921705069589662162007990239326670907043849197592452716745111943134864416097595858728305885479955030692932327835990029958639774031541079195239091204594664606304813123399587525234892391397008606408499166807947773120009225978451214846283700379755731750261233790724401477935607370431708812103851663617128453855365727765599388359750722864111075993434536589651627232587526828451428220969625519311538609546804097955593695357809686679796320100074660886832759734966122958787639403471086553022888790692420814854695699948836486030354273550402108356801801061107453002773030778882597602470918643594826199098349310924267063904225548578884349711570210693059203273973196772264922195786458741679872410590570345877263394011331538767394770719807286758155034224432333082483163259711386798584678955699953651629030245630031626350639522376313121318416012355949155811674932992250379118618839714151057117848922195422582223016404315749233752766603737804194443395066877829129814261035826221574741283289175218957477365642882018037391431384279844459425408722598231655483070298344521822904134593815630970213835958920085746097830971745751097266381237926237210646170566731248550345537901767648300301444438611226919611920943612754008399428283925052955470719347805409238681424662650196993228238740330594939429866903574226003868497926681781073324407557841504000186964779005424286832951709872972024115710225453711988273411876998183993969369468632118364727211432973608998322984500899828100995759378841155573490394774636250518733437586733180192057892864951194844339970452270609462520955171284217078849983522646211764088193226268020861069941502662103977098261800768765866514157513968846933078662384950824900183823372821936421755441890234587873712235340406411378844165697605504590416712631785818950461392706327076399977967528602084671050990611468204423889647216024248618946514298029775821660765261245516019927310698621547793697603577198804512647833966375509435191461593684187002283621269068455626360099136546461100361023803533323596199652632247806586214830585558669954211064707069686262014423786117913491624481542536530256376534898369778801540164253330490718731971270311319885594423541552512387581208620047831846123358273987467346610299561576091602555098057755529485800984347083585597602065742002439847967291079578771877840016636320163211843213539512475557324310055162988025375159442024347517417197503990900801892628071509653861412815619751995693409305074614375194731223017890784027505092067035529309209333941593897148996130535381491021445498293487771064433401146949007865482368586861962137347815922988542535571211215904408888904273148406269168223761271455706732770410938956728875324482927766147734980117063608663429403754681884278045699240725594368313403078511789794890770593253451075966605832136407794214958756353028439095899027587188819021930821636075819147894016739116833105064196363701412338501332383109938418674020617708662171249772389770580255156196155623311267406774395851535779026967358786960221809409474930865904974797439671063197981402148127177449954313622146503872934399528174182843790117068897247322361845314606942403347883318600087505278081441372908458786231845346439581021208254595763315335167448502108605149764335552362083937065990719644928864007298134281041695125450034444612736534314490617893731823727681694056244375910386556814590187851140845402879058517643360197293464405942737159417313751591910413331455789402850863920061303200089235252656262219073452372689163162979567960850051585179420879995118213331696758431670715640736634757032729074478761250891120520671060811328712127273553064280860464427557545007626313729631023446541166654967797276308151979909686012019506751205116353427409932561282294215493661762105720369646503771314691429810938268591433851706085761086683197365601785404923389907025984372921436879562627400178151453795932662863978554896188548119421920580561120077471929273150536501157194376597944486511871538479541989515167959065116161502501818486060840787258889784046456611211455780075517719705287660766617614241616100032384283971953172089594486533232719352979149490807855862032209372425805742139360726061892368038896984282693824401281384709007685322770374854457068864340478705834015577747873444727224954844939520877010034854699445918134267066100427409745865460085730311926106081979261913186433378929702008426891114166664281103103850812536581822694590125288556960493021956953647386362137117455956490197731815165524235946639064011863925703635801336026202432759796923375811107417695547061815529365033133049812754503924671074720374128251427560064178879611228239139902554915184600312455360382421196678762465543825483481893612628352999786473441925233446195369429763525382410010319799218724097006940239630265113978329884269000485012804578018857040134923594445471690626530863968028467974498105822099007821089596587932027590127014149835902770057912603185560562394671522886569883099575509592765263974684808263906257340318265815954037689931055903946135888170601526446367128007856431730041509316933366259973434093380423741172589975381022373639233744033233987507223360284482508827161317498441873074015430251912406368877779989002679069578253971129916777061213828334039067168047049472595707123240665141587075906264710381582534983233363221578371013794114428107127761048523923956087521103400709954536056951444671143612698357341838399697402045738385678640417234515652300437385321788471603345979697424097359273945840902041195903223444624634420794783564107944307214580490224059051338701562591360031089504589887158532997521525686624159481454477361994375649165438510668619086493996892167447022390368657637149380142030231864105979738247828767537861647089895105672686910466158110321940791764248040533659756124348294324335783559693906579907931528185867143303770616429348014731146170246327870815690725990545793670609883602729281406069184046102942521980702787250339738381888416923869672374834656029833884690626274428540820395855437095329434048635934005111222881584467950601654517525774675866586225736662633666089961405004319109504894387856641960950101946041493201019845142518303247656462710296128374988073366005930710803189367128088264410448720062165712521607941389936018149604518632095219132064139622621401000973367641995196170473233623744199529265808321277110666494919543834267669099837933469353858420417407003334185969549198354684799106552368380234106052108694469678674606943645523593858382862008580075690601686239584768209739780997402719892091359520889793753489503576236867836425824432537212375451643499407894029230621782089410324078819782383164406650334638577454402132882121322342171097014466779280333180910216103293032272881069658667021203510006016234819651393193124833171786534195884441567122749729831452876891623067191573567789223042834254931386075518331273090204513060061786089398302628419376170938617432088386614184695508241128437138411956627031373193153392285046900866230632270706581157084614817057984489128361431450546603233581871598482725608478682882504786605779327829956703886196734255797190154761515157496017558311931449445191729271286064836898278259473592542018198518546787168171906657408262216440037166630001583996253086225559200022162784975140838790940685716171816475866765006432956144720232919492282195416969284115470369454421420242601806710964840767950725961477818865679566637636872871355810761910411583632025554194324122656058159547590893278799078678728508602925759895067130547339710638917305130584234599709624296037457929208643175844825325320471239662547066673560199613242671290073798234942953184811549454904095454173603012150769189989699935110314134692541138386244978899689163934211584297158366888236608102005891038965754669216475746400736366831876308434001885741050170665017520460874131348563242911418799586449895599125573214653915078856117032624932607301840398229742288253640407401727263313111751385069339047597816239346019351874630890789828215292907915170662656769712322689888908430371351808431602090150770237219141004144451135270562321355086389677698437507268880106692897843457271525402164464077471984844201017750656338849178195070564514058020554333915700260917526234091564169230827952256716230777222654878562732440276680359561776020462774213169366805605918474616918799928192515383562937837467164669796577053275583748280413592139201853100888689295403883131851967037940577878771332554627473037381154203449095774181860541224148884740451217835975839188739886888651220742928970374450017655738779408015857036996355468473029533317046526893958418515272580083483712912824757630571696368567082810613924189883762377636799398847890827974827773535265398678698763190239780183162111340427918620879882727124785226260589521978586864957521041024467012190098674493382643178366573287407949788341739104534388483863356237047050646888300735353231210682986546168977647323521381978831787778220297689557291950254874955309763943775113479389879745690179014160083834191687810275771543561145543639029043710355290313026220612284115392613752374354270138115933279937963057336178247694791745285524647800472548241857985381770456641816364172984674447213787711500813650756698291322369790386180960387570605849062079040770300170571816186644783179282747439631781559216426054575029271904768574016938891301880795901519313743417798352416937164231238918222280379347692367360916543732966849909603753345646019111125834015794914559839299488545557161295473885467723007311511278009357825428239481006179284219636174319841933153722371495404039976842034577618304813268159437465124707134636316399153089052649401300523803408372062060280233410427788491753048517095042151113829255220231135177039125677402877839911892908567397225656906869142275759125514913551930043206127856749317530918539049413265412678953800453554224978037759469451188524769841057324815761322153802091139649162454403026753264369419854193645914545505365629806891635755229860913925185887584872119113982571001543715476060292843231395339353283725852659294350257810691315648618740166549833328895478293709411838803652903403142726264897131397932824755582204995543466706423300631147976916584105862199545698734773029138260221293108154141639850297047229088304084841652437782997981481858253636207997635973266987045311923425273597790586481389237733693517692932895644570540715127417358774377892504333082736185733711953478967594189965192409787081897264818645252215362308446554624081618847164588799636750009445703463929585110333301198761411388170843460908784045970497743108884108160878903895914962727776601109733216231332139997939916281310743669386739759088875143712191686983321872400171615075368044236681542677865341214502835021570688691816622587670242174355139625104286935801655503237685851321471912323701607797442693347035034315500538732703079905015153842819534458565209658595523192491987122135545238171747105656269914626242364894192475190644869773867413472200032041994832824955325715194460668066224474641955465503625042792416717215441305202182840184065629197111308718191392063456088091109330588455391721936038801755451119075104852661479260052330055493493585325796035411353299891201053883977489314036737092623822564684252556938833660153277531604480381604207718203539057771048515697789631480668456564480477218518285850586340091703044710362687066528580087131607602096512263407145706887886660044269865788069426369114616850067262532975529593917458044144411566753118778142021004504516401294477384945034580930435360420062869877203733958939293021706131919810411811967841568544747313448527809629246140809261495871899358527119395588904513467064026026860776910339200105830492980132492314931140740125100178030269205252839816495157972384507321562526935784472333700117328313238306727991612741633202382681929890326874724676157262897778475862996431613835670561229359550191968845896845212437548313980028467767444776191835509592138776660786427057343252491441789776212765398184929315439058912814524098612084551565261682389681272559925157857656317269098486653875717827116964138624224624597848795748109866166807579850553320034646046692817403793121499889111641933971682279173980078735662892198374529905659182526981838587575562969920421829508125074241185545192726419900353066574665480746989189257290939982761147765642382551625237537896508029624785721382717677414014608578321691210466709056159459007300744967155491524483775846415452936763010366284197788185856570608652577512647678712326424184542635338723277876818650609805994771918449530797482033117613657630184681294462822017473574670313431818776333941452006796792210885261235284236210391780157498915154873640533260120414761077638511749115553431480464411500359819429783527356347467831045580451196650976312759295678853875200551946149087906737320523875240196800769380758468746326403415474625831492262120142223011505113120854846946824521361611892718172989808882263928609964794461563862316987924915069071522911926562476451864604771959726885648391348432843371025537520350477881755079038928191778740301968779052219869852917947754308159714524551495283431207223820402566410775859000147310137362016338370770762268173976605946286261065811346358431360308410791428042737856144428003842771806162915318843229581049030642351659234559474518322816615858350487488042695681445476600448805108816141067876736395372972992864215591137716608198402414539782385040089647400156003610281716668207920948584423438316340743385393448440532453099837712437916329410184149033952997233573874054359032926639381295619656799349985941644332020461973258721479043689110899641408483814311000721497848716274984759610064311140321433038703256792644542917121512793695601820645733091256600816534919015552741015623476515832924850864454882966702201057520125457945343346700597803035519318729579181189092533251695399835508758138437295651726453650966927670955672937430307654933896785508803274117013276511436512400987853769423562312515239997160109054849946865277514328902742360810856477208024457353782789814257532387224589086162915568268287087140537248537880838149325352264839699853657704063701615479861134860435294552672078192340010818333106979881902860266235191607367455345173475662006909267117905619001179371762724599872768311105627045655012561810223485092568210653219401187609360665589663151580230988482820768799886486169743386460492158573127506715657951300930013375188551398498384395695121846390664954954950122881879010186133121792860387742189638575012105217029564487458019227573743210414620116310793946685638438669621696711285083425709305805754383710652582811569377104496040064242801723375486032695266784438686468000881319104678951697051481840130790422912049337633871501241397510903287841403760650388383969106230762032149960843393156066220050940197222483667764904680186564010896672070859934919960302380733182706610285051647947445938272893237475612005169751617926145455767584599262319509061552392094742684208866249272249113851830333097821520138736607523218439549779831111212575572757958863148857555414724349305219728239923583773191466212993299085687739037399069725569884290340588619331312873461323232659370032781097253104516679825049075684961684344815454099754438350864310721842450316754766382712790387206344650068541985126308302153667797268692534129873245031355269300625956431126118650532074174047216303369798302723708411852742054639253993643883966616277613667463580379309308181295604631762703679419473632129155985353383233925577022272564454642653352010444432535911419119288836344631817710819940790084172596314584432505461578952656044834461054360187925614500774089897357111619002059510163485464051108498880080740817244293788528682567743187164595957086555844613248325463596798730126011928966589232203356319172752031521250221384732495127435140303895338869747571576316460042043151227236872398602882536554770949050221431235177905965891451596432293570974924024397096670530301287702401609364399541253276937586749643475315923368151556412619516900464357132247221574659093512231004834413466853532794765899016226731829720857203311574290707408021474812083206142996566208112961086819274356890137107980484478740662460793751155298558151152557107989494859113250237054564740917421877573517819270179633143558251946483989869648341432600105881437825687090261048068080861516011544012563626877534436548005785255780873969389962381126311820430939955441292511724976184556122548970152099825857286909444999552690917073237223140687802725540822508211390190232453482138053691466760772233204487383952470778052878426875025932281900683885162862133783002791923666076845291542880386202717165829678347534347558849322353898657076934122858944321426278604288304169388788181072387557768116812850598411947007268513662351395846265643587583036076343021187619557562199038050887890948627563787766264356579612054948787751843874424262892242609589556881361993292110795655881664121585710430088116790544525390940396947809497618756389629671323319738464673755735574014936342871742938381877650718893020011171077812296243081040598806833115515559089617793947842710683354604548987117984500803114083474984242352185833667145198436866005848521060734689868681290618627804768968654508008681127210071009316007235879269609680582323332725486789013599347314326815301784068794968005541152836536162433133881249537519195303057521686483160866179749852598497389954334167760864461030506608483361924934908828392753175244012867663139879672248860815266851820318644883612216279533577355248196073107180908106374839067069134054121430732289827072761681737045887478738218111429502476616059659961651887883729134595661600195275701459452702768900666017652680341709110760420429319690115102852444596903542505582133849884838727877713394323202342585720183924822141425910940365325923867761532547473562224239488711189940182395056210042062660601888801238868541029282828119294272122384196593996526200522720215803441044214283571820239318223872449176169660878657860374197583841241694768628331303671006945909997512365551387136349945256572537045854743260072644657163316031663338978055908222915472558410351277831698928111994617071017484240459679619400541576858059563986232339762723371855961729989879216875131638651601460786133675846180766020899445979165536026226761413177498746286092331438296700325248170575908400515543998664117503400651471737006796289702891574526983623814384971567731847243975684320205778265046521911970798959422203938488926511478792128481716248650302887249964565536659207536894269124311783131731905808861399647857649978078985895692040779939590654052170596542643186543772302155860305257835152490166973653745519504776540649322516770432714014421366359117469138966906302523467563672420759661640610971145486558199712194572980202356247866841828001437477161371822248468324869468105597064251465778045661181549449916211020594458858120070026392487815282435477194567609170611074985941019594229832672550183968379740508171894315326806307204124150677046152559088060990132399092989856968817031297313221238311410573485567739871289749043530893648197471607446178082258171193294459885262819461156666899221379564593168621615009296603252346708817942343828583997878006344690298820894250109481365626602487189500902771819718916597185635980891027724746051187661473871321055789439849481284312471580470413357680156070054942388822676902966469436560838381691616606371868877652541483126671818460184053862510748207805799938707105818670836107857862790773564012488105565085296698104634502106199395229184430697247031791248257690582844828022893563680359264878290349092451061908836300618774070796281745950020089671022486743365162717936183117241229917493876171849384227257537954083224947138615291643479326565042142873753609714245538306176336233984436469518829407106316403966416258247219894458846103076809924606610735088802878582865064959581025193106327932714511123731038264352736607593684577080065653228445101067163087056846920757299969621155284092858374633505721144025888151908389433505705667227778222524730924387516217392954664936922546300218794924756969134705646146865306327880078699953423349585179485972351665885733181261618095932873828515601336520058665861237833583480742855367173464800640418358763695997192461161337636028176212996445896982308840670566607241713347150041871002172283975744236034727490988147119061989283826809164115680015045007768031495094839246177956091905376762770175974158820711827912528639921692419117179992897926973503208822093154426294655483013355115966266575290658265295379924408376358523185002167903967330328699564808381422928471274142635268119493814314439326704346603753636281436208759910296274524609773872996959919582178491185617116403463239376566455931413358693704803720673379398133618730754468540145653086916034892352416433105882980213695440812427627851170756049729182876588613035896502063797152491319919426981372813285685567506944460944659375979348838241488774525238543532751346404623715004205042339548373324171072910847766208168862073878981287408016004909468680133358390239945265867050767649050293813210909552299170225402420073024434575532787046964266796729473290240779989119233480603806758783666260841495644816761479895568950458409262957774878405146779182205790210689541649059207461515497765434655132388481977610534260459398905352785502382235809071457168166311378332646543016705025164561934525077104518855320324154976852548986592549301330265823488388912953596156872333209563001409832947790003302915381075531879618023048006918946101562531709311693649383004775312909536066552683956014295095587289985849681142415091641036598763878155567829244272379156286244746739009164127586653531861717203360001748003060887258899122463546726983892214433822599508888420972207212642823129690348681273157860025772776797358826687570207424888072107789600309104849501795169601066568480107779126633573636800220502514583594523330096370376884520807395905447662879222083474415368182363416016087287927745435963960359130962410453153076578521704021515959328634073471400035054713011890741725386028770253239011290380952891174884992909473458301991404108766353865863427547393405088782854430562488799038592257329944916360493972245190151109785361161667454723912954585530728827344997358747363311042013698897656341011094541541403025241806650819652494922585479512710314431909728439960797122239699110647340437601471205510148973646135320671642249323039134835770015175033607157862142685617231947892763756092871101892460818997942745696755858052995763419006549308812218715351312917683662629528825987423824532722658189434822031587688081840759151658984367048155838694690481192288238968652677294994153926916991308139351049476965185113969411120407660676986898747905795233649149079137119617016981259913431142141737842773104742326431798403283786724750048759217368069890052947496116030233910781429019640350240902624536562784158186508319514783918190050903847468433526269670672015831883411335992589518029713389116534222925656464123423626016909565282577385531806448232488213312297293244328011941181543380697309794516744326179384794135582185956343184001216812258592742300736660246065138611163179487383458061454905809643560938570755691304813829809478035750623558313098231983324782215271711739075232123011704419280247389991618520705077639909459672653322146613329939142058608333229422656249676695349000961602482834331781150357696835260016588565988407059664945636167512394710683621098515639353331482347463498019359600675670177142867761393075306124349890406244310667225051627193625786466491321421094772837416163618643594138683783706218607098751238731179401493158905336210880678488929923272272505730154121452209848226022088754209895254887812127192950249086803862722372847721925087334597161680394886143141261710192538860367590543119979716340999654428866349951594484608264317212289923757066045454621475961592784275201065319406530212520431889927976938409053497475681291300488862145885302506992131596850495520030668324317908034879786387310444609706224268255706505241849669990301440952444571818749434958222291245941797915318813145837043791647983346800103773752104914629089772175445532231437142624804166772784013938348153828432353169929189810289062320883468394719953075652315698293973795810408337735472325617777529478023082609875718921549548620134274142934562545558946269886641345882500097923709762657310424030701480107602619239383539854004354498329565612410831100542219680956157757116884617462653925862228507989578102878850242890711447491322295473336023901938529346193601754151262101407351504652293827857269717859373753189929458804675387256261642174055239229954693377815880492243355548415028216289000501356300297673881216659273674965683883936624232453463846385382644467990008319445621229567662035249081913572648056058106764513475659714076740634978560239438631642972010592113130610429177149914482644438037605742126082871288252150857454951558777132608449773775866428884046627725294367129187544805083445929674660553939469990335225516462615065788141772441891392955395177923342547137007097950457778570003268874374677256979683129733823154893278105953948584896479124375539325166596840021488647760801854506487453276999490320648267858260761562461262421406127280807932052208971923596246590986148948379963272414194521058138192410348411877486402166890312812532254317669656432572217292951295046200758996740179073064325635698026952813581075983559013042209191055212641113768103063959076443801719595307288168178119714245660747804078349897529921482829690392013998566734226640578415227271082103723179937288583590127969358571138170912961605953919569615964791749542055571524049942500169680810981294237539647804344479273066321970528734094943789490377450431922497576728367170806902160719075934289620516805502954230859089504506250830609866229546573353366904036305009753786198491601643598004370559332709460918346889912662561394779089199575986217998911802339198603679459596431509319448827015201866014226670665656656365729337178442388345762904216594698287116613807937526440893262082476523470709767055553377300230668235499737135265530851856232766449526753000528129905521711608224770402065531711996797043524303043140080565578945453986654107130656578135647195759514680409672213881342988119091813894372054136280734860331312597487927677732341681021264282253012146894623567678239541417032965733323956816214556621308967886564386387056473958541262521814360277356973064816469049098141604345146577562486219838853000857832618374476078737373902227245711146164279079530409964423367962677211906412578865481262362152167806336912794891971413470271197641245757702663134285690501407992316551365057012995492484724720653034242444791056966534430256108276641507908921838803864087906195817795949928446427423589246370918272079661357065685548560228635166894221403090012855489885049377199507703987373475987227597557083881927573211876414006451674921161670183710217752511028117492573685452057677955630591843617072329356082157721733546188499096538916089967115382370896870155030087552845498620994230613545299020359058535845701437053985044255041678539843685322958418381633344233780516658353905677389195432368313677956273473114029361999924020994782103290887349340363662488089657618500436590438501961621810012394541564424470989531054291499107151289557630576519414171482248935183516909273326568667758545453105095634671509958864217434436814123611883210242258688291184492262509767514480553800722825908268888457294469586182026023769006390902177159428317942511187289630301175530449597374247309648883823767785084439035577693801321747093277905783843529967086609945067059655611353852573560177391672389824419934298850961551540986510954037620780498717402155869960490762100529752495414006900124837815542090594119983832041440198366385230435442786302675529687391245333975544884511683722950474236281420980047331650598788583825398462730461413905023986445285970979822785666920639373138156635107036176000975618150008185236446645144550662695178733407185414712829303630046199590177489182943475335273733468880291802020166140845984761473603909760545866966584196980826590393730717444736487651201202937557116786722919923138101635594272237210171897476857492014603090409360973584640013267693976968718111048601745831810934717452349795796485329980571350625858046743381700164653900343356318889918620554532493594676372680461283065076434135183918925534145666467348723510356553066260979448562219468617101881773198854748598369364293666449087706449413732327316599007487108457484118543934408802686049201813476501660413598675283340470900700303611154453514241391393444467865691478047269971776443993399005296086032457763737794396452526889985749457916149820120523647059664227346186334277450119425431660198394399070993384426617507349074472854876405235672551648782212776871206838953454385653016339888525258017623395708004285176856706420018334184843050088114898215170161833481320879176455932703578815064960710334016760318721118596177577250672107328185132445803535134329969128834561328181662179867418853791276811570239022999070901312056842280562365735367851957386552222898209807460331443860592044783487718527267154056263740306842131552238172400227388830082027167865111445578904934262201298334613993651783647547308951571196231762614226108262942623964511148122836600919502417250916814322576963532354043332298505955389127721499155482583478768943950346321185908724406765585318445371211033482022506490748469128255089441238959773911220739860030553252978486194655619573514907842463020643935818341352741773735726811162942257429163665334554808376163125410542787990360227445664600364105105447473982249505545299334191510531330003724982823393461353055506570751991048221310168732002181493819467383729066563794756034416529795161460462879340476406385589881948503700118030538466912905264156560963103998007465041446551339349461374067500448187288240848752371534512562270117250913061671196081378253389661019788488972018568937199532854982961129908552554132179976886915509674632425022653648041310749224809729512781894769648627494121734040484864760170428685947131261862738256620855762450157426675177633961075360037730470163414100765174913657444941127859243565852601322642984277828923799089865905264989959696433377352298149361170076155767988532807723042638347580738882154808071737108942488254706659914062690528588692303562307621488067591158054371939798701153980005920628984469920196949119045733080912193213497616674659116893447577663185461629231202172845326679878982611474078839262006788472445244011859828120685924470944513335089654068061082573415528938786758387030903302703193045125073584304146586205144971982956743779061391943322535750047568204588762092486407240644993970716796795518424535057183607939999664349002477864866240354796061304781107628626190212776242431185011505716985506598398126205458564196978256163301367315476762629694317032811523724160636162193765754051363726180481501340425225452284449550606272551660898427009003031437315704359021184961000744402428415503759191002998874987838393359923213886210462077429214794159757134622853068163081481898070673904827074728241881134688038023261920071136901610632735950605617990626881988526172383274427286571614663125616343297730855627338004335503393730489011184707343519088678685621856567063825427167478126046986524529201252513741327558420607461127079148476594821031408543112315893882259765831145464194441433010745946757038770044513837140686569709537729264242493790921004221454705842676086028029419319379283649260207729149099326133609129076829652138086923408099695971669451923558618678325755957279189228629999963952109565875000053947243831638942106917205457993798846063674900267842594538351826598919196741809672311868447472513297729552466773637722924932644312432671034498281534281064809529005108474997801048947814923001004258413585783475213999951959069478306166443900766887090846644737189432127352625189014381880674505968753076742014708621801801446130578163552543191795513765899080432992061772380082097751938026781911026134164623325399353909019512400634697707377408158216961255317552448042605134258583015585805066585995933795020799336690198076058467565053828360729032042956213777306927968186756836735214136924563279325862424931884887516121136289175826721581792664231083839330583908088957666260023247344935817445015031425681806062021936809123752808129071776468472060559963686665210171051098426980902870467006435587176401975773489249971878326525276886814476091402133402135842615692818441905864013850011609036462195154009448070011872057243906616490878911838010548436214358481464430267236339734779863237984339320451267464894792877340116947559923942007890165487299086469259856670953712253258925015345786773366562080209807258105257901462829602863632092346267063270835843073052763928923215842534180066077562062580901711814119256525070031716728961764552277667779173227072410540422587593298947331971722211806421772994834533465771673906246322512229070616107952109486237580092687775543673713802092279428200454493672209644920527190014429053493967029534480874543531287820551146669106117911664326583297834701690527902970756672456544993814527457821466032457940195990428710246401189465599660521300465975228202816058788327141499398938185772167406779072760891897462601334349132370907247066835381585690301042643802521828614351687044649742991879549200258992130798511081351928026420889942589876790641140748687787385458907013550621340357433010480809612491491902702691711236771782526113048391285491500652634956373781356449809386508094267884140069401007393665752687001139896440262104568865390431850620255582951104807352695980574988792688070060321831216580676162114463286054924677937149318631605126711467195148984272773974926358501913857420453243538745066724762612168793904727843516122864174929686186096665030028547874759628579203024552810092228449194317300180985441946969792637678323501235969110412194544222880586544726300594782198007337086871519500791425933595755564998431716553203949687508490787270374222122101710443581146541705351806383714625936576537892698974365789725166701292053271015482011481701305468419512378544372134591328407879419140575854286389245471165047511314122475010288029777138886935387056302578345433563632696985764657315263455423969518459585528338376781279435080329673884606406120709548464114966190809014884422725981883269141437763613430058276933592509536288522136771965516170896116434885219429476219624455770547213099684892347705658266365189344943226686204043499103819155764000820053323379536892065274346727286184188422586425731335082897145475016369100752485763837860835884255313599967412060147565476741443081881891807669169279367548208429936309271884951740731764604672114920479071623506649523323342835353648845856279086466412509427973714116690554934157306242108491602588214331047669246301908614926874715618523884538943035774718892822805354492513256788427485984188802045483476272514629989073390820391326122780368832811464731651849602385708143249340631769225088048379106874025092288942683521315858163797861612678898593452756655758408703008224997893720154232905922871369729770008358081273773318657184082011730767137450243891521326218656781302283234045496915967505102815171697467451981084352743088346909930531588005260627094499170744851663222571305169070052368269254370281252131270159150200479593488201120529123495037483092500056015609703606951292153217326534252356987910539344894372605639321570306797928418824853954986626769503964879751668053541382079820091401283269801609510020013337931694112272892489947776079596751850858226650826027209087076603593058018321689225279190254243520990810058753581660022672168460209472954132303222831397783880653448827110972766679351745492870479540332423940327129221957287203853143057887452665214261908821031933476394866291890607151918714546019707820279929370382450120469354691130397819873563011420455631934489157787412871220560582167754869510009775655138411523036527405741699277809932051481433487933456705397650821618912316716230121762895329209958434500737246564122955856458127518873672785458027620434459569018083234907340904196504351077211310074260898478131597849845262944060256011291236829599362419442398492424172569266280091474029290306355228825684318334650712488932348690443205028856617282169046951241562278423478464196033392067977906388685768419831174300027655405107079840518911763281959786059162258511347270740033355516095305640031965803462527625065573678526127133436569815289245233925510912178891910335635442381770393146439364370887335708273997404208172487936969807345442043095559773069291438842323546086093200176582233655026035001627842764823599762080831217571584187647062668068376642300015063730279918579385603640080171685507232239748866486310664577130154050903745176343256211410915032840574706652401559416314504198310241576062418409724076171739163311740312799804999813814316750797395248590838768629990335999786748979651322446862720705596606136846156726498591175753234006750064547558112246050862287221681621241206957532498122510855707358212783858748378984823546607390571830756940809182521139775371646670142824955535863860524162585219067229428368287933282420612104042054289118400536995839886709494265459437407563103557608235257949618254265755893129723712675278157155054130051649520389726511412726323209764624397148975203639110846195288850105918123862319830882524780675442932213722461533762387671199319293208193317756274914721707305636355975581660017340633431511294574284436054233924117339584421091633610754701157590565171082097384544905640975709993425342198716408288496254125733835506765725255294891886121788809078425422535912792692427275976072237760640187876703897434659150232869238024551959547141573822663889235622202286258636456508073689253241288149847373326763348206591158899335732581677674525839608511320921271808795951015251564866402787529691289831728768907436367783488499945440757745841786020156978498542081867342299264117133766395368194808725534735890390420915925410472368968981808210460754523803991874508587383736591460591387829830631102276655719056336909382043998269818591448998784189226967622653138966737606248748599296108782238164725198289363338556420168017813820150450859415315261734202832602678964131549118365640103356558771957712622780081523035650483927645458424970647593226535800416421808974584882738659212719307435488441582512545487346133415232873149568219648355217366138665124507239705608719402139811694644910140828001647268784002052742924836695097877630449564101768655421174924211279678965088886380376464427829912703634041536668675473080999264988225736945305181506554307434558503012779334713100593127418451968544952550635150822670505173076451632567167717548383201201627278418455673346648461053606107940474431071515703373548065402997199725982637822620526133066150739414955223361936774020903562676977321618349129226308687120808659115558956453549461368851466993613727524937584050891760971726072986078280966071778510129392534648552899939439268988952932954247939912409952168894232635848262957140296790690827008464190543842714934291084529385731497099588241830609243801083916278130640299314929839556880961695479898808852162476437597836115655132404171188200232981873058017887565414591685165974642797343056765413233649177180508175300641119801846093713325342761706590222558615565103957632725769270660257146798663428476087805559681148841391923947903686127024951618565294286603470760559658130514628628823230711585004034443840901073364680168504773287603208268097522208246617657202768260139841631063117268526148732567956941603681007860694118021776274439521403711470354311560912501677852716787154883591967012244250478433275786651799075885220181525381464408262124745538750237905822647673283502321139065882940708099845336070508580691897919524536497250196052000745313705664484084771613888884962729004049323958068769872803976928993589369326778537477039201342603131205896951902660674431443689398090639551982734246920794709442901893009303622524009765534632594451205850650495506181549454035992732171937296570493067200122886774829507310439942821961814673474111934922717529234699695087268615726490252189958550674703607580324220439384547186644468706048875666866088719618522428944260344027334625388537938758786161613876718211773380685614225138394701603306284759554358313359180827530026933242227147892638811352082507356698252328853762118389571211695513878836625945940944626014092329957141954894386774888035124842607456468532034049764352477823355446800451757832748490721263219182928924256844571092522515947691767049799857544587382571850034563513605095176627445388901409512338970843094649949005314956521111169799775918749202158988521369689286008081857979409040338587569338508731104671350229821866623343942161884551388848273721901024647600829914441268577461563522096731075879764430746772863062553773472811859160953080404151225557305476479190836727010584226539002102722300761453053080652790746181495980007407742972593027918454123881678855793218958053888740634618019294169915525642562420252131770648077220553336979671792940689065335596323889667781065402937279080558681050705476476810488303973130364289144373714188914030269474599627167286693188209765071258710024911330972220828964552414730679470001768202226531431012983442145087217941912790473258838973899421880259133744720094302433492957354175791474566560114433859027730062479465612786932050106329339938362474361354762975519535279664865671170113851842838674431896969509749914500485369199629330771564822938393523865966188175031022911402317339905258266087558514373471497621182945205242617616174899948495016388483621022542783988807590972766588656174919150992755889779269387100994527191154614503959249656660934575096700532036122327825385492088601809681066690485254187508506528107949171168377190121930327151662631645047918391204436787807094806139912307075321877885849203977133573692948578219671988596988725776895162788020266688849248586101107219657625129191019473243050965033144388565738211208020098190592983387519356640688232531491440230274932289713948152072900581190802830368843680023521695143244556201279885295776632899756138347305281157036059276985584077297376865324304717880006212689060685065435708528213485015669034813292845904823953235333266632830840329843883851650818627955394502260433173987842727257426436681012076814258755251568450924072131047649587593423671375931544274790668645061773689420576233066699149201330922901512603459098182570457564530996632111919532601544628802314906191724973509889523425293558974561154096213129866303769527760384930342427577005772745373570299845233289769085400020244669509139619520011735212202477698364404552811773698630968891128392171174967241888945863109806928229109148035813319556425027958684966783855353111333147863153287767292468222905127485664265469670643048388353418677803478140857714021046451131443337216885977704784339411124085487995718999438520367876376154732628931577461949057290345594665282793810396398496342365581208712973921950596176850909359393400086753280104814665876686266128219545032270106581510900830868922566549589083975448416648226471803484234089822255371638903639002624637359417935978130787967266623273863547594687855364218991865279813138585620257570835711319083411540979519715951524661233253941699560494123820205232464376614205955902704422837887956747706587967728610084015421872351114390722720262244526766412805196688119036289681540785010140283964901620856050565321242328180774931631203805538010232514166232815484018829552960219941105416547139076172829440298644500257369144080939303750856932534073005067754970277030810470427448454010119707437113733665110488737301040187529717634979752016181085900185740429681280693329905859878748342091392450635175047043203634367356992316934939480877507947259549957161813842975490663283996404328223372696485511209436040976240120211063794528875513010917174706294488536857380138045179058075068819602904077948627413527024343610267521690738324553889518735936242396940322858267740033809804763650495788456243228719632265562045591837123462485428255669791086529166267832279152169468909082707210510257948711031975124994645004503560652786582968353191261530512992861580135584925481903941281122936957710993625513765923858502282783088541814263444238866109883961151940881904807404147714565840090687828649740495453247539538642235584954419606328806839487047670925643360021164142077727984604735047634370479767300599793747386077163509651234829701938341816057148674485235862194438115818283976107780331488508671255646025619584006654724754927333200058718537368475636396299322480942460291010050431505176338410653097454859571774252865153373100943270424098318624908817786186414995673363755479591426063108394983018627845468794958413126288484271098182673349414014971486991399334580149229175870705317246125835994355283058452673105811743296884390948998273088370136120942538817205659276845156769501583954801772195438529745454527419567885640442688454935019568670206392940970255067327130913682730185870561225811186003236550058499201353921898061012659670449943676921964285629690010693845736205449627234417536678440423893936551656144067438867957443328230282893843836800816254585785124056479597453507950998212110497637413770390948095914129541168929797190467613004455307005787938647912550800093860045664157851511399319699641253806997168964180589128172966468990351106494457172358951805920134460299337483697984236189637845921390087869908437842327410406665804201055232247068095297269290204414083000721947765131743903497891497093904840109967317326523989666123410527001232683224746342158108007092992490536910345217222100636737557488375427152439770208611506157145348095439302818767905404165307270338433105507916040596660806365856937863649050332372291851125668091812938988197587094797308457218174806023905799576279241769566764878361794638750337803874356961823140894251240613928552127143617959311702164160535589415880320365232622748188386080070344824540852558742725807960284065255968841240150082936464477143568462140637158104720699538221517254756525527723044890350176317971824716123299599094027543878331249616301049727422848559435265352255060283324812488580942353373805814461836819076796756860194739503922964597657228240188277030238768888437129729840544412400371643308896596402167864771472098272157794197090141961613537783734076286120806472213189875510195889383385803451900562161679221829846021987322618249029111873296341324618794154835408522956594376098458612591581537639260096928929721055755967836668803377759836954077728747722922071191021706752701929124050829130216739511129283348491674907719459755042695528169074215389423130830265256370313251961051178045301180448153209236070298300228339334464675582913533474925073586855085289394274986890468040648271302181378010563642596708723633447931082742829695456475666356943413501593238005155980778385628722090107682011677829010894665116809723153430958667219701048575272769208740600674858100254776847967666124429854704071009308851953046164621843191115606004390424737795190111959774829936875735218566921496801824922693642394974011100778985970938477750089209541194343489267635609283572180045702856851401774598468336725844908901648292467086002614809809191705661275226877274988941467006901605611610675808239252087746977808346884642541222606445602813181939947019599759418230689697817444989926175201094237519006172802558914487912590858804577459730727919614844875738402744758969242018021588481560123901314375173624955041918660881239526929903428949844163717157591871680450467742559278279262999375576063934869885962296874081026483729461396672291240645709040890091059699373875689073098961783279374823448499240373058702948216059608120100473808437556545494073982166711530905370265420206365991077953892505932756356438466004664234145646434312533764001973183039475173461932824429055922217539897902029178578544137193238248838817714501741996775851821517533661527191628688654691705956353769441836897443747606082295611736207410361148061901519417136483513769953631992005062500132127901091933543389264431523478313366511577195055581220925878437321060560908099441707609611427851005400037116442319123848696129108554792658105542341465920608541838562168536499643587044352647532776644529835689043896059689845890349699614182575598104330993564667729199950570916727549861220412902207821570865523071586833409683106664702609094881584456152139430040622797525651164575700586165038021768832086986193664054772555444559122901735725604306943305357634626368859694262133126545226957204525945239835939948490964180781937743896350491097548932682586088899495612008341480681863963385567680527647900874689292703269046610464147398472841559148990180722757688015246127902641936260101105899869844490873176648129124930067531610423733011831449184162184666823827980095732564137775248744030410190013740149328526106186353569089745878309628550750058300617251406309997876394703602264956330729251802137064142670216876464096124402339185880407661951778436974366452782802370244708326703644714406747348955044553660454811098316399659560914763268059297420042436738658561787125689304166093092083946366732907701276170937935241669330281057244309654816006099141857531237060768352279194377357153681446918554110494185576187190318488036064586483018020544923132615286021387829340262270778985244018458034636778649579358031567665951997901020879254904722115435446315542020477266863362314575779951752519245865531782265112726593987947150209355080508223059887623581741603163737795310023885289918943872782856540400492217085808180049931419658436164899860449796153684336428846858302729721636210376832038960154399076222891609141300963232548929953742330439030162025757740804385882176620090079139909904223965886689068777033381547305248026430549372879680079948523345021204531449951072592520458848204439729706004951847039341769853720217801736177368986264395124810644798374425630964174867051728638523159502744933025151262611909669121628780935353096174947781773382776927047415062035684531376245397097822463341682956799488802354777476479740937350275332950500457949434066413905591453462883431752187390153000191460252781808778606347879112940747387148751857100375291571571700563834644168241970440204623454045083087551057441547473009244918854208526661652077514419637161230072624334413199622581560154126652055581601028031913404830016967412574156409421129390535182926436491357365011249344675654032955247944265648450232554889434932616690002399858761152895632394581257920919121539717741881257875468123012689805953391151150288548429696089331134565311412281798568503885425796715394203702136310512527619215883444400997051522875337561382717102432572523505267820023487403901042476267399611379669989266666592233980349974248455129388767619004244123199282147598483953710991345712298441633219691466662816558078482371933791473184330256074840294424275095099003817284537359967201114965945210266520784762462538799878852377076801274999018967524007067137979889816460715338165937452317359273256407531507810138908771167228798179128900231795680865220745498351965559760692011097252592063631752103960382811469245787385958148060795838045043085069670830416941136547906595334758950951290163350294094127805774379533447871728074561404162617860179881536984258238328891712773126066978382611757801235826937532249843395797798314757466266748142687805928096180260641394804406191003148626965217064825307529979193511410543849087200439170081229862759361483295678756135654574489575713837274564457812254105912816987301949571741070366969048241829240526505978141281609919474036863070485683767062137452208062513694860008299108275406144881595856349742338482956958637776674371613739876241756646926186592918379386005937695634428328920784964940092837472841797803998054035395084326606896542186840557120022424017819397404592781931790527338462143675280795494019614838027238605021182972711530037917730428370076836219123030464094386930269804162625553820312249341186772367673136202936831444056825382273452155548773537735792621146763245615873558459723394146978755366690850543618309808979172620068939312568441359007175168918618516661840455984752681664012915254600425936873767490528037853951279079036722461219865771168642806261445517148635761618810291183958938347225224012352060489599953176815021821939448770368898697282668607475620487081739722848130684659593615732843691836962393382998913091166281372628924831301720533627114011891135189907231867337944986759157602416399470563821168267065647830354889398383073647892884394676138736314248212784519462353193423766060034045588041870098893030900987247005737428419335901490554719754977700609512940101998454319144051946345589325655161478553258829659608954648012350200685468616470843912079035056051155303403972686023954804134583593229087147107851207655221808746436845693340869422441988594375648295445086099899552660158199153095277701770937174960208310088704495675974407671535247734724074560210495132759936765580240157047711673582409372911641827418076237618071151004475782908691139352530390031715905126051369020945794289215754793771479164794774681408897184301537307371464852436560599608717653877084051905210327733311691068176718288201185744075034316072020350590153029174916253565129882366121751506781616175150643092953113333554854679368326712247676691122701234764503506226761927732332049857724660578529910988396732190669701373823486170127350623916818530613444609681680673130153834503944865261598178975926602810295264638543722144376731167640079701300768766245665539628420592767877330794710224639587652777437606371301499659537900651684643570944575883126951852123410586366013205474351404354205333440254416240671487985897535480074796101254541055807108266866305771523799097011506919808537553507131046603959041844517779400944349754242890297305300059952800428331507848159167201885833360704284802219478523527283382187711908538021162437660531393144111154834843865772651105140759925319046891977923107895534261264280108635070625432447004765939595265499898369722805010867963492300111322777356310028235822910642269275835242179690001056740117820488553232169596803579961714986976567544662874676379145880405909431008425379297697138349846527826660429352232230944686183350288892113809755503185559291251553524193273829161868199794781804759870299285511132682108429912695607533148715447950151834289631611999570845901212259523320281863165368142297530442300536128886002096988387018263023147327852461492508434575131667229106899189133327322003680287848403439130168718120183247731340715447646984780347152319466430912552807832419032815952420120888126991645551700160569919981798214541327942010347590652838556158850234616207006752209197483755552782375770366952686058620766553806688013008699894824616624364911308544773794531915401398028285235547704767223802099806154194544235611256390364107410546771814350132392952201772285333699867216703887886400733633911582243515452569605656245312019823971946477329278133687612793069686788319863508782288512894437717567723212037498697928782260909983321448747543708759576953234016788794815069252245571724671957103982404627706934598218148747172430442883645863087861684107062133732946349113074316384293528222899596781600699210311195915277740875745080372406500650912177893338180811300147241945521380402197886318643096215686419327939208083872363875448373939881629399180072314429391892522310884684797608204917140913344184369526780993476762374334296197978763123131290180514767936410108034085755426490222105377520832143178962331717534437409669426104373609031245087681241801513657797505035558297548255936835117602463388926274311968539905520670257769985115893897830827930467964300120143457721336416535049387577847342451629896455729219590762283418977729053429356148668607111626657996494553081694984017026088534067218989345852172228756019700679751380774200834887709097381756536107488268467084404375846434626516342296395482885191694351525125245194300564822337382293769165355934925121460088462786853046078616951484083987706686083998556855396386696717780216324520361533986150354226698115746595521692005453192269308572297122383683682593340220829805821882371839478695401840971616954446351785659640055192871188410845109914768841605221605703308129042837212534286308296890422643545935234505172293802702415322416302449714449619253379853989022113607162118336375238360176596145455373745763356558126765023780746037414460046710555809040244605253206672520295634166686177877266266533399675986025618247236282669304784189974271881097581468752166085858145329611105328215607255292796623702736247578762306969407375051055540857277728061777686963592355066470403816986014316747802875906747558602671117237321300869089662677131533539165961274610496135462999243853157737094650947868298887029744597394519913874497815092618994290714729514174277198163594165458621055162380306163523764255587172918526542453525196023092301813293600192097476089436944632838581915934813050194598369750661276535928568338325025070159519846972305578118369293313141456792543888473049342271426127867677057695398615205995509259058253416538519973296693800473083628378567485207536026822962548111900638955261533855760830378397907655871915528036595884623083201299906375018915184385644797082458411634570357250020925903943922810419050216510891161925496659500926968941783669548529213325275989553023166082174240094169414669828662459624627534692611799529026821025638024323651490384788591003483800476911285142770903045787286919414856540324668964706835520872381511463616811054343309220930264157907923797844406780437015669775537672008322637385122342975626920318622433763507844020939981427978461849633658382904045916074122946386684558830406405785982348502200023054969458407750962952925594373905876419990592721365219571089165217027211350035155467272664274599857703293848121006250165964628846367172667173530532634683446835404518334339234615175159504458367338875503781137342844847309107888008110834750906592479707874687961607970284235567897287086216601908606902697484187485332786277225510814650934543047201543908454632284661344044408727706481595040159917187618945727982177525711651300204226732470564800997099299221624930277093555368405968904991273464862258407271535766912877043554016140116764498645735596094153101284591833474301523827380624773945756698553249751357681555045832131657266640446058769945389536390746645206031777884858098672021748552237809224072587554352405077334249715373114912666624200201628985688597473630834592982478854237327122638959778190044226492402567548018061910018375681310327916344602027423235566419935601821381830300836493095734878734314947665036644569520002486585087162035165627302638930571392783116696432738423166923833845786869749781861005994650803686258748938856592408384971338644200473251256613712933377561664549303637699576708744970112614328068954579606041640225562314140830043923154055814112185252768861230908234044915124731923188804617837702232265483379821065174111182524381343132091238290333094023224994792328350944049021801227719814573120588280582094594210878907828531900122910854027519976455640013639105829093393663934222417237201094765019983380571509802349045786559788790531068101156486304058935316509290930088804472805024647502716150206150750941670633769670367780616800778555691749167572801474266597757197059605357996411826628542832310329643876143867358225801768128720031596623122322747936202355695058267440737874996307650519912019871285315001522079371550330788244918746350564313384621098988457379895874571572261431965821940747265054031903307667766550970305039435468121007706046308724012473645592421593922601727990316353595527374511321897819775759989776812523754373682380111680339843042225167906300162436527123155825931230118612794468691825101803429128993667880574855527499500489989877950241654849749625420916779713501597932091507729784016991691375194277355105472851143160959141789395805765232224631319794584005844657691516724507407906074407330337402145630838100042931501095450497380962448474745294775873732147883263286767575732405719061266742361238087370154374709263856869689383722574977617039373817941395819132702259329765189288986790184311299910515983192990092928657895181432460821654555215960269538977715213192247758332790485082391756628770132136187885852940348082468765574030362188757388693032068612427362744635850344404512091760143000614987389436186238586799583059865520905596852828954628345308703194343867939044332150922344477941664957484879740050124054692215299432791997742997193912682170596814280257119308886052248281262699309958617024674330283644292810914702191105842158698313843132309822087594124863634417579780906639395839690545303910455039777777484304890816052647210917203518221521927194466186633764158089218853392626014259721325881409129229128777514292701017052322508778947979192301995688831104642213368310258246052829145084434720566364603817568923167308867247647634280243382627877944238627505023778603212555053889995679414226841840557269609842470722454696225508651522013561158514695957038126111112637992656863868848773852286327733015004793395640496316023448450410270947925353312127863979836064903626641636063411732998744567015967396818249146072429993510512544579702944829197760394582716754474762534160583125399059018623368748120708129955927211134720733083369784258141797366965741436292016450596504402729861045641240633817813579104954325331811702072146157013080455077190292525808746455920368024124693544894305520750211963128587374250952358245020416868195966266522768780780529905732402770174804477670635789226482220471761919830705942683794780046723835064905852905512367492371328692733635414174489083120443376823704683875387740596673086239798928729863197256099499080306735312833993940360144757150954901323885366485469928533469649395192824026756641454568589901452565465423170281693234731376119735592273144696710024988286268653142917666368541422489685551160668356491371216487758217559778062742452468469861997381319143573337579616986350808371568971879954471491227141115932132143249790955209576257786147293865979143062724709953435703704685654956259423925830960566024525075514375280975131210449385301397180922666082866528406171500831676060259140066780433559793723851645531074433427687756849265324238065010291467154560667562781098967270537544073005887347199047919406615646788540008504644263541826363590886780784762074730446235465992319239263228367703583941777916352092970076569630302418605252658215127023490101010664420785295026405692203367273950306871207084383219804128997106676619524673199658619767753800591393919757095146618811270952602293263274740573922168766537131125453954899341803472087044816965818653239184833668446965457870780919946629713174072878812262390266891672482185925016370320183827962322014073665160418991933891570036449703908327200864906576484229726777407400394043715829600888185123647938085127337369115181451810536167408008943023019700197497706929249072389071457210673446422351213101831178586959612367626698825532234989684851209841589074271823712237687282308500078208760713322120863304307190871933229162560648234917875068014799022585123714638088155010849931041296237138543768517233371165761095394719128107473745733890566544837162682503696645460813850053795120232864419765613214139544495073556806680162127558938043972655112306416291136606900153492176641688860452379398986495751724803904030328054706856865463354460585890120045858364629475679955433871770826085975069594907999247863731756878656640161656715055922458253653516086984241584187578197432144670016729978648034716818738904828219328962502776536667607161926046921801809838499241294047897374922160972094627490947080863724524951046994410408278916969611440318709797824480937267075959297399647263030542598471323293584642329494015283605965606716389923007112694264128483683545873974207769323865151507207794905185893347042033689481301550010085058259879949989129325494031824184475374993139179235281763722125651792189135336564211323883857026301451934876647444766241550928954454172719027656741259266574122099439347614712695493746103119129121522566068501411304366509293362881257258168237030269185243859195474008553171587058638460958833901908874524803625973619643207917113748629252629949226625676406608909624218011023174577394897506469572759436753903973808107575137481752267235703565511473748001670497642164575875716490362059459798666167967925688576701474416023583145217005413270183472310337957330095169160364245209175268920449916515227882236053671028530139556914167011115712685781531280212212917890865824012869279831923313728022206161597909734510524847166044660864225939821296165589435146674843457744662089836058230084762159223689100769632423536627724045738112795450179888573881632869628799737143225671549103925312671920910208004544661798142514932001002169375176473435896579140831895380140048905685320993237947322683315763452650527225568863255343949277625680179801004441953615819571700371481255722763875778167970242214458540980631654769524111634146719066391206965422116028511362982940992857189193018875311188748852122348807735169050235120109873945324756167020648977351394186492117180791385018866272780429404607522673050337354232049151808518784206061397590902234162067545462945013532747570666219966065796419232574760882550987996246048697544141243129616210529517319434918268987692672612945366943819430574949578754614418657830644464384316005881110738805790411310537807037339874255747439320837241678008610496106721880289497990285149601923614473484200383973127378569962534991426600204478534795735606446794145692322295382657522634981847948972881243300028060676732575647097883634459024294289919570024424969622493318484747381078018333133232843351066213988477843880104358746568781675049209181068431074277893118756691832339912014382253538321321022883886922956761285282012541966180003561473202890764899636524422939802817523727756396132844501004521851009443516476287508971856095959645716909178396937411445750205559145663370970497924955610891482071721218794578010788309991988465049373873091428071399252410861213958924376417286402803451786699585796192463317026205564341350474039972156096891196900122769624192521801399555302494362922331242027616933643974297269419574854783768239376604413933449338317845273680117600492128943071522853803701439040208565804203369101009934086576399188020269326307922518608077090836081432663137794266932238684281114535485939422890259790380798507259935477014283393384358983510942740231457575157743735381240547586457567190379601293620163605945234641889108607778674450987986126980634684860645412691874042457859632797966804206898552399122247247239432790463204633528328509468760778066903309782034038909217131065764916435820252595633027590010443526862229492703864562659129849932467363723123021567658717304501743550961802891178807760354649295156623101170596469617747853705982377357410031404644852851283750993378640797457190133463957670217152595908669879774167059088012628124520818963956325690424420858315875398948408991451400868535611334580086550668019540054250949969991543707012932049135819253969972138216226839252231572291698042765839104122759256818066059273035763440470980264857921130728161907361868135320869436549228012448992132428647405168439770380175875953150769246602400563382156555703155760715178465405784979143179119403178548669524885019231328522592137469720154640532346228161658637572194554497395502660143751145206255229534425543727336080332806222988434119162445331823186255243678759465760158810086702095543898151116149130960935225439167051281807954859647871386832065370316597614326820975755738111919149451594179894477567234359766069303339601553390897493056831568683925138155530369206868907234167712891176653659814795391865665739907414690291972287203543129603244233118228446639815862610968082053661488029387097588760042455558139151262189931254921205947264789484520470686351496837814438296704691835581312413660505890736078087421155685866322143716935786330844142950846057945580017053273129338379725694024317249819275808953459502131251643906206780312278171571338673441521276918119006028054436306074944005567565800235565592671379981763067718527908005109882830570466173486187172223183394624918139518142080464367512799414861982822139416602544867686838872546025652637639413925855126367683662835543430371617574520235749294879258559543363102035336137449756564576242512385023978470163781234566490069799180221341973548970497520711373073402811117737836283132020118743001840074662764784089229097495033935846339081431005313325670882082465411858987713622988430358494983061033795796526668055009616458092314108671947202095932742727449984870485413843876077009009837702501978031751639940992731410003435332474169830713435821470597011345347213658684587587671038147590975975264766042328199971844691599232321472376381772020932352332816766344989667998423984768343809751321038814063665347259957139604254710452709407476916433489834680406673628373835042109216186952251050788157001011786105973772294184766336505707030234549416383791494691455790714232610522875999268362129397027543747053674086580240689102918258927900472694399327157199801667268111559495535880200912411047678588604000428361611627403579336697109946330275802733141289146114148348016410391019217043264675519148360058727856157567001016834804189072015559032309085113866243874261495427809534195934545152458591010694846876403994574854465727261206093148932968742969695376097738150120100273281122578055004338732396502005835093485381819762722207949840594709585067530453517050267836035497687409350012774567481492585492451187155355565629234208451186353222240120155260478237839293968726633265975792347652819235912214333661404821607205164718342325590854816479024657216646448229530362847931558987577626135702672528881664802118576275530343051075539628794828691375542497331675237150800790080506894889745389856405705445183921448476974628175935210215292641493461526904276168242563191261978998699440362101119370545863282212536903433187940558385944294403093118758939323020871055633244843221351719791824774023365826128856421964047722754838458856051526807862267613924953941805655712518837629049993945310083325223160266240252002947755084149325358001742952443385475104798027069233822945024895744956553679420155929743772839264065428441518559398824556096267056309007630834105762383771295085796304622071706900627655667331492999031753504485337494984942248814014941938926112735390445313795341735584935059449162596763923599566764391910729690385052891904837043073117375617022011912738426322944932720662567105196092331773694271364399694656855841452081739090495730839628733048982474202464840024140207682549452754043694612144670948743794094244982007737831210903653078947668645266640757253848077300421014352002142717884597994883397482192470230598895653402990303692099136930571499504759633269735050707746349555122291086251419752493758336926250156427555837398561903195506619175967591639037834072530816940998371339581742734576549197911621214659247296576748203886023707778256837899044128442903554854267500296903890520152779440555714672470065139833038609265323380678545419452297673068024980423075152903346274216633338144527012589355031846465465650761168015294089369955662211656576090588102135794927182200516869213864183531412259765245529088603353040679984529508691839236286620324983276314296459496725895417960183433724718318962230077190889225886327592298697035228067394832998091272258589242012142775948533429290306564722802862355429742978293904464172791842203187467609679668886691197958548323735749088166204549506133593816039506043440783110837844656718156062456868344291828988784965974816923722464226574201375640654490950143341604187067512316275329065893877498619238214127770867849742333665853100922028108547484883621207802554867511374442311074859607352215929367029353380196991416276124252253462088143743529330220602886689135345836879944556725419428029952531794839226291410413290145775452051062547564880327465053218689954381439060578673507551037026720407893368467900765491500437107997635279571952021283922991252408204071050374850239360193686790698241323565739383189663765834233409308044564149796674564439119567147968835607039996624862696680490258015473890650981074340039655708152404295414624035992414994593772133702529491818434453577821165628608285916959370731042684680732161074318262718319841836720915577396295656986162786279782345156322852568086828492220556332341356903392144775261720375006150163220655617542508098957421468400194053940249712325951365084260363848973189343516978939234623035045028409868390488480713907647795575292952004083719476931762640388115321633349739815182521235028282351096723774902875232515040948683071024909383813601337142603704958115931596387178300742799870801653759912925672658602448209632459439593270410957236132403746640845616276667700707575883318732980952480154905346022568587604840894446150774158141019180633346312389642357291747016505118515244027455507411325241776281962499743466281136739088637800353555065454585479647761422378072068419242983239734446140564637356410786266386200298575497995835849792490675828013588748717770927834677135604917777968493112390753497346885415517896780555276313723554279526154137441041168331502343769155463234811572385900398533709557879886979702531096204759651107903527547523743747852480022660016484744675607120979003431910369415651087815458594489762641740624688214545264072524894304536646270243039834753844271376621717992910466250180209029063254877228975474579321858147700136997399211187425226513228934941644324713847881310414133873749519601997939314724493875638879295382908089303996237592601401173712341246406513592217971153789970181390434587036447378074709812077788565257347679806009358872488408032204783254512013304565720920572204036800694297052872582151942055681609707604280485095040763619259122487573822409439723637168041724148311569451399016254458392592814362416268334570854857092672897968099306898128498007294553443739454464338737061306281408570264997464670040148522092088625311742108559912807759131429665081787483913183297978091340540139857348704056636860407369256661143788349628359572246311943278816724320099060768282535218495166438593311885438781777519329181841560172944830889442364261673472603070794508597455326476324810118209945271062778236461927616013499516901295729808758080167024665624540804775768202349319527982840504160343697649354664146319381457191819778771442139294003892753603216623073014781059348604439570117730206832452857960466156514000606810694955228103068694838400657384010491721159070092507064251437161522925189734814258002770850655817927886825766971230250675909394167440720723247708362221865217712926339949155887724744453204483093250948728271175364439873141863115691053334988716461888579971905650908518485021279534853784410334519465426784230798393312016995214674244420956481148386344998622842601143103157278437668954506792021902527059814743127444855988068167888612126921075337101973563779969417586526258302181811644352653878294741493654315324406623462903779500901078309594826100576648430799249118070032279442868024108015950123588642292436421295537848666220980216212719580355553403030233242541288748326339475444319317496057510593161537536116037098337200810015714248841922060024811639245793452612999430049657875416147009158962422705120477105681233191742526964725361151270621401300809835763627379376325409330631134062003418041806118974060623346145810636624746215891848670499084664216843068062978473637547161984268270587920377480769671495234345409327007862093571899625185703394169475999254270395778863413949515977935783413638363482736053666753966406521922216276321750139266133283760687109680859334544288174055930599028899583810936625708734016324022120191760885201794962557141673228522197489896068630818172127313916180031410574457296117815965996060246628991083201644361524664961814822455680904262644523131949427478030161328320082552485532037381000592490981275275703960076505509960516044408686971548978805653228256149221131935852659602914203617646016709991622773746158205960801370186025313842256640095584273120773642932825350425738369319260884580183018249265512354540352084969145335880619924358344249626553592334075602161143628287133216588244511911401673139643878142178523473409968043937535161724669815309105744465336836444412202437802230080441354739145803961955981333614567202021627984928860454423549925073798243185172009180819892476414284980179002117158750405162793860025531643561453888862195780106040138577624751276483055255583712541466283901604920574484792288734424227622528446621514974065291064791751182471212815485922911819227845011860371172472158046151638609945233284959152074515354399603253049281558694966831050833685644332660948103965322430458923903702151653413408846839541714336250513687497233276871042273719490343871565549791575425149235108363193028369548496723864725112085822164135684690676231434920638717626875266745476267616550526380395914816479724112919079561066599191711295368537432190349504143186610490542744353338466045625462770281420538149880372917598049366961453016925406323716188671003246721464367983006309381728352264935006848304805618591289918256701599357585100690629997436358790181336710958871328913572145314348566957577506308457569553650773104877313700619550461550999292969774833710190331221658118118802356036787424932299137261947237393847604962623515802040255924393513277590544826190285745836184396090524153473785880326800756421630978568787141262614048537464752126029591880331316924099004578435312059119525555188208481092213206101800812884565175233760560301390124310949964964163763757000118720439933560575872267490037954631905301563086944900784158770839375405016274129747293622239670568528156029264162494363255486104840728764329129743631137326671705962806125144913346123183743288389198425576013858635306157154760631011611997840910305946595313805109614305749514948533876236250820897448248947954149994561893985217441445275430473220428284768168469876378427456177659677463056327025265113262933601337069852399797102376666924875548677643087254962542767424048742788905249487008460246900127638579846900165989036542624238722679686335867203110921798070047195850239386519654663064337806675399336764760041671131054760259917910402236702175700872501874766838622184280065485501417072964649814052547667315860863399934590379424000916316252397634001503149739774612442317985170465087281102002791765900195937006450315266592290261641354555957865514883668205224772357727808998229438408101132565961853221703804243558861991899801132361552177854558717098282101305619129017942307730242743764221110514281263080142351721740611824870701016995355880592821227618211741663953148054786837091810011894215317620119399511351826088650776047684609301191409433790295811226697145733243169125215437367736690226261329013658599515939569801397209482423863599684167602154364053678871480093919748268587566653121279835913145270756591046941460897649632846342454966276335697661347164661508939374452583278418986501214651532233094666417112235323489681361487639553742275385116739924707800381297649927023973145291079944999507690171126682554919240954208879903226459995339654298786706308207605378446471994470700752057551161547352528093295283996316128825589488116884361642890360837919964565968656155668825513810864559537278126471989346611836977627440769243358444734426878804287520788013994686864309303045194084679132122577141067099382501454246585745556814838833397169391208411333171768789708812729245463690954979731330267673626009316202374238998013138698829376942163425874293416719948943529567488340752591810108889029902475627201704937144873282399324215218150276201068246104117454488097113877624760580919644509441775946603877992549898186984345746755091063031007099175390919166288921130877255027034016900539938899650080158315762952605602834129035097809626919004307178027135111887530921653320927657144077228186829164634191229458627858965332362773916731885129903292062922926508573938076587628619005852688384234579870967817557658403176383812978610985761518954953693761773482944144670115714795993182241884359963439571885284760902480298338080766929024137058000006964222315061405057733905142177056612143218268708686128527407520024778863042175376216822127102621008297177572901928036359507103453054941383563611199906255304533977820143890669347696314369331547423826476726502157438410435860230102797631750334617391132339653952888927754190933094140652875851670418533143076536829700780227112287068880949265435738300292360613113902401685489764739646026995056902886990051832358496061906486641987995557166370192416323920830575271073775176108464444753181563457813227655879331152757101861332883631582211031533121442497472512891081091011903450265963254273547984495818483338486885542191652941305532753470929519511127621322975457139277758080441219233818361417808254901101900753699017370317090352283545964905460667461827433742173150932045963584218941938398730640840292519878950557140450873334406826980157067481946071985222883349404186141345673299025507504269027272244039211753715249532004058862618147388376324626435542050627890331249194867294156704421843057622682787807201452710141793089865645732874102672855751722427732751096572765403992287237641768250563105595074148648868981566471929065336673218002111059364105132572826382754520735112791843938201796242872700327183689774008763331878144536431930308339203305318630136710357725813638043963095236716803424397982283154775134313284311030901090472169582068429737140122374853728713713358884300151688604210213433245685747715386043985364186366237293220590812435641761095260414963816987913978339565621629778434184369733862403632942911548483285816717437338292431215952431609529999181453808591738020121766959341348544186460824330880044755809571108064614864581488925955870561850539722706898334340683737832022580276434348715503745411267747771262052392981756873181189436195148605390696873875874955352600571183578725686040945061257929440917522348892358488753192301269165083201811005914894861694769069324212584216233364062223710620356384703309957808234398204180300830954652836814782026775296268906765917689339129910008916569295855858713279600340899141126416324110173502935686021209479755339378224740527545932988688856948821732326119736091335871464746954596276487805904460705746276894985315741926976987778602501146468758397676863792289402162895718279328707420497047341876979381599286036088327264817734303157410664124333238657029122894857346680835730727612382407376708028834142111829359701925041588069960542832947191149122453813491425051132242387718251943362567662344073300863900073467883226056633947642096516227912298439894294674700905364884897917506475318264385702453213043867294230331138053512845750153809401892029112436706740193546827226756559277844857543029078553142442263465008855989673358262278549780691176449299645372712316285184300156592853986680912005349965197128935958715137056316025397075964232499028757851698296056706661359678598671436760802099579106174609933037542652935981705628893074860870358420448732374069616640880023678639751589868532714800576957800781644472970390633871484438248986146610574545111568242237235271821373256352559582672373246999316962034310179834291304845108719000646486726868848592714459790768264043313319002790355465001108781902755293844931893260317970546410685416491276213988912904369816189517638212525504415765064144233166415172548215157450244980131507115920488219642604759203807987956454597096848508133822070774200215918874803980889919110812733152406181311267393558387919867902345526516420094274160428446703929612607455677772999013378696838399179692550612280850531943096908902512877923704420193883146706091787426069147603402546743881099576745083064895888770286410739871885565156429909647867117698039920443251434996969772796465587831781927177640668278379858209909191318576272550672635924796898000883285120810486876999578097957400123296128700815121323963605019054554570410100053289606060011643543256023653223181561503951415543020815091847691070148066724784525997525674007070757966801742566201811776552402888327866479560357131262684700551028830374162021350689181755592434191501347203140090477534288146066768688570949632660464095509385743875681036025033455854857243549928266570103219094701643237397770122506579174057078795881409992033696727403779134261776921209174975734614398019445325542497672461735226235187613370683874121529914039845267379202954004727229180442964941530270946772211067180983069720828172516986445455654636868779902533011413325789127599344349164527866823210772790206046861685518109536801145563434312285373865770782196787267651100103826779500369021197365158007488756420749299603393669561830639818138460824310469739149551479626979785618239588062754440853891786225825349881866775235254946959649878314825953935595886361823050932165805408781467171271879298829620034666848380613811163435303952954836834180397153730983876263340614563799441713340698687124773014724790187254848167198088723026787772802688923787660457422907735699413520077785512618886520842880675072838093366276728823654696342908640973165443599981384430687695826345757282199140082009596361802003983894691996007009144519630828315806569351749286213149942569158181613973822651648716031563726518236785919904806322613136517950328186068065902242481397800626464293998318170072100382721202361919739070065308123872458332498699125694891766638086536672127084853375127914580770613594172732524044774021110464583620747674880477499332877057943861556054556025659046482043277669356896627631461396532910595411060103392973355579751251680900928891854949054403901943256236903174925261896443575333691060128079776951994384024985878282857870407420821126537896723942292242297252342166618881838874836535332677189914049003111807653598446167648833250425197433133327405816534238814984754686542919479350962507663332898472252999831932971667860828901425453484015333418557853081989062850894769195099181931181105160326381953871120905057333251145745946950010364208262448209515657425946337430166298566802680062777185917097414188417213662448013775661648632168863737426773847076155619821308838272424888047217641581612119277732168296586253060653481802110767546479019503331183622073598547346718577578221838195672886739043712069767405309003867921319700023482775953348101959100923840156735509926684787681044864852943839221242456296041071064512298605756100231788010615731414343305598004332777404839438717700771475440598409153833191975244909716985707260981980728368772901867459532658412207264604136617269216235987012221043013670438612034137857494973601324209101407944478750425581857081813264753298359480459221750190897685845361426163801993308438915225463485085721093471568310812144523907617232904327012903028961235309797725677501140060475840885321385264143593617168657346004963467294902134979964781756039217585405468302311147675410705449582018144587586937845108525147324807761153235513508510603843121129946772927583258207964741221258538522635881308818277230650737921714070690478554080387859165144506891739177722196352088488971405788856134723530089307335398348340362118444507172360507713753407424872838822502174031957549143467475619007748454738206083300786854646114876943307106353140692238726563964714555099042813172982209074509485302523122834005642823718322966549092899212043229857742148000669018947296855629109514282067867453288312657107240359496534865628960029260126104870074890369795397957757344058056077071178656568357090936197684864222633714657859610330675600394852041257789090750427948773282660107566132827151344563396979246370321919798497668561835155306001079257217010090189597305037817833634703288520737689317254264012628671708745006927909061977730897072873316785445029688786213860638857576957182567680410098309541372296746521428064646768197021225001643427547197740770981729538059880152190465968670654806509818670260585221431032343149749956115080496924578528510865365161575309363981563608514131554811568164683605856304502057362108522218384040025316819898717091035754049884374419379582526158520907055595952533974873396379290792237130905945524444966952387370991217199573763391359973295383894708149722199182667081853987332613046418306882523816298360190273378909369522951837768107200124492008324003679706594858378481880660731668874963989109318447733546328196704007604542136196444519496615771872305966084636531886006223681487408736077292113626838879337552463673768950426422153733821811474923550562433933602065159167162046015883851924434021423613341220245558598194301343538201268625230093274130730930496709023767435089982849197498728778065501019122025586941968647059320838832724527394210219422865283235544938472096502052853051518298914674594264593469260010520238688756322458556895170921273219270948923048072709856324862868031205000467052707505173839379358462608447789172938947468303885508560193006968137127648927576846397578108107772964678349202190275368770970276804908286621233142853806096049457125093572806872328094486278103775595211353029144151225071468655632702900433366835714783518273143450402614616026851347063149336783623133156546593373752089427264837957083483857733057419446955082733533713202838161500538928265400589607837939471892324641243039376200344449395968798569972786915181989841230853341366602236503853935620517278774341197427948730119070347932288225324740924018894893638592236655642142262667668427212128982487026893238880826585286956809257980982936793377462980310903040268901755446966430684573712449455380307302672056040563893198823926237300230479217698062589067682288546433680141575394198506033479997807386431924580627887386282616359460974884990773638655397133836191829676739094691306353931424847012186676969579932069063007592774298600211706584028284547250858173577839277339102039030818748834346610966953176843759205377521646018779955552124261827610835011073330927949032849504612649666181667342045627158174691153518708219968129245015324835597498032351269443639380635753569219431634769439805076841072485550410467254328790336696262877951422497630965220192666480970417993957668568387734753147076699793517969840558656035543164452314844151682784713048542679880868971895440304841664628522643662659153416922163754824456116613638590324073508978001722944234611459313956841474725994335273329407623547324978969549192282528274641102696340869090041423536982377341501563524501771617549724744613921848870509463758727302796639178718964930423745244415160516947152367499908417966041534028530169211286102645421952361865259218816403656547162012079066269965365800513586985239290150851064525167978131051310424125038562085296593939091343883287772978992339913750947237077454094384415290549667734697292676326750790464401962911573468051008557826942876088148572135113221311209926114097690637634325737857591745551644440282569842327792347797051310978114080513640027442636038738174443368728893267636644285991776500470588045698253331039257431518498781616424623798597258055759160405998668982504151059617344226496860188545925360773263748009305550650017021413168402163832507127010153596903669534325050515569640667946762662239600862193252560527656262767535833985282689846029513672126587646476681541624656447064559567655746886684847830627653954124227156422564934805223923211946677524965426049790422247476100042567678198102273054957354609795006886774815536500343852025597578911323733700692549414174491993777619584169913570288623227713068952227463477577298492002651499651923687113112703681901015947897511479475756497864836982911894815106965398961888786106628835234856053759885389821351990392685180547356767189793302172637252405526954046551054493409079471293757031263397828279607487881579560912659380705975429749370260840751627785885598362148829592983142619894897401435894191745250001929692884862802106507873358595868507481003797408595050523732143825733169682267566329764626246660603625481509425411240853352389083891646184685520647541785228299927552432269801743373406457885175067415895450991345643780134331737574281345952338960892727812662185167334836988307364398489407821564060169670861224860045919898467698552803068710760158848122855002966126675895243253433809308808270456779064319004579590984942410353282469298938957577245248797215916790344127154238876446255771392325895197106910569424047008993212841103488649468142857548450842200691775851016794899941871568720716221076106100007487591394017670126926840214875278822592310515223384492282883781120372037721097277041830457545310389064069876426996633466294866765222062973901587375130245626342721861059111983837245120614399291398192307438004987586617269079646710143182036939867499002821100443614632844957596054910694885999432427338406256468721748350738004794348648692109108518579059552275103845035472718528655328406176667886581977556297171643946740249933684830422151220816277024243476689791163574593294661227635862280433035051167423773160809892512035355819263054366991607055731918659324387113820823871934238877989320516603171292952892405662136808964458042679553901850650131117473774557718378562402879439441223741542091166902789766648385205758059151065284711969385691241340184257751339971389558303328259850895887900303444883370880232380451002761295355303927637417672666870159693263666300290721915933059739613387158937038855064230553617426129372003383050209501635922492735506456366924755002812768291784379539041331647048448773724713327888391150963576669354194774778302075544588967955691970922244337547601972589432620622604155379342531286658442263032184929463665369184745129756425621219196583847678789012256891026123684965135622868612003474096262232870466633800942243659892963764072540707509143866492504376659858691716868857008373668291674390182423145703970336424508786914393509889051340011079709007026613824445313453074131521872362073292308010269519884580700441481885881485092257241928887535016467097943953319949922785090340537389371990385755350710784659253079956133545380704180197905034980403361933664828695233438471415398917743990617817811107683689509580614210844527722172104734156371154360168898447925875324168914022301969804052190606043173171009861572756933687529300234631319456865244265928144063620044637398184241870926376345453923304980996385930497474323838193721209542577112736445242002709966199930970479181385480083542403647519797333328096476805750840718940589407274417473078588459309160584688487641677561583765864876205355101255801185636279958740712942731973625397824053985172255440095241276441823104693630233423412263264430690666959414381473709603989402779262379429759364050057791591394369620396336905249554291480390310016418406906624079625757064505890080470463684198550628916441665734522335031904529889531565847743902036473164335911341190197788531083003519988015505740326420770371066683552558693860581552093863438079654463101974820291278233011705592458309398975226357223894762083110131182526818807466711872756488011461970509160773419852959772890751804783960705149701125933280072047951765858726039868478333622153921254439016754673362329369999780387631648677042998562647752611278597924734841359842048239158013495204394732202407277252443057941216577369483441060063542732589876613869405431754314284047374985160848938611871239978785367262704124644676871289115617130405117080830839427977668829345411823831639160375432191614394083145056669699697301912439006123620356952158125624138908199325146169786263206514476733686733363470625978323792495697430213258653414054049081618985470367345207101824880117796212343237109289862189329710873763867258955793517719392513546361060317265398911299610713584998303989577883464403753062010920022933056483814400419928292080733985925692321819481406064356388867784668535295670660795462883463601815020383426775350226283326463149207283304039236087557082503064569524297085334117746065512440469672964502954650983357593787797180804127655684381867237735093220750041663995360745603909131920717273939552787002964107275144584963283825831684951355143436644504520966855290955648855506062498670764140452048049107094307648670254261868864662167715780923755308040830532498365390407164077992045295935092529149725455083743290129014942391800048359638687959859678992602581665155351376426985056777963444806145739661568951120530561433462090608990597828596785807302609865992048955882472951756806055373937227146092310649049798841982070733842550495382852603635370654201586112973708968936345231160849812804347222458601912097156574038466946459394268202196349767133757450930112882293345736710306771100962686364255248113269846386844034595990120666081967795316098752465758515898195054705754030800059019593120002127230496124015696177649171069619363409230135450982171807825464090388567326002165886682324098029579145032454054857544386793997512096094996156763560996307812457976866397078360221023083167526276759593114307815078815049256604323509386491262281792922623334384651523745632566648401607729152652447921811756173657037352992922533235163893338366141066010510780841609604477683557651144384339961565013003329254036510836205185806585217310834574821125279985334131338368818567148339382558706041711145287454314381894031326537920675578118910624611684980897981631118774640516406589246876328852303999352735256068404449322602437221060464125788917555571096624253031361008184698336502887539978749013771259951544922356463979348621976265203233607888386009317350335289878624230795146860451380131905408881379800927666718951346873567697777394607713022538228351301865736527576236062270805958951788366999941826347245961125403459821302316556697215296950998933668169949209123167587986853862138437912793598275995929989228566818718686804280664862850206049755163825670386242311130185180378707562317757623220510513535061254611498976786124022591284594341256354820581755608086480563650314662824870468021495458613470941748295765502600250065605540524142418232765839059020285426062666547030740471150334108397964627250984639226022773927197147441076647672444594644823830192563744423162619727268120712155936776893225525069248380638680020944369586152903765739819504986770263635512190688405329002636073602241254898996229157738247100802775518220501043180770132886156680210098716692043140003014655458184681407714838970831116693971187739462598596137118169484787822048091589659195022964916627478498110791420254994518397968228937716363962069551611505713028074812429251877691841227976061847470316014428789388417458848276346518477665025349462369745965960354234058173206757482162986293061071705944955656529924259958582993167875395566017094289827742905693391323454755014446095733403449646580346484893917073982998121193640911031421492202782690867661969467239331341184392971439091667698122004440190288735916794178317242447650244297880842256763989381363765681687584088987821134638451108675904361160891482209674028230228828521512823842299802379851994455115340514889552724772344627884237221908191959395911605910162430396878947785101526612321110001460209287926999436419350269415396023584365285809112621396426574862476764665756692238912016407126163017275663534063034332044834571837266685322090851257478197571213912180272324770481511809912748442184714365644034215137863076464616575841260816057968476254856020233046158888067811145586215924742950512610305664331184882374100570414660074258391900218835251407194537885787791084408669453981081684088672921776283291392217419162321145934408002600510539794250295879904545673934722270000147244557193431619497151021416652921736318451561086761052710027031644126460653956111629889508617168021392571861433156290432996511650172989121404804980527069362533881739040870174782690412513298625116316318026994176936658039100150096712687933082531677601562255080200331905238361299214296771820816222309414844888801504880324592200535478808441413284826027318399865986759120865013467683248807904729806460486982566322950684113190304426570492136782940055460313746676672607403908817663452126490692921528762207343043267516245257083143879397076883867729852146544418107350237357940841344981648955896027469670809772586910835062173882641353311594658826123844212814724191631082812006510472274040362813316540694518849542139430558592276898337037045446956082198376504802984734532652430613927951696293429260158424366485647051801120575785385048221050747106336761598671621284329833325784806525588233021705745783243966735115687709707513295867116512020153488999357434453755146345184975853852958298077334595553621529183852275783269928105165860571403277707754734776703549892503534933353574825617396398801184965874440533069072162397689724017639362265511278292460828223207110557122125045904670452728053946095198808918179284724676317229986791903198988031076818629169297690798098853609481280104320498646190141278758238302782508332262667772046134555721344535208042698470766006691691888623677132066578670779766106138210577514286736556953788504350546241197551803536021053677732856755172122618812758293689715574630604107780674612949851098805599705743902861098751182203542282501704479864025560108098864655968449717670850503098827235800257861667573079107177387666957642845682690357623114271983308548038811430147299616438086633540542649285172844541638244545651927904458764427479790806232282056947250852073177029344588261613716791734727231352881824922274315071499356952206026483592341399345955087366754737233185631100074814469270069744829934643984436741006562325757909205043924327289889407382210202141853740453835189900879150179489839875170691316772492325490655217265061139479246599280296574201647843726486969983811958701209435908107303935817388203585467040321117968613469967769348304276937314171957613703304597564194161655862391127618461708208394776793395394976190680760238334429805896788266177229948216713529580536535991831034982942500519488838995395960998133349580986872151158404893843962395984855462057204004109413263274272994829971063686181055253134151342688288140457600012000455861625948779324198044009628077094980170777889892692374676845330943948003481832099188473539877784386309479004971834686571889307326329041799094976667321811811871154325734475212833142135979301081456056075994807465324290415023248528282750588748714495467782059938825504161127783645462556379239982524230267484463949723717084053031193450861228478044907907409713488132808611848439826921941550573526070346854456472547231191342618709720085341606158745121462366766121572043799830072229557387995365598819598923881350602200412600465684487580481510980826983938635965725457055001112580748080450981279930840911158720883073409191811136376832235791144316329684805084510413666114315009918078371752395240802279427598026838892159647892495706179648143958058845314435362650780297278337692475895416405765355863891807709555375990538925181997525237740531203543691442816459200501766161540976903163927966995431664008081918111354122032690135925301214467878817963801432604355830883955863349506527139700919318461143916001432145637812908359407475771265114611441142146012958218512472802971745552270252470366937235898542413400194391971586099425397458975133913683307553383640553882115359518007173634754907148813358320121769212917403299041855977569459329415587594169641539404134170696676751112810069896162912588681828801563510468254218191675701446433214413791890265634968995234434744615471106711571644632040877345367365941899585716006535581276002193758559608362794138608517886431735814272552835068377836266257051105295249705692058438167971644103918743384009093311996665223005380466699807088205436005082531435949365415455657630364481258888199230628453035915654312944722475343941266363646707789743271284267290767980253229289785618751768931098255261325765690412263688780772064215007086977225952448331055070076878685022830526303761061618385523737670645542894308871601378670599434552927698483650450641993630643242564663519376212434836977043470562731306104814366869985468735319377025887450787353894146022478572799858201668628960882887683349893894315777360100420864187751144631406427295009360425139406138484383299811446152686155907470856926649133871781764660706017612574224973643105164798340218456341519019928288053136532026615208561320877935167983182380987687473631013665109816598187748077787391799574419012260427793018139948397152411452834454882312440073205838175177730301638357810236843322801102216023567370642952703318356758767482191188991475891245064693948562540723994833531393182727608373492802011099744897727832225966479291179882689314038235916643044426064978344273360023770576838023510215289941979081532713883475520465130091165269966782478064516217935128509018358184221393631221055800852326739178324339024581599716837432149900849062355693695447778151489333493484095033471995058412256068020906296348293196607947261961528865461321160926131687965156796723487789367691703289665076462660677250552105193135037565546900349365873127563611717073943721391319825258828444486598586800702036752516407933484859595671105572248405075872772422734112287143962985841157677620583160574283461404000317564177375279321130363033155091473568679670662078384973451640767827939617614143022500203682291093245671434880789162521565291417738000130190058186287429508615508019751065203613142006307562913584643778228653881639525017709678065760874747186302729647180117538582002614700238087765643990083023287120929231932532064838407765244121291062713906189442479118269170528298296153629547606217806400284274408827703343580951640703018581810263782365857920010100782802975157587151336177003609836828897132792095621309646415304362926176227073354449694234947370489311451403919935845516647924414891444323055401790795969640582201156381794417875888635385459991159925227563730090189314632877769892466507545522888263421377528285388411279449935758572339274100790159602714330089362720825053414007302923830224463883747571397326054835741162307270255984747437066899250346579692329553848966206739896481789707562049932085727392736639955370518250916231809715137033939216824953362090725775614501344713042440266483629264161585804642892620305096809497076749340271144400666410330416946100950798668930223042129958032186397307298644102605827809285111515263552916790224946788387823222486261310714254575973581843632834722086417639582267212088366708843909942092234148443257237928827513004258640840598827797723423210443059036595002317619653839765270937453826612407185252472462881093573020594405104515067607957228353353015837757856578430341040453011171265641967194471015969831476350310857676371624371187960139254609682173489416716542322154766885043708724402840416567180724739244418114824889692519474068809537902279365170935089952195644187391148152476166452087860577656561439174809883299001095413650959528100254258251941891911696469651911426926008757727438495979293258855683915984745588605194185689868884714879854396617226441104735559855617711714046322526097641484512522332145347208318132347287411183869822791864605346845765384242871212393554259553413028868565805525637851248410908020664195142467946489917786677754965412546562087186254107281510753270993698805652613344439098708419826544637618944899131219270571242534850101703612086286393088705097010474182692339850272906059279707799218795840727796837643352543020672938084403311264807067337962104616030972762210852701645502382599136269837100428622393227514538152614319228857074907460889314538016461635236299022528870298982683983755100261516088661341110666297628975614691501985384178078242622465891653145289115811247281224716166085096256333356204313612938296273949994641113868706185910451278061422635726681992805831678320941788496052310340711427738172205156239857747852114753443872993209510449684476950638110766602496547623788639306980981744037445409836981645360913434746401936330066607097991389518534781197508796446725840636882466089280229609911376085023258207196068919216982492706095282012614360464675639460287092009392648426872526300278976373599902049691105784933858236259387350735534694592394796314303190363873769680154768385974164925545396684629895505915958699738703147563588556569696155014933839343269932024308448331776690818186426942407845588303826037100335563021885529361771756634697977154905253318412035399102789547998170058302601852129715750285603535552912919117958526958729722320928929722132853240503709081317980747725512140930650373136389848837180368851240800782980017055082207970493604064522209929695321739094370242582859274664652908847584766067598617564081792960736682530218337673228158692099571231144543449285075153783620525762305814002892361514198939185111087615205074032942210052658311018338179636121036472116410568871461194433094522849909999631018506676143458474319614607968458979867655246715715504571213436171077757412069496867260581906685079795688291160854055054282565301634696448556682780905428960500156486633314525144411407417908731624904713026372583064162704281900681727320197722513515420242357665616785558961270805167963469285123481238598140152326250218942086189298412352607366070012756276058571477180621506902573273642456754166621197551953627856993408435917352201472325135150587557486385522209314305754649233685821090262418566954163312662584894380020810566615280689286043509672498260807754259237829242203989849949590684370624438470493816435051406530125937869061718097294856228043163619368513628645927784341859026008734281901302055795824836228473726327886993037767784850043358579285079656755436676517983143283931786664243087961336572594459675952338039762366687345678060215169839628663977146211629159798479101384916124652515140038948805266507143438866364347218709842266302507101859572038682776386536057466859038353567370736490302914705135461962178740371198607808009091529259019965708168590001710148640532688732441446884211880118584621295506694821101717757035685865397992679779684921108711654696929677105641230655815546916743720991982298922335417389372231257722857071411388782298377427992407821132611436303475120905040610032044677359209539725214834500290751999623842279235199827005214945334040093115112884883157249335584658504971078008492477402671309155726230867561585479534591413336763005940716610331426925292501355580909812781465830128941693511505821733385552259070330954131298092756413744811445043063216424819580679798511149506874357534154062451557651555673870758772857984777537560326293098094314151679771327081241709465672055509556492032963697047576119674577383174062072798086870360697408659666884027074602707748524793341069952208626657948991654088436204522609968457444453757389243034935089784130065356461553660140302268378326624526740704283243220534942482181363323721883918326581484986001601243173640908774702779353154216084720548351696990777434568544322593527081782915423699146866033090620092711040822058197148217973989200099679936462658261626367980299340826520174966925934195161156610952243644893978664625797765362594280962139715183199752930956263904248697190365598861373040426101835637392950924679515165986749650681008042526881599752815594220299972631733128175540082669939882373148195415041347795015686264290918208764889296351251811195448551966532247923290613933070269531195475999861737023703550623623384178372498066638359109365364676204971110871360678624043823950766931135466626871895313575244639689745463314849003435748676930609609603556761330499373585224846245508700299733984003776200474699637924703717894385534078569110898468020101928746462848059706850636016638744096399610066212189973077519254894131668332286946952641171160115818854743829947886817409956503024901622882673690092754917138053012083079535389464616271766030618423855098463962516041214498503291071444320594920984916187652787135389954810263651374827631065872414992887804791768894101721690635947463756938455042356404262214182374294051696142092097328637028834948689082622922863424041798389770604942945411298395317751272484612575241952598371753438322780218671265754429664823012990956002697790334886608186651206280829040648431730644651521293667350095386175672850615318620104298794432070845269806433692041315095045255088871112745448171192132643821285244113121405186389774632457564717950347612540239515442373258608013152398072944389535688397855595681106464455849021034204990299294645403957481141001889918137364950303904036296493298822471186422182624107900482156658946257457510304684624976176646115727886541677694735102506480970894644190841720342964989566496399720405504703833446339625038464885900713173118893127155475851506715852369069652298200089635917796873040215556471275598185007476804302171995493245573066707098743115570410773827396830009371267536179448874979154868535509923341658741226620976192412380109264461174948432565628113641317537086860760096476263290735123238718222858612699745813733748653132207781818701604047972410167573765364361715912714809067392488142865068072062952206194307996890812923331310129627173867403229697723437004284566269421126370509588502529243505334734584953167688781340445520954691028829516558188265721173113638925388681130359305277835363577317760037947676325314767341288104507615818765629036769009761096913221496264975505053042702286700543335234839036820737105664202400918658804339295637840108633421111947601795562382195234096857605945752028539022730081251245386408696083238126434459766058476785595971142655697725285311550005229831176347945268193785026324452875245055053078948085333628009479053801334922201077409561697312374230138220947139589989282894653176846252466914645128995240521921434130352019274851355442483339938650918312187238145799568160042521648486763119218768281766420052484793449270538244790097368003604987325392759165875071240465886915474560406502706121764617822521716857239933011536886152073022317525944538344440830417682815718381296100158841001162649440582927918045104139270264983801821832931086945276123828294647450940099189049701103429799462662351662293159029091773390448233471192103680113670562744187250613889868969909691160281953433255838721535051434156206628272539235543578337561978936356993089574498124702013620701523877753109838972431097845010408287566388378954073104551021685791374960775123608397488147200863399682111520585748826164039116643552666931618965479912880155546497517398878759769246426984484981877079548977409521330229334701373075091490845888389814850225402480545134705873299526957063219774910044368812667763129590616847391297726292674948218725031461260111158012292864013900459596081480304378568221268432209294743747954681838308650913613405482829041159190497651562357676508286756875622293170712302394642504408618265404645947583703384690315826290507343943415851931542053749678950259973375233279932361537404841706700653232127193848056064809246943302401642696294682753885441858778058493134950038082593610041254101157088883347255205458803748542604904739965532034264130226760255864421864379123728026065718516287573355777963494471644154730554849832335587710644746560583126363319622528249466034619895314541394834901805871054990557776166281572973805000180775620548500024289497967749916367382959141989642828572169667487542053224936900140212325730285416618099356590506218453154534551196435283404936356685542811080095050470206907872100327603339392674949829329737881601645994786285414498180672915922250721999476249397716411486476941753988304153789011121339629141198759960481207559723525696561696756182481711019099244177021055245862146871060154965513771333034610328809949633355565217604587813569244868941683089306773905413057623473265267780356084275540156579926628053521299200493997711769937657664164448457500966565465942962913510108672213725181728646420255867637826094945898235528727950349305566659796048788027497257301849824375570773579183586331104914276975654046127009946641730373343243402603630782709003081256410181778728319448828240274415755834411667865444003333889007574855437932081972066514048526091054292906154079200728430635959690465920676524450611313702084718490406601415753196674297911763623561550434384766234131507173347271818392774914894346380744855469500875310576768753776335559632185171008091536029919807839508981573678241411154001001539983154267015968173110888045646025578681245385344949944577707375610844254527749075334297868622548756900615854312173113976241725590095237305443519174722577388764158168233557092662959961968525568343857954809779248921346822184232068662350229105034365025112416561307700520281625127506547288398918914584236610615759385365449973477476067805767910098985876252747888208919750843174121617565175070393296080027828313462074976363435489910516544601660165555382423069502580235655954308166221015351219909919776768375868680520198569416185179130752842143289221706784951958217705497677667452310565561600052731791400806726988866301907380576427607105595920825742207817983432616386844083269157319375456282556451894948783632907460138378923012448461437114943299600272543696707088258657002963333284272958942061299441740123075865504350887166082401976488005264630050665866128001903393505004655653216429043063947903674842784539992502375916387961141632415771826320678228361657477474697477894977282005269260098804650132340881183448947260397768329832323553435407144455419868922705579199931711218500288126395680872427976690314744338764882265665690996448133757040763838799013346548081772735121621915645858620902302641884615662310451329153743615699352787380431794601321079178774577554975708285520209311477168574352091303729698375460476047932640328490070444298191443842493251835777925125318234657181446163208702008117642677595877466213133659453931586047384437528465700946138009978245600763243949399010774692775590382346747510882919937411719710254124678055614398739281006029517111873576650951945014500817165131323103385033836714228145329055479043491632893812892554678057821056624604206673297774650407839419468935703532201639273553867844416792237491585643785212745931336256445069208597241464393700209719993326483530652594301597593389355127360446330400524913258205137340394781356260725352904811254398665631207364753561465747517116833865452334114427524328336779687971710753882366521009130714471520906050419536691442061357420632874080614028713199008744086136713176374315129026415806923393157669093085534211254909291351709060134209234802173310376593309873505547360810915656306647654553121532526614894611426927897172716355337144021408548929094939469980682257831838887745275212561028103060935863349213162161656976178271257305361741055892670563761811315549740734115586600590927489977062842871671203276017739444088111284032461510772074340789500722710459221262830160958486238364210463030315175173917160136007984140265048980155896280993402232307827106685369858968491620778405359864392961687713368102838423107109979922309514688694622777951319845149726883443604180320154554995272146698900476259517857024557756771485504190869124856133847042124886316110923373282665386983893002044619312300842261050311624652751458367655490263346342606826869163201501816736734822894372347248922661446275782292310713724315047786852994747584379264863674814100987177761867815395326989351682175967429978786984195919600495284261632632541678376248444943339393851448978752285411542653727486998142430233328467905668406453401442343152659613171643911282154276254700254234915832886091297068606817485510506065410135427970146980303329745626089040665148512972877021392368939585817090979335397313752035488650607984763118882818692263754755670968298842511807958466902237118102547830144876105313169508170191752289578991855708386242395564509028752441003028059676078389145721897486057078384978036571492218139062702107004047219530316160652086665004001915367907760713553315508177228652693207617858224869830299492851216030571774460357338003286559401055490425890861416470965090019269728055363342375383681775281514109847952126338074792825176808858039113177536349282051254915010708600997329145109645092668347254946193783616398428566524017658402378732287609644213862673184430677987525721526160563996499045808872989208726354780261789596896247550376151892129153621243629670667905101174481860059023110032394109095204233522780032667533817956331717972401304329414914661772235170885878149605093941830254102703561139591695046455347173942633301388246663594725014780458248584072210270497905343371752047706708274608759528933988013354232882221444106135553237110781600369562677105219089902452725908650917304532354108261517851390545473370608499980989623879320209356982348038762922935440224536999065344052930536502126196635861521643708819247024697804651253755551848129419661751145641474586475834439281535185176742571971332018600420869919425780574063993032381494152046564786496643660802602879728560055840424488777213806333912504143363814367058328865234986287846768625924143534706532128864586975639588985038646335010037708897244841663386194358539304486143500064896275283060715101876520584491977909196367122434458517084260628240108533396476773962738485722704129677521816376872290787332882917422059024485576939029916847648815488758929716991368642743116237887717922841793984740995361495074412791267794988615989541457877864776069762092759904666594800109126419944801280667538738959845598975515689727544976862585485270877160278330742908189682503743811272157238650367587548609719005701515856843288815497275169719820450484248644171779763866173712838493385176604682532474661659930025981006324566444892475807640075513477369387470459026878050816787924346243245319564603670926979044439994169249958473109732208586900577481986388474911455303171839643704998999587846320278385738377043124253845526395816097139847127694819614365143135882210578033555582300168654510701684745397384564061850921595379966635036298281306306328594944682174338202267731172586552151951037232812660015290897334870325350820656104272366026581374047221665865034294129319874150744737892932288313250900966252081902592976358360004834136411073482782246193188970622979149392538916654055579866397613568235837696797916279028604791470188521283296501424147482840889094480643558348406857704673615958806659978846147279471090869771215031289300323699006227031091382403016765202902754485244599205516879784346221505176200370488995424505134803703427110263234538818319879351147767321846288532858983685829786687158402743870982493734354314720232993512228845041293710108924278429290810033612208961704951785357777733230587727486174884299532216466518331217440371242183809740440572433282064917528608428279608519657588132699037396330002197738417117721315100934765154508570555753344008475800869747706590038501994690703539970652003949066939745970552250727786355339786949079238104326103238706921882375448897879796816257364094172494779232517763551773799544996916482357480912702699653198924783584696633657252238888223208606313487225573423230873400976756326898495585363819462814445072567521312737584429286866388831409248657729716932337397664391399609981796882526476567345076707499313966043076581473558587045331564284439851100132473897268765120898642744843628282049223129880500392717316492955120875194823429485639224564708426259336536931260961194780958602003836280950404431600293631077720107073102469701448097613835924778562280615266614670945780011902911907117873724612225331964354643654204980558132409495686704335652010761570513889404884126644390294714340915583792155660345987768931369592646472879159037214587229126992663138732967760999983495717966847598598345228675123554703971397088117433406469086825433882428945044622577222147736841612901681764038871240172176356975302838679674981940494289870176078093862981502987120337076210186477190252937870707083228947626836757040231430891902709489089954422980844820337887144666980516793654503179394774092226819338166431085653663663835850965765020913666077344232486554857537582880247826247754311189958054108515608168314655466385114259252696867654979882834234551722704108019058497576152278796668961795284601488103557994372060166258664719762550477233070273157133995181952367858990983471318128715324573512758915021995403552110810933224938733393065785678660943963688124759943976601449016070450626668221366711788732535141845317024184965458347891910936980336166438243942339175368162988799304488978612040688937578407907934296834551978961038066257040045586416710394399754492008089745481612234713560105097949659083812354802286007407117549781942963489760956744018389664185355614554064688494796071235415647902122328574946132590384583984858436915846592732079056031004947110024402718775760637766811857993042402257972608996989674194246403856162826373006251630198308838778715194215308779204570227637352040174204236763493270503186897829350916975465877745470766572782216300320861546222595185509526097923378317246688972524050459922704939041911438417737629499344346957760653598262770611327595650903234147449454132546834798878917201046553199727820422437288594604541815247345340099589670384467502355648418848588074744755578512313064150759500232230329446493493207214945344100469834808566816490709266193753723484128701942507219705560973684591729892847643516947552967410123355099373931529271735162858686265795087122039803779308887552884521522570282876740494830678149882323111727544631997180178293224588412807842240219594513582036642178059369557250130996456852944915099237731306958867749931316651008049993924148542366596753914195482843175581321812160221935094034324370584412740104934377869517465894191388930569343959700004016130185939822939068286667661037643150587440927269861965056496865153891411168192015154698772049353755895426079103916276409123203293657091239062625042024261860448717562103741407366499283385027115956673283320536091146542406239552289695629341643180805124471354482707506955604843704486293174837453429119695877563313023215374681904552289421849363469303785765434323239761989185877629871411888447124541269443850044324914924302845166906082621281305609125438219715011064316730904256591872767639150787190578082092496519737630876906106943332705798002581741867736808198791104504455326907470823898214840237569497002437397991313083404019447850132010454344679856156534658557650094734641436415036856569005457354902861864722822858757773270536712421812098040486009888823492844894761381383218777247536934031643723038308459712519223698256272817785074506206771544765800994196910038102558092139446128745684695257020142931287100735603634757444637937597785640191709819383045327375504272266899799044190683459607427600132420027896964877195545334114042882536075729968215287911035262243909294240798507344601636300328620130013393871789740309873330962463920350194603644251942976336339200543934954486844181370431333160828186574277223132345117021197744591057441754169636307331632636433258481189672993510245502193522849252217982142825075626873007333951785996971378107347345554092105159251221136028119651830523226815259081072735073636295508435832136244125231761939547033487211654104971697736629599102208949485628668467823508282691627425364934126322281118116354708457500117571177987136228754926694081012886295453985034148150050391943071049361482051108091639306904972398844223428432941640890184782099429477539145582404976225331580583192098119298091516822410673294554927299319548781381943890087692043199963328642048105294357677034072669613700482506627457263336502065662556543344910780706360001256469612053144700863150608314282353534570422287766379269817823169102908066106016186896337373017465289416419534051907173594118589885894688940234247555959913046038604209352557354337572575925234017999106959737330763808542253972313034626754872969717187078762619963207104721973084088334285324579741872628586448665965489015028800271495365805041327015185839717945975896302203365193088355494712913342303807012563550394685608894294346644158150471081061464438834638764910611035583999570102005878432361675217629443753895614066127252910524523333717768561500776767986833496951444724931587042099974727638161967965571044862931623424546427950200475168881774339145929246893794429665923071052276436846515126886748075055949530428781990565962791483007440535818237123702005513563503912450156195888886716776977695388844721792313981656183220773534954146280315689437296892516794851796244037354867660247165201335409793456021435334444764064967157688490356237892560423907720438825189609123276002211433494756896708896324480790536559313852054543628345395854833993547557466399161976614341387372276109577756672569821267922705840138234328929928146909106220357688896300000707990740418571072863935890984333604377992798907951512069912562367012624147120685560907287707681619222867490807256248991702626847218453275451928375363185127541443052891785460051670884444742720912901383506363729603141388142632192918334092565340137402374598839104313867215317762258264457881839810662760695327723492017355316045855504156380555555158734601300228144797343332684656793359556025526452407449315833365254370287939803609087784625758461529865196534132932366322561253714019491810590490657569162053138092826965513830936677565377828214068691351457058321650198976285017645139834997983973939621537417022779725061538123806618923515257847226728891551714233763458769898200701169568778543989251183239754953512461019127556382962491915049358992193882692168043510259766614453139519878911100386830996217914837252646543285154225949086204387031507043423145890375228405808732472649049193227645989906395734482016263068441138849614100616206305947787008074871096549077230800303776532331643695924603455275210869273063530888192806218253281390623443124153863871554165479272541041380351056320578998069564036609026675978457392521926262949995865437401707193677219981838123740036646378185255715051072516567576039239373711746626746746166363626047873576647841296088218474807366954046065747107402634907971069256276710587778328015019203861348704703786323706917059439687832904064810513847766522894152370280720697169629935291661006055505582060605420227260500955571456848364461737291732527649612258249904256877495827083122857773654807947120968085518981762455908330353949184420863701269712079446181658170418082638820296033140698013921229516497939760713708054861499953164572544375747704852595337874981295902161587679806606048125617780460045225646429497652984718595479784873612165832159438693881853751973091656491619323112375739964544181130331920840972216958786841358181443736749561792165136303734648592991343900673322125578936144334836357372181740042829684224348918538637593997410754376277265929286961053907179339155748456548723118273733620446196818456589135429087406693723127677417282731325570175648385684851738752550194805457056991492719289544109290072890445808802231495773178290953129080778036010027494814712844756982904616027266784003995881715942954358278348193653807357347296628478749760183835235286770200183361452682749445743281905874160576561995352223265014736089396582005082019340451983901781055297211059433119230987443259805137845100440332875617468904045857621938612814414827954982795853581993440977199482802967404820792720528063493015629480467720207271516354172807718397888452456091033764567923700391132038525066189330877739954428174958795909839563101320703581346751047768744854208614717158473078859899854101304845877002300088434880667857862588619699727097520373086089074912659180831761235254552586698683589381050307853028505648891807939285146127713492855660591468942004254798728831410579919481961055868744562656183699998348242455717341019204678747169609091321383823450437499183088525433898796142826834593426841168516419690471996476117197526403102881553575531451725803798085795467499860924873767170700512454210266334757997764838439184398226995583797587437330614866635634417783834376457153538685001622693401369141041181918325917998619331973901583094349928748040594803514711154989028116884042965233079738142582457209949975371128495233779600888560026759594626421204067858188439175542874937215127595748957215434549834003151142427611873257487382314166146818064544349601763255508511067255013162056653296395085553918844083011264270493930532808971265363896295094655021749705223749584153249391228011558842018835747088727911997713679825151001802776813297191035621828939986555577219010130408934437051992870756382196618736944586253549563750240212180621702873252143437819582723922112286677140592268313355283241202752529170046771600730920358313969777696373449908971802892239838695347888433922783750399462801515202230040147770384153722868533850404921658444881269334579604430100796175741374274709586891408636213665414289711931960606827635589014865775087028629834096919708887704636377690091578081584424316905364824050189767181314452299680666091863065487140793186714862595747690188701340886669132514434562685143455444644579583489479617694276416440308230311462651563656972026164775357335593165663522965464684989733613519201652890948270234361703870358762572864475084223182953784902797451799872254890605393970246585521668196574355259059368255013468856154034841552945787356791391502956894218915921782873991114454752379732830419057256657072461490068723729234685227363447271292640407803148914509643956790278406351121561709636858296642314958651482014480592948346714560757504077456663596187506243633891110499247205070000792767957904776964250204083224096517078451430362539454219966427108759282629906144628275005887989385025895214138991603898444029241909395877612141540197929959588635888992992613548789012099226360386217824691740417236903646463603380654835960819191548632356301427119383922781129612743213700617257183859597227242346763339298212841905237892045879755257589882893449822078581023967662481710181258491866097493569615336133662835441795331366214340898672764789323799162752758913699087421146477687297673979188011929663393687334594108574760077158838045552550420362735625820259698129478944935979921304245476162455104590550652651105055078670418376216927105084619594583516774320227215016579420775755534786544029526377918592917850382322045363574115252992772618804496635082762737251859968228118840795038008012725868999021737531066080154833868027093507956803846397058243611733421921015685535417411850730483571826120261720355842072871602202301127443107345150647696239129355746373068762859502223145125325423218790468818988500614535313325932362580090177036901729302747110498742085628467806367056828239396293837541866984675231897519863131929288419497349914126747909336922401976441527688088307603290130074961692627400868900695876045393798151796421097858918498136489102306565557255271330931681794857666550248137515420669115275074077812463751116344068313075055787972840860391040028407497998992912319551583997828007295267615169729702488124378907523230995631058476215910685845012967549987821872721823699835652345455615969979801926633982374140577029078372808608108582916576185642141092391896096702861738133608616934912178780293987853778129611307086220099914271559150577200767861925140687798952022609802120004659596802774116265178598029875999337215432871247649678234385313148159567894979634282347641604153926751961769249703518644008255544915387233847745187728448982204811457284296920812480494258996020950367391200799841878343816880697433777657219923948863151389204379770988192626867710883482045983215809163551129302723052919899714364358997719003909860562049324478800960402543470865185085641101704738223508169869641553682434878463824597440603945673375724393988861240271096272469125624770234526559245955678515398997442167435560402593315084879046647190503683863844119610487663285814250776832410637969399375125762423442647300847867577730968661663054634539942093800381912627950910683207691686785974192573145086595230781753258710911948953987793514759310296381463340128160032449136586359068659909264879403653301310000959846487541733215509328220132020972458147635866105183167269721529964518971388565049774873068177012585867985437063794640462859500096235160325510073867132943501836706838591713308053128815120928303534099212562608736051341852989186666804009616278931682410134804364176661185941699562419128827927605291486157945575595416032478570655231115988257409868330820934912433171962470403349423445929088873474481133585892251768312302982594058606834864727276311286949785399972001228794132156162601019770479436281202951623472918856026843524652379068429862238349515680202481878446631106543767280762285347980913129939778093064964781015687894012286807397905015578104217721865102725290594451268028058359009024167757203354622974400106159794755704037749382575796067638892787807672939248570704262436412661218430744849759477301205531845142939314784635419176217513157142430840734698951386524510532246711068974966866570442960819516647032480032407459968063084783451672019245700323890952063068374492218778186411212846094157395262494302660411782549790030161500316934614132993977519530951201961186552952925930985205598113686087166068228756187854522999761347049273410182166962805829971050112210426627387835794656022072895728042842507537610533644411111694903369352172468272710522572432878219282468501132696279968130242409963225501521293608361101824125325805720258270283562554853079841740567654100337485536212104366334712952146290239769557375621240135441546584266408977324682836964191744954911527873598916997871889162400327599210643462101390723411490697818549248805346824262439760307099122111455899107317961430657336583562472471817603865119564809733927055899227961772923919228317952448761572907604725487694492790639076859474447292340319779232571558549521808682350808141114807873690125995480707602404194901584760070847350988453289315184320851155036821082888022149894414369530753314796333097174153005119135984486935967710760165210240216103783244535607147073808154527868819802717495066786027484843862057339510189482678979265143005010579951330878383276004034328804278729875654664037902161284604226765652954845533914625128615447295750768825834933623913877969609546577546532537418123961874991132271049314218503642862628733756530471882118012880405309038895782967165851198111770517323787541248826137425291449360659432000545532235958231304645891885403681020717602786194159544221071823804496381961428735655410031408415589287460500754823889113304480866924980288296721162921196776664038389699779584814606071035705999893807111944460148294115043564532228969989868845254866145652438328646724579571283733012276205233599410962711352107124162414119094952215515907485797922042159417389731983020328924379988008222242400711223032806739132375816178680887633813464136792443616864380301457052237067006363374875922328610390763766688262115619214941756858346842089738578089532671659007018278033196586811826025882496487326456824629241080196801994593961811840066929077514603175604710173137304204570577495514812998968203767541285216194270436962922563421274475523167195228416179658720077375983496198665964206850090717272230882576508407791230206062385060900641007534174347474993377834613166070985769865283270090675779563936191378691532253171602056415559557939114803615702933896856585859430542075924506751336675108624697282395086467316578959474712607506116474904538995531600795485616553555573389784365264081382229016125033590641297376978386814206696668266193125203525178645392516309596873291655594128863659196318110622658110313483841702328467856747437049686030277932926352293797151807984777560281422018411795721644512894299433442925495568804541973804107600980181356932115219792598342042001552797980905185651331186294270727683219111083743563984999051542260755522103523441660165548546543822440354086159191565304767616855356152208182252188452874773422297438386489371338678105384040765976285926563749604554116057592123121262752458921940731440631958673026709596971322216751059612545127618441806615673324775956217649758191522357830435724423045586077080516941333491997225350150700492126958809933303884433046035186249869415869799157846369198684242852258156679197622983084399496154061568903516153308054996745881113843264899589875668011618422563957247006283030975506581421596285195984820267836683316404643962088468928979510021825244191708111133791182532364743849605762240130041807306450003920557665744056770989252319825366462601553997159825021035636653319981216304083167827830868267683908723610046074413655398287241966083553775369521046125893057729777954074720270390991445665707385440870549551950866737133326656158466302065503804956343198519670720757722792696479481374249779690516929919680648510665527916190444985987513041913422037229069487724588608133689473078949735407921088662206460237747639427844604167765499255610679171655127043216071305883525669466040056389319035621005533118006131488603736327523904254820678875517598659930955071275084262396049521639282148905626003328981114686848006846733779735006213691661642376020396608755197298082354732666041224715885623524857760828797676810925262317256318540034281764163459618317671215859283907316891355086969147823343342331367566822765875854785447366227310381058701550187834493353747067329388577838535855134335877399570113016114627799925259559742043474954278959902620910336553732336577118849469523570596593158934070105220450687052630334567961014732626384275975361481035432280499539061321254227306980135127914861352524089520816613586186829010949551848341304110883418404407672355086351501771960097313194474661089026340385857211467421142541448722377125468944218222649765590905979535142523389578857511373956241412757729544168109111325321445245793141305962007268059717971589978667978719606030822660957504424423163744086314367945525057243598654770262655728275982775292328957032774154289299881667714543871966353405650141988277142772885324448336841741179435910413259632501507630512181964327327596762921613318316904983801642039489941796184755057049459336787745901978237397037004055657816370833465772988689211986854921826175035648775690132517355817669765524181853519212068153431997935358371100047558154737925734048891549365099476054065466900953203069815992667112584759835120855064492867693576837300716581167102013406212321992069294508887199723385949231498779468250469153766516500537482585907933573106404824440065299532347633653107971132271927593709993847055887520923058818471555780748505679240436514048338505631944269172590359892490348162477451563471162224502215981389407207678120386919780361414532740076852659016643855486144707876511684128367544587172387536992692617899330986250427764356521924123928112260482711048556642390231338236236930110993660771808146730172652088944387025570823185482536916971220115989735490010939223483746061404424011652755739627750565835546298192644692359687360370218544066848629494250980701737239961118191125327903868980233858195366707586529633198479105476042440857914872752887189239564402572838600103408248170856530058288389699215333491203137141146890050303791334476335114879708772463607131925727332064239454098853085444563675106870858307300843663705866340763412822436426781096616303108775607204313087376280295250722981837283783185209735990135359084001799548348288488487528256806293260132699688656524740180219595887644557458896968199517410472327955354103822042506527839021351911201789372828158807568674614867478903314637370844474587947341196993021242224516809469644700987119595536385591092155520930675474883961728839877687680220292815317025181196630248086196643898536234192789710807383503974417709135091167481513396238204649647970769812283522835128332750020330615009504870538632965044962728579124459631091676320896012749280479218528636641237762642516434658354581349851397451609005432471694601588970961453072598390837901431878655433051731286901462608572358056579380787784886696048311508139190933448046929288873697626226451169626543093454134346982078171972548583618669337185317698301432658717752774112959588512155351695140632239834209524734010096915774648169312609438132758462711165425405453693401776656636351084212857700232127045414959668508508124636610661019752995734996644804870190956727425617995186988581885157229597380086574399699816628760491754959213593798134077707341725048626563323154429004446283877789151330465354573728701246229112810609599101480828645897618223346008945938250001608020848407378643694646442208607490106839180197287181936885915285165236525559045510185806941168252006444200500686053525493792997017267252859377538554529756807500017742391782745462271310010013260764135139381154228696173987676930213708648463574322034130301238488106737971478503772676387966550774466888902327623359280996974512862367269345540191244917828024957473056444279860225293662917343160996335400390673433284929243155351554510884996685473404647219490174093655311443289441073266947885541201468550052922472989820953752185522390986991618464573284788827168566389973460894885384935491229893817985161418189856501925131420181624374338153538602497709392192330410955807487720320932560543542911879165775646998744182454762696396884511335950809285890083451691929295308665023007283135386621559632222951631505003440293732887301940144869630536633534715160046041613718609110609095790424610542824652573556281467772524745517131463544542106265112801568056597793384430377319878515255243368465742519196551377842685048996359147478786584161662446723191792660188570864255409545291688938730512071987574311824723178924308843772631650715654158956199218913987283599968144739114747288881170200914589927890879455511787755980417502133258424270026874702272665913418032721085204186397512836228476323000842085732274907144264672230321548662401458751881553879005404014827702960422253158522523676497638294109675057294531424066753654429558529083852457263285327193197027388708978126408888560585839343031509154607030025761758145210182087124365299720293255286292865735833372882228591448171124592091664354894384800660194521224217663461681551712583622614947563511811909345729516376241937808985047349216208366395995457393916792328679663349555171317446076369944648448046180261297407141441844013053783362939621806492542772051843404697745119458736769640677898780146711282263498649404793139787867751143631957462016638202828075922109301396973932072226352208578176808008794098766242655936928947686647402520116638724145600902234620572639944776799113340360697693940835838219105213789017889402222776577744679920117763566851999896945370043748066438169165490741714545752295022984751844947109336349466227583396404233069899660727990991758660992529206236608388469294647403734562440185371246656368608889134709303979347649350601040929942876396274832196848964815844796938642944461214510466245882258019167045854380480351302316283294494562776308794888357714043119898544652853826619996006722078300912856721408711037125933624698068605453658640251375462856274934680387657576490303080414958486522881586296930768892702080851945299039718592444756719623911876711131997261886196517954037549502998723040912806851497796577897988382153111464844046362685526656493221724209262777521954004252194679526626781699903252492036744012007091642814162876523505484532016657451849298007987800193995100969229210638975520210423660907600969275469537684131938400046736671290387564104881034034516434183427928140903917134004946638026868124992151335568178917257061266150029967064266311707935279233185604557539109787463240196778831198241012036592178485501679583182925323245449100267142939053898296737947980908488678877205954818333313268469887917905981545460610048724474530743653987212415407082460484476871878440759306350726415465920530986521740308135711229773800393674443507182124083535540625517284661512670462736873381432025500452662730824608249857566169095680660078323680198267677431261817247247044467156999566290466195934154470017607253478423941735784304015393683134141066294909845663244766477137348250494805455641005885170672166534651471503560085329690432557238822148729697438215306561086489700532749195424033446696416325801896085883724088851110591479607032645882033376522322780195631428990003180644174671703588959351717700742672823157932722650857190413220513330013825171223548378183342503485282195732872855712552427600551247455096199098010043581642019389760979259880883761346949758911872509991370540129388927541876517996809640136388947273690435928652591694219093171707386888148385155516026919431707027596198241061294289645022121020444632276292404363462013495728549096244481742560667799604077954733913967257404127510576039389615937038572752890421803716246016236612367588297273568626832935878576502363245073479765409877923430813193995590033231281990643936613775662933452079094942667867783753834178358437277935589233477690680843536546071638512191553651451396987441933933224205717523181818164645176569860293652791939808966055145554826206698194610398442101533634503679032653107337662036284169355646745360503372283268217991289478035126453752687341391657557458475305728475666764642149453682627997760914044846433647651891813910052192206935771210425155927801832650840470772041362349968273366149283236567052303167466937797371232855846653613052004362615639193456834437432799000470199880879885041513441756887395770173005809067437801123310180087945783508284939425288593467542128930845726826257714775663310368084975850938113704627411627731628065799052511993637395757399126267787836353722373674365666676366779025873549492883543044863838004506496809842263764796900518843699355518660217802963487359355002410345802469994013531678491061692540864454749516953357841086086898314955974169588534401730469821403236105091605275137973029252582703149756751975164346471758221387194486218454649596469140753468999667436460611182377342940349465177093232374440057437513932025965516285570057857228065258971306356797399682149397059841083307736236914096032176798681980006246461983035235323956974260758672934630655478272104767606170999434692206306422268056265301668848102994607711134142371249895655962192441974043548802774729621330760967232734748013526469970389564082018359674617445013531952677115122748877395723437133522900414367711512686745829061521925865757037444086274158525293128994508512020977128229606210585004884587108243296598694817235015498773425848137921288874545819931754567936781363388515916575645736060570620549471995935621377983394321740010044304916459767610054567194509122142921482149858854245242556167948895124695549957225720792708887936464691988527343653402784314199510857596771639374020650477445311795860719086137972613216586264513593635442445998752112594538280124143601521204906371321133277871089606157239058266067918745019882205841962792880555373156251970192225046810672105794858801615154603603091935029007506851221562208536430924257364170852762264450454435251717711609525720396980830376099985408045519105148660837799140902841045593765981878895598367255018458283167058723420338018467752537500740544198502596984924451131980742871318568181843312502285934231597829551322228151570388547992393183097248054303932830671660413986084218604330749592032227522527365957094503051927652743869736812241095904653258977997196149291811839943630257959913329167016230508157900369461266625477586661624471945925177667959604703739220106467359622160543713220474701431169446215660997480647463772618383942713185591619151433574888720082907851730097930848513379876541737689687390601509707531398435846395615203870466419208078117121078217543358244106456753692733300386387990649959781940766999952886825715194235673807317482710383321834445364040600908557076660982339805411259750470977980207815023897932739211561563734159031714539168671332904900607549085950100873136823466324011955798784864334597846869249224493777038220776353800089160712079619605983280628172782450069864874096755770633029950713947324919599129352179615107450767600239261254532378678925396212917962035342663358279983214473012328291616186940406748989534860435138873565245630328959098923470084341930776217789278262480550831318608794927527297835659123734895560313977504041970815627911619527455752541038369667746242952243933180473359390133413173988826306365633922731185547756597691171384618832301302602237919211559263034592448493431931648167411062040252780105021454865426362040958614375607008130334174680529523018592643073324237578628195935905535524157235504508943974276768497195085235042134557367232114451452105795709290413591927586322716986718836260391232809720589242940191056157659230631224304766695072087158553891196134704709930489867873159640209530242345702116729832890549426930308842598994545333751051693141061473513717933494936023635041823393650783166610044890469908053640228815338194129875179828371743727113829144852367393654672766860037895999705444365855424147791062664271264358652672895955721182781219827691372265148836550661171889160394946688355215861537721734812944700473757372486312479739093844966513492633315283506570169149623062574173892580802243743659979306133891005951537220822110492596833269882726779962726130261119789512145230180485476163450535002371873425114914166434551295910362336059533766629736248535316956164529042295042190854768450203086918203025259783870783805213334391754628870111216452424786218619598250023933041326140044623669819682648768206898025827511505378253224114605692580716929362540464020633791147593929799954198990739329250951448447972593057683276791780986963176083089164678577483452783706316456282303851713720526330941372118709547937442197442494427302185425188483337168125270081512894325815777979410767586938103506149217500458642421938780812560286324575022506142025702665772479655182211075537112005959975158057615584248660874246484837353550872360178323171882774290859578836987701641009332009774628641761534226811082653357488800664811319250128129690058834979637565145352713638884584924927054888598608293957576352571099995845921526716324245357975996979309407431819068810632994840612426956932200815979904043068603879090194537086521551349299582207837073853101334231264138152409996805961522367585683960586808701601983039967135568538631625875099125777516006629568189529764019279925797798323097244370786859352545391034295091126833080442486133470659353419777462096562946664378688763987908680704933863110067236342290397361813909417635328262066762340038280800356120420103808091581485669862436024633036004748951863692872323160394228672978276050297294457597068862347466142183081400480690308883060648409005345120735596366890206046238855538512383768277053448885379950875029530588570700049078255336046572463158671183508092018653412179390188960697131089484930250262530106389789066612255837048919779174917991804111243797447017521402725585120361837408461988085448077991099898400935408619856269851876506631679810590805160626071872151738407566993311798895288167698334119922178252533068765107746415358244483209892638385336400519016707759737381406133654691002501236874954326796501250578017832931758635160728223608807074924262378573780235106528541964879328626554890607729052139857739267256872767513206149013920972032955427324929476901323759722553878274423918505860299564168615043806402770166301971361789072562927204784076107346157526245333198933641990140937470853857329783470423367091588073309054017495809993884458342646310719546883227838867484670936446634112537015648280105470886938974600996758282420867082715452934916216316200605731918574890337572445457662525585739846740803128145020736882261958625452503727119262346838730715160363553959262476640651086849233282984122237358133714977064429844325172388706236018050202103203320023713709016321082784929796913434878940996054466013458941454573530056448354025356948852336600302024367494545288095255998346893377695828028591829720178666263167819520825340404232531071279104343868638345331084208329725819621286743339547080612806801322640340678209585791206368146248725607582888038394075954032614438202362290144932540010231018421178143680522120161266713578828174230357907831467417322230216409577376632960515687781160946784649459242021300611112206771624035828621728501420101903928917527761029326445437017316901601161425348138323791099090759958524020706300319234153038174967370623981705585179296649322848557578013332245052228322542687532587555617168121385159900887313394881536274974828697197306452202424967068236936585536911748661238919225414209879151110801276840140423901431500618983623215167418649340002536208691986694687875453233786866617910086723319075162572764892746082105513354579582536433184275194860157674337471702093717607582968728267432825335737646329959061828111668344023439816582386196484059586662116096036877076367627800669031399425932427960304736421155232893114124656559385328435628258906032798371580515852282107564911219215180625450334887983094847940258166042582437478783201641088459262016835851871541891336609393018709001799339594846997623922407360955428188682012055958746534428193682300881702628425589359105443125290274281321830483190619002949367794274766178642315835288335856761117327150665256543151960411931804138858645662683221844141615623915730534107165284533367286967453021873967956971044415965104725713618088133864944554167596103068644896577429498947354642326058102808597912318882869809877707406357174934270336472401357741379672194831315391959659638203348045292680570267214983844554182209536921969930345040867340382988638767853650438265014124960225697594155635723038037707361371197865303661729616066372003070432213367579628020511178785662760775273624368529074868126977697915384874145437163431419465114561997261968668322080731535391370651440635772203571026591912735475409987024631319651202535533996967036226530669003517355590071796833709481370932888956683610488150493728084545587194512411021801947913581276451354291757880626488290983143693146089941357179349329055057634365677390267273828865031667956460795694497331891287945883274426076874242748989284468863448062804355674520625553019143889023947445143578560119756113765449899232138022238812865887188923266848121765096898322805972787811700444867235937973749171908743253318713352282748461647850504525901901622185987712283754791010795368247715710956869211924885031331651300814783986263846845667870643036766675626728395769002007546503937748712996487359996658383931980931555866960549976128904266562018676936115072728185095491839641286925731838594856363006865917418711018485710859245571217725872602229921698774353871035638678298949191853726255595679080691639302027521207598224024533324149354101143936936280579334152932661511657722557703567227595676280745127492428612751395014969936452218480698048201537277258189182628567365943350875546753644026387139341364024807369097392132104064230380718248359618553702526650040384210487394604788184487801636823595745208174334908226605762458807930188378546220989911525665835720903163177714867503813195102247865866400713789462059003580119778018923469635440396470452132883172021713448088012660018721304358171365231917977919368566855999149396082298357676394609457303681842760450401185253475007574377284267759692792129826847164340614802673915908378827185680570844222766517885913498918545282857265926625358644172216781188295236378077481607177004317066179866411695209082225279917572082992242433514485792495016508648984246710741588476146649251757031659449778590650701847429777980575696040387937984187088695490773452552540166160745936115394488726564679990435293619700106230984765097867769214925483233366637101206185213844050022668329601359222550838126418227173604033344678668613978709310922161335206480843313336831545727824740299592507949689315422088518002714654252363838865144880769207668632969449722609897706674577967319009479823636127868496427680136871738355827952466969905643410837498489499605484842748720644569995821371042843285289550823735253899308581838181207261861430403940213956898996921347572621208264120634441203861450396560478398228581313504544572110790540090399945716968882804389915173095781157140764048574446300488249890849680220947271900634072302934504773556933756336446226186970724450438464619074854979418300805863704382762908014167359661976108318822171469387011140201632051924347602586718101698722751116209083178487006160692642288017777984429605518186119029184183387013207433470900242904511912309687007809711162518049552957211913169643516203341350365703595815351615221867854211772603479985918218521125006232979542369720176740200498166284038758771460600996008629134208287660173076559869138388004393937302188600454067262321578810664306182675500615132007510266509636915692693053703116554695944707533943013611217749000950647273567983149940285396743681277201745427576036409617794420383769233449891846655990371213068625636106095349621170338541372115897252578492197525913058431890111369670645294908873412082224801887540797747053043653584926673757930246924669709963938190209481658068525481483399866043654703666377834003843018454790121966659485641072381958255855840761438728231854421082817635769752042588618135431685618269381114715546182585907833701497842386136124744609126303157101989162427060279259513848823038748518412695597818899621363323640269236822083791375498703611547088286912977070401985709460216066388871224074488344200104253976487256719364170210438256639515339374385330699020046515831235956236699775143851139082947404240324444851348502971744351640036339874059643270350976323633575971622550136030512252066031390677487186737627459810520858804133348544674440168453122231528587327838302102686217467140773258407739665897194726439335080661696911386223391616154900852070884016403303316095495389092894855413128410954545368020817635297914645828969807354210390193404154562124396414659108076382290555660458627306735564290220843407095819221698548015842807563199712249204161218282510050170904864366757781824017199222836419861236219862326291114675345526142400739616864445211216169008929020335751288597568216148633857733705557869391135495057150052319524964840656336803440869698768652724745904844814716441801815727615730025451385403315111296519886294154102118227620831518245337882739247873690681616801919373774759872063101320098993795776060081181782573590615397453642551293726107088395632628076973640660673324099489289668715250901578034085801373596922479217855114566367858414979033308266493769053946452786844106815870796593887694131044771798787886168713981869973343088958736755331748671489006973226568309593052615421504820017445308879535205262310766387868806732824618388176888146232193401621723353892448992140420049867249316626078895168425847833456755262389216653893320949226358356327062177802317115788998074261719726488070982872732540947969220098616339522233581873283235836339888953773183416125369871462230026717810086397554351908852807392749627203812273706689407377741648478267911814146005307736940851860240624312660661126116668221824814428401933257945967405783692249732883038262038476361101400791471341723364585520471183256056042588165781912475009916272969662553968514935980346023495420066940977743941266144626362639245119477538393232849164151230732897201839262089334664639982948171648490327979441281768941768659543961921386605100079617931711872234073564880996898160569671976225713273649736031025333378822073019993073058288781583423232565069342954999615435881268287064594471779253438133533980062390392329986845065827774364131077396256783456032898505170387554617570796064985977193394738156491668440928035630856025667541566245931624911570969938156009189921638367456434629276239112634373996425639080069176255578477172431071042024366314426789519749799543044934192785701214283705206782114350790040788061823695090460542046397878105170178283048661158428972596442110031574510500932097701707062785361387659696599664408936062470534838773594284463300492211651283356743144638254489086905394463285170630830726785328755793274564240531536958972616360783049864382901616685630063660364839065484300641255188906005514554447893262398754585842082397678391570876639865120558815189098481426527646353381117713667789138051523970540847343728079252013034482789598157970008282432536233491451624130735394905942052993894651276740237940513881755196611064963615042474466659858232643007405048779541027110352268502213734493993752132012913026943374957977775825122984742816385743013504462461045218444179568128432214438635905794718808651173162590432640766618780294707736028226106460262784305611688769151625571358303082250308894030476580311714138366782454991398058423605223815885686393606812815502311553989456316476438569131549272520618564779999624645692028154007304556682714424524492059491285110099687667102738248621451434344262871930328156669819775371354017817709869974183964598203752887877621493640269950304857603331068002722013433156575168806466696546103796647702647786949636903932460623215308216185907104978333046259919693385748195339657048732587385077328586024725069938407590783580122654055746729026292597825448068469887481127641431521447240679712904738630550794281887439716991652756857560135653168137322844686583806358015006003773191023710684786246473898470808685801344164065472229425260724441226873867703013264585410913980620448353585374765758240588962036985506508017335211709821587009696330822009520994330796618551973487046396719579695111202008851784008342996752338196905638337628406127653315075807496625047711898788751162423055100860071505799155805175899121806262628301167959769065719604641240870339201714986593156535305147249982874337163389150968254911877548688735701015164487765068820678471489245182192942660980775336596364361894147238166949681932527897673875134761414895621911913466957336206132896856172689242302092957404879462502886430287869240639391038902664784126339700717913571956864425469270120095755072772094690490840302626238517860307356182281873330911943560186753228345421131270538006262923622366039742245727361358562169524011870429629015132937486381871356790588654303904721945209327247402737295556704485910341774499829341349019527378418314928436162949339624098275362929469837544639685952965363199124790901254253887241923682173599800902602241258966500061927824266922741952763560555169535895080185177659465223202237077791330779609209089014258624132365800311653068829983334666382463972754331701556505274076536095838377844140234564854847665061977675370579547625244877038166597301449117272562856935141760629087766644365882482884526745378976193757831722756868143450217089577567320119482799004560096331833086862621048670507362711011904388545519930760368809388764827879085545426486319226689674906461946422967211910560860938609739612935538220900812834694447830997972499612272131671115110657568113089648335711676202951536804770232064438819914509770554603099724127617142726872631670885162637955650845301062060697691298684306207907919624666056136619117139684674956462365059731818308719009336766551010729823167784641512677470622685072542232638993184802809309735657707927550448651085445695289060579788701958303148295699195999065599977655394326098181467975664453363020575464688604435108829914052729209519103858491791921251601255905918876116976539866666392606773476704811637966950932517438742362996860681024325122666429229507772878430825386560044877724147276657777091890451355997819804654516060556716248730119475944504139113599307422678983257405096519606827229529268511441087761433396775194997855040473660319532691442899843018077957104630129061769805517645842428642105087556882956082036967542971991413055461252969430439344611385789039451359454988572686080694170252978852236037897623390745905742385370732126451734048286641294260798803012373973132993594229517145254260197003804276235754980236087791631891061396714504072091681414864701311412580394449865447630094773801229415912169360232238875078893752383060024915841606371658908925113961349328361447103060827329292907881013187672941099458703252620599418188036331584806162083075438660884759662472344530891965488316466358078052058170653074691098444502459041217424095664518641635199098029581790137506143987714676082642906473883231318578940851894826642092311170333136538876250884265469431063625912500332841894669731057618243393614412177278775540691056537424893054293794119803063525134624666022774588355225434879443533664997018048869166801717236294671836851918987014855153277967754933066885226812357739267815475844346071278158759506786910340078188193482487300132701899273900599011720049625123811130218006574311801185395240280890436002082056767196612774015739092417946439022773641383762173472213142465695141172193788982171945832399636363907059880976546430342753343923933815651224308779600994614553571123896713799858026203137384533099146205751383578396760168727313152878356593340076143334034689758241047870087824361075584359926920163270516560472023242612015338193931792563682294360697937578034655625241460704170947798507256023903386976412402166581884922933445743486112705435139592526137122159046881960852527923328093490448876647267669495385091656965100557041967884610072313809872171614760280657757027509567383999507916973084217344481651425593395393228099902040569855876642336798079557969199182814121641003302898798625037007529248207257331848116663002192628406051323412535204486113223423755058189538519709516427662961220264767637029509051540637012983598666379358433904387622083620691086402644600822996084171543259353664703188053034692328398068525505902080486963115171835787357419443828474948793974361546382744978193071400469119014822631697551310888958703168592669061228720911320541225267017470247574806560348736199176327122356867091088388094230224480622862517822657320560470039721449229287227680250336059770842759660713091202164412124413767756376917327086378761322146299763022703477194900912327964374616070402402908090047932893130193684276433073319679899542352265965126039103009857682170007204495701999302851126772543378532725083409639163343094563574722134888056372050168327798718112773410378101838236064623423791697863723471788391698584661922865834912568825966592739909997773760376719635125604146936271754298617514735271561903570973663884801785236533432793155766690579646565374300827789231166941721757620679131813545901481444176792610973257189019851355211374820280039864022417324838117757463106426444257908015033401303342637590300336365040976983954866918511546752211320176100870628082241410920440042273950314958306920854045450915623664333355397684737292142744252593227428931698798620164949070901884292114379558403846387072428022967640021572427302242556116352952698080045943435900756947394246476179947131437202454067056811767512710509403620068052696758343702651017117780650118075233489321834447960140165215452443834498490259599147623679138394117997814816207824620258833189597428887282630558494913760109251186900582379629332685673293564993084183218293650065849201794383418055032622470655122987030559150912709358171855083762657326587510561763700727145148235223256204118813925770287893895257402629130884524472804967698219568748562460711364801885560289423436787745096617669586729926106495063080183572702784350041224489372455411526114564945807220695659973947858486181938685617174174350746969501009128031616692566064598313381563533517460905425325025451076166622287058829655665788740412795830861884623928019197189421131207771593619449974252251371406562291668779969848252670060241069495360571148232980164209279733060524142947734966565982143894644243680236848411059696125516835917275194168613473180994534270952104066465671346008313679012179048728968933259966583448298254930481976393431179788505209904113855895710291041273062727577979630895593380663208436027435335231316789692047145084310025198360141295254594478398208574966936915143997227855655999194208821845611916565380478043471811058003697678199518025710592558397158380893512784191449426381993553389813553636200796864475492183809946985805010362785993373691261159669311705282433101745404904685492437913917201347814603008727528629751223954137012322764288484795791101273145510266133951324010667436513892466676680461062837346163488438150641347934985055020028478576942674769811044682595633724652931016936971473033311654324281102454146545695312871615180237431554465139911135332758670797770735311133221102081586494006189849028802022591360494014942267790867972788828208128128208819337706355066429711579652701480890549776182027505538864302365894206837488818541518477634537732772595070829335882927360602187726251672331259718522766258101574048162531596607181884937426077591817370684485298929862091125245194524459098588635565801033924314124228282698876167478173970443815490697925361078512430743656343575528368076649416262105403324551985532027098023319738787217712502538416909346236426390115245058129633529056845016971805783888724013520485937068132371410634801033964469870997683475767045217119606964741909534526540085819402537172022721904146250328519116559623120474521283312771580709147184591621162235621029598209846491629731726811801988855727144608270279921731686514324732667053684965664805568034527569388973664095030482304798003047836321135952244654952182363242765786602138723978654245189329402098015276761874977906756252557831975766653617362306436542229406610972147460700569901659195758827397407860811458519614255567822490101943363595054398692735978315869955913030807710902139235077376399080684130969490480419450755098021654565233177387406907154649718254417661421530559718774636441903468616049411438870261330481908573665920522471527839479191622894588893096102435782208247889717647328833954496586498846724119936713662350787128613295273044544224809878834064617248035618650271525243861417219671583454931867466077806653053424119087861808598661646829873941357601024178437140096569088064217096935987993383367711520417453412961046981650072880436496741741920827556758979482137214402253358659926311357838866622107301454092769946100097300722204362332078149282532010917853620574144832572353951899961015918534459202370330541699433068756202354892651023025773655765312975006747867431656878325281184870892332218239993932753875291966668747744140194173394777931531651788756118993468759246573448923262000451564907417517277045425707516687011949520841199772022326099842088447327602930470711262676945375179380832689044500381446643057635200666472923386203296383880060150586249394158112939772939977145950113553132645102980157488040719588522013142991353358191646217761999224946789973814547993638995678286496525233175902272773121989943929464296550589308732845299623257095684870546899395058020553692938085702069385532438741304121335549275373737949748058649295050122599031882660457316596494073485295807002810006093970174300920683343619774748046303417414686201337939149465664271911031651280899510021073523057850502902332525394177885559092270675103221834486077967459924848718163679935545898471977127380400136145509991158093772853479204062532383554790440694846805597339059553671130835006669087463679034972505205542537428837837177193953734253905635819316302767776183375160329234889315836677614292820989777311682184717084343464535180072389496159640327352529053567595553992621585843471840289017747751945790545566193559187905359353999907710646518271737342496874629989469577198200169157331176856330530539299100929810261507091980968826201313670174083566038424132307801303359734920921387802909165483024877245347242887502377981407382937919345675626118043491844136113231738099313845505652402261478858447037665811658908444602618545888849708707811082469850950533595880031047335164659682164796897724893658102754745094578608762609243214038211567407903013583201668543497192605625823542488089265786768883320562298130588989682807207352321926340447294157899834842826902220544874120576443019413014844633214468544913732837086518202779759645285578890761023879823797928781147650883144006870541406056896568299076055178118268674054800465868200193300826181693275684145961823382343538031282531286396425120094404902374477695240987950562769541579337998053249800089536299871318187312274656824012470943104916492481208189657495587877379423509857103350359701883991907222519162722864905266094528109089796148344320615947520285164740478133694405295297471109647045267653348475188977075315827439800534018969880267634409235632987504959890428669165044137851317765128758440676455552196950827558280552174055330118944202097124876257047934513741447214740802429003582571218140014492589629269716306353290971761058548349166384432029834729864757332981117534318888883318816853493309075249492796719969793883030156521273740066317292673021978273889633193584958620983423285657525818326572886023293650111411346039856224057439646660404246950822525414895124190471546106335496919481475227642813718525900487813196064646929257704608501418262400454447064961875199762560839607989839899395386485257650600276624537066276218460813947341017707137341529730640447554899761822733307117960625251209988830912197141639533412643268233462162520389455474526050179391078228305802050460229858415034316242044360174043292052609584844037062849770723083991785612816035103156648300943729938650772768729699913866136719324707322902087584771972602964652746207437480533182318656513356495792781670269412083151716100142768865193779635018732228412944832966599279622226266423714459001432815194794875745318945471543219436879474600988505000147049234265649615526667692805447391589777966702763466067781813278802390295277008003166174191346345371022116721146662053162771627597917069570929161190182635602738232152854361142784887607277758193158628606103280788464711462572345517087396820147218117817337426005159781538232120463274867233552975165121998592015460060076313573035450559165404685345235661279793637960323767530156306525675687147898922896662873558697312163984444377766287672012902459481632442211367261122837801225471643973184723552826495673814814456764865081840496007217044637087363496563682061047468696570690738366617414709959746250256087195733596444154665673223235404153346510569705808113057561160087596743017636842048398784087529928842222137793458572915884623540758735995979263690657958806781406922797827628163341511404689712619145028383582923339235070097785945583772866221467930409341796294025575050834334558951089042435680462943551568915253179776243758996513874146527834537162734159271924329507395053765633830209382891799621678682019863479208558194188178224939887337249036860128289312436772241693313249057610700749044528489534752611435294471314241109184680735598904064525034761887804410859874744601934759731908661690698587616488620060599481905437386410105234838684578347580019315387471479521803131110380456931670529132212836576862546346449071913443039173514291747767562385581630455110268882452439983408197997339324502437976175465574491322775921512269114456213720667737864597052788514515748132894914519901915882629236492211901008864973591224002004357328041851316891949090570492915421459791282156763767868533851181022363089440579297389820953499097971809210502226405389806379157510110340015877050084716309949033744965742013730856479524428035002692647857869074242345483888938620096287804200599946322603954364490222086557091910734598630222130486730577500665710232170837750822157160567485218080168212500494996580459894423037732113269001003442829793612499845392276190207543136944281599596702383010340418611579791876081080382128205579039267275533546708450691699100732674081695608409455136231290126887079411473704236704373261499170886667991515437455661511746049940504419892817616318133374657791317700306797393231812513415582520340683097899540052738965539716476978874603218890410777041247902251459553684364358591003846427149543207682978710271174917671496785512024897891105812808124504542333262571897765673995440323282659120894768629353932678304927650972084261199353787183327366110304239504422919550237001109037761146144536066588064804531193324870541314531429047740802880835730391765284652818813209693379235623335162881208181599820924615196853670043947381998191951651424136808539215513455294391167872994290124188046153316152080774179797244626249415705764156338411029845757754059708793725101147645914487350731434455286329174952525353940698771384397026586076290631488785946138647371329071548328213428213445368530281736265100696741981259064959246517980050498919538817696668834627594615326447374744660373357877686276077460445784754744958137095219105837104378650286091841692949451109958591667663470107300899380003655061285470611187925403061264579885468059360908725183388583323737683764899783889710152067065088967151504810848538101186138812779143482757294389276912735806808279320738525059626250452200124441106941570371259072793725229999232507283424106515791456236360126517862543470123659242521078205438629817107768248516068134742329710620113419261540205967197481675752168091282618231406213084373794124240373354128148526147537581831252472853703461181676141759774609027426659535528197505710577710183330222662448720803163095836538291414208015854588751306508139038729737741855167504992611035441339475892639475122331289077767366410514843097350274272133470325926858285308357367725254840689342038643194534239541963921815834509423921378660093653021836121494499935181012762569063049290966581822277683251142432159870726361513290225334884730116120338515364555851575395273784569202662079583750392198184539919130028815805433728036757078750411174770336024118251816633813471457854477554290285294355898488106147033096871514267327596554121283541234399309920653183758232762428447330992560591320173313831594589493522403528703438356417108546807988038041624299982859510193930876702998296679805632814971829239674055151835943083470113251818150388341793783396843788349782865220367540771862271531804661018315645232204398910202342763234022124604499478951096440297006783072040033714261834542387273805739982266001257722695064507568805035881082201093447025336955776188295221312298719001313254742192560762928440662850671061850415912412313420062361184810629454504934998993367975182973171059031135236342866178140461014427739940067014122376560583009046035236537228609994053451450823166329114217774182155613560024910822286431836140800124432871652455085616909852983358324250812206941686865988706703806585485031122581962863496654346464785269261389196427182569719923880144005059880488614758810583046253397663486795508763565679063554429406090769018135802512358422667420894975226893661578582841148538141491234715231211766837592552049608199641764697980037639204276907959439767581742184414275458254238875482117843642509228077973109004571069192161977176632241987305732235927594662984190113385221466061264814561835576077208561175148575268224747157115862089697104860968435847192211028676389360534408377418551679246789458200887599581886933849013179117497081906259547329178801955133842876678382154987569525190277823070669679137632834856073830203811639443263769062480269618838806174737338368596045617988945253246250139014713421154197588767138484125845799748928672896911053305504071410104200295786706623743234906803960826043034839835189512880880589409069606943684438423419788854067535271675810154717843162747553673009539170699885751442613200455950632914300490230720659888246606222631070591689803474727981972281378807674256123215643399552447612017575701816767034161727093098800889594646658687704135885640353705412996861901159156438598949013250955829892691601021364783737712668125129541757112190395145117370692913797221996091326767945241199925824262382854040941426284727038828429732048946993073146242815365962006904033462264332541502516900848986519793086774671036113001600911040341551652154996687665753487820390534388013690811917964706092356153781253268582531517645741044232251696402894181445674084189882158220462572182187137381516326875112713752699073175468631945245286079232799837022882272041809341396307836427964775438170640801334293093497138601806129446873570803696518862350018719205696262716435481481793597431612930400261266419453530864399433079363897934089241968496823800782112295642192459342761385580315970948570608006364620118709181786608556056690220474983523691847162880228205042978433302684166450044000933868181661497088972919895847632381393360098908727357127760092447144038659776653665520892518676496992112684146409616717799564869990406008236864120054734648634293336210334233298689290490135352874776600028680501777313539850252881792605618395554152236202561274965433543603829007020880303382094763406829509351782006769120159518461627025692534883225241841797693920437875799577748854932774277505599266763343201896983580734668613112499889079764170756270362473408659541240445255236046421302221362644952918947170113516498391064858216715035088436108413960500351692146799845745887110172864146664215710887289793788502334866956888665983851343572860996646681976870494374180054634048635750290539875880460563328315038120683845959259708032132825620303417373923522452678948943097727511375626354099557393161102591073264402553106798346975098055037575574005582077374665115425256239572347382689436023599747631105283966396126035770452160998993282512533545383908943668146057531614983337273838775893349178488932980868095649434739395035143322958451320673612231730703475462240786158888818092076685268119565340154162975894643031563356101777468520554976201819958287603595282025218762483872564649240083954260461353840627905250385873958879357134050783761230807145405262918108463119423626292023690740894632594426062751473794885307314675331521251957934719062650640153657020888734488301853620091618721146585155479835250905314319985911937755292519354975584664839284480295397723995125890753512289911959779358275001103632472996365292621546132053333790923317522563099461818961967187834749909208593846240895186143189042552351853616621960149324974081807134556763515179483226803192206407267051448891995728363904423996961674363967764535015101025009025756991996418560213456841161528408333456238286042297413088441061032924721638812718931654386171996178226564182153299817717172713575995133106734080389035018504661624622032846094543466866535551332863274944898715433380173873045272868028758318405922990255720085796129996939738465553805523446664456462565235213195980960968253567329667282870086466102167675984497275115042261857728948493289432420626657796050727031441368474895022880591317220837604716606180513553398170638302254165256316869797307623582204331794990784728704959208866585055346932354611463696556767968654392150220747860447781301501268129441526538032840482608330179337151132505630082230438319019810239748810422414517825332095556255002103149616203080055813551804600594669746022211941164476477395338166636180607444112929969677665248506324838499871878280084256666850047903579683773356100552723275723899687672034671577987733250998383741360214862182831633123893558131177060613880271309592557381790220407463651259536102022944940073951193645406478300760747895397422961063996130751466680353132510535806999303393903276237094414344885249339585278553428447409421771357874263648760954116789035368958746654460087979119632264690310945047682633381306174269497212686293013527067978348221625614100568333875222838780285230937016420662316692556674443934482375141250550444416908530116266072923640841937403146664122980503715769902041563745057395922882564829694084343966483949900882822980657274476627726327459372945155587941841418834946621509997935171325794202268723292772817186790297030554380751264698014401421645361481856447002050070268950688441674973682097326276238718235339912910561736109881026050192587148142520136184934888890176419532282818059587224232962822747776871012603134451786978972623792046510418402272789566513623683803254102467818528622266804370628570477681646708667658448095940823857180738603718547552841789437515993204999330868436382366245505244021469915797026566393172897206557614369332813082484081673771351850746827338640209757327889370308915331977216155323133878990722826938323237820229314630068519114533435159712624959163888357330025848230456264029337213328456501182826045659265635160921764821425396036868624225065791089783389081195983029565513269720942560607827933668428492574946821079305927250887555492058339668537414413899586411977747656434480538167423065253211360067777192779181925091859077165322902242667559849793458512527395303373654777279288609948974028027403939293511836877610261492961876875553063559043184732764128302005686147096802812189984668337355370644261866480597195074867198669226018043093297774110059687446540171880685257243848254857361017901493468109498578740365247355032673056692605996193508790126976967155965546787001128544352936391252117783311266927868787705825414308593580591457276767628773489369991424124585898393502121044615996957272432639379028835763842911348867127358410572920199912123829314427278056376768224041868864834592295231774214621729333122040136430808753583779706863178413715591574502080270853737161799125401233002789023401829486789360509398194287102588467398353124466559185836791605428186354992301312028848433870764484315219597695020523785040543774775174775937288526179495642593911953809182551034100911125588741173255927400120438066647805159873961676105361980148437611450543541902324666095659002629067565780845790445390111022608546036373707098362221608800052895291309837890146218939231494758130905548874240196737993462021543559376257654464663504906164142231761481326978120514157179345341484693203379836703188115731339732963177958122326142071915012436611022082528323177671894916328205498007244614697299610186927899663581650821073408803609695464754453936826340097287761706025594677335096518745009050888070744855655967848531455539846557717418161221505699800207563588676403662860168398496845423068217377497447758889710607036677656077043832214418655988285713266236196911557328341447790017691464407322412949069636802572590902768667132429995737070330049139662097185015830839134140767192374161351335558702154918842390318161956254142386193742701523614457008285390867038704374016482669902087167927444814427330517941271668026193044252321912019548411752535846467887660995068909104414740808759645796592602070125758117208366308022267316765983301045908929482461869609353198626455180212166616811987957450485377223295352389427346498674622960870389641172392389852273615000678889506047036772871965138673711236832140990388361153191373849393099309664347125692242548727358868920739336398723334441670535238848877704162097099664382136832229720073104787386630652282784901202566423325337268563865402025987308952486731624926869081013898026554286430135246368298459179285130529601659084502077150305859243914864537661087869988371782715134199958276636313248741182586130349177364142672108092337211420534066596182762041273814083764336207173785659215918749813155644947971475444638502565875507989140875151979616345760135224273522084630301451815956993346605761810858323155195715506773478140739569144847101789695391236701392466733324806900035610345657596313049642947203434252166764957786952102897588493861847913205369266030272516553197933314327657936799950166133652951437957190489371048609641464062483200308412590149007796925150901101641687553522904040130413810791202587027856978472051666953734694856415688113201710757750430913497890778660010923341586817153506394132238291935402932232451187723809190619362326658811397442876257144485058490499118162609903752541501629185598761050772492907484034419903976517728920698635678020112527348046858109044276652808386632443775266576632114629169911166666284179301138535100318639397758746634257617777807301473368388598542290730397208601689084272783055874072537237831281852514356182844797266207039223807173625573496533686134303025370402596602654150869236533573461316032524640724808656067477906868044551807422139888888533617255510998631068462518170151256606685579171941060713301010842567483192749037978270484871244752728393688965454822674902690459099349370055676936501165241388680119046258802257892135960515143653926962361941978666791178381399395547544154282587211608902707301475649199997729159856287141362662825645433830787042349783731431760673778626320153831556161185212800348191582864713875285007028050182889316937653486436435783615681596931424178108668003593326350957990012633214844617160455466361003885048473533760505609214472381561222463560648383861718517845663718297088123381306866963237786885674531278317702454739812508610715383118494507076206198764947799783469384662525850730344890906435875056448278304362656559105965444117640002563039866204858719390619368967048702078515935408532254828132493279634289499937053908118381111768792648947098127875544253513157522448658069159162757462617787393047277524772830926187407725183706189122219796845868887071840144141910975161410810523573258015415727533942226301156477425798152208057234765913640524608160376699033237476640463126720634735416382573739619851110460938831290908725943376749225725237067269964320290807526203541431285295953698445329123677962978903570899135455064874200274596458535486008320932213977241687402779470247334822474294176972785091950636162525241224490581917345075576049193212000846378628316077303978919792387811859410442522470933957800389561282530338016088172704096325951273435035958691079896613267148085465931326844099920976899943291066390907549056372444107921772356320786989020342523032437923502412946775090915488960360853209182747665493731813595891104940881744786307064333261283681111778797396053094226750847888186141670277660944422121708012190224991557669709621547718842908930585995046509240855464447602944299102349016204457443956247433283856082878497239802381834968614620530796014333148490358377798199963500117126260232033394321154560899890901964120108434855998826787255618902766212567978633442706531913801829147923301910097833621949314942022762570537532086912570045527712086782870297893930012639569821975126016211502524646261322823279380045180097363971210495736818154339077304102324538632025645001750182950959231489286102630141254418775787447598200847453873053086666061933519290049965905614728070700983624652871643431734107469663367983123806624628572492905545005535344455733759653809984031723417978343158508460901577871477919952387315045905984667672917958738632604150259493172051403615129368337271079818864411505210107794126645103509088268403717640405901963368757305495367570121617525308740262308612725312234395972247903999249268464058485608395752341337574041807434839122897852531105104770327743086995670631815305600678787497777931974144234107680128263151924442553154737267727850022688146629583621316631481423191332271243992268049773403377776365336717629804228792606850000266136630495332261517517922727348922178349749278398934082052002579979343181144249277332530105822264705840660767666573370953001396576143099620707902690404583425461033935126797041410355129046860611012494834899841448072446820124445318548086053613366386700923538034067227004364233258783540556741435348564194616016571642382268208790920416281028951606835800809649992251274952735224284485349667370362504489335465379651513545678073463215105674590294308508053821833632470115299057725308037235334375025934935247075247297993732121027204934773826270960825909821828549386564480465301403901551076959860782016925544112047908673940179743481626986368801244753377903978252975132446738706268027073665298127829718169459246583322777426550503287063542679580333587684215402204404299220033346864809923328984021945085154256040085298594004070317959906350009750620026473609919093637775977682498783689224812142960428360417149188005478709173662365286376874384397539526245616426263174501481845986108442067233693836928907602522441602667634733806029877411895683546561426048264737857138935825786821199953918096846327659526326983185579243737982052371837284976335077805054468808885492531648500969545594302281223494422707615386826279131495878561936297816252047718794521071361366024346110222126389246233275406462833019304920941315629644692480539760969600402041412443126948983031607165125965273160455871500323060622888671418899861682073622070494000498022012224762651676624046856670047318762359068923659307938378634714672857131395616800800209478839611798923975001537131700780177910356755712931965339865325957720522158261315776746041743936301825457523535784926133292026656440045323704533419538165956116435383739551054087218678614039564512412758374354734034128569851500722404816771988979356890706347214233047224103694436145071009033562741050895297712760388056936207707584077901575865387661825884424073772467978656806729104386849790898696134199131086192031808748309956547050601176561288932192236899258354285984569162900451765794651066521657132964986010324099744351964138309037735578248244031049704019977752966423945451941028750122881831770456943632317159049139598356331057295584366684487378071655782270884845723152146591732918320640084883221905388286654745198438977451332486750504766059590322440087793492242419636370435768564299720594381660804175336431407729427850541829641283888220621674150722637513748348922262046359130436604238276297705761327563411095230183600443031544901493121211875032826679194571691805741746491805299178944011685386468214587306990499101607074369751090402499348222844806789313253266210014343899917067467994892109421341140679872872549546148153081187393238994596394422563030352974451610340149273438613195765210194832011585772943530317329836474362356690140638149318718614706497991218625558273063034908074543779688650850720438604634659991176363449112357520875944557168708505010697237539117324224143625033520641082155120121548142063052311869784596827999182905954170618244832518209627374687070408645179556456257544921589785396753358563137457139447706489996152439758723608827721769942459415703795846456313594685259752802413155445790636785763692527478752024660926419107647081791637532196921437106395928809646601512195019946124142377126884588138296073512774046531808164218140641649049273647631861786339620735181405797316576846287103493024010705181122654926413089818068492662633528460687688312916649298757201915436611770944678258315649373267960230285411779444193455910486823969804198676718542735748498822975941866090259907270861849562321809355318420794890593587017696265238466868858568748735575507829161032022635383743456207623748897538950165559745573570182719770190909942837385840211950446024679427152574285158510422599129279273262939900081359506994799996340942755653440611388433761445191047377236669839441475800772914135578034002438044087467940667639385610830065397621099662254670524959062008495740694280104531425435917494492574756103521949788839485562002727481475921676480528759480667095609956780812880584382409572672865207260337635884986330296667281899337885785243729948312597272088511465494749843909772064788388648168195518887718532620716109831356494185754104827998709358015033526207942078092622384893394010617931079134488356430229070462790166847541863045590447488490461967636135410666474717745898755020462332091592064827233882364980685614274619641173868652021661780551576227573370627577193639317344661204058311159377535990927885626419611978499803333322092553703679032788207372588335760206125269333496737528677661044996474458306818520623506600583995563269468980344417631395186334494852046843997588693489474139264577678119118374888241732185287145190544707989076440358675900693308242193293039716392229375190911282049763967467240091945011579117897319268135288480431507094850584894255924240369203124921571859896364862257900601220449766919715693560537050857482746608636588076929931522327148798980737008478128286763505063835012564810495559772803580785672420512151650024865258506362728517011422598967468547839224602892314533117067728860106808718441985601516551470784611581501260815176341532136164513564504888936524126215770676344975819173643172731280609364733632803206089530654050515803852537625990343119486686435952092955168644865707663298254833860341326955409588534429567654595685747238336590234104575191536389834229651082665145829647488968375033354432689904653733098463488635553267632131279151864353906240672160377234108175388873046972165332313751062619599024303810346421132278500826270577815295167040822629012664653949415822352252599408113935379385023632921923404321904258847377617847240178888572331640839096417780843496002387461031946995169665463373074400916912361183842055953621573462705312821124963020118117602944171969785441861810196278480416501141375435930343512589522285405289703685240635408291439757587140705245298201648612283425453738266654770094329763852351656780070944921032161382118285242007418056083227444530207004265754212707880708054547905223639554516858087550372320219074450269369992352607235982357949594192076123369991396343646896865257918246596894584317174974768488221705541903699369472592020103616286687455732424992098019591751525195925428755131301044537976361071862224262571258986881714492550160901500172959336441497835515351464333906620964892716443422148370467536703723164516662339325711448135845809122495259816972014707876212265904102194488250670828505476953872916537199919318989134101936658194197118029756823150329467462864641083528161999016868069952732262553804535207804967291065224108388672448131350963192992068852334314691690894270033735281253666176501375157323645385325238729084497549985283451600906316791384159522561690844901808395194029490860695084963064352597101696446029627741950379074492871053776935155686052764730064574309959670179438204037824337075226964318285483869072564894540134694369523272339050318933128150650032199825849277625928042112683834084655630036508770508356622566233385093160470496068001771556804659208460257920915976689511082047615040404047542180917788680123072678028636313453697330595103638158939738698886092823319752115276727510017126172228299663827474110284460148866265143831891807016632591903256689310660684659721354958886722812251362128241895820442366370233041688034744860364413679886433682426053564414851645452953152382341405739177996383339452651776836650767428529619994116157962319654943537671311312313578711609403784368354697791480531401847484007614092691948219680097651130771827328737868565739225499793537883066680969536886186834908313294864997729735550506911032098937233373805669666895731924092683622986340797956742356378476860718108796656930063572707185399505050852909377287812682934202649626040064493716060064544355095331416746356937830299546960964455006139025345484622203068979692866452266370249183477447464556896776675318478113123856495287855920903829446809680548061082102182376672598662911890299974026244552074202687370808283120343924888301878103463657990936434432526704782713699317900222495030606088011913079305113190367022996024460289324647624261091748607054186715948341503161237441939549683766929859780342398277193821128024582785871628889496420164528672117699223300393794619385795528239147795944366022501639952372738319049606386859233242869821506772831500912956154677548185266485492360235851423982542347120566152560260608789685163476053945899394787916636408157742193929971994762242051533653569536061443963154978517468770742503270344702322665185470943085008783370724032686364036622066289536943564394224879034486230676251220764053877281479199777562588432637213230800442063321153120530631603510796354087580840774550428498558557348755276151749623831046611573109678747473454255924225153602946310855243046387408567474960844848102490926193306256599521607157060920672258257288998365869693277803332222665872309506616924804808717725153303292791969644349628486529333899432714036566575688750119033827101685434062585332036380243830945185734235304818536190386659290167445350374705281889095811613680157096924071252660082745687941804731453904714210172863815583767323282035624893716756915584911228679271465245527610591121556398231710626575640523765885532921114131004248145483697447772991287634199555771468910525818074637086834424634921901771134349778317282085544902078357721153585322922381466433109021215857620631332977223494535806114078798015435289217037903894259653596732753176104479526764840459971063504652817667381086191933278538376751885480184730132481856867620963318447897475398716741634053987613242379901388169453778059453374455521953891963749925481986998501112398444089235846940128246716311442336670707867842572178057009018328208040128359597661806688343452397723278900048474691296017902434168337904703956073354042713226457251752077831091357259501073061677702863906556462036326976879787206106960881327917720686128596388052045726823324822712308065253182895089569558644394801025404571195289069827151887319512937636645521255946804866953585470998959721108099905933460376390762153297398063243296290822407887809006863568733637197965866029042367204604378903822412392108964616533212507868355467087358157574342769289421360051958580885034267161649175480799742356375151163050380605761689971937213627708614019251603031255219755049149284817489151941661653251477623895790654600783925797144768157550706846932681139777574676231765963032579077475612678125647443777785269779294546995913590194554892050485947633594042148695423219187234505035831018384282366067110940668412760835176898400201247766799968023086945008262241697001469153943573839383390432484712640513624444302949107269143627920690842838747166580440151063693514185651519767223253815511172739690508901957168870864923491094414396010610264421150731463341121443039089398308008598987451482864702182503927319669131262151559295452987645345613792778225879432618066929430156964901000175111391897812823845884050785426649660056408322141551500908755688976358799875769977844996111546456911717277094905150010425214695168730278841276219734899075525253571803833404091318802553620321008162706922638238211583648417898661484618458455988386729303395981915695474242909119377455495636971227097055385852013962872872788815312137398038352252377920198444804321178849807266616381350613403063740187423874936868773104035523190181643384446947675423877650924275247652327820738511375165536349246114722971417578340772255312675706727977613573195830657196242670653207197084430620690532037820589363535212104192684624179144673582629508036980459086758323721558058184299199554320020124427519168174482050174637969351007500334488428463298833933221917427145982082633038851414022576869878479279420023844309540718345993757417879374724900277881411861919138246954794545709340338741909003706055705796636557115706563458119786821322187470367156949520208873083413228600114373704095731026602419964372900246230893595221449514754585578872444681224656806556562540677639418179130657098012125329164442718652219501573953913898077103852104544752132738257491502853974976767746841785671979215979960752318711601273720519679649701270624275081220654136103750823776321848580011920432145574226786060146048135322605668995387263443907219996270460218000384124650456476056746918928703208881034153058849275474903023291702541756307687784902322441382946282565456904861485612480099209182190150959880420285487519278872408629730899659242775642139332120429509722061174138781057607193218498201796441613505473078707695363955723737530627897390624042469124361617204835045964337108959694589631512788870575296482896253805539899727917930479701814404926508696228582775111629904011559600970184751518760611447539989258765029386670428167610784742857624340097493910294889011620258288731380832139194697553043981405800734350886934977627816932158036512969801367945196803159460008092313678779599730812730107256780230501820520330520493133867523812784607109377318768468283114132548079756936251490758494495418663840952312866989213512831523534291798336162021697226652731322091929564558306692618497941472131021966132012113776397730543500362567256945811811441906247465342674683496816115136023340055897816133451482969869733940919973097698195469370718468875604447945671458398411938603196260100736018495265450655097838981140938338570438157729665668703180044152949155886335852451038618418735331276867835096053349272789228867671287021087208696616770330758296548296945868377563674182576296450592909964730428296974790823435873527459711990129727285234835181953074424341467823050047017751474056741417716418685947996825413822975435449784012409373177716420479026463177655572548657032761697720384639739573798987554531219552341318028156627430503584955646081361614050133855115264539137715400647920976638283761565677984824840637124772224417445112426405570182360650358647547232292826494879424869854782766921020196186906955640199465660469205201425199946905871385984310403671349570217860892173634705290183887936503991510801201900035635017690704950399600969076762388671281676227261328032797208444917951526800448310477712497618406043151421015417461738894730721358784592797911893868991703204072611104287429040786481379991574515134134624472153126177764547932544055680373544902093720707961953569535022613813510077224326530750039731637527371477119593388703491179732520253908305030122116684436310525551674728516017036747154577423852349764302716040851152561132063183642854450783817793816582910591958061774059121115285942772634627425151289636666876107342724617804442534921075628663566885062713007612553224233093034897644012763569293692125998754280419936804988133432912707475977497535940388848026534878223349111189797443642914500708948083465331081977783948230001858998377036831578515903473146958591778508012789500808556484146170866148404826313300646859708101274414041103506216345129385781409360580605012314413456420372811815897826127566637983645822441551820757271739544747473784525336853312143851027876761017564962543198580470897515906064784851397911188756742257507418981332131883802227616684628201061714968142604205007190072823887995760878714488253751586959531274354174659238052548957217234163721656600520954402371134022013933406153358977315049288703500262680825174119303118750890214568626977687690567890816770728603940667714885819948698258226696306095110489276478747717960740886975396171445857859614426102691958078270966418732884789743559086071737475384691521828170188027846754477280037004189304169526036258179132503993729844656614632109836675406397013342702234362492570120452779262087923034227469583473173153548964230822283193356327410535506759688336196289180014245848438225223394477156652228148380393850893063419769085049470612785088238816604245708600130101311401462234813230058479161301582353147929736226021096533420210656384516455878030850744570961904039291300728815438453876301792426729948662019626938643085269818145283338546720660122157267646036865106959458454002628863914451481770494642819034676292404159836745170884150131518401651821025317108050912095162716141555020849456714229462405457611326144242100593960084122913237020013074373038784004462654458258384989967140585503058696260898840999206382018407392071812259526418807407455571115063684570673655786399781184233049552698677533365180561560740195472485234019937027369070211626633170205434055172501759393056160646316669398537574899719417040047367994633124227489194264068594303913320744575275822880090802270069707469673636832406236397725398168395718525485880669222387171373039575150664888803272531928765207299879375997226767655757321351753521504042981430149001150234291163289361021774651065460995728337335384793694363190690181747554130749681374178378499111064109754804969074294121978924906350828461800447428265267858177583512560642053423157395703728449474247230835393463167239962195710105093651147002414360586957498328862546145744588505887796476150942852983260851697310505983123080583513629901742478485320145881287261117470955447154989531708722426669638254171612914941447552982021080427170034743914168313320119952803950793615172755590506301374647701522834229860219736232594058576378419241656155120306274794465595961216762925035619374468450674212506292832474486701211756562808490439744970935871640991150752955532233614640204707665881229237407364097891485307773728631063347684138327001760647434368166684551211934748673111189514407074175115671479901445264012896740464941068655432212824833148645396325203119668341515267858255767896012812884482451417643665700973103393963325145677701335612958448267767404675615851512979212909822949812237551797515020986492534277989427799149496564606328981843443832861174537166254803400759429891739004505143501979385634434247813844588765860941800010899060975533676133997073096039591772249059871081958992235940492646325041486925485075062921825361573100352169254681224776732430083779412416466790109860248832445064156028568130085032428156882654493551686027535787506305368734507747375770566523770840882495716997057939331181200083484154465142293957943825939445254182723416604300431630949296171206214363050283435028419202984836747111031361195126766301345234642939371157962790115091218368620750694701736705019704973314000418431054948904417447909152020936393227460895944373641852257033354369532516653855489818783243678806795550668888792845390293540369289174626515212690018441413205924241658051279958016645033666869489451225126440836562340608258338413791846992730601742926338125629686342011141552875339047856981363678395626520282376535444825244115667376734055981769872466780867691496698952584064209654305860497590058930878478448694974786613262367532253552557634791704673659473549290933541728231134492048859834707860449571849165340677009117564599783938769183023727626236050424787656097710244439068112737077251125167114420599155138467696087544513468454647834351216013335997418531196595783576833672367199539477833419796483445872973097695901264093634645337474573208053514123365455183913852568811980000289815909623709060046304513801296321708233591704514664987286918929100984361288040363644414092590944913972657884538093225935731921468179036223097918338993623837431674865301837625908552940148531463586045899872174391557725852137329125719958231281330023071781244972645356944059827795263915069938128960793667438277086813570432194574813926316176264825819162094031543684959347660614526945389810524042758220275809328248373225666619888936241639267131977951957524915907368220991880148837642984609046759947197513968880959302515141898405540128752131409891258641466666332551706956931584914854209243056238589127855959840070513845642471455434737512626659069806261003758155368746468770927573230032427329439950278564179747763103648092285862185139184515158575041684551031165816779148659900957426857064397439597901686434995806715831664837542500120995013737070559008829906245781532047736506926487055037009919979655070930427338089024433914159254408427141971794874239359581828918423041481579118818243292999487826907715921800127886150930414711972412991087044202862133013579391813465341273532686734884667666074816291239130288595893576070932102985678579843443601464484245500360909601306357711473853960885876677874575340255429222162884631388365480699259879449953117450373031627861483537827586465348220897368127539715968983901332706072494714411627245100143416222592348350892471560675718549206861017483538665480263720773332074133075612178853237552380405730700075992383007787692655020670926882663017602395318024966864004909185627143121177581585392874453178036686652449501407983498209132033010434726092725479196769646047805975103040733056897969257934883157052535830461016242289823652139572970515130837078867756820117039390897680404113662662350989010956707998977921051621575683207356972214568932205971663850824507331404756915729669184444693129407708585914424363177279627458775337565919456276941903188853851752347460513649102909949666197329505983834642353670958961301872091779694205176700549412748444424060669863099942907701544322830183670173961970470811825725518820237622882097253889738020345319228108668822613105101800100723271125120560452891518575277229976672320192561841375863371287992940079020935006677929539657297054472479881726672557077635908148818447817125161760601584256418960673624902450292211463866764088627748446805164567833860501417488655501462438104646160236091243021508557351128103237951461785269571717011135432408390466573392228325457448935562527560869039438048330931335337415566702047716248686889773380546018225867505947374404743196780342775570124191270242330659485160087239314159920848379470008241921233346143772071965044286977986274023542688565826298655845928657735541718785057884135621723234925641415042745904115791255726681902834081078248530636643127991355566180358914421741969180302506382876409250490504014871408365617543534174450748450164115459070255122098478172552418476511032105472406542717401319985331229908092647021076227953610504749744003362940862009453819107248877369258361381125269947136039962445777592593042895927935963807795472124407115784328327022517852923374905175744378702557961359974531854934484569931342684309917010022100739434235578097471144919800278595340048938476979724067078084459592697150327480733842492660027519863606576530256221376403713189839946687651913057658889999174582788371161725834915991056569372828878547091266523395489696573806654345198759791588439437479015141023030190548301355646180625480519225364899299415969266796682899345424984437666937418926173721151958146542482720614048238312849236255575483635105922810128381467990302268652318349428253730443399394236946934282993218675186790373146130393980627080777732071170636263559168954446045080600060360566390725336411579593749782455200667227242936778722264234173202152223160664315039584167551882259976205867236953196592363476104941438040829444553496567343650376484313700044773808725046514119318686879560013725625237152431243217881817519865833613135103011322050775981648069863885225217624843278644029790743851005527952994889422381346845212606841868478394738808684638142955350876188744070894620361923462908591744309612115887942803863492777083860606488096810607754966323381941204310450924672892507998510204256205849160432929314360622615270764119064691052895522288781064102995199229356831913670843599290960880259715276699644799789242606059154582927288152704085087033878790675533407089880418026985432263342257243793452963253895236876347810625776554854236146408188781111730762427105524184858425077620854393273930746599278957261974911576751130932795616168175746037412945683860188947431574825679305004361765053173927221428085640736643649382354617226932209112392905722619186124393454876295900237909087264543392999502803738940198823723533923368468720164799662855199026216631758342609166011289633205562845568042344127906598240980839096216317039153013160341354141247358583437461171707095010760094304677361580684579508991292665528268081727231611909650078198249124237312849568940980694478003667110006403962189174775750941329707727728829946282499815074498655394968215364325953538856054129993525778816361218396125177811733068528863848255187380369830627330444736051620527522520089753985293365476274880953670641343489686580746223611032419172955509624579782898433841122662491836401825143085478523274714456847176994080452734527447276825773350167971632205643737063159921516765614658956854590382364238334683749389554777389829350034823964264125517617593253626838840507794674611322080659666877424509661700527877362779865122548153382501268426322319798668468809254007998282786685925598440764733065388914689405196911332747483360905075603165916656860587610654033770110158467873065975297460826120374906919463595036984978903885510942723869875343046026863470838456543775051527488363804425595971891410150354540362935992767184033189368002409115871907843710458962822824026518643808495945044570867181849900976314842674987183424142966806774645725614278084464593575567594261622677241026917057491924912547041188677134188645349384954561783594844382284567122052867923290127414855707483012983820733512352986304231596898816718215858803086010252357875135287485666746087887489696887104585544275944194737507350667363434867328806226913925136127072601405309571534879167518186784587777689505563056469165615499454089309390245697948105646030021667017943765806279229917628741759164709807267238797068853848314831689817083231429459429931015904582410513843573858437211776006058807705492885276920589906504900085752390944093706532687207095560783570401670979649337007192530058443152023557019357955300872128387088563111506608515683075485433553096037574286331151387865012483204702137960274517394397770103792007830565854602204696731932138086440013163951273929312656457488197573422095023258246664776914162098606004448946879515947081520015060686472582237688466863003999952761307270749651025790948637704364466540104964177763430374283845597160279241971449163192110356522382317111359610039530122764092698530008141410155191124490855579438399480788896099865484429134776076420552935666465428718631914759782806054261926032216773746296645493577025509645578977602472686034158024394728933075692162849240283129263335790095250211214758769105298758799229257717764198674370606784332528711792134189410505974152455831086685694280219687781976706796039116681659119849720071063742688984134236926683098477302661852971351599721937753280259316093864779732884341407040031580904742141780193983629259947943362940480369557101704693947777024600909388474140414310631654215605301499492349738363954616935864347839919071392747620077439019549678290562698841124065888539553327332910657158899818592001683503601109828375736731780203574125788088823648484035654566195029467276230032220722737511160298573311483586514780203671356418112690371775628790249455557112100584481668796797197498665455937897556250981685917888759205879815366468859549367754220783431033519695662389410245491685973894231964459839520069793272821529045271724605452676918334867104342069005835505610793177530324615892391751992621099168528228523477073735825374097389858567193493073579376306042211163189530228447109651910940503616109863137602993174926801296363847879794148850280420124801247277088744947819048818990060645171998693303466071488134761466013774156007740147013125369359566631102858406133690998810159502108373905235630003906364831371474857951035962039276226817210835851538401550292564306728538792833269458928232760812570263430652038740414607922883023154648604199234170182336462852897215542346079040345727639676771892661266587956646904871461407267795437280077026536825922697859512251856281128420264895940447441796602930697133929723214818841530933304597103194781326865796239454493799555194669778693461985666125793592850916252520254399564011626132567489635640417530425301899030190980457962283630094185593203296079713985017704049485230248083162378279882264160546186712940662513319053761570217374920773207460919795967891388752959116483416043842843068054362648643080176350294555157675012767995437196253337232138992768203224142430194119042807330197197743533424615597380544533806236902860109194447113909882697191937772027566144571393666541903313159885983264629080432640692554207556269685334641648054906826051061489925114640074521693640858277761916121997680769582353931323949198525956094064721899538811009298118806505247558606821962844581832389706669465057174756386964614649976958550018261045254486093482409364882802637617438516829070486821969812148194252675302157888426532600207474963767978084174186930699061225346461574938216332770106211116121701615850476474406585617894640033393125003057454112074539776703437916989587791476773212473998093015435685061767828562348289224091484281988480953747150998653511320302154711523109215198545635653084548881297660799332519216004564173335474527972965370662065814515601569057525225656120321478070164621692260102353554714838281476965095245834080647147618618741116953498038496078791563370925764681268957412922044477435534354583779944897283688514190009437551637469439197292120708053632834208482606773998641814228887497689214066265011342581104575618352320776439050544986523202141503880575219327790369760821869818811707665528964880508974304226097281569486618874672086007124899414670537914443406658104875478618009073044533091752972777802781579843945392489929618544284983640788059722694157509486437160710622557793341008625786457743332423933056563309957815022082049724303864576022165818987516826348667902239256155377384135063264673910840779594237115065479142640890621300835180302562328454625425572660299894921332579626211800242247910674181799681389666657335756981037694319756650617216898971210163826601426412997205620585828615319726919524244593740499081705709832618891862811126022359047002251421380614116973994008823395520261614415554633062337089252660882944505011481708056710192626143638310071637302484618989427444021950675077046845741541300207929006602028263073429331284400618663449254536828182211024899734653526325321828984640392833913651611445944649084779714833119563021677609934941859818065963887191763553464449466457077475163665538115515033047989870219637872743123487724640907251178770365896286816587391974920889132133011798595820228051089886798991938410087516421415086840067368116187004851785236329608417832309804282502975396079756668169149187450374829902519503862887678816268507783593852854290948017161297340675887243266538462059753876835542010456818170196633687806441312422424766276404387946745025438413576873574907500150448179028762900962169636057536934642359079697908656963150343825216734714828932197569499285032336491100345650536487306913159894056837451228607762272563444132082402428594158449863792383948276426769069596601534556672935574634423166408449084507051875715370084411057837518806209311127337279351496587252071784498797193739535403224706637899602759615327146860632415859416430121206357409087953059563224510132718104693845898388618535283083794392172416447448700739633867248362891009473962165140361975239563728467222899439410183670604955430571270234208591726867411313827271973828330938583398300298604339862338230427588773728143657540074803451676016040308302552482955655040430402512741513485849990540883535487888265053733494723215302396419446975318785092122680853380238380877058043499189456406996999942859018180401666319045156841026267550747908529238114139084072507874880911449847912295983212345619917533119728418480101348505412397812507869744742012594018469026888428536278310338827662367162050273236360708332828503004963883487752041724622235680844226465183604404122451276394224963371085655881715424465992072910058977232280779619668559074203718370146049701734958083746436403828954476969748338828059494567065580387800242178771326789716080816167200039532620275964968367962729754991324004485311967354903949022712543445405082569827856847286461290568551282488814291105763702380608121369761362373932423501939251460141917989241700415838751648140132558585201078281050152952135903913996030732726576508302515075942529280931333760135620397364758859332396559737031944650484895121902020756803814953089212621159606484514400550836961055276558935224401706993257632237965476704419443523209131463400975998356067936797262090139392500727598506527284215258121812039404538002687049934007185722936684278788767961074046884323672836637394526204899360087692796782105496827649843067516008838099781281350303378634303183784927338241701427657818777722053380939313864544372831765960264579841842257360134906774128992264900404346560373968426060473918737208712395956728752711153050455518961543344294016252373265648027317188142594670755356856993596333721908480352332242561793881774351609788494497770264550084108110195056292415613660984687702728093474988222486028686401869866476265807317565968810520226610639417363232733698617519899209768592055022174066103058792262617776080211470424436069164745680311017387057678891240115814409936491491116588919563380470956840566400223088703037738539064634281418068513734487338887148671784793714370383340805851804406456617574892395274393412009998525795326975248002700328791486595282057528400759515138175338292218246728303612824208396383082912679468214531872570378725885703954682994447220213554505563138814543116813135910245352193797369442375793149925961648072179703720583243807341015814009813596854378737425500618434942240132333781074185048569823971635364759686439718551277128046207516229990880504701457538596306869073002100456393223815071099272106531422049549362329758934080512712178116405105294826385350292640739092273841108316490152519916695304475101590367231834285080000481558855026650740252341787409083654427160322626182510217011199102951906020346310088360833463735769140746771097924845508950778524972552804578750068173949778182256865937230870647454165287956461205992592358080989327545392661048296277314288616516599320887673602815748951737330220626794604366312935927928025922932845487209690992008837154126430831005194951552729012028883540507467375041220094102324554379564352496502836205678708804633977231073820837324656707845243018187926724424370349419238906037585428622590313063239056626876862548670061970560376613228067709555964560728305735240787888806269369351791837306420440565314994383249865405421460184998059823092680179867637364824009169706808824630475745338459340032462256618454409012674733505590341939905366288155839722003475749627026269587842763566566721746433879607881066699628404171180625720904376121850003651044301173583186992315115627521287137177287313350023562036525668391169051158182587938638559224412537981833601615228919245772513646599701180219439740460651437078280714522432593319163633798297237817506322098151911875363565554248518086068673564150925550860676233233015783136377185808924541526149604750515192357309318939583955187694707461028678959059287738704511831483365095055841148397463600872052622420448809887734400291181514084636552296617548154322419840254778699334004600719513169187438157863868198265845036122644964970973749294775957799782769577368937887367177587736382669506350791873558291709063594328084307539707493187280391555062627114174781102112862735381028836676233934897113575123899328010887763368912419813857106593683772463347646601665082129549702195744534537204382677119817422014677606722977793777601545390682798949392191785040232999221102724236808170202984660133999179623465023248067814271142473543137748432328875419886187440463412784380340804320863196310471850759367078409750476646204713675617408206872024860169297183515156187957382935899584428760924219723664573177248395217572507539084527285344167539513931216891205488436606042742917382541284270140359504669754884113036417860484331558398751157319259203792010323551891170850438184381974976386344331089500479218700775447341881810150933542383973813829740606335154563885111812961323104145351511740745560421629605041389919307007926829263896226147179353178205615821612396333683642647997157011481366836010155487336678726285283650522762712653828672832464298607951492166213477268399683069282540428746849959495796653357890826384654962013238322789467550432809333108502956676434209092939883978680190325474540886799242213209636112944999262616225678019389423862803949027344174131067123103186770676250310645338290147875922549923753579647687660998044471323396709553365458010051988851030752125648773883994750156458258804784980657426535937491406465393743541266690641727807872685558454033913623478158921522860721215791582677391153714284676990252062311174142393612139285362833581117392575997316646258181115169842358607136420729050080775691393531510134525858306065301220177563778388247641216778254178531168442443244010892756355731228148655407365359406645717685777811250777277081149196639341184689012848682117103069373066581653630832745042122884053211455903343185245347261267273588768318085463893232450061096155404304883087913279642909357915806209713500224961964689139338199678061430335452505061390240665095885312264138522816872132406744961809265318419877316749728241302986567541044511667527490137523138221291989018099440429054595914945000297931327105886459730294663456736149070741967633469757164137113760540493781735368911023574234087430159962209570495522809623073396079283427057197363696604016534932477330236564168171772175773876896343343140579573887974901614461450056456050400915096489685005449309893335688906907913253044641455134932449114362361500105801036256514784341005949640287704593839409612322905371064950228338458686473548478223312135072344107602144487402500210109269326608068385228828631735841460664682785637081704695409380527368595725654731361474794437114010495218767241486847274825828453140928365207239911781925513177702235581229854777274034269133377350788963239751253505619720134470870641656738639018783937826727294539859184219026695230724584245318239851802607633074963290506744391899266314740119711501396518095607261824949970345073839169590414223967945037539845674952432830792974381865949187412563687240739031256266339634253217672916746308569146146629484247642396948243284614596292252264569676693404539169336990684535144464523829791627860256185065541197552444751279743560219136893074286107448616280498036861780436591671835820081769082575814770775470601164783824803632377972624706955679540318722301248248291893390979969818993267117229133307318017264967692625591642777851620175147133645595462502598238528639382331585623542741948059951512078451644428326960546937727254315986114996424981224654362397445846538001700984229646078221217397430615941924349665873573043742008086301885282693580860220984131208515498232613886671698867478166161127756213898014029991609945143450722854812437559134748383624347733028937013733174069423401962496214065599688316059533461073491241591900185586344028626637197323900978488898043047838908117015885273857602839359988165853921829751220737409254975986701193705891899834538304971967898917452966014788811519370131548339284572275368943504000862390035893107251511278947656598208760741773656874124438680926961023538991583132854563803795956373982380216930212507440346839997626564783890147265956707941017588878025399645188830783209710259548935500527068845192804385640845227051445536305189459109139557920110168517089078891878817230227767983223739294314295498762777877911639671864110651195890123205769615933979732256781455965800378759558267435430794581348880204608439722953874554487949957752896533069224848899495915439217750632219576874895116346839280021225126997427320618798958945943094336112062549411120946853086449672937563808956279484070650728135183435970115459728089795865601828158251058231515560358068956150051904198830761497679860918721874444006468754800427769932383458543326855301449805930023757481083062620444416196934177453194518537399591826804518407473707095894803351399504801604428125863227440063760754046202280083173513464951435773609772305879978034975555523413780671081878414115906117922615956393885171780160928348054348333013857583925414270861088747744430800811805575926945705218345346824676886087349582701881792340498011884149163653761914851288363409271593191727601076120103363706776331296350367596165817989638586381891045860007312766496609398194507936644361065103187696778681422259262142612092421618910543017889205136463334955990007901487581252562417628324552138257418592323293088810906349978569555693676102682355821970506447626659484642789576856993820811548399765336528090318616474558330361507489518604094584904528720437011455407274428215922869133598793774168556394904398678543172628472510547701314862329151441494200232176920977742529524974933988467153477595072553353132712300515474258600482216347566454085938764457058541483827966199332491749172596354356182559792126472416286469676900130502977383385949102864668468400306546193348445696881217278882923557150220076242740766710271780841752250744879194346928660495034154878122887579116583302292972777810097146299681595874618868702743991986445060457992916735276672872106087210579150861962375169649099932210408435852332921258356252429045215856679699800178208017063468712444676377099764508060906714306624962723938484589980660301595782275231711363249501495049249998362091675127778007145135114100032034608614533331818200504907820501193478120817937545994976927669789607814344631589742209133272109242615499360565213807472041916081109618782027907183187943907255915914826951166642499891417585226341855314915814728877670424881281363749114434634386007249721789101556696532944031923587715698420768907521414533040652223873597005287093420311946908454889134915762460275518558483328345243227663460175080214503687603141799197114669231322417267124547973106472111966726244032589476435158636240833944331497061569775463873386301314049046844567620564184627038749667928613499237983691389480390615495256509925564835974180502652162927998433066227601973015004358262497192427891913949973245705973066541019201716365157812696525487247996043862034398860662277777495985120083208134207725809404976053877206781595234839644437317537895701636312718421833545931580218944909534346802791600581318365271790639934482819327873240774799997270089604152164347508401846408592852948831169762760036086622012271825736686060127280922504454872328202870582745822418731061093743723552157439038409085804257064329653723386938170785676306838008220084355551056798196757279844143176193938190606130541960754167181170530678327502590480007186905179093816320443275024302236039926931865297097323122956753605407188212880719689036856899988813401005763504576365429798923418049411690085242313885807176415609297356794801911484878996693844856737944598994328857390606392070278486722376897384045859231607931759108964618197565221002300064469013285342956612378564649841963989714891636394831703430028067232900567985969758313017225510884585600881583157124064178164835704188392721765894028511315845306435142671873987951641857765697838595036611653027812122568955627312448564292590285226381278810282326295270743978370721777792537795674303344514423365192296773593205886148952578156839892831352115749651346596756662078805680624201506457227877935280650624066359291161161346472016138301094208351705729932982751450838040749275395411206506354889449105278506134875466628779620581360029052540300718355353128505129320406674001265007699208527042455390390239830123674919071987381249181055444190924542168004357478492629095092387733405712731306286884825797887995093823105033634014173747328052975135303712474162451606827722773950790255217810468888447305657510923378481060547321675602782546873065311262695762833337525147556358117890987488061888419018902488012544936328474544012197320569726467517532669913142158269559142729733586498255454589855497094717980011282222475555256102627298522174540488065320738750304151571308336470347137004161621797220582504006224056032910598231113044719685336955958249263429618814137236724268405466358110751753249529923008580909668886301775119591641029217190402935625635810020353708447825640555525000743107183161185070124691604351902919098485217865326296562704683815667070475449707537455312659841242662276524900235184205459205078064508281113455563832818795176657735769192021489064428157212294043815257716480995123759444629161057879660027652714442029173630265009481231017120672115562413025205545091141415498645630576796430923863139637163882714861265185221290183861135475415843767322019248012464800716465573912205714480624884455377548666835464952124931068150225401454922542850669726780701863233625560265701592169154726698032741345173678680063501904488978456902195974882030450136998981000886222330335712130889344385372258962983284518281117563727223259823795453958089506047669141805764176701716080394283879615441994986178546766719583612588154684827362627697199111511643398114108978954581825712604254598782399111603336057432832646757731027739245305140823932016642433303672728109288416249566976977686576197271883954571213416922750732409605244004258399443917270554547242781970112878431538182411633464833156543274178612122492167589803144170111119379568013833703657783427137335021216352741788445452336913380537729321273397453850365940049067358685351417280464005233459385930696022193368285376646591034799317864071126618724598321901225621168900869976754891760586181779252421720404004886897399871565433250784339989644252035158912506188116713493978593045405708287966608714789819227961846034564024869604270812062787364903688422837001701587050128332432753784739620752815390499717841354155330881685827543456359602538677664478255773360094396903755627319301320234139425113844649240090243353815585867163609253951889209207758268815486340775455005730697058631414779022533383907074593668462676557512241684913872218230649984227913244896777686508342673013322985809632177814671393556416374376998284287425503029038416444790625393908985885464439241375616640160855568415669416449872416640051587425750636290033394505204116878418375009808721425731518292045933365127023090372265612691351317566703641751654723925034214036257483942425118467534058950834700808639911170100843504017164226073830591701828782338188511722386750604265285513480954975137129026583909526273864050195411211452183830433435417645796975664225996812046619947280260816221625877479765322668117893377673648176876338719835212340926777124050851970311895492818070735214056670150574352985405124356372403417340724557327033128945712119601304433578039051496155487790559207172938074047035454107434184510547058990298391944322654573351072681316781054949400801695348501724020674079966222866834265741884916984527277187565759525290218410076198635611565806708652902633583981503850951809393505422443631637675029117702519883213144983385932909713074204273855709012554786117765121034875704666871980796837726253893699482483969377451506467735042536805933434847786322190962422751549253240478897161461118092203296924328547053286601678142937466377139323798109029383984811172698619543142731300960931838307447504208605507600826868341047170818198361542145966700630224204350725507609884073726332278658152103655018589509446222945115938637539099187587884762884013563964570044547418389329564173969685600669052365049334071336926274658714597740321217728458883693051706134569238105492324943998459478175242071215322671308599857613496965579908540772198235969307806540247447340844580119786432929445228667983973704033166334328399934127698632316615497613460523297959572395590775363225046429336782249347521878883611901369068860970996327983310176372211402481968110580215692580013264595157898862820779166449614189963906783470590885922620779197051815268919483417733302720257842892319493108867734900957993730659623809286824677332465242122246309882519449462932325335468567206060474087449430393045476211904017034021007507249377303066102489148896161282652436048568332838084914797329252596470998486241120185422703006184126629226181711640592013048500401682983246219290653961385505013739483923816833630661569538006106695809570192278181795968425689350680209008862713666605568018200386280591167674315574182058136741943831542391203150996937380162635614303622135758001703042544512946387610791771295725478044579377086257640233515689560339401282488380494306491224453668415240801087060874193924507364913542265028467576324905736177308705377681625517291011887794053257912941060229051064579738020732955872160427707817873439756687879499079731006931808743771077978860429751364141645169784890071394306070730217374587590571079686410091250840556055851239330998140032736980143734018537863705171390997572262826340363144173220633150011930967627267494555799552647349051213418796058721200925154610511691519027897222606327300955249408129092049279285352716167027613724829582614338692255465071898336796167087438698467721924457748476932193143745778713719883893856807401893549112221985736404566607158484475881984340555096624180102752479731873692934649967717107794946054177705911311705802233401707675075854283048403280664789175472949963528223662032610323630439013710072715458957064809488433552247830941906518023532478922070061411319881887087013054741952984994133531995639412328163084398340014709491896132049184957267525825923172956445559245848436830025047328198608941261903596699809938047952970294809285727653186719826284603272529382653097928429795444512734979238286489540600832284653637448759231638583028202101067106442589551949484311127660386599896486636920248572854252002576358295550329792654236638122682638488532294059868190565793749700294926842609896301956733571360462724305608266262669561775801309777965018981715386605852915083047229980684557373586224240847540019039090905111235051815236257464769918171013653768815466969049365460217315510373607625188520169551880553582288445927259687120754586756508117406380409091066857453505490566104746594622929691598791167663906558167915322442055537402455440613396499423150896534221759619887902008370950773134796658951385208034312555745589508131953892527967484462029387824331988524605882186834647816982381355821570858523197580817039393375631636034483100559788097134605741654964887742058557772738842792443907025143565825332184762853370368474362798611117649383587253522257694228548054238433097300814727049010357981417009849837245305627287179020366741840771494792655398311041013216862864437590273187349351350725704752669183638971383448798494141804590143410546728868072635783639105366896944696683022257670071312450280456471801350177427256245692679343853814871058585723420147336931535683772803549793773214008468564500727808350958256842535223841402423335243874412808491624798449525440505529897186966390291259060908745993521847065961373417286696505201505213926239321676149677936356395111468474096117023294722070757481912808228227015373564448843689838284273479565923287031482946962198303736555289249420373795840919955401487388722832311439888361747311766379078215655217745865776737041917272858617100606926719959292731699981210756135834042697155280045628326647928195381127777465942176614699628472472654650517141170046057589826408827794281250569395307648316733929624093740683280373319721605265023111296446147354101174977789824157034675687045889231267614490348322283086452498309682966386964390099142210889962257192480680422030322794663520007855515893579741761114994982239656460501901883841581486059809431116157141795366367584873240064525398608822978883128696900328481278839726803605845732978819231952859272288106022451066530022097652172814422927132333125549141287286628116973364144292005544238318354901230716617023823526328938759389312236985037904740569280743165021076533589177723609886259235860556913645111970198143463603158316141483652173287059774580773509194740177876532546888293907108888107721891999330707444207698202010423300534907112633559857448031285739544393648350009928652677934946967417576393697675969348181690113250240626547434359443252127753990273876178617193611897540454181414151508453807772305536072062679585277358446393443663553966727788590375552953130392707763001712300946137665556663412455469849603014616065983958674402163405566787566225599504757409140269684782469564494086925621919972054926280788930325778522556212065168688147460663790918687846516235228811635003684405999165536281898842567291139749068852887843570648373795253828073545718530757876852529871206437208527346205426383866955681867579985238965425669434757402821957530140687220609652511007906005218267504379219427435453126199416648262348173895520983987164570530946547228608471055541303338375838411823479759815557696093110713911400038972375314896742244975793828163190643989083702480771579418166933314461098280843942466783169409896572011549768744611777420442575618732238791866322542179971243478000059460839565645292316468491522904305915784135815073355511957610652604726994762825330941541465981370585343766964287751995742374593025220814114758574188404622829836822420014961178869846776874245819078398600091112715066620964138592434480036247354566044808110461052528547034920536026949299525705696632337925637721560072282887478398317196195861701999236122671591624027702764311987599718847350056059258090981325865893216682430347921336921340553258690102969107904496542685025996436001941271087221212352177176048256900373075162337507229188812070656642508207663128258292352140780260173027459797744878885217301565646169889223600606667467600261047623027580707416126870976984295943206103125475691970528734690623492973499045275400132331336375596004374295188642247003943003547772767405563129129713724958285945475456111054816719162199678588270836499464567451754730367341442897522805113453580126839792283445161893220889093786598419115139037460726437789489906575546416479277788178311346760138357518977943831156261151546222859038694051053335560595527884603317850896428753995661832360004740018353193854765714176709808630713565215394069929880075490761329982733248800165299293383745692844316676722787495441549280430813878785966485106447004866965442411265557040752116835841809608538729919675561488035293719242770364429201018876182709375113014845302561011927916969178942293360145494366623554266711959019134755384357370142976480443890940936746404839507738981641435194015240776777624411545375179855796371543591226037257404322733979153752293256001784379196660882182584140419003007132652406123972245753909302155611531665194149902757049317991079034792102157749109040244236761760892373245312549567431789659562614769201759594470123947708474174282406286520810772783321576590500565457115338209618855267667351826606548131679252486223809466620768214143321773104177285346254242268767692228448442455382187939751336483499413645247083400763891875453289168927719317675268515828467124591648308924401011208606713717363913442966883523123674669175732144263246411175911291287795305224063787551722768680518978073955381430091303588592653343028234574022867176544780930056770399497607930891659146653177322153269824911133110946577265468732299095081047817837352844119528446405198312468354570813832426892202484887133451312837470606028870648595368973411153051992971568300051574310182071030362909281519204709393906836318926572873831928896604468992588475860674072479973980516350894801765524919007259884872668040859093564176839318297713155083790468370463816221519230583040620147627787891149102319438497385180283731981282363433086147356828486845178265764507971705000672432377274508010503611620847158658502698963532471295009199026340048510718725489480225410977823799155353849838717041092306384205347440850045485921008675806905572981576496020810735851737819247583340279251464553776292301697157850167496297876968674154096576813508067825490694742975648815122403049197895564245469243638266348782872984997509042001439207097620699310424253898755019691400058196576957035863697722639547356355348256412624497473790731613756065218537646786536060484809432808879617372793895227130042123157308026153519673980673697833831784088123198939946591785266808482687753782258440825630079225716125077465580885384276339208943234418442499662495202299952142992520152814884172414470855495409827360168504880627221247720116964810883984433815571592944897817282192964893438610258495381948971804490811132570606270053130452630864763602248657691194526701450497769185285712075887379136320562160094802944915383280672836206112415552998899247168180037099435994386348006684396665133589230372811871886615411718479168728780681238379985145692914487052381149254805430022394011348212520714997351396053360430649693541420481850127740426362400791731407019650891469935325812578562111236217153197919812775367520857259538328483420065531139003814437447992298127827344285488272919033640647545394041143502793552879955127430065545692245599206340677220528853017826394339682048674347852738748755789325640027726117936217250062265958389569956366218502477227871431069855611054561756199143315039734735464630351930235970537278195787069137256395802709000437561195550258577033579895171830721930531505878237307191064685104274940920678067937853723457527002090399860980845702130884550678544280378229986575332557485626588138702415402693213403346888865314072578839044027478115622222741442600758909743093800025605734958437040874880955786084173513946476058152314251386674139620400786933301629312647284047230590117692933063263328489188690400820502510706013816667992636652562898828991843299995224222114820972332665097386851298364567082013499794874096133363834631027923525701823983812498573964814861194623469006760750778547790315997878898699137467574218566906872216216069688626317586307471719105882941521271998117325051151870850624487909934340004500907379192201643701135016016260450508197056340587664054529079074157771546074267362706438648221566458929422982835148503652250296932587718205082510361955280351077283296212367796778757433562820280723781791950923774921382560483141067325844032542303470237340874292258552908073868934362475483337704924202863309331596787343037978165552781249150587915692470052903177784736078280868739482450050685037159102283582438286693146704888786516126450209670550786648296652163220301226525996352455964298292552807601011683777506868421145420541386345631519554316374850166277666032723457132031353428489523239227094320100232150074985994416867901533638178227224639302985958572683629439342308112493755285571623136035437203674167807760883837259190212387006813508040501159741511428596145080316099277188519238357073755687913080781875627639128843919631763833700244354699885856958070076978191270737027120221785451529651103323797334296444260948237619545131072113076638950349493764900095967280905842898775948271331876595802146493666939920571634590508500161197732395028110467651512353069477348435787881647734976128350008801527506144782269945375898301452595174749719848334676989991823813405082797423648588698490177919209448299321587651994898898383174796239183389807674465400453376213651991284160452502931202692308061895683497406946951880077956901179336051120444645629169975517100865562788592564587033709338980200529934396815831635896517020429411297648036847091746062847388909938724487831440984974709864527035655224482522546743394569789770462383782427589228304326092409688070984155696487506473065060028063016409287778087824861999809523413715852025653315983532579666381433051713624900946773646257183308374058581693944189695744013406833639963183940839562473807500869312303122201556760694109662689362842160852023443354199099542411706235740936417987515192542490660083826448666292281036656392479259682489382989160338622115297714073257026132140106702772458263366356113100227527291919834921449563914993945663817567031851937063666815698772679081060572080854796003369676334550667561347978872876695215105622431347220566780189991216685722554740977303332795867870305208624930567931315692570820417751636133093776787940956216439387037205884539635336269026906776725195327851593946607434575501203086523320149730944039620805836946096194738953804215608713308790570090163748192422866541072006515855587048878804008892121833972597371032063788608163550706543828424635377406734343663153425306239941772106072583980424390577726541141891099364038783394778852724028139419456462136177256978173546421022182897593449938384246762773691103608225815395722677094723493927269969124218344434683266781958307192542617734610078415574714589075920129619889676999589930363686558059102524921902051443821317803276070001783258784333959696238548224409825800459394379194277553206359590028942854277269810796200852832591869434424657725939915102632158678914883959264037032289580992885993103482569101381256495691770702472090569272048044868163715569816052701744813977975153711887567289599018309689626794393278171184703771593302873003499742060952316599309139635321030182795608553728820014927306249177057473338608297635653904606851262449814360140406053325310661937480164108429402981919523209659515066907734135776320754631399760663507027059027506262353581087743576732096100406418925183106252169366500985212094798332906279063707960011756399736735785319317425180777252915043927754004267121666557049615197711843559785172743339300058211216290656330393465664264159475649596123237414424965226923309110477465482588931072230457509335416784681436052296207880550379129131295013632963267489520381353049435062470179549312027500708543166460520080560899657649427496662244660308809850080306538907480127711941910901111891365266465144533010972900092991634069041898795088789386238447636508459816380277131123790950458986111595935360563721191726143661380060145565761765882773254780572409659310388047518661090642767198161176823689184200247437842308669985110124883434428764913720657467311279710375021877633677100189670192570876328174178987626979097432385137087512710866789078299227695511967274657826311709776482651835733780078201233464603115438319269385943933718721970010097141622584615105694327851968181648217345524185436744146663218811484756967399601600166613842913575459844164845909190931738664032113036036395891427615942105898231031582540569536621227943407888687410546989900651786534888659039554710860835485751450435566641688210554469056459367698124501452987029213346540511674900430146435526446439011746905042386209763762922380795309455096994353607938854584270005083877635300269716590980607330164432591648405515240758319774176223515789677508146729121012868609690268312262212995116864132180858671036250957795073620462386140296613366015188570692456924809060969237068408911562860585643378420746410905215418252720949369107705687957024129231966146317982664528860316040032192879546515294357319660712002465351806202830975094938974743519765648631529997873339103793654355151998664832617912653998726492910789338878119594774733070139088129581197698345519039533131649840290503907780897214182775589509625400367982781155219296552781771365306464229109338653922174384562344151536436066388749201058320803475625721775691780013780940614523536740238947387350500915730013790428494001217599567125004887522162198533134632218464032364938580456410646066503457551470991960371759151689579898656552973590897564938237113872257775353648419321665015648884775503304953724113080209760495294673152968593777659824319992879107226526284301181936163817911658095612011590054626300583896699076415229887080746790485759347853857927946632370624442713123657551576578602500089995734235570799994218543352986629988270640284069695441942567391848347805389230288783586663572855043248227415169134161468169098737211888932752127377964598943930732237405025433329014547591131166569724249277281154630408145942889848971112190249603311175353384031207060167467473129033720122587076589996809585705906761846178125458491963532901948581572812718072853674620610004181041669844534916126540754929870463107451194097546424276893780512862210191643640572118483084114389000909903050916988698233746793611036292352190299990234473627244488795664733427110224659385131094100395367052223668745168852215063072252917698212852851094521125943772299390849509293661788483292571423716689140535084187980328845152787972632275401704176263979960872106778610749865256165162918620403166987467993530481142342432079150780375617653954800520881613341222214300463119873056374563129344127678122977257515692078119258124258845569936977353060605310136620143145929424251262070937896464500421668031236196337385845416054689344922353044350022070055588327105280149895582506595160525881683153040557220306366737848149355659791916565605308047376093429744193862456636888967774659761911914085104437030988780343343167166569118625486261272577629233396530887161522804361491990973595251386464749112396680874791716031901982040805195357883476406020973422309453949705459823382652662650102982084680358879996668013365327369619728152101056255885103033393952161250659823263971613835192207567132465611322902726038699872963463352359562101843270762610967272391104468207420891676408939121713749314271992753849508255314504097906551126410922524466951874160997774452292962859911483230556251130378287667841089456625214600636375704860176861439313598711686934680417503906698077645018517775755559156655161048248014700117028673641007673552421415310883531164446092422140301077405643680324875561798188348714487132694885946413740414382326070147876689726759096247981014247424983699534465222328687399602586336727266213088427463093268823561793238156289555417741550915816302308263120644165144534225399216634293534116142745020351942247688405410696237044365523916398932850040379522718004742646614490433244673240634459226489711924509248364295818492694299167038993145577641237105258974014624027441281979159969108726201214527916322819589336799372140473702235814036168990824414205936920664157859596056454005783131292842261585100983680153052907471402225386749952699083954940120081732640766374584980854718712285178010406870083073088172068357852463061474566442478900940632748126487047085249669308707550751160835121469982754335020483190663255888913340861313951284475641911241916298665986228691560063269429376279540000744327525408656422372397680644622772514571457515787691798667125965751104320809171948817860447311524080393351627498455260001714254090298092166666890103211474949016110665528673329401653437097095624656880368959552264149484568140101031572823584201107410792696324442277729339531587506515102257396293344732774107988041492670043859300895946580255729467384695501010495610701622954336963299771034324668478506617603479855815096171137211856704904529950946712299452201318778128022712828662127461247602179773493371064383914206568760106962352295950473232544856161545264074201452299909578573414483074723285330864448289047581811996564173817611591770598205971771148046702666893853096546975627252005012737165339543798316243838584968136594647802096215522243146844336303331688991977103765048367536661706705706976508702602959424876024621776421788467108634185986234875702337609015959200623682433962002386268711706468787847195358465917200713923546639242563432669575399463850156440624729935138578641525701618965961194772841828279518802294954725092311992847678263031489027489360727606856705931861329595491702867485886029027503219000590000426420870709271910280230939407460322590510434538229836175862783056508085584686482419064837597519731214016627590519240731747633671680328646132380447913138490808344143535451451113548920723592412459793871783784159888207499195842413704235687062014305646629473286426143138146579160132828755058697379865028776164629385606270310335539002049520896696411979600269820906363137256880723061712986855105305203680369371650846110792965488309803680740029534724348387803464115572476810865444661410868369642935635549556641776476882621365279351848553727392470964902243212185921113312760616059656933318089720341751879955644860655257896823064457496908685704416923933968880028919760917761386886236358072111614563376575534493525915354333854776086571737285708271505739423823390566070550300654373732016024288710801523334254221989723089860949449382283041896247515348318012028978220774598344867435239487586720552306982748592063565656693169064536333531034757946703408734505421238705581147497175986829744391000548001145585162370078899884003581657515973135083486050110012892321893799171438925697451565426780679955177845088221343188981941810421791668689828035618000246833786838252751952366728405995559173422879144073763883284506215956009782129525234805748258668473314030150386391602154738936537193045940883355232433319418305868225319737192180264886544382467899655746197054051669998979115336293291883820514712563505547844564228264882879089608824879782255035096399393137600748618671276376186879145632585264451976125026512040993983548777169999371651366931351233096555837745340495269265614253227132711333884388795055138363010100394152658178251467530591798329168099115282616323513171840321176283392810563165029493156096696061203401934427174545108229555950777750198260630823600323729657190746730749101105653557344201399732534344674809158870034433200336908418872097032156288944562340906024172665340064924854555833219582420340242033765039247946458803350319346811069298153756039071753285185495592084591689764757033905044730334780456934807963866086524948935774238128127142972845970290299401599982982867637130117265620536726195546496197135904595578664604946560420725667325627394423745605425607262561212084023151531536544481205171461752902342677277646003323654901003213054957128862355367334489112573315143273460197859834873297110680042229897576910438931691263814563370302221730776758125252109926881609956196516586599440629960987423422566372336892573769542403034135915044124832766022037952331711013196742799050490509548502496827688001646008360782901580398703913272092657554054508503810906369843335529768785504300655168321714844252662647967775777681488147726758547601350052219487410724119433211303671643666270780306689564207669958528801946560674440397752119915515555976735751780026091490468104357718261362141800002406379204758532634524648410487498432243775965130604444827444931236231287382673112959315241533717758145674482829766424650316341509567229925706831426747133785671726290075340640347505151208529603053016983075878779917404441747726521154883030331844734356426900903540989702571976386319048547484403455207840813565041149607349399202085699429690779204925824074287583576661675504791990372886804884525343471196999276524441308348234820084416284090101364081999783705343846540154017466773332001176557809701712080890584293101771106252111837615208575080618593251820456352311921124335162298909153697717539267417378771294421381688354663005664031723242674402347416366682824507647430120739582453249517996058834147203972375054601797025352538212194886689702683536082954104479801312333623183600754877390648620202231493052827369175378459527065372916069355595053354975693963312464185345422749354685886543549873331271343625682454434667082768808360899731903091334381995215262259081822428491091398932336105142628497864518260007202897730677228834538768840125054232729223917190418413800291489438704362051312275575869959659408954065363461159244933937562618643785718110814088044685628086391130387521133967954005159702814961344785754145654729475993163301020115362990823049354780512953218174409981417331292116555689991907943729523675478119637535354964313796995193235188683723020043488318932511115325390230718038948729138197361233620389579389720535371509067187278622739895540272269193619738650893059052923198532692168059521997107891353284889834481817108145526941642680153982579001190032964989726429939967623493559267234654316583332667649944010972838407167688710327044375365064958603624234549631015002851072611676412191176038391653616832523297698210086346735431127379592910079529248243664847481531974938264434484202112051048966300791648587401287381900571707051331417901550406356060088874333832622402131775776979549791579219850739696050395866112175068775907957410489667341167561829651578695790347213041477015005772879981508731782448774205705044347640780670248296486392334027543628003660695051719462667775699056037138321096626721406137926889068700467484278570097474185739516651711281667957685488876174496040534139436598001675939838838284419316751648774913231797997134989515808116951289833051356106644521287081711068999592295127681355955015937124235627776128302985994478181840586094532947294861728654174483180286501581410834519255340731612510535176628308265580690290576219990504233353056170734519635280422381292647227404556613374426625558878532674298222940236732188360972878796714222425507137227058644101985419477434868701909396773412359365116820079506290159909023516294786829174716189595390412446643885361117056455728207230103272171242019198844701656105561627175783863302244491376583396659096416304043738297948462833169709537113680048372050775214777582567872066018777562286979591741318165462041569967492996750720914544147312561608659631122221151999559623201972489111793701161163123623756497453255896300796358661396218531357216211977023086672502611841855656250792356161027611327493952145906801682804463501420264113848954763530652136690669656023841881861140328844686037977811110979391419483218953349579086791716756777642093492382174546077650271077083528210547657588693870844288240778622811529795740762708550726706123713833361982831496387335884583132872793724719873962386360275055314159936328325973382436914448541171140948935936403427505254701662757353734173853563389245022485222127126038109345287687024300621854588908448966319339827947210963618170642952719746568439151142616738576573071596789102252640145738760018463757024696310940544435681792943032448671352950427069301937946245566622700687188289698816866977788983988297504982741345951968042925479872039380103164704078225552364688164736163185043063965168496859319176686111565247632097669390800973344176689783980776138395065589247949263050300552710204817316909964793687013850014216076646376838460680377963316697962060840830455409374280898019090175168939868523889797212535721663625061287591272309776707873063312113837829514529574258955459296495226027114132181505674599365787044721656175027912981346352625170840318956675266105207157046311945099273535473455009668529945055065904608190338993699074323674939164117812190440724382222910915448975516441570475411297621346955683545219908732195952844386892408922132213042088406184366167508089095256500803920957123580482068090507547008808743651324068701364768652366798819434696366363613995944630664533364737361970658866745695431482132448130166404020504305361904904283892350205817896906753416877612874247778741082564586507200915983007496535018481199376384003213125235688104405787222874632679371193945532764545056557805109431530330463743142554995787636390873604656292118533945879776519270555433271662938702117560507366738044455451670776710906757956080575375644569348435011495001087944733467344302069672032197794159891345596487912071926899275088458187464778797958071788373945048706912866072216288630455936531985013079161065510688013783191571538741348486663856037379061865805369172121753495758505702307126951027747766633614495138501577345220137660140401676373347354387477520495318992172073540760947273353482645420072516426077849403121773305817735631331335554408200927489510629572292368929628251279963516392675390400134572378576396926285227900549755369720486248571821278059859275677204803725292827881016258356012200809836017352390597455444685016805511409950994925827359993709251864831710029113686437065162882613782637224588320273494940611236890841656704407279274806027401131225243935340161436236388533663350700091790232773300669027219271697844263564116054178633865216519123869708578471064456685194989722660234417020465044807097301275482048756271491635018400581367476337746510987978197565855459966756305813660711123670133517010701129966126332101666892918043365616969634156948997218051647523861273800696459136847159043317586348849601719207809010230416539268294094502194681366193550265033587502174285726370081489862678899103519591846882633187432706493139782034310316399849570227460809640598754093010905723611816533759257478146787609390510902407648711831989587832783979488534282394108805624105513474801545329340570968883044705115145102751495935745140486213124215014813887996753979176476766018259309900426904761408901401575807316823318279533900317575730467779664758412356858211633018298765560490729525600031630864883184783085002120607867451583262963826678085901872412983635613824434576775763008042165866754902435135981109159598048458389052233308543839546863304355888053277799510541874113445711863042165663953412346505556970350758282754991013714570065634802095226826990994489376132527458479069802105243909206000840884248539382182101662865878694554724348050200865750434876083252300290760665981108485530543132546639419960869667415710852851442674307749374721759001102965210506826255942834995979350376992372531893624461333760327246894893606950657663140960681310851768319176932699186595390226564453414986290727274139704762534647817228313527812028850368078065026457234939816592003335834362683065153747723034038319881048769882288252837718609514008658303345526746194609208407595697661305030725301197662122136519524643181934266088318801771069079846192143630793332160995022536643795416838676846584570409853844962751516562287869950496286216230767934793316491279255935652036089822077575163134652561956188444547761594339007853511351885265868763483493513443356909765317653856921298210685049995895896559720117185986463620462056258807030263946064924718244646498815840421291487524169780835164947948511979461451531969798631227225831313189568747419747203805046047031078869901233235677718264641853431425402492510804652848433486900753031750947312896367388288237014465598568694600348030438430724666082785532459707388259232332646957389638846839314881322234606145496210678958932740732308143979972185087584462983274396728319073914641807509310782640026577610796847756722301184286180296718331797134260238557952348318689719297054083305186039218576385768762801569874852434358968712164039299580227075921303956772553760378440249267027332489972298567008001613877908670389763462603613666791769666763453752224975723858638442990851717443495988045101144623239992164988687640707645844534405089869208567137280427241132191365037575469569748755842072653941837792607062670139231684409795123687477908478836898437382857771946876819573645317149330469384571704089100579396698528478494271895392519112220330530738057366182924150876239697907159827109073511785878135729727570400056635611773084324983465830000774849808557232974462066945930624400741367833605858235733319663730877062941283675780058803294237805971820197925620054403050170728391927841152107876895825652799909039659117793935298104396819400855937344808446255857769429474705593022852432505610029655652895265208987782444407708157465819581768405537767549831094510005107142692718240618929460399405162226200149063953872655887030679437527215283531351540364804298264278530352406031631947300595061696644989802170143248416960961992896033575909702445428373291801054575755276968486448287641888240977163191097373925140744558040401124854642012242458115827529569837327547902883116354840007041085200308883818553144393424784877397397874317610683249024578413502806854299563258229433447777265432715145450291452287640776324732504313973487800971255440723794645000833257997106983114992550803461421184095490177288929901758079948579866337261505276460893775461365984098374821648283569558467019043387642690192040233205964197315717178179394053317437856665151965641775410044480412904669128215027928465717519820380187825057607232618039788187409709704579272303813009754655554581516546639659951287937466466442094784032379573217779819967516377680115493123414043482014321320326383563911285746875764197268779592518529681218720247290441340233324727263303926833353218231542096666215899427720459934357577873153298387259698721915739447526577432347474283786002977459889098860180434987096892126912980002216148142775866887738207013780896731126904721252463310816759849252019849183567580275607557566772081748362276785590699420732235927718667097324903096112188296540014283386298820173463365477732722293566031479449191085196117458247131705191072655394170819723984798905951771056231825037776776910305558070329709859509288517907483447398566303938632672121438221658112994490512162190088628004142221098117227593433017698908622700856030093558163864961130470665796441131786894431171749519624011851430118185951813617006683570557249399440770513633931754273667673631030037405056022530020570430474758595527054370361606131233906376059196115263291384796004361552959232428802638483954021356983614307690580861028428690355966585772941459749592232273060813510265947087953173206945514140472959551274248387576656459750153353174845237402456967172249735301373860898114354315646926630517790944145599021614182764010306348881709677671380142458140006854549807428413766539673384847832469641974957551484700079217984175720545544020947670976369351444262532172052243027000454069866072311558190287609938984103917415013960796597368753946594062456737180347195042239212025440385890263711213935062304391548272764133911446179317037293870006044133019251416539777325619465335744418234156131655515869319201886816759087026120345808690777302463252907254922185038394046018615148693974236076426333088216060535010377837818452341738787418962582249265615770192338545553725178280611124759439913074917302887376548116251192856178479688547411812567081777207338458579448584562448518043051339858853350326267729552803212119557850864615580883781349936289035593328134490029978607925083030685718070855359889402989909147888616813223228328423909203966856819064286492145575537464439960417325370231040990216928936204374050282383759229238411214779538577204487816459215988498013244687700629838417758284074480077372005502356252049868108076112742081090482214558991869926002756443580354057890566642820388041210979654623114136121211036604193203221397188103377595553876495886385864162170850142923865223203835276698071363024430945581428434614534722023798875391188897394328699441860021891671650890364426735900517440924585461135543703603868065796454422308108191908213481351091914790437732863353051846488343577575065381301529430165475515909576727054517830965133777799027234715725881760067678958690701182800426803593935781338947179102599301114508467476679240249831939963488528680741487000600259941602353284149948712205700573005327429747486727101165142636954279213391432721294597746940626228248123910611917759831368880486969333294905853999450926859050351465236376053750447043498550681761506494219590636956010621207043252476962479047424790644858735536554667851785985013615478157187929949506417532176397886493120792219369947791875803494071775272105839752795218875977533637428237814391543486692419578048112875176777990961968439702859583179729605892090268892833424574249665629997416806744179283143676765281778992669229668425579173755807410527468314045421664481718943659546167639346968856015993228090985810807110905153419501094644609594155558456018558127523365120249290775607603403626962693612195237242464370042077101854884516499184601298290891680751537722889746979377864874617431611705126033173743422076313385330003999568235302065315137484641597411094447580802695870308949192260387037613324096858133647203097354823886983086518522391691799005726597092743035016637850704811820661992748772143611237199935129644666815395190615416702145223501414058936289963653548950236841765807558575865413865272008468951389053715201738726829694824500182426911279511677401380940542111585237527356150198656911037971129953996008266872814506751346000409987386025072858166149000768147370100923185386972948801370947891645566274487327295842630164538758018359216742413462331428701659765972850775115428889559454686148074448056228865496499871276380511782645819355065142622418923857249713810913215053374847762603759561240700703382962006187583431557137906611572001645895833654222882055963232881145009723397196595609904075383690930276501930557593612111330364066234979562602903527510918536908571645887011588113111815528133978975239135628847304990683830501829429243028592660575716213328178711146656758051190395342208846684616861908683454808885455406596262627448587124694187304369358480377164750714783567613124190771068020664162091229809269741362121709468791780871921320007482959790012708769582218292578896640090384366499860228730018595866453259071656828732594212764048223658914046235783328723398841216316849606316396718042603780443304622400501615847045065576874735845324815828553645134987549325742565693041961461329387330113650413327485039549472513771142286028485589876201166571992246247574573470074515935760317595317685251735061375734397619174823882992889139186191397939090105199442837947635334102304581022483072670948294636142964212037186393083206759034226289080887373808614419044713610838633739725776186588565647504735294656816625814771607829481427917366900497410943942365549096870044361424562006300198458728456960663815847335959066211844273216915128252951658326293320819348144759804811013970023679109156378969234976265437605214632824217574370602612689687731172769251031388525087137017913011620406146691260799014579241962866626382733995084137798513149290918101504645014597802188933010068634314167151727703556737655917448026345446730234276866254854844781586033935889900802593628021865843055970860350314097682770399741375873507836910925676477580425879402439265798510493926964692333951181219499204376731530056944748933973449235198699887182832868189331255485356873763590754969609549031090851115297834130489341606412722105778426746304455715215216583935657908516823502690859711688088031233707123380987471977678149829720452285359448323310309383903220515080900155549028955868968153903266962046019957661057606459495255583027226845229975796096653874761879599243937499199159997225391762502348609628487044031180056428837396583649933941925600924519015996346145331573595391981720286285763401094004389296676051598504618497972984423654567727127115313458526414720273713878054572125426298034948736670078222679195041749339302548711188714503505374329831013435015128090420495423923882008188779330665172813413138531607381096807034948771342237745645296500198632461263960966820090995955965789403651170866077782725528224259522274743421325377212497965105032504404208346403583899543228793462533078371699014704855046748560716209250736930781422815823599062728048840991933103172270047989905627812708858073588730910392802220394984799626912127789837579400737978892483294407676762930964731633209550686255573578387465843359541066346218238309715095965709623867734072714428741217652829540672191511586290482893651492916269667619413131885161485341508422018511434450836765845961323596929306085452877532546200711080553304846277546551753095804162030636251767828840208660999268608738660186726884084853949692201702081399323972334369943246955158212673210694726615054849183847376398230069302554352192365604850260794783220368954705985838400493964286300907527394604376010871828360168702938840051391794334110591520139933171768399689416344887255465074708195689974800851443556082627503296111012378632889107116105376215795089015936421120340837431209077428532603732473636968214908614427323290780738551363269163003092115920440270546158869596509130334933421175895091635054835338728829270481286403965864483279745848129995121043858417285533112011211156186287898723302455420423718957065157409970468069801499375876391054467230206433491124334945065989123587559916708169621883961988106180521470810795625408226655070990884973166945440662754364053820393140105681485155643179747971458374809644172193290409540901366667160910103155709725243075348523060561392866243609876451181942187344206290400980150284705665174495276558763112092194601155593543831908204037853051266435346037412289386206506654207460999976211367983150318136697492775094291249119241429317217283272386765196821176431778853469476592887881689323601226697032399861429242805864396396731089115990878549364552944554115137560054729089562971475878449849080084246417048952056407684218151525466992190833064136444700108821011609671467639803470568712608181565870616619916289728169793988608317349735894752431070553254224834601288659696846478138294877024778942796546708072965387196391318036331244082290532797102558244374406158859001755314089606239786204208146552054277744371408903788973312185282436491729914793429402846498307658459513543176131830399997443080648891039854447021993789671505506947322898039755500598599403543110494713414475562256956706065188506080258919982977224041765235431725970804921833210229188364325866336917660525533453391694981134303707096410833479937034738157288175979338780453875266940515411106693014385073215007137831381803361719038042803124922453506284494532293177857138714739793462520641775528227575572970603854533150410753800753673198321105862208861566951008418698786842656671836412376184090762998335691911521644338364772619923416256160250548154078325518594464425090727735976075752680027875321509610356965975791411353823750039937139316587860453037968378388650709437235506783248577451924972879705407592555166851374472082239309139060971999089579974611276244883230279079873348268671330552401356169249905375277574820516287467048230654923350036127259825069377169788752194208546821148762494598169716661295147856404576291962961772923762301896856578022134421214322101852053672092001650570970614636308344538836812801735879734078150831690293834563543404658333821243990345703926253669391928768198420717281730983315016969760097983576060911897214226751050710932945697502186980902314356866964413169177757348429492624502098162114396959390116346255447435988302494760430165233469862888749756361511190769623750138953989264540972679040865157974084790253373632288184471494370109800098197426650021941358291206329598710872279741868497630609659384954792033823557063878425501698537309125626163968891512029865503955464381564812876119781110177006433600775484618175906498556039122261342234135215590883901084660176335403955402969008370807639141267720936873209436142991890194672869637165229977013815367732705100941437434222772737988513815822705800911373899642455479366031397388909129675515316123904554418507476733555838855584704573995352156843024272390029090993616770307793192441632921884293675748848013621699100457067791059845624652891622813117392032573526772774733999636829433049469025297186791134123527948070693393600865116151988123486261584937614718353067570189077806821203305034215653238933065582706831782577346139396234898112492100569725253926998582707602345782271058206974514564012445248476879301776226449734038091138558863610219290739680547056241054779539964170163248732425023953237927441189771193110225071779286564621567181050122421064812478907934675021339433453917717612127194691340718915906109830973064273813088988873873530229696042461722155519370588273711826823680454734565736406665563797293841497913541276283925708397927365938757581796111726057259244623699559784516897074068659001940295249937761054208771522289103545504895555211427378386470358861414854492504561929213719703548580153021670493274407018510205283575464840267792173325432020269111493405618549808406662903523455686957268210665744675486852483860534940504212376336805633465562203529420153671825811193356685340441057682799205698597771541439753511801356195261455407370733645066783034547669753335355584744807058737914594829902970845979018520028911318194219259308665333574938359574715597676493371549968313956784754009516751023712991756508777859737207859439488203015026957034273645604598356127887621012516817241203104489517948432236328660455094936913010932022537654933820533450022635970635471510437976363202918416000497081164130727106260646467032980635159282147300739238930973427040371984952641134352355049628870610431913091743449714707457871746092423275979654136279038530073746544162732376460586427564278529086504858064873615165684595561754315336632635271816071796807092456889421530663102180027761211008562191270917459578327944825234144596486972631727228270581476723247759249725964291177311623964007444931565473811624605566191706030707676692343892462872811290592343355957748853022115044598372790598666041885430878274169515586776495935066463532788411900738094502428552102488668826099332942941767831638449758980896982443697646992224570487343979579990319683025973628418633620513081683679237278927970385822708055087091381119787583950856595501572243702731885289847440431147742213183006987178135887748532548884434945677704501203940501167206837595991341034891443878347391545344769424396712552257270627441267526540255327157079327971827939498199433919504979130395864761928800322068947126474199980880589681845715540248228997205902420967687530952170662038834866955314731614198619231107481371409549456806284331542177707401538796054185569323610622097042405058720407938463845401466214764013119508705541607380865927877424328561595111439631605839364855359057894060280153140266876218607424972135881322291835331895402798622882599297297655476913442557834004728507539290158048905323428705803352011395274577775949333638030660656168418672210089601549688040693632572201634427159025895652983102372757757998447149907991812495146206274586924727622608507903904351111281925498603814607209045126789890059955101716426375442813923375113827266576847579442092395624424253303140087733547507174606103723849007278368832702370732102903551062158230921488217137459371163967053432998677110263867863949115167607620283574232408836847425016286432852072422933395342775576724522870360324268700555346348868732228661173955515102859518464175286431523923140539965942062154315349595501863013368112710836416878782187873259215196484608227519194954150063708021050161282039054578379582214096535245419572887214331101072084548559529822665861822353656995952733126223628389996549512422865628695291494486871241002450362132700109443136045218577500642340544892403338822379292247860560701767861087429963590403489032814045093783443583175221716934708788156228715567607099882632187993217739445186705813437534604598312132382962309162742286402461129241184420859129443964324714480756873887047688171214955827752261310362644247693827965216996557434275169169149939620187791021118090477831823943700617820666382910176281766190183959827801398481370454037111327917607073314780955351221473643176246472010965513379086211747292869545120116621175895414488025494815228674559734452479429751066999715207467658963775209634711518009861134689101920637173406220201378359468839026177948482932259971736646640150935629928360515338606617398141895482488448393485512827796765969299945627487509542500630996610782491801568340397648584095378629954906867069022132047128245452756794255317422419249027976332122785211245117629950295717035121351342024745151352382931589870214685991082539842288143890495454569640480993213361271948221063941799277785482836301411915116236952766869963743840022894934716500675356838308417215203454507572718932471681982465170809281094928509324141580629519067316059510975363276401203207709795235550753541467284222106073218175905822826385135109060087375418218285805319256824869512807553937492654394522137160760462713044671662002223406796583411055823619449187375379946793159524413034983953170443645304741645693429361706593904262430431190920823322562869619271591183232709031716235404780833802102340455179331614411717421496652318869032890694628771471388519868721065136537036525231318892458909183865765525018243293174783608458316560793774072190012794349409284991617048234149804593119607924532400685181230632193576746271067343991175874990276208031601284548618576400783942677778943795816239705681175096268084547432491354167808352718913006688613340610972904079867381267703336704575967285922600954208263119492884455205372335950507021851316475750487916043156485608200940324029534240420225777379903246129570389584634878415700803012358064434491150789737466745411260139062305012969977601782595261780893709819358721079853242612729592184401372113880596704510529248346414365507963125898931703596558064281134626500213106104145937503757494640745192430379579406667816630640778734772527661100931958091231721315651829363961320367752053008616121212720368956502230382949180692133378015927018194566872384820634051924285752179919050179514657456629565175221151025119212261344902978418214602723414628439407857573570976989319191380327622677978602491227045630434513913032527072452615009467271062629053708637059871837914826468334671076975553606295681497294159300390362701137669532625741288782173479096923686920640268783062196864196483528031883222722988563412631573957480676329173173057816106284585494149537519875237094394336228644985286082480551080536049192558796044904831467199921666107087743453397985332660692642055319631173681451144306068062712890797757196671014852779133314190332235962418338885075513880039857739126085938885693540424345211182120605431255088817037966644519049600036481155191193596646245336372011289654687370797853303370962996844774779583361908343637550463981829727144730934397962144759966988530583599066639038936677118384685720354539696122475631690947989134228705534547599537750693279054598014749935746997905833381786828498776355516172659554455003823034054585586949123485827971150892120427570682764922032866361240964931110503799690652246281454768648042102350895648015473266330136955426950210592583278287028197620603641172129036203741874735285175559700860690903025201769808264324879029351026011842297771924524587312849130342930197109091802836927286329918808410509619880812922145468502885427871158947302225160057289099653000572533783914493839485617577023515723643890577616990307640147936503190602804236981906672779225102879787494688500287688031291992118209048338327439111963806877418679911935718232044164886551008741680088548536951202539128438208603642606734574427349203622304244198399670587791826976896799721483643334645406135578061007133884151946639903490190380227944271194865541293189306618786782841675681154605387285439123700313205630904988731171933259934131114842553667047577090046148919791688726914009363384073159492251257319296632510954774196259758160521931210738646575598502759074165565149547190138714271727108718245112532466134329070286340428833568783256373385699170728794565783554353625233678949672001600104640926070862589196660033149653659298482117906687576966231303774920049590547110049244344422117181411308530904875290145074629793157682860788590914407985101049376867831559226844623551938154191192022227122900226279204836799406273660188042055930191781958637630228834338344536094601281506900759742570207024193843272638276473922553702869502002612654101001168340527936934283347102274833895258852177778960535198257466097962078720365863927910391678708591377086017235954222319670481830776736927905410986334738082644058461271217330781164623546625203541458560735880800749594620578750929675378601386407196902438668017413913795854863082136898895848611172101791786241804618198131607547526492744771035609020322179279934838745918030567082767119838533701068816203285774508142158030027503808739696628830547133855703870561865023248402182971011476028700299623056728728928314013380880921147628430178387786193944771216847833213680189214404269444685648554453134836106447680140346195480467894307511989709900604510592927909506119751707540393467644638476600026286222280833847292013398613114434060213407746579357540420162728029656659247949440040768537375954103086889591191258893711300184175104986119310011147806554582782674648972793226017405739299565236577344999945615665225201361567328473824113425656510236575217978489474421865118021755866003943739382739973532662693591720152146852953668065359583844539930277067657022140052287678473661993099116864573465700507752403347251454927498953120739519945340589003202772225608560270022729471927451828614846685233840916038544143436083563841430694973994359603176415568537440821402176970638709211293651539807276605126836194829302379812613875410017860548293834060298194511175371407388586150158229264186453791663334667374336887174961556098234859662642926570437724585572818459674571584285680499787571673686781199016393424609479230769730152908254066213239781954084458859503482949374911619692342602811277871466415813672110256662992346947167967855304814009101239239465971876796100012215193397441001326308457763965597634806152874852083228676154453173566278369542445182266761371891361883313972078154361017599324030800233194170536190438666032216993127516812648900519030112994451307353545575711985572108418012466884408512877723813180999269471361847891791831694426374508953137774245631208382069370012428912572604207465279895431396455975911738834159789674010257638680748629755116283710220403259304219667742235230329726941950715890465360518159187740232245194425595293387580718134820636714803935659973311606508676241878142584352416513430226087189568528171929953957112583403793213990762465781819668583647744667462003145493564252248386092286680278806081192078208092454496612516901750153704967799623298117813608829413551667986638038556893662505230050059664089445535351524701338080869651340445410291915277097542194787346367080402300597034518960089355201005118852443044800181785582439808557995319082048971819364492936578622090082677392688775513713036409091191482128298448269184415988372848463259126039823711978096095089846966157215999118996551237941598421464808402889319293163552699475194224988040312700992224340802195641003361153289810583564725792171335923565639173825938405976932303306192036482576167886984056619153644608597926607112143997657952259215251376200409805915660060151580559694617533169058704670668691745707572854324247037111757508314026436340501643631471333810916083222517095088698756582516497837083837343673578575050970958590579937832516595915739017358297717862297318392642274866774981220756656302897302297302800863438797743645050083995588164050258472256560263518319160449918597300988667893821992228665173957311138023162786936463726301838573314621681735745806013573622472923382616219492592564969753823898804219420620372805319126748862333786085306700281866926132192855118386636732463005540727893233637228324972293952724039847618282990253930059259955821005018059179682487936007579309519434950517478531303880340831769057546276986705620369106272670226333829305736920882097563780480804147992260034636760550226782047012665594631267068521523424792735488095873214151656836713207999221179642719083042322115065211722311677488308302209729533036937771383670353243805855514055715780443145591934260424206698466396034976138143539997783393092923085509767024627025947906445090419496055713876614827720058869680845328473537904391506756248177274773239216740504968298817645333098985402742441469642130526640216793206558544378804828862120817976877600336061312562828840754418603551013986651174501335588494618979579441643683730044861102434286931988590114980155034275446253929279309148285258142441459287468386484588105553216113925481459644573389431512128134316516302117087617225649542655565778971173697206636707081631397695494585841737421367133940502455553736302419414151228485174267938744130565649479362116401410578237695329443738086488315978765533008301215732391492141602254600827195743721625529512909959780974728306187038615610417030332476995703945537545388318495953024839152064893706497995804949592331775507609952698194774937540167604625149359569542320800415881141568811980655593405521105714444458388313887944981840079231182067597116010030660332658634271805601158104515991279909980201764243219111663780450304736286573985834037717905596094877464849059739401948873971681090138579838941995164415692354161912067149326960869597056980747937592921888451549115853054514816397289336937432560923177912779632516795483050800704468109694845900343191571321984837037239796847454076242919039558042252217036128173408263574705222583421391669872594842526008663447000671721164579130003287544505099050685788227239494718797069279497559632054921203763331585337844427668331859331595615557009013534514358117543503230736330733728232444965252178202731285071824719460886133044276340689198832031053164698667883871768765003214127966051668650560388469294542703490517436982771978954732983595172566817945395991745183742188489234515870092237113475714464216755227660463890682815009230076734756981921761167098679048270703640857709762694538997967621300415224066758067763702203988815596817893862179878884744371740573252215214195824642075959202242870498374556461832120922198763081930531554894339164565829967950603372968283191112343014621940292397103662977852212046909559745154439060841939260787353991484548796377532647592278572014940383317687058976303724218356896762936213248532769461173275977748590900128972584006641472804832268250474871318716188505830193335555590720122741609430896916256901795673881950640708344011085637037381604074701024137222760180988434863904882639816939193743825217884238296647677627513079796366333466770359798853537188651646185037276738548299782734645688455845079397235985537791145859892445760037173720050567488878896872994616461720020130008033040533909768335485581429040791132004262354056589151698565882570719318171468072539218991063939235050265305347114039633324653351899979421357988971635019194508795628331815953210986683872812897295322308987946439956759510464572965585788818461096757384791910257107855599418009303317210368184898270893369529443224182341448103503232244940084951343238258851214385747331838471356502305935228545487146348927265795149409781678891173154229825570576150769529025959377230098503554565167438779773470602844302018394125007742893315363963391695850284213399368652998843361341732685584458721157112308312504241465498056454781150115535343342636341337478918746304843477269751525612909481695688230889574043025259774856509642787124674869877174012234444787114796129826145951960707365256291077980892800272521580627135406997720330571072550211315412326046880865888125674945138921480382911038435013804297899153364173572709497169853077279221064499857481910699516686770885432893753907962056918489902367029689482776239785352501237517364586501656789632612626276816494736314517639170473604417035129473268395880965777104011594696659817944641092116233449153313234469840747266457940740892039275137403904849452936456959784749322195255383501867332191851508277206435638054395334201605456558758455779760095110286491496636004689610874786014013507117155508773994749757589442196806947473287182220292319269420624444574196711034434119278087596196627213645527576539148193888387373909624248077952660625069766511240751698739338543978627677365353383947271994729743685925361442669697795567660961761204867557023331730980826061411625621898636221232776102228180656626740966646823730555769168548077549110876142620547414741427149593240231261910910323867199761422567471922104603901461897663454222691091555784248682370178940935177594154840670711057066183002178189736932334466635646123913080261940470583942556752897999819508082641169980620733158976292645461724606593450200423434579298232899639008659400491079454885559024801039862455514101308738444415378527980971258615059572046998806351808843417658223957536056194042050297423856338930630266688789744082041517211157792049050803029403075939175065683726595743864581303954772057209765622151066073243383628624107785773370881730961895666228382875372050460302762160260208015020194887419739119672623814633098071500180550595409695916025165957377584798414705821460449264932627098816356506566822502085150127481294581548459129168137607337889536261256453425644166500134908415588744530357117491091104503959897071268659631819751298112235540761662680630705523398736108548320069464235112383933041438849994007507210263000713373035867061995735683845754784293222280768780049421625405797194450655151297567211162014174116027472633368850441021141281018085570546819108744603524305976738141384584532076597162867405210268684389770218559010286033595129638581476871147038538700559966415359251265860594639138121977084076933842316529568211659803141083515123758328079641090178736279915262280746073230941105494093377444314715710704186336852446412143197803005572479146023032526853788980355476901169647272123798117426894802155977850484925260963304699244918376048832279882837794682708630009577136329131796158324762502306111482017565064012953441483286075971326561800660795905470897597443029955028446768485135955791446345880792076566262016738346055479677042031313490470783106306370854256700237483398056790942513059763311402924294160064930510415011125426058432736749044631632785703360182267796198861432079326843285749226867735064508155384380334146942612139199138944889468980591994977723779639520589297989912199247517113028957795486985132523233101153163130366574419155602152865231105298735096626181885049045835063988149739426757527851956751792583306485290264591628650530542786948876621719719635686351722528884422972488082893802094157120321765181745226862943018921214182458827920232028876734751914374629748782563350348205053286154158381380081471256826450960767055843302623038551984398031877083784848886269029421781844834516997782175769663926281874208769751994988842659563920759911646746342424040688150567715721784625205458872327257032624528266610822724520048376591455536787871658319889649141668650417444545817478121642896349141879010655483786738215670888954376043432818933930254236643500621792806054244010138301237512425661472222453414734769443507298789465690667615007316021782974567159874526719678672986934274175906440631907568140510278079820000060548753953637988156888931948117491877331347677097862134313571103903738470649269155648586524534247214923982302762644406783153633215419243496700246005279752769455162169207292625932599452590077481343663877491513249332391678121081329811385432226996257454516557257576770334137699491160188879679531818634748788113394295666755562934180165397635974279530559644492722384269083500038493542639577636397316172509919143600106697790571288633986856877567835936070279294557390121132733234242084614008940358318310362177623943323342247982975810838590266452024996188095757717229898040053206894583542529544017042355815345841541911656977741391437521709403265669447407624744494707654026946245107864900336571396387687663733756251437961918348816046496644220193243835561724027292564234844977144717867566080893181376529623093473998837100900712697509097406633531710159607099700825344013733582354468849167614283704266496422189601323734105462670417875544812282967829468165737555665229648839215356097305895554624303633783011110744626059540405592555339083445546135428608769377228294715758891508531818004881719312191706198630876777699191247973779355189071359509318408979346705150284036643842963652459943940242549534633775348582540436872003861312832606309870777638668437458809764950450357645862382878971810794689455370091919318403251897550456236035003011789724265955930172620355583293072915771593548349443901402957278612346986678126846865397260057362493706064361970796342147009403576853567820532906724624787086946946861018953414354329212987366201585220552864779016576577161251710557266741047046550578764357636364092800431063089969797879141020480685438235257047437066114062234843821367564843807634558168306122544498516042975204570460451752522413254933536636616961292691344101420180778589608450266736436662903171128080580977551883076060974567733212104739052159944553948916204975255835620431987459946918220700583748673411739593581137652247272790980182344265340478923943758583954929616592542675139415910581945682683342374400646338987089189313487721472647878948466649337348257946077188057589737436591441640882695323648745219636012924662329373807637413151135052313990188932184664969403750879715416650845811423040914993113591261226564928661065369127769046515695659763958997531001102781786026500606295139779100100850234413007647899521909213975084550408897591474812098517494265698197584678952400746057970347544866337305067566182749821574391105611788890333810837626996613090358584288838921063900888457663450779121528410972741883107600032559446636353286984125699465527817139126775086571380611309134487922306580842177788506735860880599751955762590729200327973558202957990202652494224810005282952968125838624497217590164031937546593168830287871134007113034587217945351463886852358101152403706357227721931954108555738665207173250370146296571357764519109301942187102100386048532433126556795409968039646975944629310902499720383219430982892003824467204353182512438943498329758752622634959195715462888536525318442724753660469699229887069078692806266303560108811216584494580525268261008181470608383046762144868998603798536519201649603294092746009906300558540271022658849674023619901504235637640937016388851499552810499320510465320466301728448800969320078776857110502013112845930553573878696584582330635737089504433877476247079182767753701409299596197490517807899099403555661318693841980995038180820372167088953546362901484451720736232284203645510654623232351942064335535899825922571323699215640771954007447478774004776453012758568210972311883309912939443499791858081510687842217194859785866725396004338849757607604078200734308568387050844738702579943059410796989407381760692163271035409999980936749457332796002406601596927389680383519913326486240102986397528062135455887491912721657140251699451905610468393322321850193354095774358233567026870977063232029987723684758626175437806301932244591078056094671355207323265032005696135626547858885323667975229875125615552157485524555394842780791191730854245663746828059134096755248339979454643785974244644351864929577224272510374796574209204272490139819721083896022534764006469401179809729320831538266641334556762110537722056217642163743645794406129616565605278977764914359070848173966366512799306915770758790840597883816555662321407245729079931297329963188653904690327357930623320348885882713052154021350869358367356204066604858963594308739798697340743078689920751297264352764332350978845165484616312091470651330310399631182183529039843778346785014208109245412673753522602232032457783831998305367989209894320979153924852103192954289377950399197137783962663414401827653203730458350283248089871479515714647424028895581449423592097602907333617949991989190897476647450513412709118099745853292877901143028295724172143690279925616755443142190810284035348115268576700189131191687286733348113277906422755853020426886831446523369118651949523841203639781418336287499482720222049791722947276343850216311887373396668476582996744823726288089653900153333919010832785954773903125019318339477113124391656986307978529261149006801728238269972961561387040871071453524309862909875773203888463938490920198064434987128903719338392907140928090169630020762372588420584942349765326283278612209468384686025202735663260833990985367220821594913480113789885656356937148679024267151280460801268862113894316208784720113558475469782461458586904736798514045635349562519260313870781206349691806791648208228299128986928102645000937399885134143004223371832918681677485799530797616763287856172025436071659783109151856355045859193226413297978085052449975151158545674379456864557985716943632725519567791989132142988055902258509434727974382505892793738937109220386310668866430754464681930776738975977152771144663682767161102276114000681085264690108529516185223670847731685872358408292981028019482675337746866898157379423108771400285648375204492614090722937423516265256435945182602082994405490493629920557195434166909730165365440024725237481598138362479402413179932345401321446627716660361625666551196860613015277399960642382080685519752588079590105118920832805834621813389597364997872975967245363451268271050399144918152639675611450287002511537103531004151775823459217734994843505189536910749959021182996249959886495144787196219971316184485434958384974873468313095347715216002844399480261326025624188588089126081735028521790331999068749220834902996254458813433395389372994845940892736664055955522067281175223584583244332714360988524099583618718995884040756641681769375251345618930412525461618232391974480884257545513831246890503739286395558073701067626443834891397817440045211592423946235136561257624645790161913501339790139895427810948413216906725018320156404698294330524344093583126905032597120815782462675914902030922283184811420464477115181729030734534836336911120491995425660882810717497491532712347729134967000983640445484340531113061809583970526481523454330376116954585779588868416977426157246505484840109307278058248993178716248745747631045271352605601491722100250684019897892405941926011811064380742708339242718587661118893118620709173630144611436035349825798011009186953443174489563775655587068520418021316222859628538857290991836144820524322390797479837618247981201041535903256055414933510299243562329525314981863690197669533936630381706394605696197028427023484711265244343717402004017850442666644893404528233898506434317925239062286913297067178740520506367205593456371632996359825436948898134241025312135549544222014199184167150828869837124184451919273784197751331231901083277972295061371446633946626559268506712720143675736607689970968912531280060178936933049765513662535756205885013826294262433727724317555917517234435248178578591381603247334839705017696291294546611876701158063880969668664443063108554281366747824373143977915693809588365889638216416423518630176493203077686796284974675123713161000113979158047260299715694930048390941646189307811868246997153161904969895387630039093206053697659098462710926721337781433997583377542531245877198805660513852807870170627034532293033558883134205471093096295908231450836930698525173111336412631733823488667306535904332079315147931056819212227212283300113213163257843599705722157960998394919588228612242215053342800735631673268004069185984051194642351793743597863096622770633090976594951415232200091163894905000132201428646471543305489231439401148144887467512852582571749122218907855613691210962834449666767775696394463122118550126739336930278893250927136914124215536321710975233965246230196516772181616652334235521945617814217856205816143056008482919489452291765224987912952876682978117724669017646018271765886513497594088241812798769839556610182079660276826096992598695275487522899274410528648747510974540041966491666472167120896527642127106288745970106469107724581862106613923266468672351314912989255930906929645335153362979148247328320436711318592362461040961493460015464473174993459894890468663624490171678379353862834268454876330200132373460091541237746847686320333285235840407169325910307786864033117493754390953036148695371612190714008403543831875519596279642076859541605772396738333392858264467074886392785010272981473598135656926180260094969737805045953305053505089081859824099842687439477823582021075293434758633250010171048227104497634617499584241282892209991362116877768460880012286272571517305925794219765965359934906286568230926926953638434706522525618783710558733208235056924306525098597102752506504163120299948073985873212716653809363277172653501973796638536022093183460719470936923079304756901969019672692594925844728710512504617508764978076714571262921031923729519829836174226622820719059719021878636263963187541937386544291152231149128533996361986425477815607524298778655203402261436482723669561985642830546075548717383115429299770051155891263524066608145165067697398808738634529130099696571898893481138992730944378424080726868716906069624028550562954923920352144233992228020721000531530971114032531754416424853836810385578311922583098511873481655266024588834930267145557816829900946269142333274592871364267142559489411120946137240284762993701425705274764690688351420867082480978748083798787790274361790464008881953009296125674809043590408798678074137469141006392123590749874924910568538465499298909587372508380541201992746811502429423464759124325168924386835986102700158528107384130621891008372088090662035739942737598513690557467347103061510298836556033928098536106659443456266833862863276002863477805391370058208814908700192490944553629083831493362393610548259059386362136750673280842909561419035079864585265721354944610137693827804230136467356698481627257697300071623067813747240477034718716644764295437235862729808181131833652111305079911720153348761638210270834480013509113047414947619474855338359894680777788031732786566573839154684963945443204037384991487739673843213277327087132494662864156156095332924372318329689623623437091959017828428247825656737956363510595935693604003277482787498943417219639792669398189222264745178280921461049234894012697427593674172450956093082707566996598904465276493218315924550300008570622916480964375860010031285934612466810463223805035076058218927289653034720137731557692081812138063219473760129596561015514146922585698728355340938074705616226989099861496631726115519652441011107319547879456410289575190340153997705623283597475059087489996658874549732458825075682596825605683616211552705442961942419961274070948182626845834792062174960886123824519633882759725702597605746611485938167963097315407225387596994224332797404183831533036650064288454838388327862349684926354521059396693427846931545096461300374979643958867030959065841317386011420628076401573830511031811768565698997339772618056571979073870843592273357085033371033151391514253084390649991928931497035398156925874921943974767597755894802271639685714299727688237584784466219815229249371939834233317589341115055709423235857460709454730453607172967681566120466598774353081790149115178827140683863474501939405947654416060901169132783558893919180837441620415813446357891449416929046670598677397048492728748053022595644063791526180124896490246882906332629465921756509671519701564775787144162212461368687433771785704824303034205540881187732343150921607805041101913001770307905001700422277911414074731145026668657500952278156953689172067344275122487759384382002080759772684688392231286486720020304760715184583449864767696128920745931778999240084450152814903378538513953374312369126634840204550399327392603017907154082097550358823842113098455814333062816953962226775591607309031920326420583943752708288537641583429534874031093337854377368587695113078990450108745659407740567413273447183083032321856576030972785791885517868801031351433474621103734674434813546697707834711235531826288241258370669240222914662291556762148061868098427766602396107855349498965788047230687197912393301425065495842715188243835119478478394454840952100374930711633936186132754102529168177291040280413123494903421880454089137714336378975436063292122901500356909226263523715039634559985570889019117706118915252251804031913668575010472309357194174684234523168796965666030365730656529736561880560263935880539100885784730385022743564883471194342560829510879596648549544241175383399311459813725077768692146481809125321348707980702483473974935075969843595152447610313760624886381420067854890261928232453346789601682498012971334285937404472077762487344521757089811073468565969188595635662060486421589187077416027602223969923415846626042575774225624863549398408668475628115689186589510141285347012958051805365042748827514039691351355641843916360624633999942909030434394042730932755777142826349176988287273102572812793402954712741958032058458366991153995719232147423351314952326578144763504728217814974236982768495801082274287152936657202789776008063654657806350473975577686994935233713910075016843506741294395895581159199274948318213930463055434784865596080134468311069804830918876969291834771089845243876838205046788849340635111737078542410630678528201541295943412048938769675903837368417618767139518962721592945274671427472458049314880783827225665248687371889316425047973559339494896820970883507276033660574623689164036013365725266197445344993467235501257853444786230380764147395685388187419042274277352046442530113345965905799586888689642983927594897545058413590250894433147398472659632355803969565668761817358716431842721706124077583166578503648989206721606971253851242792417482903855810097197688892365080642498465215756815494889155173111834165049302007137482310512819971960955588718262839127435361651418773233059337825286040255565703478084389240669726321206362119207668355576191655307970375038089314080866051026664871311398915858981359870279876211698940359991769241313052459582870491355835022922370289764541004716720799603376354646755507001687628106137682376674867553670772608272609148536141699785594939886994310657590809446051924259312205938906929633488042970117345930828183107159262573234206536114319554101585093808010140200081756418797586047077909269611504838062658604307150279550152024918070568648979965442125807951462256737225733918126219127402855856453759212496704269367586316261461443834382298885165035698812328099072766666785475925805972006625066397412637826379049143552984472145568543794182235682193702724706949111781243220339548012011649437775442089461398597526096217385466253054711054090829995490180292246284240334032293884313008270421961666838660576376999614635921692625507830041926876059322629697337502647176292388856944205299490942302365062497255346854519925435333892517777639594347701355267355289174462939301957004447037420441568937414008189929206481277693614593021053440645989140554365427801083482171108214439277507138357064524817424423970745722609676468430334505381439319339789227682534023920964504279713878425499973085012113653229383818576580107144701196093941627860913614395141646333864213729860622268267215135731348245378969790828802863898523441394964476167323488250206533368556742809454912617233196102478575038099352130525828085748158278222321489307520908553760946417661989021854339333625674268043969835748164184978197390948642682902605954079363088971026115708245908185849505708397771614281012920507264925471939498925073341391731964553178740428325864425041599289330861501803760420881915966599675701701964084150746523876925071272790532833028595101523937676326067003671764904921419046525613280255743868313641250118584960696346370781185936951128288102261856177710232760123894242615505023835875373040290438542997116713808956290678695774888303414137173717101368918260111878784308692154137665645261577975395053381716577032028833092513881368790713604998420531904567069867119530745197018644212407823594820038538286612748871662765697064252460232650962676222418618998893445910658879890684904146752953907420168580557685426114586634778182482807486282001146184501115663781225923094121109395067222400348369260555235033503529490443936691895227402319887092176428722085225064006167779137223930713057401787812056683532905724357740691671882744797773309973403355673528808683275247763768549627114772181616112059736843064779628317444747981670959259523986276235198673448382290770376229773949670325514482692539763420626851477550641930382474202462709901605004493753908299275556584959084026609292047373389570636765481945117997935422127004987082330732051411642698965231127068374961590197504564130183141729849265137287802212459351858058647620157541340699051782761755438942610769303300353055804342277563391139232427850757640327187325709836710924692828633800632163035646566087429827302926498586525163722090387119541147404621952813590524487453033979879244033175284090156798328404016715290253889411056784472408364284991613943771748548877937223471280807465274611683453614282728521402940385733960176107499678050227485915964637655534219965689973870750069972074240414238227681060386564520895466195727437179676564390272566606236690545710407610625859427461168875884911842666123047131657328801020450297284791421193657993739404965265439945193294557340313820167807443101385394620110368306318980853229388637816706224993504696509663332604125323059157370122779206087601903904428590568463252594710317756797670478607657813453879931216592572583966847108306005246083484071784234112109532268500510649437800312312526966997568744483227020423339541025175732585748977787159753188114366629190606319583277583527912500169465975663357005665106881335561826891966566982716197791198610253825586309157750212650588556347082416318575965559499159650782356367678168090071809568235475100351411948091364139121303846734244581244054240557622055883648260044595966046143730525004983027365232202477018850608693043511270914207742343019116208710674686674620899409973047976561305941488515962466811057233344641833386374709284153288212548286249428833449690689632901713379435099021433758962370514959747316727444447879038416891353300950561365940394260562793888711704969519171675400224169001659066411306169962249559137844728894505482851960684829029983953728684591102512366147413123392564962983926113740952491486082245457311719980594075436924319615908564232460011844127311318758932987741985597738756467187718473438733768187553453867834679320469964151638391893527916018146795126527525123553899038570957286074314609131923962164665036226101252696680083522966129250699010079522413172172639180978891110454649927937613152625406205643948932345349414115296860411247524107895845162391223725191394135971686830157092313161380255149594789797265852172858628680640018266280694046089343180359861365489345814157358422042809437670236712983680697017199389307994602439862922366033199400171917181808894922462841355629265992523734522218235764017085493084757928660320293472461949773845184217279529524779670366856286292555369044643097731261404933639867456386551938966505736335943879790115191503382672601889520065760793391496791532344001342151951652114195458959586007698310965690403591613586320334044927713814030185640940414153782766284338985994469313139579168868163553493140067164375903687464964340635302457350316889188886118197022076621156603032793338110029509669747036627253693597782924236840010323993289768367745886169168541261858505604032081574535041322843675327760271528270302986654948962863500979582791731562982516787819233587912298427196769690325931561258859378438861339512036794537721166580291483783475509613286760170867578456606955355755560028968336736349620500812581353832665295915149843353605021194681094346403052202082096372228895398098463967552821844205801250382917475843459223146425096697539460318285601671721740980522043666461181069891271069146681141840677759352639332592876034311866122279230702575691594451374723479351521937166717185287084540284476461396690624365490612163072744353042835292519431488709588398293597618423093210056944047674332600524809142181712721448388203670792276439650229264480579028783005278911378879910516394159325472531037531114123544568606921250697420405343371011520396786892573442864106975280670378110260309162158348322200295919235954500554922848758832937030932864115094188338507451473849178497908363625670598114224766904615968828531976950899808847392202551151205835087119864799896495940263708910496025617009697637017068256626459642472109076089996229616114002710279390808329948059733771242823245865291915263414834878221553637272810120710347930581628578348743098937270634115810351929895550670550887563731633624544450625074023441299271313348995710561404495803326067625421489948919168654792031919885204058382505241030118769286146806499042839805815475961930234508504484740636776268101012656255870437084615150190445346115122947035063749588541483985477318483435481078105752518596335586365059489399084166688487413852171655229086118976961321036191504305587577156772333559221992775659633297541887009133220975744858613925394584857862472086020400741183024260041823647642388224249323049558144108888543502866030718084809280181349705346285937729499536800934953740455405752743832815238498611197117963085026153685770805650584899900105898559631671502261955484935767094522715442813665015014811569239968584314740830960304313379450992114691721439887206433050021013052509232982003970885145440844026775855369524762211297870684368791358736784049539204931723519697427282468957617764609122084997989296842187067527404196239172260594386324119856156476005689611001018502760591423979506254162363017066428971095232089356889548532905388395578435649517922670882504212918632666303238317090119092688031937881132760405333575123516784705059163157620962682319292595899953319182642950807030037109662654603574263031632210468530119215586324705720454034318894348705869754945710316969912878146349225141516158990747392238668943335069664262799361540308361560602445376218141522159064593424962261746696755325942315323204857165525961390417251630949288351966081301241150070019794407000961044631619053544923312877245515696493823618488469665580043897791816813776034906247979632959924106016136822755721766503125036269950295200404515035540910974240758977170133707203126059918092689372853866683267721984589338260143618337606167972309689066728874682337184694707222428798989095371997274614642244068127036709611263642898308251832445484012737014304520940090724287465277250296664626686110441190673604935393688903320323861466276795228235037493908615503473073979610771148238057042691882759480878191569368251117118873739923489587469017608606769612207190626294536805084633962398927559915657987972602875413257908690260243031151526585025949310099173283053351016141923254329090768673177780456300054504103024076070077245454566823370166708900381808522809318712153311977764237480022035910212725050996364830849487063667733540636159018408054485672654179196247064151187023390090831606284349209048828222933790660093866938471803081618733041600848697887726475181332658999078455982914038229103481484569868989228942633412100953150449952823136517720734417363213623806554510838107560663299308216999162854187750530811782072073414248120259135956412240863934485334899315281930650103751289496432306327225290262309429752282399539799647133759978473076803407721268993294885018328482990397165735995430617213857671063223009312048983401190602838965943384949588429017418110528440490190886939610962367314306099473173073751068464526523563437737620975602022321244760239221692426030922305642060019912553456098560023015703001571673878471124864305560961467393387713341785348572332405701774722403282937033977167180997243505605511614788081938010578425076809502819141123927390066338086928359915073105727152444154615771472490829217633924395504138306091598683798162589966625507648408771663784378376906797987377359383549699131380794804299356939621947811891878526682818705602422997393894215272668082563734797769112014763824291826610133397082195000178527718747903996637219855396433139880545011747384657453513873695535629850776260046231911662819062809349443903047542171574266402660992117083245983904710964839377056313261473849395105658614969058027660852297714200146663719943015359178372598611747105174000849559044427752289719099480461710264092150083195249988605458509724898491992082063760303286126995340645590005607765255742263213522060823847368888125533966026906331684064347988962832536213782557824990570443783731000985267748001930971146259988431322995319056117322588825597366409347471651224175198906438954838543276953737321803867652560184120421971262020010529882546762268104754410119693752928098788491996876154127383364127209773967892256326637541148096368507976587759552880946142984727505157704361898139411046772648981989670576987872460664604247866726375210524884387686828059041877613105308131687879333138950728559839600299198169362302377393076075726775447535597489698596451916325425159119612496320360442014712874799150097575992530835933118959804977066516754796120016857367668501389259091657791801786458101612886120916958577712681186036175483820048490520348879309462125826457596928042151266844857926293920040702862996855574661873937683191530105640098586450330479695897986372526681807918215393551082054924159050847831092666651791045852694487146512481178334537049145499308307236353076500454277972014488220633203393992083400187160926012850640604178562993481158107093655275178883674655161953343853185944819557068567145595972005784006848127051156202665718696370696391117762261047983668240715588024030121473487659824465877201309356593663639183250280017225521484628170494365175972331313459938461614883027769163505229910502373481492430097440890013472596309147614504988639809924321666814010452134091124813531735996984295089435496342301064831051419192511683246942274052999557528676712113717339355803475795081046587847078873723388878962732924506910511213313216625289552919349946721845295377724570893313340584200992063099548561557922740228110630815489881806817141386867152278495576678611838961152671525346100095667060340289115144832123926324405940039038773160234288063770706002788931243222128590817276247472000742873384703438159360179042823887746759350533331803290837565030224549878132834970237685494843780548395704764312240038594217586372636058319868642191204904820064440650310530188714692097295355414689782038885020780186340822789171921597057467165486534527603938011738607293113089849671726450016861804654770836834056322035133736934162015713560263751255063666171022368599345928305988574046886123182155981041312495823825765206143263792283796986142892625216017685671871789431669410691932915734866748964975661150032088551548718606687438355759134372332557235991769938386066789629027901822088362361584241540598348766493318916005372170847813114735866130523167205488934877542137901642330549862491190485461210067359230913383428295591022347111044772969692225609693075737966540792282214773163738226050015083823789834584259399611099064545727507154177194680704939456491591262857495225807226278343935682733363531810425876740586505973532020765543204233553909123477693430227441967023460318581469887953416425961512750040694292587826661110037610349150532983127566016012091017512802019977124543374701457992142396338733209403623093373656642943062217957949257650781450603130924945497927335236792414107475495196434995943592533935716846787609226914981338157307676952066694267031340339820372450581689355995997145225132851771172286253199970955704232276731248962285057439804069419782310418082772647127562151538663084446671915260309827085286498154008503478987699708335936357854221259110954936151237536790213204935662450275175084655503939729453191747766910046637831781483986244688986028594198654637198449857115106739234994997941436692168900053723889582606047213125725597486377002133887805045693119985959898111430842883900566742553613203753364071535096736660341875920177376279641810781053832119619895385886374087939686551281552957659495387796994681896078379097325333071216776380796365096072343155138390424952656181111557515679911063434824914163760419062224567649686734757850842066154926756509063209428827014239517082091782653594554144353892067337015782279738473163286101431375223059126105313346616800702580365080192663162359653303445033919271762179129508350001228236169854101557354954928303972191148611367780797052006921302877522613297141950470011165537938300320351533035914601013400702863818293818253515797996609390920742015490998191017262558806512072931814526987093610814544374789702747519698127250744335345540118451887462672499094744572248490140356167532122107117967009285925865996759778789756161485330633051761961794482889868855788008825371635165374517415939176564649910008508005405477934052951920509614581441880108774333504148070974454928753738178712828859031721810236605065334959676149239505735980395929898896201271303262226465624659223894716799884713020006567816702112349370453021846824557681200276498417354381492558511218930289046675033306647102177649262930174953302134076121251646385324538478662544311306084536600439180850655258111751542839486915479325181321467744173593900756295520135046231736388085109688831146864898134521042712836156696581928806452230123157125766871727723076694624286601066597548241092616210974562107221260317405464629007808970157617796325615481301254607337774510284568743021116179484889664881841950455187452660729741192686350586246203891988259418646598565754135034169227600724167847882760333236379501098519238795271913764026681310640048204998812438370444076262144329665336065742968266836575826861971569886754647008757192049126454066463490966028925748422080921977965688563517243786117003140555442430732268673031222753166223672791905332336382420664779537285125141146067329778078161664749695739081373170814044892493220905560166690013574199626083164811831545567656950934834054147326278847862851205120810410449926549081246259034865295832692589742886832526323060579096817226330319992753973314512985296367531151386342903197700009606951436008515411920962418945093059323062458926840203630844342657915891711175470866478224184206869524806073012570008274581295974318803970067353588337530749931298493052457102805190736376862620040359577289646284143229419076513296426194250508511083714770171719861815990185187865492520805196595216384902652922055481761376288440810842222712550890345606444418881395433598209504641923396807786981879327336347628865230810799629446581279506492308193522993817303130482805534669089354965556129695382061024365765925284753148787232237462657479296506873697591438474840199415940365014359447512141315665372584648555896783394729855086492259342948115578738379868371232976280447509787883353963477726948564031913629610933821591401006304539055592690852237602814021283387017248637669586319119871192898084397845771833236464278929572067634536593753492959881908666298771529705297301500060120874422270322363075773772675968691887233998603018534696633389676502634078326854623577148609418201419630895882082379604028161256223138229260555930049049870100255932891042793157793745234639515904436082832701948601244280417588593698479282315602876906352853979765774420788676760565775516114237862259150761323141310015276755729354825894993566847064915241886292077431830588582543923236097873139668215097921242691375348537537378462245138911370055300297176213021744299356282150306683212998160400012101916162214626774958107429533553673848615489580186434233150100556316801991895781854741578658948536492342999474861277731044140283319629437150221647427356965598838220487204002627535609647468824252943285524829509050916601843350118420864694522730174978024821181040083465104380746445825777967978863709397495501189276276420412312550269641123660624726569538844818285517788349363689199373116673625673343397593630193510905976867777460182959143052829325891735692704042308113001087123035780397345922723552744899132355296217868274317595189154429644193895111051902955871165962791271359148601502402164152664906384568604932305893085198328595860814320677040362977185805775523479920737998870399676641523502279862483504686783368126343820498650391332412417370253112873748627770209360288466396490232106823022417852329791216542584845223912402528393365905394853634085549653078610167158610131919345834856574534422975667512306351152792076441840762428292787635676506302253859554395417941072787464144436078730790635278412443758291123480583388345009328764993345116125184153825499352554451732387918541948855288860712988234849796420047915706746041359210876483909215141007142832580786876766948183490719098932138459742512294698122148638327811186698784855974250913870050665507380669949539766780562790851780422948202201447708439311888717047919297792028968087866026004950176948447874971161784712555665056457084334337099761670720903554087982935485064650100832544430642380843162507216644775656068055493692715270700483116449733599679306739344264843830087030359397205373063624840147617536108492286967953262005682937463243140721082078763629529463733587845458350065340536567109924942155374487470610197112535158600053736381824406152173376264131860106204334917572870090176071992195525950599858379990739471086222308319730821489233653997900039417901484706009339743249993478714143157355669944957382613192931968955150888306334720239134240591674783426414340516020046138722374263883819199407081090599910991373158164598584208712060496766884627343381023853982781579187303374392906463049430035181105177000646761070131314457633476850630503120862251537891106510646137901016704147698728187397611759271858751020320176265578871259827661576688346446654972278892467667810788993498193450437551837511533339619850649387491333042436281219818709340808141767477094698833712476837216687109990179465136120833853231958698811132086757227605444038417134285890664570302887407126099962327267938103037986988218200614354169837649227878121834938870329071805575511392034198896993973500699243445592626114021269604880718257927966795380525103099753895374630112399765252751463268959067656911801001028985831300283463351233913348637230561009516058842580218237713787569739308313505093966266913948445951598469687142475894918376575860054865750661835943173559672290212947628981302759733385928606597159397009718955729787222939021068210394384133165203786718996306148856768618543857076559646824830350010261697965445335898144286646183710519769071141793626254739945679437110019253618335245020312630568098979225237718741568405534070754589074621691038863178525748821082642549701641039839888810098776617159187295016328998687170400223120890682068446066357893331421738285571583626493593898397413235546423054436012065182839998039757973608642262659687018124347500885289787685247893127372924221837341224300196657143299207983173146513109793303018298038484126432086866016874782563071202943415501356172937429048680582238508048981741263721173754218716321773321129690036989153516960394699044081041707553039276736359830559264473827771060603644176386554445485067721977640826476540106669654864545265858523907646804647112242713835890177267941951491709938631480252665685493823003197986305885955974151666328628383314984187770358359134203699800025707423565468578813528354820043208873750152629833478885201004225345376557611140032184769529142427704933179806475503561128502103499079633961866123351827449905866415920579246145287767593515332914333969972971677926788166759548330995458779213813154576665219882671680913340433547685335357073006324080823120146701550356893891066624261946252071192193963126225296427466627364384939313175663378405693939072617800373756025070715172587430886272132436909771283732633136526233755670797361612441587370796800854859565707957927831643572149978545766425450578140866911143182966434709906766694006704126652564100712083914036715384563394414249457581826393885950601141017667330813730578630236771954151781845323248776620766339642495931614964748772805915746799542377555089426016199290607112947590575668586625146827691550524878993461288965914617160582707558497115332702096154340259443905778779477340905955931797531323714367580322354823164466473848029878636072917994994386675873243419539577478970969700877602410301356595620452197384205344769813218739628379712820758143989133560560886119440165548332469705302747120208618645267288185439747507672596468213281262758451015847066684006444222834398828037783462884332319846061057809346729918424841270039737682817121402710398815310857988715282382191400299557262552894591886822538994951930902418581236527659810600395579392718849526336742314508739712047218905576866038680562268015744299706989151453440486289714225022846998563188147679892816823374861360379004412516947140798960881769139379821220754720864838963607804972150451738105431130368153987143216858021050362451335878641734931583355428476214756727935461247671388830307269706351251235231405441488142028116938134874572936153689028731231768995176769381296770546951333046847059339347282278487010153306907520476329217588661774217822247754450517756051991431315904784199286083415037803993218695638317171941750534644201751459214942598406826221753365216321226555515992622616211830886578137914152410793355357335870892571857448844318617517347955489284700701827937895971348410650013192480415299422170832688388187327417042667410050765045653466796839011298121956704674722020382893595334128255254727794444404837334126375655640613141167868765319857732242439101577477809559893748627453894544186267115878588202890182054452259656632484198399878987006058234177481341744856186815526012586925639182813157528815740447235878816405321148388200420540300958553240433620482185336561640464295504603147082538830815711167474615819216037297215812160580974200769854282845100227956703370018463758959245281712711368084720997254211843214336700491472539393158327067032668360889233809209557959981943558091611704504023949659919900382630061195559531219252631557036173413214714112664027409446409679596600548139669366546150244971496212614414312732670748961466812864865837328272320401126252707915800367388001070290348801865346415606528479059432629597195855655359879217996538886070593438794496863703952433940667572888598984988018212120361077112152613776290238562713584968115798648156292048381019976940176733028353964389253558847024484504912015809008700276501487458518076047967361793073776745190248146557425342788253444771511958775087198512403220562602205653650615573852657351766427890870907820310919577490317105936401613081757124684203898159634600491902060355823720267407204314583841287256456682852034884937239174782600372327076583774831304891943869589326684581809450270251405883021557204848642915397568549927388289120105903743398183219706191421353621011506038184972409680814797301540321512532313447775172504449350051913937129708899672084926435981391858012349028860254598989351724656329779766122227839461924218942599145251628329335219611052707450825383176360318987616617634853587915405577782794805855035825585250858119263833349293157048568446535608310769425466326184231064962334368192071811831579516253094920650168403014555804925506139728219225890781629758815116608535466111884741805847313778285787370900977814109455414843238972231501593769923089585674722295893715660114495826316827810009710558412302046552522695843037722672142796605570555160730382935893514568722887217467039070469020265998714100656786055003019783824122416520713757197312753470634823124772011913661329860671583247356461565261242889857540941166054663571880311954284642571581998547535345630600934142193669036787891014213408454068909794255560211818851182283100630033710057510070083163279024992537339650421392636195720498751098422295289604908172811729985863127043756479774362394222451507702476673348036135800276479542350936993261176246419842753599442271777051091001303343904812045349046597153679156957995765700930720447413711497106047528526146490718866497106067637366352247375455887652291060114992852958206927865607997610613322207792028409180851056573111710755576205210050019472163605658535042482736126802630159163131602085605745716273561409930146114438504165013271376712238488763793131603691706604574066019241247371044023881631599778710111505131261670386360816838724895214762343892674319372998978411665676270592839140405632255259395836875744068563345549352744870474730060696144345998722940703178709476527835440307335299711862670310593203472733363130076153517243347032061547611068275632218403984434595238144787670513487369343573913454679387038278747586792951315892230352750736610570709978678058399947124449423318922408963341948749315168099499630519739040752752942231030015641624811365038443114372180064134278246727674398726423704341881121500925087954748789509164619175584057921542348642689358528400186390121898825224444124524315131008697339124206846817230467443942564231505730007599896841269381384073516546636393645951128790736396618401713977942867094647217422993484805573662327989181681079088537191273827211188060570296380556785377113613969311548958376237217887829704866603755663932079321440060922820572042249657562506009901714532423486992724055814476165791033552241403904586817822126147783945187016735615192256867437452719533450698924141781640062247645428246731165704463857342067894006562195161049215627684898507237847450676203881179888930947382778233431009116850166824086820311999515004638887339185022240339969764624366131780068875746731610419975890978498571290843900757018349385506723539785771528290861202774073609619554392163986669534043612247425369878448673539465788253346131077884997480921797271766706089748237633586705804901265789693232024192157803689435766548617725742665423697557112683392977342197752882539247949510635638375545857858755495293631856256857004323041444793872205821690440598149348693175497877319088599464359243603543418301356947564683733424568076235933711264345645206521722684457492558406671719520081573367175566361480971205623696845562762423557121698534945907062165983464757929202956447790298545877716697826983894383225723444957106939669566211684694896541149735721429059283169527223916817963962851643369307090884409586144800719783079952536685704453707902428864614808495231740159379842502265259176326063850842464695474222895570255644751657449071359818247658996850916696712995135317840343960533999951056891886342121727527685217954544256354384472787731051890807654293702755446470536390540893262850096744531259664285430528364075494356386709865196977481706544374566474483580602560231987651934699281764427046457605020374911955202338720690583819120197658319843060453118391366425285916139798944614111784488632050170819376368276963651799608781304059424153044069346677090696616465405448224371339783386893866301960401392328505255026864169676101239245483132106028090114349847806591619636048512174009528505017918612051332905210725446064880606712651555439627296113335103666776280277955277015126337720839883739790370873748099985779066835680019902127525729846836937970426786275350930368395384457672825077900411841890810519475480816495563502548265883126785408802489835573584735897827845868288957226914750090371197404977787445576873533894306603974545055731236134965222194660286348136696312492318883301882980775093175495322334204339014465083760158266459617194567655252733731900774919962781499796738233086687523491203782619439752151239323966917571354336248974887238190179718152711613633712402979087597633668156417129040212648244093326727553130215574397736391635525718192589707231156172687944466736067425193916776254342817913070412086859832258135004419570982500707263851287466642319961191907973748184301673865813414713530527937482088601822741881740209807961965015984140793294425725426211219013941453510151053661055871523591459258223934055172062428870519797801845175627604711650245399369817580653149118691212464870327516373114974451516809721368793716136834819754275716732119557938149508618712046669520727052695062986233431930275502264528401360509769875492491128481314320253404404556800400254648548112788065411226174027028437799644257202829348176632153481852753593691510751542511737391647439064637986024592459390280891113329768967975614737829241826462332876080287431462710393848796495968508609052508543960859916570874282936578434095827994452992973295258057470280063654790895395264069315886007211000037777780090674654717770757169116710814678044542173241936980987971448960109183998633522512443650084054672943949134982480539114623526447953319184930222034422973238830799805596125381039492382953374319602903895518752898037220095972519705178908922421267351832491661372506092687124496540416495811432212313883702439218128069764314235256507586942238636643351295099994598166314630181929695362752403684977740917984747602517772012986220215459510810288278314337273662527655625003116269276616541488724905496706705988042147864729736176158106069049502518535022653244827996177380050191196501724984318955481076490390580615284912221042276014131609566749499753224402900540110537370098718438535675318737623614213062652622122017468468049193194616255770950743018444248351855488340568008570344225460753432884048351843539524977962335469182479597068743235560420215425042801232808614482768898884605009418161530687377487358471728093247290835155414023980665117899481324856216704990459124225999507476326231329409568091533644286924760783153053124999345185545159425570913226538436202204488360471070523649321581916923350348302739805316275153962015971605901222310136982120969480087957240080995890875249412442535408530311526419088734127484530919083918710526518581088800179603401281078042044947928500389220480384583095125795776667113933590276851808114559059679759330133222625381680523133060468639155232410673247140279087833403194507255284357666172573370717347892945118940196448226990288332496492507238640490843800847587193686167848007834664347108634823504574965844812647271995056493488113678001006633050913100269714209971808144372794864794794105529833948268184488327245989297370865683542176138136834929825761428560855531908598576347539418410937476050765794609248023097313865612092247205183994536514575311971597521841956640943940404420458063571654836724094447894762582754741169051390492596370618294118850132616897823959680214088938431396187700276084595184162810441487891019724374942320513583912135263299145903507422451003440664404089430626633460585950583678159201142184176922204174416458910391258142339630756467366717641795182464971847293689216074336070110244635983986238085275068781153169013933080115511407604159677158365747407990307433286673495334559782315348028210495514604606252382436168983628955912326216197785727214685925833749478571980315150288094977468312126852298958897769986813627238658564146829192165821874817144788414612290840590992162727521484048403059618637433914475303934145577408323347563426542735216644910735298956363983855258878934391361938793280995157379649746588323514185579916584807221300139137759809843614640482671777710051403272313156010210607260535337996501594531472474937042490857481320592231881698420642264222132185355005329915169810442195184624945728215754203413804057774259901104175534176026478118862296033560270724488884259998570608183095633046226329115678330330625879207616634609390799924541078232225079014891966321790549443061921958111495797975245870045163191626744989471147122570119900465340088593995133131547955879797666367413592756456825022823137651936012784651221285793252777708019542462874316430496888946137844250643407602884497639458837057067537989162137337247460004686019156378660267199746328472231284195163376166828138722867787515333827544952086682004952417818445399921417395252963532938423905159400075833015518154156672492365228260516066191974005068204242498255645146036344360594267342763487738539045221011099842720943638483971024971295618681528769535496055723368161958113377929674720555273053931079356483790292535065200976137152270309365505358085950334003110235368193934209138811246780020898818786267375121116142053820123921516995200062265485022799585870763820901268920457089822200507097695894514480669341453855534131539001557939935953815502538497664283758368862003410276879251017677388583305360338953664029059900483142016621395728123237879845453051626302519172642746624663001319099441813445216750864660680643363752066939554368233175346844673835666792168975775657975262113685723098814310760472950500191399204005790518621580438034952722116391211727696653085947911203583113983857188935781512266865721399697814868684001368051455186013095651076346002545689101842186809532341973820644128224992146283204063042813532517460724850570741428190035168418316150091966472945898131678093886596741047838448538081842830055205806247445033904141736645246196468576757890559802607699628239234235485170060514916481039291956288220311689010804718113778343072133153106045399991390174928823590228280624502100683607777426355130472800795022553393654762918888976437467155759905183704468883678851284594155291585517371737790934983311113936345621599234087366479150116673647821156473429102986475158391819942494423659317417122457631958789579877595190923165693846016874126360379589187980390116539336311249567655610990004270988324952980009378793814512208042266745135598491684398504087788511486312886235143894586734741418217995494281742845354664042417392389239308533356893354465275503565903059919170897669957342981088935697389365734577883248226931912716508887189047734794093984222973941458874685400664839072346643630512924603464850815817026676623209855577474988953302583917114925994315828917228274586156457752152969607511110626926491894743090204318577294559319163584905673016191406581678468052737373895269744820341734569916819099828820009436942149670362562572826231666725255228412866656958776819204182331319581053319558428397685611895211953826066568172130794290507739375817129145028966626241455593456388305294902268404484479399539461290124618647457059875588266513711882289587303286320860607868575325518866813406655882087756711519730016482309396523882082774193135914280401121878063243428146425639416802765523713431186076907129672749224335035722174459103578228223375191870885160879863049384552702530367470182921308576802639992844873558204614361829408194175406872644844960804786937383735397222069559457549063147710207323188690239196139310217872884628366953462290112373140530795168816912584325738057982050696055609845636379645665242905353189904178537199072812473326866065866991460345323930598385683758254885708138830112393364530159202153873357170378363745449493240845212087993282494949815713119422613755500586758703536352808860015519616515402219964907121371429029245659580900963201729534957919676455120905209846753169175754689189761696570234750460192477516893432071872759859138255562231933979708916341268864272964742003628927186141935466899723313193082282272548425823555171881692455707542658603293519404555809977712067839970040363479372158404197695054080771491151230094164474471587158851502483634851133333930106649051916479908745836495255759731237525170094234742260615133935086879995570515818016627685269939151630347648063856141980135639651680009550175350118084446932321722970852882575399351640928527936480327943753542627118521034619858482382031034054361540853775583089096050356017063378453808764077342865124299337540337668561969144064190805511208761791564164372071616239089441243983946000279138735626920738939401501851858179444284279027494971533745666649889871777005167745407278094712076573050817017636147900288179503279475483638028862565613099354050550066118242098423313420730656906216702174614278059930422430242078401259220919009822046246534679048474348316973469807724167081313390585676853094854771247372937351747557085708555635063538079659594921734089102877668265105580868042836442687321570441351865096821508574070236569953043161190266024924136609357548128767926347765480163481314084175033065544583340921563953880949436960121013588265349703600000496797900239451280604581422505252340295422530282231974825083039708377620049271405603682670478435934578831304857916893147879448252405677246715957818105831933425102513211405937187778711862571165593332502178497950707654126749247485726440596896650460996913612024656637132549545637786259136613196800492729394654602339902207667406976794068321040579856150088216203349022296620015922508532222484982691417462423722061319418498212489227570423699251954278652314570785968905439033111429387820248620971755221077527811984480400128235087966264286865127803992990362958691798909972155603339690764102777928292834742233269169016709293612205588825913864306094264654233846221102179088997327659346032074602321570021497887947081351892772353289649399388922408117388407842007803477364814161987109964875881343847657285215314394711154786662730688203101556265671812411655066316860976757267319426780430338224563142872177348330047938338120529149885807088793897797500672682751187004278359315883743864299590689210194842026316185975604047016531071948094414630102510973823239228343098289008064339276478671383541190812937979124644222424986275595372692648911014203126514662763737372611067881526297659643954803707738788746442531712542645570713617343723832042236110157279121252630897846430113172467949594505066310806310344595687644189823645195325621196934046431456419310619967610748848504473367991947877508283793362516342539137310632295647595694384063203395345860082146188028622114681211742361436988487766567544736921316685507929244164776646565300474582084952369095444010829634456078809921066855829882546893781004091981207778993394693254433699755022021496809100412047951853636654448873351291026954931835344421292956000944665463537725965655703742924704952249337061039927110062668299917603741778768831353771756491996966214618123967887139168862737364941435420161532489764704767084082618038884546782565654919588341190776131841353412130581897357872582205154305962982445744726652489730604441315024033018124055685295245943988775896389211568033813232420105462315534880315563920966793608661474122620345710723146954127757580679156109907298781527624062589209594751108791504470025514432900868897501336275214492567603264732844138904122189370438238413637350019089591976921093034542795585094900513195119044508253506758827245853743498569629551841667424475938066787166353452247384064323990544236913194032584557750984468763752857822153155693936262179243672962477935545523424370956593530075812974538849254027386899052667461001196157045280816735633747792349215589376070842088272934991504902530097057738716987180488040900800863750657246611507665489456890024741277427415992759612619867706442822615838402776938564999849029776734844141730043708051139372990444868020818478991202688377064477032742740455948464647334818671787741057948455095889159758711273318168150811856719111905724425839357165003112517364138702350403234165774375266986204341214631094023523235234644664828007403684291066973294344977337538402992911676774645969168565085516299022730457522256485055411981963369136210199900883299705474972601774053034318943248200413843698771777137619477378313878608387480316315495561521294000908959856355716461438075866545158085603092569722831713664308272947880770053900294109679670621207709943503786941528168256224056661578058394355227268537703599524469932452126405038239165606689106097034066323510964664333466405196872893957798150065657943197387280517321691278521663662654012404770532997558718329676121239185809872567385878271781475353685642146946312809479834501296286433154298434667323456248073531091376993093102160677297634129918628064477097851229557439687738307925183439587274219076711181058985646778748728569859403626170833142471775205568917148416182577899810480695248646962054928262192296295783652485626214839505663771456226331236074694902585047336328047449332330260398185865860483106216819452327021913075893539389834616852389002239867614874040935905716090352384232859328638847931246838784405314698305424944450766982134541063260411490542534386767473668881424710352293778882243143710111942640460759509934230347875263796649993828657533906026944986957311914716922378274039514039455103569892050268728211908129283841130569946208209120866690031673800987714263628035839599107266596169558997329189080840986854949939846248925174363826969586951461927913422292077676159566417228339459056120570579298341984699775814752773314317482618092527206908179539579773395512776332724337967173068257229994924479010962886775982776617719205889640288508657592627089086389626384959399652874906576571076337577113706161401878845155344066141463633392144910314219707281769379890693545665023251110093608003393522667284205751005764056283462333976272352081423149820654831078684047770066574988865914648792410323204577891946129609351319721895879759669543623443836818203467963126347373321144403874211492422320663552711812890723323064955292506969999391918105286890834322733713811437956293703517637736300590669129080531974302980246358761368398557336277061488397094598442317260386419732614919986589420388738971246903760508924762412474846992926318576627209844816598785890325524308964055882230643437915140004893031938309441203827274584721237047315482124181594722949173334848517350087451857234074899198503530925931621438197527645101950791694792984551362755005140882070015124830414994549384716140069462676213491862805470374114614492884627393804753772644847095833460349822617397698427614756628498135581246447965533355175427226884081198868235885719338111605145012844129214629068988404611653264460257208088910402364898677164906678551586778411233075355366854597893096714318615163309334873819395291081212251284278188154840156208733853721553385754589831069173928260766462329147080681395571755234988605939813233176082266610376707026253704851594705249658153720120141615242802730318014835827078445127655450025891658898386003151675147653157588595355428837758933427846626273760403575924925777096551114215102570704867387889704441455035131324443760358920482401573057267586712202117905476477304764301160224164013446607388961068182418402542801609633950703381059385113615004587657128190645160033592931186332554076376102987277362591631366587579763595010663502053559123320210148105846820339511000803326267328641608557372088376996105462526395675283006466622229669031066327316424533832420188076825833470899225645521448466363413458528141553427145573554429877802616378894163361402764240449916745063624978632362288232748197119845626205039996723715120191654618227427389637455079572106395093957408384484351584200405760767323699909386731665686037759988722321371105720411774832932437462215093651333710996094726163531705798289453138002907214427364966211621455443190774697883635958304026647925009489781129100465639468955036131491039175796075206963710428381639800749184821093905204643313786280646977547261987629049238609888451687432874279527900580455477977705190997804051171731176553805102001399400691082065166184856719932743692752804729064742354749478949891043740456243520453516962277142351129907670006532873154865355453909416249575564627752779325142909542345258113636569316729393308493469548046932955209768168808250734466131775670004432269842619262520990040152171913129627323567130722730797597457624336223444753975196682405038672214724513957065675552407176666650379156537316411524743746818312018362680639157241529073800680383920857476813193819242850380297007934281015806019231484935529208343623823738230612201869704194641337321954847013310281767217676928499016677892889348682751516380905346502322930122109239953969431844124480057726664252672335762436022621384625995681663678416278477226714988220235498754191080655048404388215047830251562068475319152939248002384193073597844777241635758222850790200863065750269493348379272983875360902331910865480135839733323884187810303503155948544045020641914820715978277464315464237286433898722432544050721251150493358973038974404434801179494322271198685280075891795719169740560021997488106887057173796368522685506296834555669439613171639125108362533173654538036494702327615886816739323819074744327910635013464964197389402299082743227131637174979449671151243171966390159667512821209567817098745654721918815410386123842744228356523000684999755682319987808129467421534205928444549956888513064731984986430689040102312364015317121019386490826945694639943997066719167019522080737247612530045468824301030131782770701511643189283219985346981902820033721790719448760480065570644954146977324836555767836795888309555832961142631465701398460755591016191441042808719993919543352710940504037954269991466107119443568536642780368455267634975418666796300417714027690085340926744610321673931648561787611990952521947654074074992886679017325737289017291586390921718686876049952933347979390065607109210104229559722297365665497840928373075940004526765323310138812395564814928796034402980085410610122331340540219251458930897377536709687140741918221987542303454325577068572539383716496201764531439522355991242856404463782683816588911432710223168861628435216209904377180494927255946965151799552429429672177504648969238144844551186280643161206467093940026124354443771559137295007350666692333843703490275052881472368012309741344894013380239101025564124077198690281276237536035119513412391288481769221567221285263016208765238941801169576054545685796986837284453231933268048703924421716832523312749247644804006056055927744622852495966702727766448577976641136949595448809728530066977899929977526820859328043924240750668818841044232157338470446270974802429915451411779734261135503658537790086200113237526062981195825879150189406755428303512695821360418721743187194816274769207761754101396827678587646013629197717994291984908655817252267809739703857952264831269341945986640530231763974277119126551810132873081170361274798278022618891859713118306373807786193007890126826073691421020706861088348672937247899442512708461302994829936588001064062186829074711798526102438018808330617659878880584905678947422820934522015992163338824107496426774983751590099718654164736933985010584214059935377391799461779364605928141597542454048323473724471896989951478251690918694493057610359981173995340444643636718812184364220691325541046041127932207384035281436927176718806609197204368136673230669564689182613724863545543437546820457549718093001079207828417409863411902416358434692165869277190830107021659318128964459951784352770802947428162059294953433133482969794163893639109295851602485902414186586347966185545019527269804826616794766336558295185361051887940596764811371068944856705176098497690313173373330185296899628168039669813222449659516300878575676242063763623518171241331834331526552740091413737874816856631500952470549032993567918360220174303211492146694894547328480171987943541607764459178574317421435493527776626361230442736453542587774707875440540083342892337998079483555105249084989436094488946928420788144961636273158940159750269650812064060004042004405919377209239246270624292425272742389430089293768927233482084593807691084159795954389347446045771481963809954821020605428649325331544987335609191021945530041198179445038011603684078545194241530131596717860158410172796880326356831702963853164133359451461721150525148245147450312042913931665619175047419215633492476896487920478819070079939241275097387732015798384222485039448756920793890368552551349989531522696988308114113742015327058010093381500779106626715212940555108657114106258505089377252455891918080657008609465348366296182919097337427477629624892916459317809027056730249130363685932822543349236257479525136944324528742600662536474075042680354576574484525602338895076988556727090182066412198677485782578683465814826231388126990812835738891123214458720126073430320810865272317451515591140921176826801414837358964893579240036367644807555218025419303941108873007716484639778385875843527586733661645858356727682570672331006546287623498062126561805228106437708194522864252941106039394497225852155594864117596380737652545520474247026154142806178424273019613256384711597186401718896910641458840840699048125262885710108110593814242875827910679045817848389073680467877665752101243444064150342513094106606135794559080933412288202556985506478077267151412386584377484652516498267853220884885301156390849609464240733665239100920392037651403709684665473915968104981985415508628370427238299810916027374617105315192661539790112860390217012778609833640224259736022943632347771618545070652407958383795252814644417013851342282337266996142211888638696537292235081094467572502122457933073041923917170568790864708490425721208007505300608278403032571545379641987343080677646524853334294469064138157300964646372750810043239133218209975782422490362543299469351055048260583185015924478269826166033945162363328169269185804582891886426128024299187048123164564984177918583278901875256156157148940946228375662889635100217982759710692446937152256298030607047140582090016314672840178028015741020989201503259585888176690848144202039215018891619205466727798887758943759985487989488240066962621869636402577925424480417375805279186390691218500839428235667227729448781862012005424347332906125989053450230144567377503637729702085119851960013052115497742748725193141056385787969811249196656808513750886197253982733397166686294057927591957895051919095162423756328072039364242843840921165106636307713776656923087542166133579153788218621047185626872838911141173554220152391086793477562023353228529043326257720798965507840955760611629893654394755384051908728980764349228756533522672989629870559822069589115946127244021548502207903570234661466381225069296293664446916892398086514984088475234920386658931567353832821417868973539293359456193732110977294424872370433559518160261851843940863207042187749897130751256890828049250860540423882336609053358032666889675552641469717110142124392853128747465249105588769277230916665756320251956759798392054741048668976397685676385635790033165340113159730839892106004967951628700793572999515453583213750885617374161153005262152155967205666600069487236539945833971280730867085670739515724569422913111757058274861859692634914345302879578883683893574900309208242320780453725439183899046365474048744727347563832395669046520802050109605646285559299782849444517682772418664231662697426167453726427843764507042386866437666397580098249742911501114557328246579160136237774389135354826306376650232679407778614728653224600875754870922641372904290745501176679632225210949905501050718500559339750983851447886495735232850518457883762823332317825233484173602758500879405785143424660929849380740139062288779427163854943657840208572160498748645789011508649656567973878821846543129153120969371426963565708806211797004762392486637563223564734722625816908277851880955883129303871362963761877384510325364704437777223656727429476886486677192638619530297606258723208584819576119333241602762142590422130004355370013186725721074587742719345155713592638172731095818025863415479194221401732757917727709569563075732278277102804227601427530044860783560194445411339342177116351312180804113141925095110753301886361281290323839230336185275750639739794928555602427439553117087342038501538815525459830485481028492593400626303584691710683975919681378958211908315217921403544423275163601406965936565674913499425071142218542404534391800407209132047896998779445533241315082257990424569898105440845096863957311614601715476053954181880352395426300287114024682930392849759721839022189698432747741997949038994127248151195992569330778938198063956683927658296934876068664344712315997235507520451455434578840639478467511525592972305112684540754589833300242860855044642815423260049877453051033821128339341404671595029828999372577935738458544534931382333666547793736920033607765055666404265727760290107726928804451806559937363598730461385399849624770723691034620451644806402010368688540935503763776904688851261795487756057812524656482868816690119283755275297139270276703782878547647456094910146196850402078544367005434355118663797884857769546247833226471280884046783874829450978907023241004406948454997027384251008971169392163150121235366203724379091521655032567530002520288194451049755375301860501081282260351187683644436594945198355773195851646190688945854908922970401551673173185664083065581311963105384592340860030438054247177116103186252471910721818337919691078465773305524380658390884370546986184843730661873175285495545482018048018197566104215678773344887800161309271774285736834465544831282173858711262506349374137910447294031673898604562020798206038344459664182219288956634435949891217580011821248524132615940717228902050125543004726755157429812601530942128612728117762898900347994120584407429524275144811335192671669103084130777659496931807298866059001443449683121131678022751712268880239440868350489968338426715818063029606049020215884223987293516929463388498503474122413184279383916072722427470431449661389328401052292402266509357126662690850293414718205387528909754007838659866660882745261220165900389183106887842020178541784925417618594358254308173609398388645990163222313889678707116426162452988831670079290403430023884201684850841152223799084958873052997298895403964364191618665458912702324782233447438534616627979596163658019004086482392452398337791163317331062463930263844440108330382634225470490086823232057826900398415373466435755401249887594049874265996882789879027747634067768428263044049083918358812496981949389617650994522909227417609508730940342616937506444461682215894241029692230000868292233423147629301391474566127692834810358434449130620368857971561377677519669590105701203860548609827903772579011338115554078951149327206245812157828721590196704555914358245489335730377790299484507690840451363026313572728775133414052191450415303621421401222190087529750216932653552127499977062382542107433229725670649285624236053094589543581536464662395314544138453202215637382339356255209140276805978075583337898926446354670348779656107266712121940474095649848459206286164898648641964254882565383435515312480175625762246777661747962762046239013377166345930130702754778544505703329305681470431172976135424249555461884439010618914826720776585416852596439460445418675644611627478334692381830263111280400980865585507597044457260760846352182699850547968207759952906854573133607053944197547401141818600454486271686424782141127439126626808507584245910499679577420637123993174477964957647248889251192150018786815737547239143319280704552461848591810051267304063922840881793100663799368982639091615617972217124225061867969528224756822563117507324850918590684525656780797219056769262418303444760734708986413397643253222456245412275829836109182272645984414809413356738637016744201089596245419056386873517000233654712749157987192277006460839444414439884240651464739811911784764144159465356254879186331584551355046695177112485958794885068175673354695635938430461920175529670466523258871887189502000970107388547539210407063973836705823518289596858711446598302360578007835528944547921055034705709578118150234439934215418705969902467467058733321131339087763721506859684412080811845339743584089517969340860997227757898218507961975034806303935252512812617866886261858622524706991291840978770008726388701461825375300316018509509753441956391296897449322557777680467698983958186980155987164066520183921078256152053816704900148220303579081371756190487171474742948906094917229448447104529492083329969498114064520177180606405701408594282970081550692879555705949731256734966435112116288729919424032137509104899737702657486398299519697653367655269684487586269258973452713912289090965723460045321752920486999652380936024763199772753084454908384567693713382750741510908514111950091068976796695519945527363982969592659302275047353506808969124239277031855558951757870889541939274899810659431751338269899389620139078769638375489304185437594549290418451588942349459206814740826206904286302506447305989201054150424190338565602668020718968352192071035179709914415554121167595851432418181948253343929004228016551549433877464464705762701498024091546712056067352319951673525581837415179807622876580903190724536499952134639376098058755325549165139391749645865382578745416608802133227137659336544977200816058304732813365515956102355920382944745473656397370631204140683589739356161896643985941331187347759639042465387250811860177742457115309439471373310386539921652429347150245276402892973925075959327568946742211702165351343433181343867467389165994744094594582891484967445653601668835023604261743535507427383177481994288464615197075279865799318246669622729740891872664081539391792997961118432412926944815830872939464946825723806589199902813412530277774216853929242697584589323672604715625061917071076587029670868107973556169116784643880832783855587869536205542630775690776909988559324257092713360514470615017945677955986159693117860179540363888693619972626822569673102280078181094642473044168013491998793737493539961030334748047030274015386993135171750782440547548978278645073615841295107664033934454107513117516350367335276639072410838066606887326736192269685097765131171349561171282244579836434466337019237788307178127037726598908008232842199444425971522306585982289359021914299248193316997757100079111197955108095037942423505172681639404362260034792479939323812989173800675168248965791183489667165920391992441209955933347479960843948753688405409928005248008491543793375834097181471353425804409161378295101780802290905379325766169256489727613239708480618001836053564322266437333598498444012710492252038598997022333880647166309750824778828881237413048285752785347219390143324002332588341179274608965566104764956329904336342560103383578922901074758776995919051295078384258600088267281992850291609847413176245604977597750487208334893792048540349542701014935752557012154319480724511350671679628824259711944243537874879981227543201044759778633870413964546771072559670631367530586030705634105673714685208665289242445817803953379250755535254276520109165443652199346267154942005312772294720883064339845771754228229614389530878890519689481789546054611088994834446684404568071575580717901653034076216682581397084271751993716811082986735335127914590402478593745854035948890401898904034416767879438896551338786720162826882802111124198754945013775094661687698474760053969593223992124925673543025201129295115293854686589921959119987115614378472383453780578614959484350548106007493794890935964570407440036506727225332403380713274647697932407439620767547665492110339458668380678644644182258809045610318203398882880006215955438741807272796725514515196007972457466832167844625586001565642335228697996387793742306978576766074702060336648140786582154475513456267163362479287915784687794341891685320110201760131070260348436879796213110365731231320958411640650125106229910097532257973372231496388037198606097577192166539195605375699819137067344657348229341118307303740464459288666542197993708192079082916287361759992680411818510938744911635318282312176513752781488180031502400118217559522652534488134933737261047722441494585983067177975806467818089786244539556265710659121474483523432763720977804314535572541862239472900788858254543295749738919520685021421064271756197752770404858621710776752924714656109741939413100725649812251634138020495471124630945377745994099822284629606764271784363402962422798250996204623095130267934459188442600145298431319862027450957166380896729076342227821209785325403632472211222089170494504780962200927791981883094542285101845303451304658284300784552619610645984027752647718365077613563863296108772173925449285468999087784897133482167933912915384823962834389716756257772074777738438551776694261983949533922382489967207247854921598107993167323663430910321390068607368758780218146974065850467801870779801387225198455798722363926803843441103403871293150276456642966089743125211535763344307269955793560431530342988005683982207105283278397176815894560304247672010800678054329095410318441259490415843314437521004064812093469625144458478279277362035719893457460334893451263254665034193709231529821203677925981022134365098070867529407025237314144772581163029084280017028375299061815185801822943185704028206582417138089396146441161593615124884275115264202250881868880944265448429149626577210090336244009573034715039661870380967360874805556903575882660941522976892314723485399707105037128083571138050219051809622767012940642751424875351123398809815633130325037049112047592082843791004083510934715796746680842658333289671116366196950137989846714309034889579406185205660655030469095143527096825009397658990704976781542248444084169754852739333173536519279912641443530143938121593353239033043215150148660927034630950756052061502572223965665406910128724891926937467898766935501093406368924025244434632931622103913140554591833887615521283246928282889731587820830672506227857804139708345552262746134858257839066470628827644176106699031040979345323219430262376112675472081321052690759532415108309708065559904362016520815079675568093557440820417626747793033760842909078536496640954019467986687601494585592094820659014493756131798757647224120398864496854340845998391488931251107492886783270172002042426319877022211763947535322723898570757570819363106288369636965920850947006484929658840561837533407959232802727651914570516614130917737919874203048211022350157768091974150907021719453935204997158531560392893186918892848730562168061086955876835412684395476772623366194548104823244748690718061230876935411422698970691218681904756427426611934820101877580719008190668631955783823058393422253010728167126192340789463028614408740076046322900516577317551454041758533012966603807170159992986963646391735909737747776659100072255306983251676362625468867093578558665687985044105452918140951394060444342035558595210255686922841527507676574919896739839789739618177793385466175194881369091487433953096430144298510562205850993336475723008793800289517523626700668791827916187129170229111085984418464649134853908755942733316678522325008359936185678075171657505750687903331995492878942848186453040072483143603978763650826196106007285851097123775135686698018365857533807844773923044310433951081055207599074123459191952087682034017742421797707567610270801585214434475357009732744779192845123760662990943316403537513813644640437338874100986098314660169262144783568418610536067122364274843385342940310604125933253782298877156178827234585620486444809362782186446600715295087619407020641287448332000526069186276267365534736322650148551161502973500746214464122851991300798727393650296756893483381380871749366455779318130320345345331224462126309138697388393239810589134348562403901115316994820933214163784525224591612168549004569623509408468348194767886775452112188043105240256957832240693731867202996044919017153923916436931249310658152374683600281915223446519603547252115458796447670193290756275334594339069632641655696071323049278734385746007955749094771675271431361780919212046201468505715519567736370037349067313252247246963222525827736503483888145559965190129474886396181415967541061663987838438619750441143265165131560990146025496775290693396052920602447298430419320279902685381084948130851797315783019913244450080227821968250573437370709712301103977463272699068657864449757204571598161597734433863320709552631412841880786165562258416434982346760235202321429526492550567580186199164646350755680725201848452354988312386674290304014185672572706082255421986815990507168647057331398060114717060457810437899043884039540841526375619402303928855371679762810255923945984994149303351362873822661212059395211742923797959389675131603395859391225906071401510945656229779320935442477762982270507209603218926752407229020599988319411275125067019087427262993269490426469967013389672820190662649078942636053827802594313912921874010921231310823518597406763118767137338482791795820627389671079783928889381215802495618724740801196373641978149980509697850782250886774851642966413762965196629168293771350234309299290208522391845511676494096795810171987198161312342846605895202732614274308053519605131632571648588032806940694074476600643885356229712879755838545568086294705643736015476916725034107706198452273671300837457387758345423743062141400491009193458284407374611857669587806486293933293755449535671581278481164362750708887334727676133733432707398681027432639622969925704355727829286962769693100205640241710732425615585741980885153535900833307626242389887787531534147720654896383219408846226008930826358013244697514156854390202813975900919766285436802483363001044615552112744307103072324434638556336895543175744727984179678500616471692371997361274882492869733102527453373171134727881696541870048810941979256885347925239893480877828125805145767711669510596760299214942004135686950460812755715920512978647262634185142628253052315577519917737635192410951055695455652362221182291458638994075134805060307407228133087527240053166169910462894678369082372857460421586203062531676184324101733768055902241063780884064662066177902469833906653962743791266082811995292056047834999004852851154985027052570271906928801542912952704837646219158229371698594657908282693807548356387641297881770703333282315892159267115158468949953598485918498139499830551857147748366868581849984740375853750702230685264388484729641891614461290409335425965568809336301495671416788651244916149421740149762961652982581092317982699572767636748492948966561595521019861236288385894079358534184161939843369807611397199003161531580207679686586200099535684121356760094233036046672739063744512890201909592655584676627705242051067150765400358394940967233031272905059813592259523524219449860427690930934157372977060985009010321516829051333916284869337668727756407687693592049935039330969462426714933902345746227101070592348843432848541965067231086407545698856038813250745939793457562650541577891566023062527949320811491976505535166896147847439285524313871365962713779467790080337182063586986943322238304160164902843133576706563605266217826893902470402928663260920294520939891585866709911691018749008668803085194656937725748658014279884326429763675741683879732894590438637303850571432217806429105223007586844556330151840423464073196664444593404115068400870040081472564058333668751679074305636430158633494123254086345594667740863592808117043937782494739629730281024670326980540416768387751426197765517567897822746859425162946741611231026777390862723383649796598968353776400119258537752445018203476669663148090258085021421825685513136856495193008988925309418507702395958227491923997032871307535295117696544353939435316558259017677603843892649579777187654010266181111589975195221226056670503998020453831023635805654364500966973767000507882928538134313459486370111285643465614078041707307619871546385216512960821860065186672358106572251334468544625040734021218842779094488177978059717810526802117018347794743060559778267061157198771947939636241062411040325218960982240810722625668084617203113923715024071331679265976493868063289850246240466812152273419691491329934756465526424580801532866432729464531257549458226405640351992438626815068622260054473007342808774723091112655616370102505979098925007971657613058412294581007306621813852650989297296181365599916205909568724877391208210495700470512140843362940349511775298198369220290166127709068725289222049235772810259532228314430847806155391932972341869651176606846870988107515053222728285160950075361247901963512207482079502417427566409071855181724165920154354591762647198676145371352788059002351528468765798432683369794953213300599207643964497905808334039080285144005944770769332062192985149398026390352292776042401478806123649720849228331563672557737806094223864407201380833350167809680870734487918542374465872379280019304609946056301260985160165098634050045811350127913051229881752664230730035752521315503364479824612224187009287095513993175469314642907394575785540359226661464650784263371506795414871954209336022397636200076018389142881128462822790484684445312394168927377197267802135758337521441701646228566096909814126426498126787676009606272880558367792794198513005069886430452339397271119865587317528037790776822886621260652480285571814059191107246213918641441581450899323207133983776222156715710775570967282192793107740133055704951602240357671596239719783918498999341888175345650237851515533214338639417149582090986507273693120918893711381866919577532267424088681909831988250497942592490915545413382101789830782618482850696609427440798210761878459921943040395873305578102147695400940985028951689496306514824059450279971321574883255950611728217994003252765178898552014154696452928051789973281260289432453292908779035025996907346750051749761530707779376405667344491963580425979650822737966794436952121381439876155780142436634342303971681845684807722120039241487202469702931962796104464467500464554906864255785479648505809144760808280883781133047749546856558715100620759483539311062199026458063306397642806823372049679101142190824618937709520744333046314046469509962048038466773557402762933803984109014762039892316619940468817936434899768294960984644016686468575819459273850280151810729969640461028874404055987084144449542992652801453046282545860126960483857170080967030373982660567286167005014230409700876388260635035865328219958567456455949164722878529287168686883741488561769068746325711571533204124894416685389187155166819689428242524311161255047589376506558866334481881474494832720948542562047534694892885598943079162137328841853065571168480350541792317076543984508730229170777600352011286037106179218281913755506595237424939464509025892468650612452238453051729689160902243115296268898652576094430940864175486204472098481611484841201738110265380704858137136799383142020519996430005680610101063552267528477343459256230587875972166283872972824058268694649287408469923924013861273946140964577814722465849184183704573305081005263648978969843898399709656463046975257316734160097675222972629286133226557680312672153755666332977880806756364765124082484483810882052154035226789002657689156069303081607283914143246606743298173863774548047623973210329059987164602034327005508278621570426735595645422102960199620490452125451372230164557437944747161871659120298660449838528858683370472786424256782196589609157660013649797267286021399507056274330232703453251318437736508632351764232888550923344119783191280341369037419508100246657589418317583465730049066294255522619125789692620871555380945249116498464304520624892755387740561255184142620135799764476121547780735936886773324819692707500832376799625162161240564441355195431412433925674262424429699186505985407672029714380315793400058761562507125906732411760749685377497213327299834649963992776612830610875438691614654382490126628844271941201263377440681508385689435200715187478113185957580513738312031290968281822756357525269892081983635249011297985678641867317967827018914022928756052346924073114635281968411916302674495585097905765019975494991274453123346879044882437087848504721573214428381813601389912502696404863554525438193276190746365914630646208332279560743529638734332477298310697472319646388955233678507225906759436919910491579566224711527471409954882810269618991993467169379923985374016607618715941735817225262635017101732473853586563954018611811858218789492768333551686217851129772698039990616690077829843344423154619944397565729358965214847568372583124920481230170158180044987436529054286251217278446279263377807893372980881220220798659862909439748198469418815343805994211157073936919769512555559655288944486655631037356522048052079928411757020756015680659153946929223339128974313872421115095031410261150351097519350217657840604128735502166304145230969770150793286981404063897479366794965103731979804465103859594767717116584610471630925625106549827329311142886712487146412828763197671828322998545838082108103214883684119985385048910452556786917859709261985049311502966332112848481110538820963857623815068491017693417999446648623449685606575630363671382770238820125460599222567311689656680426101516402952518605434645361849249279025209673717185264613602799881878641327975558342418435135955019541562573720921362501991349433263588435715951600920962583575652583974938851260298149190090660852696108828483836658021011162381339859996873332769172912088989613123751304274839832484092990339821322223120931074936710741817690579315838292660034190639260096746524255287433045098003293923631961791283480977275511084464252954071226916555539830077972966982702088718905565611026654611020294821773730118108554662908815001772109807768628056891597612997917607721387087957830452151121815800562802915905248144898966740592420549218942065087588831384401586209919759643600899557998088584261600734583697886608847807422489032170531351647061932578516915857938593279670790627846801211756970349565229261048826935419909620075508901853287829590326660939385154254771901336990943824610847674592340281853711702240972521291843922426996466542819012226227956566783106761496318977844258771284826827642497572727671582629618774380181176325821507684014157505161180479830484385001141983600784139523560605699445540225155614089357667649090750663293780131514401785681288532318740402750269142297107953268200888955338742998821476096024325022521263805508869848171121248409785280283000251752005341604532898917580356153955715106446182776453355515680276891885919087971617733929228649150575952958155109028672125127066996625435118223622993066363968616042317313697046821919936795953815249135197246824261375100796797857707328651764160663308979142213637627475075280828087472931828918109529057628464868489801499000422093535471392498920554174543884055222172543890960899172128527853067938859032417167794593880152533434774604885526096697945351967775914534994005709489067064368453814778073202789649127810697075633616835070215557857385371919804365681403694864426185299974921821818701038790880727724622207938789674432401890770232311246186893905899548545798682422670014309304539060347747722876583807535703643524377451837103577594983433942013991538326302098551989944051789696879084747875208434424307927392307329144378709408966195699290655142513912933685005730700838116382862129153897868653031657283334609250905204975198949735594680981711968164845601028447394491402879423752520522963795302541097048898343096223013231028897177103628867014418289632880216293063019055063430891071244560562445591045402137996322441232058789347257799992168476174544475638092355669615952681379866828166642729241901725996241115909145578996214749401129719570595175051598832834102077358784347828819403239202728473287807343363590101080884943261893991870177549819749907299962801613253532213011830569747163887060194733743537099120227234910961735730170674978295040240341319625802419248530236996951863760902091200925176266600470703755043983800851018900615097299294206816881116287344547720805247141611692710950881215627174181050996154631583852312353291285178587128678300832504767518746090249650102031195883895702955930266852027265183925528438553276612130388384847028362982272162799868625404594906337488230329488229792316226396638420560647724277968631660627192889332033084495518626082032899368941364593669452708592158251234455334409854326354711998427480298261205485617011668021529975856802023295165672578330118300720181522828763955239840433925118959622174400793354518856279253877346555201590300285956165747485154038812281700759781794832318513103316720711101058778950970163232808859843513242678552357760082971135189885776618718174079434275857910775136511317771350698438955143239497578430652814500254392955269826483893455941885396238959228729959157988090348831125150876912585359691772353147064971255740359826041976404495522000431881410745949383187752354711432265065553583053507039116879430545736919883124511763139684581482236324092267333091831085516195405890363481602807342381993412996086152228816157638587946572986100131512647080567456541651389651996040173592963777157248280224759052311305103109910920041992056737303757022949624998338636207584697930074819642127789578319930748674378322085086441466138993189641257992925825914442604275850050353212569006164082653185006037821207638286939582834200333065599712204313887091047565136284590062019413878038739379244407207319619768707575758833418313780946583183692525022879905588785847804281226007257110880694344077586014356621260679253090625098792198607722533865498413301551505480137244291683425027307722472725530475493961897027459619056085271812126450711155615935349001389116014111729014389478931083211666045079819837935367224961662610334005292060544884887536790589385631042331172231788193670206799874216318985998121179130646727059069619790163581799970006495922137309892801841209033117710314711380067093636578465882881894502924304743380697978399338221063575767728496192204559819402131825816993075934864640118334410738968062781509961710902997844639984529210062149481944855629786480853798060670997079137948513940717299046451461972792717782984879153432989925038431232919057522492782144291475028474089961872497409556239835080469523847197337076283499812861809122165402790899284554815101285995414185353972681163254953290195143327386726176624752860471019879653355123923240875441186953966283296546608188935720427564702748932426659118919424633736698318825376340073989951286289142439849048934643439958530281067608051820168914708799559449318352405439883967208887776669794251432422355653998693819387319076407163414914018336538777713383042201253475285248680398238271396998662335994658413946244463924228100250191063665036173210640774907154325726383942158823805247948366943321856405701643932144665173328818411138465713379368660396497987396495353484053492438316653315431879270081078271538294320859787704651248487676550105299473796598168620092076560192351896897424272337705703665213647496838210325778892964606854943559840141968691062306190327867924996340706791156289318433550441744159923738385834065501333910227009271769125828066004796290972935427501229579812131994839579043990340798972352011939260464713333746388019233387075455262547697213238675616240666169617407763700915179748023135913739025183329018034065261048357856279752155551391889437248064206654693537503779489881031405082293198421032183563110688894850881557123202771449848800473583973001253453508181086325106617393004298603476300435372718271695304852253336266001069306150362815148262017887657594012365087761555230169199047413014142359613344638540252510759908446481697465688351804880621451088032299916909643206984042136832455597403975760159146578995196692280030976730477268559012077887486580816873092340146461821864234525073832240623276116385915195932326990727194458748814861063119713763479229594577441810815135243532781691825709041484302853496074689624653782007480874370706940544961447221176472129788374225339286422575805457404743900404409781129057576245999516412902665852698697013355584335170532279007066368197000243927814403158762225748733785171911182301515583247137258794054698859099853465284279464489813781985530371241537425193573085080949179414464517236536274516372344164008770589818825106839406893738428045510522277131755368641060176881352576819000448432850236338581252841342094244402484208494549700720160076792317639855533336234617625714566424426985615303692679820739150305866229565364558728587037085731298414108978905208883254787000045445003069097540682116021086919633927954247994224670498944850877589411209960677227250554279723801679464230123837756534733839821912928753116298347959376832662310027355191894555193774699282460349576955186278600999185531306385396572541395683330142139580696700795731693908172327834462013692485504480906193126944314642923670890163368367847309775044026850458835283903368353559842431244505135609256724426078143075835609440073593653660018865487626018423613997912296657960954755179031283703913645635218411801793543643325849828060528795764613817741280821537217339914394828066597190619536098573467694975310948461303426133738921604819715610167972231481423659231654962504782175363008547366684039109529194373339118266804199280351534525288519106581157986469583290059519118441317777081162345520269697674595028873864224244629154713623402707498813960559957814959516234999272354607101751323697877878948194681672376242811966435069930155647000079742604655037217969522617026875247734929758502949995362044124108832022027844364745396455441786622774588699667869234416219456270688573573021212476204385969688803572903270710431054496772376175954549448957355716428468032251878190458923670984138590439573851376650581055848101951190340530487351046382106732795376558540602035210480445509826029156484609424638685310366653141879657169129789908439767037789373516352925411213540108183038476775956140857182547452342923310532284800861419589862525031801413228452954220548805987629917401049020287424089947478205253949946049399490335553105135514412388617510789970823607872015660720607640697411607721256930364740588346282042724632652999374816682784416616223046217372383973263968443591663452986573562963789019598807432815034571214747608523331520280871243525718534859120588819096488313602574339733624917861174368117524347122184869414728084714358217936920381657132090882503452896864701769270600371447984476261059490228792333195578515637527981959985125772928345790221409196283521346726347093043394848248826389546928880168991826094700307503825539911840718302061405805888254638811307725817572085386452402047371024055671722379675081817760718659564316672119530851152857818652142135610919518792236283707726091913840248381970944544042551505174920262129776085353148666415035660591879680737592852516111522096830756553450305735032730521354453388500716551956324150553071260786422647702364585141981770554566876756739027373586915220270365358779940005126433985285997443178075460266481775362694132490344420505625658323184269854861471594269579677429682037032075148400249707957606027579496725148108226184348528583109624434425409109534948280947437249508552669139075064289754956884953317319752589598876466177037234366566863741375924565046756203694940328707475320924661405134415689506993764784463746288543813084366989582232297888969729179846542264918514424502436582419067538361341992300055072838651371687278909069931064754630046713798767814643927607865667801081211025300116986256426913021698007378153433138498695061497109509570552211988397436396310124763691407719997832660848415599356298480099469924891035685382329504084035470133493051396078530775321934177797879872365811185750501124053444386538552774891231242323613277258567747414775051148992519406098404227946170341404299885212994322919449011399733561449392321231499493676731457755537586423038381550356643616892454079146499957472669894724011700413226259209431197116557328727265102946988241423146924812045943729108760662370063815767328134528662124663430738308227965175413273255345724135166535085675453382702791808505836799749182487236583355715170022486617082327703069636087391539285657764978056490752338915283895147666059299698389285725732021118223246865961449066922042815990875509825609227353876946748282120055876421185471681187811501824059693526899470423597712170598144323933541171551917173247165249136999872866001389652572061304847352639917420791090752823630808771570686692417927192027468163134548199485102522726758533097399540661074004045304229501276291354271753851166531020322777788124393629047936632356049455496288772696913775476167383184280667322601197297353479539799372825928637125244029999651740637518555411654636085072170496178262443293246284567828831730877208384917917207468614548322126246103936004659830521948213502823949563915413221325682620077589775601340503429495112680194445431786103804131123051736780538711816541524923459854782403859592838432729041850189396821521780035444596298631049206813192562022000346331084566938633498391193641541003613586932217470010404693082371197985966158399749188285307358268684667883349372446292185413408457494913983537778044096322033552874480030433762588076556247352522473786645914936685769617130369122993320174281884094817996444219845852727225543363362338370497338498335687506811497782833384729187505245180885489871163052186784325844179096249880821716086438556471574812234519998564891252017111111382609960657087542861368976269303318779362731618620684591122259610896965079859293744653184704801548047858540575485343152463891431895896940575705170200420917637890007875094973351027637791599980500285596029035808455034997714637952166657535104461112908442743171421098718341325147373033377421860136396274147179683908603078769985004236426436981769771514985059153962106960655768753366178004014343773261714688369533373758259542806221982338290301877428605331243752847362938879125781587306144646279760558502577054079315010338807404334502257854037244573190712474459793063338503913348212534228518577970725231266522035037169447859754443956959145964889152941753998919427381759722720161361711852718196918945030965477053256317598144995971144721994465076744918626776881389222473103328923549293421300917512519773878134734888562466832483487160115607524531915025419290013502939221508533813985504989082362183643904286727561445399912312509642393604366547884910004293111262481102183808223025047772630584426975009248177451360330919085545406984389313517309684320979189341669056816807397082031943337639969329522968170965544356387751550699469951062006030221534614546803858062459718289112399457555639090504319971462013185052341679602403969049496130916309161544035201576354586769681304816036106416818782553227942483697083355543443140362785259147037073408578984733018235287823504383507448627371294705770532720645265364453374302855773808176093306307171889667277581796156931738537676638675382751585732355033695420898353422937296961702843191384033185465354783254564631970189282749444693075931680705332547703564723572549393165567411695489116814259247725812496075475438619547407746886527130429721527588290239695454323897157934343192355570990103384034576285581525123812319829765615363008418836682224389867449793887176054411931123288824145787573204837667240633126693928029856174808334012030808135746387875586431685526700717158359389126769034738557239809900638373410026685813106033449132273428926768499800657105699924157048671261800495805401276808120132741659988307485481276912425701461604505416948777886566723015682560786900112920721605291225684273970307947476966038920228193686045205170261282925877971011798269778165114880106757957951919586540030780637868865465212939884231010711668005303526655330394810787633878964768762432148094312679392034350387334207638964121555845493540559711893039546399287887322181555764300589203978913187119305234541514942636877222618616632764205677996500236402585503539590101410166353765691090055660845673506199086906072402495375767938145680903205250103778245210254059588918468580621377792384113820261889087953128778330671801274840405267348790307022360360086775379645028421716821337848051386575768102523694363325541745360213194179038439911525139799191136984674539035900860755835379485904310378055860237464790737160481593300871436366592811876315436647173065672863370329359093776178690573220478877114487318568784900611272023694103772521871515113419350925672743448509328083457437610548385642584198134561218022681597238156602190825934336058720964168246802144043962055251451358308450990239195413409598331288451876083823635142848491728514029219661804320906099844769224084004347383757070089491835854678050985699164191202474616585791713671017702483792147485651573940927874588721861415549771015945197625350697042892514248431000575948607175218984757847137489627942524173010483239843340583539698927693102842281962803204545314921630288780357846157741835350782127317227476385259838455385249645143298378336638755870077295100088346696825150935193446984448765234526994034956062649347000544058440757730099588336207625219636562668206779696910233350392174644917810697968596412308346212238355569858048421249064576944558321359015458335482091568592244075570308020853943650959723620200858609790963766714904840770793194250332226950957403752936083133170943326859821560150956410834330375273782488739295346485319202353833830755118686101912664702020783228976684282627616929900572250432942322562845881339882993021771678346574515897610669464794727942950945110291210273614634742385840361832555549644862965447382183522943452611938682776672459910386876698097615885534464656149205295669569879912699158734937080692058602734884738782652437028686628916268020222029291336282674818504544768386464435899990547874627310116044920021065475918458461764053542540607449675099154540379788285434082319331243460623782414515142828586241203970590232070407318609898213911245520467440759947836862960871841792094471650578346695979617951151348244247628090713565719709919764663554062096903530414867969537344337804032783878342195988629873832340949472241411195821915250201307809692152895169356635858214476964126596670700125178918597569674030023735472350329361958706039791855600070984583818344838424207197145327471739105928326808762682738522240350231825845350843418312021939782118577627354293656698525550922335769656216266376053056162209454713877910486433583421733880564963413538267842984501470663099944035352989774983606394115792245253561633932708279851054795058807489496693466514465416095105132033182582010588166159362102903691661758472832840767255224819346441856454485500058567141831246192062862552250412340322568425254166674512196747708977553388925805657878261351269005771187467091859654116014266002748996325848229020949965431129916727977962045060436295470876939354244455368750371643674798603063601007759461412315480037837190488134047973707213389153516925777076983778736612154705299962606179419886189176870013468259226297576399548064901702684236786144264198643935818082161316796121210250500666301354427916481365090516737439060146672597611491301003049037923909236953246865041689193649492418100608126427541825568981122335902836564801954512333074773316834376299026637682090447718315371195475149176787187861387641217554355198688627572392180961924700486269536589196717305055459893758678138998167254201773919064229102330668686284902198056755583192395683440780573284799280820829499383553399418542343729516766746762290143839132859917519972258901444494455230647175918674484307568020535110553726418739496269648669512558005114767855531116844733994093140127240356380477869223312191673589167440472508548697826890294911916424830446091646964123303369195792371119578507143879933026566857388677480274195691567248709926063365723249175715358266895861314733994821163617298419046265993020647434891156655087828131987130275048576757786246921195134837121135146928805290908112759872876717543598583188847819594750575227630458719208171016597392928453345094147603190512910695703706252382954739543183583073597108995762042907659417974093510807619999373340838344120534363317156288079226849501363295103942481563258353941569822998074589756516678937393055566860461196691846855720619341210085996605405741142484607083821143914816632897900166554550088171348874504286139557721290360024594445392153800231603895912166227031420651710757392160326839107538289499902015719152127758960909726733681543744853541065491165677669460274459628518736114816780016549985511398445414702487626843289035045039199213701484417309467398468656817854384013442281823888679622531981433423259810590139408392266105744208932656597909529073346788752463248645336538544432481104601235135769278736392228257197360681920790217773281745395140249272106467841506034975353769395272910868386007887060112281436880488373659810305243850402264650120593685032554024541396959385315084881377988970639747512866588471815461435283905223181196320868768137366476250819823976437848862941461429073424516634214522513626651883317298923320304672255653302092675933282948576868290586728741790111904595324926267732060202272881113101518784784734886768983656168750564504566864432751965501143450331065062857067659784023130983547470171129914987335250446744944956994330850836095124966793158857805977695803812240215488216021533531004340392263341414029958331983855737660523242999610721465153594517692206367127751620436736809323672555479738875029175348365516253063450010645356508387348595123479023584453167715361830159878317050980556926212004495877349131452232424027569394591422081621215422670512744942460065763265988919748869418222588229886582062172309316411341928653197618818866249166154663319207431180401417534286786644829994273786259549548643622662337323450718769633346892372354827480697729434325316444722810470982101191943142410455376967579498187871845377577691852095395668073626193164439295102409083702134404444478245743603007351716887740495422620663583257239479560343680871294137181374578166517306990136476092548337179131080878731420593478408026946279578625923235319295497759025171260616482032792592253167942681560006349224933413239785310596298210195351215514851547605729683046445458455748154857199500610737202920638292873695690837083957346276788460575275870892780647819185182849999586528311994836797402690961630634007432262101074610713822308469716616605319656955360255936983725964442235048773421396441519515057377002345248033478964754337381802080852684154722148530189599993983722789866730547548765260191250553248825411039767618554454956501302778166193403374180366953081323965276189666723051545916314780598146472647540744180417081197916814213246940275418537974672215599056242741881875022097982894108000551846057030477569344277362218179767503312201705567700280085083639915435640594294627012906482888749030781728008780598690215379637700838117548904922174869901662891630509803573416492126410245096649421048017266074763754996176086068508520724238416877948728937717462451391047380725340926214386024943413616581082420279060205490634025181886346239110960060262599666867494558034152032641327490407749222837371387126901995761670685311494524771742613387936320329028564032653038163204810706942296925260695181869484435169139051887310935795863811402983019420617412295813004950364462774830571607416258499278926160823140941066198849363510786096512381403410500239228490462990880899342511504966958932733057657185017313420280853711250496266893616719767735715571535453724451123528527126851296436984350847147416200476721137186705332944310650105865717078388752191991454517659896208853980436890974802845209333305250732823811147509027734688739437511002898733896457979318722269185535752672437273767384602804338351107538607251227670639711046116599967334233827418041793748648357077931961256627474012138472367783145711775094792779469350792211134309832099419416663278847132950979582196663028579481328238182563196947118979807302978127138522200851474490247062810529583902734880666782715405162418103376345493266343334687924729755738972018844401372327530457170036333136998902250098312883004496446965303577549411442728078971323834107975634348009878164652136487668352821091664061370541629726639242763326411197410109145906517109961009852099800718605125255857251496989634887260008045163287313775885498755174228067671940095488320159065966036868508697403926450687368042910192757966789956456668117970321884686541676676197062587542400214911886467129102799241330333810968899113533406875193183464399347030765506829162841938530492393350125300364182522652043445001579975347873451061132311751697139683897030446458239194241613157617859137832839260697104546316474648901914316098507555808489570751167234405121729853837196288094721353548905543899155451938910329874858432283178761256270602139138564499078849673948039384809191744228927811191563995360204544222512052450713167650001895489656321299243536249329676367688844417215769310304084272722569889414943807566729861283165833298374791043764405367376754493248362447142248276308816641229129079321992225855186635620875068484311238057402906985847566639015849301371822916554667677547093962665447488376377524045910428154575359940778739888748006737220687977521932484773443145071947062507530594928830712302250140331695346752399658818012997283888917975442177607545109451215902670298738320549819596328194570803369046964627648000033692604451104846278772235310911146046890843713049310902061862271809302757006883204647875445617543188324602928249064949200441401137728626864248022733339875885464330566424570597155571413184994593760065249061489562211371238640656350478700298431886576536585397580479644182108133351821750877931160629285502584233022500920740399691185964220479117211166841046719274544238448608313829293002418948148885965071549621957522946836514964730378883856113166931588080095845868310854907191974176701586419784014477312297345943465671708103146983487918663303709129447557679420986143841333184343834570475988179714385964105828805155862931561929975776168261397977090470607544826666146827457850848592297894410544353703374189469655741551848404376795953432553387989892513858802587778336386330704833316219376080744397886459342596519211151580294117764394875825386913344247649114248285494908035741626180130863221930678443121406170412067737684545544409195979739635382791977444405957244222609926960991175125583478721221755071717555999983463804775151875709167285749032985966516439082314720317321260778456533616549278897743738345129207943641918876490059505869741240528670205955704139308297188454345167485146083332234812799203382973431967441651053086216725756526534914027276989786712162010882038029222358326695819100259390918783637812567544152789035843571649935096001017794589474825877992651163073360448927007233370246002220834019725301198851717906114558926515551413517031956105097350724195461620884906844670762720638341114110744611704169130434718052557800711407206543213102111791412905887292246063922885797906961594811109112398621449664315340911988879271404626585782426034607056787142368192366963776563124518761617947430577431245975026408848517829241534290312059026907102723644955855743934190501821654637272732569006039527253898323105365147433077485978802091880994208189364508826303397671612258346865191283658357984126192822886709174449219012711251834337968398712502044028832388339391958535851144900377723541172415336254914152776592745021192119992937370541460671681304766458652466319847130603038359040477295310169830543865423080355549447359287312690244560739186701071819590330292002927870805570181293633947403363431779671326343270301396744213698959581745680819478265620684387535926865642814431977524715600402835574979106157149275449786399808117505504019451085856010894693779345531208581382689569575872394509996122314781637378594912534308256534947621429153304414360249339230302192250165748726748826709584763077760908871537993302000306834191921079503676920903050389604065599950767170555627017306504669589705624535057853832062853824070361344558432275324282047581460141142016541726821577506840587576884495567065824937358310167536632486862336899576751146965775846604163766007477672586760410686715057856380235652086607155284181374019159036567200966868124290365907536879722713999305978682110488350357819822911816292633432429758057986510267001466360710094356578796705245035418066907109369408022454104967232522582920951929120422802690308769837308479359909491475491625701952449514489066293082435747871937020514016858537672825996271662718288237159591493172111264659117373223940760665761933753951287706851140350637372194464536148947369476743803706905534365114826324936882816736991593614583643605387491580556115193531760860747909587213818936727701792861492159002386294454504488056182359228990530469032790539941978332135583393641862800387135322496028772118013533504563025145934143032063517501223188089599907562334018739685095274621659045343406127528360101166204194154242668430578572381794162772035295477984404090500155445798615617114916540807505006668401487950279532495728555661737872054442963508959094129576820937826986273231396558924120506020639050082812452696669338123556179635116598745413168006445608354539965658668000441445696706136543256084034645144374709891664629335696193340544489741620747751748983067588544737295095003905469354377241214815916570356644401423906053622932619974249171575959042834480690914687442782047866696575579706598604082805365364260980975041104140928647710027968666161811796017653319905273079879670690974202059486723481823244591043117868131118236987054171964821780040498602186012802348086862262196673623231826834916354449068354534945467281031963165598267139791325594658544674491487150142280669414692844829520606767905659952216854429392354965878367191686055669980173793529885533694345250506356229880917157595695355437664063607802798864095380654443885378055556295133041331295729414663431028754685399691190092533825228516482100811954767789789486214719082764622055986120906858635232583815691294985665219860134380667843728246439012409673186455342531916092696823889742455376177861161120987787017312861481609929027315167710938111992459943855407310615243663439695445198393112599263073384199173995675758928061517083995598435131785381111869923192457620745301561420474560157482854138319687015550357865033447683526289812552802604157523856481126184138532223836612317198167498318541025978750471649652996673286058306014405014250423496160484107279279457078342589708807559491929096488252347804590048507530408855280259920896700371965358789348177888765720210323076576485399501334662811756039919785046246100050439762568137837539793174787002445712124567216168088156163716614993615786170678907677187607928412283836819535370508303775621555176542613324243474676910769505586155329137757286833678886341869289904620672108067914512803441298137714906025219161220616272984122302254984455671510823793313854976819965883027101011243508043738157278520688299947348688124703259390754188292241901060080089966944140712709682340406495617294833604887440372680617171305681591606249536661255619998043097804873805600132380159749002150578201243610596359208143065657130196142972750719410327702944015718079207220714996610483565218345284309801071978465816586979610219374533280639283430913996375050378128637311721303948318608963604868377242987619595076122079906716272211438601481974773677072748302088874069115164428495354808296456047523881060483400281381008525718762086771427707474882953447808880962358481709288280586012385675839978727682613739611149954979182981994405851114125121661218891232970743886218233927665518561975384361238149023978919070626982730115919223492757885197693175032828335182152444289701263423257186929851857670584359233233009285738650281669955206195460265223306395728983959207263794825284990685175821122543966287520179159085339333385097245478115177824460726037377980818394123684809375803765802929618891975102818879770064597821224098437419575165340716246139912901658640447741025338389026342480915111551613021425425264963232042158685297673318597434310537885253735507643441242535282624782663588438424173684168245224457894673651936531427701914713901092746669013523878028828585946122649299927041433107077996927540058142324851136675924124009073676519472676540309920213103137281298758112826890636319090520602344414503117093760069558726522807504972296337484380189239896023563188158128863037396271230897794709181022512366292262377964145817100078130459057655693389341733439510899292903840273321901343020008332756126082534290071240269713215706009217449257940121018723476985430443283828583429846500227930178957930188004286832740350465218341916365887599505643474119389005423000760220696124507829299330181924279567256780210711246156377524757352027851893856955249957877923812482010621332786683170984776892730529946317208467593378599344263306382440781455775448684538873027476912477494270758141087386842075354401920787571860709349493809601524822093718159960712562062153671236837642090855273589024770165222314454295198639948186472482355125985531998472279835612817392344401533604802909164758032522740458492886901313320787304188440116067977702123460350504006337150333972306330077704178447105927873465937306788725002056035489574170699192944498272886522711123987177896867467889208780780678020004030342417291024879818953274964228417006884009116818129734109904105945695328761850883163173752775810099927309297969558316449629502896264137792099572234177231043834806372684122272867603001593132003172971960873056059994178867310480763960230818777199368476661197117391165306525053156421593666542528127814182392597473440298050823310561693794183950735118597416954257046056856971084465623256694989315877640535016168438612486162000789458384423992518947657384089094757345118221852350657212743991128044664988434871398596404257889957129808153086999621146135486124295947923015019250518305970849086709856086539026085873217912788038128084109472011600694042172443400281142529710394122414267808175771446243605265603501955455412042048858504429950321194957038479548743927555512857271832841638745854343767046693491129972470417780700993172218206387080590786694954350285881382847246125454598501745408695218991502034896057581698786845588826118857505488694819433939976102896882993736198157351578677590014307690283253453898670661046247363856833772795443592307204981449185721328797828965085244571911515428127073150822545198393977519050912925408526582374624632647861249700196853581037581295468209101158942974068999850102437528571581120673507576159651141272289763336520735008119165823879249809796865048882138919611889274470705550322410827639907173676285954739955616889529057331767387804979781478897982176739985894249299278303588997555907985637734889696687688536051314286629254343695535879724376755455949929074081397814315332619804989282264817174196502841575875985098444760273566883666657702365122994911546569932004251020484481222778717263756654158489714704959379176137756953472276701760761685976863432374044510406484305304420652699309532996918309990370901924150823853023822210994922129115831893519022671988978192845541551160230425822210054140653547712936551776383563104242913369536718188236274813321036642237649667980423389653045761502066908456789197116119445461522915031716576027180722560195524484621149345078536300714925352642745141237006578807685927227421709552095134178176169089792518458039224175052500768758011213066132471591199684231062933478318221101890630101959516844098617211284437612637629646989647753542493667816598305211224326451650690122365454728705137052493379864527558355049922764511103155841040655089714155328414620092718822161073456137242079706041376248999668108433476806186276440117826524703921265025867185357288267711224316221231049148086830344214784462395474897349163719054059371191561316760408989621697420617683268981539011900707414325255552891654560271913771946053021809827768541166588419058865656462697643979063958455900298982200596760911783084769311485589330737681282774375259456454170762142954668157651822055787326160282644544892462489130522084359585574855657438444256892356334320757038249864328472055840047623674259555713789302435413634760688699836559864003800520882369514432317240200761404881099823701676777005074921590658866473358337412712833513831501444928094959534581785511255993839599051129166675586921500127181753608735521865245049386681477798471093559001053892603003441259415749828217204229606378689619079513660247553429782829780539521694934406471012951596718084474787568699736851289089729234078407355999044190507309553902797436843346986087352524799201947256487387884302433517671699570361151648385299511154358172397906716744365652783762841723128715712898430251532514677163709961599988089954184186487959398062096573445429487327184400819129877386331766410461841367780767841862538249398965107567193895230813392408479104953186997550292029392052683041430633544807690585380742904792257188203644017502747203686810704993693547608083714448400192382682240907800694776724403350714693592878267118081984742098281692194648063671848278349526411130580128326765693115496767883541614167916459004038681750760320938741726152145953944726930425116268485752973901982429275132894471627921256462482627898333005627870468088179900059524331664216755829720896927672663988145101881641938097841319144145536383085502634001864222634691175904898493482037040905040477174646345095715324514189260669328625491799777728389250351869533700659061015883899154036285257417366569205575446038946085289818584409550269727050942840800117438963717341365500829109065686545208124755612920991985272469508015892199081328878752544014511552405064966239159586405038130298297722692802630734439512737407465314361970534488703502424242726264202861934044796652183747855829231476835634112095655360944155642432275485427061177526035096685622618572553210677584373048894888343456225789228555460327131022725269501662392318721817220970069831859000249363098080412236379269888693928931912890442054632191210815097349279515568099692214542211567171014099523675392785324261305811936219894017686696366236818135075066674687256177513419901654285319322460795308406130230986948254901000063938474385693599557879220186532340326911089361634685607905300441830019739418498299915903073465037131240587145030664982630181858955994438545647533447699014634709416392517789222350947523291116611249295907879088020570393405451468563716055156707208212940960576635963813095252379644470774266331402906541118845048781564692408602012520033634504115274474156079907644917089378629925248519118519010623089322251145750866601583604540482973428615779419237004800535103048656247204168399155390882397180521880620624964139064604622164574787584363823120943525379524536753077708664378409284490223476690501943216127906129029197623198538379032007060610988623046458814415771223129677990758192085874254229742411842905227418965393426683713097601142343939612507281964953317144235414687112781298678706129249233201559643034313507851231440583543233077106816874742848127441882258381716645959455192556863234009551940257822736656418076472718502789623632122010504940674162756003330930821784150518857543448749144411089748345964747530863861398208357180792692451799894466507664088237091402922445332933678563801249449787373164924669137129159680835118325282368270392732671407601419207482206732827477410556866095877296611674122850576779308426747762673513346587427719155962534688073033431667106791807673579174968578440960962869592693106107056919651867980495567462415528990778876780200263025674657941178953461379863177230949833124430190300211546122505586480498483601908861349914035367654428042476482243937399567138579240339031901100182930867629567795948870618780913275825244534495267732032955069045422854708928958388362030893171034846161786073952812312224940096239688204607591775215513559925353769157823339234753288665093112864189256326073864190462018891800195863035375697017321036416493554920214009042130691979620559408498330974968989773790134950204818111938764869986170591089770441725051069954111234067664441193642579168144478188775983612863376285157243183623686521800332380840323861779525076846188559101676094065153191342530841592683254307629234235352475569280596533233016370177722799481507511083230211051535842404620110329626252394249281653826674387868454525234700642107794007921934899798494687109958848942218384983666075361070315161730474117453135133930304690476767004719270700195327027679188241501111581837533510182262018220453502299772055011118050242707742107238783756193963079666820441240388213852679024431349654974591745538387920507070454473207120970863857303968520143547670649568353540137094292271252712837351499753839826485335988231239476373552400948096050806029488238388734666587889386150684637061104155941984025369618416071358922627266154172562385641602686095828198337596960822983223659762500222295176017649097426709459280146163572547584045675324021143346235100985071301925456725310065812129214999605311371877518805435183580357393014317329441046367395306163669035847045912373818045805494099888266874555381973226251285827767607285117850650733208939682315671614553924916211703531287742721087854894113787642090854378429224625569437176337431330885815829747762236886881249872079804781331270561879896063330182453930156239845121475031799532625385305228674787250486221149237063269179022698792933373743664621244431179776574631839113977438497256512529094618936335760568097344051259169762137405844297638532555519192797879107163338420843054057578262828165669484383092212379273224789039980751379447358306024817367567545495433760853061343480535876790021691714082102576770389345561592915000240143952741701498421242198211214882386401439236859573869051953183223043815463722505753665546715835315449563462574618619616358060920742812346566745376734489531605952498519993494941480110995232084106518602070600709757858422691362529472208677774910436802651568254436292379870273603409282597941372474488132467623053623604144318362575526129492665814372521220511379829786203560602558237495510076529039944632349753682773718109466062470841429360955860809274697182391761852507874854039326092495818255756358013947989862514129712038920611297156559479097162728699858036912034147985035459219864574658213462870176996022387504251313696123964018116564272504261401626443281368214830906591286716345686397434309137947071699550964946377098218303679925212189956633384120887671463401431896451093208755302706038984271035418235895366781880643468834151249709259950540911224304432693466386623575098653831042970504899367035015701163888122901548012481362385610314314362867172343917297107395224394613802009639152494278493041455019914718197101624478831356442012245182096856737293563102433571842520373862107761188637393191235856449669027074963341024209657944662476077545439815522196026272422864890805437858426579284340184332579207634348049548206520092860439266869557173159133023605375489928274717511156420836396823663932438136112518958137642219073801552547514038139605435700980433568435499219703929924716306156694225943924721872892421024578077425630398553894917604262862730611317465904425116635036130636078055638216529062013138500079741030401956285295624512008962753995628358401026513709149165576899521565734631450969033846560589793527981807148039567671275931826249367168607125934847177728133886100665336847729692892443261369407204540220755722938438244964550410106684242143848720013330748108211890281159208967051531307229552422976671127713362976858411458158561310362922325514755642825639148052217136841980559574866451671981873111731366914877371733393905934788598462568508403302057588587986635815658905414520480038909985873787977278751934452598270629251232158019699127186839818278487911267895182269211224420398828242877758825312013005815229821207362473511563456481127954168274903207876648978822906456934060172591583603193161438077401393059623011154420992591284157101482272472628662973849468970040083266032508447715536797570034676597450051484081279038742541718176650694252784926134133245744138205570554217646506474151454886446425096903557887328739608798164871509483082732399187821046614501215595502952697497500394358224057029214608049464837806105752110823653037855173577607406002809329548973037780918540104795305041878209965855697988215048897921095895198671757456982276584144761202259486122446085833572697735409785459292802826593687471410607655996314722405136365912386967201991973584889677577315310469571262617398355974007118209079337215117389069389384435206415653778435187827629931433991295786174048758373607144892477097381933028909026126721384246719239910771150727451257279954952188852239611495824106242173084566202860811769990927179902433152271756856423387759156810998313759491947068657597662990108091776669316158792927722600325779145140009257554851730761088669247865403470907282275455422825070609289078523520986552144138232518060003344924919028971921418288611786120351377137159413005283537198587369370215898925983385318437305420255192440467776139803428879668458167270279274974870984936643688527784597230038133778814436639189577953095424189331302838650281006788237122863584696876930922366832157879328294589841712508476309020904164421427951377326372240513069493279784994527191453771887701918190394544504444364270153387436325668013659139897976403217781965847056478117306834352699017093441310127813194499866694087538175565105642080159755006098620087536661821729732359077842802710361615035840340744244815880605411423744332741908925161434489715678538608746563256044415291378747838571423194118705420371576656923509793374822579926767575853423752867856122610920139912017586337128571980195957312484075664458817172882952014567887977288766720562524515132524315874980083598982008751270432132220669448413601310641094469108335795307805104689550985342703217606346421018690904872641614017988070293430190812445950140853838607652850913768452844073971996494555273614735620827776149323223187376069768034096945617291780794310303033177350520085661964911777283634610198060744708026343270538917331960873357694863106440856321089897135611618079081061830906628938758003526774695283858672546649428013123402849361004162075257650577836398823563581143713098267354071743801930174064809918957371603082555754957554587580378026427257332798292277805250235108350138042618528042602750347519991067645865773135015007748491745998915060806019931054541691223244951011089832948406294338776518324216371385618967269770842704630157004028749087365606491919235759414541662682139652864207346177669061404072180833237824880092742641383802016535363167694969231098872057276828163480982270102144356355326411312835136273219989320373976636462119103256889821221785006781817595577518991562837233500545970088865465971097394341196389023438373947885691544483282062108000443595931232066370184050858658120238634907310600963055120939449315273553831264391758726725829663621461339378695767756994534743421428619211906448350525567586072010187944701572099225605914286293086704472245817984702317969279829530959339937339064618490674967496716152416809840496585369473637775853700310752752052711008028624053887396736817665592838536515274536100671409525356572946887020956830764394876179830074377576205193074304157033280676294871252213495498505736809990615170265733224510689655386644824426867292088457259014340443735859609260999078976378889163440703797011903896581007394481367802411134617545052487984050428282992554631430433797459988303493690825369961540012620569969229849664570252323473246399362064750392556076077190999442425581307612162127528903801000533736827612857320575518373469155766290512217429764250078279391442661034602394012535117100794059279198584462070442501538196324332401099217912345355519187801458996557198751994940206736890653171393035533326895720343516329864044092116781561889317758508548941257615055989184823507083771674059633390809773942008627733083664453240339992781279205812260491728984969841259188047591362251281172391630063640501336523157902386615918347637592652903209512436018409764347031438975111443295819822833258749307383404069461455194222753076584038837554799597972979684812567962501085290791052796996444595989029952265454945228416697484942037469303166658743829292258363380992616830498502063585561421109219591052130127175196648753163663224174821904725498494437993258396648378653249526699845536347196550495213687620864703397984042575206490708945216981177996571867705205546316485537745160564203168884516238222805854472664759791121825174537945948291209138487478845804802907895074921438260856105252602173950484112042442775406728808647302999033953434457604852791207309324299959892654489200820521236969612274407871381835274861445162307772558355005764904858215956087915743674175379873509442583209150261753680880678384757843908424109370893864799272777735873120664245180662336421943088057614635693762731771691107043019997923329703801035923933111904984360234085403768118533094299358440245824423793188993601472889732018420535300130468498986351468301073994886963709483207473073898977640281105243367164798112260599699624894807825409089094047746753543993978748521360495685937157699633911837997235877208168682287208593660281097244926907391396426403613837760819144444039598720262047702017263708469860955614491673200329373481523889311851056322123504455136414768248745106498367513026848074701648035089089611774991469871375817631818821647196430770213937113446074134504822005188859337940906625591411590741104495351170207641908434118898538817939506392128310572124252883554374864150939519069932599719616844071310667799161880824624961604390802553982129205953632843837109686779921778304916546559869827119948028747908082426454649718326215766255233740722785778694946026867501373190339406173302522176187899940983272868507232260696492212417168389284287544834079598826772596685756858818872579703397005761927197180622928763361591313494619365024076603442275157779766408772648536741551863700669327405190072868001161645824007188433696125468944222809563515462330500391989783937153468454881467187983059673566511021140247362169796800792799442345194064425534393875035606522686011463726645601381141534310820936136275672425561887912140002785861375982597479956440346397221572184627666501020800705842253255716822418408836626394674744008207251838135235061526085025397306671908248482806713211196643653574276811963632452612300215827765999873107182475778028402600177687878322571735257770790686695941222500153863129991187787448851881988388321121387841761369365221231063637872468983763434047074398047281838238249210481881940139994873158138804841093118519715240404771196214096246242296952577980861228323829344535448531137220984273319220134305549822448574051094799374798795451992935699734183317367989352771548120844506904875911082079778082321629200728149232793077612340309621353622493781997748255087137760301435849470794312465113978836305503791913688839862273176580979022735876409354709265222119737780850000951053657471462536117361152238092995650405177236253791786397331148545899384455404202264358543275550183821782190815905180114742390657870425401590314396655262830542627044832534846015607624735193750898353123784749676566995632637162679666608274872032851163463327767423906547990459014496132214440228776348857741636448181520908176595251159204117679081690059205055068036856231809605400742410179007188236582803887380118054674062740311557116785258496290708058113852911528267929321797381591300635968220787498002261020881744796031334167351380324932071771660073734858501065159107208269344451826000515824239568871533048176408586941614024732181971129982259764817864794897223648310507672447435434364966557312709071878683695981760784225257901056597569168694554777028302948598231216851371443421793547041748819077682131415754621955054666918970876861336842555040641877818062653194272283820575443555549205956404914360662187373918704733156587182425781679270464671519630623134158531652305366064517567225938838644012422395930507386346190608659794190602226931856335077825286811965385631284157630193694359398376842071286454133921270924184982404406185934187042382851422461353157045816391054255513643449255500447790796171414955415602543131751102510467641090288847491354673247041043799222729155290992064739508963696322306021078383863217874777171975055605639899372680062231344459205994633061986432262296458067284452965185492031539160152995820390756486652039270664230027274507144813922115839775018614456643870712607061501818210797448966208389142241515511481620184773565986422997193426996331588383598497671686612709802163764534063069432135231495834576149610785764864136714029771096604683513226599227211505206410514128497024894505314405089657395283888421849027860689880079942546065278505070981176973135407770859790355581302381508952848227689776547144208039353934144450313682225090346128016726482721870237436460778035224180180551408139234658531660412600433203288402074871866037191129641276596858901464557500887722563388467151299839657399785122856952437875841650405421677093277380088839418579251043781787077835595843064197922057989577198132342165985141056980049001548382985682120219537186879226153099013348180240509275008187193410021411981999995513414581737611357195214148243182449141492221428084007168581401194341765385373481940964623328991460980519822035062935779806617498161373610174532269255752901180752404122132509285699164311418301482683990174524184972058918737214291614297815339022797735377383266598827071640066515852434111784940618589201766178702205692387168566143174270587250562834108194503497688891717605580662587350682712847533345304920496443480779160495717657543306241777900290392424617961053430414996114731652835546817454581501575145741391074794646380290980487351960421838490522640893452060187457292226080277515754431390450269902072756167823706844920289202540452586688870491214688211171782682236902134287300489375041341982883227904154611713845747094829166063119928333445487307454266930874385189073163747654255108441652017372548004640044110729668336292772227698506650294938680655562920477037641859104428937038267784062676872482649311771461362837641925378769096458651496135139709300406888065449509495382389596133516406600848874652859123251830283288817826988149278845967628597463495486729561443060335420247565436402737481944787612927536490475756036118679225877984226847915097677117869726877567645289900871798530772182340151135251710604703512142241648675758578127823644088918206042851347708773264891973354041980216939718425248253279192294413415825576209981699113183045126453221109976775241014620682214173387121678118793888215178378683453737479193099894433096521407723648662433113500176713154204535255880708484129315920175053472468145775252983045651754258242260884136794608664034869623999262049800629331323903347728021435619712779384808790102970686707250682001717852711563804886765898920684867732380232085670743878939093309571451349113770961338317231266967080267164708262378114634148524939322702746071535422291586377139935271907145905121641487250294782579042661992028313793639971809274332822830463072054401380445446573943260666934196443840715906331146678481832706215433992280188651587660781533498243070164709163642646168482842197812065783047100888492968862648414578143763784086380644730357444266845560768130234922641006878901753921604956038548316664641572810982786627541843913885136071087905537030350373804089074233790698203300818168093706234309038884076548320393001952010003864578715378321636231530607425959788468416043906028068591376618920842137628731207861447193406410886244891823778300086175433132401212486865010841037242641848298729206464122569357423739749919032854024219168079383443660460340685887347689694767557002961870064879581852601753468621765569458468970436420781649301192222395922083483400999023085915925236633590360082838352840527857581978280338329401611269890966805231495463717876410539153859963363036356109367345981194114458850437325424065215117071843395257410630899506277333204265596413749975891300837889889700883332260427126453906542738638969991713231994798184775924455691353613944706440722473517453075582967337648507312290086827003348952099668277349877961567447320112072724328027511896017572498221905306396712155748163288805311141092563341122014978145889918069418196862503220135202464986298467886412270935099357701694328704457202388666191675254904819618837326732335191382563208061135243104331889172048019764148596553828937375822477905468000953646041919108417344807099499494193036053219721825883848286173217368626247923953504923251603398743969471298003041018386032995456210209236473467669925821178409695581260909730984569205327331188791112645167958624529093069465941492992145945764920480959727827962174386305348242864176011918659229015104382888087010174143829916663657259403625533509186727426937657646708664157541632986800232927445625400068831399706462710251543742767635531921676800288327760304387995206747234780519664415405364083345595897457006785998626311308529444383774845679676034380314172477194756281964585773904109118329553968097704185509518189340250253553385177191208530703304029962218338128440055963734162129072473202750039806626032217598364587103760828789089243869545403957042811162037449931695226129486276229308905515013809140863924566687148517539864310186122163932753511769856754783805323962217067532070229605762241187294557720588035378782493529317676702256246467120633870953721178189102747197411763303015270942804895992364249661283747519482396754306027158389827417809080826070990915504068903757285682460587510443074767665422929973149690695863026437810287368985203318349692863789721348167979948787215219719067774748586293736239417852011332399018093346985243864306104621964808681841703868228067574820163151079347982565479833789260201413642333765576991246564631665198871604517763163661525434774765039864888504020331126618472282070402966790917864329119002856174818376336244472494467413056749553908518420893553327145556707708826598753572564978681907460153441766764820345092016317785669680099451418129773786464768936688520413384602112855353744325759356565677190766500810720495783074467843540487501108536673575407144755702264257965843618841248411131157097188042958816105411266510069952889661484418524583038840692795862422239247147131156086973375527051156733385469675678890900859821263009588696194488518772793683796870091585351475185051041623081458362467648792765771665670160506343687558588999696703091883426691894369325737930233543889282457835956166152122012960761882978723046287438297249660946346315250427710493147142198187325251686075078152764285718150523217223559954177773503015158489894700863685486304448045172871353838380599813858058059923791382203211481109361619053559207914324741353229212039380007637684861015583372956451203818473495020847679059015092531558742374050691700874881948121188285659855334356426349566892737005654631703473204951804593451015015409736728976641903708171048293236667199756000617388814820136760149482160007598130733951099066354352583449743340837246231464673416382747966070735128487851171568632557163410562981408198488229376615461171135997879399265962762562061496348598972175328469770958848114560627602077284061058002880156046746000229947108157557574975617757980339783638015429689031644421912068522915713602848013700642655579403736571054887292675326276137800930354968724260965519377417325533671559630679724627325889657954271049998505524414588977716433993464375077648450435296357607489227385706600618402722772629993875141103768839798680924908786569453435849391168562418688821938333054983037633504638029277518975835659898816591884814989738569856764440754113722814689014016899164812507319920766199572420261782690582294457358495452801856707735032252866756397514762253497930135094540078847245207508187177417081120395032218281961787401870839168365474196331950416867594030477291427125908144808990665512826497351592456539345419169709548327219969393252295991532964455547929008805317123186545826279944911925513284017008855118675745936768598488038270157048410004774722211910176423334713798157361305855777548461434852427590814687950618014880138957934785247196706588455482118466111014634101364010456151972086138749570269021798800101635018398943103628089796875754618513372554710020612072558606261821911682232345315610297640686825554318887849603582457538475822943566549401199356382329721559030327987320060907801972513137459189701301493167561118503475551094167975135921632824238910286363472654634469757474711556313969520913658028112394194444578399480637744242274301800836978672321363903854957366984310298675594319513725000240865712625889752983664554541275584942397483784727846296787824730430281720208899602638201678994995218561461693714560421279649101806071127482748856249443519209046019525842805370365791751963148578586042134496737843881495007292995021085382159630754864651746456317300213252123302951892432221175462834208278419461524738297049162295579760727719598515627812169679754649254226089951113782866517513855966431394111280760156564903362946387539618020372534801114569365236149453089773619598750351212118453002121304464393638494253302910483198569500581616797563058189483676286959839238823937589825411734514775186855957164386859944339528839183483942559620384041642834468743887133351768351165185168483108989065580691142881386542073324791437250757622038347863220968506243544538303488449610766672731257778337422517845892145935653360820056231961103844800228774162016540365641740280839622187291823553079722944748227183395606355249830774716404425860462622096960111223670867622618800924980541480577981588634590885144084393475369135341185149147247753917551293300711395591826615732637571698144493124766766082510838132837178751357296547845705301614647931769595271813770280458971706719493459191186528315099886454044872829410145720773678710829081726750783339156888788942086907252480595640151532431172067774154840105130124132877265719302527525693196035297444522165950617764704472895726525766445074535861130952849326770463737515624816290342248035558385727963599944933954392220933133169717836852288302442254069009627634412042889887025021968783083051587698113613624683285196277394707865913035655776599375869773366148779997176076905006405223497777793817259818791210002186091900343142461211799052313307920344557194407159082332965818620226355218409444162552198381465854421332817563434709695265539131321470114276395816704044166387414015545930538918053881743192195138800939684566723795359305389147655892064652288454992353694789562872310497756396121630880073169781956735136341045472766123227879104027566751951520668715067960742812151187629843853329547576868905468673571504301489517943297029335104920230731146412463759484190191894317082109135151980485022133302964016798550659853650250479599269358379906353169182469919639307026615744493635720051347841620961918709270795064315216860205375623059372112231521094063888603961502975464376978288876558949748152321641385021609119807612597306851191841295398811109137831758052413855990534769791708443725517147754742246555600949810825390575931678685532335386938544543414958988220612089434525580667167713750393776330971165242351192270848834247668615474459149505788701259131029321542813585263235752770010647809847907804456741455004384942600735972638044364417890101218497252348645556601886073228844938007563229587312425368934614222351520507725490719173234838100260453803635683549499461641000287143027828345343785971861625521159518581187654463213684523324297325273615871528361411348626403863808101314239570546859491148062988000623820931259394476575558468794448719796928775882360462970798417167167472264575766240690667262981938616354923766380320454039559635236981205037419533304170794883548367044349408779411819846131052488596738348068360567548154399383280758107206458296235628051093863831014262848472885341312454811912564129616795905496469737058407670032598412573282589546273898663691989908259508306989205298343476053768694662313217571230547985238526090673810832208258975573484050790575316359372667630425136629594052514919023341435276401820079401944730009293459905365097264333052323467354071428030350828493538697769983051412682985431007329290301955632360303937208229131677678482984812387062310347655687112919296338801068836303202231134256311365661352736959639188342268218378554402681840620183176954484051279242759140195623141695980566397243213385811084886232280373955383806771061560960007726191029598173523278277850195813476234638179687623322623709555463531609619451500475018045296322817940171897907400473397080638274121227767549800982908616777569302638279596267598281843747958496624430052132831584813305405258580666313231875633886431819063102654872085660043677362138235374511950881309703174393965841483441811798857973649910600626726372974740287857600354675866148826710698386551811698134552323975914849332370222312362997719129063686222196877014821875314350313317505218388255194089209051083717735849089471179520056533359853157926354215695465517198340553353817686946625504363503370047684693980995225009203641853265036094740868172947254582947470818551568649322721669552453989703078422946564532592624066552020906188887096083364801130548195320960953901040126539807354156345506230926685441702660146590428825578805031963364782263747641104551887035738259649127468680983427823009276051715455702041415420605292851084674432388291534353132569830602999112129454337100787248364219718164575842771388506460137904037127009638492678052460288843020711985612590839025621719425747252248608499031135889176977470772107597156289055561870532630723903448690843623391343915284037997259975376264503612351892468059871649375087872694252110652351577327075734655883488816427042712099291675261990898528282931160597307149272869588313547311493528558036311954413282347760468169066553146153385772027450121349785982067750233557720055886037236152718412073542026180285781185426875738093682749298927472459913280211839665091429573350545429346393745081284385676434274178526678889579492732883950028823540659695886478078847317719348852973671920806447991975274103423098334234891272226488258629462839475815380892312607913492564730146527923895024585000612552699100542935953995689645308565144788478425072004192566900616683043740710684667190420263786057361601219182394731773336689467043269925620668446687997453829621015416250193215843154338605976942137207403341899641040948760546488916585738290090114018307706692612781160789922536984445065532638354233432039346674720980023462806864554160915208816562738731467021124132871563162160292371447895855230566625604545335089744925798719521925839942374001043128690624625038732629901682409836504546780669470803264060087713399217438749052829767691957716199441994246865759047465805162040049773062441913785321628563085256459103629157806715739954142591723182613839074453211835099430992009520252729501386137329433245328007986285385262678288357459358308761268619460021179430816010813658434538211955954192584112699657451929528445490741734203237021066995302115299018831294934831637635216989980102275502314388828212197282438948114439529391015779389290810448636042134796601614518922292775374756985208380097450457691650290428220396445263688054538381329132067972742071719998960271346471898054888403284486991984686386472291294966054796788081737498009422059797896047027042962516603829013765632230877376336782732998779906600685299364585806247546023976935162330730632370196056310006634286683315351581521462683776187351991635190862507460371596313809635787441766820455337139174225619455824857883427600431017630447119847086766943201675970988932568517329015130932028840619929337827313633442623232641984731060610073116789895200569874034192295984773609911998635448784700951876895477722118162732372879003226083205233216336266347386792266088259350205323266984517531951404655807257506022281591436409132435260775588133122136044372703148338566641693417849721498539968459986501464835846104041660155784912765699339466964169559476634700746391567654096642683798360518262198597782505939868775714692620882650416267074717380004640580180968900643652646414908357456468356294707074407585366254800276113437634770550618859204957574575059943838896737883567066301842904721080958938444458931270359087855339551026619016539983495586848854264211845948440831767573637338481377959135599232865263110382644551198842384180137114033711009138264798037992057330049199782832323846671061119526779039873750966371042873776030530422640081119485250203175010400501272766002060506270035167138642730634794931338736458846176225325997874904243711110315138030141418577916832657671011394577700678930921924178893649517272184645115882214352624436701304888458161070585627072541578151717803033900892542235463964517482214196663195547487754748616916498910890172885315713374745123056611416267983930821752381165721719442284587731815257971919545014297083240091742996854207262806269777014266557861181387340685837989289336162007524748466718856406179052487298624922455310925013977556427883670979178853466811902928830709865065748632703686110159648218537521588726356709807434034431112093140848311603211698586374622532515626782852654559651090552317644866712231711501108491324582891258967962696781142870455391939103407207929767324042572211565008766573914828204954621778961158320379506704170380311485554333947919371325770563186277731860536271998511622257745804284629703065173138667189537182612877262367694938439307817172920544340295717332746180682136824627309803254042545906843447851031903515860954020489075231718666543131448525148998839129045153340216900736285996557048997943952095561443269108529547105593148014983355646344313206736974975822501548771601036392025713282727113418348330316828942280521167774083720537772825632572071102173167804538554444221322422294753841996332134773985838852881045917823830010486890109161152091595267100233414402006908161039927070296770919510725888418209708346521903796917867204716258140084357193243749395544293606994220400602174692830544847798138762437969786235716334388700505806387519236395656342913535651019133248534079587750108103753593021277746759457169611578698397107228777489429690222826804950596652161593572698398200132728461068950766200940636020128432645187360246404555362185513681591601726206415318439892713495815495146674248100784709084007366874996437713711848949656333007552020233556979522424253446850420171579863535826282168641913883281511145641598606834292591987976432268808587615235839454212201761658081469829454582024815876360336428698451063534527611265400456550941172424111897156220530007634065065131207957849984926264552532636300017436573139576556210071460565549700552025667997635657514004582246383514983829785777262961180223318351871377438956520225124378983819481973390820834348666452115671952936021664833627412594640788735508679378558415468184535919779968512054477935931562966496296803137259241141986052312530489647125090221536543440838499877029339259112076905700010569878960787629471694377710199072538633199477648005729896693662361183568539977341532107315362639894271181226818241175016609050435028185742015793641362898146007283458077677753584357570123025975853544977097536031557291151187161032301677071341217262285218004335309749409571856947349377635683186059945592993869497257662557571635501027665505815895695085485069288962906338524187242678053374220140855934121361563141520300650031452427281269239602617377062313474576024388575306514775730221940805698796480661639964045123581113608785978879185909283422670637258961052893923253564169578189286164032011335550604473569563023527574238372694437657584729324295483826280325066836677750617080989947632828830746764295480913419616394166854043148741677527710065661902569850258013721551846780581979963429160001712322535055596981290024696315981270448664873253170526504267367565020944659798562034717330386380482997404588419244255911568694881307597622242308610690278834357832146323468515707336831136365866544797790901749226992550044985017730637272257836116727576664724401350698132183643957128177845279093019604254490115511233539801734469042632757324957181732459879357304700152569072956702179519851350772809175918398372470947674483687747118167794616974304535841512622276403597579425808242299472479768930995530958218188251395724148422067602102279298304357677812438302157697511126480251651891070526057537286184405854322641684236266745816776580256236647971286256845330892973656288309094820046138682509138271507448904610588694541516613749721109734763772798143466082188048287705973642550605596840789765074635223312792211052393397200400813038395707208854820276264244507679610644813957353532189406082440131883487170288950047326633712439831699705510419951443845123696042850713998857790778151727066304507417772902048749960792174232965406061632331507587534193916901305160871708437044572957073490445229551374631216679882802309155251578453571942131266614009181030150117868425851424989077259448518989169531563686670403618381211128088240881308407068593778715060772532886165468450769384327759490028766978737934752744000999356338386332815282926580868214783607943680432131104795863123049047336123995490582994409346482999453686907505859315998494081745792878269173010137915829086308251616835624216719121297777512444107788175969052882709795548105422702211052095802675332533397310668683888733399327660932548808720166724580199606008368970459082528389715779420611096275477515131366151621593485168312138516277424552583138493604961040290184933736187330109819584356874172113266084686559173319935069840740397851618084377157527340884598361490558619407037240177918176163105502704693237261841849794040397871624540171296986602790116523241908367947527224705234776609444248307650666977869790841332008397337910861449273579104417355633872454983506180052649198286368782023014734221046945770663831461717029165982278357448845744172817208697646211282695804094677842111168380772375537895515624534972763155293373034214330435231016061020678769044003118768427963827182183730879550363232775081107941896050011265060921279280379585880896478106505887831349364575686390863044253015860557651403375108990135912153590433305835930505616691804518222976844195469751020728738751176786605495489608140408438431073987603973417809509591571667158701109108462035101611421351798442072814328666499922631756819229101588215219671190936932734674959560239145950282747543250746796470549446047319178718637538826116189776223580209846106773200807168179421630383118811484395672895533627725595221544490928620942945762730432591357740558691269888089199557490711751919596636187205680979878501127677488058771729406258496996295121166736218914498736679065967621253001669822865060311885247493230156369240753544142731024448907887268102120175198648635440986514150249706587833083514448739236611270428003084229337386237834164542196805495168754806994561545345530518327705517362780599175792526396507171733525043940277672735626055952262237710644887263743354952122752977237754122319375597547063119120193054403858060546149869203335807829999740971304907144748612316909979073780176376688078155337188711951503645813437024716156406844804576588482032321371425462006796756169779166149337671459402141587303211031447793583136292915251485260982457441250623354846147992471502130508235644958045451588423552207354422307653825629062461189557831715016918330502516519670695155741052030563976705313034363612793083682788091253073573720791185833601614958148591862065491219121925814228314068600978653651925799814089445472089239424871976402284725133287985652162608603838917049641054046486589981891528086499797043873297232880011958348162409719297112074602829350908620718715948783563858011910315809115571713495341784610142458876612051817007686661035367560904720490816360287699318499547334462918899568273580742075170711886663707867241517406733775879859333980014440142958955140929307088003247684110939022121881949009818596841410751446258639786253759067914736783516375017279701424412718448851166240263138153150634693695095527345612309724650268391124349172578542414426771319044897030151709435389022202378454557157031063138633968159290450398745233900387699501556549366023066178988687278421614323901369902627165398231387804173276536605336383508095807710302139565773197499181988442932108148851144448879481499681760009967656872401511978096033545772713536116380845652456705220468573126691883335503986804595436294702312913367710426028499639203540287205874009420722063283094919042229849613164743927750149838785046869544503465642567587409286661966451302073554172580862960388789215946685902514373584951763241575206477889780119789199443904300307219602931719047981637054012964467749677633129091546916536879447008334042304831652781477284328224671432970404570882174715979720461423877237772056370904959829238022428538237657629176476477632883154942364703096110249471203207813031218677604207623146950614765893128570728621428956475322486933225942714392465173950990083709315367272428079655003353062623982469605935558299995583602965361585744951489893744870190715951393055712543511245973681847700604973647612974526595235711365886508606814234696503288239248256595158682783824978347338160248809290947403179193263551724750034105289770819149008397723781462625696936580235862044620845026095966460525382532203638873097212888278420944949655348907729029366547138349790032844978471190694339379187742914676195877698054029122775515014928021559017412506581340741052755132781382084919655701246836803667212701179786352086726298738884864036943560144627623205796148215604710918594869511791747677294412175878007727841225202639731049883141907946845532601138326232648864120127659122221552480242469920800013626337330305199893121009636377534143610113908052505571755272083463393738142970900474341332726752952464735751980872467586859322982911346031616595035635754104462408849387814300256639423260340011844375629421774919868259675913402551739271674899698211980902774486030335539453546056303595937438650397822654552427391042089310656409534876118427489288291152459408710072110596808508386524179723167868227794519392598176195507695795365165193391058215963031574220746012675393390821395903522796543087583519540870979125310660313482829917837610861966298909578801292451234869791176420922162512083679159271668851342894427612183942721148921375775483363565576406363442644226394093660829671637828482256176933378274133266017516180414946101193716170554895386870011673334439596281276920580757852483690242538017118337866813885982238641626523574814612885316336739435127724487653774304387366833542412548679737541078217276964754083655378278233514462777741829158447289854209870591086770660803400915245409375492345500506962120121430351294758040432065872487033978357880458039291047772823188839060585189998300716091486164905529847140785914199490494517016809698264259272068310965849000617231933782552836354121143400264873012546429260304696685281367144743976655766293115294734281996101358035597805994741269813166810324855209911318007080235271887564904966895018376058424118632381445219013501901668130252714208932307227902940757589745212370744624339124398087626571094446496655477507427740190789913087743632105472891959084710695411012460296104104925118090687457602705533103601613414428125084461202335333247360906453920177575574665365334564861959178491758327860299822290692463829269338018296977087041790046635104396338791612227452843147903748922355373281521958216612096718692634356354379270773120092994202337108778311984129723674423499074600162991875654443977715538288342052472071187038582697662173443527538856232311828699845709534015098192680404158143757917271830080845838879507701037640424391871024890393532357204624087647500315343801119314368364258297843385640384367137503401756711873361521060277229693496499406709113451494703222539441156105895768614968368765120690502577211638766096383295378092878008310811926876494334625330283795256904765929379324408068598222056123357308496832372176609415152418197368068052815328590611647486692034906934511314564348836399810386973563183304816613825887728753096057315927125103060228573784182742462236668064765933843605923351848973161566130228024501376985783276674346661993921592031658334433886842846751378985738366169271831674734519324697349830722749842932691408550094937282276313644218438248898958343669342789919690821154604523187803414511049068826442516663666487905728216248804466377680931119197669880827053369501781922162002342822521563338583908329959854936269360664341691730288615519647042155159890793302302363220163840354499973486919161465487642279542910032229477615063860807437948691718827851762149057101481611966287603600181584374883844849807219100621191206182416879220793846330441385061966398888355819359360076227720390737759176872259808653300672343700594504792773244571265595445475637280885142666233906904497582357133910581213655271399563862283373386772156960649232500265742504704087794560545859618760257699614919873991807209034522578060171469356494307982182787375081170074971706364366524596008929589082187757883843561895527363412024586903176126142644838932773710911259532331570981476336706213318925861902526034429664185820095401100082777919333081332754408725793249688931798724294772988975758251682677003844869427437074130499599467453719788227943398990979211338885524967047070627196393762082983240886420070142862563790296080220550475491440846100103994833280224184478216233735380231592235200692933509090855027742930077441542652039811895743581576987096650624235630027507414041680008693466994525975371951965267270073645683864399891571646211001159382027677003781938966555600028368678737752651475462431899696406639387145866906593707388305903480521076347334835362098890368567384195655592635434480214416313720585671517389439460511024284645219123974550168125316862144402202038908377635369229752100129771229253198397972217683865846581884708696221776518283124838794074466025787380248221811888408217291108398253622274421090207102195893116434762369188370604224171805142824312596573256350899883186606014018122947674270253195484820061838373963924355314861696836658094836547116975379635160168391634545698729958081220793431022361661269861972407434810864186594051803894866131352188143402814707704309562499479188442717375893028439657699760677035580494306163472027434368371519169110130365990909926465051687095507612574219577174849098681133235213685666656273534287623955403916242174974587003633082718636077196022588051699634382585153052887659921614191160235535130846463888106489060226864864156502929133140135871614118462672137892052451371454406543704645127050625098368685957800675966229585955154965372028391796558936157570085578052291320492406355715607384718388437657597164074194862295794900524461866848952426020991673876128336970258903179621279308834119096828948140317758976446452138632183911844958552074748110738283294641636151237962641083645146450671769901651384306137017085940403041678049201821158940064728851026332529229406358528143934713147158020559130485694233260972458037910087255368422685105497284616947960472957780888048732064204985331365784448186404631501798182680948699604474032469731517833791243792471833993712189808352708133145914264497082467198235261833879677633481275732720380196446280539476429245788149175130605868923737012834693485880464012664034620580943086376147176803755548662456117476821070744523441457967659220789596473071379730341951756821605995502205448067895489446406961614970374870044475377304294435150913849795747688221256541376720414892274117407753242421422283491915538704675801526247643522767795575556709979631235536038722741368448633068881938992519451402199719073665862876923948249407774992918952363546129138998068356087625088787114927965648778726610050760690105993046130549007980702032748742745386718506023324017405912040288572430183906663493450299679656968941497970731037614057361421318353718281432635341033401321761358572440160906911590415440978361517502356986885889182680110204598688865137501508287314357022446516184175552251498197920898473519578331897123911032010259811878923738659738081160122341918954671594931152369947184721037605018915262786372261320691621860145665690006844458917035698295538645893570558722958540424063028162858469367121828242348948812752522744609507236944466014463944457780161813680522033985736511124712633832394513080125847744343623561670479324526522518245446719394274144887850069799008631875699141207305153186123529979382740341319260848048928124673360437636050029145087592901229991264009516447948143529140981023674361653385586887366572415186014959408785974604208112338875295342211927091437901103020565088186820781694601151068129802812464490882429504311842756569419822672616163380902191832746126773998076508338316546568955747573725734602246765203444586647512714822013024998959645117834628667643280429539125770586394259527100534955128007575381856348737345867680769320826869467308372957787023569794506924043749557885656602939031954701832281220913647767808837492429339333788274291663534651223808175720891518354925290754219899760513637212627767580516626884315694722796336011804119571457988679657545270490062977909681544462414477857497579931626283179347495088968749227193013642996471806657291590270692302681599510223032509139551593899078592319727868198677270669251013824654219978914971025975493632614761826273448955450804257074233449495071172269610692168292217182626498580672215618715139845761210533121393227629521120474141138173229837436635801884985095942059878955299054712431525890715750908521748465653210527638013791797281395211807147558216449538696654173065006667980889477741785366719761258086129224185486561814106643966997005167765822975854643214640385046405859435075743095589441338577167171400427040485552769456866380339926431337448565520306313777842431808903314197775656521422081897316737975340965215380966266906348614322788350703980066872550555942864117174108419508188820168827664128670034101445968145423586981516584307738705570354097382988496423975402656818551297086326781339212660614425376504042063900215648906373773280267616962039985948749756339073894082077041866032757055331256651434695162347383715322835780757690767187782997559626957127018088116135206236761191740280457635493764752162729343602926100921102926361231111997506126308258007425523296706079112437329607578602807910786658903674768972424590180335904634097019670371962861191303787966829677274110420733370626618576053840540969253395247227602832406709330568719114192163918532486701520104388836868797407580560248039641582044927577504767664934651011785793112894291263344105727446606344454123405333045071601817852915061567898818155334352774898644463659713158876080381333342874000616255116364214471871937157218095223741196038443749475911444510698657339577908111432271520818506666164123119035221732212247635251133911814606613602147364987798561465855703918604844402527950933168538039138375461138056342026523024228453781293647992864036553410882988028029012870970278568315741978482954348381259705033136449946360215275330080599054929687832461126085464334709382529857022799749394231029788191765157728381047444760662846988648666496878979534279643999641328277123936872707521458195315596025018970595468846591682712640338182888077282805022769692933104064788556977706896995337484750733250661234561850554602822567551276885251240150302565668920468852522701581271045374365177171406450625387016283528588106831050468926725240021012922124151202087316651106886185422521777848114265701455619825960986330236220273291615323811122052746232271205094163391792127342635232201662015754391804614951068145320690046823696012279907378073377788509987970914433719749479765007983600421242026938921239953323294819952450386289889399797160939780359943369097460714635809978394896417328808654162033698862520177289209753781502366673815322445455875720893966911563412855956343964190040227205475134793093651641155602667492040869660241506273284773582915405593222496673420794081711225858915575787459255836446541738724522818919744913978915862764945260940770258513417083612487615460573699395640146154955354450828851502022469682127133482387996975604977619702845472867594774215208390107807171043202246392240565513944101381789764678032486901721861934589458861683528864481991983896472843406372224854236825569094482547176661104719043233717891774133285272051278591873563508459188837035964704756127553000236431625579506586576898454223863655594087986957679781255386872494332073624240761279105079517017350792165810512174060826163899107083342860071423249982100227035235453616612317971446290146047297943239921997389977975297166598646169523804857583984817832522192835210744640105975700936571260924720224405001683329992469763820481874928846372403474143007811242332990260580372677139189259828031689617343745924278169851889547319074516006639569236552099565926620476596800108742427336817465921723859395941656753953748394263953735103744563246425305625819044370233982943107429725048251271363993358710794196501039024511367221043847737578031850011859425261282131422347714326484762560537403847143435963233533239047622380940483991781230853110114847567337731716426736695991541795858084514774203140151967353472760208932345823587174524127063397482681250639207932304036232595301375034077407546780664695567396378377130614878429340549778190124732889790919661984250629422328395628659402532664839127307991735326766900652281455056213472135980870677681111231748112676229517500101585610068351793385045428248590199319558072364993262083662040281569006836266162352031863474340052686074349618356756392209743080088900084218765074176171924158793801190750208977826555150352817450626137720570093336919905611066615617051485821866236923172878578379533325127005664949318117324573141602978827039646289944018999638461788694699741245069986576854617764124115924804174203398404045997539003425163558425681796556052180274308674529911857062648005814682726658561919267059984166974366235690529932597336144897795706515456405903287967653920361536243046369985711766394190252213088159757804152249756613265447577719764287059357379883281282387293836554057001615714082137857418985566144368958753926629418972831371660540979149835251739374019944950145151770315466266579118860799699541213115325666814197363771795374948270773875568425502319671896440327265228888696463760652465988285436420885539397769018992700996641607908038185113883608351867502359076661906633584612438805997851967372140699966289656414365744457557441843159254725950128158129235897328447177553389679420157333878469241038615905622962592732359412867191632131153622718073851928463562048114453881292091203809221578510637084538841164665052183833203955395770676297822889407157722522193315620645945664170463286404858946168218717714699322319461847828246058742221374657108483638437822188315789440586317904460306374303970979057035213411492446036787085889586605373813069855391401077543831043268017795635163361370204768269188058664734351411488849478944750480088658521068620599094870471031787769781896075592346597806520255396343342304048184918798594521952420909304610741646361720808300946233502127666119928383518315015353533382182506085409549791582613127252577434501945278716480885496282419665614334280263156700585035412545242332713891965503126315399278753604163411612422766276193177573385166191595806533660822298676915525303700005941056022434303560200347438837920520588723651228659085981711204463964679726304863605233610091894288059764434199812708194429079439492349433526040726840689153479209614128841736779474459878436139649046629654872069560126858225519502987878150354677683218841117355586161354272946407979714863639497110225496043994082024683351343213811990722226047513330594329003700532465816377775417689345727980198713434179326666459393710487116763079884538540171402481059703178832112996194697531473369443326852614395518707850112029452820231511768249201346041889439217647325060641360182502187600275824257796325303141711065949662560750350786142833332735917598499067937924783308474878100981387194224719750300201289205356030120520823354713236108090041438965754183403135000007813891722447982828282539252269588728237017288282007545510627952904470997551237597950172020704140959987792576153186888528983126845560134468924007499632764496369158457419832084913489691645626587903157167678589757960085713058762438334634059764665852377821404182919593015876913080135895402986534335555364671067617245302816474749510823199149696737630529072818343221769892424602004860992164703100958865776859723931940280721702637987673632916441168376028206783190945578466315277561330403465216999106077219577786564050660968530560769822492877137535353428322328778267626953391197086796021015995138327470685070139097531325117517008566206246450710185920759332654547199327804230756644083241148917496197281716661174454921514764198173697120723689268419531455507809961115685355559009330001381036887307303107435893526816993748781516809969858912722266320457971023361618213084274934677372164352895469456422844088675678186234441216774273074111127015004162440833240417125445387775921341550751847376620313552705109158133500324861560235117206240499074485675856551947141167615291936026340353472662109143912810150806709370511536862869065273241749751512339240648052230544970050460258649505785221797645446267327336213120135917785490063109097326018064749979372761979580527057832603935367466966812565966033137093048669884055606202408269097777052447645044260609092271423790421046741137267434670681586978058111361622305181041084770302129253090183066285887982544741650387215091407769922114764569918722903754343993226461738203580045460914012889176064213803176039092892850289250442299643967897303993630129990434552883660702434949534040112144785374726484690115081873705188604143415334067782407634747597445770145904185453518557397493882983880218731338257046995447590419038051612819835058405185077048457411664184978998740338270509826071529793490881682457268608771030253310062166212087899741887861030953455893609393813577265092130971416023840169653053218907006969268822289804453629355086932680888208201905223963866386643767067347795222626280400011489803196465326340681323363894475150826922002848579811091634418914740677296196506959715810054229836478700934221507300630360776943054567370764545940513586616043671938941983640570319683639640678421288544905517181632124879584267331758048558307938142447967134138797172215979040277131373489357306909390447556089789144406244584173735396275244357865409110304948189210741012781723490677242069586494226102073763506934182151320050263225195547258169407204865924993257392785703671475835232483688837978006997134866994297353115834626258476884064533413217613147309405676738005053544322519818668136483088843923182259678545253105590909750768986707288996733823672143461293072429872917149109361109325571997046955053851014084113002787776320547317006428611890111672567091534450091374452158303912245090928507777829063570624018635586448923194819643719480929424834190532891702937989008900900383958023848711332640897671806650672940676249245370400105044728269807583633839147355277491036462084303731324480465946638578689495604803411220854695912237293893747712664244730250028439588829055664367560377981698445182731867423053011105382697512826559552745141794989076706304128470648387966005146555501806466647938675382239579193530541079412304974625090252405858698529671715996094576764404751878466744121891578639980228148298313766491753561844616724518177811294111534356087762216480817431450137504955300730322334587464922338705233622323086934774830726667566230794686292943617555365514979192474032970815561495681264794013535314511412937223659868219877195932132329166952943731912229775818277210521509797526260432536190714588946217622762576092798040861240326643043168534957669188713649663412762730370756294438152946059463842681754050870554254162838797821711386408783835609683644186716027436612921451965578794130054334591332238833791316418681052604911406368265605676146124788418557681859445827335195027239846053644809613362840689475956527686064520551045844001160407518688104224044314448363164616420511162491182023078692390145197599106972700772421045377440982134676436565958753034312773396725965949719509826715698334767920759801712622809641705434558637234372824674938154278659946634689759239461195512765514635715735002209465835018886167158637022490274948654307857608764365978991052325287110603784086579491318263506289014887478659690392743910446702937533516578158767225868258643858450356716144948603784671297295252880908468458959592269342657075595662453515926995870991200036395164449871310147600971612501697251546553544109614115128779316753397912896680222885809773923112208842319648432059392886528060459917407606159508195927628522061410767427722166167228791812055259073395555970640700100690692251444346945965801495405975188014294279027713428810369346456030204701272927749890702057713279225989200926165678844968393937283931029448535437788771967537202886813285279668290354387049358320060346015782479303739009165532378192504230178083370753629362397672303661420216466422640623256537214666986058748519572618782266091909650054848183280481915751597842493005507531060939457686685579394208046058718993278915304150507515376404643598855905120460715008631292186918743156688915536242369420255981117816959428201823014854063734020375034027813527241422071057477052862246184980873187745581160876468695388694091693149991090699369413201636774763825427975655973011164385972265145162585048847293067217032732048395388991877677212251692395524354969574568304062762696461303386227802137918853022775520118783826154263346983962623458098404689540177867663088399908619594532924712946672294685751348791615233369378901050666965148932548495051607674181012631189313862230301602043864032368292227210959048636565327951253518670815202934151084717675606400841186482206412871243431767234589378151558680340419298546511779389713416143601719320006623568685066689685525825466830306802762225692944416427532945112708875313848053492703707369174092787820334103580075859897173166784860470370740274919391254438931118626514064812777404905411842674861552801994701495614353074272438541771864466181013458299988020749772210890237084398538734731143600908034175127800366713936047488839489079984059843900055041620779025897045890591568100371803369053386226648228753519605142428733237825964817544542574723692314322449931070089297565339988956708372044220338034276133017810603072007960810431510667514347681074747370160430715300635545037789371970147385012262830539296893538573120007483221772865900614199724069143608417718332171197466903259704205296357346581950973884220224052610429395851809139229175828627062783743075502761680395813621165508636585025117144137219058908573649990984873368202918620908989337534130875157965424274661069306500610411768794873778557098734475908699563629855862702015673795928655211918083006276650808463632609800171587556596195238699179481429026566913055356633250484343852586326637744207814629990249605661302212180448080872829414675294915425690137226327232199297490895492991600532459627843946258457540328991276376498680903963159053405660381058188689471875262574353214431507730109553382138488652892274871815471419016161604766230346770335025319984271190344038206271280043958913190638473990242166640842049415607191330841767534138835963764561469857305778097040004020347018287043695009224021279441781540001805722077468641856042415242325209944899429827823683253797709317560354364383878662709623250366528618252515697499220680204872971026327585909588897627176427923731355555031362510680503953602302929141138031630520062336480471757239794006109177332905637206938792298140968758701408676770528830700048915838666022381007949179240956359161116523554315787209248953634221866229839736073627199807169375582871986462437538652877820828629050447006228030863047158390655210938116787311413418731227335705895017352358052914460441592859117010735942867422568368508733159920526204814183679475312183827528388687757594406513257280562408186997209436478809086452583055132170470238435401224753474366733918452604549342961106991592868689868387101294273298345365384740247485294841728601250155156526839929325453410730310217773356953594423766618213975898197945939215959484081801017465926415710346673791687576112573553131108950683814666381473122126656249677374955733527169068932955893897179980089391063003778553885574663081402145057147237159403356427924664338653928816653842131176548346437983576770541032241230322018985826683579647429048629818507693450238204426030435349111515341887954732087581897942407789941679000570136144317164175494944095948772216402309966859515451914966589748665907346034747289011874119253104453394905827924444605875305006671667459611040513634473947726002398082016594943328002066645091336641105483799342879631016067188023571979849032938826728329447446665622790379705869130414135914040624156433922607041175532423204473143598409234362513404645888233293240394277394155771607839321794309826837947319905106341772745648231619114694578438326143866429811490895091483682668644264426592528801120863853270104294506949216937781251619429880998209481700595524301403885734466800631127230073968173702565207487767806065784386529899205866141318530229368212380980539409427616745530164347023295269694542280242959150211986487579772709032414669295841007097668916466577245769131509571313557319909631530392069655402787764229036884681007678068760763570219667008865671276731985001897997796601607946997032921881850226212304500469331326080737658507517634449687378927435776417434166243868653875884993019096234324915416336234394009126837864491402735521023361851060637834672769582873041164333941516640405633175689331064456156865991274019279004955430540210333583805006906249825967239221396773526345808748242937237350996331726446040885205266925668092594229443051256068968493266849832446056515994946369356480739446544875480902212318491701860339886323830150023606457578516340492604259654044509672656616121290936823431124862389406897044770082734033100289434757192766176180320945730412247618700970662172840327867984667138335858853188668937029188007139348078838971279313294083670704719312735964886135874555328596730933703272203922387449938729488114714707245672566550145337227206250488596680351479318394616228274744223808384477295716253799604731232619001488627691993173981698982309100150132941707482549381232115855113070839497663335857574238325831785273176935877651387285099942335868594934133737982087871960807756087626640594747591678743119036438380899265571058120659853410379519301217402673387879850862574680895124997765854644286888897460536876330272965118759630608771476540990128274676992700834215917605311504178089638747423986108545493756815895846194984408953712748858894259920361817960159827333397782075800381321333437606583370029906769057306078097934070058961883644429971381573451672103991234365207901715642755774675250504036109273561654728871840552445334637871802103543542583197382686991663112853537646983384479147274381453646519070705178576925973361303671671464805803526028586409497253685781143673145981691660087007172197848394319312009069934673729770666801217793115412331202914254483678712175893859188182171582963542079202687590004749753260496827642531084512461316453423999510625568537283729357293914242110097412793172441323792106046187218278231007473571296680262848088477787592882762380244659663717067506428562527233825748305693271251157645815055205615588465731855571028221604958545196163868663834730154857672978229237315106022905975747123481367267119412962537378134483108058357419693249385674429645734151996955456249612377065029326089599755431984694884586574179983461190728445134973354250188482817158243654074169317662299085318389260735267362124704947910263950597914219030725703402103160986149589009038939494137492602847730450569449388361807821294722314411073012716095507109667578775837458657660608726849759624968975179307542810018378389988859289575948067665320921342681175947277250659312157728392432049510686256058939078997931008600512095503056468585144973941629283133637993807249674188149519773527020033627748600726483316155555799062319530769614185141383497043074545334285403821791633141125514747720509528135234155802102831578494530366027763768408692643563660366645779220832199680681539801795659255393595119572929474520063042255371906499703624374456514869711778934594692776168245061934723108417191441770587775816091858078311791498993841809533648225429162961030385211400792065133709536670151660230606189904585842066070262216616685974066603983670116710498912527083033000281170095025566509202372172546387792263291234494052669900673899310008847908752225426156046292049630899067727555732429567110382766541226993376821373478039187318036035281274980240695939675798036462435716528399041466890545328036413807754268105684878539087233843960280067006107422636467280053324174117550174564447640637887194709592734032194151589717687803929074077639119557830467437099883097904050786310893013630773596713116223666897701991613938821356165174723406881447867545467989142650071827305342107354344093032668134403290914385634087398939464995215797289562495784454126366515933593427022964537476601700524939164595240895206428763567249658272130051400504163001351621939910219673335231139760066615460676768929414280104852642614486206640142193708459774842792661603501534459521215691511852768506823021278993572733438564769679943175071895298610497794591410172767158866844509601972310906778125483236793048735824358802088125443019923963719327925658188178293542604599141640622526558584494864808022141382889295425137326058587497618489466136439010506685700490940939331798200935740857278878317063997638405497108044230931043539241587251416992052315493269386341536675622177004710870379978432955203554714410786391651966034939861493504661117973429891639009728392543179544894641612223864599058206942090562785315088503537509254183416332306973565652752395334562658738987819692432214485741672558544274134654240937230631626299535617448214851182620886471903152239188180278987013614775947837992013926809641817667904826840708446449399459101221214275109412723829687262296355313580753427546444402717492852298154920793458468623960888825551511442231254238111656123818671482993518758311430380934094973353789640901341739133635476595538740628916768487529353169607394404730434743983248603290337719455210652073616169821785182581600363549469365565314631469350606076828901490062766500994011621717354600368746737066955586769045592421553991778335886580820090075128613945006349159385841117601508080323829973513528059897482286561898833359577071645478961947716672803077149065360195708660256924872054650687887077549099042502794419638167175442900620563928725643848393423814979137959891741404932767405139238765523013635280521921293095143396534966871474670547355555027740153724831476039164055510643283094666335056583573884614268077378252936673748755364655598280288143007606992646098457626529903820546605926679675147478948246330243022579287159318545506130619237955236230415126294138715372530040940933689783509607248336961326743818417108971184654857614471425638706916505994712167689362284996919264190285970171680927883429361371010162546505921055120421549814005315122673669605638976781311946888588559096431688354512872576511319169379898681640446173819854937365789143512350949910598350355709643693529258338304620295683577222858851310058024781339634105317048358911494158071585758556130177743996043832726110094248881579320215773971065492672144523671414376358050506639079060942975576543677069348568634675480487818490080731010577958552558691470930725318698351883601459524334673302539898495133142288107406972288277088643700537993703565195547478523136983472040867609760226734661612905135819476654387260281814630622352554154757437182656912651096950277828843596656165718966115997683795739444034655373394827812061615069832957136158205318368269155865669809026609748919796165038026856265067915067283961957332552853402432631811744945767522791571576781490224242024793108577995123822448939154695439164305880615338951607110792788017292709720945602919500706014582688513493932568831452113058008453368763780801416977661840053598288419529338331974516209508610486451634961321971423589069685998740662108604568170664485674527669395349388454330725461476805754492059818565213966443213917727080766940903878361296068113942378908208253890927419970613500639223131063693554434974072604100725067470924749590722799811116946770027073224050944185789526793700995424708861266863529818181789064087370038116957308437666414653632554038205364009074482704828204127849177462286532136012532482688812932475601844189832192533235780001806379244382083655192596647899400276322203697243438661969964997817328449602964779567895018764621999873649276630758133144750883561261054206063758461130456861812909830069009549011742491112489541880305670777489296091677858854329386872075599820605477326960533930803975230475111971046486254721802288746152987749270332222943500576908374304919881288498717643593887291835441222976947565816802041086222933880071080088301909706298431343636109446279017231283132772884971474282481467093568057909460918174046011299239691610549036512735431858271404910406267921119197183103146029195778619017455542910509163946498270348517654306390701409652773647805785751476093389081081674662473006403456037985590225751934755436065429783993420675578640863136375845369134453967595722542110717561022870943879590001633844222144500537498910250348222513897527520221238001995149309852620409706979732694342292466032821985042295704463366676370621629382000403748899803676303886217395532521688498940496554659282402000718663105732412000991342194063988681046427814936012744510142018124291546716058289402775873506081796816417817539894204629956902281482365958723265509172207077459876177373568540102385304398253952400828309710326928646303104893964277991267468852585742536075514360269080736592658254042037966569977697047175868418034345682081222579984892699685357785424985626842692196520298816241048868722516198560521166495517679082360635008638003888036834717957104206640702474963014605039177559564389229364599118303794178402460419395719772952562112871892204451672781829019295903596718139265637953243656551473103674547313110713594601922231179122012013717959409746378528794960511358237904293439235252776926558448202640201693888748962690427699632044682355405390564967589002908516927632388242954526806747632039790635197558361549244171653976829149205342815996736611966251232169726287538028869095565838510597762633146656210737656439624497977323926745263665168512644964712417894974225807536886384597500236374068839609334261703097521855832276972985721630979546285211763361597660834822968092051406480226942464108915673205354285053917422956201142838826699046614728735227016059148210184165941215563632708143165643602971570501859642657145530630506247509258220989388646874155391341583891926686611401407204106121388792367483419606514656832391006006491430526804040163031734343498908914249635305296192512635113421426946232935307974236357021710343105370068212930986731872817062999274744309848303604950481894971013305842169967730155451861548609416406224598693367677069302036084634686131193942546958857487828121536824373392706495215849029848596908898633580784440696131170600439957824798038425933095666095515032151031182681080827446386077099362176042387048670261993864305984200611330869804883529781269852141957146162239816766379980069454618554382538421512669661649107934673738083759042389452252737604794235770233423548275718254199141828982705465955564599581475237896225418398062062249358592393458075986243622001994368519316519202069833844216971508417581411961352034613638270694515536274461460357042117716975254290033325194941693895359301276864018790392725439621847373221569991574531655567142736627966952798363530314381903898261816845237250558196809269245253196523715194924468178034664142036547602787339502676662376070388146300629004127205780899934805264167050647452118629022906893071433163021178814386150124176190321760674959378681266931753980227100080900010884425309153068208529884796527072360327770793510973400207986179857125902356784957472191723609556718727751696537166551191505970454336346564734872696413541838008199388530755982929595552533633408363144544014211472130448222630142356466895533283535976242003773637276409599378321760017630211367052187962559051578725289809600575559234865972368094510129137803707282331280356736303462536928783915906421899236505071596349777220090147281368020225181660113505161512183341065724036273303818792834268662643257943276356847878085307113282039535018361488746248941169266782896199868303875117334432646647893131402747337372323389498652630437180036006358248624711508400667989239204280945107517939488326613052121510121864921189015221095738201999806418764150075815408924700551379870021975965673855115723330069446763219662432657272521185598094535441964070192151916761737832819850048591097527828519325454793175979784774244786045614841698866891073021590684768862655135755339890942518537602023269434834047793786297211922355824297353684267900289440725499056187928062807857641111413768307327309264890012790722539887351778517536071184393666142640923959275243435523387491508821284718125617261663762186169672353052393853274280949756072599241945742328439256392198944825587470725017835585786638730074234621241699411535040026277373388938797235373817515360060098048269613933044221455230730338119471655342437063800361649317615782451327806791665450530834218750873622050588106747531061100077293010303573693607383060755594030056553469533094925493824790222140953740451725075249451603511443299445755750403485731008949624394380237798149062708513836694235714437906982998733329519999748271246106074871517013618970081283742999659374621484738027677689799355408957555237910032172920248268313126132718407211487722319952433955279073354096126105815291340292497734116024054395285374226970430446641443940707081840804346335114205776665781297281415529408263688870030418461780028835410163256550732396104092803106642536986469589288745212555193643459693028698770512764808276293288031863748591786855125296153488803155026222546319868037773253427848932922458345477887279067642369512449103413555535270557046241395976040629388016725633118227686754981505233519759079331953132896379395361108650996641661103284001590709560251743885525649952639579236822349725487765118066175081162649726647215801152120543054159502932321320534532940060023367944496747719017787796309492737274137553421451713912694069501859888992278055458233213879760978946795091441575908442724918322180000781768026459210616775033612908580882972182161628558588169876445303929534024340575270472107128222417814581331681962091429603448933009171407154159981347411983456134138086004273854634176692376489715775261673033205256668317084676432818676715973623875191910468505265896701324269452011610598609305204569865454719586601005671819830706332020050441680635912240367163927777743660080834977849065320923184433760311985148996984944925149149434446981759484950243745049465429941125528665339244336957853138950579844626570541368247771708492026539925749789451658823862619317501101358994481709542870076469965189759790948539041188425257322573455287206306615828715907801378369644841704739041969810514741873303250244933673246347045705478092598261325664071735195470982346164487732988034645274475592577006626734593517833758306749415464218255914139763025340087474432083193323331703921120619249381236832624218013510953633325253027142823920884280392970342304767965750799414663196523274432578921099060272165434102593526039635080595584622182640171956772572756967773028401278113316043665991457083760968234385856875957588951598222075019935711611677021633282914393803496998224618231686474647540206263121008115598621039553948253815526622467851023449138168634046848295581740110195832652105444053904364115425258789335931899670224139895725777565419133005683673710931879909466652639006109271059782426859347225352348127675070972944934338909728239065054288991205055753458395538495559628643612625108707096366520339551988260916981694148353281856468413908205625217577299291667816781308304722747583720257669056678651725490955320413257317053634522453827197906074442526147790806128893085197868006487803655093284452806910255394438137976316376608119885011870352584657085948843805161986039461604658547187534544892698199023078080444627634334747304420924808745434688915817568777815958955755398334311126714554660317468573436223625025626648336273613411423765554686048605256002611846325064091810141660241169755693843413181171126263643166684973403666821885202573398710654623149945235730100092709752466726751481665833206171246616491423620712867925258122194222048760915284379422431478708888031003133031277813427652869997457291628261112642991014205102665068287747358176919556716667953281483879493605145330982556945731763575097801206972041662425799376676716419391798133066150846660032568130549766795128122370057195184646727552637960021780215849366717191056399183072249662673610158270267700447233926031853585488766601765234940272162695880509533563006496354320476609873866261922168702609304704046911465891422287999707525438546678450719814105114700108390007445960328494552952937616680912684312939258500044806339522622159533043338488089672611485558052056305749775506510289189712342425991980693484404025300979420979280113914687145268068662720820307729454986853120297046576882875561342644629515929603202397188222988743423967151856432954926546732720953647927895837208066609006792197194666880140592231602304099542142126612953976081326777854412893768447991416656751792137230182817841557352894780850833065857099360922015296609822021515858963330294930958400382810141271719844869199665018219034832139302094501313175121878041607501121018251026198895812376018232918755232797671444870252711002266156724975012439880685428062688532514910271443203163490393959106538775064450149344249639852876015020540290368061023696120198118354006243104228291533162649816905745598419760050469977329774004640247581108844648158681073340293847341925560151518416034154920627989532746353664907969851948882199327700428363965288812122816055330509542944180568486820367160883300918328653725883715085523500304327988312572602512463456553764140329789812647490686214974508794173896839595185684270319274393334163452796692817027832842055257662117706847222372745181544999331220377755347303619876636305115898110114216393693924584045735352392618071973918240055156668342605776137969617895913009753842392106809147798536439914005109694410010849798117016615420106690866705397426866784863768768594479473671692729780810614275810285465632894187163708209313125328549317014022640795371351190557592558286122006164452975860208765169902409811834093003175031673943978529436370519558192058952324349238343324228541458984526361457688947616702137462253156752024170167442594024885267407301606794735657518826973348087262240644790265575928354476554408052326998386806175687034217895894055529279590097606600858081457483719162971095198563103326013170848262923727592703899318435151706428932344923232021287774011425429883073611835790058505201130936674018720181706940426968876711264049120208381609830444324651640050670343996078418696099921013228136522583380432196286240035972021322130974352642445231621397092352945952845644516096566386045815366520728683365755867446396385359183898675917520551005830419712883356223163460654237275314497793439849698108962085090450931369054859497656232485398264855909443808782409341840980491766367534307339301393833876801956994816507237114586875981260296308823172347273799161054411592597007784927835262652139012382136925704180766352725269581292539013239548943956713064142912071293390055130679021246402120058689737937881487883163812995649495812772928290277825934982431702308564693914923333000535116076543071503931787657748961008706286053574947536064936911444083520270089225303149598121452911849772704301698484227596963134777211948173456684049250155767237699430640235345030934470745509471249568194525289558782403282433694710124874154757539391375128739670951490940787186595760207477191195735241659279601897610203513626877557814073553614653703134629872121947514203855245278845834313098935603496140452007711975304410415652471620618578374109359360910606389072312617413566792892154799787096020226076481589455638627317000438930430537978074676832133461067061198221998353052547681549924668731319290802520404999053695515250732375580222235417850535865125991083145816460465049586672761108155920047091595657361002479070493090914217802288203029801000485804455984650294714904175403617159948025377605179505453764455076108867946691512828084158701229662818609838612552308836540518689566325232012835681064994081634104213441170618449922938191344143802471966912589575410626405720621424276056212629370029110789650429221399456635818699940078133528551541111284052602165446522250359528813629422357872726849509263624358467158408506715675811932426221223602038839811766283726807259828510907259044975424503925648945116432145179165485339056240584987893373712142355525122136487871254288427958692561643481054513037797909301314820161513177018376611658422806216739309166842044381567505527727565359025394478856729038347339025868906487638131876253988831098236044279421008592849109081319347879778303526546174587372212965281331032982599896459783679263326082417070527620645066166392268551062202650563160606310008082222687303844158406872106186803543684340437990693108513841635459074506219624895042963741206359144089505602181143078972200211294746684661301032158316986482032417612970329219848527700176680200589241187892849071088953408574153233186000305974844537477517974137364040802370615125873771639936349056435365286679021020352518144159636703620052291251370332843822487372196039402632868949501654979668135744687950912705200994143541817256891095256591840540959273466524028955899638724624134616143066141173746080941913550546391162194983671045563647072048316626778960389100330416699802443005780619758993823087267606296080624686575289423358358778971365322513213932343486360426079874776686751969710656048077967905597090389191659760111307210204679911888878806601909417172615897336856236444045651094790392717350716382773945787533253352733787790147760118467741333388302219915811883189300744168631834108721163655851762689339495519387643628344174088581800726910955866383084310334494367722013710516317630509231386771429123137714274913365411731325365843061780140292597543733871753293066569031415107181665531590131612742934432977900321615032802758168273565111630341589689731667807067028285194494559698766995166225713743707538799826816771005403565811950217297753715169506610200392725253975962926407933496504525722006857625200640521669678742315233553819427059086052004958628027155118764601473392335033024920510958298553326683205092679284395224588459665822730577628863797210087462955158062597084397403647013919842004584093332997335667613432970240254100770414976380463431542955637293848203867819312414226391413486627584342163203754881896921172645411797620498928268541615280448744028673665827897559546273096611979238971366699570603722934320910804547717881914745759679252894313703055356377672539421561798078901203001176177298513323637954227848695172418683514191172460036329579898714457546993075223539358357367252052048754433413684330739368064088938870704866859925863450169077077169571043645761794512072639340135785935010534079654204753548110337488973401328999593534560489971053470978615445679493936649418038994353447691277739625144508899932457471854739732494232420474774331451576625801454689722009766129507855300389311259685290240031128358519313301219200192463286531584005861711824280720849221201224481132110029084583412343745183722579524998836855434327133409732322989171183246108489817488355613603966909831912974224613652809070900802066699392875217554409740084935237395685542282920664252355598196586790104487677653403644430637795530421974421764667461644923471772385507092810791204855014917608685658860872568515823744600734399900896510703455381914675245847325740499088434382310944287357095110365340579636907303859331214899970642353625979632622380523830515282081129671050910712478395050018155277884708795958040369609800076232298431530109995742168055772155090565185294385559040975458501945624745228558895884056062135771311059839985626461660702519380301627191874824184712890936776968450471676770368255993000498606420093585611420079401367883513950314194011045502473272128738625380723405977312477896722073471641688690832032076096018426475896818302027146558022652410950907104606017381253588605520040790295117809681774929861419725263503483114662104684001569026413877748913799501778051672772593331646483146128544085146837369993215469406660537909472640392686424914316393208851395642184155741105929274513668634976362860043589883711062548759340090374348293068173177551757475533074500597890212417165298720749838674193928291070470221570595641363580626455280686707780482913847970686037109808144160863061695820537216099486970139078347294995394602602614990335939169493868470867914387859629568123462336870847232861016920971297779599088537076794542388830990594172588012447572474370869206886180141073224412752111314092093512617374410242852304831143436147126350591790481971004244905523993241492017911651022455082815699987067336188035356738274731221977241184408638354487223560550658331096457767787042564199616848802676851532367927857005930328182119973230631418502846760625496167483135075086904275699882164842230304534355736086701180876603086173909114317813714271302621384062586472476668327741363283655233429865632314378266271264189428322341851458496898597246506416149955375532567522542185434169253701619028170628523315873075158589863741138340352182118490114060038838777332389802552334703956474538827659998463879041555056673310890969316697643522567132613782367779191360168803162482509957548104612947267383874279728721681218874041439023537795895101438337171447867113294268422629882333567036842640585457151007104374818239610547203345827954656389098541518872380479328104127290586775874537162057349365407882534621573703340884772345483725113035652795019271328990309160491674009517004456062198354292954660772826767329894474545136954004792810615898651190972529714648990846626427775517523523144931621563363943412179711444114046618719000242608841877014651035439224394061313731873073870952684717255143206260976273624448644599940865632287799405334026319525512175859842949097680453511394488992672227450451137074938943204078038731125100337690822157811584035290786535367510355087899062964467933879728888667724251400469576643277106439504799357803963782889184092405341046005052165251980338717495827984163748227798485762011338917304884811162037162613639583824655556196503132162988933068637215294154969202329714716199823126951514087325452812312445614779888957051420212196623729554115466049614584534896191234974166535429081387026072335603284761739886493960369694295878891597219730524729304531375444052299629585893759724507032422965210845879766102868353896240356341809501909377976827976990831359680036322959759763669023103030461378678222773085428526525446222122278068999537285675290848162187757187025240784785972068005609869199192050499835530443043285144970788768486132785122051857074873974672752090885218473517120828526504122524466091571910564833901870492121158019443584208124542390019907707879073549815905414300300601642358377595522579266385965133547827314343829758435007229242291554857304570951587886992052492116927773763360197569157649243214368338307290524574336936384875158517829002066125275544066139054529238099307353982214966378522514655922239437115861700737257200616292387010546766647100214450422400822350286903993189564506055441332152909667965201960812046446916775096045626803972683091182871824472505286953798918000708106867024527588460467243262241919289073236687773266790722114186768032197997433863462444275085231876647518711444530950076752996572654813069879627604785474696879896039482097310052114082891586476541556675531165339989885927201487124364626368304138206516784329285807358321469643496604597739050032303159416761319944679658078230858108204325776494182083623080715174514973060033446586627779841210100000800107381324877152143836124828276955575125133428712592297685771150255512396736072522279247449920048245791072080457703739581437393887803343698758755441480531782631890765159256624091781456432836885177736600447875239975164438181970631027697411409318889245664815404750882299633429988371211015624342018245637305287899036823527917910797199084157362996393501779572022060282539972292890550850479206186786835752025945057962056903746641097630735088117741273567347557914707372806447306118395306012648964086555751914100838835547622689241922743118459826190959958031117338711843274304314305422014951069101389581608954662857818588975018447309507408802980617071681207678281429731627236598558164760147812154979195046566702323404529642376689375402789948532928014707503168915513105124898938095012468692882266710776863262175229626515397117054878249920953953958096751639413695887075148405519146713732850385140738761472513333313348643973418098651266609748566030057566241268834376396615652523287856015165488132694309056232252044709726237352072812915251843539393562157315902994581086569443553452915555472794751557670228432845692273421190955029073042180833610108370352793561704906604316159691363237050182966986172815205077635843289674375352606538967365073819416108078073901539381912691321738051858488520231443686500970490762565137828422152984941744120810967050939679084902591165539234224931843841302698006709878923603766238172911061608475291791197603751583538221700313351708314294451927504089553855460204817692010069482641926816213238065658437405934330381890245520268420119181168031237109444700982263199865337335962299899382871415227317407844004815616127393138368921426533188969682743098530554806919874317432253824662854754733467248130716140541660147308996344952313710837697302622033710798451562126301645381907917718271404174870473983279506069506128042231694975654846151367885436585163377958349861287829896229655405882866052069688016038126614446567256133855413613122267952026381269189942544084929385476212801980264757830549001109709592256181246611071239928500077677740209860787303928203675388566015641918032511743580903549134676825064892176039380064376063537046451986613985018885742520949996368135407874525954278394963741379654930075770463388218578402433084028174479751570453704880319945498316097569316847049616074434458477977469569629743543562589287856881354268740065767564917208267956487305806991402490234355932352611532476765551343961557844918699980446769019807422052328237692295815787101465369302724572935758180219817821481326408912493570717593409284034384955752478744413954229846816794165434706058489415908001479949040629744338635513246592812846284421169086017608142659863167179923078037568404296440057339176719033407657609519667733010690581322101382103827212973717885920375056352827836172279264219003462109597900455904856326769738508433878269278546065345790155501584311566149172248461470862872467282012259540999048762088738627232975093362991151406539190910492188347571801838122701080473283230661987301700869566569883535331785526127245169179819090949820802244391652596757070356169730697559336330459543865599852038647789612421665350601708803248148597953493070757152859532430091187977061449543763023895621068973786871687971533500392101474527317884158054477058797997986160779652636545300225784887004931256476257238667190791224406326675015724451724651539618594338605231563168297256410739811053013891837843610410253329937585382955073113138937022203202053043815708565343332490878801513132129709702564831658177807632248364477958671242382261311885118189193197567833371380678540662798726726658203478454689811865712849251881118646707852820843342760309592077866431831510339856926886654183233149501088506714856973040718686240740193807649030702079880394151020531885865296133122558534814722566897829149209625811592198403012755667305588827685098794167274815412758154162705882096825643790614949084008143763544937235926577783996062976305444598258379397567992443747218940273457962163782552447896355283159870844069131449438367013480597225751063262140610672040813306986481668635561356538060782409885267938800314503268437662609017884062920352398607995983998007877612572385821174065050169181759112147885760956225668556710877454328877151424916115641714203056453106155401258914927886661129297787494261534739583603971347045126019155984123967440966924409548990550550154041029140858444277381326321849474400539367141467806691549168678103831646560419588030939783211934121800298154920858305618786901402914570952818707269561895381247630582888935174072214470127020463243298614723826815767936064088653138584229421626007962085586382340898750569708618281710927880411679457529391910108396454560613059685700250667995307840119940432854241112996039232292217197000732642636534992874194255351692562579992677551969738708273421221143504149012455844873849879217989916449410571410709992629861651758191092357311225452756881135085509386577879427077976427517293199851857615058531899930501458585067827465611292093993321315109626125019288743077739847524783846482408979177183592841726990114295553000037751671347307279114289585975367055434323270995258668506373719792522440919881310182637503755308550024006438363748348925086049446788681826561021666108298699483738418077908688412159449746141447940580025929206272479216691440319142123325966355367973092476692323641997761964664324526299615451682949332081452072868640868924145270179855896808676136775901955691357957269420744495783805688729956241960549688357493073639606512188182145715888157421177854953309365827517211232859123063091561567019255161961343955442305741870404739642440333898367733440931051894587167233707645764810681296781136263273441479993313986904491299199524245820164116416079287389114152073154110549538805686237678397347944884381588894221655461630631483248262986560181892207075358262072236071223452778594452485102861374841809957790624926445964897263732765377712704526061525195661856080452817686842240843596493741938582395083201606703115741423068014749880697231883707590171450383898029195967923619284863493056598865437984457191721279241895959069305153731770831914982162231047931440025168284861011338031093995034921695684177438372446795466441226476005957335592471498050750590649420877108685011826784080612531409148290836431011954497257716013908807271054513325760118871471345896596605844195140086891846844858975330420598431348864850207218795640623641276844660579116849968336335686522219013267811788288000355542628114396271436156555570127567803728417264510318044497540176952081014047970300951070342426047806296786906940028224821690058771794842841521364940180536094386460227551682053724622957940148954913797298111098172320354016831570901210856071233837274446739240373970769350209293764158157787202154553757198699603312023468572121353638589567031996925076016871700009563457440894796148366141713285152182507201770934190045594398281758860350330033796081185098252540312993456318269280264270297878688317073645908914781503903567481979201372475205829332138858460571090739320645359795184197500817119635990592553303027228131756132667016662140439385720577502658150220017314688017584425060253010821708823415260806371578071670144919735324963916982877897083197958433619633846823247585281054620457638871946511321766249866734210889021987552782106604944633113054096014569533160294197635890542945532579022361867768053808197167293875321520403485122433314653576835879176962948350494735997452706593437408429870987387761684454042711949600217297741710947628229951219601622653819548434014951209766464493058911397467732358903647873946335926719720845043111702177683421114640592343012390437645355485974013409689845873137007084781934650063777307547686324064229128869293180317727316611669638712507401999960184173422209013445923094185793524639661365233426821179249240329599281837150200402422068889633450106897844722472911977473386708541468566073335265182664119345918551429281272229519790745446393081476262061707669245416139880983134190283006810600478320809957722290162521001452207955940349544418648257826799762573870795672932599771846476252445727725856951717747652643639944126609143891792949753117478303497662788305821530109256282747743554923584840831640253912449931233640137101044486606228695063740508822163290607347966446676917403413605511924252345774404783500827834587958324418130364302852894380368143117771485660120521323083702300954688904897939692360856816828529137899343534274125017264371776689779311072901274312944851575713068951519300204957037721363005438944338665889696349211624411892092175012614584490450506648631367072918511940546159206518911197836082771575017086676792291156532008707992980749199099504733160468514738843099146958185539074744374222747007142521924450208708650308812359840046087090284885677450933481037127131315299650792522071525060700111195147237325068329062938210760325466907478537471008441139168088206202102704476917351581056898462776646381938677878459655210806141940683109999793843716847219829015573712528491933046079677017322021837257473676857299893256735974790919412061236166098437604892097677774020425954018210908575322729995389491421626276414070720034942161638105453106200121854445845088861554682702332360664755355476305633284567851801538431447781324213855281649903971583023952320697543252779658277539602818360112163414967385560927937663599313966154086568406524975206991735823793760729292421939311426218594754410646517683096053486144543685998727057894725142310853679010337037613943662418582226915550569669394139799547452665614576529401935510906329968508962063427293290861307555136847446226445106605476227833845128516839202010825798491252107442104353221799971540246454920762210327218483674631076579744880519964587055950765645206931907526429414913724273472747795830217412726595644686693011991848832432877180388720612624723431190115478309298398669522866655206854751649810876147134631772205806902002531018073984351679678681509161930431290804810113416107844950234487290308043769439412754684000005297961993205437509640739364541966650470042229549337738704379482815015180407292822013142677197824615629188055492642360423815857061746318340316815877445337815204830109801430823629761594511598609486000704683496696357661240320401615917712837569754621082650782873687262314528095481653219320807931197276253226880969475912401566455383357280052997425287486850236097753637995858176376580645471728091259624415060011705628512753520589247817580316040900345102673672019044888704362817080696376598326068009115597594225431587057275405516780167359069664700757911766326503960029172057327043321064132799116582376205104031469943962315962780308263318090745225795252041549453740614531359203271360638717988043963477740866707163778473083865227078987028962174864857571205078918735149055146787395076307906153575180500949420028415672291880061811820125565670798369889205670040009048304293418436411431354879384993689117919146941410874102617778609479735168548708640710654333234516475636591193138027911467015020248208329282445974384176183266051093109166749788168407200973279047363815499163665711164841732098455772178724417992146654050113264892129652194985647204106641921165597974209185778994915871184270988415987770554263490408516978516250905804788990846345350115797340280759465393542243815805016850648012875761198677945391968378585830866824268701891440169541349630039850086118785598956034273698274056780081713280741186470134114488778039494354625194224024355182585941290231572420776392599675458886125183781056273332950007302806440360133952323394981860007645335521104366943836361738236085161511457585922821542058953578435332658584979089145275491326032976392954393074811267340115732091230645490092675023302173980971651127554130803265896320305523851485975121885011458233840656278591648443425631119650140775322038601086923385885284821940524156362356864958905053858540212474607461333393765405416112244175916817969094809550077230439924780599292173500770504140688623287682202879476336920691991475521468033982838696527609485764409283300056570871970402753203021008772525289510234491499679639322733796172096137602100736291370847900098308956305629794154114157562082286967565526363933687955527649154446208284715048234949544962547874839919767908149002460259877399939023216147299022263123608873784517905293408828906173007716871595186320417569521090692498426370095610915148080204053566195147342606634623516808174468497777186900048650269247661948835673877683993577669741249762892189147042316119091335820812717755696447512609859698539396258807197452038109128298271895456953894158587949410491657478643125900386287555342282087783885657619407426246830002405890548892841666960299238399943581489857259129638113476294083681332756211575908659429884631294337279649909157301966033621174991114173605097570060841008821734698286179043594577930839424787748140637855185849236593134775226939124804030223408276860596755812862294444141314235104070306674002665014498418865880552424906668498178269233564395446743578771474690185112554063342520850155437422966328216648007334491038729368206125824388172669086795884433197326768924584389831640106129745680363817041354963466319580382191592717512483095417058804415548996009845571317874808311057273583525043697302498349823256796256464855519304848056227058435082301777722203888511072768259998273697432816036177248229385509247636227312918831168487553533785269299678456457431425405618242217322901473637960326383738710260460291524905792217791185222900493799633987065234328477183562168508448071075015458117936834931451595874827211477516316484492300985151079030371257429278865778015323215754184895814663159342622276330841481644396260175460053546229987012226709654860610467831022861768948946819078748909214475535683870667402933873783100478986645376703164031851167878581136887433544550799654208536511997646969275762050290088900118641186559940420282579711709666396255535028788671912437822151748066069110306522383276163450170940738882875509476711809478326161599505653521415341032592217319118798507795097285071968531034805861043530333814178577476958059491385355900214880029004168705914687670315783561801325142374706781368087400329376361945811949014174563630657606538391576101930086294479988885343757664783328512809534382189086210930578972535449117231862505397099492504296490026927506450394166203065354110899688656959644686459507727347728330298126778043840622513058168239069913171481958633325633659286055667637127808981464043374814538846040606003697909889904574245305798230878299498127723927482777202206551121663658856750029887950567185427641403192465153378060350695629402868825336132040497198044715554428113887849272899544309839425802371105673902894522026070872812886221218641324598899751595549674036158521922167740914974790185481732641174984622298852117602034066777898834375389483577533750986135847095148137242328825239839899099542302482884979594485124966691297748879770680188165265572817087508341903323006423507080746648118081975790594996819929113844141666989016171556898167004674921891789738018061874148593430418779583944624546991407331524610299222274907471920396921100683533198028915638768294941344244737877873809993144882217675266479391267340430479214025025103276492761617852154149936436686603160943933599204393508040886665898262147527589179074720399689924446145481806885975436382280134869427243172642707204127808261152181783315208130208467692678742771490511842189832088608205055515041921502950629304174956956394423791801016427082312519610261381015664374022749404419107307012143498646352469013422249457281631465432638628221293727335159585484143767595545541845961274533574197543296786555337568280522878139782736634406529641868225185251394439228663671646263889070846302627628391524967381239959442340158529401422274288650251991813846497339161179081134305796946553533058941054854285286415360752107780533358768408415881390541110545832213500709307473429375682614989472876877093535784279671290349150661518448095203653382126046853065467117242907886333470061207535930576842584869472479169211443897454735893116929978628989535499882163451104416008315353731283622979129345683273018805845740100608024638255005452829793366220756877730551256062333436693628932176975445912585276747134000833206002623041842107639451489114753829445966361242811575821357449238023121193282503023609103275362012105446129162804785536668738864815129705611999938423182008539371901231708647904587802796934871378043022809097672031852823007260058993829098331544551077896530246529645216155016488913169399550679816957085161464541168403390716819593239648506903967411075408408726080641883063652824967378198432463397258363866288977034141639395899858571764492010616683905590229046565411510191789768782287157783671474055812941605055402855440470362825187269915830268089192074062194890275976195723492337659241474830485454862620207227377490210961660236104184760779619635914651749424901828486870163167857428117711962140935234916454949910785070964826448134310296758400987464868155528496537962744935900290471859945830189018315487680581525928374184579346131784422554704406269809036853494862573270077445433595698771523243565028975289202728366932947630603893557263111517816583673902451238240185722853383293487812804972991191088420329973359886346511432595872895498398265716228173622655225219017727365529654154562964927194850850320873820025741207426222810756079045456466850895189490386596835964070110460456914124015102143020925498631051201846596106863901596996943828340297117312731503631254781946423005097509931975577860673910161594248091098605572222927910384764144598584742173129214066029339103607380185894068148377671350368438360211121674086741146522322614466398315044321928894191482591926509099908970283201684104760798584085950854360151775841536194838017269148753152834282441159861378152266250168249358100739498348394539573983881569367763241784630627565422205246934961877661078871295156840401473330771964546150468114524966229515767635359172086121926252175296340893101554146779200126996103506612341010110502462088629681260179669334826113946557009389673578013074156672451325628597041627523730679579249808879284097453472228551245606745472001005040247478101995780148590180624159449220219572469024654027403816789578518350732269988927656294373654550182718770728985324284283183052150649512435208354866809261288035710647454550388387819753726359819136270452155357078589722648231703624645818968895389346754037062399006190656145655108276599078721590040036942104491011513692395982602278735046919084518199643894590332049788366895662678178597227001187211769736546419871701200015190395215370166838245481631189929924497264322910470015736816123564165967423543342300923475145933598017220919653314077609394062428879122235867606604308813838886817147322340068106810226339457851992076278473513933974921665323619005248765596955450923808899334220838110865734402497012304602570801659907266835818088010005296728622428325240449225048718113327320273920367132852757491021723029178720632606173895477966938381678295442054348134577554983879542288728966902699700526541999930257694667474363396146487534476638439605906361282500638709060367116494851083739197249498287031062979970383715213665614269372227089364896086132305542939147228463748503271650441571992330115732204720960265891529731019367016198187783781953063209450132909200313341786625521272243004287114347265117101732055233533752227113212349593573464380959812704662376602350385247277320067462325903602037148464901538085695210845052592454000536920192024811221822279781506266874958913601877416006436961620639962431231313660155430973491054207770988680759717084919857283586217765426511951992324525883768220513145755336691715807144244848020844287281080804669404874155774962476790484661252043820326358865884711809211728859840836733708232666310081102327374945554501103564427167699616198688124294771938491698833133863304975519813536390978549863017471101220240914544864653427811048251193098985793654278743823303297136528379698643859171461352407770544114572580365965783867818619814039411813914187344492831945061823569157504225251839819152404989581054019841441517366324577620663488823649470098662664176662883205478295637734929616365080520308121645326552896144079343855162437315445761419426462944647689769034421379147797788370749388279160040670137072493881600373842114986676139129555386997467795103713411117047946983268154573224765907533982902746721819083287824726239318425143180438973025000547012553814029813148877489964722911019558286634442788307482135008679426378307092084222545652850408394722085637792590889238896763835111867242030850675336544009917252237900842670015412341009472729965632522184161831520950056636405471833282887838638491774420753295062720116057075596233020358450845534083458360323709628806341738962875962522335263484838027711759648285679066754849938693387295074194082125768100792827845323976774114932853417464123488648934909970500582043728760873725961001248018977055961959104399682146034708140785005717685444697732110623082087736536783625700420865535088068435095206735522655780116511517389468029058894338036448334729874602994254453082037227588653397221522292090047287415776043251146952388209899100901891434388273454595014827850887556996900536744754143716724106053155089811079996120567877067564461709402865160735791599543015502376063874054483568458602685075734198283906727741508668594284064055922121354710725701189723738830676163083235402838669690450050090737190418904366986817630404348257395075844477676155873527261058127147807948614535115161170707520254356846277980050533916305773250918663205501397725837153364528199845225205924013944247993880694301181287382315296347150877368542752953439278736594977107218283030337451234968794472613699802422632679282729323359798139292560065423690433998275320576835238181728204217963731916656690993332231184169119849754491916130211593006986487592269739433575017716689023898094809295946159110777757421207133847662007672986688907147492713445284418890891325463314967618334572696034087391352399008155731385320988767089420213742322864086634294190833938906388485757860394484522564180033294926103236344252311766549510939871107935704927613293906018109591869101328057114550401421050932717658668235471207180622989285496587315059561794731930977989477225622729681522153077379289235709833481311892761229734970274608673536994498298751358376523531119183437024592068833920191051578208232993733809029453346705110393325134602771630057596990902116703448394034151842037628889658038733441579800714311936296584031240741611455649906958766092720085863307842137160246591475921948937295390834848642591682138594469065250293281787691298746820648174786727836926819843965508201008682768511755757575973662429746130967105961726101038794930222187120928509470445576469335960111632853500499673541581120801223254713025485045068279755971214293090081826519422188767123047542772960171016789336024622351601743966149521685692567570403068898357205017371206190997592577864048602077164274809366035460521242223508417123169258097614585093646348732744871703593456634336335399967647379101339723191009054996887369990775170813564983189087425490617160193610558059155994261286534940473091124445846015158642899811320015228233244556362493428264848064506872068290689730371465068310355915901832192855673402963102971241709540581185186437571786527483391316115385048647388753974967220357785812135923638990372343533825028601645031918529439781680980281411212003609170524427211274874628729878901635460188969697772694029834712392228455505745179698397210291147739499419202132390900490169537927926936192473836940246595157967090165822574668009124567954550789076119179700725070817367913910430957177784540315172368151387824477052931879102613265999126762758341904950704332307216014719096129670093254928320248693430353121022308323558752738419334055161922982420168641324640985656235249158858665075460089434110826854068015622878920720472066432528397373329682277945254991106781542439549899853424404362472307282872736972134996142467806077807498349653292272737671700332576606442156384236586214652599031096072042590936420244479248584522833486836533943436365626955700558618800214151195840298139905542136183286331269540539070735847085426644974608024434800349798473873602593014439375302040402177664333625668001225350733910996051016318581797168628077788859405544902729166047200570281359791680178227897823799105254365530993630728855972144820380933124962088027793652871389651085841973944214407971231235314544698827271395523625881997579472475742115441248578193459916423361404879721273189067454731080013720112435166021033864659432823592188082144967407981555495594232149916193570603512884187616362685028773093411614398935085073782327915218744324654590365042358875079026190348393604165490612026040823823795126513317301402576865413211702970623179957898990480363428362961006177654953451918595576642367385987136778359510476724414588315397567318046277170966741730478841817390579060392094747425169097288183727056127200934086068884773527960958236975484758301464303684715073533133782889931318360045070162633357515506425512244877448936550014497517830730470948357414414378347853084314804383192098363388166261787523566173281847015446299204122021595879084811477074089477072274291067742321349401196729538925197508798955700682246996564146875781969793531182106135605953711382643286594137995858368146541815616033861592809652963883179401592728620930851996078615700089574623669621575081057199071943915823024689063381854477787564290983920388225992395368461463434503272935312658224476669456469816798858822031250524969853432332580081445253790941987207396100136054701091325269985942823429998900689410632864062409089557357307467008935963161341406175829370244118753981050368815375224247137211456809888895414292934953751059433836714021353487002669241729129296380259939388538597418038195239257411717221518243041003636731339272003518230629838190931779148318533441554836904498556754887439051729775245102565547402362080484997482913880562152978997763915373107533463759073829679096667361042651219472396444936891587639859397376969816815652780839679668774726083720247280782588730343678243809440653711553725658786205592813542791538258350963511213289695055233817966563071422580498902904845811812728252432464883643771310516205949986027631502399535967463599872979326864945119242105722764440948264792060697036000707455103457943990839900766900751495518781356739076690073635718520852317820069928000906460317709320414627919030221273046279747605672780425998366344615097149595998761404729983998774055983877302804818044256973768300661943480485038763811250794894289020861750737365173944759623183029961269487400514734793207995861373015635985009163401784827235540782308668077344100343388336422092494327936324981440612508824282640144046005299111787587468559047325650208332953001418554810973266614910920607839675203616529477987847078662949774043163881975385302130116330817390175585441383520533957212035031794009871097595515085254455286464373711909067971420756289385239112292801110216169378004189756518618512238460396412344066689950510629828525664302882443126659642319433583098747221452613593453701506548494610336874654987087179904809383114916853583161451023651400294711258309868742508140007342451285014632653053047267806419053307703148408743684971382778439339959421202977657327600661999045109159890892298484364048297578000856783965944415871884190347455273115891320014145220232417166963884081024058623233152991242130768430438386542183357888588543654081820029905420318001390874400564094749156631810799604160579586234847955061606678552591324860723357801447476384510118512569907929736843354498247005448741804737568597558469288090437832746813397886669878464974076000509543456072589416744385469661349687158660026041097319547764156414228275710963009700563574979936727142454944939536828645249965927787070927097599438409417237924737072817203645131870277309211290471567945032087599114189086976313020574581640293050431947467110467152791902335595705800942897241988968386227835796614348713756035270177008423992375098486060281873589095054435409419239360785825043041039271870811912853897037995437120829507161231188158733260893868149844583758627241096481045821191041656458704718788913321139097059375088309292014479587442928783594434062951933753492890195762156574288625981791774230629578153709233256355207558488250601649842102307259341241849021421968077632561128221935087178250669646350620330415942723755234855597361790972552337906643423047849084988319563413045468020939231749942502576710187449498008422645886265470258250938553820318485816317114548031886621248111550676840671787456878870203472692730515062373175788935577546320332668858922684659502892361436690070986014620043909304435920076251930872850970813721060651378918961747292086701313374180141044395067806109500787484252762038825368883003229541489854037922100631302234657050554209799172465093462056569905223900252219627630132446458183357213306963770750670655874650356784801194698067962526357536658281917849356729326621465147179174777970821169215607984021731297965176471296175973076171666725727499584291623881567189988734501775219287489662917217483207724241796945856514343050912150654490522680212919680762973722223919283883871363486358709419311097903205394547423003985803649209239450333919216097867543929665384080536814619389138385707173753055281783558590755218040116886720011357932534350614317763711453847228424449026019016950721180296205072582081317153925986200838236119898185571877176497026727266318504505639704186225997669896942668945143149967311657153490017726771570113433709478393009969185333834004405003493074568372822809696137969470770392187431543000237631933886632824155521807703031939438929459719601636639218532858852238999716440925003519961550823261705534914205656331858729336952282961823393964965530422523495779890218992172192116685984523908564122041801136132858574044635922630183376551554955829721998261708132462738753124866529268133620739430029900167915883950802050265415516441892801677095639369272475816471463835707005129245312249504530130201334313969343741595095746504112845659955461087697308635601000885321050192210552290423438868899188332150594440989230829771001349226101795282008003065428224929404551778035931198210230231583024694797033314985847179711506581775536131846338561807170330314519285712946227867788825835289811820944912048384045397378032853043268827691334410359550342167877856932238683809159107348903591134619333666376065367893283709684951261550357846019574465594894414506387300063511533791984858856011500695319483400817994008578160590236743865916213885079907377001753257144788920531784902384342806711417614156822051767581737091048937233594663081069336664048001045603059537989224983184589510614515112084796314795843247855509606507008340693026661361054498903559813141099019133270757866268146178202875891900797074928781822421270805344868016469323196798325707273498539186554393443600923097400586364989699218339155123122266602816537108666579165114023158419770383149432672124306449566408949841879381584050451136050385962144025047275970023237045009938376498189177273894659989269659408685170117125848669690435067048539404917732452924998195093821337574672459534092415354209998201306353439966137346570335476766655066491817483299154208035812246744483825561568346458871284679186392103489023824669825973059271824102715712258779648790710660777556669054654073056140404516536351200507035863939396159999805735626851614783447392098059187122382790027017804788085234455630989433874589590327578475994506221761412011402741677308368517326875077661574101516371775380795195006532588804890192586132708799917946831068214224219209095384472014777695507757601050296535608875108587780591576378024319652681881124742556831645008252017941101146027215586316119462182034595586627727885746173518966028526033902945697892917788197394663914174944867643246836853128811883983918624110879830863095850895891833635711298346649845696342584126580288133246443207911890104137823271179802097741974456931629459445779160436986128605167739323722471310517247867346134206100134710708412401097923629341285891001869413535710917877773317580255559519828937327149305664242394250434955931345516027240847614536970360444125243030278534182794236901415227572111459217820939725215615602968830835542814535774136171098544786683694885242482684807324386808669365459319954988197588755452844517496460769831368174655503620120826548603637626711883650808324302618232176075354613125554733303510910029325099115004665583253574025305111250916196803683930429046979380670996276711499710173661942568180482908332899620704259269888026873723264227941220010611476366596882990070212571221635193189219860087653860595171145217252198591572896722593059151684269652461046499447824557433246953551040313824386052210837100383006304922481701622789048281839854615644213085575196143742545256492174807246889224216159796731181893028490341436914674142197946970980212557177407287225903150494577031695775934717186114898680056275728182873804480505571553713407622341775489848654327502050245900165125049051935971992333102798654455062855174821618257785346698195987124430085733403358069841001799496386134080595756618598035519210441388212156970169520077863881173718890836085814116501219664670800275487296192316898918160101264010637701205492061323556367194787728449700543046255761564237241720464812178603436657579440646985191041375588804333548026832325902973350366517656698890111592010975072530958522827369267508920539930724944880704371821129807313931196202388240231523822897216276251172071348214988944759617335607683233847965715836959924953836331311015575726714298784101216400451140878380875348021848717657625616339837152357061608589801728713847696479802299049147868510983024502700408064933969700698546650788149210472903371308709840784154133721725701222829523208544747409345508857271407401760584695068943063813955162664430947129620719455420826421231934503599468727826690824246647077228766184625881380597308231753002035174912986148227064251268778796106511186110184917610843507584572069931151587630048411162210013039667637397769111039999297436101552581244933346069785138955071932342419121272040237020191227971214907446255615454679023754797923372427356626914136951970872465302878614084604146793976841440788228449990396007267374654276051974116230077712689237628573218221922692116239091226757774401499114584346830187156499316961566953455770187855002693858993170520384216032525663594806367543587326167376960571347780904337406013509736851907631981302070602682817933801232292815318815992426786103909070449072686651884449676309430014251054404122021012872901483414869264761639149372480655346775615576625832722921881607582130358082258040242919644228647940104000887013876142912345634681540358331043526434991402112450233977989753709566284123794172328553785440041017097004997521506600045751735460041740831046007037368039031366687119830897208606384597448886545540056947999053788127362826449556089126186191805411716562603293056768347754818673502856802473006602463515504255967726043606179660674995387901027923313925612698696565282319529320847841518169012751821122695392855886142434475126244365493017551029834401007926740400786409183506300347763262163038131687502164644985501479389144580382270178056922198543731913848888048378108213418631534657639355173034609103555292444225998814442522162752809270574281412227409745445734523734908022504199023990550664997195163049054646584191917939385130802300448532263698491381758860633374117553356234692854624313866705867428878157955364918293780102328860247945238234659064981049261548225042141030939813815803830226767679458186086502249015781814841143929387103244992891340582326114784272080936334044172372467708330300031500473292645095158278702644685787882736903547308250269589458638528160576092735643650872226268871199965455343747347533348067305982983391653126090542656110268440078096706127641611760317042218470325479453269825575039104975084429860178455227853148803835835987725439435538446665889005453060095633841093727585289003351856881921409166031615540069652755823902916431782658726183647174003166579230023617465930133178618984896898284994075824287183103508467195298201714491110234332691588091545802154608104398524093923012380050112366198805649039547344608104494446519057061502258279826944341443261953946010963397116521323458754130616730303012733161763237565369943205288165468835573179035451109782618301041353299144396325188222045012631275027765274766561648061987959219524610922667098336912235308614911886594542626208083835013206987374192580738377715536717044502213366105425754022526159262734246198404383117720572022819636375921333218684439546231307517698946861868238429859497184000904144073477836689309421857525149610723947906084649366829481629634211622316380200979637025645563700503756949656523382220872785672526579874826719893873958790069582183990426922553788561027669564774891567758293282176062693666822243226025235499188490628387655895405602486282666108957061943018471570163145493654056800180866785944549216120601800246755489985911486272204355541159572885325677405184115135857950556494298930272003503178969133532548765580456738051909364553568173010055833443311360757539130469715880219788424902428362695266899708777618483157701954807524443283315468695268502083695547622832183870388791596201047974881627784738630976977312762422874613191933284618790889454491388046249011828057028343396915552650296170009981539721804151034847857981079690552543919363687109246190647296719372685078884976254990257771255222731141393709454156424222429155658630933963832185340364397089202564975341109810919067922799872276759059849168196075365751555624385287939475398939732641464931204588386466416132947518606931948528932560956974564293706827459581308663725005455792549080381720703057270714805723032518476734227820922579554664852913725938172552057615095834283641753196046083289254363611708153847718659257044248851417395171615560159939305162922503852013004195643512998644598723731743877026633518497097077096220563309125859887589555147724780602303997082461087086474707978530599518010337857465621701905809596851074639365157310655557228363809483827330144360741396121445855257446456536766694918095019345992690517913473259025784458381653246350548091103876791214874631212422452415315552733217382060781849168394981430955985804868569845703438704138780203590106648302112100132254536294304086403565687934820291876097841302596397093260452258595891555015324897433786633073264751321643051510000660353387990159604872785979616508352679845693327511724310582234754307891329696551594422987404018405497274153311267714554462697267581997952639644179261852222829827459253373931050844950154876470610107473883182864431138919338418116139956560136827942008127962481495976641178775086205239886763578443873681963034793078906148628348709694856056600735198478273912844610151800495995993861336055786881819454557678841402602975104301970042003703374408971193418376137865795227239834252809432267172400906689587622257338941273001545005408982605911896430388582447046722644396119894778383872003773618398949048025578787623894426295683775432091380501768760983803992800265298220403400384361696036714305890438850673421610105443059505920759585714126450404038062225207239569246517385638989637395935951414729979867542558301580083143305217498102888946928506883142209883780155730255504520501370853353000341395046784714631008431783414488697889665604050859122087838043712471385355675543871572505625760862410726336262139040392989222488827521300553231986371692861283361510365273816493116793092242537716554686866048829859417106239706334868497649386329210374506568014485318975445667755301438558674100707124060828456087504957435217331891608194000376972718930071402424295054262775296273174298709808560480543336934335029524851391484339638409752149553258914394902814825590342793469091130117211629844721112672551757101114570045675518155740541223872176394037216332013608159756014424724533412728244913980012472443769521539008361353278031504569730002758044242355089351762397856630401416829699393652562554020916637052375022243834770525809786039709928120525950201988443576484977743469311160710616389750940261093992209208245980722919455159553359773345217701782195633545197067836909387148034409528377427518417662543602938939555156563587388705562268110779615004403467688374531574982204703481928820327395802825154626864403660692241426029636578484614379539908127290420348590193117410929817840617628259357094985673155591270230831837940074945945055306100723450221722742995816781395302145307540607229274384698662712911147580480880422213787794087335640077757775398754885672705344195132851803157467624469246802978275067854429500979095034362902784376463565898620866339410952650711860636997953616509526926339151337187800539263415931769687019319624929066406941796011443425807031596320861388203463778005330117012136032023924455403933566489283852069443329469349164865470613271984319326364498235540215382819521418446147769599950435879141628459848044406035050013062254795395217148284169362344475541908283563375935506675121272660418190486595889341227976160242681912707445230077925176530590115918007355934906136675792988950615711984007741570709920195801486253507034765044506569257497984827639135989802328597585220865084053185486283575207457814679375159647113119155131786037164865351717217421731554092651846733978864616910408250001620293320872597209326244610277675580553491260013750009566646780890731289566203783428787034947401833902154534092305080623042359145829643973739614868388963660982462926678498607021854445506153271638891664180711543465105279282502643686838770537408286466287817147251629966282441829234211563124253741221624548381788003525197264669744931628084725464953343344841049706984428838631908062405987959851408997780538915903552656684448594568726766318159087044118384863569051472178259339304764797030322473423908163772604644913972516829173982125511327074170040175288953950149189313058988190309388985684150445425187094214663976378798749699414186764974484495302898380192552070466178187139705150282525321470561605516980028607765016190175102027508076841993679477657642781112663529576236431019405837185874201615497473964773236181312468720735627346752909119778090996144262031755954529692321177017637617171979581207662078200186251397279514038589210165684610152403814684560733072008124131065440618593263612456601797187913055482463928665062851530118485568164526551344598755037065584793584976869804034142297368545864847528132175201063442238151183691081091384947369335744092162671139223498393685603283811998823717064102890699368257935577419046158459047207506631797697108804614291932100838532918094866999451160879412742088380244517781394974409854269079090820119932572754480505369796098939923366654624558800864810248159189741683850122445090010963575863467822876855155339331853781466308459383327385862137173812091868337096545985692915599963564553686976391687703904958593447492769444103777536004503168487112419055137965766291734626428648250725563360178703474202891755107314477968389122677157140436571691227818602190842366566113114552384452139474024362371565234492772965621874782372554879661056843781862128193629579010618256491847056485654429299755320586589458334250648552261585485386086596443212257485104009159667367587132863161610166809736843248576955633976034093051747786270393493189253261731049677740293932613961343629854018316914004046343173383895830892780492791232427417209538280346468690749710284859465564114518707125706764989392974623811822757794589108874490529847693965493497831997363342783657639226329664283601593042068441269880262590199661832641848239742296442198420211943313905978273380013841041911106604682364628569193154761078515023258965861766616395447312987141348137604123245049897652547185103416911425957972232220019247451925269845047682937183836269418156816599182429680125906284953371353574654310158524159450311527877918393684525010670140656257763585154791272692515020775480652443271424912445065945115834267682134836027484554398394806924847530276768792437974229875801198757709536687834224624598585901255897336053981603604677906312072904381587955403691240377869989894756541324728206312195077400605739226258863206946895325029412930711858721884278515385263609306053787534329543344796926971066498498499537270610133110457210619269998451261147332228237471945930821855743019041996015408153820924833186833404484554797124458252387962004442677460243859907983643331459418260786530365589692743156842545255798071601049456646201370184154187910261667380478672947870369430013155669858419734155517288699620250064167373206311680319654908389949678267651206861788102694673029802317137026554445349166256796001634796456688993651843697919761195486990291705991923113291055839148565100225162841021403894856440391642299424864808409708612655570741847788793114230550222859244990555789896424908748887981058419845468061194371556180280053230923300541225593663406371680532623022899122338897669610646494289606829708563519842196298823268888730879295120415185255131709478039730132726526111036219788674245629781585009427207065081764107124285954451349296118416081615897048224700275772009281362691833616793953757792060499362636523861151087993341144691505342185335263055482746316458362033926079536382648935412528651160189513684851582893767579216024773572368539137595745641882269243194622875520507538701407187994323391140290307736324272120921527624541606804216329844191429705738405887467594218487759063614379643759161606987041288751068626457619473002032284942411833802988533170364051682637009068102360609926949664120434035423259483437958284835383618252287853051443449006791047591793903278375861746858448418044733714754705060783689002986964495665355003657090606170232196761249173403381066614492251421290492540615814157187017881251252546559139459339919303676654023941727946910834125846618079894953894627177711844608703289653757743112388575468187367366991971441166276260226311119365131932972851563070112739315675529742733259490782278883510100824487914199695364406790848536243472031796111080999175140349729317264548401807064967295767480746836132182764397918861738191154516325843671052817685422876185255339010336818652520130181150148042693279053936440988463154445267936409292579990242030048266578674171342628821891617516689549042732519607008973195582388081348454465512070954131668402171398711585063825817616062244612823484228690775853390579371742418707046935921674890048922609065730102595885376840949064216457865543601252755572590651502291685218092667738129463513953923544722411342186267367220609470106418223137359020214748652877137529474934655913058526164949587424095362658086007499430373426193179839459986176182855396300598184689011128062774578479127228819956214071837469661212839251337295546576692117110603219024013406593143706676989043173434453614612652581364955506080337487677744089568246255737532787074768911507562583489178554207045898052404669586142947526893383690586111741975930557970121924897359804618848970523699830191864999128693969169171648753849855726247730296250387339433444534183147252699982838669942577969999579653005523763944868970160735349495514573708507547673195532454883687748203620732578536715255256642265028598477787793769605059663596248714668930756337517788678089913134558565165393748172330061391797800119922885558833795135650580973467012870409138547377607574105482754659828321033272522339123224189828411174349980919671802656133124918061777063937909617898609411588708232026824288564917026923675636474630561000459111259605688878822999274591044439826470986727221855724959099241766345552359199623074561303750681841416522203561530958282117108391996747604997454302299250609181916921077560249678452145327595969842990004937055332572544058860753384649710864554319765027621508062135507135414055564438461359607209217563111581625373257395059604585957125260711439510722127299530733637863788724937336554055041164938633810879833034694657629181745811693988722699302124875362451431011187319144846188787926658695809155560322365171875213752094854880846646985401966418929121739406532641039676319435965636105607734434648718005695364389780970221329810971130141475539347206851968711714508527275125529622473373520722340550761066305346608236948829899133858110153954121050814807139493164274163341715123422768219550008023368497731690238076744978008379461301529832917196662187124445558581853198457912096033882530032496440142394127115259105476531260587775824912663525951330398306802017650341627680249455237127682117801256781954018108834522703898699859632255061191945569055713692122005594743276990160546549000662568383042347021632300407121621137229829778855855969955810172617571012105456689442115450536201407305926350134011468428120307322907495646720392746996147962298075333031620623277885455595914007507704346995052476059192262589750574366599685253880317459251553143453879169961756178172470158023807063572688710702747636835806682086439634742809521104844824196913290368849663198519929758763682059048882845358314443700916585118433601566740307147316137295520334888602505385600879056350802851070343222775605068618770583040919742942004323018622721011018310839839690251248042064427358065255862499958721148038953501545012323603379782529486765337601047576235454601261502954942630093960500944266671976712536973021218483116273426711286808735361347137672820658395354977112469209523479933241830022028351909512329255275334763952139338870068435091778769449187991984618884498899221680933894035619264148387338936946492892290871682381091752465924103330444253258282426041139029362777021507541662300480310088112502017046947966418889226751940560704981010793728942039565936473593991161357859032368765534483538147261938265785603225320715252952250661956773335397880057387543741786394472710953149499885811110318148171399994872384774932785994165744831691927071670287028633784784207449287534978690064574204976554007714260316046198668343835348057803358873420422246967884934460442774228048537731140834569436721848860422111027872735658927761372793829222962348272131747455837506507014274943291779595732939606657173928546328018822741359308647464052148776011938840976475427399575590724443702081704226836760811148210832124878785892913256226457084110021115883286284166837559299367110177624381674832596451007023677662975929595435368933943694334345527221716598220436918243645476270337029646029304771060500989034891131513501772759577299857250898029140414161945801868473946789494932477032587036124079523593648116328762263174057390742365528989874868850148303651096378311634980440864245286319347124023901132287208594897950462735851511394598212815712483846390270043685742529733716336253148391745149746654051974886174212528174223421149990323177289319471982531963112325900096189513214759106350554834872504582777510644993710599807275911105484924040735715565222571600623864761875940327421840183996340825229851796671017183667664798581141099011237316433802483329310906341442379954950502626289569167228486106969874515226544602535486567230530958103986905860947078082039751454277542869143911269779777714836355470101240727743907433407862109311491713581817840663386471600513329551103161884750849680435330589730338321969542845111790559344020292889084908048769863174374508345035043261841852355019963149191328563755703772115539352652003666351732786358830610664897082173333735479059661666271710995122790965890785973897676954956818611390047642861175172766895314026176956155035285953196661304245822239245921316538441681728079373798505571015004579098273340305384613996279655474604252808810971080126015618731389455822601404500156333049476050346639167335098466949363819714527449028886220323035115797823542032370141057665738703224412585732270093683429711601950479919834491213960941458942029872993434790034498990544613459404473986790711992542868560183042367525702862084584678400265298501201284193354482357614507053930679925490419643753860373076834114535262644165389173271532462573597613298360358178891731502536478208457060480145130958516124394092027951788446909024678261055485541020551740466819441841304078556544730202429386938067499008441345318989093101547635218122020010230123725288517677395460334304296113760901040947990778972083585029858590211556212394949324532494095551369108172102934750420252608009161875012583938537585842943621169863738579645956257518200877714364279824024019497355578843408399491607507310451156474376951805744534541218036984905119088132501008922397386083570739396902422646564566346622049657638365952566713496787381649025861039873037835937057942328052877760540830743473014334087039970995728892290287364060104036260781361559809934301436306099793984506494806154739040384940949454165840924661546628700710517734755218819852015408905384238034570319026813383724691267854836206499531198288358072732739947095585642642015454866437129204695768846416323543284114857079907107495714288428895196387667184619893743992338758046722031273140928231862652247736931539670536093865418078896016313078203488240598495453767700056416295154956361600054779485025367735510618083779704537842709258067719777150888000658317023501239297108266807338664534026297834582355019025886169478734972621369115583736018638467478792798047714397161570091274502190650973990885568069304308264314086553251153826876167921516746832526327220533775546102578690543384155745734640221596500021755155006483094002168312391757889605534777618479507078001151668154355473031566378467376929753576183378599326940496131752429358075848907799624477364506041303551522356548003228462710438012119589706769726400568775917826221849912610113567913543742390317503572929846783090255843526179212953780497753829082608215452349154128301506196257659271689222524464899703074638908140381052258946781862951904034280179226152458056932982875893106210544692917283954321990174553095541181444520769547257562403681200103967320755805219223606961264490999208707172382254219465281513334036628786749247852151740696793340770231020008180830211170187219623783475957171812548818799948650347364314084476344441900970222793208798533464803455015112188887676374142924472200114535052109003116374940174179413045994006952183502580316958494933149472746970379694026437390179670131776098301517597309366583849881519973216183783130200108379255099188317914108155397747846155158192463019055921135980552159739484668022704624503835699268268217934911237153368747093547103067243920706218816889548493927344494747827041015627405173065669781841678534211173254368126712142254612763946001225307010651382291307610979645173667157672429122032348637189867418819916649645252884132526763904668922328947159979623813960264273427798785258540066868298870579029935706315617490607899803883313957601449239449739154062960119653122918320988358569894350350247397348660078291290675359749851303207670768380637386946626652878130150550441854770355282600293241848831461508347383762785122428077759741559861081393716427243080668939520529282135860623316151191785257382241224831043438014441313907091350645369978482958061814619081532507470103323144393721035243962160312334214438580972416812328042749624413561121196855940045155045176463762998639178472264433159193694914765085466280053136196090730714108145735277869956962274642209086167245767068774303265181358865759009984445001069437280685484660502584923903020655401043357989291221600523475623356512507319078597567374773968438372849333231281801571006021055448718351890223518411039330321046885377125765737306046119129375014850745200236296967190401502217936773638954069906248497433625723777345204506014501268707025318854007031008838151899516921437118552223321502319219118235098118200811140754585828660260585381957824884020148128171651640841385013201228412163912273223426151917323336676723995262502878147126407900266165653925807651054783583290119041928765615876366184577948074333251815212448551745346287029014341096780193508460335725295204968610851614676866715796992476004467454897546693402872856562628633015744199899409271235003535226139809870160312408886408986958968657318359166929017392964502596612233876314148303780867004889059501483117263847033588721366818088506833969365012426701036259877596159673845130724757723664683307704941348068980983711702299413933137822621658239827976732329977683484677265198605049466862402127615483965642097617941322623874206680156020779355724054399205667074323731018004927178562624822128018705832479441457668889534741280591561234526939393248042817533718632774236885924472981900622949582250972096848969602187386574974274268992620862128277226745183883658843020498492644345065397740833166449763401811350939883078065410060578221365022357853713797244566418170394796029665852118668679119434969291077841357239977278364600284158694051179944511548147579865757666129509899066267610491690222946706546877111250150176446820475876511925534077470864597968563581673798527075897691076756215328891229587045058707541302888295645259356212515248701153504200097217268777437450759237061475788062280774342367964878823571065956293544446457456737793717982629404807216212096656165917142057298549377023433674598486175325990092144957473749216429069057088099352965837975916964943883078634107690202393406043873493216437970879895162181169008804297803473736682152647383650429204149428324159856681485710980490082998113129041063206195522573456995452285534054404810063596835860664463930286820764532825337891807829785205913030109683396096577062667262679263937240793194009821628464079985625743116851955871923060352543233844846820903551745875418527832373428864883149736883403180773645700030583432805938519762227350952351361781947285960689268929893405758666976851099768418041118447477409966116924600336319100905005309382725684364753978821109957032357295003113302314935158297680888640552168531900898817464569376114048180946294095670638285332150326989379145384894288036420365761863232913704548466318620603341143970527763269697858306485347934554882367983160750676206267673752445730202234744251549109111430709842601385065077135931373626121288094664099387355813849076151441640465244236172881087559959830851174285909389430674737004184123951889005764940902960096298701214268661972596569221664013526384568853016876329268872542180999119257840882007963282028122057951365864281850301263785478533839453815696275477762970429305501713538662916741014478857968914365598164507983145254738092980876554438292249949473944350034544290090800864922445000038016945391311560471842373968956045337735687705660309097183752833354202953515831580090780673577481814373898151173066932297828980599027548356361885811675568982383529788200572546681228094457541235241570608502419152329263863224018073472473630883586388030697552645412736071262598684310865943996055767940762634691278480278506246915387400527151558911747856746287506313329577175018724435999186353819429335011355851360802368071030132109431576381005706956043254174975629444093623241891252665078552825723960974941141295730326220081153133287583119142289216996513625980305412675553608473022439382692049041633440903113561397792439008915730113148345856599439718261813845211335362389125971125666270431294729765452585707838525126701780548882213937961068699647503621296739844353933764767652818861007026077680734496666388021085855270785331627225829653515232962424642678443332338762142344482974360268216866056040431456233798341926996196969504479166264491357637638973619335584234022001411475989315335984871665748025889570876700466817810977059253443860148314704503244470168972906827297786151193483195678102479052031270168413430667224285817233723771562081580021743647679127702499303913020769977792814566488490223328984586360994986396338888801345864888342013344939218480885053139020642704637905196201970568386151784913516386892671181363530231523943428959403424237158682720516562494778098438104249754025566592045687195597470168708844651852909945055763031464529786344594153557688006180609727632496643704661848343820975367057422257049485957611830731450768829067670604479945601640575307834755234173207848565648218297227330169166385354734128863596194036124006054732884361002776455350397786417422410997973157254516766490016026853567552085444766878950486980145662091695696210331114389857267073432217475317331158072038536836749741560786544708777637211516228711426263697276854369501274992390988855609472369969907644195744525596622043829571412095999292611323398071444630045879741596950504564683868772677933290879278673800987187376599106429715985099955383889555187636336612677845100481998618660485934642198826745045463134014817542913291343912136509412548268878367480047375544969078864484759923028807815310415024063148349617634208795102274075994656664197147146842274021270837817422232028086851943851592834213780447614205677347107962982341292083498667031830784323971103435215598487686233425017483533579105262743923780142487210061963238221304589842315131568963221174521897199274071223004266902686069088469075218661052837011373073342813824872017005977843150246594681935040862912026241586378449163171198507394455268234917170622714499358518519082705344386974831897733532270503361046052883496474496985603801482027355091745186564390893771620743540385922042160406030415084766896764947273441108915637913274229487848633027807665165869469576103452731928522188553747187595766868905579817203789791325179935474245215361863731999996280965011124975431021896573579310765171425863029038718838113043955690476893171656359842656826141781534153555745397093560588395278852257517408514169053793980223025966274516107409115170783642678836236515320064987111832364475300972615988304864328464374480974795161390544196326114407870900420405258376986174695586716534345258147542333179488589956260551839542396528810605691821966658614315983003702110596502882867205930958101642745388511508494998293835331677533732151503417457617832768216795320236607960901033861023162135503662936884616724155705297250815033388744004545439958056563130334685629181978014952708705310832617745459169506994390524318321243394720137104409503493664870665903689350717759843858969574917900523782313288618313790858711314622120864676172145477954702138555114934147252999866876982449979313768618059070066798728817976515001623563128110518602364207047802725997811882496026249683263829217260764846774427034514396496704970034023321043239238449723349375303722069534997694897937260572211377366100751067184160851339007422637500944030922270173089709212264665410478178233004772317263224176669762853297790979122613484359304814400753003569481440703652368686464214160225959796622675338539563303647379065540889841874535920829298559998123580654903655475355489187046260211984018818463277234328380713919068682657526772975061035107147516064221904517942829274774987489906258035788918878244966520004262932771593554025818093047685589319328244149405906253705282492804372223775665925971927609700398972454089205281879984931356354145127756750022880886535398515194546941642531899491124110462485663065358821757931201510846092436480788482519938857696681264548814699897123804486481066769910943319916114983134471922047006120687653854863892342786317052350749448208572697007095376443142803527275352306700141326635518375800626324638888719893171377642097347502453140304431143406437726885623116065739016205715341510002988208034498746829004871308003218489288617001709941405459505596464758595112732938212334189362898078035148778780309315504695117640002281168126696068325999082624155661601830125410400452127216780888097287292224209716651177860683563783999520729177075346715622302978009987266950985618285614863089001193507101776547419444943043276421396507138796100516860594310466441996044361677262512352261116642444951907976997012686034501679741497219542623584625820517600459693506669979414026661650259660779512925148968831520269739933793687115971395139073525522678545532191326674430854185464301802317465847709648863425394433987165394152729988666201245126015927758295176961153170515755539036936666800228301604611434482598292386333133413081624812848243759393745286443306744644924451436664739084305402928215350828009962631858876269079686295254359450730343263772732665715628683946584798327868311034876905485095002525977856566454494068336558980849155659929631871607707598052315590112536667491459280928846566106052147551573074868787394420062839668319669220576503529930314490826563428766816340896547926948349201272514321385058521448815648384834872545422930315179445681093211567893633555307877171363490470484591844734673962783786046623163248601311334965658364569537773716400408942733033857829990557620088321207605121006958197266686829006925200586881568561678930531006417280036624082062122862945908529125129046061307515846043874888351426072500346498718011805496906409191241540917070655218740490566719899835602081369739252511506488471842495781050719534507979116124061859013273885278038317199970889058558943651496492693781676034750418406243667564652554443694972412851308796542870133008885835619432706160310754046090063732445750601113875641281111930495879728654448704427267288878692741610914268616033416804581776623806674783102019038622453529717406448577420269749722368088414247449904541183318960222137363630735771098338253951824318625416834385702545026296748240327040244967964444920235013929938624669621492962223346906372803941039184777507122247582808077164815628505407073416174739137300143499933137229407434237479003071926144106821069236873325067404485974730100766566001134670040339062238376964288189834446872022461471642482460602607062989368818182259009116997923401692181535989217022089510882066697032505437403846824122987323988963982569043693988516453768486841791494333938279883989969231610132563125311253702288786380408573224785815363986582183231550984708222558994850544071996909620708502448474064170607703487370545326207783453321831136848615289825306315078610240760887998098864548259192714042102370652537610251724680825307317822623817712683276725039040825687592752459012213621046680616165234463328075494980829891461409011001648307908496295486690399082575894460190071205781111543635973876137300295186043238084557439716325967760640065342839749832703376897794187502053002212486660855939987364463573837870500054739386258895733330950224453299390702185135576371892271978835208839334276945672192274893850238828957038043174494800411493450831586565793904904079551502682791390181432394702341045735034202908128401715810079449532077409401738384513457162746129777012959907149509262403124711871283984197453351892566394601845973834598723323505578560301883238583132671504011661975069457213955556822458491323364644557831842355030888565442409657244939363937135565566000907610451592623912187191385631017352003099807636267647611506505026281249025629875762245417113599524901505606389440845104191641762513583485674631900260965808743732448155287922351277778919224907496542563265485314157877923176853484162350303697512915763620309521551669837613061268582349819325859905280266081928367275168216808760839105249628353780847144086774174012998215434577426550887336902647253269363517613248298182011070387016151260179408031880200276841714106469556054101985605705511670964994333918412605847487643971361090266389580727183508150253864714614203883436782754989040381547076004350273819860055292836465188522307291525019754141913246771952574541712714481263181733305803312237388128142384354376704049360944410016626983420588107484649749068990777040184240332721775828732150487355796518804199645284145698515171678748217374821909241142051249033951386863149281044583329400132767176974648943946726705738381733640075853622077524867563059165735003419732124968037436333718026770541933074960240736157949143273610339806832857451793964659904112103449540833135165440033874804515371381959693217816907765040523537377890409655763935657396193495581858657243900531136908130051838125419720219495194235561062847624382412190968175547755193244320726178740592011892440853875880565587821287112701219608239373797205884330091384237731432530624823505673346021644682615725794700796293434407564999653277277387269627349311948424625060406891164149019357340382227314782012684255580433790691854106560557767160895095907403001133406803734190565029261673588540875414354562763836572392773860373846921676126124205482874558272937084178649818596408518643479678674376630955164921203873492244818068127268772586793941950366254948131784417510738755143515670903383292515102159810067191939808320450798073708888524787460969966477089067627563931378534807676146846949866820359746359489885538090729977588526789286035688012110523564130135581796883322242609443782043012345552421524831658656420416503991550385068739485237499724874196838857983510657793845758516089065349226859572411403291595512579626229762038242039769883507374705309815480954832800147869538952875717457914559195949906189422376154987023181171395031754580217137431713937791340486351559765999924654861334245663130434681844121042804980831792132719503119251413271500812133903235277415714840775137412939966506890234441596739718465528996072935986156753646028929102413032477697537723072352070096625060937078692646574198241122273257704086548738448403839832889438305788856775842585060351105179528576582247066275574192312564156899934053128809179161886851942340764727090308677484538585899344055673661761228957075502944126480648073022455256969753050663180855175604786591651488433292543818744592691490337827713065980896569750469481025862067122875153586825202108674449584854652848418525459422340580658126435097229186665236670046546212369991627651893004560025311472521657015285988543633517643868770904350602506169916406458951466568988937212725975975591985702495298758140286070632029134888979227616098505307208825360833534933107778601035592625033528995933925200035352417268984656363954075696915151651437274322020649679269346332728523369894571623831716536223952780966488336963871655329334729764126451111683945519658605749806355360514248464867561468547990738877328169296942727984117071499827250295448427615874480090756720830679054726115249206216498100461252907891716988260457639629604101622147628856381342521752314335982460395815343633039416340021225474107493735943033914382281732941415287160844128077851267795076689848529871227343220732328886035807584778998711601511601920524573294769098522028656003578595445914342208182946629366194565951497558503711225654013894191667077511025668989156762261794193405890857154188087887853840135088395140423287952678911895192612721995068725514617478499147799717012529587348604331278310005973955024601369675987089472167197308985000979180600357613514661776917303108398930830040618759295040512886784425970688955337801563288363609138262180961364966625745906964111061939905861794565237263026657102187215006584384844174101226126842769229964707169043403714930445900572583770126266721813584938603360227578066739668411475820611526110099259502148364402714024219801801812334055165465316218779313334451593201137835968404684901113108456938926925038779157752239023710753693028936661207695953732445266667950805053772129695323593651899850427107272312420357215784156590121236869131618704023209472657446237320477871024195725973070125446030353221218390142955120271218608127172067295136500064547327474605426623419815802943196142100612933517416928149266915801276373247165228589361411970089195476066343964491263881677397050518569089431091275947997085941820821866311746719042535414214758572743838881426790683684627987257201471638276345976934717665634148918048342387136492496642324353301219411890120992112300209422242818213993722653381283394394274064335012689285245099856333562860315207707906437175391050942319796420729761351278866349331246261711562516973557149112816003915952477258822192698239548730827317376988087087755829261000594728966983799802016790713636842288093045745367348934014107482110771318151497526304575337805842973241442155779475035895708013274706593733833740217542303347972223279651591178866763021601398303539224676574546424877010010202911214699426148820601558489424530452421069815493324390153517415011628321292138827655033990326768019439706418242635426168282473150125471592941953608258133956618376341663439340555428172698882097419260240074427029278242184936096446120951787618337247523485747334242370489427332560639912589679249413368401076050240081776858533521576771558601993399351252523719379545966162147395730567077326224399896155202828999481224809323494939421856814261259829796365681295039075143126390493996941033772167285809126209429353427720189726294551153008285742007973479660093077343273942255680918386238809471991166468602526297691543138616832818756962545571058770188798340071569755220645876420098944112875026961788812149256357631721986776363809651109761332201851665635552100482056192921427732027046613749822093979439252978369447340668735206522370016867376300077456590647990214736053285535455011076906978318082624035345629309594963764981296388296652561056108628750696714273972928623056439831707678068452296598772374566655672721107153705745211481240829485599349055080357485502726702937660706958621738172819928648887004282254974014767933391443984280368869097558397831146665540349431969978837032616012098107320010134780894537836888312411760669572125029879893604503691336803513909875270330514405623795386478946830806069203122604828221731799120663686606633661972902199333686371256781874362077745925858126852314998201272373701191491822331496458159800651492245394893101755428111915228448472012381817320421014769444128113417913362571009183680255060277951258191067969909178610714717665262693937613625048850433291837399383427018937809132050734658927108991011424695418652767464866169295212102936154506813016160756072448500916650030944874263307133000498787114616455908901148754188804626588775433036448188433097133956221783915261590723637935367132287004334590564447123479455759699858918473377250784914720638240661326221498910270541852058486129523212750027826871450150336291190476438148221008470996864565831682648825053078203981503809959926733229443456021552070786457302967355580957812122857308318230676365044248695435624384775553996236059771916186104514916015654757416172361360985419375174435048778233118459780209304426395253836023497648377926290424006603224929071236424477982212467831227312425055198439055402126562606120453727205445163155160397173642572920230695194664725194421114700824551927337074677172091593745208710746506348827446615242846322631121928506041557609865622270048528668339582349414466181583448244196300332816008832605770856182737588403425669455785539712551465586663315122472646354253891120703243878462233701372047908089001077549103483646810540398333617312489155883911370825790685588665924774233304041506285870473729396123962348804037485842564991875552318597985313335423433403266024319565793032153759675874982293780005165619272154419169381853826567411098825385697987234596584307534696956259839028575154940846690600658470648795518655882401703963800437615990869604453845869118925275688153904083607054380833914611173766965776199545668361412621761977389513452434292135805501414900193308108590185661921542725183969213758243499875320116056354993142133347635843755062822692299459895350705567060446761019540664294744701552953793316174268009489808230281377498547464081236470351532653168517535237917222203298682879099720266149880272450689679513948532067842111751789332328812124637584596590004582089383123423001412122680783899313376218550116333356689382173239083208344073149846432281060454712394020915178385312113671562844772131185448210346614763231913765768614766148221929066314848878952859205323717792329353018708747232147310098579854567108746869498878428216959573800632343800910096890819027632063890946462552172209274522491552252336960738980770927501931958078201295631883152090032504520400483543810158567221976416866111180122904682822300184347339266685176638629634275777451661934078277225853310727341652869042550984853190506690661375043560945729245411202197375098981621634063149290524897510315297742921636754714160251504486706382155720833641570796191721669088678479366779135728411251323735762088718640869472829530400313658887413976032560799692455231410873701084540064616310021974618730848022629668764703992289271571637420573116554638565838320851472398057975531385520035100049586798335266695999934808049066048620489740297763625282213099261080479655604825343359132743632114270278066493543188014618261964075398737017591463433468469787938156793444287868089599025819963871280449386783542317121937805169776133616242056081343913863159652741475526308102552304871396516751614498067477374399596343712092356650028889399506366279100463557567962051754434023426296721295130028895137247268338534789018856077844302401557849071012016604388788034317815196310158570978779897053532354463187269394517864993653358014698498425328427808214821138986998383997914525625516042368272460868987992958847399906751731053178249604804792327457929388760213620012516942839244999705513059886947155813576809454314141161527071729544687594921090210656830780117120215304295477103001920758024409273804013694794048757730725025168662546539531622968417817297939187674030845658141078650242446292996903618564043573663091586177106900138802989933228535120137198707389587100254234039991825041130064962000695763047492104320756737385276410375397085705152625170924680759637251652638098921983021604726381263729676653126340394642356248120003348382063140892757527450163017099751567230448591124300719239243450767951574448259677188800543537031272437354827515306285021823887410689617133368124441594165173114979474988172437296451912517025819802432375021197533473798077646821952715949351108099974941199493690906585112739143156993272483690079235265172120235086857579352625246903207803918069573658574838045322100338707249144814497874928936083837586039111717570370336439225387454960397498110329205865917850711977097872969766138140225292868776827644210684468131881187656959679393685996628535411448224609601772971345091748512183647567019518437245976319091834454412575798257975046644073446385915948708758706930295465194719410351977549161517993008672185821648667021738034061039516885221739537310168759891590565053647752910688030166863888942170699849722696034545358712385347857476804163628359456477292115289663730211428871338848142736668113272204198564155812223375131618429609976244767572824055237572160221390535944320869491581476042054412301105777854194724076179483133944468244460545736772195949382022613599186989329240626501110040191837269819143895115345874114500943402234512798060606006638802320065030641759016355726337987662585327518723461802822297923268840341356245001921085612567889470191567907458401066923655214886077956298216884780922606092710162168327674957643911995953902638848601586146309469107649041036033214103959554961816717492966204921184776340047695916759241942621150808804083763461890443318791654874879723077272477824019821520364024825855332820128629156258818445495341418151827556072361890693989877996770759759360720489106842247482776178050076897683081869520609418343749581208721068777058267804633978620832166380546804647003787344094151006424039107144989467041807366621082040139557007049054571586768230260440558503299950476837254454056182153379887731982624393954087715198487685844729624930904008814933614026697167813517338949162346497005314279828468344188187257953732744162916961173520169463773416857889250426993422885615743910651012734115874536913454786012925006083052599364713451024177479319413752289597512224426376091101920739382666526942180173440021204907553454370018041698074179119103173794387515766229621281729335872768910275703629480872855721215012670435601455794752885499836740406159114705984405920486814955536036308342923648420618456397619416030635717583594008218851691925888208662157486521200682556782094160027087868736451881842567791534225423398277219524521372110060223152805348352837457807957286934035306001350223519100440265663620204797651044656267172022141397375431566166481426096095510258813111018584916363060516793297767023283270614248014922163514658629935917528875692974079550786695210582089420410331526529010484969271056611413729521005639136296741041246241236488826457688490630192508539022243236518608745086347086168735735285333206354330906351421073393420756393695022936188879032889302535000650965339585370044265683228417054487091878155256365087551189355922309499445721019723215901465349496277740780375830974646382512384414728046999211899288119094274227378322555685141331529113413353441896905387232976566838518434518504650865313936031551253613264224469839949453194499547706576708088043483222870921156976881195757259381997926275458413119261569667726763120807195025854619655848442364304307177533962207209636161717359796433411165567734568049145386890083233575485013900671900170628420626940685833656951204927877937871089023037979071896350931242011692116304958360665453767411421378257654903976178787761642903229807309998250489962105757233537406550240226567880779444711931690584510760473113037593153727370525427966996911038946839699334241016064284671693110264626868240380688337682508320723492638907020994509471337412334501762586688014109052382941081694405141545920418795120021478402535624287486675381001309539473312750490368158011290521077038640108700118314222510849130648215050672222316393123034598015632448687109438335086367236653440824481538295278882865840272015320126894633572092151023900222699341809988883811959301316405551359399944721260699907303086020146343679688645764601541679586390663922600205620515346524252136036299076917990130828765188177787109525806397431803225972613730118487448486981322255059621631283421910748432296533008740702892116407381503206628343669956962204176551814216134753669339799619811997192822720260887868162715907026775616580269997696412114444982220784642595075664016420811674596340048745083114910954953169331360629591526422738350892518957466015995157137282685272906449249417722467870189966041100528373641340271511140153078972892276913612842145498537090988957998070112508972717286647693773157661274901665778693673586717876261644702996554360232793935340555201351384912703610290534242817811422597712589524283406280805048309847626796978148653299019264061473310314276322668898591678311917816084022436705186034123654665018182966627657039655350452042559913259997824364313167045666544321772792138796475682212276998275098859386993599639926938868251243560458821039221401191240435397070514976095098840737575041602870020784862451183530413555517164112247130364030891227461660253604872636225376083610147661544155514748886509304366159010553405305877277262966171339018369030357758224385402318139058950239954909093380138850735887419063072473110385689051680907437083956019484583962442677135495144841984146097265076192653792752840146606291687756129399657041770780198554434436462338668605469229460115972310708141134377694298430214894579246918136506204412497245803651451956798482291447194539153104574927980588570783725949375346196186007317477360113310998618083413121316147127100204149713642566267923621174867209312691212322829861028911290026915756740927969542610969973064888412155130636898167495106688086287203313242276187523086328596660136719120630528288588227327331572055201266956292833700230663538847777376748278996764276083042738711350226422779887608372922707037114192710028754946448330099745420567053949734050925527783231994811271096070589141304174696655318580823696238798071435190067823052063890339024044745816975884685513238214066361639241394937433759416208386322280328536058534964953400885315970261465177708252180497367624119241204537056229314300881448768438323335049694648113484625843497501143730300570747277393070624370892536114303283045430329147301270617026432868765889370093448504653644910426953287681678407762901445776119153520797163805563479889216261666719648380933766944282038523853589013000285185908129845063944518585320985231691294582000803918358616664919210308310585930722224231982197569062321077229242997533099720541138147525638312855869697193072364933782474583956939747974618300256739788681952619755304225929705479379685225921611722915558011691619074018879173451065710158883697358801183377222148554779282279343828250495765835325732925110875986056442653084439489000753962686779053591130599957157641374712116417186052886785471696776706278802505729592674448782318841843761563944204417185190484885066842439230400233983908226375836458762941190662402970784304331372446044741077907528439076838672161962723865969064108942408931902946422359383544964642433733817869879998337192007565739567507939507684348834955175018027591919185301998360048449109217667486971893770009611525706662177470589016152657671666267489034011052394473804952647224611857807774067531000746913885005292691880155985517286803505475400019799179277890675037104070989246954139989735523910516635572123482003947008388251797092342974468221295559962634025921781978308448751025038013983610339408560395032948834478321941518484306762609054935232935013746661324036988507079128865379255324161406028190378708971083739974814007537817784075806528544502376482197280980619763163613486082337077890146318163955562502828321760023733592046329149118579287838453685226279989970043810113889262160846439503124506814278803140124021996361998486403827716171695494987146589590810334212434849853408839612779136686108634039378166743974740236705319207279828929764290109203137092541252650385729597025471767355967022524350998689956689947338077819989685614963300836285479520785801917836585923747587789946070855935827128677781185925591931272724512560241501525149070206030515775923491211328428185523739911740216609009118613520596487596407553749132597619123388327723174747597385518660502290078979770865243956888578045046795695842964613769937048355942158424911082577965700717260172799387581284755655190851312977972752594628192660446656290002828228600489388536721344790192501541649854029129147191690946224182241975938028755992006664713514348241219054450645051865194947016984549201573519440485700571003589819931801177900507594897267398815015627365379963007266182138453134975716711528956587052726703867578708120713422997892119924662252054813688724427184936601856690216090501145191873967041396769701397384456171456923825782015386729655146981904731187451321921916897252606570973823966500348540336522915154970010622818103104810153377320550379223464705557788033737494377690104086913744699521340201857456185166321946946841722312083383217719736432406186571493093608207901622024517621928784022815256162179215624756785232050737080311019109906829127446628931765641291831844409545648491399785274371385698732686972117925620395246185530234670432499036375089269757542860456647133375173848588707206171670410090203683807432344268790355397712448001864333988193160303836890066099001813311909316184336491805934383634331610960926729495652808772604378034984199164855410177893763400594503511518266919957276418519256760787328804827742931100961060410862090662265310624049493907884089163784287970585637769856668569483674164232299213870827169306603835381893990133729793034107167095499258464922109087961009448812603116861113422667134806732702083118878608886532019920612529468961563303404606183489053078360467233481642256136130763739709088217830354028510778426824642424609959645117784860558221707811051134818228325377830520579371333061887239961859879238823833271904141816772280150896021431126869975967465320715703752408468995619421284326713452430671119617821046105691527656141610906800487970226056399678961847158154558888980348682887212048978062377962772857073226403173620143736804523335430625693671202332711268684928304051959644125854411574817781400447976994821350433740389185344374083572352780706661015534170475226952753530508955400352642623118724354642598389126677881342049378750938997957777673119516577308053351498661691118865494389650331445230151687775846959824802546959621124388656530446736851731676485200491617687942270664080545620810885006793773471044449444883031873829207133172322070870433550712029476908526100030727168189405193237565818382406559154920831856859004778846663962445565070842867634950949006948263516077205572088355952495339637178383577536785609988551120620618294535380909674145211969312378649191449553910847330452362583790739989927424630376752056892652039146385955395571388346275621694893665453580269078259641579409547895563803218976040553754856580737356685811364215580395807333925965459860659478278763120208559247811065802518136430690823854793483025238965016229835557007462850049169763682254317745366424344453313834455907360297888602766122943271091311519819680567103537390642672327986358490050410084287613505728256096773868458300758767984102727337553472889128740116731529813297125119932990632944580191436008998337661684050621090985449322025933048284968278118405750758129090461534619698464100895904406422660344792810668704729953443044052284414139944418845998275353289273620739746612705319511455449664005954116650808579996286264664783116975816955288913686285852712918359743707322904504637405966769335311278393441021800388221716375250873694830862919706047065916066779814485399584420733449513573419595122981224270830227738695987766647992660159271211205312551938438858322078117055143952213198298822837227982211415140085725234479847971114189656962554331888585661580232885693593227574809026330920112109931664056090381974517775039065741088759954686893437257875881840272503757027746970761130451818053398166347953465011454763826310441585686078587245431761288582665094332940977936753721143348550394623769937128338928375856988398173086057319523536195697698946587336683245508060989215928558995794212102441414349958401241118154269047303830543258808451272718372990914710916590778366436649458130404969438388006333238892298246388287345296520979725919287602102920425615492998618549468358654427231662015905157130800545532358250984176865080159729797666137472737598717773283961840320597098031432664867272714326085011701062812017939983296648539062758672142657783014208726397633556290218565219134319657437332502635878168803351272729901529061988093454655182372470952285236966461000687920787103075339219841758297493154653791869547841360703891326637752079663477977981976957209638352074848047577758210197649140599980360577611257279305481220018977111954904593613013383197089351450816456530763816096734376508434663089469146263987432019144972583014372432153569767101747261058264489480915662573605198012223218373692582445221978475297640272348737244386712802530784597475434527089752501227353653817838774088408087706272075097240682058776469294470442876020452323092507797537790488701724398467380145909283857238934839341608683865931035504698443189763926785717570852266529046988992322859084972445842014017584365451896165384292558980656412187762658427858915605963727543577657867680534348523385252609071963789787705802038941132592294365985703771475541977240555540092807302695203490064571629146360730614166491463506434884719337426223029498719299591463521838407717815375094486835153485165737806149957057391732067333552564723482789656049434027454236957970698653834085055204493493400926870254275829145206817545634439141168776103275382593827884865313345917602796566823100690926121766476002396727843719844679588126556424224582273972778306997890817708052633041186450934066715421477873758363127335991955096136782756675535133043197374624335857755863840264080030686354342911872200286032203769876316640720956017309415094803169013578404245643930562540968584465181985080315270020977377128438999186042128413656281533706508268651504511089794939631592070077584304080514259046076855943019908646372115743924325495241881275104026878642074423292718222795786557367649742038909367863028597554697191642475074529581126361052667765037054801588329507017244165737535406246554825099514931327781423800012365561537987722715473477491864656589285669989133347612869054953184839513665509204320541223410161856130989746377952370785116889396642467732765630046126397313252801309165905518518761601961972780115072688205055351819594339756895002299907962608579711152550149862919103809345801455336249128817525147929535091192092829872794023516580869511925206842603569700010876604127054215077465107758750524415232205619334562609013813530020156687476351890683672491706507947228747057967708618058051520894360008206029228560604992310539075027204522807790500222927710631505810545928836612481285639681178464022437123617400147149259817096953190597960025532527820661932883797886946739030234499833436153649319928769301167720432591757844563491306593127865909597427931909478947692758486042123668984788373129239491488892375050878717055373244819849821086478716020652374061412342766400208463823310404720184439070345108921438880766844029454611587153708773391877424177179589205022182662644138642732588591668365862723710143348679923271595279738141129390071776147708373805097426071656138163899454644506781058136565784819083227100286116147475939889326897287417575659922924545484337839150658377329414646519772127329056734493801269847507813912024626116252128796874474161340243761626931035361730030693478678682399161775817036698862606275008113784678299390774576453263190860583355394676255761971701395943006767853184921329542795564182220471434505005889788636745380803248420276009034315113249257673276897084175873608290519930221196599593230880547731169968364396400347771019672233432388834948932516979589803049480171065090758162993821619373810603246852171980415161449869075767707259195921479534147820139708857261558246993335150447215368815818255131620092957990209046831620809853691324473786371576228819890544485555725058805683144094976549270067355455785383261764212318199763812396211699006760905910857550887029100014481726262281238915659739074202229860367521111836458850092676835187268623915271706188566791006970071882398816734498823557559244674235958315846664030744523277529694804391908824956819763024226966411599729522353637352339790594902889681225734554758256845393446319662446860835718759751512083624714254043556468602819512024926914444896720385585104931286483876859212494973778225704002902139794680519418910695186966732061107185648477746557069132318877953572146642853169005811558480200031441597333760448118595851310802841106114666275756594602825475447584925050298516906581146250215355955588689184135537594367187033155263830015743034098138470774149695710068475686859281428181437750706006919340965595867012557211806829237095563684308388683088874705319520302240593686820723671081104860299202699706247842174893189626185410391231570780823828820800107954653459829614278159210529568840424495438372166417721775650922796965653015402722190844213080623745484519651531981457616603724337950559487944158555950893853614746861744533236097741949404778874368871556293913419266460646086677315515952964239999831449201704346721329136774942933832119518552614488413033218263730825801089035351979607727069553589484076856966725309323758755922323174173036560540521950065023197444832041368989000601033881094431828831658225138313447817878672359305850148954348953797321293745367152093874821996090096761252208726478392053298735777938369401654911042667311847363990102621634794066057019175406838612069876550080228201376374891755320513888091212863569162768821033933890184260666201951757044954877553953391553528262661858644876783409368410085026679355811459926969254162623499626350072295898929286991957668648865980368384138692293956465758495053237594957561592012101950511868462678626504502783012570251349341603854387513899798530067087041133615797251437015366241398507456713448894142234109866377642451278042653568336365640130524159541904062784417691212095743532852158556988543489126047766386672158121088923355562179685060503396864838500958318069856902736378254358192032547553230382251523529547343855221877960109972403215275539342202618948589459477380645338947989347899442281969013565032104699306544376812693139188695569159337765185003405476981530889221329080680656116284897079061481159747670515089017772291065607105493626171430594111010841138299027970742664742318398718954985707386110168347043549825694388410784737110241737235663218189628134456372546266888357353607674073950782416970196818700524318394477206505895982063827998468578102185514964830405946646557821822307642217186014794985100484975036371982411859420412334918491756584231543902346817769763947868068113148515905201603118984205394342212997501670912536793947276337481990797995728039457651229583429378031560667171234747620127045737659909179012781767083583466260671379994206119081777106689085215968190121181767084947664096533526510039950299911709982731762886336922076018560749823845617350389507809953198124909900059631297713569021003441107413943317203361176473777361043476248988215977967882931423419845966432694509300078030679701137730903236533171500370338786607590583552492916222136260007699203644671256157137943534027984076380466037548762065666020286885923606277959933692616993011516564493254854689355445440080186649203595835701623933217046844460907746735524137391217724887474815891482895668673288641386138327199935031475392608206496110684197621981301874352515848519083573169856139570991069905831265131135426505929538093172481927608727546108105470263797668568912047374482247762471958055981661091375265068542605651373090822613329494512378250153184399247463309883652088882149637814119862721263055904217978369720274996218124885625838566319141057817250448887997083062049451873120485961671225701058162870202324830644786664945844714537212584584215963482405733397789054032006230640650779813255303090810892964980322608972316499641761598716892253437979974863254822731147136320034043969308240740553450291863790255255982863602326355769801153674315251818338310176439362638527177321297724045687131549743908643243707185170857974760631578587930538502317029244819391123533029933831447987180000132055724035039364398092981184150835829397609565815512720293393570292229863167032338419182514397662729433196226232276835637746864182287937812591186414478649138474902947986161158142458898795164269743230280084925568611475487154915366565377004894630344305902002485707472509931568165147549987041329917760953773492135490098425255667495420371492344769591626924337437276559290583089819381539601679082101018655443644619506226095479513577811606572290904879018522718566609968098034833104783861999082746394754452014620776828442531792684547924753577578001056538543444731533884337126863624711816999589135384959432129046827048212591354098829310478272446107744416149998045641304953922790106404660865550276292062727687388662442796467723855503778011521398540828077419880757415680253078184116114797251075778276384186174841890754132689347809334548589337452135331779470530508141924908456887906198775185956911767853310255112354628553926816625823078659928878661685278826616157907085685447715089821768022559668647482236341056450304443157064105257154390785368165422804945829052332986456127788518470591468615073223994735969242544296874382425516502756590377703501153376922143575492046565817663880681106640588225662935435165142150220584230511706249020568192930351561667430757626076052668346948507872489648347170253286902147649759655217487437738451729952425262461620714849796520481886819303507875845425609791689053259884093188997734495443243656706873557379025840584005385967158064944805094648113874119953815428003662830636081912541461194009867309337479626336990221634968940707357780065184024983000508776413851461746343154713749529867147535226785245080804098435357538372728187464145968123242759692659870648163635375188129127999648483921488913737726047936698840030732691785235664879295041951229386329445022667354792410520038981934352132315481078169008847694829544104434354707343420868381188586638688629816131763851266096639113976107917794599756280747311012813395809253924703975851317221391458441512048782464776415344992591272705161995329426629947194813460659165848348122037515999142479458197150836841365140629731081480807874393871733605361853153767247536133615173920077025567686874371307240390233624938643423050258184349012286330865021984377165659350441961603846347561458645209455877407621507954690173110580259893543809278034642647198102466161358971462107892250361212343215385204404014544641258312650873339342355840127846724090761406806659041359942765456153752855232449433512364290888769881290717483635079895824763480292545639811805697141891853197665018297598748147127474033411494321512570509574502115066195628447093811272422445074709005221750898917838923931050256190632476086358132370518248495813414363624183132548754602621648534830350550704707927315698471322154687453777944333128421916142398975917936078337173392161705622506365885201280128386433746285713809521523107165179100072554203647823101953121264669172776009465033123072586913858609479412768936853478845720394327663061429930104821129532062175782799100892752156516357065251403933254872178311266079234229260543820484614636604294621000048822353574213588384149348365869705852876454993440876731785492969024098398514053547251005191446150389087537938199528910508690853001586485134926501990476274518850162964227428722344005158125726100871934877416989684429862810156518827039068333953410915851939750896991040610102031220441232203671463460028266418106450049974858512945778906891324750401270386255521204757068823384704236918791578750122726770566473241860104192883156974550546572484845952336062119012827662151961963694426609527121373609509025760831085854213503290856404756897211765142768141560267553859309801552313623650257645536881230082234728741215333310359500743616134038488659976412867496437230039186301548412352714315720529605839854936828534463187004785193171815214395227986148349549914750232034988592950528090998708249371035472959549407054608045278793823939682456149117251289765884366989929576437251183588771440411015159508582525763978603654197866822806070485282116409685721935392282241959527162882444889564125337710127947807044905540128418648131169435197055484690584146216429882090807223584177074722576353728814453501872129647714280106575251459641204880198831217886493402583708586223420843843830231066966960684444276854034071211594464682122307526855824575213597898036612106431449456012886449054027283838534640399082668829021240883934758435695971101671099450634920670385431683380869253571004323798809523606676445855378718850136901327114024474254292844123264726830975099391242121648131026852388342283695095505163628883330048085533061566268178383310406036151239377646472595020472479124737445268632208214515264809059250519615488918630475388434021675795492082448705030977795961107225445071349421008126544324806129917625484177366252361717664541235336982872490588560153882943846478213268425560057459164914355671387990851172604718745246159043496489978006810191565304413158367754874882155601228148781723310461886101815842491334815015086594261728646531877922159845093315595416731196294830283219000739747297766586746565243777224684231150831848143630950420104451679836329543744605799605772633158960162579154391845689477102872323582472586252284740338567207904820459666767888757470994386831682383632540132224954779442594993370204513842330031931475465502223579400654211139614697274953283064391245418860767372521532534508939695035729959885781098148250034870345217913470241781690289852075755524732187882095462536349863943460161626630383171795822408907900754935004369261337748031074857472006746206231037679669657962508101607046161227399692605917088206875217653235545675357477190053227173776292398728326282328861525674608447892064805857415563439439187320023316489120124220249544173375708872629303463278453622145641899947178077687079118190166707162084090769812787835248753382113699721565904887725343850821604656317132536063933971842701803553196708067871175892910811858001605038500935221564206115096136651130878387659394547901037991727649832471171064201357817804459162729755264388339311186383956372108387543768300408690556611476648388982567268395647022850569122587063993364914791714304904442261637747526687729493513787908277034071880475056181156288971969083980130512212697959746994291530153746406392277062860018681799347109498430583690406833986556027897887441137558572809514431691243828598731114682911663307523146416084800053636589440644736784503451792038075062542188129017631561610670698035286322411192066926328870732447891551606381308632852906559098089822992181625383380626011704214709940742108775737101938280492531911531827264030563237377339836774281551838620001319642203468352403101968182869815280917240782126237632858003402382050142450490736602223940220880209383254914309325876189320788976227877035202486837263362290112025639998684741704025961335875259266637510875666102988825643272719089848568420899054862429780846403137132599909830590136078092657277284068439444222930552665331335916131697663135493213907013044883926665366173717083355007646616021393421669683758436090849762450782980250691073998352221245763314387117923911187019348708867655548441041866504933726795828158771265052267816747898616922423316265513828998699359302758862288427697228188036900865695869318668553253461738165202657699052693507346589997046256612258416637195009793573232134049662554500024194429735843626305656728198536670698346513694692823909760573604663302224539677782157145811706891768856863520103133030787644238240015256275585574223584245338336622378691081037318395405387618385715842349099193297167484907680431190938066103521939038532295849698529621736199150464329692754506087563259350443532852929666258955462460750210735302689541556047254443663356181056410795432037381422446566506093035285473812858267751279898788233124445824329413135183248245406777976955274106136362361209092868046612576106196855069551734641174699808439010997477056845283898940003800042860069870057513632961298267209841766566187459111445240291595179846056340261043218682123882812354677613912827992491376455196856958287381383275185877923373940935742963123463929446971104567473771099702689047233734388700326330417974848739941975554883430345584144982237811514436224223519207056548237998867584092983051057530622138124600793582761479525509703906392841407441606445524908555852945636399616310681843725293864089960611059690422965538816981279720974127170370923810011297947656455951608521871552103421365018050786021707741046692494573550684884483066419783642904473034440659994884765242922179290926888181784646394840356718182537774917358252845355868690692220299446892551421512343267986067763800410706858353045351808790390385893877595340233365030352778845530216762056182165638908092583587019770180932781072370147412710702472998106143985925338639342878937792798792155174471066703152907465620458268431167841452799145479747334997654488091386383264795749735578079373896625633448089773465404092464042815628034811845154054647858016560817005115052007015252296540890718730704640230911762432845506141496312290453851141956212285777454493833109196010534854517576411666045290300994303295955354740870571920399280353083337015177871139936432607937411944760427187543253144032760511282848972171717992959497708521751061748045884809686680641273840683837496848131132816390107241989124654976825138436850904923713631444622731270840065374543437827823295726486566665858164178099193385473257899841526302454998790172870172850460895349746066393495734674620024623483783707597074109582783430651376405199079716952873746420169168382135494108714705281609775626257171871163922220203822032192525490376874308590241310859585266655694905739862879922833571002510331185999503690538506305617306175409086595349621972435806331053867919400429372865156329316164974135542103003275152913386599731325325314684933835503941230997387275057589567830027829694265300374743413528868819051633068975539722160971726466976297926398115871192175860164758943397317498542498410964594647621654059084015882931546224691164121506170185459023058963837087458551586088387914030593619652656931459207028801129716554869401900671547148192115861887476251600488081554418964808837830679927142780957339895574426527648451016937536649116863800759386503005778673025032034095399555127918632691545615395979144899085184462221530949156229548706912181066516312067719922144107919600931594303308001982731824722932374325283069987574608482549546454218895205919246513390285716549096661471847436375247272751355879366891200852539393457772522515359876932686723458672632109060384607528481925159350107562092609673129843613832353030695759800035633752118068532031843544505361995301888601813028351886485976635320435803720474815444228153571646536460466309904236695427603160403460846333027878288196900477308702900834621395900081037285065178513754371366609115551547362807623714765439927237829472753208852656226594931284694133850214462592850698288336502051623060687393600850240177386442098783121978140338664421159402737978048874351874488868564962939680782496467567231154099845252595860830250299602198096352816916647958993714905967996144609035831141728626212220163833425368553272340636458401022066565568747278030276929945603593894374838240635875633833737599054730684286864801740982699381645547584230934222674839472003446734016330211911829435128233470931012177951950155986558920639166051571592293703927984440429508266785889538200679078975068631414116767038904089168036252046194061969285292951213930099562417684455182548927438042225611338487127949633970884116661078490439126677652545455055719713017679023308648252070531524426825695125614388827764208270400077051193982320275198865518663454393172636205932882333711447032500973609244598787391721244590384480449857124933206475285054459162117523546175542713800559112378323009940925263815777106515597903936843125216690307721170647872720775775482093431764176379978040402126337987145491844301346803906516767586466957374931850419231566684503322417482504737472355435406505830364328788686832423354387474067970854160672914305069360044834296442099511004523544597164874531077537345369719996389987547864635496312519115912088901573083174694434871856038034065561759914596542837772903810285516697614453978696662741377958731170461069719338511234256714386525492970161866977677638737549691486869374378774369930792771061170983125057836637249185529791081917822112721471275221544032891746345994687322976303248753600625418619912105474239226488414131460982183677534407138372038997638540028688901059681482144901162943974945266703868479215477210443291070972172651222584640326803799795217258523980384554154638293083188744420866881316575312520912359174667346859179775125187813335301395874397349390391034200004510703484241808322781003097738495516353696475111494376519149901659094093745874844319310402555148155230293669024799031080366921691203919133199959651371240132957043963871980803550859626097590206474921378624757117707146420556823997896800842910312553280761616337365634283529745216689311535584407530902284346855749850771382872942702584968285922838401180892758377605989656049073768258654226861197131877944178517941543427358211313336552059995862584650517155711764968913124216066298194079964057339595169198081750671210810737104841179670727171883812850035283938566209901267302216779937710208141534895907827240084797740750757424572131259269599000193546788568028779871590330018006487116698914226395865513042591008515012440123851568556256528963880897400295486350881815659419448557759705164523026894868013152825509056391355372648619147270207640418112168552590952113081161405990678807792601318295253451301143956691514147850252881723411014797914849876037509272214460774612362272060041760596725597334436203594473191850402243891538733971270008496452312302492813333742639115932546616835793962886001235900651108598807543361475042142467563693582588276998899569876313824086888221636653752524849241227559546978861837216464964592674353601059041291640708679620204932221955532896766141990700648694029672059099861806642775922225658336015399781773621978834208227412260858410329620480231689928138569433086299050990123522821041332317425310860054917480039162517926796971629495957182892550756501390884854736362472277984579929142942545081244687470853636154530996152527526331873116729041100118312913193980681803850730720787671169894336951785582830390886894576493159768318719065776123463773181230012580216275563557587301064361237535037913508280441599219260385884277615591685601088298487144865256507035971026318485992943124354891091684979145347220954089343459341184875096412481088340372652318203462503677719033293759122432555979332593986794271637366356824743047533630052831743823936920640064098019680293496743105132281194217116959259943245089643647499734603584268653458018584893795745988203587442254964906229746281652891733753317598277622015913868909246917853447312819569502599816042315533840351225745020858800211396179313659761160695049731804328307150704477212246128109050084335000796322007312498992660993468640539137589711729848370065364163587463188325493814017336380989485699986672773504445366372215273093506624929035830251638426923775754669322313224802929437105949814956660096072336665251289007501488787831966890694724752928646501115296017468239521646365764497707454856735772393443447269124386339498887408197706852803086765473626931916613746944510711756002912374465002442181832673781140007322980799031788869805673970654366119797334007177627570104564310263621741576694013632583100625503567707996560255700117969969680847854388658922643817313933776882969412687208761612952661223301982115140617373565071645598558848329074869960752352949174570844011812732621597592181091139693304498751849524601496613144374552620078891030715236850815698327787010975131291594947865178271768882398443199634361922789474177771674580501292835576652384127990044689519539465329201453249813001783249457668569354454979927310598218812232181655588323721984304207145433287666694351747135786107413736987608693318316479935304121013662643461768892843746862853325378877147907721894593248416651145286575436474932390472680948299210530259333509371329758048552141661031766982760206516110976821834606431947786277348637344198110304688983479066205079323096686505074539918186549873874161012282701574437371695914538056978555336476388999366849245874217463688040375893186263527129892237827947539868947815614406711661335520761384853407750346938074601705488681366102211212770707278624357367871810203486268474348269833672626736826595272144487103295326198016040107332384204618531042685367998291935777941231405954131817983639939934987407871158623574138885161924153763779456905532428476742630160764348301682915164452071211545803781957218722606433840297293779360761334378136098371167583046278950029272402294146474118259788516869097255738944875032766302780987002179793111437984088227601671187479246392613196374944235791857190925926538418045694433089327925015847190919929610512916637322752925433914471544060760697992834353180787337847407822634936896742578179422860782210168026283184981333898501477645107881521256661317162016252918022268144947589308804464967586860393324222165620438316131090262083736179553737367767874304666980235779150322244416408335215173947644560570982003026258207705408855988083430384877745916577180764359350271927042815688401215832548290772717439837132401525251754727506641815768249353440215796718186164215138149271168311884383740679471654521144765974356890862461876737227682224474048902773751849185980748918167899642715993883345618602372701975595354352736713690981748820152114881831368847345930180654001858930699583833050578514008251485455941880970491427481791034762303969313197972960857906554895676888086299445223107631406097328712475602636395799091148976928175139429274305254701032915211485927761930356295208414126818270559402110459737969830005168294430386787316307147053113173522612071623717288420026687157039446965814762412512405235216402891791609471647123125294287482363223339220601375185818926393060986442867365641347121045329200716571503529606985256134988124007188669583422662459625625513890981904759045691850333377097573028212041549325866025304525301761276394093259475955651409435752553732188837378174981815127691769361465227450631564312987887137820768174106814965065827768075608524789836403312302674941432073536747815155543019695378867522267797624404188296747189894227592616774898585353242852115442021585680492707609043612395768964373208221659454663142911640257012781923395506090939311609721800475571706724408647917304909150127783694316599656854274935593941570887512583622171236697005584332790447845159308435997619873813153042575871087079483306904542840841344333972223391795730991529368510183678483800981627890987531005391491035707331132146587667348015091446587918927393371665225801053241510944786380218639743000138005063678831319691337148472671098739555226996831302350882946103313216995188476163455432255331298695779974310753921397716672673928494339882682303048251960450393468982828999589944805130624854801472583022508831869864713359932752352541426420657309466385403296868148116594136964313563047315060165035912193008149687810986327451757466016152253348534989251563437229827569403296682373532636313443681280672525831864601825749544225213362485142174016608248348381499435292758526489804190669152115898454382441108256677304115985606162638487248656497216831842277559309904150943752177006750496820837552579983918278857507151739160546306734886947912403492271346513970533531681488495775073286780930968882697230665312716973318196850985970997684464369520913133299862048775437095436874360592872627528050579579001951047739485399570389559878125357414036757301133512813657983205737420293664305487802982998494154900499049094928567738284831812000323637965657272450939301280650963366897020203649128855221925709741614746060271677018372171260473006738557999762526745533042543196855449745381311043664786630543479974358045765120967738776743071305207935735528048785901792799221517820074070457302480852317858565943529314898009533848106846152093056980470071354592556732755413841798794130701112284871417695582596595530221853476223921885443229419670428211183158630705641115727339612936250634885282743524361993085307772377802271563152087027835003265410475282697995644411341601847087801171705752760696425443520909894750655389644469367681609419320683598768518814377777973399790092001857217389475857706662909469826833411489540351738463712456162249634628810019730011913936476834845099914529224480223073129270809950414121943287285031391684265644337036661632306158797872548801187315162777562136042632292869039696127887345277737940526929374081980159076443861322876228874403742078918379644852961658511983347692510506980302751675654096046515352153172836181614890510105216935168052194684351146899156691157945387259347108080876109147498480944189308268307463979845595998819523087974049922051057517511042300663199769783193586162158827606824210418800999934970123103616788554311953249575490312490113279082298449143679965867404294232559906801288287084432491592827286719812807740015817167832746530409529324238297588644280326403148185924588612766008457947371243340045601595267261890949271808734389703359440523931891954402904810259865945427609169555977415063870111083390696603443656498355599400511696070618308957656412323071310585896877600453902062039925271434816681823165599172343279566868463249268737915026543822216035591567563899462741121136542729616860348533776640398381720041955679173596892501088502836718802859269859397458391607575387798101739556318270606948359947337012192940380183721271731429216976555962138057827672315590882107549136695288309190934716611929997178996683897371027433126488990503710465203232251082658634759548489883913727357647954205971235556914185784484664198181542764203958770462536991574551721610530946829240789864643080790130915755900191826412772588577686141163373351319480661426952964142808385470645349359613290928222746004704020468900053975110443992296496653750582670299817777604587767405268962473160292049602778082156436343661460421605560881997988644444493219102388184641008328137218506733688558135752346974476278106014085193305520490977772350827793988490752714690638158267866003381285001217340275377984749139858315203445764374633278752782577848016376304306129686690094701106779090323659136709879141374178222635495754904239408603286608622007401664615083658885907006681987697647847594539698396558069899102370938215132705821957249130296782536234195821806572281250820766489694001981297868516160146160333095014414835531202580642871067792534094545869447712859533084935044786949679834416579440208306255839460669623995102603741069181495631719719946655902801350783142352105298731574992555129466483947494175564363474686228401198262636254557697321984969712796267651218615503105555493537576725435005707548884364959952798658416198046023407349270924956523545409986259951781079559729819884615240200198217046407767158660380235545833885941958315826934582883820799094304099159846104138617295528104118146223314852207115691650484761470124176500896766219752678406571294529359685254078337541736453401157826930388422703309361469600149974281847434340346989899633472394593835982639532002189267141658876149485683369546200975119793062660801802706436083960568615030026394117600950492772500419187199492713127948547947004459066967030326025664080914719266913575851175760422774482170324065036688062624480278560995190463547495339198932973399854922949125418141457529621787121928911088299527660302077310263358946990933113965580940480114688951091281848118822053991450590609600607655111066695638549987023733529484456384605441325050824845230487397723148763879311176647133874526133883956433344973588111463220183063962454787443661688613693759991617273413407546043053340700187397965047122070611101875251925028698042172678464048917573807802528300847769553932533192624640677995406554028022755459361587909660385786281045811604667267237062428671962337406248609291808109012861293072941513274019823966876771697204281023749831524555648155223302731446211127546508939976271483194528202101902928199081355956840947927820290987427836517530176488126509910251066071956838188408880554369728608234753925560811845367729718986086225521191728389651878811607333720565221906154915988572082617471207043583840796273828479458345602253444123540051971133321500632326624999376118838744415579003174326142805227391102690425262318860913660992411042961334109071295587159173177370606909757318646209668689596767414642385223286250445089571081988925802805892192593849296763925912718915571218053564571021622962699318656847112038368907818406933418196330451603777967447665884275114215057640167117166568197778696542541469256114232349680918898720175639050152294242208115490725842758189102362735353574818644741597687212300880533804643823239219830881424962393937033940474450075957347516215443797113173150837801185198088161715043098437505241698685580580970661926687603291862718609935024826422983983892439024389462780412932267323545853046414979068664717833116593093095351491495436311581344641545872004074069867475348100567126718544932579117051396889161915551859975095283452445691196533083673137852024998688089367231599555741843498727766712222443174220081912910252758739195408920188081257710643630137113454420226706488240362829441226708882998837665690119087358661093741264192727188040162040674956232441020877929357713531917268992231335975011952695163124337125502145476702007406549448644345658053314840469438880558560395240682225701755450261186042761798944592394911417362259341575946736511630145165009829317697404485076205362963327216756886800323059309718511930659537480609247712252450120765934165309462674644968144497123287018346916157543948683370764189049029601755825375102772942081278395363190990791582117668389014417008632569649148147656388441364014674820554155891878906670935852840003568922953164492387556926477871288676486976214554614095650366062394322041679602154294602888604507706312166573709751989599567305880404396404904196563111327019513424668950715671138756261756587223435640937961483367168735826910292377695152606231676867216954799928850717093697536580835386566350455608040937738027366151956254939953948945321183905785581915330660250679305387811886087433412035882788898924706150777063839669326094019903552636147362979935266696056499693954291547902241524869394236278961576934766260938189896453969018408863650008401414369409949191025616995162579497663784772316444791106390908408369080885073974905901794994746829686679848111137494607600570003492335859489318046761195735487726260619949707680652329532145209198400224331831609529598021867153628531547044788382156089375563990603605120682407895407915812908165441812559619236389524694294887864307776573642921642967154083940141560638745948730192790938874988534488784737513208207165882339794377220704651811015019332289480558537838696936140062730715745901088287795433885182556940206789913940192217030782165621322547368823826253565085700366595598239384476168025643852565930708464478284253438502937297090929948336398077810561568299784175704342122907801453802218489225178086481973135209290548544042441612527279113488270503235874803036829216559500796406101777826038867310568543341059991280459287266996668981760401411260202053183437329546518055626448254321687035085458757619745585547764110395473474191481709726356139587876920001731906652330421138114393240861714995426063019122759036492362371521020366388705387313400628858146518688375484806310845264888356656860928728217747242747177486558497447840219714934987538535277734903181551951678880126898876439219711340634875497409667414046041248387916081507382316702934636425074442736148799029589114832340490698080472538247780037685035258298884736660382213387715197624083783100501562377503453426490080011444579524557118413835035076417698497342402518173334012898131746192446249237061325856367529706333209011153684418159093365058546996000562459159555363372504105975622059053644233368262996840190057061453184362596485306736865304218824720349695409448914936952920719684528570742608380529838272418063714683817218103415073605537532229088764202786717665529189793538883134054630987862976180987790049701893587494967810003330967152652249306905406304381441841431736425199701621257508753365614540756496338709804318330586860011318263333480403664903802605385530705498025274401247299163877469047250623906427735963748334648104521642607359468322445450315873938369912312778726694265516023982837024610261046718349806140998517527558098731173274736874972733606393105792675320915528685291262437896888523982229351842316727600972301395600316403009883804747366091953789877647351591772218384890489823966536643003355604527275984559205613977077512250235936519338439957211424211388207739131736595746021141616055275747564504519461123749224992716802036189405361395056661445751416089852423038815980274821550413716208804645128062453838340747340521950171258996645631137743559508962921442956248358429953245263908519124379014749353470661817740964459519837338555528722263936570760729896349779699919285656380077355923711556715842292917595055721647091262171237069339460734564340661160758106354377060779494300905132677252584555557933799464932174995436689862503457226026607376504717741604532921993014415874476747245930373269718096773063029849281816140434344970576584962298957674221575861935228081068906661363336082238185309743871840379260760201329297119222421185332950186133698172972947872812631937205928558878691549489797593016444250128380897510045830944203181797199300063117251628996546355158992443115693124149670644273654201215673183679441744265577736727486887171741432923178027551493957762841101756358431706738480243231706397786412765337162177386205170281710322979236097208953231924798185843790099351364279973287101509327528534390692138282365393350499415628675404007268017063741529248682684784663706213676519014091011591345000975022207771320292375745451765683040275718234977851153307460331576905120885963756725945696349294234003162753674392940393358204731724248093147579210138865389803437269532646409568325689516430818297429119191313826735741183747327412569374429895982454982514815016832428481284529424762364332685219111743410356746167519546107204275312113819058156856525056023753499956174016141328472395898479352160308896262476979955318575665101474147849248374419476879421059352525787954506662886091623370038176513701003532821856845750029880056938125177090436575554685283156716052135904295674909753366537530575870607927642298150468645149195530527073182498297321069498963029662727071660063271864107291336792449044589911896644913251562597251218812735077792189503028798307111651967010714589436174858094754150483500941804105123431435458623678884439961348818324157980460729605248108408977222025604271876315261170724787961403414691759589737905702611662600964217888973348647667231393700113723705363760190009689501600361790392988072309502395677906359423577027602318798510733589283890161673916258081184612151629156060310665686270865787653344760657977424441953222987580477868980684547889657268787463575164884109207173519019003166480651565346134974691968259389734734267973152479618229045779583569663374917957767795512010345529255307055240986949093783087069839341029724469715955856371662915006578266929477561739522430862141353509357322954693145238957998015382542599600001927171695783109459340039738080382653642324864950721841433797133689454069019447049188241928421733852382965364801741457444707016692998984894679382731748596609363826196228260515901018250430599964296262958813719563720461255908622273449957834468309823302613903242785313357517939921291982794769542389404396951531655276284501322415850672998724542024717503409188060018426534572030979892769053571383936606103475515343794252703768282953884893942840320096339695377218367069119366496241496944396946633695752070950942967925796860551282642209216471211989800722862276451846343582899564442611202031826026009617000154110298465079441962326222026715097156895887852530355140480800574887523862632977489011468514489798861108208852432440169698940252770435239671646288774044818308053903749956780583891435907888664387886323282250333353738879132979075333494883654112924358313719182727892940876872777119195322182492370433870214994375508496152750794063157907679898469080551034178082510961070769181442449991035436575628377873864857814871373991121025796743026140597054375924168037164816852871897825826818239888904708028234747739604801540805197405174472275233719131083986571160897752707361075637223087802479851775554694898273122722526255543152249664578562364454828114051916806336214454336751432734097558524527494786007355807180328244605056067487196210928700599483817874605231365197256562404757920913358457895727954666599638973256650126694948009396532481966445425227411236571137073434907802646104396828658929635212902643148890145558517717164436452407788357049889120992797132188748358788239191439465375200104444489728268470260859244503712336469995319189890070661390170301842210940224058106984095650100988077519923147616382521428892501362005341119328423302242586347271362038590304505028386136486186099209354884645723857659323530168101887278794393294943217784723187705872862337371174609279648522452124133426725982921846966471660486667120764288285068453168368289656029407239647993939251031909104177158515431870250140528108247020516839073130405862270128109744248859052952689055524464168174286407118671484215746373840245432420220696600835178997655143985159573843621761594480692661628221982226751618499936752724282345170968550448489216301200614641933924899358116250233395558896792445592791221206867090480217433452251196670595228961981466171915363947275041583907748101676360243646638225298381663050236940489823888962984560954933731753488563629222159934396032036570569813323249548882115710608488390044967442204511803708084044587873369827611887775048632760228816089010075009266467023989849144047505761119556666428716297584707544729858732441621377823541165402150568789584512680593083005375243044036723804064810051548116500214307717626752919880112291504003281612862034642730134014206389620399288980785119610153185755493682249169323609062027526267604561025188720498187698811443748721924138216996943272638521136018767489393008237240165881611226305215195131476309798196910464418159590164531218488253257225102952907551699298268767709856235776161428311099494253749301878838376645198349410001463613333706964642845903080337659901390068384643861353866297374071576135131726955978454904764302438163483174492542110446986638506777160908247115730977616452002130747902639388980250333196528265527183110243039729687700863964342224184562458483014556377160700852455423981109529417774694672878037795885678730709221772805707507193437222903736841917077358079906237634129923088762899843985177549887902320479751394741450421216251568672324735233978247159423450372806054938809031099768614490656701274607452936966712468563374120369790869054165515248593215977565873779926953510125738948618962806151241015773368872369280610753979142424967094176371515916369318424370674302830935035017596529764633262419071732184352643810634481067555032503684976222982155836333844128589946365306936886950251926229316775753239138456151610136194475839792864678765425763684420667287774461632286122176501981581305985754251380348211365065497478419896271374985882115640506577354518880593320984399255726229418789880847439374808803376586188537426728777183953658376603503440406946850430640545083588522461802683682165260456171265220601495999728165210715607246002262319893915732892659520110826295283837451527413159730219854005069755526066004915421463210131500036769341874644079644516591022823917687510323202494727923814661308166930921602309883536774462074033792624137112539468910623115227249058925405845243684343273013134307069509817734971323177399292034017585615434589028385028264688384939205660646585844968541124840961958740953754627509909015301729424919241681221091704978701755310777113637148178108939145362939638202569008425303941734585707938627481750706850017415293349608371277993045670282536228686006165687440344953431060604952527407523118090999684702856598536207930199328607859664111933557623669773710217731489047324815843353654884257692345620278873927069328685290323195647054926020545703846299709707981152464013073020549598743117062990215357498637770954454855413023011626825293435823578697138944307767060298799014637521497315349606657921416600923500611966915883808775951642546357383226182785425865855354260331103348386824218861692832082486930715979578642421705830698582427476250343800369612305129941689797577612424857351819539712390999946886037892092701184777295352057512736581677946976841948571044776476862332241639581889370815389465364887936329472358819531309436511484518250398760728777248392630924132506576508524341616509193568038026239859539210592417632052944725189452613264917644096828859127040666371992899194437000182168444509609902451704399566625336703935879245793352831938115029944499523900019120546921731553416139452603481503949933740408303263682704474074691435260281284889759455002853462025591795342501580087415096078444662844887181121431860515530749103804854776054031861679931366270405421366008949287803223557138758397831315881977791363820354023351718083180919683552147306433664444384028825904218268858482383579068548319690207224828031850955618556502697067993773281347780559883731255207723825065297934415558405815803463631002254186029159678901563453143179002958697921071155075094309794667865437173234839990095979577866639684482202775425885521708053249910094901620637055106795103302853071841368585988653599826877219311669190642319248629602936139303985390513704694018961919755360413986353093528259108441820533647150854201426758848321139486183078667408865763019360588242433251368168207328687186093318271894606004237829679579890198353830734773807987234236914305301010589969625371451480734416955441874679927530866423513699139237953811741579356738866148302603509805757057060556079782893993953455739952377889999466354946456245160961913730907095786703541887639520302892873415085274672523515118350346454550906381187556435289536403547807307933797496280590723923212346320910922560268939775249769824058390567502341069974988740083652177908265360110522043679064250519264402355203978211966583050289891783597880583162313085166616671930259816891022953273701068500862476831469038322126212075551794498305011071936965498683957062114813525229716935510393533170748705273417844104932313117382281936921321279716775806070771530307662699259384088867391877434766518543865445576105136513571251407028886495854743572408346732881277371557537313275446298674933162397077571736840055226036372691700834414750139245066683260154947070770430915561275930468301553852865938227440589371128280746436743601667965200835600902669721673708567471818670657065323310551261304640088033643878186713363762353142303622259539118846293146720727877765445276010301746057391282063253183722254354998751916381940523826194984241912710000123290399508171635542952618913071660434882235036727556408048140240770134443257614087372291287438262289233248522952175108396958296349304880843286843864395379123024381374134312935776538117922959867304381108389120991047070743140874832367128929824422139773334981740779416375032972209606089105243980308481520465614023452782697105328955221722827192510540857624681083304998338095954182502608432409211451156050112483059913877411817457396080330246662283846254029756623788295196839642313678265970615131101143749175007447682035077238819821933460736626209228039917047061153591979636498205458822680915214368613809830969906308658810065187895005275719489270330951309247361795570143155731691859428103881598501456399672362135136440647280509315879986567681075285535177134016972959017133493698324300896978567221885002895547346529586549712818577364406945646660404392843135743309973340759451390618344831754608027008872853377771436258562116848723140531352144618896049857944809463310913059716581832943066990760440184047216405286014115734941005852262990781094898133401770669157174958187341598889327023837297845742713044767789178669741500707278696335463082497123275474418956078236485029201168739273537275917216411860697428895447281572582725475625619153725514176272051973236194659759189542370964917281790212925826818057234813380362928143677118762541459167251316954362147132657984620571385742289353651513856093104412630123777349661891682916006744209801383009296899921539951391082591135916264933773555271911161569982688255899802963026152559642801563745053249477302381203386929055687183075680449943958941442771559307723591447827319993014925515185958715429737849433776003805199046566639172423888688524807149450094581705550318187722200786872098180183042265386617131705481421999293875015628745894796669108592051843029774761893531902318520905948765090302392314732344465983416983002242515788127158060114893345866206301931878728446797518839037525550664434815606071322729331331222591579751995584791901316428457178938132406495038202623325886135557111498867603803368361885608285971089686624665602944479866215783075252397090688931741738741416607935989334023182703639525550240836627813552519426001873755529459346516314232776414057845597342517039750639566284010622188910091472525913557987035001933716164169789321678351848008912754157562344087668552760598084182112467181327254730325389613337072346377377402714026099512665387877207508868110393880486881126581690695440899453378418038275335774297732643427070030492121460573997878960222821454858037809932690048733845894744874387544797915356596429547805545904490148830132486613620186185055752395697881740390519092480183875593258351052371511098261612674412709220805062273709445172109141316883329270618946396527935228158179961216299962151315755421830227703415310142624769041232544114665935448510671472989309296864541732775277184129302835846617851750220814856432737799544015533631865903030339781127413862565051080619268823665074771981027993991256604502026763268172221739812659817172768616472951340686438046667635872478920570444057907959295237345315395804523029798021024883220542673427772459692604331895682684538355916444406794251632324707038801260757462348615592526337069008738315830148524648675882895773847412723769324494313398646654522193191372812005856707449649821322293616872337192801632814809882174712789765585434235434156291285812362446014583711911487317487529407299234631780096607994808899063800583422158698781503499848728018916808836836573219938474610455164652310193315014963339357820904725800835722355752607407235244793364544000324175337137948105293542695627502554412044161813020783030571260333681203756478675331931434485265490918506276408241785187277936524367780571208551865321628140694205435781474275070448638659910703018419478341483106786646473253178734246461671116131284080314334420641831130222144461205002026139933748929182626972239592749009238281830496193305913304485563495699684552078305969204304494498045310029711761703728749644435225455946434585428451592989424407580932367065200193173999354433141428884169160878852196748755309941351609487916868647943800510751151163933545987273388067134942279266867580007685918251577275683887002684858605407689532430340838046729513386684206574856175009722215049354381854644175595091112682701746595515776560230637023028037955363158361432550715600826373102065172892150524289108350640960724956461601435767104604982139748052016647317068472308129498174301701425988080525081110165446217412668309902248068384707467886078996294682322057864878586313158998072699501081316655905459043607750513550242794653373126904140607136564745237941609926148148312340992103060695821269658166537802783160923240323022201941635934966039768184265049800837884286690776862298365369786273285696106288445466507582402072438327722861769575983409527341313941016235382345771095677417023974006761562560022324395093007143371827603536943951519215986128380422633509805625512355610986433747302355530291119973302976100381934905223508008688142381954269283082886632015796328885794428161499222927853352492538133351692983537322388965480520302807826507767436855253056506496267100108328754840369912934393362746573512659248522997089273396107942803765911743183989481719861456516605147471902314005147139928126371176886491478668288533966868400539318135973974004744323420622744193728837894097695116290370761920142349759795772409473551430287506159783600802926436132773157565139446795350067390262479869533390714536027139657712760106335649076515984427053043261101116267426377548343294942295112375443915345374621741479644372609042001149104682454483143579734598967652513557063931156317667653585430889738942939013968454878758051732436105525544619724506222439280817442494370019320769661135393646074750961444576812057930037839311090710621702369786427133376447068843317655844556021612896081618453674697347690993699326314809519343802356677693615267646505920061294011955054522030040322696386374867640525712160561546200362201574459177417063164048593423462947271477121833653801832161220270126810959706880831650345363786861667999668998287094491885011936960463210997639255974374714887527528329266385399937156393714243131235330727679539082233474203252271006050394132008563002757799313514255695225886701876853345821530342239260611185344298862160423606727853383592208192795445395982018214457092431374275157713905345892344732672049938725285048748414171757259641735954951171141669554458992952256135477399806226180909847785822368368088097761379138224276150293442881347071076471390868309854660591301010746887702122154168202019664215073838343924519110827260254205781860330698883461405332181001451541332822279807851351357988218486723766196531127994206318194685309328505311743915291830879831130266144472639897337622813073326110120284260066644011411188654415082826139838912311526329077135735756965617980211938408085558897381242990853268852758352024032674168607707154550838501093688507637769969800934973626652635502019101896265804594143619204781430230891805185683081794899193245664088781456140109970343738982321737175788853914703090148519890433628395945842179532268837517424704433044354816849584813573585146392749741659117954040316941770324148257603783685109347669698772654266878223783013965411441172928631075575814140614882539791587276447213410299080154723562303062018635354826925175608786793031924293398757824458506432693605102347285943816894006899085286744502404701609341817428108309906183119521573953198484883164671358843347330732870681884828536193375666357639060091204759333138269798354327627961894997659252181706738485957254019759057415646024277540248684151955825579218767899274894600946869795368952493867415878482796447299640680955838370737788043457123875199820681155167739921302815816232459153745808995384979919028238987216394311821960754942711965722915176320072465319796184913277121892005576196804505088787252101637759502443042809785821380667219684425136922127614414746776248925623075842937536070852960885605301392469799213728166961601743181027995509781205503925341113503912992566663521780177233519905783206389712886945983161751578497536332948176744399692612398775998139663190064098468351350095926989921918948444203221357917560439574263331775700061925120433329286985511689460322209634109248632948804276480796986757802420408436674426782131024697305504026088956652481607755483166093276038895929379561219374896840327900776142598793382096646528560855629337521018087144052364032234877196276356955144547745764475024514775016079230594361114278054422360051797151288325166591634676379586171099983122362928996434183310661761721584088776634500561648059932389906923078788637516948087991976932431057283478839254438215326208817356057809842973472130863460736670106405365422649622261112284320542160007688568489156469431398878579426456536788466916674679946704652645250148349774597860435828588032858906440401838927478889648079805890364318006290688575382213769361094575705085937740326602401720720488809471837822203510792053436451184830299006906180927447171300044788735337682380219428450627133971319411978285124802786407590224593562931697942984919085334200558077324322214268319479930043385005910452915527092703006738108288370502237587917352213283259554777326950177826306558940377496059849633273445654054741491160556608600301761340948251335724907777296024321103987102373627097034774710852427996992035768187406688719571902796236994301761489680186830882125865968825216973654778810745430464172100987848784263916165820063878198670621057362755087283458297283988972402207167070075751913923891514859371849884038499243152333503892568488004504061586549143065656656461200803948529761047100657745950878296582127385043318414276190724407073698746356680223841111464167437595010219353290706072029172520250097825746594785561339287212904414047229475262185499887391820452694579180879513605434294930033654358016464206717509939160070810880520711479839974894670584117714664886038443941515019208423992458858968096977563741320087508700950606728177746299924353860448589901056805054716677016089421599135563359238388376947452657335404307177069774139705324733697831452098520655714556484653035057463015665382288941176015862469256128670030506215607903165565112712158078214247530253543079582477882518036518957097710577617167391161154207050024127418214160972626578716773076372928600720419125683336866057260906471464223645324021968089485453841849480444352855887637418193583201899610081702978646695726456466924993854851145822729474204767391160827737673071665948379266550495484585615843489750797242245660884392817279765042222734219033682789489153588568444063696531902012423163178241090086690076965920780356697188923343621380632147495438095973120987403922442548080310451851591023066812966455315718010785175151276240323315427216686294451576221803978097282491922635907388108268893697804788069483878350225724289186043611772365185187432696870938315755115253415891949045200307192064616003469803991643627385638163572189185074012065598410837870729650976419623827490503468072055288345174916777683890339593571494510559388519599280328685003986683560936556870523373301077826390280061064066086596674296206903476655751997063838787955779397930669107549011629174760541002245321679297063097826789594838870106562151330122499698861781195136464308335918673712124793574225986216898012268273596961332523958963166586987549235465454364877083877874852834118941578700361881562136821695762708966336553335733981149998360285356863750428912735320569639906394535610857910167870073577303015311558653619864635464055200886257183847294183596111593619465061292947800346147327510037910160299834163934510734575682497392572880654292773769671836365232361310409757519000812729971771113407467752811218559824184380689118865516402862510487950258217140950489267543297945390868844991316631485490076293710230527647641615017618009194486052998732096799489136813887141285190372056723077916827760802800608462102708850902927539035980824302754957973949988361489295311180317161792317824331670623997815639844089719583246165500579628455360757194729126230988338150305490270498687681444927337689642776576675910514403555941737401751600771579913869004225175938468465088629040141211688200920988176862696291057097917869888611860112847349429724518361272312331671673664615821527170722150739284798244949979639580269998810826162442853123171992912383696233208195667301695903410355335931689638784439302545247398962810442238771234994709845935619481540269944911074760283576858553403639885927994512297007446190305096177623613208805027850657768954418866479249883545376051499342350204910064614778967915555815592956827438909701173774494817562942101519435134787662731933922292572911386970303036463371156120246206105971703473379109222015934933482941544982848517368305529489120120660443220010398890535997364406158614143510995062286760044826734519024971220970770579049748793634441095347940085479664474258984463850052532565754230472424051484092226857326918868550873864175379834832970640576978923934193258142858979460149055962989848488327149019950850562482785444274021113738934435953822960666081913424618770033226323131106364294643227925213998898936954217885951133882560452830602799781400764065647595472455950954300477424385486294688617108909497330767220327908554196340791804799836956258972736386764318970682889144193024667362660858871114390773658500733586189478626175768059976321620304006397074811924904869804036033557967264333056035464023025760763924031539511426213675581390796877159977912982556031039691340217001329190519999841948097049109244706917812289345547449173693571329753642686592547025119243956745861614418599206829308933702052591117199512762118252383763539293781714409420425993135852494825549801520847854313624583423579333287246793752542467116118663548798609234956487352480170747190397728440839728835837824393348713334344953936400631586681736896151108899988293760034006988636717815173308508651355139388034177842666851123171689063860350794452627170986474429672828148154335510684643178692355424529201710892305007305581753454979677950486856685205671552728452454701432497355165742401688424119678125989334822854111859688164488914913016913011138914524433617685078358690059232489050631806087538857908402757070746996128046332104803689508339730032047063040947887633939214703522526965162453335562575592234812396429642754885677383705688551280721251872167856991739469809225703418295194975992969848393387068583403358695905715133152212613334406579562292460960188893874146632187824502166691452868309013807151929088188438509995050314216047385152591330086888020544575527689006430230255712969334409355059164797947447112387998791971001935188372462808704961932339440343916110860066648027897141919078194514445008945781472575384446588984067487945843266245913643674545485902899557214880760848118285373259306333993325043391386532792980172142311624138744444688905048476656171108098397247166124208525056507873954289427985743075039800116861309734678430517635876549474527528283884228250794443029169902012501861545451854374980265000444153735483402475559694548727910993423820386951575910168488694529358194419459818702123179945012088467742564755776179215629286516897228592934445949274387132061561812154117635076750213334586045711411883595767229751802913472172181594850870211941939774733223948112097027957005421636831723432228815859631390836818223370358047660706431954054435244885632209791943997221280918281924544958768354196812986639895599406802195451702340093471361177028770741736079017637398569951737589092392575514514915760136852193893686537695517652907798845822054485548738987399502230167267157245130920875862276998876640192014498832924234926902765685528810094357481955031267830685565241608594078152214349985123698310854047493399058757958600091901096736014237053136469936430854023165147497223869733607963461859523800542460197930406194917944718422394347347436524170626047410938918843529064151732856312476811434140558251691726427994824477843978676108152399817921897712773262133497996110146888205349677849009818569603674477520117378303007615670272319837738846933409647732927466662208374477288547591680391216242762250325770716222146610328149662756679378641696133942506462184485974996208780319381916673464037721927760735922207829345348208470867822146340254303718362101923680167694858275636137061702711234538240506672345460188603983529213574923930478215409324023760955493887483000017838728039057797128067069802574174935123575110474794394304723617290197642937992533605439910643543233927066080504553358836540092469264845754237865375295507044351762415397368980741597519562724923090560527244128865905297092917664649820402562082999438775779479109913965521815962264055639622424061164294196930299123366669533490178772945779958343304867319584592196548648956699687906622593256191467530153261617622431266979165498115163279068812872790684800935043987472369305582479453298951019293347300683700425513728626076728347940349349765871712936957086169793573950567219959630767962805980225967549107437773825161434277067274245474305998471441078588392310386433998423483418503430573024418207612288828685055384937786549017515740116320067693790114947760704701616501891654830802803402622540194178035841084432991443181475018650700557202154292270229174867650300508244836106827235965001948414551561257228465771318207051327707078357203117220383207143411544324547049848002882415251993149159334200665148723447637800993128673916771887405929219124534749478454495703598473275386618502894310038703877238096683210860602703214249658719546267844346498593221120216645081840541974277370908718138784771086050691801484910904548069356260996097482571123664036110202449585670789093648340270842045659847897970914469488852143929483130827108194080781323709498456450716603107146832140068072709987527679412744900721624185226151139839098126679499528203200054781019673566931585999362457641672145421996766938243776168845387212688732305947011185299375610978730923909106248520893532854096618740809713372704419666816313158940351572730831221298357287471639845534371232159647782064722030181058908664545867928688495073970923287207850144240801285595003959461418905332237842462962340928334754211161824710324997083370256378965499658391314693055171714733248755181616289984194869483350481580056801815038637670931529988298519022671166230836427780749981660481209584395376430188994896035593446116209135007304009808863512234297435384091882940398337844778764389719191710106246303878318904484779875823037395750116376691610541452745509419200311787172653940517357960027425129454570499826118782369270573677702581431413023884921994923402550015089523618836372059807180520600103920955566922870491628786478039290735199113652224381911363325688921526937200910162584906279534397940724346394592997824329501101789764245644462859734667400594308876661655377518784944520501075877464785930856512558531388360218654196805246335325227633913435939621481448016459870287470552200610137515487657899436024073504185424942801439262198202252572678068088271676407061532809640193795606148975228017546932586103715477097464217396330403340874824004306794696668735969075124011459845553351147201623853173018687852233338598438155183366871155642616431868063460693572522763654705672968032275713241336923059584792232023074312902285312651260879573484747020592662039629333486336848687797220262507242500023350997820710269705495434809864719250299069871801676340092885810050453695691177014891074948415196101558598767488035597855782959411753443063653293625030612946254390007696480469576678743141995451613988357623270786286107817548130478080850509045878121358687089376979909116112244607821546811198788396333560159581526280988850015438430504985493270090602741308168379960533908338559138748597131575359266930390026914589158495778531137641951941161548381118997064541835392884956351832111822303064058437077128558948012313136854536004625016552343391896541244844716209037056411231668524779366644577962500045278325733678023898759309918361088242368576607739746673711955491348995774176174875078187306609268632897492987155600754227426224571015846498318566696789321002281698314862372610149032310059668051206697284079335147134946146801175478669152312683527376323260113769269117480418277663074335579425539844313609129255579565838072959209301635691984985012930246528149211149992901271767295064356823206500280738298562384323946590162476536102839748888153329324481201158868207175859316652553254343158701405565694342804662301329809924165081278950940365415659931286344170912068031074822593825035234142784622441867286279475124320220081971182092370987492008960669016917246832943559580899770282532978509005077490759176158108951455998579598556024068819472913800419341404810706421575015093993026529412189969630613803836945999003363337423603773377397966152886045699776497410109760980399586635087320353215753586523258127060747792974090637867755237318321815389048070706680433820334634669869431288656051995640218098969856817592675467942297810288647605435904093644624257097657533726713915048773406903546044281118128665186053784196467498204435071376249394247555450211973820467472762257643336918897002155010179338262398085585488345705043252036564478392688409101091899940626204066904932951841108349176327098427795423807774911502428469785982316421147937854148523948957065048866129569698812786939166054768878012445466709124694002775810833376146352307080357973905361299883613620036388587094892208333135299426435185720426966337576232334181279977770816625730429712606615691286533394936396529281539449400440780878903819550499374984336353215897591475865551521992893997609889793175274573039259601289461346727938061214774636708306534646168040158569587805286370145536095286486534017716646317826898925304743197460477522878952649350526579753405112512520656254591967493895786901201530762214003369210274483578442174054832751074591091360107883932656189529618546645295298476031192160090196954486773154457751225446649678047811399026145990932897002260717092213760473158462765739059431150949473133577332315613520067190549765673582087673666779583449590740943330730349652727685819720712862949445164930964391029852296407974881534981168787107701314236382539706722727857721046698191689686933520586273068895888859654499906127264520378321365499957814705787586366567563082113361518465026082991352823729380158387567572445636489470431737090930490395773720472491939312294382683334180129211706008437307631180138054644893239031289321724238727805376602811735429172658837991070523802802105983009203158761122774542910562864254307335712509251257646548585244666466905206664327671504170357337984675916808421258721531255597442090899767654530520345622127642254159413496154609245518737296736832040412756068026509737371608581177257506605322851992205995988349727607165852496907256838042307532063842131706141689245914220696464415960304783664570814027744470102454988943063694522715808438792346485994495421373115769132987794938000518331530749751243447380397360646544604236315574482786221606832746929458219122070194084496562173927275018603517298460705395307296806626863508335859387505372937512197812854064797900158252087111271378328737534822425219839342505489798043563974655455190193758099383754996590773529852477197070798136598668807995920369973836703017279488441760552275730687504088282808489135647130544644006964698043925901019508635598711395757387722882688626706060194662884010245733056575687105710074724484214465386411473593956571528271516408760010356222906527611497039698459069021407715722823940561461296874035689532880468366811624258975643945230783293583053703604881433940363301080085769190304504908765814566406472035981061044601554719554506109699755151430898142681221673886446839901266600094390448629155556607929120896881258333308040264250434634353909297689578871087817275150522899191945866667612461485547175131889279010438112196683347560451310103942562259548140265794901990042766864621699013179720703769723573231269944114428820698869482611223668946186978173220889927250183246342133290141148565141906825718602632679373962698027037968712738347554059453626217530839601481377015093939735806559409314461207128299542481149220174427608577783716029766789675904723095512807867121468934737305635819956213552284487705560279028232730499941131183861417829043123671196399682224997841042326879400418604654851542842415369089847751287364978253161853915509191262084666777598601026867796110659082198630868940642707240232728217663511111000009877609680155010211835340671484144414540044131795234400868846054422577187264675800706961191873275491635626825426549515084792362947284825702319866312631690633263343446541279228720606496837316816601432805461082110091123834291525523131607152541973928747948236448691965311899942805520330232543641706868746500203122774704669629358852683612986550781793021582733977313499923922605974262012396896171872648790702925032217089781067795246396326127520225930177729683171154256423226521220624529561385198825262945654534976077106255058729673909915217964712243745402929056024632258160373542849188736635989363422815171261938112794683343224798194848253393141287761919170208024518868474620641640964778148292479210960225265267086540996368273703576993682845658647898981511967836818782338154532211518256465735191208950499994661030860826934106193078736404587529764675936818136607475392331531027136364001701157791894299936323985371393338744509436656880001855909133225909352640650424629145382731341325893288863030522141832258272883823359805605958648454066921833356401336413243272253814404571951624927613167753963288835878839486043829546932288516256650862266154390179144389775026885364484128630653092159410055137768527278673068801383095972911244231321047346227412324965921028732612894706269782687960620998164363137873643338533853182998432529910250448936483343297526522474467404892140756163747045398774667877979648071879883801234202792771164301216883562887833064246201671763435109299803503026980392992026325623030691890009436751773561389036791866901504677234322558791966546027985102157286586231922191477259941227771563548736902741279601605735754522447333322545060023749914286394713534657945061775505146836958903467524797188375022545940068914831342946681566240203534789491868685910456505331659690671870772903231773117016066641886035755117264736157489655060321071447092674611911063853186531101034948075091343689804578810865549943811292821679836742657825343167769479536301722808808576515831052514566844471009023041680694880666441275722170645466784297990434469969470156136208320627821594014170719771965952685733761344552855112339533365008395972824024212894802458706080361494422900735264003701169134579341652100598235248185796668097328998174084156795936494395843306032819122295539260792501464111438226970849631047471839602846064006747373690936902769203365112871252430437245644994320156946055745335741711464715934113693948240048733447542700322029134364285363318598154664386761351469150584616427505622081977934167071135245282353838725896054955803286905879140369479025325702450388413768457608819553267287928749380408249236366340242676102330654954024015406047879506603327000128218552786247925457742972763189077276932928524429916259802552613257497365901871139767655503648642289324960537550012420975059941416102510533069987232605364135848133206334550550756748427012477907709374893547139392751014942857609826169465595405167031452303282341266135885908823264994085262393627299960830034239098490361322361353142759523691009991948690496168761788913683736429371508951829595855863402600869439772803855875487024522127536095923381328451341664052985633064782023971070786449338174103768239961348531782645373904839915388125581901731629251778258491743355537002372376852766340609346087120909736949973411600038634031191401578058200129205107961263152542032445264776824588748305712086336303919921947376819867134600117316666770279366453176291407342880375118092741209559426166967630254022607174843587818977658905897739106027927344923761848729278550832295361556336638411164207099811333415491783559772827235687685768341654740827860866559289982295460960489877876722037237390230249015624723061452279418568328938489916982985922612943263414760820570199354069056908058973486636702617703646044769977078260717584113108431725914608891890136788858612994055803303662599770670601554370815990472298168405866406426982995677317059587557418474170478225259000849831901655280677189514948532324402016956584657137530273412570941685168354345744020761633207811695344664550175291336557179567079496614284929627567250538188734604667331333848892916900160978833990330137081310920267794750174745341421313718899637289539895187796110242874021340512456794936802427555115804899945928281156135129782817516074504258768074883707000656455715438401082730579009266215070807647928356125335882824358058883998399829750812759836125337696205514639818970984431916877965030072033632745387820100766913682402989343425331914771772425935238380358379164896978552699689799518060003043814073470797097529754535481260391753418514086332125836629247805738439895099622966961184189398184733844369216690285375294427799654676009261860014399412661381916524646922636030534002082075023335464908528962864254831688956199601397283823037449192987794111119923457735249099414888852191228120482962764380663605808483859373526921392268271063339885951468148659336767236287623812340423831527070342082817183600315777800331755903760968829841447719632761119362029505184758413918911444234863678221580760617475854811389664562177027092453609041698681633329435977212941619999122006035627812790088021189423703106308060866140956504246728695022536273385823329794372370794175860334257677496962749820740144588503441013906253229040020080428555264660553764360593243233254203841900078638724187361146982693997486745199879014000623315851487061653900774016190277976607986828349023760472360052849380110312194183644892905165873812264633776047570412254734150690421468750670751231640826330367252910433506158435881663502329828152578203693707223613081782138098327897755803658754253662621116273584771990702541726167057099026603907046212545848462925824908565450186583882950053760090008583409562812556162605748281770527137500644677151982680106460182183125188089758843720134023218763380804192800142050971388422283566672737108604553961388519008524040269296797435290819602789760560974389911050250796029247687297636934517902889457010778755818708833403213014460358336121563746776412750820007637915988626333788537990784563118570156563048085089410571072301159525136800564145992263928339138056769956574959103332979867642981437599353581961315163035409418054679299108924066135496075989846062064256055080029709270997368129718657000735781285814099207739319716443535393691505015724233903147951960258975810182804460910442795209549807701147958044721865391918663895954607033707348275232879475044462495274071132469581226447510923603225953602651271251713436298536378220373332833273264008909983315081087056360067001505136931121037495681086609144764165765669162717637260920981804485765914557738434862471109316288440025738589493422238676095315681982727060069944269267151164322919353061991214686461979270459968638758935717835011703713586524957101024154610264449662586608810390589403627496777633771900718135835361885858470855975134806969518858840129105627272553783571652656341418797970916604497272498244890327265748338353224661243838070866092561392242254255338598579989686857658616997820906078690575176392574691172076139418997325822446183650298397894745163454034139911813664606551129217198959146598953849911619718966481381467656290538500989695006611881420328345576374844707769349613361199303748339432423729754644100340990583132549260896421599711935546137401351874634234835347535109766281315966943682581018494668064897993024178220915342338306739103630590366005174537418067418628944749340933894468726447532302231114037131006734378871068841754790862119169444196511661017775543334158182336534818917816104914123070533850598838505236667894172864071647516883895304173576691638270347181228822683003524559866861622868971262424242570636541444835997246189087059483080851435932704622331942581071963597270372894137783610580633994991399733777206125078107111931496680612739249686564060471598222390654670536728037796784614180865712760037971379747266079790120723139395547621624213073564402321262162644017101314750608169839657440187085410991627102219510365278459583738867752253668946266284975402919709415340001446932599899487964363857064219404343141572692216992625455537614696926519348856816538017613185708006104321834609582889754460716691959718727129718286318757550963213658481467829291550570663609559220197821361178826060197259905308758009631365744160709996996351992588997784261641775666948356973013415151393069750518713307111248916109653214110216505117352368808434661756319564243353922943542016820542535792618860593513851732174777127977880548057580906128321026196122716731333005451642933317387342144010137484677530571929715582278365355452198274585907525090730724446215279825950809828561199261801777195371337035737567112628267091165155333373835812092781182936223961740004847708953978127500787509494203255408649429890223833251226516608925091150691914502451540290070328134372094594605154346816814804864122965733424652708795046257879766286605114837822781341151829385029389199471777783677608178975574700929645151283689902776997637375581303386067371247166987326386375265179564928436818713384827064504557315265139861229711976543643163180661998262888282528951999920353987473655202247246022026898280927392035485594199350124297590181993713130502352598851210975902070222254156998935306484457210481290613657478061112418643552093537196663122968757064320697327769351047506423538960398591469724852094304124947862259537694755413793098560337038708460469982124779603293361631218742229513553842075570461205220831684451848052212260370757700550721622102401999341303275936298124704001931513477270422648458993280486613612993962693870980405027393443799555085505631147393197162991014533549227916143679827903058265262283214153563260874848460828107169535805461077756450490761310120336138584631051698268559763037733077297313002537623732171561875254264893331046490560860941408663685531556028364200701243013337174333179811147728900749817422230891362237356483345831725765419800500684441817552231858162756799540451430939940286601897645119018786275834688649056872573089832894296414420249855668293179766939747372069823829757685333403188279917593787660999298515747643735324521189983022679802581855654530944586261364060876375071911257227843592653513335835832508241132624635869445516884790155227835334839354618273483394207742192869324646017074877012788648671215026037618423772024514947482041478823190573899494981102923788034386232013453927342947797737485559689573070920649058108593320668047867042422826439913871220901209825105269040168449937868516032401776540440718918948861643278905017117894348891031752008316451565282268981349006769024562797118474768103558757324488147223881807037752426650467902940146599239779263204955494148254428342027652246264910092187957515698632542200269355057734946379586612919616746693528243660858360301560625334252759274901602173494923504972701106312112645429607223463319413996348683061531744628574862142787642639389411692724574891152123233733041216916584839712114083464047328909377393919158074739095846621349970697611532557664397833973854183873712119880917952363888292748993541308703120459322832251742941720177446844189070255950528021389514851399294139500040825010068130278040296078818004304401474416207715501034756861293282126165383077842163808697469282161350218034771778217292991359833867570598574644948046498012407831279382104313485694814203300286578455604491675660447767765579111244667803887739404013932588170587030561858347727161835477957271464519968943687631220185882520018788861456451842581004157411932972400869519376545837458783395156846624393823489719146383234249584349681989830513953254299669072293391022394901716179821144889123053537356701951877719544769488936266758620335862295945277396762823786319962880283156261681523593752861293377199282142939201339863425713368977100630359336335279934521649451468100521209723161510998242773862882338791069217813763311245897349713175012462473689779654235494127013631779655820158737399155221972898326459141412037919544144448420328688747207310220916750738175567919016721861891195188026692441232750766887577660081827924829922272973691143208977087322185098131133934546420616352236309972445694947266875603097968064162132485871520474856627953555572777978300827183515976226252630069136826232933683305942134829289031045425150407555076413847265953239370414844293409206245788318920200750081904049545078015307337110157834694045973809287884223658251481280340314001358873587279703272580464090473746853923010422525537184456485973445671120249149779839896885615474409803173730144054990263686192912924593065046187649061105603047686732288633329919749025391401914943090114506772551375644053123830021631514134458881597564105491592420890393826748635529234146618250149514228147208415084886842177093363901686090027380992896657904435651989544986372830692244069952895823101914620982077354599876851031044535829736257913029003820361342173194882544347033058546005863007684972639969969619172261269688947375639379728511429380540139759440305566194925442691686623279817814593063207967406662572298048624299938575979196223165312845352076585454342648153050157281006637600294716535646456295154128461243454952192832802998517013537410876829549188031202924915891804748360187390048591826426802746874120544197508990439344895287690379190900921037950654601695636151752313909921062086240904412047513845341696024397102574178415989799712554408587740202238442171810809354902219407517482989165151142447031942167178860364345799725966232614433678980142861364038507439504817147324384234204359697376494862125504503510375090648049054475037439739036180910578025027236036261090771455971817122418131229163133739514506160354957053917665242631832573608831240911018775806329521594673496599233105730923111709471982232669153565673256338020870045588380487389874270948290227919663442954648827365262222721162116596965840900863535529129466459988592880856072140720844133493478922655174955971892196341322052378347884950478954338899463372306776869992266541835173751684908276647610686995744788114514053008729611695972446908642660134192963894030522888512376985798894891010659887733215354917837557736961750183410220487726999488438315948001172322392216008939606783017989485037886152909246859271025470466558834612184502522843808101766852779854472602130314392780157861607044632199144396227052000293851005928035703753763660346828023860328759338470135849439276150999751994088432648470787555164941605133079153272355993408710222561156040249471881810642339731678508667753142307939941467492337264700147204605280524852699946767179844159425628512764455092999592667385463755621154215074167220810656908294453490460848143087491531237702613703465722422860706518642585135561235182268989699631997538838346898504707607369244442362529250374403450199823828249293049247674549933045504841804858294098671297613147467863695562999373226838038825772644673720706549550684726440449176305453926482428347292714539045020533711667980304409258604529393639505669192294528768912682151955441124477207158115034444789887376760298543260514790238723279856239788822181692869000893616835204101240948903005548857618883423756662720983751650083212548082434824300858912792852254701883214658505632673240124656703406700780364702913948874855478181327539202929938549793417268192550952102622798217519143480560392429683851173780707530379589528334347961880058027247728085986610112811420252212599149272547857352293977092208226398393468162501605892439217814775537456075235079175514646594597844352217930292681281374635068973433164039664553690430268355980789735230974277643490604342026046337995039723097237171761248745147673501040165471395172078766762044869739099127099424115920148584642109959154559254303770270760419700307895473832088853860779900469109778248064501968365604319006458210814908758374451483124081820672066763902294097826828346774985012302849945296499758887501492125241765275609284262745102559525758634324248736778095615146524069238572797381388961002708758658584316906818725416389817207439305132305998911899846773754041614078548138905554893949213207231788395643753748231974720724934814716596804034490472522867413088075397279209256917587291157244266932469671815507198273107049930345385355428391676844762915960018461953776007800769536081773718081710362759715180215556734226903036611364930967257483063473361173728902697175249009190288677256557749372676113681963269619423934845983353736549261018980177873840846888458874147241977998451085306795175227227715260218532709347314775505035480113931895968797199642818174496792465238728702448102336591163423854214935094574027966981735247423589409484466862413011473309947941379536754201175926566319493506851771986850135641086667744793322774205521935277281660039532597324598677527975244622650317606802657309126078122800725572775568863719131267055863977800632007368489105727879831903140245104728966866737734786280378027461922889413472528964597913958932751106092929437298612284533126131317106464712535190826200021593501870441673158021215938751236582212237099915414145048365572581335852590556322817460012615322486357119264130655227967618946641209520798025946824624979494343266059122801335442130884563622251045641452184487200596044842207187668878178182364222507892152298399602410423997410484659068968608272853400520650824893722979206409105813053034476284499474663466532697671197199095616080797336556521778321043427292177550469801620087277346569002982823038464071253604942029436135382422765645286705412565908076911704277042432505331524140371544368710861333355726649034512328956710253235232348750760089973478483725705422728579966359621734145632843987105271296566649143862849174568337218387224806126202043321086020556183037372283203358428502214903048461503053353152142643517990843737993667834258602746401064480425595502454988800029292517051085740796259569294853120059839881294691625689937091138193708921875421062025758647381106920047430864271968843918170106408756350466642464428425835371597916922825008529000499885988886638711038813434787462436378195668397874778327718739776591938690374675798337068927196458400963404357795092718775224771038443684604565292730749377023604238674324567395739282559382252412377862473168549693922205942039947660330419042352672416296883346591876603135861627215046291424897970944260160824927587740763473325791913272823834066615472288435538346153735550308586404678860031076290037960419702827265088384774963400791109394659645461672713524374708708266405223844581393218493270360898042040335047650984654595026612614499014971802804226793456639600650763238836117910335131686826717477280543882888475445828891990276885789521392568502930302893317968747022814431722674002599967858427902734312804207696253370151886300484818634574011677270410865805425172012792557893153077853000441853162092200826137640185965697720861429829749944627263596607904266710224722911750310973873712771269967983934945312523457025477828005869115193270555395102496200857040255241546036446398891453261581243528000538235153192579546568360917874390660451333101051947301090668763560840570382301161665204618177719853133464579104668723358244029070124023008226729403964928757166185775711962391478511815573436924993751768444519411112170907129424533973504352806582354395872882049415756974484818133754838358438399983955834370866664685233739480726034680865528888570254363105933580212637470980359914125947067772349793288655745028698784378997297419182363442582397156654237289386905289300194320896456554992700658525568502716024723765897885288690633543055410260444524989514071214897846067111289455099989476309026183909755260972423294751141365570211603372542761398025219013065501678982401336525168241574974147473377734316476308477140163789113607315164111194784318350668993750511643807851725544004265302638022227197457414928690762280627358406349133681928672015411536680345101180461079339157050768661682893417554308210819514016230725098797757840256336033451107526405808634436285223018548249006593270015880946821124438741407278802408376090242288238610199701295675497061582560269903778430106893425703579537286576599764853484006689072708945671831310362072598808866396825791717213181642456457653583039612361433399258453793294160362815102279175298424479922580489226188298818607798221617006214745340022346733714390067143698810676225029763943998189469058730625190342652405594752686723008754808276957412005717138468265061607747371856219720247110530131619021821307747070732371952902708995320268790128600749299790302253197389100768508977811022565968317843781588823709174536978200754606262146829948874614490097218617693776220819717716685196508941396205766795687980219665707895004202064044650322128174586344984422125244200210947322176876805281450216429280933598581389398213650112946122291837030799384870864413034536436439126464223530226523974394465371582716779062250846386410244901824657722484207508916300490067212689494189257580181532387479203942318691286254628657948890634460270025654033687189133460626300594766777276910103410225197196182709293851473887385859746262666955420702885084817633233170019687592909372874640761314843049066591122968240441050723036421972828294305191751637671138104303322996133972854328956982708635759968878575236654505207225995913189794393404605682821239230081363485292506945345179880661796653754538217970224628549363492885014025355933759564778340900127432862127934410309312236331107021639813286029776540482562029560209805801758327219296235703100662803302527496291233794430066710374208389995073161135985859885049385323149547871300572783782657323257123003498729208855197675772625323686097460508923393261802838631885142321090937036697723849601594872301644101282499030454624557206801895642311911884951609197787563007301639657004968210111601868666014851523269096865767579303782352794107567071563952076824443628035545485799190087271621460382737038303725092093089449858617114108089304126162543951573900179820273844524290334299334777580931086726094083019990522368429512541639320276460490037075062283402713879495216086189283916780676082616241178643594763672445653473560171442763317415963408509437121136864831337314351567661414219717426875139118227993199114389185212434995884796273489605466275841442482907256065110586814281749144513153703220445440958643665191199663549681715817512770898306923268251440753146226544942623454574371874802658267955213606049855027779876491710239401693139415576681690409794578834181548644235179344362258162417813354976360265628714657285401036867504886695745528742776862511428238033737606589487215837439095694210830957238051187163862721060166367335530257318483374722895589704204916466064207113327221868688056102166226223690066084873219400128519896214351949051171292029020246858850165199275963985444184699164438245567918728237347116463184964155152284943818103780398758769129335826673864785734006604333542688319550933793622907137776634441668771541277788155615749073683848591847066077112889756482451725741493308542505488513924891195898312839343200527478389537430287437968515038833027326460996112336173213572430673596497739199494897867463561619285332091540587979667033084010823322373982329001281433759285113291140242030943941297263967009932165067259283347656019366369424443066410069493272881764466163643723874593357937357674747382501889944312539179226711449855281520366201112135802150021818750013590098529067335951993048868246444935631543538260936955933992633512138866136355973556695622330153511230397283135910040189394504248787780223695498126984870054803144974256365640062253560019565820776812552100976889184691059674228665008197602022703572502555012742489255840113604666678782049849322218864332846567818199814436692293311210982102542118066210853101877426963876339248294022262130234397196939798723195436372973961252956047137974407095178460048678051620600534924429420713213334715200538457094715652645106642356463949523319141507298087247399119833499339555201067527654712143337050598536634277954214191513125414335241980421961472570014463372777421733051362941416945760960296718165814146385108722019687206288719348136916171505671383856855701697485265833351819183358470598052771598709864067787418031608579711012326333909756448572156050797322767449345827091050036224872476174190541384931875830691163058924153619062856964255483837206040728916670487533627818747633036001715751328049311669988708728096507711077171782164871615065763181414652937642580702480046075041533036389987476104631563428591935557751561430759715742593053661399352085739045553140631871237556603539172569501147168297123093021630880176010845825211215378968552872159924071074969466022347193822321401287563968843212797285436175435153579271894311892742619590812566067598751179041488652602825212841857895480117456185449032962875071229360395958498202683594291986497156921829197708552959543741224503185624911519719816132078631401611221713663241609082602245522992207187702911322340232096249408640402629477201364724455419031425176535171824481481891050076393102165631727975708789826697701106288822264847083088139569382378084030947474837035100438191444413792512623921965600299187772509790905364839465508220839860681500419340941482776733187638626885364624387009192992600380078364276345263179541163519609649805108683491989634982352351098109514297469361830321213205476458554051673228526090077014359395524143444501518659975448627987290124021408362253029286766471881926929312732490450962135412467650297075198915209028415587852009785005300498226296399232871560010560939381744839333143727169024599264173068135220649339697580384319723847486828788582210817864999999484376892949242350815286834748090451161848292446492834096161301423326172546853655676199022253083174675770157855576422776213110052169821604093300031563372028521743799737403312960667380242444383367862737560160269997096299546995314070163545394201959147811099451507990663987657273529345206038213021274340770982721297493094360002090772588450090605910101077115088112741471073337052972406522831902247117196511063542027483542588916696599674353276127839806613503307986974891923394523925642171241801653234829651448360541328638146387968560471905363611173394565131389094673416526693292354221840994457455511635035766179396977566584270370540075864056792646820733258013413609530046722020011092151309596175747176521516740085505849512021300593470369870414359741345320007260358140679651608367278059754730916317490397041388177365557222897610787118566510651221707956922922650473231264671568431021880588367991572993192288694397045671746995216895249981604773694490232396437348739041885446639715779397059856976923584847834544036891363053928564093835607357153367957676347441105313810379523716979897644857249994766840535862844765677615412465401359245472614971166869433368012009900512978836667471768611702626696194111588990789058468481068912300321428826834353559498419455276500575227602302021605356176436029638333636498322731677092868704242327347624467004977152991123480299361173878427518868970354357866704873261591150192078333598367107222343998534360729349577025973270994843528510745446530617113422368592789801219468679663258388868293459750736291169709131369338969606691143321555846974467598600556319048084757562571514957588513838340600636346020925618498645853782269891187782806489059278503987873277351045096407638924434951264384929971582572798179026556465079128162667619456182583767270070320007191524027949841060491871648013636479129329731043958325868458512174830439130342952458972834622740091440834816826338919069629318434524388516616026258260455901705072077083282843206997836335919022615788868959070169540659652868210421622615851960611626504179337452986426222895392423106550680475405417181862898655608128061535243733958602527014956217417912828900936582978117924190379463180729627364693429764978653318161356326033995403651685820561681713839100158892897852098411130193062119334848085496131513492891671520766453827675891696068524499032639724053623207998198101324000472193148619409477350430968391429124656025126073232532459429782022770560719585406909367796680553953720637420318621574006269497010480887736616777368299349032259619841036115998254537169128632649087468259619093159178613743073744084372878357346534314501885991687639625212436562886371243758919618665155683917558007106359614297624243528343760942069035877790955099221828487591002935557637725478920028446622489866918377613402807135746207359554006588781426989381382535365156634004537115884573788617835827377190243625836597970333787386144152133871299563123796572749538868916233951936730651929975182867841085168140566321118351164113501933588016330839953067935536422051277067372789698692453862227395828057720112733823743420709771130013889749048326344821752483626131647177418908720906212916365233819320216116879110454764843232644395582019309060823981305140817380650747688127000353200181786315726675931169892550024412059512112107608872013407822128949518300295296076340659239499175972770938923369565490101044408749521644190973614786337735787183492812090374179580924027670467508539674902926852718761177813207221328561203082870073113697980770170681357328968152713646170304382968039938553448288033924846689631496005769107190376201256226648953043580696550582207973634183128008355360826424087441324153876523369083839611688352349095714962521122742439272645140489755936120809073258699742792443193733623775058352142610008772998522006194699140983217898749385725867971756273045752086338908405424554543110697414507859512931025820515234666844728224090025371091451971737907079219816511247048564311921869312343002198951202200895312638170809050859934386045486363242915863466491798691128918647600862269966258377241526046303244023684804979074464299287345146027782117795495164296775302556620206338163744069155249924649640549900474727224020417658979443129191477850832402309870206717396328879670077971112691715190281564912467797552347938685799941276768186801870392030560123024581442991252433235785438905087177117783937656068207261073211560197507199691566828639579088034126498167780779405051122673033440709612694421237713862143957442232914504897176492095215071634241163763040255877013662171253640008557932592994813092008939649860233123047536267480152086236423534817842037723849546481173006437747718154277884885323151543460688559584301547603921755683204019138785051414376305408832040095933059253633078589490531152856495189689835916169843905372262067702058107084538847331462803245748912108316991776871332491542785935893284127248447739394268074433145763459275179026102868182824323497782586144106186021462242161908590081332284126917717565675661622393051317708815807418441111304651946791318244465150494861466557388532874591754543397001881280498678645212159384210868672898973662758131608043666926643593322537065214892732057629677697996790947317096441035115821499093170123691934167408465377026134918774085751309810149387281979422568359405235867199696746501496256688653352291568237403994920462136340079024552030188132080789117763142056095128378931161286715002653372997993711239829820493677176574523030309354324342664557399830373325252466780773083070560520831020806748933332811817236002320986079097379400925965478168495427207974239384878933100490696371466036362536218501165938208484447534140567454368654279341447363732246318761065050935387199561548617359009288389658498665892635323094027464618469692670789803329160237466869665597760133498569799772050260193709861957399827370839788315615247932475445652863900830390083139956529400347814568084316743764436125127915051828271051278672756877644332272136356802034159852776451257660394344470741370609634995044208993270822908276546510145169272925478499757425167988002933033527912636827336526967372412503892844695743005779262203042215878084840462935331158176958649613955608069719073685721373567927336614024685812649983968686220237792170160019053528274240361099167628961609421983696440267257781220350154430974172006511515820002471248412999992590236455140125264007359573157599388700269002329859955370039666249218616133756096749694344497345580317909301654868401444732422501730099581250335083298306892789849156975659533860819033737456535373457937863709566486898917123979836753940922385388375842237353615693655783177273058408739971789337696875409205923349049996166913817414998166274758332980829831067160139658799789460459458078480825898937124860181327560440026596338568373425249138083146038249735283478239259641563394069604716409624020402908538366843814336067633319754412631627313244183721951824024679997395509046829030215157466092900152993161522964783327816604452281244007120894944659402484626582079091797429677950517382897534074362350197842250030785139692620514004719321824872258030424912303609256160596465591833107114929385974464134994298735378795935949492685934358805402762050109288199919882632947131438349642480247067643540385136954848709949673637799952102855059703682343681465731469793303629447441702243550067107097924767353665793125891924381315164359523465226201877683707483719381374618931415563546118045853647921591484928127401911942803254010475648631134345206890798912258768242762918035819169573369953786696378950959420664733322069953406094460035587179191200088795135910314923791047515628680947733444197539019740451796195156216286540535493184073538690104362158764415855105123979131863303608820381486368355349915720135393221024989406423848863682544384559431453294885710615663071672345691129565632713864532043959242679905594856499636793228818611358339553407131089414022858242162790411224419215971803131925269282299004780872817421681705867719056444363564625427553094149565841387404904502929809614038301828695154813262948202871019253171949891649936937716921145290017166291726151068521365330062159979669048920727487924453588987856283290461362287793551268149181152847092946409926912673759547946341065122412603245207235692842482216435858888394083013551376273762707205625307626340828587325170074526673327453768081491716483996397587060692969476308260167471750484730787722180730728267571030873099153170128602242099285666395660205574221414615611113365563137498859463118236330137333558217813710535024841935474344451849348657919766342878172532123029109226989598690858963181644340855883351371385932709837395009428671321109784879235437385864990987350610366429505387141114704788146175739748197290433204930426545333885098015313902664199569083986788052598498385285805890395260494297068816745680820235153097947961534904982840177655951391143475073377830051174965598619403387587437823024267165679540582643806487985023321172225725215187547033554808151907144413223840192151451798605388826869282268459277685850023224326075848240617715469898205744420808792990065602905501711077139172092873120002355154454346248345985151691121179077528711165071039462225104080569847941209875663801408974290520012564693401424331382741257240263477775038101550474661434080248107225392891764977503646163788841169421027484438247406106083906178009767525501631863076942024287204749142610035186528086018203871385117323919696852303328014431478577432045916423539390629606232070995908464939589340212769778195570543240819662747487099715241038486784579828159078443707771550031068734920474944817797294077684327003074588481065171365560378786335126813031865223897957290036729836230775898976431546228653582503103167134909798587573733808131900049036772427219285682086396110868784286528959203445202114128623682920393354412299506240545339553079492436771285813732553776621365243877577591563696183921526306324231995208638925058193471982037869468135123536761488716916897991669839294368858939170267913798410791833304725014378473917936439268506884946587927557561647388917708308949239028344132910360280108648528253128567360790282420344282059463498443247363107833451577848477626093743142665877947456573689353677831046651738439239711932688111764068984018769168189430365985586139303963708901420529372535827200548316025762898904925228667125506391606743623819637086253269853184802033154594928389893659822022491517268703812283431911699271904227754357659568614287800815089616406670342953215189208251790081871698988223227730670406433821391860862520843477660168000716953629704383870215000329812959557903108528365791201860465756483158676212478597588263155482835959767544340087451012411399503422574431626212721988101099379413491097204483037371173184741740599051081670399785217580923430245708841018222543919510480015482228477528257510553410688799460311287790615904719715620334485321052172085905463308482395298167153431189443146463123126027250909053036309866818907755789856051540629229856709740208720828100813207803314514418883357237204465137263547709619856014910528530770903769178837566867794136208096884993761136350070307603604547872091811463718944571315306908653466293108681628292868028448908138473903199661900754624519482808222187631347242602408797162494949863892673459744711072358373109274189498449843853121590028109820450443789133324371975426231592327764433077991996330501068917541135065830106619871749032490593594923757466427192075086496986672598258646689039540319598004380158165318834412527755477156671862068696668181406157943950015107623412176112775161635943276979887568524412508260349855620871059622761603571388850021127504284144667882200110067426986871987077821295992269420439339722205250980764630903503054927318356065512819542197544989685718393989687556947349620119232586033582182452034829594159078522553316344186975994371133838660902862109452854459541670630110312633937882710443252420993516835203069702555586365404938292645149528111235411330288726641510792183521406788555583146205257255370701714256007970440287406665938027209411391800948054902332861948898953428464199886459176259943517837444432055158031045705305353126084402085564395386515633945335072641051028868937213046647152208951558825256439140373393135538826493985353635858042371793784872768779197699030139867199202780368823037355123312830311100693526839057093662508479128084707062424500594782324943570329904072161467553842497180444972695077224160852716418524361181122550965598400417087933919378174526264378768715216173788575483855015963847202785558135685045907505108335899966352172636774242558615764665722002086011703947127018977889347217013184204545091876629146612915178525340515303664579516593981923174680403765021868861749080612258739757357763703278515568276073005222751452595413136850542115632479087701999799586163449433720591880787531868786132167235004245655804859930218295489843924851574425826317754216542262607061737114865472235172047730041500342270224154347773061485573413870978926987031137531109357134430008153506129822850775496184751692859914468206115726130124978652111990272951016101865414713950307584438660672107355153388645289754046047844502313466408534196039235564090635288186358818113664504120349617202746618090070081660796123249583858504419000040146502729587411454130304696958116228083130047647194018456312973125419280191811970360338528476202595385057133171623794586902127021122862745164362532968453909112971614106508485774222998344889710734533418645663603201768964106225990103006418411528322810250270371254247752283675419774505886350356948019997835861340957887772551344317332432543905107527432960175642916391817791328737127704363938404374836017702326095853894411858018491955282780369666458682354026181169863785553616966197240821756132603362646417920946165348327205610340083682676554067750720119779156774809386475169421291658597413997154271996251621961296101125532947294245597518378296499635092237385230848876918944749631587163099961462161268431299468749376725038431450194385565244075408813038748218243389333340067112948620886207409646485334775336251977689590583461290014689354551631365895135268716002333352687077664136260789794421050500234243123602301038237636891939713871283964210738426854072494141391488057638178718709336957112600823635904749639863625298226708155182548881054728569376723167000333384144374761034069742410334643583579654231594179145795011019364200716361056079526318832224714831852399144408526666745843083895672951327769324116342107743870933112446223017911590779284436226522843227995204527693837817939782273522413013197583237230664047246649705916373777330529528687718642831773179073934401229159625697517149362893540274274281241387636868683610675261119844533343330064969359654037309380134694979859249006869586311316391190413553565265651602942720822825289105206814699777704350334446964866778497806684207208395007240398165682555326613669450406089087061831846831569010982935364540444877314328595155089937579637213122314226310681223677401485834537965156941170934632948737382550704037231056212560727226215460513596778080404370963354063756434446785936278406979405865805780535644217436316892755840626381860223325683588261900682207497900420438295876063826807326116005308305984869469215051297732989629850499412405333261786711710471846294707531429805001971847517302361233815615096339925994035954229182313732943691726002873445160420444950618284270224745815595379964851156546239295552446044159135539834111126086958000804433936237855486132384406259032353318516222638628555018353017962452334165820953896471252263513307875039166061867446577171435431413606461888323420849844643695124590157405781522735137611303061548417610449621150076864415569878213533209274081347036853588136213802831021260042075102191538117731687289308394742037911824036535606864249999622583704578401904969563370084232150499251588252022200900888952517191129075924013018813666300547233465630919953337763080233275423619998387141633128682327500875736778057454523684343294588842090177568747899496501108287033634601808756603811110175313179031030711132627298886916338516601655859597567699215598639801114264263857147642057949438323636367788524699478506210382926996541926833826654937464542487575184011148500227218678216366650377057502433041085347708354927187464652334746636903885571244482865120292675193998080231516068835665596114387939689775160381765888744862660850107874198154535281851276525030918693959525886242747347797308905245931858194613675096230190926000462512142855124395669371030023730743979915372340499153013805733339372023867952514103680745074408780916484096890177653906231717787815061234099574352261000207275367444052019672922464309044537520477661680751659639600411169009554243904251759087073293676380856430028997626633978167697396676827668475732068223198387503814808875090503059188245789389961756755410713600434452582943610291767038904901121050743156549022042587102772432067604512092064987732991256334492942805092640658989598069580868901484003785534172319405781719330543331704284952957315810257440032722798483616673533998756791717520374210559157812206648246643453890725388448701827902908457936533606374817071705612937258280731343465217834487204903787793171923792861514470507067659046729767110065690009030085524621625396043111288048672168739942908456681553418152603581099283118425622468445710836830558798025599268715307901912809723433683375105732460547119044861439078267177894493951181653525815116765336932061753857734677601489839699783078940677722954362861071931124437976167867566371328686448301979941476096483159291395690436144740706515695133919909831638013700977940673963583215553393826105873779658744146849765458141454343030153298797717123450137634531100575350404495447285931247605103507782063168981521094601879253954635605058703955183932545395755229057368753928465303279467890501167736141548117439102017030495100237587644343973024662147120901832272565852459247138748904721108566880465721748735434912972707385414120151358540755991339460155506533637971790973196816093607020661822990131490887484122719235225775163717605669176580105644850321429536198240249173491400960033562803145339192824746539794248615236232080361423000534821166882337456492199566881683254356519745109934763383945567932580450943700843537011914335231516851676478639322254066712717444312777818984530811212441926167329409980726472101300366879502741830592291865365634010868841004169343292490591713018926746158526827044672153423874478191601584246402590565874734984990814270319595618866875212862638804004869086307619237622510769343583108184372457503311655569773538284635859548956134161925404293675636015763468850087570802329291124561220410121639005674402002012600813897703869228741779195337913992770344625886301392924397411501895760115535427326956401625575217385362265419730603308859903266388444177702422092392681780910437413563648980910938634151084856020961084406558441939408465072552571799791336025694636608566754544103164482775745863089418183943631407592405752610303368684155548430984343133114600351224736650399151427927696583392924052432520210293620213336460591684002212433971296267095223523141256079838355041837015661483055826119312406193890104153344263079724809877208103009279081828529827799326593609980884389565566188628596492868287227776287311772669518717295940880795181016135297533610771858804637101362680481843694224782499018342829168686439282002548111121719812724524304005286771006410041224617240891828293042951223963652862131984146915988226859043465101032070866418610847644398220077068628256212057765671251662236320610516071089213817796289576192496592396985922784803879198976357488627906846242026350518738487776410467751672618805348111824345729153224250504075412282771066508744374625583852906205833826626347990803335640873978111112604805351988227934361601024836735968836072395133734281839716330047481818270895165113227317670766744913600111423043131278324161205948139246568558273882637432277288626943189748433844111211553301911080905809280800934725605640640073113083066545998071898939955905365645804963602830880335869469977838190942548230080973554483602304187879939196576752586846107524669512605717073196074385182555026702189696763443068951234062074797041192170190349506473014541034226880683841639713229400859195190475888605370950135173753506899275515702689357799332851570145479035837635916293654168409114201778664457064534861699672810322345458647052052209030735761735110960636929023588755678768481296777594555591832580720363337410683617114918676301441364136540419172269085324739682977711014232072273969514563181989403665911618126634260328643509919457773620505541429494375082997568581051019755502102125562029777421956660891853310808977246143438375152215084281797981834521418360640812351797216455253994950303454625214774607127238970797217628599544497061572685789705816853050002595263055496607939090206306255229887836441683555177825584784012839514669804622645262543898947077679630580426497617176936383970829547204727238992155592566783768423516263229820424568957198287999350869798958315318668049019150807204740701521764858577379090303327838838637690098408210893467738677531545135745179208873997901539475336619444148641233351462092327515883857251006560575464598853421083696797809796682982367184355754991584290782627671291294689607282615442728703624898778806091082406906191127322357582589957512020197934606164168690171509338279880655878865340945595003585754955273977421325576041784888486019764162379556301066332821223250089671562606110898967771945603379955322187932058666242877788613131325594965122429259455396199135050483381195526636952871178074735196742887532125546950526592522331645838140567036359503509090817108429881978651985146369608082495675650671817526268645944366478395308283837164762247659281050882144299508388248311400815149055785064549188633007340189213761792404324966669409944778797887100766071529092198523698398861415747181417118245329584956518880038409378553129908209692493325861530265438664493945971558803118086202986634766912378892160129340963188477675029244817810858361025672331145215527878400521100294829805386164422179431150160075319372760472970466483275711130789363656946832131572322589892007206263571483946093643017293166430837009808807922629768564111963895783303401736737277575852219301886711517077203824181199582139262828984203765007909909089326153234980077696856501762643583620554929353089399121044757097815921648945755089711642938982044484966214592219873966271170409137068911811955130308859928354909563203390156144856632233771574395350382732612472586880920327604500138435091864058913084127744573006125150689398010081511641560722904082412457437984349662086178611966372804549271454628695500526818182994568807193956043894748483488050692250976249296224121199984769252240899759775229048199404808781617504946299686291018141268816328718041083036651228720807337341762171463463389646347184464780550680700853334296294623891736835293566851284678711496611135346767619507884993552648293846106058685077901698580080249213243880888996112558246701656583753432022580897403362197249236552898816175389783425682662366255633278042249017856688138985863692781452620586555942962703090839413667145751994428386298567104067462414338111548153770209112797363970406656908232343793997235721968469555140707432978834229907908601545605861012913403956414211359822495304197030205175796832291015974760638402912286929444311965956668357369077806988152513956613641267640216972638145800184843824280652562726252757075618046950917163035178703843451413426624586942594492415594737896043111114109133953200353249204888620376465077343114046048985577411089264732054307774091941912722333963673304688800079374682421832566372923605252465605814738848713211586864706065829322053641917311251921368203718072715444038395647129430703468936919562571182661255472932867485604097176511938227242456053098738818712292666436806154576933162411919741387898887207382818838843462759424271584669282372813183858996883127817343593685689662373056771857726780709700800873191214863331731579336833930495648882601122342875967696462099866991521380870007572362865191352958317501660320015312300344524916061602258724345373357313642035772365188709047449279908148612667489244304994191059957828364481941404131434486761268538481131173878728628877388202480078257464692790005927613687199783035187536903354088782284380359613422499969372275195607289436784851242328875433382716767648490875379813425102610566930641700231922282586388589599574574285189178303305468199434374744949778373601423566726755891441715045077150120873525471796714981722812504409346888335575438688244341079614567643613764125227881166224431600764323161867937779385845492163533484460843747376246738062855050895471029770501484865292831665157632127370196575560549784389835652253681229704513197090812224083174632152412874429912978359283473053472061160781885652018382269248277297906183886617829338342238039195756356546463416858970218271785929162625482356471395699222989987113071694106121276780375396944097726809699703869013929541918228668144336473178461284801902018716588636744634175292004408554949779408160932091704498549577321896558050100255947124808825813034023566984841630425295133118865840711801745970159587753061027829732157110398008027587825494955614033699474054439534557960365239523461594169635620304701324670021469712168151908011430001334538126348233001344622196274028635770169719596941454335589712514522593618649609167892357022214221350417646355206034727115424501806919464086588099614326067905085417013704113655293090256868040343149791520253411826765277198554174091576816005128252564404120569195328172868421595726203116047456201188384883744279599025783551265473730274742963501696082683865654100119756450697292159475024037889624005761858415721426089625688359257502235320304051671928633056198984751158592874329295711731077203234802096890899574041823283085341710227935347912214361890460900013719980173090335902156568908940125156855123903236595699192725935073761455333369085696656393997611143641332396583370794522697059382139347590194340629736276904686832176645336791126539782974871949047299299679942601091054376463882960749886637053251830348908610130835596946656802092033355943171810606450766090164136428904184248440633224212335763932745747777032137886605716501138605408621017805642824484261784293338498012463924906699909455581660359966995676994364143312556614675847501762433565433378928664578576458534604412749783500688966527976852463254633814777652427587603187355594453247364086439645398629332835819284634979633808260058098222847173640997105698419109618957098930735954925443980311886372840793097466387523193815690866295678416384210061395120440208964689795742217044177882415043468772943452709644307210455067065872701590759725652259919197173950311317772798051637967703829478153943027894877362595214039638170560250450173930498626155256263364627646283445019311925466927752615035148609824993555067930574381122671437862222955422341166979219312865760683578227144476481065943288422363780680479085486650894583413106142286505009477446079670609247651497328290113753419413965950673232290817075171727063351284126498567610619435245765602431753841661081289941942860798161192826471108945109719474454959400584722113471489497273033749254455243368251521237221897449775658905524335065021818175006267204187734706970028865438070471498398181282247541572208922717165419562526514460922252365369554892473108774013276326267951053487822929596826818242732465160051447145482357514675837399651320111448151877287039989999594219182262287137081959915250983709011091126625070923353674326228390802451875601531097670657222417484347760057988573856335013037942845520953811284309698112525122291372315246081077384426016556897463659317968913214064210440272803278438571228355917222473966512696668569856858970248774411461730297837477218666221135614075971778149790730002866775706479794082448121655539655750625488445273261617825556961354645057613158255534047147098255728598421390600376220535903618678277810463537545800197927467260520959558049403798654638065059168225003778095041244980406255188456404217541682908389512357884956924456315287652510493590621742617361066531675870851728972668688280525657989858501662558882363135705723937087812828982874246112521913158246641204184742183047719270614741205280686585200694815697574377814459326072109519261682849022260893842288249999326886072429833426965453107087275920034978558763364218669222470587554169579114000273376411381955546209329583566293460454930595212077860076067121578030556292156681043721199696981377795355202032380948520378192383587104139182780016446722119638075472103792456127592196963666434218314543445409714665446168372318544500348590538841644828199819426264883165021303774852062785435488462697749474152850010326612675169369360408188023241219205214654061767985296535283841478389494691690660626617144357627275054029949531880600808349598451877038605077586774113132293558206659424623162061337211419906314089249261327749653904389279536578310366105335895092375218671029913131683781590384435129297548174323541559367657325699132608889476462992216811137794373389410403511270543483658131528777257999808302601577747803887314735563922866412038197962759450422065179690061955782232754754791260712777150814789154084347910378571979942623338100896208556426970079219120650768409645655918085077803301577937863746623305620448596429292165170609938195403901095009204150525017070662406176979592582512344652547238621538990978151360713527688369789856407542729005113474619165558255918854702818699359565479831050456539219676455387101391463779552983855293153598624830595556998799949388310276582033631529165391183043572408446408683972700211981501645042044487416838950898138307887706432838270767363132584916425224487907434710699852198180019356280766477280304454456415035877428118830276968142820143935754558315785525303949482490712124408353706071554495945349091806017991287220242874404409109234498579638817443496959720257209997072916722904940893689210315361703191930142461262486893728981495735223106147518513962795821394572857167618476265718324161554624774022908459910171326321426899396478653050960837592081759073056102361705106754856852615826344842897513404463238388483545665081717685340446871252137795086810265302018959021286043471905575472037244101076809778968513355262260512549575351268410052663268698451964433091126295127430679110759263590536221920169883950637811630175992354227646721437014832589857980618838213614850126020412196793112405857571369490484754199528723180030516085014656584936562299130606562830580794163550704712213280627358644877078981758346843185788993453217867643861260424410830037554849603382992018052767157072594963813394100424777930539788983646621625771252811469939596972166232903435400916581013826844590560912966569751586712252303125220296004947998237898877828279404732463773844931408462900407379927833710689316015251025773660289626409013440896349687214715435258607263852934867398633600067292597741338227387416555031274499019780037238480326785355636248795889037007496645014837117878074661866225637367147696905777605726758045462749353041104546374292613839820781252298649606091525433162650997810928216836791280093964875260656981068638112820812154360928176161750165674267152904822652726448399038146619894874103746858480605519809359002897012170579061150260034662377770546193720625001038289212419421290968276949938470873597346131674468339119894443014910188994129339617472338064934389792209951102662741981123626633658628691925937585297471344199912031353831168912250601409715145533434899771136533833559772502148188676938799324255123013231377414142055362742153578351114622406834615631782271704039057720803224408811320552167222010163791390733327082478943251461081520827856814182250467479153855462465167215516647975006522048359141147369015138585069053318832134503633926916243443503928760897962001166817902567903948823727525874756136185757902451209978797732723285612016216035074315588324685506850687674527373237110675431963629799185598038880389711406690078335660865162911500724171792658405586111486604489140219347798469283355529112429445112157853018993438664971890046484932242513575578556903811630927758049260716316089117177205671735072230364306920039265357111087831099587282136570608295137115205605652664771637457174934804141268126926889162507147550110338945539117823405650428132193383642043526822270550122481818956009395607975711042741055996227380414231561706102861270546225911098169541763358013086066788426672249156566506867555194202995543591724493329015385965008660110983419562450660164272941865146346501494060225751369568882844772409886248002160717061082743175009265073173120732060329031760940422160248128107822775099100467868294100277339664645389956693619902536919225785880153068170377716403341251515712061946273284126199060832408772468218977324334041132810896441392073427162284811359647514500358903072684402724220878690161392551684642702254520392951368868314421486036860707730843094690892384619213854311196396105344615063295320602712094719737558031153958243391599779714157504881583376716240291261869053333384811940824914263419339157433967836105876561656879842812099695639815209418733999576476715098238183006380061839594938303145218758219143487556534740106140474219154746080932694997566180092403177776168424996873538089222694839733681913785086953113128165882296370398329047138673368450616684841566549985904822259782244998004764934326291821219573840416488185410609914694785738307876843851561461988538120000738828746318414047913957444459770601777694858181842212443702635317875520543039454146672436150652268285991822983265456079923942596954441709179809783682229434869610323115269798952707980732940116189191146387027890467103619274014754950653527208453168812387755550319459916377339964798240388670963201365562778035301993380084192417105537380211114817113796738735360867482551439793252006810722183631286656971566649977611177586452694612769568071501692085101641036469402822090483435700013431613709450811435808933097549838535585191172428318947439540028565772582677503267938037677149282680895338499750190332074498505783879562385432268845566333697103759181293376488435945514847493608825045153318176599301762596115225959957411458045582197452251874266665203792233411096113446946262941681690504708532056380653790455212456928965744035561733752474142852414866791297663336160463304577063771919182129474586474046037639115319471395228435306966656809801499540720980563874998001621747827421313971659092630472959687897040687033302027401410662686346628586227786703248359656868185998545737425529148661250094838585434733324924816506555141499086452625843662488442580433329780666033821961883257132862586810918458674967480678090783940270204570097927337687744752282139229983973899523567817471491069071703088765011233537231043281055592004950263830237285610086472765437736897899102906773332278454987101818633958149544303043840434370884786453835368643847608600592052615246664687560670548567877395824389014757004904730608908686953076462177964276881272363792099646185714356304239269449812279807061870944767727030325167780474396987202585625329589929894726269491530998701499307749480433349764556979675612034362926166899280498379467963696680130099199099367405172904235264290191581495476175629744256996930893362207496002308535410371521496801867351168178701609564731037724365985780372740792394752845058010023606546982620430061082062209243210893605569868373571594073621968073569526416072885852942607446175723708935611117185284791540239747153967090789551473729223398551329477531623500009363439926666591283277475323495219276005983943798868735958465369463494198617616204596674089063908291007530511116260385512181288664360262056997390636066092356164570154747036240008512787904421492622677073288928128659284664622075901727420622210919118786761583262183184610374195047295388847507167476409804809351653196505084061208538889793137895252497383540070474437894739439542194812689882847119245629486531794435087190405919419720471542276586080887397566808220986097826533583998131585465090963146923422911603143151448753412781014272317378655785062638149202409803431780889157879982774056485245439995991724235569007985627923984688829152768267528494136272443998268059973210653795776516196071789924134264557584848445699076275919443105900139646352609526262370053984712467973939641438921671409583839370724026519077634079588479692582697485121583470504096414210723228951649272748680036914514918002209965819631211846982664546322046612119004050099020259467830682108256070400018817060150716535520311845275511603676839177132978194427852877257776070105463138292308327811069574537559577387636105243634472820605502315359190802232404599898576778004117788917191582539643301900338503209893517106524871978945633279427240531664309184644350266663283033968663984671260088293560299663760498824099643567457771174209959299805230576090029617057960788907778532356073995031249733462527159551481192542374432860289560597036954419168678202621752003065952106482741618897294423513568371481353050116039383831245631783452626749892172916557444016884496973762200786130505100815057696546352101277547941187652963473959964766460976184952244384228800228306690078730549820415565909698374642496625354970874542254524481891895270289651885947085316670161228733487076402579415840877974309604801612136427873062336921703911961997426350463304873126912839917251585032000134808145756694037945488002950298368493948911551045861455050610364480678262182101302708190789814461230827402899355736246066136235177014003238273883760442651677500407302598534020538480207080009392147189301886630256667077237360800378547734508894756057574997693547214355404408992544445175427012023576014977236610287045004505866452883849670333417125020084139015009213219178086828825504333971930132019755107569743373068781200626142567744211950931233700509615478755847792776073232265543406415657386247011644733134228322174071182636003911729347618711782575839269845025214256876811748949216544553818394267592870355180802785417063317612641138251131038161736506217855102844863464104411191086839404334267215165868997205030967977713293932314996162422686732474527043723957161497981216425013637730878591044835386287213772945604523579157926821108402707845837883863182319062129126344462048756691743164790485428389576799403898195645949628048365518698866342523251627764009774111318231555322958132325119847902446230014556599089377019402897858846731066704315951518042809835035780771137672035442071429404772986470956867747317421988571298027265651534724738427819833862518780803749712291506129492222609019360044583695897350466050146163171538613610275075538911874823758246177931483091087123591730400213871751590174280687735033527844351943254357816917354874064412385145972743326943360510472825581619655788286551258328058189424575329095827597617469700238440726937719932317740960589719113007329755041467500031540741644691812165516720552905597938078927765650917051345582072989643190850060712522823260286872133061783010321964823970301164054623459549191287823598842235731022972745390593484596411373137450510545714558361409245661496001584173817427997920141327777956705393684654648654587007319240866280806680892335700772766607621403962903345733151994188942811165757365905095751637468763866748262236481617038741881040523467206509927772616933175984935198854329704386278191842173615878551413169748002276842800663040244674689161485490712824044634601466932867582574159431453260138479949226730136066521234997892318231161552740506901982372817439799154903721371666325991332615918311328694917631246687729985160767161304438578085857801656870356095009963224760062765506653858327471356776806832901669209110706733157295641467014466245322778557496757886619501644703617817278240994950298980364229345025202746445905181919766485948215382139285167580932418648890796557020379841090892171788577958017788317740287776142087654533015212122658954248608046612403638660349312861955921413148059606091407983996504043877965978539918568932719064766304839061592245037929301651659725591467897876925554091682171867545517540278184815626613651892350173967171158910227334877100178590111543743407483655379825191740634714490198573544798163212470131540784586251051176226916840056425992403541755384627323839934567901521475190717195329821782997557347374490785010261008187671635006907628831485852322616417757443384102719536968473485775935552918686304420764359165328033302678174775950138133701420045355154669332339229933957444414663013141473696137244600686992203446165683484639967095052744445675248987812822323376748030341725047803068055072008207153165237249222627746272711358265723387828006894186740251280160950300592335372900712838814574871595256425716152764264069163024800345970850713260643485385496684101493965953040551194270111576651240386373054191883257915445134527229153222546058413714992226285663248914996709089915806309519622057977399200080534201116828612823881537723827747113719097623754930662641474465029963274813727016416961737940215001734198958738966309860088773212500209846248908336049906375203229398656752415597764671589559503450833696795031555491421527701111089307502080425218026339647618342937687132514491801055653990129068256232192293562554961185036013203738884110716022605371812564707812729049225777005687441417752312638124956263544090716074684682389162120768826677853750013138659919511275931229566139535872627544122416572829400230854437398494391940413870179831592823625076883652261555808583248801237991313455609262504285169058115185645811748315805174700386746090385785938755963150841748424256835091139067945419036691699827539804396014542039087616985956706434862827512402024005131439619045280428145355852603992387755561761568502562104254592520573822665007211420304838776835788658159000907524452890699249923363677354366708344777328759745614067877316233627654385223095589206006700557206861556030907978098938534095940980197575561675241540906185797477657637931698911566591462799685136006278598450251583726850271279231560602675130884686934594141797960291895047208649740869379310693157370337975283451860967604338383703041756380536569491927699764957108441870475546048209270079956099928992982803803655683354035977527273101573953264327327837685905840982574895878755398183662436145404202836886142507695426578421966469408467134578186648109161128468059020011272524832203902486311888589111394041700392677043531314776203270884500251028592963859063143333990874032844772596023349874515927584030611479333085838762462633342003395454826484243062879346040090225367932039469075138718633131123582727783302975169630199512476230759353128342398487458510390395517772099729234824639470487790584713893113433909118930312552202843447276642260463776342023329076955124934267316392008340382160329010714573067993097191245506094428104943735539936852481785003381872588395118139243644003332867847030373031187919647576188662835251039564178766335646853385533943196070631817749656716586256197408604730673678777134515532515681691813897892602374957266529617061200366820470441286648901208733266506188422146846481914328144694711384178225886734241925414704257375862756317789707191127060471459515443156183921996866792897832275023706571849275201058924303242331712619806878141598058842690296358395460242881439229303637512773129518705384421089821751835543584174620427278788647540128569776687951341637825933158236450930607736666427419601496853022458868897428391884615048381495538567144844001076652292973614784717759266066227790630132511948421729296025139982061195802127593224709730081716588932463121801417288648442748780606907798817238636561300155721126750030167634221381802438071430783470300630052862411305772687593278105724188215055740014214207728522343382057088071621441566867163589926498674157192363731320879490377391086891997776505139029057109652560352595191778576737583296331066374910698270882000810895928085468890296417279560899224885583719974598387010751425459071654520872592621762613564426424628031563496673362385382112049559550858164503082594407620254577782382350561503580633445255373107871294142923997578375248261778377714974465474050941288106967221204990591054575751892304207359351392051954235640152188475699339955004059981824133354005326639122508994539254814263943111014573022398453494952363976436630214167436235220210801051826936515319523025456562301108611682910682155480966055003981486836654723828573006486119088517304180784638349750869061023126313602552419636206554622462435540850419825209768582453474601241637402343605184459467384716158568009043277770419149151667762104096322426650048742849661976327232855169017894978887586622818022630375761198168507463533501267235237782174765365070712807927770341353333046980252679464238971074551767914490975695899807409963292340637398241442891512545594766730524811827386894775196267869165231110594983599752549501888717553827011059004486844807658694956554633525630004262680205096139190203485730270671110886078868150586484758999657594379263896216239647665791330500947054163613603196982906605604221336031178411368772827975362590875394832103390345390096925753996243124588278177954447577288537295621570488129559727585831605772073737667478489569702132997229846919595768722989783834672752062124826596442026097852622365126305372147021516237105048746596836216206152195437136173980103234574145525424092122537367467924380086657120661757306689345263188427726523812563904638964308341652275716637856076626492832334704427794541777156021829818008694291262143293451841683826278157128857014243068207167657940814898905179234931149709905423540943914194618545029560319611159026658743130898173087061727359339270502961829075888585266740376270485942505904127302698683524607338982648202711402035589970643225067148274164548450061484943288759835473632843917230141137785010395122457923609496027280961135545686919345291649102947568625017794838702237414512008427446833078176313929548146499195109629106872114186707206318742574479822509372626679176817445700809568252399260806706165865580789092490405920108352734009552467546393266435388030212015012331656526678281113853996742711037946934406358187384108771213949049350113452621911403829184560007112811856536811281025449634406474644294887560508006367211145668069022793001785464916623504426693057681146224579732880067579837636906967816616701926251746793643033388003097720649219814625911865223349145160703870239633255812289405646080672638676156758372218732715575196448544629093956570120388489393684238835593039234520781535633863672165730719178430418992727046060595919970706929212413136037273788952272846345357055255278400482045845858736503497741864679718119165545969877543024884227777849535354605382563620223217748819656333683363781937891155978127348961188142649761217507969537556526510494195122408601928104007124323899531637209045442675330023951831289001727596080713818229424814998938031709215478581036807255298885330777948208143884974803254615984479912232687870413840698827763337178801826319552230237343238541815868317816973661770075134381349633406209704189916287960888866367376614790265804750333272239996892528209696899312392595626023596556543236770198288890687537133929300668442239991763441402361212002853789967773205934296104674643727397995791653746189020201150226177309969747236544297181795560322799329284469294080896041181202131099327419065325206281207722379802344746006831878854294916384702555952002283821583375285320467403865438220836943806606483936430258109779058413542948138292384615360282021545082780526942515629352846066996442439065231281989356758543351642084421884134225213371956123604234186582130700799425274091802201318864628779408144973022129388920622961016480480736020292929814135605631635471029668610299732026666613016460275447759790367884383546291000207681440316929978046290364892489258371854780809403879624494479588043209181723331416607404096021811502374902108003080998073821536611249658273699136393946542131299775957504271238509564087662796545226877557461516538956921656963400052360768775716955154188734041589387480683384670052913226541758137754049589817754856687443361724096625364410038589194914502969656360201658729194318060977400256833466338526591716989718922776488493580786551034041868060957633792296615185390630859146001505920001713892367345918281541541009468266288581111062840856408349361165278108121523818238219576994973387560201901183063233118441962402693369911418042653428518517495246884801444293955268398163277247315635543452738094265090571757043631236867300711231018111256595414857342958194399078576542959254361191736335076876481367248494904835547266284050929757230157950162092848463685992244451813997715282072022432371465734538236550403913212755032001493579769231002284947243790268477515056111344075539785709162081927180110015778779063943104605566471483355472226726318178174315753635700297392938956462427181749339926283350119654925438525475529157775481815604653346548061048527935666878902777824811419486601781806574538869881816252163619893696615073249930833659176342762458885648518360405540044164027429021382250674338037387324091529744478503958553788823677772557773958728744889353386944176381700307397162761090765743850224567223789285470237011700518061674420803972453200673954824258347143778191283396226353466298399423438331667675878795024408219839192302158168928089557623614777400230059436943495413674947022173522728980459694089531364211575641297983456761597291742015394148492716811904854947226146981159415138826703967756559270553678812472721140061446167266587832496269630081832021416374013140660813242018236971283521315043864165467361240585656481843957128940637493105878698085033328314227749904165591337112490976683687407660921766711387803958247890356936054202077324860615445993876022369633844606366116561104620016003874135725963331890363188057921106430627333762980186218620094066818646451988479313384959033307681411038002237790411292556243418061374267316552105773033598617392682008826686907644635467334825901683080989479185912067722252182648521480221406970484258990389486303738510621167238783406014696106090670160938969607999024375526313622951604791056996471363954377511344808915395720613012116286877407239756238636047774241130920362004305233160172763062119434492579365864453746174818315036213584710169667030146088831020483031543644957524520527073687273090285667550655882477114423086708557863437409279950253934797411517013012600056306881801703546159313496576924591467713663465474971342634791000309001872782191960467294360395438912248260305964103080887188384001381501516372419024850390318208900399857015761758302089195400841761684184000566127025513538796930918994591876102262345897027158940968696628849049311334850591298480499520480647442473024549554416052947832573317665454511976269541740932349775783688255203181694009678411568071259638156351001279449733803751809186457957462047041367869885245738615048586910150854273577249914010126965723612780187901335305234599098316081844053405102245346465098074766428062756840084574414524121950420225497046563670739143288180349520862538806691002570345903415908545057061070428265695347510615500678847796167263124365736815142229147115438268111967907734070127659352571197674024570325832660408880393896476217889885593881337799577686771463251428248052037502849542053329984839472453964236942070949322862566221790277612492613171749010630010633983076035201354467498405943426831266489174311568509588212429332449877489436002533929432338147534616468166295984331527520533775660167271028936888877709647784340952616850573424276759261272200311192409853368219019548100981657538884702430332974716434124326820389662864573636427215658933280729002692464648006310157011349093813737351307035036792823006928588023360040969484384406356906888781091789055706497328784239683759759707278977758503980353206544459047241032181299563343862424525945276073983815403674597126873594904626406314043285114372165497243253861630894264885027095638323031499299203203969043202890837780734427343362395468439233001023105974881228110787042708700193001939554021370050613843872486773324381071345961369851608635329256675074754005113377284335977765258851771995532141818636824177463739053820308993291982911693232707367928408399599727856435352390437321759681206794778948114961508934287319406982348247219050758211930690418905255549458841378978341408807634694006943720856118578585748270819784883129547464212271028429104753836508794625293389671532336408277774696610326487433793366395924235746640082121896505194419598548012125284273652160638674072534065662274011199182683819813008857586638374116344792464862591239188534637512275123057178463346186242557119179037531911603947177873547616391205311661505141897740240130082184605155119564347118605084374581360055602033263063606609786286518673296331495183434595908212575167156726047262212099530194730624510579327444788610800063909601267822380755539579223974042099857000809019595672920165265757044683925086571835937220495374906865695951763322810923402926235376101355175615213254534761455129535945893636743523500198702073198235208285673520278770623413154604848334395879866657971782383444805924195157076900262525182197060585173338323273661289095574451315762940082764594768753015183794426036921339382290842208613257961739880735156325625417674506199659448390197911902926294565661526785948352646717752333049428257109491661397549147684414549453843382403019522857474840280599102540399997242658573602903170869905735038019240417157841370980441538060896779743282734769871809015779924435591460430078879106028423833978588460155703378308157905907056809121959405111562596205505967758406172066392983150187075700665786380729474355703904164207236605278190728560339413703190276258826575523862714404017103495891471252349514954360006219441197245032265587814611103036306016928356453404900882411027482414940535976964164039166861017798106793815042219220644288592007613327522004353375804692205358833882975663923310026338640934566975820393773545216576952675983553962821691420138732764404201034464580825362771660342151579431002273468172674631599895631272872234117539674481993123604596171285034127596171597472460566665842345025678521954659023650490471337123919620178928654188006474815029398728492277234049312508269378961367985116296287969416097811959229142405662613306911634830187042487448810462827794233179885732228743156680843086425000905906224612877226071416464737894325016956654111302022883107673921621780562999775706528635053107011857517005308087087307469396648308617305890184014285765150899189908074006539212756959848091056448668243072708561711619440819548271963257641436269980326132029440633772456699800371760953336793503483737729001448121251039809397408551273629528638776027678610996158188483371561853343519302030872258700241665818070028327991903301307624969889359394556287531048666996519296992305836317601359138361019283739980891681752498758315711254211616794602030143121309012109980761941131258182624909835446098359617967188424818105187862357249533316587693314962149803191761667367447616516738555231296260491987267210651405514257921911826311590671321909761158990430631664654187637936113317630723351978266466877803543977992990928953706675321862457508567975859357676402897747932085381676331168222279575592573430072092345973926676470973054524023366442855522009690335668135434330864540828660161869576944414834259038946626250888161971118231464573015721100430501805234474758209141630838793664707079146826559053007367136659950591659271135922124710676583842250850125577628395745532311339259962368546966782081280514592822052243803744647104268316001626994345712107402135716616717470675615639566563482202452892859005009534588419578455112703554562323458450555323054562036318519107114561963381290113314322193950562671264965884215411273360876652231274028816705410159134028487665375157324387992453709323438046278592756260128049534165434840992454964640749196346827995321165525287743759944243272757557766018171164955885077696413257163187508114830086571702391857109109446478107711851626955384118623689969192226275550141830227738968060728992597342282386623642576679447192435024201719006580398610383321331404412970161770380025353416632474807767435298593498723809017601494628971186363440580956052776111799351058513955400433055587310323974380452392678085445867683635971363831555776376165694976359850243822383172325217719394858627161331518250309536284201889371121351183725902298583416589332679153813530540436533478153613157720135506736281874564250799395255244649872579397903354891052757758460628101614805461538241459708963595423527823792161685894175522875547606183161084363055986986038493831544202257706496874018999509708977757813075170952628495749424463028261282977086512051092774342160008560130947766921299065279671381905619216564089907172044044743569599497213185931174794668049420104778192342703094834706678334317936991341674882413665649099233221085916135106892689119839299044380458926698604815314122592057683891397316141259192434414179693893728074694066183065173778831328838490043338509465073427809971661022422139341936299076608556205880727290277122894654320213289525974452772635300144878762716436405364355975557679493799841596186487711070499224242321399860987913648314637572845807567516358937112663692316538738762594780570812383794959862089245998804911464496893359652269531130182165909728352179477875023229711411691212587927061931593362582509928773021994787228671710354985222745857859119543128502355008088451722940651410375567753343279860774528053301313580812046073051936107726772731754595451795658394060913174559527698919704058509584930401351971174349516633764717497244158330132136215254053633168890213924839270732479835325486862776711131822454473137189395242595079721785832800663735577368384233429261450270489427120080062001365295271971648119703601455161895149942009977957201090874254907562630846427410035819266315010105769636261246293460014551178492006962344149118128838940698714067087097405387884478659176796924142937643464187571064996527123154749732445707669158206872318759549264418410319541345009133000910260637500566020031146764613584269277879517076120653730504952995082091382701409473580669861971722695786567773370122933632618708182929052549735162180972645209204059942314079796186561301023946120520062461637532073795411749450123116381410675948486101274269493663950373851970769345262826979858992677006158463232947634099663303292999985683568201507860001764712570438809866429923876381115284503312657391624262434991531506477525997218194727896869441726877745185872539069667595373405740646804319418304734015981131080257528646559682696794305559013391707143461436494397987474595989472316369342163497719925185430112991266568218414200956901952288493946301152750138922726804817651399371360695137878107221674988407533484809577245482956964727154608599607948209743780537569981261299371946373625496479158229794271769807433805487299561073647327145330470120137662272355338712282061761584001095897283080217942916849101849605747995798063419774803294010018361008277557376763618638913668543109004959035287734868378825728350680291797286471783150863492639545696286566906320237086934544254617570490053799427001823446634061522509111485539858351485416149678457206839162145594055413242560952584656453516289848123183469560501116094227359500353274015551490683625761680857898059040952434163451961584805490545969350137011992602840417795666586135445648872852914697910359820819462695148729730806078790606004777516907044230476248571839235557853151008917494099252863014675291999742873579270916736368495740779760148568633669469406481641953061017331495681446680401537888442856876478898791939764762419239296504152262424826024305847167007062392690410280241538990248092209648767560727367680978665444285505827800746941102071306958049420410028271804851661190047494747437351106611420169441270321789465132373626708493216058523499504327122931211640203470720350704862144117274346315253001012115289303247123856224312183466199442911818608429885713433470454067110430827614774510737545117782714112800203130024619696090002644414802098254660507936369319136952561677536526128523767848054000159544271985703762040482193627312073053985961987928156839055360541604162946058925502100527002349693884293586580320235999049490174640501753443902037841405644668981358596133130705412671414474075430108893015296922251312307949627544927221760038496258683140495837771506558069421282297913701657315217922168575982892558907737201194474868642409162315531747371201212649591324161417529983577178174088156294949379851740178438257066158171239883010624528044332434951186388923073943576030688769379408793533332143027567327100419265416533373466400806633437917746058874597769251184591956245343423954809273061060668946831630886489342398223520001712504521351091697963448190996618413794325246669640253800630403364969785484622710918649087202454992942165124507770350275244584339528082862525323449798088757873453466500124583175957135698789447366809094209168461173648428694253060140482089709382955482783712780175563874124779624604170179921006465653971966010241853220913096078154157731050756576146089101269011460194848419998617900055588987169522685760057138281702905017028104711441582194647167716881319904246090713590607817280857944767310075502743451546137532145321814509686557476760101032843557185369006918139310090816657876979428635162581934815279278135098669726609498248720481491514079225424128658383011252732497595984897230358406861700738625813601923441775514948588901730927746325772298285811001668176382155665005080067756175236805164059496828897050451239450098997144283561482911973405805803216335052994088810131441507350437668976216584803686238972330486983101627332315234377987818936450272949369447722557893533090513168070947783264013019672985640115321820868987922192352398399486590214674792692580005999088850804782856911763013685193107425464582720750748630079302748383503836049627636472397535983708431921985352628622852091073685254730931718374880806886530341525512017539194130063391471297144292688502919064103998593615233938687260852993915755585716469774280618710585888296779276057398812565043623979073328267231227951143791896686795492866682968482478109926213670135695197204347167687605332413385103504058205261141947157605961482345827629968578220476312534018198712116016847867480004851421757253864423357857455533747078885112191650255315355993972155582980045155960104644012486715888008516748771804804981471923245923791910387624417629065363293152587845095601929283488044813815273489243831431152307128024694441463728389961161667617411616244489917734250141410141135077303825809355776404789097267323046283570108373105970361950477826673745874717588431386337528256218440219312848399390288682813120411381984888140251706690964810321671267861102525019148426804079188690796392536765321154422643125287281365034220324193663044837675203433722119057062127395003181936771305917532311660667702526233821069359254094802038599083873967955911930762218792536814400049511165723616657456707409287064952007307015253802705626938247878911516545595128581660384663440029367008068555542285733835733545577829218697415642492019202695363066628424733101648800454221598589866587195394817084200548641358896221453810951911646086314857568999298795159957187546564763413655946931925713378791319302759145078564293237924598000137666624834177803505320925785507091597560614542468760184481416471665362642350676208521662931718793466190783795839173655657037022564491179318564871980325767017760461149825539668568692113631975690723502287998251426480964342202390446043272398642217789738167847980240541168001073650938379910879220133475834756566318392464300094754898028176939767010067209533528092570755771694590308859147763164445158326260503255446525294682731938017692821406852938543300371021153595388994935277352873418923444015719199985774608373040854677658232343501454370674494598757940785363398277229436037842691804527027000214041762099180530352029040040308773043602062213736807744861896370655170905946012332912344046999049445968156147289068472079648916550513848506886307451058686930492478051691843859948095612920515612204301809814327327974963929738328346313183538561336361241860527229354725771932669162441296668406254849042789968184715824955751063124621656051432508612480160866962409439579713726185933014170460477513991837882307993829327033344837058131501995053026347287215145107942172999837020554432824980898480310101549247125179266336230480379983719764300196090962080569535524286729910602732602669424935746579731322590309903331564618206126337312657132560631858042245862854473920329421027949257257355345179811852811112932118392610279533148494376635674960303868374241597896354487783613470118228500712742099184757754625670710181259740482653612604321532986143290942162029014031851178945037802076238928882926087619211772929460083130968673024687828665012161885038875895770183423826966767539469816937819342740364884423527265322133951898317979010060721539953992873759059620862745166406183713624320635230394627304014447167444191110279422618534387184611891273147094997221986233783813533805442404273356091933914571741938635021943974037498111814007890491302541368638502268413591539902929470738669029649245943018753071606929596781989968676512620124153330742930943966157501180982273522108733825396123395766809180948145316414800645389572040639988767326910570774714837279840817792354400004401540705148828105516773211895003209982659090493275455106746109661938455641022557728213994753942416713621992880682067339016932007512037461266748301915002002852454619125882323522013809153310003098198097037111858053909287674775177974445680805671446590184420301505303802289425190091329017670628453379735887520046978364368497080533452306465429305299280806787393034864942919133027618381664246608881525411524862081566785158655114567882014028026854567346171793665741774361990755022871264750117238479271630915355976611169984964143007756929933547271813436417120911084209971232794962255287276653643004952376503374216452849992120323971544963792708049348525479480570647194433008303845640953931677309893040531376842981114030542284979210650350358072789351879119340284559978420892785941755695969721068488973256048027313488479498188727265420723550863584489132929962562663824022886885209721467351690574781018643270712400582307724643902020765555332205326144991027790816758973287956300972350827120392956477507223802288923205250475964264194188906468451289919842993098173778905709601138023319944019298090607902052663842230302211757364448468533531724273073950602235151451697346719444292645099551915404163344075840900680327677463000240380581499914748512240566847332305139807645854417146393869879173536650142322286271495894447355037960577832397134839016120600825839506435953122646494757580505856348792121321092241567614731395610299486393675000806774846129065426714493469938239600862071048438911875823624036016960570788121417418488738386257680150787220192104242732229091979237378845282723736963493932333329202100899102462585965772188863790884731524115451866863604594975295921609271197619614503059378190494119192778807784715055401692553346991568522768969699125101961875177494379428618399403403991470648673790463217736762752417136830422729526397441155271232335793463694038553884816950203557226100477197889245208788029790471080227210555651739563546710107947366901736620309804661074424410585493054811200050990557428438770091702577074331199041472235098621111839482447590671291498530440830435874611456193368512789795528112102799878650715674284882646108802781548188878139684845731603452655995652142587477429690783131240266175736700063736683770719911388485243418101555091648031688617759526732855984192569600060754690507129140277189533531975315883837017318036842230928150009127953923183940642837722557820724635073576026287908356361875417454576072720669005888791775207402847658412754593223847643498532443611919558359655553816904559165613202706752682645006346285119767365321180763412129937988592579518160454470660178775301307443386471169675214697156711336987619901478696766538999507166494589689360910823050900677350831202147344650324631058198217774719721495892526652403223080044133840060441592283126979969545228728658813511517962017641553959957740068786555701606449856287971218603184551013759935203847868415420707654460862395267617246277755284627070631843124426364258919684890956457960288926714350949810738049427798348741448005209552851410142767062267141900581333086281711843841557134206634042036389841701240065330551024419838917364427676990973042096981311683014593129225652322861389733159823947539546245522176600587453660579139429752032626570355866536693979047116425661441890606844402100786003111433189793962369296612154483749593527824756769694741737733054994011725991782560246663029141151163024505864085408301913305288820733336818141617720918240628974255421832963882316751252631822554645776930549819293671894250767088038640637097772729263183704963322796941361345819385844040649021629139914877814975511514449617328190976117149337433025835540321838940039674312593190665315790691679106422837442879078742446145286659078613496983425393237853724631621582609448540653085626829356590949419850575520787160564599319525211173387542096698434645804047407374516218221115041578243241163172243850319211001690564395040560037893060339651312398085265695231132987045766796640042230334774232192115143849406743054983830780080098671901890635567064683775638189896281010943814523601204931818819347233990176144310131083303779422338020390609143008959675581139014763843732006827855159795581398650106894817879806673215162846958245570749672675128270294731713117239689042550013496129791968427324759082431489771143364691279535852668303564999504747252227961948555947011347976094135196824357459117766521908704070439381659704575529118803091078857890755394296678122891299883841378590982114224898396921248141567808592162342723370973531322104747441185148907410849873758426681316631926708307733538295058441946561607087106863207683048939257645893025153706283346079446606434384427667567554183971592394646354964180080107835507192667358035051471725851243123441820805641117664757828351503512871326955251787290168740932972018500353710412752785793026747305642595835222968038018446212247885168444794223561750663547245164961667881283043570605541946626914418376874593995197112241607597667960487989213279226634694300468488363101442475688110091586553162363745636778428723505303326010161094540892871509529565722165468568131107419659448620748235146188572740315937266415651904543758744379986653335162950554380059699782735980144248676121232016622890910211216438158835268378862786619245440556827734791240636589204055514891820431115073726112274992012514925465144322917541884114654704068258358765468543206087344236026348386446401480819191988734600996099353212103766490382314786954671841329088949776215446654334301687364695097893104391745484254838021694694054809977831688890248488148016919352875135072524723164788095945407171627166916008499329029690767908497184581285507463034580697190642745672746418494088645217144580780915979093866394683833927354091398375596387515103474602954591306592803337045912685490365475289854463169805905734928940849534162347922698738414610989167354916620704735180155156951485804288027267596105805276608367259554188076846022846148549130634767537165037373285056957760742083587008049681285590185609679038165068087055806631397498088121850909074012904317337817106652827537937022129322363363913915786791853127243657875615777520293349640484612388761324649531050132494307595338892947605802594645164869494277829790486348369439443711413674200663393441824744963340041879589868865297034925950715434234527499777551688286663108238556775223856337894671701066565670978463579551549590389766181262134667926404587314657059486312208107761728479347760200202099571718842050231967434651046661876002834550338376899445026423954396372066079463120059257281710765704351983985693871008759487939269489628315339243015763472163891768496555262514654355557482313821242997242856306068026558155261088153775629956021587226046667299407258148667831793737745619738831545088086011165448215463536011988818400761554816163604856618565959728421773789149941596857448892538622046253383109866088970447400735821458336282493835487803095446200887255277911297874977543043094520745095127402363448762890801170809932870795568738607302123142468618898046646332875243879495689389329736835560504237030518961457813727426966674698876723645145697343521703546279996744753982552866945965372034099694609040285989304747831694539712607105072005146715888356438196488632501122208043789602170258658633054053580716446576954070781735671267906032777515077793249299355579187640841529185246222494733604427521126932101262972280529783898349665699973679603140536903377410172879798115452643039665819995393582367600486546982438467818816673199768400320510167076959748667529734822037171656399107547232042886453775963805617961451874407009146578451526424175959905083172435682717220232454330116843785714693599803429844946393637631587328647311945960628644127532177936075320926904538072090722138272324338373741430695851294272756182082644878777801344303273894728054025186454787166112867615098306883577324249176325885539845482556310013376328456222568335271391870154276660015638637063549918767638274502138990634348122056952524246309828021526836154676102732591398283311382606792466963695089769067812674381091531057941214224843004674574212954611153208222632851173713772801453139533338233541382919703808733288344345432515373513212731803854104754074007902550209068771799413154217008185108192850345079269579995878682927119431382371575082443888320398594745452837742222224604543697083965298202120148409647796433106505909122180271478264283763713656660630241812573119431604517379569025102144978301741970297738992583627150499617970171421830069920455885038878659908892579741769422060835504564699267019783174599312624177207438732306761291747044135238190033034231052345262899437427527310620381444890839510443928095417633891008915127808090850246286821130359042294029660943206604929403980442457070119895940077596534268514810211409885964292585944353390958496593183106560683540851021254339609599962127060319423928564724122131782286152139830159044718797355671651902334615073315985916656981783578907987712801253923767559932004437267361813607268052550843834669684012546153488777019609901744202009218413571789607621801431097685892043579729276134406460928471469566459931857854254878329795760663923453708348040471733171724461925619428890245068848790830216786067905695384543033258436355442489961996392004443268533322040448616593810954336729841731298895998161839597285647002636556944609944379789865794325854855109950543819117606327778334010242070532724803836211879883112179311641701207981793628775379702619593565160858164726639749541892447586115673699784270606900084947306093670775608115528829208494335787119545231228554577327198206683223805375633980195175141807697567655408900342826029744748373445203829406772020779185218709911715598365936366760510743196916162579598457476199539313131197159258770730445179940569264152355874306593737056358522837254746232955196134831174478026193046756528866774661324177030437697337061621888396382210229587445493589150260199746797660265743229326874793617277525758307193362065958567551277347431332196485747716232713062773675446276300698579247407163971718625897961993088791215261379584938643610972329443355101729276433623693771429541500183437949232226290377669060898334367763208477990883702179430670725378131930471638468393988372775832014507698912793921544196747278644956291267814651235763372067338842831389561475366182177993166458015026227167491277308253188087575339652230152735143572462312738626085107767878766253560083915763579705056233153335019210460871607684941566639876666691620912526074334192046984907814768233123698135728503858278994728379055601603740348100360496628505685969901702442201681626533659259597156233184331346593467332573742989715149138431121320130621968196659387619597235329721818997860875544823833713605432650409647900744390802483945855764910244198492655902330812543587031949026630356775330215897387227887051701245850649674480667420909411396853496473770609236382434047818069547350495208477109333481866537300184463215538545669149266783538819287285512933667699078843312716110839256645903689473038777137668551100022623704115140828980277281954182658227527843947578559080579570003623732721144839228416697660258836619339415784521328158181427976259691944896432116818016573690681044900363679841235676308443748868947632528100525842544389445103815785404938996340208841509723919613395208292678915091427485892322817989333008667375873316172259728943563248821942267604783036669207123197488172347036888966748877540116219055662367774873379601624630695167509097362344076571301137320710906156414510916363191778803869118713409060101453594849227774817865142547694891725727454504051008549680846110933767544327974387606394584353999061549396464228173345477134228792762180959660766013178944463548358004600633000721955659671444180399858835424003040890835631971739433547003659618530384469504864524071129002447623796060862519532230554845622393732705131349531416098751107199829952285065535476691052987825890448811680557843736334591023018771839203837481997652593878684440507612854853897977967996870951056063155989211703149552816099200616858510502255741294041340711501702647272732383727176734308376381199435736238840174649858137626325648056046045762839768707313187982881582464831765737067921942101345674119534279547614994633165926358666308694611157469654327182100451987531275109334036337514560839995391826101614638290779050546823203501705981702048128711045559570696163770796530769258532869632432975147721690563226662631191632947768235549250199366141734942917561714357302889221172018824969593117801371869961283269349963040637487983341694500885329004106878657641473050197493330184402327055314013515611167333174778296540250980716204468672102500739906219799440386076720461665277787914086143342803793091675357751592777301167960882472181224583333677949425048526865135825125958582405282723859374154125734029502750603417143559269709611287797210640190123767107587733786211817866930494744064513351723304961579104608694123632971728630671962226253715163766501620207743340048818287603763916940488037015764310248313483686254120588872340421928188722657685482518900131629273565593234542979847768612688312552967485933561063215097391674619419160630373040427563916067346021250208565828401104352659449023481805889460680807670694957020327845179636396872367538163327166878407117445905247090825779899864384010433823186082813017697409084316270630979840282294290268759817403472247934584758020092207097363311063720141742080537659224189411603562293558762681256981530452150086136660993451398503420127447619603757706669540878998201720368314873380060403652228679661435564253423441928957023217035594525474492651078246652786881068439189141907420585856886575287784754600705965074073923359307711177986776554563109082759180805253549432969202407145551707566195551833446924067472536727434280382310959614933068740903442911501526468063032127180295048571039485704433360325866085944590810227468632969910302763595968658674928814200255932078103893899639757766902775127830032142475671418232947672030322737625805761482444809336904373259208996436606002747466281513587242626596469428977814962879358392066635648191763966990543967339659610652261252404295121759554632797881459779506692619470857735658869658795292963094882113565721913122936206200034188976976950457853125974914095557609264000646823934820468073949635603179059464140171240886350853291500064446720457305452132297332879458753435936041458354716144860626613642738467910568990292237320681479238268649806838514766673870681791197663069391212591782685964249319739713991016909690898862941702022618137598407689520818377551493109538596975669814492378114769508378653706581529751813497978299708125203179464157410179080603008415577429194337619302028150535580994156608645104529206833424001350099558650330978597788714153928224206140118273934581237882196832769209477498288748642977136781748219869634494747188561972174133939646361205144649779918983792741912989773583416723873351608180211548872017205875159812116575113576588150522152775783613428808955011346195692202888030631715444463475291016995781774500465472645489613762966749256759870461715585418122839066811133606893986155957485764786187189564525176495085191605446359140515744824972199816572769406373097151954037739862696537774356530356767895267725081954000327240640678676155167744536885436981340845349492257515781363901658830030137796790068422332308575785709689322573890588155139209051400313562325276090935108474571163658109696861517637164228234040227265194952581742413175585986702044775671169940690318260530640733003542394956871684482386344524859532625982812809319430233049787688230703474533064067574119268787951440901451685116738089946241360362088619685692573044054533743722942151873027367938638228467251706881225858447731439126769352556077057896353349773089829356054381542302044427624298235072966093387091455877172094309656057874147101191835247049875678696337606343881016845892424108698382047664992130111744478002436203315519701633029194960218559021564634884547742710436080395657041017826251031601493661132690329138156174068757525042167321099875023203937881866940474138934675740075484067217107847222089078405484537072736175545746214288120703991124387245662985466162800514626566367972787717821173108130772201914585838363811894086312739882065131373434054995833263857866469155365798749511310141754202763761805506799910282160857597480356881497807546256001340633976414106121635143250787562501358139077652073350891995222590476104773197247559959957250234540939560173279233851998786741694189881367663115221680952677722716954555959226356498360391466820850986539280718395601409150543791954938764015571835019775649716665975536872601287724449752289567694883813352328091296986949352489094035484613636563149564320893148293780141605062069363668619541506773375877917457793861159168730590612578985075475215980238875326923466590520435655200554202305532817172437307535131722259423775904768239396529695570754118961218026989870242119566669554671861406672877270084938609589630830359728809363218469316286593451222907200749416729085740353988252721313706304438151835567660028534414621171172286913674039986198958408211241472825045731360542361189234165052270187843535382630979268553118053009030770293471824921821577319685801549876281496778747336269896315788202909660213682991240627725910395592905362848800153382033642729792795310808019851324797257831921054736284311433992989564378693839319146043218895769257728734817830704242779123709073731785767020771786187374919879592411848272278216504492696019306229625206009297139106729006674804756333487217434712954168014488869701953599755619468857281535866120990720267456120262908388085659292304717647274385185597694663013149299620813043634027339516250359284895873072763416979940451896161563032629936912220822261597241536973056056505882501879609477206590030762181785820497891353875832890569959497308030618412303312674958247319169980532561278166245671699981293308334455757767682844128294703240796845368572902369974026494633657798711686998189882224993834031187154529567503053300134504968611282324778913209590992870992678346879703987319454618913454781843354623787265360091171814810781684790213738618537025802641708211825356391679048701879776909132060140602167502783482769798616698320319299625733082387163321841768778301829989247380198953745122399769302997185652334329569782323355520260182046659511507158002072190174518571819167645947899472669788758880826526579986768920152903227194795082796697163506120437994473118522073810446121271876172094473894984460672910332869478095210994345286616934138874716351329973913311443559369756212677469698543785967515743490419382617563767307981246941925162092847207812320663463145163498456080102276306527036342755061693724474342195295904990458213629806315564546907863809027477517128921662575555817498241568217778636627216818261681122312679688518679391034725587545613872519160474962169961339456949466577339015572440892108423774689954061505477985706890494420855301274205593306226254572076339504893919800899806562745077318596017278872116457035882645168649533321499388081144978736042877588652322299950568357759941407959782474642924714990370937160803088170279189923064158801823795000708938500386872871446085269386107049207194953626770392598538856390814364560933203747837491567559122510788606780313591827810327722808511942168520287358015266065262790607999706971504424598375884769325812952220287102856554957999403616083461229613759756220840744871510889597214334569141792109235992055633161099104090648688246854518150397121843436280052686566469242126311970082298460201150605717179490794877506867391569542367969815543176107805639049679663751667553607411650252277682439614856808048766431981174261065482969178615714682329063578419938295784413387442121384409857819864636607429613308225061789481938621170565493813302194000518175082348542642825482340141954717481247746734382074071215074639928674966085677089997575202909726236756287035938265428783475622671732515660289942019251170021598489146484133517560831852761969825602842886850814626252070687440860184277138038033847057114460174742557938344760060942228219928936975429850273137092091697740918394286091283325222783469403503862881782229429793396917293655434565196455456128894168635338544025706032704706323808820261061062542565249758977837729785544097862863596541153634686852490395985739186596109242111164974272153659414454488110508991132588254534953142697412766453036534317108729025221616103497395526844189704283442823949588478657256677886750724876403834509116027455249881049336986306894451126937068997392838880083240139400693937962262236963860074501143452156578461597429944852174510488296057109215891554255865425607930864315299855936204162993427302705898340360333189987810136765278189601175787672900173006256338593992981438412355069574353942012726568010239204385043974224748089035519996550951809224998397786130744282759906528829255554157116909859034223300880284539220547473347355460255101317952818595952791029793474565834235553570385165722898015035151253051222194358116666427887630645068434772120361162248760140703068076410873819831961393717194042238885264575957707782764529438859460695557639206584818612296602910599685089323247077029464879484809645993942426705666573553066332540626406810856792597764545422768616983202327157706760953085326523039865082045454124237197749008919129539568518797126183958988992527674419318791357110924013900804181567733369063423320829641404199779036206959952396930080586965013419517076932988744452815091899356186221569788475989861676677288450408794716457666617711827659799893923996938297709565797664220699535110608914920009202707365585144183270256990858506762071044964096489804051608334838721570055015647557506697268585982305989821646770739971980960204446690540968812011893748387944952179285146424994209472414913755715897165903944071682320257352006253994393164531791351846433615262895695427480484947886000999024356091378215360845449263908915710754655606482435549956273498732731688754698578389564794205493500230601008826769726295699733748095998960815671797056124608074702023062621634472260426063485532616359392955304478325234322572282311628273650231434823559405284556064189596713736652285557393809528567591566810754523604281039259821046207627254874119876107476437447539096726622983464227944953272968053943100407936199501923246364889304961022559823383089497749832587934513905340296246806533303623239312780784939499432012331315475803985008003366029680365362364523886017383048453764917703436882834653957400934731475614769166700562985754359450367902995193435220319476987295961121524972014571188608613091996983834823384013214968521898693558093324929736711925580495421023867438831781733532594508097041288915517451514507063984912735915719449877151472703261367910046426517503490653403762250498077253651667549948945293497205795002465784242338991515437942593756898525320855735873481760504770124167054891588683276886472625976911581864537531654098696676305175884523617344442516809979316687347338552915995127775270569347100907883101616898595214365186940780180078296439681127993091791258698507972794644248289014858529855493225172496789944147301489891262353516219134176581695260289879380345486000525944020581496729326755355649508055243534065780447008620583923704435444725532696504338604092635823764893701577956209882940610573965603900653717735013207810475873775416347390143200592526663740151692169153771709163357233176929295728403887529482972021536297346602344498050685186536613946913353211159035242079044994398607143967540056066668059575846528634407733956813657953485893007104840855041580746548990181254975574001866428436799984403301261347096476527019918961806148288860198535742569085050081428502216877746281076410838822326552403677922696333013333878128630041371539864921177261470365958713790360516051409692006457318799206054831508068775287281633290197436986489802898177903716355828229819206829888190965336705968451455860530091103582818972334173303545090384363914183115594059828876996713017852958079077943524740800859323333656179668742670506518003805272516345446537088296087007758731258054964941525909378879151705840154553107387226405035823896300670668239435153184400626324019862448320605548619889548768172024673662707095385719832253727635087446953878592317558643510216785327535597720234352204086471973032024313090494531194827868643688092986294579287997552034503243316950522451196355811239270056977247109270694640036076829647953811304058435503236122449961118724551843684526606397061513937046096653675420774721469515224573612887058185831734959720462894304417753414905842698722509369312817165082873676861889578183467415034656209026013994150965476893222923036964195701786227104072128061204739583465973981465770704045886226281874658981495247444667947728614796321950097678390954262330579039194021925007304291708339110976125286995767627160125636410972293232516630266108047191855743314978478400236416669028145419152831382186832365034854439316959362349376198077765203839580661337612801650545860552196301731791641965698310594522336345597438625062439708433778019013528293359515427034222915625222843289644445844391710781074439692704214321882543460968531310322879212861873819141134907850145016173409262580271449255700761217243596886322593706391147900035873525851533405933645391224921217519202170564144870563504739266603181222132147562271701329382188152668962581510643100606295942284194213672825975111032337059055016951997524867709532289422185123771434157045879355219265544532478812359062898713424049338411250444204732049030858080018177815978185735895702669507163062326916137504265512657537891542494434500380029030920560750861244526857682962520145237861609905003460457806436066128050092218977718419737345305384213774091370827385391281736321931437832182052680795557844018823692741111059093257000257772973154058252941322797962271952762644386871622561151186405478483852107396175016195710713043468068277262522669528189560993441747048787584253075486544634644612621891764130565817482309642734147811258391636360417733608021002304015379025739099557252868146317846652143846241885784307306805063689060251739486329388581562623980886943424958440982494436723916050327435393169845333887581893442419166042389868856096926667824144826119508743893354339146753136965622387888261731361417678938385757198852013302607625357755909638017440706996313609634546842970096809313177145028893330230139942325442459829710528895503464324011038051517815660352903722790185526068283464898905463612799831701333810240038698763452227569932733484377867401834509349015785612458847210238363624557583284179017933849427636014166728154178286013356012170231397173222951621048233355404144739906733707900224698000448684971897538960225684589735184470370583277175385811533009367400373833479257644369945107159613057826822573254937345251122640126564045045277308638817802906705995978529538672199379844629968480011425396244163825783300421509204412666292620444565631868085318894371008124699542438571154793334418523014421973449204420318713064096385209356247314277668197451171364446480770890689230383762539976066910869652957266449504364666176304257887902791512995910714207103575911227190749278506769573433921343028993427801510762535406325216157080715090399925616774458480078545712346206029022142279275591081746088850062508322999787271490773604209611605920686094231589090388668998059653104373465516768944976615890545451181628788293637861165400289689478991558963153401902741266591068682669292009958426939342665233459787916556759445011372197375743458358517772254218889734915314154772457980004925408673192385702986121110378840259504058893242942578021489442226980644176981854400409850089567625239427542901174153415702982220534233002327629142907814891477317718246742395704748421314835100513086074106456539645347798872058271053848974058595258907175778761780450402825163729142882519097590846060114231935390011631468286863462216265672604368457600254056871409906983476949484492546568769581099244654606672241118152809167601292345101862748820374013029218178825662746330820409378613494757615934616286047598977067175677340934396024431478248015765143833884779417678446882437552341665618286898410640880494460348376750244479247526425002039107724468052870317565178846551580198142124863748342337773063105158053562114793566497715706040673032824749102300309872586427357869892053661628734117693505172057388970985712545320383046117040837172404810268870874745188742819671240837905678103801098310763565491780973787017466869752239081488589147232637933312542372788820681247328404167952499637486066360976151472260403223481993924096693920154780877987274018212266141561381765876191582441062695221771086812284836524135603992085887412132561834077336955807037989651605139374226197157443465279747260431710846877168463185081602394992159371910093698440975752160658259570160744520496111295939091655746133193927054581552155907319645043269178677495548584604642992282706804517468612302332144305113353540640833466999469981610710248855409247097668262782359241503740069063403338113450668331492686400564139272548424143498848994680543012867408142962818835222669688812456318818399643500063448107403563740492280693875037074798796107671559175698014235764643417891106194054143339383377503131836693629316164925250015193876288594474898151034418894277820296587827652230041681886182982254901692189648732291027589403820323318470167360986028939543532813138608148444556083001150835437559111250790436884177860053575551251355152332996652025927297121462489982631032330925273664536879101474013242724403875139149421025309921510595909060487412799197297581718058020514858880714382350063830893845637567708567629429535402908796295399845983812716555025190961384774583134346435432967424040467975830223575581676318991288244010311625526135880361544018478874144490762818367433842801317988002688267296286749221113342696271883516570562678224279905539645601365541988571859527719173705929600079977128806432012542474896473131049804806820920418622515289666262568044245295500381651688556517345739246457294145971575540268031677149850702262110331937908040899897725193951852480806386556488252808810452790186629723358248420940922500367407510241483798740789983074614431912580799489362190790947573594469112601537461609973885750282543877818025538630255172359227174341915376213582920492973503635995628092111235199849551377263785374024067976533145667749135224692832032660002746126618955724031296674662040427004986108883715321097275438584037395479179706022832130694221816833657670630048660960156156468372250849845219776663416315145019889069082342677497678337908426730295747639247518666849050217951953470309304686850319855193889496445647976391160001435642404571227297066874993995027321269475750658693327893374875530682964130127568545986487607261255679825338079337003607051497899332234343514300517581753653445657466881827178606482681607047565183488980954454390124918523657749684042187666836864002198185680031012967563090720432285601260836926736428243194033714306628032056736228233350427046455889426052827571574566593925984675834257026672975926094977420851963630428690964380325788299425463171549909231776922139526936559060829467064131706259201024410307621491383963967355545818461243413197451543593957086283137421222959288544713232398389653731563671971225695519105260923327698765875290149855721507305671615434343340465354154181082729156895327725927681560654635207587781071301808469765568694657279522243238525314102639372711585479208354360412659128408202855939204597495383218163945982695727403862636313778223838264333301232362567227285753976683237316077266683782341759439201359040807287965181516738557748658800464848064689616566067375368731509000491164437933242637282216013688595645684435838914958086398402059802801648441501425197064187186080453587691539330873171334263114960322137059290943894680849772557767650507204325072828390796381590264078443001416195171384103244319189743032589938761244512272289173393753092106771053281298692496316584741006678677591762710437131833676570019988030846228893036031822539982337488725246753052620250603687676426133657995353852223316372032833071676264917476907608511889261178081748089408577073900233169342935925228664432553071129243433551068558981322843859779203139045239916608779997099347845222389769395180957546146765562056233963005333696354317020301400180809462790326525441072846641063454436196165759936314707889374571730013901787389016717689780259616967142806459144929240123302973532659956341093172500953402595657191718294212671185888532659652303019046663916823004782345895215541903507077299083973528341492754792190939741458805676464490109221282770099222917233814509910053254518997709106946935122015301964944203443142971568311946538422231404374625056786208736438400729344084906865770586241606026589893510166672104386777268596093395695775150040865699125131137980931271498634864029229545501015632765081993037238146863528327778343360837432097881874328565888749744172135235499508251681682125643351694213459357431471228246366926729912826792233869984070120077591910765308423076155351173353159645537671052954881910215509127983695240061342501904185178746013212172679037658921368456891073266467539978039271600802210351241527382236356936815008551423481549200499510937885635769114034514062864483301069361102796923559852294596675200125221991198957212053406835554594137224736237599227802471238225356931713383187969423624173828922365704976737858004768778559059144126274674678151138801579234877783185344090064925699733146736123945130427989298397828830241872065709051633131962841276318895474111222532289480910295687277284665061159958012887575426083934949323052765888527173401824141075822198003618507820282151937042970896101968988157458140232440887917121110124515222566696969816748431156380485567212408443104668385277801629746549586842648617766497519846516580369430645092856714978249601680155844339820376024923579675741906480602314744944901169680768650225049383089355922601063600193136818577340263266758041895519617817516360609963109044890795875556863779069849809739670476009362346968077633997933216139430219025310877322405319370003654836402838672724565446705966768767552463774475819479250573095648123565614580813235932302159473514045921933369416233640053379162193619083789307068836820427471341108468172407894188088450514646008724253778529691215609312390370855259860366304221317002082059371060388160719459795547076187702798581265356909805884550827498744103384364745337825665163224301028023136557949497351524515450362438946187009158694669714661868124691882235042203884885767409434361955283298348668387109347746511401772078721073702340153496090187097101990219016912954936893576062965883167074898635163231907895251443289183116415369518835205267385421221590682716409682978544398461831689666647152189389392423547256083251217033651694364703698641632421561646463617191603425868199586895424801762789612780804404148805297698990550023324208332062152983337799012531854317411127464138368971028349300061082012620674358874309130589868313899228214268959209745743246319249169453667812122469151356641543550135016974387839963666537977524842495242693911462714787036715440049833481413912079488513397206395475272015207472791671711871901797356381322764181542927714138239073399168151296177136015791013039259626310724884131534222242492596259469929085463131824299689577186313306148998884492340975276214461568171900234716948106324828911426510817857290166523714490841608036975981263473177567379209910076830991452596085378824099208835142317282050585201774323708769314714407342615305142733022311453519088171468470102433466786247400434295381376418983800412913416580525931088349905186510323276292953447167406595673736033786591413675864910569877293792267165410614348970121383250612267351288595092350666495646467660873581990131282993823081746077396017132206048808234336711683860466841293979652823329202333632462545672837552015717180167645609155358969778759617745083639533979500107671892972348841983543760854400643296018662207253790255578207034138779258335739301613425789185311636683145436632425699890836002044707808505724557076166138971432083472082115972800917427837335679345972630498418995224145601326129001020856207892885764093230926022125229335857636044180469749551185368699072125071126026181787325888450950142716200643638250766517705444677327485472064547737545637193761319182924190108542144340210031603241443971050961013294624284985610095204575282477608252175396310906849042264838432261163297676833073221482939454142491457191808090131980864748776440458666837054369939245622383819097766614085236688108070584756531616639469974880431723096504771350600171262875138392749137102397384847586463929802597864143651547956840219128313032560954668217351696549454357294110939106900531169808549341019087357463085287992740696487656066561110546075548645781885435852779778009048932116346228927471404526358867440999035066417827567107235931378597330818540309651700176263062272421445581848047884774729065625130368831644426060804043457566487601911994541875855201365208937564699286153825508051524140357881913037863945150703353243135004210445406940016813224473220637013879392843882503202367386270720393387372651688489557493464079502726202482689093770464790196750869089611654890052093828912163731673780940922988908342579523881248216805808714789149407387252207768747990065636383970940339911430636443542537862167634249460976893962364483870803414270428451457545063470692061941990080138647501757915682181227042954279074165419801097138718537631126812234947053149345175497076770182174366794353826942762436742555843931550076750257624996682940514568678022949905136303025280696091452219408502312561147183019325205560069564289446741036899794792152613345649531528585184575071263478074925233109797141160253715927531089027327419866231773342089521788146545006206261438704281286909195678835475718586951425466411692851769045730490222748029808008601679856157442532823279652083536461141254994776977941140740377979115820292272518836133949523341589527127074823741851098553303690479655258493820233781884172679160586948900265281285461845674803489458644979389215520869434880890930302372908894914455668156694177299484415454520417294885338762737145633820582052993032252711930326107990481324831985085987163350706089718971454710239428681643581623416143029601975820625886793536092083775479803575586102209793533037984311282929166297142704671950298680451711031930592128006355940786814657345811605438748131058277189089512945246230683840469396810871012611722452062617106722599736394597482621030077773295854092668299005543937317020683058656803156548893267070745212160283557818501118902483494456029203517462106993216381525576356530187251621538768179348993316414694432409216648813858727532988366357024316629969860285846321306432445151205767593967640590988142211564200278637681036803295737524641670311845629073538593910413524140910988047683756890896086853045183682103341516383952387014359756781685965236239259118762088454652366252797224651408451575076116045646322882034490129424719030316069961910436809388718193445924307122035405381135935689813782971184258178429666502137374352003719975932957784663068866399770788986585785130645128982083762931872881736802481547419926221732819307725596635071173777834922063523042552502493916054669138439323555575870793052311015957403548958120292756220716210109838483157293900472218087361489983493554821287659046127070442653131019220171818143374306205146030928189301432569556482895416777162652019595140842495888501402917295877928734122425847439484860602501070006049759048265488203088346730313515316558336766496516822881465992109494982970520380720906780951758894558713014410102580013641431437350453597658287204952724761502624751522398165969487752695407872578029118846948810076203435949505671064240739028294647781705755210372180127992850645787185000593316164511143312480039392711116894372152167279638522722490692286097396720581551612972212179509466919916798842123232969898809327470289147981738305507716368316578843348302265569631345191330039792820554815915462749831315345800254732430039180717012344854142929415553457475726431082131171977736121856075595751653885911008800541273095692337581058544030991947584491595884706574229218386011810546828139663394273502808660629548122849950406391369996985730332927974893232573531384600612106869659633481296664804301910010607305056579330795613854663641397541883968792817691765558250876329278024301587507436778980613367603386985296435256988960641453208311876722764369772153376415172198071811200553108806016308560782992421167349096893810352857704052677113598733563953776257333083281059226063303166029050553932599606211943288497785138653295993122779938416639095199025859789186704043535735929090155453067305116675767664538901207738896462201980604828696571899151480868646070734093108047929641522762702708239402840684194070796398294338184204882510419627784556147503603940709979626813703983011070013724975672868195862706347689298211365279838342318000958991597871434986726716012323033881276419962532398380305992583101097177752824291271744389967665916065613815204564608879514637970977998952270689252147137109459157254757753157287241401252536802122527923981803944692963219779900182998481326311407905103292332558004550333183539274811421341506649306914191557851862616415973824713820907782172678673293748271880312500723716379442505554538949106417405133470924845059642597424144004818141030465300241821550324123725328440654614114235349423040832242373374629068434653188083579543802737949018412518787396435434567014440013158680576629302004885016854732849904002244020534962326517234515103592485554930142929686627701674248799864377672345352528917004847405658769596920575480402122639458929667543544140378697321576737619202900200721510181714617247092443819623059889957504263885240243858516532966199254768388603338114578714704000186238910383911642592814451916996435010859855960595649559209376694348200907139860926662222017558028851434672528429553340286761298600277601025977664343295117863074746401706452021952035117531881522012913673301253972281330282235211844458871584794868690464460945447040038969027032051874595045450912990390332222348732058409168085925315063592545785863803165185927996138979784888208685982071975087972681078034258600189098390784483030715388442443452203806146782846299784064031656007396852476194662118612385617694476890832929491158111526757106659328058546018273517794409774467488888792401143800277416124364451008708158710534442615508867117621958278610402465364055717037995305292564387475650888412511398571237336353557023844533812379764039580713258218656625618742688485377876647578008481204551052577943550304285919723839126234918451551656268325506007568509472271242117899740769883189492304445899698452339912109861775987532057963496081761252057152702832152869175641289709048580825014759656800792696700534153839572613745522732737259442952136642642651673460731841586225648496131181083302383370372446569193871397375628074948566779040681045952530484948074892481843145747033976550646746088006337007939561719558824678042074283289346627469709537032360211893326906323464437490608153699133574175735734123429999986224748542190054525637760399641613311045423784962267881310052114150851999183133751466615199065869463554370623556625945380141691568868035518275022294210001624784123186165836079430962449643553592401820818565763023654341020392139735940758231689307850735918733748456394265808540832146226639139809710844247742622922250965460212143348626627218997577506549777722541419278737317626629304664098646565531510703326168561093448327620571911514172045634308612956490020784829891503103184148417858112802279043777495730950679802744955015145991221750218577581291719657840011098282807018723531248434804675442971206715140121804501483550627590430447548586937975467807698512075791378539393786489858758862374911128155024645157784132517846477119391311047497990375288558595423794299509451504158206436573149650666423177388885256930104094442323544680515865112669886999984702623872969742771723742123446231939861370873633149365587747876920265437364940035745571349481325713506601213681532849308003077857203021435078969046294440376226025471375936223742519877128736605296118061777911233408769797682577308843722243620250930454553177717906645298152379790155413461402301694043247412455627582930117380909568187223441036948193203481327978166809543680720113903163765196887850430898497052404425405382441192970908174220244497181291148250420858001493736106516298178730170241797793100985313100792030612085705975334902184832479085518339286243152920502767425014823263092105463943519518401790500057385992915495872073256226794231103362655083636769733770112971549724389108405430920544053858069245494112274857438834558952253068001076187614364211924576863216250298292703640406107314204558881047485252083871004280148698819765029521598587675504006380585337435662938828469412034564730440966895127231084753470096675671166894368993153398451407749397161749870843423756539031305380576379537099304746466957944393388302969497318106445455774977581548783792502997500507577045414877449672434326056929290062651947589357774169859967890730344397793048650182418241095401786274383207162278216282282103334019544970277064610131735798159584005557795764746342502565660109545972275861977330972579436923868512635602076098417273494567369750137298274476667026958396863776242724977726163594243065401560569440588251806378316369604225212970775155295416500097602641861476319653942285263247641983745321315778607654979815495783969362175287963394440855656702698519333950582272274399334836716836471890653607059149283495328376691790108376880483644043229184668735129444412475186103360454943199674839113526121759026437203960615156558636383724272052064281076693936909706432657162059849758601369563083221212751181801802630134294755813079287623213725568260808571372085012989895238867397173496877346772735587699379710963564356919364121379054558566165647908304619607483344487596639302482691134044135267935252890442403959402533805592011175264084978839342851278249191296072196169427483662546604919166336573951657966211046169284229116035854352601035180496335358363811995396428074064703424498835888157543967281379453402363109067683673121367012090693837371805533007941251437373448988950845422118103594699814947780314526644322873586561881127217606068531915025849257542878525645734069391034116736474160345175535538348294688094407780199231506291233852134610933830237486552552262906690963293259323927072503530507191356037498821220568117916806700651540760976052876994035747531164203510023864335974707445162085149110307910619172155774300553355196565366211393263288259735702274042681977189317996035955077927992307280486163843054597955020088956024360037899382253445019079795132818087041482007087283727380198499689946581835145476069496823178702899577901691913453762258690468911407056425556311244544826121890913628593052279838635585351902885234035944392783645063753741040751319947912510265860992359910281497283857895609991111222500510978163796707685839466170257704303255333252898692944408836443719972343423587690965379244362889208832523549045679579735835499900514741747728193356346819140106378139613945182333957124665749588362593487332848774799864260285173682485856545899727088923090259434092999338726896694042697068838814361121549668306304096929046454132064327759043749030261962997995003158527771263143232275261702649306269669263012361830024338432816086444662864845431482104505138963932355793434806195879452641045645657100418344025779162169028852324027655323994791382342672430530698344834848979239374941189380837780351140620431486995122711169333105294701748007693018617893659733604419025125883626058606055262730256083257745440181288879978437151626329856000254254269619136868948355603552626216710014674820750518320793216293891813244935089657919855253790878995678327631774926273339050971045054045930963193264433436632080343178569472658209862710412938133565398571828869842355962553801792331014051483753774484339066409559377180024000330498850382088064508327088652144493697799516968981967982229084261109303472583246205508571209702103023256290148584614486936432351933803979513912518951432207489638849175670001621914968730334928028397140196579746897639864123512085950230064477080261611600302879336089788599434312943919176708577527453801516126606339123945401802528413750157695285014464321594950656160127514767494751366566003571873438956342128059583605681241372971546887841705788796023743613882017561870191972800895295072422820857842482902180815837703162351418803585829723632632470063674056276219161905341374135487872693744914605149470554021566955212463517534735542902992254925181216196841353200751872014582028637229747721912304526444229033151562502166843651536428306823573437771231702278180778857695953407751313632473910522756900941315795141275055231001143598231871168326526967335992490158689384210459868783442747882247452927448953067365939279827734953463649221133344727247228259306569569161208105578122515392723268558919887438674528267930155869878400974537112112702213037810156301883505139669923682705636143557111627678236034975594394117201926680192987927875799855470378999788194233320216079572865362879581405960991944975243128285818382471786914868014889609380706537831136527429511682195400201994993909554887999235743384787583762345558679346761490468800059786604366260957797750261474011063457227848114320514634884910633211438993220615542356457436824978469844812078901177314047087794085190477586099587429735765094144358462522360619578483200772113416373140648214146714952351055570158791789440803137510498701184017488416491831829496605001769432903630098099716882016808331234703370009159290709221212363989631742294481891279966558202035503808103008205444429838173411778860635707121424081053207086043875776055763699571451514056949279266008086736365223270324747796057993092987440593051780007957934130288539176808310265648951343052790447941319733924257555863604289215925802816826202285299819374690815348454689514642783595253104417829166075270475302588968627194055251151820657410143721300029549620790384722652164447433132583283989841487286066379910213020153685752430664840604927637117336021424321397446528673997233194049710184284175570016426400143870019597285723105023507705949657549252535374021348280791168601792830031676639080059239870925761673319298357617740911984237518966640873455712868256111295918653934566843698033599741439436261425133240823926374591652435322340996370925652312755433345085643766194738577156007108934289643279908378210831820620347931660422196563380928545618345480791577451874202032391982857212941878519228801212096349432459958461677212061812315119301202480129687577545057450356482733225124603550872425139864234730076409429150873313329564767014563682433534258509576036007246357563370474923640177824902110156816334158163935061158622343598479588076915077442266224428763534649523513548931950380028253243255478398762219159054076732743781209419896270620536754647177184909557354752273965942021933783334565325747511558573769118106006700894171377955364982431781635180959609305522224546856152781527228355953415152169979573840481893566423951665792932929262787093166924267310410543054235925800467127748016975941744769252132323618080225635025353870096028769268537643733086591942966746269281345047279274610697290325611422112761723493517315433953282104094524050088386311598360211310120785690970803230316258331015784019410534287657813915885137629727612807207736107904482031606940199597515885951265756333704509018867971415283832309757811372602463631217441347001261995206160715324474002942208566490823206523928999093854783746214939558458128507654669506745206215115522693054236866641822583920541953878987840205264904800219771517096554584542028120550727166424741408854194135096224417396448696904898115853474600026990934750893741645634182104200031929648446570876103372359242293168977671824796943856857855717678071153912969322360383399586359162844164934945917228735437923499974066880588155789523362007525299220353959260545159149699213676773020287902528226141715435484138400582673191529614254702514752537450120603353594439653376897064368143334634537136687213941326222060220059255973377199372125024859332601390075330487623078018447034558395877676561976301287045094655099527351878312023217032208714740522871565769916439287613285984256371876632015997368862230420494570400168719231883353126502189099377568530012744191253493654277901074510703496438865697044932843493214089008123801930743306977182838560698999040834090299604645834649144538802239006361659524909623662369563735524478208076815245796877850001447016688923412791594931120849976573234303015339044608931375229087404209361826779999600853222591755809253538409722006412942850820036743349140140111299951935860375238153907551954125791364318912566308710920106630026545536776667600491186171068042609942256516755597781218361185779995146497158765989527936817537559535583705297901442094356710899344082851987472824380174658513042435482004206280433625578474427901637799020988513950941516523423246187540425482942207950755083083876803251500616785943055256983766292031870947615811483061666938892637832739778920998875093138579416555562888778359657987932416343857715527485866294504588046442083420443366313128096371022701318332712774213979325115093003800554211118921868629661620895816611666131375557248462994223024176272610009028347472942661235061880362591612184451976955387603803798283073897078280226684489978748473930878106501741593549688155848768454299556355745403697364564677834171984182864760592582018794995778562420865125981808752154803465319394454665117130151785348990161246544194312412727990983476993610802954453846037937532199120372949492463049082306446255815648675235620843433611023382629021755326581695582868339374708098694270226070105295194815259413422414038071856187966516872012007922955104254320872948815843724732190190447205773417947448688272129912317878726874295234685961919192690582871607250949742689701191443606060149392727037738892935548748540783582950879684065350503461251727947354255886575652206915664963910839570284671387895531166122536006015875324871191509706848695764690941037234173529997538553288199135578625859491685197825343566090343438627958805285028025824942565505018977585290709651553923110396415637393845643678023523216267745500278810145378527308218517965549440618337046165588903237238299661432685225711061873406414355663915471054036878198939562330544973008511710339026220106033517149496708566355251573624232559010722498184598241570300292725675770498968029656088220820351876704698029723364290034492087051813340362088618273966754391238986110161925800231055617866542937346078267694284016757784182213103059108444625933787082009284596994759978838537878105176093550854873797899171220447304000969384892747026321996012274517178773978260642375660749480944577981187172153787796181483233646473272779397617754345112852186496007155110727689544757184164020254042577050503245562043386028193051868106637548519721028287327680924991088513108556131963214454095032366286425258446653146279705429526547400999980800022241598994557371083114208950742644394534417789919894920189430493463322302418866225483450035252887985370635598221371094927455127614842591112841551774186981989063852815152888418490767193865257532307235713291106859608494195941734808290208321599259462665711095256973312579482015186935927081811234056239745067331858140012498622655570531500800148360627678758574420466790396350753082564614820699426837465895528616166266161071929151099353451038551841758502381066698701266596035289710073808312402160865898535337058441673283055592129520626863371495641346624444896189586001365574876729933119347013165125402821593133660999985977993804393846877598127716974549847163156596162867667578243398090401322697508202461300260994031622631897018465359958790990855619952965741278222742075676924205185312194771762435308096063493224972940003391940798361690614381241879928796058773327335331683346876085711851013540483761078196237753421935943041924245415283867345516430417752812344419197271834259342424642651404923135340392607886871771756398185297141389733876923709004488930367019995405662728901535793858263614006725752832148957114303278707318689305412278398714542321723850582152417056605204472228628452688951932141347831781084884840187184305713789783460347815843608912774182248619969471442263264428051191467819552722473628842058841617692268609911861658995508331083293445513464876845997215275926307871546680314143324715773805923104337619355200609733004136254182535084178852504355252127942073892337571639606667203938160555481389104180669226349587036469841358188369804189959061963122054668861868025341578463453242084828514085415021021774926679382256186080998104466059632511298024861478441741511960809288959678562516106696749217282119700128151528082894892919184536348662829458363843400444308225050735157379372436515349477038022297560274830855303803325617303950126333741211994655589192916209191281081260211352578995041707366606595587343172312660946482311355170328790270568411790090136352877275919460547917197799702891794996079658925010337085885110070582370913229305668879592974391519264258848905581939171172549143532733601623955350598793206963462022204082206915273285370164869441508906333385470190620062609016073367320141814694466011396077394600059643094094010016184791627002921807648083576573247431074968664537533616896480962338164600904338378090709142779074549329210231178507389255750023849795020499130589241539695394515918348460089247736334415878103310909779399210826145497611100550301295090873009135679959554539602204041614711235889567517788764997209073949579566716798907039225091393571793731155660260618920748875949353010865325381741094133043368931013857862303685859493451245084633645274303273511721120514419741178076126886544446866456684421939162076519398985391960799543210108291381195796866282659347339849886365206102849487712483634086079681957520128653626939724820919516982462423417752395698732771118600661928456524015866130280454292968021943891910593521542588399945021380037032502267666886032727759232684560818623451416212104114897640928601588349501678578941103990352364153385520471364217792030180911800881228767713224863775177534620395670529069429301485975231434359010886270562000514022490295318995030552109078386530260583334579749929997097714631939797162898607841450528612479460301191037759854221852845148386772871895779177270224788423601452032781860246192407210396173616029035523303009774079118928488757434078304326795953183988463246640554557482966809086502093487363941552969815023039323868189852224243671738353013671428776656955528860755942328245052859000284841034747597992335593666255563317068142386694464030634592878883958814346071348131939449271389057745263593040237900651610143896147238990932363157446429625671027594859621524235401526241314720125150019301030232341190724624455871826746547905915689696599125818437099297780871971856092156268655603742249702078929911205744083870567289048116209784919315815946512054016118468374665721173548901422923142183169487943462747330934355517637707645774453576524013953235346083870186818656459677961880049152255410174064445945968498918613727727922891351877111032980169368802053390542083121442261041735961728731317647528177942344476780336710301242245472190424501964008883657926508724408700289424528629080220146303614310277991193370531208463221819057075300041415099105299161597251633506687906619161607683152115246962585823965291666959255580172323533967644276838676611524594331005269277954238954771778911955485915278323615660432898579537135993327599791823347865641866206895628273025099742586229413863142299013700996807082543703412560855692831354491851170918195364436486459878120369325768008799333086164758888619427752468807246519083441193814911478769530645821600262702427234676353422494635852862096606735983434730079308770574320074653633511671963863325611078327357094547435883355395453280336560679900970019200555513705678200618618763235670241255341835389750807619090495494468832561105463470557362860465081136745565289968581253927327281145723760098096275261034523200385062745879744554873737788242633371936689052585317920096148447803532944894949764093290221455390855273255826563659981829416409710421430847779104816502547654913046224261761230661814379863858313347242171292041459499934052617410540424431320638688633023053900451131625843878912950158190152765879298909733827393223075964754090544582824508859500960859377512173002410532248147761639878249149060286893565005739311034782896747790053698613172650632071183391808107248895946457063564623630293238389413019405155709108126247374596019533342702041548372718946090643484078501167537383592929783990853708768672052292414880441897397528703708932952384235019179788064872969990218683202895387753636259516438601216529014018582101613659102582919915682898070037486569311658176994042954489436213808225723399633410231283255882314558870182671256581257253426043427378866913350560336826318198322090609457649526506235013547677160174344257467013861047083767843264368737320325120515777907542377781210941977107629755802878249405153061277897979049245336076415889904603391280041446080440563208693427196835789403652731493852394438527563209117165243640529872414431999898367198331289212542836170673261645585939167076301006011754412357345461452379330614276331072683958933564554784905128662621183642296516433310620369162211888226606181075627153019616313725312785312500085378382730638053368448111443267966185626634654330284441794776992021043621288914066632747398125527752019769969899150025875056762182156598745404049597302593299523633544373222330934075389155832927912213830225642430806846031086227565394394522242159242196921048134077699086335945101219134417391442635117583883142778747578525595724662463979366648846864098962001085137468202232110962535577188676175176205387151303987844445737442331624947861731354481570808048192408875645857233752768211977845937670088773803542527150789511161406551112593959483146258420033451601785136386961124533705166708621529156665393357894812335510314197716009416509576589614417430607590150706918114412412182156912792974697574065789100204728266470514548887284764175617224632968534526123584271414172111199012214111841247082370921035045532514872724151090348695945456533451337856674799883624842374257691015943254650395094596921665747591440642839087377871908221441507168108657114528932732417657840651074252716400903719290897952256773672185725117886276022458629082665511892228673078836949670517206094901514207759477908328700241474342119128240523166622791079627712521828436596162517099820517165322566195912593607457159035319718923291686928609943865671143055856449631819688734990043735393836257872689715248284991966091897959903839925685224431037616409888552303473869587539184253990926028267160371713818669402906144121880441386648741231988926895183448469204277922618701451021996596570876854397709859922365233892898962017160605927219284730507438662144352202815637918071283982530460981359146620537712875965821819711332084565759201916791756752427608547280663010580329225928668856112960826942378667234700329799387766062881876073426435944978723746478766841031893770081983056820928747542179091558755998432937614280441337996005990402815173795594657517653137583818287403739533545921370616461004265372644113024642870873466754546801159218154242167418401394389791733043996151714651344529503563456458783152158705223848269424653718333569138169131800541588977405141061476263700696418718252048015548689740212978853829705553495765498306206964830867638990119814979762317624115961579812026689009837081696228109512899746575260515418631471046979867655120322727154642205764267207084853576431985525584354137479508120887149732188096746299991700064423594654744052066336070497631028508644761386946769629795519615036983137633835097817636264686970365016582390362252641626044644240678795116314952811334716024728272248215433825423902917765829176232866644694448827480440771130702772135010126657386764430908095163338108905943385329024673874535673661708188594878810856735594229472242836220348381259524904978463131943978864442466089295342600547984552463480268792939915134618212821841526642822762557361716574240708938137783395488454174336753460107595772850359333117673865883492179355459035042769113254576558181431150467026190305667914489749180632302156551187834214757181230476190617016678249766333480179561653400155293464638172979522781311316074154876144076921255101066877394180087020670853749128111926402634380565499853569695899596450913726271190635022873126717622661728736473597079969433290711265054039210666493717342043188846382374747458811394694782164761299597391085256928198268338001301834826128889326606558451643274343964071046365108583970184012767644975285780501502563506328490725504607020466900292016523180732081248522547532156377687595230900182702800055498129331102482805420928877058248708463976013267522882912339235590305547458746760201796856090720816114502973530589301239146370763071321682851827784418176652242026582981963219064709196298178179297392516260833103512709301124655243519352140743241749679737014087578324082025265945909650610281153200281380814132938921269336724907061881326716744458479984531650448328915331304087549693375404250844878416865005929868979223828565741644990436946374077830243484423359999066842532486077398224855468173560765376234453692906723931806825935436649473643303702312858993770579033181935139635170403753084663989536259217908758948552979431449437642001280238606254029855763991422513511551139162340400450165515811008165863732277018509167905207044138393758585959469323453774500143207642000677627395588523266248657964036275546050945219134315656857510607684843464077230441624230202186432546672435606230771007816067027978750261103679800247039797360737471714511142102079124703238417127733506004338435792879995561767902700717214543647707545435031483657492915966838457696709567428356461183805268140246533023673970669000149094259101523554317211306333329887450308976259531905994210306553916321189218949580833640837852969381427947390294784878828338726093770212722990627472765578366259213566965440762662152187491123279589545782205477381531766439288859128981963941919911728633572429583102907721025439284144566253587903773989805718311571043840123332842247866565475929236889383749105093889185896857803725737913841129433664453159032413611463607927945280427054338313909751840663501905486657705049727420204888169758002472370244691850316844278006675416697104635781164080550034241727104854914563399751258586850418689780560887125894233265178609819993850885820343423727227759186878870738200016606735564011707946225651942582091221143841336810461527367911638508433411654890175704740278064467538125366270872136665895188666999030894599756414478639868978226787692263525568645736245730158405175785787602471347536381839078208183383925058810022365081369888055069559154997186008760354515552618165327640570963567741648977245587514372827378650855968338877121568325255579395922860983930930285600292137549497568797129097523591787399067791640374734724028647937772572320479204410636803765476580330906339606235592281387127472163476695889559608154995875831610979356105501745738765215335171312870819873415037938671702224390601450322898158150252578313957636306677060230474307565884267082753134136624562290601164946978042856691956040267901242283037890887189372723577555156683519079168221885618703725967301045077368608474874193186367018594370551962047827517230289315956402176730063810662404877620197328191776160362451165009942495143918565020365820162098092266780104022983451994629088982155786471190686577676759217475058517930571003530940374644577646229037699285528729709964392344580735451824397358140449476323187044565166999381467736181628137165678561281994507980168878769754891478438236426037432220037221758557826694155258816963980051250507901051065938199069364251534198837041474497301772390777152706366281314428661077611021998108116643248780650839419764051837406416746596398693673936287315755384631117931330006635817210803928636642291424887970546171191380399146085246048059602611973075814332341140551534468329908096823883139822214375658257858375937952645775800660144870508536197211380342698445328872761737232669135475717434377771883879032941465690516677158451643048340551151332251427198328491672356760760536895904017870504145902959001856564180193133581383081338048303458413580292325276919992921319875496863794876720790510043201187540611448223787098179152629843652624903862452350328619554719051768381649320187211488793325389124244154416957134561227344385273853243898798625486085790045718771791337970051903877725248171049417853646317323771674364237545322769358574911912002449106264843351338395273344634822716822821336994781321403846531555220997861172755583417835667587447528476088205211183355451615234783420640364420256470773015332133193339553252538983537405078962195064210173773734892893496627652179333591935328565630329777321014861536541838081141527040017749923038117792417539072340231353997788160133505417582525812373644418420019506641007153433285729236520163234762619628910077976750616998057985836510055241286806375188641047968021833151339377275861450917168610295938073160111241525087127622117976356343037510698881525950959549811503447234904227283013646092063006999287107297240697897760668249262285898331078365800169604057321530252950751168978543542179829977995922470379880869227019350305254943955626631001425527305735244991682420752223176558791051530458021725030980680472484458906295205889971683489856631985584145530707623040214476919043385073207992883594133299669202391516732894092387130625250569608125491578725484157293066667711606259909707762180049285680978412142336014703872678054807748722255874269883938004514737348962474633518022090150405360662158825955673179010174285609534433544449377944378279185849334137544274628160577468956794227071411416047817992218915690098516726031391093893906753056294015474720717037432474609368435638199830031457098494060950359599924607743506145259962514505459804030732852785047232099572040264910556817650950818757218986743766117056273799945518945095279100257309665236060206856952138567860016851376313944111410489991819183694428205696941500713718650420641082417162637306282495036940094851449064198244005004735534373759563838060139809890649268751184109726719874021674554734502923959001077732280883865658516438713971175358613785299852364422543038418394479625171963345055686616227581656531466409839037527719230037673303781366363704173978617658689401871829172132991169241655046774804215608501976946198516728284488646811837801739802112865917170212798645223316646321629496740972481569272592796951104466297061895032989805872552388497452831971639623972346837620264440018834758862810563293158563766950464490287722942277049022047925155879877814826639533488006152181187442110399034379990220943651496691068220794988195751469070660623005219249517638021129923233918331987048900194424083906592938555966052344523567650794670108385332059102152084164335673105330721765631569475312583880142133193963705625018074674321746097054231765163672779646739006635433488257277969469958246113104096323279886404238147645373628497735851051588775993440245802232230011605381759168633571425300768782854191252460593739860764443244089112383779427237902065320148086104498352737656701592608846963119288213237896171395096590173409222894803242157488376368939631733598685650823548166151548138582451757147436856414913276249085143468216624260075957422933646491573399036942657970545773391270512504240723534023022778065681052912698982068211693114120378072705715015298546345373584182245037085856151183520074963643852432368687895711158321828667320907470085425207485638298505584336775699415375430477648341538847641927423280924543756914243186673852128272655463779168071070683495828475310369963642349906247319108780663249836930772969451732669595526429533017121606616257438765170895548079295058197438240765987848400797861519752713359961179478819358394018497612766182866646622271830351162211254276282267648179165918974872826697375350712410043200100404848442697194194876461176522926381055291259826163727921428615333129406581967776844863453585480101440116972112925912035686321172544767476676693057124762716181132707243143809258636931356703280196336643435870261406402553883616842413773525510506689588001666097996590873967330318079089575578657930050933156154404278941076967746941579756986987098495922603248107225593073583756536755312069723225317714336191193497402063394008145235185829125307182480533622415047977752009430911357577483593201361744427315855344855096726107659922112868499131769476676161774881577938412087150644617671044911318313449739571448750863958334082486886124528116179751516039154686139370255723661030013751429065275646980709803107349235346813331152264924541723116231280499613724323252617193801198593681057742634368050133885492182241537441366216105720731575105600302885323309409528131404872492598242724027779489234538502093137191386707464446324731345468140188672162035879378450238536579593054907449053074136129790692742580819033753239972023352678522981277164739788657369967605891545654004241137411249843276688806311327495762604779128157577481787651943750653615880603052298330278758021202674861043818859645804934497040280935979675553231667295432302914643827397131829066113464914726278750973248092334477709472950396743160560927364450522939574869745917434069567192396252503768415703036741103792471200886845583954761045716003189828904384079386677551859970721914516695509903823633072534544195149206363522059000781243953416987443465743772075571646117189702676547158892139039236510234906834306313846566445079495837375391728628171075097982758002287505425968000108268557821456506075519155938319288609058471870265823431272373061229661153242069439499856452049118236328068775271548615047027316259184890186904031458521856146928689250899979542907083970403719636088912083509875952881106283024398865124741957784117294143807143651286696679880605110181743443676675756149530064149566550855496023075155050604391609088390883952401655706716772430980214060666420917944434418117827923034572553822821030123439584769187642066443831357721714683809668038530323875682952167456742785561843475604521244113221839425123213526300386080140716533291662157119529367236276434199415544711718842998195572915498354333384062400573179922741681999335844144712465701746654935806771164702454334180090787444499642548569053988593438897063279935337256058925099367067249984476666006984345233675604997590637228324389917637446169476644245879675776361519026483452318073605609633856533945804063981505989816125871253709573759209881815884630064896467656763017525738160375400070605959172381276716953388129353496150410893444657702689038184970666559006309532621731649401132207404292724227229806186042204930233858566338003662731445678693044632578508723705316888991079154921778597327639061560127605852632002195898553360410301752524178299442012056184299123801587451711856536946924130246677971929015690669758400896766256585395893231890051945841823926090883446395905672218126136476437934512065250760581993669330227426847455302263757406152212887121264955683720905049890039350466360393536498070985892762177296397666334813837247821763038901846281165041195659351269683380172834522476034062761581950599255737033438221381951592155479160342484197025214125234647157937930098394446404650746950852982303961963787402811722394651327386570285270605258636619205184977582041983999654785417301628464101099949650330956431266512526464330530298630199657747637500674281229256572857754018676230974652829568095872925162128388440977606974561698212106287067000757277843399206074959794386556274626068227608504173871442648621519839994621600328796514858816691637850293288392855701771919775806747260718003305079727978825664248399527746285314206387019642963750760672072553105509617482423416014788764343717058635847242499401463024665547681893608170797997324289102691238011632905416820479406199694434313038844658865482172772773123898523087687520972763518148034333503331408513792964827018535444954236337009583714061855853973910372444664189002372367484517596186228044292271306027182407933353197193892711371253405179430414175157680884699287366973523989421136475204006441090162874787546916953047892066592943902252075040642569758642840074061371328851892851547667461841871195429794204473393808184475703587357151546078258647359855369796696742769892344145371776124676140710483916558616615127354696111893781868294116121333759731261776969414680783888667417131784723504691290455151106627680713790328713936666156203551367182024195282505248935364351052385368943017282512135547850223951033088399929497378238436963602942882983451982611910927517431141210940847445758817485044694316644667861922290260773792918820483657799676606495518864530909666231468799947374254975621803151618674787741803460557766205331431424923780365212248128182731682269529284221306666114023684983386516523627035149193909213909308246592992244160370141686358422873951965879643649672111335953416936183257733354064910271956703330733186933590727682508476650434794077993165060681442988608238155660743596055859992626863122039144984853749985136718293445323896002933462623559467538804188880249224111986286257924392038844745542166295970236993442546266646430919308979462958044236201941586475545603434955539598437216391933438778963316828939099610097488058705360191072811300514504263646422167530617073542074767015846422927452571583627100656123961456160444597023756948748111289707990483312754595413889903324187218810766092809381803742179789275878323387512302594696326478385285901984743264931255110559548749964266855159183289326350484992874650677865969847122999409221193835096330468689790421015050869668703507206941358462715514789890864723709711853223455107376157628353029824186703437287933759661679419666773610441469362910329413686431021040508371082768183392986911516623612391843853207478982748196963769219501819429319047730408235769421286500587903622060750936414397259478949758474209587487448812433447922952935335100128412565415937315698573352650605479984191710103868095994469068185329318599002417791826723512222088208446208821596190874291868318989555405612450436351968384577169464525239633904803830069457024680098107955072552453106812698947767888905584525673568108468369280756827913521724335326881760026790903018034185461416638228256254472446251633538937820990849779323918470133764652443593266447145714676656142206798503076459586651104112693964949899482336914753812932418704753913093866463880279167115138768045570907339190763135276003811153117746394908820950142292825755065082696781965770039616760679321910483746740501449068412290035105617223362522819082309658014157795803520550877753420344628046825221663595629216359310137310391556789976860463482518208048873980960477953591764154392101904457298895004061184472910376685261026254930040934664130652627926468025222340473007619322486939151922932491670127924027315122185028578536315736520364623008375494199363745680629521127387791948835304607580263215112320045379772208843183449265650172429520120329509701518387635923274056833134767175574008210313428987115779899334649354910949780540612555629380691180931730618790729616021184573735243620740091209395605820633524133743275380056413548592498802747240400834036091631590220599950390961991575071604087460162175315962744285047114477902369728140387901103448588889452968010874358701031468026369273065882010254223275891359540946433226858534302295842360560507896350428627640026796746074402022558235017036837867002905803023350698911653157070191034099965962653792335312262418532451549650032730272198204941161554355149602789606504374091747880530292553445026960551657753507420751736370923892061097222009474085218003696670784446791738612238473132789977652992348177149121370970169574797627741618213733654743572145147193601631185259937391135664299345847004790995349823835047146918456929880823418869471742419662351879693836830408086635566943497563067564448919490208223418519379533924770359294108458098385502381806812171714375644538483377373744100740558704825019445798160416612119738806171698748773803311061218296142491175162691008338283179263836858205289498843075410884033176202552104806866813559671128280611818149622747997652866583090937558549603294451954370930912360876136261805127336035627665474458891569574954083041937982518656993772893978701351993688104246828298872731988891051689864168772608816970656653863445192234975185543325315451811360371024348438674131323204442779483570699069754930036085118414816528474131078779146775535982929600499005576545535612277482333201516567502703034462008963000705285515296407412091373835049171336376266023346426217627005648946901561923735310929981803100555809234783823197458416632983585299769960747681008341788968592884391114564939782442139590690732701689338675484990246997201967402916356076195929479009544838702904568893611154015805000680709436183630102560975316591554390500408397556431781946793655088959407254938321799285615656371998429510054195142318144489253588023212210110084268542421637100298072039391092230384116818922060760908770524073750102394239211374647186793647618516464780770487411406397952790000280652948823192944745616692964556118192820310857328096108980736166344801755281477895206268112413521632138283384860221293978528548211044590451204306511624803957310489186660935671000145037238377002684966762612558514240296667431490004303018687763470551668893197117739860699580739371389304040488044486558979532299326453256215089171384692980627569689817057803653572327036367131494558325455398258201020805752302567561083517975004738744737806710500935048328374069769226045884159374837435587323296512546544657146860914105533132158274780659369680846769446532591764879274469757862905820912433631498520132966734758586818226288524168462531769851537618788969209262871845173721820466534734381421936601665440077672691996712754299764736770004636741223386693408486902751413193515483660595451422758404882116352722550084392849005068486847791948263871505807696741648205422452032866543410812235276505947933757578484268104626957030923002544410324189972657399785605670042763405990682140536815136989907917541301299781734961040459307926880446336558779424050612321629881125011119116467805508326413282789146508873646156380868690629191132194917499890270301233645261340240644008016543493916553091479425599253698658214333200827296159091168107841082536212403214106784018047382418552287750237760131541920096396787872207226787907791666859718768085010846339347393362672269235530279232078054940969123123876388714630783066107305237713649477832432860648930968391121189264977640195546202541421180676110857107047430830603373685270816285065290840478308345746916374122692477755344683637383035795217957055160947590379786103649197444664769675209436973092429633444063597500087830480374017799104797327919969335271467305820434821367731802612102021230254853495082455935356765149609448246757391719115728850408188457271701892586572051325531931212597858705685506029119909218743070099658002195621090567454153111490332893328025684489465330725885485025287031571445295886436901205433536001786208797760078766317728269649642755989372447441472151438483232732704613831753531013802481471507471828080329748704233837416688609686459555066882800625198618844321616737616225430493225143529751627702658104769958279197773253652156171968105422613342788397924911060519509193625674880798519973362607450926556618540308438334281291078535480286873774615088319457918137906843129497326696257451747557573156173190898844537470420245100090881168776431927675210459156255737472361226265261123874988623458264044513600234650566711137879029842934988099844518118951992221523943603913883636943588786188553283231242732199455923301509281508593802617513499577936181966051565282201458893166074136933529785508878875915723600271835918852855065402857586208675039131111637275546485317669536092476161089942391804329894417076751021655425897232255637239319753236323764073483388037323168967385878499596044234763568006134635810745694694185290480102239316580192201620651699883496584779868390741847537918770505287494623064188805378518753211346243742411398867618466353127258476178163416653205032982534706283366813686451758906556023979955389281000805860473626934749889516470128974077655280494713165864072797983672551468368199234900864792744365122906203344536887072937309861012341736237680727132629112083549736056688960340393685802548501711484956402107723708784743369755618168338870409119321047728387684044905235335133876987782043372756342435273143337223548652333084324181197966063123922073595513752462040020899882917641156155404141680922352101013344683899783484531345359670721458675850536755062508472896871737348476893945244221910567037402322346257766132864726050152344519771620637481952041188157983740611377926443581915999983107798611336611474689336527977657361784084225617287359714984038021916482759802558236253474276652004155472243378791358304049982693976375309187585448669163040555783450697751723030837080180864190463178162154688245758613086990890571521140401679703532782638159624838265506036287133015778474232315581043688552337334076091664514490058820966411272393379244757812293526980856616279303701827012603677222594933418229709371190312352971154532547002935773142243334629067375072772488884211665654561033244522301075122996404267544183118790174552182127948015476706507573885061069733210236579848702575444202504931413125222895837407819944689388500489681692187808863531979532401029980620320195001228633964063004179858274754071578935776187554237457657346470267115708750608453571563249514711565699986356343536990004846035563605432506600654353471860894629825741723556757816059686032222866415142790115183318097806196578532356244062758401599883441145670139729368042136075088221413072174690722610295403122936377754089933588554386502602269980379811527975564825144402662828312069232187488534586229271800473882794887173528536960561762892254781135691103780383498366794667424480752006119977856043016162452333923610264260197646025287137806290498618524056169214535842723902437958745666654551302210618142750855021965278541721497955353596634567484866008871284327012610517517954294465547185705022702644897002065769401047952345290320549472867426209285576523520535921074825766240126591903647196523751959685394662831977866661587321587095731807853127063634062074831463429808029659027944241224235404462127751957027787488010268415492914820300054367429565085768771615700503364889614669222628111505660628188189830002614094715241778310851080400973653983087742836175113670025604157725021989614278839134040567603806488057326848906404448734922859185859535513253567519627682011302727124037831571310403160410565084214993251524917586561880333886432005832987858179299892779016374293571052202888122248473985612238448067135851660238934019584205212731804057709792288194508461633798529006738959600841290388248297186135175203368925232566279344626925385122743498369173580857707165191812788867643203833122417025110181503664602829531493314570596221056692166147717912514131204181236411575920442903065418179370567809389888254654953394642679889429876482557882643557498838649575586248956362447662009268803439485026447753339911231399925486745618976007312918291123863193956624426483183619286034937381007313364472568159805646642211095056037762392118312580289803498941752655006078537758123768843076624549356668186902010663030687283492392772787426106246621083292645849550433303718066108731389251396183584039395787599582054843332742415825759544589351427457625323907731968252628584726667962142572228733910874352904235493913354473452216849394747225905334481309599710863645723222582635287261280095693426875683594629100122852106039523139505404368797455896820409467161559992489802296995637643434687362758171439966155902975032216021848409197091411378797551875425200469714064715140335348566268179517485413605866814440369232627212017352943131157122873779146599586290335576960407815316316890151825265566493355642586086967363994232637935649938446439543593162559716452482914661025028184741195367272629559465983673703670578346139320211935152410452002527540805828330136426970130741686363930435507585673711745194989488117635225518049148715586818105555868651618569804980303852739735651005636263865378185314847905069020280838615674157952838556771186806973658861170437696639165031855215833758353987933879808844717566479342067260638233243056260035677301209810652117897220485771526330038930106899761490084978993825500215583981712972006761656436934860992590951092401011324646857278169969087855416097408832451807702540854931865805731494380171405784281233297852391284153581888167046575794192643942349179991153775495188572836651829990844923450324213615429435722981979879722788739306765636030261976029870538052372115954817547797976970163042771908515787386640115665474051372945433699599887210666868957392489364485018053326455403890071106976914648942391672569798573034285093841435474187056562228267924833573779461123325670098562872320746858376812439542906497140373327434257650430166993742660836310438976521023341350701645893267345040811041198555802604167473846448727783287724567664278174460895568645415741221414233074430023199266549008501861116724267887333112753323053742394397793593781834190963437058060823440832760654046640925797369979619654664496420350045872409715058622499967448645081431243871265256848970577608175787922790887809227524367757249165615352620703219290127593364274423384783464578231562822895226347005682376722699768486225197141969451156425297526639768273467154811856889699379658114584538168453458171764117412576480990376080626563585946737256088579476495474790401042670982347406400318978442333136444460284356517799985445758713986486118744862435211926509144388502536682927758356903873370972095298891668934823714829522861389665269702306524882366518445838931809222989165568608578387847776721429053322565722246368315190553631101552024959690993243999064925558428423952764913386498292308814750197688140405700412836603582750331211885263399635166627062601826613603165870839326539537376909550379712053759841804369617687060162415576550096963359053655873897825384044932517680671504267946406141113589359580986744212269385787757423207729777377454374064013380013903524530542791106077604519969133872350631209650630235080640073318691395881074153192080034915896236284992597317179284141740943090767792403878838421075737246441642995664322566376997142570376094982273631955391181205573824867081311863814148197983882136899368116787945218667080103084566801391818934504181374642313398628329848044572583044131822442357093100872993627157008857897029279761522053919740464766455310266486698847298589996606135705848040247980544328674304336632717819516945368694715562849393521584674329840282861857324346293005795037832250876906494511857659842301786860846202005313483884960156515089725870954682922848322600568961496400529108289628776613517797749753364508832411612060006376960303953388354197349252951187052050611669633911184489575929303337832813314152204482336457101200034948263834663508815621844516978289607041003178814149999477026171208459433300402529339414854671587697465941685666698040505316090319583835386457347516496899949038259998108443259027087001972172917956231203118389266632995348650785830502944238604434735684619117711422916219946002584970778330191166758354284157774246721867985118912985121573919333052864044251639894849782027247739955221057732208026797403664318640986447614372057524570769456893300762955126998925010032751239739104975217438920159229356711444002896560460325634342368805254896260977554218222618350787501796934207866971672956041837815591608200625613747331281195454519153795914415925862184425730343182116093453578094694119136930803929294109438092658277562316690082117564035176379372020884430190227040333019423321839042765923477800510774499453702710578283034600843007140026492757898984482740828646308504631442042588856045715391185597630287472678876237014886444926129294460594197536745679786857000626176875362523959757475866713471768253718252839143166269913535698410067300807038313567109537053260974995306733273689338542548587683274510496043515652977530254609819592579677387914385652342765555589733446192363687065924205932428611460111682510194569342417266469341566569897131466179734581115547228816796062354577585190074125010749386952691398953880648038858205771189504866386060905152777420766105066901430767686289658514918235959428193512153203734406182142815089340615751548974657072730940275340912273922787900133055226222544963668772855288018517538427977099957710385650438864135721657851662249944740934186981905965115521126328292611404494274882772732859548894378642726337706617720976508255089928958765050193199400781353350908520959946143693415378333476592289841068020117054871766984775739700945587041143505903443237941354836557805129355070191407867529892902963912119855702814058573076704415913100441898506549164682417131974970888516253268930753531993298595084041656084199725279115005170966160642748748373312425848308290126754504783906640203754547058843892149222034854093622155514197499931415434472640566672888903317380458773214993280578988879295769095068622374665930010420199299362005247634631499776713470899001310174925828969695010939999731152403798749780319729416035992949323103930352042054850774415515537931460567134213764495495314495770768116271718257885090985514509598420025112469583782718662334639020833501996682086839004202967220677007337691032616527505336162977666875788715262222389676915230666807952876298501014693174165112436706616677872933754648176642843933423085026937728499121203354792555003775198175183680836009817968755645425370065106235944237524023752727230010979015804130745197468118222116547468186210449487195923224780129313717307188212731391080743673741133875465429507143479445252984846755210318205666856999536955414589891970177004677289913501895186861603982372877490900060929925633727974227984731118416605570519307734476869099279690134111917481885599525783099922171658386665216445860869584859967825042187991894506662302152888927924374547924208489837905973980436554507834489364786757216935363271081141309223029015940636994759004036321803304828197333969085822236758796281386337339445881647792535705583416801702373335073895273514476166761703428944637091094201335981429970407771859779149178753428758322210967454973212111226143937186402599213351843932118160578321086501354865864722507436327125176921947636315042953134862356051925938167870088267420627551143146984535635990627062336661453388348879574724979053699947602112200837621045890877307296815933572155177022236425751043383578588137185958628234905696122606183922711778424483196214179753661970419905593522950009571802458113240811711634913651669837626041368823255144047430620668689027145892162107172188991341281393971858728573311383020873207440789297233802030965007506375837691324409272542431034697410696593215683213056873916330948287681249390230674149784974886482925996129490519845530813138358068037498030746757769943528572851078568127812905554188978889855329482696701191707797223747544537654676599368593370790751637541010120894656801505475089150378639258939502483657366620209858081610141781875088104551059052765949259626146732783005131089872442083556471707815680033981836112650656047675697201168179334182676771114229878505238217601553612459599746920880877480722855427602178800446053929491089199174936301290504600935340055199766703576153596198843124771650952806681212853831917903152205868279371979586592449423565512848716053674141408388303961939137879735996964467903768180840226062672347079415293748216109006340666793817210801106697962454978420092071405011850819439284750160687732094409437502975213145258943026725315147722081844890537896718887681704046856411053523898495602090973994601644536251086935014461739682517575688325478204807912570971153720211427874887177495450006247269942134227744546385011184945050957208986086479258072684065266908732781073148135856044742239114441863508720571127199160507243661394668953183843441385248714193658188663048839530747904568086327502176797145460167583773084789324576622371074422905948124888527897567800862658211313460897481365756979345946585940260438207799748687828812029692736835189496946376222492751709836696075407978650696540667987768539691407611607106683112883555954673538477394170699301138034387095943100181085421590475831637048601912042891232763387618284712836414788735183300539196479795355665157210641928891025209084663637983066427069638436013152495110630085359303817883662520263982472317522320401156295059870634226356380681838001212616465349517392641315959039108280818713881792894229645674819059058723898174904820464383671151419047034489250037004590275554146487686818283053731353347697715231028671033691270726018708911629225249640973346726823705228443824043218850661428215524232855437075549559660813499715600960074207028678427342580815081982273483626170068588756820207779732915169876209443539254840620535180369311224380308441624299703518875415498917832587413487802142543355464711867057606810287066323946332202053873532761686033315577099765715856674493416973853827654742015973067132177343424938994492142868611842406504317496067868840536238067266324573759981288477759983041614645017829903401767498196971299458369390786559490498800139665709415073560720714828627650808420876611525128425765956104924689054007447647720155573446913159379102656265950219072086548378256465296324591918379657299877826979896316775798247571146376833077487451325238686181236084844985170507283015167654718377257582561814837209229034652074283737083280972159420572872263424567993006282075727440546088467854989097419892181971620314729699488563486838788673877019064360800665409945973804094333669959832526654553631177895047459186454104736757079099626332775783461974821018751372950851364491180715674353619583068611167263369445129741111319866301066470740176226580465358858993614615927299074053719697877356110246415069685054386429380410723380295998143840822340519314408658317015343938626590657734031897148379447839772796846985121615081706160888031177391588823336131315410024547886368971671138310032442882892664828132600605639607785551508112492849425210889426088484640686098966087405765592093583586065303875178249013831843019033343485068654829818763009790337700624735093619429535562660386442933467297814957211883770706296386212120392100689485140092785128452409596992794984703200964711034534391242747637310755084995993127786036524488551717626432020536183059497005466889334757725990333392345543698609470831131921650746813420326548348226610638327008701758764485386800441808064933666538284341277920381395292181777717582279369930981680916988807392835682709544303343445047387686265621290482747373645544484538352694935648703588046158230371312282287774060775494685430500716641991493929988087561738467669336883335762642081772536905690795195894054908194932310381139707553183484647832969170442656201076351070569873293064131152745986536004647788955598425420940903889546814919133822690712779945172527531996969658914953132480008597634881818243906233215607115633782972643218645749988749098508877471972436446405325975245856808503252180084486468616466834249922033623254603497347718765269206971088642454105032160904972749556399102764261866804102781244902665791568874364096974609297480349539234435550174473821430469826831262702946875543821905952206971310555298121336144179323459320406903627815138787012027354695323556483058637684490390993515488855031460647584740139519880873680942184020686183282639606559886901240838840348831176666668951433002288890078401589477900017144701662143965930456177051817135766767593264161909542759723985481078833669187481169260533486676356444841414654583514437089843730853694900903919000256100167606270018136105696554521997285950177224471873300668993325596678830170314297206457340551837127544717483316459157753704442621309034933995085160913832811887493612374236122574274510705852096587845615989828939685052988921399923015737192244054861073003488743446280149967124955449520270265832318094022580988793150341063946205929178602626421883427391106115502467843122609099011680500709058665096765166649893681516993779105711686992800171048159425064576421862799551473680064787383851148378074981399144055784590536182192184889628288546650507665078383441168774973125181325393889547357822510744043324580346980124325524955027136374346040890204873831935025902118820740477427015357344014741581333858334340923433361988244043982311804924546371083521075299262205238109866941081080936343583675601543686716680276677259133111843954188821016031899754911632921969300394981253731310320241061800733108228704575862152925813464318835575711697616295465795908370238785617247323979196327606707973954103183813177559738006718515670974934936273506356662387446263836576866266374290937154682845608530510722710708221993679613044340717483219634537525342940335911798967371340057607692960276338312086451680427656445101984292485861303717375412165573774637005068094464185871421929052712901772813781233028310367964260876796912665702181033740403662249017064135537153124063535569545184356529836245826186140938035323693164909951761771655447088978972888222109682461998070659302273390753943213629025788487074103583377241429977529373816235718727351418659212581518460544179401452377579410259814415410925770019630273279095243430095343623867815978279856896229373961335401355363204975300900291593398245096371534633771181635882071855589826152792878888007321889986325663501463304324468259956695543599936255186895639171159462878014268937132640607153174842423521205946906586446785228829817049667798428749773762947408357106785658758165923017948828801745026221225591345014583043838950525222414799374928738763534151131500180225313204941671529442535343721412266187413511886569921245708551628776600337486460550809601675440132529445012613275877277550866442953373099937556020841423848606517478564436850660607183321166208060600030045979931246433146653421164316446468936246104282571129831135265336754579203405782699832685283184864774944885604895828118732719156495070994864414425781633924846972673244819709479586987567868821946651914819563113236509035797500607217496987488008276717598823330800684764057077434674843493827276910189022219539809557339616738188329869169940487783353021134384837230857846740214265260478114046594765504561395128766707265981215478749336821215393040124017597893160057066183805444447303837764218481474936780469742663661409417785698980694543566531520556244505487855740870337391112947262700731648309558865741824636018236572112871388740738603294544953642228895413761110162943727430317012204504075592594433733277059957580966216964383474012300716221695161213319598030342911685663183062708067903572092179749831105942125922189332049614315635820215046856847923010232474922301206021259629883647841674418043447613779485182867059687205122403871737241183846235483558126102122505077690160032972698769740831039081428473297406758325229673990557351228270471327854607661065480452037888503148657554704600250257422242561767534889521266638334858922154174510680529304453540383562968110330373613578699272781832174567480886115929198461666502458942117942101404739058080212285210630312591133311840082262109259193304807138631280431311971318692860944056111143194483990522482822809200848412530689958117704839924630936954850462469876289001792777203512343417521095416001995446672920482692795425652759075332933008762700006243257933114468467022615544263127463914349358087484484038996625204006366711273851067669362586775954996875888496632416425870901282926684671337027078081956725168647548528011960670318036071462493960142038625791436369443168768086455576294132781026919188569112933447221069093876972709330779600303882126519768436444372617904952420609547093395858666256743892498040829753134562115893128975040944397932143956364830357463377209440490685996456825473357843063302902282594356947936034404437249229006331848075705346450765763516493599239793066760276909548166741539622361321416525894179892356115943961321845057943355051004481601626638977436290251524899666690972709332958758777909390313823562538100121595089382321359446357536266905752956857867216826052780887219046482013481014813739652023770318186205935366302908834641483304079438104099344549925311862722544455507693365279780749512806947894419542598397258568620015039299387692341563317253425223410088634937330564806779669455021541388744622318514284942789202195988242299591847120107871248872425113480659877453540381115393540433019232145193079200269217368217498543314321052514251982780336229952781118703104871703140533496604502875062156577126148096339221716270324173188836510440092793498045411696139850899876439618005477401508657931629517613637589875584929922495195574281245574319299442506122775734854439969342681731484087396294042553833104717455182987420353673608589102722284921153140418406666919483540149711805454342833434542060579753380410676407742079655054572365596524212536773450428117964966841486998158642900172612457366522195278644637605369383721030256007806925509089618200397453039057553327046538958890298544281164685271806677825104612000450557685942042941510557013613108952968652998796165535797085450074934993144901680072182267176318145356439282570265125506348533691384817499721599151302327865650490037770135909316208343902087936151035855838952194197420676059098598660160437353318535731315939479334079323695164200314435581998895031857631642620526516175048594282104079359033341752469562464642890741552911129996953354666317050653070748763267591449342111797144863988236869931384980457161842227176254489079915261088094010661147428624825731026493082099934165415524454734082574373745726688640998739902504197011141424005982054061448720715293266285792025649322278278160290280528712710899223762490592950611032442652754570417499568756851139940931630722860346209621351110639040336292365427167909799237028789359797605833467414011089964241954474174602085439167461197995164878615907168346879011572415839403321794146362442408991772655145948029949272404477355198807174958665439732242636711144906837257578489454104345510719809394429907945764097063019446902828044571894490402354026986533201843951889291067589582040763663458833893896323351274925040813664982713828759014492552562165572295774159583589118597760793689855409580349063845041763135141657759152229061264621505838701011808792209179875802829909316444652938266703067861003638384650352021768279017550367644471026495787559435986763823974595138063281010494428339960637986724903127188481383653341062514701399332771732264738647322824892343486767371063766022421044802421463697807689897114382769768290719578451301735242783416832147191572656320601913992813262566471833994875971204908495358675673336544242086635421196187575313558972882039729605660988019099133804076738934363796496651647806684772317109512149598227618590517702047275929463420682931039150772581702648194871304675971359127734432802248482690663213999127068689163298389653109320699155798202977793811577090179750964780917678943027278773463777532042649058633589736890277993665042777974825253008909593521078903585275989793111380297563213117903473795183358935287794895359028290394894036893933380317026516129709515043664277372936408314625068114470852272262769015946728583280397355779225034901631199413657851587730271541498830525940692212991260753371115476524197840064158568129651613717496378743629439966145321736346743461399096202771535413357576234813434960237080887471970654508288363190167725713343415481015591758618322718981775777964398192515245331744792308010588185135802294640556063184951697961842283127978330885628010321247213190811373246617245085784886693373618466571597239564786469610431122262824696925714729990747622255629206923584678841854479632999527877072166951643581889449692213230732479485948781318311812647530206564249799149436949675537734936388007487359143445944687882652842085904528030764532194112301804629806309818826278107668989531169381463297840662431269188155944818781974302065840326611269552971363380375883705042307650194621870405435502764789099517880233987386765592365109609703619058451068577464150632189248447723627591465025862451872057581145355209657560557444017709217767326116325665746445856730828147194264811737186900094791479929313395035212046586881852557749659354772429507121118185047252281138543028133898364406372744810933691197981818312194470828706319828633533031803852704300797096778630634683497957079604287687316218867975301674052150694782585343411229665055986845416397468734362805962774651513619994440364145092165242272513593506569969619186145674096353277448857858930829603909770475830472283041206300211904486791530283120762153299522411374998433838019025698732365542050145131280127600741607846781576259837034809854631085362962768146985106343702413514432646985358520305798504988301015086371961254118218390513588346707085598173452338982307119762196396224875149692884435874370248013911479185822402530567534053951885290285668991483724363566974033662566044151654533032199505036996624150655522178445773323087552783748390149057718467720345046966644291349040559409431819103456545846758056825199688584688907058926921749773135219326418195092316904911224617536948475268678330325650707622531781260481523314372416848832330540135968908298609082152981408229408563611921494390405164558038600438221607607758147149957671288035730768750968185736397898257333165991008510709304985192514391766840563071545992850015425671997779090665767355949880375993661002703849938484556872523057051468693488268402297573949094509462085803576584557528734424295693960450690662552777743924959035300996707950728306436028483287546657323210983354287412175233594116727121333936370487987192377172952145943515668683332633639397338714047379751373606478230603124558643927761525369162843279172768632285227980215842868674608603341301997477029341228656154891224674132901792330984931938419217951327828282413942702895194073322916568651481797925267524724788483838409960056444823002286195162565513219463858453970799745395578896608171151341179715264159075219047390420323080047875497741735610512957819316539895069961347475969897447641762679360289230611115270714304592290220425936213247965631170212561545848519230017033874119895719464995229385916584300091404781974791093776393203665561812793651216080666921858829108181900019109074322375929842462066793086860921508367243177499653265777995775747514112020973922648848345674873160815199267403077525572985334442710865911428588528761858505892273091198912739451436935876952603876167791257956056887284517716121978903084566925596441627926121997037288523524283897944086226727845718017199721889605470064071017903242895779198058751849461861243800317256115444791370969580237597577787631559381008401842517529582062172896502693768320581131472116334260809048398074264410791820508557726231490148289493086300952037535110566781318495181441741778161124412903569338504227303835808077127753509089173495369550048255410935116376459966711305943972993431167763802168084561783682168305275816240833587751192540246189068216275606082612833302676937396275359896053837716752514595870562614555436244590701016806181632963003113575758776521708672714037603709360982839688268624012898002197374028605845260941932666654610476101772059113641207176982367596931477457457954027297715730257602778747118991255870215495072867435073719353736981764722594356021812658788397542250797962857132207718729605340640545382119834653891528398761390474159908454915213002351297604731296498690055090775729721655915040260104601186430519453038690291470218695519866716609011646411445099957756898018740771159742447778748598082436144005483356944061540751777105071438520165733348205721868823845450617366973810114181708702548448012836271160471550130075437767376694946018756097710057375387622506266777110309589923393411345047199195097841656220014033173987166356882512779461489691281834603076369941924771203915692390814208798263612050740592088754818621608662846190278721810007815071423625029557133298179811092009363129834376370143893025652380589426780231204060294963007062806763939974773798785582394539277363984006359601044273698819635941217722162489890407457368586514218626787751249848524216399387281440483136138464773300840947037551672805022520353781055767951984357169279169445048463626305360907999434484022280807551450059632128813047751832484688612702422986481183074026663666214058066734424451066892691880334272721175106031630485485382492534842238608288171931820468738754923679325557785855578900205083522202183203339861117734138478502574790463816976369213107390549423121516466164439860770218300280434693055731679729195205588233247899364946824028114567011155792021787214833057045955100939775358134245993475376015664126607475886727300545509442434305632475211178656316577974528938983739174431750529239448229275950418220498547872464327460650007565554022608959465375206025027679038080059190877304246879315572413941684994153758663102836489745115539053289769087025747409198345802823952953645038940852770510487854030051349470552902321542726492545960932537667325541862940788145737313670352426458775004558219141392864811197212537144032385987674538638877690569777790125800892667230198705967301490332020170763615620484708857483318450694513157044656459378102170248676810586877240138857602465885927630988014070178294799281555795967633366272247457871044238005103669743775652557218443414524173845996927673881845617667826714926465240247788565996136289603398189465730165182683303254798286943890509125715864140320596822274059714785526351419970667979917752276841864475593314641044530102732809140178844024432480092265459933939075270320922178637339665131856026003247139925976743681885236468591884926372187193932284356680200407276248658608672546544537493163929942517045677664419123831899499670967559697845307013496043357393856104882748776521887454353431631095323906488157314635828997996096129440742973780367052600623621168446368879473367666749731774881049369850236612134307998501372397119135968320814533121633708798522017493646666611961377938672317888074310029950375767314032843157981255293756006498361124871350820458444965188312637869833517979905066033477062236125445270829494857012567635409934502184549279632155247806681144952849133630109040314859238293574599476391877643399298342067428250357646544709253147402711481839559735639177916606244607327338168309200045319343898804747190499237180793000192575197088185531215788047159147753103018668814147097340131295124700269488446432099852995246760627839873460830711092833415295948856794027058300615459842329647213238609291431284725692014908960258038553798211795243538040528938709643284509191950007573677141355813881315221490349281670052157214591866982456811915511723848789360492342205771143275966183165992301420753788545833702701673881906122833798307715741763918414879441412316627564171444969111308838103211006874886574245411903837294885106044322402017252841690599598677546643766057011346652901102843167915378624577100943169340024263417756168724837719816015731565797740587603851446475438969909318548488472972671996240372716333495210427511881398549063938849001423132644225816358976482440080802061405431558024373812691765355754681376147716031213222007370699489564712005516632161180193100225851434347938077732254313194507160521488475059807342531428620104113064796289824684097430414897799755195254680413095818262296701184763014835174175379640725672255564333816729493384576313791569346441038850926260165172363195272848454209686632764842660445870649734523795750147007869653841199208187830733557795868463509900174036417296858629495345955038812873190239719042803874469338649710115840972528849806132937668247291238727796690931855639986743420118400715607717815160134694183270323124585926576904828207204482558826475244210842533001509400801511332017528716969303299104703240301642257953099412432417549399673718598356418435991688899499910902089786237595137197101163974511886242426366296838448835748336872284007354490201060279943517452535677247007515430898524159009932144689060383083139539885168902413291647008254172939053663600960977203776107462459455714203820721058377785835122189573597520232051264406946839061897833179001763582898544832224658920844857593783250288335743567892813860852108893068702464846257765625437317972209426201694665702074723177053418247196967333340353734890559412011063151476465790495593745210123990878914157503030648817092939690909618780729244094635205155091143431320329038371381752216664558512018475361899112563321590961907285340252606373851615644405301143883408180500513123511710245606029341095543220570325632162088685333249053369210681041373768687594420957046615018854039299733671377364608410062382446900701751057933885420318053137174641256479657620693447452633091100145368773836300785568879920143568636995718113946109838275703203807578309101987029348361733173637065637764238838257438043120778424492398050617659644154860538385416316904152442672749747823849406801323721250163324612911176796743194895899078529577926012938638617375439760117825242813597361945558631081223773665353994646398567926638683490879400815650089934748953903303386691614478103376727287056051498200488471110996566060277939311004552154278284997562503718511221464292008120923770889469492589873137025305359881133603334970931333497229902112117382326301052800520350873017866469551701429109218968877409805899345359838221406003373912974268238195202021188508275394978241662889703248397710359253637393726839448480307538455203949939298125832126803809590903465761798107517125071672572203643812468085731952948567787476770117199729644220736515512761463676315709593078244039495305190525053404402364771855473345638978591442544668723303891455235514278858117551996114512879738885493062905838899229886214192178886046164738355557557505310665735926786909721807171133184607718369022126660421329300934044375441414324869179617054331666303793279880281187411247716559431112913341056738442479889492123531372667934336015500219051627510825637844798196332440110684279150919467599137870514054490715858317727714868562331138849509190432323365633867292907910777938225402545605386311210191803033164253347555543228404797729604649925534346662197916995045402160946859398726090024410927348578693959887836166696938182246656683988239425249497673880640379180275177164579129837687072925623906251568930425371553581762544882263157420540338033730964274261654499709436323811585376567214779591730109170501364344305594987068118131846969535799452743729757613254408520963165287764165421318954998529937005414459945836491969733455470001556787600306160454833327599804098942765390832328212400848500398765780249733902629056784461302678172673277333574771246583762818178320568145642512756084308401178948983436582513071335144010943411404974470708036215419956978619413949782483969112039190348219867800799506055064504945717759759125174154916852266521105178808286872522782996999421128930086088873797151863361592591157197925345544148292313421620946042976434450360936202552214251226709186194858326044794016236813206715238720070918248790329752951041961258240529921200352403956090869693194374359765562503887662228703963288495240554020389837445847748851467423746567637702862493779219014962347084652815702556681434887753112325397110389400545093577326947255573603892693613451005529889933197914646150300977588783126865166607642132781650097184942209611503341419678698541857579548165564651258697699081352243633577779316574392257506926144479002559232011504748661175788574662014919680147878997086533593968255730816733920856949041713708616939674199325393818685063352701444316464536085665646201054872942316267822043591701888033549532935825069868033197901978503223312333392445651320380492726417907468936213370376321871439461330860962775701258934960325502963740058162656731584530731371602351543818750995239534255018740017235711635207584442245912904534502414158946615739884638006549794607694983789106746806188281299865641184141318029700398829298095001745369247129577152481424415032921732053306596155704378247814111315828369953273303257208553939306296730845308994530106273073415616164815250365660649423020114526136327399905001081600415182816209346645675642243600183605985952936469596631099913690926615496690564250206501480396288998831111890160294544696769210227143201532959862989721515503289311966543202466304687295778900414847360645475481204510586372736078423582829972179415567269628876602655633868990432926721633730718313351133477711889825884248070378938936241120933206438474252279394869305832502365899842393971085549819305195825304100920324458770012871682656749247074438419070138284447923024518304870017956122688391840426524543260704920681050167551809485715314903323902510800137568979432626420687697671067111884622764295525653993913584539292823861383062273300205659163770031021802587566218511753297884679151419532120741976242700868740752804631985896241255522907249787177642359489537481214306456964423386271249709008143043696024778033270493681183415421367599750196103321071325236441371379154593084295395088098880752654106367372031714500188621375329617360768464146524273413918754827726149608245357121040326329216840349899792535162547466127249542849288918354122722396700928765278201325997623513382240885825084653804040703107399653809961901365753788313876063276524925948893334879472562876701378071222183662358259627085300806187914768597839495692598526494038121091734387797616325172327178959223083137219301381465761716615362088434182113268732977077369548966243385276457003972258091898172672585088598201179975980381632256055055578344563433251022981170378557450032651143201126850967366078757674455050206330557198356192690234243199037614950811703652331542013566165724138822205444338422222372086276980438657974097976740939119396025905211154282409346018644782520267935977651632636649544611957344409963012338150188948799928763728749000682737916067306990813133714802543363734054748796257927703358273682990678011236994500032987525073576273868364325674464112214459684117173205921762655868185846524157609434370648692860908270842071872508467254192843008015454419664030751558166557350450358231272293943809232148701579226518460037416368639615743878017168170437974769903790265131797752530882806269978698510522288156566588230737338284594176221584214877752264526056479555666401416355465673993887238012622088710263287177485734283024228185221475818245287074507225165298525794211527035722021019951706247714261294205631821535642623470128784573283627032836397750600653208646002349716867587103375442837589383177903417885118517218503637080805081647524060898088358006677000633725223114828572818044027417064111394147307972076683417760312965328959722738654994331890115837888645079096744180194860550255264191665074674087298107759136726154822403326410134063072820822534155095450444204056033784932144030699803694249319542300830686600576516763989108548531109863087393527919439266567157199596942323583150693240185764733140925509491121680496555863434139662720473254112507287455973307906532622205285925133492967862203373443494147723026437233702858267000903361130940083356703829956998569381849261479507259802314841221910138156601830792815875867812246697078788472314947810977538963699817110516048496188940918781883755682392299344036907711910208884516569998074943946516475642681966582967601727937318132251568087225074305658438663745657087796911246364060971014405714781940903861984882437619947834472657351038418130809805332106378878299286804672560334099429075585405772423825559691642688272105797023780717454043878661752275781466067452154943575796171725628364464205826321238772873498404276578539234990871544499409189224751012980976382802085393752643406124303768827276922335599576026604002375806365405078109952639564676590955604282360662905777493765664231534511674370706603429752904849499824206759324519534735589761863992076584360616131852516498257687756769837765413489998435291436144975247751012183470490229396063932913536426854967632196690106352203658552156997784441515014065893234021671984935391406744309455017388541307692510014827869520699088556929457176012061919633841920722480158094803348475822595084431081906143482183647660916880472995213097135816687059746568075209880429222635816701410439141067857448417407036543375382353534511516727291158977872778668099675348361269302374249330513927851735215804069511836185003056029569725764882467113081055033778413762280918470270828278917232248529957561624993742729787024286065025916737326074050674020396762927793817784478369446673513031495297698506968281876177138696586419870519705208529050203195188039143860126514595054225593166996682184800770260977302611118329659686443765875005488219801686788284567323342758068225392127483429225417720892971445572442099157297077275668331752986443512054543769497417041016631376722018274235034575669362957551736032374186712382751021356893361934686053289362883811212578041293021457068592591472313093975403280294542012544489285754021091298938646240737560317130809880343431516054114624117940977691151033403527857286614363774294957590043705704392467412938909388420154919765107923610296342730710454616447838946411767265963228930222068266862733302774733095818025503333124859483070633973725615804110782111030386762998770623221588499053356631802352091421770619751914636876754879156995648903670819503486215770363145478010467262658104556847235334114513280596228984578096500955969911684039972030742924471894087957830393570818618160572994859421914793106788043908755491175784605821493400668453074245209020490097051973055062708830456645941966671995211522451634780836619702527273383737642515586102587154170909624683874799584728511324957728060861709092128215999000721775706412177977750997365749811462959531332398934141325586485243740045676183909063874546912251339654505748322242397843278119758250736655066830993356601796207310087765672912508719695278769875543195463886706505873209053589084156433932848897383524877924249180466002947434411693933589136849833533912029352598007481140588579281518481385429211376311905400619653412199060011040423055318910783259527200723047396252365058782805477638565690006376755282295368606872885512461104869683984285007882555487373568649700808961278461225862837978266509917160071700904564655775388166543649188890750067750619211393322801060950382132219698605881644725376886804105656059454013797229703319940084023395865474484126494588647730029326828612317850831247479968198070279427566986123874845535837530605487933572470129210445188946488502357593660972345970798367695261924912712989616564737113892655449831015851553487134215010778517789164372980670037508570705968200238146999720974412328670801530932303864973119399619651181048620503979409275894516645229938593534052455689485263512846185403981225891217895239071769008065753838682955309975418086957591668338298014772003135305513310498998005506554452134351046946090074088173890888602877827395527324807289703826815664910044571261166556413969310563692233155562631525004708157902365260013836930315319503261171543530487419431781201141526432495673476271849562425745207104123144101185070020357223536894736719890907641231525247052112421766162967815903419605515440497599155484173070869829090458248498765739302352931681402917524593542138012270097619376736028799176336411023190305798396039287655337402244713753961072319357680990627871882348142640535393635250092246467273769422650542678934303848163223243895119187812950694823229919210903667670967987624178874269981058479081702672661861765730224477955416753142947346047446585162723629936744202729773934033206920689847862057525971705340762326991640500459826284510365593982599991875643200590336798450237783972333926231222630248669683230415127433980293596238916819397625320604150581311248490267033045712540377063977660947393045801735310343947975196380072659467438364583907463926874911771738525845091471252420098070979388621976455184160454663592260416444623237584802409727052012249793840077906650105994984211442748852231909875630063848337932667181229005939085327134608189953425230744775990617174444807237496930580852367933365614595815316829610859530444806923224682023949523007242531219011583248332940523608106312281286777814574164038012561984443643849865143826183597829715302415810380591807551610518069814370935378000916146055888324420832537211008145427088330909685764422364294021351358206807091056424534550197341232535610705991873157245339883964543664127499714780719612994131319155501481452644185747885509408895180557591899050305814852058847611762126510919190686948901389356012542376222502455310533457850176586759984570976063789838159228716935361060572043171531824475002731008299477400776362338889831847193001121813762523667067990059476966288744132892342235304786872117057671800444317388122889771947189001938177577875960027020005341457515184292832921178844760210391890686683421780660023955239032157542868234554316141651066440574676700357576747516534582845517240776203108228072650046067118310657123862726979153465085528023867037861268404357042603144091388786233257110563655280002141250089143754910145678307766769113742877199666756364403966045687518004093532983376934426957580971872667990199788128025758062386533530269546605843096959977166225018166767151153799774317950238802811436439772686064836463233599486307193135257613974633578365674033616139968849173977077807401334391671239562342174489116363888953855894712596483226613007579047597464517762022494519247703801476442343233529903300318665238582881917713619569349780787090122087741232827092590444803755876184699570848812032598644658246759853879888924434947899810329926201208458306216098796996317722352675471802967598748618281595955222659421659224033475964262715364154324756697712957991448381804942502686420053668584041895231944472756035403873450101917803039218572351324015175074283533608862083608508429928669554792886957239395620148116312531234415981037585374580659771412973158033822034561286558662820090436341376582129796869433069233091532843649626486859713366503779574486406962787190298128578254410012889291697217604418175382448278683817581910898287460468560746226518336690172034427805895489297687771311589850834227367162493279041403947585382262194515666403665477924945505066019149041334407458286514521879229280148182632276156889829453855219168814855351693775677709248560241572223684692659344256322360013786912664800518260613616404438030986945008113843608195940717788426375201191471654965881930247139866837791151864058383932857560116887823697819119363549602918084340040736235010005476935963131377311036764596931240951743410501106057005447445061038880951595185495489653983091498990935041377623843310448643851709513099573121053896825169394797757392473815018436712975845988510108847568473308178187677975587134692879365325562200296508552493547571789092975661217211799894425751526223951067508186097869396843697468655506075330154354928208362157871938164152313985249340493273492429310264389856719405821164285662331360088112960271763266540075155090870806124875109549859234902167005762725318208537169872046294059632686844640008359312731435251161001784998181470243090826920451736821840436917000784679774251709713227147839497284833594056509708793351940132391291913785946604587425116809924620424915885975790744133863364329059025717889558792342981208381814224802734663606098089157219666917671332880192132266584571926245944109941334665351265361173848110302531971023888021872475378987713975701131794597980202172801144586888538896998976698852597586219733439718694798390258337332853170276038745366871554571357232000863900063157414661126907343517125869300863555496673294930287307838424737634686145246077773694271829011459807225479605101484184301434046208987572486352111434527198805897485678378326331359330399986588277897978888507496468687645291034530278116773138483455885983960603560457430280445624962358739736191782338612863261761225950116425689523377549415756702303100853533813005188280617240546711394908748381837754729104098292100526713602303851710645007713435421703226447885838539724568756410483908425764872186244482875145626709264202737426733549948809657917150153605681938257940645986852882471192066980284029731465855576571396340855331566099244293267095068865974989644468948119118936578035339924028933648334534401840113825315361114767328246556366649790054929007159817865291783349427260837099667838454694658944708015086058921281606479879793901708576817474851487206555641190924791156416009792868733521688227064220981149052300301112010203644957279760655655344572046160757571697180070881108187185489849361404290618624389395711898865141321323466616615583922932754903769243644591787691095106659829345178630876971493936325093652529687743080365589249373832582429856048802193484083942682673249652085131449405774123508124315936087305430481549482780969853368972652860309315062240660658648762572659866076687459675161149600520447861576772184151000285393652663195460679850769094710045432187822807155237184384114265380395098540363402184427865824966984125208106295095415451386516498051301025435677802797036814973189857984856217604791593429816342140481222007855174263252747814531257938816801215754173763211833353418687297207469969576576130171020634073602474400708270913551773682760024945993808230800303328441089308899981002542278856570024307177460426888373103683391752545342710683008321064439331455789012658244700087059657312203923638993473039985925145119331566230025186121694568628630460542999217461393789500596076128643394249554632911239782752914489131943769440591826714969174960387162135210817382311935409047568020324907502360907777323477562259501872248127880776534841715761975445736573745361729857360403912516604294485493871678972624046103531408372952359575716552693152577878332090740025738854290278162932283726105387818784835804496852600925116869386162454416867077772023874347019706167864871777641621465984045602514277809757403170976636684051880948738690807548452408753346488722735363804879392143718298857309827836359932889943769675784272426904232699176800811641999634931219246785646151332160556824978185701762065645663190794360336797594671391344495553525347627588956938471599493419737017489073517630491432695945595051870071027486462615016580595379244927710161963333359220056563341932876746588835988598400578369480932495048032624913214255201817707557958308655372148554556093848737307077807712273011407909588761007255591432826540917591134044928171518431214979765475054346552563358182198524358232536709697865373451818547545967724321412725728147981170373329548894484589759305933878180058015019334006475257412452734133917282277439184298574727646664078873892704331295475707786795760690830938093840371187416280899201395426306355990977401805064326788628402330670351557927118166155651100409453043226156588778148736211170523169690973818332819774350520391286450022410931225979694559576641763496630903451348943116959899580022058966146603478357465247320208824258002727055591726648233149712096553374557184688949749166764178158992810546332691332890841949177942879909421106303424632879419391633134458661713900584079145245044445354910787885642686193158015736404622568393290625923535182556579350048401889912492092850797070000050500628314145947417247049792754173077850882889640283336277644392300446478265367888315825206294368658259860798968841564439219535667742470127478168114531337427361454383975970241681760186194169340905390514618343531577309042890953805536313675604161765233415993685005073169684367230568877797096699392653446255931129031639223576824574203438479952425114680922980442992634174483971077042076565569547626809416052073500386455476552443210781234687490117449181156715849277898799401387390786949348139430193494241782768857738605963237514144854875647534459289954299139094129830973049652768736378010956008405754607409156294164176529565893046445864996158633320453616871812347888507730304599776720124673612587355631836294089976194334316407388692939767475932226084462001073289739062985698970304186708646123978420818378323696796119662497167795822505140694245239565960403694891737862509959419517713338014302258180184866826921387371528565193094716591897607987379537808529253945673154026854928981490651208380948954885183963116830602081497744783709551930039399484656186764560415224706710109476975641060030891155331807819562400205482028391304238827677643560166379092616949197463843340294907965281401575477163026353046112684426406490675706772542237811863594115336836654891111040807761254852447962320757892394091789929383674596764407327112887515525742405656342227325254188130755683061931590329910498364624609240088072791425142639523393552622559580733790373528573399961090613730052377189465941617791872442660690644584564983324236904801114438794157895611643074364759695903376572129942162665181788441840178401929326849759674235322125046786829232036321953899978067300807495718173131191224059777634062648573424573322719337662708278179708885714399904810389692727180231205057767260920164884122416015209534543408147014313630908372368102455937659294524216777531767614020927217363857528785094471002041753750925171988994671302523490146541006049441706589595314666811670008060812932391484526475194400103298381458977513021819303957795503847594944174413427315889882712084180589802715818329970832366307677914079542538351547628511509139530961692888383741378910016002832134848883842411689819039685054622529874255565338694791861603671734615036963747873929070290779333153959293908235563256020510295604007229463461870318903450027183794393422164360606656252511923146164956578820848011361061573240647185114697076933830384846552415673012518463705593497887858969662848144265957978173535696647759545925892838283688686243142698311330864747974664076828966258247914462815458142212359232472417481117600263357767411301245370415489456221763265482625730344454724329096286383886579306818636665610874085673564802854672313699825741069530286453972122130924222597154188342939068382086052450263036353897828883278138867213726785131927819275015029238222663108327460387246271251228625152290543457203075841526705986000440957607989435035567532042197179910028991620687049949947931723546566377847032232593448294432992399149871868195429739580625502666714106315504124665174196575100517330828022036644163070911265732480042429135455366731707203918286436999835374982064970937365521215190178817335344818595149743268981128324444984613455827004173532473885327954969308052259251894853020471956490675125447060751465668331289611284617127064511638992612906151736809695804109980296288496461483647550408522178703981131009580165022197140829774191380358761243273902020783188679908449048733622053684075230701843440334022898993917653646387653066244783841902855879973081157526111920800682655508752364527970318470837816354832820895320146156401430627706382291940257175652294821758150523740271312279915412622726504323090775859231632107120908217323165987573039236880918150290717907523531976926207734696700088389500679640436985128148893250459805400497586269088829283090445635852825551186236924154465972941390925326487273810687076173780413736127041206498353032811485656261926790272124601820872215068341167349292486261422789503058239557727066360538478434838418402389850321160367771765600474405840962147004620413376761305718572227841451199217189317553417252800960230479521522584741525209063858220334977166931388493138567252915067041794985159077541874528656948072525044827785436681564796954948095912017524723790612163273849038975103084647793728801717512545610303570873121263258046092033978602703212557497130796969145802620562053467016362186919874351069603810187413694921571284586862109359040461499871294401464378270449686018207740761387561630972831377788201762644759851372089922113396147152196243206023273905423223843795204698222804846471563804573216653401925437637771214369612247488736204807092004316171762219155835731953515863762340216919427540023734044082517117031856736446672513788566055806627338010587047520659693984700498766453243135161708832844325378822565056723541579088031667553329114113127035745059579372367036303781246774667892051650368732513296628247938761828249272924619062482051185131584072490428166647922688105589133006290925334662180582815625971104615105211189334766805016191771558335956168772136881769627584667629421820510484776337698247210495376846071632999806403785714856766950291063070108368050492611186728805049827098258290363382013998777610510804066007555137559219872652325844677679326033888053441933084066532921691644298669285104291719366459840852538681263533303852640455770053655537387441584123226196742305690299232926378399293306433314417722137707898148225687425790143894491062502105404925062876191963716745283767720397529331100057966984536378389737780342620004666906961415993966496661073556874434146148406381791715155296679136878244386381904600136984522047249316209371492217698440752117854318118866022263304268278783258620434203407914973072314636663185636788698957197598029447434874369658596134279448788787385787193694637102715263830205892568973801121449242176550937724719173774433888715395075552217240361130967917182017126397372486765709713343387417425757028573694216075613016352474842903850610585624429497765977756342634768954563447734602031360184449280778888417295866647208536558478489026316858401340351983042746797588110654885733298217628965327668718720587840482969620034009807035934164361886858405335862017380691606551610030443277153042923245095264805084867082745114132794977886152953150051400116731040289968363397195947685020717786520330010833436802794501763925969147674670155052769896173304013287861346108698359598177755265170604200239852618854090080332424045040621951573445031180422938871680315080400099669478519024794503578553412447986838789317274386748667726225226539486138952257137966457657513210569676848905703853267810968021802157910731142460127531132463486354393877251181886316009986634331202693420761692298196589161286058027317722293451197761812734806071317792373020035208185658870774456932317898438117051855109005720355919474195844703375812978514176563733881474456457220058542481044324791510592360553874764279106564698623731075097937428667201052785806103955991413311573907813991346676962021956762150919209511060992114000695538946679638198417906063714096801860401962915743801720157402980785913406004085029234469068395663215117248256436612095180874370392538900711190728185935504589245568250345096035799812255190626499447591272030690797836448681712425797088980990173028540593235655360594346912781554195388967386040834962008209859160532382902534787378950926973648530904653711492943148664207511595552408310308383661014059381357883440289149497666742807505031397552515579304442753588192433047147498964344936798759636199369927157317087614573859365117590566779854034790844919386399006947181954321256658304328277640825862343607755649014557858914031722723321681543163041827762566345039888465253426601317222837922939127276535798873051518546785086788452994414098174261411073274476842507590712376371590841404751328625627096783537905313252888620829305826683378749837129196382638694552822943008323397954363561971924668725482153419540986756849382380745511111886138644692537350218618225160681034560305988894564643471600165580754971275023861630888818379275915025601207884199156865452753423242690966552437047805721549171922887544523735034308892415965922755069350479956819585536929762509007075714866430162912219322037874141949893873931763819107214402529739067892176067434092317704952370423210135719412993681558343887210070025065895284912501378749432925230540404342546728206437670182077413566588267635010757531740034422269509489314791656638679816364982272697786381302326151880573187621040374939229585425141068207420802542468659408542506073370781000561379958972847416639391852770935829205569800511546472407152942309557017863606110610020815798058324038050850753242070572484208549789588829012200357875642235414360852635333885572191406512533182779554924496071783659457105693628733254943923270072810392565360830642099422144098698953997203218609103271331749960561524323982911973072943539118040468143813291635660509275061284561876601477309139718535836370704397850591562631316321815787894684037245270910755635266091372222042298219821380876244146792898475281630798673466375536929196810703125831140974891907628542108867465973973502123371389189101062434367506902899223132585743968964796665177395409078725869614335632579493465142919903685106710503955567922225808300242406913121094683225212212743225804589258609505846048423838772585934307308888096040694578106129271544347781466784793265427299302735064555758177314298569112398283955427308789567435217807168732662739947853349528969211860402341964071962983597188869993001792568843174168718796758574418997814844622599945964256371946315134261069251553818002080409852215579616343975206048992188874379205533283625019016577328059047160230751245276592328654560377652669036920739538715193641579808629768344594204137185190375294975673937297339910490198599689313548934969587831228686033059929044719235260366914442427649053492349612852969012926656827552773801458475882290922627926178176585327604456492337509628419025931856599357158676214036294392831056621996906764262058959640003872023508298419764099603312603959515850653816377185353770040072266113749582146342916087901022849301836428326802090162201535536117249440539238720282872102374765411754680063315047100619953273088751543465508580610633535871484501371896305736536184585129652101680047554915153326407059632142510478156395849157070721494827655523321692364782308517977625040051446787701350201503922608613080982514051585988276765302709517886566331264354360894760005289276698663850176478967921311853272367945879526418120406796250640123002495833378672473302835224904290639344478746173568480581640058213133788539405454635621226624518853530981212776966511288456881949341498086381996661055133657123750476248033083696607269392449046747418315525383072777591915919412378686880256828256345574652247947962147502293017122462685123078105399610557413534329336917920714299876836101475551026091424062558670449212851414182495726367857457578436649890038193868043829420855375522343863394931397806335356597280688356779241572805486769167274655555408710997785733220016015918827954350170374069091210638535065687364613834727714298363922199423789605648206346333693420090044275792807160465778934384768533347583819467403391003445124171413151140259462069249887743634784480518702134431299569352593584827173755314730418742213598598027375301514816975633806413338100545140603585252844663648669622141233918179090561225561951439244350367239443142978341463744370772915981419994341578427164540910648008487367004603994094016681349996750513703277322208337382902932649531719981534794446426216916975221892776520309397303906310164665590249755963756679289280173824115000187654031341056702128053933589614704339632653097617372271510151596998274599054409693142675695353847106237690326483860530919416353515246756891886525447332130823731944583250244175799275748480383955174779624754062505495745800591531436937517870282888311240519746051399115647831845947547279900180652326773206194044476801323155248555354143159048029363359747711367823496582662529760208310904435384190045157004909226509163395614453346066669261821451050266275465308948963934193922797790407314261918131275388407241187286190859343644445311482079987140769780274941675897166496335644155791141130934306815370521747345771843182602741806642203083405955331753415639558941235955893961103091889629403264776416392578922153265729493709302739996300535455573741006976910522447694351870479338725508200364075815380429650633280858021680074196602698206576139076345699021033612356051080714672020895770121801189477224381688476308059470536047927070112108470971799459628607692649310097104504340185277404444322475813791500025925056180504450987433373211779137829635672323186266259345344270006218709536546275283144825293788769470803564273569433576872799429156375542829092217288676600011456189559496306086036455108087517160876727394992183899191802462672403790160973285483495860256294459356989897002735054813387787462250182419365282035324235141946574441442261646277953264915016299007208385912275038790991895397498054162308379084044210073334930953073064937096397479657357796516263318983045170322784972192194008875278552670496854513058165761240101401953036138717797215441493118571141545782612648859855134717118405681191880650130490274061611809566517916002315471679946795388815950757127508504876225418579991066934951498044970284520264415819353272308180265253594656831397885693926141196876314185940441630291591413459463925145499910700173466980300538386331206572859281874965202136302613593981947860565736062445123364831832973023599231229795758102160658889952051342633992796677279091986880724320533472676535236808384437172508781111275710940467018430063346175392893541903791991463182254542482801308022758543334677339765280748292330439005711856077089592691861033989502759662087305930191222274359967495366217760846061874659120503943457334806836152831691065449176112100915459160794041729144533187016382084790525793690414825317492382702065667551595373235443526152380994750863988834024968109367032021942402895168254372407432634118048637401295385092946241306276741857800569543120620863813422177832005729929151142062399600092618485785469046527625270199436754554440120723888921316011047591208410305015818690056973572677722423620109273993084450325306709956357871944775653567426248944639234430974324915956634880792649260060128460781761650257618325856992145607072070204369105869105334675222289785272795655947450562038432958114429179490070386985935095493918973213520013576545389177222004851120185758641480308793866007234935812529536441768950389827843380709503953700309689577883440844378861063210246970557643155010473518885658390881288771612791159045683639030419612554585411245109253238994797693631902776472225525061624006158737409781976321127755834509683920307404830454197936900950101388391013842880111511741069070076531204004288344779207159151017251542245593134963726167028252378520055953046966268064921820916967043645399837740611516290079066974739464209225841743053934209178387382921532835799959224738014623475667302441386657423416201157396159337262348752221907495733955025481060858044264335658877284239206129741700693169665575785683476630496160841766664098795314411825334164872571332839725524612044992260856383589299251626986590760559840076452802524472418895116761077681699028795449864642936679985184123585583744356190650211369542491608447182039532914403662147888683124821390830347958853954362194000957294795781467042276120745894160348998093561709626035863992212460321634876478511865411356600960853276888317449811457786221323502444779767681630449286796773131879752591405796006587247582400974995315861798014618808848558096271724910821644341719648865524050099318880310082423346325325539601865808510497371760218183145174612417667163586653011119671550521100665306233171059272782087739766472442767106435841141933861146600025756730692863483641638713470842105259025987909255309723368487225892876669605202560134315358151221741479344187369228475305387452250093956904835453958359916194932210353237567490615125733238151146538804686272732967890144052993587606283863529724881899442635673660574663018275214326882507403150534441527202077851654881712218709452431016900645295725481169980416556188545847352987639103301031869173461904791203152457403679441602267971521806195705722592322359913078439080808839185950227467821788716977795396196704044718210463815104412257856222529388779154532260519402621056199059126296620292375423845378015842404286840284532641582057660806360104136495832862259838170537087353195096882619103086947618212525881607295274829056406754044284330202920256731430825584332584388719241620241668040836996211361612522574204758806219775950380013904242072129601243302009780274737374163711274444098431959563027364588663359855029884334080922532853857452172931656329650839008478437049577995297182618426247572136241629251557891545834234431304905000285028106053343010848895047271424278399074343502590042448679446151103295919211272681997275835652376643889000631973597576999610360103271517113440722504050780238186349747270404678453329852352037693754087814102558876038211466672428938090852694064864669601949806132776174467485583030515559284423322563313151200573093898738460186645153835840042278048068908263652602182087250927743710602431026607066371588680560697424992390223475818456913007920167966287664623177933924730658044012970872258908432587484546099116500767149978754386421205096186165361560278963422225503154167290649321293507999294132587287534702807435141633760438727293893724061381122780799213688510473900180948269802106410147041175778702274040769356082756018731299566575894166746197516388307662261883641580726741067778720408636119611173634951275578458112182935295156953164307361022825744876835942080409487728461399927583727290612073781016612872506550964668164375723237299095374917876959308453165735632369914495997242700114796732958475334348927136249236957914675361977711539079026076364794422093099610964696211053110872894805383916970361428217127190930770272109663942711250019323457771604918277947869238065169119863012767312166040945593689864866777775995797185671476086017273716377325553501748602491753813873517500714606152621917513588398301018644194555413024090660542454228656343137616994052712631347308931237070625047246815827898210127867542400989973004015244795141106398473197653418387733071462558648869781990638506842214878075345212569313485501373576625674649956925332619789514898953423346746155746794341810956388871939871664090974110101766950238874757162265278055667907468433862743701265388024544113452689026458164484050710877361985665816225847511884809615816122590246950528981288670490859315611786853721386743926746040534603495755974238360417586925062885804890587530840307607198763996828154666948016783206931194821631661484171114257375364810550642010303203048265301331661723168404212218092527565681320197403205146120301683600867819437194157829521693113647443665820202368339767097241130925918509990171599471188496767112871655875523027529330191564830399777682795014568017999465567579931088421838410919448186383334185248954515644822328145399309771906549518193172049356577557207385627166263090419431293206246404784172764092281836832369250064926962997387156670016637828534312236650923719883199802947213533289249874730347942450241910995958978551388831206470155250795346503592067634444948736935106280347878842216803308907894239238233412083771753217098596585206667251133549119276175696621602918985800021610974927185083411976378457341823867609262159972108450650619022839085032960239873944316244419905117915161288273980980429839656998626763276508247628668334238182810460355580532486727436059349188510367588616822597793065311850259141086404470007606821689504936804594654091439621772828061625323474165187942223738757121154770644461441571023669748444575043452232457504428397508498970457822904285712030955880870412896653214758643827762190216940136560170875504907353936399875844600204586496148437117366134435050987701259652715591728367204878089317573444357373988242041057311423606672422690281717550598828137792342735293548641932631031224793564719091540842289619692288185826130047456841554684508698859725366711758887264906826055570859229970987629928113902082474752919140287676475149854864429025780003345494676385056530696048849074657369336421132765450450717835285515411134156857776522066689662640332689301783349512479660510478889286606897661199328363729578204386684030847860215005139181812424453802908812843407866835368505643063258981928504883270414316257890782002909842737325373718137913305816845688554151968377711051353651002223162939470491596041122808292759312916665341138115256643344268176286925578307397873205148478331689409004300825171505816007528159761832176554943409226579130203125060713146267217523339623293187782971704658819814845021449896716793677886521554010313977443396065751034222830237388652339319339505139462180349683062843454928353675496330589382973450136768697653118171380765879205584103745608017091394044582461712858241579134695885887747228770644791541959567406794798589311675201305046402576901628431614338984420412434963603285325639349989639482231120666193900184832954739214204136565436947703961471464007306004705363482970251827971746583951069784690013371070350053676592799288400923596378373734391176565686354177485905417770719144896339478785971105134472878887193045970060636129380855908033770323844008179914734755347221617013600776762859253802160260453324462049741871231158136032263784997042491747915038719380881070888539032029996345452359244107135686359210103282236688861634515640732971104165493476103036041493893818124992314726644639656298965545890968443459517721940935629170708166055215581429380182810433361044253044787276370254558829401232082250962785506924884850927098758207450680458482850172688067677367580476838113466907825637686019365571277761237384130854613924927372384178575040042862460994919422479816197285722226434530281470166262451757631698759589031562474227539366772208496456055911775720709439292826681608237026460303226381661171456534271177481084437152396087647262459091680501188534714496380322733791875970721891593832385040999872035895257602606731217350361466961493182753644698151201000530409504488994030793370181264741599472544123671304844986257240566670980546333369843822160290125722112962708654014023946462708294472319174165134291396444201439895788897847728597459145831730589586794839162374899703652915441801030252945380133239853474891177826673044536981058996526103216480236445471454177330549298835987457806357086290065640750604583638635133560544006862002089134346117083282006885397768256276632876131138607493675411492248710885232207715443491882237033655593557940942159644932624622783628072154005554270290530914855845279479518283563320917858715910481345141249869959080409772686166667121281709770280665590021965884651428868146556696363563643359075220837863264920227557746176165179045881263675516033748212259022795125768589024879932876894610508735239573808596460175304199063574129295143146469528798393457371778472078317671901114919472671881921884519644818395035422917280460976668595212613236772079229710644375208381875950540238402242949999987871717083563545754019746277979504776749030564042569939265448958794803922382206287757334933980908640052390777404264605854312821544957953826293716689524381821108790420690636848943073719153576299188596727546154555884041028469023468378304735950906657103222519150024425196413174873962373925003981815357488426096055996805919622081086900361144042391875674508867756638838916564857150870280808259189161673574579406889144633995435866993753959184213016377678274857324922433872801862892598769889986722530181202052607159945666303808273040890653286945515922801127923115118473113879046500622601278839449788018906678800024093519969241175299589914170815522399248228871103531350391017502119333949352574265162064029526917521776963269417523207313388694071495544140014491482220254423586007901854758546075410166011707511405567215080217352860934008349581133314245809081987278303924424774374013158542344637297535698809139746087108530219100405937506595858882138188552513415704480125184341199255833356961748158561581678426591940713402323301958483658462590966206520380483645019485061122478305566223637624258329000306108192350466716611353294228874649118127422858303844322015885491720889354275219627591485907358162558734038497147816295914077068477189079502899014696244318290851165864021663360896187479911642933262570476602363622975352195814538741057047107372919051819825524051333279202317210735820688551080264416256662148454328654282205307926765345803977710326923921134651376887058304143219321915504150515194399591239015541691145808351463674648848328833936017975154301627922926222559767118613471576001280029277411228045426916295532590902128955443281956412226946000737670001362949121484700079018312991079722669569890040472649741143852859082082829457154891174466182231013370255635082852868124198437710945511215590198168261964125446748443425305889272654693195815429851539766005742513220991405180073809660899901637013655322994223106590813909120988707079944326165586895138026744256063595080985657153663513968074275555226433314247316783776459842675169307338178807631035046741860898915312619910256106464056500749676262031155317139768093465597031060825611203418555785843562591122962568001684294447440041422793969138558508563905294501979262739720665313653776398817851004933796672509082883238607050169970164528986868570667276316251584068816050517368269441691934152026657603574475423844739002579917418856231598662008733849877946959866301626486743655179162893582612710041342431957997981356967785353444856155853140783563644764519611028409859254675046989670812450240682547284588403455981704936196918524949766566137131249966525117261329692375278228436933619105906953172980754153803684414019143419773569730032942535561654949346674477675804192620941188880592780519959790945192661939295789961037232205386370850440642137282099464654579126498559373286393222694086570002067329459776358749829860212898077508930871057454234132812049537647943476311592681501910749843651276356382036872570252393916328481953926518737442181809894096853258530464464900344034646473095122981116269739264982194834039852374040138399739750073757430431058390266873783339112146627751439532522627743337390604054041105610330133778668392300311048659310570369081741205069361682639368186136997949640276172361675262034025693838175614784748849540993915715249075725990708723662182023684277800604822961301923322731167076492111308994538310821441738863622867675758676920206883258247708012105549642837476387718608887055327576764717172318067176571702727361646130349430932521279057908559088902373911632525892366529542704761666112153669124923973728838248501839217321564683477353927399300999958265538923829535375160119601266716527032221155954775277596740582864756625879021749817104602657300987064228203144950340008990629816080493758665547931043057232542173780632756749830161897051639861529248778059272562728938064760456686902053480893915809429532663230618551606137753587028303800500274713248932484423348859429828161610166735172465179121311119709105961836599002261422527114553511498591567406602708916760322210119830415206708678685979068585701155402409735215869690933529158323385840474659048796903963593112598999110410034851284962419437219225566951479724373525959825177833770119297304336442109711929189282373471105069317929997428984682885506520322685278041613195143117994306481838537694370220306795314426771723983098266093878522568966757547777311482112319917329432770172535961386128222425167751096376507687692732376531755928477909611966296365314332771551926840388936774216097393735790234294904297654557720582992251579773904318180968051931633159151106439681623021212974266637251429235470715934206216036227378989793225165596109745568990237988999790464067465943573180991752904983472019134749753756825250073413902263041758208995823565231015721703280778192489288319417812256554907753947363936946155035032089826915845153134327552630932357201825272349128288531981892119269016286672905846957047709630979919641819872710145233727258264270319810878709541300619950637836516641781076154529845366160419485529172681372782225511521626765723227599651781293526280818528769327973629712804109125554028213231627039461723523908184680865171470176049450426977967921363574022849733837534583953513987764533616119278993352689701935470898055922362894673008935722818694094150096350303233170010778710952036367325553493904850017832185051026971914962066503217370857798213404857447261442395277733601968859468464364883314275810707344381212951931953247884895697943150596807283149714232799636981528481114409825939819038113788939207296302554567376817456914438430014635559948766731772857999677868987012934465603491174279691956910724737588759412412863034631362758007153716885934835104894308759386351392087720258907386029936929417596252168192996153510135256878658811391338661254581239082587213601856318998028139008202905205949822661120785507402840264905769676684948297450188260458563645041903997982677133319967139896366483027567930862542193386413727140262464733147690104932532841675018181752159303072044004035776402808203544879608517811579136907559137154392065714246158274253098341876133843888257478661282927043940086714953117534007403435665730996556666211882785951805979998032336822551338497329681579045252052105197775489634531722511355582314987280189336039841781593694957183444058879708678248367008038865079011602361351150626312631328504711639046558518809018053104590373605169867522574162153316054187717294949601788636626053534493154928827507472131830418498965893893569262268835518004421069339195770034351969435424236322862626574331327027761071877475239227536519751147457233677533404352243841640909728591984974640007410030476257782767427644397943483364157813772854497267056257611453207242637843895523700400127635174508042825003449733532045895517724872048731287126601145967527088971635949216869184612083822239277432033077187676242031161512591102183355855498164257902679214441449369932757423131936158632037989628069646856890618628961314933675785127355472215298550102415828293330501038938856061040574582740824088042664283888779066894287561354830810525332786683303504174489510693954452136091930171107289466606205802932537201862678173031019560077090472068119947835959845235035367392303082413579809717068078512124480646609363632195240302052216542612090592599300177996036177607425834316768213282171310131124125739737751966370689205217543782382521179723509514396473425395083656401015258540388344794228406233785147839959824487532748874255912787369966569342661890322567405661903876436035704566852774900997389004103945144314293044152038024030130259624858707254547342307375812035689434695329162234189632300138160446797289069347646960889277426705724889636534839155550524922948611208619853103363851424962771902837332454474995867748016495962407127573012206474629842279551888824747014044452130526203140123477649595692372360316565562889310059614464564256735308527575557929614330188271452003945799458461014729513303619805546565079252121789732257588592698110263593590945168039183219984634187567364733812286932337419069315195880549782529512944707619537624738979764712620327817081549021217252333883049785439519110306567404780396405631492799020478574517877003472726650338617261579171237200718512504095613665726029934185095044695156269847863640808105016866414287543645602995698569880173505599058363898463106040094765874830016350550029769304943467932793508675541897178380822095613536659346667507228699639166948346381103223653554256204501131081367972518105435469537524074316868851953784384523706541994423409108473061641426426520495179351022252115203408557401122513596699718774185806682027969986024627117514782152883745150026258884777744921435221963284029140962145450071767648622108722349810891853428924338562449568768396177048458927530974484405514373247076269862131618556262407961722343755282841258817669540447683098016750887140983812959946920449480359794187638840348680087995267499501878859703100086625419771746072725533576252193016659018206892788705435059574727891950650106939785879297090244340223190297004153690769258197845765257779747371475911884483903736015250024760530602347653471135134433670878934808813116444183861616119414914638859391950496769902753717674218857236370586848502672621211792041321034218588911548307423303183546056177490141452818093023234515621250979844990282292188471917326523722548224512015159369129008585026826772824331873223562132795964394270695553952130661730026255997226764134210465547555962014391577382970870479632346685295538294781668178178280310049678834953543522628095827344993103893219510502844258648985450062245026694935501165136681449982719771480236112104071470849429507588864333105274645505695581218869570699596386403476503140503971650954184122576190033061152939740167450231715414198726996450623806259961784542265854545416746168393769461884626120368890424671025959066031676716581991661845387452925541930533536178558222303531299196942806346931618151011777955279342036565050969347561399662956066408184564028278369965178050582357303605614945742357494009515666309600815427833257457117052834789607817714904405214809753510088344255840057810494478492939996103491610173339040441328904983908395878483101966511583767540230187747358764248146461782222282467609467749442144549037039803063102229530550963454053444024884921175462618349654768726828507593674325119667754451028173306488881267836232117792526515048294955522016590581799933931136898572677595239824250191614207519939317453992225480840191471805072766554054670213895956675473916316445434279989308385592656441609383999106853104164192550137429368581550622669416911305710302612585977972669698047339805409744391742849274408115892104371906464505653110165635932753966773432588302135780522302915461316383798084123001657784212951196676155406766094732817540150800045513606007940406443811405644259051518759276848025134394343160171904510577990436306231836658402434359977945621463231996400942128019277147678116782438400179050441632859928707429826613478201709983871604641435221077659013453683054547135043448457264208563526992114130785955457818902344800055320205712986278540273579846371757037836530591000969454564446256839742409558080490277398407274276040304664009704356723326526446865484340103856287878996379151142088415709190156156622447280679638183962287348882247178790495839545568177543318650727120570322357286349144923748996882773343666697383445006115948893715705510665476218282003364390541781521919027595090281420112490755124630159280961019353475813008252822735549594673893454222479927667138154870018366820519143274012960530878474394190422150646404132859539020551129762548946123474459207177097246260446959630563028780965587154404424335047938608932609067678968799769046467753915830940878479885194658223555453102854581547573828285789851363098267685235807287132632457395781420254756947177089141027082383624548448645323725727990990200786437148697403839221385950471784067722726644796935246819884973834964726913623219347000751544071174219775007165024820459852645500263203852671531683833965792602716386341063951556155797302623639846496456324838198682841096785456960269652075061475283905251363565273617914634996822536933480553109771787251787951038070385402358091171040861973484172701002247131322452070805080366187645045571162073850382575058284965202421355860993322188068022838992434811004352322674674909899511577975165943506338807173306919643903367042289809693169613063371191828935209247002403315580621832513501977863944597380765116653902966571584942862498148600611009011834883770265468864187536476533633022989104096758961537838139187916474845669683245915539326528730204071373393045614721641645808679692248387449222819181090272793858120158743554566394531474719498574676303803402546661297499146176441840059780608604447613761899225751568088392326878577149607519122279862898340772287271491794212844380301002776119853344313239498774982240516227747885683553305754925166927527199021133288183541027385480013842029470888890603062221430231716561197338327813872536517813011175642855454173288429192507707410034371037103772097033202467132357562368563937706345514350989954532833678586821048846213002458434113521873711986274162569277664246842251580436307623101412333768327735674288021262683936371297656104119788784441417248826097590048737210723194029945738193551883384773097511581869495682114457983319702351021530523367116071155286970904662455422840681607265106277187471603701547395046909320162493872245735840401732378036344274637511766506731698096125498567881153852890953808809397067377406530387634588252329192538349566648786193556025735027906657974979561725220589811174404407116326772821392380054447756869766733561550512639271488244240917470086623215638528166039811228409939254867431637998543649491049636399483525980561674323564563448769869131944010599382378580553311163413635857072155072910514685161925258846759062595707640577903359718190312572986147668676442112004684391270867859384961559088250557720138437067713348738674871719778503501967614700119958957187608492784807610097374527164578210875007142646260230920561430633841358280409961251411913357605549800640327162117220327024536830634003080796515111364040391525595341640838712435795639442975477316821885833512768425270854818624467982182977165328005601087933467327130617743519505425288381039813497690341654459856933637086614675644863957649782146880722172747422616109145944485508039915806977658097424715876748307768705319197874861316833558544424146853537993088806392478436714486678839683153003141034636327313377331695314206007635624983332351417396436083233203385299064063182372195250034729391353285819297017070554254341428239287079504195671590087748793888748833939262659412168606198848840466706563447863917013390008433038373953150418563392278715360103552784106641760382025989054530282005860415076971592493558188423333378000584851257967421871731760344800499484846596141654435549701409162781062973714233382979616505522099360356606001407070915497905188385548857634929303136304152170551092330298737159423913190805281884907097056059562757984372792849211713161980138034711500483988760851948579942798026562510816508467997066706305533828534512531789804826011653144195331590866022332779298637208847409741973415203083685786573518152036781704261897583477900676165996936307517982576921337201757414904244197861730956817338169411494813641835585454235830302673450841193293175642681508640099799500222495241186736271400490868490493437193777919433733326762474835410649196728925648680615970721417370350851111147900784421640554601678186350577884692151360511647974772996924597191086445753013921938915064761906943465614196915287572121403250485462819446563444717847796190890373165731148991659345006864825638771196985862612691193789643180002778775906777920948374660262707729052660974193219276064115531202920212991050627202032856084578612786130369823872431914592834171599294240067678301521079091470935653436990177498952984069112633806679517045046703848396401666616013597020980755684058831211455432949157918191109247900700776300760579701218937300964702889167667533629186590218623296195962306066362215586695583847619618445050630152510588127648483918918933919116385467237645804544108780106611698335388772278645594691727948320987628957446611780618412731738159999328356862152878682920558101429352193320485428444438730924195587649709469724430145529266191359233167470320569009181024532663660332462873614085441784949817397058578816681132194800059146785881429155473439728264622420315100548484596550344405831998971288202825174996965496356374065396642131103104413125552563171185897156298465577206918224373696611696849436915990241700582601448811040128506757591760632917778167959098577984208138124208021371925932323035569119981919835269190562328771238447016543202610579861906550225969170785001481361342917202684535678517468259328821159066916629864934620252469622867379157580997888161320829886601292091625558523868496295081245314757552765240462493313580911493142279225589454197674530071271486326831878526883372624655969147828792392685159893930557947679277878374502471892522513484113106924466069348041332834641511941136866757209392997116178385688295314865903631240762046037726104154292175291901882233947067254342843724455797289484668706625539179584548512820018568982678389526956653056487141898113852243050154083824595883691931092630531577079494899084881844800723077988977548899338805507934025872569575563223755641093381495728754134626251364065987295508031291489248098347968939755745658049763053335002972618360700848659901998066896699257245672515200096230501896999829127323193741890870038197575791491895744950396191596117928500901474441587836581197769591999662074146842610662625302647538711967438002450580359179693225941178550779106687526617153293347977616913279623191200321514265002754439757770964930045444374568151355284896308156760172217928334418383794163709546522906645010023092741118497599540555338375498431878138091731650673020579095031976777061459693531138784310347863273638830728954509795866839607940056554425518209002635729157836218352608466118255547198843028079367278625399925889440220549538982086756981466622869659841919238571641324296276715971508944250239249137192503783977174582236746023112497693250095187875057016395543767448410503458707080525646781153570649400289048135395807672374255448186843214083355035685567041386413937704805039272932319990703235517506514867542300524118905245464240043552419619781247146595947605283628218963365057641928350062708054576676974907519573127924663733730705115421998184035680786042669176730893850893988098260941538542491438074335609460123880749687135158312799256141167392431920733930240414474414719099057146193635133625657912433455133902004202863190176244478476734606708908673578903154356068442658074421031540666428729787623380695205941280562706110158232852388040689528189857324946296438963728332491355737652020218108122768713200589678096695398910308262396820397608146398376868250425887569714393725738226122711707956237238488236594405063083056403023095187622283186965877358557123936923987852035209571329022080110475740271489047719811309633303198402730946557501062475067049157335637945389147835882588725013867261130829714953905751921481071249351548389029853354405580827542652879354526010789073071157244150690509672261516622867871425034844516108786607980582449573025407865164061973865412499555403800711428525295089118997506284710505926720018332200295490371166266706251515952284556249387225065635938889500848348642973808380031337473066818544252567702629372434943014875568005478615733404064620081121476832888311158281370839001888761891709671820574626451766630966128111365729571142615631948716672677932650630309602414370137583616805573175061937603193435606377103373740282285450393964503779102408180743503766260216280963850636599485693870118819932811533176355646835694163105380205110245612954734746556117992339847664598242748619479298467396612096828659954256306690408923661999969838871199149481031846985899706385342500640444244689511058731279621264740484781443874443978977292707040416421230019414635908656850473451642004186329097705278220252511936086300411866697873872053225914034052492726949510303664287312920371281064885551234176826265334539997534558526411562908723501592906449758495942862177799919677906063199968260133614122438147076918388216652721781027532335922004887485214056666464473971498707198490507175179759211022926562997447842498567794167534638321594447635114462021793874427366337584669220475259172754860523247776765191845764227225707428013645472222331149196411729126356259233431106453652391554897984297866884810215572792132641739069175876472885678058619158470642217027468256310201287725826627889640896674708899507275616534947806782219530084881300205815230534953371238037918085548946349919201421753744939032488150714209462191816707170142334446685024179701397653421127482068760800113859870399156213312550182990226307312738202980365524916601088164877616010207093868920220516866068987847014646625563076946379398753742341872214279250370503322612491886529909549587331559586466920080692467898185730205954859422090690258942036298597168035892001580943900068038958661704533923945424558669559711178523535523852884756281255357844389956704005125965167303992160586576131595292227762661612807530341330374600269545553026601136509691601591866862116495599641256709650892989362997664738459867088675552609095923219313731440675912112763891132149547771589228165289977851705917198704852464765549741038228873373919495247610939186581683174371575141098296569939648262118595552833973499160392866257092960534573818469878158062145461046050082102311224285493553409215420824489695926983978904710747713105971928089016746746991070641555116472100063060539594885357073134080985799430105760489226250958162540152433397793366092166882668884828813646908471493407056463911978896928823446502232188244337711792874386379336812116964232300157465370859812559983648446826839870217699040129610114549625059827039008165245557493807443307394102309842889699814534237654547808833631288825488903662485701080701295673016715994805880022238021605697819588614564617413202107705721992194739371671912697724647740098734775033538964309225834798791581450679639143202051393533081121354068127470504290757116586908482533512404317835713064299526555989228801328338865198497697553332232708697317358237956432367481971688610282226722775578536730169908954276638210066809033098699293080612772908346025266942046829533523477076866131721383355957954494630350010602314175084660238927718580339952242949675306073458269739504756582391677303478077186547609539563340983915450434348703825164040030905695930713971394514650899800214345400089730260882489792139298815997740299306030309237039779458511047148564557216452487695513296078925133610165017202190474109003615286628034013756220813805179671136806535859792631190015748660907545742251959278406127090061825373330013517802204036210371616648382028201081066063490435267288026522183582718154047875591973373100659570660612185920764137743688808818105416093255322499013437574244864425449414971549184637685710140786051235312339248695959851976519967106348869727960619266960208720165039657106595038147202534494630932022626814591566716231314614496113397117291114971695721588337672923205517797889342154873832985156088984138478432447299046975947896024589604878599642418287341780586453412889936182300969076925215428212487306971410397420257171471420641291078714529267397770526295154481413583057127602031188238888399832021996968348008691185742562286573260928425791017525054503255957395843840606717964802475818952525449361595518601320793647854885633477475494849084809501652038889018115111272498716491160270197721898214134265600742943229928182421631329738418886291095960890084891184653144174523567357743483492908442594428838818788066060097106756537990525672646883465755089504767503642096356163989240879681985351824133600164127722599095609864914306130189228077789190769963448286167050257564513388444379754550219110443924172180604208417992950356355198135454139360499034096246783894337017519747159101078852598872977106511191393097802625305996000497227065590834344980260405673074839167244187323521412319257342110084044462977029595874642819530133387460337830416709053000786887948012305697340765920056046191606955272521804987357191337616978708635650461812071025434261327445503990714252537334733206831226460013158323783051486594823890072120828794058857860809550085304675155407268500177379857506990837445154039914931896962579738907990874249207334212033451167408280354207977699986583660160112910548791103470519671928599441341574455360456130981367593848607666426762595603513579704696292539051229026963688002901495032910000128898321524974321466573915591780546145461825457762615641876360222350345066789331759478355612590627841964136640285044992761750847452372961884078417717857095798652911973388318712183054227787634463521588665142281866869454005196168312387533544961434437234885635440380325388226807750021984955829765215182502686668893655632493041461176147976707965204929614300826918263890196302535624495979628631822056953276404201342270742241831551069123834949514200866186329181307856615351410184893064588404014209948224590540608544723368467395004070265597400783729931226248727489113518764251378044626664608074461366148890871986562604699025786486809990312038879789811997224200435774254403643293734688937914350697928186883212900554871603798794371930812353016998049409081617437103932338165252693289874916546093010196330038120131198639108143532519707178333224025817339740635849147931175592649978390370713698109355982192581566333371883953098911409536095275424154823340617120955210698397766781257898829389813690814598690137745073311519984638328487674036066526852745088060138183504265568365760397974922422128768529109608247090268105439677201597888102573888492423373856798168917940342079999861537288513045021988937995068935335421682171771010853288229234505283423659180188400108358155328049500812628209962928427946686949791273472899222067726122360371313700602426526149824688860447035380139013144487516575784538797996229216414232168648883372670141182914200980214210556870039339462259564344596070938307045663402786298649795337381648721960528145348683598898574945380169822023508114602078096940812622493975995556628885958671094134114124875341700421707563843340428034434296869580445337905865409403178777547918781239571884498587287251321491538602019801013793336621343188606283443841650116778389766590393252017096504720221605981308065542432982574987492373487335764281036176824033592712540953351560933127902132352732750435942677078405046391209795487247743136337005724875049570316273550511561924484205718826690742094113106386594911725131276796595702900394897348619487075958695338740463392945417718274311877267486343199787414628997982802158069674289853077019197542020863612295959912586552497983549228737575691645138071809334624514073491812488221396057496419855573321688962017208966869458758184983188251425126956605600899693249089902479628378358449688800571520142989477782088604670198763533400340592489763139463093137888891068679439818699351171289675410582399006700505756845065236276840497795336539030307862297505655673727968112501071487127821471261791594032105547191047147765397139556011717136249414693821669565315621480565352710276155917266129567807758654132416359828353732665254236813258109201853722355446113625660039224018875710445228817238662631934364630546129345418223222936883947097410516676143027174209792897005420079995061172514642318787365280604846563765115395309914199594012111508271617646520110738160858957625692235672568229141704053020919521012192236495118285703271721404963797066006162866171492109409526018135756864998173736176608682009338773033554805486788637141939437618624231661623913142982602945005648536220756700506815719899482176735249608548066090858233878806364298414296889016199614695893531088961767592684748451371787663532751582985009148070443796930533566563660417151052464343629502620242529057398092502355222931886301794213087510796774636520681579588944436740718145103975118257369745787532356411052210723293170851907313579868628691376880824360799677558039062119133189274561805062796266311833282495246536089642949904798636038121702321149239987100817911996410092468322802775043693009018429442119920467864457718327797943364145402564404985651721046819012569919126755695801708792991341837733620287826230820061920144252554864842289159140422028264935105852414422011891508114277114204813070515781428473821851910034240635869389523370707446416014763192810500904039254030237587136468132690360568479784707954520216091324959263184864702108839653775738593281478065246502311066118393676648912481670989025760004061260535354111300108629839976832178329095950675187180674758769218176441075580935578291826080640303283237911397681457782558220910714304083076813952778127744402716776677198784164784918349571432353444612690033558661961978211942904931848094815540167190195291655845857818144957134556940511662808758818832187714644226295293592486776782831935393575196126559200655832234377622658280973324633272457751290040263509925026322889594006844235428129526192472568698005256843490341727753125564983479289879644754998374027700555360627467609289825749627158135187952353101645691806021092009674281626998036130499819958581675833739416368677149295984369586679156236937876823912016735124227148765963367189115609824313266606270079293420593299843752099920073834443278801419963661878725396783264260263298028385258708245463572662100535353646154528065511304801358020141079292223756136293059885306042343614387494985024199323824564347864414801573408648766449791520612274488826447479858698001041738495523121116930715120573599234495585486447171384019722092041886657655878027410095251932609774982941955974651176243019746271910264480537067716793367693604381381102866752358646846047160894983914617620401152264095018197132098935835249355886836129299817622993545887424286507705692958316589079083042817679706110277160280175940170309003254058554300829991429726289499140145646766461855581923328965143297499661492491689776450839402597320261090777678569620136286302539467490357442821108398595252854451311853829388997426672555568772120904542959149967668389093594112998272430040440130021205047427644099061484470558011285272331289834142118318271820807314117230161557036160136758547283284384309235752662890862524717595567178255420361326929898644440686447032092540211855512232437749386100173128731574409052963082681428108213051876110992000108300894697937881109645255250632081341135786004316998663492206995385772135425940883428886039960760930456865490338164226684636690870408740029833367874692058816596106514400936802094183234668453150929247785825584718709710441146625361075223356331874859875398784672426021151037873318483523475135376413191860654752275072441429379701659060549379143675561345323559814710657535840868905586150622621812198188736309712859259587026013414060979657078487477998949049873440997812011263476491858302435225065478147479651307090506095049114944268378113048907818352015539270150669187331327496385018120911718920855657759720616318420349055354280742059387980342968186108212520477529928206275058125061378064173744251855388468036528857216815180485774550228651730284594260108593912507578847840245232557681196608137490786699134509123008490253225652918186213468652211411261408755083343566199306483109991862221300552095513760286197848377553593494510358933047323790764643750008662320804777068506671506708084660683661665698237822373257356486769228182119385712036024561679668014276764823862059633170313027826682030246030550809674023856018667738214471704224743691059565638525608249199701361410109554660739713596121761304158597566918672299566846276858724048613406898272334211380230383083620918470594801826579486189195573812845597106982720903000601873728886087535925225371740576483239015746875867304308808068956148935119354269715048749387129079631277265312275191132741618097106667267522449254114959749214671135355990762826745319526903373197105718701009455946211089852767349321832123967192625163634317152698666278465854236336703501404363864765005801506157669460679653699153501183389454927099226312741669100702631987994270414611162296600516040705050131402095794855124469811849389872125950098904841587839237569868544627885888708018510223561505859657991773204354122488097653447107462762485213678705539332198645298669993525196629009623905067623476164892247317646202257401058550188806528546557010619693578090913820133459320951800638584114097094252396892874582571698915077574605903330785392152522395830154704403768205672113165579184122891011423014814739714917567982618105894704099457016619523027521338121066532226175905670540870749597659966010075089974804333677592856163935101684542132691740358413730691698449614393706841823517677648038037370180036603240652024063181064010193579408876844384570959469562553496623399447980712531176311377440995624274579543879697944613837853563624247511669149112337290547206258631912604435467643309505179431756039478483873017826725420179320836347456755619052052748514163045235305069166758305693758747645515633404264429211398073466547084383316260220943020470737566792047101120167115233145392866039749687476845812084911103888035946774931303038424805507972491928294416642814346154562049471821790761758216493054523486453403891687612419663327075930125500852153460286149844508183776215008457671489918430592791043760627496768334643922799617422811862822686699996777490748311448401431306843227242540052474964280636610430641230755182986866372543383667363740873027685722227955402764357284537073091329697701279354981780012541887425456309817590671385811284806081149244343003257215800617393798536490954540171580193924933886287981549003907604514104156168201486928742367374966400929778536820167631828985564324093045661499141147368717376228318051155318812472572773806444662761567809601401384724068469653561138489609231045020830756327492773629359086132104168430186276310589650919548862762305176980364221585609608331726985843241655240699094431588127874876614139427018127497151305099302702287571252580355773103259424504334207754143170453761311509795774682777687340380630708695205430956125881310103959977608102779371841787416101146336255999328770358821560401444413884975475438094323989901430331773757642605720087972831797281559953445994961189320481710649627230999552423305608178837417242763460755197786597512643687457165554195363382073037685356389696743531941146185269584774686182325405692461740958342166754915401754794781644988670879351562326549322370725877970307574411422325455134940383830128417322620324526364582060892313663511398002147154864834713459030435230494628400442517855024067002762442096746693992419950223612894129799656442273398553991101687912829971325790601034175346494608437095069235553123405929294021788624248060948513585041995853063005299142935520942483306431527943392937043652940898078366610766260993035989070599610369646633031389462964322130010173194218880282502209283327490845462071827360467957470617654083659984715798497851653370679960375480934257028430119551902395004462595923415136689915332374004472137254270571562387731997355736204812118718246477309311733700230065018219525761186489461852611106660720231885831744155465455473452278616437368475936076311252859850807834611955189278769528051313399612117724832896358731473512285503590752967517306678209565440817953300152402267068951972192049070908941626754946730012651607771093884915321424224314121329059404919047965552080941260516661165976876662486601904684846917506278530967224795465451740305384446896417874343528718719435076456149479406235816747428182192550784599168374667502239115782280970845298507268383411915664927126415284157018545615258921369575507072373457083584376748089894494001964087240413521582068930346585991354662685050023389634018979300537386995848332043966485667654533842874293273921457117297025949134349623533451422201654919264650100448014680144472380380191264859112000085907813126142372134884949259872272847853659108034612247744472108699681918110966163577295624336333868248164692774353248294806612694696811732883213578358348155179196741931186671348165207748178630047688902640007638992151853085486037530500859406719519648787141733728956987658776507325044138592738144347182157585821943247039204206125200792897375032027365075264833542738433065899776594689755473317871842202526101753317586225408286675425732408605530434316411009499310617826940966072738386265680839661583187515435325567913795971288699348261954651409502636071898929851464847769622544470321586522672174536480654009518629655506635364737008041819594341961001124740213460769554601044346944202728261770831345043056725629731204754588198768094066493552939253460131993082264259165918788643721087645688994082760978310763653989399397332702237363801030699636879462658382497490308438782441827839250640787498651117731250702516641847880655340992927438311270290346301048727005128674297894459488412582567942873758284489383894124287972798602540729362157253417675799632731197715240620292672902722443409048516300483169069247639854086864656317749859075374202131681552018246427359111482234840926631552917608234429394871241012259103817328863291011024834364151272086739965602696010102470269413961358826179908075538305148423218493248464536263317445878692232817273593367100467306126705965547749992652966981023067609644008286780049608956397905823984562425334135538425265427051264449478218877947476563137716344291556130165242999130101995216851630807166465795925673286276387350652259440595271105598390030807961022152665060256351563130007787824660134231460670661004954193317455277928879490287043734121928352857122110182981503989622959953371438898810714568807328806788810899719214764838293103470919060258365318090935660665401675464247352803378863297191795816617752233754561709462604683834164065876153779963874198722045908408958327157331806232707504995218016646657034268987518318189758812400393162897778485958893195010158262886384912893074270149004665973874268809788959446667354664177797109209600407839983404234024080699529108566269001266206770738541539635471917374269802299766808764302301619954099494145983979079651647035747055129393680809933746511649604048887550424543660597906912682102806561215804720250316128429576788212480321847169452108452751780645496824356767507744919392384195619621254351678831299767325807988609003549015888369155206517219532771801334246845584521206867490661188935378021528885464218232608638687001035868189960484876226793403785089197386343395242766653332998078391188609399088205078189736073589417439550670885180591178188154505561750618922534048055823164413723102484489570990595033321649345433413572208990718009617542695742984226555635318954830357259793597679403350494392731369710853607863440054461217075930312839322289264108039937535551047188684622065292338371481608713077922400567072445340869039583462238915221681003480982784696690444580798347531091162323327070888721599407258234681332397353900346796845956411491843611681283312835131550274163036558389774671724257972033993527564198596521486319040353511537734265269454063183781103154670808554918086283558777555583119700048463820396379198707210207200122286621063548759371977702051019467543311982558047303272351128488105834834940126131618828194321296187065528289546315199009869046147465037091337484910092800269140432649460404253344632827262904937335389560386490531054218270012969916097530164074724599488735140612963611996051349881794725247564790547883059528774225184127045479153675137610286707215491268265066693129123990550576414655949537813784263264174139277995499273275394605923702349003027190190061233882487738225335353154301356875850593297285915751361860942241656832470576639788564941534483472125574088622230204830425708102438102582892432468352302606934261267257681888456674908116291671531548566299075336243714771130946066007339417530481452634637441482430162792745762508164496301867766100443470992856058691588674582287812598678960424262528957952490881626560867565735897595343091339925522253183253707331870898342582359641710460911708682177994097898766603797566812642478092729289774288777880915468754634234995555703629409758045635735721320683321627855772910212152081658621891208798387922683971339535370669064363862003395398416882637724266967352007783194240817347289565714032696249854784416325089307105524660812625819254208408451453696609008321964846215174846309445937156580842868630008500135670187077034676005654256534512539842982871364375076197645792344386689760028159763815252049599653365650904325498759372443009846427604895720840643227461687840792229816439647670813247585285800698195675585431554575752186484794392463077433722268112915211388675951621771520908351839234964622915966025789155001023843107518851329639937810051466553988978368203523504300441118784072541849617767863528286633702787627474166932439989420508188943275502857499783635696783139746348869024426581127586183917009719045067458638381546981398513559990326858222418456006572358943164729032287346068915118627203288237437414930624307711302648468665179352629032582343329482024539751530948993807789946293325879450788231478985522334030327533600886297007562625093023224076164786969962066938837963028714759174772193413679293451476044826406985985277565895594194390218090226749548830206612652955505977561285164532315948790731092053329873742127002563494524467352613967765403069268813270434344805521205897034123956186663672147915589100165694738373321850409318309106538210275453532731894601419063452151580261051252100779231091993947902387425651130970345859722921396441544105324470158579431957542314952096842304636408573991609161589954703920380129826225579876724685412488431920247800886791983188116509803767538960324023409898747691588638704344979357613034150347346645472990316888534833690159961330576867178404717466057769183824959467429931757349296059134993590445213778060096061112253235791013133089912805512247909491524637653097393110666899058866459300256834653092052156365266688871370854909291980895233532549956673339664439357706627770817822859068248867787643284199397056977484472569223719722186480820573696187998541360209325463380875047278348745911713927559740921544653087585735022058835290428139476949203284492605195190123897560620427212211458920587424826878737277953355041061653817824708465723479245005200199868732289112786236429862662084898899417485370361443037688005188200571013949143278379378744553021454523636866981479845000916194400931063291824274777680541100986124315260810247524430040449645661366256692128073974092684734712121468880134236165980102079950144988325037022454179310192634240055428195362902050035937541700823065295721976029771201898918141540813968043848311484126114864668853129958735915408872293706958845362657461796747799175486445541695500097131236912971151485556692218735558749454312726285874643448980250998880115925982649504773066815630035765117672027918901477231197470431752682587267425147661169316843513422654965516468511477565544462457505162890921864008205810729880658773996679456702539869032764173211310351905262045164810909794686262499628261078736513621348299704889095874473859875624771389076600518575542010196064945645604651387698320250028397085218832119551942019812359264813177542731184464847984974823329115140183302875457755055486811402488895627680263141974752175571379701253306997230488305643612993867061558941279056302248438823790437866659382523789208840231705199142751355934636722479135513212101626574482338490106437688853092202276595046747867864148006880449366567794319470660938832421008087873380970912075148316976974945675859940331089328472285172868430012278036550943969205681389989050200823972586750841751358106105150769351582981021520398846292455836787929984507001966239081116007920354350289895286845664755938192654394389147881182331030485087869076695929471253979639167312198087701374545988758431981060554521305643008231559325195123188074054658513947692939700945453264322134590312150679089541501837311270382719922952188237512114478656270054833773820941559482616746316388263513150428111702597205380993539393241479379728977470633216079167722773661012732815405425006773851630150172303262721451037590590599189787729240107655071398910035118629219709033310856968830944557218355512617268847406056322211983819722563951049811577173718251579348302236551056822020700414580827809793924471832135227523902088001169188217564056956692780057596855161290253728976177953912952894785557755794146093674317620588004158451740397169651656521825565745370283455216887920494768907440518784028752631307155943291516129369964530541569531238898268031000469948850588835428464175534320386178918619124191987880035646117022586222067030564603520273705362628910881321747707416996858562256465430794778540645425699673998231184695277987594566364046535184845208075747743064355831202792286743958541979393621893304651464979194736856957678296137640581575773649211823188089164378113195608905760922713481656329718926402679016553085653361604517166536659590533727825725305673168938736674178474512006758688310148054800488285119194530050138560626698357307293802696479037253267827185908906628655560542798327435141492502275178593698351776592309578384182564929646215907590175526036144403362096956736555667002477532403157274302967974199927518063769856105887438911597008590588202862930559413756749482235469396800059382492322915580983146270862883812502906845938312754910492906650391569109250673265357230768179884990696173526555733927504548982918642973412596408958188168919573177165793295070479807887035718486093216568730297757987866910557618241210519041776639674696890570183378621437966206263641577295450316198179331938569248667861654882818694986252829087536756434085009529664517143159691437136852612912252869926881473893758120950964432664197310296683160510535907614101568580853184653209835390140822909716562464895816420327980618659823216002635884293326663572670513799205258157549998827738028093752248156162732239604999536939783387774543233738544560431782631504402139441715039325966183706064345661651029944388963485380001409243733668989849920331914130959792745058121519425863771936685606289263434814980185258487051953211222936468449272386993854493202118210928594358361448100446656987932000839391338873537760566953630237392378187182072548088949716473597344195602362451490715484649712124663564275142240439952815458431455372287823710779698922186095707164792365049048244048714389436365025971571512434954673777431303330446353558417072230777155578927989948020065573300099210539451732006312897800919151643526782687713814468177910726183523202195087735313641993114274156551631490534644660376603752284339405920577555970040644230373222256981423816634276837610767253625737977480498488618319931549240782236114555867441799269438718287211495435713850401793796022675203330506947416188678389817137346201579883266404277506276298075914368190097903849689587606325280410279393584181154670890896609016712237853776097568381771271418602730836846693371128161666064227622481819205459041892996460216840416991557867651318965028800028811938644319209155995039762936904678748374895434957897050517442952502475940450132426947711908183353250791955422733238523691650293435707955511337127719042117583578397964064990254485375477816208478577598450911702521572440828662801754944264238135205502815517337606077620276056237075056034381356400853147442021096478248753090409820039707853488640834616067653621031392329953853750134667992660010712968034055939430528175759899786036529867740639571995620744734109054259766686484857933399636154632327239483050750485534344291983948057584140541388854052440852021132763158318794053836550960334069547026097583755741072297828081251529261697281318876623057209701386574387638510008594839194813941920035730804504198476365230606425188235066879350992255540328359379211208767798595300630173277183726539359311408698876990742516480595829354691681193943775998718523406459056902014879060940281047585236665411924508737726811484351726800360882986102678918982072609946187695700497268889958533506906834755870071218574412822541601029644930191243255396045969448420317436378415970212851087015563411228091228491554800604231128655503635571739879280568208596197866003983719066205156239986897586110303850088770807846052128396983996277970569626419198480972755432023298342047707933462521604976357331018731235648645362414259916251458421326130566609793365414641407963340763042032014877724844949047164855970428253196193696964803585693798938552640191727828601275605763967150084685184301587240163066734655228612478849826196065275612502583549335643028296480065945762743937345572302914000720648302787162114372302859517092652295671759043958732455649211793865881809381955831061414851202368571521551622225285901378696996320135736548126914941406842471169638283953181094517450165835915764948789429770139891761850824005539414081221319856496902005073035639695925773998258236902425448626395953118372740234317785881807863442429950472797154760435716161156600301436212786121517051710553035526796022112278320699586222415597833794659995630744553074093705300511016586883909966104042427267668800486498468706301995091441796080788447926135992238945962714909150659209129251316527547485763779522828361767103666150748170157530795571285520859195152960713852131667363368945109020740325358224576610785362407892729464802715440208872808467715873030345721175261801724643971547284757648880534160132733620298465820535331737478077077573313300393076366465716865452348812967353360721727857086509871704760963498785462726693390616571806827510943895912522283687772557060263525734379190645496131498947420035794641277432935692028665184214716086812896514115947589528035316675888342772048808949248131407255090980976244353706854077894319544342483268311551680894489664718665187032401981278882964104974120476019255016848355414412150208772258934379630497828660035380008028455158659393326872309282560190054304457349913472549914412534408655914138607399842644813284794168127769266810629141567223582478170409509286713419539024475068315966402160254239800544651445591120837496470026963598099253110389943213281570876891091062858429192418813870458158488981704307732963219460525431867845457648000303188843640525006587783300699166360037451434832682237582178832496505383694111162423471370554371841981213424752415304985604196991967514687482564167178457520116013349122155785020303614002049942661635725885969379596485906574764284613134268216687104560391323858728512098843093256407091600613521191753113546676965413486152053707140312687274929704053177318505637716874589804315440890294583318067233301426513406909177143536540192107409227716336020940484855589495701247834878800540194361804466561580188139677520253840770336170300762476696531208285092767438354614035946774087860320559101764928243679979118098245686178448107385716741900907133596470412608916818780049134648347235507490128815162484958806024778787868359906797444426784963568817100539056502908882943787769591516267623404346783266907995866209372343349909711594449698768463232932022787165385778467387193582597632713602026260991406562889561425363113235287104915803134366865413553880299460714827249079042527451635887488989770053699051556669192976158826341642392849849175516477157702302624747626494935232079907603138640486139275675345889187801939648552926268365225985142669905025571173637714842030505579934382127775126372412666341734018411530625636734073535874919619316881810173636152769901835101094159142499501680218021298176339923780173188162877618787885828890340840419912136180953676292051297899374045307864807176500055729911132424616627047697084906831226454064183886160401449778234751942521310502459025397476419208248207986649865533203947218169657687749626051466265433940666523601146397632106480550873703656165360701181112205484343252534231976177255295629620415871637579063657328374658784705226470122968932639716098821145372248124256701738924081353285553104781658446601151547032292878114738636032128803354962384118582053354386935741245278305158237116696632117421735946007111613341902860549485523618321550658424210495233903892342802042845577210518604665480640727329344428981210551516875544300022500977331122554480085127028838494467187043281141007646904011444408834954506509031986740094234731635933379131390221619642012485105875962354431208431027240181939795763569145341231493153730098459824776170945177178374388729194799515403967908705004940543607871185489915373761624089631699094384446387743181641452687257974797536437359075771701517319474061883769692079723243737615991166917359257857491633146410187997201539187017929858460959674731596066257349095967428116367265540295916466396238327340321063730002538173841330061130720612370558933696457160819822384056022729875557417647714497489899576091793377220243658433656086267099388209648800301244818534117858289901619363126394570318830581270599365336233071001723688430945608924731219650799557592912175864473167018949493038950794453190712045238235244956421849027989576651898348776601260629908519606372764165202146119646154049402821878775202617807550749487542809783651298463196701154437783966748723445477740556818536336951246676920959802577233756665677404864193698601555772435555073472186594070758732008512349870657277725595596310350258268241046378773087892502081718271358022830971112996378764403745757107618027516661344449013349849590916682169359363171287010313840787441326732178803509407766782899959922392803074228620209149980686817754869643252712412125126454523442636556980507895782685256389554571668694721737076431716285220388837537463562868817944952379042369171298576164332106619128232690614066121845357970356814337241712446411699787604729343555295917196101025836456433874590336891625013372539533026588720613933565591934982989245838737897962690929018701040295930263540862788456152871296360489877856619510105727067615083823018160654204923755927924364365119305144104024529198942491677473635165882036813748077692307103915818396079163233556270684382623173601551545412958752053585910904020857752605224694341492480743092722430836530386858252814625582283798024334960595700276272721335499831883054246908818110491725405355943475364625788936124999053082123345603279598668490171926398082859685139788356994593340795691240999399090936641049771510425867403088591434891644510326812128183150816226659487135561345561800336575617648839508192366013651388587832292533511714462358557499904709315522841542489031328641982659302827763260224009353625841527680139260802175562503131543585549167159446255687701534518911103144765866062013777308496593036742836214841586170759449402217664628547461436247146589336970492397657936953970247744338757271183093451361689597822579078459557246061237095719258744916794673967161271387637546816861787071075221790158239619407361086362951337253406432068937237628981528558420497975535527762550715195343426654702329496052092536183345729867075468854749295282119649064647707019835909137693264351206323248284585478702286509536414127391716700751856625476497635799939549601102741713478699995911318114068629659493106586529557125172393285514707033057814460050793180101796047801464388666392962805561021831359949255476574828424156726262410320909606858541400079556364831949326680171990756015089611199425437598497560221352462866806181734404957313437766540089979382848730853924790236034761198228741612327753918662073342880689224462791313467866042554490670335775816644653050841031804494550145032050139481034466476608276101823948780606176461377551668863831902771781371377848580565390907750348887700386319308397101106851931373574116580424784822311447142389873181232012728578001593704335828721002015911885114524562825292407127206677426323830912315020674155305688267930232733967344375940482042456328960207426336874332875927719411025130399114923294847148167302136608600081233439045278181661489176392833586831170189073665323276446769738622243578536398490184072149947383695689600630916049932370736671294931202274133642499464441202709850284414066952234719256243892738447526137228242620395153694923018448325618385534065330417573405025945640728887500871757801908645372298237485696647673790764197133860795068887823833757097970722901742028269363077315729574227403748134321704945241544904058630965550544213066469946401030844525014347904421709784863301651198058985686738013020218691063956011542191412652984412491612960511914891238461143587600787771982199521949198085361244438727769258610284315584762923045330748267475012918243479229825609859131258695181709174087044272057739768070876501942573767451352049626544734375598159566662830219233376463250761407207834112387621870649346820685533701601795655205765831007103974282719006957425587459162384958832804212573397104359057518405295197070268437750246606189048931347582099643976476057952291172842571817528399811720121683270459856435361322886716250649704927666165873387173757232496024400969139670587378387070194623978736153290046494618083654043954596355784324865251039547521412972450014677924891588057300694908925455013866250913973387194292540463425082476714935892645875505614668979934183363304000471653999312622735578620851202415492709464080452934738133047341309254011731214703591141630263147570084752771299248690078926591763927580910822416383457268173934957055632632762187799015697952071054118711448824498416343752338260125672510090287328513563643746121227774243661486795620982897630589956401002423958700994817439318393120332082611231821821213498284568164973497932578213633488128882499779258253708519062059713511687690210958742384950580755751027343776879391748176680015526432522045050872905863844075026894812604639112769204761897800108866702360684377090044603582141723150935580541820672866592242386431509869515130521597965071542917614502940235869598493453684600780725988672258575156254485566649562474623961245124392530785344085169203969115693523922670397478993640670583471183573415251306664367423568734554698169628920658182915516474060894742271391284461037176642082899759069265728490457131193206269222740994130463428559875073921694521928324132201369829301412041794889803307291598678784362230669090458239096848306951891602330608875773484328905538163610777537324431154410818095890039054117658966982826979835549992249581336494261099280437037225150620978204185628173822912121438947038604662180815712179863473985331387603799823255972443238372894801166961935806837036487844059565030187660570961573666941465175834120581541139764818216545032930757274222438465299735556548051204014134597731431976017174337048069503974431947349530328344307052614962456606093883178282882213750356602214959895617276712891022288463861537454763414280077048806402543052077315795748526444488918244582730494852779065608618683348964589807265444740370780933808276116125003054563112233310354805496635757506568303264472890239880278939278367202822126036242357177795122622215744211801294333396083827098507908765199878295464830948364122901575071034312891543396846006577091841611384153453496691463815260172520816743290609413404046246306516806588514917311387533029068682375808824978292034465377163381695891293512211402506196590450801106128791024597347700228362396031358712608287316474562000239441154729763502561807800442035038081448683862196227776911286097759359484034725453862341791517193109539751375435833015987617461900050094774372778927748787746914548765890250888929695036566597953149061898904528071426291635445254595910617419978595580390530780024120524610455972194115018932917492852186419095622111006405730174322524834419327237228042147236243990310315164041904649595504239636933865644947497173292013608516104409174565185756924202139111966157784222984577779025570200876536794100450983708966043151929542324888332331592966651180423868164737016422102109965093332079984904392932259514351860266433157789114798773193012593517459198919560960178080700532470591328735898985690163199719177781147030236716081298847142283479615632763034896011350215540940835177622066372144907433181177513731434126409858147074736067845568462350729602035326808406845219466802547676043196703460465556555125073680361207401475655539289652243068587859546316753804484075064459596780614457262920002631769425081212984159846074284551277383346281495859209788962403988508346416141640068942163690385610379702204246754805635633448733856369503348965815188343394802885455008714371846160643009970007415203288177149412951032583716454940232315458118940125587505711247549025892511778433750493089470735693045548740469432523687400089114831969960850258070838744263536977189419581097258325540722839620967500895473705314272344511231115273075687943780983283108640438120481829591374295556426414084950447678125088229298103202559484158527548898341905759922102284536083047932923233097940794055993854471873306779892971755506379340570150505760570258058247885918305864045211555927925151807849441295608706148913792285014278347348472398947235870683754739464305009413398221825282482226845302433883241577814683224649464641504663921783636683042776702630036038910048005838324022863800514038319381629909676596970104500547390925961749634068195080960316977216425214503298472044960405152316634750414810715717912492870554825769815588050562456360764982243131918777427061118034640653414883760127811290642144418204414250118559537307635150067247270103873425457386756891870692437376834500240536702227089700254323073406885689367524759391600156687139907661262553009108435199964108551981486480435216003751844169377244786393473958989366866680625396852169965239039830775586357440892926974301916534307710758566244620773041968975345334441172130604984956610459170728593019748248519187239571932862630407719235704605507593603024149954867816326366408867016739733001984237267920609323804962867694080335676069524548515657692644749796619829281718593176471586396448446661500037384212422024046120014331870903805939412676511145618224583883768982409535037402669865647496689657104851486614835884906352393549605337768908578681205075765367496377462122413554505393955987108737109616653750561509829829215591598319823373606335865668818507023913455780938051580385493281567097244411654511009978373510664457703890875661995740928636318018991356050009884213994406479122810916916564327316199124451570839883467139767110942569158815053604302055612996349212151035525581777031252779289768024458888960406028255542387422782280569611981840818906421523303891919526141931525741008453983194329449746691603001146827449300308829125221118120037586766480280442931828121481638024190211743738699603150072564639216762293019346247247930021232353803760304274653166312028773810689597817252974081481054083983861878613718094972045993333767976276212023932407692277786845113491641314290577485319339078265497199487677745908004056626526895756464648265023661801897182694457333241893186569776557991381199534950957833799246508114945166482837744312525654202636490112950837707603276025386481131732050352634375175877177621612735306490255053042863792990016984256494144112041196130700294081931209949484648000119541418002794065070052640670642571514905744596317561403356567004844026557497939385502916445640747632937991022207140025292726226827262106170157593094768120949834797337815231550125945354990234601407000941247857974976020556990440892734957617603288962974205826713195272861587801737907072152353372512572646937084184694084504288425097389367369191068668634378705142853122250305483366104107265227538481096809260591847701022778065912442934932330148123735801797475233377870888002551775520931741115658921752867546427345205705213766595497571134520704129656198596534880444224618095497279073149304303898242389456535922918790385365624024802653711741552320154235319879592204007605435748031820081487484253225178853471893568545642377740508433190349367577753083140764305468265334325090770952301549552487140227505212166455482713341545671142951864307003101655238973699363919575657538480833731672906876751827546587174271485415202173759606307632228508593939160021338649789516492571829977803569370143551232452788606684688586785652126964116194858220822156700679076056698524108040450352116097538120248777412066046848978658440486638075639819664793336068191749953182921121468633795752616409503812601324737165820537617671993622198694108861423450568113120124620762712904822850847871129865208236529505056198305320989526544776006068188398284105082191422096260905092405275873664854589508455081010576838274244204397914779842253999247219640999167393935769623931619049912085756201166756084090256029722210535288209891733272277598439593028484376830806012799753367886482781802174439131408799068997416636151846650284209168643535091851113799940924796210492786472416595811323863474492450889377377897515258135469472990292200863140243888687705148604080850646785898596774923256339138155376543035810853752507436522764465168412788538963794227483792853575411529889706839252914884868221260416354783780556788077638352800604161942198077869529131512240097392474369413566521727134695748805632800107042544082339454381299970625930308460345354469697499521202578215692255204042904938668125776591301913585420665670233111088961346340394390811976648831614731512145795545666241026271748122201805598438927797811026217191789747447010219363707313808702952173306203511006373518141103676796101539782910717474715166047612730337378881252318048128714484861966969259385942063592864939643600919007480800441705698102967088864309647491689594625262959998752933735287011256482706895917357267204528558654675415026620256779569090170205833149680672695020009935631376108665232374628627544616769262140912137535335324698587661434353116371719140621505513238130741795175529613062604019999668777292709111342045720048660694559532343079475085269866104425277782967662933859970336126422324845081974225038680477086294029247151914398555536007028367152428215416154099937288896154012924302414915641503695375726207575689848526182908943996620110757457478821195773042689170554398329246066044797155078430702649756503257219026441095454128439935223333150107510063756783445598820706542643706391824477783323685742981832476225181146362963457481953026600230319167333383136478732702156893315853324806392278460096280463373275851645769902298690997162469666564853054254612844098540834889878454377239614414367686378418234726544596313707593209549015455573112041885682122890274645705050482534730852879714578353740941920307620679042066498467714672802161797316840179555022120700896872253596524386220453307193298862677659369630581366135491019379846424823666501354787664694172490361345054254524686556102010009392802764592860083354587175189854312552416137881052731550192708465654399119641747773996209220460591096686703784308804652869462120889279659023759479025242817221289736295295400449794530001798672056434011609815065348216320970662525910684524323258431975123544506640140496334986573574636484642036640492632560523481639485045744729019950622626016892997548200702861721813505185166309075324949128019572007731420124199204343719946522574754592228493910888515986103042660145841154803829109765146006310599608070179239031353073492356986394976055411446620470359639763579646784474523182413615189009248409680666171536562684221590268773811784675602736200952007254645150627548448710820522504106284635436654323069553219533980079842171072837844454740595299980481347866978317540942062893852141008737314424356580719308785787460256704822249177031229735585740387030302984788721595408032656995566063641705961833628373319618199379960577707916701078411601268862626668036316877341554231451092912680101595307699010855159378835297339767757533491297078805842501008552462529011389069719167119327407640428788284910939403598779424610065970564519868593079151666496557905586063621819863643353897828832824628977335833124545643388416730766986688909777702499114736671758652728446953585910478207127765046559108093554317901020564975316568973708095518695266179524148403507339494265163361196831146310091691482076023682734943470920742593065961345380841278761359570159473931325703583606956356011805720725020728492009544432861106724038134494081169671345721709066346463385420725473144441515335210993610628741330133956137255225794029749391255730862770786542790606392844655192546015344582611204606846749393295074769918159118531256484498063070718060684144501557930039441185715829310683064247941208739277184305855882602322562803824577054506669117888960972212111296972128771382867258715012944580638077404205321937226639362313342532484210907846135969763981352136433187934221855486009198896004003744080845061132616382178647405287257420697169100863312824466055344076551505880238123144954942929796704782003068184006698486114458064220595934271609430267374729209586609330228044017035287968700194786973200833940561316700523873882952910251525658371747238806296076722867505008687723591736049021790614198520128382414101369291277976055091137078733045678098410604581407629384737181493789739693914569261849555867809953307362381819401834326062791709918256781397777235482971507137831849980171622440850734743569923478806333852226152396169344547982503376862036181828695239458992526710346933868025999790675246371008068974237827072418111147610458585598843685560592489998262652899042015386605147640683139224524070162991834921971796094087892575854236919345883073092814828280138939523922205784444522934199750266616642585370025667026576850195998303867480144429269846390562420619226741561052365634666850429869837712933421322772733934520206448477937829915035615480887939007755206194329982281991222527590291536325804565859460298774643867403734419341031719135920627591422798414041185666830120205920924255030842483615596787109022088761443509206421449759794581443952194565726158508093850388006559018959941094187175999595653063946970418320637974523313868302162723816922196531260684388505227727601467981486309948625353856374310759470795720251930797719347286103832539255686308760695799727359261169530366432110557803870271578043081567744849505045611472543482996451343932532811539481715106644731625498275032524075382145715147905126319046408423602604494666398459562836744311470768253489524906881993909477569386480409015979516698126100539355218506506642423826253245560011916746075605636781700455418302201973243008005805337850817501543102546867249306448725284956766846887647163337057895307090072647158560670758088573121777196799919977047501898100462224184151036808683211438783484761602078983573085102323554261193192083558746297074080884181182787465819405638645077535981529745962649731945415965834695613954916585799810681437662075128491961976094215575121331939025952226004212996403962875045564623246964120745085554195203561345971214913019764962998753196302859113844545838927340362382723439592070292161019491037807297052071884081015233243884031886420452786260601220377933616259896493002533377792433842021026497531873239719429948899127817385525723284762531120332526550608151577252778770037175363642621891284729937024974563007268961558064454645595620311858299632008952152704736954729839646427811210879851407529757180048932058715043066036328848476818855451457041942488411249455950532116213995361232906023050570428422588388041227569833403655748380920822567408931631234992258867255774406357321765945740209831674444698402058929080871088368548301545188603856186831372967902586663654598744437934164646449139226311898473426631261193740441151128210976782224581508728089387249432916410202179403679014590208330406654607189150736899797904210647300683022454380684822970095184277563951678243636734213566411810722179134765833564768250822168790935536700389813137050617283542491518051135877496353879398612770439362541489051801112985888426595271012529584491112179786136564777829599401224731594947623311551612710512996393362162261035939575488350475348297694411471832533800132467862001223625561228440336459664830152435843225096933451414012488330423107589324031357432731657056215239311008469027590667225671566480789237735992216285715493219536575789826572842221939491227069921611572083189479337543118427268726138817592287178094215386940326603510828814681622681916350324816801134900071007834502360272025520449977373640244163291217156123399727879950400073857944110618484664170887533024739078562693123793936922846662977778221570596998208726423502138093611115971845132398674766502682195663397214307087405487409777228807562682415372389370807882209146519846488876092631483903825228669787918509122877774873956457071010798116676402845458626398404320233151101293829350833676935128614581633731940138471847379425031902803588145475914361922351937478384562889631885275030465210818920620709814927822949606106670465262586602750675889500200568988591525444943250272034285865608780594697658034334455259049108153664351776348936402661322500300592434168920750953770603090516896957075194836780685018947424900536152399917474396778464508257606064616988210385217544035017533546260452456863606779525326481593248484016873752775896101043745014113066685771612247444440103519078068679813136419054719485673030564756524595981866906072026606257901141443494255137757084916062133172702565261542686575987757709924375332317748559347149567179468149400026587736130645547595302944498472873103804648365390120649805276258837296112622707180743509526344891861542091568150620986854021456861305478560348741535236956213930117690334399740988033506527078486076020010414931213599280705312295090769616154326769113380537133288598292888885696567328177295237410108453738428740641793522295432199184811756763050712672068570476155444901599540589537526523816954642390859816897588588682868055926868053254649800245849996374550888904072007385607582649988060163955494306214782562239688099961385740735074007212801366218284814825121468681885993373580415181675185956620594334609524732114807181236437214683944487447212013227139925581056662216134080081621802327579807149118185082872692886263417162644976233243419974691881595747194329344977448476221524549759182484220239632635221145006714925831014892877417085657305759579896887918808808903183330279421713961981975022689323016768622048189316100540134351410236938503203775307187201094432736390273762668363220686811385017520063620021733863345572970908698202417279456155941801952862412866607925785567820586939062861923592838003012716909101622369403869271883750889904511249446776619190357704103764806290298657145411217351273057716848752476517217262713763870210870512413952234477125873472902905688842371422138347386509466525944188055835215149395678135000427271206176980934235108221258307297547031650230777885861678820345898249661700841318605649120070995176935346840826010803175874790938626758665455176113517902224523707329357734906429590734975349637333671097884324515962602285245525022003683772771944597893698613749149777987517717474196319982171496720431745698072859123687113826926629451515039349209235778536130068825230721539284861482712979276219913193650903355107824381082312832111168924682042788967394212648515887176958878933480038230866171248065010802213875056777685103609301803291447974801654145511323408557736476007227318505817427535565482192915131369698819239841917599930708035765018943413540378053387683779107178275438019807758103769061260783558887919412133753080103741785667973936455680452429709977891983972670518335499318531260143417426450391960099101582988032069502659181300031042291757314047787454475793009432774411145559209056194112852034628570743138259230913179745901177562624579802120273340340803517242292043976555474304239015148786884523164581768056115104643971264505017989351401473656480531297750391626658987916343777008339755390790667074942706354654910250381601908878269684370879665609186232095560044946484589338840242715078884126561530052335545991820954354586393483358344742734964318507139821887157942790055969118967282139952226365097030219578755138334168317223189032036593994115320212226038132065821280853600759339684757322811753952534180954555360778751235624942714362362479677688051539212271410892828563718170819985065794775622110183044210798008159729603135876531058865157091958173448863163335966353181607511640303141464422680524403000937840113514155110996221357758507292779134923762151539427614971339264458234357685909514044486529496663771124497057778287936507120947871077303211015358462465516858600540693684534893351749176137751684537374016172006421515161029202946683554702343048550716249892203442989244894238094228277467322693775498804124019682747356579776828951557204485187284410636519739889651669682673193160780826950097564912294209642512346249443914977227646621199717676410962339184930060599791310985623508415103148799461700868229593242852392079995261119446210858729622031679218289611300761980313545054263521951651408627912045193741924102198665736317034279181142861824910821446223456056156377058594776913574646009972934207331080413933877676025920368822850169090326410988436225701816950328683331150259456348031463553887851796852658175073046780916958157075341951093680155407833861659896153516165895202938915790065781199596000179733256078514045023707690782740467413180403196284963950836297271028109067392939220217185983030169033168775402642460215223860133327468507960165717995775046527472048954155967954089328379468306901315807058704168735990074575724683673829827918346251265640887362762516794588370315407542109659165333476327283067693576035523109566724644666585405621488516701515891156196653284102163501574609907632503761891609761958984573302054464438020536231042058903614058666632903861372822973542273743070339222121881107819935349024815124128366069749633066582728998040588026074052356412253534370348796354020697177080078362394242288521865064186615497438760780216130958522781872147996462345518606639139034376573675240667131035345708932433165221402673593330025447630962287254768779350644832669836929724909800723605807035913449708417947374809438760288481782479559556723785916068947676303356553303254434579635979255133257831788532745589677219059972360546421447941949776774999354954309895501040767649577122539230809627685548303260892898165929854401027397994895721917563200686318517704607123228871567191488258833272160529474820858174068667482238595923204983629278353766659176226855657053867195714458021754406028535587845729592464613366849935965673122090909819358929294840191296143430322358219473864538832048160400287090347925474242422558064123375552812818314039255830241556891980307216095038345986070233692901844258163943750207628895915527884815425434401393401397494527616233529846416888246252015845944484426406568251920006729051369988714928548050934891415298121376290944706215750225797655391304991313686022326643725290140740856807731752090707537459223284051396563492150589686068896097994092783371427547527042463508786311306894452144668984760943871278303996602008303810555116411544679459588294674282192076110791484921915115671530521437464530036518650562845698890809414853537731672082031539282483704513851222558023759188267546122095502562013837845228717840538061626868407147560074674431100015557311631471373863946842621506077315383920621942176274759469108053270848456331171395091073885062701879409470282920366407192348328282545951294362064122541460039554566901375752696576301640585619539417996912248999174480111768070628327562390199264050940873508161483713498123123830802013425052692317688290874662623733150833693807324753342964739950145632792976527701715311983439981316775333595896994307354367264313069613765514154949785406334924928542258895969309635093174500604193838079417314056161046677670474929567805451150852794454069344022570980899979916929448604733016337912179314971770261639587452904295079485807033077786953135064629473122050864165850369410887499687392218612045710282510351991500096619836037504475840560356431414762003768680062399130529370548672967324339433703189844707274667958503486344875854866514216481886655975020404104451005491980148479304388694196768493464736751942481064199773894884912236949639715055392933608868450942149104083634370060359974635237818055131137858949641026813327930255130206090932006298909225687541965398481717422846481509773332041740859545212564096039577360479089689734215292604037053262208366064591144349128102373714644564105994356804588945874445734205087534945902286861465310941462520264632796792282080939748738335143223627258688449461012446815612110672871002508624872881511384777562637625227572302962506337878165677195366332001111402516925626466713512660016768914021150604887003798048700355068807662449928408415226470094780490907779626880346430769704760994566254919691081253505847880254575260781161122850058834911526981864199016557686095042168087169015279234501344826150183070619976111602531640031880826331923026455922782651647880632725290432237895947566187071159860376088469852685465140269189666371461605631389369216100405419278814777483881532864703210954502767714775222120373343054708915120424805891664917731203088455322203489109069272834081614389257282006241565259634749324339442580580875761287777574941648289644247404158605374681654157867396244045164160217072665874983304118076887281678113488515518448672929859827992230036047581260200305634364971708057148846836402757339473122237904545758271883084084036657146508074634273353249492549082967122417696740276166380610532424777146494967698618016785167587155012613359632841626302925155754857501975614994807464349545802467708721203096821652584747382353490594775534013796300768160188366332790806920678992148782595194269970850084521296734180583278407113207227025509671682163707221401588468023559732696168866893218711725665757434514703353599832799194548664655397532378655977235836486205911364200790941853757011098294788526014807169206638557997793928973806476834363495425383114315777407575713577802400547991551230319287159856774623386915852372332783188686594094437535608413424124920368055770593444536892379955742455787040381699297851458190657531570521407841275408734414009846455694198370462141488835108052398297552246526988048514049839934468452846480606537005583930569772466981180513486592697826307121038972071538791807977425762299941627733933131683090574136928268625225721751605271444236070656031888894581857493632050988279253037046042681094515110467979490798225327566052869480990129782939571051391290923439959438217722343901913733914529970142005199115435270562410278184311412891595969834476411683708788942183031686852754402620401711581443998402654317034436724146357039618330446638655247546388785383810616465766488625111374615420232237867691105392440288620508411526005483553079774750702890596805411756136377008080682432352598695735787149662796894324008901776041997968020693500782046461109549754924579325719042475355479187029008001704479909046933793657362865890426396986171192752467284224912702743131079659582699601021796432988005754454233226822466679496247738602137712648117001800789422768134529353059545400494900234866402919137205853780173514845349237857137722481844800821253269275866751455038813279233873175925886837016637984968445343837472281879967670385750859780507524286327447299763294653185412138123335539679174418698118980311258514150322559986024728989090099543438993943187317003478319900227820023726497135297964333298137148476245919706610197675991831911927090326610464353415009485909961496591127402416132006915592016935212716598775953177924167951346662224010180989966605266467046898511268466097745766440781322858150172071466209094855917673472818293268626386614125808281865020803862630084879927914795775181008359606412315433645488244784916855331176962671524277932217666241882719604496380940280676094618247075564026084905888643633710323298543832652409024148151710980146030389475843603515673650788727887153221398453451577430502109138021107157002574142540639638076656632742663326649982641773874877003353481051379728486493200797707346221884914167644787771361635671132409157991291350863689776137744883679091299315675882483500415149824475532846725300663167414481533305619631285917441341978782033178456068691704702365218751776926738861518328625397542412927641203537884940835854179470107919199298900815070372050172548852801337223330758017892285451464006233982757477400405706654686440732058884685170819505566945187523162218250033677817168930299006745065795710558625250890838615029821285416220126224682133699828154669450176536051890516039367031087587785638161988702971833291704041543988285490186883577104407192381467613320627813554784141674693197329224024452053441661550885165321962305439044797192838938879361316008496721029441531952583595318015203504440283966935765322833638681531415881496339259183391402150558931450370711894318722328011221801717583277194573788366917970840456717835258701587593844318154862603353017056397699771452991685614400338768456198860303079226818433243299850252545112733120980461816980223017041210249823217671044517357637190312111134669104992408220041751668235204448287493424467472628334900426590156370062385843189139803299916822761184254006444021838873722822679014906895430084990394613327405324789832853280841661417518429397587930190793678840191107918465741266452037701369375763003105750501110086683731096311526815122915686967066456817422590761976296631832888175742070103547573416529620928236053824445533937555613310204108475401121020179130436611594418357367684962235337248843469685607224461329375143526242257770306054022192164819938988452304976793570361188649781836152744756332261900000022576619387803237899552760702701521302209474164525609077024023096019972790230595689280063365997102175915499101958702438434374105123937883726857623989307476380248496180949738754611363976212369652154272870525872608348377853117821131381171284528894163016775808634994271934497757263517589360882168416811186960617161903526075520786661931685935287895336666674294339907077666526065441533594674832463013756037165671477433157058830990370731617045756329526278793759630141099690441176534515720183884930441555920588633335277210076569517319666421714305132794110620766525126339792440299626812935263063458765613235089468431372591865328138264595666291803692256807738224043972743366852344617745483058939285150536520048729201139688754647256558823199827133159963166796179299973520684277174996972924463410127298236866591306848954355261850800135644080404240313574915937256917770773021486151873574190358579648160111176458255219017670752265422572136980068201896427289677977956884469457852057050979796800574440932407703990193897972842190659067243986157339190126905588086650820986895766291663387589311746158083662887341369991992269951799786630491579721763766843916227567498395671525807598356146219241115109576664880059539077883272915672772527487627709379460264646342147310487047907403827136929906080326941434149790434202690480202983037019153247036530177812025400195734087424784252371946004464809452820736654956250031906999604844610598886052222972067677699114186316081604994223882116739018576017380889697427055974788795800772361304078959178316097429070587984529024986161063240343277022597690720625389635096352804349414246519366327685298736087261578502376850115064376434801098957227584926426232160719402484065375573822246394241535396499631369862877466983491021141095664771594471162145060876096284456880270055006140517816992098190059362568031391917837496350566558561458892468169247559358702137271487973180269806520270727967265785144696267103424800254357929960798215219619237435764262489439431613420657042970117334854647169401275827816987138766089445776699388957267321035496284834763876463332708581831080864249012603084688614305438419158043783246286042808994762971224708292181937059490806456119306279633911705920554256404964431063435207124920652366331154564335498854657596159215015704035837633489172646096167019033793915946389893856965136610558345658125613529562425661787918468522700231406201959618330361039218026036847093021562814632442417847731383102854312049751226752990514354310652227723048196493431058743229912998762052415957714641794537594983738106397307293734063986495299410205917946896287288806526147257104940047862307768411432111318014329650996178395970607692982138675255309442960575044896104973830615089276692558598690703798259992509647696148762455205568266419797661380940516974388428441306494966458412042325348660750244081882556438674490180709144243418601822783858731245078668284022209784512472172101379978365295140011124200557931930609960710968460577517183632948792341014839769989860476413764545741897823856357416165935414155101537441523497878792030754233952220316733507061271692534283464593679160871649665446557044001170729892920849147046264361512853899836843066333477063252597103984118627940292273196834294031446110372102405839941821372148984724378221785817790380913206597620669266770635990585451232213674978015967988094849005600923008640908580019904344245796392167923071855428101728751651593973018135347053567828449658058792327805586880046888517063219462600686097079208278153266278990310966019993747082533609165208666192791636245859168638475487858878004710824005759497401815459180929735904096115438965056191036980144906643151911061380585876605284622006325627923214389836193332548975906249911866674054395395543070200280880800005706445565857100408550934176585932352553743432045721778903325123385881882630864532869760770543746924315447151567353544980153933163156798705074726319783685748707088236782509118366627130194545164948326091213312772936717552928367429008479800288928880241967108407049975467577139708061230105498764759724134727168925971531289192467791436447301388669376953789139190227943284830812558582654005179547076855183234698683515220512127036240771962690422881944159272458987207343558617259021491074090029671695502540255898613270069894986049173646105353357102137499200490781948289024379896089239304677868037841650267588995033240252980705633423932784459406636309748702348186159791503199086051552780285218992677517856874044272855759917101908072777479834394118775654527872335404453521567818790207096766270808575009905923027854459674214591527647953260327867349470535335913428451636041183950674055509708292478683544087536654721115612114369277336698978562577164429118397920336297408713334167420217178385731413378245726105265157440823521123187441909154541149190687278860921903441331805312048690898216912151511683954115897407525577616553776801598596937056050026591963215079514270963387012794455784366768188583078763598112554667515937113867145234259574974432262523552986724263856212350788696780827927045573999318013933646510717554252363142157509450737097275481707588075603726071796192399829969215579627071217782358241265796295678622339287743876337372624134590388414495082656851610454214785091847779308343062661527649679903179060491309349687429020972228434685199443699153639101292152484320830475534867967668473732002499602090464516316513303412127142835233788769946488528300975052092716947475875199973501727740320058562851751208238277105541270808186314113329688232157711304061043430452973059152469750195277300738548972682084684118918225362182109320182472204545248954155393698711773848649424550374004050045825953871799494391336723468280048882576468419917705261274581870955988040362791874558138960737672729421782535692294683498848885053625043524837745558923379080888081005200543280648673019912414582230143523756855799368653833067861258217186809167852797383489785310155235387919210920430676335921077266961405990981171768855674969610781249627006880579707642107506419699286663991214518008412957004209206807963911835229583313126327271239881965202684047396337451257648710747491288680304443891136474850463631487541303619346692619477118913947104366730162015751813609966400554172937288477161235128749096804247971795231678631949234000185284021966294092711437277068910987145685409981300121336792140504399762897290669550377180211301897568134995775596174760528738762718553718467047992104791828711544512852802703349227554323267232858382925812330962736831492413086558450036006786026519629474725706364011228904731295985795483018186157588234211902844219861468931748702087464668393471752054558651757550618414148196510184856956193611653877284510151048152614451945950522276768460774613366300852062399985678716466957127879386508711666392902171703718123082084973610712475549356418513832949155573636239992937376279874256072761170719867465911664934606061408543326897871261782617275434773148053942100929265995064661254300035959859825054947053544332173515189907789478078210539750331868513949226532002007684882802106585362182977703217767121555510034848172175258462223493499074819430873236066872136936102716530230686035558538055629071644772534904179841221400848832046180830133152124191591689793269469449004536193680305211590598136626311573141045606111439917353142312566107702293450524251569019631579307252748522909993622751070453441866519257283890305489398201682582208902904313815035899020361245544542819197809615105315805589658903470047238226965027557538418894171140433945661459082296274470501176386371825932472525967228323440183676114975428280132118307197946682632023399827838856674695171255882100746554684938381711092051432577569395982798573107640525196955298223072545173866004090676955311103647219177289255048249436222507734993580394599342940843004060508521429882133216817733834485817338388649446927983291336069336544337138215625429644689318090323315996370928605176517675326293145775625878595468117206410961743767410446252145080263982093941760065072078232706320173788748268966284369057984135873796908314587684786137976165775032660833210209865196163022096884261653060131819025697926354619996155414279586351671993365285624339939655503964931631501950150028735797963529740695267415008318559332904105536180077829548878111473611064478009871759976295748724244619136560069449512256229201006331110160863273893695118280830845716679476706555191602164437594853637037630711543493414603739025910646771538853985806767911177758264999833513050246663304576100770119996064797920553598896700379662928716580945352115770265942424540731457132991676103419438544823739043726652634419896587105400036965171198246757763505442112166781746152398822801555148417269458741441187833471465642000236562453824837435783003976690835456202020090964555461261398066282479957719519234004882531958668534143424302994774788954836699952240128598943428636511400115021269161033379407534308129240175935884970681902632110871941612989397228119638369692925586402291520321090456262580034309365887688151159994358452842236327707138806856164986531806514189711380735050538368416022399147232567670861568234701872955777190153707121237987952545187452902132799625222078806828612711625366619268686529156032459314060110069021506680202560886371035271298494290712565000607103045060694324609730304505201752320301087119666098967632241249360132327104758055898567225162001105393591305904159798043157526493863934820360311407247843207316764222906683560394004259310344411736628996478551127171625430750505317039489085330212089883190224865542255718319371741061860395214109226248325912965416462596456987291554384885627142353137708650589382393441283255090297533310157744452039242334729513775687723341275812558047316812989741033137599849809083971713872805093896571289667188087665025902112604469090109535936565137631834954208235424214189456179163017591392083767646825290599023475672045794968484484528137154666270304624875398269401182693586769087310536462547877529736140790674097718038193137783135824941715173646643562877022496345582577049115193183486239332384162354367863571062408995518387060697960760713629467604050793589264573506157031059235061863402757606764143354015609674726239803000147729704589172419554026545150383942642236314081860537574677531910418845438994044769049002114483204120299954665652240326917167819239054336622098746561162018625499959135221695037909335802013048475343167982961323592784304808120084724103103434348672228563259911425374940338880687698875439950513778229930727613714090542441569902068409549688169993440569127375531292556457134358497935370802697207977352160002366791653076015908009761643293886249133895953076440367119580181749821960034374425000355209021984668338435749061207667921814291976693325250516662684821205298341773295383520990654878126333989642354789998243885574621654985251935838104750419190348419261465266004613970062451350382849792968699115830297854826840999971207677849320814189368975149791669375703703292262096093229952152016867599618026631450615268002303962032574747644263736855315585562645278977006253713491900898123987534226931206391691474293880647380907361763284740100027444409718717663746278471274889796508789142173335477722612435808878312984731353556886189845226789784433431153953483038156511105695273218371576066787740580218354246057374388203208973967854904791609994800564401354176292464865555656477263998880521118673381693241848506427965614007355813609186190719336821229330401751688278758498559530122107291390040618287022055573155894017106212806033630723677184527800363196209986711803056548453305676819850708048541360716107666236857363662991848918305207243335292230224166861866843825635694153752150184161245126824121203213277536775506303237771050172614194197135524182440427998650641995435135622913144340422476146118442345571912290157725573810738658763168578018250739588127433329727479544043858156921643878454100021674420723681440691329577319457304855257026431177671201609098542352074513527580964644211781783961906577255400917882479147291997850057067114495986646330054092965302496588945527185635810656012043426150413198048509284218216972320237739631231858261006028466155176966415468914141194063755535887903867721764147149980968296229020847868963249685141999262064394216358603845154722619297503222280804369176985259991975085009610523650997705849560839808126205002734203336670326782586231834295463162461419573104585356033547595795550240224940543064852096235120856699009732166094048473145333648579380111054702963018647966327102652875984065884734818410757378179187608329573702158828974289546038533787963805390350966376953716587761395450913036751481090681657180309923275424316019333514447016034714390267063054013562206534269888471083577599198081914927138521715616307219166141270589609367611373478673990027389966145895496449282508462211459720229005713919746365680284591484138307505586872879875867758048977704211676163355890368819464854305797267845402517303221871090623624497355124036010298242510337257654370205880574714798973003615002837881104450336070492519569880914574845631365104537288583509270271873885762515786268490918170271449366428029955345887331945827276485148196829972552281257529112737412488386044681764832019940008698161939487847149864603660679346258698114046297456456257859252349469708216278528978755695970032176451317889118660657375731488446056337566589814722573945259203637895050997126935142267392115055463646882651198910501940910136617169370379150680258150664358744775569922263925613163208357618305936237460208026867389540676817956428130280675245021496267570492060271583946901824354068313276317224644975488687050723867762673143949117114710895341488941010423436572871578014834764161033711965517034222761824889166302730765975113121948032355777426337710404642666833899426772090245120216016564529467665854718772320914787559621637065936427784297662841605911344279578601384171265067929363336601062664834100739762584209726466803163324116658313999011368597955243298490814223715585775272505074250913936038966224641284095795538028736473157567479739025809814863020805947520970498042056893791654297256606164237451479472328219383382708903221723664766131774989141411936336773740703968840665880553645320496209563182065431022994153615749989457840484969371855836313367710964881159166238674420118196929459065056172134036662329440955920799644583981764409389163439325861054403648365441910318959619616160289098189222204773878687129239487055827889822498503302243391621189942794910184697119055079001627650977970874446685777506773047040516849934124673414547474308484747917735394716571682363987134822938270485588980778330813750959599978424749825172678639593746940671962455943902672131756863939396407120542961098615042846973448153538206281004221921542322586177144648932419784145571762754921868707352264524091497101043189510581945551724087257805999399418151196048926570131912138852658377928258650878483860017151324672171212807634178246038496696091340118043968520077910775544914830011728461086202546748822501640399988286641582906128758195254751143759110871049795365311140630722897633873339393137455596384431346472915069067682322569612131602718426501924602659470748702335490824324382611451473030369127537407442296413573036894867759082591763965980073282093524602328538538132713116417776085035778897249973359027739638293018707145719685891740952334571807153506047822277619122145354698004288232361867294884718267749763670239094820896684840795579527046145458306543505572075700880276076523659756415236684342366176195096315371817078708597297309680154771484879418478557145084014459728554896276037954185946685906626936147230548384839028269357973852570321623546047809847730723156977749788189691163534444934257066401977034742246131319188826772877237231043798539961069753111935400919398165866904917862676972754550655304241230879961328547038299941368613078655232572524174334433171346766393865292037950810196319715092988229895481431018299901183255510730431826326544499016558342073157641603957704023543582323298693468791170284339018988084281770709989758442877212621872637687508236528013874201559491350108512380320150225333011295309254897485422496898455896190886552402538606247216924852397221858941497695162144366192981407548062969133941377765037893740794795282413793870840603536511255754325022749959393466503204282759515477045537845386781544548344681097407358679120336701854579691360068214745275034422367632690904634948023201159161046181852050033891941089162753735886261926389170407703834906321106041685135103675842324712175337706734822785291072202090626423740464895681454385553426823736754655461211034276616867274795584368967044836000869274364225592322097804293305515188722079387269538307833132792767598715836330817494259433517105077250141978729088252644956287723732623432941951562440221665533235121372179826901191763397598622748499356488809704355099397459268642120570132116550792039003259399141598407205327214119185964886339463939585291660886449632192064387690338361493718567123983840283064536878234228846840454970201700236277672556164838948278851627738505793671270640863208345343175229496086068955690229736799059821594375533840059324936681389283675175265614053717450660802702456849958165280712459623081756745733589474092763393144355806178503427048949796456752174229844210199896305498659355157109049492600091332978040017872077700897311407231241573847010405426158620209839998257311617988054476908730793328744125509542198506595005013797418580140301106539708225577990989319727401170353396939109840111273962239477952097424094822093397477211566154378351646180545465033351323210857069289881313608409905155760790222612337242739701623283405347322747169014992094221260287098458537180156801503165798241830431325907183330606344795809813586857071015789737574425078236331889458799229132385917668482367899630547920359551501082729252079158732696460089876783861899849035716579970286769079323559575113968799432509822635021045000260872649586123370349943293358779387825798628095481856297510266882778525308670720663881117075358224287489688965566214278918486463113861328143065682322262067988634286209868050428040336048623903222999617728462659052580686730585005966584776626825216138544833284582016936948788123022820556841518237520209496937481070071273072921970876097100241106701102633366939253309521649793216075586794033450059730379269160043171852839296644521736290124857262734565580072618271529150484846543545561649427463673780398833474690800267241473833423502737621167350608369377357131446386568216436137073375240141991526163545537996731120227199970767337748033617341031102442822396974780993177220991972157984928980193900617111220650154292155423141708457717613922027597912394496904274162539508141297242160864281434069160033423404956903493697032584113612534914918836189012093918180382647553385974260902733951135240029871040361032026277519015270613146888415466681915029154409258947713752306846988407772104615929787044264922082659549757139536860366292056928969598694089341761037454393569419390615587923600809290936446186518950791592039396198884111739110700779956615982050908936698943760175183677064700134710627948943148118911683608568514453646828457630738292893771470080112252964860202282969713419348407831367426346067845045969361277643794406815866101611557400574770138820388725456702278510201623813856569821000854233055374237248920027623192379118693946615666086309813288441358360568090608090722753532115124873834865254812572287254696348886512252487652832716154679621195743390955803286566396194735550552836093528780823075766229160252197144259904800164512425299589707068392168956336384089786922023133567735733697349501208088992727439749418465551242302744900093545053719275124817632687096060976634992070812989310972305292864336002305693991380413871126680022249026463559702638640476312766603297821696640976478420158136821959024698467739820925846011814825979494636956718458890088449107441415524594993673080302697513467256405329241563134146378341105336187485130791191099904897381652858070273656753860738180601532015850949837105156421981270138069710669397179744208438381571993220123182460138289818446766177124749046508078524743382501410245137842431206295343387748940749715975133162752099853673679840715185793289624292759472589906388660931122277899468982370113838925207159409411348166336342448314069178360621968721928223264780879776068533522527526254314187878652777923491215981668374422514420828239764398699559043204532949350815784334049604157911997152902583943030007334679249821829191427048816150853317305076777237256139585800100704165909576296415549665605682366048506912147713620294833069546367240762929567138975943184387386859853269437155404276995378722761192352725253144746427367035485237481389585908248774364574126165074696567048305725774562294134042607235841213215983246987232894677642264807641000002392679850588996497020478615882026490176393587189528777860690064097752164283642934645937868429556441192568977291336769519290976409291268786936807456419597879247221450010966671388527297513073130453134217690217731284107700508863634581874547821819330236070894102117496210200367487417647902658270069727040570974302995857539092194510455840957940378587899116258577462407742705586576376750458837466334942225194034011482746162202671095536986064333335760097820573524690066678853906712099642250288296722511026439759066237523599266220059345323612658986663462725817028003576390209191440153049376481573413700084796254362035208965914682912012240595301544849305843587164816464635188653359127381284811605827210548316417731368138173705377385605556952938478634321949445590823912334227591903207001006245177867650301762672993838091778539321124243232417770066488467594747857870891561321110949125197974283583164442708053609958540716610788779998768132817385931940915685080885856844491059592233531216436682005014134928279439681451067401937004019050018304105672705658768432828947868126751876240811449277889430817879960459243949082881316444170533709978194274204653513079346674197980427996204338017042926609043000515480154296653283736901025756660605967780611708692205547974983727789940368035172947271934460579572180554235796092485094257094210555479020292012454203784099596468799957475129070450389770314505162523435589844724962957663458864897892540295786081016178756489499649309989630601266652625953118188395816173599437098241683310221354458147359933774978297257037198425881759384733926425057773307437092383515154064012706144458240238348301715434845544878815533602133719957879409994067813543208779849908726557576343693976071752797047024503841644010896992144293881911658229399068193224655824715311168255001834666418403435644573883526412825054458660694784802333602214882559693612712536857336795715651524476736912572735430341491583900511346286961894194435638286060821437179071924116946462335470359928396171065670513594639043453898269077224046900972875563645859014322697502096917239096049319217823259608889963259943925727975681656073081017439718386109461661313838747540812567413995937104680181705415211692744499906163995587410863618573615501655937911354039492721681052083633608723402404219862762226667641070650558660244002362456420092535277072207186320473414418089408706696409576110415646444043319603560797608463943952269245095769021287486226169612959980208715169542386640250779413967579341195913666011716674633821333987151579529502651709250788876628598915719648916080979307512075670249431061945925036322357386377460582464193390346394629628976759547704107167891773118474452673442838254088441290683630672114654271421027355882774286429903145697370615783036386978781732241348360390188282761122444101833889182212257024733946866636400598075334447839171159969552477787461914630114381407561153373392321705294599443105407899873807908022504280574558357715653862636269904198420222043898082359851032552948080724001244289432528954980019820955187565545258551522904731101400038127282483541695846101861521998855403325242311537886323018797854601890001665761448541326592336153020291652820734207567834193829231763513721683896690049020593492523642350574563969504687475197410101250374919946668135913479088661147600335033508876467879072937011913240829018856565849236323440628320545765893097449526069505728064438090240350188727905782719346989479003923590207225561063915725800971788977990862247759711466332109816835233697686626329516280486786360650638635074558006806445709960467423572472177694689531125261999866740520181856483500105510343536955211369834592988060820105206208357177659342979495474989209907503150487471630675889165055557114563823469348611296400463540714178931330552492387408586364517378745563111288930159822793407380952057464267711134358643595761243323191596811469626814504372524045683466858387685764991123046082356745072996508061636621298444444613994572384955182548607854682073789306889922613852595637591984371228767153087643424472468088339844571895965118649554685333211358458006838924166822743317790300034757757582176608281334034928984998988774227774315505187930055093399208944193501464767119940263087053005497283763947007312209985234342687622665260973537458576126350467455143025382028746954533466035329352742364035638745372036885985947552728406232409048068010312637962963300201204103165759729969578501676948845322999457885780090256783415208812646380296472612792053865382228724006066499476271683010327446538914406729249932362703351434059395112966681060874699647266575446591002745125514863041368146800058510211459023203126693006899504495995591457954498989133744499300534093516699451934630352794220186091515503298199270340524005004110793372671307755134067383007501016166084794273656236986736302645677127390851750615850805394198053648252284124228826635546700595592525704689167509811602865034617723511831222950710008597638881871263573346779874240340239748261619136611762547345082930375137886684190174739941768704887754885321928687848920482073998444252964504400175858101825078063582807368859424951296991639723420989714472281031382732271557866110812986443923397370346788879045734141722656904638255661181354208701993736999876209044311545488013944986938812371914111331727103286941011306729764974771811417642582842307647993610457153509125308367515940946783352706747385487405156628248789176382052772416332867030860485421009575636184121552776787868393290418379222725723109443118950248809127043248128060758996998550344416858473714283470938921840520938757634522127906949566488279458027849747189059485656462675524422363989698065739162195327887839422478886984790147834670948793559179504647368062885429035040950760400578705945446726003587261426790494906851937566466021671890192293617934653864482490460894063952151581723687974527957586009025050095908661013173949463987673213846221036734362111048077044280095659089087752329606323069731652383029481690991850591957341397700459650501232274406420437721717269929354882440562478264844017129957470830682589772270807011393321366606315349865026962974053590413507357899661250565668368979645075817680104599026791792657580849358211161614291121633171718008644977441471586553053683178810055791648278851330388910264814656223689573260609420184806713893369426545688594790935885888417836898709099860737459911416409042359557594129471692685626991862249434705549252526139819561951055354298445454690452722438251452204858822028891658344139702785736567776125578210024019427470504505564594394348829160282343128604816656909802386513001876841378213341588143937488103703728305961152774441660047366921344763865520754136597269933755041080781865878759876967186093514346182477046005030040598808439978463546383597158551065003713708485562775163583312112903522264545625882890623393300370480129402648837839869549605264651150977963148276298255099110026353127748571929742257283984672843522232749716624672472085255719464645149555830187802786410710872154538301401473500671945560459112375919690433853282487544117699853925119684757105924006988405572263893962577040374346600841154116894507381855866095773391237323462488079151353750729914734042956299504275326353643246172778444556814152690391162916349046004062494164617804337044845000626541207093923108204818392734461189149801673117206867401226979246886717202158805281677650980165739839818575192686627603575672339831355764296878809210849075210939862074948507114080247822692968617339369056159551609133707026624759180074110447513238832130224201132703466423014206844431209616266819597276203614466519721827232369825506623472183676931109799786108422664709072480625855786942107005832090860690473283079703532374975411790502349846503275685112089063122420996414389007454295190623895798852811715324029786224742536721886684013468713077054898652958886750318354181454019712599908865795243395884857859490703201913023507215536041343447029090019093557140482295962834465261560207508127116827375915658681841817939677199244130977776828290057926259565166033599033380668231894206766846068071695803806049418983560599630871914937459833142455159063197424193334495645477178415501321514327943384894173556701520110259892943843922552516945006198948247709024334204057116939240426235598029320480798692079026279830628913053611580583270406818763039665566088665191335190240674579527170776096612008300106876462256638244501800537916354769140347230429815291100343478344389623677317325603724373792009419979323732575617974356602039777342430187535084046650290829046937225654582883195748393119669767265523824747984122120505268145346649807731009855792389690559111806877359660798508270033007330348859236203297476604000443922987408602746639497846361631484235049719750883388829254015964094527377663442795535203970525860299170982490308468732401094672254194612782374265163861337130116131856751621187833660698897230718392263462485697024156814315978125783261357671741413395991759139076474292633566128343432140773589152044556324448086547561627350269512346660630567993556566147138046220083714368410567327966015286862656334135074502186427011153636960833641925122126524990080168396140813030065128381289152748755288920118382463693851163334043249561613109392162676852736707255423446031226222454975838616618960065062709694852849198755187533768371868718492173565597196375270029329531945623637020206190127020098029796994314775447534019355743204315939128699703295958262589742821107617076407198008289391827958740058555414302773437554534929852856546740474330636174318597367181390375789101327552396407093803042998518139031099122507310003923712950607454589584492759257445408201179994530064545320391738085297585975406472161104625557230421254389860127895802647580952843383733435200096658930974840456257820484167239145332118312399205512060016812462944584849041555316984168779734972229215906111213446700815744192401383482883983708753710819307653314506025506205744201610558432623412162530242554874320734655099571564771336145546323468675980440815775986313381650660121888421616643465322965173498085089703191849375537034811152260069001518802407408658298451688621401946555876114224521126091943575101638324878365620233365685139816878946443702077238422972470563232951730724145662261321341580723961074925915696735098722392104344057916567121795708200127034875876101012733401940651292615401699248435930712183374036371159454518009664414459430716572832389440519657430571664183762744867758675736586633455709711379230094457227840930058914043182541885720605660976177372962177352682690476611061500486538379172493618235562136931644574604410613127853150359979818247374524139821221896355372623627579369809922655038780121050869374444420162362213163709673200215029533608115818957335751219248732251769337821776741784582328179474027522222104376009001839647666471869987423053918263111409270409957789696116297647957789073119858857085746557739762500562168243056829511045323201227772028238594709211987623021579839861610573716868958510269378921928097673423384609093726438833325097772581123902211083954676527368690759288859265105307114165392201671312271780239947820537580590715569070619901765261873329758546304042209027214609840761144276696924736920436184583776435933241857786456054894956276985508160686735759110700375334022304383162755178069132089343847578448231538623039343425372106700165452252570468512000101783701121493957114575374758185589433680729557692578883828601893779186382997003524444575525197866834972080914286660918899077934064219275449806532597555989840894446328979024135508314796397025824363733210617498473680658264735866102283623398062314543082002932432619697629144809566410140782346749909893787094665102648832558990151162025590330173224406101746460169456385213815926229706864488333189947224228088386145228637748717724171628726347254613280283070678455476066533588476924703182990553022927986229198187564504542594200093008915567394911387153844257942797562851208465234611697805924592815449569269052033103102561154723335105071876630208918305882227518372980237706427009757703749523328625321959200237770353473988279736705998670878972224988160025945540919359435511321715941857827100077295886667991799030510516502229265807079262960431874554304388582597055224720625463811684264275879434281799932689072964112688629800039269028658578056052480838358200138208031355991790329853972410880625657142374457249637059988390022249053565723540793298094830454442604908283901997311942171571005505423402009229748859775381408882458516451062552193130546022217157600340706555063160878852456286832897496885996509584301998707724163337777167209012302908127148547246334652689749435663844351128864156087306237025108841014865306236234005672559173033928400663298423919343807733347315037342607743765589513858425754270453712361139255996052151519572358587616088071699609670951887781495236543393668045654601464408973413630487991995470411578694570957060913243792961692724153871636762774696089234083564777783705931397651984704744222844223305771044884828634217783331725005797027057006161416718319757728118263148951745599602730954859128940593241552733068406841930327653123141085336259850594643845065307533226137635673945294813951945963917526202440319937719573387968996921850419021804246798849782039821195460286272725548619575058430451247996943412543708480927022242590119100036129598899020897011159415034652512616504781686252716369851954769299189705578058086613762122827506969433508745527160265443685023365539688143707363233212039418524875202827138409325852465917961180354004075418327939808199169175467966975732917407485473665437338509227843259713130227867700695604370800816199239344246251786936830309178774333905824696337870368714892515588881154684491224855731055650058138008976212716429182249061669918515979053258629606395230710146469160276385893751921057251782009939107845921371177332538187596771979630906730372784036058753457066403265380988762178426757379682653899259295448198869243769839318725408905822583479105064095371177797420795940618557202729380937111997197261087914846511936822354957482566219985313620543987212879288307795836974644834611218420126763776942262698454360866547073401551514571289391411884904079824870998017584986463155764908539358239504040263685488529511969290561033449294772793578665465070557507409539391142129642475365021440356838362671883460731368578961946645759223695987974209271459796634113648519022995267583496966691408762922326694726464054312495079518355136921756537428451650041544758038011358542328646840606605210707031605313331542770895673831420886409020937172218808547313241290054308691127421656160064142884002580692201585543858207050616047619401005809554254619087634143549261558195724405315634326727410580705000790563318262836187088711651238826439127475865731614351560613146473090790704054068140519385338416620361889000347928814678047259809062077595938096755176086914362796482790397578574670911647379200969547451617168214746990135656854126540789061505903096452539809624729837768204418667819912186317678154457029471311897655974488507525443783877406222268317697639801587554279050738318776147285440593126758071816442599246244021148904777796098615386419370256579192432413507270798841590590381173116929235106650567057067296139819500750832480232014161156817783716922812370224769151174438872379126815137372663032970078543827948017741015409638279718508164419459835800901958335784174915216201060986059705935868084747713485294380939130750598432668651348343438672246309598700947956778054939606241210574357725169977395011855390168688827248513605007021784124333971689748001214787795877655658659591963855685817355168531779350278909016071761692254570733516457939660527628937399400293985346171351662827041932910191138984369429331685141314503396774471969380223810404298905135006294295882665680433923033218737524710440498740270296680414766586386887245284794666397822083567991871727044465611378824457865684784031525168680108670289623598971847834209891642050342210239925444488718410081627343114191524501348194461910918790203153429104342246686527906427906521871188779749721956146548693902467608733137936254098964048141885055956702677136939116698098021937928656797233701193187197983524377091835171563379927597961181399609736376169322573271220467315106118125436447151161250570013109583636238090842077814817232263675453698655333708138248846727470421830510920124396972737398148508278913442138391907735157817379382867027751150362870197649231665420254342622241837780082278275031083376254396872848544268795332757099499747880848859825862473298733628734895955976592851667332716102605898986046631321242743962426044507956738270042596387185843521465916233023043062444795514993604210155279524886765946101479973086986266290869007480692196599965211049236781038709549922938903781233163975109742848835590871566321369200242829446923290413507157827191478753720909989972859083018133986926779900569472799639949099265409371494447276451252347537009406268563342016342632526147923013506509479716424164579201881666492626425900634536856474494065958860902434877992161067093806796895718788427988610896798980329870997371939098699217209542145962509809673841584612183569834095329930623865212408263627291193062716832289574552832729717574934179494748269717506969034437462830086544335488332429868813926326193052881089054966543066415624190579822660762951653693503834702192952489090865833919174975368640920340724442839950328991820446638869214208076001688599527642930693507267166300246760174130697093977274976890118567146345769764616434372442263994347563013827226044316325567239335075303740375772168158889926164138070779089619229468728375273886582540671889936874498785143553179130854410815408539414600311438197869158931981408853925032471673923454942843722544171187454501105193059589652478246092136251961266834956579159270550381258726771894313559287479451805768365775281360822968045823586783196634995842273362609222943951955457941867873306025142478427626755995995977153492868901973380498564366506145896281819823055536121504433047780564897703443812150707518959272463253204506179211967335990013142339897943521235710087718786386668167706761326657154317908584386613147480589636740600586414986986199988580532816012813896697428422421759362376561177995331635620076932636274841560222085642870924530657138410901140551681427307428766735742460824571326097875427058326512870548896266881892834001021742850640793296084945964196866992725891612909704280640334414918045695180146244249614910306950768970138991999662869227630744145742539943009791992511050802379886039095913151240005824060679025647066669202106721975936554054133340532252158367775626833381752705578723689104729270119286290207404282105769836195449963191939679089143208364159048855420006730586225978620581805540788103684762127921404379806452992586828499169258334568914196564621570397037968304255320526564384538364109974450020007315562266453544374684651376675962437861768762829271883670028725781770291670955828986161944261335874178013413232014106086650382585244353614159430186048696738730520062118221408245499226060569510835088709617793891106998475719137928842290907700908645555628914453809962936092024216802386130651685402866701210263885087389963186161141369674653530097382530256404710196758478756965964764573293575249677876031626978060726318014144230213976634931651519197845050030960529387293085288497552592717740812380279351458168927320780197264619601299238719991798671893785494791335042059028919045071357727699037652445900052297680755380191159524774138489000938239172978532801178182203384248388791410200520781477783426609049329437113678009650530698419613651873603969316036244497617823233677988995422224897737367380081903623101442437859211852557348082444606653079040744820221650474490287667242317671095049174136640382596205322171483098630676956342106253787341742282529826542327216784816606148081969143467954069452479362958706635718607399557808981773690279710924122530337137064522521307284726279839179943595215699995763177378849113534170690316177671937321413243297235080677971193721621286184247084994553311907020665080058728763176189662144535293186869777599012562328142882483373785232703060483093844064479963939728234158919515125812087588200042489546452269690506253336243677932593271178275079407603973422774272251109407139530486144554424921507395191361909763411962525174008482521314838845772853283330941891531942917391499190655731266494932248812618876133615528175668381508930203245050990302372844786665490981219791800380660200207969188363347813005428843190724372534729172083367749597980934174121283169306728347197790683206546164370117101860757190136569094551007223494044705791638835105465316156757335248039015160714685446646941784600455522670964282919251061869894719112582708217355968999999665047734618100929824841554929266076372631157208256629970701264628672878481158234574153057683751815245099350337263086207172931866644851791669169640380652217621804927698914374641862203282385671982451596194166574488380047700268375748123925820588771910247565002224323235676919133262028208639851255256834917139102269937084296357905234194018091341548616086448040291022690380458286072937409474144691567961355165232607657084104763776344718365990729697402634380788372141807867091239238073149843407649001270427906308956630317175526478128263704916781356120329458420194331578021317498806973849847765466722242029964555517854728261686519699991017258918947454344125447559206332378277060496917160075432728559261183511173685534093225805980977644126786636645178173497401711850691995508420646132404306228018758368879356980533531137744599409399721585598097905192771659427169181642668469485481608054969654246925774410434176075951366013803783948863911666956512146629645292462901390364453252011494389900192079182732315413265355934395504063663880143057098601765888756595134719804755432942607344601557541975978272577404834416532181560810369071948643966992876141964475742850255274930373798100994375989857901829186066646638180652814567825083522386421614511955549876542382051131610772919156668148229387516990724751671766826834038799428324443909723415610477310082674424868469164280809192302661089454794702066871632470660659149441629369706583424917942127648116006112656720969869862273973849921771043876882424557164297108020310912046512606009092961411293858227590830523189548211723071993965400149169802085059116764010717429417605026650934141110401156058435332926623183091982053112042999551697529505252805334378880964137024435403711494667968581240400385511580431356319534423370715159533358217479332405219556284587823231712875966934512376614216688938099935919006470940136721108782397672066046265053228815709449984814822784249723649205809642397737744199598333832634933132502541312620662995451199601496888909413981161578311747113722962238629857226742186160897218557450461762256394528294508347445049089939320024589222741425551451012220334417087329127763614752838307712961191624934373160532216768871972880143451041594229323662632115471395586395627435295609623452736799814550582319682423498124427323371674349670052495289191438485166458006047217167595537529560363516782217734548977328073393616578490072312541328482974267774957650159716109318139282213522036687287049519425083204546353515544818712959068158433703202930397317292838072685361906146856098793019241839560557520690963188989071047919362058390030157669409190552528094750780228275019977811635549286069259782398271667214830601377996429926321303968427920588499935042073720517890159254698486411943551098169060755443677725028673043517653424140596921040479964382342298987420123162303202372217516596709814794982826147358916795006510021767765745887913290706095721004086843741105746053468522976163871676540213753573133755528467781176723051740054032819617175973494152807050224319189182848963023302233529606730760251794595420268937088758692483637461657671733393696966886652819317120584817708541933098676844799840090070527702972629244868309822557710973295037583059120396365344110958797741684201206317539504408980897166063720396557512837485548378844590577712308455372972587073436019852336284382467783504246204711136973213069163092290719602457705550039387271093428031624730389172510645815484563306141796499018885820716777297272413602699869139459785233962880218659277304717699709994158113347449483203163450161389619107789811564741072132804121476609792912720531278001235824961386947703275989368364626723320647017713972705030961613122987198656729730155810284158835984229650042803309838627978024535477195125559638945462360327556198784890226586091073741158167438781601730340684679536790851321195964238772168842848785444183025213877108695479304128670583513393329264366469623112353326972622738652461344520519776006598884440712174303959385871734979399605440070639579558381388455085324964849883406637479025793878569613470600912697509043407895250108667181869206606039127124849308213315889096676438223432181849080922943396910025707050621196429787844610339212284470284517257520497726771207925661117033766534358409181304458461294758707937910993141271074878418594993715283572330506848975183288425985855432725425979338981947501078233506244677931309006706705317904360703034768871433384681847287940058790136559479532442603813293145328368760959801863323305265583243288896701063752672426086826614902431013265725704973376615810413327120360166533278549447131404857776571219787132550535764379392589558535081325874257139215738392557683806809626396333221129964086441619256024530746827964422050902282525111045443711946703850386928706235111613597969386103950144520512112811620260267758673640738333224541511712209159328422833677242952236230335963488066224045942554898042854342584084390825920723360507753452576785107022646603529137940662625520108170708290373095176833555879011374637199348911717693697335333911529450647617284345503226826703352304102987730505151332109320215263687073936852931634728049128893882356382818697207334385295185693135933545696159625513678010971608315579058178771313863705953103325771083184314152239468363452392698181879591893474529163562887512147196462132741736928621654355320087272163291446957557792256196657056193479629524137056085765563533576323329149657632602768650452169644116550960968160843291931284719696698316010214593937238376815859299691286527646629135038409298456843697524985631082809371680881653352977697418317856406326343203388274003730729927134826940744295133457228128437703216248986572631527718019399549250446829541654655487129646313176575122018016037658031502403248003171223951296879283708902791416040284091024198288551669641721380712476203781378806657857697330851443053799667959453180842776357446656687868285563388831659977200808040873759967687314035101825285877423028711985243022852194553834313419892928663758943757072763725389088372169558626524537874949748985066921532014506816596316039994490761157548187063336680594946265352655510418031172461507463164410630402300857794395244533935423464492618853665780278447342504480542108668517861957875805296148021516374583423278368718557802378372261177069033604683379499022483612659079559881140434315648538673927809341622015347010631556548386029661730444532899718748260701991005708928076938302270718305290414415638162910514646874977261094366498352111800961535101061818276267335965345668353782317322834438539562881205108993144426895410233453767454310660751534735829055051747777547656337749590634800283218757884613048533208205919152196376270219013533104510896478232870050826010002957614568893393005225680369202737469805744736867432635166133619770762287580029225981361712981822739027311812868212680094216381789913028696422123504446884803075546752259838514041365232302383803124309777139811959877783300417462581684836186544873714102079937671812642763093438517099976772194278752949569677266104652201914604672610715240878032975974081700145720895678008974865965901671818292721847570533640489220014893665720860983053641707545357635414694501499937853572765317498590390273855174507592547717493095853529948685397415138185988232079361449234841525747443360187443838069737636878089215270999023587611193251503785709311431267665434203381892083994279267984603256897746400092141656886795285796217105562247067595626058716226322022698342523016330602595893036795422864468760567196727244614568882575257887381020087077261150611318110348928972455208603456060978499912976136068696084638992218450224839525985786552983935898683129724039064835059215438592637214354852751305890292022657198417788880938924816269401353248182171914950098012927995585266305395047319971701707923678048016022172218678067194801462883481453229049307792234095882377842454501173310417741345623448830106416318277371281236952351209278099174406774289675578833888030881699448112181314274911173113121553362073340301917013752401383137788113316197890105320072901946198073657856587051973511739605148694418592336151093442376667937513661457956199383220316135106367087463233039403348280515002783800618949468324915863773544385253588559734388971799515245781578350284044771364883673338762259054202397331357530571840267675520134992922273460631223811429152906728544736516382121759356538937392626455356580191452717439405578849100239619889866386888207091278354883521150804529818771417151707055110034945802258845450039620634303446735837923304093075239285187480813535317446547034485135283213384961793081129842861029677378618007811838639761778401494171405479644629056204640045564371590480905213647398203331619549263750061008472991738978829886774740859510170653731840956386770978907538360207334081560797148849926586186215044577706357405151139629367217042627576333601654366816534239405581449526952959051949294374025486797192853416825084150869653861294147521374292606483705593360874688519579449165840128560411285028635613886244227102349212681563130494972539462155091953477417258431500767475786765591256334528256350159512224734325261639124290318302826659768797924447189876001893926270064596431275787223894440762782559429462695450348258374510323158466144997499881584881480477176528467556777215428672890410976971463354258099436375712169692294620796545605225228808706803842406341947329985895742936997165715291042130721278726755589644478770391081044936469953340754221997250531672490988729709426724257177870780486248014467415717095309976448037896132590074530264150598511568062449035196162950896238453966235458874370123706192988513984249619820975909619677259623037518220786365941326040993464230240668433353163226814131859031473045116468610414082636002746581752364709376831741602847847652992734983269545087572267290382689939878905322320414231326952494995558320542181579385121642906338293190351864774938663557091793972111182366045238675593377805822164516886679136221346764482675207469975084819126208350741930912787459990473795351466643952199049693936485138452761569324920856422830975989591099958793188613473195667650272200585058953125225900310446099519521456063053836750563619642200938302536608499425578160366917724151466523064084834736705041017074384940959882660740758925212207644269642738617591243585827017973540953342290327707111727749396210401313298737352750599333365268971904417542972765551745674412784605511218938922690942637199653850676397287964563158213015336335543629227126451316992540179631341733183378053916091313653816623656539828615459400158819535172475859204497723294402633783348558175116771449866580945411458346800170075942135488947496353903118786780197359252718235620296014502987308237871778657071984628040655332772136627498691633933889283930540810221444636327377963986524353320149343075612416309533501470492786432339142991314340693204167055240983889236853319332696516236233649807311948241216224796422113875895015958717436297677680466073059909469247845022846728021753659421406458341902401268581354980825065684192078698202538763489454370396692291890331614792818683489187364844078127632551957736405029154804865120985189212999070756119334649695855159055640554887572216736573491927928095083483437397169904524127398862925225826899749085922508221657661581077910401813578477460906627293854410407509658428024190738585959093297130172319887427153802576662107412580772285717725432684673865939569761241680681816631067334429909236239251439698325676107629196122331473696507897839126936774609612879262750686469873303524849124526037083687670346849751189451386581630309475316878201829848910293562940618269081517358523376478586785609421004787919962071572582128712180737619551520851781912920348283635620855979498465757230503072767830957692453093229928359249311400631967444835237215920209314783236897258086696751174774826139314439340424790175378165216015205035307271793808864645507484472560488515257420250689458861189319705272480993204713118449824585855288642690464267936399460716949295822250760865357029358743481849137168946201669488334365471866621900538859246392861098483002427462997558509396737302653127020421134706926497093558620057103457619579330607993356908928703175185232884713501376396046550855283457649976117645040605283213764897024078208796595765840631284579251697826303405017998545699546766950231759578071212860882793171667405782760650008319952844619872142195899012790887441920788406153495047214721100816527171462912817090870795460700943038115505709180608517680217445574777876166581565293853519432796166986405747080086908257302586480201528643580039105120689473678138077226552876954714031773538370682597916496339814979914595518705518576465086026570846865493884023730220732317044219047281124637726292979538202546376382346751472563994447267529712222848030745092515111842150147059502210832042649814986791891554451992557835551766794902836794485361730701038167945491804304753675365859767123848477823263725799189768853476665253849963328939069137609096296305741708742706996646744715991686539221480429400753075751359174885687288969419264325598153139539085974915835820736646309489521016759816177887298258639150463196994917796108607952088100071921394905334370258811286893560157102045297391395310530975291238848706690632050631025335151739382164001199000850756931789343466452468264953223418020445162579990892433639643086352335310306434478197054147186326338858640464119013481873733744363182437786623367136468406028452871375981380694225877154964543223489795201797388946533119110680202071738267585713454344574908418140923731256096313786574805941172084609756402134373801286490744970586168920528765353051964464665944978876682873685240854524045120547821297904866625792937955887129871921660331827479974315268221867669926069235921769525556929363703835217790246950285780353647945622079936743711107801195081862986825703591767039470124980556060368025305761428211563217187109857165155095126417515799620070464929004150716862859055609759965851163707436851753879737833052180852514861225384962150831259043764666250667341026977672954763015579485401942153422342724833595587114613758107854371981165968118296350933358655276643666682829771505917863230915543184441927226568377488120847743302927809083807234761291144387535817012378710946232591473461001162211294892617696773483491002427224048500004416199977454361001686540780062749288765358765319742963743899378908027596129894941669487229547045642063635303273250600737154060860873369738147453872532786241991042054702767570275503823537412951879484373372167087688153042414280659259337556201026055756051675958423872817750147150885970976177402505693643885983384562400047737817612348482106382458334255153757881324531236458222667891692645134777237917959408863144481682163768655812076103474877597310924051966797830617456549835162420005770475674774559050610791794584258055277761126503502085169249019186262102792023518353682097542734164733993575549226004769253752748736974833017654621641861974349643202117827896622772143017486069240095621227278494897842311547860112148086279785528726976443233157302047446572352294902976543270277966296388119783302295955586471772095955745508089344452163933004328792538538177337947473645578641440686943746571238364102693011187699898749128231151926890400026501459094757361028804019146450920152513988246432176522014758421598461082284254762496749313934087759064626869348171236783240865257941481321432411718217102898748250282153215507890691967364854943193101200569377308406881792484789395073778087838137110931564190910060710821195228170891008236001892885646938992207068877075995077870372686049855396205090059149441991169496282980386676088908313529670394773131650655977465837119004786056738107465776698024233094147915713239100507383251312807400626691045567750940952738445029058331388264492825954131001338992853758141866836475140418543278499608632371183559963685609537581272774034676493869017049316490218691462173282591336920466678944977263559752150937433591928256139045912586168409413619019646984323470919071333026560646259369606026479551451187088366535029698429046147723455681026296520309119911851010932119224763807041000868513651331201678638051609679175841980928841886430103746067942506160729508345003999667075186491821931140133862385057216773586591577409774255784354260547565873732800673821104592388859719076531133947395193352168005038691621711263220659326980091467755414993068434427936093996843641280637411874806093719281876138085999402903805923471242212349710949343262061245659314966131870168859944852082033649434585432278723339693454029487154626943427941662228245860412238571378339957337207438555880671104428759975767502802995377633985798980264734185872565776545186739190123097486570952310134578760861805492775837352249449452732544909740686603483788028393777892745473376884126459023641728674937686869623559767736768605247727172482189989884150160251487640394016190447508774234247874202023719074481571630961731015901820128549487708870111408795124675533185091508042728999649591838623043563745231333993818609317966657534855778223142898710916791847443933559690341338844666751124750182129727984357660254660224411352296966179084177095828013814266088743634879904746019345506212081351746066450810809896106446915396126217156923228681373528679286407746877556112839733484214626890562036136419684063863858513869844033919330498701855625931417418431717459532917269848118404105614034381754187791677054495941978754410191359733571720689062039922722259521896481956267567818236841150679123681767250387863892762336674772996931550653215954256592670261765905619406547865814259123553170910519898609791977821626060179463662207184875135565579237396129687195288411569829035676639193807499234627485467904190640586819092880781603670160622234766519291774373478480915908330532009680158077205942997662348061405717422849130005611196391384808196086102742656350976557405092230830642450591764557516695919582659190771773843417757021367608477734227957467560582260399648144645032064780936284753572278082978600602941906016312177907868322307896390007782867171316206675612612134352046006465576453215264593950217209967407819542534697945217204735806454226948860919295266089598600318153425240385628507701538896034616408959561959727871004605339670786408635054678562436376536253408692367885225373563373954686311877001399649228453812866470998031105207842054293196048702361959894389295182869579864981436529202378345117875562067967777049282392660996987701991440658159196292314688559368182080480211435560824374498064238875371891401077771377912695310885668232912071304090364093354650405667304880231688714969529673290353158279732131327981715970535084360358534253466669946973675711865215079398797676820135942993877929945266375968837095538601910254472554177828339379764473230497667198333166943896130633516829463026277611794073290548878658731665171620824022051130762562477784220294055531046302391124256081730491237982694118278909268833746792724713953239103407103473626362044456778902380169293418017971429509793136832242498828128369273437042045713584997820428112412410592594490807924224374870300200911354952892904357217849201339284186247105577824416132483198128404168275023217824335114249479693923428747865018894278000639291208435295713477935659811467901869647869905652403802745261470317251466415135131183534337991282942369379232482640294799965840384725187295278495373205862550662542697728478498967330491942476983946134343314177176700984384226545346609657172735988872998966679355709608234722626801628674243575995002938294801986321163978645981928254198690737792780129752905276655190230744239822258104978531853891007455563382646080471913445271796932322929597727346613235369500241332195797184340638067387864037297758760150496734344376516215352509285222664167067127081812873977890990080739981699595989610606878416004519854684836458084645744354488574144697373589898534068663276796063711930565867260543924205932985860743913726842652859238206485624492611454436353673826858271350421760463630293881702649857006678168171886534933369974565655151180072746276564669883027467833349926359415010471318065444404799310577155084426386643534552602771130193414975288909757949678259968126189644361868461771926944555520361747456819650312866911179699898969137450420598848901595929311491594472748017921003334463117407176695732545633531760485119835970038022817898469150340610409892621315507302907477963916574660677966882619454594898775074982684438695492231798795848163444763607103604836056854921907542492152702864354825126546291308723904838682837011733457630188173260715613376791657848345660301875773884993400619130570936528846100783581745578087851963595352729902554426091410818619668831575236133081309571444805333389019489377616999385830965177184117364434234512569346435348379680960799267144729609341526645600059097842972452848923155882838696992746022425672542204903828858489791382876803314604590965280844350312476891633027568751330823687945010751063232461826489322885762572894214811322129909101873473548016014146513786910606481651113955705169358142418709713244059459978814762495152168091340833949355077188451427318814971504110415982272554297945141597118206604311293845837598606969631406104789337211215638828741086931337331934949170884328103029749675128493974532737704759812534927396999285607948878413211390374140934307665027954194775622749303698372747511440236341769749134614261879694602177254884249086862045004181483637747353713469309425383660478624117538728229417804348348080472897116640466486694425818529393857191798210164817170047663340228095286005991928807391625171835749649769653384057362425329799649722835757240448887222725935542703767048729964343320635743736677791075852048179781795484998717633451442187848313008224674011239409844964959917944068734270797819217407354736919437354617108658320691404028315112535706845151345539420739198420415659152347891666174197378469521255494203902839451278523900364319175601967997877060436339982756785673858733314784984400859973079641858378467339060867839397020323499274442685662867515013011978667601785202864699014477229601721549505782725721460650800048676004317668488043002045077380036229614414167147208611630557636595639837658545544962274305156077237695154055543094716972401896203538666868795915317525406699515752513977564908765548974019058297625205443707488899905241011479972594960944804930205095662015439952424518444848669645762362601641282518606840104478870319518017843859233606394339711874468533141402555355101676284502514088706200929246001796996412879751104264561131733047950628619991546413761662136954776342778183276755142498038240308040150457427551688809286501300094021296863519409220777091422325168432283970463165701221459373550199792914469578032159218414983617952825504088604514919041107410638548762406861115576399523236897860015813914794476463819003717255796134722842455666417225336090500344387868524879320535435161130194565863190575081181755003372864726299047392882891308428965630126549784838537658903955966286160415742265568866832337201687543063449171808637319879109051220117594342543549176466170687148438013262747678541036060038672157743737470746035715617170679836102015244820146811586453928743685537214241334154223278917457130625771477256630372038851034895371443921586642161002944731407457396764882514836007659320379990070021607536381902453144850087265762683400071219758671767678956618465719923944008977018433438633853054951115208500302846188117963215996557084329213161454911844063426770062674018779852210653464688551103799860531372698068478278413605124508390242928846299807233968703239545165987647889748964184587277607303824887787489632431081320856394682160473203966520739381442854045463211621738915394769799030504481595324832181435269591945353025937072022178503462177861829516340229080347435160661200713843511337633035730832469130911434219779083958186830774286092089421873337622844700619849857204731962849553636131383037350119372348891529777640046596395389828696859061101719378990657667073002557543261855994292158633451380270025816450656471050176909628728747740525032613745230001673785504639017215591954319365101783214313954406750713969288208005508470857585266556495389141174016122243664419220459178287214745114515996508002297911496525454484354376600948022695518345591148254434380353825054432091964295093804657755157213931947885560974608075235880542532274969327467492803246285492891576214176895219291374387261685266476287058466489385614676027072325710323195131055696236814662981448042036507572641625494728643432463091285315240198248753870624463126191144952629386892600016234018959787955134138920556223930843140349538576712531762709477146177400662256252014354870420271972409648566280843613408201604490385804379221095873785154389451684519113894860847321174567983362177291714956770914154924696389991889236286578663823692549602409787038621969383529154867422760986503223492468433907128195582561122974729071353731862655139893032407728760449088745251398671810701204422872851157929323705469214470848707739367807954020798422845332535411521324440217485637498213762490459810913121069952713401560498799193826788329850365185151076483575779601452020050707887071642582605452601702223084276478811019613001297331450948485958785852851796974809944648086399821690940629330029393001730189398459531531281007466414280915973682289497868853932573851988558860940849040288250565456526690897587586220208497937013915599940385652539935788849711285148243006249913346905012885918278515334895388179002572835752255732137961031710327285364561444589950632954571473299065828886202146801146305989262541900415424868154906353368459515696649334946366673677292041014711192141707982842871978726611271505779817612901033413827409246628782562943312657862598360873199833575373220867589632481525260382528062127290646741707389287553722898751065125619223595060358909562829813415648770578570909403524005981609250451868221576435533903663140061786637338715549174521520034935179454035675206354876528553878181700067500561867689510762161099698384636653842326748015518710337736523262529447923208488692007077798398979358432797541692312196548049465833738059359977655475372508935496733706191046550533597765812464120330354759068513792470879912360077502804401183474018592381025607491672206488261726555229901983914268747818156662151966978597314508672488134199528506209945577627582977486064215888226828336335992277575828328928357752794434838852273349484666984279976262063716965410018096806763179226681693008068668204797860023421353330107187165794692556370756261945298998032424697976955091802458237571080240197029034936946097396479577509758490148528767084545286455823474686480064190507304713842703484924037117058035874912695428334186691648072801702135883237615007913650445868445459911829895754245091994725376412996686642699924743929796880668229126927936102107644218830416543679407555793229018608861203438956036778645697290337237737961547328352097424492778405832101106970243255636710149176000151164033479926558272154071667798678759066960067785127892952305398570168602441777266387323525651602406788412295416436278934404292592178958958645453870976475572412772037895627579961924411202146445728124672581241351604758529777426227133131263048889864943660824615534270637712611462249313440478561134504188948851587046270406262373870658137534281268828096850512741095179043947431766003303920547958655176638733984405459385338349823316582043165605641018664098615918053119557655423409083008079059485436784801832711695530761980897864501492148996368872890172367631957890550819703824344158512280912972765498742889075581421765213003648853034004739321625816053184984801222064020138166375826199426102577432250289800177381429284083130583011595640031685025099204693168601412633047358606642568400740944430805573844040104440933578563203065847541613829382443384715195197244715728657790711799904019866996583736542051740948844109783583309375738012717064243484347489134524448543144385448917792554769920060975668586467060574023139631939792113198326668661588016190070811230216965860794398349876020271148260531979579954612047859647138636003172576045119720927517461213209881574148517552181415634440220057855609686888065341838729060075428911150158847358284921732615410624480500380119871123353204817880774707658993968803768341204819499596765060664196224612824083709006650771822888827605223086362582930797362181487791356198570862646300762872677354047084067246266587846797379805025141438815511625042216483185624051214114351492382503742336891450728776890575136334806683917474739435399729031701528168325426815979694052927425825977857406164658455875483502260305303009840065791500343451248744623338489360177004768727456219119896270904888178066717261066048504451674857291142964795613852182999744233869605146225355977956575167234441672697089303009127684741412789709464919954467061650010267114120813920235827366539027073819054755735809385545630641427802755077644445042887923277650699562655107872829350598406567757467965274570697414548015803405850396248096077212803671254112019315716544365637136252196947531271610264571133793420977742984049641191454460678866160536739954788076043846173058976949111081630563112190047261001367310412214699696963737216783941828681110482773254063305689585820489782046640555513933956980332852304097460243734712832894938136016426503309636201750363849735454774290984654592991696117737523371998686039678183776514873939385216479654863100801772618015110494853067242524268415980219003685421072905012396759551188046175107672781825904915920459332774597747317005000090611690820122044315325771442397221763463012325996061148873123146012211209421951025413211133320485242023501887557865616243786945888061595565495690270165976807380003112485157991599871829712070238900869089877554251416321970971820389696623531689491686588948919107626631977276601556797135780694669055912009945292438140233134364059212170954218687924178328442899010418075926469093781557777002565666498856049319222500980436674405775128971888024490175266147277367291017151475792002775809411514995359649609556370542328888679729365250074676176340521573241713821338998377139391355199279519139785736896722474770903225628297072228622368066937150182962452868524442376072796042328087966156024864724948242143792276345974233175717177577178312526155966840391267961544953604560518177378071201073169002048276260719054749046875306140486343507468043363349503394215026275682278866123580878582367043005264737793883638477340260381741783868405777872380986319994690775930329116081992759784367195337727062186471002965040261370802613060623436336017821173635326748561272948572928494129592614302060803797219593267220838257782502592986737014308393455519768839786960388843034119209994659045572641275443050152233980095562145900324169890634187239516631099845682721663892289168534726104744155697600432604129820236891043901901051056112446291350311574052620327371460300196139661676227894216535391225405552848472612986373913589782204654796726031588134448906087917478737394087629196242099021984860566336226894455140610227267283979301042410975456265743362352436476614230240333630678314295669185661003386172209694645424651591087995728584687287600985208746439076140692767643334928595106247066457576388289614954992629634805430400895361305104814519011840503162164948639337616042300719914375240684448538801906826381092248725775834970483196341824712289498107040532483764291613537666899244572291785523270611639184123145046838782187723303002820658441886201726365413186820694039810791734037128481044005978575671563858148064106680301177505048511603114413128577052345127935130459032109986549219842729102390803154262263585186805592636043367909304295901430475794826172457725018726019343702222146656046799594984274653186711588644769029446140631576002946233783462398043068269968488437590636096961884970982443904923150170379699605031269767580198538722925935102129294186795125659550162679101333658136393661496918375462198530100110572123510643035896381238652733160460910164329418610327788449295333072856902761327808001781577388838877622750041128738956560285748935994591625309354844740724057703462627674061153630185506804079032602470175672915525597838158762538280711121736421767745204706289208526593445361500064920094885670615289141568785702226970339276575219946623268435132378879563754253073338763850050218720402228807782424974660113318705761202391345426395790540861916065026797454170941843327397060369777640579494527861605201124267132183658065705239305438870810483606004436769708212661030523676681135010823051872168436159825427077860481699725232244274364842239672753827527643090492405155784432686902845099374620451900729664744986437424236727588119818107178140016079883825267230416069520385356144554342122065595938015772852216582863785623186015618542737943390395043520406846470056604393146760721704168180006862289334793009400453167827321699388946574923761063660820844469242636307974541839428705539957983961990213109720429331964676469119884127172081207165469931791131085270685536061330786172641393963535270595124405988403879495194474417052109873125220631801585987649788040828163763557902306316155052778999235999281818140162000529948581638872543345159960291154991078797997615959119667172007792178995229443128799317303961306814106221062745538639217855668209855439857255255972573366435074649815452748297922659415500767749996330014552171042182935537093592323537905710235974913894960885251588823227904511768294137423965025720441345325699972466424884535524694288452198158110896145178874988044057747141764069057084745431578084019695538009723930270713021181550443474113394610341840353787452909044707332926271277668762086173486079958700295868985198063870985158765896446927997127793401735165659169636219400979269235680855966410727135966172563436845783973245901852387592570111285180404478118672389255708326803612446398817563429619491965817032326793015359207896479346941446958502059424312167697971204231299874325907332647393782253554593566510175253326329529380221899792955632075340295485242640944666970918594479833948022372760084130441999835529374382674255040207475260211263846060669304432737143865971795645720631933839737670742917029539023798934417170377622837492385555995253456098726821777877755126016439953864746010549260802257030483751599157796034027366134169766128829635456149607924397516427176039610533703513906608509797870228838331395990237753810990938565361850788358197667701200095711589398026983299106911055807857381117252230413050333172466149781046073742709518330767571629641377590823604124745492414159196954693745821019085758821930853822339474390856963372026591294622412133022062983718935746105840306288364661905296004736192622013199135250283258591305032954297881166603949641931001015135659260936079421022375415472070737419495334046979244014974897489272153386041333670713488615430629437634800001686213484916042691744832344430284972855639995140995264461289491415288240950497219480827950100905144165446004547939931381218644042484036463921570417333434930212103660125966804541549350590735226835933920182228104372069161480633790029012449416871515075433822378184744594003915884350191780732764911526223499353466169943629191410000771206757539294294698389015806329738855442327347813829537936336294483128798225442839170094825432357724348021831729424229278942329026349437949138969732439879405196733118883605419661404424363540790751112100273055686512151192835187911949462576831046615651353779896849866708904338842291524502643870068553658640687720840558111295440077367557138377211986146091653973456135718246610221897177275281407327051036565113077094477420829164545892945134061487574211057288619051023039725763862186308609342981069547095890150279362609921285635644944533431821338764824510610066752274504866071477605700975461671726179281318577354387938734287661941772070787801734128215973161345338999523510103718259545667770594029014003315393521117040936145191291570005393926261107662647588834688761168795890589882874881597016196286279694839903042700706255513908772444968939020336826814122637842524701972296896501447786066695045606770744228371240570210836679566795757840094267966937275730359812249058923671639509419054079533185622469157255350365069918865744500166681021513549894452692801763378334025251562018698924226706686303952534543976276711203826386693121423467341486966955109472537387520690088268553960051110500338419891272241243026324929568309722119271778090295865635952280435686665248714116718868269821428805318335683405960754532729741960393715462247914152841585813396075208378225990673903599144799504803557623563848281173531604760979792846871331370514160948447062348338764215243860098383931617909675678546124471378790138945320084568675012249866381862302132546129481143419232463532389276706532155055978941918124004076088621477414264028130906802846597731693989885709633631450692669020822257576296695611457380813674728069616368086119730840256427325166190351172131078133489897532574684049528819154293910752692017750407023546502977033523630509726064967357203712021061787379189360827629268141508590812478112415333573098094076646731459288380603025085629332881674713857695183099429279522526372469992879511697979798525355413575795877692883127642452749413155656513311054091097933163950470628821123335798893062581057804815170135965085704505361323419712220007125291266460426190834356420424314535530933777349930371073165745361120703739222953029322238320994990377942694716959387959333144727330615629281315213859005172882003612939782122187531416168228663366390465937767411410272318709889185125642910397707443464622436484191283386737610367491448928333352451333828165270155928219038095453128470663125926226561429356600546339193999064784398146864752670385817278121909130468199490803223722351156077468236777104603259321603936293566084160782116081669423191854148360116370336711538575676091961808983882435875168651434782917526711457841537360591853240510467380417148265252586383098504577571172687565784886586847104394717021074287303417294929198745791094210127343250676498559336939015702522674838580859896556687922458450226074903510505032203412787484532555382486913717762507502755080088300244648955889801590115151061960570701310429940165579117487102609224439302871937101215870432554099724919215109187084877211002633400419256961377370918134824450085923109960369412314378390372581297565348752048309315793836081300081193915315776462483566506134179135653007639309802014153771610613057076953927493745159975959008665440069779732274474472085453804049784463113366166024924993588209956074663565427354833086858840096467973221957411246431262606424884967873811529447784617491756918604854455646032416668791675667266091127404857279498716730688690142823195088578307669123089833274767356586902958333056452532347949502323746177094525970827695440988222502026256838077294092666276088069563352515205386611437485253071933063734025986114095861160295644945917608187355478510010223815103544939890793636435274051288390614181887943322441780466674994840502331533930150972901362238472006224866311115470788266133833224157565833393644556367031526147557173446740127902637140020417578669920265316136191730949944074824744881881798894304795066495874377079869918868399939398292523905682800946122644302606701099770886177032122204314108875771299131844200774547291808979801971250030919396957202261731286450902446207210349877306727018065496644560315425671198219494634707485349545456881131103656518820404391444770095743027234092864649993417521714846852074072719798709420437713366736487275800725842172950273726275694911383433516228573230963185129145441556353093575750625050201351399795435208926712055197748881198410978863031022554517483284438629100024812252024789848002311394896208070615221838717858167472207017288280884507997946244713098036579865063634497803351316047901214558138370686594975803894974583080612594172879866777203194081460800051088815990341752521393486417660161259247706798337533592701708974688885237325408864354454051638958741751270556427714400355772424520557849956499205310206345254299312059346508518557098608719255827130043255297588458242131565739643838470808192234083953076955470605671686173688578042827794667355571186276841764310934280890718349495037305688413680147917172989794893768604102654635451411302144750482570482336462417361788138994003612270484218979186151157173351184907070126635889401112287600254141600523123169150916355533611956727716793153409807153848106332380690497134489968980506157609712806870431707635283955608603070804184927988241454128039018064720834228532637740676235574962537138489725095069159422374484839546218713180767605674178604887387366563543074418235800613794238519732831390299653084340499322496495839294123269084555822272884720225238257813962568046682375864188568833626485601305588047974146795170156339996863704457438837786673070922129652785338722063605648327076429377531559424158953037445416376176583520589869910085993617056860508869159086860667308928908834910631735218237231945252777091922402047098893526141511565735415506794666544238285073834360342738269886915578508871008874750050839687430723747669254529329586627751769365938464844054883252181900089825212605346669525272389858517717432570799789405581532940471607729582798256868080789003394674582720402535080308239315230013619134330484413720387869101824621512116326067738801663832054208490224006024239807588790246318169689705258506329006086262557269028349380098651139797152838494907875958957556784066449152023927395221203604850869424169630722877851034516525470765490071122366022278332532037491049560336755729759746136226953148016687198265693070884927986548483269833901463875683861455599155810677503793341207329651551928707479564197418899272922040124686586968596372640093209197760171106484848268653222191333802336318384996481240586263465781744040160679197022318347086280383448499153324011881172908809955058392662777040316369578109049187825866441537039407232852347007768188304269562271744830643037774363163047996925280137341093434894343808966297249774758553430327873818646669811803462618977691651159333956684211821186476210993444244656527042046226462408257186439940924487928333568024136826384860699219196547883873518624863496413632250712877663239478407360757670434188970021537890340132528395372949924524962485773264491370959872688945545755843619929183016915364011194544008909242446831289079216208307228250986813168951193890853480103691289514980000716788941877371984113008416671303678675791910594235915315634675397900986909341320166760603992277033662584227117802660280766117185626450701438746376372023803649210794300314126919627568072251147295322837902070771359113799875540352037976815130019256406536574951118636930440580698223923417589550067138764945418288366260256924557885501134571005357052300235898477546923215210375870145318527997358280711968928267160378035916175334005875522678159536324088794275754708146871913968014368562464377251909467369045620795019683237921731596076818636671991259755019106032505189389305879367317276521841248847251805233320042510021731596888217105991407771590393779041191629266842513649011093396055586315103354906934608862336796652379874129013920710799416198468686603083465352642233184781796490176068706206011735194268930306909181841276743397202578827528773186884265501836890905900413772980308986601849455280203574393215956437846833159413901713394627668102948307729776969492098826879345363681159874086767019978369031217499177347605289220752154058136631210243930082728677900147391497061494675451347460290577042532883285736964685931095022067706662722108994346451910796960506124581684841539270032146766803150251874311070950787661166313757071136092115267753381670189362794988379772420744932831159830123955742972603172071699497423202016327917638072978738005208363318288368565409092346509961668905486496938036776570017904311842264381039884050502254607720028881321339826364309261528679996858322926319166619266545590766575745676537740752739807819728305373452638790622100161381251478657702214050814745650311099973816892364485810940556204270546048998259028454229825118573208663672289358473940487094865418323938091905155939709139709895847489882076002178160903678579553666518087971682084254468610747746729338146131234711732646963296406420308623358519531992260785988946790584974759463314950706275341782463223520020541441857854536638800501158172017445919599617818048342249635741137358217149207520104540510402210623625510664931437065164176250103164406210467138307489217460115923387376773885033653715726716871640623922007751781180432224236615702043051824886982216249897994070322839677583441405773428782363573605023500084593598699733607983755884888179019743752767159148844697229698630015149079411331241705695060813210485141163240146363641035101080318880224988175597064266716836120830636310143319538288703742115402826141453637401658897636066819729452007525585587263225846072766454412671593046526358790685193642116739242429806671472775527657358550542875393031258357352246424083486132247175089046527985819079858037408609524181289589050846049966734759901311751596110851503783851655871266919734220835122841355306608595451262390385374736608939426652076442293712410503828033856448591143363608582342654475810162785956088237514884276487969359883804884167238918837691253882408224331254439820451495722899351862510813544576283020409901107846961679372893686890603724406655221429978842687328769247297878315622568962352783087297488066161853541981227567720697551889162169284424775799179595866274876505978336637864222661430365707437028820309563988508593873678420241442339268881857947097531548224348299530615362084220314788920279355972359432779840631280026093311693401804538896095101205941219483647494518377752871747904456527702139166735294035200391014068024723073957796261660330981545258449158765167132222534115719483621253603543635608297200012458712723429045532671974553363009079269710443080811230122910530064288517909905174617389653652203538654512619854393780844649398624549636969889712146673153520092613972407610490617706122321568201052452674159869970548469419182526794012147165106565993697406566437277903130505601031169296533701147057578994590217338459623399621797612695761925728010541939829477085074351278144396790947967083226979712294133911115779600839312919309179154565952605223344469119160077090296528988808959624156702837061862527698007753082551330317924092548380751299458719381634265527117061964159523041509911239344756820148105103228838789795248610308118685932395249446812759818953186773657885422874581871431347417183619655196516995138294764530070986266718119799593494777751416793859671303079962812211149996239028240564732528317299401683417362650347104196158260879034361607522114042696109498909464937364952255310635369243878516915273567803065160218445192947895701198657326444729699268741555807545004046705572435752426867744873827691701445581300622296567404929065126830412518989854093820654270398081747013950466590204564682124145490500125504859497105062285185185673733210033988122045620312928830932582992273005332027877652736429101802442248057057525841757268680552670178857670264610262328021683745458127434350823396747951691311435593493306817618025875286479407387315044799715190646196291762372603601905685923249759463854640692149738644857028294174414213249529927728180561586198326024378285219885575408281998904160791282528619120585798176092384844341329799747501386559179762477073732541386818191805408225433996621991931207310627073519542928085846144320080502062923623085454119896834034423135186123229014017446297616989209240809432689479265842025093900658514168420032339763357938741217838729428881030364032927189677796728768052667228941692213221715034041538671710729181888920957590424659942561142703426909222124505256490021277692127460461842518058882123192799951148309713897933125982405352615487608975176736987917786184849141256581619841061759529789849569406775528332761201514918190693858717936626526262003801765241152687197067821409965399614597987904818442880777878272194378587121416534881030354853827078436940993287696479312161654381567786044790270462079542044998091964331543557268297922700499707384226744873268013052975532488587852644995013143648070600764518555898755242878189385143461872831182100272537776161958980976798824265509204928910199685117789855055710137247047872202762842168549996958351565688979214431376786573190455971853059332010763392160841118807375412175587613763363248470400161443071045214789876474618007785227584642781308962600768215987709226620141854290755490200369245740182847361714979950598716888462831292405045217215674184342992318346651307340328320189257605764427605317389952072537514462477441267215579189231576453996450666782037574695325347132312703600082886656210485713959283581933492888721128720315072291378344880702526721206153353694626803752393185799565755868075616045981905770296891166213001941298012644594729590200465682598994187030871268247810213365710116750419798787656725574738800864008193050676983593657169807625742107459834655582675365917428139087156262744263459683522147861448674073278306965228597644216570001958387637736838996815872483981269924317328466681155954904893118807670983088747317450831717528394552061397460530798219454069939589031078116801640114448318472107452930769504741177722043710963323156663464743373346733273939067099997753040936803603273272589346356335775898115674192476337945950772514897184469535941246837035164293887637274279469545176584871785584730998741673038893465935415660924124229200804324486607305070030695261938878218921827664571296886739047132652349770886957020574720906706647744076226907567744516710607803437032563654134581475950468105200715276093355838908913584453415785273962738194583423821506465846024957581115069490088597928238072282583356231952706627521411175908055011600403154685563362156247242267807797033646455122363942826381825521916409255282778274495615651753011328462850087571744037173817218564834024135990606536429089924242951962908145413316760403018709632828285600429095247632755451449879105575999319324144952606464016448511587303053977208310243862973013823319030918413964101478040845434598927407226786992241593333656902433589967017666436249953242776560551819428026125735586698684131778518175651931530927613732204301644377910342514689524000548341913830867219558429958729251309161888108431694740416694514261903212084352701183279266950552350187821995883400200790138540672553263773785984038204909784156601956067865628043807962496044295612375059518095527181293706628816635788478970738044184904653634664571467249087951554671810359811702584690773904859324266308877283614186075102464686936429005860348327155544361389056555765357591737465931862187115429637448287705516526889805799970514095900566727935790954768875572685745587820448299366065972457709174887242517683579594388962121477792388067591673030497846232093708192809927152897790643665426961935419088059130669843111139333818044238358775055847803437857658877708964333199556420664375544564347971471346334365837591869934452187444942783284207401291969186590970828448566579932496758346064983928812890440981622440679800758848186585077677287814562754367931430497985040949174241709684779585633759058077082490530755481525723477239223024675507994917919356158121874185560696416360725395261768069025230797988637564258529028221976666378741049738461064296170181888044003740537806724381960290857249247234059847505213631673617158170593178171900171105730131483018561304174773965040779187194814100881847059400370432524035293027229483775712735694304988319182659121986892987632659615763236027660902066363277773189417579077055014893786516483466191349287812770208090957688731187427615237689243628659077721585979723956758480089286307518153246348247310370072251416374768111026106366656656128490002783821906095572812899734435273085253099522696884915130679684571446451770591513209089089786420686096232820584486657164279009636453932169264723733054790342679006683428424020790686236131530061005257274100868149792785522096104413163530901442983130954468484375714416178785943756882817910954330824772186793115059016421947737608493343112139854407555279556790120045513450252217456595922349492657144275128983844963993715258504794374959200228175143851326416125240598194781824204017322888199015418636934963980146528604002439355166032657641134274608133121336697671291279744965231395871919553189803303826967322359803023682798032208652699904515527443379997189646603562994681214490951021558366236639596462266125531430057635286017215858632985917367562809007592070143150780396582701708453681028928886520151247612689621875030368130221343425625047677326210429698844054306264721601070611844592119811165019840502640645254740987733464365372223400858724543741795337211290369720940086785186889865690761481694070565243846805033129507357447038448804538060215943299909703776355914270118038500144756826896118074369863551646703287615040380176581276549824412642652765032551919157384072767742697854747495171456086587940106896110722591607492672710891108597303278155277259053679809573882386023062921501102441047524239485874255814216441143806201232954837969207476874902048064969804294952517170143885574377942463416845528548326888151293425406580210587014060310757014597839725644803731803685198603940045026937536153426792996479696383202315122169751817515090623971423751142471899027112083920552283558147431935313088121555553776536863973379602381916927593568215911333631268451144542213000100434567025917960094594459439804825369614392612043709766188433642949062523202584154480649215214858520912114788764886318301644985460694369747996000048601216239861996721869450584567005369707483749513149022186793930244132433784631719271340419377900848040302374525896285016585554023266901221680152486415457622118000218760798383741112853190005061474336147996618113154244124134610843644229855651840938509767613462018852138769627023880808453508761809988952941572783178483226350766970483391728291001399254799711105233173121703987368104208444615737185058226606546584938054293462448710785172287392332634912019131961025906453002206824497844194565557592941133846401763554924527895279935727916919286752634434646423060488950946968016473338847754076355235506891629937088115441436442198820531793507592383467986802806544770360375736873662630600835898370930854979568415580708249074098648580065490471817442879604369776804637798984375782893489597941657108126473779476705794975925272702707622861824134142067316835374311171607063849071526808711739887298392731050858071060002302196574220883390569758442266757152895531622339678031689773854248986326533184931050023483319968088687767050644026832140501880385754609394677669002177400995103368197924073355557797886963011950120607915029253846204314321017297543492970377749180131644726175889892125715973136573404129752425988499859618908541059244141876342613369632911971973474725628649659825580396540690746932104981461151261109307432969511286707542950836503843514436112943487960567331126527861761886527466701539608803266511946577383762185320533421876915699436109759478778049910540315036239301975325674288423877624086816767493306145859506289211701154582719747268617793520050102289224905064021015159923264176289599410123878351911876445585892681107202506377224191723589265526048579852105738799694623805230945434187711779558674647303262304423767682355485387482258886452976982508275031806453451696135481989569515910925235478362933501321993800796814862597075655318507822147573338206141851974470549956518318091763822987992246268561360928380290569478240686344438718905655579602897012276349129740338913936280886979781200542364592875562149666870299603216998423701072505085832912668423014764902929530400654207356299571299478883680151102667347639838985167302253921845194701898923498501860079011840876845305614139321351216118456860545928534017304511754265493377110257686380847930434602216082086192541652163379042411835516356806546935684054147308557366217367935962071738281939464798849114828044359703061643108405125956370816820897124812839738187247467761277090278726528188049278409170873022267432355630319799870115747016971071327139071669985217048994392796652834638005092396871115452100219554543598815753516813504883559051733398799654313138051610362342285738429870285542666592751896585060835857334981025774749965453355899705598658535999482855541369462404551067869335356311100921474494630050203901435321610929268316220117934479148318073136900547958468214196219009807745996247401098329101670183604611160377971933414192120246796205097597347832706923656357382269742334395754112255936696348449928384215726472478875773237423022068414253528859801077636963823574354918609784178836357896585982112430700466948910974409865548333243183546906637136852094294587632186637562169701320551406880939012770360919027148621937389442141327164599352721806955364652589465714397188177149018153477112614367921417489488032417370559688556015010892271985886274423351202828765664890968942754639933060628850366190739931476342855682226346948822477476667258248212731377099235740165622496165566386608037579518147444793433961282020469748965928944188265707196682647242291216082009197443512985316594560358960126370690678052883053735097272225898113152255783621842514201177460241700030214271850468106523101282433443204113956343868011997694753941995303848069996989999552926481665228381527286015070400428822718038554382862286268968973486251690281750668524621795618839849022048931046671874465269133737278872128850443491779649283046307891857564537482287199684328580055943266472391785642079943141607688581483378835865492380522650609431597188134640053244421504087243798675174565592881229914165612032783762387241142313888192457336424803347872568192515986515608250429628956366320062848740500494340199299071293858705115782813005297570483608603394894594695651194763437987869571640443897329379726369207834253529643252388234876475099410824848774752438244127719415956465414243326566462087240622386153289780057651998877139848874066160828023072896806026992221537118469627391214042524281958492091354318738798451410687313888900034673797088901130572979172794355691163636806048608678519535680525579638910684286230071337308635239755937774219042678434668375014833660220767461848934361964195848600517746145176112126931512991347944074580061851561575492365553514620942495668315243858725606189053511089337041855096982882374353119316897087433689515197598637420901238219316427329763621661891661598559425552550226489394370536259374627707641103554508312461365167342662993628286212815223022842089706620785161193952194993222669196956244185332096773311412565495313322626692270309967286641748994496296721424129112629638424621326689159447407243362058516116579281093296314531841830547105766375364550760954828391356052962566409436433065646160205069595039631720290592607087838271033586841722356076576444590174476856542925116572232884575368424141898935318983917996703838837332010742691817087845662029000090240698956657990449698332467030037987765388046768478616848570103676789468585365222240629028654178201072927443943704961720761292044037460704807043086470725468898289031316972279663218190392720418697950605953709241355194851766892798982963962957767800309308689577194962535657410248331501875049608210293172936611516524772677101525593150822552210519505664076260473953039997883548158266019011955894558462773624124671897385825929347216969419176455067632837068895176662649308425028000966361111279928642187231023874198591002794693389390894744105928891402733258369360518434775135213762403586393797711518857670339288352947710916359194427954207291651380337973098660649830728072324234406381917858920647332601597444847569148506485554069204076878475961681592363356838780397429665678495799588821944889623786956652649335948902701721638749709748914085473975147713887134228674401365327229041697892785651811654554629775958020894602381613935988810475367237218797897668784695234161316123193913671289255092367899081514494213658616488261368829999812558853782133703430759191024974023053744287132983972389168068638535127527306497105927869898500355053338617670723683651616420183814333055821401853684507003044432623469730287106355796637613717994184836160095963418282622933394316239733532234650172638689338185824927161457152038789105200166778866855350523091541923782255200989145509557207880365835027656308207249947359990537887619543897675109740549163971159725362764740276002941870917218095071310916234018066816708288500763417213002753447568451533562969320659596103052181216029833810206425407086529586689840699075037740990326665790715197460509644024082279361168603624551913594339521444595099720552521205688921179911076874394874405989758523236884079679918476833409136191419842330815006404644212533324982720805764229917571133529966647962523855891546607957522429372399093606539225245699004981228876770253355399869931562986425212164463830937352232165686797173265234840408456861748124793229953818115471598876833533383305735763229799064681873210102716602798401666735016662728296370923422618965395189832314973244512864261913765572147273553587120129597725911481286744511533960072854279496306564817578737270142095355665065287974510813077292519487190203882872808440063728123624035539382155805123101786569916870590386556604150662779471347779070845285821054098992685103540380441948163672576523472803315583674955890904526622253938516044669367324540912384089236044244117038453205211548243420759941925994379304996292687855481761086810209708770859065895903507102459483715246079785801951102801292531329847070549947363976628575040097792307498333428092341931730681941476898202733349720732897586248736392274433099239459512593517791485643598490500855793660076882360860242462874089070888414157082163333852228176916427444154421235158609767138549331968315317387421740731071190921665163254544227086773650756061797157440085205526036475904626576652479829786387774916884691785638836003864164147131115263700367577858069153670920373072823382089111570264054767794337243322025327480967923297237533701263197613181308740681789214755576627081715767909705528071935909738945540044011692596336536396624893798387711726889605785886809547547185829174739931207760788431299634863790529126226388938917547498394903584050141149909435657282986593898141931837032946073493062790834965778545819556125485473192985627889521785977134321996007914353951037391082461392244530656714640651202687284711767973081237512717797198696463973343499818530837579724113736163089046480844418081986810623038353346273362511729467176854229294163233005246316678675910295060657709821137454222179011509352207300155163357171715977627016126905930269188803608334719278213320538305697955874162249699846341918717801430928637360506055830097880409619909489111233433211366911069784572124596980161854710054352647396944935992948561099210597952242830797881265881981126236684421850143202037023263488870175219706051387463588051025223013077017966771703593013026372123123563535469902368338406872878614578965359422021404424892157528722038173489015893666178539993936950386820557467509569756385530366092523797056403040245979423909883053686630614224514530941265059615822940491562132727311412086551523845755075929903591743105520209407472186280411982792804753395904512832478249415149572713993592331910156981561397843981735105876646132525601207317499553017562283961210182698602757409528254323589445644056521813480629604143664809636805744031201552636598975391662008935964015628689813927308938171364648697527963074904177821585493536278031205995638115570682383670203793240340217376247650345542322125144625428087763521650639014198043475242423025332750591440776099959407547915580562882963144665483906447198741023722129858201444424091146249054974224598894196623930151976855887614910689037965882949564198525003629739231203444446150869371943172969816058323805760630070946858448248224108992145802212153856731729461262404234227923788687957946252639392026808360559059048423245095712227237804684648855647068975963661294349918514731352964756444877374707557686093584094238820563597449868273795426949861412959835213811124828981757054953919466420679518234931612057370404208024667012849624932489752972176685523425555328411150089886118431027783521531531245796415103836786213804391865891243140265708860520371202081417612123160409427478777454125463657619395396742711941350463053181503241402090578101224549872439257793193070587439317556643140773377525825341937732264856445396380785686485072718233325339676156624409686356494993909170492199005540898255315699861169159950163524010645436945851865493149870647283310564061806402074739468070675874819181381829505330430238716340255692634929074813960553613177537165478505214393828205866965657232424551410810623951065534888975128691640280540626480276806373084344501029683853173671272304772321287147844866149331107113965062327825326701564657057800885825354873604694814620963240241313225106594449032496407401789551654389181916763509050216731075679544373643450700003064879515093421979734194991141451424519305345469590023607294154670241219946551726737911746265630107014844979501537350715304893242523257929805139839859239472040267896535910050115400091935916044861103075908840983180069753881434928069795241813321385745309500229966835306050731885468248266261195300106170262407693372798416691098655190573588996234832604648995980826867019402176351873347204781433716075522618155248912283192072162856578089723871380933717755024342851649045406807492703610588985424788031425991714027704559207439191564212245301936487563293806512250484645698703096736572577445389754390964323955087656511069956014950032399164742084492021813321202061268809778766581824148833194230470456643804953734000203489637992380245794427587448526023615798855621138888863141084597624496470877134285647853090141104546938429282538025142035019844291236423345170469261457860334465285436973533229703405374148549701244975735129582616388457817140850528523046406766723934907882883210899054849989186515152416984240233695341364915252822182158077066909121038026993656099701793672592413594290407639690574255728645090063678145304802561858862019905399456629116941952423981348432353170056690628047182354807330611223891318089694670394205926985566378249453998529350895556897386060000330348615786986196498709368650875408659646630705631586478834977020876734184073375027524382957759153948000262075440970558724098057418633712095535334309576266038017303955683723225026176188680970445744242501440070202704765010531498639650446280402361212254506955696332558530480073643757871967793479974902166829422003806738011939265379444864745432967003804528255504056340155476524103082128815410785360783212186283272557104340725556314901576500489358166765688728817445046179498075040451004031967602473906498803562179546580852265973773945263645226410764763396913091288847434133037792587001571605205112088259101873919023810615913700843898561713618175128749350674693924236604114565034969222660882927414319751588294705298591879126119465354521696214390965471699994862544648262843348799882719135806053847041243723088041639444206455830609995119810088656043994464196299813245938275119014516338069340176108314297977090048706873247942937127842077191462519987806552267100958062067841005724759655125481911514816528882788858921121885246391922525241769949513100138198116460531144088299015252402532703906265954527453145742515274289053003780748234348474032186723810839258256203042808557189682724219114184906506858844860910126236367862068958086558444589478915755027848935768072144907985244624647270661053860772343427592189623554830245861222735253082307498551142552956277054614741918666346302822209596038553651270273875708415395739066355540707021830605014958927300884412334053917944677365075110613753831445089231857114479836374642172272268228120038767361314824817079130659666977327224362089262974751788953551607308405754990111875651393473026362716922310586157847735445344747318547421916118480200424373982849900432529002995675775672129992857185442413604251229304903471808926615439764113314126945221483675257235006707865225994268406749734140594990684862149614033551750001624986953790095716229214905755089666753758546913176788258942635715917100482726076941855920817863495340173824712075592007113850806043039953947819731456918449590736735996148995610987150519102908530276884768903438692364572301706686969600832449109963385234675951499286550934413003434683071793671581768370959586827000614601807027704273632364494418811400986270093184227563944930744510226769132514843840421157142709194242059823487114481737406667570043575274783475159712385585672004349047662109882940311227292677506468593715937016207927162882699142652785374205152097710171102558145632020656578356386791307040084596395278515678730164942266651058395403267464819834540419409610928982409617137040672281165821956554609375213203883735360704232894220307998168444718707488489075245892458511510416605513707992311546755245492317581865343720471194683401748210888201677923775694178868844279713732899043259799173111914170994879503655249413952424745267489247843741541842315109630901632067175499542504795754763888458152427295003426790109108813349918710173485583516504955138038772640086009794986270070439537346345249901289256711450904620042703842122953705963465770701057588052449881146911864754101723688882683271663744413930828316373616412560369825090190670372114215002682673155505792063723114031336134838719859270233381765035453757980419003035052005736248518759578656442270670836814032337024547405027271624250037424403921418925259023305819872174001208884942352329429958921611754697622723235773444668358890271914326705584530552640057494013174960934595101389622214079181938935553290182559408294736490952655548322553961132845140494517757220129383293928398869999882629924311139163693752681510103433517218524684897071063517536168906903661494335668695552757272571193505786409905951167218078479069991177649761820102527522462413677242222254260668180262540891227068644237136471195667677495929463877744836810841436336643483245638998497490192550662931903680728293052085348244024304884482804744419796479340973969541351753891910786041576062650818172927451173156805165302284835978242581087984617847635503378712132210155695932469149265998519385314670795471131169561736985986970787801466701120219400943261732936772924102227036072780538656048930856460402958379904141447391991168713080632152631179534417972964917863760234251380085852010957327084386635598197879855854807721826113370970270754967325730711106734090525620541339577303645598820610140110811243961437271408971004240044010662028054122341338883847094587604370411949487460191902345166090273419787348393679593820564409763670792527014127109407017635439862393009153308027592172023205462882738956867382003093955644805013598132313105006478799783347914621315820859941411646868643385989026936325241578000916532486035271637951529522106614097729625599931343763016576508822953404720092307645456591845000318408236512240087230408397007167423866581695918676092352112518733017640072364790965687715848566187991687434667885659179405347557883691262471671443907975710183264681719427851384407808688965984439943120463900548145995864027329265410397662774216592347261591917268549141325484358960964439540135979195407050479566099656156415498830993807379592837231946470269104844569686444205959572897336616126006335513593314186345524142540452287200135817048490819637736627019383734332275854759112443047074040678508626812037655715499149141352921355211837231030642434365751783222167506320273608984592192784190576786077725373497187355337352594016621666632818617593332103399631078174020638941638720652881165219223643090292505264018749414765628047840961775153162343605135214052241170985336187170592603192014172935578521350295741508258454711270292996950061573406056719158534916231288448663083806538181149835966271385984245135047313166353574855615420720985346593650401389923236276166619599706443139577519595933541207684132942375022869550149305768566170126512873897264885304934833665217606806322677196120256239916173043501407039177016320260287972509188013511996778960841971966602277659530025619039277458158604834758386881396644332172537486500573110560976202002906038175028868488522372273138125193497151722240674883632751782847229725892093329681068627896232711118231929284747565170309952686835158683578791080354326053213068197929669666064316128043479350962160859131012578027870690971996414202439691770938951587971240161248923503273963205245195895180714385381242336130250821162008600228502441878074039875562220215973222205294769128583041053143288271978088886118422059939129516635420239340385991445127066548448454483298105413124786254487569213359194084503256193562188083974825899247730288088461744660227064995824645791918679230238353966583403233390530115639282043500437848062172766404978032594834828381063145091778240074430263388505639184898327763844684691491155640448179518698935943705210086897101588613758302579205233803426443714706463166731881503638302359501255602663420986485280560174796356747330649209081748322804881853827256142552005467375685207701436463152873722990284765712894684011694926900098870711039029966380271560888205192031386678587022516822894082111286645112626528338364699282171263548529060545157724341371873391737853945743869166029455864749103874151417482809090182751677681227327217881061396645208383152950812316729375926652298105550258247447038121481408117995223905451016161375177271494639562083360030331995477561632453174123365439084279658924985390916499179751202472352032066047995483513847233148285863824038971681111813756983141545341149827017009347404635260985004781527615178648737884869250478667234257066495967472702069403645805073119752766412742350335296397295698600109579304192644384283766343614722842912837196015548889857221732688514442129802176724130477972826817225521322124486352386962810782987959954855895145774086839345039513851310942825404002872023236539088232709798974540280812777659417475042265166908194233055378354789815515299176136480707527199395423567245697607021729981628467181864669297359292871567719293031519920574308976535513619126835983536625380929799968535434920616214097935916473347532477913629008805893303656576059039988261644634988724984617214487943203696922222947065960403449493386363832892115437876013659842697910696806423987720803514760106376936774717802275112535299059668180881240781321083254308474209132874480158721451419887480868050845179022873437170439041937141376608362275225011425756204928682232265450143285831139004684354780259686066339067504106877867766081571507473232047355479865046368120105804457647072868007072793258642814344532260900967450476315906289415396327167749691731038109573780071799430715519181572231456505663361416602726497957156518559196727451086208770958271545648726027347262587700145000359397293905517809371093542090762704823023437963436258526823070902679135473774225497504120086761337792987690278784787938098830854836239175386587142043232528679259661113265981564803695120685891182502200907259168170223731984353761283420323179287303523854326568006956096151345221962376061256718743999715549729886154888885372732672140073413461392714425027449458066684800067106873912925225654733472834973006149686173622845368071861529648395483694024300992500037094399071763384301559297180972186469436910116388571218107528246717211420753888994808658702112193874800774292905701191433105661858309917171125486930838236096361993442840596930885088264665485882843832348846527857921590962142721389974370950148233820541901814174119878079756605467819671288745835397681361022263519608207902905502222347233869087508128273641111349133207126273201362626386584807759833097863485264531049255300883620035770650697498930337188255417295895915813141617127809647800006965530604208559378650377360243291808533927416184924377408274180688628935399511649847980908583870511212544067258886170879837741893874170460163177578278333676349368913530469971762576723324822766252192038139680046842816111034841986434338360399526684483184046763798305534239558891798266298335536667867068321238836010660635250193686182549759625516530068412955259869257425306273466009191579721774838568144745348289505033453480875919569565989182137520885996463489755461278863893976237455873487903344679635548235961371972573105002458024568004728517619020821875540982849491712889689988882732749082510805381387315183653180831534373380244299217025215835916934686323984001715889120854334107427337052356109927778014522295396841577895999461397635315060866728546347372085395086050504963626392878793287020139075359873181797159482119936063310860784583359361017358505449387511130211439599361296591796891380544277189924850554646060847448144380313660247860046549282478818292273711292853374057003753446670409119868466656847062013675347280661536997160947583056913888221610414835523474746049575490027264330071374353197801558210935073684774865394379494225315976254684949766055620197853080351399026258740460025856462159049490050350988085000053948805288447687620658650294891384120030491306607802435177747956404118983581540854811478750469099607676320368884952352279976450266107821530743143777014857127917594853902750368670232430756478150806963014722905527095722517106526540854672477905904489143725186940546689106822905762968473087411507778083436232246637740038152686766617711400013745983553876769568090984851038992937045989367645264882645568079363765333946082229086795543598568537355915198316201649572648022635465664908949481644934965387007816312430556250840263536268099325761503908328122698946853433009089773213271401957390351124017589803310311805519762629256747803618914927192476826094994377737413179177281432603626182401317211638723953724459453280809193944981748417015314810134184367823400427982881476592738479195390490532023312928590255867847387278302201151377245745882477706766058251201922300493545027900489521439472320902780890251405602330855509834865849336155926021968946717257682813173442159186903288559876115668788039987227157290651046873669934127044063879279606761655431195685911605249558555379810810492558882400089951537152141641879453342672925582955090844883227000550212829681337349020947731707075353639605407189219419221059441314960869918962029451857174435566096040249839513155570894223960418933617875339870066540110274298933847108421934571650496195415855682874701327075921615477876982061477626809131298515601741479940095656271399471671090680650728134407444412894162456026138074361104305923736736696260669980030955438038990652576064793697536009443051073515114663382264016118594333598332485846382372729453541110061167800366778238671511409110985527605546900935988148371619041700101054438059540652090696882698163038829462751862620912710317346826881067244537979073408584610411527651441644525821932468665110266033806584772072034552562457580755499468642633558250272461170887202757646493718571388932777335414254309091008339189884578652807679924267966918041926381248269247362870773352333106082466918943069130872880506667702689179029706052868828513177543394988912049695095385503155640734690797948635375640931258717584972740966207362687336967886641669670383115081340814078515684324963868440740194358058446193863078072817640245601593430321414959276815672154286423274306668340243795312735336889452761245284497468390118488221972037381227279272215504259385968346897552343995397804832075650556627532879452195512203873677494348625151023778863070637386041859935198101796121837740406734198176743656758370193832655215595427864751782103888680461650985059240012891231798407538534127457967773901022795237219142600518589307230587385835155371347400337274034960853749806871476989385239257811389803262963877320677287582216618344870690822498594647286659264205596062612697083582111828736081087578238072243993899133912769652907309355601726486817351301575756779807024783497848772174152418915820140429702286242998843019579429977041236925402959886508094598199196118585159501719872211910546604885452597627316132244087547950259551448048469629743872379559625489631025249009657744196497685359146241596392209933314842014742735024613239280907216713045845814596380883457441418820982823971744439616187644000282112004341028741986407893880104769223140478291090628228846276262645851809732371372010291643650674361676849880194097494298731256824138897254034337484042856537309351309220272487292191196421048609038186691928898145222299052687479114000002416734989398804338975066244704103511165546748286132160511391853381783069152988829588778028801696115377871980452206924139161175084924239081797747994873026330434866119998552523226763819582439196394795524931060803821712618068745751611590194929752598869812395138315243029696029982758213110991321434017929657922284938650402526733198749657770570998290485994555800402547725392034264975585710056101262492399063273958188274035900058896776343092309584985848631627160297176193115429396917656321356561075810218118685713660488756871519784193306062963394925031280734096855421731246078752068786561038228710944608238617040745177070767791445777198078658076693158086777460227743093416102697365280861793234749401991276176000044567583636920095546563268682505178492501806333362465131152200527740242685633029600996480415082356496659159063316539815475405872983456869727073979505928217502643267389084880148150865459647114114038247954885907737026495046455287928416833602470442987389858254985005146496405414285853125159647030852416873857795628659892069159174778110292614388862789482254827904967036495897476500827233065177218587017823962677933614624393405798180753936642351254047722319912840192923985086757118625128912820118127944164344652563721571047663493784932399804492713303315473533060273219084830949367884916191145357107178692735654224934520290541566728860962929999672498840836057248179084470022988975531718861467907743079095205926016287184348189372023348588080048482830996695786768760429216970304157932023261396727071854381199128544591137228118387801123719939588842510352318463146219937524096384525632559019766268520723347470035077922658581193980455239125047796276007290505857120855797075194671435797855401703900642027759139736210589184239331176976502867006344938424270182241243765404680103949270311089781203308936322158279692678214468795294539552123768433762394775707268506050972942347218595661607052908429604582375323336925782679641019006977396099268793701348970843815521434701416437187830984692415794710784309432563087385319270328032016237983702440134704105874676215916575782543644244846755786747789826671450210995344867936128330772926157385630054278980451453346651060226782194776034639786029428587101684809628826871172693688029427643141432778623292529147857808442877876716384058704166070411608626555740676634974543882419118673818500124246241924340463922405143383587791064622614072228309544257224675200835111117829742588643279892911224315472499215133869432464398255824149298068014662665495620807691263210505712626921835007312036460113577268011360748735142460687140832705671203026594777377187954542754094315229876233197543979965582298218777637305677243014886877319698120764069606275999454955931137258325050154965555121786016447778108186383469865815834963051991442441752394734399375257522628509662326618699120103476936618560636256604146919234537964614490919032651517926517939162759039022203596338223328371477602996134034047497407148246237850568885964835798929658725678796255285565828003328720088489093681934225161400760020193657796802315793763114540917810929523455381055908102249237303100491419053919631780088199920756123838118589158838023025620178497313589883811286843895332748301770834977423339750364474601939768335445946289799546531885698589344551894023320008342919397592584279965662857745941165114544753742223440646343604111745147753469819187805785886220845275679197955810563360501019188166510008402655055907403595239020591773847680296698830594551669715645741818004794700894714540667436298275326423023551279763690202478499426089646192674296468856485699576172670585435832682039065800859018951071175316781921253402530700336075012821497632860131017095207257642316374672706901088801344739366810919448398387833413711485263018257837503282601965724277201762992980951450094163199745256656986970394475742713185697949559693678809889611794985588235591819076826243004760061083688159473259714746975067982435224254512927638901608207843545935072125518974326781021306122809439463833528680758312059546465419991189574171768653319085210264741466440548379656073812621713690167945674952973565500098109677382176368496398526100443287132129887689938263371224459332991713195128236072591304643855484749128839885001713865565023249161468643866156898965706419027809387966605587132941355114657271618905389433589465488496662645906284128189843234383040743052083257951976748274850986378539764644309029188842128356726232221964977691109302016003018153869227335002602594105684360186780063416936951041365912956188717913497282478866338475508781154739850177027723140190454353381719330661533077627017764267831875027321833301095496102818367144468650581223418169506289089384152327999875114313025527946939574276584221708279730026172791969202110487984803211365492015755432068762085708226181868279373813582755712552985711658573638492058211035417570021463269886531610301729243160675904843722146888704420521719248906744089904467860795821057917367671527433719977401393283884086721512769697216326674022288117123311547367147196461172926356559467138981053446442328773342438106157018181886825144850727245769103485074760758394028574501284664306936854027999552075216184455817199805576747474302877332281637708143144817790205091565310263474519084810244675702685625828684737575606086879702799634890897720925806066580279528300787525237610374670117134324435723013965173321631961753330410125781851369940853438491032920110511548917181003354289899083190551986851643278444690015289322077036028903226022734814995754911966304192555615945706860879669271474185982815679374193995347111873073724130160743383939167071905905847457899046269763224789067711628418884500709085198195681452718804411121992286289955851119179640190952201001528863276337075322875457451873603025667474302091288373933247377781115489203843386969621412138980318036981380503393956778071284000198017499908604759232838803087874621050641022125639113542165669457246955905933332035095987129076985235637442954386337355348729553789313656252302469708152227354209314550711768092281016606132979474356738170587829011263636618905679848734373860775724131122801967021772350647059916254459715834561041834178673674134454594893682101044257166721497139128054486551935082393386815716863588740868746194459013194621923923789300392824184914650859723729831656424443454674625825997805241391956205262130177131245840258280830897838332878956320769085372382292119448135235055780077189231079892153396086600893465917995605987034647149952937205820639319972049824540550125419890342898493950032333397560538347905165264592609868214208458026617984694886431768048492081869884332833302041388465981147466836552837056127934791417655505640702397197442614711418546042083521214049285903979509504889687944383923153147804311522407368403015370519483246968576856403528194097715750855875587535427289662802407233258939872166481492461747716243739524472301981068864896191563994979911421962794537238972487157751914671403065558242130660229786496259604183517765823728486547345234251426354123518437126604850488455214394573401527934537673050160642345791895245104500219402457017745961377782987936628021357642248042251120990513289706963146895885353772230460592532664006056544875128383120830161731795542823851664115343068617047201218480059339891605477803194462761707624162413914878085566678403688038874125238109201987445412873436346482289261831444930744758645608433608523620265742735154627057942142530833009925489273738366736751061097519098766129309576293552643882806520722520340437668608109801815861838386277971955390848211184453316149674550316012616607693729999383840657357329339814849132969869739058287526008339965208461981920287045637127657289438456329114405359597688924652502528206554475573214050837974634721924013950654067053608692365793178467165144032270257845816203138198862112708941987973319977679501070672029000425396570751210919088929478510153670449964281027110364666590522938844678372308736808716734737779262780482435734150108153673563966037167176767167666466375633996852698389192793241929313205626219967563436940683631258560394747678584322602565521393933456202896721697284463818697668690895620591992966430333931277468022788973105439296894072406223923238992939788167597547226977385416808026290163724802410197308354350932781989012047186114384540880096417066582417247943800933234248421500443716116385650504452810092482693029170712629482330418868268853989866671898574335478548791933806791379662042870870341218556146564381182863037361187122236988185826953307862292117474126538172019333831762835429862942665520592773858698686572987274450652237543798151537423407302000656884213906447390471574478738830199078465361421349905973940115627255706703631091129711349574339718314567020462641834782466588264114494843339217008770012359050277254358656043913081868892777608971008999708554535353213221183875779409595492433146718490240620519833707765748332158407210390585424368920208348420388110707897953956016999671562446532935666991355925599981626036456815171249136480172961588780895241247387616445280450201735993040734123436669929371565715480974178175160160396720113916283494453148538297981013310970472454710188801242137466225041140517992723169874415491714496098713767440338480081776662808201604120630070060535803447428860172732048392150162735615243177860573601123878204606552733040919113957367495816619857000894034509811933297842853529940425470546075118971279532314143582225871663220122769899291869371743123563637043866916123667396810210000802267807434425192745339699103711633736365086482230701228365562241741666736061734535472150458376789023329214491037509384755293486228958615337624320959752084035933372969209434344815740840032400488051630540209762236009472588996665682701886139581743989525421565633408175777286246381940660742316484528322557121566786931721192359851840034554379723170637291979595489519857056834805396043957500488706240087258745871707385270638548499681667303567458915511265086337493462051783816288956854867004273021925973194457607970322851168228737169305994685188340309156083294105860637181061813881117291564476729222803954393357309194384205029371904709355738122954318039362701755349022814127729064129737393200292978505804141692539078682141367556621420063848662339076507903630272243132816981490117366267471377367519396257427939966440739134061838002114211207907313898279607032814971400059426636885234996169166918824650943351344400469271582285499082240361320849909458148370828548624953272349537702011403701950735896590711509698445246947491582447861799552156431925221582473448173689280758852082701664409505656984104942206141464749558379563754370631794635876282512363160382104045250132679270774837195658452744454174459294967955830441719002101831303152117829085580587518926278033820971034002001419817227055253900103642430437298105905397729122278689375302575108168991230528174861971239258821532884623081493280147568267248488962489118092616746752460779391985267611475534240287104588193669217139610341281480827193467977510725747242949182522804983664183120234463130693894453827123275509428196669424980803286760146564245490848370377720375928665556464030850455948099029563526918798763745270629628650105940260917958424384449930889834852204469484528364584730571298696513882351217042441812027719123569338447351958244140634918201049549912755007908077147144343811567558865703632959386294563298108155165370496951079373407632471804809052364188891188160463784572480516204645743970441816306695185059065374580602736383176671928494387750183196373299584849809080352514285379723748732321227316033847838584859999470708857160690978564561484458590202021633700896009419667590919543469710924226695049322638650946479770288414440742691859067115525732671498450359288945166301028194448229136020783126158023302033857167505794902517633654185519007435814874789753761598049725897720110493390313104313880255022237243607856290620098573972637402251070765725124221263815766250037232063763950236310623756020383614100018960129495369606053644543947084875870185502667013857175968499675510785276342406591112160479614844684186880178352083954626948800303653067146255177830073740564955800384735499520716866737478152087273421267781059015194476748450914881938351449169415061413842843788875966879777685406112252694759109575434446812262592314992375908060899478904062727656316311447721829303715103272116764908052820773153580910220276730821950781769587303256611475793256157528458489136427535831507673038582270084343326508455028925892421399693037280788564165204303215566738109481708134830929389801949366712903588671048898696130217149941396639694259125504115005128873542793893551930651312920154737596204214774573528063434402789262957370608005639440024952136583616760537683131250626754540837858048817101684448743016099732700207952400289708243500253294477717169695435117757636174198451224096799441201276932775712048058443398656844686361349231050415784602351623181601843206500253328237847559401875780133943114570674134785272017608465754442568991797840032930520662245783838824506197048822201268599868951055500391579948101429542051560528103022960462523679317155874655304009457849390652862850821470729414843871939139490274412504855258398468169991048977725218830386009189618568343067763393503807745960154017102961496256439750623123022186243443584228192656918606604324803731251952421223624464625441702744044888527950232386249457068066707503586320044629573204704780992494200422669344930562929451475520996125924343071270209218794931418622946515512752807034880524026677602700749555712705231295252981426544316295267698754274197284025803600254028422833642068174623730754012638621628171322118202324357351014836248637250107533959411361657756527857091350336965884508986963754829788617718430803941447804941709111029811102329853289050971124870071506391361943587836404927982226969758644368722818438450375248669586530556216327370845800443548492557965867908461777578240277930152141887359496971101746078764038895195183288081285809977013906750626405496337087904094779806782868880202954157163525642185610335871673584012232582707656202330566796998967558275460225111412027317653039102368018547570348512584578702839825415962128827520109396004572725388494005944125278368240191777316969504265527675869529929698251377446993760177775143701594032716556440244225091237622290096701441960392180988402077721261285518606454502623214504323430501464455848446902432928815701229231121415455300045050440892928679319229799165104430324354875679941453582648253716633545929945373267318928050044668848460903675250457284149156816478158294026689745359396427402495412777464028882742533856696559085047145801179707406691156224081078040803770967889770301675878039341070000579450564346874175145831916617755049392989294605011811508443202556048831686109876679848458093530629292246287072919048326338258644484635808823788433928385520298744410820033350830244938226792087380486840160562963356461331421573837233076243064817751155781060339121085426319214831390910549692322796563190021569979126618862267713230748045905079628626693172067184584422636047855291391746387134512431307723448553778653502247314902217187942328874676253786383971883077226379355480391771862101656667698440957812201072884633769009427975887353088411485659212138776950654684873368388943597609725919898385148936987202267933365756700298849874765565409510321182013503326136957675371175164834919535688466742377772214360734374580432687896845245641763801150865938801386771379932564906581912562831863617554595439700931818142110764206631208000021967087387571040146485888379805180030868350029929515718424480035105068116184727625576042572155559831704799680741491391754964813268012026381435245437688164662085972068287024161195427091022794661618722689044139912949584913507479610315064156849714199140473924369515341488010505820388073489982069482415794638748278636945021823091710232474162114748022736269137894729973248338210686384355417521894804631689249318900785533439333350431880184905477175523456744690324646487126901932574054764226818239379484599383509327866468500433535204107646028495834534771202131871675873214256608487217428817204530176242168224146934693046857387519023209713199131162943611799478035814920697162178668176002720631356399914311956146978455131193525348049368579644668114951728540113379454212685984013927461636505503600392574247578867474248621038801762001250273097835069622944618598025742245170033733497937333800184779981607908294555468857882011681863577981955109647697675855174935213277325156139923049121143686878710342175654929207875952021751026454762595081998011934903643308011990801107171976771401884971390336697645512793474613611057665956046365590004855621711489835103692147131481474170819549494682291031691546274457122182243607454903799001515060337321295560958033077782280591449389157065139044368398418003110138903983839017885752097528930676460204727010338201747877867153162492656327664746136724532404844817724261489089309391803307237792925137144967043019624955762971632828309552820898431882742375381227474890169280489008553163941275992205156492230408689164218481947842810695129030770499881758345907794131150744911305539570937909916809202649120639028985904712337230654460414644243264967117726983187850458786280186089383091315656897928047096252966344578419150668321553158315836362553253824404295527170766992986652841431186853313443611661951764301773341430542384685984657597280923101113491804714474745580928302087976154357608814028234307240826231883091761548474710745570423557776141446045899692734024092907478739717578226370689102576747898392879994944865892531218457429705003182369569725299209642534311661204144500534354094476965014000179593937330565173949544293353241089627934546528615986362898548839909230746866606794714553351759061684496353017300101285450488313129407757736961650925334715151068364589662224601254050253580496640183418976928763969895971496056806838250635324606975571929074229414620407089313562732917462235708226512505802721155042324934663477362758107728386537087875486310116006753769067743209354513774149727472620713988562648968921808275228838814576722459047484494613359608064156018508065963046599178889674874856585843929186263183070306984956798889614358802552461903134833208421801669308074616809976843287522527730842837133605995979392337403908130749014811217324141377485937409056068410437676490527886130645803866745041252877501493081031633788125772841364954796726267600466931851588965662743375637863120896327388920897308530154838356534808329412565652159279194329437992231701064980502236138023418728595577160389963649197499941375248185504205618344889838682625909924076640903075766924083035851870977487057499244008837663810733534692662334319848298063226018161276412909463353333785093270109141436865196971801676233483969356716040853961795686526822359540211216153987912839209074961289447363284400615819436662995594269556999747717834587619857792406531086940724657516370760292842930123320102825490724282560572473679712646121443191145380596614077263062140593621583636511893117238364210721213032314106703362438910287329209375025278481300312642185039060036865587247043746069571462730555989402215529509117830546076245749893735317601573536743552163603836167488583601034251125431731937858024375692700585293180392339686497411042140700877318307630616651771680527036287073386281473844356551463882676166564127716354634775623270930703475962631058249596912072876840625060976734740473754429075630721112616470356779232963933032545003394931901333685652412907482567566385567024625653762502475683593651682066295457259160707590260395075561667827585623783265456718727498820200722050377258085644500326532220689647710662882622485366554408264870340497279714359812643892025391933448999706735326519597391125556826274628233943464449848249830261170742563400457892272717129742434807252759396864156571626253062655104065328612535952995459442994431419246335849387595859752609285098168912324985660245345103830687141834099812783914342446403550327773978676051243716490392170862769711145469967724139254765661635472229523752067114250023251584856840676978465324878740102827448567092633345277184035030871021906275508970999629699996652119034980496727333153861229773163293065559498922623233354318317946456389829141844413571673131203710368922467964952284615810531775331595510016883943711922930064351508501221500902809150974631810275746149861274565652248237754113964725058857207777973170466523328241594222751997650923906918485790753280595031047789753995199022434533161974273845979490540747512203014090996122053774894613484800976446473629075517892971030378179346101974663985453698584258379665133598012712429147996800641171614942250165949452966914922330760395608728736169836384323849194322639398726839353787186164510602298498566974378361888570955567057383570129266509339609966345205321332224311384869794210858009423148588411095136604233945181918950781431245013942592305847246570524609553959881699935549568517816199655489570618298150485086218958397757414755132055750916307585083617614119696310555563421242090855891412561493568012845681550412606565047425256678373508941409518039964383072430630705745304614261891493013680739607443398279285983088059711960175443870559347000966830818650792682658957857460202635834924134891460490819453188430763693268522005763194205892578876281106660592149563024507270055668991731691655039409200481158403839294052423006234058604722293414938068566663600402199425192865049270705639820342277623199810903322602473327778698865923547588959945089244066709556231730697466977498010545352160603397354811380635145479185903028298708400536550052629043418586134859392139895662654201885677664268346087240816036800775647811956182876820588796238200807362888535776985322199425169690353940543299677634402888212612728853842067944144146463260002412739896931090999705777610422925870329758876950641690953791479120084771903060151067526183306881201456427131156560317263713114112157159789271869964261365903740024520584186256595976499473142082179446451611350631305742923126929831408355989497895692096280254895673887132726995492050761483851140670456657710900165404676334518528511987234459287367360685852711948130634890167867577250392653784634457212783968066557064551751415467228817734120883829165508129833283391959300237286280925349116822337780460981628508953338735037543276744478998825515868294928780968247881961028621659874189196291084476443647318445784740324769319713720186720522709124485941930433265317156991948137877086460287656956817589209944077378152869307999177335026706700591026475685298500778301719638908719440346354637267028150719373973070344214479418403205606880402163401304135774514652374581964518301202711762663230636788608199164250963510493941133049968734608961415156230894888518240814547325894255152294414965560210775249313684434293169739672487157659450325774050373668444020288200413168562297060031600294788954753753864291528930612542823175281613997883238286689232384092376431713968686656427121620788030007981071082563503923326634516041365947323646387698030741767737234300970411991875425804535313567754916311309574481541261054767855362387957590203033590617438776945485655117821782788878577264433874899507737831550792458248983100862451228139636643562669204415049232265119011963189551795825500833576966577718575893517025830651261989230500770677246229631296644899206815720222928387502620244589846719095918742629651836670521344344383401539167920573059453881161254092500832376159208079176980661047748169621237306658717223633935247982684452577708110505507356440586027706555010177741592765443204113435217839868980734203886931307806124243134185830839150881463678308313025186579399788729413058051244838899193492290013751661183052522067636455395588059769676792267738974828999296232971258572407457464104260679918046217269372390241875881143869289441172246725496510024286717233528312481999123481358392731901640923126205092390790580695988135117307792729180709080347315865883939349516884560747387864956746243087070180687073879065457134990636772324572641192476426978535937400800301453930165090597632546175245634629739658072707088179886113452065377072403576669843711214949458344725351841783287091852374071833624857305791210603502605164409464356020274320899208708663931477169031604863365986994020494941143308857289349828794527931855463897466959698424436576665347380115882243177794588059900164441880458851263644088196364408795154205197642826378092482001088917171445906086204830862842002983134578377338052416426255539208186148226562416247317710182316164556306126287098701015472376114165805755712370516840258414418067928492464332442970602859269331538296998055665608257783344601930394328052990175660805836251444309546306456816621787417703896838881269781271780185814783740043288381561315399601301300917672892242163863215990056565521352949785389360691097561439432474340775424623671585448420802084952943285232766259977200368019261792015299558431300476722315492631729628131617348693141724824849574754474099418839179548533752662831210174181551122550566867929480817744951698106708865874131778911573724672302518195722330718856156797542465263704391056445196869137095008898501361230037629355034023530473215079592847730554896652568717995812834144139756526994274482103227691172992599096174791861500246734605980482072416234565478268008448457375566249993604972072432938207311339371906430876306048085616755016763332490827808265619635605627272163977508193645103594525843572575268406187025229269395778666510135456961296472455761812934808926023317694352921872990765939144871379348502174153061202820277481892242131237327581228581506640507447827589652933131021307243810130839340012771002302404529148567617373931041272011369557397680816051195560046328441543085784785996556931214349008957977421878156266110531064436953082043795277284198122799908358923170320114205870363669037705819430975109057364885224477112134094882453547557091592206814536545514056633568273199914438202797868340011244693086866296645885658025156391597924857422808411569673115045779360361030740713245446081008626109104678326443000242320138743434396976853734633043155063262808253669705534891838268057108059109325213720569246754119710922558172585848326170004035410746582692333598194904363635237890810454680907571240434184257638499891038245276122483053119006298267372752232411804368623501548130771684508122011071677505757954609563141272454452950888291318503914597000203851433187381155840098006831840163919287124640520531179754789867311021655279383275059814771486122149904635238019760806960843795867550817648305071881329434055304998460788838448863057147933312739387790479266727982200361679917691099909132704904759380312326783514963064380553241660063005449225598938606131784785276814988709390011121339359278712225695328647500262551635458700692855904158564732235621703986609968642255117579633063614389843272304146164211278487072982022208458400887879633577408033048669856020700869611504024429940097999294010834685665938787843711669429430977584764459986334097856482252052374497687382897005811386344295871822208892979914359983250076482895077608148215664136819094608269479334829132933438664156115621808924384846992958752081586214533258953014996165096573100753077045713158411373576614584064287553592254539545228470912583900140764769610770197822227913160787762112941756065293510204687577315349232018978264964324115006393585002256977798263323128820245289088393194443094468703026285538971394602271350017557251247554578417961524016682288703711724608591936091752713235209646133880314984399044937071147724686241787117872352553940346557202055189196027634655461719501761851719262371907371650358076745529452120325874729848496756108722339821854480019155472198014416650576290091464829038238159406886947942028045743711654237408876910203644488066822889041338187386573323569545303736483296864957638067464844991339388722327781148674914144129345968080611308871847598665454012812448161107607079279699277111536711092921012090057537002363980788881642165023927426482288645187167883608764538268931092871336963413809220217042344574989426559017745051514086535060056238745686839733294152982845487024310898124619694639173632307140377236122630736088809313551997185407071180669103303155275819697473492919513689197605241972665228128981152011779266942005019221636871276721964969866705568497302126023014970447233830368624613919089849296500760719767189414587305316026466006160532983608744556369313647954191282022093139084518802625048460785639745374630368021265289706768513370772605952253379791912343405589301775845210705941835744747221698271579325904725437543959770220927437787590861113299135786225206412372949557193976566518261685749934932328442341508092817002293512088341920767095429272888339452830970145178292124492011087710277194678056508289963391905192264983055989938105998599641730243769542592308508244784620803174112768404389629674479532675497251479545997377446883472124625398718587655940026999216260932888496890453336090608762792200817318142924073078730998532865825484946700604071838885142029810608315457931385385170218804880868358782774247639234739638342186100405658883154187343750639265313319885574509436175166390841760658322238479615502597783825130358537089927003904983562406095561505278703217879078238317146863035312475234745873931483665374538636379654195182141976271248340017536778937084776594511645733670197359267665940491558717443711770066392018535455599369986984430047804094487032575201776230212811532918668664307367687990171799038805713190741577158503005790494801235352824334409203131557635766955098178434447281391312993477060041747669256648419836983185714678810133853562999227741792117379639572643905076177952754641908858399034377799797677407664368617410422755209402592312472229463936042559209126894860001008845812699344642075044052909198825170855544935094934573211622756057595638909865993165409476817322863159122582936618912090416715104448442885480919374529885902971528555451279607495333159424966625250492250889072086831145055007925859418974192231107053331192052653240644522208697662679267087009916711350692041053592497987452343567252117390509161332059803909851062290067483632639856127412021078120796905165764048849139254551927681184105833701222453518478927058674631828637996436318696028421914784448531694792049400469392696070144583912272144856955370057409249544163530311620484705542728743522437554389430244739899213971627274159753321347126362441454221788393832779916204017514645441792322612223909988487542542793373407994794147711614343891214819531094656270362290016074087254639576445231552212925177071340147743602775239406624810012709767790371130442755317338844691495601045518057861065602278018808367542568214761829509927700349857096175921379960031952049543644171838368182503829510491927066066621538141045427408333073677411858291384399733543454143326509499570600535824986060349027975645314901500128046961331457075349123965670507175639215977945702242776447533076960605322090956695361102451714022576685132583150960061670527357402718850560800854425317572040768411810627375000678703537259563661576869592292291076521253568864861237884043944709696375926840669125720989115988341999403313752694712603625705264369518661997537670213504530201957919719148400303829767029950629852898304554086466697883638429563069985175633456449106699017273216834762963605223166449264411990195662997032440160185660217212891500949353450503876416944716881737083069069149690113197800541054888209389178860383817303442662255091716287236728436227749409973531976925603720867195061854914629396722399723821911140175851460367265535010104305526839557933643625088987541057536147760931168214793636482084194139820740223227120411064758499313454232723406102381340911186848931159426341232852446139746416613648063399167424116831986401915194114644161375754674566534210730248944055784991404010240535421203899983935554715157546236947867497208261832322684577062464287024743908325933132032173162072124807906808862664540211276870935593382228269806782887812850338792245485570541398276163199731363177836059995079184238645383303621067702998140092375910233550448703306584896204006003968755297993610567852778955232320336995644561493582852218033080601224371063072320286625081214040844826659616401230076763481087889476401894270349128182009700510104117697856814832316901158139735517421579456892631978289997466662292726296410950508188757123529540947658549720973807617580648299768549083440461806637583539354237175611838705534781533590974076219194773113010584841056614496164856371916961869305498765205944797372121619896909705016665404674648199223179910720288899903154320733581785112638667037179406694712707159984180379268206449819675830323224029188425538338077609991947865202702246126045005196500846687201548217552189781762044261954103559453374489504888739762532211697451814026998991079086026200109482932759079695905032461736766061777190723083064163030151075876931667483932232227871750587800195764040145192791132980905662220025221546476911109787910663760530192691938858511505994716740705671484821832871406371159848071361656356779543845346642848137871411465650852484586067876475965256059061766902410348806525910244686278594457850984121556248958805113854367546601964048135321166218731882874975067806879138456094731427605530758051901516406461915954342900924436668843277818740585637030701398830532834995663248977912770018315081852350075055863557976519844845585733952974397191854498711059887596494275219164356371046677501680919188916685281345111136624584475870996234230384871675485874056169526405888350352603352066562139427371495870196243827704001493175602694837299311990248657703516015576261004629393117979016348637746383835397899370141423595735061180446627741803126714725170672606464977314727987315448338040713042801964516574792913531841734444943002294015491540762015336219883786434740790106476359348800796665110750687966138066331549438759315649722522028522459969819611470952519021859039032845384398899040982750942991529020902739699323388231584190873298712148346809241019770225300400562177558030363795385185985181227234912669433065755918486555358758157267791687055706292518431584822217195113397979917866689722985036086354447103365227493160667828188384799629919345014280810695014036410218036791890006121019224134166539528081762302293736469053936086876985808945338977799672959215423979106942555244936809077074453351143563141746986416439653218146197781568474727394065271087818191771091425868754486682140351896360431696356124115193320820171888905050640715552375293606750299578455445537673453621705597748690388759456463528165678082863363349823293601005186465361908556847572584975435969119234848258477026581012051788391138945354047135886814557174570886585803509529721939732466661133576656202488553890349383357373234598579614003628564505185326058076358714435246440148796703121281985556250885750906068479684010125921329923890000351377822889773825221322540298717158707861995243661510478120543450475746026116863368461998390333120620985139114341503014402055375705356580236231321249067179516749828748386518356760911066738291143534592477041376257717269004503428664338661183809216496923365889864998533733524494104668566264366404979422658512797753508648717019393681294458516977521523583743072420199992362554238376686963992660772355440639708132107394485255012901382599379727879432004873415915878346057869988426979497507783236096537534575236464671027933306695867660487771904360598409588669504420122188812857966832910855816959139258015360921708974413908418325626842766874858352817064029021716669770016735666178334319415145490270290442765159908018604844415600562939726707509724550527695507193831900448758682213114314245050697037727928329851810108461163329715205643371459767424162328942616684858166966859296348531248976347344903625581434238603249634927642501664758405444880537755447888203259488178232044722379453171504341942664390764408223864762157943994463155857487122560735119045142618931422827287513274554226994634315662174236786390529087498437469083451755508611469539147914252114408677485743703363946183761569516727697048843618319510437203308010263473515884717470379977749727293390656741520831403222682981613034142956906165337228955538089787991561323281999200849420297507471997063437675016777314775540747508911644639008039530399239198659188712623048149291242365143365437851568675824294218880893882973488862503135665795229620426714558092322556603446582413830508912238269724562414197243365469435989663196732681866215582694096027372621502797009879138733285293261205345424572027188021400191938481733541818732355467639740159375418317014863316847759407095151576097772279631253364973962399753304152880223103236826517576355474161113194292219402374168041042275655558236577217653303500205300386378953466017456796822882554784068714941625125184064355605510812387468854816097235921309832618232527031323873885909650181124887144040874105400380748702330468161254948967070105730793461621983961006267678542099512338728760475028220850900017687569824002672266667097539080793267846190816546922679441460161429160782420136025110512115905594436042684430123136706206434822108738556038430419364253665536155373142767304522069465557138424901870860324673081596471010804769998171609137003762796711893538532316663442832295188008376348089814753095960610714106654420418200934689795029635655425152021668308957860971386201209840388274316367003748693674960204188580739973767022542883779367835724740943078058433424207752349705070124082744293255437752139607487794676801286689138102074390443939901045904292479067062836062133639448794933182854675179522401671614959103215539057887223886127231387986576815326025741210499873626438786324131356488379863948438549244912074872533610850141450080177737090054116334334719201693309975187253826256852698375867695014357617476763993842049026025037484375969656950709567576794942233879459416810633684050844669401743502679925845362046304736837032934766895016045818239845082840264665575130126585517260065870233111423589580650443660819087307923360187243969308543792261547289749464021884952738121462361819521716092732847541513774917585439734584450153972604885962935888955407797034120927901424148858195035845394311283622318055667886241225883511327524092841036163324391253465433946529708235668128464674183739912559301025480626436662559231871272179396044869898119779229846467358927191776101454485583547958197919745060984079591143523428262155369907884891725588684999726396725991657990795789379216723274742328749576003630467027770745981284738990678778330957540371829139388289702313976507037416647919977601369071882389416317266423326326727966011517640657766932035645324762357066902463078462158848275204043466327509787742465000393246251921663026575329856733795075326454889680392844966291931074219430012229398043911136455793357443299398994636220650702125217836937161529763607485311223289515445285557118942324512120554363874174679284030621738618294434467068815934039143579462107484823274326069156601320838868098861439308196460901527987402628459977606520544660172020980576834632518596996453001733537983950735707954753516549741612553989000834542159165928882305877942904388596206399572004168543534586620441608976939129495778514595246546383455942602686656295068620877612506765382474983692421815880181508967843318142120507659639949546911145149195048780982581557972565084986869786327800898052807856850306355011375426271987305692825942392120482317872421321046777870871239101334780378063885719993757333621319774581710277279235701802303158386455433143536903643367492010364361700027043915976437840438849740773933930452538635156191593284273298009058525683357350314684563205886166726567272501921392341383201642957256601290531264038945495161084913543740629495344281917432596201985706525621619464386480782715492987664742784055117899712140855434440547905158183249817918957046539380546462798019645733442157290183917526561831414841528444989267995056319754959169621004418842463956621702307062826665309230600814978317153452470911299157786222705548206118998939031428640402894397468614393151808035013277748769151334808630489492433505708618539178365412351902561747993304178887487992175100369942489657449371494580233954317233089789257852825335619364847621899723453714823028699210669107897146118958273893963751570780088207046588890715980398279440887448253883100007910865699922814121496357689575191374196127577615117896725264780802150200109454665535134706487793866898690075292425993125602124662046016272634906334110639128444833657191415852225774737033152322939655447838015358948711149700333315169257464985268024668700264585811106103321914382546945682744768350982869053040263628778861571240348276915041679033744571092336767121676118370666942768948595779867729510182134662584723032483929347151503011956568955007066481671158283549264001313619525224219724950543370065720335753729624502607089467833138694571733281203914589911670807227459287019284767484492352713536426888823282126272271111769769744206279344841451992021504747197520919233830950687490554156669285253862778852344009640857766219972013164997288401131614320787083231133472248057287843812514704024967247788311889097068115351229016747126082362869322213699702380454717619642378211705880885650308055249678293053354571664658728374198780290023288747241719628997645661497610965981417943217148771875708140565035682469530718157660614710481900022647355564601607542726575395707485075570835789458538877698303839945888828730340999996337632775786047458214044559999172181792495862933249865900785261230014441129626684462513417169832747239596212341282372652884555398700350432997928928182896260229545390715847416648275221834866868956891120298710023263414701975200070130322726563376906076467009359492713303974143311239711216117621296957891151352142714989461127225451998096146572554766862802924738139012029899582486563448382263296672462585509898789956909186586814770149892875509903720464757348449734893482395843036360057363060319745586952453917495112106869434744967736546265824131300759346659058565644682439944601262714270880017098616506874992165875862618466838336876310662405056954833580052177213826212609378604558523765530094627079116647090542748552759615462425154237806915364629511924096944576056862790158189508606829774240471543987672605862655464276232389672892894279299248035977042665415610656848042299604820542613694851098102888518561005930317373191223032323139355736065561260760197560809334044157992950131080001696889772078216274692846749050963327221985220642415156091760719118054544900929114882086479504448850140454069165170504163301351435213780085085192708730721771446296400303020146672328629307729827821254190606084013879029287614757705048352861975216033853069669500971868088765544572127732390890937405167562000474512009884230461964286745052133061845569611262760079578527422997468905140262936650423608556349335776852611864538309028463681915260675615050402002824649664364628296704234838771291219247904434668668495554525305395808492318372090061797013376755609934344060544519746865890123059794025687482182930430929350054076673066105917655057234813893649685134597897853244796170762330550464451719503145355396864864637258823399480906080370858138008773585920218781061063014656251853486560128496468597761976979351970164052009838931967643616665223489879636706120011068700529961478543578136928505501657632918207024719212724815602393721255018869978164865021688810701645920829576903719260483131070834068738462362057105438636725563145643463255371781114218707777245985274500055207926263564031992805142045410320428743901151093483679298014163714711247602217279981926486946881435893724105701922028831661010736702822023731040203527091554141457001599256914812596696138369275814557249390243787275320263457457017912015693877419878184830669139274651111036446358679569585808439440876153359825746868816957837433418880268113201193325188630396208720069608469533019599951821403343583862108635562405447194026000938585173688119589709381809630477734212714106859659910062543759654329366498156727519507759699646949769219659859003556092464934259941660570227880091463918175281447073259786717237153946011140993035756182236239219912057982199398677706086642256983199301760180900860141887754769607566287199003277052155201272736737955695296103581876741554800467623234238701977563615991870080659823482149348490470478723087627091595659790442892798093698578373860654308106538356093909316528266755538168284988074006073810524058694507180314276835484685148293993150588765248184193348586496335681830908635626917581586667916662071337340562730163621983776151828713800274372001291711106665670918008569063275568098890401298928013380703033339155317076970242402321362746050363993720833633589881842956774795196936625516052220170126694199512982674934790111108696953615624236189801388424149951235295640407690249535401244496822999803178193443085999915740398689810282558654733347727831124922788337813708732003544141991405565843680412073197529135388240623768453417762419930819523219380791732982324725617661880872139100627070215017056115350655586797514222066185915619436500041649726334044495729664086515477114301664864455142039938079052362247450021190910101757334084690499785471564360769670930100475398517375608035427038739079996945599380864121976939006495431987715326684291009526926059040930789544380923308227064951403486645482592499303425532960539445479847529656479156189739740354531335842064081725672549479547730269379210485217404825487727640349055393131717255818799670585693679563771600018147804458171704603256608586234773491758811237281971649501909163560169121905659569383865994613362226611701404592781815608585588645235491508618946819080385842664688306772171922257953072556694221908725510077908860508322048838502393551010682244502643013826191764911652388596209362304324590230537469755462195073885710882309763023751080979680293958748030974960289807760158520720005482720550965377873518228329992552072610484884688386761654761202163894186093227488081031190519449866600501619742310739531705626996860429398959198720310180420629609225428455504051515265015792811378436890308048844637144267235559452027323692034010954780449468904919081675932044517338913655286607936490078007099773643604932770686914593546094721280041040797013063643782169360328126128995435943290841306714485496825429867912227992472267143331219288917636157588762958888021853392082303712819205114378893979138519413260137996256692209298829707197602208730993547946656349943224432594772070435686696933022017020142747619485717424648525040518488099650430030577427576665054634680853173559756114978923205249846222360438291021402228971402409462479711980707352437796681167207404651345998398758988958508002957386566664797403778132779120046451157790636191046072209363471772490642455187770514972372175326416408083044925438345189356626355173363662921075592296692321899127592286085006424743154970041257442020649528714736890867552898471513149331451102598597861417198430122492983319754321002245817546033302130946154917024613599683771056163222691908453067617698371518392828663019999702234456857576840209922805995504798995260093196356032515833817236007302172958451639761779921533410876673790008485001963929747596773339049718911907292753447039412204968263887802925170925750317365826019397794781903598094759036210895209690785587002166899154848744575081486178588134011570773153382702280007308489669808644445012187988219526828112735813022519047587361770971040618940913163909355646885429904927042701063729942462579051279301837662323457241853770355866948778592882754231738948711779085320384449610849819970960290284415816459545343614962508741686983258995185533324299052879335927894269574787634482521772511279813261695287564116110938940285014066336879238863375780926609322130162567628876166281727805504840825783336304467160883517895706131869530985324059283620391115796546018596344405615742959459133428028883847413510664343645806964271227033939841009561642879582805644621390523553031903252240320113611396405990473775635467528745876229144983291281022030352780781776659159547580786794953037853840792899206998203630913292217785780747539816135180874365935157721961551029481933527211260756897087670264002037529779333545685521641519538155615286588294231814031776161914490929432401299315565519472111180144549875284240330410296361274107137186628131630814433526815929608250622206225662558610768303873123238318880329057666039348726005674047084735155803553912307642485471185346090875866780400390517965862425500284280857633078177683782668096794177660437149137474459839050373646642811348244081486993587751231759326838700516574160133490408344559478196180604481346018283651125330716792668873312859871225962285053006693630997723362619452282804106998020149510110798147661641971115723556450858546423580469757621473028038357176709176272664008594217504654425571519415281758793335596205121887277732279479254524050347928133768317854877590642875422717930173456598837741754749683693908816443290817827575233416134431160031428103583287441721337705510725853280268119512836078030109234573042996927722151957937015669740749840447781067296234472985932460016887607400167544896748646299931812234763201361572449865689010179513230076069104288589926014081038426435864414602844973149241397357755016215297975884670124813663763838709150786643057703270969492068769380629320900099959555884513704641675632247700592168950549508517426603340749528864253671577053782083861534416792374031871027830353122374343044645842140199380022899192105150446724658974534222282384167130491686406753758026119971919664662068925496721469098608286238064902784767212011224504443245712764797213248973500864740359489216801718810217184730839753536488387962435529448310870700911902606961016131349201767784033683162005044003505556291345252008160765536170858162422239224787849287015735820350294715856400421605698881762462240954819822278075637354152514250734861829043538280999666298426791139561364399013637015615723879945564478207000076172021304519841124194933628795645846063418776096538666824139963844913769947111106687135124585485792706267045218522203687482527743007881212034991845456534027568841898536570681480260618810256463858900732642979951188275022941390672452414008674475834371392087928379479909838271896322386411060838465130494999522868781913746754132093071008675152823774465965778533870367681029038453723111228964800500607079895942095798042951814850361102664181034388760662190571269617243299221676071683129219294067867219815998503156216365405043541680759265561579290732643171308669242834315115410993267114661828376984225307776144642108915711542382900618969524790417369735876416437447290656871980576779257841110562132129079365154657252436211579873796394562664144051649437410121098593689842867687064367913821891318812653835236154291911035129013094419398023856233632141622583816957479634321836452243984157930990014180402707699543995492594989822101808690453202206309202761115544990747039278610537331049483202186027468609604755764711011398152928629140148623589383861732875819996946401950150943738555554242376544443412424512130680695567259631730939520889262087489789642842641243981416049079454138196839225251308780236158187980470558095259570792875279515532786463787747713192529761275506009331332895092585703694022326615180189638621745046869266644156409004240816297917037263930606231621702646519551983169698057442246462541122127718053083791107568450867016331816575382334634237804761483965051009965752954393395084944595668830638187755978694996168277458518734423968551665535290877788066009358602362427871041163083209298124124918568400900222261812754093395908578211235583321036404558367817272986017543680956427826705701380666518637238594793080184198558735390527854373284643951441921407604396485699761007472249363559872342407199598052201946335346003503558467113719738142729600306618537694095762566098554504848364172523674500654487544096817184501601840542941230545450304392561314409313307540124877996969532718115114962130992069044418261727230388306849659972672617747784797721601904395676159596608710992797097771512899302167580045145131756793311101123462244522276938981666873964697360265251590683182541077535359758627339671140848744390162485053552219448593378089025989449945403893862746044280343729788796910393085304876761446735678368561128050769287233111070905100233179502293253952709552439434481952878624325790022307275685387729198111252296059167344921798786229221035494064569708730574231201586466398680198250008658853994219587488225469822286606065904882871501766434628439691663669738784680797038458590012046267563336291331554247797433967094995132722173349776632532930785659081530126734694380077198367841392650161168482329580793633117927777563706683678908864293965943707773382359267095027818547356185100878828280957022398814133387944791375763187148824092884607470812215720016794801902683222308105300145716715923565710704975261753892096730907536053152431892436149775644784730518171807897578648795956267723626624728631607780312897818940182527545352095963941333730416303125471664966033815119967097669827364349644599715230164419554476584780685702862089022807702292945735120995466619165391227561483771847038484349197075222816442387253593800121941196966445724915630442990311458605934075514909432968457231092741166434258856650543610704844796826582457853993159941375947700845110821586564105219802590970512075817349979822092865940165226034539195285604624679532221859297777027289332844084947118362274939979076466267124521993903234264298812231501598145293635381902251935380812767658145732613444521557121717440049342266947665654063364099003205860101142153089860693181766688741849485166530828104493731214533981569299275887873306692276607630829095945513078925595260677900897351972657286276085174391114314888869159227491710576809435525156124779503234077545194173636775088465368898596258593639709372240376103215467688241891096137138548759158670967532663309707578327585394732396451551708542383075275152157573916110720417366225310897024359141720243097225628660761900447230990441333988830003208039399402947213967884445225934073366369299814311001992250689039703245135829280591148457973555058708262338274367120356192074055609041449333363574849614483051598082708890375748142730119580301943968337280767072014542776515701301231510451041597971994591058013945791130832833206303303594686431152661716698709910459179527739798660556489098013136772329395639173838841600541268017837715776245356468540847084840838210613870160324074551489660708464500309295173317630261715632517823214113172855404610140731138423808502810502214623924495994693758560987596624304799658549150349940484464775612076837049039725280406923170391141055986261083944243767412607612805714207945864401482381477413144848132558825130663979849704530878838608881081330481898385887007332252453523000614873208438301096608528576356588706652666777771765964064606346359052927450872019920167214107152431758055231801904211450706096508246705158592771205964287077142677986867600715951446835305736827319561794742011523204070050184195292114044110303681251844380410040860652091841760319312220930065688044125512201610571846743947797246706402845386116666726273173924772833399147472982499977648508988779370235365523139729811690759262806369391418483611000491827117573136471167575180306478143563362634870554202133732155541124624999499829524443346670492725515141765631976293299290589851914964815437178006598227905743447579761041602714150550225689222490259989575241466446617164740822161903647706604748818909767910467381208851489119153515030782474048175172560195518447038898019110843707413191270524092564439336784520307137128272935511441376714373368733456080191268603605086422209464509134889452661184595712694208327010211189480185311775913316850655999471054524239818437255418124790804873209842480621447895997428384563171814886306212757313323331947661853050718944250348843628614974329997717007586129839038832433433608102266979868144144365601977387808255260266372023242983156741416370979487479751772522518897877287549694760460607973849834033401464363136035334697183050268210249683938836968061668819385883582064856763934803781425979043194412332029680798356104469885185662557840970515068781989216955158243216691089040170982114649570109359218401579044721203050962852708116293987450956625122126484312233358856319696092666576804484037677531609107603518768817375332436663445778264685610962642964128406760649908529129808621767874295800008258063512068018064081659027480919610853422057441545831483330944578661662438620817336711702962350847102251942448356841603599292365672203628168748065610812850010891547738160451791046035790646027614366218637809508929211061534320116566823688498815240622953172820365512664135932559735533547575980712022953125161754123497406149714369215470456076624113602506159704716097322701512811895416893157503987985844870911208896947163221743747554308176924364266356627852692157471569453735399093906605193757699376334376293217729251364178366441496324591124582404869484816546330358564521803650945545903778413845926122460134281822141705449988767325232473699082445090350202371040617815596033166553381694196185665693048732993432131039982074499239974331383237646280931111894978758005620034479733975826111946301222672976556445403821939629440853266028791441589672711832038067551756952703641001019353421399464074033346759671493386860643860800669344209515260030978968300020419982805780915519028054923369517188126801468494238836638339561409920057083696907453208903521732138155454249196798893800733015218758975905333534399128192164237060477421271728018304628924140619862967099374321605659919792603478723680054078358850199556878256177442571058227039667487985133922393225511246259578538220583074806819385971815836489227264594537048661540168391373379405376464432756926658963843385048609942821135941353303656396606000131045354488324911719431395210060014606782520124592837044474075341285187209190165689470909579291253057562257612512229971359321198206027851024689760080085439033273103685821639183254299831191701723554134578971730795789239741397788054391105035699125568698516493970720345762964762158477326663312820707502103726290943217949335211915955648341105295414186214508306658559822984048942253055452893022128835643721459596494467273242198108632631950364843781845034362481230347536999794265410053010039464490380050216796435586647065214611793367899921818956501530645651446177007207549788317024507347663546040665029562209804138081559195982684563263987354105168108374044512022390676093829775189973264183653141968787294446920183779309702159916118593731037136943428100467690335608058414864130480982550587649003982527365385312757016500429326774506074088478948822054088517239870891384017453999039610583570464189917996683863523738337409550745124960587108990943413559200299128855013219965624208003573700325349944992728891106523404333565217639988097645925013339792861810188853161201878483224861848346075185166098446024108734103580088366915284392539091178191638720177342788390498452558489783111796047555642379180637601623133119661813776966824802919847024560427743050257208028436668081464344221747831332851919610094207700614801592122863570541138635661525417816808876055191640121169564720121290659097986420321578598324660163477625724358278755911042417437891882666407242675748249673734514990617421993116475583239704874359074897387059381386460315952181007210456506109709686448171470458494546793642689777515336539100004363726114094840401867549498892713897787092830615495560196991850333840726316573685765987868604480186460873862059823593315873052920266453950980156478146812317399416141716976114684836325776891248102293016478731984097742586250396441783203195280287077637611868547164765083062377127065050118925091736218751156366716492486232321009879167993986655698883599960837759915558321503552619703646380074946808345072899870926500501015180485831120345729892150571437368987288469547126825668115376381823810829773096907473198638580079448637958952176848101150496391424746451412943310105300911212328544868346327439608696174722780257361473270346645282918151877639084884898525930487224891269798660521134154519694488215497007813796882486173815427882989174054609252720376879508910530473157472229056921969787988029228207738872315307089800796496871052763781273998869332861191288193456086397746145143441361935281034810626389574483080399544136856686488037962696730960755499761061869888699634741083630897109329829821210852408819649505705481426377929645281845085374693255981536193700493435193483735548969587654810413196385198305723504461557010321498514316716290083747760522507934820862831727930212558001246179267180710229371795217808996307477214458538419010219625172560350903181802200698361012554976835984195257963992284965734898718125446880011262957611170690109061510527917098451330272037976309940834789960279713453792151152589017200043520467089830892195211414785543359178004819222582816118818360369888588520008256105497151593196986075346628146094848200059998365442405325558571599148727508563481793736748828022643170572812035073212607178421503020692213773000140423175600504399461822584189149984265305234477298926221119067459334971699359927977970732641628653224383008042483867933373597595964103499343905960636737792680721415628463661604029486641681426275178404189166209873574234134516988284865271997938679110073392403159255690533632514850526893942407984905483756239039127438631653121136123411372394018223267408076179115936241750076908406304179474835519118339170670333443653572980996422441203782017222403294787759882668418681558794354702414621071801627680261166614686953601267366568728168143648137938109058474333075631675222531230471368203761361461587309829095001332067262159405499789875968927087755534491818457023186450964008599685228157715597940767286980023283795644804723680930481988830192651311732022893687094899833347040738533947770862662119953576256742994696076284326396150518287247767168050631684336165926076677479404058511352029970855662749742519942611474961945177478776926099048240027749173815120476132552994584474455337497258825368615990946363012828836706367744014406069545370094783085816611206181941483677001827518070704914642138434547409376241414259127343887160650796071668602428524280852178922417640780928937236265779898127035521363715954914246748871748328822937698835589861543029931909819259420953299577145530225427700083657585339703403463565823563777591379224427351537416978760180917224252982964958127650560729274100638990692428179494301726353655163243369995280385165197142493319501760355775176571897779423166851489419053740143994564296109278390011041518675262250603124048909947970668551415900234226417962947640600193682741011042230651856703190710856872365022784484287478005836349426971709806233135776515927364426399073794200167504012960362829188580997982190259547587363794002843669724849432113343610020159520731281415792920261964703750695815707265797064051129742125689997728018834305732604251276614048902984816797417508435631832774037071705331050218155527949360859677131825534287177520736448522219987905902266026974293377433421845146261858537266644462284404123618473776505179806546848181532260792549458534572458193809511710328576008036181923345180949466442791732122369204961419893762368930642518422775799263030099267308189251415979086609489001201741084982384840220928228882098967056860885363787006638059177732967927853154292374209003492226563895127713531310670818663827062247675030540934677500629477667091403935571098944599951094733081649393683631569792798142987208204878667161635961484060996383977572437255989239852778548243306417743061397288139751379812980094949300666783309699269974248745457199100095595522941216291720867744355549418023472712266374233064949269507413133551542568774200595156235673186157538418939589051263191437918494585139859138941676210130657382052466408274494709014630756426369190022662649108900435590323135052170902913679861888490755205566429667846130742026811248289842374566271178699646778702849926332267556638873184609389419351587581275359186670391741481870023283284421325926864445317348024196546488888713515890053151399620259781162867761719177221970225002489348258477646018493667196744928755381734409298584971704305911177117360833510273206697493510699928272407816318511830030264586276846966888156852104198626118501127348418638055472274731742013858231765708862596312425443652832489516353202567233732351320525187142400514798203175561646033059172626924199242474868398146797438169233373147498338188483846627784476437296641604666722067170203888798216785671553797874387578544627195020279223830304360332259035799907314882117887445318197033263002382605290122767205386683700893767668737746208078744779600281277766962096015616381851071258910138031039355618163521137924918935881408448786018223092775092655052114500648485588672583197604908800259417433667280765433106760181999623173812600471994272360665839538082280055224040054899882261439343381161019069913069591160753672789877810489159213089432465902203331541416473131091662989896572148682661323555587289777907466298641491289612005319805007643492279669394285063800106333727614770544296779493882304483988792595195595822977075499246253167563816437968232566177966260521164240535622003112246025924447602415588746369111792471521557168177901615877300890069592196648077107697807633683731510556135810244149219987217279549684115405040412120292397463500574503282933394903086084749157632323956557154435762164594752262431361644116698351580953329470616801541978315364078246772748277960481494670019253445805528333832312911257985790579951109486570722331468898600476586451412582547602104243234776394257262386093094103878735822349276509099503286044015609287731996330872246808379014099914252859464840220560370497359111364059028836563756667726849486793702177831190472884576602215239878692717608356363112578030034807924622688611482217058354548581558048972095461086203526094820944595855736771083469404601406102119118517273568760839896487529593359101778295676869846531899940831574002194152088278039901544394131059322116407760020713324125352573688932989715190532534665544103869942892085738027045898814472392582264862175808939213625273224014481845346819693542191481507375460863948226406459391368157324955823325683298624180805504946700005838873398285890164436334874071832315874047157146501505186946231897750190440076670119208566729039012327203257306979841289786072561392317862431343213594593090945273674977563424019418977558566897845087119819914405665834514742107700996881089767481643015813985144200007335156997135388181535327723409421857125126057988471572791844165710108497064798131014013257773029602642157769240834717841914906465229024890656157779895912803079539418722345211731368739662370517825121891428147202575818029600711375798756575544387493005798803486629053603362766153481869256479025015234299426629383302950633197116745487694433391484316923660769483210830828404859518239146559745430083803477580132182869494362090984636677894668695812881780421684440463089364628848561474953622716169755036548168677627275507454518283799512862664269210536816596067738949777666164691650276606347262873918214504565710040204632806567919743085832158374408788278425519836669629803922670289679041572031960545274923876308494738766266857436688059149288054718028387783104379576204779053193144739032699436518813227816704763400856411640956014008097790999016394321578823963795916360061850624672859462169416758479866311679267225178735744022049618878964290177277664659414787312154679043511554668221626080924204472197571890136188181843657317754855291206340441344821947557159043177220144894048053334819435186803647275431632088055176969891401268414651095541796633580342858407414401387894869765623239737969241620593555225765549730567169995203410805476662921802969346239932339875834943471586130376756699988874433888904065241749617326482957219023712021447858414044082332186452359026754289316857885745323838401890350735243282949010318671160701351213592897740873359058216664425381765615672777682210701448031976751610594319996683198167729245475460780652158252624256699380298979527127624006333802165367368076515261983653755286356180606880236215773202243811898327043174012065167401794266256972996773743875796813082761146710032461699434762431436405066183006291941057150965177069886847431765299012096989546227156156455866618634121483866605419139051578748656184689317687520975720278021608551984602548040902785672307885824314537762852873131675176464791974679492637273912166187882242853480792862472354157743933840086636476288374891072321704442006866147754593144744259819402290164200281699021389056675763783929858011378771173564647736462846998893979982067602460431721313934830274088856113195569052247757891666988903880527059348129711980809297775548766710662606181506317374588288296379411590694295083886235687440609918544386872841908184274470934985763866579843012074527010099582310100687788625540001299398083912013225472592405656469460067355472080961915992995038049860879933757468087794996274650240155461466015594248662001840592683837868738980789144821202869905861939965900678257647532879764412759207441400259751169933114294257112830033845311947927582826941305869586981640522213456647156398659194393941506822565921019614691742956937930397465747619731142569375962969936773729123197867132550002170274098240511838267783277557083382233520401356326338239552254861367628561708476360535741358669338314150456798233309534132680114598691259000994415141011891500171281231049083428117687845817026480802743024271024658140945849537345545743073433042206235931238834723168608229962522017581716883214519398521259214727722482513273937221973073262274232719420281742412348266029663668439346295620849576663732386051468108946141105602143017071043054230360910180298207277979860114459810545359718853498999637794872284829280294939575268941796076666072195058308127772937635965351673581423888510356455123956090820745834114100756460694563898300229977095537078360837742051439439763899766789860118015452442374121210236895361668870256438226385258832964440324459787851330200415874329432661483702995721903751632915395780776064545746663431042299001011569981253272776617370022925244826217987178601620672655760652466836122741738262906780781223117197264547672571778612562369307641874858816142694193814000500409272425108460293339447499140645329336231307246360845197885217926423200515775567244985380608136957629561462685722563694822290992596189641839501003050823268127540974102309811299427324487984602534921374725271150984175832199524700254187121933844784363909278632927813137578054950476664430525656446604565451218997815714912709704241873161339730783073490124903885833619701880671782005101276577920939056331981808415097409879436007313761698815862039157270963921422690921624258730375787825490354369250261857936509822960078075203228849446290342143163804775418314083878354113093038208135029021539119684800506641447581085774892016532093082410187614374008208348253717810361223972280175659609376446566571575874693989613921431583647481907911503553066883499292904181298991308021220700389917069733282399126852271456717465714540260081396719199168026824640190816788976215637487081982660855578525045728480001065564141746047108198269726764292056235606781347583288847232938005108037489148464200216108604163559788142469442783901308809159972282966489370291161737860679610547194196408154084925391514121040741407869312481190848343632055733536142446012108057926913287394143223325270836310719168364035477080146648097937994127571405647274762928997593965926066359571744990242662141621642422936572141177545243607000716069411257415134979504619965604308663682926637252444607341585289142328294812871132454408849570538588911983073535004250896064671329051218173407921883681598947124681757291360653588928915756950414069414769961660396107239762876531246259058806773535607275275714319987674485967035238761394886024594911506549259472249591101729590433114238625763671143964008356850342995465743445502392445548204284375641824773957274669118330818213097268658004243521377072910541958676497749174678931776701188719360243319903064424389528731569673186744862228457696429330941497854281273234089334294464109468327317589626485922624115268705224356985557318721755004591419056632295404607087753563272121143604682415067475898486067524221499529481382735332669841203916876839802933402501509345172506894249202790572551252655555520679238248458771755811948376792635312544589432663337248894474519003425682438418505878558631894853902676410612361269401909926123213962635529708747925070035352793008003561462043728076466050020816176505705552536887351029097837602036196728904457671733750169076860772716740461049516251083988471105736274507710052130015056428018299125583986050692743461394803494464975653381255004926315092106152134976663690175561384940546437522948085906898840401524319008693836137750010867678361668504415581127494551520369764416828670427374786673155433822534994302521236072571637525680059643850622703508441037555683801500931319138027503798961617624804857581027373077338580465479773366528357579446606433218275171479269966018733243392363426748016859175592905143136860637903746850876807071991948180432624974419853928084586975972137596056854332209510762128440323789196661125023216508645686070612542958182558190460003936101258655667304575464885905627771022291592599893074203861245364995326013801533596900482008175733148667751688199862302848504050200485530329016744318277415344962691337337020070433685209011635658023440835119774698604723092212513571027244949583920211300972320365622734669298027494197407009077549008933832764512084380723923014149893680907309680581233006501059102230529006760861868102305051477946064977877230558258110293932471412687211135346661346466738540402597107230353777361240079978357359742662373775737363965661024374338912367266172259183438928787627427949331811432165919537570104929102255921089600154658805380467723818116297468999324419009113470260229093242289867472141559111172296656049365011090212960662529777728118193313071429453829995598186683042531268179915400808742756282609172692107998269904722656009677073975054628311942906439080575317266123303899097893344971996312235567137057613436827198771995818718511723021806684203379761711262750412875017797940235764649613441209754794366435812705938519594159503898437464894304275202653868683734427799826886107711463651621576760204191881031428917556555530594489426870731892701977423769808615728797424262623196563122372083674390010322761465244645006092815320940800044804939912966985464538344011738019885422872450403646579178729917090778143100187758914574225351745907387470225326500632708506477967345336943616168194521246384922549471204939720352384908212099632278268799867354173219295108967272539957668989458148107604762219421886382699352694680496151073996443423937396214009191131365905042234409038348206466450283769565056543459840701974761326579988570974176143662597348804178500170416254659270863283335268140344565512370299205653462975607356192132615974582180590386560300773561781440511062601697961631768009686192646890864197213691235318814145570224258509319850097580310523242065742706030390008086338755628907321601741183647277716104272627784487412962935917196465371635171091032562361067359940770096790181724102831018788923427665599650903821267061276905334349284601430538173593591971407984935726313199191379924211828674431400012607446916479315064604913770024727631640888186557723965924873627257478228478951757841442432806640573609650640429485127773185596773725784559761977485793454440042513930266474807212711124745824128710592399807277585004867853718696996248401581409900738237802052761933342389882894321667182016203705863810329245940780883475895314294290950980629482928861009003555728782876609759981074981985447508562747313314424613089147829866088464522858300913492938334551774655470841815914808495481073935263308329297555735773463550106402621839557869079159980907582275795596988802063196092273361554433789679866265591695877306763509896482457761534020649792947853365145495322066078182679315627850475793555996825578918862542841719034418494934108839310980349594058503925599911698285479113318456670574760174113123142482451950355341927297376811748534682959176691715771894835438056063144540518442509136297794880186675376638257662580031439371247492973767211152374144919599356561750045638054196509605726735892715698066454777162186523150382051322097566046976681716164439985948657573720544056247532445566825719281068813687246571012399393477570289953340093457775619401853327039020829688904306635647636124541149281512363254282854044229343152502242150243840952401793759408276907222719233423959064623718119251113311710818330983758815814811770190352176935383403132111245153445334642653668461241120745779727864514416369980260550700419501669646268481921502431527243151734554403397395207989347259057908975737384377685924415804615010895281399814522506881593131997106612902227582401164277658966084742990514420635322759065555109553297731813167389212468397332161309845976242984385176093007573390307760092494306751541760721153813782493345451779866444044037954885370349116681904853433528853854246843211357663142121011331808394673663635374570016513002815659252251696429043090849261250814395285950158766745337780253403937257128004961175731196504673336387599706231056862700553043145946572191277707779110207540423170198905923721294811701651635064073727277891561485626150970727478457811500911718527669562064475688722131134572572462072266617492809868878396972289066307074234562737323893692610885470057966372413121829614458262658308766058515457335578768118214757097261291976431777484885817800021618868418207797466067475317699203090924655181994454403578316756563625240467268163550458631958341430544846093289832672628298114388962355046020174048586414689430857002821269664630664817696624260968224599166553512061832664716505283751036527250100464823645695272598487965814954420956967147882769588358342318625983966243000309610465931727113423110120331395926750228664842728129582216428773926949982435134390991541696832725984175229718746920409941148313189956380383826687935811491382113037768581745599496164872426283988006448828116333977240863333265499046675670347137595950225737857984599519067710363024093980467212182076208516979780406949304583666673608605891429322264142649804907938624498148872561891328708917378316936498802888484889196533524592914885387115404970323431404852417657510665077863287569589569838987986391669921422150204455759768109598981794902540920976803403653962718789482586511241272345242341052666694500794946300637918468204339326093320029514077111887592537419936443676844542216510821196789234200524131653874810890777978963266085957280868355167656572778551239872560370898078124730818427616748770498257453565139339642057716516986858166644515437126418232450392805365687512136048929372320649219319184835357023609798980153250165456852356476048825180706030714570906712461076475045570058823460134999575606892555394660997150560753821695919526756109955580254887400062235222418689656301887761602670050876388347348657547045117764197088505153100581103918378681145652005383479165141613204181778814359046504934922863072806979938102310851920809781499567809187308753763058628487420525263863509108169127343717364429388349566063184321437147912745650124385341039998164207793983947597716821055307036808617394078758885694900549954605672404049803320135724100484164597302571295237644436682333783178831894477091453071748247896515220157710336688832011845530945754712324144308858584258263655213809218345256676975637644579882040186772644832527556981984256633528830633106786063850617794334174657798320579950553278611535025025612458585484947670290204155236339053357610431406126876086450697756072823750825781649104673643319890072643936159823187803832931065506602477474793490042309881406045756164323912182720573538678481356114225511091994653602277599030377696463935469191110681838656033393197213628097701638343694374686821954597100261247121414006169584408335535241770805721022590109582331156809203821539738345281364740584502317846541099623353190786461602442006426702622547505086157293010777286672840810643247414624382627881564301494153077759150455751727423893446179754123959130511340323753395398246238225633176089942544979706516881091633515984844936597916612602189220660934283961607160583798630261177770052408540188943881644063418299009664847841531645940275269163836750756982253786583351821939189672468939278977631419171898222701240825537608506517968679794222247698633552723128169927660570683168362488742772828657789631601814089146546914676976301286665414662466878792158628136289616889868434042274548041346703636460634197408009321787577840608861532938006770427375973350489429099253876695814962163728577346355206837773929055023128494377800577418877523826142162082714776673775636689665325380104990968709025950300909674771884214766938300326768554034741762367600385847469393927455720389845450241819421538531460191793538346766712760046846187271214827466480134338720103267331727349485540033797646256174361626486610904729224481848354101780503449229580477079472215343880202161249354134825114335357658527688952386542311424216192173149732772794269471886958487696926282077442548012650776287028193087038828222691637440983544956086098668601395545356367406600278263237675426265959548198534535045226026597432513102960312087823356895256115785253694627046919701372374660438915352860316563555628616476307454551651975725836183866937306546805519997400733159142129022459799854367961473556144759618823000734352231761977415724456567959497809405704093138146873654419046354234099200869909729747956629392801565394780977623465917969564172871154455845062119027109148383621003689520961218457377108027989122013966487039234554389813996732999284091168301370761993002918210552217937787459954444554375543945392754515852136538967211271847957360153139962747855002594958030754830542474570589561935971382620587710415371937583625331972925032543599728182403022092627457315010440610307889704833376412192786849529878672125988341021182743639026967445038939405427845287548853796795149689326838128222263705701685408944568930980379958287858142387701265539552175334138595030147833019118046759698627277114526456458263191553553341835816764731590676149717238305436984304354646935799961067447890421055783420420754405542613346042709744478838175786516204094781207553305607266569726035154764928792293303648936825845350996407962361638637404119418075241247612144863261334855064775428714849084604868355684209733130517170027748452089236318595668303249063026808852983892196280260667882251739167865939795870710920827033960920154737778888484961188326693824656356554455853310236792615829500244773990769731552290831338455028778106896524558080300808662747991857112235138702404454569652780760939850337629337176365746002294820453447622974366655597482096213020222798776942567756550849629892256975683944004347645128523035559302118400357345989938428935950873034524363123432275524847856647753415628109131821177094916200562369589225279258904466149726482476228479296169405973188363379053659991296671397182754646174430828639142764661447002715211865939412520207709572882572712481979218187150626465258084180894312319696246098089037511575314501061988724213546670230771683268176922788837649700984795636017683876261903671847895421826952660111252895313008300074640875304751125309440511269519418324234476026100025899338491492045513190607872276117676895844639605767437517783738477810215421730104489912305507929261304790282189234929819977061686536589100864604662005558220395265260066645210728785896656426444886846618302810797268681038903399177286683927578855435851354626380434615887795438225251091780663587531106824944704498881253287021644901892648528649751059760321992416486750193208534714425966127001849061126375331652599083120224367197643231770794355507312409245900059252654491169509035132791827752882057289606944815894351813733162417968554671508510506928554869476127013647900415838010368566502474315416373282929130641371840382352510195108611809988203508459376051013009670045453165441443694160349884772231607409875024042585354886302234041815920939175230439891548788434079199928375123975679698861527013662984042455601906276505623282060740356369073075725571724713328278270885439380662454539718419565495087317727973166541546038846176575129084554456126089977873714391831343494620474445231820011177326565566678534545891713824643135340157364469525416721024904836348221613254453407565447995867674959703352671574413155454952019896763125009718884541236070662132692094886694279187907143750670154447014772531012335372234657521416007396630705396872906250479919697639894169678397636346894836419912151576283162602996146098496432440508355170268503145487992417292400337868046142158125655786318899410356463763742611937477024368916494261441613774024371915684349773222270902516315920329913323768542219848118268278894830482087879200528927629154517350252368370277739948451674026655319645087379567124808197275721482817773925465002707236665954385119787230048436333474994839296326240625911193159203171721105194151832754181965745153175274228054023100914040973202218770754893372060355092091210569309007496542222422695787968649224875839987446964208256202894710240264129643560878381375523958890268709968889221233373523706030615186396144289113758634405962550744606729884858645672135805824059435507799103193282322658336051195937873536275601461866141593958349360278432824037267931217434708642791323771634425496747080366034463593795035382343362676073307891235648987592796591644444041316922093941962253637346982234080388280377429329019741871874371357030728026842548988161084522780431689828483343947746275959186328540259371443976909945883452939428645655377953858422102481375402752081415881746581686383112361890342440303953001353992012213055758917814593625925571829663379721213271326448625756882602284787472107289404525002434065394071237441702173332499202037781508304571890404944988753644595524287254297255644052633707124400571520711520899763355062840206872828322520785303231306059711077582936067733602652545970375134105480054291430897116609406101711571870251461872862101243098826075951020178763445784741325247270413693646983977488615753863736666241756999401761933037837333735468983686537684834450765980748483929924265199556534515845632164062159087076234786707394685954323566272327435017745834671086524187786494064533877439068189619986527800180048678827674766824363983399544346667256443189247232199639998391226203896481538639931304736237089210114580223945667937142684020894367251316520682133251660871384230291214406265667069629955578286888268646444281172652650533192414328689574232379262485835196660127315753110024617471485488146080653550374691158660681483522642176678993488534204757534578144046137555164146642351921327812563694222187260340502388429840572976914896491482127114713103961973304188127493279664258396437885710114791114556888408239351442966909206808472764560030162910885648779852764091139926278161752260041701332807038051372700843763278160950757609554435446725119512672802529663018829965810153580891128993268817035807419322474933344218004383395722090710313645508219132932177048688494522051851226752999961699722481633088006720024308363441113618566803333722526247102732436530229254420790457471139610481741743245821759945509393388309918722630873240482851869237415182153719310224840684558447825744673446482424334987045343219702424616774718996295031667039540542147416644340711370409869553801591215389768869629355112257725371686935880680483042069879506404261413514877740540893450133145231462092544205706528508082222293409318098649974378362382812575379553418153527509421844096812519645997434950825404837218293644081543878019472576819195878002237056882341508818972296893284720085532329129696747780628492394289656457143094847896708660498338682934651241031524056312443294145169881413372280308303682359390442988278661467321491949558947933759973628075345781914768162302264084881353381623057114400942529222576048166150813525538755599501452220839305292015637937518465574654221051349615278791402339266016148167329865718702115904782152847880215371428387058079841017589321828941016441566630231463528122100233967544607333638718535814298446900717475575827690424130551347943799347323772660665995608924620944015056973649113511371469688364993617167417023826138003174781598719692407599789127817745975151571523187835528894608008324246863117128641724890187331365713271442340653241633245391254420041634275691186103943826406238712971037527285684419585682304067219730947418111360767659701721793886081062926720314278704441738259577731256389479078825935967637122292623833487503609719068692172207331230308977127641936777374257717600856910529591415648101805832760368642623434201083098655641364698684117355547447224234917997764718104858661412949834521406517451701636169451456018998618699241087086537712929484790197020033594132745087145125400235746214229254483034450626319771681425421532219267543655059682678032439168364081346206731203079169785328826756935715588042264435587148663280147987623030406914193596857567873598171179394733294338158263534869058958867552920828432512426646034350987516794701021627108710711779767523938455763873463686842486784691645835829658758917567495704789228853371430673396522896002108244331710772286686430801833046593462784846892692296850331540751498106477329622041294497244184668351878420502702389005122573859166993073496766369821648357255369566597585478391359731135093711357678745745444107473674047433829522161451858345565016799671197618881570972049825910644388537613939155790064775605839750092832494558907949307774585363043445374879352716070060836685793249309286857122936307302505326675976950682945497828073392545985970382451114416406245556899700452719631138949405029790482475603840264850690602356117183793529221500275400118296049139451771751995783515449305477503128105757382584909667362633376566409855884411582809587624086382368896794426009655173907961753598247565390238420212197475440281730218154216397760513905759862384562246753751198941184518823603420249311769001418624760500959884034519789899164394570187840944760332287352935566882503564764267866589989407124719392872046673524011903279364551994474642674084476470041831442338155922924349337634958186341218593885449751742574956442997366469200482168786967627113520416948215955103367669161082447463651318521983676491998635909326604917741908483168616615631630147714478973384198575893594107607661756299527830350921724898107272299194340177351324773120417534272972418056150970570263047486438689836205348051033436103828525760905911662211236832335584983907225280113018450157150435836395105447914955770446328834775964817751587729111849718288555926419113144155864442274884410391025678619627351978477338333877525679854479381989019860339001043581731040930557361877775553323040723859427297496692878743999088795190455994831511575317633587833182047530668445205403864834922904476435403622216968118883885897022569626551743573772226393062574960569214827808395499019828243697807053012678627071090525449593387707213235594939808118537487143867440087897057271407239060053263724250798111827778027199457767979652284368712422032525153784954282028715959194036449539255408746161999253245290015946258687765187589939406533038018256380804585789395829280545793214276421811483128784288375124138323335822852661114472995501983566196532234274708455403464833359574519656915377663211183763800371468437237476148116875009809248637715509301582038259982993207059603999552801661395084715255254522457210665176756824088636168138404745823642806512150522304783142318164296331981676982416637330544344932498322094801497574078366100132074289511755522551726763681928924389468986485297427308508198404149757377973234575486705919686282999397832136778206978772243826516635417045599592055692300317180784843986387306309963920547927502635166462555574658720356729267678440378148278143336148493908413067901931105101311600694290286816014863433365498803332133517639888149417011162959480015605885577507188817752600525104462528831089420577756520825598882010416372275912184510105461297363978214155692696448425426660827443360183808393564615325249595803151966647990053396728592189864052380081997639242321869549399539508027185084254716310786238740098242398788755240524855848880744267441181949982542586289802338083826490107521078756910458714020218355390867187111768337510539625263553273792475841879938740593224808231892857129227682822300866275184790146834618869251971438683300644170783338108737558579214036525274452068330781901843095218882526270773987827024326507061419189631073721220168759724468712278840535131998214450314623228467391375447211585850760070773583729018651903576670238426479017401892860704874297764272434825347320281617565081985600836631587754309517312684390562858167697243982942753153451169547963345809123637365480204477137175684242521424082083544165571677560515847943568858022947894526623405347113035134309382078876622928743261290940100959572270361300553784507275659296033211187835568730452737962207044606350015954547379993253347066468938859729513928240279602624120637020961876139079155101538992702730682793016313384045037456368999804628508125324755083584826937121589840714806770154912530658537303905365320600596913117178802679663048271172275003764150674719952342919622504777162902015359792982209178978180291060432346391298176398326017488788185066179276755262190520985252372868557841946859966357130985145524459415464878687665687380164155645433588234338425489932644402386906183557492402812292258990226575322005125943110491402719503618241579092227890716223072211969827912039244223088550072514481257833166866577629809165023523010553243802670014521473643871629684263109833025201996776017836571361657005903030613149992067390464139371169077683724886177615932749603705548519984897803614516415145393210307367044544393433771009941205511445544218043584002235233895966233440585076076704323438808407156581438950736183627322291019366810226138451029531253343548933964472062631689184377167067264063730807196092595482052191246792316080003883055134111281128095564937357503556184304876384108313291163615847560595112257361688697104590674885421389559004286662066303326190950769885351018770614792592107504820748148719172085142009340895940033867064863011400567481211302659336899450973151088518623484285334228116913800456686105738327846481297578191143271649025847706451719905159717578872398199948274733077296627915822838893008641455401347502925310655665011639273893770609064872627186747346621450368496782804690390899980779995885644330269325554262214309256889293788312796808973988716841724509763852648790029633725459605761931814390216122729221342742770577048605391958688596370675639721523759745833560649133193444923639944877102466919226742086203518990599742321038576964003032802874920237741402462942154519964263803821535673608393855639099142539514266848136255087700836408340180842244100966897318774057548742515939043802395260762291044499560882700165216932050839746331784004631338443139043623710034720524783373731053770817120642465460759648356271816651957750395883248181067111114323433119541129109794447235843946511918597176065160472399965089650790504317255254424212603234679626640450902698023923527743394130756022760562171700681091859522928508562719553357164555437636803552612347311230696029464753104898847075983308373676782323773956988064448990413793533118375649779334910951332312002447544246816629831031140087277373342167314840976338621712484151115894342590932110040170962856165987510888413904849880097732075760610241727037083813913825873798721854934200151709361445576653385317979636379595867989368944849538655676710201662991420280556676837993914596969755219879554473830827687757068195258784383058943197526989665016486630972362318008505670223549323236001397745474714456079647914604973697541469023292613029656491857864671676276047959626125255901685196507505081334752818148766362862671896735876107082848869779579083743336181685257411818917188647782157283079750328056744747201012001601444242790386734234899020767837161018468753072539280083985524350268913861288923156660159220245347554048016148165255788656469322872574049985399347976612826296965072962323076971513769658540267648617851669304845472115142229786982771617380798341134625730107435082902219470687860141726696657022639502973793913532293762514708642215516865666300580546469206014880146086424450302251280735575066738919310458937091274684407860121064976697127657768523878354042363472962250520635896957964550870012530820539380171441839047718699622747621583549282416220397141936058900167323058553012843949681978099964129523633568587785487413766924950159883711208464105581192924502806788680331214847544409708847633582911239670977337707146350973723884659401636490743902421514574618854621348444760782097314168271930610415570471825335311131398740149445191411117256632228510246526527568816670452061670715719316015828755764777046358896546996827334670750611948021625895551134452520872916217558274459580245752618183366133002426619029719389232446210046686953655480082430893549355171666781517437831230181941309973567520054274947298455506823115579217384540472693366897466893214651751524166470831351527529220875497695348497731763249043364330454313065807639360284013974557178639850537908656869375883684313697897158540029982699344950653095287585563347926866520290773096432442310119864685975756490079023159644583857262707493282757293441603968435997357774016172766555064515551899524681861393612079637852519929793671793768675612396189286259599595127568402055300789953349935000224694947750673425755034607130545428164415589788252314532441868460786672426873272276364626540698381291277563859618893752595960513423618421104724906762138519189267317540619424206325940480299037928065094091129094061239550143224614060117310216283820898580667561414585230889316155222020115489889293794441614321591220832058175197408253800038676336475786553452042973045618787686863632737703296061036611745478263216102023068177712216728440161113657939738790568313655770863991763601313557148564782995439258887902659272555442113041072945905725910198373239161188574001192864157148363250720578833348228885723814242771000965623498950846422458928596089030923691496306649847522526697900018304093357210719579362271046787346363995326101420907343489322961020797288642515567843466558695744366378999721936536145372481617474352555654298682289555410155166285402350669114958091603937458026044780023192548038230299261206445867940963021537415736015495927953263087450795400133264848528607842124461403227049862418718143459617518600857578682889114976623852588156352401663322874187196885398150564176661796205161790815676724235113323175183811171005440559699374359836241243123903163156185882358988581605935413669236048429233732486732493034899406490791476578093646187619726857018614513493352070025733093043317598566509274072985730904611957032687473798180356246261221210910225710881006775442821234275657983591370004865890454506261005488109192352074175769255622025739880771208359631961902029204296345508230641457100769251551283167579647707722859479293403535793438625015647407217491487252769974244241912340710784658102998664946015618588484857292148224778395162863835831077717186091515955290985677421633740172959876091262306417564421664346767479815316347192175672855840892316399955932740183271099390047386089088343353920051973189561817064136576016740257881075317808195330850445987660093232126602742170741111270462103858540254477111667802160779733690494347769544108719975253399120316255220571582470355896595177453368835934706772601730032710152097157239657330474922739550799853350124081299201316050435454327786038259655729513207242671386632054953416144181219605075268581991206171663325930736653470087759186869561406804567326887218644622837494131066111954177894445309432820005390208817655617437003136260681775072341459785240643991912131875403009803829452761244507291460921135353836142269577958254716849176617801738903982893147997126512239665744552073106321250098311049485358366370921029686737576504205255410057805827466143102559002440119651863571577317677594604443774801544627606485231358446915608810618847671452669021731342111723629673333450048186247546190103783703026508456919650164919912872401434304857603819976158455156638810901394602947033242807281843415985759484497284965742851500758018886108598562339368662364453452669492574780537844113996492166761413863947121965833229284730275856096295047566648631018702770631979560125440925083436870498292200772791215100215255613356701720298050648058957139546482928099605968883316946096445098649753113215179157729037537421650054467063122921803764857345462410781672678843166686443629244913285107977316430197023640763861846462365147605046227009580602156069001388468351320990005847022645091982280414584273298715176749964850631706336892830276239590206601972141850037744342011151040239656406911413813852575311195204146197104768474975579788864702344876150178741954768130504237860123287113492479218769889814700154597466069252718679918050756312950242467571186602114107480741293222664484415471921092176644092081191186239562708343341448768246720880329589826459376759797310504055771920213701465274144309293069548580660330360938103865380123598991186784733000226356693437794140885813216681987886791861948663383507517239492511721286622844784789745337584021491026696789299306351668525320465141188771500965177171761492157988972920069476620841025701972481106468767795096804638307722173352883526575407576571106049647452496454440548366454809554952676248826929130867998286017796716328138233959101556640518047307472233565463927282983866792156388674011572241355701302491037402383959833062636568372633191578386067084874121449606514704489577163409615718189353907196408683530653506435888412148703736178476028837373632132478733843236812565240693714415822150083889066730013832989171632380512196182969258667254272463152393708930333171266240784745727740125897299636274440797896808208727804042356899614619990399915858560911576962916933828954732728719461211076854418853783375257030695093849347003140333114732379976663314449627766284385145500278280569663625060685795629635402911472754683394129472193511900711761975452331181086415160405997821332221122257859193913734749110935870633168417872687219155717603281167485777537078803805717044782036547858519930818624606811637255730538704333178564070269513319561498010369661688753347687093484490764584047781574979092425169575032298614175026028332888326235173089554716118252873936422640760404841882898774902227926180616770266427348699884261227073055565985851480734743842125534984396073904620475809281748073729259751270263448573879244961363036517934069683311246569390299350914513320862896811651360097632492953400901448682365552246314849316103114227012652934661076548037289151355374077994281881959962184991645292496607678513881465373825071937343441689362965414269709863338329879440717922557975702785872605945064280760763248763161269196152698287270796507615866388707365382801872918445484405344470423448814678037392967743985989465661312492162461106383832188990954270313100250078976003305361712277169495514101833619980870721816665793634222061590223540843324357404429270601955765992824340130922927436515355282108194801382742942142876894469577190321559648700536503954357043363936105801358047460143957254471393943721640883146042904192191124420757691660361774704344846791671528201445268667139000722426493028692536163254848289392460099630605323637110722926729955397773927215044015062628924050630040512678749649292535740339524913678410965249823238613748910060217209062746066831115040051768291785820122307483791895645539658083553938231800824272913631199932356278533605922774951039500894014846070354475101901030506353362180181426128250585906710146526006272893211323734665192170574774356670826410792906507479171254026541221945653980528264505213582293312809636081540624864069817849386206557589218204306190413098348449828289209792024617886431729595736690423068573825035087834557737831211904363264066125427906157904573971007774893172202352972878947935339803690057381309911336555127710151189662204611659825904792020149810128609735377872665297715090430348697789108417478853394855912117914175762285342569868097051346787369301001638093956965134308954372199512889037520723330546532990363889469361724130993654234298421028420721886269290418909390240146096994347090815217691856673731126392436541323951532873798983794192002753781096073145898814199591857287757600260033539919126146170534870838726361275538751973101444502971286305482836477574607216807441505335395169383214785496729004212156071945566005731255708965810817367866725701119727822324765296736078418021054949503571253042843442332186353181893855091058460629500721271277001021355861050351438782549876366146913321607355098395963166642117217657771679333392877233818305119028172450272137557919128428905375819423995041622324295961761019136309297594690000617721373117746579825241937695606476786385792102795528683718571059614855025773905440898802534255072522597616377252341747935994757034303547519254060625533956354286932716057133135541693023378968873131695078664237734296457148055824572338036955414619905951011988943762349263754935158085264180998153739066949067101542102180188870742568345996612996657628860091972315273888940517882615652198022511962343948169069149945801733300145681044863132586828390101760130721309355081301507538059929051117961552073407938971418404755438333422449975761965756392018063199685910045180741049208492623316355536769155047725958493830062708961943478619294791745454043850485712835025004742949495190632201883193343875655995164680903755027987207670700114004463463960155441681090486291762829983748129685932713314853824516908631183486994302573592121319706298744402896809825649327322976747566466985835436214664805501620380679927728935199304743519570334194850339375408757130299572426938492035470208409041665957276069595892732386659746016863178621120315954580225043614536847409421319639278299392111546964543613230939853371538270243945848251098991489854281825600872632505410680518615836177498946144720237771548898756517643818185208195045353939308191163567545922251754466609597146580067136607083337243517167245720424110556998408595317052047791160449444064067658644030194513094236012512582488635110592260658953997477437532752238390723377118768516911730226339190544371521787071629530138716811425232679610283376591777169049622842441822748308450228166298088053058340017538888522929681899721288730317089578808700712321538078492727929634008407778830955001239958726160067143731665917821837051854916309657919864818503837873926774601991068125291578906889737455976390371680104404838832887282638897988912455657123420108927481368443187669391673016513537126785161603273597342524140586864743228605175596203980117248203567280529731400224293949907324296789139290270621975163258923967510717556909011787844627889012097771797535348278532810301528330766689668056422647397744949308069641578163667678733338406240070714642650452718964058206071014912279270257039506401951726071418184952056015566993141044674055635949072735392696077755632383393865956257073012769966684102212387876152929847712813609848583009293566554497449352150964742371622818579077943856579833994626359630040176077166872037142901533181539933743895009927263428667476354566615576831373113140367320598861086366367657245027465359217790119722176555006627050124727540505800178105612547099216762364332347148748304745956200652261881896701503742047842173335655239922582826033741106980759973570999634927386902626500480035989004869684137936333480095069173196872987449742231584022122494213505496610828506628683379907991845124858780798126640308108508061457822884131123474136481117336481201686654453265058503238213623621866090580891325073990438221172958057938515137724685259453863591193601319518681492110489026105910743478427458064938293331738862554571877309311874650060542407857539616586392563436051899120738877128246333063559078017326302988872537545480141168958709974544131889190815978573173875506599765146412733214194416137592076312957605491401181677201308724062552112099781458003337658937601692466015911631456357047434412293065078373779482700725088671027167951127231496858722247621094563242514465592838081950969604266222539408242995059435519152245416558493898105360693015772487104589224758203770956069934695725325285874960788930365554718612130218378448699877620787000068955177730682319258027840332635313313716087003907958068037940357617069681851943674721859940796143989820958536635668456399703134654827096093507612059917083277643539539890361173528570112172908663579269252565156790701295866689822656591260062180383095602595511049256009191609010634283039126820106552392569857457545194791846579311918601246543104887278066716965810361061132500756968183133431841287278236975691830742660604096184440624409697980034880825033833866070370385120109590353114285053301820643022209721791252521784446423254341078723405011111030816365331397869903731908904115846048696819098065212427907630938738874896838994147687073413474440907494164006031105005792688784783489318330902012541548482301059738367957033087621494561431078259554975534363902067494025930358362446927187095366659090042482673465143335423646868133690825853723308384875880885804029937081805064615705501374344147031890825042490441863493636021404405732133579625367674625626999396347068973182713639540472441946752395208587198629013097054959359212988219958984037183128725560413726650347615428075230783638785780899096121666849450614701245793277187581702013200436678276628775692645476550752489270246993591519360188508737114650810362517221062766237181458862856740077128121488358649110140516056271815486511085539843638980136380794296619169721062494842664043256952676974892441444419796274772422918965997423795361935511084576884005580800383079562939501500337918887315231858964054820157095387686343587438698106936758542147165016727995767647974925760974012752053303845401729489214116055443856098753745537702897138002651497182029239758308730559608440520516151055229862407410708528993300937063393922828034571258609691583744069163193713297537835291566240168369118347474851280577489218193872989592725196860761794337795118893364739139813869583963278061112271265181632825064359477987305567819923053578325045730876995294552725248347817860681325684854102691935632573689295754104643970223963904498792696404473425360442831459163812707917113715785168709710862811778918830848304992769136367775710246853631120641716374354078205610124556733110279057492713108358730604757954800946283225294871627463411895860350227301983523229588154910621115220511041562638221128731829280739554346467371389060548817064160913787932692978362724040900573496377171437823979194427298456216585940115600616690634361696948217106053591595443028050375089239413596745358575750154821918068400358849270000208165585518977125943756025780172889862541354550120769666019093629157880122567070257523970830865496802398296912628570975973371988701735374667286252176181551143818780357591656917443153960318528049102243760403287774603751253482753419060265728259777115175339744930468158693995378179559382630702099413554099651641489161814558979156861563432771109512626061909154872685450719341404014410976926982552072859367147030327494748290963994006882275639731162281631672110256613556549075786397494841636290329263758311330146714015243114872337195594083461098924135930093239618473246151166919926446444586116070800125983381408489674985106543101462746353038464248894779855743573291619691571505034049735775417888980009003211696498411053000894487526450236749750827053902358229717708976781574860683801005634496902141127930486136630493486335074586881172164814978033845949079093854248295106847265530240230637085637817992620327516522141484215109204425774138351779471269222952218082298711208540889778482833030652413093376225187201794485988718838437599333529422711349104718886989464134467999190591401578457571222764007015433174880489770770339489445507366668949023169247688526119588381187861441579088639435105419852877602440545636706435293474918763537039810388093573190891902837957291412563126379180885419688215086994530797878641850198963568820584781939672670277655057199931305274915442534781512778512029923745756936698821989296868846164640634648310184609917529264897349658411675729799959375787201061229755249970619544570660002821747252206358996082388102778941868223929156507886999408512556524843031663763090917286972605225474570220142586774319641190033617324231666018970568923108657006772583599975724649151069305393765501074954752980660549620504078173049723906339828826811526817463038272568405129288876007618598376527126863433144142924570037048674910311008223612588557051735703263297565836698086391664470259567690617206900451949813776966654452310507296306867242253576472886992182144954122759607954459250139176147802493541821379785468828942303218164409486071979579523528330789400573346687930185920994187341198375859269643684310616922228576550614827310225806547450261432094159403903905012522766869723767831129611785740739351668345011606929177102555191507211509625263827429089631606756586190326377217067424410302956141580718966812757476367738942763404557266704252983673878422955454745433544219415171689542853953240849515886999555086622597400032920549097328380215242054066919202946957068117997563068925527362142894349250669593515394078256579565145365652633429167798294948758145750947827571461402842367739572920899173978469780852905200698839239110106628939879543463592355051487053674277150482469613235710937615848932780905021322240765740228609024922483965469898437474783521487432216156585731759272489669126656258837213788761748831645490241060982551850735488460454954425477212791991758040764084950418572413822562908228092565931785468424722201065774001878424730095934001288820209372492296785476956384768920071976213768117959078991264801590723567298222979080174022568761111576410698807988547307280606543788652058486418890065247042262436996117107063335794008976952635464175050338077163035393174364408644156940613814040002822710806797378607836470211748033022088322199444556925196129366767604319159317279750967868049515847197633599469212941213164862069260583558853922353996203714719512370155995689445740956067263730698064288925448456018082277960136719024940951601434448212475124035098060071780480562876270846094668371764124188070830824797787381190876551531805092852936815222489806495695003004786705411156185382674059576840404349531553829548614953537726935839189924696326580907133589330223541519382032394398139958955589010963703586991351863848633123192324037536682581189598364517169141973604695752981996436343199468070203147325203948560851565714620369044313686331944810159553371990466611369860649016401030428672863855882809386119512021200400596770373560000946095571087412774674553717159061826080113092162722199801365074532726725032547232493621637861874064073073319505524141562958572321191846695444082148249387318450832332590071656261269394376305349405690527021454791474102479774304035400464259868774280753606242906224251858037696057445683058963635071456060868759087367069217792953679476466437872978030180028939694193726179665374745222215621759771837768050925070674050296257284298481387170927599372509246694627779710876833692925125574718871973907333561953383684468666408788940715987442800000332430442374389359561903500262543345399017363353422915852271979285114948914557129736017871051699137390970736154148841581045644256474697271549631521289599128201988005500182325082607691038591843907054896000543922539183438680631554547640400007146092865052171811961079766185107725930150993287994045625951750745042883408002160183341854765157175495501714786515295060433893024511673760762285174961536191695379212464381381897728924351422936966247803055201178569019990432759378345939557300470295269481133646932791545582504808543713812038411491201995226195852041044172390808709035690148704077591539173732618574292161865404312000319439495560606112917408196720811924895477120055706533015571764160107470907200454414169274632491602130871585581763376317984182404330805244923803433627859706135190207320718982424675171225747006695121465818635601266766890273931727137291865616960597776337476806761576865251645486324104156433667765310031653293478149303831158935314010124091997315105798450262882815322444495595137067584881173514301966096835124278274050861123096550885768954247417331674776094336071433155350648483583854131786598926391519159467007571727310270476275787483216256690663787121727353779253311672269712750580911066305638973387088015711888798477238742525658356840939286754285152110246316292992647609599253279910051944845739076840993288824996904715167009996722357995550934442916975030964462661625757008091533363257567089847618009694551800284388124769866214658963734418619687121336606584053677983634467116355126346663142605786667820043885239388485676294844603087802514079412007829255284945976238306403454498308600801351942631355185429811715115417866635269379431304608868046431145864407156807908845980004580670253804361770160399779485217591776519400235049814979788240629149366616101247291011102171453376555713860346411592405647781115408501663585820384540348159383691848289497832777846474575142128634523419835331657379012193169312500691897606894775481389697199901847179688563905322646540978160000442499168585645471021232516193330109285654428919155991969356658571758590287754713742047554394960776055721234336611786136597538495040821341209352098662951050932768431274846611406342999411501778699491454935221113400565041092724457488822018390334513635596742750221479737748587837511954571015965464448564525369420441504896556470481374855050015244126191255240356332008381915039603866330254539126117419443846526745294812807365220777051330842982962857225082934439477967971417573801399778861794256965951773065685514693181006586811700116319128490052837289398960366298402093421144701839168570539860345480617979777992501127008203952451438654830389490142092686965563605267680303621958158489855691996431808100629117438579861427201219728890255055589453485632035498576172451566722112039764180409731865630345607497236438962733678335820797724939582058321080380598069288234234694698131468216277316594739792327400595181452263655048503120428356913401779621102394072423590503055828246911475075640814137818616097899594187189325916468736209995438162418788664650059818419128321546414249273004701099996036647831319799609649993698965457701584869829967321044496710794055549737349064024905430685620125286395547868798409348274610391261035851531575684586332493091248740403364555893456690752947318204788169502113414403695138926941635049183683124355059151334030313575712966603433048309903797778283747906610486471859247341039291014327672214377399330188251875375107672746663732186073782141058128139602858929377398077747943168980247068833834051063413719800729586256196080031997919073040418999923370062175611541438752454966905973851684914027332659239511301918125783910898309487294064637223111484987906823824883151486850643976264883514545714888367206484473840956110460880508020986898172586792153141696264849930596368065276034028741106379355850486890565743602514217728480116907455442106893011310573680887893700136405596090459059981857876269752214456745640598879985012510006581948751856155406286508459775107020853725012174774380739756833709113152291233605349852370071000266734223204712461156236029984125657188903778925463194094073112476730998526917848021555601049619117014087887176539584366754469557018601979124392572642489639238260224564331305278555167792994544325275364470905742175340571036790845713070628855354991991854087994159074610930450089850254672147043699976574199889677026285992074946198985957959129404454779112520109118650531977114996272877490991370691457389049902522997673621440854786385193477567749677887445086647854777369186188047604720789919401720542038640717691781799299656067721623580204911125512250089793140926320538565424932386867096494596250997257454760159073377545715420931850212035254211428129084440320529036745930593082912923893167937734595585154429814957762225190183581681916689989442864962191500850165929387841722845227556951658877558730369653741495796968182303879124963634027998234304355221561358827634312031069184116232723508705855076699561677735435137831874927398939784143543232222871567640092076419231140121354962679946107424748142667671500263982048186830953242424058277387549441985735677050496836628119079241366590380020945090246219764683753261602261483093651614725384811974696359535313030619366849004788520898484439590642192783754204472047209053803652297485041646314360745806619231093987889807366383544364433374537532481408404398244969338481295466100032766188199758512556084046017682425136783313419503182981708013962122478133390619521759041571045752186006692544553156809448724416058233827656874779982930391869734190498053890264701831971938520119114988867549579172149581736253967939127735548859695781340086448911105361191807157132381032824533163263034372008587324642640974486862485695753590599393261977212293182538046332846283999034635120744683134425829295170416356634641706678893713839648676023215387205896081001793857951195247613069413727200635993332024738730413401779443932487605150405450136299119690846618986070216259582605823921661246241630928380689529647295493765257134988540437172199221868740714925696749428621168061794265231180785358854686614219647316994764461276671691767252046924359301525065500092785898192736897428221004842571552596323220666441003676941132238661969272195724180309854288932972490842649921483249724689481092451790231670394943872815391179906134478523278867083092159307914412981526059801002034316192715139927626290910105235363449058390111901151705048102457991751060517918626296218071481054789281975631358261219371595791001758494954676093499414872381664331443379231811520283387853299881099657388954397225193509343926827098639694756068156774094815316886546438783235105677871836550955573056531243499613954573527861457482787047356779693785477351956474235418742396493701693722247480909892515710781340205550682698954405800410428273706323067714191495592460916821505694396915684936678076672005455486480507604665338580080854978842653196188180598682510389015134993963908002789785672623776107125073759837235866658700353130313807875581354791113370776771005596203978542017453431817883955239026813793768576816963590793548725283699627220907446144745924219278239896853086642091328083944235285992027217475495900608260854262285193878852822476430625874127077132955708696228306627408460101715955445772795034934969879704363336301841575919402578275448648006242018564803266802880880014892078974405953010547184300911813482989011243615598126070745092192222923281910837087968203763396690694767770583988254713786623211988175873754555071039900334512229524559285276673281832374483506558850830856606243330316968365833028189476139422099594090197608929299793067625512879558251150900578956148348388057709282658532820183030965519014861128483560378630439064535791192682693507734896470276131839673606889342516091962171425974291632827100570130014090927645749235727591790291355981048315057620579227485716534647346387476557583329354054157423608537791322399286595170653604450100532152550140541571378382534900529390114568596373232464864843929993979267926218436734078672693393303005549458601456241054409092402415304142109944706165918884268307665089288914671734964866049537868252858442421691197254632486045738827953050817141631892965091639272537049515995529763985959338770507208989868654496556000919497744323423425558430074453490484765190179849974959112393245015740482510328688392712462249216996974220105384552539498690471922442204944253496104430429420786207622273958990551524830642925598143417063242553671861753470698252876089439264459945245762599429601067440878328963475575213141455437937432115543903857320830252717972293027442913474074203664586812847318339364861677567850189964814530918665832765119148946394754024191160314191649711141160172471143344076763202377452268306726317622708011783300863373872364551733218712516962881991357320122211803888998401079573746161519478222469057299589274834946205644443890415930137755573668710009624991883413390890170342783572569907031967176343484875592989610126860199234819824707416291672691892107482175245829369328530157452443226627584322545664692192446326733657638270350503581854913950964239281826686759184472380364371886685738719660850978820354802381532204708630290772547791805745047678944413674466066378792141692319284442571425294726039503588146865221421928162451018546778957100055881045019194994102756100862361699019680289329270213364996614610403903896817710309255676235138398046457377842813370127689446021862527800839216692131267300456153375993923421571480169614323144349965432429286129600084058219872082453722585548605684554877127543573784700224249270351040009092863051453433542691880405526332168987599569845313661221761952463532189074388966474541795100146423283203808634836844581576259977935806868995083177071791244223087065277191106304316978653670696101403730994142177469994720579454485626284959055552013247595999146768176849275406274477572883832056270531040059679359213510132716384397726487791726763736487878154346442620218347823066261163958514300626355531493756978236612702219579576494484850797712910213844337856937415458910998521589131841512373803395835833926889506309452157389157991124655657760547338452386913051333092513765260175895892308362871005655084932399677486219813210111888352193639086348104967008667279304264260421530049656310329975116772017970341714652940239368677280195374603659291650383875652779386147017630045193386742697541978534940552866579177605602968248804550341167956613937188905521953997608090916482390398751488108965110908202459459902757622455817896014046380890983052171904098461499612900316925160247037137317571843761867452268165231720947554719549148051408604914389335704730299294086138932740975886907158406191584632952837253814766174144736882288997490420889552662637808024293753229214512012986377840042838584663391985850831191735430846700064952748077445188804006321121294009868126066486663721251178867839576893591388090896571891273059007954645487026312796324066003078615366680115072414049940434334692235070706513419875552919613548927944533126369200603884030564028765071432439340809324524586753255732720937859981134610071470912341563232873007078292878096232735683533301941383654692654156010330208711629946018808865220484060931753113344515979734660940367987984566732045653260407006820634931905569818395764827646819236820872444690614304054889738134542825802414468597171091549268971270370033553011621698205077013327233703769488288892347221904666233909055785250138925673542926942668562954967239391028232362334121678681094596391151824684571292667468256769922018751232877140225550919707018222360714291929425159266807249292953207851304474552092906657926546607177506683044537568234694560996838180303483628515513533164827980493216190593740207846207956998675761811910407842251186733853016750885283027762361127559391014961153321013242169224444237032157962045332602294555365739992051887968040862026063512770425838314389635363466098804553702996980522898617225954686387034136661264293360417370008882434014535995313148150422496396325847783668848912247449760059069759837184334909119912185372524407188656391352060803359716081804038717910071188161169993600783564310374487923256545392718093400699024730224119956340157575136828702613891378464098799473572965212637929687362301512880504276695598123443171615773323890299881465534017220634850644142106741004959449919627732727610312793241322860168472309118209053631168844477040260781725014225494580360958276816297268321634497702851690826206574255373621083667861103856627310086325235268502091852655394090017430281200068747994365648242263266872807496587545923529999097320422701948978454606956313351365296164986432336128069863005147273908564926665491680604013445300648730442639009313153891412495443832570977606216288976399368699515960493144181232748651445066455028524417530822879646617612099554939713079718621987104835018444662508954342020224931847957549884085716986029425440672184383493001351822551542616108567063979770549359243803748303718774742678198520317852044009167049485660799176479176185326145657560230669456380555922409689855537055608221790083849842312984507025828078150717801905099146552748867435510020973303303216269178997365575343918406728482471210863814959978270360303078267953089848103551327799876649503536057086036472154102002680900733548994222631096866056096850953569747332685638346488383434721439330247761104698779966047963528019956872383180782858473047342067670314086880347856899160207351596066677293629634542495870053282815583522581320374134025514642098416131895024677760426401928771514303667085706846645217935346656664599121359739376982177823464559646344572431596752842128905965150170003806124793281573718645172079689545580075646865695670359301693151735659570649188702451298251094090619244777425148473953635738476744085671019622156236081060536517972759645324844066313152405346774284625768137444233090408375115094575198348128845059211467363997562230664136755119238474420954564468990347719748410355135734339497740977101167907349576971833100030842077691102828704211073138221282892789515372423859541362674947969013411147622107344876039434224222990342396386213751951788977792311757110054286475950329420655511004442866424306906305469423082355392070506244555157669733821855884704858820024681059445047454470872379937693380625655704091704254830191355381885322118320393418448753329850922746474779880233779704505659209780702718763508812667688971473254695169688118115737319137432547895115721809567517826194671027349501021936444279909458186349745525065073308497264023177539942256713745524940372341658974736574545544003443605514967779804594588574057168724337144531541823197739573672711960112225243923312778564051684192820620593721443883381647469790847183775694758938465236130721628996399862263924497965579821066930701260128141450030388994337714277818744200455176691934946716596478378392284304643104076407287302737998307729892074672021286406430710784329201726234313023578237547890726006826542822775119633195453237101186438956498709868921553241085750051593083353682538328960418250682122948460494995923708509946293364763461614784725047939227198810762003701448049910310449423540858191013524584743194097329030920597568261633832204341374175966620805252697763988580830088890376018695660184242099968856285523683826908301522383591883114675892760200336395134681781163659280629281248345011941992204141435039320265470536799366004381313986944397023315885419030663801683376003725175844644411399912746570205653162728568107498391724877747880891074095689088764277806858850052633965730153264477167282043502153019019470758858178368809191770529132926596464428938224517765974197849398221368854125784182933655408934327663185180690313589919552847768112195460588102098764106103485458328599541833346777268422924014614976119239919222178557876366201662595963292656018634767983909029000737361517416715678541894850760186291812092974671668600734603776717411202405753026583261395631117582146576167455391042264662323803024367903611116503117335394574763385595701356173186686976246940721947917358061762165654720057272919903516959325184887091941334917073176672235175560906992576741915874096592843009413830884422260921930980028411199931395750419070501161338787331947541112133789819138415747926635570339086063782873178753080872262124713949812374027057426083295384791204900319564934347861641684397083847379915649024052081155067526601195448270006412256356254368551977784379878845106445734183241602352911180077710342994532834404877845865616006798862230976183885592469449688602531884562827730754742286557788258796643362902382533370974291947430498753350972551198497934712602510845831220489631980813714822970680918759851673110331497274602262837751330748947922128145278670307361617744520951762977673287789159270551222211312439068562809667024155743543373671464018279839572334400980066744774984696451024484593641404500052808746597968861895757908463357286443194409483417061996409429935137953939206640099155846651270861156746701723740995329516923635913542535357384988895418779371542321878255284238785423879000387027983172874893805774960463163766732992314203257190181205422534889614038004276694563511249452899033694296613036530393977390819515263120780061353236345890606655844392784074336044564363530496707340675291548574782229990805681362716563883832496066273912098091537796274618280716669449284590100735448910399220027516076992253998853785754084286876628300790830533267907767742565773136915564771409118665848482697898927423103427913927935901832592202175371053001803550060363669415367437022904289579399159710097755360541882201270904479851206948238074577904059753808445655335498536928993117947405998309376271236569336562170501560287246004903202958600043094229463770551862470155991042382934639376266984106932869601952987129245877617431359115949750734639306515780051645166527701957317598126224305541551273451485171321763717792930595794838309377158416829770449067314622479939982466527738552645622969529462751350823415017608629457357645335869833730526334457712368183862447242966550932722123401469760076824737880052920401757809637906455302025487175839723522684813304046984659299133828064284711843969259192201701128995992692972172225950922643298949925669568134435295335636298278844540665625787612421285691757402355853603375350477366269795886643946538324898312853945079088683724616626492760885523907725258632040495632250420997324972530484501961071187027382947180782131454536608202661187402181107946993699877645609224659505386264281142848127200019622840349640595610841175630948464994809409149965657491534588911678555251602358770021131164348941052418770891845110351184708507015830003866719887002945175136373734367395806036287650374017429007218028312910737296930329630758080601863386689848038368452972426185614975904851648644039179294738432478852745329688567543394728963340760531235652594851087729767825082614375425502724548037697686292592351684349813656405744352009191245831723756889171094101298431613948355686984729384119051757860262126518446727243594628904933270035884165977404398158486149838327361765028142611470010929754938089732191059067723481669545674584391069927380796758130061760470634631298373337517137464276198888672427577928700127225159712975758977001309264158224649817445126564652034901403968972476008932104315840068024916030868689880366196832813609780893716374420765375834839507063639682273417738421219544716987387386994774086212660970930040436014463279181763327317668671070525095022022944143114004369844148961299198185933469585011757777272321308286773597710764893298812198379034915559559360811343019609532723676384284642852638159226315986567094504343878847051546397699014751626649748254786653644762328495308866924826691329136542664042845623897062376166921255358027094667378022397932428032161474251596397704511816567169274258529236795606167917637688726665421782987187031022531173950281764831477823313241893079773915702569381083617220992116710415538452039736419258958690956428046183991862519911715994724102668131186163710279619788249538427390261320099333410134280167820496002844917254830588648889855512352453454394442541012200208929023594270746459697726635528928116422646515004466928387829868187467700045479611133269406999115990075005484287953860672780299001907935803407800161806991025648599126300599384307152222235190529753992414193511672963669672452630458735602530874023015308642978191968053322011034242935525046007762199820083639847678626354636904481800012221586143435478736788767545956378524276805583674210287244063348365262569019699358031758993899966204405145808703486530899811082868538907366923238993149252255846788734035083367859650618368673395576423787310193834567980938335360060199094427836817830303655089589911083376933844765993582686753394636366563412390165711664194572388526267272031445750256832240042971460143313342090213587451245067134614347494173891392838923566046798649973191994012378394837074526221376205010328844635080786488585263123082486196815183044730590764881752075410493109956992511764678291628204640065172490557865093895370413136277478921635581945006340050815838170770078604375161305676255874413044554178823164205287734094169752459132699712244726969954173967588181729828058853699422999692405275732292719908023647635468086967191294449269079861009254091012477260253097486273282631370420428286871219727430426764474955603938173124239692457966381080880658595466388157560458773876054178847747498802750218998167464831775640519898228661792673062964921948737098909602535795872396887447959933661521009549729123854645876656643380537740777341352660067912829613657331764357402105878432584458315051286584333300456435074829484410710842194645736244222351281170853065439287638439095638882050068064144841557582119513433494117509704363402775742693987926787434412691651223722213909314292813813403855915430859939061349816820033793462962375332731935658004159612899186750873703647319598155259137790530720097659356575712620436637185243510135461623416363733124483986518413964592994940472301569887221854047638747691548620055289623341667268516935764670373032403647837378201028895723610003619188734738880136682940636803841669662166959819708915788536560815972376070209165241361451221296541662289175771989992873604577432328509476565206386624173020688695449413409922483972013297265759815798619831658173716460435465476443794237115394310445633573868819592394809319014410752869152682256263936079812088453673777123556646409255214639336092142882274191892116407368460168326518347422364579326245911045753320482079152524615065909761270371422059943702772679066904820013864873971326608348670553637646945936772473059356120090152665342980694722419653122138902840318894114535510134310756604297628450840797579481402091257834248893133041737786818499671997968149230656078026333800235611818882038880772592187364670655112995989140671402322646071227886486999169242244113491406299153692918904934968761991758612167689290484538202130974061945157607817409269119475950319063390136785517103544322413085012056153665954708008199065782154708623785142443981221171700768522503180368838043950540951850822619084168847375698656273549317186523986170845662892319801561866010932865573006437299348185884242314279254522378133018108343682540800300031829555234201035745461344086627069728272689882735315709732054561829535539978863555650005722042589476247452348737100126673182990710623438226220487203804744916115007848084536140201172380230185385177937564280937804455064369906559347637324369203483300015541228736478077221350145243312843009135209953770483541196015741417496029788251315597345051199051049261617980996395026539934931947449109566758446110496572961178142881807419722820314852029060504705228651051900976382515631667674384684109160741950899901884975517762518484904034642358827297499122371080649600673118212186111863650464932200442768360120967535569135573071533291445259974984257288568796130984363886920572174297047324870567203055483725011687053139299587506723824277057813433994651885897107631824741133422381162626998331192633060033010547339839111385160170305518726016648039655277926777667868124841731997159258145900015705853741483949838956768439141908713545287961491829624879935304397834730000782001125465434621340040759271901933971923609508104099965131350160932870830263034474805448687088661362018935249592341787536663770498879216514971356974770552492128206010918406915380073636118921930709463294162236644459514212968667909108679464493322911473632865223028021185469570504443206648145651549174542379926882581720944388243366322544167178597291533655464440629706193514461500283317960778194536335979393205864559716504986807432841483002217113489479566983909757843543096831727856257763299331437119361190976019179748266612672563544156398308872768234414976650241386378364750164609848769187240724049813745073744680788137956680545960963074001147687685108485399480408005308599884999476040314482952112704603080817874417450565325915055809781417393860611763901253096456239733717676971007621291799134105673070256578428713417809006214903864556576412994720376551546028661120220564921478079109779857003405202140505605909778224970000242589893393010655717104082262102874531311717562976398072358966255828192439843972302695624080439980668232098253245565655373481866776206356414671457297824269697670912968757409935796569762198814302736643598945788514865907052557573919071061342412656984947788156002668969349575887075904692963119298390142135453926084277668534071564160223084498342598343047964034497502535842572562671774878999983602927742250156236289241376785788377243762489156534004606411964698846721230571156447307887865536005570298358078612796281101134191687688367051417814925171103533342971116332329003427081318253710295771347546940666375168917431722055940526910334175511369314221130815480153510398294693689529761220114818812860992068763123452110987353661201149931016763359181403036156911286788207342967785903836032191966827163300105369147934332467836527976163428153926969678754517935835005930536293139332401851545396830580127306446076756852618979281901172834651288935807644146738165733896211504486367858862637363168706659882318850006007316761729662591234365320934373838752285303479881053868617775527182028558975467887827209576935292296925004164896365217621317006554291814494057959345999880046529216687438524394736788668886196944240099879598923027587083328647648110693991172576159248480305155702570041393993128448192096229973895066244135312401869308901907141780856502552378242201456526938912672290463221288549081335682538907147964168681170424379502328364943551073879222299719922366373885960898062880043332848511846109518976959522041194808868898447971947322234845478648089923255040630004994853234641545610719468240005242005111335720498385083786841652384710027130811456992185896373479976052421426893813459005298809375053716761139877536118187718569999279271715757225625568971623420861186506813236351955634164398221233409219647144951271851319211255412610083458035367174871605564645315927110943876505782623070709460410018090799579716507989367143026929011819262350584213807418410232761577829226961085735477064996784931405623056788042970040836315252343487460832282166922859802604151237620971535617496810067049763227283208690526705771531306480590183827371260451346100960275462011822687678216510354398506944848138846094710716885717941680151043753019971309749469370776513372183612639028359001893276922414624828308181229118534381337014223122578105476227658980915575589303756939854223408190024915047839226087878086394363749318959483509074841269442927963640401862760031349813367615822528102785030357976066824808832383341608609663620813237884551508133131165764935208519691008060564135045448790785371599810457569343430373391695149284142165116584204914391867461087476613787846079646187896996269447800697721396567740709809596701787291710612119057728438904047521328986873832337156141308771227788667012452745557997120073502182854992690154796035336454995513261051038820825927501887685947017615339332989728459491573705788849553471636430812886316618889346228195783173959035848836355803015657342001592391956632408506350170717908526956923670592582307273038921596233782193378037464398827891289438773271568414451352615478094751494957178105983418631317310800890317890180832831092615932026525040621152493384419421316552607603339480781220642038118947423137202766346754681977016866765714989407941122341939616469680134496104328022461601637471148893860889641020053372068434071531263190382458973073661613707223309115586160217389508908101656757719288891471125443966109516583507818182232946586525156159817441578450842777726164988694046635777815186519159041537893283432029804747419845168537443384070116287968702213473868767819288674102310528959447044459906709081633762468586680353233058867580368723707977339722344916030211826610981939367359374386219776809843609762527956894383001894828171345048026354664060869615687309763323609662879806872842137798884543966848044069195226900731020300961448692207785168051386075811043501544842352175850716511370896853248796501245052658393405203907189960261382054442622643944430562172563055703715581315155803341445620285939661342124078326783838268474414504029366615334091121208321916805535542301315736902412482164644574338421319211134546031630024099782930207701731101224498852010076808893452107889814584991009819801236412966982644288799210652952957667121542676980668059046109746917662799545994908263317790133973029470314180396655780039613091621519461643161217795622434097889694717893390059671077709123700465832099707634135496379472849414976131280037375032164846537463997273786654091068354170112441237380937279464735623695933558608524344441170738723104201217633622514513988876832274471353874873392614876512027236233371977328443246722875768243539848164686396094838219925450442266403539673447485478018470209813586923908731247417177238084091382905550574014084378123512625074048003863424784454486718715721151071347684103457104428203615702301003697815497792617161812309616458556209160121826161006704920177034409009801193369508635959650489117010329318992565088049009931371744475638136670089767884222425127228974363592003293983044311059131234206672926097696008320561866675122803722722381620388129670727576865625994772458809715793780505572954567779902243606132118488312373307651848566198017677964216945904391158863801734557569512016418503175026111844336259195095213946567951962101520766444037742012946868367930365724591880976297742384307779161242078669837170863303309565835272401578353554448100065371352367503687573895598567181282547039955479155774119969179487530027500012192447151446355839844170591505223323145616146545792179047230510152367790984174740948595255158664254742420421202875929821216072497514652998693872570010155725233932420160475404583192787329126179711487898556247070798325849756714490304890087307786823342189425638114021276516358842862577328901733141026609908358017375241739727730359535956044063482363742101453916184898605111056726828610774157523658195746754995166706046319128812124829112848241785181155363502995747515734174129142138214703559856537214588274105282019467490405117540631409275080556428565459513711230034871871314883039177124386546681504556186537885686875157924255389386585101427460392039070418209167345038168881428924145737933877779210257157892907143302540966868428693355626674785729871123637128117212082065577654535856829120629985755341906591531555421242812808803807864928957644709313177676158788452650310699700674221818062695626931113840709418731067483690808710431445142137540900350617278816295302832394402333519141186176493222800450671810670989389744642711473280086270065684936408878308083558674367037708204535677912996710516782222979234780442045379991540980517818197981714027114718255512759933899988186082930110558382574046971878423151261271556884208834772523884340264061429726250174498078464433919474671230587286266519247964951013417549072746934264476386215440024623683311723672386396669768600196642890568602470542685408368114792574877726613826679748679951172964592113853715443311565451171561071446224588347537810156229687387068538591606982458073495760062575785303132609508614376588840479793773443775736928894848115335423843686779455636402445249879362839204663122691398592711674394764979089253171737779587549450295827826725102414245272593546199928897715634389877044944257552712843736514704851295238581397702543136260153497832831447825627257813613185569956773585433012272493586251024667018550050930514150171805956507420333368801438835581255857856384477506463759923140689384185574948905641262377577905760619991798612422749497596770816828864890938792332994419971765057116029862576549246365248880172130077997776742463431760542647553309289457030488728582825973080139048438120497869933178809446119284371363279190925898158920439297826732970039620837029496940426166913635921444934858429466042309242947460238317750069936527620730385379665669323849815545744514124083580856510324744337072856186991496125706602632351989199938816882298888725752826366702448508765152253380293340784239725994310660027153521747393894572931228278498905160865666552206936757825595607378681730412052351204030876911738213007759362627006153984301931720882526351540345436772904408408695534660565882093367848437458324453498235048628719513994876096408409649509898243642188054614148308041725753774089310831634048354250103138588199797033306188581796947647219483518910449109949677128763462568905821222926916787616800552977797484250436228938098939284974634078314827125083662333686835284355903992114971745305410629698907861779611896775206918560406236661412119694001361686930802560956674949308551706539297665789243534666329973077144011773374836386243365571784468130998037773426465815997140809585128030323053843324709810096814972123777993870226285212482219416340122165599777758956200034386035053133577061896314891823335573502129409325139701260858002471995900176064029824577422530551964486171572657940338729726445370186785650002890507057971968083450240150121376535424943177415408191269690914305628074250661690098685591523138133100277886362712706735675073683611665410910492697268374532925727503795474727979860919739965552045038070520672362483010367830723911842933852373897625897005829825363036454371716910554019040348763460823207200816468740646785607084104674081306075282137138973839461179946898766029259620834482396348743455176870035671239895105628634339002750883620190269891568455488541661487501149794956843748676436827267938976688929728758555647730575841213382107024103130238651860976679508884748682981512792073252650106887210059226651440245797692816236229677364633465880443292787881017985403447921095589165484836521737333910220971944007058996089394985278222478060055288329770218960305014794282642488590547258025888909852530863556227421871785177361252735106331769972789238651306176267159176462489767684687936518263174070088422989248840520599076547178990658191240820538026085139468282506028295380601907680018766698994732851364796466505560331665665865530629583819168815405640563833433762896594758762550997988251044454192294352388368120322473423825739770703170222513079109127485311083201786722090758459135574457753524732403838961091828344295443798538277754610906139227830998509833720255665207416812491613789372338104251751622712961288098968184361803693526483639901095387395638458047081003594229528085139320040024941646198434467598414359418092408168637769223255463006959305388927293948307440793079523951463471365783437339273404258576088134301182184385220664102339033011657347458619049647985139675359881231471715016173401733734265220747944883000556436890291113007277568354822096452975388191672414696276274637574384314713107363017084986337657732606987389279555156832252287838774329161931018683189559343267789071419800118547464421292269072387637595020542255976916404510137650897767018384951852734766874501009044276505106137584585387427662870081990215025593939405250127766710986329191151599654016436847028506733352842899482009254439896208409463209915715552080925660077817683793564156696680011741752512687706951332991061452604391314887449733158225658272849818240486684690629089975990713294242871286645803602159654502975811993443714280188068309374437230253529601326709610034228748853275110225706915833717825916271212476625599090201923729351483621820720236020013568611841274358286976762117812176579622571964375388457044991552204772176351500209473708660462937034557065560484971394077844985015808638613270210027575723791536583219728865201619194868784962653886678466537924103235315968267531469233314666177747348636882759453271448409494291013341358659995902067344846206990560582837068404586734821334659914172465702849042181673504255767244714278640936294723128902939801548606302086002570380216173663576767492573063403810572458601596773511279958869240276895657280175951475486529571287714758511590072986255940676157581098520028408446056607792803368072162272999196388827236028182291368053874376643394395051236527578629730394397278298600960348086959991073823857766973825100497924865762193557673503200295454332542186861026107502636943947867461803435761326505576723687298564324044936097086701801218542932030837511766880489053100016563999952820129177964915080174748448810716368633587916345825145887478077628239175223194505675589119689470771861561285033544524874719849459450059718042514915810185567245908874267603486032877717349594404507310955660370410543080255601199709607028533834940952313452789273823013035475917808400246429266606420422681007466261182351671632513856769124259026720864897622421922861349395557730675831814747933876850766182370658964091305301821732643727135309054737026694516740086650994499606753640530505066212320236666213410784620804847752892320255198799764878505756118145010279904304471991854399449093385864874053927192245125672343031586486071171819346806649585678030377119770336408613974767393458871712714510506365504225873250792340688025277671170315152368412668712570227433082447231497280675121315504873205181100113037329074171347770536924166749548345797474491227749638840012158796310179149521011789382684711857215147719426863088246469965900598734504791947462681827011821331189050584441957912447131410506299708488812352967970351671127231322541152677409724180965320149721782891176616303849819035341668218877525229358880040731355318841163842696481424295396099297887334664818331045954371420143624519417463441515018268406611508486649086331341329639612517782034888065410048793210124441995254156484216970789809726367606793776847303935726523905987340083785420653497577603103680414076761453685682487733702486943944109723105376433776660868145669938256042406240853203230561236610701094018872142592530552297042509751160304368441189502261018851887181420184595324635041196005175998936929224883906493232688197316372866990650893508803358083005186010523207277854336913365037603078347052777022698804824079739305547322337246025250148838716891869219007251096233192786819955442327030666567744683298444042211334487894921763669159104657690686130257768339017625171782362441167498827930491299596866819844358862101712761119233218588697253060091193825151013342243538993593007845812812441317023710312202410557358199373805166007085461740208287301786919934770120017869851623054798089050868708785499496762008835369865178976797046765214754555022141023585241525021013586254602625937878143961233096059194339897555846438810257103535344972394966354820301405744779459589120477850414791855769543774498658231152394406180653281561196655509426425373287137321767887726993267965456507835789850459464561814808238795275360626466094906582571966983065835117808995634183774465011513666812768459865006564574175129346385931859312566278487950553018741262369473248905841383328725524168762347583155711299192017525128196335352435142946569585318100139336003874770962036765074799763628546901213656501156136289116506087186884996070024384672980031927866663259564100944888399851827675013498763095866926755878060315007191324883787463984579139269172042868253250840831402718494636938051542572001794657175629566592326342330972799626309895986240829986603310952495192561336126842878530403213705866906867522321468260969805711104994658614180823197579776082916133402477658223558631367174944513021872732177186819284368411516057826092837318957949154603941523405382503731088189420871530971010632718144732890159017725632023214428220420616377249747986756368560790609598193465610980307710051840169716623650974794766039877400045765322251359076487144372788733135755683045622443302576106660955358007484147826060434348355049816085874768428159616539471446753663843708553697287780191715534078525566819349344833596146799292701056273073283066059940838576995280006074540206391537134979510658102029597988244856515833783653311818583719003118754500410713223103651033460887999080808306635756949170150162047651941296210844012861976037973510361606415241189956165894614955903287769452614371781572275877378760001302829621257020371035264823856334996427937071680319819384299660097133991478409348741360675213739506796558682337363781230470191073777136451355544961769993268204184112350653599261842503538747457549132636351732480137072654125522452482187362030608451108158160722346739986888283163549229741055499913258643755844348782327350469561545086839220439224121658914791932719304392110370513934837558138567352114707619529093796734811594889016559204313946712277389195645177609792339338165918472424913128321047592618848055491479426558245778760012326821606013545370503761717735141321641906021182144060872032231661499881064064590274773422646489211445302713070937890187271774500340853874766579985807888587511373182784300923401152496493322548168160535882989044587609174320815434795792930765372144450205276011777599542003013382844122636621345546510017083496357018419219556671175400392805593145576146181436940982880842947506915729613405846128667414457736169219450248100252050618488880089535173203833954713823970097559535920265544644153890580636152864534507911056988617903523330745596414610378747171081033893221181999523228364930971494306574812520467620950670798095769528354681550048533633400364696076976288855373201595962384919589620875989094758576952573135472757400044676433250242358617727624727252328705236130857316433336417537528224261286946595194435456846092019497699335464493554134931998950094618146678030384512520468571022637596063417522959861505226901334496335059505486109614603906747747444261106293594416891287219960230034672032137026045335131491846064354247879868645533377278659505702872401957175593158971502250596611233729346076705820976733268824540313316404937955264818225275457657602653066481265155620992793657063041410265350485534196835190794770313894350028072649512175753636286184496054748662829652275988323571564788990399219312824947808574701560711125791106436573079514216255782292703445263278496246806543796701019965748312635824137643015718097528588865147474547360678578727936711039950944719123551039959275942722114635936885180739115749992074690662849713083944037968725357800119785985559809845985512812909537899205426565153336138152227301915797895748086009546400295130456037937063344779655463372624371730791242882717750927970323240212310030339983366656448962343202381180922315566932966627216397823482878017150916425473133745314438890842443483661134490891581840509008597459683433499319287914195967635742152961471950372731222205403443134782101151172221955966681323541958513920051860087841749596137000809404623735767163129598523241063464764517654890147077100310630765665996979793698679162671951093832288151257212512558624289332782723426553952724083489548810454521070949338470993715812479243518969490495022013178770925289624140495162046708713717256342097094362224266808235140005657557104628100870799216020307890411507612348238937468597886658547528041649079506762206814028593817236097140864654146138047048095014556641188715559368249560359263323941521905163837038416022736476491666900885484268430525705346679597111429516865987853766367615713317122055159552704041051150878649582017577531915549419154526418182888712503417124139775514300614101134207692127874422425428596114245683179928433786513687417371256196839257192470289253654839120703477678808457232943825229527895364135741180795411528220233148912322109121418655837385156385187830797152593792682611214944932920477744160190167833404978154344502907931709955142201282853629190100423691145320809378625699252241091904361132344372549869103900952891005544645272992349578347799836416320702557186606491181041169324028818977434286273341733377618887620783780170088376799355770139359128953849697912816258718980600330415710568046869881357234918486746441158794613846864548756274196574706261811383314198705753085912426384238782236296645054602254088685012075404802235758087743414084230648821072555149906699569689364948563156636748369176489435325509552276968193866045820105869388674914633732235043280894998594688006527293320496318818336752948950767996462460779031909491673271822868442672633375184686998772445121197148670596675912511764979081993306113221785260233765224450029260415805813920173800243128321310129683181487013361531836761664216252410311076713323852312864327975987301259630421674947298601784427702315548380990805358289954233155922529659426690204762253742062425860898482824864404864032264669376291675407078587541190898075160104102496991912683745944190198716186447558628977275006292095610029538453199333066282382673155552250420556997206667538201886793474093244582669374018422144901173045733436222585239869025294450627653733772822404597179199613680198422379105081804599454986495010513249441767871130987898550746484314300609877372089629101998777882271081579713736805605288819086221946003764024866641040061159010593697831267381285799356868001252204578751996314896588878187821675392491918808227490813408810021828931023210456331977772793542405430709880999381732256063603004633544756166348750517293532750396053760474619378809064945805519882690335612851476380804672068351085056780566985857660628837823928217883869451485257950783963938778367722143826464313170218154157358446724247047262657222176513008524678711548905200992171488693142872209894558523728685753179667360050027559581949358546735784722728994375912999525032383775615962792404021449057895655457125208429075126705627746919565835891365781656284648680090342601294279285481230207012883415206612501238299956338925647418390643884397219347892936139871686709159436180240277801369928882147500987850748989992616577265626123318531779336909420487353198648991316536386048151974513591442296612573115809802721060790342388551911939548744874493788197039184423798341752745329197560764092706184455870975539797177653984481083085384784584982188707120926717430176522858179901475913733859194070959737258637466732639675001004176421485856795289246323003357855036729997350079444293230630296264794203045097654649248496639765423159108791345819430254819246271054583741678062986903688614858946238535737335215466292287299206326450558122957041337769120790194883091348922611388561013820636083092048443722055225440767572767341571464305088119347848167627997472047560836858140224962419180381290461432138203040166331946165052957393578640241670004882518469449163758335474710470754209699976101236564068794588874805198769921138877405203272151460974707208709830063273160032880866299565941226006086532350588908558283938003932926136865792636504543087744637362342408177086787436972030530968725480349457580213129102671373747459163753808776575649296635448358569619385424553598794079883512485968033765417439798834949579199704608303900707793211706374409877338285855011944832160901772380454213111394144361695809331751513369807025221117372392407584686691898518807826389741946637014728514436687014989436639434663126348331164319977870157847842801820809992523835041099586752402025362461847053343089423939801920188038224244795607644923632970422327260942645087338766238045985660404191147844063168841492962556525702183834073910973996886700893677481789227866233000276667047707288919126073383947045096795570866512432050764205437628003876496809152923187537317342732943720099317409508508242887286274614629985344998527888672636001563267623472177892521633520665656600011362698495612139506791336987584824582020155520821314882834716430313079827800109004746390828605367437955223072017037523164706642800192181613732091537565842389901383506413490668624049679878364101984485604176779548936858689007389615453993365309071499609112612505012211292255870050237941165585938854246942699691938769133909439595390126305775472175408980734230449375469928952078410092201597769792747219058786655511282134986801843099370874757522853124616488804547428182764808908644989978533857982413188240456133377402581951523986684585188055492551943610292746394087192200322101835668871953158066081005856439778028691163212407652662688732721684849773709312472582283182913995346809007834666584636008326934416260733819105530885948396731314600497356801091190376656477290720714051247581345569184701197949995431102268318876605687633829340299461802616103918580275505640441040634075944720668669779723433708354401514249069950261224314043556435001496469317282302760309836873374857912695696500112638658596754902077702591356317620276906739458571036032965629732667626388647031819911353905417881029408798370022685759917737096697657738130202665023648481630873229016658280998938636510239459349562886592008978271847273409168442360190329208947927759743232585570161708911944468516384930560160368429155299820376539907947728669486041535341491697837888283362612882370562568498348239952526430610123527559016458115581430165302908095808295214133973841828942785472927255443060092596756482276359096643410461367700129808007307370483011255424352562673865949566843672930080224180704178998790307116436360468509018169027712963089295886437022782089620909620327807049538956980182699571711542680218830448545211383893692265415429179976606774041497430677361469074262200092605021130897755780551945188717556967888372016579078840283428782494043006813654744753141221899461314803982984661444200288976714437305239631452291386290397521154370472838050881624529295447193748150080043540747556930985867080662202607847305035684438059384911389554329300467699660817708064876211398135112755186305298486718450440738979019651161388201197027477536932396249813720647486392408633179128895237891258991368160852700046007452478757449702509431306564189506609671020001161945447762625587333780976961564382623524796375679196096616560112878454881434620466076702238675546105905801106788792551920063812145014129466272979053777133392369878966792601065938146672922795457246264053771601822696413986088022699049182310710847151828278487620978470935827448457155502709213434474211351663143800478703337457819309413630270265533963521791341201693037163429354140173141385936597925525333409046505392471801504420151341213873114234446709791264307730153817230623905405657130556694529289478056098700884614868684944005218533228377871848495479828319838196361575351292321595676258916805645153558118914667735827218546462911258170016446539421132713428916455495528241320537287142193326363065411530972513755499174974138981390568311057894919157859148510829258120602748271055539991203179182680953300905096955267912335324055558144485266183252993224318141467631361231411091583621605523122739410090540398060262378086502036378799967567164769219683673221049346365721777948166499716316064886748915693448241140860448613551534721368166287073722526411402219539056717825292525096311138217939324530341843871243848503236673765775417747060368566787697416106263972197372786054238559198920713873702083005698537841098563632108604029780387098462055839859359575031858036821956153619796656377650066429777947582611057840726155935442416113943823515157796766984730279498135899454060831011008933849924870305801385197802702777498945228429832385606161632473510158033839182266951647218247167853842705097295728730404886975159440756383745105397014243677727857234752712146323942129200268566366316301795856359087147624177689589864449623428674305712938129011179237080329558970902663371014149962354292462366935549657109701632447250343692469053413909758484461315264753993895609217729334518490275862521701484841501475182677633201878592396211346722305066515005903130579911852790118767155117858042418128672562894354214053058116647350131022568886517629822813644760344598422788000331076015443087495600007089268626376002813295488846448136323120595275514907892830165955386130232351480736221325700674059753817978133915429595121325944324352698278147060004159345576247837129041491695398779895207394610410039598978238793146538248255126109364152148010344588139177798823847523208346763229670935238466424899088927025248482664929575427816231066107742497208173724439125536002471907436108641978794276653487736078916322382380967163024525022444267765354404249233822617657104718741118160315462933975997318217787640029663029970226256723838931697744306228616286015239569261083023370752653820516238358788093289552115768849006781752579028200858758094326126051047831114836441576149396954039996603303942571246334846400147826588752182861271028003433947582290743008226718197249587619382611520525552592147337002598333523011434250610177314343577422339849373881874434367926791760299421632632980694688557301952686987770786505373900341130168430904394599204199308575894474293763553648547641257873040843951107715560857468647049058655642388542899415908324806744891613807105507924905615849690838245458364876359014917397404573282179835062159160097550210359192008992868783745075084739793742725083183438392266104924949858232328904510877378186809425416701306414288221097534998167797574993490260673105988906116097389721055384663157043168486533025352250203900197357321305951448443727663368713698581646241235266273831668998808539346631895895664554326888074092658491936798190845143710431958782701785642239326097399149994345844427184634685313287028504848911620222220899187096570985797637687806398605291922409016789380547418129508707586111795057518445346376037847216085917968718190619895878082462510371089683577874762346584119670072686574044622559632072837777722024948720438507261539933286409486701232582626547062214630437625069164342409150507320458244206589759219783505432697669527941938643242465032160913201451324481682758352456570619634889581714499060963262124233454262307466036351494640574390451892667920012578288167581045361137618461960284021804392462597744910605606883901393595381483474639686177822602397719261568163780075562186554016479751901639993363938019769194061726108456636562488253968856108948382201111659303907027119960052294107895634921994349684382700360575969966212781476708912037359201884736482642269575745364762708182395839242981579135040634818197880970549069870748709120325892345076016434559464957795230165824274153302349830784340460786293761365733705202304470876819934659444829020575011912244794285210002770179528338110954446199344048266487867555640850018337564735179849592416119816297095828440844137555263852087855488354536203324528076599473981924620829398300245964834108803942314393486087087972403132725072418991374896563897138291561871634390620098615036372150482284330761570072817873241718688237313619171568960709397092968661320896338757328718258906795508950657843270979772943053883978990609221377415174190890103026138316667466843528704331913782329123618964389567504091291515254259445935710191868967670969653110923340179726867864935916222481399341297689938852662734141120403700443440278952663827034380455035049539830163289419005992302959630732257540758516334118171754534373918073625372984562344932381875356478179104787159864020347965404709269431472778394751418573426161673916757408378949331197396865153461497393778372932020595093775497988920392568007340732807698883290963150749673017781243631922927308475613683164903437819784808307271647808387078455487476603802349264233905159053621533176696985793425035187879508908975716073044258146338962322415713695787136358829703302212696288445284668225698106879969214219605703243455152854057111738878026419650231921258868828468149123867947721652367996738226251656497291939256704862747634152547504933544079966786857618080012999488435222923718398564373389378646513635353790515317251576330304274746033453442469487498111651306603656745276140305932816667780944537919143025935831976007948461397530506584634481281602222199537556250062643924731304074262848182725098101633601570273051487736032722345884609826937257760567448419439608659571623599858927547043245602016659944160788446109347527545697996145505695020887178994782537799032825086707051682816817682171952528638371490458785167390161324385340089355531860759501534773347741586807510321681005216161205982703875873931379359830479347348677897265775584779813850307155526088173305701037644231056904451617458290504177793625117454786390552821486931353672603174146660690035753776409857065531292553787549777543567799808443250426514464936272015951482851418490373419579374712659288189332444481360338879715926356640567232623484821840739717240673886847198703965956673482549540666551329332579185403675611054656411592078043011560796916217302910482003751841017549535859530536232303934170373725939435251933215486606549599949118139363944619526113266098789191225118935717043622093057677844170414975791293953836696576005486429066861378209028246564733415850560442594110988672799670632060227458899397897787801549007652946088299964517271784179768126212191989366450314971948293181883462050471153690302538263982843479311553446400040606961925250606473048785969752135819151791980876254764240711484350177288095496935252555148259409789294500384685614971245249210695724653777791563843274456947100367970412326703760995232362735046045554924766702108306215076196690702594698347129069636528106703069633205643683963763484579905808862093261864202596371086915822515537570354833239412790614980900564697998724137461151136457454510335603622346988033888301046013759545609957636303401054514221048483201630398103068004107399631346446538745452841063133484954633794284688797198955960251632124671281169663663487971924832969938652395024336001164335900408296679541230690854977389595603327004776611726082759124499921088660503882959266548125963885245556036361727840163722052531640511545844927769254060775578625726911658350664808123899376161151189085678614772450173206554600796642530237530273843513437361534081339347272148451832777208665098621658905831652870859527690190882043111504778214795963604267917424785953059835338202102080537536347008079169912569894871723522193181648278424497941742486153271650341888604277335858685138155109731727845545317480818309386248423159484685207118235061503762316890437922857423624418544607131257307175109677996609777068643281419530422033418137813693898918060789495994172924625233228533566491905304052380552806297125213742655449516623328071558153931115880257023096167074452648526584079206078722026276453330178052750385161394081126194678417848348350178774116190660478429275847717139994995047878901373102644739521809045361886753256490164676849159328146333520347433434265417127416248815495534114025527912840984002673063997902932353133369795989888005367285567648602242053104933431371508134644688695682241211532869929141163012073132319016177735271581897371767359568204100243222079962122283375675908738094108546240080633316058194629879899193631468453871787430871045573511419298155787800271602639079893680167295593639173161015499071839353610321516134147929069676691256909720992754727574788555313126019897543091216381252448200315501904262859512150293783916397281878924799099411450060662073166046307633648464636337236842078182518892134070896054879152279745683437101270633050457789230325335532328943782652341633686894851432538658680905390577400402083471583993425882989816634837925217663671779998088521168473556908694684340601584039525658260731442751219530756335169198539624703287341756196964900661405296339108477985853885523856515993342188836631319113574612619519990642724925815427048821723730790621102570014556908266994684296486158314315933485392980845808599461279647721614392801139414585600172217721757095950651128980221746601869803510936478922409234420960145974200024981399761848262141612366136331850354847960668468795599929670765520456606844385070999615910366757534935425844759119566497613473233495323735341891655073325112082852421279252410590016449741890557586530352410178721039932866178293002587568647866820749254093117049041400065131682082674217161198416268734710613973522308346179090403540607008490915236169765583177563500190143234186436066720822017323048492987664766847175882014971457056835719148269779025469083921306757953705473771979542898054293882377636743613002000306613686104381667841605948147197816636022311843877400318534069391648992738459719974420238084682648692923818537843627234174013038602008274607716291926898579820738802629319262474629167994186548595464495672843429040701971165621352491120672319933855033501784241482003038232279255011750363841855333660047124587089429879837938664764808597639645252901254833119002103267957458372799396242497172630433264206462724774202648745181360112724325052095595681892482825568142628998916631289149410772125281939913504618061492713996096803125300763134117722380600271569019087145505480231194401142925801796325858278101678757535125989836846169739790423499252295300056552285342304473490341801515057090058405074827862985761527016941881823838144829984618065239010846854359825604670736418924244422907684677473601264487846381830109835648269620796994710420017876233786279588297871247015731996892268933075158328983476231737927713186913455866483244668417551497354931383804936464246557051265980625259086633152421924223827397173214493347743361632530337045147724881085019999843204171393800303182685258706983032140147810741113963128773580785231394968134956254673218628898589317027189773859982052646409149271979404365116787728734058641104959164545123285450092623710132055662190837854890284279153204322320008112389881051999998652542334770200375129226828021014222070309560898638756546379921179639617877897543558826308944484895352693148259174247514609836956358221490896072273276621726966240190387207292605243134884991600151133755767787282359800337265053897630064428948250003076095931261111400750787487290309956192833619346019020616346630289545869127305993895791634305406763009032040858394279425859169643404319113655883607267031170494085608716102383233056958159264653209439427037088619636602296129143124695252846411418544571268921905595298712498826823430702508502274497999728849990549955834138238661538976335511560107103886663285288546103213599916878675766854453538300442134266670076509093632376033378273600724983812182015267064219093715076508706966122785065840650352354553786656474452795318969199666692328192393498441922596029308375001435382248973512377336537280213846000461586878589229534991549651843340542571726064781348711395134668999826318724500340500593169713819785357881449099643025988628219830034700311744444328646941166908661007288788315508895405708993846816759337159641308729997476539987152324360819593501491104270789161832929603040041096802357893310082195374587237526301217858338407585435903513540143186166378062270755600591457230128415430728954495069207896858493354689538676538171917687803651644841333614161073204632632018358167634242335763860947671711004455514753892490085762899416864237412306511559522198560247465358699599752625490025102082824252196892556952986242423795195847872864364122009655428528487247809438415918023572375792892106415332163836901144450776383651609292691834421929261931160169435319018077659504864394754361422066525642683353899463233154971970032236755459178383551039874691023484440641147582327379915192176065196203264899164112308982107843540082427828755521467768000730189823232453930428442932046090046946184385981052210791657312090740308848920044712063777162148339624215723974248280582509519358697668120223869587570471695290213198603468878785199787171898946453927082716646196519193085171824926217955998486030186090008625365727688886299509253528675542457874860158169693058453252124321472646505520508923335181469236009678656496014516507905004682806947847274878552983895327993825860804431701817334512912545536520444040216670674127474937840314301696425301253512228224762332269113690727841575548547745478596928314185704464909984361528108701756753694084849513085464630788012350820277760873662602140748536385390743679339111030885439353896958668716606935170688244154439890890037426083994611640038697687800450286401698232520542489731807912288301680330762787747244130090507389714075894520926977234535173148553244144562418648161046557767152084118240234007145442113972025585728492570376397785956442449180465816794729237162643280670335722816555924875516932345484259982928334715129107591112534446750331737662252714467629389094106201587457316652604042997826061033997839349998900275415214214746451860658506131101051756808753537110575231449658973514125020613817288934225660224149013983242880630539115855569610982745799356856278754169350681203705134203772447260783407905260305271561883889659146794565525267236606762894186425608341501228167729059524993149310788536690582457001897607210773167329731884237933155345092771949230480659484249039426387953407781951264095819904107313266225278815970762979703194000890603079221964383257591161453829059345074718253689294548528087399761096943206819113160649942089089128587681950060538559931901190761465401268167197546900210195911812090925088620424979790963881210485975446486605192094017295126627116701044260664389326976050132729171747176739161552982550730370713842167895070755860994156810743386924737638232429796753833654819639794574222595816278058103829448915893091318850124031887700678947933091305326592394436478311618579860396037488496523555197434829896831690741620240302529508143008692339339048035023451010924062834086970860787961847831463195689888080830927167998577779894084697936490754393510614774485914244150863760418757877180522538456910267957989791507576652030420114287989154931540568948213363352123178759702900780857063185820121515726981573644617886618303771897389394413698579061725288333615928213398223527722602536913401805213276195312932760002734607751477689956286203754351685254836500753264794412406506065469588000383874858466758202673250388377016486057356092037092007933574589974037371657139527635635158580780689321019773758692868241134068760753412877254818765331106619035207444496761341951342144137187887341155304327572101828936914984786763328797426820740413815788156650390397624820714176142227407463092428954813154387773768321613316605781657860496874277384922750808589672633533996669136201470721628701437200787127061932796726984654880085869759715411843038041555800984838165094271752424369643792176776924123334940385378278957378345057613772515962543217280086038787152592831892279146879698556365965597462264411031109847254415539428959548083362292253596753994002160349960152445299623927861644357041776422792669980121230075768386478577733107259545271223835292758388523849218753504356141486318069252866027607466246583055056975493243536970344012981182142016818506828239439696478975444588230916829779609986352975404324685012974015523269657883147347768290604802635695321613783488198704573967998707016454665924630302709697183162541429966927861549332308882961734612631675355295425772989219721531576835108150384780468711780770470421396489737244779328018265611650557723653834041574572188310254580469907295731789404247849114448281618320949221970451751056263999861089370141968227843483849610082526651046430981068688866636303614463814406612205549001402594410609903564564012062380594228555751823408369255783881164865552598607942252025283032192367025962310612039551458395290371528105366450169125832381930437623790689570138873526154000706799121997716080752386269414665536757343587165893060714888258839521412063375771574115679830115004360598635244113949414068822667433619131806947602439513947879960340048500423649030888865307939320880966163637511161252005333276303697166682472541488185822606140916701640228792995110576575548034056971025733743902710661892103722517289144387699172396876637789206651105344951299736296020490664643101946371953477804215365504243637249116297942884996509681857695666689906352557009222523773016656697703190506728690615692540311373305553175261649319441047074724371711955963275440107151401197394183572990119376016000859713690932293743679800464253484566525475542912062057505953530245780934491379805296852209961064624484813884414252911797319550557252114365438924202111141072476484842380993521648434544802680348020913592680961262175426332740679609557701388560350093192124087898989914040770199356045930624318195233393161021161302528203493978725347245146783706408499466646780320012197286092477197896512475182971505338500852779700554458588122050992522210956189498291295379563160494747662488234792140906214949785193135898973596562948929992599010880181390395557655720286454143604882840706611562456746300333901894120713132814369706231487195377163939197848940930032663218897482405187362020253665032216015878753507458403172150847673773903657770664276723905214107988523313441426084592318662838139971777874206619421892809256859171069014564242493815646415333269367838360861796887033546928791701431973728277777599972043107453055165311287635517135475111736399545651563389347280652236995012269492262185605830744740791788280038856303800854011923119981818435091714982930436472000620166765669479826384539197962120548528444489065924481409730938806394760222846878407087264654493463753801333170047616804866362421584857771327577081640811274113556842556917482035374681866393681429378319964691493256937039870699858850159405408350764299969602106328160263929192616112041657858761625935995057409500304173184549782080055486951952990826163964264162239567731692253726505428677383274022802529583543178015632169647685557962929651423994404107229426796693896437121131608445592447433686413548934537204820244301868457410353293105985153571703786238690497435021109061033042321767869239730798657058316718641257387417569254648845750936100051616616513560260635009843845727523830222712337968310017034995517354895982192563682523548361829479678501569924270897496243410111282752457778541274794269459612728020251626481664337808952484750307420392344511674451441559323634249029814713397859839195549197489547874156806584385043237834465443462364662280927281549341354583218089880278863524515365917415703971751157680477249586546169654667886854203990453070510842824662824736511823030881883923313700504348711875223217260961297579185930555564758058325438166497385931560855596681352711795023373231827299442639202218051331830605438916249683474302204999407668983039634667682125823922013383176541823028090925747796996866058350575367941521899154143276372984920912760571907380679311970119386085887668130640549709351545670981883620643402283845100610335270832751438571997581375740895312153542490712761957999602670285733244430630434046161992592629091774648681950458858490236109676463840912390925474683371793309343065274784512563575847225080098735815868761658333946688593286827536822147371251559828096373706557948034890255805987207997909549865934166346087724546480544672297589923876101717023351326871897897193358796672970510911539336198131202869498083764624944888176898536672226066192747897246714832052653980367371041811839788492101409666437711991078232198862725285673113329036665641579381692048178708639155886439189983530393527297561983074293789889296516576312746392576280083362072015882621050040076966231097699477034023597519183803294244603017012371995616738953581910754866309411185273976879928596318591094059357403712075726274308456971673889358535357379682545654490358386091792566279192551470254899656162200853350959925012025421780177813810605614690607731878733754760686835547419419639004988046997343851646573435053228455669918396640847913421389319874413073344184860881207162666546439179011074060483060291294733617371639800143240848204348468835601401675227694879040530218084229854331124527232560345912164566589302577209942575126510760041521123858127037476934704064843076654992983437050798234705708785473050696039890492078316894331943159932021917776921182166168677325975031183833827672105265456637862582341700847247405221692174406126635257879616331291196038990791034582021554772393402292500978183288405632796347026179992565089585563275113226547950112282751169263422111933347467475497355478832552146387369513561919459076377398759406272887224861816899477244295864432925372566218789411995726101634197064216651403980087833756410045232409224831226858060339370682931212663914598672650313345511053752176030791046112659930803120922080049046735332721008988413860113943810533655062248395923700963687562229479181344843137876231138095521737758018368772888881419653366238983573106084874092791006639538596140432262177513109094320730123104616980687558630169508115610816011401421504159762868432848615584012919285588027171480399799467866569576278116984440340864613404455753485446144535831932418719423586299120811329865025167580897741496210481480274589097166295461858080590490701242758473229451754540880092624802491788699850012976046775980754231029599973988542147105901705740032005903055413887150363512803545567544396776140008918760163597038888024286127456326199738855960359859627085743203838340487584453593591650828145903079720508221305972685292429170713362098414854957425174474555201343496994001921444208349952453392949565380817563613700415437530824708999914795262874882636438732347190177249074976226274530523384192894667031452673908950007047188175242105511104299575627125225394044039265368627489247141975007452379667338120105271919427089192547445885275944932418789752015062958374412907328875925022100506215881020500944389887345151970781722859113282380058836017032946513357441096180223326728203609326845511284170264365998364539134219703737003951623663388261722189754140997425679198299409209908160650942872285404665990246624516306991394404351032865136924115743191619741578942224517581773806577036515942649583507526564449802660461752001742679785892236364275033886588786041231285583664023847375856613684240952265086627486804758739097464087836768487385769110189550783185121753545929975382630438394998409583460749351639229086871590436893097667440601294321401989115486500561856612913280315043149857578913935194514214512677222942822834981913001754666326596005739854568527347270970797231883861218533739398283015084963870517654299879652528237746050538985783107716328956819380979298534010051604242313152566594235021289907226869097355754273249288272090218403460130811841141971880516828120573011445349968418354130508034140388450936542026432420551492885585096847879488869219583552350228163805131584308535158556776966528653948637001877675159465271120750188320470117231130303877190763580731394388808992498796325348405632212639266963291716106789048624768525312497815827665322172584534281059976864475225660925125251290596133228817831753164492412974473427435467034774385012435724881943699301327729385473725066671080658271118505955281636260369817341596700924346675775215053006371052634437097029746433968102982519878653120417391631006730392749391474200959778960469762763736415131322139636165010097401189699743268089074810889950414883253665340893679697498846570146584867817300911098619338735528277789227896149363474668179048612972358279025609041696034161016981774017186061863824282270714813299112460069538123785520989342228891622902810679172000511881364603461472158316214453445313946946179427752192974855825243244638499276430513047509922292459589553562752979195222703011596596355363376370595666802073682333873894303554494283924884984364227501047376800877203999340767987918546064035443412759068892425774025705218431589424534732094733231947021819872920753537371859367138505539975923219059992925031941461949758354143394215161358627839827980842682545238429744571451073300589668912519947216322923737302957122964068689148130287075838736122782748011579588761509214526373265790147358200338879583961168765101530194396311198318187478283492105015585875767673863192612805124391791387592398830685803586926982688814929195446155331567168221500810654475058389051901124156826285952402889943503728929056948105589721802377062224805440531675934437916714964418175035902239987391209930289384422992505829420894075713872450967718685537346688976050327729094370167441676243811414758808033208140192136572224822895534075960419532045567809857093211099281696672336955214866776211378722951308847205445151429314454678167545459001337000894270686435829799531698092633124923990949844900763538399852837538788014812119574095072172985857234795236825840679275692528039567429325091854649415604999461823504817711676095239931037308828864947612896269268751973118720982499284044956343230814092040861038997037004574776672032846984918683153527213367965773673112094249999697036676143112571942554254950323418872394426099496236945878871434444024698121811934166551562510977079267757388302116829203348391661343233038370556290750694513663873460060414242355763583061329291277318311608172818419939286665195437357709502819467559399875379182660049746135565116562281911122451364391635645757673722851911899939457144709958726445088811900585510202383118867879460884402470556857749979907798961612940950874973875397044312696646271508136544807943627932529364314102112292170376873065456783462289762319685163430503372484972514291120895974890232608017220339929692557884228579296373007080735243880489868527420728266718893925324154392498063107804840283082149131918933178399158812333740448381878994694093206385644223084386834391115076964297411880648708521300437129512313375257906210575194706302441432794666580465524652654949106425770803989604687064746162643386302287047499269133086786670986108323779544803965486435271923874315034015392408030513750294224050985519203425901100781706658876341771821837607015302347230680796078871036979904464481494534516633182622097374476306524726623643589570496282639749889805843399242046920712318586744060561547956879789016337833004915421164033228920862010497856903715619270866170727562570771131001278039180070233830266882890383079291713778910942750723913619031447849864780968710794108603558481113536520224872291444803527848621345867733456489078833792696848080517476481598737080220857052759292288019624742495258252726651380601858346679778555752006240294926381101243794491413669052469621693898992442909775164161604906870279721625462801446450972415952806190023214931915156531229534334735226013589430183809292386816787594538853307634086040671991643797472521831272699067490727934794900967117478215426002222632122382186860421980687900174611095661856616739083234174720061377275305759279673443329109182099763664513018550035819365693082089569839991154862092419101863826479964970545623097144226051040101245021369860808165839689404503612847665228544172076859666014269696301970644493000924088122156949769234727905945677176176297116779660920744922975118761274358709689950367111533165972283536456578661515644815656296226389965264940613662270975077636323165828999162122043040332753808992040327310394339723953023999335834948845178244358062915567744776259990474014806045162170586906673733059963730612081947180843130374359445988374058062536185127983252179193619356636463520050864075531033253276813896797859891246344916060181017199266299221484301105853860931388058763316765232418161505829624578499258749440993625511530751694975267339859538184257867419970158754783782668931798325960017787989008868158192930485890795613831461329129819919343520668358910946323999086797809595689669604414357110925855132766371404872079445177765357173156659704883265614654030331934317670255868246151537070615994209089263128785840201991287041592907212736672076068689650229580543533970035654216114519871922341323226308365218680150508153327831732159627886285934473675744994907282444694218251833428467101411645651287981403019280887310088495327351414659537156660827504123361881333374898946334864830889994905044315326398607223829173968164544113551345307183920217287996161813191844751406982626318826365259614024432691024001638393709775722522719183866586000516489792978195947945640223257459864351737412925425267662952122342494811911514323826958872295036042779692214443298143853879991159996432935158346279756804267504539036852713612381164453968693001460453268333489401052867946536038910818078534736704453717663243038354778192177976479914588429259987951329215466363745908159510882783242948916437206604649471560667252891714714576128000522168847161331317525148058613230367753561373064718382166196237507328634307507398459873754255492930825339036924538679513450135655669220425031669577650513574700784842902556891571914242917427284409530668016435763903301278038256273558553281320294179041868296276171817607920612003473685556713376099293445780415717642727482839749283429667517691765712725975083885091957937621772399980826904865412545396649857806425484911147417697870972753612529597951364440068790362153651332345607875408526762549327515179999492870463133233109902088800180182933048321146233947710688246767832558760375158579885971374148366215561897010026003092806774069901513120783362951797888776396066626539732516690045514111339977503348427547234070210669623073718428648276162949391163067981444103172561797307245473471755125172719268849684094259971752166374844366248002267286500784727401985022098466809954764052976315093885461651324773659129028972161883682488513862072206474470116819978444783322197955725355621400083735254987723844224815996966117193733785561982908989010017756392836832175120972313676248851961737095169627489166954527584588322991145127773903224485215257011751486720302551634409990598187179662191640227944135262051090842766647514250265098194759177886181532716959546003554679476743859846391516224205949176400337640938758157157782564781652221510456204983857951432500766504738449078293719546720939978139174812273112277933179760951236996553705432132484821890844870464947251114251681141665590644074154427128086787081631723892674651063955457016001917494956276870782381285027041912965760330437849791245017342165831469705266539104876932719549964006437869655811604585549146381655317872727374607862576606995930338699869659911832919879114989886825197290997698460477467151226509631672485242414886243313687490987042074027325399081047271719443797376368939100246489656923467751752020109134716190122246579568165298461181606423560007007213425074460425418749554778267065265559597579011352051290457391223169260190018216139473712477372827317733861355372762676677819363992779924860393222457490519666600240309195736244063147956210902637711742654768456863295305323852256180626296100935634544315640156482846460525556381829759978549108703436391023743225154571003582943739838834110799848832238652740647665059509674831581101499740533278803434164524217613503616599780026738164915947956237928730866220239861590239331516062361735414798307487060662879822604154770368808404925658986858613522898319459975879729302851321667512143981170493166065774223534355186921695562247846210267681952978042614578273236596530417741541778148045326853090013203542276031670010500806695068602571214709401854639846815471939130708398009124598589791721678365661887659062941883952898346806554567899830265965620222007034993037038188333529495810222204046341714191814940004497730318137789257984890991420230928738409319104334768302885981066966294611160105851091103725758186236459256502406781422478599116701991139738817339007446272872573692769354112691150367465177875842391603762957570472259185788912196257783034842699886356778466839806575351062771841540807157617839613378708161234069486942642718524490469272343844920452629339717527810261134006924014697047229003620063323597967107807958506947661778314890402856113423709447445920862383430338975260623834899600145838089554864681151059618685949053252681934436472955861229462068912557275665439811378031385798511938385504735638910172211771997090061219897427553019344969967366435336320529036878070580415013502843299537162484870396942569799735575066024321943269789505275192657791850476054837147891043459546454163680266782867425776973659249838999670436871379876471917467449646843952440543631816331256674681801459572649279006090050215949572958057647915706133934211206174664595429607619160049604918499427808942329614225426416141555137765764233133970405013586482824727788782689145259600741434896548344109637137123032859980265101370476017533002213842403203870590765480265809725096417938544454008328763911891413721567358474117477318839503363925337548516040652736002045041507487989471901982642886164368679230099139294474032749340857924791664835450171240738627999430409933891481839870620684997162047774864684433343928274019441771013347427121981744314516916728189537690719424267178192760539692423585445007045146953660022061583994700295837780354431205751247732690449978071593950570144074035286121927987556800197186906740839257119765887931457728832706625107491732926839093636183659111809465997790306637163878326358982428353321571173464593895226165941688094223439937939730276757437402887109354340253876717800770071600752949542951351323092447380031685482389770826477377858954664062928020832823973804085632774483514865232749698897367920917722717358308510628031056404054849974468628409546995343372330976897651322054392859152864815704069184413906378932420929187421636379852837686138369206423830819896744350745278330347173320839854244447507213003153190275035127545486525628863669521051689085537450675640504441434932481466817780856170115805068262280795180161322975207363882266738642215354713516865067573142502885493499061555723913726682724736744641864748999474283593044244209705440737022326037396319712203933372771722003232913517452603252537311140167974965542698416311276383841605670531370769314250683010375751401570702816289160196324813669331060122251694272813339959662319393538225923617927490262328217077017436966950548656875647315594991463705650934267037672739228991794163256077486042653731800862838963173513829802636442344186493524054822624288098010029105122706896704606582364165233279405266691825673726585066921282002771561168010714746820735930645216200973952154358632616942993076832279449193454588280363827313263658570328464571793326561323988772740614018962709160062689594280827714304997766693355088708952668639141108989983120542149016841401890270624987063202195192981939185994641690206069025054863289069251150538952713082004204372505012445980503337205694323551392395383021493535749775267944831700181944956368032851974308712745566603523567532677157225203838277551179698463236349381833495238281792319506789905416193772539922986468815584311234795445120756697063637609590850425898598991284382742178823455399023892326244540765443346165160026077857483805702253486691122396630316538048165163272499510603945639404924021515995855982753072617862420199733479754556442783614930750690442295789163421792440730765665829344543845752922219292041738924771343325365153719419674782696879687750040040276954966814398034849592846361937500508658329073791186213770697223585987950020232189771703611078314828677266387696940150092126601496165757232525529018326374087886652448853903535177304067636230076521777588679372094641827190424808413510172318172386761385920432216803550640729627946093261365152459126773320433178638270306589825497279860873342902464223499875075182784030078384606222102545775936415417630467478807860436075585313877985865741944636063814634192643670570723997266801580817594876602754457643853344700530462891689981992667821855028686779312316247661284106787170355250892834449077485253938663540586743423432037728545272021483264926657269567862696637347662637541877674713155448480706105251016791603421004708219244334480271682216480936365337024323752145611717696157308558671237603518805348734036649636904975026708259115782856924424425802606411396421768383910074095262464510051396873948331336818436959195954754231179436844719133534887447110702995960223490336483421422708715913639582703392886984038329856526927384686584703329894412810786328740675928649981285174677890662299636094074677473465229890122988247125243507412457922710530165497162032485965753772375187161949229849629796742352421252039764721117189437319908500402975340448102155290345811661031642968965490932086488002501918368586202849293600765695178877983942938992753702918011974555193237203527711348068301277689901867961070650839144809850414748677276143967403176506833568006433471632192224999225050169282137636473579179854550705569702368715901134920729019614240948638871635400223627041601505749658439102982350506967539823126361162719731748194999172913671795826665375148337813362134600446723772260754790658718766192390695898099669886749576291978735711422105853666134903700699086699605956339359636650340902756610745387913415007485479454222070664639443959163992024660555773041231421673896786525854690909159213974973499103789846628349680580219632177020830260043544235257720868995302924657809362987554407991808507272267487022410084618370478866548218162775643169961092778785782273915023181668644905122111029264279285354337899354116920556035051988300872910087076191752608989778574929199507662642242080257412344650532748693517395490081275654825333838241163235919881845992064900939569099897882201762776433831309389816309304212415628301443024880827297843978201350724287307577522831999453401544594288953675301436014047812980642382619364007226710094552298878063550197320731108161774421839392971847496698684972261953023487200126671568143790643632483817957463449849580834181650874936677098551706554855755612385460892430936274791312113363396364267193659427790738478476612337799218278521620857745554039965324265075860218383397459240306671686947960586243069515911589916086993256887636339019925488286146402520005258358916729740778433589319536750186852235482885940240967782424870856627015205825329812252332944040782400722979891457135002388975966130953609957234755429624733781211967955932117149255317414547147106813937382609410087116559590487526226757475291555355699007302781043209699791011126656884770739667060843081922698049966725772836916977747151551457404147655279944915458508075670682220766382040614617608083182776219027991670989491826757941028863778687035704105845967905348999893013851502423607527874371928143824019658717515344170069939651289573148369460457441935021846773662904457381865034010498346053711272505724437086957583297830974611799445623629420731139621757191295648982135255704329137329855735088846425960783368690254496825518293944230321857185840835834880801016242059016331408915440554323255503714560502466897870709474568771097969670854240591579591113817255872477836452548285229585169720787279142528585959742250729059796937435881889364517611948727450774503191990027078945644803186453640614443325354243769334671909835914339017709602465410729190803735809852039859178602544626233409582800907477840648526581651622147664173807405777414676772014506740266725302989778197490797747743603152252238666952126126244230405688673479956959852970135453023363350318474347672729877022527731317877517385448811421641262463825982509325851818974634854206051729975317118294025495275742361350127408484078811248159898775133516824769766781620236967686334956981125630151077627012289120577735734269596693802454749776092538797033741005694927052442946462871213824501844494909796318848164259493292476167345198028901577792856005131819686713116517996242550131213244719814794668335898793090297660374029595059225874431325258732983803881906817289635865918094987787770206610316809877154412974616360067017504260783127244604794015407827765471830217972153444156063460385951557955856746088988489918755367703763223111392681120355188462185035944741141357240927617243046481850168989343280969858218134043144643667637634630464861702746707705831961709454352062159054977552616914994877562409848649142190154521936500763691103420159484735042034873754417368203998586331277931104607351333596424285458735789181586387648534894528009331482756704552894541329535402920898617902568982872597464169978928264758334876201037656619569623396374595733092525813816431806548451687915674834147098527015456173803336033947293141995414736347456449472173932324549455204101875429628386130939621572657492170199402905920762374703027012737958329359285145556106120109711755065636206469858589339506729349236552852750871649840202976087630878018725910807104747586895987398232558835174860123739020666717696475857047374392943879794193111054769682884203052744809148820824595189651869511907963023597230229826646751797134117337962235140902179513044396996853165233056793066871211719906717990971326770882911304417319322345966977249426712970179424273586073489351868057577737721870513367602095651211276630168478742656694907223751762315783098742332123863178311176017095209738415702274938939171936825513880793385693540677781329631204532220180366739639751828012142361870230117554695250746958050556048438510726061397716032206771085712928889805285144132838528051468275506486219729480080371154143349832705698335140702020609208772271765768535223409271044072993666137007106950173650866982715168521243622543067233284964850275150405332335268562103139745290034486886759994217528709496948110478970175615974097317474520929001459267290629332473065793486074107488135960944121992811588886265501961523330455810319437835025871027261489422528011986419139990593621247020262646668600637683803332222772519921656185764966961911006064952151306580072754860839511618621855233925533349970614795716009551320309783642731820672395082229441292545658807006116463199025477685560367374245532925689878704708686564200041135415112967905272491700182202817536758987103502190572493239703846155719953357380236213490099530347543994540078649426458608847711833651071947745801945298909922437825801573413553227754150873681412275916839145685994289925444859669357901360512524855136068821135591779596394480452648288658141933687019649266019405440008461020879824921228262496418911724687728335735442025780671310388981878533368512521464413289922106219462990970376258376641007489729755461960520844076630431933376609044346857431583537759669689953554912070158139414412329760558328151631224962250743458377614780812263721970296926421201911670416064844098811734072290946794122555505200188550805796726216493299309959494819951141001867969223623711609602623818245786826038625266684780049262752243646565696511479317814665053402567415782694492099877164994772669508402901830261901260424974457621281358853697717844652279221758612074128629185455200392501714590708375023776298870390993098891631541151147480221759610576558684081021054723784775479531183425983973976516310385938709355655967953941290622311407405502166083560370647146221734231756468586540753215235130842201763075495732477232127488772945214202071928754213477319656271118131596180679536166676733154757635549132583710350142987333328118336780310714770412705880169590239181382890663919846478714790085144449010307949404409823405785084860036201783501905138206082081084158524761016841323330247729392324941647039060270509238562761485819419777110231168813211537368746603834636457663157933928823687767591970580025082203673545385526329781836651218528251676930385256928557082044433633076722124545494959372224751148457181040594467585074327074469240630524255637521209256340014099832550459326487618385848556423898843140091608276523831075719648838106738649333429696244834044899743663435493812304400963364891543398500294675169139654341151277730072878008865875531664370981398449873215390573063442852031817285107444424322703057560212420656410250975182699943882299018761483269920053474184568273966650715329431642005061533549870402740071780821571243947199062611403178418518991480515325443100849103078388887193138394751087537625401432456117698223161939337689903669905788341782171502864814994665673042897924357595875529081673980066622485563878618243518968241437070659827440788644751489567152071935866354352278446113607697706912620394484346087160416838584069064842566610293061112840688332780452949527090174145148519345697184441719386084774281715168451700792693813077079375938929816509584088237548792473697938648742735419611465358635846824357548940340602858135924236499138178653743017251944354619127495910204126081762254517617642474691077689547002280058708198775740440447930582405128305648273216583347572255980618472527568299671633216523438904229998791626119743470515011082526198919519207520244581037971964327592388114577786381510164653839873664192676870741158301049008475974579362859052888936289457774681358232827637472967968818288244290203248803279228715936916635471327597084667344303403517698479915460873021808460740683146871182613971232282753277968881174587330671867591545144920243936956254360228394434161159317583633788788359795328727526284620538504894202261833851230471891228640781070674449108381387610030596095475887383908645553615832441792595072660733830028853330083512731121574773457948020104987224466018827242374363577475630572070424686695069981076114874543458749528761725272291963464758501102279219650640696484442437071589873661726804599449479210601528903764254005407108448240877430007420475601100216071984296374568687203966837959867686102790770618204212771285235199796634700984086217091976911177279333855453548713481193597707553748658918858223763467078448646575881052691908634333610957514884766578047301829753836310629851526207315153837477670025772450303936547288424617377370304560394646528779275108988856256387604810642299031127503124756771525366873996148007271443941364560535060133594590431713991346925402844294983056954280875301649001756376068115928527933588468927736257081168935503050006735754225835068498571692172255515621298000991197196614566091022008490995949016435512836464914732868916532058035031351158086254705843551975967070501609829785757096664189656321529361478960281988088936089644789446349985614161292541398944977802429760396089761852848074904642132843241272574485751075932691551238823765958034259163824483365980030082676180961695158415403472107036628568909571872456618169316921856626881183919520987789593944837399743835486398284666175635170700275053990724535860724539919131258425835708194043359264215156176824049035244350112207525458839219446121294775930999026536273371476576142978450853947960625663472932897406927225879708886987564961919722783466884493792990906094732462448160564806128672297093990998185674433519203829548768799874921362446777373965796185186995244722339399892558037232843848010228025573392649945400795485383365172821162554117792240874696893218992890288503175266380222016847025961942957975336869224597845772374459651451587739430951383184512005445912561956244432430614071687589211607904782649911579653324317070700471335984992231667934852299884733783328208049623202677019198453958665420672748167206516307772724658733660377882668661117391035300289509509421435207524822595273268599409725828028271154002122103902508703172434966614131684714008724724742587362529753485720583081695378272775215400864928980808690776799001988999642443191030636097827369157109368171613026634057744709933118983407746210633687143146111894884751742967567610056489928005194019744735577565100376405959203407158452002021333538794804159838929898597792356184466132687731965259910945680812985671169755038922446416411387556359621759143444262171458460353747018904746756994469968931387920819215341264402843185280982753285703901772804136436025686909192123214514937425741860823061270061227958110995468022358980286551310200081930411391100977764643653054206941545224887002351396996500608900213354624159717994481986371057422856030668593411871280169068028010937429943764079500766568905361800613062758557235027535261673571759220688278486732322295885527540507773051003785213726147756002727534023238169848190688197286322023750728569670822800530863414922547684647413207735730640026339973772925123967066273955045537383569130279385585650026965951107307975043170866308308437863238120355959197374900077810588565693157618758622720165639651514521579360005709000451867644774647961250773386521086704198934025940322609708426041749005698551006176715868839987039013922546048027604522105489972578533666993568487449047778839468655624876591597685754126066957892997857639594283775597681154094297473115430081258994380443521798166859636360910045577215282655041337341650890423244721968366978561270645133782597268628225088205507711696361330694496567879297121105356856072389584577650428148010690023883441203973705224280518370813616949405614065319791148368722241809592521287439691110097987025337981513633934918883152923433838901523979523700183530913908112268605227268969030511412096909822337434647965794592631116150510549053635201755654176942014700294326884185152782244609793546225266126697985347261400381896710659179569278147378252305324682519691693493943281245896985047839553515290597818873778782877325431299270098674856373437790910013703837701449255515343997697865645078849501374786849277472331376141471109632197793008883512737481291687434802288318894105074669103106176909631013988954966300060628782757179802221016170264481750712501200441972187071781008019641732703943368035797164805293767801992728849030378143257263309220185026587983244945245227609735246655581008968826572240793143947418662944636080278178379551671041720430731303648714677261654365716374815805297651164405509921572512593421060452185971611040660923769103202781133583232894421012934019649502205697093431062197437922995554812175951903124872233218008732215436015196168178993811228573054394008217641247046223815626465491920914259523069101028264578561267121891415432770914156032940330259704444927122921248412100915460039892359720030526189587198488653683479068934785244784496156125328904618670951923858267156435958855039897953017552427811393661500376821715957294272378790882532430895426578169494438983665400869735161947679845106693389620507944517118216727188022965493421367488885873169592880786236139650458388627664014734287961517501592088699320099779184944697337226237329136184063088701259487535671074683566352884272201855304736940774387574675950655707152084355194167496540539980059647881859200348435258488626148450885083488827100800634803909997286104940314530446050911564177902121492713684055406335003113316171349451560964167119425579911517296635723770223677370492827229761823614278906952526929041405741448066466434902703913378614646835566493954794040086602985651194027814456068845896499883647633783787080090632187438837775682689298890181644801332851462309313073949095219631975703850506714566028293213367061682412293380348433988291591761552421716209035955576740509762540330175504217462703143704961119016166416686239863888687252182680479896974465146230172424054819403213692371540494456152124526129144400896534334729354218700372376595700013956513262512362344122549654005461147058460629817006583305206870005279331467594962339213812543972423132513167829817100651577225949293743700003197121784396057197503562606825605256460969690180759013096936120732745953431343211641980348157475228505560868353806889208189759858953865036101555607766295675229978171873506920301031025852423023146429947547305446716702076131560184760997644038700422924252141982636361718728827665029805220863810381534719967519290233293572881353606098380853679236625936835994880241687458164391518065955983858495120159562452912903386505215781217222920913787947937921391798422499821117751117782620926356727920841810310835981679664960252897602225951519423061521451965216089890312113303358285047977653453649143749045730371419925919227888981849269614648640820410762025927264179431882078988989792788591853395460774148191365254982626395389505505377837120147510214492918425567833010790143585944110751265667764163178832714112313819858694205197480480633776403288176982207826908332939204453051059289293850837205433075143120871764321264415807279839028388024450280270735257925551355586270336876992816471713688288176943141545848010744974438259319595120768833052571144488704749234428615858267441667926443133519706187923299892407894523589306853781542784737761018787830390460711664655066991462801390051122872382285671180105278795105170299613733709448172136408296356423699541871417321806093954651349158189412788928649260448740947366459740135887127650855474753084651781465425489829208923247911041349390801025202672622195411387062099915712624761048678696255553363768287450867483042686221689850462713604382367358257862056076123883509527560328803061609594432731289792303921834134930683642307578636284444179154335566708531659530304398706525780110508418083803982966058068647233325114429925718138657000473530775910873380056066829526797275568836392341676955015110474292087297254194206481180609286499312844791850944993920412798492326027448618974538550587002080005303930062363978553148709722284965208547518826079133976078146912395168270794372092639976910994199209938908470640779849760113320565028050193198817606496173255433782573843618765261371404766943018618274258268290136614085094121952459775108601881855985232377725969577796808705564849999037763154507432870518810941135566556493396034520008591883926013600774768129827266265400474453559030198648564610201562820733533951127867416666790989551031383447418304106605692231314706046148423293308670421768322259347473349479391592980580915839735585357805795861172372831018114909607281570303229812275617893914769507985347290531725398924140954737076169654138494661103858130824424220576363565519405271345798717113837298323165188409577864007617867780240433312064567084084952416423663805003032067393003976581890508352802675635388988590908748188292087689987596867697818923859810774538584988639886372185081828353163635272569441579285988947503841998326195232236453553763273734804401977217779839440182782704025377948832615782459132242983346593603900770877534348705745247927640429535991234606936958772830558676529351622268786831517021117909720416900678878141167055382539754938840613736047649726203145372792076171698287950400646693997599636685203958066619942523114219700510091522866117441232821013856400770100937359944310308499009697457417604149933564632097454442244703923640774263001666711213724822687471146213826475444025565311542371377136834869135553873159052007191157385054944168701078401619886575784468819709136773794649126226545747235455383655775769459731923582368842449462245011305711724526936772323684615205490475738196020526075454539661535405027933141816933858626777889721881878672022842372766470986802578504550617003802119555302072770056813187852368707833074800073970699418531294407517617575700101487988802191614498196017698230963408042760999071896709463607381135573523027370579300844221968114859378569613693272074191671231160734883748801906053875822602561468331056414569462259309760363469431157421706343891354823036197702453051454849115694894995063539965167922453871930961753195577996667607128167307207469004641993561327071883533323258646122849455602018786845419283031715557775538574732060940856408540853194280316739007075592209767143058849548073407244057206817566155576642226849044888812299537083268961085245855896661078985696691334516672617708229380351224102059015072554268154038989144406192887517063894274106995332353070392597050854137779296880627835856740378845219382495915434160096883021972558124251351201634641881357604175377030938036112982516418389537605569150966787026202175004440002823659117563735691072226469097091897421731648739189206903835483080919957119546063153017577831121469677051374760955774631275793489248144328259951781502048939451440116706996079126708621640931518326140671771819927670209136920275609142687452100752060378113345081642042369795085663068460184573321386609658090651530814068058327999755902011649338779539760986433293721958309758286622994055828822608509486932617748019135553570423863622285487087869102072813415873195453460705961952359906651275557993401483352151917044531308767162655340048205731132276724214668686580572864644796031086578839172884616164592177869978091425690090819953707735430382903748614569984459982668240602188436987038244244349615266759178976430475697900221867424157399140705967827131977662374195200408544704889640557295982294748457699889876869760413604736539417935818525554622658672406527078709018241368630935516439111764859536122513137727786169199665840824705698710021897509490491367897747249055869130866089006069365972754621035804255435457846146716845366823200683604986096970779180905251886463632140849782761935167592951998030416664983888021020403559440698401270257273668281441353172870853759492677645722249273797274088480450226778143614956287749274950728100595451357119355996832595205822562766609637865329923207492494699343198935209289204105149332865540658398946053230865271965001453938346076477259076992470656277841150420577305456314264205158436469446580038994083327369068609777537242164897055117343241334054186885023777961021903077800696736654188360590669634769648975173972981644368471561556542548764900406007469810384516988627120044002696968509742604664221241599697633941968584123681726987002845592339641585289799378909296068484441287984949611444078935652990517073657958682102528785939752576508436832883253628403668091726361327700439577068213521974776424741004897854936391730795859559354021190765253615927615971848741852934755059933791020065788031662286721839114060577721930889639092452856027458131365490194920687531712651495263765392470129851809116525805577199224052035065446308000447396881660544194240480258471920661742297373811264667718355608784750917685744980603293802505140625164196682900026151665698619160004236872365950043555678032565679148127121148990722899783452486839590393282012748567092238918042410011049271809750924679331973020574042952887812873033776281757794539478610550978091418778801485025084433780925931637974277455561934685690265928617130369776023470162084910274125730345185217652415999489105152762262434825936187201041634230451539917714361840687250496713686151313401493875000477058522176427980595760247744223471220846986025561777237710580138377207752020268897630294415276327460188850474517076517412163098533983558768295278213565275139777607513455457924765062847148260498368867141306345363521335908091470915430789408618465700188321544091445949898728737335859207342865880644443939292894436484309378611282664666859780025567931560562894870268603555423565462368409858285539499241769047725615590142532404607439621670480238554015170976117369368025274328305602203619632383271337746573847012418185158959917242799730262570491455076164385611706539161149515097883873334002338180483274946731284520012728768764213606581673488880351551893480127309210485368191907125604554578539244056829999486599247811137775686609997291242541808465945817250662806972475981779374808313266759146858427500427221108283102152101677822096659269202394656106502659296567020773970568498584401429218867472888882650339952400890713520310757029236135213823946992337797129231683469272595933727523973322465305587911497226777956988828194746099928021789236590131345546174315666568505159971033975543032953518370552849761545885678695095007725037286757408661013667208103689837763034190463796795722410601703899368686521026583480327413738840718476224300044371467762771625607847913984649091901422849570679558999676268305085416375995448467553323315511549156095828871824324379058082060830994383793544649164701829809658996017502079890865856528523459455079960427872218982632644330834970167846892326527456473786350628725184595609407719800985396670386073557556264555608238758490460023804705744251188301208882798959699830955663210283512105884492369596699705579310182772512211097817662963285544593106087010292985530963013923709144251734791619730393426498284617988523066526889797921983391107639334033360086374742030868427832119672871860406170065967916255679016275693315865039994462421273176190636485816069902591951363850509654871219072952044058757588480842426802861229720086246949699570731657135727291639267980014279418804947864516166908940584410163934604300313269842456166150261825923786461482833680876225460745421620507413490318913417610500871604725033801058147868493397632543299297927921038255686057138911210009937940615566838242197151097010050545609050109580466902910024478892598748270936127687378745513617114634440230401184566291418173177522053520566460598155290661763453747488462038600710569094815711771459123130930048947149244132129022603170271330629645719239584166636053456025277506208867735813568036020379874167974051975242216401569515847261807530584074881879233832376341294133336951017039058747866923426126445981881405574010325940073800637024424222293017770679956736351446248941526867065662474399943184560229738942558897502297657246610523590018272207311114082070448551084064357560806953813329207924887433288253901976036476604906833499893761489766059128406267394664260542312228406071857249544375023753500545457211951228912979908980923986275407109324256699517060211762809850175309025506144272402565233524314830936874116235179682439771691483716593509359750897567355431211603890398083513071562164974411412642453375162747922421895560952310005503364000376014308993303174173730292560100930930506525604792271168769028249864309373254121777840480527354626886069324561150395237910343805664118929162209975939989917388549895425761530454712353745357442480852455441283174201812711984367881235156619374029532237257294739809027209988565208506849820132234160853418766064523397880530046717602056239199018542862755296735502158214967441942010643168532040438246998274512689762025272503024810080168708109079907320250230841173373023095979401056530541899915363354635781569869831797327585438665624676008917316900181585752091931528197138872249509003334384912208390067299429143685220063561469631192688187358443848932924313127848328473052059316463408779035720969167173738853243747324474201387067000047573850478802939264475602743731229680355154770295496948143122082204124857254044189716223932212914071600297117808248222511891483291122767859436385718387034850539870022723432268942234388396873737643576935266552773457644871500710030807471062180459195549964391647098387685751235818268567991266657236317296465813742161756212754073042061390057547459619438632330824564175539385173855604607451230699943714878412384158420855336822769909706161102253864371615463533062468881981700479287492969817551101941945574308884923915381812392445408842705342496727582272133508373545940199996308779806915082388760442314792911720498090045116253472326734200366210787466660462822500864146246102451610737026448061277804759214348147440923408121512027454237443025231382232660311109810286068459837591468307814652835416120028446376025646947432985010519049279576315168853732037699137883408583553743981530624135760813259233665875219165840757306890539937563783075599444060147535853358781261089109117839219373489756977819016482187404395464766864537604704856510338819789846299818892904659177384753270821978386285050477680260836040983360688193530465686290956657751303324026032045686158640643537253819351442546646577224603536712734206835617872394372400607661265265555387102523636380365909948751368109047260557898771723263288022505516136432927538846945663128482853344129311955869023127846849179778767527979736615403785618670663166705008738571448739644957006283859736609409716613142660764357814794715885720346329254006773380724602846269947538873348357781713300488063358944745166146489198257693883793946637399330700694668162355339706630525926972396252602189552896497993915276266285836582099534076927189552157803581924858662115865121122166938512043543283010388709733656657762409566338256380793324369378842358095047341826121241479164322800208236773085877794418852829601822590959003012753568307871334376030873624156772464159575449415363502808285572468426056715439058196238324498065585567486901570958660394358666181949204623474027667462964872712447477615228252759327425764778019860348658497886103305334153421102173486426766133954663903917957764013841937065741593934469452237398400956180371332615036241595274966365037222629987704569523487893483017962074401998370542162011028496993771071990538158360444403665680875240308026529454135720032613626230054071517119673676603428099300542486230425777133355276028737371188232127483334917968051266887635903069348787402560107666301880060176249189270345035843163169177975046264882206043730131415775395351697867618294459908510574605642121244478179880778980513531323637304379274210188718177907791751327231054888763187726283877762946005214647175438263698230698911836949048449554251460242604865827682611474293939397651952909467464988094915894094833743342690012930267514524700089374725476388184270651644845452556063634598318781487996593661073290225041808336179719893215632659703428594096340679806254023078888492655915651922082381556138258297656498500553585801501686870215098120295513701138484181135670712877994104645421360702293559854253638467208664485707774960443088772042116319779182367552444333320244778846661175491623216690519035990473855981776635714263614895509921087997262409191107806913571093176858471613681165040892658954303274611591618734533591220228251411041032346895326314176775187208713235653798860649919969959184235767813312123341460470279765343868273948480793504806278645859735128299120069706196545259097562061627713862283790131657950241746328709363890694559063837484259334304780624774435086797410736019402055236277122106451023374222695891929439461236059009566551287990604504064113924718352811842200362222016239640430711461518658757243681610014783386801695359503904626790855716704243018742293949002050265607334774895891223513421595417334722152911507045564212369418892277965600397773088166764721839723058572199257034942953150546088439841730755220036441884212255803570228743742600485395681333382667646462073500460692294944890939318721675327685240571806474818536817636820034578870635157580700809806784993988302234207800725117071810145752230213422325279138272559913050743221448210546850984227829360760816378407613223468168483134927459975792655677946394128477921718767653327448698224567153455824085529806919022385462334952738513982090747508885899622072436409406991297573937316200747176002928314097043273918919434472423884924044037890645764699667457130004935564839498691415770360111718471404241362917021430664215997250889211037353339473980936702979841630944369869197894220819216771547693455732190215808045191846016168314654538015360032573457878514739252981477556334887504330809707389884310511778111204147928254781629451182422290963438699474765536948292907463433177803969768973448440222727068487689794135251184241860987894715839627176848983631793284927907484238196237979051839680611129159150245980985112715410850325127151040232759980222955806906280879812860549677657505883444079665026190846158629361791687744298148772343831364373819158457777381651467517760162529447262366493985953065000330867181709383941870024655727731502830148603017408304759883780860556085632688297004623294612175255953501336096745671068117779874273785687546387575477589939448279101058861605407162003426577430848465304485562028485000374592167029915173822259894420980920168035380972518618874164454783336924190659927300072805096765262451353742284951182447594657439471509565061612177848383130319743167225619088314351524439793999748077752982636383886724739974395438062951251053353681605976383292782684329611490202794460094660616897695250098297166680508606782929963820475857676305299648293604953855262919000239358246777751379224551824702277664242937103915648141868058780627111917235994481305717707586350241106176422620574421235739168424411402608644685620839732585991883299476802516428677467837196920853020966501694299237311889740854339208568461676205021999786574104112194574614983966815837234319360084863079560730518363187903835452254753247936129603908636261130598367964330817403135475281377883898459507121559487224527415398613627899608388929180225191879255101077396633493784509961440537682280178331791931782067512387929487687823419830128958057090154212768457661622695030736641303894716701450890628147697042940073636692039651488184694299507555576126955753991275048232008579506299040221485484508612309521110956901281327318494344036454588752065079229640866388912763549827142066489538749606863256595725903472824113756240706307324611021436190074238711252017144433254746133824658256171076319446555522873483719200344490033963888375738753291765130827400668280950885617016977641732843683953550800600432106079970703564803099309990055036795482073200295569349888350160020172190831218471214081572784337190970157246317493147894693468752933386247044164556003911749961211280576556946257583328118805450568227044930566964676701345633910836337668767773097420138915252819126442685985390351114869382392382078959927121075669035137696896666191065149547220137854318249607017663116419480009103786167995953375950798184177075968565693851765457880537383684037299518692538449001197576067998145965768670428263298791124297083063020788088563469415309393663545816594819030153337071309174500680699080741795356305249692521540178541224798014018017133958349633299505812536849973707623143305360457503558389505027278240745721087905920125885921594778093852298141487248829125639239645036578288485379263809346085881824932777037813187799413049905433981140195406940026240400129575432410151742918474228021990983192238184629906433869463822252533128695577485548953639888136154566902822028290574125344780441602974290276988993693986681328822167628035133943989848598667624199816991346873387671576318954177824751630717527343983354102864394471015422377995313683409361279278514803014794349054914654753410245985159186874137829134366220617807244183325554908317367294111062643205606380156778866043272580029855470611204153150712626189861929567281370753988864366715935121585276517177869935921356764450217472145557972255173571723183871539792468136988886475746101915116464882102891155782681521050101796859646512001008939454328880550849818868294096615879805769486541156273204636429505698328466539893403242833070784265424174579853525275093319648109101575647434440877610067055095889886691085318341928987490440624412960259204446407799113371858492279249095371750846505023965019726058181028827302478501105684855192558968469994261443776614671210252626314168997601682640482631828137439994855173890859291934588705444564023839999685262445315516236636007135594872559876877136663025778102999619662548531123087300766714918122177701569522000862696058775618721715485055460735045463570998725504504915901793184855701017384708771044639867965485183773401291683203376647284512434542726587968859571147791419353046834669650081238897107960963992051831404236539564151250953106314835425660427267189759136110021884603507377407458414333845145043640113217885185978966866636745519369917947088805678272729403176522690841009622913794347708156581733539276662927793026355819623371401886048035896910423342199020914183140864255080909277162479098904661038492320831103766201259285533486337097317064352987226045483847743437868543180693486655464012496110443462889359804029640862781085845382840395981763595329865616023934700511840194745483234717428971545054556977098289012954278002917364558812769607028905814561925619625852194483578747772890244869436814397103204190009370197068033670815763931703304495783138457729444497194563362983518248283052729553931524197579463620865678540928985492346664062340107194299553557317100561791887553658418201719052619965437680782929339993266901373807800996593465671285094894645365377503462780666395687702731833654740187652719461283582572622514864098280887165995276704808115447318277801672964476486222122050055409214498294455713959017438267852466765743711951277447390445288615966369645703831761690192637550919264357976861949979645535264730476341232295658650771330517040191469940781509780747294182365268229368206446270300122805075315371815059362476330918571965372165935057682924187265312550523357898395402928188360076129886687036482538675702909278329930186136839843579621089240362305552163674062516059486433160399704713869444040645398710793181606836833196315798159273624535036320782446532651405717146179046832001912306580901786033954984193282872552341993770797378438807139046535442587209810068393567606644923931973895383504007295866721599049714318121626248214802653249187779051899444620487615015792771217460267666365007319601447144927400533275814369296408382025072817909225439327925307331155324502960532394881704871754248264201841346538946206325335592419012092184947491632787248775684947235668105612325888584817932973937080559372104759833100532826061089629500364259613134642728596512860940031956023462940147749863254435900112339775512062883248765610096691780537700708092550659733202522105818541220764041998215291669151609866637196638117856911224823734118687729602243649607037283909727385828827523976304746035212089232417088515106296782755485516838423266336436094782114620096216286593186755190246986120737988576597855912671466549650560650713296461237033018110722827832366888544953458224244883162753888779975427265977351149324370708729608664433908990234147440273992605345516829968889374011534924163154454054769533648026772365813334415275227166745921875856951343768828986969702770734210248312370586301492047778380274249741400119278534438289509897340659407442132338321300237632665905862353815582912713282753839757574404727143274781318272302088303303916624536064356598095759485431414607648572072928589862277539776209150583974282265863614955265976345593316946220341318784417104988425449733993369580846537590507780769259762191766356588917128337161616552232988961981209584866533986713688800966937095039365906681101893241948183184207360951824280269128259834555055445616441467223951263970893790042339200298907300129166991452201734690894889865187682641007282868789141233424469952800655358422305832688021705374734093585951003273446317675849073018753612130386918814583499656437120189539190765493132045586117480004579634717234375255776413893805830335881669761155572886711688120686980158576066448309618579645227678845311877329349098496810899741619051500600431846623091510930809204489689860781688466147004911614682834387747796265454265021542503802042314980707827457317093623563785280665942510182558212713904072876454962051747069600117890982140292815273966958215869249228290303807211840472785832268325516111602677970987900994690120259756510974523320077049004281505798227147938882330904785497484192328027863918901832885868063319125107104462289240503034312161644930289314699038350495906888042674698354077113529577007078913191116534901643953064183602006334767804157426364831027144748590393923879688139105354929568923638891080992096213478362302637869883203496761598850251572601872702708324727407576988985066443226885049764533864898295999792813209460844998345341815749825350891990018850448712311299148908257630364558443158837806850836253199944449053939153746137599651665116295668594688731193380777962881534965385355458752264101570549300662186521751336630311682359933055889642983660180601333923703597249423399261842306737401522341938647687323512221138903103549572266185884376402921256965500979946053733736117195605490676090820623781161440202534792243717240831446030119168592653369650318684202068854896281456783620605648287415065601521057312048173785795706195779211448554249138484883616440138532821586431248851803199094797970603117932980297945130207529476152586705697418895780585150288120628578607943104467088465433178200565857181179774302517469812185137681967249165923335557091543883635134472785355620810110248131797015587577847024731687191648019235428121385295148261730479953149369968595592850067754350317493373095177274142309045322642815247675091421436377472754524647067332032408376954596300446505149130837055702691374114658570333864568912984331226265573996836700256708421459140755195729809048797098108012928197197549772978776740482918806593419058515719450001799576243578868007894817031690920606112374483451190361594202386779013266332310838895076369265887361346799957760941804729362536474175827186051764085184513897870335459216355813930902030657233364734733419515084139043749974438978693530456855610291744635799720726065002058528179778412772399160109977524879802895583807291537205486724976159605877120588430967803881055096024745369301453635146367625067707871513541118580029350576418885949975804235214468063700991668245345809808853458799629924409551913403510087522975167917102082776019444918605022152066794032714809343846636480383026014766032595707822326292349421335452908000933761941064269063052928308618063047355011689667161719023725090726157762070139536493132026961121472534950511494313002565413548605395546060253125689504294785687342926906678278966032593270168490877258833856142837935932085246974410515845183567925632148242538975722104031353912530922935268420338503079982880044916384709538792744742617851987396283913385045155554273305213102855809050427902053688622595490816453684748728320484096400371635594890723413291194236489913045955653253280276390326076240276183432329855508738289185845209271238464740046671158308905393225309214875801643066574160436427339810679306828508472728551093990739530595693725741269744004944639563716207245264909678726878317641377578774944104524003656276062656065917622344789694159631142929954972136754746678234604081017745100347474018502849954513683374341981029157267977134873594380616928114096831239863552089279417364613111497836755552551769953718905253732788698241707382484223079935511623210236008927750651542800132381369631043869658891794766795416089114627172962543271366642164388111175244215455314002360164665040935854826595586231287988681187571995434800590122977137043440317189623055992055852476877898277898058178332423635507418844245923187686241087936882310093452974010213183004512697788113638932823404531083083768980210311790612888439277746684914470163031301150269663444414229632492228255026448406745094464779062409230329856816075148712230033819912022827370316567251873178275688541255209776062463145297158204475089791558738595761459367764963465606817879736278820976242245481874002887922373945695249402050101347817892432888964475712761303871023622464466996579208605635475885194217008214078031528359354532326995790467108440063826162531843320492337849927127059197353808594705382706223919481626606351538291792376125963286038612551828042023274968670408191094262558473262258531334422295556262266678818297474651615939719722191366880009374420490624167342163764176103694017529738142062277879566800650169136675543830121864073116311139754614184215264829789971004627353397279900636952181768881035057828089405093602468082940630470159390702002530990890517596518758728553197950086059864228130353580860261933247656203486220954881051246934751054624380698461164416542704764323805073085040230773523339028185751078415741083050151753023251539904577117100866954084922007599617539239612643050015505320757310831023912469770476807606152010123436844317113142668577764060016766039700261011842106215751981314376221615303045966409188411710408546212569179650982445539559258986711786801534143941641507794634831155177586228712512711009742532944630979912469559810331931212113925337150297046862993838069943584225774569192273977255713137738576701178125740509507934977016092844184906871389578140242697527520232655014790933731284516430033258138528367248608200941800396646526153146094409281894584493479144076280964043870795236713254045679349354568718737819354114089998405165510599506393572560923463622373960495326909107372256689158665838908057453662693782385879700221790798828475311127698310973337952049675518098235558435630200787042703106819025550871511694271168815572789732444148963938905912001195841845783008215874184115404427367854119862919356372359933018200641667881235196381282974079772873801692308672522233875781113359708029627573434450674386078035910030713667400773493321776581921988247254563503943998315551793884468984798782714027357702612510859981500909453782262234082454260294011497593362938307910081343898124433750121754972652209928851588307212571983965543250060649488675549966049281276596889523931236261383801189596458850864605017680235215553138803845247007112334456168387010480752860353649852022240836249642676004855949567631573724086878612226280586290807350367446879913453553640453348889452492675226970797713657411742948745973459521314546118347362389635901124034498091262986063838753648756194293262065815008744447529049846825447122728481376257564171961761688631297828593762892064443800066613767826695177766497468807260431132539295411817350091294894857762568695229449105132740464476238287300175411440387114649647068069600943264173749564374767365835517885065278780931877059261360541330794012432747678700061497516313928919608912602546516861966847477748316661188566578252387787018393655772607221926175611223203817628116139787426782965150253722117644275353405199070636314783339201600228109298285392708849560273454459532785409459413747450139242398655886904415342067541530561648443978582140692449047677994478503387848604952949782383154202034635244954493173524329435706218024383129288411591122195488160529908792243860770473225986198229692630247669360726553302756117567914541762180892204825294425290498406225846404636066588061641113679859772949686708250105570474884737456047292542756578866137500967294820956138880248175330319221162379557357962466193677549834263160097982889035964715628656819385312334727207489541452732441379112667295957190573785973450202684747886313056453745553005636572124117933499005744487336813719946804518666186297429584607035751948944443805713200711485571915547062871304633324218132803022123849880664565135781186132201601672404444885401949995133203029921660447015887747512669212117626509276440630723488849645336023385834564620598763014520313005878883163117472698300436214021245889771870080409171027502620331594005357352245929458774348691798516991137539490718741838033224281797009143461411615234655205631481419125248923223628966619350014992068801503195238720838615926504489019752391788254039133020742648386881575525187431038986334763598231056816169119417111385017040714667587949335939295270379300105296836025028725173052004546398026843700710529777170051911102225639825058426585009432937502525920479813470999056383509697300603442914563102667640455828662220043027190935995690434057336661794747724412825953481375213576588136116790424887991291698042157904103354872262383886979621257214458905256861863640879563093623610892571682012796569677924379346548676918893269511979505945726441672612499437527209325222295253541752123460974825930023050038150808600488433475680062120715295979334923669594448792431969686602692103969014890595697876060030707097490472916712946418853354652083506545694524207311345570982180310726819952241305290083826973029944273736101506548322660286787382887412680865117487342449471206646698174421513153411942621972138345568221768183715818478531150539214370962351781448223201228761032059595452706868103954165975473906858093950528078260019636977768566545285005252211958540073477518722010174464935430665309311622263380211031464450598552515426469425236998789636019350056275467367795117594855647980957232116054813706099190084048185027684739333579784542789699660135938663022769111142697226004805881293418013313472120786535725974447526413774052940807648054884297678676520548121004822765192396971103905913324367703347869515552343584104815026966039497556290686830951559132439539264058238482608005732887715286751544282818255786246446763461409172135697659725305548761543137044474572614561442398803818664304493356796841785305981531299261719398032645443051044089893041818021050384164319580364912835444418588922061839763750753050116881210578474063731266622612549951220379031172549663316949927524030512800567779365357863540781328917473543684274248682195808125550350463735043708514642799200676005031888959445501168811575143590149042089968254199644870374888906602908345711132408904998784687506127383732905538484501707080948112164743989233347955083985358700181919541414462753504585596615401009735160671792005426546204166320831134914162315353049981117747034959737831948847728968283697456142111658646831285722177602481956667574412989927201725349014669906551974367719789737233130815709103782686073802174617625359782692110426706676884111233924757506499003597275777367650688614610313393181693830758296985043660477631896572620347057534981350167484576361057986736131707012152478815354900149068566809935213384183191235695667443577563121219211908542794462480909116259737244197756042510485899824905735304159244960306324951859851970423011135782225027961055096764979545865870133454923782217329276155353453432984491869704975670518402148609937266092718966292824585386728796648037608368030686299148909407507716989288056988265443155945190562877079151695668061069308634031114828471070014035852562233673410508919150923931924551760622051931628502701305469998127736500458630468887495533923409962772691275307900991838323564043853812992443319287303070709817361365663244015006939849048642487200700411758697961466270071863889548511414572740975203758203205336146301148667119694891465349445258752142641804921877945701102301895720695798600012123447519416825758012391655048299139121769771397849462912411219476447556551039666450331980948945278415856934252226140272738027022046429519482478692938761641797108379717310365695128766213635786475143660470344311561753568254331165457480302834678291805552573419273507419449107873793493880492713734727769556524887142073129994347946081438641226594406307454344242837919891854845104410570306267098528813349238136206736933650177678410399412540655974210868505509787482018468932903908561278848253513921755633850845504619425663399924981669931134716101647548499971727717900512723066888152193101122181254711353796076815891998995303636263180572625735317655225382447069384818260172131859956332720905952703265700031897782262592028099392526919071080868254228511489456887573765160341810881455520476601737499623570859001356554045571830270966698809943247355216604944942826700388081950559109983612709389403719803951828449573680406596178851388895812781542976724167341933908138650141219504456486337907478535130678949531525849657652762756391355948047801922708536888708303707605396599946112857831154496820687719183014671275172353794602106822812755144692966915342772629905844830012112302238222592076258296343899609024541353843883565820243965346314256633151545878879094843826243497067970267772702396478478270896375046210107692712138706830723133792983949613946972721378775072298605635909803113069024854287668737764105831521997594486599903517772146097188988695075130934505114542171091657012460004340597001061575152175742628356902358379615820112990129869286439304638928634632426842248049683423250941062259278349878724918152093357380754393299989447884292379112470592109956021416948226445786894931601688863657644294273662267824926600084037785437715016931397892995048842161706089577518294718794098749192083092372112184144193620241048783028034643114954128512832316609688197886651464976946473174767306847622913258976903291338213390295131125060082670057462519521626304517121674043566794545393523569159739079914847534548857111970422889538305247445577781395467230717642928202074720102609158219309721886918046623799188205570911538170199031340080792052509684852149782983714796290496788988463170817271972428783536292952487226707944429316288614016113273859966420954765891178099149269933440248986119416608743082158552892139102340975563422424070533844612435492223633777940328570420665308500688841629754071276524901249724929512880620694864881556221474738021983006748196319845963408440872027781955786172719753178783081137603418131712355625579586952546887908893248595180620475703218316952500346159853857781312068351803227729947736998756718388036354048668420803768785315047746183012188224494881629710117112513928769059964205653615723874569110766785179767059007258472334541503349818548539455631045774275105412233934936127187047816683947911194947328503627701103838178769441511248856596706477036292409055497200429423405864853893133833144036716067068665002871393361163594476709333388785235744791678822909031883076141797390092189593207367976615845022689798855310627826763777224852851563446440378666271394258820908476036687647132106458643895089600910935501714674589248435711452936847804680758658359732435275244490056417037170219926170849323649856529507786680237085252936531203403025979861460631042367896555066059410527093493471880748679321247653471761141129644024149031205225489795880192388013191879060391700830343912225234848252539218486451488460476869366629760804771685332951557833785338973897944199646466453138785147637402644167132939751165290627639488264683602372198662220031864594903327169561077248372251117588075115100516407534103427285784975200391071001754076168366954986637329389908758407305053778387400074244984809845590710973491831005057705360747028772046074655319459518653314033832099996663296208175863030486832418339486354588796468454982126814090658984740645218491912037208431587645617330923366705046084127315692106698037030611444726855480297595591431814130704234198127904840916709635635276589263463146499844954990377906354879630367543998637535331664275900987844071175481094244618842568484446901247985701134406399458773013898736251085372303611370113555365916153404049668860743665187666583541468713167737754271208103591433811492741652558010255837730874211461212901668517923104400429564767555542744411503051541509362624282620637603436307052865803187917046708173252953958798208911604361046391375727899250336349678348633454942964851569007877629824835646590400093452780220963897108342808139477299947974678949702356268325517671320723051623814637257318756420253623661481974085177609246437706558066329908749887868678182699474221704673577570565064335850003450601017424383244626153712597639854758561817522986072760814071191800490731051562610571658781195140792808710543277873309389789659236856505568854575084476009010619169844546603235403383464914129537467077418008703456167430426135225911524495369516017648330581295656209488579524800756218237333607180550112115906612849305352425780579048496702897273089990943426560621465318459697238222634812790230757644814983387023166721417421715805261090321634749560091202425942395532812945265847881684214360698997619039704342419563427594893807477790682248073935988684228532057271945421064249976388460059736343975502658052713427032499955425935591614382947615813001875034846921078588589896064209479004552262120847600318122048612845639551874873566816862511655883972728372938603406122204692757294263281774734017529298750823364856131407424508628772967692544185350833833767425258558046046220230191979539114428547308292751011912418357282824415555297408998130872582261152535758971273857182778922767316220974201555534718275096877102227750338856227088287868969589828817939095872269894698815175086118963484129446088143567613030462822859571360439911116224684716681231704971009508745905818630880834311144753378975879845785613901051784893090931728803411245348295451750160866392108531550465907345678573112499153357589542210626166297732782942768921883612972848458128887833186592219247436425804917452189945518157622969869930359676431424970452846874919647979401515298215961158318790055179801663122383363554353514279943533398037326970844862110123840934945679534448874549105212988207368650446059377867533004751208650514806681592678956050893600012596272066923837202287775612895360687844618507889684682398137657646728347915175280557549564506999660479027111227207235644449331893181470588108566899516732172126899942189063454436765251671205459234110503890351534155117079206685872751197687146459304273500854366720318120748463583060577259277268891145541356131740144588762551614308552264723702919694620156727944524300297280449739044021204250010882189583219071240504452147976495310495459428012115225441348440472038216958147978435582912572658627051435746416747847836126705972723407331272510272957908125621332628277817010307089992067362545327222699488815679758409852007806663700829890333310536017941037931753181385785045898471495065565694974061625457906688256115332949037806858050128311484319766385408420571821173694967839420424207452899763300304709978975358770244459150927995350395208835414791034943576714732914479850985048933853420284784579761063946548001064192843334349940803627516003692382347047894057875942282217486998251959156828044460866100465342226363657540013000795353968947936899755621043138841761630227593806129284565196479001731906925952098695196713474112322387471618085646706563020917411779201086258737956230282208381738764339519596318310539761821401347936031678562596565158382568188396007051772536442598329290766772373734846977546100522040954109379416895014352897961668669427219999666156156852866773605950100965853728561448602003292364946526476961960942257083041274690463634304192390707758951185149595617184019016732033920330395756453649073074274435903991947715400406270154608231645055361640256649421441183984508456913847072421668091843827641747496918892438571665624002894637940178588698619933917522569208546277284082984637476815095996771650421132691605646837651836535679364504531167007612568974400645062948128084133141016690174964757467253407927924022862144021387076118774883395979153821927573972885871926982179288292643399811228684477884758061073286541510111317934148780310533588273908879144204309242986431691133647943158538258828179242126461290528494737384953130562823354259415245077346171849225948872321355712531980321361099644952397706345491665577154713491182385886999477991401145469620448709992170894639883241907834103947826948711221995624404535625453977111365181463657929143870261743037564512053182869501208863846368324044283997993345642775773028834290329308145057204120330423031738969972065859775199702620308253218430314480736846808617737505938511717270159522043631551537727751688571485798751836777157771509498581339718471415829402589117408339457179077454305317491770813580437966140338590447839840437775258857552540062353963324147160850808211701251473516529932632130020573574731659332567949512463690601240477193212364606006031818850967981259080363907290341221742540793523504185416670441566038168923922873721278203105793606229768714913743493126442997387739949087194172331367102930535014940134418448609787816757269539595994971409998367058169978602943780676161137502341193243757968557390786553518416482084954539509283341740694785073066130559259528940120639464877635434978340449464759369475704358793640233420059697336094329558681759336365828926204471791284834446020112837393429337204148932087917602498292975548091963880779016131934142660642413643362518720879844584550977404815947716413605121762313736556177093169893250940135349199805345737145018676470721629391729863504618738966368992474132228601036697900205991523997509685867994657940239235083415907266195723874272030736943633983820039152026304718104595772730500205656294663002607925646382199204971327066484367415749895925034642646243975400382332665479599182393525765563295612922958121297482236543738991860963026353412353467293478496829161741915299845770665621075762564869028983727811584069076962274148398199332856942785172722333470464831922109671126540049894482656987704550397026756474680344863984080378059705225789333699141223058839041467843494838552305906901269349832850341233484100911486798286973275891734519396661528983597181513898939739577741711947244237383794402080672062744660773745784253378374307972903079798719392561773893573595908810497198375611662322970515615616346974831581651641500297920480340466235483789806174416955749587503130727614943749756521479318349645234999388380863675908936175809134542646532199552311216137750453016461854471802733071647035030209192086020020356248064839863026684765668411392304989892321958585532865552209913671481479846325629945958333161312842552009716841813001264405732086562691514635466179629839155623123423126333568166291252627694206790771021726307482489367279851322374711225637888859782172241716717851033248577058396584052969524722604095314889237558896223645217900672353429737722128479106817745604610373246839106237869448875108139059133774544740982535388913351056686244096316247005865467865983614423598024503475146725628869059104642172257926320066667631477886383771165787357749127902009754830136444511250927882990586169380695920912758717486708641832825862251644985763837533130186213053953570613631531782729528910053378156235015729964231544452355273912503955720301433863652516305923222988850446273527869153402776996783871726620221357909405046414632247256802567279930681667762192981881789680264452869995828100445938586188324236785329914944516069589265194007863415165979300738200514868508943960208490940644771055612160961113659450687352632486268939831199273248737780652072337732430536559447423656490925023924441185033244601163095317766018874931777749947133145489546752343331068163927056309571337712731091878532104768773541749447413099563400790207249773406248858761708475776441655509017134785990523956005519962489317491861560448346924982604431694931548110431145701483250960884443950421716991522616907982569617957264304146619461758035942528471900382234975463787331242822405324003348714714916322033025077403469472158111556061869019379266547264541766922103099443980545286276096222169423174670114733512200232536132685048531130498861821118515479388655322774873849144325310452954973783733646695507364649390493626638584233006842590928304126086546277582052553204693045472352954156473823935828976096317610916758168240154432342586852344348054997112487255135326939381130839396830088557501851868975269210632210200210590617203797253633719722478767097896796167041319692284571370069097581965657561861027587235622778212576583859225055231644758549665149444731368570179524796949666267076430068289557020139251749786765480538894056430190620076451931716459084940967507786718594068262985031149233818768629646414582036488574895808783646829547586026466316751957870351910436622621248106452529308119707524696198651812160043044638669318919490278979246260156552808928059034879371889073515145828540089342088409678816937090097921851748846826500361919579157218925992930063960919636996564876549583273756205739745215824910267426247663283876502976006076289870351240674970473427086931806314132496763578244745444420096040414737442531373767023256340910967572971881730029882263014607758211485661885990798099960637808648747800460594771488725073333696405027557767423881938750850698190942198909788754250837947542105256885150661002877745411603025526778567173157096595594411164020813780974359784896419180184031520972243918358536009871555998396357681752974603772901343628352670697626943863591104639346395330981902591507520319300019487493153568783088457690031204452375983138827184741672373686726747190184158055927502617933528648467381840463029486227954226071026098983494362951208420587827227787749448889382476156231867610341211637133986849804652970193720275023369480524568260251714575307597374322735411695418775477988246880446075755872515064417049212874187208358375972646970057444477768709315209939196630180110014509142945080476734882326496737413183902842705128600417612613107737912192810194028193995702294677959043422097341642057826293414571509078224210857777955475741976269816069093166228280184837278328004458503532516436419290871524417016205942489478793740896952909030447848488754732773767234215881941592046007102861854319092426417829951678857393974393940474924477551726236343870196506896247655407056984713723250806282743250272569570557450742585398730724466310523464503747675047537320828550731546823773620640261320805878216117956803823862287976916217844128818059556411074390145513568981452443316847908528459806438996680951693739518316115657516251458363650801663978640924533772238407933423031379596951425458989770896276614439759552252355894150938483622640808712228156061174361086170819583097626082351967835210814901156147472786451440659220885173356226701848485656477174111871459979686641726531911820835583111365344698242648042269409457134071520438263404130405451960859390006053702421975513754469231332409112807647893913621573677377807331253484320993931344143125688885083250253116721577549728729446196168543153850283447399495692577939771835099511572242227982944515221909224497567961327972713125255950512837213664239825633909121780527744157060098458404619193563281824963756334275525261742589571549010148452149058935154084879733450428307332359249240333800310596364173066688801555916814146673176105711515373446879153492472366537262294849074712853852887038734890416174685404942644277778700255111036851783348698815967050195806291372092542746309361955625477658100264271262579029855295404013374791383454547812736111195739736395337666565048745469025466134048821378782652463300998621826629912828909457110360131902919245668479472715096892118618765573027848005356885840712943681291854192329824438207921483241589940733727716232341127035385145269426595141573851957980309426629454443892045960546942619530375543453536962049500414655072400245708193960974920823634656865285206160526945048088933432226028203637742531012370956733084875742754739973929345801587922950821768694507473356777737947354277719181168751126510454018583802202958080244467204498877629602562679372237870891233658082211593579818902963972802240295295431475691392254632072456510322249248843488155433201056588653252527889317644474111821440664404808058381750131362655659024130668552710641566308284803406831557867639305562997725916163985126102001050350827450692459754459701589616735602337299080513907655240119966488336576361215628792230270175601585700099381300911278758408296651017461310986288365786000458235876260644562636560583927832838085303238486709415269299989933371037790419517806967715340935683848032712821296845638972043652488904387232328584575643939647912324497420854578982892403870253261690089284979642774357374235042639942987393137486822870596816638943996280824943735493931542215260981980518475080313810651661029977726770552191882059145230218522898339992115376008843980908728807869736637890483704564555250803549147273772436285210980629675585466599154305354620005043389149157004454888197915328586972857230989003642482132477980471586840734365754430023455366419424837422342063819301134878012142925132752957661027974085625574689486037619126937464890834706806087485728260281631547282448720641303569641328481507874218030970039185442191873281479499562497337566679189547330671294908501829092737780712395876022216595089617837563921062157112845377382136808993550930667699414754329662323026170053080133190866140008044222388003120296700446489656225013141841220562346423507891170904621509024929209663809424789403495058034198207237501133655596806700403980484881062025423490205211078439685359100710805819897765446315814768440254541072088852751165989832082577546124781608841719425877359498138839245805518110329808941474768549173577148750493976079622652238196134588540449031078755303493182528241094531715549094004286827755573160871603370208335632898967599873896659021942938959896558369395651894661415772254787251686811649795077772411051051078559426585672580987979423429521817585898531640895954447637361106173841210987512272922060118126470170146019682910427450973509297795346296824155149351363126286173452796788776765345152106612791400776368188240004802833738377921625101423465478031083141336806682849429909752337780208316839058960444382605639807080113805602033230444621549450192364461193544075338731404584787316176104371714697314492650142972237169513634063044778753464035523279670141000470092183933725054717062785491736444502512524020429103333632227983980928990331002483849405220381136193985519931511116599235886874177403467115230149591907189323469373325061345536341982666129440366702632319611521054620473234104177458931835640285834017963497357038357079678907894990168955612814719163164670123579103514849054090492246006301476227429885189015886190709389774737762250495414711880584417869538278635288396603756095398438894191372064422765228669002214222150073497656841367127458395817313353490083545352153298054520927413282781891668835020596693238125755912490482429780957242648994199315535800278643465286635913298368069549483283972553553096784011744225666431468251023790537370987577778559769333448815513379361658557110727538402579489372866662301223591941798189970414991984375152800420991028532034848163141027508143059822500924747531221788204292087407371532823235586129408260354566910369301122540939867371222141063273815149488669554150843718896579138042084523173284157501250448466492865302624267634005423797949254999346442123827671433350500677658505610724652822271186634470647380677346814627390940984640837930779737757618759812331188849624625744458648947397334008566120591652769721963824579357127039247390477153486468098727276770890729529830361362437701139084182381059198980554303869653089534517739626710018332340766238706196612419639115295942235493543170515829622107611929868119040967525698811052639253852314290113396124465594813016077918549199225763590189469078494697203089845995833850966348749829884682266071342485175681980225984548114117135960044246131458433252017508781026205601875622207275742150767598829031821683452272581012720207703663549939043034413283247447108816878185019811314053731490627311367939040041855250869598766228233064846405870160092937025216271669591497046650059970254614360107433556534147889196686121802977664979886758573068636816606504513585685159879718892550405653729686016147476031825927089791636257530053233679569508708609574615559572695000350328526846647714896968666262578931236483331868638749466523262992585095192448154597711078289024556971392527757153209586004671458626815082912391212384177900043474838323354227599481782513454296270968484052602999904871522147661115312828642710954944579117526853694365949182498793535821228560695065829842802891588907872486988843786621833098812442224293096476726698808302180497711410440833935822999432908952742266764440896617572079892828687126609812568987700035147401804510210579084646128553347084543902243419079219593822894797992083955666717569587261122204369737085845582064565696908929217920827967872373983691431300445598807896609952741125026461907909776342235652578792694584986968244816676297673598724682755431811988215463043016419420087174624399169745197222671011549276975626212970959633217946781685592726943482499414131190434824175215848453849376900488360397406130301992764086564942856416829661631772962530376845183772826564199170148312279553779902661143684040246751082624009799699460304841994631590215911283499662613342458067365178795155630062928050719949269541209508121959404298473462313443166351025188122232032891437622061505407557648766760539420190630149889173031557373544901511249755412771098063708539548124566872214440801147879386555708164313703213480678585822729948767825068117764450200945156366125686706394498991488833734695138249645196005625986615859054376585737101987892327529591717808912328076167818164177945440524259003000122842542157076212321462260148615611898858985588721620203644894041307358655200782819618639185144276309300640003538186730921327515340666797609204204621593369030137584182914452282520862362249902457611801830215761895660782281489251696819157534713582585457155372989500132473454652897940906466759120441657727582823047037378809656293579673532703377424728154231385196914274630774724005960627812035661191385256704848811342143587388168741915867271603406924622788931547021711502938916281535996208393639112888403852899207907077451220975324286659274646093149226866727270061823504376637694759181407452911873184284737598252117554989467305373161157580466186070567895050760902452344420802663028148785042656288839101141167261385137950786181123388713435906936261930462542160375721613805392689390470518693985226068373749021034903474436178029949520994945047198397263221446610793856362825018597109408389590396201550773963428274362124763857058734611047664294255979091305426073870152026268501989260361642924368143281823280011205585378331279849037534453101469823264533296024102066433842170064036114040172435135525944383583022321080601268392961722793653856992389337054216989877902485961363302237632993034180117363170506572237781730713235183384825525799627252794805381516123843378546311596260894102529772280454494664278544517469617031515432111629115183213830753474848797047524719066827596837661001139113539011993819287431141744729541504764462659187468383620295754256185103305041651878756797987542605013019941563217497183635200059835112446362793770667236982865650110912292550975227089892163924895040086288776042079702255432098239319989764187613390272947970785420541046929225940617332700715493118612233140752784359577553768725316466481170970765907515541505740271088349004675855835260169495957360263705627240272044170748873554088001531073654749179266097524710475285218664690202494364972451957049261009605831791489548887171693819188276147391874487185214733140685732418916128707045655951365277619710511603293818238413087059145573376533821316849841620379180267924182083895056305784701127595984510888370122970594225591459383389598098216565479073082554482605004695253522518609969329802750497774911256837366616729865443792937568900887959395375361975565836364834388529857607126646309636263945409774219048234213881352272133492668551658867976361885626903392597556913280357836511917102307992628963847323411419472757493632963360827599401484185164921647242645970041956418892550378258162391591079867344045154886162855985548556269737363523612225685231600868448238055181906521993098817317890441984023769909338720118602151559995312885686086244235628834321492346029902463352428532583183192688465861702625098460943974509172867684899949218873155395693080396257834183348770461697070434888424332260135273270848533082304353725944089880212882011188605115445327035723179434688880849120546398431527700581802364839237854871796713612361964793037861173422572082191845726987147476553437457289452549603849008024041620901236676513388173327023710827190308574214070424439495521329397004868269557055086286291285943639974886259508107546407071507191944426715689843683698843157922427110697154315885010196053928751263543846555943111857757083592041632126460268260929532033866850115281212266610626992199976423098275503603714672577914212588896404495445673695982387163216858059758213929833944927757064412246383013909705025885845007108898645399242953060201329831310068033341303566047371517510817268103518256697831989313987682937818607381373984548194396265092332064583512296509243820308409765131814450613577049252916207140047817961404353002989500030793085901019169056102929692366512205075789851583231144713718086476392849545530985665972098912413523599025573022133448564903723206572784922505710899079848682929809625234683662330143535641288874773000064869757021187449080328504549343408050550681361185155436653514898936385145804662156848828489889215857768781373543496498371004834556052628823608287483463564299001489566404000939540616153414523215988969585395063173660216442669390386849802579558461412810590396648612190753234874610252011475777237207811473465432460817098672121580485564319481622678664944356727126222082458769577218694905723903951412894105367643298193509688268572402885888662779333733553776115626554645576307877064404010110284737820561557466963006467775642734611527613080232450432218736689756913154303304773603590934505480221017004383414572716935248311653349008059329805670273298626103894376354515377274152953890562361074343009553459701080793237656120371416888014145249621639634390322206680324209269881208751820112707580422021276726407182326143584177218256632343660247499687744618591217101745995858772343038229191322149799163007175499233546829190598925799423009629174415420114764709131002825605737554051965436032253924829247964166342696204607320250849224861206028734576367147652111436095247077078931336632444856531696115576806438800362816944933282971592680208086291349856272371536873142387602991755480274538182358660278316221880470676475970077364308822139345468559523437718969315778162987242019683196007049989644923911819276188892721630062095517152586325826608248129960069877196582212641452415983600375184908159873219385102031377406849541395338917496569957280265931247957262374718684626109757335721790380313088824218223415133874347000817108436945391182537630189333209470579314537351825587154500346245110090909432268139963662538151779724160752797416401515633478737730818738264983073748846969326596791054918804671086005107253727019338547417805015379067184401577513880306832064366592206633676682803375861171994954759272360949527591762226474436413319579422460841259215867535958768059574297201613192544748754576923973614232013781035894989401820790082922096359201370110331579760866205459098651581259873183858760486094196891968606255142703146889674761910373535439323833473542527825472695707172536432299736316383049287870361380080208438441712060183570296993120827440034913157030519917129077718631395092405309662683716226986414758260407263538197133089091160892909868469323070080773797141130817362613760209534890185733488472760384272923964624989815253839854997692274831695405057210268461602380507478176077765673476351016307506493858159067512772053986402308514779475283462498425579440489087166565274906952766150848257295723301182211623915260302906052647396840457952855534260575171077811749804960645722293867862382095345485452096347975621192831184389571440740673637795938410696402344100293562718007465093468947064152798107754741748604457099608966182499478951611338054407999440934954785157248621623028578413219011541590563261399756670739603810857798428186026508869966867152963496249975368942410048300828238269447473742236739991816667184811656109541076048885913166469582041180912677329498123303815681145320899994488076224438489655112959373931355833233540295610718954013089755244009595163653789379852757355639726608293464413810492436677965326410334077450048532568943805918037869868415960571305154356525591444085691315183862701100062029415299715251267132784235394654761451280211501521281736797462541878529899667890306163868028293861886588396553162081910085775097977775595598853952278093527608268223874418713650189159997433600775287839282533855590883147997297652777253785360033508327246941400871172619656538478821385317953674674037758542856777294357541985022628348576693178102452714382799374816919543494791976929979464958654652728414923264519073919013272499654829745389881991162861544783174704338101087461273205895661425152526875466490793662003131845522887141893577527248678972301715809606009689687398936667917071540734047784920021018144405225693151436582447714190103237358748191380950215241402751665495043499409151903277212986267618099187027869389703743766843469342014004829584516761017000209017419692113288376617059782867137847334282542442881695518824124780882941954537938349320463374010527982432584094208691091919523233021365908448099061452140953736848638613752783532513213378572410112930486806053710912730252804511833167307861605265155632029312654838408650045222262779240280694677858381065267580976085537739831774797355212554163985467636567726942139080849610182847253452938652293903912278091925322114257558254068393491524918452125951732096884121188430399519976847343335690353019997844748480548610605530425681690466570022053459260207546960701647580738896434532248508977281080898125470102173688200122792688429291859109910259324447833311098452884149640848568015518014856822355307514139781812354984520960769229038266219678659136529151351676524063209138180622884586772190879559786217744263881677702271993246905652700299333132538658099463496506727301855038593335094216107843439000872128981005540738355468892975934762442621794675728597300742421378488608734801004450849467085660774853146254955426154608289947738873821331569464164601654922714531216561524033092661699573464877314771977994958061987765020015381315097460865719743560612278891407909765354362666914497043162738925344109228032039289860599290187161231246208432007170657975041026124780471507790527604383205608713612462776948064909774075036346176325944709332893122602524241628126477243567200121559734820357411888977986873072201357321100132398873284339711740121834970847143693114035942884698440243146998618548608146161745268974413705608988112613952121331022866247133690759092805657547580659924912584982238248241986983870315151953399319567852622028277676045581343773956886091021914909885328219789789588071033355903226949627916740794658626512086800969700690183783796106599247232699822309522874879647420434067393387730591645289038020200694134690398662497486030159503739895351439200172437409047788786846335832150378472794366504934018561673490567213048395793465893598953512532064419902377445236176274007653389966446293489037380891275282992477998520092548606978958806859055006047069160083843749741295265824363808864644215786690952959840965844950703573870606340362092932462188204776635207817557530158527634209544111953449044898296186265105271600161484204977304578614943011515661337704367367794377186825554043402238809181392006910181553833361343771390376330835503869249023503718939454425787876852655353683380165973643856192686314307579206055723220842232674240259628172469148925641155241944618660494063720035165157662098316984746770654459413551774258877373906256497056492371848718059633143427391518842152422470658538643760089397008687136034626498468279878789166247678656722615276255138388556726728350381277855433109953295817100535203718526382346517627868074743597756767865144192744412977519043967831555838892430945674352364819014216613832052196090862737713943463852556533292050378697713864550385792411418379868334418475571238762264296721647719013570953722618873494069055872411892188502192478803915910368422021394585118926120566805200405225784053323209811937094675722505081065280496167959914085902394921373358323002732376127570818298334118960822955453050723559664678707080292676855446937633887602028028649293149652702505013943537923965836096557841827432352836249515522302776108360428009225897740532382307197125403643162975689180579444387918562862536636243518367232675946671776574737278799314671173881434046503304688245637792307117421284925001569053226468837811251883474165862609211897421078355728182451806610966896435887234460755078006948879803763955249907758737069985534722946562743830428490743247957216755063772778502954427242017358024506074965135252173523266207514566102308822587225150423140841667558353409817525444252845450125540402055191115565255056581593906853926327882955262315967889208008619656402530252162609202701580476007074715017718001748997394889781989412194463641251745896600246384322067634024971085955671968674122684161324972767019248467432477244955860928084056994855346127140201057944067373497739077997476022494048759711009826565838158753669380621731809921525753321895797034898618295506842965700418084196102018940074713881980474868226638939062884039723488667907639875958045128026084922082436814864839797779484461406501044746501248823247201796613053117878311930477154983964104507323555654360382582401326269682568635622007848497070169515797413213709184087973785697482160741435917269847907682778424667458859924463508459677353610761058824684367427758677596640701897661834592791442151409678579069209081948927711890539709289728140946378044644975551941596566990361564880645244013332551600273183310933412462021737657420671858552324664463882048508414468771987423541185207189341324917994493687733050516368572854725060113480867665479607616663467986237167091568856540925715646716961546825510567554071389403132174694288950727086020919373795487195166188213421326857360601055669555167908879678642843098366438120728927220972124758107574587379984370976427431950631517925555672282632515122355194754313696616353699666731000649328789082443349202787284085863870571387519429322651624988447481956387197625068547439946548219689908167291744043742264047971176269231161703511304088539967240908256944289968131595824620582414184733987266844162191102769684706781162638277918772817790964388494237155901855319466554396498224402701249616644863629941872383166781371912437337011849041225781423732262138482646506831098648786230616809555805426217478146984977151844586455882705206628825550725835119905293002244086517230616270181075007755014597041105159893782774574022481156879897608655538378231766460139216553910561502240288215705294921207974605756154984750137603188929484975522814620346302065835227068661866332325328065496357829259377637794966915004606347805751852175153747122437271263773241619443693066170787796758296732510391134422384328460138453199947855883088944294523981985641741050618202667601466596663030849650408075256255449884493951052470625338545558457052912675568476987291152291272389423510596669261292752934751947856018587935495781591871015703305524436944272691066311000157630479858252424430626163303469718264597901985575512276604629291798665377595447045654006802746070803590704879944529151091811326333551740105120206638922153149257620307630721759550858793882257663334277594898060658041910851101903348741597739576541017815601926533293281943091210479894183935774335615979615630346690379362953409843893111802897117692009416081943951186085525023373263517130158390869248584427567405599575082490868235557934806207995313663082416192784330099292288036718036219745013426751852550168005734083700578314152559688077172332011559493616399000383958797194824461229011396026471755769311986652372999620272536503209705625635612018067938723693844170401401828317096679547737145790342963588492621591473953798585436550192320310820005561892160822700874752249743818991342447470527955155548258398325024813825372263842165319585810454964769106611384215696555103819170755115086751465516779251327425728103146697867314913155676489766371952721874115586292866644482691784823765168923932567707462255907784927632177732860823795081554105991713827835404337216088341772481885159133507569857987269395780834479403339297973279167145609035536331909428893307376910863894499527053973855299383337741219114551041379640646525080467541812491012258110657948456095690546532041951438623169962177820026698438109844680645695826955565085181781427007615590571023839939039466569179243274661659040008580779223297580719824897607931845567363684987052713929407673988541791361584935729531720559211800349333399901913295724345657230227829712990478479913456675101612498958754812449392352228351275451240536562597428752420686208372881365528338070545556580134422177935728422641463535016235004538200959202315681437824554864472906039092902576532059470907132909483378264341105720942105283374758809525598756024507393926855049291264697583716598613040387225997973211429727771278456533877043137869800139655505428818737934942170585914772397751877896983654538264183362984130434231620428228440773638190070227507900023172005177662197117517599348414240795748605977486587176349223096934819635548008213568180033663028700889100188197772546434708350660629305335878272752252272489630426950771830975672478711980007032769576638704157881497707628651855686161985537070647484759944104172271685647859293833966832125177793381628436447520576098023261025975338833074678436729883518152715662864221963239791988690454809355225804627447192754883932893808882874902634966182738253150039430388010535083321475053322015179935704675672680748166014397176335172608733215919137678993999555534452278906009009826316509807344221590936017526354307132626633780901180667775485672127321246321890994840906250985242797389350233751051450840872804979615707007950079687799594330395230531914025796889546202554704661831257785597257477296577665051240247332311718002915052229243227277173533127897536998622335124134216426731527486808564799710551366090584792463776434726946506868214069334987513253490081641028906301765402939988415584005611733808629120580842188940194331467652479135944771062936044186729540683392358311403801508448809431663515975486468394792647280886756692047317677114510319332945702470002524094614794507090186415486952239844532064392499128460988570754168026870291580687558828090418374697752146151393664697958147381928086885281995646675044680394218140500118660040559050293423856096169987985797105614607248133047370017020354004991419828015603300862272764460799778777990586734530390280259040007239768096653569284773181756075594685593372026154192634631114842939620599970456389714922102365115826557082355736372526915466769339851664405344418690619018821096475835339957695883326532618944525028180762629280179498853425476366105585807308082773524651611202264559103095836201769014873245750387662715744774757474325919834498400085506802035458706983641237231209438861386982200014416558582531456456874660522884879972037368180782667785353575656542961614731333021158258800466552994056523131825896597565953030185247028390074940244271217832103820387619782257027409699560629250606301267703480532355865787031611496989811045141643646410446140759562590438623705634293026460150110626299156723420992494058724154144513824517458396351201763902539175865255894862853789102125426489218423600131180284345479829591534545442604989184663085997144053237914952717938476288533104551960058722467531159119659972213171329405997556995694353646212417321835029486637483387668242832355651853623783266880397112953597520525482196706115899823033098181605255089227825557128412025346733709252503975021129030262268890371206882563068443582447007596451092163342128849587536827374830424729749904365878085860415510176410678902866246290632572467477081480463563871853521588051374056347739654695381931663317428923268168534147886974939593531889747346701053539730007704371915024136597990778881974774473160357970770790270855156022515065425378834083761519255716858522391600428958373342938660522561910989744095742878391837620140987822281932365510159803560417218527779373190887732550311670975711242449726418986263130926103247206298607460047343400627121475990717174690306760732901998611809624904102920220710223415690416588739503493467022291602325813312563276710848547132376884280850879024613987375917484380411221011355414392920769643224557235993535916048121968429044220160354264990964995118068586183990824346843868802846445186248002518347778969551232001375164800793431380299437452989338264140653733879460855381972331622776323540847070807650361753847278674349743890520622174652571522722246059825158275855526598399279426183688674474934025566074280795762850470973923458150186540806825726445839418655174446014285177904515959864846149088070553502828790000293974782953922542478453516376140021360738369000691448359876659461998137130218178626657900767768779353246137709719102053600358233818908565954122062295003579977900070302629890347236963798754924973986758788199762475083301398836435922981800434444348581086787326324046004367660757928501460327609548684305630076457133158774855801552994585486454916693145372720874678336165607224331806750634767593529962175861430049555883994957041200729081453719307585875570732456043012550422464891067763970862594262278511673806751962977400044847379152921933060067241278678127074109177970690712390334409517849870144240818510546262196055900359763763693314439401367503990056584617895087818847992593167377679188234258413839269796498546857879507341376580589181633688251012581852555836994683195762431021497742654988751928603364068253607877768355090704230754775739967132690740664946565538661695619280465838814387012811982810250771607657363623794606033880084828113682305722792297440832220294400303367372650544285542760310362483004236185148959782599079792874203316028144774364767695384030198351755418937568325353866682939384779176326532459133937542972978822432346821837942507898554754186376567231229277373696833363415784266983376912238761517684373365216611479712410706516482699791455139330050027944745023765597728088582304965814584644091426096579130420346035362521692014392708941087091635916190720028708285947402272287214925271272020958508906878750100374339681427111545637445796458695509246357177565485338082180148938700255902275553343451205904504702483971474659292643709314629355249839690808640124271060402707757265110487817371165910145299688847297118402378058530348718698735077482615853740665397547049702634942327351348357041473956794606986930840087327284174684254333731616579945443281150351711704237611061385863579438548378857558684817977181984021711985036921304865258313401122055475853686743591252479353703822531502136418976621139690815481172055472370094779247706489802723744995909066322857443721437195283867323132423038427977692164833837682360944195657401927120502766854282079873307397122948949312666666946205156558888587626645014103234353009637666168810645110493901303019611227201564456312975281740026309917115402695455478811172598966020000087195536584427134126505999859277723604108466802259206179668619365275596367385213595950801484100845709774021973409984440917702379107765391131997828015285354320605082202198011882360293262081338310857336544260857900244561070011039514542323612860111679238950580224172359933480005228771763281045106978808268170289781438474072179371060779890628983378267844389224812496831006710486110401007738125634482844672162974788799621157930906646929670482466048058998669577537570889725118947787219972797958737026715789582938892719315497987274187095211404931585471992040364353566817650925327150094425208608479578898400498054380021343139490679327787283799070988764991714737195853483797783405418657451877317459929811875672728327954543541509844806130538081368404927089146425504290191066862551514145352559205310737712706312369546292904590628492420802071733813992831199381890399155510514855266609000780561781012365183558580659981342089313183169755487561010064822039754519460725806930149924895395701725108687403578860655805972200681954430953975254220230496362247499118078667896213771996409717661898198344908638839089601773154244237807323430970966352386204383793181839418677314917602798453173779644845245984828094749645028304513699761404885833260373120452414834550448845298884229297774513815507626810831114189632011501007755257449973509032524406211782470912085326754187017337459797531980947156867088468541582090173047733846868571204335234238792656448229448358784530528534411186866999392966573876122210937404490764801217250578231733777579774497265212599927453900305130706500064816872829800702653853062486914064054405409126052653110005066624235216447740329745184855707223745102755740987132523981532888542883580431817104758855174646689122208656266386096109924689927863044008738273462517388590649565050191245300713888498299813289150278920846956372457013020580334098190416424764704096180455781823121471600473949709186612892978132475360600847968004311419043834248870779134330671501604601515785960963137348458966273292636497109262045192020405269872657318273719782504700534986619520504264429723765046841987687150692875771333189716505446770668782905406281032077659843143349872343049545013429170282692490640538071718203920976067924426339816940454567078134721321849068313816209829386567334524601459701726359233948056787914649651922033005126481023765859667630896816968169293040130859228106946575871425561546363970443598818193220700314610854809163607677868913532016582568474256070696912040321911972113288014969018256008716155300482033205595623699101770989456376933849576304146206565224281128359416363652881489181076671253585029434203925906341396803430627976776954584883812047260121324914324432431065774037767525476673394774338827906428337885626907206877243163241838584348194732143117705666770606050191545568931034285097425857485059821456700881754779476704115368628811249953916450046242970189471541583326618422055969782910031398974566397778468012410036312041316965197475254754106094826408039047298190437687550294034506592978182173005742754158194190490744369869609590475777721673083078214190353327979881012454598200079030419220803002566580082266568206348915083107184981905313833099544705542551143493532006506775683088719342925324298882331129709583257937877508245957471376656427717843195106337862776260406154797949195685807073682012988636454738325644087478770667467345350518833883434281952589129545646312330936211334937055909357781621946635824798820598936863309078514023702585967771735137009937046445105525573383141374243097353966585389843925238032571816479766366510169529679965556092817723953407731721653121017196424886852799957992224235654531898443511364624516018127895366792612494662635311646566313374219715771262353423309488440522313230614457932452430138681318369327940551776633911213253675427677891688303972665997782802545344085107264179033682450854921986047121201849817225609525386002909964979091475950767709515968905778321674267488197462604792123140390110092635380824253117467489089190284496862119714196664171456148436485363997888805808369292116479426058380009145111538033094935079590232108894617923589824656642202429165733768447806198940037834404522150677654299265405297360427555255176684330747334929216416659425084180925668382041184057757780392756478339477638715657563081353779034818726441890901938093845374186754769490489569243813769994224969956609409753887355225572489333512047899859479796455969704233848821876490945301367098037459245539031794294548401173741760107534715029543993195462748512529935708526110143984475520696700351936143765589575787820613261122336633798956350968671450723213368339402862012814941496715319776124061272392165451682445872720776346909845815367559210297598957071558496664593524074417705199750370843737657823892883230797761286320942658728618092385850144361106933058139115935143876881819621788936542152951241888298022255555618775594520146036912610834146637639144965460361350045710542095803320782791657916836319539639525862752767398641769712583849224555379472290411437794452718097888477783248843376855018273687547456001039423658046439410792705456997626726214120603206300614779850167943652337027312773111562744620825287209094076656405910554838259087032562925321511876160719603152229928933961002464008135900142049266470548142302529161163554512808636360689224753585763266351402898930456891673685310993833853153804637244400776228997743275164894355242158991801684872267616618025026208766661766083877366098828402967039404660384770096042549428763900098044451351521741154014791605646824660765674170866215893394695918630805558870754096175469759825146095251445682200184428190248310712897924640586419399511736784771187580960795547332546274407033632007720360399097075702871553794541880110850788290762822290094098865887457416771028042491971290214557267281089406267263769976246685113191206532758646849643478670347523194189026501107353176006454353089525577206581016942328962421805319325842241291039809257197207872659318085565333154622126577553854996877701085683992360051485484012916122860977298362178438085463643361861643714892744591908128144625116464153507880635644665901441677421439395157708338030906123904942145298094463460293352837556547872034898224762285619761425435851062598403097410501334940705723927186031372204058683099938451569374160840670855777054088945909533725358993205170504366632472607498937688049181900349760071099325813647321002260750092350292990994857486546499888697827585210367084272955681668825133381442086296559879194092983908264256924252210963448408875007041092201726702352406246172993346237005035323664419829374026311669867037613317500512646271115076900920591969979695620514894160598259173606259943442755249490652831798500924741958142399414724827627721510596092000073045061962059224957524807028275663725321843591667003751542397144939012976467108757993561857753395351428454265114096990093784791690377977396271878041103198833248477706358244219399582913902293547734372766961925845480874737618880688382932030178511279178794557440999357160708568693016223045926912715441618240652282548709263359221038606216605184047123013694669322252595560741441117197573599229577834273476416820257275214742012838250534398322773786562823096559980658007138977819102803144961074434563908557037397200781099502346074107817232685364498693107583932646803194643615171552796246938333046938851242987955829592329572361955075133171107346291954659331494717177555758522829331716546853555852702610095448690838546522744873341425186912062839186696738921978807782915617045048719544506972017342658006721203502486616371260470946788241192748748406326149068499228511032212663288839502710357142553264574222744577269024850503345813902560750549281871537762891851418266390475757064083778205774884061695508628058621013616007504529085759749239491710548201146935146702015905447013980242901219613726562265166564277164742357522659022191835535844746641075979861938437370180968622563138539572838964336202902900927718057617886239668125910015436839437471254842086586443171696702040498344141627976683146917358955720839893384852195933067106723939488574394808630246843569701081420291949381921237291982657100141302012924805902094816671145986668251203587779757815598126816502157918232158438099805359005378199170332105021113196360389695420502502267355964714866755311683370962762659539172196256167158873501207883577933369854976832043655285042453108956614689289657920568323363868242811337179294091392981554045931963906607905855471524679583348098950905304155187263739808517271058259136672494957342806124544790995241923040090672353409883957880385294925173641156153015544668901393761378699053593022662792262253279422110646934730871058429748934838148853583646500781933219871509312383405150744047581480140719315969071739148817484648393043903542689295423003536023770494897291568609212488628139004654747496978619473594530914782681809432827299683516549830858940519313109376336009585475260603348940029005719782998395896556734462720722317133188763371602907907557043006299158441664585223671955259380515413908966442799605465643625491115633440907045034702464299895099364329920369338537501925938635609729534349290145566518945585865357126885876497815506483081216659873804051442690980838223997886992444576635617503558502048376303316352132262857717744862695969840833284596193314718825464760120667428517071502760639243057448535459951612539685307059482231544552752038790723764453868126159966357106200919550549986170420753631449452275175858665355105531030985073629895803124751733948086092030083912387586242448512820685642181179456332752008266307489604632539121281820826069024830548389871273745758366518494681733879402679605149219482154874259801158280989569770289004132398318721123486902567343205569896193222932855368652305124628273764642859454674220044457961830394085040665659530959655793772903219037207559720347860105547371931710977653585445569967680986011590075191539050409020667194043908545761272360915239626991509059017577884980795947274613353735042840757212970403019189559056280438817573314401910705406326840029342308317593581857616823997558882383401750345253132965682840538578374833605696680802696216347371183739078818256990282202403188867751403480011430637116451010942298505473026447099847959362410740128229973611548646037618530381463058030650096053632189258164661423441489109457846140791090012274992043293072698057911494196994135859690444127081784336327910257823974781052646135629118424436122666354197879518253548204437149076870734648145313960249517428200033684300256454184269281087340232342246001746116804938521849800344918041541575297430336093608275716550705072092791358550114574947120848264318485235727013018786663959522404760221385653995275327520469859411330340750229225070946924642920298514619125824289944393146958257671332614878802376500011470796039944951219452723097835696742708416360969822352422650597615555404785446318288850855781681040231079669783990555715624119107549709662940537768321146381526113957863999747771024673725533940538826227106947441833162512402240492422267448934205389937947139914783016336612517874453461775145444875503972708295413650903347557356380372050830435381250115757901656943302971343676244385920224378249167793733434308933936294938382312400665104390375493271586798558376606682242147751283193314808736542634578168925464673063757214918918437131222803412807029733995066788182251807722118039864438314266985157502617230490279614160458271366061404624330186703910321953608399534821002322054287741029340059744575382091793875649598869319226739254183149259821008376585874515624790125177843238056106103340007124977203817179051350737046667740623048118114815274211087189830684056788508689892804135562207862348294161286627234825752959344119576528316657468831556727207571237403418360282112739369035747025848916702774297896437182303447650242067534616989399503046606111167159943159804088454752578014843732549198347921025348688047157454969632205530395677884656011304136309424081643512754183449316227066796287758667732559040030571421771633854745375950486024578615631536736847682247798945061001471957902496788221940447022240257684204082530221688446242816157513859882537127082007400023573959362453631960172784779685326309371890675803950584515423930889691516031818478363388447522117193042806504402019263961002933455092211981606185443693213246921422484294134078498263328593422317994792834702779145155088729894936875150984451076329859945135574683724693014175468227200061094303539545298561904718575973041176092845758925780504729622080449349319300539322885210553657015983669603616605668179393924171473263205227646699119014330099110752894549972177080456477731165285562980045225065201662856704834037767777918357934093771348971759477313385752676944185553508302741202363272001917852788950582739277225471420329209535918620025598359289760385974518814232543157905607624708488082981946068445531579364452357707737689201733502283721447161415001366190376214040959157252462394847950084986429541467533102038680588450151056510977572419137285404005033701262324743587023994223225065872208315005174466078215859699987707176636498783529153305142204087004731509305117989267010812988460634957610319439250941188835381559991317944369798089970104863839566864297026877435047085704140802269241736098633697171089200946386809464703657944071694004898614281529996605772491409866650456534055541052295058035314699460052387167692814182186130727131097145150442169207933148163395958503005459132257444478329021309996569071888476729890192718723996440374001464078435365658543121216310278145697729988688100250203408369999768901395934154422965706101339845715713285342729808373778099098341324274680202431918629604431027245906167618833175839963344992563365033839696857257391074505537767714393192112678164123239506247127521672317587228946457876051798398964523492758655917995390480574828083863776900628350686414950563435028120443917267369320968956381424145168827694571900196832841503541435443592615673782659421412300419377010782716292804882657044916957000459203492835804970469446898473845994507535544999708716481809673070321102980704822827004688370940838364406173827768158397573538178490230003073884673090299350914012436592516538766179114507532302757888072912156798502913626748482955482607949467124801469321227970343536448881723454220133711438813523640058826734969206216672110229623150537886518006514689585408326853652639787833048898116315003676536843019502481425505728927094862290103011579358983308917725901203000261764694917666594992139046378152573125897596153305765095700983190621671949516545768716809063038851218695889237328086154420724441089271525068291338661316917101885022865715177262217464133757095853862431103416361644499941992352103310456175837844296348626618138330814489428292895774373496196921031477425353803651659193245314633453285218967125506589910739704076314428885642010830822267096743863629331733924205486971176363945153875280809082047687988596313535898414127307980805185762991724213856892392805316057463390206369614135656192760185989294684166297193578167019455014695097359276142324541292641186959104981319175142865589409705661409677689459666622419246450262529341483751549458811286110268652311232233655328438989924852099595290690539265491072316062611410403285398077926081235863614607851697348140715416376564881358257693845482350569959243430463195184231736494334962318312632963796956010633367320131126733976584510773620093670961694768360144596868605279656211127446423175117154088018623696422040846435721753144724467576284065225599265517745716151643603614882482261877069809256991846491196058741609531180822896839433396756264797533921047245422396644142267570701490997330212464507774957301402338730479184398516192931900290475180344581832203582183031746017935348113564705212256708029187695620529893838781372480769103011215614261424825166006262301247186709823365800146038071632264441895197474260721307450745484175113982388665310255133639452026942236271575281040493668046626727019118168626895659272997744833597948925986348214935933864710780539844450219437530666536916889069107671675071478495482329674982651172409037871333322805337969252960835260555953986555391282384174356773742044724064160607276877333954845477009332122121131372375943781670159524639690157893667351062034568697459978078253625945299783727709496461430761657157769867994483252234943303028597903315401802810987821853346239345553475122271277871492439402712705772524238320382313424348166351820071648554970203014052352693070633429200584623190875852132491579459458233819072428701348564334548204338591083142863710105055180093289378573296183029269146120386329636541122905034974251079479195611923421594623631821370970207147293384943512547668184091252782775116174906109498893174905146767050087776214324643899131239332317833342113497873600140290817591424151773787807879276132425732438211040121753279513963945212149695837302429076354030312541401131107302508764869507979539507472894727430133108611383489949857115153253672110191664099639642890541344468501828075741454166553276821065357229847573308610032628071153801818051174834398727907504060083345065785168073411296208587244023145221647952074130278768331338998715132328798125703374852601047017655043233290071336113916306066096557892967212710708681120136438489130040759793446843370966935871189855580126592524956765086560699042165934461101428104713795484973029693930395830748587981293929961718382079253566360536153447426364920681950299653183450944730828370415148246663686478267395359261021239659565833846802220095631705078018974490589956039238973200291583288726727997575805335854971839942240376075772507430611540708340476271372030518713152922422233956052926088309844286670768460977589034903797747212359860264886339058843109114079522150678336665043733436083168297174730122800596649612636628526501747963169982259685558644715721047081645951192889032323976152377399807260363777090388742346251426205382326952753092445043359255359098086819568699944603631430211486515318135280373686665342505002125190957820177202177066693084224660365338287464398260810102384623915207263760490189530332550963796342823126726405905840319297031052847804139701405444473199677193423632431049330713966488840436730095924933447184968400103725171401469186549109971396961077418233708349480960751697399485474284518782440773097106642413409164838520414776297793586318058581131023339987653142271388184547787091197420684473687602256641805856940123589074191616953154285659074366522429341716282614312675793790673622663213746720108335027263353832703086968082432053154435495004099805188491812615037281815393341378213849384324932722539153719435347130674705926137158978392052992863969224518545781123724207012937396874663100542227347842403213611416992985409864355063889677445699951728388543339763180579413394509732946035948699713945399529187749368489414411894553984375304249547744523366563787975650703887603498158546474330009019026708205635064389456431605131960019235014847782099325049199592684740721991667191889869549103930620397108292952028712639399138988353911203124784761014086002120863596748297774997704533605875460134513401595821409408284893849088705021512371945039901666224725144265117848440325386671026058280531677923254029769454577397512569373677910666420361003703727957902322651755511538654905257088606787594393625587199270498217374773228226730962835835589128968948607652380863971261101460598312294745034721930602226658655296686307872985821433602324661634363880582741134565739311565245467410010227702271103717641189861514110844209935781113703403812094858812086442757812296328880374488687558605859765485764546841219578328965330550057894294218836937215867048356221783057864712282773336547799859874366435073363083699422623016703744049994214198780143567509835909933819285841254844896681733402036539508261458044268061682976034832235130707596097514448446071965179785582962419365002269479892882167201903104040431712593982352510890505622112594640731978272227547168019765907658610878866591187698951508176690610210631211896180335460834526623724327662803819063391204731731429191649882396438215664950929416952629271408155084018002172556647896485459425566906288928960344162506093631859454247932270042166842699668564283741014951969423941797781159884841647632583291542572259524603502926775961739223799632539011001744927441717240647293840458071983791165416417182674768573137901132912468815491254784413427572065180204599396815131057598762005025949102345186333656398155343685875857743299645986001545633309548344772943727490346670862163118623154450626790773171108976570237504016934887498692458541131844879854028454694208599438509792220991422760308500367313904202528772523182467818292391811546820592116060901408600229368453221506644927879910061135612598011578886200911597185749489878974709000249272949282361711981133186042552682999201588332952636064690851907282105374959043054759853802083200156133888219106746953093256415260431402077099591294120273006403023156643910557208655399790947300029969807581853197353443815366471902259998268659356514513933430036374204318933270190105297115343219008879361738851886618568962152563374847848326354212017378067374604837363087412727374455749695229192998332102968562803797189611100960302114304770411916815999003969976265445237025219235439208758423897622247876430973010937128962321898485234648345059069866260847774179288293978816708842878861131864770242548116800006619468096759510244434140911778292346372890234690119675947966722851071381700108080165724106304674440107911373795412368608680511344064401902430550952946365392261344525819241316279007736045675685376246642416632355651610451654383344865428608070847264567791140960659951969473262972198523047418282519236502091796792127857036099516314346789972738276918998239382368817063937312065639895987780497320299800081689198566491577916219835958427572785485644121179712420333958586444619036920094078023497739425830014653032852385036718248222527545039443231428830413066863043983141423122860766531926442615844340745218589917144357637743203193698347179816417597550059445237116982913963749587948271851693620072781849355873329791874694587259927693138281292800884485961950255044500219728739710632250212591448250928183946297311965356592867045909687381471014188141422723101971056833133826102065106731532724806922361683886251320065228907303873372589716787404025465327449615215121901422297549594822109708239006346871139879716497328042314733255633247213243981800812946321385929681513655493680306168040668358572321184312880881868756770854535825596700676785292184923592429267210996600679029438492901785852868674528807825290570832830646870482480053575942348196863518626815877697274004495092856401780868497367461891634629680932594342781176960512525154959941576295583210197864691662010923658146698483301609410944341322932107922910089158335639067703620594522506752103007277273599148151595120034030533201206019142978232464972122649155355167564518070474149721809418899716883068436893675223539138455635483327729882778765895379261394659138176455685039068649540023767780518963803481744650484882226849294236509301843182641837952493208692351833536425447401581669077675003805147152685296853996725929757154821850825614539345169672853860090250129593488367660326249684579236710144319457563861492504452616610340066471377017705982709039403441162191398720038860924263975424601131424143117719155846354882458542119249363100995153748217105149432727346536031334791624124758333141306828173578529578580295290671722002501064568570672916511487881984823444524010752777971275022965462271878765919734849775387407963715098676069740623057521250673060962340323318554167047036797354761865206527547646711577269424499153330090132823110493479017112937975714236383809359177964775438881471070949369383807447087641633672992374252412009519835775724785075499192584668579062768547671519873010156785482440349387583197448483255124433124703967651395581671301137203632303719844213858889615414820484568877004429074213136392135178002579988847457938703940373780194215103549001705530958291876301350947332563123627311612579054180689430477628372829341970588980194479194858791912035452161749120793433186724207181539865515891500686235673000589031369198545957024649112205556434674189927186764911586208135577424522037715437997729313494102502934897564048702485926049917885163004294400416273257034920498962745490324158300534018834696731461408218921119894104754401263836849398496003839413244712196551939295616243069415385795495728282072955413148724094876858521491361247620042350123535131457630593118361621372709788169819664221966545097518430654263904685494284856274817080459150554736749874067475599207859738824664978587228893819278627183078687629839989094350146066734124784661050939571643286158853277981025237204157545391748022662038620755597623747787253378275295896416452972760191402372156659789920896699043928571625350669961038446831391611055006135870122422433274899589444924738194851232066494460076192784201475695614347814060349508167566102883548017099026559609884308905780834960617835508413979706528509107489507282701974376817417647219296893596320895603112441528047386192037467782289789502651289581281086525893133105670900262726407265980572917472703567314225953082229178747578994055551543346313358651190552068698477274862651207322621166809064708580313522719749454459321011993393805191785234215742345800488655454194123942976010035414665804857680567135944660428090833921351422240828573058639619363560059228123557016990705272087043650204948529349928243466850719221921171569663288452688778888609866037104871961899027584886375031441278607386988831088591955911391021466783632776436621192101037590738916675007316719060820257783042790228377411872658706949642865564562191053878474954831186167786503597834825517353713153661777188721151448604028950092151272677422020947983806598734826160458239111292760987113081072597810878538131839123308021805781629865046555598474649375900925254583501951073702757347971383044367661573050830972624390822012814051442067269162431499717581900708857446301588733422204685436162175432584467856215799730991003380565227151329534965241515058177733603429589791372066197312912399353371890419313347859732675020212999232391282714004362171012948377075337782505647035265793978285213764241176355937636523033281519231728251357544657744309988153531040392576516870825980662798748957457305218599004988848739503388637694267606235244173391282631028161734812184727643898940459292272083831570795975823539685800891816232071366466514289643577147467121624232232227734328063617588589737810785965482302348269424651614680036497409923911442686711154838815712659118892261858505039851500227669509162470349092135610453464539654692061636488788078290532133202243767172951800580146329969252280372632081432486109632554453346451846596856931753654811565046365697461222101926552394976031439830632112014901157723280598408102670024227630726991385583185380724097007999794770460154372868674999008908749870163963716185021075444443241822113937678871756991068751038223398189617872160284777798933665622336988997263936852051269763810574920528640471544552764678729259554536105064438520493158319347848527523367625615709641964173530395104946545251233429052294422897852218565923852798236217785935136504250538431519719636493107257676702761647108965619893987444306501053680834471210290533237488689301912765663567595754305556059774761706383033458481221044448497321676831871689699680481813843601189610290397270674165290100049698877497755544875477385735176407173348476621794617939531987745604832781824262577120752184951325076024103066827477794289094508827311815623715934579923307870430012614349246451857364359571828650495724419246898649721202428981575453549863614791960185872246565362447872353005974256305738162604800331425780289169427330376015466777926301575190905701645047518463334591404750922105613439875945091609434137527553497399343796990094821671218732417987567513578954786130272005605894149286674147456253317232729467338532639608320195213269758672455241835424095285623287472047488759922037959781629096803376645295986078137487314761858537177515471578614703082052986703116818053553802442463401587365432042274521085184736122827489272152778327399002234448886413782981842405746053157980534535005936682822481279899824143312529768688282931352628267257398776344564580706887715398866026406679468389273363317102143996088208896316641052471602913555894474341135578717990947229160128425708166094861107412639002058542002252451889261396485753443873355370400029238887368737560982408213919430017614869120067433016072606760597338319594872836563726243230823267233593202943847642890985312512776889145013518194108219231631984278681352244843244947607643180215921244976256787689595311979596249847469822977321176608053294852803217226299067669991684897514943506189958124592962896100572775652419270640659002253304283344973684702088781435214278854822600185587104904186553014711419876150844036106182152878239260885259049759817813865946031552399765769706094837651981304761718599510513690396919774510962214255458471916081331419872329511020923350613829052817614193401613661507796175586746583123941023356222948058466118774941769196925267432164883523059923706682426286532874966898650253900289257657488627036766361666815525579828409553877466962297217475515937560243680238386772178817466540200207633405321198439338553138158847461043876575698691130203367355015931130810934656963886973746664824713864089823416487397437436321415271144181679105420922314205433856584522528290937882024720654189127833255593281050639554468882341335292907967670555765034478069222057104580792830714916787215505137730190940141996109184203351353414917483888685982262295989239386198855565788167873836262767356863798789644721611539117892949823190974773471166004055024098720852368462468755376124620344475721870852505668581386803569365572762391111377729106808985729282905858992963201282126777461120631396835598222180515694053212366670542552243661333636689439376088104596059876043505057232114378299236234269646047344394061715284782398658621488211249955197841216191550611903606209578985109692014925213168015668364653859126848409261984782032049773810392426896330371703565187814757909699455425153128660441433425675704269237746355588262773251422594583123596651712203629047085221842195687870755106742472726175256186780807080522970357282765372673973263939233271743106743886484724272950652876735408188209358894456304885249608588464451658795369632096422440412133471873680513578945937776905659266807594194299221835099400202621519520039173767088147194134714264584771244200342567565143394872279393024108690118853373587245659662050863466307189689249053159067473634869686815587916122305273940061617925618061172649436903311111656460762250943816319856417541182601544972345389461420570680518786806521295306662680228044790770657396351264308793383173519019110090108474625268875876524324496279627986473197856572274242682922878474519590428639800403695828488182244680185039987822871292092523840227646862143575771437708001319308899293133443470827057996161995442792044135314611902133898518554817835378684611254328178260661695374058782193644784162032172209935087677478740892067264320358647538365047045290325112023273767449547598736957078243342925419689152993344950476018134731594500917565828329742095492901752443735515222156164249911183987014261540048427136188398475262600756322377277462781164240127355021038438015591607664972138502457716657997849636230892289613687095857151918921849248366641689666731163843798880297443456406995565119788170272625481985227560079625925755559406240827372093636616701857566605345642714396375111242537398719894832805506915663455513598725421462291003277813323704204517457960036095581311542186990499521133686413682047795267346578610285181478851419410016511628116517726179573858896429907284946669407912145602146670399170436205651579345193151647889914633038923893599116809226530367050951620410661576959872973677046210901602131330042876083601726264105623851413294116133658072149301044752416406787039349760983256509383077705220523794609730289399502257711796184189763115690497770208190535696252381330815270347159442300115980047202324402330011873271435708509858647114326768844664411206056171942935684193765752834203521149887590567187537613930609944399899701960666192174412921646201086396115886596962433452330351725977509611651224324273089067456710259684839560926963848345847728306647485947676923903497056647362351894222878543404705716851428064527986580667344364916321344663825151612706360350348200929212316626080853080776922081365211765212373670685255235498964325838368238873355941940269220689282940377069443031913548006686239477106679204548599845331740795328909884965615135601392798455933433794198145564166341251079373407812590537835862015804297091830741565090430919425099837915427862241987183395351472806121541459045914715927958523538695833159607248588688472453817892310284160495826739820159988612955554948881402501533957040285424521902903965607888079722060612517493051168507086744474958662982868232635198040419751552565703906940376043990324349181367841415269624951059070993474548145244740296457140652215648910019133446483596334362511559404834643966962824520135224730003891922756160064888711480332315004748935477078963613234232149038856338652285171519759173253345911879900957989318437825494604147951795883249438846691276793774344722978159631453303535755332386827280249459107338886391179400212264032998730730178848834388657765910404129091350223558793207227327834964632477010785725156560969451462118641547828154873253114829547566205593266021387227782478501569029443767850831199368646457310553096622020221221411060616946031514645574842250178969230938551557161353149638966359002010857021181118742467853920264445092448836596503882939470823090298599332977196523723252849411016257436306746875155974826109848065211274732279009343602488953773450363259957077252837808988054245594462826807144147200569900085419659393691790049044119458992615182520776242487132269880523201295021575204018451250893834792024181196951210864482010386217452018366587740649589573702425271889389634341435619055517803303117786281726666764647255951466133403049506209130417163702651053857893372416750980443750330572667098465903425178366405438361642217973944636484004137282493579480667077956005836288980872329016252094229358881745097564734481958064367977389253651930105053475899060113791738529992588761687859409351496769224407710250298783571781981404785369833372818568428214982659318296253416726848765385309246540243369186631656761807339121219738641934835918899921331323018483945950935152850183647002411712623807659533418722999884948256510262575321512456687101246386226199067510170560659674497426323864931069982705741800098405591114222703539498087650408953705884219929052749285725375605802960671767761108713776246898669391085281528015727427434805479293213082196004327640138401242782514963557812062572765686878180397622737202923941346891867830289052741966124204012224427620508385616262758347962959308735685951509102964319940574095424765635326164527546107236129016319639996759215511061754916647049647839433038997441461194977958466054632583369339068608601566724373380481909326263252371670465690851830056638225459980521045289445457740341727501992559878740084126805450160046589625851911766890845432471183751273494745507914635489136884353486835658431091734164143409863874496433553893932367233945661723172694844352644916827475354888427914324203853776503736717954887110093014096391603727439525224727132062111400541850020408019592780834774887449283828696687686022864069613867016587838024280894846186097879447929628162034291974691891143405031296192626999608741946381897629868469479568056567988533444241798719284998052868507005885464039160460705196586939416047697321542133185343404707261719118773856036999060445269331831765010798166401325683435269029039897934549515050301823360468954378950012220224291821867273876257417955555157404496072293594841694341718200813541505040120923449280322076489419687473176618935124858878203838891216289654485004681656144833238835651099931524141793605123489697060621780808905172526393017524891857322339946323760546390855457482365292675497044264224629964683200960901584903453811108830791365705131592079465100933536424962071250376008930709744026547711538704905650027581334502961931652150261055124117547546202152417959702503099929842875278539486657789716248335692376849406886219770363951999910558173261805244868203191244161142265621887149677113888257783788569587401627217328686586421931955194797224871556104453646541076994797087962190322337177019013299741873847504983326954748192259437307267062015381603179002788248630725693312256131003515247178453233670929311468321157316339672584168464590091685443576037346449290210999624064868741759094818234704144794099105333074757277859084731781878438634986298371249516024661522080370127106634514019656562917638393623542134422286512792297093749644973147492428910753689810364577118265189424234060971465458813513675373168731922940781518596564041481203389234708183196925549289758069566273057467978133812881146754497653204365562916927175367369738026329862141907255977299160648599071256167621852860448880778250043864452772599095207256306808839926402996823919584427829910083394565504269158407799412937086357531337122833656582351546266724088448726970064310522133093796537178335102378910374833729211384148762259539935350487170356556029552266620836812422692923274818441186822321220339658853878525295538567992482192079783243206204000124531844492536903028108247640039103750072905247654722419728665284541454876814229497034394538023032521450776707923364840165135013911978734216182526507512383055699196413391786355459461923937745289134526762305970865841434309849151966546401703508330291543856590414575480377543494710364330145395162372425721525355765847340964236700803350626114904853046667655557546411784101342188920803616645196246266874885373400449367850707743817529085810310270095742589218358723052925476641277749819684819662278680014493034956461331909727375315461172471281169916770485036400831315164988099668186949478240084198679808918502455383889370313279009613797253230358506763214107674745685321982805284220752003792959354599023809591855674303186084775752102783420384065933818621304120011846388663896457188402487325465264316242184953991005568934827725569221465350018613923234129704506069565050665317802825865818621641166605826152332767139563038595175849755657355449417419999190499327719794949453984000790414073495405846050888572948199194555045708685659521498231604949756185966974000837687244268269013137304043000351407155690286900588870224795679882388461297282834249331157838132451398708333791447072815919700316047412222302661245867363659901295922595834819220905472583585131835835600933992124360304784212664976375679003701325796149380767754785944087711447659108815620089899937214718599570480366814283346977024807280439877039883703654425623283348576760717473511611722911177864671883891498391442845784686269983038969106597290208742563339960097090269709818376816152420904350296056435329307824056344506908748628563082594862041715178723985118928153300799921274492354354627038751963768853541703441763585211943068233992375490543916958413533308192636221477499753887824464039061047861571647771565063789287523986006386753966825653304417627246047121938564037122773520547332319276304522181252489494327134376668844482425526049553062524385303089794428583776320139001687154519279999324735962924030461489048767501433721009071354097740225265280656844730317178044452354633942508122338625402094519443447353228539851123851040573990986627130191044555867271178682225687345936549865887952097969171358285816762099821973396417513900052040130398879114021556029899022013582823221602941873939872255206728462440050444160553427795366592201569353806886833627331861206315313684708504256463892630982622015289618001596168769532675281498562258877268543384190616501605512895427040862303114058681091926184034648145601809397004111411896001899198570335230292420438114805197947801974477896817061122279766285465533059417959746003094063315331419829438604855990908912441667750890398227678197867256175881963964730584839779469625151175990840151029646941356326515511018141090115566373753978582030026014016543543402686480511648159340240446939917441917883100160368628582472520080261655721213915290695433944397888470398639446598564649678417978656306191542669294379081727152088725415027415536404717883974855630241989734230321429862454479128895544942647330718010170934078851573081507629614197862848910870938013096351036658852946509459168207714464000743899048416810471215261321111428955813413172836929346318456472938900557561945024546429462594263871596984622550911973361565661154544729508424684120784945178809151337127890716351901101295223552482550083936449775707633241071576035535956723697302707564759665912799897794340323656664493151524919150603635964944149387980723893760442153792805014107501456259372399628118303599602714512689674050353380121865362115261232135356817129654565474511373541700366035521548411850372579416191175863728449894125989639451379469222531998835936916964830156916993686507477292557239328408194540829891135821503148267416915159792823371921847074083571035871311473879230782413753505212975858689836996112879835423768535546911947139666437950087707271115421829326809175097340842513767644194551403339389992437692093893527680393294614811522331316916008083343933843574765336830191757749112369380650174336118445859809700973995958204279470975961875942304884536683383688969767311180340067004516202344048751683695954895708350219154293071462389327876963940090263841279544223037433312151484043283683035241941969309517634738759166268264845384145628492963284816331718276454244455106200796816519574166143145410219493228638206796897842105223454145149961813872771165086057240674549465770687561173975733571781686383113937548716388624027227605084542122285756702612287935299375252183103964547087578206544394979816782692945168712611214745706094979802183671352276625107873797773364179020583982469087386379944069025896403558401483505293913808794490287511943646189826264852411240848074448215265276420278433740417313728979312261694521365583646982869226262491542184003766369903401758313853921145094095221558638315629170766057628396063325845546743178705041399750477973146241860412790139048372292863629947045933812024041555618076768128706169243354171554100249595443673469165227407559700178092949772486967900717538285430806097296052043903921563220766512780382033405410824931905825857539084462109292504674786941099555069215386486749714654531754702995553515700486092139598972223516583747991196325830228725992886768443406596372433293520342897395029613506052348706072701947824053091531856137215143988460800363322955181604945661524645237503026151508484928602015893762877286630442106344996703422290489555391165685527992879884929743730213480763464871475712502299775248362828178396054267886857792061756819724331832488028513827141959341178939661722719781684675552929966760543365044858077127481125071208267601158084962038012486744063297236056705934858304980358322454763270549163772060526067875039967980163828488886621631745380044602378347999949257207145451981928581560221685051769428253240000464411178578111547053469435270583142170161769783941677937342099119875911453531690260871497009617317183337832397984965090145102520498968640606531952141465625661864412462801063838228057701715366237603690229045578978947970885963025862006452853556676692192385874058230757723393886217033379599466369454341272610143235105411103094376293295507996556982862829926288513328999171406658780053567315531291873487137321824893463233672270790836722128696184435732254769076046897829764777578583373066623279523624149379557892522602819998422756284046551579117242692820053149883036029135875021350649556944263249086536403843620573802300641793413808148352052005149283106581378107485975580655373054285228242249924075335401038489211442203454583008532117234839730032623167146477448352973056280872498863348475784530923134203840310592255737594905925162236251900096945035364822303182203007075340616697479317222779330875865998747996027233033082899187257222019980765098768987266045985196529864794663907079046359612901460756350068451775544116827419786079467605798513472325095442500217285987333021973338083607621393340123724353520398293522187613454537613145386805613043715728374512167941151682818802907334096052400556396563610924208938983777393955484588582710363192704007195352725226642261386124702569738712737650726175380460989620074118084452172660682279871705819391535276838974747786127429880901633555131409787768392692056467991319633688678299845256420330130536647519452691140447494242002894811832418255165552729223226296618951551534150682109045513469429078461609154106537203627751899324174548045101055706371363249054987724496627669243778389009511471479582214975824306019431311661174380954935092676745566074572373212805768543372328738205889263342898762108494541210980630080960969028866479505062170426635978006290310487305192145913940651718744071029897093622499175381727316648414270358199968935895810919589887505975024524872634907000185283562950149655658211702027591573207167308857431034554428497991967077116815779869732683673713456027411553163884973837003719678187619578104353593957949864522479878444050871993534845341105150084706376977802783778668992012104063889447302910946308614392929552774982493110520108290332306913491524033736799376575846330619990456504980966683312119506445338493098850813331877021688493680985056272566637940671840241423861530221535180571555599792302610055512821471981223473894490227857049054928792756133375623414824985383853062088027403993497327325902366398767470462112589441617343130271063233087066185317667535527481115183561552327362592440130743215794357891858247503455837483930888772062678932847379596025522654391512812258953826440413106775805387734290987989289296989603108178202657150295921730513560441270442187499951172910424516090198252730090333538579460659239791886770356905418153315834090809335890874103795543960216835379026619778110865727888299117427702595105870043559075194093015902594040329305820473560714542253159443863102648983201148430128785905557640583689479593822326622899730014285943599392115629676854758017547884070892594559300214537431867170555226174418182429988520260555717085843606021579620162262047531323926076471736451728803455315836808535289874907740971384118557952301270791694423652499439257939599410443763140190697795802800933703152878403272979463339543142040749931382900927321715620611345974794071881530454517976256585733132017135598072877740458029586662156798540203404063471586483437954928827620547619464724132291394388840366553819300191456180532362497154935156271398873248853154036070177428469080167852638319909972570606564717715936947021535854084302698178586526484354792424378880604425914758000369419654400598331383025046808774124827067336753375749831722715346134999416005860222978184085262769640928149550234983686483535731595703892062483401952773404997167574929160977256118181069716389490077016913291481532040431160466154331439155019172377272547461217565422175815940282073015052410042227122516994100217484981610592621707030417055794255354524147250077958273215819805526199255793813909897018139414933913097992350582523700520275122927249389626447139880234523153017732278683788812047842342993786649346567560803466462297784237356875994675216238637787377576792935814655742569228717078759938156791567155477245038983126706135849649314745159103748068313862233046815344142587244110470184629929755818594430610484081197750147198160107593219487560336953373620590759046416463894138116144625766800135478632088143191341413841610036611498859752070107341206886648863975577804175026043589733192261941191531619722066311787354910743783431045368743745165778934128814030891373371669754380933257755746539051544414823338824164916048981525272481208129317785430147577820521721626219833505021273547244403942780237218278522991641869908670172164563640773376606994827661488346864026465501721303812262039552133269434985207471586459533803456698082805298477439133746254264800818976211065564818976976256174920013689215421372539850113788210234830049992100157645263935923442250384515287993831658071667857843154794772486591186443627102801585900782406731471798960412276307106694605254565624296173043452584229198243295346643566142766864759574074631693902728405259439867152734318995390994671588477341438801128847159386795443988333470852059748904958021314442896591601418816070356938802126156889020642183560807031481725838157009645413791348197712704788524338515389458134705388987464599051993985576968957523259444764149499204461247376346461685615204291789748142353996271208478028827584933823724944885122522799608368073445986221496386196622277822392841608151370290556543849212781370925356054454219457372184892013900114409685194888281461242284409058087888697456563936977335139271467305811029457451706621015817192142620014451234475245444150900941764346285353347869398604839048211593846337139383999830310352489307737225682209473757919208277037307345206773987437559195934789062673276569352045062986373514973228954907697993159823900885521515343232115524008835678829744705605659482598424599557298415864776006686895313220731214646479895983219954676311859371493492347242893173155874832491805665093488047401776395697273400345546198588387580135225212919228914979242838898194807199163517966111294942533234261858581320718682598693212825796915223568230528689069106999437829662633347550391449285092206453263501318949020854079752559384252032345182283402741321354301858915697846180515789857924271603702744286276814937170683812858117995186727721819270662125004023095684365761701698154861996777639566693597833490849676046047458847035558377932441425162237870596943339692176645600533726978673481959871255535573351509874146475199491469013697258733768793997153938942618913800437793279935669216406142240730547206257793934743446622933411226544675297669395938041489333953757539877487063560932566575771930806546221782996909151634838748357760592949601654144773072797394456295680647617987402275484100873059037225898994893443182205891222990480321562443215948953291777601294378692725454280717065040635262468808581837282913780057770201959623392989697677757671793391209667402759162026716487584025358893271786728004075429799279442334167905591844750192633159126895600299089557276747816241266773519319643302274143490574979444836394839713999443518223354738639825732287847815966338025656908191160616116185892649225111611546772949605139738684193260369091443584333838104975336012761231421433484100497833923765677426619007807275689515720729161971816089646952760246169219380372588385586577951201894303742328723939078972021677840852052369570900484189901160433647542513997269046327942869969132741093823847951270842174973331376633904584968750353743153855730176524904501595995018061242947486891921928914067443392501065628726378362039060346809661517209447085152379649161940337333968525155901050273494573678147454688334326818249992415111993993653673991407888331809418028941443261016015473355442611159924004312861651742153634831096886602519111224793390168467815190155280299434073108056501654186565622595542476217634633544478240864374751329061201855076454786697899153758863513813311569165151821970580626207161342543002869407562672016872490056111513581564018929023487449034753241609117154659492583433233043051901840901305133438427012148706261070422395766056658557855538611050978327458134124677298794220432170041735720369931457403868181193943063067181949945251018068080686642265080846773202201079147515267699474989364853745152643040705851978517540672330904369681564585872366958930399895288132624020611427067775406911856369554069263879054654045780031109019971996208175850647067431809465053008534710355259935000718391856715361331540034589085092107227742476821511272636709672913164862003983282287848196570219038482998519204307506265451116385892385335040890154148399070250991683088354612809077005165325826367432014948062647955429863242387372975924029968861253757798987226546590113061419364765553874520952200345902106431813047957957135623474828038430039454244608957598694457191884963316229888504173408611949360980446903534524616087300509286711769700273824833775991072915376909513670843237288197164077672379391378268333287876320211612077062435077519508307087759026603400518266994988437080551749715589524702599599163660154786620932805239052834029780018069543447878142971785507275601723045399653229667537407299550130978357880053624173900731395206385507375128743904307845172226322579350472943659776572569092446073982017829425533422622875762922944259353959220703523984908963505556878362889849898719977494196528184079577894910185020848392305999041829595735917911314544833381471602145592562480747102506598464369347254408752311178755574569288421462550236396036046478538296271728168114857511835702600323894086989725678589453872085236483579755750359321787846520792407620258603434467953517640989411366367876526467147701188437904478607547928883978192739846742319047416262128808953143222060299932873536315474168936637426487955820141162559674772638951039290216223902999387730214603075374809113624082908892112196491553577079010480074229685662454329434761155642239330928423044165652063114656878321408872013204027935625251856451910522656346479720479413333849869945501164904842693507162810172363379264703360722096966760626245954433247081864259719712963238225115854185390007780199272628738122111537917604643866608308493641749467607685482112357824514704706810909700519212573314505752541524458806450497622281894660638287191292126623031040857976669214257385783693911819704405544337374632993521332778696175735725042819929833728585072501067804036952606187835861334979950966202219433068826427838918077178321849954449765730626075187540421641510462321583985189235523660585784807099413091130250730353684107669306984327567373037289379327126660628546358512888297150793052558930170217176402489139101488236118681624753198138611553146159397936391404683065680898864015981962545329925979237671168761405165474121143583951289349184488359525357009479807327058045319286344551636807026046786428629245122322779361304075904086222282257922624639500359104262100137762063849051784536906586871925657920317061028327334056677878576335663314200851151179585993046863413750548775341581185702888510025562247591560359434669119327608562463963794409273824925027535325889083366543545721407681000299368735582319600016914869534821998127592480121163989170322321390451229279145719646447487105437481877955690614829929228541017805855365728315499916551552709219033992786320332921887303679979902740145617269129457587285916711684356809520007500660165317102382926550965031827064347898236943795071403490600323219584241370294243350764864654685790296836969920363499152611060215876011747867609247035941181499384807850211857277314923380757040721492955893433302147089200683778447927236104905291447571138905307256264153688876452858877539200923859783886107772820325683854504815708856179371530186967275068580160683865165502151794565619051028146712483107997066235237505886885845316684726788386312853876590797101519369008552144902799833997572257188245527709893054083349939284798127135024549382570255392640944987717679506836019950685313051929468644733381612002057207667886559374878684035724721986559850340472186677498526701585263304781356751328419718807690986227282411954783102745363054206041565315609971692121724230799121175879117602703970964939075143203864040123892797373891288321265696818697023309274417249017504965633348564939116897702930123846262484783575444982058894098576484149699418076065102910412865106411952352912202693217970275473844480616552508386764510602000217217393158167897341589627712891986868623912660427718842359139510004653013822519787110865142168731242321046576669923119450940302407393806055381468187938221394722237863267815265408969821062092339831830636624300631480251481649216230506206840081230519690037496412374516314134790655341423271721066179264215246089780771255738850164579621212267581750755232442935020005952788189834620246784757915355429780181710087989678878232746251790935242323820940509178161293051715091638768334265864365774154956392405435968905507950727655206769047921945281562826942981639815795148078633499920660073197361361863060613083612683119977020888481411371649693443184128859115358190085021830709466024423174113915439949216632461365563078468904563850391517423120757219386276802456562290479897584102451660613129373302631660876944867332807037828668901751722386818418935163644434639545020155426773836032611841643903460401878653728607110378840904429621510489602093157112448528263282489122061211364868710314762171090103205568976553084333665121482543467939803159853908603340958556304512838292923104101247726048994342385717524382361938903298996108829678158411517624516937585339277165366922115050487196785573071173291182549842748228748915996437636594198143987652490545179909310116182429018549856179770703763784775033072547988477775316074226347424408188641919498447241163414400774262813785247646912145667079834215549838894027096920297795039678064823372832481746937361892454999119653319685555630268417880952877036196617765124379826410535935934993352438683353814814446768150569612261920306085307689151930417124710675528242488505700501051772313140522010298196720178412414211836587822177144908366255351343066281353640837877802253465573530750630852260301612172555222872962232060183013979973442430828734584478120557924970615298642862720829439734091269962189409491341527392991342654656940146142420737917466972005520797579293026303093442708783016518122832453037405900685280102256927646559453821054132977306351970177326230093780986698918272155619388810994932659206284455262262049196061346402580701407309258198670129369633702414262513713706848159953385047815331386537489926673586600226032921399589025745810427722455262098891886554806700628314720249869796719821444391595226062466865567679018050082260106205957364032695392316665213804053264268448595402949877965173894413050740969136342412666607324997135359847948330006014628683021727607451414067948824240102472631226110986009880217361432348727147649098604533073951910395011663880442792266504858318040918818925191526209510654099399301270060979577189181497088615886815327618431783182981842132756911850861868462280285374463145277104709165470238020615203951010918018197026911983509000283712188953544187096010316039739816257751325143564857125125825060708619503145865372999254405599915191442066679000523199135516098163784684601176406364033409868809937572966177330062771764876968106834824814850316204089252401719944175944362510991467728853937459495452763622457139876458620139733480242761016377353163667336326782645901410753402909370948807292305791584246118456029698410877195167801795398701509128480764221348627049939175459163602761102603741146841783779370392953101788006507736059744036060419358299480315925435012740184341107551699095984906994659882108342733250671248820942524663715677413905117403064129213589981404893810024096064379360770332743275881827148661173309070892450481371230687683641600954625083741650696067616980597297678177042138842254264018469332587270186073726818566369335478203196921588254821839329989417290166960344915809110014304709828709651398219844692764133455141593307013094994676130322886197822248548350872911543386405902568239001306417268597574085677969321071916650127114769823335703932740285375921212656807596795814883681767548211155492331256678230207923062156041664987318931243643570591150553533694021264342145956980029542427856690002195827885262933430399781414984047461320912091580310145965902394667278798496425496809054910229422360554429907770869879315476238861118802874379640545154129127768783868344379753060909645452973851786912777026907591292959540517161156128279627475408480349152830924903550052654172901177526320930579504402000018139970347296851516275620479952932603192425084247678904798245549281804573031700273195588390022443249191263542285067886344746828011581615475889721903201131984876689790971356258222296699157755910170078494511137627250215484802014761732465838647565946367285603432996171126556313713044890711931695982270585727267519022650672813351574712393047655371986247438377045365543324661726213268348539147529784686648416952546174359284886241022733332456318046865438171360332076614418403859933915265619025916859190576911039675045900482567053743011699500552461730999249101314866812681052611803620562711349336304598150536967050410927426539991180423572185335826530482697825445243594042735065930033265406866763815303217949820379176801595354116420045798512654687159887506637150643941225024223451788336221154085505861909191092054507460265278864388946662090206662636290004029245671092949858670287310611248970492348581955887292099306019200061709317572070307404057426197829990266503083548622506458719559767527725826318964123738116643537695183784436741249925118412551967643119432279513853452638856193588232468895773213710746063242626943361572989776849434268702749714796721461731156376898176806518602560725144356065163866287128479506959849562336515035836894814789040058355113818735797818756351794243010197398125545564212635210298631139337519204344471034193515125033314682942850355120219797327835494386694684840883105104503921926784038470297558494045276219144310086258413972586411278528130282684667314762269314061055909839754038824762429727478666760001148382630469482293978509407088405281186610408934435841885906343803666678625149826036608077457146368781055163181937008534828400661677547371557401474983405301941090833292946795498213124551349417136323088402498368818701594896322752999910922024602227190339360850615024821424825379495139566779630244718789121087931246997977146950650380366615512240168561862465372463776418777548921836948884024028270824406823022498149969069615898588735630080850044213000111990066119525886593121698126672652978061950106415503386127513040688031496368478656830706254773230032797240071119660143838239101686875803846679003702498016048716435974411007332371619165089699848033513094571367322346139482580973108516946710217849331728786966476298213852685410499970194496907273698021686599515253215192808340459092861050519158726083381791056196303069632469124994210875206678904963733695015027992458790283594095480137725135946243689017191719396549757911545220351191107239280651860866998008405488564076053045257140628486350984112932127241789804147440886415893193928324199387911720854068760902965367796826612563830672741717634568920315487537680419271438236996892241499289169678189474519803661765200585615748160714929306053333373682239698109714959114152238226439973833527583435643129380778186762336857878720383740064911994291834399631395473400960917038970081912393626648554192775950616016927590605849012042225407060175265464200311267857646089070421892261471962477241842432990555851234507781126910092803603016558246722902633778007630399922316846493186246328784158317565204922595774741315626771288602214085927853553733747195358990398757933610219490678089436991298219826164547480585960414951677031433999893860367483717428720802520336154701910486349764660151645641962856743986800769824887147407160792733849933222331299091584711906349988084833625065958967401559337034801223118418964416091388990089440468937676825930226290678187621814813830660293496394873998635033509619948518655458647156970098293745872094118853917113452467864101393180745103010104018475421547301285854154964117645435713056088166652239931187723745812885983697570287816700497876731806565905458963267466299536624339747552583056198388789763256320098489372190960189052415954570972639178924061272011494405514095780564241837891707186577842615766944797085166546909300055536487318584604533047268587030458556237640825060486954369311655282358509566859068789813091642162906934490928555037003615097214877908269407287772592641852721587861758645023729016223059016124190238523047514364981972162680369132033083417829532999622915687464245485568333740280255386550648378477810291412961164307855886904837493383815350626723837132177529963347959073936959127865367785698280886799465658735199937373752806999902281665554272584267476261426343881187462176234197577776822896084714839521668268128575905915294479546847316973079548450496871762059783194287255045266999245812820809362212859558363915127827833435906845247177057324039129455828434001672274711257323873817654045729669893094409056583589580683439243298425914378190816848100879746305782526688965965749339774696112924051747037107098182779732957626059855799768446776952648887920201957138657046195480994857258995536405530952996285816054452058373043147806210993590648048183753932738489209556905100483762651967450490610385562805387911618534938892720634055499187265244143648050835798511963926850372540287087735326629154485966125410741990491996466491474717713043335141741544751441529879433859908104378748652444909530107959981610539994221865971247785744209587739924774902827289629396385354426907642499436326469300414972670067936644929384791842763582699146828475406528578676995152803751996953096865553875438430497639659957484947818019098626810289339682291390944010140697669837149545256735712939239243159286969068153873934477662475427590252001622953220165167807310808304958998178203944276066752376640998968403986005765408657665315290794669812166553641659369274322691949243029743138887286431609921782903839449321955131554873623555314852116929328612796616512188462157873966058881437357970111190817895799517909157001649690371705023940558263682210763309958075759644812591007277306978476281781763852213869439634748890971359781267168497766059270289875187478992676898077934964034783452442625493401088514347494571909818024463776562511588506672091269504714520053993614610915563642193327490380588004191619407752040634234774775565587637677702919778946443825841066035537599637148109946594408752896868019786771480450206249128670993993721158261582305256444726248371500440717643924505534354025644528010268216575554200000626399551307381036573276722814281737113642206639974764393549314337000274896978407343238016936012525770231581884070375331289767645735338346461864417206843300371161496686645249235580360144020160206853410705967339194246275378666002758713054969159545781225092023230070063615544064879223950403848658873123495209556018967851828381192983614587942149136311995449036006468311973435545466239731460566632982558410069114472451254121334666422548367830216115800030379461046609717752308804281378411332768436008358183263438684679047579420349857598060580498128382027524173928453109668271157702425760071291670571185096428126240245744138522519858967843827278029855147304862046521411002536186916484889587730254097233141297291010521770298038784984204589696276242568587134073371722379856409993063710191520872238299270989606920352277812490827777685679299635157022992181225169199622693118158472455824269829131782613051525301273127051957626080335343240047587110870251045383857785135866050629670082449590326435822648627117484823498337486378729349238865733473141052818974735754313869250348033428065114539129185511525735828106677652608163071809233276197323965327310014298907706652163639488955558965222798298318927344768191767976350867603907226935536281745266559020148711011336154205630539003381486886249179693658883738150385992399086831960328593773530980445842028574734479914598591178957122949722022923337433954737479026774927879992909978162015621496776691406789851292667823254857015888416664289016007758230786396945007660167261320414561149922013335535457065718207915478550155482886042053014204746858466384020792117609786438023201517355319105679319270365778124548554571192659950840019213614014975588673712732970488396839772657749082367060402137845496021792288228392747753188280769284984584185810918260010097048909502271596439510835620971744225871125660052078868874665419361861667832213585645742966644226399515397234933704191904216576065284884654181785743487182712620744837288549057845355474143357384225277578350548547728145285845699272673892366104835858953774783628647333091845198242220507035361296221903756908962488822307883567280553431899877402366635842905676983074347969202157521357689730317250520970141737008069147669839392971317211760616825665080402270350899475899453324527468652934891809481159348602320576718778276117715089365014890202552168765103679935055273316428517442570081274284407478889263067480490955601437969866416064132878416543645915127152266607270093917078121368515403239465352108882327029356102547902695111139103197906517117989098147187053368631025832434277796217984245107825514859481635435838061877513547761550862511524525316007307755551769684688005204234900033384788246122188780646472953237083034404788462005723924287458026307497630588082865178033198928236730694080041631791624089770239516939187347679731919446693451730642743369591390989444247863821466679719121057339076634300472946156249723819553905915477249917089983223184202232249360998215665130552334301970363443054815073048609614526666100515454529143793605009646366801545071270601812988496716477247341331640372212764260623102289360703783721198262716913805176943743265292906432324656889339794857237340086136162584738414191285544006615064648001113167548859532636627833483720738815326979828241066995023073051644214037231559513402619196428721317951920341202144267153917456780196737309914248297738352018594115917630495468137890292278268930998128658807673452776358307009781245247678273552139250823395890955667892662724030525661656185879734735459584614867361940141319699142248554092221245673498767735437344978945529786273327371697000064030836946337806600399249876959796446247104254851265394565069954513100300475775640395142400107487111968700624697154458075348388398477436034377242339601077481445945373867095829135788434248685840609749462318783664170114144216619426701072733877760756027815947989656655792464289863473622052719474146975162819107592307264524312237098563753419725472920179682360140758492915848187901291189769967960018028736972158799936989028334199346564696229262478421606667888412771877892436049520668915003763503667932050333779437642414057675904622572779282661729204638474596004779167781357251476509652752899093668811045580167245166943077373886705048720160597236325904818953979197104357867219011261505698461516702900110026599447458103498692790784195749963727521889690810116988252762489249352942882689534601912079989343178529830808116210826961229973939906026865682999743124952551474491757902438657670402986003757731176578643139884585596811080715646971589867257207930969450737699752352412960801048900411569531937546762002963201022226597664767441206906576931157140802453017984080329044780028770795303564308279241988490331995619320105911053156470381062471554131721079962634861824860150747778054859799200602761133771390242382209069859081346413905151743755160600870393991832038921433247144320525883850566180836464548107537699887758041167491644308571168883342420728125120737550908817745680303837168172390606569590731350760056117564036167884317897268692090274687005483348351802892712875704388035082793119853546021909789107056488409161883463411805034047560397736612230442846170262797656836216156252829344181239397684499631433545567559674831229595128760384668496208641518624236113081051158431575850541616318325667131305019702260483726029372508219020355379308259876502322363476273100332513175491425031396192565207146883363131408835555310002420062092989565045453280095024878837627636512533160735127122778732227560350667876531226859011766390358154416448028391598054982876555987244024142413213261583226767861862646607755269247385376445025055405034814557349487751958403858933904164597060285641311376210477485972492527599253982992601061199853923508391186944738952831556188241283096625233036426831986363345499228802543427424512248176962369759039762216108445121988459693508927437734210660664233277690298525456559814713222790411145738597776410006972749336530444616696005505360978642823345442494215668917567920581047677060661546045251293809198073871454558941983817062345452916530766851962194296039201471160537534793433136438339024337086115789059621016674542055068734600388154400129176757578334533119681400427830516897398530085237841987148929291404627304099300493159550314735066980730643345377653967598633703073439554719252519504605198046314558113625634226955592070333201245101097120682161154913051239991940286795808290966122212839220105737566787755001071383631842598449781262102869697000168438823604439380521471679282037468853322923403956245601288480256900035670006466928163804161338507321170456440643796315711169954748338449109187625805711881438568548590119959894635413284022377609885689670064738519956090503638355739179621229786451217230284559032739258225417678113340735089992612733916981592953377857980783128786217521326050835675377615492970705889875148858027834519162547256150125484783683752862457277368836879715838514913842053218527612001016127021541531622899711467271056432875939878133799338749092908658983306355232335739291882747239891629723459665511866417346989354489876401395806292076980711541160382608899700500264824173231708308891470486289190678026707190991724860026265101740306624444915174242968122522272975018232248183733385309012664223479125892475928853824308416046835415857829228851524784215832681587347738257117417805613690158334979757434157531219459913740825370297835672485096805762836843105653691252610983211345623728738057510067017246777427755719816511502614069315178807014731327530645691369276412156902628279737101697178258429040274818862710716379854920843772066424680164664242014358589889924871461926922475195068490884223932202716036567131051300430750842240166779054388931438918668466524113362274580634269472365559512738200988700749934946276219355055381973651548832238999392379908621296414225472246853580972510071529148524691434618848702791325286362525955826831142582364432852301965098134649055596738328049338837733894575823492831795953792789058809622679836629801315325940155507859281144731262876443418284487577951745080415617330543625412446926735035593012674621893625333264717232821109809834973643893499262381749854466804277061460640814148117975344386679476738545074322278659019980617512963888300419536411885824897317895620738992624828889589934792693121449740454065308796245494525477712908266182072276345099208898028551198931521588847500556983454957451084782778545912693035836916076302862999432519967154337205467503040552107940187811254481582556386602077634363773164666711928870396882719995048830676187236537009586817124396740044534934984636304490973551297078464714396692603025480787674963555803274198025399692716459283801723673265125146834260695463374874291416281419635220699453819333053348584260002515812856587117230445062333562765736220801207818745066885881246135961471815997326893766251959494428606403973851478188487857906983559536476456872050179842738468793819248141854695070984313741222933446224292469344690996060806356132176742758704404556831569139123783083952583937063377137944238274849433301777466365644028684820267377840483784529015831370202228998640815055430037146980387369247953253248245806029318768256001208698258514817965632034260160358458282737975198871292050156446028756966959766043354464710941430343398513417488826489848249295873855691214885594915152225794364013157674326032903713479746573464593616224661411607952127952670902260463165709589286852951479994378618927995897850345197368039595024132887984575250647621486392105679366479248762923209666387886334436762856492951028240839142810880355705772744015677831249679215176127728067806100201670397188396039457433571992679445561384621089079983889467618286811695280736385781798383754026108086227000381486112695199342436126911583528045521679826121179449986025041306206371077175998622464920307119222280308889717233164269159197482099685489039231349187824542661867964526049225228438469656912533844913165362404096663980079230736429132365590691875233807350992564636606635406813490679662859781074575781114866449390766426911928596189031828797371462949015999689732028234912853549158473485185059989848658621773572865191763363396341581441326898776846429624108988696194098815306056287021815361525997879012081934638995337172548146526534169167365043384063768318297708951479577473932446952765426556010813205544451850002763668665000257462348484569688021194920535734057468028619888851904410839731061045664828699548624423856286410173920555521534700543314554972263925140896490071766830821231851285926965211556832296384993672266833490300635208140407902296105282201031621232083083188937778577070881606218432153427515397997115299169558488795972351962637531886457911918316082831822254448906512885300626184229609254986541416679533141001667987417860631608973972356151971765990851525822383243467595381659065340580140375219240707651203008450865770455028538976835887919870882472611164602840456905841421446722410679379118216265975641854076980246916260273479025356410284311740973346406264241724432080217300246273146556560291262282710736831544920355364122351550628723005486932523215410502889561197743782751105095391509956019536036545874618147333857046537859459127911021385344488318632930274126660397931641023976589100968131499094541763767452859366366022887978571896709173602094866855169965485521916631849602190358870711664673919720259938875431983783136888888911077767218895541623494323430667327163136816390891136009605131427493863605585235939277754247561913969836459663265815205258322755078866048153463498635369519843358724519441317145074830415548454370568445323120092017719906869957901341505751345154410275058236706880722326046098333719465419327153305311091798168751978780661667662515526834680622249548042950422686916858547889627096706235569010762186206531708402700947668348153445227379535763855527490455734559844015725166978087037360661294930677876107702497548364183455168888437087223765364754197384348344081356882007650454525296274059565474395180716024355426749210850190776068467381248436991640713926222355011561689485439175354892070066017823426832599088661103442217751911588941990379135431417825312906109823036678827735378545630891290327311168359774038995359259654144736513306463321805715886872595394515886494576306433281038359028543518136281679231917627256243699622073608514234800088222439168586664314027682481550710791674111846177943729813598356373381119628473624661572915316068745819234418965207424803009883363170975599559467133383047333564796098929750544278526097826428959629187265345134023146349658364367875405771978017130036640458239860372977543969721445130836295267228890522295561007191049499780125509086039392198428582747142706224341412704089504938509706173629783564238896559289579649374239209995578039575242774846732398761979537792970831512203291472883192516793472044076685192615151354188651518797899856562896181698740526926968953244374543899023630263025124046748877526394588840382122761011596412366390661626524859520451547084842499732267648827874453617253728376155097797494995204536389646232757718206150654808883917280279798149480809362420462935641061494745963402929026582608785081057796423923509218384455211307093913892204270815300972997644386464923984503118882177600333171630470385817903986788932199187860633528089305864194778845636710096970274567415805581130136179256385425558649782952405627883995734840166243374461657267035277121844717345422464772908359778574401898184704858300149937034510947697025263606537266465333347492682889833313284649755658328046235280435236219012339836050755941879415670212372691710821725776905214845861627673082236023575844151493678354488010133244850656745821828706761855628410493651182178836018776486064543276316169310985806306464991247788843603235293510530021264904582713245564407325722273872444875805326740838236015033738125331123374423208787189953171159113975909786848055602798480173284854011844794072024725175942739776712349766194581672771622282784673991553241911917930750009078208166818154171538918381366179681961811843609380539637188364410606064366949464479427291361753493256168822726927401709675474955960094482193062051443605962362756035726062036182289594996478133006071834302092458601899931628930163953544961547377046118666562854095040908124852510885465547595649665011333566095366851810580317834374863469881188071737944481608990357222148327350784278261782381425382528617495045998530212800311087319502472715839598754216141978804065794469247434448516052696002119852186784539211682311466859386257600447582999796854541430299157172349726612639845196390126519090243851775858829065834544862951483981495361617401340480401681634610829870343117635715604259306618796659050629580103512376364486927084946245731213038728497377814978623945947080431348055320860006079754035370959388706649913500865618246041202148721406650747756567966063441121390062496632052664823030075508623775100044554915658519035303541327187134744879347575627159953327176815307022706103838634409366710234893386180257568233443964621415212264672907126453769150894355380283990755462431861034851787706653440856905630842054621385288730084127163861165109446971233109557304380633855936851463766808113076906486623582637666577094105072840092271264462224208434590877667261987543720624777747909257342603115323693017937295397163683460396103837673359895655759131944808696643647371852027198605151152586603601628289816026186668050203355989135244504445546606090267060357541531798287273910208472491026246741913990921519259116911822508955708936045971329732728365989411321259686430923533704891882910127749330332326895401549281340771431161758377505607196367176271338020624890941225001432849077395248597779494220154010153723281756717478469453309412665598618087423744912793083520976655104434407723650906553196148013298821375363668221035965446009305732487820526833136066949184951896100771293332706758937795289267934824898449673665263005640060337802264557281661073551070249984943764494151663726599242972141093800275077072578997320484404545697117924963637709783931292758239440704702830363781383552778953521905234852266469067120107814545682670985404939440666968750159838301192113910410759786038602782280054373087508696103914528351606618004074446783534062999775106064329352913383231986214559321476433843542963961387310859908848997185543980743550108471209608673803040151327280761818412349299257054671607574716062043533384622596465665884199865933535462649712077618389197730214818613833118642214147830944487113227771765078015723323518609746904871953932588034096067824597418861293867296785331728619992234566703368223347694990042853256973083955421266022244753442341339168420679914122625383285270721699353183354790630124803010873281504918834934011912740475283097317993176303722350366974874729649253462426841136356842832488846784451505018422726030771049286790295095808685060994007689030008744360683007447535880749183097484506999704566262981759800404819760522380828520111533551987608920351116147598069645056999378182078407523923289822863886390286517830021862788394051554644575230519712576116804023194063033090245887842106717699113130265317715013115416198314532424009323418678388142127264042491431100055299424192048262158441778547134462619917486462097693862377892533111017568683496893998759661406868013151409506499689850314597042007202922624352353956782903478425387641534823772422284933385508167579160051223453271039180572129118422697239090665286128651498844262373912328418343299443897714542504941280216040474986910080158692466709278757273935612946590904336513516135867314405092067158732845850753714608099026341251483269167307229726802043076909228345238060730481159133353613723213494078606680748029408768412167436328214397006577970792575144691961343832020720762149523312135244444779553954349030592282423786921489314451367966074365423804971339947523775789003039817375376993881749410086267904127306382486575184716690671038955241324440774294984584277280645148211939753698275739641308849996110974153845008288801109771943759628364892741592824650011593185229130056734963957092122782856800753572141275442418887662734104007521121748038018906742611222545285536093675785946606514875981149958249262988254850271009160427885583503758710584793328620048208732208020318330371441406382754884916432063148229298839737462381768220947421200794470786892101202084284359786452234587771929483988064285143094879418630419845711716496306913956863815955715998175386625138614220255068267383344839856839873779426941552086294331273909624540675376181355215314106180537095692365546822687338100315637821111261999683419851217484757323702316432033109558801002983630255712490800802666206713740707221889142902818198905750216238818160288801562860745322959575435624558057677644967465968503070150282161480894625451189448324885813624848191760256977407947213890543084905260132616834395807090502737908536579793210079822793181107116562381823762494702858548258917411276637439193675767314623927942757476888579742325846745180320478355776860386855884648686341906147494582239175634342015452166650521604904043715908345060606019399211694671087662917988118766577037655109518079124085448240803440221889332715191155693727434287073723969348072628081885178273650878947420138497467688195927426566891579068581552171771314613992845717624083295010856235786072746639225625262701694498466537486805017617057353770063521726134319654283469064950057009236145989847604514002634328288075324228151455852976636210489816023550530951971883843863799489455731331569222720687590627084325497394050571198919930776529275133535145971455729103201119689235186874058499476227580205123380847420537985327887209352877685382817101795938540048197669474009114105974023220493079547220138484299098795882116375483379699168810218578067087588730035196429983542266329112189045564055676976647028650240969344909982946504821373928314394560534529429307934111218076416286746153180183783756812408874500073277685852282055660421200295369453284316479418068502076121828930637813149857926822334482132354646933127404763189550034079518152135368655619606396494838112062793047486160985528289776328681592220530980152226905822046167097079767437294027059704480462400937276254457751647604484350420854450109396372960076330161699392145890470243508707427858074022081075951770925122208013727794657475865791528901252588135382777086290366404681329644003711103246652956722552482035545951221270937496384419151715282700887298597134527812708682981956577159842297258627321383308478537525173840400539320690894368614214059165514107733640221670574504780341923142660722231210887358201641538728251013187285569653394187063326710230884488432171123996836104009011073561041414357614840071069016537783067406090769669663714937134026976041557392545903693334982633693847059487902718111182480563125936759268168073256995902823325524575246284565959057122557750345212412042740345863652035506489774572988688371881450431389255404171380513164510718068540784944119515284187707168375860130763656862077623520274182477088956101769106036921740597467494414281905248885356264848978012592881397957740383515888063604852854390296055885576861500725010173693289731820174676494045705149729619575661416701470563185737842502874594911361676651986260630321653829152004995400400489345819088592574517837003944980187682870827204918274212579791957949079039028533671023792523707021318835690115148035788717243065744217247381591244735500006517676458709645686802330669125223342426467959583720164393965160722117679923531499240209269438457161034530467207285362535195196158500687685183091840282452476761732921453353622165169649560547456322777413799040021982409515764192155865117216390723128692710586336068773872508039951312551634373640274839646337976893632934338188655714003332116401984445958125224030490582425334265497388977012939365129982681165843497248297803531047220405977343590514342714127290954783595642629890741801956985359634052286825749656080363403874888433936164347993204761797977019571070774587330465969980169479275583028951604831406062409864680952475637818346978171110344459261707954791440750332325835269479859134570962667957409778008785629149177061412983564373876872537853682745763721685161679868693702169912746974111551063248821571628698976215386516394959195536717172771035333350197240294464565683584442218547625574183328920421141351841039175555969335672213653297508859276446255186079131111273006448011726395969406761176079369539200618831132311924714897323397050699901863581814247974016755249993621088012212876259912815802762221068913322867314854742410021319743976229784354515712033617895732920656436076639511229026572049159796531429038359353701246577752696414631835366038203617550301274219692293593476308960367532197844724769848530395315863510459669726434502946278865798738365442229362026490101052143733193324160027880388850794579939054922288842290260907629429538088597725415629414917995264989085320028869093212869836412775422094811752459059298950543591229843956897834198577595882638022085300517618377618361349245322143938574107098166936620953261257431174096103898642776583901805795986300968758783849921876768892255285364464978375646759915166583438784333755844274275351039243714625330784283670775032529952262591849976516134086332594558671000111598576047312893723798151017965125925536335035289026613256895574031675322913574482350473150354878471200385318800917205233703223368727991299507760798721480683649553625307758649894867456164465930089726155210485968012165201784328973321096313602966251239853952937447241188689953794814930611052935066720841685012073793096731484756630649883722976196567791336530783557466921380545476010121498300601747337896869915619717394297049645855261651156837077610993552816069580792880280294304907555587415830947766145055841484003544051511405115923793332831874063866675164387547837295192874283898782054327721018593698486053596283471536723575228687252571507854792712366650869221796863371128208097434953534843600751182192627592816379809266962210337655927423063555874683094729867121154928372228719972196035460636389227834532670235983983760523814104089185079779049708450581240759014147753525339793417886815038247214481639420093414889227127418568280228767201765775192651603359817912512055174866050235517315557024414078081611901317253126363568883758301981609214688320703176043749534886203937270662333481401816489782153455126789092055965154826903390809082553384822469554660400969340733320937148661984921300710910197397065580701767934809445118633291021636171339865996514961086380948509792375276671676157105157148360579569547101174013678778495967987149947895108281128566430292790495131405050295855146923817104620995474016120478526589063536997041105157079908396711838966888398180314735433135369698646494109854241889778848636999224903299467461422340102099537894589563747674971191806574672621507149492931856127545369411514540428755272234207992690669427121061961022622975301418069896633990519067913031381715657667510703271783854514420444419060998345557044692485610533758393125624010635320076657427586964989131607461298460022071132136958290646544850773136003666807920365790620332990838126844320948374039999224246801516989759679966111066164046259376316491710494958747040195210284602577914183872491858353320200146843812926242358714842369670461182372054456192876119369633154041128759104380088970751623787077731205664156401028699399521990137955574155331596462469260831782632880061517626232844594354490685542987724032878570888277548859120061553604933944687904710143645379415580099163537034023094017036029409055134866501296753566457304425986327596697063319114732011241300691800378278158787637285365633260701319773374104652342286803834993299447309611073035792640481302466715947464427520682472526333120211394197521367751925762394690885271681925819787374579905053439163297945981614325555763474496438801141574802428451113678096072343774750572115991433999517175578610782071007404330791668656128302198872717598174183589127135402370034218085528538879111444354107942711120305099125048837329754155898724670113846009296203321753831769650511847019487259609108491299090010723609361870196793134243389091786544104256033419801632804558917995766760646784564441121324616021375134243431790598449981226302141896454705936925011007119429373396074700725700202865083424046672720207379931705307196662327877333311007461365608842983097635954042569460955957334286033625648546310756902311902713867860006428377987123360510065871782235993559000042276058838909858360501603971431084051579170238972734343067459467481306180422004260243876930325538448638980210547484053108728461269399723100022726412924544892362582267918647275825736607443578306202382162944327985295558266735039157953290847265815725053432098232281205142612385496787109331595242486924807311298531786558123372573613542584278852068727238685448025867597472212535926912739396351493217130167271409759205820564152400890431547681141813156792710933948742042350042629326325905633549119702098422100389292565895361018088817019504629219379861758938267915293060106115176842673355079693193632918769009308258925662043675153837294284080863889049556365279658968641318650641515605349830077594872074614115680566918639290196701598153655087541238900783837160003938523448102092435418956914224591116344116657871399157247263504336729998722642268809448249402378270228135018173423112415735828651318717080228701787441547170594840824652305771627579151508796447666226330844749062746386765256891741545131844979352933510985175459008407808019168702742368241932217034120559053565471765318132653084567562989764437196704528625080235160596722747838250570521958278119183256184706016764722818139165555691117922201356473143661861756363681715575923397496075238626544821477610983564992109197846453124955692666453936434565667649223451200403474151540530887654806448551274008585386367274724798531377582235411540005145388341913540168348086318286375183931976897483493261867733238309632965579032385054742904537398295409436696514144309556007938969910636927417495122567751946020501937081170485107918602939065683118115949549025095599221455880633439131979509183609652334738016825525804125815521888888751770444128827417529966630541752327953613109454620797210877147054183589546663558795783684773985277577764679669036853440501257279563251527256463559426914174948666990928977667755697204084790048618306970869161028429355058824946477259857995666341120158389608774000596873264127653509267380402209704189105417458089482589482911712911430360106839138425021377357053498902314841766944673345656639455354006144229229926242038354240252488280659568591532706549549294476760806151560279409978186529849662956641011204810311077633325035201206117560144887943898101343326223845732911498593193716709150945263607360175850954592354248317773013018013729946667877162500406695336688661963019120832989432623483617074028776623622609528317242741364819323754392095036840098853635107263953474864419161469975966640033851742467523743604465104366046450861867965643806415469271766562150718085891907791437375523734443867959646569562779370858301500650448086409315913541097293295191741630649822972725992867012140871707635825082134174087996003492773356924796759479001391177594264913323866229963514787662606859463065982350770873463921907462051774609703505942568953052442527846629578255955862920304848582840424523994136421159389156639903234507309521796568464758085553615085515453531640632887359944083094833856470765312520339023695748535158040692421686823918201353105806624318398149246626871801076072314117496065989018506446759202223407203511402935750299999216264202798550654953284583667690220780836519406382536636145530273288804777637432776286005791323181416001652187978502558222052740584624482396479243698055496870096516011858517636650159168374898406410358461448468400242917389117083574454368375271067970321798599149883235323459608878905925220359459973273874475906908333006585163873368772676059383382480996310686893177438664132758634033517236343147843268737031557830625825964658958512065117724882935207233705050119364478192542944731685967921335522318384920461835810198376549893136285142494586179028366383276602833326077068233291515275493006851661544260337086007348530301236280090751403145206786937162354461141027349267155870472244992229057409592926032022392513592841665717873504876207731364037118209963761090577069426704026142982813977712806932677923698808585961775618659108407686421171162514103875760473196694918204442886648374204964662024879857429812037937780705183359006965436667650981353388925202073327011701121513101139610962317586629716364084367008181479662751491543056783649656064601430805661687556953366112641140524548575678073859600373169847348673381165736647196288369044922389759561942860083804935864036471412233596298543387706301976138702810387183427784030229358468767113000074423022305544502746140220183377767057035125903220313564955629746643280874569872543472946113512118308901451863331314471325023738522265394626619415465408785386597039979040418622961088232360564685138388217583284936976902417790821123956575573994406451255266114579939842761515594605405479981839825946151031163308864953070708056302708696411394797881982460759999882227372644323538153544410780284705281713490934889875141231773804029713642968911125140068241480569972574322063727085838631415519096134518677272091636888348237265664690551373767074000277038069628468589882070509832731875876921556110638096020692468315609986400434468244940147963585705652182764151906401302289040119863214583989007132437645098853172237927758883183138954750329022856237553970954452243551622482590258730038604707191465605505169770189215747980693658879403418095471761560431080597028824402895306223359528171367177776535669004078981528746100169846057544580622265555845662657622253840899978781298159650743580315139040627679800471236568533556433286531352248380152918896058154445265065597637907437986430958527724022543967225818498963636746575714733199089226462167594509213017527792763451377515070414145138090378669908969598856640150534517600366850376970361255814874313505854634770232912324672551529392453332842630998008234977715119619925063073415093758086809549731275420475579606552172897801699678411899492649710088288973052738742372824050216225177195970955885739478810141265501954321304480552598192441937874600536387550356840849509430376574253443997306376659374207613053084053684687620887247476398668363975506098974864660952843096857738709705165234178798959885529293519786578756296650357434770420190540519257429903752350882943300893982715387701036529398924317459718339923197459063729715903325311752352325749495424231436974414985666337017183043187081060227376552928685161857164478019176709963911217683324614390020174509996944140849505045274200221719639883842100513780760647992857208010894417975534615567714035258926097552392207833186204123535940921584966636027637111636017758796920417961886965247816509827593575368218614568938770455719947699932613274570583457712521361845346310813615896752115236229193201037760190635917818349543913586437287905637028306963795933013063594060776323275340957346514163578018968400722851104533404758985929440789291411623593652858196936150224991832037774299230063981607663300103341572994884903644954302198336124659039441923837663710864062933111362069540050134319617760215760012142003739613845480626768873692565977780395413797663118905704641855124987876750694887422737053982433243407852473389609169107961651517939050881501294318961781863290286854869019963030900671135436780205379352607228279786019375327423596027220310089685063603633923737486733104774757020414650945603133150259468124955531476003977295630620033952860396774033708930674829139707672152080662487800641546631741620794992649860799929202190581690226584680376935870980793578537981416919139431801208985336428336685170313186668839146058466077025923439838466257421882267933974194568973783846531634828327692128073956685540638265524242251127990331075820239104323422252862509604901827667606648469933684026107794988293353889858056579294008780982455608273503881371615786936212016219368073722789628336502165415723925403655117808823004111457685772265672471166141350746242668756704374380334334782699186874355958251145412144268758477968077830671001052583755399787727233664258899653585234149664568714382675366429313165242053128019449947895737624172388592213175891243005812786517387940970124819767860721195226532861246675152196456425799718966378506810328352758806338818933450592616409862873002004000868160815802225273239207199294344349563504796374538980590013817084182982188838195202441293718061368191965842534341489851884711962771087252910532163231106838207765177384174679253871164250386537107547073451464216033549761906350682855204994501197714272310208218494088011827470199093965070884642899171431177465981835273864062656956703792002706560619089976601104255695518171022357510891181567467312879726867221957076982428958794494743969114545694963096959629975203305284286869184735964124772416739250525377149997426570293029318019629021455607468920689626312209846286353005284267181173979413067222027058402828308232430613567256636862351230925533703492648512356134417589969784518556487298603160744168842159577137490777920756705127311021291840196814489141089685679733030514887172952070734131100411725508845229041615267925054324177615648963529980621792479811632333794682500656083453268830463993396297147608811733775760323090265107094937707185777586453601698637289245860600975881729278858484161699946865783084123153532049636651952335158655834609906759182193333704091437139470908650740337434882619743744524121542604260609147086694268086059732014273633326510254887503097056366603964644241740079255320518366463810502799461963402810850000319403538382662669545596739727201180345990923625779186922798137349147665546065312992528844939831022973653313717564112708394190400766857752884954016859485846766416971596402573550277353614836998604552119860106627722177187541085440271385207640147864658013000026628601856434741230538739208393219981380265608995264155604621498180383968356464808057047420302345185147949714441667868419730334272565978496626394021952768674456507195231086567547878059811986725270408915913691880181655673169693620824536489216511022765636408057443963535041597986693625257360921484464324517253069891881313026201205619575443679595788897608878857464745266112763763926796351604027920767941015396521221370953987534721674927846291052933407048855077735763617650569221196507095348224934360432227927162914337201290661701344249059451025774883060655946857317088139879338224601491453921710866993003608595305148732093337466572542778601394980808808335262487079086049092840400648675184231899368530591269554944080731791571273886655845610918836415338546289210431933756436338185774738997510837898281746623942752371289312898966749838039961778326452493014098524758240979123316944934092666598462015196334574306170766140194903108373979989489001905147252577966382589843237834342719620931203397926964264235175979592486098603770059528265626247561370177736079558186211787500356763974980772261844018904852921003129047016425252919912719085529399437753257667578936263791552058090106826485737580098626256863117133844149518775494466381812857437022281407355392576541259017886042301832807821592195774322911385725648795070386688720872850751430735540194071986429195661267796082273882820433265621451242065067108486612176329133109783866340143647839062456946013820448888132887238678690569300211303424402316847449600627431650855427958074368788243215798704889847564892703300217972837213951420482234592342126737349774949968161327155950208972093497555696214721754137691722563159656184564069073316633528973100994439055649039440269960840385293842595848659634888618123223618405029381641508870871420732354304695876270482203037254680107046036060998723581449491527698727426784780702634332571230904204937407813795364443372079973021746705451246784741900642724975456853539921410929143342197428378108652233613930399396311927154443591326619961891448831469148998147526255699728724151963837573807704608133347138210606195344008033286799241478697695715298214698912578809744407442044456738673979334302063784977463727324276925982622002433178838216348438198485398353315714017424139077187523319638334064951110518229392696046169506836535170008075247259127492665571165877004830995155096237973579853928751070870167104727145017853546743683206292030742867573952865982513351878939695387438597432480116572671257129321111213880392160631096263136838694623663869320337430414308074381767869913518339956663235321327878222146116737769289021051107128168463325477949198006267189351576492831705567662914904377055690768374970082484992785007836252506693889570208914512533128407405982370573096693376905730303732711694994829438069674724844880926548460467730282401148114916030505672924626691892875089039529278709065896376389002361267829590063603254346911092303814058645330563631649624423377018279157982449297661349454801633748413844631431237972666486347422870458085027711503891642315331207303771945320130350477947904096808730262155993238744173078293933250356573811300646700763651644559862785494230098324578742940032832431095289842372571547555032026747136213903432473151075580241669066364133414052633529550383305270298596261565595967695164401208761932432238181689401250498298545379041148739104917064378621555952521805248654337104693829705397443458037539834589910871776101524718807251300783548544205974684826635588810540016641282225256265514420548689660720095287808921012438202739863734365144177374378931279574877013121647396457514918434331750081356402228404455006879676093607488087350309102834282485170626389549356336738903548356877985607823021093392570539728739653779016914958088211287536278452378494782701183538875579673168762939890103799116443554837547863870604691661562620089312150070885761652548022167707419104219021845271139936033914299029438641392111538408080111698552737890576004726719666781076333733236373861008165836939634063581756033644507182333412294482341968755151770354588338399413973485091869209627599425942804930171424577821290775306482082542801997765171310748560993036888130443717231218965715992918335067134959603973717313007462876451776393406506969232083993973593266222284949568414972936657592662537352932214076142673520208186105099626929494450121284099228731517447474969904085345476579116514473409876258420729067555515861909461731447101372454552308928706745424887543038982541957521629997914137260686239566002557641311512509623137532232989991420317853554103543248395381020716875285312411203874169530420431479611856243006850297115184012874824768324695128058764999747660973526506468961540068914270372135951122529541733953597894615098966430419981761022210674326540554938939455870682294158272636986086353560136353234132751821923578338625477423826801300182454224418851391367678730665936119991172445666520489259694986300815979471920287986518211954056154247344723529058000862498371568775341854372443554878363782575409994735266000878092996778142422726774983125805357481061275644476687224676987359828054358825478400195593086231590853180784773107594110530759324976348341105623926650073482187706860981579760424435080662691403239622084930000648666027419211067188539614272374375087213323381083983933124236264729905537630234303544680937935029026419128385246189805054266292720833857598881217747542125443189448611962902700563829003583559280851529519702841587248505520505120643300033068413475661940298953092343254503598664932495642682662834139559079485621015069584970319291746412400723059239184258508270232940306349242497835130857957319400558811175236944146074082481632238240117586478599930894407721184223637055839732189208250291368800894212247689182656530654471235746341963958884375467101300689372423356999446777100430079907092074174647420125854420410963488169603630403198975731986341773150111241983968699299754709159520673069023579656938155570844360826880122522441706163585149857064312578531234038790195021128775575640078833293570947985058786420484928716479934803967908824096061013233211596257176399703299278167772456448344916549937082824959052049318645235929933530627926547384030973660501978865561409735767579236210958431994553055083318935194597712506838861771487526787655805203431721320797218302792316557286964319251196762369473778810062081304320156826214201815944810837534303744086761189157659258966944016689850233458513206692249477226517726824328535361408436602689364108354120088965481773360110352129272105868389690734324072964569549922173915645553020163659109600819524865795211606262519685666001307058818519208379650823903890533344154668884628796919512195365593503104860245196305098380422913221641497104777124965824173674522091256127843672492286268326947784372850945256050756459194182962654382567005940049113357258184666470962449814686357193789032523846259898326588554811105255499176867912879505624388341243844572944653003488879927923983161695225659801263419110195735675830317809569289369222699546765293824598816506989511213155124535959939407653836430416584220897295295613147242644629679676291074528662400581695785751255012368901622862257336844382876300950137191704453119827955464709812597448587324024638482836315956535044721037015860688037171547454995578943573607481945932147048253017677646376333151600615104686978398244075381584474137247769852844205596871611260125612117710244724778031125246719907287679787947354943718792740784406533844657190423723670358173986149903579007972078736033387473713637732312796083637746956872453415679455069996278308526547365587554000510119730212682376362442724558729451506636197780827714167434908908904738687787466434159595649040413182338324375801152860530826514603327741372165670398320724560185546448051065488352396501083011702880873737231189138157581915735253687570691899395030266285776741952684611955606606697349343651651896462411179885993917573444382816553642090544169381647911994239408409141086756804564437444982823823982960422155036352885087938102050128950460777864793081050050203496020237103399815643043708141339901111730107107816908985105634190280340239888070702715264613317839646426329311389005490756260482456044669715067226643272724936966958033796466706166074018124120365361866732649202323397905890444985542136350773995877941827565833030833305083349442864012392106683875878083638448412431112554490497052088456601154837569206507669769514848741210266824395206755983168963174088209128873972569258799865942358009851189206220217840289449472129721836137956900459522114321577242624926714186266200704778540798887587650481359601952302312947823330159909342469232056303073757646504685296520182710714658361059829661500590375467806070921665905279118636467849129078208053717944514318060221732717893166248152008789281341518822956818920224041569438636516427784993046482923625331791578268273331603693478869995388552538237971094598867818193541678012291169509411676352513608864501968577374775333939468663992805409757495821813986729444135359193457367314785731823373276273360159392039977396364937303838661417297869034220104917613521198854530201821794286208868375013432614613961802023421006858870516765690022727492968410107254033015343065319242961212259618176139280608333642586047067793572155649834650042121221201900139409082735392168519117693381384390448639936641917137108397902926527634139993170297726769268045739480896386664953731696440896145038962003347816400645593017298119205908037909198895124521255242521180231023994936812566747155524569407187898006324935501361925747503989475095486802289906109351732682758166967688762257276760541047956613095929468717195565417303368874797319261203226389373655648343322921197961545450771568432240509497371724682294891198903673336848363340328855657660213262801952347848547720894169580398089537968452807500931622241078202183954387757873115186900198147428465784399517796461903419974404297415795624343293752430700755668689568983874363050484392992773415980317573921043722785963659257857284026045912150609923102449687666315355502845984473204499580036142535630822705415962727733749920307311596961236000504790018124259516779090045894613907463308650183254996067454758311109689535359846524528890714041015780770915583057868031199968043754636310938871581606768382080878996227336671016649660159670803515412818621810666824818475614931735068287879375429083716330141943823078757139771061396118135380320019066204096754412613757682941989874755954084720437538350763270080226758637234673453887632747542554575981002250817990165834014559987357567498959093686462998569557232311773906218300423593581148146649332332842584605021352618019303841288444576498746358324368670686908550275385806573196552553448351182879688159450927287790357472854181502116973076881211260683717349408214342013572119933308058616520166146813586071996798264937832088825026705166418008872171985113877042206790177479159204249007815338466908291335972984867811880088111869810643284918212278545075133413199332552616318989954641497369045231219757203407532894522496873437940510155864414980666295974647214956972105218614471265504288792112051061353810573287405759487673233278035889265501003476301058351163100838001458317308376885426538780487083071083295823763509623868931357885437251369158268852106010863627363099614188005760542967560810547285778290332218260271378242844215831876716890786180131106713607330214085862206378787236919809561313922558125743186510088175095530934048059798672192310653920824768802967315978309457674652389960039629739580987844090524517038535833663085134753299093641313731745011770265515190615237252869626623707827902786849902609264857203653938104201948167325132056553449423725996480400567775251804914462856865441316455258963205421764514319676207175753407186174868780226764317852326064074702002437834779362035271438845610771480166387618001072950981721411751410618784201825608195509413359800233093648742345163381948091759691862176740228562989031011667694258997674655255105008909589717637481855685683497537865953224902541999768982489424253905207674922394047277054401916267185174160183643513189054555005833390778429268135336616659397880293012967543433379549639619563494005180226628257111756078985923310540673261031262036157154018575206988229259893274800490105875091070636335641963601862744007594019652543025149027881839615316753654825600087382923304269000932222023843640163299457465434266526386408561100536670134813659921627541581615249762661579226356926630793448119154690598401498672644349080898613605303376701786882467896158895330442453003718792697285735519496412414336336638363977999769913471220603659547551399294704045308648710494665889471708003906956729115930826120698602680403079394938049311058147921659572440090925952983083365931175213313042108765904359418057327134138997934483609619439601784608982398574504023653863589966298770020893228411347509237162609992530324050382978708758720198436071992035479800309715611375213607863552529762443566288270886213027714010068770461138972321835171304803404478553532157484002466750469547560489601602114968046787152968890948507388258257945240500961937944214869885892203481228700648121687126110392506356642705604425326269600303180022381323159170987819867245572685166101692042157587272576046758824730532416809246395482650991255618852561698706308971249287312914672733391588235312334197603207676015133749770485686740810924908960199568981941028451176089051806693490094742274624500167414966571712465619276263184251760224122094943967217667582371189725152771586479771892280609323497983666064578076173391436202043793527653579737962095256186869537157159725693520544863964278937242159551561746857913866498992926189887736480993229634684968919772005058796325034009058543229765171177504939897389044729461318209193227973566289757065496939321655763758445585170512354150621740685392124202009557368159001771526821656447304164972311833763482395446951023685765960892719679457488634950813750364950063021285748264086156288747821249900395352262817576026656820783203867734458134362907724030515299822196670519219134265969309442953609049359283867589656650461562841562252770126988786264440280779370137936803962659245167888425338133283845494971272857486250388413720262292875615552940439395230514066587966148414669024455107175500959423577407827762096171227890727552612094192356175807117500603964617599657165830699115090665859763814222112363113422586106880257939006039530280917735558189580662792430837611326054362195502453334147815004456981177889437141388428050852197230438941203991368339568682502053619172814020230980694848484785009214721654393060701103107003246452828888927729308189421954562288549003383710148203810615985912829362224517818334563689460415107586152952310892360878586072437939132456283525839999874755074453598559166965510177777920691131579016091573768750964096911394020798894123970677704546639784859667504206123029683580800627673982727273971084274107048612329900238992063533520058003425075231389153724749425339251576566934749763943279067101634128079816254009123549296303478601523806206466041420038865887318593182654079437996783520154027867958121110000420800914484040957056103930596997076588987979914266546426010519976285932279220840741865087965664031481662476213962051158324440309993756715599755032911986021738413970000792991519051433194398516290819782271677719700980548189583789126080253015116218455875432662979200857431076079742627385703950350214767767655789182660467238329388867896320441669275698114346669851597206213328435779396026262390745165064543215548063381938632219581330308696948963947312074895824097363948660486502311973809068109641177015035822685804206158306904406954363569438317081113270062169581463501798021776082054251870019982750586517715017190849803746803497117974851533123189896103735317928771650539099174830486148713533573014562989184198005336704378587887786597755809906535493996951402786951136614864321742553872306623981341241343106716428293252464384084395739814958461703252598559531575048871045187289872467667499963103798294231377807684926599575365065924513143664804994747191392311908481820395321208443275018383101717194999237933265959485908761715623201633226756170132521771079414491735394528807452241310777960857285651305640029963815015187346497547280372917643726449294325905732818582809378029260080772942922382236283383092734541589455942618731980298079509611897956433509068059243937297437776176648116243585372438069062805051119563211305449438047623186904651072703219632240302334155731543274963835681870754602625576096542135242778656966805665234165061265207678989874659718481364998448085040492389825657561003577161126346079302195340668218528227126973315930641518539318581963510207883086612380829358237627783526516634639152657289744574944268084431789374878321689559798235731389659574148401494768111440662177047756622110734451861629281490022884652116152861124402036856287339807312921158990847899458663010926251563756618369893160941642178030951896058744288683176857875127046276346299465789735931531074743654425938736032688648724800884578977903995138260854124951385763647235590953088630625922494211501000903617526610711380255392263976242975304384657560855714612304955592031305227971152699979854137178008695452114567126333766792097667301627731406906065613505119299106085737462821852110775347022928759822504719643958532574949049425445938328180602414868441200929058503009586528732053157211953353447218220775793119504447171483502503797997075612807001394534462865592124628865745670707958777402324546766107397990769687787712791286775626161574331074114544074456014437723516873031181501071591530183017598985259369920650081938115651300412257088151547285179990195540827221617171773209227324304665567160534552317097825180807157723930999542274818939735018057874367634358426055025125312308961354938567422765871833495880681673377756588312382536983811144400885437795302032299201346168965523826285965349215223206923349944325548743385724347917415276970653993593061340804483597392025377173654520063525875831249148385023511053976470978711387804545588188806041707246993579903779271709112110491716602700655960974011982953026114734704058197798896366864950198956087230709433682961163859334608150058125161256439964433726894468954269010945769189967554329250546412843155552518080266698516960516097978585269555958545892387994061327962612120049339025485729240656464672154678169339855681390311649259770121330015016785789618876527426175484365609732843084736653250781799983952326932403578440609730559085480075496131486526515984825833761187061019462871513953813480776561040088038925420140851398844991952056070396018132121528684176351575925444726399319743295845501099292318376322814531236664205715290215085637795166054428825548906849799564199072647495788867162181587627526992023063420018314573306193519219030649150722107028528176635111827863947178946489670139409820052151923308251803851531158335146753175254482535216093989013591820246522470615644823764655678204363869538295136211286035891695665288829496437661935486653375829082462740081534008582396603337537884352993719998145691818253266505823486679684350040535068516563916779083841561766946458784596812573705079851476290800623906459782209415938581998277983062936587263273831393011986543792391133937214364982531137816524403603882275061945282326803323524516783774426901173747175671791482710315934857472696773682890594470768353109679420750590479601726513679853373296847691053842663218541807731340415255949063253980617653355759631904014573792115035246539011654117527538275388316090949466717828584745882600657748753585519709377409159127361930296364072562148042356843580811445831927888009536884082301848989909387136842846548227334022238269414667691448296096306358737008662593468443896596675556317339126603600884310766069483232813369149604058540713698921922656834490286956387362478021212363138883247122509170872458098754206331446967042143874890159559097616299070807993668540087707071133265108036663899344416227806942481827322268897780806344812220804368524091835892543919576594911323932653480801793957273384428681783206269323296401619837854363786837973941473126056284585519514160931192714452402703785144512607225456982844821888604947486611715535341604273752830750767373684697261725693826193833106908157777889372395817341983747801582517835888022116763168898734734949552589822766681713585748983080474900958114719518870244304504585170243006355327719877138741806586355681248158591358717361591426816438221425427748649269914965339644315071106588063185505641296842945642091736708087297963097733231692822862026719638873459914530333722358939377798614589176674817797007025935141950166193474516963906484996952019374657156990119285166354120978438235020004714985349106913478338472487612076668591819950164660390193784486397389893784976041074045716104329129216876682475305635485993492582657417556043326696157400952905304160399965842582479924793520633843404217429812475257061206922061421886122104196988770355141605561643289797428926135440960965663330836979682566022388855932952969406814407402897532199105982196902303999443669446349866475441237518213864311493023485796017837982902044622310115591749139622243898230294572377458941173706960775312393087289006087627161371514153577232703291610494026656244897736229722727496905881270216115247978145189676265381936937036792371639736021420677818153589314900813144008249616611312497804440954381192242185432484670723081904553557481157661045949830020007091170923971047026763738058079616724535976991501784969459376668457735001319073387077470905532485556106051380048646316337061560766599192082249219868508486778318515929176486463582247290837185929478350455248044837765720914128244907254047165150258566626360771427163604471587976924808042713996484337768728994401226893183723007994859377205936785375247076611821578698822961930935278829515414556146656156832618024532261353297717052118808218195973637746198806734342824653849706053820309468459990644908771336832027747975169255717271016756732729996062398951248824364110706450458723919163330412639660146315399806424555351375161977055916538956321609153921299489688333110427113590520342716233401225993564660637784815099329686454893963388429891730036417164299001935127489270088253150477619715501120819122206108370749291414716429897581320797852013881939764396482357505897505780382011671838384635583882701050904692656491760052423018671105082088141250172097562355778105404824724858445270536402503527142907779288910903037450269200014355952161477294201579758773604716098857801111616226323468677364816891139293561220927250131011518002936632615675776587588962424441665815795605296576882544320020789259178433937326159864918759773200271416527467583365399587065079805872572552314577243601221143453447294834718633688756896050490097787781928017855942013016894144407054821620912105245851961939989179581343862912048340675419510581609921906257697530272645108191472469209601564237271651191787974111466381380630256116568706246996342132140797471164317431781082216934241757440974165595392542663468529175823450384184945224076862496233099654063253685426750145818277497665869949907934288079974186362912051380335713848981613868084088498582291375688515379425082118052434250611457611347656546989264799545839300589191937539813895065390957740232538429653183249856898536943608517847172100459068272943361436146287771803810522848380338333867508539928626936659749560861366814183633766269563913818563696887588476014164763516103890390264980771751197373755471900641912211491063910983672444611693383726937099785274158076979877531072569829687580099820625651101837370735606985384686652769268034667992910666555571362575070803742792199746247437580942257996402616750205941769460577662103285703358995668455813610810938517681018461980139851940616488345623244829100933307475709802800749886067034820228774404720162346729721988869985528275256423741795775751079948040280803970494912533378744461595442439012852952773456116839289254531415485637267211938904361228559852485467932071633815064341122400690768964534600119306855801700985537712804932362088569605881558938452929395083550861179317284122111777621388693992516349394596025618147778376211787827700704268759782789949173689998051354495621289169039603430587595474844603661076071523510952442122722682380991746474840874253647730469373936953992036110205330315051209991586723000585697284946608086433564140054402103676580258067433604440022433668859296061503757329746334939954057449521639704445984268941144114157958684716380853388278209858840415109887535347834124228464913630191553570525624445782035889159481938671278215774450160464036005351677071172755300362562632284427633337097658031986284925058967967994925760398295330003223110723218239109390632643745666853872345010123338644955162208893972052944595120053931586395161181666471200186359948449851464086047012813289806931233343669752633847946842858835262198893539611113145080821322804543091803791311373335437967438682978989073179363539585337874854565322227183519157850453980957215559759367614703871488605523322625684172906142656554792953407113684022754665589341089457638977759088159957683226061323786374856752296156346171105049359769721185183813101576585459847213648062930418387308933150953569362226572019993617947613247830482077176283610298451793291896740636245910458120120010285601894028431355356320141026066107794726105693268356202787444998694138696792656020701757089860410673769768688918067957110397274349570691323822584068475215039785680638884774778860209618576364383449759810409793045052696305614302226539114365753889225042702449136754655877734530762703950412369922122883427311017624034910208251757004592482195507377556090091520490272610561581569239964225302687736727179469524537150704979685495594914448855900546202110399989859121917106797888538021817811748552372114722102044673544323388469654931650932422401208651187704974619227534924889059532451292785718868629870608777299781707626191857458172255912877148079055586111207311772804710864136019393475139329975087704153298858733669445701315829862834926681910439360104918162566146209350482034271201327933107171442743765517502039766917516059734221031182235239094491812044660896460981333773773764010182190804218392955819164890701519277921193620420434078697996923568618264699525149436445493970568070277889942592450774738583803924932793823270145649066774531186581451770582386135287686695081264411139054054728676010190438629353683505100332525495987272362596228159898382334940793845581618363913096941399965191504214423850752946283523227479014708031509103912842158238633553907804009586931551644533654466319970330571570420757765717977790229221251607211718704029896865594712405535839719076671025556316461021332067356177188209612300491678093638785885935454197853680953330270312684302432363997886586831029462897821578427299903348732667821784039847290929399276843297605023020139157534309175559322720782098064299414390514376534963288161330632389569593322676022423719099430337099767232370287980980321275809547444700457124107688034805148007238307472256242727997358029790459954809893744779675417005938372412819347013426378040358385239696607869499225101287863682145449410728947682701268638560575941065576088418057469062792218928479706832434231224783813526304554444018914584168584439006144584862001255106151987415080502382569288941646584505717093877609451727216236331216540372470994717840572515054578739371344790115011141001375204892566035986024669683085314371134696976084297360228981284203752484048863133290715449282237296852290106249341059751813139182276832733833900630969104248566089475330905380797635749979931879737009524915139516722646377265569471746861975616707584610177341591173731270290417163607292831938150421082206126531043427123576930589102035261509149692951283671939171487837231308025146680720654250575743462879553056765005156189267995104084747562813396502877255926796227267254268656247913678518821045446443890933686938458836261937995000247088614002302805943252018851652523636899694033389450463558108317429078035128496796634052402096229271312517061065534847650428053913242564068179531514035598444857406917222894875022175849926782456164110500838117961305981876577923122522055852375754752989871256342212777883879640688549571120876966725743354668942830685722552886968886648971828078880149760826888067928857912899809239796000453379250133771535992320363159105994366009303313112131141876304335645237139531558034477690892632904417591494354139282034355898339186273437280375985512041327735224770603059506449498751833551139500807056074249125879328894261075364119948638896737490028881540664898914798935946784000017157510882676945971693906127506192429725531582586933418431194546572973300583078176997090083289892728812214413890913679120163922217066050459741129368915652299332903504330479928877904446205138080758586731750251285040741640956300534224874546161904114875432282397399697967934978534804425598761929270106501777282601566380144248514858940143982214381607784913365852070477460317223303927389744397186406354612316646703964300923380523418021476496476141892124915613637133517352737993492627475612030035482886901307120556420793760842514321369923406755179520402004399136280372664995693000228936896171263326802386559731208839973952841547708453834367504582285558403517179760693785695412848626243369223420942609024850665928110627039460007090656915053625392184460911487079758009945959907348614997655948207155382098293384710102372645255765900333391959005909834273298563587298013020410107365840827545761981492122385475001029994193191840473465748622068850785605358374443456217505677210759500169553047385207480601906539867801848940806961629906633260160575660145602436136754478437351470948151218664058281333018396411176229421547537600645398872511272762504284582334614049999555103155053700586307634380039256624027984847195339217198599294512310748403175458565588836019101289213063030723764371513914113252663699357438174550689485238316730981307768072830741896347473695418137849624177514024476767102515447911374514983592626495374818818245334460048688339425612488012490473759021322905659045605569446352539038920990366974292111755439358430964447744857585348798322890901412762408495430269947624883595315753125706062746054434010358858871684337173982055461131275627696155403717339179677530555386889808627162530643443482568284089475324902199206138427492725644396392137828947953240293043556991009855178375051297865174436463651586015658274331933822808147065764840139120955837297943522637361823320171134011126306702117007283182581308501925239853927360522798233775306186615001673861220653549073985628754446614162062593450949542847372673245864218948141196726773975120052482278457373846088697284979913040961642140251294935842329183238421440695383985341179957413848801326319126651182593315218452115530244921014398552807639400162094786946213513267302587050568068897169499767912378466044130506842340967737634856184559150515709228090217596046924275595726180956616574064850949022659075041762860231845070699673092933896651300049584558088927667324382736905995562115237238548971911979958543109063748983529637922704407576987028545066938744222643452400984397035791217544619515175759534500704918012647662335546566553168300994527595367995965954300194177436427855984548191880061136018036355675219631787486556931890874629433995469398957978691039332939533999641193500289367690567958244127180206917196104433814975284356104355499557071395504212803139352519157872168773534532578049952351706145776992965715161084392033593216003896930087982244072843231600231596557254553566894748967361484485350356477045143849518645476934446755113760834415225505276904824752381578419691091048597754240312543142750370908692707395763077376213454537746569100993879492594105653924366537490558301649369246981163320128316023256493050323819264563802910411641994441217359707016603667073974574343102553332219366536927330271974873124835602227662351175425165186568665188497915809084603288805620955682065887705619812089834348115615341048881957630308929757381841320599474409744724858754330864584501947679685543611791063341358901219218020371666484897930546954375584437010152791659859984728435790518412783304424464157400216456359340133232873332455689197821148935688810682140859537517622128336178563333513180609375845450469017219931951391802572913150467501682767981695505074409051036843724448040073604064040013473845455676389277265816024387625620152602607919704028965992282553131537764660047523354266211930470750138857890417044383583048127745836385807257821578382241473786855129390769660634512625733825887382186307312623906254806993690125182024238492181989384201599067337742874527982372255693236288876968799033994140268738379158006641787234264745655916792840297483194439893382458807974555235753302466247611724743060900069399646806241298585921197553130386478120761985422994743667427356525117159436840667432263213503106338192187828300123071523598760032592098108952024860942428927492386991201061226021158655212196391230744568001173025412177837598473094287828470530656410052337677312157746074267962216683344451785902777471801409497550564383468578335440040641033299771119899298363752427937208675832171990519534480565176893057719093601785093710992766792246484048864787428295294960959254393514292048589453730691462761742889784271787036381207340242295004308501210247353162518401092727044165197774117925692080521645598622637365192051048606072549139791404549979919108197672389144361056802238397580720885346204805571170690515420843593449795775309320570329974593578476015331909217971922272132280507358112096938821163505799195228890937282509349890281791396519074670921073919866557495708413359238440116747245106780083147768824312190923623958273912387850379611700188517751331116959613999247994255042748232337404677181831508943395071573184698498481286684486914287407148246045528923115051040913279071588135629991341242774922882969186911057804594580884072953209448682833072525517328059589639026605602659266344195603150309680949445739173458709690113254191581958944462043058776006864142030210338043779205300872305993741702300363938254762802136410591615883580805110131665071432785530462555460082265686261789761419460499284179196109855977425510341155886481048446511385048995945743521197457038573399066301108742926480008126901806458588794858856798728181401682964123314606217749366367667575882288785975366748093710110305745988985123615948753510490649392645985149010828631233298447519406970583730888110536012221112043176056699325586064653388689589549430615755680020410848012489507598159471939673414883524425245801103241887169432897871817110199492807046826995066337217963725133042148871688391983865253526829044848698508765355233968078792885799144824046355149807402904032238580966160435257887218513901504355432678890222950584177348307373636004149221669313092834964346301268881460136787528239494489257535664023722607251259167316108071241883207387870916408201034359473883476515012112031207506988315461872122884648005313281599841612130385106748050735081565848056180094686124206346578848933047929219789457217787217163694963296060222973685071067040586961540833018657184142481377985605948482683894809413407631024720517757460585947776065875109679073426222645914378070557951328928691540426099757052414174626758428298779341099547745264552315684479802944002550794823041848951109226847381683121648720277864149841710441407916519464907999729960527640205515751400562610427776658682961768921326240379494430409536790459600419505900345019097220855351573819310026831759491694037255242149562873693643001905899535196639724966060628574385191003971870058714515640496385359961797850061186925733116746923292109305933290426935526450358599321276246594985773223260076322164286692824809578239739161675165864603213013652987484444379744477187379751871733898228451527101429216782674361338406156923459318749504176486089731247573485384148565135600000212440459033102581640370797146135529318816898330013795665724693259139828591216842792916238596687511241937751042709170140314333426590433148043790900566405350944651706603784519921226902677124748139943780196825366316667731996249791790699258590300881380165569537211819796074626100813089216319869050236585630698915855759868705358642402996670517023053740912349238062112396142708549887193704404411458479238537565727275868356801288231845775667576874705510277447703564729503254620014805553292674642066831815253104322477204718979351165176004796917077800073242685944225830360907287146897529133563409287000242485438126954201577106197977304317421342046977007767092271774562244579551347786987917646339623348279885925133600536177434300657684768068020388425611195510828262868149561388690823196910718773047780429354645658984155694487663958489633662785894191816884419038405176543882265413496767099897979239312207997348507709723010280543202396177956374351317169946367292772974337060545404820593584655536378340907028417870294052217689902229020022034400867031251168067742632668916617077239967713905993706428700744062841677023265114517438042186904195576894335827503421838240576513651857678446468731029228840904605220154993441913588385833804700258806308622364844250289851529494218194921986445438896411877103580027527854600652816861897491143400664771793545386402380640085803381955742705480566744119474190336429507859709249274490354922907329106530956146467046043750061624477106952688572591429331392208043936709872293277123676736539818386368484638973530849313443476055322975663532473103954262842111777603165970794473317284053636436734737748654164829888181879522061561496327080382643545831838458963760870050771842048961863077647365671693353910791179308942589337400451168438228327035996756657852499309802205599370072391571055677593645906856647991929635688453675348407377289722296973342431655810443390547195382136562389580395007816422891776045462945527027950717203368390971246004026499769677278141137068196273436490518162073659496186806306936510056311004200870916532660242931398042393055880456678104446619546467195052603584405137000299744109118840630502395023167168640608540183853238071662234424204639446320390130717980042813764897132723725577187521514998317046242745399094535956487603281613581679143864285199930731390909577610906939954860915189881061920452162852822111022624739398104005778293029690965198230380466727565715469674280292906746183075559842446473229008418175337603393425119789540085201257272686685766300305385616506676310434462982943140717687210183441438056363725362879402270795784106248157683719123563139644391956115830745449298041465721191245341787239644026035766066264944617241919179888351407931160978851268163654630328319363441887348434991398386901962997798693299061626799487041091935286528736680212168290891796921858109178613571726780907715257275256920583651526293928996430261167271056412792648785278011978664235126647066098216669476136734119826578388440139966307353401960347628199939172310400062221946774015707485174990744026949416547485731666559250803699968821132150813267637978125878165552065039604565699610369927423396560296841363949291571690169971336765231279244376563624412337532823294053437931568473662914671653308876553271852091442837103603404089945119154333156490923841369306669912064001385169433639862689186472304777825558297502641747891748268832054057641781878267246417697777549125058014509503686289800963812740075965598298198355787221255697961587323309037977556740086860067999716331068757602226013114558196814080210354814272109756624787115652684131156681657844603740190625825537221420236159868541809629054380596317371884053888833469282269771630151350051546942364539172427126563935959103896387005582091375206480307835294425666068063771095148541762441024520257157168627962818895382786240685711941512439391506823837500713299189800774330221421564748552798597563416199831253202578694326758396552156775752744977249645895495790959990747657948866700361234159608071978995987522609619679126364583630021575369698816206813303375160321969985239382878702924475727103838819619596178660651436090971392364624616450209754472662232847590103015668818507138352755081798509025438236484791402615865980991883662408537967835341088646186851115989035527885447455730321678496474359664412727530758861540348972739333943496060341766013536334054668209970769781189102692640923800938664824069706450218338894104557230443862367564965998217167816688236684813692209416301563473270210979106849564896641415329638135623899852845399653633412316769370245544265974990471526725256498812000991309996286857232908922799518615534520251041921584906528423609726507629324851464993518304007049347477645944339685907249567408906774344384240518138603525715546250424311519292511570453633103366683817482490002091639406002493248975179446003353171942712160213835489689500846794044380907817673774797113036677221805042425199029878404282184264111598189927405152101245431811392033286440349910270095489334228758955155784936626650698957160120886649843057538762421644293241510291303102282077058161653395881378260096673838250409114054346969448179395780120960976272547723371408387339605523636029670826482383850311624538272644608997592797204066463662290969795297970902765111215883234526827792959262479116739172271729330433867898104727910588987771863676511780966205424690219930457984111241054190252076824816634974935612200926083094043411411572684027051477558889713199146681207603285027341754362516296984195316148546082249720286586401792633062350197723464440308041586178546437790755179171883449985507661812164980968872063501977333378820802759281637693367589463399713881066010515589091223865128236657927855225153190036076718146772514427776431915116782670791125071715780527562358633929052332279400986295076754987418333618754212788410014048453086384038148230691871891631079734610029376510774017861580181666684073662307730634706216966480973518233014073473476203304222134166337223895080864365802363888473217683647933201057067206836589439128865725461212192382372041765355555738788458967414720742323924017810659570901610647711049800612565878778340736059133803705026726525341030953086406846902702708368811486412035550711382263669044887881260614626331892865369555623465462030976616828950278641830492445510201126273776123708073863463192807613548437746982115221219493239161399128366266686778297354180927173204987982240670223912603780694291389880660442837426120034861875673672348841169413530338422934654353108900985525929921666565533257914039322096128007391437647802580794605333423788763339804663571768949148566918670773011406831449194288909654382897539505757743501361975665976800485373230978142746074181853685837592142112260935091842765281164617610266223553595391451731972391181386115746379793125877936744932081697449920412569768635565638289095971420153864857127803548269358430351464756603631976690622042545052086619377933750528042178779817606686938536116281273310218312536561145303964337991576993068716249526053822067987189917431782196644099842423665925556269917453617929185169183769422500166867840459010170346518008633089651836636155570168206529450602531513772828107156911198804390669974885327254561976578910044374503679615596927522778184647963237298609989602505578500452054161258413669124227106841080397421505895213220164743070490966017266405847350117565479613530385005036042126352013502249860937469074273260020892546065388769342925751506270950703057723301629361929124180725260744600219915324660044002164410506785909834804349847497984297137630180679051728677715917036329688555381984168165656621721278017938979993479170790892797688128782016122062337625184264643658150872848595132612004341411264658115742602008479599333019246768087231900219830010755525075969459556722001224711865256981984604936577959229963372514723583688423989999701012904681608273075668708150422236457031206613612873156372610360802667673712795377269402667977547994457360898534834311794220222718927374160471001922502491151881129001012527090367036974947811083804945507065563751832715465940049087540995504282040261646821716774118772304019732702969850532351808647313835615635009430623150153443118458988768451787615254444549966666813739098278639115306260571021065072396671223200185585048977675760263686699572724486127106199060102627656670229936132580596113650413697059888799984071242450574800533440137779812253859583114474961726205402230256029310976061408500388735424731945041610059657578549347238764128857197674061939684368251862132802495353657584191259335856005896958150648936767632228543752138787479480209854143873285032019156072279528632859429689417972984667870102772930610722376786860410540333763183120480558952746350981065300423431178508487430926968486059754401510937870636634560919009560254258057379951240454292409465525544133544513391302431753112645088906042503418143844105511366757246834131436361858875644140737541216988076124967019485557177891221738137400895015820696626121991866682111886301297892196806888187426895239007263158581339491536417695283458219802059473592666054307835274689490674625823638615803234040990408851423981217850197053780027761224590401043698222170970455816890708453945752771926800002626167446556099542887687385516251307983567270476419847384788356475315651206293848907638633314359943254916232280279801424050919257059775460918229485038120189432427294070906386936343562837739220073585936289683148763545072264492889319548100210597761038441841016267118366221700868952079302447537464678275042647287328992593988710156354472369456536174151165751969866558990719886428059207789528708306961917309176207150674425079970599092324990505044513328364349311855601510581157120463516356959716536929301562564547548767130036824792562636089836917752459170435772948789655213038831396930978012985574293320139037055507823379884273353275221087827302074215051284362087911377662525049278890021355756703327977837454940798515810490586927467333370685215382104316384742023393912214225893734379058252852039634633500627782982186421347167839788639911329217593393941985748984285370038710176015131423719050544087022277299814355031422837113390528534262323622674419923566299018405198050263911064383038559307115912070526738204823702423078742803508386595815089576001099794876185684318819223045576780174524901242986251125842029074448404446132598556539762405415298395106378270822199858575048671658631199983220421728641701030717007943313186139373276160958560396851674419121649772529472580107071238811044454226282308648395295323556254927407871107333417569671808655450794441945214983908058383260195467985307933790191523268427974423642958570642157851824718813270973653775210669740027369559304683377171867205913542359560513665603967153644853491731020698300781555428721300302328285738692856981047723760493536378955210625478543199688506651469967235776598215337331273159298706475667381384602984567891006593176615094628103261665651985992695217819675063731637794290633648000176863022735323533034162113719559789955783802252987877562404653274099453323792448548242718536195541300702250743596226613639587516417265264267188170878534897319276900122217071963839251787372945318476679460299390403806096079918798816047727225392926681058398328181593318743015201080900757638112637226365431113406190509347623182744414012386665719982865394721011809135507316665416563186455416129426513485762384370448463717155591577446643392750727707840074356924010575003198120690570363695685927826176816568653599342311345064726327740432575387940932303256431370210739062753033324890926005745511712353353617439601916451266361669848546520567221820262208488372081263887710430938423730209483284710859022498692676697553957705425090236068175016808081415371264289564053728618897976445561977822429934851826570714401763724908802886297949716811392301488665544924795130121505019150123346374671226887873761688340636870280685823698423894956294925395824765697943351368974855650685615232919144833065513055563755188757453583910890715144732604169623390526231232111616494159876916605973849518645367614423164759380358309075966987184266901049983178791595077695375773254374331457255402376051985389353764807361126776013489348263658631272178267533657156707083776300707018761557306458184999816478178630114794588834129523897106327545140872149931515164935531523519588816748829486968540337494673770510226743965424628673489757702775052734983596481867139414668819491828398493521695518313905632763651785107160755322120445915207553138599158345436707555396026852839105900848447334975102069835587188279846599255983900311656460707470669239179800948623968861155812780618251437869000660422015529232202009284597109651949709163348093206176526991662920514736404816577853016772210513513036652587438757299778720088474676928374111293091199049219616309336316038899650765159910100612876190545219084099666738844831426443699789263235595362217096726420117130986482955123178528378571048562756482505922458227886004191147443913865184694413017694478304975890499816980398332816827000495033467589172194875527721894352930608902416794875062479029345098012113490254268145106588188833247775923448552480987898696896973682432898017888177563619367686707420844856759401915459414343102647059022336677122039494165240331433291825745572620668843453562366495728575395369062922927320244794352687277204081248267797912965389354625518743277698492915663678735553335430482812725419911724376035510734262674212241239179397144190525236915597294357040427556660036326119035516519292142704707783465846929627384498888888039731294172596924043768457175039493780705806225954607480178833886990513237871110587256328184867853082666855466807218109336551457364298894700416426208990323252234641259332833161827499998272175411899764756771435140949147889381668430680190602509062152717245842315290034057247809825465717238689408857394417815145146526722799610948155043756965628120428502015304207711907922348157756643136028847930667946956099788730492835158537452481879197315729919541558376324169165183050852516149475276414057883825693785684670415774572728084857912590391306177963118948766973066131965906385267864033418911867921044064507578189433230020594281244996882727379042486335137611557875739162396242821957703644558707961735334085608273426421411419730450156064904515086527258951411502302266651695646251010767303900949140848974797032020203609402836659741873851989936659735755829720597975166500412270777225035149448858695498429211973794284733168719063810576246519781989497082102789618146563553520978447334755485310132853454397683173905811930432957756930185923659799897999655800944009766065354729106701099004681373683063958480615932305796520365718764622580762938710886079232575874207463777462382849118654460971632174850247506933558002046843700251940320571555235591276167866806076711191277186456596825801200236694232713106044840548265389803427398455690199530011094944234129154702793373994009580381658256034981861347768810627522418095648453688031416549358557375512803987674829741216659925220782532310740029859724040953172722284396649267492796581406682372623737058029486299747560242048289371730498469013254624926197370448570274608472908601837538428510032994130151612639424141252647431051005061549301984917592985964450772478640135976683671429946301703518157125293561789243341186842669299493702507184299202733906038601428600022679385958197625627783554867543992290907596547202921525047014521185226656101221747589065898205267883396713619257978386720889674688019425432249665325343383253620005988927856818851941226901882205932345316207976093485459770072152450553846087391517906347236862145646430562991225815898010872757227642981564994120524256974602413112251175513658986322508067427594117881313205465997502517112757680582441193483510424651388340195894794435867511213927499645243916053987598716480885550012438540899768235335174420810742225219841931372094625088845918819080875858777034511329464630439006576029467559826243744798024821762070694875004685617938367888270286172652044391709457403662863108885803287942117542340630822463835569398109035937373530350570877680173196724852670631835468725803405897157203657533300957578475953807034081488149438859426942990998145485256801792572966008252012944535111876895649792934902906581298299091707466216111626858859818882234288286552792655817498600615244430485874082922795230873181400604649540544535735511568637377733219448125742120284299381999006176737991004556977590905231788588646472093383268955355220789504893259004472956057645564488788617787788342214880559030700266584084638393738306183114400062622180774099383905775597438782822018421730623928182130307039372057514758017420841058221868623034172864473022024206475716947937064890471626384310868130654972460085233392191107516552352003723394606541491367808853600884238015834623180483008203642952414537912198187898828472426427359803107446882688446746947373166330195762522257323429202780622988313737421138200780231226252066248711631804213486454982528609214496398608820311071919495708994867690171508273318686770335650442549512483496495296321433245100444452366745639430784633384797218205011285276877956770467259375240808849651736712360444185227785736277288123821717891968872315213746880919725934991203456686750104103955991177376320908549497985076282049018532295190664794634329760632122102407991871553301335018616551495071155361724952275142143297424355173484977616288412828372117025981477756927589193171766624006604695890907909492991232880392620814422467958940626516157586112970593110866287579762260283531850177912776185236152685629995387305340108797604796901692035641499276898795124534346900455496227025525666027034926324360679795564711380750876588590369435798638159085698650663966807308657481025317553630906519102782060575539104055733277869571539072826491805563203615714070609559165971560502068518598042063419040595284628268868407903510989516292759987949853278986114037331877644372374952066266101011355874519201119849527876992718811662956795058782511830071792462812394048803130883630087219207810444099884447048449353633952486728628640225304623123473950864657039356047770150591371269263484470600632755836805062956060583674319657473147773076205195459174651548321857955264564977562169183033822934456971758453651439461013026857721617416927424654982511075700373564353292550990507466861871427525948470766058390753701048075143241963089806018800702108623384478911082131155948248110932307657339378407505276186685058993184039169857693526208009820193922193414196694477552008808785621911623222838973953086816659436669125604666229994788376336590555709769235016966711857030352198238805200495617595787240705162230851323106620547279852493638592110797668855504788914808079107026723223816230290727636646601607582436224905548541693198074328956501928486452136774826321372773131635217995238263523425225087616477735739748205820150857366267012844661369809324403701085561081279209953902570195103882016473931098124586426660667269875340631728359162003981024972454844497406826729773941516000886136583650682922750950844130924630508002296528548089046997033763299568324596876302428019507305342562901436279231141247271648931933258912467103242142076052601184039640871290808856336694109738625687735640902417579055860350080691849845918592243183423828666198488000645257336381956774641540114294642259791642177621764833937322245567295453655493622100038335455538048050842756519389478419806934320089856873326659160517878950506960364982763444240989053003802870216739032590584660225432566404534840263621968368127801202214138305798703769293809209708337295310191969600228174833249445545772223034204697264028143107911194400118896489505693414870444961681460777401112880747192642427135779836706763161916816706544330030914657224379824280480205041811073095865053543403854361603277105966620987190868862384419694917737109748113806436452878077485559105004546006275818464277822541893290333395508579782736909567765244165403033439373094913800850831430842714260599260443528387030941652787243087340665758398893272341210529741365227170796117339572597420348079704865680690137492316293652582755668085784733625245787088292653932818633621390755390879977993563128997379984420208341291361984073975924873723745387057597251073832374154415621255706842834448710739977247359148538902873715533587282423015491927361712703503207148781003262169259124854323840818785073011310912946404929365464527456530838630136776303546846716887422877827644361408424882526497530868335938488225756624999062191443582250809980580346017771166931518137025922109163495032864455183885192384268282308858757023236348527276370101034018802692749077566701773114855514912629773686505822364054006288899678884424462895923444872279463829984353483330691043390233671181948133730646009034689780090346633848925002746951522310805897937999949135135823580339534563123355518611343283695959308750029623872725298696120314875748222673103729179225175132931972369448451533281992462406652748389007484320434550337642724882602821795259316304506284684292225092031411220479289767797695916887760093575938086920457862118307131378633481733801564485037922264804979456933164802081161438100689203879356589076004546261860432167504931763086579819623271218334475349044342030617272997935677928256151884158623700509027991217857001042475320592882506498596725092625181044316477271292160176186363580025788834318760230599577281109752897150785477248639400365875171336319826193167670063548709454183214057575715271876575379003109844784603607727441465962488264007930923214533487281795654345947510414308808158365790476154485936650416413839306762583518858893731916063652262340680062200776823498403646086609359331990706113051128432811122157334565535181474741262965344269798275210524637420978422530334235160241784681121645953027834092604189351196329881440738979692010965101927909087410141284438944438173054469649527815336057436017847134496187217463888937195474004727410977482839383348955162745123336715616227440328624376314677496184948770237686457312422889194107106265307770984307606346970095659653443132001080370171400182792050368932983454174862166256996298576119960788456535092511638343360133101944197261599754015108421800081285382293156115530408228051997642111897462272790139475396505289975504531543165114969933170565499601123883533342592832640356598982127141783844800770019948555245390527664291642686937576211280182357091311446081105448292952314951259202974460463814295728105945779032744841982677502890287179608832083809184446852104141414642769134418140588481243690507561821032261039365034736635752106147750964020024376914549563581489233282522992568288919461483154230197810282168814266826534932924207523308128381713275212035864437771300521609376778033269277334750802479996094663596024984213130770698676371047986920332042957572951841280637015919064278010443852275658720151094122860120753698702723762617274865252452107140547606393279404619496616783149004356972063082707574952600497454396470284713519302729638557381550659105746907520252842770363916475989547920608521991301824188179493624509758305493686701075222567383198078750602970721894275986269037435008373319280429204585121560467300226743728477942270554687790858587760437134526376892932822137858803462129119134534594767634828083334991685402759322221381873010505675110316068628154962819088256963207765097240977594965847165015226282951691791121731969801028308980724467012719311975830449580122864367815117803611509282747221962578826464149254846289020313236489632949705161135667180257299687715811441535755968734675032955463512005383333201422000504361401892108608190195664302788166706218269621325687112204233314589967210111212832496681086925786392750145017571634910848243852928458084549148744966204672368275399032323899491569607924781006376572676720778592174668567739669783001404743392933265652683351694267452137407721976206890717900751734069214452656109759173233469002009679248282703998594892612561890257173129918670669463002423165967975168086790418616060830805654451358101160888625935656089077839730349639785200090555185633124557566393574535882772603329138669405074210757850270894194197200064436783949475008913149720454973429796578413674526809090138243142859963606746894814541223686261415141774819317533044875223032541251918383304579250531235620562638772183717231444490076003833584103121126145656669273033261130215011674416295837824768502259488217020189801664277138235433888100450850320602242190107084353842401896087664355450390468324366507782148831024191020486227950335576115159187864633504780993628533140885132230118721634861733025395758783495938830266822437376394180268913736208546532148661713969420214038156648918797652864051156203266363779320063352417837190641055376225906099134082778687738978008564518635589156318785969929384890399195701330526853695048769292156362488607069837451419286731102514670558448145232421771872239640833882768040982365931113004007136138702995955837652614749082018093277989001438121400538063573171398154181962078997148131869548657642256671345386043393809241564208419914323015085368516844519288093760957883564909397184597336059221897055000325476298078918201444893824248873038443623433193756189707940889057600206627140375492789595245536906244502216609526688641436751873468508536797021771365693346831429836900534221221251795762805429849303695549401505231752021127627067607982316025313852417159232332553575595447643742707823730166427338263871973768829966537438187510860062486160800731463051204762988527836467520437524945003751671016701450411255582734690426612968981248880998206309065034042699527324719338962109550692161327920923763208880976511490948352274042809991406225757069242128496492729820762697774227656770490952134022130864790851066244944946348719698678501732962172430888528870463215120935346724288943108562569167182203998898571461279658693487105063381636768146316839151312100886928119717306419056560079725472482689218956869856005235833941882664447422227550854257036018097691250697641280571464436183313831874891732646881016905983789406066309196413872283208336270515983923668910962669059070001371611447967818194182459410490845207650638945318640180147269255722705756167515035321189150755314699347636479439830118789395129618647179016360072231651788710329592259796874271471267350832277024611658105297806206601711637472319014339734515743151426102382058722405811089058048870533055667028382015064448545925954942421799310474400670098300758315605717427943331844815842728686151335384661834137362640185453150672155267937060731181432292754317840837552357099563551770119135917766012401954396364132707980570026641249533776980211893987818281125536254575575664436701869085603805259558014974842367130665720378336624636693959416474994790477259097802996157229534637416134868262393039476298289548203326556953260789607429552737980730782792998994414047718309606250440687416318067518641555814676590629109420982247749391116509711161687859867592522790178815183509414023262546596231721363410872683582898061862405561697897739679469962876466071456799679948995018942886150844252097390657902741717243984570708072303442844499228478654824858143290476021261245655553660425635063671546405416685579145239322882584524797795971266562508660395891079284357648768091974592737759161904778299427571639519945284626045763392555095451264979258006322427006663804749601696752017577718145313351736974389928110433326636706630762025109145918222817862758973837694581444696715680619498115874540321844218604988967931429998108458324970016856187194086317468007093688793889615751262013302468022108551731324069321079513438183531252003013350905294914585079243293212598634090714263305036957160237034147559865698639306078484377022855562778768946435311099308869344982100880823097239456149067839154565458846577459887704207741977738835069478849740629392371174995224003503996994530870969303311889960683397130059687209072519218957865433572100991550723555826102880560665470571144591562698095975005303796046898747712178626717619067825899031303385572634098446585354964529054288643681213974545236453581970383762771264463678545023315246596945285900416503748349490572923964419167522385605111063709612852966578723161546011438132929662936880376767730960253884103103505108205206324075956657920091642798149101934949077192931632104994726667688104695798794921473292030902074014791081682127762872570468003563176099794776758418985084212111792063568492568276158889251858064821716841623275533588512951515783278034126890503558323688345384659877279262069607872443505074220133318878158886197960430801640583846406798890585387462978113931236687827530782533069465712363754855193569294088346458289145779472248986864471581501691797662363775324034583193619459901408836220840972584651084406526844446120105994319459159455136948948615991364482662399336253242963982205773047473351561485007064591569871556218015612983281783591029240274849699628228322952579927175964981519948338774591493803900114805966426509988426787672615989807354768502064090446100814587692020345987079907008008800674134087838097247212990894522511287320915794927324850303863503932492073162107070851718976579329952121813937744610371734559472118692208114855998847486110760657917213468294815203199098529303994916961466753858273691365532404651208877951804187527926194354817660131804996258883004662062565847887871394928182866294568320315800232290299081040262378354571908827199455505035823056657038248234952331446367406470305436657877712965715660790770911458247705149876219497350260573944997876727759771327468021136145455451194795037729086016685514142617104010774465857246384722909277718681527965914030275473143803907659834288018178382545046300274948361643717505748098326561466421149600646936957976295866317612832518439637417022701546598324870190243720990894461760493145768398968382398973571410523909490438551703695110159384908798027472815486266190450381219688450198902543393090959696021229034410582013285464412136769519957922129736703303256135133665612531691020919603173927519638506138873917745946590442124384290052416389896596815158623034776643733151848652704018128494526663476761527949314164287675074417756549626783798413576420536516624729673429865374618251977678237825615680914799923374561915652514488877054117891776939985454223347244712498871878013211315522583742398162026840250710206478325448401275109891020388739801474217640503748048737862102211330748496659443979018977149270588584320765992367612393101266382546752925187381306720543860232646618082459131043816835001992013381062043379600745480976206535745646904095686822015205108282988040407001636722802213505928978077018648286375584404502209428795434619191774613628251799266738937008357933503130154374275023852371755368920390676218849284799609600621217553631275673168628814596601590945823560041695091128319173711231805393353234572760383579277466231373732694527081681127930863840313760508529658265941132884968551063648048763554834749036353545972130485456461993153331167185948613330109132959721422964362377321806198809560090634186614720810981949643610132202027748444862653719277820562559265160632932099601219432481620493507462971556386585649729564973722724357212523018546396161343714658871193818637657249435063037474483043579059296660915378679952632196850175753206692033206606973592187522690915846254879054561600892635717259365448221334162863150693165529398519683157966131451509867841582118924886535779248775361873068716071653444300669097145264345202037739532753316612444730426473501470344729639740759967804952136372136019478544199767914378765283445319022803396909877514145785796607629336127495624494496452234526177811685671245740501135956596739987057603779870949495570985070806173525774101297761115414333426883738405683431327649043518108282334594288239471240451692377983231898648467399520867186289303842570304183566009350625979276736927616410385946085576347928757524000722190088055538542705449956989741525464586975722142529092782857276763406736425717838292279807005145006382462745122136037809597897031089297733701041999810403911324851186414533696252118557609793046415616940910015786421090195387795528903641862943976513335983151164994242646417064064442441547038523804477769949114313697100977796409943884047660119279881623079717283711403397556688432340116456955919608907905698859541907227153467717630714680483727228054309416147525853769846692285101997414581052660258702673280668615207671048222475903009924608661447365803360787297046332817063246965398308337027965070921586960543669424112414883262930441030658489212542535617232282338157850699448458030366918208025849511727212018338905210976987601979932542404386067237004827226723560288973042178503285147458445656545428627854032385179219130521315830160039019636085000261842905712629607404665353107143318604032981100453308946127995735571433934349401596443400989640527792500408231880686041313025274077835294383121012067137870544988824470779404959883685367136337141926003216719870736332634653140744625834849067651624481496101994523258395263724475189245571898664504043081468135595534970947637024311244800106736141956358501731598637142510097772355516905255725724990849003133620766425530345675518329921769523203988407451691157115914813769388020070534280834268218653247739570647687080133916609525666320758535544525491906491052540319221521535714453523833785927809611329831543375693757721829141558705367816753915229394259063770484965772702517118077355712432415098468321790892264870469055787213790506708232466549868121247391373753504354755941312698622717702071072281598860281620777894798536350483693456024005092812511516865480340923592846421332211908041201959015256970839851081687657312018276704451430113644508005252183009230917350950699106329530571650132198354422165343009056703301801625787212822816126203417438986696794656942810563191129609753327356999679009813753894431526819487531269101877249338650886572698619265027325577862068901301968294268081993799539985807946146784941816127533712977726996260169166877747877330913766301209437239027112196065850139746569113203228468967973675202917171455529379001709735892219628933277091233624843249451161388886612312698881883374171563056771087544955808785001850336405959661909819890941903502742498384098091408574073188102500135694942151305682805914734401507106530027166256807699984602998852591855997779382980571874032360883031593380707175494532463086783712902647773062522272520238141335821526910228859596620874297653605523130923122887536838201305093781899465339371055591641982607768910720255728252671542397674034973923865010497457021184221352143529575278385351167455151248849532821272638904250721547413875668975334326138046746326957185459117686136873513847757191427323277189321100640747721856114461662579074320053357384468181627647802403084380738137230825281198166377278407914206774887682466499938361748172948531351855253701213256021135496104973719808448980347593323249798031283635300023643100204517510345677462973605976274020473121826578586123696413514375953416658437757603635062016933422932712826290613952862949064037371530362615514312581575470802702221246717590859393749552711215043256067360909977921203353122105153928913931403517177820452806485103569465076991632238787146546040974534165143318403106178018324225547302556475297092306474255890706225058111446776803997729408038031588318387323953509371130743578843649757842552610445999858507084200848189440894959779879219041601656382078997814868850084131828786236562670109331459120619960100019465733929783320924441935042437736740031657354653487023830574669847136386285834589564663134486210597058463344850755754260911410905777235023965591840709244014887191417775470801398099371900689090413275715894641715623293664578822330000457427902502070888298572952890180737102229511793940938052220380343265980366352537863947876495252113274945306402498286872051136210140995599405060103618270047975641168246674968739503800833092269969259412307293902568144243177365782828963414372495888736045285544052212890002394170525817408941254956922675112562534879381051992078466870258274385205261011310581790057222943512362731615793990223978872963288677090964400477209110183450491331880958462426245152581924581389182507823536728709509965141192138596621545107820234902692538598009395131882804364675878157572164895455059681756782292496121027427048541055665166385796012150747281208590477300770256851200476064501791310084236766395794983230421021558380555737947283878598513310481544707649436328656769883202049157807982080682601891810409911821329418224473954967324049177337819978155772951305574785908542143092499187116015643665298173434670219063810405923000632729237548444050750467121839753770243462204116777277899465125707776627032515765851583306084344405921659099897647040410419667281673186779925701752652299781097459467102772333446334208923704037509166862969333965088375404422511862174420719496600683219524426012124471652302869791704777858974025531944104839881253410607570519143515039993858527296550129362679967859848062579916594175074370515326262652847300876855106616017197565812568446426518948162122705336352991691732700651967220427727223637644876137773362558767184534865274058536223848241122920308062925705964585790679340842226393603507230994299005643931981554262553816295600484201626980966728227403503642318785500434237556349953827213231733010041491164309914118637651452487764820832336398990802229670741647986822260852299741429455816097261044026696820253998767204450828048338462577692667540049146571423148419555392392026609096539588371864638242100387021634797826683835477058667773286869997005711754065374867182993037560819805078974918397844200381434826496298859618696081325342706144913122058247398427810400837078851903446976315219987703046598968237393013456286250134865743917156893404113847617409559829675987370565429156037344171909619517684765374420300429021700203426922197292648435355303240100697093960700154886781533533066825418190212717169045262424045540919083022260902682668674270560476703013497438414348951857105850522055534190973493734556188752409848876909410740018247820461102966401104700111679014081846762904595093895602317146258598533613840870074363102589948942381023657578734857214541054467982108704799642509479591192104265473258285005339831822176329964050889068192233592029017388738474296186476121681808785507367481944644065808961104909212807621458261274457229192748444008687119353436987430915193377219971770243599839300381599402179567189191358707058121784256085471669943981246039713223400582021406034559976479783910154973842370715628275609062004985591149203300511423227634860934419595126876271528478225937639619530891457982798206483038404806301924355161974713265896283624682366853360078971327274451801920708029508486081887121324433407778050709092558009995062356227408126175873916184827844573208050370767527983318696862421418647505242734915855648718097851704131297530628856418688149060736839444910292093689847726552683391770465203016663533733209432050029264431859838615295906759910498422859350049954500372411549521696333591233530654805164435753761180968013389025280710827970595361646285948702814427681178585380776200709598321540984842683453681220419168774185073978277314494423363988647733475661165127584455339030533530398143148340070426273267217222713342382193534960396386392652054836092672871416859018350086168616228658805623017726260199487948887231112108343416817228307645904675945935096136891310690329113616684548865985830613933216322441961066879454918884874883588610055216334185373982179590582186828195757454659515144548257974043555125398908731176498960698034500096745922318112209062607383298602852024433683121338413069611935687465921655373025305718877071089026941763215563424681030885584437169261572402572031628041716524672277250789876356152766514797461262449445107708020052825755567686463857938601379049960286827158096106589225173172479250228282147759854584062165481991537916460843080175220886696671327914061147487664500221775746100878446679276013809308051778820734565457668653080123608082565610216844198312243066901993598225458918701286799414686419373814468695136237977360451062669112027045771561388008354803694951720120697587945444205281238832007896536311002240226255394830330365199556384603515101949305374458299221974520669966710320990442666579109273510297753530475967364173733874878838192738678146111974417086586199562681790762775727422874612811798725592152219718369322286378555668619689481003397524213073242703941841443223870721278634909476229566463248805089397088234188253197702293281227000956168532578206910790224791952461592254209598684355071747598086088507406935241226429880971524160826819033230007332179208479676895710392805104013910938040270962154294054518142603399043480650065278905783252327455935233136006116313313444530821661359330993404002175599747386534037660597780917649437987486360535660679326398746793885509851397272484527633922220206434131749739364123697983349599596030784939385558551438037427144084122775254287219165544013746838440490661934644529534742989919105796535725485502000569197771799452189624116548799745862955450248541798677557769251780403997890679094079059891721911472316717705948221209523014690747045858546235540062123400396502321005720131964732518342250170780789138358960658037994055778835531678866207861243862948182453087409740498597437350758592409179394681225641935040165655872308136160918129599831263369917490062485121710045810444349190283051014223832480321189316290754710249037559199986574020567068683610673920648104918729181731057638026867069213070634041230089022861936816520289794293368986319249731024428762332366071304960798210816458177645720686647988639762919263341749210450166888575466762229192985400084766211202472439502350982191969132945630057766480431049062468542699111418702695404046805596426213098169136083278603225386314753028407320859324756178896311748971521536975051495060816241458963032585360278148707988454638438187202066915265688187099386682890550078927659624288794568023556917626732721979125998670678374490718512796927540086605533859750542437247774804852658572640939696000166179380211772803401995779135412458191382820344266975269778255363795172502077008451600481179602220955843412708093434388216890031271081179431919230731433953693324362637424911048046291589097378146041016347581099673577809093768046153815393176429063084804796944631106489965548517669075898632223686737603675191738746835069329893221815921231894014254749289549048147156610830522607101317111129362047092887364999732196609468864370078164467145239128987210669113481372026842395884183497402769175309617400906949315532664940847507872663371211610389077700511402753279256276172562146438762856466702417748906274799910636886028776054256427358337810832757244484845303975141622725623432783303163761413313726074594344096977121627126860242163088513647380800856770432257318797098467239890583812398639983960071083295783410120684815183201656421099612850980262955317690051806545870802838129845886897608168462213565996878162529812673322303160150639798903787480384892286640289532755522038761544384241918693853910860876480455090994397758552032499559700706127983143560906650433114247630927339297124194538747231595491885238769768490021828993902686113874652036315155316066828469391173847684133000082977665382925149684750393814377910574192881005653584153181569494997441856524113274885569934532837473788451157600840467860388577690811759784140519036705106513424113724615492123675631494117427842434236005967088873463089841986115365011639815073596048672304673715268412863807155528518107554579811127619213870926608020044705920211094535913990638552439641392621621507568842883707435837786192867921175491481120152057443720395913683997547813545390298106592552186795007197041755448281092374987305070959436937530589960108644252891933161035231319691315224128344956393351240417239293637905214137638127436155525265631379304255165045054296615539738634033925872748912413820973463066286725519789835258954441271785090272828360536666150151725866825231334539666007702973913624071378059040487808837895538278820844716741588811940460467808152050490213628867333060646065791118515487413350675514006111781184133832433577810017060619395962324802723797185854259207450579079874816427058685630000817737963580182621547097302493908061634829770426665579585465052306248087231584246637932645467804712987234850477457453762411640408624573885894790646982494694389922101702995253256415069617534250598354051297831740210771075388401104407739248211663201186928447264947593506353729263881512498319236421745165061989108072076880443042476956963339143145295800556089246558907258287284708940375346076126399451438912954981126781167312977647509898560882461099556605458790025182034266538623628727375276837764655473345380706208736755800042209927004045762455507710617253297130880997123663078159185082371936065541017790312272217845060447939647692053755925875777454093562773688972919088163321550894298999145833448718251370245684582028035350589105714311628723334179466515665689105638889306833599440317728367894512796858007838920215032133197696290182497929316797326403115255191881261776541503096534923379374696165678589441190558818713738481003458579592765477008199823094240263337986418088944350474963516936436401034137948214121150579085885062744360417466254645274466699705722218181875607315486319081431667553751270756591453485279635466205266771574025234847712654655166402280333099056403761866714994995636518046126820937074537755385362316171710065519584125446336512837304544844146088028209530035473311709821527146014048798421231585589007700231291916222730199396036008840234352351052272311479347461661874249117862100201310394659973053805089470608975536403754617111074952109195705153390867439752304742390567922558993123455896030334131305014855740819126829802285754849761761194039228260677511734821886710768397112462382212884353517629451580426991959790121402828446831994177757754480035050711794756729263749978062522898995626725940332259279656145810405175738933767465242822337068155177834985981814566143417727883572063553175129115415401488850290216131870513492755842941684115080851811832761740155730654735954334846376038102485907331813625099625097946957402010574120446109811300328827663659842262936770802432117929649287195740776254588099093877142785422251620654544870094130356131836622888249526819434848215182438464010659384805073847840167319260830846634902524672465277545884928111102303259849459412346475985661186977746067324959579548940897558385284142914227580252621895059603152868605563200936814475486738721723571031751137750145462593369730697790233224395308715354911201343892746251879883713846234239266105443779025043993355482494864478805702350622804683733953060086559424116453460483535097995891955484227153235099997024022815503462665419329228074761083732900513021980998904907500140306818625771014443108439598669662418690013536791538627262538335386589905155231212724397118291098558481632446138791070673051139793489879569578978669133198926463296357976213717112046245753217290006433803117822165762644178357951642067920870431042689275774611880903265769426710491836043708300480525227761303445000015372465754914018895528206974982444030137156383354081396906642075723093326786310941837141879112951596608171957465965079128921329376503530109394371747765059682258407907120701601658676639609494869688157888049290577458408652094517953450805515674430589260728333326293836466734188868223952406231452442226995649647905399777265586897382635466443173664764229780894620250560325186703125763552750401702892072553542250874597210844112988851295690736759991837483321289260672398862605624989629967252397317162756134449689603227516725265955920826596480811591554618462664075804264854707426467294927410085711055595185837410312012892277840663093538485394059093547869639765426978903196784379207771126466217048412997212058022637236129625437360941308479060745644459195846850165318347125263664011124128496313818168652012881804579285872074277613524149284150915227147471990310798320052846924067521404388578262431294815026686481916117673314321405696930795694889767892707168146505869267433907420663998096498038245250190199557345428264878243747628490108750165747604830538140007726013890120689824948861441554873304655386936673799042557755296647381876507647078100506089515450037396369790964412507533480663207471772333042151173821623825594970266067802451406349450310814786811567975266510501728887700687770494596066301414218458175179791250590052925862138601637443095444696665356156951227536130109617413910579907794198452130690785601830231808878466355526365199871244986495791355538075901623727182284935369104769732788798752824318413899333131687660329178154999886245954734581047613333999188340082298651813730775321078860083064732321120002713196168741402422379374077160166317275359140168558465832889307029803296849168602388942636679193113818959434772634975523657481525672662683465377933818134192634528297808909350578732775667815061003719886568700598694589663288527738867807494031484243391305159797124519479845876862841520298274473934512670637897193213783233478544496800782122883716573508257525733644457957504373135912379815431560892205687603887472191226866217577447426858800816712755066613968752445864257101755172779355470451070336180133660422807535417139827102521585625643313895400370745421605463920609413228119553338966375617980435245576768837682467925793603522655441148249006588167682698810472110091159474478168018190398573966766325591656213778611915567768016357927452136579752021680943999786995028736991851503288456858051566497907092752060332303498362548518639808885523016401867915649028519032216539454464022073958199263198665022639878990990151677281265309775772062515203292897194673064008553262590121350879272562177274804784497753862383906174588784038761025001384705794102260581883011507069243851221598017333606878249927977537585073528390025745464325731533168440059402597219773149548227828434581292684763458982789591156460400418838862768184910210409053001745303422986952406493226041763299580587233977808986303878302061797423221750361764488355980968444629291505190432718232438096594642963578462775733642818763479788357585148056522711031419051588304099945935712095799123071591681320857935638405583069833213471026598557358548174842151975817484889237590444992519562626092302501752591697502609087536901433457073471367052813993261523527869954511676228361163995414238568959358657876506589467268784720833877621923453990652388507222420792195111722329337606240350259883976429965089039677115067055963105757469337310513668774971387515505024568263150531226610038191174396825850329147128850512494152201496292151408634185585823123754006744476006219100145071680721164028791997222785834322536801430490551745238421105120497956323108331351593514527355639662765857783793399788378457752062228198911014023181539356937001570828305329591694430332734341648226260526677974160690067127247635485231982176000944471777331613288625230698124653291176911437248144342752820044269918545095111633933281719262230100515134875190085063853984078883217718448994291789095285177276925616439544617740702559926553145520090456907821076465275097067623323067199544110677471104522452528768301742251066860586311574289098173431264594751502260861811368872037559176498459142842090986439483769829889725003850144483064058244676703541584930618724390926124196379494063740889327243627901634385104727196086595316780079410030822334219133020080490210149064527150626884321952601090906117368723783806324506771504307012364533343082482378538705618963357568978879811822108379639779617229345411432890099302069144240638042638870174376973287896732245209072589199053447077346725092155372070150537194847473109459373247617154014725887632787324732145921176389276887265344265280634605226152792650442073937669796703508066939611990158895643148436645622108158221760886525102254006786196674783121519001050878642466436142444945448967507192180970344239593777444342383018401255272470961635279729919003609121442675936688830555973672858292763774088073870270740379010129362749251806996076843183542194525783351612437126879464780219463299534112081336334081768124942437643998607440369228522738900310516986984565618519298752475296282560948579380455593034729792567917510153928465426552925562261835930109701302993720801860298988653818592035536734998329756194783766992485236537002367591396317817088015097171927488620041910291505243776825670528167905919496556434131803072873141608041109190013651835096045680810593779360666584921168186711400480564294461165366847234942910481008475531450507408924383873206371056684910705241875205087011050734134331073914576244460301169866418099115989288967542300835266944976881230400509450716337825247804505861593576511881984435557988861719299344188289448521395853494308533023231297819155038868595142020249349129533340471486104947172272473624404609426013987704343437264028686361506396112060574541992985323261209741347083588123479628506704188442600593996906242571233536543256359642740487744884731734140570159759858042545527362634175292058609838803481340363835436756866557972679519403768860462613979415606442735703980543014882141278808294510671870596687279171410875249768492225558484825511626868294616235378399867210278950133784534452196831044260457489287769983065472990893853662433725852480827637758863659742895577746312010139390978284226024666217977829902559154883212246039322584921546689321100591435657619474113121508150998062027312227598226872519062537289678845749114292390907196292348631086549395325224219206928334754430376075178943243498528999076241258046616708496063969263748042821848327905972341535294855947097195024327550892599091480498201611578976210640889275018370127492156223064861760437601229760271722144887192077479546164743934702378681225716027258962360709450456797416174200469548610001823655992331571315942398518112664508822081313931922448458768550704610847500863071221508273070873237879227682698649632913603532310878354424940164933137806396667988380530125864202488472356789081531948961603172394619454012651489291229377057417827920932504916292232201393502054580268572048475750842822683443621026092210169247060325609833587714841567195978765997583763008779202542284952375759490160676611016164035703960394561081626374106666454084663948116793743277769069135553576065510654876100536887374760046604368235957785228514108118630833104723826223112705763848716089564919799677360286436871867407653832728891293035189422275055843501032494499977487316192604647005691955105522554988534875291431290656651418952409088937504105138255582679746928184291713553129694239251227394658614759662144276083237035964035868888450028886799883046637500029706776399422440423766061790993316454878120313181188199957301196089556196089061278891859643181943889995673424153730552068546165075086951959243555609682349208086011821824227016721704851265848824852944929485969881275001000495716413320105478406624509305569119120289126962509478692824094766358078606959718391306200920530708121518256282953807755714311122793292664631510763555485821904252607694946105161295482301805097172392773677051060239838201400822482782710554709758440193112548705573066442725870705224490540033013310984239031431091668650040898820495636438146405028415961088380577612290642329059309935918349979384566362312502340794855776961280594303427165415397400521465950922398632782587590276496671560642070148730143840450566621249239830221958772194250649886050249469920805832691032008925133545979714117688115302258824022531210424709043098796214222791421162814565899461077152511122892627507556147623020258319085742584471396503968735060136525771771042086831072112491386620415060695167854029153912084722712224192639476939340456036298218216243653903172652232045800473250244354772158085146655288015964764058326076927551776751661575349560857169115098467915162341366591292647034002234491004746044717776581187393132334506778318714371655838645332249427509079315232848309067253024444477674505650728946038297994148104616053352877204166700840067950777465795670066592023217619496627277476527893989280133406022589326318006419665744670306683332299366741987162145713810089453532841581311772741952375177490011671491926904779908765701586118641936143285099759609117450375991166420846884311028109750612635417440642652107959150379328707728955551473351613639138281478169891446657314916783754968133270172064341692772419865136433986699518941094122485658396628144764605040394059172806099548353886301397634006460994302001590997838974699102097912539646106100283591954124668540113961930610668036502615208299550249123296147253299409244939161657712280618903679269219810265107341280677307029301616029897299006605841005998698798177878445953301676720896950518554571133483774166614810585230932578053083564363945457434966039613114084719673027354699751897735975113296607847987278047197158709650854796369937580801550356621855858773715340143047263465033162508180583076191385723749344913050894140293633303308259669451678826646331998911541105133586201205299177395968094301943111032676288176158005012714119544859131347490628428166371570336528220756222553290324390432422722913455067722165632132987327528154517014662776944934124893542364070542639153475826675041572336752893288088256111419411389684138700433625098620655306677187088740030097083091294147100495139298848632724084558044203377021459122745784212035134629993889866948864371422394713016584226080088437881877446402679324638170039219633554582503398348930064731356140263416310498129322949365729538744910462557964412643461835719394613735515337736198556346243075527658404792266001247735971481233068476585862015268803955087768555923058574601714838872603543568971483808274413501509360394035467636021976630558715365143913068154436146601170888963776028583155902420888420775619614467762914208969763989852297453584535920785722575335314228790358655327385838052072498932601375406059172703125659215471890307450577769856315330380859833487113048452290989724761486549956811853546046522445553312819532737776052373805033280864090639901729095645031711744648992172854853423094257240270751789366650300529143551945568503327248771785119896378678065360445488003141541508474309264716530980326466148700702532000540650062113140673322483275758070361866469362298368414121967922140222253551195791838465341736357731258152136692899486043913724158842893499381760800024256498774974154169502335262601414127567306170548125024943786466640057057753267355363334723911844172360641032276936699373239341537578840628266557879987711541325792249558177095381188353604776259898074828751420736983382720980841461493153100046656442095693849727425425324148147373573587724910623057390473179367974582856164961441084349217900927436200382360415325916000272079061061091208948218145051730136145911917257878774361841298997849543866991642853731646861907225070089982749390209012634857060935335261541247910039353337826646064116029984735476991943633100026720269663836380254571486808258431298566960137937581352691442401644454739943292301802231826137108725875665967074411686516364386651793206036131429014550708662545870493916539880293893400521024744628965756791015413728772258101130219325028226505231602301714738340581492081164416438615048536604833098412028556593741316952803512788050133442161850976374120579880923363811945301499524432729744864729781424130942436965765560765327543094775785238388700928121445443369024636650696760174379554398667793151181924315195917936160695971939282991623277327319758790071624130328491979101610897497192797247686177237604223329806230214903340857581597692577640964254011812077256108812792269431609413653906881636052992454018170384824535384370398702000854677669871442594326894333599009116409940115945132493058029607380750362154072701971758358336822958420603134386038010406854668152741965385575558991254042527437513796171977497137596841427718132570218481961981170547566171167847177569534258861735244259097457353081630356014598682226663950781039859311851547500572638416932523918750438599988096162659419208605128765357889020154917901875769278757482987818679336169679060275597886646324357456950405252137414140021585873934525916866916851680674395837579749387471903871445313285251813447650025503586831632438515087693776570285330960449541147192458793801925323736954843584629483354046288528082182843332411813268863692750084123301136507523852605385250253602474222584533375784720912362994153814391583711505216583209455412722297982858746320222678964595581015886480891957198900664167731741712569036657412279206453042558453299184095953838920934247552592977467170712341881806641631418765078495520691915017683866621204602653751004447836987878803108127594563165430245828945183738409787560074077839655357781307202248239300940769888133098198756432116311078617589925037329605525620685810025751252386250411770477799513433183894783092932381848120014355921291763027750121897002151162638541735086480634673155321319981136473335127068925647725841952685505175112976206476906376444159319794414752660498058175781022703648641970342043691064957035435642186013828395519564617823097638168335642138120311868589058064159001065541944657226153720635026985984590484661645119045452105582459205643063685173502739858891829238721286269355408416575729504295044844412951075395182884242046296385692474658438654940010899853970825251860714162327858299215359517147132989324692245225899609490447819156589774674521246690947038450777808397553408735816535643147009993780498793849549417653386070040256659526986337831433286924286427055260846085045704800503154013349887891699248119327938786477413152937727806493581126735183092940034833612777908516543354345475772513938638385899532640418786426871357605746456747859526154782790959143282549899343918600069571249401589042945159059510692221073075232098502712017611816691534557328463346881429144228739073705310379557049341499484168655998370870993085539370054834041493106479115461317172261535643271026043320672617137210602598563860151748588270121459604884838608865320874256897743401635218976984842116364248699599966932572481346547174658596016895417610203936825707473840251254835540304126871606752993919518764002207736165054611630986767229621351719584377264689700898025377268690216927180394908449566549772113953140408748021685464505596976885982383105969408835308042747807553329884745652236995047172001428828108436905990443850419732745702832942046599022207841410107486241203267662514936233861508183851493718788251628935700387620250362221198142578848284757462775156502996028648785184422160137634201508888835988078075313725597152571363308331272187955087271566160307813596026015612438483622006470623457004913636489184160415912811164043253267970315910538300301776852255903604415687240975968388368104815599448827832615900068132140132319761653856974312637215766913596687410133075332932300032967341076070898678038938912298501514859685612740102557988372639710961217614452958035634559436704432302829909206759705803752198452457326403001836549569135803956522209951351210679466134447959518436075323047031321248630410203179767605567577229388398482047736308040112775531220427860950500987567202799540312764831929275257445656255197130695114651470861695596353396799343325459391151883740506752909935385350595573656415098479619145896070083145740845295896024974260909795726873530592976654167272023649887455627491049988114994698882987366093072855852046377421957332284686961035600074932854500518592539083708618366159018528666986007994732047653543642436982116477032342296456229644829690929044941446989990932947022295376062226141242936740759944915507413056564824213225125897660556680741799462804535782067059435781023150503699822826471650225340474668067586215042851499928045015556796216604429099227856229088223688612998147831288842727383301025983140036381237308709908684630566715765267961916355132065643766641364029786415645192894559459373978212058483658834456077533556110897169094420628432145879555495476367136961258830777323914886811626840555230593899822813910556763153588036052040201205006983469515982707576886386019524246602558988224870448796968910918634130136442027249611299641293772961490360769681588242930103436311908006561770261274737253007420875167003630186192891600048919768301838426676634006420473610263030118648643259112004980385875135466866101565651044454839261428130544005728763727494199307622845157480359830139943027696111629956365317616138827827204434500537827128831346305057186913111617848483042250240422629284715530673237304959877470286248521938193645499907141092536929179198758250558050750493756732575946153315520066217275563266600972928268252966760682517555456435483796731416960089287420243259273546309971204358809886092232590616251595848478204771246575996765205118637604944440820395327856364488980571408151749733412891280498818760510008876791037711409070742922537743754329619757865950312478740680695766204353306210102262025076420751539087770461293344006455901809138112433500136089065053114026399756515479577036192341805653648800557662804733211021683313816513827523354555183343015784778830049414222702431397000753088544552649727106957786427294835169506888851852971648133924545832487913846660082033813233839491566648292433777734247512392574628169301534355815267617993663934115930961349547736308795542603128380808200979390637008202686920034249951898223428333214774588539661106266473948631674924791278371247933381778409903176141059692901603522309240204967110376317729701382919965706301327522240051072780776313442797399164944653280252827280104907802180583947050128584124976268571633710362283049784224419924175054750001138520328192227033864263887268615737133201501196247588482863245957003635847014270356395806636183743936862862684817290255348967677059643145362881684487429488430835706011854333457538989916538134873162822824557502672992358211033685720348094810775444498891542748650292285057873699458876463536157304847668178681082301727477894197445872911850866815883725523028168313407088984250608605852752496191596786095262647101512774952847078714116154045323864609746758081238655480609038631549392523710209210946792611447068445128722350836921598235089276174034770569053719511468568424757293904140633772492525120229598988114995831224648399994748425609673736020952329850113135273225933961258627285885025778556032058766738258090938517419422102841653875305180543141032043877662714220777711008885925135752770263950681121835337447378490617708521193889235945271283466704401535437174415278023076685923246310190409400818819799587619889141249262724133334955245799325485165068240564488386912993238546422722551051050129535806435332456060107027345152440859104319616130662468928711833756226909121982116249564019120635285523478198403732076140660262156338115648534290799551864274991038764092581047813173446509081253558700081345525929376409473768141504922295802235257185774201003355565649720220154365207765080215596270985297199678268737937068516138674650108499542532644315121152262158262943763409461546871929118935548343171268402957688090900846289350656039059428471255822357044290369140058126290460063482476071887733112389335482229466954162309393969739577304554360734436624666756113974846323134898168874775363563108899481652497409106188810655311560147234095069062523980969399362441116887280537844406652576993367315297401809984416769633015366101546413353701913663295222178647842599884911423165801192333456249714466209143346094631323506503534669707768308787661751582215144471529072892747696792641218976727431169679716116818373975618480969031056237921830005863321375416909628868296641559299840469108684478165989779329122950977515221738869229248660182296232150363516658683661582529155802905683855861665901918898240572525605036400760702414812325203936654592556789869631156385851960833808021444910643604173260897118500884821537255616379071343716106373376463870592068989235181923361308935231430308620175820112277565387123473829609850909207293059871212251506212445142517575276553102300162498355503342081035553808086566418218019373063634823754035899313591448234423374027575988297914092820794146274805641132285254081340520654231929194342420177901807215414262116039599632889939474124914402572947052257814591297560719564013373323743547731667273150963834821087180778062376089940147666619084750523254217540140311627740995859340898329268780081044223683386850464703670865235873537858070798832874254432424504288613877280934443908321147700408007878304947010866046061771910583645041348024799240681976414438797438944031563802652406691447208278148616672957919579568517142707492672622202951500079961194382487100390505953460750944348656705777147562868425646868282090244213986046450604381379341153949068837951490085980747791496449232585972488759342277497044900976591023162194156244215068515209905798173097827644383393963772889670123921716448195632412542363471621035114366516448797228548139793726723765638117572101400569700049537020623153925983842742470833014555914682765978513099367406651847319655187735410084013789907578992616950609801753551214257211960631786405581136012092651365410354220220685429769578266408438545617859578671307866690631966865337034669452987492076065587529394462705115602480523100270565814056446258558116045758323958124960145983025075057896475909535398438576531941670084635959140081125885395544134117284542919101639144015632483411884320719383941613396107759277627214647794280240153524369252149838882712505578871324138936761466815297479180842100049123608400388277503459839230241494543271262006679367213143741851759806612448747582314512173027059764687912176312915177934693712042916004788304802648101270767122824983495192807809414796116542982861886761392186959747911772574567950648503361281546924183971271068102282251625865038469754404126381238980076543937256151046711901788645782546281336828714314622613718245553174046695133497679322311099126705272382436358672865522584864974606014078059721190625440374371224301723994367980895564153681087218178177363559252925789112084314732488791002512312271204996401466575396250365883504669126521844722985350067212627119877028008106707821138813304242257668183953032300290424096939240802241060280119706649198717157940315791994851754211772661608774623993828379985797949250369156909953546925726133332204862804452580287469343810148358364871035739416381854430122012857239881092489655298108579936403684576177191810483247671011293972737647251166196977992588575645221126643484879340504668003293384399041192726452229530803556567223996468601633392533087919854627532536925649262238953322910469118942915334471143755071301963010007009797333411034778824074945972238562778338119147926423624979083422459873887841489665317690144911739622593941951160886692633803703584542716740070475756004410072364941892287197877573735582763996831958439300646510183455843495918460479054163227898391253694879457807549308807318701604874235717750899694415204220680121706028524806685929257946859682841097803959169510212533076611698786943938040893166722367644106643233051183754028152091246042991172680587452436505539017157662449463216651809580597500331788333718006337461885484892931755620886493873448978525975007868064214848447669717163169635766623633495467206910299909958283251457897416072855631888320361996308754211456629408185557509266254927877796661934194274230501814531563528073256525682084537697121474001700835216972923750191569730441595919388660261142933595536179348971394115975528124162262740318207253341615759011561326061405623206408564032291120280750841665929758890993336394049719246547839133315184413681789094584401612896801257162140406027794367015999071015966616896602267038962843472075214192352341171378517668605619685243766736391240111755813256062418222390328200038987757876543350658051758226572438917455553550937040836647905187663991959304558832253171968896417625856610320790905561391406337247105884225031762495798832249337329321170243602691108442195518197427638949329765280178038937834549032819160824113890456683557349888081597794378996246805592354334971038946230609592647527743919786667649171705140945228985494903205440784515075493748780545586518419612045358567253117756342282659838348019188721572688318412995629461627417349314058352411035004454026761294111805667977259102085937247900916920502401420930992630056603602380027376795387339188153779815285450677226870238953156660362422726671937908861806934088782532222912743495792182734566918461715384723176185226984132161453779099818441165194893771610291470353161940880597351678359165583338524705167129071702985749836600792942798640800089312586078084078663083821815927423857286611714363753146372166581252598829977592112973731625519822873330924743210998027870179745700580148666609601102900173268704889706560264604292526258435852346892518117902239483797697678445387591579325390931216752216296327850638315380928953940434032471039945258456235559504720073896277086365202071845894286349769251215578654202631529274213558187051757710294563177362665925931932398249963021057516871444435473785178060596235722200132731704914572884116220395475375709049920058002126062270140956248525312858147760762853608667221488689081520506453875416397510772856980784357877206053640503867075018922554748257142578862744651768707643790106574427913888755770690019260259697926637197094227549813739399738383252148862096719033476481232020914819444531189523560601070600299424473076260625101096297316380149274339842847131401019849271215211669478115266298745164975666301629213902618809980632157939513428581969422373074846016197472971847735186126862265338657617210671854744814649700884323141655372049885479742377679148772004882003258798524261852956911446073249285304228829188262444709960603962814411400858796959780499363564007010282398954345933870719389954436535843889483381192220473824755768495825125427715625552889149782028542347267886067568141071407585811686753883232972648134578126993506787563432583078042627227876044478195491863790331512829350713170774095863360859702022119710353261308210516971129075020264819645226631480124600713443995364447227569646931164251135416348803746902024600747369900545256630899031612769016599601481180227303876185523731823644795661687722721527622133137353249164304486324285446207469892401885369566220916046713492046244956644025726287629557487782668289055792330632534961375716419931597100517163230242498144996133469509564274322502833225693684060420992442054042579596493860592267081631951517496393276299336760199396062619662294049304135774293141337654085123550826740925837354305244782362048557246576205062725100354697276544719132219467896187254569660879106198399118338875665110362489983686620659558108520462009038705386747019613116528526933034391624800662264527796929188136536461247198203698565165042059577861151289268336194885786829773919280014594840742202135415014431398913421994410568639294581640051386358814341517531689127387255930016788710004952487278967084733416910063959629138041833547541408185134419317143022459432382906202071177669012426374007817992436145650148841744619005423322140695106262278245223265607013106257515430323683632398999261157613482871776353962228699922813383897337858438912808531806923146814969647010745690844761657653349689400746121260719875328925602752853334760180939778368820617536365574516587460620155181336144187976767080050335686869758087497572181286833687095094738067801107560649999626155600032305896770941094334850999249751887955401078499244298183648438688882361712500126402735779890176969973421368954445094706976262097210540600912249505255584974047120672261278290052822375236275576661587979705475104894061438562738578063003263557966105163485962021673939834456358690123380494673869431629895530612747224630904605144240194003970267080524112766710748868647080552302301075265669531909513782470501641679714993543469211811218467884403339050883541669764847607196566050085563372281192035442102276334656303656020962620607048851462943290606175056836928201791869023163049920193217840509289033049241231053930643575003960906258144360225276109603823292779691235449849091552920146730067486259912565568014454210052935436798844436466275776686578525758719387043555424031869702366298186215261289938340019779066151851131092750050566802025685289118092338594116280476592084632477487200406948059880395794080297239744511302888134805696033245066384659098698401878349044216449372237001498675863361588983925885761609060392537695921100831756685650491192975949103088217695264537515606596460154865748220124976879139793261408150948494544531524600533307399153518916422805117577405103300590011026364937002591394299889611777357628752947069337229468896922506730972058817317123325474387500395371590676800316383308855102845091399143532366912799190305245245987705271857261545147959658412727221044627184067681160546432791521632732770776505795439736293542039659186667204185828830589303114721117611804288633238322900549335807994522780932684618338493575059812435684599588394371902749589567631023044408007531095749228557329547876426048016946011069064584251533921449860260471705747180144012834948897101833087376352875904066269361020654508639263043899884065997033698708415011512581410335068493298176826833630448422211718882538037527271350230118700812870468274144790412517554088729503593663026822729990277054833783332295404257146454853801970634529365123521870065016182860442370821000275112111962922790943851766352942281953223429223843470118515947168777270393307031180898398304536267890418396313758694438724828138327729291596676957514690288720035762778874525183531891421739954625773480431125953729487884912643418484759119879391320424220205819100948492214363219478009676352349708113659233496811416302866131645678301237500481380827662140165577584148718766340977200047674387777491643593515547099373352966730094437250923671928968496877589750073249442096182947547496222300612863579236970939082652442462194002504477986599976559829138152966170694050664488812132016347371588253863498995698688016147441994929800250962920986507640966566755108326687829460540210779065611522113063660030439328299428788185995159060460198241241560699072430447877671681508051364379134940018888527320262412351827208624440316747090058980682378356356236424305736241424752500228686734420241426494287933170262664256952693992506737856835587493438035229674576022073845727737226661562491838474298971131718430910779296088820592688101101154712032596388146076359537022138841714267654446875482860994773839455214915627338953613419155119090190496764347681015623501825192409443890687190570661013567794224974857514372101412728744148524589907229809646379655809419269632318406111514885699943947154999020756386822398809419417692316527590776093493717693167882388655094362289505309745176003790512411201537215270899332609766995680189633149754371293880470910624603457952781599068829914328035399886682788956396323668233074248652808614434299013795987158055491045191217853536442769554652727477167617552011392630526940108417668153594312748841867027794019380002249840681591284748192691618024776173304025808330169811684147661299169155407025259109587259301919750548421171555199301485395724681299606800162675078025592709630265651870344533519745820589960880473323691747969574638283187893569772358868262743742786610624917652179521601534221373523338488948122121527025016373320383477383000328678874389840207369933228882254366220587911716684108132562770083214874050478281516057708979608285366106006597686375368449099857447118473747683617242514878145320029751026040516957731827985238016130079140889271641937222731206445858184391327157968343616163989654142384620523548948840991830555746100722537374726025093471618013574378180487220196399794771621712667795838885901003039343254798353716009101912309172325295441969539210617051233809850478457046644841271984017345891769496949722486181466488787610901711740344249575426260228328677383771847794678788182143662343980387552283337914170413732341852066986862634468344250819521645734510904551166657612358227514981778025540156762967680949265260124115716724092018091151304832970170603190230316852438631149406843214886846202892770266321033308106984434806096377039896984946503745214444975095984113230593551738816031675142827982718641376100101933252414272213914813401015093449673915918621352377526550854068536800306991673853371493932147960078958398910611093006080254350608506490660082180178205456908149900456840656327727583439070624047053909473169676026015104289191566831951101455122890481496327349884907547789669609921046121694993813672034167837627961386140800366215150909522695074614192869080541645312457146851219653210610931850577257182092496272482384756157543827413948471786403203855413567834795794035432077602521964857112236739064552880299553681982767173203729059620980097093975656553910596382792234665572785396045697057578195278886064036243738043412141718371309479551711142929891431101723914256156563652202659459388658165153304125702093261308463425459163459632505603424797803703026306519555276930273163846915068662103977780437431309624185497239976100955070940998635291615413063335864202134755198515157192734874520570167297867083155876537721592722755148823172708274169237756608485174140312666599433321030519052576731071932140517206982447295186517689621214039026169790508252119804412380210405793145183974711965224593784450475431207805852462093878817997442138273721989963580621481003367013771270417602077101958731144848980662681108490707057231931602320657181431216007381198970120852931067148388186189047302615590959195998532163112321211299781812867626705872748254027492112557801951548521375153878143233234028854893786491015988279141693145465357371247475678688110676718538264596078057915275849861083256379073986673340643452806488676006436333282363093042522453780689997882060692279154757836685855478842969777947215977482823596624003685746583980849150853046080294857544212477480712286266373222715523418228984627542162158592318421754048632402349477933737228198353351483400491158164011312148517790747592647079474597891949421055698498859773422885554635743118930277247497136032825831517809160247568624799366490349624527009824756383481443671536649804455901546157617164975469935798617928990072888927520697332176029934836649364839122306471977077178811608258516491973931055911580643587445153912890106162503932436722639344242344299812161885193134569394783296121850561220444701267689742104708817584599713815749085148832535273359914392007679283850563017406310002009467662571460655016692977818536214602236311347165529476205639954152446462855970973779447668846772198938059160325389330324604244437036729335444612838263228289908134472686670614062736210627605089982089503194371117861263909706062943480912077919999679332458285615224957783268241179091151183536268424963442595054567852255339673016135652195633015895870888803748211272931726339085638929295203942738363243983817244073244295231928857925856076585718359256927490569605815964633114193272754203794486205230242715001035980394004650085070796677648543651570702801477655187852679162179170107286062957847657901068396882471701345969589097558411616640163727719286419155967296517123895938817451173606627416625745317408385705148181015646561872067776645936054040024198166105424432737121521519816242121493818879002331685879916247439928955308077342524497091454887781213488175562704037642706614382560475711109105132719712678820639107437189041492843658594345053157603326303289755667504601565649846908723373834071034958767260632698200918695322110365828241989840556794108671220816370500714431646904017842872192749380130505224301679933617976424231508849934381502827303864754321825853637016498556862583492777196845606945818771620825405871111128202614091406527369347362616389961528320189905592005141207793437496649926909714657190153201952809610837947887430753896865542827452620227518681712750928363653338906213187573585582176475614028128652649733749817441248535327337803364008869056847042099538722961569958666977299624889023961557612138511910004094766556085280339184588072619211194553491199352287131299026534857873520218007852900423119375474773883465476214795565928107000514493748280417329361731052343553117479491076867783770005887651053361813523464327987773645693497632077015805470909612900950452391024415869105429903652196048818552181630151952783036114016953395161841663294551009744411135325533722116141930509837698644491290585691153142145364417393996005803634439349008571612367438748679763314117492733124447812554714251304104871714161708112384115809823997420166182529190446792300628478625789571010920432686428973738556383897230225484680802237781824159349551099864254152006741329360763283784554825870701181528944493053212934075400663351472894767221106674194418670299910217256144378722840779694771601627351575873022208035201489310720772530620173270700223872225063477879366573758177770170955371503871288620431084076069182975420220106870508995269360749491300612195769572537702733207113521307162430312619530620210915079874518283183340418255573814532908809199804474889870994764631673963581332979811598555275772831109764142160725730006543575818768960802875835072823933818965574341930425427410458907054521304553947162616388028625645622492590934619351442236866848368615717970652088752447290376413994513686986037730594236481232818701475368587862592297572186523243814090031068362207110166732133895944781566273315196218604403561791963764742288080676770137726584663512956512457888476237964342674056893506754824360465866293868754465323950581063887316792942611319773737739604579314978733218972055947963475479977334390241681000102430580076444895115138473629950517260546189118581221167173345633913398249461751492362642536668187665521390435957992791365984435288650514595548253662584369063729635533105948508822892869622839173880645376865799755455584178543011257346288199733161948377967054600895890257502032417569944386334266000868430867863912685859545047095244116504527412338504984187599603904721504192644113724785956895079433843767170582066354327349530388220543127841961529496815138357992180505611831539445445115904394914106780205985451698395003652372141766936988687191327621846033424952670610774052340319766385699408762266246754899468206435355631542611354538195319173996318606481481430872993750986264948989285319683372741630990856209751952184133610390999690572799761033553886987454372579326791678246320596113347704419961438617352327618222465167504446248036745988597690250716742248035614610939188688624895524355161489828716053857766838464962811163091425628151423353835288789123198794037088816219244282200719607325502348604450085755554237665063808658091946810744755687693179739411122620083561413546314574385783943501571831649447220239639809272459010207730841118457350844427157714924788340521491556901411306990602579680271151179605426009404624736504757806322295684968798581424951919802902105421984788838071674024904483436691410608886030020329282476329575900441970147703552416701036108693432285198620111092034295220864750964847921396102763137276007192305288217476225436458705867899020328412748674790629310625167061224437861913532133990798315457052255683746957548109198178716310099448332080237752868768082922339729341290149355527937834933186143053315286889898243186990510043805516855804433605323823918254323308768977849095192511032850370387317989006758539723849281710321823871696863304210071863828546267715950433698045406923652695066597936305197160127490043872247855061094266432291641479504422322615108599995087139023049545940835565676073355529619958583194201984716410289794431631303191196093139041304681660567292533930725780923145787230714772734077726594117838877621231366073979183308644712153743714249644086154088583319210761141235458652602157177060267284373895423777916052190012383682500712993307018364578709756185328457060426134443956960675081582803268408095277257449566903541974818864794261608464239185862034969534741577091671220172021116217275269342520408105695728563507646612149021618908936276178680512085749504409056507390709405683049971688212286660113346073979721118554829520458069263511119484285972197237801702698753129276782915907542524875095113842779664089204251878295776596873343647491124803445661337948207583452049695009829152193362476461286533704489416302907748482725632317265691493556826980399271290383404497788679439373999479901025673276626664215014428457199198162066193336718062854547192385856526842591402318783546749408909896442092762287917392039396762069005941276520779177445824140095802488862288138384072607771349383138491088531283778822869931918417615156926699935002335474573041699035918197194143793860678623406428467910930546462151524791074073284783232813364658665694568516340653217859002499704175393868532831936331474289343517514058970101640604492977523857802915553661915231920149318473915930318934715299995502708417614645781587638806718407597255264538689073631849832628226493684993765718713720035180991818173376586110545868563529346998442198123408331012619807529583794829592154417274831893795751821030125624028566170185969603609841948691443080831702282039914693419504001526494782365731035415347449632799693544710556088063272111891066907444692843868315933054128864808982066927189313171671485662258874126552624788011881239457741257563590145789574260217569692212650460417045412927616887665958052067368077353346956220805262048420307477412447420945849164369499850735977382568303990114881204857447635800094169377493840317067074667587553034339323162362895610067839923161373134580630740507161151335937972159717798452886483429095420502883884867862854799520329581345906396737173481638557552216641941057326064393608616849934388028830934016282785869205077782242739551271226167507332418577736228213836705167262256579966276820375717712624031377527992953745142781958963585704585825567529708641795439067537208080642251032179828590059075849454361650173056194991318728860406612818490748260891311197149287327430725993458293651472600346322825978225309111009693050400719514257352057584024635511545095296049252347509323012141811232250141618190872358530448416361930337155698984236327001152130418659316045290746481498116777312939665571792051486079747448574956773805110419695828000924324868096273373687244234984071900637914949943673293415222466142595054962192690995396745687815813385817227009164259696124803446758823479776373158543430060947133664519872655997983062061925047613420226090015687723780742812134151404078663347358622728239353478883927628108686144043145290680887369392350230717309922122681866765859139226533068620446018484387365776447182877647290944264711297298008629342449978276156245183282931008978273095520750529051941899067498748777999075339578954107368902351318542626430454900017311663675462042478747068744693335478623913784972586743129408268337881763402632383904645764318876864998945084026380612000218432766785129161963464051142624182660423178762606296745104576597642497357060752438532233780511082608016418582995158064528884323004701729709228846252931258773467922858096032442055844149983208385904131085306585269833994700662923502989673445777862039750444825168854795736992935593415954866308039213077095933381818936256109508582273294398033522505085443904193041467032540585520414937387333287796470803917315084953622567062791394068491515692944346455083278310950479529826099686347035338728346711941490795861307423855066370664802850802972460062592863506095538563811284084443088416355071401369548585058985921748068398174604413095873549065396619499978282522604363107544456125195295246285268173383952016475094049201663820804719089912089714687339846657108400595158005494720138424564377526331016400342470462504787340645422184413190327419399242667710195199388833523955710597912436706599193398839013771735096054179776126980072549407768631514166902710105119897851596716827195166298055330440495236608474763032769099829442382371929908701821922217859283706410378859588530548702391300768433883592171333330378882164048124906990936416016363861539370667971012003674031635903560762502282593589263093126676498578421061605951547172575510259972546877751808005804590547498866025766534736496255718713261069142810644772757318111794388388342971631835798670415579153918656493418308677889263199043448748463880923021747278092246135325081533940813962665199627240851918664724860594630420168684006013628374282251073318504677311023108181615720152160508800505932993434879355090414267939802841887840812835006901700438104921408859927937904834984439308762775746029934233348030330138536356869062938207580410519624700329885445330226944715704070983476448962822333593161869704645202067691712034960934130056761510373908109664766782078103703308859518020930838524335728298171157327145287109945535331730003000613613947977705404873969321132656061955865645258892830157266881506383738343210228552466528260602037484976335282136391409885490017904308632461115372936078312143538393701977146270900169547506243065662286289498588636904000932563719924522027368354684787988354218370871189657463242916282855925339243250954278803003733512944797521200568246776152001559473330701256081541102638070241264476304238687446014183633915197353985135273030591737317677817993993545433613356334245980088627102498732761748267117177078928523785451021157437550966443774149300727798229382422901522649731992058140732350498339219305037085666988716222216683780553707726355626377926893212505878613256240951356442177904828295043186584790333847610217916589327098901293636376559298452657355885413710285244242042880127410490438081073008850421409268850148054008002391348628414022604897264520136510298379656955140571688020210059505637008534762605627480502342427602893027152967431970413811887894601651510430718082919695363068917205460177902322730599833462362510965003634972097943649747548954736987948819994905038078947339432472084452689275043553860151266418661342729763320047598325766114694531624841965745453683856325615138322848343409832593589576639492383869094898473305750561064336371660379529134613785155604593265919963933769090477632728017518368979945937217005932983032163013889903658157393109642601852775550255914837784783484720377136740080690716234115324062887049200675443558600956364920001675459797785500283469014242912149321263109741875900897764093998894511816952640787253189188277681357208443057087872975638482264986776953202811028502873341339821176891031349125980078567731958430145522675060269207763614884990583467570369521035782478642315069243486490139970375807550132301657011224062599805272248169062870782107551503899063189732042383379328654284074791641747921967506667705301806535629195148026929490255026267309930914147547055973495056662372550958958712801853690254791811887162378589011182112056296435215009185056664564409059425080178859823131635173930936912776504976185284990772561503528452512596634329603035260320636738470693341142023792878235680332745496488157833077006770587783132376026377526869685304355759032161016595224841240003554460435940941333105871953376695280415044239533327161995020837227944281684429878097726538296574053463221945345148006248455186712677574349493431733690932076238058594656797327677219952698842071184890146020544317964129195402769322938468021816627468216502652284381308692014718870525078608506839785091466431085770404357350586111024251768470897560729343380129508521852418064008909610623035471522007853230378735923360584361460077590983672546362338181039419638027885110534497085781498264950008964171759068579004076012603980129378078266248163097705804031728769981451565875625263082017312832391629878320243081223777408091731737724457302442610865239209411906944386782314368075375933758820887443796932180453505275279010806960427652633404565272389644857776118789372258656656888500693359405611654129280345910120318761040338247633534541754869900244502454463755406444134854581901115977397801126420323826506159830266158252848947860061245939848739630534154531235639349322702615923582345048510824304710050575587659968518279777877174417119118703707747578902112150483183462857140290471075609128608954463407378757222049596624852376229027950889711632779858035716304423932078957412456754445662883265884929029122141048876045599887570464685581493986853924226394899148744736693478903901354369007171845140760727821654180208312202308049492884908205007943072811045088653294340558883516632109288065731735136533838329824308956408243964533737860603099164448160889981044171701931829590921766928247100517378440428090454198748211799946018223761819145235561147776973366155844266552182101834788955455600669208726444345028988654012691016267574016029241283015972083379289110848664372760248930725806393152378043728423836617247427625805534845392952520974230912781003446951745907061443444401583285565595666095826647400172145513482798435308439989465685153729924859723345538821501141989915682592233820186733843304367238783915948365686667114572837256345131196737725579794649170413172934977173026177333634408635962809118376182921898306301741595581075282683188618519185894170665921167049448022504600787284338200816502745454330780800162753827101502929173633618860480315997416789808513954382880581683735964002754019607717800086878076028294222304453450416972765703322028935067424626993670474399907093169370989729180788489738317900071983411972875146520855829516620668966397029622730359016550855874639309250792077865078538502402851515421238018928177650026075315663075179198463064125580707929516847656718723606443911520477120291055692090026086417043635584211174240831776552162280278609480862747008581552590048621826220081042716082440486173801620731561913514302612167016346339133831316768178318471491225161517904232935602377776823032984076823798079009035945121663200180563857302843963998065038593720022030614836507688870135541752007108293707395206112594032076193999389372438410058541153884734653922192653209819874186206598319808184993764497110792254466296698422117939996159910685933966568136927074939727090748132619717735596402116892846727242503060802092756103212164620211718382653282198259944176512529422790549327353611892244185899848065268030082555699064863809802610650872748998407435731164505998733441263411050467306746767537221411784142584030431839289953466120056031824140030842062860521391414620711061378559798683699946675248043131308586836302866069430744299056605243020256182001281841991617006296253867897002994061225368116534668030164563339694865565668497428500102225333225108310873500376279472415493271865114796836481324521484149415359359812867191861676203844875999569613634324038581497006833545330373514484015788945783470824609981152223722052407847664624067471848558470258177040490825886954388215520320258743851758152081291821975443707214481786199166765732274754939865052473343475913664010713371961322097299814441020068831445782920128149063289582713260599534376348279931352964568917188504410468062105819416305566346924685204403484579079039900278414075269436280470251908855206468341692899146305839711362304807207333050780169519566529591442179383347761157649707350532862762279118652773286068155938309371334240891438071271311461808176861094393813051733048951690674033204081518232038543304074430570957018108579136979384402782615238936622879727139722730661448711617251215178432021341171637675549338765079653241526511953454082637853222501097515021747218222426820994469679724111779991063040454641345571064467930666260576148588577240206292069151424746427303275823494447945403497603991855042729094204321601863583416165617652936850105281790513993636204706339622470288795440366397206771456010423442469566047646730381339552446734840084020706391866875844149794709975435192319852644972683587458151792727047470139507444643667107134610280942255133910408759012926871407175464874915549224572372498848898058701554753690152813515035150097438913968601303962667183427876202040370845690260018573913708749032063069483757832772242392226967136880314954905863299670701030513710753230902501922882561780284366102466199095477448350588696660134195846197124661153255444975702672003355234893556979143018324084082921663875338438133640722275793619364456616166997841606286890080992287856732345143290733312830368560251741466501227146093467790713664192361217361886913061212125099374792741173511341927364263038550765097101644089376173346199631159951127915564096778954352337734832987967701708215430897552438869635215457256781810559008950331105648180504929770283338005741668393299050702183223988967320382658451897679258388676626970779591925856090518701628333128197003631440191847126314146838494863567334694757383217864062076927592574672837584239839412541920596000121932203300903119139559462315171715144506500032323331307541612519158272548407070821863626527534091950590825011427185811835342318496696374003955147655732908642908925652848615232878097129220970351881841876363621638170211014792255324071926207154318006277134348866200355946972001627936387079584902471977820849550945240569698547798128933746294425201710466127537942125937321789696233214218408353424686176447715910035202739451311976415831935251327565998047169077981091903779204119037460165710425550121717496214565075673114510903154604994236353062609512092047596212704117257772038971924745102394664288184042078346474488656214489987645154575541305339660846334887348327903596872815336600365658440057241436967762600794751384762460861618394954772023552239047296830849229729835826013876190747121415857336121462437348842603537122232884659762004391911024531373153599669131672247084099368829780396096066445899846485901116742842250072140214343061521863535305930156121007259224858227237728066490218394810932744739958866093227586245212497677868163697101929723647710684970662356888244246087640347292826984649019029628676923972444920178666196732172899888423299688888245874259181413155076636015937370917987608601942527179874769227380275142781646487537423137877391982037016018327461852398868393454812613054372603419959239783701262991168797138359930854392116950790898441564906345754771185442268047414859063732770826050147780253642972692478276227124058800321013157962746448073535749211218738385663851973745693250136486687071115405777381240198652426921260069341307653962780927441609345470612765451096174985139307903125259205469417765632837256622243183924699265712190855999077411601063627674304065384644850412991546253152073177127155062697962682033460321922283721180093104188499207841808297101473714284534280686455354581738432030558177196815351180683545972361769642793828767675017920509117801286722095703356817815086275899933928480841097814515029778779244160093265760929798583471755476165372632459536588014062054745117039429778199488456342384414418728868112949993776721437624597321446839015357089774330842368681375371063761668385965740890071992810220067768050109235705548831880100024190024978216996302196221436775349895210266041491810408816412937083361859527928016188309442958337673347779668278337323333547695161478132232731434565226816244379854677179163571369547877243099785940045975248392759997600830857793840454942403316528561105993040886726627420543814895331348819835717840429268656460497867114108043162467527831300241451460962795262784843278835147709353666440438391183463126699118488666095944737623814277687770987189301712752314528126782822080582686824278611907366854832845262545697962454634668403997750022993329165097664539321837104409477036314564734820610962247321327494675058015175973023146370993967692041145385915618231531308189053433194641952114025507014322329744757651602798318687623721923088080351408481073977580097998825123297618758556651203822618272257882057640246615583024920198726512842989129202081441839342205404038177967365668510634440061137499178352548807032703457603778675721838717059267837511319347225410022141252840300991595925152681694818269430473104317622548790440347502046197611458986127335754284805966325125866862486449873048004691409871307942227927543052216931136733441730015325045361011813341553446297573899127428183660871932010334680606041172343929467562965644723830944353071734436551446116874533540087794199147570584809375833641786332931664862614930916808782501457931527575002732329695863194327461690534078929981444706273679131832393476501850388835512585602320369654322837872137018068375062909568421656195317630342175726802016955452985618797602732022059267160608393408261675286619949466384890666212090695108817217434043599510783476589697861627608984207465971416809612932048984489220964843730554779930696167017907996918765697415157568293662914583745307812261950608011302891291968050088663323615176997319928899795401145041871129966213393982308374274328178077066726221592027494509477394286905026513349308963545623415208746130531825032397337692289967123383115487294212512146361649883381224280453036526118013036179963318489966621679482105376290843113213528636048932368268528658296362196777520851336535522956223612123963710965805690619949144458553117447052059019906142058703304897032062944244392360790360428542993556482880015330940034815318054838243874545486751824456271621476002698758632048598235413962087976146832290339799383898144621151226727974181251690614379356340523620437541730345985525613632079603699670371825194393341084651395484551510429447242525814208426792170008607663609785238650899066099379208214048026052499284286644155375797370941464156626482572160999898464888381430796406464881090345164179125010182271734653087118416835839273996429986865001147568210452961949159866664970815952739778225118427160817936065559614307773791840442533457024207374660395056288279203326666281832504339262557119332889369158449959052832347198951066966959474651369250495664621849714122189141553777739152653194997283248490786254585383484352121865297330413215236782518425680897515090924847971268693024555281735953655967528032170565610373995689788936022625803916110013862007601852850099950839401395755050930037787684402814614160779701483333325319358524488404518171623421834011531911031407684315272387882476194106541913556815696757651199616201353894657514042186383855451458862803527161046328591271011329737991088293601212405101888772688414632090099972739630973378332373627328535432735907917923111307819048808805617541225525542777730792349871648289675480467706705070716008666813563529034307438699591452962072541094155597049461541255745223715084916621117745164871772554847162150941866591512732446288646750185618789553762384794645755049110717212388430250138454881246955783127647004226065867522401141839575873746245378343057040093738457725528683776182125841109916758538775744098167201246035195473312691144471265387008397419723318996131589205959991918746775858790323754696374986134596706115660229860290164721991089480168555503323667093169618559579769060652628336614302243672902749402803894331499635148908952944544937034508058015399054702016430353159820696535683989150307074115653241197217367788999107160987933947456984975813626208125769054861347642428438818052991352280853525001415728377488698963756523165041729535015776314400612336146179276561072022823814474256752216067550056434030387905184016407353557202920731471884612560071025546339014876865296412552644370179245493775428131598702345738090280378727443477882659495798794124820031423594491677949930152775372120664907466100072095010805562236747642648882855476275207141475947717897026096319536137132708878297164711144739886817706101870338988765012620436482369999847412034028268158989653631643706616188107127388857417795353746273524289659554182867333623570200376866736816494398953791865205317975002850792281029886771858922112707266084564257615542088098742115758000861016776497691253972989316162268893473995092589816022808939212133061432665770376747931447108304157898634246327882092095730773123849582542673937767419363969302791602049680265827704154845608800725971100635787478024782324120400563586212098848859586563727786533518620958072662628094275752611304778420473193287344225367788711336576964093702478262039673596665380760490484773315596389463124520402293717550467368676054667454225008117570777590927504277033912107943009939218243002245791954508474292390124635709637227212301127556352876988066687640890115284478995489987789835197735969395140319706168520661295061800911672051394487146931986840850534244969053216734537486333129568126180241097838434628636462946810440595843686698839052233284377269467475987165076257286598422062749678544061140676554873356245165739161380520741278738963297671990967145639789900624986231581638869937636079995996946640561187532742284392238064429845687298679093761880484970450730259753784565563182000652590703427862738759476319015311028628202976825713290021982395595292152961565907383384609785807065333570701884898310766439724466913951559837316114399488588416707522723286003559050995927529556657381686757855899378189340538299213433493592328221664673415055679005814779333490093714444592852652121966407445624158696698948125874477025670720015095927140896554935941284021474026343086598226854248715940916034325921394957637408229929479221575853338760862875351153002278846459039479004582487240866263539900556375451645163190724688462306661599460846038268723642665378196112856236855210088830212224430198518816966483217182655791240908978508774598446656014646149033642393153583733351124781537104117674065768815829892399373678735566394457561631633659280743773223737059311981106350378059207958018077994753612102656632587018327968279143850061078455989002372742554014915022880331268463409714665812997304457794177756784357705651664586765798173966724964774227637254272539424657248837532215706301378379246905259194387147887094006593182611417021640014127599142279397287644667393573200345149954838967915932797560168280838411355612231548796109587501162515646147262643303051566475522949182965679941737082291799291229114738872724670175025891343220277669894410694686753671437946588648284694625627921435674308598519520550999854858958455493868814938765603853259494344116928557829638420807548177248618653939192351373229449075455580449205912028448378143188076597871350932555150762040643894435887661000867671500569853643423213568920456931891317628470827466941159441762408910350329829932441035796602035657792355055722285969044728497315211332373377626160091588560214244127679410005363397328052323284680772533462998524031717130949497430276554157241002884272707530082611834291364239722283474029717708964364600801564176018211596470687953086978258473366450722065347038006098228085098069593209113659830495846204470743253345575805735132740102831714368325088882605234530637072508033157244031947114944042293983412567793527632268255658300147333943854250014197433320532029331948708853789754936902642470396033158172566320442695269481416645215434707901681603114072564777245170811145524568886034651161932370392457370839959610588519402870460291188637659141382236374674981976765312973019136329587300097316462270628015285331852247874215874116325472317942166838566522962635399283498059702060145860962679063525765377988117895766613288686510626437752612865884424588495302017183700169440437715108596300576886877394551538987931354110884784799345170426114968903185187463817536583307738969630660104543415004761690359500903691866501979677621681530485178474071927138399004667945055973452967689174177536064822819777306038467750041431594052014614762973466104350234826780381698398578853015368995495866248703154281541965712463166717823233826805429437395647305693457479169520545180360162067901830615692790721480887323749469794783460986514513317438354241392328696072422055397895532364600702889046111506594652465436324087381295157514805813433436971327113379608045798939193132443874130843386310190293621366668302843872583171570411930982553136681776747069300985080250730074761555343340536826880568913102620221261211267013912141015910296101103147363241185413632042628668434697610314438296403845341023437580916773190170728352989477513101080360633446555762103331972168838475984433057524300843441470539411583788748459082599031312612713491577313086754952925306469233948028522653446652733749424442270502963083932674379189652787266374273840130929275263184698966205972691155726259650168264983453722501989775519495124964278643218196421983389639780491656198029544254065247541438701238192856331163302385033040716263045501747712919910741392780800570073375674940716982793639972465388062558478532355299397113260284995603290883697474961866762903036513891901995480468006889937745933428866669111369168658458764390569797459741184867734307756557574124665066308752218802734175359880643805460988938839198160297806181540104766738051530976588894408977623094019499669234897109677124517521185729891527662167771947601981174736584882928736459404071497587539511097605563042011434365631432311713957768149394285809198041788608969988663994974415604566580995688776977379102189539257807034121919355738636772331929871684838142900429525547698581295340497333374543119146527940878666526215370080420144811379498440556170342141378772958560693675267042882739487204689423431170569240268722154076287270611871754186007423123912674903070324778421178875519035317581555805890839605989302454534808939468100965047657580172341247572029209111907766260943247871778341085372146941127072332734611655219704042076555543368894284198871086948564209652905742290330737862789272848294839177347150026899586368077042971606255493874851242926731178660473825503672742937004504868848509760998523654301913335161268102386943281488952459058243134869956807373096018182994019845505241651296877665573023958547276990615897289413247411113542161840705449989400195710375792653140808118306147388360813766973905018949315880020477387304709744663898707660296179029050988590335020611568571066125045841057428135454582627788230083252797544242091365704087029112055622006074060644365668451158056172712033056119935252761016002456098492976930602153266523955738414350641457056288389112150192679267077165894937862090620715972050391513839145000354820208404925329382720929125192646664387453358078381667781709613319267980812838200750761259877817228415715830922475898391268225197798784575319445350512051650331067298734230146913509836051989837151938249006582667988516710275746523645373124579634186296614615847196912826803168292598094706665145087588437588956764572479322523634671012675937591947345154874802082060966734595630190016460431033827832276333438234881257029234081011266089675189312496047042371677652129289799037784242532430660589381802747826641992632515301619302280665818222968667125927301534794633925221105578890102411179998905794865836236086100661046945134726301730945067880157593260761300109554470823712921632474240597098311740632138152742753286234511155046009431907433093354810710177849382115306500925465543094540660449046563103017584579257669102108083599655366654319140843633845242111492926576847810612980106713095563967254386905669945463387700397523930615996184045911135442767957641754121281577914430835695662031418070954155898577607610707992758181652434324962227873485650006632119820547127629269513062037368356052693264267478827024597534637163869038861009061594708545826574282411743740458639463613359455977454194225497426099184350547953619457698046268127419067885274123802497132635186212152911402392611979027802447660471141259996566996538730002448481797810539844962945881005267426305484474154468837892212688559511523400112457895545529773179555255883979766995879156666017838236921540502011369930390859719891952215222238285869849657430760617731689375821503500645053475964869846782133966088932812478649730822081751925827689695768893700540987580503478947363943680210753546626332098242472003571411135235084237919210626945796252613359544783076304369918409430210310905011069239777608078925965179468065287398588581850166559076413808245397487123989265603379232096152714791305578447377954453212446275451180741363235470828255610490340844230902453336428936586642654695724455038432384047755089517230623929808421478133585714929825022514000687614522084875414053582545756619104922191754848641028045048821758536351104770834000233540948745514225670592262985583454470983622032073770880664626225871740275111746337945486693601479182587423964384211833174110981716614439564983115516210015621534286864733629569457696755552406511645851034923492215825535873626681155305516608138059516363109769753074426763022999915188116172674727533312996118376648893705416417189553367958300970338868771309624811033335441137611472515851477891390076759229021709866119322016179834782444278546975887814615362205061604557175282936421310731717534329819998883650310547328097054919200601294151642086224021791078932566528190314842690402962807151494988276961956595853684491696294697319167643764768075392103787655097226913646167088725875576264665584856663249645940182082170624366901256500357234934383975245537789358852235669650372046690470570960937894045679464524610104566343428321569735501718921444087086642170384196848976023252641435318117553329689503650783971144877171794920712096527208297583563049840361403564994492312829435435610976440706238908776606711173401946665803646073624407670763395779544748386639378446280409573537175205882069496588304003713534615060051373821801433261260347187090445667312432036916400109111307011867063675586957643056086566938555471193655087234438473198283219704791552427046773618770072184484470389676463878809165042089229245822240088328807672334942298641049277428900660783269197800549822819324030383718646747655474711152893520330678596270941566422864742138055365403014781734799145677002714475156897825009662936175724094164036176599706518997431265032853964359807011960620989915275955294766713456794490549170544163429357225577827312136380491346930956104804247771158059809661794306829810300826942324062132307495318349466485875683086149991573464654825259149713373643752985731968588346419446755488975217796636957242576282545253831024243275294469212892943914009571511505981033023309950509039672051966025329039074182391873116216268383133862988886862720353814569200865256224590632887163568174349155140091850133380023907029498682437968560934084602612226536035142041008019887786633966983650065090160987887473278776012944114410639223409039228153424798995654409287140664895098753317249975926836371967871149411681433270468223812394462588772348737586433380854411318540361475033602626864486376577398305829374104327884467767321101090436797538577981604352976907967300199317734487967242049527226401113089443559230670088847190412213478863059643799753237168075968921528328303677889559666940665977271251106056865230415321156997180463937745618079205450933048526586940721182363471870349960112832926181501073686558629265623414830969336095821850786406607946687516814727036981666872664917579798517908752019371331798685588476948516248182072300985879170035869192675661263547552612060785371722132592332861610592629108406547316973018693021547907118723601548539854893687374275528648203507936759141254341638196979649741779350551572170550987027414962180086916405514179538114091046784939079218401340143994105794022568290937338976322371908922195397730153909037450355417764108081449666902957726783640077050489832170831651824762277618575114611692829266205477011163620478165276561394537682930950264799984806829367475671765584390003915666314720637187989227316011010428455648952111116072057510084851357865146854974189105225845587029683085332844522010521551149196613271309715200202939860895161035035225398036506790158334979791321258954474767494240022221971748315135945892468316884575534288379327513557370575358819951258517062801545226006800859012577485429368254131059560439276180685677122969753297977251696888452770939383002340000408476832310433174066523268216838838144389862390855486788172721917776548312357125744005728718909104263948070390583539517300329971814614545100813507046565836076167536135077903128082952710472082077470362620161798028435003578431766141374623853988503445718353416458492192085062972810736106978123913645234477165654199712943367075919533851876305536634632865756067155409601019692963170335854465832436636514023270460604702365407348695134291694453636606630248199826476614494397669310585395444315410310094731093166444624579527176469429476241870389587028365148052826779992561826863190167927028991675643525640796524331735097389995659682635006334811561426275831774720879140326035878139165335888719626335188107552779310553824217754058215509849257728280502684219552784592586755842722644313579815233733060058098006856110525193178437608317819407354028655621101985741052960853232667607956256628634495560875603650482180646366895396486417687192768214606871583478563024834732306118898832658072895341196061652205366341388924096821332817637132250410783130610852024864157585116101769078502176962326833881377111813216448792461625173018597904441132498677616207125233408656008761604654630825136958547014731705439647913171346457671288093467800811326765853018717118114054256478780184650297754435034429643353657155126290626110165234521316130767888041532836551209356353704563777325271435309365512661742052890222756462804725010601899375993804420364092565240662749199061118002666838780679609419763687156461794585659145989105268893471283185160176968211654397705814774104069042058738340702604671032583121694160178085993171760225014756364091593776900108050611728129560499851857704039690059833732823544346541026569278586354995380641646532210073973303439123807164229019875635181808642847011669226240059221216423491964893249064341207408927329066348900196871171955412962935185642973199661030894847890674262238791012165931550398362612448873012725126702926773593408894306629762309320569700980103187472372610945998058968961647214382798423362460887960332669237465280470425887423324955690998704108934943091049832535030675210172023142868472081753458299549033549691192532877113572926029097453831183707001933404274639052908483615654620209510003066041942871196004746592835928434353122351865573556416159290615127506861971081400166687079172232306960914682877600860222068193602854176106409452532520283450121918182545428290669592136237310422945623948753997557843409848773962959630710655761938932422711329015688182731524597331387819720469173267574227605217513903561032092765706961131059175183176789543033687800668538283686015388796155733485562018366735944130783928756663688154798535538207333766277663219417123454582282971840691374872240583614347767446701786848977112681933367998159438091482711802938934180858819889859601681959825287534347971450394761223596484606099081695294577964369762236810518414947262183278132564536395889413888724915927751313708016651712288505433749346837977935552332053365532572007788677343222430484896352161925086384949305698459685047032126287535837480119889466594547981187671711127056305343991341127392307566097549660034423029501461411790822255011106812991536437668156074369241303630245235775422886727220655039374523707056398455097700185604364893910984276457777120778753499562786975254833898799875693840537697188872197685125123671078121433384705996124478337470556623988381008354291919087208890851806401760965901658570072468395220021979913080064820797336471094332372306849398364658541600282535779846644088032764314050306145673223079613715200800080276954567234518083363493723204534813031919849999927982100908099473766562322234874157486714901389201242195314058433688591092205384376400244998190009160710473065023030487040189990055421257295353218443780678142376274744846304932744274466836939553710991526888804137635376463927383651608767872095853482858815753286193642320480319965416094614685311291021505467530109690247554460186945583205619098948247112748180619522684811313224953610876644831126303661278036260764380733951816744040983148388062292488220404392831983777037771157813508666029138650962124963108782594528485902925596477125564558408681871663024339766574500307682693062050564530217915012438901191009627847467559626395280849871482552899600214130351224338011034147044129798976303776403865271595933661791990327827766367105214463200973308133508072022546631526158780342107624308044382719150046112960484196752953300255744997407525989743006077971814730389674561905885312006115962443820227059018435342530735209214505407626725405074541132237144836469994921643917928179007959771530821532263761544548392699318348078802998413691942187030003028473306335586218867694139109308738409743196986103748587926930211456625943405250669342047985324757227664354861722467497097650014757347520942989024123701853416110217663226415287512426637330422415105324101906111107844235617470776659268102087914817888860953797987118531453055232384659713541013180956376710998563817686599695385935877816471549482264084519026114338871161366228755068048760563924886365428690560904570128088320241794444564227195263848082937371048226051369250373271419048721270422893045690923914199634886121142937605426954674465735139602381155569260524453085867246878471874180169665644372911236214998576258983917540257609176379312762184267063302435227059769302696653350214117406347037292716845659386272240291966564399600450882355264144777585573806228559324951023388569331831715341161575048957155480906364335078489482384656499116162424188405389923687277514743127772443471659756137783851176708870241818027033798283875935953017029917335501706295497196661989588620565968927730966031834623053212087878408513356974897109105813377092434128974293677164469559585535894286101937512628949600278641023495412943405752466591222166446922619786631518346491240413372860410510735018085467881861303573973131806468681641862435625004476001453354186866173408168402581016323159372998423053520930742865719606846123805578229129703791809357261152292419283800546034563562097072619956593128036601292966579090017258949551845577119524807023192896366594661577606272105679521381464668464986793139961338794832481047665901809217150203105571949312670314649828613668360630521320166080218081727825921246911677362480602238478695872113174078115019110276574797516933719742455587462574143476288334577763386958260521224024094434281273890233936703347940214603408500721761167696068159670337843917785521239119011003448239269379246555778726337419778625811120100982631416129585259339256312048882151000259106204782320348634659518321750315701000746670362081099406113446279194815899687085267059100779749072494321813877385722719995661700196242888485757678189297927493399441324265582724862550496142230266938072048523464962730418392628510437140080717921398013246247835650861464952772100732795098320842794010313095820474509000527926259474476841939420477240569417840306011403711395446867704888287877666773331590219522454351800480832661592813052909133998921528662894441399991453495102055816011058474865692282105908869992930081344316278640050277770849372004703863481688898729268787438059853089821349779709839162888111295446343474939056580689375293915386981168669423470262359361537340034978685052907306145074843315224030355293892208584564074853618226525428125181869622568806591004521130559445557385470191398981614990252474124848577517797147595632483083707387552547302576165230545429266726363012082030916851265185980206215429591146195641862144338429658359366784095015991379787557471307611039315423639775071375736328571700598646859282587591238354913500187006511832902962721347087284988364100266542196849588966733681900177150606793011012693690595978018715650118678404576132899652798635040576216426046389093549514904022084557571513100975128596479752899283194318510403237482786796760553875991980788401823725986182938963482074298305926836557390949749441204212635183324507068912444368846459283483747308425600357482071363572318960429479324708106509377234501464599975479886466790903072608233538804687420493359886123268774765383617190204092589175979265919925042333906605277500442123937579275153402164240068340929843373738987545790669281047339868235062223773406988332470038042120896487530924172382427981056627906820989987583129705700183428026922356576381156461411940373239880254817132390838066637063852997575144659450371420528677970556822574035213912940604501787923240019276653802185162348213996064435610645106308002778140297820668061512504827841858688316223402967978938126006779993770582086979971343341732556630055103805751764578764884300587726399082246351325828804532260312685453753499606897830368167357496777598218659693212599605900036167580868455160706968364781528505147191821442564424987371774079245085372702605723825252275663253402019206011879771397178768957762558882847465873200832834793571219084032352371187633492316156025976376167041247564077461972572080198224624087751578280081544803403630215102730522626868835346085053519546446724766258368169914727743153948296226573202983623947734551206753028272345736801608229262246944281752299478747534296346229465510968581318260698888587016246382959073486070929291722852656609640885631253101077631723594055675155501469555081237839196194678210298879613898490959157162167976037303879425429655452132963907573450085383730384870376972221484946380254503714884322397379766888723967270192958515728654813306816186921866879784322827454024990408728333505041735159404066338207645905960438769784346875492523346143954172064995241041117506892926238194672426620596065084615485194539238506390767540197547887484157346101437581865725060009432030134887168305794531736424275486622731373530618568337709061532765298195986632573809439632683116145913602284725579890462008675536135056910217442050434853384692116277471085413154576954452773008543187034082586838019065490970760454485587806360663314141504307408919043365439431712510924526598184678561151461717931864883566961605282901484509221203652459419362485937510622507567804923299112737439398045973935473658938873463356503590713256558981160156044271015192977264407368938291934885277543257733805648575935827995019331577718150235239427013865790622358560861051898310822470138996390004342117671290435236578300518091091216180651564133723203100717704633314472504004837513095105994641543173703149301152411328212830021040260958421813993875799293072538766517708834702302996460169527152153752130106931777321653723230134038110123984833937932114830518121382584179673666648899311660122244754842420869319963821119064973976335841119878050763290699819626767885047385688265451622435896026530722522441698999912131093571162529159075681503633040704137095985631472174645477313769609725439812943197154658553345204275342462966929234482658119014628287781561816638153285378164837815543344480150305897552983737572237445205419132624368246171897692601782070173808432418961318004637612980421353926328361571481643986524539782286896078195080998761670839592580034245384735811782801480386279525463629940925894828026402621519822764537019688511638050707856209097192755680005753176816798216564109491623089122345752517075648951166929295395711367278567672125803180071320823660351303246461210042773240567684950484089996170456934633899831447231994272625530523688847568151056562273901050566070931586961147933699581168393911477087364940328791379501882922386644480132423166079175578254837864715244394296909497489125909001148587457961260817060142170075266442789555542864868459062500394203284864881600730364267231026746135384971359915137719948873589545423370971368359062564146451311543832008588655080778173532169718303882953679421246902916213007435616717259997391644101429475000458058870633842444333316637996270009620494609517968242250175994741679506105807169525911089523944288925974423811972411182192726798804667502211631978596403851557189760934882864681427854885034319801571103199918028376926842225466824370809503696816389378786851583698134906432033233221622670391509565159165295784059573871820130027267441832518156929763418941609218083765665182102415593342937717782221184456329449103996559963265375345981152956242026158261233926825084267994580738313624757489281113333881472895049540320394641678344851443599316267266574398758813656086302135729751768752697743864592976161420923801760401068318211993705396990861519254850248423493153431491587767384547570858476836354336826859814924770195740409605402672007218669805899678799925198500315787369693433060882299850209593377908874803416900645028133571536216478204594867055686038188275482631350826786437762922568163054306519219716655652490833336339698605301453819086444612968783953790570068635936659540794614869782458244916217487600774230847317901016831012636789420225147276473358918147930930929176786583966918838377862224086434910506739522615964856602545686908894155282075486889858522256636015637751787760995535568794152809999063331045278097159233136182698998762616371155441365249409812578973245669623485046438082619845167396020044258533941770261573016652753759853528753950587484110200371432513329116255231696681332072759650160073345967165021337724143558533222624644363905459080535776661904334437852924277076952361140161858161219460135154009370339305427742792311947792926900236193891776969815329946513722256608103321748726631468778932054816449615709955107182152856177114960078113671143277100319901235349154399520246676551105153661634118983577419161177027666111378363427374385636141086219008590915876977136615400787124793425830404937995372830815595638335772836174456069502440984070125632889245906447150522929086093693412171464698607045766223746746383427548168985105288884058558587610742299677680632158912875060009249186182763721388224025036507079548331272506311778981807787840026197885925619556758668666626170338859608729696909908286222364627032503816318719328550227929668240481576608377115723770667129303041019128889153397850257585884033067558981449771207516850109478227827135161632189549758758101947756741692958460155266968309917262954558177044792840613050312362399810607527453723347750544525099744657244461295685778598813179161065153376765405663009354283444762789640034885955905241173535245900773696537696925632109780560243812420115231276161823511234587085300097173484994938350832405829638178371332195574597541976250823841378292454153864148838196926524684487640994096356484685775797071486161896022150002520598866668171307036304495488872016012380532439787161667988647510727051091556753534787615239823908716301778193657940564427745009373122509668855147012429569647978782862408864016984124841759941743952474575727577256902892350573853422960773876641175317032449368622311701422369184045838918181439710394361045470698927157716935495748627396694729692965789215788614457339769064977340151303576659155316788538524906034610227010991311021427277240685510831566558706891330744789019453072185738080947485675197980942280516854705637479759612679923293863472437893993506007178087190476293374055490466191750398891302217748517424581125684226055921087871922288908809277345518692295433868361563718517004924554076032438948994073845851560013094487551517935429882146833177247382599452526952099785737312449000493823407911490422448761596739655011881440038224230160003803124858699211364208149815312477575917286928538545013401428597706800003408889401168813027613360231809808843257821165883386509397179016344142444588036663883239504931603952559972004949638919797241030234495801697694339765478114892150363728586575945983504575194430044652946015372862934210177758087113227753301863271860657878778504300632688537131444269785624040356987776571150867129326962839273822059184070753367284120120683296397083561128588617997028615947798162620657789921776947431647162761838898606843807525784924565513779617714265717364231600166987689484354573470252028305417201036034362313130215093888625238338938702203373509214307854823505834437587769291703029680812994761047738747025187212032242636212606989427309618732909757560263199797938081935057934037112719286325428477002550838904547000083016584088480949734977643872152085142142412253285253330878664897978801053702409535641203174680712363016309366060028078687357654865459885867568135314259409263901596678101135308151325887118497879284421083508531213020271473360208967044564090435155341704149106514492417791143073575787579095721294536608314902290991581453295444659235616036877458759286580226745958021687223298500979442933323453823099247512473024355824694343884418320328276564409345367658419096282872034709065170661152162587413941156754424408069728836886015665552200695573922260292667634211744490806463468305055368092074540021125073764781260365860625079773087644165151971884011024001470567483623797045933439988626455127643394959423920114688189043437190042948350040121208880446656217975969906335199358737826223177016462934067962206372008204546193923243378999684130778088897754654575500158610384106044645880067529952280476911397407714088733396974664222903525271358828506762895997309412887488014654346861507302492852270001305489876563079011759576284868023017156371043761351908995662991154386183304416020856532386214825220439493873366654792891762383430578589062964294207825567339540899764636725774622926838003734432421858146759688789614572918521454009729602166470134660593760734962675574563980656102843967065545391729472404306771646445599139435774479073408661303931598474147410185030540128567357032176047784898152279575162326886124461451981628293387456146437973841830408737657225397024225491882981547275835307509987804869141833228419190211187602533318608525136454465031811052395227232057680521938035019304110899024436152553103460681835844621868301387806787803220376631679263217733959821795609568896203163563807377467877067268834513273025545867028540089320992830462314831639570487532535883213117068626648505609029757635855928526135086917568047800048551129074119997191671579014439483727259412269829416898941665540847151656651709597272878983003126279658657385737292549954517184279137758758359107014738607186322881314333038465139782510726825213719406803146086077340212303877438653023817477988638990785955274351097577361275504213013085350754768539159556965153805441541845259359636781467600665767499039336479709683909449212616050378609407918716802753409212332999112084264378362963237122511497114076673724301147744459350461634057426933004199218052972195055307836957902677720815552757729298264399508603207794529711097966974188039692514963215329388582320170332600522135926592669785232247930596463545824168416266862504190938557349312224910573189539176567280540480372205967544268680862137795917826458380491789024977050965772725969533193699044042271895218303359813202282488008232252242287037079878532137994854247796819210173635738495225467562698929706493251600438285875562580040183358739327382118860102136746825920879466147585636144522425536179409844965596390637433151411949483676033532691488541483084607136401435115521121764250383597223330998796570628957052430042981208394389659591650682160325480061031047930658186420613448533053886186274642188489361829256178002628905065475384037434869954707569558876383537951709855750338704996835632598180771766402858474626394008017646998707203327460360244676718436133882946059503599696112395704549379464502179524764018478016516366340159142220969686361884621020438139814847635805477497297266540679264583025105011193899193820963870823362870645226664865877904233171872311391475034492179553641898073611449403580529955990625997384336167842835656097434909002399679740593345559054864964685261266245583069487109417272216104104190473208760202582264041000100429381121560733557689471888143044988601696795677309478139813768237603886557769044964414967116668139452372564569921926350913975501135615897372611037385180268228421748219597020269393862062852146581063949990107886855615225611241448016048963440147061005396889754896836064338708316892955186001456032513482589583027779456046369132528961191691579320572703176857523312051129027049395661906335049798044806145356253079176455141729491418316352531481902819837608600053553112213248663676604196156969978072041717402601519483929023783246989449705472836241293148064922329199333105015402183843402443394692118902637616331234385603791331284949308872809807843889663294321520296924940358268750496436377247119912599531391063045054929442367963983534084185749829538311461255862842532247018207522009912700307509917006963349559229614657762111823217417925269390613367031300336136393289663812919079757288685618776921809179484638520923567372415760141316183231547395017253482836352827315289002980219829133830845450969226431357380823137019735238097677004887878592069278465146598712228997810276275855318427640150966380086696950590329631588012812147125702884861512288271921563137626820381376819251194121207338603361256399328567374110679146111578736962037126537553337497526937363592717983288315116812907535995430527056813177141556103951068947749050798533414884259393204510125123873411555885057745646038447756180618127457819902191550684862122175297163614954670307688951336304986012730353541395155666535333797257274546417338251962005074949411472628966351256541763813879508701886670140924005226509136231811819386421479900342903947474911496765411430913116264540893720338924878513154666389016426827499546283261893967661016378641088679437187529902306982658295600262456515516162417924471857018964464149298065787164405881434040505885249984336804252470978747232657163612349822181322493268083130247348302589638008033297915233551614268934925719536941967068958824657490732929643556948820341867036420458422697315095076501176558649367144855443403989633711941418122109514817872889790627068878298558994693481014036340637959419963272183016853431211992994928403362213845852241189863793696869084521447543874449323824624237382907012329048485769168143361397999224646037124687382006753668680806738686384206493252563443901000132731973020976872159797714822061936343836185156428436565925260332479256189642358765160696895019442457979415698196419603266601773594663944967778289477574769818358112329988592141474788270936691679359898833755780657358682960614923209089779516545961053226454078689405004346507175289200968556327612221700119289893674145071944832446795650377813950039185978122377344122219385833089695567660299402974363008463403276107075910645135032886104278417237541105463117478077374495509454505932984905278596550972479548128168234809298350238561382847453562223645016154657537046682376143722682475766992237943257982034051624493296784807830619842750696890219934012224938022259983795032397027881675276727229453374690468785063549081807414933408007266732491419115113467914422929079394985551893349666180361441751901198925120335594798002935545100950787722063659870904515916274730314865578267641928905069096133954547211048410574319057823678201507277806740170310547688851139104531174270509000010162966436490491140833529595855452403706256966515142708618198999697484003256661952305449789253444717033605475685379136948695196034316487849199379647110775949454094168574855799553075016704866316123596375310909709002946753660548002969411813758551390327177155009502601087432907075783875156921219017976585689025854048301316209873849361893905082002945876838329293170682298905215385675393461216979163880522996999815416733118063757725739009694936829258431138395302016271111575472360895588728558125342901543021506697075766307204180889392922922303633018816765463123720387997397658455860792917169491984175313735020558518863621559326904695844353606162748273632248387236559262939928069108419251821146659248052990759398822229824717643614286491402429998358732348012050892734844442143338447158496719572079781108536786269469432181936611223791407744837156608413104589003152100377602708356467122384133783485074775393163367971652327510982339506823714232170881613287998026657352514355428043599630804624839422442647395085578737183683187393907039568903130865668303540788534203770451686596374915739958334904193054386858849578907761590578381572091143405689918341554625300051008564766317445763613578247622858928245987767105813982855961739264453663474391385413449435286142099054570746481044585344773566687670065974193920150372612669953967538230456162323800698845309040327000150894689655060360725835772147530775804588350707173456637876649498088266248911953749047403502286022194337811415126114552742881771947140149793416124092920847605838902881148564662012012199395652102780985055614731128227185959180281136787405191373966350299201111238597280719436098113947801004839196813134297017017806898010341429984363974921009241270146715069253564608426190435727009048970676153514840878867464939438583125470284350718361085793492758279337733898719178812207744547552778057202465660641383650766810399582733834389627122215956447319251030552973847141577488633049024660170602814128643206863068917059886263632679612879433001387346026614799571578875064919784787160742876609686885975187314760021475297811990269821813477905639679645182715682054714202702728346174383622911730976030032201974027897610662145269320085845572751096013621656197076255767481885718609739908121684163040353123896584846946079653398553660388769562627155619295479076496615927583633368167165256991513179960172835430891817801269255314762570782109618203218038855329197753343761636277454131006972511545682805938586804424364523640904122821166089548186955050306168797891023165052429868351773857116459891553227633010006607904076261514780644817902667220560458600935258978911478668905468977012287110216929041899805753123242371306256507335883633606711442358446914295040693455787759356297527347353559526079633813636691377349347036464577733818823537077398788114074940313080167045296014422499561818240207659803021855083092425207528242531948047848992973428193419945630889359785249210889870373035924474183929452664541618552867223821015267429031524610753692941720678287616894584240678262154080873483705120723965146948147987664542267347368739969806988971176383699036508681457306257329773454503056071498732827614503774390675226117340859768326013905624699647619260805228265753449455132471788192663019610154664515564662076236336206706515101908169082184325816185453313412564114651412692649028180591585692039563415527026296222315243218162469625730782891149434506929933814102924566720039203974206451123559560989718923785164407356762505751269436974300173344628556934120605222217128433792202199328308476114761054934621707033312438049649903636400629703574112362042473149185666175640712358282790236950423575851873975575957152055706944266721987539921502982193832439567064614832952851840578145595849808816103653726035193686656763894619148265979259171938288566235454193734200832696257209646559267493855098412424147541758369694479519906795565452539557043292558518557049573259219715930354767364695596628780323079299520514614429760536970815570321586407663751141296520555123414738943482718743658121257070275050067539092903792057897990069208123036653934311471257898507420892474816888733047925505741981019114277900413506381813104795749079501366136312800595374234225606379688376735350765847358856464115716935620827596458705255710714591969764828021196990133643417135175341084696131192916284392796730657919381745152955935970129448589760934857836230384597002799617811744621925147677362047462526840076883537038990797960099168559608320218892848430179457356754948835880282090223993297957060413009655176863073354170249082683858333624220704284968383416649946530686892007136927387294713100604608048566890118071021268647920526804307133189101372187819324814939350136988080961885599561318899942549830409084611508919212179819770462443763534136382515786778795839043074970261011749557406547385027073231619026211108160013114516949015276022738633120505164933060473616187666175343658363871378351753485547544053068598381120858330860395765808533086281685986661611554595641818899202200937476054719567702340185341366884213107462086525468614763855019845508006013702302820512698627277525786064805452774551180858677119976188356771117743899480798927134429476644175249430272839638046435275683034242845407866014062825574138964105724153454302888484958763282580283404528945020271036402317020657350152510422145696316693885268637307585828964556343734169389890387739679881099133145470542485617582116645730855086033342384841530011724276747733590804282634566424456256420959624804129188439966174905194896323651981836809087622524001685232499095640291671117536971953497154379279868834175413604185950341272863069046673312221942739874079321650869690782036528745681439198119070073280996130616558731160014926723604512043617464876450226457067447912206424970165470818670162503098502086364977978666652579208545108339485728276824780939768186502233533253791278649478243723416326721513014779581186329148545550854717378380735372238132764698567353559357832226116666182670250219345304656366531815859780043408196800878212436019002759702959525554945297781647243988511962534655374650252603864187315470674240094856056577683711581199455119686490777900272391352363578873936367220654589460956002479004757629207220579642941069622723804642641217134994705032081030143135924548944494822776959612172934167711872550088672953741368033761950297140582460808702181595539639688223008422848246905086481160728288274064597421658933933948051588073393250117079477390528124124218305664933845954707056210171553856281856652021574379207654096400109966640805311513587234980027091335220150279402305108485279520020581651055221916780438556562095538558497245713488249124004647297080182645573183825294547836974667811836480582880028841557593453400894924161603808958584381295628169185022403551542543471936033015318044182711001094504671025436605955857934246946740864452652983572166222320209412154896322252961576659320223929017991229643512284543604282306192645896504447344513602739899553797000966880200805641052257555492228830895805508449944923405401562269610744161290248641736082021744816178273747050116888735209476978353930781370393538135449744904728310080733568908451854005278111690791124158033403052688988812808013277146346745438739258381568763572792796179416181331927697285005143320934534488582284741648744431871320426159363682510896423609487499676312684035273014075613758078405908923026041473484931292796799898629029275754092548980806746986751025603774399148028718052605174423083201710888619820902525178865115315260565284000626154076040898737305431858282113402781866386530966632713871129983592233105572505952949768710093769011464378422018508012217183982102957538456655578602974301237335610753222341599876037643126588763975488556659725733710462181905623297159778082237437027656111308326881563632283952111638012644498467407809119736390318454282959422839086635912253801016359885299823604082709069970866539207494916329808627938467272615554877673457980943872536594403370865412577384967631375111563138302443579737814204175947455612549440143612419105718444816177719874260610532777606414558340645753023932967289150277722976556057607105142674758830271722857710802751060912411890928774147515069526173089269720063513882664766412775366263915845290813063710403556161834726074397804618749455780685893583448589854291113804692951182019974329101812362126801115066149940063833965345099429785932847187184329352953221913978983772993987410794859211111642337299529781662350462429412424279732823646029280352463017756675714667504636496761550332619700731138616968415435166357769744152056399281888289831911717257489613915808622344400411960982253028115431467346462796143898370801470577205840899052389744118952708986916440048531564203524707854080238749167750577856090973999866268461870632294016204898691765277713946330626221125078458504613921075261199166490268224066518718883599688144218305103888014623878546472653155260087605872627913041952742624326317550644601514319947407663323833922711437915918781502840674929189131920513479756900476941119883731417931886602785827068038646062898923506651705165043847709931452335702662377907065698507069183710913121114889450930881039042669155416435755957438217841970481104581975191056849370595873907580542014886787674064301831221639888246138831516030997253328406371363554707489596662429251217416166930571722446407520961671048594382771525103513082240440957112377448168221629547750819732551996658884621480871166210957195041537406700870143093742671583904379884105263338046396035697606770098711034458524780160142345407029888317372782214374258845805432199899819803824166564064971867295068612129803918229449860953458483793889170645229817242580715552719808613829710550318239913455942813558731901745474952502989872948948858499367360250856114913996077466663233461453016344166074311771822945139697566299220433929250430876272940121385113642438081610049048095377880317955638752757014232791909882261936668511615805673769942130543522632602097849112795177949437814410672851598452601939336446914194596560569946640504105184686927627172445307476204829063881157173262153548201070348574994290582464333190096200363193475894355691485032967893735215688564866277660976857571667268580039310414976259765319523161125461137902583682144658927088085881589877456438774709566950406885656040391801555803658991382255206321981706544338425795726652727540797561159862597072401076529166568217023242731687582945909656506329993952098485014769881822440997174599004265594131770103320126719105070232024811951273041911536461186483253580772656680388756643982388765122569994142307260994208289505480076315017757874595123396837812718802582553217533491832086797134627985389351416819747798028780338289790356455675701426939240164033204400488593351967215844918947253664016077832833640412231478437552125736863210009308834244890982129271569537643452041791025569724420507862045750569477797859363322692518259462029339400614489153993077251000302594890009533818955653128989378616620962845334592692489655083826390876049098446804959139408944029700000431022391467200776809252991232055639257304515111703910140717330637430561753995911612667258927329679441945908975142339810910716505451429259442822053798683379116792036151097831827823060834582685479898914750612042115464428465103530059272887120674151278652968890564863616910042657262230181627976790491986695650948460687215287886314227454046704145420244838866599551619089396558878688730584865850845514813086277348358217223405236030788462935659357977583896149368584089827427184860862199481647837474761611789987247185044803352625638998272418207629063979912891615481879754489324332216254126165231011190905813798711730684188469508349743484381782174942696304698800228691492630043543709641034045608568082052349317297264285565603535215433292243747522082106576445239375716017812909296757082276812181397449089525477798025666816458748785652740354088694834454753825066545069503813489853001536507141298761103972241062073827543221147487256958698790588479059772731706219230176004832691330904964825226795168437773980875319862729542341879957751233567567862000851775872704346031305779194850687620528794971852302049795607704774688041567349326049847247829366302487386144771137557689410283159861560342823005865626919641730082354569443274008330599424808087613419332639647618454932366093784590267854141158913432689581690874492290684389903078111417795400246903675064654827614633346413098803597354944444170172055505374502576215842392092960157771328263040112532725513097653829206358395913999594314337810129550348815075435439257539507406603053547350248652448799901270104646121211079786984373498439816012619263376852852112388270856879560273786307025853963119682807688393290858173903950426373084139172993318815695509012138351332336114013173445827618674935068115830515664871032654397299942588176735888522568545338069387208980684560890176582652878540901699476756053295865808577626028937116059086557266732567907082087455997311554699733073176533957117504300298080053772187123110066656056250721740775209425590068124769193375037208379605054613400256546150559289994587425675659182829865102444989029575731905510625817309270487437969000306590565192625450288732422578706579449591660391552762022065713107733144218654139035892330762746009524760677059891929700834203758570566761900483469709262786398557568434436997484585037560178063786519999585147716961927671223936526839441515139237559069056146803957206874316374781593268764266872718657709099671687778183419981137812988984879533802496688731066941986100535699833349232538013549986030757954006731409884840597605068225707359155326066193167660749704872619818456728454257038258852453575322253582027424889674948852861807017897806961410133823425670842892575189784511548359371305409352764019502514860693804916351841741472258165774441517832122585147373183418734386407035142895144798331347536432465142265856949074278751458080323786124265614178273080701752085853059589222658693916353514415879181501720333518835156013136667010856382890678005550392237926266292925251832939974332212667573448388839686849149019350693511932323395066332300205783180044920252516296155778104262271969063762382665023922097128910350674390835828968420287883336779357920170103539431815656226155056179338428104598692822172032142157602121439733789417808097716116592950408291232208758884222690239950101310682493887319767489518813144132834891825649439625282552683030647239996856516394079247884274847511864561829116592197241712888495327906476619581947951154732894523006767704817594776715488220887618069151246557810352154427056528576592126517941218523453156691662847161712432610129819602167979329651531310061037814347152428552751013863608812507528366494273455003247412795468412268534149355853558384372188271244842355270862543477667701350922591194083989861146233920375238304553568136859660649227221670632285892864513460222616995621767757356199884564914303911097902983066509403957505351476495464797234239118528166290348239340291326475088514373173809011775673031028612756432835144363231962443781040168576578863639089942069288891122757113712416694433830404000903064785390544170521481514281040523770083959930156946085514483376978562544516811278219690951383465344739075216991487590243200276352865964487524900388596614352689918488815830612656458648302308385327450890235370171477642388037872383663014348813100938974827159242671181319784679168530923664440839632373833328674106522547391551770694241069571262274056435142154511656968212905415440641863121533803736540288640259203703848674568373072112589359497623238693218086582955566385898895909233311481756610701961665192944456840547092786903130840159567095129214929441621719160414060803709539704456231689465504103986024826558859463879252372298218433375366921125815414097308908947228328659541594660889273401395959323920293262967242928639370283370408972210809936210107417233050696969445247286197027393226524018770913090263570686006942391349253724724950803758749812487627917642809949052512260518578233452504921501742470741030287094420820329211800034602577899976473987949053116813217397937887123623860869404106567782421949275529361477017203935220205787200638087902550925640337950315141237081559382886499769309986823027187435552080230708521892881723760350017539143797342113304722822078901679465730970048558648768546744684095030794148650778135026031813260816990682029304960926512798299862298751621717634647270996654285673157000345926947296624316068284032921722463197839450016875479466295337783461207941087563793121153109804432846115943808842852870094777494834715854577511811492380185143895070400297348257098914272453215171334189580281307028356640409734047203593652005639485508409062312816895069978288712415025073830908597207600210819659463658538356110030059475115402140671054085544947179819251082291116537010275360937747273375437988898214893059635207305642091511568592543990444316372154569715650874375978564428906835778922740491712814766065887641218701065388132924897610511343438234045295341191098226973305785437692947544973701529622228534552120292650838350527844158743180926428433423314237803338693547342919491054747507447189516816322040882155313706371944019071141699098063945125410385253969575152840208369575924759817532808703498664244498328049498522965114280971360846866883978835461606550131714329251248315008382124032956993548337085786238372182514563719022992191384635902352051023466250591904862928203225932570787860431032980689949621957820956414708111473036761936031390934649938224633472041027613497051919370801217353698629924907721307600665235879389055370450202229119648401615118165223487481802436474573283464027412527177236209756478566684483985263961851170505042045888947963927828387951601220054798512396794666353942016665872170657617111848340240424651543702283382658887050073866014017244160052837882319412603412215535505777084117083740712500937178644033491221028197799152387453797996135757816451310068128972982530884248650139205075392927743687720787507825303775400499541977308194021035460446536575200022481065046548663085592716626134421079136956741386429626853392899745182164562414227137942686263786184928517525018909696038018060199334614270706728100252127095455220388361423654545296143832791129119775265845268191256184267383544673199561598912545365992669794005215057880499860491284005324403717057910382482019726680012345141931270866889836750251774804630378803443851567592727462867103867320746953426914192417230632341298807684428160588346793351192892822961013148426709609762716535362209536171666571736050857139757677847432149915799224639484366573789050739765610924881165548143730816369971464691209745904204565909733377967166635006375197440179194664158681146503514516866704102435822760325958799090506528869609414583682576036332260563695713290567527854912706250623399473115996108200167404754789931981157396382795982848826240436676281197794058676222911272503076948283835001323805389326565431244844057837357128404811134595474128455315259798520608770542039311473068216234719957732772752603364439850788561770355566698085074859354098220908156623717992006684414213408192620733830291352591889095876916816218716507133926591749913702339813856739760767978336319987854708577108875865490172543605476556609851151459838431365156052690404323513734076921383640256417491556796409649404546039970835383909731339280961087039278273610952941001096210427065849009012287163378347964957357093351134457520534993530224833687707606658197475528658015823363893997523588931157235903812238657384230874376231797416009785544817463927126111924498458512711834520191241840545153307955042253125144332969577662352023408844791029031213580594951171711395760810434355721586008241434691666698659722180998194909726761733006687368684629733524270024692669656451334709406582792976099219868558081614182499440655350065735469842210202359613966093378986187613001581215210837595569429058912506479255802421348167842314493570349816942372897565588543007008787724260595196534608156305810035244296523537010706854097196420615260744327212740806582672038393712066799346103526366477517456458309828480316753480719745953153216276555221952840259470848645916891908612652586991182076947372840813345007572880936706569664212083597922589282354938891016768680547080213042975195530276740955072332454938454533677921377403089909582083059513857611649228727265100250180166029993429392530250335871937215004134638452318237227541123235513558263818884807993237621752839598616515743621567450785591678912050534590958991562203476067267267873839795793461898292991920785201949783989708314943696100069805025038533608263073139863455587164532038989937223448075257746331563087495395555867712137842424746123188066224474107098325095342941735210235964311549917058362721337718854745245537662102726503341361865729204532809526708936880859854778236760266608448670595534290451439461941856383079969695173546626330756179644094150247778288656584597028292062022400972979436352022088198802269217967195317165165110078197961159607772805988232921877290526503235180826995806067142390000380043992028827035974753483080037553548060761179786851713731639372062223417152984563428418209391155969561965038186143059370532614833881772672851121223579999823399347374648195451491484044426505665140500210514803439604128024571177453568500775640586379236344687863294174479354853137572672517373257591120741552911890531128401030458420520682717952781040217281689856386270282227224949162029233400771776198055910213179000403737306738797855280963415651701146149715602569039449388044838108902333731834517498768361836719045856590486191822507902874911555422979172719279307210496304242290039008659030890448392095551243766291546334433801908852782397838001418149180898242272777365923970369751046065351627858749142396646095774913045754633098220256586212282289273235714685993378262972204063478261564511690953984669535494129347825922149698871276864110234119208752918766796946059493663798105530297759252188670043225467690371328216433269169373750126451409345794490405797284084164072205593040152453124302269965743263568494231396936992240588813238012750983810235343122520486123495331011849499180768647040187748463589167000714879257908236958850830107104093997229293373787728380286433703185164186160333419403653596026002766259131265381966418057111109957809749180889468656274700004646145690673584524403556080671096857914482161650184808512510379989016764756865416368804064220767469671357467580742285844828379501498311554967593579096750928397652104290936112778542072664387872651850837330018003814513522029212946740337008187344646095143263505633251545534530445795704777010160115954662629976539026528536288696117404539565227165850001390377928511316405907298433866021084410432850329096809864941820405205321257157412247438853591169757811851603814630033629829755742772073290389834939930992899948850991901771174032630835471941824990361372130593620845028855194191105094706440990984545607205502029898182680415218766058134632463270132403328141004218493061524270164284195039523807334609857582333316441212200572427238302034402018527644266902933219545258339508400607750805175322696922315439087770569991021104403867833168601747458690657685828798195429821690628188891506566115083172329169097779674720129430212910546510513503794147054739956278509165045477920370291123121684575060932664259053563071975918990395812764209419946873709859525350337809777370455993238548903584536127033898196932631201310316319677335782155351685478432682060411375561948702837651556239890591765511658696188128056136931415030060023199601982381101383208708834069965088676093739276209511716189080842527668767436138449065019927368174697487515657744775239285445629686433682702147122539556563906126553361717348458822405117003824712640759477602177850785901701353799779812726627521770093286772503352971369626518744660316193176114942715853068574177589057401196642855635669400029013381588625117150014724519230785016036194196297150080895021503015557709820476895873936747684260902433935055020148561736147553051258472354035275469883373615991783072594643363310979529660125587319077054276058631937423321606106195597627717171844692297591929905185597458367961485206992611807986263060382521601750559545949104672123209938100542903258108481507080019637772948733245693763884586529995803785017642068856981199369957374395096152927986436286367254909182820164740331414414272753950775739680369896570684766488548488489288427366018376918288256253073478643238778478242310641854814270177167224139702166728836004280594869714343827119309225857370890749540084690072582626387263919770832082860323549601877958489147260915256358381868775572309171553145482620122384997294287837319139525956246668148032437724659444213929477283243012112750712176485170511048409077956334568323204469372256768713984967550450300405589643010921551072668473894433230028574458400542639771153255468701069219431262687640914104361943080364566311516531208037888795401114349409858108177245658660646190944158116093054838343570675977398433938915334719881956946208597279040924431376720847605628951406723063743008361351672506448954191299681675302993003620244894698521912600171506233850731563930444311086527321392815758793901008694650689362819008872926478238922748330160487993835207727020606846378766633931819334660245598124326115073279920947441117539990698176951189598536736452226977806031094134123222252654091747630950827812293650234759137038447345141654314751458392349781513879162223872034301268627530589288764462399631871625985968348060782312632787246505245101443908907947797612323564821036923936916698475845444064983228933668552652306511295426096259732650517562291628760258210009741205804687622344435239472415396780628500782156534137671918926022975238889071749161753180935438519759134388406009077725613763047926802337797290478642588808030929413576573326106261825036611457019718284905673579522145633009555481602717163666585633469175976614260412208580321230185501374056236076662628737369444449812707582589048675593381096088496769036327315297009336618947555373071511245712121888113231022484147563561858488100829181324908332570109759180730821073130731061012010239070836065136727196763250088950565822354309501038370946150275167401395013649523934058693250164934453179948592712098528368590462659421874949546760986226131314824564479585308125276651359393255912989497233343084223578725048730975981691306197721121396323296100814096522107260179737443342432878208868682931981089294074475592296642546533963389568298051420784702243628528348335956815401902946021456481606655732581081826914513478620624319391351746241522996404656805474249252300760293957163060156205433439030005441529245709943494948976417006752269689095838063150176466066466479660335467945701304668218514453356967361561256729603640964491191746941324866241315333684097392184970691432509145768130532883249877620821208824107188455426864555383963992625956514726781389499923080877120159786535730927068845340565799322981397397845020105766021964557662047456923459728851737522918141990839640465462385909379977607715992813226784976092093547189645431386465608515870115266900495568268864641839723496460180008477886012824815640151837090880526793475486969163824749651021929875917809277853989443588769521007262505718567875034364563876724902701433411851168880516495793361967796006272056373420194056333009469839788664054159526447637784384215751526403604082617568591814550676379969502742074594451329631291446316637875461848139681784485509691236063629965977516838152135521750135190510783513786438412348511289750364743253927942772298904957395611179652360029572101070623198235790262744643533158652217749524106534906041796037402270289806867088429179064844891524072505251534031393069611691512770855097402652366357988485356818671379916677833518470995495426198212420038552371876663751383434455484395940282016219787854269488268094425202758814282954794701486517487378402243140501497837776229625706500655227263414377451929706039092128324066891311678940079490586918561308122600523553523497577401978512010697664084324398849777237590169837430990490752996578538696312565248392894174142138058584076748864594010342738682990073428064336509361436826640286178404148511865221926084724636839632178979341192696549488179885605277228735894348736339457945039483349038461763863137749682175719248436699868028668094106455228573605783136635744967222428737282991244648877490887864857716310122134518031525220236838584066279280678134237580005473318171423701058936700439991095097151575997208061172384829448106035411402556512808537373867873570348318841605757126736055260375889877620077048362947369521776617805445859947388125565963674800569060491593529048901381915061908893121979984718808972669342975195784656367096199067509561411402215309136620789567729182312606366921394294145539169849569354458858591963085688091786751514843759668053306064344733251467476832420575187692810666351356994372251378162866610200366694112813102248615269174211813307127973405314264535183985178046739691045293347186356612884471763067988844528674041547671044193422775583403222363283074646568779504782762360125666792175342034773402723763422883536948091909896943258495787068039195509837539684239045824654478240312566485936673680295073643875554302203700182961899890663190105603314802669677056065324350067957417116245145324060522765243428316396484133742314157705939635742680854593895191134574017769780892873467836705507679360542745868282821632805271936994634581437256696755070255586183713339222406396091709254934239426019581771565260576195519214799618679420712276068472394368541345714510081733594866206798641398160601540608178953657285131576414261747034798098121168914423775971576673159619820488982698132248170114690148973913537912081503788540995168728940556984728975450198599134103383862382682537539098994448139649068351938341817640659050115725022783665657003915695082461290714694028661849703571329719418029805038563812279524511868784811055066685370833097233934891345204671388142911996178060160014896588850805604713984072772467334766766624068918252911704966308138503648465480393690909869243790852644783399326507675261507688184488904726782181802527625635716632493430888734233373987993792627917484518140408606807291083299385628718405583062572694049960031138113288356546745612366431729467394269790188263310819421257557462182406193870340721486728706021631669055571773749168839034347407275679133410663239757467688513055571223164658028718464499343943262522591571931812622745920463843667450280130145734520614795374729577626199645904837564894199116896779249488329886667102737144013739173079676093457476155052551564828858382719629238148377474212930162329070398737277879159868372738142542309584211642002021547244543379863130349261330402412877578294075793834012356402884380835966319923612759574917241539130119092189599614155526906405398674966155802953394958127142218491140535839194332146206053752124497312280874154235519663259580552489603997967336088291624082199659251446593602335698251623079687138962597326005391426490254159784805332308817115793556879914305989455866491947183834386333893094339136468299379961008002230794746167216900396653397250330357617312599007856108647353232498683220389950085860059198554449941964587172053497667420748001086099937543615929281819429477678265461907559942191691746186576174222311759310924915802797158565724375699284277813601317411549267377408912857445395838031726119583259166536591154778001588468131886248734901747557569779688792005356008434054722581458021153777547421748669349642749855834643478105879426000112615346358158590883151971277123352282622420180996617784965255951369669942344619762558360973831018948604932373581740959044064549648000610794620519638886013073980993566234449481221426835859830263508351572953385266846859673015385747759864735952664880723463584571010844421763966576560167888403773707189716948949509677616429160977917038480935704582167331339093013380722390909422619768993744128542299509418728739966569194630108956468614381556682683067621615162200697246505669552529698586657807686719431286383891100406553498243138907963986374957643594696558640697122897382659085341168099231718693130256353431680962854428485778541141175368474233645919656070007258053568405175854118697115667083028146519263984762141119790670593238990625805505223631090634733662763417894064599963939297124433836589457166063502621510265429958624218369870897186225724199117108509578970755181103600011309674025437217001027942792577120652282514514680493053699204488154035660738022322156584075485292966444332815996686917688576555343010599881449836042040612803829236471121211256638116910705216535826451834803905637842585578897625006628084794129976700052375425845393579563272635687351224310914993955050606674830320302329088074433735476864898046781344402301485744664218652846766502816483753051888087476968817814814515352936781799578207766900048276942728991597663929064748865436695420339297997074943781242650303994638079715526089315038788641639201292067414482576121908318003114519666117403503953360915807034953167115114696976529824136165553419862259535013727855092382029043617270024416063938941017253849773952999185877280051487309543403731191034541743892182934198278801231146750222639021863462827579287075107784743849303676183797847772394831704036017997894906895306974017190758936790068931084519236155732359124471614670928675682954146579299229417079409061157650458114631897110450856610600784874826918858514429886879693572307954097675609314100230422284674057293843568133395956015805266947751912160904809725704252819290020744758283064476891683052161718836315971887743169927613540180408686923315579147784521648666642653073757686844012630525109896459655371128280301442785558434965354564207727731117560345681715700391175353093860768413116123237747116752004172177163409035880559597709188516625194080430903841526430375301082144067073874545825078809542526676778694460795436656001955572176038410448058644436273759286133733129347411458301783348532767764147970881544335481147473663741160615685678486834417788421309938680135716829231796596339038993985663499019987970381456121794432463935934369204317553692121684609862708580199088770167585086026836392535809417251851478992964140320730107155782352581768221175324423756388841967809532667417404949391305126698945967432170679647539319099988776896921203808778497607584858757205085326133135738977831791131145970400785182123913665317337467231209271300615260011768905870518647363232661983829626149852842966216495586052141683380418087446247539391620739420309951060423087212565390889123845630257841670493256340777072765972076214262388746330282803288049647454264921808589750767907436390703631712240225630243909810854237198922716553218197121482162791516533827983471037829169065843552447677611686381555568306038175413665683461525177069323680592813114923450244939620581097736583246243502478593113279364031662284860252933980158898381591998910839237498179517004227487585724960590035386878296467496497294513638255857874491711417600222956005538533938623453901621653957482256674269264078970124632851352024381353951391113102964614514462104392183861595408449377576651053833625883003672981458774395645045654469466771947377287071710850081929458491008325588533253453415480781590368756747824063662213152107828800706644788258195044116207040812300673784852760615215355815353932711108049780184937012168416534231441414154880238968693499558560939090121699034146469755418671729369508394405211604712242876850359914257470602567763043923970010052500207624779396752425661445704799726251316458094605992777527556861040740452457949574147750103695612914312246454890893343600703978281818942917451573154307554419165124217943873854164360001738452412236815531378753203826619514951463342660173614738346494997685826546132613834521757627330173844377307083063317393905884384040963234111095113777970113004016239722588311023462542127111555514152434159580196934174073376860855857342280821367038389889350972938647869609651516339124783196210999242138387165193125006529553694304707589069525692370321958963696179557656857487442044918676591432292953517079825639718462058658373480881844616229674365541132713762466250603139906387669782017641297114186365038307032409982661527968281245722718981459441651774506434209397055315871374109666211360375587526498208377431976561458147210655659099963293943985847915348840137578222644774206808062905362187168904649946561634686184673335110049753663454750079626975902616372820462621512128768494630802246560587188394369105852458840959046355713970242401548386877703181412699965164820230928383622931782482413890281153020678626177268693632744534716063639093160500976359948741115433447966962385161902133819392571154818647130923716276887728286054163716841047396361400473888201145017393639513712124149966898386488131193278983273775933137297395380501995426240782596430169007644414037981774528843917098784672267864658372919404024457988826394189047443169916766826295122312324089209614316025696715818522048292518622413347918407282210429988000062479654783271556958814361204934910445143901472441849309646347659495485389087713318265558787865298075556101314637648778478619587700161431375760211500456124439174598164749554699736150307842842190210308879819587943739485721708512785230507715147701572578557662777271831136246573659000576318095653591900640810535472400107736705432577740039529100749218996827890602686455742382314260159120396258771299632341139535605710102922198362916909031868203396315260493813908539493225581456041230831484230301923155236084877436781670408027413518505223437262297785932226798006123836862187903664383243694068108534318420688238514652895073204690992775056861043394999887376099378079329524593954806042901480972331836171177617457061095698741800970452003955912259942762787021305902440936342490533230618209067677175646048746265032618501577721490658666314054460685546485198872754268410174932953665238403959629155299022490059134322775515547076619959298622342981474369339607563182256473042468218610178229721762434904837753629872761346759026030297711256529818578222626409607950066598102562486144121953835092526465814472774533710499287770198227434921325033439575339973883048136352453028683768453721792885135862850619093110339066177158179278761592229397589574995926737403338801266303923666777771185216708773430135767125595717985699286882811452599124366373111218422522152277167178476975636154688296732400154361939062589586394490498791760990089485075630172067434481318926324824481760170940505629219006419504681922027514180325787487471073677029615283618525964498403984179055963926082145441035163886425057696877194217523657449509022210572277494864293141244867541388407559851465953687371550465046693126371218435525244959975204979086317984820933937217727822025136365195812198999436786967975815724269210165661249332576110293595598916537070670870260533995302675941929053199092078260520478195880494868109639586036649174519682831076030490598984960885439416212077949695380354852355385940096124703737630263025771066459987043357055062611905836668564254783983571115718215187774898216814274401167095525528732697188615838395327574869357370028922370808518981933145061453710272514517471812495510503008637304750071817949349343839435588670281275694275115310626108545131500813404977051237200056207142277877789170347080623138344263384549227780685625693522604911986325211182931636179085317552602888364861019324705611864084420239324459408500011902840416213314959002395771642780329062564715552134902062619298165009780067697926287288776920190372935878627738779534199611836248439253707571941309862051920737137336453487481065443547505206467001701215801403718216049966134448600073859453368225705722612057246716885818366570862455793100517194458168476224496813358033725079284756074545760182318018297795932739462742583151136955753942955211995990160378102311351587123267084292028741826109143127752133802712797209562796865557929451620074643837246475012726888046783780559618085643256699916712023192722138473049340722418023309828104723045206449174354100443141771216462145228267005286148849613290317219873763494475885631855595173792988592825867313981978134107128314923099138481620381536757612205827515072707238347188823442752935290595268687069438876096930813097580007771227837260735329263529087031386196943429417089468628347059374119845766492606632928738440563660189094468198263612371062775291811710996164439352839627896585411054558971913406248787996084910724781551865111480705853519399935417626695101706132769164341645642633608653408033651955340901972098341266545675312816578084900843717990092435106188574591175354269619373888264298329567610224053782829715605551345471127787805404448670702972816158785390002305233545250425526126986874999353726830631092123916313294669856154960629362281538650899076258797146396114075872441149619905171020346419246752789712614495106812021776825540707104205442970081636356956754095217587683713727104892377745817846231357722079241506141113227139390448140809654629162761677555855686722119746886126406347538150735120589307085705526925870964184102669415410715583817754248784636960740860724841063423238375387214388877014946053980595122206996413485168756127825684149839076642635639405230021663053073609357586670700426082966180605273072235793557509753336626367917076362289825550922912071662677754136640470111811240888263067890152784369107212443838513582287035896656457589938007131100315954494922619073143529890129947882175317870631950369082378878122365678503189943041061997539178989169694513170277246760938128009881064670893983186968305642669605083383123139791511689462085760588535274209472958815449416420534711067543741696681973354672798266237831323594622565668174972122027230276254197262945385793369507188210795463102117610241284838453754028276627277195269733631101394729373418141275460196950808683040336228687573882772433020572358561119443807176613414816834281170147706649157120912509168086466108047188297349409673800097577688645185042096714763842677734524562122182366085872443803608676446992396677939416174966819384724577297499217188355079010129630590380549690345967758712689559218765540125898478353694767145759740960516699692714520571090514852968095720128030011938036422558689756494165364346256469939652638525484101609897676047465945882847381274748890489552580189376563535173978284590502118645052474611740539550383144277125677744449822306709034635126582607291123914095407882549341058701688040993316582458516402952292909581422723445019527579178817113488281318915768448735577196206437208192216838786410338385246037270306812814503181775181303712793047800230547981923332273505311909217704214256020478270250880919561546529031607114416577433486951485492741822264288111381710945695051678741629434376891480523072543139877521600989461098299302514949093563325409973657671345034031420407037218306438155808687448122044396801039523857950431948720375588369748329565115949547291616938862457147375763504404569745921455165547071555284517602101491368167250647508903057857389306348944485242137084935800665412315827964558430695495789670648473892177866718682187686713968344570410092829387584302900785197724662949203344231894398539899663909865139355131142125632661515353815414623205916857184515828382918681095515329959852622126303169752596749359026056550830934114684053538482049817163906292654587052598549596249985960022556761659344370089623058965931351789262607348356845584735035690637745678019692071003654007691465194919105312840717037579684335825235425295662005314588832634356293452433775361534518212605082696531253896733608829878184408919611904225707536130929980741636386762652170850180232221611265533043570653494455386730045521453467231842308787628898384057742467271660392514082918752719767688110055244548454923863696208646688094360992246369987875364149051214267294978783406311622581742389790852715123025493551960926837151751273468380598509279308644781557510738736613282423652895835425181875114645002882956665955673794889301919584114515520121601404188593834550310652642897753542530384710090592288953304439148550423963291042248544490182641036955680508432336848583834062883755621741973090732388587592928134125680398464456947129372979416222010996927268162380814647770136681354349163873326815994345404324102209691316920974148732484332015100988841301271440769752973526229758231276256349010131593393548447696828574950715044215878582023813999260387344180848719032170325876265396272522326108671470763508670112869573258941931918539344136271605986484825448405193331315185268359737499261348674075069301894091503908552689230539904175009336365868651629697860699277821531806548959603244445302072186483376759202797496748433772514866288002615283069758789955116217820049867686988633435352323234493110715293669110501524090960052380159126471338010914359951936884063421374497687555548550313964709578865504094383588113738584572967925209917953825457953376962058672828824982211395420248458301786218560353972907674925144251846589623171988212343765371250322564803169804770160980429961493693634302860915991582455713091507969821939179108772259228743169475756184408771365752887433934252441793337051246628067694164750676988936295534008777194607662650649413533511746380435967741690002614174039220752421373512020548301424805505983428160921978711566415976952698602892911181967378239763291229209420447295150317526330086065356788039452523493973616406050374444348165350058622558968926507184702015303392352731547651670362937873126445479081552300905973913559313398362648514657436154661892050060638618600016520590532489813676429969390662623793098694107252532930492122250225075630234749574652691002208536692036974108933583396650850293533912836335277740434519177220390773451308458242220122696258297766159389567493948322185852853263891119595242284607516708516492616894013830519607608168138805634767857355810470093542770165740758491651241251395502916155361083530923413074610874370465016242350669446674688523364602962935604856949892267296339904831998045748569907782337271540333763638457768743279842880026382445807179591007016998736686711797548455460079835292256906429280976256705847729453927685746014332411113042991903600512607953986061348925134393584870399334869547751014039204823758022147160920687232631123140931966196958329737458552781641800876916829758192207461511034627555213743196731259620557333106991288610529616657190067197705993768710792649230895453900183916714096652024355687764748722498407524624642091870400464406125708058685903281120518930662273376645402373465983218716925598836497080635475684448929728712063509865672732780368605375489085554482854516335469383891599153491239164139986856136022604592077803239681039041305652385447191420132682145784068099362518066723928852579937944387904352326697131164141556117885895089463807610676835270720186176924275832252829561293710725110079544387391648287005834171771465398823735384784101732332966805452178839309055534679190551857095930688656638642452705419885996174373515927248899589410524922550588243536322974124947507921577981816398176781910349493391307534433047058147433227272288746070829093233398891745535158940687997123136641751757612016900337526178722347728250104007849280199157118551546573882524735583915857981261958462914462360058526390083285220349265133877372378954950420827064363683518227139419023779000075964961457678354979686318041904063869913202879413102070148275729058473532375681633586119122300647818674351088705481887984781552123855327212102278492556903544550761145221729708243733905074757632246516969441336230068945618100510471565672463292362516841039829585444824767765393582933786472626009603302492534290041724133142245396407662335255137274673314040248346243195133057521734476145410629968996419566338622683397552675152163293712780195268409559372792589681676725261546611608261974050269667929987866761389009648694330644791573283499779012344007009894066229597344728596354196282984256921586898485452614028428085057281468751599920499906032586146594299146847433875007167590354404645177404370341600460673648235593016666283751739752842825078859981138605230866936542351084831610557842466657028935711974873832979305044610863941162028056821497202100040408575070306613453751761437300311833040496854990717358506870448137581303931781354618183264175281926925673240309848214339388030529502434006280119416920340064060496561847069434854126389594129511435070224139753808199647259068952573095617404652040410371058453491590418143667745332383232714435607531192013608143037217454582952440954590320870562451404872856279402588913254887347481372708655340118459046833909286914916326812300307493052697520696527536347466367012256878689358045836780860877210704911494668221905040000375202012001700685166391662645483238350086531524760619796095547551501926437994406620025967639432961637573543386109780956740429295192677649890316851458038862749296501302439557802781984369814628496495153821550932048145401310642677824474129621253520438090292760046184546252209492811482541028511303218163758572687122179131647819352790314659182663450922200438862572883862827950037049801592589501722220136058233638301272549121606806514150487994612155472709341158634362741330324830655127060249513374561062308490602000677753313073973093407381521768181993526299024222175135906699940149073765277243049006099342362062772832642907190403390063833778337476974353750201599885740409931637107668847411681857095774596765079528955176116673554299679375862239426042168122441237056649622074180797180979329948756949267049073411746219929593701751390396880698272270594433897833239858951955566457926164074711694810418226074060451561980677151868135429503101932288630017738635731973371403411989878098955244202988584661493805582050507249376861289844974187970501551880956675676647308016260167993585257834482144126121013386240006790208663457976439226566825304792157322314024403792813905068139751149763175817771804043907494614373621174727704771161090282315418530445624516709360055493718218872869986783552985072288914028019743883579349549717397005460562952865236948936757908418751488531784111520455307173196018517148444927688721912747020004068839827809491975061018459418055881813094757596915492838905159985951272554741289600327646088559788520348686697739176832627406943692141231050327635397022483032988340021606306683943898424502874424958178661146988400819482364278080369435561822393080791685586461719907072737258750941616655492835122927797578706606373139081635923325426776743487964743008999518691415401741302256009094703619726472107794155946907127409451191428596679986099241653951154304936025628256434037854529404044449301228296237031135979142566819991959740262309749942703100204861024529170204206798515731841577033333032722496737908703712890568094957887306000563857544670874176798456237103221637906850450533212326637677004707296543673040392455123657273229247733851165421886639868330957420440580272330038293466943830736691481916222497961481803787644582538299158751469013742196853743083484375890485840718526931430527724899329270900723444128445785833767438343858799497980537312355383527254175926150180827901550567597555227349539044091118521597998839358720268239965803918166879698335479747947232860064013201097780960511907325975091861343526622410176708638673498205427519563890041553571698341557637669637287041363824753803233117886040291292498425042456181461364929987162120943322604912930762978854531610518189614396505723566219495476015570842815706313213506760904534512027183638303845304236218050807541745750581668574417674436531435297602367550792738042573431635644144401136119451380866057031946847468358791272079413327776411414936865178726110425972160197190284748432766531393691195239885072021381481477340846346549831593798676555069908015531208351135062473572924886584162052546085491363133853640869862699213678687470027896611020540280325489196884683146475935326880331018496772852097079226240990841400859247555747102078687940074899803437307447428788688398433016033420144198215517723936853384272193617269250982901937834992084269271541630937927245021808856323525571735005775530580879866570516676585370470231264874625267181492490680633374586116552533147291104075959255663423641862428759980088246464577372871166467825338012002151847720140800698606549073382254315086740368602079321894994293495624097719427773002328942410973084949563486136929055503017587439560253232234124386912220054395647873639660821614938491090698171564467467891186992450788990256338947694203572610853674034599148112262002163287168052186881114896616463214180787263450262603410603928740919947611901493123515433311757948152533542039558475283899776792560229158369358417049820625458882438720912793740600630836216939016707393473660543394236546119588091321774642276441901607714855494875418979188257371198674159155617611095351643547878257522265874924682320357579935832955971708255028554132254205726846354132780874298172920443251578443027719783991610560192482982701544386324313443503985134965584896812958080270244056911200431091149429957437940775270487306169035737831085509360167703226003464715273286617920745281864103528285715305355895328653570753486719451287562520524226661159414696113007170405602865694484670994808254427345081619573639576363764200033832293728620476658754870400695391667714709082500417991265818314134986434103734770461379329020799436748126350484251325397445613976649624526609220326752242714809397968632965970654439655239683989436349948065362567221426109311414472720271521656474969646164099889634614025201646390096994213892537623685055880177872477647344971790816581123091643260956568487590664756666969948416050943880001083534798954306442045575896959541734478414630009598433963906489640097954459741034974453052267233492884907359702970577559478529784132818204001563042490518053159892208173835854253353706178103925958261248413583097550928911585674266706334399567263051065694572839942794823816621527243944964582906849762110349112232089768574328938142152811392197747281316676152816684859042141146047992007721239085648396162861103226640537859416786753119872544160535418547460849762239504045807719727126525898491754573830195794099615289741240213926230733329156646264415546404199312220655758714388190449769438297630387399529261503715372276781141502974914074772011864060710289966629552133411324993829720717367582227005138866956840223667373962802946828281031862341006428738407764239390640515199880668984524944527478052527632560504557971052982985983628401358725912072411783502886459140856024710904009177906738323329120490754576483546429796408602827635959591302931932569098603451560653444568760552037149105034563375839722873310214431307620583514004180797214014541125021534593844572512880725114496702405385246513230995549914391896242976395012331506830602910627021221454020784095978436353712692026121294279920336497844521495403094193332774734305360647176168329978642308160399682179073624806384068233383300710990190366111683632838020905421802484053163082596644842176540135967465688687404141789446098607194261788399464657250196110111096973183142851386375497092772325018152576773572922169208647302421026807948125018454492638530165316721006686386614444327495330191853337320581088557143495728606673928521662325159184652850611711078478369991440655298582542025864295415085911139610559521666927140243615937785638055371177724621987033378900909019838302480546545819135357966970223521078038579228094406779831463819972690664064676581620762067402458283369101232893399057754996164224239397089101280138783545118355867513855258691303505284148297536701013366053908473952543926156647534245800749021347037777951990258649699960105452337749131299193599125953913847658542962592524487351275035845152526043460695026571018822750938502569992277124822552938640412908977768464980374242722916649414291374783641504162724949628550349000730966698851341536733561141592394888666193978280224145782105187982498413087287990347216803194341283739355483968402675588072266535582446096288107897407179741288681118217982746417862741021159333525518939635222914404242162509839160938016662647919023326435597169340103906894236575320166679029904240951773457212809042096845300133484800605341072281834931852886508810335995883962868336973076262200068548994480123259844221004478245345935470503314204919371358699090198672924370244306221629286796672363491855121802609670660555429733902452126800010799742068744464220821127905195976423460453041099243382740286746309414699192381994731615040422448838898207946715395616343421450500201980409639391921217309964070727584140908072613848659472311943597308506447660895014628433904031703363342764566047693969525857320962964684530514434927308796880685039832030321383639860475190684587716231844257169514227548156896569973589717880894999735483057040231520737540053052866214128312687995877470600581237272981503233542513854308250901071654094379274067558323283680483555261253330903162612288260605849257859337922365722545085194910416307240321336524732599047476348325692549130189461836885866631201020086607912186536812252186305381963352175270394043181125997261403487572449357196639607524214733690644151958159561279339854671405995753035253118296875707002183261939256475728514704515134917904869746233404329733245125955072935548325899161554637947531961764035864627492715260151870078542785226720226056981884021820601900649613020757871070091413924540054938824687283835205444594054422091468139139371702960374777157843043816383317359174388368142980858755276580810423130825036087755687792370747928680034634990798827920255320039577909358338137734294238639049176609223138661753094147318953265934979015442429060276623798431007472709069375388044456298367503463153799113914716922840919041866664261164036905060517102075264858619181971212434724966225763517718542621562831564752427072329652851335944956793694096899994589453827874594212659316534401748252013033307386738475614321298591922416137774077256185117392647516629855687028940148391250554955389123765480620504048876187005328918550542380862588497405257757628584880285625671348376065224907366980811922404186267490418156117638825628288174025754719538541659256551123705364373382911494615231990351005628016674965139995215013731409814691981873604614196605238861658064354801428185325698867576499460955665888962849814876599969202889904803528754077183404368260239472292514365949019978378151135264000701784476636270869668440975651816856911707992755162703647852637661331672787944717878745088322915528356038338089233182935285193168779622570841374868495832949023424708209528946022054018192640155547252954840254283318622674401128115495728778515026318313677712712884565714494988086480527177362501421124042066698757597658220831806735947099137306715793850693492255408737302649843606848383494060584654295745996280166219043286971785375264088277454138060055577709366834338098622453115362841610671844110598434041689383664771707359788754107019982725653763924800002157211515779179565860257462065952837981642456136527797314978597166922306407939445576718984017059005131950683505608032825990680154169004091527703321236265819096182578096499456788584006072261459375984226442849478085478350523936004035659117403119485278373781257411132474557312455486383254044545136318702694421840895546629505084479215983261625559915725170908861645203735985085222980928060810063930401354409159324321458830519564327694728141998286514093081630574331676649218753301326893658614043216567846169322168585134661320788890384070810026437984417552847966823284359477228429678584340346162130501366236038816574284019218235032222760680977386422054577185850496625787691356276584983621673021650756308778483541998451974473384274797983721684957485175911861884536348977713570594733599026796587251903026659641363600603529001330248852776361427418597018890227916329603353997739293672152811507686663707171681980528023937925873995799638325635177789232598790717130454520243546690249668796840891156638570606827922680229482486050024669130403400561009709680611759159438621321685290073767152131776994177559667911528904662873258528217083390650951140676359258846176625979057451645611054806688700358204841428870931149844541472518708375957938613265279887049265065377206695344677868141532228505191945540697204663886160457851976202274845477607124202991232932029754813822410985030956105494590658271283087089810187945772339714986305819964270270909177835082126146269269661585264075402824280484561578393749835859502977875273343516903961795027834594743610948955600585194908608413688801862082402198214274413993533845246218234658471625175901145456773448184699671787743995564367867666584286911428141412589959857606930364920401525407014220461846334993774412957798720518175761953761127230344929756388340573506709495020510432045304195381754471206907730507484350754218068351481681739180963307547558848270862517453987051904345294571384938684141316981095614803072118814568454213772946106896273106594213303027349619510373062164322865667578653374211357388002621878932686476095045016863323559642065898874395790120375345952800665832243927300554995979855962170501602457685238913081493332184166485465879479516472256848674985473241482774113576920065946817165582527270043566451893252059428271046260157072537126750804535974880620687726810421598954534928800924824015734663856001326183743133335893615808536916990942035563840642322656207270928980127314059540128618142253483487485781457076974445417046398078986623476596139387146369882788725795962013321500718532395611536277325262636019433261784336600602422513812600158330032930452328517882256130085253520150568508145806132600246380661944287194734215281716572626066989926748226493303394665819761911037196840380686677576883980758844324489514080605459822537296799156687193440277417474341626350675414569104925522405453194641831326913808464076081861990027122394115255996617980233260786764300805906136299663698212879944358256080782913038895250590885398479906292573606157151935523689276810493813603669878974098530324101472133952994197832675243140098768297708447616514254983478951649929713991376257987510972540079031588184269967332329921393879305561921900281347209072374491605468242866221768423065801938913953144580228489025122089407382288588234885182430602161684519985453108450476991005547202130759295674779156080740084979224939841188924499743415027962165544133396667163356837189136038365907919258738408610337886955769646465102283241972943255764715718701034829434154917344740774453450493585199842040318190609925263347990379534117818813839949317991237566933288560473614712726241020901430049062628026477934643193101347909761235107787148360808407109807412636358074346145874269868350060281881046825418358473985739296546306688980041132041187168465741180198538814837945831838151698361169700121601784088610940329201150412027250372364195754518089091439447048968749004152614100054964604625740272439829864968482575489529708951145548967968640912323910343398800177615407906154754621510228499737157729186657962380991614382430362330855852691732338300771062295423121038049235559301712504416517384285802328012562847307490695954118425176318535024751495189886708067662649635037498036970640035998655698948169103995812819591760061858702745023845568377265978503754701483081770927409410642134555596072757392818624556424727635864548534612255744645332149001492728103332872216458043580868292587110575949177609344168195281293964601913761978999545683777013307925039947927663270468795067356766111373114702565584495882553195905738335429027851047840445446275624671510581631842214570946751138986477242930688287698925635303622363370671029796994674889737306293461792872211331700643112443971429990432965308483209684786282800174825561904358593496854377033503347357311537586117225136666428370163488526632353520595930840902751572039669337790226902169021076010560449665387018231531334754530383155272916334289120577265284441282725108969334013373689995548823262643247440069321218090683915653598832275689775452423803577991022076031305736911883198617552996591928624065907377145071145640497071448049447368635586766785104586390390360387497118579259756124337128510988574344414388036707380686065606988950287664722703601528354706234699378605966524695488696192099907384822437994194557466959246506028600708996556475050788991912765527868453077998018590607974321033791436054063884942514002019400605303756340431846081422362655572058895366843517343374029528324271516859245710571918035562081142073813445217747047352380150992930829066682762869914687816124961781796741730192055202060537638238308901928401014712405437558377340396133807886765869846355548685753727723550404733323512968058979263448281835140843967253260201998654149559446034402229881336399625594389961427535105311914866237494631999974220584182777092801154846225741650933526493751626114805639363185228561854988251058798633677207814686389440569716934942449910787373889727218492501882176748326701965718001972514227050079413687653982167335430425061834054876027085194234891104543539910579618524552315264707680115834654618178050126077334025961306302986441600605119112989206556967810904415677635010900359503912305335776151340911317922449552982441227074154757323705325711517814374582544067366366210520488482233595358155094998811149437585573361320496991787584329237590137745181984839407874263085277509771453825451117793109572515309469893786735990396386063670352926279315569789194618771794329047319638554719267690914067867263233060896334003412975554332982163525407054917251283976922683095650815886221711557465726123025354307301250636677534461812571943691203322060586227985760059410204300592163210763500555995124225825126268977205371766251854561275629388935447821868411794638700111828769536269511060212529253883651112396336808995877830728838143360553052145813461867999868297467448765401065629514454721187949475636267994851239428858711613686901880094310297280334014383564903423161602891368349282128939124264236861350150946095470629676482805107406983719540343871770142468010545178708340966023127619039227043390955281053726312683517701118557856385636273112075547055917539870794905668318809007715582590438714994993133839100544337748331387838816212270182969392370330654984849583661230319665286896665669453583473099782054260904224171099294012210304998705660704898757622016847099294706396097578144610230178440984296970740619171865230230456529449165481709325039170990555523494718071738221369499056709011460757043659986159291666931664608459078264882404496117845294039779498446338553361651581314531562420586393509201435420032929242456049426645861710711314103204738225348454119506223347141897428807845902563562764522190112821874078391031719229639781447885975157847076827512805659796702630943532111506168738875922647831876120116060289628543413307835406862644265097371183162393127873055078620705651230095495008019452894688013954782771046083739581783478113557370828146055758097639281371312662269356197283638563899139364607057098784774618626687822994299352457522924704028694069096689070567499894875515999501901778805511248860930804057179190093823314339033240014497441467365682984834451273290788986584948617232969135834171409425698292008008089666779372157910148200636648182379720067614786638144765241054154021871592705121498514260371643388488175527559580988485363292511655938629603288287563879468071530829008936432876587728702676224808189513838304360000566030840776573549784768080832565554575467887750934173811855476379203618964928179425726071738880836594246625736521352972554464951688089203651032073315869318306553082683980019221179649383265668581628391096957675411045605592078685384377648121716170262453115435102514788986335401546976960967869503943914253070610066733046515643431842739248125175814102310538956689861803444016125406488119463064761312526709505948423451809857625096968618697848999669311577019149516666782201829400154688780143225044296764070549401280874843467712385530918567246430100575895375581742868006746662998189616817838886101080211700031991735054197352265909429166183235157908713305112717220043633472765372175154901328848558734687828316374866564351001585504524591930285215706447363256384862157965119450826880076968900142401479474925843108309790004436884609435811214855352377813388376452716747408562218885348019322544145493195688135497626675988155380177624333541805771711013841140816335280373035809614707069348116918636223332047673635411666751824182378923354608033519090853248165632763672875781319657135837919223819110055401303941204994681611541546778104893010234960554656725277758647860796817338890342867938439801446963386528912501901151635228672066104579799420949343259716407463439304583540934283714748845676984490530656517796632377087408576382890581027371817174715513825268259517599431539518917086376506568037322341039767539585509807359842662298894727684571607823021009209892143312595986887166774838281107617919533990277133289576331859722055260230133922247076871404392656289120389832026556344433074370265803901643598505410015515757398808736573115613105167142404167124642515091178016103303212561269407712637523163626242378672810625826461274705297408910383094146816575114289441628387000903591490709544529934000092720807766605821392240554161437240276627510143261316885718448392835311165749396861633481922238281185700456881581678250117497932450520382522461111721902013265774272356631766622087497463926226389646559330459256671765671683557968789627762856511884163186802561582984681287237908552038628811700286750809345177573737495447851377643101871347014374676453961391944971952139277758712801617582731289906425382835884446940306258360190264074093773760391024422116722693816884365640952208948222073154317132224847808887097639187730089803109895013283464660918276909551727563931286765181174869082583258285442222800235013499928845627594071707716773432049386565979989315723476988316884617241959659717541512572039331020730042410657757811177335744106553277687839671108833665678731992481622194132606543371599776693546170818021915649652150805267396374433211407226650570191372801481196635354263035222220532703526177817571040355139508084423403196404113536653993128377936067262060729462224074054165766279919108273017962758831413275518638811243152517079677597437817566379588928983447039794937741746180648375682210125606223569822309699304055039747490647239233694660109878177132776670289311080546122655544669762300852227769649575176933304217543054762696356770884174038156819132107160055858753400969610451245610105927364776497755251063451295086897027825458094446118484903001150964127757943505076379915608474038234228450027138435985443566667941777899605007205775040677034117449230998539203060920595804967451190659979162321059476338212389654561526111048869099172920007846896780462678043959740360215329569632558014447831037342347652951222951046210688088480502150173475258428707158894435308378478549401462652389330320165827055372644096637537201404431551817814425971429784477177996402432669718202133397494200779032541391831970247439189898760873323283622528819877543864436468832491558006557087087314121041048695348321883275069529429200509693941572135640510092518813278414234715855092119070002248108684160360241758172025808605275052527101025855719274078993755905036471090586426757525013816266508493095076371869360608225210140335421725417065955402219059725137363353546821261018289085152523741627052788459265132571846954470157286649127148052876916963619048437585577323923636725681638008710591716618670511085541555015559987864568801255959545974222548580463664802830195548632320949047187276678909468078172698292165020358632150301085214360342133589706389246404283167478762638703795003491516419368979500643366521315655619536631716632810475023531266892276284373945988190733731053077655669106955079013866998823997690327533673905194372090216138560423021497835410470997721057139886234453873351436394602450033030402173220051190557570876901810115185327276291586436664301284969195459224573638048493935363694174686577927257429876086600398574352806976611133753743809417794911391962202547226679595119291118981723061220424775619423982167801491430451676717667834503072978128365092414225746325158707171311803035761353377617052493271524838293088921474591052245817122123754774255917330378243092881767431466270829760394208894946459474156483815903454258236925824968058461710628474467439443884751714270560805049369323539139192455260663422233588381767925995473864768086543133185601595487827122246302434341668657820023195230129716220350863443497836643088535442816496353131449176655865807769911060808307924480820905751266194136435997130317793366422427691931407760831825539983758365926363710588559934720594594101067030499828961798700015981290481865227928946878954609195268994928462207502519145628028908882620252701658335236351968798345596001422418272342281533655010317985682676838041871648385399894179945412403816184248119592850510710751182674866839284363177560335382370486176009292758151990394345690533355886536436259847438274402439230148586066860159450406658632278820625748739381702387733509992973568521729647853819068603937434094096865168925261714726032382147969567879117209458055025054608066695152177559516142786687344427319843451044151801315487197681909828435070569806385165024600952976486554153647339793624267411695975532014051941200757114576668510212884470111214181056630223878476804826277518759545446659130247466570394147092982921440360953384765187640947286302563131022270308859016103281298164125405111326636256937580492695678677341472991742066306843971376942959875353846847421651598234859899028037379692879201883169609667064755668592807596683497637536197522098059340169425118496705721910742170501685550039403193830417855944884828242147634230551275779231898480279192154933943356522442982256082279498559351232377965144500242972190394759581158110184303117517053511453491607747065750707865707212098950933600780362624975342992395038190081188070893767747727472346209168443431966569043119560024358726703137233784463574411765444096375494608849210402439013620367360773565779213641207841509253608672857707451979191533417694174980768653797863979032606472651998792441790488622027408228376260913563306143201622289547404484917877403878626897734539315076057817102753909412721346028860729813725459961255311640599216494701875530127671071384607890154958233688538649093993896497731704228286987811882059733426612050652021426868380104289527473216675710913235717370959338870502155572863822817268823534637370020659219441693539146368874633677735938606890542282668578539787776175632714976261111863813726958608822224422377387467126275400720407258617049347336108748523805151858761031118568704845603935941058560194803873047247704474230357499982150643381457718025455611544779040428740159540372941625819388721272355694425633299799854647869022159019186357084223404716125820995427200634173948029864368009705373044352352161495200853308681302746395579453467313620374431135472549211617532778490091401752157924489983887350564168229459885298609786489690562723914824782708079378136565148840723359125108882322622907722119854694646937972717469920584716577953531279112164935582868364017905432877309963349736575416075550951068339698967828113254760000180246674250934889640478312865499784411704064905361651501907989133791625708572936287700506359862386756476429531296724384772126974068484125146076916062062491383459209831506091082648765898370870880628928274061977747350114992473243630755806277829694351341845840486332317357445649621940520870004594074300763844967998630378052052917729718822167975137241474530162546212002182717528608336762555088615390804297181605688142182979836745775800357552667406843807922426180781193576450789491460828557319792515781735587382123984836488983306572841299518992164535692728391579287019206715751847723708672946274024206525325737331170671396698393251174170064131204586983126296290001580507681885368815516134745996943050218665910610291771005871177731738810874274224336977630461746271899865837987078875343778014884392748270766519782932405962407837369673561504644552321949295303134872712763309170787554969313630840149256892399702258120565103825533489856745325966180525624695076476965675593020187318217222188271012671788094135853109482320232978628853480710778064882520312677550983313470857745309188259924525935067402273912271463325904065981304738266107881073759952752882513460726114405046714179727933615296153906578778348086953641448354361789929233229955338402659911196809618094547954281154695681352086167111027308312019602582636200521870330227467254900188830700386858663467276781077331176903578771044087892849430507116336875604685805589762432869435327970754347562258337932969710469788284022350605607727487750761650619299960575257253225224201581903451838482362440339438943665535447364078691249397164394994760065453557621688982721823931586562815418323985704618802679271594354426881523281106793159518276197906157794407873820389729179455192667926008864630317406457674881844991733149030411134350596809352390326479408608765980254764475194948545766449900483273956094581797313078703439186592399347671749060966272645212594053273403679599925516335805191762625013036640287759078189836290899607666678495774618481633121133358854074301109081219099760207589714057513365495718329257335446697362631616819847548414970916931619758271096619714685049442308258737472524241461242194071823542722982351283076807713600133451834185293233351234120715234934648795151487584174817532206052073029811661616659954689557013783219667293032066446397068564842634580724974777542541422075807080999896063528797598624107990786192991808874101370125619070205289829865107551171772885412440720182762263511148525964395855128385543573874282658428134681954182386421066437875630704432192999249254989194485420305805368458315200857413744960962294871090678364757259564771801663436136736266704374925698554431359663832280359250604558081801201149370637275348086907857406434575658249448265154423310161649369279375747859615424506678430690183936760705680277177292071977423171106934134544024068646418412844637375891160756607971528078055830980662038997617087494501345043558400305757305758050873468607303464963754928072384907652809969878007433368810044997315349908860923958550481521565465146885891633632194185055938861494152705357092540506120417212490518489677464050897326658107958272968330129148540620772352049245804776173893420194334733568446471286618092043193989643746253721024820855392873395860135614373771460301748256794004639527667589398926578657145179826762252241653118282422169807386087014826944960303442995298645847228713335001160266235439054157652316214799224390777671102888364803562411054689781153907545249221401554614376631850842450137885459366596952257196121027881618089668637690380327832971132221099590369111987823188246407588990439754273218888164522401519431968005737004479465894803821600765805133790904129359301167293100099217507506797286269914104063411148422642739696705261807161563993529979173044768765560472134824783037230881675909289095687804078102103294012173201831130644157796073091552772845983997452117364483350373573590018825117373843896165122086966397382542403186005364929142549904519454228131409384323249534829972712624948386733348800032418981966029273810456716993122604885509110087950404950530091329853487569583580395933860774716194628875843958525549153603524848218553255263340541000577597540796232415987773989852983803775631643541511302318810070514408864151395254259831360028481963791993276917849068155117360071288359891721680882519652472493922921356108396114509981613096320479316700189257790593713355764890504235004027251794868006232647138791965762804125682616868083141358725373326615284141163366669603347028666505893192442039428715537812886700779912224429643029684427941396746840318787073780193871823317463525075326501960403058012218821716414459156681336758830969283129313911726557384023232772718214092874759518551792270697170258075363139038326842601210167627868924554275706669411387544976664608414597846436263077457858636959245104478613255328396325747277731177132710893237160251556327800725768669582887315720280923718011613440620871336672439170664184850832021878269170894781213104231048057406648804257235756075924110526287787295672637675135660684901738472150647283077289429335233477845327737051616188492727610985731172406901161219307829911914065194812032357730012446326605570512917901859115118874217815749748993270994026838346756275555371280035721587620701889501117176427034489437924488274068997062342535206746965038128808486590042399339990496023791683646243862876133684376338283153333996029925642643515897753949963757459332899539614458656691057813020722454969237112345835400026534540265043540160390434176179506710217945662047658823477040532381898014297153724344843695359734549310566688304067500099319740147943126151026238911137162497621870138649500168909405825128623576626651543285704253161385929035819296820140965728701433102203710115677015879452755953264771563546486124070411445013885070514025424241736926639795955256688736270264026972307372486043593858488534637214639621401883062077815033860428690500870761682170756297973366712188824128705187041715025358511587673404269751348066760096050065051706531825976634752516237523465397504458864814200854571403159396828167670907458978612990925805977721555001135308990824093892186829589777469353366771178185879348856516197630602669976096441302067839744294276374448432453057380228444300642691193737526334159148453971365341229169042540831259415893791193197057788444511127623939004288365758196606342608523179178889549649500805230044909371625771903974479741030845369162827614577806746755263128168648617398662023150064175953408173666494130304535971349666676223634797615700631813905798595328916764835965449851745951255678503306812776180332144154737137545529356016883956811780402304052079660101776908443889326535708951861702425309660012600080896298735709308428401819099216789516514581845000545958689621976723495228487814778501290454759591320366756548993610323466465814179921182605693171327344859872403074499130637150061155808606612736455520525830915302995954404186993848635785179362482027897667389551190262448150848279801377345365418479804385880750833181614917757482719863988590277137444274878405617445414270434129678854480752247290132068191798053177912757218733394451525763138921564670806329015661107269402961475997930062522955117043209071536695075042765714957576121117781527245695378416073402191807297493070542883547217447868604338502459120295198315126926290617476497246587394119982965823976890587780803075129360220737573623229675613191566044117325781641052195524016411448305370520673478952914315847972816804627944105374152339703230257540048698435976371717820263137055658329801973714947660812282131841814029590872294039734459442208628551042734800976674110428043302409019915766876782280124862771496050652179383338014194062115640752493647705728187982293243517642754189972941283060405352940543392440876692465449052291653221706118921816515754592689625255895356351691352704413738072963625439941520791369403576202004319932736922864722649621283929103077407483324298853856327232950934672132332841128045670337289651200316679116690602677710229755563433117252243595084631378811704416061014131331700534323880204367014519856540878338274342017727868952095326712575829188871846699777987910627087023344576942910232409989286838837022737072762596959249161991314308540872296030874550260013023079783522799159423517973778253520158244140571125487986828267598726670311699340092818673299380092913512484369650464787975110123939357427345680217063984414620373928676783372070995388036046835844028581116992110041914889653623246559704990964487180468941139265005305584199221725558000414905995712270675597292652582715340266734900795824153681759057246781525726462243175403223643539802551394247534118064190533835135694165604586335144725191952924546441512995527314257730208495951534971408960092458375476888314907142082734233444109315773933911580456593299598296461592491134387038400544029442880385580900083219431124515741659471685431498133764039404371753932044986722868031119760846929345121161476159090321571969407907797542775297649125284768452737031402479461068454780327256000562470291055462323975902026864348875147811548413430641553463800372657071202532986439581067832518776320656693552465631432633416447121877556019649155014640733589557930068070597083031450120833551066395693199717994967451743165288240977821874648681012797899538912679551115524927649088173160270373862613112745749025352091792657452998432372611096297728376238036266377597249935667577490140457305318691275920504085698627016302262446592382819360754107144644883484093840388444625880575574061155542674809244241272463039703215984635960419376317161925065867720973434229078061269636603515779426353806239028499397131387744951483022609750330835272976466880820738528038818115688740158184604577077545911409951883770497779869039310554454942924620448702970618278974743933525631969935435781286716248303502013453670761231271057736987818354645189194004247246327624243919754939509191212301802498884037952746646548221313197108415565905165579463550886426306293524831923098439188411945634625600041045086185055742888231582135129087595951448818400969111292926848882563908853000185320916596091824762877651134560850188376846553203464060112276461989616079807613788463062122192108101306271186403886215999148287264180377279144707604493139994465183517798244704397897187416377294347072687425835167847950333749878395945144941511318692490602189019039551038088648834692518435044519393580071887512973927753393653865317684648383128189998395957336429015811736775116002542247113232961092444178843652078779899764507070154819322217594728050028829752775213174865724344422610256381468344377888342107836448985051029216511391900970556699031787849365211259397044818755968649135414482543120748243453878472702790405887125187199329799234342922662397799795008448324189873941785603256662270566431561267086280608580687367124288513898222403981717520968636266279660400517727015045054741504558481193716996273232097754069326182382854711125340055005393720234991832192567084019084845789976630901726100461314467687942212484793012847859030842327943855862397637868390741068307246298840515386542953663731565992620232145560585793472905381031110642791588209173392055493404915306368259145493373610772385205665212202833920422925003449387323492209789290137991274755499187910071643306497583476028182597506301538044907557072885130181167199361362062399613498958474589140434471810768687318713486159432168699433436658141448256289281391367398766133342037710757147994461391056806942790239622043891717706639262985226334101643151000996172891772397734605984208043383313954986013951938821268240110588906430116970684253706895409556611635764226478499808006270854892041463111087174524137294374516611139042726577426405178869027922821027434149687683409322380323151314808397046361519903350476341906965810002835168377493200231179304627349295993143371967828409970844647342604865181502502045657121803747606979875212858307288677133097861086250312814743162720681168905489720248482231790461767761068550063521809584019246891237117785119400408564052353461703865560756920347753388361448447979201595913903506672557411653994875001557253257111734373245011197490390007569939821554144901686286978409367140599968480494525765063254009402643392444763235271157282063079832771865477638689018077072613069159229104641633434433413926203292967538354302131349500680358918362347543382852219022409416264487640279502799914248984639183231816667680083693295267262277927492722039358045394374801903191159001451189743316256836734280622074015950104457006473732894374561294633582813977204600322126887009131629606899638974348778847339265663559670669417815131528727337873109274869143625745939982789779311225324806226410650841267093891175619219202797509114385004497919211349296756170229763882987080082840425022513791316078716322061495366776526046389907355364590712745056885393131878560448035160999154045584971701099146264560344769640749084921071594083619361997307102384979142993443862978411067074231595830973933914417445267681109876246803862285911279710901546179905515273102745512281860258254257206348113319789284376609948124719393402437271450165537302022464405606780704829518287653474409438694373291720009646353630050276586148219704812438819203650462412435402502411231377319433219546506132893585109946870621327510476475733433247867240018302231299929737900003838169028321393137519922489496866877656317574677692594685667734207177461246332577440146921853896895350518263672807022122825156276772306901853122070489750612957175883761393836461336366962084126614989658313552610474161731918500172267330748126898677104829232273044776889348428578175472623160025373722478997795034815665386621195241146401177859445090275307965584110759175284484454268423915537206991744488854126680163747366526578843638004395954327632562113719696873684886065630852151383315591111232989767414249399304104259106197234626544771262328894008620654858977550015696965516272533896097120318777707583837429687285794350316496168087835368103537135578932077165803969659201400844191442932446353007820781751956412919617045767257985967584735345296109345608913565215327417615357492478519868241179562783445325021771021130255647007879712452358116556672737042073125614416445526002076902288494957561846504788678859059117762530411886291866982622565562189993622647605064220430790112594364782666339232890897088976042827479952874243768744852220718148753558763730571167913839913261969164520303208816930189087877630809454907849558723223471661208242548897964479390770315970053263625000659649160027118750299021008399906738587647575334571966948294185506890390904028873832622706909391834991595778230433257543659625720166983674831458387868365117173556599097613445857855619918872031282699664229577561593439047324003327270743897858581500823126644146159504531204171789761569246801388549700189730377214331479465910274885085220822122242349187587196081112153927932609451342381672368435936745727320793887455105927105907765909790928372876585551047993535494264844726820242820358919571590352384661221112802978012681599607551034642298416957829115637984433190383411417024903994341632619471234168489306889654389509438921540549846587189616358646918534046487849186000945619582534181310782036606002210314830836694569495025071420069196761816836233768649267761442465061144733990949548371723560411080448851064946093271537471171023535425131192163638216529963801749615516505376106369845001984008050034214927786664742741714058938574684289450976124076141547984441504704186378961922537110091095037698317383213916547480913695287747864342072233709723909224264808072711180217792625501949397364089668231203481710515562632409826643851528128760440045318933643567758257752974733561970013369385061968683088650876798714325344799673363457572557537518446560052154844982802699200142512861539002327308000674121524573952679411270030518458837129844007805310326311602410884748901827922009163733512551027525678877542394805742148286693234581217525479137998195144001320043420899089984558606696447950167470190158705076306930278226649473213117769130926590308379736554554862149026207466562014964268888860770447690459643570415683790375241467340292565904616191873881914524168638891982120573368699466185395875852573646236314215325233229448162328396609549375231849912213257779427681014126882103189663488665203847284180870395333467917001509829654254272011987423206821272581828328265594859493197744976226901810890811157054513694703657068469558231475676309273525991720039167913508371276732120626896924914568758704607804168929205579281463435787206689830178486253785086154522494538762708478703918546052180205346994558549671619601716001659717772380445763050213443315769866765578278716506409830216411736671131986056226882248012970658134362792670858804711799442389473641772247750040648862059856760639613400299561693744114094780154624593455596635156696765199031094599362482582771905166980385088703477566520653155354049481607423594068083448710032749071380027545942014444296443889794951322435774489597369987321753116613831907307207926147777854643786294042582788314305795167266682410130240171213514645135627052105857521468934531394866058741542397745155912630056437247364409142160041811758499747483085818650083658024138707151406836773489467927786786699869714925995511641873687548136926333165606541906671441497461514473576898293716779310909947830419454190893194295094715532005078619813934485461181983073683028195386872245566553697589605183010033206770602145651506884751842063351356892938334334152267958732772302836627008911295286138609230524187629210820712478503703374971523841033200558253420167005859510990795562313936016098770611082274639619468996756002255520933812641162641372814525947464953614305355168626628366212091184807683504979399457872224238340532177749157774385421171820159544214239781814500154955943933636947595124756225853453658145687018425319507626513329530541577745722094972375667004314912490031134996107649955623798007808880370749882077451651642034477541504666493586545191624647792791095760590551235209442433960851632217450314215157909002527387019479139823560909431020023377940909080968084918351581303245589823907875260041148966609486757149655587112644808493411765119905850947196442571528568581676050674478571725623139776378656242038504091255348883575477039119294353118799922147225960141899266985588910333202592136944662753449908546559282306406312078522186305645227398423785779614043513687572418173707963299576861587132898480423903517932891411873441722272811920531345166728516849860857803289331407781640745078046239100339149218345887790094927755548893692886221428167438729660518801609647977996307430969110315611854441996492548791682748193109740436071944726479044730352521836960048073349717927176856794712231402345283810564366356068368824701569248478146990938402001059344953297399803884772906016357678661003880794982478579310624423903177104843399978525179182389201678810196676501060878723987265211691402372955979863625981429238687541078033443010597592713509931522237537104773111218147998544271189411832150939780059663638220274669876823139342434015316651403319658587792360851499633436087681072944441594159861788647646974843285849286151585305337905753387433845515560676013080938309135894437665842849091907981374696934975890435565761894682720262492289079705373038818312410701542399676413293129728442973975442150183774936204439123574425468756731600730576903435023698823647756332372877293362020244621167969414735063815972234345186209366007915501214823140379749556244236352774817407820008799285345132640720971773699106723744033126889856558837529981596501322116181444891375243280280289326076768732009414740683852786578277789717252346549479464254896861044761643055218174989126431814483516383889176239580551530451896356709153873523909765153858933456365097165430142447498404657876629668980075199823282409147097945962490287393982590929884819169558384864539252704847678037170485022083909390970222359474485799162071867764658525347187990165386398682793861630430440450877912847142087882529160872872238111580707150426253933890834445190064321949235878069941258662872717939608998351259791342927315532535176125813070207235360383696206016727963911551417509702937084228619625917187744040630746383111958569831030801328652110364060456617555070275868738482392191351526435442069491937053666893839954090533593142627269764255199187859604311276955606600542115987611854630414963382367340255535881662467975985039711332335740922355056245966126230711709563196319053942250432824726299190485139939894925726687191606404251374810574652546748200856199039939825700873734127741776101052439124920897547989064164212700678885558456178698590369421737262842304135011738833184522721019976715885637980673791578381797550899257981933029259913728154358811741257994227806733927148634602324448762299919832422028233856653381507057245791739988607672076558260593485410468249520396413761122765947717204778960931010947739001472563084846755495206406589651879842263376818146382638038366682160011856188213285118640916912188444254538756594487510937902137226918967266818306868735299941650961596594841860501061585246269038007663333342939142214503556916653717467887696155233504050899054635289002651180522785211486905127933482045452764354622992774977290787073515114028046907525783645222811453457334701335209902920790501829746674279650993665671306058871688111491433573512379923000713652668851311934604078232120054069437107740824937128752204404649508473810675365776645096970022510995831434043568986696559677505341351511795117252355439669888863169291324648389602118959664147279318826141167655782059947815306248611645157392897663146853030673115883727283477809347471424232284593798237692709409623519773305863492273877588708627146859084956631512682464429823092994165359516872750266968694401633134780914915754934908543699773354116181999733691138998649632451059173201891933044604430530483788365581887023038525161469278326319617879682657252195001579734768576904061733349458604863552614532252030805850953028602904833890750293332105339561165733360107621824362208995403996922354048965375591330959289271740129130729844880806720581618147826534818359979298068634928896875247610181857595914891123117239084635323950457865356278853158021213254401060489423519169320353600073340758235767965854116635240542654091528765150984326094399852924154620012529931463532809388074050645770598220869015707676090565579356602785961308259869220651259014692350840415466734803277293976417646387607970335711416410080863770510932763784325604228743745183450247762721276686003962039409891359786247188331433827369125853653817781534248919311627271595548831827060421387015544434369311784850031318986131937955451951888746573249546111723107791627934409937555567797155087635162260399866378390755453287076827641095823943580773365967616694694960253528550238692378193504804081484930394361930513496018724546765407369900001733166766969775650604696055714068948018844343617817291285860668883815643012504066715615261419564304190233652871312308588682068725466004269902369815121832242854892611434044587746172318664852161130125236597286930477380404939772606123737500468879814623537323283189968141538045820133532914267509502376444138124726714784930028817203319925069621252052665565179077781722736541270148501204512008749952761398177343191507020391861700285155320707434379305160385191784478801684601367706107690985174329331588639007125819230065718888528120928145651800998165820881127850436213695910962069458994934082518724004460972135612505298833907714076051223932191509403656172873173738226195112186102085484936188878271390503042562317202204292041201823267842346482806058720353871885547386135573110465458910422445603916224955691617564926575362512598863571817817815238851020330505336380741741959428016262201896449490858680163275989902439347222994946951461887721058521810854044736329481750966680818229466502889283603504163412913546768295851434239980054970905508429467519805012104936737561166566337778767547172947318552691308215814697052943594798410135014053869175801784664446260240859214063487586453379599643742803367568417457129057231489561037839897407719106642330527793728749816868476340347459041446573022808075625002258288603141604966425832764185893261720191102273082147831201907568045041226509720963445556290889960363647008742697980849681444158892358269044838695994278637758443896970594316916358400968625505865488393687926365247771337642055152068348473455807675073496681762877738491863085619289619683318799804534566717564825782798927036959899588409030664595625492913469448359887060148059742885791096733664136242353255460333224891847190987896765988502161767082934191739849083798816859787634019514655603121711688693600536412751234830300456272645157713839805572937248357047584934962840035466587542265483539153647713970987083370068792165534745553050400760377396743356182041022071445266612492907163278909280405309613390302677148907968640267724669624825971886690140510763521352752649025145110288455182546929635843195721095412018872883602662309727802958957135565552073763903918888386574221162477973169707271759747773807036514185738154491955979849724404061354098278028140598233847976299450277666163301121571908660077192449421773401202596838132870247817499725752304628836099162097655743611373756910275921005826030759725946798986254488766476628481616171391971643764692894055812832416590183816969957389331988255993878515171904032616174071661449811280926271003171055020353495064310776580005285462438354450634028053503615578983818894407735907537668797660845919157247428325835922350200038999321516319860673270045826217012808646026551068706756987657521608670465209559853524656232082208788863022528148075966713663980040554192095274837060325567880732416251036895367402805860807297797884839804988255174257078289927186604435996790279976723830074160942292608606476703780438007121811069637063951542339028965423717685962639346199269714720720844029160089375187801382680822507737822457849383042004367624738913435393422620469844765801760617035433290942577350031571045958346358845314663539477047301132874167486411688528669166226845769200612957618006107272712225212478129802673018551314350083407502726484060929247001666769052497665032847448488752803901300875906018820423759001074690344186293618755924918883405458733290246636625010781223573894996716059457796669876550477736571365241838370460140728831628934778145714189789615350837213340888905622218647298359151154664736693930450454418164263686560109483826435609620362045859718033065365921981498439537165747785698711182630763449257038892876148229400540079540479366274968203255981829601016621028460242944808202870528651826615603091679561987251214099312063595521764090340819028365997697468162718622614977638072240776958782138007177397324312452512981356901657019727252541990872309702477926487588476292948451061956292377443373758101972660242849156956378649397644451669290792917895467874671463996240753546668653874226692030639688319058641570253936522030600967041133430950969467191250547028317446547485214434872372170139071956606413765668271006739094365306906721910424065898319389317503712214071373527234862321147366706345284943371131437748859545455363465872348343738859094260681232002431564155255691184414437043089395727210458820182152891891140526581408589826986916182326025539709091137044822436047141278448264283677439623038963260708698348009811676593368116051783438479283452649984060590481140510861030451103538545186818776766568458467902178923248435268756539109625843037362183968059085224766551716439060254585905611535464341113147810710406545910844070844658882711892173434268984032957814843990703791739757544276549918525049313192687786193804424808018131509930762409997370302445919944255610574690596569288515615766033144416370978346322332690308604113835824551534611178683516665028610555955216544920420484750317093854893191125796024561979307993780224777824315712044138181809244137886288110807090375381667372847269617610304978986390980072337417377207214960080578437425575392984219756984438391725820526461320093539378970929758873231562179143317078398989972897646530103522974774349348189993561145708207269405439298944305485950296053553456967229161465623561956469438766535522708156378753473005508327409416616433857578574619732125197302145304903051155916255984312941960339046228114929872989827239681168799315924148553155769644248654987831590555986830540091993374193441224024291164282048475844018818279111035059791356533355100646092615092273013161457723819874642208376399505080212952733473356851028856437858821926148289826600367270088309385317538190906198798793372816734063723819023079848541908427268237089859486922376120864209135087297758528031844535481455441582026114461094292014675706935196809971044007905264010825638481295409240667433928964094713548882506749644059428557794338113259982837991408777791070781777442506637345579582508700601656095498735175335089763167086954700747198518605156118729471720531367007518152680574712001768860292281070441395560163958913434752244791431512052626379384715528573520703411965859757908341826099296131650325156458238920235739830976826714080162334602291036414637994322642743351485967801025141358629941756807183520952192371827082466986659391745456312138166838766795733851885552557948008809990179621486172156799147498812492351429746055675607735386570939769106951741263711402000249201780044426530613201241342822931809255884903174293704656073534996655641315418259071704167894600072802146149994986405297087264961070822991130734283711427994037378357205156065582592550556063468550020779303022423160445984674717329286766421307331954957442372453005349577689331352187945206669392421715837602460184589811179997300327627719648441094260842645284910382836661031956377167335283599703908187014000024593941204766290516544059439575128566168414351053262284920436719841902159367441466272690372211681782176194963113489734980076852866466480472942404228845847890505402910330636489687364902235251724658323362971198062098618690439047462463292771658449046857140385021754480434744390226671531197599108389434797341358295452839096184500706346917214123465509819397007238282529670155210238658127342845041759814315686051245072905349966116125464542227098244694704147599967499217083617923684289435580098193656936074427234140265828620616350560713482603351891804315258131432313135901075307732102234410605259648470340318600867704171945551347233841725568407432280979127806617099715080831270446673483094696050378604927348643532133679028536391506261368575911591954829258218725856607219207803274327910235394684970858050347281999054960408520483386576111084538991322713763547025370475102970365979152542487200690158895817015204480853405810561133511106541734171485304227144964590475863045320881651499913588786932705453183935376211224279008424197426694269484409399791702337882171895091147767512430449730616070051652352696747633086733229327995221944758043043768840553560988279612929481144383683893256371261563243448942968264691826627831955669612949161625461507123681319365253090656139292341358357939824397345806733092842164382074936385174748716345166742508654213355285725707738447924022322103896721819020679846110375635652727957693286106811557237369173960675499504672214689766226128302218949979306146570088020661929458246005021130519757971163930315544258253978584811144710273554898082892640575550817132115297492104089126742799083536041491441044209363353294251023054905090485640576717247350616485148074690293001930405136816421226342912640678273405291457496228240162432311854951584342892579242689686938487370445560806621337441857723058716980989182193525866610926195265155957312561415108003731586414090185921093060708604828255057867800649546718849555188046577101667188736557987434028916106712475731835568255548781295814754896269145306391128977645080557988495489083891542350510799263464719221279683021362949997979016781663549144625367059386007082489463901809770134991059501921179793300708717069182102205026921413792756649171337097452282219595976651763802503200076029682775276828916263555571267479083847873963242072415429793829381907866973696563304459304276660356665544548880884207519771519350776765624379113574712649633525474271562703233670924679468933870302149935104424246942987016292415396657942029713888448771945097460902417180043064975126251364147405914524966254014487689189562310233758496082788370468743332787759716738625436976565232792777524234491552210056692130533754740566587739536345649411221598937260676361396194826182631430006979642881906574436964079250263079058733006602124968738939822450782429742994279325551852178345853059072731371285433505044497477884481289508001900314742846973901790994364760437992385664191050394422676730971482209079471449666666990005179178162724134946760650820794665014183474074791787063727740941485145122506939975556234842050189642805215518783683926030810522178582545777303902339232724431245445188511781493927331801015052767931551551602537038472205645681702752069385333453650749245451300200639751058804665833877592140700346869435451163955072298311453617254606821090235704533160596603826219917736067215926117334508963735148031869173253109809400297294996015537269580917091532536674472017021081261064092280859205360395373283791675297682852817988480857492169839438917664464419964554420661370277953177560053854590436091100535792166494855766699637583823914469070354977990360521296103727165065402612496665020873293194126337612562617765649039956769131169039894467331565297500050234502552670295808294068977896955787744580997260142458093748442149620630921154463371607000082157153984287894023229793030984443016609296707228427313250576636945945574116905009263810563430864599384447985273345516656321159883141189468567863009643451370334255204020872091192043287977729456479696349924866486513109434799418893229754194603893607641265467607807351166899063576636532090560669359356908508743374160104210302779327972578420454295996386231077490392681461189895481657390825411678990862292698513127069144853616106146241286208731223804596526712585503307210170674651564576475231051300209413387753673506770564533696701091825821590191729667911099663171603919580037762133340985488398960324176197004579340357278450475510150750406531141281176696217834993025778788273035665534765286837921963790774973687814045102299888276199566451375612388838599299980616497155919224548190457269899721431279342326265094405436280867000651063020812263990672418120536802001888717200811425246111810467580126067816121434032944513670243352411569136409826374638357643292298419511246773519337341608777262025602158719511093553879949840777594005348205992363272925559845120733730759819180241052912354418337979466920986207061609173461329439105477945123918014533832273641872622115297285942785661298494509160043419415617318301992898850119751324988578829076503263316708836774087236231109494579928517155711635731948733735065238974453555059071026583014257501677751438992620353433224273683266927624481876644618073042846457066769153485214887810868733820555373095451759724651723574197910120599370024556126252302455242576002714557399498046992319657384256606138254282059176906301524012783161145932032383184587507805081953385567487990614378964764267949994170400054953282208027468387297751563492597718089268401810201854970330288476498385912926518362821379808678247439194829517383313877792027051922015057951896270113801541481188769826300263492765589629250423616485077338456772119460819427224553564485221227293833058176983836984803027396476978576370348487533855662423445700497754762209912728937076103893447961173163638051685267392993946100562633608304443965598647095970517218378372533060040228200306822753531914451552432046954876953842092674021047567570295557850072094774993534837745732500501244312759181056908490954263616510138369812617456060458263413007810555683786143629616820627878577490145705783509036492302427599503000358806618194388000964837885367475945419582198231217410006615614990554624371156643721091853755894062832474997660802630160460097201155738185952496873721263457465654149778529364939184789666688783976308941596063254512333812886128428817471731653597615501046572618022384935350854351123236030710210472351341057298310082236727134399881086537699145318096269807051139582714325597890746911270563385270029440679892995904139253451400289146050575701651906741979652999819188878027500418644590705878830116258936430767740409352879761632665080210187238068080527825500010294871416159431418598353239055979731186745243990177397272032518909941412260239239104091933512848997599959103880540147614897270510312800551630998179659153979055006024857156954193287967177877665989590350076385446715222752055047388755202234498802332947494784911922007588798422565794935868534267459142191912867222169521025911762468402214932865996372396500890945588284443120509238525158248770066149980216833129963376538441605005523464101590528113002667565524513491100662395001566501090919221364579580919007347163401162396263360138489014980276101796874866913111947552281490659252551836446959209905625468644482503729678214923650799244009712487418626797838775972745563342419528191108220110805304942343118949751431005098974574926775445865557578541277131004812404847708923258769355172747859882973406925840500987401328537368737813552189424272595013807432957093132801569773478392202188618655484505145528449170144283260272690722969397099407984817177752628348216900952812847357922759701865548098683443229250695960476594626811202300241194422242928646409413235781368758242226440444231297575294203151427543329458423583417198097511362259695599046989720411994524288150787228289265819255245382608139933003289155714209061438931438954503202097493011038987272867017294352340046004590491826237820523360934563474664181392792393288326354239069838167607592534062058936675455197930996242787717527025687263354144453563000906143262565345395889629968248267670242010450975837108787017638637748032615276978259247158408414487135892349949064302799755249639915958230163588403782506286318621378838817715456377883214848869088572231580648699296383780977227782249966951650762708295146903013584653953238406558889398899196694728410862758725389590505869238586776274239818648812263512228466658679118707522717416829360865244125371028392351148762799295435300482665584010110092800782303414550302319869557317548600621280117590757782478078866275075323347160996156400774107688868562849405840033443215549056936171037042024444875072508801826636204060383384678467615539110163240257862425099228114880251515264166678935114336962633375729609143944165433004296218345827929423174121274455819190115246239466576043894416304196749667201306987376914804713573159804519005101175461463423986321581416465435779021506449114785164932522532951694409503445764054497297832644656658226814978350817765778848432026930888426599584826389974295076310206291615118511816814815815966308392721267789626186017202252932751965058496995431253139414232328095814732388387117912831142350830950937516487318068195669292049681473803773027313033605792334097540613872573869231854240962997718663330203783109960551517089969986181486404073840292234586721929703923177006936590844428937609039223203887690261258143230617827568713726673501546845651418027382828451632583353147938785050848063864787443524081749992598684486162655042688256256532178317338920012130933218312813231440775557734056438977709363979024338052561276224528736413068052908226762066332000460621734319350993668465030970587864926001319743771919106271395795961604036331322904116179248011291656545686979702865909806098056570799150601943165491771936600098302652439403909708620111176365755850601535197237312006867911845862281458462853264867647312529710877687147539682028925427068185310617580770097765322432644531627757652915979190905132482091228370037086912648041032836187704507088130092585253907018985010750311558070096015962684435116086893992750652155112405577888125080920739173639557085093529119168493587025517583828162741479846229299421819672316087000756893327450757254085436807135621481805403969985249133684430984733533033703419402186332189471484181494758369539306528385854345562888219014283171914403908056727768219416615225162896915203538135277640216531776645235332143771754422837446466296859503229395633744582827735023082798018650839043550942662576030225123748925855737470032246450446684924871611146658273741716071281953509282546453737530179723458885029344125169948111726489354574400301113877318184814387063447269915347990100250325426283023498963246064010970849692412940477742455922784697912110594268627712072951622098829569640596477059182976470982658109817814066974748923980175409922492036897151934496461406038404484993551059597503800533552692052113789256273242072222476801954035814906076907152413416529475330405149357875277877701407731620818265470257205815514122172085375329296265383067194542836448646033154577535619677332413843144354971835435492940622415535904343384920532966316248269191584651337864821841671581474561906951901892224567313544114979582280689849568129713630209234306349281857244581693193411147570862416754814962993974551276445357873136655566601796993636481281553555747310433289950957962416587424248186776660099941716740357893812126668305874007457477881789753846587880491822007835077315859503083876293779837642453941470001915186975712180386331249087743627966449801411083474259662884183208901411623534543834775108921453745389731584734296085280774431143404750883336358300207983809712353519101191525501418002631971920619410174958540476571161984279255174061357900383552367796467676922714184934852693390874114096331112717219181812209935645386081034191187082334829366812903569624360466429686608413939455893581614267267440990641862324464536170595161714770318194884565147791950797652734691434793437908053078856342856981993947279413866172642838606100281453448556886372867054942295613832757175361466638767206424144806142588709271141922969084415259144984104148969003971622288083787413918606165492671964380307266990534723324173347451950674061583597846995340203486492685068085996342843427634635253011921059540193152939120948025946647739038537351893476677403087450118346872463798304867187734687132594693816437420525159225156276525985735785639179747972495842000478864045945562213173530707380600826893119719241524778602210273055984887961726127653045121944639283080756148894521713133801769779868964847752266421222882723466826423953555330062826063001890311757370567048758733237547058816807826094311816131504870128642933372911455913230886843034988475900562906763208943915494500834235525720148743771028315474491624614088751094139321654300014453517747939091093321458608272155536008082784479845397305369613953277306177611753888710713042867185999199865824802870509068622872212886190477651369380937185026904079519382629841085067393632886005009494825844577484784676356888492977456130863440632988213756629646211986044074921926414386564414304635918347768034125342329191652359116950081435918672842726102394730417692377834983242086554518976336273727347822707673118242857899248192115573800301602359245577863166936681836278887751134162993942384932767228297287774347800887620426607397727076032067222010930117620223167635393712096961788953087300254718442003714762839157537649051435627337261633441127242075971042873479368841008882405767140485293826268577893733761207273493495606193305028164445737830364252234428053861816533469760541654368539339759066776039931982714260521242278101037626111515782302204102856507393311243236281798992850694100961973778546891919451178487466110862688986125080821002312822837902331558972258282193719877652423996853503418401134266262186189491740087029823673902866859918261992618481070655816154772316971228952081726300634376029944150786416388633366893991006416883772565148848990442305572390384904286669008064508032789514090231547904949881161549532473245171584055355287797830564737193616968691209560797693488219169326754386863867721380037918925102936378842727118051057450470658485446908489840375341187603629031451482439182333473137780381588927214859163467457719254464743789921755172027261609097372261715094568853589842606202874297425183862628350682396795710954938865767794279355944852466445438428915674357257036940888305153539755772799334150525419353687090556482436055075365826177002134114569119756630059745513100982109845296694673627783033549827173487313478285461495431347135365456456752950322544104034135137027420794308658896632509261193145228286891128818853472680790907375437770969908714808398879644144925444910853822941859236965640791207986003356045202481502625946772856917888810950700892347872255543824206489936785694717028753316996715739716783457265393204639484498828280668967532172598209872725591969573381057801895429730612327334712143347228276727550130480445413685523058577679163827744658804186227495868861251234108706782999584706013413836078833549239308427023203886532393543923025211469904865674868292246329839788068280601559742922555858878543781368460643428676478004159881906554137618421071035459601951352082157617643849677025343262650798442380311923060056022113559051177793013953553067724632910373174518520346559412039071518682994833563295661641415402782485640600276699753631060740930046677917019085606323783977487381371838057418633284794152118835230755217826636352555286724820880902686462854522403818308241016547668980164366894187014930120388725734494760253737811849956390419142135756297760359064517765330637238171808665500990967585617373199565841748257640078702268604923021397704480460038539671495230341727195400077666727660589200254798317531951498841254560506645268580845091275876788110672180551180799942911428633648952481970720451344066488696419292484482540498863049009571733150804873960220923534190806543609316330595534650009068469748389215347602014472134081131754354590381493281691756418473818326562043195900285147416163717412002382698872854413028439185966506303895582711840484147904509951944513809029164837327683045224653083041114963682292752396826953383313018805752000311721588786925901438522207150064373608107514493139438776055760053796454115877216261664267761381473603687050877464456051371318152353240953539174621696199018323867840427862509772625302786716101748521233442866541498301528483618152357721758513547618352221647212615764492342943104415180693721417354429657130644713859166524279788036027016283958909075239130309090308205000814926201911520101517190023408355528695818797832522418049922973155926627872014968951449505063785858992598173031358105632818871644380631463938757540066100626428823983818117519207053612985853195190463692882119829273106142787133157757558194579443250389174511109456651986935355720797267058944678286710522990726630370622220782177192767361411730500674826864284886372549882989174904259992056370339939353118216381335435212645799642654783209008990881329619968707124718083164814315629913870352364584106583693086407704037895994212160991371724762764264588660714944871255068194460910038172588046313601818692792918221043008516385565276974685541304887515166399099395752463600905778477232905040690882465495838406462074799044033596023814713546335511658797683388289757418672343859029479991470458021151003854655312362809673308756042335040937356949104969588516577435083061624324387932798304631821094416973201730022281537118596380813325363860420639239419672156647188316283593324391566343950247076539976789429868743775853650662809150725303061663197706975210470073755730633694549934330171929975825554217417606027593709778785890098355986999451437781321028608863387344574181739376106780742472098049315916559206851814172801628171959890307341475077314478307802685400675255157271196541210190318571008884423063379575331001364306842960417101477112267535196961821074678960687747861741658749389251667775787079282512332376086692851236600455678022262801819659277112770216487965871604473491896479615899321414957819935148365603492017444000817727211742385552974529670231952243560304977605929203002100903128995042561685729860297957929445237964598296943670683806003498588408075457688709102017712148819154126345191927521699629518572853357199840482180633733117455708102427660787588931346922835806390539771703183140499216990242170328946044949785498973318926453586797269968313127091496522008047687347247169286312303254781835018777382330314334993882922550916219852373203402703430205124767203099606733682610590304033603827272291000603523081946035649718602437701770087498882122636085804706501979960320300160207291335774632731010490058702935204812828121675980078302148626424395518574416461703694441554085270005816544794147722170506112161832364534800579282070372365261496764135698512803979342662025748636291005451095062526761306880918904625742242376251422032370226258879853327913832999461433486915902436161375385480170594583467798873262930005179246791324209894411309730639765302103557426963661618685523039476030767186104509280666252407214868708523334555141629527948329955138109932441002798789819912262725362958439777033368529079991760548673165895433395122250996884661678779968616375450440221062996666494662753945426221907096969174648364696032372453184257727282301332493343726759465640997520780758050869498909263399991544227368587286434568443440728904977833334633200559761057929005679604530503676787612456625465426845616727574181087794590409105741891459600202004624926707455893218838976192402593328291090167165974435191222088805505471423707081684913308634716227381182913770906801517601715798054050427845949464284588529262852816987113877100833206494586219152302246828471115527241004323780694158826868959924201255403306810319313985196565004505778762984301660724043832400345814084102267634846169403916577570749709549792249210188796488833829062669299066029774305549173406409585512934774123823137028312456129150125966141104722227044063805375182695221742220010415532253178316065064731990941601155474271885508483016610622129847640448431648207650448973325257707175269642740709520503422734550834224590203151569831631389721059063030915067214944028888723051492607563532447066232419103228120049892025942292487146144935869664210187908512516498233983869897889886297759248443145283390631242150671652499222972918284442311115163645694685391996587660782846900459263388643246832448340384949477927712897204031862272703230339677167964482326979118336983903675814967140635458014941870995327049103988977466524219795276027334157473452482434614090079095603408306481209973345059729280785202504940163411833770844305614413407132017665184193826739620395798291864247442769253932540490292653050621497132941122078339655558876445889764554684534012865911855286703191428279073266003325612572787202568629816400837476964673201184160088581178390019846442269853304535872507123280927730315751421761434101759289088947632953255603242363390351199076976313693632466034473546716344459686740467116683996073170720888638448490895101037885106778833020159769238426686085452036647949597586638451801126812295914522221184130444381227355597351486550480485286326706367436876965199775895210440002698579662545070317895226920962659616361776720593297526329410443334192854169914992718764833496965324083316387717424386010526406612539883968493837277601231746781405989028973433898930209612810783490071289336690307719170630695215889540427259558731157431991470506026317170010118421224732938086692093705723271803194928241231128223382374924061438705538075955624451276282022246431300073765768679556784310694766496147281294798271469589492068257670592366227410532393195158222351206634997200767471241056145407080164871565164102157518941144873712202628849564747079771580912124645936087653007578487887648909712334521596801360753588657567942122154459452592678556624862133804076796204160854368491214318899664484904075951911271498480342675891309014120622594471371588870662305362866238128528367408961047448795056789427546298684838221896573368704986823972280891372994155541805364717580777432185196826781738470698095235774480846439967244304317452333576702525716195081143082679012677905202081207930692101700705919485944627506907483574994973465523316219256248084348501662631946878794081875210749166531149479580572457913101807593886317951374505196194045514722042183226240387877510098478896527989454083075416374145399138581611485681700811793483328146453341765279632458423668857920929564721530439368399251340601000958344382846154010697307632444209252005116111069427199989930501684462395439430677082992823440383534866997923412792221019300724442978989556432612789665123833910356397264675313508119732559527559541323583750579840482932752594647243220329332337050347039400629994718740496229869393432186556637490535574269700120117411095080375487937434830865365647030529719114813815950063785901575541722123272663887929348913759653056267530445707018056477048452774539784421378036210782642952985029133822957824809914619909882785183731679933666257264696526140108167196371466753834968379300115942389455028827926926334547534415843147691073810406197751706567057535854015342420814540756150456658090365102258286658271971947431428628828682579561552969813410989932379115533870403335875062713498604705246084880946172397884872915422318475250536630019393247729937328067468195506976980800650919960209382394686467539011780931113680723758982629307878532090267961175139480983949675955911559003086606396567560451398498430630615948323629054023357670325057980185909091727833881863463337888046042255700073812333576742637596391356018355854430685974811510047757498350954408376589253786905269576159323933937553247017645981464435915240571749064050880768325091997539224473539581821949174189827459505957788433048178816912662919270635509397428733802543589617987182122840839958568687895876828808661831001447202230154463341903492963112492695681706205636258367889897969865116292162214837458017782179855711154009068963641641214363033093283261689246318903167177471938186581114537486297617038237287248084475876169297479973737152312975441232008563625839910978246984212544601111255912031830910133152305690764613953321489398376045926545611642100878174828792333056057362642908920010389011528890479348468828228504106436138359838866126859006116062714138947399565443263229723923538770166265346879407179446108347956502060914374651348410721508535373171604037407216229062826449516233260389263144985279530142427696257309329094456856368460213391080603208892824580121432217056219184157250745418744765955978851734809045602856503700125520093732261688365359872935520527472744238996254589584463260562088004647495225596016732762104463765982746523713665615192022509462562713938767158133596571277981596748466594399177509138738149477162381826992937436094040762805130889478864509924183553383560248015530958127140699306630908662415301618665372730440287017205555810385133874679907127214829694203522170808019613576122165968069953242319745760279060085379664592284928499942282026177403092453236852319608021954656885615993605646921590381946142719733359897909110008172878284338077417777084343760271866824287111848525206554038434694494609950501992225057217682583824134103549600926855808383775782671276675100355904370507508228153414082666493990443961384866814905564453772211466519899954759833853278262083079587924977766497414560970951248230750111684305551689539724672137181591336348697487198932237312446454471883674603474644395126181801523877516260556649273589411117298596765415949364639477310915064542059318461325102516672738741129169569866126412628438773485797884822568442693003718332120816935916063669714992254506019537001676352010287015226590040607402903303962402662268957388819653702473181368127855999425491843859776875646901000288352033123371195638283555243909385270003357338070952785898163412451575273163455128970933301881052458993921015816718023058856971970381607560714301614862727569581342512969684310884149731306687266047416206548628879053815468941547456610285318662225964884721155531566475952789597985426255181712240018548030807023148147915532422969587981649553070350921002325300916444632278562413024920448988648099156106320117057325616703936279314198421340417817402736566069749928209458947935386604128638642612544977835394799987725365724953829988713069135090926258141235735412679204377270692314042703161162196491876328548069500859394668541914348493282687671221688493347615286434506451538163727042856184673918826096105775498640468652113043798634824348795078288897025541108843770186599101726841635456468232738126471770074658713819301803891008932201288211607820031572404063305647772717958294052078670612024272427662992358998232226301424341419903077377920816430545251112944113376470262344241965871621834905912142953605674017400852873922763170433240887494575963902974709068890352306231380859350145361574560905293984695783109977549880131100426492819009784846492058728458763663837873843787930693987271517561359823678593969796605792682988102984742459443384017616167947925679203332890122057230442011050830274340711563943462826479454173493737484646754133794956404864245495350260136550840377576755465023701198867305876734635622755105046367428821904100973281832605063029390587133810361869363087437664316469204550850516406239020689606045226795781139703651962740589384737676290759814292427257680604579854694731469333432766086871803913565924031538359054676503731080658726101331228533708651607637669132877681701092474412283413478063977756284461118118223524871313452942200105480491333491009426639453905718601676292102822830607248795464311920983072841548613553691946685020906247364002490410447889735425679666913914305293045077916043824837396998927705790268765325043384532546983836330429397217669784265505411397378363475697652190844196644721964572216450142230853724122977844032671323406720945974318172806117701811304106099140518494321641500816577110944580014019105510162110621165513618218055190613876192519952098151795526607795831557454502381950974543061128457600776987824850012357543062541234777656814317045263708238473267736467557528836698076399951257950237687578069549610185851094721584053915890723797392185017535188981483280487445663567188138500706454605497055277010168403717802762125985528709657562171640340008626872751376759657826636897349623240495212570682925056633763163359778161911745772778133040640958811379616816987355672131387870760730708416850267101207783964995692312503086478780014036195700706934009668140257323874547224374327013544003710967441538238794818205604488056440336362800298732000603090258347591816378784560555144990185435608272951196504655127923139612046173472532666476935404249839451991293372463815633026309294548019533248879110315335555877873194058271642695829342021064662318164103653488752118189592712244011696832292343584646008358121683972736689478790844098042933587863162557930662950235477102754280837976420665148957266623617051269274012739116394141345964612498867158262440854579533503235590761762091713626793168597945068622523240169679842110232189602851191097599286790880264515382761119287178118841930953241214718146161349135965837497177653549640738417914960996576104607742812853847732533342183673390015741099014413836100167824241456178935238254646766373325889840668658976898570128040192153157819664349736180359498094908665114053913705589730066130735124937541485089063482940645420435640068507069990000713984267434173689731003057793620324183801893061401765668907840360983467696425742279692104496846467309671858074122335806553038488743731360588259548726092026911159827832617059803578867197547862501735894062515263744709606215517942887543825000640019459638693877672692417491078595169301957584568869162477923150738101688482714996847266206356528224299808986945525675999240204381638666252835149620708602629846595855142118393988880579738779695489617655734047557256406089668030329438044818375585941816930305869438144740477480315661789010584658994610423899137860028755353477859120759490174183755892840202800249140873471708507834177631039226220547339472246730361191406787541111788275548186991139588012409666014817031925224032048256537714633954763492976307205190628523113444543920855970393444871809552817291209393760767266889192619219566917179946992641856861617203755304307336266746892813127197297516510603894249287726042539850453388734623415044269717809120388177962690367140549842011582028452836609034601569800500892614795111549734173547427456654129208227364417323499815406610526135433734423110787819725748992439573803472968336318650260838055281447938034313717531912042512299307829059768197041089151628156967628888305595601187757966292441686238784623364581352739284613874151700943866742082710723344161055741871603722420457730274531511389079202098243280564582874102424102870366761574086846887402134762814570266946617809563260367096509077155499016313424638756929496979324765513666124955194865921330640413259914198557486995009303009368309294249056474841638223265760151930836071227768606792341393107422094667537536653701158815707985705869444739806823836130883383517669247447348482499026104713512213697202016853669072673502626968729565662760469462695965439252918294154038538763297618835097459504711853539599703187370005985527270549556045680839823132915305286807694032756483005610116032222869191515564023582162197150704862673823622125548865846050290179431927527341120576980884725404810758962385514983561664998361182140876363998065324758915686638782254639788017393400338429234181719533910987121252760940723428206501183593854431795068344534630855931269294195141496313135725499447173553566380855477881355639065444371477280391576322367721224617719124229012231180791602679185198773431308200591875758542374883322747262802236645677120424626732652114570458991343184051537096150948801397096796848117390310754730592204981405804903209282948941005172604250393249735876583964120535428552392796053831745037837820306108087378739081047055759583552268795594053153538664224646705231583662774234714132339795495403662044042265154649192343615547408738615239100941793918993181925196027998134956193494870675806877892830173619396142077223440147892970232415497141975755524763986715934386203342673797282870967672907787239884788176943282228544975182374550729828993548613835314771944446438409056025090955884218394363909127919530521881379176355681431712680871528348850299471490586764388701875396900979287255130234830620960718911122121847236995497680258850530098378863084460456184329632372750430348504253291714179143866054415206640694484648772997337883453048354968905055112854350723987712719452585066180515192201876935850196694390950100607107975119151207195878243678001121858382919650148033743006303160173475048299099558826762117050141136873854337900114399300375836145018307586001358677011049983704802724314515200474469573183481214721893480306240274986974358239230683655841225565471304812419498477722304243469682634945637205951971045261043716190336970453946099255613118855091827545827364002229050271107018706119176005272346382920949280476352907718745659991587473352184695860492487877507815463733420285789625493985643068591854066119962996489288930356494125625854084935682596052452254519088652005031946401519297095880843453946016263998861144351755190834045183824905228021930972524976108056975103457761404032308907608967838095526524453269583392683468936131400497717160075000772052672718647895839262982423667101657667718923074236231197083980703038629852483575171147021144005891879038223159789318047858605256939950475043063651126357457950175183275523034839167507157167506944800855522336327980288535591516767376582887885933097410827198675744637567350453591115938415933548664848944745231831128572423035757630188833699630251329706671082024706050674766412625943426524534732756867243572581443268150328333156324578124394842567845798483393352526740572272032115623199293019137362754714463289965339142956599522104861093579319407882555545571238134593737206086876747152382969762416528715890176567205698576081511060391572814708499204451975412691355992746336889115138204322819256225740724373617732146910797670598180504467853250562143369251654766619201552070906411127901148319023327815229898504072238609177005496065220545435895411527026049110983418292026681448455827491733971071196553285329743545625687061141344393229872769291608927514060597725615082145176917617097693813582726998065975964862792551182804380854770829858430067914961172192290801602548897095395484327806811151630041920998568348426156118191198983118360099870320902739706427398336412683469198929163137131294049505476905619259413516429528046891361980534682536163639497248890822463088493081774351280521751951729939363641014231048681383567852383137961324506020043446842801443011491122135229428689795608815495392860138666200598323956241965208915466732619260570375549314795307648819094207116062509017217754186622319872355839666357079395281675530694663222396181819134424294287055334024379074152315692347748201194302430585707324855107964200900594845064883226100709438728810229811746026878784130126784887718457613264127175968319390862711737611737229252812002815543213604928945963642318443975040106936646552970901156357790046976445121242858256616961729870855581358013309786749367966906387317608976960577026420406799127236135405487366265961207086671587935394351375730613733479088181693702414276930203728469063558510567355454063293918539308218564361135195086902651218611279537127704854401326376035147402050896148501979151371103810075483967443788756264153324700272501769702404446911923500137576680832920569327882867766619204212625847533740537662244597404699196349836241779939805600357558900487663651635249230383580999496438353165745881338573077952341957116725296477141061706584317637699729228735555301337090171579853976882500350428192353503387605864468533618813258842699825935540011624658733864187462571679576011607513048951810686548502626311292960848819543915153882897104955504128090040116789392809958628738785991378219005888778345931784493928077207325388922539811587597196690262724667864495967858062724845786575081712909183093814334108574667066128057700001115659156750166997571004373893925494707058913160363347843696687456851874185009706919706281361476347958208396985189095261303999369601681217996427910964899335316408553710636372215280127428662345219052468876447523413814110243885707116171744346764068062291655183745648376883267992166209030571922701442206843975480356349443404711514588611382030298132480445431122240138460444533912145884024056287436195088244542093298710893048108779229776392265430099210478442555183762094206563390086546990097424455021490122140644920634332258569710261963025681923856530478661802686996690366673564134443542881326772900965689703744509566482882610860297870181910710161392727585882701445831539271012373900964737492234224103843055104701633082090178145203589062223305713787775410672788562550309204851166910267644169168970583117467009936560155283428355101150355608624808642470576744198440686898231369848205817883314800014982603777603317676411806825844965645580615331716202377182598338778606014516932685302529696651838526294250654849448517193088387118362888654043476215859912338515738988940038937339637629127063063240697988242518889877498420600424066618633374579136719639933330942499619605552168726008554027827506085350153041197926305877228568428619480097679188775269129142469709384340385256121602624868582137367837775134583571309537555921537714728278276344130784050727011524630378589408134107510942738470553972182026214228031572977308127804316633035467845608263158649163743551148178457147482610316867734142363151989960192377568660215901712785141087489332075420082924265769918802069188882404063620396420858242575876955497203154721345664872613799432065171149880331678846096447285544162070685174109453045276688591275291023138214767453820000085598420192385144956151608443514378883299382674168275612778527719584196892557806599734292593146205322425017920429902543197998984281727132147673077761156613223436204142927113834730328975507035782249546892209693410752501362617610990354845097519412143980208418550066250546173744078259846352213824508769609713420088483949125175872862148101489354642718740567469102276962799012354177563464546574736477854367519428702006746064511483829386890640359448102588595618210257783689061631306631668767637968225086086751449661848748180859572948696157066642416910035163115005304819221377253439153598096068899051982995681350878197111977189064558207770532454874254471855077166286023453916816268959192578450530988088316215197369793692192972705854590976989747003291863753432524719087328591618269375850096615292055276924981644944243693194379940280201849421742546660849509465909321934168743481362914083657247287616752610585314253604707562602995127012695887352258927019447112553142647129871203801515272567155032318032159508554107891089090545046660579209401072718374920014673716559115347243395787860169743010254086077053608788959694613728038938693593505510874179222109979726849354116064278931570031155974213271096606123306037363993617796239427266780326657977182290097306170053195601804337435418617758804367996345517204845981902870104659951893956110313005197470468345371852626760511994921407226940875647026304326172741098714821097948960767852125680670368747577049876238169855875072921050188886295708511330907419255098584112841374932954455139860529562246298381986355894142801775112424453374172994901872006025773821432651606151129550180523681996703428703244639852675397905455597982906042662802293610460040844872337646834995956183256144252971897448708627401661027664649990608910002943005292563695348275700851798908642943113600826923640278514788151907836219792134143871977561048466364924616901731203108262226778051056802516242882452624634022655557517885222819022569332574233686918517591174233193492692640662408575460322938622451075644339286324384038075880108571467944423344787768822583238409168203955994408505808205481423667427883241832631217143737610683295482610605875080920872914992966596561865888129596850065106592456815079585355999550647965266564346752477524117234475656789372901546511856096626823991028376183569351602822399652788342928973183663882348573802113239301874798990073747835408185442272289408604553615628292745261716391456621283658862656243468102438855921702986831312560982416666711786213875378160732567383594912131737297552901293306095803860809892914255443650042793913649353058738131107324571991532693664445002602548946012669579848198679731382479487132687362177070031520261983458036293954414043136272855636809519845169337440260938879372377462676358258397112299382485514717324926215930610014215960811128060621393260564587002647870552267354039994743406363193585804684993038228973248402597495947425401602026595256550512193437273471258427596273886256557188043847008665808304146307738598371141280440253923625941966861308228329046050083836906114586230880454553877912124200196667299412762646341115306469012030423007904797797989641681756523047142590802819529052431848098771679391319418166041644834539387977704479235121512796923493169156253913366389315725405465993125946363828824977396509116533031173472219765656108136226246974727228820058476885531356686463948223230157645823526358491587829201805343654458565220083348046713901665656308564816321220839085474478934326209808025373239841267775553774963181782568606232883588000259675849438751387061627668002266500807559865483045989117644872457098418773323780530849293230168384109470878443443393498574477098159052707409976144338089544440928793905213997499379605556497030441026456696963650540247434839218756082459171458236501792220509088918481200275460447186150546754500450540744576693751065542774798961096823163198429915651714453875922649044835375212484692458696465839377766096740779496112904343732248666858374126014064240265684966851411065136390445098199941501621154399287738073366446735931552985335440217475658922228131606379815997645577628801444768127120455405627644052747941005883536272969562904081749364010163957165018854400411493786980835944807155161055841921435469330809106529663434820982809568751830027473138807877683084740501958049657709804278542688350320456632627407658251764523265800585617293406206205059044504170410086492782046416723996445287784202697209428272457353570189531793086127843520052026502420470396891446627080663689442074421397421446195163482558955680720651633677917325165434465778138318225411637877523746622034134171021060793561073763211518657735133126717468252596888262721312903395483355331795028683791570099205805439504706522160997202196058154593037899648807534632233714663663977597381288922689753094509112907443235783785693710002774757689380365541840714442740606937021407381256239539266004189461005794991899246335698081157114668697382669528689456472775793325041322567981787765458774378509961358103893303416782472809042758563178774245902857566007336938107264734731439128816152757856168487848115132217096489574198281613353415794850312432046262702435421148410731147125416827983311001315646103250786283651163203369049414514491816964555641410710339076980463810361683278507878195366876977731720710270061828986562083249225745816410567096226028387942792229186909700166929248369970085920631833291503006480574359488353587733412994896704082123119029859238397038556996605925443494183141046268138678395596336819599026629280228910674823279645275875789802710911344079248439909043457647413239619484113513756231020598625907041143886889756744496321199851511777643613747400662058822008276642303940508374636888265006352996411063888398260692209269114883040814991413181019419456202664664527535923212170849004827674254188688911291845778937492751988812584440662446435336457716246560904448241454648089159882464766613466511442099241388975704029311697506675557420211357773636681058303994558220788490041721126402402586372602447639831852105875352951841946656363153070549827424251720741973974193021752533520727896379982933927348837253481559396664892624139787213800141919004734049271069513562380666775854187383100807734129419179430076065142138261318663035491545903919649021442447337348801121474701650447906588858715635885850626080608449027648932242598861486349700386814842463355306138042117144206238760913918625587373729215159376865916558364731712178609267158436448259144997355886846742398364482231433925965915261672199366830600477824916858350727717613406809787689236259015977840426161474579517920873311758962337599058964426518070944805623399337535123536150436801218173466219132656113015141851749649434904194955588343580595069072478747220264513331308767788866166010760956032016246123310712195335337681360995649490160391109461687204291871068719749632468559159171328852095009115496372226772021084582505093419100177827757447814753507293466739309669030251070245323004304830191479641090796083797926195299353240939037210361647947229738738874176288243687472805441692156107382038308473957837498909620329953948322880404132846302977014224800824716024408968751370311055056510547487167022605106617433843730887314965049616245533922060256460452793903317447903638404708362949282789039556427602287637766705008961127103571374480275168516464283926007059460035272125454964677754431537861129180538301562799108621965725425648635044244063772408611230634882211244512995756730116326151039685230229517098297872546277067011205231145680653436576038988899777502824156190447675407872822697703701843177982893599017693560860059932620053929556646781119527976954487246878676785189081207123231042852723049159955847953110160874436995520969492344578124122216089257714262152308545276542543989301592845179775575850313832562327722037745878539551204030824876062030143010409642901406647385216225918434423922503259330470743568384155150766706599746956828720786431441447748810706096205415629927857485310895412001989262649603401846092768792699625807410162589085203911357140108334313558008808009513649579100273996067034078410651318588611737140166339273592220306160180598587719390450851580208465877560620649855577778517289455873952231179642793781286591620215895678705847631861805570454451950103958862858268021511566841498872339929849190393813029310551173010667012920859000200621384240360319049090383606447528355278676029803826239492811073285421610697566922029900545419680805069376553735216615152155717247212732595227298548197246863582214081688163097827704818338153154343421015895634181749925828512748113202116119035050810916013639576214425893075496729627195977551113439234048379362237737125802760961019057572156132441971505156630882058125838396637950882176571151907477820112181238437317678312548990557346098989030068155945996258035507193152631059388384642228498323579132223622896866970418709211070963343469403574117698381935268825014247677382035162845059797088246947143781363344308496047028159881059041880177688143391582420042735824784088223712673740673051448322275961020647161790286806698943783747724740437512348642095948279217133370561302491762350031541978316141403408585081331941680182491299688451461504835616975578486776547547008793649285246503585747092736034277494968523461719515405951658762386287536641341310401137733999081826482132810053465012801230893999449466670419232606614980815902411922157796995525379631783801388453746084431418338383071851878245162253332179276120486474711000096484392149913254609447139986666767876141783278366726482388976130134336516815006579690633351112829825580600870011512422923045218024660508780147308714438850082117803692135209118492561380482049586000902475660138309255985260152717773029931964745120628966000198061688513144537488899869834453291621502419916641087769984040884392248633577460839245746522198399581688861290868363947679330988240085338841702170505780309652626897983345884790428707059383093962206096110763533349572767200411172857379720564970793521359579208780434180484717490306746073267924261988627717292427857979468733975455582791436177213166258340091059058597075327940508106766422212785028775564375668418797850357873324375850871213275102078820145584715371269526116602359964985434084691426111174135210285298964099742135689218806746211555344632733346302142195998344449210451748254810741533648248226293739938588867622174436439466743901226523136842853966830671505667146514375211633630887265891937526622636944384496120979987615872909842571682685933933298364986357777607800072754307682672771134177660286637288039736314721118361596107980059000828150061106585152987371575322706514696770309855443525180798528413538697582278104681557775629222046534206303623645072811634492656135356280316483658404927667269589608097074963267609111617471784925211225230747421145707261358359542167849624353425329985427111777038674595178576128400059058465819987776614747679729301814276086421753186534929993466571082982957820538226045281247425955160697263703045878125945075085771049266830334893024950955802052805817477233484273675192780909113878687275232972199741618423660372093287437893380493103947880483760033089261138981628047243861245489786288191230602626470449025260830578379531436077509713438168649378898904739832487179860770832591509252881305942997713468261277841734914907710979898946954321492865905050680508518391744944404646988838958175608326762428757030003978160738622075793581294023387940568125938629902302962710325229837995347025905516113738227932042630468265358323247524608077042141502754267383390257459832299803511898619310408661470515664417736778630702732613499050109709419326814491176810957337544224547557257361835333858378631779289747402544449319688465443577728897726282406542171120336122598443211705008542662773879885881476520090104976411011189247803981444965789250728618855400923511768775744022871307628981963502775702084302697177399602460232866965894230210055831029117464743082768407968527320411812395488895147063437380163919731301038730750274162977810093815106906022916143611442866688613881768413648236381325726689838919022703289309934201505021660711965821864895888522513602474107157214726595214536631058772098875165348708216238647588399551877259422817565205718935201212642905757236721653542082548037237488415894634281804614955573731751106317891503898038768306140007048077241504921830763762958109350993518603779491060107188464644724656481990699156001642839168755198579777730412739326812741262914019460459116922822674865773402899006358638667036023806318943620587932301864500454505867311505387039208289764245027001113322770738540585004145269001569298097269240664161801986753243215318300756100752297171151577151206721902874026493313864777266904622680202863763562847239634688384196014044673056262726460635215709136575749857797018538946734054626171094029129276341946598635981407630685518525276945614647477298290653425089766313020054163757183474074336861714443126829182865719666566481608618659580209057485826528647308499578982186799469359098252315854568596502566279926225319138433009640770622856485678375237325634011901035695304950494908411314792121546519028731986188387995986503021392838802563370253229408483446050591946742514925714652509858842317369183464456320258504618640674622103062801334303707739868021093845239944524660462973762979573415526016165116717690086231328604351780589097616765752411632794500274449982596660391221943740135504768460424734744797379527988943355247875662578693452936564005574990981175332213465718660299042961214372989601873593226034308486729646458418589395276178616302001842140069685736589126454496661814887726540175770513000931413134188310172935591243044722432048074303431516606005413853611009749192507978842808903314494988492437133688419955356043056296653918479201941622033254120575347024250341071928601643079359074010102666629572846295271752512071806075648371692045711248272539403361106348325822216968385175998063676142367395799283478657774530812902146205396550469450064175884730736516511046895103430505860854803817274500598470446130095679106049103247089070406257141931706102814363874682046849515984177140698958169870975864981301969599970861037910623394943475714019029372580540621528431602646606790138575883939820809655282052503302448255227557497201854016280263956097403601200030558323043076788941594372301469775072942586757745487517980966184591736722740081204253093188003185748013084973523054845968587154083778962882205783168165476619515491606112967650918982612835128456027879410137522224680798501155375784918837020976609912064536627803376744395258657106781438911899859274733472550121998267001136537147253910175693159473057817187820233642351050795492027755955057059205773167102162866534426950930845603174954672220009331472321878098650738477870727846698916683122302771123172330344905000348673418410147587451983877231701450080143018752188130843729066190983952918332629969387795105040737229040769816952408358406981830413025876029158008740296170875024819211695259103819118435103449891581628001904961875994555708201721892156369622052203255698418025216246099605145808662234460159021596579557575970701845967894156281920249196586402464883226085519406497760035539103258637909616233304917604551385255400292124910971865506130302726389686262585023850741147228320906664113794768537057607192823751537566935480417705092123394943560979626945026591178901205251411898216862632935361837337765101093424880722351698970629152045784467399305239393107361268396375803745931565499442999001169208099008403098360624613803392724205160657363423440624253549151771710440838777189720419137931307522040736154288651801673412912164741038144114806761424482698428148895450702811053756368030982473000859587579106912189105975081276360338225979813214910528423501719054297288587558321814003229214004246104171565169231787552433695540086761070163981065439130871487968612794254604898804406943594563160481837381360897820432266507003923002829190660771849115111849502541785815148433717769063498686733493863426672426217667311586517120402305141057878303642038174561958968466252892661492390530535269915715731208382761091507069187940929573882406421992130393165686008727178774327704513366350743440071668475659106830646841743898744595658256041713938951776079643535002721013031535501476969248058500628759800097346463594479033426631541826166039501549900433217131769608234529317748994909048578411617719773447842584870432693397705901312265529546196794376171137047156161937311079157225058128001774660679508013409373680880582820021237855838346277265598967028820257210279805801730413592212379550794946872236653848822297950084754124137336021337800256743053901641161919902256742142628420963729558730461890217398969285691648715561820140297637878310002559542678339818382203825005599377103832769562763253912555326077428418895967478889448988172402279784577667979374847293889607707040037902427908944954097210276487866582165227726188293473470087935522314987542067554069545793294397824144194628367960949218841670371599147637652068883228002004305704772495990620163384804058075002665139149971268709459793226240870475538090689752576134586474808453288298155207686169355256342539957853029109265670783785328458046145061977006663944213002100582681844890259719706034316693570958013418132112222333150347844935813001696039611117422620055685889207098833699779832271335077407214569156299280127762572019477509231782519733722643255450991411151107310056419091648779747477289290488012142522459171082471145690141767509229220015077908202422275795337176298811956746044774643725417057625155126643238084532431890055468417142008345872258289756415601394108854262720553087990220234904509991756308476392773663428675844947908623130171123486276241723959823455459777938910417520525920570612011812268117722869735783135015083184346315368571872033768700815000015445554434225472599134338660070182697032673470396430429586068658362144567351234393962301077189743491803087265811603472969581053388353432342865798694709334561062707417289378246253046409305294331614147828483151827515853581082034695739227087033773463807449675115403920041961576127990226976016325551125538568492139207732808879607929946018177215418785203756472253111382738881849555440221194379723637871995468061593958206394323049284435564162313137777423969388630346324525561881815661515832231735981193469459932623988709424826458759541757794104441826918543818137297301706304224640985772100187396564240977831113763807629041330976358432236616073352839009362572719286067030836257498664415364401436279136367956024631098826043499368062686773628622821636487080445853683341583133557141151138515405363277079478923306436051377249079027330479526376644607066429318745307598708425826425389344220759032957359040791453202968804710079640784949561675817003839177024353568159344836515328769140539937393513260276240678633074380820506939734451549730638615538298774427732821922182550806217457837722218565598044952810177239113546056914258630735799410007105030364290475437189987392084694777537168710338085892678603829437765937455214800698995653103242420301457596670259626683478943086969649010015339512734245267949098652510921885976659731838329826689829285136599845541976849136412990696054831699241557703007409591321628362209471874991735182159755732645790309978492770533593302909187340076097825565791510581106968507952906122361251730357708947276715791829055471483190857393062092278026229003667634590309811757779551951790103023786420513220240194168949544156371684320199461780713547258165970335420416101730284313412873996458116927085247570469083609559176082847152378170355205300392033868476913258195515929796650271624289013785547174692056597194457551536209731631103530293679048140021443854584083808664095144846028209800549750326333552220780204622112498183387737959222724237848583911020871297603451617552472817455906685079157536256878132729937759636473329217245668257995525634270952330358587002665748080920653928199787435122267682572676429716875037753741602085481758071259375446965961124946081372343319451676938850221948883274811497498622892508963790327972795593142448677859648286903053058266855444692701292702442603453321267844385202946246788465977118747537062282267844517820687376629573264562744222355631395629076279032205610099261062089528663458417300308766604150645203711226162153730006836820442929179276127732192682511979247602592967514702637809594606720985746504429758915973378835077110189623115363538634434760130990152472325625292332977394895092308784956918927344799805928737837687684990966770822588035216596561976642501799307913558948715856204516561949029656564804207796427682736254216713030944259778947126516143261194993427638350261481867103130981492014988150444017417229070481359282438064015534354103071254324678734804741248960620536602610288407732533370510884405659328849017746417520605058610900595296532043950680689012993665735718924622388344250845167674597460130260003070930069981306786132507299153514435550116338629851482849081150584520371674874873884504845415055513685028215210878691852269674181541624181081057292635210620604125093281054273196575663769674979484089236174413071637349465252578810354400108132719206170210834040091459338789787692146100896210760125632459545969912847259095533261450828279686018670837781933170667537344667155864952735517801759540563052487043737897116762982294831591119671400907523789081482877002519069123461389790509041145971866513072235554155544251421572940671601020978762243650382209828078601852526305953506361081262550753921735270521288020044179631445673839474205712418216879345276134229751397758868950559465483282325694327122177723775373638194377401126437061654721830620783584951015636712735423237837980232825611865072649154689457529546277318057171934292798926840371743489190419513820601523340788931729858502441532213038252739139910309280545402710219699015083138020646548511190452152244882080153462267690297845469966070938512242113719993854524621798294843887630887118816598337057903044049466860893529556195755985435302822030536345989692707262513870260833950384525291308882996457074551464865301104365134419015212754673882228770796668106395802149720573757108079679888201586187324470193200176399163325962751751877042454536205032583625845927894695751713214448856618844772150865840182253829495877536440321144090773314848994395373592811641469535185349534822127728473353827070072501342762649441354305542653608477392231818886863634552913602513696956379246901961130526902804230651269236368237396687989752239898560826573227804194635160405598951290432297502405347402515260114234813313607535201968848614976553670861949659183541777726165422329794671443832840762651563903850454681381938885586788513789567151915035193806920636139660407570173337629969429057349483645437992424892761347160309528843056759196507306166571797108446400068980243504910565606064472149565135348299374574221783138671343635897573538746566232544178512047076793812460131602401146849119335204906168846046198542669437840437136321321590588955647377459674916421200811624387719035729542666486707960688373710251049550227058261104148711657022926228052967331056139860515134390981025829372803584949136489838306299920884363961819923155128778271531704525763025165931876081924770655940302878209354811873013651442300834737328452612649948950293791032926462679291771777715588227145645088924563046095103484490982226594121700796603665491423887849356930620936827474049380935982266178299285778884130016095706450223313554780892509489790458200292534268205242302461643293374646719296833794382824287283329470450086603829003473674110695327762507356789758593109479159867065621582746931473921292396394818552016751283507205178587559421293442694031007980760760595561091995178642326380716335185601381903171309866583384186868430738163740923273422024449904871212651213062643872243816476969429245663713739456332541830550152340348972970127074631779310744523418417424246080657846045183420453593460279884712811223172805100908000659110524655563081506750710545532427363891771470195247643667835264721904788005497041313139625058733865392111583389105844891592774222239096105531821202247105014837702577985329345841098307379601722983119330019739362194659074444039704289198517087214852084651519738320245228451188371897672349789835233063397262166677527344505436768081805938682830156511761997136676658533368448995704133551139622154914983771195271336539758961545466690829767357478058977002889389562255236951965801497243178113314484357062345807292002336468238117386403820279037415395126186127830202209486997580438342806599907148699593321403296861327755913467319712154990199464013143352573560885484395986085423675093101870638885978314698397299302558066929526201899998073685734706469001956587828169245657144055386560781258834987437216101344277280685451056121549145461702888294174088258179841867291522856955948982996968817357299815625338863066118695985307013466131706670079274332449857017567889573320849742905628671341750057657349627074580582074152866615810457162332709292284124574864787917433602102084959708138098883725526074315411604327500221824974384034870074921427287511002646767779274199217201289521953714998704600135450598770763085923798931458826915206734343833649145024717576286060633442451779441108209911903275578015537871927173067644418860103785000598741563754741640752412918041612700602526659254565076229963932202002015359173603873059086927115709055468806499223758516253339836630631546088274376179260868688098066444825372432079640376955270269642578109225358120268959888860040637886459235782033023433888594944140504885137475412431419126950149144008607121543410779043425644578880123979258903595555201850211961777713018570966922731898225996152728577640995206474696503678150656937578449336998890405842988927431930304805308267661027286725377549098540318537754868832075076677136896971754254182787414255172382507936460139713062299026349975163492511486971008866498051877428547311545360408721079306788491459077434254084789938341618537355655899603911836283577745553683281575503163448224821262578240542892144350764175967715921706626702976617404506539790427151864606912920429649071812943296674720671895384757124307272031075404620277601508069642718010943081089360826683467536282264380954201642303424265579863721045357098780941484714948113518056598343688587683538762694872714026062168019514511023382919458074727994955229253162157547592257745038381301798946693561846482127855378812278207818674793685190433495740207264034874151553949472753057203639813207753660680589114454442715256760459221347264966635675668250852674418216485215007455260038203680794679561209474619111202048776494203761799992576567565045141425754395189582844660833431649554111482149445285152263962084087071453361735995050975967011428599828673842507191557316302451073899820704140234027767224829615491624378207638355855934973482341938908376631640613962453136030832541361236685476212948338519822553056845409678185996022342968587113049445378169474940281294153256562644565258634609127332164741312348104524143738436189780538205598975564878237497526392762185118416259784639641552253444695391104005608998147391859683198107272204829510138877914458014131144882682845185700620608011886423240174141433134502001657874144549189181767796721003800898293673162421064494742966960943179975198677567470257552623899217843241025083448709970911852246765860072132602018828085887321093331801656255776609417751883631060623101980655656711228116599764935379148301375336644742261267660436147391307934176235560971315820654556270258730306607174467066398685439957869251621109907073459094218649887739436750981878414844851952104107767640764105446464816660277160517781139047025119171389341166095734784433197493742766367266284128461177663592721370596517878666412967122107671988401325181727021208915606635897462632504925283141387707997034699228287214824756538001787508781692735566157512968148645817802256840550600843185225522324771261282098311065216408029075082816743010663683049186153157400678644229970619790380198045661282064440965713562548772844712554245772739792940403490145206443118772176668006822851460795142233678581819644279477110810135644080075901671068867264298396762667562472079148654955206590724239203196746281431286725259644264472709631229668408587491735602148802884095050661530494670159738219257755807390541353715890353963303506463358467285061191991707738421412561197177930950834664612987703986324028100838680489493821785495626389249928541546631437295504161475758866828718959296151838606070891751274628625190664804668075696185559123529785391947234154569890291633794310592397428805159611792490784034583362958966526780849116157801688512332154528575548697040285430717847915177512335525241655163144336884989349561532760326167345920773014889789147612042389090377864378216248296145262580980283095116706200611516438853239087546509978769687145179826740498092168808986845405801468137806234763535126782646058132656902083742773056167244646208471793802014461637571645219187586568590475679961184086326649048704401392952047930629697507282423553521804237829624265972958973027754685074258608856650136599467869943017421047655199988796781897433419189050630235167730734465990814547751868607540137833779976685733313576982545872864318653225407221855474533411669398298644944493937192515682462358416349117479416092201284499041964612181541945528278122006399003785366920242965158259879160760186154539798464698645308062040894942154909362055488011339658769448771405346225341261116347027040922158857175007975400676861443928823759797932534124546663891569055792940829761265309588632145806641635752155309872513702084079372064097394591719914751685632524490236566062704398122803384770924195027000634133336983117274449755074326978284281718323917360308452282464859274048444254811039136582654680654701710740735969862466071933694366900382010207129099279113639668746713544448899260553167574779202952635291686300610388089942859350634967682936538366528985515060411653330757484050518697750178081650136491058818535227611056580106376563392507190073933771599034859642210661068787603681518328719117938627915915972072768202822939121474792066138148643099621169247282144730247946080256726967328819028250779255087207927459767701794938320534579078162790388697416221885392787784738293563213439169936846288132422223032901246811670186745335074585941475654316340982575194561114403291475024842366465925703990483645360841162695478498151192477567396923595580055383159248654478608303281888083491170041616285488818806655912057314950339696329749055619521904257392115067627684128497460564672251041527202879124989170994132885732494515179941700237790830695318531570919187997211027509702071895532431896397394813713021751088565210184566797048820207008632456335191558045574653385701394353707753504437321349365756164342391215049314648083657350809665474638793729728744333816328642963548773541665922327220267149666195112012854170034040763561208601996729019526031131558638274071619007981426672870998089773178965342999024298212701820040129272208881438228102251475095616350342605374728398191342367175823163728718094876017667278300416059581818503518555903171414942524782029165828643289156981945904945475792413422626494602127309209583738293483854079646398151103763731841687862406257845834070723691360821421766907584839873367225974146298404359331174817325434581462448271790572825314101324424839794006212760665140741621603421921559153263336481954820326460253120645171390836695124243846289066732708491775126974445639599448199125697364158432608937399290483960362339629183521674781852830510428009617188238092524578805965665714276244540358158489738363118740984923016485673485832705346143955157008242224723111363121471419450369398991371021898846568227289206358571849006458713222428640389164463798626198923304883583236236510850201945588713012400510498380638451154807980465111503607945615093540547008216311718261255977632239013181346668049806776648472027521754824618303963815491600761307238117550867893397021444046190614158996687100233422099760202978877154473096517068927184167664758775924142034546973877096696362090213852757109332181912036081704448754744560350873321710952774160938233388251918675201846525419273225646949663193286466521761141645852096476546782794229759992641706850185792307280573708366342173031031333738071850974780514326418727029852602962511560044920314842189123413020861484941595628259663794273465280810714522675690719251686125221910603877933298325162087157251946879127735498230112253125687500404738639969700914825313576393453022522696131530252146996349820380606062394400617136217395636249116382715804139325281400771915158306512888444286305815872629549099230278680158340778015027605886494806658096067006901954517341732848373267978723608538263429327364606813659795968487241318329072906741499246522994603734488756407679633346745239670471914188024337505573097913435136477586670729338119672414277256366234016757433198576881805130847574999831785287572968903031403295646172357463979059447926839995116129862926529002323680223568808856739412893342859009980653124001418548236639858286986010641659908458018308614391946065945789172186299446087915917154345926950965025159133507148452152393471977881093711529804901716108118439581105768003772387492347014635077832623238048527364672297408143790518618040862632813637725926211775622581120274759522881096887623275841656038117131298409236325769051302653217939946187823612583497685019718344183178663896848774643151119032204420125314326032483087849928029559139616310777514146215443946323100502317068814548708020125029989543637584151310203069413110730646818078802027434290366899532267184766730311826356665573599929366783179438815791331655527895219413180843877619107528394729305176759441190858149294730609232474389771906707504372494537859056938546817097340959012152921224936644098296301135509335527724200513950753092712646199298401721138890993131949791004926101840789876511935457130433698513267605883214660365282504721309304771544900593987538036292591032453953273391102663961603053101658845487856690113882341525956704041710739321512188626058403283873798222579720998366210756259205859610589787347806019973003854158023595754737175685029332463541263984949192514542571288667385469368327157586264398243570222501257817917099578134600656334624466183057338212065076356097296160542858877979677674330131622857819274449641885840301044835284793701356703871834051195612549271831032646555514791763037134345525212628315954219307410832568357105976787209726790367438558624789688199061162432982326037454455372570214507783673988065008332925086931054276444324067917108320135504931500819925837085499867402053491999502599173806132972305492446489229458884946440637118973116173830076888971436364483838877656239473743113758642171354580871309455855802745405138567933960427409879831386378638243946051664469905026733602141657951183780398318175141022040911506277252309492043975497507661569374319944241873981153295229600314601402351148518959005210133538118233167916615292771170685276016497884174668122948179868465928039872880329825187669848680579164962099802850623029867367972242464596045080034759834340947300172244873073580841389257612910020419066421138284653311081395121542811434839002709081134954811286740153079685783114310343982894071854497644811533109821639364507523664795517169060361834266202957083718422662903938081432113372576194341726690290325922644041251327415297298959716072729030676471344361894037662133634812744379978815055816588708845999737779466177637240025197509160868255015448153891520344836354517151249192718552347881712970989949983553974534330011303979857150542337791430844793112707411934922605089921661617774059469817722515634081524273354142988246617598284735400634644928585875974604430155951113539119157285017814208381422877517280594894560753915847900019937852231375445864508229127133324178576528790336652107451872220105368516991794565019809859640360767593660829473596499885954623622663809078824531785857527747434586427441619372856105258056439659880823834921993882050843281688982592397639012557337734269602769213226995507233292022363065436559195018549259684904672415905117666577096333162048560189805135224036378449568073680581455198250283477390794704215343022019622654748630494013152333325460577850028994673873511237884950625172472362521171295976083648846878025110641494868868209219812426666925464843782957293375636170137266631674341004126256338453337358166162104090371920519087385666654990460777377827867185981260041559021859246967782209392228711639903528825201372855316528031255969962074866862683718864466427968039067525078761690960350307940638382945287643504975866494071689131183789400383417985637902874505272093462790105495645334248560225894114251116777472951573878636945377294987410222014198309887520742587674496589087586642582818728373960101470717554102454114754448945070949034948729452544859639677953311078469784707662166172759603686172869335354082446614868267531574080427261254817766802530750269112579507706912657266024320030777411079216580549429602385782893989058235756778950234936602947529968380114640539644481510915314001882086674277428219221261430493899677828698812381134553235164108786201095986057923045093989045045869217117936935555654494405137229909563003428737901678787640271245773779173123327667688046020394068154089227334818755397388678857629025102108431957979563002769431336976038940202581169079390770148140739237678875774724085690590887125488064286015461075206688034852957510316934789263702824229668461390409191635550636824945370654540678033179913520782277277226163624172391670480001656476139501131106659113195690646719031398857487763095492112829827540367391581279345842581157300177407158582226239088812937386768369806053348321075144263898980055757113255974534515127152857539000816007312493498927320698794629640002142979124963958883261899295109675712291095984067592705173981339781105172842861328774978383170932184773933394305173048618097268013796468945015306119866414623611987897779008871876144080911904290086554625241264473819669751202790482309654953640722703462614954870570131939338707741321166667663741389217356336686815623565104306353193814459960986097532924112675759509034218892600670579767840064574775490145633890005697629626182770219791811878493664792644264412815160551319745809533963586845623216643025106652585701560004006001973910018385508903151594192605764395947763986469628595046703644688852421744007981690874530824479039451284282436617123448812533771094416330893826799627981015860151031173115651126307599804430335317195367294872425471393566582451274158677550596184659363698146313817614005767826862649550806454381525727482924575356707756461793988413926270998243545390737135769820954469070535378924873339614989544344912609226724986134278250736385779659271638715711075186894294968186731304763010403871580350818577560441791264704647462835828569453481670511528416420915652096792256811774671449961521349097909884022555090414690989053297575219472410563822552026918615096684140483984777080736361711435280514085332267701729687475304053050243900452169779327380855821068187245441036077411739006710100962281123087628132312205653632054524034462437454249552816738230076060508053619139968463214526640987729623417295951577847505557722120373321454051105868538238231469606988864006205647851145856662192966591145571337429318254490607581539096101666400626536814077841116187001870923722526425481113524332535039668029912076529646378820355204530307944249809413110185918692434948532365995914700401517119839154641868158001138402464423353660632818629950067446297229343459285589649383349276791508466044928890050010933714007213542975315176393638919596671127437990219079478319766306257156277910816334642199949667270020860036424597513333752256852995713128184631604291969752684486711588367291642877918845910818574977077329886420178995284346903651030073045575694729738228755124477301531760010599057180229870539184319898448762875922187167687205493007021583133381790246313642128242762483460660755206712395607925245691777890703385404107509716501493609543293082075210531571330962634421061564965562784775877986012085648845295191648941391537318250005097771050730750341352199003930087471439604011222591656778859291925846420850404308015768528128419814326718852089042119428165197357554921338221829857048536019004992357387886364052396851565439482854441531788775046129289205087169424584848394073986300357681469273879135206782803863972282728569166311954339671792794334087630820185874693778078520102409461725472058902658902930688363096458596631648859390842912336273590185268239881395102431360467395630822436849994311680464261964600728234801649239113745567771252148433159713571120946890152478944022158093680703191376578938220321019233566458235406537012758226949864469150716762050354672105126261552454708384850112100055479282743240292971132302672497418441662155928181126918867025205820914009059087807752498896704137259284150797448293932299110278147209661410429562421657021188420783575783517529251837697571504993447610651135272286822565420026496037781484904770370312717197036684165080068933472210617485688609696149261980203056531409208192596799143553200540039564951399194482620899001667572246328096274884061440628051382595058589775238568857087189775498563993162827587722784522286887995907088572454565754451082747635401247228417561530139958432836922312708223492798460932541966414840323540372997332611753729004508553532757041144940101879149496717382193209348239675809594584831076306218656366320897334126638659508650374069345883837458950854103966432008760643305874488739023150123163907574681996190528626845130075746522853576877841954189089006325805149285794032228538446485320566383411900119061643270750570270703008309162406805876834329233721420854149703711213797361380082761038224019653027554904417743667882179179819689025898664646232882554957382701116601576705547713064867693851754439517853017898754791440960402421866143209879646662488080978648934184253866546943491115533524144256732841203143614330066812643722278574245861049223669521031874322523887892237278985763277952797294360379481946048930102954078878906587157893693020880177828584052222053837165177709973966650294463552598198172203810398722532068446551123897195801870344612950780840406118579574627411452330809836630149281103814375225950064785362154911646920944036752424202227189184082234327270814585205534545629435498034053197496140976453019767658488065406134750473126378015546649578322638476764815551059365463559369850035385921680639378891127749002161982440965938375421271915959396428397538172851424182760729314380639127140819074890109129392542480047763850814396437637916827196443316426921712696752335591905195579947122265897855052022478503043917586047939664872792712220689547940200836049561524136887855142023131738753518689208401006728380027644619122579578096012503254402465847662466488031454706932891494327837650409213534146011621355486403888857993043874270208234595706929500444902382216981019003765841088945329970340485177166561067397481403325684051443369247868358207426064294558099832551080149339353280270594315082415420472825629218744393673781487580674926509014478629048234740768036973806920443640183842809351193971066924652237895629877647429959083986723949627351571011625484175156041246481644360926429967546381419895716452679221277084742106065738744753744508865837940547411081906190585502248958018448697046048817543116380305402831018563894137808021774421985681549426888138703085500189154371398450789596345329337484586008044489705421512929860472896246788856289772720831538523285609580639051638955592366929316409346796997329127859261829670450606283397076967479557695886051773472591327870758399858136475069979077894195915331365910432160359610733836859887009567123340696375068653634752386038928587673761102447929988020702222744238691253101325450020338358250814213591023649075703774552863380061729650293166069812608114326762530258875962650090184886309236276670850289201385636686074201730896941228222578679570325921066849956176202999434889246671960627238137186519218427680900740195528113775701400833251348275484877198569997859272244430264101718274848037334907175246454966832000831101533523548464035570651142295445805247062338496956881664772644234593238228943821532465268681824184510496614911564408720621745105131219380114279595398780707518103914995696198774087439158884493302712092518541892603480042087167739095740691452157027354739320514351964662878419976351371099290645370662522170370621056345150490745697473392502500301339329977856551619378346712853800893285259878595443017252571917352606235171152851665166332903745407591589761912221806954154060766055759968019092177457879361021896279266206370161693195576489028165286528540645071194371943897508424142248798496382441518622148476796130883471987791929451910402970772157369964916155772143494782553187090702654116834207627498124478189911557903417304649843268923626604852767930041872730793383721081044509374105928681796778519482001324320627293176739527351488694021619873632306056019268054513668235300630648747791707807690452187253296007677064845792834107373800359048743281168003964842701656027693614806630691048821306873479951565062391037085959201684412873381315608702618878071373865783008795681439402162935178597963689208782925290254646151751470705581075600064911191277984591817072448083012538334476936291518479461146826597217789475641528636213915718535565613384944243397710367587520562492748926908829943183139873780658405544561962522142756712960513202546718273316227120609245163805134367747162792803817880287816321987034503726928962250571809951520709361342071365273146402006890669842613531183301787031444775750328585950018074013725627590359513528018898476068401690779304835145535150225161035141434155163931698983622849992271573209620986297086685381600642667171366030828630182605262759729446187901888934151417447734852531265827783740452003997362507977384644923064453541254070465055096138059275796345070175617358376236193343319075721752291536932667199026883782816026624474561431534171161166428145416300232755021391989494263348812232456218518572840826745524597791430316244116578069642716955527823643933074049893838892413593598977913694459789139551139838788246700297226232575113749801425573828113258246418294324822801986981024891169272532394444415793061995154746172305325961331659619250356336752591877337441598817256504318399563029044318421340622610685997614539467085409330441151369170460208983697683051468707355862355895447170811793918683690190241972348414690638168027623894729706184938668872460433027620293388255497452081046274145893293914214378016749968581944660448492111413370834856283173430305578932524396948867166252390192056560767842481313196835331611339755662856140440864437139246260704921814617484810658521202990432292314068802299429483969023372605415444550621134879317411889196553355846106282302228770907054148126981313383830685651453124939731807668874433740846133658386973300609578164426355397516210698341266461210967162801837140083699396808869577177814436768967679566893406315709978522141809589903140630736647632625525887616514706947174472275148175480950636120970408901723552119051600030416383606054072479758413497223156718698222263553906508990108048753037395711272459402254201335788272768322059142935570937409476999049568275004716939847927906310753344562611086247019577116971917513892213576338196194949915997185818502761400561773004755645009863276437825602642247517149084396000151463096273093901716628438291692641673261092357293471305103278627462008095631317390784617205775026756347634439375489593770260851277744858609138089975630529530860012371316262201033804541012033166287696890595004957457884510121237155967908965500777511243405530331205626187205906670645734848698042394358530760524142359361606909010113947745837803007173900944606233924132722973181329326029071742065414794035724732356640122915047485660444465283255521720566789056380230058753271572928525351804389851638812804037884330674119030525048989812887048283422120767107779678792460979164106219480519660886509696389652986924443524401192838321121184459049216737366315714880155626919118738476380338071664603198887887965638755464323027863531933959770058049905385684945923662713302738050213241478062676183333396497521252038243145762055446620699730457451165844699461468971890009798999369365576874134577902337529989127591585824443228934007535192114028711503896288946114364976168783562137491258009172627075033859902033911179060263610285990562605058346796720059935091529137750075824278272886073204612124536599912378382355986494389183555373318525801391074424925562476285443455297832099916865916715285305748170780017326911422593940375995739470417442466674517615170506832123964752430080129774244069220303747655071494270534920922038432049146599755753756699752868074984924160774029371073740150071686123383798793785626988163671325559788791005793921490132692534065258214495451336462641542892301819755278485590490105753839343517643086066414363787881795584412243501342334240621854520231948776663731748363836083811431727347199567066602534126499621222491847846014948607545839102439415695928778905315896770226585332279548338096978530226964949754892037546295915832726196597195593572970481937893055353426541478509657506819465954832557291710413195340398630559874429454996268336977931069802416081142105752279767995652787766853360717682435035185369878845934153649462317140356855128316603723062307289725035837754521510943871356946689012444166557486502577117206439750014976290815210582393132447946863254877515810410522305412655680263258076952746190725055152137959527614640947216124928291348645713437534162030453106541341900540248655727028107148170093366062039263690411951357889570177994049843819609716526447632730041536291369267081548640740200382463198402732375696373677973131505655416329935815318341516499361905426634530325915038403787643848678161409354594317071158388641148248344619692667497853056645957344236355895707678269741654572011377910721823730700750284218063619831911576998344853778522360166124612785032689304972645373245773838352002238020577554820298443820341805738370121607786479606440934109907050864053565377595076986443803303105345257794399313223229942351922434680091801518312786234045356264878818679454222549081631777377553144704203283028026801381248504192537724633435052092711809443499565040795246719184720512984960556648301651433832308512968766794389641076794670811478987625045230943940400106006680032175385264188240639300877207042176072281322496650944782418415716478252550387973298146380220271055051815594666424000093725244264030806708452498460888839632852213467688820086339207160492862834339067116256812864544527709532595986061275736359843055343215551445426923592481192065712796936665044337683159439270291837399389072187848454594371569069814792253775239193336864336706690490212921352709467224974129240519189936809962333649729914572817013842153720486915821162720072397120186805526231580329631792351709290339783561605933231743091098824658382386503215723058318999291266251139591399418897851608890232324827735464580617300237066661897228726171468498703971478436202797225589317201000890958425878029721589932103367335327337972090933210524434124867848023794401775067233186114116896496920838090897844482830262805839210870381780256117231468061488314978665035219851658252103545251507769554625457245279597952096971389381174893340959783981779961666018638600044529487985616169861691367504822249664313448562062379781092527803412599910807293517124326460370383497691438351401714384301716632497385496947257231878093458196833062197783192441567879943657737486821480939816618301770094570920018787189338573151162503362337466411490457674117461402338364382948153106264197538825005268173366670130324030887895335888512886954015315580553719427045450182882209137596678423242643794754980623386493820251535880207040836491959022197669529358410158757614573495420533379499937633593458133104539726925529457697217524949342684264673774510391527104618538386373939844119217819947973525359085259670551951284876813673975410941737626304699465190360023964558198545600851292777760400450875652535947020775059804423315086733774513756692274728080044592840132838466020100883907331514112669058828786928059743066322439431709511644762883540849732717214888990458340588062472909590067618627624345720929959937861506313761426762879825707061376540295188868902419534709561257688460257179922220416254894698288948420404831068881724641591243366744950404368057337240403224518459829587378463864010849316985012358241658039224306459392374218113049017540813098715492324970468389255859636458444902763201660367750401189878316025812055714254281997744336947284048981394600275071919877054267070890387022751673337322035126716756948780015181529026283428170246916939601049927073483043587438362264726153055054393212344877609838275429267517196673851296782808751403305429886050999237265360845913384394866041499922653771614383759199996589454315363000890861921345615489028766122896062705132639783716200927236613322085359115458042587658334244664995900380676319919229386723685338220750666428531533550043619403560132855676443495313198981338630649937333097783056391288508155361379101112853870262699915570304890423164858662647111171955570871816527043857098599352108275170547399820184175855627436067511253649780437394985086327601096098139674556270582788782287619064771726689829213663813888478671940035495191000059877650787849336047927980270310079095261253337797651375572094510631787822548897379051680048324766569506777220986467780827886091817535351235547221374402449457210923918293362156626056368468752724117117292492553990370285725335228864514675746167061256890346462564026552289900142812154516951700918051381249429920565339342683929797350017429486322654370351556967162072685751111859486626658860676465125400676183882603132534397075021463547673001168189576963473824529953382741342996786479582275846670747527088793365016316341217974804420500053794071755845881700727887897508791750875043077533730623336577356010894272596733566100067599116356249407358253688637651293589899658473252425464305381127163891356786219720461438571762366262680244332328696384607503962413823778675253819014004978824467936630245236097874674580552859434004597330872690510562388418171224265186826190777496617890704366618060759873257325655553778901941596829747566938009256128950805436405573272389367127681618795927059723730637070066210023653619239651682988979378581591587392180246971020486020574227260407710994739255695053308809932231316505942897515733186586571991739968025866438095950241349653494491806068743908336709274004323813517813759638204005060958845965530943512833374190011422113199384959597289738968080328315734481323299266406267707753753112453155921391596160925274831158538389516601493822917449633846300446596823236993068564978259046942574930175666709837658751315980352859343556124824923031952911038139100829973170001298788883814691658803082175591958760272939128635222800066257188377628610385231127127421250300866033460759991674624305466273875555043028315701485127960143429852215212525610880734377977533719042905113094095115036638023104161482271893428077707428728110066342032420191322970462032598545019605017664734543300513896648193670986569201954402553910994673035377468142095170446859269840654519213743415439889043585418794681642520606053864014866680022985749507642775991859742619278036525660677400067359478802476375556306427760395547877506242474505701972486653960051067217026828259171350770646945621999606920091401545413021172606949567304287923363589564461942999185193319277606779841724370084566841524424068709182771453977888428205434346060969813802569239227356938503202924966881878534777076840919464440915076976756196430505361393870738395836303179077390689702026210001538260613754743263121977048561343737112018526884825816233050392881966193662679935472035108841556405716864036885730976544494127095557116472184377440155229245207371505105840351920967053815510612960253139818692031035408908296338096421801578719259844569643005620534076962243434386058992321824439863647072418231465408242134845639979263459652507576297706714918320751013495123277588736444316561054520059672530983643924597207950979518633797084489895228428248593835414216364891395332377533618481079374113356263644635743442135527174905394677837746884291955569457533568207716497949814221585144980247350396611192848423469151579340942475103721770510428516007825011181082376115874574745780351604103903245094400217485443322989968797385010416947158949250230256922019783224785602071267649234430463028050956081263806229090006166400908765039566209358031539816194638493147046455783553814848069387825686402538709481231480438975731443317667541227484968146424245324044966590529672193464818410978670534159591151189631286343115855388542670298220802068370431778925347237126122777469046774532947155084473785351867196566337116536367673388081505736465824774978945504106776616330634661555938134037947914949749950892837806255791070135036903047901191250330035039565165927449607888922021613962900711425902142285932468582963948220440811056910223949056191207502107323137658227246170231179792417581837723848985596543536601128773203610221481917061558282171861173045033304858683721988165902650991858983782231919652386190859640496201322640432211360580415508448235727582345689039707919589640904200052702677084482180883656131310571978220530829039777715354614345859327264635185330338346621393408643828357656519830593161425848942289536244044458188396856141911856862507273392782450156263519266388930281621335137042186246678894503176412570840727359303344828575869334698649542475133105402503573186122420302238667692445193783210646921355534846193817518185567565840886862214522840256357639397652197907768749463393861172065086547398308666267694723531681006431997484871755882138239034715045367716345819641942251660145404379020993681831016867443116292913561946757500488337687933995876849330526569783085007093087488926989538858901567224016782726348191407510012304064033010645584935568998401200524477009309627716716414225942109506601066329371005042941249571790289847264905783686138556647546524374353119532582058540734978894201089254779281383651618097100345185730015785555136860441082300373489765343691934715370550960821135409286051371770054655828977043440752484365178219221616387471916157903280931807420795846956421089767074728831446275884777026757453864443800062612930918690906109946211155846962135256787310424680437372665731948834013698572064223090771422935861598924081684635284093450478796075326304243484241628698886216987624676120449370570333827657110411103776410184327062987721547278550554644368246391077206923267272090722255827683738237968312516681865519514238408698989165274910301054713135147118414818947182239410752377509267539660926759399300310087513635829124516108733351138463423308313069456382442793900394034040808238858330873936774606523989052331767575583376306163172379742333976560993834451487618040983264533563988031770746083283675812782156564255120387795825390925237907787406174859691039777394935492180068084231643121695795652543884438562712856585967809654909756570591228864651560014898874260118462681744328724777540549147269475983404830696040914862693161037414262622903914546619655763837524280440828564762106548704592214372001885826516639400095967561632863186496990511698397960493132412806746249921547700518323235763319187452547029798023472350503315851841966904437476317908923319678508810486460327761279835945011007698622827444372548521038504686757791272404307042890161061505515059383246856219965162602738708102781955484751233906940170448045799117849538513653990709434517246991185429606588356409616138386463306305733120747058328544471178313900404204740130612354878496419969757917256406954762378482328049370447262367365223460522990400178459739294158882761012609366720944324815088018350327498702254435328516511514488981186747006427161671087600247456869317258553828130237480313305574538208499470251748896176219646712327026355780256298424355400611613365135267600497337964471343969199593510865892638558236043629319472133745200060555676863428652248608231855814559511311113987128622027940152342368946350470467035312405482092039244085159592910046415643447329240453751494789835524635020039481272398029658588978829883696436810795487565341062690025127929045101767233163053451103482028821856799946814415383680560487357388474568877471014732463554122877078204004621322014631817992204698070233800565087572709930270245118379308539104466775320707711693033629291603353675019232718518657001127845557385839793614887358591667969678508211609753987012912602736862212116211798578380765737358306962213235537596067881448800557258064030120511431215892167139575659634322942591082625445713053632623684858977869213347778985718753395856373233955773751640740555512488883088013473132877223441263289443329309923549567259241019450464728072970364072034495389961643764891503067462563798761935583248002439111805460221544329277120401793630850759809951040216298331567017080525178591661988108230790928569145530597076392960713219012122581775105934212521219559554110743719829976506019505454688770699216546578725342117267079114437321263421601969585114208440028325808363593332249118976361100548897303709227540292692141395525540360873695912267207606115197005637409662901166739152639086837916125856756766904324331289491681285088829086525555970851831956129832103228973102569793669950369398559835175686949575978998275976153418260502612548927162525601145878652196768706089315133835028952529346446000702108642710768157409747113076177313137439578317147630963754841740519438702217406492410926343032771621027979642189080671613160727389990734791087500452864894016703289424745465169426513641653485619304326376897885359052583504628133878139502957536174686571015800160161591642378048985584752239085350808364716499070721843842131913999038868488710479118192370581542122389917453134609903352070480661293128541838206005431337125936515537452951838631371686580252266838389403232083277974289426183024725964463984657640161387583991637864434608464303192891514381197822781980174242656963206744322307236249037835420114840607725737484148618124623438556407518490302072683400896897163758346935399652758059043286131508962105874125079118246366446348289716495861182735934659791630966681333931391432743692632580038863354405897185276032789799337988314408235488301211684825686942716977230001434060477388404826650995166713062025305760485191534743390528765202774735581251111669003029646455881398964047928605620794575622857254858850929994918531717965850794954543306504608213794105990532765191410095036692054316600044277184041305406780634301067424825854065813209100077897730081557981223404141871596148540162172933698771239064818130612370157650011780724051368408904040392963414787856873109279841208750642334714671560783388449525668327720541513168419531428196980253249373177082932798222785773495536500152473436389469367960342255166713646097394700107578201643505362020022681903173256511142415090371956095812654585545019123959886859047682196449379017610003830017471074968058709141717621952088925170724126127391432166447580239614909912919796767674292304757463494650093967195407014181483353037974833984985581437774088030708968939656731697459134856903186073920336755753021094610345878459249141360057563073182006790995678048498543271964451465879200719769491414045540633143087838882644932848911143025275816512023339672968452250090405139842182971299109972877683808752739029497073126072868675210042587893623996939237984630599562053361526712696352395143946826314646021023216621903827725851722100579924129060127892564257555535792804149115610936245749737821030874191312857711137360966911025713387761273178061016317915676038241981615809334730550366678075865617976108881771186541008808941697877110740125900277557047744164278759685478673735247596050518415133860109426681129241002304854628367782514190896357844609731022514290533801071932559764307088355688338693568238109732274245477949700178828144021930631536716065071078968368346049687443954155067442142323627072192103424371105748052550353839576501415096720930203512653412987303329716755077827583149923194572529560447270406430957080705227546327649643866576915645151919904293032056895582311647980505574632619473519936138047813108066524364931165016707051561279647575083156411552093350867865762965454038306705575185616958784106068341534120282275722758122765106057227710759881265559394048727962179656368744636667218257216089419218075265014903252913621837539931914905906076723742272766162593940486924442659357981074131185474971107860293558956416210931296524736045485797277505428203232273777095679022493464512401601524173602278058288105376966620072123041412873010073336552507912157923271706558156566386400706235047142827921213950885307665201623367094577501239951763830325755543382292050039387687840394457284532928935013196839882751687218888022616864934795649037806038743025403095396513101660788167311948700172433162384248849424930400264584478242239199446817466376631995170963929527117347421278765344214597053332344598597764479977620714383619558452860263683332580181246225403053147697949511185252050455629948457703180505502176837208313000821582587955670694691108428263572674578025512772301748730660018658038134021452988022246912574201631734893206709185151910555948789783166697762723042466284430067560817484350317844733057984971606287764522200365761918095921520615168348830510356813306860674073015173297561663244044895900374791807089002803995968067199480852856375620343348597017310780701626303553617103615603319414368903180185829309932437868983476728086922471048272880963492170190783081849092224839637756474576972458733361532818720586095200144098285488861354141254113594076813395588865980639050485397564065995737962240383987544905215600604378983276222962512495085119263790210976973749553691387298538959435116920965795342190915977348198517736150340510667922126199848651283147585987633371698501241419126655000924786043742408962951076417149668829881891519615749214146351587016517421314212540764138455517295391969261645026634430641919165910885536328630571083154030902048234722420312983227565053625918898504086143118632530750504843445021443486502094162026018185209822188813369124047973451566645884407445969852479474446526821868736024426584936194651798477250711018458798767660917027242993341681909287952391748592744972119871773796678565199964369871542134585365456059447620836225051456788522806275505261628457376737166367843320210215865040751983065981825357551002045908534619075750214237792645287105183678832254844738964045065501388634667002210403922280085065002628624582532324039549806148019503338723158365306614469794841917967201818183092066368064080297929116268211206347604981246794385636534063336388205511865892761805348981709396248854789260331840522664972557039079765379441393536424481838574532229879884812326418461329019379372051283280402762268941322604388286833548845690479348937660296938749441573068646343284756478813564276250034887393619096933397127578757806334777314221439194884533949216663904341009399476803370469922262501574804989494517674426959543035932749446903525555398838858687639790429026018785000707959704330616713186596183065554776219878122605175732088237236289600271752919274246363100838969501197978703464932384971684332194123234425484873020746542735775114345059789708191047395806826859834668363670564316364297853470539307713512335629485238323967439433602118881106413321413457792569190539915674881543586288084833767564890377589602382488936754852070613114416913960354990962971860450094445142293900992690858075818238287439350438276019371636255305942121693444666008022240149089514826773045903541362809321564846735888903958244705805506719540195420747956249965500998221246340070222560276622718688858995475179655306638011777466652120216063668007316544208127303023860871090329493672983566568830438981060944337281334168029185982880950784717046697791511460575201508378755273907672945808262863204473261138299203039407815639018035616962141625098059008965607876509404214628580473634199041762218742006980878091896882275275378861493552142339905113714744928801065305499158005276889025188274304797047727088505977453573277193543946164300460945930272587711030189700495999163703428148204966544602041763327462931651250065805908811162005316729031099919013581865246604915950451178339763599681716010842792270103062739882767054410283426159539917400359566558855334148837486109503786431666574806116252608811638037831213756765507322061537183902703288239533100280636115318528056087202452526984798162712059319844717677056396491903099058718500191919780779386640636631910025606619084139686954553423998928258818574865027830354919170918663528395159391989751124768808085495429215628402036975341318582579563194976655351551466669835532507996275735245701026922407536186362258745141108930000210704196133726130460807986621410609652316186509483210490657580992639122207763032568187725057025582783707064050194176825904853650788338136816774402192202338400900621527545514117128746473434500856390248077524675696500149797351247352307108749399652886502012138701715677328056697247548108932248698054364230054284231864388542361383405018823216324542013078034214223907275716236195748267402408312271073861270998457287218400050997199271226576470325702732323571113795623428319316838314847833431628246703725583236043692920992561298308241431738608392677453764055924482240362884297623837828739279506712870973761384126797368009054953497037997850335026983930973029259199774335165623848837575404760934480274099942199292779130280532883215186624748158298251615475971939041334020051774637660850147998301741575385064868500209433750825800386676026719754248980168565522149239948834688293354143893814359145831576250079695757157666957408781430589574717455064921275425138619990259925334691536011086695153843231883661141677839346600266479620759507281592915169025194114089015285434440279699047398711644978380265523555041605505422019911690112262613167934723244877673361756368483882019088859196797544619624609766435213777691357658637011320935272116089378155043133578371252235496641562847958841253508345998575742382631256315999128466109203092375907125999734352732336509729245156590946926512432966376299382700145363140578071233728525951419972092484742122054751231544368717699349649794498826418278711323513392436264850033436878600385548259866108938668915348611318390145944659352111277071569743138391203105358313801281345124979158821087628329717952311947504083237943726580019838247667358396425786989017949329551226759659802992960981420544829990587316996628583639093182963501556210641143078746537354504183290617964821758160417008631149772335023219949957550083611894600411735999244955215101477928046033412443367396492878782146392123949598224398644160137790123648829482082026887885816585397475731897469249432089884322087917005502822248694448862637388460993640073819022517520333443932687812339858888965767542364203510366413246600043616457491215101073963171156705908810800816879542332426075680382426137281675689881972256184628133695199373010905758613518675340040083135353477499792664839485040348075858649471363064772980397882465179332752109003003276578203897447498310164024786501525615521899645783162357162148770129928832821154479387946687005204716379854453355726504853688347729092574775493075424654397246905802269339953806311845996541634814215373779131804435914658947150944314667688013867257135094498263953213959543848704633321333621918123398959983711359596363944409712568932442019722063646470965779231339234395078497086889707764927935076617865230110168581466544750907684112719366720940681944570303443466448124726329410819175803918481386089698921918876436631422550269538596577691312427365373297587791359244028957476387579802875020111311097106114540657343451126661691257806543254521971658934914998359927394590033388772500709479108785304911508507650905775924314770545557303236817314291678061517308043171045081664030595929028266027869601810781841916745922313313996220027971384024058992952797843712075157250416015791686219969589208743096845249150074154557334236743009745533534430774753195358107241601665518178390966282139051553926360181589286230506662734813995862837062214658057459061239643826532467368125456410914807755038369949820719077957013350587714180773144489600331545870443453390870361504525555213547878155867493842233697539243977005277179255734533267445541852602768187073377083598496986913786734943108860161393817823219609619733266095626875618937104568431165969273195400368950469923138892526447215649789200524335796399375446329096759532412612191620722882750917522769082630214672655321322312623440918965766664154322757761581327250612607328428925399644446953629244959485929642460094444143459666640425322967507897699352035883127193426429643911637534271170957318133350536880390855835563857929570739379967723701075436582821723525567752369805268079138340343963362762072280601617968135189864924841217956473825972231222526131743253321053534590506652049167550949740281439760458906865380243039086920893436910413064506930437120526324819981026351291317880520538207143354856151558997540472475688317727004497822327906435212056117504092958388283428388785511408497874003653077291713369656586972610976593175484524739816001084386306662743357368029664651807925843576107408800749985574075393756433037765942279841556496423297018990956720663568745714947053861652447955385296843998145300047704001039190260607480180082923469832672906161143519777222557799347760284449963072483821037997303721407766252056840857680826413017860271525410561933482596259212518774685344159283491693790580635556965216525895009972475403908731441664607672444789828175753249771149732404138663336815034215379623835159126299122081952547867237749659421991580797626488392234047557206973379132524632089953049022589740570598271498000290737668643005015541848883797614085595631306103261255352987792663170831158374636901890263372344402335644065339883420122088255666753395642788838380534835113968520058648280872537673093709896968434135905219816091166815748544881542260456469478700068277308752335748390361002226545697218026875373907513355178212083815343169166112823830274268266632442665942171361375299743959892935031819404693911270748414298925676442053165648545719424888118492808812106636893028026273279125581130179916547042788283932813760680735842424071121084102924506097587129962214770156165502360330131180051788006989745185141678999703092232323922027517196994912388453439026649274612336696179676948571806142026939598478112059408759586328624806017983693805896829946270815934314100585977515719676779709349319806167330525474639073959808365115546711982565427061206699112726245260107813744061640424693441153846789623516804362549097453941463954784534830669459541394598535955244475245219171437805288071131231006818606976724873114912287757173254457058587149738842251599903860515433241940323082269660813786957039920155371358870636486538319427454354038924922986270928447960803459676103182546567272391564460417073429001392272925833417607623638243627502201805378190065167951489420008201361902062111008257323049709099610357594835721110605836280090616287471425632993972031943409242935126148884991903268461205970018671040956959715975009954250223556901310059271069727992930587357813348255180364237367709876277244349452253916222066965584831025744779814686049609149907085396479207753512036218675807504853326085412451680853437580261245609797479220770115594569615386407419078483800304038262241838895427091233599579621465406963788919133329718481585184089871853446771707872481519693235275713882507374079330757393498221572136054504149018040270383949119803369104718277009707496513677830694581638296307650581381041616096257992025283940160020666197854520267206423062609217523980071221486533056265878917391572514948484398689327952314186329986023882484388205527599629444853773877763925857279800962163609920803781069548788842633195712949170772991109229331035847731657792043356706153297127924818800317972349489843721696515886149815351114546861153561573725714800761578919812723665903044085763387268341445167547820807803946965991159584325649545298475560966587605098748665893388690709472373208199496696315859300356451233085905655928035693609536514503451958666688819106210926435054554664941195393399389351102146479122214439275582672467346819143171518481379401456527373242382716337326697981590803972653594985038998413995974577037843529531511400250084261944539787319442145180068972297470901776472118365956031926290321560889083590423725478389145612606479534500834432219901086692994483514329104233288627880724782906165340904302545339375555017938396843664076881824215195365959374650569210629727820609545990169717073156643973101598955983822209615630798431065314323449006047697320281657523606868736467911668697202052807778421370857966379345428884000007681225712697662054874911208631928142377254647119960363441334463965351853570195652363893169885361690107284285373156805275941482074851862556572614752868039423301899021121183028225641621422335108593388103790455534317141833648090534373332064625830223599169478959915290744475792337990096149371736195574134231746633371540396423370055999316989653503329499462519793805235480455235792002688948037753992234554003658044271447927538834083436253589821610899545827442981899095081045869669488027604227139941388884786914925272661120712619566300166906990362262437576452397839976317864860173096016431827221761149585831874007032342461727611651761447653001831642209150000975985064165394771505542819537727204445586282670145750711759660532327739517449736381308794036584804249989825151196655847887789995265878692074294507383504587053498477304584055287318860893527839979682957634738873099175849087233837295554147647331011614689059715322204286601140830787868338074596010673655797963369945295046622796984236371039076041569116392513607720387392112900384527107103805414053758609393697190998107995058170920161754640152273718692234180983403786681167757441457532220261751234537151289474193909065030205687477480245677821328133521166199305439877747960758755732306681927320929092900417304409785106948702066889572425406511328017618443394315218390646033382149197444894289786286897862117279257546537306934746197177409413200782304990135405830821421229854742074245758775039971869931857219765883266045905583921435421409371088777128656761553905515580968217156833149006353859271900856167204260747341653923585820852194364898129796895392171651797264364513092704700139967736793295661402903666552741383911934473407437698610983752619323741832290580515330904709154875255839066309264437271865567865713193926592645987166756699083166977650367205357105189400250077435386083175753418101191158968147012345274618930063583636900651881464357930016233525660057673838261244752293656112595420647228300776890822155203172833759631541079277016613698689418154088186181067625538341346146327257030736368461619364249503107271324915439278472173374961165546463476263432241118926526883635514252544147550546195460614469458467870494762158197240079142144491687248001422121486998123635811974541120673597242617673443527903957849042183745529185454955987015410331260714042131337530580069134055601229982739909547492627390027582569918463205514474012925958895346504505481395551906475991530221383002578722490193288934975607862590703759320655384736052648977052854470910035671900690177744571376884406624652637660279857808881641063387167313998006805150343728398283917521339318981758956888775026496557513116177647368784565858213903330957925617431676876944816824220742546693694376067525544412628286227726123489780655817626862543446135475591987918771069335514937416134156375717929751424899547443763705976089538381386740571857336323495357924863170790251270837312081674606684466766231910254763165645462803021530547271700349807175935385248631037948934975028325020053950819031743398873502464806018598057886319737181263431566821228471645838866946755244064264415217770647457391599269224911019428170360651436581438267251453714372292968684737382017797759868261198845843905646326724442271172887320887064560136839173734634627960967670287699769047747156122370624093223931252276666400008963971228307411676708669085040112054633935254587125593935259965287045382635846735102687367034512014754421720314687894892110827472606973537607053476686314207822586257180267008903061652274958529823985014000600669066280135386938255066179836488915144994029751663523498900073259229588084310978966760741405749950610362876584947320432554234985653468731130757623466528493237472780033144970946577362116902362451900873514677594139194673939909223713464710453962683437018511208019061113948381361703257177544949468264931068767651154797711278546395272725212791512830223897063372372319279382399956987550441158628571404430406322451261420670944422460718639148908398406010044694131847710862885688147951643140066080450592400388736210628839292337700270434033153435732306515675558478343309426587942963216374457871110533820676755367559357626276456617585018848926364906691813448498358488550173719283724219837820191915799650469343302605715947900319406486043380012828885800330391662210358112982637372281916914963857164367154679615201807332017287366227423827525664527311043421748312253984034066454656966576734650676844754184843920443682268491524438084588599133390927980249192331978448750456332299859666960732252821470289683982181883425445482949637761158271194321926299675141945120650519219688615372169560395786844440220626231040100781181193120078694377616123532039347930429282981592510182779966059232549689359665325506824451661806943514813178673249133755832589514662704466463040367687429025869329290406416348789074827136550820525932000482191838120707265923886663029149018808516528017760384734107538025753896248522299932365667863000716420137272631113486563092932640661195931386720071076153185427388814723239798723237733294259322515875539606032239540436904954813038118518927782345958863407873557109987185020856738558606562091946342221749288216035105712474647341910844585359085473151592473984414649312634593691980186384536685959825392386949253920275137103254977062773744767193293353329464779722891119079809188301830042694395926617852805542971858363101997191177183808077421618901852440191014737394420166683868620908099856084250809329363088381803359835587422656623862485158413114796153188650311690687336191138043435969487737846905460653143050917345815773457918097591150063277665168670021072289186633091819011284854010581183469303015106665584182526366298745457276244471507280632604208544660042487581182929707426741405144731157799165072026577933083820361446895298718050166047161658368879795307691053704917222048787095007091444110306754431528064799402494390873135538231922706812278885135393099803524163056097294482054519168256419814218560148276306884864916806792349955665888156150620923408502891329040974169291429570276676829682392894857197427181154423773095856329575348554790694250696895211870227264229446369388931685315613960985203928935762526049324910295402443093807815659775686924333601877633853858181579989329875653328018569486324579733614962302827244478516158971091515888499039685001526537729884628247805021890783708331062356016201541798661033729963757664547263738860232083264766790718257528867080921352484352118640180263080438403280318977047867440908322832985620131195128085611975825400649571903427996758991084566333578319622156556356737550797272837544562021093620307860060977139375391941549373006028276875229993856077719829840408826171914503143259408828238841964170695695849210092554181596815827837564923698685828819002639239193120731505429567114933043720775552201511890655018539446664930531072600942577163746951317239619560674378493008376157873522783605355465632179541601291532915133903884546548787589680871360165274329264985424136989293307780008185831463442798842642672612193689606237148292132540448101514051634712623897413365790346765893591474042052314865174860401384908178085121506989792911145071704097629883628435947768684914197063573004729345960330685760143218490084544459371855360595963227844380719859204684069342018969866765719767897063357559047570963822900153888604092476474105009594446372193276104611754553822253001267559636434932324855983103753860002246480240355493175656563760312493431016636456010852072484069838774311088841238887773953015592406623668275379874694974763475284002446469086896174973336922712565870648838788979691629780364217619288051119140858136216871939730357890987030849476287536356267587923791373779891819581550271353392790536643573078428263584348229914147933687049497519586034927541779216653288537510724097982576644659928591429970630039193822098705041872499781304875187667431406600531529606281183620480532377062897326419721505343217679879126162882954042074734710777459584940169070735808865374612643370221572564931954017560479301948881616920431168667941586401991211253271639139726004634061252014447847395893986985042168098295655138125732508480617443080649100322699814963668500829671410761026822976829934398593905268185342160608624378736776380827222297212531635244539422378228018227002529654987136461064518920741429132645461931854947902801630144285970928692469278650765661185707865962522351201461535833664238105406574735916873281686599526505241814332243218301270891411259605827276322000592603559305695165405971893434015526059008703771673514444783127893620830321769839268186657304167176662186895121039703663557010984732131994858956601393227307432801238712550036532640389113800192637850066024177633296348872065541375347850547874293990792480750096294195565819874020467318814632203468357739880531323453892667856429324220090072747649592305545134463896125964314625813866677253980804984211740723830157097638778690178807835689984123558629528774473847024152299284115298822487188436539457514756181793433084342637073997284543150387197953827747024851983444877833058654718418927729591480738502195304451909633665511951670123458490239297350755026319974041879170647652127570674753174246221825415534165346990418806064835591092961764384994585752403689020254973474675208692253165653955204257619409417057237222753951034842735870343323829324944604200628518511206009507211094546299369555571865291316728310003297599363289596856599069750622589461429056441869142178006044672639207622210799768884512991647985545751346520722534317810793112357911087827201167509622634235408158497018879710310247401646716927304712626810830581043982737392837396505959114480520301998146781387490267611509837052788330856217382408669204008072516043745399392722483833638024508971768710444619582814101239029531486001923236101889095028650066250285544553093735558875641584370693644917392968092900347634595017423671343651004480088489925679827753748428444785429399703212392684630864540697145573046248006231378193118638141271456574362405759124304515913840910595816574346871628084404390459291187387140403080621102053722153123640856985434421644014689834790214452001762241927214694864482694123792718247870804521366629609240414675902403958563559130674647333039248854468684686999888311889690024956438275119840759880946502216757556357067092525429695074750062614577239131719676937963142818710400659181316523692247049982566050077370100310185360312889140955180890113104873626026225670668802548723338755798013837005636520928643524249791660906647051637017756727429547747395881655845916680922423115047370093644323241121116559760206060541276173710656283629208559242261048381981927029897384670177000968816619240591720814005973242186759343290766064393228691375364337726571228257830189206842245671678796186771163920448454174752849105177477276797465611138138211065277859808572695423980236719122503776937823659187731877483853267169621077567066875267317814539515743654216768765919586393209385294117898397880484131096614692983979067994263381543671397239701795715812365678824599735318529019739377700083130252796632950340552431228031491179167229268075453376688427239813618621871566249650044063894236310071462117177444785689619114675286973266320081563445549186912034641478491901610458074687118903045326619991485851448624887326383794417019413892408167109616711168970094388209343275480217925461551303950277849163035696658530305173534298066160497433159537129866109508497002988541572195558932142793485099787518522794297894707842400667345994594082704547528099871411870268677352319043651135994685539137815793520679355198336848214982595165822082673412626407282079042928885275000739169279878876899918599764586918622624744395648194251584347132318606374811624114008081543541930334465156045274830405595452437471809496585028423070867737250954814949412691073548811829760359895603711062846824357753455711666564665144574475395918982691754168236747561501556870250817866307992258341754030767387963279208952867855938206350413099530210341246714979812647599146672543254637366971681443511917089344584485181817443654135790252483886840503279924477418200469593687701660308234459912182584974758736436605933611123822807935201774879469130541922661133299248961326672911713177193525884437444676641592899588229703466024610206609149141291917460094329269571844878523700883335100549513239385459230249008980436946942331161889594375956432490900782077032176221174251248435105852017247206896123459969044405393634162250111968260433013576911355315555189660063710682332167715731340945178497588154229769900788386874918614079079362748734056437188732425542864808087894651592360033316755929734218629002537798192941353220343629527720463141436818154692711334404266755101447567299307735908995946036325086327581313952852869164778115386308251466235775621276487478393170573379898509078929498529368334539712132866677518426429816000851845325694429985727833103908805293144266094414320167523366528293113744008928799486795315372257051303840401054344665269059466424959207007263341612399114175067728505255442920189692477739801207937316760935021096961791113353355940613505966984177297408743725759845388678198473026008772654189844813342888245883709249218789750197701196278637471255065310048552802322692771559766293122933380899971550792562411920916295510298782333287452633867267310543389041803902241925332533296422006707475296940871461791714151496590741833214352968852016105766209961276687057402527494661096774750824512040636782057714424405530962580527646809049856346293587279157800388948034163329157202101740027510059598282946414665482518732550611915034423665095331853876411611702231230897144514670842321691323469730034295749238608057711858302959498429597964033091403124739321596489223774026280945611035875429029134964825466640998970017400471056531952831715608602390435055524883460143225903839402679674286574223967208588539306927807302605309646277140855088228846836042328459413425661108696202466376092003458506736461667423723361891308472305833453897368469388480722865282336988883152159669908053861996987575106248205895780245092816424379597457499507998210187543341762916407660265048409299500290819903014697006477468704044929706237066548860596676179305565791845769218969890592703604868328255552201370917104925275044916158447428990090870882364015925654368603063819113132141507297766181006514819359264580992432445834027325652052121817409068528445266270022229101383664922556140692919872293301715600775304791732168874366835895674329393657149039187886901685097255724943785311912948203607320830910962126725348339663751444781786768329190107785957508793962792806008487873747303842421977495498533668306052984398675885653284978991355870335549624713808693208861715495298694310132908440572761358570021891047723752395570874424826771591169610351263277877238698060915489278361734259461095533449758474355817321740092355410449662498116179889469477882606156968361293311260171520726400669449757263185552567214733510899964142955938301842313122954370380333191671269400872894513759703375957559787817821438459886901956868006316824441518258574696459755062438908207427566512866259175432719305020644081810249234044376155370663996621291775255727338483040570616194008666504699890317670061017946588262597374791641047260146569406820022643078946080273051307811962026248395369266979852574316315043803091015989708122596390500239488164501078948836558980311982736186232373102559042353036344925221906759515661666424731683924012110541144546104571677959015769931895833008976494236904349884799531359752314393034698556635271526505707933094062929295910629250472272564556078215034819960736500598557532331039303412873955911079719257169812580435184260286980593472836723201187870745752086907355452808888079184702902225565708203175357581970852132587609890466625986486922123236261035996417834035907843690068264526176171079365146373256135213155108433500149422630207652201510271533983501111701295990705432817450068663283527522369169440486073684826618210426635209321151550250804275971806108323480614266298465193611818559403510134091909525394745103578528351911832571470669953678917849162160967629511978483184848061540815955379596740889902804627201390713698623588594509682775866507909252154760676961624412752088343316865373430729224379560298716401245110478734423603075903216199219250943585189168659336060668476407577848468845958243524517627048648633283995812830443042824488034204451680469183773751537386050901870968614638325256346352233013619430183128762045737875009425957629404300324770845464124105967529420822504988696695206041171441043750563423084561449409086598088934636828762212090625831226525006315687055702538962820458334763522150272863098258131989580635367183572813036433256273186242038533360351282546969916393100473929163620595518740650326728235350857605108985686600621293658429219234609617249872145191764294245610028906218146086662394712459403483633193792114618692828216577974528672702373462257997941666730181421632422256757325560893387308621867562344007435457408010090490551638276434107731227950855888976898400465691982736192063870044957423475518621327474640751277734475437096749164662920435964665123053459049104639529761703727339860545641237385944492198756934324097474951558182943481792492585633138978971904976642747509413320934570042843804972149836675974700473513931501359254606041335568754339575299517572450050999226425076215026421129881152971516008225957391026812698680395415603841554645417857277448228699609186171863022689834577434634531562205400296946420060881382192313708713147839644722919684956096096763627780029289335676309695625432941616271147956877466991945774055390602056879417656188972545402274642126777891499969773524024028475675244415848378002626916435918499034529486337581075444323538854747361060993364151761736578777870175041651782174065616208896937959132562783232102940440241152918980208443133275938619308035664291442491650486078233420018336617961960236579158830100350780973836491612685440010515911595122637059610980676949480347762308592100864706247677767130402903253305073016368570910932384612012287481916108702249727821499836369298394950217456975491114936095735437121803005445394385093958019232448688972525787932561953992718780447284194744381385578742593336755942451762452985626570037162017280739389107279786126681644860313908866952137592926142532529134931343725684726738278069538731064418320824025584928717225442424673445021086018034218682341164357253384904030323931543477114528332389496790894017289366856950617851960021674651416680002264533303543306077143795700987437754141491782234001807299922691471280383724640778633658960570415919331532739769659880203118552787592533179169697984723509812150533131111011037587353083592500411382644576810889048739713833924337941605640715760629800430094981736279623814474122191426161282410596972107398940473272147143187658348358576824410386814766097780050157744180315035566038351723451090549674713511084189119234414408846204002964469369986526341878367310014454457444344806988383491957723765463399590672666595078484260669867539633595742920242821311227084703284991461445681816430741969549114327489153400089885587958486450190762666752044532840627330267221878095040812467288397466722314610080091799300821994816967547980574314197112144324625413584141118825126763523820988978589353198140960052268393555419939557957151088686540702580500713990497727866336116554904918475089693954066893752256829201799237103312714381895052579175006352699319677270792634557520078170334851951620894945347998835955774444540718491205513960757528923842776972775009689963945099327635315870447893847827982890622788666918172385783227471094056626158878346280798800390046466991958430921168608312090644002527240808951888951969420082869351331216323169938567040285159645831359703949163247859915986104333859045022147591154780025615914674190828863936330652888017795514989066267481994978882364594577341388750194433277656692825363411571736553809682008512318709939643052098466861838713408705128132931668601596844538173353628123969222309050291055702948843606064645104496278920329065222133781364567943679493471944211208261509927055873613851765978430755980869726880241234682352600956499366065893215941164205458766465243202411759593030202287318188063022431742217127740964166737815111588020823637653912372818190643704384689863331416888710170556825632125593173470017951901639506649999743685578319901676849266573242125548816338016591970826541104139900547809568239235599665088015474239763087909973942162330090357719831258983701193163917797380169317730881761729722074326465420119490840070011803710392252135298084293607351652960902850483015235087200708900638805595915516498238459906155591793874520438910060236886695711545336211333196137803535638159923415866418951196781774262711737274287889006604767086694834963911392489154331557957121778219680664473704330875155552313597905999205178044021226568783109599491420820851235990427481811918261100118398395076154316752431762218989837023481606031940833648457014133496656391713593999967159529623444412888187299444284784579635923333861634806939931204633475942119919692467946605533044190064655932452135478912329979849450797743800134770436370891800341179443117886158443055276172397603035544805121831214899684640432641758924917669987599969642058311690419240291054484411378506326872641900963817743828221084273121207511569534332004630334071157125929484620841390546456419480107304164482232138270145898872177004366578106164658424000543054330757591160011334206752126896723287167357339232255426423124890678401007217430666989834653051763384226129130851240503317683775720844064580119501133303270714712100302539613450748139451062198697272216128640582202486157735013703180387383965694511623153641585618630791091985689939082418619208437108158863313185191255453162013067021017317508938201022834438205076832359755916068257543151671230439967032705473246321439470931168344402531663786443029656396643518882352546337614886442957726451132690427297635748738946510161649105938284810932780616315327641635396413362582580761771082139402423182968621285305491069517506620550760186384882233737264629455129577855303829395533176514598441906723388726038937061051169848603074804875219443365336692076660747383652646524558484384212168735636346143216599676519908575823763264265015725696164729283422276252682022395248820814927752108739752676651871217064086564021482636787809277820115002296780225044250141823606939325858473020100171129148277158794152912602133460941517235801817321048387524641240119712262409316084731630979846118751570423699238341460482172556047668276668694828182777591950566891116523347371362438651987915385227928387400029667370578895207289319478144215057394103566850714196910109198460966119270794956388668067047303365846184590252174873629711308613976466414552870048722837335852185013058452829947326965538889661283170234405892524013826446659339559200210936581467519836266504113595265489010605059525431333322899633222466868781555760605326314195217037425770449347744977879587414363544610984944539492551940915195997681298044868457329679644092564150912379711338091011153948940576859041193722837839818220020712938036808712760218772072141939218785812577066487837050433832556603230416942884185484427400786115061057191769287716889478311689562608938363348910884006196172964989168330898477153915485969072200873465305846570620001836545277113441759772249215688791300905476751236670505084915445533002095235142810769504374135242798483335309191190610525637525489536371198184391134127440302815501892706619338595246982854817611951994899809987979007834749877261738344585549041234201658340490343919835116000968774565492613177500230773613401170069029419087686320194305949409164105579627391016263061387048851914310131610562690012096762713843531564416784853684378934990204466585894995774098335764751504946574793409564662171540670033038010778850972865928786845097021040479732754325679747002848316484660236601305287064169393206858748932783545748247648818633401386072338099765556469863618572864273921380134625500625054940401306081969868696991732444310033598650878106301882391860014644613278589426430151729941777002557006543161996739249667056607417923656533939846014008639623224930316468882859806899015804572550160148070029083353698513931432018883875920053826812724846710963167868440710460573732689101574796343477140973923212557834589374226278825673719054202527006420743075014673121330417042404546457077802572500124904188010782996891104461767413989306605410777075830380406883725921425774684880141223472629119120290056513488182152870054877356944436005381989803634563158531401210771552996927057670936105125482329526153793755184569345322058221647042083723260088614886424111839495959780159858299477607579536328583773314157891686741251656074519569740119375616521388288010391172882447015368610106776841193834660984258672875820018138140253620498538036275446448850129246069395659880007744544278260479694579972926248864357648837140327444973620176486194194775983730149213498564242063723670349641744823107981465433473378714924982167998088058328689865635068279640015483843718703284547284404511996146408720531040143795251754521940806525565152402530047972517116009242634186787403969362596884417380856740128725404755904489584046679141065744930875198257153495828986045472328829873246379707344814926584991887913353263890301415314918726324947048100011642490999394354596289846622054003267650400945811644122566532167442549181680259637142627848999231519357274982094916884356052373453143398748201797462941792055533692617446898853760434611772095617112708062574443518224556757900862127568433510774138483062233330887768088599913195043924766992484227756291047915436127664097721680209790953163316139369302581608077470584834428005756010958020936879986194257816563644802292887185451595840157153124368675363841098902504746750116832257354382321617403071968112057274022354864670467528078689427637706860632429600187520020611290411968127620501801511131924238606965334406598749803356763683162572032674488669095839896910819459817498793914696129944785943419916752025304071377394965915399986533578233090915434710463344338543480874339225669922308925312488711829032407348618353261126830574900312752889926363861957188473263561675658440359499592697960601112612813698758706759814558167337480908572314954767377481154791160510873459287010405215811166814017483995421532428498583619528439337892610205508552915448986299210261548155150317857406974379561880177159363765771030820234246357034565257140360321086222773054761089267461881985018328443158905683781474677417637463522526607036441250740734261318225886813014010618829440047210142827184053600086920311444762829335510152774568549778173634140892562630350169560857947795298140645304028921466573059773491366114051492251387827493440204767826343641542413629652343473634506102256637243916195474725830674333938338733792841681260029290386514875902910043906803553711305618617321888683680315766016161573363056674796981237761903376853207081003273301114062990966644591264538554927979163892322675161313018047954723110912929236673580765056944905463129970496139818213679103481736499754958063917709310156685339316538301303911520078853200400642353967008930855500396833483223432160999870605430357263830557340697368170690563961101149522488050715287590085191452825932711166466694502223480025533346668863752178488363681297870219280432596416519796986315530291727091449140834518800991745121963753560081531044822036356669284116502540191071166362019853561470268503402002845142486170630643873646974274585461893167135793605765542787433570588700561661951264423438546093082968139844876971055764622241440356405600211915733117863862316264851094912728534125677056916700745091362084859972758604074212676213331207948209871885600285770963323551379313929775077221961452176302168556291803433622455647898585615106638729006789711554499262634873188104034878355998379745516700023692231258170713316785535595390044201512529656454328033607832218269968828895342719062926226989859293248296493365574363663679090309111049513745429423061726655598611451132866036999367555522535680236959369611495467120220051634830540947685092476290687274716287355444540052326849136468771742525065908117825043613422380925108628964690009359660957465149724484510327045736632023840377596238965502726171509525020261283735725294911904102103611666207177696761831820003929616896924633348019159138178128252647687931417634461837106834633791131496543187014443158222429532272157920371507444978003781436845273567107702468993374246189004054333748227308524412905931456534852369275857603885053690122722329575521112728359372647277409224219332865595832215957083345428895767896777070303198952251023836404653443883960104236304627429999638920652395672387149002098351331564459216767285131303444277983624492835872223548013802081190095014799719865746735974527967919466718069742750786723957579703487353698842765771233254687391880880771575150515963739221589574431331648342601189689485237768780784172554564359474968744321850234718975005770849573609416728493163273383435858998832041706145477555169577777549546377134059546778066254675406927831151873159086103652114650230115300400857713645803273179744985942232969965405804885483222344700860533837073168452104870207156842207883474402428353198851863885818125004602551445325252561153213751251467687898117499482458051884519325727196508952767182682263739959327294145666115644133909300589906671147675768082952433849392601620697869846650898757083221019129093756350897474394158591937370717848647517934974211177974902065643951086723396031505754282078796045364481518113042553293301910839103914927880462974364497524110712003211997933922286882316782454195442051716779422567200085969835464261581234209838622062899405322700331812717707152026065374055010561674219736859063419159944182135494029687683115981814020255236569104436730548314575010575013018721517223718184906800146869969255521422926873860307081676464182255786558639369777530381002395231360450431526389145236922161412797233216993124211201973197099672788436867528067769490477186627825244339878219840155033928466886445054286026484837720239580657384941330595220451089901038724563199674342468578877139353940764299864518904675504549729810440659666003241856552831610233472757497744861233344859903125776643603544038649198173545977977788575947549698119671165261759555355926807697251990967812027344501931978578716849123981820402900635646863655234574071678624777696632963086771713184077568872172870240091125970863547668348212269563273129626740854070796350716601731199701906629662843297021183439161600240495160035476387415816753423197938415326492322954703763660926163606018403104777778370774230593566917597096216470509259856002137409111220800571505423095831470922359533601160460144102786779426697788748484016864923491083606517257969940150988708514270336392280855077461482546638473982483086356928131092972698391026800958978183372916674558286510664754426233978175820366867920507827538064755530048393808757945888894452625611926876412713637205442041988975628228683810114474611168827066296744003080057653960778497281010324978601339886572376762836261192780869025661153683283154022257846700692243398324572792356191564703337739221002614804318742602362938409736927755794540608789571198791033651647797516925944201401221866464872717747846833515520619070307385063161899580724450374385210942012364860789332165349424144470542842637975706221429828748351483380066888016376239805047539066016753534761625308694326246242980190770488421337493386545872223316327677738624113427235707788616020312616169754315019667243990819937173121623673812938487598319016522803354439407056072259705884740711961140179970723673815162372816438448006168158402075516511826471559043586451965500213368936508984895153815217813922543601917389528778838759585779090992186125185909020166576656130739851629162120039516428539565528893043011143215272094664139834692722306742074199220291765699272259705701817171327206024592379888121547232098603481080434817818751937603434297620392508353304091314228291863919413606169806786272947644645757800992337288318591769063363847960175958941714187830579611364194952536127077316929384791295551812409279655084942225179039972086372046584867624125117106139072371828341798193921463430045882621763705416334253095612048342917940375059293073377166328351395876392659823044243626244782075674243640054144483533022006185608015995244973136456754987920424194237837169462294525531711304325268356545083942949872221243716155999565384316298467792020999841141891300522063420425202837961079381002097419280397424478981606523457712368294900355663566701742586072562968767972002055730026420764377062924253490697429020686990779683743694430461024323181672466592232406822553538461333075221755825126927535737434117329502351369296495153177649048449562939728555459773419371901934748798926793452183546035147722822140363943759879646212313680731237778096674428445191322848949003760894620126034128280753338838567503869788714764564594701338425963683770488053413601968971387326699773015365098407858588919484447169426749170919560401681807901616142818366019330255553685047346668519835676003281802447784221230918353296963182796264762998062483631230209580573176148674370056879234309291375581771088189628770014872753189368852708696710870245584692697953361297527332435651597535870818547193991374845944926162974959881168989171992990865107204185089806776211634050046433432115215236904741014671881318684435604363414222853241748988030043140406862867015533645564738683762711578860486695933005872239385296247831383957261202790773785377175339289009074739357489403252630531760808887102262733010174096263077674054200815274074134046662068360271182301122270737844861350533768790338869307206197195271325363294796747754010301259891232969543579937356602699679924787973985394302565058454051012848696744010428470122171111632025289289953005148521083003877460103161731755363100051616632970854214156056952916187252014430227209823500021727634202790929959132320310685447498138624636917260160278030422445537214114809117328739199634953072609949125803300523179910245588240828066040854044964339581574155955729334322689994130306372330816303709757746794481488516143564569552631511280078204729722168519521579351837558550739951481668574448101412234085595908506078274967530814376102307580284286886698489562289633171937274552349718812104241472319793470206190633597407128098784734519872630888550247440864803445282860615604326139313521810253923392270280897078888051421796739680285260697442748577420083506831642411916961375830953700422967117952992270603362112210729052944987701237771424978364290077661584496179385520773335032858740683673754847185840036642131877586297443122012007142909235909362709838533036791113863952453950490519881386734767589590659766747881771683081821896158790481251349993206490558260322298453218349316256491317164020851329023037965268127204684485639783001087951090289161197100794095384764422141072992880011083221894188293282106158480288548818345806202023013255118666041175712020872063223855545979397332940081745874812528258113392737529220596480682125860472344148600212400846044180967642528127195215482818884832568246882223492994504623097013165633421690887974774668359386335839824154863909655533791892321571835835294260843229185596792188359526341876096378899818106576114965470086824278841421008404102709839984602683936239833225528702030955220180748551784711529801626478885046916652959568594180985771033455304711178405336273687323778815211488788547919866377612717976981228685647831852493975889608874013966901092707946340615738977924198905247179933112923191250884586916410143439316341974569644718978882018209015282106442890953856844932925403404344753928826585925731288054225554941536831792912631622318539969779896246215966141079433889131389564509515309321537315247503973309458563031566069073029242924655258543069425291484667132368960881639441364514426478943002224985872955776768901974651479105322604700843024230725231375208661505986659032385157628786095294498602446820631735415219074861827261796672187438829464897189733522988424370402670208572076197964673938553053580961002150421461116548125638395669879636122286593468317369026820201394595659024924744155570781329673787610244732097766456057855855652061033782338650162337981454006363845003824439067869544018164747915075586765927411995071716336638571607394039238160643586746774313168379937054693297247474902481126268805365766053426054293162181817262110228383893470475297540312964713759597399551423940478388646680589118564191475766635916188699512188232265194757025989052225878543442827457434980239804830880204153202089003936557141781552612246287961193300686086941177750939175919635790888380566153027843101753149806058911774700963628022730507770875495018158812532207318513112605037353107065678480878152598059878385452001895405140306956227171196271368392665263943675968598954638264122204501751740799074396231513559784859187515852711532282235575380961908722754168242503231564483263473331852551449159329096005503886862262353327590612117619581892691666771200595908234816920922167965019165219444474244335130299341241420869006645093103428890188159291409682773108636931117156517085514246748204847295422008208470410125858582304793563245704003218222267785565887285099486630445022460814562748510986804293652101388480110368962763706713925027534517131441244522722037986875282672283531903089959916931865493394230958946616879272575724730604344816472800118800360002782851490361678268921751871768537947261940123233126572846554700844335311498425189491990840610049249755070971363207009820259404691427907152435331097869513877434633628286284950442217084810333072209863376630170626990199027456732450053355903025862583609032299377222905342972543004255816038073903404155198079459117506732318085276038740877349134298056387366676165435016049865312601972503639409317981074569488320725270865501401959579886154991902325965002561765037726453009449976597826022439398066463084874356448323840271504605351779452733613715679537105334679930487953470333609437108146799666379842738493414058864608272312372552522407770301717915494184094624898055971087485148636204637799671628871321164038864645639630399729888110502773713027434346743634117656007220792132036324912002542150656843705758573408935053161375660272826390492169458519747433594878182939039545125983029220650089387680907011016953377053535492350547619100658140851186755572027392637356827180772595547401154293229712652578730565248254144121816195477838054662440041013258386048711419478572160457079175579312844567343487934252664281319934933852984321548103932901715779008038846167904737293650988907678317922730599760121663380377589021066356362050561219862230455322890762327469071047574505386756278075218849479197966854754492349900539557413419705653546056420265691394304818059636997814082553338442557951175835006049112850541960756406403856642585111843105935962254149824359163135214506957924380374701673745775051749003136575483167806025798139746259818722278556523885478117970557275335046873372949957499162487663052026990277789529524079125263457548406360597525201047077407118646332445512731856042670679426583344590509108584157846475230386757059182673972214105421755797301192648371487457523100766507128292333206043472256647045049519987435914967026984841756630416923734705836324811383281295479548459534615217990249406520782327224772436302367887288425411025501151075242365157352511183058681065797632186131115163229887562722949396101524487308390810124944006881174867310623489053060775996425136249252026518834934720345377143691933756696804350945400963892102421726944367719138717970278171296891832009127072768896144147786245035860538913924656757030975596667707284945591558441527848559487217228794213188672948119197915346788402369676079170865021449798146275893812020237928220511178924976456978836895274723920097869809000534332082617969322890397639232102580240465719252519732980359522353236049603765837173400891956033955498408824739030470717314308439611442163643953018145859584670448598697389596860735444824559889572921515108726882760484080066922394881189056860219090717390368284411591376404920060871599556830204211705715207622215085047936340612624849749370803891375708697925268500920625992472903845806533046693774035873710756022773604545940373339914885189432414387895313069512117751316380856421043935709070149916383916123078366528069663852230393696119458885687997191581691440236267104263492438912609007730373972948920464298733856233591016996716172451798989522644422468028598088730063324858492658718475991486047843323108783939337188252331376307533911260379719433123232108457577483523037955477947251375021301396442054849035751207313825067450197725824624788380312998516890497935520335117879213707487334529895035694782903565309139768753095200170414776455461283052601628568260648982559340492562744583147460320673806442940922638493661472964298534983087937861512769621578038028641917618760225403974778792138613377896990152989785214565201615824035665510120199142723148287715252368956419802861273017625378282124913364305158170440299233175630000922632464940727574955505254079615120668376930812952072881555154213474682280298036413491787233588175600783583148031175749552958975165522200164461676201018606753412932629577420062008274204665759329031307439636161667526721681070261272628110656366639945911485735154469168680468363051940802668196599918743773368285985713998058027249165245391806503660480214148902096575410484389058417584010414598416775537162171569292454941582205710454275101355595226763014488937470739192160772490109163601079181764414753059053945565937643024508213688479275192612755941959487012307534471661689736418070878999501341485854755166938268534700770788786993302135196689110400262118377750195192110295402601834264692274541082959827771315396335746956515031308434024234008304754740540280140138788347594328209497578334566150304074649778127772675774013893701809493459054743116214138261615179130177044959365771016033666899738756367133994018533222357062569559058974461449635947305677477250870309226703752986205951785275598914669465878642672804247256747690226609048128335637958546187469014864675283172456542435028942322943358810169422189656091564701946931774668279399605001800582459368735678377213858593625780021436198432341845071722711414025431115868902630338926105664694824488071134195686148216451041335930846871293202986790278999827771890432903535368846426752718779868165461579030201035982122298865802110591535841530470467743151203373983710172425994967287121072902845126450420220123297625690488756582672970520707444599812934514301221079128221770000741979038982684520162374516337431538055492482885401493509028808186042701340283611566128339736516053128820040183018056256453430378547929080924675361383335837627904427150889130225960122367087232733556575192410854854732269520771391021074456232648807163875942706024770952710804216433482348269749101520528167219153079607132021194909636424405759161894063540709861976883018471178463837195942660484660305281772698697453478820749900323935328793810290928741425680262952820749110963322212700815846652523829193702225106135887850160738398278470881232502077117198646549751927058752544318926426400528358485871532420030228443412971267565015849143244794616653748488049363871298235254986007234169662172629946993043440758889789130186596508765499275217823366791345454458845771086299883506270692144984566821295394500598895085647314642638722376525972136522710263845778185147741592616290380643244983940484819039733634090388836074439748287476492613369983523250979069638280318076388447467530433264393662272029654703817919659891443802012249099478258698298185629927058556384810708747191529327375785121675417696630541971650271574460680829721892792850202636148031092330564463722917850882391929446292196894491937020447096308145600636200449957358415735356801733997043009181871929258520609503556085325563847122533782625692132239783620715367709799720308660042035444607416712592771033696222409959424629460955642465072093235017314146187390379983282876188557452385956257247198681647469511002405345416222024068861642687410783843895368161354125891366907279873723032687468235120297805299804637085367394356160235657486655548412582403835813978673439453383204461180598877556642116966571203529828896674607549071645442152388439899618648052257028474107477345409180846777248487125395056262649944739440759171069188135210920218725598089106383688114806666666297953224092449118418083915666908060073331940096568594130167160872351692241974278849782867903721349592744543635376065154614490218722189482601033679964272978650363979413088516788617819242192350787323985109823207587621858990156130404738743170196614477105497226124526791242104580671318433598212617744815106209107632690117253811799524311551386912564688123650919105347571157740196896933349424033997461207783801880728103967702522800374897940725450750764622491486056497143533351682654380097877011314274536179523360855176743040948232416062095748904416316235120417447146677347380386521285750543147204141221182152850350137446835405995307331906381787577093267986574235557874585371926242923516324891873787515695306031601372093475548753692521877513537433844166502971490307639576444106082608986328968803529277309203044007272783390138800500340925064837594122118928608992114881810257278484091674116513498249166807930828131172656211452164168685307400268553879557033028286732791914787890252297699693059969353139065544272966041715109470108292093144754458981131869336920728547131304369972084793852414392521909915997459113823409778870484629649823577840679521043574570908619787082980115639316685551520699115801663926790581556811553440406554100010811459325930514002180193398565924036420637929237835275110512706820248197527798809264522208449391498612906802159947467399185751307652223312341259859267165635433283567361563886932234444121913077928876817733320601107968541484861754056844882672453905052818737233977672063778297567939268481797431327226299841860481308325472227978049410677415060901065545637087981702756054427124463781430690752467581362428661757709165082811006091251119937842512375326169066213115166479003380790901516987816972043507083658335263230581001563628897167048902503084767217447043396767731035513757355180822919906118456177048646075125152836061477367869110979493444814126211058140711388479579398706050164387427898220614857205823364835242566693942820278642388607217903319272798588095605736104842541284980908537051620268666168467297997334894874074576188572335095413678615866850659971503683477985720884878705101773237088554393336395138269485759331062171176915473348235209953556624323541784424508189948169407057944136477905331397419820848336004348318635319363841771024243778898916674728104659374151653687679014089281574804420703987995221502473074055374214930830987639290002508129016979889872909124040226059556398390038615209391884896080093917588086273208489171928889299933126470689132507809697754039296026553476467314406881906277830477138954732945188089556177603785164415097245750997429811701526198832467405115254662710420781034578809821569763425320853816495576060509672799711360591019838655452464274993844688261360542821404094955799268979706454728055699056467339287352194333608057019082121250950413418982373935739644594275079550725170316000587943796814666603836985400144759606449907942325460658985262196883086770947145533938330223823418624587909132081784640749785780540363291874296515378555672564008370746381789176654663575218782719703984070041879877148293633734573897264735204676174973952708369539355476198263259259878042479438041403670706827210777898902705559653897333101764331995904368411198386921771643318407737796232217658424116958321397816048401754718205005184740984486250428902599476877123618205731515951743138838235752655853460466802040056747522511743297224288309277549890801431864300018783383944096915707754370600058904401071353523101421303069524428871884860780079783402133929387838670473094859262851968749609352153123063113603800150460731305731469647643938047243711454519718069619801580651766337841882771328287509915379098113246066996162895904053542090782267610299767525562040821526572995091892932472436271615417755850907551947251366670417146547792700835647325674890097956413457430082469100978623852728330533599341471907281122250730485324086238753137737329688175808931067010358842944571837382529190651064401231261101675744933035552928032210560319498774913138097140914005494236565680495203792372491838291619817869900849002362513837213035728713771399307885287522835003248571721283633438011742029612425898911734068952570694548161962237030520589084707550168315612080797674089472898975043595015430042560828989862852762787753995435323874672235231401759592821451653446405804774381782563066816881953090997343735725805667255934921924554898184888865893511715012266885213473478001111877982350006596638134270420834019594639831026513325749259783476116480430664336426510252773055385282726762460921715236297587794547936108889931447347570499834313631976465253631155633360819815091452158493081492946213789884648410324206208182148602471294596586211067249584481918175196976446583106425073349791164616223177196088881997400743605285171887657697515459941050066962790545035621383980794958249714432545689184616809494572635740011636135759793613663996046977393655924298039544766537001823631397764208404942496483622020186584601508981986616452051065419987696974687667677161220360485901025711450393234333072886925091674386455798337887070267480747909627978494687521943067030507072828291040779046301239972500050663410417638017530729080249612444626604633486877558783615295199760991003782475103608718677541726006015810109078397099610409777225497986457135722673275809110633225733777328674766581251172742508581861369141072592505597426397818411113224931994542459779479648573021638120446827553247852592697468584702707580121644031236059204818993510613005277001355443476274754404304523189688616402617609097786432185518201871392179592186513036050506118793149508861577487906304004918234485220283410266352381341011676915288549081850779936657978216135428175623079170932342624902389015210272159358653999543846074834617481250079449391308229670943457584656086537573640646083284533297885007509972403153821597860016184348787874871093653754156635511792250792798459324843238260284288939678769858341418468237765419820252569748936801355743315863347619568203507303738866461102030910077675737569445778850490752931869207573150465637616134568489163289627939176902871095760562930246587426925403796454121123291589940145989850154052560661234466465522130423690110006435473979269377914057719524127203096059747468263302127699405556876940833940672277703550370898950933567256176065203036521283513390887131531469290406171370196063284059505877964091916756669056990113678576267900149316103422584510516636526329749127976970038167238762503928864261739404110623681406375691614921575552942811519009228383429079990692371945103419658629726769682315558194224913087208899347705245674315486587026783999279627894669376625226614865046926663827553358114248528054072500817476168559902611397726418934275781403256073608702333420632948825923845627714083278498824993704189965162296106359737161003812144697839988552029652901358378398111655539702408707720812173681524754835204377827007747921649787687096565718382154434866665941166925678618782899723805880481149476116515858104676806093110386601758689867406526616365880997537508210406301022350834650921032816214753496592302652492928782508838775819270807171566089069796452309836961842624438607877980517822629550937593516583792997914566918840912171780310685823142889066689483085536923735665014900715976694015412145062040856232567102950319808540088608410591313056784865078252411693122016343256186141874327259152146194205113661976876776620587647999629488518483032926191077062257779442091137366274830817000902912147923109012022347256775669641653033845213845265970924612508208880666220839643556949453671212718010161961878948205977316457022981198506980926641882336834296235855892993153837192388445063248546882066511737018091779772872447208267127137344004442965271703146256088606399910009558598888517282532153219517051975443601176856072275172759051540740379301420563376479611015954062431840844584338322409429126543028955606908920801000376632232792791635230821359755760470014820894141525905770776399351298553560661746468885743473756229893515284492572765920388099145329401988021735212479678917252115214277214112828329495296804973338122162473010435035583386323622624833384778822484933902113172986732017132971396651583709837092961105413675493301726169849750019280325940661963514304825525036814456650890533462648234908833325450907552931274002815694159426174509389319183512350266082319786229662396537085141254500428351637387642292304440298104075302650349948013042995473558104068084351172628058029658574240405670961215108536717110720972157561172509465380231740400988707440600556219126145493584544091492669475189287709438808987014362143327987506649798002984180681254270727573659581793894766682614364358101234075496714044907341679447511364741112226665412360218685020199524272476040647971976233072397062205280407735483160499079802322249025766087250846541789813154669254007639870854148153275052408043709627640353463558356227057111182919646970510068600158607114204211819624559563935712896158860230587376465199145810476737324921737756064906421076187815992280865612217122149488955852524011348546131764228544392507603020507222715074508904936996085189212251542418830348695004277371823629808411534566695050490213922397762859994662620466363084069257051155191985431500884518358209219863001114413728732700251686274592277787711674749790621485420524453762895651537844232053339319605552304311239783439875619635949047357636150453445598101400925561113762853585589255762984994182681168593949892605392900556461951747719746792092027133690924956949019180154016589468664734228524527818541157030609987244676778059615059216448041285879786718369000195369188019389323476891682656742795290541652308438813301950472906174450723637893931033444736721207345028107262921692874781004176881285845629565239017403538693736858656269597901027965257096728822168740730549681616320749117681588401542580796300332179590535974943753651389659025587503438448223793224433918905329550943238021910396845670255795856307587607526068255692848341304812863662531261817737006917748352109395078174017145664995286176417249552160626886748744928552155995807731837713813649874935155618230493898355440501381906452669022730306290022704949128016163364843848133316555090106197901066863270232540017623819166312778963041263763715343280593259056298524525699979155516471964124519872208590301648665078858528958693565250090034716856811153718012092325949673263611845672090500303054542983318408204741645732590165825477706603827915337590460350531928431253148746879302169572720755990527593062833058105503858585657012240385194741953905674145126876742228102568019949232388044798459663226520572998003521415804190918860226031566531038816401014666003682954454084745248393285391004168409608318765902228136404160524844235012641561054034308991673397956473515315510855192465108122907391336938236156284049342838335513830409303871974225076397723273313729980591298103736214130019106624663910092712169891395939138556744171241125554034210327980835416215731852929486197869696637879160649211998260907687000699612436010800447970703627138985793980601142043545242636272097606304209598887459907938862390658723547996526036512259658773609817023193649178347884025333968899765393446104470632768963938104766202080268295219629304131599413866093225710304538311039161254030599032535103127682056144565557791414646649343800853603012045366865904833008987399412463442084808676440263741734434959603261119154971790203223475240264605982602162895744621723418450759118119501144587158000708437503004205839881361000259854202146943196192842667831889394094560606537443586529851793717032423557083196201106263463128465763349239694745652640407862444919666780368112082114565155259983028745784809456179049501713221226194783028083289035461779587059119888710184957845123474075693914429042686331031875051160557300102972633590295505691592487351809461274745356050802264471486703876469124142126267477167861003398546114461996053765693260218498280526453698698913243564245040408310934655070942978693822114953175527580262735017033574851235853860287100032666036569000274979429803887221153002028828466605875637959473953258758955245327176474950689022990465120331575484006327204816394248526424575356629047612850010692835100232551213151363456655623960612754929228147643345299602408073623968439851214291532376614201233975523317303849103641419145791332893795787962129796867529220632247599918456570812829574925420628259689263985696470327136289162872865548608572169789121410460293441485318112642492346957673533161742578447384123422741422162162469491413765537214946989444247222470311783818276542527768240223195539373868871073857263813541474201652108698868651464456440816604263787390391230397383355929561478338281173379667980476597816665343870642893098595733766418882296477520796362860594740067030620553522691551669790388196965257933315042686448217724489400049572234725913322472828624466664306704659350431477179116467961208835564030721122967801124277971517976330331645733198663414823592641010381596468963626557313235816294291321527832405260881425133400052951947461565352573068745649172420271522930637357308407309385962103286755920805516731411331679891277019069768312481708423263087520716593937157608268660889296261158036797187799353821354189586587054318988639298849676131676287145589960489187608044446925005663026673063375756729217040721875956941071553934554705367193467699419775802574743416569101396118324968650393537330912367099654378487837152975710049801076632661852313804659118588119818086354583330241733426088088324541876285758762901609307062635129852999218705205571785633822052701748472126176731974713997142460812012870069095897011266316212919245849827394991520821616733710061451851421352775049119989812401610872549869303258416267261358772364647916599534050704598136664655160426035436126851959776154817578909457989018734177950023183535874600937394825093113974102409957424675094382036062493194591566437503194316246322194976700214177557697231613993680861654774394552229097408318179081694374443541295847259169226802532092169745757958470526000821659825170247154971608369073908144300159664723382665721725640448113731278111869074116978543442038402040561229907926561339410524133932539174757175463991236347514215539321143630616156200106946404090375128462343319278273112789673834842198965115978426718140371992754742044926493674633937222810615235874499014715002867783885425793537493232507085023677930644362213646233063904835067941545876880113714769866400778836701488995945612815867000394302478305331089086157036054403325682302510967229638205583544477568135348766576169390984765002640191895808414784106936254510942734121657261940543801172771284504648256787222187009156932223968384723715917747512711484760442613722617797378707948194749601914558108640199602479337112433869917060472071001001481820917521474623161191756775016358262593525001045207945999237458300106977394521848734966869687371472651453704166206111229113308649377465986023152833421037731878036720199870764150783045454658160215435307620546386031952008903290297678636717857320460459828269244507389215375740647129708680775909594502953035088341156384162237901986017926779828943388597671063317867061732679456812694463654785709805514643961672977555838153809920204111750972656456003525980551303390968769296508716156207867940671405422241401281054239085879556016584882857594410329550379557169752039920685311755340548849753718768062115227358063777391708648292966988141805180226723661336236330390066754244706120717458124761968053180056082122980722779624980355104717645214703399992902810609794135939838395943425947300720566240979393751346591426390754252561705502735157473267574510519304093974310222753628352291495747339094549907210876877998748901148098901105981384439182523255569824225875756803186959459996003806204592357605123989096211843933863584985275616065879260953097719536148536962043009755231441781335221793045963089815867563629717775105671180588850836164741331585045117299218238917393245562778973238959246498078086453340798404036077329566523240436463067742339765105531710131753363456145189387884585642583644682640232082083573679275508241953383107156769275180980220565476132832286240746144283548327264389719958294860024062663058166295030986150086308386820306440923739086869254410938427633050213707067433972058023409946914448272449507624623358377666338967944393186703739669820106107856227227708155406992848049312922876066723825543615753045152583594290574143491323323885690507143253510701091973893210021148915606558649476761758716771970436009834397597128813038216846097281980006589118065336774843591317923332134648219339762973436742123491098560871225996013773063076872614368018728735036561216283823289849430984741585288556053168469788704439534512513077023081326922433860409918819630978511914008530768319359927224324104367065831053181295578773210696856333956142919645505279375722536125822240635962088708150428033762093060099362081065205869665833472694783949808616984689975553712051630730216655625023008805090369982377123084484165727572930821855327903817190951724851514260624498788670539815479811621121672733394655487387308337404260591502884909466220460601956532599436701359456804847841273183025668597827655968107620674469589917745408542853636853923594986906451426373671519240406502144435713049686318215674440959628711079163497559298625114734079808831671867917740707166395527341605604160094386519647256464553545976857210880720241057361912353761328037015735066187022256530327303490624134656490353531380797513305011574845852834536392038914003952805815353114662629244833668260507189510838703651239986875226468424219655966384212321558696132476397860485837463229734302905629966834736437418152488030485498897459102248521267186537402970458796758345577955666764618400079566334670479560965386411923113690622894541415189483492012079615131598325637045763427409759670368819313142191002567200304961295956352326088190677917478698239797952885545044729712466881653295482661882965869144604438119790260044348870465083124332175433042947340996575117253872980692600290327321919387576565349610077890652241995669328242193214567567101848571009280681711974599606382917035931144230418373185397826653484319109946363165586962460590561801222898591039027093182886079914576267989568809508817369332861094155326544682090248407739118723213560456221433031506126446147821852188188354109262014594382526810868838448196344674363211757341683437349486094322591801125988293198868555938471370713972744806398564019629156348132132450199021410341922037259346593508908333957372703334926278673048334292935436522086960468826451150588711938902755715630274868630309675619117475613257847179976514890110861450774263446290829298156471817480005640802230617669131874772183604717027260036740217429893634990863456936685724688203892410730481240530324605115204825345174252187038701541291150496554240672478957205876706464135723211234886872850495893522779230109264308487040852710451626117639648520088023364088240348933340610090334191363312479778277864708045226757622240453195363842492567463192209473213836321852269696356003573532641765541825274377267358513696812535543031309233180238994443497660648103825715025808476617210148054369043039070190315419095064338579161452395448276519127657672536814841595277441946232647117927589996129258201403171211225762504685749182346950170389146666567216991387040574189700911442044325376528693750587068626636576133461913179761282768255305575037821273637049515574599173395576656386552596584747742922018624106765156394736677761941346456998034048244456460885658724266538297005085430153681025469649407938739463766980723698190715784428943127372905745816562321062137942628827255285798833213524163083011548125151666414969546845939444191424424137413713068937193879547097291301558603842297654214292931007896682285727264900152177502018157037856632363356561804185743604998685645255495092987157109844314687522750637322272494884503056230050967708986255318355126980978272467010744588689065209849455310515024161227249843440665310457813935250722802234464162035955784637582717528485118047059336069822896380186138141737856551506879543889769640002066133281628583555502490697570641165221453554309160894928926011766421214866847462629805836742736859433764125415025759868142113425226024833502396493272821461554297831787302342758390503042175174543031136803693398001834269660093201513646461615771625980929389618444407640904016365176692443376617160438077049867048300569947146437607867614926398525030333759200788488353873290628365418550752002571511029945953452668692976959302746112572343018634555257812396284723182036018985902509233766244089153508990429073488860261394599641797560712044099888168591178265723265762473741406919699654892841825953710194405477255318952575623710519544103382242402551661591289345552221806016059283445508767221052627068881830021209435470500606929965736907010739087182350147818931290054646389558457189370504951821406408594067043934811238238418922397402340555008427299326927196922825265730822841881350453201852102538723204134114886623738328639022936276353196849366143370206621049009894780093506398103754430220865344170708882967246183097206254042271060938448585330862527929328519263344940753536491285048987751164175348145501153886283511094029751849795647628508587693243298021955761568026241139269392961590753434414778060309400377387406608934112016849970961218233579304325612139290715200019279319822807115854706654001398999327384400679949625054319402521401430799444363270009280539761130473799161839492110706852016996476510945328769303995395043637954080234802113327096657858321042721569546276682859502883100251042828983992876952769138181821087966044282677655893267900423311981048965131794464413442925142457828040925110041481683864163959405969095131485168254629595077765324463579162144599224546913133849411180665377187305019789843513239123493666862621840289191731479779403228652212855882742482043472242672642567331010982033201639999660840646835210628897476288113484819564936381025425649475580141468907081359648006109722759015122292422320711252953798026888482609371192978974642640633718443132368936301280853508105623885635875629443600159116010875829980180844051885159835013531993853922117084430318927393630364769226816399411486826525500899916939943045124588542555133692430080088272965137349812584147513390357632282183178370777778164956862912049083196276806681074435005417499119931915163009341082663751742388549902599336396402407259780965715237303783094187957667915892958244831295327098121479353592297497098595467513291383817291353028510642337763755769054567256431676849639652797515080410482411039089772982139923564215065723523359698108737195675908113127178598096896969870452770165031940299268038367330762362619990968715814341866894070627578408254268693828628208593397768303890207874337734831213134762754954946175693388030207615196126002367527065175585124829150225006042128232485802118824278402844404501422641009331453176475939008129765304781878517354700009712049009007998673968511320121277718257546621147749253709919439973722017683147786581983622999920282334915162262378539127712200678534428828907667272840190004098454545297732254568682577785072390143287735024689516026142770764777144436916833893171912359463854052438132456850084912023911652653005267360400298583376810768409584370731358337571923474625993037174022338563276434357444037679600282997397925428944111571595072557051396493069386518710258219168518460057888365669160516439398310075946517609543983174288853006824049636488213739819952280938007059877281929511928538051196346190828063621121312439281917204751821941001471824914628460523599328854839128814208293010449227700780422887102838284269726285092183202102447317316156830581932848361011506170942574899206715200947928864066553221926928998237593376376661793839342284841529759713966573607865879422486314751913933797513267775389942007711453360109989021210970364516133310158776315827694501340396563327264437656250790536313824926931400030603864539450891702364779328036603461178911501224750395667190459693459444375250202771712291676372640115234438773665825302210097714772339979233547566552043175645718148070027592187080764987360039629213725764949040658520333536790067208727726297673197717943113506231807170246182818177803738710014650306117882768922975780833616014608494594544196187440907305749727393747063921091570022082349614227879010876605138776023546684573389384418027214820161841518710010614157428908976139233754696600578885884592275917806464951249873970413284003962548933902251911281127914917493718527192167946849430550961859832838294644362408532223940773006377413713494000952519616980764588837693935784787757369438813674562933890792964056872197726315272413586802679778882822174347428457602672719619446580479053338253441695260483298688508495627599742483104208009741142782304074355041995615659662803369830691866744437832133819891935978313499778406439089224621247684708440675289500030008467675078620981104750178106453579366748765829675328595351899729424907022043543989198472151895217921776882819279095697299389803267769255737293659074606661406418788160738564394774593073145752632356705154690930139973657454620101554232191008899820061068953703745808333655962147760875713744558785426430691031335553735569994208280684947895767362938118424139104197499517933995214387007325149573678841964360690480493186166239933047162842993666491576447196572823638234152087739477462641735065612256738163232518574069643566851382404280134286470970060175194018645539767826871251625593647159268799604006129878905710313380597535457248438997264688860967956077160917961746157043948017735293137799804611815152922168974246055937714025406598037887812499643249816457424907376731801228182702645624769097703439978260592363105785839700528205897366900357118302217256694418198528228493715591532171163406825242538098541942149876805885958448556388512819239082070035521317706539153772232487221610004625489408167993595912713931272108053464610386562696754102921212026713219547995366860274435588566100703568437210626844544467011002524744158397561738986571681752412957062602733929309846851722519040481500572969408936416948408281156389170243299700371521378686510252723416569246774572151321795866163240341004635976403752522556565838756789700202991772105425915026030337336318691433531375765844341042284399903425197359864770472557173902004051808812986308815881145242062512615792875829716614055349317065218910873128441441556987649143964668739876859910644844452449446043142297060200331733777274666671328068311716950042344787841090361202787977629024592754583906017329876994936910472695518155104571769238956222930618841420278403073798076464506831974774746414998002538236457339856628492315685778966154847949405289427939531649108260633038637155494528350234218490220239033098625039112438088909535059123255362519356220667438451481255738689564520965822808499910544146469082780544862647561760899721070953101053306102612549153566497306691665233408491322668055788353931099256720123592197418058180054887357326861419241806767878591315516196315606776728440278947035718630278372041012843865633089711776666513764871489530227903054267644169263590025716610418914972367323817869479833236708516362202495881310363700389943529203355750439090851894751976455109573856614118405617121279573269504823660434460765085226513848536397487598456657901972664073292197060882405844378613334074888493246133546839744299004326954151626630507540971428555692472131735413525096663559957008414278233308663689635266211657426040256773774385233910089585051078895915759199260109702772999987354537936178290426113200205252905805822515539713479880526887420479249140422754725404402561080169434886781662339547481626767156192567810688133964245442236694534125149018999590934430502910890038475945072888962669879413327903171430391838832733456524864597228003472407397556132322230407478488051391226406717798983970283624161450515367326276679747736704747282914103836004460682213359879441109931155317428406989867156152298696843548200981050239437765915685064661063383230610452329587527989970315756333619386195861892698260685724465711495867707432642723368805677600750739986160176925554074328149180379520283697679594593809443117163133188442088306262574747704811320561215548506156029153032395706905771747010804900951352558687492441570633483356827519647975990211109698390033117656199277675841930169316814941925324144373704222461887619149861445792428724324577078143289845837970418749071175850934600706026401916484835295489285196099585890136055871855435510828819403314854475575012890747049938043210712658119591397658233847740138131305264897846007338997102272436754712487163452579204314386748650686156247451478003155160915547107259581783329487231698586344292993056905179665276840221621733581058737562200923397144334311258574800316766438768921922221327982878287311573955928010043279431720950647423072457959837018596474164922670510984828959242379857116941566414325438918267128935435390599225205418782253438681652739858688435826476854884188920488865855785108147782546779575371871508810080862769771503395159258811727115062663940547418827926617852392686699709751848837671440355688458050166983378384891259871477678122008652291427019720409677697988551063106266970711119081419253784732901335835708525299058726411291196664684733195249698475583082964424789766320136358738091535968312803765857275689575038915473941416920566245867821804929027420765265924622088930289171275914983942027273194334046187758029243163568977408145227294981082223139409882756916955228578806405336124075071061998686869512293724971362495681737677309404594263354138755412382433744926831961399207742171292222505119044434785437223927010973642690494217730323517541124973530893465938878244340972565636748317788113946454224924461513035648167332974794012928842878447474131661656928899561771984948377481524722206413758797217233652295596593702525433019787478978359456849477600437828459542141957074484159527671117672940853521784152245187719127818592789493963967074765001489055149220312088668087137991116853308510329963952650285887190036954509067006730426584410834925411310260891667535472578238232458450218359051103018968229059265716913484562249317737773701929203038239323847396274269356473793994534236947808799345951041890998480876752549622668845014506102232479125955571291404239479874042752334096314209349463807275089305359101274506744213835865901093464249446361551389778233333576121611358029056370618555207432363839375519142625722786307190918173400060817859077914005596248309214242208406986452138616519044784617923660290523665755641563092480100262070099815190974603482479048115074224318839881095654069467128924101321527388151135136813251891668567388524890213501010121589466281733646730290371497010625055052803753899043053647795716879695482359985616461698146605769172664115514936788874127985153161730185779116790779953073804455492483529340812890876768859346143171705958806734183589496271605580138018647783721482680920968791892534608294610373013289614521677942487400939077504337685396372680432593279162550969374099451825840660455136967704045507619623161950621400598668011389783373418390018679776549947506897399108623017007220039485267256209294788631486154141593128381068190858303806886167307322936481011492663080804849000579155443154938687701492216326997603458624252518989535437236816792494899989893781572541779124172449764137865832168848317618822597709290306145391186622781096959424270580877453830169612083162735514633540858242423438631491431813414822953528885573411265101188676490528650612113736735373656154212851411975677732211812916203205095912005004789729899691796288201571827328628944810960540720843149817801364534414338422168144655365247463566366871633161763495005688201555674096427969780176682805787384839114398697532150675862172344360454025238424661915805516082908841336908902472208877404339588733970599733102345816428236821851156221291670796568605264243310389052003101170886076745051394368305521587518080731939764541255563676825032360555136212662869842931300071722056504690477472000041989895625804466635504681787077844730146696382172186750594430268928993683561036873803377495881381856232395103920890092993950485731001523986298382447272645579672653311055018996349459212831284438628805781341909211111333928627390999905541930533018560274177186897042308409677177103306327923622712072820825912968278708566624120605551704298427013779287070225980007513319222557799143322220954190942960614904611546754892412671826485753112811549214186644591520321321305596334018901401138620706613705292906716814142242775120355752922002589156269773600121401352820881613824391778461506162732149306278147555984259000202660040032406308019061530707899271356812545349527207629588402939454128215423438520534322691220230803045582129943436422571324309133052395154552916696978852640022000883660220741861808030392917465530632312609079261359945013064669041955157705429134857300097576409577080673386558560863064287232994880292185145602874566366048651571104641288270979104276879320286610863221174187188264419318894657894952043225384059257980524311242308765935369867450322004316487772947504678079750073453935298279431928077653724675903544147977645848337911416450546391155113015311595119834076395034824793721986979516601858945768224878135793508539479703144010431543243609740475153453614642403254629870154773531307602176785465819791167055239016591607427566228616087378729725333472647916865522491535307233948986252772759381242326462226343232706690529298034650606056175412725181877843875377614282335463072955547784043805248415948185241755070344912889501206551977554498303217234954422896001903487645728889691508861568673084904674092666052908877697880021839677628127029087028278224704827960769347045439463956516112105352074823808527439510003119242781683191611103591013755937647809816604275991381609622424778591104162685303988590487052592179966126400795250908083248110947272662193483992351457140292179464418997425661397474512007796133733663747979515559248187701630802793462530595305258341735833286230897371786103646779742500321431502018014504602201289748605553109087202715905215872140848598773032373370533456994640015325988866414379288553956096262566729865822535781231869616125583627718922250922595750061930439905072571693646594480247339960010567805228884719802350193797551675535683994697932356097250930164840154003424396567820723532726702661851821859913278901189221435781899407791790860729478753988384987179635199127250321663681161298593838183861873435317290437707192997672238343528726573323216430566136489313665469184485118315592914523467072468514930855361811866942554638549402103856009584781537486209346537698213549496141471034003273632495548905652899963008234367689650837307642162258772091461823827297397774499067492008036241851180354013243979030731210319987831393076028316906022515391930620659276774455981973456070154166827430158593997938090172818680969801234373556248504642020598161068667656490469298108353520292374699782735362188546885170291779990845080034664612918571215502393735903306860781439458886185040118862645454205035332037143490921677053871331323664710041508609967591345532258102268158780243253389119763855374402878169837525666649819081909598866692226873706321480938739921990692424940461150481595400743959364071668835432253968498464876283448041306921509674994900691976572473945703162223590215143262047936582523189074147932496485857994792507454444907425513021879555071935628590265914123660451782529054040317650934794895712679817252195725425868642962059337124368613798542786611971887848767143744041748258735835943709971875094261613724044872697622103392697264453774587123004465031020726589871845730091112867347061467569459241190970298278621024568884358844039650327017987661454064702980550013753854667208378580550357514234373656644755004001850875555326539250970002065432185853146167583690811754176959551157198197356547234302086946564288468289263837502681355321237745091435305477631641899626764635921677916666072736056482079949760362384253158515042170764464834844715292211130251599635904413474133874252868730034621307039837416871032082020108154837881580282965609931133693465643816790479089931165070466403868844368409387269447951586367392648157706323258524164843092231729403006457709055309883251177203703892374597551049744615131477754684924646995027822482511903524419039728047610922743393625897987568272154047230508989113276271902586509909749307120388221357211346200337803063688625868386950370126123968393079544515648065083239153302549635193718732080107845831561444737092809816550494451075112548349624066220128945585573741405398926964276736929757262219030867671454219750171478670017553161207146091785259995988961651158693177107638617803222467285754072387138204738092911522375033835438508560266168268039124668943112322028124017399699802703546423200636703970503551581833441916655844870243113629768139960866601116120996457091731794031017531965858565416763512471719782132700929014415769215658412518255254599740467732711252729479357065404016173147940904262853717894877031115333101406322762241755109752083627609678402201736782931764255314682938632077237444307023212736449410400494611273422973202820306415193618310143917546772895280103511902557519462923744271165977219805225812183996438004847597534956423319075213074740578990979208284590486763976877875561214745629132014241481721266080917097233482212468734566543304944736963466316684922811200342240196260869027084277333590316448474189903426556852399954246180663072221177097980356186658568991550902395078219493692687342451621620654048789163840484205817640471157847049601033043075324598344551045047608926207569259895506470820899591282749208320032712006780145605932088163216216177518657132497236610523496507357195712621311096840057606877561094021883895872616736423707039932941981639720150637718494885607159355411112660371418963202575419326504030038293199540571410714306417282105481683346971577017619223107763987799049515551533668958469189786370108972841127863557942497214087995516217057166615328119431809255500629876507682363854124985346978248753717617724831753229209902673353045007211086682882584197450165918539927801057364529122021765080999892903407430940648017547296460739636914199788696762173013610048542330459615211636562455898659782251823058881741263178882225397883171011972328778065136720150097289057529766914802683622401076276348192638918580236500464828774591207429891714664212673150964258711593831968096293405508833169601788871312916124598477595904094568667523920951712069895445387672859712887598711020232204211868898656039162375062358582019706681906771655579225792728683503746295027109927228804087952188012224369061828041120035614264791733719646562550373172540404931002613332349004726198416126622472469834848150497978062135000416292083682095935692392135044613291619920192940194784036017810715769468338135543797271579594231359602496141885464495414512589183888662199924290190960942159036234515875215058979139004999933868162886989653162239758834544209267302797082576374119274688693550078015037088864186063713294667340160065802194882196998617887542563810788420714229613777805360070157720022062400070026254159685935852563449271981902584885138208818409061603135636549979334866793543347416670358592029795719879818954988692273786882674793978836683233433540668204183537149255770948501432641047584399951298890068571063740468943127098097767106622359686898367724293634968452629004750055741243898755731523834837238854290873779913102914646962794534374593665498336218581364876366548427203772419919163914828987337297146347075299001711432574474670197483900351389129582371829498873435158985783788730391676802672570259263508152055815750922946257195304027164942650224640636588926775359252802364648691196531625736762543360581878578351428291559816432767623679248403035916797590074123427330909274181257971932922117982937284090666056603731991674543903329918575254384396928944935997880916980983773760492688287528890747454034773815481476893824291934355522570832076074506750162969782408885012650692873819962184125236215349912059662960136644688672122328435157558373661171627515675151812960042923441894208828823869023230349852196387505487407691970697318301138728688064784331434340486924923052826471485538082540456109451489280914014658900973079509858584184781829982887216371580719155878140911112008876106227716681306313288943986195060438792637828389549348808306978633972220507600825481993240767489622330949241107588855049234550392323511620638026270357467793603414991073871968234912494790343747186917691345511087683849897666030299110734028330772250341457219610082648529612985129865929055834391171177744737705456566269878089973447985252728328082936494311059407506937982445603104389856647345398430809343137752954552997131837263692530740748687743460379056336839005799680340647268642915187408637719183414510989934537103552479957003978409701012945466601748200898045361829746253209650186703273859907158700790207265194528842791354743568253839051487695924311615391927017809741465734156726473735121429051763040801160234541680915391386298295618845769906118901804101224958900344041875948493731609519282800866703345620125617417721442473330541685757927499859240919483822139943876441778911868888375496535566374552396058823361331575753876683040636331083537376013915446203889520177987969125097310490531398727839677931941427319269820168896919756472985847478210986798938189685296300027969508674895205493344259730084161830350293188286537666926535025633893411012216050004159452669327853159052743533656146385020078597623293230181628976382549065530651450140561725999194009198236877968464510509394777179597536009093765227495885949064410969364576742636165535992434396300930585655598689869891518380663240838589850741467468588862168144337242033870671918488874402042289434185549218165310105615632384020933100166054258083809811229637398131538170559867319615506995199185142459039218184345678787391538137361266312836251239819564646823447474063149250508578997967676650849839566828578864823570125541098051200919378533335670847598715995209478193468013374753509941539732888552502891802811701506935929999497358614176036672189928683723225513547512490484541433942877380150369839556341013155756723977559603636475218672417152346487200102689340216503901887815160209462224634343420833444603262276462659083163208881452928427211200668958196684432658195681585168343666515422510594388303870325239067276682199042421177946798928933726302670583998198490608803941125699408985668743843919061333748566092745055383728551903214516599821047847056648562015204813536186166116519285444440209172996995571717159016746511763625421386917669301654112424408176217690200059276763948367375826015887519305786500259853670032320535326749593539310767963480562158876787091881877829498157072167513877557336340922515295233493570458913537645940428656829220740310504581001760038950198750936201063441380213636823060063678868384352988896972103103367289079722883395371713378226102937360736864520096112852514944562593435670911073112830611434003871737355611656123519616085468481844541128542141052103580828601182705778228944252034832913772299524535473081223691987161821791762428470133522113964034346552358464218405416624962485966227371264484355288425137157355337898985230153316389992328241694905370011199359981823096399100835548296425365124622870940173535489949766268504300469790382405222973945587890927546335589125338134930333679487274474071940223816865334432415492660697428476608857835952354080297627282381677246599241535568452431298240824278149816250096891657343922696846248224458157429612000461810481061780168996080790431825329997363753316727254563008837399781197536689251073386197137992195298439440183257656632958220040981576612333993450054303467919690509126939305314443800681040934256386424562462996693402289330729138504768490950771744887848289505368383059945278308774009709376795042880953416896417271005968530636270168146178482794273646078207844792837910012117832355227943660537361682067697039484341968418002201209639460525910762203376011764999791224720717138301151662479281714344600354254891159630113430682265081057827501746781139415966229598998859913254969702663819089789014529830172246614616257809897379091448163712780191211315849461583771485978997018636285101805670873284518506373653617879765351227622454779768483681010160942052071008137723791055215133525267821935173341589694727503352588707684370286085737293194041748917187683959460210395583302910628785587259993896794055328753206742687511297403069722872389538683847669380898122252430670958089841435256423287139437956382049951798039633045946771277622411349848239534389540366140145224412049565827866469338888616887821840712144568471966849115263098070234705639154181608876093888911163736559085739348215016855795958504383037935179435282564227348782749377213897812577397775714048552702833755466294756547364680873398234743515033924028047154276987242482625242562281767324759045474493707630073904975973487366201158232123051073638968640525490954992647307981227269321199416789699965912501578763538595249605867072578244484430615375484050137009883228206388953394408215548484956508717904862191476222046604019020874414913882942455604708522055685130659155115970838178795071621156620605457911513853631442570137504346927765203634529345517097348582808268971045312795473141726808579392054065525975221075114701667078857181272655667792850255341050539686089634771459822024594854593978364520024778239249770222093754295980923814494081280108318574393721576059872857373449568859457602022562940253992611052470350813569799928706169916817449071796218067454797026846158322551627597962726921709630166553631886589913750578216597711422801558540732475850292676572600274582697908776932651650013571649054906313993010206663537198154155978608270888241233470497507423301102279628730434863762385766316171246565478682283762778503994474943518560619992566876959169530881250394508505881928680322936287328680416576921980475191298190410600157495739337144251783015015035225612134340657170401462495718397607428811162328034790715572611120905068102320259999041146107804608453823518024801318298888932618970976364456574469889736117020773738004212111985492726596055309712947773981384789135837061417552993308073003113788392109788618396188600530972070452709534129782616718040643303167843613910847920634209478185170472162700923097755571907765159928728985818891821066937351984290477264939548671792500996191454503929348568117635515348636900214614628617200822782919462594242258493247837299429958340092610302964934244118623338741610219021097652017801890051208179391554226655893239240958558238535831215800578441687402414633040598946897945951269486801582954179737533532635180466353748671987827475766179891025421193075417687799516266675636722558634436739999419482151119399857501594260194619518821332851680451717628860820799723643106626497961766922821103125303493145734194207535197605046926310828840739278817210977222042226249452054885847365348105736690160335702365162582427207881005152787890336902423548453768137625403601419940737554377319025376011576041436279484224098565571998381137007103501178528408376119587283021140343528010550213596787833904120999456800389209428172804766908464015508285475470088774003951291501146251329829050225542206491078039751869281287188626586123513530018207064435762221032406562587287043097051498732554889384581358707696350300935144539490584312635607581762453166380800563341813091324427554424009817333967208714430223433156828284168702603119834921154888745476600325506047475601291731158005048659294463597053873266722563076337599562956292765360188618734685521639872370529358454762651120138624188200117385521846305292590541991363179152743485739538978484466525765251948120346972789271985508784842701618612840936146090150968498651808944510967761541651277132960831676976869199348091581645872095483275736699338137055332800575320808983807770702132574317209935889598083473444184033822951138243366706282171676718660341537716296410736827385726406162458882543287861708728553054263475476116744251092439955488826096955299550740370303706048994096192252882286490692874407288298824449082651620121860745895847202687961122162311553556208329784265659579676943655739202505059037816574226613180386106510783560167448286801796713551081491959438475016224491482271617239099758777682600154266309312534964147352933177112388958283961689854038441719990338688657359453009932039088821588032145109425452450328529943578491625124524041536796888609677828535689244719074679293962738823431717563764797154287212228343535815086257274012036053353677989196418430152713131907178710124195638638719595243036937163963569991913834527025488886812521922967412227490253517566342558453088709370857371703553496036639668756735511349823562716111225700734414496648175244898647380567513331828296908725881628338803735002361573248058603765457076576608192711067035426472281905785435632731513825728307667557796992239409498308902330268589733295722041732151508196954623489479172445722712223214267846583252390201502035591967306624742044930999596145884867005139779361585479507777924536308713532516993904413574924123038861548938997134952442991981130013864829370088718276194219921853366576679155509700786123382132274625851334792388534093725824026702384503021915294078389822808001266737269143703173655095716768355563295322877883904963480579799328926164840272522344510374220368189318193947981116778983484269670859737237529743475423795718193552156169396556502019866583061798958128572556696164657867628500537449583791044363388154172789367894357739357165677489684736541217847312803738272403033474227502573490929403720230693806155188610893166922733967222290824164225557177133635436530005708922522992176347886781327345348232820734747889000519873313881795480223240623851037374550972343226366691621889695739569190845976332402391662605505189634115666812544954183712290252776306214488318654321713138544076715694545763879047439344419751599291790669101617123745018246100722060160716733653238270359721003641299151558426111774302100868203843203379794832379569625809090763897682937189166869845424076949127447607353841462550984420299335672365255716759060211702476057702337427756451815816434278792651155056267999828976243680881351937232343952626429273620842016894910656584801420030725712074499612699016890876531142135756068982251869583711023561001951977599930481318199135615533319646003651066748812749462694320930647730779986587849221631304216857103638254049911390729241230553006530972249667812106564147919348067266007874384578967734708972466630344613766264423677829684570269722868697581710884290685606563109453298338040050138697266946398510027550109392681915966628223189346052372420831595335679756503528571788993065945494762211178798081712240205708576984308959001963086394611186189107303787988843184987960734415523237880319652820993604213694718774706593802198106391435223004333132511417564009805059500670215857553773432998893656237259517043103448121093136094844979905300865344760922279958534483419333581960635188195575659212184992123556427202602223301036532146006851433198454977943176149096973416599349938111849231982200412832954558066244556242741401202067207651582828237083447906759842172369616234027462664322379514252376109612519467186791069051538021933215908547758031969101039863645774932681324580232935878179100676243333082210583109969881575921236552755593490934429139941618857806348456412140033371753637691680833185693877631526506777924635882699352052382824493265572154058626392335256331901316732040084303640349925503999780958055564410818285344964474080425198850410359570945357293275901071427426202146391475199165839544455808102017510711822602327477747299972106814353401236893937181019546658685634547103149068549692703865161973206260008598758033196890539221709661040120631200043737131129011591359737307255956080419916864931365175288842192161732669098476823502746497987820880931109186337470100111180826864700320602498513188985948377210551908774188016457895795073333117269763109599896676201109453193536352143955635090498632460359852858988952766509156688932995827173456544741243967775552303182511983052590368801218250622653312467173503748657370229684544557585610913527703080571881043578913634161643616539413274118563062144700520103443420967873755970397534580262399613486676020702768359401668943233875295237488579636829501714275354067536354255064203205837322431444779894049323281542415470145841706528284015335586829326784822104906758622480272145998100113151038301970467585209730511219936941016900133001961544779703630906751489806523351089083836132145217996034230546919780236434528395493947425386706721027706925955934402903671476591280554205849196715341699274696616903385792778505989400786193570172601509295654868995718581057346196690985733694050801667925150578818118106780375632824729828422083676898351648640405983386402994944605322963091074973732157416241077602136222614673854833613474544952161789840117237663155957746323447080526938524846708636016037022321719512876062887764133949538140165245360307318941164916621221691594843278557198557279820809333312140344933711708804061852795987392955163817052940841625101010023759079768744959223115042543302457323667570285179403290031403461008596346558774606656963636954211385963321686513948140187929709799980261314528608114215996162813879787492414102042034149312870163156154866142004962826433676060342073733260902030989361355924555059607494566149062112020024433392882605599794730192668846041641138526622946379442847500784805741848222919815268271575398236395858583506228388515372152794158668338878918406927314765894090275946298276333924732348102280085579952740299756306701317859926331655645143952406351948933051902838946418372328203092683131043011317383928280998418491477488155126632537398695798242804333500379248517740328448009462012899610444363867265356215966729004700688302372828559564478769116363017296788554581518607549596956380991624037896152376432030972689270146321581686848945219102704458894591271462509671424999549435420285701354360914735545587542263157318128408192715858597876492407545745735696780682906822039430814267322767505288122679500339742279677933005321641353422480506364190203030201367725081247542713713754258181422291243288622057903354826562490210957922396798422342761687290862692562661568065381876561015256571590102065577080640273294526874107235199678438945208804445619956637452641019133749523297891661377221352267236194651006610890109931304806493908408255725878201467380339677105276352037089200489468791415966204450390133894487175256057006482245733942700828942978314704350412798944589971664600402825411935426903067475268179908577382712605333426335492602056246185769132919618306754765151194781248689165727769051549579370463594423873099458552182875857421638601065151361248848539344941460636540153311155674883276303654288385481544551108340874186710389590241905784261288849378065091994692259791761466569018895882089042418218950530301990590162444198909439146692603049791772432517843527824548441718273023928899342562846772887284495553059279394898951405594668402312512986651327220491172895713982422423125168105358243199277572724276335619611448770516372747909715395480828632458575903787132931086494739539274114231031823408290770382047493623679236296969665234276263127861325727617919813477082249163104648543206480983194458021542241581317033772846724711636505737385345428837892482512774472227386376688090689542259030166444930600627197759354710760946380163154895903952552879618193432632181839086399281842127569726651177437168318891719448933365231721464659383305064966530216275418773590677628211671337508028183858336248253078238159407192299294523089237208065276422800732893945808603395608772013513936603241541491793141159036924221419522122922802668708906835097959012110063154103196207965961331826293310476095459057021942870261708519215661050958333927150480299773129634219995292023084132667313612017819062040874595569606620807609634816982936877906055750159183755891857350788993481075985280442866346250455473685144824787836254401206765689894892643447850400045128530996611043275849406005894605390673314601520231027119346000396570777555921597835802816916502394702227668357486477159220343017520685228040056218457460291654567564265136104881859578023428440903900499656047424068100552245794247904261105521251709839605652544713886228916962402282932613407251882064831545897829027283707412582129760559673203423684669969591856416238197038238595940455819719042591937132480397787874956440958327958641778821403571867800956051133046285220422273737765119184191905060174161169048625610788417488345960363675779947675351675035549815505357967130816748981255973693317100567201610815503821134625754608795369382119918568799942027413494959348498624875804694272352653870939485844531941510974816354202104437768090627155066373523190053248090151532232669885080233170790207265068282723335076754953857026707209183551245421421209277281647679953591955653286188850727178141964847548650839414122871082315233197732945890950953024702909002028627311394281455296743493168166879961301575539820817895049222057250912961060812918140648579993892554640453940455063422405908753582778171990077260821201155629723051691442338070651768838098375252619550811048142966838807093341422201121773479489604040088530293092070337718485148678198027987962915037003357797678079895040711447314459034029879232294656680266910806468599362667455010247823457283027833650187359770308215499573630103900782017508594977377234902881301001133412344148808485930464867105823101572673994965352580743427018442885565964566119056601739766303944042265255091715388785978305054138527838356235969168137456104404675489643958363501751350183269104090230066438203781866146070862867562761120225696567350463889750780814658181771088029955341077899824192322543105595367370499441197539904176265357900704000400219018730158911545661362985428730144007885533245282576314945591511857200563762873201584392401108639045497139470829333493744544236508040635509425019610059289479832549540361518688167903514983613006848251662483499694064913751104660703237985976641319763723976094232395001357255450585289546793631462362877228769866300543950074904419593023519541170014511914640489913690812036363124320612119942850008253686101754935238574476198595224348318468514929664023249024677608517763127752410412561394211152263723443822617784483863031749095927593840264358830331061501361299824576981121815450792667131446904181391197385474131922145917063844682693644491792909187130961197087665128997654055553808233373161814346422355905308758212467208071152250218829804630845674999792397820200080482215065172000241725927105777839823518113968032959558068409908377656398702315737206279622850203748168806626837044177444043577052373138148126920565537749470464509272207515271205431956913191505509610228064020733178274666590489370757873526993999078472127595135835982044990945184563522391318884411458523232329160919859373652096345565880541484844191620831069007422519968166085605843833241064201495351205577331021845233516859340345947573427007253000755439091965053533151167973060809665705279155451962987868038355366052669184089079592504609836922148982328857293719910649483815370805962952378019000774255369876704223018553126642329921416186664663038198104937181932078397454401675516599465478244719664073994182145106152450178133835896220065045303418173116250474102661757895188225236514308126486596876306534429966290632562705582415075002533982906650727072771993874183482441307483967480917598593327792867629894830711539207024301495318292678377484010749291976663161448466182327796272203924181124190017460242852893253350179783488165781066352531084864363373369868601914511305027628939669699187929028977926615591971336904514133905703590073268382973021416136677933216610151679282249450876244712787597559825680796123681720085511580188791327491407240384329247025260977716226728289464976089968621639457086013180559458492388771024983994026876632591869679318927963584806827434673385977353414787842059086226286057545281232083672889708884956501283722802317938833526688035442211908076645374328138509453816998031872571563034967411775374937762415464675851155549098736141639019104799058307392409913711080257191772287383949013925130006323918456245573278637511229115516324732942760307484867960401750808925198122613446207458704832351736017662213139953732898292909795833938670942962549239162233839906662915883180561552930566400476829749430787310592650644859437363208428178054691850113501955245083376694599930108288615847464301172976769460709358416779318164601655767508407290728684236124693849409087626326797791537031455862211971946314767182550920002028006455076918029945452495197986039463823976283149317591320419617411672849885227879406545020176883141737076341302520100545397610183343345778899958298260066840001832824772468001849362839118783970498286863934729848223609019160373920858458613798546862416740838503289125850628696796370274904633525897961764445514753964616595115013124450387798768857279347084660703214791710722116075116703710066492387948355020015018939451169712877770684351260355005648542048799653035643138238904950407519229659996604068431763247040732635718081981674494990483877686569907294386757907041763199163960217155040404324159866375865007169553371697315885946564023056122512929571749371294728261807383862856837626101454010167316094546370361314689737629842976542807832722760425985973444980629772722225644105764026165473968916481089146986154831579566500701865815148677523950544837159200936604932489030052223027387755334139531895696618516699870589511351749762372562056041982985333631729486386242976941748777381039032720542742837140423929174132919997566350774657709046433583292110631073080729913801429451726834565101995740926817013482124721284057659226933821698793728806119210664776781213454166470946695738929065754451623981484882233185276533680239483213911461421759082828161241753059042816829669401276738150083830644464615020248182457830939304751856191634544180358787276658931761567784955554220325011568409328705461303347865844010566930187863926144282292429522141556982345893969293058032152993076152795542192549825854538031524607840816680905423270602787705153057471224712916453378404502844786808460116160968554658622267750677017649616695677632866591746073563373303362295525918357950710603500273067988599983607244096162788078723533544395590478141094570413636186565484134848589930437976652645264163560543932711949308378740588565269157584895076998360376510368673128159872368192094348231564741665813508951297418836554213788982211883310383645792165877181457656135310908726260048095090244755378401372077494231482602989892047239484664406340044408369134711279906122588573719282801967619554168205767024480781928199071954234620920697356675885474822474637612207612639802983160916242486959648773226545077657684254249415408501092505779615083611182268063111399979197073112821895126573273873315067459394063464280647679408919479293076525160342523404858770848061839756992146352035928865045335322547046353698737320554988246401640446416133024783220958465646595601596201420612170774228760353275201592225640122653266973856943221364665759684723425298665499006119823233758307648697955953002657468024716253891553045879594026795594322350964843536084215693971241933768433005591454157784339311694931477076977708989185318960264247550737364273637270132573190836090664860289268107072066372672618793938296742040035527746860173925606956185418240102979840747670626314840685168695944369562928666961260661497015746080431063727790113045652017846607202408175225209726936208895229897418733988296078361648898783109052829930595692361814899199638989240141750699866262732603550278910179334852849940117890362761117120887932174553680825888872899635472056479706757560283844352971586528920643690162813071347013406539464090734426050548420544468389377017887182690807361460794062837636136268159610603348519093763254029523708613371876313908993278072118362688478250350741666714529471958273118700628314894835019027574466601319174798823222897909236891726804278899677717182927293757314114561705070560640626683890974277124553521706890286159659366000132001857405508445555621914540700284491464364071648983729953510163030745988580103277700486435625818290292838880438079266719814848058861219006344452870141469948892065946680419845975491438255380343321071204206368516724040919173556980914995164570409513710453898514863110834159027322289819484638497135577809526629437033191486713171544369522789610354575497393398424142495306956902675309077297404041477209816240108278710165299670830297569880314125070880662303891003844576022756034428124644696393019381828820279104460259521186513234074717149629587430174423198088809001540206064457702599110937383115213202577124451332793115942961497744506214679782649957398251963812165214345726423238256034642414701377098030368055378089225020391019611855670319202870248771241954860892210052377490006265350187319284803496583090282195758893360494117049254091938755559259143608898091840133463791078387118337923673326331311169544852456748160217197530496258175778451575323836741061341508847368530412074766271568488855492833918183678398478431345915323287728392918757887815520987700108860880066220460003973148716807260144333509806954721230587117159080042194891955112494944174672359366806274243291811763038492200760907226020721236644702518392755465430883750721233996945704864581843804614410042926714810555244640170517335400784011397702295862475935600584410335270975435920126645537723101812177997138538137887424855603213814945294745972720257405508044238798223006670796167538644672602618398872090053721542788529071080365258289996529972456498208472675920854907518547490477714993081445089586898258766063981382898506909848418630362020518023438585125846058660831463301426069876221400517799202681961663647054697786953517449756115725282062996861597081554819141273008108015414563467852785469558819967676421970018579447178894320130802111359161203461761292899028026574928507580450524355333535543944068608865094835277859430597824663277469799828333159949215088866998225955767240920504440029546429984702467614683034196903189411992018891694020263966290277459500593143281819397166469053426305002817016924600044519950418568934036463394098093153120890971336337961204399976131751308716637315401312660221180272113830261567674611121797325384372134839268227456603498655324428233626230039263596913129146135359557232182467664112565356070448942291117117430288173187020672296566873075541369971184567010314938151585813122473270459033936074469151649763410282777187273666577203713738835924670400433599773489687152586595878801673522140196574260562523116726754788325527390595559779121397784185887462848621549648057689216682839338700794192439782738815900262635792498697289969135271638428566356307481505533851246490215925443425303377779265787054575626897058545181773554780727038655383897761481237702672113411481143320426609236789607301904138865024905966765297204477905265372244020536830072230739673633164279915457583475803466747298377026276642629426914765086395493006851121686678216146110716688181819414909455132679811903291896066319661842679530219984918909106181219647248611264619459762674920914043889494748092350328288320070515671678906241079856545154763263388080004576413058091264667447075603540679729887485704088994516343528106048963338941018303001909594102870732928914980636953558343094968459181050060912531353355469900556506077907314816605169821210216322936255494098076686302292038689839527612766134570893572535161167861125394232242248296425451162610622531377220413415758387436993100069249671725814861042196098032266094574946487502698960273205578585056971823673456982467131838043394215361384394211571547881204477498557967371420129101774348736165457309202510601678898825544732625032574169974742312012547148205996680312826029583532126577183123255235080642610870384437090056099777544856997354427676292362902275758563497371237834283364429738020713653020972754585751649857832604586480952618954138901782547554521753274706325248476497948666850647938266779923884905246229522475930151624705812498498126574464318569622990564391677864848689870372376265134302463147819217090411526585931782213693793029000437243088927565617202591031558838930131455961766829725055279873276459930436803634872436428161225983852790906677523684879539415933111382903124385322239912976576223509614527975182946994915172023390430937623101148148900514171452078482687836307166294640743645585222452799054641386483072421100640462790346247713428231414320685444757507785204927676694365963553485506841155888164175498268151551595586135706731462815227593725429402294612335104495081705822375998675016052167077594793322390335844710345365529816967208732929279145248212969390590127351588994212043379028142554161650975872236635998596595380507116786271177485300829427967364948317369689585938712408470326570117945187816004436393514139427843309124054519124475713850880333094163262600409028956777381204372456024246909978382978474298860031148827867716808019187396063836783964709301488835211468724360691842760906317494213989127570411650378861137819432501144323922283087248480542702309406113206364412182331529292933267932959965996196243074655894601333782970842171209291170110418201608664065668738660305268691242362544603937797501272164571528720347034057300944895197016470551103699708672106460564427616839167724841671775969051364553283587407872278853397265618325761562203907454904590425642898021760039078441408161013665962691052674036743232400773312566478053703882073409613558594841521396516847146852303448108810591421427986310784682387609701623937789544162520763686873774450097472174431664377676361391940236930369290687124173484358170321706666180982347432589042074120063595960392368160552943553889792280690332813405872942653647088275599082422843806695551609808662127547074919811867851650083424386886847357813666554658421361210873502856944046723103741076575006347433194372518578640915101891809216992272841353385156672958881192673975633446741499413741811271197048258875909722432488890852348339638867475975911995025215264636845522604764263667709988883902726939704432305331679249694562744116956331011544390199420656741338929897726451998296221969895965258339014554504059703264483738952762984720393905743119965661937133592494198257161406877419399563994464465750585681375589812403276147850434364478197358249272424514364880153333105711111473877387681405715663938274937697451664563810615537851692086686998961832331024610671858518451191460832690220508829015670895307937610139159442032061619707030446713304704851435556081032273701930216932938059128884430842268889928400622169293138109945669705571838317440226664214225107312375736629378819300474268826230866750780016618469074885443292667518288697368023582923772768875283498139174182639394538342666469422153070006485644204258190283562980050601346638474742672843620199446518661644810151508419257333089287442785914844381422577207591900288948888549660020525522141716744048098517977578417188845063914584305889877764421063734011465514545060585957793587387445580766500650667401035503014643528567412939318154562457996291928158752197975881028877477990671711712927284295814402286166400155114813321802914203482254375111915854204043617135620159414056259537847557656728745004651737282837592227384175200647883230678363743311626307929696094988927745004776349030794151632962235693182600995679000263398476419218047853852704952430555605297940648028478417995359079822556572183338456239432252605959536489385668796981097848030306722963841326659352074675956273105327976964141591424999123928942671843852844016951482669492370673134551371105913288509730369477007688315479277070071114542273334824713180763782626954252549374938149351532063016023833097343456086927376983359893169396014889098610043281736383062512424281442436951506232729791264828312958594687894558933856997182933770400073452510127286782993363987862070772269975853683752579182641306872244742673485797953937311414141858169056649446179523353593133835025773564560863303905715725871971090278099355076769925753285782723487746112480068591225794965100654996783285317403735690727432725963986112696723894423257473196921450952175044811453322854354594159020232609173720955331811255037674480653586219163497535124120471201863872052890022715270438965120244744872345979657742006982446875804233551867717179819449695202582643908811230270197235300454247080909674818586469992145391419167252919915639256055976973825643197092230449133295796741431033162818346939728998924824612141565095124754937141495075604505846994655553637235939171845007251172325770129269200805602191010549234608941224113461934275578192602209919371537066396376534897390287132156722617016081070731085833020334003043255814676932666647885821533992874877153997560932672249787659815325231698950803686245076465617028609910999039395097899934678425538876109844613837353366688174103222210114694305695220120860705245680801878890094280624490261302060604930558929489369533490205262141350627368204938158731011646242807636942979465602913651606945499250531149286564325962888886240883359883627822589406617006903546265414195636179256371373994366630163520465525210397738974577256643364185856189554955438555416882175231590694356694098871798059635617100627011374452364413155132822683187233822355085134684931318253231961465101790271953782101779055063424446307324999174376140778173981318596153483097328452868118143458938286951012622831547300653823129393654928476719886605019918886817092447739450434572005362463984489454899797795305572781671935243252057049701353238204162684971743943201423690707058214919434876835951080369877963206446356396123542001771498300411690109056179554272090082994203355716030339353597952232485915775186395773080048147878887894360119082610128968418107687869420036848334224765174854111318886029685754743364186159955557452118640556495122696730062785523513191855984409251283734480690859500097224209052069445737398743901738665287180642408695215657238059436365141211456087495139353906303526665904231306861018724952225775636942043341654189484741313391212502901603111824857412486626803492729444346180239728529693915070474369461210304793855496897071561095005617755771710348034852577405738197882134999144943399935629384226233807709125464300090696892145019109958767586630451612748436434968572486838166712258355950567091319065568407807721847936823237004504630392641599733919091933050684368122496748199636489277117778811291697515877663320974899979367983556502764296157215790021120731677907049762861283871154025709560113589392607664903573705366456118055044056973601862875460462119762659362418034515873208266705133794865708839510865854060880155135887303256210531352201939259572083293724728911601228332722599925384092173318276506327242472254613588401031404385560287400879150483237401637216366073543240430985563439613289553519271243891289887182643871405572823053995805495440523629288300326567607038534151244242366015070900527677430218989057556458220158496962106826898732324128842074010675655360206437412665836658473853197747765763099645038954837971109355293094964925010851164062219755697196990938439366265425006878167906535569481689433349452848184670674079718508022202483828086020441172823083473382851079883927854592508445515025613197110137786340796775826476652546814472759573653376600752778587157881838736024287138196650041168969601371190881007248415932455165996047564006726827381933643092402865701207505365007269883660284960798959164401747813244596389385287550252748139691197922069188058092329429883432247484822306684048690020557336477885797947628257269051270788092792622637694937424509786541698609291175302501422077256221889289885924814707557012845174817616901982084735465367987275764978451283902217856273022771504921729442325424082649725382340624297719651868183640132952653059940215288252861937842282204774194452453687268717263326654834189605786712914933747028901680869951073523854254257094140104188178744288248275923492367397677512168043487005681574048544511176934552867442969936081984932625669432558179036497074184536994692008880875243331019856174137195122559604641148187879720782548284979286235890392194527962051342370239782893302974872390110431876604566106999549633940493117656836013513195628339314305305034698795990834661799124622954756807892980966021503924230695247558751748813855862467515107498847926120173178022859578664533096446460775305108689792408735181564288700184431533189562856637298313560497085896463898722067923865610645033170646949031888331918368781611232836288892602457965254784161746162345113644875385003318005947675732682471588942283657906076273227771565612370333861093360570250053467912253407606484312246346748787614875567052689913128390254050087351486669166642059116734815451093087932693832211020158010370609637969848264290931715507325546561809458716168407677458457571500212734155035573508687892290668459049349072285755396455119612693775832557530499574238988606599481185037273032518363381927975603511505413024970359706115255617210557418787393525149609262328813107126233515508357743067182550000890579512794636896005821859391251241354488192244523052742000675348328352980873119590012501930574777723443387188831837134134356495821389461986449181084310676336369513329443091614730355154583114707589810849081960210076326718344754480050443295535737479832834750813957289930208814369443858884120728530877703584197283460878742985142194576831782856869283061267076529767355066556392251849890125052913755501825318983666847691954188651690081368397181138584035000212366008928262232346443661863104782228305218916620334591995495419416221461983585034172181446156691610167432188409160173966932850814836300174354382825258379187921037232371878513868557593570463430884331514939180957008339886205340543020607178465062913696475038461409043256610968691290894578730188066019754289767983536941429529810434904194635465103490031209645163229440071320518338516799869676943776421243799190738580210042638259542655399354522901558829569904088787237407482925806926477024559339877803989677610130622666513621202265860187386784925935949506894592232767125472335304816331020899305033203993534065539736672718957340260822190064265124946786509717125961633387096356386610000374226500353018455674496414355343928229108248342219484424304803882344419000673347850541270514703033910015613273698474211666375710846988531234721422994869729353444404342336054678131427829092694567182279858499504734045079647225108871684898571996116702417692027285600153099805583403892199211019892071822377268264441302652720491634949794868598660960790331987424434889815653393883707493118563232523969146371123526705332597073680592727090865643022333954068850155513126599587066079417472615009729467718998660375931796204641403869887313060843965152104370270820515552676402449330082126204441454265135626152796287534678260006258959926259189104256809088483848545451591477516619821711097455854718280950764324395522261887598268817985866231942663622068673614828399450753650646741560341735868993005538811910584790443137840200696171849545024067987031749676111027362611827294689545723753560422466648418484997213445753702882586373807791451704961931016483110120097528543784236365954802302292147775122358583628893219386470842271664671838437112048065753702085185357231656467973954561106674925755584976938656236578902745261515095350621467426367293133054947650909104032704836880560418681116575653357937305116018281926608993038603115844243109964553604105236907600322651846628595522156968276344644066972518509706999655736613897493474042889766579199418713757624067363667299735675006200651171202559958659357524991556698303311034680587710413436676695325758961728731471789358901160964277319428035891745151630257797907062726782490902709471584072781436565453783017418528177076437324750643565167556654042924495920565217551471471212210220325556399951074910351619446202472379067075174036642046053134837659516930301615806146933513789520038304882258676565881083150877076623097684858492075195680661644845655790781178885568835903394775939633101984049821282582884857301329324820157241211563063315364875622112037229642290600568298312283420458746444981649199658351274894377304373480601073759815796768362094738238496715290934915557669852040172212721931750404964276006955310390826646098387131417919498818579673080335089482664578478377593898937554923375679015861902077315938628101236501804535455102870488363335932070551705476341966666244315283804790615260030911730743200935786153717068894129812435601025410406577286826593763378889847490440123178441648198284188294050677307430449745589202164208505621098100924715481052126030009544679374718169576030098225627416413631138273131594022288286374387738408078119469790274138179909791362964474405590751655799670292495710612052953917599518758174390432259877114204326831648702855244492911233562764915577428732184413313451492179028857485131748671208397191504896690336017634070326999939072579356429620183094741723916105926768858153079119870101841590444139705066472850017771726669117686628789954912643371802862154211631636442440301835253188712814861425825970488081573614526782258102678790400180361788548075789876958925490175904880098777737517975532036179250287377965403786125263350665024389094971867233624539830754219050423346312150000650403871677776137409250565228306853174952023899704423755292441158222483928960078442715935636102697932871502409431053443577906479509552499559233072562676945239653527497655275523044701479154133095612267937790795010117608429709300588700146811852531206587335858440082581581959271376861909200845268307659458842261773808333215204565659981372837154285566172615325446446519031246173377492079755007832330752712741488650895206677881118811088270835276251690092142401220553848803291286419944685774810099955703859733673657382580175117082229786857964834208387300711402705438001345306734589408069077861290475229263860832314924151772664475439890172690455113797204551664480294953083900760320776410920753854854414286475147973871332893233613129769192050276829868577449746681319079225005968322454841864346285319987477381163265833673065946110849336780000158392108387602640556933709006434984414714650350841910438829666816075175911525202950639413925348480235234124864630923976154485077241358297322448830768142576864994356015917814588202174952629683760295493023429776140789504492665594240783959668945249799284702805672752026826955401975548296675853252773982641141859445076155509165980302639699565351464207099420835686917056890725125959611545864757740737489228303673005971672556735361306149153893272118492903139779836480338752007810942091937471038389389440729357684370530626007980091047511767002304915409480016960484162011581248982264388597860893104694104901316759559504687779169558877288516665873236064981701619783891449874141524644481581118038303730700427123813367754113355234450493091432541510159818479068477864928465844605955249687927728670978022894424136397600768314541442023403985361116545806669573136090806233574344058707635478397928320113100877284040977005781570653361775410501402541791166836404397547098120574866543175546621852193197801875921503281863343330761830791316902634240345367934772131979741806543732261544175863708072252787885263680522126962680838215873572644774698231775736409471684538129216717278903299076016990473256130605289421821888735111660791193098886043931861640030113192165551232443880073502204035265802060741367493132035488559985619887770437493823677740554705269225120328113275705441205276670740276875832422514239568803260137165960663181344901038220036803622697319614215997447278778170189750175019417068297254752459604065752992969046923854815853044254447265185975189616464665741212985317161818292314606071321612189518293021894449916362052369166629676460770501514000349489970105226159147990404102240352905941140700662001805539238030138182211274149650351716960215690044820860850934166871792608156453860283257022280291981965227415865055995924650833360117439348120349368381843969633086838734533547888882984850652775487012665677948929769650608312559641668162768016607787120990320344689161637811256559780048184254808224985016265748330320220628032474603867692855750161161645290180187176598361620668037936939800275521366030850013936170503951704593598436424914441695860814545135141543571331212564194202774063777384411739679509958493145439313528474614720177903787707067312893095495686805644006860764139907124258314958291499125803982430358917417170335692861961405308777043066012124105457119772577290341558504054854289791034834015709403368679497505327226555463546736769899475756617255242847984181064783479985612647208394161515719632182705717808586053211567407452011441948620748050095767087386334047822014656859409159700978009313429102376477101266269615115827033567165172323224244947471897471291399317212584366230024898459007524148049247299403876206027408343006630706299416953635042981422746514090172783479478270858522832273008686929669684256499644685693224943081620627083651913474578936499251504401536273628240420088968929102003171305257172067038766973980651495148713185256934061552986306102827604164369106992656330719650747546030684504354464247428660338740339599992873845003567302115542207821483769536559200308757633933461385252148350556541947878511376163714110789178607702635179675386915796967982827610436451913533024246905016065750328479784356117030223388239145967492019931111961250499066631380371024154583540303723149426184191675503580941114306996742505127944442990574834900819541261193494205062578454562641523839508940689316739939800157835098943957134461374103964786314113241103580531851075159547040085432949311709677705925954077605300061974106876614323572202629026979085399886407964778730127908539103108220584272041200715075328887911943887326802809958009069424666728133715671768833744188003826500096509311658254116419194397799167805028111752143457163935455696606976876152972788217070302884711397526488563234738917164759968601857417959431392764769050099271189235132221643061447501401641514386114384338834159145405261067653633705661729444276109846984134269668971745258873021937947182024384761726279787144370029796720214046226913743633612474666805969110256327161161962653445727316001441863609518709262189913512247714732688025248176972792680129727267233722630168833414254437224608089072848107157638279844006277417656540010539147214620848539231217091636847874315731053476540204008699936861804751799144146585262188583938133901918279439474335452329312917583332210636801839785311958424621750013725915197320875526162948129795522791583840380520578250767968102839815849232483160350298472897886592416776057276513926805351544571980964291359352353317036993907447935487882914597789095458948803220880680271862227366189586235357226646479788502850816069695751728938560486267290628059755177089323235044713320833461219288566618542063869021170418139496404231009990273918871074842809691691119860011324188916519443098764446841721610943569914803134552289939105060243120762507374903720623577936931978172240499577480195439691052862323844746083991847913618276996975351755485839347286605647459732237501834590049357808663269405472474754507260615085464844700336232737076836114851049751365150744937512169747877124989232132627416965978361814983776496660530379226650721739015696268641071933500455410874827556276274246351139380295092532883520954123122392761935340120120844780002327754963175169677370405371136441036376818089349653366695902708967652958083674791497979248050133887884626947849773029155449751097858448097674265070433767662680135268950698914110832913237964636610460944961208119514470490187192810832626014273516248764114574137430281147446804159610523600943095664549319128836072323657701689091619824219506889055797286648264787114964501095550588409919610167870784289872586542021484756104333378992429807506502036700069791819423417652589548289237686862269670742406547115911676481474113279965363153264538132701659866744676786907918822705564182751665195213129043714095834400605883428521710101520414598418952918461109740804443967950289112915841736984405066287619746080468715061663114262788681427930684521084251389824187542307556323111445847943784089269843486128117698425101058107997614662863333300989029793735619094489680718828426272985992700418974184966646335002109760268853112695508666256103903909547663083820231219120606489371640650365280452279684503332369783373606191372058480308045092551433340347137131158154704620153768496620852920447330571212275738287968273485118466903092715493665996105257528028822913510307380861199782073026597135061944021052949623073296355653657493922008717674928397973706383314181636369888855898509343441913886055190004328955954470129482637850824223012696795323186952416611973000262047126132802667108916129804755465116886531402569874482878600186093101606563267630411636512782401742555533358107092014721773199166120422878928279099851908324825050671260150914410437372890731682762801573499283713976985975355199520434674865842513763039079417492008882339413165939243481750367243424468907592200230217120795454761722205125959430238784473260840091339881280509922344430455100408125818410033503676789440033250468618316621114137080589664353333726053490224700623547570102425693833654005552042590970224864282376534171079432550515702717523610023314070602414416078383157341430048565106050356427739682198147620957275677491281303137462808769854701531255855619412671068321760608625611065107258874046557786782546058114771948056594373924874045624273822539725149224880469788706378355044399495658405692951305678879006956905332611199750380107824406167068417158736450350209920151118394070238801950176320970100990669719188466182723701913932075058175643340308066330166034214725272386108357570314589377518727171468049363783918751398141991871403504889653310180376780324836462128242608377018264277059480197787156518119205313436371130754781402617923329927876904513575051851771031583928360942198677946453352284472170636896341370133520235543487957736617291658636322204506456622272238741319339706688757016353871937886824360674974695131535465655015313927054087323216237933651064439257655229041266402009609525374942566303600235779245452585149813246996573884543685772201383881902407446201109882883874515170502425867368376872816333951792924636047278311173709869204014834434201483356575737986477594734787437738603153833033019721945160064139850099375194920789380724715473819972440733878747650663357129172697056154400666906206671937642953213612970811619763985229466563610961087877067956449809864637563255690443417459918413785680349088109611009777325266592498972486228382572379292215087804199459711291917469519776838379497132786591125268179717978575547211861998243301941855172047187353908267721394794351225834707455455893938073242428959764703392249046797177188628728942473123560939828751084640465561532987689199449226103315117558839679003642796457684839214062641556105804023884514915003766104424026652669027318313291701249244835289225908904146372288131583979857821848968765222662380060486275176842367054102375371469032265053390384585788528800317367356706804906828281771995007909925071674313707374319034060276049240040734208701280976818420916571532427517254296624569927390522966233544630297329312965834659601985001463522003920963702144158945627469488991450356138038295391816365363280077291082691374216368983341117898301760724767710810612400836208365839975655221354733952283969820403177636473950906316932334457805163585932384494787919834554448592607226606957507418658044964929878475397814280840528454852062155380830077645330737349199371517980276387111833947847921442203804838299475955607110921617348148409095519598396197057813205998856058455202870354643308875228499633501792305093213834834691965471428740024095859790284272901681985923096596499611545777021765122473296720215023513428469640797516745096703622601041657207392273857147821375917231196399966463324441456656143816586618258517447531849106846825055049100170228314201831415134473277811871783153707636248655785030874883290235888087725929078148783416145310210795234957477651500170872395700825734591569028743990485893092177278576413899063763985286281973222187067165383772072962830553990919355336436719735529245182853271841332133396933791691107067655404956042720728323110930289212903957414260745875244288608895918548087393738944422492536386259616378763066068767513251966822972609571205055736911434652698684885441308569655427016164359707998591356863271513128320781134852386952856221587558023821238414908558629828561191395677024266613769436239604654385820407645600350780092562237723493688148033940415860690096493954910403718389715866743490273541979432910583235523712444187594665714002115293860893214681907729889909104055566411145902177347200881237218638463672635190730506396703549204327679561768471129303585431620004184307923878311525606554434428489986672369827820816804951820844279152583393954082019365145584976945276887800847590431371972685744012804951714292438864149116899184299879194206531004725485995659817567149834828317325780749565141288350306202189495760546311379971580351162179628033409743264424268928888216752740672740749623864684418570806769059990974203938684066736241974149728266099919940586321033221604765205722945242568529081920101379533886530090052274700055190291355694505825328875380901950212493482583728020437603561886316499872403610946648177542559294808088879645792114031152115569269831109139233347689468667599920020012157054631737086585206447310112806162553008050656602548469362672166283916632976624353875596411878552131281098991173700872738512503003372532020227469194290550642303209506529353599796236477511283791626482544232268034968030892768662894364404454158237495572201318872736250928083049821864204807345451321617743617878038006815025087214517647220939953632988410024842774410808039361917999879626474160117440766240752115650920721613059653428736415466393796669856421291214990367327013442992527722761609667964272598693011555071390811006512798502684189860868933204798464651738083297688918745101864926219551008641110445305958553725156356859813560733219558991254798309012089617597256253985509028248348939447454028454160146791683786908791025971398997501761487425613864611244789446123670072295913731798140104315396519629128749182937032871704182485261189503585244188278834508289348098657568727624408359354176158502203305847502975098193070555155223978348707292812968499175331745360762848736485168069231096434403582081526426633984145656338244771995783224619908099794891953046750192435568621397364916135999438909816095884837668506315914865108486593128897395584479267975292687660734828666689043574013549014304212530264448279480310104693950255929490631343698146752836530957398859828320275311577012260853920150793910749764943329241102129683861479443542934805743021729597018557747250556872720936316969253844944936608148010577939462905632469507930391147321639339765769091412013681250199586790925128248388576596675456140628468363329503797880654620006670641360261921492332353113898676723937468351996913178988408299990888320158518949203172804867593110508423781218617136400195381704250252275705131989867825674077031811407304930631805478343178252389246133245411207168052921392866694656436202452231099847619528667222177598630959975871519221067237798919902147745656085748069113249364815965789512859713218914176150031091286734738479444796082665307383807799646265630848696734715811663929748854022885698213378749865537504399249066412089642524982567458367841197634786149127915539634466704841602191403340189770701031872385464060968970990052537081175743950877726165135833391257199591343268030516819434134454063283802006146533248297382700841902944771406873863645466733794632757401389863646026744804872029778076816175136470935366503793379740158788129259244862160071446027631369322798944264197146061694840128774016956007249427897413050443975934343315519655812449408077855411667107404758935279856198330706395614478870765458147195711328337134959850774410678945756474590528162719776196991096369164002502578397726806241167854761962789369107395446414648027534982437343672375113045264725584557136786473811845053488511359969675828538361036813072375275962348062514010380071505085379008123105579495296741633107023147628025240864187235101884145801959980996004842959942849739044019725527977079219952405463771317664748728064292829006632133497743185316266528606337730798090000907914620662792901970170648891199137278157303816433030270313677080026220020606381747008261960143918352984527620127096257003041878085252915564484376920922621278186553314006593918620239645411510264751151406482695117424839414793458751796931261207458152646644442580356573858722316833926371185177244594120388228388366859600819252131817490192257157800421171804216687965149239805979245919318763958721275952450893693641548561796243515953544748172034359802528066978603474297946262211658062742054473458468685120809505366661020082750321590976728577729845707538690867587398806735299328236694840992351446442446831782322333446737490794255701818983987879045867952937027087164254347872320988757450027935418568045153303439704262910823956657443765664123133169160218812918009230535513091475744784788620136689760720766170765455866511961612832203819004660528916060462858607981710738971669841034808547915555466919666721415766330551720858666352832614731383515568745262355302145359553073776538172676914774156115397524592670488194878668161030821535006104249407572184429561999911240882716577317436129719994228896613849191576246647790104584195518877543309834690075069885304727931321511780618161755478617927567511702145891239029130833832659765455947982896225410907863872047835083742061810788178364547187803546848416068018949647491644480723555061108660102053847120497475266102939924613405880864185608765334072745758548829383530042571131296875539403215324707106997200231414568750226585308646203108632331679835598109609923005863349419309426274488087433941986699482817439173608190827490489370297212210983199104698796649729460714466902128277381970868490395815566769518420463131699304090646845817049999413081857030738558919502146649816106248937445195890260955223810918217432609552872164785036354910529154683901218901890883998314180041376264826458816168550936821977852105642093248977641628352743096879749820847054730471745351456554082450005873745827067531812356626658009176403350546952787475637164685462156266420919415173916538757885928241725773976683632350513242878785535752034080617121307173569863403011330095335815264947598105848439473152383180027101334984039040773718510837294053797974332241581867573267751022007505350979132609752474349961524216177705735205162633236885567298723165575484209635875833853659889213263656036293626904057085240476605597345561629870660956750725004428490900708501555432947178074027213579417760987760951467143242080991796353516919881057803595080220026469639359384951510519170033354905979190055986872863061714540988307640328181882546950129663591962745624342189058226914242123233823079277515797268916455295484945911836212323200872670302008911141417845603120099722354892460655450768438828148647780872381531645913099197397425888577588867087647106923315913759391798570927551356380515416080887487800398836699794823378681861820729462184285602717299220649189350389678546243187182834990617233391498194950006979352771636804088345371838609945137218064220015838120958745109691685795835780705005857815715403743447894456148711030656813276807631419035515813689063492315781505725370525916293751330749019337230345044993205130658899534669293454720562904177720218264923149180991402979528402866123321531954341936040104243842206658232414769564292624507440071644343864897420993689059494752316881096963443977574610612857618735345636817949725896453290303709101551166504120867933411216458223578923403440678650680932980899375263673148742285790873183106339955233189640199154424946154214449847743830189638906189796772406305089648606525956790710394389563180381135294404172062184025378920746366537792434438328812276990031263591057813543002274005030791551480787790413709017361094238446165696584266714987238637478142637815616523173688045808534395199004712778408163743119179650180171846801221162317041292699393215460495827156328286777516705819855541315429228982518740597249550966481300489642876200948431870678350248062500031749092997553140911469485584970471151373801795757077600918429644033518543032598598119888005830922207028358602057009736365939748534606714502302435285652078097307178092159795432964401136537649467093413287253906799711909498787622124878456068437429268081902706523025466319855701733645308399733209660589336362591072107494976781566309909795675064961261520250365591523891010980098454292626634313592560557719110456758479408164331997148828664060113142995183690783799217661624315730288985501797123708806508079826932243764575737450212934799997734377962241552143697456852721803573716041566076872173756497697928686133991748389465369610465163858782747138147670064092481675195025241024924172009084289221770603234635557135435425006259711873397214636281486105410922540506609433361602579736548624943948213267083312441010562546436775195147220232868716054105139811591214942773456650299546638153790802651873385957847077739022178465606977520416096043164622056002500641806747880896585220667945335774937864608258332749838110454725733022396528927183482558363145298973031866127112306204111891341099818646551149116228183428402473888577974525085228082851686103518114372633882392582282138731936395338012640563958138667460452651505682930813835810385383898991165470857883973801284930649706907809656598339194421396312763153386070803704109932100254367643154070810317117512443417423930208243708414347381398909552260523343846050156791834432502946486746115777821322936303792356243384277986965427350754968359880637497835925163505471685916621592971734406895550191030284384584850518964106270877158784885937477446396975202869599347808399800843103069322697722842146985729506242235383814875526654940901878614591017350580820849051089229480186687910257444785490640549635562331010564242880455096969058566778914268916521220449278499321234305134338629161400808125211898022993078727212582646596582676312740698781239583031155418379785025712986487987318998712793482810232765013746489825781303620423201080248278833625616087156335560275336293819997734363496605177325049109529081197139256765089770918338138516867176390702131969107199123500774303145958784697786363208486985920078664464749690173323284122654071783297370891714319350682308192338045675069651963906848207346801502245325951873183502354123713354288583599352294762407063880516720688639048964022735068798827117233014381527271643548483384013989150535352007691331509778428295046120948898292149831334955181618879417099529748932572654430030250733575885027437111022798528936763120512651580593017577218111762548661982237022236851155126099142923791501928851513018037392571945685130971454731680944753239204848194204592307864605107475275828659987905438582593263140037504419516491860439442159821630464907894659840139957854432579359383670157198537439496859772926640196613032313038294292148033658380176627011474003469978463158297484404212734317141566194307537178002527925169852949457648424937202247949768572755069417241187818523943093873645798959615145218361545200361750135988821807196686912397074973367882273942727020961578978177229895804156013622692686295006605701497708227545482108080714181788377693678237978999513411525070034751446539855607113637408954628417439797451279713737153830254848639740227094246054051047910569281928242633809696557704235001901333103087769708457223998445196009012449805941901190982735461988721752910137846108203119734802355579176566843364593490140298553225426568169045610789167746054434319402298024001035156278814710945096352918193535013516918652994887627161404638248178573982937533735348880918187326160928462552304597699218291201304012113999344035938644397503229632765209824298155467710981744866838008851944930781219268407539296296100939124514094203419512089773907414448437057628936012561011038034828177125541449289355475711019661016992979900819427548129110249666514208598784185156421745654342374506206560914593692357525178206022338331502367457541335106686229616654311011425057209107260873193251758490538830542061823711322673649826544526291391741342038906463619048576233536507192400008474325866682624069622378363643673157707869984898811499770722854375345350450156307675876772327006001588547257087796957318678498142054089113343025994488049056168844918994143154264498839666496592583066963146340189634077193481532149041327557926614220230266091186416122828142007459738420831070749744246976051930200414581982643765580165870379284792855654737334223386882170217138999921846603227949468978657122220917155151455729765710558934990515864657790390459716365988416013520310289575934505985266797026057537472111478711652352605239278772638285713819030369270295851418151887930593341596044909789316716549247463134230188729147288029809643051107330189217111782052693324685398815978315654695799676756067981633169293803426138283729064409320233589708469183767943375671979544751662431247499011110956967187819134727865071736873064561912539114376635405174184979020680291485601224013584152833187045762318457726720168679727491547533598071208618586156184145756458126670803937349381198605025580053450451587282625831547377274560904082488403359948592768215256512379545705820868189812653843888954274054133968343219051754311921691636353392824091776830046075782689754563577496967763368439104427961938320057269261262985703341888213405469201991976545851352251420437739105652941508820596312309189405983695709019942391568791803861853446938821449542533665259693359718126062331063597678125217884119847577178741074489668724676966497956327986695639931180596517137131792805574698174847707404481603143001851850968920879640307491637098150379915158364332277348272464639474671978047581780051244343610435908535541925501524205419724642579130686362050447482626769494886557377931204222963644450334950822893151986620849455806369813963998799203878239974335349346977221636499458204551265558181959954234364949211348589550654562028141159194225557545335707853918125116233496300929035617415213111208942307344232294534722155154467427578200876018238385923705904888378833244442234748424440087638855830285483650470673434223739799208872989746175892094226901709194799408694457700455367915747845669469316719985685039905343556369262414689725089107293347361964786667931930477540463840336253640773394539328231093695356671782424216044183017047557176977755737080808451143113455284622657772576412130107408398302128122367257957121330493490632555979631426872247873099495107542376176754461999960157020384262328994055236128327173888994438869301098721755949807504893467087127725863229762820712324924426321274426286889603897911731435200155491673385945005307688355165334300643848977780756473104149775663656722136239752333000991592609591790187054938487711606173764011938888886927759134370206896593807505991041640216467859998795010350060290733321934606252067096028294936583260216677524170781600905800444836020393626918043473345474302640187197576136733217036960341127659216104622488624200661540330409203473971099411068337564280294432238542932282130905884951978015760499484822657162609121798806870996419836991182390398739228352491182499613110769062200342855846148581181821298151351561803563034404758782716512794632606250732101574992104552794337621729711477106810254890445978012530708897579339315720763614456311466924690389119811577483620315334990216048024139666647931436693790714892596427849871855922590948699498721821542746617121827754946028281205916871028293190826313962850060410686653469827070384117082507495046972781779418990935484448877085693759508997737211780889754208832197671466644069627963228424614945628551658374329805213119657412829257155325931877591428178535827072118686560708354110765034834857470564527930529200324431477924076486190203079623946218436015393172866318560550983721618457592571752351354080418641801409398978610108422913529871841079202343461201243311330229315484602485141176565811716040705096521128903677443429618665887863282414252315678123515600059509828370035346924952703640424667972767314512478841560296033426865495186616456773402394495666790064482582591059550387005522724221326358351200397963758855706968096391699592941684056849272026512768234174589856862852279567199126626912604417494971970573427374044443197282896903269450614005045777759593221692505743779345212031546912108235205335364517489655008545354062970681881631213360331130587471298906858587970357895990895304563321775676755824555952604601912659105197234199165518196828704331974905966270130656060353389489452991755633595116341175464492065945041750273676670183627289872804630954108213428164152349318777715455084955527323973402646460080362193138383920474046767089318618660980588482062590461443724029038737758790116848115224818300341008614588049843294171384590522386298966381030303066145279736456676643287387077107818163076127270348217646655691867933190244377385131875519396308966792363968504010519685578050385308533245504457812702761386919168141376433959799409167171480805919944107958938693177213532106003393423980059828187021775342878913919988041178127965200199162187231697591253294257447091075713774737987234757960236575918609763004738694965046136642746265403146636996391419584856871438012286242739829336246518946022290259444032855472775391282850218744370086941872365647853446793928712022418575040131150871044605782465695148362572390922981505485666775102315930538855984740453135085428345450078206353834534655988476290933162557508392385008068521086859821309812357972662110971409553566261650661743033555531783420508249166734389644978901303663721714286575548981362128964749985757649622146139706365201774038466857213257333210494699758278300836847276573634613845979073283379589851769714986128230292487446102398013937646730223777074977108630988889217204770442855766545134854271398979878954137339100188292125032177067531610309957045173556670163843808549356414713384430665700225356776507209327683123295649995364326733271603134570693587557252865319946827591486687302647149917668929962674202657715456167568563175354179376773344098710725753226453736602367475876444002908737149270007462934372159018642722173054775845087048027703136876592766256624382380411694612118481261858038003138083648453003812309433204236772533527206657828469275356967554680627603983546109508342172888336974731663748725667659894471657483361131366324688020187407996423683750002990170458310209221534733180184920873516966619740015295628551764486650680404700262035935028218753370410767918693522227436439760252213345660848057685303604343917485424241448135787351011826461071480393469315919140869368337918731500093964501143012168595747894565016188363359882646358424085971471915760800329512824741915228936126576721450415379342410565121052341223079805660320272712769608600082255927111349527176468208462668398444782498375787107881091890451011206682880192393098897025768590154835619848618683464377669789728248273487243093795346626432389451718306587738137595967794270044617259084439861140719918177378586267800699641005090857574162386212008193899243396249417380749777669904137441523132391244607065235642346831266084407474652345287405340602179017857927626675157988452778339249800225111896726597865761917943192886076366591774544598773531761102131800032357308233706559207767410492968023199818781096474452159745392233002140164628824535133928361454241352396133337864163495317042754196616000134213027866294802113004654613141293147384065554502253994333095093327558327704873667876785889598155694947073149347368595199015476406539427416150182856478304197321453469961100246413351737472346318878928775997287686808361953174861380801675981415416973642915737851163591361121476885390335541620997038429959125210601027456674518571102145981366576782331126148577206012256624422754615732859183910619200835812171947291239954724183862222939591288762614684832168738249313601072871729667133283897658777985244940464054537737006483106428713548906032248964396909476866077118722887191225643626637259566240031159484508505526260581066731473480961112530318310107359842570862262940673223375444770313347806212520236213150813729670582154157400795037867024283391532789958752246264103132142513571274070883014954145949799899239923381855850874067104431748891117050979138075470939665786098523820479621072649583567908172024038754683108126794360746017912127323080840802667156737685157851928776507087747369263592059451646755835582110739786473442591783687931663011462494932909906635582689438255116456032329803746392587913151450257670762144685828449545982126752746243092120102575410832555800471628049820190419631081859206832228940081987993649352654600404556996315045952597647383289801266237117714224151545913891030735851281937522489689310015880481055066984375754746150992986367318098447495891760538957039711969755298850090223799442602819180323734473024966679014330467754863735190434732919864587990350654739061210547254877430213083288548733321436390186961521045998333455440721707486293718188331580162441081211596772328880738729678960549913411739741945439308649588497278845803037371225246779290376294146014874889065202588148089100230519864150183773399132216420232473980056981074131400920965362151497767038102004530248433797226723036398913883877178913967019665606331486115160340924036849685787427396721164276310248416578629948912364725832120962614889119552188884272025194110495499060566894068232502907260742664449121505991465724479077087344142982421720712442887606304569860428807797750029719429275940398779566147168856722516546101720137082280766799182509815233035161146163284860801277061215761076609187986868387925209981056339585510039227406520585831118633321342444482383719584488235459160364489773776715515196764741808851252091166531368501815197659592819871726933801398400843193354742286318502523369126060759518886789414737626510075609799040515896814714643243682430969439682767817085318109597853159897665653638203962375339292472199499126277722630530013381725172898851826232252893951887671455868282253127125740515692917565737273588731214936199514766498184210514711339304293525362720286334501651281297651913924817499037171317301436894563040916147834065205314104277557530418389288614409412409925752738121237314392962934561685162887869164200382979862526840977788652692407518165780692386003356083478650792817134399562382352776922772353075207219742944652288974463186112274058362670929182598824059315593072483458070666756524783279598676249648568375253315377364780426085255154688984215816674939927842993800043186731777984440181393178216178349022712954216199896259755247212865293945225337755256273937221055923177098124900885798098140178816052469902251002650143569740539421803114198638803704323646675658541742682791405669049089539875844082793007767088455742412294222183898782985509768629151060729190492825028824020142020554092646623936652333431808398984644324656841275588655174702374344966064348330331235123818787222136360618897981037890402569635084615139262787734938099408726045938793093779071298262087032636497796765619366852532679598157029292173710392035061997503713721072493019469493624486855663245843237354266054958793215423119036634746366721158620836433847957887771312580778182538912096490853949003972633910239010055418314293480651733245567030470759151096911059872593727454161055281411685511754775023755122060075153251917503162446776477578005077630591570006996066810707972504383372683318609174739066580232817651664074651249089398804840093948912363022363842467768065146181853142894144344081547998230212331745828258442447863261538936484048512613784091060740770828102344557895415203170137740071618134045388023416532660113563331724291778343051014143265450284812322907952552752177855403565759072710170806003148230493419177991115062974948254423715503552975464506161561141186636095436669188974809818554815111709423388513425191485909943616464851187401039951204920135578782409075777607823228938569239891537209286308035212565980548935348843676639947284449201167073145921269980464112175675109536696095302094547489667377240595338991016248672661709169264226414169369801756001773695899165527987815801922858537275781311231538519627246099872172373933353758666580781829330315073624889283953239532139774141586117422417492438898333212298938325830952250870212245893366130438417002920972123859938303168361546476319133519310982198292206894300273068760004810407569061035770583356430408877100974746026013543491521623594284715730096172856751719830148522907959718380548661868866992416971691127646120788370754801044247770662581556555176802045456414763931217105000362754725218425111895401452671977986455987985260642474096610276897631016893116408868664577336184117117855478985001589084253104284326556570028777112152003480632021124217287759073426450975029670221631284402140507286598452270222794053519056110178831434725908336156295687304669070219332205493162556358989520473417631984303677417777827197304165515012784418856143303708996420737611019140517767955983200142030653541098846139192172914997450394852737030041151616331501489996911353640853074478726161511503437106826282277900255735729269091852641559735808518791651724373006207285964288688482877963993943885588132830659201381814498702674729981696975556038297364165028711509561012867456199633074302092720164274948130980558890643179335361867317828977524842657892159343673911555446176344876510915251567416455630859958388540682237355551625211374509445398909143886508132272860963357766470688507146818640002480842555587433748813304267273095257494645255236657887528058618687370793236005662356518446117434840038533710249351847471529534921656791720033393699492473059111755396387077967679946066952507382026399080673397631687708129400884144739630744350174430444346507806947887000835539567726580890904172044566867886750808423057374677102221036756977766488761940652964058663429959959366339294336373394366942540011804762771548051201828931289134011707389362881466620953301614189468057021518165092265478980257081057386793427428139082134555272126772185433494818183474935826400797359581172036994319000611182820025991950720697359694172933219617956039193578860718381584491021522119324641311184822611720055544696907322878519193567232223645982103644976569857641217632969554912505509513604989705930099188392208108274847305502379038403939097257879421046194342782351477492891187820002609163569137331993459553079053219470519516003341870995006096136139556254186425970336308848248316429334876345306033129387834058517477796859494230316596901767645165720343743199533736165169829673929548971789358837255931850911619628382457389933050934611525579315426726847650167438056389967694186880672916074716225152583313719703725205280036690135399635327045890384257791093727278618227489677731453456832464822733832371168574069408536555575479766539162753645015793506427749778280901230822336396872907417037219123579466573823675188278461301877276488354999729733084222249766871908312677645904866238055771253133594047811825193340743099701399310403576965611231707516829543856702559266200275253734534417293124575380792634263682441659766768692200583989435420968283900523453175367745346559454175938643580627224040187423770156872657462326697389394001205298551717082317756047677686842427494863916739833808195869510310563811995760386173604673640434875142625201838902584762734009391545171754771933383240938916592313709518052709307652403514791506768571778522322266979373231778740206222183310357934755213872378233424640605672134869150399547956196327458328030253765277875641874082779786245308065463945989819450160522530703138379759795291020450995039759811694984805370489923935632771032069679272136691223802905999990846472743280672408431781696560037360611987941273214123226223232385207775462347118162279517396899124544355945160909232453071596671937555725748102938439186354683399912683086690367157675826124175888911029267921650662974816795011003043092225732544317824388858743341846388756039707482213338329692533998440875471110772378189940575598724103403839609548030107025066840949355404440251054310830088683369260008159815576243024708501609727421229567338793655372344554426052608506277163118170885613364942518165680472403351655915737336144513994178181495895157708907653589941237360816967004128332840009257144310911786721543995219406412526778918245137521872990470077387313354324260787533160747879166656336207825677555779854599662779077063736827899664128210806652000486880128740477804161813128532554568805072746356416524552796640211823099477575012493314212118853277117519085837324959758340135288750547982216145472772562740094724058384800877406010830738485554631543621263817344315654933039100995815582925626473168217394489899001931605384559366089140826580473768590065945089415749745085280731587318541564734609772974562437512146203086475180014588790660076947819030325002885225958797156330064193690255897838093000392762568099098536135888984414452439444708758840774680031180538020266285008101756323276679865499672085298696643775842440276478360589789425659441639660741611657016091654475660215642576018023874975330768661789514710234919975600366875390171870970223001146552672225856143748456898335236030685997957214049944820274594311124427515028890946079795182690260243624182534444487770817931447114311077066166662344814126071970326868189787453013748701798102119750775085624595232886069746264050731295651471582004285951163512429130294600599712023782888686179043386360493605314861686199641160459020233712235943882287974213914212645153910311122734975764153815158962426755643653234527666575925664982751466628527875301703833590353417704138115999641205741124591592861462469091710902649500501907002758714650817876205749857769086682725356438679627709091066282729457225961354578648920273174190867559100150132390720304172012023736557565988682177460808415319271723810913332312870399621106127624741524187724937578256266817736388705494820286440532483930064248775304145797441007680254573400713485356221072428545552937617244983850578014454783377987543992741247496784674441149847889223237810661179596662621949716453759582288595118681728425119554117779270328304211014285139106219343007460298143424787369597411459842896288996004325092640572174532185239051499572421573047605329203109204408631572148920266148866293464033414568251786940096278372334975224180568346041451988123333772420613425280611517871029470813052591587748435573915082244169991558314755239985191266381827485275146811869882262349484717459128050028195328496187520322510155454154537002478671350636840174545381592249608180101659499951625503690378057336169885715763785113523925035571951351744505503415697989064653788176299818577132361915398043063216112343427638068775319520821726050561404779181289094811569230645186395032875337473718042786240595504081683927402468852333745709777765949883434609395743608461856494442085428686640526062080910168979675979831890955630758525540172789624312335736549191403936190847055472382185553415010758011917023993802467288369207353088267129939538858878546784498281150509814595722715702865549059019666400668399224756552681212856484849097248876521647346689936752745214804840100297467693906409941420893206903843771075972727720521275056148837500121844856081230394164634271759917663091787489929054291867997108372993505746131374546690755297362465145468418302632019940568402589792355377814888601967827848206700102492513721488454617493697875948114402338272554110519858929012791114141498774140837595175681279291485321266847642008590356597780158655922872823474310555274827873480702151623852370872547415923381293541491288357081305477428175491879528897809852250665298518343296683163436607293058303084722211698144526324885422636810955378763638926838932991016133063459201842788928386381311454413750953551664668724763956116667765974598382164544436455368324851166234341350131308884849821234001680513266135920266935245879261125295191236528921308676411878884438464594423703026618451481930623837937117839987777414680012854675460932126529919454364497058419935719325061469494310125075261992116507476879359099858824303241775808786124636676692998595803246937051023827548647240124542596421920251807691089254089054350237855072962165354736506971409674387683823752816482431356398495929407674042842057985230161162673164649654835871996702342715260664582483844581004891542711730872986421449476878585322631485934485467380882756441391129174085738852880584697000829960964324107870030846232406324269964065448626713209078812073688550030771946561032510501892241807084569206594839773745866246083398596731106096710818596571498120158093770159318251773100434911747713416521677109210141777179615105987345224381694661954939344612116200671043781923135518750998507550556643115870514473239477428355792328020351675157675901042091074072932090298201561634347039821675086207417482229203554355685247426328297321522528196981135017044357565287683064653995488515155546920516427240464532053824041102395569456360666733896796788479664222425365846425160236202061144611008358995019175007399630916542117252930438388380600383875545790767526250701364185125114537010507326923869418316063564683532219720833279226738769042974854516641352346742294807677625799727098258592795163658545157090758092262305620829453062636154753415977993037072342588998906493805181407294849048855911300568491744232942151508925075470141136050468318990790476242716298657679485770010614382092853720174620911784737800653623547442480149114369775337557706766005974308300666844464815309330319938860372308528026863849745190088085377665969239340829602970935815689183666949764459754064093009155478955400450373495174048948911314657909464778138021228028342092779319414396553960792609022539725975901201828549269754178291915429307702010818098693312164059644675453134733592348151981634030109575301449547383890624609903459359791187679470603581689688096738246728486374636187763214897786759546358293531546305102950455156698666367485287745213949968612630424386501770488674218937892926874561418729883586692648323680559656746172347102294120066872398131554610394249795873883855985543147595600279296457689229262617370628037844542243251215578083697298312817700699265909258916771096883032473439828851593992631734305066727399139364855883593804767484048139044137664362380857109323486578035518204865127740969363152839182425947839700637514880990958609248208788613266951502963996841946231884515361535283915311240290407725370047003478848384282655585851461186437287013466262050448124354414591553971957648929719215603691762503822961062412570159124058747105606666063808180601219327913581255705701772963088330513712752827542068329451764599975759928820557143101910793231329279160799177067515648489224634682028303307636441718207378144889696131844210260340896731347344317378133844854218895405246536614160939539186483191708290634261376536175635921191959103903954515241123254004699067189760214811497192612442048192148285799812376765064734506277270130846455324617841276207530418735153095257476969259235444981888308995636228781012147637179562402636472552783035330400854270855947932385442975182149210369289375261936976809178798991789349958373880614382442979475897044168667790769354516151981408787204652418579217841151846597369129282616411224798088294594622046024799787206089122506882615496407752466501329452287619579807733656964258761528892375000362553621866102222647866346413362087086404690946784201250484112353035426098216463754058426905349573049987675924896207468673687390611641602034425380085766031515906541901080689953718697996836059496199024206611513507467906142978301183049246937284678158158256324537937117180172479423214542017415419835214413244775715886125151328189057928946611920054592249692992709852185365421095933891582617796888133170999011384534549667123592782269487051095016216798280607098443474494937118308780972684642504836711380200258943835222302265211431427546555795080032645769025897048040817333507301700581016583937008035499514213979205745710598179084668718640529842676654644091246615829195276065178551005482611989302557095815208026829090421939382584015020509250359851390149089637793025276928490822127535347466749404029832222481401522638661420340670408431780658087044994124483742956719703412726339374169659641063401728836515911184506340243813703045395151255627920772932793274673767438824809738926713658711056751224177926739633718783349116641523281520129054884396074000253012904719199669844880259680414077119300408359138002216036906807166773676971882504620298704504517182165110237266120494217576672419944750652503385754398146259292306204498538543041567958401585194271084494959081699024014758274334990872099969747193491866606919559632260687892545746496796497396441945842149814937500501074256975817199663894463572395702942443752584865401481167805589767451944854345516277073033438292518233662889314896749176817395688687660177764130829112186885931044605845084487190698858890367757689421640214145786006565990338893346446381673820607986721841615366093002479367849525344997076012762724065180454945078220024125573302075473595682785615569180248789479216449371809192535305240132030353317439439544474408573099584511744942755947422139889162791219168389667262974457477970564675049614695372351029450120111271262240309517731362438193571710856245230548462002091936712584946270837555989337132910607612954461423016076072185838404031381057580576300845342973803133177381909799386833455866448226419054167768695171103862970998105811024718112473165992941751851071854264069832778284348795339341005317896063704451745945601470204208790114626980447426695866343614350021463248186283462755547557506987701990617818360915382907604107642493070841508834568909053057116044595192117389369466894027060049183594456151326736581342281613338361233690118819041352191128786527685577013453908512161596555077633383888805566619885366209925003268992104445779735859679221494442268134680796864113735689294752814659549156849901459159471949814214045822677472493140735486941714793161130824250450001939120130890768905280784962531906499894150674979804665286724388067432458061664229241750354740011970463858050612161527354411881777378747109804692889678861496366208307227636526096007399988190149413455322781445608490262866094180173276344249816010842679679377887635363666576476653749860265625490908415144893210062176169952987592973199238025583708422362145119156726501378090077839569845933395770269759211644732829369960295516642445828184509225936866446287572758925589581788843155475842372217014583306444388164083575224820631233889083168919129727986895334274145744189092654072292611879407711662760140360169009584924120633744007084340036634244843945009702926850051681463905687012954656879779142801349417554864420913707964362009579503121970484779324370022212100634402286235694860284830076882142438957173297160229482131455048581115409035006597948814528681998339177125950642410185790368542548732109135093952900861302290434998498727611391321282925294752831354259900355036384074286063909366736261435239466911254643831818183720038152326001786126200718714446881733430569773141774616228824049465049665724206745108597938135661431805879434418212132054057017962682718912717868001816560110117385128830585335012109521704295769808870117324721360337108512990308803457094215584568316967223252666579099400307400470617594367403760845314110116107876530858850018604135104163883325358783907420325984675815333315830356208395280689048382222585940434907055418441888246857132332003084517546338753001123670960477044055148017145404960178685728414795613603757659029027134071250244694276260733863634814310510580781315912289590033640235477442045523650500604545680383927887631429947365509692711057812315630755525531412137843086510360712334129800216644019114870463054882850919681143055120447946767418355179566751106056669053419838718239249088409751620462771102175988867054031145948254414883216306152138004553313322507554695059314532983820728652916875852406523535711613856366094280662494300121786755303602316495677672935042419450638089775042541882504697367747651931309502351516441117283141614274322897012388529986277274253077350752301757879570472433415940644804450656403096718258868632660460140606773248061396345701254524972138760848925222540447644194891401931608088917712217664315717541797506333166574054844761996478475908806797905087294617117853499991652722018229552813985486686171761621508750402182426429808839990840346203957940998545558810660519218565456239342580657473826721442009772535978173891879860952855978140372286001390295055037580611207969632142272951391489002165767316859007693848494327404668327904208806232019321016705502560254737088814261449678352062751269769596279342426739637939957533175299003607769322738629064623916067595142477024013007833690419984117372113104340527722281452123976868475608851398612837470128101805720558659564676439910465963218861962062771046509999067090968113169107160620368466116423688080776261676869692674468563853540593015732635008756557008699469326604665471309756578520212991953010642100623778596542372740917466999509172430285973069659749275472382264131455751864828937231479942561660211373001382717143949714439216181779885322190078168637024280932864121854496565552922725575355103841645486627476587077562155757345723262272043005064588764795049316749145812893665590493604622092116925182942125371682033557595324810148402308689410197538916631916187580395229503219125404741127376160101215602774629135793409171349061297821143746037608056736684876031029784591675700438169350285106335541984170482006736547334784216766220063375891187062043009398259328818599884899829292482756290884004477445570054946281194650510130081458282520910096148712124981998319124442442186000100782446528364468657111706385295803186780266761215722061541483039126623932949201881701680952472753096967832711379948089159917029436849466372979677880741000414778475998963975049609903448769250452691920757244204880955353580089220416782011389786704720411573102096496284777702351582855182547788350839976747503104783529784076381206704230408475980017603966865235548051295151807828122226113345247948686866054049885610284669369257702306992719948834101118959977282311612294899081955742883428648491244943267691397455194828887033595997944600799164415837140665892244583149695386423332332791968000797266318316221193565883130350880749091532515058324516757931689088404077490668964163120210775076370669908937716933876406728335576324442046482481134976898685279528466426018842378514929297851008947155651720010669790149631875739069007132596369717393860542424126484566900674680349808598317398780122096632278313984972903148679571579255216210405631538667913254464204240173716000428235363993114815887985167931133532425336665204767689257531415634999802974602119682076285663478833545019607860970461153413335807344929827247218688129877208182111077063888508217173186131982451282243459148121507250639944418312361379976735865783263630683487781063506250626143440316443628277962917494436317941959019056365288103430721733218660403282478216788216277023270535265294906474043915036604242588947261404419361384563883582193602059006381930870807400192329587359087402025303426247314834231773548869066267359354526992695784394124358768880511945148402522460499533778777054064922481839326449895453692177043330138225485094316204549776715175914380146560661721165936606339711807805292065333682596946547315247306183654543216919502723147905943030872171367373987371076594609631993698840176487408384518217552093511526418820227615544125241847618327240171587122859807262106840629454037782649201612289534068741926047778300623019965767166270994460289819022937599888024106726616156338036559923994484538384443237776999601667446444798713761408724643274099229466689570710916656734530567574712876681654931269228750296593681746264872495011484970416233365886502821700564863585496763367218645283789922185296362521506023698839944349170627227766180897376402984069883460724110672183007506424105836011682739066632236643675619824457677257941943183683954377542229392781220162620811335431619214792307401791993937432075848885613527922380459966449785435959501912290560189515044391702235758823306526450015018818541004483588000695123209063943045239676022969834011797166408392242914085130768140270029058625700887351615334693435688481006678483401902774247411062017553465938997098189084961469632887861449673725896007446029225556524026790316143850386792831291173368552422064719967091912258194395422969219913668952869373387365367538225172100158249573440659365472372076301321934640923441171472763506409637060107951133868340205568892485311393168799249180358304524070349584670790400607949823790046871360928918476499382198337643459541485353519196313237682089854959300017643062249502871938613232544937787340323545021497903634070144279506565270218387654189495102338818328160811485271756974736749485966798126019206162188048160474127789554282281145872998998036248195568010981259439455076717399655072513474300235457211718726380780427610810789796873212880952902708783564429164881182641589397680826300930763966537631382604156009551068455035195857762668923578566821549453502866894796321402759340494681074446522279869922901069388035031622250623911462760335813579854984026430779122233716379792215229240870447708367867604306633126191706698364514372218096926794133073836236573681255375472469293709473709259924424787522625945574715189130446803931378268597255176438305355722352856298233268044407302280424056010409987565796572020538056629914362553986856215902950487826783045533076027079533807351378255471473124875768695621008961304534991089446178714342584718671773319350024595682226992314698414379321226396897478612527267286002513138089134166269665096090055695722369095701298770919111698647592012707412000979495077606059466571147578052178875818747005275214466756145105033403113529465994114207912472482731433679191746733304579909163590298048987122127625717707825686261864638150274289020504876113882129372718568479941664432692015144075794880543589141159982529863654087513408267960577465011670496026717381625229398409655788432329673587380438623676121632480838015622740462726499391119641673738475725316665431792084751450419115582975987539866558863269744709901285112521371452361346358942832688806298918646365430813768768122773066540872396760399562168637887672500265145783693940941094282813261009579238049871627244903452961041942967310633541938613531985304737808362255289067677492275700696158134826096363755197412088137456621700664047378061795161082324556025129649668303600548681971348868802561637255464623962279567766857555509607245596721967687134726568863603940254224136484854353884637492906770051595530804974410393629854492816405272947317978828606800853094318685257230731577394361090532495510964194296608510867485952844453201341853571859821844472618173764719671683673912504974344902044495756963032844785451530712137283723159666631342088034740295894377418491022534320230209829335503394196112280916783623880448234555621270498140169671491798334578936673159222186121307505537323532167095334491279702901668440641267756792749848224131872502535424828393471217557464599818385196990717155615154012683614756149449322381370373886263492017620745808475524527942206549605798053033383018674816349265020067383675616747414226500799919648861753811864141066601685458676308986553370124863623903570162307872771827828507390071384954104324448134415452771496807835086603786353586025022640522541390925070557437640348974572367761963215655472680413608345798391431516994798061736005120743262249747531464632031063310778916391142064551114813861886797715726194724010442767388205417555965159563681043064901093320907257666791676070055575865690436656973160999029926101459150724076436276685639068815166204118008093185057705925838449584431915876386602965837553115166990474777222981354768046161413666674577627620431348022892926643219560410237557391188022905544759124882915494390348532902478133809915831490597324307898996104533449368308342841586009142527014591326992957422000889171080045470547240526531684093699916429656478072810800929483325474616716694749230605943527224629200149140846851640684467881113154084606867357227163432754920194797902372918340329857969986806352538989498686944916716044482143938685363950781122703603465980801215213972156944092855153417188229944527517575124791909307913148446906411656529851065432306174966130076608986216342995443325201375301497900997858773768549724794786849993448606168346101982525175921471309252978546322248773005766540065969302062822498201307163391746381261084228632056426418329829897889434250780086626291487605496238357032372531068676217757542659403096423026528801915919137978212674783030868572489288233893243317582086460952059897920652132233522436705318150410707435039244750315247533294689496344237507502093732684145983498481678916736046593656623407365635327898244490972058569140782774342663067551771790021254551929925006724366515070354152846449659148184583887242078515944766666277579648594392039084042035787959062774867928565949997343096065537352919107439334216283695384196174741045811782248210986522110326098581819397985985499648604261166400521126087433050194967848215524159057985191493318136040983929089309055142592302436669851673307487501366527309158996347181863808003667579854894869843638113024633950468745785041944768629847640899118721004006630361836826197206500348845275976026763878970725418289666457211485982801687023941498071116377454081902932979537571471206526183158090577229826160612409646616145428575066624391783728058297861045128292608398195975833995542173538418147273204308265345367231712374431810129432903709114935059040614058415498035544879172039799769261382078786630751845626126070202338965035531764172096120141400479232574121379657605225745518497684601839695631683399787609901062776791173561270170629012902312725822128368105375717667869543016086337223501531330313158364268875749572964135665961553274126710459289359701685753175885961162705516754408065503522569052676515836865967524701652374412533795923501972591907342083303557791447548723484413813419703667223127329685595186919131182025577535430350036397218936742040160396406326660630745819999050360220449012596762999903453616131049479315373824808852264287086466761611528960778239949286376279275384909567118550959079218747566686578560622593755079712476926392727434324383242844023115461948538380412640143330846833000515736157407689052745910013505083876650083700545343862749646786256759048692319423546999909761171952291142352343451591361387862230083754540802449536206172615339109659741725737996282661472305966429233163654305488902015857248788690557093773018991015403377369271591985519314295272509879627639494989553511613908510265678862517228391156204284887690099942841311544174775803257142152550830001400481370424630282611572791447789316843162532509076660544714380001149863781237103237588014664015474495638366836702003623285381330878579708811247366100162531781553453922369032601980266260020024194545031930686523485602897709849703249675689570140187176074251334653916158333988300202324537562948473337625459484515330799448996573848186316496803931149736119511784405298536684795780711587540104422589032980079901549176280367730706007665641702093392372212678939424832395005166503864584087533916754409046467169235600473561877224336846238005705186065490203649629817961383962683338554090300014966810933663612972804084751273279476809228392445647219404228001567244494219599810224368934435632439050947354871933976287717325400910773797549674335742831651145905531641035999411733732254314654000551763584553401896847315332972600601619117786671578493661962045093857850376735495712725053041941014069351812691307734622354480418237345612621058412543537651529113108697121032460916993283275306330727656205964989651465483504042712489779803691910813813181247636155301668535968606048459639927613769529892878509691414167903374268079354707688472581703698722378890730138489072907463208829359619789421139835344614566217176881834592703567125900317213490256655559008569007944715289087464668818582687516797611883981071134545313075102825950658066790893508354412735249498369162783355472473188561778861207928624622489063953783951733914350027017656377851543800986722879826226636451726423871788645333924988445749900689152831499407478093927209660602654000085881368451185748380430694916953652783278744029847333603477473292796515857826638761728659807773797111393297622407456002484788483162569882430286802358298696059672919595774619887658017275211347069204544588206867546751300858280960583994005457623722483828094067151654870560327421431617057689803414728868516593204827798735631537895065440935306204722511812254417775070504140960048688917763479458943074551423432405901033564890415519521595293260172632522646924567139271285974233263843199343728672717363784508708141992660852283183910137076800032387218239848487723254814631850796813741546537506369739385530078258960962589097465430298900253806516679352118256893219165367476844393943891103282632107014958264087994369659951291292000686536260845590071254420453445752440893585923750533855831423126982905908121415761112239285162089412454753912194929925958104801370056971977791354772579834315521318670225066028168138086708141762301633208314959137622371969216817272419053474354765665640967816431206446137572289531180437051063842864838017556508070433338127488940087495478401188972143971347960097861856287937135567148455351322694012771580310833269206408094166792524820608316056019465537343132650829698181534019168282302510665867403743539125964836980616538864022178393143026194852692478170058768457520448741106116752800777418539936825923677813339770319051648194049173742001942117056596992143021596621113952058565621664598131487562150927868202458247459737040233477088157577410318669940231604081795118796234144378715982566194872620120235882398853875365445699971894765373254079871071487304502983870092862679768213760980284997612836752844307264910328872994038407783822271722066724464649365368563205911421033758991221877610538988828326516451117712953232591618065272829358999481242079663420226990863096689830686362744778698063886666526524932425109306515030059580198124183682332982532950195408772563027771431892651353035161765158134520119309870765634573986570253616765839660694414767274569821544782389860802396046413179944545601960592997842864787430132735352123413744578014502105041179800247777785938025274660255527661819806886433523529372220939091233901155729134682265255478449146977968063140133647826328825727352899603918901492678054255757233220524924720590523173114464376632996197886063649983536404146092176746052706580319358613005905653477997317907690543779186056038648790022691099204739079470545406809913470101998191102758873223333965724099664883416375868025176079438884311707190908794868008146407544905262915999476545767719281726984651110561673286182161808724436200613931975989658941068804472365040856943835633473696801172465901892936697654727701656067424659093592258194955243724346964330552543223352083928350909754206784319504195727834624212315576385508754109453760926325883673996262406267404674941677140493677482533191212337433535434012748143908343210238344461774010169852891523973297216078366052740718673551887001534865364914493067423543648321523555315055939805828047305298993313994453209575603747637778818744285179453773719517406995423682443239782116763494475103950607793816057543999219792435444885990156446056659741089819582317080400959763403721300237028574682293380806970453599370112589516985613211936106034945841323983709557673004905640813277741051830053474675649045955156991115724796616204624973806975329330546408162454627162031507179721122128872159621663025831482667086117100046241256920982412311435395087785519955104220473939666444509889534008603711672388270543198770944515949669636208378289041556973231553817589729753318645957843049942603962285881379705373826681181493447963521049786740106333758743083547388392415609676356359800968382094898504897034210389263983402657758288675584993453306426812139494310854532624756094955850552316022775378087591492348651263476868887199881254411168214497602635122455307870265420456431319385641163355142485863971826666050339086418923971513550007825334102882649247992136624446623768383215561606474360768694209947302041334326213181652197784101911434026854737657117094607624461916217710554750146019258411825694686005872545930180670204283019986839481810267569156348964326758994598359762367829243433174661417770196986416338027851715804387209055111398280131638396397427491497327427778729592471090160530840667206110100202649014004631309921731218073223478323330757119515436111551303936948783273071661549842463137354302962064075428712225493924156495737878568396692264870011914718668223884732449932288064766479443863663440819828080456915232702688736058217627315404273731259810155072981890130504263518445484286576214279637280183034495186255811733493744932125961481189390027407284880014714197249540085727911463007023572437481116558258565120995852899631412887919914309730668877564115024773914102853943115139194691055052259820183782831963164763995772830775709355389934744937907147200218548030670156870503487716201767766303215774283670826924465456182383810569045260848744791894459214053931485034832801362016979958725598857598546203091420579817096383640961986016180954320850042353666834665385316730977904926168609257713358866343457703958274295843238502582115248625614132862118921827077653051095715852326612625629945860260748965931613320764060884827617553564550714455183559179397742470052579989194820028241627131680089982147703708426491834567825713367825037706172626716107865253428697219475670926051197603617059222550150561279759093673082414319082067036862595345657676615625869486946328842012020243352561419145268601614603597685518511108269265762267022420285734511798775887880596671778377314638060355117196025120287733596299948085929591826818689367453883218235346271542988852365924119803268939190694325830803047840235840953985259207716025795228202742658686708892457315930456398536034979102604075749262471658426607788682683931250738560412584477921694775076483592012707988115693523328435685926233084853399561069543082610684555212133317720208335812618467574915560995818322087219422567648463323022746300879975090692243707217299241852902844497800742884526376351793424367447133662554525272703776483936695259818217922949120634163235188894493785370343047718406075862715677365230977709972484892322060449669622536974491856846900413357752090382109264054960167965641846527298943584494240793231448188234377942702226404958264971984971884092472913835141552616263297094962477186198128242864135346510069254856398404716316039115759093300738123909998161518756874575010606624308409711768489082557248140795294874234231164371960249211857473341843328973839086717756424731842355790394890754959900206938389918777760750407937532293064804712298993581729249359064699738658673899382253153401592666708662676076061989098058650536877318647994501208013627596942246481664909607919741482946155041301296907056770042408364430782638620100541773663819201882962904610390610851760671538435596867308539690908943588756738749408321063335867661020340856174593879298476915562808666702185593152420387121679551286303272778836503228111327959301374955339683533506179798819347027624829824603254751713908232243425200848172888501235037175230459513274387213942063636700717913826346989208376772373524872133224673586264927777607860081913718790872463422737659237127798420406540817317295829991360849070007156008655528024419926117348193533705542852099939237774914869384490235856132239941147782669205610686144212712740172201310286501365145806571829331945871378189497670520098588620485050667422602874907333374697532300055863232846648014367166757140355113755362978470112702683263626601837113824662734106784683185943064572130502265850593722017151090559234530598933222360222494653266418763662051898268133966894396655465692868427804867222388578275256610677640537960106131219487570356974219515694952225240332228236915584935042035693853102595405114331385134436541649749221937606160578731926839351261687881428091068893507149068899183606343562190426296534034172654891902133693664402706281085293118079512051978494932164410717257129328261795539614863273388201746082280012212015569401356007538431048052955599418813010040895851152985921730010490742132403647554011055998064887704369008809654601172120150263074248701733522986746401203580822407201200257423874127348204019629824184293998802367571929339537913019665091601424252557860038267053661018546407332034729899241489179919903101837668595189772133627720431171094553281518525454455371190853058319112568881262533398657198250496331634506259489031396409806895344975585929971256477034506145210477054029388015263102228252212875034415823495682791482779781314689390177586465467394278856775313038854688658377626792457463546036624098112858898775982798774219871164348015150545263457135360075569967304664354228360481596054605320326353576549556713769933679147293896572065864548697471768577114676923913467264132127676654159739509434686854308028005506425416133510767232748938611940997428379277480837839127037293247087357339943609791804916957894167068778909860558621606629371748314642083596616146099709155151481273015404845370827948983013737789666072366751946240132855957848662069541296489161374861831474870283282185009253772864325043962170790762747280583077189082398174333677287294982426594737236616003328974030266563036501643024738446312589891863586389106385167356090270274477488394007853057435745260625591684691874492335947442272327713724044603803358562082777450280132466585236289339873711349404556393742176068183122106943146053805498201346666096115993335336783949313018097792142329555354130375587774317877580217875843515755029190285112639205424493098759395426000116673795829420499992261372110560018935442975774016019768094193659170307554745278537677309729010159138972082914890131610008649949335086694033495883621987665914998573086201483191314737697459685568376337901873832847643402465315709254394475409800711274311061980094189883158936365860670195659334570570801875234140819746844573349348744188234505187358584834635796099630683596434446820753685264391476006311627506253638826726776055866472439727981330541147955143600489993784959734062621729193648453181729433798864169021873026900804348666534630272323688356165788072747791621332391929493098834783071749554261228403792241031075328726963292136809829390317515846549487410317149217359128586309015449182661553043141422821835664823197506071098270218614878677423091442042047911022036324032708434517094383814949597073594140334882691604331252997762726645576343001450235612170752875620459586574286509519144210780300290151303508037228363891070453177919978614809186630028974346552705543341353923672765953181181280070858585001500491214087024735669258879464443963225688043393547242517458431070284528211493644870401484212257178581876506927863557057877450222037777754575295538220260287276048008196525178700588923619597446057842911210519966354376000376188812957892881220764723682707047186228986338870509072783275388933767447951513151046323562455716683127734041467164198044776687718162010624957358024177893547280249851476502030758189803825130591838638985145526847635006584145653955524504430937117732788941703795135156250025300492955710829240393342317620931823788256471419145281657935783290987214147122694069955560362616351941876133766218753032161012323048009544563212229154114415059777995651806128068685509115382774054086270072774344717163201437099476464294049457468014365316065845890932047226262195710302483654769270205776954093358434027980915292504243817328669907655248466316510872950647493264476536013998834499725058892871806359793619223148321875523322822092439848211884451383949096660663000892154788042470042383706295309692411581352051617523696469097049110583479396265308829142663669114334037090832332157025085536325329165686415598045559228618322929560932250196737460912257588999361542462195543429338942057643216374342664894375294155650044092204867063099020428154694472479637151327346847349034913821548850207894887816585765155497458347931185577293515492067493229444288536050391403843623426726198312761321630228173476920495552722386934228163836312391961298958197342959843371509666311156471384404032280715927639984155737458464651903184109852452717507074111324438331985461166659700295052484328584143190714983268832082591423595711735125156157661515311110863419029466134584719823631121389942617723324434511777577194876420822178470592374406806698529545271844631670448350525278592014096133193304408655291605963452691353309018717598244381464348884079638686519360842680252989432344241660794257743125968185439734095024031816316482138516400074047476640747989629047635168305343098716627025073267873984126751543843693414496359998828367694328005769982553135155770172299454785161893267602535349747139696370766176285827594442739315584339214603599487790528695612500514545230866100512410156247665454294502278620706343488621775152498339612682893125319904977659287563947720353939531926959316887692654388396194869688455964445149709104780976283644211058266241403745732346116519420544863493545222173941778193101537006525055065478206406981422599427500487410153185316449624091536029745022045061741627715484545410425713997967491076593215193926536240374272050903630270038927569402547864076519038361998669964465076061334437556232334264330430281809424328908595495744608823145962254274826193018907627040734824491788999249220507801598759420440086713327765055117263337102140199872358938032258393319798254581788723337124688282071558156816443324239271246058568111862327149525209548782341957488884785877879987545109145600235211795126925685573478963397298338577560083893773908611418094962087918872481432029795755388084103992248793596167784799602437520198637249491479436444819702957353506868084488937835341487391341603011207900931901840598459475637147363802503555104320522999813830753604089394937841550022992445173375549740888071054684099086362760493427646256063098564791603809058219149592072630362062384417410773418311978508815709806445961895537976607972735306433541167617248767932985449903881879167080717922603219920262452172993450443900960817859338238720761568921730564541926859696990400213347075965758820836944972450020190461105797088601671440436782213168805868832415277243909239334646695733105064648622086451349429136778599767279312992740974497659286935438303858559944367834894203095257615882954908233812903568102777096900608018380327524169254807101824543763157142879161491575732070180266540394788839250381865978516743942927870128272534919741924739990839222150294239509984698892527849737049630680245091146676855165276198667233777627816809115884392596406121782123738983593567947483950035753607677319949993394598060364259489712346326644895784861578053443866645578903737932631208527346950048467993782418841920940308738696660314417315088538457518135646443041578672116593383058973310376135672965768832347186507991455761890948597349219446935805253298027557743022924305062021502984792526554804838783919830324909972679195784664845320698069416282161850034955775416267798526497672392034842493107564823551070329153677283694561025495800356861442848711223035471857687173637018514912930370061539226668493993260997771489293547057878004090669683660933029611776583458465335855617507151427700985234764326699479293914434316693224093619965753419532595679889920755661537879203197732700543453366218786175606919800624833477240698876727470128827689812777685101805741632024701468561428877019880587667495986969236196515540080286426167416915735266665184070181234609360699288267403809623680835087437490324764528156855718464057740563745631089575761699281454334451437006030346160989141190146974719783317936402200771070329980253144330717275242785093505707910835179317567327710165963014158913940329421982674336992593500750474465517010589170811806961556137678483499946195286481677157273389344569765068555355843179534419090074358744249511026746900294835733747475479090756096049128111848334123244335178508905402555968270485286424918479990931636652897436646007987014352960924046961146554428187557032105461445199955384205857658782057545474844507826972934469905920322516559634983622641677808453935467817517768642889434611164187165076134875791125926082882630091285795733508311398887518918131751191856428087876390696429970758701158001965910312997183662749672437492666496545786714672315857389923749752372953672288924548034163023428338300985455925770266477516016964703805885119583343378646058569571595561524312086490099696561044550233942946305399119601884843726674077053229430839844443606068888880700688286627869059741956879295249881473131516046674532258326359941524780262931018880563289355092004469455609781258965089242544545889442606329332957096847870130844311080469605610141021274885065861966750596071855224149501183381290214774532677004002029698482322048364917950572886913517349588652367641060065433188351418638531268152610310977255765075256277611206438923243083262039199468418297316908521832725650289410841871560720392852790673192254949183835463236511055908001742787195408184309959884872534683686556209258323728488609953002705179164004445576029986667961095497575412762748968080288158054011413808190735542106939513849679600365757042081759134088097366551451310201400846266848989996999734969017671360711420459474250767876332253274177652762837481807548408735318186970580238856354343316012760312895190715025909728153908325019101681877997789748712493528292047618641853128308732344333679505729967897897760236072354378678152350124094552738499220437680924071049132493387496037479195385458058487734805908215408729325627517909956905025449920179457667250422717324284945242262125355333765749566095321064621505141409338218535003539122975703253657933806484820075389338688403353048575359515140813035257174225080499766538652772365683591709407403278002256979380320074685580402849352277228033449998230631109071755724656503932776207329673207069404856418353593087834363621960507541517396621011266774777063690527018716536553885187550241646142676463660523984427517757160222394862811711886252570788595144190864205976907861532577856412879627782400850478275096202849956941308213067729335103513204215954414157577496306154687698234059453616519095215431426916915603618664958681307282276582589000116800673954409377747071769967099725212967842888005585742557985323565421525770395531875644327879075017059764690121898472956808580645829923100913393960386328017963914502325293055277700468643004526319634862734676740157796599379335220268684056946529145301342044508846469883730123860741828304079830694365341959888382766096177634812782306513935918847213680601481723697240374257404642712976650197409887561206142998730990955350628578063977688481856957674421081796193131090073618428384857380297837872470706490865984595183550544314289582382034258673262628285263592231397506724176342962167869862865150093885083148006224047182179262716430332321095303604228120549978717664944087572797076980909293846848910514617256163325721650531867562669133124966365444710259445985654038304871924292033440811854219031472301660867157137503167899581308183215008612356019621717987306258341878282953475084908188787941335640015985329105604965033769604887738595160763774436569611882713340097061053101662644374056364572406763908745633402131482078597425692075624286418573474730018763759461654070168012245874771431556531511508067863300354317501834798229711360299932753977948754586198045682062618055012213911059550736908353995486514007305861569653488287940767314165287261322515360268180642821336413547491179271797782125966084574456394287929485179705871597845097788880583285368973048685137275723554333018312629660759103454096662361575017094656388886837029127487998341660940389270993922783221510053467706714093220053200118362127426900076917986836614063682983646172843529068433835069019223347063630719932611368246897058787985384091498141442806516788238445230829100908376719501353284635969630735983882527048044657014541581537165254995428741549717817708367205440244727246884564775890311354345857294784288097890081881076783179929737135660656363885272605995337482112102719405872750846821125435709503537610425927495334676531653376454090733543598386941570044187416630109309961733562788630628167260247917206659602830477723931584257474822291245156769255503039544913332947541842581309882572721887136925805515561643276493756733077183444738297211930890846439621098214790002854273861171660351363937818679762299866144873422980444205923312974921462898994545037123894835776773993978971106725664262259979334922394513602594677417851172728732215811285031671831971925156415035948078467076678546497150456595798989154997380052410060686097647774590753897061045096471956539374803311132959163613309077793858860931013201222572236386951582290639885012525878195808952775771469628061730407344955675065337958722278889473534237515663399043051444115200788981553781669470034076455022322895413384197623007871489822011888755312645743679674033999758327735331536036897295855944988048311649686005758849423442064646539087466613481795379891651422820974489742905891028807903287593671685762233522666538398627149607339563436157131908486798091776298951203372938785059441870842353777304033950809215499611929560820988680771063405273158464793556745408244010540359489175442801089606914840780496418904600141931298108178148686851481259215316677510511721032253377303301452552689191167610612011290923514760183366531598495235662770307895303826094274586726473955077559155283584039507511310089712009895303041995175321473655733873347275348523271433386835159095465796495790431400257601538886451472119272322294189222144320873608382959250239574032326993121277253324105476686062691407354268697678119300360732126366706133041676535077389655236899622650828284791621070088685199002826500398743503612083546850566598139049467955487510623885145457128785304441070433673798175987882164105934770265087544490876010843710816075087567002310575096507754415679042457833958222555676212771746471993919012315364469672152392538863537559764210436280437336652411272826337748030667748882267340642544804721905866840916586169694704572935976454730351180063058101809187402466505152667055194456302332013358582665269474139947969238289515214336480997854934188827971791170599249543844581026109099296115767066040051111328890801589948640501745969368704450847788962191363645919765188973647398358862882506805020036917672395851191207951448569896101469751844914618836534660946086387581113059567575380979628375788606812673237298462714362655520731722261559947357846695325289592099684273792122388897857876095696900306875083816600095853204246161729741572992789850366916105773320472143830466529203038832054785560698546240660103793086323816884251955736631263884417004300459621598323285639941428675229241394960871453482034902321939241858009996700363262098525455485436923486216986820457264657234877425660713898080445085905216270701392900802483325300575934864587309514685823392518552293316383991227086129726975290873977916741040793680617522250915234447312729112263009032158546770391230022815566847560941386127458697664340790236310587999241959237452531125441116303176838348642239918179841556819005824386732514946145923773300164425038159420017288307726237532029066995505009748099690833340433459391765395779495231687276961842918365909418511951423275222140687178791503920826903792240671657591358924553812883149529829160936866441675155035694285915178788799057944927947552945677725665330070576675845748978952495326136067245610582299249465034798145240184949059733401755982914609407272923455931561207225615914294492139930465045832445199904097153253584186097605495759472246006367158665519339290816198471452787636586211333655212517924817831132338269007937894202978107842494548795781570802257935809512956283379020289548516607652662346966259871250919093756046506353509558414527448455565039065397877565566904880780911056738792428739378089011421341190614457471713269893296424639749685688091570882651774518514839629720066877975542610262906954803003373060478324131652899329308941151277472845481427382082520403125375379877047539060206621160532086335955653614867957548562745521275867634228211273690587492550740470503200299079580272040057258228149727103025526499474511031974409000465164349148108506682145662752432993080100836484560951854463295782412637643091768182742671162489318156003521188323851627743594578359868288480477528895217236956810296091406353407730088988962867797675626299974139009872815905770279654456282330580070121284826480221495449747145572457604988658239475959327909759913010914702532403007185676657037781077880667877523634104276863913218357489335579494873174493529209538647396320271594772573651818651718152436429961233604788069850606834135187450631943888833575978420662921086202207519747874110202534676996256940697288507678469479806834720127424323604823717720134684013708393219870267459922443374803998624664297546592506283557096599831169131556704168906869571825664972442141800119451490411658662841826125895241887877075942884252576762363662557492891525444781700474386595629492724992318424603194762835212541499278192989566222666517640926729061031179975267513502410638722819973113346109977033328657380573513696779504845630063692062718746987210673114583134991933657286960615814682019296456864501177730476686838799738430780911255801106995746059228047779786622292091440665678993188018470231182145913100744048810194832038947160906929844822246005408740106657968800205808649356728691169828506144177205399866073556474903008844155909751539138452992388098090819035876303158197880719728879461014922146317407316816826445296948933093348544713210655514699092967180829237200686864529649154091965588816256868663524211471862359473392861044779867179119584796944068192056118790783060448791268234300257469409927439674792396271586102146484933545175752565089983698694335000422778425761830146824167698871854021597433036823729404780730320402072016572746894985223430108967293159952019908905167924144583517375436987343105730777387453965057624049239829851758551250111394246790521933080663073053182391005683644709164521921085736805565188929663981833387072023657889188694309183758096793985639274269944511149624770141466864329395074846386467788828410218180499132535192193670153664842427573810879924504568893450058027275710331809815082808736516590000935393510547129570823833946793619492562284452944813436516886184801457969878868428169893374593183392932678872899900845921245178537977481047251162344103985811529867032338393209599088342409979494692791318436227689270066615414490991676771075204998483445496218125902523999560623359754189775737061405515234963876345642985765051417322860444009269341637942330348154263747698622486613603118671886937899213857918306217877300025130573663885699898369378850424731670440616196936699004628790981411944698111841936388594089385498559508487750570686688334726761457775594921054503044968370021820398319215226995829016211061735509797126727851198290032701408721306341288897742516371148358030747761360830724166720096631061976343319724126797511060993592053771348463748246701423188072626014500538533990819386403475406742736651223858689230242050166868091509530559953579659049819912412563196286657803088380331948499369580701769021308881618612414509698953164552689607959568119841385231193395223842228989762356149078974820016519548843529433674066552709875079044920799286453537594882890325922109498900645811314523324517513408781692699196539862909619767080642918012136282406457607041003068970196428442002927595445038565981291055817270735051988013163833142814477779303030890797689014863488969137406086049864165299380716524865430995804154061197561288518454975528245244649124676638707400494419303563192813794870103033079787127866600108292737895979381994250496498212680391447689416005835371560928265105433373114919388079345795084209116056538321323650694518909313516456911466501550814371543667580684175062454755018494292842489685872412131364338486621849346458275774514190333394560376038977269248628601518805357087122407055851982916740383665451181517544419666948685706765837259414691290942236878360128434579469506450636459686452714154054653894358414728830859046168013208397829270993585186917386131211236440950771369603060692490360264836076134936757291969743583912124655544403063728369859791222447397467774644398044287013309226589466193776312788176271033613123118816778347970374239876893912953685664915966256235265921394466193581177851663204077309266688631360171780126594169112052685418091068713775270360655640741085482043364529670513969320327180119290078391483949305019318264833005234669841625097423520913183993795362509460537208476525938124450118809288443100765565305031555179818435994380892644157499272745640925932628113772956406451767323938239863737141329894508830772413090048344792866274712911565441430818876764284185027449226832305840652985259035459121654936573126394945685628609822404919976778373265105328462424358832446050800833492928558068991631629745340186311509489009222095630963257504588808775064429556312313373280232615217427166821321331094346017372631336761372851863434263545265499976357050730070296966667259401127105356040416077451950933022480006087792378934230627239560685727204916128505916495486187873453360582357602154314092778727311544403530008343911925511762972545153646153754715849579125950499460593963231590919053113373208114369586895228893262017236174021080981915458114915338898683850243459446291406067934160046728496732491423606705514617864970761908203304970213270205154035366533286193391590924557804202187226201752448035337539842854316680012779352629248514828782852234101045765477317668667018194287350834540079539620264808578084353050488571932864151214856438504490168093070221772030040688803405851130882213940079160954017848124810833637316186179468119214670271087400686966045835531018619962538167958414442397971503954698832729155479536549536000082887175062952939929429460062657435449824602134444526807721397056634312211232565914966285448760553640601156080599287619498827680337847483527261804334576031959647990655665024825591160362312663878427105009324007838270633862334429047291527994441516676641290681461152964932382282853647565677029614880654765100197624731756628726575011110586035741979695524702759181866449681142237001306128819631229803393461108945235522382786908220012675889103663185222374238311174628639945650272125916686366463463667893016522678285789022829965099847913125426698987083937833609399559356227381740220243961940699763133282528914498822451165879942077842738801227120711095774437119809265563451166385844833326708305641983993875564332226852211464322340392310505082225328137170204847085824763807042457746827336125789746960617772671646530068964797994329954944026164218031069788923801981325311948094952283725176761071381137988792529349679582110802427426542807763512508251112332335543236676653182376843709446280452568253067356531227637015563843278100885165242101298266812957512395351802339852474745516193043567256032082427708987598852819520192587348570636090696159593620967406480334878319030425554100023812452602391547064416920385801444962127605723600818413963864345941788554641309032317317313988752708146606361260860797665846294768194346719020389379130738514803014893006528593922104757282172605202401377792586995030791281116810610011182850388372537501781974359457237750152845863704921222086340084471634122627177235931742944038425406860943804731466532120658176187739374870697906463170549043679445368256324069622688474144463137762686348388242892499389899021022110482480676349714431353264094503468631452386724380804144090793944232093622319455346812116280628810942153080019360983699414664147796745610080258501446067452398737794766384364829242367329829281020241997505981081256162310332881653519825949829718960099298359399742725457579882398594640020576474895194975701102557033367127707204840575559218373898115596202183710723692328096184664801997932562484534050490915379513910171167451257959774788672269827533375159944213592837236322990395916143977240636369370805152465998333107711210133632262205184275262909666932666761976745471848017993586882029006704867069570545209469495716273791845005137810860259607230956543822249107562250720721468436729569207449878476214822018890257797586900052899606026291422734595384833879739251712472601196534324086083934731715326147808742222200686658390654180458516000903031570692666304697788035082544111866229712361933275560488031496918249261875453063079550992707659746637273693482966789647883373022506609254903085846071953475402401427938657545687055565948504409187299634092809722165190200521466470583995997691818771914539523425542946379512448819103069389640619808049820064381442980790078588863387981641707916782545952218752982890356632068037670572855262668248093170721081069238553199656199947440924392878950203280456815278372945664590018013798784979127090739570543509720308036315729256657116243251058320643331622273966308973806500660140279155020036816847077702554312400014331556061254783434631247546331870121311128484367043795781904980170963900975677381977401559391953074765405258470984745223706854316264021860400380620684396431465604549185277483782843403903701280175619713281719966591374448916006277139351724688607199366597328701705607597492361473573114592935192255124214588159769759264032298498232927972354526611957831959092077051553970710352901399963188065916198759844592464243641692647086813017686950711766609463508897486415109889517135921299816888883239314270220539693074190860393035067315990966443474722877257903301244759473128410585800396287356063483829398226758196075821475036806711474807863871778387129541803015861780287613444978677705676963398728090559769704832582977479522963845774085800885593630553146467654442302669161168341312565942135660329049871387447515718632220800935017234096833122482649482786779551258047695685560799405965866433167197837457783448377506178288971600592316378832942244544844397695513073961443212976356856944964574274279129989279522557480624240243607105057422228349998470175597598454399358743713112578202474979310328279498985246411167516810813269085674953089062073208399184151284569995843017888429117646816838834420934722962057318768837365553299618584474208939922669939754278048647533736577939824126478516333456195039771467982803970209528203834923569743712900375707930654139180711583014586546266794455342983272299121904440768754105256465942959595849572821579144808796697624509169253684351581733399240339304169453993760044056329145423425976549621514661993212546185583390322109525652278031943331341510956546749569468640110485256186051637528280688486310903887871453573948012174684463614236292798856079311367316018992967096730834728436348841734105162650843148813382876888610293516172589310193055315722031376027346700923373888878996579181254676204004740805420112023265982125792570376253303742759934065680195567517232260635871818337469451982281492331361034379668159171687817194138023125573862055328869458404028812390829043268842492536450706999675723035800896515340170713761787219196448755561786527021686804674766662325982168994733043558041820968209576696283860159731464128459425705205118157918162484282811062255074073295358356067433671574826244955014254672375450299737096403540091068039729449422965441010999242203153086019371282520386349126102767614012163030806027585818298520938326237044392038207393931905873244898396833366940676003750703406973756196407129021546747707761964286463512726607614635245609347959519949222848772966500162922823216193487502481610533878644051417227884760738978076179125442218836896472305492823250225291686188699570081590267313813006529222177759304122239616667989797017335460746834255315880963927934992186326191534181263041614513766534836586167645404504670915492500876841059472824932422452065338331695909643582518319522738852089388334841242222215855054846739560245749772570126366942187970256740911285497800789247400852619592773163929244086298177371039466980090572433074951625920436089879848408711379169471983441913849986391395721824870853960696548800758784624115410588227784495326262123653658077130614325090229852767269283246593932516064587829280330794881623110403585388974647349516530020806210171498268765761184869505030950120807461130655986436219221514056119267918220834957939237774036999000002260189226732402677983119450057189043060099152267929286476437772914814833660010505957267361591885767641342163607925545976905299757738428890364363209609403025076460077442175106425969839309440415440414256204262377679788566298112105057601561560809250247532032986595529531533726659964290380429563235751760274957930897787486745782311184498910103247657685093589912326298929551037857793029548668159116743785908525048667240609051182500769058299157539551204593811236356085695947467073366476485965973112877364192700351263967934136428728835359042878195378246810317322375978023300077417291358371104229405134251484634340542525676392207866765584634138038263047285033513073275939698978048124731115184431096341151124736093675339758151861561336777238437993481850469582199715453389080832081070441393604687571615566882451251284653234800060231863702626341742334221634042511939864655343159671367494957410064246235938586902104893144369049726947868594863467413107164068248059537011360412600666571443888485890065553365022841301530287328735828003450882090138791344473659861341715114624181915824734896257495521028493362740831380997463123691759068191886493217732228899199979144182740046547978229912244776556197401042308025615373027304785966699777913322865571699281114550503214111967048880429577279936004976102417884554370084925972024185591101088097535173513166389014536933995865511539841371761139011163862213552240609269877454049952863646335450453281421619043982924293597734799929635082800268496596776953208812391013379187796704271366010686480653070867095818630149456817779027999133252030242389790576561961289025138100958970331014784760735972848104207912045464109074208279429686301829177536006684973893208554295456773040554810035203824164346387218813249528711342654530115822762537403825344740157738836490392928274873300730711708849744019526660768995327812905893035032279022863956190909639065800687184270276623632353470900203995905034671208447601543610754341663642789926476693974981090726137518232707387729751463734157069560841005662856505064123346790248943901221169545497837702874987387953181770928099808684822097697637847265476514019614693022948368685251879020938865755514262292340476582300206936903550395267812057239802609797657000438901362960219413043535002079366154547472530168985394751492888254910142674318441357893200317809213994550194794972397560859269957136426299014312865545253789081699648189294558967563566594041237696187603547012634119517106210483062016781843836346409031081847505009669277733386536175750381358135241550829043575601181180157495518126225236751699350487779572244483845290550318718284351044231479751296058332815710182639139956380468218138653675307590866085464947540990361578447576815697208409805858064891061513144151924243679096100506190283118813632176625884495672072311128731677271669379234900343016505213194755649711411334958250748548766797290235089431833262338404284552432317357519208708706203720068879451092623913866782303780683850917472671773412518212176902217072086380199576679406012465916341834128104112469615344973951146820191981492737815596696640705121241429269283139167858506013522319367671034993416882117021162129229996326215660032536999336964710363175672857011332450190371160064944225879879098643371674504743038095377444867551021220312612974534332692113182034588725389576167160556300388301801234519827045743612271962925789272254840558892607267503351360780352718067725688063119647046726253318552681391297945313353674568738315623992476704191403028313934338021035488885160941345735427412044750803195745513130721746231463296136612532505948386887985571949551272801171730938988418677716771349099424462781505130524326778194783573197192842418386580504523644137996352722586500993420985902799379518418883433948289805021802635680698620934814121204673202803124956705699907298727393073811400651512421863742966768556228231255078754384531541552000132917079016837059226033624300129082481331059610276662291955236847355135652224493757379858791688960658580791354710365182824363048822379869502849360516125520008541930422118824359788146569507490271528930488055105827038802224485544807011231667356555541999685379391283556025507942366525006982890313581972466297215665200671301158570347806301587280004857455540328661431424445398567137635960278716535312848307974426537446420262972123290702744841596832224686762277873572994082869816997247913609007515779517962967906361673691834404695298496132865180933425684648461325467712957605862344533083337099205607569629381703796653278369002964912024610894742952665502501932399322051616492376334485512352188447370806146825087952867680128593841449710886854763843632224299056518041039814945087822690077323473092064112134348899712143754153027379398508880713453905192491697964203409465576565724425120327155763353510622495906874657505135555486884796308772052259328593273259299500370898403023511546882779037861342904152267215598750963150041404900824883049078265739916893448226941585407981377761127257205579155298064375117555173077516637548204873419622906582240070480450306202869583606432482518064340226308885172809457607963386873378859471157192016013388257963381564163720704495699193356991591756128428708396764640194314315287205269072585808949283132045683058967884557663146695145454431820313523067970699379957772778965106702595156832482341593675058868790494768697268767144821382191040016648829798769452296638915885158231162370265756760129299205824041147227887957906637103534551436608797103587972338221856825985626286182610875685448273674994481347066662015185583443809406634128413770662557877740693262867533414364528479450528626827707044195004615889657779655093084489231164164324118042853767490902404186083010464144795018170546522429392870998546478712873684005948667693848825531900433462174295619231205606833782679751803892373697957076565498295135174524056571616334307535433249108238091115763023688602894236562170200313034193917380233717047766407351600705994927501164755507937181012368273463874227595203000420072326206603424284374620391512666507750968280160172815745137315910649782026054061026931909537365644161988342091237543678604220058254086896838074396690005602875041218317121394212815590494919000493149633597775755425346136201303316677463001805662953820052030821033501361267885352055060836777526231942612278743104395176286566854202591826933601972916518521868308644395755242635906698111229855824245141257736364823414493380806649036688286858446926517162547563613309357427785289623307147774147337272058422574714001332580939726217589176511663550321738257300937303422099552333958486472427439209192410533295593631293147029937735900037317813996446605962283652887556982388956793264981882779261786452692168930691935717093809236572225868963220586764846549790578034288149169343919713522936616634764381105141227539087332505305873078094500608096331899288243239189128959395932291102120255300167882373241117654463319032591084009054212967077185969229112775644042883899724938018071936380921639345637190993923284389511516890549398052753967948874720250676826361180742254736577640243714169970749160582973280813999107609729929656452530887500589814125595701792390362839311130976689515264095528704410920240560647501963561051371518272720760368740942396169378102800407746150381070704951710513804928593879941892065088622684942119325584907106107098001091357116297241756812018634189607125614173741193682459268976337783846101707676907056592319383651848927539725322839667528287737112801449486434667537394449253853201810228310863516110462101776195520711718534454181998881102862948092174107045058424192521036622924541042920659837470221589898680457154215176982516757566847773192836036256791488665300059434507590875768508380094168551396659451041891124665629661678693320310191769084723824903576029291422915271514045768065983171046578919982539825381201198942495571513335287461579265592775857763029915504660104694390231084928954121653023516813644760338501034215730229066476803430933332858105345465110899641818384277522522987282986598787630501901345082803783245783330186469236202471260724758124544452061415639260522182788200813106250850353256886282804697745508837866362039422194183723599603578518173088911897959277310237413955297376366133407511144759001999751702676942251895258156634804610306373227674300306625001587610415096631380631250816134782541965859516891203184157248647766500059766109465387755820761546196618958290637723645660982910742326672328095815593698333828599641365128867201109097637636822247587229783699766637134265910540021952921976122853570711385870639978220053616073997659448513399338529796146399343854183002206620113506053789742319241086689359981576280811476811842478764991695497718329550445025373502230379455217926289761351245723134953750957850879004092101301327011696031016322012257598773104324161854792534263431916343771492799749147910779418621315104675422332971650123568334662603891589763543024363665288353728768274119082165955944214292171675757908579865551768074897341262449934900932693656497677670559520444108086997438332329701264679741653241784276800378452243897377972857922224735078243594434549439142328415561012556796215662793763433115321418054777383337855730962825599039972343168653038602037777428190323150805160840437462951516101230952002577409506564866697212741057351620720950302241336743222760519373124316117188280375932547799195715872562071236078896481576648594125761311862065735390808952328615474943015627590153010445809484236839640307350137824045764708253431825687945257138405577814973535513244536787494051753765519937816456474245126697311996659677986920450017705459987350002997709334010816941922889103442604533776542009836040518697683393456441010788221953272699366911456320341132882038477178636797289743067736710107269466358840009970946702346624535911604736383077747437236921133709254897132921824699235244755510114246945610998413780712245518697677667342691507020978740509360319421821724168304609555581921551009288904840326205816224841536935803002473895631866509354354467692437736948748205093499622785652723877428719319752192592421728583908576150708810919792740562676311579748047828509071790701137852996210905327242183428094964429625388670920346147940093363504216007698615510974335966127313430837666255063958668386844212877706933806246424631652235591422870069916247890447321346141553319271650427033800818539174011336094770121484339193025286183678434280187404561440590011367965840292421728930534943566341698064098197275688559262212616747701085799520557425127751215373649350442286283055238243331355487143082708441680422383625791451511854999215522827406603309109789709043180464450828446987302657072840700719791425543118576881609761862559453159552282802178860170471728245358999334754616916619804936905743890250276540217160816500511802595659961967702559123886168379469325656323079731781295739579724033807443718173792522287535248243467795804637422446847434089219238584907542121897514609840711633718695874502253754598626945801625634939088505091370777424947435109775508849064226439269352989452175420583406911857959560736980727366597339667107829803747886982025157175298869097333635336776715107689186482903683469674541420344228809507657789086033708929249912343656255555847122438372953892423887643974449606867361223174905581702389374265925179818062757923472360652626317347753117636016596389329100612616481288575780056105293210349974721985464046584962485573756816329704206646589811112593222428294521944372723833885165616580490966572174038986473300547816729322774208570686859320660928313961041044438412772336803273835046267060573631645713108227955101841494735108808162508179143166562783455345966462873280661689603345816842592937959456216302790186333583358117384091936872700538849876291377038803097769499901703555279754416679512301675598976418654506320235769952426788606736116302961665340237217814484953561653158906284481521231532132484263280865283402260875655333840581875826227922613344386649974149283629498420699167367270467644472568139613102871051598122193177907967959070082973827387949976197704238262402240606675873920561534493294942751569777166618440323527778816327887639308047513332974755815881217484423635020507021192056934367929396756780138052602257271843255284642523450669361607141646405792393928154959832145419596880469051402058924621109913799146923170062932255412189868548225608250430119485413500937756186905457764865525395446573376489576706226831638918911643346155747885586286775537024804158032970826175549417858939205293254897334176630456634920469270859634948256790225668089879921071677622333172212656692632979129968889668211335252671657503863794604908608216791959972298574139129466983569911618904634376307537503046041866254094048419925228220919903832765035457469248046209273174050733393587418130545822300478659157411739734270252299542533709286002288977868370467319857769208923096557341284514308917501566499772422315308194666337947260839246229607978139108663566298026852760397646549240752936804481408579329897250278566267724219762397387669484573007681819103203964826892768199234544769561510698031054870558414575114838276002352374266107515766512082667496834139276303036233516871198376662191394243971395549681167733211676255270876390442445135017425306206597483719778962797173548075737085010499099690523216831626314094284537771219663820383762953662457400043112833385264209841775237509203162167058022611627936038457756565100666106128573246261753045838415692486918174829411617828792718452422320508210442690708491490820890207651942082307202982315385412977134060577252915559780283579618246868631395733126290661752448784224574939569626899774206229864722026716939021371898075280215892912006437007346732395237581913251493619279430899969440640544991008479324720797044125031574415388430882473533394037934313699355353022146624107790059734933315213330468901361581244181176085472826060889228840461689818367610819574020337997722456276526180959043463680353144300805884389282227054306487624555718397154273514494102737373197021073852684393998523641848021724698883149069511392300820473336318214112725830282381957825472839995967166522393869787957928934944598517705025013493380681054973617437700693921782053899561908697372910907317736041662054447281111468743683499905053964203034771386803623565071385970493269038025697865818858028845036382210749986224645404300927026927084178465015315442826294920108990592250912941944309244947726852136088221722704326099430274788071602168306888766904869896495733769217863504533004583544064877333538418951323361647949626244039962864971268619916696132228483998881032439534461990890000373782644682432298834218367153260705717906267915341794037488166996498092224165337039050902746034836793357915189672210745312185315807768550326093623600471832258314654982052000571512819113393053857786535141052669717386573661997988749030309186863993110591719458487841948264653563604654641494312429864533344973952028139836818678816057382120025293658013882444050883814112759272292403509425946986576186906841483674356271742366764563764378976221474700795758505568136249754067718602351505091198381563573682092813829918736224562405723803674716683246064731353367931053290146077761264103314733665606398250508006087060117440802225744968756301767340545680435474889096101410787946861470205293177841897249257164548447572987238813776563717195102610088952052821581076477430448958187319577919291368431164920695477642750491413530749056888884898286454873539244433860780230841941741446974417666907015703604747800917394063298555318115367304436053809580881859244101088527342715753822980773714505917115998051287117503504822554764366907422720596143762727784005925652667169759061993206807382888771848571594607382897554940407532033768931893828130671094454510328026227228236006110962329787836446585195279762367051012215995176779815533470878584674161292158383862502103561823806561021559724820942205534400207783100838581576469274439095820134400033279628742458842194008503423826256129385935389755503269558476486632123361265964698062932859606754293737651501487849744272012383058949036493174448271574103751240344367469769927535665154632402109753118888998341724621601429845843143359775326602642706873679543404267200798023871462294845497007967779827848236751404492835614192846503040967951067163718285004073976018219266334057330935067843857498249209404287714989876079140186023401114209185708730504571707386756993715002098452147249040458301699077534629228453105863871338485331120789735975412415335322158216604191438199674296798744241493814422888502192787339592282720763510786933768547012913988141056889784271929909802714965228619284316280980239689004930004828286178594188902957847148147519167881677693848090751199754949509482547090472718996665584601838070954572372036946160470765247274092533175648502902418861938719403846226501039551173407218428530641207295449000613493053800260937852360686320274617676348693838128338556345925480783323068465051005407498983057499724474712279575094620958683670099607252458470519023454450388984257012269215886496630879787932354361155256430534246851346258253008948712324538616837346930812294549337296158059615165917873269268505052087363685439276910861555777487808941887695282286016484466616657562525707238353052891770984305779253659726456329820751428460719137953008949057540274893042713637590938392001362916558598562167508112031971122249640813355626120665793409179453484568829981361877589938716550631338191142582121030040630132608591469204548210503035771287194900169630161573649455089170792388593755853583778822711953366240951040588545078941697253642261529939493300609110041836161410994677133413939297338374847044819777505631954928456546729413580330850430520361386589792810489485493943181754054586802263756128712612966009785883344377733364753209647890956743407270461649304445502214985561797720727910962160720554298847978630628100114319017738412663980684815995317968981880400027414326654645875932970657426428273645510428928776814880384993339682577368511050049141691736829925901586137556644998470134181829122247533570368552763107523470019149328721813871987126431817312818529808742422675013928739191808553159768428861089552060655245932162988937924493052471258514226071476673504920648179761676086158379763020181272382805641654739494864195683927813565857466881513476528406844040907411032318091517098802657551393063667283928371276172838854288215844656095503534626998772469371968083038993931746931752320114972494245327532371814868467805737307052440685573507042575078999861677414938359074012750011196662125340349609159769984803702834443715125347503038181300148655271180942016096303106951719670783575516109872619789594740822245918717251605547244750962114702076053001088383448159601438899973282627760937565613700131997472924918785782497254832095556211096556323170951118873276262802954561165638270478622680389887194938308273562139643485981264360683313519020462294727751082068387381798242061873627726772572982773313515959568390993722767941615968898154116212408698371046444497720769190119418723112121234788445261400398828877920704677548954181215255521310142587955968652707120263556855688963471412288729523132512049512740387424898141032980375418226216724023538519953123049609475290888659381059431715490856365365591131212742965355999650493434726561638624454716407117855158380063779106807483141210919661801048723498995827693954283972496369853957903103634099987840902763473527218072309606122790670655274944478272963255541334505874047558174329337859092161712835884666236510049573982787140109233964024594365834390192298134776985940127535011190866611554672603207379070675014787600529774148262981755531230554402906600011295268029548675299354126483310649560228686704867730700540223796189865905100856711345924862952110324720147707670648603386568345935752267797557854631903269882923150300781623533788488533450747792520138531311749359425740667974124598452547691781702904048831890160029119124774526985028687397651393694779561833675580420765053866528826810404426909516708598129925575502069113893142129338413008851103626452601099128007610450461788900474602075468461920018417603253886428387623422062519198904632591143251108870901570122971730328022468919283107043766995151560412412157964316610227546414691498354823385533857380888092248850439834975669510106274352482162249649929281795356827264574790420876641815780524895774921511054471269927760664478118955152731034344782019654149168152566326450611824546725400667708020986218633181050287906950848619465180104167482613111399496602432673182771810230671453894467979351945127436917269583300711330642979022528718068362086953149228893862490694490031198721212645874787215731052722999850579434853487526739371638099198981055727422030984888621569241360179811424117371588661123203847745081211263752669192555808098199032893145986735008047268272274121508908366255163095250575040270940069096521128095898825839000383986103021626954532887255250549438813450401631248553391119704138763122049630090885102407574221848772468421033566424591085417190160007617496481845395203982305488459983411475352151225809021862643396414363498091133280167582875541806364426455520087996549613334534772238713990923575514602931492301768015269697660486901156716686566637663841212681340524449313946381685356624297140124800628147887229765535854040670204761080563103488834769590989091278450361684887739891122745892347054162660222589690924711861153174359883749172007652775044252861995636832273260635489273353596293096663711120648848122204333247803778901553570213466055177129499550163257288434086875631238873790358438451135812200768569448625568399469519053404415166426262767955005996917289458410966219287213410138107020133516930295754499586955102175606590590806879227069470108886677814239491623700448622955447257599698421189879537837350428353787229236915402749056285763021134316993788167232005547074492645190545730886680741458465377113553424690264181646420490959220165029080209198698910752902179506982269569106896214650244728824988848628829790107939477337271588365974813799508328976196960787424932428781524636355477289704613162473731222497692087153220046006289098818718437400468664717628578660297998984741746731430400810966173501027805391311662202923501339764746965337426267378264505498722528259917637934999605702383351953593145330403548510911773678511830351535573157705198741082503464626280654279803163471868508311361023219170216522670491606934560377321592254447348645462208965334707343695605361924866334326052681495067002249592412955111696301835513643593505228181720932753318750614038680063960270499064588477196368954184730003883261815498532763693574281404354428263170071278174512244000698804785328468959786478964692679315731095639850902867025826119942547612169349903596920023463179057891827414813616651019600196622768989068800593680181089739449049535234042381916290133544449640752499864031927761145701730911152797621365326082721250159830294671549153791388933793435626346317113443068776849804235102563498639453082350732427125585938677735250831786723796217442430169218653512609233274429583407932556417420900786471562153463398611355321955155332756565163134491655321323096060058170713317966937676925212330908727852150006496681371727727069441636996873759176134565722014856253921287323057031998996723715587429978534985773311614200401517296202214682699762202312081225519182450511185766301242879648874142491397158724067122539278280242645867344448793556708670246634235960955211881490554307286075846579871370049478575340425938103178895861242573997175897559761096899604736855522508130384156081745038678173648908564741967073260850655957422499948773777243968645479640033446954467601658213785252201014256427290941404423547815209694638257568332101599657341947076505221597716270616053964764385248255550286187339231994274741324411132438416522906616619767443034300064558502654799816094432313016406149198057596767021220896906128271764982937842116268318358189597558217691967622590447404816240377068542933705548728449203529244997230561530438380677692529489987882571498567717737859971591194783551151383748763154337049698536771896497298148889200846772505358562362457892550011301617586944019550254396093034072396538087618884919213313520232488856876959917282724675929784163122801932641767364866875449339385620454705947791901827059653603583839422787835487893994969142450875784025140301792458461342212019668423468325944710867395940789165788250690720668966913345449443547578093522761021830085109748988811675122361083661753501208962167119602350461201726492838220495256640474362598211131608337460983423841959578924737750999991797115230366103169193532273516698069826697928671054030636736907524139901398672326282528010141290206213949479564166086245551708346166335737100334538879561886519034945541605135088380988977590680292292871393787508340569144026010941010457851628379083941343791094465940440669285301284210519651012903828158671099007067095827988967466912651128201929437983831349900529413114328187402536446535801109866222544658227206232944720553025864512196430621910764599082067728627741036309971093354057471378391003517161799706913996984805409874086754902950544169322040461458767101595975233901082629859876365451847156912584300581294682535340073758683557136765886618743180129833193268322578067529324291709255877691864755576964013138598762025086757770444522482199051523673377324953320249933741245770139102199023874150636689167157705202584196708135408429568945467282099635034582205585869676655393814870582980833891632598204679920347265764561736377603324660453485365936452117476447454341020672051156140078715736329534039363303048717584786087594621023664732803601555601848096601308134330765471640549042846620093182607873069574076747468745129270996784550330371449827118894957239122098616753293204158021800887056588587965282692898894163621652442448795259675131866786125409234400852395058850612508680147182302711734060650402150269548906536873050664999756251355460497555557379778227533170215531186794194721727256753731201091627812722792492278742246521746850074099993507614044295769611502111014438057119995631169250150205393687059309406754197945387979207572647164579986544483402962446815904052156518639239245327916934120564229049234352182793000070465929725618323201351289298624310154979061248621254442994306416112780441871101952977799501949437137286547302862098273277036782080063179754591494598868673133459987852963699561934103993818686566599076446869169480001697180263890186769061985504828510428063793090469109791839035360495059806062402340995217850079924719696716746399111826067637506539557270524228130922705681943585789669357360975593842672965782498852063314248975001849437514582484358066871829718916822703602964221941297763382654509682838194274145219104301682996429778438963492375303911830505764541017463909218051185940631737294018394852906151180793158537371552706612514900514376241102317697177714790866476883086495640260204038131968099236285433311029737047109767876856125101313811805301665383144124988961738337595383932464194022130140500130713931378989355656405788135428015961230234248114876973690350258964268238922573561765075284972900853205381286353966201922336089075157156734651919450022339679115805236412135380281380914460853101052464604160669472397447719363632073679634287787269772836467511853491410973812138813545482575606222133618483902376505061882772691004707005748199122685257509865648769371110368883012733701762156912592459489462717316357325312558100530796757781817278579291899882224409020802796979250316472889308466981654011607871698415941556541600208436946690343919033207447910881581444677660288285449489506495760657535334448293820565559506138089527593633985524825117846016569979980554452883230733160885905231082455189968122765639119664178940123211382693521400215106349746874720991520199441261865914533238438359553503814184469732724146036586632763148092557992003067823640355592969783142043261837106873746540438100352194401825741783872038937518420768359307175345537371550837152435170335955257264498028102467013572856399313216543701740233214640580255968178238111731729058643630099311441714263128075159259240307524515596099233651992753035523095553988362612825510615660554445453970317925159604284938711958251698850196749516824704146070365052985624390560152875309902577617704794715192726613155280101150330692390988263246745381880930262852523672266858408264764333147104923579265548224370400807222301477813585630993020660070691577772824784923811088252825167104593239787624312296703789282612148888233974723229955137162687576708793694304552661872704467398122352279031255702188916952849850847720660044051001726423148627639913198485740623208146417292192426137387043368108105828204312786459848527415668884170129068907197835179487015650331231416712617686515559409173247154318121793858714682058375608431159954002755418019504398724856519298402579330161442364319164651319680825308300428365705379942800023482474481865235740719083170416132551048052182123009690522546358905670630291855927998233502672393999748622498712453246123847459159120693305305892330040228127672097555417269698416800964750334289845834753505633230628047533349083755872820424749189460770690465680391447369479922380772277732722464473446670436548604616677049394770536669734808733025923403860703291309472618942568288594826411070404155020176255791370873636668802582062996853465593947616696478066772024866647395631097869166249804894744122273970554722335625633140066351998327479178364126878185494918684339116977866546895945164481917553062749999770294756052319538175621210635771874738951898544021930925975544904888862781644108992438909511309654997371433326404958952666735258204043661799553199167192137835993437305313404116411181323116872893877235153138844756208718102917496202191639123895216144285923982089892306007915315325861361295839553333696494067195067412272785843690403018774295727147515219428678482920227558572306075513744408780750599870675453713092701068887209675018389512031831694269193529650395447767509269600018088304252785959415910268673667908450180224618724495873518904353642741189279287136317931459088350067657991839612374668211468080473791878288424756552622150083163238488996226970682233533448703758052436759975606088775642374277334477769519929353491156491783056540272020477670818564298536435686882482891819026238667628571299760759399834022389605069472482657709563169208482904124291070215703385766420021070920806499255740747637527072928366065321756178530146397013741604191781837318703565664647073254166853771608857663373126714024419432945086637630671640047854999663430556590266764863586012026017292411775915312762069294824703437417972827464783843215995540542698658855287316491151171534928766850367114770163538695098104964562070208104046928071906845407979865219174876368817218398851193173899319696177907783994055841778666931482606878356485930110598412537918689136442968504588075323122861138312976162266648734341108182212257375940787894936283426536474916481640365988705104767756281390224259065422754327711835073949926692109232266256099935371993661872025298027712658205551990220473312987492663413999137446677722592147407625205442034383272660774317838527967313700687383351415131677831747645597512374835319366088808017637582739814038897199654101616752204229450194276169910701187495782076995851087482275309502204961796186533262311469313359501953641616087318329665777125840646388826603039431748221780905110895684229391478271197295354037628373380920231565581504129749970891050640071706623240890435407544835099738742475538676030003034605642354634255403013332059208646792350231528046468264831659965668870421660436526733352788556553682444490034362227086260684023797656229580137833759980435759249979941876642019235781160923046213334932158620157012246506231695563061917479167183928499064428614729976706500240927131656673002331279066807504971312655934990016946241939756451830654056887088584701757664264242681383254797854636421577191071643181017328817119745459833609661446796666691265369668095117883318638519749434866167585274815360114109045618173634148703175503016341984654718844623937931657371780818240665863990911116423804620010084278801396181685794157495045336658295710929079405240907827222525969892356351505089440029318151540788032818766421953882661251465397808252754732982538980354649459546470260794555068532561916039056186059227433806611947621151993217747100396098623770729503030823354490412528341292435844975382263054627465717035818096047029371508674831450777205541522832644483660772349987070996012688361157470252150399174010350788289719309641624810878246351396303728929197795930074688664187448944484331848239139846266438590660672223600047655241636662171598005449154139809220570776350822222760069007991555502248272499908877501877004363004468864161732660371895254278166833884432838465769230729927285007860379357401861069619861106868986520797944627327418633765459458328423462752345151594636285615614675458710566060053901591806331655008468376500069420590579146260441803116825523258962589284155512848466236622816310627105920519872370619490347680221549990365992578337305528156496220079858941930667761082656054148959103780954744588090411496624897569924816450801906634759693914594795564264865610210922875011312967255354710007179775336927394310310996753535436040296793660366013888455942331399928125854282992770225464405033432708772544951950539523660758835512891444149446370319104278538102017289966743149399750762811718285931587656612663626948121099530585885223708697296106533535866021334972787731751197235754306101954704022747756903600286696183566325791287183792205223194019447389582132073892798691335568348906965535514935444385896126299568925299912190143299708511146705274480266899771253475024503030656054494447288161921155112947693435954525557040399542439471394498792921320854951897155711614448356718756044868869849117000633539247492176724413029712489739883509443599781613431433303507783808682573066864893710791050467742847244453996035929270863816425857720300362317635047780441243660846046045446120721001055432365148737529854795510064911639411351341955091709047107643133450703179945075549306563171246456940999154722679925922372766041282276917454348038219022859692663335468797892597169621900299674453220652328610006640263457694676927783738114110508131233272738153429560003508290767346861747468833380759929739776981482626066249162510290531095752364229862098210017425325991585707888633006405629107210419716401715960820916560562873189969914922584496457254742407207804775100839354903525437654538530998070301775222538080288595446269294993389008871736551491088781296915713792351104478025073800125958287791511209441029553025681688237440126818806540265209932045831591844443993232644929953232087775302061211150378475280358327737378491225230517146534701997568123232476592976463630859328864945349276005201395881887057959086592919965646110293928843386567365305499840063770811945481134976950566145618787509767641573141308132947829691603497441531516087103343503944627700412407929485933950227193684668359028290522145519021080206666715144645532388642059855468066113321384012008973818766211442771428018550776886960864113863232639510395747482963040460941772396701662041616487435071462076642752577735950867926138126114164933264280400469558996861271861165218099883349561783168944979390829870862284805933634389353394476961115985408432214607867866500541639451289505441090521571635864098318997244465324585631498486683846118378468320077342034669905652201230885480317978969798824072329138001604033412138059595896302545997355229914494403078710609056166664647306711385151140364982088079604925385645188786514042530420457934855992495677809349674811873772279856898957848571038916231617962228550857648666419513310972354372717636776969741178162249866431543503180219582876462358576936194762227217293331693705771657198403434358946559445953033887101135879620017262278959232611125585634517731952512302133151942274761504424455496520176482045557507538150615464430761963244011018470376492235792896479394391176102320458137532757616248728872671284474180113179909761857758783621554547604857850973555398453194270056283491500923684806845232817722916275850801261036766340687378107228468996497061815221239498683961149292974008815134754683173820534849400690197870434335673273080243675371966105240478064013611651011492942488938102084105518699944499184557140244651130132872377303955835922686627673091788243079849884784979136531189787261642653926302713104324136845680263818307039150223420324675082665130849966051109463846369462451521662874003183367187846372238870346666046717471447264652808091165228523170145124403889641381234406804883595962939625194754307204195765806390162136408124622962882849617869801419582452715733612452920863074587694830137238014814541823796544711580743895184391398043292149326895605059537327612289995840540416354605409972140783956798836234141635713532911799665167558707514139566682836114862001558136624923730237875637143350004225550922412574665837001491629161598074741508038210275832608651784233366858511620984198809427712598806110969145675210874225207016456434632716197284978298630704037740870479800071231705928333681625044634212263586175558811071579319663400218993632409153894292948793788048670872035794488186463656653978746120937862647934898728929212555352957319947598983478148710575059187315745876812956531929081852482011994798289083961316320344287293745500734240560233956401981134577949639574677272417586942244869166575561423448827717826543090216900464171603056693082417420682035332580734381683554776316672616237209139230161879809405535429015954781020721313382417444925157546491261039547638456698960970444673019129461359145847625111913730738479578625925665158577104211071993043998631296522924590808768250779261474785270414226536374020626723701616931597840678407815903993973518002387374173487090988086442016806912144883931878095251600057786523590426489527700186421429854975205995886840535959555978961891151588592241940961176946462571798256296002846171402686651181432974036334032080994966282875512719864981075065689124361695364311776552462189342661287218800316712596324233380325449570663996628185897552826074661009482026940348736987846358096769763655519324035610808975430976255025875604694688793404389866840591512611208394160087439568924364972368022024595524825823791646534404599946593622597411225902734802090030554587258224702311003074703452469782788324989172096698403833019097595994374234871834950510339768077349153691602488410484989908303737041727477928599031853525721975558830729090647080163598509093351780863548919725020202377751614879529442199909249621868862894924405805803376910437358780901845521792490863784309084201309046966918759942563498746897653033838240352078936919746603300817659557028629371492348465877958027454184490941473326660289085142325255786782049574365387353612257366704179640339534319723315971031156481811496807877559566502964624930552062969096094403077206209490808669777173892785222721872439697543154031756283083502651739143623405254223519346994371745165434624524859037302985405697328991371793363583394025367780827154567409924119710688625877067658134451830790458252569197794604113973534049824460755178763654374769015870173542103856260798354340200957107641669970582984517324970345172271049968631616342411614374544141117706304166844449959197277843353145252185281976328703355432638339586545997310699299957500601323949193998633240363592574933697400317738327703540906786882795378244057542524441938586557143955659691568406237252793472570196403382605098683628427328794828909922496257881328999358457381239829678977548254963568219463730347964543322038888970463772517954491599752287615583651206496354470397923788544167660916070289649749917100379863723906186849376140053028492869758398193067568032077099830610520221706587858916903329169262799289476277257557289717587524554198679039139612242160338490016067462205715545488800611759640810126417624801811098141731153090413528824353532770868062370844972638710575783684906030619759484593335051695024578014418001970428752143509612226799350553838806557015383704196135224646394799989316216932656282670270700377902706505798672564646440538320656564151119713233934802131351147289319952649074117304165877304889051472241888813889347271388515105792766073314006021955720467711804454252235086568003273847459119561610484488426511151008477969583670772092322739904915565270926473488652273908103469060301040267842279843085304559563317060098074152516100417575244912190888076277871237185329902972425935151874232586111624244337849911361872867348013988908328673718128252271261423603711828287978643517852496253300998630637147721088685343129510439467687327210330556479203008705509912206938967583874472034515049459977108373193687068999682629682799856668698371907370325897111906614054101217983593792164175206804758808686483777364333523912444953191796224785757308104351134110226883083283405224728460878751623799708275417277744024641613739614116633710422654145134404151177204361723126313616178824893181866209836767642938223176650809808110912208311339450626495620990109215767667953876577301378811487738111735880207726461822174733258883295865695398397623872852507478413939277835157165012221617623032196293373259602781397062650323175165557163817527627475556878801556581301124081028602705683575161086649870001066104388791772105311791136180620055487299450977781979132625121756331875901456072873035113665827744726686202107287558484329548760515695896231950234447454003287582307653488936804010287725000924097991893560668477750502466024998513665009313694354135521787764220358929533391464250851315290837715854776611262191866426449776411050513440745837796232311052069820123143172950827965759237186099901771531807384062357988033104756736007382047162655700687752559572422528481642054748729444564845068218489804261000878305153891489516699687475266217972702702387183734563206762845639525594713835262663486220064769093918408031592265299518423402292025784229616007415686073670257018351799674712168142269636509638184437533189422206262752576360656745736060022366171555292793797887698914945969424176212198191452925282715850321635413550467731582052753449794526952899259416658121641742968349591207526855572618780041866186182362723100394971416667696407134460926369582429730371628559332634770312389753254075245086394956044569966648230249284798387729944433070839318069289833397547075511021398029422465705840266278699834639136293737139118500939653219732320047705518607075104809814323276296951111517510400827423152522979192412271132628673384366707270662287825633041688240231605408176778547037542404894776393038282612437072118506641703634316569051857620850130918227620336681617083914050213188798145925896400794264591061023965340825973389082410091556140209254415077919584966546224923624816064686506482156697825742572560957364731727196047176370556723284831918947468353899065086163545845985007200978483998748281521572125287895697864565907325515537617217701069732322663157371623396006770270401814275518554757550593003734105758650109174842111362790820162338437327529193885779240190966050762055286637401149965215457017727937577262728620825422637537672948841373916328183883869861252216562293163931549710697856037869230092577258753074040650557383835711967476961390498806981860405271456964820390307323814523550124198920676533851087926715853245825353062443257381608420428449604298673767198788175695152726611781629130170134594399540183589012718534119286001494807377099369441065419652654761953558116036878977818352489416605924422482541201681637558509004428971361307264989143302800518117367319994562352403735963634084566811652969287386999928942424085930694078639969733432244226025841767928332312608710180681764464812688061992534126820678922375727081086948898923094523579761021434803478475793810548180008454919729991989149989574708458979717329015471506224597245518541040830018228599622850192765025873229334605327613885254190477415944587867951192062631540216548469012664505452040265981159323569831384179955201497516551423162549999181384227514798866989542139406348306795840786203978317611461003330794369113742973953712533175892800719460709332678919333198900588377634375895361670015317144630425186362803509519647976461366856870163962848245183226095325560239669567391513822568974948355518669576515002026834744164867722673872485210463448830450632712359558204815702684748464688041926856207685540480927244395424468133958435859256242501707739931647104310407378377038369166855626900522408001249430558522613203816445272078186700034058765498146980121933254536719448597906780311363680705717603102865949248170760743774602981047680564969042064624525390643571579069950130694839863696581081001600979445565222988359276211082622321329889802835925684910271232053257348383882648412354538547115924983963075339244469048906781003401559109339228154407608454175441398999458561631312470532133822624273506376397589111962512443184663936779584946949038803675057423693647208078717234003792078610356213179393564722917248317576163844948760627807246424420775275308471424277735576205342472252089030707806209605633299946158236766736089163371421992487693051447949672628787530965673111355229572231301770471749698224522471054757110851476672538899282210906650019702575721017113100824481160534470368366329695046576674107310864753552877622724696886738366352912501864351953518908008583359237155032881183205182789579919636041944366589350320364332254894028109861397446141599685779797679627651722782343245263231003489845373009564982588408376128355101920020697402223492366235216287684384136448565673898308994311709461785156003331805743373110523003108181886945551580229009418300814099198271836807144633680009683110963632312531375988709929954014089862855865678101720029594040769143011209861674704771668044444930473066983798503457813182680098160526193843568290566517210495024822261860948850095525030602036628460458157780713375775596689933190327615071115339959721088752376733883356155336474058155093196067843209655009307665947671425421975083217079442993021550074984764279614712863159411774552797432779588743864125191736569955644757004958924857327070157063359096283322807279401105092989700976648571288641412599894434765285796443459902636497511816877672299305510373420737260703479992528329956004172804117103638360222691086867922835346649507333383776661632668709811125707610781247307979464992876783138065605405532939187278984760380359331103590395315353333316720709197878850245375688973098083346479229911486782904688716851960868536586562054383480385927276014013257240463850300808543542892304909955944164359113087037513862755783138157674210670692074574582879853696725439059137693092354251181713661261144899568268431056661023079236990677546187040026659960027175326039699799534010089957368122864005786646122085859806343532938285492111424174471931939740096747957229439466710232302729137219889129082139297279485210819227124816516097760567481029741958422044607403015948968955878530317639417094039317487453375690085138107647009839296173327763170232258452980316341515655637027269854972354881995615579495058450663234407772107389090725058965133748444905485314205797781616202331845910140409973634360873246603315441575187272603952822358024265944506829811847878883989827112833302256361891784480905209986449872188416222723787575193255499963467468794582787177209678031043955315365387381922633162905498403252102778393489533773092008376567405894051598928079478351816852444373801338173593511241667042938264869645410417888569347965899177667785723926694166093682053646202633938567175717727483094215995426322309165591453947282245229036334004593715214176609857947961125810720434014068780910415927431498996550130828031461699198123999915803505061312533566845161338658164910757161432173612656799881776784234912687981370077483001684129921108449498799936575748177508914572669402113732679141465085024241426688399481740108009806386872661376257164776462797458288511862972333575236472926297417413270349175237915628158176172649854283819903113346223833288952914790823134490919065221239317220106933579776376495754466735450111286317199662447211240958700251235467841745708516814500027967958978394588407414167539564192952115910738362397294042272475667500503974079800252896428359583110683933629682589396303616196989294992262940552031433480699023783852016558558550042873319017967829341702521499677773853511791843948992437635727853457551712762658840450766536272393742022174485074853647103719790484907236800966800406025053527293906056615570556498437898271812947508514503737711660346905455735603719010301342165993331075414032384777218420380957345721018684671634402345311670228242688115283353788228192886947453011690414467439101610842484286316244525165671470530466351802415024642960355534856721418359314161837945802760453530095273735622532402604133732632147411370222307865410587309084488992786325033968692255196131007475551511843601410401994395446942301130144719365045466103759577396178957320449480773331440142420879746233803511372245382940142867411630402140679830565259358812888893950185190548197070006040652472654352594806381287698896995008300278397969719851987609544737258750025640228425867737687541753839844283501029756498139124859640551059429252728973574348616901907754465494501523715696592877576025994971433554010799960223931624977241049213856949045282657105683806726784442317679100127979329844250763837399411707834259507822844389967786241245254328256524703459583947425100981023631806923620021397526305966012167073940322101620579017767465470834078352021313844220389022554396166092085503266627662637774088456781190081763513057999726232666691355324233947635661849384711472247753688426471925981882674899372108190687336467423870152913153771778660459524122623605975353358021423418518463485992997501034360570916435002809522208474731730194761380349919260561952837372077952913312560958829782828426074283583574190891313252513268708608831512906178671561037494744234210441434834412153402930860886232219948324191620424114036508226985447823343744690564110439740233894853966668916895876250786249492413071638420515669500568868030730302353815716758471468349241258246691098360454438390256423874369312908339005825157941010164571699138584651412982304788303987874732739413622029989414384521963175104741303001185478164731515939495566072833110397742411705367865314786868250012455639792078025933000534561828346021683377811477425382972715312068332074845142461619034562421635276366112061624256469033729421533883614084384920228864529066769829994502023984561498593919230777193747341883260703718995382574652986622651172826937875136144886096059168557076318617549528348977301264196428800666124378570473086995071187718721644456671008327549619574319223993642219824717391212006094697995649633051761447910815090497975982300656947889874528796727200809660345989063569956856341435920784355328604486240024603342946193056141827757944012069279200280431851755368946540354448348819490969118394469687809979959695186884168945381390043485261732158775064586334657744757480141310030477163066221986181714369780534650002199886238641849450248340351337886304941869808705362416002078382429962887445491329850578697706311307582160162656811206503275230976657616035055751777339531392875274152354875492740462365697701326179470789258297239086022477705153793995336762900902130897718513195528075911628632326804607761308652475692026338102054346496202469318680677807082943395091288294220153614589750812393177822555302508682780602511184858235419425343693554374122759752034555985779976045300756223192096930357992465828180763476885236402790397998369394485859028454052605301400128864937783858675788298941183425751407134573419782055178148827225914008262875176783466662964183396926653719103769955286368830598262255517728374534023872897797010300986809405871118642689037368455010024155584861197608324226766697844890365868717407061837386271566945704295824369772230391184247635192045202237580202633602329428580963710646922135678162642189806492781466677417168965403052029238500097881708955771918696127468584167997254480589147326945101849135566944819315726654362164096476097358908802555769081759836464406807566918841911609883484175448891947668131149380667179288380526137251725439669978831651566979057822119244067652557940026139369315108952175268461695125947857987323381467720638574506223259539664553322771351307030748510732058485516765106599603372095087183024483026399503398374648905514786050038221336611489180495472232447872930140050466874210546258621439892631433729415387874437032327935387879434047230108609344272842185366148937286611424801701322350961696286975513763624237929905134345800909584448487619330017217553837520941789188329801304213983843752955880038654213612047292422090809198514218721785296228885433312854334611232619550957650058572467238347219735783247497225597381802645310138644093092631172396381309746320683433319300991647291341838221384064077579359125551423729424001659979185956493095559485854529039522039640661006754987854465624388705032712174232693307439284787594431563833416392599624835769041838161494499263488160757827130687474829958341006323772020679707341308293181272333476726494471360369934660895139685125518720970715281791409500054164665939216410796435543694853446743311045617723082638402851210395579131787332176916106352632400024839290626595479525867978285975266398569980516617535836683539189216232109058098362469088570179395890017737738839636147827103833247359943793687160915625920401563343760850914975256025800313322406235015458762430066087240950177415078010899874007116614330528246403054108877757805584369437166661156960750998293090604881494111707687891087059974963786486994233903448634077764961604322116469474112369405660610276158491316043839646120061205369075055668616956853179383270448935392536204478884170956712725635646459779283619175362539668275570531113085468375365119915403487290343495215026903455675695921968221084045562112126194468372750671092000518820285261683785051273671698474191148506630839624556106840808988598444815567917115181435620928321738095098147876576570712179915282933543071713485527219355152227378415234306040106966969279623714112678913293232088403028831917331007137412257082085169965460974814482184305393413145615102514680797777332005161753724658532021703236639066756497908071991509680012821923458456681499880961003128530760412889549963215549913538044547756916378159555117939191755893790244375034210242778059411222722928299043015493900128027813416524275143048051058446308119338092307038024717971155790191372991034319309080285610286666773215454183935504377543833084854168781473515149326246900479622761573369659000775759357571117472015890391042711213867160093248411005259413186337672971812465660108463247638350845906155847340388750749383389191013343837714485934465463366696391039951882527193809334367394078601381163234965434967697031014578114342828237773179189938511152509718728924833180542387286274947640265154473444430578067207583298201044443772697169704997265453921410412623435540864468440704000874840917452172696400525421578671476766249250924456406389238382634738946866133887711998404689897268969246570240307354063884012067411100302457902651994460859682717207135520965489171688313507734828795224620633040425707926197407489807530089703700579035223873245243829395908335351111020390462426023015706357428039834230686594084903526067605158250921904037153944040071687607678937607928357028510661696791218941082951809260478065919334880990433991812915082297479466270580603985439116090646500554674849365408713895851082502892892537417076928227296801698009871925159322371919110114588914108832174229905342567208339095426993340160837113269366100937418563637223974677068834785985874699119342619763163857756334901317069663524790292710311615193766981046776815054944836625624178471654242938613191437760722127366250212945977908596349077256952638238802961597503694500564972305175981191257878372559774983605800214891343096616967680891986421805315866489674643859810663246134963247275583096208611372388758914259295278894120042710644920143465229282402103772109891147948332415792428041185091316908666031857281933607808272269328749048592449028089965166620209415409415381508496832013981427627046046651301600146301021002731644046141128215719450618035480974300294601385315989708864627297045411476135783374963576550048742732317065275249820748731607348053298518316847579248991429428429219925717918679341472857424098322334736810405854448462333030112132675202981920775214488397776401690727794455525150314059882388936415223387790394094872148130061049365306517398813753224983911718539218865791485017698823218801547280451874528670711123810207835398606640880426778750824151269949099444632800664106689085203259709084033274796081336958256670724290006634355849155241083112491290707159925552481005819842548299907264704053758234981451376124392478408889298115684009684785978230173810353123802020582421773115102885082886860447639222031912514334027900862093615038977900726668023616357531279606624390979746891206226704741276794328725437256586365472640688645169802341239177789702751984651478833685271295546108232465113829089552147506485113249351060603829395456514752155681031504654185723846866407455703791748122222983650119362357343830753331795784708928017768429709543227719998263534091593487592820694429773173590820350718101087083682048977902624506714611188144584216052046715260904731643717047211232108625614612583657881499963378431773047478687806132856187321798272383508361417609157841155195610891927297367331726816927090136985024181493453191745391753283098193785086787143342217104697441931637948994267986396750851514268938317226267097702546074959432079181476435954299009193033956518519363362703465266883946625999113518243923877096154147164801856512214653010310597011054810487418628314022145205374618074063197533100689516106002514367555445320342944507804168479303867750451031114032213023938805396632388295010039481057618721917772183118962719554934066421566094916551499824600679381539997538457148143140028226722801460327054436291354364867292339579455235145564925285315882182461708832131824590822364103109808845168552372102912659089328957943080316741846284137592724998426169374853523890747795017967161616877322921127105421386935417552315929053659081729381404093321990876880194299128518876115158170823280693531284588272961055584219300704721536438293497110345047615131401407435361660162007340500822827352080599366341172945030574759552746347345663792212581753131770699229407794475978360802114674941840131361463916019281044149044571172191357901599911072770636833703654459625912830335633990566987941466585390357696809482107791540822148529031920287006737022728087665825426150968079299862890489537304148852077357262478862066586769153584978274085770310536670296814117431500949955448170162830612169463720992684860218798037942089744092841730300768507210426614908821718950790268963947857910996109341867102151594736628153289932093955346073559339075079319287793953799478833045850154917128260410413335132173630316756577135089950500431391963678209883009311435758710325627154094954778115463809852024046311692043955679468646331641428423655169004060108826784497449445230832851889608901993928031674219984663895651030056134841646708224134151388394648706157532388096767132081489119975639148977602961260783478414639758862664689096803885435394078992094563223294752254441927509802437449009064385990330988563705916043144235411592149348505553592710928153046067677089456864970396204416666233392564415115280203968318529131301263974520550383283204722085874182384291819238257528065678526541087241401752116114916404375821669936544511892479264179349224773819431547254322364167105329518567233069938827376736088437743317290281293014530116520592623394219033118262228621601244171425336920799493241331912857425210190692005031738124138862897884741277582079205318412495219508885155048936087533912171737864357239121819465322726635952912118560197956345126918977801304553166530735743276363490711326596869501430912646317356020478468979762418683305346113629528585376200346777984734260520050065788312298924527127723402211735534241412969103448592889182806585695649481765120609639229892204349607886781320538014659299762698645610169676508680878858582898943216574544839541370393356497163594627181839798995582773118619742765564218756658409296388373456971430246885724907626126422933380932004567433573010489855554101153320368407694710335339568986367909245939472087494648987203397614080163116115764152540806711440151163872405381349064665325963807937901490122578535626247085527987720291832581321631667065990516138901473212623014144207185766765013172546920337345735170351770280343681918209426942625403726179088189767889472613122555954031343678783586387729068869858720238173931612461124894795526672708672267854420349979742821412446773816869577229885629861055490634174972788612013484391541428412098316420727645168482477549103723369979088723238587681698786304255973313340868297706733671143270868643766760614992570901891742874654389267298353264369499613557289900722948821049165948348741546754847444517518517007760461865069793018789501472333596019810839148097411230981277638664196318412411568026000428517934591053950814050859423895561357433437428700087938869268099240879910876354705751083595805324408150793471578481032164179986250895915082867161562101365946217944880247594222823442241832471316960876327273810564922002356876194033878020929087307635826769495824628473430735821644579847676045501420579840122816221723481437227607075803029024755619479094628285360209958350199814089076325470503527667414693502507309289334945211932579583945704812414777436175140704700960759453440297010960877338383447592470468140873604544727705019462264159027030003050542522073180605108932751841688086601373374327883222981956231777809908734090493805783224755901777586126792126968993479188593353515055098569349472585201502110502015137570561705013060170640194177720753918303358222543475161213485275449038257457117350471003714121610298091066893782165223050209535039750075401575495448560695241809385361742953497621830079187188964836601343277939838275942248052427808421699414754752368925808052927811529117499930516711065165699850261755407516450410545951152263948105464342314450765158013298008041037337241336072403518497093944030152986804343669062941311177677241233288540679447542666261576013180956240293418471934008471098129187995660668956597405462233814236748520697004953705753467463401334384399513243962001839324653585488329247435448763134454354876226273533589820810332161844385148173185815924105530193791269858422040307262363751937895609292847805057218665110650789454628499113652765153028953209996534705764901441917900486765719561804690047125199086640006266032579356912833332169873982177677665078155547308315639118444395305452960349928110870150896877830727048183065458521248754912382850118070959845955045998383488159208111753807987999461974086966146421655535304775808360753237127505999079239083327424472099776639333659336125462938847913238142767471500966909191920903141266082804263047377605992048260958449144811235998635624923351522847542081098034179434705591332837451634148081351032858632899106262953488303009135167999117792849843269936858277514478034466000768197883537119646051943780193754856893281006124606335153590839797586536327480775029964533934343812059684134552553741022479441061519348042295580868373041813793202525972065459610016508935718368186283443461844388123805871685755438381254134609466021749128788774859039948649803317010449470721007075508215273959331483732228570322939042862334610445785583697912402687160796989569660094462610295577381484280018850945333306817679157163623209924059727716313121140344401928290526983450183329569525524227101336829524475579104116540168720695559594295858167478980787905317933944693968435268756690173303783276984908556225912813635076363751071257505766660754165172577937071320607137505381549444522309495357365630847858177430099300304571061452473187738174927740908847464327473755361039168274829704978204174318076619147502018096863502382194325767622402764645129733751855465275676114046282471235417951346327510480411475371973796545532450841344211009420602884355643753716474798129304048680836183546403977656649791366589096570728768928623056977738272772221471676475933051614466477418964709453940539171027542083999455674944852096897795001920595745677528688142101487846432006447217475193873268287815343170998676711924119227141580422069301662770033397292264124905151072674567114405913607248325553917030187225675540381276616431749887290539982635289479463673715258662297287138284555254803702730590979762297523060302954956651647176081846691640065246848029372202349815972934077036245033739473593339309733547162308416097956529385420805424386801538937962552333021067192137633301185837121031364689120241504068481831804875987393484242265175315239377524330126003585345350022025876978189402659392839864504525917252593569535744367647743756603499312407678886978998615025337325937106764760215694836843560344304127307190310116933953301517985425161337731103223087245675764195271034578187559973141377968626863099851485318752062557608901763303422739792978006124954504590039692115929968410306997482766682285503935375281056975086588984772417442134918276305174552896047242159906287163781917961999566440204316144731834333031706440095505655619709550287896855938810993113667200866442570792335500593999091323896337697210471858405206718387368948828013489671493226473482755634712164090572926665765477048268967020841860851512822766841897544570030856163307832172105745408184455783447864006071171481694918347071074281800831216994350542722274824254714894145538377776773254176304159198811589742387777265101743867724318297373834364577077129897659822389548957696242056369125924101506534463645036795264299113001603081638336378782786876207989342745055179258979272584895963671312028741238524806408061246096816705471935740585794312758714307697997797666665300521623109317649857572750693614286924196605229983064463584642550037991918959720375793027188195825804414281309636937792758850034821504183014484395312416155401659570886662697109355706648154519658660498368315457677160746573428135723236652928577780158465801177919520594468768914581607552585875725139807485261013826434984842007231990377234498606458724350600225208972692469099540253951800873617626733194742397850084219846244058909109810821400033323444364546500116839652993698313195586171924133824421043547991860088268429013784583974491337518835911869414640045769952749849295281986015032484026570896629129374211536944618733443342358883346480159557193865234401229017089950474576706250684813192831530506576581318169210079830181283583014432795235345577005516906774149578092428658153452558969232576484356413495397318059774712049123896307720679437581467194543141550057640717966843408139243932249151397180726662228111088334478852504865753664443155285775440021496911427352703226347384967661751519898822001553749968872994133382809618641261723302693286290537206983220291278330854008578273132071490357082908738150391085727682257339747277996541571671100984908438389365263896055992902915219002757365647861112942536555668067894193357794738777905352344571582320192270834890235962022442274077583758311419766489628145549835698393562897182403371049168200192375257111331283229593124387439401332934790537433030798073773307739624622869074851457410543214937833730927762607323016645064802014754699365986252071602282301835497505331160771826893871840214393692044455454426976469439999488715964168026161640603587737559718872281878904979409096423497525858057227672708257315096255712827309144199415205420095966451856921022972147295439646743278775421792645751522564684559513201992790275340008269832865016415545244685840277559862169080249649281514760652679873000485007769074184223323280560681292933944805419992733864533145927591089181269644188629440871581182990772454232467915627456017828290922488852516932005336206761404933216092718591187076888840371973744730916878011710644463477205303180015194382067888176152261029739204221593626106504762749781881021737903747299585707393341954960356139745170712792528880687286850851061145425659299612548190294083922282582705616164730503672694243847400880217605079743497776689732902345841466399192821098348467378433984581157579920344154456666062763959921384762827327753726726595355345081543001792216219444263095751085233018715465056272266075597255695501338385533362853596551741405599391704306486704781524089944126683228962987483660300488596745458901336564558977094477041316354775134606032592732312434412515720378555235079894061272836712166113853321590212988299701189776861885629278196793077272769208649957353825355673609587125655209958294349116744966021653279483837575384453024176587187182707638734551267118739793489778045677982525235408668787607869064408113041975589096065744718543621808444217689350859809937742087740572414650440556211546274420994314519548797799327504699539210220898657632239418555941674318867294712743446402635694901904880308777725395558946784737011875550469755706734867740465544711894495773176976738737681338199359345976209074841219805380117476111736345588053564615614889500200997382668469155118128939472833060407630831897229560575153087537609273985334935552700951422517459309249909326557140138918805944855516200804305341940487159206961410844252538924270974902127052512844553055840608292800249721621524973616463726107253129836782705996581629175997577808598313717003002505070217840394286316085626665051051032959286566465003927767501889842311407742987330075113028120353834508694164151787493059367749392790135835923452287263642719040010755679208694141591866502052432542756269331947521129073506844646320617674319857436491420639868692398842874998875411403097865822573144836332437978073560034824089202640392865196339492122138757879558916760169885774241234699781174717426982374748724289468576590030862771806319520049879239263530693777750948640985825101723382802979785941936391246281076689732689347689839916299615925766640872517051366098371449639604586684957997213703284876714026948049794645544560483079860169954109725141501869075969222072063194231827339652702259741690902731255542503639458243710563708144884932895052247333591502795143491494017324598654032526444979278762631070724038163035774213086608967188745056370821404941991489451821110131281185968051562707931521284091202767614894256531203091033047637690304920205903461522812734718389305557013547504239729354966036040288549338679553588232429162687091456122920218979843327733861604186884310833315453631885661989093663250427594943151625405024866620749634922940229883568792463157147283890786949332881274302285433757282189238324879651277346067039758152018634189361190317664492111684167825122509157905817981313405935466918627653468930251704392193851771550830237001832081136247287753173395226912782244322208939226531635390215203130225137339719257411756665092862145596976963092695799745738531544324244155856473000795579303057609738760420716507233612434581345715087068402295122229794751820867342010929571378752540775618515720420902962639814362187036450707327254842080746057646321551935609532143476859049350466189067465897045691661626058149593965429141501803187648403273291690773347661823101312458194339136234545699228207457888408410553058906225554567859437929731506889655018893108567691583882290376537611964084794661235318719446484595521871660194931196562157309021763749706481903863193568876352698860114129375388529760170944132320160756360195569857645466353960671944334909503035776508474141159245825392013484576276442971332280128552390157596681259948018735884708617587674635422670552301063538596462788239994574829560079049096728053785622501108166536132463041011767468519410891736103346225429296962315592026616531435987580626098740323574505928508025758713241116777044920201525509550229136797013413622471577167336625492188655702102840581393821710629809203636998530746051511614517766086328989800722486145283282250229135175880892931214608146935502425384581566063904370665668818623870055878094665058652715543847807512824035427886260824234322811808331216734383549176388992384686295135583880640608536927635464954136336920401327557070566296306742779640072573143414372414516618455337230510201471016798070895654777098652616465685900020735624115136396237548766303365375177187705362362205818827392558061407461740140508892121579462369108126453365847711824382542644824856135312788205311325872856126726458563823482427220105939361735798057967520919554176191184022212733087157929374067689882386666320193851830877104004406502588262541239591223735751253695731525665734910391053394517946263983399324652904734474499446912636926515037121909754738327298048429960503252868017109644015879422366157931997726602511756443950028292664226225199379344321568104246624313104523093620942433956162767809675422615281069799777494207829748575394864830051019014152596532761761827946883805587326785145981970824314396014749722756994354530009383407257724906779781582537427278123397597906984609097453364077843533804107951695203767773542648551977800610872686182872849756411109657254950142865992588659517189156483164276352934488281181425668067140223196795150002765729560602727966460740443742637545409183375674578768293756720199456555369568218958519988575226918344745778281570947272718198787415058453484118718922203303346619419932728824187070587437831676537443113432375845273604118705359517971434655161323583064631980119907651895530868968708211684204881686003995858335130735892627943653095714657743667455469828727763312810073478606345823033641702670905435578060336755831554163046366032392417073619121030561687207985251829886034001572124603280392701799035269297341523940696707562610310746085747812877217749840622385502875085369635139611511010134798984010520568166210705878581683763149243059588758827103281366288418312567536539152026039895041988473984860409414642676201437390774352839995527719451518722585595632699602052491638849090122325974419639045795089184406475032208474560652026499244411599720036946662919960946772735497038660459318190058871864925332103499872429424652045136632787231212454099919380118400823393517781284976495353980771554578486534600458312177195908814449440315362543283566788918639453701228952116217178031447603404976239126324014461809748802982498598756016753155466194121478044905963865646227624033559699447522785705165086954839681482808462866114732146530991810380310391408156607637180221995846634716805065784574152813890545041778501613760554029216504677357709985705280524654265664114041756737007097219794283378599247401008434746439180744336134940410752507516734211398625331390700233996564889267199282576169368439062737081425605992035195188395520339915562726624123469317446975639235631279272890770222253583883570530872391998641816352370285222707271777995189353486468814319327573077431266927884855936312730181302580243974612135956566854174774096874044844599058599848508839007114291931198688746818401307143857795920665178433915888515309503253400535845088601436869368242462588872102161880140867149595527404731913289658801759845332724283008818814008233706378056134504284697523825414183005834471026556893728636841305006632241714749145371463253984235307123509352713327224267829115153880685088975655623689772204198671846600710533374439578742046923341668721904861467962381952067277259673715260768885326643126472117058148007411595202581929080998234552418652453803422406956930460195458736340445924548716567910871172717301614197342793200210116329311419063742945575628579802713285852793611557873091492176965825525048755526701567596275653767226093214206769157862525278142401940493096857263281871432403802016933661734275131761103070326965153878210360368176583930392650182593165014212800929502268489291233534500717085581957642838677546978849932076256388113869345272302643729728899683409348289911170524812887283680689722427092836162403451391190566862737404615051890951204336455860701939684711129138064274200771711407558442562096776354125860015896358536769631220295554027625369478215093795406687248325512409960237056040344173978697338030142340930052554028655169420529447228453319803565860384575485877595933871256149560587105072525946828267726816405363408569568498239491725111982232313515356610397739763809230050865616249669563647149570403333964763886614223233473451029608784690543006112609370972488708205371961208556277335321640257550959423954520921671226624293508287106489271286919574744994550360836165280571724532300655889626588651168340665047655564707340811372027868751880645706695912255214591951631640720743887689799548500930400608798108269603277077428832884428495703316216546750579339670667240523911027258115707722649012962653583506295887597399129750040018550753766759276518899742905520295371215770871361028615658901946266427793668938215264630884470357814845680663432111289234997544362049898283793418933679568232896744831327055533020292683135297498765971209899594322412107505539657038329995448271966525557188605246153551701805967819231173206824625603567764135003711170364873070614470657122568179850806540394751618567501136339266832624860895763044506854876114580040112630642081743906241559816240061212757244701684266834932438239619986564500086372335937202463056880498327567070218203712925039481923737886859480671760796404825052329507182096612939740271358901178962764240160455334986777217731667477964293375198321974459668470457187101179354883682847207623567955711330822712242473964820357733641505343817971472265433816743950769803066038569748418665213038411586984002527482981720100052728768340062289690597567617341571689093646890872481165562112295542585741106846026297043608197295645894898491991600772002689997804322818491632452916299228823542927792202548442720858755045484855329892485462324065187146206487811011277060813773224679826533026567555493949708033535360026481678650617454060859686922728050983704253665027922129212155639510778698929047161465721986752776344499529887241877920613333227804573083140693903128770143135170215285819194746638200663130558924729724771612959766188717815180171613869777740553069396831427438428081915332017478456308636636483961770476568495482644647132173194602047116626153587370635609336346898309207228096258281508294551735700814476629391517538261922563818504772473753568688232625533084111487624418379809688463463027945133095651839948779457283836835622500805127468806248528625093224904405216401427150342193046127118223599329087705110874336086319395115917568065287667068952202886010445049224175618252628538275467385386812525722247647118474682971540484211128866278330876967062015950535227983228112180570753606433788245996399296604681812430085818664940747656068270954181404958355690920169706294416385796535612679574091881201076666797666939868795439217439677870443185838022590245936336532326384681491001116398187955179352418069587705668276437179850265153164046919500017396381731129642081761787824073235461404976893364248395429663660068259276289628245484727752758295850566209213523424225478670811681730802200122567886542613595013289736430498603000998108674053695407858296366830235232787261327147978544136515364796670427237907255954273754894688222904452538042159756987543415022758711792701005112149212286166142416707790602539209895974909866230265987994245127696759281311030790406949184977239812767147364136179448206594449296868734447220299904249386837736528723269237468570250401930225658107798786944932918108217703757024852193328662176237433346276935725460644259088513264284252085722696893486987390798512086118613860790106681325805586018749666804519106859487160068695728855459081344473499873593126309604071421334255358800168414625873629125550759022263940405233753384056500842250513643607117776911567939880613663386925130098502852329903948850163260270885723892404441601625066343008816842137354620154277485030050840806270188342873567053830355179431302469713144448522840502362875170184981326904923061028590108869478699390249801600322563286996764186724455039006688610355398334921354369322534506945428288475954989383598983685336565386695803200754676518909804829515494707871703107893099621916474755225915671461301354600370935735406568702644093379423068225243629398428744609384414589404187414157618448800582752024919517239206424203794935148820833376564173235411466255003213104154682569650662917833817485047441580116805258054874712805444066750300511786665570593450182886512116728473389929626414365210847452496093071393950092349288903093681768082185660551177311820550720515453142073136132186687799189394370723640088326279289464404783451383180503080825148375007362456566515436171952859700865807619135126285712531152298741450202906013898107634756978283195947412537664509006491225803990895518207753011224057812599083728909584296065257964243592380575960142870771024239936724187834423229174799397986366574411782519833695116819321797375017593249086131060494699830952324383893861731103927269046603803565791702036202411852524960434345261544489349986298168899622310689467602378108619577836568614211800311447485928689638189756779842569627187663206799678727017332347660582838470939647815727070447616971228272704382669079173863772746150680704293844983894965049148079888116253469205626628602102830299134324437576550615987407680358602479467412909510105248684373489828342994572167002824269985585116730360714706284846226965493641755778599322060966074174054854120194191446678316251872062899653948668051678908885470166580895756984405671463958027098671443288573965610558286440159159172705027060036960746041859142506580009897273989105858198115136675087991950436771251591252299852641358281268776385878100972077907330895187465970435803174185625079019424672799242069166043143741050221673707670925557157564746383813399893673974259833681195269557852311508755491145826350538679567236498122064888663268697366779262707419020319556312422026917173797101455350974989318648285600092083173660142301377602702649794144306522793628220484530858220696564431516705853535401435086661619887243457813073558078956791185828042225451139305580875221282217758592376469178015030747377333963440204346333053038598398324554748052960068146748886291321746483058089956780949990687825985857780176096402028466306383972205192461571955659284531551207619775875557256190888207801173014835227201949417713521569454328080446336543746125980873016450140742215267718864100521837259975124084510212827622562986969525012959545704153964190020627368397448771000220444552984739189025565078661624661226540328793422315836890887435908779910732810649724187790148054854446305855105727254749019246448854303680489995281820559418743747830629255096869847344740847627695789150953434854196338482815554549739007406666162165996455996164779044607597594945440621548319595751665325639762926822727662718895904540609827868614846620099228892510882954690600512654248751126821598779254959574630065713287756977602164500810776673003194015953795967845033420348927967745165457681575706118226610890379714199867790580756249980273803470449051978747810426971143679987324827345260469860485768399076596804198081648662580714960814724962223235467589001312575008193837586438831741178583676300585246457125142693717022695332718894694694288157300514163624972968043535265399507606031116565687125739734177723516365156170493051999586094585469312469074695473089072795160332552023124664503540864695087737314259992244358429651196563205970545560573425416852159943742107432252188173753744817565169921252309355605287341190952991712318409726019118332307132986565284768746978998511571490371537155697233041514630094848840571192657846631998912957326776149400102415301378642657192905873852158398283718282039607473653049471492876609613354719431768603696081909649699170678985984759356426492079498617652409176046883516254474258797891097228374102403323738992317931772248737828145650207442201517493704981910977837136126786144854443581068643405879303256221736115880923688227462580799025449786293119524830497728517375860457444536491784476391768061037558869038306626164013131687850933781816302560776975811456712314182367934888188479233338558919569843833849730755957640114957465069675230792525751714645627595986442368779286887940444108330516898336689176417099070547499793723815034738594502547978997046794637300556245980195095004705514511531442173161936316309415987499627560691109658974240062733664774921191730261350545698112395392106646582412707864943267764716039350263180426408920736321278330295622391436044542293950312446855614506829649625204641964696652120784518051017556908552334901956658416502481323673987179455494375795374131904393652638314514778160452540319899517055007071372493811822136607847229407715706741293132692528622321053262398788360303003685036701273145694314074964677073283814899502516430484752961715058529807229919556914491391764286737558455592993734487033560547573669285903100774970944660025609276904820460287354325630500622897816743247886111744638194876423610319942930277260587017321945694553867273966531926848813681553306378117813928028914367050050687829057854910470090193468377759764474428041021325378445268710414860832099585618541489788507456073754116353404925475662423589656665584686203461765583543715511067394129622201678404687731913593194259602074345545569583062909853012234803722317776498238012154097506093133233861786293069260951618531323985368512039899346321062934149948195024236521821754313383648444142008173240308707973182560468545082807814822911875774062371475955628064155107881371242059061451557688828718657596272995878642620986019744335478180977093148225942519168816141759210367576317254768174600944787068376781517402240489661981164810792184546796062763743509799431564480154004970994517735800505053856539019512464649961650575864983106427119688948742167857035633295962790956993217471139603613381094556179607848289533109626186909565775266408718743801484667922582987545552289757933963058607436981829937390370258008382225099950767644586350604342474636915678766638335290281582339164593765841280719260434753625587824184136882303571344951693331011183943718758562344391045319664624312271298885578720921591705381997462544710805784466858657613701576540886904680214153312124150033272126502712319595494786207775129639580839291830026969338344098934603264612501790606303676829501444538245972148599652586132594976201510377753562388991606458030924051229239680779173525100289293981467738453076334097289474554670462839483864189537619193204410445336552977474831656786101489944010334756389750555176780867605863751302543314233757722908461827506662765519255677926521823302554292340491640985235797352231287188271075747613892194731754763140860435751591654401464050954187821557610509167847594809162177386618313946789164610235239467248040388814044508248342880822170322547314380387818970253346976202405822931095940501908545477800627734378838421688575383783289627016410289343310116582823729784974834469655541339396158542303641371008996106744629254698570644142162413435015487649104974357106982534545646194797418490324657207760076508764824229503260330743578446527316450425562133668743302298432293840997300203833185616134925688630860938384322248797945517902685016736033466687289509628300135898196086609996321201100091094079972946311681266060946459367692374615274761700563078003419752496014401564658060619921360723452821288769788983625443590769648748795565389431691473078415864238700092010011800097176977790359748298121935080582060478081578636389285209193057392690722299553484764670241941383647501564749305805689800625350677992145928969848730179408346020665349969419705211675376575126268143604878871275824522467244283893925415176724873028089053702621157592992416915843975095061264736517886382554176679593367849400907083042985612198810027568410174246008670471413037508086302823314427287171730149268975453801339907699589328684297978769975170162053692729950362545676167466604234241105963538987947623359004941380286261830420376286341774452195315345409369963796556886921125280821724447706638139113180015584053568360359144426585024038320042198201327774055030396581744163026582578294569109523952415713217851286354041354411475245360277324101771553032764517355766226667921323307273879852356823154371840515957515809378408756472590534327983553764095936493814111566484408552577281020328406115064402738069830997100256681490098342491824455426093607642457018151989215258924698570143294729385555633750796800739918565444290731900507668776888315526042619084776753580213152715559108757632784052606832481187745949287789966347875985991800856889563179657736143931441145645076086621606077793382878493353797150814689687862101071020114534130198535860527326377762059115643985279435839102933717799207948946433492202899710044735436260084390575346739124381741326006821780720521781023037185701973163471452660970136932018001993909210860152676017565246161999328729526668573974007218264482539701128705704881152882335541232641432320743288292615084369362994319341131459816395756664777224220735524245852975150620739811094459450903051139445691862789036333508409933515121482818040924654279191615189021640070991863260440277054360920445196631608302602438292309425253910495600991857421315103585459786485355763567512330814125190910950581047786464311184672227999124126579432994238878079354163335682255189486110196613917249447980999016255547532546341472216975288437555188933766744257498740381946119058913898891915128038124419944815882108116905265862216953566159016808896211968870839400946587728160723714359384932126445131696248716569270540896845349943250084349585206919089059208886521600490950797217037919406056701766860845508633552498845811530640053767452163785589324042884905355762576504446070198577045111267354394330226254992836121119427017863661949060475630432593515289460519814823358417438825747512906283113535059735613884656239223811082522665975820143130498952769418405799657662434383987465199402680235230498708162099473098478522725276077952108018212249073733638641387244651340826762231914984408616383040012887660648113585370988538551887035097570561543565356213875230508716204939295653514092053324324569503695270634997401623996702514926581351784426815084074133034058870822493686888786511775612596517103414488012560158915311637104368755322558180408868464310904069279894298252801880418321708578334600116857082350559832893199998742256065419777584815415936998382329978345777821119164421253482800068120690614081594795481437958151570560059800925446544863924079615590381492929631008635949233990084490889348283660901174814873253101618176997667012803658427546385528486224650473934861495957365330178003358201912231914834697191626693145456194126627347230541167563806408258144055956506025623413383368803755145603673644100151382015421806206864563030226886250196905028816761903337070683993932414476562128202522842051693607761777883461637413079885666174686832464880569927947851990050224005108429493714726545085523971662509260597578898182459265337201452228828572328023027422624083279278815530017032685370902926879906634934840390078590431996076971095427261740821967463289422082417406998923615581632853539851186968411362877225236958985708740556270500904477158923387915237752280408967430811437905448202249099230089620991138156584538091109198698138158343220300655241621566061285868507271002344134749103158996446186507367412828597082544654327721284652544027251245707844763593225384460993597445584971378935204200472906276547951143589220593572939801137961219051026750851086052649837586942735967265695247805366968926737230685002204044086321852687566865648526105290935788839336523619704149246628780376650308049353547080151268426939831845421033920801085088815980884610464241659464839797385169194000835991667763876809598592322980643839729943141668863494978946153883577008614006599190371675621434807876267791839362623447782197182482718600870409176404541839445557012281959903934435262635944094079059328775552675494582833546126200453488059746876845050212390040168340105831361834506109110070952924924531187495168076087202769553223526960686315094129339680036258445793378369664980336184006872881175067520515686908294666057376394037115383797810254346233061480840933250342303754185174210308827798842746291263638513072160419390915797002697541393101111821836969489825194604596269680950898837893017719925799145897216398072200913573038106238347185602586118080278335685178402368492418699946064410628586906977951512152224290237614834716167067698046449645450108459300329966016023009575458146869551340222907711423522426003255288213742227370780550613419809203007742725640837628063348945808216013758303236143239976567762449052284946741067591878746561032404700513241948012490011644192062235023231091126782746009191041886551079886915086247784243547371826635986203374408301483163572266294684122611231094779844034577016211098708081369871617122975012398805119723868532883467770230358019094135765555760955694049711528222683029126286376978754278726472891682940764541846563683802928081165691037557216270318597707365087417548090057583690605173363137106250620410310862261342789141719044261631191766191975850535713190638704784513944485473776106759106082647213122593511475451379195493238315640630169095310527959787449996956649979719914983464209904742796168357617049480883404599506811675082372321723542655425768587176378997414973157463965310165831413068377324348012948858337988961898621155029970265165972195178457161806525661662052731837484594618163641796761329350654396930577037023981597850514887356337567663072409730882237755705607238807586609310717231308333334519526762807509024609645319765041520360357968970361027480065003651015730261901670457185538185905617978687228745329078439617901348833932608777790187005315292416414496163847405308365478509214086215650383335350693982579912070034062526038316228004907516888346570871383293266477908498773497580417978489642521477210587685810661570630763656510205632801634209527508057720224983552423707618458869462864481317973190245229556253365651279447003347601563999731278029223242864995338136419060966777438018251721254385624075579979526511459990146424342404681099938766381575411041037525456233439677328481386241493367204240578526722746254025923921646894713728184781247121469578796847925178166234920347303271430908726924159736810751773158208090062382203179212066919669529821859766176188565119991427013745217686699539254231038337175389786784378900830418878138208356044745069550511970792208454701716318929548249127136051443318403068784348400343088335894363052174807921772215617749840939308276521256774743908548096672376624907212358826113434746716070980980224366850674793301935557737721714321415435974539305644189619786243058742520548366832565675936305941203155318739469740965236998100103108228445136110597503671042058180522711637274247664126041912586175618869916114059361912460580080005317923272477818571908184756445492216678055236688012407884645384050149889470479717770162746066990323440966817376959634935895387780038418106958977937481248369856506424695484199541865066519395246232162612005493239138187142744118988296762110223093855006020514581546132451108644083473244297658441815666222588388119397059470798882065099989281065799132503621621738978001241685841312285978892700706857082197726065284271760956296601421995211254680447997443025934539128519779257571365045002187519022723261300674274214977742916624487335573320219507138179504536964847163077024993581506876047461883145756610804490487334213887026940872373239537417044001352183235861749658249472054992736824534667674306918576856717343198792379243569794326389687035947916987209880822599077665772489689390114534325608747061792011417833408814657379758661632831598402170207630231983335505778232967807556864607833293959601646231618544754586929728601140642383011109926202531433893586501702286486161899695276474470935624097882728699070717554351033364761151855914294708068596532296141222854692663873820247089812169987139130228905528741459347827556460596520969571378644195242885651181165871836635370228041639456813443316712971452421257667138357931921181126674239305508046856618547622476376627389891527851013130228979133485563100505969347531005683301637272865224614085202564630056820448065704013191391003617205557649366303041691791774631668185480414197610625412322857306396349399762423336216836280804006403727261803329157424537929088478933159215451236671948294167632699597525998844717835853624627046301728093353166608775492775339099579807640575469543717819374054557708321670595500439645716330613349368938517120159385583015650801533260407289257521611549038044933328918297120027256186636110693716328527808422113604381022082552133067419072706943570869697081854693220549403572867809716378767692662975146486835445440479198735091666041147746518051518470986816142293262743816970329687045282423799098037339580339519603485500446540362841553320379077729390532761773834241543633537118087993920005502683618163368263603206615824871580457860961161796418261600531274225016857145229823447571702688773533856869486198341565201135419248059191413379187554173106625747345222582752633436184071564437362394471512700130254791092571561398151021849223762978517443917939269671617702281105149284224995820051694731894208682284382194870123328246415638938935559532439179728134688616812401467198302278672064474373508093068717615066075246255421711420775083027413360202662461155744429851470788124058999683077157908119024540562643114823049210771345112657433872144735870146563710122220197286506374256861954602510028558730828813485592102329816813626228211139602079097440996332181804376216284305328341729897137389754930517383381849479884502736988545566088375787469223603045021773095395884714426632943733221278367667077833766306510056015740761430469255875320770880928950252328044025528496547640977159467800368143487753014434164756592433931769291972957163258767733188810847949841963255696195149764423102070387425342167873062876736762540335339497619409742746962052625141755082619169254268804861548446551919145952703622472490552482280121577068300325239456983905078923798098079113595224102080630042060324585668351019074568175157725460538664422783456633279163550447900233671234347373029665481017457219407333580464118050592124610579873977975856028956924551110244250908063475178219574467210154217867630996502214260688718305334493022767934214738045661932824087461445682906614844231939213031653078383196669225391130001592468901756000346464244242430732832127118706678455253264274629499861689178741751529842337880612722556495515345120927452858583171659588659303182921066155110846286813423626442398179864569156739580771281874964251398074636193534574087449271000210553394964637713548005488010416127546569424709507611713680782060004704132006449415567068747777118512605281301197169187731908986382821409393840584109376761204586977252479060824777199355686727253104535825943397640555302984197614108738139365145462512134901061945513364413832474993897406644123505473166202236381574474719823377610809010220444084583247110520985815655328435817858174107898226525315012123522247415611232144834233497425177309370932628102238859526951770669968535583304998729586367392816618574637010670564305127211852812507709111943625266585569203554600009238310200111093167699431840076295982598266019994287379690423528398235221131281117864629566026966092117908047553543779226295152612823379363035218341176144211620040379663777440050625672329565512206749551132952795432421905748987841771682493234299801829000546202849786190869335171114382889770090573852864403663285758732780942452002030898635744265505078983932418547116069935402887097069809164979818270540827766493213317990387902946380655616852999170570274701209252315173373280004343539936722672136949248814440818018200171297292026693169754635998311059989352691492311608092025449635711728216335455057837292990618226440069041305728571314393065641530817514306419664478147207256786142126166899063140570911125838600954576324119487044647079708719528053907538200655318457598440991274212404989608801106400215825515730637444419958190010306129791167116959568194459094978853329205367009298923716464390744539871392248192589093796768570157680832583825131167953297900806714310032447872939803379764736292324666080754441640568257465157939949555278285535563160796640184215134713962848426914982021503934770735421888772192754099470438558570316139412428693502377697187593682672110591301601856339066047822256012532291100617667372598789440787607909233633137794815858593845654048220887967546016405817513884183371536953280728183281612216700085957085377012225108201670840876729731564620846193274439695858793195695276631818123265264815808267730373366357828597118577823400517411778576005776168019495775009158172579479332086955307573236965309801153666783937010476255438601910224268045171418893635225829090103158423954513908243917320633612586099067388331723281177380894851221876282312111251092397611346168775882217808329604715678476143279823994417863580609332764926976092405640474251296128472523504517558320392248656881453674373080691010054129021012150472799886237966996137027890206316440683881843527455680241428478140844017111646855975180610143629215371370819340456188680060411739555465668421492186494040168960815610409364507636514695864217282036286048552104342004357854507340650003178572322938615494662448984341950612066993984384496670566932797352489571167408179905843524889099205953572735062325437994798504069224289416779230103616376500085114955997680435272979903737105737044209854099015924277702018728926196693589325483246845083777468300462520384813866369934521027988409259320792856861078330922215471533191561419368956518090931676012299347582711442815403398512995732907103971448906094230539649011236206985897430512973720766373058392734808538848093454778116800371258421202518929223720279965564932235118892703205813773526628052962539519980044141031513012119206523650442869845544823316337330570707871625243031315342260970778660906695078132374180079912248379684659435932969472861832944610899568053246257991684449860084171884091428448900687878781454622938670999313013901701371916823745173539403347495504189188086227244733837862412604314676205626808317664707621427784100375321313602055710985361125292442127711357870158045685218716423196592813627769482701546386857430443377667331001777938124370645759724792086735163623814143254184346678442107750554335331907289016077387284845369649487490574275491918802594070087128750849026942292973811575293307615150646147535078837449330114973072522184840582331572546158784560782051398501981685841199030083008907052628908287669512468548779943389714631775229420180354991502171242059113792968973757957975826894494843717044288411779663428029871470127040367439958366136984171038406520332488033061184419538387272829449874220893224245936453701157950498766496366126893618221114875154462766575492919846126390846771052548548115663152261193215874853537468210602252833377012809247183783044937704632817274338808591208075038914954112748685633362090928219072059884353676992773916306564506757256015529289194798049672861467300564481380514991836905723319934439150719216507365406334332397565083546067634238239783011656765458696071720814121861256061299748848819923438892535210361453718585128730815420271557792478208623622446365810205493495595162464284869783511855731368865486611817713893428278885044847084878203356024190422582156114271093109621487670145393309469484187982025619918111649552401641446670308616633433253730265771386814672484390772740647375413854661741137701546569674420048763695860662544334862189830595592000685714596619359821532703878699644331852464273047223337951214943564894086424196866295027808771103811259236448171647379142301774904257929259976381645079667610961715094109098021778249204422814840059459441203930646868359477871442110367724638269618874343647469702631816111933520721930558511453145214240855068416729809200916874283964797089090974252186902304618331340644158860184375977197804880967258124057510080473919950473525764760773481495393981378171858714519921330626167541729260790088554445416796947450990774247237006016404639120212703877731682101675794940825481976946679279225368295107674775316478143108272316384800596432569008515602860045269084664099371199141637833726302765190540904650651922910357902665297424208761952279569747678884622613699667375625602489158138446505120728829878436475958610982755354040809117199917391116156199959800420534363596671548818778659343972567525140322866490900453045922947960735774708870467762620699840675056845865457994835541500378338857330617480754121881625579352764194556886060418357018533469108768026931475417927763902701335567174230953064147687918716142843374784764127749910242657149389639901771400469927873354329312758861658875025520356394194035865919113141600850264596295813814713273301035004848211162223974948694499097697929010173482955624063283758583130497907094245028616118771615061332312044357386511060673059059931182401714178524997381004304019108178614229978122055101685034660088641528540866814669327580352484492589083416735568366058757906381717432836756477121502675432421934023080989157218228084038042138910815028493004683747366922056226651723274349668948305031524984439807400769105434231596975648247901491243088220777809906517799408416887837504278188693317513978595989920988404961172247471717080526008790036346917751593035509987965646114222264741811657654178363284085435715587236904324424277194616246098441960582085057562744240437075739203722759431018617073487710028177801773109702391491064605753418710834846510874350484791814610518783241483563672279018067450118502956596538083174963400003627355924397302486248202212417291031234364079114913590543496863963297355797163585566177022556120454031447941989027228089732569814054981563997529272805460235620129415558273798833301935366978505537106903551157395030143870542767955745469790318184647052545605454904863489985072295215564449831840891293996132843495552046037157629360743314018775367603846884587641741421028693869234157222965678453371957656611215271934984741616949298008008133830777697830901986621528048546171255786009593436883837280045720209631415272183476755702711371532941806991582601969008357465558635536833091324799422793421087361509964743114401291377360657567040563794034416384791315244637189184247827493168950714468915236458498277552966509644902772610921211046840473629121395282029436319668375855785996802450433873113966438203445957082397061282852654705645849813963220768619895278541180648866985279618072032831199284081800947483763702132353802183447632543698884128335322481061926101575081080041668914541799752985160023826416934665378119316682306772403439783941521504408994145538728632698616734737980618643260218900251452523005427194712094044572264611455177432563149558464816536277356989337894954242555472028838903157323753768042045863475281464849363765310079070734402582444705906796103477615992112875921345099467704119990854747745583443008146945312400971867794172305621105938347317184586237832693498823810297910232855719141824626002671444776874664031256071188795489948376031723068455119791674303805813746435899159977901043687639505592242055305690348399475238677791388225785913752903476416237101605964708626298542471217017617463546992867910469394771745556509305157653752488937025476784285959765233903559628590406152937512789683266109475365476483568828289159207664683970781514064059785821658586568511300031533731761231550532273307517233242170153418177047154204049672995823456538728538782247866302968695900332462449735947771372694704599268662404495009021449747375104909562473805452324991112978943241018422589456536886264825268701536638231351487682917339779027314541366946501189148760479529248672995944874845794982630710432284580427601968097675043534050643038820301781280344221368586584428539577952599308001638368575036301734846217004969661151461544594605322080683818877896612259973562930031528601886621457911841209775679973190813403362022217698567351436377475148790473978660277160869367492255975660244020190687423428575494669860626701592999235054312866534622511696221777966985099152807435776677826526769750287790068321214171494188456582132042319738597928784811252370583976704294272175060822507739167878781017331288984921153621283049297458129172646706720602408734353053809895791900623649716762925142613759980932765759639100310692860008191027575021278367953481578028503231103657986422847234892102570312782794026566706463426877632227685051786542940570079633714777637471726335709316100442210253182145690962667369434019850358873409493229792025624989001491253041749121620444913140473701344221938235129491353466504520302043621321537835130281175150457879786333103384448924231825637189501835694136955682172011881590053843075994272834504479298655888857343853456896951975813882914073181464055389681943734709086063564116211672746584991326225156110080899507155137154931455767818256921404018504616242779875100605380301767387413118287885880854231553224316321396748377918958111226126821198608961590112307473200793202754254105206335949271156760728967707705751914471155230867151645405301892519443354883001909711618358752277069362805411190603016695114494224397066030518760744536128379764590823274793742697192110083581983777956532526569098889518108515983802970673225490937529812622988558066601788838532642686374166285366443235263338566750637812767106667472698008921697623988332367532976111371318712324735838238501798959446781394776689845114657108743067029551637684859751555986163424675359437309232247462553674654808377773530842926660247869955559352780936511801670482073879131036128060676340892421948479773422792042040793623292321084340395022483677628180862057270401828514702411469685450613205402770065005126323588666213003366620684325630030267908945965646646608417210771244179507592663252766052173547537963445779512740753315172628849099581233385835161101201217358967812475173274284296107633862054938602194070858569812282993903853893838151887268286443377174059111367878457670654861098485511792077902952932920182443432788503920162410066402115758261130799655358548065713092533375948726256660066882498519033814949191814175433580343856247720554898676083217844431261501976654108198982013372942673861588436691340738404130134049367606392370098953807392639165863135015091706354749739505081366934592529656638846443723037058087709932334188809632293308570310999289557102810071976871161957782377002579263771503011949252526163600950569965995358310927177742076449186966866420177221728973376112025946130410760760208028431417302946613671253548877925222434508799241360941040733521151350568153958739696136972662835621098971165504385709987047638204462475782404293095366050875552490062534032917618349191245310768146234976884057787868299872605401761700015862105406320663330182072696592050263014395345652697358205679784433332360401053155676687592993059952202605680392006279941176371357568414244159665013603073180436116696849378069211197231322311865867283075817843420501432369696741754881284907120141654555437358374966532354178780887340618474647897789668182824091345240476147780285872335216917193363383685003977987180216332668313715016959520771796992333838091812636220266973241408857672777197488695166325601114308086356670116883078664137865318884230344750478241188107275701459513462008650766058617045595384704412598709924850471023944200078102935706758212773002404158346218637817687527702117100713907762884529405445777393566260892579463294651912953369944307293736830076487585246894391447426767805757785950647168993779259633375242198801037705043685321616826535112017983448683169891002088140003831421589076857953765517264876531020486969099971873756960939868979170217408848025578897271858228435010554623119952282405177092260269019163683389258955608272033094313908932174188766939107086718008542031105402283184189407920105541532283552194795702528101055140659363177754970711836531054618083188150423887008712755244182714794344103268520006607423359728456325346803989548235727095940331810950713695026643180764454732816231999999619774107537403051948849026549902171704951132844850513084417372217274826393483596135114810678332707236147529475693614259076042399654020190838495325545814059347111456937515375876946832284045104156091081530822130158982565365209791831468114637845768842661354955220500390434087117893488837397133962242736108843553306598487959908268488966885066672299688201470365773302500456215483139985602103719053641637969048778557997644092394469130998554847707086169700083649691870645664859758534501318548160378389477295217045477508895926839703621867928490911880294187910440589110806965862060296650182797114228945255029494711046483540492072581154207338291407620134811142534879245518447568241382221472273750461737189609646279804820598052776011504788339450465241676549905493228214054436028655668398926180347318605170080250838024430709976051315642287826874546471596406502560930151443154348678405023853877723906179760639014441180345437653538223976144379584620343624135639852415400687670882772952436899815870187518112339870094194485708316530532101059334234555346171554174110856639724812003693337065690014005804412170477606187255001717737028810806585693146813574237127774833093879463897504836016155459217094450478158469424822668448115522109974625871348242630818996191694268148996190482254623936827629528513982182371510872143701947813367449179558295420198053422688425496730369412037197432344741464789408017505839210372388932290738646453049272507369556558920511002089256670969192664618486124773894879577757143373486440139105991289816044636643857541745739890357651543575948887192170634778678579760998424999739372943411164075087948783691034594202935093006071899561353911516346750781949580617796649252477939575520969153733530321749471205615816083799512885532811602488097577689319949915147478026257061717915436838307220551919889109191645216857384917897158598616133381634602147872208546871681207223753819621297628564381087330285013374734788840296381374439078926834174286677455093236811493506204683033437725863317679755716181526340084067470839337625082586841017855609532891478776285161104838719188202605589538611099777411085904915990065411158223639064818395915445194269132702326538363770987451109958526220840392579259935380488326105090191218879676147940776670242584159137113360665501731344300930026426387999377384230655070693398940988615636626862584872303607976065248352318824170879889298763016817560389546558512146448916612381078004775845837929899972924058053752895178313406169164277977621718008118885948683788131939144608314973873976342904659596001890069566998687152845177037344203291103247374471285858563744812080737393192669466102043881486525826086279640049442119044700315942611080473048431545120425304987711339848415497027461620290324975730149649249841319243533364505826167755600249034707482789154334840089840533250296180629720581296718698122623227813772182869021955399290053810726797766485209544387898992133265552383226964374269553347558805213094101530030051032814957629542418265127625642095049798233677853662224138238879945252613658107921787438669718105572710863555284156729485845767324944271117814918194473561258345859864728315642913738805397807201739507449371156536118097368608507864267634872595817081163470598690191343182673153366008426307741843358643606685111484154327909728240920595332299897823634757872451472848587275003660654038584268616115227583097398118706103830398075472911754690769284371579406569184905931587124320691700574254079661012184172344724694695509996437079112584556488265058360591894549137365337833139005037613876469325123379207016231002633097513405468074576218100827530556769968043510291960951585173630384140486464311278885757833717051615201094685997248601847912358183679843449269476137392092865981815678926941648924763640911023698998063298164884214865889523313308191260022377087147066416019226615255996383581293667969231214969047490078575517769453817607590985480733193479141381874242495220008790387656839664242111791944897143301187686300920845765719465869900736247827684139388560233001060486328055686130452077022825707229620307905335715234345190487408551945232318517509541155512401753049007108736717514294030530505559184126060823726344927235437752885654052543593345247308299088688764595526345337225879387085120894331576728120915917467945262786250176791543705176991608102277986046203257465554513831492725704117833035766021449527274576426119031174161853726145478230890860171759814864654249079917055215781452388416831524429808044943305052000526116213319051740210223887998464810673541612540299670448708942156644397642886410697624672536794997224248259951810758844800784811214177004120075883599129950303376402831963871527885364636131558725981774425106096588938942548666355329922869585385260721329460350929826101189060977732166516419299985475377744221629078928993001718856854619968846655781266769316650466702722147146338342163287183712039043713357976733912861577347120675341650113113228594491071374463212706758292857524102091096383597243346114406381658750993669536350816053833973804231276245828490592789927576356934588122225189860333194355457521790175718087827558477318750526844472925221248626278205367027797393280498928269863752456341872291988798819674030230189707047906549538134106777626692770768748907826106568457269493338987509471873230302229600785788825866174098858425862014539547673356186535748459938902033533718966678263273547740832889195677890170342874001786697379239730401006669090426302840569381878767515930385086055245993575714047421279099092083561727255425661691349071860010707068814049715415955687084083885780114432520724014608404178105830589927653344667795399614683192223309765036943743345665246842765565596741524722980969027242449907844126841631187470315678699404984210121581987495241439139568263940726801861137769534325194851939769977595939446755410427981490823525818987901722726103023676161293964899322322307294629480192028921913121245140048004143896595590995257331919274485544294684841430427290588114560413344193109928878119141020948475377340935878736259412938318211337002771450472006764648123852024621315115360030225951070903947249700417866345259794363284952104666543411443116441991695401750505736339151024958302682869265816221010677456050653342456170345864165018304279356643796417693326930315835097049424788498547915354596955381730957874153498734215218997691091711710234920284387600731042365089467523036266132393523371001141658211042935813686617778934088575337987332667941305753197637526519842420207263097918375977742884510737206005541532214764561443690631518348185580962768103484364981008458851050145707737457911211536239684980548002861826241070977385440825601907033898218106757302150573845950164651043998448074697136606767582436246778400793172671804108634458229578637912310701843762405077862000745796954985196403670737791574961524643611175531997820202854098149549865184334774090329349398443524412811847465159642122654657735533613882010240677058818306281987322351828868389942011189846047967062411784696200998629547215288716096125260321150845987315963626684936203405157024086927453479146023500765240011380159849939549919604156767181895153086098457570522706655603678528350354645513569209622428361357762075900141089591245232597264325070301024245995564540336487674791242346061299654743599447818023725703495672089468991128784793080527414454296063419696671128318709915887108761992254497017063237096633794595777107477805754631313685315910988502816531751791974554903894763359948470037356337731108174139981172434807135554549946362869075077620961524008351470205660801330521607463385705075164164475103174204177290412093827237254588787423828537652751800128319444505327794149574083827271997518026291314542086164402626364021435501223886484332947893555563466897481863129583900068881552552109971645451369283347997749865355637346778804830627063956941076683655475033917628618495528385413703660926213317757688438470016228938640405648858421750289633311260698200592191365209602106949833089519521565627533868641746140635789141805814413971042413751187059307414443941570152799047339740811181926899884643455765229769081702419246751549251692689577890533783070581233498379536363474449438737397565074187165275908672398672946291629868812684223762619536920236608949059542112487022715839125418853307932266940164519273423224998552854798996548309433997739856763587367818740218346923320948384156851958402792270839948906932553995930946696529763884517875712583954275922915301124509372973397284018720898665338970468152370796910127263867540000810799449866732625073443786778023740204610235001639205613515856783494006270687320819976658485070356979721187975972475084702541997783678323616256237386794549631668435230370593333412346915943429280392303006787774267253147785370930978058061800695630131876510729115249141500793193310991784306580129651944020236192438369726686386495339728746252396092099590881297063471251726186457137943620102468616526714608172473021811623850139730442913625457168501699269711448514693435069890178651404393206802643667292290809857427272970147891289003685851947530514068567947505769145939119839940916454753315753954827957345149296687275758394763064201701602067135127113117431328565305773712711566419815450649796350310516403369032161284499119481703984755573155203837495728427227358826268593537008668838939972986648894327897507956368875747321574867698171014459745476924409137448973569852193884690576885534856818771333136393429631950439155468849625524808081135157129764998508609341516347926505759150111325655080274750710061077216206819756584785327932435923374574018302613965377699181866292655733100644400123813361076306268884876920464459721427397345622748576431394547383149963327165542597682755398668921752613943268091942293572438357830178281133474276482664161542416968410333213271499320118932632341414875481912150158759753469069065125871723053633886612866887462227205388310519875212621217030600743138625641865340785643482719398200021862890560663344941445644274882733333903743539434038156933586299599039088021393925311423911648410969167003713485261254012689522993377659975233847245886450499258045518468693810163070564628353350840478884215451191739650331047298045412930125927327261124162220373725831208990877754053750557662707469372644880270728140570512930962684163868315891752190492357237033630084739063198422321972932732421066251620013516963123046629975899985228507163156904620573138206687099844325412270924394572889554727827459791943472607379082304414988580982537178694565238973967586479113744615300019523720986218659090261549206247714166048289411720390055043805589340374587448121636115620290316174204514677878949600608052314673499150839267214541858332161945426094288106271799667684601273320334173139620349887551096606559154056778331819449703718263810898778981531040954623388728179078044130918477635655198089487689532243578801939750315700239728783908723638652955662718304803798539329609723755997001138412707302414222074786377022903133734205243886498747700877486734326412081727598356282867350847648072083185906870641433386943030437560811499863000714237836414372839229046970175175718042821232527034539405433994184319999641127773938530707147259767568381228815867945978270844161603331312526483071841764438083122416182369198283421135846102134079432877551189270955137063615027751613260618152996071755152985344998204184591547468955816979656373135056109430566159225833963576517590756632015866481948307801490925137768601752225929532180751756568653008858260793230249302992625075146699013773527722996840005880643173866505059416678138526561517079773323279087064022399106620548722097829541991969009399211013847847520895272273953136766731300180789222800709901755263420249703316733828006576212936432899077377977475717295280684186078227829568002770425386254356258737317817080377910485212139849981622415594793550996171624610457460740998276057869531254700058490559039318228339136653819973346518229369981894626213931671023877766922936996371029881122169726427978267353220466579147089763884752545502229051614566592543168545506900659314404908569919292854615310629301793075445936935211950547788476934866983073598382431307390631756556003305281815511995130529420595913187817348979970884736553700534033763888576771869291179824574843762509536624399524654436576943961427775260568790128130930390515886635968529042189748490579774233624392702314861122455744703531590082252241313251553503396848915420539787338018933951951807233142259979932206912348929275027985639474776873774005305732541063808652091713463318283209996956765038088882411919387178426634398810280451604059441102352856130312750067105080880333372427642784245798241088793516150897914967465867692668596047642780291912672184533721852630505823400568421220443838665737195346973883110289569431534322180903398693863836213157523519599546690869327153224255672597178943155529870426759290588581346360962038302682450249330192995521444382987703775395303973866335456250428499020648377345537283270933506078640141017992664664676957801717848250872061950687219582356798229587553350483024764219419857119590433319098329385312308526510739720053936861375161773441104899511927472243965832821221518807079825543122248974289160839839205499658554112417242580413735141869786530475872163052333848852023974763996049668872782174986586989223450020327468135124937981699831113400581249220644082857650751914142559168018685072013027489454193431618718858219111164475332391370851533976840771571051404495267834378686551019529596101345294339643590709353057169023086911024312265656700182168924188831360347623890925176863421973450795906946877521966710864377974676777897114648175424397509639054078562933460551217928590588279236670730211309666310446146764497036743138895204706587025415176500130998464267044321594100805172513580912815110194521083680087238469567376091128900274361961293168509227484476183495339366217503107168125937743300562242656325220424372524094786719837827609125283415717621633881617281402020812658399852124360834957264805209089831297670293636719622065673796402275158872497049859726564380550914000861859051000398128268088794204821411236783439776745686980977306250960145842623426844384592114456236170251883469716615737309164754956692479866203636855320019368927122007418587552997537276249585016025763241555939985187831460523052596788835784669857372465221599908678988569838825727208881323774403529907192201495396481643500495845709100656880519760139372300326437237333876924799514367891513131760683364440309226775534630511653848939913203207021338255023245364591701654293782083905354894114602719342160373932177973809285392451564739847068628057133207940675898376139374075106832167782652152689306422037163989166779155333830827630445841972723792962186876429447085860534712478378930386393905968355228841972072655472106922499974077185649389501276836803751941389559716890598524697631941309153763809993599066394148331257726540217609268139831275378746575833440232983828585298432475633868019636378036637315912194300956503630979412758585746931169430975675307233009257635536538677303584811451760904447651329458452268436344286070629940793171608540249868338526499781939713987386286528561125049987500227139992349043232272155467026701061916450852015763953375735114421659543006035010879805231721597321018995734598239942989197534939255316742175149040303144318328963887673905271079834875205860589860003795500162617304622300926094515825011403343411113423897269539642049831602531263506372130936847282262300496791358624827393879196639882929342519586319199898820603221834096987661194369181894758506416854208487815652997093179555018678093524609879968278845036342944155904279973861127043483989829015168554468732806077968941116809243442607196785686466653259349447016465297571226204474766205643474798929967957114038421333334399857832644432404495281164727967487994259889594202442736429943739345375459572531739648139545135391234849700644791831491475267061487127904210264538731573465895577257577383966590367122432179289894241014280070673734715168270402502176469029097779567079809449651063030077438946421820809410883733228750021154548678059634126383248408874893932550504378234272927764777598906237142101913897995973230598030258743949491420557939633820955095894887705641874405140273642569762290634032654883790613394390559387571674986392206432347424938162540449544177449046309310720082541518157652014562169165110945339117242546102725804653152931862868991619673377100208911292025126169599786460695365503822908775482923410443091199331387783354976281591085004150537359367410508975951290953272616199411288292446869766300410523833149197066576308496250826769464601768928284611494344629798095652707693684789427977594541808508570054433518364662419400769092204807982010306842108778123952498408023810850173637791124926060364178771428047266567231342528545473424370493337305331992443122732944045306380719420541092655403129881971418880592978796583817749489198981081943331082553616712385646621421314707851941875721211662521001749987249100839456456586500974311712527886477922592710559155392115690779415941974599381644758370134666864349736637932890331641954221018017362853068012194106631852252608421922152827246289432493607746769537135264222905684124498349737297169197914159737306490546790955572320489243422476436949281737649767487022881644315126215086032010004170377585850222903289068438603237620531664502761423745005910037905255797040231469165157686352145347886750014211684640105753471760969965143597473830331441021220166463650644016825750240766942933336418854594744484485533933396539053838610815589021229189692540904308939294558732026740866227754767997051365307832512180899801714986698174192764901420783131876101350344196092381886490124084639532799307271346608235366645107304546540436546162806996300697710784696797325443916912932239836553394961513040713411762049652546341403779997987655022117132737673447114303007417629274496802168255127656461556961973295609605917271309501666448912178363377669724297527902308376645483094999842043787959710780495353093579635487635810889606259331297570213630456614621300855618513142159455641779463661040052451635508411260830976979417402627534357239785378510724420924990455917544905429361755470153393496697907862449978935231190124218872389665216198850630029630745612901680342161441379285805457923426137939056748656290932355131263405975729810725817438164206100503969328601957644747822467123514913154486009531786170254038947652402360361955665723927406884193694259881221135146954022936420074003883448408401905536834289802499188420410660891017235743565617773693180634230484005112343216227166929428161175848287481641345690389566393401616870891550670661960563642095438413539117855000938889001850459391568604374692405265312557556741877249010453511048453601133952784249371508799254263708502845053343245331282496674011102632888057943534766973119779787718309146423302304371324789115500613076070919862392676771934218704756489562435221110428193057409658129959072353422807011449021087745149619983076459216561807597950075740535127910838841507164799899321550177577252425887633270353402432820986686365320905564153925534958003672641706819570216699790845180143369640413329780925362274329803899180675427409634086538944621364853128328878662251861859114260659235954860197361358677587907471164154697482101329932021275357206454270996137856085288598523777689701017462786595953895989658728669897409404707624720144621281856027015952669007328785224600818737544900187265443262274229511572842146264357766569753819559815850092136553810018018218014359447908978515629368942224678081880960731538417597568888955518747422263964082235897972833572679081257686879848089356523436910912404833639700792109068221919593878599375584043803435578813472592873744452544793410001034945509098653501246387490246592721737306150958098115437722650862576884506992092825278014676001453074685790798561028070055446927863771391517110828982117604123399704104700868913611173785498840861551637078637158778076574788966148865698275603386863914799810800263129045128258151380736664060906641690642839368413385921844617458810735976105337551387675667308099775776800631163920771658254869457785823832949983278372084406258736155001656195273374595007874373516303925970154800826065072623520379779525670566202804380376314051801077418319720302256531419893347498359275483121772328629088110591073160729524823758301192821395683782271744007996476049831846998495673567831252978836668784645691875824531689980609816029743089507013423672087238641978527327873510347465095226792972467947684373099422767797659038956014898968623259771593048560198537696911950816099775373401259798757410890468265448412134155784189885340059715402484978276200056454305069927367637219086765007297486016875481443302881835961611705036055549689178464752542296674623017146940830186768041690348796448672848019492482929486857183327751930253712916126162609518740028072006471245770944458037035324295095805069811850797578879251202995268225327049240221143351990427674217670029831092297978185761394406889649031645817421376864907770585072664128674946396286380220844376724521532860933965752575820197915618049056693281018598405983105954740968049365831160966747236143803219306094685117422923343570839487475426311695119129055081553185505238480415894295466706591916892037100822033204741509013057402328975652841856804186974948338319137463479740356464362426099579937050734186903508691588579418371068638994152789123276315654392606995261266942420532543686648953411086744804952478326604161869680837113426720911026877050218665769840613030372909056289576488132737278272073661889088639701307861887168466280567087999252054269592303399823286498479216849711807251199717904309308276410837745680856330615332016740329087644696650746001192299663009728158601970346821974994388674889809526448447225190375464729050441776009443513263459815679807830434132606045084944253389720326646878502359850939818773124275922971714696891102786861393678183341368281658261006866082105061157954954241735546477580060117627765124166270975902695918221295259256290226812616049850591073728984678298980509240918847729749938551351484142678487785960337130449929613671720050418466909601103415394230164701393709712975752008071047862980874881626669228387540326324155925055091667308876592857000491077157405076646732376825011418723532505700502536421610427563856774674055566688864495566410544692655670339516366355457342599974857169936969919077590890784369136631346412608318145366078995173525281324530302731675668313653502581558006927419849426187426551930357008014415963301624743939142178547244129267534749546855770247762725043814126751535277794190535565032055060918003266305350955889774424143875445374307561697973992572362635169554531188271374765890990451264244972143810032036860372538609893300974544852364727804461978495327604795741594571323001134433065994206196171821635163612005606520782411232539337210188324923645094224055237075051663264746898268848997040449115049745780462418989627767938682247570868737799045608299827482196311113864833184259785506975878966409579441194597637418254118604536645066650504867203076173975298494287250452915638761251207374075488696395901960209361985841739648821444603736348950056512767596235844319619312208160121000001382264919711072937876308704909853971400407351391772824371063276346351732074384449724572686820665239428235319457164176812261308763179393913487400674113803546913102073066252843552002092723343506072415272298672339334621041535785446149836395611208381000779594233441530729896674709616296229403122143749187988856816602855522381111936032824098045736857520958257941482711488014368747230207057380865924598950616698192855836217591943678971383716723080126082845962859215031521162022879313731893509601103171906849402168918552546185720362227155333163845631791470045212744349538521557565014089763688997534084911862006855160684391824139397718967851992894759914533742525554032459268730085734998981377827339184318087969651266275764725761154471248592017301255320444198676003074173541018143765250669473732261750539433556187000401594377896446275993745992552463901348221333459611494191457862117587379550925815731427369037588408394372554393074406330068424645996621742517259277656599283416439335765669185456501053651730212051531328962835328140168583161309378736149064844937298375235483192222158480465966160769167579585306394551991814175626053864149717121424703412559118451769928586155490550968229605980116189801049741066026628050768735477553973415313091914764315296334704360273431636453463246182447388166835008076908579406622886350250240538876240243099018264097408023913440424788681532157334695287021770410202980915683404368645445731167102339735096500136031892395118885285124420508065464674623673833962213099786232557240774371517920259421651287246275229818011384900503559154895713832422503103774611055437717476460791858334478670481594181345630400947275561893351507603937950887578306703430587739680023908204357115956773979892049356062630887289790341904753692786576068582119993582004152731901285150733933213454094867662676530800746754083674988779136795253064261156555719620807058459894331305528740952908511788777396997069486379271411898895458065008393708522627827234767958507281483897383737654341117101039692954803592249886720378209105199505777562488051465026482103975980683002654425651477450684964271994034466188644070698507730321607681865937789171889241620306047434861695545376480295992135839423490859555197645265421455509087982918291073057318340783821005702776583692491723149695664880129501710138745530429041625899099860884053780567144881873348804537526550147857492147455953156910368665929962879664140161277372043286169796856006925528842664059546432848460940627447274379895596210515813479537522298329596788699624905129588468782959329349738035454510114028252208350816953990731387957474763675392321578631835776098095626755631301425735154865213122125000316322501696774418178130083673793693625829828263443182435027525781014128763573790234662228465347644410032845872704824086705949752306497448011447323326484743778804991091858818576422873880856941727635320494396238897099219304818170675399047259003506084026706869463987890441039227459204726193831573941011516988548435371335243727840116171778105583610174515394371342777533383793586351505668746259684302174483576948213320706586070251037678890534400818391451186443093385672992743083342905131262284519881928999360286023413248533752316752479730001536653711062499162904695211714554886509128138472571157496638360661258058218384611877425951657831339475138390606061632121200595153998286024098208145730755637301306298509670648371667526101447819434351300784339397242998502952308676343766329765863083477416594468162041392934454696383338412451431717676718162913599369313746302321778667296689698128288696474543250326310703187773882109798467639593749373878223175250131565060616341414328352814468772386968029741005394159634958158954633944364734305552120960566614438031682723531496503371931712880757156859670536653901993368283704223043919596820901689512028659182546234279773998751431551726094874048840663314710996079381088793136181135593407766239563699551499403764190327410061536616403261903553725933620553416039846880855697359948441029653079571906796999189983410860844581628647495206969186011674139510373087004435626657046147468864557746643455045166330659319783951698433752345835973524998347654191426291410751814366449129430620883766203715390086725603386976981601894918091427650928610133375810781319923649943011112873488984018246222860683502373761599449071733713392765455270822564543010590648863083482409738391578807479771592242078128978145788210730343646857216743110046797843823854868959485918776804250010926947441582129323418595034318144903568800982181010096693471712481103487123191173244411095791730039390681196951719220977950402595132757249784609543915802385555586869714168313045058991367075015135781696854737248276238052621870523199965672681486459603717834544874334850971273828090381236433292212010812140786850372341432025432356988140286687692714263784867997618683174236263791630841461106061622598821874097763577108512110189402765952442735024220651343477645328161327342651980937358370724533611260639089149359535360121634255464360302008809211276894839652454793254842709476404183377008296814960986881184769718847957451817122695375276116743755569069870456734632339410029016724435432054718346260620939413620949648353403209430619782425196573068066696852124854329950929594030885956992841190093090964029035543353195246323785695459304548556689898772305080535734464147593909485208259715220024305184024932290450846972862142117253588872396941440580824392223500434937256928130552012740214436268538663812080154347650937754394876226312203006740717747294321197358939250883976993702236890571422777600504779296784750223306796072042499473246414881461417224083124446298230786373953999641952890172644133964479579864375838326740956626922543853885371987666820182851954698411732253310728765799452359047941131843210585577288720792176703534192348141363894451237511556095416731914074184566352945463385979455666891075643343453239871691986923454983443609479072944132269017960228321924487275255305383281892496427805675271457770846241095242430729516784656973006065480843291855454678843274434177704526834650665043350813285407674691921719105529626644183702231667550534126386880328323247190462948488866846549883908268353498269712821462358969124238682174813234649332734721184450461668375525434882714512515630391897068716401715350906064598533332852463231703007236477012674527567210896073203937466754381057211773345553643878555513417745896720672845415345477421462920083659693046906547332014354266085130403465351350549418440111185912189617236588572354898139726984954681808201471239097135996826772485243437412159227587453185078835109119090954932498509899067278641248920073985494458848678195366812284618454595438584335505603711259154997342031434876267921171692065274361567323038530974468826870784073612049546531285932779619610019741312295718668442556488584401016688259618504351263982353975503718630715863687782154333221987317774711355204597002591388179100531722396139882860003611983012611303287741468990741705362371380126982923184943916606169326898327328236453892973863726883067606778707841407110370120617790703366622590361590170750380141292604969675378012945082339137700542094961262824914202669674759800982329102936645124414863341662947522840788778329082960946221083148096959027776751048558457803644344907801453128614137453364072360414123038978607424895245356659155053341905424466410728630040082975957144556779300376997569986066069342497381663323727793082046211688722551432234471674068118485588090662738563786161062790378947696928164217271593581443187434213540796193950937757591744574101761015969055247472969292100799932267233759142048102227957686722310394773592159844262519159054543435009888144615386538621369291765471321491476763586282054885404314008254422662182753299679727312759622787883621183243797355911112704208342654891069976582753167948027444912331299901033595610959919979724273237890924998872952754919833119979309714203996477677431338104316289110302746153939404339915318178977195878834792559642598520468688186436354795504715903801042576336699860643545388322366544384861859204644768481937596807832379417659940702131962046142084946863490447898062488336341534212150998997917534103034527664107571447169366415993536994272470481458745476711536137413809158953242652978194481844586391905439649585596324129968103929061359820647770051005982688619428224478453469456458487216040692769116511852948177239237648386494869984611186782472021910691186300318678639364313049132494926659228882190608008808359541477967160968118463309487420062606278708797676622034560375999819147757221518157663079604852124392959446139835986555199796421457121512444147062250511612740560917098091804684166836208961820770183378575407260511680126896938523423881750552060559495806203626534091466855295880894992267508944101142451125360050180680431176545771459480739686488267665415645973881206869541349614390994584149981802764789957125809653413826244807277867801439627338913338979934793138213717159945404536540035548013761994811885621425224153395456362238557193276475722201845803569720303867055431238303105190084519303318941504708589705612550587853014023395034594121290983587323981036079003973183659402668032597744224127226780287222020555814006214052320698376602423970760406005992676764829256189283405307430678854333146546317968842004860917287191634098103090497062362311661812171806388609850466368339844341597303222023247804548570880739808987531918640703155266041867678153759643178762635852151624050742809886575928828962300417234203380039529434853790107198432048135255584982917065879764679092721344240042056593403674550895120124724729952567906033345767319936210096678804307887350434873972602392001005612133854245501790572297829730905444788542769938319706532243889182059958224090109626511500824130956948805235194456415589456591118268802031220630939473456253434716072206815463677363314518756862026196600643867696013768732447030705926079521830999599867287247505246973111359068455547394267769997589644377960069225517887110063524525616013739723964502501605527471650297694005486370052512603333726346615450420679081662273520124980765660385981173988781959063489553843575647447496246439388635536917780936380770892354348003833884369242849393357899123237848942342700780973015544475537797980639179414060457642839983881438043662946632901675669758507567479807217243839211552251859063600783867794074013191622486414776493102881988296855745462639892838137635378384483644891025133779977128909330079072858554470138823858867717101991106352104883976158433892533442871419593313485282596145846864484609014717738010624418525130300123030550088813116525459275207027322763319171672031438813549776940641575447410744209728550786370155355663964959216265614016036164166124614820510239955183320625497264082873797674411435285462595082288825434144720205051617334761521262265786965531076113728662189225622195402490085174218166622629719886631418289900973183511678828495904777114423074532615110816090278471529053443393914750603775320465851507908851241389906354951383883182029374922635164615453002064212016498101601578688734633189261692360025655229781019637458987469996809170138820761821781171192797212549717255979809943982397412907011536373127588303785819993414057762017214071552277242765093567870084528410464231897068045815022229164945018723172657471737904353627055474836859853891555784815321127951498765236953564611675381873825545272801576794299469429684597572205855475519096984792004092804816786464704004019151259248753791811923802987135996747700717451761077615271763624909174781318227795052996638669124216900384130645802633642340759267247415836886487531909322816457503354683125582423290565597130230961072699557765253460112337451136902600706248136888670808811332823418982033706042690663946336427132641505143555390889947545054439726432722889027473582208480012720201683011603597479437321505591369686798771548063979968170089879777234481443636725538843682588145816948252323873485130694097249722330333312847187364456006505260227039748516122127754886556535686725265982553611702219517174135794188327103218512239349915657093922581832950658749280099281499168901076524394186976789191571818205169997210949331275099509934983311509470750888411836897648328696213536650546914832383316438659594295000961420985936048338601215123529747885327253652217745928652130687930569938392572500793037203623426982297516660892566641070258823204148288764232760040284438156755047791878599975334297254484600736463937275788331657051406949045313139717980995007143755398884225745421586547503047384547789003913559179718787945451847680623740404785479130747844249830372997560836226885422300359767244586881894301869627409095017256793637171289219943686389142169775213201411620670426160045977693016920844413983130550488642158879852440442750939135910537772277058037306365074845033129201567025493882974085720137478057810964424702432099039019912696841836748097981314920938624530483793849459349154743438481419552236126578851371899439934459287979979755113110767177962820026800166300297645405655130347706983467231273955269794981215083391762018706271656668941826749569999236763339818806775178397530658249770450793984973001575937574338559822361769771506175930729987772147806126965187031982925447788400756748155440121724276134937606356662693983867472903443538594344896997246130165978421401145043428070059318923354107279306518462013494680864778465971236280751248205274637079669209849307321385743911752493234462164022097921097194970856628172281244175952609106416457801778764220322416874075237742557652051452912999069115546895666382575261613132787069152087181829034787907481717169536606628363112043056878032729649297923246220641925658450640010105880755762696322605178285626433041346265207127334004628411529576068892727622290307409026553735587149784818321925938071125859762475270550487517698775317545124754010651274710974359515096716454839262594354621791915719605966040187282506223415206670284626886569878083013116856248865539940119093113657071787018889695889494732254895678262045605937543010549596292710680104708078217608372310011519380351517570012238954780855108210538346968037109280359407476630475900241510494412949795127457051713347411357381690804695596865296722673087862867122741864072260920537100464358907521179541717811508718506132892393539727764897266670895724343910543799310201879787528152409541446157973531404750551429526786384740760251764144439999154394792603573914747387000575437092289381895786974633411358033136202820386697580873694239725563693453935645482758687765290168777863162719777840028904963234956035614564316200184201297241168456784808196055492774022605332145689181023321572667561861953930346036371839485211041152908377901353667797098576991539683413907011482985065182680894036848942314871773923141128211798958088896524383939286257934708092254085357388998496416149445689823856518204506028458968484719651350570612893708160257078638603698155872480090426568644154509474140039573412034454189369662055847789588534042756030336451333802986485289794808186026042150435844160662750069730673125703549161019071620681982511699592700197787569405975443531291718564112126199637801687384092381283527047647860830936740831191875811004338325909598455542003344327651226657219834158743271614968988705553369093016555717531141089323317757617028733047187577332552581736680759754991544736146068089507626817811790211429674201913833988768926953050824164533685151061642688932795689728424435740221503634115412335560319939802920376891261969342643487670873127528429378101387509520282572371966040048369339058732989208221088528144500226319295147354763220909881020963725704256189630086656728214170324668609183189966673276951208265148936479507065910121443384469001351257421319822926796440284857872938849068078544237842653536719309624469633755198550186453192890195800596062053711952944536898870825162914451523845888218031277112304546538842724584033882733619325019032140119505298641568205969592060583117151655428338819144275628518862220998415426260735308271372844101476378190791410705978575910762646134046833142757502839408161646967317930284249211486922108480526283135098365898623005445810784497551188109140329810899364289832008523361479974670494693925444202453056519925186062035087804179868331837894909144645826560253991656455906592397641758277809339660723115997140051689422321723950164930538304468429868088463327661124731307227206944475196763127505734438161997894206913935976896227013716634200539655452485947919532566470243853564159186330712253941238654414576827149074945891477520374389777206808785768951323266595391990176044823514793596023060856090458549705821634606516931190624401856465751453085370394089202029678138119653844649817327614656733073335260764262570730907572294828755372888073115729073500908898736997826985444258274340492090607634821001106773660305147785802189519357849856888131641433649475172707247384041453299829837867133114506422547829637211748425499142069444044963806274409772902008246462250200134874448414895946181605516809691776691092234604228491247805982008070763993889912894417564991526963236945914782230728958734888307875716704413659716549032637706474558391252715007922745457907319663225892129908253006745994262261175343458979182060552175646059393713235510891876476708572998732226915368112569190092397487115968841362858915726350655594598404780825439564572086066512969550661273357362442928980967762107094900620094795257455403467531272743851506399262404345253870573591771388761530819436912208192887219014375544601023672524430798280265068690611150336459959257623541079400453862259588375787297504935483210621245257637292629038830159152893622283058497393595567059383219262368844116927372038035762576161326469833256468065641843539989762486114425561068595682117605497496374624275387980463867589479754771880603024070183463408271961059917912053607566269304907569035473332763987913745475680982934474499991244612858649398003407134496239458074227216071886843640920224525625003756318437846210920197916587999917269626085892703120956978748646840344299389165727155657548820424750174027434677294096039968820823159736950480782885160576855665351126455687986553545982192671632495933988628827353234605138673049785359694644473162074087093217209084167455471403667127827585289835031857696732939196443414108506438195976614397009614123420488010665906701439349576947391907453751787346630627120020274594470340532077166522914189214939131749222734235052866366541384889474353727568149107542212998743365412971893054300371233660123631834024273134461857441915126259474742412773687646443440262790606196551451634596223974880594236206191010828536881349408435173877179760971490898130034417918464791429252005474724080334609423031412147864879923324640835945970602346354605758326978612536357100331412189625180389827667762943234448194212842053892618068432527840592804932225681212759957982302170369297645535111929486040403910909238758803709521783017964117336816433073413681406915807838536777111704974859231732336142268260679459579566515792341704557898959604857117665217978624018563164455056467454245010703966494437147040001588119511136234542350144353149156421269818038146255588754022650385388465274401868865642157073939595360524392017991909362508080117358259727187294075076749699578965532534674839933303361184219678923198836458508421976277698315502879145553834228888528379490984886567940505789874866097555849098393282809255216474499028869769636406125233669889963172591283267975067558053108316458907760637823582004915948400202822200590044286106582534598666808439940958174416744818006223605751831140306898981656988677517551147732965015869269145369399906423011254123592253258901308331606432115923949673127961124741180486235407036225565769542155796375095222429957406564292087112154858138370804120572331625247961684204774873000236044743484525352791002051358505114155810526593278299508906829383533643410894597194299348549064070273027875042709053228799905189752787709164310240889386371407295261701877488574509506507477134883750789259610311633244375241886282724228385965222170093726224005377317647512733444909608916699521113879735298865654195674124499050413452372442645388801130680692587485712891072226494801767373235961856457363261579024837856312312350058067461781088644034235802246565516019315141112101648731293809479855404758986771841367640531208924486457617028834676136023362570011632302572134774779445160042470914781984766230920752339810443212849466305157231351303155268692338963620915803702931856340573575895656168150432731295193529471640582416147732861865052142396551126273014547368499631183051997055240129336795659545383611888355756068512712322056710144165148359641793517863050335153630123207782628919807890463581563414980516731017836223744236346557083597657618098598042848486334820760128249065977695041076189782407620357898815316341029172262308903168725736000442114509434745331348439970682932206654794106083616957649582169327392946265813289878634687985425919463999333877965320867463623998474600581479699298885077678240934453678679099487581411316651978515128695428720039122217321335848204829329581438511818375090728905852740853269632259346142677117526308583401347623860078591701474724436801911601953435986721619007460422566808535832528618398005176503217510806587072253189623548169158861271020331461784848963740634141104831495816785822697473076814459207168668987513084962160677868678317520353439495233831053089803787195177213696835882287469228726116946670350756019475761125425892301150786733021427152187639124703678375385282537406423256732040726400581304299039097712926734867910261961172379665025072516860212082158983300421625507783640872750259986634065763227616366879793175501738562847007217780499390439586515692354128333883917686830644123625928276687709826568693741303582482559643672841764041546358382550689357828980409778271535418776628551885028029497213879033459625270690411650890213297616418408142991890929552652361084644305199057497834770473337672446609280925948041358457345811597463368707010302211196922820799404795693048414732302640030919548451751107416939605537100571757914174060209672861871637694978368009978480628300238770133849663149556082832681215586082404911442216581176672910520482215797432804920881446338439920942558693807247267748833107330601407177085817541679591383516251321218320213837396661654668800183311053460765189859824388351415321977410504268153489786781222697853506491235588141957057380726097878784153468202493904861310917071286989781057347006563544555539600544397745855658607324181995919445634783900689703476318707022572061939202972376716064590581064442056051889548238754298316457544376143510921142087385166625011492776311664315035434406338537677513715131823452386098477238377444667798228450706671194406809781927559955423748381524201983954192626866411905523714893553829613465771578760480447738437916105601316470373993348515196315375898129675390303068074398922078332415395175754025199424746970737625567979403901568904876731318969583766540786521755088101551916730686368930258349684435366478556478834609456092539859808558852488353149861161406666928820007976837593311906942279571461214925097353412870595141822863172423903561435355349655519294217261656750668154042971436381603866053380282395549599798478699400357892052087227059284343901899585061681076605811397215859682349253595034945824705607334973242623819023080545294191422700815210766732744007078275643350517605102058128056749794810935299232883267795456962353878309406518671913408011676444921882783975177413340100326014120366303002387074612022367442309216034775722518486166914136654179488521504307291549767330143982378507667959450982279642648029879076961628066294188717363153079493568355402750755101709134453646941385526405077195965195324185983663414379927425861230433946909965082607511713508674722919762287978718482535768215507256708030812518909354519126474134022649013940781632098029910058806912374643256307877195165424082232779859250886050730444803045839963955165368274233388492479733695987519516718146043146405372092650629103412952879314712650578243459519751984746999436705081888238428218832663599454335101311625220166592450228437756598230914820512384407501277768919833396386582436503767288912853601440071862834485429858721779604236779052136130436439512677556292892106983385079205841160250792232170490038163023652606250789600756695992254216655299017879630646352828083704611799919757544738034407238022775679884134663814804879991550764317817079464452446027472506327744958190768310995510631065360906993780943108700467663832607714825681523167019231099420731950021725484875308309721384823996110993985423900804105988873783933820437717380331513532694206640271981400450712737784529710646853416607972658855995960962194291390144875852495147110779409250918988133505929456416667327981803461265923485592500740211906578438901529994283697449377627701083556867861038990025377980801065954253511832336784696831511808637112141917284161127605421182742518044210333318703878107932797230154690508478795653392568624653556230064327347498052672873974962299552846970333016252052776026561238489344660220942413055421421378549365599933073772512306274632606667720805584026791150513801475207696287770407304166953429830793031619799509608389117220181151484727038683753004510547232767871712114951073881883881208164515757726008345985645456310343808142584388887420663373845146428807296865697447720818808613548975823383526142108266711937111126876442172416786554620759476329372907707556188572915304489117271882981564338273676514602191199932902284094774936171842892452128292148060948586324872278134324796120778265760503959930964611906776655520806842523009243586166819671901338964104946270064686500366492922822485633441831683253665036522451364753042757590922167985639088332091105037360914732278059481486352951181105913581982142896627367190921422538671646161093925542061809547506125449495734018508597755714789332982903896314400370690518445154979771564621892367197008437087181114464456284940102295492608741669284166078014245899511019745111546428579997062115584279155241617018744296707628347097022655577792968233730788502021021344812573610267424261221968942981763687621475499553769393507033997848418232088509300551592455792702574569955789474527583670412411592573177649024756311119911101812134873089410012421154385176468147482873902569224725196902380134337706412149392019576819433227111950851032056321886945964679871536347956342431343320531097883487393254960176999701573613744640593360554030126581121230748920469593000250418507542577537659395661478563831210462828201065941865770726351810948586814476324661526227937638957601953368579659442133528391845112185090845522835045237017307983227404253247652637252762572715317568629919791202823776876814263820572020657241807885137679977805469521627583888278233092535003601545660096739804271565447179120562698617737899233702245340208515772214334982332190998868901601177614492969220010375411056331267704075453008687884713461389492673422567265050051840552961514300909204661641944567463495580263197849223857055822422675083384138106970404435740420206478267654241718521730792317596187181000078359228852873362393026532513985814959861479547664091546209490441776302904370161517428765651995485349045084967192368018191657864589559975450186397595767160656070858089428438584812887564442267904624175664310427805903002930416646092275864433470306384294959054607599068540792840116042959606833561062022978025947489102703105705962297735065373481823643276672609496372725846581374286700477594252724057182134695205491464677730812506062375351277953902897152351376640280894385475785521484400816795806048009713420676306985703472568714845586627753761058593298458228905233231206899571716362962256038822285852175424712228057851584002602532665820897115408197242273522989669668666840309577177732338479714411331992883948599560538771004070192327618376219949837282172865411804747552119254734395663263797963586887997654756499604543781746693227272562101667286751847496210089675548581063748428714494222800839010481831078918972936734373761592225046250410204211011379367686203036765695506496641213927896163756296760450140348654463549140907633679114788361703457931446426352429774607201276101927890991858340587244806434336820970314950896003704613626884674634638999777960560882984109551944513252257643637421494041425454688485940512917274764123000825926443960875001777713650116527110698820781288367813485599688395044210302439485886167423623913715640763111233900326996855279904106467522105289441777899254301846778405617551424745517511390643011025788688438852298819417647899769812440988451245667663961570045348689166074499238431461991767761284054099164000384394331734223181820514746339866513059644226039254572643154466829480022496237854202657861437374194959105435572469751674883940263908091386719563136168119587660400709674768442208302201617454208427144258703187641465278348739331402064206985213715882771402547793807635614058727105303851497588692314546406840950693537075176495900412592472349618104512195177815465405424422070154588936346251049692168026937687210061046003548987290089401818657309986830204439663826009212907867787169783520537685025084646469496800059275976381157608826492753160893576874842184268611136234307359083364822477516969907782308817534051866028625236567716890174910976832711219281693958768266358275115317502124454961536235641576814448846735392855419254097241547920790978465976573778317943230189761553051191190015970387472087357769171591514571124685261065205249375432693573136489418464387577591788756635116929570834018437100575939782933075277114559255298293891130904032429909962614710046866628331278991249056129678795451630771513556503661505839124389131244202516012735595684067837923111903082580133929901684671356055775135341561123749413404182136513421443076580993429760253126859539030728582850673623423879153433514046324484737479220393692251399105623049928679968545146536901383108281432618346522723097439577517423173826831063885498744698402238517249181482918110639197217539175317085466190969750384678380227558000431656157595543524102643442815335601649721149016584026203924854624216575733579954851003126071614920621139179494577769049357126167700802099586347060311787076841634369789297626832868144358458037912588087205836568722393963685352594203648425370379048467021025151822885572095016479694361649009773644333180360583779524547946185212561418984562121842080121850600586454654567365559063877273374292222458180412114926347025922700995512017604826573663794975331005031491932471749514178577972196095596631272037908836413754271814941904695150975354258192217562825452024655792131605619866996599682993503581506298365718790478659724668484288835759794560464997745945342713558588519814180311374800396983468108621487060667837755286587418633258010806740355136189555429545833649142268502049156817196179938359191523633241677798604872397196107581118237363691982332858665226884165099400232021475488042808453593842427074272023668854856844066533411793661441914543446004955287783438930147604900639480976396453766013106233928892103886517555407113300074253223102218054585006039264115702471573090604012320872899463590516467078118967340758972987837669376957364141316432464379348264438928351797109128263443087311588852671183651140297376969654353835176320940404661774817120577347703932089182658554117446671056491619608913914781792066458721579525891945904497206141257481880999130526280934082927448309882880316247624052722694337568568089084741524885988753984457210876275960693847322882607783274506009984605098839642729295180008458280042331998401673704790650870431976021271683085189276421939677115469779940104200474221977476890475332787848618421764446247136834034520398725101611504714254343385220649124172189427935628812962631185903580676404082458918406898375708995736060462980808994482450506379090703153244462884397827186584575826734807304257673485020703295571452292911585794378556567783367437078864936080365732508424861894261725604042749195189298849406947488344101821213707152470283079247364419014512805400091980258809566839203576161824996955242253925470347254256600397060346738575446369004509964878149027013745724085949496498382365333816475475819735240553293598771130681441007329796538428533372433332691175612629181714465472039544323877283951289300800791814500121374913298148090266425750282394400629545062104996039698292835210700994039051130011656139824066761199608198413873129630313080319602199802703206227312007624026087610806134719269945545023110931751993238343869926530509684852799624599661160382944325867751519791033346437342978809820377439078169443847673407054932049297959770869198920758927420416525594620385571475158451166519659869111321371136136987057377159584185242722818152208764501040118340835069446568986349057696612898526132158926389922071182253000028654680342711902252824120923202124879479078504053972015505322268307809411216462450525283575928666956710215995963137046339565933404846958919703876610332498794318352506334971968429600237269352139157821998213300430282271487963107569984714570368233504855664018800293290661142140558015824186914115743020440656951378288087439078611634515403338600959434608410075819848025204771547727782400163528232925738805614238199928667446939899326661103547740390795077433620375226243339420071013744534567423368462089965781538119236116283553601025798812374739102811671095321299757179224684010519709220563770709680634265306957135046367965227521727214338078513460695541522441588673915877027389638255081036333132988857221693140364880155348863709953106205619676314130890925144582309007806216058608892708794475491222641956362603970597644579323511427499327865456467162869297263762548984525634817520040070368247600992087269107162753005254185186015299960997100153175614977410888842861430334091645965934371622413452851435691910241174448303729694507580971837219979871245003043699704236800460240575006558104593186384146524427243074396527058347792265057299089334749310192985095475476677410058956380821024296771100477592874676112798040345719815189177844797004329244896711517962803380545843466852457060275473504957567515645317583942881616210799744213396423391159035781570984626210906684378792173635531722738110130420338382662089293975153059177456347974241473373195137904802085679637819484309984294416544856749430170027093451420263536397039229460372694591729974959431984174682999490666134086651625289358868020844379369041826890586666663893282460270142266937978395316527540723864806560068245062288234079908977156427112563178520124361793129724864498860261080261247618099354838048427176227702156061963725008482510570721909076891104296434219298707083195203019701529629933826460978423043343652713183310335040152674507634944240649877373067193656517855938439527329042809530728557807467373213139723852186581852405743835565658451647406070620329463523881466913457820634984859803064970962035529852240421864809504265463078458083097134910950435793999005461508908859466068750582460946697784557783305971856362762224168286772389978925176541652129307109804783773751688642643854406879834640912161805813809769095211033390786445085977304057776909842062870171478740512934297941227418404992709595855065961287671013704280409531776943638015089360932279635878775361796139598186998592060738726520506151474605724646985417296502222843722499586896153085044770022185005822120994099221099078731669374437824149374282151605959112058646107092522186331577899463526903868873926114238704096276235466620868822622518736835964434969685342635232771674681391279644026640403440884822106582034119906380457313867469416982946949238697551436617567897461706808334304348954575247777419267487479586474683026921226280030870695992966695597727088290517971291752494561598295228149237465835026315402207933610622704893124237759387109587213603654819145733872919957247255868961118621097228763825384580934126703756496296745620231669283863118003589961032474794129213340800361587670988571970569109102640457045188135559112222243891624509670775365645748638497929261501313682339769425374587569395929108697792521066252659752011324086801658607827655344173893615749686327002171764185082858260538879120919284676285621842634186690872277476182898667146780175641834258831998955987955125425527723225760816103797933226531202903142945731218096739273424523995538984071061662225425806758257053642704980860320120509367206824453015549057970000300922999123494855794822128463197275081127364893748873088287556123622375856501076833890785272469236136407904205626946494578060527722246185770177594469273079978063061661546374518949241517075898794103981693124242196628805338063812013908578715967504553829113584053650217919600280755202145589129720767140111259098103033809953330606888044936797769067809897969907031460522950811485211416979265960755505481807291349370076053930392576626844881296608455516671343575336568467183888539106892075125369805549718999348208861728250408929338123194635451236099947536403060014384163542474095264025039703809451179386182540861401863040837423670795495910565356257974651639396318109595923001408274784708037323918425192051558774616553987397515580103340550682699650637314238783582026488764748735581742505756510901192213974114556422769058101341953769326940842998777590354533049315264957188744264097023092306603802001277951554170885290528699081357274985764348767727474255330999738125338020924221316426302028279763436633175754670688629753217546720839142512069585861434457491742612592036755234500127848732288949714615951609356551879502384827562527515954172925410803545325547287982741233758332273144060355427687694225398307279577550548219077416156232668599967389896077838408065487044802628399613723890174629031830462666833965384254249795247153138084850317844082013993010260049254133895031779207436848502327986578239099554598159242743081467603849113817432255896192153788574609039822118687399753878067496810384239438936333672550515741681358624010794547649400641596023926223338686102533419868333975505833170909857673978644761118226443040802997242038598812917795044007575665263238778568579551307044781765648134549936996331244377425651266503051647253493894982731315657993136252386615865985604650339303044529848843133485695742950021683662994563925434467652485257243426236549106710171156907276897565396177639442099271793014254515014018788076548966511072624694746484113421971851789287723399633278766001585368329364806187009243463052717906207759412320046739163114407217650036788625635833253222510668721619868468408283105554793282103335538170764345202959876423226661533087028917516711035741402514840158515033497666821411853884174843134774137410822461046083928445763727633930455665657324159391111710070395852099852794984945399555771971188043483287014007421431174361909269616299014095344910821063120623770370023513294857781646242300286466115001949715905138781813076356620414004381718870025508462110191460345517181007062441603235422820478768804146610515947664658905213232552157425088165736526082465326179233802268589069136708926922423172362810066334430642141970206839239303032543651917281451287035908783786246116418892680913948189269014218920652907081460104569945888927933727225906473258447545055527413617131299227325655861655974594382288932087162374057764975109419751694622155680488301047639739554991898563858316328620656104553177859070542498921697537654432032414980831107662846526301235374719990140692258233253370308622251466464025387047178331510846455568789080688653253582823587468936945161747264102489784790266979427783651518395088957653081446460127577529924496013108929985507682764026600792396608240127356605815616915917378109438216590865997140545348180736984760805115890479475315730147753993035648894359808336841616112813158018649694092044801867213169352681305840056077694935378028171257979139315670153031073224327169866829785603419881976470701387902075664563780032369635167922716105628124744785934400943706981557219979561615160659871293497784592912800194083050151085804758126823744493073085907195698835313457215905242883468328476910702968231152091161428054685795666987374594937063435946191340085509489258595815441177302718759018549441203073099227593448437689222601732521221403707217798377242121982792989666662020360052978753627840640749582576077219667497421874978011423620985876017319272227509863112387247524926683403708099775390319175417010244297762321801120464679230223678638932365967743761501347485473504591520994547999640547641788395804383289211367944933677788874276268874244514253206976688270625309984776069825592685762223148749734829581537807927045039210926836182969593740370166678755171848929754665872659730149664469003630426126955917636246652499305265025847655469798567089476718756839232756085954487224992377180424785428570188922397217678076490549802809585296736741599659335570436021872968533952052014495279800944916115239306186844223287731189114566670461833086017556662498814941743465954673172826079275523507109137347637381921296767393715754147985831177520786869051680180526127166798047195524249088231579058782659747474523746962056438127515748799272844435777849408488570545480339635786859973797661486510127209211440079560659324853394012376065902303116348565991888173169672136201527784187730261285330010881161267465049548604975178019415318542267093157260528280857081133817729647202315809961824836460058225030611812431978748657085429401771056079731958602912188095864587565654839964249920496679335433241724025979908126685637810945563151052783500276216052416249899702777055801640205099555080725461980125368871281809346643160853389601869787726543839461260571875964849674612607960241252158366408935820750343070410562261460469358711279641429591868935596948503023431350746305685044112318072345721271415464267327897094932959178766971961508400139730164632737292313312706340166019391354147385519065827715762687622469835809009540235297196229845944995006737027777923312499687410955592668494772224961221692188392980989157330843469508504652036459536258195704773640457483457049938969805461886838959655536981048365260961831935300807486888196128351638026628353031386695727476240118653839193525798372580500809057941629942870203992845395238701199891477687618407338232715629608094364237302353552087896993158427801894291935498801249067473017647722566165698335612773897294709334212199906799582183327735810518335521742555519201959828997382380967821631865532640908191389531944365466205191185518196016118510653034653163117650022923077411075774443245849245332987445637520127417135407224237139705204757767444803411112613438609448523123218099969079630272901035778922719030396735658097815905650821667440814427828785999015266814356754198683352202828112930648074947086875180542523103203192982088455321654556203107436650978275434835599124196719363054157287101668250127663515246922508003406002768273790738657499375111509613220099030234638134020939607063612575220466186617395948332208233094901882190232736728422856387103534255951534238624999094728280741484870984587740651146199898145321120754849470932677205781292662047312419339372606870147189042087575771209886516154162388496885028818884896862240043328754295014217096359081363844052684053111636689871518188012503017919789204228758428582057992823511840719396464831315799687804466963321288698326649633250485571377517702504136852842720338594501353895307818085356421305954901323883427286112614088019996882868828330419721915187512418308649005688960884036096916253900822498374379557894691397541054005310479241281956425787105226791279343158268746446633023650963061321627289760292676489338633985021015265209497970980081632145709325338344512700588636364285207671769447349710688984903866832777702964817579912632420415901459444308081295959457025276249362500354382033845011108634191045733650163821812416665534378821745011805627295780681909543658365003294490152578935180847441844095225407546068287923558300664616109177493537879248776517138753239341130471001699907683479549858250663034772426490177387915243057676785899683586511249957739249090617424974225180347316392330182324811689915231464429322078351984554547358824943255390711211390664063365138027018956118707422294649630348496201007584672868242743308434370156155627911908637011914775269558851618547994324427524975479372027269080712840881348597591562602606573490041570793164210516622684319264257521546837456788662441215136935626368123110578341240788779748132956391499223857180616920564923141685476014081874524586619701088083498355517259327266374564691189860840998983487626968794681973966260859490835165792743551584939189428335434627008722359013197879511276822481744511862202836641627852611434291707964005515272367786046057692476482281160435140169219651901309513455264247946289483094477901367871100223947479724877476512735189583825520358436726934221303335060626148762545806828484733906429787277652538081123835423947927281741297759531974159907594616232794280485571274336801636927039295426271419442677391904991625863567059833879673059519814271308834499375717954474577362845085924299890627277126603631648887996439038463153727363475086276325209504271908113215625921377916406051682788026831460929817594244298392786530178636200300088174854782500064006701365750905183337008446837817959949674971400564956011062571210408385519378411228705538816523658958844215645144198653010863938598816135837667610087861196080194241773249993251479214913568922225412101967757109086231595624137417184557915170376411371528772072133328022565553992293385629530185577180592639766115514054332515512221330768857892140425996320960964383339755137217639624234967702165936982806064386329023325732723559215005658915604256448384733399466914565950559047642639468790166265764792167644692793122465954187451345673217877135502008973651251131738569946853583666184768133444248625502403035592770018720664827394537252862270539024890940558787906638417367234378953720172561095283022003686868403713100095800264967210403484596731923717538473271765482036482544473793184106702595799250949592801020825054488421729616024268178231989800569725254476446924944785420148995043552090046019190231601028027657870912635208332834440336777893793602622602859892914045165250068297286341606625374096796815317387752981269513106346395499217443229202524437095512243054187609589995752303775532129272145719048159210819883304142839577071400948046777421605730413773943702464647341343403462429639389752590991498441945346806441823499444860452428297647804690942946868654054621653157021721221024372345966457633342959445047696612733817621141905613241865854624497221489062990855064944604609438806659009572378681580638105749158568838450903602480752671207981549365148277335687936506085521649513351750255670744175411062998555303428882138932626318088502060827684243078240643628611949600583076569983855459335201278089354019739719827222350281422700122451003751133179962163868662321171439762893300739033166257122496556958481373502708626774434692411673576947398992529554159980514391496267873476069039708809001933098089480878756136877229153924304951278495179077058637377717345518310569775734698060224807920631365045519683069477716900308273967569165766555230088552475195408038711401665067161185481892409189607821804671607342412253216843513482447334444574938252743479461734007262549957085782828662217440203055615645718199411974954454255939029618606638521559050451087481412097251440421222885745124022852641490670957199629895336480364401939946751839721254544543723736820238692961431009857606805165981916085648863004870886465321110127817055384972750028057449295266106224677570120207864270021533997275410035590002952135429044445201705302202844550642864857549924307829874931469550046910711682748919795459713924874148940071190148725207966315264241165847574870405843902914485130304502119469426185509813762638949393547065236136679358191557454704493723902781392572721370251630570630690628158907998761562317492260534782676400485096620268460260620067049697886137782036850135151753158952291579567313474353706033711503312387681229017623804678491951024017245371141240457650494173083838969975183602266590473989043777669962908393399369987093607110356328787224691376730167170057212471775056068783607268955198427683421058426367349639730757724681747446179374822601856981970483153520459503768023459303394129477425094989684920636262727978784949798175865481808158623157187375727744780185228471542244038289986276738169127831190053220146597319298748196588717141417705790408740682725893589366627811685066280635007973482378603838415277649004184121978981973653894785027240737426798620963753926464467869474956695863382672781363889644623019222365091409509024704301225740471962500511919291051622521520443217743851435666931532462359263305320018380494453317997431829980977315873970049408526261736906543972048563983933626220302773583933667231911010187862518170499669283827307386439211349933168942949372322597239861472931970775440185571063622651435419499017421272689902194926567354280274785811758259712111738427135564080656908996855560684132995603160044740826643915167381037584422852147010758145761487580594022659580885707325640608655053216386589516866257984771642477315392825004661426353396743827789253624402145226515382382030699614786185351442774243592413162128348307518829731198094809333970725491378220660994997922713604635640175219080401084602502426032759798429595153824901231778474286982679167161386822650506754888973126139985985330153612458888290294231526470196571407072924692424464888677096907508272656000830157167704104994321871407648608218655363344275164110139271205015294007148406978455635985642375532930266265093613680943133566604685137957874212586123439437640589163163298200371151282568815807954973502334788356938830872590310777571284113088307030559612289922153540699770718257699264235700542687484323625920134226403800651416276453510765420220760018501021983759561691736602867374499794560148921898416607965204450809516774458639226082827017795973043154011461162875876255647454960047442661606009874223241425980033099403862574718672095541489541920567913476421067203499659907216708148379853506575817833163623444134849041153949267306696623692572343926868611815462948461181081452331800656546291505736582552315423799323215444353153756728735031798272401791654541692575543893456420376547695056281292375724337618616681066271285670496408680755145169472730241828365943136038593338699279978677798127912760665142237693562703036329233362313262405306055300361226187572165848957832343465592634442580466412066573641625907160068612984156192146969902099260866403041664228894869395856080885840655162862791349050724129334677350570088753956815264991399183513196781359174850904591762536449517406515320954273478513212128125315818939032221809484936064382662668925353991969150955204031255659496943927291014131515963480187276129242801205504244746479466468567665413436642306423948467569691850512994433295181457328643637283853025366251617657898802818978885247807679726729880569507214451998529391963636076080483270850787264649781010972319284823285723932245761137131975641312139754156239888294085167209977972610643166107542663086312557781746104006087446441272876426196167379196613066256865759199950682443700602411337258897488064410192757240963935339017854530854145763536360312411949734609556722398850244104495216000592886153429618522458390999977856867928129770420430128610826446904797711907830372217871120847867120476132319097725152685698539494013815178268448343181405677379698223713561184556021830349205004194249570188468952003416079777009161619625275491944421783247316610352965606204689719155906179910019464991861356130733361117621896644425978665485888023191284471130557563958722720832879332045163763670636513578033723723376342336220204819710030432916527684446652094733033711277891059399460808082712548464593089269971467244042973978124240747611721810969051940573925096191967445714792928736082346720165890747043440191256138940520085108240009130945471710611126611500122403759413841963315242985761896894571223596169078634506072210557586872343018991385553495911516790959026536253391044026589476832622824377558719256642193074021997087635531819204390068701010751026649413341519705364596310375243086323373751544774976002369387361749721272368127914466889337661239702823384560705527902971291515746959750749928875268859749454547637155324904690929334795481371623353731495717662213302338316233521147205566759686462388756478266106092322966121442700428316512260968255682281004668052670668513940070130562746526219331122511246050629042574561112974394647531673991074849801954759355359520659179321696288785460892730842963177186510710350431055914045188366684951866511070841522748290945734118805722362571147982667827563131091547196520997539538486322224203772694081353917462603868871118763667819293648985714303530866457774015334995670491243486566188993870409086749826803296546343346614187429408569748001933542463170601925360641590150891397794069911278370758277173852581738673018730977835560483324229511876596001636956458110546992282836004703805243496960602820099404646847079783989826607914808123800650025583411532025148114010281581873614803603085535094946213960474007897830211688539790032232941804513321757787240515767423215931877343542605249646809873051056697273713970792314405143105643740102800588276356461252419382536071651347866051829901605029691951053431464687447591054441647474547656006950211010588978239592291576209725546793063538559999072879924658915468199607762081188436742252540056783311068469658901600257057008112918678385123667947099769930184058702441104359703693342837185262058608820220834464005891427369039350103080011628801161587022000606490044017225781418211727683657997315386073209780811162872252990653995210319149961672525694812697822166735918369133158263687674026686158241778202331524527475582015163595805477679089769070421245781823008934372007074453984721696395346860878932909712354379556392754860721746538561256359287202847065772760518414885242638796509481413987194813276712205966932609351286790327820333379122765585907193728093724247892576356164583690561445959799749331675201344383810257806162368294292296904267609956129785150668279350336670284249420780798306722827000093764793496881461585435229993837602912644104674237244663714531992298744327822005332254181996390173131200177135092357859620912632236265541637772602319924296187819406639342232623104345036049444344499513730780057297855867956509980860169333000450172061580785224987730922291629701877825632965369441000288090273734510580968402814017526036861344476382171374326219233092173994575162120963767596587061996735702867045602510513097276990071956447774143540202018532604205771025635730085034127106019472526515770053766418014738516866083958015673770486227808164326262839105569760233630984982157313066642911189433576623571653432865481284432664045810674977378785639778580727911253709507691759285349865580949482410982586116035017641056569477048313904858571501939032545375668376597014679943733717531789561666755330415068746315275281918863411786970694337495673740006967064966026201569086830386091744009184367124726457873878680004614931534495788191420732279634417832992762388085437066195481903194566985891508700912055744727446488626355995089692221275747923406068033704266736944369400428524902050761633967278571800659215984517930110224219614328418416569114959703745692319730947364769768366191084336682181979925823482838895510378357702752628681838203477999153698491353361389015020629807720371789154801432371070398122196433101397563815684148405578800502076701509939390776186321007853154361406215194795693067308474618609107554566256283992310816027123230897681148693762456555106769206486321462394205155555666956335573153164615845682887128722880833952611630280173709732349475268619334968930127675268387807159458765101536689785150994588422789812950893001675435769930535749701807881038356336096570225417669900686646100896241439813141917124168381497659014280632946553273032577952092945675660462933923257531362917809488459199836857237502808967418733100758517943463819282194840921396126499045914654828208542977514134995267205202477112528591823158406836550928482882486624673615887838993729294246119878243583926722761275747126002350212347306094670869274614562440112408749333368537414358138508264273884559860179395206967093233367766399641557835290863974222965272629987837159182820822259606173119763568177744302877105068025145809856632631574551276378737400855461106219237440827568376912132674949264375492623853451563911542344615477934306110971159941161200426011171360120872385262391920873955319595085052854558809852294618156259356996172572388764888947540235450194580751450992291303208502205589430035597897604458622807305163985947676191539343728157935422854441221871959224182224539813421031737777221565653705570248870008254609118647054165939854235389574849493204776862950569441570901508789158749779747737885650498084804606392239692845154130964394470345459903984357518593745255934751577810805338601678956940965851035999873328461817972254419140154431845606816546169389289591953679235987286447472572735992343196182657368106960776632560692470637834242134762682064111968652528067907803481792125237504687608116237955922797807550315619943387991627568956750443647399677239546188200329865899443844184941900846675456244633941379829567491521975652838280862757998967210010079161326206075626737084145936184822514520752188353878207237683652119309658780403318137387480618982787405470572048979096759434506759568923538003449835494449879456769655910378936080259224129303127097698632736430972021157313092789493188583727526733221310987549490434634809763870019344501611418574545708786827640562793950107901018460024325742194187075432884075043784390664195184953954390844170679643623692891618641925703355229968732970637879395812833081879388097920057914492606423055697476291892194262770644149645159611178146505213763195381414852999003730514844590714963301259404178995344702631522894584387972057429575035687971122888296924850742977534913091735035903930078769467527696657373027120965522226275192801298304345043649025271923341333887180835688254562722532749393531927533243806490568827890931067419167649783396610273420851590007931955359488267481572089727746506573058157444382069276240954236184118648495387943494712928285380969845714206414573567696387534229112022892566102025331941077412472038324854549530239170316480367329217611318457818629875827437148428361275669889256369367539158327409134655194527506191523671871739617540095989752384355928360884139232497854705689489732635442158787677550860008290779753908768752645737985439434404219446146409284633327037210279984594583701874001497480620755187361031444761907137176153401683757082412917700301016773133824947447777595189945967123028432608239167814568914823587703537025883270238644631452905632070563721682058775925317953476653054822126913002702828870723996299467139806733038262632503772072627835978377479394115597517458538442376656066499530154461788117686866729648440040518474675719895028578622441507666568761301614881595152914342114925837597467615667516490459690023606669764209854439457441896775831803942712004806561959179107041809047462574928949517572553970548886496740542399811684310823494073290270933290232214722552027617730686414245173077820961661532054702426219795449180208292827713247390969112568273954192485587256064603988787887870004688457723911351050002845875879928095002955623945278854687544462996424713398366468804250511185996156482929908860390953140968054875794170072453031063823314928256261710504492265292498088932741772690463707397981805106773108737879883647413595391425418424648653173853510384420085475008293909390850982509859990412557639380272020750201245617720217609937439037669295574561988149696383124781016392333791633947577839872179773130712342306457271537892260566217490312463742611276818268903444300042988278976235559767369837981120585889343561672178706200858521533919859342977102184318009624059963990429417724832949864591255065015202974967635124876197060994691870306561693703216550931934995784565469963171090842004924443087636742855302150054100412870634613823350604816413695641093130440395133341673673893913401613370468521396530805948623014762438054330059974060819764395799324058546999391933079892250778117511173383888528973202893906926893664407741770399112066381841517136361047779372514063188745848139971871923148915163086678994734126412322729919759175909815536725384734546921389472113727966491395238465540717500896233136717768642032774790273463700897992546838154452365692195923329789428763869202320679925840223511729713168883510556703191673439087766806180159520260025716741586240888735919810527798377447430013702178750714491025422360662916913613192647457955033428746171012970646688373831960922782094529058450524498104614577975496393507920322327942714137556912646150365260209283286265022922386247116902794509437046505937311430135453292254279420236290195596585894916274243372605234727738026096451502519007232193863685585193045048688781721357747383763881260968759517112410733305535966210312487919590478525790326812437962129561064115454555420852245505668670978853562164889626588045806370384485247447866050935664227276718621478520607095439859711298975907439349354675930937044674830866396011209414639768261668977142093386752958861957597893111929760656493973552593964779552555609886034085607762432402607575610222319892191126331565799721849006585145048338748900839889905939650009506880166336106131504428111484651463404240558528327297868450106323321826911235694067830260476542449303419110578402192639749174518687763007247715822820243241222732156135319530688162726636063085702310818631375063039598473240181171629149483172576073304711682674146230406891413784777930511560335898912267039729850640870521625898187994077204643987770384899266641183119422411414184539803404635781335277825213639351598566413392500590429437435407729786057825766111205135639743829364986386318274401851686159565248202617251521893528108695822145434083338860665936837579674709741661609727995819262480504165722429144482566039318489449016422309851126894992887895770634210117061033081450782779120345342174866689692020068232321190857257141068251244596772945236595412174917917129398483443477732744782886626290562815394225256234614265660880134944910770858283954971632234008167801908073488712958964254388106710976705144736120036561686055094596666350491398722467597897850941314132593847668005247296545640258281583730644457797311379210505432017735215175268257073453974900810024130570518180143832307403613460704656236485047441213141982464885866336820975524574948392841962829058336500364103278648557470772063857624426852119693942554949049190552655697532050143623327020965929507138738168500090006309277834645204971331604251136252156289697632413918408312571147498803961142903472871284967476345896396268713745351431412194013804692084870865690982245223804941516304585598190171850937185839373324301426179585088083620754569110067272191401288864326141687367075477275695907945336936705044476841711880369808969211581320145583080975176736417076667553218797705932788371836928429977009296216610149171019975443942407418157055980763102205829087650033084021967628338859631557428039527834468389124335026656496614836617819433421624362509266533052743489410907011206131604263094469602987158309827177649930197068836728245954771863451006254976129492502226750606884934850908533378283776311463490697907846207256850066748395993884130534773959910500466912231082172528493219923416675142833866161334899846851421466803604527481054678235026664491586608622147314604781006300008112378443223975224101106781714747737919991094343881202073512414080885118923185797330185864805799880474484745876515160998656855600936545428162099195835853234912844101553503764785712896902193422179061648448732220518076006149245863970414172600255848004665069899135725922755453904817267784858699694734575824617340876707530071331250583378435937852154325544480959666033310653628021486180500100283253551727788269690953025897268485506271722862054551670721903667752224279362997614112404588705769839761732192502837018550989169323243574798244071271432290529365481369618558786545026038215030579399341948110941682947936373236683518174451385731838846989286766525210106290617892921479783869534676554420228498349314810535514672326953074248830063451158984125868646997868769821659460842400883319618774511715919479891628638912004321894928823389570540109450613938354164631107898233022161869737321978542751040386402515176843556196350228366193925138357387044701056893420151086617623861796504317096102116368171648007648814937561701567823522513413605460610544955434714745110759960808933956254316183238017717433592104172771172733743530700624317273172437575143093995846696246266394305315465885348751212369909996701426303918871387680626680285088354841165458172835523846324678234746951657494884536329468069947197447264974818495953098971809481982151471624817695538338979451408341126286467227912104076254344245114522114888995251710023934715853481897477361800507557178348713376203568288068861457858790270549691809564486846325877529826604396267871458856828336236724664264174275788313794694866478613267366501791646342996706912259983279182013093127131656369747434321214721817680693963337352688791103380814839768901533912791845486643385342322957702025337254090729353491198917620960497734330431925784321155923044814539041919183647510559332526204609043352066595503031192629921117588986602207707874125641995950122540847020022974915439931429151415046079396276280660068619543736580040046388695847628743933796682171269607245399981582737521630912148932068558866647037841168225474891394390377211528067251386771975053739582231053140748412815341487138242994752937690884838689270444075860910989954389859314213065429618158155583082005497437566317857985750636687254603610818444289268473859821286004822516348975714744924560443822972231138416731233470424038395399795671001801943621240406013436374392518011792574357859965565373212291997872698045747204384462349379810939042414272666417800733701117316445652600060834940549936108216911645366268701811306424540498241079199166508580719195026104903553858031584548331866023623797859218701583710477451765813836395039316714130606733282078937568401157969618065422616672825644161264551440001969873400699465667855362343366148948820626508764263987942453609503425046835215974246515572745995084551767328284534905508090389965141252379417198884590343792276393046986359448412722554961100477950972224563456440354628325508875419095882190040728033010222599124494577872640249114659527024837019030024675929668496084138522203320039416088909635955590198359193580020358146570920889466238714058204082024692709418455945346730865647698498051546211532223013700442163975606047099506008849945912259210367169116982420657885345925930961075016345487309665175818916719165500133768473271844313292925222100629008502640171985323053341808430371968813017364067991846732029629922104170553818989519554460936981037221207035435802593948175054442291136609999910648603658869953123459767626114926403601958177743361402881956284437979465009959300641172480304621028869410398568862018269965263291943047322276260853353235564222336344561200783757822089585378162682762229458276680070348158685687760336860660752591542698965266263919716911649929863283211435588935386178307207929442652881821115868127351669666651887898765573130512887272274985160072192235342957283007601017574382531828860167872948680066465311728625039875035296507393598452283059546981213439586203235713962351697802730223162315413939237501947876386911419374987972280791095319937768910155484803687329777921858156126647005232862909971396077877473814660170630727160403931464037557949047478637946702778769195739617099336711007949208046993702524884322098388376347079360104002424428646439395502136853320166634310907236349782632939458692696938663148170332192456376125188166426287328457226754273120717366977088186576588366510135768883418834009636662559207319357269443003320559680755695413838360701091363775353666483296501104230423421050706851326973261154029975439326477507497121216926313118912177407677606303464689675417085392963454898725058390569244325969286303492791716553729946133720672663800620147648926735676822859111998722932350471850055411272748761450609290534956215235016194272782225282208623114538765816914278486009370241329684692765801529136940920764008892087439930726785593968186666648651110347460690919947922500290089550410455194049026070498063723226544828457142719844448557469387589749036846975426694894201052650475059225411817038042835272791951123364350421073788623863473401303430210451766007572760645468412023487545081499392872374306366884368730778596566100246924024464622701586982865631323029257351102052385599041639575341135953199826875434720271823427944619806430175997151325039959739102081454043515945226937557064094453976481781772523299408891408431097605918398234120988255570505347618053108096852533418544522162995287873128345652700693987551742583486358157733391582373503471957230732304468596311959351984078160998320276684739256829397948013257727861443253554394614773215534059511888180026088364033886214961672903760548220286272982512594304250393940565052588983693011273930520109087236759037810880330429978168853712265546123388965782767996223204246109217467606446895449262066226657047967526496090526172145534129700697473423703484386225542336474569518544320154185894019772540343478166695835079370798350958252614445856050320778190918439779584297637170858905950236913176220680203682097531968879982175302137098256627986997773837310522306173298541188203981589948719028139774417871596035044298336489673348382125108744464475266806261557363019421359731964468914365393972278806494613703234968852427325862523409142461615583398340369588254976108800874639708528958932496730392929177187273558044441026338212652197210618076707829659404540314125100812253891595107739620305747447387273730661419759143125278446625285940289512304777755193064316903670972981721514148025240039966938766360418562352091396824259309573306093156440292470044952282619462217612302493438332245783789351529457160747414136727201189344957409473993197265797904498593416209188200134806286733960329656299029110982892224114079491720723734454513486623031950825076317596268334307968431233275781325846847259033843772559404998956507110582273232091343085263413678414612587396003996900263286155418757946625205771369128370956194217460458141601676179070400321064278632350824826285218940262960702383328137358148956711849620491289666137852615241385131745200090168058852053193626291637832346705029835328572673017596548420358373276477260201948700721068348302927045726391785102335664154732923872868377834807366416688439729641385109328924526125287150796900328346836448345630534246080997015439205884578969862233661030561149546100975071802748320205991324199534169261508958268242865351323745544624725596884245644602922783567758944141914953133208444318297472686616632605074754258586917847423392934031607855765348989308345612964874839123225083290940182657805749191003428748832455572832473281389704128365765363741323852826559640544496424934234377058651110901160112238380921011254022578514268659229105378647853335100290084809129637320234607505564538377234896691343345908235350459950509886269237482245644765262379887928410356723563949962271782339230792181998296887127820521527608934735256145140112673042814384527928901127091791694930692413386466578403787118521436809522616870037042866234348859003645485971170399975020883301055056916795612244920137360427353191011384547452927179383366044409729168496153306172091799635496337324224260618443208071575141490022629941762442972154607122965916907846695095760711303495862811984976921296746780068436040171688756151797685353379697457276547488562516579490161165610935585825509492982864762667665913707556606830534000321191634134958609945699088212030218815613845892354396214284440203832726766599303327747708289855860617390570354523724761281261794365949283807955898553830703054808720265940276644018047906623565663095518807658166594129456354818472238652108701786581258609750367672808104233332022773502995778713333730676706932799880159223796138661387001896154883698138529352097295455584685332547555780307323631873809886790225544400967191323503211290262206451333694585160103845137965359527838284199213524145439222652693196534835170234729945232291510666503076791600143326137579086651484022693649643484224788053732994615955691768925520443977628564145251243124589184135213956065345239190153763701688994652167035019211098094159782743830357680939437416162054131506594466639439760629181865995103485602893989133954767446831693811063882295563877845258057489789554484909453378471692712803431385248422993606582119349607926342051524888322260778317305297790385014323270197239294448710286273829291234798702666064839288950160715386333911283872100836486440679688942836218715158602884196226889328797654557657724352430090535924313896414836137897018611910668383964606380217269824569863132240949781202490482906290384259469868157161022846310336173108483335469122477307394295326509256654867982240483965473699149865438862889890499111126050820320616701896331112248576683389084268111792767964831744463189982813288288907961133657470647137076961934221461376346871577645075240265048362070463775097289865714088219255942981155585524193554719664848805446266323593065168154804134963654983257588209354771596395083740498646321648570823822230746398259224034128676401663256629793458800494051763932826955872112861236052917205906252006099982695727098373693517109897622749749059999572145928533652123751857957872336080674868925802502455483173624941521426486336943623693003322071675730783859419487895480120394083183826009482734676292302719452263038453165275221232702322573000673711305783873450069370727454887230285113737756569760586914537700821154738003601828742457371600336883995884064428864421003294737973637606946631857779660982853168911241296302236314248985771931179484916051263063897311830004339758962638559197388764679323117109631784356868689431207361374607304532542641953174208414342656840104235072762472725305853393871033096850603933913756329810929674330212114194010791100052133820294504545707083984977341741556683578189629923714034717830160444906474754132734658115094019344472777828748020178049940078883027210794551306643399955220815009270810113062885094399526790373548118837306131673953408210168794414173167500411650846282161560897657734946576525396384766862438455303461637544816790443670692784963154023160838501099495336528586510167042745345624908429720688323354603852150931658849886787062837520758018261122473797439617960012836767304115443651582140616864671133456884844869964681073580113116839188625731435281303306169068067223920613231059133249139087511480378301983803681158463824831929783369339298122521419824817901926777281229199527961119616955151695988774926208762702153822164068462460266633747657723071353665862692986908358232449738791561577771170556996479999098172936661006771202167706716604463153836842021247177357910087610813235716472474432464546527090996344286588868805655936881612495181610469934186884320113346661285451222133250921991479487776965075010034819308253535752886493044419686834045098203342531564720365808202655292762116670506841992796299046302080402622022284427876513198661569119041884303202697793081215549028449924329900866706611854627522886613788394926723713910696171892973508002928088165672601548382327647898679915106846896604302513337814059753668003666158516601501975393013835458472440343022919144853913847911772717723543797950720176124906101985571690784265813991534413110332194223165196144710432219333602954911031322561092017192031841218156157371240059301916904775155256218560688859980017559733083006845780993551985635778125713473738439656519497910555190223340335970377387149225718746259001933874853663465363364586342655488748851280004203712591013628659887867230009953199317584201468749454262472547844979502056169640191795861665047759133064450355257529437816976630442419082599676470188960048119627344977381508062099271703639151592008530562795382177211933311228669688414205697812082191218453010531636177161086008179209958467857451012311622987963642019001920505649599456103380683597102917459451655942827207628564538573935087445512137470345189455005227796057144029755358070404018361795805264443267474470412578751325695900802837080463589820289453417685931999633129192489126851177940886607090849641243142330143691954582060548418182155143147803657512448114907966672932928400936052940186922765477229207999242045884236321137715867384042281677850712670028628149619007498798287448995291730001471626415376309873634506832021376274249994766036126112877923340552100485145673562394904501344762067729922770541779515320887590207832726262338597660169372000426415488707766002230761712633204329969212863154060728318212886716898709840336112150428979564239766991373469246477225816446926653024174283743852675496984724132387472380148138663716186828438055266164406791025044077304000304700737722116369541132098086483449107794782525812118369950896828840566113583915971090572686469337304669443768010938766177800908073803835027577759488601098464969502645187634484015447777032815975226889121424846078671765644591119260213779520574827857586429461650874670128654160411676064741933640002927566825959965331550522328455544675960037519220759080022719205776528608879237166732507690785700944627432499059923969209260876574730613488861751695805486097912647328777372739437078053079651185172708954349552047462042706482399297557257576731569235437828845098819126995428596787741320709174261360956504509375295799648532246959091139013789388265163785954493444220891218697304141534868963940362947651054418330014721685021624649672332951785512650405942011723208987634199292341546487889089523133036466920354563149455488151782413134666199907595629446567654571747145642507326626486337733451005682102762298991943558288105856017073871931680993432142827247145863948985734947074197054659139968344775840201982953659955182260504146330719067343749506849439472805482389241074056125055342109331172461662917376672484009454636733215001273358087671934320480963255161793298257361804374646295173937508998786865046091052376843228010048286657338026897880625870232665251730472602121312828779678363645957574829484631754637288421791041048088427287287143435625815902106141374851103345431875912541410526592651699979562345089875812284651797105199798352747663127086833824105469118526391025054916973923051864849259118782315787015086361270254420037454045584518343747842489358353965799910108941601348115028758296435797320105672248691161213939675597180971569872198885243061759997883903949511996784657106782798040627188517055728336324690452715469109315420148119221736702703218889390028434382917485098070172472094047253983656220396801100554868904487607307411073541636585230177060483340121227752952240331483473854283391842442112545208632981091364902952398199664808918953707098187267371946785679875663735917977895908937534197924093894042933892816963943293057534861041483646625124457013330951653997061458399623409626098265155444868983791211857811385959954928466347794534373386612230021248529693416942631875404210149429730434313386611776327821436514403777252787729547549058191985755572672596804093534209955229739806289268654145407652472109476912128325659074265571975572287708414852274108838456471557268986152539409823924016521431560206722289051099077496590533980528578395790073295236056841079459579919350537410565778245896774208521206470412605936434300905372947076187819630264300822288093933454761795247092375096420919770266687469453315052129824975812045860527914180563576113805179149141702015867791410664265848122910965719385863544993035155533682805784220797605207838645930811523487263813387928250040172224342094624278554693531886108515689279926904152832014859198647642847863302378598241920493936637992475463890652356140279627091083626392094807634954523739665580091276151706921031429703770543771175848783382392659275778533839378187102504677970684853413678173509994193540373082289747230684348865110020866116550036261913907640992126765668955068600865079229127613930363500669022820027812421514159869784035488435294383515131473089743693084728322721782351062393112645365439607136951191569629193633676382492893943554936499694725683485586922232725186785248268911277273612263599509272267732569770720973747366309310831699526358978218383628563230585497073412972101136518169594763523925253741992423692185237751381413619652151169728207963404441182860898179444282003098211068474658965451583586978296264598338536417298619782782857033714327011014030376720923472235637978300065517011781199268039687965167004413814626037348606838004227401059878614270046812715387308454584349854717328312400474541494800180026116461037672326451383896173827824996899138304380456229226311297254463158134516171551063657671881217708857341374892307160194001501476740394174567649259906894163660548426825435342368599174205964041401819518120659465122448021243976004884639450414884997635116787278774496542783426216783546881035395309743376053815667007946891249066011228915363527226218792766976442508421620567229853175403513526023192168153735710406555273746945610115917135010334581405214611970727847557150409313242715232977165308441372402923930728809414159560387649469610557718422150145479450825909424384391826848179860949216371141022405055324239745839756569746422712125787890011422101724847088620360178060703274559032272950106891632350650410261765887548359381601465580269007948640291519853512894393421711027159694456271600455326676268929686914678920325010561078855922713682194635217014547721477288915449445738189152048067017749843540731188102037841514358551835155630877222852262054247794424235895977118065738567286476131656103865427090285382483238386355083426470451367940534870067390547084899305886462421241615535496392577103619619247530786526992515325038122299985673403097809370353293771529366465967452052920384688711389325646483968061219844309315259370028175196351065898478187776307010536300621811287831448777130668919701962636637716299372037487761324909347064134441444357156730574801106312722546841082459195091412122688543984497865069129270380872136547219252694934236682343685739246064263346840971083995247830010263619205169449007415582249051474029184980931338232749847209687297217702426478486961068893994306974902480835169210670222224561308276383496506466022650866237039519038016162641419529111992596426229881202640734706198341038348841606581629487553362152853121358350414852982326935856781845092460892850269354710448948084998891677359372174481514599351303391128082410961494962444322956503445704868680816041937749806010131535448032909771696881052118386885378414781182927196345764545430958606031514936032675433666286658596059468148276258773600340813056191480142834927497587968276187101284451059951670169052117333905918612209391734727886810724219646029578885232837410200065037965820208638015338792475273861183734613118341604309488461799097448366479542612921474736423367015201873656272329722341356195899770947409585446411085288233830814908958795285157065149665896983995782101810608571331215062625722365049268177392166278483954654068992783670840962595530359827706229081676729492110505496521982497319794808764828216615881356927922393509387760522599266226339941277874492760646063311350257580028015086791302323362531082503139612385813893838387454067268520502306234990416742125287575956690245540330957007651728822276672586572151700744464012189947494765844369953038458298319668916097712732774678228826861524762652477305513325989708458787597979018805180760195596798324300020843725228410010456009245662548147511440206358715577151684739233416948455572076479228067606772737781973408580823261436195906030126251794340474545376063457050357838280115534809823598493353682025260447165943721889834324672692136419796647141373360356953841552160014506397179658909140086010412859460534652284574199836118515835208594134226798606496246349860378423212555885815173538096039789575454509502933178908476480164461432041495197064392248706671379472339402504609987208257807865923551538741487817295633330302799924566115482896666852538391431437219771778450841808848916945860248067965087567384467474509159382419945698464066684020234081246774569015504611806653680615207845429125808685204347013526142941636914056432075256309926419703971051210586116112182445149920338915771973594448553382980634910730155335563442436638728281454226409101111713103394166497030004853011682801641015697662508687562104319041382540315156191716476688912948664756249735273561166620795070483653765383973711684707853352976890469889704617008152614022233544295841632534133958680058691677654895073678278101587179511412112127143239694930857225254819866694913318244085522518264746425197427378237322921764718649440048451932545983870497573047702736657598746785655249799374473060520509055144868112028452883395530947723659749410268122163065886649951203289890672625831233557293019676111222197840422018408164904044482187847829704389744320706455089068465612850413437531547033702008490639741743302799648000287174206239329932271952635639755120221462699716723757902765178339242234205819575861176188820374891363254457883033649383677494470730911670492466718056496142824061967625923699798498880023938848867708434790276482853703331156905486695707093931514109719014890781813613500883145992909144369558095232782414182121709261901771853274083132209553208121097523461228119196902347863539633282940523739545648127291902250349147693756058064608155175643736413880834548254263560721778255419402810413753995629503863139498756470805598697481342149946061559561185713388519588506962519514794268473118406702263103567448983738473582710387841717258553657026997686863810485834683129421457632018713473790514579369775916270730048343157115679253644389900836393297330408180759539157311972323036892082023243540802028063150088186219225957089426220283446135505795253111014528453392409634959969998808564049423813870054040562579464019078312299308962633175381045760944826607016471776088696841536261671650762304593426854452294356985294976296011579364107321636706286414156719665299961635508217651866639856398553716596369329714371281333300631269711387066622296645782718749584214130006076748450676549568921132030517126445676357232312355903659501295858497022993234711089288312844178772959999851819294155056209508424875787845037425290427461514612621538670160129634132677053705788127808300594809607810723629676530435292462714851441808644346205346157563438261916003009945018053220998327081150334012078600964882774331351468926633357145318352903826631418694598673327588947363272449541829664916504075652932474671889294147973479703807760418399378909303472336841190162627593621515269161642045900029999131492408679205709417384128802695626897535772727931378279481253199184826970236264476156739059554856351634104186131832250104042623652608122098845142498968551000563898739432828300811000605320469663996061271757475619177246615713621972395006638290283067195327422811942083651926184149949716149148333029836948826366090879312009907147665467342422177421563285596331931228592938920021903485253437379323496906573587646932288782799071038176271005583075640825773210657437070644848775231486926605763972548019477721194742190727168708735372506261114451800615137914654920207347797361891969231960406006917938797617400942026790923948513839811493340679390238870098934327058657045854890529612302480070946614777219308741944830750576929623712443696619667751683292906723874584051987504274722664657671018786008696053207778193021608998814279146892262861571587394134246591779117406537474489284414038930725919993683518485679524618409840143831410988266471616807921208868889445249877736631684058696015478384480069502062237414394743119225938425262239457923593971820410574640632318027087573225782255664956591381065228852356177537680825183524282592590147679056869834028374937536125487538834622188275387737807894292457388212008437391132020010284404520842445322660409275409679576603131610059797563387987782966834091612092884527028276173343351714575598930652600821729992264313714864435613215587908222032783641762594515964802239059234748382729011314840323191702364802545098261536226674987422404630999061751437518870942390452034019467153407160273416540477054590938367158984852860061152948827962172635882930645835165583680389743459726126226251695263963658039208161697377275766058026380095304845444355604294204579370748313104052437811265416075608813907673877539455230258087728525010594135733132956535456542929753118883897873802425745683590976381422896034213272673271776442329424375841813583190418714300162350502854509730521392390720059336001811956600109056707423498733802741129064512143319527990943866055520248293330189202736931271308521456272795132030210692008168750778857071194796411679738197854388930173902067890659308027759904832093801634629120526830130999298917122042510284452665552215393864919738623051524744498008975159454677168226806876748048128563028209933454610710796457109707409544952027250396697495523111928718440543224921249783912438834568227546871323475987657597174600482130267377976202752611846724415904972150739891499714455155964935399636479251263773916024210932831135489136902880369944353646975188928019682653592095322309438130815710968366128311803401967817307003866651210679424200979963873299419672678225322088497054995501836314181378867889445890051280428175572135232345276010371644455610017399618857474532628239363316720551923308638049005250127835295787741178166672027357147156150533201904328923995849053752639890007939925210364642108521172682664653576462255716400638717994591570429263867114229273147840711038660710770198315497973377362923802805109114465516424020161924359941989641634122942183829348111175733076933959795247070218502744453080235671773523081003035095915056671366708414255650699359646826527612516654461736550106833326256350014744205263229724931603642850213100910668345444367149210828985920778605177020067510432539776361877465611796090536167069582799266428251808679133046837029368639284984071331582494890030844238808315146554065836127676577631525439900185639791498370854053269947787890644676358042925415159507958489236500337019638666389306521440824433720462041404359289742779584378190920277427577101177029065741954254603922140579159462628589970935763059385579207231257471053048729049512535048480868647115199632222030701972295119202879465821365860152960876681828967748379216728328081289880378395135744918277323834840365175536635713403281740366303087748900386946855671162222986045902966987353311451440759267119378018492587921178824266368767111422806963266707035684778095268027749675143410582342382136862128458013222780841108028262048960701787791147013027275071056362629727176216664537954766643434179217356239240899689618030080983268857996100613667389797630109301287750079130161950022779577722134086995827214574294849072069111296138312774936817022901418521267760270508548386786017570798516716137712380391820290606893602194947437002849731464923534082287698551932452057646066721946261905735026082866414222201515704739868168601152281034494895672125377383334682010228754738563098531048936731131681293813124063274718824135779367324214713184474195193428254155953769046804578640633808988233370622257439614533432127257904632672146274923303283893174756100969502494523235413445620175874905124968995108011816383063313624476353274976127796807297809379395082348548652514477867783006608432963034564152635603297001690834739041812063172655025671330185155775397377674396656154510295162215493225963557425881623215779068984008661442689187290952251439074575409807658058509764161606628812117094650163282924491053735675303880841977303637346796095979572770298408710673914409984890605921070988096314924542266339396847092421131501232268278740180850750729262241641327493263264047603684806848641433246121725883115749050395806361283995558988114577099083207007680859166869414330791486088343614249966409093832678180053965535217628599184740693153218551227854604180368858161521854584342965833703083940193921831253972476478820307569602364897620656655115298320916111676049031928848386186286890002475068452016578428429160140270299630920360305563592492409478742395549103937346974662280640764714845645528566831391126339878362941082478362221637834500553310610013773782317773941922124207265420569457292580037881969283923012264338767228596544662757669498931446576797044284020764686202365056269325921069686261985877976798741076451266771041558582419720392248032455270478154479729389153954428153432467729854269584697199274195864915006014324417504105420327409854654809942686479553265354410510579771937515110306619419548453445294743802999883429885730620358584307986498304288313760230581718296272926019506428228671396052087393969484759744246996831021188274304838110526284206682287836906945972361658773271856850239351465746652328670973433633179415654991935359923038742561491485396649252510957329835955362251235190794759829724566400184792099258881745242469533640608143028014710174075359579781894316139505238945183484071950594722428468717915420393026969540173767524884458926930798776300161695272058035455474031331358758174437485931542443869653091055321336988597485475258245194400743853138194948409535976688347398104011873753740705544103319192119142474483762004801247080993274559427956459406441739977564518394386468206512415985609975911441695046800033284732872144801414589919523920001249689351015633310316979633737132109562290606983270163557638998747085162709622583136644674360973199981495261309960803910354954881104149477982609530624178340287516097742366936823175890121811724783594841761966349050399336067999110432258070316883821228411612076229655638437321149769234562221021428435065263565554312766432192679531343129368866656396918699339087294449652330534969666903781784844828246526490727810665774389416959340379775624550926410399211546618411990348774365828251114837009457964500956450863395081386804005160828800991105941269707480715348179430721583840100622665435823482993848273278171401086585003609914770719418018742829091810464239179161996756526079441901352095808498412812135776570214049793230456724554642485546025355939339390406683673075842528015393510126524323777129199045840715468903318501685147605197398409673690575153848637053041731980740555896623372164363233056526965031067955989287628568677999600816197496073946711973228992473444985162939061551904342959224998259071055217182518172850346208988504702119678084667358452481931101593941390779842215192631032522770266955302190374889745151921944066397144339068864121226229601374256366996136049941781116635282329537177167949469065462878376950065769213105017524951871487291276037723750681505428699702277440037626856221353146390838572469049017372486539824033538142693663505051714398015553025799337560243312025776005346083811987650564019879297923809385222810492963073565562745349485435633496870501389650717059305786243117550214318572881440738016834761573888248868112031467405455653130356582545276607598204239735368974782514749712637960575126839005446320238615079319496067666015754938099808054376088035948744056638984545330459799715161907811651283987345307116229690376039736552822398818702287415708822442761139194774838267587302004610872346755578996705184398170244253386271416986315348855724560772476542238511204077183555198724690062477176417894653321286779905802572355570375882462560089615963988806094763836614816839005356992115875035455111161081161563561728635918799263464665727054020977982667318968257993642028849046279211066070218975496591990634765242472754380247909511965779612437927587217624453236521483022052839904735273816812082379801199149517829513182544854647568080308221528454349197332736929828885683431838257287049706288823456585850172550594592115603364685847581712082038779533970303902252539570441599380385931288934182017886609267914992147333250053216106410927925162750491833265689572611391956318905842735434229221677900353505219546774695930626972473285281823041633062405785787052952944876564853796235561241280318773633433320627544824100769620179755145134392758632428903479314816494842895437225031213010340859229056349582750316846608442692471030794867042242167416924628609824787789809041613025381276995494727250455703992207564674809557110063047876845162221469048112113260401943322915012988220657737653252409882559736226520203181026865889347923738659424716865270463360228881890745024314246145622673886480769667255181167090300232637277737615893395916391864500237170750628471480106451014732463118864886621366624282323668333515584278118133700476883956169388386287661629756766992139557875377132824877813682375848256582067595298208514655709570381355593014770264584649399619711074042527496007898043914609953816284919395362840440421824488987324708092069411065832033907225245623358763962003928487631341607943256898588547972194731115494021971265507405544318504070341376897011460701028062970474705749519152033772607066975121436626511714025228394513067484769855045581240044896743185113381664961869671816325942038459690951209638084443359045048929425756770030164111081453663871799077480546606645930242772451735407069897487268269793899514507283813496010695099815424171487379173083712917569272244598745630235207469329001029249257992918514599184747300434685102373929919335802133772233378191219722767551966765257627581750049159132031420970476185260326291306182216824373237862501753037403227110657393890694154023029857488101920008604780249050290701491177908167081499919519750385469570885288489774368946390003602392926496156917103422464281047964943003705684051639766154243012239242338521997477372147134133205574655410167443585547451031793372075431604301895812369616785105487989964542283866757519398398537452044276170079345346665469233254177584075916786635427480313787700141440339591557681673627081603937810335150616619007594451446513911733170195591155662300261033856491627683678922812628412111448200536286306864374498692467961764828168721780600930967285043139165664636781888928339708661759060744033948938496207801917476616911206055075092179535561842267339023739539460949216734788828534175343418991706015268090288240121396214280061141371090775142442158596610165100095648808003778763358115319985550905014461397157751309817706944758609159754602587050961030625640390110224356098655097234716955205723458224756176927757222659091088791170997621213592166701891832585535425057982545466984293566741376800838329216511885074970685939190999095326948459898032990431442864124225857597756777225768645356223235877787800889471854090880379928095089037932917653397707206168182660513570824214505297090732208842336041369875431532896103192233435333122211390362189824482230370800005211472883344145564366701094230320987068018145416882882286496587952301529102175861008366052720259707325918929846271186294869836226591198620295011245418827084481957464224546186639747028607042316567218175633228147246615591740922926566265045560280492394410136330655550643897804126003923160500876435923087348495725939586392328214558791158013047333102897265971785411403904720801856422706972879531985056624206005219418278105701152213368916805984440160867612668800867339125197462847952844555226423876572201402356019863596888831401666640311338095104759311305073690037193718520020379561875492062568280272228636051446401282338435171543957204275815437907696659469529996484358749525652444372502594322539519376652465464960549951929136690765799604903937986510423013384796930006721165032168751474021874899042043212437975883288745385716751170901536895603598835750054406614084597192259268691219502339685127328182632402308425341595613425260464902961569595240168494646809393804612035534754928868217108409435338929615800293080535759540497440295227932254071650866966357849673799321988943972941219340302285060609884778175907966794846657813524725304217417726367559973349203416422132760003515181051627552103524372831887219157392885793505995775689990603357638830251638981021261438369601041886982329775928070804740382546225554715768200154963499913820727386670606209549109715117934130334931040649306683632301224615233450800551265821872536022782350435453914206949464186575870191199909770694134730322729044158407383185773384911957139020610173953863470584413036620914509954399814257908185868323044483359027832859704002061046073155705259312948428884258547460383238502921956367275615312702522535926853167897510433480259586842384185484635588119805666087394830275595326703981103793289379971096121038885924154966032333501300971716855850873310962856548500788787150096391479822094247775170962668844926593406985698903872661941998223042776286817723788493233442337413535124125337616406468852733567654445698551769547303224657121268085474682751027266832081610361920279774201346227339194549045830748636636455528370140187907940254350368074179131763214834840585430495152359942797998025187022885722959824936382273815209001357900640582167994634803235116732671210435347637724698161578642177057963323349705406371470819324181410206583416540343431037505966556291400926357742581678445270423081583411630020453610557238290879316811297536815940650184515167899346907525175385861833297804971177143378583043097005165268661467874164617422108993356340762959820952438253671681388662360407053096300076949847640519793099279639945665177551545481619597662522524311487901873533453148291873966977230465754530965317618880763038179898287805239547054286376070595486022445363092545415758076992895345068770182113137940547066404346387883901752380910232252018348042918003705281281345258177247680157855405172439326047651341461234344386244827885101984016308407343006214365940879043773061610533871462597567650805437086759439652809007363320831398042020385519348969598294139924485354010621496866376479851815627905881306818425035170420713433352896560321508928152301269099843806401447435269674907322921931087261595798369508101027125815585174105625097281051076693940416444884918475689458910594173902862002416188763734926504651132184802931489801047993684362636274855361486877577953454250354250517106504858435761993311010372821139116889342095076648334955617444290870850104370721621145661409747512926509078630937167237051209926316174184208028077907338922348129696454425930141678822656080883376662658667618868509181954966272185596165527344194597456464922994837107553211574133273429021805204668736410034698651358306230768786547208075226719461595255417448319905548664846499370595398861660023721989729716952648894805187920150646975520415408244125015916620945447849376325722051248902033848400511034619577564470271336613923544608773183081438515553379752118266065584955213196898472862605827314511213483007013679548858228027002530108685188981887237108162658574736112960374296712874818686336775729292031671804169945698619620104866300590396289558800521664449525775159677436845113706320431369273025910871363543077539259871290503805750012176926159919063026101193771827791779533041048899724246560164517622334564996762495650401206807598270340522797943787541962394578160718505024876820649581420238051318661432539442051518181086717081705996370580257025278347843845776390824785102531413753685278162350949116682902787353341556086128324386244848612552536613361617691923842992347103273534980124582582169684521918882809520202618749290328910665169262315776534951980482456832666154161772737958705442321366550314168720480934220944896316249237433227695937868957416371575201331670335091920486156784711229601070568154269872047199830732427013586043316582218690020451742425197020455603147741942570922062180619035865892627227025820356863390513957642111454169542148605773453468640267555387296327541242058713040636278550747625517208965783053590177107859777504532367257272355495480136072338425083320348901275149653706609132549813403786599754338698042118032030963174735924636599032647291921896628530935272970529364543369841381167663945568199058874609982663605106869144069559074644936727970854906144994802560966632443444412668555012388564690564280118648819352361951697348806717321483602704980395855299873168165941788082314912710134668145820074959880269046133749462026512186449687874521332860615712994644996459234411085570517476101025560057204696155003787296966003752694612533765261671765108202234363665924910673130111025528514615307739539924419957674163807054023623378158551551992320712024241269529776667782864881156434585010458824119668387428351961199020681085465224237358873507793446918505350986773882275867306445475460786908875915806610472481563457496901044883626747327549869860596138210937131662219326552659551503834037340659509195814764875284133968952517072243007952532306809090518730522480226945433942722563424093064400602770070752173928544955672623527611819282388895162034520653737609726381703921169573908110296694224676256662291414031427307658489536560457222960590014006135429563429257774255249346174984476417714343247658988431000414686688584874452420843092788758298803425464481710817148235662821185620860450985868156949209676165000104708890473963223347181017859527340420571936199409275188697822985254350376617913233735044700233734205058138881012672503475317872821573830980258116412637187407469638191460256543294832871001370521923856572927221060599451277513497746974279870621901279289110874766103230759742745952135317110948952417679846375572656437472522218191660378557552466596839351657470504845397364901507888204090190248303976259686775446024581748671964064637161554947953492375509025331531661975463668208455541436899822300654966351556402051921397910837369614055199052497755870535814420029137795042158047983736078798143728432075294350865824376195951888998701263323956299421706392772133418363283817130469614263413420550537342297755353876591192312221658383552242072890134095306424393632207457480867459309487704340878708389509472276214813741984219976868927868694342174650102616133068073670175437457423292949095153725767739589524467514066586910748179410378283658115149663247752538388953643896830076782461322119106423795820244042531145282661914610913425578773330885339183091264770746954253257002535969367295487487476138330283622131091491576951943092378936540181077642698167071001981784509889765977347831893450488921146915526426601389258179708394711678504695329235253861016849632811189772856483003382753967825925929129305724792050595222546094019132458178186503814920948189461629172950274902105204840242327714067386919755963230128107121466500974196128284481757437141492052665743493319419259985779504932535635975874480184109521965862316097156177985352835051257030113875644520081410203322869905009212585954783539041973976388433070352561324979635439187898017064949781052211053969383085499395012252354734666969244694588226074616934034167819708229415860292315351103848018707830454048618845564191631598043739734072864224450841392629443841192162166943486151423047656457520704374012298266775660160329043662776354424152841609925592805280519619246062439718420163466142171215002273138986676022996860771694148692253499953625521965916596629430255749194878246640503656276957563823396194584116485747363021974598671019562448000517402733918231907413378794832134472324558343435813266010619661009256314029682020936040187089630107940245366472220434302223816119082013138099262992940706672263180221510493825679178240982191657043128871104393256442180822559596901189215502049519880997772432330054416458756984052314009251114364319524602226931133720418705953033901487701019436346267066817815479364400326962924358780000938365096844554284783846198896282975737349620605023763579175442994784177480458320998933700357791223291747302496179657781350228418714343498812960287178160089405947112997514941583981914246771837611516400789261599768811868288943947693059847126851334158281622953050426360213880775514450138080560488185311896518917247032764062625800843876147051313727195833139104309577006285637157066247869886624198709108656933040005929460606729808813701338091812461876344968571266653886153423500740367300097329104744542401211262035694399640126071905088621379872192902154477435455126109220389893469188011791008744990021153209626812550719078773336703530924466947695194417506288898787915922478879430943889351639236144258796543496724885738883257147565048938181493587891374647722345485698785787346215625407258335636297649463107769216002633485697614118873247905611208128467199843728631298479992581524441969039543295422075858217692099252693671097796750320658935602711204399969519719775174693766754031672512832901557085407502291326359781756794325310296638917739451638308331989565270751969520177388878818584506292391592669675861214306607835551901298246617977010834663963332740600462546157752651479192288645526822434718695377797748851031478225793183247846709472724682039678201378049133945719679069579520861524286422894795765994247281201469662074983171633885021688694570149477870120840103297658762417376222319596377059844234193646589985647498475549262309418884348637487271601703964464131656676615675480195697400692413484831327869827029497267192707153490731363158407542105384393286239011987850232847246721445134947837792206557765259236802319193722569458976913006512052580234189842659914764311108966600367686733950929916955027995593509238895568631970988368131360433608343675119135534619166886392883206303367666813013281039652558322055730938424138987401811402600049632130684389011015966557900811882968021446144035984468415976669060771445848096165389745862230707830250008095680551910002757518569860033032534819405829139833986669843632549033640593159950051882249775856612488344219249886434883573700673435025478279810568309141319645700618512011707441962004642418471215459916969292126525509513931587754811663458421352020550696176499581587759534178813124883309702620534630768104211846105303335068408993075227182363236545574557515644508298803569581695259094623850918038307363364159813377272838953077388984381324760333240639397026471630759981962744406467619915846438302617628570264367241777202478029292634177606525054880442811742667250076530692228273153966816913355312290014836491789519107952107612975282940543742170679311514269206580211624300032819303013783866264276515802194639140538061505341898677219375447004855460459367505002480942196121347904723632278653975434104301688434517651366326445663432089815157726806690336677926237375619112379950184563671757109571838172538772540486376036621598833037661041372036359335181906926672812411394971192458762474187462859155586882114081094886554721887724580649978044351470342797447424981494308745824681903956152186872627403421075774146749586392329945562787048620645942612006935912365210053411479498361019594017960913919238124661715406819834876673872739558839256780080925290872159818744501979520922780913335234598791450551988238454164192537820236656104918235113668708931630495618297346129979305591524873968029712663969858987345863443863857300666337114002058480744758918479106284690134686770709673023667807830434059048327969980819486880496710820066267514546243763744963521468419207543946694843208846741493118614476588407457147539703023534926253685474849636590720932134642168658964178255793265190191231323655457631743489345728893888597332609082159570726087914300639795372671203744893155785293710468945110547468790140045286338676016222879018294480203833800006748478355403584841364166076325268679606744312464813182436457322576233873363824110661753647238840194945818927601282727768111050498680647679085315662589048087837320603342290383930765822553316880811573044316839288800114566249917362014528225360320985354635483863102272900065586518811994305936685039758448823906629586459566741133896899945571591728625122870675855505079236596294049259244484112528173298184374391967831821059950308134264133139585803022556667495670075644339905478141804977350662033551158166559798858827926485378918757152798476097960118419768857036937218193001506572248444119718126170825312850958622074353123653662039368591332619206842276644947447690187148774362655349889878820399618346404245193010884880149412830221645667544436406293734342252448152977484156407289764628784806747677216300553650965577708945592047067468819140527425444428264665733127738519337570028050724225537240931738669562709882322226516315638593470507425418821810772129280131934663779650128539275985426458678234065795077749052794940511672662759506293254122602115285853254680241877733276860406553069761140779185208103535988046748640484446343273731273626822396782685851885528913714432570352114930871746073593828885151051741187473231789277236785048886649028970204429359078850939086763455119463124901416203301895451397523644192433717687759054973818848569694772340978052075542435264555978607638751065066397957560610378127638341939385353246105682079637198019799541941565963146668708179636064838346019758842054019588724068812696935731053020676668804821749769351478707962515403203805606168585997467363110142563216792676529675844226545823555236650440111167281561634492310752078949735051926595136891112654930199514255484936153649636916074187910423188800218951188047858446922058525912006053372566346558919778967587177370860354439513070504784800726508031358840701835853254547684587967264938347389215037071039245316531421393798984863611532718548693582832297254206217462862372424697950952849256371100674307771578654023280384336480596223940080351424000815198350976222329244943955647297451985337398404610433924510948092779373005255678680393636996942081892842526316874459054603948919781575651252988772950514703908612045218414343372093128769153576307188753764930539572378742377676212411545502661788616678398115426905098943051599099745624650727391293733856124343664341286016234309658595764025655415916521371912600293811746337089781849817819532589934052008360403859537743424296311385117786043640883638928158039893029747384407249799598055474569458999788148921117454540480211453208592457201805368636393980457450651804794112825820253036579853305600365326198415026292485993438887822435002575255599641237799765619334460043831983469155374311939393445269962911748083723603035728060232021660249356680488874784935425278103866313941362684187209364350662277422336342705068033972358462201756959219972804232614991447924594741356893100200187190443518432322215713630545870269730498484883596616853351559499826890802394183389404360910767046764989026085764272622500117596841099007807079815138948114234862911475002671113300393910700864886908842746908188840704686734169217277666809061126813708076615416777791791821567616057789432167878590021054025799642605647853919474005247824058084593293591219179417305383751733648729799685153816843960068914080863010808014280753212404138113329854925475220960614717201489375887922864967544969150280094199276890237893071203468002956352791753672686724831377388341735745899301453514570525282610220949301129267885625127345017275195368988319728909467199530919144766812992560390858664088411984871299987397766092677112517264466491092701237772201595233799596888129270034120163077486630416144267527833141146734201099816321124573621428765234167173124334738369756938917227353995382436162563877452528462330603347131026517349454234265062576655698598582575008070031675817800360727045374851198516403055824655171102719001065537827496174987513490576963889452788032607812827516745141244920190422657619696706839117449222897899775551440697237769859743595468377265585848107484567868288716553578165090648903049914235702898565506081774463544911364077097132904403227337459473861537769251769193543737271277286538948281377602829016216688189038897292478570724773901523835099170672349138287642064165776365903245011058214285753730696349502066826710784833098703815282078866419205726179937698528859168932034655103949145493561206880354451033291703836998186849397822355891221003656724946373034091147711900344794168678203009576893677433770649241931684929838938998920715003422239037358777902117081332174251764685203308862187665506145764854807665051655017976737962087609173716427024897535744151580233629055897949873937465023165075925136767357960541060621821677362995949230021798129921471998331928713206552377686515460638433802591378269700745090608670122597061669241379948597174839675388131048884064543581275917929773425347675989681125385149237853338113212605311073423929861900577440124348740834382383336285277382951448949642667138501169190311173421534519058062183027351017706733743038165762433695222953272846847046453259858072084831773536257775296039481439200240810313958703203033923145759570953434436953486729153094037053055130285610727154826837575068866241354416109173308184032418999039960994011952677055499763727168070458491701564133030938614992531952788621604829648362885737575333179224980675498860471856135559935391153732031203465573296501296418358786954124907409586839015126520971816351206445932724866570663709576067463134163018277919630338508914592905782710205345424023644793993416255451894563569644807488582242208326410720839174208752940837024936564485557784783101139221966768161281363492625867762604471349988023796708549290614209053479799977032515034774798154636102101114344991305682630542582575476160856514692024217373083307900165889280825457149980419212465390398021205899132259747637180331522037941539226495433974679923918875171158320189722034503281049246461286798877583948942459914003448824075114226972828950375916864593337334181919456264562876383133122988890979965899787245426239279150796368279326879239999122168990796982742323089075206320446877331099148694259781344672005786650254594216896582085986366084113869535278206189447624833079590602471546743973286441327478357068999761602230285039300479114729467213226359086825307286631935142425853576077170673857685924056128726717391433170192691267180903974280496778770502353218346945039320624329507239710526764532842443567117797446925430120765395987231318170988933419239409012179242299346259251821922762234646423312599281513174378591039044933777825750688820341882623831196260953505371522422733214347802289200216235036081234594433621608144777475338939504041822401465284024403055176752577452885410600073958765734111535967311538580427219966053069605389219892127029045424932111067112655304350274379233657028867033618118571582433029196114899764395347930212131926238801424050235748150410985052636664975526428137081076905829881800995976893168849014860321439725277061592246994468492008672116213878268614672938850980870607984001645073378693440048628891663080878174568080177334811254246264998384275883104162027871004937078367986270169661729175027479398451873972519605292415878456091373782662145400196145062868558196676349053010827311406932035265622684259459931679792477848985237688864805693159990689332641911702012986498448456175547234741338700422435255623343928390496535685992701961940428763199204386465016213874313187061409194482437316015674114967818127927364586941913750045536953466394755950670997058478868678591045658784026168744265056937425432355609660422929388656548523624061842689376338419817183234959303870653806404279545300969102163780178089801673488933865255496210652000842311855162826060834203273041190427449253639607502193771009223444643463073268040897702191456693055624419775097237136456316633657485822628490552011856756637173814499368700393980929683398340142111730730206664551993384003074434906022418213710659440332715609409501211795759755584677982141158544704991871446359073978717068393288091713688453519164219765219655896191390170852976206518838466558390507325458948109239266174814409984484723234658524335954656817528346407508192264485517671582628683766510495510121409451564511689324082218061759422285399320397479129632017913737031284646416863880362185951252699758966175694641838704781528772559477547929402778492744995173546141609154960150208169131997995312008750944508721139603853038339485753186909803835574633905115988344833451006261447998455311811959730473140426802656717001962790411316053761281345757560371723289421643677830181032825295983462270141098569248599865605588110961435986527123932959937906366939601144337730809132666600955544359730443389212894880844307669164732007336649569195133228317663129142292260902371545140272763854116406023154271744437663478708034218849428245256976880257061967839654562719020277585813237315100111313271546466330677442955610525504351546136792366414252607208225841732590629055907024723747703005031549121538314952999588865868723717365337488031785464668270880311284150745631472824610233406583131855134075699958142888658955208863209663657041675928725426240367789645881206988329650517272588292735882860232803536519571033525847944840128888088879005628333139854569057055389273595499127034580008311770250629860915296027017547404706193913909069690833743568726478029729602275187133726093719886491792233755730446140901005887049637926606401814629797461556426315150299350698043936829120046345732758834409933555480288119887646629430256196178850776778947692549387491968565374587956592868068528952864023106730209495311386072129044893535762558882009027979134972524414140725625632727666086441410695006667977909901951589614216893861917819400042184442382031883502393181115237734646479679958272305125475455078036191935324892423538788202927070644341083306491594255493662581057295129425310896385881757143553986561755570608458945558482212759071969003241852060224778342057458607892961236728014163971582960044142079384137018495463003574370478630009496662134489679931961512231458911803356002270481013436960020123062755777797037184866867134781756859797621531400242377079738016944377001733020003181783549409471936278038686694489620754187980725980300767526673400848385629484165020199718550254443782322851096185959313453503065537889950269374119236561189787704702863763349464083211462044144213234479688414918272709620749330445387527434084413312345650324979135487407119604873624070614885380495601165601661358234388004157106393225682136742747180094927843592238388715307971430658089002711748065645790586896142537068418488436779770948616523114052155110434184752788272622340248094953911272568136960748801327213610728407344492228585169095730457370501169353276763297016342122247409269020759093620394903565299296752671881996899429638904542538004559712462315969191085746819314450162828841521379460151928033374949585787848797256446261610825340109256614441515315858915811621893064576912746548479124294535847878613305496172398504675958690894830952908759049502997899004822547195913517044451607362717738697164119249127654103076374453608473391599596862600620193172455569322335787927719896333527696184685176904005461943874952573557924615662872695061546514405987926257151143656999615960384195868572645516889576642214671395686943614919072645340615684718182849293689654984889584637249969914832696036087974493825033810804802254928396810390301308380876511734561099917393636477731836374822718037851738136440763769419484329106794054353274391490869168538895876562116469740654715102944161450783374629492388754052622894302766789161093669233061801600751752235907517420265424687947828735800634963759225441766701907513469734896734903359073645168791788164428558042597545429788063887534656774583595290653911705584213027507659370845344555005420839365824424993292040845240298835166406450627222890989738639978689733130501388798737912881682834317171466471935496036323290001757397022172701604985666274668385423442577524126022564160259118130359765096807382321356705816509416149834806549802640436564075783240666318078977088739188799645319349542847759192448217612475886290273221244190287752149859495206854091806503656869219740689820325018321105471163661226982630185644805599396906407186747422256969091440004334162337588191686695876731113322271632290214105869327580939510991220921643258659489002934147172546853678164408280327352382299183512373081087371360349438873790394979085707190976478901731929810330608618474118825036523695747407252176303544390371003209245626828599094314167265409421467978753821027929782809901162712173824940824556997276335088279321454122125619500122245496802694003722007954206606814512565244728454201567096472526738533840045210968683879181226250335987926083922335013228608568091032556326259241798248418172312521200658299769952182303629946267344070596913605081306351014813726947589872483794090074591258477825897165482075477132510263795287027564504887699080444401153901867558150587841057324730306814828758447472407779745065233627753421001879012857360778853641517624387124587570754392413896135264160499905686475306445266609807539502253457004077407695639866903705006450079938599728402318139384817346238880162625662990167259080936190532488277454478424625948567917437838060494655537702780705594223019918261257605909727493586788521487525582454804060897876794166647965747802041587987635180701233389924569316499524292156434456177740238211157292639151718120848022180176248307244870916976811193646669008184407861154231834434462874636042774547562388562989439275223102092454976247544590274559326345323997057445430539237516926997023044136689267821816273651149725511842167534078894362874027532387773610807317755189891451412520993603003739072627233690304634054285369563898280594061440003987897792209351601824217055695351539099862915834275889819374762918211660185079015905674616259613390284387463237088047677972914388245347734925246474320961477180104022000640418016102232904598073589130082589502658691760881173636805169708637469110766460669131235927115913888056166678901343106908394507596517393642888142311463817431203769601843480674871117171246711723758532142633083178870436468119202546516134662513088623328529627144181276863472395712365396754925571752293448558399357634881932691067266253304379375734825199143276993214102458285400312602312449171986798416202177665060371663330914855651511500570245460968194381798046167028469898667930772545600787253240112621128252798364331512271780279096023808915520900547197294783509259707506330137120444297108085523382544743844961735943880648686616741408914024808899686544945823261257094651617749679085490077790349895729091586030589717209995838448561582415497231859285925546592690068539639282780752684371172981508116362308456441999428325732258752030358393037746033996665542964629116892601779358377882842704372094572500694915186008862564064991671655877965444785183906728222271621910270962260479223374613971902788265627119731380695406763852508373595553353803089254748052383429288763353671276902772659943580698688548294343797479193859392110657306054690021923926159154378919193203411178885836292253116288452424586586157567949090859859561942824671109392523859483354809927820571248743176931279999733214165319079508177329403811772539770977498240796801544672467043325785522517975048605140674036822931904588616867618214336544303684201239746747274213162914239928251649680925226191132492080155883868426274143572335237164035139048424637704109895970360978977054692525942474110796121302594508771008466667554894649374341317712714870287834635676755057705815768012934817592999452850327089880065238580035449215780623698845189763146926057601075046438955004207716976985714881204167505533739902627360404090536123649269560378845408200554759325623981978454932452000571654228476361267993330490404048105447854629322767988686139754597123164662890163115425000976256237849661796168337425831753279218943329437738477343452515964702138142724788638592290443810371924470768716207780706247172631618649887041838236874515308669863385863045552862116316417921451097077132658164108116939237172581395203487211327826224840212063875006873731443343529044129106690110383482551324362184842878711696170693819207990632820380938373016130106704515431012273881379041058596777137129937803066322253460770781795435658265939503159002368474767263703422453058414726317322828322506984421275851700041891133226509338399557288942198526808220571329472772262730025871521183819052564304569623611952736836347440836316726545564777951815664149647160963569976478692820444747073028709656639327352408639700851599256772455876481008408224906161242958967703663342054890912141698317948123453270605352743699895876817678518983089691905827701853576282770047308100319381542219806009844987559351049126885986562548986761003716848546090499752541808511635400209765454311439989897843370226195960615169885947475744839828705248275479195554930645907404903853139602885332082329576853721653644071306564700682843441781963543507306218497159555419378253653352307348739912274715272368526069474201058589699388217967699668124015837152689875567765536667730013342669264270452146117046648275721693675180645985381450364874828742406349109865751451141186161542344613702626902447646908715702720396600348848192995822733012209278628846045331678845532909548470420061509528333163657778383668623110332015605370926740084566321872095659807395151924391890565661383234138562642087279266604101693283562492221546834738676107742313679062918422871229209076163934375310639664005384449507036984945037298500594030668321985267830468471686921345702478364606880981799336782048897841251985693218313661875178045090950289920182839315437336273026004560803182200013168979441981872326194161655260868613132954285310114640471533463293556184292225955815155131018798587610450544056232975820200520130224575715070903084358411418448280471127460494424837553395567281055516209214913797462996560329166653175874392304533248496121404234768996741709598675940281930502040932770392463974280217873536610517334372836942246632430996555673356239445224909690132598945967885636717248365417761024562403390322181144496093892854136671768114879377886773430440512424108594377948740447158543103836004450742476375840582225628968426056917645962490521850141550544014072498103481354301287172314317442684086506494958693033391355002949349400204708137149770299773006700984908893434862648240490457554658442535752022487452338151972367661160696797224617286290009604746429119889140066198803413161315783839466975222692404099176640837932092453514274534561671686668511346065536327880608569749956360237805551180696340604899409370065728270659786207702395020505041722443032097272173166896714884065819622049678324719042888917569769838341856901472628183665060651834141258230921179714352839830625320578277308684608612625421238020606137445725474568343182743118083666457080008413766558738565155903168033963333777675984818917933083575827793574531490321249866506132049601638458761037172783646211084314265821693512513720000428460838174474398868040270077564080707977570596150485548668958785021774566292356992699694645695695682688070188975525255134805408115024397123225810024149828194743302176804737141166782633417529978141536447917155133496448900927098470441315085870967363693654333156822431133288150192993723265849522278414165882933240047893760247158148490074429167384433073529065143561763058179312540431744231110941519076727563621228029891028540138354744060630506372663761959630015289933282562809137499424216378438945966538773559503335738983662582513712643057993677485761240180853201288298263355466092952339472981590067873480821413725897926014798148361349225953608540061247424191237045207071035778790922722932090562228872849590532710159883654054377947768581646418885904106767106071202706849968368920244540718859374241124789174257528003416504349444303294897580147894332298215976418850373046793141506459483550617552567881566693495972710995262106282694918339384473963860849547613744105597383667579730884135387069538645169259439377243546935595113726016190318561815216674119584978792102448149068835783056346610216121012789195059005513831409401914901608905391016975592922798124493456071358283865018835787267950423542174473369532864658640865369003912021541130881087842747607134275597252177554648263904676440385225987877835096232138379644166744119923179555159459022928161606478583495288646712875442544280964832553167666839735134822895918443125247541267789350906958527809718907613653914240716555995329472849024068226774184189817073527567629450387726882018452408668039059602741080517377537374385553540693756206590104940438137857392969150414408722718513519581725991629890957294505935917569551374823100930159634393218079223131906004839750258893580696851018857732465160547371857446291827010465597281830046603721968611079934932329598343961480221760695983057487062820995460490810714521874129130618904355274161582081475126353879599734195869168683162983321816547411633651625941323298049481098333383132777866756447308280046922005327419130264145105465362379432430112064865735145513960376030603694312732894154598005630239681705721444854157767142279652098665742900675657249966379951517914487572504504487161229350984449349869612396651409789860535623476983429163490332969467451063114780084802782597728588001042765726528516327836026857307096968052924916596391699316236181260873751765850532440408746395581115871806833552340571658861781209230585720019274612931883249659802622684897496700395599959400379011242534657446650892135389653187611304081076230572784123738861895142150378920612855884419661640418281002484100092207246506197307911834445736053856867751509390714586848830377758272792165797923416244111123626227217467956310576493979235366206240220597034835350981220648608965070726360806165504706624793473813484933543453307340462822251228223072330483590737846769256398592525792102510338973752649173332261683263030644885162261475628638025701244073819623182363279255945649782762673600299282998790499962798101164576497875676011622597829321951222961583132271594840977511479318003833894125545638468307024914164423533663737167795214569076439317533936059394584585951345619807189600708053150216844132033800869234236636352766795244071690185809100481021626458801469686538203758903181179969232441199432361978777853234516694984043081917725424703832922910165988714744976369516356177739408791875170661369047775708838868786015268035170680877917575040025026837674888848360663191729889175632064400960692641876004393102081656986769610647674564381023853601367472954368027180836061059884085493755330051157729135119437050004240116348988194550444648619556483671947796395133329247119832088402087255409565615423943611547585792077487574336048198645432979764037241441908812465081919846157248764735760000598025996024444501136063015645811867257725136440903909579412037052776887896992125052807057419511195113777000030952196273656334743684020635708169011078753999284408708338264302138079170401292419558405297464426412306752254733445532928298307714294176880467376544654081389870009193948035706977524391594096766030192344880780643077537910346704662036700047343803582140179867091787328412922909417994093506032320346321889492099094064035436176345807445587024734531793269594476141791623426328397852277051332832090243633598441733618590811748889682096494366967869852810589989162575728456885393369081130370541664692444365860975337049510504952341828923461023636645961168296365948368929680518280916014906197983277478383915524678910993861823732721885127472653647939488395172996880597057126885161285815454792626148038380821407927626198442679257159222978644735965034718567517430229528206000730459272808352900421420893225740584910096809128520037570303576774264797914231570499389692610055645288097484363625645715202650841267878298704349961557305052503047738867928546146194912902036176409967734048827219504057729837401647299736065677578680462344350438431249874580521449150610589048205541551540045618626544111672160801721172850165514032846790670295904575297713449531993075278989132667061737816935992797869427056470905541649592402376833774472222696437244838406321202299346539314495380850711026923828155264568869805179713455075093993374021692118886661545181082678780822053184267706438280543796033616399043955401253838638611926057780362417627639963395192157155791067083496016123973449739266465668222520828770460927579101215332321598462842476117389727039442063312527634599590858245959563791593012981565171923444161707008807855339118254518000482510723584935685986002529586112973309915929230611637919621214345009268453648628317390283859182615081748942814116229508203336411399425404075273268876904610764851397563258042650215504849511331458360989548146554529645996975193505106168984643613413484977362503338102652386931345122771944120350374850833087005586410434017749857328252906133115075425376146613833183364427219768649382482280831913227523906962874917069722184787872721716503768319954918651778374672646669869778577235158409990973833180209090845441455922358737359324849528682532850101254234189144418960330173356303251454783511388902432599413966393338785294537014674505848331979525314641414846226933649375003938006188500614579859152670631651975658894374247462370334867767348451304252947448392400214428431374108643781652512060061557155743874442028088429381155948869931215618602319360075766165253641141054742021423475543390955951867917802788490980072101322449760907209531712528931404711822315210184243832703735577621429690771659510278995900466230332088261735912357703803025794990243582899911788206538067058292866807821147092543559514408171018786518013418240732418665341130844728506604955191832989729143086056894672186663603753063855816204570324529526708025272865621266191551784345513299715316478339191827746835711305154056310413835001064278916580846455355125548215048450926620785117751606516514878102410827702231386127987658291270405484749280636528910598510072322720567002510767335981953557031451650377007939150366574434694637102561773777120465307658714833444424025913831514130205258439655479186996623386958766237188340719130281212855154756882610200682732889730824273826205397999425879791700836970989233036537454247004776735684501624317903756871136691435867232709078776082833507046966041537411831840913130418009941792956762300841505437222440810815163051570037914679000089592430119722359959420495920165839783553555694572681023545070092993395439961900703181668415073598575665023685237321322036262822754417907671171508704721894167717056679025350779699390991295349624994153453135860857155408534612287350974862310485325594384035944039630604462486243703320032731474259563043169326621552978531391073051472947504523603073573591453493459276074185168178309063814623700315417001740126201453126832992755888026015415056300682526290431548459791332274700982562262433457187085619078781565428232988369589483835827562269564910334542942465935838586826076531465179414285894461332146122199167664023298912411053349270107717000300188287204311716776010325440776662449419488729479319302088172393781762855353790381538531206828527496967322759309007443252784195382000165424633872733724935150495876646533497906675987666272483961319012601808831144375894356690988481469850734624491076708935962939240931099909785461329872556569664817335716063074944317002259507727247046257577708853289155425429446523504851601828099491793932123912030795908886836908436994598057292463219945180896641460357655309795147419105583470938001394174743185800140436245205562395847071122654249091189092399931282658838182688301147818090947184133459241264006927889436064287488295388320524644840885441844281809853627435913052393254822561324237797709477822222122466416977826319397451172721078288877366783830485678895930111980232726896805151420035444810118984293384328334648294150018424480111493384591205274337175828569935132986802649748985532736462158502263850942219929583086033537857011104627974546975490453135597620832786425986931318880282787622501574642709797722807619093153153226519898927800601860421125503083833770453831007488915622407285814798644205648966034606928842490068337854547017674978942522826093747056771810801553909497219833542348708053616881233393236440317647752688315033821480637937459545393726217031746141293899850121836810436802599960381441261268636462911774981921306730622537687173753028207055433453994151094258409327097127463317867871404117574322064729204330607989124328179734961734873011915552137667748531460291846750440006750621221057546807680799827487476264729059465968832736641634385885741147195847139669094979694507006013316199398621944330001591292257529227211722910961468675109501815325538741549238271950474044786605713231904384538437951118408399445924357235720283625286248933210345814526934796144229590388063342769999710618932765177059536035714930415867226047155211643645610907722282589999824431059405078274361393211465285035803715433717169960555454339151988938625616343679276690629817940853070841934076856509165115996663353309800721516182396909477294956903023257420243484232687408646932695888546143376287333375776403170619529304701150178922407021796976877181036395207252792120375801200509086403029394212944865197628290429635626569607683225112449914371871237789660828287071387459659202002403217424910164920208997039360105184407618798779414634714497273329281110328886140799360201605034906851831829477547516609912118562897854822359545812487186655306167969275663341077917747400999966875181024705574986120129755181030762900684186327425322628555201453700427813111572571191235693062664454943947992118656187535514170198700580796842828217675735102622689490366723095934686247507601870401835299908457586186502759895079960680403606929857406909013124477564624943381279293305124501406779604596168119867874070058913552745293192375695996240943420140898301649300324544387630679704191953476568362052146928348412261549344823076381351780247923645171731583356927406094612804333494231501736230810804672537837794247417855975393188565717567491612594696922015255914579896415517325875352006508451152077678527000375626197112399047568588945829435966820184616260590544443580554982582554925275870777749500954611929165489686513365990600486440836121251337100049078996026259585646439849683284618496033365522142025968639389844696986343110187394697674025128113130082206702251288626397891557595677173116632123064881754085106799254629108114575224414093709119644887843905371495668479495495694866095467582249747819528825515679214962917398556100255201639825864478758875007943554152172874172790614870004979493920666229106395963626905109317203936180899116297234690240083024044416423200809860156916577334334025738280450750908816451865119767756215718722209620093656064070006648902199018372605097490509356212357377646355947547916854111333091983507714295689316010080519406174009093731852907482078524176411648136812440645238487116968821845343696421642500686468102752286933893365128872773963353534164385181210298649974805706410623485552924327414599558739598463657939208572049196381191539899159605352742272981371928659364940101669212400260981941715490805763037590213520889130139550845739049539633783524150275713151922015466964263730390497248469588412138642033515822978173257638933285138764352222984788866041307581285814513490145544405261662205285902735863181945472969112550046278392062015458264931735484743067112659558229770592451718466895048963056886141122671255389737766876638065607285300187925647068410690244363668158472242233109800020486365365060621998010889775370395667561173078912079331150659341270419647156171878426540513853504427877954547330057165597395892559568803230535645394719388031228522758814513414096551395537696479717186319129849669101900901808050915367734818426720882773817715232165375230441509685967987588125657313392000909954095655457866629345718352961240502088492263698321375214905991881399899863248047367600896852153466148037817363391290068449426869661877788025547451769422206597318493135640363588598825687071352837865947462817862217225638537173643154189591899127959228629499244400462056133149744800460911411512292498866063276264157358666251122672926159786951134222409143622094878173201275949539390114556881790151700634695995027383921285139679580770760266626512182506078182554355798178156939660052036545268593167953416378092627332818701291139765436310835565829327748991943519095725144382565030535240519446057161511556583946364001861361357453672359462020552795969327771855159531750085789969840947633163948493919503068710632950839178480046774629748204557214449755200747379965745302980478527155108538649515974468553580597302607995188850316415634603736188244694837461268585287984737274451078632857341997675725621272246261148645839028891621407964777408362974819452749304872712169493483890137923188744251048681025688994565809162263642044678210354842946110600732493570855850501493167467956122145064873321527914678919599417583142062053169502546199995185409491051077068366552267411839045836178749197262082276570022112319156350238726360586121457088085030525517929637747960341781348253244593408878803428621117163853810846530896246819563307195889895592799820745356163879065621779241505074850760713232071711927680027826582210471744615441841036582361132390952880611278703619576653300507292656594314571704547921792548488361976099509416542572130053198311871445170319481389164125985016671329736633318283082525186068070231104400882119885527025261198258799352610245202262080329911937328726345010460812115085664185908060845943348069296299183360353481209851420246306676775066674214117442660380982712194946644086114286686883756662737810897919306854828578550511002945303325940777825077361682568283968993813434077677452117315763495177884877564142667309518328933346003517430525413369165915033957273807214402234800670803539705469004493123763871609760372215971424738131857595686025963295598680322895720397904507139459969722280348461595539105934230962421045613948918544807336943849793543510892097897092692044374990090922669373590908927132630127743398568810384109641151026927420987562313575483955072816841894471135509618318183026899662889830043967218737007917571841341292670993196705942854686984418389429222125045283410901252471132436321925465233919005005546466220894981481341296091113715320841866865410998435777684163452831681332705142358871060557425005690246184745914689589555380430364450493049233479273582162355960090620296040311435811536946022133156207516065758146848150066008119971544127186862104032219257368265958474794863966482963568933617601376719673573256479216550617307260326637239492362234602009783252959636698570575133258731310840400365111288295756008336846678075425375668811957594219618567314210079502808867939793194036918516520565910585929832074031798166027772897841217082238506280684486082152682234977798922955232065795970872503525521753304008907711044548607890813840034487059163446348213294532566744100607183071222444021546529906106232255100960647456951094408582512804547517364124799190871169236640819235190668232388655010791414275540775662090902922615779934728075348598059351025252752625186820920871719230701530870190124181212514816453546267711521751859799722793751102618567089892824232782426340507352056789438234912415587614016798780385615510781773381843801757632893497475424956255045097514599220887838237637318658106839906738558415930504035620889774414952408224672062026459455144015962529773236954501268906345570862564774572193901391802287274936716775169493141196947008208903484626801769829583456126098109110286415810213336704089367522242259176028976582609401970972756118574479631374884885109456962526839435321294336718286350240383192836289792688287567147743463643991611219389687377111096069188195874291803448377591745254553441304146416922782825057347477877438123508194987310404542227355621870746296357658273508769996179977666020903301546275011137689305003624729526461271529142115181979922028060529168466584323419711974069189953593183275007895542365270463301801452587822245311822638182095897688936448630154772732233038823745285019381615088093764469414319216282216546345744214800985475154971025793602405585419687891029128179017540388779481977980395807351188271628307488350153435226675851513406046543631589884829945097253278515630460825151437748373258669362592408032500379131038989181337988472605033443697457185086586692392218197669817737833295968321110507986860526786856680872416096987524754039098248326828490822484713404098999858927880395763029258281085936467330803661319123333215110205787761218915706620508815123323509653096675884279000490380363056493660294217663993733969900125634830148351317120169507765941068146911728641993833042861770039298102119915160433555691539372616952971288805940677229100564650938733505051633606152548548539270602716473226799955098632132544329327253250687318837541685167444405835606072904855048682204779833516605022364888031951702277494492827895795284615532017727977530024892608833891753749323808807424679456742105879549953721435370086034667378447381097397528388049863474056469086186084126008578658667276626325553294593683523358093023960411097610916712311646891877063170630872082364574390003466695102895809940780771544253737682335556683451993868147993855501809360436416539333790013002543446858785994608221617234681152578906180109087204967210374906813421293304953315112813692735445486836143436113289665235894844005873020326936503014381205544474560644153194557164550148156958242349540654805779871483195026372908576844360308189257319968953421901511995106910072885350170105308555013493205080130564831595669576969513767407508376940134193889383018777020367244499694563729370921608343977283251280991129060393321760857179102104972472078569359546003657450687881735908613650769540626936835903398968858975641582322401392682036591800353845626119710418884599402526743619455072480897307290618776611089327223815448707518799591863964827499653898867804268749723302269110961162791296128055875127078590658240759289626164312660385035676271707196035871408253457118768653588435342932875489212923247078571426178753615386459925048518903239977902598397641612649419862098066884487155785185919842843159723251091682109934685591731099693403872940070266581498894222774638754123827505323431295593167729109461428680388272794935320243879705504119776836298210896809311022040824405548277935934099490659024245002535238535348351513576024339713890779704967405762923240065352119927263037307264243936479584211062146912181866005790183448937849217767210159624313560142924104031298184310335478884985797753252954489075043474237408695865723283283683519089920463833552125601491275075271678788177235578457703305501365088913872142702245483627751414637098409010909325006058437000390651714693853822691462085832971438543819184900358574949916334251192310478642301277204255910000250406185219089708533363183433597613156005465465275746849703641319299049588676571842213869646133683645758186344110863139464381652531945167379787633520038138126137324074858046562296912546805195541590849701357120085006493893359409722047255788090258060870860158757297036991450264958215771263759300099779184568784220040741177088364001858735573294616243376783013450916628789421906942238156161077908211146172342425578856265894226624984870634908862011032134451298887454360170365151394236922509131824730933454242718628767485805201817092828431476217761895357097188817642957860107774850094516262917149824934003901920513898182158978734473229699166501906025998007705348344862728519441744484158122338571322373964431655431998452794195164170793269007421236743814421827458985463098719669871577541925602642773504061339511585394427297519415873713044834491084735816000683426774905346815745630654900046976949086585287079953956468980799060038013810865291223591774835752730928845890396063898949826813871926758032603435197990740581293550235114625026748740881161841862522425056379723379066923572526696289093228842408544205722591621708953674404770669327517857043078495491021257349140359977339428214996429832636977465553895692854864687875787110580072126424890485070125320271274767521456797365007967608006828420951393131922813529149545151764424134135104626952717383386647715448717898831796760327400199539494879532458946528475181488177786580852407413897461305845332661706485202385325597657084141915148199339029613043329453546514055828586333999855152013540420546125360779379574700315830346265866327181931947730914810582918756066601180973414716627285250443308110026781762791705441202743028311331690081826218763912926186935664048569462613911028864116651350566364115150355495165525017806471181479474908968880508013738535243552337749443895896905903364543376688528184467500803143057086142322764753520175974210937805453347513346546741009840335289835654061226077419121251630842025848383773709122084983051898561186537347676335518154119340780915260982238626082532277021638170013345407186085922512876723116028995987129586907590943807882280307890054285691468204337142102363197898397492839329651598794285318224241846647116223391603846272316573137046232425015806988614244687430615027872781239936680842766473926730608130093045113185071193849652443053001409566654942911131245169901919523518941104710876547637891080631651931752452921347600281425836888716288374916228281094016268759905090790309230981370331799194184949921994650857851330990679695777801346032332664934364499840614302082655207862911397126810022293222387859181517159480462730892254984322312636010669525555429295728457831112963304576540683173490462162807839635523898394055853026587321011918700178608159500661737083703677134278279936738208898359580009688441148820531855251473295680795441664886542984572552993451993536854527154045867657249057844029023781094339901057471440966158588851397257255925386354313674023439603183489757888398291257558261091079542077060087850475958472890976161035610029625500848878064426790980938367550548040676640852171990393838510223398982273362006309071798327382025569713602352890375054531485613231057692083964212497803372545033834850435554397537258685337158657226212973978373249932096229252276257914417301692625031630559791543010099753249558611124642245779805151340998997488073912533777293060187852479224684436698324775562059003366486799968028866118839589294916019619246719148179652235995953220720831092581157129355747862919346084484529548622729985117412459687581479544355402585891981911548289973043741121661015951328821555195147111494110790751164240642137767529685140682776642830918539393803753541081778500300301467207125717418133723158492954742711418607383029271382042870850545847597239631138422096644942916230120970354103534445518489639711207402745441436117523632414081145033650491105344527261653745257446978512606224494323118648217002678621042006914118624405926981171319438583500562352626427146726066163297125109256504332485516231748129137156961980873166488343037599529536620345597555141304764645178912000234797887259168808975226280007318041331207689191944043010639464337104934141280307738197487135323703804435633007868236870607299652576725441656741193025433399772125458289868906102363306803071275569039715130500921718043898813716712737498776611328642624652223317634188851971260070988837848401592481797605861695791250858328402505089082899772099512321328350409721151018722780666510098639004208228547760727428405619082001755834582722805867324461472498446093674948887563994605549311255740938748209310829556854558511983886988028269299401181844649079513535642438475304351838439906050154297387137480234733474542798084516381024732111422224083797529191318158881079870365591818245015629627100894622405835297886527268701528624009974769131549530442324803221059144061710405756225434686222602868657585777689547805511909815295497394903075437604846873475332523083857041062317320107976952862656902974871700762123504846554030324035867382787414680934945376270044908401295716714106191579011054420537590222920114132022739065936510010674472284683595418032728956790682756328356671014319034238002732069384930189645364573247903353298504725078951434578602874477711075797565954421679349945038309776673834094600824898819679979685125241034140231601241926623504374070284346948456264069020608701750003687539076572269215120702646899679395380581904223381455898862992069174777471802131217439799684057158424159966450021487825371072711964496657752095476573605881922582685425531726846025891491421889785574940358387281580492982645782101277707747477742504035568790559772505414917577135304981798866755619376343656571387875856432542230897703323029741675032005729937875487473087775659751273255809438127368076451806192556657551166039954770561564637891230307826714946198498972842103344509481981659315850073128053045166335884101898676732395086680850672950587015126149959478230075515062321552332687569772786471346041176465796630337234839092902738058816283568959907481762885826989540815615844703290678550868923471690255763731509510412591019179723742290369790429687529080254639843408960103561282728556555371922925856777325344245797835620735904740929261849643274307750225325215611586763908432745481403979311273030059470627324325166146505183881377872582093592169530374094822314384895337446587576291965150440133367877182667544100882302896432935071771673253173099369968643181936330271426253703060455362430594723205409272288551549342127938582215297207610739613492560548698829951581078722959540555407183241668398525958726744208205632797263490794073258643181952673735613321146942692665350877919802283802711434857584640034184262143634294147724695822169331487418155336721680664357479171943398322736447337004829369861081683316154876565078714581430508674560944257803606355535753777169423318869651472611094964274444124545354344011003947354610427416506116642120239218668301411674691445133638700427658877113183686630345246891824436251394355990141458613025101900487110221224471650900606815844386233934490736714657200935859682585790735960381476155505831745277780885813286892130965587834055573155170246738532273405408836746946805387333938762560329529093424393635228945905241366975395347697921367949867815492445858857090405453216753202618103243845310043393566500304516761170361533544281160954370255688465326297645682796815789129470783379271774783554683799582224366204869908888983791905502393078100197916307929334015927612925077747057574529344528807034422134258024136182484135494503706279101708889191925999871038872422907656028538152616126509722109402408952549971915181527080510242333525213926083829183096540913966253111350409088736237311697952625157448666928403595903733301792515969952698383807019666138711412929041959484432812646260897788571470046570989016541917275333913926776932336201455541670899800074038885933226067667559346238041071748565706795899366764468126621138703053738391365882869605585350243938461636816636567013342676140004603614115861567478964770394534116180535736084599782004857774834328153466431929689371434674240521007751362560505446633132316826378292619379352339261797195473919430892624044146436590086646800238825353681839214892575400802988898958913930617096894917052892266215026023825139146212320722050986578863719241912211468044692050298283395338084317738575946586208942482456081100504889936456776702697437856721107407808521266844262023608812645984563781807108929303682599775749446358742788800933487025489538416749436338946925348696570665234519520636218773355413299242169192383451810548734489615108493845685962005492088191072966755536605807372119005907266137629667440151670368486581059664363277299552359558182561812662300086177036686501737504858261066263176399642215265203591096637940510316556352115582510453628267714789049866782595161393265877149883896063945678684863034387123816956873897898102446279673364397444746902227153417356560573320829061195680885795546183324698855006709182463535860710784226123799993166886479806139536813406751233268917379895439024713667850100912256065940582528044293382751702046023265073536990283937842010431819075573619279690031030228072363876952236803861467479685548978680415165691940055077189221457342843467714785913025193901809551166760250422123684176385185865078269519617421682466354227985425336106228965519223347779577577630788003194192614840684349775255424815553030759070230051442767359218586500207894378048236243541918950599625372579072095804522680882795838575426848819707530106551842006963464738818942800298045508904272331832068927875494817518731433194630253580760738027927222067583882901796530623229426043524654634611697169790845165726242834656984747191689740377286642576090740638431529859059359327384700738044874186380336641472032808246414401203948895480023136260244411294734038886592411405434933508345813466856445465622472938120467373552166588766427073327363143236312555095927354640203819062175492443174910375994173890408765492281042831100918108735902924508686292164668642075144391672940082991504345037188551437392095143599748418538887885629092484936428640478591220304091370090134787332028979977026303032944074822065722937044404932190196778533648419329921354761744654509136595548390110518495551350854766955894699414657091959383515034291400498470569224358185170195180589251131097170757663684000876480709644261288639404932906498243115761626506317327286114838257782618430911840448725152951433457379325061635175980211428272718559853092327776963904924806055615985410428962463197619229289427548006673073641174823011675419096330790698248492378611271682424488762471239896195244506600120633407968059622502215714267326909915181687081325209717598820159702421796848186551581650355882762662086481171978417848832721238861755365338326456035150976414096907020149086248444851912064350473281573654132628604881840105468083058116977641256308298226459608403329999757558625712316446035762205632265767087220962306883383631823829959979383902001320510080179761728234738747190632065119277956732453415402404152969592741060881506001635814258655673637479821284238920941348818561745259169864507131045261695817365590787773882434135925893440659966022945080170254756206709899547594288447550942398156402945016777070736018424279043385356849150764011513530684350459788528603030289423482066370686315297659133898868633388126576457279175013653612403243813586905826485690807113640702281519680110195235455627353130815596651849903680834347759350640135227434415612161673982610410815915277633805689165373513745362640602225863649013011042069351978825290268122252849557046572843015573742727234874746763364968899402337376889469913619407012860589509040478170448506869426949553852634769805984479647717844730679497725697790680350862003212092420611413374736679988151651768611798939041953739352115076733161646389087460479123435935138026857180393949041492385059123231103453771978847686556540960358058240195861481474644783353628307066373338431197496457729062953594534577798711079703450491129463153254782220049176381603113642656631450112533314565032179665970243105059303235395711382991130494413629776532224093700378599365091333492581587074742425603515609554386893771675880974878462821711109646484022607745836327568442482854615153913067745797605533646767545387965403278768967812857423595045231131299771702386339476257258656320772892228839163078918346480598663273687085838448375956155329596290059094054084454695221417672691095908170355270023785511865565268051138596360752199435546099247656743432627874440125655235529628358662477749635035794890046062342509832913013695618479906442563631568205245817672701358113268721051704388475658677550426513250487832307892502203106919722220147919874363356680727546900460730017974585304297698863108116138422775340174166481081671732543882138989794764543696797430605761499174584347172739601587932553444172653606415406727137924629757022329618991113099379187365894175316274825631483946757001240336977058521289050740572219234131323277220172012089051764484806063263810824354521580011178189976775097561421907961501979777818822527371194542332325985997743656690775217380975386823399177609857449005224599097956347015508277739784217200712795964916555411694809515043086217629964893813337082160386743599768271877883608608380672375415843861229017313045279782913931560081981332664947700537345621158897842595203636560240916942445557520178907026441834849796719818054469627189405006188939684049114657536130468809272818363212777451406329536572903855969735994580809579879633449866325593384647802217690205028688132336752228174867015834943138790817619919277826312445542943205099614484596425594324235196061860775827204852668534064105824598119856524156558414763225908021323121426599086484296431945675150535746040785578863796974394474977690719643386785677720721135249981411435521704174841940595967203604654480154162038371844487549879238167116336008522588700916610027308902464413914985698531772682744796849562303901523132923499475914430026255437155265582488525051681889357700240956939354073994505046171487852126708044079410728261387069165706043719459293200376108038249231076903541957995295753168837335926159371198151149512919988134931382148204022963406695882503050865300536242193585690069397539564907366608691946611715763677533904724892350958959497146963494437904303417148332558867990926490635107551539590780698087474193651334016452918081955753983886188727621328275196885672251323355854847092705297589280212284646111128408244220924448435946711398082421216449479800365454794008480628922796879091845229216698994236826793561925886374086524024401624467094051217724255437727473796980808852608892451400666237928786274457650952614286590339331127863502447055117867055790571338052788465740877859587140981689677482258744645454859360300403266479483160086773949543976481465476674235463236545579319254716955323820480652042172262283505751930187821697204414804806959891979666251870421741028861454896630546029020273182036015286087315231799565910262893853460278301335097117617275462633681864976401103790455654694557962453682212170280014860983943323182081374208680710466608603458532384442430937153669458996059093226408075765757661212618718464804300904619154610292648855454702368027651205621083569789408908620705754496979250339032430930757450364106126585858885523343972387786818734585780023845355907682514344220053967783127488976744787078912084961022456082801956392264281938868640713658123342263260386732396385728182325772163805442513081969834835466386838196869632510068196068037181833228363316766848559509566064372533833342559179256079191811078055098473719172930678570571107701478252941737584126491357015441285617395484785617637523821740828895894504233013166862951926849168061895106118281892147395344703544255457363017401520331654417680949268573815546447614441159238401979679546631552937464094256725122120792676268486005838182409208236655578438587255221557705558940172914907508962419864558794423993276144363281454030957899109871961164018051633434739016793505648193774106870806809882521926167547296273183976854147263419344146802013887807767502041785392617084560877519500096507766244418874794072666901720396213888133897014772453760386412487995919042460896363572994310198691190128835541890903598292769246340325905088762788410065535960908487772929688568125551895161098322525109375808502680111256398973873253589312077004040009049894591207946995996524545818403789604195313260714910301303523497137207403672575586434615481777838559435734339673373093549488291566896764665291365742952543083950562982614734190072920922484975053625512408538520685746900751930993053996999301136373041203280814792992995942362559493022997936895878652499378883473536487459637106063243672999409363628990012406661085812772678943052780725326497623661531601807830706978472440190976502927912576164732193285383877291935223080644754670109698545103310780436974314485857484354574712586853307409313608069073442856649711847562504858632874001720899849397662737826674781791685937335915465586765016526342093378874827226387155522757006624386100256394141435941770276605638658838814603730697381082845972611427682213941626856540476137642046616191904191439921730612199392185725910893127116569699772997735850551034246003365946957846623079883816873863726993470680332605475178850988058823329329083417129317790439889875535191323067032816177160822325100602506113206054258664224986022308474560220736145146154490888617765584340728665981109573113764636512153624729072262108399302943036057484617197940165670332346432900989065436576095873900186418039372887120667622506178558728276312276219411358213306606488065390374813952714636649609315735426516291973393750784119489768760654820007810797910131782551964562913430379814994907878693909224340438534776827625067043706947653189807832143639912830347130005651638142650828587954026762819670941422954726960000964505972101275272118055217926373444513972583524514289544234124146547123531411625590724170697431805586035765570894622873497465247486115332445092279084287478590941230123041286752836992794125160999858597748445099634264336565853829720786868692998805838182036915961950069078670964221303138580723775333367779683781533446196066321972664166407154008313365081230326515598035493969110783409241833188039736338028451978017676029857743011008556104754217347792267024366373245931483486629160497699226351624195648767366798358841742150070312024506008082027356758034234204938892317112356695552655325454476539276197365367463257567333824102115871433268661252642894321836380707936773362624968490572472257725120853584416215400191649248258824537676231482379666433113243364308272916300383363513722414459005527791026895342656019793315983812298472203105457992397704316649548457953363624439852517365843681559408964267490137161978136442914272777193345805913012570132793972541989660171318753969435345067392603060318415850703549322887195807940119026538813216154109422598335370861361190446612810796565344319971911515197701099698456710471812226619265689709251572455456726930893450329435702965053715731157482561012974686009911732448425394187787515124402702004268216892895051980859500822451047241226217469499707659698975550638308407438833184642533598629323311279773239146040341325459496905464088407375982334866423072147344899880153621444847968292461045528133416326582756175783606411832367565065742302155759440542218503186348256198538475136866051262958108066920893572953813396803146264478355176592918395766054897862826500046931440284339211376262699514858569288941715945059244373317662861830696874640682848255082636118324465004875790232552814060672438426117674921740318999356533061469979802946070711546230221178536291692285289804608988097557523152849688409337799432570121002978027370156462120644964767815436431298411920755192377295732406548937877927534868499651595404512535855085072037684930504716579945234350109204086737979769712446814026005168423973023811338728905472931954162863640570739934295286018801094939375114212088592923036569863091479496173255047701636134154956415256411057284178979827478316529022821300748655354552539815161508180709805960520389560182943047825319475834686959357266143676100161772713057377802265118371312594918022744442757733565860272335498647605245102855573328686316382029134511308400545177167569030810760634222522478837303781946677940784527759169404669114248493718570639419589705759778983847506999947076165710387482047907112384703528637367627595564675643994634835331021556457418826112234937016578538055432981271063748452888056692215440521034907270882184343215996333299639782629482012913741520429274184172756017327756660739423305762508722183097002306511425620445175496970467627843525308209815413646719963467582830611734384434647823594255399220253825176122688448734341957323428496994554566727645074291445330622200445068216313391979111032711990708125094309721775497842656052147500271749231474783186803814972240726431062144087240434517386482551866306388959018759312571212739083864798674849577047214534159777181863408336547470273638430165842270209323153465543734146700577332751432499510993558046497520957532949540013546701975507995355015055166467026057411798455281970687242295866365854977165521654352094285136078144963576132979507484722009921255421717334050863070854823700236944334210533269543357659236594669121127164502610657191437764977716160218679199790531969352847862131502190730613408824579647346234882703724523056033432986485759555785384808090852234645114139852932522893281693209300034421386152042593768271756716637073263555904532795234525741808035009995822140898805569792229737539280742564899490926972865253752722671671892892462333701171655869902857735702705535341230493904078358457180117236117510365838034261550479809230855531131556267612563712004032654179326857937189988465131576454408398380376295850271389745437599652279584828464468165670384515722768180662729563120422504342514304252729674606975457363807903763650072998379687656476342138910435009196623301152185010106050507950106503817537969046994433255801299225005926913325010071740222913796928149078795771865366677820306125597834932426413173543366924704807342200375160500288767392460172913989844213410623966591483276855751338035382529025121557395243025797333150041173574733119179428149192996297928653531961731987792955518107303855957727824519935151145114216618299550684164551357570589104597448808019058817489820594209933805071563189357707199716070667753224564495776090236742288444325828522822418430867368018984814588863683610313789154656621075938249656274607425239012648528370562870041192503312362592119603835781414883407473518363996186391219448081872315305443730571713460649558115076315161184012337115532520551764353824903532952387041321636993154466538993732070482025845732416811647294683065386262490183341536661105751103641225678104752331588722098851422287436640242239537508215786092323000014155333093286193523502948025142993153966070495330080180670397444159474298633560774668905061946814698962198113246128252373299273017935584407864732571474590055262798583102488539371669945000612687534932732927863318746314583044932123554171748795505835425745025088054544216650262287854547762017007869626831301462321509366152048226923827324390288473824035015689942473831732499437463965419011346944139488696058580132536847065515618931421452379955443109879688079725617005548500354569248626459248309365257352495663759388213899489881745316539097004612831080747144498865522291980734875191198624580872349300031313052936018465588361355376267309055445804437967560178670444942914649931321166109585328348059264377792877193430414804093133588155261164183932309449015982299789336541685660720983667153391648481891653779337274826309972308792476185193693942367910332810573779563855463729020450770453574063821201980439162537422337804939476120922683785176305017047343436626726022284466932008655315287877853415477677252220510998987103159037828842468961151717500743830032369750090188813253555819810548983271140620250733360961491214143710158766772015587558573068924391699870916785760441137854264184672385768469758516319125953778619963574208243373645051752067975025616281822545653968617115202914481071996571629661315643018653965152845674390788937370774310336470858256478619462483584149950378497956494158879664836551270962291594375956023434056724780384570929436108746556460004727799631342583680713017399184536213526900400391512357522480943898218222314217746842837734749371897216393464265626669403806993374777954734921485000866919673175121910972739284769199488319927693295053527467959770982018280056792472117150997802136506044619471073869038501784023189214634575895814972507011891310436846644575880567029243857992170517925307922682837729316437247362078063947708603056730085740143962670599287795757152450238747030789777325855438086675532865691140089936121815351103328631693289869906687570534255775784992572965711177684806057038387990494367204117765985352203239576213650720788332818370110023295436050896367249455541770117719887650850712432763798956520100559299487705159959438848481772986660215558340222529457646285143974545102296461208935137963348710658130204931678443641357522441643317979193679315814670593313248223325131820862464283272243209957510439511890841235668453106819325247596237013255319156586353966323065873119617443778640908086318021976378307303141193049916076498616910216002620016383485233058630910366005200012391986857328334382422994002567791362715941063149506550536377863105437730962995867612355438596129965105839250153457985055143223051362007654623577197496966469783987359845828309859531028656843457151682062659399313730443239531529761424734558701843285736742167569562742295696491084925337961883232376420906206147828823835321427028837112200465568905234125567878993103866377970825684965265763939596061872990941132783266992137995109060115309342175970572888457757206864851104410670467129672261784606756632174689551753651937681074396431186442985823333429174447941257674570189099919560147024802514624628379698036347975630021975439923879882593278076899850849200084379717453363941153798692775845125720092943518748411909514708256117623905298295652873647879517554279612646755355924403221645746305182982434461329139284666395157520617227386362178180114200484671423136040131321992603167735794633490544422697547719653699086633239395111697714755589971807467644952748981096243934675723600987204279930189107957068120257731964832656983974828181072995767928223943779709523096173014617662211903499622613276294931194628770070911601913579445981211110722463193733714962440472942785871960612958149013319240121696338639770292195429044616676989509932866937191411924161117423062709905394752764577987661211892056627449915583857703111417937062279024707858197072025821744828480319986417283609237120229766297630814297901099844227361607823978708719252600422388828619594556336563224387523862821107015720200278687222435970102640468114919831587830672599573191186383151114798460418932015684336759150713843270356140277998031935226619774900593813722855916900136860614041348170054119358363834905520350908260050574983250233925503195362778999601881140890015097841877203298879908672645068527003403511759409706591742000652556303069934524310995721443392802889926956518473827421076980158698175037763517516338923855517029585070174167577846497881027968613054660694869547307833829552934909476374266726769808662001459381531877944631254975652391047438408356952352616191360759192355460902417881234377150350261145649947023157700826141321204578838113331325046710020409067469959929916691798312440679193848023828196746074980194492803022447140185111732276552131572901250279250154731553781378621531835228226371558229775435611337121254440936160965223287650230832718774550934770833555248866745551163599385616051617142872159577104286175780478222631251170745784531465569116033924861814450323414679763076346879447563377932555893956966321863333857066431892588838564066906664275321027995564348774490446735690748932846561109152743855763877960708832393201511478541346848504941530645704600598818614398622036352392823513453645293655610096314351173998950255055549841157481721621362012971660143637817819579466195025891431158413609802423535084670296256556895423972753757163059969086647998541090110388270911767476794842180081673592794352534719249079394147839753758523909069450601258533099656178993871847767038174855532552634324676568454980177554519709116052968818202773538141845825578830994619255574620188043015703993845818009019839053848706631373119327651317870315030420611071807638689724765974799964113100716117935624168347072282587912050997097479574267205307177019693429933512034394191222658434019412971017639583395518612916407779740534398235388248809429402049140470313405827421169693447144108962851140466195301421118653514778541276682229117558369648056470477660680205411541012254135749260396388538901681473195188751325266831631383650245703747798058138813598782533058216447374001302626400563776682091604686942215423798128659138024154623832192518446426009715237198765932968590391140385543444610380660353563884777450335457102439600701562628787733910026601855788428910651774258562299591862329007823932579537991287690221147890787628918053788026133087673071108955807504565074042273571628507641180832525042872492772235053868692860759312284213128068783281372519110715125757416763081735208173249574708725142203381007575665786726129769801248234085135582597085442864897692106036462194039772630418543603385884297411352170315343157909458655493858655947064325504689689572395046128798009885477982158803059992091086423275664603295270209158936539028843835581106463355334371049465522182915557076817002062455083750092146602953260116454662537516051988465149692651646343380790339960992033126678489199156987333756614674179255881218462545228808101616196863943206267887182320880675629944178900805867514534192359029608358205511627369070483711090018160493568881911454111728646122406057827469726578940843150945859884440381452434452331696561710172127006186159638881371278323513531642112479794841025123843138423267436228911759501179155406260892366716335039729567680892229352278986604289657104322401440112141353919742701339973500699956073233362425988055928944817625837335344930143239390533822754673320216614964896083754918732097238286708200936658151601846924756200634301844664512672480674419106710916419934605011859491901584315624081681410716763254615105682886493198155579644159568009205741256277987751880924563836921074345101781919464249140892767667787376122752458225431706532148369895395514030188820348986965436800750983262390605928755888833435710861215398254122151730844519571006183876389777250113362509231255963219629725775015931168990358333279694318906328261780733268570929120330612748050842906722287101116264287070202720926177869603371169011326611295262423810267110899252079526208017739919246106609503643819995167886060292192918099951700149864709234817620296923053478681393764068040496777050510675693345268102138269790666841678604597096920797971904123367099245960185141216099353921503153879740047522628534651835262285908168481335740756782237754295619051150154123766425323802028345722420111774250856872009559944975778494948640869614180871183484391800379246426062400993419197921620296939811870172101192255157296118194937652928855878815423603702319457316867780480492050843817493840758930906013318697473116643770037020123296567123623240013459238181069547938453108722045685750714490803884539092458336513476208194431444807515602095749599584147925939868545010973892439828704339465711318075061217113433455191763647927044109685536462282952632106634808123029955556186813516567023989054664402117515256073538432270550737564064227021510965595293976199676543677100822660309637740627295864745016332022994754805308979758607137506861335808220464818319867363032850633692185848322937532033348492432005831381415441910970249255122604920372667220230182744151271528936400396808863786002149395301941767810031980549686162472214357694256139470881500648579285181465929726640850093038413872744793767061609067621670804108615061857950440547686720801713989857667124276253623489084287371715185460203503685090093538071920882345809405970187546548066461613842612007596554551244964927822425206034671742001621693522349203394878209560660631847622689593378311703287061014220843559821881195923150090168245989700907890514670075725055601069522422305970561447385313077814820275025897718731479857830274072483695552213115713346303036876894409328741518541166842435905298218641038757708428048012828373686885856541335603961790044766823709949053439239387912462069226086110373768963469671175038450246801795112906034576417289104714466503128014697650961860570715116487756973369781085678701751042659659945571853323533462061994321429308541207102796303755698710652285637337019822807835752948458430778467299102794521082950496897308223086439244143487696936883961042628024174984246867663681237007524140132508744009748684881228736152542741219750270690468282028975954515289719416925839268601218947791509788627246429575787570173900145353220653727218355907457650810823349511009927092559788992639718281073914980275765419537638482225635183060190234763052968010444901903571638157677892282931986014528486057207936769077826701293699092949262426579102613947896287767722247247105853587510427315636515641594048640036668642954447361096818532817672776334872541910213193134700129445486718225331380358515622407424261449997560415710834339297681529315874608577619538872640403907048941158199292306954416424254148174537659549642102260612893755483159942630403077473517704061643952963851152940380530493670565685461652390978668166587701721182052647420158078952101268387401098848475274164915162124486056365189460309764167795374687900746533016873905455580805804582639165009461282499423216996792577730076165366257890805022531321928376186321074457340491674612218546376064970989401325791490882513213802237489192695507550030750802096348265004663773683753836511126334871107720992702583205016491225438057871712166571322435680679413211280358157608243061854855352144181903323221037418526211500893463030912696050532143552334951891660722559446321298965412225935353478265956267990044322523996394029270754778968168861743764183369510914836721293813822021514982379523612115546005312101060570242899325788131304309545650496012175252733643057092845422690107903303013120062699601179933650651971326264980370346163297367099163539888446430321008769544515460964866437405384867579763498494739457755443214418175941402122287121102900109143505725213683955267001501591915555321838429599729288926194345231087347986240157116309951806696413156756595896400575717867232701615446749378406992577840841990189279660016654535562944071863362126724287252208624046213238560960861262541581815416649890554297974958900850251289299144162239221355179174908226158276981156019592691630145098250722629512931598451730977475067322922109703566285767550811817378256679476401182028743151732089283959928159445538763021286581695388808583361160509052958456925756933311029107095255046229136925586193980241022317660317391570860591395645254154730802099850841325187906071787050375766758268004692617842084197132361827136059524600205355431703661610772128535506640924880473611491331385295186490365047963029853563344964640715171416089114998295792462161328004091779270708201107497930677838124824029036290620292042517852405634323054906039388483291958218310670745337739181939916595372451030173521914037450739389563103295746485592713568744770199379362158211977719254218493952145235076018063414271372508193131574747648508791286509686714204943646337024153424031695529865247659267271915920040790455419908797428582644875142426525389519755109418639660337591520592398139218339569591694434812448861289149559448412109992195032412258959447956078285476011801078270568763170311733909564562576451708501595810266554518285963955139061831899385031186598730969799228326434026362512390664704529473007876035391870419742274191175604531345700334139448471894002683926442589069143405814211172414393944563163554356147640052812763807294273628136249002190296003730252945705329482485781430111415589957986503713010849056740640709469478757906564958710612737168622541167683733579095897794980512116951112216762771013739494578546820810745579442596412884556557846468382311358990650251207685006777415421566397049585960038100117909399412242547087231636808737161329421354343334232926347618864375588981238422084764877151853000580896584094175317726499530397607992254425132098864062325102139575232847206193368304379461784407408207720896591315431906620975256795249773009348168672673876107532775045659070592763418310195316123259757374705783081490324794123838797468300135645693606240820999151572079250298871942659584645122658060213520832809856759985588837771306212648809156712689560523993696437240242274753742943426334952668292766809714284187265250204349793033681903713540101252090709594060145086884250451846302382550535927375925191248433200361671079170966474154429541906724655647317210920867293027959598131610362642723268724268370888652878449438828171161524764208623279094434872861541516336216063614376904685795888362276065382880672810609110755164676345924701409287852836514508674740284666734773127159741404197999031859933268017554505666808920851020839800214373203516260357015274584855178437528402245060336275481379336719428103469748379010959178230291797348842727999303957511541627569820988142997809024959111790229244615268523624444978948532196636458858422889242220429947443349194665992760133414763270981216063037315982437510762549432673841501092145486602687915142287363924500153875270799759450904853994935133285849249339553337246302186938104800275916884419361849912560177653871810986901183303515969495355213715892803108339299728229760754194562423176990294909111183836380252196557366580656507563560247536973111288882072257724028832095890502707469564904430669281656765936825106555809669457602645693586545973110226199170822217494960352421674967405224083300813769002789887099115392358947507989592324655253880626209554684412211805117689277751065799076195517560836073271301402708567259272477339240818414084693335282687072789002185049663844985266015754580961311599777243332679959804537287353256717983460911368528640198964344827604218715763983408829885698919344875522656784901505751521462592211995068104263947002526348173608002142846199137256049412009349383888393630902612904676624022230903484899437182632527195735217335167503341874286569847221699744710322954324319021732923888207407916715219695027862490396644711203236444530313972170908701465504752128576485737130765880164406975154177367697354222960022575162058565775332512575946001438543872062307212245882360507318437475732407038386165607674674747064588934996146001800839051482664858413533624638154023686219840872669454484637209835200632863558182750904991486529886957423910262698622965628207708684328049857749609268921637434319720656786819527538935178964871571939671747466242983207418136125430192995239413440549322782382274473368525020527169692232046754988357922518601413222545306554472557697337318939540666261737472165651692721472904033384964724699369702465849901360514093005986873950504960879930402328880823786990056206849430594282467882185729265414692125891951002772174086739088423068694451220793812612379120574532884147627337040565610579931433695231868352440700483517439816024911073935321157068588660621561419025060925830522595621388887145601306486743557073711676532902954985616609343679917558403199346202257316424699369539274546695314069930280415736101456824108294892498219881546015392869125157213221860533461975932700793783763832408380969721641727235839354111011775327615811521536655872452238040550270532824891049838299517366499545167535644003101467414477120732085047883476517870253610361228256358973954023233604819884514093308265781146957773211059605970095071474705473607060310165458866473540477245603597704247061971323716014491910715223213102254495299882698110489487421083191484567847054768459731446623882637373508431001930678842214826128018244329360656999696888044935095920407476449544668917239214949854297767366608099542609646885135619143029913809467060670101542493968591601047626324353098350582579911100530186383636607172645052958992988603124209629738949055148972829235707852354127309096894960936941842918623611880206817283987684199594233555125474222755637771013044826088305041537099690969196319588076336871772380603716178515085752579828617207396922963614714079552613160810716119677612119292957498160346316166788320380104104534823593151861241677019553873708484262804786804039386456763955185303957476595023336886105003914070346257569174979218400806337089961165731255810387496127087226086953639748324556407771443495275620575465587991904534367071323726384376156441985142041390676448169675949858605290912790287257470254714336714466811519613001442322846433588703821960083658893791973136879158286147839363233336260164360731308882255735229707226473102567674540570351834456373962015020166285661072899283533462768865627996525546550231204514602136596852270856267173976850652544774319031822591313044394230762545439611870135160965636922771728873197537864874365928831445416467922893815079213682959763336039708049281928878737723931679123329720816610568330993168076541474253578164889479019970381163467564960328979171901248574752347274129072982114648706014351081432996568980772945365605282259159122893937721482472727810235851944671047037040194427418870253245992465376054736841444962481482985700156769517079187225183190999049183997239766902242679080208557053444432829625135342856277874308786940071009401195484879059428432632861575772608692227049526311960497436487613851606068556625655559894486344528958180609815538302390330493079890229469878076461207656118803187754479914023009259387046452284579746294663471586182715684587782955629544601980749911858153667360836556078079686688154075171518857252137201562642796436952725118474322453272480423693839393651341849097680730440860271843612618195625875034444902221602092203591439283263880708843736641068041345708322619177455635295980996909355870048060859670917289179348510092595597814474017805680954966173201904444854727619075472261918648759693296049390400227432698263322767783757261480079065406818702136141343925142962116501520772242902216394102984254421911610847134956447269996651501894560181055488467364066900822568833134409572379655262365336910407231166370595214075496297707047889698337263055631265890435266600212902445983403684325807554527758397199421301169772336075246591418422273349463459874597916682583101996332594794686707243562114418548878551422692873311037787602355949369304215002210426984389817130849106333733819731442005821651463536189238760554566658541834319961970656742726593387762188200441841210882219445837024602706662924904828943844061789293592477942528897368338093740054076363297889129029516471786339204762675853269396876106467603664778797761663739126895387512193437887923723144732851364554172158279939231953299951605590850251038787132139720582327489528284523998854308982101292434745295824613331777150529664142283310880014185069962223380359760195899423796731658267790587716457423382638607485597787876536472182121004941911101506510947822001763264728653650025524027973588544679097416682006896949521998097526011206906651112648764164478029702936637684252737727212255108571006135523762959135852747508850303327235367929170631572279169794421953012880165991016885120877203441718985419151110225115098849204751125462246469194026107572216119601878140785402199055423914390309948285864815193065357459492077578162970628336078065778555295901430064637665361266300721729143926701768695711187555803428450317822071829356875546691961550396187883035591383278526911606627138083790196521457201646712481667007540154473847649058634385341049921066919003996164955453145681316754495661612907196971697252702075496221243660635307720825486735632635898584378421957649999520033083391072438558635631178475349354673432270041992419465065310709178531502752581546020518141847383188123667038082732603431294372327014850700962550555792013800721781185443310178122076378819636215211247080270661378480007300430824724225499768621246789749612142776388937370132374862721464537479955666813022154458564272271785399788096674538782861937570078770143026574118831864193825214119301612281087702200126633560692987339148962708203512629617559937270028628752223404477398855100665267322710552418634392513082381707305626007641645334474917389367907710079988165679439201489664908972941409533964400229385953269269475632214683554233560894372596965781419449299217392788405108598776502901613980505992640339084087851138536375391338313573177360175984639770053488371234620595908607334192557412493641173843857075264360319631890470653360865135450738691049199870789126226364258233088860770258568696290141231920871786800131411621761391337838092833221937030821760525731965136560831719656026418658171149435655272006735040653243038559094352175139995456065724966888843119259933121810481690889521041792238696097856793865418559522249465114866771048834062889917041069252785841303944193179060846433811261088012358756728026078064757764254442125386118101800101990136751854084330650549394147934153480469640454283091128905209194787589706454499686611483526191047774112978750630075433536348550714179565618721481472350090001791515079186147812695434423568834282454106873278178878102133033749575276770687851698972772303962851487626521921395490566952428450596063694289753685915854725744186190143393502958968162658045451795778773309224110937790583513458098971246953505376454889807141294661082378821096257623199743871346219386606903024201500312975870611617472412594055366093995105673289418116385814691650343699816455199648046038516865134617192018554488322702843326277083912427781452148059462067731512826361728239903584157104323683636584834043787925768083962451704266357650327016851149228425079936378733067330546971007661655469199004989289167752806659923392772114685144815360518972812423387227922235041080850152403339486284955655469069094695656716913465858632961479149280874452025311906965700345250270945220488663721661312247942085111272715325753843850549673427670804136518894442892654281685797583734422031456067840717554980458984311364307186564126932821351834335251929613134169575279758160292920529112677135440703266384216148200268808524371060081289046789007267133631794230782416160711594893376515502462726178725467298660523729476875041199861037418599918374191714413749000294254416381820210739244047787835156863424081289635412108467113946494227110498007312826079769865489870350502782315991087686757128448981465353458176432773454894582980672191268618555386556288872258202833554251320049062581453655102361188504228523602208310108345480112356261286336453334534881000418702304339359514255711511074859001132640271034305943759999238466977542163890758823471532718913148664257012580287431988823518400021906199036161987819902403830267943718861196242431744551715064990610270535241866409959447573905665909986820271966279214112321438920839529342460888298490240411827471271082471896435795660271696484938073920772665160081513042287311036199768497441056241542605826570123495702086872323479202089745349986590608754672177886954520756730205065795783774402686543794713731938092238844429142988919443404930710404688510672050452074826972650543574683174050967465529204439902836823553477053385953931852182133980282690890808690776449555856293965264176652668210259055937092449800697299328292229056824417926855831116871192871476456729164767117524839529317282400061154018684567392470769805355521232152696603951117338532292325100561136173811069503399814220824482594053356489087382852516531092132091319278247483383299439774223916869535010139284370691887981585448441919376730480766957389556578214829366654441407930853466339719846501662289059280464800236307095901790601950998587648668200701813267143389315694102721218294872979017010062885804519463523448520811217330180857617906648857711893669785076984874436413060418830950078314498148212385850781661305129992407996915534306842670064954170355777643457589662232578273495196941976960890997920693615675306891078687258744474565622440117690815751690822343809501892372369811418180398228011786674749582569303391030798242262130283115116899048543959443105099645753563126954108127804106258614955187047528028198604271658648670205931933803005970581900158234395170814320688188704920901195013726955650599033523698515093181425942099963837478898196245971675522484507858376885378850457189908204746052673528249133917966860642009142430979145751492161639234795117917952569161776754034180704656403547793496927967976906309509775435446689550835231481254672685842218969649013378437801644580993044171649505719438471134585394410999536285339080614773435800345317860257989037138444761716519347033755838167636944318357467345240306988291557348765160135226178655061551840338890344582525052241641579189840848289054165251224596242851539454806620529318542979063100274415777773591862585923982186208295490893917177998663948453908243680815249364199256355823273691525794260719141015499136836383090786041947140461841288089028193905160361120091450119589560137182676853081835085227560578552909153367313156594755906478071806051598247493726564621891449942576303857428557077277569485335723929833826194389351557432675157370582244111432020534599810089177786433820493210970428302522321169077508753247873263776140856677215827190494616195543688479342684297332695364913676015929726842947704167196683351059131036643310210403443022075172027471116858668837081875848895224744494323639371190725095315999042490435911472264237044415340567850458439343651461053985591085787933573261322563503099910468818453341027515323626431172151612470125996893613292295939660443890372037021221578291778161116905002940863779819292076043198573781923623933187632568852523833468797039005071860703604477550778938000182834975183381914734819721601910246201311955097964643923947882333039153052378514528254207412342375283902263657481058279894362646981430427609509745512584407800664701175044403417363271181530292381130656915306803975890017220563240488192774101773426890897049459762977372955201168707205260647677775577753957978961675901295133673966700934800800322804950043154492273719851929455916673802024808078815339602072020920406132480876509830504258465730959962384831653009013414330828848646036376701711570837568997427960685022332444582218545793342334806361012781377776687432086861426610750443283757283951802647615695735857541280533502796172596267371667675103708637150844073750431737822413198529909789517541216139909741481294182231837578254851633905607446286223774518965381026971385034871213536587749128204494870408786922196109170536224510320137139324644171631429785527282245998085624907178283972235836273488282670112671759184554975311529145610354468511729627710707476396820710008981578403689916018933115582707009950089052630845350094233367411242822815873888720898366768966029590669969890054350318000464978209087130198555644763515651135320453141945998436929275423888821875939838906515581628973129936537722341891382087644995572358249826665963618281323773541671345788073508443841745089627555293569378944115757941006986065888357767602209545727123474791481871632909401052849745498056743915830714443895826963619457049872167610278099898409888107691692689248032058433140732656533974216098428645447005143986727907138008229622779910420289964676381531708876688074174360094728784293258429114613036566241798600183502838409068307309838533952650762650723584803056890462016641416764280647757198252037585987507918077670166921754922152261606683366241384114329576498993250367898675183984985216141113986739202387972252640913409420079695753426415732700382678974535408973892892351892942765474038511069385880708214251680852940834850338090113186659301769444732111487044192799470712825213860420226996216630864213517547944925766812902201332181297866401780770994721029548595976737395702811531996766549716821636527849248355745333218257451750893402252088774954177758251025584518466222399698521301526836210449194932891360155205810092262962724743078637960245072751638299507914772528308648820700010837392698974971322980763835955638943961666461255217972657437391488645379154009170264798363395814584539634186691068506441800068345736008933854393407024662584310059650255333679619330943172889723862014818965818169093308313339376099736701190455108301620481437569753035454814215509723354905853885098215985630746644282015170531930702156812802704343573928917921329982391317709966851259345775045473602481174982245378517500221687840056155644672646653449122456591981797080655861809140067124366220220004836798792239419558334405384986466197241669415478994315950388624217581386218279768167131666190506211608505155491503792053980574581445011805830438466334930978122975308463296561744923741624694037597151447684137885048875434413180139920352181819283288645874323916947313751482641331517733960751902576605953263977237552592429820518721776458282752996271848277429760083610333527157539649662153988670160636640962786726551726454833198341702280593312574787285880587618090351328198697955877049297546011170202939330304281304376316678819247994065524424911823984023352247581519839902135098649108423376993103762745143354458035570488519816752556635211273954414810303122100702820235878333976622135372851767951416919242871759169706838691938133736926183348874564604859266386465258557769877333001197119039451099899234405916885004749725487082777947076213822590010571111463408692988391400547902762364548894551147382665857030091383652373946558030448306731666547545446837408207007305490004032592221167756699642768577233649781152275216239479576046615024346502229505198983269760981919612311565508186783310793076863891481638321369795798802875071836001338668995099779495957835263843415094529433751003920305265896508407036876318479799745123279589219045415198529123919232156226291828040793707327221133212955255042623871396668566700297775454708909133927632073922551149689941165948624663656273557964652259980130726197214504686749116756739923600064583057765441288722316113213328440371011921554626046002094750198486688293641116922398224923647023780459390867425602784914877325264982556151793857284856592016073358036615537305484402705894398702084637729652911370672775931117878281215542621592861117487825114861168725063528546247507727644681572615288650387158828064186605967229289416624270519211542144015374362141723357079801303704104212906786450912756192135697501491946238835649293665929784581014744641944104072688348944851257713358564555939651818078064945874518897368555580409436089415651654631542207418368428262199968295675823164111531212995990559275483915578192515793797391901013271397275966128593147702666487132252915272411178256829517750772882582223630477227111380822437917109748896947167475992382171997130855742256885330705023075677783286410956491563051983304893445397007637684705636247940951873996163702989504569801368240070092156478647290620301141281283108129059773566466175544506308064473186261643471084996114943757194134947102657242275025821059451009806375411483551134282092736350566834324002836784054049982121681383555194219838879032910789909632686543450106712213997424461452605110391129382090179212183984366222805263784056737991272625637153020996808731901296626124345935082490793739017163888504098102488854812049551358591638290017988260327242415060591385898409094323663099253505767681536402956885530461064797054692056999348159348896281360347226781606434570894350259470064480628073849691411861789579612674733849228354022437166357514414671638284491816581580591802676891566219264467707467983346669928868855956157406995452951355581707278362231154143679661782079245111064987873094192683030972292861693060949563161861472475729092397752510063569148754187697036186908226099024247897119073547658003680623524435463737404195597742043198396636609657390264894022012418933581542099524508952109265762668690399284447809969947857525685185283122455280209526190812551562946136718350263379219204653264989058559538080584440776625412591050211474560596791086841768592352012227168329346605295386723128261038749437231197923948215951128661196537095520192514683342036954940221825071991778642948525192986767648238151388500935794863942358417533648314959872430435218767790886047741375924801695933305872810781123933890323373561724226694235654981387786344214419073487762199950515946054833995744475547662863519347914210846156536224800685512273959707373880054641769496583158712772952669904146521135893925290933310447809510063606702478742742613844270300971998493269333931026060873319124726336209756717382529201154699474899643342056084266824180439632684349492195227734348275156341959756140543905974061712299948260551824831669247466811371383868218602804465066984705836336736738661446029031498492064234910754601557645746876329431944453234751236420245781558402852269939660531140804939498302573825055080871997817952093403964553557356808613016116584126519161986573267966341410420719329964464460011884416411796907659769182869315584442975404249669914708421161547989197950722089826484386985159560038165869091400838805489606278973631527478743722705750328119674995438400018305104785305257323975796843510507487079445907140314981569402163389136625824673944627905811242349754163143415929508690837682573346853871829032135031912871614249276258888479517335771842422220467455954551903342474094334704006562156173155092678196900848071548567889392433898506758004925263732593269060246355475025580944248787793755829199431581571278094980765855931556559603709302636465940685316967447678899232749123738977466576901964350272483907877303029365610746197437224261109761917443904754173529332075566927896006446947449392632053368010785822574441700577855525791849733864367637555303594862272863805846211384212163891463680111684180400438759213390932479643032422079347192519320738111247764756083359124608284017513869422441460238202275654976859514355250050874001656625346624094988879537328651719272073208606595452926024679957962663906430961602002759133533433130128087901334687582751779081064359841420499694347915097978637120617409367468031551449220802160975191588344521088765505663047214980952273035618082684084232247258530015049361623332236807734894122030787426155407617115750415688427170883748559739058556799502615643622248016141471432102240192535967381938783895724615244302358678205345588131960968654452015541986749208035104872466815776122826693846630698189114610395095268319934764010786814759165184360931528483176596391576583927304069002110026197465694864956329675725427816230059737988077522575546171642668881534968429025819417277211891750801105635008571147287772262380858330957940900444673321961658093479301702809604000471277741076086306980952426074335957769552373231817329326026222050613350074260944405369933198006493883128054264126602190731437357478438782826821073944137329119175522079611955695498747508330456071707576255050592852725713380177983852454139465887220632764986932429503542372991443752835122816694374144782498561628486135689622582160421205191797458671599052001448924220615701854380381968712619710473491917124059507789367562833283044740767124734601782942369609472125446511982759175915857360455644680592136262975602756695729843700505611961461233243168858507085850105321561076546627356705662222946522895683666189259516445396864740390329580216976417571220927812266107652423434143032944795427993831772647548210087536842585845949009756914211176641539554756208674587048133568930333263213811317947485800260722664414106576359262389634720406573747670517646125747210833865112757202290773078290568954549623217543071307231898026414347136918611949947969407667349411786913044721207841747331431530372195036025903510666111347222026624912271997502524441639556359593307178932845621708224852190553700932643337658924402300821990405427419105799873257791947168884700463621682956557052964102543437745243113571242841326603087172087670720077557144335486985501660033154447361076703293557150810768886166481141698798219998051908268027403097229838314463619239630200319750482950836997277277128554223928094069982210827855698768338327525786127763253064322912978728139064210959651656011861673115152412891148703075958014521799786180519096307929086194875315318796827571848442255443522966743230342602200981185114311016242161563289844208412836123918390439456105531623385245152142116932214481359507104725653182690465106051020093256467234519325075906844365875397292313479525460135389369921990782029357800110396220598593480222739081541455815396402940203843316390991773244353002246231781030924017736171295064934917344380775072681415949863032442793381843716541366907486258237507731624490768358897009466048196945500088482642959536564089545568502517977399129552872556996393011969161623671905999167805262814744089318725911224734325355833543105163080186082762582129216785335686569136197059587666413988140191731403707638349006060408622531099178413976315108438531776594160412608897261426856779056702686382011245722109233374969784470677806448497684944020393880567194604947437052042150490618581196244169107834047711256441259003691396750865340501993328772695115760685088876715342490049601238875174935780388678661726681499539997226074452358372513997736336636442462842468729818483809269047218581336205857147502177614975966143183377249238868637211915439164311672362345427155976406944001301468068543181615457050265666829247696274314558881785425246323150544065246866579633026227254594970824223279961287647969278581628137691421583606432649113796753731701272646131662811312612356718314125043367169082025092888870524749671894264804684614952119868443057140179225525157666292455406958666919646479103084820531181391238410099701079938314614118516853279241089542556632028163216241658318152187564548458230785004758546950602131851928984977602833069369627952030388825865583966978198533755888136885660925913821472352650841647046321917337107390994124260157883278309668526416032851846098324347451345711315081876919570938504809268328925136418822911787527564777924024430686785983990026229961388653617810411534888824743163166798067816475248527241326085007965428120333287525757401884495439333046990654773177591597296418966275911879814083957914431813068266049077156705210114485580143830373844439060019227074844544092870853563983740187783884410202728339973048630531501478719560055811782679286554476429245104090855005114010782426611763717239798345666032479359294600704842971057152066298076875095694892232688640933787060015037855455564981756368233010132476710837812353941966387789265843385390262254926093929788283205570453759264270239755304171316612308860762503066811940061085112182978858847343232062174477388450944975427880202349168893061273439629533482485120203725080273239765060484396405491220528552716687803573164833359443310316301370069229437441732538831595113608535360942118133946242684451089062649354425181294258836024660901741356907064440741071130760677663674425782382631137247641104481758022284317230436373399086466245358473640031952247359605704639968741239185035582546629854465883702232182032112904951648104299706956109587154680144123875588908880646113207193026969429529045410894350935221111034095596839814776965532999530189974705404231903978082383849600745317719228496693015054716636083108781257081043230489837440167958749249076392042443463859691122603699397457492014600340151579979990389519342398356446249968319669424735616504964066008051977749990361948099087477269739783931708300964625106220873765638560074170425357753989695499850954253781696596870743441798937588578630108059110176611521691433914113315142821659833333772529135199128424012489167604384198058709793211248391736841224046062555119279328636097720184720976704284466445108374482107201576863143223244840704981479322183633168959279373601834519455827869661733598487049263075082210495956551655787025818413680096610181888166669329108793275808188997642460755185527370096062936662391069372354087864533586936293148508916153195814013430567864442452502341864559936849917131609071024567877549228336880722302924789325053031618670286322478421178113937457329212630650955631477293416115568721534025065319733723341680720332401473056301365876076046834883110372856848523171290410300329792773579199305969260168835555439996398456789670132194077595130074567348058674223946993068744981638781948118211698615246815318924486284144942601771044238097621443813559700260712531845643810082723161562686213742517196727522008131524768538612914079419162044077015778368148003139541932283175183931440302670201809023703186941437749688850667640914426908822816350975751364029267796540203989560595145311500198381533692638098597469320899387470792597247303123218843118838134693369686972171020713236602137184502973658526139677734053051250772814856222419468447801612060933659798930027953511368328225289975409616331012391275870698546320530575941926153624775126781017845360869647143554506212605942858650195950172311688266034110524830188756005153524456445539656549433155193120498935575827424195712577339836138091168861371875912564563737989706524322509632536521057599532557335352904513140812400783532299127342721622561609734646003733287642701526557020207219968031175799438714157739740913137008467492675443194760348257717610226883205616094129487603134440932093908991416749200606190424159390724451793191583808521915124097354433919823642095521908653748167716661522215639063814182559813308565063810760658163147386025549121635433570741526381067777415096407573462887066385874109623496036780233436034617141943876331757407758855893739101261985299436222248655724752205666891262365298512026107377625268339876052154413541845856584344622201775256462752688772799176896633355818989840194480802961687764417302802437578447886352064114484405796596495365878102008812455423300057586837824139864687399034580816435480705072963963503615141609889284430138457123636282006887663714405684500859490090934092761734262973656220288855045647378560575719090486169177860366902146223293959011244156425646756370109902184815414885256590675322345787241020818376328737771500441150299218751983691706068690391460346608096009935059685924428462497686798128620407746387613039884919708304322915548180346982609155162052305045941592381789671977096725265383142364201601390365151885696400158558539472437672503864699473947942506378678702996208239637355250850545316337663479318915864780706212499568818646759199250452114298965333795877897209783797152528012973579650715241250461515217606334777965605847188670623048006196235177081972952617323007847177603087118719580835832697870246671348100559339608659218713559223712376213121418020572228429167271105953535272692009396946147390415509627401293548835119556049302814645716088813048091063472715800518610118209483147401842679699307783237571180151500131937118549275320339971826598463834048908753166421155973612527065414028210273909529523658782248924967357234857580487801455760408545834347762412676450863423550924731999363982346012996393763263657146395211116833693010032997485135510553608981858478783888030499962326159807317591787427464486219324845742994830725906365798717761340718590991720892511786140123994298198283328198081155638732659229660274149042620757071783553659643896251491697046606979441520894586713909444042436442418502735052068126956099323283683653396234398956088401331051457130491877410925443328911591920196328811836146310396040179430397033871384536819627701053889163902919681047521299806951670281318951973563864666523882202745391980650855745521523505074383472615557863251396249461061728454064892485748678906962390109952367697967400347733050088803176688233480802739801801073954489734757107315761810815077394487287077079151122179654416561105653383748019824582861934306859774965004926575547531052440440347424725939571591616900459136517665472087516544301869738788069650421869088011021986617009256859442819226955854936681436413272636612603840545257301182537504267154679480435479238342870980282785521666305526775723316555227019529389257671764116764734195656858237168574795458899930162175372094740780771994429862454270157722733508945906913372940607724519848175009830551274121966373600785041090288077268045067009688421815334837904693983727377359818250265318339587755887212041395434377107899677386824780634959147910645376899760103897814404559735794446961903709859638072068175485394582387910122529238250613932129228244815847129085020688667260430678700284026177817930170985465553425672408430165069392096802224409461517817309847552448419659574353556146982957844852721852747361521774054562136805885836004166731474050144016673729537503907861445359051657090354618907751574214931901086500705984066153512544350838210056113985080808343969039662230909448851335573075432173763801267136176409471284643193855477771373693475429304982188700223794064457654719751187430485505039572831917756552336307688283642610486424592942858673701590591479023223791079935127259975691086501853580344918173693562429533082144532016460137787230255994858455931442400398589266438554846580403784828527499000642828898296289140686503352256601015141818373078326057348581454067150421808094473119545858107828001598760345117477408529436268249140221280404115282554070525127511787882046889974594905617451216336185977201114173623296080380250455247980990128498845831075048332606917083524861740832020586081407362664119225064865790145965889393284866267947530103395506167459620493642949380971381684301390629496850331679171718995832405295143218941451907944603007672467986018207087892680999967822142681756073765015059357256169027891657686664284114286447592018854030720357423881156496373922737660720340670668360478812317196209344827569602346975917590304282439385822071128697649718715658260017443310984213389850257102260032666559674038293045834894145847572597194065279520502424369316966169909762560214096988240594677747900275972357789190430730477612967841316120271861188332826149787595166842172923083732052597369245334444171741282564643195760278740661850918793347928842074462074692674644387834812866411245968756081155411330068407531633121860002501381356263516341148738204399563470338738357718911891588210688908726142727743537548349755344170887428649017122357415336478218721972826581294867034433992317402915069653607440804097509106628123244109788429231817212466929133303693283116539788815310164186689475315486752276633452188834943919896487818918194492795655797862124736206501798094030590545272700003124187549936340859085643328958010917917505945194044096694455926266265748082500533742424674924297168161328965509776924755475545688758693634013064976661045303493648088470089658795353569723435718901746990126443504628970536136683291477708510225653656805749739226771565703540936465763396066529731155823574530911868829414638443303951952541237260083450243545584268450884865643223304950517658627613037001997594277353564991053508493724834318561352328934665405819803518651122554150929742939071936676552103764034621344058917091459989054219462247147419518062404934636500179694649653682422191693530495293372288795099520147107661725892634097190569987016479978084102933685526226409977213474026099850942818961176430511956191158150021964673155904053101293521454811197746260234555265229796149517274570824312819869908914080947644410466793915558820727171988689330039204939438826390574604687063913159341328505858132462941531938584021083270634184543852719637285940215515688125328121445752550833375071897164606523012361149762138032352062858173139281493371417198415281331738579046394769769483855036127415866507652860405812832434570578056695231298191729294436432596604408272723825338246801212659958425325216005564735738132665652203525332610818476710052416753232675234794125329436863579213629388458514383857197645589666621495391943371815648751406201321222083820264982048952758750283147257009186710783815628761720024739645485029289795959119214020188229923688135268748102787594667152582026445317380938790552453861738304394370686795938400713654896217487655731892193135512955875303105663171567577915495938216469062875280977970556594085090228865448471864221506877482935333874684600157677505828700341181732717578561932713857038535577157814653539596671768639243056390495430572026345444746733227573422095921232407009858696251707289524857386783357900839917844087892167608267876767432686427333603849083253295577054444798405141493795746830338224457729477970392909482313189636984449670742339112765473855639254739355530385116513773033929497769846434208592989150713633240400799443478902335508486318075689216485177678457589823166819503449927033843748444761935394851319120000512776874197518985665686696178043711339265615169149756838701131124518435170545357970998684311589911721492647329849294250818067270309076825843186276292375655278508393008577759545836795481862492272336431586817613601273699021146450609346681807597241989915199522612747092586091995320872511931592003183648632530828032000030259335695482076940732491022268144152495084783982312546979255779081142549513863496599932844713911598471677129709253943629900259283695396071697676737210940851237123029643581477982681209988046100921310227589536742022635591255173004949291065090816554713327270567011747387862782408052709514258653451716553476722438257173764766244200196778193315237683550884068625624765477412497563704335123278935845823548157103306349915753131715857956051658151365909637158612511350976615111377499107160470958448500339015130113217669782497194860370096651366696714219433826533448870570761326733994328388234324651581255861552744166592732200917907079719464102708967015211751268044689921590451149020332225712677529172183561502785765773444475288895527309271738694639309665540565354244889579465303547495288875230331112116098745308080302459445597116784879019132245160308931073668849655256563739729394789795394414900951148465638343494253143222565638372154366216800353694896663017414211033876893859615107814695916995495016369318866097750537398429623690807957436775800709237922900372238420792256931617510327000406919046273846778058299129834936731603370891928139661060156798310636047453006641494436546536020367437657173647975046383121818880082818268013883247252255667392037722177568658916407616683186605437812059815084202034584399865473617038215350869077435924518316663202084955515139083185423215317180401766917229787842308757218934579590821374133573993348232832907590596223305946737995105627311945405377997617502798566793920569943631943666589416441520150834173516234065059856276131417583796324524822379453239535883775845650732955566483760745261297777411512928096563074352692340451645231555678838510774456986006181370949857059496723708414641196122778000663746618284571514382422002401664777452622940274621236158455701040556802080325508846864886980117112250458672169421099514938050303342803108352221850209144096006146639612181181849008161403973598911705614481052205597028824802026535389325758723232500226884885548854923976663988502065443456204134691794473613550460472743705761873991979140371292697599123044675163738432354090584443737974712187873779813644392206314428394127290210004966841170903500018149140055573886784656158536309131347749085560696516796172954335110204107835827557144510764671348870005936264371499254446035398404626646733073965234977429942884258180126134489119610588850465096610135324995861950941999179687898173301611537638903325799872114082911336559866730475630455518883289387217685039031609804681310021236003681175339797421692040445132504186145378549151137499970609344345757092278640720293798994502422522168144633692537396944102596826897158411807598486312123219126646857160590998761585898038493783562989090063044700385990991145829944253216034037182240226363532056586305646918589024668408768620234732904710591110416417644310460981183214960268056536272650937892685421109007107419123150423942028357021243360849880553330121538862036033554649653694207628008986934991658847123813336409784668476978122417174056790547813059543048649199693926079757310664322241686355205189354713443807894059754375874298228100413060045329376147185836222131814878465019933164445028863196659404670527259193090190776622765247196448770416014802529222689038587500649674392835566766858397121343590503005024724302955519181715558837266617022005584836312205708755564017805212268567060703635614261425021962532655286299122821506303443385391749714510104757387871316275832291672842947257121743837161153928795815944707323303646274400217575499376289495512101067721959193902437381425768924774617950240732941837336143518286037280241075357452775553168999961137313455295686856835662503016361531818838255676375962253703817560191676659286376836211004001822246238518192972002809759897723492484500047299607361016128981021724548835284782525617378052331340052247210173424839584119011973764590338021609409659847191522531567876997534741509005090530949001409547452812759406992393152709787748360053224829310550639430058857014402222566141933443624643596932028739464217995128086289219741602943396679326494779743222505413645635872447705368741635645031464515014087216523590593007305543530201741536248586800202584081709895627544953138165101514514806362807097323130222290030041363730297676258187128995951147195032866592782418054709792834277464135753302026688141673470048320629557760868724708785346302834205575602270281366744418449011980332426160907680957607919991823735348050545134849134052442621979959733148461431509917836897251940796850803857029627029068156229282213679063137091880651353558671703127530176937676782241950576071980941840059916849583116987123014143418425357945045687508095732876993169848855037388119976439104200837234529398218223677984773241765130398447354643973201283634729468519156857854115109012811942953195385372815294854780297676619871816256458377681209184381486600307414723837564172147511425531703020105054865635917838584290705489628486381093920464292992856299458991247022106430062713514543219830426477357283235171577303389286103026583028012280234646133207839629423063414214760581458953911286419875416412449729734235037729108044286624447112817065927920725332213923519050700884739439616331655835661988190823259230173280653811372159500884004796990394098460898913076255544723519511349588115298075315035479510488625680455476796063785523127878544105228188480295746467898485312411341966229416987162844529741769011127454089936377818800316829752649540880534884224575629233272247023877630337195333235863371644157137537539503921370729278015776851311938745513764796693549350259534439080637971226011796982432155318746925749320799515708410197247996236116588560414179593296638792554873309359998041504562071504089375452540399413833002616534290870885553407951952185503750860710116732773135415494171444062564481758175600526694413184214429653899149422689015776449572800065679989901340436698378899682657972000183291532917644672772745911137917874581335869940325555649415096253410161786873119909917198339635322132944845426495637340082539835050087309576018382118249739639776499585353309250800274498588879951797540253140719290569847982881439864845184295456775407914248384928974942378274415317835044372783342389305843592224411004535587164077527641960497876503233456510863293419843440621492721485128134757359307779517336656154153929774402737982100362413512120735096862498170603806006889593900690755151577866724024035928850182738123288431520011749756993336841233159479500690408289065229205433739276656137914609599138236209110817246651687775523672291681156102459713123337470838496134979671423525993487768969304649959457495446727853293153334979435359810715032708305015981157122916261802122624977860635163466418931197539063729223552082139537207092778506734692228688818966018121490567422654604983846123068689354130174261244738231470767661721212519334835764945513257179410954903231450003507557822192736051688905372769170053236188405114150856909250162366716448188203925766727076840242917491789158507838817152874706664229248286695044530006431090010109296952021390412302944670353899477522194449552996407747068839883755740441688597169988038707916253454907552297487352499723982798858917582682715167476395823438202712014320264977729390835451418026089261386014029134059257233566303988167765751946683230928723821309064660631428346378368370665630389840409345829399609142042858401835207206075845356536416659190037289323938104405497403513350475485385811566623139949199621880372089011311201742585346056828909609487079342556960734624460712072278105200734372116448876972062748689869281144020877453945728382627532753614700986133706652212691034401983524024367213658271971724456323859090868441293065148512917082604369045963790743395101371679104785136093835860046190333978591992758165414829435130188927563261612632838076326508285488607368085068485128809256709964993707339185524550105046868592269487691823409820561404632066954162494438195468874926107029257958079842060580687247930385332415078819948686756400325017644244219367224141998283284525435805194147123225801975408387579812265394342936890368666258362290772094708975613314063504205813442172552185754214866320759662538860801825576362840782051211039769327374080496027679208617989633276982441085068939162855930570930888701099274736006535648802700877109922890796641359473849755836630802809486228616379067555250928725634699005427835989442462958163592212601127935670984637542390123177839539914195441803868813800064249547130973331295700690868297044241757359553262222191530380902596959855664691656566071955942949784865687038258150126448679027137104547113644231654510784987423061171185815547471298244085437605939031766277988444756060181327469558969355341017597377044470468171926664761848610274253390225709464806627880437455685338914100683990495750156810432068606492264288408521751287436489843126568853050535123345956299718099624910062372660807485338434559071179140523524082403183114109216448275306417915711348030950374182467744767215811465038464925440867313747001917129098847756254691627581787117982135390431448164370436972909373198051887586678869765181856351948217254029602711948254693441580500488112874773523357904435554473250632591792491056606598004640166761669130787453360972862158018053705004493919105652452634103486814888287236884456682940010774577940554156774074081455146299121511240270872546126402664989660266495419806422281084021027430550961410293160877934932399771833044799810458937296553953366275343064100721034476462840370241468721078723054713566200330617373156781336252741429785220442082726036807611526240004775306673002079577842882987033637605629062145600497333643873665240648699733301406627813675491583027058848298792114591075118884092203160143415984844560868443454501559136214336139584583127424168148118356292657460338137388007592132437041186460006376847239129945281655297732487144521639978374878889745178644478168707563091996458574180414663362034859602914251813874815805486802006723963201976098600774857541288698316215155732969340420735792430301512628588199901411511140255052110388309019216876140220197787417011380543369546142678929229757164338018385489840224414428777182302148218760456136841193666948241250312454520373834880014195861876669471957536385500403632303602890355767953209991210859029787141333266766300920135752987789631781030064921546590951316153606678862717742052794078818660640627353940762589269460563543388713502621971582403884850305527394024278104388974444847596131945201159518548481036838367347710298089011429228119210593149960693637449661181601776838550161122344218196147408626540749561872965259101997012501543430396049191053306640931318341780269191477404215309712015841386039500140165682478903328154042199199972270730591146697594114270936827352231612079187547742100994672317858316047085728865030109741678306286323814226690056823572284853992638014855889905804849379856941916461850972065707090767053552907502725445321087278810954285555590800953144639026259303003514481075808735587207912342343705479592150657301022129567838511951151527164730194974652386722570142331934259592751737725564566569026009218175094454102750811949472412222874767204485994806979415875131605320759800054495104879840692934263048975483815053667296752633406783144937833175961272990826557435262766563134668027536268737179808950515533754620196792071280897423548388313945953462604029384427428154169041731652796916365316012040450338863109869299516064058433670485097488593134476775177952884191369594693047499342857554187505368058344573502562259926251820403958291787204626737502657856754847239428387641831602250464700234615566282670103525201482693785830642263473480955443494868465736438342725619352891528533332642510590753462490814825443806856867723647781748319678656933099957494524936227698526618503349665369970238823524231338193983944570949327821588649669857441392665907012806303748879710970871544518140436937895944620310176535375691081382248687959990656107105065422991413407550169399262022136028892979335864956201267797480303627395149249951911624035542143211399142491531136018579111255021978782672921028937896101890775852314502987266165476719721386668560795242806415778154972179993504708568151006566951455699497762612967860882664636300096189245340203070890341546908982702132866844670050200621328433698619875387434179449004514081558553496729733325524577314399835190676536934368277804662487406467238291016390913294559927118538555252274078598426776701003040648708566874022369050919629370298916818626226825920569529325492965171400864279987474972010161637449360442858528531253454048774383694294560702369184870346942904763149933413774598766225862693910429482488869142518911749732586972475191829721339790280834684322360917776534246455894473521860277524418499989035736454925211488312919676584369439435928470931212638730446904971213966182551530109772613837314838785099120776231795045215792878154872244461855446873994035052839546620424867185855752513305078922896658802382009891039778664321565902202560435098896261414892259578861949296071817222419322814426614556073530250570314721026241745904175341393841199158328738769681369941682612848049814127711889603531390599059973880216434478641969544315923997156702390312116630472806162556272008756695150302679926179907923809453276517846182982817968697412036154321063006052226412428623488007949613655078878678166012469150334609708898039317872617328796055804482378328936882656252038886045558822730032369126755396366157067012898774381792745863779345279682603030554827729707270228518573731853552705717895718382807105668028236986675493896072006095194192981630341301614780354360220376038777123414786738461299116815117045535855629644987839877286232495889146898135023078172392603104351065215003097167289503478869390892556768290742046271405825926579008354394394837248343416294146575331317171113113878271584329372996213684191792616279473195025049338968181571719317267994859303218163036974891316833241780234779489304064635993591664503675851985891273105324595519318081062478657312867989980867750750940539472155014141521169703478489963734077872291418646573638021925931071301996959827118100839456067604323747137353537221579207805856649890605115750279009854427266058560762385717665962622012931834678461441098456822621729809968407775906476987347198602172889343004694429014045182772778165478736710849639671216795516174265039037125967801283263129303258846911925959312903499861755873529893589047859148968037538905798177458496386471706135766388198803772383605205679089293495209649643573047490029341350727718561266792447571708569321245649236046104032602793150743459107401180794949736217629631988511017083746671937361724745133712638635160941941465682295771374853638122472052364618229440546810912687620469304288332260042172551542357821399846876419391107366635950280150722596306507068326551863103200843552700598918081359348759050302839179828806201527866430515182077097119755559466712347500114028769401361422208637103525962856916516424966083264801740305787135019814042227585713542154279243594872282798477151100688017162926774085180309689699030664970234723479340226743345176986826118609320275141112130744246672583614569655585990866159164570320926800640011946154073886459240845080824043416184035000961681764894661513929493509950938146154359910982238606135270126471696585095614946136668774462287433869176971490717338426220430209430777051848792458292095275786141456975745436655440147814659954185980456199176286222995087641337634647672191407848082281623437310958263306998317898217480192411448252522891230709655420228277791777253908448333976171219031067024077288728699758911930059140406973701131520193189233632472838310617200544172865427023918409359632828361677224552104614939276688913027942690607394438674511025611685596623594873759022709309764727264220600867632141265095464407490438073210290874451628793627627986953535867913653954584800048720714523028269592999991564359297050019272451267140603339908238753404736477716781447075837391825586048926766530885666702399845163849677786820004266593309080533026042118128458463652718152605889271327250011676224454580057244116504494063245777177717814241407555994951496597151549225958596388794101480631348849846157636354113514476756854115320708791078947083436972780819808655791973551953096166309392000593673756129774206218297520872390816950269244067756420755156723573330877387436367238445406343415203434430674805781889207674228094632021964525610257806218946580783770563237903884257656521072249942521846963297284098047636815197858813042282620808412996666654856453444145033224318536470483578360676509723878034713172285810514192297962632258781642529111403060673305203795664410839501230952129660196674353936056674457213916889007658201342876173477251315372809972013136269349199727687550572819835749741614370913524477661048315208088910849352108699852410938332949257426430972185221708421223563302547509422457823268595485558894457695284228775378453830130310024707103262541734160516764295879174790421826036806482213444969805071442561201056288377652366168607662013566085538919898444272368338102963837555138640819765856610734475168084412601423307805300715055195844839392614889818445560940019474641103230185428492910553420763652579555008230925248485045913987017532275673474246580101741718692627256058418227879402697736437244439980937377301612320102976450353514963934679569334286091101854636591608867630581622413624367521192885679545810957266223127114719643913819806837560103274813419587805873548013486289447007049292409806730177965092320447812777459566098752978915653660317256377298115694167253470725973293722334327107901968651017070813245985394666199595832404411323863105101284683465759438806904166637072690934127793727846089841233535956434021734203232387345325812501635128875799051006138444175449169249591522314160400903235958831346835257594873956219224928569294054783557215943344988743597038947446646493118260333167786579830017086474289817233189465057828927487352495717198682061603763837341392865666334850824718920286912026396608786514924562248708385311686594266565704411501743472113870443089411926873111234641366023843872787777939794022337074220575232646125908174696416148654039087868280582905432086627131436601394919892543507563967304495962112489927694170426688241156649943506463806074185412946622198212749879435934693309423372864677117738776836069341626469744620599197824595250084141630222076784435260345379745673913678796998792299892326612656300930700846994175199715959264308667939714427407141712026853056024782641191305570520749600053617479175658875844742419006747137884975813086053408848917521216107127573585576867896039195506640625890026161158543910419943322621348404611364411478665160817738484254995154830444124542580796108671223257796978807314907899458814684483152497084783730020317314042819043425414225303886632235207854952691715606576302131576462245966189568007977447084232349258287469416295642695374269947915788647892414111885675149469211620617474855768188511881169114810561338964772742521857528625998707644024445612082377207702734329830942377375435521516732765501275654082948783693350115737257531667862891945191097973627736640509420494328810396662278054490939049984926462308531777552757472219154026994057705936670441626437606224179123046338416694679977550365567957903437979475054028867133335159063186419131674082804263844821054441893445770673549978606795768906413298466319915773266538293728931765546967201097253603603786097263220176246264932166861218751539360570677013643306478028930670500641063536316266069201083998553054571084704883347344618367761233936162762344058755177499320590499387466302738384552506283592460484121917013210121699396188150319135413941275030047822286926063261578012852943350354131138925991498386835843997645835055484668531118153964191250631171058695553891058999989910375832102015911995010485718346767475677982247474242964930087051270423837680656045436333818184807056034081486930954258177050772691213820681844117394952940846094578063771293334123064766913843814328808497369961075587377601195488440139344587986386446791481566916101524551637455876034925934008018594152476817761555207593755411611214120610108788213248052924476203069188364206583329186808004107879130718420135564316748641724400083429435038090284085907666167061302486528015245674608577956857338225156526907728280337157647165569647457962650389818857303894836715134812230720744422040712334922328120717435032308946653220007187050043267843557854277257348503234881411292065348791996999225032484521507492150739443272826525844770926045787607422685350842274731259381937841124094671531948669730342825984816472043853774793318466677324310499738725174598667751062644706677706251309428469539003369511264543126796028411950250706150628629594504356745801323227963618083240523330966506513877494337373991678920684711548399171335681416832414527166050622364971926658345751966670829704657238138692411779275420550615855062659275074386021196574842279478924748018389329591718640437894735917137904104660244792647438445965731184575622771674022309675974066437316052792927542868686667561735523018900562046523844366931180654684267075300092206629530624332525758808531103344614276977903371823662253014897944408732963399217011269656945942152049056532269214375142439254621603456970139483689198950488867353361454379444388764613544635152348238871659211856027909825466914149437271325479524375866583321528746817241579460637002563612551817710542187042167720766573525638821062212337124510107201760589696881908482991685662201166172109617958532953230875334092366706340634963207032797018952695524596465130266152402697721332212704316399215991817997608424069817744524580544315640868323345147729720509081518741645707926760037752160456379049023454951486307007110967053553387610775078448027057652538086231732966547393625889803207722568092732707433690937668618548938038071024171004400973902868720961993767432237163795384262016329262124292973030384477211532293670365620031030335672079041252390573323518330487583274081884771861709520341333650150617475858414623085647907336461939387017904556822620725423173517480270684627451899960715552156009342718269749726718839061451232809505799177357342778461114104109919689157796775840669305313423726083298921224943609578371703577064356102274291306112975523638852560798339426470249629323192263269909395685669203136929910422356632355551624004648520609556696824179755594970593015994016173053744084012033645146528851723312257075079405107397459859572945386310250449939313421999708461637111904586836148691567683735999359932535058563016571312958639325373533125363204974668217239029579252947130524553085667289226019639731809519775930559065017778252901551831587179711097566165513612940633392764997384383474519128269043536789692413080277637715627411203150622072673987864495277428039599652532303556532314712821344560414226024246145696610693602871030494702160933713825523914114969971910384899040784129197157201405398223285037640259724975359597630359656947842084764594245770366294612402655112853841500703443923572310474502269316090553033305385287671605094347575478837457902662393277764187984925334084534316994161104366932058630986038227488490971143997071610496351733312203523907578104140657334028960561559848329350223122137434083094019828904065458267420188413663574989017564067598683758573242540081814343708382316855992835875936836204557948214014611041247342736692756945263032865355056900060221139611729157347320723476409814236174398403002479822326824221146443872412383295094792380715534177206369508213561292248937592006718710166558755324907234108728350829272482972503878079770301452459650138372393737233267779557117924881424754632345073305235901364941412262025560559893462580994547232050223420716454734236445351008043158593737958822193174464719993653076164298631347677530441172517817208955803483364805673197435139443180377589513256661702965788341612847954789227086768156705260260236800749340588271603512892242895577725401136808051332927425938306348552253171770268286051301179326334830575374579167361601165340534712999777211643227556332135650279978229188038799447582771829582984286944491417158741672053012088498648467515255646134793510021445220072975338345591348398414464805301363383905501840848794210765588008668426160925487118284351900678675336267264962897279618197502988363132570651038279037625327796830438333786813111867111482476678107708554904850586295568195611415862082787683418708338576714282064049453315285689471482694320143812549945373793575071771245764936115644935857780294727628340826740296757844106268783203983682267920534803856266568027251696973829842578764933984406298530838773259297420886974859891835049361687853347943506740187577445546812370071477542806340234379689455853629007553967512501344575163559466374574418059688822132301474065351974665360998876485413253036146342359523007548553438510807560128282789475129428411394527285913416771590097237548906797786539407161189730099687641709039741305821992619077188880939909268107118546251897425786383660770130155418529480323769600208242051555326841847058210924228307196699926911786622665069404403634410740641318684832009730996505610713502895912676398605305440377347455446727317355265639297243200516837610141277293030740906068390066377387206244027550527126769764681475092416077254402238040672547211623792297060798398119604858681628543995967344380261247087044876635759119051135570113301833194906066751176280613558749949621227538202892573811916669843611899147774922437225258380751418364840837031926401790969692818317333693654386372031795192620230462082512650698857927609228400599159674869846603849246581596397010650280938922126703470353798103246297052209052427916768190659014094282782833424320233836922759095735994781345004196282310863725639050574863713243592881023413513705162764536059583014041062697807441876823487692521594898243823434619440918389219224538727021051949946775865563781945235376411727579127741438851761280847175011167898778754855463565747724347710542450142094692035619627019143987713794885237028639138355914940611350420734666627991887488946304557547743926488324932978975662470610052725506764258800577472872007899745709027984627279115481504042225585451238346152680786174479460152400850026130003993960229468437925313928759981828188970880242681809134067049496952749074806021420026049080374397092217011577742592898539902565681546869352725763915950932258323399115443593000385635430785877785863548990466658989044817138512219423447587896297850540735535931662080508780799438947033404098589828284535795668144332248548122806232984763239594845090980291656261851441442287237219036797627988003573539527280464096692390002997797503159881378961489776042155336426212614693044246087881553896066656598592781422652485392006856903489746094110047730319756515848592317087205830468225064358700213361137313617941497542514566049978672760330967051500743759819438366575223900079486867809684945076745626448170412792957415057613397277276468681374952023856500709980790948218121320938681541231533557128935177748786147167938287863014790574652990518155382107602859130155970623858132756441800064719690857379238668235079633078471660026450720604697101700790787587569365771906869845732100020758021316586691006550444481758504742865370088595504859046757763847436911091960408611826787038175129916200407813905492704866247316521371226931525157129251964787129775669243299992474495926684570672848153096605049159335589072497314656330352808979313322635695432901308728057548290096799213356375251092839158911573067697801846956506865090931384099629696523437038821492092322586235499072254205960469784258786759053236522898306489120868329377481046452767592190629765592893498926410276481748936775111133804396447381057748452200682937838827327359021398687778874968674614594169643346450131859047197764215540752395195728868350676788121111187232859824118826779078235469857981962729486639371496928345779212227583614195092167093063343814939440159495620344063659759553320594548060065967590044365179318068792096257685737504176111503588946274296534387347996391954323858817206750802382635265688005020151734982367932304120678892924941464872775615506592515756874956878191039748465655623209973659639455027832608582226909319761342402692861709599439604793605486564926065128431438422926178636216791375346454069810432406443145196249031919409158890793938064698350264980369790123464890059429640284725252791606250883012844719346885940632799322933748487715421825439508226399032769646616876987957761155495239699945632214272460790870347343583727110419631037570528745858801842779571753748865662819284606733097418551681007251003088941955426669191357625963372471872855116015456340159152517447066609997009866793685116782011675777659183033099829909996066413102992501130577014549945850247068812102202455500757847305203238876550690864846969301235266886136394064790451898804482882469768927391096833380325537651324186937483644233088924487597019518030708872076544422790781158670406189203963224201326725865653086719930978577974402859564940971524059580911560977417809188354007977539233072705308764015022285878741056309696865125350979408990256553759111164652309717460080073192191418252781076643224439096465093916944720604369865579122326433080001777834770647747802293418889548669384093013413959301142977549288406636767879908283907868755764801196352718038649684618735568032357719791063685769412096419713677589418089941440357061305535103056960512653041649742641132530047815531998274465890980985875808614713689566162321939653792425648715656120285216930126701767698569414720813432696316148824205268144665105303761827389272733810213950971225586375639207056533513277385839459041323301403601720755868117621478455043008892501238808832993496908396173137196958511804926031873345724629906268602491884543732794032817403008901660682275698937991623243911288058068580051003509055728241603298766796109147651846591469189022325259029342102822699928874485202620221593257145357475558631642410658049548731612153265843934888491721940900458409141004017708876842853750277752368711478029039563456017611185221051773227076300459295279921896867855431253601000126224704104567710693779895042339718239901540529957206947202746505995226891994137452255682589717565030380585680447354256927292436706524086313710808179557605211427075904449363552808524051147627575460361014470857909005247669884640244698163371110176750959802665580553023551678258978956731373492056078073570765843720634443460494789336910540181927790929710032444882115964024099197763714567953523696687182985088910111083946066340509163344511265261151170720473214532770951060587963978514082954554568665530722294586778425811722080415104230899621851520205945262167317081124118916897413003689857210689115235486075437773984849175485732042779425311126276502394062018108693929061916826332437297640645603861552206313334335709453136989366143797773489568001993411596183063873930089357450555312962448916474712152209448778966329743003539696204264225163241689080939952509362482454076021913101230518288624968312770368288141448850554991690208598920943005410879386707491288297008799496703571970053635235078305650180721174836293676725567697225820234209423291977575013342749032739020771453970162561223359709869113325311103129199062735444970065450758810305116714381271628858614500493509066553782102370667446293710602082729826410776035313158723888001321424461763510525294411456246381918628645493783533935217988864269850534589604559654147960134913283979480445699646819358710174478372830633484610042743385894542597186728909065968420100180915164901248614743422943679664339848948260376029941505175273223969705452508444575578691202719351003164131115651524472467697064569447073564985222341885562667900247506041218674291312385528741555182442312160203361202191095494847791247482643948840455098616660048684448916064260233708144218902783815635516728134294259434813187315717761553117300668153521840744004480984230568540054934316522246626455093381638353946511297257691883522364133073795269383689702106646100047977421515461030568862649758791629960983877342855827428166276058978035601860302649161718166898480114088971249939354972749769196912634873804972019037296113262261557774506051074332427002257231327111425646898903512341769412384664839327382937418311687002711443364089164927781715139420435930145554127200682084056261321880888678233809193559165695125729583088952458642506475195006577671216695230544856236427289511851503639500174876421722966376145721344886998303611603405031460737304393322451997420293362606542719013107905190217874296262904524396987616259393676288835927722214799089487442696349972265669970512879105402643178395356264354093264469878030369081637351635045197558211603536140362998746050277189058123499169469260610085749537022366355068917913855814173869362357641396303436816639730308093432617647202711775293048703472183902744053873310573553535297468218688612207065141074986488657416515158555434128177178547079891735622010042115570189912271527154851507789472700797915177856892457081966188489771422489431882185251713437557551500779489916739454866555580007213580299116873249737512027442548412248396359944510979102504135574868760616297620205297780893046716630587682560977634849907583729641468357890224068123265057593576716628237636319525295222665224528931616624780032227040973305229974732367305907812224654264575568923205219700044131409835257707480311468568870109367899199628162484851653033863408055521975887403726704477899199023941340358860760366385046250744391139746723840459222952704595721542124820125864388824227554373133207079125749922901635665767684327687865103023754109163691304160035461859715123344866056658842455370364092051288685700910273941569373566515989533297565447854272456693321081454764950345671663458468674654411879303382035481572870760970142998937276520529559417247331100157625698005953273716767329339971594002490319344257677958048633482472804956250174433345938762744090649426919777461361506285982372911979708516893690490588646337752376111474777646916803027613462708769773500743075951828572382339544890488702869570104531069441402743669782815831092961901120871549965503530419748496236012380701101422906135986465506809040447605451358649451600723706160716014630741406967723308003248116649775664666217091770015460406114341522371875094873890913093778094216954142318922782796893354328541648692515534276702584302289372605387072735196193088581668243195725463727741511413397739970329789936143036996968719370892850044723269896961079387579823450185035058124642594295252749189223355889814529534494272566711573744288064271991072313165023200899387394044777016786072861077599364607851882708429463444217606842651148210997827699353318521338626693759096058290152352284941985206877835073151600708670663535077745289143025996358939416260194236168128205357177234553149148893519954036041235911762536795374197179048207961308260378081486056536874970790411708887268572680318282698482500350779088485198140862234127728790137865162804134132065657109904728530817325233055603927884214743965195099448973361178959010937095494261722903813513206340377450763348827739924691913380413104868856262411926999384677837816487133812649149095434101825757141017754814270247436389614773226394216258532753319764792844173304832870536633179592191776906470059093566403135975153441250912724842631690281064428861779095061987816089150742190284899119653202527112664103604127576239537282512062171770643452343953491352644095726836489134044844351557710903251591549452152580213728720110088082396104709628071678830463120714343122361912599467699347350156021004999850605743966823145033280851830099228743059790542051710220080797435046923522359712669694163119218818274522758942671371067070994063607355489923029937071974963829897496464834662882753062622945918709329123071917805569248539597357758039552781078134437193928972382922906863603445627435882381382197162831025785585965714201107566816879458457735549391402115884768338082014803237735517847476647693223259880387430752481431144169919839806799061584928858878529110228483334427128130105634484570919448332944807500812685242882285522570692331411014736836267412202787267648668010995379457198094518585969798961944476264116498835809903844561838220176592024264414860043544283948595949331997719196507404483522992399767686807594436834766640830586183078380006464951940450927101388314616331953526004018885578094761559491363467252246121797440115060189849009884821200342510168382808889502864518877308375677870381229311825450103899315974609764258039774281284726349846556562883383832253601217141820378666655477632217346303905599445175951025085720122218797388140846718861665411837777651748932781767449079420064553996842946325675650707228459128183482012860987670236139015174517603684165697459948719768899753186757356940385603698983365670211341448819933435975080737068506559519552800165168384231160993521938371601020307057157196915343929976104286292684716665486184851139577182578796974001067171678537276344711442387900967506650882360711846893326781089017841811738664086262727021234367969161135333025120507099475009282088773623006867263975018238020796796421753378699833393479481547687288806758284263827609772924678583514823551984854919145744611419398358779926684594451487046180607078895018608921250132064324984560117486617443580713615742619737010989787983046872351758008491095877820853031247447230462839086504920185996465904742134779476412689304424841863814711555926488655159926286961881531058590813222050742530118056090971445330820305732592763962983187545079890720370949249870279159629946977273772254069161967357243843542156942943128722163211479296710890615142696455027825286316078067279063922485210329850358125938311942236202115145875487173127079839622121714349463702507512971361396178314444990455282082850282586184645346365858794230818095840607214569330464284565071156336699687062631310891877475556753045408651507285077149592517102523029716181652754088796903845085261207106473918315433584587935741380847756182718292010329041950463740277441435754079024820251685077242972555439212471224552181795441729497148262320553462666744505350955884906803447944545578951997170780148548267598521663520227344982713127995612456398443428539724719001187367093142431426434836086274116541833351205721872066056409297747463357742231055950617133481644794278275565020470132519517197620822205162123193794568255607554201755857181703797905581171482942360834681366749401513243683711624321245744136742788053537426734181580137113820405223772773205843356783902970113232694724420614177928632949264124125853719912599289964782064316259196152642618062526331186323714525775724812887260430817219531977907636476716469728516857645648077446450169740305668589932279799033726199098795252739753908121436172724352305471876225804871209266055639858317957008271668379235025811206942483920580692517794443269171168924929390306762035737514593619540333689431099949528788489641391430165676326593652331361975888578241690787078108993521215066246000006104625926260426488580118187346255271740865854789061250210638537095143368508825425722712756431097389956695884104103791940667525174588288561283733710932279850670519617192304150146118436950569656054303104558920495071607397555014697764909239208139615141272983083875128614135495619583593204704663090300610467551474071667430359657034383296942312041241638129614299507974911036694586600667042396578323187662516828700958659058248950880612332602291532113531845183049172862686702433006114792282759967021543060697306824901815032352659248210166571111751384240884119167198573296309883555712347585721488045199204363439478718241839639709317601299287018839900239445419373485723911565445215620931175739974958400894128548756587215025412173358743448630627054432125632584357673129581132202338572100440689047674000162503535835913756546918584536255376642453377018937990637936244527570569929449779765391824366571057349865558211659206468562788871322037364072420446998523293423485786266024589064419289834593140546940978211007090438998887125960300873327763136997799630684214123811674422439741208761616499448221719030833866103558205312337409275867685304946248001368495137822083363351556124446721514882522482175337091341485055377395634929411051100594397336780398216667311949885748335766699575925159210216110373863266994639977922409626796723127234173409992864110158993359288163730282746398718180616157939861992694437367258836218979015593277717554467504923325122599420421685202563841365304656808007532668417037356136720554068273920080588900132537409048291262984557894863798960937627530902670629554517023062844498618494100566800421359685428353637730135566007526880908027677655562746130911894874759940640357423112115446975395191222391193943023489560665530968275181986614323801291710748048982307273014509221809163793481215367754444992030312457456193552393779455952713179316426984523608789459946302975341429683617525058965349393693480405445080099439593375900488528945258860588152063990601986496257140986007527783598784243150702778022048244698859948779353039413831808230325274661744396168831284528997324750263052819162351027870025319763001904327218183165227516354021672173249225704482362926387663271780760795667765415212571138149119623254563427515201455837568708999214830361803524697721006563996608946708794725274171395915609038029148494931067427581832574799808038989326126694234196544266476346418424420196747376738281052916257027090757294515505868453628696530585103899800452140929271901673470880236562125069326998423183247521891507681276302707911775691509698293074783923217133204208205931844844047159950165313261585295594917440753941570191470397561610340231963630896397739997635333480083706214840288496496598615207238633772933276241294413308666998615876946523777864063839466117611290760685323820877820903628517300260465282036930568605827136414580344638914156552512895781144050016553104543237076070471051371487497046547504634241478250642237994221117909652651622464248298344598096663852255779747206863555521896213764202659954536766462003471145835715431399973042453174578181112576071379354039350846016036029631837215614617537081958388462853037588072855204313011129103830704068993132115759964156060727102447295158470741879019995156564657877443029476231652999723861480670948946162362228717656674821427847657772093840530492307477217131487144768299399673959546635391871941265637847736861025800219833382219653208935331250601093579444426944844332668458694922046823162585800464000455792967805064019416831839539043325831766315433787413686872480699491932196503009061318766716533995948114391433461093449911627575723837589011066700815538400136765771131643629413201123237742152260651687548180171174997246708084366512176034738062359873328885655258587916968184733127645441197258884783400358235228184178814395863578291716219712899735201330713812084798260988083076122619050479298878114017890652912516730968991261431632559797381792211885385248785012062337279735577482352211868762719897933331595119085224742893994922577778937527483561072924506000865413083158798126596842703042082164813167815597142719350427102106752421264841317128931569421148538334914987488504905082904163550284002333898038694409657836218166156399245634113458442704542615077176582067729960847548183605867861947632655695129778282915883597173989480182573133425840418089529455959248260219209052180984826538599905155723721559820404460205113402990913362325925571675758111772419666348836670185647330223383880408546531179204962581857303443824814712821096088426083934874424502264292516893846895709511453328107818710582517459799603125771900801222579779751140467733472487054565669546999313222647718898415451531839228489082642348495719652026593405993726669135031552966044429845404724287909532521618208013010065473755216333827987166761688012059119370565383171451788132405637833222425113342087332895961198457891942486106633569000475341596368486436589597468490080210779137913624450269439468649301022285856681125098698370115878949310451779728428042171820815398985107847952386473976264426926841723921190194731935189994424011518732160110385910018263132355968791352718445150113088807609764152483695240642878628788568560016093459065263663485184353520535088842902827817410893988499447590990636522141434697642844608183387216225560706682993804723572227384531995029498197604459475229936206945417075276441814804376257103581619609192399903569335960572302083482366752610527458058891340334324328307457951074127513040451944888696175468606394858558626967047663433206660665547929675361471781197759399666638725923888089264807511095283429533223393896356212939134028020476947485690425246985540307023885873341897380833445333538260910956853476292176651616420588556246508919523287077491628281128737342637278636101535154204389616920554509638900009187666137667331139584244104693653053012066462742074447777124437672100073645780392248257236965078515233211638888397987786369345444734185058293633440960307627302914586288754809838191134048678413610728394443136232387366146829656381355169520012037413348339147132466376094993348477319615594717694725129397436763455941344719220076925730705105582086898647469307776827287194865312479066367434068739150256274655782079838862720199219623510799189644914588527807182682153588162749877655214395899433809291835509065348385805240348838745984702896847454917493674793978251603989942740126339562502565410032288540801840664747608794349973003750969587781231954440772078892106299302847738428554938355268885729804618314986210607476969002223242592852251897414599145843253027155491704575933652661708085124635385889343212717126074509701468440160278752925211090910486182530105899293814619431252779172154949668877229875246706650006232065385087731974824870686877979445689881541654348793219375477364892617198437905965825922795498435565119726104648576221413707108465342772269700396610773118659316207022378102296305448368824433163399217904851317052004564431175961918892453732600966719405618439718036806879601042310446123826408756545835081920174310022223249665744394715083020664225219842977213380069613133332160817985679519433865502685963499328826456064409193852062488564572791584301905277062454648131261117799680553281345234000640598585539541400185087923875986681398833547339998806966714711851957204461320618090981929584319372882849835938084949104787185867462595662202572018208859776548418930252949773109095267631144407724750814873804691657672584196694555099446991875972185040843188605903576859272179990973215292097546211164611344258359089726598615625249369062639575821668109836359805230075317900200956811206702309136308239725584737237307510802114177237901334708742231990845205138899873433130516630117159720434222875461910926217274296437161406253740202857359772154302388307999970243598180819243444820522283518006675079297378942021266724551963676338897111269500323379138353648538235400432459915580460154226044812064685254008554421734079677606396967500359683840129797047003928367072821354266940079756804986904636181318662431026115933700823398619378472216005609753811195974072398525187469302084247248746701757685152590862690843397415273820316047303463994102152327195553136226360218725045406529025389812458473532216899146895672458020355950144987900965582057330647539187083042678159426340491360986753209140127926150189612957681641128457041749123801880053513709121946716286974842310490069134765769788685162359790988726566909024857560691969470317871665647956021085850591216695284494564986602708401819927021881126855918029922277847202365992754823025403968958471272542764920289986956582513378843461417989526379984829036307778252395297633900364949319948889633079100792745631774140829429368858509512038649546013394626054495315597204663657341532764517503733316824532207477735810260737914715667671730927546904426811021001379967426429875618163514221549356556806229263183564124871334415655904475709419472491848243010458178810783581818765491936058277275846929660452680291303549173323608563916288500540243498661850953463762153289072347999069501003354102773025706510217576369128665892641766861840985325537863767138669516468181654960843972240711908945814034583415987703645052089109926274663101580445700949095324612348763716967649299453732475998588118864866103335249052162138425773253217779042885542859549360620101612538171051135471218440393599183385329516435935307356864554486030310990647545986044311395691601048280325341005941654926853956840422381542179497819818819152163786682436108947957132428929500638969322986431423030774466589691698988576192631377041372373168604619168747151353058709920938669755019849919415240992464304110063603432002151643521609852847360991706397154459894410316881220548946029742476462358423286037473798324694412556366601765679783403866246987900398448860503895035729586569701617831276608641116555421037439024984394191064199589861012125769716189412537075001561814298468926852393966536665716899983274882369965791334648921581912879227676822545773725349052535045357830039621781077801912177558514167254664714071263743623713023310262330724985640420642349761625050004158329514842447701052337247215897370999970002518615107964340456522556773385025673806782928481874586348493169881697943075818410042468649895201327468331594329020114214444149649566385239764947816763131523297199060741525664295277599934905705577522162005851703235568515232837510168839554947453507286779670824267959142186236016215295303721856563914514985328348029484414901936064212285495846338089212867389750486830031304170024569238557484124423065739139200742639522270376726335819969721743929214638196510062779069005167246408154969737225290051366610579277546915678283427751234074191122817341841328070760408759877443916148341953367298026075205108192416000996925383262427101432173916750172630004391164671065082938359157038490393416408447344701631018036230217703519530322882387318276865554049842233908199624144673429229343466434717145505686717543221333592099338917842496808450956460575157591393789592303625131739185747441170719178694240488976161662922981236900234240498095255029648457134355684205238552919028252949071788593625464564839335627133444041840307512669730005736605890857162706359636085968547445465651548180293348198408085304660725911809249198034419639325255629722857122287418296356557565724448968193417528113836827548517709334913546339438681972719129978829588639804441732323946020438062118509442834902213879388959609974536580290193647127633114390214773342701202206389683720298508014107237227670594546658109035299112863653337227643771177092307470038135032290652766941576157930228178791171267174868383898835385876361406850448982753613801018955134507569504014647275954903814094077682871276976605831502610040520724083238290499471233580268013066821963932125666080226666253142525301164125590992025030556490520292668243400628786445453899033144055795718833261030114290214572084180275356974773881759203282488328762519180457150388826774921858400477934865103811424783734462162582876643355032136729916345097698738128885934019399966742847890878026247974385965600533451715016005790440515218664780761166857617879340593169350511783091602174376091788087893205678215355124823466523445148781442339256752026665046793684601949107645204080119309243318088785381734536503200532546792619046395273302059669028844746145487764308488018456629765872488206793108240839450521523855875255463710346709383245104045316944065413547141195431427802234401243058287242836110697539681865094862437603496581708616680220322865183590972386110586358870127648350871903553445974385026368581525725805183971915478711529980560672083490962368113634730600981767033631395181924155801858753700226806677435609781963948761563171766133930572630315067030322250072675990485222029320132797250448171115472378778415177968146694510784745371754431286626497868780056603760725331046108604921765636320154105677437880153764316491978162531740849448831866232459017674257745892842382751445295844865598475828435917514592943783840715361998340587662890889577454351578527402605621130664651116779320948444391336576189405784556379747059013721655706048721184780699350509927375838529652468683346425518905964756761186420741604550943026282027901642962626253922641227690930893968899617683939221757353984916912789245293720917551524073682706670727937299376943625524784443819841314752437859424786375376727531067117785386538371895475299412020053897452037158087528041886520514713306029078731226667883229333708775752748999260353531800930430375484218377938391050720958175994000937099140094466123605217860505102143485940023160112442432824307797199024872475056060831757166479982131411532930342930510278152222791337657745042910150678599140776445564265741508597063626827093434767076954182919656703121399059615078915346410283552792692481893779629697928192448404733171243568197075129547941631388416833957337869605229261425540185693817040158055293387621106576624105509881605729615654137707457868609790549770586954417783164014022699059496506707048030675092953983079505043415935201450369355796834994130017835496830931578868578284274581759686045786515517626059064172814507014500344287961361818290313693274112541013425547587098443470274461556128462140483194257936635310284692825177347375329301951956600618950662475462971351965976098952160077419982241940691035955422315206207710686750326243966887342674073923005337311025384508568570417794140782255229503483055074152797478357086493405073901806936289156480961564558213973398818043184041893877938649107630942335865537278370995768074607290087093407103356424421309421366500598522780340934211259426884612720238549549049104146089878002281986722802522227637516031231330958639036428367767586575298262862016640367757904532510445734414058506086169489378834674284378436920823041448775886433811519530952103174368688581396989717421102215641188169009440454902905678983589397964925437599681078086327912174464599933363210967082476234558924940978917682442162017600637808690114989976030712719427853879157958025565519152173036332038545386342866233409753705178664114753503482979697659244783615262038746126902775493801211567337220124846239364903484532487612582263178527417224298050063668180175624606664179649349602272483282540283822014749089161902507956307945156301347699265821975669461066392052646294874262984085761665208271575790813580002885861067884992883143528612915188789600972891259243216994156274570121546159094384487626047259001718520855671391696663908148410202887329461865032523019736762942743926092725420092591019216138579561786627967379470646344038778698430109120702367118733586534283250824109465808183119504124260311024900748649251418545546905437665795453463214333012205538320781568296817989447605683436605456884121261153493628838819937773082930309246019254339748135111560128656101624119517025639080248254978037121204529150698234408044638249428269038045725382652534879628501893463897426873102506134998515356660272246439870969748606419881816801640381778327999306283374711381799495875521559334733428846350071933466946764091986885519199189218266489379834937152667700338363458163380602344131717744155628806322026343185040615097011264713699636943128444144118348477812998979523453942112144894837300931089739453413229233372306465769942857343637025628465448131521220863522118440556880342953057263694899552586355399852603809409545829697154702955678265560108622166363878896987311251434746360165290158551382018252823952458384536022810775656230751644097403976769210597855698533604527840142589999588001439982970751403789334861766713742551599747052731835741486489022501407454843577153818529054647165079133861148147204285957702217028393288041424090050025147641904745932461027853283164477524566473270980611907215616766868985009420053938070432752358403780495684012981403190008253478659611076564151305225399865217193498921618473765958945991895658524634731181694418852937053554996024210092557618740260847711502217533487228442844748153485560186870422636546558629310683119300123783793934513877452453888517959128890804601860173756250642132361321492654870366624376286644543482258669886322232314510457605044711063250792882135935390677702245278492675133365077343677300016464798276484798804183128305840029081717149939949838620164265284561637142453408332152478144427240348767435078546177108295965432086500535568343517374416488389762680107992546080895386513020626656481976786919574909124010886259436050414008469216492773323564641349431687496949829486473509444624987480229770276678013829913937694700339757340444334820197469482580956508578392827619972745796721330131561039806951064531871279193892455554659714480412434998157749829250625295639000845514903373433788739884057790059613081609475885993552074311184059942533848727375975876785226592395692268122176099877367233391627234379760232583197511358375977954559283264631350847528208469577405381284690725627929369051965193402161936488114392372199444031286554987441727791864282785199876169207157791826938644214947254912874514619361130426388886498466067436324321803027058490015504446845092785551824929736172313940800047404301636978500938392669606512845596327444747459103098458513199600009762034172812486992572666703572385472433099159694416074700770490307354387778865391168684416767451558135602146710065433664429400061255554783121155012094892979254216463889396227327643316303840759247691327808210029421172037307960341138193049180694216035050732158047941497239877147440415723030227227675872519717322601671578418678837980000970763754019022504920042908068725836832690909233355489362413426320607691768783255107581437710478636315624053296384748255103580569912452522544034124775971428577166876649133545744268328422101041482431327198466277404281379047463334370305014070499391671760837629739482762667381906506522851343893254437529195848574659644129982187857610166516956511567385698075750255944942936199870352630392210918509938172731648958143675794208196655357472265541987116196832898531573430759272360403959404461200600286612841049195056914710791579691929141979357252262894227165165624929530531400645023023092930785655115469034122039613543164106079056142472091226500228377360883374945138355261492885112053133585475150303355988254239946868166228425508218206079275025642773456583759964379874570412267214264023031965499724708190227411267425029630749160859457870390979211128521581533952547029923583837042476103667669002627198242852167863741221882807941707624384821422251685744183356845377312489860458677228789030694007211002492409793616447255817686625810918792173840170212440167870272727965412846072037130673904789072541433066127269461851588877416884261231211244486837269283372882629009329356196502058501885750293860074343701282322498335596802482332364357161644892315810174429913173698392132503038785866786082317506049273948367422644348517882259691146206132146347283816905438591547761400279675044784358400107435120218421568641444034716383532582761418499601692941997194792678711250978487671290971465852860723838940302994453138951463049465082784544428503411128691630179214164248037624080366315302774329263801281695934174567067761550664099766842359117888964754218996748035329297735916531790959363680286349800650871868936335249646261013331951002352171732493921117777480797327779907549711195687509811836871395655665290419833485847802535681128214805374953347352731109643396579126639908838516284416461733149925468456636709096502967210266822900545105031357577483156303671861457445393697763497313039947429019237395725240991782268736688552266532264165198679416219248112856337931732049210747130939681809697153448857955423410635097804126489935014853618681287855063608272991848745482204385063311411950853599080508931654740896275615941739991367011111035783619700701080635910623804164869605884253338042383218058348356966601047015104158073364140820432670507835797601073132276601442436334701605446212163144827661543922729303523853378656953594155379613934206356892457690971670686439574074769003227026472187714350358265369477301317277863286766435188091068508211843840995854827571868471055691010504497146844313590850117608219639934061898863802058500322961869306241454720439240764665593419893971935669425546857469242490489042033464500922041410591455933206901494909483660506627660849177359073976375026974925317454232787329271255565202869995949340902457404486645636186842860002558410709027521052851002565479217955081512635588616646966784591893922021342649316922038799606678391977350864448035004417949900285179100553631349353526759206832800845927809329790907132010632151560554011372357640524051839787051036848048074019520131014674102020362808417377040705323421254940399899627368908910233173938102728969746481658727686565403230226796188376255550434535279139132580134891139921431889688983739719463280437792079281566568280204696532241813869739478164057891956982617645773189807706101394997587378068374961411992613547166137901012687175587178550128235855596048502151264294255129261137633386170345903235225855495944453132870871870730110862939627579492841350555012413397543864847220566696145100490567444192870998599216218418956236239014254359902236411978327962457497036642370928348934038426867086925788171638494403816374673796327760795562577021865774845287143833401500469076675002811686790741614885549625381705765478278616953362781722212476584478390749727966127937723139911495378532070066506306880071980133442174826170249528146551718593220318276160431275682101280790652052689532143296544224765829921515374865294151955508280392791007482529873528311555230567029588204934631221065262630218768399839618949653309420216385282210595824647268065739708153131941179072548476082358077099664399467161078783311245420514972859449297114890340728825297269644150497253483829268347128869479081075737136231009353578003150679008807714867259998376488339471405038678676320097953658179126039213483219422216913696218696672514034203045137695180186007081725169794162361662613550321595689596235797971815417543824153519945796143570029272663336131882048225373038224374224803530648281539697290417055038726199998447309354204318887952931293299309507963931738204493205525987558932474513876042335303047220971163416429537569876194785470551312348208258779497404083982928281764913457159518803673814984326418704904219445594962286275899919590857528145423338447135467536333642631190997233355145062903620415969787295811399551570850778866330620415239726833285596846398929484268863922681299636274390487686886385654587339605667253348756637009387659473994549125148062886280035504606881226224532656288040939100156916529520861255925535942557333064816375917144140670676782421091098724451738523909178885085522456630838010661668290157107948057487721786019774864552295037986788245866820231463465779988129865618008504233171375451487471379679022274475464127297763422248657465640135353779031109869810439195392994257110060242695364316336793450482281896036184726524926108571695225135481771371506063189713786583197973966496886107120160201152071042395381340042585732299152917907746543202186089191555818052264009609834952761201914053661308288082827239316488912141697765357990100797001504831931494187212316376896800544213731685102220623451557162641659543595500394726635854661552883116342024394526850020256473094223088419290652904649397172866171505605987182303593747399599054552961262183153627208725619793374958158238193224870948473977121357072673550770374529979834098492849400301572236407514801266841168922619919915216842134514959835551211653590545552663810596794610484977223743957864549354150989926392483362786774065554348538060597367460490927203443311817723747816248795547247336530293124976633412349434515163981494279025101806149320354788813786490542671036279707904979515257032422360581218506019169594429051292252365135311121349411346067841567712781195284801456448701091064515580323241254151181480442836238588736647762041234907622020833254251695246213135888025439260332560295195971932231788213379853866106483781826787801951990242058100985899076032856075057110881240940689492732608022011267046514085520675099086605578982027426347898628287390811565885292883109771692939606217392998610911282206584009629144935652160088131447139034070828223676631527200490086086343537718417937434513570948979893840703459383100340695764587475534406710896660652137820577188834420278173266248730030303479952296000012029712521166883067086193309709105973201818930355541294417199506257446005027126915750690645009754649624816516324491841512873489519499284715292298875267199334801685830692119302737168842483936951908545896588430536706403372955481447021409774853382213257196149947078836762933741111063963651940672746510717855658746478348587707149650853761019708033803504294993602279371408780330518938521734394525364303614028489710520619727483114634793648570115296107483052248212980364118030939921833812218413304927100404811719950040038861130997099414395577648770518405053564418307111177235802484550269659378814200409832491580095168743204354691059026226003390848755320211958432264507989928255160355205180819699842557665704413994471347181698765077357668312198662292165755653039298479278330321852723705457400545326305061538861905989828787031047786893518521421293530220285320407665699010205799591855759209479055170992535248985225420226836800198697825596753330635417741355821079947150546126771628403828313749835232281984060239159824178962565024519307717744608685018796232660842769461647635253346087995960577769205009531218787739754609810734590077230777147572148881099374495196816339703724476090407635134158809550062164039184912505634748268757918729790072703935089026382100977472277714836671267421126374597347699948794674644683862624976320205558371766560644587601655816446397638301593333290559535125401359414113974511921189437198478109070274694062734399345742508108157588760299164586280308133132744233197694337593081558095688360340798932491629083922364403736986286451824354882261478951035291610233479690626265786039395078311760261297414779899390143467730418284458873576087265066017733616320620980010775210403128540954420954561820794971900647914343748383015195902375691216479159992009126081017858420548580113925173457153839118709649127043625233046993436374184397198136708409165449319558531232541967552154608966426846353877277695882313498172579747453736458046181163338552634218107829195558059378069361148578561164500944025902634032503234307325907327267246240432854417854610588059397048288546676410691106214691646351485265808069893403128534789420681903570388472503611033973008905428277121325317585295947737330696873505330605979141064226682226459498868875085521659514062188810876324259983858406746292788412657337592421960409622780687106847230811217368276831408476625549487438094935028153898370737829267314438466603242989778419230447740559609880789454403776975517293315479252228241973336544510953129727204005332181566558264653426580027702346716639240645898960627790701439356744236477617022614536489204500464927606248729424028323386447970260054607162276130536837275235486334897831085195571549744615004343638901804501966085497344826569291062741369216694461871271209747823282560054763803971517316429438222119945661644860286222548592558012087646772813429449055231128199743210042376138137299764188121093784856108361946330004480034914367741171534452037822390261136078459618699996702035886169047416693272831899208205195329758037343834918308830534596268604717498574019418974120902730005641550240663407828421963989145417633959387277905273726631398160032770070280439469127247953770528252940985235894175096152889827054414076160605668460405333444571872958435563551000061684381301052251634987757690799964900761074098436209483429825722739495241440509358541650086602202220367437154756251368678341740547451932558894252278629776001521770685003526525388956809391963170600132432875662566276772575252419580287413975644451904216336678268544387996128785660183884673499135567346731564871877036263052480653472255696004306004354894225457960163210613745453913572928007426769065486178670694238927293702566855954247876523355895606557471213015694786675564354247696205713632624945030781251983401680351574930642060557949489091947448582282219730074638709013290130501664019943402520393526119734466547741873409841695562012915194885711686276297897711817140102742960544234867590188234655806272730013360029660201999317483908889258558176398676965806291128023956414880247014354442736066835554832589738808688388947683196119760944722541588588260547350513984367889128729154599905557208766972343252078503666876582575698006445448046330039672038090453987846663090349208935911484680050738286292702331419703448114356936417319563658333447111687219863672642870751990038099817940856082640515916927736228442707417965401113524024362111413861129335173455659070572953377365608462545705684132124235954726860537890050158475745983858403474389401343619379692733871366067661988305655118421286631568998406677472694464497121223769537690128319134682486132012740119267620802344079919468317769595775375819189288057462558571530784342978252941672076484984257807303445099770661677684134234461503757015129114122152307387451542895124567322001843250090960448624183602360521339847537155414609625261239274844422619487250745387452284766442162680171523647816916971781534203077494295346990361756285810276156925468681516821812644810046302784176744592120744227363599734932222467867137847301662952177951855427695922200677461438569554892436966510516855140361396599622306174964785191250551575528555651798356205207308081046335024631851309320668558101276213896493664285629577903795061068517008274145266355727559418780295107519170781393226283791884792010344815535001857471514924279194109388933807163479713331082168328290153239211942814922277871524523592191451038956156950889957955736756984302670080265015319978627031512622760994899013086815154854513099562741730183613940503248679459902770179063156795571838249903715018061877071607669534079863412624942053766837654191001481502814954142222139480493679531584223315610140585590422152198186920582747619499744059319341546620883313449275240308054016841344989758001193449295195325765392802972428883520151406933661749940149031457386428321936048037250343971828890481991106534113507391182173567853740735507370701905486484408025530958499672508154970107629168601539132608081648845386007721013314252963382473603916301909913182450031127514812319375195964185268785627633691892137552058855469309390239852993468577806762377322563656852127575657420650983459773103657582203276826860361932015685561469918102818153908765809442027259163641177695540682264278140842216063189088689726981560902551674369437553680828109944295883315264720846339915543434494097065149933271243994058933013432566596728682827347572973659379293362051762502161153179815857375399399177735402261967864169315011478957748970196971974597738557019712535173837434085686768040069716085022046007867648025594935448250353452810973650722278100677730453926974485903651733657012523029435653137603382154146559240909968584505489949384741095631049162832713046822277796042834640464287414286306723686737675515683624945723320108933041962711325144178909209316514687582431775848604453984913477066411350305071029352436706466212056116500238336438461800428364290978112997244713476449008030471874895033590865434606333588785374629664605487596369845240542943000500854130976048912739027715763783460450790158384438773182795814691219338286518508200769882552211639655254619945340291357366001434816215764441114121234886926227039616402486650240719247758261995088984792640981771328262499997796075512662726301338907170854530308887209701327205535412603909177280038392287327641865907205730368733356873739933913541925154714859897413923970548126648407955411401396821141626011465663305203254253140066166035458923859391308638745035356356651989770615242067309262199519184492734965680627712389421245791303258648575962048861654590473221640735093266294236087572901946721475335812944698953029723798503957163581978397268761258165100326045273353666788208481726806554676832877920946486573967781229426745457781850112575705148979015487425135024120394292611763048878519852150232377774735037082937238440339360610731816338195603640222281357738948508927589856818657829388794416730919770913094507429141468274228533587439402909622658224745821367999601393328328341293361803148216149734285823607182132981155458772488682932054994785639289246042617390949341967534056610295857671690434831269302732711075895399112275058803808906864191926379688879963349279735817304853709800350988817452243359563059806508188402277054176194967394766292082569206814549609887484506554296798134355511431522580363039568006668584504953929439431427238155158948069484530172919605822937025984194949064126444926755106726299783476574047945543466501839623591167019880233334831153987636269865167310786731563859787326914084738879749542464541465768476606441863867703102026685177172809310445335002566165722780717691304965822605111055804872261493848438719117243510155322988478044350841754699541556922685568905870972098620145810976595243307134193966314648955263571992262400681237282336840820051285837874844815158388147130512301683198657758861344629113499003242934928083839152253876723372863712077779695822220393149158398616656974393256259249625056428212719917729153336766958654354546574629841170339465840508988016085200176694302641820894744906070567909315870398611534668852774515582725398539519924907347629323342838747002518298845492012089741567911314038652032563335578354250356951843498583235749784804801270326096681023868527015209041077760688629800224577733721999115895123449050760436703648721551831469619036169914281273805351851429114162076919110158494011895535799458245247724790094958061406611513495560288135543474962246414480456629673978092738946364590354571767548418520176688259324866779044249930015813363471092120845485792223655986404548741045190404315579391126962392964512810678999584312418116848863959753523087460522136924431240995371202028528514591208536396187166472729261930581836590369060454427582031091254040652345072520474925472316270051788115949268378566093064188400987349408780078863659255872843737090367235757080804964377567251185187741331404279955765360681379492958843926527529090900266166510897369245506653895602749788298963063078035502548145960636825979732387462023677134410455895623269824134663465995599895218342626649414749301829051968455840964824440809021049502397274772984822459375526972929167047066801644562136782105326964868528577548080079820264293780569183594700197083947612529516869843084632527135328567273057423212369391868897445538475576325107097428988951268808850378515543481814039969969881753740974467729624108634089090567487313844832372680571010551228450440401330023274687800319026747871986716746214868094197000573678570789370374116627839463588909606122466288250181519179686006722442678582427964143827523598160761379062706472389291712864990592350806279091308141594452441630528713715547534231239117756236505313182607393335136991443763080671262784620663315447382282914324581000273506143288574327888461236275072244377044729268470161426494323434012280718421299766300581422419586817160575311459012279779108244235304227795347810750181476944661161876693688824503761177566503538366284280428637492205435971675269025807281453193883073632097162322072177556006540349976825544415990206443358661520566942115463958773143977253879898953361019740989296891923465663424398505863583566144677534956062113575040916227982805100846744860666858543155132361195406363583308363392425497285890709857925633990113745009811967398170577831039549047009204742571512059820329132485079388770121022442103504114143252894717836804420324921707958986454968819543559362023147488402670759721315873755615876047952928314239605486203215521554471719356762034473963174026443465700792802790873395011962746869996401648777339418732183212856474821861151549507719049556071624230321698773623193072765872168424465145280030892607945329101981716187555492308305717832050602278457978926644744919810542176816993826422084319880268361404793574908497218428575823900752157821117558824074655363780117679724129620738701577397915180784106120606834185050139048014542822550212567609409059063458900470790753915274104605944807937609586014169676232029740882509051703608630014285334929105737386027922707018299363751031165172350571485783022589326491760446102770923812143088602817813479636608370844238975826490496055770362561920269403348732802745857740997665016622517839346236335768992477648634667916659485256930884963385399717986292471498910894719715482942391137243710281220185564429808371270334521544938322732409283591758687495640235105319607655165588856681258207646184547533067147271817553167246349917494140890694145366086253402060711149340898747985663283451095086824226457023785461092897249907055103620844974001602613886173468408482262593680525449304984364946842765384852751987675639038176476338921420625206147655614794295662547177339371431430862753972454504846489259604849577990068296426041623821362981227949244723415840923821080864401175829661212412942958052598581181273635246448225666048608021715559045101425829419028205609885499522341685340688381208237253657513369565284975511254390488911122004602924317890149086900265063279332222161538850469605207344804614366910243023920332241762463768428296027684305094293546455815775209718042594739776002785081293674455003136886975732430511999676571864244433274656193296964707327923094580435257602172442729107471781672789019205580730222817704389461481935667331565570043978258267385992907111568548318094441785957772551303835560212992135273543398415139908215191147988975535150719558099779554707109387985750099216460567461436355905025153615775705446854887795347131519030430577047023722909705222352249832802534455064074416806656776340296846727267165978663775957876468122057520609776374813122497489828482430532573464992479757427875207210922226361190439272292292487586142256654266526273652359617140824598618938887080182877242339246321515401968028696231202042532299664755283577535735113827201721523946974516666552165494363355235767161010693080732272685229732209289079268429652712562977124174602958504500170087943666013289556447804550985742236748430240293228065219796119667036558011548348736880609772874467048857374684809389195307617078817759348126971313371724949636238182147014366382027737921597455788391917970840351321576093385385609030242158101884434995280347567866488468741470146912400115209614680289211528241109657293414740502052007724621761405252639493590528200250407880946851044227403757389377329138334727771268827609933368521591208049656399633443355232060050622665122343563380632916534098828118720986468847131358537420635254941504290703457555843536631939894959782665141342891127647193473417319921708052070207599696768225233758909168966897687017167322639331708789265464617118760170943030188005187239920545821704104174792732380168449997594555362403305661252916333686163945733443273179900464098674480698628918219200271558208269153899617504406103666708734694835664489681592533885991435255374659454657060711756632184271603097914863173877126342096585403004378195517911408561394466642677989046946453349357455395711758348253087804288703652015330052660410619989972471668518800620379797627984412983823863532669774958306013113053684778565431534677859363992834704096971905921940287119417157003181055196340942526690434012170627698373300203148843586208220282566150775060810043592795934718311061461441682608627331994004937715360296003245957153662596755484434607762034776516893082480596191372410097606297115581511265676719565655160309107042944660990831991641063813462678006888296520805882515242492357466008925672540178989602593295716752318491397697368229203163177848063241923175492878682393318466828297147766493098622631888218641076511937083107165333162364219653799034782686625632366855202667362571595124689168985679935175101235959375302050524833089961711810080159185697887003460492184557394199302381458352258833199636804377242091963076273051910352796050689444732162125294642786822114120527930713304605807077535693818731865608007055914929533819574011204349085031339438373011417111628514319602454355394652335250321103768462687644437829662637620668731893969950785589944790369414189839301412814395280082913830631250639722663879692538624360618661033378302642609475455155317287573836473862673941703493221851223825913308916791158589056575743004493527209863788425026119617426480603021800325867676387231775374822024920253345252625065160570426743164547854970150154329859264712654041593584494432876158698084256959153341501332958088741600338265380363018632601677810002768008449863777888222983257678832422206421241456545567968037217268261259139068178947120472871900702245017798192830969967675652994643595656196677608158833248237506180448764275252589161718495941902053483795904464801806734660749710242283274587818395994844150172442625088545105696908757219028561997291698880809650008266219588369702592957621686729986915417407142056977644253976947518279055237386467977876994261545393786386772196997085045072017895362623726036080361047506758692971184723605619282670633199051133358000836266048497953691274007535171206994477382808270802339084114926771796680551237040537477409205445549448395157997839152200030702811231113464463839069893134782454740117629007278962693991295051526722546542576216213758528596948854103936524513441671378359301799916646768829248736921572340931529583133085715830789447098798682331263718960431679707188113149026637174530863855316080950780215564402392390020616852588244989358320092378082741376415927148470468853843030529119848269270172462529348372643113574507260556639421089886171858317004658917722063069426659484725831845406572935915811331759842215562268008329369410587100762487201674076159162710188876034787605692175770878916158837105227130173447246727797497665050848396936421970356820399371386062953566461588912377015914618263585669435337738506851666959528675345289095051143620650240056126728948805455533851052523918787854494854940541499958189043165835401877394979613395286782586260348917374045641665832944282106506501493677437174419236825867886614837105167724010729589238919139545913857102121351304850366703332155319696205443257141261462407533449471516019503171944001696618634099960944122953876277401130963294073982222289775741346090589274650067978837394816101090853832081466092481447543856290104637638995218732060445948631449782172047687469308418404757637030777900686968180931933976919241617860852421686063235094958513716907432587912167038396574285240384174258951045244204408200931044393271603484003936700988562783884209178318010965630307244866789750024580312107772665819805960776630798471211584263765905214747907801412380790706574568997186706640914294154072118214117157539956363751395479402775318735000424263153029810159332228406698822233277116649632765338730744043392021029372838874998503993471442023228471203118185526555711833453683687555244097890593962857570468160557058537378510253148781764596834428053566930413661642520864690959534354781693330395716388081506596127814614819487152015789431774713369074467293926044128174107195438570761063427215340647296598594760352812074879183009805303286674831123119747753698056405839498333559236391642231689287929324082637039947330910367109976822551204406017101281013196382246185823477745720446847140693981841713552541991163598304283736778039136894191875519052509664153421301553539624155706643105169965304668683910178417991034208667797836797276105348248090804184908307845727435900837474672454833171149226776386199945286169946632501173530698239164087208357426818490281606632593424492303975226265393769016994848342128974977901204773423020163667919071301559244184245247397004201643070623481928778379923580604674429476979521514188502739626607608207312381859984472618542444515569510776678798932718551211455453967035232048098337203610762366428726335325155100796077817558840212642489266583776834418386010509461871668984704112343294127993599533459161698207147939292588691034088043466357108501367124482663058802775577513242471532346307828951322469313804008220484582564239386217898552728854579328067154345125093406023011112005245567947778017660539098518011793362126142890028781639961804908076154489054568382932492025708955497783505165810319938394058720976276609028031182638408156696483259811932018549898410366054549024914169267410971664251168206114635086754412600439266733457904800483380417435096082296091364247341776194224777771805214885084495876216789249694049682439898878515262940090064198149428265229540296733495465277686290678859319885511986951887279544874331994721360210271104766305518503856001921854999582908212445682681618832141283760443518150300979241207963497336211470392575603853034183343047071649811202881674018768518541143664784093045901720987502801163072888578058699479257866936699958538770598991668805047602739897241930354636047544803336919606539997981990747990369777394419729314343283510406405928583219267470892718466911430854287436483359494280686429204557397870855660935361360372389972279327252144251458584445621711730253392466645612493160842654060698758092142446345930192367836877357730655253976803723861791669180290256505722778486684817659122503149495029356451203430558929963895128639074471485548371096297742998491379757510394893121895052695717796228112383693663884296051975626568034257974470152210949112260282859386645974644294204515987347184555160627523826271705775892746021575563803674668819285259804812693928820897832111155800621839232232709035949819381246097880224936705337650688366809045696665629379205904609062743120180622127855491677597475272061762529417589879239391805028862209406857923135977086870053955351531267356515383316921801629658416928952331813255240005708816818141012603601272650939077677890725469857834237047950467833766609464296140856255448981423445380167360263258636442310892703471288810121241382344016987649244857837620647762477218954823259857937261076231515394777090349412883160585524230109188486300729599428472503530673570886866463329890517742100782968129559246916179069744724070664485081307917048654513259014277188765908241572523442219936230294418230255584812438893370058605299732924478525105890343185484660869503016516661258437547197021727833617810696921506240807434688378894802303289888475001285807139447019484903106954976183907106996839140206103339393875000443369327665741396270499946975709716006837571345318738543486687309218516715618254435794669699745407219021085257829638466556494504708128419587825093493835279816822014845837562904212383362525593044914414835763642143532488735252330377404832025197204144636493069724293714808360126252010959725855080834186262330539492036883997071444231058626988808094017437481864676782463674718284475117804897651010379609770859651932002138959622109181086047955172629391411264981265002681064017309441919218702782168195991503777511158138698053677551553758146471052900439253297334889551518216659941066638783588527331975000471042090665235034237324008586055008614388539764217057348592235366099224464095918158135045099861838245526213221169892832433239822673612944322806022111155008801716357089007691831734486822256047501291220291620628999394525939938912993582236757231857974313830069827552787116680916304960551480700430962927258462684061482221802996077200025220076974089879172767085075077747430316792813512909463256233474436895001933084257035607255485688367070957295508351679536918201659584999835474857994908601481379992367480932584908906857353327332701600074420810591571746039419939314082257899995985764091351320252419427680040039782175528817976841313657707445733733782176524054767349286602116400761433842189034855452682503586857359606133762082266441933693790621463762890580543903398862548616442084342114291893952641307371959237685458013626902695526448046842887408204559018507743907965184394734749480217209278477582589092627399175750827985785348072442459927127487501681642473356029684995442606617241801895250291180096211482762337735065113710557438018714048717346202193617141206919995874432833138828462689177320136493264634072018653362286075889313205084713782593988539840405736736736853960370018968108656516509748493403402341503242386490339600197823891213601404255238088688878255796840642194957412951313210200710617166371261481632073233782432481531053407793620101183611870314790448646450593655049055822148906970252799436636168142168188667788223223559219899612404512615576389012020721053072784363462418335096549680637702726489363551065987455073817855146241019671511962904942003786579310943704650417245261951934486523248228534066584717054135211810737493527782137710085467878172487149570271093576977684001994359318736071011138936845554458224986902823103501868503034166862289467321889298894904942308790888786014986822784884906073275126509667676962974074616247806804005532699091053842732187962791085248645433588582471057943383298118896198017870678772976007054987327188178409255091814510162180692832261159577413283490133327137726840888399290487687748878376498679709575380717874277098476573929012329933776553371475574351339546305357602833635126042415312933030717459974311391845427951855954778634042348275515343655788429600659616645096098120139968818078055775397815175975156468197608465340849809563348381374020654160428726166728820738149779435071884204689535999292382518516073127438323133019180623005222317675436727246990303300285635562500632579069957374926215349691071664458861478463485245586228077700581738388376214729912912089504921934601165439564019442685094675030807917569471564783564311492642086022087119777106905484158736441300926856000913542438355965378759837520900596493688082706644067075638824046108172642590707731099665024716163019953516471445579055483110211131150435950987050927606724248097254798582808618375482309009140985621875447350744258729258520594348351061160304228210988036355387788147427418420790558932663633129507210861735458523181208395305486915277160615934706177950605882744760725466837268734207285142363193001125134421767444003657880197160431158239344928857283553823049655572924188529746081753586372446259825016884549014598050290209263283517908961197177163300712983618063844084626422132532191572128735203192989942509061426108479777312696570403695823974039759768092364846345821088949839294745201580405824992149540599721173887858905093381276528601801947504901778917145625911697942768466299085857635758607091753261797953529542524452917190630268469263998217241344699368773756447794193101425223035100471023774423986031540979062481302366372052233580016552270216837315617164927696467285831459436096320839038237420684980487915829122763526617412501581824111455080288995276178021268331583353399351558004939376281645493905250979184473667639254000006921342148843296879371654428457912507516312586295570959840414676811136242959251359520895334913184083913578666089254323755472206472012440423907090243273246366140013693352897996604046939123005036596918426177337521681344577098839856499040659945833760410639102923900740224154903035792234061271196904178351946500537763871958655598203171691204824765488851089136590445529325270833595756701527756418039265198355739824616935295971280331860701134866315834566940359129099331822943788163376990796260883835015641086969243027015402899428010289034610519067053097516436562451221089233612289532492023985889677853436576687194910811203919161323972237095557178685500081208583162156908872028287839740390818755450995950212490516683859027034321447871995673803311147983335404144706779697615429537488834384172053133937924704405680174792110809126674769274088640679318462094557009128645444093178350798488335626888138882066765579304922382466908964312136650334796413958747933748957114295820088803246369410749687326338902971169716262467214875172607844150135465801958277473031162413532222861377698720413819711799199525262963762323649074261478294223480329672647788526662239140113403880169885170867028382214526917746072629882573471783412222875110736352801116172615089294419932855487878312136841792654940075933240223019626681232453369960806268231783019814152436215556339527807216551687215712263561721961746274131457347213964586645908598370925232813044739505163583223457927139526507779341555826318209841492957613021034217870183409933412824779013593930716973814258525936936095777764936384939420142578572727264171903148949130875567586656530188463796234996914188819973264300789607351784286366525519276400914753639698072829924855193922995682528398644591432776724933070270019224117747935994435587922003722284421898654575711330422040603665068518310875641543161067757000112829217427762694255136561247890301601708884618465756197011895955548999619649101043363852198178180250627062674773353708306374150547679701177551120866626213904750161496707180786644698618357266222641162199689103273361880289608180417953251557422228666794918206904992123594291170572394307188048987718354878599422831071798796627360541049512091049741778988092618828948329831905028399824829875134439113038980868842801509297054963540067856127156579412845532749478960149414744269066873041676374302714178545975623091112103548536057619468560419787284236098575209096775771135393242220873243900293024942296226851882819516669520801013341812416312722945936553249383213088239317623865510609490284845096749768081569520476839651675967082735150926448339487583816891096329628006420004275301728903294056840313954768460519463629475289000045999217148584484327278925513652027025068238753857524305497599336041477020139445348678966365364644568876724563630878546600360616165080468836555609316965223025154654964266795397562594129496088504837332642731848486534836987403047968256971506871591595542516306807997627114809448931280273260359057606244286676073737010995227496835465557309292978530384947952051869159143628680219143590612648138107510872418330735013370664380447183543461225946591113440293041751588936421312080430120805466116810106084906676191438246789446180921331375147967978735191872010028136739210240100647915270490239354782332821036072139223583319598071510447721663519479376381522420323727111209697648696952711616682885282897579857122804772167437467656913430382639622404716323846046334360212911114287288852802077450680855333199382091972591108004433694338834625299374323028807928193635991468655069078850731266860623367508427539980698314741749373814859413148778877168863409742919955264976171518825746190009847647033789336466922611855501155173682852427216795809370777967720277105647934961420263394829449061646834407899350589445349738363548687172627363287737309908219219429870486483866838599221554457578075488909520565463189246690061166859544632090387484057008567294820770081715655798902083636688698350429803790923200541818498059032107209960214518107102532769563420910476165276290332263469020225553231011715207393862608506044519576760797563549188526777182766683666285849180188811938483157220497294942447072203129021826942238718637189941695475771265103746460009666036794539758046974337787324765488549422175713100051105951490339262460407491223015354563414579647495086846895758629674863888791019656250865432052243388596352971901794140653699200496807694284375416746208010809007796764477065382755542274378897553799315811956036091831426861804950707634880917873959444725136132277119606577115917313490161982849790878075186011401775468967196855300115212074384619273446344199991951859481722050602981120074694771640941730622301056974275985025610545161563890894205500077903140437899270969887995869353280409443106812842316208149244840573136970146885102545301220892298146653351525240819043932691951780047282870333701653567230767518713414597982023374337817687718525014789332876711318180086010076908197269203066429436621108184587701087592338983058835308418804160399582847243050172205647786142106366794768177985162617484857527498966488243451600365296789678731496600678331913385324382889628839646329910262836046463247824229552446739560936421883955550669018767417251880328658725107130382352812706277567615192798374156520911143806212215110449366090878996250659238671587469877333113186491281476247771650108615682536240361315102562272874150690105504934733280746346608115688575277050930239312419956829728285109473016187834257339578618141860699935279768658463431000068914951441153301409985106394249482285831750749366330748064975139626670914970808647949067040945112035192967256413439068525727184499919461741439526717828877308716608518523777887796386237783937404831095509003703071391867963149326757950974255467625112918834946287029961662098469237964833302836420041857765355153174397400810046496653191419512249328816830775638114446635510318972957541029133142667171421189696350676330379075088863607890625167880282953819488995370208383627972559939253538739219811077512111092784185215385232534087876873136289540061366248470046855608241490245502852281491936631878287436137401078532768992483940858165265006513316685976949321843111455721739256407513567242525984495857572430221508019163445136526488174199224602618493669326420277989789709300397109851892073113748604518872710328207747447403799701321408536474492679519963751377659855621201596224806885969671661276439450991012269258765047397865002961038011267673391450482130428001507459343228294321255280916946970406766402971756477150832752077715045150191762006997275302444252871705268253708344240634871045941864081601866917407795079209049750696738880182098615873917949266535692037780337558588109908951945942831061620110101239841551137933670877014806386799695155787167594992350142542053536775500050813717046254204712845758653003516947338286280128754325844558429041326100809340993824897282202438985802241225243702879636517560856519465314887446974067101905405468414597553097656195605151853799520991653510880200132014864410274777547675571000321534549117231051390257964507429992106891268703812622114400182630559445993059515542877822705860921382112657027679223543102145206334130843765010948977443223137877664358979618744351821882855939005608758957325408037377310337722986689937058903359726128212981507331557997721259809462164467704369648517863813015213621788598184355829633756877899715411879885075560486845634252456082245106632958120806307725804982378825925833288917148750772882748168920472497567058548393659780795840870128044084131271921669138943854531404499212262543661133548702896500518030133895300944139029984036237465012706771987689174112854094727477553413469448448493861308099529685718478459757167431440328304781461935349549292582109761382466048141144169808719608070961676034404927528911805022897224208402625978686135616217252830256237947151118761836184147069295331716779889639945145034218968335645631443736882122326219443401035235581072962220822506849391491617661709079768545250844529996615473436600297806736556630847743835122035941657213180297110956050968720790654234384989237993724330483210524266673042135445422120522375489275044274415785891964385261289612903609584302248206105239238341474479509017525496322597992342341952158175282330250879960127016667700969260597830354249379199884626027315678474122273253015368097986741847625439223822201814422934209681111771240720806789015868383873077944416215597419936169390515654328368283800353082142879299664904152640231254988244191733196802212136905417191551770759526997683424485841314551772610540142261208661218896664895959020869673520423403312210879898188048383892279034292654504047049590529836624523213000493906782616789917264443658940395829768223422501166891369964886738180563645376016146545338947411918764582575027924210284545799290838981609977430874273017260467089772197263029704451706266916194960471888333424196804390586671530997252694603835759416308535544013770143528625367232049718285442060408539643176646697484564317593391758654699565004784691988538294264737052249913789974099087222517743220766827756947953093881403605614659194047100704628412524494981609212317830918207055608082048822037099126305074020568644537213237829199005286110646200796098011654545817873389191212853628577046900395242403384868959333039334599524927764326215699645257177192286815383889849809889495894878513507373859341811905660209531790773454112775955330076931295383340662754202504661622748778762192840910519545731967687428408091484288632275777315740646695774428573014076136341464835080982896129937671397840498505012613880074844344000717381947448487426804958227551361015721304473220551782410586674496087291127764328926619081428692680557989280676595602555293734054156983062512003667660627841126406132977845807952707918593011495315224333712595106639047857040677813105205419370694081212179821128107711216100067532083324920055607668869652556141456690391775517983824531408990870850815617256176171632182656376369943383231167403471878732883178735105655025816332427391078689585132540796809600915074923811907279573777429251677689303727570088786268809250295333714479708307021743435669115719247838945103877275400013928661832615562272767589606677003549695650129359857690019445401629375867762202089049523790741375212139068161954478872697928642537643391697739156768281593729810674822312716697940495690621195587662570353284979997211584443218349289637870388257538970270808258089436007103540120764783704486252141706108121820680626294920657237390426509506570521767672603807179113552912959964254866453516274844083697421051447840286306178480451885219636713535483427592912755516586779418453160853010155737281438646707058177952744018860724532307732015062870461123361363066917568133018772527133993970944096267985429821851396955297919826645807237596840674180665541279965352543909684878256850393725590515203996907336230586054916773871391432249592104935783167772509040080164403328657097882400745419103552011106915382802828183811328947253855871353379753525278868182632125598680658039993407689063948723797096061356261063572384348948495177457642510645549605919008919229710047989897601384594558242784580979554044025153120833728509574161638826630055642734161390124274925994364437687058796969444313738094204887362046595989717732625958727109290542576587036023778452305233089744221146294313024524873158629648323304693826369984348414507454704094251892700288527826413550148728600134183945035586727144520626991433621178618024090395217589905265285619914743705291174066414839608834597408971613257483101142446831308699522317873115730510118180449049857766202887701016334172771152681611608808709171070136275579953895501519612871837693574645198611551564209838146859882712212373772058991143109511824222969416651758061037355379960851953562838334157454216054184538331431723126552755199758825735761763079534335489676069292660694396099287362445378541705770410728721371703231394763409660545422151320338258749806852305049442211810181533488763410599594913506946674292508494440417546994827419970641277311575456662582646327709973461280136152583093599335322162611262769268922084389260495296077801979910348395258490103926439654768802802679517150511082684923659793296548791774096275773797542062560272891789496287307510441257417747208460230702259178814472593761019538242727186622234447761937446095537769252024870986669121335364258108242567754194547152797560808701845638827221408810239734534184101757776554606453314053037920870051793905269022243180259980104844501286199765786372498701483836050979073530273426488136506734812123178892847197756419845854410619141261692431546884246464764852261844778002339581488660098801103278573897666406788583807719156549035736113539656248153900330894621355836933965084117201480321061002934935041324045178337245162841746673199276020366584454003166236003963405090154163853697741487831731266462486662053261346435939941892368177239968562677424770708449194424601890965072018350982717406190728375524914275454222797588677932408157584727203359606656933252442006894180157142562333844527113205458865300527328374297126925235975200934260147898945552850731963733580851096506941966808746286481776547365682870822211926394378220673666387992227239973019730003921431041920455536565927501164127358832943287154237014597256929776083218370499070288139523346369474297012903629592809829424073282538578251098308067315604169754154785659393887239319827365873665739710883463656614048384508924458207072881822443154437620555747138197787852643468696644031181163261832030980333358234516217997428004171271626113826193400431329048711227937135073859336191427692363514055411538851053302937968301722255940977297393194508410235304549225656492203514943908003981233979619199135564677282842373634784770784812504527633824748182961439235332781177850686274412977845175490467471119225902591851768263190324994900091225732696153151160861453373150956342495751552085500366360133161595802527504064730248440185357440219027300465949215402543924098514795949445085178804409798441479702942748492714369968017948578653094199013678224818954603298082460139301747903495736280931802528005173572125837462991476207116349673408682376847662667060619395766856367900330262783826991536438245887577769736497328933622539723585441047576708485574305060915809840862020932732844871717775521509807854988350257321616630074681251780532189103229868122479979683117445098737136011215819397689583445707894093244201769020825614941316515774125489991619304924403181067396746939637981826071973576551557116731981866697486410184206029142716026485758234876473465360959717667570577584447332251659272195652540692050049574774856753699373524348615926144346325230180054994986706757045113273573267084590912281070992116885401027821363138430335089666900989049326156781646874778176638472443400651235808976498112398101463888699369388449511878513904086251369725480604108793645664082307120479992284626600610532760369800994233883900638505839882262734718218938237509201856976928018442118766409538259268130315023234989968537601292002447257223546119301878801591173719533927805688759448614582502102398393322846504378336444529271721723452919933716320905318944318043077771658703311618530161422309990276095908352737759870281078144526576342440780365415100046590663018922388035029869496386330932418574566087102141006304292051693010284625233240451970570275400044930205164628044898523779017475065933343975882610267532164720676473531980125857015233322792903999774614664119099739697637055127665245163631184234070152270522642804061597149763575331177774101320731979829145047894425612219371122927471523506135990434518986592801167075942623073183449710254059352566478326834828674913873779699919761625594729760845252491382395654324083742924060616117036916698578740872639825746516922423535761274838427164197260762207424081240415863568889159134335341046143046542650479965556715911243326957732725246019228986442507487485762084959297517670568169711783120759681228090725869115306533252161400579998284250237051159421594522091369375404506679558757678964751983505367969690492695852753301586380907004395362285112180315631782580243964309917829446807247195865587272217444128434825676301141631567867888978163664033723770827531309967661911237243407925401006914426145473092881753165527310531965506256720709003040357924267168651204506318159339591417972625800058376056765763427466194309494368558519186955069649394576263886604810968702884221159764826848407657788759981166027257715200215263053494643467493929686084822320770063637629714493609727028678207283236260306582955611408592176656126941565934705758455175702517632734345456864074132429091191373337791714551763682610308118207084267669416440860418368855036505246972439441533205401031519962908977164456131193115916781137047358250447227188294090630163316581366652066571809763127219727780016866781682769034692448714074111072275791727327917565654792806157288445685885915637477285509145491811793872318119806159488474796194604184226484785180836737774781832287753778950707579110571303050823144319275596741502658598036736883274757724110956784777979062687860039379451283832294682322325760397325355664088089435471682674131736435581550814246696730731678057589957315436367511022479750417339992253791552090969734457542512472665158309207378582480333781838979001116827861703822913928338936598877698573252087504862703983494879965046361824081507200391689747871890517912070770829774341372419000326935947302633623290270639413167224988293997326661866241982358215696343154914128297660800705586086967750817264800739399479580876687294878480738478067491641221418700406493484470623537065856800005886251066225573316250767225302852672482314175768249575785736596699715337582512877191276454947267154639808099126364469851462624080156853359862587851683024652388480327525567159974727456158898258250827027541183350982160959776040960261391588149521986348517371803626313459867862624939714714941232270526544461842930214327671921061518838728555324315911600529733254458412987479967754761141662347103888728115347815539215729695874864703398225016166430567922542046505739078041394972080352557426617517481142342653671316993649612136487165585172921090262578305035339650462997247337840371886052816504972690805603991439144213286880408145208184305075419137175199805103019810289340831719308948440242891490906167776874736827741181884218879396798350772604640843522095175574670341259604424044611676322335160698089618220495833900511572354836566803028726805457899442552288299373111295807541797537686857079898485753545232505781440028217860972028239690722113436260893948738752500323122247818773903814763302496614707777725004147450021102386736061173492632854567165158153047525047338011651841119199119004895603469038237469860562101459268305396062953603429302498904037787398797765830477634016148948620810855645691640157073826120657771316024733263475287033975665171932259059445464252377113058820981256851695376878283715504314215278353124918512692090825257513880879622658192424596296411972554477337349370723925702204614697486690856509347409749228913031134920729438953089376235785902703357304612647567378220889762925707457084154813076642308218826972094916977739366996547576503399435330065191896083828598892125690930642103306960462689535681276217504174296677553675651914068810346347969328409491852203833245547614232997944606447320195371380751075290524814460568364728234696006835637388741071251796614266595860771241014687658057583433337095873365767366841445721881217379303566244300309733116966064866897121147624840188602404700523203099930538008850785914414592358447057074816195573734873710226566668200283235231217170879269412468487567921864133378086990676577019809095418879001368961345228022312292522769550919052777688981405362303892597315186418457653657251378162821486754409501290786390581052926290614427388687177745925297045924792273544968718766806142321239405469497073182519142554985003318160809496562284066167455044416651876884186474423569745962523708890616399873328109125933230396602682758976458937008322900396598611574634399156664156605483750421849081919495584063042370458507197451299674411419368290042549252689258818766709042995456541736351070375314516628075760212706330359825903959408951459364400377614466721907132564917916308967903112726036312676052241427065965897216859562922420876289195340064595639947978199272372015280402445493483079852841056382183056461353420414513102173573811422402697945815836677611963067358493557557294262533667460594156909281580381601354762982308217740884470345389223911677992633366354911907075231768828504663666486700615582983694529661582694132728516537229788263709604375173002864051269717325531181106168520137879857764701944302570719059159472510216321238751035640834333895786098891817242447111032406511792884737128905078391885255796701186690609367075926252128969361222046737195747743189704876594860254035698324926301209613723628169919517613425560622246518779674701674957006411561408585927539183361821482492793569068467649512760294321354901372387261529302314511566659925448565943981512385836232903305032743582667548586943611173320357827875884514973184929677994534893861964014147083329964194954603519144666778264033484861867004421832450762240286847885267288004170195226191529770531444772501355143741861932115149842123800907659581546483132594414594933499853618420162661050774492310080030938621979251197237340363714672798289141457762922026290393553633308576965911330066968694452374774336976413827897796651804081062394807814259491214806665774704415273800313785677451916460033572225041677029862023080750542380869798594234315679919037661783694761166645388049192056700550733987215121349964912960944465673805192484142395113734429862024606752293926541165548406837264808059304268483672007227140588799654342545634880895981717256685648914459715076272039283775917269330830905729065413493786959773351846600705989371279145573107839705798148138611346971128072505938400081261018761825498406101333903826050351152017396399829975929270154140443742901158056359304559305044114103609600441750519901973775296608151584751799390163706862548622510164304456069374824493802123759552018600835451469930724902844965540266106853058580242587124914494661449439314620436652775653015962281060704824044682750478888796415525372081084357053331392103738052014772447708792009140331418694095171509614631209589373327578608089444598248652341192455581519746879827404082322879280016541192476396411039688380778782253611854391213960774570908363844851576484189429669187738085923802715009630277021922986360718036797587108371406645819543094379042522291876724036583876606601567109819710919456081069434006383772700659273915395060151617653711482928746143246808325375226481846192088092128332480570792790805259066609099153181806857041548648026147823171527564094424670700354841382127577734459056214924157240442598497866422052651345230160977732133066489969288563907822031656145391174328691852069787215064927722700565364443470502327406116450093275419235652413112771645336883369180087864506778491956834314608498432570279832004711648875458368096242778975917636802459072839630850842938084433586411726398252793038864062963964905677440843642733391607587827550323915112504414045041962181475732435035609362071848922335567287983071577024448508297525656348702866791287737120760962333130184497181914705572070995722368247045124095179707648807359373992901568623624982823009499306085501757047523621935002965281495068129661712931276861792874514699265982035865252587308666802175385310143814037562479928132551162072971664060926645524283166123249647057303992620159360897822171460288373231781886599624630787267271433898533680208089814123492180543343149129813590927596606009033766272560200101005932881563326437373727816511131265793837528273767508316847495748525390748989615338870548933332385626833146344454903126775641585001250684435144635649604226648630937564683774503487400287837161366584997841469220762391783848564171335238878073014787068000549508165203945272005325596287294130336835624955888999320322127519136155816403362935794589913171212144826617048786795200441536103717827810522335425179524429517921900031355128090060904116866031141612463622327088918075690749545683079155501107771984868476044155410780364797542716416922824941399922532382270543271981354973113043656018371150532132451744726427034030584372538490004258240110226035322890137984821495822239602030340127269952330305891605094495042633477218124763906561038203238767642271247468605167287861182288127122302141120495775530603564182680856066831185279166726987738602620111629696317066100516273018205055170405277759405588950568849326487926128205546329139465023662303499935784065167316823549564766597537712353160491364467796160215927191281066775564756052176538312834657605408747477913777370658249558554557351618282549389194441274937531479893828083063532122347587046269475694743178738116885055175235616432333215121554559404003963442017611014768289510396781761558028924182217091353759901668630591018358267739759887597305929177666068267620520016710531406904036061977067130430689538163017038991961064856221389071848242740633162088411444210119940057860554191381878627482548035194911208006265673088282148505355770359834935679029798341104497036903160174402122879479036175408136078492496913847476431982039915089617359863495465129056727182451561954577143192790334624449045807477275050866762094295139229074377479972405986769648045494147284960485403385823925899902866571855875944717468298720608521551176022959129095724486139424061862906483680225591370073984748833880286464856661860919185806181885825390308156024618017198156456280231414142185049862031846727471734782301686314317095070915925175519609447155715009399475282628359291090900612355261790078562944060916191765068178083722835159806362120387585531507286957419795104359474312555480937625150826402933794545703766558817668204969866401737209859341009948506374840683781957917191219477877452187003839635989220595301088879721541113343797147993520786837016506936888141861472186548659186430604246127809772217168598659168741660309856415949748404596731008374124241163300470985175437067611676462972459963382525637131205707379525348492500206930865183427977776909196486754772375750640872089634735145149899959393371150314134064824948125709149293089055063990949283524191777921389006707495229918907957769541020602259505065904383945820171317454958670917771369650388224113622182003062740581738179530407590369451632561742938141115502299523544088802588561178201746425849049811765924244119669525623764136556486238674398769954904259404802489884628211004470921874302372530138435292182469171979734537699425455196126455247780295013308263472600748386193114600599363151564014813020622764844874108870482322369207694060651452348749642151661302513289099480762167865289783427198382455709032134205932055048818516348776274698746772787565936594070996122620324304096770599980014973830085252172356533678284243931713931219085538775829510653227625060894724336977785358822939517358305591066901235177902758792895695106008409958166435511448237528070095269475591808158518641259669687865064225575974855343724136079018999494782039986888479109796529080479157819570208388342646839536183007418929785604196416334582797408516751593593900358952350668300283174215229050905946694656216969173222521283404874046732299865003756195400190823257716762769366126378602185001790081098062707957538662863908723246675457278557029807698791832637034505899724276619509799895989277479186926976222977670871822375968657475379346029682367639760500104430854701443520973143945266452144452658873876792952449532600666066869888006034697854388866436924294092544208368468309833876545854018484536187692850538899507159839995150399963833616776190043621548931109105252386145805795619582848061105330875106400800457031778043138476898122981624395214126222808021549889530831202963923406311446656728424992399829903896137187696349863694738525027154015884338950183150763230176058356795735403695314693681123369235030316557770275848659976442883088015001790448904624110873908094089319558025636026205525077286657669577019094439208381642136294458503982835783529011019017380233548255537014652628173727974836802715604301172666434177913015630414163827809055044968003245580504799315689504612703752582847187746833929662138598925901793402120328596809832628371074752726936750199814367734249221956716671384273162109620291948478119524672779082335486441069763196544765198952670542508332753944622747842821335322572959222350518123520228751147561760969151192582664082319207244056179507284131780985729339815559832624753214652798925265915487349894872326370030285322221846432081578260755622190469971894453070619906725137099921672327969460037809055481057230260251243676260819587215644901976516166749734793459289412012900257814609662151020575855483458405709310498229547436616047033450150045748219290255722129156820197568205456955392192201151785533121640873123276201376920604658734282136709585126640510844641033996462616038361750152506157513024688849694689348509802129219202660555394285040257116166480424800153491993938609619140420132125606789413708339607389330877802394239073609311351864712242597970529354164653992268857457831050739787883807177825575868302506538600284040810330954046518504082752279481693826013938730408936475389115335594436875234196435612576840239637363312982894542822321669858302058618206149121651328356523643474915677701510649045071502834188626164304079357431236377880420830294220895626649429188095891480232521176332193492916150238503877179553933629497188055687597702095076673010571810785515228097746764251809199748190858011947679247405998724443994725885452999602914379279823120522608674598109141424136383153715911199794693408185544916715282769684487678462321457933625854111428256683682271947689121295742172758336699663040581060523290426010682477731246700525379962366963899429151194703248281426553824811540567982169579518794287063742923518893116584523722187455465227154850669369651444773303381983749986193042662918716970938369966315475708439246661514013916395941238094809144848795455041055497830293178816631241248940978770592742602385091092141669368198571218026263761133576995433840392557002275408840420661991711305514842366175637074827177300618401630463831549154030237955055524729554847530101530719771628963840870194114077155497994305754050174219098571812599776777880940526105068994768708731948464988251248115776926927273052038311692155327644100379272235955157147171840315446525809871062781731217962510224051749934609979635063056976990823130387817523618255293377255227498466136524075462909753473801181064680693680496130538511194957115896171210484467938805129160305291114632189966690891801238071483610457815249396524432948298106019235484424761281650375439820559521764588001813508294111716012861069600424213743743108167833590930481068171079102484230049562721323272539834616842673521738228233294747983965694914961906828548734970083003184966430680561202757673909560574758180279730784864709784769563153354952782267071853723588214937547707075674325379149298398350205072157075535772406114948194929871835036853351523544846802497079394635300902023192152649788687645382264638639307535371370171318786715115651268830486376387165072690378595907912777802358377405319721829419925176188597310445130843805938541740882044204400575926801184645746210916693207594340359768557637159246655560620179606887717135360318125253338826467368477090147460701664523821367038113085318326649006795223264347611042841524603299607882279246678261924359489440670521279562763343200885983785657434561100221230025432486295611121087809146971398035241747238376529703105438754836903083653800228717809548129090167947445066563541793999645845674092777762651532875002291222709598882359676904076262108769718485219706458796500564459332299671060585456843118947708255740390658224298383009301935975985707014989735422143959485681056579652247784274948039210307989748711976076002175179740446227830398235606327683037673135707687543517429484780725700109710747777512653931385844398421959490965181964569753750550493564610611979121544968925052652530235135087865222114799106526807344537531291242504457016306354851471114230109583950869897359965020152721513328479015443465313881757028713458552771124819384849577965830370260560571183647733715263442862731597459458152185095766620228263828920935245835177129285806292641061786640838030137431419719469988296541151214526626557912387436583307621572365208526599218478514188149357449086367823232195664910811942341818669428019021937718892980742772147752875557243309597233947029604548935634485978434358091745947332086850470849045589828245070305729506833645170654673941230975135226231785866690603462578490236841551332404204931505981988385556468684923650728328810363342598823930360650162688569734325095006796903082724665450573528877119497444715848740926897463878266601967078659365378315298182723786726256845120156234678597037549407020683581732928918840041712734268299341378164990272570985226197947664029038751136069558262644090144044505097806964409643960548391866978292627368851876348343924026235289970294993170894691705960686393108763249226403311457722354822840988142779985899172973054053743264598976781624083201784300997511748398009732056985621067156534184993747612818274441119857042772472117911499009210374807801018682409336069661600304493560828665873314514059974841999229883636205771014459018680502055983830190024456155820854199645203913568599599459165743258285968495251810483089378705146636550630653130383917571734874359114284914339948733659817397403269117000523521092428477313672357527105156644192835666305061575625441956275667953462817221406865416276524005973416987649038717967157331508745889939897535665005383553869438392054626904090301300800135572329714953667585858821041462015870441450542592142641523780770784318536693066537769471158208550538568768705009924366623857126562953232871505790339813879467603877555007434965847508404196376793263019340461312425032550726739299472789071785287928316468764528178714489073531813034386415889418244680337549952372459406876589576682253422440034777858348619256809043431380011198406794485292886765804067080736641360256293933791345842836022600602056920838966814774559249774683662137170802438172681176256713772526348794812267058867055760087732080715189444383155128813709820720514603393711449728690483175554041368007903675983483590578613598940423791868271577913154880547330818050057541030389049324486745222376388745867404053423337595066257871047391365606303411343009730985167433214093634822878254904868834280007605710018659668276436246413817564012033894908277545968899496608029167991677583372179039830105497671685839841481929241598778300852378012260655381432709879773296866861370387708276577835512531746572738551949998277974603467883150955651211658081881952167765414768681666748581356987758266064161055567828361237097875236385416034990759560931694716027151379329663205516630023268886232697020968839846572917763983623495967983759187670821013156615718227378417602095831882451295828328936989659606922753995541117459479916825523058670488935375600648794580564125678141131019218646966885947678752769815028771573702025645464229511223283104669828559589832906269367624945707263251020641581067272259119702268485178299623545939183915813822730859306456816748305594369681492771335219796480816585371838783484363016774637429607624400294167061103258297835383557767303080666016161792427902505494113872894130495580824478263477311033525667240689653806087271769449350928178826554117542622229785486285767256497855567594273763988661396146200893872180506061002236490826062684074604988518319338032735288308557982405638802388831999724008818106902895779973600947699950849612452184756602481819283251828090571429536214056512256266163117228055503608986619219504910534260464881684746935708646744267536265046801376890781674224341020223587976856027889562236684448976736312459501284178375873352817023103531950154115014184451093259638945084068825232368976299649845754619016357243882676386822567054738324971308783313056408551063895838247529564858375532621207552999818461432102327847986510952514118666611955008229553471263361936707885895933993890578089236454331588827139002392408403082366087452672144550249427603111411061371602764722519123577512544652840172556478903488822211120500060567976786824575026774562141619651896802522506237808217337528321958681688213560451171483840858587778909137862472807594096596694833797708995812279712704129265521384940445074247879159189526042444112736178165471360558334330336079134720343451364376226769065763386673890397090320881288295776593657560824674379303094215609003159312663569011631645998407426019865682025993193811931396839686587740008656664227759411876946805813424378678060266319522624249574105425143816742886047505530007479693985533153629600213164842735230583779300428753097528136484678063166322789473029582090196972462651437390913958492333931340333140764436986387685265885566589522843734781329313728363482872769751197068917166391573807210076400937098955826092608745659160034706294073903924634021318572924944900481782841751662009131332439892490460639244666819820393930036856135196952039034097019495503518677500061183621966283127088135710688908337077039066940451435431213359421286259447049652646470628366415879852450923097517173370060219571035272728138872610932918965823889813373907439581387849769548391727002736004313070414440777237006321212500896551764589920488110372951959482811982229280146980928148379102482218401749022687623167629386854939898978123267608932970012218852929617990586810150781350479915553812266708051016117832602194778394360962341000945766501954644609383710895312967471117191818122154421864653233635290594497111144606138089344231111345373941193781448294919044377528580988670056854620661611086642767388868455372259956085219202904996748749358249169533931416247590751313975245547528738236200560566298895144499100921813629990708094360768097677822426791105873632930475535637823634672799434284655618737122035690831897562105759617112159919150690883454209310542606679952953994790999250041373038421515110059691737037936722605724183573856328238203753453342392153031637020885810060564979423570537890888416201574829879225235822192920265029228124456487008102758989617015064782220858350429758050394779137729068573819989217947005985304896870247297489702425231120350193945842550878876021231694309769982427584203168652341806359696514398078316766435619208960965155950817801524577988024805297372270213614717825679243699412318462676517462611970926419198975780951182746074588038183622189044967498340650738344369655304484444932067434199966749327960485233372438133724038587135339072609334540169120100972705085308910163944523511415856563668049383452798547178866046713458182517366270983285926227541106651693716623627795356307896649582079330065790492176438019444000177516650981061416415450015220408627004106025997543681498825084452935221930722026540594327644246298988958824990742214374324343304467083779507912853262137099141287298263823230352670407482423400279175811839589995860285713563995789551672874565953133128045155241334988786906252463252690747239705708945807670499607345963787905672691612591322922772587880122333700391848492289955359354094785438409041424807837539334629536785669559279723070883409492011574646842750116376034700846813635697668786856984518587318905748493064142163078662023220734996024823966393168709633740005836146306382257229737429181116573849014771653116433736542187068040926021188434556737494185714708549961947004184751790813313000285276650086199456765234653786511834690074049506803266585243178271403286741049394452391398112562632740033107040145285552253584598114708892053857239635675992168705723010683186181963601848290853122538241368645223646799066168271997642508853353805386586028143338096927124035363268386164197445642238917921271213209634336787792617500576535738182291412632396221721944366082074008987475585567069875361420480819582059309611509377211883754637477432581792263040927099090097385971531428796752403890102479432346362984892364099466707383913052475342242901371958984710652025942989442874840971972897675363265691282830108367398728570035725099771176920537293162860877186005403057267059039862170997145731772137049984663347887199980522486132432841516499079903496855934945172543729925758603312188091427202295667179360051570360041035106106660441015417697572214842971961992310797811453292526680592442968549557188962057428473399220748400129404699280333337068874038613304978579628392104756874298555320534139288343249824290382045896138197115885768350920932922996975919480895380060744947841001919078170853238737708820119239521051237174404871977419116044224631935863800964219025222913307809071528800500322761588923154563319613435890992023540881175418256279856650895606540867735255816795226789601710869113308983446899307411621960610950328154511126160551589404815521673465177948948449443858440936083700633740864476745535978302728160498182448927699018662494354906338747311107518257702302203169923462641603228566987825016942591444669431724226272888749686054794352577048725383922361212580018301974983040509283163746489564648428617158727345610270657663256973644190510794611529183312818502300445888095113987798264251228932110899771271538101361543866750281636685245344116872941011559164295775358051889332169232013877085221556101350835125200409018352273569538711828668607040902128414655240488570710972774575209205098340691622434633541144163658299210548071402205644673605288868236564786394701687580928306631312276813057730403108717810114045990953339263035769521804720883768018800948553154320276953810146557835295904595543201131046155775430398927777682654045692013962901881832073901754014709059557943771269426863172518279715282941461056673880168673532533916716498001569992095916290279494600728625871246440742448159036473507674539523825820217006475516391330364509275865431124551625740369945645654594286911456429100633546471765176556679089384002880482489743362971337414818957840892927275709251127854885039031709412883685534160497953974796265479608669929428731313837721568153579320351007611282656480241839346930883733178673620066467381604235406838852663003556973630813808862141218123142242366532857264579793653823401294298009302195784872992140433796502658872970844530964545095073658491484599292154408183662365667611986828388715818226440422522144931511125514948789166266988002178293657899697006958176349246460640381151694121013113255361506081639689318182816222925607060948012470473437766679598695542406711377551463863089064038205420163912682389223256732028523581882704997172874271499300261354049578856339326224470982033988384994614484889868876804222667920030183311249772628217984015467570248280224427055338896601757122187517160614069453861296659922401183318386973215945010118396472086420010309342813844037293939568997380252034066589326727844405844045401373086647156740151251215470525684142733936081781094000757207986589310402194332111090440822055802023625143649528906174438613452120075115081086436829103930811997659286982760833146240595739820235334760556362817058729557039388106566584797762989662222398740887855354966258328610326072238634331698326000156083980361002087045998380007277312355866100068810511245623037957851888205613715047146533934111251680738895332749731364384401987555137150842640332718310461595298652196014029368533752460298972482618583600168689576406160732560679423433550078007986702822253803469148391397469397970142774295738558126226035367451479268293353787362516492468629774834619953553557931283471164694233324292980974955074903977412027028881307055044028133031926634685945447028023768363895822364393508091781567755983012845892433910290606657836877006905394299397502327272112957631531137792770710785915504879503614262651833322885194915485385191391959415201214292908647264905574766439905607249086503553479232565504067435019095907272829546811915421654523162785996968545780717113943049645117326538791105923866195379563428752137292808261382510142380731222963852666288270045109661487592915515844498267179563246468816397614950040746276295881430490216432465613321670044181665412507233636284269786190439874938467404218253275982206988483867281386172457982280483572900372875681789436857907671257151162222689034361449979021663578623952859360605346394942911156811114691695910502510951666778957793204440154543848655277687117935173014689758395581152978227286227785864301814283763085209196049444823632134207315068749111827761625758208479480145853571344487344147829995665509134870575621982568958254367139836755556520002911112458355088867585138321035021527316442264164651182111041989485544415761119262152771262027740388839694625617536266525569893353120927484274248790667994763035271410355568386896472432443364038038409007160868864465929063629624226980128585212028400991693675467724881193283041999017186040880536566022232378621648454853810945787614467589190212570947876145165263916830522821968392694115330436582829306934045834725136143796793869818763435961515484587688568695832975956130854155617959410035407614985193950419003190855392671221331543331423868660182537836942803583558494369374057140231148820753797758124764228357267997962677154375083561746454569288897911389530202500768532880075805760232593843525913868681492922943908134584614660705772559956447583071127922836638237933223141234317966905586426781789449845681810677777925427314603190908409869763257183912924324018629769073935728963833206377667874683888927231656067813947360891387899037008038701485754214314896242729074711821879184117647578788385036569614301150768510228619043349065380720655554453989252259388612377392381313005861079976320439230451790722631171572334031963277200514425330245520404314982999723609452314473994499293306887515631463649952057135638927022763807786554114929492176637340369188413149550281238767039218001646213711833676199915434891480757308344899084161977194658335434599356982517638816826814780330159637986523695197488833985798533675060677808593086955152579662324500811583344852130219110716787797911946119549536859790710558306584878799434077023142056786625952946306792261897088445135132616184329887442171909558846120519168990210068164419807834507955117706434816428194596502777873641743779345424152591842901195560730325103885710705130004471231574795645642931932831205706459072028926543910732895471513269275388721091623731540523412913816648003325408128259986448914561948546755850827467137020650879930798174863143738626541398744634111004452075317955874071646284913115265396756780598039266643302061041027994366581200071245919950354873542335447565539206336810844168974736852867600683319767430675393331314631376057761006877038313081933313988493030306908957083122555184794000946621771464653805564599566778593808027715198387850636594101340329470957892129749710996413384359873680535433031430312331391268697479832589629110292614101064690950158896288763294839605220637085657986723460691949609124429841196238090414043001723519646748975290353597869423789800243671403231733800263313345147080740008726577494174346044162917439145998197465565025393241813492759770885648419489955196050128586392808872302555125285868293650799553097258011693027352001248345956413747664379877252757172616938760311190456580456821706177664947088036849154602610875164788039956216734021104985674113010509614223140383529185123146410371645971954025097714212979969471516110754559576454267196477796257377249760873465373272763383185717387500889510575606453192152061189741513094687695722321060531457868826550630100429895980933573984534805819012712645659416975682254166085533390381480926431737563578925234096978323175019040153248630494430229661112537681659250047982634157516447731192484200029164824928386457455705604395171224244535535032642364174220068764205786582627292080209405267707060238174296403923631383352539730849134580851100526174378880220530888454075811431941936356143236468403765951496674972187991750480476245076472224916558963033950204500106148467901934018754795918298730764275026652002703411131886370576109946527279343818973883319332395521505870001189380593708082969841671616183599525751652933667763852473023697518310454383484893108828682267418001062088029501388189450997090056622337441454654913282073198385264674791191126947265726971037776317964336044986880907339626257196332780630989428128369190278090148984000614947481223015692688716821906593903278027684214298815724985947750125441973621064951578389418693418887547252647243786650659976830200993970224399729423529056018994109236520919992682338263800992243176997699908394746023419805974254682316635220320728045173545769811268358389537935954056458479297283434001466676778831854469387539835939540405597966931590215033395167938427813888991727805164921815763269217225023636950021602977338621307908742480049145561301691067520650417098625853708748399139941104914682388798368567939127169404064599945901669319606015498264476351059290584672871405439204202297597604853800279852264793421640150351176553748797207063535349547916399910988018489045228348814362149557122578412524187087456397853689070514704043569102219635287989759719063248452748582574238036401680729599972230406985593851136845615200081421361637694673357742110657305535823167070391191916771020937486389905718204979962152210117905830828974039989676552240113344997298662278637629135018340304840366628823997965541800915249112465853175667321799263213231209174926351772292849852213433287919997425863506036142750335237763774524482051887336518975706371140232367764519584108073277280282702820307702330410620086909187882773594995244030887987586719246424508687562781665663368951975060530312177891075780320613956972283548904840633228235536348496929303807747181569405399256677964433350501613134267507488644753107396939995194705020019702374982624524298804394500940422589557404513640275361855329001168642574320525926943652843580399930198247203174794814275668178418431900467944311737090626769443583420010756115534678778334662310819039702245358738554540482774608789692828280909287013642290245626827213622243907087610934445339063734425441544818843987968676085810713950441106153432279845723469866984654359985273811179611397063613979229019965913295028119097771516973129574273442641824128256629203938830953334695406334232919919788218636940617886480966189739920793223704825420447870680539099389019510960844873402181033478183838691147009253597959975067700755163383179259636599488175913726235804485065775247714374902038012728910585049860673970273720745555694376660123646094501299282859816295854857439674586134716184318176034468346342535441628697407304028567514317502042757272793817090155916288563102304772463347323967641492137686031794516386556944850179831720177790626927847890542138671791039456628918646142952945223872700553888952012325691180739762990856409585576153072775702144526359427861119887512102675910408270386129112195076973362134064201934953953505082188805326986149256917497615943889764598321827520186399247155443674914030288784971557943598677102843675423001657155793044270728147010815435341434401832680204377899245236159743235430613794280723936377655996729603501885081442082281256933712021259130152687954129172256344404563000596040111234165180984080081160105267538608006423997993868626027260943133350834640063515884051306893580915079946808182769078256914052333073122738692138826976083095926077130942677427271413258192391180110966730026128474899707962407370857709047198063886682106571902586612311922091178846274679978650766776779776645449086036843749674637528186160980138629269768685766064944199069850302257896624966560722630239680880777547336129352686017200188899088135774337023931196028982598545951828060184974186233679017029844870035427739225321020755687789530405483316478579923125879062356995501274222285157876478093274604585936892160701887288427222967561192597786609884768231308982148479790150907563929033167136226285208817017337765226275954223728869358337219892241579329861400980837282357676340975883294727524392717817272559432815851030126281935914781771562985716941916812585415210943760334652514268557244555589204836657295659112267663402910466821780732556181038104104265690910298648497811310069948378309005791017700992056592013824334330519460036308591039554720592241806954044115873455351267496948625438323679106032172096256793162443672895736813542598212266667425713006674181684912369510934407415742151451781597944870366314671918400476290631271887589966561649443792901143059553659758757021099048797121796227939897104475418691619764009028304876501876184955415854404676233541215961240603154918268420851639182335053270504161573414724967775533462889597697101607000391376092204597850433318821754278268027796391823661711723361912299495226654715400340152171608243949224777767153869997897726935205590036614032399585137907441725235014747362177684104733252188290171833527718274741905048837351015597963646270803590363769537458725446933367060068903670122050693639462063906773647453290224794277615692835373111110039290197783436451877226504002370289396244484123482261950599547218109815848483061689997898873328887280882479630939368071363835950305960898162685033941197138031845272827979288479846610236637594110104816652379142035588234292429505880097818001785731413556627065893294276945694086542079652526449130292297464284658371241056934536740402161586571286524727660213871732724459722599463665281183605078223890164082522578289718753608649117111843263909247797979889944287838193159351067982938325391567536783982900305058735650007747127198000728455326442562901497451149870777494713347605420292030399740836518887102473806172352141914588464955738007114656152825989138080706379106502490888524878510184848526985873447189636795956640145973709803841668367827990452648086926224528242525697402625510430508244899260136646495437957123509282113749500297499549455710643977479045571840004381889332065214105906417024305016730169548685160393605985729168363202196124587431776571962912534411056353436092144624717224884567487960325779133335625149771959818457059231477581963768449931650041296421368298632839829334484819118679484040968879332685454448348107509380163825932000821750408689054214137830854050336847515589836757595629665622553367093466686684061727560409836131324541454440402407878697972363755656696526783586576164434795582300992783055963508772171463922595237312406826198658186741877220451168585331629488823386812739210433691348812469343283241182174838104381631625643044714775085632869804164533847403982101603362102730264888912880451411918400691047659064137724302677972034216968033734004977924300546182261415073406943079259397044573950344507439488079098755467615840122391202530386164341114122898051093516642326761837895235579651279963028034368826339323412480508086799577939902527975562008354160586971858106170326789190221607364475917585521905837591839136317678254781792182103918790410531253694870348354145871723274142779953902154922691469480186955045482891957329974568165761165565089156524201958163242932982360819006184585299465522918837838594227413108111628142713924999582355839317293725268804100692573103587136089006804222525171338280381441380119303647775340609536684155781411301736870700986124870638418378095991112265114633186346212671757619599115116735861466705582885807398946578201103900870146885894298945994670408489078682305330671370056180028612883795500969945535344922497900834523457329741796140787210721460244019819288083424366892015381265809979118299946522660918382655892863878557792851005573493433281179274387380344546397102032174663675513186361574115475852950465752311216897838403770616822981254520199159108948020383177265155633763725601695687182323394664061804633633427019497383997627136240897382276446749876761342407714435342583914829861634768504051837468940367174728575335408848511953024491689454630756166006967359555958072005301020637674438183642005646393921213507671773765665855911889964510530671014004852906320164047081511028215712667556331710195227263733665959547683313855168020747092489528103558684517128019978389580736822615748870678654478622570388864640314583392586313976975875314868909867385118561103736361853066644377315834316908961646114191943495467669394087017577212687841221476831054040323329676033515745939838466377207674454465739280236064848751147899969091849350286797996250257152548736332735102783161106878946490044202170651491904861358554204346434202868864216439406414259594087002834536383378610052752987464773871550566557373744381989831268514499424270634149863083966363053114096501684409155288237135658966936420639519813804037683899163458812606268195138731134687436224145994255293150569726261418979443600599273334561292607712596570765215407085026872903953271396392011419018472636306094839504992365283713293016449945447559796376103128315396043311630753259993757778485822922187376048740524216661695388173730280560382813021826827123649764480855551829192893308029065166628936961445258705718172489918220036307729203635120429295626652636509369259791953475485529958759510265351955062934380848803341344400989921500259880957158383257763095345234723203375537897138497234139331669905469174984749221969479052028694514229265853388577985117412038231389203751810869043932106493198385503566773971321116368356279616316015453487762344684116071480803032718276622198655275056624584721328477231446193440411466556465296986409967270646460840613196040928233290499965081753745584773535524912239224568537032306945901705946115334311784859118541241615912365714543296605253102412395510504047097987407001121239883681011420966174359255008354579254671536749626518629790972373176085347714649354021961516699155361854843088199328374307801485360069158410477122799241032976471432815756758167682067290452455510676536797207632624361323096710046899915702312544524454462129237199411874324327944290471496773622968779340044311408830714708312038959445522139116148481091912764629623691260929528603407393668687617647837302733121060021556355095842044227137693861336486998559471657722284129689098602378103987069306745456209156854957093461842964212011098061706589788392955578945802920559453924639653441069649591602793228649799970370473668513422278814537995723265671085484660388866750284849910706454631793248097378020220155435268001006155390345789599597403546542281926875622747133145419830135231141468557587669664545263147624087197635272115379043942892171617535622621596784720109564312427953124404068261661185375198090853579006763937873350961889059929586469745140779393329027804466512360843101647683734105530302981091319930138698706615362518345634422979710938094061642213598661364374949790795871112155650204057287903692163891274365763635267875277514293842481163119513023018801054471244960668694787080377155826186962935860914390297783646005015098925608015454636223338454265219177805305772034128847943685738268065962919415492164939324520697373361030933451866465503063310075875055978182818151821269021299625457555882762341985566251217694530906568760226475934403334399422507876393341119155488245650348561601369024361340774820322253915816664110315192253720861600286707871917293667600132854716069929779133723352005585100891978929836966887829270123670415957435264562644689125645256976986433673626057770607823148625692836544775919357923344314572111149601092269975274269225660665016665772887383517839572985738423815543871638775839103691698032730288458185357078940820919567495919599277351377051108286703697302007673601632422055909980769294472504670179552936997824331510734298693573423304904540089106440005106149419273604221244317384804118085791261782574948425439874823923256052543851177565935387529130984457156899807310309665622818704427836810287660548475528615202816552815977183314690567903763358054732674961699892533072210008605343019038358806277906902668452538013140505732689951327811217580393708319194526766924488055475820044511390537704234432453891629884890338633266983998350786476572609321496172141656199209511190097167319140897615047952492797008569117977720931124850188168789404557180413398866369829054202082636156757556483140336463483847841640825357433132830593461765978641254927798672942866252846924711925585671975275466652493691369097365707210381909503939916716798542248817223085769434470879166693867867309865255272768097148739991770993350500559079346509080109600902072090711338064723433003961925765399659552465091706409282908138905245727705530775930960745992269209430194732553544163351084362086372658607187677034337790417437801025548922824365360447560502189871616137971161840485753073079152760619421241975747756544751319728521711022586509399006527697125813092114807142025109074565942514628604100629144353019351321003775762775559450498121371889394415665918171315377899673337072844248110095655471046422774934874815035468161799825106580537231216575507760838968965386709479891870642150141596553767088635066436920665598685446256332220858649853072802568013577746169435327514141468260521462083239753315424552050011645945753591202125840344353441903310839742953122050271615707877169541027920212703185745930653389602230713187168612449489051536106323445284453775879412492564885135888548387096069716887623995075462630095561877042187677819984181690534204649307907031914006055636951842576834903139037650045894148417869149661025588789435714872326906557315157614659472417610801012397457045137607391941681468875662724714178969589091005099373899975856152959672639371602798098121106015760214026231640362200720324979188215500397197227618500357539657129290814263964002019754364051635129927328429351879546950018826374971147912363962006960483592598492479780206357922432623242710683634068602348071949966927529997130491504980891392196219456006276460053612411913279950282080242989098328195910055697449121830431340690219913194573695720513238174926678768379131881068107396821081113903942247467402586365947368404354760375579062605956729041808501529938607303080054931910846548562897955779280815486537215635781404449762982112577869926491816932662777628249907956932769606694986251740149015161415579548424470258349692065748047007633958053188569873894718219764554782146297992383768322400016412107108535186015446001775845335927511759412607359726192096241399140354517090755495874257543865969264725528953761513433300374450203083721752237853120714871449730314618124094994312270525595560981856091742294159694257808173046510184027890945124708779252325066595753987465724018646133980420432109901748364300774826017763853516574089664780349346400687480790896540492818429090265155290078453114354810276589218756357698129846764082310293900899295173035346753225715260418979573754034017749974994114833484678844348627777020713421184675559769102653070827142144518343853859327470802521589202157383714640042794929841603430500620344868171842235188702241474218260830991839468961742571980737349240318203480905579733874768415925930519558539091988282821870123587646733310130134685435072695026639997230573904872225288263083312776196130905044644676963135786577953786248675986655755812474562962109970694245540353633116717091820171149789480790073508235001455725082791177376695234482452810423988914815913298144604858906821406462707103726524509599512761049735780810304113560844295270414545912798804019270671581680560122388030603524202925502867095941767515107388749190476056026684468814633591626203917844944163341561262713394574258335498411999248231383202920845837446135101410360926981922266388863604988401733639573552664755404196526213624317590717087789939310771693183669514214713669580520910023082445287194846528384435110835577186322684293274669973253417788401083828187693923255614418928453576757253629316455984866784409830139474824052977453830175016595449392972343434296461996734414528188870704813052577459258394877892542668830913686742298307750754821813628927333398854684671779709448855709593161898279143680932752056446162496638872687856302157152387029079932118797478018256116816496390856671320354121154165546993658495948458706537451804323358426766957471523698882397100374484596740539001927474806953233001902443632007852752234680350217803579295952160170814580159317578468530534008863593202829323517303875318361154394239156978649670239590668824657655544856043023803374685700733514835262663048972424189814304757749649414221668234428331099812426331419866709903096421538496816213037064336407817144918435310107812382866628296336144274924252651683574922100463333249442822062198593817451887367600683670999542946182737468512319419070115228710941716674664215236582818588323858157867885064531132230821524304922454104728875975965343216265893282074650491109078786157049119572434568397965610368983854365192601152919434829661342311135268318383709425931863732993723978098087444291207524993630273860026588662348870857326990467590609195366697773954077717976361747308344457945726517669070750212231279110868103223450629303355960623270776689351044089108501828137591282317041698477685852871360851698962475859845541220281864568567164964538243281706536352918395358723860923636455593155074864457247398670857301445572754672927619522071056333677703407356655375340590320979670340921259561975729329972709734600147058282047414207926782002860213659077437379352962182904054739321196464949980810366457442664801631449655469562708562700155316048066435426039475123595366645599251346095991542396257493121019453610058145733835644171071639668116429925957602172483647803422217620520554448235944005979428109554069300545982023362269673986784798267575861956610999760531863497232008271420660538862152903422178740319634648557122919446899108237549484517685789059446806915441752839537810327607626439394151818915955942326946781433194479166365190408306745232272304947765412753349654707110628770140273431625035738582792751866287745384319648606509540649153736143614812425299262568038204810417796880245542615450207769404032406288836036187957753678685609087317309286462121208600738633318666309986223910956820843800382596073879007426564632882022363213372424435549027028523389554989600925143271702924591287225582139982971800634511040300064462143399495507298806325446085708387042280928443743472565433017986124000113777910055728328741407236100054343462396811997872869153175765795373238038185890854467123508661851886130013714593785522947406298438173551301898125911081700879587229037325472569329481717525516549682171426469441183629546474211444756642003396725702448729694811309076955541885284357445443305004169035448671977676323691342255598297059522802661443370520407982569809527169591114640107338575587764962232752944586728210206373457388498925051510569799940250405093927582400607614112763946327392197597435056477192333358300080298967396587994882681759546849230358747018348406881617997545955529206819890089260652004032937024489842186353507639495172005446910596837900705515173337809880325185080551039944992774003883101114752145173131660545926899785151875496233448563396497082321844592117486244271257160690882999743522862364457619223546503873371475877076706648235731679987296752916796799309064633749391199695699391554609914794278177373074619101654728808457862351581001115658006208147330646411801181903416076065515254430143601409111887821490522497160027485769855520564213032662874685930813662587635611674105338281255469773349834782022430211179619916310215262008285269073877501418328161812129866986860720012634893598112016676851840035649548655490223876862931180573294249152272578775716535287163033979750206886777514058748556443568939006671450177575000473607960106558922207614632663625240519467042803231363137365591798529309955483955814920965194700749273808259667510267770810692431032612350999789799050465385491695416435762184720216784724123424457219114753638524320415263160403135242877824179395851552639302567619731630547137613453594072330656475704345905734886711330565861647024083450369305589559858361574884489947097181208821718755838854264741681997108572343670712935546302818550121175025848644873581230117468617344163610121230048738378493101148745466306052769602647778492410923023771616229910320433233085288660452690025644202469102518676194314769052717474134378807944134986316030235806449466917631087889333007173057659803739539370756709158415900894623124065070514413053393916786791799636327938232981628032918940935266985548693556044030109574412329668455685721146041625528661938987614454823951464933838163447949737222011305060183257055424846405238536698250808995458263010898812946864015373658946890442773232669663951388187396078499013234911608990194226723014621396825628074781224597221537281877567802130242439652951462156742869061610130634057375779558160574380939399424444702833997793262390280318286765361270470700129415567201336154920172665164623682620013276624523737189896905151214999363234905598541134341666795978318748376457864011811376329837758752317903760817639911706952288204488137224075931333837618944388751649461730129952857919458522111991382476872029021195014491459826262586545535214264048873114310920345815830369088591737041986952017460456358234790272109510015259453914980156171667488476379180451236174128620570159667144188077709687275686135397600867029780175738541519336301733592718646603987115187568882070391924697354236561248086889528429921249788070987636833083211429304992890245689459015068270982128967654997835108360895357648701996130571243184157968121568754349601803674881830972086376703870936071459108653235792461409667623652710746617253417407659817003494041070322950232142585190336638330269422877856694460802583583240405323907095585577687540166698598919043396024289414211941685255890085642833077495419147272757425472007857527464085542822747570247145856943333102286888783256768690040735025092902142034298912371717465223807000620974701036924882781097789235352584215543707145167783335076623811471898069340606488048947204593675212122384324908049648143263719248826383587405561194412876242928440331428890450870315064445035074972146717376766753148184372655599192617091710041340929807159912317011074840053178902513945493764224515779261166821491335211663624262912989128872711266436504371286025245298269786149982376983014738616537055714980187259545755676021496244425198305358807144396655792319458016333143241763939884336859115026106224053664113913227154678468402405845577061121445519016722463010061692873904066676974890465853213126609428745176810653187790181764424444891807353514053125262173139315792134979285099932908871083634717492941312439437338263901225098353705265872055869676602104051662906185955900817256787788843293782820099245160515195144317553977170183742886175634746572127531250681327171776236532746045465839142028909040875738955768353204849400786877030243190682356505876728718786659438600500327779046217855038389684160378018476081323815360114323170116766272888291453636549050083693035641832089131926232516704195669394826067147014522243951495533748117505487281677210889202005685312708473073792398002773505956835221649009694179010726683846050191488701128149040640091881825779061847963831459037497197469607355101106675332455411176705629750004126872553195893020900492548219650015976890236476385213379660263936115880922995172381233321794699672714588356799319604084331070081259153476828482175009004222915816021930246538043227997130118987966615740460828239597744023459193358081364776551091651033984935822178577790429659136989302611777297914021991559153087967897413422672116901224383414333487952733515007915576719189210307512080871384267557596396075905847383108772669949671627017275633505772151507164550770415310162772492103047740398337269824973470121861966752861306456109220690658540026546823311008753492751404312030588061359210802399199947966297351909150849900488790653273898867353980530692993896364112665237083745111440923165243416748637944520240428471514192351996310486812067645714121073883971575131393627739253321016256338382752169216764254127535041366959079570531573152657323133917095901295742447233830277292730090929762901870853509396819486963845875118684601659923566249508833981903804750834434837238211195039672101291804930064968366169331019015107194504105678738693884300910821002188416361308505751361843496447267135449348483055297712161445493038884913336353376073963207385037187735599736391300270968953248205697311020909190748501032319460700665505405718218069488252587380975720222568200223775301414276637782331734411812820142337159246724596529848844593027483053096970590424805050264578312588624121981488645058181474339668882026514153578054602482732266174947558044774926290530537068206304695371260435712430310297867261236238244570715013975444796423726638266939475347882136175422693965297159204816596482249317758580776092048582654963756157966243026775607717689645854933345898203186198600139660706396529730045792913512316620942435585185409513189373612505559567852500490306016413697036156773753387439345946971153623249563185647293019544870304255358480986102378492659266914715065814092935959597810771486690788447134657952810164774626287724742287960887734418271536954775856566322780467304344615728324300108100006312605480270049282009541263395947448829593213723528506952634353216590235612997652001918965845143051130361714370590506739334618656188467934118797351256334442937466629730980417974227836631499814562667479033275325390007986922754201036842692017134605201558282338747453384574933311820133780855867946665944194503544861203623295529242651207285679641249840171246663511031650454532471580396863111339428958553756252865655336308900838601078738893884639698967377279758892918307614194565066092531683819786766774886670552055991891104037057826615292027062985354373854537118957602925698358415704200938421737797407408064205704707937376539737770925773234525029262869725454771882062636196053058577477471646883467284920348827036760454530890887952054872630247371984798867959595961470205209499873859271467210017964016747745413135243174243963635517988044751359779631635997681824846985485505791434257286815428329273166323584183370906984341462549869453430490750987152578926271869898331815341590179959218510587988685532828138719154155461231509490777969405536245940802063268736375510987490677298043615824175413026410591287554749277245118294572862698456603437427806368207895913210046171558262302159780895221859702235445274530757468848894491464816801131149759628555180102622658786835888663675286731312707954197433067821822912007478408769964772345153651792135224516505795788266959177957850920232052275623395005757614065773379386729389278000789706945091897930093823282321857527942723873514491179986822757556118103578204057002350540580504300587369730543392642013911405507910821890413375827125784066482000377611946362374970030472401545597177274082680242189222624999827481676710769108103009693552196886385360187950468402972867528553662561340862113067476021334516371010147685484355286127703868413544761675037362176491995987146114336112187388563690491885709898228285825484988356800561982527376953883292186448031369321553997881424215670107160913954100690032270906699243386994041340267696639167715978194923166551379635679391449448574524844697738467112117025624662185472735751740259681682718322145017985364898634689260546098460906433197263450193408188917591603576774115102435067004395668404852146480270269466333747806673579754838802810495205045780897286555785659187439058011059020548137041876488509185984462953847015516168283370661591211974872789720317412494625857377213880213392414089845643269303885490797794005960301498975866822835895422191173315175671018133516949588477110604207153507977165536048504440217671591202096467242159001842245104722933072130063702757471347743413006546699495089475658623559082236495518821320124824420244582954834111795125423043227986621039010528881411404682374318077831033454233482606867526534587433296708197250642643651696650128586527700844587826507367038684187709506186202092309178249048229810185701597005686260922635776531625527369699955199820574075454040943363119697044018237280883486256344230606254306836238649943330539172041963496224838900570520556385739125743057855187489393119342157138723826972321000935147165282572576563734957403651738872324548461597956196424896959807462573786307928595343945835773927137853050461937937452974479344617664196618703496770766982004858499628622810322043539873329664898832790087472230735034131448279335641636350921554417751457771639541030327481992071765829080561673881918482006155919914655217886505554743354334638948019552099258730627550236877195252877990615615634085506830762494526993287994719206309919485828040811276435812770736621110684171606608646560614013486311522568184619263494763676501917264735856689532991682693453825093343366000950993256599840162705638114882693316738913226335732255255874865656212690234890717336191132455946033598124141607201043419126921701822725543536773456120731699190490482844742551281996509613452266473851547651343111099880568702754639709221753942912245650810331663200844437229323575101189307721908881285560061255385902735264721987051216554053481028932831950725317807118593418064793411711627253599940426664321466845694965744091412728639689508937994236633332251922311045064397365263404385530496119315090244589947268997889793570045244185973076144137270264959745909985908850717311963499695450890893246704301743837002997571332028902450584918932933250599975888736046233880515514616154785738677555150500863521010500923725991326148340357838076513741852128265929660149977608053461169255736807742249639364127308518139247875546746100315509112794983775692256095953396472233744413148123714434276667367187560294845492085392591824540154479174341168282524846292413825279316508191265913129930501842809174883774469446008682131172811966158297660804512065369233088835225697437963655306479172449333338102021819226077183053767769574647552149404479333698678947025955799458719116513972053830842329255105425085346349216991552706546301404966308640623842768349169457664824913638002167354420045810997436352380846566922083261078451465546337059614877048073488897602047312080589734291391504266118787781310952923669144368486076836172654496584387981545625262764180382193355193072162035588837528593297348434066854166029918969867795383243325739493253845771275299685043499517377082155937624645032081972078581062123868960449196944192385592766255758295541745683304593775896758298746633067488906451352164748326377619575118544674274148604292273339787522950915796290425751095772340700508310817480928458439511626418212908891877385995416360609703227728734492076179201533760029105558588085892986453947961756560804668039811535747534231838210412275472731357903018124061822395170762942463283991195852027528067404877906599898536925435250863723176079312956482362081088626436862179472133250387283392472272936967428278102474231432328074860376890158261412542570557565836645519444062137190249876172299876234711731968169681616629438594779537203368634683780271963301278144982790065732774058173227065355319296020836605909809677191492728966165715679080255534388429351493268065249903753584679968889613332498417881387913114661895771283836608717355073453989339615743453380759854936008502642075498898081755845409503892790986635245758568533220744453876030462330179659902808791080370006544828599506805547361032577170965182500115979306815986533664842936303838343103038027703052101009929905911309456632727059996494612994511165042600869982560046484291433121750699970590004142991325550193346950200696590673863835157286244400948183929587149603567689830028667665248335269124914305547294895826961365095873559765328431996400458329229906640195162716207727953438573844384873567750219917327068534416058868538339110370792584763520955449371132954427133877509719444585254267605140799488593775796740811919951370211940917802554645798175147208034527447235088679598077560399610017605886108875561194900269097327881772549603594364649463976446140090653556920098449705191800299853446065833774136209718532212790303015372695188727602473193360306707303833497684221935028114617064533539904242632762913870074061816158617802870895479173324979764421409801156970345142241227689854992615298155430984430085736014640077242839516813661565876211470242563662623254333787891276020561124377359342936290034471663557234511490774664632717484964815964138646622176075746814772670215792708516706738342623144068399100969477445415735047094432632066404012440479961056292402871772146917597507889599364525179960666751918422150373933392729773599777887923429013651167047094120355857320655597701394632797537602459565290291846641020410809803746016405275595322960819724897008852070663749375476227365820120805472001621830665146183572599362751086641213459576685248527898962932304209130835951629828838648412951831203135846848149775962501854742350466378030627248576997933829435064739440316865561045866681910333692534304892013439549861850011844127764666433888506074360236323707236803443126781173325840406356017409559153319892047161048952394105634618589989613669447509456265844457242644921315460822510458386882601189743152595063607037055454058958361600494971062739722545777088674183063810887833719732696069636926314353435038754491082106288708323830744721853791181214548984385053551359208968939874350741209513204012537587940749374606129052546387833729091988070820286294535572463184913785427852660950164263623674506154349172532450538876579857376210896226728901564010533463915017567915448446514138267962845369671412908249055218856690639935849095148169845235681829140884387588869646441392426050149527060233513027821967179998564786452254523274103153441359057387413516731638201170458130896497892694295391892263589769489126366112425909157490866701703328775097692860699488861262720539446334909373094231266712102579185468728380809422720260162413968478581405422590717779737829138701765762913212106389778614877434177949853980428627310964142949783850329314857974930106304129678019186558065934369920746543124631693905501042593127687395095552898523199294734879513481775961579757462524282466897591719017935642652057288576462114934733245029064254540660605180321890415170551119650070084554336414093996198765778136538458464881061262281480390121082331357658366196887538959500150582810217090650910962677583351709007339404040815264569920412727478913621866710629965361639270873416348760601451922192786116344911503454994800428400491470810867111606760533111385951168748795514578504220253550414560262190648026472945413344349921801591983715337255244510641470343938977647385763571116532453517944471845978839427387152456782420440390388739403188745500976490251422233279800283153512813918523898228514400288698640770854417195165947317689122727491495453856083263409359654126296841211789404128114973470394123704505875398549878852702113027220227084576521035410914782340552942861495661826665236238215626155264671013115365135543748264388267593748578865524207735247571931987102248903764609855494529081781106608653652104418624309196913027828877817407671680347472824269584081950008895244885141051146833752905559172805944714891954503599332254158463742511014162618891760922631443828142657243125456015946466159277638630701746315142908765389111134874229915716915770642257297289056580973136378347026100199940785536206156927409131404902305944785128604057444762709198617780435478503680273961577180463939708599620540713677434499090089052747104482380896887362099133124257119619732500730974422759139651556319680376977795322360240608610461533440562416599452267879888935833754213277523634120971047307589137870947970565804548875524493264730719656952740225428200013260941511940688634156722234518114137584463494615380608982046422356106030330504694459994214440074979337839176640303821371955968164830121781963853057373574800997851010405054896061038498553521688780260702093908492655648882036843916752871645428750447174755590984582781217706352411768092951300493718553288469601355081640734734876006153852455173259494713490236384814508038590127605953038982532676436339954558326741089736167943703090160046890004851857275950163117758623052674313017547720504130272779489190145247220879035969400763201372244960541981927765261825523743046399299303843066645528545964871113309612894097196117871951713929190353214898535142960589757195259431136897850121659092821736823644634496723107355632785612330342389828947482064492979386718370997388260809847330216161161193201868048003904435400262062742933063001505344842733269995006267395761410141149827962531913547485406143482806244568334682054017193800437596242331882289642570854400459492684296740460128187851533575159511045601564707344625350635997307603910326236427651584137294493479433263731344564810206069917435272356234776929215673348051229699884340082866873424660732460659031007073092220617926835885846333809872377697602268438882464179967581161021761501410666755189611099295182262646266190451131365096190063266197894184777593244483465466970259628651493926920232060057076402894799833694901683783219337994288180184907735964568417399790895465612525763394918776354828164933735461979843367922955173193951722033586031643216253695650642423826163327825210952758567444117560626907075951929035344771733695384401614328144667576252766004560169451980163310279587910832623396048665259375981837212874928240127089698228794752710761591247420170772382061054132142669497711216212863681271448085124467326651884465228967078577858960048116203858471153155408364747210863701484088573239390349599977179199912261190860022858905703892935708938296163721998831851175359577716683988274494699990033272176055266443804588785148460085629003760863951748753674467107916173535556599097823681848301462635855205035547607800060822511505895628129410216789446795418976017513101283243426482984855783109082625714445030842883684230428584694165063236654602555803846680225494746150772100158674851871508060358387493255838068173529915666209060776441697673302378150501906973770339555839447059981655073971568412997351144275290269957967145377129347139685141779306705039264403270432875572240737700785313761852262397898910432804612710044006333880205617621671110603564281618666965815650598007654257749278701934847992207612802190341265725580605337111322771899452286745771985884089174757855067983902453634023149250126930352487791384113672822848227170817838639145607593888098917576350024634212079179031785086911736261230060118561780952804031762665623411001138261795011652037000035037122986473652227685137278353913462052205629212073509960082659430804387907950857543629008024074061281745215009736368661101769732937915245231185082759975741073792023571881899004908371898024734204748654235583144901914131068567732526629179322400059199116616369463557955556077165680189544107698792394623599893726663452924220289849805693633238815569257887300082825033175023104162198177438901389922230577500552558948054896581345333608976707223123340966845953715542414144944140934959386207227017262691001894762203194922783957501237324999269126138352256339529514546593276980544691523696437430746805184141844107953406934428958046126533165363716170997079362442130332053315510462487641175108381825462321980780234055386126337565339583661131404869657074307811913734859248018367501893918756840954777864287149691649552681325132524752234982426568842945464864761942959222442568978597579579076762417883200585889444114188379433165667307470179570711500261938447908238548367129669826907679148614643347101375162888084624936526845117069848455572859858130520572416915997039687731275333110309801225150274697942051261372492855515729475261676399636119142571982290206478433918857744387061406306633712536854018467812643611811149851308927283312375091614167853117966682234507697454742874150509280671167877825257322933457405627139669446252546406618242246166226622834659647309613460684640397911344991792991511912040051631609659760234843069230343473987263243695074938066503420218452673633483426546248435720755264067851892945589869144098567499294391384128227671169380983341953155100128286589136726844649260288960735385688273843106772242613563130295767376732279536827292740089384848509003438830788719341761430343015656159259143494373193770308272069458842174231712063712041548045281450681051044470525716774795267912631074520552819772125598440653178399243217149988256484140513363708716258783497932600824877724255907634258639996473510650478037391726836120500177500810708501144975600861153093434205396952718858486123740399230833853781108983870152573063661203187418141842428851999676431282884370711253512868943202277156224600558914678625161764918993542860627208874321307825797552246399348903157164638169673734125965196645782762851065380294610683902629269501169782783974907420070880892889605086288680426528880765456353422513195014939627033322421660718257725279867350428127172779516890009943182437997300222822083727163885160463231802250438249423749360004107134190230705657213607320124695121028711593706365195036206988400529462349611223721834945814147749446162651801687660017648240117690758080895286361429907334278094253588787124337499154723747361638635229139405520397863706929834589616530605872051121767446611549010961990246359904387653017385332826156444638724843392656186608312788545060794519885220256959418166332768605463721314764252286888191447558180286186814578198298110812602095610909756250482812654558207162351484849118035360553296367137644966916237326660508426553013947744159117094778607694752453680539310499982817541578456484743299428173026628148189190054711172298780413296205029932677180970606214540627179868182728904817721782270180318910094790155681461494050507323849629023715128656643303639482817574856553324354634480694209521300083668630356173610808765618877106293586469209114259411662483544243690498300042142983696038667205146923712339286222543567748795561439465686634259914673945115754919792037999003741444146836879453767064312884420442629266914095933937708932387492549573447311060154612430045678077412558262235079104131032843508811835788740956428348750111958523455488906723467356147570235459694199656053891137164130170263103109609988982797992494864460448108780343249779085086986865032747607225455980717743705811709146580424786687369756073358371810374250197694338967016005741384790050209916230494433460770222148233826059547804696234214878743439206153514936315392151757129034788713439341947169816939681287422257653060483316006574647180862835306215998282535936847175721413861352036855730564191814688694033887199629128340761742341281785833626333340992608703571585684645163698329451476713353134914129065341859559889651252578651952307389623957884669960824935153816980937661557210534938895990500088325737609525241720883647532874638725116891029999416111911135832407168108100781569991665468960363464319591476456210328225766809164110385717004930990234814598736542335728832726776960022754150764601814020630910005476930673743756330378092649895911261315148958301036815324507121645654144812034919270142507182578392516987165444316762489296122801606830405749424401742506096997348367682432961924231188944007437759065795479311790405513728387409443390241432302352927043079882867694301350176212759594222464098867956779066686883762524838788776752167651259647098475877568583221248821877769690215892378982517893426708081311694225142371619395271159375094117674328789107397763472122203376301074132157191420015172072353859631384407384299665636253298506317215010604155163944069622280389760472194742363683512631581373460565392860112356273575912477208719592665766874195411590493524810459522221814855051961797398269346455534413336811403627808162463834396993711486027987530381457507046750439619552761485138379636915756751933120011376679190848562881552342402232334456325732436969558785848130802785844193878048401436255772352737538579390023971945613680209377660817547318228792978592416544087589359530058102968807108862709096890554428128650153450005521646040406742185292059961982312012930740226606035184435519049352717916371156590053842766469778378347246793676200347005195093196005134264552249350387307123226137519247314688068383585994395894875838118197520255447184990279208379194881091667924611136417337027539995715481301988506824984419101238806025030198141852862647958766945996878197662570476566241317810991593051008379748750655317067508957257661530645409299902751783500872320507683300957896569768818772062220195580000631590876713935700620685605963191405159185620958198757812235449021574937334750594560259230850764545680244939032843379158207651640565527348518449685014610010614858169398409373370799343865312539506110883052359315011071909666040737924657469901946945414288176704877330448189838257457104426252693664918133650426868891001407208232582353692750230018280715433275529834681262075439991225984596852678393157602451039184963452903783826229195367946539557296066260641173891732709999178343924928118775822300767530110004157891431232697587609482314487436471878870312735024888828923128321215477091715720671955546730350550592310414473392915059799204614571142842972399904196379162352587253153875432149980805361398089789330353876793273789603663150561871646339458385474191139785750798319324046940037377891246780706201139310377777870664977094370787695418385312783464344802879580577995440043731421213111340522540336571958147485645799678587883265616544573201015612372253300797044586121097553880129045218379393058010199825208437542682913346530576294618346885461969878118932322762274645334685965995832426804737224332274501762701280466156465583497781824131473166908583389150695634694756894433814402916336085839157451474236638205182249836712162479264946941349522317287128931699220705377557572099639191782169067655414067875006255160515585068997516830086432606121661514177149515983343476857830483712680546690160815562952901395739346621708040029275279013300212896496959522603717927294925620620742837092936930658002340658919213420003135743222418300125581833394167296771359213638719802437233607843215197849965246430436937592259409483421534819851242617241801565204126694120139946024412911264884595901015692896367597917044535815330480192889963238879126295794450122389302013203626342672074471475182133824538942843823879869226342324251710958243969172580387232111761503113103705330322545953475723673248615044099802810548936567813074211741212274836949432613419464758170956974880150395991166806064221584871677431296347409392772228106486938286813870356420985093623708644455106676874817758508761880243315324244449547349558751576998069722761163144126621921990417930634952009932252890778228399634617594934807306027784091249992469065657883769827428993416327261152677066419694385192840161447835326299957676251875243279793970628118457632192066356425841570265151887546248888243402208501287018702716301157070726532570709707030320544319491609954603956277372751831215669423619483612439955345264871757172591153363906644997251344878272723185361730222498233285895497022375023423235794221500238008706375352210047062630412069166837787908498079877399126754444800274176928463017722800684078118987916800463769107266041763638617057778295534465410899218214163365395474751141308566472467783018279111481132679416521186507608147356506554068678013331424815087687573447135873515864573677811254850715596949699683698091307833681663072800890162574168452339663829584528873024570179921619326045172762172430107635517608254125702861787466170216480403328588726831086427707872058981235209942045589231862809384669496895711644524941060784395079634891299759094944372176176060110256820927802312902937991441019587633323592216432659042651330285545370738230643552884802706539654857839052251420342447894189665120110310220454500586723768509719639733720310893475015148659989245199539634653672980730576227482474011352839628920831106855675401153048781659649528745787973714450326374104417392840063133208213655793514571433834465674802233591018097341782566079144746095828918562234297410181158707624656560828896850486974064224695003570749173716790564043058100540020116794120671082540297209833078826514949801003090550753389048588719342883001307445057082517926372059699376968214427848557511430656057391587393537708607803000429096251741703061658010027547368750036639615543590229673718212719092297798259141274313519760680217672415002377881592267235831484588820749464463225108882163395812943944408962079674830915336821491863407530016794256474703194398119342348098262786004926006280391374766917692485328942841875812249770765601616865065993310526616075074220219221216022630731955330767946257910807976920292511039675492821736911788008100657607825891631898122785427773641791723795438111251263711924155684428545726977606983310871664797482003075007338288610804579310568102392274756075120065160023974422310233998089653361392010080451379326593149747216910623481907125578777403892719193398938167787446921076024000384413176959237186736745476407155795067218906230907823673524451219171941054774967489060609093044498592483514300672436901064680725418624651412106520201966470267639357636400016680156872049132230363291350254634712923997765105060969983019043586602636679889233295284360039149163184194836350209751821735029980452405145562193591651871860346204222865863351687422187941107738352840960509249943759325963451894398487286263882378208839843068177999924650677523083412078536977603359611469745861980460382457162850770425659352321724694933938217380921760748377627224614437704571777661458283835824902625834090067935844527377114624150666521732528644898057315205870368975896867751316166115373668568569101169568010452826157134425936358211330478147042278012483136385531027713559695295766741190239793899155465460767031275120574871104839599302317792793718727555589455532905802544143914682168960800468246030329022643153910501716555667127363981355512863308177429908705308087537916888800173358983940239441423990374338239859583250451759593214240150540482211549887315656788050475143626885717394020309334065017718544598475592852954427653393777713155452861710010767419925294681961198322394439884220618194613089635132794720430650931006059324166780855285778950112554117053909919692708246729434458588820346824898643138522657503403963102663929470916045267457996427145294237705593286488123463976131267852131047281009260869921401641528344305663349574873378936726925662721540599771236170763746507994742460392146719262447041786047750341963290951764545934926788193572775665116877135979757742688086184265363003069582116136772023022544757492063440902199324785004725434826015784713569986747543754355469828623648739807491641440115932133524689742355068870643420286654367867017081013097149937373287121112312926653357986101435932818685140348719039601188849694047028840574186107336741242710817396903624785585824474704556305131873400591230928912379201271362503663171937523763850582074313175109452026606017501397587834931005515795118175247027259543583298380578718620635228169787580598352493208688687504674110133675380974585780224418246419368099075168277595782305448251410988622576625604247492916002095164494136869351934110440108436985902302502084116622971599427177383278628983238443859190928476005251050632371905915077895212272392703234921672209891300044169393867781828762928359941194629130788846497660487479432995822726314868420982559789450098290936758281948780130361892831204852674212234374237295041647195142055738976749810530896373365493839653841584662974900279788966466370750882633610912166836987188105842937288433361314954943346071082847121098630541839908028579074172272403108058106229837629579500018142468613341844747894946282691426132572011574911813251662362172208400567260742887178550970019190464901363421648045457125808579487957125638182567207891712321545521008148144030027040253218957025187513759440187662369551530437864487247845071153891348379833379353581931807194229756090102128565741669212058166133517328100133965179097167665522194836870706244792861359521414356754909808536037237161456502642146627774736523139245873368390643626227992011750103954096843600814945570118621476813202436881631299002421984654013178199191659340592405301134688001483784817551572103436277846258134853461032521657926936644360135632185558532581304633458757079396733127999030156144918207310269569899589486216029471482788544539524108875713224537460248208408989518640055315466440862683377570798067196486238229442863986668098778765080693414470968746505654406725765160651084313940789531490157329922693785572420803269170419510594203578588665471759498370640201641595174710721514084825719003009754610125306469729033414816161700353718617430590061854038088816409034886540221732576753775827476335183541889856680087440370923555597832476825161498488631631310646283845449497454294691695242217704491971262156036374610616440862547482356481132795667913492189625780108487542235454544415139502478041897665013226506170995907150797847866185977016388757039868273801099770263395709736636445362486864419240611216569958476599478450269530650985844275635298756725954656427879602965029558128269761146092209910245531127654168267995604951515387265544421086176421269310450914654996303967546658504122106177840888544553292173753667058182616416666567554332093669901276558836822406358589912406661179572753544558260137524195302615015062751821355633177184068898206095633100818169758107074035661132931577559037899349216620378861881483401382672782505879800150912490402398486852743816678267824412673428879698524409550084755368136025574679533766084534597879586661811612814255618653073471990189586258968123084449440194207793879757306715068538837249961448661300647464244185765476118603135865486571499078352828600573903362081988617580485437734585453907478572761739729799050699900612681668528886724753574174436148385786074821959082851090114959491420196733062581923446925018461423028610025493596016076994471294340112980989599624169061224638452489979085728383950404728464772525862705774346563730689548756506418197464395241709321466423190609160625630582675775157428464120509993722250766562572145507886208821393683406847940588168323189865503115040497892732669070317557297337947637327669996979768603394385952741563299236543304503438327009471700301844634119978255949813008748967034949714651753174686244277314015973436960803453669263029657509642639030902521530311982195938791304313247943317928136591158226499402841552280224608512163645062427446315547001115657082139768460279895062688150470827087677392124077393018952782275161998499491417532959863877702038569798888515215116879206949539853124470757438359730750851620276823919424995039211819203410865743960873534711982783662552072807077667503280619050879244203411729976481313123446518455334681875099661103468718826295487661345795598066823084183058678434898458194216668387298419652515121856532752863317928420499474584029528877075500590544201181113791047293252157653213305157906168499239848764804896998148147787159996785960939564951808660334949768464216927790056922479103141802614473160053912266795038481054706490306725122637952490878427305446109982797749925209447118747821064970578856591251456045442159756837581326391882406167957267626585001191094920019137970723734394420232963294126920640339675560311234904238525479276267093708513957867156939402988907559117817982264108405190887110923182496308458204084974552499748523550147500500546317037576619957520672139272246373954152661396933689192585458282420913104321955076045107332585443582201423955576545536462249883915003043505554290073262710819714400204957484521021376192939725369112651474610448386185045130234488745448732754557464479280309125956866298099687512481488280767875134831938611526621715312796481902755137601677269981128495265014504958807221070554522770951520679886476407933757422105000384663152520338336913136586978588060171857809204269201763942518125253665547016064469049169528106878837709182272354822903022949670369921653454938588723018998300861888713177306632865667166814808894226592322548136121078679786237896964700188690301475471680247080428733391507434954169635220371449323350109301636903270775471939376029003374506417910834781372481415915036048122422813097782488703284249088655233854189004755309433625017879180567110936415674959144944443403888153453186919391209031944802997883181043227271360487958482883560350427243813473843575225243071663894977800030336153383080340111240560504924195830172190470112584372442140242255439772208651072859025321185460138738020644768415978889283681805894010726009590630595529205651828399256664621108914367618214594570800933215543919336512680694047443188531459888400262975442680491546724190545672291112875037320855898133121714527893448411762059859151967180142869283677269778975454572412147549339663492855230281480801755252153857088491768451252558180879402616181870258514511829961476322320364746121640666566143020390396637391586709258304330525390291141345410861904414465295946511916931282368634782423329602763015339781569525658280352898337214315741494761758037594754603510806120603299854006421440686148409273493119005869373832747305791343360411560549331240945860473264828528210690772360119156920986039348779198323071939215699727611280130771667253450833158260142791634351682583428490033796891637875978819657258821690057322572135108521892382555702248532369852961134972691401704398416571639349084610917401155989881583132210594986486781234950741496233949043971417595054287071126836101418984010994538594045841540473865943821170420219819961477293071808334948001441995429033716597388024351017955918341477984219906726539483775641972621595404705143719336945171932140109255703443912156446476147363113936917549095085380143486281444166022864383208936677099317757409312880082341959767187323391194662607981042455355200085358762121412025886212479922695840053646386216437756836253355591696985657321813957601747633118989643599673256470161631480759615171582192481346652939316658600764996712223015372512256295561303002045688852503482101357730686955179505569216587225193350215144513625374023405128233322284810902222702445959821548667351272047362869479316669509818682568218264655774105102145321754838882393982692486681822475141356951346062377303493022168369685749499118159997752013341106934119328791569899622793221767731278529573775880515321070015143189545043419440256230920225400005784053664793270886097935818184213982131565469216406195058253005621427629680247080641702133409742869481438264274246697532242206532428308787387932270328455494860018316198134780583146136288796425588498545459673530308914839098374896075688410486704101361549862125063895185192447138673402058281183677144785583518545587803586374290502211210026373458513205320426878074103464618672890810111062045235541507253043196942685613288562915865733509348908777953764759531063361261318144031625986106064247648635625511646011602016249877059485112050775062272685522511069216402956689476369281943207745379393721439991797139107497441466422804905878049093555368791668119447277787528955839632544690599683704952105926272985660031589462653293840894339484629593674903009272031057371359232536524102752434357589344428835895490635942615113833401142964705159270194856870873645841550580067361391310352829619724098421887453051189716489371747655688172512582243767447090869466785441417867299549107800701802318723157354569955865127673821183282568583760053578928670251916442441808031528696155004308245806564645870082855844457959703647863004009895546253866381338924838376810075359964768784618516330306824073282608282471335849286144493039324904526368169330154774352207753301673140341566182996284772523498571290814323886910942852591136077249925585641005703608195455089859215062499304344499911864560782826037998815921671668569827853110071733342166176338055022787069467430285405552346261423974922283861006182349976864789711083966516665853663900763204171940724834313632864856597527649132409910779557813895166789278825467474027152433245382974968758050239814163759799237617731462835294739592963426874504536530988285589810186400995161831568271704070629483827753442646896451170257157825883439284989170304722634167092063663919103767269086448107564212607878602550708534817380794922726360438937468873537559409351589672924913616162106270838922594781099418393047001194506553130766262710540090368962339496929119904057367184611085349119062359593371975313095917767745195197033542946779800460381023137707178014597613696215423984643590085265413517179991608445953143462630543550011198478811823588922390102483514164247493491903147863041670709319805267620057277674162221538109128467067108849942060265991352627554534668289664790209497152176917251639254518588723904898005802628522942213947855740356908060375386784711969351995753744677245785181841977337909316626201787494944275567337189626035592589440384352184670171786640556088931353475685967805999116225028953122196870537704150091079265812605517056189596987401519940611743040892262594161737092912778462784784981399530042599822373962093193671070328028980793875301293814475171114676185465263941662251276592077931284377307836594227969775988978292399606549450956550051981296624619415360650585046069024822357565962536456953987977511469361809326120014464837715045019661044685145290731764854220578646437878232645627908222272394929568289273880094498689607297216064027347345432559484252113446034107566082305437336952186730252794957492432619726728557801169253084498216891883272980788921047107128253550946700036475813905898710414379294700173762892765666874611160569642574468659067048745098384373134499912076194528355583954402386103012634723141810572230767567922679670091064369333166552886760365604453554409471103284820864457781705422119788462018093804719175654619799138759192527656186075575859955059784396694477037575016297970185481622469256443903017654518349557037279305176368418659394435008282588861707597258665360900012965032499991879184490866394355224986176513705222837108651715409632709562199953197988548555942037740333363406526753213281218228264288934505940397464477606741901348267861454646568893781160793527583807444355323225363123816518394407875407391598213530153546247202607994730849364369894216479025279050987272822283545726600355632723803692998897499483073618510594834298576769396576126606834285599044187245235620735636804665133009299701077098985552251246021205546681420768274040373968898591287568488019917925083333327514576914192878087585399973558003666439084733792278207682153273153129882536890792519803977770192168007714050888425831522106169076329462728279044570393217292491699157077149936801939892637888224379649420365114438697763529797502779603763598132821481297422803298219557956506795936570882313236744082192600468578675100942411508684272835161888814618561886954161484527357194972445065441976362782371058303438315097308298228047807388211938525337075474123151406420402432684931074950838120443821006062449685053702633829708217759773006980472297192702448046898828779563585516656937438698883024811946000411893741908750274404057336880658535441789945313924030872946600352800844683074388002650586009352460459442721494403538172948964368019079093594783692800002863514589377890181336305275472535193643343499814373642192588395975235277406539499013892274113179596285249588166028169979776169367799774423621792836184460167885948432440359114505419187811912212462913292347037549491957777500965006336657619523142815370131223255314555314874627073558566375989540800898676840322204447859792985708140238197179749217923841500698634616098104479666196853052222637648266427058809497889176715335934818716433098634188297310207205854538070647390015894761622535394977500828559677300183240147173035762743658259269103293966768936137510359646966996091526874514502482563308168555137798966868445377877676714772923482824409596118388137836522062758096691442220417627039003948143977916842604948745888405430880899082380630956102553762985827150700224422830389781076469415276407310695659013350763672434074616894509706913247047924366683080933221633479118770837451628686810632939814554351931066051101389092068611132082412559971514791911205951180198888051537388465509730617714154119905100103471368441282724378134496946332178141826834582363815209344542994501454915799296687552045901030754124739936173041735247020046549083781889185522526767893865600630560601213108742511040696426554471972795308434636628652067596623154834601999892791966146041250613560472214904543103088188683062564047114881954573476815045624413003207495882095656609807803985862794906725763180334489614930796115240280371762621159325135605435982001493189888058704799574123617408715803535656430707329410415989253358901771676256979209759520080521210474602834074569693157371931372809223603084384746918905262682805445563707685047063026368550643337093176141979113926043648806552358412579898281056113486874818157515953472211655848501098176809976195976223739242585845666151239068936431738745292887916894382500042288815899530391085103892001198731806139991682634318647789268768496354385436280026416965045608702072685858241009340672799163639283615412631733071659477831134938550722791911291007652734401960531338276450271229190785450542463873273399026861376881649608857958355187772878187228519346951105174244978793957755257236037227271069932001496349373034322107569322023600275723258868409059103844269357880452839011308610878533456795763674899507949579335987058682751956904354537957869014302417177102086252043079615286133694464204402013426965435833819502282476734953789076023815540561976819515754769715732261038459787616777014593553641370070314888696533323543328714848670267894798476044312767440624788170680300484474222342747417204237971258934612444529332985543793003144284150485741423375591778657428214223807513936177621791056024603276043244004316471421950583497690258988191465941972348046582178403193578129724227619440270497922661603208456543676545129813176868761327766518506248989356342178633424627383402736365454591142628575479480654626396527724737549525721153173300314505217102465305880704740067516178114296211214771682164702676704111609172405170312201519663474611646744200331195744134847203648808047300732126226387873493777395899591319680973091315714476379738790745535823553279305919154973303221781403262348159785498317250537016456212453365708874960847871324861438254780726628238560191953519943387431286378269886748021120891081084039498784244922242705716506031922897280453187309613627113302905881507484236506501259610386536026874690990097101546229614150379174344474997887512175984958580457482125258330896640185804600417687942263503210103587885028202771792491720969966661357920713933342721630674909744503032903705946070412622943090775534703608614909154140555722456054549672365332469096521497540507009452872124179575774255602229900511175393366757486021460032405460104022782801796274137345004918212863332417215200032418118407250877028284093848858735356264518865745210757329705010430932236514865752570695905054142492816440724569465284010164626612656465949661932760999107026772627995501760983533195355408523241161351785172530710557698372378187190766655752853374425129619489299937004799003462499728082917004478452389962610902847947963747627296512204112543033304465475995718066862969171374218803614046786695781876334636323403930302329476108840465514026627902843871412835702029066253013708919066643205569679714251253881102521007507778617770580720658111141391736656247291362718176914059982848603506498710967557510748237923976045487561729631142775339809632701665276898467421168098773523706493509779668344119876994991778770913283653155649400260904777893212094999241889741784325347020752091949104920200960980659845237188515222271033578786854932162901352915012569888722747316683662172875489508607130668996732784494826230337268908322330644442036833786734383549458614713967744121179687580568427163694565989651198882111133028259225620779398092981458455122210483280089674698185608744254266324202929319742451135051367577227570985008050593932477581297448637007321161133834351768119362423682222210552669057265414260511830750613488985127274049950410339697101361407958435387976384361131066892164287845089111014045915421792303441936323958685637167521732732684748421782091357749615787449950396239595319422101808662686039694821344044683158265218989029296259485494252748463225464656772632988124868535726889021303403405177668875912906632020500387788291404953168918888655849147758013876424300457741103484412839415822990510655028327193409270703851650445436719005752161056427022102013838406943112411154344425654943855118240015683424518110294445328341105542758206315505303326857063940835481709030331561372391471754124867939381168592628652427884918032237362597557680012686778732608687737925693512065501285034724818067522668041297475414347223240374826190500801627777412085830348085172678890849733390441039591461240182597523504684444248395877968095766552749877400855138258980108485513027499724547330720087806990771449708900150692526553083053797949211647886518975752483127336537569034599795003027798954396417076590993170219666585776200071179819070669300642195130460084862472510920495033212243676937742551190671914364015711834059322655044926187964529291056493161020307025765618934832845670687667151383469557147740850456530650005130536527642521820504279967316806871223393504755918859774215949482491376648008486716155888642532575312059105220895884082295883636147090835575065257467173058132364830925321561295035368209307279435884514804170528776166973019704994908029362939916891600219705365354063147202390902047312870184319596054342689002108422062779874408871685178978840959733083533837439876145189256776445999488803073151321508010216078015906152870945155375234353626139290544841834163271069219156129691916746595814766063864386218914269083827857180648552325818072315739010415125824726484085859352124198501674399869769332346141262569625348434058030032816319152894569801565582820296063849687191209708365368652256168426130082814602352576730640440299295588998265556819652902172562479203961546278956160297905663909780109895828308434227580295696328367905800723077540571841011044189588516364730180893147566156578689262337563577972060439443209998817418542505603772902623680680107300235538588634987338784066581815104726131379277523027021534516461960694111070187148171134217269551803448238867154434728531750699847626540124503938929503803932764303053798621793979452095351838172996083288217384896587167330419970569399241750420578940840772875915645430373674480889688151765301570765419889797643845123417127598323704044095452485257369986878929774032991861007878780603577003568086015971322736495014836467757416680447325809946029669804003650818138557748542179287270233459798613771256174391259321363838356668783486073622206645607381019067782005127872264970112006296898818001631201838291530884843336934568723009522464830837122671353590213157952801546475676084888713790238247258211254137568897161973916364003696893418262250585976659711263567394776194331455581074929064519465440398216578634612777374750823620920315933647333873530457576216260660453168848001255747076483511751819413151317975660957324906657795505027237978663946105866409852766636347605195748454439889586029139771854432694798658410945254702145771714040610972172080343677132734944667538578346580279902186572820992701746812683514908221614050399359224384923004945349158245494574631522483522408606397488759340701699523764185555206305311094610130253415469485299883956454691339299427512206998671374780961677298073208817497345220703698771147352777531457912514348772195644181289198587476963727603669084706097208784118578148257831860944097876806032921345164666208446105704899388472094574831694969291026109461136401297581397374475272369687426416809467927906551171963994625835115034278560232705414379867311914264925480235616325164420427702986442915887593913185558964401177083801891195113657514046344662692924503864927658188027518892149188244615210950007466630902428457758933597080412496519662412075139529083379628236485724465879549764128068744064124753189628248918417810067607567814364477445562794321728219065316012732582040349006547885642449754986635118064912734909371568170152528866847476167646745338488233711613929615255919483006276276071977107210622082103137648580880209382704169080672156600182330157268124947879705036528273123309424272802663574383230096066223886955591047044519536389157733543750374371329420856258301887058850160303341169311283775155828593106192070028475920579751575426898358869194252480791309896793117246364225371444239218386497523168140266521547782731576394494554893879018533487745985557716541344786757353382636270068503420517094438513613639695280230726175853695338409578271031730907388218306725799507137050354170119423326908159060185208617380887257746413465486609831969783065038437827715969296578990491800974462860112477304143407160742164661345487334605256629180061710361832847112202272117717859493482393876319485777846853854533066370405942440067747288365579428643177072605999991181689101660644277817250773395174555206802018541933618401339446909608574578900275244803959593142704012922004154897289211556954804541980515943555132816941975859652088875883100445817986451689443457924239192645519893409813179596487053288615075173972288645621314871879737011876516895559569561125907576881523635401364806603444377530198302388819406837609760371859866119537556166129075484962958324892829154483674525019716740136101171213352736460686686378764645881751815223492837551974063322159091366454631384829153098802156716661331040391867832009998210936312999420463227774364784820651358056846307140921751554050750325862247511354634794405480288095637395057169373910751535231743375640078509505432098929970427591362038393734487044861999059290149008420654227511824743753536175192143225021355751413705450070394616143440408083801779721697481064617385218710587391862305716045706907498402774315721894529314513159273859164949846341032184465643881558983341543367754719800612697252730192094860209856419570950637361634057780588248319831839161852206584238975590269153859625082599529582101123011738604758572399775298656168681877983607166929871854702884361197146152126614686421822537107911065863916661587871413905988212130565161657264649486849408593929866674702142137401751243437157907148429800412476796014801041814520177754843743218095685105829899955803400687460660725005151966485995299870569397524772960863799091480403914034051210782467658783623573520151761267289713419130373731577700963434160081810273487701319836242153999838189564639869780929589736804095433609076990191948341621622150207393264580922224462294244353020530666129412943765956142455124030576493516862963643631570002289572756572822314462739201317189626876194979177593365910577873099559962825368061133919415746054679186021709064490218216551387251042496301489985900370366599895667410838268017339635763492813378237001909433734587820461702583368813174579875666323991224293354696403221982976269548550518283009182364110711168301282797846293082189699402977139495373163813726063236010064932229310467741990767167232738234991886108801491211766391158616673060588721644950612685331127703519079622804875571029003900995027662770681209497891710188224168921157270635856712806641338167945327479846473797414398940063570088041626036094751525829092975758833379107945482789566393559537749584341816208138545727112237515858708497235385165440551544723448281272321754554264398854007107359409062232236092837939888806887618347299319894886391169307671451278078213265012564994772492916501876777175875187245544636459533076125157164060236417607541919900870788158122798634700382782500212781044381703289376024027582507581676515187340387541235867528480522070630870198589378544996282806179515703325285103931617783684970915845266123467017857947264868231432456190765605341648931895778496541948510513710826815297310555770393575912010601636300404651172798550613109779863705847571264598201286996329267513123458605091682072930400203781757115321975217840938213952642830398390717799470226740542602368296039593958164785252455491526365153800024459680829502434461795741544091916488420747736198943161349999505864141462542164607198082173902370374570815914399563052908735553697561141235200890562083209330873484835890020800936866717060980696938312140956428848089861009342176380044936192550593427376998109401793542390070325671592412859469615878782724564062770557957979964987874064211963154051499965346860371613250326272397473546494122732215171710455057946818602195028299201131651637643937975482030308776717851717841541786038398083222351093382264900780283472213511097120664231868265144198454625695933337801616488435444937225279707739186938336785282441578243908924491748200935157587067635422493882334216077558109024746778999438917435281951602936289805957714395579758589642556395031616824024325820756468981234793710192101582493805222804468241131533139079903231808588969820611144502205454839035524644286478970385713969986459165001818137581923962950877538691123698427468375446313440265696967819829633544084222197282403152892817247879077733794670096940934335265701943783972192213940641085209587719786215032667408066486864575989565155082701278066003234572259557075667111871942700825476378226941153288000990446670399085502494117165644854814890315559455310862554162723255777526102975631643460479233842627556976613817506437387560676208410290843627636139056707322081513000378663906661128556512666473708991895030532221318518996903544746398382177800162378911990855481580133428042886982262584717108326751865150644970915588883677015633980415049204168016134806957993504196454935605296235528254574707538599552178793913188022208032196923861652301087536267117401498557211302001907149174819862660382855896099694441240628865615314529530754023551457687633526370116672596481021871954325111666119651889214376887980379959295560708060312831087415836751813567304143949374479537833265210844094078162620604533950935391251434262646094613820964460066249334007256442132395967677148814649760829800492187195360480993821469793734759343848634474116560060345486656917459649163231990132330427438009516306651835067773956695637185763641974514985959292321757469339598079408688877287839614209556412525290021966890262305561253010535176723379250751272937930967589871885397660406334368710021613796568089434071533580132400591990033071984588094189739590102619553338548912029951564858019025551051640742306415605799911924677250680900788537327301140232546589193231383923248191906429446207366076622931818920864149828786016849358379657981859413839401438939120436480681518165199987682439282441251439555780465929061573793681593793268669946005952201546982522499615387766415584392969482682795645547587152543128940014565693949950544475343351839977861211300099805920251585515124209519214764836669107542573246674150255179856844869449648878073788390891008298613629104511664928334283420402486217659547195838507611006938061698801253559621826768865129576785228957103727127389266392881482688389983732907656958618685138449797902250382780544716084094502153516714409594445275430577949723593302712932706947904086992921580724642103016767110807734665373672046133959126792986276043970625016204053683781658617240213687433864812406466549478772478954729424664727909061218020582382740761789843621868183707778013039801390270580790213560831183091287163733961071914467252396999481111027864946926588933069210180174482838383530921558708372261634589368028001602752380766657885737192993433103174363666936978753971637474634148242449020589563897019997999563316987947217760424369260420994559334544605245831770054073010287634429400782106671433020265873125600863062544658286614255252102649955046645475924549296714195625384658085136076933035748925789709897707047267603786896142587202228478547855977385422931678447564150516861438611717281429791885963740823836359144089353561056801789384236004431331570693543619418915067622036134070645559019513616851669375090782443873330935649843574657116125175422837012332231928457455358594933284694829434056759705658655207547640633608780201282156998355163532609033633566977544090085501912711349250933653238384598089908928207571429245753401533077181453178674872794606672619864397203356711249652529234699311635646843136782112291451611349295473358298243442320100570315076939754504552295599908033309414181163536321016841026522064344965821504851680907285630783468787977133358122583568444142083401228970763061768269349280132885678810530660623813173422052477670509099629039896164891970264599526792588219300325353070751462760758366506529130503345960313139138470026704415967887942579897683428211294768113705369328111299359448004015892072079036475332285575178341196096118842923296685955311667850632390414017240276133447096604169463517322589031420657879144667034482761399282824672528512261970312159908529981204974224064755566922021341232733580294060083558301733813372136139511338474412611803203631324202705409345626282201370237074824979514274150568067519989133864998192050730000088036683608945997861265640463231881236000350625747094905778500988230930509245441415432482639151393651329643320809712669887494228112553895839246049596652235575374913834941802392253548750773296406803910854784856945897318640489786821560726487565861344743199335063742237933388847034481330078183312895173927417098029665326508566286901119305782215201086541027276122375876320017086514813962935355558468624125635133497032297407562286739363694850731334532308442920289312837826544948719812390697199929904063373051437438323492221374672391054367715324818022829063174202710099537523258484871429628070679839747375540180332563479037542085228379047220816137424509701438056779067674868670270669923096756306093795845881047900599944732901725947387583555709465302953185251393228164025651506053757211902337734512393981057583410562511797303040263815338483598200659198483444156481256626434937426722685506012525391993216105349342745181546869960560874018189038323934806125426618739025878814204298552672437434218215745948815487654839555554106666338883921325604766813967074371060920374968962585665495537713822414355900448612209763548272839474728733017345801440096335691381452675406577874676628907939797405757469995954555552558870384607369752629977717556671453381453086859453248075740556456220399727164436269186626396870841324110563790809226255724740907713123260524357688994449734714062966009015984082559549714145792829783154175112554585169498662912429382260135350358624840390478507443680216056164014235182300058239784713267656687937144288001973049379168129420976315284981957176306650230338564186910699588184073716229692919930149352714398328729412482609805394954672117696504807165282929271953373840589970602541166175529212399124089303552313501607144231083769665459816942686702318184067859359126129670631488314766240355944209198412712239689554033365089826558232863003130240288190925694967087682047809632419892469581104776020830214986343829665736783681811339790927400939497247245090377652148712330361059174669825221511244439328826721912216122260772644596211729984441407928076144481897356831537278300838626765575336508465151559558342843399340873147727390118399805463288038347694631599262159859922501127847153879808862335578751905094172780666712326065851960143423554570825849143692052360617265411656444373299635771751099591859662075524447214769632537459142903002424246933419698021930936536388020256466828018383070283523219367019760235965467517943853629003308288888009505871140990480213078461333764651318275015290096366742107483806498288733983077779034045279240534739436548743403732783022968070764840334790036388314338230546302472079760111100782767756255831788037894160647600564669739207883789268763874164991799351729386010253225574732036893692027346677596246589218972153651060665630199458827633102544116057721635217921535031691306893344322093319406670185702772971620957457937593970840578847618197603711431152100016411045892064828788155709281684620707659956969556580857126364087932470623024476439788684878187741776226959013419071166019452300910608441121787948986876110977704286648069298484482939637831828521527690069882120751101903145726262809465333490648445931005847039967181726378376559771040460218939128660903761444070736449572719011804499083247117042616700360838191856932654879929683785200446124875497369673226002443192783792264071093637782244175925433459173348581853905640864412743358515052604563236713235333406520501326059702148099181667351050459972752299641294549227600411002870967247333005902199465491633605252006629723915029176807070308511545457428712818894102456007864419493968624608504664561980408278770175580283489439941022617571828129552464311038019122779570539928372364358058860013751478778785826553168953040849323953777470773967351745311661875032462554358780546130537191733427083644493145225736947072544972281684565097804547470318466269322931060758356934291116380536704095883498677673385521921232134915759038377865623298512424418433517239667627586137471325728970644532763704249677503243263098356216968810641661532929108581899327403556071032969344960238908928551788299851081214396472631308109171667101301829586202469119473857002074252304497219754422730445339832784073355714205186652678843017619138962715633025662448247779682480850173176262245663135746221041931278561234029008752406787063940811611861755366947326768396304052325638321527520802240690077144692870614895090631796210516354250427395661599832660811265966224642301751040533783913307635227207718750526351012946960390125446889264697145685501624385863147016189478856944909599889108510958828578277613812754776554394258892868536851647432149740203121464108665707342782006308540679098894561439197943130732617675243979402721472496133923572105528011505868334757305538497628260121731764857147150749970714698645897506384733261183555123859733165036484510521320662689971038350110914395174005310406477359909557293034940483661458852612287927862974924007773526259643325191964488775862472870585880556059858908658396555785306146138789664016626881024505079063083057849469836296187079978008354827173004032368954040182587621615171442695410323505000333547770306145616681056051304752776550711409877547363329132732305205193381593133430393511776489416736087610185353643061517150237369202813922540493555498925015118279378232626131156868558408183215606887895172168653166929184964784800052227201001300146598591651586254417891637524634355385262117544386995499851383604627278842882210783564569051748588839389352504355386882288139051918935248066068752248903564612404869012456155085886116262576783765887371317707307734496717704291611709194270328656661969903989491928571868092389944756078610664587709806008182148472886895483391948166373405948971381752493695669414907797905483733965228750355344343624529674643448865504805362107930218561113446076947477540025354883801320423463418171718886338953416624057816080956284517432296209731348344809510057088782252020735937343704020875956370323304175059404792165870291361808896433435646101479756090117065364881914571029984413577055736284328239789019854764936661498751909836030699257551501272077840243280775533272383834727063747036077795128461368572388983082046582885439551669230762791816178136756793039146441357451525388674243287479207722537939884150579109445211728463844054790415181433593979432263937966159424454107751137419605318454801118885545970220342468171082682363915390018639281743925535653053967430664819296037054939679647029441509970446462420011497067449898223935649169006068047721941278520927251988723713584330092032193442055261737412720739779705495561778175847992646965707978285882749731933132947762420857387197576310595591942315467775006886946284102191266752306544434720317141509090623871720095582325767246194704467442516005162076211191267362446892176054367104633243313861520375292523472768807435408263561157324460038581264762679473224577589588026621209206662825133197323868567678040529894140798199789292805504961488247538637655997685113113076126980961180816722580970926760330163307495581589836097717792472091119714774148446513220507443969091915611234835340089994903054588607240930160635653319426339832067273056571853930363355624191378670546391701192734515788123021608843922204498219217288024871188767340678963373442956365915509436780216529527764570094855108513913216110532164993544069887677394053012557259887071864179882768989954351843951231802271544499607895989682579866979302197755551532304615180381677617522793322299629654340502340569473603857698295246568430894766548049175751032286396682540625424594268906835947819494973770871319446829092239527033271246232022119492941427660224619813913980455923296589818425810425845863204281877767353588990777178132558808958607144089655429692289238340948788460925994875577502041782500123661491833580703528396987678674630652181138760840689465159678993588561014766856970184606573981409664577694887015952870856824530207262072834478884372961702684560521705447559159743876105581594255543398673567943046674007453059321637031841250541329968254647979928270813668745733947432010063972797013876549764601073728530223026197202040460610791601942923865258898973808794941626392608788048719540755153452561995976731171346272692579519165686273417622782162975156400218446373036610975091188602204988514136899857726338975382000564874794535125342944980598490390778533812149947996450146974464727590071440515152993242992543428595910004266416251447397700443818954182807685743463995717469517237575829946127007802487004277920292392852634160667771255719883902014450136914975176038299240584389662322716797118827163947944569722053263353224748311732263038225851900117961082303167834170328232489096847987620654658664349367517156207062361019540258019122395357720687793495950854614889481484974409727398120856599688397079218085015021892559977183257628960401782560630844417967140850141219139580797862310394414488215879936266003292755971995253930522368180510583439969511425275963782210341597803174166669662625043310689925641017600535212788560170598452821500267640619755338381840422435564455253842501093414645870490215441975419219488977631540173508607333326299539636315011280308604668330183342968485655931045405229878744820775284655739247855763303278249101873220831528870488578875160336397455289456975418319018359420974809109602066341403874663648837179746783570497677884821658932234878694423457893482360938196343233549550816049134253006597801993840968702892663553746075059534479646475515591505713123308027309954672589675590515093369271292647443959493766859838639446476145393598892439141150460805950415495232899054451262855590403036485221689028111894698460683687529401385792682416675607575725644087541518331421640008091218453328438287666156395903661926496595483207366756478825479913126878274243646791603196190766335759527017768922303641644535272137153017164883748764891820653525141470060972797090050254002358067271456095474874329336913709157027039834350369444105065747988167901231466915925006945407946153520822434495041102806435895631262553247935694102806543835874583403359114705885612663912280765679459866453813979233487308219122527227201488415340778101134212540365920133352703315787140426102908380274370038635902496357079816020140428384810773384258010252601514081081426650924709588960357605361031547914724342001591812444908155981286980367232300874484499221796162446424428022217672096934445358665488849599908931778292326992891352045710061588128363292275966202252536321268853976619348384649175265664107707649783921998625724877559990996532170087497906975990568403726193262902498343618812211096386023992433629936915354069440676486603496005662880815429970379806537371863551190275668484394093601736428728270098852462439008295011842390638946543444171168801959758695460800526430125181822052942179054229193088008349780635664541723536839210172636541499730867591085271905302404894513566553620752957753871361546376658119685193360140319442305891295959270944230639195005055479540747683727220487985176549734367128083174666041137000397428329755000864062758809562896475217866616512615449078893478225045101038389379087893719378867996999246300629359364687834155008666321393322537663553812508953683229470611698359620516648578320080502202753807073400610306817328033034505314240521404914925583300897701918835117919612249068684800449334777869697590439638429521305415159966125188883129652103173440332835242827376929485851662772766753249802755878602884270938746302978854911158626276015130930242273913535071514250700286623107477539355712471816734724737921361654103084451841682946903212935337545187770804303678359605024840271880158039792838419543907746888393539586619695447049167340662226922814108062158711697122432680002273889779919339511902640752354659213442400008759834416538185487037221477818829176826697590251964276220687925222250992185822580304402306140687558815347797716717022858121264509498313316582866596798940750529864264616474844873985201272663535857188816960822288745183414041973282319788236271338097396203925210625101677023674200123431748550769159285851412528168907945064186792963041850042596542023688062327901013893742604766574316920739976733380669824040800638636904507972506413501042148208426507334654287962801864599809090204213092042244030616502191454865857142532146180664940525827975953517746040310869631464347019225561132835030809457943862229403701583510346768270130247303889089342647396962355034117223558848102187978871185159421107703963187584543253920928729675852749816051210821458559788987628140449164512521500598257504482574976875659118372786834285733921903056699561011840236691472990343222032746659487445253981614943487564432407964981739272760431467643119018396237538202256762809207422759364816415939778020035306763787683675188522424514637909570287118805018833292292362300641045642415270456922452032397914672583613977663569732080009499542497522331342071636482154342462004426983146537414337193661872699123316655548823861078505664588913914382940341395786690132007272214434702774254948014704421866593339080808556877032519891304270725914356422417284541665703351886883713153910601339729529786281489045920093513262922270915557119886193784235427410104788216698042648325854271704407497486045254055025877152542032666843954130413552952719139876756329638321248801623262858300962933013506838059977056288421374284123414099972956570949229505558372123697474464682620121147335217125857362948865794546045469249191009851444755288410891951753715050851360977307119506053347433886056732844003544175214888561085932819196412243442736260270187280050863979409424857940597228687377612017509016211881200256156799683877119473052245225681243024336871336845668466286302810127954763829573857327588103638463949834280977850937687930801070248438940070679996885683413457760669101614622599896667124818915434654300518099886170403606313446298400783998475975054864519600516761553158509747887921150928641679787498021603926051700088023276887235315198191116783878189826057335518565337878500777541747434171961889974616428239842869014635224594670282684730262655419247664612915189678115832296784955910133926969400931594514745605431469355463806830893519521243550790473593211673394085064058676369514245214151218571066012581562933950890286233788478666546036771922422732218068797549556106563631696671757775029270806888406949460395993072622016212616658720219110361887059959267796193421376003927916789667864448661714744806933312661036158164126544647727630203924413810421925529408824267610045984119823461748988609948817894044548889354284564694434058543581881653203337043194451495175550735242977790785633769710546475384096278767129177635027782565792043220171888840337405571867871524334858029364496822214146009689345747215951661882160520189037520847004572680263128164141167980780818957182050155590878559643593795849646754077392219769006819372605332316907871154524880578460760648255227406834543125037074109402394506933096605133254315128328863711997660733097224267873805504660111066137797606597662732699506289946629999412715441453769808862062385374684526916458045750733474546750935581098426967925024757069419716248641305786617695089365713616071419368947818734435269923874921380989373298391419813921734967428866846287207350144189885438343260425142779361818303853725362220273802186009038022026715401893642886764985145688177281143389382653766101727798225051469340889944384469550973387725082474909242920616044791523871330714259435998366968888208338354040731335211597315531756039501705551119122915090753414539402298616971624148403207620495220670675938959640427409680453365347519713084207334161832897541020952339601859417839697463941204058693264994213034491888859842521585607599747522475347200344958506380506995657729435072355716640599821230453522812576267945008184318883653405807941403440353782891264379262303093782228847368848507385431970732733939014793078633568898152745034320903330754573338665974388258797062230635010359306390732909687819846835133799574725262402455354509798450848438761247739718712027384597035529212975294062892272734021322038004632409467649777400045443639340386427967126154030427809052415945254559223012908664094642542844024526215158257889446733413541636602542766747984823976814568796477394870072650221830926816264760000128421386541354924530280084272137601899619257232802666638307195072975727218935977100350784834587409698246733363450113802380794166345178539043478597097463689054957887186704233883088303950637688107606489428355020272187061147717947759587486835038500792897939928246214362517460135449470094960378062912913527573132179163243153959555098953333307772844472332523354875034181020748874191232023792105710050372317741766356883901009428491366588108384983131741915749572809567449219102442367705196925325147793956700971872908605126185627623029372638022708092102144258367194858121207715430838465397437182071668125965928379713108754174862505341586629799505729955545328854904278029094296314849641222628562465913807054940397516292187263652628756522843681976628448348927779552818461343701896556181389350459427752747470083201872211462473201675644038170650270946953882188103876648224008818241604390239402667304079349578891271413038112222850864248492231240383971819767847031609808782074123299508236287864370651800295114457215205427648394944701827708285541425313819239277466970274500075198797237323436020590760531406845257814288723810520214302011445818616531111747247158349186085987511303190173133221908952210026728987652654293379171968137692790194863544825800854743413107136886109439197693528077796603388922461297883264913963898783763493553661209603230833014776731112608413073681575777582541777197563882722876710452662044210522459478060174581112615767745550267197780575018294528311274524168109452168711325459352946370048936491044105165128568915539116226203389350113520578564164315945821152322695758519604611075470718484865837682306305250436170166325172183891222602378205707486010183635749041753614820129769702333761212089745926671736797648358688496251259947369686664944816749696424174310664390201183148033047358741109178320218406567402476062755043940194665068677223111324940067574629317537814271138007306765930383582779832193698680366795176754443979145408355045933276288613186731803873531272791783490911424348511110191460466700958532561602401497825159182554875081753696890067130708183886472285204369644683558775130445665262914755152035774880363375029899730823783489426102986162627131387625930422855470044027779102297132499992029151211983071561536285612300204204722881787615881528134231212115822862652825334434248838722707048486060104785495281248223876466143484585880051891111600148032445891195107537873161927805471508612015714937953235056617602381736882554451439599806853636630954640776284865855140147215776554750643195853335496640129799086490899083395600856800356817395528187383217779343073243275918985558787936104247440670909461930809759992749111094968477776104667594908930942673205256263219921699280619949532946213409203725316422192571173335378855600579920168909772625568723909060896527706035993140267051827129459908736796325219074411198743550996713390106207347653132702154609805373304914545520319080136615919854900739916712442172610941472168845010677712171709008220090151210904957869125941448301316884418817777075510284255681480248398232672220643198053220682115741599580214532198262737082282766336932229410985700251244942659856504352076106317669497472596595608846234062048716338167164097345602222029616806751288522224310897522822101417786604160240624018923947656127822657867742058737307484490799523460063525560489344329542765463540459294081954413928526822849129712880995968217652319974970186223158813503015902268072981309471432498843037331458793129955099056510257131369057757169627415798200085699482529622282495725208889671733447530462889764744504647896522654310729394775736295057010066266851884178883449181179823295938455643350025001647384597824304120990218327652659571220242812919529805922892772789195242783450736510235237585790139931617565617354550755568865944220478592175487700748700611353492628611199897347148653480434342476460957261812280766341722924775678337407155470057581440531602822488088109546477906332718698896289914616060832196525939577378262133234677532662727714142736641708976510592218439016540859547648254573915517609614520863264742656099574891547003561384068461711466901853062174968855703310686249800978963726389426591058958063431940537096323557521902302824521159590904315772813819746391323861132992425330844655190994632802718565876701358261553721159504108602933753606477651932884721010959687542648026053401030474370795530189992937023657972195866330044469772112890324908081520126633746873749077036425144576273749996009352089898259747541530801430547059569062246703862813471192167757556406078343915091362524583177779500924334564553103612473147882277709401538073612434759377080420845369447121153444350846452305251387747537293208215103726330995548912348691711740147555990399299846904044214883962463594514655583339908189234951063272374129164024036882846086228285854874303745509804192506490439888886797423346183682057355641185258281511751986579605244362903498425449746648696269881833630242128765623158854458271232616170476267356217471946554807181659861129343312213118661539077287596283743808352877068310457748043944463042272663011418365909851337970082965259327050217281830517239352136861257829074820982268028600467834952980766797715594768776993999139437859361028738045510758486783724781629300390253047809612381408321051710916686456824111966167206834876658082865949409172628476465334438174762478983481697144570630753805007778532533115432719932946816126764333616220451039123576740709773145414658400809348814091203266648447604618790982358251015603738778835566358924840086056406231033074461604006980159269275449246761525600248909255815150025155343209934757154038136008116971916137695037492320615386977335847567170792856906449034097576195580987258318123880644665564687567165697413034271948120880193663937015688495025147650753452085718030017430087053124494539701407905423017312539763371813491742915500444072349481204782831817377024501118096329484926525541522621690473859865817492752562408395649011637933335403609701041553934293892111163100441330318381504054339868393641983004417972765858916820531379029961298619025816552551020300472566074421244964584646910802907124395877909444846477724781924492156434000237119296930454706018310497445820041188095730250881941082265671500367471661286325540396995041870534654850619713637914849159818746047967816048741715426624646188745614182506364425009035343274129831252544459889372100425734358743322202443099122004768735954908299692868551871160372636015719017709413825269335076261255388882779557556312216352612837470820953407349352185784523294090164088078136944772476306215456281095964198051398657793508258461080939543446655427957779536580980464607562075901156173758026829099424011189352086535864278397769853907479312505241555106088795961920638357217451295170762662811693728767408079234077979267063410429002470588518401125543274154540131143543048114575609007551109414776037896634178127788296721209133970200031865069505745962312287200045905992795645517845586893722617933005906067366544567500838582712320962315013076407066687971073248180561332082721438689065381547178320135123722747483379308821291446072103323895006646326160259324918078859899279549306490434002620599345263026336211901646925827785696828327522861764105047934880490082101555988040608976796177687509950630291578299471644693357022232989138564094121975433317034742747165523938943541169920968711920341858270965678612384004221954472959710021503812416143495096232455681361347079330528619253863444700678402912403449293367661288241261514768040156903031722927627995685684583657270909751507071011801408105898377589880006327083315145712644793354451486809638699806009267356555576078199641230667335206535554941259637910579745402376313412166888081036938411421978452786607753127364616699740430431340511691523352826974131252803144160937049195340476094647152602216329225500125815148514558279221682911822607899978809765569485531458175496824265504228809210525582659221325312573442386089933853560008327774894337602434520175914571961806712410440593572040633271554419915196198156026705416905884437072972125684189844504008639459647950744589442016267300937510048753324913255697126912377069441355439863627138869196150922875287173189248757152229423666284098846645986391315005607613773420767790524746235419179370529049274521511590310781820089515511335426812441971196776866684835463428881147869122650224672960627992391697663220078108880781487582831540454660975610552564696493704599776647318062091316932626027586648504535801917474352856087588303668645624823485522185711537630165154447402993857464530411033817809618669532824940343973828705388259933751058994663682849818193191511232524742885059902404470312137236666590419005285227033045428220229648518327998729869522048211650172195744837598452209612138216128219555858641168945553664842818187166567178224092743742404655082284043051768394319842141116752956875518341839329277593107776148604251364059662118275718441470527243993603178660202694012971857956640449858048148387423122678097741858151567645317296986287293461907768885612959163198228903770228374614329725030863522636623197121236604851583914002863377824735105270714825378809866037535219519060198092909013060665091451168721941353585782584885848447275211902927574767021155073600799442149898183761261189309768598169781380458658082807195631906333737659243312931062620713608473609760330918899578907510056810236849958993774868237923858504291115995098578834432084946507457166621038084798036663172600955009078139974361001523444445577005080777352553173720299454441137955437545280717742457211565041976614382398622771039622250783103909606855706688178639975448345069135354946886817576090212782818356144433747171806120424474090983738017219743879545531202762151463732319689657246000531666092817788993987227531780250501886323036808264979971347603473910580918025607307196315407603308043235876740131109246103654101227510122008178678634186294068339520437674391797476674469794302472209078480418906381946118961335805384642283947580906909826713340364966489901891620504067661482159962599512872993163012327096688580503654577448460157498371594925813718812737970343530837739294214086797069587297053455462028829852135459581064838276664138302186752255681573300505886864189529975612096476338896379844501845072583852252694607944409817030544664176565207721817071765182602850550279106616508762258804385851768939309191730379837506944065544141498147284581598003975772317438195952791509778318925685404180495443027643110416490613646687914953322889216884807709306648645598303514443593130327116933970767010010592083601993148739891990159395090172110995283290403440961980005678143616669139507548066547010880469414029610250942404137269583834832528465301263179662847551880047479748922390446690729358582641521469382792844613970301559314985807500310156937020855240885008127198562354278604272568389371858456823163284896582074379811513406686757565352668027861072988934757615595234360872091593320737493597107199806562899722631132772475272882011338429573971182721547899900921295350843532340582996174818575232804943194873994016259305659868714164108466576448985438605643558606061192668705110664561345639926363401881680881557813507734904521909397341083473468283330179793764082955210235169773407399827290806084993506350648303816941402423521181200833456795605295048342506114808352887380121554270441416020835025624104339573647799471215402644440618785389133620389124370425305753387743667863580722347161675096988748485757171813990109166715512520080072662158769338781706124148914060887706011790697462630727686065422298336010883101569957479603599226575839402824501713734487215192904525065657759526015406057042505586507180731858301691474278077558968625289771898238348474101885730944323722350505392205412834327515589540257907743492821529819090308445853079122725596747107953809891238777562155836984809891446762241287749697082961726231941209194262248783800824760667631275242748395609129355222549421159142775858853237014258781490432081812934603795306244597542512816641814608188544005567877837569021772287921080820610122482700163556834030897468889324039978709262310880623953101471102247099135938177809256944154036676054493556685503823194073847309741650345366134642299120362298025537070089681191821959440874264119776194148948452121947471017739348194838732375618740938521265146413250095642769229351427328174538815202128734155732292120505861585361767686716320644756082063003665564736852097497355126807413695931180552750203879554252505252642063403440405799785992321444373922207814044374828386065414471195055325733718375873598128514900860468726575385462334267285192302318758759759270480527994128573932085067001335507240270830083039848026702217405753847073857432995611421125644984282906096160960499542208409242170827610339872266776427347539715074478083294373125841546522536581882716917555105654560655167789161800167041877482409530357484827538598264953089544497808544052094969577073274549872169674600694565844329332260551209878804859009758000640207705873166583198905483877023130878798750958599629362225406911572244606808394282705186130964667408179513909140485974301652784149404618057723794879376535865316146326911607099142388522028604762179613730342736772894382791116812482698727678020034993966445002260942368649938402569534201264692340258174264365388556575201409803303950435686261427696797012962370968845532015512599885539344226760748900921598705380655525434959639739190083248372849812516515471298205479209867985509524592968827862077712542283337624437499997875941382746237597957303128516899033422698022226559444158275688696679542609631108414325973723960202687914008418449275575919061062752525329572636342314753975121474140718598857931452559357261051081408735674167256327726830431809521683684386705337687419148369964033026446456415298813937796408178231403886773400006309895767298542804200321598787306756594694654333849690729465148450497115221858841458629985897379677673669924488493540307825648500212536710576374623635897575813278196794559678844010840304811803378996543462045073735897980540644019472497187880216510592563904002943043349631917601645051540950246735744773295305929110480363735173376330841460377830655274617871873424416555963723156695567953761160060785094761122401834981215305126363439769209157971503030482306572895810950125369849604189030463460466050929896318328800042919076786514068360324770383618905977485320950437978150434580830839866448290453495271107674331215311503970995298057481462853112167491305944143937594009865955055919304145301512980993160206050962670489310111783605062959329489300058985539646537732651358594175119812332500237959469571404003355974250940871160166727307120959240439343555452891761812146894207176783565567292464265671510891065924944039395441793425982363775091579075294982297405465578951451882950231604418140535360091696057687899108106647750690856821998734924571400583562782282471519864471514144799264843791396282210820718327801128086371249369981637675098213168080486908715338980737096559219357500465993180144647309681856061859996796694679880558225914016516239930759169087380363615867229902719944128600191490080153016366487325712830250475343809556176817938102581892434997052638447633086768761173478896855078964946879984720985344824287798056717371563325476025369739038985524528398856191767959285035885423156768838227361833202616648186893110717873588017633317213004285926216220172003033484435351987723077497506485046211757836290660569281097489136299834614148075721062120155451173174631589630338248348233750794168636564403683903485319941499110077346687965501561414033681050866893273337570822969596124902044137396476076975462462313068788156970671456711751600902194530490830805622404934789472753156568846492392275531655777452467162447560097345764557835898449471913082141816083734564963552710506033211963493595230721828801059618368584307058287239267604176899178859773786248668905228488710954483512727018317770698247150281320547715796179872622550877540114360954086938974439062092659531248842053338906324782190529323404251319901245898704267158141187034579034906512116735918713277301425774037947371162939798498924058368267697133514292726782299155647638315488314073734905201362245367543549007366367897870609562643368756161680891062747801332768072623544211334454061598247548176325469801985859195085099507527766228264245637886821618185552940531056932418728055742163918788629454694718513569362913488064559504797669938739453996458890419363672867199298512515926763152360112799417369736533640926607393232643053407498461651776379821989234992581927013352050953515469543747631749633748637908530663534534254032424173958032094124336814764373647042646824614151174645924970613173134146552608243414896633973134629774933728791815486180729062525226972115187942761104284703968536269624453819531478668336701949000688961820355762780565787339178530423985648972546890955797625665270396373271672145460283046353099729707478120499200467827879454211769100415591051134294430266809757878655560471123712218360508104675212515279612888830939554614656683794674316094794339276534959735721169430918186912011892786859226013301054625659131155825364047128230937320658489129753883630900097647654538699296508045368694612440868039997489588497594433346261836714877293112505677545634717946494531929672314504840361867191470443420899366183722177219851484061992858720700064432940208270161775252871703469234942077948393029345937026393729375976792395626633749777221745870050671765714436099109784019264999972473315888229124709874720938436918718446735326743737466930464056731191111056431988776669775319476486746503461527878907186232025698943694969245529441672030480968421085255893355039588736526095894042081945905259266301526090973872044453630049564795377199662217274830708390420453200151510478646436538963515735092821235891795586683352253991536022661649706774934437092290401404976609783637596488026307547028022923927609338407248982266162219614568412814278020087576366538956290355222888266640240719277427579918949606065402587125265755790989654120268183069638889274374396991513802164695734411732789800523827331463400804074104520439679420250775998208381924722312970880323549485882244933401751691399687891581622077611807812832953095771340862478834125851646053743036978523197362771321421934636630714151168591241857959357718486297488810326291958610445976465529405323824672510433026997870396962883419655912711580951999657889896704469743297863771936338789340121187932692421420633561302722874108411670835293413880193523060423471054924563916313813169417899214684104677154263422985810400686925553008958042429096950503880971161664403579723519836452543018320268233432818247810563873026920476535711128011324837863609063650779161567907315151575055419180135552900488835678496235453997878461732066706900420539713068414297665838096324477932661022076566120077047009259406762451241846397015113982173115046406811469801188759502395031949519797302143809755882260253470194041910811089989502788108450838269588824966308773263514109153643843888910039717014197507571774113117515573444983927998031640455642814717707062819192430506297673315792516078064239566984429797436770527094894280771854382046877438726897876915608178220944432095668534669730532327259115845197238053673711222961913251321842634962542231056323456907942159839524973567546598438076778945627005586591589633313534320084109750138062966291095795924478014015781189286625097764371055125468208246966257471963992269051159516959494407914859834145329198454862094120365311239415130778169505779422787328015672353758699970034046451060892752367453458240965136717675701848639056507138412793054860471881201134397704879630492198254896457326370013321954389361356719758874980009133904918667929802345386693086868444004162022247854187427240476638910100169140399478679462701756026862569769286205528708659471433472304634814598475653678506721344108264759355238278149528004936627988513185593649892079367625654633765402717196717408695338029469499077175436975976507420439905389723597552187700333751467649668711772111346338154374622579826251293870014775238766878624170485903270664398603169500388306235023148931483596964201643389281022684239689481173182749755722404771642131910277411039275495243872352896028217647679229879269352577227800451229796714157625227571774772487206327585530525838141040424169202589778443340719011172654019678698652375796395405269649301787630128338055471336373463116898649658981047307519355109735319192573296688949596917122609799858368913232019730709541459974918396873299417235646483995953679543616706922823017995986248540539258779638124502730181707969633847242921977604419952463123413907936053336248270048521242314294311305535811214808486467839477567189537248518242956449111538949024026958950998038991843651621452126498379713278415640482802400823085608772865739015401725592629000064927442265389260673111949260863288497812302063965621843297755771501202983728359163239793309380559948845746116580839250791035418062054237632285958593277046502622094450390453175641700804921906180500658310469991070721926604410549839102455233420401898704593930581189840502310801594742717417986509007008310243353949455871881390906311759194513374792844846523110168385263929661362047786533655411469656387129154995988052858745071584375872580292750460148572965157531480196846084988072927001147417529226695106814422450838082679805471957076426265505174074543895962903509685063097143459573096010294437544542374761467703126380857822209142689515868721269145287913989678673325756065995680991928175311900923612122195961802701976961681486082239372034939552050528902016972442598117760972771463064155118126475651560973060796283033519443093915517462798492614698243248948460190553847151351687859474936142994256483156275394063934734948744600351916754690907849100538718564414532094841193279654177957553373773391757522110356712682818602697979962089509938455584063729539086267511018691821104678199013718775819267695768130266385944647536267938240755999640788213667362161791711647998525133778129979724786143993138594378686313870129775662778246360160051211402290329813203078094444535863648977181002990453897127915637718545645692260179965759880966466803190685475303006487345256293043276112316155967896905543851202532291967704559204049075912836387939217264465972075357247108728744495847093236000265382127392227703857382511498621415260267841260115638285761815101391925729001354771713837603355839828982899892182619683103459683201066460378990668614467359368390607751985193230725876680177298222926839461890280833170625085894289963148948084899320663312178223259415063027230983493327366507356102683798951144745250924258336508527365311080503080145442432267163315263290546074360325231398938066423008764490260603774680040466320391865042404010526651711164018447436417282978911068579782258232496470609748056994541023315920923990222160629179118467880612360740454898110012749380136995360002393741010257674940087398471151229287951371394029214059038148182138558708109879848204065711882626224771428307399693761739452604125987286179685851896928873884986580725389392685374938940765015177431298816981843539890442664560650281839507815633015588022945265356268877809475418830197556439368911533830161909482291027332738245874472633802839730771110280964869062846740167928096679549613047105179277555407464305941986867434341469449203057947529741195874552462940952283002454318554802922370189623750183098962626658261630233137753278068297711400810421176142741993097176315562978469956243133229532590042050806141188717352264055289968088089740491314709714922584386720056172162831089675626350770474109867274229833841020062294183898505320961077901246728453939207640853133847320967628299925200722589802721399166633400199270137202363806377376156195158219640009661244580878865765377706926152701790824905588307516634083038725912293025426721614217396621200698217821823273756172343396884503834079810411360266387271732860476531641503616175604912078033635741918620776081197558752644934605050330201495837459464583618931895664815054735761665752766432800437210013744115810004901973240055970074224811867910339292648580362089757405163886286416109587944638853016021482924798845446527473092651847946031903082304491553254251176631796492469465151336141802806581681608343566636550344890144470790692978150873627474307720002243849268835956757212645457013166137792375804538373717677720714733881481321332968449376566902868919627242699938475242386115842044350587351358049117155587292214481552543059979540497770386488460445928417866242118628106503210958788292735643974289407365737126783750137145219307646721278603001419387070646640896082849548235386148666032453803005564789015492298800756398165233548535698867602772379991849882264381322993675727821956208524835713040488339800319144051298492681517718433863390821580338801826080266905274369076435460255925721335687989455986627602896913209319201641601236673248969111509830693364734828075192583311408076631211537734617315031553773311074773358629519612565732969870253013929630299605912616491684523972892062711785957943848531131920434572682069884640338828212323965951016523799251618136034506871289674768361277529309764014180180743633285227192811784362433026153480468086990336223098881804178025623984727208185506986144835176046698043064128516477994338129758657887537192663087439627995384872892058960550812718234334794581146318964100425964777069214240267093248709009107932845547882937361107421922543087770346928585766157256287542815670179509117364800183066014905297740358644625775191193883023499055529844372306294353120449352064305660109112875217389104209973874192604047367946946403037727129733370302416102148635951895314577007460548490218261266145412096883047241232702938903374520997085463727869502170359477885414426111149282945168424978336359148527080160047978131094179423960751416969807765581305895796461372816400175078833711458716076013216892985576625992191155357958127348194571780049500059190758394778689671003560775033621450293079547483587198734510608749584646150191231276134345634290118683843883697451632399302637551132325736573644715379347004087270674034121605835583262067887621859371310750788791623310160121647914690561019150875763692307010121486697369984594666615244135901067045618925670722191439155005278374374641911563471522953163255457067626000392863040959320669150865140753219421361802806603498991262193888855848816789952548773586088752052216933214740425455831402640110009842286078640525959807002400391072468673817490683516150661661060152816581592304623526211810697697178718768651385651183868160973063701058886744823696524659839333613091151441539570862939806343419344578848031058519019729223412102970828191625593079658218924445069233011192959823851587198310151010596326676317312762148335945275993793409031853484949864738197588851128964049711401050603473046687440088197652661605627329989996408949893183405839892580221078712899383868524465544109733818049591109807563215773113420653799745207690227809535795471203531357435490804386570209358577761226419207302513964939705000113801132405757279143813064788712985298632167170054530691794365694549133420381124841719763248523560724164512049989851300320768574721535293746868840588780712003910981208523286255080978926234124862686741772542093689752776195537311946387842647935069187609277449689367991924447754008939654342962611244408947074368997953829207833675774891981745489264051528575204544994307575959162579798518749019579826860775579960678215559021269985534717497708668889431704357585306276099358089155339284687027217063383000518836350385982811538343294770728254558755313917499283870291101535024904863032480300078329878991166807057580596053852734725048546758123673056381456420158924543998207215805502326778174142691254688727008988776283031045427640474773705160062464788802009083914364558088210788975113731725190246833451269766052833252035266116631340742475166914462337539282235463010537355082572216469581921021879830335700313525852982772712187489369598257735361080836986832440974106625599905350204783004113958349986979889495410985619439196021557431495746446474578399901190969707421185979993093844744426544393435979274595223982969862646338408413377138003381035518323241225741862920959451909057152186123267987402129674713723019769730844667745611378103982849944070333328747673543979210747276699061087426841814818579770880923162417709840030391446114445388874277549120428452914209877945077204391360917380643416770004571296258480635960749849822546398768970684093568180780231031635771857098471835074949570443024235643115868467800666289270612605399954569552545953046130489102584354382064437703897152288968986245116564202393490467753545069654628419795637410014215503179416014605282165264014190159446808868129639880863960837169147430132931903675582907888887852806016187204906019439943509164808709369938858926161730437303690314084875264559520340396949766623524562039291779299139213478007003625361790486329848486506079060240774216926070614305810672235274004232774621194182385539491481485808813249738928317363828591491355534896074741556727382725210749029680899333303938492012691004765179455966668004099619224627823929632959944782577677583908879215066936456860582492694126140000648277133707570947318902451027003224347405365209127722346387654683013787207293778495411547101169239167959781794697383692289264554125689137038399499994835871596228468201233691240446869259101136454406301926703055126792701746227426879488681205428323687282672490239629266756189567340921797718354150023417023013596712313653364791408298964480828785146163812617850828620452493215968600759939411959464440079897242460697957615042537509743401917947323630141832978163271488547771532943894584061203441347075802458662940885997325147256067325034360355369939368174933954087757694016601613052173958505856380504466663646254083398294233772035626332216096991100858044226494548192026578023060124354287492986841154306182640485973965924139725504563750864926398121999411236946242976776860686163802288309891105182616719843010656556777995797317801065040259089780185596431257540316020599072172475071786440599209444977482502958786482116867303831189905346697157835979370339338024365854065972758268086498379993350179181504330599843939571085149611840083426604830606140745827412815976874856730654998282125876936225172214860411532187447086327353770268750704732582779865593209015101713599474513083970639708334145267740705372471606474153379500810092034350366822846600119519144951663403064499491747056634874615872836927572151132599183004633451017359783785940305058151165882876443585963595073105882257701531174785438303417191004270799547318041375909898303157992741480868001852251736014940993109324628839200795341955785980270638446267037738055853489393524721363438297327556243791263245110094274054222670783148955261405941644444731672997297916637923919228975306598745286376999046868639732999938148797344210077119037166433820344895419900002809124320710100527851746156909159874546045002085116022961362650654986862320682083151962215623195910303744061562334194479714111649794296488262964110672359104750937819166611883380181722447794264684768875768319646953518078755928751892979882274727266654386306551079697858884089025916664688399357550181997316184266569998999051447935999409535136796734308860116436960185017645274256692152415879051703915821715040639216049511404471068671572284908448653569819459036119453056828053239976538986119549921051792387753644560442028824350225073901507966649702279036585104382533641517635687199738699803900227932491372699041881298730297454409068208414383601854488791812732517723612076964225020690804019167673778348605052252664582928866687795798976555755436651438062081837495820594854293553931591676085534579755270399520662295416249185232227105352562063902550369300537343281806915418439071507392901954931687293996037186575089905375018629407354083131969883780304234969783849068850842314150221045021802125447755643447397703440231471295532493147660357364661127908163610013262684576910380726038794710152087256572861550420868377001873928016712526840683673519530147696325069958038587013784320968165908071968086229414023975937995460293549888853952353898293428062742744496471078203681564899581250866311660085094255130791462200727375851543125358295379655691445344042985909995148033935224985098858131828784441054878461359258439113306360786012439901643219576404299703187522640836422469058805288482638270455388617420486648518681448982929580715626317918137408992551540980695133158337338460937009024723060115630464566122817373380835989049875052832133719344074740646958914254074102615522785124133401198180575441107225641326903494170398441083901896352069754284803367813612594494627633941600035526111817132944634955839713325891416938251802509458623627981477324062263699588993782238472054375476834433274466035187570269472736666022148817769048255383157229464372031060902165582579011237737009671830960992577966271358179730534771816045290465480428127325276419043748773792467078958379165777326941316110821705433947893301840504315952007415303636544910445881983029990582480195654900061013106894584363017645827883083831195314979239598470602803308932994955671832451582090213675097589419545810512622718981162799556563866458885768339085875102524844555447788569855574511212920963052387270603911377362423714041326065185741250710359892499524746792807457861710590931007756851729939787034927242891884185023625129134070590025367757461381333034195419787801158297206627128792206923641944899458543359430520163930860620048184852023349775186766966346336464012375287523051035180017021602682335086447249251713255647044745388200083038553505706175798931281306462661490601669018476104934964054929447265136683056338271876906452971309551308249341787158346073482013158509145773636835773750118406926072234918655359938264543661790594689638389309079557094514031682974105535105854555204083704326123025808787712407706064601459798215297712370772656819717659390670825946579833351540223814197880791087730480480724490020632228542221059856696257775165191872333773263680533855216269433973046810592775471512229985947487389353777269343858050535408611779759186671602970975613117021042869169594665346588398415842188940454217496165422849339279919779635349728389551342485792009398263808746967289345549303305585574997998913554508732695888460663248527359559116997170618702108923333465650087339887181622108557004916126786150960317709289246369472656280564048241872844221074102358808213008540664528012930609408094628930617740132102252642758212713894787491119581866488431937072489822885192623768854982977261409222045074524163421451676153824954021255929499968902797952053245578217505031023037121473302484777367356843384803529096139719504477149082769536234173005618833002064238334819624651421787540895046971754403079188046857128881510261173508133229836295593092345588403814126062805466553750029015083586531448608868367363923497054792421448708138672201279236198236600095791575521499506390009175747915225984291251321906113350934867125192780721449394676837310469212466972775113310126011794943757455135216383981866198085486842187241414388641671168272714448044887812499562137221062085974203337617719873277979742286920970748884702485752453602073079035563156210500460212133668510229253215608482575806368892872857077362213224246992445892236564177843303484376416589102847935535860563900218808568499287266806538768321945756901900575590315441303445744602816343922353108150344762258030723003750022581872358953327262542511275370039618574616036261942029663239251350989232181070916537356016858961126301864769742444121974221554098486042989399377962603904013116556526921532553735277067279816252885795853947030065358483702597342826454968272854166244658612518824014490262970794468084060950370513853964134917608628478986787239313370251611204214726827928508297067392392421879707566116783548766467963921076427182435675601047089862801920798715226804650868877039424048425309765639547087415319464935821309238024555015534747797325953096629747725380629034512683197342146341222456177051897435768249066484992129314672368859609796986422380941887123823613005417522409255469554450010674242616956731723542155657992729034818401659868776029864333891608840048870439916378752471685259945376521227639361945638378216228224503447287949021025016844410632369762583292081530688771411243525375425851786086436079960046460097066954203466435667858006947773380859093775544078960859842809156025009008615055036401355351236827071132309327816098464526721197139663450618022299290393734679511352525397259713409325248985032355878593300595197331380719897934567339766656584700239739518653581798456075095035857607009786719772523625957342483975839688974222812803286653366846892223510452332452249438191393023032947687784617101405095126012414633195773072117363040004313697383029451224018593046199151734103278954153349013917766172399324623085696975082022623916153251955022420244711136716038766956943310945307549351798068704113326778057686236442709192549133533638693639818837900387701648861925131734155558793436623805128643864371450879062547612437995149731891027137179330383670963044803380801395121878305196531346308327945143963481051674030323241959516044994269140253881616411967112522081242151343776476516713640788829150000955843701854020351128446385697190641015269337810470822659830182689859490527284992931721476952385777214988031602558724595989826832130452250518088231344492790287715265237682151435399370703807995607746862252522150462715620966126790345589548378608035511638301722072751305579545852591404608050860584173176327064367738284571705395943168468515281076077738342474078728031076404609156484556658135369785027867127706034447144410988660299479536004765595179717161914817641854463700089374836562936167571477115309316263946016824411106686268892548704578540614990569120375199082937474140921625115173534922153218322182523388858226270710345530567168123819084564303753019032123205228943582893715307606133495821332981991470607975689606850796168764871669839611251943262677372570864282908383306234110453557835593318503703974585856098310244127319055289485045574665226365289404210987313786147082227906920317594359167845821632518086769178083811288495558896944305479873401396504645529956770531150225073639437650745390361959865196274635527757426743376479116716058855969598788535612141409297241755983476222254128101601199963340371921417783732961836477888901799196221748333211066107505336407037025083412824979365031271072659624119942059281278024503121705996487236448199686779273576502992358119851941493887065849115173960143753330064242692565320485219378273688081256222607240209729476337547276693802294411388510730843776712445712566439127735881537148749307946276521429840320065358043579223945603742935625687789772932359261874476826476834931682911089061800262655587817102281223951040306782829875751928177408058598255797464737654472897551875600575363795721566845563261950567755411228733388431183508852211258918716853247062183689695138286568296557111230711322006626641707691502404325207888838590932469720821632168399130593970576358642124220783155562963353590593822417138843480070726129197439714933997641147121286103460043685962577220492160899545650632167049820519996962377849632662315365497688982035510605613811040840000820636352718586091471913209003752797056619278177762233513832369814005921377655596977552010822043183678863001175460875843989878744811893600359719929375807169501490443999912744375429099194145416127294538616335502735590874918757169926757335313524592257687280778567025372875460611797712981664535449092023890738170400020290991474723538752390451850673338896048554479641131940234711900390589959319092613765459049998259737805175529315414733359574158328652578238253208498062348582940790523042805433372450515215554441938107816543532781123347803482991981156412200908949697918953005399585978025935807029032676127564143603501190535371546674279269217980544142108850860303567889982571651475459273533683044131412563921439100983865092520027325021237014588007356786065165188140919335454332057639414184550349995218378946257477590204977564041238715847134794649252990513124720736688136787477214314549111838729945164088979597460818562865125048253141976033281710213521782787189459990363121809059992961719146517975167134242125630466685205853465790966121980605005363598050576153473875828476647671094181586653182507991367537426259442625069678417429502631735757494027661677540680402900979754443905463756042059056720931800172317421264080351304060977054250834925127050128310767807000767406485883749085850890291302964988678175200043811299741995752889159111211521867999093575862123009821536825157422161766981706863958953442169434273097992895741617827123241269814351872214677237367698686445434753514771466414323211924785179824341107250539937721425382030535230876196792871880075248797065401777346196038123710901615644876929549283890493408736939896224049665077314372033881731599881152610582671147649015212631731416858978918851254303016463792599491698290925992920263083006009268656552791817110858420225078987476399976412849195869636240081544761994438796109433388185722282768632626867110693798748971277563674763433337246025345603489021769283560454968489474181761914438768655522582196285329729319757023322883558616239401686127868829079097286894422800739633398288852062067333926297039229141033608737877932198670742741077708616524574658710906780466539705208837725252892335161736900570406737433421497492723894456379074813150937492719079945459689039340342521891471459915446016087757230748182272229301971709660292227044857454170622510687090498408159494956438249238168461345646566699747005127974516783959246216498584084741470372788395313936665057143510935240309617094159334355081460104254091684911966938597554117198236324799376397129255773730937786712378275675091753546523450431495452084295005852879025851016511565963807490572551030908292327623582211552271606552865967310748327282954756860799625326657956819250203796566145322012746867912802461006446940963537005714223197597781202740221290724864344763676644289404987127317814623455580594173938757525210853587962469808814299081315744482743047340110041007528041261490620130942727032315982860557697777964693222167563240064083373812590957845070545344608170906703543545513857737940176949400479557346620103309137943780339846277635503645211585204861159051348603516341958930597262784995513190103523642896891028845283425625589960099232563654810609028287525964279522449920797626974751472860712168683410504222786850205189454368358277353698270536971974063159808703579926254800115806670551245781070889596811526046715296398394318347045091852930714136405102923453948812183615297408664179920745225526724502021194127432257631355637579242295776758703007896364517966242192955428712863074694330168244758642795343472683036245210368988938051211435390792915203031185008187906811382292716108798925048007406685792894325118470362468185277126181521691808697724621533448264613477634674365758697488586628648345081641656803250261172129782408110063908387408036088462645555177154346241599193079171393624182652984054609519513092734320219702117256366459858495993446195731884682819143498372135707957006305384795700119428406191769071143783383408074954117959831286233580140417177694226210858226549699399601314897639813692147362134019471636684569774793417381000719863304513696494162797030601921018855824730234576358922038753116687936521567890162195754207548043224049452390890537113560228873632629335108843997526947896832700038372453553854951666588191775560823673493666961097454971474808074082288333293035471279575387969791439782405813411498418417871818151272553036721162518153468036223639823677877046527763785025503216587244014763642755867887444362800358653851315782405360571401922568594392360350083250422211926224827732648573117889871277678097014588985316478406527557716875902963387930498405463701259660012681873979797231282038551704259996440063100873412607587188283284019522316640964922856091630308185119980755580682004057375703060228188369713431034373467439899923424775653628207548728158558668732235856034999917923887767339435603958528247301970568724845648770068849796220422684647049647074772395360518757730895781415626531888776974090722493286163057462215238568924179695902441949837024062162848311071413674907817967028479521718060575800243496764080522548139867919801421083225044355408040660807719288750180763655480004185890439104016736718180950553150812056090685528890860603916880184223958109169011297293282124645301469047500894710336660356641060891349446173209666995802818407073796322643005606274446997981553411134726823308955599702053363563101206440008466044455252525553189475457719635759059209797358126234200620522008654270315980639925704280248073798728710861054613263872935804629270831070171258336359162328008537607173776840892027091277076784522056591738010155292500249572900928046221474062052346253416035086448075522822142744045846788335758248709216301053656828043464704772533256720150428488105590275680814066060282828642795419295882645470498803385423057741209367897047406515708288295541084944549274077880558273396336682265815833153277202135629474960002652333924420236466440159241109063760741090702979781425254910081163524906187657966523644961023211067837840563225789701504957595990302126050643412636124020772458873726100988707367958975590120389145814776758861829286123384793942656547070421695025083568898410528115238919204048886484792790060520956266251403500394809357458336715942356281708371125163369894231648146911959375445511992325552636882979525451529256750014148462688654194067904659168755168166526252994867625176463645987072429874776906740234416953445158743077693485930760304323161185047840522003531837968287747776189534059419199143311970277415595817555145001357523025587884435104978510592561120262027883836949780491126175940815280784560426413688359479774619545903735212749359043566386141558681637727991583721205348953693279063558334571484595859645107375939583696152420759587871735290220413225996208330201346586665052424045989343109655532808930986565495397993004986926590247899226711059143056626275466622947262077544252152992920275440526720395345801563724006712109061973967857313639453361272397027285342666607921070346223539746314725585365449311116807636749592390807512376648399309076554259826117028712517143275055980190434844579865520782687440021367194379917711019376270810948130312859984057035899485689992776826657978524009473968483758169242348179343017064720395509724327680910953317821979740448762724859747181061772165336698500500375564089728579895659243938010023293564091551555708118304832168362311559718884219058609831677664712457376704905984649538369279710586675371729560118937293121714097920019322252063193801813576188408248564873981950609834782639462981038313044813421581905718564890448134498387226584396527994806439963656564677754862126727818213764271744203747942657929316286983141209088265356395367025480905367819732053290253646252473145946221516033422854297200362209844432797485106851004748588696545106977753054866535855497114720507704051075038637463262693901552297180555011447424076325101998421954591479212092620146298254914638616631715276411630723867743998899755994685366607747124695290954602066284885668840073005117327388576887927423373130387769762353399452846821821417260131005920145725611592679930606736753574515962421267697067278312515818816642453320724348132655584068036552290302840103258580175340081175974062405865671306089778002366374609237503527010114036446834423639522869055754766620036412419208237066410265536154636967170306329625453183565136718464905380532624288056197378383728969645801340172388197646903224341310996625773010236583019537508170188704929898573723834478699147890671070674504770187553876180629425947586868512147606521670685003293568187858019192274819397988234017966343326884516786878173058228520577231720511800527189533199627666987479956889377953175026735400785939694047217530402932712727111185573039728819488719591048097558428917135697759311587079928754250544871864696306990724838525123977007500367952820442184058511381319254918171091212263023728550244474592807949121149268788719908747249320098227555521994562647422737151374032166300592877421188583870701605606435067000004806052982053700327672877991303947646187194087276252274885680780229720182318669173380163562610373982233003873210643654090905328365855157392875294973715918891938048379709213495553312893083274747837351792046013998287431274950168053831130850661446748192479204424861313674062104501497575940474038283288028419888297864241685211403209883977263112818366644882434786038202536945066035573483381269373817506306678977811087333738863226483988154218234501805690581151202346348586053273251549423996019669230269515201800851435512833069263728680436453360743650497190561072294182181151739134097340747081160080692354280514622414981133495045010039724642088064445581800296240375866105298450934419131312520976761852463237981481614095094051024482227741371518138933329831394340470257757313384220312805652424978328966276569356133551846661741233551818459926713339121880288200586254022587196172261601022571467235381194284994287977399703132143810958601696842938772312184744451235885057324456600975493858189319775781386363499401026328682556296838600112569297755037542552069982375527723895730045675067794682789705651520276560970497767107739737656753981468637371965919737505561359497477575347847640243327273267604402697918359922867150747361102901315604819664999670714492851019712379327682367289556349156841287452077881511285797780883261772720967912953830827701995439846592534715122375969203245057733850743744712324821165038485046416273985084313204213245757999397708093452813985031064016163881031917951413709861187515230700720837893700806816233537190082014755268881511682887430128195987875456814561920744419181673218057180039247529143969138837261012115025751536681714724444710009403639527762928166168539838091803938243605162404458373897091138818308190485042539653217179899314246287720221208130283763687309131068663911119608588376141503513081487382393734426639771939864525459529606008072906463365384474639251739165108536539310975866123793938907063861588682553822198649016792188820061318565037692955523581052041989206131255915937138461954987699269253177405467237390812615146803566882978872761664712929128701129035309616630749731492462495188289793400146541666711347560421410316103271521423755036707728496249740902783799083688827185555778778476293339124497713571916012324302762372690591218957771022239191939380490971984850215046114786439157045817887281188817321462677237932902599438066365405722532557534815673673584778593427413879392829536338027515400302421137673217652969183894865680623593870453343768162298661876008926104313162912668125660242228451832931621885305317117677474882171249146120342133955529536073768402960456973535049115084787759471004301132304997052634769792042135027473224327384182325747791363550509074628828318030236840108855365624131607163892458818867034036478745113719361198157438588961749129529115846299918632590026440855840042168455834629501679115561945289387328462948834787865037991963356854712451421168483352659966702013048258473775924881005148646457090910871128191006134249617888137991060129559843721069872926614476501918230464259748206464232550203189482769466775703167840231843693465724925306814625209540233853087893605385782953129817181778875596927874546717369153479302264080531364483575519470520864869939289952551202364514993869392032496031979618222565593731423277639615852843150237807284142326509564903763648416194001065364015376671580933218058694567430692490941119028036759352339367210081029446573638870415811623519460162289539789283442752662384939538288950972254625437709632531976632170378904845661634544090411488333913793519431209725383732758167621553451216409926498308981088369660317530539004784043246369136325538163458452748824153640411252099450686264412761007844902844263613502390429923074879365044704263611838200857070026026662918594021662860706690237583902794814816216483912992851425234145470210285074698314856584475180428084260874916573882984033952109903164143364162769953812480260593239514335844929398541671116380916615674875786935904667002568403291342918556542634774937280964782264869502019571755082962117652667152731708661395616156920009281428208168997973309303802273810086614448351152376039231031195192080153566304108533752689275163550536029288929733334749286082709652893691391272829886416038405819794755193499387149759560766115225307907108130785217391325830093425949765428892847093456130241455078353584006211484753034830936539281801728524431672959624950076953366698526132288775128852389885118823869586951750979571096871639888477522960486819719774865700791112677673702668257810041613659726099889040105640327875196195337250861734916363892301155401973016375765252075839514475052514526879683761731969273219920211701117770032564730902320971160239988050593330500276636739454383071279692797829512092635500068948920426287374889675258253293843957450139515828013430775375959926276096533573655502158065591151445597954457699421732995024924842599865733446461016903899676834709453312448886773894527920360189875815956647767985680025364269663311689372184283843498481230508900367563823802968683078286877882525101017757349976573889911355576336532661594010784105366734118991935951760197627843995312994638062894275828251022191872300365134381072471059555699101052254666481812335733980962222815848727521594071905656633741586787096009241659245252910812356099195675837941085579045301539241177390349067293151299401438862909143908574463407590232886637938258095587175993908063616942234695862640519062581637763869662385541623626025746431444657216701471657222913195844444661858858989369259906462827326460083721344884964889064092609855588525009468608886489540901046767079269523587401863342285648158312270293414172330108809532222203001357097457714844191100994629125725946015267065809093454344584377807149436171176308173172652064151214537029685978481696344838513365392454662600463768483585067991228097651440482106352713690772621092801141276452602770974214406648175299862982288124647036830971910777617201571177348245411124000301020490188183529378006054528106357621354580045988272651855403349787936519460046095174457026543449053712012313556666320951557379129502131155028199165645109311842042035836633777029004692844109555425666809423532314637878322779812433283590737329722199460163807612462326519066911542402028958582119599196168908533221875669525889879537926833646538522919988250205519037664372613911268891644207581650125482001508706305591639092373983338607852146185681619625018174764817367355401832171618109723829280626086354351827367646633295286651464711475575311819574794908872782979067280994919492921669374934128773334640467276458660555331998165692152693102260419436549606607040871241995308727622646762201751921620493281029878782218998354269496490146984004010261466663643919516304085041211964271027477339084300963523012089147814641478090841810157176709801776871460149249060271034913592520545152101144117526064614557848107410679530214609083973207591371853866079773399327163152549460321917600804827859941702912944785471053248845082014805666088954822205657792560783372963911718844494864141161233750414373747803304408114106846970738933342635994426354490355528267479153332426372756380932908441186618637877683603251390960930987685071333297373669225118871058458455350772677623624971450416028447686840165143567427889174336640967431105730930324604358826988103507136312985960654476624754687940796145429588710970556448500721994207452285857596555581857381053845575165505641448495188656426030936629341394580038922319137100705746483235074134033348156827747431511760221980807798605039021669003911664014312810255747708138022419504875865996566091129419727479387327149841591576466831514895063641937957749917549964277016049480673860207589839308367376767721527955870980274936936945730087195012310167309590887982538328339316196396713646630613496341463716189794246137733661850492676305399032980158515518227946830451402908818952567048597988313217122974194306533313189021550639510769832638175712076776365784425036096347732123717937645305869151982942615462537988207327990771989873761340153395645368340607561908663376120622016685952678255724496179557265297481126495084091879069371179832585493851571323855946241932659468353375761935735792847384766338380475735876640046856955297284740188454554166842975406563131831198674759930728185291478535220615530406406826667098152705283377298507690443454160077562497262836557550153053225713280804151725230475024507488916025049936662815729057887579288980846645207180202913974409779705782229516215543021341387645587043889465243272317272989076645966647454371230709006211088692347991771506202642421225569922570652608128623589161909038089478906632822398817879529535759396872860938109157579782030664343351008953385007275202917895734666517484484737421275488753770118988696655372965464198808913865293039972398573727110571942950331880929526071021925040799594981821557800578015569523133719226907998991943072031490436425522520757878130447704624476238823920891183202856587813963126413201436263123112087506615842633072093686025114659454107742421456345104312482169706451018914402844415609965704635402764376707948233663680325532095101066414554339459602061862566084289667756522784706129871905202998272540579409125981895682494485055595238177481024154789516957269079456289740515941991166489610527741925073599148364781573791919543508592321520570316589503765644449655620348094286234579768913707910379797133848148127239440899103981476079451369882903053605940654978976785414112345709077505199340443078709661672407068041075250218247789033127067985329241447058371906914147138777059024004644138797182706226005519355941188101481833371007807807577147075123870280876633415402667401425485197055928685352348366640226839392157850036917007931438792412136444829801112422521824466248366152483497300063764419010837623531367604879047665782646013128181344328433673006284896682424564024658522913309221985911664470696705316216099454674102145440193016996619948299967804086489383777767626819375499263631900502145724243059048020250983871271953798539783903173466650515728370848666059813325282788375452891571748774861031691036585154232339629983537322819701196416149122265337437888421056704767055348182455100876406146305244427804593267624465165217968342341944843504421828396562703675599337838447108387648904792569838871533753058237311289061890678833707362013781765635500711557252406563311669120417005975615537330589021926869776925800798027343983675466283172194236004228654529799646394148731626503234710532486103574298295693139415180994939989657861291027417976818702618776053515927880191216899774231890185757458923251853339312478710125746370839735918445334945860858915577162723443111615134588908507737061289045575913237233982626908588160678445105628784595215734818630689094591598677727657121044647384194269511619887409993820098554438307550662732722434166425319030760540610896328826333010450284409495844675335847753225651304704363628964569552868998644177734325889076295827569064951843033142778191927708215611178214768080820791240243603590582908110154047943815809228014235673591078239694033812930122318814666031703881954225763719485727146609812089595324044735173347652040296282451611302350659121895800892377883554569142613870361695512650864604001272454731807702862488606130242481261402233703156173286801931478913710130076917120491646588705746288285121266777856935407719784331975787911651547620535079945801179028661299882147878829103407547187970713360186899769064270202658436218099576622003755601293006878115701601511116249724463693240474607189597874330914049707900426158248737576650209982356032971144495597538395221531280753877272020943712029335734390077202566923560593150289355901405788636399362782232195263826587550635853880693927918764642291136076552615510025419996545094946340676231220459799137765527638890185501224741784156805159371801392818756515516465086384424391596697714692862429934190464054714964104823524064472208318666064456530590041440428014056652790104298575537634356931935133059696065710586898384902549421778370980477631152877126501691784438452696450383083367930808942950575586146282640359487545689728864389087411857101404636636059209523781733716784414268816110935264183555358508803574149822165755359572240601144815659140908271119319013460105028647217385134365478083320744792733377997449563141541408952839189522200320294933764743199435358920197180919572292919634424366590840682099877056194500189591864579134259179492736455561121068282281902109039978246702109179368628543995991776888761266490761387679488341160257293104560470133452949946967663263344290391694979801308654934665204052940078874495975556137189607249670592320249993289696164059261772789426796916297149122363427634700845911622543162636566653482869472593139749439112171419932373314230385497639133199597194911562488545293563771096388798294329494987136023483205953532260921471950087100912051352806941289665121426405738294109068357137550011681943520061794501523498512404975187782636216888895651137664444679531514277297197332682885543502253745584842607841849292822763574614106885789818982594039451623724203208542915313265079572553363253024489285072826968118685726544815385517952424837833193427082826018870149684348440790419850153261212088926232267012535888830680332119865835804124474010103366483636182518285669932231805555850050471817953768524706302619678381796081095827111326203755389928481648317457830679124710252221631672109601570485672906139445276321059363305880205756263952431460143073355978715402310803398741772101609693318415961186367508676863913214662319890333565336067063349257843028919725053309032615988776288433292881111114207222176082354857159413897485746991020143879331459507860408010356927023074522520895030708251969081299149474008094127527432779146463209659516163251432683924357728408729020663453580677522377212453957749881558012671807328090037884612513082583118929265940811109648397418567309096490806326589552106417727170397387746564901143887453880918764425443817336620544313317477819998693547168905615510728242615809484029313392967583510422560176284120589909021660900961809553641651769432358694355448232195331729478129349625635219509999405493299274761480371736675369906735979190898559726918269363576850642923256474521639657968473419394674981806910517633111098640022036487665230941902662169762873446362628788724370444131923986348301100655199344020297105993752960748570796366937521231083327305525932121166872325460449379750207292410064169568124132065149014688710577834462997069716279849435405017253371709215322771283153908374299599815928247358918326952332831777884961004928417926725639673298874216777876725523651108663049615494425040371269833247030402020393184881473113510001130727209948367590453174491017502424743020051772546397929355489805820590350870213463394799199068072346697847696961939500636262751737629271521935110779630516090983797926724336410409864788089610367601298814214991269338174617910748888290087795342963523703558700903576192933960083548523464427541475416028941587778230996440841023587736215809277757769060678637653415690541481072245679154051750666540640663727076524258905650662210018638848373125081640511296832765079472715470165542371539485715539865496390418197123520831084496417690093244158909146696341610661299855480519219894781421477953059823295601144024374805174827091952183326755844946725537562124310004415060293934281536834015699983540674624499051299953600238421766076029733865174342286389313651780504573327783970669246795444591876691798487814718144774267690076656176229721546881109230139103718491326034978593689639323595517503673625848939081921324173009119944275035795923571263847373120072525748214207498030785029914255558414859864642695660583584882561601887192318941593847575655542090711960671726871687595745056225425495498286215365453004794293069875247381374624273850473427805074357174609028239630543149063724566011079058874272698233463644260121675345422560979497648754560514255507801121547810347669019504121825276392466360561854163855373365733604936688934533431731980164484999550456630582798952142551946814439465138414789973762722687360704330329887207228653641720266967401892105196060620476607533810089562669133217513393528342861523247383907533575781519595139752323840387903173238988974909557811300943077097923802426393224644997029626720222557826746014494273604649531264074660469699148365966525669963951308594822333609817269412020470107199866828691046960245579306935378272589858522879764595118468227954069460000969335155486086877855410587278067867699182593077511831511778240316046744315579059034448633931120918328937519061080751448337827796834798834381990321760817398951964020100668412926476844652490447814901349324297418022217324975645182661284136437297591555538747607765017890704789693293140550872247857098525881585441506241468215404355315607345850451260535208052644223925443481398204622947920255583220805692266153876455366206129859557200077812733040209532259015627824129700499952082413328135915631787601046299722937316441854672879465037371332672270695604359986276422929680264449907961106420959154648791175279147961251991623133757559485896904594753612618741435122409902337241468162152773301226272387294767827358823072503329816303949265809708304997942046354705036850426813777999431186866203633648635643694256539783570656664199914039335708961732884400077550255078959603398124519991290715200018828225252819473421285707130849294196187991542230704090554840429434807213673986420823531127236444193193465043922951589524892130397368458325120372718046894406475625953541202205189591113865783564726097859906971261814316919489872299172596106926539300137919015058267646256344659370026368858117944040473058685698762805890008195512541433305349647912550355517090351117188504235976976018169745083373953865689085160376153149956751057838304445165515680648954827604477832166895158054028143418537831532341924421605241974470840097403687681702229427813616546023824310215998484782154836753283437813333270211273566815883965745390920916836529458175380690619569119965315780846842945752087959360528630754908218866112004235422822651714220174622510990198365918859437831578684028648197910737903153366250314773612853589274682798768478101434876634547871958366579477714832313344935850485169863945446698561869743495696461683517543325699890865695020220044175723085403173383968494090318811622200065932753045034733832621875788264160078922886028296506537515615577641923956269656422152318875507015525939930846798127202903135868345936690175985898530926250550627317383372047730996134734817943717625451516383546180909839815767379010098659457384691277760036115333054624340486552670198551262748770632556037282249382231622851322439102382393525635271066996808443402797984470567030806693503631815327747472765099429174062985706629888179437680665436392012365154209701359379924655010248437029291594015140790873067432077153442039303305828122007001867017366549475544403714175555490179383485349462080976942704389453181224052749727724735868561381941227752293178579347494528308831041233503434569229511116872999896934533445744894567127517289999036491076083544624113342121953158035892627330647627608500968377311373524499377848823249545447632733831357586679937196692279687277060156727624175777402007993468506526007043409933480983197846232461802801462114018052037792068487462133152214508861853431667579908536121849210569534907976372994656889565024607036057938186874882036338835986883027298978996706587203891618089503813225313072608997905690203550381446502281975311934853739659552589593419586492749044471397621877590183035654904158235753993739726097637169105826199382251637803661323182675432494000602700968541874570692283919379051143740039670014403538876009646477006002066403176561696343132354469244528411128004518078638847003421815573811368206094859329189542243119297513152869936421869329999158735697249375169172198472155746422428382996748990874031075947503241791535039896620848061671008167869660716327487827276975645971521988334939382832612377802500888941527222532623705013704777787671653532920288830021585178273804365577953021030578297582328516247408535876605237318009278584327643271067648670655326756367961059161974148965925446056628064125819118562763919554362962137874593877192314548845952343730532511051899754485467369767711419003870028766382399052833074740165658214622545607295367705635161047347893019644002396392554288098209710299736683850979973690364546852833406520838385194360324606239430653174387573023104999626976764942522618716134746505300090238482502689327246228939737298936064634568095356194531890569616230313903172707828143647555156118764780259007115633745852608719218059008929442767896084079712069450944664325101513304066109691474510750529507149793624062908711684924933201245608368082109769422716615232492641823634990572581631146888564753521244471201398785912026898517424880783051308674346221441571133392595457542841971381051485403139809259598805811881532977674263162401268449724798698012365101926394239316790279718673108503466807184104456255425793847569491388953421457966319009855772674919336166535933788487670936896098430496959489385760004004672555211470354785848465919969799720250175879565120129426100418503482208066583030343558162904968718083702714070125743657305118466221981719452695824086739442168701162244215025169363645090944467243833397885163252731401839609748741649510461569828868754958387834848268939436673368489433731141718598536452800289392664896656061401030838803917681218496713615235536768677783864855005511724042897375692544300746473591090331953908346651171694752104348872993659955280242100230079585340121364453926427595937843994948291456593562142460378481906604070923659502153782614692253479235015464866186458607408680224913138556272021414835769396180829082508652364232585539290642616487248556635310247601540508162862988618610094185782383575479649451535681878279800391315758804177513188639636557361210957587248832967427079799917087193588509671777575231673232763439709018826430081440893853860152520566123332666751940378413968343984440173541493949673891275337745689632875074074144314259702158063693565665427263893414201882639513390342320047805063438377749156480788967803475303022639040531923593720474303754830003335302940646160138287247082226567482420812600498123202391329418811812001404789945189288291879141079901766475097861410143126350287567119213207724022945579606481081882452833458357449054279160974977194860825848148256412716437228540549270710436145881678768999134548364369303422597290982845435516516103265655058925995840615524974499359549086491752984156116112457566079564662412670459134886191865778119553611093924123666413306698424568395406097453544211746514354166726255282300435400458508848897074458050757242729071106637101319889587258139702856390014404267763506194832077843783095564416866864799086761421183714969240325740448741475883905695797939435027837653276332162190619654047796649214175229210305865709200569654289385751512283138159269908589205302142792123823301136510474314312710436788128261765976131831573006179318843571745528579795440564060709379382038264874919867331373766378646465998312769523378608070003265016899617234173925292647437498440403995233555683216319478477087491392698171538715038852199794619277903113685208302787164793087142037123059299373313577864917909970946348628718676250691511419578606136530766777509450385154438571098562120562903582192489412782158732089314795133191128191909215625765117876133680621725352518514202046547701136391395593806138256311807081948305375728667165860260290722745817377416846812690344453370873360076893999448062323784223265535914469410454556175105464678605148857688306075052661091003593558170357740494132013621867309189944820951191951546509721693389815738871885148203259011797504384461817621325689675247439680474740968088241267215880539515143888126909055982884061923402400727783814036827518112207941194058550666601833859412041771418575884042055054242235682259314728770249378052321937589564401375989262248581863134294644353142807534963028633503942982547835421565934637211498430174361331182596505435775390297605674191660390548884440100172979794648137954455958705125487912437929536907517239207297448226167025722385604971177642087243073444080064415546077277511620385819312211753045814215655449494686986824687899072914580426548217903542525540130715022000192809213541694110836060013330992608495286547379338901497482709345488296201102933038779753464341560781427973535095408237445304165268047610325459330350919842484359656790711552238453756325492736503762488635494851755946106556662182519404526118869738209939658477906300945057402429557990008603485839490600578363370031802471508657663386288891302779495658096440219455091676030748313737435566021749848770965329838984588790455045496858900273444714389607147802507561729921070488512755706570429414788927636012808532119731664200005119818974487837715052724857407452705560115452939685646143394544944568275317005799450146058425299773040272034036199567226761818169964576774074400926324811424204396413162371782712594721105627018967996480607801291383234257808152148355334175306950715079909099211498462785796344209656026559727289678482766088674107367122787588702127335531692484858917660967947320494208347843308591020232181821522177112978312337555506838114879817721765601071172361412920751019489833276745186582458155395880606894406278736566579718924219750442836969590569662789257593749708791011075400401053128004367288602169450435661489027649545033067682194513866138261917638508006428922239316483977858327408871695826362378010299747397830668143661275875839572139272191319366671336821562804858401503281322332099819124129317736350119832805651919428193044768079412362495131519034628397767632174963336026636120272141310220008445877265762453174733998086403027009618106998259299850605634250154978054065651350344089774996146603449374333046875476855523401275463875201612873403349329662463658049048765388251208499300329507892567475026279540419098648911676475985355607330569115544046429766955947889715497943371343147805626053123609831831690093102998165694845081156726525560360927573116701754470810139637890400710845767902682450138118619520919186020733539998299560530794119292239715693866317160901774443959752175481262298364042120287473212245427396206199734354160623077699561038101845835290185061301998525411483634152273452085558963393770764317937433542846429383685076779258063321599140361663968578727512115210956432051617246141352390444209665232313668950842998644986309049864039511922912455969191984352552202789607800091589033993584954164618982082230107762776035775854382081709595683651124358922063800740244277103293510404466667247876267532511703708370605521544692434350050675398670060524092641690387136396751987931434621444327875932770737118056282875863313694921599720795318688163519402381595123390979257655352847317585572655507334572485942669942031138300495944728845165778190925727866846208636439145539464367482842735084631793060047641979182072747025472129646646447680536759322567717159854491553932429859156627773838671791520742891017372599270758284661097168377616271983899633330738020413834873326064782830585148093471212289925566906498738103354841846017256594600906932751701041029168859007950200090640140598793573527250782788744970999218839054434920541446018492799148138918130942872970127046648403331875520301581564201330012293302978559559511902773919308265788102053967639676840603229074490423723283619971090233028254857149551907032523579409011112756128603961123997555983918685531674763298074410443148479656037886213248821575679049952464368128548533976012533402783192458929147156621171015663190831619812672980144992648745305262310137135737475086367638379127392822615932145086950954801363367213474066483246402499650910444622167099770641345219532408483963959826382776522946208910000283916191534103360704111399766856396942972094144067680749940984728057681856789205456525855132237968999550469632271606853392334747856135520573597176068101985672009336818853910074667838595077778303951019859196113905392009510887296666300530478711063347680742786156347503203997252231725292863603386650250364817815422507010703746344648296759794582698842303041458230413563171130139633478009242480827472615757214348676985700712409124926593334635283640874301607266722390685187933171332246242963610408168905868879952699977519455160787299566449813418148144925965428954001185686364131647705676584051606455872478081767981716190395848010568624375511260233555993964264700645269062190429676420270177703778446455509394805797985521125402259565508493526852578184333810999015142764678141458211771574685240431611082774104804976004292774029295573227856192585644898117437794672091247140372997853989247878794776211039439806467306827640470967847710677083176661182248443410930711450269448620056652708852129651195017359959122903884802565329348397509398487067334065837329978339561956907146832668833791240363663010481536619459739347332093478785135787918612441247893512692674006133318390889331083797910487087686748174137213529189004323151436390684516035202010517220740034670151013839218019993217679381365220278621604670923643469603683716589299099772610075584392817775831095300253464463957040026040924749252802878547474885729184645361223115665107348894794344054408777797621691105660108576297639571115174776300027591849645490138924428805384587194577444102405439827033144910942512557745335409191400086219155206675913598261543492491975624287324735216096445062872832687611662098145213623806186917747952376489561088603753422805592794642383795626793275069267637185354402180154755203131475997586850156874941329486824133125770694431688353616594835977607439546467762706607328572632708623255079247981003061000010932940028088405676853437285436721123093597683768602521865699670281324453022709537037827200425782760338710748559555939894305016319173190168593750451758181012051571005500325365132211506620349533680569143505769827318408888618348074710713236802400808524613056921482443062692155998979702915350780921824197384051728834975702973411269347721656308758670824850795013458850011300503197205223870460200283255095280196813457008550077571478686671384001442293968242497008517681660282298323613697170842724498431359216658765022334390147563673686929362853581681638485112108697645191913155768808021606508925426727728132802470372170464831997376785101382634353851387193288236787418373145951138953559493502084239654217738078980030786512968824725255248534065310127982296460635051462549138382276329386877079264423713160697402228312863987417840794337413789898412391354389759149158387775304736032926587444049761223309232415248380623200285275777978028957894076150394931749048207224761396928537997094569112923557701576877580917291563638729319780750504284693000541667270846341728658554812052155461870858217682940551770412143140444273210551133394651046220585057023736357519679905120708137169725016666920456099969680286705584080663084520276563601002375731766627782256661174486515537418915469994684435037541554029036789947439325066402436825186651333768601174127251256045721591350598723842045994983707673570915671232684007878542565307728953277441823797504952073000917893848297034712144940058306523908546128116314559818700255312410247792517076262060530498749021432391245343594711465888988120020690944050362056602348566952473288135378383395286608595187338402065814636586892662503938342550950489707022350808880721844207181969157901085918437120325583027977762532887755555281039067085532110679821634118665223237233133573835957147268743906988955301067775434796255158418283172257871478449682904513367244310294466762485762821570081296777389296368453087706380200719658008090178968754378098216130259567520267381478250423734703048254168607766014957352259996765789825633581163977357426588888740825502070028222402647035623457682556028138003313333853211405799042574402031599568516677159726773100506898243923352325864970172548990903458007256219986056499656915032923201016058216029552111930459137694269727374129949707751111544608771718251117007840316909762734025714051920412697491504087405369744309645394156915595140350434680278700459915705060004330036148200140083688997548573310271163509037952486390187819799765943552922512894128170479534365718788327559605137813397727658119576949903444583311397049440892747590112876693827105485869704151654700414926288043654993743199729796359448088394442043505107108370054142722776280090793690052826619317734887923338982183696798974090779138131902935604655071024008685176535010970262729401740750424145142020788220861679061095507992749668274368163833633619431418506310711744892845825146951694037577474527981475914825308197640463101514921191211825746653540625195270778872514170322628047757045464597318478331171834371790764454936496364016990618664377212711613983815288974430925222766432621828564357951145261182267710784912602300933406734893505405715006992990202573835422984448266309453557824203729695747005438510469771883171773897530147711240833293783429398422914920764870373604777667662836240965684188568173498203732581391316642002638505914414524820550149993525490376205361170943228838032766033827463186725007568454261194917752582967961240739021100085762951621885031991085581071793349206964118844498312969535612872632651486614503045415083531294848519228881628806465502708730378492165579335764018388572260709408717558568539203999743368622184557614377154899007103992710817691199583482309905165141804878418188894112046256400289686795141452760281333440520486007996048199698410691924978619039569077825525158279893359342523362728946850076703750926873961856778807260126430037331478624000320283763136814678203742366974610267926957412460919951729267596035888457748660574143211505122965847811195483736978021823357611692888452904930822065966453419170002316429621580344526932413176823498734513162678045305163242732686102041555308732489277066078449763184797200166863848093914565732071989074598695192061202800772771091445991103223028605764887948826375727147245685777475543728229109532939118271656973016038568782703419671870237764650203743431250350791288226709319496110060172509485815461290713265461500312169617861347493599471188365384992089409219415717218723229644276461037744079531234063362541691897995207203174082137109075116035168818774965537827526860231541659453452709109345344954938051641830135437703002661243653792760182417801364939966349645569089110192517054996059001363130822964499109952967642066664618489722737235321219696989509629004132847069419166515430751413816537400236287972702040648961945074883657712679035317116749327653997195823240003136608988204773950370169852806423504300336391886645401443306920722791209600926483568501370208500543410992371069189516978554888053378646332160534234285793205827707377051571611231840088389517213681262756300516583284210775909958414837591329663357783435497593236877424556407140902296882992049672576938369430991096121224873314201007351327507171818022454051459424405984371127990472929303751242942359029829812992296215748151803375923056056856149125544042043958805764313950421174077360099891454741225014930321003537658540721862026409864039419057623507627561378625404966010717662406658775317562408213387571392218079328049675059809840858436562666052039467356872680001529895509299043227291813157902243469430697708824271402270049481254616188135763477979978278461722125348164805413242126036116087206929237134564781563519338672477382241652472344174987084657992906342447173601731439073684024906648811433260515877209909941995473394818786322634601907383427585091632929995750782186717191849548284458610792816770426023127122958174555578912834740330298290097783695272386563698111272648897559320164966427198962372808300665357953345432317671241004393013355259417175860742866864656101121644077709823862509991606680381035310827209522529016507560123352365922603638450935058148273892722074154423601969082618193446408748426315716154913301421630804536934800138589901077346869661816715310440334242879213118133629820047270051938594504539007726200060055364645698485406727129730189000791017242160136734672571639066151577902591414074327708142195701372380931255611856063179089128567023175717894808122600172875561450395049128914431276151025042515182498489593704104477927290498550320903377199530838524423871088203605988840859693503272129461419488583525786770577063475545874566205499555545478304224153239635790937185248190066697767496386902269047439645882454590336512301160270367730318966990571172432152098193710307149997696370123159999307000550055121623459513194228201946002708529195232108694138842808479846958144474882277520932490892304447240762767579663731332901029928197969350493636698407766340283791394553195933753953957886777201162220640433454962997967779458488407940812093588933078619788276608232100388353365488061148521962291932056353840617199352500691080486195401768882613693754670127548356815044283528709011341120292088623874658075905536960708423797024681857282274071240844083014521862251375193912274143774522178262980988533494387821252956267000757633752584685021038851181071062387857666290871060022332876893929309136247231052582289613579842446698118052745118018854016545927247299638090689514057085378844272124353786841054080568595910507802660344009883954351824902860394930144579515711654275762183210271339652210334954037180923780527152291111529152548493298217408909078826070246833019572991089743741936818585227247860231551366045609738273006817536438071840648998060275951489433108469953714764681139434945711395055101003967406470202337848680581877333776802685654402314948694110265126105935859954389586103808799902333878325649526203024713417968257272106473853447023227496616623238893210241759043334675772229009001243132936909853355218257397480172560958220340991371104444555316722834902780705500536922265021206458143347344890890140770208966977431942550365600933433420258402903907388229795268754917087029680520144489853694245165885194371523626709885162804454613333376549152293630107951650933091056223547136365791035807895368828189863652618757068228761370030916808276643851095634766325287502441410520414827859033195954991060796619270368193600033858006999055624883333099280317318930783477937658021947035309248813557984311867736771482456107429445068410381094095425492526971850878196502143486454601745232303916511154859074346401576388494789570330975386035321631622668720682921718257551811879957832773623010381082641162792759786408839853620942304902031358761082349906598365706617737031611323048435216007594756178942576176964479709670428945947664914541796887254094767774892458924700350037785473305875543571430361495855213873313086383903141534876110482485054888441380926523364350564757373020029415654705405433253894310973893441490248959258909790022861247806832359866140369714302673340879858798028370762745203233861182400218279520733591128849063174510170731322582096790143043877633599468695007540405480536687178473848553434166782277113327572809704916925620706069282770744463258988971465762621074579337964138163105416255747662888035848314414483490247409049252228601928235797313165804561698249346111416356437621439768334022908432344885008228396886815606933847283751715600392046239601836360374235279119620684888687954131612333876890932247270860950844113869283964333710624163776478951821964314307082193294525883480207790929917637127313601755664597606870369105532685895788089805692927036878408799599406793393579587207962415900865004711247124832336449855170129462761997772541109428043405922021738570948576956525146567652317867063817782014167200609164281251205024862337088280071277686972774585518023040014950581345231239487544176044245532627535668413570408826470037482816335712739236230160408824467837176394070090884597639406441988519911341140327820009992454195554833464142083549590765859662610967269273546904497622648110306341229181469365332087793634248907835618028332509880353222717455641952959632658758434920497080100941593460908616860234942219028511858071959977862461347566891960414783115244707428858084902526727092037314801524263840582906027056571067911455675035892253233667012461500246702823498529734987305005616064215664263341064644531311073668728099166331201005349739913132075722910679353488164530475203715899515467538610626665883041845514356274468001568817013140497570135962389239387722197084305440134678635700984886136886029760183913888422025137974530289750133725510081521758472960860608282545095077306914129411675475280579087464753532669338830638100326783730466524547274866657346828120788112456800150341012962741869974227081376166652532032737639429826931853529019483112394255173568834904837508226361781372427368495284428066557453603378836549737726435611760173329817361676502887376957713455602298512883514238545957496733551333267328882083991983164482488194271812938383941150894144368919287014795207640704275482450317114129128188570430103977943828391221022468504114678001727121846049534952750026750796465815121733675780021752535427023249112215338313932603665977798688922135353754624927332440685633313367748583963438562491905175948373502092137567131700852098333739362273732916530608741803125706884472566091411177515387950103974405709182212726838677950038641889163459447168977933345884633224648300111567746366348252195506776223682420308077632343444598209610844537658160934545786911654302567397916532151519340576438772931441678491912246050466035851765354309327914610798906749185632722851393698753624338716615009329891798831716039940200992545088744413873756531704888719671924042339965821700145441502310534022797174426590656098019071085309354201834024248812577841322551100870727854677886139588493665073401774321106083237854859598377274978191835850721936296687957558520385906632541181101573390611704269188283733649684223489475250137287138205099861027339296070191233388277588309039800025484678993271390722451738929103878762424108071363809058494948838454709511928303170813078040924538299515108258425649791231574554838801226825691394213332131723869156008260172601331511220156892986877026801841645236595254780220587842408224205311177215470354811825773066642741430929492072247078371031519006642997488738808773111706517269533443987923596576865052593544196987253006176499997099049760567246214886357645400796331531919018824797484635045707807576123874295060565328875855531351192433263065269206007405693468657071313798953387925952290254905323254906378301333778937475304422949160584694953152127762513297278553105046581291881894661838043284578171398555411212469379456482545063835970269805949897903347667448956090769781632923840366938125995718383376294249716322571434685953470867263695291224742069726414267265149084657997478180618313091641794333247973082449472127560254178426949768325883949063774328576454289756557236788404930240973098594428041383494487794250968943338717428918412657728344883056516043022379830418430286829199232361795286705594313689838938671520925069328551514388673473851150304488320200354131275175500758710173818904210213087058561905697014748710145043193712135100660100624237837852031274570252883691890076875755869013340191006653443466960761672786770156829941010091325851698097293551556592299024418341473906165939703618899080625687421793337707523025997517517523908591974694384204346087696691288075775276232064559197917333719137267950284046297338789217482344531866263968528166461713890187794406011293127648123995300032953362020291592455931478680859200498313289942057640108059943790975049456852383571244730165979623084949552088479394597201396413382715129725867515595252049178696327443246903705188648717449652100677566922440029536685068160960109231745003325751897111364733534190161091585662784958477754192686141920082942794691908703511829479936852135062262928483177780529491094937638775711005132250589552642272725669492491187309940185354250700284896646686856105429794256973294630265251119602073130272669126244723488479348350136778291266740089347378236887667814389584414835162119790245577434713031879111212124937528113924207517879164551064581193999193048854236233606809202182938577428624381140802774606730274528394646140359350751542022136197274121822351797763758300129055985669948876026183544903345068708685004878963169624038721649839512808704788446964863128681387505138377468251115403364057661314677207989059750013354350288222977363609697515521064357500572476567275316212914134827430061998405192569325354826138150457772147837126597580847129814867940706676577085473587850163873703241123669719926408422226784247220544959938152369414510907312433939347153691422888648942129999524429631638779410628987795608257219983036785544304327331875946802573980851282168239393707758587086107745412359384826388419931206425508053612165665570482749269498194363712762904461789762665818938640056986506073058440119955699197064559240353914213164327609313534612014068820725389583026454034985858683771468256515169177886555191630107992450427550859721281992053728929628716187372697409692576558279825927947591474438322998315465877295806497666857269433761360698721468742620081505301942029874333901441223859562529748896903117123892670577063684953397696147470289207505168949061768662767747642222728301323416339052078198712306066930392234446602528458999872449404103231913419203693280453970002797360647970266493425751314523659096999546540583612397070284017575362430717502849480981061472672934603583929174493076513613596074438242061968254981205873790205235313652294623430551805300373032446113503789506042303034756626975237844420266286881455470648429417818832122130679861656631810840020571450003989925409304955614940820855785847606261054707289756698855971530386863425535099406445693753027301906565849368141354065574335395946108079621931125964138154575549215904433715860537448025156850433694832090451002771212078827609042383520164955499814365603049308031602885252215422482000967010023182890387991901497900456293582204325758522859859909325303137953479152511696583138016172493558360282195725180444661150966866303439500712988448581821532055365444021642194879086062931500828884910312746249499454308963438942145994874107942382127294090726931346138808028106819224101903308665858259741258806932628412674018328418198342390523846989098721943058117227670039847055128614127027185396305111362621741550724425604937989691169901867202625787183363682090461051958051256262582974740464362637370845475018564427941568169293168579176958948187824837521440245160383470123704922110813799015182196006351806541164363547527455140399347272826492120980150258161488831957824338621129022378842871930990355772682964125067085651580760193543557931967184409291666899973601583269610622417404535377824774366028602619223330008627461081425001095243417154282937355451401532488004988703823521525910407041930050917181286800604556437995486967706649337740569490495020074782369149047492806794669821949719759131259491660191434983753399647892499264076068740143179260384642438630363516989757741039286458258800506604206646271259847435367279807200743834619937114215640552701126801258553942995404173289324864854177380278918642538612795717852068766049600204072610537343102311725937003130172615235033428205618233816868404577738348807378376595585154965683252854304848480035415373931209611125577788516385634926569306259974354370687828323500642910414617871245601440728157670093349784561045728390792653369302254694003340704645757000403163817882410024955286289675351712782152804052363198195769628355390189584719673250743798293766439185315162069931046932450233568471348915819544859163258786902987760914297177435930038878330664400114768863568115299927762254924642392441841377252367353906501811538627078104152156780233043962106273106858281859390332396201974068228365983019517607955255972068451734330246566984091651504958496840950103163089787104563739445394553506940209320189131317826528535962714307811670507333052866014796374387934114666813752841842025409772858808461909807640288838339518157625940930230298196039958765014579125193391686689938536834516820411738041773754816018830604361129205441819350419325230929757548818962460384297811406092635210816389041366819973335994130687840136794044162157796235251784803905370475586362237410492253736388168076017823510225938068238727978790077675206512662860788800738823946942777210067011374566591663022583906726490509759896976736501190213265641324436754744892459411251233969485865194782892704264679400479343744498657740970975272493753791585790984654882611865748297882906248344299054758928056813154252205288007523460480383853712507053117540560456820370110926930867130157259479626829595585534068861788988608403783449542242352995791462318226184700461415800640342681277717332334706837026504347527909084408364049846635530807462597012758418820683797087549274861816014939724510273822172781869325507662118844468265342312131810938825463116097390952511708861010913211608078808676379660885448924450763213305490061697555790145808393848017798660643431955281725851775045493972066404329886170778510086951005801729546115564934201535545575700314529130329620139181689900596737074935537296040509530381137629357004670340062384829235811811187523604966893131325699427004622238250421083331760761251020528094254340697823099875880767425661329011092896725254854877704762821359805572818289836279110001697941708734726639253061749347660166162467332299232718477999048334356311129829776579394055680869418093761576568791125086709638254391744226484046990081693765616618533064799888351345204079777517771925884388982809382097148778257857929872571453406797097006240604153730113307924214251050170519567544145505572751162899065126333989972069990608418759670499558939280693044885685551069682855758335606343320336884427050178934417036904742504069890912658599402864482777640315501934107550757571848616276665031823667629560310841182693833514733000481900411094775052718131138705434073936030683441605229085145255917608919045329298136501264886894146875038524336568496702603820885913244308192040384174371445750009574044232136237305280247774794179602866063331959545741882725820720517637650530386146083433405590178031445642927806815876705266286113663104975976429492310327973827382638762570961608121157753978468051831199917552124934755709768740809357756436036764223922133606784534154534468394267795194144508600657244247799652110543313030148160818680338524516521970963763124786329640383456856379316755253997141574363389392155149524072935551716063655200454170870394826277573222964308824425084951631379975128473479348499665786898034558119975573843639483039553246677382945977901121809189376949819399098598359213607055487244379479077519587631784646054547382132174077085567208694511639939047247088197025114970158146089468071140087403000641793808410042493153592456445010147985849453078671730267328552626288359185162058113104470727171662211783529130723842174859185273751817041799407444887077793468592278515555204840547192522345600577474806316356127721613916908514738415465752534876652167424140574426700707954155550664785520122172758398633753740665921107406932831022077305931850829935361510842121211908214223373571351986023148627699615978345177201974269069458129800715960470869030361130820958093856928250618820407001192834330692032778045625736067497587981028106730716398223074002172567529936203166732284748309730114851800081908241029556665237160436002041569571442711090765898546366673081201093487007574198732234432972793930047416937251731894620833086191482278790650062618956690264718397265273751554440042263452863977494285093443686826418218606913477918733979587068265497052245665383215702513139927926380565110842631224533805114262518304123229594705331997659495936771323203729681504008265152311686906760995817488014428926585079301612010895134803077220731141568795591622144040464851652797943062430179540494478027020183268900579151429695074952324903138764242185531376278457151090025147752192750333252206878077159173335439491003910351800769232964446027938620423736524220910569712412368354544508773261518455093708127739267353679812955755213557868443760618514746044754346483456250974393183507874982290512226173204140796854651811218300746813741512492471506253673081300653867974998034270189512344792606966156336026814568211269774451155777514887476263809903111655732579368814891299758043917088411606446416491254819701756049620118824102944178165422665504796639179431389984797839820596971262729449571733144487265478549314081636588549650433957251639964990525602674815601074072225609760135425204269201861177402029398528968247496892930827312287085656588586888288118013203867798671608094312624893324289661478860908125368600179703054176427483970724364511338964137084559939639052355406528012338609958391595309163926399125090097765176282960732401191353005342400609480538305411604325590684000411143957962795467923557171719258117738697258200848151139202092054959916642205437753192574274467409009756300427020199874876310280764354922957215359192722737845259644639991710991163256458427285079950603996935455347012795601168459951443988609155786979947603359524369611850068404223750146794016148180875479954489379301328384548810367465037744230296719982032437938066555823164173224076046699057847196179365170989626773734624389658397978393403557675471814784679373316053429311712974569900652917581238806872073523094342620438653013653759652237073920295715180190713493389301960223298965149453831744008895190771303677632266272721580170691205425798413094232832122498241240107367271670324321906438690692975534855449996732262839737808348754788477427939531261876174657302918750590909608629043110062519648998190864064304387280499849933605165320027279114899897567392154616203525594970342823611625149977494937079240012810472410256315503438084185998698398113448666526525826427914769561562655940970514271324288189939930479652034036534234918394073868047842929825675578813929303834260863067913144507838480985063917212240788231406112215984617191544434391078928081417555872312886840683304593284157951975460985813537539660824483843575795825325653545343074702215642271554778288261017295530226508519073398355508148580496145785567232893701119731280156481420531936016898412434031013387173856221744216517587576951889295720523555728014450880805888576889933793659150796129687753235123706517835427735010025861255277314253198617663006612717279845159851370096314120028947122928646983616900006102796158369671605089245555671494501903672455266028518785530980318777585075375522767264145278804205860240603917413170929123459802840862164899895365227794139628734747545137778242301808629996588002259871735813529311487445352771434340287690929383192133071223036991316976633065737730216102185895771974480274855519795616069563913768712843557955009434451811130980907789702724073541705568262121955975940657523500577676558019036436609207912791170063920831396508163719779575244297743290490362665343577932938384284091214483416411538073314368512583472859365882246275819398911624874601638685123329263486224687876059012341963926387576387061130784052662994251573610832601112962379162245995507090044445637639356123585787448889346295534768944681517792322832932540748259906020915804814253411243085138302087987162512363945647270580320889558350231081440811871773319268066866973828230530981343690705307338509983708547154639053827430761695741573329933698925477068988022401269212374023830135641946952501266807975727321994181247996020080265091590346688440501488090504320334952461816235045333664500596379377461162034417408197428410497959964508964492706275399342981571279012203213331221495096590368661312219741303820614418129919538203334409319538118749146023730566262004397009321558051534704610013655520989172145572284927811348607372866093173321096558622964070976703513850048358570472225359279315712795454677685681758370065014592749559045319380296684932990170107352615420158553608655549619109698822841216770777969875643402895581393992358801201606785519346251109224429160102485030398116461372400561509733755709739616784042795357586064815219931911522001218304131747094950402345301890100866866965121658522365554323325033290170949369260980494862803256895276731748124497443967395213607026568341934259910467251316675877124891406606187661222783439585344120019352473363011381871915741483469680083301966174789929762642043272789523026155623202021884052265982454997221011084106315835711821254813816448166509486452480320232438558670548004225106013808845159444091607311107738869095317722602035993044339599799190690890667265197947904734945154358245618082458274076886516710486579211114660577301286364887308928811241589846242240144489614507898235068629346620673865670013305772879489489721758953423592795042383980742447134209045146692782961267471802987141366435247023913781505168254724065997970500697754801274344038428849357324739852166417704963344997735748079803254057454994824834323450914516219351615251105225449377810287569026205941280885654395331228875082564503200683134240477980273404804665536754916006089272686255292528566157283493628151949871569910303971089228794710180432530053380664963950970449013819313193113402091159563405829866756374185664891667711218869973216338574110985528684846650945095232756365452873929811355027648323416409108883580309863852272154711128280882096981883393663823467629405415852064923022509420964685958777374350920905122545507284398266103562644625666382952619562894241583863634854830809152403881505655518205834127957208275636614899915583738748920054887171427553119134710636561387579810852445553227150912774503889370463705055340636590229143600195503357415617412470649652277098596465199545043188762262609218412287586177541040097231357000485347901222014623605019814806345974646937088093062961992390310618764147590070647581407341854014303753690284792554150563039962324248771480815728692144285154919063969709405166547565681904257689425094733059712087897273211609292754518306605246864990872561676526495859777782872392167017898967732144692899575273762918443222006494429814184157035507258866199619488020774206696517483745437513383015130619624318375634684681627735712750285236028692837140937576055282426657282054779443995342730431245198512370732719296336681312957356310806276259756568019053732940383823324608599045890076710699344943280713125027728522542171393510407647858276178584579202504924194389447827739698918167224330249239074391340655067211496738799594945758078439337580743949916389575561478901250237057965425396109439994911147218861967129458980671524476233149483212556029801794945008937381749961035125865890442371494874386388388069733685836164483585735310731411568061319451305411344762241688198615576253682258410742522554028363651740825332191858828641158546830895564312492738751422370427693726896676398739763223062195231865913590206023467828406524834643611552272752455128870890866110820004041790384844164050265718542614751624415982186054654460872253428833013881370621136654981705531672372114812089781109863179466060518925779205458024554837324019302883759307586329468203065341429525004778213838826493026266976315314822543865127602365975456854477229316354107858808480322539932476994004352140311657198011701683653777322700544810328592639457558523909199414655134782546336783756954912273294187924002679751474156769770076946552847844200127107766355637503073591543690227726425590698398118888611900180128772595411608980744931049437434595522340795298803843679317019925761934626609562609425414132375836272378506922076395643221445905824086862292224170072563901922752109404547766749728533823895763121258213800827718475759790928146773645294873326690039810222354903206184933876378213028963531301828269080921456649318424203386675796085154434883375011997965355280242758591479110023405757088154528906021885004254195324821902719749383430842314410810785574270034248131427568851202322190551539311121511148732473785854007417500192331968600256464845328943918341461417265407312725341907680779964229685849155260326405749986284621957786886433173433378549310004716734581436717571080244338698579040419381443531532691280799155923064838710915027638507742862171962165880711639125475667059058166003115500999269925010524822621012649785492998445270589143368349556705491563674277777183272753851034725454672116321495552409998732446340216627788814667061028835201819328909406249483888591940050791002579268898904451552364043294408279115385592106414555798733254902101087676142080457358991089548852277301405899729485640051780797956631804138822379294243287018247112184256603875093015564127925892638883605927230811291596046066045484684791508800098926345437421717743351367043922138515231522708118050561605447699101416240197495643182967195757197344499764201307610955357998645811608137907804489443786785352208780834288429165355340941603327028442891020234831117361455080326751733374891440942814802301810942512405966097623160592272899382095972476406196551764837094101077647523174537010397690244049104955111509542919384860285715529489622285849353648303634693542019890948631776743686705478612839495280334038204345486096258463368151153460493224007705512157417853826053821070185696889335842407456345281015245985372556494451687926315708536309580499318311722185333501888681082856250240662550421229277930128363713336390342740619341805442999934981424522770940784895524460323891770917398162195794820439358762136696185171209272828282212137754735745943814729385254630193006149710456555224197615645964265839042107354445136458656605978363507231946581658052852197635992099588302467891572494320370823973431288436800700330262352663145873883683463007033296939006199959347032482178544527176092437418895340799148181614212670197818304373760705600745924041014096689045720106102967070499175712718275810683108075464548280845176848774894354069062074599536382505693055039758863916382978052467843856889914793883598587290905741014806205767508916346107252570907418954764412634139629175442428141562600731940252130750581340586454717736346141283911064561552839619338145899012507553790095724081351754929422676846160764364408778172787177797245077331533326904508484428264643541073120255893751996725133890723223146825932347855585083044647937001285009016407626848853247606774805703566329537399330694512334137137753915749918024466025925443624557146096232546505433265258234600939942691150983843080586241764316470652266179996069626762964447838849751429210399690913953568056391320510543079108647708414916859663213828572332991962850403193748700469313664456657970200616888894502926203395823378767718313065005277437826575688043373687816845768110184971514842044633806997905600204597662769541958647430303113733777209069906625100924406333306816584819457406810918249918252476218734467215861854047772852282128689502409048788678301800071414095725972893611872633888248621580693252616467399073751679341606840049465181951909106936217608160633771316466819491424008993234223443323983302504803584799293050857429674799303729957764395929114021801221924037922072394837109120746504068302462001275968954157754764728563430160375318053190328041133497476648610035725334326059952005906557472086329696172421414088874048261776359900939875573699397941891059609278990524435991082933634065918588353144090125230381417944324242200029232117041977622886998909169278041136366187325004628374965720926304734878635617145709742086052273822937663853534712822674118046729611485717825988915892086584921344770364450252023903845501581757138389634670030072975520592095372207679085844525563905057540916073684336375868495733987067279222778624332291192470500063884388708791508152412722451473638333062161772232774463614395424985029681065640553466936544871885758671604863171314360414257328686348704438782845281748313016219853388195982890630477181742199383729079227663070321150330558296558411847614296812428656726949426313245156204677437887201474762099798298867751981049803210257170396054206915222766792771218043118123798053847459045688059576566088959575086133817308626163118624518599002268118109508292101556879975765940197375195118421815319415352907273221462823510306276366243242581067308999880626461299345229805794176011210482051378285606157362380737444048499514195762632235291357394140785614669560717953508271927019775448232800780392336242585196377512012049528985188734603551767257609374004819471088265316704625110699682822381535700468319881937244128890468895336695339270332019428259630221480442732168524126857722713283153608486312425712690481492187120250257414903075931583080039018839096553559553156922129625181394523295537996643640873677468587681372468940071102346771707886827364268936714730821578401211696619992387670616217494932505470585675581053031515853235547091611665014339031619251344367107643869646918088823804705393105703116755335751323261357513025306229122531355492025259448085622731652487580733969613971928776450301887184015376518457775016257096592009689918656951133320969820459443899615411541396120450486536966116611814925110610062513419618559998356269277677116080830628509177537499858750783522663245198136301912746324011377863347449191446972515615001357611376911618498134371506121022341561171205411188736669029208976562251295816712396097808598368843677504747938519337246297761615157716025281145247105981931642236645481763699970227705691850733428046103771019730785144020415804297467950460548577037800310922461237011473329598868609001481653108068712812465778046749990581408557625316302960353224757880956473160788319444800057370815110798171948324336739307929227863527842843466762122704716968424891375294401999026267382998143856541301954094918558334837942901883003707725759967354613278359600723496233684190170867545155078277698944475722746112520884744167192242243406309241032938439313873889278224629746709192381950121177028104676054968803227829429212220709529236602918213690086152479521855992699628972941257231264117991213980162807315399314877552463689546458417016716114266236402265215148200815647563833814376396807838434646753397273185289080716449362914865890723271600447535900911250628337118229458174441960859738283822198219826240262567913164100289797959231303205236357553718802781377978275466154083273140019650701616827486017865230128723955153328875784800173333626265941418329044668799937417093680435246974531459345953690934972007870866733349411855476158464890223785293742187869067456923464851027152235997796205693181735179810804752480903947920623031013742968156307606895245538952740540460533820673766990197050657984756884039708411716141259796300589764406127270763926121903711935211912724524575032426107615577463045099856884637748607135046426553645440528701644348530650598990804035866507069931494041542469588040109510827155820601535422482870255610132201989377832182198338224324015475424872160636113914841486163126236765285984316485898035334822172506676398175473166189453111804013660910960376696170825148107075448919980618649545076453411400146905580582623266504115239268740026795913894474433957899954693352594896316908475944761152058815279373553961166491072354428039021684253048080623017755562843356723313728954532747150089736770448631268730950826527790591605312217259825205901538275915935031504064112392324527132658037296250174237424828342131170468122823194870916174665521425277246637157399518441245851186985748350598824823860355509818807316360637501256163728678173811278855508145467742640756490936031256052097122422821454768199654181027603480138105861447624854658641507209134499935914871583314001667704080304108583291102137784265015122501054134421510854207067258844525299699651350183693239033406174485328544315606334730195377556757254828964814964352486161560248410158002810204563355774851139429904403450621659549011540702582322251533644584543476551413058944403609462992321558274477368744152851063531056082656669309204630873491462794848780385415659616676228398104903012588383327281961452769080262323544285562024822062308004423528519822488001722319474290936958354204895226108420451678842910450800862810025507673417720352180935846672836642769980756642846492629199722065635172122809335516367335941285803794148493256565344000262599535695200825217214933699298821552152950111136371388172489128544431775493957578289632466630876626618256178754945809202463610973866285990228623470935026561187822692458390991317469634093903811615020938920353993831684349975673011034821407668207933665027051705438059762736438380663239893164532535236347687342664601650460053847678304914896475704021596590617331584841798841252808115465002973934207456855723537457538923849765863624052873313781690885346183289956938388098044007372605887160233200787989902125291351639397613578159891227522962708791553993131124719653888185210194658910002463032888636459327294769993509596397905420423780488443372395815453698445544365167963610697935935598630393866554307516379706689699342017986226432400748007029578181581176181441198891828833476709490750521865373590238621372409396368398334174341772070344415154483921541203907048757809276445869999807571862984596497607285619247161261234528781846139412216153167632662019194812109213196622457772836423803058396761819019299246520337064616289465867755867666764224575903375565317921823438080997924918509486461969880292584494896718601919267298985360164829692185733972190018141233346185176592815831395240386429845624762860542277743391689390892682871588745398626286218820474233395915097791118118742820353790557147999503675768437852069031057485027877346981200164555688278256111865951094308456426720308809405919845442940612140963892596948594097022755645405205063519708548887482758919734588052397980054626543327425397922982506848036579030378010452970921083101274550650853913026324152879006720040390115269740149883538393108019273191179258226139833521730101031867336100448463392466780726040790385249243024612851214705640515292612317415936542135039236931603142982132322692928917436983632051094337433629134626649891447858104047405380810387243628116266470753934483263818451860699223565111239460345493883424664446476214055717938276877645146238336776749856870485562286189464516093676268166333553689752675431728714018836097936351041334762476151016803604345247387320434647356592222490330913841246784075527642852670436669755528160864951526655901343105791711633266896597458203110090417102868647936369700889722531943243961136469730002896130856837089575507578897948890098051219027041495456075593150661620151241142222768307421297181033076331708202478508409412397171802035325814693950739904906401991850213330441212397698041272750936861652824717767215086566579792685675146447660255365780843474669879909023662491119831386381674220861701063113760603720574149569275400103764131947506365675398146959635444158764705414072714470296868301927384439592258107972424598973809446183528776513087713220816085120787583254881599827569899503725976425010785108465491668581622785102210841401893452610945201267280189861169094473612258141802935298189257029365872609400030531750046704951782710340720095402040437849538257065393078751655765531318366116516890395989508351230711599247638392467763607338725761767871590938295428065265079475437630811999815557124286645466975424769932340344662727693866386364117981808334285753079216654094023320157970472978091895033016626296233576860268170522851177167445893260013001359866407647494433557821066065766420691050558990357695016200009368981715383574890394355725659900479996524557539860016963719195109482398557706078029007869602271862712571683327499559694577584040870259868911843495613200830472293673163883284635322567287966582352591319277657358168625018167640234961109394288124561830404378504513565120343832713519446092684465234264280471771591155204969050675667697004987475258106174185390496394979122239992209217116142482684321433417112031009449876654071447919298957199035921704957949298520041053524327926806307995715037103537890631115726690127741480272608833053111999634791712958650734341431151577236768225895748327696993139827994303349661300483451662599572828697514290980126713905361020769255033338616469176090502414473424856935061394506754403177847932027543530410585322680132817201480343701898361993697362196485390591938759247493012997809272883536194059288528709288285293179579206563927828547651566468028103556081006113344097819595592019034272124135380499628299697219124367171689846163982082138134362204156623376496329832935116992131532686206891143098746183959928189916761426841961954942790956888712605954341288282142362800734120443189992207435966773376320002141815735205627152699179357291448382074359247568172139091012222762126373281241989657522736648597558149276865170105852415173735400696895072235366248030874414148116612282274871468761092857281912435886432066320945957544005749199122494246787585958206287753024134066900579780961792627875819204229421745239100670362179945372197541251244630226694077010586018503042479266047530893563669053718365941547426437744884924593430541992747312182991845440205573406649822555211214560286157468590003043105598165592036748438969496134874746307424433125656570870280478166023642976266663671735298700052415688209621629058923408686191969002645697827899173891428812203270370621243730778825040556578931006569131438256149443588325488104008207966647522639143317563377198663943417874025164155003220069772603795760894528422082442634699157533556123685190040865915531471239547134235751557103918464010030045439433041810592926643957915250175834968347883235386283331210113123700723035717674042201073128242957612230063839436939557679981006622966845675910502747228965008316177613352222321399669726547765792340641235872744429069507559828882505931743893046839240079006353055541030377106242223258038118623801788778358084066365477976347486996041248372831866691627597991697020128227107996238980830502958314281813130223182837552909863314980105421278438039463763348628871741275360011595803987638150848337940837672956307001486864956325005459712917907545330619401529886672378610809438899006042944943891205282522506491724691198155586719988057607018302919971606931576791086152237955092495253629655689739739702022773814246527859839921226546628306286586265641970166312006526370665600281989602426525419358002446546870900137458183393079900072914573254873240125803076934420228315585549524125851414931734467660148025377966247871101603301217005578937611266998111002627000598144686915291704567150366551872868070968044842732186997536591953161499518743021415723205858918929687767013882249296402419074728849955266938124114728817216057557315534469063323411638329934719552863780709358394740608483821910983731103775357003391877016659508302325185743602873732296073817833313390790300744756080566791014344497862632800290517272862541367897145409584963872265482205702717024165197421889705308430281315086717747334298304815524386886357843328018603236447708912373463670449299319347994071750876412993387265491865593787597966945717502303956444889502748943184729932375730663123485429785247991525252372267275429871805172303220492704596765433633941053810299754142557994438881413668816624559561182861027539101874634034912586235688879170852727203407468479495815973417806765664342109411495765394995126015088472914563526882132109752666929732741942184198674880312344992814684169896330591686190769498160800989527934465543176846404689491508268864969570022664809915926064064650852941359105034476944336012177959333611889917355058963923539711041921325269788997729171626327263466960763349798899219956906598251055660454576126771622703743274436129125428972978641079798982003057446419972515335670599759112583293440140446513230151476100062729855062150259956475929379090257920278907448942074219570821148031838156598164892445853103136974821264383957782436231234024912376831134618201930286764563239868328312095564704270905603141120433165099780887964644893097733799010845726801344987333681869989513938606117222617594924307492945559026082166658004573067064131034555313789373697389835916418947791594165531072811423334770049234457973682855348848134286965748779004589830129220546173535858680138830087419463327996710916867794709395684959460939236619470965272369691817185459032365736218309127092202491894877679011803938714517038709435824982933514572967834894634527090890847021731614184537040699887191437396060852952469950391521141322979275939555132584407687099341417995827626506686117216612435216504522976062779299471230025162188444878358958547294582276705389837418832966848047547233434080961389435141071753790957825030949202693754182892096643840536862612484345970426818982434769644777460831536518730334402215783002685305807453116741591627529828220771469238235074632815265390834399055886172142863962355125918876633987307944013331139852430048839718830940828772391838521368006502355765538981266989008111446339790397626537134762867108922123691849409613460825575675025187063150448083883449820030700608857175096569832749366356586593919224967681333185355795380018540000621871389075195792542075438106981856070112155368934244655951957811698442232653063634035596212946545468750380774439033980526333975133115691127095221011119233056955343198037517915790780146251916998214433371717928580775263056262719427323367813646235240074574708878562836024527797458307018408557082945732487337050283568662331485119185898448935033467291744620840010780288660472857836059294156206950572251389870934260223429029899915954562229539865448535778910152261722519512713184883233007539730059151627878958347215893062151363023277121837295800088637719349668311712202334310395369377707906346062914653414026366202781096772542781881714221070262135308614335320305359783455632328959043791327270285508986615712671289793596087989824071721899788042087859519193119338651120666867067436998363393267641598278365127439310329002804798742337123000877386068883216254313523813972345783340378706944800614174229740542928717165788023393644130635840243535894620864513209937809494765087171391672466130681960860956318661898760292002234338169705722586268400619604101300554609142916933418705372983554125464843219632690438474522508380736839120815771694872377427244896737603485013099894037485344060949365697520623065349786621185481154654695540174945098059962704891371750602923362216982388780667737412658993080283998588088975905606733325044992857308622773978011642868489027222704949598684028220874987570894902211201356060530621913682077272232309527734401739999204030238118779466308608887632410715008805523582255049966103813114341602931111732578996403478298261261169278975362422536828831144377066488774564241453925037681132112440350037655739014940884757162903292784888529492848353131653949084287402889953918603369174519293217308923095912491273122020301732152551712990699029842052207821966649078666967469116509495837840459246277648536333777603937493536296516528672870338310331125106975811014381127082885823460941390704623607432322808453040569866742249198574756009363271330442567491474949191842994341021889093005408926355847800309772788004828550589676446739766383509432352507318687053124402568855215797554794757962029996366616195896463128671848107852391404293285445420341242968313955403415500332285261903970196779491198130050711173853237800557456383694604995021154880138558908331672043785838662149340756649955932671654263597442624855018588952387131802358823973446059560570113583280499147777576164778464291314604571542080282772179448240051224054440135916565577163898304256787725445513262878854042062675444623502466762715652780027409414476972038208176913759396817337167216058500440577467750462405469086839332425671034356917737891427138952401419415762367977903935616003455621307352615611387774258973469956152375018196746868586816641784021739239478551350786502403508794664937503392076307993768674064111016094702312262971729544325391848362031510854895473972696871330961236118507369901688232290758279621118249071120961442589254308110020054158318458033396083015754659865250922859206264265508094732935101974006995569855577826530881374395372092559929711142073863592538461191918260839404135607917893476317541010282641603544480672104224403309693902432284688775335321716870762985472310574770645643799630511380798454383693832704361045775088353423318053809875941841741223971846887385740900119568206945281563040840353914128361616295290347626170310375285438637296628908235708957709752220196082428576524810553307386823099399572463371590365963514987747816175766436338573343410144905869416758961539490728332018014596146028677105264781815151481922541709819553947204493795237882752164582750087343971956770365279905540111872681980844790573573745634894994368268038171873392521145431326404107705827632174735985370905566788193589369090024214347632696557393154748055451580136677465267409230779727278823905256559508034024246964514548644676021985915062830855060773750854008245975047961813066989940209768581496642962182707484842890112436688734682851912590723226680889209717589036744888631380263735784028257555751962920261450486508809997385386721815716355333124502988506260431503891874885224124253356871123072798115458349776754736137366691975781656679785817091141044823694672480139322241053516066785239083157783406870697229147872376359650852137271185850133357759084986512765837644702201952153034960915668481235182947472765088787110997279492519462745511607411097083426984642755504978710877625470747463994969126351058078764866631104000721964247912865577125189303237225069124342903259576628755661450023744910611650437891428226274229857553573420456288804053142745628974111566820004726728744688186175062218163488532607267730546626163833292108267369837023959022743816538831396138399439952067900510418087541876456149466687647042985296539962314634488009887902486041258429555768426639783664747049862151895480331399419814383323338763442493398917072657035870921911575641425361079933250883534815266727982213390653312293886162732995715166622415636909119745039278965282952595559748469879871054470366714994649556423715242558082744981301833843662564303709055940358402078757663534067954232694826751704307976323800594949381901090049540316755209807190537641185289776071232395144613652927973120602043418275526299527839870587317327989135140303941807893512102874057577312654843284049512974036079038194335241091251088227994134095940729263476869186560718304446063045704772158943250706385221496656777858135968175909203991929040891658650042886867055491771858286988924089223359810716693932105643537143281058612029439758981117311266316360998962207197103222250298101028251563070966286268971363160168098126444630502456407759681471626264355952687199769962808454369748038636371896103427206546997539862188080342813503307062944688514430831508799747820273381391568091225972788995565210796664594707407738725003302546686661820442367171551463874062679026708355023227715669270348154793470608584079956727698382545253249061350577724739455891651389685896766503578711314600231916594666603912537824901611565315783906226240066226527322365430165288730896943739754834141600976966183025574023221402840866996626673492771665896030184139431328875713203205242910551717685664073050421883810150319918146276014685555977957786069773523655177572547598036338684599336793860407481555869600451807251054992403060703546528186532349627888674722553105364904168752597004434101092995243856238517601100255889546955309081624682757322619931830928737281355775994605715349691018295880937653363824909730201993968299871142451213820434105680939548612889357007918929833934020247365499851129963292282206686801506095114535782273426674379447886460304470820375783607577945440316020035642530220072047452158027301800194645818239837749694499331524861141190953078389283324417741366774639136276081644955612116429236218837840421461006023818975098378943935730587978927021588339249828785441358825336800572271651418838858149295407662964985982857285878430488115268768922593001120310374137563629715715075162486626403912403308054046207340481045952775541689803139649802620194781064911597558465643384835808106704834842842543823055700508235863000106603218361449138794972409859907060553536207044079977902934349326477856598897114579024182501281747705552730104062062985187550308668599868898851684968061389433057386768319143008556385278091033446963012457257612796573335287653038142762393783710090691923611357673955849880033692886786360983147879210134807049167812684018057299405438663352517417547758603923173993702832077707167078850058221360292882964485142948767408919208189419930312463434796010500387589500734922716362420200039588963576392417491432773921674754928521014921905504308548854406856062700399674440276319619646993189936975841024834712429900535928486349407115977304442160676037990194224142299147069053755048410546231664230015418700846554769200966821897786506726076412042400346272384729472183669795206617243355200420073142342690595508160521351819119498735403148332966742114223846097244730364165176739114890215813352947001777791964694026128617745363391736255876441772167491472209916954354738286991931835301131291920387004144558075224828853143987879125865446170297900898953177395396725654407988960833370229180642562669338270878365187080432801812172362210953264211245126180640119326455558597683778220059425644035114351781492597596000769202769760355632312014755366216801631961343187095299310697226901608376779809971169150001288826020146070921488433111205317975620992786821281933208058204700016381677361092394629651891514052115151385277330099130044882765563182937359489194492979969441209076232081085136979716513166008918664323525013659808557429600389364532379343263021258830333834330556793990045213592868103373641746372798030895336427919796838954849698799845931862241423354419118883820998601925340418252381441336991060671176870291063600241451950642919451776810455360184502770273096696264395475681043292393279019839474023316766971771463297768671309114527136809119683916545261146741234296285880640908622510614607262565372459058871656296659986860814638857705745599937894983306299583857559948429390001035155969971360196238481336254435031642121695928110628088467574604267091296691510414159332091488949807715002505556665409431095349371063754711975716031294327024628078761413429986834779490791837156704516703315535787379860202572528397890820596672052939162974257387068995378979703447490787789262149181398866874923525202015616990095381405869031808642651416424451033425584538471240513032216601403558740765128486809246102714388801653230728798350173671174081372179138856335740536228273332186096857888862374916682031226817619280705692951336055474358553494197573471847480734926265385163963005974936512956943697888665701774267367964426988821348820162320645693636507665081108592515953274527193798175744754215900259888675760859136848563057503687954486643473324572912314841973996873395844287643574329698564374503731140372798779373267921447389277604495039645398799196540004236088820747077538232212090699070657213616720857125521417346402849584050558049839643420465135736870041663166443948286331221524445647089798471859793900823685727355559989250240475866204253012310745966668091844607897866583728983074074789333275163516065676343681166626582110473185964405791175878255554961767403327043508479545915703867572258903888672669299730308205166521886471135259138209650525567069946127749984140371484733625184170848962063592626878256749518035271860872910059616328305164545239566792759235617371192500972728566598512464455587397025567876694370318252869932703126816602401988581665147841538756227513432433910902262728457092602226758211881503561415367392691979412435618920726792415183019394706075923249978031796609294045831104459975464041610988960351111249179429802975098259626617959569626268488518574032627874895153114951350917513180372684111825548748228720492746962087112273423837740093772539048021485713333151602985287752086086048343193264817133959628966743593109080076282640672752686493270901898619370776424943766537121723196150923804819413733381502643648692862692938082860369732525982037384817208537329268450675653717832127880849706435530571799147298665944866832788268167693501813392411134056341625610600788994867855943779523743066494705611367227440648570012834360056977978239898730062571009827351971225025121224012462083354971552205144197155617139368654403522017311729884384899352097497882973103159858592572394193752145855827991933248287418681943491918419806821317770173671636836549086219882016529753348404361125637240190230923960981650455317128864526593255252025758889898037383688718263320590611452051132149816590146512401668063741394735408406338441948904031360766329037941405567532832143960081294616950586128803118410430971212813741187220257279690913163170811434134780302835754494592687499758978871486809320109450187989557285946375741551909340592118748513418015251341725041721904761099239097830690076014466432552042836657653078315900678033712774626309784855112825785135452720353514754824329661904066619736328060502897718289509120364229099171230873938163993421666889607096110722073693253781546223602869308739281563946732559278308230129424650589316288716908289678069279654797721676551898844529504645297358946105237813617560426430525751690415665783914588037640697280362315095851342321465995084681307020335827328393461706062780497055220261398292342737019717834255178329433843824596405184965694117475274567830232225703027436072986010954765424168352792319918869686588360261459523625594915960924752607366914306648711033299942310970833086309603222364926454749794952714328423074340776756340722715555155702518226541324826348901284965140017638993113135343583860968641053034487454487268776732963705365682938046446053186596745153927927059149265221699873105684364544626784503778877837948440145602746441189884508740241778056734793337526627782971074222713276025121594357636659839601064843633345682173821790918346084215500369124712701637880942664827847383487493923780168312562731927536981073909189169738236679847798510181959308174482170625468371727314574950742067711574915691823030730360457133830272303962681571271253425570257942963134374975464838361018915165001176809797506404823626389121831171386208347088683827676877075614287256664826164906478907311538581166552766411601852412049044894655647404389834909694085879559321703319265239226523503751444831003514173553750472976419342956781966951364984269605163462660093290526944998160648985012950421965899000656946192557958965400892725596484421190965469611841779185748376310449252035532466012978454566406376436354382811311926826372319739997051163559390657694037808669214264585384998446740959550267557793854098132875294661579966050594524160295232031458368932968823686390526208490379371767346679881839776125638890302856939948230487456579105341913920695993499008679621630475795141186331032924043901543648123575398640447119431031371648706982393820184350979880013404882362788375874310654152826969903158515058299066514675129478637567406568475270065930094831689844540900184866851478814632533658612608272102872547048558431981241575079138220317583031512262883890292501312640131485816135620767953347811717881614301510112765600939737683676320313956115606139657034375410456500134771527812993411176335534556486642679598964223944183065428300557822367681769243481659759856182286159782812330150943445250808980972004193373737014373606210109032726506316391130123858791177338129080852821616774147746500639136694089769827753277942755705139404621768050924304391600307434183047258135233235473367312589587378864057735250478979200418529043585911400385290476714585295140084602888698945074271575466063701017435819211992964331976964948393156405649940872003590140262447806444926021038990194564094337596400424660782390509219582347429826727855394179633002545129293239827021448260730538208538073767960654395114309607698558077294859723166286333200407992209985607779477278933406347106570786784178625308944993365278626444364842561557505179582284314199055472292885105811648147313396159600567800068227207158387964750486592851425818786702047491956756196044057294391256618152273336586228895119016373187026734841446325969087321174814642900505468222412006900869970617038599788808981765599762190450251117881879470535415852926959724007555346249466035961286574262688940670173862818622263229372297427706252654676040189207182467625381370479519112110717982369589656496615738116351316177848169727707131912761832790535169172576675278625066258408020192719799053420422693147934567942322939265444702481974661104396470485872665433046165026071594590539639204706804121619685734591695607541508365585246981878600453208581715952213884140095434708306215100425055930545025064655593223160712683717651757558643662713337905614589064466795525833562280461893215902922738282210581524726488200511384674428618574543058155659584206094090787171959199750241697275279395785683659934305589143310348693411508632143720108317959482197633729107358737246741075775064993963658306104817954763201495402356865584360698696328904435718134393762738626766356471923588975789249859555032279258112765380476602451443003231678300687764065788832019323985085866923596328324617105856294865947649943797425146340884914416204058610442750120069191718644103107209293318753900443605264688921990880172507281972322177836803773423445869375565170505652052386982161364409170451534087734777734212675680879406007671001746911496941930965190487190967017132560282675286670849456483917997670773132437713158676081447950997167621856338723676255658398006398227176792412431732863412188947520474552573235528859774512251884330670152124459782208460825520173979536778841500560362341576459488782123887355843706781917530226847602550007719509872705969448971179615510261514715094704351510944615660560342347666034665433024871008156861048991755254753462472968293109895533624539115144363286280458510039539303047072909808479140075209109427089572555545762085359644637189932146511407602936434687996986004584101175685978029167135298026234520177389012512054919814026184437729703460041205322327921695369225223146871573933577924901436954974985889173406447817025910471225404654578311626422824644781638611885574237039371767737583738751022420631560181949217649887313508337363210552086315478436819591058973717132829160429745327076121932135253193812064018982625933530099939497853740099832354950411927705739777560945138178000558664766858210092192337054595558438715061948148366828408572144656870962449424236410394920312494631011060117939910406784700373889933586777040300216259874363712557031596344967083430041516328358963116619781093355077495795989867559576429013079755740914192200325262685245814033529595663536049532376368101513552771636170223623691118823854034739593703125024834130494139619022224353985769382543427996697224208450861225079478218907910143315815214851372087018615705859261187439454874256701298276794372194553065959141607276024233891417483149291675014532548499093511177769902701659058811071906336445044816163456593332309817887985351999676962389752798568358265974624757230895131857421822624216269473209805610086022918424163261792924641626399206993359589145844617984812485186910160096967926441193375125271490513061560570638969858087899140643832578957464629788523563058360466455479843390320942089699241747302791510085402452851493563072648453153071567797444422551015611504794192591807890746521532918311154589516642612988951466285247743203956517349400714640921312057359716233981489888335589428783679126660611985448923818290111599898450324858834563478965219290228031057161556685300642049750688500447763147446379084227093869149565278421236473985255604109841911984972511914607046685591002717623221435849701755033731508714616179410749419426527598163190301322727694497272999552402986316319142993730613064034409164085354383442951721928261108782235249797596394956918135992354307610507926153663277957972693781471612807769769885238218785982297917583550494288823456134467311855198085669480840374627219800584274662080311979833900481473236425033022561867332560188613661748738893237170982609666243835176550455050156903451710641423647448199457412014326720820557081163508865350946893407914503613116175755910449985949743007597173556052288654581414430590725641098777580460787707944876773968775262006197381434321139827169971349799739254697730616660912769996745180340095404189440262139748801221202866077367677785368880043308410440964241454411335006181162306624148368998790087226790436395326243869877495874878476362855044348245656595128692262898687066874598836977459834123947835253513760105261853604609059614174776751809406402229155648203396749190782845811948305624291556491238349128213281380795831528551540630933506965698011340530527755195947594521491614108392333357961051067533424054287228457650875139338080401897190176224314017607505817398769267810504841580441300204005721841242790032708602527571483372034142319974828069604316122675664124094299955201307329038516362932831950420489092236816343934693741705494179770677189896634601107100937954209199160541361781781453702254942800417325498434059106590500905144264337033918828821534278561446630115053925499891638886788895569264808266769762952531472527167240724216424028115586382257609217067069000297292029307905742091108178408112427887050951524563438327385436206981425568120403949463247541037833772898931702049317078065606682620643148764822040673352610821015931673093765475189229413909800677424519440371645039338449858024219967756472396549601742911809501398374931701809218839932460120454274915518179615817921544576904748981588009373010053994200837079785332217264831062653402096617577958374556980827667745122595972051657850965751393080055266112682665274863210237535047550965740419260085358157900005975827658327438284309974257429462520396732631099050726794641150372525539178627677725160650759503664665484997811544268280022108959162809658888937878288813955648447664624818777185969150339926453481257504192428332728069107386277552984236528039728042830877152779833026706114511764687005720520179018732628957901912285501573241199464082513375103914739734710934245746647098365568016476157947906744287579735957700304569806667517220500238410554505413482410212020709324678068020059354297627435428470129958418553288486769189623194115102681172316061230994135179181137094857855383062191802952994936771573869824146176583769240994534393630513497396666175969279987282351765707573532709013826837295439356024518052332499751193467767444480268104323487141762321752388094354618245079726809721249803130770527234998438805026292507465115967899739275355923492027796991023602759278105918296264540189971807395112254451618821318481149298011473500758161769053191236563372496845400353758713558422912576830730262931550455728675624640613015235193284308151913713389088482437021702707157762534978313672446945390087253396038331288824072172837574941610949384873849363094748638910694843021012612257470165565065232408796593952892925925546208680332615879986079021884610945656419712137008694797290136686641196883478881688067400219969379664607320826345891255100391402593890644726704283265466438015911536266692011656844721376970455973259327826180373438583310980436492405906380251684810990818460526138423037936885200352831968053812522908504375452330193488363044377669461527807025683666914378423163491045038466109323238553641869453453171547665516169169149080996645864080195644986723849388531315545815983758517328667953881376700277941563818481205588018104972137512794983625959135212783773824642545167163826909853348951705316173319686061674789496572204136806554174367294774894090910037055430950382710571180204560686744375446739002915054857083071466129860500109562694306340176279760559844887015663321160343842866458293194433244529940337220879501838366789746284152052979649764992280200301397939126198512635410613327386307625707454867792133613059942091124305682674021927181981531457523305151373740757715396580025269480546713892275790347507021781503792302154996698188565785346181690992895142339044224932750849711768203904814978519843811724485873852080182823198733652386743531366349122201261916205031214469906943660220240359155657854042053676023100780165117817567657905875113643137534290266332652800361904235185698292444100505264682660143186550564293251272785118977549313470145936403138626315259382712635087057760521470514052815342432300315240703960559657927905312687452615977260443874892315991276068150016619109243287348554199340139175501119604252538684521436640959868073853524282893197090536649277527797814801649955811051906677185955088153150708764891087920983993447076494978159908475592630077622533905711572028177449486144093326492666471183689401179130710127921791872042724371408526771626183871994260491125480256446066318688328062053841082343475389010087362802140443724644911974704567546218715536986407074026281032892066292629666994103141182917744111543856394743589972035510360210914699132082508723763958809672896192669712688597710505235393337513158154097436610822869303698577334062543646709132894089034937922787613985972539497679734933345541422532845005026775100078860102571287585719934504520230883932428834882552286801287906060609682523265318195358858955812130028382980121052993058383912045835797757931630571657965987982825350520426519924757897243325228573347136567365788472590735268860010535641892136582024106532031548453823759148640209929648624317982712703232134406640255114957887880490219220146378260563154598276230694264830763226192494568895342492812257711830076054484899261589232757397009974674922943416473212464968460129689163307314118340348642923858862896200192601898687593029033652056337351023870661860916397854369215522706394512512905106239552480408680331431550371206463140077633901863485197434011072160513191291452079783020475079294895561002559452487649914819563224425267812103278362710699429487330058503843032610150941046469164425088280769694285518424838786954314897011961562585323078274471156577877414378429509918904940890290162829260135646988656097367643698896083277118274528786832531949803291043333076063441852978243668208626264993680505941460767298911797562514338962147342030639321196363320567063505925003037772297793947260983950735235055615298323435968800006820130678942409405408196382763891939122565797265901122746895929158838475274299631322462248114870469456710686455545183467024953122303569303648963795600090960658743134771102624734809837784073313201263497495373344177915220287801264205792573088673385804221837896307974381428758927678142892671283179920161756419412602847523897979629547681911094568976716275364800003658823972613684090176326738282584032686919978884647243804484379311366680311589174865990730957947826780617516971621104414145374136680667010576335734241401968101427524403131252878413059306265754743097355352520630322764762724557860940185412470756242218124465129906672584556476942810141932844289387600660243623264763747083309343936575468063226416894002943688879093542007434711420497903478844005969632831846787118588636835227190217989446110390950111776274236380126969552518063963353254965982461811106104121038121020430839135581715204248229270758934176265500157768659663806254553826615368716201151157167342236833003517472429599696877620991342971714981410027111195580633967264713917938539924415415725879700111015918290797023784887132935017015321849295324468702094038016411127776127203074462462775175669352162446886223289306481935511780920537878602845162239106034330622760223542651198936018680686014780912581628008573776629210562569922641031454539450511675929776641333170839912163635095889391259972344802122427804958156307477341792256179570619219461767478573269550086256686705123208416422428524904876359150581872529426325217585736670996428108233423992157578121730739731162945541165616743519874428989776527165225803392134235682971423069750396540984268653201020419145540974228833653858886426043094824192020099513890004329793967445004377087108354200108093132166097592329316109412378929191767201522939609559937471977676421100354270312776555831658637574800955117232004745860274026813453556301302938919780937828658636777690700931738122905175287745101643468487729963650490176639541730648322956697977485850593228786655125390820085930378753963088186245692028902420400668370056804340742276918554353603919076070109730842516249924869131345382897839434027611583808207095510825783629398062507548488680505009254184432978940317684131304816993238690345633544799172271821577925228764445328693093395154369833005283633851374373437896449882544734920027699669814733417212767353963286967052981830467579304261991090370603766091950675410139941425636086814887500662917897264614088770569811854729107194256566946137529853326749177498376093652908964139785785423451050206168170744720307059796165372438279304439493986575736113423202447714737319251767521672827500162481487873077746014826167206040990267177879618805220260415665386158152928926000730782190284394944452831405493556635248469919041681400596401082468444108232071698940870873036536828016143331229644930558401314008992690061781905075537536705382150930272990744372199037456385494843536191954005773434932286974461646069157507466980639655376220128810365355544376858035334276943215406223903997645704560133570338112080218027360163368485590744191406010509056575690233056254219850604268713085740716371472161813643680316058890226050502603452229803577604276036215015675066347122630865886613890345693528358941273191351237393852216711754909913156412150196795765467163868509916807305509416658131669640315064218914537184867989313871744967764231890912890093060396367022190238956810425366571706763880326229614829280759097637767534040651087300762790005903767694587773769651456630276062507141243167932955270942353158901202380707524821531995674913790361037981605105831922933347938553557016035008625483043807945152666784149500984823081357849005612514239320986484682767668278146231375608458242344776354905130500131662062192659531703793262937181033199018407638484574064910991543443852797970586051647303545015327093568185689941528646280955443142740527390884455352916630384862774566363620142023662365781465488231079376425781125905819431252982168905617332543821047830466862606690388678326069259353127850290148661573048917800122608659258402772510991116940751888777244298334674235471586655236396145624432473030448975667936696244927836817937156805549097026321956478621120786496139337923351524955420975479181267113477974739887863759450883570593714077259108926979527261778543232412687417284039409197770258089336960430366116005464902393018524925286315796614015990151901580928925944234053938536331646294924375858493851811768210735934902811045165992702020988516038750154277011492260677153591274045141044092931940988419020175691984833955688841307140269042385605534738701889265961760372549657469744492866722641137244886346275450061842381237370388483168324542449644897192661524435299719955552991640256209212496281453039995840896375364663699869059619702123016418965394314667568427966165099341289719612478020591089494208203446162027047739314771378117316971344846340823667948162852822756611816666289207046913631924799835426962154837846450951585410597675498850504195673384620843821105196256674471396144913775125239199590529164209469073313691121248888935459474855370348383325637789482982302549228943282937109946534624510758268400069394542449260522006669641717170615763144888136519308881302396825009060743353347844736688550462829175060313415363591644765043128779824876495336723907339479858242342726657924811756778389988461008482540274602807926877431694007214474333850222917589926149902709638610587046461372624812855976861558852135440201444235434935340505414498848074296130717806446121916211838492666451584831494295655491778717373137733694273675076191868955811706782333522758842527341626899562042623124954997088467208793412855912383653222804600715612433028509227625673496304980198816408728610395945407497645298951983331972518950488559534146192623516111206453652885014748829274529760095192479577008825481349864800686051533194159604124142752766427219655434993437563858101926477203796793613443935684832135229297885979837960462912654489071209184616439843561281407003987585581676321521682779413237033684924996834266410740787946980139835681849594542980964173731668647000359173357107813124668671344868242774024233963972363927143474910266780149358197850511418696401705669955356602061163059161393179051009663532601786422448901585647181537377990797021851406144242935646670525111839433010783631425643723788644598333112448079417592185232678398026021177365175751091844965627522800649388667858346329759001962068345513288358420934701796273610059712009544760180925234766769476306962804929206141568146186998895276058696326348840848082455926823880595429072040911211733779324228595146408393989432127615746245972593010479540217440950110786540673170590003124401926750778910123219546404440268772574678807963819605937346961581514355639581682147307481757273682036805780166969054999211492982956893652287182388530741998147611608997294534516059520125302382312193500015524746566886144289939571494330190476918299692536029713515930011136539188145758710323497583590908141282277735568716112622103870331638522457830599873414483034416543913173957253679173803537387285540537807848834243199931629726049802909294691236972968634139091257072086213503972717847955012772626718851426533068459807151554143438178489628965173071015821746170571379291614827371080463459762055693477356187893162414981062296717275152817729371713524519421359536345482801250754016385193541363785506862253000978270198752066078381933991544832677184819779824997487126476884723574023943757914437137871055246043514767257450492921564886177375908033170833271171122945059512776604027209798297019738236818996878363067721196455785502000836348340552436759070044031806655155025634133920563017310461537787558617936463836386017899461578475091366155732065518160999011709150419536620064490330300720976311614792393640739266496663799254249464420416388528133523100714708004222363248321967960349745118642112718608135089991816140380188603408067236990357323626407535612320999317840839641056911701576706637281386317041459560507127161958482518770453252929751382470932334959519130158381707916494287965102743644824769002942250256705268479300144719057012240692373001180148218331561306953775394526145591798537037384219469509573312381569952858318299055434966021375497039883095506776475339792811485439913786258455688337532657299109068235186423622426454487546690470087905928682067454937616159820575877262676331705449969962849415733334509042654009662022630570275396674570020273235577991879806763060040187730581775094646760577723428884207353586584674579869150698475259989154645999674904966311537556463453277319888522698414090842314121182876705993474752551251904024368297342858898191771096419527512486436921938040292430800030675815388005412994661709944461800213047657001742574420759835181279471238927557547639915169440041496576891112366027216379128757514452654001477754214148262952382071095222078345659109694128418054942955127517090543483371948700569632501946643429940592305965085957251087073126791161862646792825962938643447955421719220275147518650237058681712872359317570623708395052135129149008759750821888637235517921986503494108709734407119091839393391793477532043554204165187765131830272798659105251787366994758584347884691602395288927549646764608348557731685651985453243602925782272605914990889313562608915998273570860051586913824565727886060780009253854454274629727139382122505935050190604937386407550507404007025988978632703006100706343917637243858719613714298412451711627678587615453088904744432672735848444776078723922707155349220046587711674037476518480017375212963821222892334943026774472185893565744391308327988609832352019615019320759708422592928859778086314040330596182829167349581140405312316131426520795944242806951113608159108227452212451081624556624058371394278540649532780034939205594716161530030174894883650637127335632813774602116531515958573336317003226792029858117427231698921456233762837931037949049229072894335954383702803397814488042274402023976897229212896088764803484239385764890372506197248713774770244483699590086235698271126036426414348978261810650239633771278634679611250617004622076696598862104634141484602690016777503271985811527183625464075683863523943016877619243727915065004801342016778708932855907198282304653356735133739311244454883565840603054107126947745395566719896311727772306887198516834161186842251875001993618472030046194457359691361857787916148676488606745463221992628731906752703892293119132532917326444105851944437518752985307994470253675360111360495293458179144348720195352569478867168424425767292427577529161540171166155654862541025003634539968495303443790959442389487031196241951901433888836826018785244013032464692120749065031085903073063605661809934823829689843213281057263490893437454145188344797081532860608601961456974485170598241299261700690200623124744979101832388764438095343864538014812031703843686353194049901912048928998465472778890544060408176830719931359124070147198245326408117355318158165705564216306684095756605598590529415319871438025680972762599840386655467242810375741020810850500896343809423420479987404998414045809783697608486356075444087388295102734981966944517750323650235491119049221736157980676102803042345894421712770153465726461495410027354281365082483269904682142692320117376227271240864051242279013121038987361413728018575588151653160634153482153571963372960577204104214464727999068788500959095959894870493308110511127495421229186507860477784338103419187398262604973389006759643161362377866534860859519345327070482837249872376377878123952388913988733524183566999582078074093333358948476405995269024148754208374161804064405957123100957912544887844911206651001918247858127072748230037787031992728052570945055059900793602468848358849431024602149491331609701805976362281489561513188075349733135660089302495813645248517742051603354341033996458801324252250914057601626680337066193221471578003665036070641168237772602109979736494819139538998566484389252176435923236673721081395078834699339848614700291933714246287372057741664835375803063656470870208501239322141834590623080120730278009506106530792507557443720863420161078199615755922742000163409581554590176058829441255861919418307676656048674633478919489624654212233066604508440888239373301463415670741955833107358212137783188987242808364937948722117430366337721644001517904476063612889439362638288648961263485645959253845103819514197617104676139244904107201051830232194563745823433352294858426573028463613236056599302670322314646724271708028646515144481647922527055759860140149121246880649230233742578425984318160925616039063723811563793604687393988790117419604885951865857637748253966917274778648004407049461101775511263015214381654832418332513500162759523865729404042040073491446425714524659833248026148394041131726816631977910448681683322475358379661489046581932526007298659146559327026864629488544401262413477873279682419493430737844438693816629775506259522486815050249664284326445321293171996539702415130877817954722463904579573648085201457919875946279747461122194313809106662437289516674540276891116771047160187134427609623674885856473939428225338569829827126198736354982417678443930030220078493393386073679259683600048964706190369257848364884006433217596925368939697264030266843241054871086323146464254662214776567844516257791351486463851220355911970073842422555836046547282755531051312727295881833066292862305226285339605851371663383211686768239468379863123689401260615748386760727414495635310763433457594042984017376623542603862231366459801636657254049170735214080673591716522512297413145751518885672489031499500285630630324767709904837198923671850310019197048990928196800027069170325747040652964680343092650290264432961128248063564503596957450626875298308668023766070525400924358227121198642177423415682811555773113947329541652064630531200648751694858832276831498520253543555107137132346140996361802733594320075659658397505612837920222088667892128383860705477783059163909515990004291884417575839539966978011678473081727164596140872251590003300660811858203051094998731304251960292035242988553081923054508166279579152422477444582486954584611814802262144449695840002999544163975045134758617306338205998761380839278873661622310947433871427259626530086494643769106543155609878025795117405891272830647379908763652997679616233920176357317259229147341226131240934327240995515739667452127464307853109835093963945152191908059825790055598078062993091473908884870197123207791285679934945691246588978851703068831258324618897751253246338686968568600643877010765186303021081623692177564938025485315966654821786243465883405858913923647513974944753690881985907769105593186155844177737978388729901602268581883764774486256367146276192043260693959132485146023603891659188905914302441031542121417866748783575553068581851964594153032678500801596222257382882975214498266617520228367280183606067673955141552401251817473928257657956045105402495826310995106189796115605095321351353648687543697412026539857350227576666952541011663816045256373087484296766749204171301607023783325624611464151823421727923873566760314591397224031061666214751893829755667792167156183632297726658963347703776848311123674135293624488517257772342321677146139137316901889919201552807528710927528621716861876836938755366684826477822768641820790684307400677799702385405732061040520432673899482218426327020566026226333187146044986672484243255904514730532091574802574830474225565365663929231392016430737230162156487183227763661526492401983317315245692063137660355836916361183817115087645618529968716333035192043522250788508796766329491533730406471647827257720431721343162776136299662785725203856887781862834798383365152312971838674227769080537524994236915196327755474066269316927015476716090067288981533722232097582506365775514604441232954168112146210565097816633383018035866165057126239213602875254129110677751758029372382099286695750194346695791231665434039179718160381423687860746340427220974283509680106226853946126505721102373370705566038983470364502092713496513077698351246996192893051696299381755384958125130090229766671297132373972840991433126511314620047534099639243118612439818591810156954657402120507293737380016016902068308295266154920553524799350019623005344682065651110198268002242291363011348691104831460261623553319516364266148604908232630408793606796751430746454477061056305752784279131817559163183945315186220074203543583154707828129556452629722620569151606124069659826556453276321119588702062477008067242001926122308876421326890046423126478906660914342908248367832872487966397174821184735434478285980839032425924850922518815029065486896623048023329797700207929417098742694070967027787962729486293010647598830045807797511191261393504004738435877552375024148629171211665540204478242472251786484799104616035450851688044316998703198922572466473203617723287638808587120983493534230123409395890339025443524168971091513881242883730178725912535430608668346584318930331195059481004558326299344439947368910763571063070199450924016100182236331458418870323595770081538400682974171988957280090653134310002535456260886124788845392401733984004862003914184190488162117577201010888034681144667767963790003565201716422929223603970766796771251114361476038672082418007989606945899048842595785435927866312261398965427316964079425948560249084370777288603086100765135424926796962180634843817113479297847394435959473577139045152089317438260494274910975393211441310146691676886252844656610584296283891797274493984484960244452700079545956229680847134932532457732646716965966306907701755920607776527188918300496121419599131099491131402594857555612789103630326594145608676034780945501352885032018794697401188618253241581070619512908323945529122315873069074074986223046512703048405198780878473380773973812402429182129942887208400016104587410348825370316481286742199742133106730775661846101004772220947603105298414870369672513056001481736658063847295403526424686936796768983853673027752685846181656844093621390786243613434020096832537794824903506631693327430941282202113648405511982425561870764284124259284733256123981920661803188914385528604290541883998453869439823680746350598146636818214673222791646198797993127707342883466158839684492672414621850431957540806859761535802340952690166119197743976995006731151373183735517824605131490472948322794684342531822729001769681053040086427954411345229881658829144299957546848730362417376966802879162092414787525897537232013986815415601465367338011750625961396364210832814318285529433326744632210981608295680256130265880153402949407257278502836260553253457921304054236322547383068484767750185304891891723637654181118852062914032192038711110922517528190921977471709168033802265096721549740031183191623864481872981340643628124539243356625967280355853096294977462965972048954397309828296526866110103931109053742152641610855750977441221758609640609080776408704945634292827578939317521648999330111517723636865772214792486152602149702856875526881022670460213233599843913690463982404523136675969860201457931788191540378522072750163501290900840045111903957520984200397927517665357517278144068589144452281807189398958774459394287681966141525589528504800675338988846384097540685161229155812516095340526157145151517210090092587079661385232612232101488587769734886387485781221742578461823574128617318461160760453995306539055453218501737348438215701457317493671531036617389326569916775914887028543837569900101144494974720850212349379440001110931634356662111801366792946632618313395214941506860638727313776944189372229141681250661435460270829702869871078520634780623819681741423075812330707215988624519018171349847261416673741420602711370198662731922390819228608850644481998397997525667292571624919705894519086409526800596187063402513531689050347225964080922808654830545557108834116489840788392727393617191336628840277135772609545427049002150570397794391693323572650854345328187235731862366147588890855041967617349966020664590955863306529779156854137018079266882204432510743645555795346966316358924698081470205162335207000932210255810472603602005521331094896966123972363791643526869903090788261875200609363100033072091826295102544201821107500514062562853852681233856937275736335472910534133365697015179451933529310036992635409259707607067178093190811168911900103621766304466083027900437209317509212098493297989592374713010439321205552716426984441063342076301315438587863759374654819836348206762763391164978628011105275741989658093966842538267730931608008058089099208719758915930742046316768727841698323401035714755225256442403563021726658044356429500261258620932290853342424258770226433375326258105397550170248024686031563023513294550535486859568372429614699189157283114474929814368080330317035194103750769058251734600559158820375141292278762000900544768977940102534544971876239782313169205203007439084910269108511070409775367515362022676304022956904301163689180859986338245815368792446703625493564154022687314912356779652722778910466599504485723557793425663076169697980342356636410291948170650657219642390890254639664877672550364079130116735949592018386532311950708790874281070078168076842410334501611546002194085299010025351384652290857667144411140292622039899942804024404378710835688201282263135437401012734822816899141410410907143999787891518812409207767106509947725299443818023577091709239869678878387194802079800959639345787304787671036259820249148104748191253031073029693063440792047492386870928394441700700732256185755512315973568246542045690204270814473461059820529533579833361354236260740688193442384009140584329602039724074397233839083986643366556040496423001130942190703295369604587704275702535354940216484025699165725494345459287799828333085987389515588132966106481132419997100670392732923277606845484550055137020678374615900830791966385605116869390186192312446639454095491367606561097906992187312614630114630750172652251064673724745193677800632691175870749453772303581580106289271547577371001404458425051899007570783136318338899977727898539424314473191308796169407036338485197156980641683411652230098930127564113063574355552241406366841782198336383778494879772589445193235078102330239299980714250059763375932286866968839665970549168520090858164576080886581457003592299138784276047154058101669227844424653796107621218230435001015827525490835323855278046308656624470568164951408856549264573457054485737769207436224822338518064686526389504155187986851443672999336271628073534027436408657586416284509792457134695157370167085505558005367712559922150030234705868185359829083269076870068146780087229766293475201190427617555752398508902453824813765946577762558781160301138213841836969619614418784836496689270487850919305534083628845832680720593192272981514151744885575704297866476177954487233055532801487863150032887998540428638540826375814499202409529389938481068734897486934092008617784010243808663328734850574490533432843245404970671089783910132040733681882187517179376302628201845580471166541078403047075446224573950360378747311051083369187638615742110306511055161030586263824827719198024399214020463968894318031369548823725421489780947119973423175802279267405849598325176169926816246309781206828234757883261847935418084751580395992750010634676251033765988826365356241153631764911694135883714461954606662602861160554612021286023356095183585148157609279616394433157973804489542514266372863308884473639244959041827119028146958045569145789534779358594391377439605195989601560415222567492717725471792905344776327274452623879693414980269885055483758731863951537722246023244153217947170986627299793311980182454935751557043769665281951184543178721323700064875008429718695333801782960961230015887303094249973994469702013906367929261983003159538527032147731172486084193392195464280303753886431187743949855704297724419383984277764061317352593431320433105402162122798536113033121795936293860297591387047989772024946775238468007357940996062504628050080538232210111099870431721100480161547425616697293781452586075438735796800888982286207772348596958403772272105603716293258050670937394993200170262442284511827320974851357104474238574910938313385065594852679721271189681310383344922977816636809430262185105671250287659203317200109493010702171454356418756787481816061829491822272841875701758008990658386033329801893503000199819770634435728879386375920769202725079646423849437449001218178917846977728144541436568363948069854679319469469051137297065451467844837560773655152508349356499861830794306488489411855098550839933887173525124956051849979134584278404411130459604055015194472843468770127293322144991537238853069092121972337669478664975932454566639520146909773884984660244273700388267138612306289113355466807417444833322197743385071040614005637954357786855879043342649257378810079778319265147674669112558758694061142050141944802698976679700525699529106174148073197419736297272236346775779793762573987453144747575334027968733941515705398292734981715380242549650998323333814621238561040375494819399892972453693758314616743052192521941220891351501607096353660482297018746412532214335243551312363822426626568967477548114610211581434142090458252022078945549154097695916060792459362240546021700371350298603298177145959206917507270540263942832347909121486312614561482963179267923403825766387864794266054085215043577477584177415194947575659460078159228088014938804122163737322895061945432607970865578751122139068155395610374972040524656566712929269071897756672214597158106610218931199800510694037635646952079537354119550708662162606514260274303262271812828883157442731950122667961075103109382400426087738052026738966071202854705397955741250682582369884712800548083223565584210722128438132335139857624895398470696794631512960621171177582002507309951590471597482760998284510646744160975285610546425416650194137125606729872471349405409390392048039030803560021450215054462211658167851670425789431945689787730451778660691572893473860119112761545384503594757780014656044198557691791501655341398940250219192829565869687325075517752745201331346143716977892685325532669520616397547841659498870088295529802902531297899193451569381495595495247850261042169100357442315404002857393155139188056033434531757609135966040259126639867848932476140304310186771890687286648993930537346021730979946748318438970761864995181484366283818242944780387879107909628594256185989388190219690648008105195551889245493090888776741185713135693620199351887841038868150979330827114218829741735764652791547951630079975690680552332707388158583783990465326421512385655460097826522864972818008851057524944999884446889916712075782317911533167116430826645987685162316047873576839707592079553770698214425406585329257249558457760712771733928864958526516000520739033460504000708499999729438979457733100566433304467967363350539082015699063121729520747465173783526618316498740456645972684145527072098298688165358660571316229849852566929564746828156243591408503842219517309269764812712192609674484217240107686833050410083737570413873676087753475526069149810682962648594304417453784671446505049841791844273282351221271155730825065966264272665492553012748165337700941251203458303235135264897110119450332186559936639420608709266834199859075758597912655296898643512734614530298979178139593255023075357820512225804378748917439599233494367081763008288146525176066955292036244032882834122634065975131866198925868323501470727942906924298570694014366034973325498885331335610675058196359060026952167050563667906227009622777341673826415832194347587497548372276360776270672663395821503958357396610586051229377390223168360152241238061191488430804565370033729002673074402326291729726472069003400358109402776214626457781426982087097247301373590659577019816023967489517239115730279759265602167921990522320778766798145605140581942484324735013520575210636604836786868496258069572260628900558819466412102745873549765092028533968831124234215952268619517495963904491125755336560254425761483119123981631147985553035928572682931532882635223026173442168262293743304539719924528339140415564636796218300293766801802815234309434016203189013704909823109752277330925746605133480282515231342663048730930619972838330135385436140681878232461062335294362423008599994079433354884752745594128986824613578091116905321385232780014435878916129462452505320338103838193577230562002139602646367651324966281498678879289277312923298210353237146574213813599054407348627504509162640976431592243067496387142561883752421439945311639512798388820095857946066882966165566413872931293174973083486093855342661661654348927715145001103975762258754594703068789498108405523886969037881006031592808057886424834502753030232409023241170575739768914938174796439756352370173466730218024998330478539479678550181249553132006660527943520984282100807413125538809329505980852615986240171900628931220447925682068689411625048227841623409552275273911144762814741300254558861618670005898010539678608827986781532340383704294977252846246325392251451674771671868863768044864575426551535672031932956262594821137871575241021236958991586494116234735749061350643843645612202158086311050683656236013855105030753253653171971337685276628131898896569972292375219784917252651144816395512468057234712753016050988247476756106462101465756779080537151208085321850716377785382760647180509283712267642293008928775388442499798718665716440256524185716349126713684464740851102154589668068819180310591107146488358104040379638719138396176064278700769536259036629092124793841669322903731458259153058099525676355643349598972113241247435209398453969589574273217908228202808037180563523598510823551098505732341134052103382348638256034689443289403088314135042793141919509942456875319634477116620551049953025550178936715523247219075850165921855841468082175458916690496913268241546910720988374382502897542977437486633948935293646869117517031950486304709145115637905484054685821653893342944853693190069808022180252259728961615717390002597135622555177852924108455891074902178396765580976809426628519248244058462715329376808777310582406639596650657424786706212014115885177396294095481711363962379673767759790687676830102290897839339958696645569438687737773388828399315256945919062331482191349407847187622978339644162010131255157626649695743235782374746758433170748233506135505458680616226468501543867951232507661542358444092640105742933954164397427478877713332914772055015126657953798261373123196469492211932480409701009197365918388394453622264356212128380331882751849545742348919749198209710172527460453042093778350234903442483638094481914182043871426519192453378177720269075641484543927211455191469907207061503566390662843977203158831091297681240058029793076176066487790405239601623883244979263502519380697381757352180275723067622212632395517846506086674078695288123082258974355177019416625642790645218527983595844082919998354570706053294620739786440938291546154705369813435158577607938800966158815693353566240346715447521589625581995900456629624836605562138185775765930068731339452152563315954793133368253661179849264016684270424861789569151926089689328609467372058544938582516951349867305981170000391528721738666112598851075244426600387023589677285499554058038918833088139879816786936292620144735241154314328288233074587398284903580340396761638243847240389648937416521687821949792301451237968362121629146678778215567922349983481460303372748043292352285908521344359125277125772854233589581754670593283586124513253018019058208021027212591275478881809060815770408377302486253808315084555728977290608791455612572068298965522352810261162138922636608096174085095259008754054329878970807322260848007241449797778639972986510201986915184596955312868255067215340690977807551002547451244057196873486154436501602954487207813891793294947321274404723208017258081635373375194976747985790564169866292482082614437273097050922279620526111651059914820396201102596397078973068240311996172982715496787693335550996823059885475591261413145736413130717876424252672548054643270904262086252954856621193982341174474775012668545070075668048261408083519193706365110174249592514838617155622751029815187205030898853485744593645494722877815560426207027868011458100104409283152615563822431191708618549102686490094182714583836605767983499502602424530665704753926363196356416734710643726025957084758531817166705405028888491852196754993267690394861893078181486843573950514189628579094220084885158665295195228195067801867867255068118370639569969495327753173307068882596996533649699604858785600780520097435551391194428586008494146833073274981867445327200155911273487296417406844520639113860124413091440964431658256452586255671817093371719907633320016756623002912711775724099495042620911392326259421227614408866818504432327813243302969198311529859942545090001666211110893873815856520920415147518011111986120612355227304929556302901290127225330375060409019292493310414995023779043735005268250900423607913542205578061518971235500157572052819294502952234067501290211734466142091708431936467548479893079639046726688586662726131964678350358908494612756389208207153553606551805661141546150187823950225415863111056415015036013393439223541376072102901709028781596323611367574174283704207528075235454282141774270138479476259412765458343800423858810440550449451157432566882299222333901092214398030598287711297436633752245564926959788857515372908163877801552946746321311987621098753428265774434352699377595612288404838154033697214447245849593720283444131291685755989005928614400904359100249794946400138086694534470883282012711256893723000590251928054375784816635711574890510345157344887884639493870460468680036508673309968573794769304392960562101703449386254492426307044389202797069732706216149948950633472679827681859010085158960485199029020320367565855649440420076863087220977280389092728049050112903306579701445438180426021314922963416961386931550495774266030446568962836623893432384933376677515359970399044092625880840744904438776345466220425285405127505673731707615368680709846436901458169595752228613860478158402913373138974523943550462240631362902641284606846230679377710826365892332706385077146065354522636480315715102550667257234436168857940035856809087898169493693202800816344757768400905743857627787119922782897085823990834724659860132892495342659169939642795896233446792902408645819722719953774708320069982445450511083141630168175061076108294833583879280295417260095626025054882507832481435120376216214439451936914417976100657395328449807246233331950322234980575252352715026131870560584534515205438167208936318717922526187987010921412213132311755659095146505474102275707761757260314164987976439948799983639669932607637363428602168158926233028167296495995925614980960506668604696561331806075188021876350009669108298704140785647683718927395750208060548349885800023014939658157528571007931692419908921255697696046359843809904358179234970713035359695420060583736766610320517409366278118434314374059565534542736113104559392685528250420615297488224889510265771283320630837200411393979968562467931438802544284444464654355725844626183521808160712217647994067190908987056420226467040223551680517771998796510614696451206308330990106592663985008144038344785974328040552313160557011516568627216425353727194504027440949341287098685504728852324769498485965093843294175469224486577304286395317342601430458863285419540433585061906705389822856876408847233427707461955627590413681003269680467293465945126062520000238830948016534250207706793532180449517528026162484276320094092232557336803820159020068046037636959000301498984848966918620757194510737727971094729862751125005308276679563538859216502280201957848683921782403461329534807671177034753734164485176126846979494042419946946771178990604402224225619599733917677494598585301538013784482842554925329415501176496692650373534701709475141036159082969102774471149230382886377240726422219350158644205668960404467998683347708937253961659007129587026574361258702946746991975641339351649911911355396748823298758560311903966624225029118113013497982052455798876514330964078198073893797427630027075272071566251917035803967182402682997379727603611156489330097698368020244869107670933631117683483354742664217901615319420913711151158005548293538184360338016873825637847618791499768729975215203492562012933294901949552065477468300761984652714874340828990371288931776820419506142267229027143162267238460798424300904976847779575416846841903563003912171822821875414599095576213688307856621782815273655017741921268527235906307970158257340327142231806720865405639028010046695567387629480792674800674964487235527066159619607716842689639292860519629975686518707849137879753342585738348283515412084229960311563982081448677893721031299627698890803324479140814518713504111257655818269090567363246399473719293187491076755271547311324036206526389239315943538910927943879163924618692897833382350181066844316954353882700714506683323775068336045298584571208048654246302617446701703590042679933109362201959345265778705243673580637812442873326087941060361904553648085669970046110181269270203486971167544558677170460870290394592901040016601226518026775988077027977473611565282636077781720022062870918105676011162086439715058193519558939256429143953321527535869408644244095815694051284993624868066335226935806817323004919375060536703968066788758165596778404446917538838801217884745200865729427257968532611948915973241207096336895706317521237738706646379492175910660403781375758086968490628060727574529515752547005678047794783397974580822068083910570213005683807319485174417052281289336482513542385518897826714637838127024718408167697383392553918640632202814258976595425888477733152757487769755824036450781516158298370838337565614839724981024973080156892283964531526330610810610300757778359932547558003767309097629550646703150017073842793054358553581099513714470626648734218527115995532461966724995785307072962042125295442402818933016517098582843264339919858515037451728446061532371293877144526948774809451054881194029038190170197204341378632116829373594413839248106157685199942915647317512299861153007338593268581976654427422768605622385596531857588866283610756765410079346747751968820113035472587344260954528413092496330580445386361309320490040167352592323261541315153062832214259943237051242249512319682096599076588970065479713807413872960961955075305373957679539114886655129396509139972094661067796852247369188811982038577768714622291363663555522657073743451850918604937553729261309534770769318011926652755237799128437271668719262088989242838903415529146000878027787905730146800480021969968543179119750333820707017637602077980532660577382920274087272049434058825743536263400129116687543238318518204419600995158283020539330065173688732696352217046357232789434102080540614581281238073092349395293616615307473741751916846252698619842885646595358022083692530643268205819834422638713905443553042298323921855020733350964266468457555041606830674930878197954669508348894930449455526037867699290990664239019046911186118634016249073576870203793759832534340366793752047507022668525563335617215782447862221049394810335572137666470035278726779176982530301073357736518198544577866350016178250136792247848577870723105405875030986051657533260320837816366296174843636314152213311096102850177538347497631967235850290639452650976941382814933608358307679891130216836106761251767562251639582795859640417329060698447637808504183834947074181836836617267874329043250818916933883269291947724856986665460990255455693162769488779695290541856984075345430075096029453266237988227584411248686535809933643816478515027582090294927471867929684911343633314967195002009142858719630468145159186259657171425318864128526941974480449543052185622558580426817401424006361537318003414641630813201982186052585002507959851485059186526262607256987543525813434259634844185576927015199931495563787975958341976685402874520797524274028961457130951150228315302666997562863448356096860451310858070123299317372106212276391598439417705042333157721007567822623958443847282101954604810247545619672007175404683224576445843605220400043314990613061011763685262296572190685671865946761018701759792107060750302047028486817579034625169111159711020956934744827139438877649785963513096109488214286093074740213053401583438735445292494279582458972708095288082520077505042321579450791445366457130047464637312092251872225658852537544025610309379320221060264850694600635076608476907592920453894062590038870962327597244394174767469692805578023669905917075912918680443599706595175985103344300637613877743923372498246790253952389917795908760480225226038303691668581349875644814329285630638158858509525399920321846926842949317118663291163024482554054638161469590200413748458157476478691441282007456119181187039058659548165066249310921193346078193048569728261561954175989548508507542805653097039972204858226510627987421900969601771619483325799283736332306841648671887244862312670283012305790025246127482736651812073684987536510330460615416694327074921460384380130725788557344656033294572999909056443134950180395743259599991209075734480788196065772935229241952695541096635338373357416309043047277096474351195487427368569240541248591639396456607188132478201718466506834150621732765929883919087343534464029148663367052704357038125828050772330338210823983344111212555180189729258088107874896627501883293487695358508787651265063795575137010891749193238192131763789766612763789599600476667954436393171512538492066885561480907578126569327343306582290527498999078888711189130851313219235382025671394779455600345103095420424890204314273466067732065411489709832951034260371864371141876960668287897791985246313594204648359791361266992231458652990163747918684953893913936108629612823273911566687745644403544324210906587115132061501508259608042044753914434620800384809763716682483385416330139158796712103296801411012175855458909352818166029661411607362842155971272381789805496495117762599033998585881942961118956272815420235704441971323676798454635832032819777407630512868173740783866728561519299311745158013997378719553942700507203316434662552840935486403950299229921266504462933652988267664955734506288961202926009575871213004768370732612675047482578463268452090909282693783360257750341825102030197485015961514104479522005110825303263409033567824006075969765990995720563875205517084692129932943595919583266466992660494822858324322561455250591853848699677743346387409213434935020089297680985971735298859119877751808006246988236695134818198582365200725548171019800921984603277005989534700010063952856605111756389033290435969541232268534637013388414273169148483975961789789507367151238030193158958876941604536314600207836596025590305422257084978208109992206394046748995249173929576565776608583709166114508074354978269955156852106219699372314335484354710199493010134233410208099850258151373581768391223185865106178885881872403872930596564299453179863871674226951335264770644863590329741241757467818747011750905202507147723170689629089397593992045451782262427063351192591981442951344321178709961687655546970483987306658905422013761333288924128046745568737496270615520376677268319795921880313831274898429164186274957073587405657102173676202144619859972055011686983769837961967734210823532330693629964868111353634614103067698427175369414085863806188372635595927922693560983971592848778881596163905615092549650972584884829390476618904083378971766430222060744262400699768846784605727543844164844281014275711661884226413132052579600101187923723091778444766876344942383764491449866941466434769279974781118735101530126538630449830505398369101110558538960603976466848882684309913801193505774021090711054845969143644513202122559652326882838087130971792552945281070530113714487728509977681670088219640198007395116560631967594331614884314276684754474086181115981255508190387110129116676286877471876018564351985513951146022921177963937127646380889610262763159465611070815313972306380522479625541230123886636997687046101837248532371894626881367411588415572419176294171236557484593263084268849910328366959695759587230885450607505197184864262300522545892387573049771923597094652749729688373874625515512809079091139814742141403112435968027289254328246876049185121763789680899831136913350882396578744077071993228637157183706278521527330876381722240217395902335564038676467012736043808932479081065275502157700992152415244734938116985659840718809612989401138755155124920780623717790720617229199292832038855728118799100082030651428023434534577483351889263858145566284778109662599993414579048771010528260750581027253523320805183260485381258905097640028065300196243810480126902318949332460894011316878777969572234091308966379633731915055484196393759878582738622541624389168482037746009061698753943408423708042128511929316764717846395259356552286424754671288999399414056431972487643725766558224167221885383034731417595087043983743905358860637754445122373172556527224878607747392901087713723811283552959312490135944450667476279463002380197874903339350314951813006210228186717519193827930915748577295707187270594149282788568056799338854359105002289227955583872240848346485690138049389980268898826246511575989015832503718476124036773354970976143775764428812225516782915012210929116848649227061925990026346016741234805234675310520115061374700543571013216288832684052972895015486463224658687967657704827784277253211891982743874865565030932182643878650355709236839835700549577961161775683288480634386180881639329834435874322132477263554127590404179068735096734435100772841080658857565923562373563529985971872212757464883392406556059751517439360444111043771192839722705922827473787899626973941612492740081754285916280031190983127326833381508778121429826050459490294019936702122409685448365641508720947029587542393241361321107295788664588411044529278451776590336294101194583276486788638074530102913797184093766662680791202589502655044906543271962917509009245381655512954677288577250523213773668279262734704780150520042549593562324462937883447097679659456213047640707866315965258031611975751799669947089590330772019524984100123577041841879639174637188338198701430401020783740481782343946629841180884740224816455903580451489385400083116463769034105832498407909799990872751112176618590740905635374830772122796374962710106190232767655748120645900865399214777803774534892774808889798440988564371040242719851564499479530668181793811091266167570781249834656483914197259107491471456889302314678287008461487824182348249745038995679757606793292842563993603022794675480332993502410635510350955363444520101476411774516516302149390463726847641150549572175526546227908385554042269228525652519259686351834872490693094618670873024151755612897344490917424632036826084833774653164792825011471192852746683527819390296024631416974664849052272779785917373106250535918136500250365572725464203207476700534624669873166828368591743513259546499685099543466610112291813703520548863146088794616230267337474937110141366365159282810667674804335653601700298794402729270443446302718480385034044159355173982548883984349967204465843657261011336602598036419437292277111033101842832438078372930167905255515634256434413568909326496324466711194941930682275019144952019294890993045088170483571744270516536315308495064133803186715356782451164951269344657720299095508333944166641055176426155648010957428448313100724754793031607228445778189724407041010165693321831695390711178337876141539736620285218599099996459628417227611890625369270024931337668099559271356378829332308738012115292096148224794819056684657288909016508763407147245827552607267762149155594465101918143290985658805040673103095932903347659973899679775855693410695372299263165306161493529355779998848424653435642428202863459073305070715064830550340594995645766845519015891832355288631288721788704564288069380622434772201649895355896784617183759788385016829827928993499349032517628118395038108342172670393148172768169170850737872393094919446501519109122046922914999321012146385661186432252336219079808043920609793927753361495909730529399234804317508474019908157747295635628341271387390382442567179829023897496435737874198020386959385082180561370048002135637891328694068727121524852383904270684538324025934918188995099314867612357026904029629232890238498123825213195754896273007081713910846030143350599748032395961994132165930504332842598032132316955033029833437582304917232919370713445756213955758266655147475206722196950564319674076076117526959992180042096399903509203505177670059795663005889998723050542664618441175702189576849322806076032918153008342452048627241452424498152240378231513107190901896400599920663346524991794251843549616075946893268602868994558238065021461726593951486680228024309402317177316481557869384838577175138872856358956944552069858901856856571232385690842909254505794897031431511935981106279257368002807790609990034918274468859165695268246339515753563005209461684429881868134916007753386149909915888212062170942975925834606073201431183163506699708763976974948870486311756863306208837341253216657119939759156299561617408931496733140409360178086587767281702581256831362749444965850434641290220859555498500697467076359814300386316041543190568200428571696188217543398438798058523550672537314949214846560092093756446535717240139233359119482591004591707878475421036922974960537531231602024384010710448529014231485913155741289661220663301443321240195615585612723995694947058803432620231294949151311968022641603632726578288336934800426261241366960671950722284276192071260525668975314938450326435703664534792000646530124098357245771398305416153518158881117610854812134926145978685592303114855268411432039075068357345389309201248227736746872539000429410883706448501470243566186822389332558644732814222949277915179731095447021624003547042422828913242392015150406851655306707671749963330019820121598836067214331275874393374307726993908764388419551007909825839296268541467945036112071087351897175917304784474947016903480565930930287664039044820150489000248534662573313970706257783674504151064078618771641749582027314701100374004822096325396178556691694922330253719147029905138696612986367633014216548993669125749675200028535290661192778551986541813228085799194202290670582514556310575770300558482276942001621681640040292118023097456382816249185682271913739576252048483332720262960907876689285986857791667850864197584114154507151530265799084098592160480973142842985924297675991364089640482741917576598383048878210832783415798803937520652716723822693425955974967929729745789126457797913980369751305438784061284385109548143066972094442283344539929245790491249936740404350475467045322876722354053196380847888001507805696209216204026927590426852201928437897826070632032456372417563219492610085881282750195344253205428252499134132720785256757025215663440486597410745870615749715962654066231724562804376540481581833676798039276166760521407961582983855260937941610473575784983222700411005109496076758470939033044808284200466175860581894377900742604482037514744925633618940405466116898627321260003422623005663221384323782789478231906228988656026564049982951171052959168706095478221036493449514727749190029311787097062435735308686276891076731461249140561758888393705313607397840824780075895104369651536504013025457628468949022440878031170186257409530118875380058671058137563950439174172636786790637267861677188261399117229523622414086849080895654021193217418762154378605007236302283635726390916671710579005329112670376031162312508482156770775222427258894366580819789658240709400035600257440650869254247926710637698156651953015584325182804368139345721788527938109967352354063360662462554395624050219242962498069821360580317858683729099288774500867580469171670101427330560592409611151930450166204098804365135256587461842802117911630045291412184844506126930078829887995410847566076836709451995164627380542837395581305933848479656008148882744370955901469337694490085872889598869761985983942997820207920219547736569240308658305751565013387226286607895144741282267099381149282115886156273834141854972749733585332251301573537079602895824619117497642430731550472337114252535196571689938510924888891145973102453519017505634596242543817794019700562056205543136507590111013041953201812913383625963696472285671593781922124939354235185990608297788056883402745222748051411734987665846703091175447841662136125586923146494483308134487613897660422828818253862900031113342341271257933484807916499099677934492984560526248936529734716528701428278894854233502564012537128142369963193889669564167281797039594728048122504424264089099764179010113569305456990838651522616283739799383767530820706647344840041221852907226062463280176312942488058905362089482481508701107792792584912210018447289036081488815886971976574402446405057183942264843881925570222800493333787833603159718838556868106245571936474066094331805443129713783366123451527348119180713503199436163512220484885529454780974160758068345123812865747889752994632198505753639584815300170026746278388457980138378686799926695429606375225504113777307245253772417573715544569808027319461666714988706024514858164221137403918990792642598221820004316256530195287772300444974662955861381750528251360391109617419650156975286341130477165262191555957401766737565168128981529350884428902024163800508711188899168198497755155443880162704546588022239915812711634784848355398879960644602898828138739746030443825948574144090663499911646007317503599432822570213177106432760328251477878117377649303382345173802980540643768899538009730788682736498762050208134188933044847953580413517072728685738869943968014796266619342599607293030849506910223724982327229273338319199016907241714918248505089349186026854577173439936019026173659917653665777540253310353517909404798046922092857360697609670056544696684413504908077362126993751318975235825438139150921599396706853426839707119998641624771929713753336344892582826950941067483548799879547358580443715387614535871186888093295182448921310897895946907094725096185602308394393318287653062964866630058748273682942687237872575675655699532628094105703312640450202130575290599618589756424311102713687145168606278763554559831385412806617194289637411645509473512943616577672306235795127891985702815088149654892369759000042575581718728074042394328554981942199066586715295259449237867706886553374986522191914802099104858205211715017199697291281366597389059628898235736818191791206482396226173944704337001302939927633470636932166736714587089572679499038737178077043919505261945738372443155236224571402282475693115112167397093684966571819231937354729000825429486587521003993392235865742093831075721778500471118638868941665040398171774801658395602028018880428085642238066130301229226952242488720784712102293133182643947238301088413300354562594908309391174286340737350680686857267376088124560781615096002795695732312179276681725602809729360055474128956403499606427333535733636795117399768491750368831941454365472806503952844969463856544425310441050000309384502266837728879334285319164270259279274847501956264379180279460564550415212761380337957766045799354124034877535610385477578205359300000758685399817689735644601078422516832924952834021112851700485305240876199764552381068240238201113542249244021324162930295762380461606007152570269093031631654142231906190786809248347341501245778306675891406528618763536102930116418312599401323058586070564943213560922648405919948960894195355108545526942846618772194394697460951987000451814908076493917183779233679799180267609923853683530518757301649026071354515056950411949629037760273436083980531836763485153063541049744258124387109187989983396139437421844555366848594519101673674021599916325273693797133867512072065296426022861183354905559029745593693121036607462260282190089460324771210655848468515557817599146340105629772727841922208551288236725644896229190390451754109329362755208132037901193758992788438484300826096048273839327139982842130023528583229136092769725478262436524489874598974611159831104945614067141662639781142893415249235477131448729930396832392993877361811381619275502769251107727417901228149750136204304516556280403606440721583775261042784261418851653401163120305636504606591649879924734195821178632325791121216714517276034566473112604142415134024548026483641029375726028930613759695645250914311007977140833833973910401248724228625853349474284439412198770274242818128122816061781747323426424747833282506457261305649150289086948504890830289267715344548485677785187160619708617109372621856684519456772429294632815540239042833812082840179028361102034064152620168568898753732747824394334058352106839908246701341258044407181074249981388527454301051333242658876568617021043213767168283873519150669944314766140009293914850776547426019446468262688612080189229634594307743844104467146957327834074069778512402861504198023633319056861725371285748789937796644318826837889218601131431772668300987629624508082918291210459024178533746788910175446685977795235177754079690478075186754420023199227693904596561816126458527033088747641572026905592817385722716289961742131100884509904503880930863644901569627112348823867553197937527372566296905706116514419285291449568396884125551442597285784864883362328724092716914495349887869425055485370390177851633786417091404158035480018653761005881746817860652778972324376278362843727907181263429102155515510697406840070266526929292807748242748666337484012281564722648391935981197521606785141484935016153841812393110727936893783047881913690284740950797258545295089436253160445087314924698009497394806903620623398460331707722754614661754853510537816226459661790534669408701492974199855451274352421020934759889277039753621441058617970165408431917873522152349621220248478633221229232824665723576439478625412181954207778287304656108820953427949058567981940413572160821727844273975213882119120596806267935758703831646751142615222829659706510155591986019807235039527680310852222168832420755803348893921703627408683660663329829473329020626864061083827470347416555404189259387105678888159073866460599294084736313291764478683310844454182452973933923372901507623478464377150620173590452097914542270348519454694579269091386002710009669955549092407723251420622511173817642170803620472767820242498227229300726209935605684862232721299825517062824919196534777906064284179693674256518939101221458494938482107527746796771249568285007209244333305902320876752262758605048182639563073791100698601754536949213147803170665224609114164560928461341997835165124631216515141892158214162574171966803468148517254011611063900567255541846750034979481188753744223395934666513533978028778887091028536479556861292455025181774446659930298285340613611889631924132807809516382873280870603509818084584153518028578959371137162837222945936604735441336451011153209762176292677720875336075779342964544931349878149248352655896180076167896823607992311376324507070253901390376558052919964231701350805487022552260923572669105370154714552374604146093968162629958944200483260506028823267290213102081841976689549724999555225512822326122076214784888080221866244424493030047807536198444669497344116438506459376970224919314315584100609211757807336251520084173335173441394870459958725070201350514450938394750014968685706111109897855359335091491003871477624419253487456206328858534745316128475700361386083964069483201688246165656640287484795120213302454275751041650083294213579481205403297140367911212358770742690388781306436024280513908676727540405761803473779238405055539370596054822803385310645775052730830626923570301563151511858788577717561638207867890584753711430986372751581185012811179323290517988879705303082339690521583912440984202196478328172333546583277620638928954258493046829710538093188338759742906342206145712255717891444922476944071779071412426525575102604798393801066900452082116649634498753990158216465142542768617704838637857822253371084847089579817467319080337404445029659979510822567556611134127073721689175105968826773414198572085125747687934593453324019066043690863690622776140449585859908714140072853781261073971224382260592650458491877114761991220143779109993624073367902467971042426315632162541601592100110655868395945814528409984656828858645423562566159007358231836629792148338918733132345393964881098578210514754151397248430402492782093863788314911251106579168243561932533551313398727447705083400277758103511826559328785264208471246313953700200186003854201899235965137599893596128968290380779128330149265750571485338725018912555669688501591210989332138112569296522689140086190480853749647975163697852392703296477776291832020403625341143784327527778300874258617160334013994521410700174715041047836693808172060369101485426006266410618766299668735099933960112289164918970778176200432166649750852126289465983961467962580214257337987256213258521683860116333144868747435652379871105857237608666673913676463494054421425855824451712936633623919729038427143029687251619211858475265368624950607006477498615690750937922760526913139246718583576995547754563639910380543801436215214961590626342551512495899111192996792010075612758580108618919419265515509485163721693548454070001672669137542358702922809838445849756941799399968984204966356150681168754484712856221443087793244179602862070860952887229120247570877277686033050699033889008858959846659032064797128083972190493160908903609456418107738198239658356407820818647870831377062618433793513579352704249648346915013383333175157607758165175035385190316523398830786031229119412416288280236041797626617017399373736559066626677747634206872344845031447150566574620188552704465314444062396710608421795596383579656762435557196341452722458153103522745873019139022696972092901646175254737504437326944378919783327213524476575096458237803604442346647188016638059707202500839604117475854562595906359384806140028261715889793346980019282672117268852781016583472708308993573913656912306337869384895007963972707527568103576200834791383875182302391905526973418376554442512239745312626468891478359966732034446829343695657007769939704483362653185252965715145065689799905030136974206925749074577254414386031694464072761791607894998415709292341107610238766669943652927856965443577919584236152430395107119785381845794601154606463549756166485830739554500130023338318129846305064938614434885591248485004080187531605633580876140266505222153477426847359236892492352481361005237514611470685590690561968024507608622825785569185156131638292479718549575022103014049721020065539650183509942961861064613486319600977307269765550909057467894879662940558272261082227679520610899185422146390630167035300579880710547936291493516272209202090132033562346401479273972716715972056705155161504950901281461202742221567621921387206602790505340704931866225388446441692261483356142779498411617873049332284641517416849244354686119908378316233092018658697189416003853675175757447856500039127078551323896949199516310366132405667901769026861348126325325845033836705752828355122665917301590947240513845275651292506058668326161238749705339981528615358099305496492135412797335479435225887960457992473153595086437153089671918466070523882007522056794415008494223822797603311821602532350099441118772545333830832685391583118483174150885487163990829304453683138865862091418218271826548642182473239216459462549602520143304073509609880646177696927036776911182238333232644775056686056121928767917401114914374633255608416226808337130113069680200061299933283083226120187314973319726896968496591504749510784454157267423072796932014137574605112620231875312212179764156441959927949326947563064889989206529770332848481000528020175109735800603376337777119779658242186075809894980829164968627673310190045414765311959752415096482292299749988153218430887284955498881805480057247377699794070861330270224610531247982550923492102460524647138292916724024806289218418418799410427049377957968421291159454859042570864433739990244321936197028169917289161180969407259692878521512086585064011653713184450964783389545836059507028345111724952816392101877756477057782987914996643496700136456850399410592130843966828247559248570674559604574336476635562652667624753803297568596839858175984679009443363629298739533904683864055702673114462989375723583171291870379552037640440107311819535266741034816820463016524027037917587185855034932813089895335735409774826068149655449679006453273164080477128221660924177854851820622242802309845795003129910982857796811383351025870173327445399858205241926466278947458320731072126827727370088262896337614993783293429666425225118854467128116748669035115742381674444389847253993391364781210976821544702609334336137986575103621173534315846205725327914498059954585761269453918269064714918044429348917006746787286278060365291348676486228933408911353915465208225090412937731918372925605919972793536779427128337471554903163925806965475528148217931613308553878894940204742097206336266570484867364576403254087772099772570128352829894378604661400604559052200530303014459379629974176444804398874171967922189008132947718641979699934911856047838477802190328480223697941102885490957188037237925416719991951583170770335431544529795327426237788847580503290007534345270302802721542459453714696802017203300433352526755553395780333246716726108578740157257033715945064817054333339289393478583590255516484497459628848272642358020407512703072827350818115343418889200961032360942007168717712989170981642991722208444093401961407899374367557331713011649595947596835773796341366234929360919706015364672922332869588627996734520923335059385619744121015342599094405359477432375927283765546502856910546834977026804184039867317258060465518210973568308426432166180310864875945429877228512553981201723788917641187758443499212049793036895868812724778982439797396557080371508422887427432937750984396741335419858780446702315791514053006692509620763456770372604440223637528041087463807309100983891026943590813437354604152417786587170455033459365496372670555836974985242324236434251437876100496226507283660975699820868610860214420879834489809239773150285303426089813836396615962770262278185140276434699247200187249409216468894874613194056850932096484301529017631188881033588585003292932644337976976930954597865322741389460469908944813151118319583990424316528146049468831162463668901284989744845034307433630313027354638982835413216319832133884649210294957507093900228414455137235017146060814601292231938541671804964113836751297938878257029494735874603703504041611653192923170259685119995843590822334924142451072400508117629639072871103048378750839107595705365731766580131469892481539498601052919905369823620930609658613562139131527665463102201574881566109237213069480100246438237837667401477202135994495156744567729578898973515410386756309664594834484655209129400819301728280563201949661338508738131665857703398432931516849646243999551935896501141952352228224190595877281763811584740583068224937546807283202914200253886681970968029653720864342881066604692935081788562025958195094195850049584963724415053775095185009543357872864107489106749181179743734964432927961277192619352389028718050918466295432481363302209704373529553911744559914779692680699193939391927413080144346419492229887538991596153660467265372462363336917609266654517178545412551767622773078746509291822045098450009862437250036465629001376995634700757583090901540423456364803580217938259537354602483161687603611788265059914966655231442114561137695671620161969027180982836308434435401339946207793033567134092744390521993599702362302036541906896296346626408335334384334472711870020478556928962741171579403673658956301091707972673150812628156488440097134624180328170935570015466802253046182380043305072931487511944786821772600349120309127556705483549102494639329486012789840538659420418419468367235183956919986343990882789163783178832874453092055141759994973757957202423279018691661149028744116504912249382563752847694051196782294177315736562714501570386973701584384216980559297919541504523610451561048738581442797456775152050101336630318058477737672831865440441351558616532441824521280809822870160884415460831702179202491100411570628006186044923198822252333846735892579859252052333471934787744926113566967163647653091385650608110083859190264382938635705458858610791356599092918096163631989266215080077607217960124732363225421007621852233962745018829122684188257003388185951851161181220575333282275145985956879781140251602871924332332123004627209121173673952804816246703184858148796391078606601839444100764050647663983925710670960393978813537987286896221611899298304840759535885048910120428420610993803098171260487975617348307514964724676148478192693903341562504099086215688101850721773908363134848423832415729492940267301363810651299495910048759457528541487772691685332084560563932190874958024944200431448368686640010115466519804604316069835271755980736015812142806381408236747583698061483448030785088266076418471986994788871643613715671089094199661366206336138004124731639543221813085864952902848719880234012109661176769694587363705274722370822093067928574536806585892170847173074288627829582328726850485556766653311909974302354773282929238651054702891509810733168732822275761502204078148013127140034689472445897075372847575459887037824297488913079477356301108529259740712056999616775997449086770816522441364328823268312777593933950990149227153730623584394402178972114691875594579189653654170151606727077833380909702147736572238019767855272537564347113747527831174015088043141040480528822116238530551258415705055721590565023716359976415633770030012389688032151819766588661591010762622530383937252751471676848218399961076373755465702221298233017631916739801993217124551730196852023739335015264007529979120603696724975727679193660081314075616245083843619575308773742240404398486293949652903259140297112343297224225512930161231132465998443335126273688747082832747487421181680803466765506686351107349791906634598348619282580181671764427575949121042849637394374347428821388543300653190280722646116617703823240260899791682630638481470800738695567720128125976922388666653432890134454633335035315522261429844467820381263665286862524075599652659048258477418968092601304997801821314851628774415373359096686333288720149630542185251993080726685689555442141699788798367572777748765481847935055654937752627126344056420759686850719054229496727102794108661832275544761028258926689783513829704987402481163680512955934215579511432520010607564631840558867282169148450010576393246391599476009473691293785796341894818642159342158996762835113665133972877737511768088321024250539365262536816955775277008713117289390614814190008876159723788136726803389340963915550402905367243240828181048574170184852247756439248100016339964734312257994752961022237974665348988959332567108249321294793188286696733331895914181962105293533798396881822231436035207092648911598238146514853388569782425957114553892613322013039731124755996037161550238110922810546698153718262537254043442186912976424682288715103017492304938405339336051769850114902780977188109507338348144621657966233916396618715586030694496035085563350161168236580673046365983092192834579358646330440784293869035779298114655945229202600618212619907660819938457241518122403602747176494996826176586555250022255897219207467822379972510083812518375584176298469473293570647825361756296760918659102636835112973192191569527701616394592352038722137182926389326596892145744100165613231046569799380754738946960182388124620675901163051865812143180674211892060595654915772035824702659850212168907910386175124329555824520647428960230478020899309351340332760330875442894967381917035343198159728549229066183558457549451865030302494403449286610347683444322483729965706712582875094698322035109483755305042075556481115165209110693488273833062097085373021380365753810055562897524621734962284288971175327286205954851424822509904371592335751552481593906601373014161247381113124315520385760405291744474488755521021705756148149317598456697697851368401884321135288463726199625866031367160297867423092822086829646410735446587129339941081452310816984278833114189447654329911647128789719129899471186954737038280151507722785927696699886042270847098425608264500332180031051698931524163278046026215114699753169995860783320272680656997071522328037923454432848615923870337034028953240099222709934482039924236149735586068751691728172394399329468915781999609366327963389557992365838731121857687352658482217047464402937174693021955049137276666275314830675298651705117315064457152627008256031676114327507882040763364755453694337627617460707526980072891390748429452972554975251079943872751256492038934949559185209956437243145209218441659150066086551470984356317253711380656280308457549854754171914689940384568337743799957929084903517736712087845146006123429965020106916391957710204185687902127112810022436609597217758603101338177665529415162606908789301685895368310516759484472534733139767693393334034395322444874297540923729838207593099950808647340917789644420969409208490535418187998132148315990624355665685454482691078624177078485538287063694324117963370741264651137007747487591424861449127866268706465672166516300840399324595591247177366138080491601098978556806950947957206115162515224530114089997977989074471702296254861131994522868373095877903205083349193264954345982534231155440958747102108648852982890557871941082341727738983145433824893445783388092074711620462054650259214700439977439118244016534100805792521097452421169998040834746383804683327999804932024262347381756953185693895694922532908634077274888901525977611235271219727123105198043587279882934604901074420926798684842995190644701424993712440700547500198873234638640461817457056535478730186220194101859883855602940324511979555676373476543408364164236725389618467036626067934032607116529371446133745033171675806257133661036357237499408849057717751416358530089383633196497951702130545862723819488624843232184673284926428304868770430472249906855469628492960568713858568463161599508723074585747432479741935779429947901144258968843786159822779999444249327773472748035576055901099926840867989149885006217792719541865908558092358329142106556737364308398045918304559331392269553032084675919721113872708958676346550535918306747880792900729042369542020249126113696548183734337405978939371561876407911931863257708925924320733383801999035174283522526039228505174600708252238433745944175263914544279640987562985525879452001045774082115963073659824725910229224345810674952373271229047227815650381724357669323218798870025563503766467113143752597348863896935686902272475711304398406120967414421789519992359618328896892824651146014603052927097308598090252088518983613391746760499339620026427350621224271590912873608691862181358475886130079783316741121404201576594018590622311155629205053762477197162132717684499470694648553833396649985517054830354787462426355087991166893707590944914448046938373067221796115945804098635284926088985970071226765171356683629213548531957677678039973778373846100317555730002347672990096423071839346547359370854361273219435420087913781349058872319815024769176140006342769725292597516277698654920449141501548945538181805681110831687063382831771159664091256232075882976020638599828079486101345429973837983312568919455873520125409735274227669766527436245855371177167808432753429399306920461301424273007189150439254009061036371600146012338763582249109354663113628893289897405316488419323410946473701616150730191157624045188567931568490685405578003643398321910485111443772526921453440522656673327815922236496073210212671945990347792528514862654795458441149180834193417969142928329616980195578374250709875324253986335556553000516863158101081186105087001084015208767263120794393017832947797202431648558688489245659956997663111457151007019629368207438536926009704330387632446302359741152167467958988523267949435942813106798504685846648396152483577778341867935052772780839334860355834196312136184623869222731703463928045314120067472444253607539116099151407548503608215342372701569887124566268773243465857926317832962796869565046971344121110961279655119973813742033186849680005927893655512230405922148000672545296460741576394046098852544827148625766853110196415498066414564002566227705414172901845610696710760137265157403482180249241897535753930973201015721437270986457963731369176033968025583761879469779143199383966236429705735092353142916262775954566664194773529375290991221772139444493586696290423569476879511077072819173457495546044928044415396861025671032203821531957611086293524037575080190663082434996791028750809598526944428458626692028138762026365990346481229512027545412374680959574434337212169499103839861127126842500854147505270064794348645522983955163837038066329454323731847166780138833332696502455246651263096573782156858746738256242115122372839904172136989400408365216709973899245173152587816640221777570506978990788760797127833569387276217573777599376547825469438363682157620140410100890454894222681187240888529049089781705594734926823691917463456184037311121923658265980024448073165915835345887489772193533573225658530965274647797498795691321747759014174121919371264937222281446544507068548361421058720674251828770863295600943466588189424012913581878315181066256432027176680517829438715242280371219503656325061978471033068483673033174801513811603628563279570420916524311007913997296937829794938483551800961558322486713831034101253847718516816690941956566504669385885649259713610891555927002912099925743054356934129952653594838617774671101782778307720479808962451154985176956024226101890403618938608281287403272859029765687962392385611855255120548526779363797576287365437664729904191730059512214142500978268942807065010623133693746266125898008062896325248728165680036596770198282677531764516545610613207947473319769072175134231957443573100044563293850060597826791863146927336536762588168206036999264842093074507642392936776431677886267521248481518683662504861695560444141956549366345802933750673169430398633335622542348197194901595994265488203856791868691694949621801856061506613547696377319310392089961788742439188771916769390445469706610035375623532307301925990783120858505872680689682360849578383508430298865969343359562623293904398604639604990735267931538788130580397533257380602777987214211746384010742013644017052150640961119599763081258184165156987430020845742313214363307934804205953408422823032718929712532782274460630384910374895434608045888618998518375067342240976026895489280241855841465762140711433524607401187221358160918494868858680836764455743064362032868365702824836536200011681858727197898577986999546327799163372999678650107318230124926627479227248438709881862271103105377132042820271059739274251426807754022563974694669748940568623189578705504046983495929217732420406477718983115513375462560910827144515892559318645084402499561813950157724947755236145222675466982134857147768920151769791680739789262107688518043480659232089439331729545958657384406237711707545248039020062490362788380601669337824478657946225051990624107197694640481528324724036363231835705208039561258926569728975820606942577267423109093083604239813579748494736555395111030031721753567419230971425877241586524707990704285603318012968908466758654280505885451459084145225483637782519949762452768687670622180010327454174555501271795766029791775716819677489855882985838397439762292490149316203098967245147588982005164061037933326487035697032762004408781060341400501522356627129262336613689313834641217074201448639951085528038175905596862014586985785817200010102198636525863287923094911092125482507210950937832386916175965431379689398527605459604063579742038644760356759869766475406659214155873238698639839921033580147371876601256647814932029991423345330953684295423112144124187622931855462133785485015803548170606092245584274116227819227326545418882574819972936146763758499946254675407145125525693299427283172116245729217389817190689811699126232903223894386338708454826932891532070875197186972373192198563188512334703729088094735485571867169895538289492147597439064414240092503807604541457313942856438639471646758875637181918721538828869930288553927860339847625395417049616161831405190778209148375889769726580701584883176852378414631515495099434175223181699839578466145239888382376138269542541370352393937833683979082548675309636555205315958116757474440449836599300282517568816985108725913336381477405272920883721269620907377809702022545296731408197153212591764843795954986166790743229055028844264978235200369104738888930583022732411711519863727037875565433028209222690019356952187940091465533852534246356538807933472925893907860608499167937270165261986300642366254509491830022356731538898485128548288175729804662235667722506061269786998565408107053495001252862233310388216824280266243752736574947106149505568069698670475656082411069731700012506424765523176757653432754228311173030841233825599503601899774960312662342287145824817894428083761333127313004923548453293245110858248263578094345043794273896233961555532331774519126933446665106318757943220729746852972532730618256124350740509304937726684330791283158849099170082035464631816637946676144096579622938710571737714700058676871306872875817671431023949876629704552698971506092548657239086808758969805698216982544921431188586214591065445210882354333575548141662776886260223277819230894577354763685285926416374620774713814164875901151858405026465188343102831916543540193554090575964041601975045091851519271482738035882628213232109739102109695542743701536185356211752787788817422996613377454435332261420350938386644095079165121875832909414077944973967561227876595876374585499833770958579736962451072431011274563161897442816596631554880956894900938060824583483056602025383498064572065694036955680669522026756185161647628118872413909445114405605044564324066843461862729536618386108914266462729341762538149420926697207444952445177771535241217811271560310092332496830414444694298594173509139715151253682982666624710700501195816770612697317033078163871930727759551369952930099439960411611436159592256192477123071657165148507147753770218036833773421387194188375197275232004305530470294922931971191000896207676913203173894492204474260501259338381285875686322555775591971108791072981351384340895974903367085795015356910083294174919251515150185838871599185094526351556281351135228875458327520926348965700974852963198908549085961298275610369955612255900422032615721351933379127507410868681093663562655804701007055403855909473308005534155946833898943168179344068919265126183408722141905748801707401805496723006998210194019734403974715139466759235322708211930870842822874158841760620265423008299891698824311959898826034925029770061669969139345897326488959659711353735054504257056886809860972531533420340638050401709654761977464348161100686434320066973325462434110658285917867241709488097549696820714436837369214126970575585815076039793097584333072261077512107482095574792575738776479155567583232580222285325298842661218983367124901521172277834653580149684374585987466744270233602677021122104080270646426095522227192461164368807816780367084710574464306233609901255069190803571824648214841618005191865065569657372021249811774007243171399718629176612456438031604053841479834144397986304562073956830206193285727399031869353966724306764131814496330297366749009907517612949513695354289470619664963483350283612686979714829946476092833075931225096255465897878153290604341753160760146672237631297105052944458187031062116223388747198011377613937130246911723056945434390305293947517008583337083947486778757590710227121947074664401613163450624061664895752204707075014203463411157432222288743766637681227826411006216395501877396040223239211542822682744984500624493676931060847809059056277825733241353787588452214415368862142396040240424398963277620600219075850949351004434989372027043764757477401669845752756107881625554978060812875873368074577755902337825290509189599812151302505599703881542692815730845593318887086645863435914592044913694349440617211207461329615318755350074972587883381726407013860960098526023674778729122040717843340844841516995712040748106372330534953427862866639742218141235114770187401728257163271058238129605056642851075741374144796714981045599088335243173953332927350235332320543296318174518028900091474497968232288512780643322670132536267882529676844638590754620353267140859413426191672294284510561389445606043528803624952964639147151648290527043250265334348243696299102422552815669670518432621665821309625278845420864347338753272007820484265608623936565812691977883774054390928466787378015757414655763234087801929241096422979749826264285079015667410396153195289139837851648930997550699564415861075652033739887228259295733193603569098496230296889091748023816130079782539439613913350193340177151256846910650675869127350643089925527119951500599519277792839977244153242975467576419293088551911726710759410535134137513967278713600707101543924263980873896637904489155435608786022562420992874660427844813670059758157263619559069003691550191885132157631906881777956578172805006069897977339626498778159016725593790970508458278966660699813783188707730665998586927894466157130118209576972559885309164644199623081385627237929249297294288311791652963711383087598129476221185561593151312243192727892464887728513863265289050018410801722850811493893521158782867891947830685788114612567152832759440674319088676739233492236022436570507245542543662281773918128892764170647732259563563272944060420850134497043776541551832722363864894656946819469327382168197728402023235210597571926954809230259470902799938668002448620610431728810351364180067727624671182525277364891141346126768035661897523930727954080722210696246955863722968887081221370157512306351993034433968976275204256303384334213509850076235885517993559054593138461735814497503474650191993305318449881751015169781647334413828578604957552010407835571041829914368795607572017295955265961071088531212902170385714708204973744756260351569152215151201673217300416937493751154576983177864813112221074378369823773639460825249947699574640308005137693744891881590025155434267509774976887840565377659997889026437866974741963174449758766586025429921874313251114465813707615006149287934849950966387556951277350964867227798514483794962915045617727251349736405289937986615493108151066862121625352657926129924042330391881868888947288268743637886351026860027288530766851039553359097309975934620889167314453903188823231290352485933029588661568026782158264597545632759861241742638724942330677022964778678042038228097778405595769623374739453630320446161047489922965013962385807362319611858488632903210317237157622460491896431463026763433465468986856082663527469863486757467854348950603448705211401860961736149394742612257912494084655961382326309766461458905121422735936763316644857547526717773793848703836229331668548145147653073131134541528860866327615858905594217466388602562549688151695747799493604102147484737905131520824374065449459573984089541342616087040961072727727504458692748211373422577207046575602750839567563536113842698420537320008433354595377815726400387273699568394992053628883038796934659119916800265189956300922088930745577317744022330905688723963515029181807520618671680033212826693805706154072539376268932413701752556175934252960372227383958881413677928696195975708140320082381782768680156955273831708467098606353268236263178060018688933218086234058866449481167759973535231054244209561533162561797363085879382714145146253734974399770234182942533936408671953915030701316432011805213916205294898690417340320699857261841881582932833385066352401618858588600173772816172181393789259427503396600426584383706592733478643304159160975820203473464703260223078982917592073931433292439698108526019829343585921335931126474314286000955400887770124309360423020162723315623869305535139157613402054320904058216449807728130487758984339193849563993722139259744106176109598426115561113446386180476461629023955284058149259528807469062918215484285501475800734031969225402018822087320504974183165904730664597304797943112249060747569033193724002303091819069994481427411164848833205845828215380160702170404494033250240477022305178541933352143233773930982137840194357794586149338112275669068493316913060962410286146315616858648245579097910757414054036891444166297744689170384606131786068360437757845383523464036989412367093681757344808598062370022378752708203172704387919333415132148738191737682182925031605572484686302735539347187212386148484495256274636591150609975279394052492281439966505189438601675106601246322615056126839997264853479538762034298578253921249148665255606273901104849315432371803982819069399483436310578051899325984242863409792878694215843125795167873419886588712931395665772672938298115534333882738475253020826944229573121252475127276265104120022823375700195610925396298329873257586270717421229106749243288856925416465990233253761350054295644619030904652275873704593253130708528432253840767492966162961438208730828978466173237800244589170418658689498762794299599054897326246070910680148017437605317154653623151602736601378058411265431641122786766565959073002405748162469654935925538575034060357077487647655507592401115693255392621986839656204346362350017894677774971435916297679392277020330148808041805849538616313844476393002190552946620353884598869889534709451699139665902739946687520033424222921526345739157232521999626350135144520816597234437096083038909165844455131401762310178413665456766226751723102937627480331363264370988156531266795030540384168882471680592960741434677577222713007233704234168233112566211913925298158844834622236945419640092490940953282299876314063346462729320068197918332524004548414190280866303457139123416257886219122594713925789591811758325257340123746728404961465196676458469055637800231003986604167364097791809278243848829146339493054052674763296639946071607264910963078923714165887410105003685642177665457181173117963941862486423350918474513077493085469069912775644264629055678883334420377356598579603968132267747210105504362068369746537021409382510709237546655004065117242075873377397700698521190713995293378769794191689466904097640948244761245956816618844496481964959686207879348652085047164518625561297913453936219103187326472849488662341157076530792567417344981147521032321669195668808391890886292312090667129306412012041006520215917531004480327746736719245482581120035796646528747419976072418489857801784160752581618212787776625379536389621529900778724447439349355272224328145338328537558699832139250971486286631045506076756671884181249161213714367034836500247803603613608551885722934938102668375492314945758060305466881577197419940658443843721146609428184325652511248392217120032683303843787320378419771998159830446652777851397405375576573808483082501457027816654358782679588711096687309292274007077084824516787679225804581183475714713124634999831366057843352595177414810825288043529448774639093514038640738312449812042105793190215101766670896578875453445742756191155514084751561255130974218988092316673762937260721938125001238486065336176319564539998734636660530231603809634956871990768918861644264326913646583404755427180465974685717536634975178468533571716934792834935744314267945252336977035485873862841346097449533549708180233584864898601549573177253097638166177140294870384971296041731826934850051029930662003977998271969652333998421457843359687716441280683356355861330036577928704288780651271489051602477689593344384212054708283539573745768416532502084508520943776421698675132984276051016503769213300582495286163126720109625424381929684079754079552123062251309037329202994300470109398246791523870789207872344730862514018448771599105353990654897285981126310334199501926758700043757138560674628692686133220058031257055176177440532996291098148412808645698355701717300356448155773902585753494040836071942909462367584931162921923674297882296432095674600318118795256625889903603433187217984955580097656503054483089141688977413683438767108193688658602850441470319442409536767960856617765632753436395270100253290118828439486198966877616459494694852263979763731705863653539908735470778433978865353872305782663199077599026166884170893926860351960101699234916514716924265886475767865709910625164172956309153842722935829865340182840408997302700829692461733839602389702421866774907458791167695913369259604364825339683068407045675584764573712984290861280922291276326140122185124026550296910365839086836109064756769287482471215815756974621990780054873012737199224902750075498471451059605218346480332109515127030990188683480446427344246980675473361905977284737158555737926356876995791277017196256237233355134937190036197248800066956163604122662366828354313845425942003908840341671364771583520960080882548249869144946184174696597506819887859068522235806614267798288757782427763681619167926232176052513016026055785886661497120681181157001935046096840614529172034045774652146392235124575364520885407200043792608003972146319417356433722372840116418839894308801434498859702940877351869769302325280671147284228087939029089983320025072808489622756136214968184397651050668301996479293835772412974808068170158615873360000135760491421438072755069691135559680571796237035942356615811256461326056269643242431300359977646854314095367477907893902076747073415904085740120195578126693905273726972947245902646728712269069452967104806177055890124250508467017166750408148000392584618283513029141459243374564891609332357687650022510783538912115289114042094354107120478620138039218283266016648189318088213799669913522461283236650355091652255436028264035646791533234258493559255372715935471836562569030366473174317522386509020779782564903355280459992735100604799718384100307493348961323875187170223648353623552780131243886103550528331846021762283094223752908186862670807659190755976320381561670364879934044417048939137585013377223412844669290815362654882099594054607539898943449418742000825333316634852205888871048392843439390267329191134247068985683685934406678731313107021904651774517172578837006727353714682639062781429925979002092196182712547142718172687510126958346004360215042900026514274631085182237260844400112896787641855524519013699158620391740360105732290117355225335869970958311460515487344373636979852365421293658283720482916662656911600674457799206127398153002307299919570864489824102559383779839014221711405038230093465395517508420095460339713366664200520483217838319046397350917559764056968749939639380470724185346303524227424031562421152160275722442076110083024029076269482265712422340035094059591216506613944715373335774102343330971094424350397936967541480215986058633215130288626843490482338674625668519280283734578549496133209791742387929740317691250749050575694331747897102749376836735888707814219688730824214486118918099792715349518634964706905221012137553293334840930204889387031999535249293648727255326695746453364401015482300560405167330321200815496914056658082445881725581642509585193165328426408821599695950897979807287779326682476427690457375124247144342388809609753449080758743598693574264995850018098447795986400746864037581616448547457714071332023226022741478633474699117122417325475722631825262804303838846764659498600741603301562338474051978799399081756372657991577184182685845691654843439477975179897080890271050983031589107443372850731148127962835579042228123064868946497350439921072778246838568404829076948469376159172499859532797112297597186558881704102523160783025138645003943324101440565114049610776535219886453918023178850570557890406694803139792707672186012171649325636875138825278472944399544448623030867771429228547583339130187613239589135539899462834662210382173643279127344196111161560311523440357690722298376214948265858404855042707950994119548604390967601726900574555776387809484341283178713303855834032918295561281921604048709390221960158784615408254302397394118917731865050161038161212752335581306063509582782602442829956241559529900713535736923846494354947410503238806143092603679514922471074917546926831355423388911972107529616161409614372976029469771339814495621482470563986614301004314968231096884546926827009356450742519862350135098660390162268270964878623398865621582770615081683826369942808915959275024523470836014088474940735654945594188293955794978189403568645509787065659886079482009769358901596012438510635699151547968389471685254006317494445109002458540487520481931136136140295431818093106640472668802132051740410720272198608618833076310660046522554366737804997337073822469540507437472731233743002745614327732325299338700783206608314133970868007181837351476347505704963795421386392781702787059317763431618365069353701266866585836305614570996263438069530656095918896412523840198266688977183385095168081156423981306541681956522820031446256791325471064126891952137372491515856898598017237258271753616583258538486359966628383252152452206451012740840188511338933262641788658466144952606528755213866618526980906072744873982840008075329018316147506954669133643685352072593538059081813677589372659932251636831839566995352006204472132365207952471698690075937180206974540500868078904206174845556345396136133070267756772221168986192864641449962043292824915629926426529721417742246824887739742994864887997303398235698952983539977592020366807262379058926964541646412037473173199160362090851160522372786447062666126682779412312691723685362748386533701392221536676061329074941202907807909372243448809717956280531363101912471748094068939416942612875566663623074539895422361684041449449999700489796498235911355120210856150483328065154192879289095183712704358293281976835202623158072170427345097508002998066860347811720094621645184005121751903275226728070126643303773955076082154925952000985750306353465863967605585757184693839940107374092644761845298329793174457144920006603726919908403614427622036497029327193949172073893859491388543405395434976612624682627026704333532658437853339078988785980653340078967923746788871806126933399762876234529516248562395957372100396693352004632175257194435655617058026006668010634039864553529882555195775767955130710320448032637031506330670266473436055966306262193475398191535643929203684224165156772467752849882535335658978443801994700515333161824478919036569762953208010970019673165700119025095396800285136725838913878308568618506387999860295753976527469297296742039495521596420322583582289525581060433506671805162738252270210233469932737892939946760810221774723579834546505171525980904444947032261272059689758769746759269468927067297954482518030108480510031636136356387504754812948657292972789038110932751867997810414819302405423865651947211967277091314020902301740716267203021480599779633099116934570741916474255469163965037721103431925670990327412952602865647382840363397749422296543722506198305627902622978376909535428278737592901285685158502135414386786305613120794008481248083794766422831132567791861267047822061520711952000460099733123148095559969331497787278514370782289228115765541060347553675723686746564957854712415780193099186435778355606504259119608532190782887287586052959452436039462612106387913715807425094056940592436575302706608677054595045905226250059849634167115870577984886003778928676491100850747956402949057539332718385360098846921054860621405034655602932809378874056896090698469669688982010652512694119984549965566893388228111117770520726508700110609706998005688741896730391825042062726044292928562166871271507559192679225476809798764297418713005649143757134823080061203112962759467025795009931663169739946509636079723652225309032250451507632929857835704748490175910246314607281457281490030224537587001190694208798829833723076671061884333208463153593647515713167575304320099380570398878157580124103333100255771076538617262777172926103076246459859892713957181020169602480329638856108143757690769163476395200083983596254171599431835724919566487011818073899134501481405297498354398563456240518668310159218269159629364786992875807200957971037333300925381856414419560842427588347234457810964294876528355544036909588496500991997872628884842136222941670990972432527937543081029738706158637200004833800130753278295349643881996535746528059150878453849085706226780484249680043296877617696748716427312418884516056057785704652536273424326481435922331864221897916346337951554847944757773809795549006104825441057037110672224460324247830152036761246211103333088904793512721600334726629088352718024651110974130815608000925001156182838512903308039979138167996166230627174196305149399877297072698004317010097767122953403525439609163438038638996759934693027053493774466362496593291998504180215048449365695201370030537513754256663303736958591814306409775712089549070841473528044772079529015393866232934532614798378408437929376071306472553634891208937762368005012837695243388653968151608156332604432537658327416097797679379973882530880598725351525917661097647057655149329891376929524115135942514671617795068993934025949641911182316860326849544829421929548924457084057254853978595811991491264767581083228919933790150820741164053989778074931572740026596690227611389498263057430087079243311221366473629633755492743695265030520036418894655101786377235315397585257418896384466326604289477433675921806899653686418320769071667027666798963040139369070706290957197400022748490518542022579677983584991818957764397621148736611636797382838176468930495202607724387022403591531947954012412305850261041974655517607428453128842685319945356682406550576698652599756620759028817903850142314802083934161696205997270668015245521235443883270183741611604785536722347389855279130538773736654312316110975744954194454960253254804168944056030196831449125471332770208535911860159667186587072951314147394269770548847030875873700145025297178786431515266277848688239820277649656618732959966888726760201184179134906939192307326834858114232167836341042424139199386691671021888800204120266004557645738221611747295420799740023191511938881361693379938324602000636832820490190098277190916974359012664616060253770825355261863677783486826172634066593131953929105019241588200248277399896348369672543162613869062613414988050892229161135130437986407026287421851381309745924123971121381273217433109652286684036368406084097273155642720917426659513500610067818896679031090077239758429861959697704231673634609721423520249936563267328750127635860824420147525320767809690148824722997136107313733866336925008131881836835730218575861986523795089066604659950073720187495110390569173296701266669785679323318806491882159100781649678544445780732112730802303585856385515852690124394975524219229627595798346885826458040959389493654128922506225928904456579100192470357647382928662581778661691410625893876660087558143447760766438846442841556586932976321248211590332955073716529966471743840338863755095901537467814281534014389953872167632823312768062375671851218469588576728132012693485108044922322392376805077427411028639551778729506224928376463022738934334803880089439442184328316840994329695837077443125458739246892362801474122897166902992910823714988368217903627604601315215205189691246390696889489742631170478647887519562526708699813549822093980522725823552349618753143737004124960032174128547077153501889700798515411341756193484496385802719121090055628737336778816981367020164737739429720264606730744659919454156450176596431847739118910509475513916241132487298789085862864619826088595919427644580766238269552474427005867452801546798392969606777446587662875626592309800678929465731786625899178601492680207396876324337090249868988741719981369953048988915196982324878474096878340760908822623903611307562180129812382630289750928632916093947581083334669102249225572242096606506463525088694947417391514764708220377244960920910222892460067070592240374050976259949855765416708475184236723797908902734223212410060075703581311573696935965986505549730273965330010462179380370517301192234388832478893541000567917777506132855305705767047343732961201918577950405789833892510482572250416102752616605545016559390651139738723827501141155469294657538747287558892781504992732098551658260456950652405935443543690849037860040253709583181027012135801909354424295550057301349038223801507078970205358267787817037491361565728283587413758974655647309787326374265466809446937499578746497924280503224194879667295893834637453884068261232445725379484716243202800457447420419719191137326990334813388114352051275213899802108070093424607179422719511468274380682206802425776775899396406669379364167011159911389363708679132329019340090668108421945012858754016147518742953178663465719786676541563714388622050517030185147739535226430601810206541766088488885000094693098110196714275511753239097482526367614615094728586338598422584308491755847846111464749899777013346307560877656399988208762757598941066143899338631460472711534565048471409521092837607860162286185976965953790997307998997481337155896445194494511049624366925222251425129210708833178654285383517003124239579728076432144917959063114268134636248789300293782626213548846340654998046364244229232899669944683440693345773189901996720246652067575088791904141598940909035058925862134983973703308335495264955268675140537580619577365414724671377533650564637622937128324015583868269768757156301007593523996141243581746571721089451889303959866843455827877982644550007725493931219768445803182209033783464957851430858007143880398035612287164346781988146793957163329156795994285935686529038328228130638672225984190839025922969295038860269206267016276290766212960722701530609792123927740002708313336967003782360619196771621504091704685507059385974204843639884621668542325463420441261877082363433590692307382266301404986445627095554427636063742232800454701400852578060742714892224698372970270558389541540305594995795237079706273389419835478194083479568212980385729541915229122321460763955264922985923665687777424754258563164564840869024652268593149844069145041273750846923153187812652618110078242843711321300495296660221834453063145493470769786064626479277251143699121541746587273556657093253057883105387059214262556098201295773455804699494387650889220504127531018034040043488065865194797415759210453613668133381213178890253071711080484347370679358395788474073428180624279586083371995172860584849772843929880208524669056933109335063213346753250817419748031846088669319497032559678961537652420263775193471801840721693184693820635464616946778054918670317282957365669830799197442511853017714905657422853963292789470224343138288400946788741214318484943860597930652633986443048923619781611091376418289982102790474746227808547535951049371929591661701474357561589441305918337392937014079953613523067676120528685647481142635181114713407684453228807460604795559348672814815062346027383818861545944224839241557976537796066460215360842549801892572476968651101134633732607888502738682705715984787475792102737110663748567305930530750876161910509573503553493212085354547797545211101657392943305169062917268742108455533375075986104382147185674726263972682478490784319874593470821117939870374724857609105224655889486068236160409629372541865051160102643533125467163027431826084420810762025233771857916567404792464323820459738822229511451923371826460051323236053522474840268710502630341746815781756043094067425661849195511589315958459338148445118346960689727685784988149241389809221241777848016120663228488461295727426619622246277775142816510979829201626209790217776962694156725630625849317433940452050576694119419108527110142075245304768348566470250603837116385523617905167383434998472005997319974994121200912894712586130951722030657696477504778431544803050991422317992984695543277913188123290467087463255565757215629967718833126383792463097365265116637357413363794314666176077675421290528094406001139469937348393928016687982974979543642335822417366862995019088597587750806607236051340838573801216680033466921701383539274008247701407055332022556847389827678506528436829767232833500908926872007945333855842073958643179088060147181530178732628950160846513667495096412474074754538782465028331401073039723108426402840523601650339894625886776368417870674408219015751598048618629545453867422800949070841311495988705200617865568851405236077473600558676348292458398160665512376462498228242714809851695159066548597192687616842482085113117735332178650342011113751886398146405348399594117271063431040204620749339106480542884312953825163697147965160952412673799307074037776497432602601341746330461803321173814416231067154277141417496850478572368980133107092991227822209755058026974638407087832550964353964178780091618431375681529815823770074669859129454834910443167501666392487691340488136266556820788830777147333780027934617256372890130606607097464966276366166475406001005698876489674971678238370831137638045248952711824817040209790832100103192860871824168579792915532300392423759225828734906098406245652689667331007314638098770334984095061736182177150926013640335763523723353128517480572852695750633607514068408251490088549208753228554700875405641473917039733300747528945905995028999174390924387173987847662347996081121644825978197700293747294239118381734145219096012170337695651653174964474065003371870225716827072904638446803891489831167315300991402846119054579496314523510650817844983374728242213468107640822594343344844108029967367787311843211528181672467162935696858747185537722386313196272033816405119842148968615396870438740122713513778855265670475458194388851367921999414251046434760462987117067139500049340086398662547077328080507594621139040092974711965557252665699866026140852471944300195956493823234577073491383469179663298851295058926896056500665509243475540805957812402272648400773069230829647863864414876736778626272681342353556123001350587188195655545612314102798917930863915241394241815684970660717216462857435468228443393900243601850495524576001932563700010355429895370185374743097437699710080504514674681329381813724039244848266612623155863621407908836505796677462581159196650437928178086535225516427558876994071868266834020190630938835537956840312464091432789657033686630985684681582808531107987867687218912473034014273206660595036439340021686263763370916606317783459238313647214384998973657506826419670744080671557987855863388133559450418865395150627035318615074524149772642367425769232979213171136184535618346532935885886504894506432094292508164551784772892291966952660282611719597800348581827417008837880010296635475019634374906776994940324886426605101616387717704652571533115178357989467773528209426467744661797042042370191389322677438803973172742950975430661064401057883809996715985196316192428990505534149918904760448337956757442404423120280014717169947372204161475511482722075437596002124125502093469028157682052114571839067015237621717959442228360172690007526508109634068743236161291038643884074863481606318960563883602777896489651224170391629371258625458653098487922346365914313940547434118868316746147388378458448028729571411931579974834532290678560487031493782997184028187363123680795363457841596670936629402122168883100045250951644164403274402346122487785017880222109590498603523855989463913573715392428127942734470590169333936254664693374526332830260601193177722646784456379819210267101833807796618577663623361218014142902553207386767200271667808471062423140597403812545332657346138914042526898167159065614973313968568236817424718951309826795599764787586938007208504777937859751787027082492045695145632659660860208158579084406637241068679255313535901360102219724855369605399737076461161675840021827879142569864821050741083287047655631006781892679419631100444340746220499078522982594957690400859296887531568601034694653220578334617497765321339993302745414690825961059371804985602395941045692838416901548871879061755456997841273981014852062230046377146443011567679288878116918983829236313438725092210401483086578680766948396156393930822449229518849682095358951873472241226988023630104804094850329440490535115435060880496492258412912246694165581407890976188045695944193183711887853873311541646219885186356375634572928416784974057740496542669288737383252150515113500852188345065868061040619775838694332411969396231598257536162340751318032045259741332075112232002829721110041227445163948560881407979800126979672666094491865233376543000294304581103836665342766531871763709898922117263847946157711177297077878450961847035949783160303512718483330605582637179217428437695677654124954476410237978670795115458697637852703715960721506394503706939148913963309954277616329986704061534838680105006822640849130405054070699572138121938825234118356864935628999922930552365508242572491406046686536637886043236928600122672094939802472337546580329890377802121899038571037940364774459700722131731536718851410002903104185763466671153134861523644945856745601431927868510200640613797020068655076481434429581802850200199793343956888015496286494477044002269490167633162098860978577387197404022542260362835782851024461877278165906217224471184430532418829651200263929850137937126701857056431291795518894346152059376522796664017165666977401631872850244497784590709473627194544530086104341730434913942955157811184966196540626818013947571640541855703860102517426108696378284831855584204795064048675752925568840347141017392976113285049250441815690173144543962784341337494182144532810610176041034440454018374307570941403171655894599347567049716328813000163897157631146526243413079275447765973464754816629577151625594757529140420383785005196983003570959725987694113565314681703284504521417412036348138017122807277975771483224215317443446782653703993529329523957128554997662982881838610633811448571060572573352361143565802206141154816270933102592862541467390183071020508921067845563115512111727215046428264396542612005796710089924510819272981982394478333208623976715338517735238760996276754252361448553273021558391865072173650725516868975008359752602341443136667304038642406139855065665504414030449211271121313400108674295428761539206369460489601325787208761347289723586264149531682772588930905558614408207967100207807644627366636708235953547481834055963792472344916458955662738996632239010364966694309896722201722367007014929644421860624312299815461413826143250091969069096228290443130184201133244673257857733348016100361551197693208332255272524529492941623496040679901079481707251618915877868758636836959597924378003715420166948926541090376073826192723286502982231329515915243582026728479738405843885448051770994679545331234244908394758141052174269779418594939288791609625295712414710754190028533245011446487746865771365871158605508571147001975708207861646739058577252719691836186996212789222085392594029269194698765765179121279283904299042935288916885541408742216236658192798812287658870007033641313876689159323314039389900196221165725196820169215448732522789528255301457421947137407398903299724103636054116644604021449966674649577094080024666317410820595612809730308904552027572853288746974086291676212756663484777035232265553060142290735699666069096991261965556217432149964530126152526294710126678895770536712740335558007762023374618484340201945313563886936536086911126086472331417140735665036482103294137844363539335714787971125992370640724227694903313873204649952400846677384454885396423545777646214524647089147702266733862711902003887120655949306243790068002007530609763313556366959279676428204974909202010335380213803112600480308895145958560657537993173993864730321123949027625611699317365499086599044806435114441722041038689747908213462144607100616687421190650747367896431728206940493903269450516506768491490736006766072534710089643849101736089683286790263550554390763881594580913028834500814079386664250409652917439932781914022877126231411297024951073227086527280555197120567173959106916950343966589648374457107233461583849524785993755044833674272461553760817953206110857538248080115700926330353465910154845891225510533986153869360281400230552957826469754055552258641905701878936149814800779074548096070090572455634077216649503020622287454831067115633631624473426548926679288259999805128608508403854274916075902608937318916069795145805333548658434291866979856748125400269234787440454005573806120139811845707201221124430512433245861827898063071564690036443988215611859214021932076509369541134984962748605928012676380124935841570735059023870372997950019317733375664520062441351997451711475202584692031581635723968431657351785991472525163536806112741260691398307358063526371503179885290114229764427501471404255179171480526435948404656031402233809047033867055389650314123580375342193474748667021036914595921434249759678202042149109150696968201849647170257120559621984463952229033487634746568632490044628036937690201538444502655236297859418970140387395205638313807792662377625220261641696316006860829875787695069434813355387814454377820948293055916165011455177240829386290016328842291441698214648429530671459838376582402235957450098380753109906295497395462664320026542381621945452113230413186461231075751623542884768846043051439095780396860164796910952651221613458328272015751334590381776662564773798801222627477745115006474099128597294607322988894985421513248183014742891779024968242449057901299330725929290986471139739836666455765608952661405384709287915674262557182408870072166514508580138660240147348508290397966971586098152728625650770812603261391198691746870879209132187982633152966111550205816194389029715674722587019481508244453870287295358330060724910713131852923014250543120840281333182171858361050839316859661835648080193560354256960859815057863696186229565235899772830775725036196343539105635864950803969432487695056631188171260068430421946176465623247545859765604537320817819035794921832864661730377805160886589220277118814874466278067497049241107697111219158874385069981720425562136688470435883040866775650594525089255649577776286616095943027270323441061545415384149173837331223008670016650490730964950054865020902929042187152517853946915395540440414938441760733385846846187248184585603879662770156547908415210451355775673472344861610485857220393966952395724175619861835363241304912749597156616727864618408070810481423833630713499622142421296699460229998948861662446453890807240676446881378424053562783830617893438214188777374786408606840338168647807941382314150801382439366722679857706598249172589476979694449016460787282364672975837863294611480437069017975251436839132591136677015944166030281574032377046251378037951001964743488622537056982406568979528439493301582321818906970085610304762809830383104677052642834796525521274088387319853311809643292883442250378175193307805549803325265568030087043420729682489824057029601357228625937449030178193765957923745063507946825780105384934424556613100192511357456015711196090512665776284054604981922171268207074908454398169761250587098081190782406026484578701381458762094087101988332094370504467735462168421489492194493347204287862779458581355414066749863001714006947722731975960087239865656845707470874100010912998069772635310565243330107743139631162044553924357642978380728669926447171421543989745782607451847420036760200906310180890980141031171306436645706466495580932891683813553276309867642689841089262689849104003388908555637912350280284869832461757216944241294621615700441406234582480347481355867175725432834203130193731534641170287457329294036305412325680702591311010421718779031555262358499741244682536901723878471994129257935324020705502303032064684247753757375163511042762599293731393428393788207544335738320372872848736483167520293294383636730672266505886303432999747291483501117417395766901151569082007885609714857232947462930580314040793026943295275193828469110595128253733352812526909164063178411605319026839219696975554207482104261686948824694110606452709208110099737389519107972238322539074473624400104589348383432512735367843562312273753084406435028953193823518437378651869163530446580772755334512385423622774760410188698359030475693666859533339243700781065322258708069566844904449441153273170907845575193919171202902356969004120928884613313128531675167461938885452262362386454274407068457921222128745019222022650908269952599127359066741212543346528992464823391611258736367510769009116267161068580628846536103355517877470077948738210023406437290198385775733228341767066349560465611026484873100900650085889022902923409764349340905729905618855045680640134420293258611575414318255388957228161459277168333255012934570126045708834718166196150100780563101648193677479289237517328588449342294753979117340556396476880276568918867139875337355449035486135460837474204439913191982877920597605051696777046918851552749655130110651603165082715328853355851973856525797906799153350153045514044888677800459329295925427990167545425959047032138302548340531003536802654153518388029041231278658163318280539428972266621487914749114505703893996746563898553855870013482568689161508412166098997199365953669651871710479679271921784234049052664630047934512980903738057121342259117369559757903568899838233085879480652601493177570800987197964880597572096564214885137809219317373121461157963487520813597130729635487727282268344902233846007613116357065835194655343410133549059741850675152919996339093111806365516448909860200181141812901730291804970318157117899060097250606516606536839234983341962809281976455914081662297626979977620675030663473906537294353051860943853576621733489707923571753387190618596171232617915922661910856373122960582184162096858775370893895989638025694446764910655196831215070590943469458862719166754909799606058618974908368193795241092305342425349900313899976521169219169280069812560926333429477630571696119403811798944761172153263357107081275461962609741856273227322124368532092077588134325782454212056690388188182142626495069689327274116344500094251443875386593686034932488428240824657010789462839326043981788578735562380218569518893642782444376963073908780124049487942375090469507901384103298114343164795838001120055888034727502493302876746840358135393639186851681060321368614319334506886335194978582670690677904343235313039662284641548132177329833963103857178923961463020775669213608807634482647528214732543759844539832231622289796111417624589940436955316220139423701808136721010488131990845489321715737064367619780143412404316647317101306354592299555683146380101195568169454823686897396728166476564310716663243804176249329247921114734678643233563096578187379770256831678929754771606557838420735166977357194694019440219978237119421836867608796747344394586983650474801450887822983075735807615097381508912048833476190251548697251016836506815790010761487041036683580683162232188398341469860872971129648300777388569385087069234843555294187520052794114008128124726954742122029728756951054532084228940904051360879121848157005276166782219260916942535494874172959884113100637527778284753268125937744181666558708737736460328046428855547774426728905452522542397532173088512080475256441602013578452704271436149639969733381195043569332851351314830061781611936300108426629761043771869424209185103907401862070688123133854913720680279579620175327430819282266240907401644240195737509585568443506243821978499352322865049267294784367509142915715161730905451405223031047056433669233737718055712113817310157652857960987576703133896220855921885811748949454035981819362303936019914537575931381734043805213195668423936601075325914190842026594324280721625167528613450261025164396390648729613896907993572955934223668690377003492944672746963071889392758699262632635309284404542337981750731182609242927042048809646345799919501804967322504209022338012347621999141533582345147930303557662845859036259406321545875054278851500206004044423812746381132410371793610179214259194213129671932742631420094702364112960698360763527977883353907646063136385233289806296304287435675405481214585213423289655333620456971519155994219420730582081098652846751841577687958446633045275150435986121283457715562056697455237299191817512669729611821690576578518149249299435271624988393758620586229320399315833598510360354541877633996860269826948084034714695919265053189028328303244699167289643733491196870564842840323657673080113580579437670304668752488842679929108587250245992181404061507726139114787624367180820064682316933895809193091280930742633559476018596356168031954023100745594284742595893117433766624959741469964176287970321102267623496916574238223977590303094887431250221865242610718831765073088794768925414899799291423914353553848468570069325493447715038316127764552146196793523143892955298036911759238386294860619141074636707287251444053635449218156321770277269529943680676525466289178898354902615982484415603906872955606916088910011741690704475585337076211880379141219661933300139532457655450519147904719121799195693229177367637374445824883309879259989409659085094028024807675301582933089323114039992581842173542801854554189520122772363656250852966066753545117052661429730135102283279674574469284834378381772520770705854094627514237471545325765636223385058432235410630165640950953131466389015430318946233121237161885103043230547150814651926156218196962928405805613524884124843400685946607362569421327684420741672770531142813520652642322153565148317604398400011892655175854685731244435408575292769877110450409812431612537502655613595436830768816357687020933686259726347912320915197574600061711064570255264228183644660834869155962384467037835348482943309322612480336477559583033796683481979880720260898471899244300949550464908296794790692126820827975096858162715061958471010193629688800570211092439715512943586674353396370405256508825368390639200519158343493654928553344960647364226824990452965568999237981850747333527717390242590444431887476011896850639820076587640170033759506172635485148803269085526269418859222858573924150733991590282796991792963338855407430658949284615214460448098229764076043448571905315499080885084354826477085973433737692657539908425745883318186191879905313014202356699506715443041374383396886463719710067241972522469655280310365919190357806409699039696264348927550187782742764967948261477464700374041992505599973604524602563161670266356780559678136144445486379188709124773147745643531396450294228076155100356452606427143139976046515306793587718431590192641656954463382122354511593705426185547324341798481623151779029467879971368831544859954986860349555748740379043870636742529678667342106949192507241882149822587520599265794877235422861634777236590508346528998220331217765743496386440084774374292659319818870950863736204473714016519473749227031674704673220590650525207193927954862017527031628691954878580700571698816462538592431146824650778440281486187289268441137828911275629624568054327347872909736424542386056582420203773270030908671001704800483655936610424387512413723206492517607044113610304669245266000368296522871571407346841815705008993650086715669707530092762590058496702641808993315470317634227730826704850059085284903496120107247930685718375832308365460074771924961431542521454713156305319687763000734522974943807456261997081113664474982071326890502715584600572801613574649989229845449078675842086867122184639391654183487288370254540598935301818918114179438027300683767708257915027928176233193500123608372200148177596470346942156345697942924387901315753540921894797189422512198006425139931244234715284684324604279179418095162927604663843518854269571152218871413500107450624719117527328137164585646823695047856007758481153209704688719189378895324731368504188726818449148824703194756391781670469979717795471857222532465371430840877051976005644914701715674431834285301838504636508591512724870872611279508705243978785392572227590938677384656131002860932337986956930325726356003333045833674079807618813366597905900239899819248533620046124535359253529266582626002416797503710439980653443781231614016279205661633852192182469201241504738096634113618145632340965240192277654849001749172458736893650315623677046750947002215439444601549750373982030900799212235600486841268802847384025932605705833042168979910208485586451810514848961771549966808224252959657589130867377040896822693305327361141996054949874651879764840548995835828386733808183925364950622561465290479141640965963868290417773493670071184611466285150836632411689711582458671305402992739257201834938284843639369162205056620599713643889835062616875457434856924004372221583323073849010800446663359830211856473209410913649389343015189287326281601886995416825254124433074451806512505507111235987050087617673332977609542672799141960576855250637611047447049210834469858801632138456372272631275111553049323225708983071180562544782370391682622413849346550734056434393342838641238165013778394406564914677437104133969646041262119571577942762592293693691783092633700484121254684947692124328997235267099175719064514174801401740215117060566791807692239375702034601785708119594980777149980126891809396983775680144620415119265386476947213153022939009484381117181666395991879455742554915573822053126063052559618673080721336501385584112324325007717295410530123064446638505976129620426640227449919530463643219426959872439530213805938637778711835633187810609981386159017997525433140483643031833905674669514321723874645921818706070140396542862331056347086237772014807168358880321276564275845539397819591710860068698006502006299452299533206932844844017564143161129875703185188416494912191997020109272390404275155484038704014507478646413002717139637822729914644270460645884255706162173753139092098546693474801382236392387770768342618222496419007207014469338796285075250141570154231325189775832691482050093971512471823676913145214181888264700575235650060155499855047880619063291270781665566832941220690967411768076601072953597506754102232899357726848895726994493755470745451259082035252044599530314881013446767509256757341821811998363220415735751332633632058084436572369472575616878175162938707382346117078130309482684454558930478993285459350652308721481890471421311724230340331979473681821122360819870159737371116992831343817593502819151673064543012730645875657498679502067879980333980757291157468558495819206304248108567129638234399679621480129919039495648463561530433907352224140131448705753037834643680414035149456778770408956048519491719575728278913689228993377669796716047678181681617875128107572089610375736313491674865778970539037990865026014719668246633578750925515893844035103882469230635546784226137287638828829130523609539583746690682796219660037220991828242259486106288119429374351791820743011887687372025334332922874059486228995433931798816901032385916360048445848077679040706493343802965951883155937798300783086735452797871441431029048943972252985638490725002396246780600634949242763627311760113778861852934849770312015989692562003833434553122505479176595584458687446558692084286444599844104298113046184126480514618817496572819278931697259366591690344092385435231300456366365525364886925994657970703986298978538998945081044040300182209323758613734948619209862115103188649343365461706528524957184799091593590886380345471664367705567439527263638482964093919488188539563663685222260640812949393424526415317468261618174172487054442781975400330865645357093601112152153852001515936367302359862794020895105204454833683172669065087041150467351451748091427065694620118890724566622358582104997774056280053926913381395305865504824564143848905397746200429716166066203198567121237836812819589496885501042512368970543729108790927393018883877642438109033919067889454979574148256488265157765107431128013331313707160169843497994657187574902736796359695327756308046021962434313482730667889742604442097527564133585733018952808013037651427029073661130283139433394342438394707670875857761812683042057224546801229043289414132048081980927423464211633724535793662159500435454079276235664791650366092747551100976274314304777379826674230911803644215013605160993750328979250152947034609166238441311994604434240315098760298645044423560593978345638927065443783326467369356776194149100400158383438730169598169938152334057748244089940220771575925778373220064002634839487588855035786590483036896888135139139480856795487411060904096262171208540807542283204169523728106719369760978789417684990342024679798713023204692607535868912682692912301491594259527977407337204477008980366598727723312459621171162707922074304212661514831790066593844273124018698420657812467271109494802795256547541661382276591367126612846868712878723309845333613296319168952004705198358687911232258834219584546138543051041238969419504659673302276987197420065897859891504590162628699166330088476061542199861546267307798056304253259999468036226961812403526338218360809849735465233244331225868507958506467011693730758141664268048103775247793020810628837306463314450799508258136122256259538762420380446026763489804256512453430094689286381387687242007347129849019296878616263924436577713497092007691020828677826184260642952156770365838056837373348735415010919712954656544997141421269847736916926344055744639921927482054940445288637179677012192494151337878333144672929494032742955647861025360568930854380994436972190126344821371246251951262910325058205621829577662435689346058196022182084079207778317731776109328011806801178518283360403967118185200669778006985723844995795001439646554281958333909101745584161965053337056109304868917086901813874745060194715683696223511485917314820829124708583460446021394061774206367516909627149630463940184819222367025790749071990428501224438233359416705749854593421981225150498951778933457451641757213567496134915423420122336160329388485050896240548789646408182068882316661962998499172799066355906168659379640302710968327130767925770065150361972463930078461542066833151139286393811604833748373068787551523862846525706447075407830826965341875078325093710984406119579939182335382769249613326517178021710754451073672887492187748020294946280669089242354712133500588065195187623196737673905177575055570525744011974253271194073638521063272259185205603309249814782953384551237977724333706208922681189305839865218403903948596895633441237110773731529269542584411839898727765401987283731801778707774316520915210941757119706750975958687424359647435562564551449630616017310373017778508009236642664901294019589794521704182520550793206423369028888359045818304332230075025367537185264685526296517685981762396657417689098452612281436702771920650004570855296354178578186736685546238897618696903264528501775381384751757453865738192396111371490804742442878165107383046458970568468815700404325521125016744003207457130141035840456162581637648117577323836972420011561384039826364241521855981855450685896071666966523460526889830415761091025646304310577750851352094973611853492084706389956271895372356140194699698748254696343153973587265739204189428575811258752149366874637450077418823256783122168241226737709836249131787336299477104559548838580754689123962775374171774704414662761593718411358964208207189453526065369939045306859139801003339689122977368175906256406942781234239924597876146227047183786088809046378432419054630249143790821097534869843450923151306079725858033560546833881827679190512758651115950175903405144460118406315226932503698066330940116849753777191658550162922763433677206968493477621268974787273568887359003263416642296982252093536668337501289594271948626090316048817750940658221361651759445747683994760787069591777610876434348623882579293508220778318262900701672209828429344206719512784315790339865479494052241549194584761327575576557138230624340967125718232841120973272708354307171168005488838827145299388867709947308436694410104039208632449078461883121160489194258366239912694026382175556046426275674388326326785501382152488539873515852059504779144906844913963312123061177254514749031120060085440960904579717688058097893524457704086001689570886928959921816076236172910856508483735063035758574274518735004647070371159138691632669903031631357397214498004361854995769621827311949038334843997902515688893013730363657110843402403840180174399497995988597374744884540913709946343265050904623872142173117217627369518311657956215159662251502529924272650030155554577121563624286073087432606372164962796685188001531101883479408290391067087253092259304931694038329044795928513658012507304921852686439437987450141389658590980454843976631107527634351895945286012901542152472775086166630396557388263447474012065120161931046742278127861545899607896247691521372170518652176965592011163805014591465752458687369621837378370212374260962851778026694468969152052121460477590512601476278270281698929134435402248982396467480931565976887316801309395008189635753467769966131312624068058102289227405045362968264701169074856257902804204509160960970804993988598329026510557618448784232951488401847098848113511388115480110379304266867098670991450511548492085511499822069017560578682235215236282318691194222230462714668068240472211910407669645186666355330489189593115931238555534255702433026654132132841046037906683979259883288546681535463160596699329229908670685803496445266825846482910781785331279081844515596189208289854371621931044744752931036406121117395457067302586252128351687604160465164229777890900642417385355415439398768982209074599749846961104224897407138906630920729443237200793430001217833416185237418295296965699508750457266128896235865360077906534725824685618849375592297856239717990640172233976698460518065852907709710813027892122912954982138021418957566892807175729145638787780124223142963580957827433511475655297649119305565760972107611374702059949831731945000109005933056265750504022727572972508093915977173776292563635949428407492406726273010071177308236947252605570997521909376428125827857412144084313899428138277473355550934356765754928812446263803398484205726614027263196254855965086436586849247138409887542416288004256026121987427522654819676853203122030051752573034682136497298348361796112880387223026805773929321417595269046561655716429050559363785853894122769479505638849944325635381713206107192839861344902005373266948150112724540989830828573918059992922073472727510498336712635061155639188583210295461816498579040600939542125645886573813584751776953827408378173747364664407052611803720654862210945990382385468745293460947876103633331795487728248523783848285699686338122437006184737022046924237717912011363004228520248681236597427212180637497081965256300939215523710758410237855664307079805402907064696849438560628508124300826527377402549693032016061248462975821629432663494154840082921252150530244485159605231350389889240478209903745226596107740292314708981765099608388598423584220370006046204582502426004717955420131887799391365558046169091821049961899771969447975245186925170372369909130622169558662162142483720061704845486001451792928442433629356019036282699873147167313600462135745568067580377273968349301395290226644868103276802485818841897104738433802179757122431820456663566041977768335466447989124396654259128066947255059230275682994198136301708462678574963029051455128493437987141674877997277146850897736749906334310073619177990780645394023119897992148422840420478746303362476749951848791574061220862124152562578753590601369232323971189540330226277842483764657734776954287566429075544716624202059786507912248855828053374863445019956077729205764484590502469072720717187710115890471970731469192149244148944326815243318387757877330453986474208897670837066568552546422141597492841975525549704560489754145082045388705787193999350662275713305529619534071772175982589353867207331998305527722789372064643594593958416698093301627047050276583979708052137679677178602905812621266141271310844116964806110073454680681639280662428343397869880069700351073646424317889793055719276837164390900045834604633588023744383049341609219264101482481556475225226922391636815747849217659182714710806453393597895401307979273226165441928319920940445661267130557698299555164823384094470379105124447019812556807753558400475375996587540354456491019727483264595718214487105814494991363323586203601402339657197449381223646888727677178852653104553019801665289766443979985769545314126950869331084057096142704975021049216179483339634442751833446000774611948450163203436439483429366367058396602520500857486460706049527648233063320899403647950665648840744759986634779745999009162155249893351978535878203720192550602487179200887196148884033577783071032693252134233841806559544603897157780883056603956388981540751040097534395258210009836182896560228950029050328301684526893080996099435406495106594280864642032377040553121472909342106238167699884963926148799141224181685370193742600620338558585512613696101172412339688564142180720384300710123984957612993444830291128052408830641790343090898782926740746810981798889069916826553361555162621142330239426251530184108798390496534197951952962183276608004221437425874412626222579860262643750979158964022987037885307326322006899156054181010812867066877743328641548645803281372462308240561147262818388818557883180504221888345781516996800275444137657213252856451683288332419417831252011161877564047681572248696305117220011802114430777720330866576413269686429682436210394634861040867135645584458270626073433833042342790902814449793858474876586724116661939446950999608610527309129239244237956293043575625234568096541166389574755042264069306978122159045639902402279652469931455871284976267281065549992074439459755009730093264907888113311255376930173790321376349484338160166022128410552535647003476339308648630074197941048504593318163094557723200565122837634643585174558730460696233613351589436622846641083485774968239301570671074816576596077520571947327342217879645145349259983841239496554988454033339870037713255428074693762916751607191410329069445699631763295489392782536884161812846424536183329497187133492629097665585431962887037664805263484348495632400734053251783613423050056970895665228563334470694779986046344991271237904530297683329589373746156642523731861432912626203389233789589582027181733927897610212857281105173132524521430289924124531193658724700901100618893029748274727380961322204880314739137176780584925381296558015714590408835300148788226636547281043252367192260468700866886246672577615455872017561655063516094694487183972005846024028216748804089983038599503247895663316085782495078825380476669451008691925629861774898699820035852600184473878966778643420074061538918326443029965309358797017862428681941285572795153947094011182902399619072496791205459254441976795535930735021797702885525013743869237074159111501594581950829256013719711661065815882979942104791480923811647343299826418304747317097190595122534157449012647495813983279682166202081589152301599491447345895937721153438928576004910251578628947401217823103388820884494762635012675463102457540255552036432758249802196015553334500811168765145457539501740638250224353151059747801789396542507288094831921115840665486158977658036325768877118157786230436987185548644601568322831749327784156246599367253741017928322260125165778849760155047731587856863670732422985253428239964649850364133233143859294508477967229114109064273400784431344687771826722216669063579237564725540040746259004978750954240642544702059816856458500343454879551000743192534453503296739719559641558511698379776190979477214233719882443558894495800052871889251875635259195155856225869021911416655594064403975142826257566085019218682221146817763608592811738393164881778996699678680608431326211053193366878257568210023204888240876760655550454833904839837319983155674550822598141160822127635864692770535296891278277416155757678920191769454915754258097520198508580389059109282349706782403493245028548419564598903652817223707255695269336216056615165029960927045717840616078394361213535158616083466382479504681918885667108707599206987412148042051941352300250277387377142220477748161462879318762475444805566160765299136556403754702422920814286924359975731806061410890099270694161321134226625446390543651987724364821841314043835000008158481053189639809265745892927496052490662215549103227857366907824706833748024857884881660207386857551524232093246348296155465096004595136004900941055347074619050356274157360263979925539237954463153076454661971444603484900522463365318489443051434523432777491500062801075942049911162925942200819035676743666294848798685265940087308713016010164148360405519787512767284083333272606412321700315322434606220118915339352736998571288938838040867559543584376180620754266290199391798292155016428143502901528535953031826648345012443628026363529503839630961810716829604528284590048371117617310894925748135340814368586115791227822175833897968168931360391976058150607491548024798638636400620851844810371917042082607036341355003824590231790563918465037745400786292623257204551306970732423643087535448595021524346837292182269566791076704153472533709580635171521281256738993957243497002836076751935793192053179210145766440104864716998069166668747209256794926543057394517747335541406181395122568305606736941431160654575842174921301493449140775614531022554527541683563901062972084806011217916798157702114814473747516294084130902732323950304491352205890762393614085628655198520182146548672563218217425301971318042968861660072101070612853535738470586251622388196817186647986731483856607849266288101417090775414142323586308510938744769742208206740049131344002326838545426072527010777096057150782664294688429264030564161203948453498371412068436589332453827209400834950551491146335954375046211200825146998850409301064952575285837485337525613112625996470601711767720352952312454176457385012489246249695426776936749230112502217672471918556524858352360441381115991219722032737798897139267120949944905430930056175458007445315901186281526681521766685439063910411546787332292324099511342005677050740888731948138042353765500208246344890995520602898476023814767371956193641609333432816199802131045888593387633796919362913081076183595413338343133621534008628386586621728516768346716621883957571606460923649865559720951787981068850919761752144260547825690439190988199627956548688215935020135139025033557612721775592019503273579423298194311131993133092337742534440202914311634073738480993558754913051196320767219082932271175241315660422922819753193533334865331342758883601445611576025470538107800065238081022011756283279884530281997512040785124837375398933405276418548857353434883375949187487152231846985473936327294033925947830512959272372733487373097778486922812444660872605112779298648342842748002456270181875746435295465174591469695537253110031458828242803645070019302451443682042480222603173673367631753990674884414705006152813602351111972202205411554322918946654161482763845128177766113345217150639002739185770118964982399459427485178159232909528124263141051322872339504328712709259017836018188781352962572334941993534375883348255011805278763533687332753112276885410986867749792868354059733825034436225156080212810572829503347179529099348277307918200955913748955818979061821689775793618606740921964692204897758229286639261669839646770325785956767768801333293927145773401136859856983971938729991878582953398629121727668719011598192716056122434940161926993671026839939983937422110355324526200589678822232995057985201844707102834185953802308392706017676837151324872651375681100497661504998857059065829549488399121554950188984163526927906734192271173678670676133734427273891592285774042092172702187668175291693951016715199781423031323246775436435267685854689320498218703228723483114536743454297963768639561989234476525460645099267361314153306409950919997892239740648108765044266629662831542897666845588280005574075749296238087439479482017338399865475838197897293260084902221475267108850732068862693251107334952567730489172115599064346543493942494359337795033649933781712946372319728913240238670589488065177438148355831123367971998871058819600657177362124201673707182220839828172073247497138995991380107445062766152940966591919620798721036166194778050933731276854599876049099501320200277427437734835764843367310383722531426296949303883090152950472900506143070403681803581950992562314428231169529483989572199613458655034779768267244668854282064139290375243749107252608579410177471462426211662947170416544464221725252071201175892153349679361107233514239440657054864170723961617768845427893069821133287706148662323464368796413346834270940350997877116931350882611510483921269205376585600882867711901566675644048748654182270854819641101605297423190897768786069019213051631324768050048399031209388003866349074159311905994980448390950970077206344170466816770237121890542600289732026589797436850178528359560397377243922042166302425140016811089864769128320718299843323946655498200662376988383111215420110776015457919079240587947019180461098710889521103779646047258464161048479041730142187624767358297159467657621065279014103127530489368370730564965017759757826822245504424077578225385739112141653244236394666114433246228762839345975795456763893538953175056748707984875001487318954998753212607631843466755138352299975190227020340339091878612432098738456495969128563070920258236980813966889581730816968252426219481271975561466959408347668847235152265538478122394481343438989377770908633820517223655319376229039220826794016423772809640107923780104017826671089217081180343748359882288889909754620533280158807312759164009823395999088352669539209732622196207314363574343543837796472100629157409201043448526481532135441794712985434549254196283584163648501716821846942375473240409338403021493645839987164850958095773628149593394726483415649086772792359084516506455918732500958641953909109631665061442685395813597269580062886638979679738392964424088312128416827073770189481653529997055955022743241478085068632897812365026947144794871453900965738581579017739626736029105311622259251777385212358791972731616619334186735336184732080169147343617554121392501892675916222093846312785135492992752341085236547727703513433839150774361490811907825647881360945015907881151081696482566194445666416854471456783742759650441384513193501614137314213886314962178914253946215812273652024385450225798357735217955111922819689163994786898414967611821756181950973751955681873885759108222985386179777631555629799759932929298829759163284116076715618345332726839575585880047796530956748878324733518729217335623426672325667065398447735005351787299178470159805353655762052127416399352140494396680936902510223075056179834320620441933438645964502828737297340774465705286086798806348574646396582457440828284588454868508960265936971551136045580081485212734907667575849145608249153539861233173697823022700476389456367010015593712487964265700665574336101808859333782389142988025424185326128183832557436876381318481966144877753684125780462307145594893197135283891854297305009782453911036844317634740701077622146898363731170272264300027177869880144375589785309773658259699404196403495667306570592671946196255333162478035211590002296507278179764459236769167668795487632124804348615023969599731202485174700454920244341937088378738304839661026801493980880262718624109918157073500707614832960259699096413951143789774484299559954106953464140035943005227847385887294276064783154911352716676735900042436651714430810227159799930811282426667125263530595971001432022860458656159989907837817526271252505473861575373636862908448188719598348138813728816859391764714938900773780245144571413525086770579143701504183752792216299544013174141502131256137740165206083155153620525810913896757562539154445609311582570275671883657938994443157925468059735633178353456599927081986344952380914874036242818906921674838018186343674455853951810619136078840774491396182304132579932665643974843945815823297216877900497914662821672072479973392139312287342659309146188840093859192975754472422271622018040845364050138628385933474094591799359353794403657798464098952221005414908261419575777529701168173897626709165657516723813404779419931058381970620931600917084285010204396150191150172968287943542777151920837119046434000556553827687185020337964057641835166543202459215776365600458495537689180682283360046903402916763711430367989970853071957910954564004193221064562497596485273801351072040869755450636417658682726770829107227770688782126956216873253639412710987263786792312168133267156521841632314085937549101768150258303035342607129198012454494491014401630655454470808143211020370222790961291773920298740372948179451305291869682581737171311049333772820560214460987929589149695241225345936451206724966500419608642721206270141926706247987268790061516063426470406318134422603392633720423298410327156816435703856825842344915800104409872559762826665463178620371617192960774381632434235307790328299450652833327713175637324257577762265504480120548443233667489430722292275215510463127735825085105014703579899767356448392900219865446812047556148992213619062200434596606047430759447074988542711514184943520302916228765213443432351747170588765615238766964765375671755502161635623086159406622957040365244047371130844487377812757098691955312443010043123610848118552302283385296478370510480337700851091629989348888970243171565461360541332854963467272631148084472977306382659955265509472911594046549107045057779471584040813924504777135692090311203203586627393210752741791479888211086487548040081509573581863296074251250061139084002481117173243738270276787620568696611191702631964663690638054695401633008472557928073632757481097890364603303367628729246895096675849645680388028031126138359665528043489012077645262107856356394691191104410308394178581500172286919050803779211241894336347156533707549333754608991384282393033385940720222760002096171157978968635828183515916211464866159063589490775604543018883728384682176385203673735296316398884695076142713770058667463065142618770735263491802362808969321805331912717095825214265895474231239263976350018147606102208252334198765349933157897701755890664171569575159805948899995514901504047539927662216168551708178544089208763448960217268800982545035618312669248507652463594028989487504514101196879582935749880054626863554799230490002370998091353111572763631401671486317777390661375570905287826017221612360021879740523840008030670516014861888173649075803100527037645596708698976142766760027761035826865718012033089500990610677569965339790665516507948110868459686114565245229763779819492470739714249490490990863889063631037119831615422654277539079507543064433806817009078838212333630027625852936469107511605893736120375977147639994716572621174288292587239592128944725548152817298803338557931908941910622494538131187504102754337406459566736946132663015346766594698182127438128585586802412801973041313162704171744596370644117540223142607323068944871881121888043715859690839145264189753307506728047125395837151354003867913900277126338302415552466361354897051406712029530288296690509277767492261046716705509647981182396912434317512450450016584575963494182368343839558150233901217748747423973459678246484456485984265584040488492042579133270345784442371991693746268641870863057646039267053094403359735545622126818040856197636619621226126129308020177810730331580803512594154840375187522398637966345384288993407256714294486177105182004773007143290704184249978915938868577010907005791664696268311000981638079759387238141246195684498635930006347727077195812409954882341097988305246933437168562394819404640145950032100366612604476484707053467028798399229310655574172487231895459067685905584480262868858717640222541431720600377487663254978193438154523339519615210697918602924674050682256705451021707164123829922523343025677886088927900772970673498592808699121455863872211974710957505731346805859663144116767907695009615432685644451822870854947741851332862876394460330470753624902368432055822688623066954573238462738491828357803872208419808596562270775306400954713819569767753415012829183910774555377873532817788328765447626418552213539271415486148000923672757960759298613153039500998390326144994483164184144910565343640609100210483898457676798160897636200251400210722366307302792812753399842514272508107443150223297892797314439207704435760559652423137235317167096021152098474648735403810006814845010430133452806056431550097529545614955319739117325432338017511136883332585488538985192043310033747684630351956804683169042029510900098393839197482180763644892443067934769881492195596617427611623851660625922796091595996980643001163570200170197138533107514353518994172871662002758509643846510814870835529268260138470168892534045024652625942775287508584588554028171670975879483006633835042591330283207253416773638376187852998449758399426344909089978344305658956585198575436652211717978256483456969664017395438358623176228667697036039412159311690252270543652421593133518444564166742427244284184315800413279831551561128009099490220717693810523740602381500930142910566207947013623626957174500809149963625489744198012690497007226682476862658089040942286373201241735186202916241933632697573960138059810235892932161425302786054105197289790860687215231452097376294296172376017953465844286744144866612858418895805550716326969555738576790921814045186847275294035887895516188477964311244251007382844914150082561644045104080281456804941055403866148315317255459583876501823293315979598298711120402079620592766597573645754092501373909467142984252238520969277546597342805352721280872738402709456775922183089810787243776646718752267730385470254417023682923673432725980836595273653197470017146817744044126651140917473305225469554840498991461741320808851695223004436781088653324903324922410837603393713395244342664425771695387466007373137000216062252078058148583432778245121432087324835168450706934733498944849909632565048834818260692268471751673307158785548911800413228912270010176899083835134688203289090965138093737640799923631110435134046149953314499964291494597854918340064495974280208549991868274495588037376108982405959403317119367816600567207872325436126631814386072633236619215113656866695757237184982226562783451382976383776303798842850980521387241721266947179142386365012517982475836762580837362056233862362087209579691492454790118361237276889215336595939146938689484413348360600463558163627632325545829421004420928590012242245751509129764464443864809191937688112247459569929748253824611214444970450351195232823948150873268719131242542826609924108404600001900312698155798155312805178877445128412060841301017385504621791285536568228988191421200799416363078874719974314314075248451850207576376548264709723480611166114774629368107926392549414235690702459773443628960576489839424515869160390510631341906880242492297353616913755104300813757351363846410135087204131211026529122070761686155548737602775549839990707345802404203163605901636712050561488250354628105110390241238619910175998337539012829232319106500082699011602533345357113988346043115346100702810558758840244002909607503695314621141164678712764015682474077327748610257641647220115703727693466596561383914109966258326918050392326880613061357041863249226728501829198156850512303734901655045422158756132131356830386424999388622278058599762905218134017045089636984947522766503450401893631906781033780687372394956190623821410203116628503018319337680312174610320995570883427769322051097325838726092675054058564881404288097988655911914460194856339381481445111338499703270718846821684806071976181454720000381844505735466081572150098515766359774834978233311524943253262564682443866972889181520082662095476318245704412478656721612075632797568333159641650059881814843443137319678608680808483767899795611274163947767112165081902637119320630789113709656783463255907526509660652937562083903222838268822040394957498688547885140530671802392234678562773484836857032590154542452319026566484415231778615979066055473730454322447628983369646899509151630418947320425558102654174078618954268167805624374323465468896165519885513558636351251497058863258454276144904251532652546027091863934964416259949122409920671125230188596794847524277349531336784998063449367207475772984297365637048445456824481867606277434969005237455567550747296097508648177027320709080585112451869954000267037973606113415141500417357799591689468290856803485613644156801377138040683174169865572625962012279104039920485110210347230342593760321644120909019184587530821370815409221920379524841180351685417755161202400498732850071006861267210883665075870805277957860115216449073102334534357284460289820459108385072876554782040644320559654351189606125031240506699855950339073591102922052202690354263001606565287806895234749594361556206861499115722508016700144789164199153548868044442304530536374491130995006114609424556718956967630348336387252266611830370231210302962732969733717260652567380651171360102250186421017012835470062239728389111767622928508717005148646891394194242162029620689132215525299462898366479501676948694633422563439608306501082945368937467176787091310824857577694518791562851959302807137921184500226739621279884537961781354902799510185119139064168629964044234457147523068304411301621718635198654478765625842452158909849259927272036264525487260607047877425842604156543209571160968155332545616825908455293504389233020559840586134172984466592595744080496811072706994145868334704945894985104066002024611759941949870640978573484921569856870353846009765928735736109335022467364671491880651799251000411594128101614760156297566120550761760336974420541689618856053626999387618913555183970304745836068552830638697566630475681094080483358748027982397123692596630003905807608962582329286373724871419840514418180969444584473957346089372664503157913889569162013613220959397351113046787481008077046410549064210994576162859360969126285961390104192743363253692773727258037552519007443057846195262203946364357393356184484425294073384329691202296092465206311716238972050538376138685048932206741939254933062585805624850978718288560881354464783057469923268736581664187692918613833950756032950197244141558392508417346667779264030935335846438887488278104350720180270057185670799187779538368375569649359431425989643759914538683955667900373597672461840353695851965882362651290998779909569831359455367816920985872154852915245663086447877131283992414954399250153903105027639902580187727191283649673099042269550452259932285056630687387293795238331717571684902362086902364872579967348442820636577777595940081315737538826309291919866965263196632687789256678181051593898383871399781028527547708159718450363121064148330895589285883013835416519945323609319278177788707864988122002638709493122493096795717742531488664659117352681477392754161974636116691556497126293377599887416424298102365250855095910925842651212971470916076072952911588301923791762403190722627237111246776988104591385479998863977585084236047060261446723764644639902487338296397634774581121936159154586655578798317597764462488240538804654842608425175747101216090316545567767447116419374295822337934709394779652162730392854509177514672621668764348865272817688106553831432273734112307567177816031711388948899362992067531002160918905723259285677251223014313632134937353670716830354586843217767253217756887008201026160271075677112821687681372676803640048444603743662723219913583562262416292878311069570458054882798984083144078477987113716497599803058285897938018836131704470368798469894363051084284075868425260383257830298402073427263199910638846811894955530448970066124433299305913334026923934431716320148294020282535042463768200575847177419667355887624939517130078248412910209659372458863845350690248647616494677107802051662202938432540770096987706118092679643507138373901275117098801616031977781270086131366002999644456156006472799049310592575561895032339951437123138974848169181816969654390317184917789060796358227536219260283738659379397251223220576711779559783298616490912237272394576809498842417683675849030098050016282077626450961334120384486700540086561006168055520382160045834582001335346634889619273603026545321016118015985390060831987818462216597834631003286768989180714565401147852423940433825765704066060239956358818254699179615982564052720014285623071137289948952457995754327824231181549466466276464613136824274152459318806938865300353571044013200898899813843480258658359983512170805960568500888321125935264668336094483705714109896025129706068905768041553404467106800612796546344125790219258772013837103100213743069528257070845316578213262032620691290180392310959924177764816250608308613694884434947694026949733105890156269493027584247374995475125694529945950266290521208484863194156994552308213970698070072391149890808677519201975184215072211475818588988209250407837787940499006985729513378582237382663873869693980897533643794853101719442574351081247124024405853217320423386444109888644384249699012814019139286347540331153280399019018477809135768727800222606631109814036294658141686490737137657350619937008109587892789545125816763969238100182759238770304337007139663022645640855422271165467154558530264567622565602335837187857127816122552599380312110922664256705125607716567910941099855755589071568799547548765933761173657629458853982057276073213672856486738361759287241732711241425334920549555189568050830697499039860533659455579435307991903022103049720986308306756313130094521769996179742798875856543490744696654705076945425152510454733362381863754631669055369016074524512716945427148660753322157799500994244144814318416305333297991525295455614088014450538061971920972669800837867168642433496268352932587910995911980248003033264561405971849160062926923792719025611659237542301315159781343724107553460759888301314299526430562787184009128431926366752820282857127998887973828252484903177745510269550825308368329031758533216538453645628304026752172669367498379698838510559952023364704025665848255959463223195974117340921261518805633378162334811949705205442515206985748342221296433405515633026383402846516806894678712945024322395971053552733926413901110372658637862515974971811166131415068036973258438948248768645575173918742850466941407047266955709035128579858782857566586289277844776138401183858483113892897419031202068812237894101011365448690248687797227077577998980713694290000840272254593567392209377197029793909960600408396557671259471806091348571424810608728414935941863000509792444652136143890805761863138275666187800506993021522320413538155678742708477214247369961047907680208120487122102349262299163654133285808646982145792522943669430984713955620476823193151234592005544845066165653807076881789421304468926718562549008931993538824596350317691367400661080264209010373807164935321084879329290508662796203960946963587637759217546496041361020921860176685975127363082293163789820541931513777174987808547539592139945754776104670578987520734134061679769862603038544527404091559157116485032407911894215147506601688433676724550701900606901413749094282400414505151039956221013454815807976685852768306959028207281066679263715816125179358102040703572264169651333966644054285220513390060785263186664832465023131262826118875737543821751865794250605942619839911654529785829813589277516329725706786312281553008599038787681673000770787615341746517554330358967655898456986077617391622281448131703698502438153967912980320252300475937223803663462887490031855950516159752892826321964532077831598193872889995589350441001914025675275067699045914599497504135624883181623992469693513222687784638725369334698983788086435908062880202845329877943623004106057769660253136186481023113397173311915082925885004608856749401576079234189452164221913390291918531189793325766522173483805849330910447309702787962102272741967600020630120964067503920131985146931430030350670627383790165915076901320204195991075505199012762196688562382709958931704867629428219199010007057347129758262361144149008603579342239397962863530391850445086421471528861118698877695248900888036874468123629127849303766646231290338948788866628263565764521029720698437770447667121682678388500811303448973058067395370625258178840765530687095306422678085180879845421062745664092387670397971760896137681061082362413195246342302214076936602992174667292526438979845289141226647649131977612105272251270729557555156945628682750250234425468389579380676041690810903488903836453260424753570473902149165062494546634543130498935079867290474019912712355450793978036482066152504654733149571971188135440488232062861164257585157253755231623592977572959689504027995940352471656473108198349404865955233442961982178995294053821197766462077453512354768989886355354483470828963747470695748370141723238420226349230477295488779977752292517332470675262068695661113268581663884662246877673090720917163188734738201555297849241417109658890845850410298143714787551122413337737678843496985831588067004542039002931827869749182208742349967095297766859956713811659323776120590846471229324843144156539443340143833071844715056309785727830176694645592053974775917453004422936911694040715170448707267164365927419987258646600179059492499028460713675526690581982183292778843345603344016004783411272276432372612159714261714033206004085502514940721102763051005000607181940126435403244502246320468463779848856718696341148917348029365907322048748359683898804944448406920340721299623728372898799960427056721380023315724325470997657886594344199281709791242058035720909511527477165881762307039015713427576953730137478605907091008462850210031789455762119896372039679902143647700595249102502003215232569871047111941827126921296663948319096081992851053492143300532471804784553907231313119482299249386215226021915151988983271910830665018433778090497467363128122083722365455893615721013017800202693462584296222700185325227057143562185088247713969363474345158688533041051578285792822793058400690838046486411845884162955194808312219885467678683465686096876159185629223814032507947169879425034899834893814840959763726156868450893927743614487072775955885540347501555483067748063338286936415238488816068469943285426470738790317629038179457077619498405414622840317264468535531675612994355104644975340435384455201536319337778989547585586264697699502947310641680995468359531399259039488368759885314346734767587668559175396446611005244924093235533204617999817518727057509886088279483588995639398196163582192875345879556946728423733221562524309940158711139714573132400998080445954010154962706162376810620335783281215008147195513437596808551002059409351146807533250971242725434476493817731969878832142427332319070079284035435874290074047857974633338371305849802665746919705197964662350389514207229389883136801681548375434351087481820645734746057874750929783884034842251261806653109441525756599771301649979014467607300331427934809574801755676934586056339178556213854507537988136939572345593799646387769825495569800124187249815086795032466956208908180403685070982240215378917619664985284916021673924156840099933222160187298837891946272653701560324931276741168911514844129900330870310106430772879688753043392073882941401226494400177061261010889387443912784752408459124075230107627323601410023924309736045738853815476122890393252362076016569030511365111225028287858580510802134924641265424658340079224784174247867732292223826312549179929207188624738868493550072274352061456087319402835737299812305437143302814982533036887165285811354054119564770631788156434106402471714001827421658757868036001088657333902783084853298940034568927857182027779490988369459394981453396653155623448051624312547746758011478128184506182733451360596433369510503607627883340882939586639946449875784439526625381449280618746603851924224491269439463374160301014553384351344386665044879166567789882813646433780639753436098751953937608440337906731494194427162179711096962356096535960519713275499755370332344710820304100180320105277166200081833569417687968372627565679210352122290302839158205081031089005970256263682278161226222332153680348112053024879971678342006010072302033284059420036619299529823375886668494739802727555199742012712844454292679995666772513763805903330101055879583890696455437513764784454852598882528982401180530571367056194802815975130395086580352350954076440135759110923584662862636690108214523779253287085245677210357828260216338603035812983543093466226221784313230941524290270336900158813300500134978482775850643535642142403073992260575230836221280026952242821643015189122578382612171645021696977934017614556171363801607921355247668773213729917677189394372138335442657519125912345666582212635823359603433661137662992750415967832804528667362654811200145632401211375257614520736686789800403052121358686812584341188921792479003921852848625310344542932797762852448147073051125609450264068815579022805323933577636878989779960165645103970179864877614174278722271759792842556951784595461035172039327338241848689025102260164671084186269349427573360685100274159483749624520206405007773865542425679014492305021672470598024599875623932257788771718613104811372731984664070491882795555585587259874525787098410586331189014582039041183597320341142496822826802633397514761703151640819688043393864381625582102138911551571404244641220292177517256552491071767464316160629428296095267855678406435988422429154544275637282227828871193301695638746266796854303981184536766318895579478761023635007845716661239992404531152776684514925497821965287384410591321923632519476349805512923057119073402701349108697265189320160322997581262264866905204427272889598160557297090077778883781177081168828418886358888034823157682430912106526636112458118191299249945182514890864923448156851131224355997602392241612108005132454065867983373076411971585382480727226698918257871360321511011966185162149819398252930890280092040158680703698074098492853256098786399425666411124821142757894878900335945923723089992369128313805052093189508874064185780805745057701557430379762542018114912867884302738224665286718719068974125923682382826901796698722025168522430645597961196312927915378209565451977330326327287625365466118383696344932272085779353688477051470711251952873793450243320461912860751759916134420601735684168466168245600705457795877925165733352761852795405243488366839225252543030714911800436509375187720403656107745604015974413500438224526765565567741468727461714096034206777250973765536081019567209735780502979358094199113869712786225767868137053404917465923717006362747062286440306305028575214001385740224363245426809008822745364756029888897129266392187309643997294366521988644000662592129263762944898698472906833078544424368662579037113798723129954450999947307642000283888581510024702496667423828615457007775359503363865770085531068787250023993392355263321796787945292766380585150787335803127230499779346417470544387173511497923023414923240407048041150824219998256425644586611277473782221178853920142531087443693916429996306651627220714445260448578363379463970034912227710929901723316952346322422796083565415199360435436564489678756927098338483100178689593402656197299630732223020401858043561213212583794653609885986967327412294007922138999436639144861326803711482489562196165684487327071233598864982151846272020775949716838701656584788804659062594049913069679628664535819000308463634804408973737146700126056097790122167717830069079107107683368418059732524559021050960924184919523406083291071866251401733865206283194858111727440502427373189443468879150995138600025019281532192696146539568941541515048445454188937676939151825551787646090121921674193735127704712710166307323241070657569262572904892833308812729740946534619692759652470980146320222188007060864963740446974857495245902362822810796940571215793674372952853633465543195421069535382681673536100520063408391574431775899943387116761920051880686204093998544316979420383196956895306346908379777270517881652771506218800037552583854121982825720251429899572182694520478274213371446247807313790575905955381361751350429498149147100508527312049357750231720749502531862102167066017010654217805688565492848061568769685086883741551142651571867572142989051923649205604030020688435072654226335455816477375262038573315436243175125847547472522546960728211644859570983537588724732999356285091648903578186008867961013639109269598367327030945237030686844972138262719556413777353423130740437653728226908051028133531065860849721293276213006250150674698637068177991722081666708339450938811355876983229566861374590252365769942049369482101474759824136208126487527790173919851947135190371557996702854146018824855412483818414118054058532478540986931970750709729963757139863157557697292710447076546097173093090681709337628174795499552815747601570679362651635084081356495502921167430993658546388550926394727594341339849162348552131721624594086968669275216748846812199728590607332617107692144430147674391105463539254189631563864570736973480673166615158788901458870555088204022050525216176926987227980555131935289824302775280289286205639169687406929341571344276807558852994329676480940142983865259575435866449266579801645077165870291249844525446577962287036728124350414102266135939083016116006028099433835400616110792489994567925225346392741286940176209462927627974731087152186395608697776666130721139190605064573159762915883242661370845577383828506841460788266108038885416580858484780591559670974899181371638212724540749075421720714788299402660727848741677869313428064104674627893379750607669775549633129442165187644795860560158704846248963018010599383564541781832690279205056269813044287876181662347833103622118643054085113561323365781040128499402816360809906702265360648447912976929425301412133469626958120229422278753931430480064621644558203857041788323139899828533536862929254652334946283050995773928110239627842735173113577918079196990409646266091685252132467051114443610312542638234218859786264420494367566768667938454306574006421358524731454469625858866578851916774281619917002411161093589621090597349413825274592043305212019151834625553218548640828443605654369267809559174467782214029336483867788123532809731694718173121802339413156757831949022849763842604735526272993604185777733361088734254277570471336014687452708564819985897663613571035505562822043348537032946246243500082475429641787943858119825612665530940263133473417055914990863244962423560264291294289507567251476593723469216831888090700090360845738400841665790084545386356176170148557439908229335677738772864627715670329550749651724148375521776005624026545714209560034982555291064160953062374081653369127631089002085479963159997299966293314813712840080581019454484063884308882139237992263757037445653965638430420323205271930848798137204803903697169069300058475127396170423697249517100628473954727257151929745743383300242537788337772015352366378203666387607378138843917644497133188433865965883585708395715726340552487427554121746614643039916534453843933302961079839701878001694281759551856110643165591655978721797146394378563967825373031663626516273905468425280006806374878171166610243815466727679408427534392983481845857559530836096618129951875930650860095298547972275583902297037323821151418026602933036300897868635231153954818386206150395132182970093849750343480716148275827993537321781912879995728423076890748090732451763855459257462772875538025458184599266239151568543292495945134422517420112515103459864871104863680274895149883518019833873594588520753696216257646290480141831964371921881046564265045916181999221041740965531788909907107012203129311422884509665226278525511002679558245569203478254178341397838316105087170735633962723895680273814571408734760652765063505550461024656993291122218414555744102185027919054720602488408108426411368299259100643770137567886320051546131041395070740179085920520881998790571465379249930122024780589527789616928826372780149070250269475803432702987031942663307852180615174735856941958469354760603528564415042631541874469066354989471058737327468673387238951201860651024122685234754734663607677480865713455602319999346778387989987050588831905493568716206534252224031913408601596443684774439448435578586440112771032127208417621785253458636983047870175927766049289619820211924567758043533377087526404069548487983869489485472161897887257382892538241305178480966539208358006824188038272938627103174525764749250870504241910478415678731900063067887712741721653342077217284165524596811161694270355828671743192533782258020613600056904849845618154657165936640054645663226034965753550052894586312090592227208547284508296287883952337634916375825187811144218436767064824002656984596067593859562946127136701196131303154368364777399200706860548321139268261282276940267288232059526080335523310054316448988543658408934166091751107082789065444160224420605624404078673537681255074104863246924938940958286899952668618018470814425413683284415058094723447943085267864529925589082486579023480270850656527467580799616644457366581921113457779681236545289709961706253961738833052975860092436970208888689798330263820431616517589637098506995055636855212287299745842938283473261687041662953800212989038523693679306427087408560865912096298946077947673921803689651667671320109002393822879275718647569866469100839155212008928787425405149774459049382046551257868973919251537012808658596526167675826124873006889853362973114568950327959186524564667068009280120805894857031430299240544258292949448565680039060473727753428581134684261539193117845283029039334172664661197689156377141489812913831447889720180877695895526960102619209678316515129045581507315649329792254756573374214640863410453209023143630115358826553474120703449037495328463922586382067715834533997174639258720149993525764207177719362528862906598343795844037989452993417599847454860144842382836345860643353664284318392430801670995768257180201622757560953989196621682251466202158258221467285285562877840050012502855685851772425542154554284350835521372279948554879750101524828023524453039736051785291374497453787989006465379887911573287512679073125824947812384510156435254174084038275300500987084593172085777032694318937818154952216813770564403942986453767762683252071023675816534681093032405099255081269643971189468695232131383782854496310417608955747219677656087968710973402578312437644515306908830319889119245739418326591211748710513750013378177991329591603852922779042156799450038464443869954395629803094766059044398054956551265034387307205115365903837625597073004503702122926686321311162096718755924611853953200755408385293065859949626648222766267541546486247427253096222048511813121968639400175873828371418704419961474349718689464483231915227123363093928716738282428574109473437118562242167699935358008951465152321584855268936143971255367087360254047480393206770072453990848333909374867911455494998540640787907158511226772599469907566787658853344735892149297976717650966374512131256162209220699301088333260736054616403174445333516442645605140679728918036954786132885691085863939873483285957626564800380201548356396334796451609750628524823185775122131692609346727128597364222840166152074772045500207318278565280635481876684709241475932380056540417980444788184127558368387963269677470932809562822697596262223294866365575285410167292360295654648191702174152004426709311925715281640543740754323429936745480563653556125235033359591633854263167697102358643955584800834905759832730053822067822589007642888095630194873909835743377652080351242217789454097577379466721883763377965309887585117617563150247380990605319051195254499786642906910193059587018783038570945667950457575551983713043527792602327716391341508853182797391678281444893801353610225876538494438461920145226301636472977849566541892030230049051709918351263761499764975253707587255248031107586835553838705749965517711495029964926670563418692398451148782140030073205787005524751485716184181227621418751092822942055859674041960840438207061327054622020374736751619841332436616840813545381611759420478555339361838292478886121919034826590595330475405762256257445775415010778499803577778452857185432430365251975180572632578354195537369435519980831924966925431222352772452427042792538618713076691311637375001376954639001292995218470280068213201052111529175332996752359922287609344022785353968928847210210435844150530406744209256686307045741752550198030940305470003127671702005840732267766047696305647620699968258827398010186604229144631015913825193000375567040048414156614997635426780248185850927702216711414466477457783696533263541388097008184757913123498147083673559053930608180011978583612910266201421903994431804017281141713211773640841427427373723013476260686792104193015422063178850222441572343656123478250846575227599145896179280748443271312586184124821724576322242500331403446497027807135084334502257756967427935583225630418294207305538647411326277762793607291034158473768524646818988890992027836510318086092001134054023721465748127545779212602477700801332495225385767991895824171756492688724423457033741861970329214478045632456029753474037510574537301123310793186093226058314905279834956402635617030770283495024490604257315724213559890941852529585116646173024782582232990394824561322645081987653195118133781858577081749160283746557610620702062804630874888600014154516026541838770068888826615598920007877114386773396196915029267228640860101863572845887693872804178931170686573825645239949916680094715579385138820205822415008376200906159790357095713644951268491860179226399494272311944774228091276849009109576424845909745252937863342671437453770789349069023279436774933798469729091128702259914292578130032003681876810481772749394366340287227267641347331527417036452059070847822789171059360175131175182499712978180101029617910131108169955737948405269996667087618632951831481623522076249613528203990700791555962044376439491730827811298341425493151023955103395946611527239565377455139115966821282686036255571091001698653062278489021658925389693096167291140281801706348483947297470467104809521890387885381735026404620320451505769424752649752014629938543140895475937394608187539444984154696904796642328654082457412881588297301581690205088794962202661021751163710570153255223203435941180593261405449548466228977543467791750067658851110589006792769902566481347331714040308522388892944714791337953918544975480279574331707199719633861129476368191756427946035841562969670870927864546933199824704282362417500184426202728132729547338053639610198501437885477939801037235157571097714895879487693728924205887922753290054509635971676907742706526632818862573528322722303785607147625771986091092683422252731520446522515106348730625234903224797407203606092435567757011078804187886788399620765183907001693970846822975764491773949568435587128760905368496800599310383903789690066165779070679852095650256512929291939054561380298864613190036249237821460838287382790435851491771573194768544033032502887014013572312769495158162333845690792908570744644283589606395487698018167347281928615691368898411997638032302309776954533063512478443157966183731784556855615781455958088834469548676218520330445528245832979742381294980389652365187122019542033323420322236346090570180062009868756393376072714428602140480741828769236913584789329578522246429473882268435424805757237059739090867442581934080150475692862091786157184852447099893961645235194612928726730447135537890582254497988165610006429059664112510735355583078228132074347995421376169638749931224633927841764348805443790327329239301214987638846510262660888592812240828918727487999686879366158576420911911513908752957745968809478656202541136263942096157951358316799646462208667292645313818262912279183005090783879379206691956443836692832162357151337417389422509059795680826288541602911516233961585962196782946673287114299583994496231735461363748449748231635421145349922624061279078883050956996620215122940349766837413504453873222918612937380908849629294464642013266739626412851448023267731994624908687832630256302394208862094522180366501522384284830409316781847187537952879085543213851361027821529714933168031828745266263747218989870595963276869905181135245053425687735164431793649291610303825508065647822071650297948787648653995008763886861109392332530106803910546018330200221008186084076017323203750826061277290574284773863670741606466640725598504508949767832751247253347842589451566135572320871378198717772972737457620286751506720474459202435036080912061218287923471608528808041759952623536031725433379242590143472214163372082506233974524713463329557209997700635344835679917503905648611268779795947173186905087781759269690323817843442085392800271414187884340907099920915003822744299637083673389071315628946947276276891050601542287602386492379578627798832895559165457067532394893188511720810094437937538152636697515878611667113744112440153380618039621371766684715538245617220231813501821870452276852152706487945232181878157996938104195455244823667695972183017459009205829298472978431082850346589976736079653629873889883015884398340623031576583931648907136816536994728033797253135182672342057802036252824645457689692845023270944187224134501462546429277413517499660665706279372210534922382864381040169701548642163223604763372755925098418507672553264179273182171079066580689651449398319913208152910881800095645023981689837371739703239836608331361222119468598567884094555203629062091183111444303065982911911787025105725830410189248453650198080424010518751346336309438834104892990768478781116435834118989595650373393882577799878168592372946629591322174685807569130149341796341028408976139947848149283021850896639921291740788781380645999151158427154617369241409752812551551133621764373559334434572911640554679312018756325318762755814036850984820441201366465857453058420022717015113687965445243107170273215891256314521614832110143265719874498545685373661639986258894408772199415995685458945706546557985831117693797205523768200815194396529113496158018605070677217164717544713184727156438631437149665129191001856245193163684542309699215978073093922742634191739898584776883878436124465047071961556375552842132620632182126074723339263054900042991935628762451448494381018975416535198278035488313021471488924362319172627338883629810202054404776871761380634194695259120950020970039320898047572966407495939489041764535675959995309610578015335040109855171895480463345139458019725189475888023156287763864009264920472452634586906303816834239703926397159044900572072625936368271731063415445323640201975818517518878807109573550079917637041458090006463798666390230576413619106483350072714150242048298486796434615497766425669067509141878161108033412226162712524906649567282698305963627184040522715631638677463505941767661841925822785715861565951710850551663633882481718745926364361478725621687798314808890152517361957598953565434227287123746614799221045072539325778081627449269211652618859627846788851579451007467555500755481425088013410703829531779774950419057766713296022385358684963075797990361712853044317979446929868549529101128033705141211349887669784672782204564818390077306640584202001715873993129346753074680665554313854084386307935880638916652508804587896783248826966237113370227451611443718627059835540567957441132562834189363106469331501793280510974642466218052680793275029657611639021640221982416593019333309402801745897019486487281147289150429170478112140018220589898395543244317195740775021164232442289902843974696600802162805171672560079743727404796491160765936745324362487052031584241882597753445738979995537470403313242567540602128608092395705578353329169054518207050941136285051006140361879250984814821864469083684923914345529948455451276508092298799229221979516323409496001524915086291928078723549891296809035397738123175707213731401548840247859541885369257456920173921141079788929941986843908134402448049890498639686266302442361556726504676066237347064456089753438830642223564707474830262993078254114369803196429329483515705993483983104059922181677771703932275056498143369137652117541399709921447143106851452905629577631969893469268420306223317497297079199735152748089523778372679859291627327968983393807673178803718958708205817629942330803496823249218438925338383704196421694741000037375747516672451125484614208204605972970300763392815343622639574204988697507405744627625297881331147366727712756186420479222201373057863879265046708900115401152313157554074676210426413446593065256345305524067564295995597889422749102448249108999744271683383760278686959556861332121252696746626668675911744731368431780517171103962214548283325717403653690727692630812553223371670786547698337790873376514042634125982222598392175484139617621147782492947558273313271171190972658425373233386448205971152708615962676773178170346502799203263514757790201092364280315827420822497279607369359354664188323270685101501596839871813640912821267187467094753851197099098808711215473280055578957848923293752902791803040946724573028842176916532676530169149957086511025013595284931038132568432246946619728133420568566927534580152692226259505413794172742153171825235116423750737265796689845433158049585661530479646694306181947170812319765369685737567429408141695404382348769781544001273755006753520448458842611325224370425149528601751142880439298670407428373264252083388618982205272388805874147919544224546067807866309455067078374210022556900165611594814818753658564877655139320886432543421115541196291006431319004207229362357280402614376570193819269453530950389668771622026853617646033326361213984321650647228382017239935455828629499047405857547653867763505129857401787557939871143982201603922523190545402696535902691063173174222300062772230463648601296083803642576538355104124846138353599175055613979742771161340121032048511486362710002020561506401512235986572239489508243380719038022485933256525562117990199538443048764173473124765326668855292281496614655517531483118415578472757557145311010187259679502574541084144860105658554413114362461062037804241729224571232608317219425446315760501130900958957405482837632379143323607254124900534958785088701222484680466671977232288023124653775285569382881877831893360227066960131771205833912695694616960368600580825141922092183196532584203352348384412450348703655303251992817761944593668687164964802140744892475252661228260453500225927185653223232003407753762296134338518320624019343365559452243583084535305650032524517306531018486772269486992304510290196620811356386852504734997245653307404133414654865496040946021768173961085545572766413677416036152095093906710040762366821304898739399103458959526800958945388991877202164841293076750446388861648387818710486460488285708070068205128706554330303985152094530265167198046045420359745085796647507448525940070347991289847510562080906357161703134670838760499050384179648900074431478074245511719883436930941430178886160508892899338452925741306954098826029391567689964168336573939374614997480135783409884422946913952583374838728388431324131444414457655819895072205721097825001556024163741842287797717802988525032894524497130139758487516838677893560095266900847540274896955906362881684092988369927625981572164210716694061433670851990549842503974420733795715167819810009305822080991922437169463596405856351311135224469230108852362546712873877639450662655353114656797201064161266069126999857029118293258359460130105961981003795929625911898395545099413769622585187279899894179906945812733707280082559145321910135480107082459773855815338747907407332833673140028470479315091877798686084795882410006126366571938519788374013657097525872801215062799049795266928847298676809201228801646130516058506358778979365566410292425084793332521199292063582426370586991293104442314522482085720170606831539141636856544129100899240224651347533496658662031271701887302422241925214608948841871374760466912451944186247123212803393952393688861836127566908753114655748207373527505750188373202547144968446255451725822784544354061769952071515918014640138190075040362546308286434827913960903489714650892837115488480128039892669306429935826146624278569969849208467743323387149397320546829135156500540400974011414624452567343715746859000949761046616767286048230760069756489426893090053302475287528264859221958644325966901018555055783362493095838080716527561170102579615630787167598616660532990697798364057477412308170911130575418951949836138961860908557933498358488724363943963880503416452352261847186385119420037904600072953348804084614649499542203421895230042666799146128637181207255612019656183150947210843190933040256991490251461845691162494825250385728539270212189567335190913924899101984465990450357381388561028685903280019324030699909977767452406629359543083387429644912048984868552092725291181234762480428529139480449986588270433319562354267559846396343753421348404761963190840292580053878236603438641033024009522667645411889019288575677456949698148235184115067703701771866058468506248597456241473951509227183432185952227684241199489767435356947359800290388141432897969273861754715213727863481324281016202955069144999472240758852476398881437240257971167062646898208634986327579171415207298035417285515609328563434892847548962934455393745266043137454352758482161441122467740330166532046965548861545055535343445075490356980497306878055766596573584592011139326977305201577553350604604828510786488260095844166204271218493519588742041202500604430971756038600180149838601734371430758975923925840370340594776870785353913254243135095375271189800815214612580896866385079991201329019185479237165411135406426686921349596336379510064896253843524278953726744532063398654571162770202856322876331697604939479537939207222703411843637632121695227606124095336137041639160717064075271117660051962391268892409895438836244449613724070392003467094188802464263718439383713015221768088830988908494682740629776723056220824645293481707005136956418592349487819721264069706353141536748186641559233174303672995288289724137292359747947294777917431122149104209687151318644987361079345530251325330434765375406394737500572857406561282620024852657476103143584107511512528916079087082477168680541155865710909917357720518668088965430582699908381404744869225324841246050450149891976729084986701301562516378632186862197858874209229465679458397119944016801115057223354008810267708004774011455905310306515667047606419795143971060484207597473307062655808320030331696757896454500652206531539115243037748612558024973685251741001834776759520805610046679046083558320903871412986260096374854007228218205845441174813107915240106733291555664137105941066520268950758928395907579005797604531806404274368814685558062625388253276123333277137856761706030062219338577729097689095270172625973232514698845181950394515193318775299620816922336823288927667811619423140355593362354869790385580540183762790910399562927505978579456683125742117147463443099837611458155495226506821716003021224776203535930486007413426851593591992594131090471030604894963953221854635504798184639160013243817994362350213600960312723425370914815673727209841771450357898478645771894616298560790527183595416649509415235478148764361230489599373566983870377706575489304126041212264269086567612108921396408385357520913699553481604554942014040840803026121533054596129737214898805392889420455222614613968603073210470966312991476109397033974248879764634126674245800013208725567567646275348987696821261424681732133973767432944884516821430095161285226702364133785649879453335736555037756274581528981614000846400283234195021595583897003176341830054905005053145946576359944125148123295828116855052670921456491999169742682820884808229501684488643813333503775017596715613271963698150028561789985574501820024720027914785893197826719797531138400252686077803212309716570527767076723943406224210381272827841337441656339237354954022077281210771425504010055593337758261441551803440625429566823671500582128136780590063148003709190590701122034503233263933471567574367659430859807436702800804593392219603971461899824242857421324017188048689218575693195148105116218600592885420382024948585226968964929209144965391176887942528803098744225562377212581990135090935893451522941746902795231571296720473629784352054132802804888676839696491723949533557895816541228771457220157789296755936472879104386912695793337489616598725792490249995644270751330972635186722381392047828724370140347005687300651411893612334881556186787131953830283166883146867223610589730883925044960377125278923822917918447780534967442447800246734020915765744895812737337706244483144105217956068104620839780381331878499215852118445416215372605977670686854614204119258245962722554075766639854638485740418045953598069307820194925754506678192650288336069647026079482537237598622520168044125184610868410480526738005069509201263083723840678091688083483110549044431386927170607362394146758412327898211005440593480722827047029508004814050919093454220554839914285203787525568923249305903842116893779756328777215542637190748908484797643665169058638941688327946171381204491873804917529601374156370843136245587952790923388371517646787183027984119714509357541452358957603211500066948322155782301435649071163589963508717981804880376721618300169836763532538811655747605260066007521955647562902995358792910414774106864475433134940008807368975265371366401552107373706654944448585066508116101286948673198050272175838054453521978431400659487994061889963555648210783873820025545340856392362918803509399660549850329743354163127605733202654880364877213904267145441250839801339629021610483567478230593814877984581458595657369148689028801561613684029172135457851282049634260061134027916010305578591426917129695163673612061016589144408519569813536209829899159541285151984864689894200568630677589255377316490082566892863026574031571535295970421743450934547689054924131559390882854479274459458518090671569228714667198033239951283292137818997806598412596270318838767501176359274346968791189102390306040249011622662416256874802563347864815709021334794864683070272564423584346549115245518411204486061912381439945161792069815774558938982823963574917024898463650979871314974093221862643781412876493412496478690995617370182906947663314025556053374060273122361169585575034212566025660134781017568903132140809841590277131449003502780532180791657825048545453927131020544824978081028748921955160852568462070283476806643472386459493308259549276219967141812019950880151058244348713202503330313169044046560635399585475231285410252209757944138901889537441159048426605360544197390150146945067339913229493015254787507297392134272595209855663627873287500762979040436221619565351011680693334394867923092755172239633632385566524656222323347246462501548833080437453467112665729604579534701665334891369592472976060627711647656999499650024666608591003545221039503690579308396066001751717911863611966722102400038294346965471976627140116486737160930691480395971376293371272258007731327835048331516368816450589678847159727718034641553654086105762625667993304431946844032902140055883064602999595967141241802346351995746871104976280910563053353992199918203099666084757301903411118228702174847380420948066106271968286117203349933736311526860669771603176979846515903650118880489455755735012924895716982250230520421451361062957201876427466193409658636485018258439593777330579127546815248814189420703376255368872772005662972733265987455366688095556355897525705752924799607210291863474765207922755587402214458379641298330032211706675493031345476431934485014271422892430953528751192051202583250114904016060312394092254512650647604815672888381972560840800323605933280304292289982353312485630301065009795559075332297953524081701179070282228993894169960599336693746935073071580299211918540748600490583512816040624619288583418081464205294294829086499120171632837313350847659029331900412480410923413482018262843481969960204049981765395668533900650179883219845185883508240255055667697878027896104834456538887065438020497238877658425236470155740227779699215917570987162644469196268718682279116779445073996693893613727461339581906375770051510662842961735709218008293782127263833919970815263555843384253442873475456735666572774201213415649644930875955738298726331556755934209472114428026620728092882953862157788616414721111468826759173024379349496590384094482985551509918172040129999348719991268738201783840766179925991955633086304615920991077728638538094151518264706196200209141783147728922903631177106510572356937418848918034366285331852268002637245794984427814195900367690090724348502916009305230798878051832779366606255190919990323479196655033599141869486383697682658438761323126743626923537466591878122904850882441920858907905569311060778519129623638415289540027617405405648808060650980314276942871465943288886466064631063559510339676502294094508350000912069823300209813696029053115199200037239812387053782826946924918095982096437029520646854223335807743982207506785465734371034187779764616517972126868337694197208774748134192540790659613321008763394187417637755555551207892347984539738396072229125496971532019023216869123038123284732197094913625346041413289404513350498776550635294130628564005994983497269527422316301040197233579787207909664847147608785028725846812135397266726769638730144859593208656814825473994143191471295909614130632325522519026946764987861563175556209684389189997380509812244045407829866691465245032720678480096316765002919251638783362632875297369857294735304368141523689575121151762238432850282931900092606770108455784651768645428856959434462477035869867084337411253907302755840814702795828093357230102794531189095126537802579314040794785734806463464833891255123879095552036112473247755669326892057561972876252352977012210453972303853402911097639202890861715496374198085666532069217907002799816576617424554506346453698718925044131130373758889418651307890135936650396766802549175246060938853977340976282163941361779135763357711690876592336739666260394282396104123080293675715980612009255691074106664274803948618162335482613265117299696561668692819148651831511263366853308667054219962901665258620546445664375918433502580084810904056893785365986716973580534084835693179171542313317188983907977561507939870300428021883056503738395513197357591086599809762794348167027389234383610442717563422231786195779441866110453747093550539196517556621090050325198253236727202245636042744540698585839779029765590443865462473278648217025337440519187479154141779201192792525584417929429458467251370813884840791510450051153339144714106298263871501151161524295150320361402252402698541478782514912223348944212038606469867620365898200734658465144003222014232095166282732595895570255229150548445345130403917915930983968555561061455844600959321815944835570366729406998311688056090538591363659080120995449422639455245194815279505906132553327543666605389212943581799832727762696230070890901079800979710772498508404880025516706296800147081545388323909126218820315157374414389442931703520760773482957391359685626160395035581737494022423972894874266754258815732957438227862870978303163876840855794768931606388057464715301412106772245072420559092792387580278603739502333133588570900599472152521928254760488990624836186572406404338466868210832031090170042101338091692223647905126230048197817483401399971890951903917668502980202910322742107559041552949581490031506283573807854653285637479867951562068955016072630486392902424153894170082297112943925863628712063682983436699313488985698334382658537040356444100326577801130386978358657701265699397714403829016229886024059030335367081766777120514887666351876685219705035688479025451833930994365043156033024363026973648812920648145768103834591713914782314744168568907282833913229558171868249479683010673314553575474973696939159531838434287775334696558167402543281881525167936357686254854026101858993104659751610990139734773858744981407618806309429194748596934242669583238358720111874646988470003806408590250722271518813656657385063237775222621863306401787456369339720664845337786920792392048885265760395511674686009807979653514353511331479854408113595821287164637566850361525646182816671607768605318131035020476047882500911608158768573946295353306168901158946282698346548136792443965491415502117792261431589560425766352891438770721480442818778970245012479076431659634952231135373800945438732441601965749179196987106981192538682214128328578035048363732518742566684223800953192313901174231427551070304452600932217359907398159490136211483487209064192606263822921773615850921555841125802778739662126652588500226291411365615190869992397907393102689761090433114020633960789644273673304156289043342125417508064194584866182465442557012305292464434561013195269947886887373820162863345174928622988330449812841885030086058122883610189444243283726351462539156659833263030476172329047144807666054175753285176419153179995026512785352414184338486136571652593827424510621000895080209241446760209938006921155915499856893354714871745694451595697833841411250632293684862357663629537677193252472995371136674943571293947135607974444971131865427792176279628252332777165476087798777093903059333421353512074162109891408118658172350912994344246019374376357752288361142981789615674465121970762215705116474462891027531257505601398626995880715749811921924090190793639410244528697735124592987425410074148044761644099103776279893466615599530829268818972893412570968659566668316811005438324571598678171996192003271121092493120049473674188393266435741988779554006585755035352617850412902031438631488299059671818839829490915915008220855031152098399491473726700573477086867669314548610160823333903036886246291607328930646832423520567319522987765450447347944139849257562704476963834470466882407771027192908581034869288632726988278757326962883089735350073495022899235645690994788872898256223014077737208833385787651412804538681188285097757697506805222037102056359716973933476852506516646318548000999577734689969159113047288777921014558425248231109904771402586220402092008721501057157235990234308489248524794276754279470244009609485381084213253956095411236802829601802582426637955753012016802047671393782723808083615233798947265394262269045627696362698280992363378515401059921006412905977276800687620230210636183617664282592297488216662392738854692453350242000386005128042266696464877552785426301565450996037434706899048562292882180005873923502882468500307183558681925520251265572013291983381517088680834542449590425505935987205140115921342866251968948937123240170912415342343447583590096122059866725829937633022704792593204638751914799093603333220302265529740200775027182958268667129934876216791609175179136004684091233971573764897127379824945854717966626999486620361902113401792570385155872139900513946342397973581594549900598877129827695124235664909709950197314664368215165812408509266725847834271841304000748491805165589624015452530470272343333931815076367287306928124343386487349095302019169079262426837652877134878550162138369238572718428472402604591834586818955008465460881657206621792567489133353607732035798510126757162906835684677108333547275949379220371243281822310924222328200864383666401275859061378586167303202768182344764030025832457069803618623281080997610188578294409130203110134751736831848608610575306279024441046047077085948102848634265176299968095812277592236859899498199289697834395042792462937997505828560703173108751757144732302784625927978692685306992242791235475803572635991320465922237855011135476072244669291973696347542980663734320990156848416721266126072348439413298857310361301333560115802796067758411548323521245454131501494326154913201584728527580088162240015742259496722201507687400409990771426248022955569040603470063802580043852403395619199978918714179724514987954183327429952926500450661944944446941785711737588416487215713409806649231193651419397894585083021204005031251603729719942016102444246548520737452299164661342348092073355585933160796674032563475814753257100910935212317471928742876937447663376300571152436688916304728544257628623190407087274650995025252722387777244677068012243621105567626864645922212307077875456926388075292048600233345886757705048450831539751150589933025983169650824420562388623197967070302441158427617961970772098565317412890949004308270916772781131428962146332843751382700830692355943382774979016116352784365019735044551170625674426462907148815454930458124175970702235823721483897012645880177666376192037894072668282391687814656327019668312310142304614047683692873217410949643997894048988505550264272988784402358018390675335094132829334259817940383273501117211939709659881062507575116754278730552910003629050600108168100156109016813397690438934981079984430798726373251327479778573779647948553293438606636106872094296751028188242315377947772319522042472228995361753354496171880916401902242626125608265146136963515993970140716001565243700179894747677482604925150245583666563627884440870041651367466552795681137109721959556495050130539709457313918371599866820002848164786427899261298082620989796258918385469570245958137648019530322883897944351385326299745390585281990814880361059413735634797612402618479990537017521962645879419327493108783409433890401002603465300503789650760986797348817881525402203668689477952650574300789406101307112723317171460102180397800332993519652131797311986965647691243205170350027614893058840568416543464795043536700614201633898537378994604665151731427301116525540501443626337147795470287059749976788179780600908214993505591798589262741050435050234573754764784330009459367503409697740437533339951286938344993628208422675056262478164775943115091560690234764618526639244385935454246988660542640442627853533507477621703733490697405349649528304149639564140914798791028584116920632501813006141934421149529452643228726521458519129646840881696066207296675361211858749063049156251545931246192028493904220968009663668610514045834632497870480890167698700283546323888581178249642075912868631600503468769324311094558991798941071578903807725226921611842653973557202895409970117081781263320006452363974999360673276633338278707506711348455003226810088349747138658905533325697227212979883749639868628931878558708970178945651355511520745604545090611259990999094024029955008572741916493764879941744094582672477098644208808099908031580469505119149146777587071033267998760104759972981667577083082168773960470383035463996216295726526803355090537222666881189469232573658862315944343316430825301749920682442059465875504185123224762069538853544271738746277671809884178596767149773310984723873045455546108556988812070920688620744273630504561697626367866225583211722241453050792216907346776654310129174447248931654643773474769616205403395106137644708193144930262825708403577278164896287056479065798875600823048372394810074838997011058582162748367783738605770883271456458689676139910343434783536128338759033114552703403138442778552909627805097240257791226688087101374245525837593277568390560420296920941859346570417361032035835566120086244314340219420478424789376570510552459307536836262252402818666050781542142134850264592760313552247394545417559976842260729575068581542979352186980220601024166861018553696521921064753206162721110398579084707414654102079658707373451222137811122911846834591618100821621135317851434865442381925968384689036941936277017703895342954549972621287431178214606857561790202368916419152088528481693222488728250546446318234152478637151715651444481767030978593836550014273774531077122623001522178162712448292772376797359242132434401464940691998924479921626893408016719560998328358796969575252770436578213768629851917539886013291261406047320740017578360435545712048745308341367210779130652215386228289244969420340385252680574882855536305360313288435833928621359360896777868877767606974510325120161919866938102444534572454871884443211745400201347581754478359466536738442968591657173832094869630730900878168239347074061793206310438772316857648802288619333571826659251285115149078648265841026893412797228347309557061871164407381104507505054613423454042384552634049895314962815895866761998969207362891955715768628055060842562130681778515996396434926917948208019564551769194998872981054801889837040520223331665199926024543422060033151215708589212533998624583679090432480431637460128746533996231846380006008857354894919128299659601761953744437280794333903814944800017470032839742270616344018692020759919989662072286314363498617076170336819089992286701395405232543781173767080154666910749619410397802901664878520538374154576754178934992946838739884651116553666947812908870708683198042226943254417047316842992460736369677883509797478313668090050624145185854942798461061848304315014054688892230070278701009445517079879988999402242125045925485329777952862909769873829650646687598849716227335092329152321881084121198845196635002949671913315491679884206542273086711287309647087432354489710290739675463641216440867547340282647285394578223217880083514448509937187172286421016058228021742246287524077389547749989842745789270049970826041270250239458976233908390067551230147260284098227502061222138336318780182907128405957747058486984925800102498394481876752378479615838559143496633430157796485541681664106917146911266106948957208918377729333820791474943723467355841203843746989592357141965926094573593526344918876187875612689671391679096155657402650264727546092585322478071151080281165780778526362785813440113343862677872052103794049679403953306510286806346915087897780583406168002166659397488784175143689527503046244466306397864400575263222662065194699747365150410090247801870040450225471479431593842796953486211572274034264229532931378927463057730227336165859864964960733105631974488288040342682116301742680383460314181441479582753706484927727189046290541222900732211687344965049246859549072372028385724478380594327212629892710877335433014760035791173212577837527156248758990024317056209713626902476112697396107097581638857346271353457410881446875711640958477088550234909639254815131600854286260444621425862855672428470241788333794038614868413139491320408270714089009280958310830501334459564093591033510579788485569199440108568938357140990703908157655399090766801785183089003186007609798625269802872102054746424794095794075508991978900590776774204574213859543565660758516814322769317706490656918267200728015946427799458108074342160556474429111125065184829282717452626435277501354400509806936088951816901090446900751665109494979969042465427833833033770134202162433247727138398782639287809826877325460549599231975531099483572799673894464918207780463852672258235464454734398304749771322156907075996158536981227101132719893157132604616190235570814211398121585326939122314953591596455188525466793206236706119006424098837082662107334834085257017787420994347745443523302544732502828029293534817472114947775017433542326684201357951564711959325099532118352063355200160165407548583961129839279763260073537466144920479269053735596808380974879510463367276576375053824206776073094289004721597806622838013427447531872276461077022039221523128938009104974444629867821148670184100409539484515056105217361071466764493031885070237018961300564759948932247593892836698529070974039215654950003953153730659078771647273501979330854736965354606875736009516724400665520180695579685334440019042507714818643387953809760989473608188638134909483232227163655118449177077220592583358384777243897098158896170532973526168727662651119705589454144542953341175155355543205649156764735294215317695286887766024023843108971004615641839276324477637699174812053439529070892045588111737008141755449672215799007636339491994844975527198381421241323397976620030470893595381447047067784917141374390292049281614653335950880481913838093412323465582673113176212033040396915997866814513017743865655838741546801654526391809270898642975745828568678069487472591356522857258353162821025050118828435557115822688885005845873342188897172975682152368365232900959727989813427527558935692563374921692439184794983638338741928529937768944549130036257823181046655179112750529876288622601988479304321914974638380039942725974422633915587774303976020984396070456137056611278980178155221432910293555057609563726733189907828160925598932985358695164388224166393158476121938877862502033416723349525651642174297818169113799237538406565359673016989863918182578113832552559982194435378681932606098073911048574438742971442043834865037366244729607414093146786570414209044475339328993207800514636209342800252749823361025457280659037407859182453373400956548596666081156547969517540901418179843227197432827193010795636242124112480499609781951206391755483419883851738548919125389644387655072362972908127665086584297795503134910484485718903086744017126830640950335742534378095824152292560784341922288947897678428360730351348544626890599795710180329967837820670375998640676155197340418522749702534208769824535451854396524945466837381972365424703905166371785676776096815468485341605573193250400318527646912849146262269391878119067776374438189674270562203273566294358666930739517047909798922840525537723688589753798821251853678946296345742763430669140295786954379671448473802355788123261594792163820398513362349367232115994531478386438898356287882465131622664057722406911790180932627046171914728594795735526398607564396667836470867743868535183213254700912498912014888962532168778151011933853505309831390562642511022499475963615544918700668087079335504849288272852693496337861572636929868878367917983550749989684117528284742455909517569068289737703817980834296833044707962783563128161046729484904470330729116717466898834728799715393285292501555347542449403445814166484874201195738187627364802576054366807625647210341345166322979411811020449062481199769429711345238424200792214912423061361800066730094831281346421462882536445868811443875975595865647950349413080871325874021273614440887585843060163207262169611191981535380433174565157149734664873603146882326131469925187022545619161139605399578874097554468408544704184582297798741509659081161750466705932346013862716808150631123772874030301465681746014366047062061183372549845896309466110648232134490066488068496043369436159103806598887579567081073856008091938776955759627857471723697556121804660930398722269274998388686411735006180169936819182850713751591618524606799471575763481174779149633296068495455536585253327856218301612660446097474405455407138964956163140644523748170080471993055964474583151712305442766470384191908736582556861693110658779735408987535348759036608933992009325918189735914477805767911979455492831922638389855213509664966907708020209484386088902388479943277945457842950105525950125614373926733075174008766949961134365344662130555450600692956111316441760311892743065124229701912009126687279254895319134545544660821245289351675449305936703107470523813247132655435614053018774660188580727802293485336094145380351911137906261632136520744081656344027696873361561440361472117097249866409781866254776576714563082038932840983063312725300825942783386196095807396836015627214095941272705660037679581663849168421339214413249438200528909394302670558067383141731831680069893123108229118846988065777807456093735827242705602744627467647232478924235503568092331047237279328629297832849367346944924599068776261941411431593069398097271241403527863051513839494640941779311341558196418949590464708681928743322049718950942904305714214554061659658149400570076255479081382561180711134608465672685099397065196117109568641289426839315763867094231849541058229416651078204230242137179587218566368207780586681699297086487078936069566699688596282585840002635829466243559585268836557744411505208935088785398814557988515463857841585217444944177948677512295356986087257121016212298746446429708632926757186420423773817083046988067339432783727676882579421472583532800439350524766427626600809996692650876440488818821491388923358468524352151355104699637323956693995741832782325726459770316084724303409138307885931861885246189671388312493633687300753282989981120148668418556866504829511533965605259601360117120429547145458085957141605292686973920371333780449976742002160507783632212625698198612064812068551731178413295771363157794523459839579770977154093858812095358207465998822651626143654366002034771653831290565207351056500362030191781842528248819887034346427566953214629596959931313451016503765338776262217492699709809245203263642897394896395240168270502347914954077668261460329180055695269439465840599252029018854819095060570472493229120664074844701142402812135462524752176134200462928179957851733977456105636168314078650948468142034500148288880266850717512245521683078944660957196413068623050723391184592034203057532221629830521634507642080532886936683099574103497499303081090524541966296860026044210838983392256786659144543839616925249164423819933723145425839870156823125323125129455092001604731577307255124842999759975764066330646976591457581592921115614419502462594596747991870982855118998841537297508091658095136943489423114845839045062353240389834434537140762542831343550771587553430215570751333410977019112084975684467606060540560484552363503325433185610441230386314776273550560383366594752296842569230221518801283632371995988684291872240463556659577894618455534649584385590864249725308262859571418616870541253691341796177767257596009934843178172060266721050461949110221004618856254345421610480056856980077569379258474102373027874552025828040439236265520303181786407577012955642633894428588955317455801837480904150963852787138662032857468298091178142876403425399208830555143677103723488165918770985827876087327735705683224635533637574356902425315379097678038775782095095977907728076609144421061909220918754481915575542693958359762718461317645288080806915868256136652505550534341925804547175863629159078150930672006107963545225546005058661255142097890098526548181816107617376928181378207638559386910848995715945199736504044977197224297038200513122687716395727149708387429004648694997517572497091709684705024668631432704677567520694243483502747138769218420252407251203355480758707454038625304290902679792278275680186509268271682365950003993317806892150058698312712146763705314480939965405430432239628292096511988399086936480005776434896100576935895825864276397159947376953066413011623226007066988080213375687666682867467148837490309740747714018597595565908888246908950950528351310582314365675815499470578705408462985703541869435002959497761637214224007594397016799987164907386647621414974657987358226310692833495466847658169867323893662312515335037513633290403818036475827157553582051602450530572855771389249447744842845424935949623929968892735925507906656810417462975664534419077987324165011706931702280496327213282727893749699583588318259764425641026650417815854835064394592128228550329794657369736376787814812423020926822952345396106700380817188311814473691300469604556744944109052858865049466412699138392983256969130898043448981473979562496050818660066965457891632258065086229438388843435145669544288975816103235091945895527829229662498383298147628039808156497814058433918594726035953476212034090514622593190279871115885701251769454764001314861756720180719363890743065481346943612769591368060389410177242837766493118523132571096726204053273416691535655725989667573124082577658165083734180002603200035123387645688653625526697253148946190320257521153753682685471870995336425502049286900754847808628136878829459993189480741697309525827089494189916615787131961697863558628513738180942780536996572817106353967271564159643065386248182668075872631443450789595338324192000938569715806506562596298154316543031782534839194422074209407090454425607097726396808245206424390936039754607126038863011487458106334102616539489365648503874108774308509445883118837079667252252128604532683532975665360540252632296298717346116394554691279769544351820644954986468591377912848683680314592174828019269336062108007449716026888793904705041515004916489584753205952765384233604153641018649149316794700779265829093038113433214822137119591410827429449040831526032145726132607506448185685012488299266663391806941525432027934234089068576171118575090459208203200972499833883091155830739332165423191054866774661785915258617228731101760622484220656882503746915384894521412712738652356141604701783607829774693337905962210542369450391916211912776675372674042984647138796370465834287501180390494531382373551816001106457035981609456715414314980857004252542975627487048022857007000579105469769707625602051834968850915640931408892773203173354375447256909928674298475833190585996706531144575228096335485156810086117281639108470826784521354592480463311980872014546216269053250079854646112350107536601482532485037563039866216331389083351309928984235224627755726624537990866870053269917454466136806365488815725015399933368061238085454227328832449075557754288152030453361659767439217597701081672597306098945543888418847207967110187436638237554106749560367360185059897596109123204811053973565122406193985669189006470756310959690878261022084245801199527130234484795177795032736847691678084695868228427857997130530047068302684323350773296834871672860654261848618225946090598623663125646466619174879621204563353204405802519388303026745767667462703829426923698275145292099710351200645311557627159713348113309045960054920919952190489332297189241327426377960508657022838211013735623401571789490601090113709749287563332528795319483362133883132406386603120221047638197588848996685948454741280424686735964281249610023323427879224635339835519956361927744588322654338044014850761451547501484156777306395013091384802706359059267629395253792238397038630259148005951866396054087957174331676991703049453102460398511251251725626413320245393432875440969334430177614989339717359473373501366508147492363239861835502361440774501352529835389402972811298528440931832918961298677815858271646420327059356196392545687084894655069353885178382974919839752995521971310761825219260170250242883208124233583855574747443279860134828282409887606532125384314090413387357957743713349440021585453857850621221713624360412933479059658758532539860604511504010365741990199947659358788455512710005301441996709136633776858146807438060843533657126769606683139518619723092427903645421122867060877691905918318667746234332320040715876111964500316938365222763677973516822817738736117781321245552777226584037405160839501600989578398346826347626566411505909438124907531652983858060888226302398054002122656209825807870612239010224293922525055698989490054151908763007280716418809319464453597480185544842211969335978045806397989062482190610153073361874303292322971710388788869476441595768615064679070876022155348475226978819771933089510236081427341972921329656494999983936161378692489909170591133751318022379357394975007810327236912337558733937463592912026315750959953522363802353109735901905974455628567321020343726516149953496054617228884136510126483389301100912572835086179763971444157946190671501907547968886765535519308760185862297644063425113984273506015723627853794418147783930601110062304406303298495567156188794529037456829664882897627835609159439082222062328732286532307174055975646072617178314610170287815273455715072766355276058175834572852810397506632622095747127111469721729578405832857747272888324516533127027429685072698420908494477775296405124136846830445111346143566942462098202601502330579089240419351317028920460042311467259548319205061083328292791349756146964216825945367173866337526647072549608499839028908403284949754198793908875379113084030185366720382045474071462139397704246439329686626058953740266025368749854833443633884463017018923812142025256184064753746577809045915902130705158643514152852449328516851134893797735526440598487060099375091903633237455321954401833157191906049431255287111409489040617588487252393619290184180774786269132361827528098706874893655587891967496618694529711443000774580296072948784703517677925522857232421243015830802398211460649311025410042204142491232692017266139869850559962053277327495720314448958702080416445817316941977191036629223146320290570849420887201846664501681447893159692412575476277759855487235770174291159732644339538034322401569693085646629763689400466628657386954835671979454627266154742560892626580776616674373453161670327977432423068920404319131341483637540893779739650567886030896246569688267636054824803184821563604535620677156265502365253497637581781728259387445708401838559336496621325866412083738414269778455003190631537969357852649090446312514516865503192862781871030719822429461950961898746806729787707999376507575928226114530489726444691512140575896467513983400771927905330421179145930215693129591990247844508671518596119078320276372326638375316024314520171820636461635291571913872647891188425364522991561446968537617244877704499996929029147953811901854780972250123831529907616552935113097115824073593602441192883121287162512402010573040284683209268966510381431512530820243887246443271929577569550228971273492173251381798002227548898364637317955901246969074258647189655435189550787514123529761050666342563273905398216788490607698548178315502704350562659167435385451501238537566219720458306069702949081918797741835883558830123941133549812491826706334973091147016426637396811643347308754604341657517259234968104131292631894010028709431338018040719888537899753328762795077891901891256430285680542573752369773102850006447119591175935374112780544406976166014227144128047559135687397188122829470113641890548337420179251223490681678161308066818970371157937128586742646609516549306263030158893181282370213841775423127492050550875796246970290640206303886570914366459920879082546822947982474105477652531642897734197624938422429628003351524620694173740013017312465644180769301418604651741991624354175343061980730236291863470587326758021509579248966143413602352991750246127048639728138918830552031486585920300825496745754451186348243511964432742848661312899202994175020896392436822719354565290596358727102307848797117222573110091387901466847949892946944398069256715638806365115958398735486525716376077829609073714758798054835045063304117417476604915369494836374226467064055063758076417117215945256010241050752526564058244823838387432226720807281989713644264871843634053356434946158616218500478532629523822957449124424263571256956362743278981336588319407868016496964301868788423652350836272065515691139335826353558101053936063113891646092506289869782512950791287917867743341263899839406691758546383219744164924073729402741562461871054839011547694145706974710671319101796452313866665856820087459670023294364602293659816922141120723178263786370659250571774459599524937958563528082432411304887886809928640496957984025534051561070940866790971320776888969481111437733114046838209691274882119071665978489415197473739327298616967990089572332497454280656109308283183025661553247866875386018417388410681345096627713244533214741122044055486222554465583401381005955529454135497458589294224328737313550735774512287803848243056550440802328400060054729755310189085030997935222016145271927118146852879908638179339351957984652509027219571698140845528682957018213082505803850733436383740289828923593331850892922594269461408129827901149634860080210876847362165291791441721530323570169022728460818338310162874610895369810287570007313549473962840581467197881062858508350230871140574099006813438335313637876487172946984303344620369165983031828720664233574107855583458141450245314358130752732157604722081170048126108007887400490645189983210058253166377926658662274161120140376802046597292122358179424113934045795352438485110255713928225163834246491183845099833761763947524224959642999700866305358740415822485213772318325883058370526094346397933399598470075436376056958914905516366495425368080828373999411522644602932670619408586732821163255909597865027960407537441060389074392376964556575472667354083651724627531822166411496268382944555144226175170631895023908273352105938393960165000354736209686964013867887242193828724758145885736814466133163605891358922016706723018676716657726860074770080006242987098818176721957554072225466262604626680645970520909352581324598106522007964226597394871084600090226602177498130142029939557116173371207169602249094663679483443986907554151312672393906930654082142955801819950592255116454485273882210104961399751051638500975284277198591308721632640282118040835923640370666779202977561680822150493724497686238673755071097117672845743423579115260736786040176330183924667279091538132579421303505443446626604447456265965922574986636609214758237752563127702563230544075857873792200055452714547269961592509150003236735785412430412349342413153857836573119532714925775943969878720440751862291723778491629351024791728806207530260775153342237705807287480501055620156190233939749661518037185828825666189773103359018510216290510121559881844981258419212752483495643371996698306649434097320291976431903956642547495099262142755535093064812042367837094298739060641855831976393187692353411741549745804231041501769907226485538285688029274209530102970600098714429638708029137073634646795178831771798423156948235539019456661054272574293526048546508445894662489973834122485064565020873391869955607267358260627177704305734815066400842971280011858863636423368518531155851687423753588709031536996032919238770994479332443690701615927787219189439294056399717858374364508097616983862511911621146796411560377124968420428675806425255332568306258326460384647294040679752484765085085881934601011919864080984489617395226135583048712098252502982608593755719165581314359550957598074915095184654485201378321620367767274530419856963644372667556879245621299159850267325669200246417683941478540707903206099859489125797014201572428911290445427301955336658023414710691165882566265544879106445402885291002468431114388145110062711464933941504326206774407879059174334033326574368251595958376716287512243863954471076511528480925805074073699578467102525042372973798010535966044743096495570204711998814184866975598716896669400628351768276297906192569301753117809335574263722253659538430778488491859797429909869992464984137580432605746117428581427243558139382871399973278250710843377505067142492851763709639783201777229639886494767938068566243056054549428843179737289505136903367990090932977786670563514172261060088045737773834418963011699446623425036316159115751372105794157181449976930695009246446477308128897334246399461560518950524911643692082943419990320996124544113711683330255614821973428912387619742515236637354523241008628218887339176368141599767818326867792504564212960566307184262364006555730876815369944351365581309889165221861141798221859976220764618194694061718799787972639696616429945777566185321606626865656619625626406758473551494406111446950448865302665008249471396954237088496249649264246924957344413077400996764701940423524108862335205336651483473158410033314684343684830508910231451711374106707650407686188984882569986448617362617694140622775346251595345713025335304485273896696344973707975726985926069930693455045213330658139808955572122316167253636193648356665920347627303931121142332193848766436867891022799461520190076128267596987264309120616405186644021886072054298217898422576350910205208651930243912224896422597613103692078870060523232594851726211253824271967123310807490414700973958331993033608215418309519776446549013530581164420501058721930661299988970348626682141814867962317377338159669396098007231429928206793500160259611450095021960014952367630642152606625143642560964038350895578038961897511946566993234564327093951213516271865170195332609771887506675589096491790576480981026753627603143951814205300622393135738964266251596183714587586146580990524808732517209746962267091777851043239374399378754189484112517190379577883238717983115309628169134006426132852036300180332005069601908340164604974235100443940903936485203357089075949776599014101924310477234648552289030236543127879394458762415083640900402598418572475574673515604406284191916531133863844392733234853896108923006569259503845511747888298640446326313443168277017098321611394528279769280215830049196804738960124135353392306585442694062030797498150606746504039583874635911947790042114998444401128911664125412060041461952837985862958001693457690566876164617693423502768403622691753953663205685947211201157881961637333406155140632297722242766422240628605971271010321667374687296910238033732025327585688095319903931711674809529110602782018011775524346135303068872676136345244040439614131163087699893338366890999235393030129628100078636424958674185878321988812408664601534242388269731212148888250523746889874720509559450555042013138066285486217284839752794768456698624704878386722837023716726049810308954236500334771736195719388097204585001941281659884598552763060517770551910628560846006614470110400314875238332493464625217063602318723188855131659521804442819546343973196938982762033231366836021040455477391606572897495253116855601698157442961036201578314541096528515061621658207952197632946360667584487813876537380966574677313322170244051246024943059911810112820472071294849505969333276724644419522531631771310621669243723201714285832279364565300299187018664990328330726018739595676170041297880275029611154424297439178801294713128409474225578563692946412112165672809066156515945184275738748841262843049301375145367148265089597486799290737842119298583350635596942281958171793244993366511356848333787964568660641092745714826668602516090897487100247638732900729426177238879486198022127747440999668102654423235875955811308393361504150639225830445133895481970212217479091944083615440968613197046840464841104570736679697066058235460273774553880271601599727864162357163492623121033356891299887699415244020956363075857517731353497989759749846715398849759289629234402887154668769112634364912725039990445548543806633149014179130810041461444493087874201602037840308639954765966204767497467615879257534515624001707821777129515920082616960887850726860947620925594937334718507044425854667144950261082015239482058526184058492767281587313039678301791233418455581079334190763952793514525447127004887316746101838236671489853026166590758585544421671716662625169813356793828886785228568667117687129795071782632487474442776969677891936889142978722584832016320035470098216323156707377234761030872317768339723034802307039285726303870044797793492786512118104327582293946062292276377556782389004882060457161760564060624648582813844282808888189895453404137042053798453787044270633533823801427623858169815990945021530741043283823609961350264430044526104925096792196606265257932965177222288838131596541012874274571900184737981891797591064174143789824303052554681335066419674486317133928146806528020672138410760688738373999811484660223945941553110451736132872855604718688921133683126159763911882390551730915356412566719760884814182378363694210494027332689994368992087529626584439848819535627952226578472083165315815768282302680584222445424819113558455287094981132738511481023072960855190214993616536121157553568058919378072512328347624950458020610927717018563523764831684180684917108510729270811938847292205328322578089028838215445261211253012970553193472633270190181835217783169938602578418679183162052487620089340178711872774568089486421126864334371803297188716399858907230093185142197797423844955854939109904814073486197971233616523547579136017844659099131031333288076373210350561978397291802287467947396439915565929814748664365335256313263766107464947801014994893997382028347513422740623006613595257926592701493747290091601402844289420677510614202869351845495206851585213956456248858361259658223547103200390012683217069534490511614681600687058118675156898220271375059048686782038463487987655832989492432428906873053847039526989374294064000983573070338505931937565767332495933901416253698668946897829922823081939554228873545803471441950476846145288113412410780782624395929392410954168288204291769803778006456962829107843065178450566992093149398915366617264201999098390995787357973887129786051184578784802840721022384990782250439207809805110682756853181510871960566703259420107680994416511678381363664419798108177245179797470226914119824678818238498997039714497731127391225471843288374402800171898470594278391074670961537405315698503988873995176849112548626093997259455302602699709447242103579780223200369718160001635220339810693102740814937610799325525161646138970141869910923318146924243568641641999587796783677680093392823083873088234932589198803797296165435035032025411942620387769602390362245777220001606200795339441766837992488319803527353539758351934976669665142006007507444664752955200105385204310170210336441078514514035654769279286214343091822208058108643775034487259283509652066671051935013525180105697663464057873105347100921362187700387197656424885193527140234045341694635440882211182638691990355436332707537875238618671829775924360805352662267374208382291174945039125170268654308061824960257353315677059020015989496812164130004488152088265553610180479002536864950020840122288675276896941314442180664077662363694948607680683386585168668333897140742751756162840813927803002585566234895131546660099930628578905776822008595772223847202267658766229800705793892717610453939742975597095724241964573088142875112058043620477757735455074887369628378175226212029557023492135367228707754485718917605666884410657390543707394312342195296810026248305060707752149763912924819036335360681926898875600933693199737455899409178120917739565919504360062276086713214179747664295926070827931462753406707242162145615428680510593097537590943848636623525561234084542754774375036764234113325346085103156368394108009686597647625529622057638552464983577171345354141978238790016769271130770198268289932040654049266170470658327478809769223085261737527535366193423163493224261889375906444852359019915534858902417831001812187252582260699189307594811692806270098745483569409833997571067767146269336670416038764227203153447927013488102821240860911163035335183898350980870742664201362547873888748014318454923449249644043103865184006847116756720845502622392649566904961794265399563282252565750776678563560838096532025676843696264531174137115015999334927445350582969453842873368734689010490857228153751191315001227524181168744622418757479724731378006105718993372442954633251335130212937049095375297376051969018642041388067593916617223675757275687744195300107319187102154854784901846660013416880503323788949730071904491584620873976770550143401716059587114833188451676368472450074147174531791329750569251213577220951681379908739122470298562846629504629291945923003371963458625938070945451326000121171637397288692673672029764721650923481718548143860155780682626634191050510292485276532498120276415826960315033808333169683666942542618303160699276115326520286629966505846478090134463674713566286267800843468653821996199311865291899891537305424474382185101184473546682513665803355356357079237565666513152551961085831283214641133679417558307279309902844021509631948450640655477432333558629132540301299743185720104137866392118604966782567607803139354755209770333632479601004066676705863908242061059102866797221714395990333890768324856481836994871978874536351418412103331042221327396410982567269267251367365633701967732121291532871102460849805712003041762599480044067744856899623361111007388484260975786405539720141535261422071012046369329114594390944185823679256296421840458693643592455073464898023333013685974877806998051921167933357430428139013691697309836202933357271672701169669824328754005334053495854863591863404118345626070662806755815935212800922441331169943675949804962447298996962726946696832237116360594891771673718681165047585219233308500071744484707686698493217328389066676103986279425367483891564590963857120830529956952094380510996580939549774719876798077132950676022577915293697229249203903482883381362389608770381239320373417262044798530486722993329338979042583997284165381220070703209643486891544436950641774088126605715146825235670044925210517652440497260450804882971080153466514047543823438931555037658217756953804877876127642267191082609874620510100299327143587275938833336555306135715814782701781929995976722576074990869756150145779166216124251957616587409123121138108498743746740676974307508678042929198604964252313382932124104089138791295192106725550324994903999665604500465079318963380144186755490431838056285968277276631703311834071179111520660418604239754616374155689420263985078231253281061784979044205453426920263794790158071381010199461611214926783653265632718086669115227215925904246155333313278470630066464417690246664282057471168024020751250677748694912017388856555055384492928047062115745686078174039033070213384007140881240428659418651503856099430970819334628979723793438171946672629752224406640680773970463602900281516480787546791661579225862774843690914597156734477105864858820496579631373032946720191539904010935097335294469371430259606363559208390838099640526035978830984728954243048273496449381605693319189414418898019226865295917042322569641783420016002346792816814152161580440829980892997776474410440217146874485725874368585426567049058362256867903307352699194366710083895094246918908435234563540053003054500417948696488425441679707235485860620273652805392484974793804687626701920329677875872830778980547130869356360992464024281089359232302098766406350184116613879807970255122999672508897239671747957755400188165095824325951622599427854837168799247655184043584549962992342627600263519138145551895966716988651869279443915022798217674485042558702825221385829841819247337039432453388857930186230129884181561583564926411533109131040962266904880912126847229991326638303924795785295700444798175265247680451053169098889102895498548444602709485606951135332849188851781244709024984090171898759550648364561717601882134620790458872749159795798794230314901381357047496881361825296141528859514815825250293631691507476214657045936998386015019835613844980761433206469338257832979722458355357038288549417061245283692535662947330715017056342510992115695111618039467543958467072790836633314930929464827468555742681625910023813898514455929289372451387942628819849770780287440297716072388086480026887495535309969421366816497188362439480418148913577678607890899903415275996908447379549961734820702090338691126498175535356811264762065645708956086325839091035146466658946958428463076698778860146666040479120985938293605529075504746317926426370179787144196064648312807428214410446095833332921077160278092122662564468788501701164770383848345315827906305911662305332379438134899262356038681425169324685285548350779251396736709025765184677032157921451971457495650685634636586857090961070325642723718068292461033086646148994908381252987528621921288251560620643100717863701060852873897019047271720538618593456748553408114908723251325201601886732433929227025174304030484613334512616837954673770080551352220309111020988170047779506210629998531109927015749812135958609573555856504155688098804533571917250065180500515416106401190118794020019295146308866607923315564378571336486632806113059850678599856395590433592780066744722472532513690987483115407598947078632426454263788595517138577443368070632998585993552187767428572349242797212970609604039564058462283967145221628934953494123262744377392181584452022732909323597265099018107830874405444251483523155310572999044073465783560695069284130591890641821462450136645967003710478716562633854902842949067837359065164306205593597820784826399430190356720515280757704129958381521674345062465765581077694962740398095041717740019768881071095612565083629120438387926787493046385482434288817415976842673400529742962092680464564124198465662111903159571482386562892636350472927964248674625523528768658133577455087785428154417681983061910926655236684345284928796027854505482560998374262231104324464733672191607702687080734960295381814883586470751696844220880782631526226327234827080577017389770634137283799179405805175915282053147919476763041075183292843866843864144978952861249474020891814009141288138901416505581698167882881262824758587899264352105963758711236431498100481482941956882446151678184933776153104269928106531607245511779377113949245553783120559673706865380494760481407574844901845914664522989883860179937736994613298412814130923009476674432264301679564132809865959515539096975558224305514699718020290432143824018084935569819944959554935017926951517947465172688099168873202215643226902134495500680431880564586532507936942484511241169285465562224047204273536444582195492504836685700810884028732025430663279876716771993056054615592954247097918819325099969340898688879878961174740768911530838852252292767842512071020744732984440204413468937338555395752693217983946815510220917100002971600902394900207643664330985217315596456437374892458787082079769714310086055472839641789757446996771103869503426808959933069442804567055267218431130042495039569559240576360930684138737965270204954853648281184121056673566435567942783855645127357676911630261304157801805154106626416600833654293821904772044210228458509626256005922413057382608257502994882107451026115074898873922640844199828733566087214157989975193792639970017288761611039207621990723718779725795431152547639323928284963177318872243641609777303747450549898458778990462066001925103580384263862512057731890048492514844058225198900520610754072591510839896241193989505426541124600585200420876519152723074942348882643636145318143209177470362922570972863080045134326598215601525143537343884560620673176405404143126184737504023658926465466674918108709344543465049204116543991985465376096558868971228220455800337009518590471776552065277429439847249708539105939701308658089799467528453977393253982051990811247861580774409681333252440290447080837248156773789803650448622875817449075755111097221458742351676581775816770779570445817092919240027595459044736040527271085848735514296298290986583011869704592360951147551661929281578399268243344674988490902543826938857219813888713522507289574175315087598852980828498873326291478994011916744407490753970138146016621516406959001392972861285369310577718129511683538846425566583884984483132894807219695935687029822032877745758506665530461982576183763926528225979432741152489244422538308634648739751250572497076395693828199481825869537697251547178952812307721669835568196952594964927671238098771155322827502585023813019350866100213528277178619839213121503713114325669149194341217398500784224857677452615160540860642674692284886523153454304462500634342809527014641643097333976279439934197548410649083760981224063329797010377128590212266108978875368035111132772945059812388007195369299104364550858338964430500842177987812481685320964651663689623123430716490097436628038075417708174683030303235041591465869164447633941544989878561044015379195354438263238188073478883062390528389165295424242531490015593825534621509312095786930094108099718449185879893268784230650427801965839007377009646721356646412265611205402767277616657843736185500870517553777291265919197211404985108433406055077482864653541450153399006000342399781683178231745531432413290997787122134948906963733221216896778162258424074667078047598622416577987782169630460255197844998447842287670705845917662486994155136078298895458700007501860888534097897869430108391283375363399092750225612384823243192417406880969727006897251336525438811751805346176367083974356337559503587506229182716395410912340033223665332875813753765175708228414134063002662003903574774661483948915026325465134018925621256555613406358094375269246713062172453706946702806044469404161891401295935427946136895361587834287189181474196608512054542975015610698932887805839652371132864769140924141525669950991803009773843796309827762113576324264375342977568171031623233528506856662145630269163937230634716927341661788971366413070138770621696218319200929154138839371510106401031765055613778514538205845879366634019487707217122482532331869367826333148466343196419042058723796608911366841777300964866113596257102575238139895391109671806642422322528662039630045684606912536262109419517210043959541150893040474076148402407016319632607700963356757997586638628474057098131797701301247334896327894208891956019157746245762476139965723829504514410884873141946157975877349537937390069117901386016298129126368052065397487860176012901425322200615231089977385691493831756861597459389758629316306902108467949057840717769388236273121513078294044136432250287443274420037954216958998585598861301949704148824412097279024163978463442871353943788165078295501588716624895838672691096597353676955137464084535715910360342170163872065296585330768181036933035407771015906402428377537763039955867907887164657953348333440964440268855508046186328891689877153920621679267560672611394654032235075628096610918636581850137690346122787814150771323374881557163465689208314310941304849660451174802505665747266124654319226041476697288345444427317089605053977227668256682708152230804234636823756256447963932904933515337480337069152859842034377012420078982305397814752725878604062193033673316145427391382616164880238323807262379243975741905488896629878729549818990167117071364066530961382743299335006577445383982302441383538251056242340267641620154917285322685381927393682010193637587375912984161391506992151785889067833672779620826858593461608165737919295573674376593685463820002130942280737640841938580654679606203433285278674469138974293712452135314169621197164699405965943498875430075156921248552495055091279699022329241685874827258467355273084916155916278713568185853040735679062479707716447016227675293992964655294936349809241102038021404436189831907539397953467239275836506065567455022470259394331283659777842967514390464716232985954266756186975637751217886499452919974688504024410410772943224884572028599611430463148614071062039596638482878660170045934973706399086856664359053618452366412833795284403216862978019407271398730631556019990945480244929866220404907370069869274420444308558476484727732233104282049052234983712571537463072396398708789262017270908808455717735508379561948859304219271624023009645879610696999306720483323988798724198500084926258256536205766538783507516220647788846120005129124791036229362942282833995992862200142486365905142513318007261678998069816625168589628676115984974336006621518159297102198358099486446836704955088320090844641397464149369636319280662077610204221367476950761809629296284075570024092295738698533521644478593466063178099046396880997456730745027580041278866920602911732984804668808153331262496985730189118331556589947520495956018427002149635902640973537565504696409815817362731043011557207688376794654134634070436102952934131312673708971797866072954581715034782278980622819466281697316539964931403731856428639420338636649463797631652094269994264265966316802185067518317515571813548628206485936298836565616474497370844915090184360678978000297221789201673476013070477188090205626556208275148121300535865509156712805592657980462294867976736950449025878982981050889533034355426599691536312172156425045714205539159498004938116565699960654349293049087168400107963176380320694330433698781777786348791493680202374059059305003755553750242346213497863807725907508349608387152599825707787524022745212527810733231797026476581003251465488812455468263070798579063913075862219922640837379563509075355252979468795797359903490447003445890327074353314181714676671843835107012695988070921854573832317261736840203271678336521322153216142681572200784668288052308769265200923516851945409539099976577975136923145979175388030460273497776573630371904222498724922673347670827568730449514837996437764213682233513489943330335944766634193743788425505150869407182840353071589830284707398884979368601070860784149388333364847736601299145960391218815249606729293163232930811859470854927102192136203433894331937922074798313335967363952482879892473023283521157175304941406084389045791040186438343379257064647056134176180015218936317163711587982359779538475288964948464270938239509477812747452549453806690490291570354090555041869547553455530778787875340606439022115563852590390130968677804636994469932311987516927016936893025498396117999059075735635888540538104450937655903942061357113873846532801930489588133442369276653908214175137768686947685393090603738245675868847432463785734117425751819116467809186954141725636750684694804155044959836931031537333474870930204720224239940188760910152495103708174299788815050112818739724307906558950607516548030677217079943955290632217115241635231729572483415838501550315968537179754984501779469534954508674147727261111945872541868244047632358338392527581882876700337676496070527112547774795276707450194204245564741638597425522499038972329323224219185779100786901061327869721130963327206549630102742621012250745693501848196488733573677559359163511114569040987288104531785802265445772460287994506647607688707457499552815701432673079131458308117311263918717590905287876303518373384256428637372368584397283579028986812459436130872356389450796337270587516995017776735246279611077238114187090676210389564566376044449003348777593209072008282390963730748384258667768472298254931726515342190743423867308187191759601217449775151609672392610129839789868079379677758039965216016447333320297726331605700102834831480612059260180198369672769007264172443313502342626555252418286475311883932171498639784305049792143741357016322190879585583256090222985104473072084345543833095215410859069137943768001289866784046980259048311505309454434557742506755113026581216301251048457861922539461143706915718473849799074904795548505278926034914378764379389192654797043559538309565798737548209443794099471390495051156643732468523485806522298086739829135008411132284359926315924839557684305456767883910440128698918511715728590150129856187408800835797143080699336018421459641574677794294826928201648752397927545716534244880448082921616248278506404997893150974789271038113292342213137499800397137255259264404515798950224828876789713097452486561941771625781766953765553114767556735490005763352813975768118852090272848277697468776264412167202063105091815464791012847425255594978946261463054501662389232296220934345088644053482002814825986795508950377001309885809767322507784100908131981187380511693944184564466943442245161576792100504532795591644911665559624482298266128319177741568411490379693201345422959518305876117347620561129940600250870534018293843277761456274560702940485925866732909384194298576376982265519933236229093091893228442331671776550253213295468307829820250250405787379504041482104278931510629812609126973567877172638556535647995925162787274527595444202608173714233173844507980013149577686963056684010309979689665319509311462008911724699440374957331973335094480446676610121532977022734536684652763361636982079323049368182708785753240958427610340421487408189567231136648962722804217759033393784566042180233951529110977703034186575776851752097084399718889757143392149474905293799946913250508471810675407048109704289598637195941144343063784489036233614015310736357616909621633208704567619625056501901316989009757106018898976110782720483225397696853018511946247372796541924179780127286942527112494951044491469380903295879277145302765847958792120173572663060291945757524621067447705584339156568042723524732946605842745848073542162922998923790104207231092553730331887091232902532006304896801231071987674794917237297576603479739132776539925546493843395937610680417001305793271525256550615775060046877419164326467314304283771222147134402264673539875071934278029593999950516673252027645434334236998089219394776338797226009986972936059369687278141805445715324643938334335494477113251971363691580469545026371004878240696333028399802580542382555443034870798800996195291558946771267666524668197674046305133507881150190308105471609211832711772507499610400852026999286435734917038958224387238301473334510203481620018010022767329098297429849385953288492520849113148260039450493440192466203760298769111767656258407648263914000400962462432744726190647904692592704204566273765788932213633099447682983938362409045883576587323512706668121252508639597230814409945896765517288735603539891780349835878963303081405102248603961239548883374811118994390302047885287076609905497727357697280910628192632190902269291274542581632800245340746838874965015191496139230029189787478732147380261918862998806170093797480461007061103156437556768282675697931458698964930395437947787128199319139583264963948319849654283902900040252905676553640770771050205219666287137693008599042533650564317037182638962171707733145425712464353127870971757675137075816425367666492430546413648438249312693983385892393788729489990598734645439829843975457124107413302322652832610464191816814578653416035125744151484494370135635694116223337845640846549527489347433711333749965156376411571186993155059553423209460978749550375271924402161439145132752710638975831134228199736469758397932334421301688647261769466305739142380905525689897197280867226963701779571721538437040714118639495471465044621484156195661372761338125498404441606503511104126518047125811640710627511596352658627044300529967174464272214190323811852694459919067816771824987785498356912186887797641382841364397180443433366784352649295638549373842929742159732513734182840433697799872987684944889967452276437637142995669722932015758224018770520372447954398821551821404630312529840869769552284576503745433579456229529350645694005180868897397290737570079301129276032621460444880772537996372816488381182087661631887877726982799437594215851137495760124065055097003027565348519757305511369997174167216664141554233263824453326565783042441245303778955382420778673210146327738115781352623634121369392912836500519467321618348049478316705789646152517997085128907817245990049381732663192886170643818369688359905794495731648569292601147709771204651933794700227100185468863288120223339039040386516197655370005051203505822446414765581697533938557908664628563154215166941967852666233947225753018655348583782344042626195933448983458398812760847116423475081942407335206204108555457219414928668347007165373665792355817707265103465649692437397189247280056425020543052282583196575776688395669442097225217671263069408485388063227642117434119391779272656696956706831144584484144676209207589087420121362330756851201228062031582294074897413591384863389341209710884613882802931821528255625422347502880320172522694980480424497205756233619959514508300545688372197925805706189704007590068604188217397369823357827452100872194131514447469429958981506647028909124087277825784532168266806252692812772792857934980695657565721752763017421623471375661512641286954460555159598497002089442339336311879394070791760834382953664066508438356565497551429010890976765217958796972519544754286221872561764724755166900292711727742951262056409099437689091398522810230394656271688319576659646351003835336787784481917796313302594046006123979388712376792676241171480316080999501835038336378283861781991098241837410976896588738995363332711536533662529983571794286269916401559029873134303836541228225543835388511436106977406044269948266592614362731396476419339383036459862425390381194054517305917512310571961238120973081077257477401752235960819829681884419995443698319877551796957365779036556713979171762891280667652351429224208873888888350010915286092807975892827106441762833199901030543640568520988224296708807077310237795521397681947941872341612220132449739867019583383011918495693186107732021497440875712292231260920708898641566680944599624592761163500391826233227170493508439468816852872269100832698660382017963389159733421882678747903041014636401375433954341649779525791948957649591301319067168942871582675868247579902366677625646311021238759156688195273942508268984430091353160251756412066171827661905077652821408170155598945474714545819014388030673673268217169079043509824074516228405838516959543803484570422954629207436551909291397890572846467473943909299082541774421545746894698725914624222415537851551877734104051495519651043635259158061889549789223522970658625393134982423501962792426801996871802114800863608695134783939112309037948741199373129022581057794510987957701662031537243884862345242852823295630490005355097105924988561569451623022707200589421857547318358551607888799968582885256828849639571400997577238814422938492885589811359453082449357807026537590332319618457694994073463663879119212253680728523037367482671873400742964198123125514282068268822250175946970998160590650719995402863477174535427026771110395938155673268169656510542694170813698588172445711946293560277375959578868630044982537645979875890005175114135832951525275091536821602877430803489236845038042630897839540692073133331995830089053630714472325544816495582802314371831259320582611091376233002159882339950739295757713266840345264700093353127903124786464603269687364290811021559419016426674194028747493679218957346657562088766120418889583598065088462321080029663195021755174203360594224387032681860497098312221212772910489438599367776673484288874579398148757110458063271582913590007325675285473235604893363855797406358355396530981364989816451261883643452576081625936557496376740913343814725019421404932327449995942703247011500470241649285233413368071620727881509290420940133466778532554172954041682926513249113281186652993367950676210292313714736306305357443268162592927153661914447294052403239314325647308154611363340217070287224384878174727033572417924846386561063993835014158150894333240171515558962583918128486772521909132020856021414701719942756350376927334035249931710972613264931544420800866275999928958732461036100888951997277766060330120582739421860177531434542974590619932907609521706274459542541856361139301849185809851954439207389292061644235477189329319377794637331409029889986309533114340308671717358645373102493824885718940927316221361467734843197388463549768005753043476359907365448966410415349098836355789266238113374081142291773150435851701717428992527257544863609487482704540727365835004922528068619048936597689330592220146598054731527181808399317112457465120963219843694589907547306620317234316538189974963033333441634563389594029315592614194913891194936795051745547764528844138967900097384523742474154438244223429539930429444115315266592744174410866733462780857916483342260803321982789232078071970486247946107801813781624161207758047552229813484835771955459110565345520013913279129099837432582875607605547007028194262046716761317960414878878052810349123257051231950130736101720207875686541302684923019397903107378237279205099937219528722456740452142908708905606223276936908256283679787206179452140912563554597298960928630712284925843942717445590498394304638527123267091817321426207487989981479205446935030468000034089737947674527542996957540826167981992585866351505764760397963353516005507072228494426805331286179464666385080634911600467097254225992719224027278585910301188169938788009084189526507427679375235050389423242593304284617829767302145574945044804120098754535303739680998212002458633584385656566173571826170405010811929778739137595154892955730857898176527397569695346155320712286027069300562002560344584675470095379632458723981426663555810861020366689021181591817614958770678138734284571916803144178040005458340801919481674454717368620900778156219250217569985385194133303149397378292830390801417847246059670897404288007416805937363425506567101909345823508601651934643593538369599219817004869175521321749000857080086197450272648812420141414829707120208229868019029199237557739910267972553832683496404241247639803865267403326625000192066165064502224484324123613224048737373429281951414332562269593856029552430400572845597559470572342020054557027036770704199105037138563204397954526803658813039647625700012757843285040023550384236458220934618061048861568106821092704516509868209038449332230705271846563251279015598094373937640308683241605364063891370478832601038346873875115941915948809267049923621086104206088768979910085467171011078816042272199665662270124727083073085920405849411821947890086741690557160486161121663636861722415473206621825683315527610160158222286721345648723304256833299202377354338348637498470796555217586221239562557386060757789216949459330180173367263219868624600011636595323464292114249283475413227775054829966122529195591065491695306785880332910463714858585575719403213676241832601345763744546796232675990134859882270681786866451814773786603409873118647389293535928110595077932012192215044051661033143664031682920740832235956430906053688375777672501033591853402991843482628950145792757966254716920409621939797310028343772516032101070428606362204497427899766610985611330304713828737158511760927960388209007092946897858664363327276684836935625832675014018572919301349947657643513076794302001992944571675559608172201595626621938557558236785537356286584051127198509162646533140183809748716027138112052268981261236622782307923401925468659248634609521194952302638148442557599166300942821265176936622303077588686335073388208867618647688875277120300360847139291005469786136087876741210310529715539135413417012723296675879898746651629048728094021327996867905648171902172369075435494153929442985424374387164050398625491505286685526247750521944769394835815754907447557172676914127051864612724858870670435098588870178607630300925308733975328279702582891570831519699961418027653440762717952627622151923149747130034677830483468583508729040683217122458760869468739462942149697474102423945039099828888508350898911269526700794317873987899976405209577652106965402501767597936993708004717248784529632045092436641234261327328617867788604234609004058082709831027604863117588553188297416525009287334273558034276605381778812446738500576726802896922872850838369073884084114945170158239742950420385127480233683555538073797336282667573181773432765280903476188924390991876042817474411975504335609603606653237347183671203934791602334746205909853560535641029260914106998500403512011762991651977170484075991950435942251483203201780045398617448914357050280284648429536561231956611397067680710649102876575067101940576633816940813518074998550491307267466345729240440362442615821512564998297388063539996530200615543376308627527162011349876819728621631216455453885603670645323183777264139898107452768150519309345783708054447379688235706479715299676195998644592947889228327519100781729366942522904065879104130838662311077543289595949781074293917768844248769678352656630552137011233433169584444334489002991256863037480179467567544088700203252935887471218599228957244526232752307534480873355847537402187350387472912350709993116872532409751869456076197878772601567162815715672845735178901179564420679829824767974621785973781222178452901710015227148585188550187699934306659127872045214027621586232696849276139363136115459153610812146635759523919821492867261178990933800218883692418097955289641342178855361350269053732169373505401524364487596248089627652496152884795077573607429122172180206854266910952393851886857214413632441943728901106064523731827442836685908641633274975493514290087003154590805331161164794968364430585733077259741972103928290888542526776653104370209052231967174761071478935380812813431179849036839551046137805373810335407686823574254309472917851086174620205191014562772408181423973152154067233908329657920819946633400556104737052756024461981465164509954472999122063874140519790924991578032013077698586393778981090293766998427301187782841927008599652456321093847679931910682583741230673180899042714087793881518414300071389196280357607074691027625769522564998153328171106770941247264985901336419861277275002816560716602287992444546434045099806945431496537897831331739022663028497665541903283372466915470475910559616633347610125020069577715280344483908629710560829802331447918512772639557378994835456129392100158698903166300999809331725340580214916590201060714993959964810053022108315189791407512114061594923775737495435399244613815362709997884465071504688942870722772445764951190472851215764021770049392644850769790492475954586687243756466862790530084956212993500753371245946160728590304333417434458032923515706177852096688717870521538316294435070818909671432389023544699636220571066064047029290882537797137385089955344357469185266594491934241709368399009800824083043001311872490916963534193400066179863095156744993981761895542747598561227830752105187891763954184888219291389972960165689142704017206245467604311594685155754160442541820152492840097039165073622005255666750311144556752391812788384944677673431454684234710410554781033027925436745877354988968638576586293177815224260620243588956894863623801651707255426484547676926862816293231924172649356924366419603541867037901600353205180751564102303956094193992096334334569249528762697249029945122263819836742874963513397656426528697629494476128193584898511151998740462244442014177339253307924507591209134501767826565845316488398963374084508332099389743229618544662046235440055171195806282358747556917140593679730450635432831195918778172177281203817068114533917756114564545814674428689728347370729512608557141505797923705682040033447582464254443966896451929491129482227301756613808098415358758727326749704210170242956106882307867613687483487337410601024686940976545246446014773950857312106160881087327721993607415409697230036526376790486420829957853379772956484261201022101393706798353557959252850969768020692834193976549982607524404141736092968527621534140177042122030193204390029066706947203897515622543261668607797020919612928473567225771242751556467950641986053744862555252803777936687908074995712618599779157584343475327714481366081288444783635514786388336151565936146577480960708805865011151226704843094560656363570980795276581843796952599921720905607263868414150087209863378814629955446357767770781864055273624127045840698933242308352290941085827969747704710298817227416321802376191759686907532763775199144883996340426094989959232279319894110506649870112473706553213196550894321644768408177258815879796759293920820514918383606390645652390429493769676866747749423947535025816528992828132339661516751506923290124404489259465568044553954182976644680503120106782847289068036359458070946550312008282634256185883178572945395160260761642066384396239440208452472716218497727822310921385449810233954118752140493543512609797993453730015901999439139990428203595995359794202493114049478760892003945872627685787079414287915520393320776423280557012118975231266142705290271588046144906597306319496045381833168327029799267398648651005554885510737074543190040132501497751327147232444474944167591783293059547348912395480989662391837276423765736046131439850388216046753305887784368088604152412538530832647069807416383633940609759170103646402576411387864658039716333966025295646153656442699222055122505763432063519566410870110139667534687879097804236573635878864516318649648163162129471804821053151336418845734377813239007570555195690984835368089950201183985077379643698424285508380834009046310925274075723876819542947326274942556781626263678135443694495553489584784149927219213362542257823518784408084825048236720747105574766800755132402700558835292511179599059718091473377604278869407911383384976592451230920261027838767879812369292294701523886430164546870814063979621035341058853486487741534418947144237633257176113207097439728110576695191862660335413524268978008850942758388199231990693337880934620124390150496415505895873614493836178447903351985282250572770871015299370708648062033225774968272747596703302879252966480497699933080860840892078772751536395022141009475632781224895964723484333032319754140552659859135125138071891282118365908623093892414364478913097209958437641343122943382680793088565807858898462948056518304025793318274765749324726537010247323067231086312249183863815525317013769613611844186903882086726586397205450668156661349608542639387752252453972811082845728668790453395653246907162052330791282567804290120404667829916927441819317500699572653439019194128199146622163787793301388438087053892258936619812632221947933472101751231644077904655261980905647422501727711681182130019725876399924694047846591015500968830642326196018915398384972231291762363392862414061487827592711375034699878324700406804652597053393585061574219088710636244020890770085365777262058841831719759193228290105430428559199233508845008144891512143937093814802862482016745868763673294665586196387549292207754711023219227343660714756684470086246342969400791652312482898892416539941507164883828486550207673017881919182896136245260017660422322864944159193982253948673954702266770563930420911346453215220856821574335941389002229215424127238363635951456251891488513243640983573196621284105600756748111082519668064459919627544638885110750062427698524686786888614091088697671052072487300320540724802627979723020804925987895633381279303560146662796790258404723003751799220256725904856630521652981915365425290413129953807179494019324997346594911459296624414666760594897350883695307403686266889509998761635468453939461537740025686279008638869606601283440189201717225301637663916703977813490250895327603271478002320473588908827493654265904778605491643053068968960790029711302084885185462261462363699440620565520958857550128969083361556439739633951882067735498173421982218225431634889311584080765912035617518115831925887862991242384357171622023783267119119648857417634268709255928444204578403171291203346937082682810101589349195910950041388658150889250469524528948866878467272598392962613730519744256852140426986217942707330322155949990976019066292325840638250398060225010294067620457868021661701725050285013252407589093480228405388713915796972033610155564204240973214250068158594223430009113341798207113976441905334020267911255887524959406078716756353807369058059089462910679358028710764269352811166972414127806309558336776384343115230640266940911925820046144368470589832921702233839292784549794690187428717512827621392162772350617221597642490580977010218369194516513040949315140132472680229338929584387265314686910364491686688422360264125007024318994672817901907453986867161808178077317291712765091701679044466874190836843482827754207870191537178833907970148361893777305818491273879868364918879236756949664655596148046386327067255175599493472942954334158987641014270416234021097704596947754282247086529937153672549382137908801328113813632174137268279044981013774996787294752643036249380788076247501634866027678310336316797572256373705171637329114924140250058590174704572299922817261644622034867230373775768424712692509514545062673963223991261925883620207389370560429206768687430604233529868045369338448294373917571900194665383228005190959335358342179106622350732019274435298725953663780160556997270114159341964110170320583721654422284040832858460657955358095961366827538373683272934102082238346836468077974021637504557987833974198025591207567728177468838236304948924567352087212736397063342607196645725286383786993651543796356227191608623926969615159853535218641476405661639951482950225028351259271340300189060260333813468636252036579569286890327307996852348328127535952588303975697759550922690847329523351454814446745942212192393429451460646274819921290074100010918519419077456943367897224828118412318804007950449418527742170407835002609056141900883221516660340414915867177419217180171681786153583550852470973316592886597959441870407184579387872130468037212315499216356096694931471718293891723061402340283070649224438309314713116421814462253549556936162652830136801769908099214783225439882076522939560048453059473850291892336278785230157742849504688819243731858408561977181582680844808094180539609621249210095531953014039561486090657337422957432127281348104673027452840105535207996202536522879151828780061038846865266917625904497100272059269498281961233594364715846370446072198508343653414460643274684205568157054536231655196853613861743977264362845025614943904449491600878725286469753465559356833189216601064110774495266832329042631552950662443418267940479942249748391075634906857279546139150957511051524549696002774628485037432354104993182473613448540787982183419739874334922759311151474607880160046130908436985336260855713933523473760195034921056984746136898281744927428852024642245109168462916603055276597689808233832190012756697078936519170991479329226437060492354566275611487742207441648160422710424675905327736683952232651822409200389286254256575286669648843305639636324346440106952051970912065586975425275656186593915521096968433949592727580571468689529190413254541859484191904803538594955166194123368843030476875046808341701028261322344096572714585616856821489899748595155720025695870098328904160285557769816539156026930847996546159321018051997355209631587933045118895828175004553017795506976249267777886996618503120033797274351499741359765071502584355154711095703994052704590408083258185314935137044782580291232018994774013750874068478111803926197208885603634713378384637798215676330647133582093467571958976690826051140266932617893840798431832500590180039719322767329681459385105615383579713099123141939459362421590615841880113529242261781211003415029044960013361463822368030971133056290941099002785642945726153573363294278285553911898110218942373720577616245378148757397658121889135785428763970090364806848112914741882856018205610289367585792949703095743741425760904545948161144660460421135764687600773697719626837700541366358826487894838071423982210170661747785760929174297033130317290877913390100260818745193784158853564786961755276145990575191331021934399427399009268476607188462496303061709253697618863592253862982949147278654041231663487591139706838331422004295153446943337423821409008026704135770053006869009956219956909553181317532293092850328332354981581419777734699528140919952544064753582409291649743947513621445479725028432062531825695960652522742716650947135779151411417930062529138037518887645380624218155347446045842754617237692168468478047909600570671929054738854775348934276770603406617573460522866401656800465699578560045751004678768497459051263288377948554521106480436764927237284649209091961573203761483353603797013506164343442732147240229487879435428865640929959385166358298994586196087728602460557573432068445402518440094022622675956945996086419237363569248474072520916903586748173269434446114752920871486531450567053629687932856330356369978684589565235067558563855298776099037055233557764950768325879097395316203305450397022520914923086971490095999072844348432455415193872863643916450561749617815605952268548570075311973557676305269878416410621238057743163841050981271349380901805594911169372497073182823179723889813854051017746003297539965498080047711899000816264665093872563236576052882771970327810445379580292371169545942605465759804865506522299969692873225116755099098581168701400068753777661037837502416727678769598574878093197683028366018128483215734435243593767119143553819496147069915774337430526238733382744596609206570881961620528611339480154089797004428250217106707676784271514605763967394923118893996179602236109512701649227147517574598500360022230119379096266766523258641646874112325490644801292515210807901990129763593309886132111868879466795193235911119255705123449651069036482454301605431384659705846374667980400482366273582149203483847191061664228587576809458707900668533550481942687760176160069803438577864242350485426637846164890134964354662697379128013215112492923921131709198596789612422205364918038148541487895757419963340759735905932995551090418545776780728185639706268606701779629159831880234980263306677715793782469512469901637365836819000928935109722517393467670509008906365716723003309680954113235121740313687992327165990956714918047848256110527239815273266158308330624216482630531613013646183314946307591297422451395518558057146810292682362662490317115642920085901349267843482973616970765010184641984712038648533109017467335306120561289818111845680618730600670758146682982738408513768708142024217374964618800748050023841946358013016723044575713001233764765165917160689679296058808293386451962819067126654465897946759873773417567295336321741657114350111537335504717118079122722817736859867812215296621140215822301779517863230988056694622833770546790757239029095263412872009019865692939893453798200040355920402082362196262367835213861875936735205846187915518765817449574664860745495379590324485993925287408315491697552175013139240417369749772803573420660072004215236469638414149629076607800156541633260412586955695389857205091914548126791339761099125249057230781835513246884853563317260149148271599731439457469475569060844506297747625175833363457517085979052599991793306234772096920709967212356291818559419756929663690331738932154038630243975468895083070052058628191689360737597843025494641313855518438334289291261388624869241527533639968824096214277642269644839074512023217488121481455252247813167230743771647973786553433514098992585676675739507138914551213574644846868390332113184785632776817903742892810492698533631160947776907424198582774623654310703993775266221683331874299820849664123130631634147143734083081631697470672084884211226670799371301176156745331978671001482064875338952883504914976566247848263166057156645495169950733889295232308763024623458145573241467681719703335051276162169237664634288625745652842684501781476491835738021564203794543870735769022828252301885170277043175332921110322129811024072711156951068644870387316270782243547948144964145762419160004007887238485430980457369956825404491216792023746186959199028600219209932588726645583523235655557577896886066840097952847006547280521333745376528162495034895281887885295282081989927401997305167869219995841151984720160627129965853197994856025505191442373139521706952001487799363066953488947283302885692353088924459039952355492990160379394837407245727568982281603204446816571202140076135599087606264316658442777189991101282054765122286454751359130945986613504010714381188222428873426624946345735366332320776080318892373497596026331122066736822521000505756079728337225029195433066283364995772388676909275308558485266564108819291762910149599559575001046913992086838751227214498019715236151180031679651975290950259305373337215642256235150227845443227036673103963576005779188516966343571252492376741807732268474036776703336055029875989863208111651082523729214066495731551147618665742206866132756121140447666789382845666455360108236664780269168458908618842090267389793596316913223537803848574400976830823679681892449127304514677685009175666790909000940672425496583291322906143686813010112616059318074829700823020295284706952355366265734652518715808161636753956140093059244440938882666953393561532147251078521044256727261735119472317003398099993976650369924938349887489233085626291093691175467109613477295530754239359606762400404439455479358556403785153428021306291232801674074045534164663169421639505018343805461217431111859142205014891295219901836364777073595911470651493737764820434983572059354282625076568084511862764880018187466289261301508928137203253128361502443496311380616235082757085412422889006510897852765240376308548189494691991508805732266581281361742075339987960581087965964359344912304032946521596461933866194832793019574782942296615147729480167799127500962147316459796243713696186192592214734455175238843752881600999662142018739737051559995097649465173267016639802329071976380228155864604151341917902949156730752341923813539401604005822177714310397451835736968862170934042831682491854433774714502099372245643626302828528694374247292378069402127265323738058081108302863190443215924064703831370837476458017084382206978363717225013640022611289013438958371483587271107828970172928277721034164078360646833462195639892128127975037816101278368402253268726131794553815471636062602431980748034488770841693493836373793390846037191613439491789509851974343806904217749945571130230829698883755424009343036223429959688629924844746346772141311838211432773756546169170750234957001449452451251984932779019111631046738714046044833497662768280867208738360669595985152221276827719979077693282429862860120215438315466340963839701556932140749457483735460613550219118011541559620629652879037564368593705662197596541976100159944906703488336898626924910404863644553810015201916985677443639066611777573177836192035613714411333778115913241852911721947062625673118636609795842837359020723155663337816530918772679232104505429126434134596108670775672202214433780063479779613837101295995496634810939357613599279700401399235411469541649125650574220599438642261755075427854489055623298253858979343128643266411380491847981795404833928696527267466349146360702715715104715799274746073121112719015073425469959490700621130617638543911024562110693640873918448575277882952677141427955979437416086096344460027286029596973948381385342936194932534868445764119675133877290997078002013148629884767842476927533011830866068002942912203931052759762920802670663940970411783471455545673756512584648247954044861649056696369154659700678933366211718469325329854868059486522346625813399254393290967450331770352447502781270999927566557018018950234725423833763638516394749009145145388984818593686860691557612416974776808535280307897616947505203166096813624801272760675670118539930445537168360228418874733492296291232628762624304718372967036287792982882541165603811998877322739307478410294955042622649557652027075074818893555290866605808488977268352213733434680113356121307830988132028774751460903393472154181375925033417278828239387585844233857818839036949205080029506196205994270899382082368049298784695314965159690313671305964224398930291623409253660664998456703600773652670119733054872916139546682729544748552546322115875728903656707674818519885489320300789522704826437749677869940388544426550443233301983666513825506440670856201402820588738928298648784377291794963927997821111639210446758869173125914620073476988260570073311640053652786853536027535960017198361335588276684734607629155953386114177409228772986156679516220968554331843672735607565310257425366064816027542991884298656380384958794043163607061263895033090258365571826860891400273113794597337460632271493565757362203819664312186780197068242668288671328762945773243992796388333877740042233778715308354089086198200323046409502675207297155305981633140358346768679101517752117274684094524911971972604217558284819677758489768907347331964736092555733993452817232903900644197497419814322204935059091278268786102389401476604799038148340831791878938651828099813006738971685998025718728959214393946320425017244549138007961924488558991063108847133466226234861610112091003402974556871399800335388644318466566277447050203912926142417683637016678257549295586431065038438726396720301253258429699246671003615254663546956721427416055332392600877246008660011570339619892543945352146611492401302286229184825535131460132323961570065622727386906276017148342378989053290588447271750343453130763048692502314923238116263726990646215866031605869560739390123318498284402294374775598149797583997437093364994426268826763674857480978573113163770396114084968670137146965063418538766422482551581933334316935832725764971868608402628067114749436970711397519762327945515295296246368897040882541646595992085416783388698912261670905182589115074010687801082954557803404233954106790636040165303634773742972188359877473869126391842969054611215937532771270297933604828524847168124432448202735925481007168001551602555404390986682316080973241089232287251533477873340128305130343899255646947467305987521317570120085564768204467593098944276655739063657303216734884022219712082387320866435562139275383165678878758225562599736288833874997348816198257752670186234461168477897731614625040744129950590940625875157415177304996853844113283596856769889766191956808622367146707593026181202829359188552641667871741063002344386134734414166718499749969558340584904842277048723803740572793756546811027962255727877344271343033405295814594486905682991342870193576287079473348998268552196730357185101215909219118859132721100926259899242433283710882409683200117786557036249914373023652918516237968076182723502166372673644796260056754543472677003068673575329260814295811167399352382032981724253632104072876372092860100599968819969733509318160353840614686379737018155146401553714901334757241886407873544340943305492939847727637163024039861766515156355007483621657201466670505130730514528605342245059995817617304716264862911658606062340668930880398725173428745914191662510998156438045065970530144880680355811320404083157835617330665124279260653597612826733912937528647292306386583973819642498068663986284788500246473145904874086197377597851341546202454878056722910974600037299431777170736191444057764818180648921093415992636968222263573045878574856539426215308795217838123435631312200527738679111986753888944400249655944502558562880781699489041348825889830919285621263770910863768703815957520089134121673422346434544337443775400850450892121970735134462124797943045575946850455351451916954341799010686573964276608627823185482118537894190954585664603783354021858052250203842154105652822184490649873348719741996856337843479633825810630995914447601167033997086851993610463592659505150619935616314577028481040165012968908590978465722747277254657946148811927505131345773244958606977970045968750050447842734366320859948907843492720564244894891839404262804068456343737222370511446759908723917285288789495657251936544025058843473846720592574509109080575942185407264631621803352181960502906770719355896290468967129018088424552393473043848831267914348262565069238536908714533634427941441916579423781706283528927096371067464047341600323649507750573762171336385569409341958580617069082243606066158723155807766059485196042317126773941288759968128293760914142027245664371103731565681897641880609608044371531622110628946884998810971387529105919806629024523733105212470984100261562757905237600561542596117710721679081175367197121733687978365544414061728994151169160319278528968232527490625605518778957143510073034241176331825369440525538835164372429014626727682502429469499507980130116861314317126400909401880655455086189529612174669654746663942060425383478396668484221694530822767692229353100131879635877861808166952786419349670905262252405620139380602175013132710564154311212409686157903815451134309884860252169870411167366311096158204639011799683578835880026029643417634456342885245158744525409180735568601100350249210634506319129418743918730200141949155432068429626033099269888594451756405887898752511982863675962935294635984205184990530694837157290791018481787036811252123142798467407332588487261158828568015919984724581360795192754937849474574071510296733866037008648117461083886727828054147753455235361259882244425613763955893853878316744914388652265232225676388119116552966686770766925475304677668038259011679372409676265059325843578406406651663388380966960294503091037083610877112759427662995311151179475943205392737898374548245359454103447992542657337041798913021527202756242892575983120158786863084782968512128613131269655910228848229901538470504934444347428989566392776964376224404450214678474881597493662050662100526957811503246092293264704813692435945627519265070125752549014928289140843932333288385124217594475834835323199139543928881928461632181690893374022238944428814535617478046881242017628990320733454534090504700562187655111492815259814201277427262617838187720058367460632424906779769371885326255870859791280524787767294574177941064967678884590840079249847713527916818115620381793209593613851227037428439858318531439051204464903390038026010986263088798581290157569175429468373923824571560660254729715920993592454902773889849965013578259804464921305814355836769445276089314846896162020632273875152576006234087828605200423972691348788508212783086871094386089448021129445430436537715766279419586288019396073457231676815618699512641736184923933524448835606607950923659666019420109279210226314646253864855681201456274951046595020085518898049974665819471210148485960851158919200303364753528261288013083165621826264462315048069907329124095503347547564037457478202992043555921309968451680947599684254738205072377762754965453142102307545030170045272510289821039682091081058650179258610900091173101796829432070705064291173323212656171493979786174814470441204374261850240049276472933229403161375992177928391561259734078907039628026889288284358199759287657301114899272805148542413097553590641875073809177115000766111079477827111032394307429835621165644573991010987615506840163843390270220607386547114331507914449595180354456898331716698714289063257967105686163935535695595077297886328020264629594424251930414316418124879558379746871873625775387134423931699582283997406932620730845653971229294825540449755513114816232094729074784405168351712649493574783130929628291652647665083407763921716250487742051149839132315057033907186810115396621883382276229126030828038379985886349604745933440348458621276285005208089110007961761346360636199141627196849361826255860669701195529944913715790898786660365420424080913918423398062478468319810879141304144438965134334373831388155699554996342244515038466512808103891990536855310431547057970289690062198267353622071194444776361443669753321735855257262948919040591046497668065339714535832565670548353243124543990684555996475005905539861594668694159168880772138855028324108579801989483633497710010429022039875375178633134478235058526091396428215968956699083302279836953376372659922181963499594644241325071491281327425906109162771628840045389275043358582069284594598241404119857937985513998778303424823951605309491390228066214305296761777280040217412931176426117555861957232878254064302188878589086967242789132458049893190725895887607904359949681426088378794725429592029186867584598210847674845693473510666505780191839096135631743324873645466801022221302505067039313958491256703017890035777828696075450097922049924473950093213271701328589219595611702058565114383880203955641484219403187983503922090387830974118989563079552273720107468506670583408957363700352885665233031440687887213602417626998226695754247664900651777783212961690879277466724417913496924317695337584049528128568198863441700329860434352088558441768777443826395756993979901642904224683379654492222153205599349450526305849814091869720207072444353126098394200950611681751697209877802492315159537458853405000480890741610947303338190520022856292379031349241827500719863971568782817149477488696255875019981059925367379118071697329574883701109191149093598186585870230273435998577492723253654694493672171428272852366169989207776905722164113239154487529603185004100679365315411310541317041210700646276599981969188323425746128061549090443048428762618189978600273314477413217853034902093254708299418572934380530424042357983186100305706199661714031075611602535237377439957699576047270596876082932469861311123238332658521890106857733814598911572428052389031268858826210470156978143803718731482906783375894761570009626929643596085814355145082509827575666245320195045297174798068806415787757534438263648359213401268361674012358079930038844987103426690599024591049259982284657143944086739156348748406358556711628576523935917740559207879131618205834830265340800627988578052196555824465800068525067142913944279372831540750087333893110033616343810139226549877757686302646229649266502166689082572807348342188433780256941642305638564796994385363048971761082876779361419300806791832597239045156861910497970714014068438526396534553934577078992100668782488345606454952309423595951689205354957651441098632721925862380814105213438744011654733530076187997764456535700900557160004126595429648436929305649043134378705901203445579028774777273851475302833194013773150711722567900339832365726235402568930997577498019192757771472208063349649620134801053470694317354242334019135451808994431339566783868507688510755197997412540488925370828876692752563495664847017341767667095548178175076325357538781518067375206779085029022622491949913146735607094202936409658092650114928875973600740052083465999907987961034259311637903125446282674164611185222210372959281723718182681748863776056469508815840736967170094348583588945409175623093479405163355459469605313020079757601703391362240288421519897333170460910677897165527690712877768159279470283972029401139584133032709167130943112607333675372640031076260956497304820935250013701538628990663949074796083661801016656498007171291513642474048539210295009717821879036304642489320800151574166358302700918111025850345401383581011563778970327858980266827354117639158820798474260289604062742645364341542036896947281220714388839820234545603744227828139568024691647904354431694451937997992562240945513757609084403385678973133622630625541623333997489686155978420426379549668741739378967711744760201281455359006819989738726457822736742150809833466368379093523664515557557988333159392325984894562475664725508524056195201180276128353952438547469032909857482969477500879621536511627980255271908378009581141093586444415158002346449662962794311462402599549560467443736810597010640508524008850350658314679874463240269765750741649996570769823615450425686277447366542384693122824624798995240146747368288646683916571593323955786367555447277574271074658657772042797775178795983887661705590893203706631709245120019678348120007847901818392950957208235692524087146895520715287571100357572293187548104846347804211008775712927927439312803539449774177287738896952004171698022391306907325689414240242936623279243986361416907420038952936251618589991038947546736296956464249502960535821606176312662534586210448061793374425666128514552911903853452360184790297913852504066459405163479288968961625681247098953789869359739274591108816976838700000347056195574377701648087307166875297231728349977906352389060472568343742189823288347240275746652918083925583620456537859785300420975772883374319409796842060259835351308971439522843838601244987156015733569565962892860192786392853710409554428818224634750147603698220564744933587730622510052828773513870541045699030276364059470294178386140157066738346607072936977922558752728099697628189263647859721323368470903780707544419326312652959994466447058418456156107597242574380404792005231010714419044433058800707633947271006393317359529807075364235336071116956536569305329329394018129332241656230724520390888530609041529461633889474605498175442755781282968000046532639357725449171033179656705383312781133542438723991396483414769579477514472853462604430517929437278308670517431024787491851977582312514676998294148485855149497451750488819381654440460611704629233870482618174555729759252269579383957538251819442736494727810235673920511311536347357356042281681431827125455365098476183857622704599946502336769181653413184112618155557334981267435248850727335847216410147389603722830452793238321121790556270754395527266124873586002776183246126839340895294851178218766873043882946774739788595441944185810605201071564831609952922747221144887113375471787950000026764339602692170038085165688628904536984016817209842002790512028777215399420222619559942535849122028545486313441926889978334075042685013855738595154890701413190196888586023638961216844109781095973939097795136109613036257693916010796392147404024599226392312220274469339265634353450743364555847948687473502126829002183580226627190133088824649226679915689240498852729442368524020306454332204239860828174609441500499192521379217658153830974455161837437321067857027972610881608202159227481619985542946023293933432632709484245417435526717090588561073637803460329710229850504534150107392730202819501359327564599230291740778191090773902887747022034335636065389890320920595017596529016601635677738686789936309196612615659431562323497870014390361861372029822358150231911187439511130674918720224794046725675114188172158373135365369434156657235320410245842762843877878147563024364886575497814692363578506877922233477603637677288034818246350925456335787796200071486231036368229887476016173452088104833309946145884427566805434605096526881431549454149744731925276096985568592594088449170650876794064086560967228975307674464700540453792858449656527101399606577608923563563551682403036515658342869336428819913946890237459742680629723092745482558188229206424043521932368227843413530834895125011937799343544659548284427500460488272488345057540627728072614219540639190493417950708591137804718563717818334168663237846850934852630243555831563420976887943039449534487378559981654849587698569539188425308780970114997177349322746145334122387685596580281957001066330185851592365354522651332255488261741085446010414439956589848050663457028786352998320987159767780769779033283516728236498436274360626355654389902514320892769978051163659022986153559004328933769352657610273030521247897097188488105122578678101262905348013402567536410246426159212601297234320280238462390711151020873961228223340852057593536822928526802345433222865605823551779658411887555028298061021186855802690419336568371774914283144008864809865041890766806355675995125537399512868655236555125048133900319436778615528086791999242535581212649369998924798053203081299288056545581360453144117583787500602287888072960672606973519893374086483300191392734914711106278233803299796203436876323446789515355634190711148246284412596968774450553143624672630465107873832792557821049092597328663809618534751218727318035085583358537399010706593648205321539098280998412037355001712042291819706324133614904855698047289910560554975887001770665434716241502645434614668189796821690935363493983956992201404339213351935448800428089130178369402308787247593903083803118809673513444088092218609513836377223454593762353812824559856876504891932036309473652762043265144577605185715504502219660070839944763382060526836523925680934391646085560091663866635465125538986792707880979449947580085416275181980593839266892704567222196014972924588668426848660309703069249311958531138215124415186854102433808802875547988603323397399606727592102785579039545680663903171381228482139647536147682662576030520726416486659396547951117128864018372067147838053343871168652047141565311033697956231579557465090381202076055123113252570145494441928948843412499711117131010655141095144577090003752327621311691655136468209550847395660858191178932209979304539566926719311762005918429227854651841436561348862314718812486978230468029701702519423987159912089956216402029112282594529294469908468689780119658305871780412619914265799362530148331954721034396732144209588625532619386132672385852691556890526998906355677948695432365160554810489396254555434489858570264151538050437758929308244625430322637240938573573379911413307822760937888411717610839493788802758775980164837434282652027838845858420872994675252708106546239010649143646613780416085949359549683179770250119527232565129792740007275904995544924378347250116482668628465431178594338692031467657342258635896258655164339092890335469388531926186120027758955833400360545910954372674526625591778419532742766056651151547818429302287475085982372258533541248501528019984104984866743338003231781757118387854047784128271746892853570414192083378690484013071644527481381286231585554952363131250606593338861881860866356403763304703930224074312477537751292768395372720177391210567670678180512141685737672964095906557389993320551604460686268797572780903395623457126179765998760481617298628177819711080348717988982667353448572697668581286675308263663650073585189889072469693168734537605934297936883027469029847693583667824298449109638777434086834594599629087004906690462838568105497486852245102147144492042452550493635728032019579038593658211864746644153189288852117510068517958470442399852197247096883988241396334523259784232463254582500982282107673800784984533081958846796063436236859305007142855990707742626567285536872011203813234663890845853840945602494465475438821386624931279878643528555484340401726810023065772821363011114262129145066367904546547050927355183105933758777128380073770857251050004943239740215442957892768443098224112021103323907025505677877914083685675074397803401949780789816811553990019637469715943841843985506051074626343601566378492465578853929173821208648648613500435741807541420367815768492455527596471530923003695173616236096200916066164442501989173156692804554769229350839653098579956624216990820642501117023416507063282364636378002705929718894345687324575651704029638882304691443134204924171667033712352078112088264727009179913914678026970708240070646490749658180825798340390642032064357436278492536560120795450972002557899103449963544200077008184843574394652429564491248187263839189821209642991348987783515175973005453953796188104203133525191414037742582705197392378942953843934007430719649325498557601879653017998500688747515325216873566416088701739499915756319475516465821907441597649856545724662448826917268594513350213815897630096250746349671448586227757612760095337846776964195574292021136927756322367988544710892325592382681743058066653683806066744575603373758097476332075410143088744258195123876520934028383502528391849874907224076629794746739194501064075118776796799100680638100169345659610753030946589084121745292409240955213180890674519490687640089075384000662278948066278830939934285822570431452809007523934935948782424900857566746280433184536671185767833752605739266236221076754988205633170552484366836102363663599711430861407926567731947971400151074839103912188511407960773133225984611336918163947226077523073403785458879573576134796338809109477394314610422823706308765806811260946392205877226709219885315230903699352683105079901167938652341598884573989299376164190396799591821389137952634291209500198547077258999133083036804530975104305501420850506177439282318442880415248646094734017291893339362913303145715387017482354081185844816700508354780017245906403139587449345554727287046652157791975521203214429813882102214103818380890450582701944946795050344989029169616679759307424984423988120427314393302285611529387055900251008552393149125393461561167796818558914377595336466688840656240599158765810381446337992028583655152441608949030711788103378452089149948518981703838315677010548614311931737836228149151565755251379877420765729165271819187807182572661484632826626974885030332975492527798759910032518476311350276081796974080252436620258149119362678213047984316372222942737468794062438038079802031459456321759572136296520001749571536811436771386509403548980694372317172352088364582731043465528819839873108389195027500925631129744437386321043798558394263084292185520056228889538693588065523623696503371202806376608048886594951466670111400193997695944468952885111815274991658767498907258449716632228213308241207894428803187318419013859014386706491653436299632708897468912058340076893764887368741734987740538800407634391565228128054326217998976511925067104900074094931224850989798580784355183656534554816131278747975074745670289081482492597757020113472625694118617962243160242112440384654610937735330905519704146856731094577795622740728406080118934659453081990466733619396696810056502791676298010789892237984182096049651029545064612734158800978342438614126322608758951379052564871499710887155438393865913425582553937097014145217804721011053524887459645048927441220863407783124150420685875604201245885526593354581546238830889516065450229709851516748799380633234690157344527622651643841592751723045856044749094075668955276905576233249027201939695962731798440363927088276102274864814381242113040464148993281353812573394453314270761215435842488307642203001718456562793599047744830398050376675332273308098165182410887413474062532196975697910254807268852234776995536804960203866471190275055720214325231316042346352244524006412481122226560137881995243484750337083273955640837019007539782735225332679410477459207267658833950411852378840065626326242698253506085448256718092859034325603759152333586132090740640421953016950860084845998851150421037507067317314777644677382207163502927138419322599523173303101107226787412039101949877308136359170983399267935716093505047487128039808016338033040631712311432386635011275094513534776835689256423712571051602249408849727069263790907051460219142585303368311027418231336810479923242533827908361685908702912078172582627930872967808949345679583790805977328160447565148643232048975505839507450224152115068175250722223925695695717282091515742460125585113976977205677118811624419756779818852133096411524090367019099480328149432051429445778021433161339873255404056205141102943862597292663000454804723272602981665493363226629821317489832404859241248885956997868975538555962999435929160035647096039100675771325871073494142839595331923508732853038103829686417772668578450224333466329336676358583011017573903061796923727339364479317102376723465652976951447918399012719427269245590351952364977859234595439279098569193125933265044493335798955597977043731905731745635119129540564539488573930923748155891291953459459131612950835621912540196338879948714152436000908474508575710821524023548218924720017643390891687054215769023959184211184852065999453752902896967389221994289045067377568672379644742649999240890692593299787715384096358911245716265925150460505205587353945590134283759412225361723086576299087414351736649493720871267444881442590723904391468084659986465517885237083594923755284060509952340208411027819583270687017098270985864427008109334962742210403258658210438401007334048014647279420532531120799282478787920700641016226686584884209085430158109846389106496838194735114708952392869265530235423816005166064345439250723237376619195345793762726973842349113136645061295844274758581773877174499515508432086659742141827051697444110127188972182981777090094953820493732352311620771676800096296816734744011651499423311782559289280655403372264075327461682428194670107465689841770260859371866625241680998566762522865546595498904501589545119866743966236316063822292642462232273059326449226373992767773809782518084918349504937488076793268099347502126775714926962887386124762385814461507725921883434905308556902214178312793633562497599500402725961063111420412479511744866190745559856665555304414697372424594940864889487371420915690735539642739119915651877182928614667846367817199853113662051075988991810834265691714729241072184289213520843787391437903672064133066084809619803331631092092777073831975855824991403690696872136051724467250639685187624240520512417588344126893621285809269720731983329491928041601700227826652766511912915037123313311854080265249481968364286657426483690816882976339720225407692979897089033412396751329776182363744131190255311150305659928485224293142705442989053697476503612266831997650052293579093009751921220504887142603854342189841652540712833532274223600024426855390822480026778913127986188542081341748945166619635058259788660553365549608791061424181348305799967843986216844667853783037452606885067382595846856058724734399000751943215256921294800949827599137220533197010579111747579821722357692985348694285586310464982650811338946624095745155190132768024674550099446711815591176937682788850808439490274875333544925451450394382175482421777147638030096449472250110039471223868209182930591782689110966743173737664295388332283769678803698452799716860362856857715169719940316071447223026328609263995427131011116497832525586256471262010689801749244676791173466735810042898536537930487546493812911845028015015218755181461382088023290215959165906140376442648533501043151817018219178004610476132576249638277759504343678865428549983988222709332966914144226699825226318258197903623685219182150331146315417732764121728578266822484182207356252673910982660479033392702198875624663566678486422340544352078446134447626546172927930302229858605482046903220829752343784766031162232913109864947249393933992299653791880102444332009555826861655954756576953369820737949498573617293346414856505728631266665908875493751814845263008286064764284093438050200214378531154257922810564569282592615568504992173140478156429268452865048899977413087353740255089372566222850158979613200740385267873090520493371242598443051579566237890981846298542435809700864261353904974238889157235492940086748010378018749633283812760653321989884846759749681282742603660811389813495298929132429285819613229880589194843346234657613351679855387594330840033231145224105738989994650559187986796860464296290478654269119644111980476035757403878041512739741105348735777605502228559589000054856074117735120656254732288019153716891090819790232618493645038572241853709552387142097159488823102489510826866092925745525513320472946626819584050380078147669340288885081098787883941127831219150316934570933899334706642010566780214188588650262118587785694799303300448385370548581661035173358533015434294798372922693378871322238077345466394443623143386589399212134177173739219660148878375609506748214131616518070687852719052985289386431321397406301571614607948820390071325350835338409234539221197968714694846543167414485073404661090171070216538644740116111099782994847733065130187808029740669741683776397322539081131539269748706058414401674435878784133844642286828792893872249914758583565190313786573422778323184118941990470726845592283605631686031408956777900240243966723576055349721859160797703559168381331580874818198676555593825232543889038709680002143836026714125117793368722750748574550713851582344365531901353875656490979112936639216558615088995794662088442609260216694025161769457426031465025436505347746601142961408316500835811866478610858967990868723169110078537770655581509740137321700450393128876748398621078808288195547370436029979575411607675358924456475308810774297429757961346137024879424371944362873064025014287118843049427677152684477263352928055011539591519822237649206388728633904107173600175954137536949424905556881549773531815725008316719319312510187010446187284684474431747733480731747222696992008447011427640511276759365918126306733260509915132090225364262355005012607981177971062286936860233136973677553081356020046087977069077430451640516142860117152224008741146399800671956807223318735286756569968993690880370146231203068358231648778489392153158480051268039987878018898139497033380705104609605779934056691341315359162027769838525603590127707853037268102436782605484342424722336446976430589393439616825448472280005176423730645506666157421943611877334756550553297304865160107240524120534976065363490129582157542844822738937861324741329834073564027608288425968959026316762527218280513972122884968874913663781429056646206863444935525136283740597817613934643824614570765635893933420901439542595790429886204397550254132559537314746514290949425550147966299820736616965331654428259631538136157679341751935471646892002796960688348860888463488302345080791132973821943067005994187201961767613516693654191825909107721674074343602389635410966287819962481004489631876272576144918981017725264890752279412197535420755548302293147546189394280054480729471485053434861953569744536645225819235052445182547321632024584337832757331988043735031953042679394541996989795588496558949272880151396955781725853461842507007648857907431030916806157168819288341038346494145650625275656581664817878814996873082209536064882532912943116498006002142682864863367586801029046756288170481341337206757128891202301885341870508421196569967626894316876920906758142046397380799597646340328112138183208559610138178015491028576536877367429514103311305750123945047411938681162460152941020169188135819033014891875424568421985039725684825135226198530371306183287509494849061686001294308017982083294223577242830575041360900868119952815892679540027423382726607423302384354354099241051567646300678979566291020956329134080579437955133455419903105587302931322146022567134873916944684647070421841065027581524705516084640914797617152156951299880495575845032240225543971221744630338459025782621104248284962439780538702327313493849585716381024383378566451173467391751500408618061863536355753470375402402719992089840052933830404547968288644694766555256176683647861393370148689067919702234024697353391365021573190626524893585175332193606263508792191885732685188820294019446442448676040084598220584581571264152616581530911062329751727176143923485871977332840367017384607446135932515694239561517216063106316404387126843434425220809136680062941559598304178200776032474140254321381708602011877325709176106874512237290872582189746686115033715349319586669242207268447273503759482259206833765659239436595876847440958448895723029084975378060587505282347272373980625980054233519599282045666839209313561098333347554949838082872817855979640984479638759066242891875300600055456288984258505024548051247620912345966994789589166431154036110950954543010129551752713568375450171942137100567816198986383976388762371113181408558637430732907577425630756316032121317559248871325729165428956303188773926936565526560846260892358641306907232047777985557410519409442628019399117315690127370307064049564212438837475635517149582524947381569003922346154202820683789382640308825093305122296091843358237482676339765317464284287119118975028674809148285982607528372988413002680552925630491964236520039161192528854063719331958078918604095048570918438188144260128603721619391632709851841606343052302453733732948389182151099852904669267116195423182358642101631854923381035411963624088451731294008522367974878166184136188371059096112662874462542790243097780132150063012945661948974661053909920656638870316257995264411447711037848834356418568503471445763768715949849398347807971983983470739608054762505555535406110737278559108128903613487487055963642616520789341832573504652416139925696159042630378843705006518398473687968047538836174694141783715974245090534855807207223383580624351737638183437817287298795948824564213139808256210641047748607912817560224006863943994064448030871990457464400726357521388108128786390566613450883497199413900784073991609019349627707653627865896316654534583698614541508565071832019883793235380617441651577303988926079773368271063087422194802326781426836874085087835983752762774902271886283687994175431127620953520333588568933046119505827984917925841876808544474561091929060935475715180974299569099556852633708001031516691243639828091519839274017414969398412899310716234873258689652215718274054544169360351992705205763661441238258602953125556038009937147514331814453648499373559874052542633757018725548926299768900910024178341919830211159018605787060278583309792957370545238447013023818220661085155080679843959366206057437450742388247868122216517321143583709504472781582677482078198572053982926788216228507700107742199027101337562305772132730511413024579693993888563373531214285100947497522426708975703503321705577017975787414855100277568354550541738794702234793652039009978434393625144588966666764472558276850085028918836384177087688542395959128290344640269917599705979965619933646319155742144150115860114234160180986341845958704488740753324651163025116872959434165354232982933453629225371879422327812034056104669765133888598839347039239199766090972186509176086277867583058242825820608639782734986765401082481354502580408844436334382472392295174842152759037578440919851710406809139410259312647634227404871443255648519105723803248909610818265002787131369584364850203246103637207632641750640790916297342552101718029978204448849382756362225465850166514101210476774538435893801995567518076120627859842270613211781565368490899308338067413343314903277937549566732061750780862382696433681134929545705554909448462547356454963061129662057032875993163666106257490284607568007995522696418307690235344060034064113560650061286918484408741630237225793833048077515450846955650770060400181980400691161274242256995555129561336588061184945270794026326926380035697359073104730598212286106134420706907263747660581335937275786233207581837925356150404971933859119620508889729400869616659842068196422125382693691475252785996715168095303902033533574030174751921427002712949644614003713731986864247210926878147336873216125248348189827894123969982271364602462968521990354429920445660884132236222616430899925058764160071071016494966516917767948300547907450893921237660387331694972853430234497170145336437799643963403847676148193497665290603170733964738672013283349304712279579932210168575993288802807204200032902210599097715862919003260570179357273573249837966276522256462368428905310065153950678800495640194813285727725771573405360330411250877986085266301141123967547824618450165567463869660922185391691221823973739132245956238311120296485850289876833789003679981965438884700918006832043420833084736605812392002133860556156089513361580034732318819485777100673544623554257053773439771483363690480937434365975988757647295558637454045833663242104611981876202754904407605605765042411484336277904304891476193541355152166464699008719358063166747057215135765731639165469949960927483552906145237256015139354614244851737954167402831374462873791733658147455793773923825047862712449573631109832792107392962263164948346487138524297919393208105712854967390260063357665932659322691227769275194368960796959264626615983043319184977352160657185967466436771479569447657309988936073724666257446409848556593463191065830445287089005225807650642907511210421166848739320209319474712931256394445166939582743666591339931492578063860563745576670569906781336226309518436764992345010378580985541724833854666766111007466470686003087762857561918930612058638137540074441748485926295698186711256404229120812666548526000401337295980320036180137408978729518429797488520227663598611839981320421742592819614217469487705163537199861170376691718038905164809697394646736870020419513015069961576671511801318248638690665925725252760181222310426597278841350767523032804027509371080423486719992202788647911528356452069005043939111718881447858290395442454076621857660997819626822458725438167241104204225502848462439883209498266480263306093238983288798328558378307422753151586905362820215283756053319632836410776803909388676642681024315757782356742557837714715067148950445217082611974225754523028742894266651958428825017203555120112697164438587577011376388235517256745224810548797462766897494175193915499685805720780707637920449053457564719315663290502028557315584085837815565051103184871302932794599201891926922883653217578282172897532823015850058973471001561214015797868248295538744059647347257961787481212208973979865918603243452219836199952712987503073522344564161766591812133533535925081350939097902639668991242611226159390412155358765950091297265759515188544375816226062038086004747119361868875558830601632344413730314683576012356231999390774792815037137326949935550914189924258738369457276693326015550183063789700522130619767584297307988826653397840365719678518902873167260985024087008819814755982329556855373692686881592739163937400757795530237168571367670590213019620144790480066941793132400637486153298965202696247349353839415987689831941989596318355866590666078090667691669720733938310231061278390281731066975596027679140745511305690073213601265711445711705399814915347275938689179918383932932890611894494376618901116705399301618982005963967232147837918690331553680492045797640019159316036170062707289850087823611368923328739355848389151236712424389441485823525942434975829489713478407209041097169254193276958196403860514136968415051691310679818319432643942109044375440703291098839096469017727983749070171190517214566428736038853568766868375964944864634457473198023468069664885135329462490819449706041919621757779531353328019971184097183256564911688955509231710555816006615750804262463254642027160585754945274576337921145314405706813826981968145881567101367267510416960062435844822988962966130158565207965188929690089660411041489042595929939910401687508371525143614105238629425950133512181009585854708939089476219925591388658558968162620145203693748930503351280037779904674399691567685649112570258887965206050997169545790553369799110142707369925673441156773487577836801878051332080431841753433876574635143882534485619160226436507701076675201124109962180874782169495874832127160466532564312090573462578738398170590003525555471259680533408446797294013288373444488743225366835481588071422019756969698620198077211372434618434925103387925965176650490744173454981138180817112633181594541927889212433343358445556172292216017458123331868740420540034979555637155740834144311660339514160817657276811626601564325999110323712267568500965582442025381155131132228109483998801837990161681182790498272145159292840396581487410712680918597425538152036576936872430505224455347409480579839966305987531792556704299959077881306138743773496152224824356411268858081219347977668347799521322612797396186365452409393475770932028421472843441367855521941919307417528414824189815177805041219194024165613738512617374410930108921562301333185578403913533426546280638590357232452826510839122425201984908795661937624341564686114500343658938826368159538462161546441520888041940501011212403305007436676409866952347857364463302241468279374647485708140828803728675044744239150260306528976141765205193954138685480974746856233873218974955839611514554451285062144528696301318374591872699344039527207713614217175647867604130340073247961912202080521591610408751587157716096033237725878113953173395725814211706638178569822591652506486287630571679641829137039695356592693748042710754637020182318407326017039506455937377762462749502093283752873294060379025464207514300847829601721940638183888491651983594422163461137601089161539330317763450829976650066892798705775056912586292736499139539529328910641993338881680690684179615741133150114596848076109517016397312953650501591275804042411484735156764766585783749975736496102689536654390701011468669346097154591320620293756844625163714749660846528165361110082416611815337114530603291905082227604295043443876812444487365487492404738246711103836668356064618511034969230131081149923216102071233832230964875754594006046344081295192945901422846625816825962681491122718195253903072211293659244757669435074913707216216256989389918041721751745230686036888630357143252904232150152294661655253758027023644130572744981753403673552933701980747743935434475980336060107978808663576598611469642936160780675248254565795999378226410233559497209943685884322109964228959097979603433091014638241810303305430958956484029260051451516380825349641470279633688647224285670270233657622546111685125066902385388675271022571010371929210787223553064829384212430568920463131371934041168936780529366484949375332961728275216865362415776219361866204879791366081901257281914511503332051364633323707133083979232068840508038626542566310562780682942818467033655286997005901617015444163971211072333651291814255707625750089534528690847796215220734069821552755082179812211330521274240137811228598800375082243824399927279199137490230593456550789725953727243209613694642022848424646473313577360779221386323273662529912956914628505963640274156329245769929048742697330390736861028149701036398031537183278656342434708205685532845884916658517365921419746150078867873935918279228463745348595774845521239757522629429674847955287453300581875683777041039516976085696053247317548452721168752660574733157184709574540745239754529405156304148794155074148794907926252064983701671126594495894672424427510432381629805382050186270515050809128196943162134317196934178369284804202707305190745546921233553202511482456063560919356128121664968532325527420731412226278733718533776601391184378928918668844278869762058639123627501024063138464640265094476138018751456188135959063961823479536105352804683545085949844866635039944956453766281127544840236315511118044077145137550098184078023128180003059699438707568985092306255691330219157468584696511595484140197108542301640076331423806062090215924544114877386078721356550488430473824679781021378498098359478892881334631057043865995370543204660293752201125083324179215200304504845414239506602835341284762852859313345633321451297623329040245381881531706865939469477838367845857441829944204930735875539478570910020415351823325655724310483334229895544651706535546093805276784287604934222275082257370538678235715526523803485295989688098017330985372631361946300021717227260198373739304345663254294360595182209382997951880496361980777069335567417568880792275455757917363315637554116231518451516673352891319396894656914750245335481645690910757492591400593643073940560750514527106140993757957789580031963511825321612319480261799853036502076903903283526610027640050186500313039960407702012914718890286721318757501662404883454975366348288373252935249182430584407968090800481383304658905800387111026380851042139240303326279247992041494736958138872475785709129387200373930177665938730804691148067565645193032324766067324820225981046649276955559183144427526436008263622096168239303143951119000545055140484170249885985798676652700780719538225870742773853015827903754880270369216866815271123588202645565940938210445114983596680312197383300811365564753364757647745138128627902818825117328165526957496268203504623926242471402967762203463092510245408641305166357265433491726776433663922925230322133609404895680567249241786516011211337101461428051604884954363380152084115658158879016153123877369951669628809285625878746477476521851320964486763768795979805571311116462339163619419150861590759511840228956089259789198028553808290560149772605628956714106748657618893663826050501067320060243887197302301778122522513581897279515104887840101004812962359058036929181721734050390455526444683467103968409991056006631042084342646095095542102113190789674345275913127326018252665860609463487427583468851203581268410165865724602326267596293355267852127570728160824405508868183394398906322552139234669737533185533712857206557585300959443005852437570861456770231962148371196490283517532639384125204663971911824774598908283533783318634238984919278551354811613946951726491690230720988051970588860836665807090314255880345369886520933777014874084506238528175071110882678004186655611461135019438879357742220607714930883193036968836780539056430735097226049324784848066063319146383115326093482014908534656731010132626957865847678499148829675355561716809699213379313831944855448852623220262456201275579708671066320112223703284811322390668032284885937874198524896427616295233614843367924767846211448476270419560501374804928826796929248758638603524084415078377579122339771048439330273541434086593939046611037135642208358966249940660904447715430689918698426091071137821679149909925742727026517519845924758282716592478834082886212694695137471120897283366859528956625097317894076173775183409474362214436470422329722907182853583296434210719378814459479178057154790594304619645778078781492586197225432499761412051211278254789285395249684003229021726869942737857018332884842641758580860347263261864944063016011929657435994542632239138750579703564040412004828053324056085156972423971626532636418619166327356807773808869385586539037538986883597729792414752723329073715011448320333832843482031781173591978733851451814070896865059423394667314872944281644763042443676880614321037823524718534877196664620786823449235261602964622738909076246806732365970319565656143522706000530464601406480158633196262214255406547335627217910467910454598401617415558340637506878964772952695018447955576590718629326699920609620786636855188031854789380050341897224377969300789928571454229930487080754598514376277710334360986837872334199551766601365753254929591566139176644332556155025803796849468711211526093772871327749600402451422074229838505792306738145832522188836900787756407950561684479194061198589661361995432223972628077312572767747569831084612444359046806517815187393002256688132606171776421598402009579217742108573680779596726263362509111556101841530925974705983193029133252651010749040906939444769810242540748699376626766558966304485798761544540791390274814604001763663225357340217893249687416702021589195120319514482806873233279791569486689953714239021425026535759434678669489122878554859952913393314241203983163719067960569419217033174390938254671897708205346100684588906545768003646531286476692155837968094696087381099632747574208656510033402937086735677039936150244890153488985366538946045371767024757775073372168539496946094239575696454903924523721729906886663984727476854385482701551686020279481834042014713010673952377948850279207452951202004715179268103820375987526024773860225134889687041066680053114132796427170273995374103119882849854664870891372329761818373667765337402195347371811812722049429004160176079637405158138290809659258195417596776295390956360014389831249682959681802927422636833466799210834356788422169738807144209058597306976807618617227989221566147162271298042788471043072638119392055671717984593924848000581532539491579442651361090233721520874794259349396870385778671655483544061776673468519921108006029366868946758036114622409997459585771032901127652006101619056279252980633526663570972246256205864363512099593495316464549022753730256274802003782896155932510721633757048199516771579964772778578155708432805413414046322505330804673146767273355851028866142576232725958968505053859580770915729254741376518119968200672292323652458693288861241537300863295003022184514694831688521314459804947120283049323606504515929233848616564633308900228967628871428624208157005745247143156182746404013663970822507747715533055101509695673408089520016199648471101912624146435562123170119955506945094022861723621462968581871374231852595123462229248661501206116963230923672928531521888556931021766832138418277698638289390875682997965243681484975132935887263327256431491122695083347749380870637089347398367259277177321736770530981081874941842105469316157451683322132233248400530903175396729973869034047912046389441909370893297764378354873784339509952084015337497260075845956609016358516709480221646801389852964139378014018737694598026446338180326290204935380171492390629001201352925723027097385620493686361324554255016725075606625923655800691064720659348067564894340267169450199791301192865859713319241668184126294458633520451870070730035735347881581176139385398624573054836938616315525506794155269403810942427783619130186928694957323271097075352083846260473714943093899394448215663435627937774646670346202033030621578431028764219079898448217349694657340842701479749029552697516765928060870039275299958154140666763478954932952381501341356432762732215459783799579910894796871234014340924113068310072146670734417979313655239521379890276459957026675124490444412111405778294410682115169052078711569102847555022127912405165726834636669533995134683404734246743767787456083575348217994431193798867200384044002423870082644660392984464581352050018950277979490958503997108594490667290101850645507830854235771606221367198248010242697952227048325788078139867517610561069427260982282183335149428885038804028367150516298617064660963295037586139987093376629354440211262159047852389178324453805638080055985843139867058868880725954046382369709663463950124238938804761168106948903996112942938396347932625575543808640635867221068912055066735306002933878745096804323330340236561704361025385801697549297901155787441071756079743887310454200357792182045774315024899590593507552617124947830562939067016734449853362370013886783767668476041618327283364699767117976534037844786516904637628301580895539417240108858220939350771351215391548501926537237654087384852503526684504721624104377099366206741532204621904733672903248403418516958075610004047559690630118459117509690153315509676918815123919812783883048402707779716492025850110113606079309394083828698122660611485485460204555299823242262380833274704794001408047818166180045893247576556585116208128053347676811377250655839365008097838939357536984435616915736145339047629257398608262646618524103958198523787397746362230664556111512205002558992984884977535066232976441316555725901336529204596237718188161584251242863876563545000379516921887619089571025150043634989986257731935435339217658694573773276098322874391265129270563717919809490800675194558026125952834850183580589410834310316164541896533609835924872704748519667880988681119569265323877237006166040725092383959264953089770844392249360709300692552022365855912634769876703288456600598913034459398695609235122931087337903144566544160723941468373764394787009476631838183032702648624089641689514579718591245106394443061321254709762669988634551423997716473439739932845761584082555706117334035408878526608534978405666177801899010334780260071845416893935311854628436811523958469565287070908951927314923724476685576665160554509068837862202917976901924942561571301409765076024823243271947894527368428953833843580469012330837919883224789864781116039960613271440394624635471491578895822608885012544081750407762033505969981151183059871765576579732134721869879318764285476103973951124388525778935710079873545412454329891682419053125296774157040679271890354147684313072623005294083157388557772907539565881483502027100826059574811718620776314034999490690774538179691182686296883915493141544397384482628892938390523454390877409175126953449672070593403813005747827551148355702405795257291366562814541940938844750387412284903033122725302773116269398278404125792513544131861096605237639085850690648605653872142112774832440297791940272441491109273861332686028321335070843626736348965542479688726812541824406493560153563279165484805277233888309493843884756298527420392540576067134945686845781215946132855463872282155695945402520862347137851240215225730409174652567637912718480112835183156009522478924573731222734749034734146959511249996730397537768162036240281348119048776041068014362838357044709394218025108503555054589126908408188347159029185229948785410338517349353504533784174204567288278229818772290388558093707255757982193307455860570923357030671781071873510124793071129389764697642902626286080584940328766291705768226090715414648408220598971025976494391045552619069280828099083582791080627604379497859717001041883314062626952071236433732019578913173842221362580700655231748568037656630101644327670451671672046665337787390083118989979149219930233646707402487915904052406095087027718049150495480491151806925548856485084647887327522822275027338121569425296043650561633796456028632027872019649129758187443659644440384694381707047963825530962285686824376296706206608010433778693242400147352835960773113478248565251505279005553490815716593330757198666190606560410090023861835448825584970873509416481867007639156822974989410206689720079014240342081884398140902245691786415565867692828728808042175567028793371036635765349100636173175675448311393114483418007225800147898842909809834198234240975015526312196362444813849282130907281541799614939940118891730009710330894264284171289272424496946934961053056501861499959305646575710676637349864749779384319135845999802884605456793654376417090861824851847026353905513721351915158297059044233243214577103347777840221116809534133467727337667848885780952523406373786812946600908843114617764881063622749904697406165774524425694565004458651932234375720514280427643870128433614993515845813940523848457280662757535686936640682355127575701357119639386136100724116026538917669603316140751203220506478946805586645514319906341577275437043790033315255360499730399135053480065225098474033191389229010206235190268334870161352475891499701373075771254688434343411744129988449606859973950132493004282159325304545016106851639728127496746546567655274176504720509671405770965634177961846110009521983723530200252249357099027008655686195664510039795019299408334824140732011973611686047611563778720251156518770190883786238327073755230998590718133856391134914619911875274126146890222604317616278023471431839027440097232652400316756104229624353104108617664950232435966183719657635775206455399291433419880507650179221424469082135585452212983685736279898153613428938703091834102639573529663130746624427717807251988350322805082707048136594404538077768074542650779531912684928924699316400021376527815808060259937604295735656762853833883516927889074702679212181962980377830883455296446273977508410441009653259986845733088604165701922956214246487628808255374701425169188112460747155232883440641824721684601287206492368798557295607423498465342329648350193403668938326639080621180120992476027242095943313486982483881608425376916791649884142987337619576282241204156293041321055503409722662268163815846915428524580781197330077563750270669664283291213505916136225623679872587714548288822795035906118238529764705669388084860561058335601010863011539015969918020582952676968173365633512438841514852678568816507311229214717655159691586718402102244917905238207943065842475219738976541492016321326603059233573471339282050972743553832054524186372309937659349587052585229163628679365928173195675365122455417272810561604950470633391308749702635849565148896298700453828194460699800157303379631082118968087174268535548258363873386437630408056830482829357489027691053364384386119189679724071381737466849224293327518344031638918997002370584704865108259443555479941838510430273420476902120837090738793970325023666695303742976035971877729732153806089361255403012568668018227536807466369019673384053145012226461075309531955265056397646949062601613364155973476927738962117270674204991747875346191049161797428751272031209072098950628012026322779908490273507102019697013677130915182882437292000511718452418797941508586652323518066500860230237828053039410870497346690046260763304077334706562300535740292010111772405911828458210519296617511478256718146536264547967255306093773016919462303999073992032443388213268533760993298713446469576701595688432681751182535278164652029174526099236507955024991854037754063659596874771656454141398641702274954368462740356987870112457466612477843131866510070116684167220861298399293964545943942423688213609792268336293048314862535235556990379240721464635597248059313881810867299691497318569179520486849041824114619378745438999214164004454410206612300233990741244394265325375805624179211447099274036561541383801214288486824165513985376499914025750242173300811605647199415878881314406004686101132258219170321401596480931547746695840301608086697820204058960432961231028788146418313554688740190134472076449020487261552299346879187895786783854330900144681108428393201767162076316554598237680477356683991734281365855979640786599647793545431993712974974603401012160397208822911581289742843442782206001224892635737768659178300757839191965256669493969267000078478552222334211269696624546077835697517043199930136891177540289202122687931951991649417897970414527539030913142870790371345297068318404989079117212365679674755780997768926755808495052297904035297347944044662124180633097668414140514470895515145663697065362710499770669337652666857573061124939403267503773152030826681871912389816000049116987243451251393003382589382566977868203826093337232215684142541823143598696254939157322898478799786173497398369676993405517474361140754222868023317739279491045594004604649663513186536718075126785771766189096284376715048269671487631654681648625327298342348541877966223412359727404128248783028891457297531476843372888093947607156526583328569911515412129938721278459284404112963994300272294639987937643691015500641783886802824933955364860309361232393946744661180909072770371405904138099583036427596974960356726626162397175843859768884410164812548059543533881761602563465567341010160954889484588037895933670049045291747105151878666407852706915087655208781343740988727356609748638259790158371675250369741087035288754929961175715142341063803134178535710987750486869302435992017130985346550786779908720593386945944659299007270121000147299043766656884509967247645185347222710334363444728869303230544426808955194492490110160568275092861985009144532023798280609464433141108172923228582860890737907160203198186330742525974684736983846652241906569214150990046013946652946657103781749896553215047186943667991290562706526022164087523559996475851821645910220092736059355010866731105585727581144104867954661174622973729509367360549950538000678586548830962362683787188149757504163634783624052601398604357433888951191111121602150683635665811702700893761234567763933454840184933368688572894107232940713124326157299636069910628796225954902142337386400784067321374943373557297296794923644319827360528235723868242026936531868870499934323698211888172391799092518438425580142414275623087780966925850066662574597701478076109338755764777392891020711783442640618944261398094941877810499783461759797335366662415912740178484821293945961874838887812507960289418594578352433123291267829654229867136299264453327749153077705683063427107774456647469533419317201380818810591983684758148516117463323935416448071963576436945480104198232753004119035811915729725336607886241799371666592467989897848561036509765539329125778866285736404302415147561544162237988171647977789929681845533266434117888392583821138982221826917343789584960851214719531795859369408483573389050382300484978948433829317779654540492400615583783294836406050027268265766863120617321223816080984653753965229253214593857560746811077089097868546417594169146772141072980743297172078368057496186904605124378827541790332330616266177875600894075141979336056358571199812308491929521431213381389467043430868977385597360011212989984945791331916193790820467102292857108410757330727130432595129908855481816199466739301123460806722960931190630162035673035256430188493134332878624175450337258988918339315488897914446676796722012232763872002877561468436257460310037645754189282974586196959773962607962963414825634565724458886965361875159563672384551005774553974801965849770113156108314419538648408252905041335215368599793124647045309746251231453882717195549424880179311490582001978563448073351426733840484600747734401752880347787204042954331924599654493305215966536353779513769493403052685388460173007927081448385651980186512420030824186075779284720603629104236007140908090230791656586302170638570032852211265957494306241265672001422641318958489970689097404901946667891442641612999126346827176834469376148016951107582802277986956607216381427999099958600282067605740697201744085986758037563522684722248423714274265274399048154666164454395808805589542732377799787929938386367012488308164137258728137508990387014022477355058639002446846833237354023475670891066459227158001739114998324100155839591141314452312681311315877407675180328859888585152203360351185371840339511860229360523460493007893662629420944003938173936381663239598365429072107770423759228267240788801127528610374136540320589435174859638298554784491126718438610620223646626776053909179015186573917379344728024796072985340675384513749431552811352279418623054017927547680262422459996463763913723484017381552454351409024028223654328423457622344600304712344618170430300023090080779645868297122736742477888162799944917154953398225443531260784657406294147212432848662525662622268808440414017323307875506229403136892330949859034993013500238402856075107392082716138192059775690963956738582688822931308880220978932065643078905477535461046721582621349621977118583447630898314665507682463692382190689783351067945852296496254579583966361908728939049476735171087488061236463058113237947983249246582478502594946724456095739692893281613586618137994042555667910783942702132267395032921272312531246875573830830083645443635496708785885535970431277515451495374280163627360449829268174854565046859974603116546321658097026552933947949186404254956579580109770588695665663978544199413399329301033487174356849128596253157081704505442269664776298359493583509827749094052351610811857329494554025245733755637973979785106847802739303545297594428496468008975559854330081297922144210685274560377216482582607039901101755933156210330799654592916742602852713008950812675316356705703710286701109369405899180046147228423769091151705449394875427363551046196008005662998605130494086921457404981827014250690432031714444328414504189892352136651655593258607195069109839160971572681458623508230230211130073482071571913383520322407992827220160271024467185982075329505887136766761298856379465775857170943194607591152940180540388070016815507316342548389351481763532873949292185870025090123128795022584567090399594545206408641201418871233148198384299485710485964701332060801735797536024129772711639258241639723752315051716408123672258644880946568617436094971462129404608522615450647200188536058658129232554413995938838510729936461047508346628686728295945102988121049505435095769712918377122064769176864348403838118561813768100598576762543001792718048776316340830701740094093630430364388965164489305292542534842530016232503668493747333920816849096470067166064899157565653667909174664239684512218370271446192484969726264948800076370539083401930383456237828075323699453369521504271957096267956259693168320165736422217322570417980672757367633667003196209928358420565333224651964577430180750715365427725126414766020957129806864203692990020372312628777845531754985899712212324908069298884150474004207533365124482066948148831828077201424293820500967404794674381223115652614537253814650044915580887510169754099391760799721753895109668880052638885124640838969410249196587804591702728204850416713563540734632550202576716712483440956275715371052812424870890673457728172140483127220590798055782466936595032765682782132022476910498398591334639579678953247218243340218364002977681814607778063186058791450697863713724608457747296521800045398622547728821637722331270416226702236642757218488162655237761497460554560306183444969565526201132133081865395370723326864472962622057135414647032272144472511383637958501029983314041742659093529170741436490764884266165798276720518300309620686832315367688112868997055912027697436480715855960459765785910967061952872608739390367586311260717609891562245262610184335268406371454193118833546263807425737077335132740377169775167100907109419928951530265989734481270424001491558425327312338984210180925235335311949528784505848830780575142675540772698170388834142943401847153949834016513158545769504898470021519038057182778266144884418772750049737345411484662950036535865336404505689522924071712840047578955219592371449691799967193728082102719991512437591177577886182963980598436136718963056900548154249107271412397648447673858858697391383888319939009013946826459980931687572751126937522553950758014132400946461343343008673823464911437351980834600684106752922885864960294859003427931277838325567892054227596903712673611860723836540840719350053796080754761468192817137248794385479439216818294254385314040047005983240769742088150953443670133996766666453286550170633642216575652340962144366906781066992407425702746379951525730107229985336376272333216755005488819751494461842239714842089318653913999047384107907547365525152483151121796989089115191472427025563836427223864300401761477788181889020186381373012477191429253239220006558619555584045282701854147564917056533233273646599783071645784728899559770233505676329706791694592850441419520936920308761794857543337351726807008296582260937859844189166815113048553831527257950072011801599410338434045973794316329350152327133884924901450705399262013165547022361061219973936417964612957500051748639574054970168850896543492782519278979517503013522061274617462354459204873578495927511097555227346423325453344951086204590914546952662134671043660428857036840160363213420568431047846500002626288991704073742819347865289587980593715424636857368355322327238944235730938162203510392827233442414323541763464818120913204495375192017540878777538269111109170835433337585064816554696527954730943790554142645197861357354121187981718108941846691196111091045625284359659626775773760350897925048974442962435022730213351230176388850332085000637014454269891982496329357121579064852193439879260676816187651182080995839936446716605806959696963051644222203863638573346158224391957549909993427700145917005596945253623892324365858347917167524346120373780609885860040323556380621338290150694207052996123663357091861757317861273711703832061279595507883171551695878581194284622754216097576972690881247216406640781242799359915506480892015981592251049592527640279618848215241852152024794010810162077991140738813262389492494585265183227166757726287738384451414462448610735063913415217721668137145774001448867085708269384165668105867962241607901805608900262049712112994497604003892875863535670334036248254687741272333875447338462533350036204940763171255565460281183757893019344795724229140822503934155987158726641633785552124404746962844439433805915434816740637205785497853144879230268266063523219931669731858772355925222476698622529393153241402507470185955747808825649254029412227553157279503570694908537037358597193431020699401345410146295280408015192001025416785017193042787895931979672491331186082052700913624006302425068880061821077132396114656728018015963649698892143218637012091377996771884028867718596902023007791943953818530581987613360293408484117902655977376538827115026094028611640187767000521270082059829922326458033114699624886518409969931599370027798065706200074824916168358278089738364142907803755231380085558346161305862986946024049017830468242433956422755742709694223756497240760782119593578898135404318952959146712886461673450325378783355409326652285092682085691715622937494091478973538647720276954557724087118741805617709084960697285207446590812479036789735001446856505669700112363297128673995050697483185388599438019551092083625760610444118934535115702829092094933304395850563581076736544898597083888985129541377407341572656145670424083675950788203425961631276586916752628080722495806076289182622310920166210228036860067063175996175331082262491951649828265731835517689417626730372714881184405271666533220711222914630817376021052114893953311282904510282660601273775782913094306590391408383832216234959221842880799985800575420795213008385572953654418501777356549945554382428368640580594157915840668079232734726028123167764211879664028964613444497547311993767963346377597377523539760453931399387720042061934623192979566549783795930189542123426435337404602616115868696021965897829157036083791212409487593555540478590285287828897561129260360469377073535863719256930816193767804850299340663489082858963191283783343036411229627336303260356273585493222638721644613238076534849816778675442015193672490157363425453037623608816052737231088219864398978706126770246181952705059099305354936440130545943159202112874900276821259462794631728689217264938431060608197410242891187666766950936811694617076355419627388681168283325524637401547675682857483243018660666541327913875276363815658709603788201043552470722352349557690904017264598456998659973818193994043580047846801103987678914846235163721122690702015359073912544557532128226039187771707183135552567476618232227684336169945064954069711266789353122016715789044128047120072382599337299142275662651477975862469653113719570066132709457731254236955515058405727319777256759410608451326232596560402167666934747722568185685763931431890744848982232862887699207871440433159617983296048154743183887507109965518182460495737145998794579272677347900383856166233943146880067182747425318195201987372613668121214625929850773064328624470361488085416071269047597789286455648937294621442605029634198963547317313297304355480051826570933026510700279671518948391498463348305396154052824699372756496167885968387048870146676387489268193237855491878533314360683858673236358469660129256942993861986908104366175239897147908207825752922553754602080705092435932646039859834285293769960293310974178688215963334875886930241052072202086595315513808286006717375266369837749369244387450104564267526102514855797764919922172575266109849284987304322353050256433327389890734761006927019030099690640103367797653869990882011241510678201008150221708170845375122207671299177740611890740781500802184560358682236899266965480973684969116378991596585901598751302741065259304118807567066345711691458057741241852877999721899974122618347181904242558147992161673247545521880316907552994192990594627438033259161594824815412874100588907831701913163005700764000748456761105886413567200211608743259653680197666602463908521265569123341181186159259505893545374003264832019202532890091932282397423912368234564424014828826780589383661852529642112889326122798374167595374392842757018301497901913498626041930762645259779763383704986223011520147219912846202591358614512763054838319303756935238075576842769313174649740732109761500991765677794703882611308812603443454969262368272453742610033355088473406199501178176841326363352115622038993473892069221729527727554655280686679272627235528298466151280520988322020271273597959214179833460861507769015992994349811307273967013437904963514113653318617519331249771566062685451131532614693204268760714101383870182312236477544128872475204319420334164210384297492610789648948296326925706690621429201109878838962624879327223736312631580927643740181458892838788807125421009239011758854281187388714548773425469401621624595238890480444671452079209705623042515978426336553935867420842312493493295195142164625132486726330488072501385741227974478274327777063554596221549102424514260950087697166391636550782603183934174109911209388830753247276413107636264912825127305896375237720996055114479030745663245114921216064657314340334572000274218275058868785863651868328145745279926207536474426149249613917128394833899798245393795291991181716834320464456252975701829657958629977520536560409245517659119518588336131938457089825061349129061741417733183299042724150462343320713822451173896253153645893876388761176562298446361662849295103417991075065920320109732774495780679575157612704389605678229131022684478952902022464642335472673221117723908012708863166112485093300881695218296566468713208125148001863800535224383585941342818315547101529981771258447026511644537126334883051903740941036343489064663855730496700898112700274958892749595161115834601941887011139151645278912168202095447198021549427260133037885194000076928177679393838150636408539029259369147689848831993821920044627038054055729549597804988053945375601257135578408076884710470740992950176060030164841398236059109904267400667265770449923399999204276720502095366150995262607023887995572718751420048418723088257034379008125176350357900361296917109022416582364255443067492540456087861025005399945468808041021920322350040919771422089185197690584997608302702790530458213646078854651193476479819668846360692470029737404725625029604920356003085890248873343948298641170243593592286889862611426830962027249526002782847062160821069070065661540710822362568027500003658544436455569915041759661497445579515144086431901301544603886691233990904474304168390232588397723183684554703402464939823106244669360314043924232146148499630400613182591970708696579634513744171810096976147746456573005650902672134154825139165658591185481631978068383406905200819346692875656777277357531101305692217970623125406479536678354242107529129280994589933984965692303172078015176828262493830869988660485978814646988045514214181458037627464048780541518823920159121964005436093104880183213293293960407987995309240169770052302589260548264492029983228545391428481976271198752295711615144385129723725874367231152739344937150572384805785673218084224817661759506689034954378907083720584939628517463152033501820600358091191789752314845719241314069031246800960475891766796620755255467682417776990236507209645785691133060206629911956461982958992480781035851688685613505113828779100630117643418584876043057537450274027011390655376581217748693707111506644756206263873164095932132215625261391761978260590697494964059922140468196364667430091837616703769580948553611121807726413545625853280681289156755164313297775422618690229738274707486824812806797622605331930732147662294559396847678007053990827763279639295969910355797332926066880583646341988803232517866334110196685134045934337826844933156021068060534442901527918960007846971479411877255444712604723167433233297135126895804385805305357944031176794517616181852429090013719242665608126749908827643799544924749312863128441730267547979173439193089920671007252912117267075917662103541576272885885423965670907737181373317075963321672688759650849190418406201519221273196656104561037001875846679296373351622873468616905961786588368024273408201085206664474069152297723526248106562399065676356374568195222706754712176076764868032132125174385917077539981539350675305096915061368869822313371746717231345669724844787139637753112861110000029047650959955392436586935465587320138512350974300552258256928716469509696652661641181443213158980853623276840988044049247944025755376813642863175425127700738027246217839813359551607065268090412190423673582863910750382778347181284337682951344253970671606573431958426468600955681403639134164552330975123814448506980023745977763685366894679135782261698352325553599280928475866924869810869414252259636430613011294330101979040000901399320014464405671760321305150519520497784623002427074296913361046801879805023493866033069727114957141134452879095674372791154450036239738200224292237725991886244812597262270055014530602158706570373478846440291747385339487863136518682730170882740287474227857624046303137841699247609592302076121335795140410973315148205775751742783191662720259967506598580880960456236123097248963103033669655160252766464997745140106239910084626256021349301627947852485898340546095778512097672430283219150402618435258668054655942192917325669825439818981332222907757449249308442025107317321652488459609112832089088550400858242836328951211959250368283774244655631804100547814937948623091906818525851647307778404356601246584602902182404124138209299008686831300799171724423211990518785665812795000435945705017281353356363437253407800300401506008623994950355841420696077104948127800190291297918949025950364146830829612042191029323318843293977737711834164342466226607440555271854132985814571047394071595142777305656453493548146195023719914707265103699550618008141948385706569130032083884953484501735576083196773377224012680554324178896801265518392951883682152626037429861003021793549682019265469861322090495356609717154897029347914799830169490718049714099779939925546089812594121478154690802025622028057141304396206887222390179279079301967867402681869960420868082569064321052370075388194999083444193097725135230410328745408211211558619081495836105202303541524641404476923552890837603125060027566694210287684002107495668033600865124713997769545492615375079242939885477850023576789739385005228680998063129494416389007608159917111828924397237314802001962988812201815448750032697452866046993318119515733873109956582694917945716879652450197358802516640242838510220017952001324518513606440815136055545691774467644558442788325585526115266092013038526196621582583063541390814316927208721144648620771498463884025072236926749961352496941666355964530458535079415874175169772657166116985439076716095849150183050566673144156194743542438280456839278710178698263509256711220310600027071319333566504079785243636755195335210230014442327748014227596405009749740310371430198618568102623531726682812663569778306646248183937300500626867784401641786901152716101181997912273414189850869610318289502791205439168899574889602493810353575640248101114909521528096294060405198484449079497325890273451024319342412384740523808133270810673208583700145922710147801352878831397653918416333869514615719530676980166902950721490673696617939508179942200893077396714009553500204101786268785606195385191980881781833423554178301446605878877255089848326428048953929775764194546256750554468943111856215283569077045399656658303596863062739990112920434934919636179017937889300692729387665140734370871341152783381430093169502686648386939712593462495120036938675248511189597790626047649522393473736172081000740379005462091315496830555527171694871076528490470763414954846766273183657654777315339785431930193794885047650282726827051670744848099068701080615984213248412203708859538329872271939585062543125520745508170874721430366489195231009151731263742329874656488014382772464407989677371232473666123326332281899794170012677292009352375691837661829479946777616821272740607545685513767021402399223979890326985615967884855641582273976150737425681299090166040598459184666171748675770914354756301784192567398523636382379102172139960363025306590803544729377036928428116023785515960538842460739802377936581182077474589219997824135043297029363242786087990536257019624145551182986612248438974539078533049450420421258375071040229516524683818489598401595788296807146624592322462452970422245151190074114912071079069488696533846215102716217023779303643852458636973403313660855871292129341439730503999403279666342163635174894392504130221235726556196842297048476083324107301294336419293652443964443118488237895459183358336779075613545596484126221531674123993333133110863338019104371723287379000872396259923748541277102424299082382005707585336488352120364486095339830905312497823060180473115191604151576556086940564173488976357040023213380458409567437568260610413987419912743479196310162183868254827280237571945486476768424201084899148956789689182482503530466202781151423660546745057102199031923008091619002629041611708675064911262441080892100686049130159137890451629317703689147844473741896945105337858631259518663344496299093735578790809549526798600621452189940686023326050368193054022546083970062148462998688628000935057422985376586870778965257265701716403342768536286073340135596060589424043418320790418315177154896015147228128746906457990611654156893000523426653644053882844040975698078629897859624807360929460360790341879205440872967611101803674148681470390540672904901365687205498978258649163196071578057455277848707607516061605863638010768305688569525241002765051066948466624628419550031761911169599061827844647393135832557205453648153059551883258347972689354080372047448403960815894132425768111136354549898485221334426070376418385792359634776686574660629308764561846394050014905736094844085283517792425359764409722935758828977611216855067489440053165132654477138332096655098288060038308881451803756383404350080752181566545137897201545727833035438290265101609813772414254178851520892672497997531514108358970722776408524227773898470553543052327688702793539778247079813061605709357573139204007916350405973436631544256047976334470431149741400256951776061419736247060953063176504204942175251381355482461368483030204573067958024690324672884362340177306524654487829983885081571084834464807443889287215820782924733647217856314254085644043209979491244015806494004867644655691424113872223473408632240397595041630155463613146538681718468132792851625010054000807958388075868697110528784411675280836876547659716347256240997753261346949625601444384720266795920435646173264510550412265064148523127429215599929490046588462005271819788884634708282332327991260557341285907120813980881719884240069447412653256913836733413300347176179036144319201924736242711754831325934918624383959384285873908430389293259262265982547422672118342028443279588999836611186656638143802500119908688553782486709527531485280000172396967072412028865928482812944624511009174428946505194879503169858610802594489943216153195364967700603325471074591020252291260123325577937060475106344196425213448946537250292008816832561811702752491614250947162998142888061186032947593552463217053083003082858163999616374635821745001978888856886775601491813387273190512173186113062464863554770394146012951420377595404179353656822326465896736761336847720591498140865463054151167890273992164497528586154657077758017196581519585929908501668722187959840947051472463921466743662617929503681408675901546634336783308481294949397896871810972848895172552371759665796092491187357733690347073504018883968470314678557056252319092822122872951878635632008608416194012164002418126846471896995428126029240876135540408019536933917776547177562900851163374935367461301027981671041968063075853517567509999721906009068970908508605537875875773902824369841669789879715010787129541299610552590113340403235140769008624830258036277905630470373133971465913677420251861152587778749390049345774257286812806329653613333582920645297586090194826367654408331346911075684977543615647335165295060414175452825844589824714725864109993761155037629350393066125692664108858732047134133073719138629645713040893725115102552719093440484615033030340032938660971897919896930273897741918898801720598192229940270479157369814000859917458339103524471815735928123934890218635080901610721679212799648389852077147881001280476310529906857237253690865042341657021212108209906003928257794818694611317438036651947058305515140449978742745910064472554616699534094662160516220225123048335838774568986308329513472470043320623078914506932714501087643377875207359417418475270899431578485561574117215671856931904430441419663970869446670987871515674126396769050923060095414399920461382492325113634117113159868497248489679755193887651627455295358928960784003909921228289800517749409420876667442679381605436484095295913926560545003487521992942233229549487069102472255289367349025893262896970905157166084972975014729910027423279919314659750838431771554578141358738848194020294181103196143920158028672800616158168728230441625648086321855640095521193666521435734529750323345902126228376578310441927956552734146841775955382933477314213922682579421558723078382039872015011121257095844148014156657033487993272414130354199678591505202351653851114331314975946137019393482626505890673055016503662355993431010679779391204519970419350757915545884600185259151889450383862815192926228293203592665499453364566789262164831197871488299117349924303565722184756047064570811357464667029287868599358546362320367607622852188191141115811253634296495661596158292373683855242088434340432619729049126954104574192933314326527055041173140400347832803798899167805779654898977979339109409245635459279159817230212272140140204409157172349774809021109102960706189065003439298816753705144665006805059971749952037765864302867523370593772379473768725694177714664159254735528199398970304078514876800626990055015815475545087468257726245555861002136469104985014674935744176137657169366014849599424025607100212242759350184944679978274036117629764285753341787752250036634038157490760106556210114081699905874070096907250098936268030968268888210360828210751302324232332919552858453390632619525419790392727467699818856609982816701651856667566397116863035631775787774530164524233516497657941287123851310060008522225187808299303931852410726310087616432851256446374285779882682557205131782650883021578689922818436875340416680882689682999600847576714627059731225221435199123725748900330849626078945166216882884789377888560259421689444146781249731340941432151200042192129302399206336242507048145423888514602649674432404909325822072759361200847280084324426744496257914442199330059668498778327175630501156182197358737826734045910072407911275788661331465316485225242473988121968323532600091182305671607499743193640022759279344659972430406297393173825760341523005241875468764414278808539691999560515883094825136603765195468576683022984234241297599803878616945225196776680054911143793945120565193324470360138583027975533734651132725226283018704247279512562030723945554985322369462271839054609944253365814375334172501319274115927895986137326673897676787370835188553925198215812933327389401890161113642942109961894368089525258372638131620747823253650723606711495148927580340113136672343645081576940108389588427330209109042712756219694664027872026164124643198857732435123149919599270328655150974958461030912834001205440818679101711396671277938226982361708095069195196772706610168595931560758449860119048822227653798925375503860662564613615152700588257279550192498769775713702741399475235678686845059793936113013750020403859430798641324136575569511458985726111396024197504350489653664752282688350039758818896413353582014129583735287846987738600103581328853787255710058954044762784889112661938987832131653109835690162023437132363294867742056478959617630027042920964705372757236639315384143761197072994832018829822215867594953754605794914887840608523136371392521970943148440132721307680205053808423110553588492347846410035520374518364518540382083356539606038836629726861080738218800978746465137017495990636202819926197075977228332549532550082918415170303351840597455902492221370554171095749338537538447192328764250073373528784332810988542652859805768626271859815787730370278910892043841360045292859411245106310072628142576441105110703753471437142886757130235871759505151079405353900255099514978222351269664594533515889537910656041108734564070391410003055622121322300709626610091718968270545790675902538921222493640821117739099703448140131953172786328810079696969890425876894435613037281489999138594886623530968028004006493112211444757848490812981566316593209605893720919974091631101675642307945622955080180812039628126191517094222638375935215183577295741502912763298846815233092411881192819984028489655195767866395552994183266061492293275681283183271468668442231252274628164653243248773420816424315693593988198947185431777816648617647287523281112499345377399311096858758296145961289428434568491305428772106356553335206808398042671564214933140290224555793747796817207087263459949150512769073355368691776636934810508601165699114228746816540988552192388310054268641872975561665143471549562742297172308127319098442225615523394709535219220985101380986332602604885906060477724929311464915997659684868794165896042138206981072170458428747098662314229823228559524322117675659039310396503518972254004154455173610248466341680042424539927766602907183769455230797967315326677437127081592243575872183562773304267078119533285020752498108363035493677822990606265276771137522315184134757390903372438632832392664407867712763430509553907017220229193020858134403108339592564654849372683073726560618537845478633104441421540790913789029259786653534435307565397600299042191989645860641913750718129789937221768124907953466840316199374890465835550512467273481389760535048533397565938517795727943126363798515005690912665984107255615359744598879334521619132249618186118259480127643972804881296141147957440327615008656822109686755648028649190589253943292958689872632415582232448482099517274799463658463294863680182589919731166609951787472690568193951478189032888328377375545930551330826838721280686891083319526538688334707987547315362594208450604705500509687102881858945385366623466596765711456979983703999728386037755250826273955193909122726046625900059106493508309036984054376248491494384179028157516784584732011502178167406326011967497539953565773516118958766895776160026055133305715547957781265886225063805276197953597281610079784556724553069692528587362855531473697962923691778124113853857246762486292845813385439694050098162613023897026848660068507657203739661418987551172702088470276654452092289834842312346492061525785888935580647024505081562674507237999762246277105675802420708834548322563362054202639915274332841800968347664231889487196693942620035799910257105969242624666092636137603740655291193855187129161790773748629236122903401740063780651977904369147166994744106194933143309112212497869809195793869445917191736617583199328334479754347494528311556375911186854394454092459382192319718173624920642202761499117681891016909700551691036858246679176593711812267018256472694457113400350577618030816600259798413026901345277835201947121784298532019721832928867840545139422118017808066348745688789985882242003157245163794402992155770025783383910594328852580944146720618335225260298609002033866992390659909835637321862603333353998395748694658363998981253738750291667396549456942599924606452002041525964396725195023375039779236633266766894204334148148476346652566837488536626873116723344513595417439136899989453844613901149633664820011487554399557485098813021601848893499093886778366759406018323884935483752249297515376762738520236289259059309348173875210377301078595481457361740979855867482484837188187190271148678325185269485923611283402334991608036492410109327154760457694416512886304696546601304889199984069982822984259720557534061104917051176121931766130537494304463820407071299615691321017383396790881458846427997070177354537206851726932041044228334263820205921595400917544317487995737297423960494355666705767307636628795385826713707428530479670336081346247811030013590428424491608712221775840015685879405542151003259664177237311206307529613861096589810063437363985786496759153334085585670572054723235767606079756657661878969581775275898757710784649998394835800812735301052133789416871169948455901069045776569660632425468806225243013605711246192738971218006241366033534713568756792546704498175507824007201209840363353988444174657376662375116398784169903238351943907884681999418641388059812615130252453028881732465568398139437168186608964914626036287297211719673647938284977817174530668430217034980204861014950655772918380320538403415667405797299300053167927025821825679672833227992391143419487075697139496262864294464856568176147074541416577814544434591055053136884146297440148523674491275978938049537792775191885902748107512811011609825692936372568081759876543429213507203138029005632616732173904568981222791545599360323582923008787182642397206039236808589254340971311831848479010658210147815727336762823650311693192299709273349031407543133011707665285125881002238822527143200070505205894579220352922550429657218543543119196899379925890749756860117570511013607670904165692706515925611088301925355092752741292157141183343327083736823953630444894004792541247907224683711761052940494660017911649296126496778022562010682321446488224048204048619441876202089069089230595086624748310253872827142845737465988595684162370539653048160290309460295432878530613486229382398606006759410613474156861050775100149920978048945536441283288499964682152745589192304628392442491724980270645980298574089301070327150166004958646963159638769288427134290237596676068490003906875964582180623413332932780877160683352574709982452031956319274056074864358713201702322861712284874093422641315845779067833704028868071409645297155944962333229325132149157816652988953087294692425063293130406283961177960151937742871279792024699219164117061687362694769923566386809372724413648212807103957213442657439051642052250379878113419524597059270418061717942389122842122001149088741362526885493514149408388693849584018588960020936234608005285026762428475210453868797382980989747579191000848179699383895667930578932241341372202981266147046261577476687597136549604899059082700110959393302650630630987392503383745679017799647235726674088801826200770290584844622154839285073988879652622967081700042614538904863743415769166592595672234313901591017614599703984083473679688621574671302102723794048536107313390568349602663416259790708404583746845875418757664190160520824813105303026830869808401710148389390773336313790202261436177108579252709424720899732501573163532318248903767379962294963753011206278973165971710472109791298385040044516982908698845751607417333443974832381966004675290568646920297230041248530760171303503650340370185463476312986199199454578869163726886241246499063941442542879009577071205030124048126453354865002440478635184329362504980874645620810916000213740007501554742893191811511694772483501433647554409568708738951196411762565760253504040623851641165593198675666709109047151482450228160996564853280619771353986184654882973770257187574035627874395666264507253391815092149229294600002447802517943768875584346085082471522493298226618207675369833724725362470187085429186934897692796605969630245635313919516224261522252133977402310935173074292396304810119113082451467719225085974574729628008556904740136547515311209307549175813319359127223025801165949317445588303575051383905715579307570201088746301602684229621725791998411438639420464582100846707368975477775146163223497372276982934231689919749964011171524065641489653143944921636197908524212838144032574693961915174705072367142570483972815272429000233467546855480871811336193579471068243967576673236881821708177410080579140545173899463890301509133422734003756793412957569723104064767773134635104655046513577448309289190784340071725518435262545486790931997256496489821237104824080996339877904035288916410623357652252250570048134157875099516620456808380786180125177411922069412089123368860627049014758801528931666586244167130811663400893105486554298798250285297384752428187349619774588699726047744322396499219741272288506179387928819614770731916750146923890279602337976541357465803616163784687626953541708683963167865876324206036172398844625816218295722184990909501936744405311355940688390847078814131218448010337036099894448331179213405176666212807037890166720810503486179700762706287217483512243796714926813723916177762937014550436211970050558904705903564930629950625816234685512704025200610622534652862762835653266889323945292978821774392543331770812015181695509209430181251185019072855132247567330799693344866192728091797867030042092230749697604465538173502535229134828375068823939588522051698036365904487428317369069023004295885285998073278940388038724717973999015494830760316873359788466303017829774096608195366011927523342513207857822335400408759664194727494369301345336271469018266583093936422864548758486989360504850642451085548350907403063447951650812692656782732422950425868830499086197303960751254503516398143327969628563103985196786251676619055759606834422838464413140033408285351298965061755018883590579707287865263020773027353925754459815061581346266699340929631884977699769388086384958466811643359934424212181661067972355220652552977302413247764753923484912842819742251448900289483757839935802284682708597358090565240695173787033770259044144204463014358334092712849967643919969530401436206892302508329493181063123143717797528613311771364703852432679875200785378174109087603577465408838496715177450898703066472286825533054272179035995659874543736000175443351051370093756791814068237431711177258072964974169926843148218209031303085218536439952751023443659231314659074455962543644409514192101688199604274867879087828890495084594410959703001671620351516530133432887784652937252279097919000782416482689937512971770118577470316256470067750353769064341502211970143369632857006666852143422579597125634275775512674012104798086946434083869868755328678954187995494012342917278796256184452870249110654784734069624536489121323439303478310498938183488400391118926649663438747280588186433062383855919561934988610074538434940590257828778647458168559259274125797518415177503079669121405168310463364135394261594144218235518107386167819666432515999488049505496295823836582244123004759033995227295939827928010463629156464092068504256828739833600940026482040190689488404931920824403396302839003613300810088336957272775088141172781584506547523654687560419103633075897538423805718005461993201034553202945052632658166521082556380081687008483777388793994973525704813023539586723066906502086864389502776419849697898259672403652091164593576199791655257241507676215753547370101068360569617048014603840974886770561965660285333917604400958250302109711436696267960387358425683282084641987718213127013278371089740921037155252824262093127797561441609884995379607741250552401947286288202909994498913760251833776746931960627714970494107764794032042914157796858008794753027175411336202758461009008897028712353622696720362796905316508991750975579589567784247312130290903330135194410866481365193904846855348235426749463778010362626679402828692870637901936304179385015629144413026640081258427793179629162148900233218112101514911789190590846425699946508820737581127778992020702148722432008520477469337481906290504018174559448038012102122835908496213234773195593100324839042638858910853057302297732151663216896859581237398775835476280613473959330150302477224268270473279067643088838870722780578602255002308045406643088760848336636757796091375832802300528156951672876562036716108028529041081405816088164172035769412205517459340236269715517853215145898260011126555309377858558969409963494744235093099261616985198457675583351351663538619958560315454229630100151837809749790125372500716145014928586672642709525103043930932330321925539143266588937280846362247656306871276913702847428552107701312205805004049003458705397375452594665816803103325513191904474163851319992466937420330922045656622636461618617225314214058973514948240433797493653919330399494879041388778394534610878264717872711590150034410762100119112809555302586491293850684066706929091336617809152834328251035498328568635629189759470681492247282792294013767772964776565318003407867708218843897492160672810407384272731308348821994500199929112093371726662180275132607606689621240074725342916551313289473403895069827166752311669782097695344213326243773999073667358007448361177264631331701980236362856724015271092988775529992802459162233659011451629513736988682065708467174450727747860701689372762515810987867530534957475793261503648237984376071172928704505599962403211781539772456656642342547606384639895111456398878579979000676050750090291592724172157641517361661634287660687018327195517861231136935222439090622301719900666940313755649541233430478129777913816089045075439425364525993879369106368423437263024868070653777980299135792705020617574557270336235438457839961482240743556900967158566564115102673121346346633095262056755086851228366318396959419870382002095976677700912252473948277507266083133881704990713285159361840043333404958188258002782722482633966544868709839922126051473185671263465033870861853738048630624039681946014588533573286863105011493005631638120283754641978226121667842714776814577617158218157231036387079168194156861758407637529507701886804121048727092771216363110031129996961033777944727304768977652667492701957994662092579528211594325352816005502534255145723668264802358826520281045905917067406678603237732119466063757379593798317187309515698169665994590473462501528833590763739079809041641759653644233802856249777860956812907258495635348585440179978059674232609737382017928685911800802774960253697054037256317268778858796544179010156710269046543632929027165189464198281902564274016483085989598133433477293594608344759347307724737252660901397752896831276133004332484960530969819742419700461244409279601308887324127494627950503483948484254989353400435168925853120345022566090200636404666150590571268705402256169509130747622095343837542796223921624356184085294634290029814315361978542343855995197037548333022086756816844559847672721938513725902063090527343465588903124205215061649070696567876605737961863543344157604132277716101018561520427056953402289454184745974927504145539270835324098198983896713538103657666547563662065927369299849454018721201980690657159463952107020569645007014502122064298330197319418397698278391323190912596423084185419680933659122669874054011037384929277779153503738555149742593329519825609852965552743910736048274890119980778364114262814161121597360996486292061786676199689084933498615074457219713683904702160860076969509340287031309517121976150184204687563907290528128136879982345821851188785590949398395594195742952405581174829592137693936903610827697474428140951781272386777519296905308049715332147572139090321728617915600807784639397522690996908526066409450531715000044619221837667799774960837152226916533022179862219491254162252324790121831956100225430178098784247981234104617945315039037709882670046147752830843070393555344160175525059745997672760158642850430694579351516341398178683842875375029759503153425115486602456437998567508160892927783294720805380715628248921375031616653261925383994267995375497328156552144679778321825363026919363332862895715890543465946383491461503591834151686988759532727812299662344316605221939432914135892050322299827371090779204351029908222771946086971861791572379265026228732185855366613561569809039904105734298993930850810658388101469837552636606137484888628224689855304581076839699382447343245269916587409025823196501762279368967707036392784225499976208420526560637292390771891510059002950529354968647382862773280838962131756507672045333835439798092150536482466897363841964804732914544039650987613923499479175370515030843399258767132542877121779269953511173373502943750300760223751092388840043633676489215874149417564391804387478836832652075339673655788371877619398909695335232248232963914598880607404691205860133670281451739348257417082657750588952369706908322855881515120931314292774876489710093840213285062094537577093703365259210323303031202847913659843490378755643341811055084268404707431322403541426005338209963338759094645498517136100585049939882691196235742258413251328576652663717690569696983867982954870431604067933330023755539821023552808993081760829756758868979900390719383927773091925349893819667707644767489178448047278552586082574033010897723193341555650027530216484464837937547163184147307314615494013992207098458755275847124164386735300614817251269257699870225944609451928762882368021218939660646246367728583610228649315161895711012426306347550848053051735324012378426184113969779774587838121776408853699170625616339735126092367645671003834272575727285314659761427149284020824663534260830997392750655505787590217526472687317183305428018384930243194444085723368540525609032153589342790727989703861002232358992396390268748027590441521319771704511068317111920535208501705125286894669928339891517276626456902857097826130148268608015706249974299768881644217114738141579521452149769539649440570460020153445632324821683275456497345302392931710477516136148732736707622012948424638373733505312404642701010267484378814137622375413348889910384955417736216549594262997589715641572489171431884552210638692864008779970368730991802612643180199594459086957248138000202407599424376035893531615110743961958153692328815211904092785559362425071440612351920587827881838195677747278294275444441020901942872520914452349011378618579884701692918407646992358313790370575469161904940315914996955002171220268926461185426004261202635195023052335850909820018575794302801804503614818055014463975623718137941822181869828886138291027054738491862017833726543068056946566474645545367298816111782648873232781712219295319123539331506204799215059758390659562476682754779913445013422216279704903430703855633792331762608729710147063003820232821267262599455976197887754818350194006522794203448728842190724619426909172304541229564851730664911711020731372827896083514200992328909938031115567881811918778937197602444565094468227032693367287428450676766157406538005760000836466906051056498124496357469287349901863217526236782345706897527843885138410665389109260771514392178473840448084538589416938670404192929567211159269349404673921772943149486101569409587972031442640464896726349149438298342013134948452576870571819521591194964746657596137062587156154707895006972942002526834481684767235872043008855829321659200828975427387208447998418064256972819512083773868012911427845527308737475784870844325708476502991370046468000952655481460634602839935038604664931044404097312036835638177868793927553421867608268297789265452726027793445484591173297275816313387816673601420357552205494086427796048955628755700025572003063603807149813816889823475151163214660399642169570373131722261995346119897252444245142343246413305955331821876691188164932990708899233148298275979434439336156754364112470998470108429457848661236889561316712112754777071820510847873317717353244859126997348151800847872604765931191011549541998572581011447329736563212483958221144662827462128630775184332942700305193339203431674251942646216263316262184497939641135953880174748108107536919578381248422413635182044365501204276142417839489368236674823890821770000557812052273641091450595893470577915082671330927700818303489404548400179257169974065552531373316685023204241124249112852131000429268494013686271859367547506093279936080060902441228689300391629307650158047031622740594674878601048110299926881027126288672433784576386793038677783125359400839616221175743651365500109684281686566884870864255293408336469409213733597864312506365082507654835185071520059364860628801640777016495057398815888650354659605880761576775204982725989862438421443412965644674235811815589394404066691239098081762956366441920570957077746572628104891045152814388098817188252859435598009219803090164975344865977306189951875401497793359005050173204369416481219791415815795635492825777505620015773370500174097930095125551673709339497548976585797057895091346037384729164861464198389748989376808935744381505631253234446606093785804110537511290802578263351694810651708465085667792962523204864518022401983094910378491927314316330839777362455309077881657158573968279757699435225082102137857700270214988964878824625760217192370041491758094200698573460461823925467839235434363616950166299790596334093942194714290046931614444472621765605043232409779104667737757142248526384997108744892777084388690042417136882546429544346763473495034215294849007461589506245116195392325006101095929610620201352621582159237050394548306516374685551100341233056788937847426845502424131833284421316211031941876448939602902843556462854104945556625336527883269770513804369322563002242032094412844923577554882273824744783094752196076523758143888271539569765845687236734177236809685091552944860187596726598581157098579641687039175025395037084823960097118543071124397639974925777680265707684692539832210805495705969059861579975210969680186506761663877562597838045292409593796609288687972615122007333961843819549892565480984013337266743104281458564199279635314775901681448447594695579383817105262117033112668833487151121886306705143850499143973594454547435127141559771786769015727259179929777679001385229153303995423194698718325509137563040694568935845982481266375068220048257520779565282667332460604748187075774780145719819663719801659782042265136436487873904657129374662017767929875161204063478489951003323743338906686483774824496130961515537472416518798762338281076423817457655127796508924433826124375767650069728164571070478773466897931382689709059287467149897301626976101952803174083762606630483716819963965069233310077093794679439355275447336506796312522460562367914860506933513515025810696287319177032037011344958527050925825461206087723098087558122437337583351455315936088822246761796940124355341249923596772106999435576408039799201923678698964790492985888224942227930376952178119252903312214851681603903042535842685368981736553830776594856313088629003879445164359194223914531205878656038812660453149512869420056852200405371280450631883996747284228796282877525482157895709495572084725191990953404314617558349859780605335911299435363185637302300074136498368185665753932270142012682636119028555644631949313077155365246236863314044951700031057527641007316505086417264311052416136562519070572692911391147681466878973288005893888688767626982563010417892935811654471367212840931647555491882119867626626167860592980913753526454866448591398946588646849653210835687326848305593921926171603997779585916940476767644664186838563620974317104707387691988530378989350968999837349655270638117288139359328491547120896470217191606860741285645224757698835831472558089499592578091599846438187654509113101851516250497694466629552918755636479091046308700682308266677820115927479796559060863949372860553789184876134865709026584958380425729144879818782913897744520197428213704398495129016919610640580497604842015564605578964462179562517124207530205506432733867707366846395618244827515720968402101525866357189664471986180390094308317586520234994930845883675330335126602639569828561458218580263457909219014240779424733666591162782621906613063422347885028094365665504993783347589791412162436663894298724832783441773738239308279597248930715960090761802194283804203956248531007692169860680722085234720621723922717349058443442975736566033937415134968424888679433440843937134420314037144286047777714841069394976634746263796723492953940438810025650969285205672927689879512140051062389803348200830221625909762947579759044747621164935554718336319475753344203027634673964963875396348638625534066849960771482011920994464350037155877547450299355742514892851915496447672773006783101523810434885316561388963332851281950556497050567268686364320733006652315858168072038626383940131974075330369563665448918649561507360514082881299310409832294270807301167055058252258502305377392864909764779536789733853539772487438890990406458443746484364572252872210950369146683762643552168107391567923329231924663090740201600979319497247812861621128123001594816821055648154750549084597731475658622635663554745342071726180216926795206109684806328079991535739307918249812496858479070451555262839254639316350046407251936704041259266192374936303334733807326202925567798205332464714298087335388857506613988632146021855102149086557394935846172660523891840946216424595036027877316943521948617382354225188438597290532186405391420222409934355300008745857995455122755747504066836027925653321305761954164229538308526402896706470578298880130017258758003273147101739301904077591651299572265769586031986703595361851868530144174655602381960979922193473495170151739979769889775136056947841840952629486883946278323171580571535786829912860717812616166093357003977459827687941006063418791929671881012128844647908772821816384061663753486071606122799369995320009655278014276697424363644055386613389018369675020310918658778660784892045524862468320386423171237298111645488818513523957566963941531419112284579834819985563256334090507125102976938815496662239493271524998102453920233144194258691118866029349489986272923401365980578752102231305919668356775594183866041687455511402386285236924414547954226548077660223646996809425813297535593900652088712782393812784212153387437457508069195396615422773148079538660547268023706654791993036534068319620135479887337629911668016941547042551632683597221406231832271767525689917600641281900420756340951280640029035660358890351513425821284319209130734065185837654947671245845303306508507003074934829393537208804447534411752030076218698441817809706378011901158614940443876678669297661429671755289969785572029240919265394009209439466468945455808656296032923563850069392482520344311571398044832061716681962465062583517959648614328290858159057508981893688868071549040113509254988516712476596983317169208055611707922313494381677629943413482069387364921989358410242342956141010002304335677832263932519140891607080080963614585578884452823842469765341547096830513767412560436660905184138236655288750895132922740864561116257892671708586477527122701727813982044889613225511534667298422558726358654962470791638698372363269204884498409442618462852260127452907874416418389981196640023697629665608179595242385077452357888174785312563608760431285959027384578436105474290346186507315889115978730808933467060356642591244708582636777745420229537971427989976657321111494480758137499314786292126629933177060016105056621962655195877503698481551163001563856294937525979175895786051399160530697205327126181053372028604067934278945582957577695532576262021469926920990896337352592861192155149315125436695866191355559357787440773620227771998897741192304549740357364076440846620156432479324433501786006972844882962984573334056284722477228973604097078411573838583640030590818793579532392536956607382234759828198748406512027815871065208492333990343214369274695888125164441434722176851702365627650395059087185873060832129402218387881754960425656550577898637314485686983757562375635403779167386660783519681706267502943672554190507131539000079514390627135491086875718120326274088558151911270136094384180741439395859745126577767781034403739796676552607933972032797413769682977942147155634695714352122110479656384212677862195056393628316508043179477785719260603037008604628166351440610038908516704961366252979155657010553932716073969803940394877690189453326713056763887831105844350349797022206612850403265507381836219382924070157058634155790345668071143575932680202107164621823231875035996541693687244396181267300731196132007415405360871029513699047610185002000143364337278348026042685033458046535138891931699972531755001188683085524399184491723789825165779779085640565924598696687668820546240157347963914847844294591833294467054042578139190884469381380398682002376010066838592101853725845745821246168800580923382883962533617447591814233297749589555000322180518688538482773724948107337727670861703817257927006154465908062052752440784365365066608477775526140545551028208830882665603695593745079403764727410630472266350226389672142050481699714727924279295261500468012218414713522036494380805957738590158901071914456947485478329750505917999608089783586967010824464195989906872909308156700597636771251460210784287573577182209826565459133405145819129731677976904864788233857699793953880414558446432776801295513673785299792761973398805870852631194223581010828330933487247353772630956841157666790219141505848210500247239466743482986827060640013768928162720228717538264219720685136155134319789404065426340181151347719222143745125141844461180501209271085847391552788732752540813818291068479963631128415228551769132348414307665597991529325647823122470526551644116160574320842901810896096345093675664609375410677070539041614010959246471734683762567711197002996962635022976634613700836024823875856831379777779001346762797918845212172902879803966591822389407286097409869765823118232485269426202204844163436192656057405648187050438300505477444441704774230820178691963843277983766410323377404492132940035303604442492540925971913006691156624476290423526443260802559223577038895343781898590157303863570671315246065116919938354620910443824368773495319480579840413809409517893281976943998536561877251603355546909181761085768094864764459759166554295424587974969090578948143234381312614781832779527505050719353366430680769658678563752107261678810927330138534153840715283646314615494020154336828790828675983003049047932038763086143533161510477239357907009584240349135515514422239334372864984457735572955382224157709278834161612339208545760914791305343506365984924857994438362036799978478518478358802016572150600628881629108721769860629015419330831288051298463296290079539580445334538651776986206401754835178821978026607918691669828443336064572516166344713446256988046652029065521666550283960502909550300073399588656360579765429867369805384895262232419595996274201337424543167141932683069972421569279873828032692728573993209923903265891922956736726524835474674637413997347118322023761490050747516234067508091510800665552047091329021738133076877808100030998455824274492479915071143064005789477286025259026454600607828874563426943875069875274551874024106635751864137714753399135292891158858734839375115420642242861284897072947851520249997914957573584906644034753542346188660572279514036049111960177420081983795159898947691577937149238403870061192296904512767594755106292752466535941919126714588598458019922576126871966079983465438963440279566271951426487666956233045725021707534276512269044543894664506836583240502974491704052888546821587127012515109724634113122061422006730085887373864500397705019099761477897353929639893702158418447072885908746313406581461831355443877889073399528716815897098424238728885116766987752954752439831096498776311016765709152495402352499324388737567787130702741178227576581456368678856999706239994064773661453271972999189641345360375555896535714439865134200637715255245217371061185173191224902077687594751171762530387258565334000499191203039271759005000112174321529579720263116805048628206590936474395529309942025785085155211160451279377674306825396054527571444513414261092713929401908988752878795672108822225738355223469647504544985864491211801231625518393115104318231280086587029034808360259310432292621725713011934526165040580189175921332249143095940896013769328151088855073402708756420534391327326617408141891684493702628735997336168464294145322109236182500514374599755697330479836497981019666693749132558618056813550553463488268059774795733147500081831207996174728451517507780316105529361979729004225294939882898950175342400197536479114134808971417504584101558777608260596433203598091648469294601953239303947761509226186230333253429463980010448800476208947124819634035521661145683727538219511901396976554962361912961364621166963447545001478333938536261636196131365838167628935714200838154050372746499392065599376014230388657986017753145393499979193786751566784176839763647739909176056710229326720433080606138483557821656803344380699474439997137513170907192411474328688824483180731454468355175762328210239101132395900196902925337097135913119490449532397109662758521386448958593722802344042803143397597278472270914169688478095416646386401835758024806681488613559372665767044945671038013391167862746155227716670064150072586662856453487196899008655398171156046857891374724764923144969091703522769896170093087139091120030260593380290519285468689604113462904780705208180351058282833631387796116354598335649624447662986566157112276206498999943644957705318612421634752033677741584791372705072001724127939531265250562980069815934815415079772078013554121527658351603738046594920454303703190646081020015425121501577990811216277085344769034308646139782268836225281619988484826579161944237657763925522109103332811564566117915663269107035509053590587658844906016480433684758683510458859985968763520526611980872583178759883451098429336721176201024464077944259094684614209363895793992950277948823406071318251037696272369278221279979591691561630993571190970528024152759910373008815388472380813676708803117157539719665249637180964212559031121675294712456069607781660931559594357868771207367786443228955662505926244652549993816801476259604310112000760959909617687902329296025057141833527346800830247587139032738357467599106530663991903388110082656472346695131487339850744311962503257515607302990129749434787199126525533039847146777422958799322840276229567174790300183260372016108019122257533020154275783874421062052090342792409292886279556811733031871193693798623421169857651134096597441340955799005711538595163019557836836892418688004904920463880751654121514084143070804274153501430330588975800472925044596602722764595902638538473435731290348190069985372871939847081074769835485363221920308154458808338224578690121842161850061103880903223470124083722655092699836587667439530978291141038058414496273697469201940548901131815045612997097815301160568934464314145866233793707720138063835460735922965574292611291638496960286547968271445633668498151727578362170827269259594178141506594526144929520760108379163478368838317958118832920818978403263191611545670079906080043223923797322233244101094881473546777066536683722044624166600288853405294794462664875869069033352569527243510056443080777082546737559031169237339154774552626652634604561161036405855514318511731706992873254810539407174811791156086412256199065961514397087507803424160068666135754703010157905006517908008969477771157571325436615973868340941288081209870474524878104087521672884306524671290281221191766547508321408340365415978518452207976698576832979963933188914347709287840041916331284270879276391882297987985119230283155276808053099117174677574726342597151264230220378755479049751287087819906253427181878976549190000505369529771463983285763263699377654346763342827885354166744134436501602614950942795660831555758276279916085906552283503705902383773882462584227565368807278449094376382404232771288174758151814446469308883388319761290939139602589301645155569020026452246821934003157889421652622828380813933205298856946601180357730389406689529146712721456802420576538048396513517965973367570875368586787540560114887490842903190922129032124920430656475312577545083869479913051268946129030657462430008295870182405662748008285627216718543657348654143430472113155636425096704389832363272378179564593048728170637973485919606040993113754777767528096894996404976665462025235927072687605035051161615325447976672666016084787670506392381458859070096255573993836280762042762665457713850791161309671328830767043967906101505774246525706501582018744578167472953689115689046113831637841849837701020310018214528457012627209601402613176028252068808618795972563061505335434422657019136362646913164862616110161352595253708844761465352891540512262304406728928050141570539578796209546264334528127074311601596975348778216671076169033031864043907720253886631694494577460382451590771973726867268796460731925612686742102266543159699330084825056485669020115155898017167405594366432863455823127189584238862400577022572926650310460561446151237303054019266398546172075503624215559593340571843749380698579492270505601241362588566539013698455463974389901663633778209966779679966667399580860970466336517644097362080967603513703895442585108709993712964196179943755063374973519360955765650718324707706537982860737738652047661832490083608813038841361042229329446359994989028974321069463985188008487588040738158220166962307545411382293914679556935014605027973611759472905721432732685594969827700677651196454080307564314252203322033348609085801842039220214838323795108780099910821829967691249158098321063258289464064993754645227129292631523231369895791310157174892211222516933560168953690966527727568890954986342319878752768653743184280906377242698102977916974739897113892139252551476203995723587308287113235201067430574986808410905497590773963130735131689854657522300444578047139050852477746424795752169226713936941512906210422439537050257953688466526860458809122930505535262748356917230519108603588846747223510980601503099175634945407657183305703937795466991581603735585817283489734764145791842834501017584943427540770369529269542480008930660889545292874163139783844699742296323718763339937057087875793773141223946535624864461478135062949033053119391825944298768680379919923955437130265752862347720658249328558198365000250552908583032124400686218327761051550978174794382252742724262660877148846712682467719324115867649663536409343226356298236981543168807238853805043694035511336287967511355162970438060806363757183249903397056307781674773743525523401253412778567420835728653440736478925281793652081733779608036011914278722162749046206731802103835459354617556555839833772245742833825691071269388165206485632578409669541418414743620715212083925118995908120259857911653125905921438473667614593948145522298380764423529743531819928785272416671496471204899008599473491947149188166885242772022751883954946425124947808598488253708463084945112966273792079701183928570959296576979145050461519319854428148914708184539130850702204888141136651414204244392815772983066687065817586804436894471614818845090885803132315855014587781177360686582957819393549444216261796770684770016838888943083928976020541266109963532092107495923391138185936563533565497451400497056150955012684121637890257116203296299784597218685529747764598981881969203359657280142121795527433336395639844532781740593938910993971437208759430637151562546313225753798093803892799840433651999177505687794335171990949186999284805594499231872162424121819740690037256168201464616010101087693906644217966995670507413559491630336476627213579171210109782668722005822346628947897001355440950032074078811231857167821764922166102191418897782271931327703797372485376129760167943589153934566497037422945723558015116394735609748385071761024788505231756057557309787111205358016893815955221061483215804412985794142425908985287827767951228856236443459191779772400986325038550096409497732346827221636105230367042829815758278128586046247081708888426970467035068384383638570038371428519803143391693505419273426862483852589226712433957213605313904511655450140795186247071222210564533160125794874242801446771676535910982674375219903751019476221207743343482942471223813642585069215164126308487036944038041284338630783521149468703797923422572151474039032074908412608727326153681101267750499267989116082393521759367447364418226272194241459743228460499539791157874768005040096762676218656341955108986496658703958905160785636696754093898375210227198730266749308342428813260625004335981664505183831176476445385808646858528895181718157738979064125029233391336707873807861135849121626300477835077830005557958031166652350725125927336166425604930030858794591372608224506953402804346972372282734245217373061267757707611207797943847657535106734242716701158486157159395997394752777653958710387429721114486829855595312238254576173603337396985843881600946717061445522386646404164983955714214594167120363192809476712746032760063463377432489962301315944068592906628438292377948502723475403346249138140990988219931297209091670181845817959367062473207297575091765963913625919625052787143956882541810857687182437405852518077661829382345696326725188618363147490185888918928237528820449141214363001643235499090713182085056083291773551619875965392230389128507179466139557559581477661104271417095650133654018122420664939611944216106656705419707733315603543746109163331383172252591043747532413734228345518843380630128547820309390590741537674642719619922760814397621814759248582464146879504443220051228118619427675715285388227344374085327378960472350603268682423004164125906230151532726479043480086598792998086533442552983231081934239130167112397828543701126113714879084376193558303261618253442349850261808539651258121883186836437758093387435082668924335270705298151416344582047244092831182517782288779747523550768001299472897249214116333103034581464974734177670417475805139664213266053302247257973807328439285899683503022822684426155845884099950133090686566626817384261264245321581473083337171631325180820932311932956586422103175219432124531211039349095387408841011204295100432639497852461369835683534666271551493431992279904815637066464543953681459234882321954061089918001620977820694844203182022074070104294287449252057337929694340632571194842758613336422233851143368619439134998360933526882452713356520458471168234912849623092348485227929473343216042127867253633761978851773816469580534033812403034556762438528597233253438919718400831364599461638009089545096071547341599886231838813488368892498540253774447577571920683184047344829569897737705344337291556647758055291611625784402764977741377988832335198059288312965233280750192967765426565961053253242849530509034030524770409699799662734562563079019874952379486533126191826280605831751190440854950386721350676486453854364841375578908994688444262453987607231619265567971854831855503566528873726268427580068939109974372618038671866020938931356938932440574283400358859312950381590153441027924386337965366186030805686396135657878168384574684325926382081102350362568082147760490438380605366863808392336241029332181360785739790774394669051233572860358023072305731236674160603383267010624979181612334947334866265017757092630519478135934700763207782223157335304585398052239855688812713089508909905445663894628680986531231535357057153461482704630903635598724551730044942091967135496184007179313452836464402434880883319928131328570280045663893127270696667231836882148768007204142880629405261327331578715296209973322249520180488639953591749962654608489093468262873571318490056810815619957131620870830036061156074357711041347264046659067801819844332198954272384897187870425217795602138209831543313284416126057439025060375822350963096055511679375596989947429919921503991022136570645499713899821837988915288041910059545968479519144025606806063385360717179963253501050988284735179010134955512143903107109815947321807135613106803833036059157370964986091470393275526811929844348516905206814967945634971634473930320246174992218858792551755457288584449684325870038927048308725546042449201231901119478616845985165387959637998608332984564658840050140765672741200855837079377815358621118486448186922389294784824525911611550227270694661383735083784213046798214324253146489725977803842387853476157150177264100179826898532503566301158029134215474434266132888400430836665898539525454207961733898918059970210124712147349059786157350201271271214701699308014770024542132714276215082155174844364690541140840431997064462551516303306279536437715853252470061006418315390674943275748260527185336763757070205693455884628943376147414299810649560032811010674009250458695610574301842316544352818289788630071437327505618329827471631593461000317580651637520355232056735912183690979825012574831866326976086503386563159790802031701368703063213160685460437853819918572786857840953338849052567532939597599132799418455443945512658310221039158873528555687199336395632471290275450606232245120055988202487617222170216688034611152473696659297792315314417615699354888572003793068566089854138567839112017383422753777171591692569579922028438312490046556326028755933340777732032778412402045819368381085564409911288893590792985656976868850069783669621907115058872507152211461066802662380846621504898537831560964479836801881405268148673619682880078751852202701140821677604698318643747854822616737959942775867781466901416669586301516617483570843239965096002043572115356702904265407273133618537820599542166422282179091050885395409832361767507279187185141070666331906818333606233734234726601357427209613956959401440338826000905768031950747872031363306001521257296576885569949949208737341825077411475602130372317766044142769295632167294412388260637603757023497842709855326666563005103301836833251780219512816341808451841456707630016659842610602318637208760805001911590892792920536623022990028653818849298368667697073234265734266411181331555846202170357314962629690092456254558447843030709879135580536829109673215509000578404736235443637185749436420477373118241160433101457888954819560879663211895863082131534430894374288315518199993748753427284788559622735027632657605232472242411521288479149701069040867513037755110810117094155868128737879623659958466393518745806566385020831056871305575794289480367112420404482851515529060562550807214363251203607874202290365619247644329249245530215192378173795219239632949335883033457412173615107525065443476501731160688334341459512334675617668781671682570957346451922744566463115183518639953366364096244614247134799862940538541893911429524456662486130652640515146377825905679342005935239965082506084919281065080732875894246364091157560051184266112620148244490680104486282960587121830909060118613670290923671984348049945876731787120882933252431215571002757021344468485031599810228109704058319647269907834582157870395568626551169182396307582675519835131302514288708370671231694521559927378079330585300132961299089282199202792048124933713021483064321773318667291259923214931690067730975214591431716709713255385681077090187675062228676479584809532381739478399456850691808463082251404736385034769317852500571856322296404638024338262416072952493375197644999762515714071894857115935711551049407142080632953207014674422181429489210976227145883195208149195305763219563676853657877136667851751028797875946370559030749881534371348122022274420032251966720496182990769071236345910900607261376089968502476961199330658371814116699366857693878339216815318114924542086185523528581488002305799584058501409382030808887920733909280253731480557522840436680877735668935925822598647790143153937028036447545288630699986403737186184322076021159919022496907164060679094177823858951541865448739150707682237537764034437949594029471945750499024967389686264414946247527570481868151655927839943642391293530010822257291895810304065344503556093108320214770931498493119831285478182111222590074383469319694529997051417261057831944545339243792565277443493941515953995012899364538739620590337376187168375906471856686895651530228823080385709783281266759786529095195224321221262242426326549837606939636312767956361097011811443611823229550288917993963036106754723791474784629721287856365477326573084619955700594838333428644828683193156382980455555374820779827684751395079772777630542197771447290852182868223065965428735056080684418421821794447085451577572719790785747577374505502113701295891766297631577931846754541074724131711386497717679967714722928859211477017834175249608462469344989321744128597587756467767027931836134555284101801061270708595490386704510593948609265736837448053492234958636000689765562518130917374152840956772489533190204968367594070004118032682822481339200285213065267314604515168586588490101704447930747298236230693967547921838741745533758243099477319142890951440598019120491192080341848280255644030439441031006980307287955958890684388919921221088728283043981029827030815856916109951680663562659436224572096661712248489142948162150878705805801770352265333452589970706023990679246454957275597389362162396608824103209801104884500013613037713321955544334728890784320486216548270104282437725346081897642246591203260622887619943769149070259450805768643418808163344368410312443738494611002904553737565412437162900605419847126863399840625073546922872441838250296748689082862859260209228146448905021628584605540497587546597231834667086372328113466369788071909378001603229384813230235538729695159386446683463325178746379631164655171656717883514336415936147787827339640057379970519472652992213073864864680957550979273093566038989854683271020442171414326237753156869712880002812074058293448234873767723552703627581098717575990263499596289472247024738328061244838359268933261373524412601435045080590462626679928909795018715797995344475537156899215040504551180509038730916805053679340021381680922969198490553556995879605049258457019762421940481214857497766148822815593540384130488255166556075533653618242409067387552793660147669435923620929175614850157977966776620302086120823674113860671557677553445539801854311248683189656625334895125655065246362016487453667463492098912842925365199771960544014944466002765405360719602020032951608885461687938630470331708311219720738622785288862029402717748337754881663504621030598181708546482823425459429304082597454697699844661025883987118547573948653322976386804959238887055372726687057598000602777448147790071353716602283950759201102021189683208972083665552690447128112952771629201021111076317897763408868438890704487107590824967723756548824144431681808506221744700768973420481578189659320821208330492101811946467218599526517596654127612990600484561077084012933439593049340821667591251679074202840382930524218191063007733309881529589990130104254182817045651211009187491591042807643041476280536374311628836397825496691764773937334844719136120361977765218773637894750450427840596129651460182722258060247594721450081576346204148056283658014654492006851075044455847365722749327009318088069392668929006798370917624819630778775187621439306740313658122995717215286521994844487404853927750425584294744422176174527372778396160338978101007862378130446500261282345064426806122307224252178624860635139293048920766053425029533366987611002734562117031432403139511782558616737121027320516867988075189302810996911956090769946743690935711695073882063517729635683954235933099564898161257218713671326915000289457785019484979116639046787006438202809359551776449781810926507996655854789853866294656560337440997619680439136765967026317244590515687622286691252104688228899444617461163951559790023612253797898040235766374298351243346043939805586093352993977528602800112710456416245063593544081140869428634403702432967746926791324957689866802477363460760691563199771099489362696816551247929005919810911837647895675699674386384744960456540806131354311194646659347567959561637590609680253574223050150787794306067138512634959043497073115133174592962357072807290963966070043350412761055072952644430591433862356839854360089749456363225825372483024134918164399455984276034443301946650925461033138886540276943333202573989920906693212251159914824744659499659857433494173753313070884538993177823131788017111804614618892925306976835806948345715827948278729465094465598619209023622606721098600760673801274023115308324684284926406779912364364390948083343898140163392461270401118196000429507583800398564367989194456289970320195950568773350429905718524538970043077395776874550091908077545457633063530206458756730967855797546908366190843546608234655827166954720603951679316285732350125515019187206914949011818586050556652520535714666727082911408747846624800295659531286557296327672521542159543211575055225395319966662078368654308882397432975813399796626527392786513824698780465507552004901519745759978654866075088372764329393607135531748339820962573175360938941577081263137087732764164221279446212662883844324820748439642926088353670248331508057704636703519370176689695077776085736003134088705519320473238402152990354847436265930995347886968046936117803413519211285882010960818680557565923293876277225144961960431043087323428081170850705047722703932261179498686457214224309530131678222368461333178465856417618084686375278446140794828663196092634819604300736821592593531380991689915086779953281268830518271787596409605847370094618379737937134515048526244828911078741219819456160013216388872977162061800845426093784954342421387775215544340330727627791311868018665977564272175248596341199991064374605958634101258391465455255541236394494435564217357620270148233374166658125218962791178746294358945332692841475276086180580937922249855035987087739015176373291729882614737305720252145472299857452632100735670208539561833815043513504118844108372114649919362542462774836393299928848919108757665627041150298257791141985673206670036753030380697535326030056195552661368628682785186837239343192217979535547020166133496461493687789771693420220937247197524908268742083099541233825963436057014647822839006557050322395744534416778857475645154205422705409333915696027875985767214160307559361119417837488729419249333515232065415929448969478315936927529221030265335001649441974030195129826233832389661636338022359777771782888801803619948050984928327563983455372767574100926205477006551718268635080799858355945110159180401668574536212012754271729854752685127690581984578754851339706135881460411464416099247332941469370567614108043015682239097760731159627018837234059887583643379264790035407178825936605910487099881818816156094349256486226294493942015834274711568531596400169811466717322515575341667202506698312813491060470095770249742812113380458772118074924123729238354382081784948661798476382608582063422334184249159313226193194681724803187678747249400027154698076443201594340296638005377663470410438992873989060235038429333848312931719696751870917163832198686690775526160443115648348590946896939537992378265296058466975262475469763869894208547479680590783078198786179380983199087611762056377251829142394405193824089333238043752663395464244233664424800172515461726097894440335186267242224696841967493505840011944100838673875446326786484631223766781002147854583523066920157288507016242483929325343807352927215765674947676069106419645744779488866008968178624567913917003643662998634733702812946748679125078102061530930719774946062984404782209989383271485863690190499001460683276275134546357758757698007920174114951328543288545254975635727268728972505109589056941224108754366641338492336761112916328514309561075363002090530161845818794145920384379866570541520647815435889177236333037012585111876315861104046586283434705569993894199336118926014449890132782590388867505452572996603215743088705069430130959753268926075520284398956480169714841337437205194634794782755612977294172654611740823845335513606576276426777223480684604646444730036253990978854621140165904098224249061961560599917650907190021600460815635101317473879424093656161716803414033993003868885924428500473842322670495455900602609626026500886406447610960885575952933220187814680339942568026059818850072965003221779139427034699906711754298975375508833051848157490402808024996568274313073018707901841732642027319311585175572396326379268771934475831711173965973603773273973880727009981995144583996291566372819817836779166136426606550908863216948406295355944886815906662891171539804610363750763136528437553534513058701204377392058901657023561532446502714694942924609754927918318440238628897629883581733824242385939437135610277393029997000421138064313709270634055366457764035350277674372816077135018892524252026139530100799300037136379665925370121724355237203813517697542407455571269012129583846676771787523585723948895149899515803784729717639615476316984848766196638132635643095811625350926376782618958002449949382201919036342817011372290054822631342372092279249475377214585212101740033398497106365787675118620754122713700795663794454947589056481339579980082029111411231562361533176144106594613770804907999802943526280718564909531445082853979655843267050209149803191040879519163017592882980772694575655094183660984339079338713320170241771575972845915309489460284643636419692287467090059086570056138645948360047797636810533904694088830698077271606658237022683843119267041078079617306214072834742294607268399771091388615876517339586486287604924495473732342939011691595939190004771078855039231479428932022740427525040132556645855756299378688598047742478523102760266406251626109713446181235591572939547551169940870734389032718438167172815622364377774713339570105613265497830841416684287565214742742052690796753474945027218773490226014778911783597038741260468043199052982210085443067877487324498356201933118409248116069507946105043133835716695167063757397456318027219649293464193751487088361261944145419510427091920431911510088091493729674563613775479719041124264831286396038932645500587255075178958210418988645515065561874263601079582626349123948526268389327694662762331319424275334004172493451422125807634378616186572775759309535090124029467048036475958107363569452880467390674568396859060583174824447569635958400103232856257173591978342082991513923501489905528526310491409815447874490162589699846264374262868318574474111778698727734485118841941888773686429712188947192499807330644446900400972136225086924009441470748508636316662329122570637144250241290498433947120135508783918994567427122385052463248039094770309054721004182166519511997855098239200309551773693453051775901271586102437957508052234405985180714875044219148452842104830243075471163431493178078061099340150415698406418946824592666544409189950254277907269487093157128772300540731712449842801686055136381597217866297616466842678749494141464296498209164907927756637368844584115247329513619340012627885654480828381749500459452544706514544461852682063922592615128044790448368770589397185709765620072974037625249738332042421030469102822623664873664267859292401448216283964011684628449530441746713482066606852951555312774986848703953500965663848830408983822039910639311444620382062379479319489566372076762668813947707351029700706697700051080087118254344376857854696293195634270886018909009179452147763071963711900682763376915676803255182506082310077370094984084374572569575680362177681245657230464488410388951876214165385766768949533871440228559749482445057144020637577708606818950434967368302762658645157007763639870944185685879906869668393802528318525503966956828800022722665780479569422831355201315212592162165779859707881464501475526148201214200605725974324067928167268386818133995592212279688785615582086739487387082507851939471888394000136129353414352013431043280034715459240912191781627048748666392473323116706476237677645439433919338736203772625667890117525718815748741134221447404863549582487951402389219165994960705948495112460735171567593435100906902333088778982499893970710958358681474016475710912924426627176419408918819533593237683134551991187868012089374209541078556247063746979396751139045991548332629491813060706307599895981673661738378292295825378199761832710911691558533140178760787616961981511022969057354492094997984569093833658850252492859301511279456336135567909759432062998333327124962480695705458819005715166700131144958511346804088993772058831413473839101031980636974810718622550772036779582300710263298019756176114188748565977815071587853657444864361414550850866298485776946612788282218021607633652624953548282849342533583076119375684298959452654551874551304258758015242266272455426303807242750523152435285858626630878329102524301008506162326525597382009339381959479297457852625365801651235016538129150899393162212636333080060132934090904144662525243537050959803794391989487145074920846608827716369927365055258545155892579045207144813702531146523252617445158385928477976434247132269626863621846167420443143110146743254694110105649291923078488903743933811305388643712453165730032341708862648360287983667873694633529357797643482719192108694369902264853037170349588078635790278190389686172513368531170794508141029953938350282941763872156998759362728426567138557624248517251042391953165812129364261315070056059977552469634458759166686399520087961585761917755498503701002960309800356547356978560310823606610134817613576340704728209089519095056391137117659423541323058801751642318084163520744707406031370134737583313000026375318357062097339244906273920758444605095829592980500771382335414029955711991076858184332820699481980899847716441139889567671900233300345238592931424052068746939203083651836363567052408012542578413844388981689989929835917951801891192735449360809840007124139573026959316523790449640716765329154819839178184649763585084827769117968819069147702170857620360509619428047391765866604692129513956890467451909156912534121798869096014764161320734128381719132574805748126975890263785858726936725426992420690945639714193194895964248323530572317809280724774558904908033278147349869044245212159877932271741432439832068968622382136900961498340265142507571364173619615991147055108096382312164091158910663367042063751336162102387670259801965271374147818967359411968330827153078104681087833205898303876343622691947678795830892063076806978049017326837474982834102699371824718098752068860571252100659730638238516110181150064301282760566792270520722638618518033718457885901739986732798791371428196153584277090293197146480915170084746627577742438992549213497389352496767754527187432928747833176834328968676078445344135657227895205809149782743910791358016642845588485101173129405397653023994293798803066999307523016079223830203473891141119383459308606122416015663190228412845947276882387538464999329083698278692236513551154976292927212974367851656899616334129563228496326220312074718687224460234873380197967268161416071307276738568717822819715467139248016848034489737229096043358985836445132989071889713097278229640919673404202217419503722805860244698881740836218787150932505260899619291153729162429426343702436642169213405165393342600853912205718665669120685577679947759899584193981379331680618725944244567221526126025436813135529799171673777164652129280109396867093057707314368070855828867255148268360347010309307598328971416134182883942378104063621967957624641687319211756555604522559738251859016461258869081469960937680471617371994625965893108958540348419650548404921880100235810399889409791446755967928668906316398830858003788757579757571385815189579597686739571960933069506108898350016318843756391274210424030136365881773159810402307846869414333808745274737068629138181664130009505592375328017582580906621348627122588630925171330010377254089675968214941859645868770741001212897013364380269814065007614465174396039696191140509973939389950675357966711533851216555696588010473387488780037889632544743296974057471681008641303675506661555173036095083516490993934121050311688565419443187046974291652225109139502698923047067454362322010409956851725310934727180528276575224157857007564760828974000644582854156831885522901481043620637508716456988676140226573556787815861520784270132144158356118892227096460958167214141411433406472018855500491312965332199064202420531120873471687158398776416177346441439997987470513160577920874491913031671289624969270498168383029082511815829599231013933351943356644769995372055878587933991277585518480469887347622466693115319339235774013018679943537680891039713195260622608708611540527518060551522827219551173966433361781207467930293409564112035519122150758986485843590079070938133011310549257474455124046927674896942616584028967664246036566805599091829916440509457402460010645004193142685303154429388516897203099817807447148851703728391015836522467310642735403457311151808051752210292597096175607078151984843202170836685241781810997655756376779814997780628441749040702974340980044667632330830884205574743743931970880578269766107961198321993265481434077873929447754598793553450895787668495955864620534403808595970743119571211865467845983367604607448022963298524408032382612926490749778897045480873671336400143961857027807712346058138708613177027935623359612575175297610135201367600566774803614705322854120636847064250910504118299089628701064572419871237390283901311642852865851181200818429044213800393959653082094928653222554130236199142275339000461729603064348519946972738962506972158891255884230382499578642985218690579895521618812008790082347823294683929298959273825815037029570618272184440703755374494157922882964799757162627338489442356830764632070742750780490689121331226220186499340609334741604027872822107950503325665055746181974368556717304951423767099808515692929129270257486137636500948179571035958625841558637217161906226246165144133009775059887035300783648986782284405419660106579791944456613594616925782627747868206170510078271381566007540449722626035081830852453574114248351830286599798428412481554973843810378578396571682820818328625696066573659662887634430401981844164121608902143174552039805261409781533443042755132178848846155952922724712925353845294977542009126752726895704566834416186942871265622617226461505329654715714166985520523620608205244496440376799675919582438205436790950009232521746656507385082820752877492312176113175067941523772540454650806709404226431579724889247446215598471777781513759817784743108049452908777018518503394744703283940128026396517899634669273315881445372270592293284755143482698091320030775826064166541833528105115635957895457901037417833861692275536964777743394931923153748786282565073813322792061093764934008166269784635531824092585598324676817935038389680866393930292259568520707448204638139993721825841581303126889788412817722769183715006422249750027301921140986266500138133746253513720055883957618867610657308428667061764129566920257936367996667454234412430426344323063822382659759735600576780850955453079309405172080557929589156588169454262880469752600062779024199234778069920307834997376947683441166735039799836225108041575799918661477346486528524279892102214951426208481339540881534867435479810422141852361766529137021081221861301828955772027154285056806566068225083950594390923981228075313540108519848146110840690604513434163754071877033528594902219337652248498762298212623727266543601320439739772626363587952503319765289820248028596312312371595740438130961396368749352058135090562229708038104038588263080617698782637187989785826438691630016831003772704073525867257570182640147381628459876070794025287246143407347839721915964310901424627940862190495313736091495531367953095653551413215283077734364270782662252715965057217862907476127867821329438538913972964269121434604646410381120775152116241949787754656373705178567242120578610270573164114855404082774436763230102650359811109540799728576634988299619869777425575998736555491726032512247516149472632844675931164807190061942922589201191788903681541132612022322379964252915452098331001417555510516686411644534088621990728599888071012768707566458287754670120466010381188707867122134183271318940031644167427935713454945177657985809839079909303109733865918852401789101663478573516954246066119090049166132728533301869818205855556094219230722098098745894893021255716458329422933429185120279802799814105963559068443727064523495661030833810316925053815976838928058665600758554070760783868877685671987508051166411607159671441258575183994134293531817496033863031295594731080715466411675273594890158795289031822204601476458545490709257813442084184426612682706353815937263611179689116710332424659916157441792912472437022024017178565496586320793928972986257338839165525098903374882762107505376517092206319025715897349782704193366823989283510824298083588971564729228776879723434941128949669419029232364997358355613447269153393905792631664939102241773082429049846985751068786212762041249071520302470451716046962689465176029281519705941002701335897035773297311888689997531014452145687158849982776432380972078840363608432778445934323260409611904438863744583362445883987917173587142554077204328365062833835306846200623765180079276348713856192955940696437317204699748322037321843148354480701173052540455644987895971215435958909210318578766469403073399934236570010400446926034518848604664736570746382807041372872994580070933377943941290287031999143289194409735690319780202993158149743163426103781833752967145604599387413057239329552802259437026326680128216733014470584470959844113015642553615314867990219345832643775201662573033221007659383203999418916042941276641376643955307505503219092744246352275328788093595392328497347321194796675495500735410444734322982074338763877630052800098386371993897850425740781389721502616670114950707215830286085889898505587500521163910179559800102149845755675275115511626092202456807592574398215353829250463489903885777581404021228754556183406892410029551768950985376843684752258293330535827947494180497368454489268196119138331215423384055235654018726445224916922107512266629684088565661047665200204793690156890503732652353474865862019271187995000298644098596026180191232512505278955598016885944816344554436820023728623784188139894146969793861359723352608995049400129113024027863083797458506071457772913804140602371983652425506216645308114634424161337693227923383033912626694729299194365122703234375285985597980650057944825630295031966547332967915383616394741590946979039490225691056838279464884187642934109544256731765671827295562337776467061440462283418948376588003752548598194229800767559477778127727497034878304851201396198848824570926546725694085546774868097462767511658277217552794308984162430431424204026551820704330850666271245075372866374064631981119049207534781649400550562413299543551084974653640207205761939373023834546067161808392040681510760000704337089322326867339681539261537669420702982892072472646669130605691009327304897814800020038008901882294640325897757259583142288137188988475121318518965437722708568864688680433666845295271019183581219585174151629570637526721961675084978471471784379164708561540591820076398413452616041392811999800734120172243397616918916870044255905835543937682752732701999514542462268506741061228731028829674228048459678708171780097006984417697157994838202770904308812295884754764098986597220020251834875559050152770092277109763097426423768746262827549401855317698211437616313190292810571015484109551829368812474256120788985586754258487794662362424996766292901989579090002928758196328066609661060714914127777314377680249743581170058739235587701085543651790106952623650358159918470631416877469964789486520925087954255888820901884040439933417482819165270085301678608456151317659018041263002804504672586159655976282158812908276352076624864139283232015138933589506798558094778775380756876746687869163067738415352490257092184106965815270875735588957421296161959851592652072901298709122995350179720889528448158111428664023351760964771379382756361125589154483830303426381538974395685691300457954485368314414301037628537901555898217696078340645984841725409194764177261660270653854063526690939821386747736438176642562437614372078144961061520006746400398649643971023365945630707129141408541193853098923192448773719772384107890711005854584359964822539681023764289230530514820736096487987994693422388132503757422032469506668513683852172950088557417181937420704456238477766448966678697765381049279285469830009888657727561830933473833166921385013860167309588018871456496512975506352517491735838506243912846862170862937661365376747560334792113641705900788986400350870065815856206015399332603235587192865253432288158679536908118713372230003790869812358903809980689560311568079644116882258638011026079219003228110671142374461326117587758411208110227659280990907374371561559263674786926533421348428765334320121037778367717816017767682111277457958608577993779474590142919862043243533841751919351104849063041750049593218088892921796717565904208629316515247878468239117030596152856398977777740854322359875739340141554407430150030057422032893330269631951009880585969826978013492519783549216899235823019871850001688765768030084336299982207726874127776940044489058318989935903677157439596809039755118733136986780752565759939979869400538447414136366932968818741813294288018010245477367175930099757744722440911231341105188033992227558368911726053386131954035476027970713767143142979847617206665881862169260628032321652104695061569053992777626244610758444563353284465820515540395905823879008419925877257877576389982716111587998291789634131519312471559179314875635272883227882932597312654847132878295015300180575944622674649253145181760183105646853066844609298111719643960237837797117603692906739870637567323079601702420717519306969994599568888942472319353871422265895537014117814185116586219867454699346113956332102925565030581655368679597747300129946628640227576406455268827983717649952570785437269280117069103810145183018435881594506292837993395162100795958580398481475036398150458184306581343082001862214511514202208913476511496020312676106307248494336770682840555303286758204108656236244015852596594393730259407939837467549525050687802836076854226532086689001156818596696489791939872562629642623335182973042330159890727785955916425985703376957053449485689076901616554348864164257944082610062418737922269547215761032941012283927979520535259122846665867715696113651122158672150089687637191445430252052835287910029097983357444321281235841121530892137150824309321231084806403736835726409674541770799243484469449103920171932352757152385274122974783915451202387647495891583296138983385726791719314594209410911542697431517731540692009496966602643560127075589044229904508575210680277267427647859418501260538506935670634137197453009165880206998348465270570051871776409211556303398488205259282908007344168454404787798491755317631529923847688931777422812231081685749381528721469011266076699958185195678581409270807354696187092289670639250302456145321527369603129731317650225947534553759530994035709084614757866518601905739223891135264390660337521242723309843665857201921307290252307379805567592950791271471578617820697969455680518583291694902283262836238528502141315624973711885887339064644624517691713901785987384818231915343785828930417352568487400429299898576482643287936768741543435411984270741833774406051539630229357119266215348278660667813848575140435229642534599789756111716770154815510704977439338204187202142025280147665747184947407690551313091890795552409085541055207819136402079944570183851471042961989409727218970799700126679564968373150166748222980961858181900820545472428175908984061679106926226805307145342127558857691317339400656866143532683185039873756231811557918434583722357460079097042806015275200511949450705042686426122191205565904639085747813719189364401051365036597796343656500990325335166224160102230629222327375113917620338155906653826732261792642824658166908101233068692595809865859972094388728558095174870975249337208389975122913003076067730644653713324354614505174224024153768787078155565912755538765175048407135337521543646682855447186080160446482160549726448547728891304190230311998698767798576080516007528423393535559307324410594525513415416154063869308971508815538701302085569879660729858848734564897116385702076245811250551200953657553355917685895949874291843275788541264531169419305119997212536554690554273870468213449304856214638183496831050393290321638256091272622570575064310871839804901537014461261074788522475379858158383621992668887828640980530426720839686223802667367421894731918127672596390665862067491498047105993101038314348967092586106862252077974770114864682551578309158968877378481592876279966465700768087168308680901700824593247624205935005911218003018222491146929038018138994127865333290524978586869813933393942979366627072057723696471482345434305050127107782793183387264546277549194831766936696814924972175589886495068396601661636841821900089529121127392790187764271837800282763695022748806520364436176310014020677114692222669821026558272668766615217390486189138617430050553401395595311956456881794421471191700641615339630874477455930168732422667915489928643336001817582517152391076490388724256654038097944535766940569044385712488532507155327495576286824021394306170568535901083764835237332389192362662441758631564827416405943527190931361654268435144238482891574329125504933653153948934529158084996699628360787485983362485297881059805602561738098664953489458545674096482450661181432925307665778113729114882377283189003957503987827222530996336927953431817269917161027711651860429421648294800063826223763007508466685717286268449606056091600118723528312694495032150925182001544306618536008712721096981749909820026315000316067417102817110234098326980274426008354396861346078281744511220073614416479378012105001505944273794000595878210677791556615420840031490842059666625986867133194057919679405001666326248077741686146004914461783912457029191156739347281561363877572710891348786149329269691662768061198499713256805423126469183182899715737283372611797945682738648020773164159910554500889090159592121085597671507360096644422506228799491763100453844087760377402219722248729375596437586424987921421246366354211626079751935524576987528384538952119012751955357395517956036637438409887569113948011626258612995946138756744302148305055227623277717023931499083618070146205673812035985502163541472011235138805991729972377364839584672690611598837260842475344679209612755284641005609263800863854784589840818304288864901141528857269573502097041242893201584858659999858945319225346442758256532019416978371627395628599749909997932083609398588656266017791828241918596458021520781974515283541244379041216158193334526248319090803236870519449442341794809210386234427822096724582051032314016432016338856187384528566699953295795529929915829637139515795823473082891154575393732567832082583900339404008341760606621491425892730837966765145473574356275228451951690052291229796313196293466785447574608534380773099916219677578246460042120559043231259740697054653734405036165807421845414790551565158444822261594414511416324436914660812171134395387628534823609215263386793730814986394600163545425366087120386618426361438768920399058827700932698207660259916985715485052843031233705858137612579404705021090328456618404316055289908246184377867983278526165234447617980594255801999472023359038951393435866385595916598935837827207583155012809666824813840222175094116484647499894982796858960177096843723573693744688007789232318055799266333138105992259670634504763516227778722817777933055689218769100058265381721679867382820736306597736892940881338325667647942879895341898342939826578649869162831722113128025877985659711874882899205376934209239956838179597825229960212549802263335134907375636376075795101373590182126514337114405601294059843673554962798066727747221259486577452096435403096082050930032854591406983997928071970514717264505981965169535647077813134078538421884845265661332409544899040594980356488708132382396377423397488975623463547653317843421282819218014032758449158800863056569717900945939784928086943121066920236292086098197483059534866895929511626498920443827506309453580028316167821144221905445624743004901600425096265595851530990115224548832146139465162920068187927014613762045749057511757885943612388478083628983305071811550433505202258336999656351371508878737266881832735478371271725448226087556784981734373927790038453998806966810199183417055278955611582547100275654476839347015644663546755442266886159572249021589231728834014594704799296988462048262551358127902055399766362187597985012302957256646545951159988314974023661988689462745834370435646639626684470862108301463666808390720548238882585042464937515869169132659542174348860726325762870817204827836466559085708058477103437771462508437731484114827106464659143676877935483531143212286663369279502298807699872471534002536886634105249133421823817883158266663326542918456990326069962222945457350904979452391361134415572537189513013372657645307562794620349795613224984892087254141290563268080337666324711112863547807090669842815324032076420997325360970111702217259579620737433930033856909987376503985334145276606477481776410898455680671821653095368476514290559706833948122774889683635406893676201577303730059769783804774171461896472506245013126945488331122228227039441266120859358520778586118985289779411469137255898409539345378455072586312856501516921029940368361945330367475960538353834895251206581420668839412875056592045211350208123205320523386257083904216606195233069306122191456445318400031358871813077474198987432357730675911562918364324010957009142780449302779625408265305364067756348550724373816599857310620289728807727956155790253108514354764368169521078148201456416641161296197053601682581542858699669477270797572088144697465136534599365696766171779272547083363116911464206548034936598031758787480286261261125841986491703718024737598940655004924439724827936617748736639353017856974645948585052347476721844580485577070663993525792783193471737213741068970204803779131707433536275629508308924066624127645451948830657655400066056489116217876994081864997547344191830323342604712905896164436625176717347059841722738986868040002879198469592807449344886317581593579673222804227848617249033994649019085316319556735065927591865003495111197490624819236813414070316201354823197834279730345869917993890069693449414141966017033739444531475832504177785730811517913137052680858559953872673317117883378939947066047748658109916034991428772268000631567914614039895245715866542318632334631288621664221693078873104209279002442263268212827571016463308560287285577777151660551941807873562596000346216809781384073227487960621951233492965600430841412315490662464780594320321377391667960855625282063478621254730047462179848236470100977913996085003293112641813087754645824269289147164235523211055117834243517246817440732570922120760723392345309317163262906248155127334395485889691875885872598128924794066656567110845766168734398604888000982635304619721627299832818676961187298789940401296179773695759197006193152647982437777573591320036937535571974494513057502844739176397182839252517463259895955680224786961741941220780998506867743235504164046932642493154813630973766425774531428564088689601370291728338285856288051581742939838308417242210502824298366540326631135342182915832147607946624478175114142380184823261892096688464487415576289609004449095760897513754133729719182447435491610406825097437861738489624717964175766339477714660440586354373695350298532095514927280422527353907542020449775310108423657628715999218590008104023773546909092431841728902236181044326119798001037349893262733367627362228820040820870938299797923750294361154386414603313946487567435027723087036132386415824210373218805496522287176918400512787394727713715596274304601045214936885714213789757148820839746534140801574958460982729313561243609191660894236780666569163990522194684981129555891726034535083343795218795464752873988707715760992966019226522278377652036384157096348499015815572563787107466575437878907678043054427245612116562981508373782521054896210141629889502312408256250339590663518561028757734633195278193313379643617103791002966901635673406862136893110801991092486414598721417008020362320259015479824485525964743771681224255436709282894922874818588210814620437532876349760505777564658432075517904910343563879360016632469023093564774313525501124532745091145123433852381931753238642231742481891286399026750512803533944768351955517861301179702694050057775970701420717568537929074203778330777667483131897140357563538944422908350087098552651128561392953044421701644933627882527716703426303994220333017077966259691791160009487650668742615963349549451667351321484010382328103430903480205232825579368201707021967141952518192781409729773450598651467231045457605756621901543256155820312948326956031980832108788190029490312141038439704404577297888085634551512311690671741613383037752039479238796831794574291055895395289953731538943400601240376198204078709742403915658195759348134388686464790824435016573157799639587087562085943915751635370543697241606520922723736510521024740099481425385118005068957675267540627842398259989002402420984369137170053785588105960557667487117351905044017208975803930045252962645427114698262340590447710977984327875308535234469767469748638757485055085308825916267087798526409210313736828593882809508509296752116449702374273980984731028325620596413987424589156377368882467657328071188994418981766682176824221982725241645098884835269832528298371527796527236602677990042453648274032335258004959071959950400255222249157994547294588758174600434078915049697616820139042959256552263030236465945272673137960793643280232635000340904258065767467962224653032761685737364816926087929309474454962012168876131036932028431939615226359152342561222645878513166620665870956104643609021444017556219829643500103304533074229685428199368349575608620031770377525470836220627011860272569807693633123373434144125742845214915475873390577673488355310294214779805795840742524138525672359763847858718322293168245542681202796053491219960546647615757368736580287661771248883818795954303077096872560489573921315223080918080422479398773826661430873191409527630176476699148960981113181513667635032939390558862678617524128644456755161816800474232229018518714064023924281926186782045885501404544980904634602318681426635469575514368514969969489210032241617134788704446391994402762876035131609996969496813144396135516918634398042072756677797581363902381856786079907717598520224280202867470053309281031607766005015228635234683529497257368700578451558956416149461311649683851919555835925738177061121258296180015634500313326673447009769087525677564482452285690940964731261735254603786355894311906576164766617837487068428872143908196677258826830459099768148673832044526946378827395913143571893101317331380730072291535673751160821270353733839775107920597222681348693050846755358111960067334528264979822030968622553910266578492599039200637425226164846601246623417031824021780145476483945925358103137208062808694329543190045321932331643807108654133565042158556292906703279050053544834143295677142312083369014487497946904614088653231463497898147514724801483723598102126909879942817049962251612195194998486455521398804761677235669848232609614584933101097482031002924522621018528678443813235667019243527221334181831178113896925642265274495686572408968041281829151156811485619505881664080186967937109492577282417176980243842038759226317201971434645502362930690568581691855297863264962843694925902360592961080490779740899302198449795737918246698893283131783771916238419213898907602289124767215077485590905903300723958638754177531387842338296780349928622253645255940341823263869030007902592482682827710170021292689584626216149305761111323890885769606417722991899472200743499958238517909219049991065862799743141293670320692636847042407512143232665595225129511692462104653448575308852131344750522895846488102717454815536708649920281764869773241599368254187551487175989217561658968987445025421378203437790945592277141159153478199418636848387581244649662918526163064750222496633361668889549582221919040871444840985122289842053122391320252690296723384707508313591237343666915130308420228208582586201390362780999193336065022892474468420995452951287914905361068308986482917899580117926700499124637547129125000783589154593695034559673181150346007381709924099057338265938782448289867321250390076396317026857227935324023536368184778582702949290628250458520246187792107486381261227448112291581566455830740846887682750104553605526937109028719185558896639183291273089066481013255250655874274168717620003900228968038553120680877456588678386576674591107588681377570955321815897692203371450393515376441411789014883149308744310972652071453888869894353586883015054429844850002527884176749556753407954718099740673042859633900549365152390042438630936198975063678080636235665914461347248215537350623467800840659694597088419106098108227108739785024990401625945828950002039397386686820936733187924839967716849545500614470306286650111943798934269343664370748760594940545355951413207339854556324325228917927939432875275430971101064828297990846155923774026148837462876641942731310512343624568130648198320349310334346171515733485124919774027879853379437040717512700431452382585392645241742103845583731225110281373258242646337331713576752227598474546795236590586199861617376587328714927796659286194263711114041062867006676955596533792702921571803666330405504264710807162589794698572712800291051688322050106559226990615532813141393415806164797105228455711495761390632511510294910769339903414395756312010896616551981032849983538879260587858868680297077824638457084983696678844571699371097487577667627238863643274897116648996875849264227874520352354316426776551853463813692827533972871442582493918583974925428384253888473360812223177654155891819317332068251357858769193495768052256749252191921934210219141729451657164221887091845621143360394032289557352999336325041268502442717361009381444157634909922193681127175369580243235377817313458670904349159413377979186299394600150032762944727429271365697452787655968942577629405748207482279327411517353565896059421487116041325493978308637115438903081342954517376284563172913383013126373417640006727141893301130631324488783877237763095629466049052907526479748803306800774035544358722183616360136622032727714762836726279932454522577856008859044039469673282630716289345422158064328961972938487459932846200605877016817223087006471018347618972106399421966171182649008263504226160620857713499655977443917943503641587727936162783693128199639294745191259243617967095799131425959786098662845312898113556985281445450321517509821514764296013840986600528041217146399161892349996465394856593242423593589507157011136804851009693535558667734807695204452300536279883377387560868966278958452854670108683300173874330472036164937988149391097665160625263270689364611300112817123495940447677084697148277553378326412749949801092580321569751555344493158121990678946579542100708554163124779782264562399124085016404119457269385254967809033469927437099409800237507100542671705948340626912631772630222023055261773993116700629696671689820866243524032341190733588769093952899247921727121305778099088069211065986900326874605914683087379616925136005188141515818959322084305891896665953118470485721969981724014585025924008527961964670199855519744410319458030380686201745147981354071960326601717321782326900373386040882628238037903707769056606071531131961077712649043945604749158160870174530538644773736017243728112547545442285754220648842503935391970360830641021793504783791253484975102468990107759803911449264389110183502997272975203560511522709208552467807881229922279513804229183069170088314413446494646114943849768423179911543321249366436380958581867942063505218654037570883646970897829961310700481629621096928203141914288424190001295877318099070262204433177600628981970714539919009094082531386858473352528534555581910909025775814048148935119522826903108037851643294847799175257514680119953564109274772202040784170714132990242210906723687186813808661999320982094043568861584981550077890599766861100900709500055693128161595632199148765317245138164513608700508647328965812633741578452118506834028901260613579541652330044959858770866380056384855575797600008197984684795484828574553565709476612072560813366103583453007972868002408493967811931424144091201332776262370705435699239009904583990736958483865346530844412717172577580958892818124278980832047714947080059436055716122124497544069193096677626361768110239039270325326043064083867015469801174763823113436522806751771174944137227634435761407590979716956854081248869499992108693273632494262621903519574788541782414015299164843371792311684093333301665775946372127424419144896656639463398001621721636298274798811283732528865543451668861158669814633828622274095987705508533193323583483191045194646756395287956585540050030249545642319114016027517693815700844156585589090909018051960510407516479817365955166388938430746061260361221459053180515418102527076746921239116893757250649755219882079730841822543739762703932873737762315238705256272353773621973364241443859947833159438169710034234719626848220302904661690314312584901308730612475320465080164305844048807333286988858606604498924411992144983001309583141177419535643391058420002488750827930882625037492080063574206309677993515816137090637885858581059248769363711214037533850446050408194636097021797897095495893103842609906445089330528681074093705616351533705198567070027087769215375335328541376135362620129358449963685089012854279070513179459973909175262546839064007135659672051147452065630988302463683620340649274105671351223454260956091397853109653773300158354881037303499292130635850797641319305619010481332470086195188935130698980945854342407436369347191184484990121667907237950575081010323924507162243300887456365253904619512387796466320846664080667234485607463661657744468971346149456970666560124127869118941615865868895467777928556911312643929258150777864054997643350445509781166310032383542380143121365903874372455738724768801446115348953548844790394751282662394372479508017517576701928584479969623601702952397806193257586460402156068100679698905372481330470750586571487259715824349162138564767551560754387021919844215828857294468358179122492457933809012335947500269396211180909214654546411343996271996809789927717328222126232821219322892845908583069077137197601468045848282321145166775823030556823514905888901877597420373989737076934949555931504833703804139257607575120744677386090299905729112181222302640793937994661598840280667690660969599985192222372697498833549200945570836463412527135817155678162238190875535801530297879749612931547914644281552438709502596154614898514530996391894271785112260905698088721340502193803679958830003579073191719679866721555285318674517203597153071854543866588655893219858422386858516219021215791580514858214562345807172535642346506956559748730069075036386635979714780761810640925340488783894632499927613916317331931934055264331734124903348099803565157774533553854149498884864213874873262687889520228446795527220798433287451243540509264387957709186245495013009838696589879598549880266078180274503829453546569358980222740734638880318121869695101321020611340645427326962477282245560131994690635007724578873964235012089795583205795764125989576438033455062350121719490878431165077464575170996241491964006746900398657697062356506047147230901794337121426843508984304441588359495088679564095680820759294883824389157310347068654768340906889523102121511678244239743803427558878961457425595438509396565096640003995653815503621818737875778452185291177049407852545294945226381717397320242776769646026339264507968785631989498965385778517998558719547161212647865639471575618483507015703333275730901109140145905141759355141527410474885604258563293643908708645398996435635636701458905296053392353779116503876348458629112358880454470273156091899981345419693924185688536800393064485786353329983780404818473578427180135076161945472989177581632950406597739697988840676230143249973676446159315092588030801627901329649169245345502710245170791491660857942659620820849179022775517497692078243014473317679423339256511836553022287197636769228837090296933183355370235238449617110848507024495359198409488366828690669223855324452935266977143561473327205063118756733585331923062390919664342782547284344049495834062025802783728806556111125340871713229975180136559994701508682443150083530772199244356903883794071199659033013204028389330259432193540034514178489072758667692931239825000933645097729504225998960294930109978320149760274097020983971202455672818522645486575559554258472911227807491422613098640128991747360706344407429662319705086668784758490851405506852518338941579372272655291350949717866800942091554612964934066570669311386512708314481029584504494085469137584943083915214218939223835469616778634157760899094030067901549028615545483508105902220481759694505457057737956516225989351862947675778595282404258014683672631591239151420762928977825958799737444140340976760386067756981148395890315224258733906695723553460937610690460430669331997449870656390498428537784113833864911908479042340916274550643433644483906845541708347512073053744012251805215187145627225321435879934279556591346647264268046298738778311272471983925562494829215405873506753565650351175695909506615526233907590276452800298236807532071276717419298710216086924783839031671033189456051728675071255619413233781899821413101436852265801882927565921922226060038111872212958445683651881257135303358922455595062960124656585370888602142464855031086249797970988505372709530007972367848925564030212284512231686062052014467908733232371871694519866572520575654618657283826484399327242025424619250028446016359742261158481178796984278536897643474011452643492833186857121232715760152598516535454420586017378661604127451752565816396954866936536651497594791279859241773641200798967768260871835006373130785739668002741075235021279226768007791117859988302185114292461136712709761750237816472489909947929786305541781291586581006473246786588485121403505680303459553606834568960248956232959662341808752029908992487579906031286402960708588840855392743976622130180609323627656642281834173390483899073546574541862213506227187167591344276271717474675164605770401301113684736353761789127548888903899396509404897150730576619712808107881629369155601046369335515560354459503370349194956769355011147809953528350785231418140136929175755628386303169264266683620144968254747440005099943897044883582639336026993998231394195274896332833437673589407608268452872197282062610252254197793554785983070341751655748364211186740654721561749329274348417758171724174499166217924823812516822292882560011909077439309898535977862656705209925724375716542862848992768301473685046201481010153309925431699361808020064215765194803627147719317340943162176806460866310500753931052258958707585521922538474709893462398611792340387777041507747344406757666379991613896523480042205784244521937620537322263883956923600477512312466306095974585542685723152823280127272773127068501286717996038580155608196555536803963341768038431348009132486821671774703679892166821059463846456246915274450358799393480108186173521119250629290854126585837666109421193120547024434787226211110873239600402122753302131749923084683209777644749867117323224646790935849483721170634226945560793133671140518726918605035854524130454550744700529151263150833423004184448404225790681790131342004266316191513659480436593929237152435705040671953295041652513822923145905534319298928399407764497190211411252551526933044958961858363522964619141988330512910480353004829161826417565952264550862187292834639275164806107878227800625383940908167408020647526119749252644708394190399414285041643186219862402210380698752838438866311484375191673422938766815020168595648854752080056240703327100532854737747082721824893893861240448334461300638244817805672398918371330963104766133174106245817023827186690645941062025787805858393749764804330825149153346717551892722643353564729472485879782029473752854665508065001050146783864799195249776669647654711718505225979634633434533276813501062861630939093418284462861590255680735454760687253167175623299462567463388495182721344161657582621959645195673474756479433042334871072131866232925100051744514201551610517667842468361733150233667890836613259200270791165034750005609931836779691554058044060046927005926646393263548617560751518306561864644624094348158342844867599792662692614676977905328884172410853102279151073727564240450645304512249870150886666308045276447985145303926021364855955904002892029152696910661455480696155574473724157567207619078889114334596693119723146941235522380630269460474765779110191126258195603104709159772952662386520368053943868753622051624393869245143060493162781252376963681357627363710694333127573901983437648123197072100511186136348375377422280661352362666583989936222194986704549372941128155110121069447246112094402164158188655473991904100594052597727367080090615511908510223004028535797087474572379358528960558397124097608021049347000752169916456543419653015641816165657346053381472234043788277251307684428648921762309248093171637104902945974714466593904809224335639026603331698318714384750639797216248456795337049241107513758485416633552299963552315817909887740985120708213991216596202584482653607303703651790919501174756701297472513250867035271708515470053342556213819199384556418434872897015495902367389664223160976801583446221640569899466145445207031024659091803580951897423254970277966822793659233955845691401599417735316079162438440497477910633549475368422462054512176417508574140665078369359580023984414536608367669266070261174624738172837455857396312042305654142510931451144526982573135868238053095596618188198635953462141232859370715021219632421066076951225541786992279192954408032374493307900398419479512866395250310497164627143942819426559361242901753040208916574856289885496336035865757348336595066370654786331099025865230144039026505305963365036128369122822931978924726772848645420458569690111893069736346988082908288881269229449717030483639000688854865204642683093713357648659490604997784669080214638148737413905566927917816004177679973497399759496293899619379785919731524251995384356984177993937129250486205852320817883173680559686640862151378987496147179987045753898364793596639157652525358072489062820555088273767083493350868981923673975430236971142462413101202488046233191714723823780262044843714637768161493597817224676322836243159072815657448677769249289039775655542586949127875182373449367115097203509953259750087258640059570393673677891523151504827306309898388776160336442567065801163167876209869825349302148885963816891839963268358232558549205671030670466645158018116923352907742076895549198119147976562038941336811115167409307554707520158353301620710550752352732358723587873304683463488781073475740228735689599275049370257677782149468402841822476510424937715714550375221206509584282810882056541494364833863459103047203652131765449462628177967480776695409192795491221249940390071516412978140720779993084279108179375667135602667793777407121540859615820024305449373512208289406648324154697393785331596840853211087585364965933579370489518242492137525768133039377600790343819750132162007732029469998363451900252290125953156876806777244532247014397762566584357178191012757373005350814268740668377322431111295559838868326499814084029044947642360271341721664466911919693127517305848060167020387563286980221290403408296828352676280570361146918573193421927527499933667491101657616867902460730069136511040532529243458569103855645636960281444658163160603617839890659812360264871398143228563405499677131479740878517139122635086722117433822373289085546327384178801536550702676727491917894844192489124368935361520106440486759276976287890246538367530666122614745751684389154113341354136867343938375109513775364969137140572429771079188350478991386870598841929409887053800026217014876464470087097322254760525280277320002935150648847490180367750975094342348304155776025864611248128736611637353524288312411047412056579447871675563346729775995685471329907060507262331462640621686358292747114080522006422571263795141790991222139860115389642011546919156590918745798119102056735131978829057405454582622141585124982427173274681002404565308328990137565090509518025721763138233112676927337895138748707554527456908960709758919773008086993951595903000759052503587797058785640592800024722269478819362510665473009899181260794228070770415851279321793965062379061469721192375387269636772631674751119602487750358679637104154089235208534444123434837759046327327459088980772070679288062557697015544622947377490161990005368642441062967468704023258509138234372751185052978354642477221493885711911165441776613659727319464276171640077737779772446790457945759607864339886476199024535344422448002418924675475462275181883379801505100123568071438215992534485129498609332784419418660944050879557480908141119507039860709822330716640640352520599276704559838858369658472308501333217864448119738542356898235675190816087623589675230581046758815234847306370420234147945388862674151958902765110473470932774044217640803969557434646273538619486770724495813380465116230513830259433756680718298230122614906587423290120922284046463702226966416148246902501553097393971973844374837949077721538834663245600975496650581042761682269557567958193931959714489526713463574328735225454909736104271130393892045764396600953163437106289070891537027730361601039413679255395001084546574382923389289137899109328323074291420707324051886458626232679717347925065177658706525726568811593919292693085503041295804733488766233193814432134200072761157582068895073648756273924708201547893157434644969851268476523412798964244831158561221128972296694539339838043286087354265201794987435566183411804591754857238290574591544487688661521699902982695050891322457343228006076136874388224030755475930579160519661432414392161020638558787838178471311226938722770276936141179815118451264703698935125529371281484974206056763116924619943398730909363623459740303340592953450833067464110751309060482093847183647053695699622025356576251492413078882361800976999591349768155541188406034353942022581651598744047829320543834099280564502925677687780288478570431277341680712376749087977013982004895001172024862502796134520342064855000832383999270355782660546747451998396808244699977442109237311411771544251242804018428462590147595407300710414063932131796750352802435192141667646957081396796219351749308771628943706619567529605985625206715045217500650050341160509091487105119629163420755355420371526144971648664008285028744913922024610775432442709163203730080309243138228675757570344979538054959173760403457728973152601063726814279216252683796973845342999596373954111346783345126504634307737721719136801027308040545902438727804106382513849654663262798621944429068196064158066123525482765034366373817839622964600171804952828994555478481431188868350127857433402201901630618274118792194440765230626713518482571794874806109090082801221198380831283762980346027853794534635676357038911301950586561773266926848519652603969573578041586519943607531115581659467898933448045305771320350093134188613950537877333202099016676787126567117892900351334290108438019665258056298339232870405808923295855863277162078881636733198772817480018217978309420473952019037073004931932800561576665748455331885725605153821180477067454856034691040254652336887306751701422743234481889104300768060433965556571120782898874064628950389499895202787648205174316061464154514388083282875843664317117919498063811106230991415683505673900641664513401731155866839126323306466921315707551640588407674962773314833184524475453231349240784517876807253374775271389016088091822918997468786864345786716333284146056851011733457232234653999650499734800684894327211348253004209502366477853378276132695748924656977988020236518975622450423793408047762856799392288079844844156639808318660187348395556104267565446804235974097441468978617702333139355329410278037969492111975236224066710604842456757116150128664431813665480442298249195382716666622499191102492581601597039354345031490430601958932610266093747609397084905356708411171783251428939441159228155575494868206711498788293887908767982525007904847385699422497889407897147885222011738836179370302438560753689290530467740157140994932833050549194224496001379437759019204684666921451488707041470411680031369575649115727596188546330424488781538868881007011098731717861335462405028973053404469691748664094152711675148500164087142451306614304851632035655204198002170101254629591195369898384960031660545749938065444863992250763956110291732175379952167391405431387735906856989540340099032920697885969591024926104118082845819847343282877661877246120704661505559378680975376040046034422739703636362976614155672195568387347392253713351447374775511231803521368298200897040006580162456412765238643093226820673139427728381782446861940136355682380260253903471698859553508342782225768863572574736939176178977397234625066371955763458334430302178787046671324600768444316041255814891332918902636474504452631420733895591509447059378485759642862588461466955641626038460210453738337323740193417544666675451723939977980076441814065464316633681019824827526818621232014176661185229906830714236106409623099313380579416477629398822098594690151529758794700066667667458613229715265341578763947533493503557336891353108598307312205962855536200024621268771813171909495299507703987252952836676609581884053192783244767955478589635225879126435781209926454124811731311419958166959127741737896686169630755933952635930782160122151329638605012792969022550629149039841110854542650879656589893075675897311603837371100044824301448359638047111809991299773960893910438616166003166418186845858377121572831396588260336400186635522710913471631651916437632791905223859941781471576413548370559186721857979762055354273031039319663098416647464051435957382239322369716229983214494342181647240217202456636281709349923635275281838143099334471075105574698926103161440276143070980642029947985621383377306451447141245626105335452935988641095988970649509812840012967706657389525166175110180966532108365821614508028665608615742479196081497386447854414811584895883632540289786247161364338744280938299771182654244052766712645864596769080252101909701015810518753746755187332561127061980416705885196214110456367712686405862983350945228312495736830612872054434352597807654760142005413792188148738141000513796435672993605576212184210152159281706020970664266110189892038098782729056438767445873802800327635406975407585115555521600026378387629272952080014753582018145286959178050401011048248570289244899876795967879582311026656308736614851084482036276554719409600075829356128193659835226463489396710851074470427638824306862057691676955721507428261889778345180722505467996513114689961335360636870168690303308427541901313254284173971487951274031882284236508437129226358327751036083160277179061474389329925732478602882583981815972167254104129662036125993101106434737941349554408509513733642310720312323633972633191043503618308736742465298757925369509276171681206258641578440606009937459873051787992696845023569224033022113293119203779868484659188285401368891988624605838112698138734932491876140002614412312855483179796221466880522940169978067602091444445198233597197918538414349873688524102873248506774325881838553168689446783204164180895607251059664567848355973863539706861082496206330596448555899553745888826320888986546246484552721729440256124857568903733066995921591143935214159729606978174189323990896362229106081541301291347439348496794287115927759159864637435680122870626509860111345824016078165531245377618682611295433706866780432698392628270987634862461471542145228614847407949607416694099878108101896426068993472162551905644219060775898032365115148694157139203697893767296362222600710678511942546339772148127192101307535884898313746925105770913093757818500562416039732247981443101507761736123728022637311178745464640809583088127661547747070584697280397138644868513220652305956356936529679091201964718752347135509156653007532464446652307425245500317928761884206021235830226131028940429580165577652567481147395114409707839919762136571400475525647878170759221656878210984317345204276823016623590612197372688251623110449497279701377749733588952291144491260211470726056421871873322572346673792526625812494265438485846513806446741565720677771195123791077574166981732771598831712230066153703600252042787463597644027722572833333916422889882719109422053870107030425006347233089311033412110827550158506210482554600578101471343685191891328241424129260446662498244443272911198786084837490436929310795315750593121069180245532972439450086689474524523722426961078123347011601022842386772484514613376563171462201508117408106004939508042728334548428966134986721829839633930780956739207846758996032746100322939692229838305261007182396633448873711828102900129240192969018053158624565278748515634947727155755396441134230856145002256679739745619482839313831546302901008928949491340609060219812422769051004567488299481029538060384387477074364770159660051578109915075486967635192704099586216822218535935554960891052792369634683027679311815650779035572023164825502186757390987336604076779646831400545458518682447561080983463882092689824856115540719670750917757166238444813024853274507613247382767240409880579329502061807866318437170126941558743115028533995871390188597696923814903885661057401803924173011612625863987545530249902138994512636539803545710753589342047782373979197259805355000336566892189275305660640363803356741120264039784286411015905612798372802290651946598010457178731966292250092705146842024482314273880320744955650861613614327950898882442659648812723900154965115871131124011084431480657106605019547439546815123499454839133847842560729863858530352452320340303365713185798465909423829587063433467367382193745001865619656681586626353321624407067441288770296182637559262653503570045150633651006015461006554370679880710996745131002362556906705951546510004296422339916704245869969548481106820458664860456659947232171491463662349794585042287532636388819939840949331983219666843978258289327821624777580509440128026891119875898157589702364682414598901200055243886977121848355055666082068805668709714614609478191996768676316753277941099354685029794894874516954364377010298597002047725572024466066486723051066438364687604787613294266208622892034098222485264407965675435751952689036282440207013002502753133561158347086087514541847932466384282900628506165609585401828546765505193582313084652918573863062395194225736675603363154620002858116582347566499881699711571633085314112990971323732245177066483849288773204484796356400058561551605789395845940513706012274433322173096492308311113848710276549949672332797047841720711524189873451518812514790785848052679228767506693931033392181144217170968254068346235998519500044477655574494315865501810778726535606410365525041433622659703864235394385696292573827384171830722414723573351088754118235519110600606896497323572923591270298519160010889802741408890456031363712220563064685450959169694300242738849674114559811942944130833272592081053118367494936787258346789208182537871674776926898459213346117681315054431853911993428050395820008271223638194489593868320338749117334334418809279703794022938651230272267048407733148429236314039335696862608501687460138724204326152084754371718447952057519020897339095516846902443772227436263782019887025213964042816926462096723879652740331458977363635304330716125836334624077712059343018085796689661263762592169302789481703680193344265804597539802376698637026050373242818636437647057769605888318108905625287238494534734754350362424334118916360740432487136090955549480046846142245051071918063770341762970378072577649977596629208405461619695625472458915851141379434263894607311980609605039319305956572379847653368047274943028346622616796338243797312901642891901605969875763819589011395182187106012969187471452966494308393793233180128411758266772886959602320608022233540504179038850897386784399868145547847921455070768763226669173924104073349918007212704444174368900764251089735975218936013072275524213464299584671541015602372058460749072989057247049720392127378160243084370990608422095985629170023395659730075063557772358950144116247995298364384807840548775034843293266210785678948024411263061269524518318448037998308678350027319511076811284840211147173057394113733099382515294764250730890729663560464848632242438826414305312646128165554257634450931619659551637904944923287046170134529882517238462869336346593340867750516745918191813539038189708801148100291050768493594846449850712315241742167656802548586060907246000763012097774226500228263660752462697461045608088421359639387094073318572032472870083905249220322307539846491767221986171205480424255800393660669696121494013108024904570092915992595586632698912402329235685080936885329912685926968577982460928492514231614366711769043134764974145424683392021421603439386969707333811662133777966668151121581841591794818789709376303280178496008279894835290084327608123103480747594821344017013018853788720434187980851333860619055960742281793098324892141600941626874289952195476138536555743726945599371431513820523027211335152762491778462509146296280615311817177993325141903303737433896048070388285587730889089188863074453297873970282117237714779031710105724813027800656912596001141175592216761942813142618131061878058577443301004749920604044340513467515501883705992999425117531070434886119822733402760170766415737281625455728322219680828325646160700289616178641037093704096880099526306422128741727542599875182152184915958426379201504880135463851271810334161828071323963047692993279602864680147344350692512990252597485806034876059682936579718234385060682258686286312143798176313316876086771016131343799800452990139971535459833392446233278393178256559840617336495609688820355684512692133083891747725628032256696686122512084313185719339606759812778661035036998163376322727597421282512238475717892352664735176762963554795225507531235673901843568074216840525375517305526491138422010708996349044959088139738249519130844337026293165313823295095924550695933978911353208146101706784163903590991113246915072697863745007713158416947163481557124633675457016647040747399265103661870763292619175537752610530315558579028391287511485994723945377897648939566565035018106326290274891445092402831448493688553976996573678866961906079423200743504277618123016330997763602388695365342061447838055029658282619219948772753085706155298787868259414790045889883650270431417544416339087855833227051190170962906313706972726955677016966965672100907531095272500902835689390717807444087592325930817275072142759687823988205609735511769431769883088299719129098349814235309209344530997884839736509015221309890651554931554527275975874740468822990413873943969181901148646681549058941182976321193966340753628224642334930587025022783489373915894307119973111092218964789965291895993617121626040736624609594697041127620258681410799555705751491110635717135046577399950057740333712663644815083698704602108562838636252360478235109770985078150637158936916665526462945678199300967621766453855004564448503450395320273050144808457472243489083838874794064106788427712446993515082570564244598092407029967636659277447910213567739310770348259459106398243302725633813845540412406588523020293824042465283030791177718778428399337503239804801673480148352166579587591333198615649791325290950888168427052078449654730488050454108589975797003266247546297879796644375620511250080058787346873061657590227165709119089444656449599594106167099263740976379107894286954246097168688037421574969487434297213134403226114134814102770370074555758574314377391660943914179210158984110694810227027291159875712008501022223829349812083119751951787950892045511805286832437054885887925079336306732389908741645484588794468604948997087791105799072536341059082099813332732381319502183444670222650816337875644320525964449971737891905723394193735707453301966701200047227164581522375164487048132591417087837354811099540682295191851983397228900910251732415776718328804756042177287686815871521127709615279668474263627821291934109480018159053281704918457674813362474949741015861879813011185541002817683413407742055999832180857843773912505299446915660313318007052127920524704975043190297582537525995866604201291173007700365535095851742417634946621870985504381278335022748305755628610956453091053280622803927230439765769963207652545223713792999098909131800885554531025254472196530886752002764924234010146725001463403754046865717567640136507557646297079339509003847054580556658718034754669771862646316519104454623831922607525947578520153457783650567874135334393879059341583882082842873623183541350100924276768692680770429135330614379651193528097881261606264860613115606054790474673362348684639019328951486997862262475484328783978319843108413608813935842898924873221996298662798433890293103580057771828847485255361299663520666655804636457263553113536298081828915288601537663974148645251022578083954579479299348667473401556468853645533377144831381180696289389652462957429234294599784467995597300695727671327360009146394039585583102926573503823431086703621946666408945648605388981557171259900876967155514173178703815709627106998580385329026009590963928104060288810204014233017669705871843202834539612046388945471335436417530097511520112931787034726265993087623775315117361860426291146066238438473783125487032962130332467672112304126835904040084700449688537038121932341092473268227400430891369518170257012229786608192067618338161755263698458216620967205451706042247562370678184180125132972870000851509203455822503026449171053917414191072049698003720311146417733339034813176693847483193383744139478475686733382753174130122929872747626987976428081545598020656041258487584391305887636385993845484357789385695379263130544883629030122065847810509446625138755977490588696371152258864522401614295552200636880654651953344590608364233900007737900554874233928632334926397985831409074859556319006051042785194842943874505997749136216805297721182039712907783453348031632985464648730727854690634694252626798328638050239722762805318297826318525605533218793169188095835082313742997243622764848158186510645561282146633923847285700887764895325500382015397498247784561277096048765974581670725355531762684586983278793699671722358852069881560408330665616477813623259188025125065714033234082690962412655636531428609369478241160542545597164911626909910947208604606961690022009626066117616374053308457337529334451708046076960938560182600936490537939531331146726038917960872271277766183389950754780882464411377168574950360634483487110143349670576925367942010044315053601184489781266942198201223580368075646249077740063437371082750787779628736273326954774075317083391426692450105986075876828548764885703305111499743424769841161605386110285835866003517427847438173380959072485871158311741008597247409829028643658991481152136724471431729371656792398995149975882063612855900749127118560703152557008575463748763524005798351733900835001905477817885294374006132728061939463712894452296890098417277136921388893136802062596353545489842356489367116897157065777818687776413455056082847471650017700475076704521702126969801504443457816059876553076402129103258103396846103753583842157131076916054458488144600703823821129410948470872880651828066144645597069899091864893735251570356600878422748828360113465596889959969881909505668669792547758488358630966205339349273819657850504030825409679386850206148405614182138485345686489780101304102852266437457931047453852157618854771423247641215377861156087721822823530588487794691276086264017582658783382560712139792415262766919178559965580857479483453197973600483693803426724430597577386356021163729720397888724753677853556610972827617016564217494341819759843345843184182108345143901393600297317371154481355234212737316431782413091279083738535168084537332071113316513249852143444501361324214082375648005349323711122886498476379690443972364507962809271746769547980190346039654244394910428612937353340550601165472291282227817100016127957804349437832408225989571092291065066883196149262244625086826088131698991672526980523004118649444304224493423295725340336238419997294834846417662197810413626775150838182245399618785655292372450265974972595258720295557919156717947603818455061329883694380753691909021648046419107369644360468256344001791024204965649985046087212042362022676679837512266315333636956196223571058358254631358468103604855399210381856745592642662838060612270680380507343060224157999539246475460263353925738635368638983766778142932294132833269471712804482650479763573745191742432641192514815435340655826431956953471720005736700271612201983862623894410428896870069382750670459644881360416986175665202854073428867439493793408752004523497293974906750169711551451734181501133383070457643029498423030340434606417373460507218308757943819328874193240128029157526510607756646045422366729193800085181179931931983938320701381873448231333106353878832017388172522765265414884585819504548893815077103386085637199660715790453507046702139766488266119788944746698243706539090576366861733015084842055189251306444177739774218981573097443820875204101755562068643844837199945036924329543725834391096738309464175429805983599579346472987062925342871715770171420438568892682845530847524520113786864452468191791732514719813168353977228792580687173108904758232056863518763335531118077202397914996837633424049748526235061904438783098903434113016981714890679732551656415556570903751743160383190438015791086153762825144398643462532050791753177502941776955089805655799805920864802584281747690025723349456630742349902674109731502330178083799776475863940926217499397192063121063474213425471182416842742862939112318217439321696861710211307571032025189443271016238394933920588498208171899603260424890787337719510525298236886126728928964094059870030936546662924014257306808279903518437203515816698679217723009977861826243540103962898188216338740335101388869455518577120856134917688060579463913389853664493179513255571470219192114894007800607542499936627059798277034635068970110696555931380832898525704398336661198314915372615644167977217378302470919024334867852154826653553337945242480054559894372619290391008214818504123798718120584811738292534196663196934279652627466378387953643721362857677734938491582726080194478688199160168001860830669496584683615215380227660258242837534491367208893263823004264417096128165084482387603792572471346335017103755333966547459846373584398209457724551552504846671985260715397635920586298513431489554859775900983909327331620807831067497228539218015414044322406407653272083267782196442847655901935583476435753361498918777822787159759870629800822130159472281305339415135747655948049457727109468219138262922499924170294639439982146719681408198761587766777840919955707926881805451504850412097898126839384303541112252032742114903839228716489578885237594740874832478599923938962622386148576944360085314423725428132845010870294011232103486925803220594948459839013342741790789649519109675254920063373933855072992613337181347335870281139607094905369970911460714855603983358660685593096558855353459966557058850434197351382211976519367198961009639910519581726596790896848227222632118756815708140636372114584054067338421885459544362646431071883987691928962738758599207539086207630851618482878305579667317421022274199555184051190796985639245985019639062691050708790315546321465295266645459152486318900842113564609375513337728610317213855724670418427045041833273183733437479893012939311314547054343744866452918288550131447579009917847084035659015040801901645270274112753130589895551448919952318369921268305899159923197035404397413081143084241704446578024141997068968857806506378354393566380698737558772512761552235779671545148341927563328742599175853627420446475861932253422643705100830363987493355435010173122833898138134456721491162551618603341806584789259480314913958513931431813827888812115217533844353224114188699742082896388811624998047507544993825401373578358146154095332883455693842902619994834661293154177654351851923554594472574211963911752613842931261567059251992628936178437393376858114271549490181880466349719954181519564412310897094977074828523434171679860694277354851561965039875246043634421197078899099424022345682750224813540352205304018630733013878053971055087429090201596729946853051840830178287713858533224242650836868156628957902539757525841434797097857500724650666392690663367116668590788963133080859224984374433860268007637606836470760309016410367845604016773674936428506743359287570147558830918708330797706450558214735572745264350500621954420623489061446034753308221164764074028379776035179904092906383892879912795847886932951660697708584375876748028537263849915367153834220481299563496320016150942975832899143464131300268285371763469674480529354047930897263051642643730076470791576132492553990186475606946643369460094778302913356622359777927262793250651495362939886960993696135291499744304274886671275095793586903202115386013312583430457760395612279538921289869586839464957717996863267136692436543566534174735042780024022636311466629631565809638498032151132468436100729021550405587960059879261703704451661524050545207930680670279401422646858271572760111363998617691068276223554237377723696914087899556530504309273318909040562941555411509986590913178626676929290131731654943899275474420606486381811425265219247160875324721545510528776206821661162477410197348260260906046681792935149555091772283596745190510473555684305178794264031263747752532022996379024039320366049639038810980341746740633434083585950484520116691031353114208709577888609602820468413761678059832493365876092722775105237878927842781293648583158198963468158548241258459666127525756609046473608602352780511611054803082270176460778268678296898808293111898985500191209921780369215072866027433894199092568100382577537572951938068113520461318141876648425559284957526619694556080413448431270168872329614644582526267400888956998458962607409094897463151398668389987550277458927083423773940073667263448787794760482845162355144141917047866397296720458333422647702208615220203496270372825548427787338907615710040714286329290361945275204578023015424620616510448290823274912290701629102150690901571648946003020080839646164617672337027233495392979835278224749106967645286498115270721549668101298079203924135448308928596327388725493644452222201947511173817483580464729092508577293815052514152264003680265143174730061878113267764220648537718630034860884208069819667517544691156354791639474128727368404768935125936107995219098332407263200110171119010769485535422882352141418288284885279709984369045682800392167556877775538869104029348651063519351113359564251339348587247961022378903229233428935378637411696712310947513016298810885630911013713257077703725216275439299412722434846044168842544806908975966608545160020108978494086170730559877175855593116996256654152596137892857089067168441739485656393567022871737751791927818007667493792293575852403514751370888640645302940153911038126258783179822337487846027070790648244017878168126618358935147771879941615217848609569683179867669751709015559634588408442097964935289785837908103055158399712273308986775050531509391017338415951362971049442850415998685841627769701802606370460453685712162349681660883683369510056698174543963873101706917913369676655755044701367357848863456082223432708414747882235943982432513797978483946759460773934937993501642861932685502247300849009907282277796122455907492589941233905422052139843397098226238214791811667704526081427721878112057513210250567399313529336811179222758365342124065524858897497335400809234631375814100524502232525764343985484346157437441666039674929220790418328048428689359111177534984658983442593819636015225094711970227376562939118965267451518003079663786116308667333530336450103379195415471965819826772354521148332651235220267009925836681237315053683345618778290690473378854565396820568798962640737908044310044558032833409143817585450526370417280665188877623168504498240549129655124917884859088070551363626161408325655449703459551610838326554140949635072536709884705262958220317172106699907294259960766942850391510637492597339463574637151564707614223852461215242019477380292307444097572230985615498734866122458081475706788155097253730184638280748150181878104754485379587273878862455839384263246827394649847114079591012695919023137917179233348150984842457014220809436562588742760761187398692283270751281030594937775260044289874289079489618325933496971497506082599673446079639693669481509423337626298583768781529347848496267429229737794938717164129985656861547885395962027834447897437506929979401472676524914742448224625291701834569129720771195915668150525565313793591027519644208712836578594642107046163933815135263075283298516136376810166044529338070302721108075689947577706192086599405106002616626939052085034071146065457240012625426927056914415597333805743990604092336822853604464979106270540630463209365604993768956798265225504637946261401061227554985115163270008760402759759129733139615403267314221941863041727235279197428404364307887629349337151720360169173254999420961292498557142430205031974636578133187514228259805814719925795862449551061101330369110849080636713580548311528744835691460632988363631069770555712455783286725670346110036734681516558614465197651005096998745963136566838054075987169287938719293419811881994923884001241832220278973194101680271019657608549455456105194157761076074727789825789326735983587503141005465617533702291586456745475352164550718621568557108499402590246186605007784456161836426762536413819327416744932562436366551285303294104574373053065752914506964287046862995807851180058096324344618953461970000918944884778275959717565237412480462660396483393813088780198604528821704624285430116327542676766203414925041987570521442985611390809692225758377054597365924848544111283313425174663395353752381646581539294840961102832776702168132996656028899184934456711262892363891931749053033573754340415881556201827073066992104242104470729734684767867159995017074842760663560616909947830179380823717672747795948628593617867182847718741710442592781468088152429787700884051763182140000199873460904992027655651258406760166723549086619795620104371790054034027614366485292107526861459455951200302580390147019942767937691962451477572336819642802328204579180504039195554193591937274015927665249326901199342083577612477076777288750040320493402367869698049570466248244364200774904136177202724546247278488311112283017059774866602901923010249303473705740553335373957453352062401323842902464287281226865722124608662090436438769292746604973417100169164786358998568757017838642323465903834633840394867727793496340644915673625786631243729689363136639531802721142694776355339219832112947043482549086242122208548827068805806503918756533521335302245215127451452511398644042176501156935824956809386722677038625709941059373602993369020092302538523314231884641735129543802039049416162230737087330294691898103028942489906178556094633256013595564496507257288491123002389551815016237061408804023276542187992384604873755955176143311680675239057250084032349626799677192079809185090448907686327089055775606320670722387100713197581094164476848047532816590982370111722986236359318067067839155548956487183669269068968046054035185952570905190345288031273387208103771641804651682271685368920273646190369892910080818537314519655088283068176809069540244885401267645179039677483608646523455687131673308911595592206089943236861033791280195428783935174202555311090637602894676242934694168960139420804533454988895049882505454464372039966453991037520352336103080394160943039203740585638959110045474131746905986941277306307583139384708638374688486786386267551093026582921700830545052442330353370687853635110469062290622139327536895045505900433068231253450732547017186403007474598336117690501574791072170613616289366047621050190569349276747958423464494155764556314000124537021057039458138346598148813914625380351374765286723254345380743143373210611464589754841307731396657547309288375476400216965309582549322819843106933649502315957291721402569597923944948661207132560707385175194901255263402910729964157006063491313189811768472907929326247026831356515235584881377385769778003995747062193488475226040403147068596487915529961489724722908005125376638687654426408839263128232393933942827763149489226741141568643817458926439731614646502781892150261364763426197874106354066702082328655608047758000640984022290868383286462071935728717077159104443095355557505587178251068887567452773734325901088211966401922508057181078228175826438372022449730005024651173501988287015110250244885586476996112983714797527825580143373375898981034753804439382999288406200676769522767132616261019517097565734260710186430445206244793120950299265160128319053292332334896120089728224349096876566589350215059213162512072029966263127826037333279586209408422892651725100445233547926650527618704622495145858876059657038838617294186199266188928564744629329140984032913602641707811705245364355320765532282990604067981528977899715234765367376001138583237584751839112806576823335434365252618608266791569404788995181560834619635073908009709612210660878164069455393598089201168598103429786502609876771305764064388229247004678433135142039812365491630708679943137694870171163185204677004604636985749810682695351797290858523534449050774049038126708970229624809268500864157239126288494444752133731770781008950153913481670463034748786171086138412754178730221226487007101249268511389953508678243148600098306159783382025338444793904034503350852705292981070924127994762614541748110568141340483876950077724096833276672161156719955126963997768461303147019375061873290522735769075039869471985770965004487571334007081215020631567946309590832148957237416215525919467870041322633036648070550318900938881733529207660588748435496447522220102843357860359551697522415449546153044226438003984547968863929066964910216743384917880609451161736181193713488168809568535401278582780941907401578439088376468688970903042347978952698838737402375893865082873053895582586069341443601456104317852449701360159641237304206922632623186915028362343982257199294592807997960952619373361879425060820933483207346922391402875720476107458742148007138482572156057988381865925460011376412828448206336706745350644595640045377920029982105309483773178732578577690292800436162344866432894187697019213391304570974520334083134719852226786417337072417374745289458308203973974490205772595915978224440920228699239945627662988047920109121484546728584419791579363993259553149275249661537034331686151788497781187821513389679318296854637416646105352879208780835027861787519702009125957895408791012076618731963206633827702919587683508724991410568225008882067249626420579123779292487880120183868671112841012854371450058077883605872499279197420303666190596531264730206057039300129457503294451975755582786267393180421038452176041635313238599913986490698310145299721470442657328795151974225581009376039073821402697872514324466632967387162401624614243512776734659360689363196452029776218887182274896477663950461682406940665417635880170522019337859972825781823061071010298403321950207835266479167295885842448338181120058119245442846571331637977035949184457690643360106917463351978110304754632295591657163027583241782095099585847834580401265207824465958055327101966115587711564102211340701910593549997294802695919430287626762697215959621734798447183871245712423284981623707165051418767424792817214213862719558354128866233800475339462374653686816909005029204278487203471928927374633248698805103817203157628612966212162815025549889054179510283730328395414266096766349066669985968184102696184898800113705108898936408494840167775337793206126103864879105529807808118296500747146653435737361646495326004009989225515096859831783959910270235816152984354502529322671663303959863221704035356550208405686066714997699293505779778133671521907777374284867074389785538619729806226814185481638633941577533167722007441592426247334430945209102487325849290049084426579112305867261575507892747574329076857415350611277631694674679356490778950190956050123305152510486148767040649261430903036998543632951331805328504582690898652115698981605241223914140752329408399964286307028356676649873031968415123656677434579005611008031075955819961372975508188846122360517838753019637854226623327875961046284030326301835145330209873649539866890203452204199414821947027096413728972025897407660433513364643572687041615682825656863925064779113773658378530194304007696056684434315004669030980030703314917334199269449245245124652918062230259954089525433458851864157431903402562635466572718759964522419407710061086530294255977107647107373833778348269943345554390321422313575998484191833424736473622364447010076580752885168147997112716487650315227268950590886193551913013818608852315149045203953026903886525904670843407373027292268397078422347613316386446602421769112116923301408610131765721077094863834972385110463185810672080120921047280308349063084271113593375839862378958724418457663303715082032822336604284526054830608420461421350104052589924933085004938466469082862713049113240662830694903946690144199976969517557225875360166474312426972796645443078690351503129083070082343365844479529514187882747687061784927511438576770210897677428301745261067909961699646058008260133204857094964281928471006894736378779648934163920690452331872828651821494871310424056295095696009466570314782148044018771524204558323174648063814590172052371110141704995358873528232835439662845713039138939744944904746840056349144695265904445163251535064971200814116275120022203146201025799879811957004428178020480811395106597113378443780304507122161055019975425010774323131987883614961775149081515267843500142784316628070351296863950751904420650194260130752671559260797146786344274107979469747110770994045697196204076545991995666479975293750996882021458009766609354004325696566133135372268576708109362682985286232533352903440629678378327304888800254510632660414216950986584854481756509304721160887333621849850994623765891643363129055836441419901528477435417271666852712654207779959840578916780781453585983866485994371969265662114625914571809543783255738775093277518173267998466696975598197514551070371443053056972228809813415712825354399614838212390346015261358481245668791843435281191802714670017922987836960842395975142502481160339856175064596212737165868065204440225438914170267595859410719537595016969175452550766031289437999965808459263062382225377410029828265255100760952335108246486606026353588995665505025846262399767040995035390038458130743284459512379684795926156450940530729410107321949749372929551396371211145230558334952909618953416040554271726230821926231358360068052030020653126648804538341167914882947009718828130226583136240170175291364648603857283555117940763470660668763727927598338221309044186652255296107858539316235596913215838760783188817051842517398834628293154839860625310902459577655993604866378086682098968521144393007218360807606305029212447485449322915566253873036143788161282493060411792596157734887667024428103931500005947885151279900639368048044092040583312637738577366233773503283268558651453222855640382144956169064589343511633106870764295973135705762849209660850803242846673138584792590517223839577804765967956217884264938086802769288147353717596721701454074397707299431072441516291753407908791409682251953172748542318622327861687842466770670181927362487450062744519841372109088322562778762002526258100635072595538433192015687672317781113046846321989909564798954709077201728083161557452747404677406433564109165290133709927470999009209985982291904834411014672441334000334730814154243680940889499596766948084143266534028885401124510582932804032539467304756188113409209880509419709847045988372038743833484633414777722415022712766035074211573111484727208525872168026909647751083181280032295898252227350549563614914159346840446369316991626266174682731891506480058539038834175967573815837306989159036836210673889569375719193132268187833676532479048475731075615822988058013850083467539185014760491885431364281895418144823220157180915351795472886660499632877258319248093769796715285646627243525468723142183132238510102959939848411826142990832189772237811271780462663264685349294697244358581869587456704936460199084849713456086250624544772488402427331137414154025987547550440155923642001398215073651748787877111727505697177540472843745376004502074113777474199674878502088528349124515570892923855367288369649016520018853710195882463764025761373693896676162962168898204587723617209087907232595195256970971472275977540304869969263982752859628664821424093621027479674579569228374355300121298921311293091973909381859418065189021200386764823319976789625971147583006147345798724536259047657968811778154166968390087895663392773174958844593798653379840169517785163956179478045364755218843788934853496056715730353210976323613139612396278869149600907738706333709834500920492688808953720772505963177666249737037121787976450244361435817552367243162497055823360623202610174365048415726916293227070320981132812464224431451961353674746883152438238518398402894566103440152564374301693865869924475836788917648852007814778694282653763226073223809021465411628579723981380182254951519772596927750638686758230117282141990473022992554412162670840475349086382566269616152551001615946118482493826884057258120353553469968032810368392906155680253171282149063257980659047682438704291935141639996560289758834901859700594693218430864832672511560186569250647682787575762340451929956909325338522156199358518425181248630411787709375484457267276427068929067660690801733826414491580053726969990933254766954585357165245836031134734330837596907717071965999922578994484157906133174285424788816426959384872282218755758053063863047543170045712512511290865559559467717706168844557116713888340455067138128366075791215016795083960428853088036243093323746189908875203028432826452608784150770447578690917595334545867535250280011731985725102600759816009534661078837673697086046649748387395451761291900108568101120302271560398320575944561542554134498224095355851941594393082968945222180045732372464658101383545231101743301250491465367024168673431728010713072644315527366486652864702267174877707645568428350105986500317240016805005310443566687072185342697052684699072850821555154229378756063433330956029516444272471967933137364144326660914922580772114839529163019895506231830877521459084411802331066543928605922553859301370931488742133218728357371293915850135014431091143726255791237390679326757443404901884916444759823461652109360801463676238240644403288202940458058247754846115443380459958683889621166058448134424972718376429279863531416966927049838746893963154032630961907657429720257078485595896342747912366472866578693231721167298921511023586862871001045139654767303611056658391012043234960566164807409789862261803495547700336153298158079401107806221996394472119817056816229875879403895145225054010649860699636801419121633239509561084929158550865736244412106363242663900108265521126923624648558238951035109936032190016796298416943931059381904683994555488305311684893449468695652230830254266180988997230591708670546957955586055298048645346718935936588213788645848409022182787328405627960350783763543227003725574957678152790079395615174937446459583160870879874644854364828137471705251525653866863965855534774896358061116081342010045159728719644439356071521928234764471303049360136128256945740271795246742324960109238024637314969306099565359697995696933569600717606521138387044981836876899648466603576387733756340775548618995710668405974760537720789536858077880717689820332435522917323851091401168781184806309625034970898930633655719219238893971199005127089448331034432638709217141578115995785447775259298668544236785642437863938321339496730383357452009963823077832178276376441660556993360746968999585017133312547232651043073629724856457776519114777686492543001196059667957578629379122401095141802462763945159956503223917620079143265696193916370389178906668899208770125594138754888868891864816417596512087993794001202082127243592606623698461244510591518471702483849242967216025520142729221868827350509331043696861480527847573081221740510561335128544491986214523112022655105456247684950940925162524952328452058481606912110092983500552608735575245669261375160703211491934276880781959736856490953698856691430956808013672521082495551350675834337770610955755098749990273378031832634328285786079998145259925586059404469017182302510205247720762370629646626191217337262959290679859835020169074518427472292775844625786200114331144860392722748604703118735218182002010887067180002131324264150408484987369208899369919636724882954100151615110912347220086392348880729602593607076851832733497928872698468821891832905141889302255202256913149268822716120970220124627236373762420211987373393102364863911625333471898398974065965250012478156210036269597286773602104788121689785779893838925929864265228894607950618678176337061371460885019357567052760162377804163329288040815166401286277824223168520199067727383079578817578362059772571085570955975093971171119351396976592560028198113826093510934980018450723861415101228207601458948076486255880436804224839477105136534748550200670441736071637277262297559592662668376318527597890610784287158321887227993454994003291812311208365690917193955616657608006491113087371198185986889825609092392652559152780314091840380143716551277673456359216780027644308612846397177008478503658467387037544658801263044011226601482834996867657210161620365384221339420387465500318086737210685848544266803186762383833938274134644848419940232683949748434825804351335316042337287416988245187009571112261514825524842295443537955234724087360209753092105313231317603397713961495097329152123888199007987546446044555857680216414778846406421223139400411711016395798358687899225279166197553220687111129788876499066308560544678730152904180474080605237110519081910610063554805242663854926954115408383022305901598246762787071267811007058005929891798185380997605766850029378155850560551649579132630810383439212244454321852750671966286486809882936492884244346974127382127884388333272464096620213943156803028703358483376302241147892407089685630935024596037390540191330454723620962552068942038517353353176361170870465190418590010141970236539112057084833964367245546912504986772826728585058724086185982889915867236207751744278326284214532446615439420186871722250778549981884290361527509861025464143316544836117470815206144324949835907007183856355775401518925336068209623749161827289598802725959573373225226008752671257321902452075616111557351109835943761352739265394226217642947488260896015016995197263753540844001913525158530363763518082157727982719949374488831671402446605880044017275302420691389722501609219416063276571972968704648028001075359657224267566393314136774796634490297633238573971423764328549605472188655999902385890380936646627094017855619990751785160893602701236570280975268987821421993493744703607469895375279063776425262174320238117208189572168991879207806817982995794755052881941883152446535434223156247188026930947698680911392664109580090314547069407714167104415371934678766058603807629533046612144229112102407293244499384869143451815017947532387738670258095861529585982435261664312683001648001693564369307783009192063753355402816366299096534852295922210140001041040923180689618395135157053961631353072575451453018321623941053596784403791083915044582542883189346739866753502773115529585722531600229763740586797093819913174675131044654014983686872037345398874069110908869261566813739847345513742973551938843331308610737286752926315774097959678588053594120813913243015778815047250569709150186799929863578489950301625978876499485175035633918514154147815793638230758796926973848507977920981692157827699843835237116602092741440420518693435529368323808383175379284976585083431725189308929379361114538394561514929531127236678068218718172712575863274141686029950712296007580139141566113583846995024431620547252944398610052289865917023770074611598414360727719409881031879741531514568861417099985916563100198663195462493382146037677760229316485812156983020596192274198528269405927007195344451787160496654262654836576519380148124344785414926873283441614463561282123827267986557343744444658425764293039498002654848731117287720858566668837354777268039377306735616859568851666277043102567770115504413937595701883682480133776704779026972745886959457688185950836870324359370702324031793622825853923337082562019788100348120436833915826838722640352916139787354902592073875701181697061780909914045834195287909598790874172902119234694982348134351368337386286034602464625550872963336908043361634492230518846649489813923113304473353062034895431307941731618567104224791364754433529708620782286695629629900357466843726262139880939749786288282715300185292441731914568234229674325666098307765346996620170330497913179218582404006816041638283293959229117198624946143291784162846393969712150470393599820730205141454765251703527314987798030201318575372249643126860708945796682259326312630330923339600793369409755347333925081207935116371231825873648862716373940534110765601281391734024207963501943013256011137131689406104452487773593022144872801129653988500219492436435369278912199473834886103805555795836990257817177900065444147856598383951962409338468658992684072698148300685906214557555427429426001328744474857505385836269299793498367426465848293506080471112414685314604656788934955559974908715886745862079817081057541210521387291252607936182565155994658443288335183403386243241286350702274680737121085979683752392546812451501011906768720233314900581195482166042027396743136875131011636428536116138345016649082271563032704834971155004151576405750231653106942785491677543044509185778690671622124905292440944343035319579021361493125894729246656277259315426627052238453105280350934819960223279345533389142996159688618829935931680717697135103577930824542706986268401274518824789413606850875727552151539356878775171039956998230378904224303290167528315681266158381171501813714400044310939458764963966335655101567078350237348611881227215976179642303078426453033953014305985315992423390384501463273748893588805254160001475202787416770050402976142614759854935401586776834171067317098419656957706978400395532049401821835316720345643093967439535082737606933307969888692405897557974845210236856233352871723016402684882188214920897443537501925664890256498122642908872557123217147490446597942071143044948856252391551932417949709329790709838185799594371324035683228773319027909094127363200929226604221276387663374948917302514681352188024569511148253032563735728937816860537847163064142664843812318603653161893320398779605159609259569084033890832659022219654226427018864685739543123833955350570590454084074790472254467068407333872997173995110723650994573602118904550900916255721581755715248864795690079872830669660275705581634245636876707711509462655296894361740692984326831919047487072467782031640817492693769590870499364624360951935793883950407056681744178075259095632422757219333412678502819452500939172188492375810604762368316475950208404269617421187289757016393991965609027477364468353996785212206352571402024650599615352570859313327526730034579323687497346877342885590574624261400759953420637072199244289747851913503142751445959475114403342516985232012114493598097234264199411450485640210470716359126025515399639648211201003189520019716507125466036688190472496375162961350863226127995740379142310126297521480127940691314343302991369863441028629959189451129624397606011585174186903091702613763032886490181951809305052421867268141763140338340824137574975616151478938289402741619395318024117537408589034374541730565756213881866539948863059460264359448735499682910148202737203758737603948904043742488661318587519914985339910026354162564468107475616176880591553651343798883806206731311023463696119963546531262218601727392366142083393541898618266794514433196387098889074882836045059178239138757458613145498540415825250194566141634660064397275121349990039446101514879352504995801397844598965284007785809117382027860831933334580041447932438540814668925163073396790287961561482082778307072582472490500680211973178211800642782757673359802243214891854301101538289882438670044928532505370584653835735236668268478863728091149770062287444499350525063976480021121920865226092619369229113965164744564866333652922747998072041335232887237442228583518268455600340265790356278906814036660738489377409819662610589760345029586310253599994498994117653851408960334155908662592166467384460366061359425139980756279266111359414875352955021409590904466279678048207616770861033611122258291972866163585645558409209262631222581137778194336176646668999649627552314510148054388574450945527623089519066776217837868588611064841063861728727488971885791491152665768715335989470516558214408214143455874586090956835122018791661413269602276797385052739544721834833082181022740067343861479540539837857705400608699960463934049409682905537086097524354781277418927304729581533408549789314179361958423149479156640139056085916129948788632024807538824359440841517015237557510990470370560515593268061805985725757788914765299672320475869337418095482664875377564747443644079838387403155631523025045831351630122648488114510860396769651081204705919349597703357884434763811349575031011637174430652019678324992331830616104740363716134486931983277742546023470684947975652261960995683455248203034969970542717881905533422776159314897380675006193922280368778662033939950141579075970770385148408743361341109321430519074611177143777948991354058849145312620954683297583222380801093973745471456736375170112044684226703160517635282181183300721601915995621175461206676497972503128901045769257814164854080424359974756418259489328325486821669854368736611685344481348671862015490153860095155640926633304029960667515617281798324368137998678110299837792550545452044383195780368812954972168052981882408916737733607352641059712852175980599918406571659065047140656621213219291862363337576678629703118479152992287295003982026299696904249938680442701050605729633052494290381274228889473390768086431399410872590285238260371760813904735643004681423137890658830831981795816092475457751182528428582770019479049546987140916868661302942600735139196209012580114684256307233723420661331267732325350669748366760025984442599362289625817202688356528704828001997356672730571723695436808345529331958149229198368248742737169425027735358729849077610259946060448566937845624382731184920503786894942275479785954373017963109702735842485367333816639370781947507328242967307335302659867463054479499251534333277412339439734972356307204676097968897447813162012766892199664617511738057894190685263218731189778628487588057689286376428511189869642413679720454298836971012539817463257752665047156239977860350149305216597513290272190978690895888726021390613374636873455987338314859909387721272743511946451528214661012283943031613240505344469659461828108165233432603069740107274841128275375204222195131472267715505346110580452225153988830743914422974317188034720312979583050623449282550936024922870493058984312624146283996316385746006045676092827629369115331809341430672945742441431373645298415336912287376602758834027847008162152546592004224981204781214518745021776645442663391654126596707374760752342045391556780061634089062592130649647684981687043717393220925441527640001242450010028303498807579883759230445941623705245690807083892710206513406203672003276587847536302868887088679391909766069950427125595531938975621226870140390711876462470371507631613574277822802650693125389541706432729990272367675994102733908863339993515974479320093014549130987169751761949335149449644993522793618321197430494798069228356183353814203057450220582657262529379503766323351853919493794038825753556587752714536579351862814321522506297780380874362479926895576909699211934950899254208161390093679173833708784501661083722416239474328194626508530976524122635866602642127204024772932467280809262999457976261680550320395454771137977513663922361258116572444224999186294579504444250461323278049744864002426954603147473724091458369723458474771987695495280038272064880628473557061205907896653764337682335768271071483821432903652449276989214569301785911715842090196056994026102831081009763599459061733239855886532920427684036625412685307856602240334575491624390753383738964522582889686046849476328596550030191653308686792565978611176442938464220725117419467029816570971479144432117886381940143293939645903943595664684618201601895751427772642124950756829253674246607034234618805776658359204412173963707477776804372133115860926419546462321562980734406203043330964025525231724041136174962220410419539208198257357933172289743967305479704059125134223430499797947319336673170569717014131885449394266604714410926162567234238635635537671813805670490076033875236740183139338315502986696482374119440851402455310227503274798729364711094885312486323126301938606753403802870942080455562522826223842901301528345665675404375096724965552409350973249034200452643939900980696996921807309429188282618199683610641130269731724866920387093025069031060067982481721058334068821077625863691896563408310203217684724713823865289780293536496483535781648835030356312005559812230590645594282792007418880999310652464578202273429224252742217888293788386024576965633900772369120568151303692489314609943606338526395243567847315240537232764382048947421346161222538115763072849033568828191618468386849937560646660614042448595356415922486448913921207250079925927564778257115238808642325463691884030128288069367759510663824055051408734267693395881313664580842346603120514999482710533351278544930575594458373505897743337273107660097915881882472770651207307641040762885436058511900114584871755558128805920818663989864148013797654487994203273532616690193657232623872628247946853416251906596082439497725866557745882050180353145825142235511724169837626932570339278540701722622306439847044434726883732881322577248549369482543661305719423971477837005062204473973501854977592485889935308552209407173738651994140609418166087412794526317547814346108202054726257943871230084316639895207938233598516597170772925074483157456666143985682901780474136472774070756081539909561722779376881286569111455356505698420850958652294629105347529811258834091161461108214791850591788798251066668013741177558786420096643625437406491602783698087530872664248829881603712193727520745153866206543490356140618745448538526044539892836131371859764146746261386283048961168676757403113055982752234390603901351167876114412121956153141980705009899848961924702607648836908663376773656100704332729115712645575446055600729834594281580801664289189416580222629760822566780450471401124334325424240934717955824890355522999214683791731303270798219761449319821507995418402978984887043315312516370263623678237871977017916706626675132335653265167380510787593654385517920729448914105497559060591265360787944251217917455909408869518042755713032680931618562226931009767606225115268947033867817984081095254935509794602954260186856455005431301469010206124179438114367329097781569995041105146484772428463873239395282953669931975535904129988724794302301009371191034434850772609107220483994553324922645556710567718130481718014837029022786145567507176517500797465235615030687455376037000156401064794253922503193622253416049117163450935624447000240801184827286942580932122009690049474573382754404008192804940149516889396485089536041752014853410708424339168242135909944214546719171126986224312461951553154797628583056944384692173512389299019411494805395385185073212489728313399226434983686331178498520291141239093763694699981118215870250689315288342386088642550099708528298769055025542624297323056888549042564682196198320203775475521213423328112961148526643115545297968419894520260352122921375738370085459769257525180675025172958861669565824631817036593197855534945343283885677726899469800613957415488594968592370110454617059624279227710681436535715279363674237585873577871403878141471887498985671117311378520486489853047600104876471359507950843424592741874698338785743349167794113872217103289426784101122860229034085736238624958484511685046026803884788913822753096273612052584218943020420776267716815575216830666628862164652689961059174701613498466893115631990228718045153888199583310644992262412157403905387896199051018549336035467998210809949041286057719935796745643772107612347085535317083128308476196183536570757991967753722796795609267553639952301466194672276457515418482055681719438657486204131818501645414116530043829125233123582287326746462252627894490915922032985221074571305720727231737674803542771120823452797325209541745161639446198123490380357045529744034035357581556223026769682100114869864620237929360756934040796361820890876745769794977302359781659859822709482620573251868956914965711057029310468842494730345476258486458780701473795463826072581648036018279673367305139539348066102832924710309176115635532470898022765934990081393972653863995249977953557486961348468113145535003547654401172731783437704775722747350108786965866277599909659900363449183214978585533593623042428448485529632002335829151312806855546745839542963444290827075190142002203733094449575148069935773151394298383357320774244391535953605082700862590520488989089407494785091545391836303293963412920302585400014857467432953076136930000722588723851464892308755137794519602924138426223680197911069683910190826892884107083548340908678479697767677406377658256395079222629970036489654162418777085971284155869600005782405631613598939978997525966420025810433649522427850932147486727786389684357478045123404337960327513365712422391462296334227961027910626650420601796749847682493625719304903937984346649971177878944461022914913962684862533438799228613914742101309709675945110815532959658871764305319317173868406012158980926173282579134475810921634853628905292741837785299486353110236973209645468171264133669773836307034005864643342001086699813728615090754007342248460172054539697486397010476107024179590656429223688625270324178375288040295730661131061444254772638953228656100187524604648410846736439001468366225136462528632085020422595688184028487880650387642511181053926999591520421518333902536097710300982183709344687226816201387325808443037506188119793413195379014319431925169460018448268223691930616196655053327314395974184548293927080891203786273053389282199904941832082395309584657243376815436518511098915985288111633229016970490630014749974658630282964017631855062826961039123248164757113042151550847561721318422058537819252986586440934194695688484542577946786583639451999576617449592464071807544160597391097364802086933547530366073856840046402902425993676880559707937318157507036459955185195764366586570549892892838207795055083395589732994272420100678874985558148665497530400318376879041418991081146008521264861035085268481390054490678254063110101979661445858843137769892940132269961851009624400647874754512354377011282687354215310024497028429452185113017920258233559334133903226943753192516749854654641123975660242261503379790007373267521398745549948162244368959752391366572707573880434877014836188587655666399013354497300420237479365280776568303155455723878548512361388832210724401503247112283311561042188806624306204187623202496711904894783681799835584798583861264881813345991793661535233775165589633986754144543948252366654006878480857683666763946599781360060620692721784609935446939397357620318993639626209773346312938715710132144452457574715247772528941200443689143554235879267576636800833478796156487337737407612965782593651164645884591643310702994734516347238910982863391198959139432487088551845839273261532163597882179124424329877828413987553905191759677788618329848950512305121096967236766634603520974959489257559348448811853909924297223519129414174185659850915550017825628203198831420729675100376024898654091313353472062775677240389224913097134482122589412227343919161649354535206504809073826247014448379233892016104275081657571230645595807921301523564398371540715643059283471005614772811828841849695130477859841925262137328098959349288998132564273155021049021651168685352587800916873772169548468408852151855967834294797487093144100770732781796162605446399766437042581698701087446222460510934009486794412265565262119544226913299563685121835320721696701770995891695481201247210916833855751098376296620886030564342415884954817316281562500018474792371865379430528523639212491328998849772129740655374856252958423047182841276796523651080795768159374136272227918801391864460394674509263503866599142852702893859226874011745641380763946959872316392672592824177759442719856151091598107726054235444683661942421605079009419784415123894341108366309409362276814716478358056678990086970709154139869087436720175617137491282247122191572707830964218049636607057109050705267952123202743100063085247330183669126542157234155713992583405152682846255327731168741645675109758868392494292547505129362069845910630430664569122381188185048425701756261157589708014036786336142289611338320060131613804887313975906582101279470932975977733252138595251656906246901946075974116009668586876613915026874128246893393698657614878227101093161186729553913850929624836979471780902486749192889447714782429215144377427035514338486622343533681756896448671798876634635107064375651861153943004075220903768459595919371038851833751001664636562840735985856361984131154894156539480082447053013110201725397900249328148796195482586028403048072829756028294766058230875821363799322033103477637306234921214654475608150269462836528419071183868344426980514902759524940864000060309682908516903049506675299251336198323247511517555590431334115122512689574954722241396083398996484349015922815943252789650939685446913274338473165824751409145267002959710730963375232438335768455866796650826710920367634543835905605120821061161069692072836269021316598333984538099227021205671138034921726711758988778143095015696430297863409733407047788434116684135652683024834350652280940804668331838430441173457586956837215870473814078957034261254715223979694943197303091516947563931488229775572954173117662986900767228168462531549771320131710161009510406080267202696124427508632643244947629774077751769099773442875973387928084959252417089679013572890218914758276167422732654660085965706710574477370391266884884022378394898578765810770440649563154069702661938124549203696946718300551547127627452177598056328056247383304667726059514947295647188330198438457618658414539123255587920448543243501114264893149190088705984862287378061787510710970440667448831873635366356507593199098672051670056211848885316089744082606956210277808635199316202638164072283275938892691862253140349242737225755999709361658028929997183979453619479019642432356849627226266740210431050277977703951166506016448856998452576123842736601920663139130678924528954081055380088001115711187598805658153908614007263825270728896558789584004051364519022785743197876509709888838825037821892733311673988663619740025267200506712351069007207102070656925946360351763688936710178982388689342043584651176147176217779602693248171452121084073789512844129940849524984326879281441810281114435181614608656960876254923410670345194093485992594142663571871162854732782659974536150915058340452877785899083052171297019487444973180160976000799779130002901258528863086419784594303233314406250131245196408604242105248068082133323561396285080098768383368889793168171521338787553831016561125797081592392133829985738641153281777435442161170632223846176544761112675582899722157457403712625228691313652486846071414598667759479309837695142718057889342379880948291757094248145352642119560604687184445298088716344258092680868709526076638757890364500873237662667508301827977115583557916841330865310719433696698957679342281943241939739029358009043169668157575916018369821955704008643656702757765310929123984287392820820425563573726496292974403350320223363561728678714845519042730771640397948987518126443611910284634442566199894607296438387822312490122829315339912082496679019494642626994345799441152946296612353197883998178705932116158071973466092805427130216206887539072685486373756421934369045406740962604216139145154728114137658787378184723882010584346534707671047038846490078040646030900696457925641785914116655946284606315526190016418282086558092672880025943239285302738035438591130627224294890158589927164550340961688924171297184653756547237759624648208876492770988166188786074413915437712881003555982685312370859115862885049387503365928307785193310245525893444138575991407689108192324817809451567999793664212737955136621150544306877927807125650221874394092727233456128650594767572273964064463417675130691165689534265656189113729337184489178265083787318756293028318397027701906375523197024981169513269379241137670557115440036315713687577652412003766991607089230872255962421367976934224069497141183438396705807547685441331346338569121135334210400518805212782724415855154234210883974263809821601772592968193346021679878254236009903800600749862947486504260971962567610755906002534097862871522880273188073782276826602303713187358007305292810653588899227465106269247273334543428476503713258832129585808619050296810381021413114435617866983797563065155287797416733319819838617311659718323431476036178742206968644031782090231754962286715002238055097684126033603418346969147207611809144674573718517990488738772849904231332504276161575791889294209482056678403312505862463617824428783699777203015580045622231582718613036588675458582465792996506227110083887328571224912532144639936937327006685249533897308406918732242757248716001096594631984931012929825795544634501212391227287977775902716287360754362134390548235164658850694099702774698198102248238191220520705089033784687960194400013267680695814376449839253095799477945248523835646693317632861853904075946716606311478389714845155110236382764172845427719649384943280825810654449864376784070276102102984388796430588642975318274363233792583941608757696894321449702141335626004372855300375010498855510081682019680160460087049689470879142790576994477205442197402047431727878725472533962192353359421705243327521756304327970937960244109732158780998490087280969848750256147353386393170723312369010175772052196469060850470508509523569379901657079464038435811850656525015057754369029445502041653901243178130854521312788149096550494975735871334310738643928246498198610545418177269383504158539217887162254692420044179240023867293792388524907695678570795117291294989819953484324499993897261903542309093163439701390169650937168606481505755850337147561955797827477561166832618272154693046174033679098895689971415702621393332953180530238341389842826678099365057180845891811164550504585873540271158149729304830851538556861921909674601929585540386014781926700650043177058160560061004183033094341237693979424080417206381716721989815722568287044415151794333637091074014885248181552005541258410520649965517253844105580891201585739434353377828801865282590887163132398982632308975264552335426095619792420672198981032220145832050481863376025007530116000220782924588309340493010310300520115148848958395234930329292777962665454015863380735204258945196309092114189491002563902893212099969643335692205122368551974866016869941349522966074733866923504043581060434288881328666782161988458621476761557345736493255302337720059308562606564748063740957141185067994083262895105303277688973073409240045659533998025218625860813205714568131716609927839761588003787265568108152719619039126196769446564404584754377597413798816568399276360540224411821221173545988227254511131324128288734386875550528625146553769835030765807553296420663539221027177261899146608782509091874947575659173766024575286361041315216016271450863806061406304656991226081259747103025077780293355192970047448652679952868421253884214421494699453974800477821244573958749254010650959211064628563839148805964955856884012950218632936505287507565981085093328312245847749765584631442966920437281595225310398450324176740185430651179951367330177573029237186416227641926263727351693789683977955171329399946676890117458119127553242271911737059404381658790574631189296113957926293163181957299238501624816182723375257540941365798652671246615468564473614488699477095322991128767758808009502713113737043004299738637216904031723020841072550477827689995120764923635880969992665515725591049416103041129798462464872689338825474812102883188464071450817600995828652730275085612520245608334140232644284463857073458019801494282365895621260928838672762704213317143623245120290689398733781610778850181517488514361837494151177750210433734645693898830115437609999024321950078767181124103642689800223192510330634141906927637165198590267936655276935142951340166913682725632953284303084296465884419580253170314668698675018611919412103253108480339027337722372244150408044169679124858594835796527485026802104484685814353706992306625983332754633038602787235208145360352632502256752818758045533390173768060656322033936447147338510121803540773234507594959662421532388450683755273479312178370880119786793046336747579514483620745133962502912518442310089972994799239505211730302808189873830940886412703563317159906797910116931053004425342189313881108621838176793674570881021650434934080925519416414462848399607763650713697736205885746461702147621245561883531390593400281758046823276875960228607338765216387204595675134264843115677210147329936465831811492001745059503551222039804008829824671263901305554971076215136547076374821323041964148303862907511913510980197735605384621757474601947864690734383551001966790598505788682971576325426608479506309180023134737213855373582033559339582085483010050285699362192113103091399334957688344018464209253000619812189410441380455992159285820447006518002808789889509706343647333064263073423820530622282295743174855476411303228315112121038510981381008119826219000537890412504077035162638136531476361109713800914320177949514738534714433037699409628547158629615299501639034529928221118623240231049486768992071629273386345132861976327764039094723655092444950962333612428652311370325548325677069697474999785170302421690601669944439447908749494957553729300804699048079820277023468341817988521543053216450907493891446319808864936129485290320041198199948761729411614490281583336953191587671451995045598678536034737123256440208251062172908077882354338413348014435522310739202898996562552831182735643638217673401188859039398197297644861524577406580762795686459099414986246755906182927141484118200945225508661599363769700063552715716255106238334146864533272698142437127459885038112363644990038346395899192388128830257407793668395747754718194307517921378374084854951039013719324270310300953673057529449020052151249679587607867542270662851708277219696713781839804075501960664366013000030497766786457550336484589430745644036555551504642212767554754742730951259453119874766242971504031057174770710549840193196244148365132599037002381937051356888877493182517900361856803763316844608401440741133411183195944513399186063348815404628647117104473316782329297082159743552793975770837826998181242053015598839744208044798511105733560526253431155855987061779362948028395566266518786207152483035795111532335088890542370944320259680614395468445821001450247470415829240886719185781001814190229747056985083213277167985027916909423855341495693093281145085613489062995221149366736860211395642753671198837813375749120000292898839657483823237788815461494644987638291408926331465139976018521953977017897074080562162587609235987487816862999419640950987795812360985160391647527264427631125192136001203255451873792120180735156795984944761073030290560132398708186862789986226897014443877046598718000072319658386827555461448496385097304257516732130044185157110832596980599594183373569612234082997396117630024320408897525168726190977821266404995724514050269685400530819676272800699038307125309103512764034611366995610314551483253156670672299992618849428315679997334715586595648939191755899362165142764906696956408722677347507866407526709226725445508427283623157840468814503195268964254230994247301476255512731409830282244165196265082014494287376720631821247650867493658035687967713729386276080106384123458831337884769829830200744000990201041691869568382333044623336080111953146136942048610255982828152447920824841894641289945850472009771660020637578304989256534876783169362615298360014799593628249905260227820038279885940674661919683364748259783032015829104215905943143518180865073874065144195206900062679266574373304991446855540966978696487480284397833050288594352736440857413820202021129716281293347859782671490614796361413087460281404474845853146486446091855599256975372600422469602228268324997112944279657478087827989172417500188390681619588007775471860415502152699203739648125251384022575452912906504637596209449488647076930416357828327235516313753677959904806567879333539445211653907642387396802364701949965715191794212444795119847393084745882725647437027682936230035628226023892923021535697258134342734619638857975352399201869298619311354716630877326922538029654940532652023837412984183921949805133209648553828990411461786457515856755518836156338043841774501203199940394837675508892722692281533221858097956796888718474488339924979147465078778671996147065820427246853304612452345371774943843250245989219579105941854391909652841613400659668237341003655205440237240164777375620400235843303204194516639496695562806611049882495783122715860149515369670051089008520910629024725103880876709756324265288088371724026483478626364417891552601195823348364598386102136396828036207396109793442927130469301369384793458599322522991886326851373549412817966393961136067493939675399958636989666219115098253735612584241223063612956860271700874394247481645799887528490177997237801684250968881755301500116756503976533529764352173977709135322367913122545441623990475695879811094578951882826516026364660282335761358253448769048248756030388906400599429614322009565889125164781593751400159386074230828112395061045730421718665999933743510279235998428525643643095385915887426337193199130484421947753053714607050313934964381268958314335152443988332749739525991887272338417809514527518065853370031209925422442974999153163596774763206797347362246272453102081992107875277113739611535521855123573052151319020357160706427313293072820133642854253168696568532453255473106773609015559478075402771849846651330711362120378175439178630200705971327248232212098049213912408597617912010315767732679336664356708844133946066561475702462485942367365837931016834041288719840009902678466860117607264030768164067059264916420934642308239675654880935292266076864897315100757393405366405746955254052986075854329419370317007151762320755228144739661178767037717526804256491381162947553230656334437566392156366072320875258896419253658964974293359581846699817146255857367614281020884043014962284199001942985388262034404423285208782183896502905807352480209178042271580053776604661318016742729296552586905843308755732591690331270770075128416091616760057754839097699506053617543094996814995570614725819227900600242988999998491190971429506851269057498170548125592723135527057724651857389393241628678177651791516999505496769644786646897361261834570879921236811367121972462669773057014563529804704848147706037377194766245450139744237668490835239612386242535350158778223216229157697825635803468457793333238809563027929840450741900523676266981680810907796119992021380522727833381977875698855430102847960168540102595886783947558652433643748381187372219137747230831755853362894767012631860540135226846034634232989197704621629793754271490024178857519485447135629978244066869702019205450657465593580154343406307445977268963250988792357106735624065053553369411074361084280139164520975946299409176660704743710209970367419510134835773094253195075104861357707727921057263057909083335333239048913163520212539539301335637061603464039108239005057583916326244787848437803113033382126134161986596599112597616758367492464620192766339613525368139328472661246977602866774220038404739009861998797681183835557582744255546963928608104871677789839311741628716803782534159657700837973366170633621256040405732457125875076620640313439357438764671233074074252933879270173225666273269850036157607556089187961222333938234745370645250161674295248976749655595021383703560875188448607537333884171952078564384382512827626249561935942210754735718160459981064780446709930142143812581830608921974976311033657405924433408838474609597411496969703542168996598763160540308336456960897100753385736121244052059658203932487902394508163442479525975166964976106140558049988454642950688953734235657545710425484272508903791381210099796952211906295260848135116008589660366774542199433119309675045610454029225400156686402537810564362485437592596020968955072418293290297334810156257334570679055182455923648239341180987627687958826862162414556033338907450142717785464872685799335638811772319612136907126337875711189352841260932965184823975668390582139480737881694598443279529067446186651354859575928657413891401003743061252920120047190966467492343362183075052036577478343466218742115946935316053002188998769668292072029446745916643752220820340232676997492234517949399913463817019434441436957741725242040473263320663565097096620562793335697734284266406276123404431713349957413828123104779736649844896466312085792610330865490279556364274150516059453142602615629966213299876727343113219166846044700229357327085121709964746549672918702336253093317993361369480403510326424038806946138071094214735835946881774360214027145402620772380908270197708067603171845090402008548093835389724705143570474350218060709505853512368546209193265575950644107600164793429020532541652686172080785901903223549997201930380622222748107581655148306140912705280768254525811394949430535685140603598271546095878584833160963652635142184694589544255541034231428778421856969175415410079942607879424966645642178256163872628621219209797233536968579625990323553729439182617012284741460449832874202486491365787857143740907659564810611677130779215700027691538610211016427475926695362862358224851967184566940542984656197918385899895713047107693285735169225692619123074700130622928450671393613664771529425583204978400801804598114161224127327823300352675778008966185396256404757581150141916206317013071990904985558266396817161240445771278442323672129067457178480374119704433220510797148753778133087070458965719402055774557631391023044588210774313859003971106526880260791517484590862722024265877071615190853021957577941044738735427807290281030515190983338516071736176698581355151593710333415493059984355071513317098444386832672303026702261120922525527976770988251596148900740604447274873244205178062301179431764442590588748530273369702437381157479507250397393298826361771080523954504938798074099299368121714760276096652355590787879465328767966009481513136172004108954728421500035571292567069497410189799329937869213746539761805499086689845564731367548320067501734333074652228890685753317857719028918103324368451831928936497476737579727718780622261330610492348117302396370138511502943386445371038719236292558694639922497491391469542051132247533968666734848112610217507926555526088295557668329818808871281313370776657658107461278796224678345168139332126834460110807396854065939710615697376642323032161113503063115444145152953513737468659531375982714727104902778629787841237785331218396601911516667954028357889743020073939131886207348497817959726401172368667890199148974749752542973493979353711750992550353645636929489252360853931942360330968122160985176605397786562469827176526784199077280622385494630346872204082611797345985836575353908116712513100606028102780298886350619043476517733200162056645092196033694672007819832918393343290246367229141993817301091471173168000979388661156239544643115472939282807837144687150269994021439776007713482472333977505429017875892278153635535762766789458042031383673725562060295085923158116885978219605655877804070332604459099965205820427113631810965323215196773321265711026597338059261162983439984345967428224977921721363351904828567727894112134061103633839724307131989881497947407252657564487784275371658691272536616914180709742873011171113847398610497751958673027187330344763214287488617061442467202685427730265187252922505877434407460646387441549324898350622420337571375751266135751885267149196162784514225882267467541925641181893341198626876551413350404238041798879929878391575127523484967497799003526572276872036356561304697974395089735439290269463217480061264127044487950008937022995215705898758610171018544289659136916855159370713553498055029732163617011220778488609379162778406736014721226347584302215243671559040697023692538823528662844882578702824736528090983578193006207552071564065797959925799191795837548418446882423456151037520897923728594913359528453076226119458019337741120721843519165542603035273055750160282762222764573919139075709081098375599881367415833895135052152077612699679452888972987174246690747733906776413759797378226467824718542584405003358531870857397293757345599338365605655070986018127148332160215615885619279192334427175106309906487716231537204144597931283313191478465024280626763992510217204733541457672962909446600582023091905152293943500801795908088842544379321063385480112562812688786978794309670470473169206235330204927141122031712009734692201922492159571595763671106257502639550863681374023175390722825782413311065951435891994360188884572198220301414004678390044291486501634240099828652475029970147455547609764184496985153065254059606443810107182714049158518059898016384581384769580473983490134955446236868531290856462042033024878538794326176753453995049085236966890721657017275187825071399501569888957079369581673093050259285521626823100210557540796512133577854927573993363407192463809628303687014512789300140763800986246199899825420556801836629256748834183683085708679825042570378440471575115735123641933437355254543833536660419508072218871094642251202353193336585684737997186372520072523979984284806043598677624857547285280594181681973206921222787693624316612973495702650071098019545983270640989417790259115706118793590190939534252111650401283299279841813552610772844715515287821190802145805535095324132403622433411779435538288860101151602176630689709941297311909515091716005884504674071543198739020340114656927678581066237176115313682212068601931219587064692154280956296175245881704264466853433341036658867296684601663929878530262671882784768585359246203430034488625542327388553916110869481496622478533691741581862795428330747758912149028438454906023108757792496156001641709097691726591084458880429130764230617025853377155595128983702568950862293762435334733217875474322436536200863759311604017108666800322595911810711135474328470557457705806080233830129009059261338459640965842377473386577570385713066177021724982295565191285214425884952934464047499363357643938016715160179025662269738124289505397837719495133680464552538072262782126198920020836277306427461978544001294795598606292762738831344036509626031107113577790615254552288752453734398109759629836643416796446866495186778948693403692437105048608581502001727420312637287723719738246018043518220050593032412896263908359689706064859906914101385557326375430864656021956593498226382969092355720078404360747868837945986549228579345886126866272106280537963041410731733501248192132886146315854062803420586833081257245005603829229495286566064507694067814603675979297454063616854919311816865248617882402070035620309302413017832537906713018831171786334214300513808955961028885492477690744577663683194565107917764626208312889368923275214742905587645867826796616721474207116318647917284337622745536289543153538066228222378608951485202825045968844461841018961661810794573909568547864303210467588376133773436714152156373436945785418255576304447535373583229185566690500583393864558959411135705350002418131276103036180701984104988756344875283771782627353326017101566108663573320926328015611158947635996753605023535285902599590915561798826429574637414366836826772318500727073953927046352517154640465018429239236287219071715574517362015312963349789213648951316639809719420419290229304744332845482295689461972352485340444341971560831849597290739757948449869591469766875650551715548418649546373021561039683138669138424447028030235949947169345486127630739088761155224058803907392841124918729342025000798704870215546371741873449364395574551462806977022083748424403044202636478074799938640330996154526134001344567093559652497126227153861639904954482069202052954534652114801601635292521643643857809412504884848600804015512555743574458508809455831841483700145045675327399353664841614429489207281210824370167082601761034053196920708318529797117869501927555817468237792931530926501073499556807756669471256631739414088348186712833847397591511612862578081397484456424908593732573963009860712695799506212995190810666114955120492100908279366628100026109366420506820759111455938626816250793277163089748716649639519163515247621617962790560726241881406652713083750212499166033285723648811644592800482652369499911299660175170233256990284146805675541432203623508425262133985472259922876100041742338318757197670077486209457349868807562587772645610596585279859002107901099452278677855241551476627932018447987172647970661412183011260216345917349795204667261128113744710965570818962202534408398368455242500310144708328063101747099912608989144738415488122021186968605897154743809898441120044153171506872792558528625855841758923350553346571750271412546301266648906137457634514809096550847162519368025401131708646913380663526277013385684531346718021130988363849346498318065224938032712191714342817888575582098103497471917764303852490613308992496197174979323966020830680654330051762185701960706221835563127280478692292550021831118213982464549208858981754799463910512133935694713462152055263276035144682506868031202070584807488659552654756941137813501596742721215079475977846196318366820946833519206683194336134295993847649988582270608872555440972632844188344556250563643503042004352512013636737693421045670143030316996358309199517410850421212507443354595259832521618297344218069496256731703321733140598105781000601081466285436274074873754786056527761847885584786072290862565405133373074258848034712205714519491779832583500408584254170234057626078219861238874089728593202458124892874210873175343652695239033239852611225370629151233558715854666154046432277206314265031430565844626554582089056083888959965341635315154021929186900294805296181296897395441933082832024539510793496915148698814108527040350201046357522931765027210980415765626805221749398664408699084232656491782085821663892599134040156669884541398780455464130697224900500695970754983575812829084516335707768775836643269444600258270496488957067129586625701703439496969479969561761382842696262635067982702963281569705611926951924925983797461888747079459886892521608277688481609392093141332030207623324382875589924412380159746782787022992609221636237471515944247669778956219201252837550619579147888816856945621003067852457587306791684553153397493352674510156259451889675975271960581470737493070920843280164345247679069614462521951977816122077700258702020310373185158350761894850556089713415078494502006191726226246670030346592734073776548196020178923899845738414429703254371098839347823759331704987043861629738903077831757522401582029631192296260228713633700806646447224965437616843090339019567316869093702490586791989668685791603342403543412721027403243907641691517990879364985098357628772050763383939051405001956814924163884933625363526499996193689735901792534291601762515086422227904922813046164486003871128810574812948438780076243496770025232787489154582342855412854178777205785813026677295388154674174973915347046436393683547406726538500495907270947759605483159609914808759936631244147381158226931271898640022897684342600561418718431978999691349624049884035351491305399610631037240470700690088953386632157005797683530946085039184474370079354211021139136842215427634985903784384053627155058847254556057728311197410897699376632131479385533144285815878875688111789183020962358664125674648586579335086006547573481583155473599106449069224296380410197037870632071223007622994118016595929335244250272450890784011599215992146579743474445452008307689678393259104186794559452593019288170901650615051260350744065720657051132868503779551468580171151258668544890099323075448763885594621791367527246455353819628259841160715170916228079212133654713588698310981307936681895629528460082863888924601687769364259598821564991037293423974904675290774869521600286136299965493749233675980968522303232564591502287745881896916813631960949272634023514500351836756214095457014370102623215902395392610778841695795815546557747994343762222182028310566738730640311822838570903126688913670230120323903722341430019833341747347474133994296445424387401658811662404700381650069085083406208870405674061998892574445409320497631407387151084834710366463216108040006439750996805601837799185104637788599554898250046980970642613061483740576359672501937701132452642407610154067422246610263422465739797885544744607211330150726378175082690050062512081506706209605958030081051547166468133854909183176061409368958951430265856370024165651324681530789413389681947773385179254158604136289504844738823142668084284233958500802239741016825047749855470730705352149939941306187330957566322575937910144302676793690879631880340123307131518279234402727910788595517154062460510612156369278018214500041571017133788976398631238635743870038950744820608096876070912039203967004110193442952751006453603124418076441363777959044428567402398171667410823052041935065953927275824045332407435867249881309475101480795202789719988169699832509592533334718742191398350788455596019354222635221288286145578651547104054296611405728742183896536148018900391826299327938726422653889434191384918931252632196479297808355110098413632332045085480538332472337488272041799081534163680429861851253105156068205884694725761613261385173634582852244530950952326164148463092473268265410176034987128177869072884332363870853606421756213080940087034913016428106131959694671362454722899717157712930868060248363663789033925857437788526434942862158265662300008096023798969640467539092132187567504605687504379346572825592611757081839979714674847742396164607671732364036075007575987798435455879098837926397804132602284372880126907588459994843737258724139397345004247271638490490628212463134115816994126843893352625917711087146976109160558088053936353693111516918387347489588551955188968193604916661828402351653860532661137073723865604260340491471339752178762226011173468265164898462620461798706783061472987382112750051560375989477050715060688414653076080051141851437378844527241442850617256468902670828619152622948075856619473509984260567353471274876932558199926939764855613861629731942636960764799206567416780179850357736149974122381388603246026695196460862119441691362585635599934139343938630085250947414185737960853845187608959946096650678749970480353741451459974782230128107365421495409563120608815907218971304382266618551400330177466945950687296003480937025031432001532740545385544678760643663067503872966354871488180427011237182473571129842719750767548900356518748197205751515479757900342334192221549980010375600887787680553434523042697868287183992798606625441190140222304185884992313893294482116215576489421890806994601610638881583240964092826027861113485167670166025007158914611105809888393440337747756232522076926160177244003856239122382037627665574749303185098075679748098960773854760073108066537461610614456140227922634359285561870258352141318067399615282786915041138176027125318461552763115978315514384209569280465536110088727261038495785402874976847374319900104677528184273265755305264782264837356707587841029008477542026142690169044216848835618636976109619174037959130486692280076691028879630880018260295574780705547287414716359473446112344089023295668186263478088684805604192248211303220129490561359414305582494296163565400493562747996549200795138026590238548040989817367697014195010134540799626737236942994438686075874081977435369246176320410643997272768895468145628156058502386330759335155903152064059014165949626303564555239888323044412315694732518909610451168801771428263499401751928117512471903890902870507792104340184569364834637216138080010424390477491815909072811940417455702117192614727308699556295910522097774317591102675026988385797606633024147127691553960342084533069468860651512684959656077491879028232958043456437061066109004506683572085803347410109698822448842712569892783696114890851354719791466438901631093103397218251545618194078923197609735455981142474843348719116037197295045120633968312136298388634271212604002440807134974472606984354815126139923929749395121989366529365445739427255990308397602498463317710196340814637844461649482030333715606264240787767242738816791524679454304014306814371917666638474462128368627493627270527371323393883561106207412255054704002256282096076413273498387331679209194980053646635235912980760858460618038990336061206265050632934407829548876742218508988884037914074348277049325771238657800108676527845257415675125258672080737308270546958780567979783807546366088343630503896490066935403904809219921421960428971292358807027158615214821549992674919526084476680395084408859715704973116818776291200731652265223670330201608159148721933737597105731133291873018267125967564184873257821385807529969940024711646214157724593061545999086385040577285967324186046574897214820387808735915918831747765320155279606004276794751871720630722293170320350589736991326490906252402849027148615588607343858561101354940490833556737782709190109741151613690512184026903994586211265950101299623096358476132272250571808283944236892405856325605123214044066232223812900584001902461813719113840652746712431614573534904201985051803935888229163571186547386716494218949676277697222404257946841757354444395123264677365503726081420196912928202736059013019207568181744048797765427417909610236088628172410389638993316543634058167114626331370143365382068951574795970193331990852276008367463602408801205373192978433258753928438793015661460351843220909557187000788401531640563287381884717918037583165759356345899368949880227270865896741228357256177211113712731050546271079943942718899709270319328763443216194377880467861373511401871619790827173197186876849158785411354160970561108729407187036449440817133089597253437160955647798676931704260776438490844602218145595255926229674291057491772581272877026740357866343931317167931340534002502470943189815499053381380163274749969510006848683505213481762689925750809072740281921761647559895183995390805330113108337204483450669213338903349259772757084814612071828969997345883272084898937354274421440333216467987541963819378547478496971921509073820964462909837652785233655963973519710432180269807812951172476568899440798001163818348807824950267950873420595011601472321525517734499440772803789920764580291808155175480081891447904911276193313154600145618754958034964995836952170663823633538466330242802425862241405876464562630763239433461844802869896528363408263980132980917456936534183660394691810622430509705583718444376438699095530270960571207220772639717346127788785043549258405810143146081590606943944677690164730114185137866369701430686030800261531000919462241758114951094382938866085475630702874329230692164990198436172253210130620503684587845996801083389154316455582632331040376512391531408969054839030045565833377381149214909709677409748035436968212096108038835947210487970828659090917588644069756513344768102608749412208643585882061551802200062373793119756010717750038315549115310757374350169106692571119557228923739408460482317441448981065866110479406456360438696214622795259735646373581359950813967191521581828714280982293901093288722069358907432385671756484722949626406409550770468325365048756967267866114936918120142571879961759312288929551091417746566111465673906810496390970537840858361126651534892361409120370938595793820712756307648821714617990097112249735643010438348224347485628138742722654014925969362580131534594047306861830998138460712805117461746745627287304533040086401709300299274216226044199578158197153408321472626286869396736766138921381081145719932741201452761355028953085901959572047546799774563895917330126712779694231268519364013742453586669121372124982322119210932928152583854658034739682333073970684358992481206326113561120862965298008899183503490556157556479813352995430721893800536930069076529064263451377039753851158921954934674241233461201657991562779935466611582390516131321745525901246039840679217275926461259425184505478723657553242449980955292494906752877463469970015311542088563395918356824948310881073442407432628673125799858475929151122491991025902126044528912369184856303643326150649456118968627394726829956503797963592604302460733754672017471365424361602178963111067267719912591938941020476625690157942604516600313959542393300096048923715049086767912989584969597347821032044830128768311283221510692113317799382436473149697791455781912390521102030214830581106758592097543168189968456804919127693505922852508428128308102741578209594381606630468420471286029522617500124739581742639053594643714613352387878752611544390738319755823406942546266538441454093488717448224207002770386653286608379396878047664388408833566206361020660796293328149666290099187311416655877447310838201285818664081091266587619416869351427654174916686012635969529566146647131101560165812245468878521053802266918854265482259185073194011225158686956828788975067085724598914409021854256705654279804493906252721144137372561183539867933789495110905926319748712727017478109035503473613020627992792500738431149733931969595966962652848538182846292531485671440602198741521889085229233712529124233377380367524360692178717477702081431162480725101296913066256356572289125845269687099238095617944600811770490156556079649444321264984223693190072915773474036789044261613867506508038707092000948517569013928749904119705894324209195094225447347477443933226351617041963418923864829489510408864900502229577563325936703868756745911222792900629021954879110360014668951042681172218984318480027354577614385033521490912711511624657374920868914978293254771114327909473722414625481013893068510530150864658354867926728710779662598364236852723002472640412906867061176684165180297715512271099845393494106765919847758189195464175655892854567342942561542886119595139093319016781556909840791779373549088757989231256845113122020755678259268922737378383567418762868941411184737250663245665591502931773014372253100305824136562702208336182138412914167334685261165082491456919639816446484433566304695331288805158255637142311211979678815169476085987128214446306086054503840859499007672539935174551486822820679164859811791901768427116997768347316572415198319228265611284240080344522720455685435305840422805831988619818097491926035260239484149509872319462566040868349981424625617662505633721837689194128148350951674770538988514439556026941639714678659085730149132928208092929538818323403694208021777343336021999188677159407466990982896720506708330806336094156758583185216440398096698709795497954535388055375277503698573969265585792754608411407616744280157405350807192287788831804235587259774583317388039524157813538577751580734756451033394900874337901599027918148608873036817745699008338433140482882821808552004163058530592495051424227239917920930103188724083800035009572393533118280436134654701479082813513713584884511848893355242163350494518921251094099232054979453584608240012836404893842076314535570416747378271686106859351663281338199153795911555841035087738428745658330091287369229442797622880090435903513202396206957145721120981773603421230356038867471645522059273798446189830999906073999013999795713238112063231626281103795073413461226314645814859794411047872640294963954628250964184339730677327919478677354426741854422990983948412180973778054543198183963591649505863953580713565961885056507969497424597411951076086155400039354895907781386660027655466248405896109607145923733064774691152550519026268379761989425890439929800577859510315540460202116727116313738600531522149371921419758838725357522812279068059708789354705333801889676654927079890533092345305769604988388397433655069519821962638780177433025261197818637549106428883955130619059145488228598482587985750646301614995945976102963970252085348150694650400915882493033060494384003971486389776792163071341181058718238681086771706273630228010482146762461107372204311863817492736448089010077446540132949032437510422972692398949940155138142217680700637271583245582917633569187631897855696548319630888574740849063646703004512686346089455282182529363432088392917558623762988599331057301984785896612267110419458873004624296124471997168160526066763705477924181617178384744778316920364528723220123905562290471210020272498228600306044867171501934344767497280110477941636230171629966495957119900739737501938879114503179752774513174797012961491617710701880234588821387514001501498258730536485042995669386381931820337674111980172582097288125542324296066707965056960217012157156381571251482501154251011255566970097396423243816715615728668017210578457522712154506826465434654634406851260641623009514225170440579705065764394605027299886187208014068243249990479831560563010611490784149112984259804460895686267065940048611708157033998134468610349257656132125725818428495943127139510855242935714868812467357240659712991847500442383557498108963957279016059836534440303090473564922922782584644435688056373645758555238388009212470017633437172497194493356740168591980771398339947526760131239171997071775343563720263120829838873630774470489913550200552400578975894190236006899983461326378851533823542242052254052277584381992588394777391029315776207283983399560052498483527906423920761095753640009455056723526080869961394428101562145098505832989743231520725903583875487193944565986347083470685050155884698581402441124433577059707515909726210339253948276412179874104630182755891415630256041366845751135933611933265335604122022151740651163752994006811297676662663365613634037696045026069701844462928586733046230995301679553388911432158279552577482017626184010715058447653537528576408095886376294289993740081153023316940002084531765971405212874526779426722873434942115526959034847572272162208155257427743582675416460074793345020930748131061607230282064062276433616320568132210835280505369228787601475763251396613824721824968292068249108519810076674211507763922846684422867554475222532132662014224473041281548410066761508974421634909061460074422656296294244319707359289538244011047765079588166782582342820089235083447462369319684418638896703516309864671973692767576211373891058112266372330506871589742367524851533708216626676472414187302604312899273197379443858242390996243816822152525496470434048088606501244183085681501930631850878292114680710169997968286317709205399017131210285091404868880525940244609000213324471611479229412763933725886896402297651822791989364836695262540951325118649254191674100522455426468363057645600293850402005324608894219102326440401909600737216735487081021572699192581645642403605003658130594335486592943786642749503582379297590338614672280792632571595985330379224205729817340775595478772142012510772229172741953957174976785271974236591035165479608014502519828099180815530393627943838315265147281036933535708264955979058282375703473717989332772736337527411532640033783155649230186220814023401941813978616683685212647234697230713461393646297434846505362816464684794176544419365439813954446998690887791712964990695791099248619281205113208145357582123214844984401328125340803988835735153758892826779885813732977901839190760797259315082650538825123350437485775893812011232548233438614971515648266988161016337801592957825642146265807867818909800788638706190758684435216211821166397536134270893107070468688469431848342269571758842746085949078847018608929891677441057781536432551855533032339225749812301413791706400825017610167104774072159628575119713779771301362664162610286573643028959855149051012202752787055950793011894830359581707825178744115184355276995768213973770551086788522613521235904326327736062316778118229914773741339541985288396667154194588184168442280608333084195241314964830895623602374934305032692875694904706725528382344626626142648040503245571165801579716465023309130135299439072587224453422337496588990065778178953294488031506308468731826226086385813361896796126891671155756508558479404662920684273316712111002748031470123759854518478102312193293222067213989026589504277158737350741116816769471845599650049548259233350153318027862002731434521477321820751961646455170203564161215598059075218136066554372552145770449740800822527790356737614311827657128100505589764839447448839618166275440591491311494697008851982664012552286177839487287424780660868323098041132995870876037595739799321357543866586639364092143860554517391811151235995685116972157352634366153492461436924722392650874164732079729962661493107187060097189115216735848609908851371770573394723019057114441954542730766705254358734348312357920268890647386044200379245813423102861471486009901619865336276848906966094056097564132009259212696706816078459699187835866666879081816618569200973907766941690217785200260243998513393773331369359095197799710664810358960749090906465535662268575216654175725755837865244583737780375260826842181464226839794107100356466436579579771137823508095629885751939871906409326956867750603060789083905684985571389681181042540284528845702071934418632611688635198045654701246869128236819304361462623747620997088125511904979351964776781493007231554465263841048494776074340220432330086342241714843303326133045106604544584126192289199680221284777254588859788626462427966588435661858274202929035192207526785112364146572266740187827694035817447713934823752267950413548017247024636666514772051335459277568551755697185282675892762739089682319895767910819913360276945254364049021651440875871558978928082954187211984711848375391949681993556957637177372111165865358059549640470368362989193667530389759613542663810215480893045279790763536260888221512126598612764419422546783609694637640610936686663194420691688376571680748824489868423317355807384512719724366471402825366392302510987050978354158223484659930504193348885385551555571640990961870835446736024137224561849662317770288542683541819144281991024103731012510981426697737750942752999609064701890639410487691565235534484502945263681517125847885586633440316337265665340707311684244618685329218346296513024782173268906199553807392262419319511004116475089350516436214866930246673814080293600313736474190710770489606974603377220896971385599229362539510613967465182877888681754684907848528483517770317208143765397006711601990808003444095602472383673870477286083173572987888763246236212151597680282994410558805714172676512041391817632654136528832567979389724654247447881932053759198650527045427571903772524743683462808211255215848646465235396643174250001327923417716202215022848249143631890774945124698376173813225202364390697668552013182457689288027571067093044462754389820711874200078738572834962281627757364571463674857142411687448627212892943906900968308652458476206154672043855457151024374438175564494967430242583274393239968930083022573839179212427885994678283042241128307379327373661651290230331075678814814913761634563334250573897513962009087624536093820163462681344273871435997911958741218186732546916256132623098284231786628490395797495859537496737045510184268572566915398488448837793997107210350592035863568464419714101109755802935145320806504259326860449276654422768282931858550519675590097078614807446890943386883528988540267422683643276783870177136105591412293085419310086335733110273239338198035566764414588252411545279371212103100340238973849106109214505369457088141167222760679604030334000334251880283766389247986723777340983762023813551734205027605882769665970528463343056641009195810162374729398894317951090000911496584810617590487477787738974029802445707147675076072101894060048523744730386727992426233755684740728555033810881141142908800674929221196729180898854302342923576847319724347995592455720465429205864304466377989834095218332376782136136918124243691635143414652407618802678886811334909049487259082912418579685687709195619112447562561657415841907279179937826296540169753284423215974692892101424964451454828795137807115591084530016336217776066492004656726965024503885705189773009918692989831278795763454793957279682813609155374170169045611329463288922525661149659282016492180550497894869865556932265317247359818982594941274324039842487066686994886574495228593125611745854126633395030386595623642245062779508443783447623088720296464581498892938395318047499961565075191112933504020827383552440189054061439480230227500258689858126822451294666666937086918020005349839464108837388855727281198671500213409061408110964282057150291061710931145579054154622212417232744569751491891083765946372116597830279235428400665385994049477200384754845407014730249118384577601102552266363421736560254441937843517669592906873109326124352632198606152330023660223276473734310843991267657447840943938081425399147576035804848142617559183512195310959518935642061287857357942758101277737720320144316791432779522707798273217707762383785211417442930048796588456205496017207684954166161948437407248030594869079221764536235700418444277163474509248505567543331757704810725629852930996637259584752373226487999045145958173024234499395708187941283680127971389649303544156058430001741782589703706359215412021008170315979913054000820968006506767835024964018455520604485674817485570806099016818478364999118903976322598935063937556008330881442755484550104188998776589452921402736949985562890074584715905338878031152009237014699944755681305223331306599370576911016873767328095347936891141572876979197135054046064018547135447578633306742221835196400742653296634863385678215859477161679288697464618222067808121241391446178806395627120240567148625671127849115411563938258371334793830202647155737025822015845175361413654674872700186103354255690961690537324008374757610260286046060184902737993601813836914089153480898118470377468419873708641859678462458036826473650041228241276258507902614205307325061155631489492662784245658495457551334930310459671222254063083810094161108855519890847316584806925882369058395096302399726745953584287929477066907071202030080557623864794616886418186201559109228554669474206172622827330322704548502331092267999771275547595219684816789055963221866763943417775286971761161710269508402753427916186674331703186347104454428875580789639146278875373675254512727244087927476844213429495036251042591010494436755119628674012134203260829687550148943396619268491186340991936277212376736722956792424861569538688660130373051718003633693526650409006580400869555448207919946723175438665158918778471186345561633251033324416219979710323125367827516206668619821863844212144240863467964263713581423689521684356194217880530334093345847981782414802269095345629954274285247060689365665373565887442973648670210468315049293161798127826598000852800358432357695558906934431042966415435319055399580950474138955480489330235438963875027100708305363057963641299700600644647921926029896157856563636184788656315843020331068381416530433164721546359762668409335845741344524156169928773950829777666268378133302479615029149019186741302455745141807027565138905488176526927308637005758177404778834874260863310755373859449362182378415840499481183376089109027735178023560278470498006140051801325953954450125371046246686614399396484892692114421226756733106701893474334516789428943146401186887260693071790461730422711641469339725799081342737418929578852878851266190542458531929492687063298537994272148300626080756791344470743869300903067882459402827971328558124677962053169935937015426341793583627079189024285174431730025624169023511990656407563397999785714240309284457566443774399040391118472638398745299971299801188469729186908135393140139832008393047102048258974666181482019680715401961885676921491028667201357320902095377152715881831900500310615961475801013430064400752010462169859766031480007264477580901592089672930031387189960745920268112929414471211735090981641532242974115341583220944750517744402915847412451936582998877459967433476314032252550175214120438983064440749052588841404630587252725696900222829305284346947768390114258761791322607877792293262601002794405706043418722432649739183308967319707364510619863499340725902384143980996932454147390192982695230452661072618805437505907432477299227473515695902445789028332161989158054723887384521998333773412647557385884202085198615741990738201685847392246928046285597687406122239641659716005650901943957867788990586898141759697671060133042361907624479723180023536822640277590228106069391122691525445016288349491944492800328899163123167697265062648395929040476970374171072922166036373088143636286304594566939970017930305617481403992651241318062334892516792233681332545527320410505516000711915806986609573190423036116664140698983831758239934687110263526678234395777652998818735537059916585726034149601512507793088891654230448662792815070827681733205220619660141970445990128217265401345741167094410325197564374349479303841284002745907871084831732574985295300681720442717577478529633136286353639128142862431938709712018098087046887138642704145204130319934553425079526271277219976220367603842820465461902890921785274270852943743602186657427371235514662232137789189461663021174751621042027932848780987453713222218604738821775180539667736102674430517861597884677235788053367314838705406044750665404259623823609300083858817124964262998529791257380802073222318664694877180804821785067987299347356528586410537643706922930852348133317219389824743835509839766665146296431909897884209546798792632955031474360259308709981753201211278692385804790890830497028522643287693155314274803294677692994529799000828876573333648352405041792489182710359232358639242250609959875359925242070709617283365266195081184150223053274988797144490036211174400034997455373003885993846857901988284683556985543026832033483900692791509829371123692855150957794039162399188579489982596302071090960938492438887493980903124352950429190787366361583333533120037057947687487962280552128353223351485387744616107054378321420868066186820987191954338607100278648834030410628461682602867663259535379227308047843750214300539981826511978700552367081152465456326042334713425339496764448427953430068922595775969369452512675700357957870520036184746115055838562342381375395587306001713400012934593899169593859786419688514110188502106406894641528582032744141497554908449180414084362509578097931491975993324641760759607963409115195269888842818203606460629271557153264834857313405567709255292125709871952590705220928590356131627742237705794040327899117563014197918800792042880681877662292300919632444776414960233563067476670204070425798736555721501892329524767391670220309346917052988555156591106177847419149107787568108454078243475417891548268541075159895631029114778165157811318954683388138305995274824893630645273513883709238172246304297510212282461082594848589674620123443856059836151674480833229361914139198381817784572622728169710173202243058364380560081045979653115590336698557283456358912520156084700643792465136633218764549222198417722489485863540178594962483076380104931966376984990410105683818297669855927968290219052252973527496594034428736066227358953087408055589069459835678197115920767683215193295097555487405001135938140474779169191129689783052709227326147055567344880242770675671117816791100656418931874349011020366968917504629707101941909347247765196628295965155904058392026860581744390335595687461951445964555340295302921055456430008460091694626282219732572337234710985457043144676984372245384587632883879512546008081239628213592907451596095426708328527992350685358754191475339293363521687695471478613270498746813079884880534679224360820520509799405857226893530146481091274187625707844439783519511721921490413570654494773490064828750729804722844679386188872209780203775647787448185098795046860829487677042275716154397263140458876304903731675308062527778770805811180773750873961569431954458589187753686349794442921691374428925712557763779820795732173546769850102897064142892762580408482884428888527795021594877649884261452440899919813065903910322596209494550304334196319907176195583495588133326573873251112711677348278734827891513600243705430907029213896299039597002333496801407815119332354530710642529020140712826338637068544625885730164059821086174424398985367525856235835741717178603080049933439616078361464638508688480810068093594599365357670723192366319581346556372592770712681173780816704379977895407689749104862594121861305246001557222825637819713232118708007549737206214114141832033190905735041561983074532865393731791496545060035102381554905510198370814325554183557647888156791670302283146572747469443574444679117401130102747997635741006341390755295470267337903580235183747009701529854330138019720845025827939805522351495869463774477053537407201515691348542709412868937595634282920614285003364221564543365419472070273375788327690164492376669357791700565723438493889520836616771236962331083386335169448098493370944478333101221635618188756252171097207004140816332467668132215977766517749807823873205825255920091390298608660758296520395500393424532576882813095377728097026513447812829593423173561451342531803566733621984433778853617082558552823611850259013986864232584454666215777044424922225079551150345710337068202296297080110190490102573575737206500475903394557459769450397284066752078315973765972226017369043732660590480844737464420396966843190541367295049109352106914235558724837212008271834133571656044104500917266267696686114448521236707240860464235010029117159117316431272704544117142105110534666589483828281869735209063803260464679833066943508249779773942484839410340103869341921100514029851551463071084286284682929115897858335638505275393786352863791565874403563859595803337770149501296971636450703289194967619603418290489977999937707154443982745753876259582357108566505035742946601908545232237498467361478984694152724438350775368039620090122999163786829590978033060675013088990339600610230218839339116986097051813244316850136391395074761506187093437923101408604583294236182791930170069319441119352927499581109870308296968772133430758461728451636215792131627201095660537071511653599639280821276971063649230918185402035474013718010180386871891947660995961123252656289959425851154685892626236251379145621212874491136784797454530386486421278620024795039528562860938133316749900496313896974783304809091552340964117077644529212858050036872109359719568692605325105250184876616068791749950630148899660080752153422112101066288472138285654366635488043469616179306591614816035873665714371571473042761512821208305018064221471973342886527106817177864707276974878212331647570210036403942326615747674540489637678655533010776389421033816181673989020012755657369994528236606895253111647660704553400713689583229787885751853708685914510177430812269094688150147283728972356244214913027255388711677512818282723216841378865992055364773329863229683227895413993324929679991009789539584342673291703912495533936195097628503339856613472234475861092515117410479945326053352081991954501344896047448969789200220738424665260123384897145035724325149377179886360366351062423776038768545773738032733496496147040720194288396950003838676328734345634550643278344391620335575337050318892788410201680032468261502088115627127275965814103029959417437113497515097642846508077867776579054442376799208365047324357624272336145813194183059848626560818576311613206012556029298115710754662233979208000160644916289502196147451088376873560599017247186766127222590142665909502250435357297798863950180501641996390693025312376612057081878435975618506188024509907928286745785304643927102749626015983249601789805459902658467342326516359545589063356044462937242298272715922509356377325576987444431688753915750786521626037474038788775998631122510753066000782518054107145030020845763125409492959674615795775291640391471567681320099375912047155102300093572124162031034432591212864725657732118367743680321241515738050093726638794072765952355242650670863235861321598085197532241343751912847016708197478620615741564987800471927553566518591810348970574400152435014496812297839545539940985861136690225696580769756804351940491013274155666241008651042352966579605951454381470721293443315504732011183989084664036408281229068918252701007653090625219540081945139888093444673344314749711343889895540679525975648407223633750982131371524743784762645773349412109294561288760368932900641685396094908431281432596490425588274504959412201528483680289408666896525584709519784136833071759704744406591296327587534914178888746095384935879442668898926161234440814136715400509700300614873117003803985163859737475869065646087171420984503460689468887645603738964436798160252201134102916808790712027038311020658125793359829589254551533896267646977106069875304324678253778381272963182128440513072315340668776766298317561026251664605151044393703722249413323082551274024771753447372248590286913521527084041983423777465321455655555683193575623876215307685102495985088745297154115590895822565730414964457894526166643388748252209843336755367982494106548539228010107627750450739960661968858952272580925009612928553261807867902134710224507815928144496881744876654183374621347708111043597667728314359255913556379811239122145125799997966492657022025228327180347215411440975105580164398094058720498670675675310435190794663823188223729677361225713678263935403593694828548699286731472197248338225060858433444026908020004211998910640113312178616509292418528218896877159283717561938001707630245756426090660306267004793723051342255279465617211357880203102000242191189964822225467966396092842778830451575507119652560828676776795508817737921622030725203896536148824380807909988347837858697943297583514240883874484871189497353151636090035860668836443734350743710612362337701601244348996931765634911966685254765711869730776646207287841123612171660468644594663693955282226917348151410626693278313324331665177977370262191025759232619361501867955380743534273699023428866288019789194734834293218640315767849338535620323395795863255395399484910907621435437779485657424952571058075839336449382624292877180569094547459178527587528927505288282388886631302368417081032698386647301615709947414298518637941853218349113085879589846498181813393305392267002341798644666313639865898316442843726713339980600810433127528719784124792357813198973769941200201357923234543516842273242994015584322797652261653879457217404666135004697289013845359091881987664686055759312804744972848836371978600550522386276838431160584493385862860031648255957335140851503054588014041450595954302994181263253754432382550815709357768934228212762899140659501971113182320168261445578438113205249370029735286245204174401055616230028938858280332818406784730209850052684767644285411683814719924894950114994963777940834959582128189735228379181050504944393230114918926346494293019238497954311665911777991091113431851814227180772151425136444376337089209779910678307762816401079647918185047542032307755246347299131493050737685311916281242650021972504995190876640421494084059186134627720068528689441232676588184826295122703324625501378577357988441297571332920841742459107298007914372251146254343516474106230606887516133764665832558952624159805372442792749150034512191293889433237571316502318767419112511759327213107951089655431835236367118167454738220947112687426761824828192840731092121452373775426480890788909640499295325689084068799401155386902631605063969656685953531315974006699895259041386255034165213276733927028917205339610966205864581405808817316109037857223486892025372990378651210801484406949946983889607254691632190110437223106917529134537131613253802659569640103368968578104641825934256313071800837253859843549639357855045505161163104160561067434738442667494894889392526737877145664941720970305664589561658921623069626641026329886510034564287617152502521607482620041181410547706369384258468532197997229245834250948959955823871443301168636627081958051886022378859230454799093210345394197276328833678490972832263265038963809816635449122013979543600483199250417044950151029718046963505076085960019194882227346762223960032550521905123293458659005463933959168179619507617363852164838831881990501056010677678597690173179955202281000277440776502955152116104452207848620562025706233681877193570877328408439866128776939703271835416168321525546427350168763398060722497765576725391157715128264554761552714664840695798451852485978518285189352325465714229450205109992687175176983087518887642556986697274336481996558566877494750845818310290953900076554951359738812622405344873596697685391952656058284844599892644615235181309897168594317968817776394840450265497623202318765051920819843010862058384671876051021311039491443169499078506417726464547967218909732105626447028452931816440175629243372220988104138095662129742382168016038461880281413057278164993540903290245691350529586943325499864862509932376305833542877629347670064182134774212793602219237572671058996979833985713195367634254672626011564566954952878921517183926400099124151169056386306730598118141442833801481778314354858698571911870897732240061177926824171753085775023219508240198479259254204710111950355749318076240151730383697750569369751664106064559235050240818928632037334903532625863279560700851776819821756304278122269317709539223109182886793638765716716198354162747635669374037582082305936057751687919439725027681923483427632411197860335732888828350208298387179660508057368501817802500453499839018907340598720825109638012421459202973159213248583981913415797478411425500583040745689045569410352631222748861152476041908799959979771991797395724019429935342107930143995448520127849709238652127696670463848368381420981671916936364482608651412136859619544691581112301134897570037974763071313257872226657843389890804001819614625287284998523233723456827754169119408565155635679808331542077181458158980857781878340724655245661663463359720900436878309457447008513888207693018121955774445792991306524806420207325176656957310466341584841138014567592409100400220444891263240913203336936421637795024579707849848305629998900645714585204116305222391547782587637237811653441119329727604694288079853676408696907983647948778814195427261823749356706519277710845634589833345425507447579971859145564482537573670092600068124799694994416149878944560895573721134638676565449574530564380619875915119958947344138461626769789850209734123293835454906734457114875338792342344073528585281211054032742796158256147642712705449602974794911005789104229820191669222754640042884241086529383153257332574528831714228460755583553140472336864189067546228573202331769646493178798713903116924794872918839681193297600709721927735790537874084745219950847243021592783583071390283274998811908364306892558459172861871387091213855053142011645344132993439799109166313031368638853888329621549634379162583374252793993714790958840926103213587074227112284453403431599255802158247691595984702860673617861789316314736055082126305090064080200477795708959278563707336166051800390415011980380013095568110710081034046576053809696022697676561950467056331799020445105041368002003093667045591960852017889266648541739154399042045142789499891901402576750059906008457295739184618078245126726418200511923307211811775853744094925921936003235903143282991136968160119108065124207941444516690979402052998691450487258958630188383893016169086894729733920498010514094825968092467221779048686363942030352861274607028057327893689767242729199352061537892479398366460216872529746810637101074762389044567973788751846507932862022838363583011518085567565688937097502342618579908170769717212602125093378554226302841785212134880158786462183483827331731538866483776514933165926401053308496697987808645111858144576179153029862639675564088668512704204578475049024100288929372381669645173232301533935006249362835789702750405812842669894072479182972833214804926979317260379316245328613992653984894483217823982266888392902719408906129070194909256102087943698250910728052595347564316489993459458773249266788213015298075174649896727164484860003970391363029350190004465803081710616784944550453680172928592394901303904690503999780756793263732289155929964662518163493860149711538765026077486594155646044113390385969774168471223982887986524141134446174426077458484456843892462826369346496631305300705009240288959905697015084460774672389217659862532076433965515325669307932331173093501979959818577609563368358880255509848270829926254398731794118402199569039302625793241144739463112405012436612274386247522375142200821502340310344968389996065818044499283349384122370932807566037852000067080258356592436518867100924389715652872227019331494495361622279405311573743101492600238518705330719831397628261507115911936734644464306650236462408184970771026803521434613468863291872582053150568168443359780255250152762468092326559093146888695401843477855862893155348713863156459888212907005961839205349974568533289971911161763032794024491252483098109824726211353937656053544903532812496134992858753430901379586932107309142339299542666543874434135760373475740198520101085836691835820803568188133590607950542595656858862581880571619054039046140584187934925964937277056829701317160090047140140490452638305347785604500010297183664134000872922150141648344693528242324617507730716616305670940855391992067964745981522780939020943415830497793956117084022109752751012091742613568352525092728813492233197830046852156008729278497651427453701924005465692109958931143673226683917075414317142872783754691329388837402829426149271983435720531885440542495289155351915273912212624956529969309299399193675796447007099353632928044117125703950177842687788790884673947507050143715927280217524173185877149018964304377462219256267123106193434041458695963174920160216750030657361713299097942386113660047489887284466152686227516106293663532152750679350788951630401775749624227933080815848131428090603127915736475669559986516573401369778425456996134032631445243903356312548832745896231823181164794307663453111742778851787141321687001293261095246327309492338960878486344009743825275300684558460466361936810912882516365832523547275045685000947468217294788105494495053274143529582401156913805142043423164236195100388185676481018695848492398512434684074692140632559481946981588518691032860389279797387850804440864175407941379711819434379769797451522520910565494904180285344868971318271996161945300926890888871930793011251710673077310614114499649227159548930840731308295185281578501343748168061637660511898371758679197808698786710817559822359341063243838293961513426513982791661323490142998647416500786783894278664792980177540123938476153028113574368260339553647313127591035521459442185860891437007171586996057053196578854788865589269260392422997727590426701885214204880217103349249188871000535730125313795603563151960789780367011471369418167141712156351265931457345563915546977962385147625240780368678442807758124094453112825366522690860087170520804390342237115317587141965190995943471162893649637167696004321722145426747759940258140681957988118759816225326960700365239318334498482331350420458074827748198060137785060891347710682228141006988019378467012225576818770163399157414417891950391992604926209044767440798995482163766501794952526525058389477739061867439628971743489415104693026112996810493104731058582690184611295652233137025467848217878567482615523086893513306557312834082024898621591734465822071564899564715141889923642524717985724225617029662421748802147118336557528824103899983863443990449238581447485702768690318218827872400025416309529979629915283382223600631833881570041780532305391947960516635382746013198641356518985622728894489915960004405519164952491596034347828405924334323012789906740294164914293283460828818395739172682050986791980321642947785773311048921747821620196455733206994176509165838617173350761538264188005239660429091492197859403362568692783513007721731131771349406030903052488425348678852201123543112999755909484979117999619122203072599257969114478203561274318819162435223309320249860103422135647130523107317054133127590771651031007862517025942309614657564024168700534219419528473893548106437307277231238029902829078233463021524527121956436239669904817620168412831429761342487896091471200709821089757918673507081096843785582627599098664276160464866479646514742405714400288148750600326518638953607157772294984132167556936184674180770395552633805490870441891868522175197108460826833956616993185803567351741143442655927297192890720783021240784767645044073590189215093340816098525039305557861855159973054178508194747256946357927364681697803156820593403825709577806491117440667185808310576292633296823150599498445255408427602879106519883926671000899968215314012595099100479103821607182913017632475960178789514437923792113341875302250830775415388658242235623568533530990713668762562409864975379961199709387568306564263224507592827998713563678262718882090076004483781460422402466459844268924521745943400350601077765514587884102116443510307013406928907052549363715392497079023991053392914964181777896063378320032131582878317806458297193236595325363574890423511410363100689573433502005243733571363014474331696991164278272883907002379133011787303737733434373176922247132116901418438041841986361820654309152442273925472367991375851734050322313860582238449449489295727532009661909442183953447878578578692176506741925625683008704546350462913663904443843540030902648856470686064465789859345408343091243633688840436112212339589277050371572384943697105048377643143231042011134493006732053638998822677432853913548085329178505396997243527926903915827068973446343420869850081945275982166313658603394105476699618465997704620542784979337054410522711635082580736905226155155890874213387807146273025630039019008464031063146170544846285906873833366472780477962874974568198154609750838642398317921718295438887125457561847622559119142007872525783676685844591438434977674796143953123905131592990690197021111046801696236223955231805991658260060648725665930552709360302007065718432611199090182869317934941180692517746093936003258473737718341127250932031552240864075510635843052351988212912138573016208975063941872776502944988306611170793279741601650947877736075273965980429833048213119593260070705255282411693090248435391583992084886024037182152021940986305746139524753233645861681225695277561992364989037563596390166921760305291503080927397722047797028186080710211647901898341361151739518812191613314119707836681063447686294182138857844262109283714027159971674507467506657127824146713286606001224211171399235705158323782081714610478792975156112607058556602938849075971576241920707405444864991705220761051243783332450055345449318062722547736461264268591953225101239587538004670754246474339350040111061980459926347246434428534014087138814190140859824449046794141148867294346846778810422470565446101244176832161892125640153308560072122911669914028159864041355874086841978282356051600057545330630584100096311952776515707469918957115054733997435650816461729907362230300324536304569068699941298900678687243309259866182492930513666147542410586866560937397806799394436370751417545161078443951050103402750251595811869966868687094488527908357868119085399216438506244339846433189062848775989797217505672822067060043777497064256959382404535336697210069790139013087902206440522731659231445003040868937738427308942492047281267408805170508689350159842406130016078857768662300540267945546409655276759419754852509739490436845610855550968652370664221147382571498422708399034342245859574233521769286061978450654090816471109416911536515696677226100635000968059004327461513054864833307777648397176963749327511573375640271962314185640299298441116520018435869207020648243977005499089312658036122110666983817873807434946469911058215850813527530999576893337350452228706035789581410303029479918203379739275207182974611101212495173137763069658846631535005636665299228882433073734622174319749403033988758384568569741559121479524710788334641744471600591010604026487660448651570834940387264098195547627408053934913690066845513047811559955807320333473117691526664354516357265731236873997521676017193425227321288128983466085946749629080716091817238108634886655621573254642547181289453761768822914543702255464282131843994611315192818191538539723217644265569855180214616329727374663975335735879590929695255224395571157095075813349317580639469482138539816975227495317377553421916916630665691824197637975693948060253804064295374716075233049404767376546300890147828036640915204440504914627229610246948325413153762181765198708321933643877670950756410831203811694308443507222511659601878208762981074595599702136204136303844256480068633809279736707869646466499644832516013229393406516190886405824189205681236457668187564116816932991226786532259413108285705661482327192490581999443482537140913425705512537891309500123980986561539543177687084257705430003793387906632554838326848990323522532020031861586943014439196208009571577672703957636837761508888809824743542361148991850063228216519217270964341525641692007999236890619673034257016789447939310515705695561615116468510678263460339810687125738425042125187612878446460287843033504480640589297652769162679562744228114943911033713791670347679278517854135816064794331602951686153012122054130454293979056727437099542382579400231543679700927832980773112112615571079688919838949268445922247736356183920340004050418051192375053031105205966898154254095164212682879883781519905056302782575439433975826604469756224595526234005766551107702948487024157321565005195201689518349719402902372115629069863065742538070205585964434174706089054266464477243513839227647985605124094014902576763693358443387423277192503253613208147230044146396079835302739960751603628923943304097066988775067972038871468929741479608359914901805334991284899414228351727903261227074705256155104471212874698365040031607844730818425446177998106192611309401525525920784543843030320430358021749506873834134175124770956427075585915566484312279816850804547692638851512905903278925461627612602713683953120965658425646783413007813385392926123730399027010565459583286939570884221470465712853347552529692279682997635930234685591416938942243381066795837433707742135420841869123648089120373180557189351872463830222462762465264506062884774437821132808317360928389943219509626915458024607394786301151157329485557681998206896057497402071564511948099387252204204037248842136955176286768932067354047125750969270272240916751580887276592640112102950419868573951508041408097489719423244141324158152020158556585710251932785490246904948982001710108277249476545121865251814984369753926898212750052825224579307229314254056000563405723862111952192727990990162776850273085708671765084695027829750248160303481373661208987673266315974791044219330690231740564913642523673861184767237945270819818031442180149490150978652923299947304680034976817175973747165049438560519533416203560856745597947262784035875015401924686792001587622051607907958543564190794194554784653992387725401333544573103296571879498665673494547618979514907242616964824657419619767717565796675914914978419131983752443003709912507475799736651224558407752615933766491792451140678215591339206345452164517246536244774608271867690554037762422744402806614892435194623579143936963667023705268515222656033690889312918181969304407518133386163591367799667765239474453961628464692457805227086121257834242666914783022310434822127724902359736560963511180439465065581903376031029008911728466153380499996663255490721599328840935638109985327558580737017251708003960435751855832976120036854692708837315433922817930879401472451052675404543010369722447586173429403426379391135340732647479119103376855302065257127123002778552671570813417402913315304650064353029588814366060504931213301085459180784154487770923195634673600627589391084289904071250021053952724173548039436030060222321973444222222761516407023290085460997826728607883158304508976492671727181045388253265476712940059914186970789344915567257336476456369348112642230451405666536868759338338951031452465747642640791403931231037732227881124806545913841308806276495056471472227556991936717930653970897143233837074867946003446271705761923992549854642476229356337389084026616823617878573269382046316491560062347334354007041803301293797809257703423918454513223265547638411689085808575509029708273379588714793393025487555341494672333074694297576827295703770560349590693107618313073542691365379070445547604457031557332742685614317778344208569862284641939152989019496002562105201604304696688098909368023895066570960894526390795771353013412901845859464097283507715885631293178760255693462378418859217275525425275335937879076464034025949104911597068453048314635726900428337747032845248666349172782604318783207225717475214448908084547214963456092744326253130933512911177444395804514494330504310510151047947885883828822200350029625402283257474398029468518852766767799354219290588153330135654498252917064834435915075576064079602998930142241184019700269496285553607745441129864295622453507482202372088953804842644581969698976951559961478817339681050124543045590664984061835531865016011855787742803727567250588903630225924846342409037514781715071219850916967709680408274291353242090437923574105597942814372245207089160738451554942426106083009737038035602823825393541043116837964533460941236756193259423496103646452628500921675370620790801061610378293388416275770897600060920366053714066830751272734600682485786702040421318906230318979949547049427374834955347619616365663996787613740649472605811760822892855843451946044280644473043169863237671971088841692815129427090382000528094113084767576718911725134384877035195335564622631380187144428431343601703198174343525641270367754947105699084873548061766257426601421549196869463768540874657582696146741378618802489755459380393516276064482928704882110734788879572990978834922302442712339664956230001724176144663271543117897635792236707224345819719426331116302399342493606001944420426720031131174181424165025416838143158187322064595788132488097644594500954691219905219729418639422265724080808111959178445091281435599928697735567084501593398378453621025410073347027263732165302054276044857105659417165372963264320526352978211629112857199745692766326462912583547999672131986602767387630604675254043996692562401193943497926564618583645297831802059192402320033378815893558063545248726892905619585951300222427378858903043146447819077468004455009537363148337342804620644491608103812227348546869406502869115174113144491902551868151884763765404790483418545236762539470569525101985810456750161263277575933785258046920524665709108551228699312802299789249945894680373384099460173421735507422957832339346026722262843707661140098561831834574967218212592825192404080106101145400112498173935011957395208285636531552496711108793437098664976423213555333050075112417416113054192805047703777631096116252632768138633151144850659083101596428740958565412539370784039873160431084748071318059016952584095630307319044297088065133819179339445202205619633407512772865893692462567814449108985663249531209015670841158965213204045756082480377797010421415253881690632981675603067870971187270653996489816237022509439527739072912566663351132816231417783375315797919576837388147490682894210430867795698786813540900410384397810823258984394140859270907953026783842764638495559616063286579846468114328037884441409756454878061898716042268599078509743680412322962270275638469114263183483668896123055712074653904952979966311194227682937758448765536694597604406984683635992491636190628179027842006725516732450445885647442862723515203073042023131899434654565182703108510938050483461385354323515501719002393893883862599333133949661093073176935791296318869095017973393298217549524823349104881144098655586640940831041892614636676909376635984025546116997111729377959738297614533928059503970643671213051289533016059583337216461287438793816109831748159262807918318514560483634050468565197039864832848852112968458424129838645004817651005034360840105653739241141517626608464091437754681270008149217947924227453709935393972141002666633430941769769181028517256028130135230055051214415473357330222351834865985690591189677385607885001257994778158528632306019795450670691495172438618953934604502042293910609425396009921271134236909432842930267962033302331351110741171459432276532702642679714303789196371487792933067702355892283703565811014535154965693131512917221810311033222365628997448484366228658146678971365828976721577165899345689320769612523478571511344089472416917565689784962585579906968270142819420216606238737522541080410612130238992005487368651810769133133757542304129371531601215901847973345230906861562175746577472144921561846952622574127027082443214728251726742912304505930797088800057487160595738914694409503591020284389654362055661786156297649052660627029935691480766715045878982127197470625195806498653155081495039495109290554099639497726241586955279877597107501369189868015127898437962978371731065408081304052992260491634742737340290490966138441053724442179442444132835960195446563578198457588795592713545239405310427339086868259902413681699648162109017427622772996945003049354952129264425394661856385816996814618036293767396126013539769221102876555950140343273095370228198397036338292588850699104307677285168806626350074665745221804568690915339418724213376312650292522937268288706864234871392502827794572161382536160869128746981586347340991596370483641819562001702755015763422948150949978889040028092140277285909517072118541878945661227555734835494658401790179296882417690816812681972973027104756395276227639930997572969947036004976066491186540015721931199868644573737689357829124814357413078853171894341275325131780029676832881834932705550059774971689629840521368863416115725143370287269466537455291862608676469383060286302040280476396353560750231002000657579785218106357042802363747293587590372383330450420245326284196668029738548763401063813656935888587042522740056234349488492801459079911881602052160374725528166673675140860599954602111342422676987919640807622363875038459505310987359404628299897391569713516633499437130799901076728606539155463686618868894061523409216449667774326090879063921776561223189477818421695049821707142466104598433994874569491280350351768779826141313384439926216939532431883429804609186638967257477596192287389296070657006708271963649680008590941257752538840895540765508677344269325244321254649236943988135552693626735824720095811762786801917587233435322189803405429934549177075500159028225898747766802518301620487672537988493913109370622901653505877630456558197356239163837344396361231039687275116547767440951400580875320875043687051187188235838423209930168815287858956159325076893936031133819938662888991437172304105026061991958912221932998772389024996906567508018703032300587784002930176368157920651434326751309545897390258925532169975989104305304672085680975605879004167103618548721109008981317576123147795281861239300958661617899405425578155117653005288581074638973308330939629528834483733551362644766052216810408208798936456792109007127948946295535580992724370765729683079343311819545348736507034786311314574467197498070569876443717798889124413000723495332447781194842839904846795434679848662511802063146387525866057932900366769411743293629014335613570516057488960056014364757812325106943094389352844907222533720423495783410138378644769420583621271547301491512625372395100447512590313501559169625046526612439944534255266924769803736830374533115544561283736003507147849117519531372783787321891633125518696039934276222225623049160375419634511537948533980516560979751173526181828046999874980943227119259788393683143068714026919397465233129551090005648668222097533542851140032251896764907091686904669751311296227330053995027626642500526723922568931088607894491210149967384597754638193248039254949539722886999175932365847420172592047595837076178148346306714161356081173422610753830458007503625136360775693579036687976140355914153339186821871276689536952523423064530157999420852764254364095230513520142901288866843659567721299000519406389502581367344631499048259171780054851351150878011761184114922701011172678876966302000697333124476333944742436170645771439536332723598866347646260237224735402435036871995140184984323016868321513880754500085961480983911743081032576063368527277544275038280268880902802314323305727877115272177185372052569241781498780252725989571046299703504350848786945602732756916748934674599583456215930936825207092619796054856116500420353806587273585750423146774022387626336560885902150818365333075911541094165778718215272266491661096221706453344356388675136289850259769551126127993665455503621107477046400623936503305074491128794572775628126619261590370295723470226109411010602561694639579297236035480376573013949315689196562151771033747855155814978967518469891748465895944628619599190793932671953564247476871547123986665501705574585069103691663172253873644829238402768399222854544765172042402814809520250716763572964249666388814201524807750408153570580085335982604875648047166092814504798847380029789771060192613121370934847216024439195775364250879210376494102007254755533883445361566084434553754021275218380072227358973074802545095038972969752302889385077928012151774108715030527590976425868395951166183540413008808703520453593361717408338210358301505440443430078438051974809668636143219334490605115388820572447386566037918307821610510847427707752630394158418858734423733150797420529642754068311677423434109930549058935950364799102800709186211121798853821898006522077952951514967127014965471298096987286013286700835739035591950542320547429544734711728949893239901373523268298161271399869829005970543782672105507633828922367001160829871373886485820259811646277336227759285160238435618121241657371763952084675610531523809726086297117980040175797880286894583804593232872874465427392988843662392888631320327466179746300591865228768563124964954153248234079794695244642593435469479548441919939143262630968114299627326275227399523558935258264036010336865103190351369361310914533838144477887099371404054861934148311330396826811037391048911412033800232777889193382013843130030868436719717034382923969091493248834304454260906074336868958436762850140426023643054029569390961293582987226319217366407003761659898735221225415514365188119957105009363340114725634776524203692759768978172999217768341906332204700872805911650049585724106650074363826234352038985503553437159414840185528682194376069095931120907290283973050748773943692656408172574430525723233428476190596648569648983377877383302768607323543197532281997634651418427591945153940229723379618967772446555779481967578817685012807071722079253946648667772300223084786871512261846660817668188298047247194947106314159062806822612953967831360863847796518387859380021101185977037541401204540630158481110681073480581013538361200427992892054817298963452557752436982224029786656769074150339135171687525186766615378052238387718590658046420635925328667070918096925121433513582937783972967228400327766976943548933129535683420774166622261501648463500280016805980671715603652242603989134685920438692369376847778485532074587149419527574991289457872148937719551670732802404105485322453309059608391232091929483910519884794918927555041300287517990415536491374016004845100445520778596809002833039060069128679846202548290095356241001634193598292988712009199611417538668165899161729134380640547997420215971370768349727188936033135854445881719085799202749684591920555857202715157218451639865296260071667502773385093165897004366837710669894115246120005859700355344947099997491935080101923453150718816213904170155196409688272072836277311190255583154407841057965999051524822060029775748956375572741989566900684823366639696258904985076510341471304414710393841230980278076726396900596247526490186433971844528896366203849431688866441204054814980438762516293004952814283815687886330052697757584663629896250768248604481750864599184441846454416892758568906635305011689517384083352900953029566841408030102308719351860662512209530323819472907507565446759715813029799620734234893659856533486658237338832534588199879732122951077829716986335967611959610132280465642459987729304618515496166164330917409057774475552170858406126905192016322135559337784073859585190416695023379835313804792627249386132090019500303455457844644808633196099190245648528795938813994375195231733628413388752909757698738977303732471854135622435642792382502160268303090569961109042361427712093497682653409789456701257019267914527253524044127600987300723498550387378044766654592715022965761306398124852090262282455779165012699991047153411863753604074862885908027708769440528172817099779082168161955385956756416327561653770170355754898159655064013420759706336764108527205229605216380177846110568316852640385687193491068976283753627428779428531436741369901893079292486836750260241812491884007591155221878604741205230691692167151239279461845875992885153517442068966635295795064694262366085777601791165319396453580289960901140651247854828088325756987359542421240736817586706637527051092954631489556228613519878561418923430432997004898108643764257263217837252395135656182694965734284869184229090938616683198007668724000506660193468041819366334518116559939798025792532981554316069417945669850024802863882337601831916176500001001872341486878807220080127831775014275989668357735689954305120836668430071592362334284702583720864226006214837820511364586479326956818594668256576074650515333036481638571504777021628347012262146418820546967866129368464729484247063124833789140712557087110335283591265750304929795852177661264273084514977590808789115865878899452626768252975539755011921251723582616131901988398518662782614305953294196684796932854264056708074101990969765821900896129167766188821977767865653528578918886176291628187198606509171290400630583352703156435246000118923917554207030234409403298374685168774613964358209352659408446180263451405105085029957318380839611374977311016693301237547818107274023997432127723729590742747444461348059532051765504605304039063488828721272126961452541419724942518968973821466891160542272667046416736509945175133857744096240868421263151191779813197716631339718410539996690951831365270542532043061609156605786438793241469360508652475376168325919413297462838835658816106567992079201907216301202116282435047581806306905047438818915183504482098115604822296789873456652941175380418956776093959707064178889266597853049698995676806143987809456380423917623383537618416028943093108494976890057519080647585342374355030189163084240517006193206272833701751884804986414202508786416122491876720621341159767613840401887459699189633611279702363370115424531777745781457049847025882425155015619710788321367129275178279068240009240637133733356954920341452712328816930142444955415844586947713993680316092684554644214730592407416986693455367893699067304276205537153126113168530835486875255302991335890456377018026896650847285123784480535604027012273868549085202712228663124069125603506536062634171479812409851893447525395772312885867537887762130508743961663879804770327671708303386286506608666653506124619441276641868890757024305006544680951994323734164015319143539893111771840811631420665835060661914356641575062170787518616554120106424366257449829082654093958122151797182409334077279009163487156675695018994736569005852252563834536990290462482688708345143569010190011768893637628321514201382070585439394001953578324739094271210413426008939447524457795340422576920313058503332106057844569785354051178816269075066410115107961784093073357310250680940484866387245128971708324220363773423321507454009906161889258707862224518110904793804241795256100608015123765096758597085916789421024049730756916602371362569583826795967301844409621429305423014130870451893290495225305341495264169689718649419637347872005625081044907395525493350063012936721897143794373028932267903816190466782032928086810171267389226459252870495092893668775885980476740113862491913242210559647148616216161988360501293680375885426151997465136913755361790613781335390141317031045788791275887718285331012034275335902292363024993309289923034709724518322545027532413118698273849581468240627847324726769944523895698806952866827818349854221984134529736987814582463781060791168114661624557971903074821216491353201717513404465114562162309221311530652576816184196478475547859420526257705443250032027748235138128036028441193214851173748356512547638629227299936804881328526283854850635132758205745556392171292424231116536087224600394994647314870216356928071537952476199264980144235123738656489994854916070804046636278003572409799451095973272660649051894605354975649233586280082390554301567240612850076089501502360904331910856500502702560764955572123529275209299942125248318280433368133995254724487164384505714249402698027292869137307611589308011430566568793975862544668224891000931360092637884000319811656415704574733708814870283841253329169601137599442717938691657004118709854762653459289335957483072398308438356176177814345706358498767691967563534176637813578665752558502700959877707296779566992099673812403287262427681476862102962334724117428417860371946169595806682804559154917628999594232948702614222316256652388081500592971614994427788113156731972211480332565417411229861544332340936659291545255447267694844759480032348986425289321649821931035952204278536407671605893108157690274164784304196515667403602062858959830822397337018794861184584396095806207992351324542054386806162287162027939981873103905464781254141319287865061673712835040573471759151764431329179005561742001865690016896317372489944553520844285587633113138261939439073276054112194179155436070187618660421409104196319711491142511242773883533425976499396189980756772219526257136498383297274355281919758896672044097079758484718591796452212532578003668989428758970089077285169687147553248694350335074389794166567249234050257670245606909479582438132647935457053060156627815142449854241416303603478839164679580533694250735094801672438583549793486303501512150420360956345641798956151073075932824585231987442194629654205831666975036802562292055811588643110189833831217418428844223716910130488679531622573985937318241170152700412178418915157261982177775334673890071073316213487933909717920090803784573747440521075469958026960385199315108132897522865339739449983092722388646434342410584233341179173707365039808083459098903856389377384479690883994420047905401602548055864976840417970398059735072860666288135746644462666563223016026103335051006365621109884043216220249755944756206937068483864583031696784525193348648622484681166284969187359483013513597537981971834281122731537379018743447743767501825771342429262942249307422877089409198170624996704573017923882042991024789795551822506297327432512152672751402676068781893597098831098975085296336796668478657025184784428138020207944982326519960829326548681201249792225577246251898617783500367487831976500410150784684400049901198341240119879064452421294354208026697813942407833450788842350695334118352035544798378922412998461989915511143830562674585875526300430177342104775184135718168393574029580136947606111603951096061908074463132436873258909492415950593028695347703941976144793712907134648766553774577953097654879440441771104338943539780871074903002403879247720212031510686239058469760290036009806750449088602141470682232499094828122166408774430803077269589046420811344886068082995751757640764224194259006474296256100600035225958123164431973567341159694979986769724124825332681222290600119095076350202528981141245837541597292134212051291932445977427572854075515487016708398712813970935241691317739733474145000059055190129067250785945569341880328658444895116689505495177855728239915797698967785207815156920117923441616335255453425006621672994392343476640703843293943883209695168563388075323907721144068407935949702878644562586012307214846986747965107922786918579461236346033478909093709045319670902480118540704710197231515148446034938470617445184863654373989970009705590196881834957394195605388889387182447059088359739856774725895215443063332157242340142965953088229528131183122991523380476392335106565984982138759744637722464759487156318777648517993220630593228500742642192471331891413175480892114879515167265029359785096160215897412910188707526637862844620597729996128161598177628229429262278665287825997070352231599687096590799812537829337523139667198865561032396440157840230467901152329098390934411405053699738956310745902050258428130616484061669570891824696784216179676602308219698150233573631894555439140460608614950369246904967292585030674958439427581948278836780256583400738689924569382296433511987048593814186581859921227987019654333802679629854742854616581460941384306982210960989064434846188946360740887647064335923349683236371266541588251868707372742288695843384614757407890926574602168589391516188046493475682473377676954340415994104354327373808215481155562787049701968649802847236254196476129059610402838458330563376034320995844238192640371509971621398173986576214808249625410008056777153753276575282515783267297794176621655002984824911176281603556809455383084844747292946365746178629417732477963672472062729377963443050570870014214096893267758718502438245685018663168985163253926481961758683747150068568370384498374448144523811631536265913495739529602178152875928494772237655330068431024655887794579193621377790801439360530815123718577417935242840791309711302899628499324057215548073269922366718813290700554425597787657892110187992092967288241579705849721553581693316683068431921670715928282157726142244331924088058793375880199064688770120971295435154110952378592912235360848768929176553897729285562033260886554180549974708099095746003113291326292650415604350807940875920116102230636193282064477119137237157710570303983362545264109955136085733941270919407007735007750112851683833439364598844674441026583892968390186015228941682837425885786542439456453057810469512708849675112380873120334882695717734072849579158780301989339827632610170412294786458894875500669495461399183880715767702047219086307145409089997171250563981317784640543097548969736551289185056408070930713595705681921152963701567952485518824294806531590316346378060955462438080371744851432772976670948705822213410462774321421815954410702013793859289963415857468426808754589252930067477600812562702276570099209984107296269295474459752797512174111899005012402479798818882400033752214626886927176819695519004461186362832527401834066277737194068893711655759457138367948877824922883697269872821959544627967619738478102005309472439433883195835636451641444087635681668111679409087857572711638657740377516201235789406512100053331458771562932513746757674396873500114797329802197544077957929081374454176217102958984084800332887939636742721096704465284447296954642450896654909265334057974373429899695632829065278177851399415857761441642530319497696207241418374646483703416308161732776292695069263232944477204367767132602832252649064844733210543975971870635758830044611541957739239685030992307449585855058034961521383625467796722776082849156851026007789098052529727685238437465195825021127149057587682853928717655320842598685753820011055903264533756814478598721441184163878605709234010861987181037764173192842637287878285314873791920701117452809480250065390036967478499149678955661681156235561462393795723771064353470385284233480502288513613145510951632546667860122034778307387021310609433744635364140383202057821030941372312210142076257012496678168187254519419843259700789577880786925138877814251095154941875248474501730546970212880914611359178198937615056676158040077413178195963369839910102546087061411708453380722039396014717262987852269216917919183790910003964317972923176384647622532093152478251545948232648115996255634953603129024037602555037584480403447774398863966441830234869034317915842188764993243606793181131332098622102833266755125808823154625996439072223417978673080238082170535600082242935626172780180127036471556735895075221230148450698133564804791631537688932480074766171347513770495263982566917186515465988524149174651020876937992340412419111553343286467720292702687144521663328703322136037502694377853361903792153199202368928410017550620971708446752980318529955097981468323852752372727129770789957920136044020820073045542538601749024335349411044748721367544834678047747082412560782920979783398652324318328535328380555158320928464844696348959141557430292150541998495066328370897325167419254315891644499962474583711838986813222983042778746175151080101457243568703703411663670649967074540054668466996962745679930601366773604370035090474214817003470735766705239896247167391770814984099786389838327902316038954322471158723636559882320775812438336515259364433010858289890544366048780106767085207862199368133795304229739679464534824751305217127693432235388835681136116729430321911219205608016879702106372098643579514918498655047903052048827639195505746565584035792681241780980399816510913000395139273293313621723653418020710450447404976352672776123507354534235978188873837082179049217867921008667955910465874556840747975471379450159971723478588634592658372568067906949948689609177687765765773480397938353771307779085032108141299566384166944246809311229694493455304005237574373870935774497137780330489642948681543497019080818794336629215154519297658633980649292983925801213332626679832302340121789712902190205186291098625940253401010342360775008218762213421631384089668519086162236568045524835584858828035691781862532983707610071710545311853326502168368036598496363734813052663286473693323887523195728045337430846963974614402472794712974903289828907813184946837077368175883186123500640273671180431748751413394495502978793069306292910809929313610565602464039196147166747833202930461940767335251010656969748630364259371412532595615604208760142482213593000964705807273443141938334642069187069615425550771647149455771856023297927069685474256905666289873195087993687076194510485823549191634055463624851560934980381722829448022896530884942341227209154545001296217569383295620668754275439541735772053976461020461411093398536175512072455884650518276296976580480149555198554132676651723323104485601490765893005266179893172299744842505045747951929917273881766964147339155629498857936485040485062262425353655107846550337630686492460829794037676635571716737938087934321502740916630764272473044715878315920698631830070971158888857667708345322188566432843540513107084449848523689197794891825092205627211439477633590877345977441861543103676603822627033086339921880718229792786429299551970389049207078488844741824689360959326763901927503544700460335797659713488085922602253118818849709158112937338296506352516454963241146310258843126292219632270037867031896473650260528858765507735224718693661741290893311739532942073688619852484621098891567341196980970019448337318271932712609132555101305138647614061320225361034264546009950431490118795830776267980262843863343589293681969627108009961932759835705687346632243314419163203317098046051797517561295648091373351157324738790227561231643994319846593550055870243918956857035003385896912705484749624109485624915717145888453822149767022280557938816781330663227280662847521520391146914916260918342063686090346676472656746036252570154352256984504768181593100744232447031353825845282022679228487699798475110129478155609242745898250348198918910143619495309598285400164393633242482954310277643683261384191679638500609632567699643042487284193206906206745182005138412466864560946555074265409625925141170085186465152210303536978605260192230576624375791401177514546125150561080427484063525937303306339936731215839952803495523375944084493010160112746980590722828352648891781409951870614464710137920136571120578527839386731041463152102194022425087246966666053200647035235089670805990547130763718868175562765144082100120525393251058744160970351577848522469668937604020494939400302440964133966835146007914219072882554911068109293091581095733936506397730031420120881627520794212520679138573923380841002402439132713159112774873641665166909925522886921912158364149844828357517377530912171022679882735597038994412510418509646486669359313702261951647845277133606525766649088799313652398143037018809441050283633722791650995510174294652023025646656473545220525948666879600339578922806607798035502811289948635121330449623119182001462728237271661238654111184675013976348211722414205160517264724216791624060434206177766601367815305235530446134458335706527919755097852064946055198445424652439869621304761281445982581831910543785935681404757033011523011885587190713398138125128493943757425479204357727740116587584391431081740596843810597951136576272635678531544467200275994185413233971973006810432868211132489940146769723929902943113768065887296234274861194533810598724258069678289953263162314148542627688965902006217915257924253874515486148102697500939998560968479261341860455652674051740052815687704256211670892240948973405377416761599588066104177304440353027391757768432907853903288876090964092293201790869802921647944341518022713635668133054074729118433855707929674495808539705105175583377295296440153068388660185334679747490213749025461081203825037702769552166901601527684756228464636580979843373613075028730165781719646816768670849822033656452789013204000050463356447540493263156457440000479860334845641487590718939691507746323266458476523952868672678521120127015600833361603737305427545635693388801008494267852167482636565580670970522626028317475332082539525717429589336587368636716833305643053880360465328633422706774022412624314076866472646582638841515164062710345577364643883820429578928818335970016302273153360006978107561449134051348940492667122788776693624286075102442351666859672566776577315677192909504834687131433251597904252996162101642778764401517018883291916395182217787819057103508734725580423605204093146645969706400211331990517331383936409979163286556153809673168681675298823906503122196512119064201306123864401535549170513231391985311248475809885060481203822473709604499347640214249228890788878020432534562903833173905033494505309952391199392941901952902136821991094276709477083959118011173444894002349925537020120389545474297883221152121778576493130331545670492847192282676125426770183392588182482825249532072145024576886868333405035922583248037578573467305322143387379899407547719921844252452437349024592137620304924997825692501516708955417979713125802733550458383712980062821827083255832310177903739705616210382095253060503936223809929161143868405545671388095333930603676145163522986676077940587805813072067968064163193397838840845202814833150653378123616239872059951474426478023668654264100710059156551140181338960939957512893913671704127738513075466963422382380511277522980625029181412010237478602317461204235302708798722071068206582432406202469980815980951408932159963653287044919884300368089731461677544419066971546571893199321204373063634703281876304117094428188918559336492169954279921168957412878572205099725145215028293318246176864738707457138201125800135248624739521721865904108841312419610225902398361901252409992141268715098935817971957250329685981924000456756829384603618101666632137178557811174130295378847975301357215849701591318537971761664966250503915304640056123157013476235975104184678922978565941911532978715384242183754810167049976920655223535267394117056884742592466786221802986905864816745996519176503543176005027393798839726891542432575019044923177119445135931336357273915262789963563240985506528668538754063334476136648734507854756609128594749926131399133291367341759039545136396435894500506446556500248616494208387080982573333566851714890414448046588519029380575861596964845906783155680624383037542969888933969069978662958648171790164660627372848298792641105084306078314815417945063660277834764266064044519255460434917560936041542880223463513236929314953207739651422456398199743129810961926009794582216398864249670319212396866206942349480299071718429749019634151335491539671642003364187808462527157662162947482013115172947399524392076678829283469653882307133476129163538963584423949778582457365824850136364605303596161840881931421737483416825037651669105389061571845717029513674289099477273385915096405557839489251398880582076513838679141912814476372907452106995114440773541040731935674878235990636250583989540093811500072552544393868563702647210727611598439408458311114832072004603163871351328044999393170952467820843041174677882439738158850856837709119570792475586736676066516321526422531032027753749852748161999914163663021003458054591052325365943398524264640070716543750174616379749212215951753912486962893400149214853055593458325792801709822185088140531992810740265600202486908281620200794617776316275334308336224050146692238505148860305673600900845991499283292386913740635118119622397559879003143501212330189991829214019049732110406956107836922729109596392423682296295026161550448363833853526640649862201076655221442802812443974267470739110005624119100992457879695593877567977288544180773832215569499093860376130160371173002809998840316399793474228541556581058670767166974952444151975359472637087113389008317034894925406305272524440524108061713080168378492031618598569504408443817766392950130742647331990020492074320092118447632292629934947626589478966731422774171810056405680707423665521995135606210904750627510897148347112131324247404815581513521324540149921147139833067210722467923911511318251820060833896382987175487014451174198367195514115431531087399052638779607840134934042777076543999048698818139939796075601073289769537833782125133562698765036436310777169015462537204791563796875736245456416941076664483618680651614831833348541888284959499099501869939759569751134957237357588306660804171462127755457956747060307791460170541826621752768974010128815033344418376962588980191500774834976559812983488732644035165326134614192293191497917779934267472129409602897514511780657707809244543464121949213819124923933410067312395790216652615673879846860301927899897746288879911640078259978710622847749175017920450474741574049576071877909888888567737259058896959266899777148508459467721556819843446981215144185216330865443211538847730770141829988045749149784220268725042851967382801995557996565667649672765505984594467280862843041482111041473076335760973901576323822815317418638073251123719861671029410308767649550772489445832359561306439045232776622650696880060597299104939749709034205370963069063782607701002666427037881921057542550191562916273081870705933219800038235685267949744469619664871983422495508279825372530366542315039178645105580053831082523288231543531981704795977938854454808118349189233894544586078199598846429544652044712322583923778808193413150722202290054545504949741528397037677890727154883648855562670229452941211543062417422947462865976952095482332455925818454431364438852133035619009039052918789234677661292343568464948791712613081607156470814140795222740280781988742608949512524246715308259687706470324020446802700099167249457201021433844419015813127481203203670863405748933413300605985353094213143583904421160853148218785643887976559358632798842624540582247342577185697612530402102404749538103303632307386683882777736624218799787746507318393525826324542570914088608991898368303110888558495146303008602543411112337651868663153678001796973734717785649250585949424125787857095095095414257754514797052093326663054322144267379677081315945689269972566885025717732637998474566336324819573893848753103055516142773538030569077060701067172296621047186890248501500062678746515402470514228516103034338291747358400293218033290960679701203092210646314147690752524772784893425425591198285864916761824059274596945478873444211779646487145166653661062403976240694429223626699419781326461443890410128943638908868455822075873309260564606409045682256077654216434887450174452434149330099466676435761597979153388668945951230420450100402573889780981942895136415982816893732342379440688086903003567977114177969078603305209463885826736812659751179192931610196578482718954954299799960325569555058834995557305083225900396052599072115671740962755121946452357611300185643151696602403969103678775287771794084849584733753159660976139064613624409210201407508503372736655923118360742167726496844487091671917351268843840496489799039360934348199901847832802168434386808091478877512466551034735214585316584235445089850819026478755172737068766759430456609096120783747774465328659038203517528740477206063289196152440634322868753312599808306006666937355969191919679574388931074620295362371256667335195148916394503772438252159034751205218716535588494148962146923858368096987808400522326301174443470646230593154129210286420494769635072302676109596534540733436552359907817054782010161984381066904839839539169018744947723545205841650704878828797842540777237643036724583436965043948680587587704851539899979180026073987594674968940384822667259999967096797032247714996322310959387498118435718548770638964686640072103385555442658644662210780116680713417369856533059050702465104796989017663047818146114308941282229742232402541994771994933975933446738828496224823298148969040820116694759720508755368682392533797187816017725688769130540357055617622132767582451615450102709225829981879335419773008019386123356020832624990736554918294501187227423791058032890083072320999336371026326048692609936169415559755600222081200561802023031683001373717880882202724624135010374569046829328225376862410080341002079554226662209414470976449703150006756761054137896266910316281609428452688228470131902982670011350674682673128356895786791879680858640339310643157851681234539854426940725730251115021571989491157494446118686953231531288293250076178519583011430221348477739737273365997068862613254040941240606159185316733563881446586435480973912551955059466273374341226247463167387558529758689652576835915027640256250647223820690936677184150618603547525672216496985702251337147864813853685108122701767118410655307194843258076692171073634344352093362921536878465614157364763751862870395148431309491220214805223137161984996436763767470487626483745397201560688750603572043818758841513704613142065734941269006826041402600998292471759638999373518920901976433163856114878347575710149243929957564111941901777288768840078270366805683865468185919190632314542041714639352694669191792689087547476696120875584510190685848578010311970016680642206279420650406002573703575712168776797954178059957300353291060414843589509182709634394823119149905560884597517807755658618052972898082590450920995050700885217128409552347418619677634073412568240233332860693818619521773819262511461804159253009792165861603560089372972310434695581928275288570614669933393937630882209965219699723272896363968633093088136611131909325621602151094504253769724837325365331523297112895137755344228703472109752387840171720459770213113304867447498057626948101119740231989668976180893801936280886707402659080952525217462535921322995985655778843290863720874346641357535285987791671551371873398830517265387142158415656578155587248740588936302324823585233746929276823434908902625013606600390306483063727794223895523679228720097756791494461872804745557716768102577662788687102142508763908930534212676572940145605884456390706297434323788838883649976726421112940104481063492327207254397912793286442925538504933456139446039976661990259042276316453656501380341935824733249864541472803884466252821723560877315276216827510845121973511406458678940678183135685234843000104340888482944601506847846451417785701092980726357103088984094688029813350571685341836159824621246740819585614374172781767108185067726994565608346293639621407530496534789053113756012190857144757212833222007557876295642914499075661507146885852234187256956701297321995371038974814580122665261461972038505583372346693612858897960794491754462778348879464099281841468855604440984015502299234992673184626882044550286933462223129381034028553577833702189716510038664414386714442767094241722963899678013272526564212608748050982360238344826239942871457417691242337153780451244317585017122133598468490981782756357493190850398390871666277748717546895659640051733800935540287979975312581780743382995690144571472101781235815403604984358769097132265017846505000385140174423998143610712060858369697529860367200093700806751019204633362930721212208368007062603995129555733186706870322113086290270176653148219803336432240836088477216347449422462662803279800178983254805646985587364868288431085376397910687649417304023369553005767126537672658701298290467472992917085940291301430442318089346678124283227300802398465452497766335675536467366207383283112158869634014458051543997117590515207345980312560574488207504952573897925243075498594912760315300112490322756708960489398749509415165292822105397025396315111301213525161189677599821701033805189424078639352613847009485108273526248271684730300943380682417587711229188466409154473332282441138089458018678953616014502141213724902293077327075344587370653802474403044188827743487594086093123705524776229808036950665879465283707043080170308324725813751827841288424654566336539973686907622106542320601548652861242217833289659935088499420605862354674125675095069133070604718082647447866512920446287685919711178176325749484951545532556375613152707627795666089607243613232606484516845430765363822620510089362715423261525106394753387996408582405079241484770011625030171530533161940986896627715605320399736740211984943334322132662723815269468663649970218286692724448406682080439924269539401399291017053537216138512904416188789230506622046431950338079339856312810184336697540181861916876587167260075393248276496638977097969341319385070755588026428866002081176604945739575586279996769774699412691989899990234884583762112877806820707093829746983402880569289589372600317806193157765896480253575294641747721998082492693572573423708642515482782698373100019508886594651728529944404505070831369729529522951080933014983540191583200311669292655161681551562183401285422900849793948204069705263907341744177935396808334984158706631005455898499599382244176695821505319738985121447619584812745015636452170538999017220070339030474065013382638561932138927941247999486243342400684424868754606779738236092956442668854584042177097852921925774231111967853962490370190557450037581867254781982740948341397712039302747560408098428328803708431728875776500588203083185441188083808597133214487220612971470741870405943272227657220840672923897054355214511672679379031437648270230067426078471831823361838759342539561053830561371360565940612870953840141588442968439710692214230880515462508917817293785254479702192192362054554904803451228833617519302950904974023431363740857099260061295676269218348917209589242801462906535719889133221622360607825816775187666920820301377797520616978884672503302336711632209888162931751495486277227607867459066831124007927432627093371706060464723446802629473451013869286839492451596230757456127104440861034491645511954770587995003515702975488524856824453600784288751227841121811965593926166317482900850620696105530952731692589860384063401069064707927856766947097543164395702388921041333935029875235121564936971192996462026810745565389895187050771356852480394828388910887811011625736777472322011853123262888490266805271560020685407040317974395806106661226473520405664783547133553720838354805704317610007914583139595316735750143040439805491047772522826184046532389078620666245463446313339351937301964387730919714861923507489118979121475660796867468306501157340246823086291358279956299750589979656591051417760833423435287559773015954920568210775998714655807611918462886740108585747576861221362384332513778230224070161724133982043204795824270093080567020634257349781311837765409742492669110102185602790390683697680514890768445115060105694424943226678946245473634704428159874553023970616262060235176780430680269221799077666668577354672946470134454166669800084429934160637409874070255716092362750810958304112390712135826469096927034588315692846668606065213570124893553908527875150088829552469698260215408780877639792090349083688398646975882850290496607956433419451456301590132930854675725957204962112924469416167579431405925520108322182974081386592068368257177576500856839685631636916756590073675511410268415840789859562333485906252149959982381496284676924204699599469077749238660420589957059837233674563253419938189933938592625070104998070077307775609912383221007263242023585714328210387844754432277372131642209807084020437554955181979967176538296319524613615418241341459970117351257662669349959358675991486961452129525072245297255818800485502321864589956808392050899983088629004506653107379794814886857520371771565780524188624403353484296505277283514570875140958692026969041669372535341506762441425890892406131020748262823922022286414283301389693408006997053469821970222054834340033917023823681845763898382539537900571811935775475778527926525837205265445310036251727787650511754989366552244206829513630699620799138855463807738321184695252609875113241252300111546002941377251935380556903418909454184194866793215800434481816382454811998604023360681756121628687732393642285346551542609954074522921098991176470035383092539524733537189638409869765379615526961231511303502016042412349097576345394345993381327120638909923697178738671017668011995796027268637602560500483893478726868681812257490680338090920611163392447204807088239019710493042499011867574735888041667316768119322844738620373854914710760171093335722755904929248887972892875280058337676564278025168057831665752728712579187030349547435197959011100772340615801244570055700095228177628894042305731085505028142065714662044383469712063953174978659286910977016095995270202965059708296379678372407647626350986361237237695671350856145984340390789033541797191089872763188112595477238641478860845144133431590576266298538397112093109240362245840267471389276803351982151140668660922666821460063119229740684084880941231966131377550234714612614496169591168367872792672505566532371427316461702948577093444110076026421636258003391834952250003811625970686153898717616053393759159797350578364004243371719293981213979610685931165898659614462041142213896019545787388857082560178868856260212376723348449212445074031970029549157719421766866811228453496332979305934264358832915340401285740232550456964704578164296628698198347458513451069789586136730069355501641435805706903053019328240008845305568367428781834986721277702464019705972227170724994443394392493381034646134212110147682816209284627701013953131414167658190030032425848978101761172346155363802619439361537975973395323994331646317126672756718031012121068899563600096568954671985362284532524167411448751203132474555306181025124898318991824736271222426251378294008961592127836593995331508189624871380858170188839087439135984824195013242693672029175241768904127973867901858696719418276945174848675586006709073257044410778573762882403258989165955706936120884837596447782447717608135099940223008560830611407755756527894578037341032732025526309538551605623126034437958716096882316937007417745785776895151455182525880786008444810886091747614758621798758176297815178689062261192601275677586831539042377084685091620501957137535003777361939571523452831088342277668262821436706597404783087081317603118747308213499407609174377678139544999334705918170273638058784951909771832148308576723964497897137868473459503350019073908372109532945445699718701940116550084478092975900032456953490408610666113409486408571444169277113535965302611912173877489281488684095646586463741640864119587906771421631198240303873374914396320289254209379319738565928895867987467304794353500426779592386606188863095154200913619064736169225800919410667077957592579172691879508190471119019384389648690235870667176598799629654544971266272809149612492821574196539677887232861472545509240329252298890974664364629942015441100354217187970364775474831826078366502521975638238592997686751759078462828111981036405529413383764615503740990419284502635746205859502649062229101436693555390937535572095895972584647436103446326287767169988533536272719287624459014936840079391837339199242429077010128048337752417003386655696730187691305384172613979548846482218394821439581918744371708260482236033410080787311262217133230291253131533260034757426425366156459161844501929906315315232666120930807370258074163111256164531155239689139082552296433424102307427267487799620650746106745360341540055779772513824767757548202167158924143435973065937160566608402534978998283659515571718281045310734256173617964172707783258229666420811309474199057423186620170894650095514724240017081454510538262954406113514451334180244530356660845415700542729423966539216823642158085925828252542599047881011261924662934290982922220954204369767934315223261289407979093232208106860015530805332914324982531952234957172068507411209994206746158225188253632350029856059164140840216095039934423289871664049939324824607302290917460335364355248659632981239637225683358432979450149621491078571368426642126855602413236819626793053429350197880598885495669403840246991953707899551368975683172947432411989922139493840829097990207187362021277121365056501288286864597627880827861562726560408625312972658643794090961985386557049026705237658529671142863968926608764144593281958387626282685903428964011008964495273511004301095257155365088187520910707255274986685744931464115576879885591156772380259600934346976801378501095681144446572881688877080844521817465058127545066768849681219298535948075288350740339619520364272926188507630106848611577724922256156386965212708387813338293086048570311695443473533992339639275030488919264191506917743911609888303476505378229549276526182234594455873200012813522904034396324504879802974852721138365751752145361771520607911866150402504099889368349361834777433037990857832625945170601642434884130778683991144078912598434347298394616163973987032430339091419942587775245438337262296405452113216856772109823396514115482295875241923727063193712197800023236705701374966688068047056647941852051254269259776469902311050113757660462454523875941604712916723699850909648978995081137235398590301039308778664340659623360130159029593564590095785918903969794331308617940007540066025469436095168704378752519198286831329560512136360127280592969520201643954234911211510030609300242379594140182950536952954809402356050394308475635289508585964394907049570802510043948089725065093891870341040449907370414682240919750815847986542330789771115850479541081014560283693574688346833785143364222976493439954234317760623724417192598203336134385399563067361883453428706310295412628425172442543492500998779357342543580970648457460753706238716793980617820897455311004324901701248886754824165437208567259789365349818896219626044790448840739726483479341338857513545947639018946825168787509682655814463518630113302676932421628176600692980538385891628391100081979637757894439215262303735789186256750732071148007604557642053155192793522389991345651165560721993353448609240801247688961313362232167489621209714627795363840325653676313603794948861913834657183926454834693736113134018181320908066764373372428466529335970307877051440576358172189855441026926237998435850700084757722932410126746304343146618374590489730626701429717456851619342944509648511164906683026707943631619945292879693872604943793284717208950678490293959467389765459025762540744062170186756207126432048685558941010551487847686597830274020555017434846872036222877943592103146953809919938223846024648456618726430352648953850966786323603372654955167474622111865990495990031878155741399634829690802187184624585129248796925082881244764661030106225609214960529436034329307104454260724414738082601917595680074655717706753072051192960975400096944486575793717488770717237476061058211602685302988970185109314693234272548916407196967915223142802406868330921165105888388432861335499901117088386122091597068289947623972687967959393165268170991745871301159104551768960634108533810455449550233014571317973149573260266850251222956953116738572482170092918786019007666423570190797795282344606954634924139957165761353126183629646962310663989953663758565318157602146578468922880356816175496271859934790980006237611018243545609383099101689955148119910899980183861665224061925699784839049329338273843116717398968794348425008321911368877821938568927294593432305765206055271873653384246069307219502326148866904706896996850005434194050543523382923332167807446053792564486019656438805582075932493473763795391526839394015534802623056468079168390399235966362882916208602420618351484491597726885916891701312634204658291174653748586233950971903085131149246219504046736509243732763946985438196643104326053769634430680834200926588086826172083618198050531347543503615553074084946591820901509652782738873368616203281261920115126269132815516148583266185608110072070853256965595557225877294403392611150928301616462170068859557046781706041482303355236259983735788530224702514877071716752136183142257657276026442792683227363838713491528170657301060204276588286890283579971798957118752312427626356965849555704276393177141250540091766643749721262671971257970405496231887510544287590883651199166087242085059568282999957021151169126346001811822460515589368501881311313089233313654993460337331095289603789411687222107108542978433949525015457363033328529927568690751627164560012370816863547215959884895371098916478924811815655781683393446255942376054109032430920258089154098268910458098201008495380050639871847554696512197677839169388448712249210307801509928705024568093639512325619255556651453532873601488468795459481639443650020472850575787898139739878891916539752700995274880520999179794009651404289285046540762065906427696001925447040544419988712137630608199413592489143885074097218999998588819569479563079152666351174935609779765441215428465336117138274852648318871284862433167873492127939595600029387402950197475017600007177730810789922158365318066527981633497304224578252376920570163208927988541820271169301831159889961544424514869627824100842533321481011875467779282848100821068150196061481264541509473855153973700574469100222644726901688982922381277971275927854374798128503891809248073654863751989783811983980592303355862281902899162281866355722470608786480881034304342321460734689944656396463943282118162649161502633884823046110719505545302071141839344295562343153957972382939871900965131039599965785091404568788306160093175335548808357260273073179110468417991398056542240212806357094528072387521943208748454320617271728632423732218528042399106224208569960548016678194815629400187277991379959145308152854912940194027127992376862312142532413680676037105967238192976120236509054693175955323942712009034015947841633534192042925952673508726023056757075396810141456514753176617254895843106307600267716172061345912428188037719801213374283620297658936140475387497876066971117398775749120922647946782322288479043552555102702919200903567380334129067273113600889042279123179820565689434925145180662707351450749306380829726427156248007962654022559215415835222494084751806064673664904006460168729406930688845598690229008862179644641750797678593459112465049197881738440067977635917011365451530628307707471766639666712888296800313242103146194419377199943543982709535435379703467661886480878947909055141585051939133095375307595524226513365955553412909969227750665842021829689276985882786968957174085819086332704089550526813851939283579630591027203290485057779830402725651082958421843317698321956277792029042834853321885988189849787205764676180709508651478459769684712993281941021264352823293001599694387133474693766543554781965220593009841546604405447861307492391229689475100143987270744601028011146058543478320682091852025128521919742375012046737799831176213698238456599646828236008098543300724701988856471933902737779573448699909135448062377611088593245490935415250265015567230697400525602389619877698036961992093023341754106460702619869019836044475709728204244505763627797550784629883155189854366612525431691669763382060815866354477655848226477742480114129227499509592252650677788760615160412619499678628775030158427215220841038010430757752076996036315846047860766448127430244706862453338791664890855595268939208824265787315831812248142227652841041061835501033847988793234645789674096752760777551567154584670728333121831957779325907372902694424507484038522361557097693664630543913174056092176622608654016090924153535062681822460017961924826768919828462658385591041610521276001750459986114880747824053962522742600225216931738605896988926611128670785421233963407996085938243561924328771044246561037309996988962173358219498318795352289812208954293091988073518940092647862245341986323769904982171398071805385265707804559308195663796395201063515582835335044642986084973888837165414500404138893337730898282042279433639054957292104616484431410810866750356511578165638928576984436160117344567894300175885256355527459841880625413814226443339444553917934417237996520232543455567092537004296062316165492131689829775263902232043478673110130888874519296274073011650352583250198746085115724110373927450100510224417695897319465863056558129697890280230329939695994930552113158402367463557736653957292873242817062011055783306237101687492011136997647299725951046294213363953655066524315771653435890093761691823288754486511058232683243081343329556654309838027475671195643010992150948997208213038107847448501771883473232905378837674939942067077410651229167441670724437196319839602634613354600356473286909688609997899692516565722821738320855594072386136892819587037317312057638080151230877974208629811384989752037823173596545432027750808808446597969985208832951205809595619968709550600775016894036808779491108234454151213924966634590883860792936524963859382475953254127929185940002736456423847716491477288844658492148252845193619140112524095328375516255955077365937737897053012088603262424471624811474397144418372751584704601766806087503778420375091381287021546833771348634085600990156529275020740574245731753068507398189758484737983308591485734821097646143956546188402853759615424285016920089056217706647760493927508592886995959743887854555330212405259949671871118326381136983524692154856509142268224055346884145204178375695364898229903943661343942887745094933786254490423255792076144134903017257068848312890994430953230903837466550088269193074441585400407257133669146321199554431081609405134255471856308884161635657625614251897292745800248894060961555917721313753595033037064618085477466618437344538386485464343390719935987426223483725402148953985919606457251063787292061420876557670264250883621119220167194512360648210572683993407738773280660778201321680400064197624760881735827409626643339173590418664659487141831611629076788223666539152988033259316261505694054518933403910397955597058798839161472807315118343131435765328023907506766372066953768114958545902784370161627830921454011567749045597504544888085956681182875794479449598352697506472896805808156523917797541466447553520736693346828156811054256410830560870454779096939386264068020788359256454213588714900649555174528826061120038876854468823856790965636997132588825443097012906248995941688374067908071535575340278242681305953962584276095500769844777316698622766855732162122975114901632512089199683903571245527517762552739991374436962779648476686242454354876850174009064747767231954302353121930738283972276765366716714074162839190425371308671343042473471827631068620842262892068535706621703013926584323949929603843151140795318054066923507359161011320256169068773420671704092881502742265728138580248875419930968140623017645238260142757533964669132425857205087379054295105695770031618942018316628284244464657364772171507394028484024696264948733500612627409904678260561401686578193745982655842459249063855853280575821520418559369200422660938130858218347330699925970340396401195233287002701617913513793107150784382649333695884690188362502461179359296312612161928465333880388715163219950221486258459627009692177150668561704103335460272708759933539150197761740649561154547064453568893375126883546326784966338680558211092648140318722253210780005060275634878497177850361957013822485145034953536724946574234509538659634493235215191180926531184156095239678659082450330548766852262162700404929117982851541104773991836692518261920735327231278334699297000575938277575249517385960456268394447093448029041636585275240718475102927249528891772015812713527987015215083258970463445115437165393446370302514697376819328554083542572477323444686408356837391602560822226869280144838260253224809058184880338223895875302584071512039772604445662182809543549105955677667045180062675365382430637633768380175824762751811785606674264639621550574263812792045195493723198847943087137709592240492131990288230382404779067272640578165961585978290019957416034438946765129864354922712311208579676047885328038703502859507194692813918359894839791074977667706573661166390264763943825893932457126927285382186743783686010855038313699882262797623840348310883652152512941396203445082604676675144953219503250183465347736890395982721423445730730542832545100308174114868734356317240903956444794413085726053867938880529473257318102676782043956511446630365890908669039475551668775228774557062931700718082091891293632093779358544508821850993956347855410130778106168056161525527612209570253277655692964433956588351379357955845170683788344084991481675600559135679635568906663582607971964060114102577625455677824643674472198213735630105962575305155258507550905120005908559590098541604528595963299003746548549066441464831079178173233991703810459165537760281128792128787814383266628051881832104977315304890218588075799196536410672072132220589590157439001192419054808486168761432511076858139479879108720846882230886659474636632943712189475291650690773725117494875063288074830058875053791218918516764521546878234551178553287306280503185830728300040480637094081369320905225455526012298750707092456410306853690100018786806126621914788291372838071744589600849236885519136715520406649232322269613151643550030074296324831286734744152391447871205146504802354982869079026581323672543129587448111916911080796351093025262065187108498373431439885441074316633044414607956172408014577402918008954169359048687104157184379564871445444779499579100210121525300390513523800151999887491522566073293623614121723620897818234011100968897946052381839505735904985688976408302188113399927551713063157714514443307790847131222717182534382041972485615597649422808528614454666784452291772330239203179114215595850236188714936881452683362279106915571302552489924459424011125257898992852456303534754577705239656949427501778660872028947586982557282418357362613002254670615251392834225930224520341805730493150156136154654222996622456189464775210162123974235315108195084156586720236281827187662111182331244145746662897634336996992337496217808105816324455471881385872989862093573632501454519149757171669098153059257608427783716175073944597773179533127821566514671080165247885073379448701184871311813547720634685536499585078464934380080942794388752550587798161413369767884050469214217075393500659541076319793946472081832734307757306945665732957198251179171509913702898090300235644529167692764413797864457830811866185972506771802317763617316347039079455086000188464301305709224774917999802485839326407179450851327663064894984625621683606997098908138496667294639547589948618547516547850210283619704106110822312950619634973378701944100172256200113646868270362740436495064651277756260228244511225507447791213828226503431250415126399396892825480330781762807174833813748409090508611908507024904036261449334033652170080608768886565055248980763836834030048795728092864908061402693952475112157785332034032570139246282077999488551060000035572978513503175987115116525746698586840180522129877088155097006966677527392216589766193047741869741779314645811819247638837345861761897416034919532043453130915076564321312856550684689706912305424204792624090056718205528664564807007896238247207553233584135155094626561928295620705264831363271441875958473194592291608247705047133771702268389158101867813670911376616879526554812557438835492816716923125054582277634457108893487892969814285154010314411254776575378321850362081109329235489144728475590080886797408836552098430401476226529273727389957675449165329482801238802475678837117061458021104002252604690379902434047885312627853942624787853965800043735319173069236279496055564719993942610772971861201268053386140753730295513432700211102558107762002609240813203391136931356113964977089728238439072420839001496658788798093310750457823692538103027600352529555389836195297155813263590518574043109351574373729010421097821508197698362226572877239921069937335052045176873239240173943696662344357305974186742236895961287818577085640354037502004477161894257018139399245924967577754741944069468144400587069744280465094188130875687017519792608685870905354243442777929137663526125501783939273171496506934576505056260129149645220946117230045252496123454559772609955201838651067044616260540463599096882117136381548261282314349879208641700687904376612781731262020829063446161307197335077086035250792128377893703542180562470026401987035861855899105666830790100888531255649105448677663213729948977663388659382162294695474157336030257333783185462475477386224580371930906374469391675112979285521713773650049813253997407304968981275083916242477777207887012095563699755841124398255729257757420276748340629263678480189667418667495449306947332900953522063680284450365279340707996960108186101614529714850989178722604983442824323753153867557214306884882215703191398149327677246616826255059085733277209698645971160101439701553577220290149173637044835539014574672010382829281530708227706975353042513389066974128272288760335333989261334459114384669242097998832895999059068023604032147887928739782945371318895519659009974506233149691156613408094866952187791842328222696332478935929961690601007058996034287659135861708196855518278530663828155762255553950625761299726465958386395298435935128816093217861713957361267865230727699025863296020979887537081755437794232703870985390057947898207208507894803752757642747835909145834112519857212960318654917340848066129925664665903008552190314138541075316773555698912927605367650463519807081145902158807275402952184164885564404892132382851034810013650309291684472891984506569161796556269734891791198295544305493249068294509077049536459225539949602922309909643247862117316939924283868148647111962584377232073554452223905568292503315125084068181434162003453793410897517191529801168841996103109505201638355517572504766477383809936321964762895196436128326711486744467374642525681564804011923389148518267225057571140145499037030465981474947622584525003834403818146108638640120846234823391279071912969585312925808958312790893189201062598949218663548567822821684492031192879550781709590825161256673485811119712143804604707373271062169880501061694432366964504127715288067851459478581730025550279848352144595649339708218198136745219950807054366889100819434535996479361421328414387366834534477987790469637185774644452891072407982772508451392919920982850970150869059440134645474780885900598418485269975164858270340221787763893800804134642978509701272170959033044563669715380437408626763603836274323021077853389736944778616630024996196106193298935821489667986103578455460482582030926586391102356405649838010976251036616098492898683368431591120145685691265883531944432660385048265179061266948296036465284038109772337406421257585406479142767877466492766697826978938482359167622534277962328175697205143867855400085349515210165434818133271904249412213358691259587277145223431884587927812062209699169490608472238196254161569354186030296309903870508915426689964905466395335312552640202504935941337396866956578387523364719254877984881696404965842878953693001822686948648511862322913404170879826351100865704607287067891465185150059663006346999405960193424476517168706823801197108938575732208029853647149411073700573902406861488073783746857085549828703496157453579522802434050538323838400416028992089718754874925469327935471659945327400448279567509288983938037401725420144202866146942789286608867301368966925404124047411489360191527978431064715575527794633333487798292909693565425815616432549160098974033333924156176717209345140564495499319106656255024088279079375014532671828284664969769120308382719130110763993697693712949523695318109218886965471555996829711331713146727169083175646422992591009049522475069902092059477707978181841584544724429976602399041189057613422385244701868713598055671420295155241046521200466127179818521928689152257254231367027984360639654245488442962908554956831200286119035682133556109570138617473249436276080697570680720323545888376383468972185381237741488094698138994382818234278300397871300571218327734766748414850949050699389359854284343829710105605038670052111664618585382211792608788310295754478166991357498500120278807025022406085337101061090561918269537755029087738935482690871733666502063303243207759135519843360601245652056915279953550489505634671826147131266702030047419969052824220976812193546161904900734465365559500385544348141297878569083070939775577876867562244924172066399189052864133195409002113115888349535037030917709723891863981917829296719134374107174419403409843907996405563769518340403674206119265834971997716704726206534054812603470563507429558957727332937969738366392611477716573560376589141006577292767068174351692150885036589979399267632194386296428882580444904014131592780608615173458305387741568662275412019354387954204105912708407593893603627053533974106243716849013293544234360184916975610602016156567209085418119873688705891063935728838270234173125790126469296636691281564378354414311021584452313566199380051171662984105992869193764142183880353701250613537394278790514072521533433360637563577078251324079400633184677765489476762243970429604912623184654032219192884295443976638177440473573634164015756636153605868651795965881890984612333789693662215091161308577832193540712228902777020616326988840723586602930869207800891478650953382114750811480552397906981437938102737163714009954462200939072452880021883585186467716551755394080250242194439968248411759373631442556139693240258551118090095786948839827475558152476035945695534547695603171050021048253156108980135407983642977654604498851571829346025106158551846380830262089894295756518984965607917292697295694657343266062098136206423635337411508307969861079004001150225140040394910763431832646244022045109489351839067994740113776071485406951508279608171427943735992432475700948753160101302298289499176446468239338421194136334026634177772513374521296178792518664580850894070057000916309324035992497854429228168946747953058179986364025278691202888098341414692478748033676509469219746612810954095788713773446886629949108084541771249209045063011809824700777385817740209530246857336228545496311270168664644940018622031910735357256093537295338788338457859285856507610847507799022997954996246379240950891812763321558116089722908725184676896499090189016810998445747626542983966662333813396355550912301129927423341718315574254614701247395427249563770327251720599965348221777986118166380706959252494895281358788958652480326600165783759461671102558070656485321780947627830953645403714734983315636168244667796747212042448015408320952121988639259533468636849110442644748279675750611669591080041607610505919499356426235086171348521844143987111942805159478999496939438639876791417541646250376037421131864664853243698462275097128977480671683067637137273793475491802825650198387718082691598040423787643382399540368950017079830980363648538021337299234617562849644595130217213441978116868894914145374848042879913486092201705769206102226197474045325193759575255180627153240787624571518897468663926153029661078018631620454271939016190260842009894145589526791579468832780858547344398660969721484346140119620633359267169001605213288036376805975764973437502991810311230578835125797179709385627768828109331660897892019059482714956459553467429097424339226557442340991471165527168170905619881367041151041391954099177139705991214588455012032480946401787716481589994025488466102549022144733479577221942005582999186430041407829635354933283195803800909827147161552176343416672915785119866741279903385173783565440309712685400735161378011654835661248311199234431319627456282039037677628687512835475032438618189272637437849403454523176706627115179032789874085339429259547619438479326841116167154160286842050574464574053737520244722490038839924217255668293245156606878680146937362844177421017490188689295019330013465873756549441815870567965236994336509120766257976943949179807549724091776613394982544669699963811298773790273734605063001211717811905196168829404525963350894117495501815741480370783428717659295958446888503732877495608716779870445195175728313063741094662802329211786841599429857193380654669124625805494960730727458719394433070555969053709445105516792072143766117994665629347500766087852058508252035422306839688037602995604283695645601401697793975743327172022091871226458528706522664374404640671922522935228316061815566417636183633962498313922080033775419565683000674042176380620640003084867904584629369436098255593241494769417611807219991853437024298642422134839010207465204631191955773433423627165019765016242838931537811554394440055414617461328929687952600951900248900639934436606257771297604910252469070683088543301728189903916113643277083640482134269383724509674951668540039095533503950434207423134860828802159099807937944234375407680432025762999183422869213320244627072898581658202801386387674368463572423398789533204274757460178620125674343903988991320509082884766392495006602844665688608559855617856255165760819494905220039436315123611157366330171553015949824521494848890685386669402400598817960360556963017574322524480123533357043122620705448684569321146163789701409182377857738696393346177803526403790094101981429035730682156573393503737627739397121653842134208077525378909710267129881485172793898627468143242147017181619992455052499248179870428810805910970884889186595893870036073875599739821996042334897547556976317862370963697651061924544765945262106726890405234665225768670196543385262107488242095658942027507964159640587270183257697510991033007638422535074745972384184881860233847604411067857399819511582819067153519401762856675760546315327392793664851651145842102744158191522449099337258606550120813792732634027759368355630426442883016998474494725956350165180936889008050600259065216834850656055304570221192784997423414339651432340652477443762802340841409164620948985210513269604964828745264561903195716987204080940560057201186609474153823161245969547493667618645938648706711384023089018756624377484685739680746959069751665857484692671038159339910623132052975129100296917895581425498690936837551338262388282699669854142033785404660543574237104929020614423772364985138691238564300617699092739366622054508628420445367320923112811453957305105331164321443341669578995150735262932823646201326626081374727770048548833747195942887092608134102743290363379461663011698430246425251045849652187028141736395125496146333007621415558566235912540627095654407464436218052912802009099855287906455887073559597485258408901288542247117280831249754441801727514338006449886983431553658029994373234288473680108965369048275505395642311267708049264402924254277600050387199605171917708614101095643855659206420783166918734651871158696685771355620711283345217321720021325442729169104749315147411233419061055220909597987656769753890683374350980012480288135323233686566275750199239342094804365567283743953014363431433150495822818887495367932630929833525370216652182399714202270010746332691266998533685301996392255686541400319387231373729138371305399449885170333562651624559680168752852867887733636997679569787331328065583875093202104977496553306082293599713169282328690865022777371867682106248364164329117505609755505596301060920956312646403931491676320964265909097398454710874228875808954543178031779605865769374797410121869952701592661265083186742415222871379262382294603689314615392189314053001459949100203541722128718408540522015495456119648318846909442829329345163706883462203647893834710190837479086286153094562135335135948358103247797438551584497848518685844919457149660588501668644394034583894553931759312834866748247570874705396098673863591347602445433209923307184375056617772729118619342856528004088699081550386549501786178051355798179174119022301802808433756410522045910898871015448655656624045060041440827722124747137122418736300649130925172467092076686879748445191038260456410845509786259160719584484857253451157646265852482471186654233076359242211159438298974040996211163601181931589867410974575938510778483805849136201612530837357194949105389276284288920482347544242171900177625587653199480816122436452485984330698413228792713335278761186166780629483703802908967255911228416285292193485652767503343148900990160456292784761200469251479307350358743312459328648277954553748429919904359581646331169757844664241420317633252016912483053231264408636461427494791220252061144912001354440642359020714928443405808914295544986377362202223620326031800259748137356489071331011691437901837023532806710788135695369327298141905613130954119522231857650386040924403467230035102069832134468227109580866677223828492683454546465152496296247166016141684364863777839790438932655024615753877073376811213334179924950779084510353975129598967727097180772669820558570019351473820152134788881800566172024949581314178596257143133662638439419707622312987301351612441495101430077758542816787707903951294305580837504166153249532539485681416570342347213414222696863656239075930883435368726363314558492625616220932794574106911822198769143858060770260162355834196979299019296627376971001654793432816951484491605437822383043218679601472622389799446917771794767624310515721538781491281766196857977723703959283163472801311811222817830817248463183821560510465903996835752436184078697793304684420115730212293551303641558526645167998538414733752759234460934300883209441052234184162259668481654158898601477686665141835048609878312478158688096837336923932228597628864981446279060336000302429210253751947471609318842838754508717196152087145995592926320684015538839791129209851390163556497831476113548999899282995387930245242018658498035933694700901312059657567607297333905424564618564676091013587893686078318680441311025671689616877754311668053385746200402499915937162158309193766585903375317989494163106473922789028456823223211451499969803123723028179349955968237835042965815332072887767117142689758734439122110628293724174261123494824333289187856575866058194633451723347504582999532520251451504773238750771452752932408158379073716310595291987650163367874293895236504167433181200001141823594120213429106935113513362797011345402916708709800869260266708340562663556285833278581476460826405585463505305866426400258974082011612992144290074260145413525088736018423071599934316446619093319039399629886074856867090420947473985058542144616730982170334802121086518895424512026173491794149528341846199503786114569157916722510580514088942559460315782588496919079209775498435137583446399427305751829557845483341026509758713256070461610128147954183032831544993628924015594631528714819105614547780706694635937174321635623132275504113694289498810999769829421655384250847729574365097351635408386531355918473476099310665914905352148509332547104860510064110753191768114666488531914526470966399355899250778350194178820299891700088727098031602000287434177729801953524024684694427414157193371502312949632998168807731485552349157725882521703282164375203323260488755240220351718162154532375036864919797513928146526887572522965711421891704914237551599995510486400949204400865712002444035534193006955285398631435491519098369279976447901920819192017388680409090856322335235568248825473814378274842040613390029107844774290672512688969546406286868103854287911676514940847504346386767864988204063284623945597129082338883173922697165577362084455367476623715532208683624636735036955508568701164129814513797305178626350817973502645641365640387962190483432273843207289006845514192304358400425823808160552253694088399519529329102190669395678170277361517038850274458938345488231909340516109151061673650021067313450272165316466401192161060597439446165692928346304214513189771155998874324270781657826357048308169967625716824369339569684629743392728474513648008704291763494505521806087872261879868315672573673579478685502591239248376421273160725561380379198971156635777022690033871821160811416791647658825096889511093358997202696176349474001295893306200834065846542589569801278495215418712446583509215883060797111573532832542926479154628350982367428558591878626099935354659784849781464938061489222573721815671222493267345235119134943106646311986210364784408982143652582885732175011686655397392316410073487908067243609243623511271114506489605514936825735811614758284717853661594482006584043567327598575649955959884372476375377902213022495969540160039605991387001122697744573006107569003633410865483725099544818595355505644665951975539092379559165319531909393152203931873508309637254315356908848771209042128393474525098199518956561086941965126281759303371072658980794986379354128822409678835816089833524835336590393646754520928646732207405839331399266643685609032907737891676516560938901314524091827436035018778264714976519819225209257228427330513208793714231148311797942734338981329340573641257399509832618692272706486556387874335461935908051437426526976604278195661883137517237533142789154479315846737501152636288007261905073738665527279590362099766622659794272168609768920615368144690742692133098395911474835996698701120462705246612704126629057193383968455200341616554758846927471983866924984665744522297807741053831517892165188754946539009217607340262956139285659858783581425825041625329356394847053181293761610487929176154772672377028703569088581435375741835236759498411375894665474243497314042293806691340288691423967165753299995244094073447702374286982346065298632269708112954935303258805759408942919933019057451211532244905407548616282441400940553106594996481982380773858016631612926663643582762292576792088340518132823188713314527373896998959714767622570031218816698403336504928810396890535787525846672940730330946732072573912683515598873715417518865300451468275347425699366155094219464407754869002203791452275535174810107493804948313416281440817191640103635987857681653641696721761950923789974008710552713144864427993086891865254305024065081868372507746694986866595679742725447506809331277104499982553703817650555555261208569162612948373995736075049998864426207576774501033954656176888240595047784459344756769711496169844578650033001259372815984026555483247129629768704504201181618107899311905369174996474854350302716366109025574984419457523330062501407365683342158119126732350124008384158209353159421054205438709423167189388808534342131111634699308236372838253653994096959268393707743679381823096291322106393764346764358407023804471187263824289088909522491343515469450154004926466029328238446309787899767119433301150516683165203438378604284819496161333252984385144658459088092029445063969925112760617744893526026698644085559305749846560952974353979162183096060338744967470862719779445295220117835400646805377375732592934039508629233474054360594992291603737486211790665464939438279869919546940515295444380180585112398292459340415282348604458890394392222070827247110820946510657991174577036842060827951425203231578138479111489808644785572636118266969879462930466451483517486295454193664900607261667996541640062560964497690480339910948458354079014594099444571959586952462983265183059526816183115345112492680371767092184290408003475574182530220917752138902273925498795324332356054296195091809706278953483640209616364259180262792570610280468253910362364418696201231599892798570587046681097118878502010280709476123687844930927910734446888633135539793384556137553983306602003518354578386866928155294517737928449418039934069666852162330000447265571217269176120267830177979431244990606347106953193932265884509668658892179488535113136509966605202346855203098482869467687306794724835682321484327970298846743383391848691292191552050632005448906375145408080747984863963524003923867439904874677117278419147363268313061840057190997570258043187385623295301992743219640849934289250629548217390264763447282814126752325616996372646396663763903615723941180279766512205244720089370482228782907717844723623577738724054723619474694439094511213271795645872133993125530654750763853696469619787329569555718102271680236864663446380759881076988124700896551060655722941056146716641946558539451597338406301128275636776118883169872731873789988144255637317344632523733649397931871936397023152747169890664716004843886922790402997263261269693946848083892843847819889802509565075506789786775168826622292004961285692716035017433254490562500660088400298975457275259219117862519352009449868176186921234115550862725071931670718297506211233015577577387847856327987645789442362828986138853591577374440548259019647888095979191025096908513967991131004534672626175281699869534694687645341761354590372362023181599179142971509747321480709675198789446463539671308372630733989409174143496239915814336967770135068085042556792672957696554817454566022197582082797131842936803631357431097815656390322033934363461862497543734755865205314692563049891789033769922373270623567599730920379798192484623296761312065987167095121343769906227426680812539324237138039394469823893171444860481716796448730765710321980127144290466060036865266933719939319673336360756225677399324545793858754403039344465215016377483962751025373761988810288018008334507018245350389720935754063642961472622100793870235679086108973623042655910746659532525302865384374408211932725451609073091306684647253111406653315238372623664394475555903844395951140062722481668943765356343484798561060306661138071331264078763354256144788933802298732783736493292217487621069479133858157780481665052491335332601260409688984599475398391394400833675977392393788393302499769737962752895942820710535198337554143875180695838673266904083144176791613816834245265452738011933159700081855480545548400222845439660283825956984254078007531353196151750825300096558898555761711310355881372493589369720002956752283556712744782324038642877658914032797571686229065680732210593592922386159920177268559126027399745771342263007967615852647297600337660025312728435279602640918214501514101437317449262649671941844827998965678231263684498812397186810068267243699289744815267656042553552629552085570879644924069533004262386138317230717598366300068628512922137569415200632452051754508360526169887671163409301407351498469297139165527486104882078778864664109813842064966012957341960461549389786321241835558997732006346017994227027253627772437266639056454738659293165722000758421937831149030102519957183078463447857057082028986740381723870569785444922165180416463931498156154019213472502495153881541975075292819504780943626283867023082533203196179682363329990580017048095288599108791334863634481319640909227349988378674118953383476042840684047679779132068744101797313240240999805474330247712175962999876964472251128485392354618519409484558820145963042821774934139520789665227307613559764751687132538553284440183038155985951488509497991989971444066114287426369489382092441796253332332098162530540487869051590137454526970315236558245213271668128069321336537018928009212333129311692158595226624074344990852367533302191927078365919509603332561845501571399309705952865725974349536270135444111892745915255233036274768660631249044410340335315574895428307756758203438131272754151918608307374411822421973494714744578201192649344770902581070217725351862348521463058465400437510770462415201093294355314959225842171502628785421413765853085289384563371622634817872572055756428075124101863349409349673143124629505690864254991117544886387511299452582073990050446748164667531281295054346660350500336732319292639259750765393490944155759862826346836924024240848646516510301192591005864783469832326517337641028222550811803241911049924049498727077087730272008422075418336257622852053126288173681466979118937050168034341033256127456589241382283236072277775582032420953738756443578628145691415552495078282003477982007070125782806645517356620320582695803309153187432955108189093695324392176819556348938468503785465071890883802727492074939133852498574444364867575596165440132029040042102265292148141044455226874051154612014321642172217958057549898037191785598814140043942002400398317801995048032956607668627013038467584828566875600028900754416954745093328961150706171686965172399906622498427902446871267187284655361980291701625402202376686746317956307484951186153324907951601796432120055442135009170679127617851277536440209021095492600779645889433126997251142701039884800651860234464090899697969535320092423071269128783923213595058514480019666864392626676421074838614699918585877733787447863346290187474874633726000119596030889330978778999023388218150102804856318659855730478981014564037524193132432480095858181162640741857384730396252020516105433310613768049091746338141570271541792005826768323084125963647732806405737362726158822536899558315467158728354760034757547694900608639980968944520225343530207008649608448159145908240998752206982136964106817077757046098981549500164966225366531624203407270721042751651629127938745162634659252983907805875805609423921050088873236183380489616606756195077341636920332708653724162492480434847012204758057834706381263049308333333149679469518490324313014249210550366125353843149259476487901180182110031568190503747981136719026724650609435442828325778437173373474342868890114185798047091722510120445983671401429552525865894596456508832480261788113523181270842985239499747831701014590835276139979186793448730117180815193185919393116784330592924894229266576525423959824051724109446364103659488264709553790512922217082480808466252272190485139279216882664510459621505039136820248899044049704748750679573698670032919811886959555869405996236688865947087317229432670063355964561633785183731706250635297696519828138738958242095708314828344577978433569672211068176724943530723331792777698698645031436028990547480495796148343447023574185468171863352565804629710303332194479983163340464452998406489608386602441079420448204322859932049368475758989505655271784905336230149501412956905669180489442952984260316558988695875166664465105201889910237945693641817476906115930977943044048613613241837013255132640688132166763543220904704571193669746670587803242550604555595777337812681262420296620856398973905073314282578656537313325478192770970615974849680405730333856083696843527326622224420333550899067292311850185680041353511616799582003195576763311132058349108047205292526446352864090031126949147631291054856215823925247920592392484165583248762758110875791506264390641625687581432950850641689961824531865412614301814615385718471638870917699223433112532777638088265018001944642475495954701180602128446808779895084618619286794291054243230268019326810768561854339403465956666235763018034429425012372823315125041264472380244946633122704314370996115653855297152236990135682402876450280608240133971696500538412399101108198636062465816858229974794542238365883674712896947463552501234274926220476197778078509617359559291684526652242302122997682574029504813958092753223404869443009562303670289109401074146319312421118780719465737341801382911330250417858298342396795563322044515504830641839449127555252286076347509229312904917818775166380210442949467250475854499329827371515554681307670093851064374082538680224302262645962918540906889005112206159984871943387809761910407827199049628759148087586719156407606511367963856099417388809525643940322878828100780509355150701300845717432505961486324762861722514922908249825628037026793281408882724570138727552065276729700964599023097428946377734677452123188181244007371943009398783598335426373807999340781083658604907152422693591766480583610340950597410812106127423706299917101188301532124832111477323705064746135920376539873873882287284411396881064186353584883788758823304847806217314184894011116987051493150268166430275670624425446124764578752392438344228369140230796702036479633964994733398897497209330933550962265712870005020535313668378755055088227235145574091399660690802683250581148745872724987137872518677251058832524163853093154886327357525324971013325955365439557607673607856910675058521182456102856220068990948387216926794996220767112225506961184751666477084709188979917174552384627319853470597533977974675725970259843872719885060776240230406732578252052045461522950383082698262433033547513291328828402588255674872888042470559295994771910660076953602524196426363932770079256841041523533703124782943738209643269944227587948008179422259907560270147832005547733635668310716374730637061670736831067638240293644898795093853894205605077082067916635465971237929053332661654594047730243424362909329489513406807176306223894044580515284255925710644729245771432195452467419808532009296976369537186091476238617304528900422292920142451731562886348251918093293743123443715846854045955105584954661005015582008886391798327048352228164295846574747133817249309031742496397314672250265195679105401382055665973317386373636361195031607073076650882463461533319068667851831960262565042231156875016810087503739952080758341001813444139715088927615929475330042651950568189488179453320623348852310821683647955441120156459686275796350018056722815420765086193449533936791729895784346993338812328424907920121985309212020939967236078565478202965698562905219131337653913287151104978477801885836398580115371233219138857545058865964297738140070600402215571173744505351362488379362310030192201899134730405918877995382377334855165815225624105831907951550629279055416896200352180732955273089177596436006757008778728435676835215351088959870099600977369774775951068486427004105795793393774274551471528124044144387443030883666987766280851921744584916562654155026871426976154040896278616846433758595705924030759835230959436587750159837468669692274825301862189383748011059955312069956886075312027250094662313643477038885740213998620966560883237522963016107725952985414241927115992207583425980470704975641038253269447559821788672305857255404616812115381850053519126372764501860434075685186398694480044022862478554948386698554951478885950523045099382586460621582933747889122780395969721233900447479382402270226532380958897681337755726595658024118291835631792714951852267260359543687769876872084049471920621367557310270551872675590224504809258506203402890689850342268147749888031108789420297379114102043123944667202794983737764193772810758511082423044825028325970695842111138138686986065676113720373716715011365696502925482798856058525915602256065960280625319942328245093556578739151383422832618514059588392707148054315139465633793069920324636953474754689773968469850452500528827311975576739090834083944795278424422877416329491259371429670285200412881888190634671137400465124685185880694767678857085005490838473773070926467913376763781416315095749923033693289755550865484653535874897622980949824583263424056389401037943463801376133180331974162295850912411238434814018551998076463763043116041860046991961779741452817866821313059829849575553950039980326703682528577594906225864391955028245193740493700256094015961011529534452447067787057997132986995303846312091297823486659161340847687874163007110587899922740137480942917013509542426701192018601517887060916816726738949696275694919281664053406279247272250730927734151429397667488096246588921106422519096604789496289675600569723958561237878181126659829247269106138868782372019682571583809091175815488212536543400117139038032403690263717228364303095454530129688238286788167363841238576459847351414997202432473168316887963598934098610886046899538749404100566295472864955409394478091077431266443279516141813453995534131324640018665718472532001783015130815426993367535886814276693183488585862943973048413203156129620668854917643156502980776169890194551615032709733344778161301033430079334640838657596957604017350559429981608751160929584526602347584336095242417055206861036117317542183979106685423582954924477080269339163693226831441493651428021050805710619592680881883937521706534712803452753575244462122989313110138529276149542346880923878912362573389087102001687228663812419540517064310884142721983797301680978219444410579034510850439826029900802589252463177384726593450620432540641583946933637614740463469478290179751875414174594151552460929642424352438774511357114373157136398499976871394505185265060052545898375185351796217619620792384200862039417213418170904274892728196287098140043670528242880001686891939742357127729648147683460629346628732427020263633359645043382853264961883872096430572354690392042988710997971494258428900603370181702313998797686702629870857456562912414929895997939196660258186489139092638632143441517763816973802968421678925789383367048331592092549010887719494845086192582708578646664099985757987455386703279365860666065432396794309426865345964437420451456780753277964273750257766242329669656340933928806170081335325438811898530549162794912122097473133723889103860450792001455080092586212983379754382389812360774876663190058345511734090364129651772380562763513020421037651745947488457807200376163286454370901126923379251224126824117896442463408229946600489185722559273672477312856574146168991375719622773622119368734993678775686485954920493636649822172641928425044146860549812067820209979202015219135538364750693526361515076778923240180968098208430245579316462516752192819788089240453883426019747766748455026624203610030634669976050362072243343338284705013892479329657453951775065630526339230533587983347215961597201649759596780951793736443031623951756744373766313606487148704662988081437340831779568783786398064339975284048124301759224809072162954915831052950253049380412879004919376311815388813746378197037905892640890995102387782081558939087589797841127114524843288610035075297728683466579225242946023863164940966427843328656006196508972781574324785572315886273623989057254059068462220670184970457017470689473701454495668091634513270765316811080843449243877476780238060660794406815929868114429737941019556600969947439336456544155159601367665546357093453817612804840316434893876794883679627861585581642383270321957710324242498460905905501126713171957022921939140467131114243160410229292574573242226383337994176783621720190015472257027087060976888932870108495369069621891668564965843129942302502808623479640661658612401801600348744330388128273169294973847929851280315516478442570148176834900942056168628434044774567625245577444146756502584468577566963221886790024249316822947255888011838168046456156061470311971184309128423431989014933357138455277813877970487355780543268297985964943553890818285768623401302473488947265948249853659071178280321540423180946706263917892520377510951725391566415208963175702162047083563204834347781969925189458085292059691025057465847521851811688775191111719050785693528100257224536661790827659806584857423764919841358832403865093547457856487724156715282004871632845927265017530157862150937701504481132896902637659210590349683932747532843663213035944031856067616779310421062882427148558271243389840475946182772990879504854846344759862477799895926840873361280043934703386392203761518815254527890305561407447595522949483439420739200444673616034660078416082139196569195067715248412723581008657380452472251824168914848351461879197223339166449813482337292636791349483722118686282841116481687660038438555011085198713440757801080130891154494060753471340929743395913754833875191457896703413145699343078534962058888221152315266580744068742861401856437111046833954551462281416679831357939797988712442141081802486362193079289976450749206832962571448123841220202512612415519945013514690851494370598251021030435582599268662270538002185800590961567176407448534705031964315500547140365288212397809619702316566062767072814640374942955532284242162442845907941798950503396382390956664628303385589817950913973401316825748289806310364493172794276018686528670632223777035558321186932376977446029381492559123397665470715833535086915536011121730969449659815396189099946347855438701642889524347710782613092463764233733048903613499389615171618581697896035464040408402832845130962952763338425513961668053308635928697227981277446303195338308852713061565980809498446894456363281462923477075157772137298934745648848790944100959545124894363404276234821209007345090755685873449976648692700420662281943316693209859225789024982463275263012438521262996212661441019184090554988026791460036195376893814610608225142906466422012573678805581307626707931634860528247254535109633450875669129209084551416130516893478170046643298899882149356542436056319289769720526391720791769876943626163271663399899543430520113285122100818724252349820143163497019678349981248710623011715704077066013921388861987642488695275306308240430139706755658545602603336778901875108749887603451496900914927972902885404970126599897718128957901895843427093234232680085921781377766140325667542856335699713366116511797910993603704115011905368964446577208882061047949457766011211204180624586332366443086069356833959881856799053845792607945513597344274793547866763559196487742285579751238495658238711191211679396623831665975851583701750651649528549857814221104020224141384175934813083734345025362037944681832037103630894736566674271411374011335983345387222083559467728161551825465979145259857796034572362854269460973447712819474255888529217160699331545615432403835280994799203673966138944657912640429498512656478970963863161683309663248160276617167210149984452292689512927237130868900959490756881051001026967672615242764533176845617233393571233823378587777223018218182245145757405501473855747447273711838158953890670132879152792937927521665572109880316410641768034999123744630542382064619921078223903665007159032803454364537008583076977161169395632856391370583537196487054270764382765682832702887035833705218854918568020765718646677958655448587986231684972613656495142479137739062602352939008339306362193126659695739296809560777285675789249762227623949829380438178989675097033254233502270055741633996187202158582760320300730807417282228090872932720254131686629966913591001764128829969850547341954513894854048893973719220045900868137665393987657496542066891052662555066602720020672796539679567135701059316476256532692215932412735629125988656147749962123112821110042009334397713550894768274851611909561228431640925036508789717004257193737076137932983069284396898955686735428438619854637116362712649348181400733393828022410232326168643499208005903116177160476220153273761833039340387020328277469294046074679838420692040409253778602008676529459919926975945129665204219420968617074283111954346729578445725196656363714704984414005071786026743293610985775295214455611670544742661518092764006886190507814369671743798523024400543504234566823067918717069405353540198058872727084244755082067848623316061991821108465441461922565114368981603800593892613989536879412814644596216658792492337413819389956882785791123346225677547925605076928514428750140073895257542047450345872829066957865856444420929457129126572377830563095559033488150542672950369532248422640942990628923459882973215647957676253927787167640815964883413307058826994799792736588845780327402074845945085166134737612385864092068624951269509446538799896370482845968348499034117343873344764741783939882710893912506758831867039193814593405508550603234139199472364105956466946936051193847815024181095600833783597518801012997580774984975857848210803454845281234830931865711076534036771214299955421410429444573244070759705115031940481519984121084744608948982530542997318885647727497594858274020310849813766436780828784055234110800088626205218980247345650757631855305787655296353158500887033306243951994817506503154842159383493561622445305985120667708354611707955571357461601136833524660299780134215236571244516549304311419857525258236898599949816576340347096450808606749401428573390470537236516055691709549314629156598829728476878520124286986805562339036078684085349290111987293730190854077696589479154298314926198418734843913985855715092662974168738134090894591787595375505271348336271597636870110242224873134622365520833030829439366605121965961636530721010723941524522864719246163631884383563908699887866527196577569857536788779264548973393973948697755457540796339409413146077302958923784769469372375198978903718246111727882297395246994262529290723641635551100281501915089637674828497983668097005436842929616048835180576922829514425365377124017986747900370380215558164506289375395464622870976356836287120475107243945013449769675277216494206667593514077569310562214634226163040024765764821971357234802666467066418114267161281987630843240451088914488817407486205251827471120211086820242443990598280050065462257195209498798185372211607083790758052052084841750660015334744198492190545625216542148112201460964134425473803060349698700730675884504791652301004725012325502853550986424761992114523581903765494488636419166103116215195731844720131878265762982175886671472235799467507365382539269212308709041612057902687184656602736307782882462297455820807056577152109677113238453061850486027497296263665573753438758808844817686276802215864298696282799123226291201714265281860749752558325791490902948962639616602587019630959991210505630007834119171120500478872715498821870550357191488850069844795612857784793872740712509729063211358581514230554396095671166016672526321537860948075128327440645169850492015296130653888009044275380798057983505154220470363017981108818092333850917010982804608800548994156859632921492821357277083476525855935448744648819379733117172006607839675282852869226816134979069201612241283043007863577704905219329219307976412689665619998689940725492509474991076948709946888539544681572273163626285625544710687605433393763403062826280202109871098039903976872600885453292892268392805535005299967706034267865008472315309720818514081119684284310836746361237050121033885205824324875430249741630836385339255174778413589647862181333013505558993505709650180351996788275799162081122847394136785039647172336351011143881320632617888254702694586914750826710372363067344849233664877429385984524766885172589366121990404100907154138296657425552906161122451317077767456310554649117679034516973499267848371739645980158712708388760807613342308390453227173655717313477388973895038211171964484365838709949134276764437505044328806292415980446664943084458744119416570354766556068014923344999063102451509849810393746946028211943587913129497855784476562206230282377808431062722594239473764587862507872088542292581970034804756494226917418972320660000548134019105945868819683048981621023702965733569027680754313677086092646535363808545729054903040638009062130834734718588789617874543376050471883123365773854176204280963381625297593934375746751815812645056107606420995105472535737998241018623162619404826345721858557727924208775526089073752425211825496053139268688433538918533299553108182444413453796347122814747776240400839770555921676269215614804846357843639747990318148517258284424591612867654497098316483241824255935845306598839045928768400884332250583681483081915771340228433883635888306462541455629344852131123881628367799162260628866325416448461778146198156376260884579127715142139743122436783203865008412748743026265924999502077613588253946975965346883217138777896141769670181335658043181829932706497783550983313276887965071863524093132133170894140760567471046207006748690864663561187267078672620135821524175353931075431183010934271495968364461050499776293062918353426529502491186416711975958309553739520889718671949058719078555402466300057131432179476677674938421981483383053898423291695901018963902300630901142420894301972717364603431305307236139920767304529318310843030387674414792420979335106136506314321337480512874322772716637000937221276840785446311739834887246634942314670637909726909552486051918748442928164529062889690547796972486226122455328961910348428503347941100572650181104534530871287257090446024422057768839981963867271658990400524978789497708287875315066377950608549348536176287681186157719209538026589756989835265795481821879424372225630026471716521730662097845858318810306091975758212031886734407417589153175704363107989256658064700074966502371526478785892346148665046580855203749212574677066930196528395165306896696065397645235990205646447247290769533446467732659701425551359282700970840074741493203080550157784612472474184311725730061586310332884914627021978618041595486734349373629618108220836817196345703641913416154599131427178641124617069512720207659460410300887655655629337770951896620112427334177988020209775721313751566382379485406093042543885950253027203773242945387532021175037493588027021817355948779648863953362375358522679602824240669839009291546884211369482632916889587772434301671556806527482415605089947900453901346428353194771524420465131110578378918013237310620907337116862024891663736731803639531700205615910106905255476475345986330127833798913861438042164945977507819177723079486367053949299390553459601432929089104746817636626752513516480851304007768657555828262466939731763405021516766065305763391534009577146466438488660495346267716877685382424788441129888603108839729533853734830145870047963915370375345391838776739864200175492240734821359507424296144922606089712793086231328279313805672304827448300559925603428686189486767403462525948596933979960656953911504944405443533083746427553220456682704084773295522248829044627210094216923765955634082723784664084667470382205910418642007170547554017450381929584491150437244668835055395215349228303799589846493945987147211284724929788902332273794140019524934159510782466189671186840104400119760998510007921447390447102054142272975727774060907734672014292496134367707173811754223224481663693790087269437446915653585140649001871332225006084458146512231800029813929353930831353234398236757864696257665134568022254730318785064329012718338676273550105463375729104791959112638283957909000401367654241093024289719165272073998185155053314369199545378747899477523692376243303184961189982836710474895351417553481217736550114486672173053035417832798480955894162522348373415678945153560963534769304577873927128217565292080027595407910365151884462266976540754296702158319683938863688971285711884995689638255437192730095030859248351220524288775575924456949151843173202817287152728375054874856871958839503898527968177790984820005113472883993358103648829164221804763607328091113300026394726189512304988056043857688616874733955763575558849348619170122605863653321700280489346039927079415356415981144662473202194465689771319538834564552997425306148779872585988029144201706726889274932059078936790797229533552977250421233149935695058722067576335264916441304275139798994663492027958815720198281842170417781519771071687316643813525951990821654036172805014427593703069448433717923394731798255246409519875188504754321959636167562394415828232652528957398137573681288831813491345921617706462699503084447471071202407345250022038775256845346869514041291428617365815969041951762401082845195423581500804150723801012957541671023290617737300695481114302022031648440624685565342559109147656126202715186732448198424887703750163449673028240203876446488463272656318433628477516912425878320484295097520117796740130152502382482642678072822582749748282769362719951818142170740395746418782051647923021322584151892561992525856842016262926020646413265622480993672693995273716705328011519456382863632721363664407671431776702545880918836010118580640832071758777076878055589525466249733760416322363118278031318412262444598500790964410628698969744944383529732002566511747645385863856937418620441943800896167747366251651041265783893944307149297616065476517074060915969122722530250803337325894440240722165411472886529870798703232177732517181132578038170720824227506901188834014211991578746786369361684266388213527579427364642757959710980876820131487117739324147536334838091455628327602506853124419908988241523727229211798251162615826138031771637799299044027685350848188668131027779897771712704299121521325937060288974553254422886867646436195430434863451864908901192570113116499146052338350445444826293792816231429800418362966786356831509840059491119262172041834619795219534108284483649938256509316292929554268082922118522738232197760660105072073909132818791097001655996203851678827190600329966598464778397259382251866468323740103114677638428360010970394933408303701243389793510464542840693704422827550883070059445516768938507032062535202802340319516504389489673408502130974267551999118508294015101979483022895223603917098111654238357033005845963647951524822358069687936915063612621119999610455425862493289283660925338503164041649935254896723608740903824952418851315568119976080070179610900588130329440416628349782507567476118081055890047346531011631130473471996181938084447855951570102497304815159154553756451405788037081689764148756922700702120560027884121005097959568375245439251023205235942451873474336510228587121192043396762269736066186007626788533521306999215375247879672470474700992096034746587226915314166888485385651935282240573844540348948497017817895498484722758057815080776777451664900557199164297365808946691882755364653804427167868142358494995122231781327117431160408813306895125244020365382194421850681842304752778295462406819336588133084954128716783104721349548116389848419989379244292894894687957653229364407003376142594858099042453524044341914202334942620311167991738213128729325276085637315196021946818972755696660800918332462735421313108739280189277177447966595299384456897746278762251668840555070718317976590470176116893467448336225200490504453893935016322417712373013839514197857531138208136974489683649216757645257588431879395403260245715134097664255805229634507564538099516874365821267147324704664133864984800049830239689833084795240714387013434406336900187643310849893727471647788362743658921629054127110333853546701702590951007197338880057458501118411343878370020388923508382883906047393380608800840484168826633502883964574780428302969338610813153762882420359907914584925860264115549109364186935418404682818194107460577240986980732707959706336548628635683458153694899066425383225623794346075084796288424443902050786958119433541946169265063110824836989284431050894028084168719627816473567212772514113823535320265287392857072355275022965128960299204646163147303506128605384249711301950508095296902072170621675805563618483947593577740407766563453300220284111015805608671636964314473791525978342865491790949876188876301187622713258632143333388764810637696569636888398272025467060250083399085261146384780169437632549623804359375775742360212610520664647371389318094774395625901772090048518473633379276930281486841408591404517184332917286634382234294195133861750127474386635582420596859311467130213224232447180164244229208094937831901788797064392342955460037509133851592593224488930071713415504230234357919235481960278331303663544380483842860785148330339992434698249484818428961351285729230115323583294350077499035546762579605703790657529631074973425689862595287859373542875128570194260874883924685387132684930058816103499975931090173651371032113376733328426519257529133202600209680155178873219193192662387599367536671958047447158220982585827632615908258702453865708517531570997615548882193724259439568768272501157350450762166487784232452241772561387586820209783253338555094503457808840912204089928317404464349122090836646185284878382566405773060950912120127067697563808074588003945310895778692971509940254582646326334013015366492346681072970869821548772946635238595668645244480458969860971872508990407159373126714146474721676908325683480729938877409263353747536192460778852501684285192213291508328687024412840398326703850454824382222118624890936133311795180951805570959343930423591022959104261731629096781654851013255536588873290340937053834184671804772264600961518135896098119222360305938605676047345849924893708738771829224965276760737794449393003400969819774571170065520063064392779671792314027124913857506626580739580261793263746369776857111850382498589216604050624122340805757061264549681087790863494849707870361159369081531790962333141267786861152810658204739413998982079023435602856816029718575550264644979572086614192758532463358017576441676332099200700971186243535408108677338229580381002722641466780493517568966794418253031241714540047333648336095668420942488854654897764682280147465898678201688905917388100261598368520481277893508667469440121044182896771160648106779796272534562992614346291094332127712094057669296201083058165192597087403739129209422750820470353360386905778477135018428562251747906176363345545939941980504252442242999649925550507705125808797069668887840699497598405206708866135655746966522005517092919233757545954412807986268130872255855732560143709085593229088376106167432383456505342727118362614883362031660151853675995066231674331493987500086858164915408859360206870583829895585370786980444289071213237247583427122215874152477250175585751376617048584534021920577910835615463731023246355852025228217386342401651161214599385346577737644038238157476063893727818557931382263943102124049941480927922579048323775417899267370313258043301454388492324312510033345056684754303179258579861407196186827392091850621810132129560269314174642716215148164201545855233437448817524807732030769300546639912221014836746866659754353061836468634630988918501221549386202580191047570418555906293395819897655978371026827123953307800685864663445950895200430631312642130152645831413944383924808755847198516341031352892065436171657732937719841284128251227988681468022987028429485418379459835174199723336919314472831651951014425498334736716818400150172269640093096839309253557219554604524427387915602653235946841508814358917541662512673818131737205284570635391841406315279022227332638238553779620518648952357629197248821130014470809269371179305429961642622906455477520405903097058073738123264548964971340160997467083858126078064568028961739833678258522237082202892362371857332421691435095613877365694271467344367414433537458449898011357850923116216925392888827048559509364702828729673704904114097364198808599864674890804024214819118293323171468691350867217419394479433865290365844990763204985086622241939092210181776805018030404007359054896746730159313119964309061061525147034720898569917811743301515077713472714565313514826522220251375070148788755254291033084602916999535803648796907397530396817800377309287957186180354930610752751663689332196507581791875836046304409808950237436173702226209496018318180512983314078762742890208456369216017268232672030490886696456508843118432023815491857514349095977469946701265330827243177976050315704722902907637950339466874132527913728314205127489173613415546047403007432207122393959670969028636595432727402566314029661445355257292546529566621490250179527634526357165258252583557554986481458052118860999191963185500618680487002183562804353644252334588413128649096397893359948636381144448693958851325852927962724693607421529777452237040251324730215634566669739215226026606090834761012529068015091809831150498348031834902904920427675683016335114565752207939719572235681704958700338283897577524852904645443045583618623159377760758409859190371818421166668977720586477325555914516568902720372043910910704236331886528944192301885905576265087716443222378387039155896171253260129509976728392995496624534263633733997048621200016558773834392688259181027404035901317761337919013621445065654446672262990469846002529447812566161652819942796622495409485827630977174403862762909743313965058591224295388991947977917084462544835067952502498389600911715081949192749727914912621828707966108779676881887627557699257473510233663854997624996546980830449891844462773995390286700469402122152085545600671925240256662533790548500689359419494607948482102257826162879245536400515189435105236222238120049326174140497900888701624760641872189579815383911391325727051346405737170016098497786745717562839757613967951340027151455470583150103788858506752420565257265188903970150743837970913482231817625282232101196087731752614338892472947891240152131339290963750705686875837798677413705895178349071238283839352777991182216449422533304753815945216037624260964899970264758634074302698613912633487804331496269319136904408223482021195212669552784572233603267991958136994571293899893519158566489553033571414197298049257814883619368212389104546056623441897129610902906583921523313421742578817337445700380339738822136486779503614219023245485920173428534892538355627362958547841825450756809852948379660384206046874699169460215057131623556386774042175229166486729176172690907780706636280818556723781210569617729787940723260299111618663399836224315066460229242850517440960709667553590766073519313527472400221744354234704192496420530282154672189659750154769991523613160290259858162373813418783870544497064441894680152121928501023550990171867865997990171022593002061777177945694063511832536676965573415372045781486280025481997599515373917763045534000541549544046407300105522025426913658002394638437123426932644339432715176130363702700270456489112107686268286561071138648100506663570435706586064959780348547025336362691323627460398448236810570253149538106516493026155575623611157692735057886562511532582472770773215736144182323212197451124307800217405674474846569407099553224901320292820531648238615036149075180288119560466845405565653960459929932794003801828044125090821501288722831805817662080100849241256669740212998796572068141083690394201927345033821932702247790815082666306270520991076237608352015813270377786572458236722657809410886644859511982200024970394216684416932327108428272471814841835877135089318585376731301629467788936528651262596073417591188172170540380519330919405267453792142635404151913741586005757506636839006826981502794775511131911749872081426106626208762199955054708003541788887113420849211895334467379088216078736770162138694931226189108931388146117850878413006658727263549224430349911330473462274127619547978532791888566704967254398193599461260261328349657917448484943722362569757023354646983130842911870093270500545003674855345131549220210671244199540092477536652232345640094685207183014999872750083335625609442094273674017038740854054228899610190619734004525378803779905358046808820753410789788416309147699231496408938234124714890988035056476072462062064234623399302579212066528598297029529218784924978168882804209126951594828394478143615662750835645481258702778202391762748712559568111595630786755558663111332117605377570852265119865827791472044622525542521184987231443578830275412668383159983015684275085702927423259308676483804001455333695837561022338364119988390110216605984863094427107292728172595675557783294544224423442088060740817893512056708465614154116323500693109456487766921991277511014951294303930800590898666824575588087594633296521179584550529433557930240591744300818586065779476585363196060458834588466850185370015284907447509228880996116417805804622078395342197725199079114699283613382321734555579699165276726046437474141733273764331364019131776443118154394063488723698088707979660596001044223437688856412277371023017249148054206149474802312361787236881747042797933621742529204016766453282044275962137163962168843146614353672409616324769110354984655635268142391367774513631156891713832767024225112954305470095310647437795857377029532063417533976580937780526922579827429244373133618334588880792943190605938090459032223980601170997874349696509893677260324020637226246152807645420736616946750808618624908328321882419194223592894251311572252534401848781276771660182967104150059597618860933964188741379700547828061596954616278955349372159224454150734266805767552260779861642418109584463168987714060394277177549727603810098465150516545664313985221123463759384975916940225647949640517026034014010397681485603127026194615415756435843288300808724257292235487526107861419971712047214844945393510622970379350410923828540503063320148892170357596383218481952029963521773242906297663698705075823829563614086398942834357835131281229898843068237021652622057778134607243585964339765489160555526043916147866162796976848402468385998459863793825287660156217624860899774489785488144260646932509131878763485170791381218008663815482888313046141313548110250079667079077990000272445812453436155333904653361443268912574723645234467852615759816801832018547434424945923665038306886267095024881244315905607629585355977454320024129347691046239024276871747467138801531788759586943527177660584512199611669644324547586551331200382590837328242435383398979597267324281470508664010640770829233729042013458214966977667646975022633792535384054939872975274261529979475497173606129007330441368773609197438555073449932504670363385155495699075159523020799677359202982434973365600375167874746396992233399396239926870510141282053072429299542138064941001202794297794804003671410579718933004155200929437477842691212310655717223061364377105528207139927986882372630432804066267936598426112191044183637069575945912008490761680839632828937187067219205958243780585174692751489637736501190097063584592662332891843285615129345515771024745668005951633332958804459364561350088751752661320329087498885830716117652047277297095901537952337541626174341348039945228574923331121873213639519376167342595703279469681336314860715622005999793169739238002777925648943859896794650042366784014443605105306878133909202862082026474876720704461029120979461506675202596524975555985230806986832392489292866089594473223526461630942640748910966029461380617524674159833387879616479916162282029030096371886479617978884773863134143448224652822391831570345653697947701118354677162082702474411456257423934350048904796798803895721061219084212014228172591679302880087251864365890677585619279905181279808878153857277594844893960053168637460186547790961869306585188277393846230162654936728310374526380623118939911870524119556305672090541705731487619384309433427719181574892457110438441961382621308082269256865646829373597627252545391535862031785880449570454495961504773216461713570535385928903685918167546561568445316536530467062761166408641394838545999599277285863589690009928693059682044347239813781140841811052136143856241705027186331775348014661162785465311317327155760124420882428678551760312792292898541734859221302410746385068026741079243654914862197090283990893530201885427300060755680671346845584076492942619735238292079095602545001554741864596708809068483182827680948194920770343987265043459243882438573012425057151139970337313398912951890522968062338594300011040742257030614288025933020044351519359932185924118170689231785121474193591428797384846810120405559184778635272277968321229378389563898647222248179240763731841646377070883949823845300202301908724050689516282463613368751342036612420645602752842758770348166095921434934226543174462776039894377407727469681306953834279443865904521455734612484046957651722200292120371056294527282185098067419277317138529449612732476361141100044990950259080466226481350028979259185621317471400691190264830424366616801055544317069614303167520401562026263147630798173847167375445231301684458998129465310732251947549447331201690220695226439909040117211969795417360406242322148968623870445321489805884543393562604313566992100793941522357422140603451531236380431782752769551960726186041116299700269854588763097061663294495593419900905214162806672828340043580674031640713042519797884557794322122453494628584282473049244610093944290543713383026070360341368609141123907336107457285525735236411477375995639182198938919498077642307096198155447358079066603940817588842307196799317363619471676679162409379210974181646029050059784077599342365097695771177450919583218561959068322556298196249264197121153072361955837194616576504697003236288615864428656586718689071640124734339709987763170284542004879437257023138989792340859390290247363641397694235561028914758575340982763565532503710352959215418458732668471749032057646125364486881465603862355039538139872219763920653047320156810815477097291562227887099686825959489199329128896671932348172838474679263736436559883341049524722007204657585860408351343869802432421866232140182229538476212178931846143877623017516423582711096915749533010371304894668445823058777224114441184956522876618996451310820365478740648380711919730016573087657535037543810915243772524089832915372256461868284000663124415079015982711097366209852716203552322577662659243112641221726494010529380551764307832198314994847470432461745199260432015538442795628027846480145461065128553810235901114206013450167543700289619465785586687437617773017571252227274770587478601669389615887432489154223439492216739111113034891011649985114596402602868257439543588191555439923383010737482166861632661988929996716226734836981003935494602940861332079271962376410835307526630817178542221366082614151357039609787800295589982274725548472851565556529311350869161371270542146956341072096966672380895846368641481929682637278583168687873654034028962405664474686512444316753336220654935464905926487231681199763652849791512715117505069306098741594122447633368658110801805648969199973004039071310859600494582693863197470632471376223573732296692938373378217842366479114886550851982312142303258233472093930103100431400611419209847267044880478162451430590078297776335689131460587855466009766774255550286474658368444265881520753469224636650531683362800099558098245780383954269227621273783661262900553349697195902368447481838829311760837163820726216867143408829200120524555020049113926687200516609438330083884402986232648086451194478311314959992366155918556394177308787130287142112027851242541376003493462949409673277587924404605606541651329014436769053067313306637687604285613477261602972498051390249125376452838022466184012813987366658031579042923392295587002022561547577227222864783058602342868351467035052842926710829919629330793938186014283898647162472343006702123109068333721543419177622021141390217832459228793650944361287969365290610540090002206735768771892605115014464111147739521144856722603382911419687409549314438441935893714286294133858469751178609220074687519179679368476563786676686444780806116751549320242500245226849781923391940329316401940800554607327098134948410318386772288762893197176809174514968470162745120929940542747548261152480302811473101660446696542998074410342541529535106462906654358074104114812976608788693802852492498640833622367333220031471833431699449995948856969561061867292600961342669527190570661435819315869789944625844045116149573096451659669148084630985538888108928588870750036894460336392360371127019492303516988270571024946281532660443887174301372494618110444620396764470847469945686787992359160045329684776781001502892207743073485313912292080788322952940629100127754821829567864030197856452924101543369980633556331234274481023954841302667817502873297415390375788064378775233338539108042101700586804438580227540918594932476086039638121446351083195290611117165153764339978092999146186475030881030143970849935307508198233108393901185023146993876979057404941431575479440125203317614076554799845518434180526296465922680902284417480840957928282811854800686488516095555121004531253576198624547405160688693722114442651692842668492623875724440390128448502365287172830782483121413347128751726525711293981003054696629047022279610255664484986128163460205194936189121982955426326110242968354689714478142462737303811152520584481361593679966359789563847571638345908145908321288951311860765207891197573901671041222928979246405386142317431365176739528420848636196386569893272927060221218216339530480682147853458212650993368013602542768565605548670681083041977072464781299859289243384219013273354572940994485123757902942052116380267960960631545436462241076668973826507367151765924563830613063701353373570765737660055090176491283399423555370419636979696084178664664658781491913715981177018667259283169281635934380470125723740312753210751074067683341944424054078439628056873540458174575674930059116671152498569504889974616763339632299551895532362656050501222806527247300432661525787894616611315856918760876849653770834898147486518520408898129875664107223169543959021852669315327596949933362201944725698358259140901702292873760820304123805174964003641122097587279664377451569718987169804641026302586621479864929576410246191684586539334007083444381109754478234253437608956118787845954170350139824028852494879163449538114408002875977542164139499618667327389023778228866435520693851324184836136447084383255099453017927865398642950783940521953802374113725038768448664517190030549331902684832343675652962553684111035461590945489760113177907951251655748449908664958649366014496373622929277409422191428330839194800736335240341654729142216091760012798686696637347998425810037769385199107390891167675609200276372193204789205363869573699938282483039847954708690840184230286703131925520056324459660890035304446214258694820387371097923935039076322380644310027423884360058580904265230369876465225652551569164645903608185327224554530178729259622790346818552583502708783630248235988495547061704451334802867525702742706733961305089096738367970697071729186523624291536504416767712525052141845143783430316972771409719427777765348206030074560200168664487456446095359696756992308995455966141882178035702355108906449923108284519680237173654971974248662079396696982316679629797074212197706767635749540991470211287531151782597021963328058165234824568231199971034131963262904861127497435164660099964396419670616927764208665270506214250592052041108556807934973832629653425631320099635759076790795630714313150958706597061375254857179022753305228216649317788148614528253620611510999410477610931691298031050620742197147455873360737747234711685418305073433206956647949733513603470640129585261211341247893561438049455662223183589186142209454640418289883684862094085409015281284799966546684139292558247915360570353666570337361576497357882826740247139139102861063480495728377454924531278435399707779997753206989781934728216463042625942987574916038135047272358353565422220754951830433040385342687745988933159347640969119749453912529007168456542753627869226793745595095206760869404286870324023556737028481239223936146392362240328251791450837494172851757441876577518402498009570903285993744408739858079947754979497923553714743501001914672289291316146869197919966275423702673442697066115306036175798087193222548470080131762775892814862868510450826558013753875070331975893601886202240730158497168052008951871016196723711099494887498250074254088921546186086944936542294249353192258031080852805556798408986397523610451142400495353474688865526811649463557693482307926269211299451312410246272692953130288647104081496938945848770613832377464334364210101360230429164942388270142234508677631045434748794983065429634928976083726428619670201287740922476829991944935714815209444537375032317360086985263527800373069678401838599264311805496869206389458162863425658212621003411316971501730407305416643644928750644652605035814157631574558247099739012246233320507171128833863015753474373230345073713615350015588239776170333145825113428430685249735684100276672470080121757973306144021308053005819293703070243333070557972048620441757943873094519701670389841088427543847860895490244969895119026448885498108125131557393059729417446311041109452012616203720045118946479191595064120423435713773437144965382440881342454822873268533526652454502852987701247441199895329918340767763737895434567883089082349187847562652342928498351191479981536506767470955014452647250124614852530032986761424931824499765800539255307762634225262135085425993409286344113072582961902751892779158989548735592185308873337280340926320687216506514904601009557807458158410363687913910710748346156243061967302006413932246555838313632089177411393431051631965808551562183404736784184632359835744482511050718563587134567254136150173508456939123716842025510522991645381149854936415962644085425839367842276340517956714308555715710209833410422479909097334584062536514462861323782036349283810743502265661638949730810424775491017171840441592601082750099179076146818965297074652381420389165243346064223239990123442045123350266133387859971637313404355991516008657737351788811208287647089102503275934471891631394097146154364856253097215753662527719357487725444540209145086028814178019833773284990986066215657294724627325523574636269044395596534752076529602844445741856280669005938471924189161006393917912874562830789954821715399782247123994914393091852018424319409427774501259621160959835889550616414489398711179203712920416437840055857988671667217216782128182943189002508349266745043187315131229010013691056520091905247189330129743701029097268742323115528976020103098829173627821749313727515759218956539126583889899438063154108840697945016976298840390502547139551908695229480401499594679288388664481452869061943717405860867544250704661628887017164624432474727160499548222599411316126433038135484625347291091644560909858790632947997287906421269420223564101553813092312869308542421416708699266299510905661266600462274711808179270108864940888131927564369323273705509314302887756081740024533465159818028096629570020496828430726654267686726438714684617791585860580215739351486602894044910034955896997176454221618342786821436847690741205243422994745730052302869654204691967869178595519291039743651593376348747794108116846968395624159961455638883984297481071501926694490241303923455936067935495608759096566064855508565307059953627870998704349301367964620901775123803577227551389635874543477729510740689748565189007937963653101485874109810669771776508386603899373602405716898177503348434693141024346356853017064239662527598895284126435365659950373418690203228754525470983616796096472169839715832879982762270468700822250448887614219223335990991755524231987147296532023642414816614135420547029997850324313805710040374575110033109710919810736660624396338827224137637429286140231720889608801198295501701632776363459028031152612859435359008534439886265223979737882064621756911907608931369561318447287503172184224507098793903288717425499604613841586643152338387301269064732853879579532742793107086698640283743396395008797221501374068473728751372939607770886273858636338244328202315801407296913680063050421794853163198512362644588868624471865684756618049344738238799665696359602985208311353344404837435757808349055477242116848062893763122830802954019672641785055397552862986838459121270590239479618090035473122678721692102238268823606127528121131835261048926963936366445536474146495629367403530195842432458887393372916906395267879744214747697969940839816941801044798481565498101145070053008843895766544561917729781453106982795139276211048927174496749317327892133928297403813016136464602377608879230887519561150656621351467183888989619104789879968281387679666717110375530820979457139024979975363331618232238517449256380665815877868000889241896052963721491662640389326125424809827712659764325571868135579963260775890757511435755198776477170236663674697395204033947525582720851125214322890561493366223236225933429677466440778028352343192386433937067749129295443275612296198490680696700911299273647269625463989431391442538618864692453888872069685476406491418525830192069882310126471421800292861459259215191508003447404437205912960000952425958372440903863425272281735803934836887761625176735376578471436396621174980305554450900326058773270004016378826025104558699712621619383680716920191602085767564201380835712636070939819880072436106319432277138956334655877230552558812589458026790406962628259996060093164584645188426889015769544449978183205320154638634693426203080742094748425048553464125456099363372630593102775122554833271760853397034754904242420906279783737742263474219632206820187116229720796209044523046666142240000225680500748364265996327293216019417976583392657811498813824414206606682130346040512103429819152135093890173976653506869455844351643764769680037635507566417928511616716707833878113391671491314694185324463050996737927875430282927274184208387108248659747076580004780065192201992657527934967838716796298015718102641907228023540167331914615020017358141341370431696720704404366647824742516257461402485503067348150049353155218930008277070905780682372754578678704358879633202511299861990229429242399158188880312410200211394756664689717448531050713363899214794141997152843455230555253205716003840637733051666253529138405591431875062239446034921295449446528322817062043771302545640298982870421937528386913286137883514175667659757710524646797547046716207331138042978240103067071622228934940092154500054770057796912470487006839824929508191046462422279069197159707633772003441512108502833408065399584089258085502468493502620011250497796240505970297592496025663410173210585304707266603253669662123168394320005743641093511310324998290087428704197769650302661857450920410755971482297077675829409554265478157910024145377475962238555436644472217786838132199260053527273186024327382935255512638990387340463039070938343928208743282837848779892198608930068453184143026540929278734723831818212324609828556096312935160723065958900027326211916927849102751577244874047371389052466267818261555460987371719310710273583576477430377607429647454189492934047722001261671819628832677515147258714013097907536289480220120976844545990731926548584836977403009491593939731073195497523784691812863516891308843043261420701026162891336212516921877029541205314040240566418194659172025624414468757516803038692599514682067257758684990302466099589029760819696570245023322254995932386374291300079183369027814856873047631147437614874282166796244000252463992148402862712514099916882642528182658033961137557264668288078193229786577863403198852555140760171921240004596801979504413235774885265740536136197065057392956387929438534146343925522450449157858765863791980143719804634323190189132255930325413226205170105586274832027500459102611559356065787992770893712174087189066951851817429777148668504687313702776030920727227193561981227645373081972965344745298777901926731723073455113810208526452878553250432288460679205323633465063986537537741823556951218099361901513849817516191878034992991005540913154013040952415045401779729509655074848272884216163852439539874223318532470129284034922929769423349447252712283836684572449673308184997249416791297684003569342035930364530578482476978924780088334047022852528145745197417876973096239992160990565640048035344360967132644311594779033267202602843637260831242091196384577423901406741844268855545080810424218006653152642285063459321752879883459211763701955072602183505293354047808769676890485048855954217634006249573737026021502105249246842470873299177421266503000130280186459858626817718566363352718608454199355692907777105905175313847851448846296006707540128800359476185970653344614736209575516316050153853221578154245057431067337453033528950983023725147941588216529363002610545243823101066990874013242638615172629090125222956257720627987307793134469263991003868423680254047438332573833693483951842036114566048237622431479684028257069913431718311657008991062165748136707559038881119520672335611080961667517598004339637653011616381989898644434331989189763462404096410768644599468790727589857201901983105576399861872350625848373284428869678747095775154807453664679268777863434350353971860705802341659848510546507232928317842678589342465771379650944798350970282258681203688623095365648189879231824748299557619696808130316328570962110520358794355687937528065078557293921856112405120890575608147605383163116627755833641096691434892231539202491753061003997337863103777730331701250523425599978385438905371255336357098105761608781881754477211100590151309482627307502853883097339394685020806796684854858163983995809838213847866520140076799938333958554559351442929351205271660406707922498287995478586528108429009082932628467752347117217688300296673017932712448775159633615207833225845834702254785385156526453867872320309132556892357640821952184720652831351308589740450261945958296529275220713193153491277661347580876647229145759236975865077750362348628132523735170299532715598562359242301614300451402416253543354801273055373840858556412906778276294513481638982877560288824023975476556044342777714420221981965654059722267832539368773546140022100812395687727344098571230611400996252655747065472676101260034205012036204936317523976644994638016796168386578653673472658713833564935443127579566409195665488767271755892243155062349106508129733191499120380489248062344868748565309098012037474799045827441110507303663963816422068999604346854462658954763907766202535055148875804433308622265466912277230445984796479521769617174791829276534238647103599275660385700732625900161808421162424923386432185747368156794071124641962990330538379547201413152957682611936114668626265840946307923023156495357116274571000657739934622013780133541082963911823502981708693947317452281201214566585948008266978781948270941625068703588474788588139329979365370442554606646911436381603533579374473502730841015505773998671448106043209347616295478304326729883445364094294448106042217576210093177865098097077307376675101055696304362713783699009722870709765151779968302729630956352790556229927651124439618227059361874953249209973223068234873160443119064591331957164058212238754963060034458061910082456916420743075675617268838884142762579127802588343056930600430072569851200798211002002047991844188516843473333705747501327727603472994282664906513405298930602805040018323238422071312572735772888844724159029423646736724026276260527193901395738165125526185320602207319910567808374895604022422111655341254215947712079882541611636468040883161312281085749707170044205691378669781077459987154728410253410186923188606644555276377672584735638586327283980869662370550594412997128945859589724108207748914364577539411409635250708471823133538973620857744899053899277059570503713037740767935422374643679954323925620149730907458176754915391193225934848081850573995629992617922577401837140431689443079196617777149781542317838930725293282467215340387505359580499194516138370333801659270869590568931545511390406795620795993234793489695041322804865339146959031840311748438274687250944420288776867876298044426492549848559434264373922795798795605052207322790793842133294895008365093733247773136248187098430828701286357220693981914665926712541982405274191059446935956404351041945027421992550320702494000945132285366690554982675970250687370067422007495808704196458171502369787008113483437255300883148036867764909947535097118762198975243088582904553941561710094381828015198114624975269211148609763672448361165232267196449942536899290968279957779727227474322416631233554773847909939727016216258886197076670799462531080395435335047910003575671348047599161408159003889856321537116790051841777419075739305282090022420761648707700797466426687487330446713286033544461148764542925891084448650735553203200412446277585960821867444227593447079958860257403232971291567477216155157569725356926047336722757375104665626001470711440839430882737190043506534654758961158560335118133419762460283098170119426202759511441087221784122693152716240658515572283143072584937351795636547383894760973442511432034668913920608455534969330956073661028591131845349058784990939212731532869422964802845165287626101286619942571495310599912982381629407986809848537328753039339543069483509916059844699046334439836009655806915142466643413788673585534633276190876401483723356837804770027338881690358200403433503320146204349593219491506879081992536579369726366022375341266145569235724868267293309115450729580028537999654313964313520783381866061876415472303932860894783002447433485571918511698149521835167987511090313267311247555501603164868845023305387053173667201212491094465679349181952417490331426035879913840264607745875555086950125664927569233028200887060050441984386255680043289316967785116761282984750925977467448568131306804126063119381824946203982763197021641042206381042482814378753285872597558601931417060785553404380088300712305410042337817995373813900380345330539931912931263383169205105406000580645422574356806115956734375623240979820787825008606954708849999865234936968233388961657859008362646048768315386060187632072962499021431638519617968841211226495053403010918882152669502832821833446569295002942783196802472290873191416161322233246694213484466703038639352916984498079036046300443225574460242758435854665355548075828659873149235576401826996299260713812078749837909793188306923492248481913966792741870763160109582982382645052663415744058074849405917504312536784871654500172136609966981296791176208802989728050175498638010841910710821947950591483654370550295407658926734905440658740038999574329405529506601974689397856389485749087933623938806922304502514736976629107997213675780257976017374384282556181830651284083684971227414402483156105735097808752303611504257123255645126309367063573792550965414937148589104838949084936067701301457966377338156281725732857312249820367505361076438603972440630208298115255678780035894817966014720971350192773191155389339293648960632313117633355895199059028619274732371005717466007696744661694856896501049804050013682972367761519592974967611052176495250044128506591093682777906058613281193755800980174438275834321554059845306605000610940791125926719039962515605141307882648324956829849378605082491397456126611617479949807067376975123183103452885486411290865627685671685613170750730555627134502615557965949824348193448187438208147063255546504246796816599501913901330971697129292661102471814972457234019941901152156927157815878254434459273203558829045152956445770442387455824245903282774949073250422955808214540404308905239372896895868410233958193334633679831320099489569044820301418202338874332959761242881216520496339005138577086482840993196665868423203521177741098172595523415427749919274959694316348752001402230181184344349748020760303527791141406306871512644856121403248523558652954403949877907101267241992718848556012965308669529149838230081699571796671828829089399058701953852480387352529149383391944344342547198426940209752106168929862126128202350380963294075353443743129487365945612874612025150213717719965299431444558098586718032284188699901340477654737674346229806481777777475943162793931485953087169856577588150506782561077376500577738549852533107048253169472309765618784733982409909880650914564194179903006701416059412837756375511136883641009518429546521509319794657474669466456750036095290045827038887914544169321911219605776811201729519099998643861826136044227968925270373055582810039428535725894078590977150525862839041005958445133529285801126233297427186633279198564984358794834798465545250247941234507850867185725969570523921678243181567681089405687095167012773784719619643523250726962320729148037024777326046032690099782318459458846637916994114032152164930203290611200351676166650231393736093912978474261600733515791139671159510027033645643915347614782172814311212066346696740866729054714544582905905318563585467861619992135286727848920390570422171753330641566815186846278710790268884366025435451935140971001934625904885590949181134180476096028953970790593293514427458085756458406450090293918271329670909311560841532067871289694830789570091208115972803090478330763216593470243116006760295615920281464025158114207874949956450354056804249265326987089547580663167568765482768496552006369556129553752201696643381856968118220633077371061599968971859342549062796810444914775547181810305371314579473408654615765396061340704766407497665761693413108643781655463282627482399869620961562870223352203273980172376698915242462029528595130196536550905915654484809741404036268547909668410670398640683348142758979568648131634017001811206174531571061590478490347175240620030944412943667155685368378055024378415309542313719110802943482410484531525878322505492789900360486523876933706265897650567996844110466608607157331193310245299405787682588217836340114231347234554342432683809378845763339690112430641907405611633573193457694299605006796080128357773844902911843150935525818934061760912553367162723839036004477411906911071017823538242365474196177373446297258309702900525177722204358768535686511532228829783706860197846549336475963479393705657627175767038267532076630032290843422978955349311242931784883692576997770165494984358995008551996280329235636126266973290451352627265491089008039139320323355308386156599122148053885928104645768288276625681133192087297440356155748429340334018521139453645591662459488171832474340506958242279473529361100949306599232718217159685771925480694354171627646375717221698957183936828695750843696696619713912239671953965330272676351501213417519883244471898633446665510845839351483479425675514718410027701548480441199381030544868919876167095317525596469523541792137720123185917062028252841758147335252526773538525878907848384251499552015297528463369467442051697499540559252886042022468212547663014011318517322636705792977002088410201497063023116183532493263747244173827863842586179267539037748476161164439334727626978766996222012014029619149790471627747428954855759523098198927270255813212369622945978220399132359268505941742930714595251122432340933933083554431485966241811140118388100216609037851392878452925940253568627825624466119008033925304429218166336765839860458669970983552072030246890139842948192613614292539381872823600090193433213281003988712917351032212530933645550371480986317614176535223791350423677426864335773610766519787051140800305775220388488854289028133424025143704735055941973467708773470211468879237119253541560733831371634687688881891566058972000343720400720377346110526171305775293616595276431055946841353521037669348485800954988909399881293320520989503944075541814684988562755331904639340801341675325145730463022473209924610911801452494744066052132548335666546506273609598346149380524396757109147129829159278448906810039681607486634699451780748874794365142325048037489567543608331500020815344374719649433121559645258071638988709881318675226623228717093368803326202071968368365396142147087992114843915587022482377058075424582956703200265695163169426489199161361301262426852962095986144396456323613705941303761587069235103018041193974102369599904664791205497302663060623746524934691223435736320686826041375475267021858893886092025338643115471254900804226627639316201685170029129904114451404259802221180105042632303591109847983753701989528462159031018217968820837038976805279114226876942650784297207534673709152627938443462932004690867126956912221523658266890295034527629015543343576624637346532622867052081244337847551248042781545105641516816026111473579724215258312509866134919687495765590453983252820349581780522940457286732478999391634853979068664765411629249334869837332712425070131059293871344329818934974082739960701602132523707620197768743995792719926735858859417032486139041307733169489475942130200792938362707118717577799134073632429210811549167823187587900618132956382106266187822511267076987897779708742617125912527577061446709055122062676844472946126188358010399516822010893957310657509711116052703377471943246856794878934422265684424034559028262117508777076443115192102408148407551032710284021939294865034542656086889644545738624778033229984202705142935389577009015428344186081527745582043412630292542384401511238944282944444732677532987366447322768721476111645979042607425571407762180869265494098767131845659566394069687220410526986109642764217507452392064634221931561721238141114055962991092735820959058191823755660787605584435084872194894863524111404933972435451065502609159653401235595642230967872768045452726120628512234942441046427949241244235444452600232532354363444673140588661901873460766963720943916840019897862714128751022666312695146591010913535721911483435051693939175902583715416907459450852616217739774603150381658315541965258686734704142735030980421823859799082156814418669757915577580151488240327975056144260980119135560161871302212447762577208014362572945294123459898346057280664141993531152162686329787595664212863555764692247098385020592380767185267956209572505026835202614739193993856577893159580492325882562454407513364019545933323772902055987767419951091098094827676550721151733803166824019555262574267878602212896306266357610200971987859714960835408361030460332504849004872603447424418911156219124889825694866736356484387010477052358857436656903997488673902358913974802204218842322547141311814394391159459558272919866705677727794819967432650747111771927453511064614611092105778314982689897850487872233113096407022950474912434713305465322150431844301058435724154717069401974415558190914674952421924431232928070864507106175904750369840612185298575199731146832629138840896295512266237650187879112697178372403694453451442971239015123352461987386208234881465320895589835149264911945252013909857359435231701201419053515465133855582936092157127724959747772861872673423787493895144938825444013875641959706925877938892595644398634172838843722833808480413215121840397574621929773808359655343301602490628353460531179820390067307131037160595549496881267081197500227636210631308507762264011637316556897929098807970491556567938422884187643141629905152946897138238912094473477241829335263369559382303046909651835356578851171000293345332841208308589414258859042573702597286733367062163247659087125424149704013639230311044614857766858130802122855761747831455374087082206441061633511487678299720347124712600611430840624782671341373230960205832077377542890835402862561962197721529258447563529518571794665294642228438262630144662466443011717763873192287986106099286879993198454954852927159129705424313266872061796418781459233689863903608061877025903840877280173724269220467432098998672587779902208255691874176375192483944458615815718861831498491839043120838593158492472190058563898821653358060532155504192420330207078182170566174399692380062413757333011442001811607604868626417815774146248525007703752942909800908132018967382162052077522845444389418170206037573344224437996493525729000247776079875491514354202076614808573659748693742372903201153894889318162741239730504027102168507672484104968805836718927665060551437785381812577608568086324952652902558032509632338988080400244803515052807328588727051908123249660017908648415241180934707450311991997176230978177100137751287460405847028162149748603997849995295190978703013146947658713708962274117184270738029997739408294720385361862967260505872131631986052660361287169653831229278627463695869098102916321803461334834143039740042690709927828166684124047499157867308536645989834315712299744270595826795654482293158284760363521353211477342027740368683362887088326658418146072977781715122911163610940498252644369679019625889843362923307202933208529576498703642421073352590008811102675395237838715461952234964222048803017215103882447983837036681907606433763906695113538630668133104090185885698713164175777572981994120060813245896100712565067501610266067514878716835154623552345726296992869379107907724488237087518231995197869133133281737081187335100846169206081649742807229972365137207004326695928144187520280297192330844151213597440209765128299305734875125104437207577524959693361681293796623350713218689924306573106113910082196872726153033282882847163698568504514477053178751577118322504950796824271750943245285010782518828585581818337563514414902241788952460371757895397560949552203666752592484664112241826808375811520658974784116876497184233467475094537771074822034530241979090494271347501869224248730594964650615339348721346530139441939490893952643760425097034213082168504270476336803341616397412725203818085885637867350973469416870263976139350066858934818819098324790811192635871938855569434827710135664762567887288813161619243681169201208167467850657956328280800981409688985020783103790888472100910704964779631094849453385789560153406781758936716321637146176575013762033421165810473680125546435977718031867846965059544733115321922719022999281303302452357174991973115275813154560381698031960405427771838122741886304647538840484458324183789074266695640724249621436658922729400484239107614488090722695399896929588394184936694708028357649621310263557979269282779796455558742277044754202674316310406457004041894075331728613050399662024581212162918205415561675504162164297057136885888574532673738508311798358717894898858824430603625275156566469114931433896893111429109365643846655540496419341728278593336274601769155201247280082407682728236719576586025744745164239550403609746072808074711098510953982443753484853670361724958280247402394169427499641137367974590839813083987191449557676785772968511688910623012731723865417788370860084503937192336281806648756825759817799852691830653725575046099293776458945205181242373800172646195267872173200516908360427483461480274394731626501651478120268611713066456165192385567720785018033737838505925406774990854399863585769077580367436122585670872428774251506879867455299677195410811693897531783113570280540566585955435702478776268535194711684268332304300350008214571336139700871914651998135091948438712140144726191485963151590333793761785471317600729913586531667164116213003949291369111665868513808903349688858813008271927582910718307549332789434277098807189294937881093495281902562946047626281092759670279864541459504297502945353526830325484614247906740610499118304801530379071678619302341454901276340959764081821924549227312105043706939712923939138990144527310431985810819951254908436583501676839678867739387757996456831720417120430043182993720053386301539623534786876086324779113233897417644748322178110356989387392691544905304087639197377741701705206566836825459233515154718111137393008366335614218837756762925183335464267594483931684011304556329747665612808939138107604145933148136238164049949694420747185473094435919080157017770547307887970826228116266535279812578887652002933801979099112588279158947301521983937523724765274491874052969766392454942576390702603437130258972954149202241004196498551753141983799736687981927971919324188541196763275178575847743577021926602486713961945832294061231992298362165453324949641513713549977518075591660013671829377815274857401254624974206895216474594217014275678987397729098297381658175294742868532404660016166774348959476189476050242718626075417014309948504993437896813744559881222399617459297432981249237943727849167289278027089965619530622784061037857804345894445637786900523281875851349666801834872747528086327089444557285277235551177614410710743297496714639618659789219128040688599808891608565349570268507037731153049419644592787041574815600232262491937218038696440183211879336814348750009981564611731280346047330946888566106705778580371405090164031135380695110381220371796891715278353147821970983364074132484201604406268810330887427837502215130360130857835454328832932130453580798039188326417060136288944870415214438236157183860412975534568628592595510199892013453935103022113205955293887012819257961829325755138242227763587480460691409221013790591538030377467482387097011640923616734501574034393998757320151721450301536893480185294829947702288872788032783021822813690719262498017007012645111396486959306358263662249838835724010292683436116121084538569508711204098979307033521504745448173250488784614186992080124214095576029250961463305260435905619228496430248032908551665708339728206775261899048682445998884679518656133718913864678637206923581785177324768096541216385481083918494416020046203643923461284503208571212127462730698936153833444268497368139370550255805562076570261687567820302846856304122810946535487558678981363798475007929043792963478259509608966982091908433481345294105580910555542250502804186795825710492989486555082333653082727659546935511578537177887006308002807469165554899920712459080552456868253746081446545864321158253277812062027796009242833439590411241496070534312513722978125728366370172050727625074277761262741725663835011358286700911985202463431322985338902609359350946153489872561848704882016667925837056291838791329656995714508103371704805179480980254963753322750833901851747428063200644119885955368938476049220496956846933183917901423481077591521149070055608196575332039313592232287548789328154136136749185785567695971737922225101208200197714212166770974667700485239381783218616312240203515834148842360410621432368392835652549906460643223101585284586798136395324060628342198529843345834722654851418027437143612034118870807903107298803187757761873298862415220344842480999650056865528960802322754703557884309645411268222580271016144359017264311306709743301711655698771036539910443310723470725131951351085743340414481878967589878713882099729084189423368591980739799951613403499845490125724985297300340910299872237151158436312154324579023535051163487588450880791885186013022874923598236662758104393151398352229831747986513273053847167493435863833053738731222276087229128049799803332777290676428990954710314546866697058787961781113391091723373191510272398767758988716063167200684792019757950002900594050760973300077338886261513855693151277206096521713787960685011043415694222368472003309773966024987761896010687220543106025001062163602435505529860888149150731165374843482847105164861020752645360435619163951461133253903871015727752025603842980049567945295030856013846891158846381010323635464306172293052921845798140862357227468371505531182176111406066307569728576273247156288861449624553730395351920222317000680894122348947412365247170025347542212225324043141214824619337740745865697193676989486470284029332482132562816768009888268242339777793009423445239724908281665862188984937559200810543464037986161804342684512818900797084081043111576360321266401134160090360857385925162089164116334254422101271902362277283416464778456866056409676416758721628460782489377114821322133736455379643582268315800847363022906019341786874064247674063611790777640925715293210991254488687251332986796460284389472302202665417622004360815215042186468743363274740559323427885378790497850185253091872491061767946288385905886579626169360897903529362231134389031507820068552458020287821997120155953694991759498065008589200100015728637778898920910626455278394237914845247380431393332290012958683861880434223323147750386203185417238533981807902801062309100379071355986957384840390858997333270834005659360972904059810495648936032806098213014164764830138830454634952092866254699097461580298017615747947480843228724930702467298580918751807390855213577260247912195650744100983652471811646921887963040154779584940557246945072917607256884751260801489098111245889390789286398480237403666012554386767805618001170902555689154244133551891835605234235990993013980367585581887497890394438867532029149028068850200543355804333589946093900345874939777954626892564416706090070361575750580743136558887255878261546020402371840982613969831727962347332884381996526192340104975735607499842895600204100961585790496360487333193476684986891524732133926009159348858272253237381516450643169894113963140990453544023811071146919967229944606562020828650247009046750630547999155441973618442083273306233588881105299296426573562183968665412658370138517048972078038259279430168474785568536653183991439976017192595325450673148822335269166750663246141347917691212453971518107567969517603282826528570431892343879096416980489800972572508793733735517403439732443903594672547081501347549449204935725789883613776039618331609522303023186860605442872876188170605354556953657798346460374892620378424512248191962059508777288150297561140896165659591046004858518962161832410170986279267845398129723046711683818858612725765776889267159080016989396800440424342610691391061053550339346091055912544728036387370892336382392012255348311228040469868953718313502304349910081029364758795982450005698079372801684908142273537651072929855857273634541074405252243409560484021005385485081497787796524483822488684684827698729863885785926125110112110535454153945644744084537487641534680143692816110370998114523730097844058112991290794549395974723956527915977937288706057418323318993984146691973398810762986247754951406579123990496430897532876522793944130579824192023750278477236710728974681237136512011858423679252125787068424389507067746765708861825578408773549926416834773567105735442519849794156479388303207288976186670704187796819511037657525821495021899439914557822243869561287329011256038787835002079830029933957872412501849102518394546671469334958840282533449108763972223269364738005383221821633440376186614064104935304627965044439533839171573424280855765091876713744170729123544202555673907870254208199353621425431001217700171215026120490653383993732008948792804865016834112849352827484510784067559355409618996210524701712899939848430568289210131845131005252227840878719330295169499670419275452593259824092551207515352640615028633100876930342773003821455975648206835308054142617570563091746766838782015179913657944145641492752557030069971784089453826782077101663067769419416294043877892952064497708317096015089918554713098183779085594135245666227718590812156033857552137081880389921404115961560662359118215886499122539107909446794270975265305831815734645291758497815902368213391647531535807685916504372284907344566601286124593857298413084820143064070353300819645799133482950661012684949203295978295249183296451963561585298599449873717755854136996790714004829469954900457711203105585538022407580847593593589511696209749675864274055945042340881671146502954413759884435274438643898277450970910166973050450566524467793715671639807328558602615401293856352852675558039996085466631670219772858084150913276837002598152367087283760092307662897001295225008978352321097666345437789829119948046358897296772629324479453311243491720967220923250786409432948484982376644449337595215386915486494742781985826671962387973135320150118697651233705509446878015495006028845108244147167693300255316713555243015786572672480189194341258023056770310030137215246983024476304584246060212646635207572144294836117437335157226530065626980127045019199548442654920596356034757334282369271123110252767120144230544845775843409686635731876368872940778860528068092018687727813298374231894668258946811869888719432921520557142990930208866882542806420784632017949540399437852838675944067176880938359299762843711403837428405938623391974034308155069751106106440724382408153771374137588577650944515547766202951120661059853199033273308687042379677435395979720726512869084934463904619937145027037415259641209439329181021748250416779439775653526783146566721438310876560270406936681383860889875761277843781365443137542264025943788039284517132318649867451247929716906489197364209045806075619605571588246572832226722304676517713270411154163529710414618707631022230838658311696564758588475830243580064309473662549752844739574659246625205134939967473477530927067517093450768351354047200430034506151754488626949289234335010275119909601216070543111669976928910268904081053699328892829710062287393150389821555626218320703203134507764175124531293179935090187190915246297743016581617312949354251231477195757381077010892902967429110404917595260147812315636175265188146163537562144645320154206960011085130350749470980592874776302809682763110912237142879778439747262700852454857819817857796421881961452743480235893089601134334229018322708194585525783542565441176248114878560408451658073086186413022666493150170492603032196624621186908936476090925126384565439538096273660449493687273781218039959738834384421897957878794339839346374790204073175124808310827213337503038520199180762804261340896110875277102107573871739557376574122623072453963379371334296130476641640148096208437544667358550305335361243229810876855953046028491315738776921884831484289921679193812223568674957109476855114686896939017488754235848405548307822976782754417162498469366554342532904023214557518137850161670087491787565939981938605555743952243374964945610576866454417211745563125879666841349414187925069473176830357463722951686676367841802358491946645647713131268992069837377288369421746694102937489950978780764601358006077106325638298703802898239785435633014294318274603303618874455404500158462557759913429134862029352222311379768798022943962795793805755905272758021424941226907668120853522473376862319330366596119898823846775999084687998578808088977596863999576728544944152072081349912588736662592944795186337233742804577741664664867124076105981093551752258474620656315672535421506509037863325878787258122256167406881623808757148672388350620548609911275672948248747557143388577858381044210040691751708385326563030172629069009824514570662160733536072615071940346960524118302763197028400900001029461845473530212827866213508403154987117566434598985758256941501169478483606994183646242565840972875778089290680312370017308300243100287953224238400883709388183865550375383737062932961488345577867785185493579953815615473907575934324271536350738814331332967005284532933047741383414935957937737242431997776510337533628086297337538541683389268733513995887111766694478572505336636778046180278413023742026423862662091178882896993673695686314848379777510640188448743745680989111563140876488655667509777071210465244751555056889617099756781400472874898113126227309709070459703607586962337695755101134822512521078658726948968525928016178513844094994792230478501658398189292352877157353891191247160786301058789876880601480688164709664583516376286137819315311770676601857954401827733421967837332830271893604290163296475915034988818837403776200370968512105096253203575775122648099100780505209123133418178780081105723265110256229867869222344037415921782898317075740863348929706426557156423949403424212353311779584917945932566795655925775816542904034346733597573966938078112632392918580387973573285176386682913337616058756429034126535364909155282527010214767841747882461420368690956338978664451640357946518770282648896300815566440964803684438344664638398912599126410225268336313411033106272978971360528680242101637318497671466553373552620535009942715565172026525995500596552830735555822005782216474044237091007855243781016578421500764045926572120441667930007981231272336832641746804027213624608363179132020001018012569762471508296250640556493792568798381781747420536201101296321272466521504148495114338701664135072098168584901998199947291421152072907918451063796731839270685103588718359644756530731096335101201465634177482008375388794047052952801251633909652404582062466343390621928912333535011505834099574374325162471062114599314321485120821066721431752019006001175622912926158515357572205407618901281010411105892125457976237275918479928856140598917765542063199995267704234835431842847023473820771489253309341687066757057087244650934733264287665594533854179812637531882527741163799701886885992550890878775133570826642917571751874259406078056476171379269292774866049116842466090090818479100817445761800955735770739078382036110786228600518876458138036000726217120410029076949664891710251825514562734192870739880897370796858032264464861121001174605058335264662131459352504449475274617014954264205035996195764092329442721100786559941097040159630160563842608837869889620171122830694120922752470696658690628080870201973736429526275500207322304325110704220402322763623904979211465109260190623553214626253067112608797370973016462346767560831976101447087640482788756553823901193233613246112901687326630947941023363030235811623968701667863400815429814376712941752517080670680239117115461521770525597831334258558348586723903855134032564258630961019772669130566051476259141474949243971369266855431825573362555003557326651714127741573797337549034789740828496612521244634002689385260718535401379874996787947974452825052523554051156031524534871211769821891006507395672827028034569570623569689055207760028060268176162063819802608590020677243583432964852194573519167854783649498428499023107881774462325715338396283737919392244719000325246067274972665740227314938962605922957113078609306774047416900816037384897483695175618732020833149843758949957453546873402951108939552601598259435864063383869941243966721533822055713625516750868722432215196970461977708554328091156084298609653671246504855548198368331183131442753522657346732783422268122317195118061208484539370962196131214304934715308448710281436763455659344205342024682860357624799739272567893951887589794929796457289570814807023613744912899246906206109568526159756497677675340948527498146539165910595100429038278321365444114950318345161896678770085269594945423235281946134705710363341159176030092565884770179289982153312681434989880060527569033975574867308680355056818778042563451767852312524251892451366416721822103151670399226127270641834410377479368500291489884484224550264273148089493177528612289640787863173933224624316950280308979369958848906403436728384244086592655610044523427054712652224763948100143166732900169235893954986972130409672403319722544431877511024638943503162448742741775471951756363344951048452180245048445834176494329034329624965696896171948521714624217651476274773668415841471226938846782507172900439705066547126918964277813765400563983384416545187707533912619631149299183668891999811496657589995981305824755060254596125545303412063500577698463728103872005746284389378319598478663145434780802259246752980227451441096945539513258145287691950099938932503961807114766111856936407641004418486319706679932560619430673588056102561865943141586898852037273102353847048086302786293854656014152166724510367001914230069096362009811989830573586771674645868044578903433597311593979591247482509233217879194992852599262534017248923082500416606143424379604636420984146101216146368154875400270936292888905954585137996384038047905221948597912298208350681815871789297120660570006942810590754778964939110659154079641099154220858146608273889809930359334246985721944448894622963474389175616795172303534592821698695734666748375552006904954586567008044304048518818499550375771245811654797022384318592071663643506114667989521586868391299829013481310518043927133761111711012258815821296606991718418597839398098234442523107559697703956067411815350013281001526673110175673414765940480155589088369790724393611385777932179427164727004895409636816480044387712632210305410006830181982564977000612530135973255057497515978089855365041245567924805695872609062759183411564073278993358078066217122636854047962380084114824144594594842404036953263963939123033397818302051721702338550431459500878053941972169297412871684426547097495911483284604142644473290393701652050366247189915951067018485157378958658259507243875651655626015229554523374024016789835218226224753997858154291812803084266002925554434686733504653504760089943650414397784807753474108826100186957985488700277555137007610479264481431067590259690153207365098300456614152154553637342571379268512165633268112256008140489064581397063932850897360340618147456447526471282729072719432241018635102253663764567495992138193157833911880820833396485683227339513257547440038894984499793263672401305477037372483573059421923012017763061149325525579944344379816955658477468468151049215063565105589142323884320056366302955509255498630990903916202696106615016109588368500191133002577147451003604100263176154690650377794439468222863406573544125940502912376387342121675848802270025564179847142782105525990765409361525253703632278522390720732328634330492053580710793062474738562864393871123660147705264371818368565039034440007837498141523939870709303748314778592182220107924984200411004108460039881802225756856396992585555080014211794064152438522901002973586421702411984926209018765304100431146625317722477846582209786301735712734027019493321123365131173743319423402145461834121628564063907983419727530606939379511586820444938850512538257553554054124020064195407875125371473922825926868063474734636151903191101189444298139925630873215263568555665781263024857396398824893475302457697837109339990645071770306614679672367006626043753218752936507325863787515412620922975453918986714019842323654898747249002609587209482524404987276867267270408491310442668569002757433369511557263099110718411585896901604004052230182695034969321530172447574175934321738224653101171045327912637163523161305892547998824000517387367058310889330374650838685697374075199073918844403971692824914266183845794016524082197722777413968679907079491595297379667567100969761059151301889753461433757668913775416366713249050805627078585008226770500641421786525586072707755000062711877344212359702998385301287044871377427789041716930589666125511325068066413225054869203705214169290777066800876290312091954628783660519417986950345743615273834302007322683202340275226279859392555031413589984405309134035383401135075743996443723044256775659563213694960764577582374016326716890672737356031904209564461182781919249669034195513397149896670691738353913821849459679088512190053084856175405815124994566936628620413169242593797215075386212217216925973530094805396015738037801595383772108700611231597037703151782661056210258517140177778276386907573024175318843291148087240119094953382659767588705724391273751839496893341345750261264651043993051895012623090633951855187945823197810304375132673806196552040286900056312847447988895841031438441069227595234328897511279848260203742341411548683831745506407424616831570835454476226256926870992538061586283608062805145323037872569405878830551409873319389944879334970105073661124797145110441827097504474415666847436787924494116487690874347371308805834526897957221442132051708774449169907671514818387105152740473909865226260954166488629760695215382969179917160512630777017795042268150801334802053255311471700896850121854041286071468071235151026054901542463933942813053655486722038182947022918401915649303225039229901372287148524930603766753705078338033247343416901818084920030900709615763697569444477348329499665154411854469734409463258896149415982601581514586943919566300327180347670793953851824884363807751946114630515969428665161500541412256766608745824989837656141992239226219809633543503110511062341014021155646401381217044365188071544518938585447961784060015362530158275492567839673389331589988012379784697589026185925073396337570775502469239742935168803976077421297209899401633134835923691573535672579294992366942931861858065845854877574420661760175966121948158894843457727290587951972295998254867449212958357556966799226654770007576084774129231452268893527249912747849688919952929332113832225095060748674916303314946961052137476326615889195801092849564761883080973961609802577738328372609334146159940975637450028696008139694772310404677656625051720338078797750748901260724209087917547951709324809353981274524850024505739445100873477347845198167663032668772155631225388476797815036900622162897906310662390952770155391907634720375801886028948965099748131381676222820595862199866024618427748757513561990639630646260826993424222188722272289458840136819490920689552098461514270073415956496398522601500623384062585665106881676072596092168480776588009497334770952961944431947972622450512596922999066069444781518300392129792613962732714563555127092070058249671529232107283526172568300546434262015035339126858465122120199671272159370391370057447806482845072626130966180588395004754508135443358497387876026959365011427777341291417366404673102852355427068592141687050323257984254773565591922712514898875813268525628176257569265904907667673696248094668426462893105904476707627676836661716789143534178942968749685297305015881285375375502226634307227470777127763019354832172348535001820018098074719840501880251269973443787006095275221458746293256400747611967057992127958921077987290406444170206255772414268992022966869043289095459850900295122833315632329854217289184583866802027929944274954889050923517623826801141445021430845610256247152909926011551331908570915823495016509925090172278341348760997926058999040397496013150561954356699174548772698027051343580649892025017525457950505674119367689455053292379201689972446780994674196802852260111135165233413490034900084217972605603024400945037557892485539129364047626521400108637675959828476641808260404250620792712486385291506803885603750511273666578715118373889261307104252687044758641221698699112904229597243597135056131842598349444070537280616166783838448175559164119582404089209650486139871862100536468902201094606790344870843711350330429132096268177017914574650777321348943358663375228646462790553256289595610474245484042732497061802100879800292547255070143363767104063598346442343296135175522456060010054205930660021304247024717003941585168438044631588247954072496531909636647768073854024854564418760215273638129552384802189322508111258711338028432082332957413616591923411903426947093048987493577538462981861753007198104008803525087642733968779354305272917579498783089169134889382642310677030377589933275281917691268295176014040757898519511303534861569740938258758308526036231925136130375033098364748104768529094796416349165702836118580871256319379422989234506946909129521308259733522230041442698942833346562359812541433368017733181092216107054869982728259662742107594779084274999941710779506033401935243022382843678299688667251452398943574184627760426277753356570589546905010079057386717725335916079620622062581029960705365299264419746449472357109757815974480609583936534306355965172127989827125370731799457859495497241009202264286172001300662060563156178674493458174824611354821895608513539573233198128528355237213605254860332134223193142147446971502198331305035478056580428407696872943867661883105036105976953089961241826153677854463249783897397686281337096899651880100246018764561518789362628524108624627221584202007969036758194803642120830909155571141388776631661511667342530979700666939954447125195131640106196865615895002844775949220819213373656382129676474814771734982183874197327046139501939395004940699989232164253875875227959913334735022533714659195815037299329211721381180141580090784486980958690370029699312375066818504450936762947802981821983175033732254178354719747771028869678383904406228362847184121963687857044982001732573205631646518174235892749028974826009014206557491663399633332141695506054615732577584602780288992544361209974616398248430825353308008937027314959916980320847876066668090197071734680049763828910808934601461745089531607626984725000475358439812520650372772744373336568851189975025758363051512940844666877794166369843449729800702477513841839965455493639028391742279967357422249279959031392957053869818421592261772913746280518511203815185368822848323683878969176166577228550912465227873469654580598254430169103835102855211044674236477287891296146948661913551070997315842715210810413136536850339301265353197991524893155447523650740485653248711599643930745898675196039748250443347294229229214606953701420004591125115941486461452080725746259625882728229617801374345037299457178342680092140653740337101090199970038199390909820755797569497650438475321909745424731156156053488288420565931784504931633079077022281384514712385398499392537183089974692495110701794834870824675809719306833524851338020050066067514895186636517133367846342947092843009912845855824095830090057857291628808612780314240927080490204587728136122942967111994411823381528532225624131213805950990682667165609658408044869794261762003643196754594010561646480383640152215405392289291875922726064869565636067658119818635168771206194279031581689488317116528163123257116969187922355096381717387357945381432050954859005661882120134857983971892372144077904943135997583270247138948495447246581784548118667134516958300143405542574574410079255951521165506792526675533460113119535527333756891109174060679978073628715290583961330776642643478678260642884896850316599361255563099745227152769791884709304006888000405104070518597888588704986449915996805360726078925074939508744355357741250622726125548156968574108692913336424110108056534886933345823967894215168298418751685577121928392834770224551487065298126914150261261640996294560553835584965348079065900036834581538091003423569222134237636496774283086135865822082374568223921403747107555236216692406040101597287339271328438009930682102923355550030912517467050483469801567699992048651054339438303927997149845624053117209944136119391909078732329529406633296008440767737122901776294164359067996317266914678201289940915307060520738137568379465309683416879047437145717234118660472678232102812496283791649101949359058159506794678353306671425717940138445342366602055769126653576863098370938534808095574591229429374641056931089187909532216948117886898799400958184099754763835062372540315549447491135850477119520544034278128859102117642063635060058982781302570264753739710818467929288231580281034993500073618440984466897868193825558594446897163307214120729804419639772197367061859513074094766911759116414863757385829465384630248715708279332828400371532238492740848024383683395454996177505150203305064716714036023432569275421517904047109149625908351503438033442750042802549564743397942925162183888317351127442470638603304615640443318014557130385043211907255304484464818815863538986738521059003895918412143875975404199208193252951382758815393639298825750776323148463257382335889741356971833010639779221493242168515811258166425834079129472331731342187241412116075145610344050724957833613552575882334758635085928810346700537123680402959999003748459137871945023448935363963207101432428994076180038480087006465113503217323289041198610217722886303577180483817160168748020395280299685899553347632859182742814316484997454543119865000985683647187239219288969473472060505541828828484986162035840719893585950401154016277019665214174461816046842314685544040949242761032703937695086546776205860214343873258928791481268025474946377272472278292491952153262335621216890483449678400929896653608470038857657391033224406832143435197607192923317635276400469961017281763550848902873496724999072420463598389985426024816627899792487650755454494486199011545849520945709276116733533017575791039276179537001797338697724239279573205289214855077275243281743933035769297840323592238422623625826388298532838331965877024109752288642016242647540182862947684873265131210065249774788226135825009153100749383985684703861095989759546089980717569875757380841376574577710030372474427396092422492663929716504726943392153275545087195580856173187486530589809348786656201516704336640021419137285442093441581650773776721628515322288292302440493355374619900550513850425083282490545670201604980243715640447180237226757071800497229574442838380987467828728421722199841603886574873380566891700626224961479721226981810427629025712943291265365873224931141764415796017348560691476489263569926945092052914411587173597200232111454359095057039449912486171905761964902023080479792404902887410311087233429938561652431039687079190038207260014793267140500536271494511722340001131786454348550690226329851724766988546254884429916488434381315835781854223534319904748311279301868156686777107040009604600972461134576686178140141412093280454428426616795301212645780720363304851767173105913760403280306242474451705869907178353763264599284832843122016224450727890757411845629211948471782324998441409174615368827784849702499567186696202872712513207580084437077846925370537951405500827163711002705869432189109183103935119214462832824333076559052138706885671318686382983173521940255237133266312806584204146383490917065068375457093481001549400470967021586444855984848495681651581722528399636346907310393376732586977300294968333250967442667437390658153117757502782738745611350486891902262022320200092461002633682145690298158526223000949737386114680233059286549932166610745480305369148247769233338842847754695009979944035395191864969957394372382317176260328662480559879036644290113554644131815016918839534807137926041307750575261564537819348457402437534233554313261975780669511738436808621270621767189680626462470343767985162722238130612219075885781030749316327781539111381224150289593077647340976971673118258459185058744006754773059227937671318657327649697152265284992618574466906873103346762996928858601629632082058697984783254401643757873016873475435925258520848682242276268037182318238906235218429239477923776536770078979561823585511676099956550498447275870339967202632786082790640244636543904500549036142811823745574527990186288283092862407165866742859963761051244116942285526890806287355747226842631693890099303875722010568315680237534424666629548958985895839425797775061860941029265573667568064590450758140216664157209218894061462474092333778280044767425847669138464797408708257534251120751784264593924006884615047283082909026416010579749236439249715002826633868299773874254661892973298183288504460823745092038239669105773494912650317100864263480337247055958289695727357884875021567856367566633155793871504297002189205566127227825308273591187872968842096835944352467014832773727391618583596768115061834901379388792038561405679732749936378175260012413595511795418862434366833814068316976502056422710098806854363179668533823620766351082921134319433751518342875552052062979764474702500314354319607906701736648582905391278061239006624415788688975720441637438624786410228817811261297211475991710516106455905544901904854389615697756111785426174133994200859209324994305055992628699018435932057230032256806336313405976393266624331371563486269487049869223738316357825272719912653957182536243590675827964534500198220288077686933810438735380637697595673568633114447366525842252303427094446821702746585682694875024182488899155984027330800227531065181990197134605691218302376242520932917171131979322542678867999703077790822072257683544385290950934651220785296341430316648628152361353410826063648294824629384380949803856202164691297100039371875351281129482881909632634380970603782117982492893531362605573362024114692437603020310310816166237031288953591571676976901980763332827575777165871107113023594409934615350029271556470436928479204353681152678964623957729353224251168967876352291305631212096880653064340952625314675776167961767560415572339040130768469295982752469127123623154381566580285439069705370076805416330591515626363177821393070629570061282964282505215862774495819419027067998665354036585035090523723111541022209736410428184443930919650936439002194570853326006132974536026668388040188185357299110196370056626914709894899042075647268503106895672604364644673465046804409398451268813914504703353456969180887289432544846429561511967361928422046668827317030048944578064429741127318212465917929673947478083285026111244658804429514700005495060046006154079909681386114517850431078223138629325124727852564477924661571986978416536151330023936432177328876435425830994179181194188062042674374522802204517201153370265472142357147845995010358844291234019308160680643064276994077742978526422951930760152702693646810844361874626446921489748877469331904744607730017611532668138243010377275801060000807754096887725768679045465549069289996849580938447152364214082906485340427110489631795142819910301754188831267659303773602130500513892282192594463462052932409803207389215858406764265051016430545018627548232713922030008318314572849186117766921664244049398869858614278126257665272588638571026008088925303062288146686838728386691114101210850736939334396983705809571106408201988701911895315278468264476868079251615252849179151501834495195130105694443324655773732117941858350066613102160544015297187228997695343731439809084573588164890386423258686744290122678853306177921862878706361832649145979174127674480243428429266324122361823318223299577235326939594729682772056396877913208990316052318810143079741467057858466254600942981951243393527039821492617775419322765917640576608800221219269356082501703705257589929450885165196892426453066476477138273980697564025807884323549269848292997721112437046067552677667974985779200677884510195984980612374676366975526385802026687368955014185929502869429391298936543528746359773961262721935197462026347229799779225774813433673453219635756831205941794207572954594052921339742174312840065100193668135674757830099211576990695139745099164070975944566562525862400353757615602977173236360524786859079047893639472544704447622594424991183923750307254110342479259420911765633723028446683556832155576424167020094518067158364203957487896549640803566595199636601346350230476727174609064217728471097259086383490486816741901680117922125830783391473019107824672978722810965633257522679020149301955788709998346788520379037545856389042817067943017377947913675253616196618293969280876878796467527673474488615432326266330435403146139050883928002964094430951834531114764623199145565305146425237297974084805641190157926596286042048299615937100003072364371079016696967598830689053369851090745112042233124938428568299091575508003973345434102687819796350422253646502750842308928036040992014601519301830323500407532272796023875431968742485806290123115934675327750555395623032861242692477492955378644005145345332735806574570351701540921051659100331720823392941588714992967060449525677357526203273172946406760353126342430871591475420268175591744720268160184009856610347512778876225068889659304059332297825541230435335389019371647000248965303655321841755894571358215034140180869657403482824449857684512173379166804737796348065347534142064624328682789797472973044871761318472356450690744650194763721181310394404907715173760144856359332852366880984242417715612793882863364964843204242995457389017736202699837629466453252810943123758261787350400172194882590563584763922625878637831014684147722990857418147391049066858542476246011499105409510280173741287920383088480594410352337123695098479994765177836880604545294905251004128152506128069265888192131737225222489740966509575647703042908327475451562254801781220911949057055748806005868719609206668936152796316843861168101435361926294921430843135711281279012809735855059567300301115396561148397930457638807123826971107662130692812293348583825271971255171775470823184752247178201207439121701631709067523557600068878265156438056575700245491375918347524174091129825570605509966405659564099194605877995990212329996512394258479131493091563654799525375731032302785650816269888114358562268825009012125310261454395316360638233748130350744479273592564496753686077147737255830351970591143427351374452662871781336942899168407514354516804806098503607597378239210463488107685451659399693009865109918910348229577390110512058856692031953681653068150786585995808955159598169416021023239356232005671100554871977362862972813257480592563919704700093940909694635423108767259524797770998058983395604393686069746099295919569816909597851260244095992736513410990092557087332101823595704485942846002484139254270281123613323877810424791267655914555353316811865841625037020636351614404736896066164180346764562262116602669942549251392338130969099640950247539283318735201569028112661060037619541085134814049560726593084710542275975296389208655485357065594290603501607862566285437010631448343449219227505382866222820065737115014462220272640507699749111799228697333440828036890299074458128534990416983319914386777230290845520168260512999192851379332651576216882394822160446821089845546973964244895409843757340197654566231902793510193224946189852074872403918828671969804609627105420362027754044178829330402098911464596170329036537572224746432423161671958640466814531334738277780237351946676624103514816539156449096505239939052295322883937345824046274887142531447256054108793400655710885551467283734201410384594559787104291406559402613396885825256545622932740861621527405019302398940364726987937784400115771358499934407210192373102769385748047148412853416111559631780698085953473051884466602137210214502423887209204790089217064813873708574713712035929167462566943500044844094681045375392308290382123622517114298118022205460770534452240552632932388966577208069409255447313345579114643492471619569069982506537041061185079972830831310848028254721333893230084574761548371501452399147283365886307053382639384710019221398566209672262567115221292748533848213471991349589923250622607941885113897528589136267988256910982614534584730479064306102188825225308157379939261091966473998026698987376738985711382304575398580965440875509572433357658738865213867310357913490290410377445015195998786977051761565078015387212065496265462008291476947791500741206063339519708222237960941088752631499322952943029270177539484339597685185860144103648398709418168478671611863684022800564210868640459456402249862849380079614536261909669932007183528709772092586297000692405632593495098372253361182056791043454037278333851985687918800766724235093644059749409918592317948497475924529415035133697474148945036721762914731241139006867574426935170759111055173015499503235870211235429368180373278316630738865620694388286646693169192892232587018220251216910729003710055930132728292304089139825358919084758335126787592083487728116768755315505391748375970266096336803356538766234959784325505353773424239161440788056200430985265280194896678457874061726314820210136242660378167289137885218614174762272557018917484252066441669286575853003964230406752789166769702657305682372271189897305492675906265944131029282086302091819122889194653910210847874051200020897332567330230471153820248132478218768083161207471517634345303523446683970570835364230464911057126379433483460877373048502836969494602142028183509145456844475621652294425984783733326502972188198417015099138752916546121267553424782957470416149193950187778778062326485689659899595140944569828378747001331267936547939244957742324662020432894556543654228294432675874394608547686776685780921615280882677102606829747264948855096764310765883396191196921375227846745101894069277383270158971330670587275800650878530241898084713108796632646260588000128891570194332959788188149104692353037690588692966052441757991164293833552727434189026006229670029327265887495541057554595819337881504420155975292414170560877250296027337216903903599822231648226358139686193073796735015539390102563712962294660878300379689068458371638707014519449672885382081459437240534254059584966435938387637786841064660654749511128288038124863523352561529609373774425897231052857697343257064640812514249179555494724173728063000645293977277839795007078850149970172042535734764422496780831953306231590257029408345635436552379541911587654914810297107383021874410638846772230390059016984191113171646841653105765182557247282819283110115697542132699814579191560105285388457669462735586818447133866752765963997004492922776998072608126938654950832349003324451921486188551897173702163894272855734989409526090729198172091948260813762999865022481249236018723959054607063695081320092048780681145712609908007551480305207242417437962363017793085903032106480979037744337144244555345924470080697538004704065736265137599790354736161036767890499380373411686467867168518458135110330722035997147379959517606825348648390940922371974455642891110729830754299314344315834701654043939033096517350411783749883791764681162187930481584475999235338940350218934397613452612595825605428323603305761521474054042692517957709772687952267151352608853316648700616948940659564405264733200176994214800503093497128660962653903692574774456951679586812817104426810162668586202712058024953082090995633703354572789561889175295598572852363995472400068872009014635448796375816970198716972902731593761788679441797228632766715272216624140131646811251926879186338980534903797785380594475088775362903440646065700131588411418919909598658958991104882460903751819905467460474033917160480087667086344976425061628022692900256176952045181414838692078819920401356870581702953776175174721499803637259622461675268197224780108014833041446719359646688624128629558316628050286561046171282544286025980634307794406685932591803043806554143511121839094593161192805923872007847537058012586558298215628910663520829592516139094232084825000863188521081119974198480813647056647218325603143322064244950159245235063381371248734265898945499648310054060686692056210313507199678427473505996733524112870435932726445815051134960246477711350295218434400747983494144907751906719826802817161130281140157760551725177865531104538793778055225029079523039755200788155027009934847998587859736731333591614786419142559479132100658231663154801071903018374897354259593165950231259182610716068136358363884166717007719446405065956008127754349776577984466779939187696534706044983525286678133761550031152071140456385598260004298700689550085037981799842583049996728464446362090199806806321258385521801270616184737756596896813191553553252299700990127437609540477106111581220070679684374231845482127015182719688486767180153555955525715008077288088844845964282062011503583148805880641615810695920569159960523344205608950413271424641683180109765955145165794561427094691138311746812266061036945491196031967294092159972934022060022770697389689727385751817711064382236649340882919862079096326490781529087048332602312150059394470294386676214142969739154623259956943209132094621737601827947110851500411378620279940770151271760324814234130028932901317623369229594068662860153158821509927191344814285869709507787280841158658324439484115473289514620698673798426945821361022749219939301265150255491116950057737765880336378231446334965061122991046181559672076498941886097531899448545257111989281680818339321526021056817703564374866506850391648256037963359712844032387813418009539963221631696641318796656635920153094571294084343879885242562569374061144796247644135042796296718645223528003647803026059080997770741362139845806177401478162618799776880116283282210491037298704654769431651113241165055738917733987222337249947209227819837069802881831660284652040567557272310918746198328628931195367230135992392965706857236280331242473297549173681464021675711153764783431158447812488818349979657942037804967040296966652165302686584010443738876566655241337537320314486829710640255496617832630418425116441698909253614866328743965780874371262943337959117015714520617579733887841602327791054721486257029480305357117616248446686476406676991546242611350947783138239938495339300045499481633290159864672409123974294013499712595705346933894239732517044299478300147460598619289521960149967469466104891989177022274553779729402053595945471424694395794099139974588661120036627575561765290471822753335711187757080839507736462230199784739498253848197533280288409418166648625641376398349720560133664408155404233798812908167205039417793346646498353957447456622841638823410374846378628333706214336654360433412906595496674934025763604271739979016743606208795160950908162090803635769016904023537324797663601144568024029544704501789605388379209159796066656250066166350309611361821569223929624864549178012892067423537073969834642278370887164850405570909417126526919387427044403414375903035611553810552263146719884594452119826201624993368844617788726677699901224712421776737415607304316779748829120487763617765927425007079761704275131012569671443105300499151260162088732978242708956837112650386022967847769856349022341799738585291860864184108512798292641164119184526892266581639326276788059531230063681863881953083494022920239711795712186510126359189157655945809661266999476022673786322609708485840326351721396009699383985752023423906319424975553265122342698814307061993608130987738180511631189885433897177677227356685490993200719406532220483276095795503747922208976375852399863395158713814933476842139005569405657032632622663667740653371901224210502412352177238771518784689950786124356914142788209042661025547702108854075583635502235732065923384061295243868278009419169230945529118606359738033094053825541422453601726053012987662443111028826362516485227751757887864829823011061674170470178237245705624933769748047762025372999605938670541910429088817954494215875504398571838695899591303977179607972832928579997955364224108922373614373162349582741675761936057580442764829801668153349088113464368635344215697167611545061959785895128678650504962466891524913305184249988717196111886084688634197808458984395251163994365425225177154766350617157020507442584928531459468814595437552726807857239779524921640525206505460188795329855871423394956041722915348747333302710287575057475487065142298508134831050374431554840881279339057944597784773169723119769149557450690178089987342825547461536366115210549685164312013506631983854983193605475323792094725754021573540512115159427102027880076838894296167895106431526772380291710779149170575237147923416155006754592040629905525533999564208163686688515366156239419097232669842288039785226062874971176899836833079696149066942100986123805438274591796145430521915692785866403495171550988172807046168097922978622500851889603916127489709558010940201749613756082776974412361663396215170672927882179842748121541554495195570095047344886843396309082412040596600989428143780774355862826155825175432688563028570008768172151532634874021531971034725609153795888486041294981448187524173906512205049644007212503504166696069089916301867109997794635828980066541381633908837021074653117141937727926025638645254164982161705703256314488684790029081249352500398183823413340392969892501151641225891390418410641504340375633797356810294926100408428428697067994016364828175643239075892766048212044219320789739779695034142743202592649253911810406704816848086379940244269337765578887427073871047310214095422962150433992755492316013766944175311223344209414988601539595691965885631427967687229430686719664339537383542793236160186747965448142444101529658882707533550177828519713246410225809285597845591221985272800486452089543886442439729376564319586733704768415944271112552005169228731062606334301414719558091464758225514061995942480898587580200525269517406967790294055435194487621713021214542843679680929225134665615596894218594218776519059652409359426724425034497566323093424835091275219157688702894439317216580435529807128781433609166173576033997153893698826242417468847596339308855311053524139200181830185137140239213217072317332527272305461822024175841901230857244077274382569920498849138878703716585697962046243505601673006118439184152871363184021297271369404325168226747387312123998900531483259485859855277543377681712742400065765597532694869203033131284365864483102500206432815240315684100082770891212867560914660471442408388520763206349687124120075714303489317052466707551329674126779281079713975910230716406144622169082322440768402699488058803678888326717498773919090130172243646560570938049541431485369106550664480603232789543783366670817880962312557010949008927343444573657353567964259396810744635333269003081933670841298888975559426057110430481078086686037377641887980405663781557122806774448534185914422934721486058215819060148109126491546036171746052649050551497286567396204117008237354574921012220833140547901967807249457449294969323218356917113800765933528079245741465132876275445401599606672774105708000952881588915750054567780441409742793212263992885430266253174877428455239623907612179571498834327498225982640830309505969687946344033836932277181666343545986496527326948772214953643073042926284867600006854524378625330596123891116462541264471588634536122710678344522340482210096557011703863518678207411082443124531116480310972939373166376330128282668480061984420781695319034537281871142217395601775299500993165025440207193966403677780197678617009747797565647870726041885463838125719092547000678746679248628554160623211650566656336500357514576613061738691884496555677809015604047585915889391927014478407182442096464619200049146570749162405442938634227588563511438106609954911653195318755279074680492398374399832887514956656228245444032532860991913467615493387592621158535448800124077780073251374792051840872522076527148988324828776839831625620906098500612982652850173232231632318225536209953387401303130511102780594909806637963980626241071674154180054015423523622824083888541182543595765272251286491356484421194181582301796799710386794560330526412496802635919058309218761022393847006017399753838989426746723612557684683784670278315517228462816683788701946385465145778416007236493083525317839926909765275773433971833450706004754688171468731049525756307154930075407859822093774636769115276021218127975934701557087361196601090962016259935596911406355386060614156624994434816712333467496023589725814274740942784953371184299767828439841009636597456125313394144175669047483025441543138491963304214907693824839406856778696995966043038351870081926337019054948162851894715754550838395186399751796029390812674124857160099937227104379672660158895272399142225016245681704426823497924806648417190662154354214997872063095509484401885977039043221945048611392227148187549008470931834096392968611111323662192063519572960518497895639424372091029729453462509210291598921680559042595464265904627619566120950335006636950609779984958263837338494984382381508314592265171275679060904388483635941041140614233150008636054521570718607113251096833457475487932964324240659751178985286828844912927777048592065451510359744096777657606665281228765869112713967666038562399085330053263301913824251068750839901943477212722796153922939592831111516220698387206448426208130952497116635551313500663079020987451697290148555928248111268652827901016935847753118520095388338412895951798518611455586271724991102726316044248747390233907205745277720416712909670231975060420362570310797318006214172709066223233674005701286169501247563044234090993756444893992693468276077382662963641169601863142781682970004907851784514241840625736656064856969453820495044989849899567996460107154810732802341869875243183421064982533762860464667189150374209226907104717880086089506493091944459178769818055525801756196267337288180997124650088048508892179884021532766468972938582419061401274815928637740159404411276835975027008270086190756211786772106263507699517905862145923020818859991852897905892582615452344724034974315333994871867660027735206967465774941094062719628515929114571892753400123731937381291446959699890425020502627349189151729098738710956970184779455305890625404808992306831398884173894014749197108442252976257793259925321344018399438178096173604541731767182241366389686331900024237707461972058383569900498166404820879744684441677955255017708493721090942937828955088489892380517713442302535324974571228320054674258794906750263569542225513420478350771906518132169146022358632147929774863357570675181609506266070337077777228269639252636835524104660870188446642707944430466611055477160047959341023268518056534444758645497818718715203940269534193886481737766969259747109389047329524972168168928809839903406423642233338225600775394287403892835433414259770851912969506541270471074974701380835702970809971565201689857322898533834080076493583869104369843399953643604745037584062995838163458059894334606489440552635456026824308769237349987447863649027288453275981471365266085922384268800624550841042417529120559804947937373439855604061117116233152320446476395231430235692381389741418745306643483943218037313996590777322036179603186082029781562061204778874729955701432514380516875862696198425598412938734101349958066556999981740632520779163904891308078672166387429064685563232129558801758382675594360287374006347333057080559410797870539818388969608121314400727479027207054809080741699485628305498428023767289708704076002605498571903994774290819299089315925780502377604583548428367798554817889789588437969504677572430763401842986773246722893188083836059477846620669515441358281316600037305079834484129989353388847267649098340021642770574087578563921500754935748182275367758168351510368313222707015512592837808996132500787670656407105100274709541265643172727629216692862491943396590265900182359715318525460094727824591082443765718612392007182621888069262660349768785158804567815947607945809496022103797045455178293282973104087310874312201645489341828894418431302719566387584847887715624513054444980048710722103274298754077769350193161889770960112396531766295524537293334275294934672773354813467566596873032899033799333866218197883169536854810782344335610324826465142287420928468803919920630143779521196633305991468665799122008636286180156457204421803290389732591458282254066251927694468041645043125261093681273011140577226951171733353207302979374195470922910746925936327869108993082646645490697979594523789830036824969017144488129952112969649847580091140001105050164070885783850414889165975122405401626420078013087078635077795393432551955060292219255842896411715807897486090552737103668169538877347223950214695723929852177868894371258088096373197234248420565603835607693436968011848046400896399229645754311041176357720966813172679273580783047367827386290801943797605843725838528053578103442519995872813212421842177985511538109196856294079089060200765123919817353463542687980810056569556164787918646704184844610439153990292337648942737853190994561290180308325371278453465983105627789069839180188470768820126360741463584871860195233555713324166487512825957975809419893638290732401064839804585994263939780680311824523042625059973879863080528752153944904648841588066737069575970804521675101320894664796688092282573328928297636926508983913483333027543916370538440437455488344249835833269969491002509389520194448432218123222817416073496144331386589307952093539817010763017384592983103955600732306739103314623861409650272561163699937170577177953322451439735374400061735157424874426170455520218505271172525547216242411825700288386486355616223201086533841360397986651399868004204605913358810486754906212244414773882938819436319904442435912719935039516983166409724695473758923633401326261007770464515114321304788066990053141041514976148523275670355987869955453474884037038240000064322373276791320033249763879692111633146891248770567220988440883738365929261557210696972635279734621962182881643092949618744087756901871900993452005975930944716652606251617367486100541651177170025668585161401683171369539411488857405439411518422546039916294421046440964027220491939915119430720115943721915385043450102523697076468877806099586296259546601219191002464624714584556511065680178045915721327716021275123080479637124133802203395631912363741146102392815265247122536607637986337350039854365523887361806085964325239542995754348395735478332679248807141447909089089550948857379187640822286912012021791925846349033268479894033342984514784526354366887588787229263970740650697760408705022641161835470829767482094640706635280352733161435277449287408844595087523477127469538285105479797294381286841271915087918144066225491743891644396172393648387487347051673492701596009604970935852658194422450713599285260750777044880202082311745837368590117697531625647738370933500340821875090371463466464653530060266385623944765529838204402837672528603370348105813717144434844490971044695847783066865304210860047303845203196696053053266390989413612898669676863899006576557294194126593064645049225964019621716444207351378760778573397626383867679501303097991767553904775914626311783138635524688754249400432933962909887985405415031002187269266924485986806617317245124773330318227516245833919942810521152960143058356783449213391338041899393368542013700162528814340455496519128135135579675123346183090535221028989242188475661996293054057409790781824160267748592966256921823016961296484712571857598565972214507156435486912377570860306557078589125817700005185767427555267078712627788634781048184978030024031823991231616061933372222967464975708361608248128954756515212493122791147568426767890625532858255849938485075576004710035382786513120602852705676165563350643363343007258056683734759100973997307959126497015589131865161811546268128216035218342167718165688207564740951663058990754070775734429283550168024113054622813924790898499794817845441247248996030758472273115028395538201015265028562437671760996856047320106858678466864568010054334275112115591293183753759804311674764560551215232542262813461043171421426436090075863977250009986243828652854993080840888183195756760664361794899945673118666575618821846880278173651348904783280510254332732087003677988623874162919869998234598556127116594369125790062110178351207410892638343246655821476446947432473565598374040204708949431942925598395709525628828657600848593061394973589962356505306424286555879875652495780769928480684977535380326083381347979713923195711360183590684953173153112892004643389763328864815992731974169823017463693656111465146413426357750612459952753679288653216334745742068995134220090816604867935864996669312158120128079775771396036913625668831560124254576432155358779241140741585787655189530536402925986970791219446918359258836002681464009504908207385594882188920348617866164088885303143357628561186255929504926511577086138898006496935268262774178917834465588292648320707710916400028330537736851313414476494812950503387404483887925285403039287124599095442423622772490920107002406222059769999804225793779440731031881140402855088915485020286542614403519923022195870437488512031619895357323315424067577745747012731555993494689175797578908525994829264764326009345832226600489033632976053424611390957056367492143690634513598489881389434039582843673316695358940184144523582605381177287507520929987971601786609494319353513892731541242365103760527804829701772381994964294056558458873076621223140816225202309962237232788059677517722498240519360379538094416852106663654307179554786831734000074662013242057113922774726346108850614198462398622426325851871168158671166477262976864595933264660691824314722801071307039582478872311108868657853457771868718932453572792632675168981521561239983365780451887445925254159867202076154534070411361092220458064254285315033778365079989454956823039719307008372377238801021060193717854428076269327765306743107100443734192849558092203342300094421862608315041814994955193491883348152316793262520559187929957198677868168723844934250189119754992059866027896327308284407720322018120119201974703892256771362903501308659954302533507587844605719832183386198441165622253582474016008974316810400299026900041072009586637341107040092751769744070286140175093787963916691130653241270898489644463904110607948504232260334985193913382351199103982871718776101018508251645888922124514874598084709794953636200323065294285133227239681288256120411709621398006723043481235253329619944712412612268586905433556352970722626950463429570784783504058570832623851684343437639474227265492961304015752071153834895666061288751993737605570662864092158577678671060206577092519427544408238547126826178118343205363019465481055092479783229730028980458367277864252675671743761615863244056249186296241209742955061151461699450161275399248924915376561267821095200200260567222246246465671338293023919194259404367361909068535755189072901000872213850710361465460717105641597204283292090909543130716760068521384437185085616772327019024177250571139091014101860192095001495049082206041593646718044356151583448554561553557527634769355322911200920467335928282110000242536058485524286714673706996616105487613182277441613430771351494546382400761499569626850208124541250301162088343826964729111118723927922443431753549472268185345695732538087594932437997914113475854452067988241126750502470113923737884660042950793598124005751663233882017456209237151642573751200601881743236618841402298263195493326354263028993321657056065464026148919065298169007246833266229465574927606106743942647712691063697259524982531217370796410333765851317583839611316597496468885643864652971404564659182037228550497310059543911496705291522808803795563442815261337420106135332418880786562463938392158278454897514114774596203441893088944997173411355178084338756538281250103371868957083418611391282648988209519332111664042343836875849535430835869714015981666441616699384328388574691836773561063295995140150446598036175344190647242141909594702999974186564795943898236721250708426956200306559130132528194446135671277719023071264050608354495157775146416863277675809610070421040287918618028163293402965408924519146658751770136622043387456403279168615238793031629621772072559529941142410153571973283342529434365221831964100585653312149638216044626390379205534390482962453588486551607103279421125741298416795340035890952536842697810582609235717839724486837784663462874001446159121856340946154927931004783852568108419789948287728518188508711618991074459562830347022450600547043348979554138877438464005199527971838064356265161742645773269389564978983489767319551893497149204061507087967680793815556520882631046715150098765030995131558069281877908240764570294671477360079588341576166555733138072620611044622469195424272553307643627611610426031508663710037521724585018545707377675208794539668073950948394521181341252360571788236335814109426064067007545174675727845354555923176296831004896089697466972206516526136241029633780691104801911220938818370921207908480897809925286042155744309930854665899184128848242014265011921969182307137596550301895108000938738942456236853008892541925534293670693940865855354260977750911749295716032089889159974672973138935884782678752551836043839588146365994608050300230719160958217965763553664007690757940683163463112386974631157321626084707326837358704663638923959495851767879945875744706739884262792918463104339713524102729881671963386712189125927085938134106257635783863279587743895416704995109227496722942097468075705575343072736804299842127470009613447393663317094643058407648172830304672879031723076264653929491036293898124504492139787675576708359792476144892450967845396141969706222387427025212439418288273415554640164249027155789337117565333135894313845328486900949552330482303074231373323089481717164643972019499069118913045281889812280290098268123167269494672186313562553347088371796941949768009917282833851672973939963958018372432550808752022860456507882280612086240591114329042717511607466444217075499386230801201443278806056400600076749507829579357620792864626455216830462069253945907652192135741210294439482487738451070001468512234283567990133731371993573351861396508468876973486106931975713573946129141403959813011399329008729965883582792692074753802562208185362572248716446845826330042667636115098811789227505566531236867762026268382526746162526691295828624037034725370063873698860132520201081407003604514606884451233584134167431716655913874366926207464975180055528449535848936597148082563304222605451892173563406086505604912325114688726728863978887069660307183050606548194359876967161423514155350196879200070009909454872710848739201746124377861893203509812473601858307225677111369691038461047115739600801974083096827801723078507846498913408480077346676903781098961175533220694259413481758656851520760983273945618534399052487640472554690430529080801545507395037908488951696729890072604457144322942471981048419084444300291941328383058969961829927016459528316310588353305026058648865359100889481094006666765198319831179123838416947788345078619877863295870622279107537624982565273504667969046970827872138186983722964787531153367711573835592075420384787150877329617929998944081893385084214099421415114729212721018225133247367511197111386446814626846609451319242140756204558133228956239992118393626272695831727400270229091820151031436410069439580742265917498918863126859263465515943618473500876300178113069150975667473222332188843534945453856445742446682167246095047937715228426664295689506252505257869634942105904542083919872600352315124988155608866613026595491665259068231473754919074618552715569212628776142394467895169648363765735236492369156754397156412390390634709077650811650414174274571620018340877461313759696688289160922838777594144298790521767418791400722594557222983555476712004317922333664145134195619744862784880698268353824656238408977317693042938663154893572030124859327386277266047644878588415499816624419009437453767389371663340887730872007660540833271800299753764513130131655114674256424599872258598606824264350664754200000621770336002070306578467136255229056109420886440546940252263345561322551388287484249330073431248480019558866403637903264050632393568148686115122560278567582087473797446746588083970643557351507222568951591327672580876604214633778973578352405206059019933729107514904243543445585206814264425784284984044346802177875408340498914881109255263304443497067214381312804527667502042969760140272270005611649865232882268072080119837588939843045072762767838982893908185077644575844017053181117441168210564144326243346456266928283962280086402521518609249092926950284619337954377954910521747991384021105499970192140283882253389747831519698497814769034409888653365647494685984217169453323276713736475417396913064719664400885006059074251222752552184626494236104909106623302211156771503498169604969916568505251715256607494471859655370940391434307587271784388031077171277921745119659528901980374027330215029945993687635619655679609247871847229319353331921801065975793590950853914441236824832526310851809255579911653283964504018744522678610491148846147658318810018117478721278342082236412778477713930502732165014917833027290646715090331642336268448657346816824291038318843587681568037899398464148363736835545212702123848297542042890378574809705277164692539655988554273255417675281295877024242977819140664785453691012252815300622844512557888749632579128856677779577008090816970263129706744577036241168974193490621316445972171391859525756175234306621089501026000592242011693517088495020736253958908090746917241515562111650502824897179814690844658436574259103327393343801046937029406799305032232106983896015946749031118386862183157285815323630027385165664853463104325387521803522796064588408148320139033924538563693906427916469625326724646471341661453204429583767615071426792443612264683133736631656843937929118664707020593761320221334218350697157118189417015195992627339196273995281834304892986613282205935847013155595112144849914713315042491887870020654067733303170765287231291400527815334743280792115522283889576067753326627438348874317276337735389824979362499346379643271876295434466839154711111693780217754528271512611916915256560952703011427646558855407356760329563345940046467749303592482902844216759984874479591708684627020577820513066664712073528452857777325218786091003003948911222784675204929881429427684016012219980379923562333588560717444004297611588811547830721075735552834147030533472259837933432661184559119286944519943997701580994390064135885997839732704731060544329713952726993533834956196419315360690185502233667391004535547799044108923937484333624337467575275784824870677149288411302488296572009579407850386381657774630201836082286554441896660820898602987714154939999861336469838480910325712372228874389645730528328692006708246558751778831275521258457093523092362658756995922701479333859069157777965321077706892142922961148639986722958650739027303993575873033852142399663718762085635433059666250250627166057061491654666329185557165117539969164480558502530914797209580097998166625675250132513541555235226697690618160543687619900818742072945284548251232799893603504600469600100079314931890606914186648555536584643473380067755873496512588184633553670644595626394985583332939558351747811665974456611052452310657544409958148255493353952513009874898590029503408612673285145238417958235977031908945542006265667142079433905080609243786832168754782974419807850921513891606711876598110051631759621684507396989249712623631049798849304572310821227689120027885239332207618956232273950830876623250510636469078830901756942242156382652800346031715615941502902038396503651467609011099138705117158539515933754498980529945458854475284851973698393434367346380693790433227005576773741512247118720046217496272087854879287950282359331194009139831303802554350660934705794138931855180687503614570162944018660412937077033416681247555320579733315171613755766012315789256480619818409843385352279538681609787323314918575637244490263016090771666641760308019983354243182270952591621630568703319588938095002159470627532987679358545753917014850807511586287217414851805726646060055473915212201821480925967958785411498558303894254678701373727957979792330819834389062604382781070360451796033339912035400924540348382549541142073106374642378313329908955313518464207648408012633240997388435006074295543339077954613825636255648796827071741243096351686953462633769182279844660436164589340989280833754332212791202632594670612586830836283114416679545994825373025797595805647583487511191973981686429555691662407098890810395029942715170180451713408632998478075399651046905199300115072754235552601484735759306599965623988165448258023878478130762852874307995224448704174317954306498212839798863977297234704529936190407311892150462622152847551040480522374372318114236055205361301151259220396106439073525963769806414887710508544859721139154822446515418681844463246793907575125642840194917295749576104874966002632694776606058165351817229126982743694407018751828528520442183357272465866266870559134410459449236444439458236725630605839898147697262381845524527009712015236140328680332155433625242463640030577153195497641237606165081001858219234617844647579635040666868530634392063240192800984354088818791593989045208205001327529676023087321005917827683517066718265679445429353602507286428375131814038367339826656287641834403128220647096873400803363163359404389464833261286615927113280048505939284545314159192545538265132021086565607507118361744076180765574552195690811273699043734093269576821959927798985817435825072231573680355865908808325866353085062380433066397010707643605283070759955259684651730260981109807377022283591239815951082366492841717776881671500343622203452041375489434592613133107983728487404419128015941891855575244463019114272973847219459732180658127584463478052837652081680255693828697055282499111513963174239209155480133223800820621579140928387502026448355489604369037049597729302228828769376622007043142796311019173532572502119560830007877429453426716263597992238971193768348361736337956683440817484243709478414845380988311969910423525494238898653225465573281086519967430166478510411651395946722499332205252743176584426027062132178148764737058689921275390484284987116685076868997405366924539956527481235950137762335185749295689694440811561680704798001157482442156609601746001489369253153369300061972918459550219998605356520011075428510792627804227844539772793517709883446059995271412445400007657282930336927779280916826004221171736792700340028210377139068345366253952239791071507446062132747437496981696271405214507466496356700230944656021890809048575104647477661276691316892870619962049758541161775147078160528335861933942916885375586121688787944468430435604640604970017477795688163834326052814396775149373347581486248480391388164512219720286423894057118682163318164949192442596290087856641253194598510632511614534286666783933692289006692710878864946509191092276369919406125350145653644686332726147586240745223032929239349106089873085247608347791866508865064052488356530254347479791276882789512004870423710038656402465908945028436607687568713577767526440665632507323721312914487949210463068425799094827770244245832630905904936986755860957183149475925032023247181602200529749426823336952146534010309308681130300191030723898784820367868442916397252250528889378896531464027235427646600376994378613244927391734726867313844398695366486237770883042305377207839335430143605004857186865500561923134598807515662628470452925665969454645694529675074980813971630193069714765895770127256152222999556410599901474384794662499091465667739273253981789765826079775794394887442328213247953539790948034624590639961583687648985493706696318941291065097923801940348878320925211673117505775672647502522995788139260512042922419468613049185941106833038629254210072551473958844418188253377086362650948782610331204286061996314274062806655343716974501119766520324755135732728652431421573280647234124730734793744116414917826686615969080440664098891937992401317883630846060747503554542388835472274558818790004667307002019337119528194664518541945198133803491497222039781604891218753874300547154602467279398443198298530275180284399273780707305116416807972885710846950060019320962475141887796769246476290872519822015901471658378043112913991991192002430877800737607839413876835332549632082796766350981650381151503675310666471077612305051450757865674765172401729118550867141672613144260904891500590991257719283405417839037289565942575435965817716656942981640691113194446948136762922613899035706385910305285944213072444711105791257950463400822425657245711042783355644184625642754348946245218316889044581387591251805584823507774935240525265558802760775375937854845462838637070744118340995642807568151559364976511577337709912867251678112499849954189674348941338612569909331900282140990058633007113622854733341212176531353596014029052850085990420266178100123375256192232575631958850579862346378716358236985707197190689262682371748006226500586966869840373306375729370310315103934924191014230414739800659710120928437819848495797484235545934849881348737111703579799609886609584405372427860800841966587481476230761364780411631846548001501207244684085944486420863565263690029475951257289602917086649152213331217461799554961766889999623708066408249456114784949025933342794844187597226540282878582928920300037073264399756409451034771596410674803037370752025295599867301885100716008911147235452323151227100588184613096476878072498690896433935814209743025897956187646604670815919935715858131315975180123558524143180982721494373013114783043884962532628550712660101149948583236292679729714349277802359333885035851051135691412119126947059147590166782803710941521882698829888104577684508904398697077028149419720768527163933662563079528453507146138139882671452241470849659560626876530866522749373007512765826382622889267127975350066957370683829473839145451988386415583618510186965246532012045142592760291356949347547799245472755749919683526574439996551940635364924506040465970061438702347105199893698475854846194792501560281117664302495374798475081297532434230909911681508422889917905844133984995652399530272393433523544133275083824966693244252240656086713328008986740753920449605022919840410160457185535293363392241743890720698821704091517310314862727825066839927601506985406257843714898622495964572637830697290849505835157987713798262250519459171005878157664457147527967529061203191511462801895402726735641100002813415210637385769956184093153683930696380847385067319409664067315417112244070471618772628337480336094310654331983645404168156723668517574398390007874814734398602121471506411315103505898610089779264816729601979993192392737097218313193618967848693450443222198957107050031912176663792438241619738760728985615843532817560621409479238393397468734862115652927786508749242992001681918441472277785146581791872973088689598944962266491129241623135994843881471561252863958629565351200705162093318782880690728550512501754567623234104800628357187857374639723257361022851705297794072744872975694720807816001359103534852208664788442743119370661063215643746707434927052996444514216007949900569882184293706064815117142385489908243991565415144262946558047765391768727862966724746607435065567853517565917858761628466232019460011342656302155074626052583674895686137457839466298576210774183984993530235954767181715379836162683961628616719879411080131390533253157262869544935035494403106755869264529847768565038160398005280464839247913114292489355968086412853130839980884100348976426492046902423352367429757608820396401781064403321111130187517866345780213027907004953243693993702746052427207678617415410680447316532609581535912616135403094332931594313013365992489208699933856969155974343213535392185642962784195099732573100324292366021650197337532287719201513428004683806669493727185892077292189594717139211960258775651503367777269388203497595413416130856120982028603667737153719257469042311942152758500874702236731839929421824735274206034397260824380385498887435006004190381691051571762464887690250887354526335632285844541122273967725745667741976827631375924430912420572935965649452913996589605966312433845481305330616104383667176370885313726624232530892103233462927156915276994999424164361611180026318109037656186014238937922985996404274559004764520326601504960304293271378968908457343133766822049385166383306616723053777987394575851052856480139356344875117494684004938288407278193971486430010836753363493712800117376812904815873827365157351504907059104753344695266948894445519533304909554486635536860014707816720568183727756433882311290349503684851587718873240264782379357164208720871045034917136609956173374067732798407408602512170898377158338337450719636634308256423543508184130825695614427101025498152202159983971871531034494262751046994208556386512745310815727186069944875956781466635991003867516822083796936924388279303287388374866270714516813677444319118137234038952971727748886889469320868860878804759539451581968078579782711006385350197804173853224822201307568590371603233016595023733896224856875463723661722755118346741735847572186396288939077302668073958048442080596684251756418605464971703501894973907633827493570182012491082349494847929756581761965721194010805284751195850763322959618016804850599378521591050656890177327519645689062180507485605639200344611418564486261444101850988066204023983076543688078336867397225441115413035748159769336555301069194146490106297884828827071496971384451884553654675520029038227693399424510185702709881793969994479369832077838245351414847815539704664695630881223000943014551700121966733916191233208221452697996736646053898318406504795575418793244396601022754294118981826949023318926714860814890491538985972831774114582452851124315573060133685171976714572120428925535758500374150614329204129545556019881455935659426033340566775470943662966742575944240993225664597243063135253700360565144868757644080199447796524533706824485089543735149766311879394739662369281440554129346066227948416629954860737132748556564042335213333125357155476516019749510780801964280601179741458898568824033330983326223993874983299657644281390603576684255725006892285417378815243799728621888834297532623542657232812280291711391034428366770003632717699920195487984295109508780333504408751139554224977483011236075393171325747875870419642122487923702597978605382461190279212008862807890800056500452036168946094420307227471218912723940116288190131660513809399907566627315549636120056041695320062613528082695198417565405158022890437946481023623252754753275706857959670067778101610890395523820576054819042505468176340452171815965008832790213808530936828027835134770676356884789911116897821638865463268281597314156258216632451284886885634300150713629563717738038372005045550433107561890409011302882736609849184392180679756632837938678679117275515769308957088252724532951253327212068380841280156783958434680797007447574439561626898158609635003246072873347638491832721398422839451566818040023146651969365019721724771852088202873682598244353554151845684497467858487231646639631249627730647238950717482141821088536981018442418387689055444320259112002669155853297879889681900883333895242130759774056413631367430376649069574478701222553038191908164113612114811044139530865820105052283041119828164941448720774443602606788596600113321768381884663384065800401040395321259518004927122503043125957841229347292217991729748650176927516834370434168081140105477738730643303674203955534831750822865617653987580783363299055515368940685657484996186577913589829048452038502049945942526114690918062005732175571744390984437868270293366850305576845934147790103461447359511065216793325488526137625634831600869428496794992274244779359581913347390928657774715579627811492979904808386933274077359941959126089912109467619448961478972475706490072636076098924306924610337355712225409141815766411921326643497918925478401378613161882539067193314389429167049002729729226393131540571631089675111757714947172389086788656757807329966167270985550745290431416318634792426340745701068899641873165646338856490289573094177998245073218228519464461023073164052510414331339965609203525046135800737268735413078496485811425443767442215106921776072052392992430195832679304193881891116310074530922336188900532302634087886823177967101268026578252221774148728372618556444300019116186601603965688235709643328080732684769748895184939164582886067689228056515791043697821125748656856054681856308136680100618861379664418835397186481246144115282626388729108098501299004748064551580164226826644737188203195776875947736945841043834258786572509339527098788153590055471851165389677078296638332767009843497988831045759137679973426204296377805682537427709936157916927555829060878775295935408290591958092943388506206007508506567958058470262905336616757910580134760723571844506274088980440282021069842151693843412809617734654691688809822711920671819487605314012543868641498690919290501386795455032007322788270450570488812428066109082042078868434967902758506023659302087237884332236359154426368209991590393496745049413228923825561228019432801580608537735453587849407449150311496602728101404996512308291234332776288978509435932715288260021786104931887470743949555764697600689774310361635339940086914351649373938252759433787524583014979836148887805107608057312780177879218137045980738466029161973239357048902363277799483760169979722522255699608140805247167390868195019839996283321457524813130407330901447021985243489806153855189674695797663506363200256034923645017052977582348067201919719693387933063713414689113606240612229616051984746576843696201133646691035589247733561303532120869815544589807777472827986768143850029631612927442673624639008401859261728435150674083068051214161902580697124761655746362705800232776096222193721072930644754905100420319506342247005356800606428276090338823575922223527229837836494398622053481335955214898312265762992512263708037391995699058658220946527433214555678460858779935012963657470230634802322526639271987239088880504788657945513248481818008208026269049331795621794034487558816625494020833508212753649643123726098798547974064661248374323637290466016967633630083504526405116832034501505326403106904960207951539523336504133577844519478836673821832600249097166199764999189637427350878967617678404836950278319500107839251523822936532697207159769986146717457379655276784548684940087270780478862570552429248401213286253371853518827964559029107362967872231659523085500433458299595065457426559817180038991779169160257919390034055187459262958575178364477264053930989574898681224027579581779747570260508854742296341491592112305442528678033590201574386237284834487202824717248170260490018916065165949775312048801087003211861746040875177881121837653840771188916774577715243705455242617607080686681792379627001125613003596551830252915460284655054341066550889026951146223659406090663585685282548430078037339051912272400732644524292762369025187322743026614641217016514646662204744681404517681336270084135900862033047171341955917508712817147162792219005888547469433050671990775019697369293115222750481709746443198914883209946772636648385496344829175676982500382948143816424676583949475448051973335463612905970530590256046022555128842084083363344460205384341630226016430138177554026884850316465428241741122420895640249274037340197359954559149490821605554866865665051428888896283559575341061439883955117537747874796305435922096699532207675941164401765630240794838007339135274348033199265686905740667091359378615608875226767404023899179130076896680197493245697767723491149058984484648132610668001378102522595655993476569721510444640229430532776067992052928575840352350717335612230876041883170939210726075638075289206619934692436503641314688842542670967871534589503384666678202806153959545532306271873114025365864746232463147866299339188508399028138608019343989850533893956153274261085449564395626527075540161662091277845687478104226040997047300983213567679948020997996346818407747437104735773294999431044291084125628969965590092673252923108172859922076000622344526166225626949414302187630712446208178259706681308794416648843488920585312865276434928079980364432999124829123492403654434568469904184888442671345146699394590593565030697539841355671475711597805301736077728503520818111394730898492223863372815753446154070855410216069897974715971727311660545217210154720205291394877540102398534982711858874694902410033746476078817720397759005732606478936012307640956998111161374554489740242934419256978678185891629247362570723870665133846103575875623989046052311537751797323805122681335708824239778659981420506974109345046336185388152865713885646897128402942390783413865750773272778199598897400659606736267796362557337554361926915941616132970040189408586838657813455682323566412520277926265872061090256793786814321816827807441003164474637747395534389002337275006688124554574451170171576103089109003220481466433763845243244677194703179638492579275636017334738131825455920550503928289522108723391036036684657860075162789597685385516478879696326846009790630246564609279157322371382386942549504522413692507011904564635577085915400140324754576446704313111086108651515015264379614488076928710182851044693761269310891166298579729063640879707672684339015364110994960918497948805732484513496881322261655348507275258696341253541090035865923617966614122851250963210297748958656845691229567180482744659214654911545604906349563486539037829221620467907574728340381942761140354557280081417259187765898992543247880972817655044029135976722818301136218347269816091398584805922473335836669095867966164400731574384887973894648391734744115159361344842213710964673424101667886424100400401411405548296619022553068599979568136068415382651236786420478585325701692851250956976850349074366470005520304972798181688285678328553333278364129410227687186200630393000644980575374596536071148433887616606816949790623604110769716740183361424257040692933555702132974355270857352678857254804717101041133168311693340536221974711516806878568659763811897236204144257198293956980926640133807118892053268707974965576992800159530798096923019622647083044885563247364244465700492996753074611461768032761202633613764095030892668566707934211570362988448559449645413526015331776951195043386543292894305380973560312696210678414212791887507077148059540739088752787217717659862396179310342443734077371547654725657505494047726299138684560970224729449498337107571156205609261135355347468400597873389591913578166178419464841638428575921658277176054088041627286065165355372190193485723059085392016039359115695798987273014660404182958280892539496134198922532895808897684982615591391689681055277213472005761894245044387930742059599630886438762700179418774673554357119752201762387732122422593889012195367895027139925385503497519016642515791415052944826432416297496655150939454372947998494515157566375586712016397484934453331101200573787472675247639355588467308090528893003224731255379280720018409848850185803783057185759287720929258497330096833701452509134416447024406793358946878165418479969203631201614823826669951609218425313381713712084580685403892656642273276383130036888733316570154445390731158698264435339127453800456360089688208701213362870013892539475775268502448269246035200675995606500523310317994808041384114613507679740069969442339312178265879046100446424127259383789024003151713257380185393702220531920512222509776612071070288384964177763380644077187911261863338742693233312809204972303559590020013391114843726804237738951271553014728956337854441563146146291457991944005438100905222774257792637090030451338105147207643355871982483142760098561591745101229650462006545657445778080504069276556378456361148568397787674637308314062543799100200832931636285976472306807388250477995554521446855268524294850073633924444743057357243406176258116775260051765527966296130319000547706304226913614158612509985766209556473513973280250735150052315059380190865055635396563870409525871442267313483857001365852220658516143709577282727066735395129880630341548499806597268034037777300835147396877276921590088707124376414071908027020403606982038472831042236488502806237211899861693916691588705880919747720950613187918406084347469141388938553169582627895323588886785326413714302646818762314880585257362325595141227354098702211003592156119816437177497764297800566050711827038516919515687814906495880691203258512328556159393530239896105073796605594724378742887992201593951105926643425635417939571523998876772196427121629033271244315572110900684350099560867573422666299623215928220191580751670811795220258915099497155204758357360646696701450581323682491984560542011525970085740308889797530395729043644354040094630299099278636231524777379210915738881907665161142042742165500335197837286181746845797555493266845978438333144125107821884357596687567593135972239840301437975423710988600307718434891261186354492983190267166550442201170009472110764566793739242538248415377602942976846134459679308357419742452897948269516055860155315237794114785073378708540865771848880845741049384583862037489079363051402301151844981484485958112197893991476956384869630214127576986005009002499287287961583632346755699908724482158595255104097975742162724627967615522151558758048874578817967106625871216008940816165214155652214786503263120711843667732600281124642602598821876268316573979993277226539733972883846753328585622377784521123844575722638799085432550219322978106245757986981969158830875557093568180929771526145253190510000907660058283544704246361157293125147907181795586406519539294406569435567355099025009925735751198725593454031886965109752582156571634020661300285120604148994946263382794348492315546424585193083566035016663781550627945248954327927869492280211742538275943827514187819507219678464730472077011460231618494423686329030078176625587273782135683346396816608068916643402985463506323541594436561830634623281333594711851109337803705002927101283796213450720734760447763296812054313815908392563932059907077304321830918039338456660960673743907079826275354438222618229775916156832186955938728355110264982943775657879089297887294883284609220817263011839977722496197964964373534653735552170724427064854462358978242851070340246831504656248408108006356628922363401346467462937537721885173428397359800339749263984816517855180976729047866625355399323099174456731260134345422486831513158622234687074511776195727437599231972417733638746575112995818026525044959214469793956617796560870418322380616254394401400886717258286473273127995564083337835541247026066588004554861901837004281197972409866989169978683067300465279842705802541826996459958697568162189338627085799001075115452242354420590248159669251404370243847010875172907883700105144636506402898021866205300384146225732541945081337497915015525106042382969423315786419840792886059250838762791167312403338533007219224806450217229809305838849487975128627587708446080094452943487295693071787856137270541183961994823297247130331929101575561447358078351967322442728999755764942433904012805781099018341806908549418431650812898612497715088111441239988227431860477415209616451212127526302623069296950634666841162574452453343184527432979098528308819427617360507350878456332894835537522721962081408966105450224353341969498895150811515582701927798920337198917647968096868512460724047358990436568050779011691212580565949116529279550775364254756870116177718183576812128885981559943838447547755325052640106631994306631843954731440704708323808641056288994294979942480390085409287040812561283679390961872256360778969807772510661504555351433478004680807556364242494411547303166544078127179905539869064958974703803365802471497736326118767947171351104012174152278837981464572460562029286328181149278581969406155613773928178812992067358309038897599770079244672612729910618354194205449042807640374440586832736647115766668567368717705245139285652790617679991846215533200356107688644983963850602171331435137483972554257120479482857469125057074553960842563662070663531179833542204961780899672269856582596161770549441167290370187846886585914764409038292218054960724877664822590317203479277714736008390924701210352634230144769410540471733691711200111702840312914968200229140576471850506259174007070075160269340695426985163496534244130023526137454063436771817780567281834797426021776555535163672460989254196950161326113391207851904744025775321173404736194670804140386007769488056537195080862857110220501299408642392799866493382622551814992560404103854503134254856310419470760263508814889536647745440633930048516559362097621809555170055878953459067683603858810989049299053567373594083024313297939316336265918892650365616660024501776137093274819506216092626499458910758234646415243315300496156594154970198919306051706849751995474502006196801434138297981126443867026718765510354542514872695832085678397019559942557488630506660416540634157454166009668748262894690018607181020868489593249225090463568859275614723629244607283369563840614130854349936601412304596319827731002407950331488464276547778758614897198952730660888305532276509099208545990431642373394875705125535306764341744626514474572709125537255576547906943800887254707276926274699543224671821520217591852045795796047202199121590495048437921584978884934225705721192882100230294388612728453803322738480545991949882625846653754017086357905764652584808182807013102768662488867767689261492951471209259249702185633550438963524469354983253295230260348453568899553350264388789438436377017212521447460428835406583908183278458049083361350716036385417875526556474132147529519409842506786359881279071788810119817427695947561653141577271025026017273994173728030312710413886275452064934018045869983033187551567582910474669964490041429000225005324524587977238849295572166258275725882941390952477950988079949065070473629795277063814740248100355606660055198656182568945591507142474387579915498738188408976473128640399723056247534312370112425687173763208005091779538163010540677173051597865312687505343888718101686237249102343062154369543759161480969474050523847083595834418179011685176241860009566024032672695503936728336823435789212226630477950264168269467052913808156454117299545296220065515115767862221407027115816517468830155349321103946959981238580473739697868567469451138917414221987669201908231324754462462313695697995543516686926085601387479736697482914370070973266580303709416486109993252734367178320942191986101434326886892090154545586174376904964268449754263434470088349143770673576008609512194114805187469142890490598084397398047626190717669492793078666682618713640870316372302709237481854692884532197634556551243405839164161130473795973096484326078231326467369315462882312344417688493860948974484417642062322670376391988823262212444049556833785034035920513488001281337062249761131289379827945072502477920983497394898572571411016564070820698318576822759906326950995680490183314485842592316177218608817606306640897182084815255857651385509781824351672822784991072040028675790790446633512718202979525150617725334066894988956424703269230153998209003901662752243381844248085893952936525825363565858417548553674481865028924518820644785328079129675504865572929083083485483937583334671019089120671145369551731409294618234664787252895299742040212763523592329330577017942386522596324069402748060412880303092452481034941582735932443887273109397416348896046958192453951513410434339983818746509723369263522579147245424440132631296439639120960780016344851199125420819737407446045899742145731042313644564865019378010635266037440565688238613893754439735168129683156791161888422225114147732261233139618606080373110348692660933940438416300326143449280508211315757377277398215515222865099976624325872139339344590209166227290549349382717820512666902114947192311380933822311224099588372246332501222323378968952690253662639412670103173278649871702571496177610515549257985759204553246894468742702504639790565326553194060999469787333810631719481735348955897259151336126482269125453534915726208874238964579024151966046628032790383920047422696827428438970263456234096495878637786003427727096504431572215446599017061704460228613517266855579556400699080719264606835050715882368284940853757407956224980823054747974723822567701240324501163140187019563632539498397691935065090492433161870227878761031651525629680918935663121308808786999588771588610638057548802678073956814608277109392941053683899018176255165005112785589836493381288328457391580154504370399237054521086398068716916950302910265961111741592628647187351429566987143568716628307373756201446234800962164822693311719824084882711336000633762643893179194329755096110582917015735237671324942758625704194338996559399839192248072547475758666228146957163426371350414687169727370292808394946314022916201926368928320405807891744510262536493926213517816196907578824734375506141919957571879087000385477529544791666755186429734228178018579974243138546100203668442886773164240784584759302422569863414386887983022853854719361068032051591667082389979531614241509350076835405300508501485369175563707221816227650942092136923339023737083264034844640658959614549508139944278406013192480069390620881379428802463789035654597877972004181684951058238880684246242993601780771539956492814757824632644542209032027709769523046885434969952147278865062210678435137724028487183778834665389670478121721600816938132223342570453572567003550018519873985825019532910754968498047608009388910211535836334758912474078354683175038066119437724255323432043303411555180225274051382861367680472869891550177730592072551567538950122360442584629366588178203337149398127721110812824068952584313294110979394209771718263252551535415444427916515257575500472964642797667988518953979946914637486962648076386231650881124880825776308260042928787915220635964239138075470868310980249088850697131313880423259326598517209993755915188000370349846566958791866945328402129605745006442865842828720497868953784358507653261279729914661644583034478916979198607505315924393752220216253887304509748563350473170199159341935428818484338725054893156257364005625848724912453754156313401898103123645258074300459618443880105265664125059591257544835509795688923820534065921989607317040932087668635874919594032023266994692501241522726858658016174764407780825874228402077133080106855114929259743568945092894060320736379516010808342143174408276823512675156242309818829198399138150700470227195272659340264594201064446179967710983026556633842276890936012521800298549836887386463678010417823326441274899770917598012975188238822938414316880467266266615543347686924832000525215317081738856570000675359151553570039346559081185136110746830426450599739873428258752424058147304890357136599533865472763369518348220353141431001413806398934850970633474180766773721800107005748953977769063608079837024299889805560044104956067471953858589742474636704130992898570993193065673211284243133564766863198950729310106680542855454436890646732598515178005249137276717763397160674146018407860294321424660804733626025115342424988899145065262359300970139256419879058058263624838499482833637544077279036096692718497082106111476203207985554520813498564648654594164820221228415931030979741973387161960680641392966715183555644817949965626015666415479932863755765346462226893485505566549657261200522054258653138819038584829911689364090006121512035360215325519949106472599740182199159904287773516974344371675496899932869486320298847294800129171356686831062112645596035901303767551981906308790140888930579318404576203541057889893695171079707329928396111321728955448659250472697389603766662621975693840901700953738135824777971291449997230125458205553289691856859178490730673554819603927325770788217664477893141251057125764493455469626053551200852700995818346150658442683104534885505433344645070726930072390241368169243755748787935120241689494315554029510292103633461564559440878887570167930941004633057344204969357658564805900083956391236433628507713952463829726677214263386253097926587678962182260815807524324416772406776272383184755855379743103927309781330542600295196936367593792115323264223838804974125026652531192888443277898106792445544649178744306010692903406093246921926309869399668858755097535159589335203008540673444014326435026047618755052496928836394040917883101947730071206062518321741595139111385966118886833830824253339390457279151805316884746201433178426724309272428140982602119272555526327453410198096992991310933133803134517393729953983307383987036973706305407573684183741604308170320461388827430275693312622348412700041805638795217609243379900089323061979191632338072463837689888001609982292934809415980860384159489559801731749290421855462164140078050755647362400027865482230008104758021513394484639919901454815538392068446193118791964485305046011260984675936781563426822962947830190758528105424302721738602459753124923592575380795127000184363873514131333871229491792172940003756377778560729182751724247038597705598467740838816653822497052032808982193472477409972728732981730772182914685449726694651226965336135720350500280539808400034871334647900680679138934497200794274597267798682061922271062489695010103436663499394604760449510651260126182314969833184490919539220938120109897643981344969849276106565190474240720910886309375264651877073826567730986960047357124125501323313427570896772243593484598109672095740884170766064002802333533398394312541670944268905851557473436841004818517102135012028312119721105916524418757751970579653274872575360111465567566050572690832384588746013290062591224168966157358584757352489507463801652474185260736680126021599149807751720251589851628963416936266675276061018437344334173685276105299593795769428720973477735386316111365907229381464890510225082251274335232170235768704512317837321002275148908593677419828818237056118607466351416443110864099915860471602172502439511165972116250948051231599886199420010970847821737932515439154086115393848421133977738736123037500393506246966796669382123250577709106520570091582457661090907507717325926479295690444777113366066028556512328262115319217348168929733636131774643502541522084457643169437147272374448531381523201191143453780657434563037659670290438621665061987443503267508617129156572828968752642539866692513809088522064219573640150058025147775023651910902616513827176357058765747409711893349271326160624317035977510569124925316715762976735902582026643553342374331059872626170132157628191462464761382047953071245130001818361937713565399388667306446119578239757177103151635353639784573339740901529578238034156573952363385769312064777924896143231304440271628167203886382292755045925017454326699419899546328298781831940558751000366563901123742678823640776200916027211279995356497907536971530401375654385320963113364260067432943920593546927108449478433563776635621894207592136993479201901569769788529681620052667962695002844508311333677814847206692667622215733936859056075329903704885916894520881605010125754917233868773698675051307052924536126656134313555588928424342164042211912396191534647878728334232021676926678794158173339226654566541235961312165390087738090716321289855456563294563980730234640053917733211631515380718792637763739813224944748054584234888107434459791651751452870359457672989050119933552176172463266025958526415195310596900101281379024394812246453396872770425633051643673901113387926352379154910588535447469079701763544213085075546072084936530457728716488343562182461496599531107231796985160598181138733042884430814877442362241653742333922819176781314719929258325657203043130174420548019577958935233427308038411608908000069648790594771263238665635993349981675850660414226464405793868009554693184260018585986147374617402733964353608911972870147350269317352696566876378804320098215180191721376786197635020911824963984126906228407252699899235067614548550789213897164044979888740348502188434525545260638342997167426345561111748887112253334772256061874863567259071924012980375879391724986090327931441561063580709829139807511603404538804067884139801388677875531461616292439675626850038392795850397125768312098431332760845946918934540482952043258509465344230867741148075587449328758512566553845133866641257742678909880048496156199309584408325053006458950016723535629582195501817579405206027890949626590035994515368122760006039522928505602043653067290020541801380540693356951063548304494648697466130470602356790729459836004302011032960520298756002274372136831114940901539623066638401743634849394025015755111550519339043897786540545507507487386516392461191505003160989467980803448669360414737255528215570654008108348423663634575533279627163034952305719360437804076793760559820493122543770522418610400116897800278452300989788129734684944538838813191394384481793331126006632377500882261119827087397959035990545794919378188346750515827950093970933409650495174824238990772003706862816754938260685297147239437931455364877000243301764926466899094541610132383876517583817001086209887247793879133491203724480598803116344463503078757436343285889681302959208488736032745000942862827725346097807473644828682038466949674875451084109235744811634519474624991926336054867249764055074558664288496006566199974408812192388034795049737993322609875490577408774080935322060503214296731564926289961263415432730405196919261097830783759660521828781489226222357902925111845597276666063682803333036582458854917484604321183099116008977868025035304848473910771247933660653297522752472896733351809398771311611721031740483597441673093247703745051275456787227352661894111973768200086139165779797530671166040812180070104578461059960897988216612639122460977828612672156149057039933189324687089127210191640122581335669230038051748522553286522685564533103026047308894940844530704339833793864746885849793330740730806781742972156894582480304088773204619185956561237423067665817849861561114872616196710947328701544455682130403755666871217470759067553173659961199773830899998101867109714576459882862354963365786569240496258495683297107483493615967974341003308697669380074643574858404916038177899719807631276175560401738414099313018876307159370363541463063054512830997307094122238619678824755713206365965235710324384197849895276929620712968884513967538384336063329345650103926797678161337230654719120059136316340780123245413771789797010141440178848025765887098539308371400552952068701751415039801846380390545812237339927147033400446319265277235288754607701093442896258512403291474099328219707121485148937924670028735208649474078203769846238248425955197299826879790019388687178806636822632279883509682354454244248125182058101684614865391182454212672296117539413611223132568031882305163399977130813272686679570077460506829555191631134865484260116292647367113799415985218534300185206640877165938933641804141219467120826552055783575962007040849163225573795517791959642258548763284979976739113212277189755478043543458173718032270276794725241329540136597814573702193856220163850932965879427616782292026314929508792749241991242333231610740241654795339671241152694428029145984756070175038749751967819549300599803254104259857442790266155196054708531996544049952193174203143886279905987186696227430091875137885781435105802299721092775639766913855362239739763568932924075721266705132054066747279653977106907276630527146666583848584150975333415548624354171084630832344397177191356989943172113860640966850209118164494404592965763008783431231047903821070209935663465215498530146341520816434368489978665006790999080688517612377900679551290688813435994477679562874366516205885899343458717181722045743731520436296574582528666465471453831485786218072887380168463470029464715755470160582386836295744711184959462765607624523723385510856446140012057639594198026597928124574906228083700727672038613757422850740671016167279881061705104739470591228422600398632028567885788206283267369459701628871310591621523317586887844111556107161053256983784271809892323515103665839440018147278447033859531953777579850996037426610067985148148716961592521460465042722767041245612277482925762579509297467140554797198986158182108061004448351493405871678458169705440874528615500189925216195832557941790994287048339379826018144523370223262411095590412283001768058619638349490547368177980170389767225686990388261735259030189432167281705265714052152832344721268142580095609050585567233270960324899621213730216175234850061943503813521019566245915518014097803554601542911408618551352179687176769610889602332608864512072697048546951263750402528854766030846611858530793556164275241049389574877413871888477156796596799822996438345031648854920414098082597852365604499359985647071644915558581391084711847001163545990732705409957622677606986384236987495195922632569471208218885136152939570921429954043783217600820591302950927574540428423881431481469211162130915324223453196287041797726634350678918786822784457006701790586419209494740090153604671731787419306894959735917844517967483321991539918519533886079844202825592307547264371079573035015670443408823474028590504695438062943035163382246733640497607765010992863403256671039379000274776623399551011542062817186049093996250800966343785643823701749015079118695692378717657955261350554351559807118915254822409460037033609247267419843137886408962048002050925361718071041651115186274338199241767744930677026682686907670242640305210127856425148283691771753858697777333596448402539927570294016027195855388326339725604491397388376834374133317502625231759929390093271265325198698675669402162983478664565594464175951686330144939828811826964983016926015651569534670103762664676082600057655913834687413812293647936693529803439623963462507386167366675872820149662095327673890173558686700742326135509719847711787765953889020564330382523267057482717007842923857579817797488507303266026066082840964905219406680326403254810137564580954780736726326625468047373491620915732613113699322029865754267104725277359107163835577678432369635722236693088583706568141805883189285189293817784966954058979093226330178416966783729359791905567795100091503179468681329490790245000557459690947408698583009624412748292751939754969483399085766769199780632953330895741951542515995710893363085362697059964757484050521896550344439173534306477329822853986373220791137707794750263733236489616878215863445260343475331195464930322595664938503323993365070491838616937166736735442744303488183456604781602656853231285927483693132617633308507464502683981547417139296070538588140330128450849744778765435393718870582945760717249454138521156597295857101311999605845019239713303442282848899222539441654414847512151900493733965408864138109873387216221980621654685120250246809828467028913129432447068267518112345815870304686436421717559423183623933635245406184288635387352531786025840137313352914856675668722414291571834993016517523913245700711061834412499575046758863503521904402928271640487137721230652245855538034977053097273049984003776746026963528040097600818885218765228740661409765163058838672176861551237960462050204142760446162511883248879148863489785492203419791205006993777575549202661256802535634497062126112622416042622279277677147527305076450396929896465153149524641963370792824411385762104871358703695417938751946131373657563713391504754019984175531645053780219049932075058247578069069750044874799608679313156853309243044324678738005162385688966203509888003011236497924998278151123406119152113143063884639448310007877082641473505595127405855585749234520329733948541438046075920654526060854869938544637035784268428112493403833166542957760367001939594583682554712522399109819850759663093265948106498143453679907318077066148313756458316951299016506392785409489213108433397124241445752620998682580776434024294496846480908128844945861885461317378531997638548912754723703708345296355428246146006848602761674090200748115982329388455507037701487296613894622332114928530001638412825502872504333017434140411295612066461920986066341152259965104957538064207868955641853915182812195666873997695237930088925789855183426626547749237450089460720507744011150362907394150164968627691221302701590223640959136459582766717608312448108148933109834657305314089333258340535917365359932675007527550615520089598345193637208791865503800062855156013135491714593194221784901411930898196976144359835367828257135765234026221436528468046245219595295775002567144826222914918994384832237077628459636174102165968740751548766912874752457326388640796399498756916201916594888976049246264416835191230335867787588668781252196674802565822202362374856815518914522345011812263424957336922353563287925545870037691189777143091104313682132995834742208218265302071005515212893037500819293540930509685484206630777303760995587025609367229283063936436965526632199959508399228087666500053004624611683366457344708306346201672529006814650141512668237955097566773374880595701590202196758592767044036089089044770816540347620922874555668664936309422393658152859610336095051642993264183880363293978904783858626258761690050601586090381731899292835367806014853504700720725047548758095227890005295049613660573677556420528198400044110531832066837019337236305424735243824084105047476516548630227167047343862550037834663587934339935417897684754062487928594417666765268460477519364998031516628467567914022343855940593107256633665623315774043625185654252919419715454957177104970826197923765936418846979067685489397844473567001571694128637178942238279113746163475177400556409108649740399261525612396515255282806303091761641049372328562452987857972257343452507557835262182964875688724713166531821208174488918109621878583631367984514571042518763558054944295391982569278008992699035637379248605509938106540127953879986223856778994391017957412748059759143269643626696235508035516522788205315057793342734922236299773778477214161545593003651951436942517564256232742847889378582242281565988772475174452630777274600047533996740742388703221296379210777679641924015822106809927643678945551933539610603590857394645167948249160423359561102668648285653935137318341757065310142367616852701686548409949237602424687676039312124659671186583313313299442854856261184514321892176358945099267049161752708780792231348237587006925645316848494750792050660054109065208046097145524470678884773988166896112567314569562072168122461695968123598486958682480796315429421836195191938094382394756866832503600815990472992372571804542675337296145253825751951903465559780933370998871120039959524508309336586889469969451173481563162458883317603305356745954062464629951324596497556868143472758371419000450483958200233909520292866631559760864164269183651664244942407877275536802729114616024217168082762231605422906068989870259021841570786727048482599467097898322059424150773523043716481541039915182707920820504580837545258659401541913023622702743128896416425450718597361881912889013059260447060828910032155493779584209505979157461041863496791280301021970357101764644768989420049072533256052370521422984212735102525465669118731412276702498954012186668094499626349744852478529534185675080459117067817393665733596097781052237293685520630362095604064759199940263371531538114373599858114030020217912319452338559289009756059621691108735147040966993120558025422552989500561880519609678646965264592159112156701969049500887349456416794208438519501674011301110626053063333239981857781820400271843847358781659466640973558606343616649326040281902204504513684649377667338941803666455042189174649208557360847007628978865743628719210631810916030140133881625562855792358248763021654552639473291158302633485619707443058524500443356733741878771375305218410125429383052711317780398267168765717479155890041606038710998582691902062811399737591881726651497380475231627219595735977446128740109218857321690143836730005626235544715665410300613006178827545811787713491260608839684384284116021764113012519676679267599981419456211711973436136831211519981972259840241840101397116708610070380006622789565979806581255914103552043017942630897412884827261830364085286110609689468220801106650137031585519449357316804392229429561986503666260468517079829885523577113690271668599808352304781289815546088391955178116031759687885603279623315400355860293797706434101317295046143849891357799175382898070231437902327046688349803157097941860309257525853280200097497936958895311409077934850532875323507617364491224264132921027306833559985954775051285944080029303744336709738231615141102755332208752096063537457494099901944715098479364481771487766694218100580710577830879128817890382744336837967497812617276278358596962227321723015779293353101463964378230497987551479341165587377209125740929280401792744342664841198731360724734791364609003812668758533957458433734384163577463024393870567893996181160250270270944147120243583335941981717659761325930303954811112245325517829493831776613728906747480924171668591846069490477182221408641209652511311365133839174730677249492653964475763757818459799255169794086521786277666654772196414088334094398639647238521572232685727800720001097027546872080986250698283460822431195536050219353228303289477473057500571649743403113523649927262614172417729160395470525306493481607214424734969075495586530717208382485605745285849089925286522484606276224499492027688081532364736456808761719544309803703949849144258619530424364287321038928423708969699154253756136824327756195340179876658957210649862038679015218283794858771767577627665536805554298961944879017995403600335687112732335866019498237039567532752492037521692420616990107831072495852866339742099696270413759908005487950558699867720230625444196562643315074553984811669175913938985096189060842479498644328369030714165302692828499265861403867156106100835205248709445091679867544255519127592775604688215758795068599907822681787533589582562144118287633655357924127287829654524535539234785140205389848395568142642082727796321984457708283150370691405019872075836088274136539713826843433728809688765437621160016663724030635686229257487681767378441336890282102024994172122336574408572503726660032776408779709200619819424784034048761649419129586760531442075400601719206576682489189782063288419794474717384794962087106673368333604728958617051225926954027788152136713079734052592019487427872887573463667061104005424752318768845414205258534406691656371179010519738373679556115892514964866182949466169924767200865491276100885386851008916498713956611546471446982074388384330989388436001101606662869151617718200129257887786167322597030692763061118866445606066226326045831932234131377073109308421253934319047729243867781641308382448248384853019598050723598593709932675053287429517953425794885371668877782871207991601521151344944717215943661871112458727909710902479011092721988139167464194451524590835542647567994765222442464870660353662067539711010644722809958926187312355041673627509850162903697543531137834326784605212105664637395193270995604367311685189619989711638111955917155428429528537027590435125251956230209123664656457550061883143262900134501179198984951557839448280409921388935212925481398323019654977520126969615664241840823054466901862038892652635723290749127373616418905967151186989927050478105896549231979296447905818995868795643522091134426404836401867654752563574058541656173411198479820328108532183947948805502540910347223402959337953811951939839748091130769347390299056979294542872950227562979531491145794910520159609276645150455039439858294308872522507528941603897582545839231423532114915761555651775386363036887838661380379898122221366646347270058337325844462112130918990424483690829589995821238238738329819365646166776612728659981345419489810944095014393220230098804387029007084563107890488686140002949050296197279035129695345636042878998139293883929250619089337389138778112634942903722776857159154602786152994572403446866016876458919834773959483002755432546752267703334925103371216037740501378801821291812138661628729173490364777077005701897949751949573779816440136018635988341183074931045184201922335079803567297465764675570528199486729370240597257152215891788578085327404483837034195670827035915213481484976320404607534734450935643818416719908502002099709346813462794218330431928170226927405135233816948145099979987381223191062487358105569431828829977251144801121555752366688399512983211616452233978889696150821380254516582709757610899926738081492841569200836638978856249047232672458972163280070787310996092741013439401249638450864513300443304633361891157419571170487107040899391334078558399148561893689931995612857293231670288871709002736717535115968355200972457202087104954002371275067495775327778473524123431073485275906894769553360627810059741661191220403288178994872227035778880814352378386914628984192824960590872013091289710021672633929246565927057665255996357281402957303223968489174893523524956906207686576294680500612741190357485845974231100460663626820110072401876451254973243817630263533431855628800690869903101842838311631830721286942517148191903355678130151610741256438209658523119640622415235678140762582628402052143278722695353793979424293801276604169539906414492270244292969070472223167358934591119333332161530959282306294117342171157396231576437326518017543184182285669319168066178877577163979862509131077650960866932722594022256155255743376201885039200148573343780661812512732965069653998583306683513578572186119217176230795241802005143370544344276894461898494458555544355114021781664517405886534899782311910680498892037933840136474226288741692181835590569994017368002254394070817921421513799230569939011818769759839986834066507466969606027239743052493368786097887626752226455935082589786554218108287920517409290967798367894498190505038261195044811411888523366867327158153035256851038729696050675818925052422264577327416277250816821853253712453422336363841585865080448914297884297453305147093335580208611208778610565065190729468605635584082368683809217548008717792617168314752850059344712216840605320597296304411541862686873934608464653338034806219696462149711210879462250287475730571603813619970504782813303230253752205962199083495888604923120728218582770933403583928283359238048826335835864411272755554277515332174259167845693077725403578540613405166079555832467882940263413354314561357276461238490510328409609848277267327156577088187191248950117887429809634515737105432785118211550467253547283238260083120314070353127535711927800286854434875867645215373025699983402031354292747404061902475521608688120548877748234056432295530218806575545405579823392128990829476797732238695757027068338413540138613984742716879189021886778096774187411045970474904737221302594857240259778754362342006323878490689617638668290676019190237264775784902548418153416368568441878789666253298507609118064367842110959268251536461823742779954352662396528318466695233633955179115971817311043462664628300933899804128153240008620859329274547842024828511208679016137765268901430830442504131214771394617640518229851929648066195297879437557485212715869727169203687254520122714391574764404499220930071189498960912894843995316689835608229730625232719771606044537211062528465216518839024685666621424084267154172596063053326968230234828513118295009016790272380797174947433776698575209274756457860947455733053749290700225640292338576775976714286803322591851776724678904058402807339489254869144512994420389194813101376065692923921735426623674966885238801090967747156982346819986855067151747271243638057788332078541961730394962730790579530549242406401202301777239890956335257016235940975985800402350827813195290734120712831971418734548247589632079717780323404367126447704672867460058300652308820141960789835024246532319651069594088849474445228616616349659906559801442244439803398688196720840570171598000139259147896372280863065753384699695769275337945929838421169906627975233632976408576148673300045556749012940185090649321096113849057193045403957258400865917142783793029177442428438375476726886939313144264063305097043063455673095444789867043532175382435014591490584317963177444708597060291868570212599625713297659165086126754458618846819694018022031640141077509307264031950384403178709189128861409271657498488453850074279112501445950702858923866616524918103557816950311651013623058276612858902580883240294271769046338591118409779942078092232214255507315918677086546980521531358241035728594126185923635402532237923611855720186685334636355820599370805680253354386597043434182718411814256683037460309715550978485285343571862234864296648825933148208032959644275788998945897636431520296860971371325993548390338648210786604180882018422863875114350658670124065555154688996815095883261730254314766627580970526773234732600862459955834575413058857493693505651327258640808063735632450204736191462251636713107879082355201345350960769303672102154833550025425082033194489875367180726235296383406864707414024847281503354761934009662896641376218679896125519873858611000150146243553218420460066943405574518114487997197110950971456857289405062535123575454906013774517129238238765321442722926407488251564303022319207712899629530988562774013166429458305764047628192643690609375189856524362633297257391442104614743697836887345413174021170497993176415667953615029462054351035605310685310988826968374680191118663484371865203868456681227275051635094700669623003582300413340243733622095081448072786339650729962239070473849017525942414428692958923059013453060563692390073574094526027200645811510510122795581689333511655825079770470857994576148950731660537199863038506150434264135943731033014523281495706766399705326365712732992524319336474438478662718295797870446564173766009313147996501290665353522077466231659521832461859154949641016008529707807672224553790452388211508000641242859358588791546895730146049865587468362712742522837183345406982841849864713376025514869114256422299919761969726410164778479009482648973979536732421250126593593542119809687122355731891657735269694650410698689176050464011722899126773734023205673377156864164265060169192238816808188360757148595294515069892334565925972313894648438602858885085907561072553438376836214292505873673731402158222785447198157855714147333559001756122509094438057735209384213552602360662829843885584789341145971327104487395001133126386307415361283701028421338884928089511887222202294509087081989667690414581821963661534480291057673709601681663099104485140682739534501684733373740392254917706822349748815134337076407519762461971093950358119214077138182093312346828164443530303532120304320699265151607335050889401977009823716409233615819711080703838304911848385734483482230437698720501724085125722263510398729351465445084453182293790125392104719790694189836049505914254793258508503890213321577359585508677783623542478999627349223480487044366094616456837533225006515965536723187196964930706241129123715714567321860144620930124666532723701921670362401951873790131423259518922390363429054340951778703290431120058940085635469767800933498876266517972817198910539002763829509318880617211543744969430097229295217838417172317588430040744298751147767143321465040006299115707433832342524890790423909173912074875076431026130082760099097193627404081375755035138010675257448987941724890896532616705400401789687362784555876541262640653976316710398595653204492462064396035981013357951696360720324548388397645221026266902006252941307184157196933567393596692653678349904001165081836365915195122994967285517092320601139824614710486179326391671747624435150713715796712888405925288993638160233564230934660310405266412518722665681755733448290103675161217115399302930594229247620921123666116168654521480960789286824349035654726032891524566108695888186690556274813637304564772762900432940341098288782715332731547009054751857502231324521593835982879954017901291571532376253339805587168462395054397746810883850878423829452450334977942936369369824182732459532003889355134970377246476088621761662386054902077920672885454681966557253069327781850268950297939660506229068687083746635898235009642671553311648944986281155601847258477421343988252394185835283558118383320117747406961116412967550909984044258812742809801975729182228051183388367685468450322212340451070585401035076049067078797008921987305505229734588275370516992399973767617301639693039747608121491843857287738304036394769686849910696929324101527584688530662269827189680619474957512392832444432553347808269002649998751710794787875679008632593262065382121000751201092978406622616919812680762571627172954715781822725231763310409685133758378311237164605405101054296780366825723993853928584303450404870198466916789597143187694005039284040356844445906404657324011470393501455373063125624847319487306828230748724811410502593128899827283720804980231560466164631077874502305425295104554773199841129506232428776835024015456143629819701079837035202000173554644369612095489888762849612106449458739756200311124067477190443073280154891118662144291445800548469514115359444500697017960051219419735539823293246666183357162502921829208069984208219537077838253260829841177323923621558174501197295151697002476731107913922260471038969558086657297268489088779545372936813701209440498391337113323180743296008145207719186693996670154435749894808113133701742919706963575129022795792836030752682109569297172818947245638255349549987740116167257623995716297557960471226536886738310390082247477274824277112882900088717741393646558204334858560848875063127935122374495409891598930537678154480589127322344801682979183785279572044036559417415235539329513452624049186410418448062376825888264428626002969797319602339618342890699109918012797787882725626408349590284570981281614081107110066533329708125069133314900168639449456365508913710139687899548700216028246577915044982521929830422772267946072245366820626191518945765529380114888817310190028947223834841116829316586823672593137002359036811929030407087373333740518334301628456779788756667521940926172107933350111015423482411052200711955260846462832480161984966106499729119632409692017893166249917623199710927846743342286143044419885049318510243415769597724757210860824412009670754249863784541593786355983717384490898695734615884069324421018582309009306447140775366835920691981176210609903698305554726466706382251149251346358736631159550995999718121338256202672380108265353634579613164750688533674630787225113829199292916542471965913149708934022865548202315963116583747017542575358042170962542043878367223552538848084309528571144126569288528887864861631498454927971666866870540795279129055262963652020626084668552927228845764335167540066340690063936651758954513792567710748704723064454300151262312276518575199478101742938814912114177381490602610055934139320047674525405192355417006991295672064166085583253694659958902891359658078113396203111026860131446448400560459741850292718532680298045802613322172891016599246666575687040246759419368758333075553146430243956957218325897842820934554500146621042312521395458123941198440862295104929129863783077113191227028313893022659110684566007851870658086300623235988420856102259797692434614418663753960989965733638962804890037469912216694463780061666711409231736408934053309370687459051059008137380544092410122040112322155751883321210384078891347937636045620774841980876662480947521922615140443962916842034263000621168550062922773154203206842159977556987668274157969259464707249624392458829893348740239778689853579524274603783413545894477401361058617405556134290008560676392656587802556500738537393482450298300403574926780966131244336642909018145260958933090551056937578279121851398719876837376500750618422649956853505891844655282157033859557560113415183504424559238084194487624791002961696596079485933118247688510403680352554481148380657379644451770522284004557600798147196624376641289750452613302591683648897601114105722036937360408557769856433517904487421573704450466350366614161229909642254407930426241476132244515602085937933300959574151747337286444637725840158117465266531176222290839577881601852809896484065981213755210334103729233554559001553372840671154607654615404508678606357807973422886375086239964911029063273922845892012719583106634040490146949011497069278489255637557557764052047992853579369582617722738266721652257463698449727107323697426865425784565648610278590800188056433922386739362336586029225036520820855084402308760567086469144648430124440213254049013157089728618446294892168809617898571222477851134123418310140276741144761247323117589775022380996694263908129637662490879555274224119962639871951203728110121276005461622916233739231861928911008626627287932561464019954140156529454709678818134009984614195814141890722493893149220460374080715891380846187268005345083813298511269524053175107942732680404868166387629244674488637922952661582575572472994450783125600848481296039486887732244941009251287305162174666987624735244334375969996689098918008916644447693652377115735883023166664123534454629488754859004955128913111611082730782999168516638671151596516423276270667712491218532125310496915629650113489475884249695002214448751236963296296353205077904879294669040471161115454154298295652940577509303832975291240073711333742300470813379170874799510042556134383877006626626800784899219429786483761173145914002502467852625754143213196737924235203455594289951855941729949313416918447001147984098755281822653987102432865479370674565818786824795502135195490764609962171491410990035884081396785795109668344479586086911789884862804252099785800076352243641438674021051621584185708313279180623425290636223372825829474030667167348535395631431594779216409284601376682143838523056449407296369466810540660576381581203198729655479352853967985909770476319573732230148529392174096014629305464640651140592150391410257958183466853094979784046670063399436600958263433960275099558126238935616372830030262573277972130477013976539921333657349005085278626172013127700747552089732478291350236979597523534118194805356859690317390371630716081242736858594421906681040388664041480196240421814401108750421551597048182611046775791824954424292162384408593529517074008834692871321155188636186585182886325257642923114318970616383481176073955754025851061890133068875699898171547432505718699267333174394397754729099175673304088516893998257169397340018221117522326168763805310434457225327304798380559944376267454222429754902928365876070607711003300214260752560873915343238153164181713535250766134445427734610838086944448965365504443889721452976645029393355448510445217622099325339795717856751283794928170542097244272425332441337416095272237468483522057644801313962087539092467585429992949259390674637590710230237840326717331274615176423767137515679637622916124037327008196524411382270183115480141390956735284846188546940192239222213016201134058139768431973947836220185730877829185542835877598553307686774787462052601905757637386119507043594219302788789387321312757117754340007421687588242296401057044151549944876339168857218292077524335380490215085455355414457092376556915789339681684266849230926965993612155528004050542784651151477112392758409188592497792587876199054588954572772831127564898209311888294237821419935354673861367506684712352731563814850723854753900486347568363497978646318809955927201639928111632797109349627035593118916345815370532065366815341303060717207827503119876015100618889668529763059514339014365331239648838450937632568505250696408615257756445549307968977889546767961681003671664023091379094486636400459263642918688245278901743974140303032284380418913842965964506460607439468216356413885953512418951741520098797599471001599175051111471097754710648548858274482654850297777751408102852481393882893176897556587584625718696449328197590962316453025355338454572513627470343944349912302156122373595812210411045252096196675156309068266002032459441675532682114123854753536803240397065493646108382414932033831317159242713697963887284921104600824867433050765414412400679510283610765100964573155010793943542215659882888018605439138477415227753280432823036924003687429583672020705110238281906089882408964444986066211859329860971069023801488670458808592187693517990659814404246301344901261625752186268057066713709541881541888053300006706081855598192343565228192137521229297901484272847837803534044322202607147893571231781135724340692080827019445627042110078638182650806966379234578471692854409760783627352639385025895784703938816102209908860166068809780321850166505121540626819962111135347030768170302940217355104237233184747460889691456777918282123603254417791835392426553266590647034200824627522180359019224071106412109314262273290796854271376276357089477956319812448940435290522717576603268362565720551895082509472678878751395438306385467160665109205299774053490510922288570663492078785093620068796548410087884430044004738100611827974762063413622837703567637005098235296476671915561532644312187967654872693229120506315759958719334385264266416316971447011135421482589925571143649618748729246220684509115578217301842560509283117556342365035826529430533512414415393312439581582924949128564506875920295825424722689295058497268419591347987082748293767411074277559500755969789234344495647742646504335816442659422922404089548951653389340545741192142479101311665322868804151478989117024673680136167865800741623613425672705823783656354620068910240397323652594789908879017788528280317961669133350028337638581908469342147104928179826924751692027176758973370567125663995750626628576895417632794454612131729767059215598445240812855270869917906643955981301065721361222852062515007903219368701392720135092014120278815741925791376913244365656330346885926635698218772973457667020787867066279342748862650033658333537583939668190879651003339286481117909371439031313927449125385101557175144124181965222665914430941288293053240299836621179400547458078458199636802852665756640097221904933295825686999640560145369189410443241433922907701378654964413796909664990296634125624747484286860487629478794527056263266721154141238266874289013269942566372692090607072055607650026000304431848785465286068287697358878720505997556402643657908457978879795994388851245514183698189656654724377955283733440509719134324403011417016433499768692242789021537899640828139370129239093883293843528549052055541516515257313591998728590547564076829523355892006799550326086718226757062203144560801043701818832775558832987647655433387780466789650685392707147862487431848418434703141985511626297895361693110165384002636889560732517564094974587617519585086678382619395078971562027189120758257347867195019320238330752461004759389505536394626976926859772150887011436898694195034545684284034488992009734532475395812611557345418162412337913983524501603738599787201648013411293285701565232330598495666546711048139264917708471673754862620384060213112182576469477199447532984826459451386946977003726039158874283606410782355467444405190237203900539076275947064236382402389001499331855889548201231231761523854066246341817723393094386828356758850700621701615617680464169436543773006975768160325873383562727043329774042797566744396468612926750416383842804628170595447377063593039710041831936075768527855204281332517584687709717123146332009857118273297264244896860575955349601889709930811848360562779946862237620065173140567565269148896354838525489665578089240571817530629996687598150080019235809485222836147992297257112778148174792222159579817460469159694093857883905702650128102762336454794897089648605566401396156158373136604158233175549078975851124739916755362558969827261528647500846771099309952367799717208801337324103034517317511473663088287092294974161272371898975593916376182236296739736767934283424079878920413162399310999381172057690559868845170634042315867257944852895601843652119334592288868928670178606316979234228127666773817614216884593865193936956716611876188034375084028002807839421385181901352941617221881326583963311359065216818712693212476337580615868881236991634603757562196814333174711692343801889264882734887920326965426262651712643394314284996898820904237731001591307751739348751461968052294147342199505060836286663254378786908417507377949126051509643784189941894777295968278961000175602729362132231710833106710148365367514506373185114507691461107631218490992872526617707643867397990614112892434485645257618609667148236813491586839158429377370788409004930904267417190133245763004697743544398419926611512336594438211552231928204637885643474844174532517625328957521436547033741506764812755303213093365856562684261343800693275002674379344324107595358518707651674532216530242539977282289491684080714775319284555876269941236800378121478609676805205293208939464423127857674032230057885613029339588541073502982096406410135844395317711589340639480805673268280830630831892727593204090673202262344931045209285615300947816797543541894625172849239536884065973962001344316013105387499621844809766293806765529946830461964477906957839558727598400361816628348912004467850145903154537087856320086046405996217491136542619863965348353413207458565619895524805907612632571308554063512196969343014629995643320419838507298832245230720165910541552306479175274068020134982785411314708512458428902096255338342868664157467195763345226372624039639476616714839305970892411298956875048405703106054566235285675939232872385661180801765315722288224833069817046538600215117028483481006753186188366928605587170674242525387112815118967914560675150855312047180515204062796440195239646219139689985058041493631469290853835035403873630068155359617921182650182446637186062611698441167540635990560345978680454209574840088796434499478718614877967612509252575715308339415661110997185817789179838518437681448178564546476467958642290012189714120929579892239274541846353078946557966743520200915714298178859003285193005845490826821087300840780585318388110984404982971181323671364075610274080284238698280420357238117667483703929232519964847111754488521857561296318395291160254836518744407119205684741190905369999720881526249263911471494124967632020501142538297944952019859779744932544186464781118651264648973870809024873004381968368224490799617242792095194917603346771010196090986956020911904504403484660977370011946743955980985510530747041766254772471663549957171506790430869294723862325691553076581262506008788106867391863244644615072196355447563064716183664075597218500785014212428060785169599874127092451714198865520637193463737115164277518024549417078461906251213213478733157569170608975483725452030362631642376220065273396635578250709777931008495159400589733465983273061254238149567852875182235242498543216095886676051427268838580735637493595822752368872877097876338667861949576021954658466924348919188518249301160912092642066953267825489541763655619191113707445415892121095947268045530537343600244121656293360962481258889005327456679517978829283248284010908100663886029888071042935825918107131552700876738453017040039937778628377501235081008475154246321396133719867920797184001204361416055558934649503178799002667105210474336255872648877507828397948605033032512281807749667247037205903446738432185442517335767512858180638824998230675633880780575941686574647574633047037377365776252638581358575071921191134270212603506058695277108699948738050976920473893785710139405856151688869704230173650039918190047762598714436960507658593110322272859743298730786354588769279157456105778482429551423503511198223764964422002993430122364735175934859459851504242407530685693235087433712618695657107910666014407823222833480258882288081643483709380995101271172192094511025460214536501806424660074593284160586070694885347568522783129336664394767959263481937202233673933129705393430345043636982423321373454500613499574696229305122304661373735654758984205256014152441386258363319352548404215126243081092475455022861316783587375277479699315633475627336539664055041065544036838917810672404274829211987206141487694108228071111086933356570368285040964347374067875066731976610584785147371621538187837596127624240882298074485386848110138373439811453739069010893418249991998316785901786427542656867639991298429029490226484452934710568597925677577246600905157997865403550591111589470209692007335573037158228155415824015853038375710458789134808656742888806345569368002854404458251521990968371458681313914914270770964506129992739197573548626344687889155561855311083936865880498743922664591455154265673785890008451790358994706338880320066420711991792722404282992662482179776218988656135708868828032220080147361053286215932425014170356717174043760988253046410863339775943633058079830424877604677146349316390145864818859540800759395271325800412187705677129644503707869139792668269612776358456716460839658499743586580212299849802126373656005622976077540493176724246236371437960276792412178698974983945100161322207084325951972115627312724680894648034894257050127401331969238099889891751187660806779299899365241016183446368655766083427024252050719995183800837869739627021554147153564586289121750296474275961085947473511800796825000872800383162690595787341204605981880940876908172569925202475586566528510159564492587738105795487784022406269020241007445769885625619509318040712420043272834362637697555335338883833080419980287213039914962171806724909180389780572124670268823684678576105141145350226771360596533014849738064464749624388683378404632366320192263847415270452181285072904510093515309553885700394070007150935914606245933354667994396380828362121989665820335867762856635753347295268021295591390652085365790759411634224089057640540392593518703806346527082862564214713913760047219599813295074620748331142590859871630717348289849976278361299951916730559526794821225933845738577119455580642848926844276078968124378457714145037662982443973771742106835862383542446111568900558804047877202983091205398059116588891653773932872106573339207926738994444446999325277121946407941048400348310159116954471010211016623376493976344573132398636822809521448372868154531660656274681593205915532208693143345279721901968245168666077491061550562786549292150342747146778146907870309707472825376352618153184461445515885652406865378760106037166191082541167256473755818614077705928871452515966268368812512987500909077224565770250967426524916323251396135959011017973628425499456487358881536816189100041581060587083447656156621954120809710749496889697888301301043201731920971847557465051990911872586081294071625805437272036514592926790792123642738093486475109029708576932223750870357633039811681636960977485016816246876452817098064997774770534609724404921386548678093621927113971206741295870470597257913455830617117951114190757625885294453604991826370223357832511053327494612790170610936855665808334320732968388630038310242294953511340535844417099399877973600311594010301375093715073009248836498756447443301978102632200824201717627948991423971414153722228381552196727737066128002483360360034178823526751205483560461828666820999554888708788807815827284486508900188163955918035400575773184088628484164926672245087331020692251936666750674418346741930270686417580579508930136418625969839832783526742883599230169746661066438809460755581096407306414989530320245079023140585156937009772233782594560670392618276102817209673202885433186668895018985663881806743039686406997911209038130818479411180485858806606288618581117432516672752808310624772700585906743671841233682226038390021220109331753222687378596595753068065503808964276306133028339429984806301969682493504651910897851218347553360916778059103575087050279228038621872206583257733745610194734128827875489606662022978348311815181478710426058297908531024707858532532161354593653870849932458781026724695710733104045504903916119484020337934693616864461761397928687507980304592357210958873653548455944384478956547693947217459541970034204282447285035459132771900421328325714853445001490751768306633278823732536679012386912156382204862257227808041529859759210418993858898600808698016022852286761585934573476885579811577956815187472116778792529759255056906073890703935715780088735498225435396239306506458466507137703356438701971392741207284813452147619030481009336416369564400109794096772686206494555866296468665398636510975608044892271584683928629826416557950272471846607913739570518470796587486423774255484844605332657035571546211673581559637238938904650086656224814547152470045451656678827869746408121491481842904820845037910752863416516153191333885450772402074492775107324411395198515956354311315228691850623224127272445491154912803784416913693493889640476054857180419793688458456433819921872619839800981074556680809347782296427215648054629892081658934765818414229727724315609278766753102043470437995199713367277519099788470454632993945149862753502705328172733760086706200579566620475663840019292726142266577750402346051286024205838537505050107359052444804801758598195291479774591395287919263065051587866283451614768402880832058154218895094127163367780123007825082621857079202965892163483027361285460794654618138251819759018960676133031524722403939489890827511687631902381788832063740556106107383870078346864388380046394865158063188982698580792547540147507124317824700822090647808417621880182996985174284196041567640823782077814823356492641504340675913555981858263385575893923593933572075997912564296899280023789982080137839070025381864548542975736050638353719532206046201629395814235723793822318694302192297938595888074688129314534721027291256249581321371160663907362651154145526255867096909553326814778481247732684805331557931878864154577138609929007578088730088089806120128758076738805244724036732694514416032348312411073488508067487758941426924714281949270000644838056523054699569902952046620935496395901544094423905264854208099547378069407660320987878253693642947064522918474568321156251331475327242304073925333057716901922746252937626614363103866487961331224502515313526721171665246363957209814071862652684143658306514755085176065342287949173966549009705183096106358777358871262286681831806932737136371662790279826713445563954929733735011683552497184856416363854608920525523443681313922719863995647394785488775574774388935971736381469908231778070455277672301976654987051356679413866635869834106781217507800874714780392402404327906464683448172773640665365489536092298387571455733440487703072451574288242040243238278953961405450649417007534368300111853951617547251573296426336291525896076342713865382511846490866605411924882195810144866401662191533105916577307832482610932545337566768256409683217496856310760901608729463148557741336462769229042133677226593201549992577288497789054055874954837031266460006333476010226177647838890766319356087291102067546154023599195920715919089835711320242956209977799343811589082051917093664572105101998913565149275673157286201738089275055552215641212324850331373812536961436698349608880157503718565395700008220412051670826106385227546903338055002184467548741360536306279982689636599194784311370958556175143891992223423343278868079792614649581897423650367956878847178133652760398158584019670525206722847612081554019816845784332505494505862089450179565354976513511340204990677051297124872072437598456388256829497652716682460388447850456600788662728102608184034731471816534894159105380143182786162850868735600103791965476853621352594277384867231772762385159774589189495887148000233465724127292253503760755050586469292709983290108206973707136950847050025440013925444748327097261927004197895364948188106298129239073772916413994213855241078216865088209069291718260764236025580475643039017135510475927408999331457765785629687778627439488796680969786878158326699036156380164388981868484552063834402556178279706363866107104494721963087728051791303687024908601259982138133919944237315435469172383883044441494875399034464687524303112037412870721241046998733414298075725456749614116407397686182851042100014756322750834296751973290154063542258508226366884617736372971756797270154826055251833815463578902279588539804148787182289476330300242137566138058964427161730080791547210019124056662047799323791679932134938702581222716862290273665773548758105399179709743748115133973338521559561619802831109964831529466717670075188895994002869623762325018988662801971630016942964684414213457755303453954842803622697928292647912571300529826004758520335069097924987663841214654137125598060832978504848184936555842484516230044370561981319199821243107641879666972962519082595760303182209870529761070009578161686623213702552753327791489009647362291407649937102654581417144518393745179965501709860590626707038091715605916334077089160198575779087245652373944836675722332367914345947180845278885474085931671139603914823954523238490035978535249171598227915758872607403090285571483518120256168446219206777997356965017842571132499296163295888929637419157850162298159822296060458620944750701109120400640622780764737296489534010435842659263416741663987021267605478774216289506046886799889274494066373127373866645670038686299203231580007578926368814134100287345232362011967039673701144643433400923173439439242162353342748804126007933566854745560014037070230961712243010062975348537138483340921327926442875661679506221662673484546186625437176368077698756693762836744693638495207054492740475813567656629400825872352632528467694306021326846771714634711104614121757333179046215389381961469006438207286068118439639743556956967836578268370814455338988969481566896226040512075271312298823699623592460541953906093848664672148045312125711475593018072444689776146503668925320052601540318112334387103369528362750175851402667033135708507660616291139984088301590187544524371602365104595940819560324141682958125940751868728415868179961382462051053197396440485420941007845371042745855718876620730461165308049931975324020735939719249013257891035691301106613373073835922794388127328300302876373535022955416845557300730674997978032514239708079744553987960293318901009587930966444995599623175284189194168352782695340337654619159439329794152534850262742236767829621468168134281936151166892234943182484292957508316236096907840634331507741289606704715649264135392542411626579093682208003856428433200762514330337091924534496305059277544485518679169781384818015924806115764591200064781448233788258569633298913577823897010482514553565046629398455769656956243003448942243177994768126691601691888046191230419362493000967483746360471371148000015270441717342933730403618119717993149279406644437084315939762311898372701269067254146798467351515045248798180766491664620890455682535155934191569130467175543599576866570489951294320440378563162520865395358287695326930096208111643077739279602097439320643539345773332326214098426264819391121491171115225378684948649579129589905745575083253322301938441962140911814253542420093808744449108530452899139012646015867886784213333939406811044751685653196171992211509084852323812173660935459866161997324469974488193814043909033376944205761842089281196512564368139172700225405201781180459445983042151228329362009435022745500696065627406271919250332683753527538086957096427576050133515235092163193095913172306671960098050907267196240529062260866712921770013903571126917807634990662900219038807851563857046266109357556775800005639191308528456584126398752694799184022779494104886579422130712092570262581733322960706216074582489619228223615563512617890095234687211443514770356287460409175691823917332527301806937406180476474048602777305632548239095116904166060980736581332716367213466349110091096588681324114100467902311611565311613647896540917188849814688711703621186767009918786521893542113824786380588219538500354776311283912447366068991865030287231530845177545804302067722132936877853556555398039094577305880026171116342841169423549166996424463778753534180971841824188441835119324592057881602654451201727981758374725187606256788033798122116312267020349779306565921200281991793536174662311133472883425132729620978024818519416270682965825011823614128746753989381732924499048851529888034049610230517082449371873620631877296259919592413395931992917132491335361197324549099997925720515713139732928447646971910027257300090004053481165357570304834275734657618829827083460309866233674375866850326131841206106263819590465954341375449430228230036896038383468853096255304922169126656608282117711800988375890408909927214074461315864672138508824546895378621597036432707929955760282601405142068344690774342633438929279882419877333109087313580935687712157977523438944732752080185222656601682793821963704236704080838201991473328286519306496297044840597364651709904943746343688171968548203974466847414420185589685286988093190681852332644108826769044913483855733791893023925728700884561671442977227101209713420725283568954677436616728228791401538242389585265435338860831147553944463220140502019359240957318906211668885166365414864805277291782185818130131034055162901694773147493306511573547038445312259017477178721554278124460863809991863959645005801235300080870616589998424720166576954279292263403992051149314479034861087322635900566093639612982172904447501381198783039932056076779032658178810125251082990385143173524550191247992142546402508300912590848879235948332543925654181376706197931651962027938017143285909199386673701935711247346755117437816970287482248249603467248236112007842815715722230495790244854921774983751092223840765148611552674931704845604954124392943820776919557471860359701873035034720338126001906829664459705974089432755546810360153545060380512877044815258298963418030237467514203903009961134965311999820381778210497017476259194998012192985367168757932091635793981147820233405162299443847361607392716368251174238641371809471884358884431389612731812418569282821925665301733951848715154968113471349828139725398065616933894575246836253692501357968466624643678847218025927576086161645616669820001526371712994337055319811581165923337617690783944400062590567918409304636460081984596830248068648132636391776277551118806719455503420269955524155939557493672816953286993156304509098368986895342843256767169441936342286854649886911021306957606152662119117242057925345045336853813756875248230219899581710901916701397257166060234672383456890661043614225926212849651977916043399601207797785935125825543148701273525827393313576275012046752375354473184638989810289598884406224869101244159572419853884221917884297557154278413531275770746403962503006970119519269457029387580887295938596945417992840637798471831745562578824253840829212467945445337014454150988600482829864232441540924466706346671403064792401358012653166040745543905292659334354410953970958261569344807289365450772444549724620310588084336875567296488940029574045566105497000103636090513546915153924368598816115455492409001376682831896304673828491408904432003515004215548891660918388461933337675711606126921701738892133315649039260767262504523049891040525126266397074667659864812371837944643816368561564975477395955112347967118414771772862546304543176385577915473582936486750439628286230152171826015705247192458300408780964668293102310657884188993447310800138784706153768592441167452073260993361290536302012677313084528126119347926330604441790948800077663331655415158432944838290957927155657396400103390975580573505343384999990711739693114412004977620623868305869551946515751809079934050197959655399697297753953167675945319716624920942017200488797549199065084243824552848207782494001892323327033955421830345280351380092025916605718993319006823207596938364050540246992289868235901754745128186257116122094379977954092745936680225295894817639331403665636885575093141424979888150726563017078668610301421089333253629148607352445954994308035779273339674925789719833955587384398362096703626608828697710045824201161094535408406010758956337320826010783125327429164514254099421213222417133149566779737204071133617348757829485574326437050824395748984794076098406144318999164320962048344877897382767911936212561904179552555475379689000626304772316778737717672604387598997714215120893930962975065360224810430179139210549983952552507231052876333568162556727989039182700247861064883904872453395334028462143350147207910006588921076827092488858929674766360189576015834267555098735001994335242814582162259317914530685731454630674649651382342847550952321748262710079522940638335031679522344787156124526695207014785667904361938287632192086367219430777417300823303118786728480744310272094412079595945046028001423106581084352693295840697468355965406542524863291222743125776033596732630299458926467930214111249759727970569355830421813545114694915564315485659592312787358178517228689341963352220856660106438373605918697137152202810637373613980010936099555935385590122887500980869757581882499878352732517825141028051290109874281129825583694422196140495694588554534365952826206827019176689395226023628457989285963000456412937924039028924991635464746634812005750309903313939795664535194498385756642235198538435473080468586383694413495847212317214617779901106520382247443590441510061750652321817413665915457634829567861749792354742376371375819794852035311720327944432519167904231007861045368217408160290929881712765181904499806647374003854789307518420024630429814288595145673237093343742755107545785347592836195333696359979856288222769327108443464770492724806353124718555588598929792864400140651462951493545221367100791167100355440244122962562980813223122401267231708395848600436029497174884431642727044312495078888617975277430539904524910793304398189731124025211045442614407144682669728764542777371486594836526424769440486637817284784894317787951026493358414105667793948574267322011878363258468444551021518837771374518843091998441574478979124938037992630129230351191287153466500316826739662044727167867155494112799228618902001179696836399228392859551471771310418590591356058228599709131559882710700885790111750787294253129769643339428939335835174792895123612749848446362922330087619095658953806734070099213310528451495638941337482888806223292196537128199916378871766296486918898206398987610842264774284087156700056938112510038056370964432823307690238043115828293013018356460602804613118949614067722506932972124950680512088635899508723786814256836722447502915223327295725516362997246868142433341877063114335673725707826768158490649874933358955475857885361237753157338023513619599667478558427810066783154694905119057374313666103622918914047688827594869392809120318793530783312416559818730799473685312851820367348074825783080760924162152628664857277018709330552311736406893347778918741280122894751420069094075657660386888252568306590836688504637612817294084556066662810400801499569627644500373091027283913381974253224452348075202887409431509550338762803689441863669703596951445118263732767441187499584295107965004220946896260482035402173785207881972076007433033090879387950117004761302103346916270104727821387932948604766131263203453848967253582178400726803061467093880332123335133342649473201249915398479176597047344410684186316956336797149635053375284637390040911166906837334231681430038960888010794259371273181673142671230100434657801466271149481462971055543203447178298743632179889902442563729502191452065170925352029970644734628130559855317989968830547483539056735074496713492011506594481926305552791409215166170717227410291651945327803796789485114378993568574731712658277142212466523218135895507288249459176303531144669653073292536571393248875679492663330213745112593449537890931558928415177009732572035244564685933669863210958704295827843322565304910479659256510006400993165368945180860738010395927742918628547116257340418115992025983788333414567993130067570382218126470202665567874675617582162704491682641139521264000892855739578392709962235472113873654236234261793298506471858409841347500924367304285698420269916099689128791567131670548921685931509843243305455614725292820436667806763901833417483762933045689437569760027576817799628573024857736894244129703446536709306603530921313872960715130245816471754677886473155296817494625710468578842505711132183889004223795858118689295821326103559827445130498298585808521965050120104964679160735279950169080179089265371742864265991081426732799372668994591314172536919894626529833261700486524928755313656822404885735305752403301662968504237590914584436562641386758840463848595576383222018458099341975317474940092053834569796186893808229948316644080833130647654200224519634057288554713390992145531035763273717833065773561004694340911523497777990969070475305467481524435737879517908130002989061055312543319558050492193559363009026160843761305687990949140566530597941835118479873579106831899311174787074311706632611581825089977675376724946419391016332179188766074613813917891477879847250491057208280852005918238199162661421525913807450292080691422930602175154389069466180962051747249674174974526730932915747318705164751398036141411873194528973662325122418188963711820297064945482839690869935341702445969988138769869482400808646796261387804055054068623304822188472279153165092986053670166559678248867262641586147340522819869561449851246098489526519404082306037977377312581363193630309890037029727831520098065341735642097977220652330113252229003721956047565539705819567799257102674646339768751390937498497913370299545514703585456627946681739241364958756084400613735836079575517348167892026777998211446535711016688056749569198422271258358894879450602124682316926497336176241619592233201933361028045706935560551355336674589431823728982328180118373809262359481560479254997911565300875422391703700190943427323454098223579903125395800469970296448367923058135733283712205585880497857259264089630464060958611947039205026618469870590019021460924734517279426196291358878344210315195898755492191874425053492109011479603651742432002062669265298668574810252885364095604985947217817311034073636430019658762381671155593572215130965861851494956803074124458979480836357560554811845486017185915230516146170231536029680458574217270498030707629714542815665363046734455323753866271346277784171702763772661050589433525105055950760766480646528191870121054487361528445972275169995767455857542139823781070061492932039132727198202664339383735635425975991839881497140593863053561852714144844029576746984497627244066328055518825685867711504910485255396463786614655791428682776029861866300314834215204618104943537238617082215456841791459963513758655022564704859322967776865504000269802028019963456427445723386014795459252256790271144732670707198810088907277016485689042734650266228751118464444011944614947972797794735877311823590135676394174708527045083581662852257078956117075857445420004970632172483167935664420843026768908329656892495743700031834878463530206152354218576058629404298047962513651313173863731665345179200462304529239229281411474963920643153563716184810461048680318532683229847252908882507853180464121806720081373671582617582944733767602359874234309410824781941356890640123179456545485815791094155774023140630583464808430040846174548381313183333449084435901003513949703267593137910567746574972332120379741897682794831278480277066383364267240983125918280562099478367675570883592413995225341520666654404814580794783139209529151506385782571604277583788562834437053096493595192311213997096080881241282616873981208500605927455330809915621419249360613024873859141662586577368785872847665175675034712071313003512199097814288503757541563963468600618665882116100797607980350053668378675504404417742334449716682017838576984333761373118404183656352830954980398680316710256836031839344531111175787586118502690967511028444494732616761393688461388697529270512746374083491224326777767965922031184000261650267870315429897569473616431476016709204085889239636345048341609219953199650737797396068782104684142415925818630116917781580366132756929022239519461399800462533332666528633677024267197097764806897663696351229777091796015239763279186623341613314372258901005939354502054561113039104849586779840411743759667210476622940792669794490233429597260514736587881442119477518364095864573962934649538149168473668592203474426944554056207890354099892976141458304916392106625877064451509644865654875173942606914721662326414348207060806808216947253372045654254688161157863110908830086227369504164682599322599272690610864773623502661769645916722993260579566251381779503674464067377853892723991302689181960028446141002665230827410093069933935869246589376412131330123148514675247301320568936778224056322421108533558923049051239735073797728381873570303292031199640578319175886380523712096537789971810323819171748356825869758012153828311265056199880371069756286924113059798781038300776410414528476049981807093902257768129134313760821879304783799797593904497893735667543673588967727192822217843965190870422575380686873376418440554045045712960058810665151496748577330461846004954036214782755606882685923567711278738977207227204171683709425113178888303341221373006702332240077118260462515244593661124244731347437710467510068711720268676320492709288062214739012618061323350765026558420949736158360877933647583778177611896681089686425731486037670725784410546284122370908868824717863775207030768003451241904657241614521902028256329253187607750712220148736666060868132962811445258269038055860773813647327374440167545361342618301570109749886730756695701910502059352451998525477711084427649591919451309958592732025636355956776557599379448557093514959367216557070496534828334613675862738578399963823018813316095513411772581476541825316937140207530100589915812387699741831095894899324438798639350989622655772083382802296953639165096375593111235521206199780413536463247350279028262277498199882837521823474537010148657671023287365783626800329291888397217139675143285582508859181126816701690012039554899437601840325870698337579707872561311290949187364500273273704797281807398235130125649751424421370499102463161632956760298404339063754459031602125639856701300986025520764263828654202004555500807603502377481280724573487271541013657721698620951979900284737869472147077095478925805332841161734008266483603808868802338773402674526766437768201751675579220299082037883736527292934058677247621108447398109366471336050837445368090285374981954476645425248000732553593972454530399712388090433665542213954731579913621670790157390598461528864277247998730498470520407868920016367899444012862595116698091954079367929938633598665014960009033554148194618058847242517503471330462368054196578591298020034824164660710030265897333469936722764090906227538864428350972435693975876923052819289709201548987812476666213283908731333409735307514007610236745726201737757669887883461917656546849121487839151441303607430626397042084774376277985585268002823051041251476990564756317486922558142812445184302591489991370971319521134335964966416136259768997301894978679697022910562137257919343078945101486289248770943074042025542743860455538603437992911691627838274467019603852542965644175291515071282007094214604901213998293470667023163940000074889600786205810351277980746430157691785287197933814445697039279177293691203960051038245013548688014794309156356818389112798935553083948542050011407244927517506755670860947840224015550152425231239569276340439582276723085833643152859596178497437577620101051235189214304280538574834907331756751502126203675863228646161092192005251654187005498793740833324395555821555190851909081304756579991538738870155304247217130975355337913929853645697786803723338232102791827001169942167714670303321337760045408175620245754404224054257573102981049279125705430870578383858960331975023073644692699268555675109622967857236606381847072510330365916431540830146805644521067490508202452488211517409643547281212495338054685861910530345466124779822685746322166996084907597929368797393214657194650591829841904427665500490307927216092493136749034566543779202277176161121738154597772003759443668482403668364194958949081406322772245722269895538799683912489365111038651847686870417057612824895832866813669556858219672209051459520256007647225550563946346049087828243326758937752223760493966134075297924681841106811935708958699407135909078122709393831557890796848374331608945779483059743050565793191690392653688973006061027674544634606939430499887222493264331825427896482892204107930068735388955310722364960356054561842348722251049676545060600765168446324260688246286319681697087747458652838768816746169983014063579930542361365280582008278736190840354426192672361564584437875857158510545057294890673388943853009148590027463774933601858787263205824497680485280969860008659765788671917287959532756006783480946296115090328489187009914444959993538874428691719291039128997076542203083621775753605914761990077207797389810667973508108467971642297928322815170683326335927886935023547690367207240344048827692159121439048307615036561876031206937653939137217573377529429066315190789932197333381876383203352788086669967509243579521157290709573254131686602875708124431996493447689979634508402514960874074560517088640424336311181494739243882473515423281145654361476438098558699095006898702647958813750435530221287548085428791057906061468783732190225370475097588614755242110788917456405842883506254734350350973655585643342474116736968618071162291339603533994627713195886757714771275116323323349266818193385007100155969554376193747192153886602729124239317109138028011019317653766498319343088991699502294416720933850314768363420256502795704341565866517587091413046615328365168669058653094450001638816655361439513413495123170212061268913935575235001975543774291857814947483806543597700348108614847903498447169826430283348007136805847536660157471225505762208316591604148381818616746822850513233531759614426606942995555707310992071682496664452435016284991234107379538467307245580795457402511675684319402586541102503390908323966579451492468475073542748057390290710181795396681866280732496602437807697412898986943952620890249285093847558282255372356950233682882160314624934798385951760211964009519238788624989397806753122611945542648794296612593506142769226592992960012597515443945772712130407952329113571038531422078341378831348426186134459705494521758851411076256809061814405196817642802623108624319419572231107919567979043061869670897148105418935812088988231348934780029589514808962571683355573766323070793826495838524490378380642870408462767081948056511220102929465555469286143619257525996110244634700640331059621097496373447457812428742992853946009374032982670378243697291771277420362471693893526042159428905825804570357707740719419807972941408683803469843387729193681270779964042106530237094686939602477225186922598837648100754241207467995110413895405803855343436615070504375494314962966413857688619230805850080685035157552117371024960607776373702599752954148348129342920683316689611507888222700214886503576299589837952500203315263870175230052954780463214946151491716426627969269710776615117104918238510252122656536156523549988190310982035186733034029659879011975572035565678340065423553612960005803739933149018922617451422462885716898062656706702011367259894137475170362352296020764274299736885246058851801205548132430141594038101649824880960479826455330165590761857298834735605928619959202857448681577350850972086326969313035845540184658698316055135704705877825240054828201311457499823503151863403835412461613581819766803763830112199725490649636082444854434519223502157355286193761314232378250469962602225020535934917932176405242178811451889219431551684674669708438458637902838874183059257279514206024719706892721860406272959173519631115010869288881241946841570386288762913617882427422315250182531706725945110323850021797425657023729874761479643569035560488990389542966711655129633445994019640488806016722237659426343421023139677192255598638283556024819321856111019780779182202166069624025706269571990207183082243867608704230334322952434009816266584028808129658214408617896274062516152972402876755990498122058917066052555624073475529073343847110765941497181232194058878461951487840083881812304968556347579399291380704011844560217271203442061098895318790097520700790299785903153992275741112452368136979293012976470486887999702260805736854768287410914621581493224336861888526751590294580714706379244830432699362789635646469828088562632199395197072841219452953456358391126311963202802508937064920658998469503273502296933813282670882022279420252802008848783724135960366965040222530300907519434964040114491183930217908552526137602805087128618636223144872858072987983277882718532320217384511848890127820047894174731228874304731742070552004429942314251986650387760110164657957874541913184482693178545542524115140484542296025470151145897951011475334459063262976384297018960633842271360019363717870652417649747096660007946352453840852165678026181603556348297973337691421050881649187303164016661861576599524560224005309247639388708647751699123633865279387157241698024065619648736114045221015421660049875560353545925797134563058113611245865838852350880418985115314768755731125602630649657852112278785721628623541224936459107470403672805766241254253012769801059955422164664954373243596846700428177359943830058863914556856247968218076056272837273458949710447619463968247643803627198667251976374952668526043658577838990103711245961775839523896316094343986311589122837612319485094235916958593474051674755000228819822773605426619483634021401110809809332873778519556622855822560871995316643115777656057221971296122523622557801983541933526814908548163248167754554776676237206994971831123080824176189783655386407861223114185629823400451445730476221242517139302032691516375683352153091827298458655675696608483474191977646919885418937594480785622271393848226131781070027502434107877621353333007444290259551229066019738659497116030884481168550853362745643003115259130591893744911708865731022772465061752215721946573216561144335285174757481562960736906362389699348766212621186880389400405356140100578568943909175955341258822401472308935952381882081709420618699146730938266315061130397611165884010278329531225981660144433612515433138621429780170274806778308203833554507124427801698886047545320436313921286869468737669044732919000812457829294553511036394945207944045170587384348517600581231848851862654217719355030059661463861123436483720268633868040320944629326561276360427798193174707258791758054674438705193898136657295044555465575257057100697927118069583056414739032980868831375945847616175757757064843144275836958245104488149794514003844853600120229940820692584048007376284503235590371029642758164292846756166452226450543584203456388992080549791146481322467790460808055385813347969005772581143777000354677956449632221419022512582099779578184791596991999084619124305898043198473786755147665543129337927652470556322216268720479992644440323855519347058189586743139169083371799341377435988209655842004372829718042848997473676877105451240919714318011345707155067163482975924208092343220245398913648389404194978687575133905559791481645208773323247546293765256288430757407489123476814522201503849252507338109811639412650607561112436375350571433459661244276889150776247753241454664211368567940870049423793698070811660336941603386878847350119225621427128619319175956326093471557241438572227185971499497036761768667523320407410856860254346104434674202949589571691191199025602694731686236797277834484560086642182043259104962224152439675803251001136879148195440639641962363042623035363270488949299538335528638004334952199347822720468004493682260993529843253372054025912829712908283992510888139215004572101938339492833773778697699271511994295398561293584528537138471903864176880576335110461721661188327345723749896340763824781396104408838195231460353927389869678727912462834668106642111914289165244749772136263835543882471497611828227790798293340713598770794864396777371777778486334316603525374585321287008334152345642927370629480109931537032680875898051943832111136347377308405960643974765209541860734894658158324560583920657066426157703694361398604380167397041808382084310257628677453832908825437893931623143408634134397180586832223566801866621689482668658878016880385379523778448737662533383179498751508294373076618020950936967997475424251626575034173821415827846108181004748583573416853275576718458304836095981832289616065125009199908096574939723899604890866325451512146983253915832250559775512482203026624332609753811880943111623195431629451185582894782364810922484704918872572304554802887539886070853734231670871519967554775042938843730906063029214233298410976907513451558152593685220665987989839468652579686651404524594366054555728690129306176618565007115762081197880313431884080497744467592346127111850401707141825589305640471856792987359075138020509124362009865439119900121916072921040702261864031157118647348842884249229346585917418882488009655252105466163669656526563287288622412553916628788216313869068042370990031004280589288702042667085902469027178843270263993774723821368593172119181261485235873812383997993085106897334878814674408202666331250184784894776091836109100633591428915322768171916507499725316886044548831632895590238044013575016161018633183878267096221487208824334560663205587191190032701384927148424955195680835225708908693657149431681883899308171761374981945803220489595304803233256890929944585451618750277705175838978698518776082319160095972673564874823331695745647705344075105599208819902868498342821445750482549982545614021474714821957883896515714674713139381937582165124655997940677717966551641617867850762402992329039755389441738634671150576502615595135871896079169159349629870469382147067601276477916285621806271229074896659476708508342887260152108910472531212009815904060681105635657484869006135677997644779776709478820635150247161638631687633838712477564784994875267268235981601768500141970312147867490289756732033647937040064312684614326257694332980278543753514401759277964697197946564933266734792257046466989213994662961813221725632905251518184342085251158636833584134836596470792686049456641299130177468327568902076389568688594607215919275492594068969311009528684268051091995489055036058554418984223861661942279395496085680086805610049126129108107076787170321579004794575434888415093735192951455169304280631270907357345886563889498676587410025745905807449743284327883555048959470563589291865351876168477529241456623971466759460045976259493292193998370775002527784058266370359799580332408059275540111820171053848309435903593442602383691796344844405628918420604614083599982061620157935062001617874756152540334169881471358475451468953600755409399998245310869615259055707074793650331274106704169871582563442406976867759602370221779066925930490631633113829639669172389310644820949128308554257210316507606956210798975517567629437492047775605633532614167958643144652100710393207519829581575716198417860385499340293917114967956718060989523829939401298919934722167559650157854084424201765475419936908754135458583010416868963674203922651398431293305288559294184305917141199333061267030999268797292244138764549867663106462586588400751428844990243773370319106774293042039512661964994863398577974236217505023066399960729998982653731731313320353270727506775781505848973334778180110004125370109664955434641381266349951033199467494131801280507133816239922179853229394135648642120532102298349365494698490509307758788713933735152699016602324584267900597504878280203950853362389441774142703641988286096351673449386599340601523249944117774623877545281044226546653629428067351785847848445783781502846329977332618666282752123090887934035789383541122632093578983373620816705093437924413209996620901631750655848596607469268925712552461998639420586320663111925821769239388527270297921934376397503096219226177296518325507099511970118931780277836655190595331114925152855868251283451625850299696284101672819065047062608527066148494852508604604633965853288344557830660194750029928087082748792291526458953418546432663756140433923457305763550902811617801429398053429108659794540131124991055164441828285628852005454712519996284255742809508650221352957763937725192554645864144855827521879956960199027560459593664998072829425706164273084681309186220648559501104058394997133503671490543867361637440877797743947594474621656041562995002410455498974722211790752013418858505284423020684881116258227536068191492285711807262234560246999062198203116544124418251592463765723050307762630505645681575247296937824842911429866625683196378773612525321868595802295704595856242281396618985748873727397192449522925134864080159970033924309913245708810425196726938497524253932920139297498813560142603149436997300755928117824669921287608853855034202687086295781145110351519462504723877986570484046076255488935830760999702158454822084079307280831618567056985165996730233580139935613969191383958350833410435486482331405469843871304942549784791733547329614985659805288849954045612379985477718778353531864698530452091983735895153689717156442286206723418878895223722485515179999241423049333050485531753941691336175909654295936592085320558028373568037851294961993537742950679017112367594852382650386183988774757690884329086743838681355786444319106248535865296980636473266543023881209755836407488693286099236768640718468399888735443014043581509861261041021463830237111913680762235702776196123283683641530591033173259124762648956741054486373910380523652779456189571887749760834071586757700899667755213389154653124912543020109260405015569572807340580116561691833007304910835343030401560842469594183625381358660619256893278168526391501843791619081591198529484734580608028653956243228781709317174321579507140827738679457912025732375913306265174775078970474328586112968284608867595355362097715489900336204576038965435573532509781417272632222112494371111351031727728689409146614408119108253521183675184851940932219009418110990056457209456315487629596346006140190783523162605441077651916080207880021838849846185574392477961117444874550864565739663382016912186433842335756532387551816524474617431673983510149542362340855180978376243982904085549336601544207365329257156107062852242819155529438319331489042384242383237540679970156703082060733621337515315061005450605273882252224432298180241512117697206881557506808581978837629367331369710380338288798037370344432553961420019475302914817085690371618765620942993977013613874745543420947664896069768247651816127638384374801890613697356430871275790223143056601160438312253020464146819991991891147288541863149957854038892817929914930548690212482657623833596517646778832723635140632891924237166824444241600543470509659656019176871064912161444993688722056553920070976714043544354219374837711473005164942865158299538372341214270981586858746800178015634796334081197629892134838135255650324950983224910872172809538190825496324244415974261750156254442055853623107935871399150633619839061121467666314578773401648605407764811076963012052723662794170380000789612148495646100441667368683987635905749036893302458764902155061166363731432991677548852981793249245669757017875831366477992298463696114670114480346532960533274568728404808259482763414678382809814249616080254072631299590199211061255500694594719705209513935485846931649138400015940900010087438828178723295478763041817361260451271052172066124536309504563490753774342623801755897160272830993319255802968559309689227188459867989122280833016416403546036695237882766565267860867919291469309226938175274935767355276265070293459558574072348380279422640639134327292650923601435183846456933234813458071157397004825587563810336651082806794616848926637117282871713845038270661579288234425457375023568660436974950067600943567294023118788850646319333996335741828829486128182928411396226409982345056548610863372972397473027302106968763934857123054243376680869134851757410349457194105776301582803904630700582286257170662731854076185332450521362154740946875345163469982795614512867218158591741564314560979576303567816363555099467354884253602930259746169798813749156365715451874871443755700230049979554181176447254669194446632683461070216811259445263575613922088647170546709547344795454910308376230743192440289598665703204211189196000832519044410932171142137006380265929076553056844600468128554338623984618640330027674746002480229817722660557728509269184178853420085333418388497665707320642134479507238358945124335268249753255477545117747619492148348528466908115090828268907594223609932512745922057293206729108528701565061343761444232025703053975835412719311665087465730348106034228039795192050151786988098999513495210585526572077472045802025574872188122907235909221876202475730211406036693514892522347768577960517100473220667822273545183975953702283749078718484464447813443326413694558763702208876162871624175486620812432625975414868060151966856896720075022092167312738051181175316228246557856569234659454577215229535836608055388731545744471555895864379953038794295380536455034662209359106422492452433965440683883193065899978917087144165510242821046957797795953414778541748443621993778623712198638971277304064152556342850318941387609365132736142685221251981410179080173153448252270101146719656179520848157629728508819856398690171701853710524673221050470018577914303742601230828836532132483276745756508859733699517950139071062008960244029364703792748549975600869065581357307679045329223115317146518424917165132867699148082624482606634444471888311821212031419612605833743243801158758571519693362137148308037568184264815630820385049209531041624087326871944097225799822190757049995565160753346997446329112113571032350811714147793336775837532844671948040819133814806573683772750368012269536001587456148079273714211575381491556293953577885987103589834770999041311352500629021466841523607091963233387809451978037780836972320924878314446846430764062726484003489406287785269491372792625167242789540113136205343859405809714321937804786881627736148177567421087741573490182106232590788574451445286534013095253377140484473477013279999827245419051693757600100005024795919254120472327154928838471906843924652327796590681220760646334575245218892651426690190341586401289765417137108999517664482834395087733335464467107372225129676635237351126272923727619485698627030779969439443556773952864313146766369052234230138484162427102651529364941045071539923644198043362143228130765683376765628435778044182494061328613459547756453463656798646057351179554179455208578701697631852391072915793238097132840874419092780160756738795622495822604797193311706977252420163731185770904363608855600356699731075855577003146338881097552591140176616948782252789011518886230973169829971794601972019263671310400759935703549098881046013413224978244603729777430685361782587948468148942703302735345236233502720597515219064745159476764017135497873168883053570918869776487814790554970617290190180865746489977944561582729267016991513872236355557030535129792401508721574965770415256111293606246991549155120128656335083086993495546641432063538642201993165499103218013286440520462338687639033777506306135053426253235328441141711278986321924200845800750546071977799522328480984384787940815873103469179864440434487422447117310864977668706754867064868002341150864875366875499009420185333383115104409228240043578541940864572018907604685777804688778540719923173455518155819563500374329029867028223354482730278729822691790497426914031269544727461298277086598731101079578126114437245121024805555429322547204599032771062912634061515992450328171905938974431310161893834096841739505397989170262638748947051801314805308926970117047705869267895808034641351699509224314609562657632711453198329680328987624317500451867715398596799599099574404657104788181677077106933621420337988723473054759586857191000922747263211833042538425444962915769536567270322020725145630009475874476801358815617128338165359445962736595986409681249473419288807168271497421279965972656605533398856405007680325208652069484151072604212874628861713851516370947264592407175455003060482811298976988228898123949785585593498008305782255762259782062994792959395846528752980380191622033586409853395845153431969756857213701438393681427867813550298861362545074654275390948376624941260950801952169780528783422248077681720226336065625013728411425180936459899872197022880462036303626185780049889722761091205003286605167281478588553899872932240757410595486424132963812265755809606661741109470939791384709850721764831599115401442893669454216682547208111178749328930172626854072068562857960208651620096945588543569564347345356656485954355804207641024254681550969581463293616543362508263711991382020873851318257928769230970185861078129573102820573102643056888089686213592078043078453399983381339555022934626926239808621437245539519969393559030991049219354129210477323760521614535148274105658488072898875438032064469034411145172460269662266621181848289631914136871748791899804160291026626442947317421662855020771488156695390393740050030680764133852641653762522427043017252525464925035872108223044002214904604214282211264754540111769017707565581571975713652443057000459144765597309504680957004333305290182438453491607054277360069836824460882098582011176475539942839160500460000758025969831261478280191896836516877858321727882736586208975598554106689678148491505825888154103954211939097437929942777787482482203412157336906765837182426252521412198918230886377949891648027826432345385156912749770445317307458550386605337287222115244103646274775587555047054245441480894424993843077160094554998201616932138844729936702483711949792901735190952466679693225821233508061818508059843671401221341387103960973949701990884677249019386525165999383048378288224686634159853148573951480890366456959474449649657227545011258797366146020174942768868088831030012279902873033511078558471881409217130838584048117075909608126027685996785209206496004010243615374358670067091963619603382120036875184481374596187759294532840004149529190349566085183345971436944700899552885181007860143507385425487176247179815447074025484944959521678190954759074424318131083756512669566115479783754455024153581210829316315159075066267630773562688616707450372445153781350560356486180260480062640913443620356706197251742627771953546620379423401153501401851752845747834592451459293481730480431486663267001014712440832162442684467134395617331053868004128691196505374771799586502529142301092242176374683908788565006156141768020670613237835244634209813510894642950671019778421827542224980348358625970457866204625323905710166831220764158405257715684046447593963338276625400208967279310047301129837190263930894084366199063319407291545515530284075467766611472116351916431714322750747430485228363478556035733502513158494297528974399599056799532086837152301298137294651737336334124355392006134525899878171871034217468259091810995028183409952126234838281264940297387209152572656096362882246685449311554612142206595874564319721835868710007149226010278913084479712805801432663168101815260846597282549367352088100626588475376901808993487535308922724756517694875395370037401189117441294971144576626916751479958921155631852511665964993976332516750630335287331225988306692155440097188473284582877256042282328699529598322407581810871831870581572910737337585998211786492712990911163022613761924868233334978296449284260002693945539391281014209210194635760089394146741579925446792732525803291731995739762898565234087647331736441299103853929613193873943815661924977713216841329791018614136605175571969261415227986416601402762088980252949423840217891958411067534742912682990205177341583962374705232212271392982674440084553133186448540002977440849173473606422523647769152436374152214797508157192405840149675363159549241409338347584629058042408396430078923204756985311734297199617048363656016783024518921788977456112829649485439763559336252196451114606711881697438260338632140549814985393503158969018521460024979160559317997754657038298876669262028983364921082919602988376640974686866317028983535107731301810268525528706252064035094982415418981377500972360182759649993112788450593448326615383694463425732931410317166786123995752951570496618783354535039698412392125275244893164862324367974594977752975737826629461720814339004931118713238563319501635645634672397596586822493308151979592914102869248565833223504511803721873896935011205040476219614111626838480694639967704635333564111269440190080430842336463169544625853213884522382246148961304614450407665086727201643786798298378518838023511001496048681428029448469703171232665406109278407241986150317497236376666921481169909741603609343304334987602373015004194247192691286728717322041796646329354970257142005030966681137006936399637288036700558460305776044274041747131551375027145585820745731202747078400472735892113943081025082966562292878011474360486992142574859099950869677190590912808679687593885367693541056276683569654587480040763490962223968112235428390426021452153257142357605094455503717141125435460169392901375368977019523995735784178508295394428275644936075388395199326316903936480778655843143808423335760104403518741415517352900978073797060170634571129713707348986747017437557280185380289095466549356103891859653978034219935868657140380835301252675792196641670463873001497538038375445118393019557817946076949961643368313966093373889269031031771344939680794261651244812310897808715456840144251115956153246679817743312588964785743850102591755908612241675538399106770404587583448525496358623724598308775201438126227548921408929197348476857535482897685479897484482646773066486462899673313317263849033136217723678223772616261665025775989960575774091781336144755834826987175242225343311279458967686376712658378935349212973027409711570851109834029216129482178975399829657984727994306105030421512987415780250301381173380308115614766020705746924612307143527098802527103725905712820982067844698322700277300205204101268236498910260032483247624986777329675676030730270138224383551013711017127187166879588869552200950685404809755521302488837991168436354584955531490863370490489087691176989758678825218039266860316085405605687724525276565590640942654867249723338212561885988148572079130220786639375403937113461449065919445797383646712500778004874776347099724466800467647828816592283419569181339821360258185387290904667923567892542808639829206881863693787564190721587161511632211726456899593407281301643323463050599324921832455714606329712558042984680509250708063814741645081131201772311816851391237361279652378055550919908589986772582442008075094612985402567414028467968227879977136332347688156577464507246890704474941793511282876897646232775623837817482273725605690841373586790527015013118086535111334957614982119776731019044641712886148252233073870874782918622553439174716681186735629083623122124347469355438397243490603732299357780145049595692655518563020123447182738653566832613402307213068239505560439745893091820777115281760772399083292971561449140205141921212176061574124626553244184428893172372021469715173384218131930075302936245386157658156407997739802203392637962271708791313173157528785967045277505272310312964087844616347487833652445079032497916916776632476300761402536198459098457169598516187433952390977076594597910579556744267655143108578063872304798358993202531383276232342908076113106375713684223341317669840798740309764104594934683066129229625886725801651125671202811533658047731254305490820275681348842462661050660136496240062059362755577500873660124233868045831515094776229180756782046279480199353438367486286874090679886480373961342714089794140401550123974031823887247878471617601160010252738638152157820776974450482891186671568451864035003843512765507460388925163660802361641995529976611279498227673804780785256679099995768006610238916232660365651458799180887867868893919539722755776350475047567817581445929327593976943215354923826262238487317007301719149136845288042891892894843225856032848242609141873437926450289768761267534245999784429215528179267876210848122447636960741133964467391834520754751454642713969949820217793983769682114940615941129030761808223291200841944489246563644769717517640726060557210130081167603965659734652412888574967928600775995142939781122322746501714997050367355893716279511364735833738162711219163310803105103265603037582297179882017128127935037793876072455299276659670837732860763046978215466590385240114332519975512624624748139785313182614921459536811857078549079297778718160230485643701501348790014514530058852792339093796732091388265293029607056115810896212887403215924065863039659987866189091025077805666014381123446184334809877115291984758967001209241301522254441572916957634218492452865076231999480031124590527543638525406022926534576147262307685936659489786849433024278612099617456708120538619819891641584119825924355972324761558636989518841777356656043813808556496690302727090441786972154342634823952209420604713126094215241257753643868670361044379476176118361840478977060699039262379616166708437830110272633579863457305661431419787296866028715075823235342778712893151997713084568538023458140689216978977479947636908344828716188697983508517661297196552202817404290275587013596746175529498820371140135905407157032578901819059963404218222943267887116622640829283181734712002099710748014018989035387079755305008190887445370178951464138865614923331692941210069041544149978534445848989916100017627336913164524850905563141796616028513330175192972716536147871995346011466046305038584780191296642610665615587614162821537073507585460694228723643811701158256479811662964647461613530109824369825983444030763835434854853127680459545860585746742756611817499672394416261415903413015131562050568966996232745724451524447555952875073502940777148610905440480441900553501832626151151127687130857472726909468123485198325307849904532337744078738618725800566390284070518152107547725283924297885913066187998550962009651076772137208875514563563472930407666581034370556015923948083291610605036790621654004360151194746552956078470293888991459827560698351755647280408099866289409927584634456497591504929258514582579986032533776159392319478170760310473257131910510723506744951287587354131853225266143211432598494984077598281584070493549086137724639092290392947872271489035778187871183157852125551409477331853440851417226561079360061228537967796626172602042287275315186124904066928811979820588146309268838794976399145889155423045933048681397935325076910321769545972389918000240817784453111343092904222007456091262821466791610154659891564285459255100450209455757405950680216526129592549976598488996417644644428413194300213766466141060998799978005328274520933672801073269592853744776484977660197322499433064481243648333707930590534640346932909652868993630175028246886664615659183433251424523820362897978750588988445982085953788395132908043889521664684029695048210224451312874728924340191922663595560077139280132450909856130201650553654310822638507283132165739238179936233878208938936256902555287257212142242947256154007238990418003606971781612363485530059867736694305699481515333398388660339142145648297990548015019528741772846071169500599987292528884565070483788421817686413248857361093359587393552473024719908678286336205250842194224583085871683857712391900413897742298767125719990727203802705166223086545177127673863448546806472638840126753655549390472004382583203492788299206010597366315092826597227939547457340816273971819595845371666242423927169744306019159588106047522454276873104367838344770156610830934058117785771094568101589029695154477976734915871981155692225269115238613354696248576408893075167623506201134626237596306797196452283133293654856756880234366366335892476220364249495516068207883688899855113303632068744476352632282123734603940568803215962195565079843344283344777176197723965315212240625287480456223043387013449226030151855815821977785900767186768003647478346040911848526987531726081884578729400599116452982218831384576896876268668887594531579575573775531572742601135920296572244804171055808306868481552643313976040449531465302594453753222292299735162638777462141036699438699034033895431891237817586719989449150617913178067205770752442623619795489292341400311013832005674185989561640697794221483197245320813838602654159303281021124528272754559334243034981162336883019412541416554386438828080102992357611206194451051366569201144632671043321332521470460768409521019488220831222939304458629408219426088536973786017431024254246920716658571913352560549954635712843412848742693336723500331806152500142036101437329470162718956113384437552642927780343056821412308293343186591250823397896628389575307808598806978116155734763503408727970175015612821291714691392800667198266803254176104434619353829131948087284538657790062693710933342745858177425933447896906220872255840063094700113834677669873477318894763249991542220630432045539052137523753217026243958499709836375533222559584519347056938456743314264739939236863759099672264698930932400257821234655802231576570216165188571187896933604241253384785456976027499715742993369793752853850316032960078215147657704248062519028655622307739931829346694349310109415233145546990327241147570242109277939136651606335418151883524950522269828728140037906369214121080366791675542772476443637024834877705860275895607625739896223904026510789378341156138725644338131666534567024087002472569392100613294054314558276902133219358697056119209145430730732807359656630517714017065783103257034027130810146173995326287173339163394251783956603099169993600589471375981895895727356132988805019612054698983837680042888779995666342505616882464736936550383524809936822838241229661582728881600430019514305702441860864259631845400765272372708983108746541500827653202937414971365920194886649109460013795979888689681385005954206351043447184068311633217149259964641148886394392998992545686740244722662693192397480752401099673597124617238211116488691419048541243976505376935461938120737832082061003506091398393269717259239900731706939168900350854635672403457874518783510410158632272106081866998523434194646724418144213581389865943338541853359278281019409268166609594348364662257807084608081429677695178578904502619728845244591192688811820537809046895576797557009709789041044108149077405487269722681997960619893110115885743117555549499746301477247223146848435592408415579872948517338555951532255574748706977574134281231126831963095071945580019994706613387302966380779109110932985128160436045212206410846117924727780092282419232490379916830652034995788993828924899844749669396693796286930772616039966346607667506958337065281105956839727912049831134236587219824694865267107419280517302603769255299373894654946764308087248136873528631184210731518637260543448732293207314992295542284940356821136724118336934873944700601335705091816200989088632934127523658047064650724061623399007159270789262137023429143035789358699854673817986598275174180638673028331855629370824178278874268282951545357132182008146867501593159312050153765004867264239302948944772204950093623315104883370247326852527279015672362314037879281544057430182875498167923428527085001044456096631690968661209627665143007863300126008250755738888665884043569041410291049726503711741739565225355603256848659674110062062872865746525888449995356688627350334410685713575820204025531819979840425363189441317072317979455930682714349287643030442898012799047978000318959837811100433822161822343923368985329505293911098529568631029470408090237948787820642971970842505497828439038286221035993914729652914849716206844399728625973510054255850580324509642877086577443564808152759370988156715019450003455059860025802558061566272339179526838650866242077885658511961990184905385854737175197462113952818813720495635719383338196895228455124308213244296362911710612598231356798282663823555677901239733330768443172400061754394743858534718496381615214367917894877573482504636175111517747315443730378483858225155774618707669000557850114538510921055085751842989702777461525452711718037337030134750669872375720759122475178743419448304759743340142675236604454623516511449438954453512490244512579744507504463764707737688500071920041955834207320387315773779572585440725760319600540555930303900921478483416021012845498179495227571084006680191513448859321664636566880882184941115224772552738692172658804649615617249368238038153023289353397519093061567232513383935428240107404710545396571136403560212034784933527007775102837481635910480568806475972573561047971278957381398781775411887827331338088264381426880271833627418126005215379634434775831386524852569585334058938809340687763768807325590528442290198104940781861417631510512445219316714274767398465673423304831739171151308350180429596616418652587428296696156557003008848621012859970057270831107372880912640493896180207601253135646296548099980790824493279494620626997893225547299935983151072543261751123802955005245500846254842907902070651205687627300592907559315889948637384466987766128086912475868955351294780951461523076297328047707102223508471204419079410870641943853837333631573669074777085205310378283954251901499634235255836738714166010586346863135087620546601417478735146182198269838595791918691252314286727949952055057648813456885559409628563358441890952956976892960894722826921072135717925948523465616933907753261786700232128224108396295756296346425954625426661646270390965266589664345502810634506912536640756769497536769755532261546667021639219454951513886437075408866122969808128337723692808278008467395938999692159616412386631258077444551162591098221640973338656079941501649151806979837128283068732267925805794297567141206119844500197519752799045943600570360379685013583537793280454497375987583101043125153850546396351079651173488567950860530967822150577807818647934234235503409532726217421512093515720476538462481949551583235514022287229944794001221724590690657356164310570962961624995099904671176605707751481485532419810398972927273141899151680223525843619040557194217502664372540526384135846352459478341045825764641791537667947363628336916597233530440722013285397673434675710948166498863641361107826865508805082647832725997838187391782544485857627379944272427451978653164074283292685669090351686092018939110544732088539129695590742201675211171536951675079166608859626343651397552170297026297708374755477055279532204994503422344968494870262749548255359744483971074080411652215730488314421488243577684212085800204353765558004306698652790644726506073140876199668552538220187651208276910336916242886365045549732319220058477097052688033995923844734442537377015204500939174713110039541382610966797885294837164158755925450362927291112953456287266616910464808335405300355861558235154500399102468047899594058566466004983350832355476095612633703388519435631251084189885934405852975586770939586225101563361389715932486415192777224958084743345631830015657319909454818700321418526908871607750405973178247853355474281181458025215436873200916199001821603382636493373705103870979414816561251345668822531079832045889739488931753625596556920950068187356041460929387144094502824728999458810159817544469839535468181202554112187075274841332494001681411874620121011504841941486943228023360173216001434575801088502057018473969646621454938414582570374665317059909894695891464039777385208014995840798118169101853998027627414729027798318855823238133945021914966832994966939183329489102734060136138072090002290496203389890670880660144243090972480490076414392921000869421186352842179141939284413159005838127378126258381536966429697728584480474773470302422563810167814223171390268992554945425369427833663796089413653933306663371309269951537878584555923772285612710150865708100365656193726134187492222048037897213075728535084295450547216325779187499671627849166649832212718950223561188001622634821194385892064826095159056681675347919404218899609947409863220083729836232818775728732851196759496837613625841218803413029932659215700217213492126655149988083743370632916286968590001314817956805225570760986454604661719297059448803448425310491633760858105463995238680627970150876460497673518155202110763114539716407002540181541686451272875151069242063692724339729981204698139473620052481868337137784243782637090134184537189857434417509687105291108433847214169488382265967588582141556285843317225754732655069407785450403150831448188821392503184412516294701863236563563832725984288553481201694273203961869137834939573960459770288624395265835586394877957237190779843733477095839412230923821355464851783846255060883469929979650922827942294127140193922573220254456989732668913358616490004293489726677460932662435340327579157659375550369665339326718856349714869632007313722224529951374772476254242449354970148582255921580381475098693724457775873804291483279818443524775189894281322722667613213641052081712770712178607091806397350057742694935610078007414900694062600641823819422354910042335206669575480742422380577492590603493933731916128196424715347016555967599116606779606113112755978207849752091569455493174815581176217216721430466768124363552231362039851307789697935342208888862569532222919688486393281153522918464301688434794211719301157255772287628675113950916720003669637596181520767330284352636449526438392150586804232182061817235810181473567954616962997905263483676543040204286215964764548452675751936693419558633316775508218252004411919620250369541168645779699785205659714973831497711112041836063366306846083061269103446412921837761989665816478465217413542184926059116430497101494521451702749359966440069502572409552153530055336319472944788708145478948317197575861405156584727406397908462850848722922540395401932161793883682595793273407822541194701557460068402579367968968898389179609998494530539247768151075105680155515090762870994988574457469717070626537842800071687340975752765363837717148602958709569054447846679292891930012272913765438491298522870043636431252383346920351321174535138476487372054824477702631912833470858878536630199438037024603332658307549867556391447474441352387400126404745225155255197306829996137522067280523901980878522259876374004101294069444718242264254332391093081451513272848982164444506245250432120756366384066758296069387990291454839938291934535274809778963577392276576027485977439612506386932137996661390475915756781136991320742754456745565879825778552944555120421871837496911883480256873438634809762341095778437213702944960412855053591912576741536729435408922006779652289524980013754380032738692704898781252646358892156342954895848383327340552629392095333829038385573237448742026241816845579788170126230125193938869992055344225868902588884423903323079916978331344183230549973664551077681598979463186136837625353609947619852204627819213410868943127132064263022900862021705264919468364324762183461114623600157940842104581597023086146766500837328805354682038186591133625153648025958573198650621276603975164531584178330452785669886766733227849528555991204174602301528644529066036751592214557448710633107381761433605758544974173571325107972191738167450499395448575550625906596090499055422717114538730351053449452026714866329908252440302812263635088433587665798376137442412473258004535206010352647778709210510032458191435551350529950322980705868347483709626627396483765895751505464190124893820218176927845889380337798221560109565731747316771150862384367421669361280284040837472358438302273988846557103846080091136745507944716532741181260493361199161713722009228489824973351364210762843555541688026402763144835877966836400716659019200515607115509630509745383489986508570637089766503039385051080800580709776978392444088956964368283510241994628525600605017742013779102808697814404445308097076788644216593466959602963750307093114635933231856995393251026400736279275953737754911924861269850354670477588215001478421708734412042568662107992677583374487364495917098208812682666799558155665096815638653909614330592874787603169856160561471053880179506697380983084928051951478219817225069548102005039333949888011240821914385566811510708575321270843627785835619174642921599215458455141607044810753537545937899761760417967526667838739878703520465823831152221311986794028121059758391174319834767174227751641510669120739827079202154243600013955147749792871183927147968989278992092934504609701517756988755537877212631811125176108140438009592405304406309488012659330641437847195328623895796550711622761294436954911583413810488833908828356318776667397342475599625270768727414563706513585039171692550421767201625831961151055144795802432730943717522348925237424813890284340523551635648718605833923782333109211184769116922457104183263067956050248345409023636573070443366955967319848860294158351611793102607436445621650168775047321656718238638520451698289356320139207961168159300398355044115003068564702661326306767467859665083464335142303487420518315760038201673934270058664995749046531599222180779874356342739716423461268127974899299725525262955061123012877845342879065720163827912940070308058094308367128104971513813386885328359000003396767910830654068281887089690593872895102636342618477991499217719809370618843514110491310764836175473258895958875835451510867442919895175504864227394262532231796787549567378843139520851567550475186721675306989556992118643102823960688954864051629807464979458916244957236029160188183373209026424919368635563580103717120335197146621647667000664045368454179121759972082417564990763936765998837211144218205678161718786889356431917486079451246673572255131233815018844831628966131762513660894996541483476268363525081922478365064117742066353463312964501177392825869734803035302377128087279640998531098418688308748543629987638311517639388259981158873037315215994673798786781551076262773467863847994446027983900103870943864709615145802667110789398467562636536036815486012218120863715512681382483198169781797219317471158742186748769865134131678522987312663311482693530468027984989565549515818040734735895063730402835669564068797953211669494342828040109482538684986407182237596236004954389683668669528398012056222768812666497784164100715574146488932999876156865452042124658110699720233371806396177764728648672903348377795324874119816330427593832095735352406484551087280465108795003111689649467397675973861268417185869003478005218947922965948134368601405404450750997057741579785945750116568325345289902159128223938968396210090749473381192153107420741798962814696124524074493430770213663817019355163866662792558499674787698852258654470024605839127324273405762246066347160827179698104117380758722287400291295682086918844370946954194310488968243202043154317612443154082980568095659664647946040016482871677578928308335590448509579042006240753450402396478551401177709586367302655242518702603193306712786091598420159171227130664121872379350106375088866814731311593484857557465191567438224932910256191544915836363087459185096717121295420868774748277352483278357226136135940302983882251685914327903878036454468617784804605207933444843524471032201365496248443130272107140092325466737475292215038986128328333165553163561512881829564441520846929921340740749069141449801896061758681899752458578595768278065762802910331077115483195752806765431979827740008948989706328914855570651794987323358157122064845601625583533186468635489204748724254716782616118119096894833749010054450169094679855320247934857075904827813006644781964007851180822412603822138206699930569175933384544564829232978964261693867133070706974722520553013908718508388010068384043863884336541439076603467233866299823816204041534702328300622135984229032586921056235306881289641803363980152089093427921016963545653081097325673580395962439405544243254385587550567906356501190458970095386066226413358314374360855145689787485581306722366310388534464563275047863800543848703305017599813680185432237269498713564172197091544130961510154950617849340113872295745569403469587445802664269120527028972776619253585875396169052480245883162302378197208888246345933457966665220782968152983726205721100281107084732789694451400067437477150477903652804169655335350900840071386113668295748772665429552010074296599871297980557379794781720296624052105869706014703430362849879683776171842413263901698673824240286953620111554652233488681274225874130989491804610102868598704294968001494826302523351626048659046190140051363064137055627573916930207277706309914503435111478389015330190417652216444841621185130184397878536475683189377923774293071992592068451185154249644952332787172385460185287093551010786254261927601054099507811443114948108215354056261872149665596327493278940704731427792995130256403499283185209980267432285211732661181945854687441866050084520499706938836172150217574829623295230220857294555237669207558321383835952187593231503508810803906275700343461571157230853188474546187804244802648674339160104575220680169015375125251419946699034528548307623715345719636787829097694877710393685713816429385777042918532327298691214396514953386890174877084764233074043911879886229429671674228701890904115503527732681061975830547153483144101785421623455933081791565545167576885640326765522246467343391425033294822890016148341881163510376682581418090523692629818278902829389037590583702469609347806295034531651007719646592184613137119767131906361273615545862600967008501355778483177239938978330700944897396415316492898349292283540381111907017843835538075547698091637240549305207280636579178788588390536611877036983840203508225664530762102808937006610296632740307854157106666226008573187122101543367926166569116272161312215344082803037047691617131210069873023565569594396757552537531754247668979607820558032813626608145422217389981671219606018217081704378408452463349705229937438737818180743336751233708889891151312922725369362555609068778409573230299309885414908223439643114237304630646750712684340554592624345800961194876123522272836772684029966611240705915972928610016127851992903428401901905913370774613738983647189680998227690407164798243788229117082375044319777202459933897176257998752189134138178768442319748539742061712932830379549607469794313566070752297688867693507833118932679283650612592858856210093802965270733296458622967451966559381063637186822723249834038446124298147792961059016391778085969592552309421601962516581899637173501157748419844368508743331464504298447316211564366604319074358308214579588278016009446555522184216616922377469109619093763164187275122286191271861563286628023677697366412798625525280478796047308283886670445213869780606334131021470094593097885768683879240647206984364062143823485946920507279375138627830534657484878260557603959229766646720470078599715539468932964374454460971987061889696527555075627763373420066781505534146428898434000822140332951691603794911564151374384462240419167825327687249052361585918692468949900318088405912152630609887782154237931940408971529578300882183687510111190174297349507989216147923550554986440255266973167890482272482171183050973104992280576009096276484067113346359953267111877336182617520804925941181473217663823865595912981942435845991884217021434755047307916653590251121753499306320523104183665362519033981223297336386773097261227475648918685024540086022202384964499395535680590604471618710866438266003075745097858629905696161552857701556802531009399507154853973851113086401220247811287720666504405792915102008875783525999935801905176575274485158544550526965491170113965083238094169931246896052634538163717833109167451510739990875849943203176510531491650762169688681092212896888082715483660862778086928128378580340797169252224507049087586174839388418776876915231762843442516462471199023367929861913015306350523073637813842724947491002137288335612462689727668429164136764881574999273186192911713675527619423990573081040931987866328059763090774000056522015283180949143376416504403307658126481487371578027458099644058917968397322107514684847343227628365396200232346788115983288203999533127657392953266356711241670299774755841062547251645366311333338765828404536104584661831498304321657135104523440995982611619197599857634796544482238637076137053185527537274723489392409317022735440314822846312600106436023661145969880660463525525974884624242574818279935926821700112665086575804272929069362050388695942392949969292919838682351523925692627087556926434472896346496925729129832616404680816761543200269707028477815675376348500621158573659815999054803390394136774928282261284943110252074090799964022759710432926553920609343938737962118649061894470772095719787735695152919164397411585796868388126851855082503934032660795244345658276928742749822700678687946797200152047509608812742813161301098240936139019797383773959428728344748973767798620758008714330976886036804140137459894848383564884295371000254018357800162697215508043518153663308118517972550041576136155554789526544226956174537443362320460030387327468032610676046081231454924145461935171814907876231912733094079733740701039904564952559368705513076107364512029282856399058410521117454254591256009309259249415281832755976514713176172566354703794272441594456927732044710132833386198044028452325397938933733797483846859014476203130122244809896974673277589147627924948911160598031209085927394807264171334726782548515797644218716809418951849735302942035118875328308025050566490587488311034945351379716085042267888427128865598294623548187611292601643423938584380128286153057091595139173205555792181346674498320090890439424429662626233779691833008171680298902500418325098420478221620336185287076899618703157369865221816180008299924084418922378740511847995082703439168006784816570318611567239229532289000263703116853454730265462765545031952101973301600334655364247399306650524508407959243646614013504407076246600627796773084684666819312565428347239062932205346010945914413662484514131197133869782595677356680857398968422495430983400192044040277271099580051059179085329615586922244002489445643396363291377194578294012100322484906203160991672777644001951678410602407040204786286091929919914731396179713088329973966047159429346434376054120382418997982364751801383010530553109379015536951214095002918822206887722938323853391021720033499393505981783406268504177021780770479082057029897472698965395563432290085299480648350381161605911360006417224966153346245189808969635782905485477335553209799274033301076278485971119295338953936415107054355800477802736732461949231883945104717922776575902233110453666039915372416756291060106751771731816906594395433237483066890847769759843660546215375737918377003205367606461469058109510811440781401457593604178233107573680659153432763058716395226350893710458141422561195413918361600278431087921867229564294036705186716099197371346786509561508699266460192385784696660764492547342896623999080573967147187325242557820199118812934356126941580344305705036979198463318287742976123257992980732628406306086600543265314269336352512214285605167854710916865539922410399727080080030101469160949716371638904432903307561396822324437122338989738970579620012592825169165816571286302624027606041819248635498939932235331580169015911086263590964076822137565187400608467234201391003827047352090325563281775107251299587958920460381942413963712212516116530720924683314496335704628786214745689023821844903804283961350175766250769867960496676271297167575572686298086837131767635097850199908924684955153743678178666537756596455463547836631402009203910354563971580011639057043883696795961393696992570680794505018464030595976852545064843744535300054172276347056235267720468187031817193062880048015293111996721065850182080904251760948682504420434010210396769764705359223439215030062758775363876496693396904818234824396971292982221789093628492605609158241131909846912142521035789839227220330348618227104391258036866959744640619467819162205856574671670182493022867794678040312632034696354178642241709085461169570920865591883221492708182885768325773023799068306394630947071001448598749269377974863628254717734267523892514628871953025410146297744701384399881913369764652625917890911160655085238348287808116520589184334185955088397871995234670494034094474903781188058251857073909033518936580608962324095008205203558842695440864895348975383313145376866412982078800281421108053782390222694683343005755955232319085647388583719263705244120350515969925125759600250543956815108718889370030876691751429872703067163236220332545290651409792639280916677767259209718289592570400641764340910631413953343189191704810971824066138373789856968485906707142678885306667501344019250378181599423213907358178560580169844496325448894620311644024013894194415818591367818776463244995183226617010222346322278973891166529818328263243956251519602345426818642696035003731129210392466659521873851318346654647110937310891493316225594567983376669297126330051513003329687745370506675346241016378567912606962485898466398265169967026619430533461621481478600864476493614626645803090323286867030359668233930158910226602734725715519857121294092318563492794892315392503433943809717457299410468829561584214909091167271033015548020078193368494366955585881856504773614511133652367771340974305785626429143144802702403182336181263363484581661853473372350644458881121596421752107766403105389911337805011293471257551842844589754927754183110505169579310331277422135087692570291151396251746335447813361369531201848222944558213978894570553387559795154189330116492351332916163151819939300416756568015852514270846346996249019797713601637987413317190136494561620582691906489525346765356990548784692204305074981274452517198816841572093516146767520848623277296777068337818073879864676865130078977843768854638784662291072681515686854775181590451458279201377402529341260344236018464206999553302028786561313037841712743317550383114178590361744010871844409723693094135124734075748842011642138504818865061950845772899635112587224127355565433703426620280417430044618149051104415592055856615859893003388485456604783732935307244791611811866396999708085929170764979997359546908590808282939168621163371072693830033949212126931949549149116161179544562984744759775276102288459655332231086755850503848900922668437848638058275308492914511387900627739107111534812319143076643796530934594212267189961090160498595394087999266818670959090395149735578183350594793452903733761128258244568401560356900204647426733417924086414018747422404846206131584373896066062004749768151814366899264352857325605748087970230205981346878598588620397382234956649251925498325065267013244747305964572115058626861949426369850345416410375638978530070234196095430331506284861089709295124756101240800072749182174203619788771360812309936323380611692353665429749615552775507255857324989639565394977485980097748240705738852366748222819129951685265909826405569059728149585872980172840059825426138169670338590213704237146793980162775741471798250808784101281144682951352089234795756390250611024434663605208145350107393163541835656388706837413629496746699149859537668671498187622701635926619422420018314038088592258113925089925446804454214656763995395531179514835059594178472866303234520844942757093250714228932687905482632918249896824441650134218721345534920972938188217037106421135263739355449106541191318378604976169486883050767740482175542970540637944068230843990124686091243066580310233813250563200413510188889236409888037327091863930577711508568120179958453571759893299320529262491501356656855472456622178708312420105953523802073203854290092141830122297889587675799885482582032081946551756549036490232147069261166389744833348219304565219443641277055133594520429740132253997445212015852460721030687290370408016392328205641258790220158752502781972276550199473015665123504183444785811600362792638788891027000894735388999438923970456065017434770273737763980911564443556372426122750443487014181714648896115128484493699032579872455615987824376381956193928324837028799854335889561732782263154534692230322203287221783183849360856216538767203571933697896860582507566259868644435072980075983981367670405431785369891367610434145188907577306939147509360366036874274788153129298333505018577813168878321547910722714221456570365347142178010908227352909956809206427633019274096211489980994351583090163302136103679438290787316047881376208312656921202488286911332148418039974165140020050473701380204091580621073617656442006986737658651602433579511720175698291684253780235498613570686253011680785279145777836263888502081832154772000353274743586392597295965044177691491332512762039450159035839986548424668030235617756385238227229444513561748164370765171727674920095101706077490450943107686571830277628060714821693565421072459852572921460499466295826977123133990050207331884020828042423360785827054700036904426442471854282923339944747413552396704602227207327643071418464177184837354486164995956510570566553759125618647931426992904447754815741002441726385250105023042201643588857651676444081287037425404065148615619521374060337686478982265913738619337828264215320354365324925944340935665225307918348898900377911999240640522664909073907595142776312856660930844706167366656515890807457998040423973420850021263345022591275406955647926166520144731013467958022128301810073148199363582867500727699352903363765814520368031222098292792225021450556620925352386925395453025050103054422791914255656727846320057359670991741614620774501016815818614150363685969653296318787042949698450871511526388157302391503299567964337324497454586210328594435888450671381674525595168689686623566850592099562511619467968557747852495981642776518279423714796736252156729532698312480801971792696354249749593531604757935240271661518844433006846621704876912218939928398235131543260000104933331526660747961681991572428169102163585208097687298038591708379866024904730196587206546750107062280852957604260564912077646681601846924828686229926047306314765473422874435443382929059728743518883955275393456680896354078565651478137295095556729871945631489523705504453980489881546091447505839759014899339457576980034064199139719144668258481427918746630139396039953658501020515903764014412119448580211024088525074919794341408836798027033664737192986360851511274332924574966230678240863055449266798614865493090765332822839892494207120601761838968115400128964745371697779237297079663145801406152905379967704747250627585510097882816794626201973603063419716380735544756179631562787815061543896142669302831023474887773998018127995293907763220334907266506369615307376805694279115404725368710273481910254779416141440585286405041396381072819301923850090832437108787732764826454983534118106396972687350934452366128609865966588471832444710675555770724168538498422137986091194717444366525435035239779240064885968808083662414381143321549657605959147074933454228902359204127875235397166000445046402132904711871774258570802296062237663393574540182001935917711978500160164851748637198015576331332056666599136976925296339436855802009915835402392512587129081888190537263033206898822773622996626388128596148674199877798990915761842174798618195719679192991323161406768930350839747799278364059441505116067625668584932947390951848160832360258182956803905573095321072574466597005183098292886755458434734866846190546310774541121546224286989362869645869573208883180189074568047542072760155503396741976380199272018531665086090786721335296125285911861894740463242108026664431829017978622806597477765212895934078789880282638318615595476757995906468656634493127235794952258307885571486516468631178305324483132150671713433437510875976036578955428553379580987120268339686614718495862313077647096554957391464789950935094623984111232318453897430235599918828993038437718325381193926411563609054877925842806470642602193526635569481774734158107949137169446079743938782677964729282686512755761308778061300586087432498425489614880369866593722205736085798333287261090166387604991855018035667162626618376096318551334389057174419662192072306232849575804107405883523898053129596748777285900018908647173518317243823080331375122016803023536012370010730254878369984249012363056777529056336352962845036151753778234613126148793072619279992383342355967781165771049268560994943889122215577169195964594599549113942867832358303520381561486590887763407805347742550999018126839120893976570099816361058065175794176062664396684389576739286811629630672813056121940482671829093086374960007972066510222064688228379167533140829374923599965676317110764472945821080691581211546581871329901686426165967893758222092390323008562996198041655996816228377923613107827738152325189745394933559651869269445055992587004701765945472533072139199998223827724140902602277773910220437146025150585345351682133456546426800205455930541267036665065562602264275297218601842936633624289225256881428082292779530862826718065078310174083474524822933700143677191977715819898687181004074092305496703669311680160649322470270689225435159978057759318883222454109134303725290913183222226275224685849947439945353550152138446417246247793082177125590594542932408404474695276218371509631484742790404461061561094517771846405215297333210433587295005073548093983295815766593464037897551776073276618771960751194414330580701290172765280007386051716244605734689507454182122750554829765749260554300134493204968324381382361417868464363894011077768620227151453205436235738900616923223839577324864868333642829023619695682223734653450784087879100894539551516051773473878015580626894425215648275774556963345341490156228020925193699538811067940968216121305020570702773559983703030238932619669018256224835815133227376224422708557561784249263748783327109831877560159810988267443070288494191037824275702316148580012022149040445178169058514749596991412589138477429286626447145615404477894383137248728743304711887816833038853500068110841890970079942835346735162183678236920918890365128358189148429060119661050999370686309374471172434230792008426702793513613012540831627875130189669526911620912361659194753384212943110248925920733184644980409749529131735301501346247515397537649986871448543297266935850127071992994121779821757366614634544617564766399454451576151454018050619106241627609821543020275640083786282855243327704182104179851780840925383376018301010444658269203347894419333701603646306408904762856497193909001718685076165020871183356423255210443122901187146161992482005088562157896840523013374592389589232763338399614580505999340695075916155554832527550242040789865081021738438313035523095811477237968416424628696802141768034995555362075956344150509490749335106704947819513641281922338739019169500780314021949690180346556279300970165819053989921893221616440754435383087651376420590132062326870503496712912617017693159883254100591177233456698895339598159828889587575179472958199828642640155961366573655777039531961602760451172820917635741119585777654138632312355777740227459826997497285525516926120273777519718161414690976122100692928337547369831750760328587442427099927025500968978341221204984509722708942381170774470314796286633186581184105949540271532118912104515580884852390035513574546905770652365499177968380813086196974702749872155736285369398931498049649445790713159839322087000103167500656746951637596522540997913659194265076803996972024683432713106051504374540186096511487893151494795030806145622031854664344112103146122918865321433184595625087639185602274217946985186142968506452551263123238607891296016982184625357395796899617235086784463525076004312620406144569761041264147551844524790318069343626746515395154530066566116949368542790824554663709163392437459243185290843776149687074680305352314486711706845960762769609425664469941531528363462903858888369836197886485407815637452894204770707345984233751121637490493840960379746501041025256040114458890669993756306280314982468513008610473240791408313088006136833166628880395208599220383170288894589202953543930760375051984230128740432003799140316577423054278370607497736029581918759044900419788695563445488641652745428433753493306295874793956794075223953206439340470810004366700460578809996716919143852000750508886410578880373994473331840458531911032835274295458779242600437034335199695076177972643222915967575518400750264535178983200099095205335083704387884312025653338711036302432931016003759148165462781048624325092894663333099376179804506634984025951814726116495199445004692114190504376820885368815343072568291547778924607478352157969876644812016017558759033303795395380454247641323317470299646473896007711660119961447764023657994129072117332696841162644280969633653767998774221626104414814750463967772341520207766499938301059299701848464727957666700542474844608131531968844175414419244284608145293349623896856687681265099862063043294838896271120607927960755410094412800055152629237470701138852799547415273365457528819353752477975661338331249160556973142076451049436998945754255546975241739831583160790678331348428701158584575172178421597484033252034706481981531548647189083986902254529658574296929792374628273729714131685422212804421183490604855425100778759773134674546861211237794295109904002365267330627653465631633293555571754588278706918838694873320437384245652681216669773447446318993144133364059853654199284187710724355589625894380558237795367212458300453316384268283862145088801064698337253455792016166954779866303397852046386278432775164886016751399292724136085558344233466409474036570878931677098804451710936167917185378764105076104795147907124064726978232088880447118071556666679746039167735790838470645147927244338342091834611129731685748709132248211676266119598683023000318626418965473380700067628004674335080668299607998500198936558819938314951757672274076355012237144906038246249944515069451814316316673055177855346270705083632785508598453971988031497186179129291416493565517223918282600111170817632584740681871511128580452141754350932890349757754387338817768176019450882968532366353798793808791350381840727068697925528392723591485896163353537341459658517080379097675830262341376603021589322011512226192483302551724568783210293424940885344416853344767606096789551840943898671397024893869748410073930902204072926380753577700159555038829877065616157581629451866582442374968733265787851358889407608642721076164201621501359190708774950322779438341352019052085138734979621065516207348279989034480784225811388274099431725983121259814758051721390500362907953107291824724342907506291613922481136002000236387090612827918447100903466755334163171148183440929118840956828502580178340145662542192291336976727056525756028394729569996077546806096144613886552121967500689121222072626222795611768449283447069843210304142814022748715955562513698868068165330421028879519440172167293731337556597174873387580630846244979792722826800539126040433732260147751290000839197159477411760797123821175282721682097632287091701152310530072207738713289555706948529930454314071933654921037891154019904962045082954351936785852351879744345662972057027681065088670584321751960409990165629867306969544366272081575416352418773578854956960075670817621730331656529563272621846094852270255538731081238780467639224041319913598420814489297333429068393859792359427073378668632102995459845716834305888636053357487774713241493432917497212850060652172254036013619899847642259256381074951735842714672340101764397964789258943435769211556364042504455693957914163025252407783350213241463471937980512643677442874782224534175877901237869076123698279259623483731724447910140056149057517520945228918335872452174103576863271155888556229294725678870850055864008924386306923267725645790955009401365657459594969347849924006581812638479340745099523364330934724129187674695736216769435790529178134250407721484024784448530530622036510563736832120378798546472539507560829455019515984415814359491331179032770686588312930468826981493214173547976225374314227835845325093044378216807136786026289405657016856039878403925864136296833151543623276326970374243933220659390764376957954168338708624098319704283321740816014620039164620760896820511059707814612536076414039696171150658316270437549023640039615255073903603185723438095369016600809736457359953789854957176658002891287975605017085464856389704785125652822362767760386324805756532070707933190844461229796349187525890767229707123854148911125181512331751327853850386993060891617566553178347475647388834990182627985228196086848491199520066071596837315385153273200124708422359186704099808501896099951006816185984318816561712895197404257384107915664505123383160321221467065749843101790970375772979588825775173432449821251080553783991406996724631543212260892383271783992595042059541187643520829406276726490347772978016520196817562804540214086403655695726260133414105934611026485791098157601227141206371803864794842629684881511308124252475082298890475563785556897763175388508169220023259275684965265893801959234101758849088814269862237279844231691988413761540709565351572550658081839585581425906154351290683090366876456193119693965087493057047575578545930798523183434633577632844383907118933677748417906746833944562350844539854380775510631734194833091329351196535852504720864987439398785938291337040757025672612694923732944246224331737732007383020126251794166875353631481013073068459877213702051555570830419765031892248531192945120584709684761747749908573692172952488301015993773836148843574550696378544737127839840537204473561143959472587001615776222862038153275044711060502151097313715154274651826997643939054695629155699219686332903788524472107026191808107946278529663427940342616176683446752869969859227298585068536774499396498365133704402092579589594949370736151796584237095747014096409133547445599345174771210656729413064878760560205613718500741411106836639856201423229381566995308152296351738943086407386083466194438611120974343508048468004712492076741328783278959957541471728643386506450641320928489144953754180061535658635264034701308745901675945741925151016295240600984169017076731729956918570523200275895405435629049505988970236851367914929667125430514742035008564118463209881676103003635496551651628273469449802695503661868071352406164983674446469661043306463201838722338621557343230697943275905174807523748128311204913622475350833533271392148876612929879775489509797295441845175861977126845419176773035571960854828659048197715853078660722373779575754919512795897845217762725547125761451486071950370370370985976323073864891704180560494025938754655522327783611092167406972847965350579666958490911102472237159944658443295846716615225607090492732284618956314085857299519465751363800161840595283137936436761898293790323799940928581118138563991727285330934143973282829162282581270005692697683498277469039536158380378053082529366576283041620966970079430405826229528159642688070822451413653136547976082829530519779027484073255193394280591616963493837244231444575287886084222725643678630274176575161626296392270004914301991080498794664134589335007901155239609138855988641677143215355556033970040074728255794330771618920997153991513681409655210006203088266300868264404646994235796525652929627905153889766069406586969647363806568635177958192122785028361655183854570367956264331639635761287502773849120737371971939552407880858605803125019182947482003337074167091851231543542394200710732987745838025889550099673384936927985443138879485037626338491677889752795175086453415400929780169242579327097644736398272712922259245277933191759933719638395068537974266557434256486668591630674119060642699093496671918913083526848536398526574188634471787383441956268872587939434724455486577952530461206462542364560581682019489066050259518311135109696524608647905034190976810481515621556826367277862394319139029846644758887733539848771190084569339040285313657344527166472880851165073648154107406079151565093580127653830176110099605877223701197197720508992113982346001199632133052628005026887263567901284660751210031377770344907501186748044327564375897818866296670082580345017355839568781322131261941479260472580517484600043340566564393569818878283096008803845772791477601660743836607451191810794759202272553639716073956845579676185375810944853332018301519634340750973950326530982567687734518112589906569446760537237111551044141208597275911518605734076803624638246518962265960437075683970561062402882161801842807644503500510978076128121942290356004894599619433356342517731022081403913422847460914474502575938824214268591043180289809014851212707949264218377462487320560422385654249111635103876327068821407693354698775556548134227910479778522448129071546579179782240803077581463577959872299316798186612129408157384066202745526757906352186185715601668482331738461197534479938026639640944676042113673735114824854510654194236117145540039648168101556223613006488123585367674014296930695036787736270865005930449583935468100553631448626772710507825817044114902297220652220197228794484869257276039807532290460681916609899833144688431541991970137689215341201292515321806007300001902197484871915763858799660699945999176194738101971527243207310856017635508298797022102160287248439492855751207943911815131938840919896202583925446985096829327153639810245891918073884658582762175951631764601239412918677423393494940636640739766254020022128722396482174326981641625068848486421140121389004481437532216547446879426132197306116741477199058805215353140192831949315150325568934451549454081310040372453788810329966362596672413419575852323732954920572761825748904487720424535373324502656340350698894468526521257069897089286243448092566118011684053458111185279235834229771590100901052543789018993232960807900825692629882911729608305199973484739981569815813076328645492722948938068373638875333756204861467099772433198214481996799290185725553441826326797896522107715490802642617697592900874000008479817647619165587179018074281492499747700631516691197558146080775289113405806330127773088338012523431245492360354267884756814208876673475856225852969046271651269018371892567984166238121032120936562123780934903492143901056639557792819217191181714852358325400497510337212588008192958022671220401042058370497300833382819385392480950698533254159090486935580469594302757088512387537544683971207151441440100423085489443198554304216870022981308422696298873664208516744409064562786441240996109226963276608498476708334056114837604755785217802036681046200848508667375377234685739942530592195383003380764549591498622676775941339428060839624109115335430743841914817895391317128191482057999414223969759320451091633031164026832363313833962858185950870707326177472387221597836627793551772737433986912688972692594129479408113906967654096350782478150649003881677194858622744785335482820548005203935243088011131542070860913546409751948239096180053321614228138846892408765027597751856183779219467025553118912953734108672632479494572476205494676019089857136424643213355704823704343302370505434268684207389406201490920191355355397527446257889547900052220810127942437803818360415842290718536802610773302571853785856230703386156566563023119815950053682046934364658389294266569467366552116166898443766779778628761431090321790439157282021782002023884510439225560975410131023143483699710107169167182095506485117453577417722277466129969104031717226518572389152589607765373899047677212712797007503931552938152338419718439842196105593501763390256372332291801111709670204416936485297350613352841053160880247538433393002118232998746605865577960812066205484602272578062950500715757621501887995612967644385848417914988138267459071525135357620583461352174984170479125619323310297449050282632533439191740793586387094948030745491616231493331978972337549045907936684669456283070275498304669958846840221046252352441969551077083842880722189559076707152315837467284578016384434195518271896763375122333511774848476045502600266824043760070433492556660488329780633671549152796301519619043222339246909465372583104021394012384586796981433601687649245565095523213987197524786372492442394370680004988507996180621639514928216845460334574656254749545419221130893160248358772282689050906561513342696609813291857379239262156295585781601258945892069822124658769297375573229825588293038537454274334640257677467609843813815002171112492205255595126978519241454113864263749189352220324933825643278088026877456797177080118894303821424886407653597256862995309903096014284929364705319540601644774565568252773681348975028543671144384686648573578499111406975117205964249101464900780491475728550356481481101907604611283401666624022952871963916764352742983200982633331478605373824840974116634339641070330788502046469153164449820607761666768167193739824992261349655599482494356110304513471689554913858410129047553620184138960763850006172696268034844533104159083023347455343260178913517652121383741199410398899798495956056406905312990092571361015426233463517690811312869119238065391304273564938590644768388879474022913821114456690442557838095970940486825036970445668386003641398474952114419124543191423655243946708499995812269414420481585256922013479180153935841977905434355878078203475579815318067866927403847744197623678180452810843837268441632185708095654277858848269321255262255439940336425559987870513167358077458680406342228491873018187676028031270815360796603738976963784340073570462398357621884194681860006290790821724612292369020096950399094506902240329018419424231258620858973546844220947026347613367936606514945434482004625568037754906843259472784279636912172642591246768636141735087684622556310661215373398719332232171202115555226039474296833565254929382097271693015281257444866852551168047570044968050365184925424360565166342442411666331642615305170656523354275696106826950337331075687940195395046401730541752601130061597439662891762626641977149222343766704336635481048667826960084784313973593636973742912577365170563349036266266240840505573704435133590515757273841869994791521344002405855761126807209587690557613969032583489931344129858405085755123203880652045993647814063084950376118378979637865413225450354336035396751944903743062716405682890564054825074739648238139524153378017365384919123340209688791965712365536072372524836190912685384887348389841636253897587693265364529163356855624214479020027434602779363536015971347307541324186825338786708490493264196316443688789210905688707396395107843056655533668440383307017772896489818799520461372866185229916760353004164371066754448321280633850087421708773194527194992166252969141254244179624746084172555019778279066360278210574193853798527534895304642600216113971781006093779598255923671544146432576376042188340737352834582683685477011067853040907963608778237378545538228692166014658590097173882647468563178386977674858083121163684268026092781124964553072484265226456099527623137782793074979231471595373367503094125389862211512583925420888825516550499281104818820537984403597330620201240549985746020651697192789721295954155510024030214672054575704355615133963775889025419401108346148562511253816961657482002776029422847996389389847836367635544126229793775280566554096916272028585425375521855220543820674661947577070229522070132197251882805529272008812218605658769436319237524712595670337345156928856743879003014504714664461493259684750590230988209448787283611255640484685682148418522356511747483320004045434304982709966175717086907236950933505014687048936979590477352727589830391038436073203431005962505795344969237564072502519666947952114447495843100133185750128975729554390028695241040523437499952244216378004622675216668470088129619652460663121115439581927067602127701408383442817262211709293553722791365643428977252968844449975692823711967773367265301560787268028982802767471327173790043369775198599129552022884279691477099384127417877067387018178112181045275810711346195506894980855481000165650679171739724720577258941567183361258889862982591140742694235183926912561414660579205618256340584856072822182891853664570229159029182780647433533966588867204398480161832393325012942682820689084424688252827408475844689660275930305520163732409271046571998228418993405390772281777138582628763650834276398183961374616701820928471471022030384796325020344030562098876043110295582400062574689213566484769866457351380962610773406915910890848553876761998073541681180322796123347021389087550776547210425945937113341357378794723017514972578424520349161757168762329826223261979116846839589082841560047376435615982399020729168477552878198057927450631465693541804306724531453050566202500424570892643956367566063299415057036804144572657186232094435228721833542172016041907107730854776027736650417292429602915784546781580365694025244200589377562367107588847892837171770555276206151539402845218785301607863084178115813593327606894154621058525462257238291389405497427065512070607824053481260908770671719969498411625193872581638288688855985927403120883996826866612715663214905223840171216450897720050261185528649721549560418614584747003562400853713193251232389839254001234705160102947091779761598942554467027675057073692567914794437291869157649759392209289243820051054032800520747089517700016601705177175825062844271698298889242338173958044599330296055265868003501675344137505481773680534760418348362894224495722263483524568447886563248745838070798662433034436940483736349812929457889447354247907108566338058944756666900252658484118380203198251647917825699678669936525513444162838931185565484581723007827903649655147667260220115510255857285182249801914138412501615964454094284904339195163398667728958602288352771588826283549996354442752999585498836738426214687343823119061884303439806465830368294836397155155305881449498541780754521332323661636713875155062064090952304547696965988737556194823272392905134771086101054710064606126412005577028545235421554446302224627077891456991535004612470264559495064908872099609824676081894208942546180271374375566199113820844359400243744002051715118932748954306877586648370976995417129063297730507439958082819679942437690095383874816749727141560115852473255841029902908607181025090406651090744117295377795908677800199264982912591346563658432722042117946823658855638558262062020058532916128524148982855468711283956841030212929415025267165836948534916633874451592181201659310974385897012033760498451289489247840617611239602109843180307498860467685366099885426776506701031590499115738731682056422366340658006379547068812116324044181103253412328915772613234590050135955970831112984376706804711193157910425232324229159467988217685883206568448296088904410428687209198452555427446990779395014476531426730449627025665923369283620129723242266279803788915686616215999146488365259564142819980358525768097578770597946964595045955604011484350552224557520028270432365748976315203754213362338564978344330579458445398072047755667172685002104223477583265463172434685777095085848604983105191640388346384700725027238621000415710304992539908378485942514312754042780863745007069403908578868520875477262197792323652586397679840483484852191207557256045848548369488513343502027488890494272298581699538673721829771552277688933844593414736843558587517059850314186645467993396985743287935682131090144736078356778997381010494601930826216837358160031120773062369756442016059899319882462081358382653174497424961408487807506495255178845352355066118128753236977618390469234151353392742663449413456030500961474556440039924004105639492687978618342254634377097578641037492678589896360069706133082285401669541273720462063527581921028611068431977072888172367804901691688601092552929280216465092023854569773295620979553865426360418629369337048646337837854946330050881436579283595713849023635311201592295805467182212313038564842349807190478927910359285795370915331470669970265179869895468028286617289223215896199889960816559495105974198657598606388021405950430056314650890762440107426821873108557324165261855656360847319909205254841674927825095679408240440813282681057354487639004978901620908719101594183943177965795827311859957056851267334982485223097544804170776280439204886952903734777867193271641212688753096368936673800644147890898989647235944422721260367701856848528594851394845053881877862071000937742932607922098349014079546697809964320597803616442294836688248085326582373707590480277547252502370924941501389745781091794002802101796035421916269922012630329295826865135834507787943407956964112093238809299436556592484617776498018039353398719068590655099353701471667117648416967044343328501291016719446282858518911371712720095884344371338021633389264029630745092690657502848508143718628829946314418010971935483797983511935405674829123801569294883221978515051610859939621053034173682766638186068267667254813361512058747410270821491894675061983806703653922606430617710370647794034308362397819643613703906227822393568687715715489270038276776301788790708946878705069007180676032594463061435098267070174070374773765467951455336252137397037037393756777524508187896513388296462440062149235286699353228386809851278429079804446463935674250844292348746142250039942401622370075645051582602593436948622203608220075077526541319936924844109559981710499983125111443686375471934810604747366345318760601214236417661792254091544709577999397896717569961437228821258965131644345960322222512408798893213855093232323817535688397696365471983342990473009346393027353348996026898480255520230013266063228341719447418105392750302200344863301077290995352192809270491874425103862712702158512459370265686013722653722260130136677845091088726947666788377658183694681270175182648268471185812892368952998122492300154993546466841825632878083985376202360776287088183617837237155862007537056282720053723837870343016914993342085277038979143481413185629339695840310956881657805091656143697393184607118013433611669775981485085561390513231139796586702710426920225006156907959916723528841687569034074999181036928656019604952278008257803809482395952384046250344688542736931308840713353836390869272582989599700131547871892555913426114399437678424069171785134373009358469345273805598575351648729366209740498442464563324979086506347137734392349708540625641231059365813303110757343143119759565841135348866624238516461266129017504858209033919633052585622271963551701683569746225707725469117670540478027820933742381012985089919366762985114399935438997460955271556575331561052771718077242038305973561668945626011605774907031188809481511960084483883644523968417019611321857685643972948970382521642274030286998817263200857281612240428994619340351592304324792578958924633800847501045194327748707435054380712657922959842481766735866368707591767621517683938369778212448346489663150964665321774791281787629933592564673872069649857750017422278339393536974464894013250900629358062739728363244266865152512934548090888534436757365523861570835599854006579061126831597487656125473316647679909561449891131872707863066589794315518795348292544984110362414136114539197361711308437723519285031380929810362147002998484219193711637153256999287032414601289235970181429289637781460083052168019799367507148403712140076157187245707642611099648884966791581739793695013779643893896571489573612941507054113740687782301310407517011419036081445306536583204472350329437880612427461750859893030634953540741413750659040011076546017398605062829646481450147596300830988898042285806754261946971398728814851517515044659279471818233797046751285210852100306023626020848902584767798855228283221627504878796253323607582426349532489896413049628766094270774683559604522279259123198565587110516964113745757671734218689683040931718244765613792314588891233847487518633352400001316471020303205700663670114098369035448819566937868866306006933592404029662253238838532139043730470465687008318605271687613396610489516092427895285895725518676441620141531153089684168694551041078290024296491533069560568308934523871845201627565610961376843109557989261958315723739874079364500840762325836655205757345192682910784176995467825894725106944223088779543534785383698797948437757346389727251518598627600712086894145294936517248894416256174677001852643987336878734081558897456269055653073682762450663603355333786967907725872796990199829737405651483177219430235330986028132279624955230949657681783595743682971044606668041657703962397016303207832279144820561497848027169748994054840168181960041181932794537311292258302143777356767229456966876633490238030778820177263453479937419339482819831286934600565000630879908511501337355253474095322361847643398473768510249799027936900183475072983814901797364909629761871855073090402718156123516291133271393539404502083290218225799718814203911164155696281930668316262428506341830272442449209929572416354256736392384846370205073862654052426478639510022112334236782125759177007299274527530191789956106960035551279409779315835532786427960983754806564553552882389254006000527705191841176582012092963805313368027418249345623786995025789426253525685330378637480018331398229322159813277160443585112892062295992901717497420377496148378182723692918006925198900206951608958503704025089023581278285738930820803846545861432691106555931474605112738514304842449295111183459754356239366005871459359017703618388096151473901839931519566994019236154626847754636797764418261634913409147191345338397817482897474515940758389605338909991685762691846336525314199157395487994874938301176285120468967508596316937480558392272005350962156111491008059352114999490030062539572435521780796256288492920822107108704916239840613822517295472286083261649341958456618503922512242807115849207549243657962934596451851479079496738996829934583985652736561041946791918610320009989523615430281220172622733943552241785886766486707120041271119607556248107089202189674563442953529255477395486472773400876433399768762407912597216995626158462148221639498290488083687774789576829119657515879743879337640725501002888819972942539657069476156254346244283736738610414410367104800314524271112582083628704402016046715315913775660568072280513331962072211694326051935572769716002814735327911060915108646110397879995134081922120233747066116029651357825920509223950935557014681828099611597433959237037478715007000346651036209437122816050409030374352241807830467191653233437936169999624842768563345962690370754197537534348378682948201877393044970664397530542998293157512289538260325104357109983277112622722482886483837569713993290498536560749603801491323973966935074621318509682615451024416657303327962978642550941779582884488634511745601670337754344777069964425849726854657562386141799231816669415604114619337234739481159290599453081067862033261720849010578031494254912469444407853708165650754913955707693413240973109564454961087395594657458340863976493095531141132174610428982360441627730830527536513012443262169725335754792811737387505253428969006174305296122214698587455346443419754723244930228347315182548891600415167692024068375304103117868074700128630028530655788843916973584042559730292048640031224206778390246919837320366727329955951716721572828821198649665472893947467494039590644306916502376928279019977029929480667031895686130136387075711732176110818042121055466435111864945125321275960588483791489357325277341225431465128060712525430249995830821391147687639221777697873710173359033379478752801746344011496032786964381680974235387245305094730544488013479598494914256702508222365549915809300583107150690418889625539092806916627775284797880631294385969362820782674344713821323707058542834971840408386819285879839295063895041409581935617857786830800877339929094551179041407672364015613592526256310150882527855265862416628099988660222879363560285896748794201143861588718637047471859841344474373966381734467172093480442481042917210939675960050977995639747764908749188119651928155314596714940171824813399140851298096800325772875906691092614076644938661426071108120922037358164226304900210567509569703276199703582318195489555788562421150206294754452852603875361464151674804047952975967751405151494758242347029632526647171377695924615104049100683796701570856937067797606050219476385211422016988110121459539490089102596933241936131689329609411598101983303050726305686437279665127446196184138972765680061079748062216801874450906718007251466507797803429222321573072363332234361982479171699481576640193627476741451148138756186505049673391667410398572341372526374737744519051541026402062874490845088776328370625043471012275371473725795335708082181478078141485319519902989986636858337881295223047085005353111174108173956082737543844467176872573198914854101501222213938130464979490297900545064054351244973945295121611299559722450441763542252285270789547584067461578443800780824299198361024311442079108837687275399973678465506849936966842196202751790953532253808082740751722000066915960147712174159045465407202585928128899883066085864229330402767908790087516971360854922881603574467793144264124307686160274078098103709183617262405489362409079359416871608858463531114058162592001589331792317260880726792383272079217042922428558772964421416824025809733281244301860503996661958138410309872894415931418402013770526346123451304252300704031233246415440498755590631334656348630547263920994841811088208522960563594767181438577345124778810475433768810588518762607960382516483907713037945651444783300105728498169754789658342788483176214159849262279006358431835151881604458874476751411272334946859780289905910175852262497437494595800607932055448445924363009558303025454793567996890154807821945809575453172143310196000467656391842454029784492845413465658158527332594895061548204072375179427815162031419352590923064034698786574899634499162767954995019239740608760425317993750471515489712600171599938809509388982182025702975816433616197603597886585634961224205087052130232656876764817164822778428103054167151338579258817218991570118145331152832069532098179239336491548253173452961772072510440016052022510125327547476183856516767733042193474328830495139880476719183292892029112382312942193471412410598147045306165469563904205226934111149917902523477493284499632870262745474882126844132933136570758107298751577247831874999318874895607620163253628045521881923225843745675015321421329450080077705188430371301582913784782570121128329312415116015402409001839613539691232047758277907046743217824605937980494374141735207495750337463532573514034605244026358270177745130553853209866514214301313356160816190327822845108721249047254357569976588663325255168973510864121293456835540095697767255559607877290473464034227978093861270141638837688481327941708730509377432808131479308171609839400622004190373102926455523489933255479683571178175407203107868661270098129879326409099175614591521591067196700202113385597610495793509871522070883065807767221637390266142800133895731949415659108905379358948475394923118991300431746880116105093451253318051355083296077857598577653440912825595771220115517964559661755250275374239562231644666502810505475319364574616372889171925973429107638249691437660353863182858712710229786763584345896086534168464975603306014131278798758849091433730940485141628462990442316149027685694637739654703882785342415678394073591744248188036558422127413875504485443483511504425726606791859242447980134991992526539578568812411392600214596622660878956531436204055736855756164837124483828026101814588129528777421208123488501812766209508468611879197966633066243824729171240254427606955768341980034162226801614003481886935315524162706786185357458639577491635527440443115304936494818588934005202478430345201055589354734419858081551570329845546091149209207571448730324235966927601895544301774424038981236167298778100389537303734987451274736112409081035243854825064670111014345076380507777563977729144709276132610581165686008661930756365106960185541727719048786229448024708072489048242343689394508181959356546852561709861656001580786226097165312049227383346215674059943042657838405025636433031850466002934997144425337434310012270094049361272922871676291983250498789742921828881697776051746720092427736756702714075658008632030015085059811650559298899952794554250240711210257515094726838527934440215377633917627559243593254145808082445835291153593035749249301263188805226566708847331786016152535896158172295417111099702602544727421785163014226069317531129184324154250993367619206974858146286941202794810297061204122066715562642717089863830701261405308314828479110878449926172625195324419759017734017484018757288300838525649118823332230253187691197354459408315579184688611697921520393067284130762966706004506549579581719296463241583071442051701699288189397406405475168335929785047017388964426608538488780887321342803423106888323393086993195430236145077810632224459131728198481673396280228841719258696825823673699839066575959631350801910344259269386624063105037926894098373640626396067351161261109186838044316627078254728047440540937309139928408388572494331871090323861480536010238231972554418826298058558878602475162034528937919375934684085858750143489943317593808114552511080728686368830941264585768121129828300339941741908531554494947461773392221445570628674064151265859767474186760583318810839621270046635297673020529934954739989994414866823774276724518429746397564819776444965111844564138825767435977853962425852988814104309346614027351233722089353271560111235992197893909277522118215588728630650078699286645052087276118150625029996343972298796363953840031625763399228286951246691935714822067772153639700199041525089952848963253534006938999877862279845578319755995018543034790515843323932582955706566245531873668717426008978555460980822697468525332747554622840380712644967885682295868464296710692877827373113049341732152669911000839255894724929824625952256576567469085634090623705002377830047581609177273986643173207481932221726635513007686813798741537939870776389870449691576956174254526811226532566442808303774350485744175447348111343023243299209815532704748538627680162513129831793869300307599399754146451374834860082880412460456844219318873849119618185036578740243785580799869345363823153489752146349408456240738745923159129651817165559083347293362342073550626867066551419723054359901655176407371299222584103882514140872951425961552106080856307035000156585760129592856480718161784102452939082672117639177348277914727430289102705796551071381865282737165955238959141889509240981645131002364789170041450805460758918237996834265109402444918359424396166186955154161593675771450934955592925402055137163362521968158470115409138443724267824995078746848907584716559491111881936347822943803985420643280324288544706149684572312673758176726787247071503777410618815992094526247600172449359148311503224505128187004628740152644238001390068583506141079521204699696221929591312412304011270849344796299394913900146197607075441179498039799180610115992558052170496676003743213671874130081694432531047067929609352610292861246457057352142514803535785123179167897991912827860243149452731638712981777082364744556033595306875867142042979947240589004172146126500026724920101299175205223727631076168502864157590874859718019706499587893694037688345667896778442262953242251049090105980174785805624740023605721739029108849183562299445658256599480831297997097187299710723005542163766829457127024267649433349237275063225977507220494385136810161492834139028550560680080503329786225151408320452197091742061723238706967605876519932938949982611899775816693110774221016669693290206495245011431398218410197010864909874104690167663969577248540895217351140079075340049514524415962675732539598053085718598464666863994082589590492051910498480422934249406150253015039323867111327505696180243448647812646522277108649759582870755587926744049891367140183291150651942317074019820599246511140182873837905263987235221904388968963478292519992786099412586948753400846013346929963405885352635496217411422163596360982072071107126474031064280731122372398692573039747358960393570168310290916571591292544145481276884441113706998301946651219124025427552861782539743484602819078844655136200690887167617776080403188062014877817524087763181161528387184515187043383078694860137401961811180054738589687857740374468408017066055351263629618001233045755887449035375220310870424489239488225931225944871118811345901040053083932926903299345273123961831932507804351274507973955605201031556283676716816670989945688575249204941788629877116453029298917992839794172790799675516610901660377763269865075839522320780227623530338913839855320867295436788017989827038364859878053332214307247944507140547770881501150849590758198526689792389600157589100429845769588018214839575887707631374932759386553249050878863041049167242201662450414371548880218604370633716133898671242291284412761553410016356918394268098406963214516466938041046058138189136762259195722527727736447160116501532435631489455116550998317295627865380089740296210100036715602617402832622042878877159572008894824845934991849459485885398655146790079652361206657546934659415480433495862122379432790835233939044749407531153396339714229084827889853297169704154978857811733538105881352149452010172346377972500748985601827483146746819133065360727920400564279400948304825098364960399635897783332977318731832131927475078888061605640158377206276914793074883077815067164274117555479083743692649792060178613416779593452962359335452322849189308436555790476168782137555040808785812736951029624697068655724724487084630911438636392415132832708927002119542353016379542712966384869367774065093995236006330333237295448074418592840403002874283841622814045371315372057728070740362274980340619130675001969383809466242729642710890985936893895597876815308462346772054591470990703804173501881734655319192392874292077569575954780285985926039946551201024337311282654225713090781389134178884247434903190428128459483845587870221873517909747339686166096865432890888903197860570668304265999480151974036198683084153382576027081189856220476340314264328656532610814684117754752827773022663791020775715172961201320180474123322514236600606630066566113983795215643835561517250681285921595426431306485593701553940240844201363925868965897925532842760413492704690219610463541796015622972739661183229461129450683224479762379575812744796020346478933755270539238116747777741025843383291801161282888393674899594891129578692398692504539135930055888759142590833936744158532491629543213085500569213310164151785812936051433769644839521449912188091954375328924007511335248408653850215633623327831552551557230635835110243330876018829123185647585926639796918603867493352818582468545802674173405378616463742392478615895047696068193993988965474157113506299254026261936165102794198586569389915169264289625597640384883366142304153386769506785032959483789208561549220188341995986463461045085076273072876485163709652670931582990067122972057476478554187150153242752355552449581105120468672082210129554671695064479815993741707734879665711330907715549985015708529595734804383012673240981671116280375037499454384825510034201217155529590991823043914222193553509770664567957767236512913556504934857291242451498130815784068274102203986239702195218713353381062847878895831336578012354133661827561492093045787952774781757075072431944282076408559362377462709522825792027807115777548601003320841652582302434246311763064676551604907493472854909573656026178131817225034408458058532023754214818209270864152435318479765501427853442569772192218408936523310581797293184824384368094189060403612128509151872926722052259101298289696772846960854386791314737061471372245247577325855639768460346214517539978445016661414323456188023040140330294680428612125335537683510587406618125015555658945369768956087569466407490947354022919350677513781273103075861130715811107711416810844259640860931521858627291838730207048275941595083081916739273007456009095391746432775629485601557244853560418247058296665505496394341047209480555078859905086183767407643269242635688226978811613374637771069798224312488909042945946716888519525329628831497845481177356638844606948474124932267247859823202744110409309414662582642757005492002443858293582868150582673590875486710506088120418831932078500457356426735005819262786341263564379887033826208202449499565652626980045753687592317904374657095883839513240304386325439169438430956340699388577851929029026067610199196760190190061178212807650118715708948286006471599379017557715953258936254374717759315109983537065549036036556962833608083181638290080866156314679031359128854595000691368170319117577869131182139056826457781203911679922009471208032906238807224105526699212081934392030024317987110766703507817053892248222154559072210956188890889973661020081148744109910795848802463059060407035530110518054319500003589263955516117397933001470208001490790825997508962355626810399410396486001129371863231240153736529068145340354425013449188809087373818526636362208819977325961496736943953124890436284451486076619922297451659042126437683967376256414182460768889375686759291468811129730096769371434224091672872913558204687314087348261921057234701263910097684025470787837687483029680224540685827708308885971526731466750196304634306000138614276239210530541955034504202791930377977769375867156832763920141944382041855608668656898251209666783874458515826065528415812903200361252989388611694418416455250880793943006905482204526683458648139484339238705769028384296912288584397734547191535011561519885380204410597206310912569417769449570057856392512188966828151720696203794925161692612645726138924704954025304344954536942295481590922951121722915546294747988670390449204208633319424057339193681399404827733619336270487532454826410792022736528736927616287862549896544070669026747461518824579370557009979555927876352456298747657983043639925490794742537096240364298479512236784680826466800962227491688771034304264940209755170651162346331849180696879633503649321596057036362810886323845967144223472345030772432593215034315851958148781259927646420603492499916652379501383423457529620792925596391210696077020071236732331591525299642385429432846712440010036020457030252712452047206051051795988639988981900960129625733710980744503470553573816098362758639877123365680098811386166716479142944815978963823616515778087553055739996850421912482710921967264679417036176321367820352337432924578714719905186522388290957783257698413126201300074664779937939476681992560653147894830770425341804763517500968969744385648521710391739105267279060908866724558438385803877311864347598364092560003337439278928263659289758391568440977559893573236259225708550543271873730450448870857640167158017711464022092761469208605097202458343123224354048405458027019425248612589930325008746180533214774195345784375830148593099214944810106741735672336852799711361466596610650200802302699359171949666049069030430581793532571254373312044195014997141905550660122836597044933219296983360293876928894441310515349937380387738897977056464635787586592955276022094515890128163880676877092301136548191263271720251987372411504102595509260593044834787437372743876747176743914797851849217221492062942835953230295648859022001066649966424560829882063509113307556872967137680449391805878724033093027477555653444149487239392186711103057548714727495599652441634663316189697650883319958303712570407597709601516726006883502680857759160157218333344688380184426603588247112073206483250925511726503645133854647653616315734836929517170454461385364852172940650586883868803186047221047275383626770923295310346766570135882325077537348101353712874373066266308320446458275246315379745416708485973365233112696802624054031977886864151964886290918410905761792474802922823603991346515420506251129573887055525424141066653111542197966044413862983339167558329704051511485728585645283355462088479156386121346518291467201975400805966804565478640640605578089372547840228883204710154297808317471143626482705331764170315668199194310766345652934220369442916044413706463159052254414631496156421709353147792149288974628608013131694555323043496264890800129796082375313629992755790460583290437565104903570487945283254547246327845793606301438725927188069201424974571142932447565415322838439733462407502235769753314482742372638507159877953804092476336048370808226700964494416906703024183895260530314332981441700581862957401754897454796265887528910748562196607416171812382395870539884083491166281411882793252447579800715724302302656131513483423644802990878097291952250544295649132062611974240495525080326468032737407869470933217220057480518685601166155367097866480007948015352954011719860542741010777429953067980587627778116440501008565386286431149361646865451256824983986586426271237785676837369787727342014227279937221420755629100582726808462252397660885956684869972718242345706836164977181897313946880399621313846073053342701565773354969725448336913818234100991165215320680397483097009840082409530010676292557136354124519150809608124496728726891784801889836226764640469614951504433823781045641880289978792637984880163521868747980841878637201913429834483991483833906845413234581882277164634531863413303612948625172564994086622697510007521303430531817804282781298546090517693168026105432305951999712855954052296796447006241046281502897126072686202236160044427959568407713012728176835535071885377783914261567746658901662165380053766807181732378148785841043921374350127601098507532673875569570868293851566010670248669262899965274453347600808899761450486024877129151280767607481452393212320303181299221253453532044101059603087784074229262493886581730281148571308341138916657130008667847146408206153375167798761538309591981758587830346073465776664550243081224281100755191250277658721283449462865049793227783027906924014969082774882017559653692000923675123761958968867415772267040635015812146745439912324651083617430644296542104228235636645807904591968584486742498225809133229801094273119083247257059351959262068878529323946949048329284517002060565501629924185309724765132873129460855623815973809183278339695601916886318566468710710390948751175383880970684549703188500420247580383439339421310572438380595123513911342350735457022454640289223608927406734053032772363672379392334304681795072295013905019293372446655286489349038314068859602245722816381904548865417790052079774395477838483983255156246159799812660595031409637270086816672707500403480248984613638214503473015450657445978943942837113758882632899998285390401865445987235144881682693150820812949571058850229365549660218013380422728676878274849578223257115294014086020065117736232923771781004775016361487567430556817551427223191268188188905746975886489354850010799650382200689640780121246427943206739614313068645863739109245897412272567436916953485066288720072682162368092069797665710059048918792153820977810017669641591871189954369806267633108806444828727681275513850355039312790209723990798787346834559608142729714304384068462441016349722366381618285006391976102674090915970522595312856192008228448886840747653326094383468779861869477176046678397285784109238731243120027143221902616560145391854974008434495216998116884887019199391714598693492353513985561360345382621631167672613345824702570826818824088453871310368770635815035406570284874251768074169754737173663021938590316808922791277665329761423576827731481397988819903373884899583911699253375996981454047357841576580824674887742343042505609313520739330998471949138114172593698745539485811923382813507130342489925225614088172329384981192090754719955655919575739549274904317712360747957246539542726172477725463186223167324947911706965470969874290091356950754056412420126302439255798397579410189840572869458593574598587324075498629443706523539214467524990499569223894156055470349672984301173266953279942435561203370061118227638190004451108273136841526427642359122473836695500455745931982606175046355085581722475890307353838554801355243885963097667307262451601789316636894185905130706027676268093085959864333730898715805571951006788713568105049747061251910972564448964937001001023137955626853819266212756248114789887488245863570809700113914459272541833352540984874724034164586523052454607765216077044381427809569403905248839865057051373813363768125885892569058270597739559366566167867752943720898583538389003499651893244650794563878362944677871099185432451721499011965949809679248520376347646579358074468915133731905288111374602420968885560272321635388980371335379486651127158833026184002022337384121322581025541176849588955900135530118071220454862775610429290400462512249636552847155065277087371620423534333904201576254780730829107379267510996374802923697775468724007300549881639138781119321322667430564812356802092102648541114427118431673766835278504764519165067524457958243783449571301551967059246571315798859716437621763389682459212344592052495056191287522015767816793755721209363459709321171731402264486521765817802624704915140403318467386107004026613346909500783156205907364557941410032101385748992393514761299686895968193015979985613393201641559978872964532943730795147481782038879309631055254377140193787909393317306388503506875266980474065756065037906657004889068954819471710803995062564066461184445485831323305093953870839058517892296418057043115327510188964499020380851717102747442284488913144275828499325261496130620123090299267735663065826283614134466767173499345541981192014268756896006072373613251163144064824769079743072503778748881161411646391570003730240625060802022603652471111046676790867427480341178887312214576241591019979152172998484995596440416058781374945679586966071727057208670109723519876858088745646519044429159972829036901146098881719690392518724090490992792801667808679328751980426157916759221032423050939652393744231821090665376821676999776664311336027616923155063656308094915370238523257809065450739206487529860693924202043322863730995247433057364850483906808102364803589941844915100595266844139222548844026885076821648807405140627527483327963094786645005166310977166619226221990291519985697281363929718161081083288154158587012074177078522856279843605802222910468680463767317595639318612941613417721360534783215228179865904013798660211038941768380016054219373331849098060383971483321077513355919520076022320267023207167462679530414739193272763641745323554201483201361949168004954334865378878780969365406024886367886583848800527738574478560510572721506645340640941201051107468899703082208786543760535590865424775268873283346045091043962648523323178999559456035041098069700947131408329227225569462888287455814708910709776466878987766486284815820785931677961108285184917202896178544693954471188776901601293548628514066504951695595177143431447446412852463018223769972450146245687123201222810102976976062003918520888420492583848697024737536178044517671379401115001988747876943458278719264039105238489670450965589321666311173692663477708812979591356298334625614392898145486568825175296998094412233468714403856909828277289726217290463656322997614731837741001702974973546815050535238094756259416040994403945288127124965500679174556002853013747707285177340985135701705456075895152321511517363424518308095554690315070604943984196438204382556927637740422898334368733572834730569266280421769585695353718785545567930916809852567752121677296261591275693679959684709799957508317059603422150536705337027904681473750547709609712782323617079585778470529111840702147443026514386924310860281476069218522388979514346071692338354377454497828243286894119110172885625953387635450738758666934539075857392593713154008118925738314594251949210315324564497396211804238440538569477325457898677980150779066107307784709393713829277712431320288048980809188896540861224085119154703743307818568608463176679138900951865740032793085609956356421325375303339860121688987139201972285365676082716077394716552227122288370174529843799114760874076056630683723810261340750003931034850801277584161623210292526497861534250675609062307373438080908307678097369065268060383512325258106400300060592063225127042369441078510563575229318890188772176737522122153498810417183951641958457124165782804056189041964811342948720181851891590890194747214224030183756084916715692779312304285853156131649384317332054616141436030678528402306939716288920030220376893292106517571172880812677252763010245749756533737032262635017670692375140835922524180291597762518244791896008291670408377241561964051003589376396080289271272255204017218125279907941401234667687673832229298509427566404821047721536316722034015833718555583657060605804380200704168808618350576302839594914104505565535462240656922211095111827337063868438995217610769837607628870321267228748819389794463282635707616798600596465937171082709127710520742479799955407514988308726006389777712666557225076499981927126211832865818224027143033741536847266687328845879471595102583437045840248095642767442514252507616392659404016354507228800370175747344705875418383241784747996053833675897986070552279474306196869854097327735930567162033177510765266814926491674542339797638035412711255987721310411936509723296652524492508732043947035448175928340171194878486691326482228838916548123077653158534330912055368961100504390062889594735514012848188407872871832082913858133526707109462970958800311341813500591398751730384237735418450560374015217427913426126602980367297119652657589565545274846993322951572682252953508867158679062827971839341878978889860499126078717182481888302864307553355499571084038044874002758696164256849837793790392339693220894700956195949646393863472427376500436172471561242249733781270135799743561652017588744009515846829412121069805709442074655580331392603436004149780196241689651157219093483084263516394360196866653530804371635224142835360846634211055481300500023593561233917222212158119314691847182958480380419579171319021092940531353260583884022687476233185333227426733678094096804492193245110682612179421593210299121890812462905209556759202892367343205042490915617701296967146667700627105356668350641449103095174258344114551360804378012790107538645742308266734391868283067422542407461468532100010416301676966114885182305259755065109768126818368838101505826103079514161753891038127234646392981421755069044930210155485191587532846596699685113702116548363808892366224805002898207854395333803971405776914366244284743685464136667633150666356434356029584217569253505124153072278752606582775675438605918041696745508966315704264440090974618382419761997216300597108641060265326108287695439874317053353635844127769005473181785410137128991401471466489803068190009706143657846520436332884013021539491330469749620622851683714532007051530524187699144108789147217599037281620033754841299765497254290531872775106262930967560884243040722477491539093144575946714443841724798491738940729906918228503999489600354491510847816117398025961431809484799173214887032871459322566021492650276563827260938997455536082681951051527503547976141319704510437489097210183967243174049314144385560009012482576814624515278142223325822336355060038025775834856706181263783124219136517458315137132534020260094231096311129343086080907429565565188126422912304763950827577035248338615460618725326785908147885123836671055959797614750214680547847303668983060711058069601733681300953400354277097475294792375338439316296357411014485035352549088885173485576413054726177241653814820356545808565290506476328847459586164565342242167835656090361150831284764508256791995533299451158398636114318918828805171795302510898875179158746135058054971606013490029010926639797761010394351900365827395581719504543437546612039072369178580320342873255943725062279045324376139735152365482072010740081672403096297991417164489357393898732395015802236748366552824388655487519804459351738186106423191774668853784564391830673104895283493603793485122822146250184681272028853915170110629475910451918352518828161363698999133077004436122137563506443794300071252167845007594169053290316538894341005614626147971228157422839986380157134545747661547742291152738824503460145049670769636729059032250574166916094541182481220818220621518151073672000633211165078155916296679988862065645133137594531745377255260047299302837492826064575253449675058370373894370180014262417373864289819961488558092206431672712018710922335358219385366988752896587134562989941221536184819787036977424203813552349834073679379821006380160050509471532027940378875983093760991444488932616657861641433995994248753777826643216516887753574829031700133298990685320312577610038801727952961228423685489379977641558379404455792006075547618803568116936835641660474932943213481296401580701689305027262018716345489268427759412762475831040043892940236914230884566668415876171753656872758593141600217311318258839547109915572159240807048526555843588087441037813453710686167871901685485728297151650274740481112222650076957820487139640991964815878962975957599369433467423315554329030951940473124839543296806370625451470178369964624176719447691073655050026268306151839885003891570129199575633566600206325820806523292835197831162409365226428870701311875310695026362506629021956757133873595505895125935794251466070721108275221899807125852695325045171886119279318591119119893803731911594576547048950174395981761872176136099861639678408813650922038532795991541668671591379016240274638304468629668688633107262761710648345335927041722799819745531714362446260548319624168475352600848881050175583746969112965272766839950699591690104844503632369845958686407513198298049741714687716744258236008887138119650865499056059745045007949187872241836660575339219266671302334478056062126204986420971181635626873762478217024217822311236637862932889505118003810855213158176370462476123142172987517298079020225468517370333303979294070654359514393100465626130839592684382393870051086009687501377029772837131929594199987818415367811953423151380894523162163252569736939948409015262383195873009765043427872085944019505896806652843729622935846153452929770180433876210312660558535444471174378866366903863552469950014183885047789365361717886954110807937893574933552167723138683567981564125377615988672698434080794648604968631429042771182122265189955676214505965968842535806356286059289161347020863032307506066799320696376388341073436709292041302791605277305359793782204155608484820345863562008303313955406690789912257617435726967525537319124824320482955715152800268273246300477879890183214306216614078874701701405115924429469982143216002974366849013423431917245767973116708699073098469360194749328173362605194646010758917061663773359036786163137385272600003173508523233106212253126050427564392641041329044735429748718271300070746439655884948378461784467035545268921873576059573458809995942002264106383228654813533269660489749193267909638112059065376031131950183603033395679108559213766736635890479407087995538251206968966886002967421247726782206491650105605448664484923364251479692645740421533149997050931932117523400353789435827062390098797300883202943538749740924645701850232228353152553152807191871923781094518046595142581469684699547466896028304540893012679292769363771943052101653982694469564280967773320762650121032322349006982763594961125693959170498850457869030111434285840358038855203677786658805990548585551541015964328984308682240282745948267586259862138627677282287136677076336118055855464927619659603915713795087793994656044934854419129070248846340441574332712287523906997826452248454014939644476426052575293240487207524669082217115687242018059159519015571868409250354686791815992705156942872435597595154423376855770566179518838414083086133719149551862100516839475930759882657407192528657620281719162003450933030386558308697320599296445763290562739673917247560446147672720724941553850097755919276020626577629618977389872898295755782904770669068045762412677122500968437750530234604723556170588328110711592122216969780217692763108153087501783354561454587894734872571282486213193146944750751243361395352449755984035841597720331338562406982810546669545285803978530211911438570652714978557227605197621484969956619913315912775995178597737850627965601270010366182666367293276077189721880913419591943183334895943318356482633540901859448981813912695973573139173485641539043315540325494627337875228978649827676385541581990873156903933457343872845084363325921807103760756966890432192278422918095265018840915587788115074730241958295921290711304194178890420559508641498912482051840054036576249460165384789321088458703542563402669102821111320302011437415576511616822710419350273700812483189611161453134060768713145488097353612205919150324625194144733556611080754896409915164763957165966875684226465182740680105939716836492893661250385249080831402139993714408151732692125388108769447255879676758503034432611109817060330422979375509365217694561325415688163039513121839056344172503377661091128179038584432824391710544095204427534485354830211884002413537990121382481686522805806711924755850263880363464726585130571312422226388644722474819466786700776051041001846771241584388799850553884418889297566579250708099753004381314098998126354901475576662911366571260148587025476977928496981498829003048725081102550175983643889983772347332731381405940424640767663432921677769905359291035096468297659422336745934268382211753054727561419685756521656071846962404065542545145581597217460179101088795231930924330712659495120047703616749103413574794709539284270797125389900793774267696323055784077420616825369654203503274323689855202636426895326121392131460240902575442725815126325230276615720445080555053277926635693974527851526948822960916373417690608510996014412945833897754124205478587868180396845540962776457676279280164606655780352819237881385608343494922680529865774702957033653155563944414680388862672444463588315681112765330851875350354273314646942357200441903374954230050710025503104347574249882713968137563570359430550031797122561079831251482739088249484196366902639483556429501571269670919595747010681396765667540989317637432111195233965177008406954652936237369721887007147975323780390769058501794075509773562746768753751664319205035576366588767172636700070917021134379318321759405486364234190980255236051874223518171252757693788314345168169725427206280445969722256438178780470245714027962251226497604889919383592643460291694516500219020229197070316459580041320244463402002298733049596826527515937190261922132117884379174772177459547394064629913741452134944347058340296134556473911981965454446642063315677280542065302677349222297323949029920921300390753013338715237747880684810755797124651102804641395596183997331274693720265439907724207145875746010473025721498107699290588206834691537695302762075127787914249618202017894356884203734841707715606522140741971079145740693064479689185419294433382650609325020157378084124297606965995703637978735997492735963084574025921689117371710997527046425636098303145506219836766183912556786626942175952190033766244009035719087839337982941176431949396217649418184312032554569176461693107922377516096541957049147815331973451698690716862254568229168451776347858464942489221066236260213013476012302755696295184576239658891831218135464386360718495181684488247959931513960155964623247700726715604937552547413385460053142375905754212132588103259303041257267545687842204440111293163446146783645223635763841311835454365849389774976928025251483328826016805117283957342015607618380652043230175252763839050584994497877722246038762202023108825680030711848888162516946406605225692401675843868627599342129346148854905011938747130702937208412672491862498485520429410454806397474808026524270785462486042016288127333516604360383940183703129142127559030376926294070625946454749449034645741213075760927952082037918775754192264449458234100472274611547872867502875860459429166182696239888269609632213527208761905244542410370481947129499154664493074032391942737287003011427532174918764148870423696554818616872317787467541306383306196716179731307693454961502039582307748619272257981595708194534540058769277842250492388487279270271745769810570421287491233214882412813288258136682063258028385466560175996650665795331318995829127239658544073234740022423446782942567708820402514409860225733479544303957105965113933120944706939798451529923076365892559818464149173738689442345396441312896873247184164960512205171317429042532161039447148167261762246063841053162009578799372360151199264639062516249642548086477672946598656870009585194341312091326749038203635979953118397507791138753814155494578232212851442159677159045155495962194500806289207143041163483303041087885718162547287570904431518503891546156996810796848054842115744622424028943415768980068973821194365220958696112314672819606004152345798876583735958047493563987137341468255437585814783821810384864167869613118855388767687578415504372381515138832486531882906534493165133706741276536724560881911124640874313172567348493253598863493965193953153010812484356852209867353162829727399273201492092989608694932594133628106707138824326925017689678708307285239987057842086844118417661140755506034368660604900178786842572522147949326323880567746463062974665394362031486839878038704122385476297769128777151528775548519772818418563057481672505430885737749689153104347390349004891126197429343146129968206684904282997238378897950052823220064012701409492965348163087180985760509191078495413206323785452660641583654945670352114104257718540975495923473823173555507688770535406123266140611682608753297944723039617404087969282750557006148960956071198593780598925589697934164110516284274628705708828429233410466308003925078460649364013970523286495658530740461331139005092728276658902395028377473965444166189734903728346316514375995501197262415669242920314464024768114970085760036463547311776540123323362640424763848350753037859837510566848020959749712780535089852501953979509329010733883924089878991665811794538826691038584103996943173558640988350484077119510384344390249962792247084904593620929021615717360755076731545843800615455037723637566674119254086336275873353176667401352636573532258702269796867117335384346679897261361673548296027705953849043331739691708556341940826647863957706113097342586848408425821577825488344199826229457053926655484072745304779311265246574504471981019917100503713794891904953476242461112201112174321290098246315895269287017404410197639382967974926583188574914657086058663449325239200446727911430208093458724678348079726190439458968199338981358832282106552576394764810756520771959329550170303045981719406187570266329120784612862318330468510401181830111838681092557708045002488122988265353056629575510710955567068999151173300088600715042742198267732213878761331024958533507699859357084475487460342069059513274707700991423225688507414923455231696036278515281729316204511580271236236922017060312637905761401632075709319405373334256924350766221775789875973401498822241440279871788100003267097128084897056850220093834670894372406546962277899430911286430664207402620611267049356505811394940972663314593530221714563616818110022668910266563773046287273447616949809923913408528108744548778055465027186743757219818426545058610835301362391323389596577732687282860177731764041942656417845433254799245519741513906240990008305796186067072815891864876189842107645385205371743515746531746089134473746514185164961964537384710220802020451487933366025361777359160064588456975772680580134861654920333566553746950888801041368787191890077705241150397843005384473767509006952180116847992332958597926067612647969760280616547529940677426356445747773004898789784592464803227323607315503272589645179815898468193929343754328733547007663669290723658195069070097453032854518275584189676497070447120862568462792218757568172990890792112597525922960389751065507352687560116582328767648881741243817913186979057952410999418988941143780452426634199460476748825327676660251004821578273545567223780753092514932922018722486511545238803139426882502537083354904968456060893604638011314550141904498777298328717983541298228570438196049438905438380103145057351969341437848719811345318291721364481755827509539950272779417876463078484623469773135448018280223930217138690056193380597882618205948730128487506183209410582998879809674636402713599838295231459485829102627541432541858214502391316203619988642383951198794330349430250083695209041418339814284237957664664437866328563278309705629729634708981049841402756475424510043747356430727029814276370542125721267447538867984235969289179371921352557251883161560984374868895808340534140777889375178255634135816755708803342389454303606320710395533993438096869681266726704850378070544605837897864539916128030219438340003258319394292529927441482946401439737801355203286155129741099141298115410951111260991985634018275681156573042662107817395340457252213935676762223229403578167072741489084569565964563771305548071129642242524624249443724521719397249262399354921664929537363883405412691027226452867003537718418125907568749941453669905928233010390699167796431290470713384275582358121042928927407322831386726358027989451156047977361692999704181865230396139004671354243350158272987416045948987222193322002727126556819968931958261354292781165032142600729713045471011671353155930596051572874333101151488498700166519781313120441981568184597632904899395244140764515798077595694724421804222141488114527731115144944822902517287850388524894793670110558298589879051234710548033654455852630334600078724699394982465676927275576813683950078868354999873709132426501089598981704708674883828903892571123369436164898834870757601955542006985128862931107469803168381426132221142158995070719230573073482326029748159166727562836567553180029018996121709579046286623401062314432639432853871846703228896721007089113045347410682047248983588234114203947351214353182614839163189615756241771805906748452708959265517301889201048432531728151672210118505029267473983363757616173091161557521207056472408334068739116607306397075338037631927949118436201940916479347922591847984121518648983569337461074801494327580876878384122659173602268369416072816195366916109042711453482729469707924673859333415048084081165729303618277935474137223318851929639341145823235011995027629453286749442634243196296162421099604482045810095426467049458373008122490853685964644033328385640643480625612209861027318641543784191906685692746975735106918258659618223717453515183594035091959377809591003556849376807983575696570228332873332690569899736173959341273339279297658318726641052517494661839666460875573378059119507715788670786629254618420208781017714544699116958804879900467039794530465010816031070301633743912897395583669204816852101381225683056628994293361891231629096462153240898628833118131967826741266756724731200551525227213105818551102192403207518400927899670051833611420900117072600806020842874234366451202670196571168086981412904773769152150052439089530088630890495752165517291205753414625159163317673806602389346556899389373303218240188423381532169144594050726798732321902756917320224457104209028166052478449340309298928603923913446434847248265817848803373382691260863455774646729178742951054794576892827786126800384886875106903727776188274006805564449184955258344208048954990857391744626158889336346237599488162839293658446371964621863415628533690150652033869381235176908697533502646152198164824307162063009099417261636683517215963445897598139462080479351209345402179119519066410883532664912323931353358251135900610704415401026732094558866908999107937574729716472969944936628175187169075461017512193610984943448807522046454034842796004786079772425153001585241660032106607553921986547331925662249773158305843096691065788853686775360757201102281542017594310453263480486880613462890973585951277851929839596295252591644897021926673533025636651057744626919213266297687150164300707989456766705605722732375170025096292953074231552958718633882309406590254774035458170621991917206861688786318211115370859679080033144894427605318400768782600284807596872836399042218830907332508794020080763474629560539962034792440974562513445426384015864008996963924084935793886530946305573039546652987294542781430883637007579105680125747344656744952568596429550456319591309261890750171150225881435615354283390321021034306530632645915287027290183209465002879687436574602646729479328198538781224083206805204962225665128702419282669578363743746731804932847551971901222305040869677383941692429996337692080138347898128944515819398890623941841535572174197712638524789301573661430058045151644820570896474883681172359911814091113939192321298584046767399920453422004967875380932315884739977625520525372432544038690424515003297981071064062952972284388921693387559892074723382777357907581703795481336156649881002709350104806325952256964609869744460282005081536250659068542227630392197415108175814184813631700569086133705768658516487999487839458322434132875605444608961046593201296331612087814880857972355072518764367622681483508398135165209400732227142658199957922061337385239615164717378195506006377792508434108269253220281114696954784394060835568199127656646418404123269852901826835870536341946883587375780197677032212781300309351811404393984168585803947933104125570511645248416800271638595741848790221643075783665084949919771691798746981106986031232564012619162534020826955613025899379032131040047031262635976629395560873848068139047870786267724703096076686870818427006968279194757787457132415131968245404187811417056550906844945028256385548344073746691705714326698508466865113149479394108426915878476101961809091455590352708376003075085413860011056828118850052431588146617491154522620225006368448944812925345180134117885009536973232507023435905116201624675966634645918362467062007214606242258080557629263142597010898654267437719119893293132299643617976242263735273600674544663950082052942470865747927806266045091886133329893878525171132096435679348335313304902177237566563087591809490955320530771545813308586006927164063482808440326786423390227595880762543209303032714623127154479646844792442912027103268215939117763923796256532267340625708715427940801990383998709406017511162451998753846838899002234079795224714412192910402049771623483396430096011270368250940499990288612528006997600414589325785199950758360426015743773715764438136826011451754343211288933177981650136774043997926104781264325886252989279087753541062921957088688684040365691976867614340806464763371343786821449224139757396959966230506646336850803792432670246262027497941552170417736929012880903615313293566568364648494109114665776824628683990833311584095047174578726674886723907212469304597240200212225885137276928517637083697421780236132563498901151939284067891016464157260627095166410988376367829947301473415257276410164988204945976126730617846440789713364762784484112105895578156665819828709750328769846351591842031729394299374062886649733145548140893658228145579227903029854040266198743426147358335308905185073328170425912042967423728569238593026868852703649684652582866403150481446623090857269341102304032311453668574214923108841201466924359495278693101740692971516769874068211880781194167641877583469720742091872951586505238920188408543158178668791251180969972115156350802459806595298399514731625914056462053597217398985177142801387468134782938797698569410877514729375462046068221598065974535430697830206619855248654011284370159629143077478173244559064834896009252642410260865376491417873467165579660790408817730107657007725412916296825408903554380292870866320960198690536627358127036913457952270244199385790900066251286430720712318328381979095958487349347242624964006321860599251472731076312980028405515764222612047577525643285423637004892378626238265677614121996684218848953601543743404876051939156617265164696818249261162434680543339810658746057661618943400579875756242602280363158314101628149190533748790447463911400997277399570718050004637794408853667745545691882720915713739639773847195552569763394320848701010448081209391121902420449235262018428617726110538393347761284737605442257917848188177827157033212491538394322417576144230985492735411904037295928907808896605854257671535647528133540609231473698664194371288882082661324106097627495289496004896152741373320527955202900179572564307729440298695062677752800591236562731453633659924211906818415843235915916039947803935684279165285996264539030617865807059436069540995890478921699304526505844930531887627953771326773222392651528262076013442310844822088600661947102729382931684067971342024818643351289235539453702405720940941487907674521378742032890699276622396677770324372466749573997128768110114936866474238432030516702856030893109452235439619752154280710170816391833155028709846974792762733931212425483620583555816859944270083964098423302220413803459785331481049547742733866181208958051469443614486153290448471811166592892151644802753397203557955407975795815502845546996784901575631147649554721800293931786626389487205078267262645069506187889560340683201840085271365726148522037901714107844320358639044264377275389391088752065930425353514794984026299293820836526536937592718966178998795727816595009064651429391187363822961409087040435748964586389707671376448227014299616314710176279822892923745937830107091349421395351945313045091363151529895713059519799157285197519367579893026844959465329704814801773252264027314937844030571662990066290119663934025877880863184913978080567421222500137992342906362048796184999670747700650254218826932504069733354135177569551486246391536761959203550834806522595780313309541078067705448272309528137243213224362077650393844863187979953567538555387337568064427770610303005902075287694382610227122364417262774149444583832671537495989242922642409503411281364698456704058301790833316176866782261968932174154144208346549355270741702739533079017639204694843771902974770277269495476177581854842022019634233996357212642551363672129600064665584910268031835051616214990108512053175272897953892978692025710347214184919880901205361199677630001270024044367532394775564747444397260166256563239337965046022004486538900160427207639941963190121532202094462610961078321173488483571780889701632192888033512708747409180748894782980803619778787887199889350712171405525162073689142317174710164878991414743912858213968871309520004323022496398124345475679981121218180113342518582174812191319508175469160510876642261670616927984392401751136354736014964511988468738114391839734634584522015681653035242145285911774243908915468861450013247318645362845119654117136293311844420909512882251338221194020423844198939418605960043554775541874969615564678561606972796957666313595379569546566995836485747090633148423988871365737098485763314669063912853813506712965396197756697849467225264493322791437373866451815421875193216590926322763478216053493229320660153220830948956723572151149323522961843210589120641754830506171773962327474976727624280942207876577380553432090175944338785764729443190587837708928456969209205757266046268780906089040795053162680197729046618938846090993555274004296322784477107412503067623348081102427994097644094934136631316267991188101900857650186849340901495410576619818189188048101539257378510815967288766949862203486037242926480682315226222445209819533718224686617264699229403722145495424255625741139760579584341983851386521970364802428120464636253033401554985992106175882930627582019682455067779815849248386432444164705896685845718384078538251896940990084878569011363624568513515095196572565350132553218413735116526868683385765573458480030722303024822241612207315470425636406269094501536035451622984464215529289016066971844447511007634640101849128288390675699044335439845095278597498035437756677953826061978817817811722102276823155918614165762055982079501546675555575509189242125909963051519028502744398278416426535019311055029287311739919937722544794614623446569468065205950345857773141548491061939245987112596948687968594595924920988375334113730468621387965206731283060116697373864386698350674622689222533530598340209344830051733647427362573846026907336000300540435795786139028466955469656388966354811278218209383792820232460632725151869634587192155070743051090228048623143282103739418507043152366756321149818805701060929484144160456136443088692433095229406352052942944429633524462054931726330269533730058397077070076631289916135019625841741594936744005649017732529886941747855915605242053796494857586622639889765425657411254871971408630071176503286770323901027072608881691448784925648906002064466937710727534382238765067293817135244944173540406108975812292481550220778891895949302062593263127689679388747815318420900784863102938358442912477430402197860503092252734934241929627990879442409468850662289536940326742679663115587900443254804677023867088194087197769949418273266901104576935808009284885856987771988820434995295331902401117601967635937480294434297755876755794800508305351893537084782441397392204006965279084771653066465859253422303555168160903172924634391263330759114594809840548866480254089187267871077252743442746430226255282804935893446021766337650287416202168664860429727755061478039257238570530756994851335545901135217494602128343065063372152438356527200214108875637262111210270183349653054478898076251426821722745506194609290265537327375866095729554853166591267605399329079363231632665549577804908931225927827790011111504065048646474979197854882303074431101256625130530308870986430853654223229731972580328010108319408317081537738049454780887139012497837915407338060177388098002229989305440991253052434017731168842585153256958816639434870542442864792678570091947108904773480478073081024081518849833270645692533151156280779291306487537395011286089524149472695832568063225229539312148692838088243814865789707426213519900745241576898021907816952956524529732035280747699588630949176203785561018071683591880800921617797284315097671662437657263747518969615214279000144539371849209782850077851187465707962614040676211713484357376710672173124860595984204204665250065095623133859535800868763629297426933936873584869784602995767104008279482123753016929676897532387933359071480279047413339909378825930898683071815715892092698470802447865899461502977901395180177950104870645894525696123363941096117161965668634968235592793607827698303524729288292032778241658090040029042865727240419940372091718706309359927906781467165805580786970809773816151296040044227371356528893263849493665448008040955697656235972619805870337603113426643626229825012146979028590471694152880695659849377119664389439386691062006018387985288644625967471256794422347147484818978678990682262200660742341045821973697544822021056433980641953076594044783111766093753747952523899714140463122565511169430964621277654408797985783891519409056060922012484341342193151881337214666448607572884116082162028035450465045163646428851085928698596908095593729361849707805012444353450475406540367340749447591754126320036840854394821286737493036949827530291968282829844392990327834291815534650683844568611103670414907060401650806743086667773240169409506646906159601481091384889348079567671983046448799513521213747942780742499568410141800406979308002040938218179680108282308895078228053997878727818265628702580407705467102997864182108270886157599249816845651918799632988711099031098431371560936290741180159012101313114502233733786028748671400856592800122623593489142087836978830838221498547279576060298110275579126489280465484454754916274749770709637899265699032665967081470875668477422822494892220036869103613352678648672220130232356017997043789222357917709422422223090792395497058453211378831119939134368235521453498999625877137751391939667904619659211578484978220890036971858006032349604600008857283948820656195041461668493406824398215631469484544031616433889560331559554793195060872938557460362322615738862244430211472305268935781477816031913270555864682583560944740339930038206116828778333994450700127392176254081027324465440149425465026744326648153857259520240316089905483874668099998777973639532757987013343190244714590708532178244100595365143124830570391946364440534553415491072043899163925091922070419274102688888550563599286047603620936321930994153265601618885620519101896083104155980336587311935867475821880855546230379113591658420717951786249376763477229425529717455842742184257319336530355295318013311923192278505258028615204750099025654480678249942030694029701206763393819003420931902062541432942443057548510243663303153308657079812826125189436948705950660963052886767210924413780654460232008281093264717350133773285539276660537876448319115853070978221278810678342736863341144143644002885196844433765483146865091071467831922472055444272227334990725814092071561068493556456608321027296362678408922837748388882539337448400999561522727133188831252521974612479997486493422957304836313733552128843114892656383598948496548499315757336034927744477756562134209763894795701335535043499721525324256105847031248566161617185707376665788732019907475879158113833000144109571913967263128814959615248552333355491918572038063618799890289828514169174071666536921344258867854714366648883596412435321150363921336061210043244304196474643756320461295728958094353177449391258756835193989728101602505447411270464356298288900955862018954563584890361159289157196567592805909951006445716258598706887947361062824262975839297870471604017751383424229640666664301693581387909011043223582460456515542293673395346894515097064376577243488312041020991382024230286898599608264598252922126093327064090125838882067004064763129810300487584022045746653966431783986682712933305532555578731853716998106450282845544478051758828630683629009402385603959564468477894314591271920926235670343356592296524455712689854036094221229488848865973601073606429071498237899046998738248179265846421398232949572452807607164587504337593649666302960084968473081984533607582063947720606533014821864637357824132515282353818461050429783650399111268816999350888122784270158411704193618678071487686762469383303906118861985461966564813575665033504995178147605428060424240029682205043885451343813166763635156249572656392105131279779997339514687567450673564042315890825667064331037758815986583489692658675649992010646483968240469626768940236251260868574434874535725420053730708314521003897271153780974288655603344315238543050533877142540104267083010625667304482142411489854634934808518574536699516954552299226664579644000230229895102998660841025187505798800107927113977616338694303392811528668123003869244169428687754326576065636143800758853142789827702574718155283019566805322954089498053778437977703982078038029586434198505733638827064226067213511204003953946538133551462254151461227039324033830527654640460040065587640499635739737412180983331776692711582116511508247458137195324347313093765491908743958334972988583358396404106592884843539924233024572845215541370121163756544366592192653033046109309662620724998896712609457733791778941476099930808129451635316550512565944004703962361349448834192548658181253991717996500077754971325013700646811451601862057678787593895409418011752890325920226702772055024367103593653554792493781914216137114506414501318132651580811488245267883155977738349057915165054363078246071920925660584954811898743697945449167650012561984832275523100314504621535425347004707404376673261769870146296075321641730883736139494634564387673180737003805015910569257389343706705970491548650883210232999042621505354059271368333246985180139321592112461454352574561529273924737922775025966521314981544883064852540899845871542998286347220186848070408996020856494629064112172219672611281514948191405520978413994506580369623322824948660707408332509741911242412219784825803601612398053336491128699330360965969329085003766102474681733081247729672129169663244765060761638226315434229418281153465105499923598547816129131949490950442307514491706585942307701155390601841947879008847323653761918317347077281352579054064685477503720003708472785949459473305758811072084653364150136882464165571760196941619897041794972232254578468167313067971752782516364443969096946790682190214019424649915621402340629325472615829898750909969940896720673758830811962844908341377332754428059050245194225363458692239373375108885825126249723357603236282652661292098503043363591253851409138154863251244612058845150760277603527839493492825501390252410672927463667853420341220621911875555163349390870134274026141515011097945703030997236602161137835320189355347571986580802611831482581200173150767091654402281617236814317745271964094667124854550056516160173217359692484769642174081939093899309342601411900706475637281285228395527244017479386678429941330401490152722936695658643311924461947243432643403541336187534565554777624798970737515014084610724908416861249254546383348389939673997685679994852009727042324960493474981667665611676231969362915972743679415589472762847125280192162598755557824861332274645796238209820948123671702780390737265126875953164310397478930556710891017382216958679948648733822004824461807582974890066828015705424021477664068457669690620379666114925379745886348515860069423917066233683226093729688740317358795389548840888302480292290949339995932770898704821851194279364205288547294462557278607039758397183909336633858508216788021918440237997322823163720983541073713355695618471680371581822713415839067492883515546833773278594336616840330936293234787164548683344733154705034942439182500347908642572853378378820473681260846336957288815695146219511401998076317428190431463874496478297903913591044407067368426698582851379270441235886115718278020580157001615673727921322416537726901378177871274742820747909121391695925302482806970324223098501569012587651798279771649776275946161707810697524316953504289694042304208700369234155488381275879335350148354831451845110568856865713238462815877613489576521160851907627991623704436266053343497349667160679883651371583351019869537617265611918288696766154689954358374618554831184873888934618014887810274069201580857442094751545835671137252695664513354081584885223182934173321761248450132652839996867743643789072337940024666908103786919518878363413581653060926870261532114042415369903316647622256526968786645174138528373470309478514709532129647728847634926714829790336092354130736413790410673008880666096531499737840235486143968283604363309272650092504625489554738309866911397375018832413067826692986997254624897845218509945833474553175178171943083582026717610162329047120305441915989671028233287811630745559591423478419248476585812901472161366769631471231117076851822701018660631010767175094775224414329161143359181615758043525409609871812194857611144318676585394200762739028283095037537023722023541456355298744031667239228222338592932924810300687081268678295875863623465031865668301448664139740774396791576994667514381842896570531147564581099723572237534381098498233871640941729356281581793708356392571217140181494670664196634837632381444660460089828714277393221085521212812089592626684985954430364209129160566394917269187361926496995009381817966637208330078910725800304175170059010217476286581199364336455994615561572053523087372874259246712069884229928557678859089040015221571807384206545953648551305452041334754693432228646124404180058921501869147304554604843402949163389420406520890076057496798346937985724362943158734324445762932453078832873124811485719833058452794096606074960008932992769407505887887110831718158647971338109323840227532459417949790971482746519538383930708895348649031807121113045696886652121015982371668936340271660934373821608772000155465541558006751601457432391864110887080310196778998898365391117653871358846951435016919488662711808903475494989133967135629183968777944232986010464194307678206631882818649287061012533412225826851026365784136162759711997772505640521667290111592606223322268804384687873954884820748981412272119425669134189564095440797848340899091835742283519657336402148842827903470730329761167679784677870100819237958866839146471469316605709065073456946736660342568285920901281683049444755535459982403360836241888859395310668042274500284352078257790550590204057419690132817383388069984834819657082729293733470131812035259494296360749734984633591321921720505992379924846949442712518903178358274715097848882370556461645313277610401862485348304324450854953243215085725192116387347574555016023598846879963028980966595838379231059027017948152433806770783394308639867828118561834475798827983283538987294544408735292564338669377716003744242147482814946577903577569915817497336543594013379649955063851576317503851548367369763121023075874303974438257396765010916461229292173187367590982403080112551975350945098355858720172924842312193637615775024850486771221889594378492740865590008481507918824367372491054875336722690692883636762903947651562780536215123498269595564954819033727554716166087797152914992153130891452879281252712552720803368869630069860585351354230551949730809408559313450469918528688019929737909562467545959215700345286873839731833965830316313034572990882586100567626844257929698307527207906262506933545004800358118469682400163254288793838543830447807126083733894461661182884731291387474141698035966307574541795788382184148937198583000711631538954036672599641095232115169233021842042041067116416016404537723350855137042146867307398302706367915736754241407853381894896257885493844774838659518543196101011522951529281097922466377818066121756043701552653544259779672745233422805056252371096734655669006870136977457182088908337613145376571842710688053030273983549871316696908409532254626732154603829591474704180341304525993652881280931163541989701430690035998014224281562412322944039757231363656303244833593839197292859126021097908510229792673754347568092443102132790056846174013331167004556243011613321415036685591564918120596368532908760548652110163636219834780606828249617729755930844922829886655581434740686319253851177860506631836130228602265222686528647883522917057149075550613880999158756546358137084757264179771019243176169278303443027327941661403260294180083656159258259989638864831107954888108662137688220934069437568006602175739569070896889067354335567627708282207520754740472720332718421748600183635644457578170519792520893832164844662782937019887266063446913489395116673425444587629069985937636896424948694250212087796383486514323903490245294560310313846802588251576233962725604433572659528214450549663842237398495691792595441778086091472356657235859613782602274522635568866568568598165688807769847751446272362187083095913704422250408592174874974300228416368027158799952507487469533256801578841952355403410787754500326140153041277163946041386115164167634367032997984487437450747000764781820222251277216810370006735393699961871808100839635623127375025018218311062980619351638685749422171446036368551801643173627860704863043972509249267810731868644678290169139416803335703320933944561992905213689145360543592423091419955795584711150377779666938583685438123504622859151225902841757208161621621450908084471507072432965492875956626013706647478714720687141412793953651360680611018261456234908353860440668550550893716801664922804304746898949163296096344516682589468443595698811997788299164525017808180380234383834046488463936225779123727826700957860001440010417720759702811949569602058415477508815737481594851486952507647566810103633012956824804893330677931036177021084112823729201450211203676562924327654725869450182016670743200666210808268731472232152380602294041754481806291995621495389042158757556453921291183058476504560176185374316642287055343145102180136658110442896976602737896920359462246692362099683229187766034676253764054371133126964273937148259337246353068890301060459304574266781802214293979246545774991623048427628397899945577462781141631681075668818795178335743188571264533973156507386767560859938375057116935915922710125211959759391173711337637930091114388507139660581167186287061238500319200317719585949225148453208761927163623644210601651672810482442537441846313428497578113563606849547950798853612338347710143431209709541619831940134467432431329905187212364468705717261626718088174845427759200659904392828705371141113070114056910281857904529544481757122795371953385933331488171442369356708359729106657588874848134714510955922215670277047176991744932627304331224601561592616962059617128909534165506073439285389228454969275584938783536047820769773528036197903022214836848566456774363642981009578794788864746412884119271284114013949726336407540768673580192657889476778892148128855546796775728894853678818324332648580247985570055428139493296661479132861829328755875005638662883856940157476633189187900143094983060152385071415306931650049878942851547061020630970618287710088242215739848406988664358415525420971723595123570735678684470039054352295268326354410678608248039785521685020380224065202640057686323786045190496222004250995361812025955333613489668654825656116908865788337288292939523632819678346325528622234629831656694228307496371828907558378746278867501953463812698517090128369984558240480011320967391618341444894499352032809817318790851225217478127480908123656001173634379969897568690809520681524255806146877010276340241801909174566475069914888203978624068582239261755244721453165227690672245078127650382939279225662625904024453479996685933459051283388240522500060570390882133402620929715404909594799758002655520396515990360284468697243753152208741160989275506160443882796199423569058914262647794866217360131623744294303326721611285929257192342970774404317638370876077612456786760508501987006267057732414430343576852782818121238685817215993032858296644504186722841248948845845487072481288087111418457974966955500573921472747547372613614403965158392731676846083462440486919862157277751294480140349352041796969033327566668984297252861270993035494097363341591896242053624008078246706641522337773406302661692194459505520825128251024332449482947068043997866241927350063659532567481064679526779128342552628452682844947443217186687071416247077613436545301481396350832436685372462073339528938495973194140421658328240042683928047574631498748758510091547992085821308595373302426821449434683916521293051010068013889728829170826478879496624910250166285073000569802789934289591334320372566030183958292290498509532364158555956677859405428516730019081387398434634859544185337223147076188469110876249632370671993530251878428232644030728666669458514803219317517003077774723850725036109609235154827316233750144093253662759783728693849548197212781844161869876855018209962317777263415098979026442081958843017247772896479042048327082829662769373561276294659164682859993449072052661593869984791973542540720873230932868798062345274957823297015821526450561572356098377979537712124070801370695701852405903456493918142083340432901942588271549917850694710427002017343833634695659215257126790356925443696714441857547869356085611688947515905240745221177934983874617327167214291956117429163831727369448404723776335802079716341579098472029568270669417808042754783489199925767075015169150685584791158015388923188974947786724811102517351551954382191430122569184586856618590659947447369442061009170368579673513764444119667818473984553111420785487853675392201182411882709869840821586753705055244727445673354915764234754383358536968757801233045628498059837960667375993620992381756124447536710940825965975364784025865213181609550241270237522713287012585594451256889378475160745493785453750375169715978822062530156577243811181006790676002170362859980124363569333482797728589442098973415160535022271161749212551415621547103933862265601698469743042728440549456111900366950734441251607442397618040714681331146306642914880055378217360577175590085116047015623351456676977321285606891584391880609552453251587066972111766641054417116254790805045670595578060218073846737442637306425725509328461843948763210804497451885199574281997970942783098309536067637188379719352320742209969269591341972531957509503740031745729446489364094787693195389945081389381708836294980819087296423838710018905437455960262885675172323540558651073643740417678899463942791607076203404080966454779276061691877413818746001665723328160438052063749338404955287209268554994623704493934013204133224179344902727412002383924104174689825564041179658334299298000946409831499721277299889251476436139796202291826796266974952149382100735709688635615803591870928168185425874885037235645841358944084976522036267710430604278531598466932219687617675741861367545278559863587275401054417109870955092631519663683390280541235396800259021172632527313688610085596921631317299709975318827278690715968674520292990880592196321523537265576040970212057412965780904512612380433515420589666126871897910650133735835636439810677543964951946900232608922372253844541745169033274567123113457615364842292981853170122615883916386419883383222799794526808216541542359757296850642137421895456552665759857048282199786525149967201711564672880110443550582244731993078268460656799999578175493413452525983016482873231738619016325540813709590824401042020434399239663478138576972044430635212635966674917957432289887607492506888755631819996736453567677645725684034301153132694522560862531758545202013996301627806235771284439580847078483968544932611334129825754866519075975505289100344130834084954086302285970972980755373959026229080460347856193386720217204732400087670776184938596651778824687343074790663856695187529175363053791735459390671642407591103913290270331332179828099290247680604583876163381892054212829055549065245965166606806522293283479686719848091493743031066908838254511706117283547380448390067080000168268364458026555175379206031801493726035971268929386764951852088761561813907079078512881499437549962261395650371743307957913572606312451601716937311543192988667756874660014575436634036396908341968521934847195135214271717358300705090039117997722086367172469960713354179797986597031604892119685590521573596413925268236711854392442943460579949451407447960624356730153915953720941965604507157113248706012532951647130214272833342152943143694370281270494229792637429200900616276502265852281884529559802719539024859324949451923483009096232002852329464328213836686757169951555042929414061881819509252348374572036939818884431948668544211753527525865351739618605803484642828115732898408385067110783407051697253042891482882618350511529403520082104793246256754460281601698130123526744269060729002214689845277592784943861946915214629050618609558874811197560487231225663468634949979710460993704047002498034913377716064935317364033098088963274790275928364277742270252215154020108182890876051039009529918424149628677575861280404325477121289611947165685708756773269728458170158365527342485596383076010122949214688259949530266466914692424033501907238303435866834423387312151789271877426222978559069386974823239686889373051579978214492789547140289880456068322437095283577093444305390162565149668140955717089401638476805438248046348711575775438423859813467846252940755032348352174188968238157898828031904065664098563092835966953009345895835112260471972997156648981509136694692418975702856959241181789610310686028715125292170472808208908981345552963245967795961700039448949194360066472220785447302278344426434359674681831615202095540674140825449670908739869802154594210796353609841500162934302273587911149752132850693392879701515290047563520405364731117527113870988559200552491097115738693996798108707645625217182618865682367179469150341580139872711035219987291583190016820766747639110109428932144845179040220124535529430557851334937453074137545184249239317350702981188939357963789124075541539855520487928956593723748635999645472070822263919765888998927079304744764409045148259239896871250859312579052343418639489984442235948748774153871716921925370328308868461393787468474750629728046900259075546341199963435995613892176658276419495997433605033709026843580795539985332232138676566384901566533274059679148529020020145695760395766081361820761752234742973458105450971131098844547274120188256032778158890193284642704151116183035647018096285149864535710619939145952686238588140566353749356916032533291957598336612952173755126030611767110616313159616405999991104553164131801206298866248524940970739787675318851619746217703927913030743092310562370973046376042165508015552312603141959338920090660209086607475568512226050087007313052467325573673885266631795882801766202999291615454501939830854389357179887738956030769693505301989767751716467797344519777725198145886106518943539758226683682622187850750409403577570798559911937392700624777058653436219956557390975691761237618353595119544813917258375493738846029665550061367220936340185760926585635970035726915535978461771829479043424826312354499896804379207571548831304789436909928396702528014014393346830980238511856617803491735556611688416640997470316043702105281476810725527453984204269286832551298198146700184765288453304877887069097099828065955643847647808217559145503717979801588206297023287890000688780009293976221728989773859659135673203584892224688526270398607566772735093715184016221162267059957669356907327088981684356126819787409890608853046375080480622727427845972375021960484746847808397275290418237158709336778930820917717601249013807252793856336561395928174507532695733845442426179549390569115476848707683816518520034041066530841840467121662916428511716330952415360924944722954770793910333770429682715165766240276872693476887280078727229936149157421448773993217557309126240100838694180446547272680678010623029534077943782701242429562789840796856813990737630543091609358985482323904497396537508041238614088797447706037079009385226875197077930703470795755585400503322889922692059630347777835142624777562298231268974462199475455252608832657370640907706326167082564954559787996149307420992556435525587626451045181396077826236621437698741685429950102843520666472961732776989050848269461755431184418041119292842224454370110357279936084550538364608859077083992375757379463898894538028851459696736494144114987498166755556996187659417475452030404960969476272410071433993992427845738956059714109018635564482825737561577467173108372355520389632578339992994146991035898191872954957052013716767759777423332542318355350893935227726038510733881482594687728243568650551364314097438160382252897371449353351952164843141010397345128398754545349713943104219268549907302840262940789379135060249935923190693832582717244437665414102081880638713570107219874638595186427435266164375019165655156082611445034508356754606025521541094005176205527396286673736638307960032545060544926915253552506541956066432833528631963363032375084494571664250086059537023106952268691546513214888052571041840251313730990302403831962363125663139565123530979178025189944407114433297678376665637099790284226174538783803925880386954665470124560773574024481515559664425455495928701259760679887597974302309779913633636301928662193742623077030085390423506172721526431417022936031416181419491042151622842454685690120812329110073398603719121757621714211659410872858229229961593316707805824367402061789456098707547265448467676196152861448033423358801252546388032540297020982012047313014037936774888308673407171900572170498940206789279053033777303892433470885036025781336994507847243152084811397856398489194210360143345812196092974633846548108983589921504426943066447231761790052184492334475887202779083420098393840303059820463865630771975702120326068434716940899742987690441701527854679723211306329844275156262073261653511093718208747962761151571525611370096375067549523022648842713703960957679950096874118935798394088375606848676025632210397204533013755220683253512383681830991290106122719556621318369798438694230931586220220334738171199552651753476602123534626465953444199420664814661252987628355410649580973593877286862723177194879013110092387346083890597421389899389942501068955422390652998069972584009332264320737390992432597749733531783230565741065959489994560929799490626001948481382221302153386300779893599857679820148535473310307922139239502677005830639708713350662528293040126037807497606884584475772642770061145580157191727621288623497480774411574133074397217701609614667056076124705450030492357468828625172797985616568575384922998408923229874330516608974620454910369276828552444872040410479950909670853307553744944577751022126172620690330611464777248347653089245776639894127138828018486014692221355782652922104631368041635218469485922811526251512658636408919955748780492738769294505594070321997323662191406764746418030413619515132100498900812768645870520045643847889445171848982500722141358305242076200496235239452313806742072108181104583851925871160564371459229044180507817289236756537576613563529756796672074089017453418622992571931201842861269866113237434546602874564534300016627301330164833933648421942700623615645606937356050565059287228522774354983990497687673521704619645454910971260447609916791725825937882734323291040987991591307697673973454397939246988987739247399592049170881424173781821555941078065360134765753813859382982028571512473764363813510961857914682551412280977835065466664754460903145628598681381199730162239591752625006283338654212830785947937514330785843698054265466059056641803214269573946772370010044702726613332981001268873319173871970938193050701619845717359843278327365468932414018896050253064188575799557047243954776830387881007368381462512111825075809024890275508377291205270188063594695913264884788854730023318854325172686241581872904058215510497573953672198085702163305651918329957860952653831995396075840345581502046183848753153001212200119508062300099417030760211965193697519119866222046923532012316399664756173008848092412200057107822138450880057938863275454516023259755555119139386283597189140397987900640429849508963508499962587853896906758077975787270938831229914216855180034139079998146717933658219913008990304990869204619102719584994187737258998658085992792300612729702212818207587264531986896647779224984032584493152984665702264522927424417317501883391452808993314244546175516981071919789717498418732217585346304078300131318435190116643374256940781850914545847662928545236830861949264053655274488653140881719612602094392921891020017665402506369950011569384404187212809441764162732801706350927522911634925508590161048042235553820756323464607388220147423266293335610898704459009897370869648694314038142943447764405540525956275011072240791366163018486407620284613531667287128151214108169623625734952831439324751911029551471849909099657630616810705166271251251676285900585517954840717167339175820237294006319644955601113731334370907277241218769754717312339390361239368768336361504103487811811968631424824383803609831886327479338912618326996683683627740037768861814664502621658270525289460372343314827748907352226952261954082478046790983044763502560710915003331018100073156154253923507936137166886282029912032784468505193329902096687128983666178662635957134991855876433091605438029563892138652340004967647566603608149708523503581635377294649997231171248475972129178016129747428936492167163436849653474184079577554328374598815791928809525055850973269090588297668087386825255011060875678948375547213525753766703759036530128847129642095536731556488789597573964585496644059963369167056811416062803720569372292510858046804943322458084226670237759652775943352117440230822706547706606612048395325787664074613484492700009629415848452519955365404390314927047128548801722117012549643883808560042935753672859908812681637830007469860241895412362754891448846623833329427031929270060240942466745853972109041174941593309542760198037913749752909133305396121908878060126460441012624838174208151904703260711222884156075271723321356486843318807347587661284622990283654556015928716918830897488525873355123271506816379634620843878144469961818993635504085757794614906383213192197546370752658037382588858113531233906789841822814676267203689257685336774609862042443651367753533398829771817822829435651877754645250863777717420909549436698799015903798734577551457685020953550121509675719129478689028994654140124894938182588910122355089203810550776415564475096013619420771567275292104263135008002777458872771907415640451029336067674803452627114000007073889009208754000596900803206299598183581480403941079888415194964219091176462925594546505068217742477746365889586443938067337658305554799105704742615314605520849817897515865335945510644929899418692358165848088879234119140790819373991347734087924209145422788657967697676149512255521227158732352828313611493799921953876771456029860550176262669474203624737179030312534088974154578159943996715001127325974728009483287333685191729052704288897787122670722119588294013651147265712624293164801118579461123298507844721644909563217282121930240106048174411247907469543674687220936913029200403430464537498611939118872205700857606026394778389036065527638589631864806866167527678441884013556815850498743561227959073969650150952832187504111205038270215256734862454808641587454850435056319796304910318761628332508930813599840959157590548880284172709024157900267159267575987455093550282201675038262699944001203359087981213733103103585527927475201125116540572388901794480376506144319526434904442247796018365654359833050050598696758260552299975534544277330702920135076313851040366644061396154911852099168973199648674736355389405819774606417243725171603753601070264930206583415114007660780799406883201266473272736889652413578922898248952444735310668229577958953467821459790945619368518721603784168568622467661774282013997476306289625888515554808975788819872626172679629840478873935673722470741691561162739722956451392446806850052205239154439137228829720255625912416493582313112661847091277039468302792413026068710082879624645900286958788905472608161406811516676080401053385763193836789692808667186836213843913986294440131452515184073513278743610845395108774213455180080893449227881941524089428706217691030651500518982333324420957446427977940285392784523676314171985295039501176885584539630565015279398349428291545211345024594832209459336215786943180683787826661802496658793490022194900920732036138805056770383824009842134440830005544830932383558809326653803729192283759797087217293524443611797846197206410445829693167992951475095318726493748734577623384464328431063322761419793248315529310289312826235694223137647074604909203764276337011166619581560165129780755342914112146284952995846535244413386020649075734829127877734128490102005804636168074063242412182219345524296835183496865877257116413150892313959743520732393131646823016302961684558084161084668330525788393862900068692094394704986027514834907245173458065704584280532144389677344337513930376113738223115161710704304241350647951522121714020472767402203185641895082940534589167559345797810802588022436089865859200527085444705982840391669258894484252821441488333819058642313471667931340809994526300099710799249143523557701451018219299312036058818145903189832145301378058774051853939996663411904534280140129428257205745692985004511404635725242863048730343457953609216488061473125263562249503317785183222917279275814044959018731852987740169949371362273351592647000958381541692929379711973273539846375050580052821479550418109654612051887056990511404948511327506430572845570584956428819819963139041355242492645215494056602715850534308552487540072177254870592724515361984810976816444286449282887221983553926263852318201576661437013042012306611556582476585513074799606495152688228253296051792227873644538515541500352163201097011648628570436126942793689097126394547850209933920057185318179623904925659428534382779008977681438468606488770556029981028353164209453399955745395394700456319078297539240814274613567137042497969474397364501664722724370290796962602226603654097562821779539864892459126944557199524079298813939987535104541776779485916851969379101664217415313488285616560831063704626229035578628383269336823433785937842038075243170194464180768478302025392286645996453716390737681516018735722654294184483113295253608461633974700909040733829893840749604636917440631834491817467767819199386174025173214245908223701435651021151463741150738461498733915402613649373018349346718980289604737920593619399161932912033101200259715640515022970290183049881489390974853758385316735033068552955586728868898878142946777422355915313300329564892368991614108621370872273011035428608424329179887936554563441605267910484324866348371578284244595556123632399075280278671084969346976861474699245627296768324585774955882481985514333642184718235983358992444529951468006312335876852576509723812140274824580203258489598504801001171302852416245931429803792174063930593602778343643256497689464234711498575637751751720343690986512733881439233815395654753383424199725268907798103583679794365617165770903245849159593434884118277356938968542934922340408975380993843696655962445765150714070993007629049240172005286747452481229743599360781696236191460509775012150032033339955261640341329873377500277949265932410557618796769211682715053074481642160266996298482320935060883209830677581168808212375813760560799897167941760027868133272823573841324195075100048143360638060579483508644263299523327371906961411399321506820276318378671587754751508155455192641328372878091508217265527205564611776080074608009280035725420555514735457183797699784766321487528352586132662154811103040361859581719465888990219638889451199883583508525006544546624930223571038289757301856040609382143990900163426667461077522387307748602560951910432503535091624469199135626817937817214738514827815766514476537678896541240793945361187992938577346944337248137053549420552829131704549374946636586514419470222600886147391700547283859662372390108890872538038352483285653781381788941412030594682573416280223343238256005546736887898226412661137505582076137071892711064846532210409875696248829401760373599239168803988427723900437467665404057359034980461412359041401933029031097093924807351995265117958541222560433255134639490763683632589232615482692001213404850165804038158874283770390795208709202111631630207723287620705494133090187958877663267032511896193604772656293075429254288718471267230400349463559970270991319984025728687978602702143159583138936714687592022130806554941486282366271720242501032302753224256158420189463748576327103088775362249374038117829536520736381889944622407076491617232972278591923439315951231061110253708076561443000605911485745833471946461225871321689222696356050267994674621338327473402415158121935215991825836207156513444807595630505383263126299161444126546627460818229037173350383878179539659747981470545946913080675427023413444380257306002008228092940500415931845240556415323669320566658467514717172273290993496290063002121215408668313963507134975830610041951277383015757635899856734043939589332550375150451434149464991334488348071380268735066842241962204860878774214110389305548119561301647680374075143039082280740477665665610504418391435502018921355160025530545626301048637175491941127028963942331956044050633557928571763657086816370012816194867723701347814886942036014125778841490540609155969794138402811817116332538410543231210007544337092075214367594350708924146174810718128267302632109794484390998902048079807393494489030244780309216933322969329968477996577808526049416264027347373215755128368372168725893353505632094938164697421126381896764608598541526976764497410364112388425464539558958325978740229343617978051894803731378623334286763771034388058817651094079178659133620294148966425124477857112302832330869776766382504118776601462656164620360979509504722632566269563392753381448992307447568341030023989996606840300349126654223116091483662987642131408670938360704541984643240609628523535999750520529590666000120072147933636637273038749947164090689333824241083384105924250788622655253017748719619055407128757307510659217802769643426421922088325112166901591592067108489769825421340930338933776970888392870874052427767737100527091246886974389785105093755402375907110010172081296970723977818544796043667542049642295056319738568092977986717620591560559466086623181928817990761299217754532644221424316820281108486893851040767430742494160076397496844764632757000247073926332898565635894161726836458778121176484553170240886955143299904918532768728285367128649468650350800970263319885295572723781495642882316629620986871965095197620788050297251123318208454428505746603954957971682802111639650955575369044739971761444256247468537391720455860799562115774382892808036834138114255361294961953709273488709597502358545132612885352029305215402650382011662192917590891000598227720869422670086400495535400441324618058113577335891875966708206211324526188110137727005458972918883464697200598645442282768111278410870476083401002176503109349562671194240716938778300626578399873785811765715851850639815064350021914187096163381796401026538304652046935724703338143784347574185723846721751568988315339898555860524551661819481991567415754527149440255245797775017018153884079305231554461323146689088257955605230292598734304789558347738214631967884898265060309343836373494301079212376501960369271199493575380554871612478627191612083227953050954644314984676168165939956900757408036890397228139961409507106814012457025922722049030153779684957186775151867100207509319683388906925818362316607646065577325677823250955637911877551461154274691000238465486082524290212233070644285314280516477826882979768916982750169112339725943169357108005131699383110318862140768052109658027242570419751250947183407699434402054602892592446463215740418107448751741852428986556753375722198186705831522231933701332447908655379839591568791947588147045922988176400433096595917596094465543255125067172602184690993480566902439541098631426587283876248481228884718485405725953778632214832452091580089599920729552352045152801135880717327647632990379400122606463798644869669072791854810897988042621065840377008693434958541311023694884454978949436461028900029052621525970401540108034423248151599100453562862322906958438830028675624349916958453741496625703474809317280114376995214474268832476696668362881826010088275136030862286115249417995472892380461657299701347821582869192639340324620659437258602127711485513144742855648199400210949651155898797743335257783452243272149269506122501977441506236417053274914438793155332924135800113322783006395484845398754624379702394886292344508080620813293436492588926737407565252226621025105296172418950835430842060108257067773480598746369947099601442947474933913812342023543000851226539851940788738770777159624166891011560761228541407464533830890023153868883207054879137706468592462800116217072443185414163482533564441858650458142317880683017710633660828023824297224614897123906293513909221917282724442028080087518373951577850475578710741672678765838821963136106838035506885494388658868970984417388425798109735640639131140798999304107762363465999546505957662256867855867137935432490594113045674567331645762913382121790615705353440500519597001665853652355749903114449663080127347520841214655397641827413930509200847625909819497945350626928465329512741989457165175065407666837206827780931281021867855313365999443959661143379784766077256953412815403596997636368133041283741205928956289708421913669881581719032893199202284232472032175273916027540292432387975380472583098709396364815109692521227567619141828939123260743055986293243844380688818826303609150919383892700479879166114256511253590998379826347545200972241461452121046435739206224069120417951244333137323586328676609036584141802461667540129846743340678105693949154079987243209943739432545208259151886053558951130207294614363586048384794298907359842771277717916968058487440223120173357658030735255616533374145273886107968717383249490567703059921612239929524866473351179610628077109737315051717644976332441710976454856369109502284975790013025947622957576715835586229671168348587248910396346196897437641926345367913095283871220108709462729965193053424799149206098456479136475162254384386613926698945138400969717700386643227311856948378120474271875866074544033196325643070099373091815587144825513849943008800396195317750103284574232771122151377753896398736171398113244646485294324760511162597058475518110555306427032804655895633999744846203839599461460384924936372758341462711358481454068469039721275793957707642044488966188122460455852567812892157354196057337174337588977481571189060384196839870649581786386078785092945259917060119176629578848290261363192470894836475646403867351724444709032227247271209201932444038687171906702622548077228386126062768609560111436054246542277015458888469342204405418779181366831804105428821047873598872974311628174932767708644965953688442675280434520540201145651078425838316819677759307912761153262151647638490804519913587119786121483398670647297534893290864881540154946939313801156529915071391730709356702957681234406445080602007314188853979705374492178761793728321563606605400011240215226297626044110311518209322672137848756140182850307194115685708779465989309883592600146993033801673906038288442025215826860085327319679905851474232735296596023698191611907152390380619440527656393772433091064616884830990777171292029345049487828147545920054715504695068490041147649853805782345189973452011360840480672509032646751797716200885823936420316538048934914522174695371080015677944264225436668217579185685602273555982805087151626754867004445263959339924581013765664436578675321635821388864975940043137756761793420561188759192254827036091937227675064437403814551353575559193996496871708651322344046830951295163285281965842197833343231665211337408141737156271258233511807496787457914055262437494617869581876572322490872709678757163572642535728921812256243773476929394062823106127011943064581275839272185705675577393105771072656843646744386490192956394708510471396769760853479015368580589240634656810841207911000068738510575399171761177259800775257289815126230661841231388658817199125341614163824541916884901172415209659442038578075988454980121265547213582296498077358167242330626256832785120672052610947426042252942547992793211122755396490408268499626792155678609238974472243748065005640397259504691021697174475070572857532059883937117147427674394352916318536005112986499153506498232080183053618482907493591290995044939194978850175518807943231205943932758292311931198178619006354421611723436383797341135037644199799198174949939440476420532712773843158360238640566064496298925636998875001016546098534547120797866966629797489502164375848028044770416122046790224789992497561335825713405385222524798864636318931718847761788472441985420001733059743229971879158032670329771952610918915897319002441751898098510286760101723890891676783633008264048079943527223375300764797819670399467227834449137732899076693585286251108707169900399700293097903665305005244983379280521325199891797010445917658254077114071972466819884077459196797485677350047145945613364985341542973157796087500166977275238537559583019701240193398988184699663517695297049309925184047710094515523504982159823210979260431914609896906111243812376626395259274401335929428306554360059913651613812488928074747408937825010555681080010197075113290873358643827050194596784394805903065328009441369930694555283708139424447160292929361577584301801498477768447244762922695015696447906450092278234899646615634131475035094360364142356498083510097301878153020067805799866229811225866272695906655421657896941513266643787038249941046416181267510198477052049677104736694350730430673979561545710014806405639209510656524717204371391788187697211905133050955948720278545418782378296832349081554258599483163111347083780475402313181736912347232934716512182658627032418165203162629696086694031364974086500578298147712396210003611086290172974594017555437633463775388930251688758333303537152221149229574189009228161903204856668028928049058590103661166729655177342037745368008022197971133218946333531777012239855489989532516681491645754558015668716540502430146361541754044111314207554952848465356116642740256062063077314966551576489020785551791954500420069076410890295036943232568568360108198299720077064925314897282952403988933017380215012504226289427001025714816770251798743985260253571961663791957730793509275200288457522966517518941491991803336040843617075453911378367332335616064203835203824220316812330133800567025290546027732724902456695872048685712783983972936524849309172444165092724443811908578396908707295276523258010032326926132022917925216563996095888486692315182105130945908043263329138677164828710983549738096884559714202515606118684958152279482387292876889384117266548106014280062308560545118281391648616561714687742189304907573293104505177463416751880724867509939195435636840904011851585261560669729463595623398833778077232611375048606516287285146505425492805703354636438835500892939668826985601754997046381457670067433166302291692595842294287465643852850995574361588266529722204748618389454908666336565749478092448403133738600352361888889328039674380554417558364782122536394343845866445320457737790750376976940514386328434487054397383152189100275056188867910694450329553174835992130425280141635914950242768174837531564253141332872471180941174442281121731335901394881347430432821286415298718016091305134563002490696792877902399147374098591978579073942516619287361315108715175494654919068811208466518962853234282668867138851488423192893906794178448289464474440413532030070472891400973741926735020383039704720459468389039098415001061658221674294957119787439943475455327394964726849539249911250591335827322706017545799425592142765530062062524114614286898649352938669309918603075010068686726983713038779497532488875559236976200448327246553386654032140373110837433915670580673025994528527849349116641489395259575488889545631053673893821300514847225265980458795471056128546505891892089332095278631727855464592841816599284463719334851050805255365499496840734688718437776127573145726697519906810641402052995524370969089024092271315120344602817602633699824693622248607703045575297728070740333771820446584589946958222003691416657434341866165572608970882585847073239487092053528595800295812871944794496783509375777370091299577839811291055045191537587964867148366186052292784828386874354328596473094968563218371399595457460458791149287651870798456337370358451505371028634759587899067243353922432522511635177639077396230178153589420115070421361634504326575674595733974816499179786738983817876560835090120006943778539114239671193398636570701058649624192923255950252923567859127999421631804186422334550307241977742359010092243815246024501013904570733906581722823924067455738334012830382209933929513643348963040714901980037502539186762575069523937511572490052830134417881537578720463313967458630730683927396340168391665414906509761434971525068132199866562645894718905646701689364048846637852304516181529285237464380388931863962378750243375152704598181699154999558669243124373115997147125054784243223674537251784836355933015139443582494993898817440656419140545173775323736307940643632138892000511971013666417046700774807328209429600338371947473217779913211927902130677655409084299181284869742020536430991304514439963410291948575778287262443782821678682087971365015758303328896829828863502954222999920763622259671588912786556378122894118157464224703857309127300616081352568091976754810193793306025439913977192260245223026093785446850720190293705135580728802217997557976602739165800638001743846780590127282684918440949616468741637879563136439686609763280340958120105090270120092544496417312715909152626764786122885593440930459645936039371055084614251130438312052057543752076613012975301644232793669203970363115608469443229205008030922718291127880519308860854094568384137949875334212969014000119671739189713863376958804417771689678021305571215053348282127102734532873083005798546814987119260232214282283657376713280519564854077196965919994013567089921476587058986103780923934246770973081522746032368638832747375200491495353057574550020115555876108819290284648342291120925107895298132540208202401902976218360390583837395655198759729866450352927557417702122777636144636647818170833424188029307442540839000246465104766883721857613974406014264908023530797099939504853504444849493804302673178013031307985547061873637643541076471366820488775440684513687985191541117742539122786786750013818185365373959841462589353969296771300283126423463238501873639341435869664612087590665479258255393003408691095969936557084946438223333955410112660500607038272803467527403234621654317177561833971864211348673242557665611731940852151119081746954063488159007157417916910783470047418432862404076681367617396031320662686014626441606609732745740694319265431310555412912766811580896230730481418472781487012632543744624381972215997201944007015563183447551075203809226445960608393934429261929572552266880142937765794377825506213223870811692653400174536437617661366100068940445409396785907913705152422996372453772571535871121280822890228741303195878937645800031334999461418529934183653169653842372954841371758973495921807209489097057102798517813655230521557159949645371758479048089330709697304584258301981428889991661586508176950862168425063075569874916718540257179673518379653065712508369746709535797123629853125937360753104795858547887431666478086509825223288919490410089010475287323118250367624574237808841545808014148110647819634631740221113110006404276920965121915846362617761427760000804002918916291324928632897775418880573362009074988348260131926997927382407445763345803406075224505433858912607760830143145934823621298301861578836164529476846053477980978802556487642623682454235249890621136296688120398915977568805606914370748812010471411520369146582304224732885117895592315719345093534478696156339192584546996898262337850541531792015378179432840547816347675732093050032911239225266588545315532163157536883044663998180849165843464864716017089979467662639072310755193216016662016650486857462883326290166072986209154854137861704670721710182252558695141857346098193037230717311561856752706629703906327978781597013463202067772149406146138249259344109747362412571590800501011764711289165547028194837494714849190604658116100421872782630867406929225192722582452920951845302577622500099913080877741174992075540149396340658350605672871260142080495061699447068077157444191543668285664643948782972115430576121715066438440245026840451266194704496904677775597010293320182407013329686643392998768063221741727418419745922314703725329486390714749766973610167128190306511659545823585995300816261828949017769804385760850807163763164289204015218740331573145029956214221984240152222131995417612645065291193623675550919368489896063806897503906613064275888262839392618407941995533382390620104689226047355203701751335653435468907258164473887513361945943427474541148886978431982910137409380902259200272076885030586143192787304442903049421530933432581618271286171366794407138712630710834209180977294485836465204658040723312165895222523781414087253834349043873528228028813470878881739540465738324775345132201266526317725802606839062899680420530776950766303299173105197527350096423913395920942650863378533693162564833516550959156075092704137829841458086869827271745444976129629750835779081575819877053891115222004463843082589413584998607596292158399222906018649224142655433016923052465844318799498446038733949891802976268149114772009222040720429908495321148679800766147615264295313374000006937551194223966341666710832647220989669965115580684847279534777359439975990773371632791648677849204168183356821325737421858951018899341714586333309923087349214031554286369331654370930991859562168350726816882611954692931645099705677013090709100690178699672089927955733208998947007348711494602872204847518599149113895090424486244945598334432908311783690247945578406196727735343559498304585868624935462689505825057306125681472244740905871390626079217505142104721173579019048630789909122923685463459413259674284635227238660124921493736198697025319908232967761094618043237144636154027400054969416727000325659618069424555797512735556654589188268233555416022738363289481983355541818348739907267066352365027284709488167170806633480045188463566257677009067439399191171687771559399667473547465206604229753841703270324302723878715040718736523412356596164279847831887209545718889423751186252921126853118781639222637707460900239737537260872122445173886042112966459392116563513147589203942776639761189853836941335639040389806560379286801708620034883486394694614361644356844513034711369677849565849317132827699043725897429703556901252311297258601528203445466774717095054839475931222684536391760851764311535311841547793239342387327674564983651808059354882890197715043298483816223149601080291145179270842645291286611879737270787623668885063103039242908740623498540443456506751828575237662272955473420457632601557937951903872104032030223683943030315052633312595006062151431645982919056502142298612029000310807537510237353874710641240669326887857981746826352431431732764909330523975745720392943102817644182641366013341659083724731835002732420639823616966670118766712660180749427962086625348675898820550304543696130552163117804507696843780418798765987712787090444843783176975467749564522625713350533235955697504215527905014584515335398760863613944327537533437092138948055739296085694153052098373682984163565190754145454372837782145393262096242077022400499849638329570657921861700897254861557081366817224311863114493101391171320480726825131410359541804767647809185892302720400014257183774678780836489208790867379900807652254453767272353781401172599127241781489475088256010195238859209806466617569011788432905212007056829495697489406902211555645831724425414658057944753710906989595392775263278471602755730347910888736536158564956119639693559417961511425017930781629057875839721167159953116830541599882963623611739855174895781681281369303735820090391786730337944354132732125518244023543444055887282802730337844380333813411795628508072085258273657298342838545243679811564821550249678511144781535428107174191328018970398557918492373788853329156542528515073832764117854070637622428433776144695431426328195656022417893572995436619916855694984149971875663382114651478572583702060388309562756504891016010272811920420229649966078265950752302078626551569581781901696331188953178197615128467044589581853724614008239276251814192650605645222117027362126731908408351944166705371726686424461209563971542520317735492758088494453950091556690085321149109483966584346900445349435735685297473589748774489456324916659078606413512838968224893217801110636694451894555079607496525415527508039013437695445226285810157440405122550257963354553667444426769674940955976945708886605150370228156354907768181787663477737747582195744536895932677086468579766704700781981746174131890947788422118450661810880631369960041860950067414912948482988415229116429674701104791143103106238762837713875345542807685415247523244042734293904121357088533567326510272133715602099733337428041929185604234765999128982173860941356780214620568270185928581408833030090234350179258237860353018167725973304207496646506039340364174630912462392683002640409817917460748202025623256991971931199785232556066892695479026656723766637910885297429845882218449248179508768687242225069932835408785385368237024564143181495161694866906784689444124922539665064960883498932930999666312258965089217492897354529464220549116240963024149390699224653288938965455773335581460614863279183504070908864179346146990591408618251296633981530206024887565965489491082088446984634539352940669614532380746355418205534779740514017195692686914101277234365394966407502986798531994509154052725996686554483693949331756361148058350539444536387544513849323635421639702220951464177361570713117413088616501300239180557342881952129137811898337566277329244979716279028104914301208707084404229009037766332202968698427695098780191710969656612491768822976265345441562177353531786853452715898133802938830329668816138773000805731941617326007544390873315488912526424068224520948214179474112423542466995661794271907931602612379728224862411384225779065345015389084956608873222338321515614836594127253216201953737766917154306787167194688136603547664556340936596112554146929175684326341609579151523650282296749208458177680696109223295665279039607990817124989085264430808603012950904341355723093569983854786436772068803488496728815338938153827007923444292050760993833183941147769379224360328249389005402542566367752560107485796737326449121533271508363324016221036208254545100375354219441010675366828842494311167708160305932070348024034081249224708100971771364104216601033381068652979090808635624593554927120821859668972971912302983678954797537648222218750563640119142939749120697315951587945891680351667583626078975057254390469818566768349380236583043673719790149243352757847385648250634223173594358022967445941855773623129865262262312076586165977647886967526644748608473789429663311360468791226626752931025319350731747938840454607376576879697789122672400603015290919212434352467325153618452668126962846683664246599510255501042320104078126976398535103336781272777044172172948901736030623349171819102469997077815281584767496311740161665452146369001195800368443957270486793538808037584773493798430971955078093497360613141701727597697799217488469954250575083682146145144131626569986044701163323815144499420687187854699976345394773553892403548606316590703126983091058354484966185475842818831726133542019536946540370837951887234175302339246685616208291227739684843743871997407900935455142644658355829640779283805982791096138856008218922409466637649209989367536319876263115028720844123400172328230432201109924706776861442908015207810442227708012117111867474147232028518217792129069795628249701488480174332002754347303322414525907909399773199952057595006133721394918044749696774012284045661188240862516460252016444257534713994725442213425180905189279124813713594883345289496910734620419947587722833135606838944004727421166457109506299525980330682460764451263384599879221062105288365348460333295342160012501783520702340651818136416429637514931478361928595617636969739988581384490047387543911722288369385983972961539765098087408674962407937860046359453353035482525488103833240776016246346792216942826791240846457648687220232431362663115315223214615526641801326835947958743347800906905498243116200206778490569744951281666891936713676906972897023053273629545921658290240206769496659618369191787183977637549566816253401898527321089599645030878467483188140254087716535346779093634667391054123474180056590512198141215145912053991100359711681087648162454021617631220400886271637856435776390008060144617169899593561264121922547942543841930224202378235025662383063616136832477526506490998622115134776688664515289668219937724989850856263951927549403839637657477812752481674199787849903123519721966595313997728727886299871718334758601265698101939966109285125696322019462178363241513283917130772204560683347219051838159802383806336755953258431035353335048924816772199997158613707605286849749535671669542338850712933305815695360940810911437630383841066389138563539730128176482946224190708322549071579586852466141634450079236867773129078800313153144675725548552554999807070303380836582348489473370539013049788028090351310735592550712925565461463556275461315614256460859635122461711877985094814200389194168716859565247407736758128339960237870648102590063220262451747359173565242112067219322777919173040619159876816877117758114157433838529701243548127023625048486524993962022931639171164477939463573303850309921397205417509963850426080091879760362274959636300626132852843337229213664771903333461075410681149845642419226254148710121189355608796662737680508413220144363051898689126328685865637426080903186717496322885523657744811898064138707732499014984432921694409774657845158277741422118203230418268782232727418593578452155117861110759567626839110226921221209165068390583621993734504405487165765985192492914836819615621947258195320359926908066846983620190176055229932056101078544155107942945730401621826376283492570758791394909278085860960312482240916575546197162369484370723335142594942239398536340348907809324337241132364182942513515011265562690458136558644605153006851968505366868577840772103133170116708215676601294615363983370348720949980684206386980911939632584051699487486084187715792413378473663926346597033182777726112941185572188449238342364270841500137292102872606990772450700955737588908871014071019800214797373118206259872749213196639563872551948129497732713385864575938033262273049581819883685096183633154619354658454414471923424490543483758999958545904245227811503904385828884417406001298554074533009262506740225113955666727704595508497959726053388904342771969343682873470776822590504805050279162017997648693343652956470658974962068612844537989855347712551311499045496881502805724367084213442425692648662657909849406219770824003684770617791721317422615572623318922688576706517167516347316170831535835867102184190616759437383403052939896982962719030336358070568364142975814510601292063505068462333363542787120206998962374124812623762530353802577827888754813627565474850066662904104967978865285315544059690752564807057012183466431740919835206874545948960644267394035559985463942207467356766391232578486299084893443832396820108482686160407383454057181406893061448616505327043316651871982636546820850660512921571889475210412618864836361551623499708493502682183723451528396300519620203482391821945111658255084136499290041320691669479771990107134898285987124889544597013331263969119230558194630360608190344841383261152901403304207811009254628039571259275375442017528257275836913608295656589838126955122742981369094518869808596258176786202343063007411150368961205681343497080292159371713060901051509587612123472509194266749841592759379276352470049368609823060801834285470221563772651934887267877669670455803359856725490656385362536221203602855904616180858517739962255030672047515838061862675169695135283807919931720392423434443628348892997785954705117895982225496782017546375058325227604288514510354590197193894127369632823499230087390438359200218802265096365916060017790176626937388527709839131436371495096095300941417965593291002078600177467849089214731285239540364503779462879250921526752890487179610041282272943095874186902608500145886641438898360196985063216355421675255813946650072450963408788961734190245553883866409999273263999310177214574142470345135862355097251507514137254182981396647975661925003885442332169611175404582762510084537371246684058171218141695889639673133137949712376833912481481994088606944454877237671650989109133219574180718969640488084033804135894590470791781494795824380969081180259328660789949179575567543977208578077451439848783657370793742460260394429389455570359028216321986933017548040208230288681910256025233653983358614398608073687362336519886907596907400669456421280065733967022651803320152335099416717585676056239981075356905417620864603319635218532826584487063668055246639184205595000995416136686934920736021918625351985266758921627707567857768873237362605743780827724073169130149696066204934859368541897482459496822749511908896428993546241945567222936786758907291488905951374905526849451483221453746257625006354512811347771075139341126803162204977432221766159330693036254987473786246817790154466771762610442713023864649905909589841620986903037762477255435342234084903580376772657617406263079189607982708280701316731557392985318179068031145970201075757157685027046512197814095373099668604074907164116344366456336207218592353368018723896874886630573271295830563647286318201739106859414917123188672677724155899350564000927376729820494109420111530200865450159699261418932450822357570011559869003171147754355676733035343664278716092190418668765030367224194903442463856715773129719956508741596107079977633182117972627586508374475290932628221451410661938882459576371691165197146028139436741003013856251312824966123868308817168619247253342229850526528483518015812303613884556416039569049583558751676694240061921464819863716108594833671614406307788214915741573467223692335516064337318296453008088658607306287534456323761754692291348815002483746395317511473057764744168797330099186106347497344269270438026727922936553985555593320734396125522121665945009533765519738561652279496522422299235331774900528870441550582495804912744520453358990006885784268564446890259374779851660384663597113830795942948305358135299742981530614400131586648386885921071222541967513491198367357887385109128951290330218694686499534687952705630276062889441330199367055049036242300082818855640710174567733010988147999092329790910636770583888494656640437367351035941700540852230006062571825115792916027002681299326471195962768010259042552927805418085034758820453572264936214888838834690942287191317452669036737262602473201074055992530826352524308032961753529307748904850804823960675220891760093849130884146161675182221151349174704510007076630386725400648046313411439012687463495339121329559827515945151581838435159639282975937169092335608149280305378368478665708623078262103616600040557903560434149520142413918059421343243648866109380216615019757638570661032428497236248714741311778076065465267443129122841634072334282064150876778382636255831545336667563640499558155252589370248573809017224500078814894339634971376145494597005742072845425161171051181412045491722540835038074235213293044523687847599714410568594861590586265800360027272177607277600870117997245071393551201588232166558645398760908575785962973256129581231833916768647712466200574650038121184654668054414330348871051957349137285818537195169014667848291137267199410698034413303622268539928193685654235012414905228996243279665639775476400601671039912505011355853329655758193436434759483373469580230215350286608291054481497112698063175976142774233938763404408709365331618011505629144957183641721603063095120107524609746897919815253944002055456517807446233028820580131796142497062108768424353928749219887743006523207360447926211666237756235410553834188354804620185447494530462576539000825298137026993013775884916510529649177274844091167096706978339598805301474177883014648566671547343202882322855755134512259047570413032853610445955704482537619459258997266307649677180939341810035935308524257573173663137690207228472714083762882448548553882778611696481194034930901080364379183048171501205731461670345992808422642784562450473715960172625604641904033850647349322849669456065420508967729184691645700945658076289567158719635299904989595276733454200923406505085953460955117783839598384586701337957878112457300658061518438242039725130363527807980575579468191577826058015126776816639259511696511027623254079405499307909078750660986062646670369481491077150742721825517376280758210869730782675579470079431770962699310641129352543887380202192247882561779821513594186504202960605664426994107692380961132625593045893032048065551758456664952936960379120181509521460452508380313697920524259108095872000238980149350945850966677760825626879328822306575671911136843633201908741105573692324536259642187610454335840569491263647070324062252135867722515300192214025154449994441803706882944985307649769795620759123145383758434425698230921497938419509081385942693002822877597163436009078416640473049534898369643653303175525674994602412832199378665307856609054965699425159982964986934938824389126042895123384001630944051729663805515413603003262161463613618378521663292624588982834222307323847836518155674347924510608838527317152193645915913922124891548325240199082105386550337968930443573432870789261378471523299785911456683992492520480473323259323501314630599222046473529626156110187737237653061710577640082177215386515538777701793147663740938368157877719268023103943345293571546176680983895076622307994289193958203471678124911007302359209870055662595372957973772679802022980996649934715511474031787194306119163289956034729219277578036171190860561410524191639212049209155297926180147769329550594919876180589516328911998248563715925877960058036173074306213308317289626057705786932126892728342602310618363915292007412785657964818316849060373879204824131774948148226451471713825561418680770637337937179495075735162123391444051891540960198690030085007905341751448609870992533977325180999667316405448046516713661296769874269953396219633756945558389158533443300800875166834631074386238724622356690077396162434574227865708314925350158108693790921437795066571267554880195749651302175949842450369133567097802585184833396658802343896143428849510094929182382408735099970628509116064110630233148972482878864771882022145197669666922535743877160416235915431315501493812193100348798343102207686082145591491406451300351220983853319685135266280655876863500778119337568241942266090948852465075407014269927371099061047242701376681777709068614210091282436752100696211421593590258624163581532423307822351903283641714732394585953120059430788760173766120367808233073535364217656034915014978192976002343570927176181414710659907060734882012023895085391225349740530146260232983745620375462055033394101206301327051134704460185473809217691964471196271505188989166003402648117491914365291405977512255433362064060673727554417349498863299780729500035717746195165290649410515207380749820219475558437077366827214738896276942724757189588484682536664654553567556144497299680708519853490372049127413248932665252413665089316987120877467252953427405374199251479654552202988777280032816896380114655262681998417410676187579373865867386534227994655888151835047903665089649890067547151613423170683711582956468564662444630467953723001249401008352674540206114119994359203182648723082540293952479380873095542188504295234293024891071607381041840095834853435587975971000229485918543720939499449220722275654150151230386938293743096511432779846154870180132737894713683477950708104870485069069206867204726485635816836751740871210233806882623193630978297063216595112447931691616866361792471258336628812087243727506623412389213342551590977279601463271500772189056830929472088456878043317177422746464601385547166512494906016742358951837323364587533380564218744820879519093843913065611691484863560518990214833226917700987941829181513408557144447570965645960840764974124500101188958176492806647433388776937894904616204060292026378359066340700942931203679534834360620523244749688116142123025485298031544891763297283629651155212332089903442181799203139870664524851208617946723855322946399334771478218253081046817698082700504292248751208018571528468018769740275469551815933060711534125664981959832501603337019479003552824830025396918336540284533240291388892714355025935158554343150144143439923604425951810168863432024783150787388228451554321749660557716300958972944757229623556140890907507250372704384091043973410494090187562674583413122814520724752187038611769960292546469127807375627374795105306062976603319196984329943759063308934060118286446784356677742529270536375177024422948133291625482978590390375999957722946215007711750253182158746847172454781106485973406415082143000753883603058278086240648814088732917594651959647862088497728583786090847326536370522692608978969706437426599076112627068039970135473995694398695700430650100676020437446233494289476235629015231294728700314809428869040016396630006608283820991824800544020726703850973297316832575553471889452607824192152381851995283449186630101973281482749416801473942350997392423115574819002281965416245047493710333003636598613774934197003526710575537053862316960525519525811497999821474597457702260993364225177879942677490547569168686681363542696368725904813445059411587950563760911829212719886065295732550607279894710511929193771205333623194247952895801149728824633004750344222182143783034728391422407009433157159553255091675265720144437555257079933049065757559888104974005576709689922869025208956402106317366709950698561248741741160333013453732402681317960982102053178462254450252842999209073563424703959387904311571312281107571099435766486307808836649321835190686472459060765655610120834864342810382907410381654237602889596740593702775657510984139785315252592173059045424537858084367084593351603379833204713847853184666374595866469874984485508286864906577532783863746403421306547060702842779753177414679936645499347395161759611476226904044275210598988571799069902489632238354247501842259483073463043312828158212904868776369335413235747446589580780242967718056359975707636366832849029626268306505295283797364774065970861100231067203156616880626489486954037135483655704239926968133140198007744724604442857378010718287978266104240664893138446138633805699342679224803305816787002466204612204175797919252199862079357688305113954685059942664516691037303326060539838292933984662241024575977525128092206161890034551254602322245988338110031810040593209125648951791743172210388437511642929555602287255880529172849933484814020598558342699448040430808393946529393125033539604271432007087660379994791819335660714431052473878874360688540987291628499967099214994566919399745279661711044723717285019592832851712161844728509580720557868881188501122936817624468678706340013225881962489032423719998792587533931016952633102134195964194851523711326008949943095036467184242179540907378433685994517499781384990494240160115096047553919279010408594483277137728036832778521577388463097532959008731451901957333580155712422299723447624168507742014905705117347278434674076998109739865489531551541287571038643159215789590068111303342817684660851639369009447446621710185462561014945017196061555903690644628776802447881586227954470326961824518635623563653687878412031269310888949816787754159097387226784452358558300159854366405037465498193051834903668801669138633511417893210917667137011213271719160575498531876789044474087028994984816360406874817247385596496109896391844665443076862589273807179291226865330968160479108921936986019741430425183430573670458682320226452272096927239421032078237216949903477050678969122226655001969541991399855856956912565193038831683015533351126453908697458717417550408427995179208756297549222547683364042770129018459507062242194704130101149221804692609713453035526357996491259843568644518967759150573646286190497231367993145672045583109208598645306211765044538850183683764468952113943347961605697731130145150813210077729665369193753042147136641458186232807456842057445459662644078089608110097225642796695744755261201497563421312144582797227886003247960050500052251798253730631530887505585598123473113203657054683469509485962773440017666820633730383730348122568403171749697551455672050429472784247601831112519474543359239314769165799639956451220545559807182712105588351614234512256849685233350284655022290347812932621571978121368964093015570650751142994661586955001760939678813867085289755585669978146938557105895480036922063558212948669368138047712750467651628864546735589581885022247947980189974068761042585322344395394742105606575121103233373731783745543403206867493650819131690969436575493932265351223985328250879562311100585270563987238511907024003317347882198517879098265585340287849148967729717372248726467683536576454649958771158568251724268169405345720685884318012402710740906802850163214791154559113113802584700701607461517811054455549831151379415253672873681415329931625558465952075392868771738474446207578747840565813453316691315632924338778935937365689583454702210978896964696722196419989886396048936250732260774049307834519939142423935311517753112613357703808374893284373935721781837538153140319492472505134567790156222119703726436429762795092014565299911486566137303166441019684497674687273691214983331637141768080925261156914665887962957314905091099371292889626684216685844438370070860610200001394098527256731758421693999021439237820662649049480609795539034009512173628758884392103600952697843645522629620386122181124260475014908686400402726453247554817435916746867462013399852181569945942675192055975775740946940168598376341190743692950300495414497953852277067122604843072445872263060425362193985348215285562037668087056758876897739797244506468530942034708238195293209962136758308327329522586155039766772957241854825871562141639192531702931218408803222296758401644424917528285211516689628593621036031907961098159188254591107651984093140092045409295796922941531032352323112903963732135364000571355748308983831623969810565873144505047505164555278413045177922981055461805018632619548922121361917916391366911595962596939790019443730323542739065118013579533024567210157071660938797080424910547452212291779054741631115480808902483141403445427398537054319297880523147731781362062288873625931192067422886367790859871960301697506332763325385776605391595069781292113505584177907853871926922076474485280269279665840332310500944698229058669856080370120346775247285192375884781894262534968817035163812332545155870389347809820486015929651911967478772811681611981666408217231818546224058410052031129014551903961762421616798009891650045010059951419696684531104804443266477676969645793590512567140294423641240502030444341280872338846421264930581468847758302225526989573985910027757443833138320489263213216118073597854783425751823648475987897206801713523984311708853640701938082636882283830805197642570310748564365000359947694143065900754583424855475201557179453260732481007400569837025577061024557953905591348793632342970740427283240038553036111861171264306258501462051602327802439209594308047268223863919132602627022354737094249547887769738384775662824491296624936222874249562380314546609873054057924110594808623839792637304989989682003251051838544813233885534099538674407628706237804589244001364738023739544393772402633906276181915233379287361943619314621182045590252672729988311049710602839313629769794172640428596270228973082951916536826260268286038591971396635578296217539180966814968940698499029108183638158302685439132078389470572568257933851838806321152178926445179726903971766078389955515481795185741233196520935044204788931387421752066873354526784238012750895408129297215800160998552750288660768573583579248663483246558170404395365617606859723409049144322143852689243970705447715327355369966215789786338287778688346641727878631884707960524894392267940867640851588686155683201877467183106659398816429502705991365438696497980225347677896928122740348049658302883094320344084036001863907412252880934502611401708151768917107337698882032346802698653974507911602313740037403827197099398053016185351503197173869470070687277932617533425251839598570234635303925676835654971072077565092287132912239506411403418016960634256037713973021240183444453928312381080881102365050056322842187191892237247996604541656078252411461802531730020967110463045736561146698689761210850144461435306340145588726328841319452334376836419480755510012444351577894927898733137792126873077290097939879767323418230442516957521397931911078674065090508982631906945987458536753518959968417489253167783059672360770416800980486198956175406255872287448506013415343032081889395807188953230193461313691258081558096591810963616688285331022753751228445224193364695650156826919875673083145579763307174512740584424974460352660050391274280739622866741334469755824990964982576001406921373026214070925798742038125204054502339138875201725792916845942393762805961570872760976773335704798787244028153206646258820640935782632566927319396868742502501003618731104877291101124372200597295975218119698739923429463075190868561767260898910768947971504887566018726039538208124142433330742688774028434842579175969963397394603827169840058551056797854571158991627477853057990126562651380584411089544905318089288729605856846962517675611628260418623923704748058346699172274495283848951772874730785561598805243709050854835869932960992112052454655045926015491831575571658153035879475644581164983781940932580223089357560083194248737221168052812516885517762699115785925260941552478770472690979976801001010243189346654122279818987616067737734123311048182706100726396611033377791491042956899560651322552218363149773828349554630513474704665203847060733557818139498607573947713017456011078212699409889483646092298433455829220607712574184748934831240124279804298766829996499434738836987393228717734915551676117605419927304421288736138756343718961492084512549217050949475535959977436242598631255200978279408708903431589602454971662768812492228755878516687283685274774776283013319240175441050300712831596177446436416713278697930538503964676088027191725206248592229625207896476890487745711136917200453561672887547835264202109098186935181803090698213582427889382039815580007703483359377223007775008037401942123376285274810035266769220863837190026736369976149820557800202983643232256590604123829095703428673438349013462795740887889491831002010708437668692381557781331506268768895166691192544145766713549313533877128168159854423553721433959454418769194835828600205663232237547541007456168101196772195244586291109706350997421496960044274067073622418291384914838165097109040714547231424040384131230883337764511598257036659265780004458330819892505015510594887342429044795716232891581749764176253807843147142229462992556067875233107193799963338136366384008930075163627934924604727617119575368061041143403724637328850911083345917048857952277485805398656117139286016430985758540335424603009712223556034413189688269500264667877174184157257312069111392695450814948826817700516264670916160569441515533509672269513611964307999758838563016479379455365086830496812082650556535067143532257481518683660874959238494406155876904239585084534014220981616441737914764806740365202682854200790568385379844531959700135439639162343830438557187006000758717507250103654352139623240387369748679065500332241517817248198621155413424148388237237841336484531321118660928054646217379880408461206481027248821401981151912439207007716890918704076543225698978215182894225062382698887643018477857084393629213702815691890377759440789682599820922435063109464450091782458509567934636689811462460892418249827278998522745163663254573197214423704809400183788483396362890307073774207100459027504782436021893234690442811448744368564592641103599637831648160683582098902094301417130249505154877480632482493194228181638690978117866266614059360962653857787432941578443550429436484405853893206661023289356584394798320144488903656368471138212754197033840901008472653145625646258326800772559850272520685463090219178753873257818830812182211096287631431475986448378922453798749843951280420104336663724207074585023811628011476338762039516072884096246324936077416498547094819266501649544232761811428827233349831745341026283619394959413703284027175881960808269136055688667176029827261091802944519256229352249572085194016539767675891953891654770937231085588223055072772591347072681867309264666615708799387289124809847509252012271617933010165674176743435857864360243189276759211305897364769356375656284306304364882119478184782526060499378490112900542566953802492158213235093299035071535550257018322565158492785320838181298920246015534911836299920000287552879619351317730577446696919532474392290706222903753901442766998574246843696766086610231785615268430367955859167296816138118906808623300723744563769383726904567630323000107091347973549850318160131364386002228078572405179433255536088005190308085261778194414229822965555675447021951205258862549372675843924331373075735635436210300185958446751875695803316688831475011747036669757362573289284842089920037079042507328770659759916372634887019360393931797054281934299432478311619023279169823582908015330548819927754154157967315495242897384508652089082350731532564693790429605362422670030544752688734380558298965710953565059699602579019855819231026929518529871173279840891690657508206237141326033536663635510606704319547526608066956027549942036379985778610745217896792461204650348111727172912139734305537428169904663128125291508643406105943893429330719835247646712456627266574428538332114254588777281521802552024483941043386426743587550039791442930625774420880956710907571737043222534191808662712324495044582619903146304425538702402180341099663784261633731588669972918567829302544354759855945166250765312663825027025123306978820021434829074536839721444465503329554148889885572897477856140729907570077738380578964613836272504387561221776050485067514714254419672447293804486526973151205891662257169479840125593874897191668929741373864560577678954018392084849948631553004039811325690110744855602095117894898620512760407007999692250513602252666895771989381393001713697883965711274794684934020198133485578653680872094823607617188272993230312775592261167339577347046994302288187316180655474057187154612925135414545839379055489906826290640094526431197683542619245550643638293060477185019167204865470246344656730141720479626280618706294941896092798503073551371037431269983723840113127067573412165332115522807481107855533547488996771609497786124710718205114058392446483235366544256155087931311523834653154374308655683410616733814687052732272722282962236590172101059700292792634885424110750579958648507795067152575696579819838400651523537238331342618128550632824792929137475813647429009815858853928381574398521748442412445633930877167838649523002968547151514920278593853628465376999282843605554274449035642224141237151029475303325790859534486902903627744573949028065154787890563545326230319634594050177954746017136837255823471209460370534373485468183542093982199391425349881394569763997470249639397834065275108381729475345391155256370666620361644616721286722809680786533597150023986785441902607161495200133557177977272492167789565335740288919337467407736729878691226778517403903390889466726870590883736136960733773367609208470159074903930971090311280234674897891376118765588428044568105407474864598647228056687736156435026795779297228521706308047735797684057952420563033271267781984431210839565806293379440727568643098048110680427932476781419802795167810045679618156912213281303882884462892364574552945327294245422514509899606120340710910620726416064572431196405911674837864251844510608064513636491668776469991488043129311186277071591166201707726648903384201689346014562823844651741330791555251415273927161957358725625127379064579580415001845581074151714993430166403841261455482099729105583352828754566365539638602939110268144628060327710147846143328318806296302913038092727565607646906321140320935583747170806095800573114160531796439577489429909340138684548042156652871852988457988534470800892417685783718722775971991299801462433117835151912032150604170851485377379655381313874025451423800198872149565313394990233273569256600861591293663720282621897152802746599343488522800832534039498923605873460978419363838827628850399798649702074080946806500688852308810398175751785988419395873452986591696020220064984469240295066479197527572461885951439387882144731125210607686988092431503061928001423400965887185980477261514481740308432168752005082431131740523977720401507870033869033167791653301835304557716704036469094411694641316828207786611217697355386062864630812363808300487250776206719354436404014683131021964507788331187393136306393136963361232601275754247648338955844231233501289806784567261939111367695589024198542348279829110179571755420962638559135914510427808041725918313629658068210074014488115383015054261162672637049006937752726235628361140825505880821037897256620307320206547814036261107553312226835688658121613265861263743095958183922570752875632284405087256956299921315413302634636632898424181846754700826724320541121446890383870927464315184574886756654094781107170013837317652808361646940287841421229913691065004234486118384105573577213303006786020573602174168017151352655769601927292698748031827725444141484819834303889042271432907447502930396162983737190132929658482135895672581788219495145986305438591470933621590680213227592220896125277166358945146380380791675402163826919399138713751617302400259130498484047379743031193369477183066073626969190508330199830987403244653711771160493185689364312076166744489242070404796965201369258665297014990322147749031066870114450677806095935833422278154011519438353310894872162497744848606396974973701130182540557277720877888491934590214067096092037960876223864865295675104394943465302348581319022275800139758871454220426637741671233402257850045503107528898063475072995077201746547103126568639261727483365601916983097183246811864478534795204729608022178036925687903331027565747995379472965894099241287482738469315613243695484623623817875397402613838315888789953825843358956813706666352956553065137167485105397937725501181360912916148255222654510288680136988640931241110299676175948742587607873018664078973949009576920065588879950597380925819159193649219518244227687776761341563088615265066938301741000008136322219848828944286786077259837811073492296530658737083605612741241189575183926413395536266717141508057750439672622779753650861533599200145422917176564769608015848792324335317135467674238440219806552937286268353850186016334762893210451460035286044206745419166203418427197801302626602679482903702866290465812044366707156530375933818773914345043879177968306406553677044948188941627285686157657261323193310094990311609235304373666949834545032085870251721210202884993464743128816756460926914224387865230524754218166601514774449315021942196096259224202766701573818495247709477573367567073282003967792192100697949505491746729737758785688775693170099223954414452236310605167152915129975470481205324729888166039985987433495687842447390760310301192218152216361476157001446916029445741791470570893923620133807799394288121141658872416917686925567390164397499049876343292421593134601245254053985414361675034973659124577365597876327382347752603965964094832602002216070873650720501563578791471397871551443252213614692403426849872034666696286262961581790884303377687823722513860448016606880823735045248780510106403659225648466032224806735046220253863753241365738315031395619123207007883074226757660812913696057955493965530202142816846503256533180395387383115202812198196289419799816930603599795062661508575008989413504852862905620383362130848407999846812453327808646279348203270099554718027633869787849707562704551909124169567552350289969502575429155768509168819535615635279847214254863073288462366605798370237448559949157945020957506702623015865418488652329371639291018827260455056671119422269543121745224002892868842264994760936248545776983943297783709203895313958148781733479162550535421675628489747705382533835043000284955531269246465165950767485848703055522341161024812094478211273004660477055781468861265224888239271126128706084218803207093465289710738921321185999829229925177999634674127691239953071593490926548707669039647252420802333954310041514816425429128101246927382562337455221963912124623430839498455550490132429054925904061604145946082442291226605079996567611192721506979666874999758741869837799094330403923191935614520396076311418456485062310917841729171835273763658479920607977900033575364054773635829092430303289327583014750371174956818423752484126146938403949880348040732775716766431732506638007442773366444508558504434595177519633878937401525030364131676498486994892194421837160947409598844132754390760778496887516361001981767572363395527201951405151218779270635915882826271438295355627382445283768919867542251409200879402817472708713483870245814333242129788375961177497877882555953864801046813290740649923738873653855770751739402734769072267547984509618065675490980967715604710394739085901881153957354090687971398704782619485256479475247948247118433385548842678191529642217768188423040942028012155495846691999088298108051081344902638301910887602186397235137855656253137847711085112335222804659983361647573049633120695551692177367846059359165096834838188544685763696425660808199199127418389924027091514338308846175977558683328992367196557446375502493234177813640986344520093271575645899137057007511078423057444138810710600531706739584909862059620296794938121792997274947547684242155727356167973967822684135407931135646861994185731270039989343272827371630193346323079138411810904922744036970690118679192156829122874839911060169363189156789911103122167169349351921200037683878199287118238515789817754416724013882049470796126814661163983408565852679061176314469269786332113595092940304852271235809976874351715811505232545289539782031678477516799214820895968629783225030347841969804512463831837575041351017538653724211186331407796413032242787023231588509794982395695478446967086346475957307160755702921778655135587482793326996594876002371442891430618763028029833218241881356203109812669796163578608679165950224171092274348829046834677812353583822849911642828798064324395785283096454745194843782957636495035342105230812575491494335106260830886871821345904222531837600908156830275429488993222214166696080200559694637611388422513919432851585049328515814134226253286083016846560572295618433129922274480908581347132209738246863502188462737455605451590241192355208894668148599216857631830101929811411868511422166900369484113078175854550485027216155902761227298114065593513374066042951133116066234545417297684885829078883967774175125998914965394044120121555104930948430422460476019175232198704144926624909663512837164357473951343089570541913476864606833579898735373859731669287664305645450753372806878912777929101504678511085892116918822207813256287518451596532600246620599178076050473382345789457184426898161993237699540629673041333401236597022965321510806646839471402901117225776379691671631542873322708338775552988393800448224182517939289245097235939456401986914892571600184071456555897408463135826831436397579783127715593054110956857021031528102969024308956755976329354833034016399177403213640424244500446045498915190512813312242723388686474511020830365027363740388307392367555216849317970961849590713133124085844458906915280710607159587385157067915659341071125336481322240936766387438684763358607277207179864243056219096870671943087071384136457353170410265580163584781513925412655574632150408701991014541062535788565829577977978786628524497291190513191440290559640579939444953314885062398533080569532161513328502521265453640505861052908573503349000180974171061319167451649596318870920324947958318662045114421462803291297322943368445329526444518072411195504860994252201696171742095778493023853271629760170490586562086918730231176858144104547485963452838740797209796208740362183615813393765637436894493885906070171573615179394899853311304332343934048145846296988643092220584701119651518433425129521361123442776065667715522262256877580271492539206339946036311698505834423504932389690272647022001765052194994421738576360902355221750144837586299775243862835537462948388572400792688233983787100028507245801206414535894246839459740545602819704594889524929882863178310485619430175132627481879638587186185549759223903306977639964402980177474652851910886330746555766636560132748572145467259868568709628128568277817034180821379366764057522052177101967234791055890040969677293068156596475819065021082044416623818047450439172401754241065668816172152668625718567483986125899111197109355299782935202179433359941735094989775967937309024206075814346034987704940346236786800671044631022514535879877672985521785981910929129482691668989885588927739558009988730248560084918195510771760176872592780455418452367829889889680277308533912928489547888663505739549896479973078508814229842423979522373816033227425270421180491573634332407501424296990735677955991363710444910808115463325513251220508083151111067899057433026584344516658955986736664904773525212911473567461263968176255532417229286093124696413983828394195272616266006066299519736237219479909011391182953422417855685313260329595209182334799777975729682867050330452787195538038393930672590593701611238989952314153703737851392021517413645546033389759408115938534751678975901157617393889664574930722632898257078532527948210564629196990587613089673634128675826252785478965625796282566716199208624621543650876466733060142084326156176881166208620909007206734756011034199989999370656453162429338137930549536583419802825184271809286858875822402539378187280496825120504170371703533551928977484358123811030481862143010762498059978744211753737038255541783782611903621564950738563533445651985439485695333942254956872830320025844888000834872253460843527910501441831444435821916756693050957611439192203897590730679361188036682909105152767258709844784489181886630821150810193904387814735063036352110806667564436269648349494041998932417252930005598662668406372016616395674744485668371811894563231582192586841963038409293224848733690323339417864441447918785612986964097726885550493209414525318248641824040640500717001849311310047974279674349481818480851660935388491887943412584208294920659016316888779532861787888666670248460853460907698045146122798369292400589948509353851101914872820670335083541929170188213703185469449319701556499506155442279765100690168364174070642224254328888954103795070288988715300256835689804444266127006884073788758648066584382938613566749098871893819270789477617700108023642943396505525452997375692796148536143625922797773383541376502125190777121757865132797845686159051663264200260511618345704426416471461124966536865554518667247710571775669971582782891948071062115825822931572535075257196835373654322409861538040941646166325968925127930510290383089941115800121057117247081463093789271295187660034162427956065605410048600405536049747062978155449952836113842914538386538334280105635904830810614982542847262514464736179417745299898267901912593648388193427370302572685051252081166465127725642860773349271484601794464429428787332799838321005714969944690614044474085455942458546233779522533655000193814761201606646661180788718879021970022382350979743628833257148996527237672044868851812240131535127528102664248880829293457050504355688548011984681158819888064442635318233783733585046965494884087214231249071820301039220100935654546196081978038181654344811257007493354268078191406335863917750249351155907497922310615161887722637213746843771727104429612923827445978451216338580129009620758626401913128707842791426474249660579198843535997222489820944839587431370051675143264820746074099788750207939981339776340226570353249644939935423892186245478067267504712997522732793143221153064860868358401808937007050915252904458637067979002495122760405876303038002901430884166736646844117676244583831243383354579947252810357269130714439632524097574928271654550702736097083075410951092013788724411558918693313776010065824962891430386985413922436999962885250018878283901017402950163917015652339207571856798149977804701373541507081410199919884492469071296450050309639245447706761197714582859123413224742085926740715473030303928280492928646847981446848015528502394736873467652211113391725435357614476298214289445491265612506220628323423409352788533271684898516110540992571566490522449426786787336276381435228244904626362993772367181902371143128485445824989137726701810342244394715959147472876278076459409675033971747190044654927158646623014204231500272892046101995493004191390095925235981688134678757913053548093867937257859214821861162052794803319758908751816530919457573037461123667205206783615187463984923043774303143974433311691123117244052389208873844560819752055731899773287418763403392280289270137599051282843333972078227731380474986620641560046672910911385826868821039399755476162281294712719770745378059311064858220528198455090974547943229643470383185864089818915687840893292503946021848486689071393083023133591169767072542989076747988049546416323637284996095574746178457940822244653267075683950255220780276333122251768196116298738239956354067824105078348334392728395670175680355313916023246937147582511928625230079823907158042242898874709150566796070960923025788686603115766965477728765884205495082111206687550555571470104977467966975610482268504376078861923200936427222404811310345953042493391886474958956713271019317324948233495230104787222752719901572510297696931074008650932381088736187195452216323051717703903627719058982587715482524262329545540130816941359065479160053145811589132103723368767997007853304531817786830169182365475249868703841459018621189929366716397201108279039353815433167410428861748000682941236038093702860632984881800919621283136797427213736351985898718983934494621491452536173973986200600342701794572039753071878714775042324755948843710416567538944871441528440190991412017495723902281392585114323114849970075658804318412950433459903747514465467975884149787376178881384642004622798742570147747153670338855473138783018409786383061044575144487430394770402332442814957300570094709585133467782606432325972616560303832411629245859537033470245125685651115060251349961882522405961529939961353918287085426595482683456819914393938275010011976997652867721492510869949619116170689706775478036883341191412929879972269582781755674542251871251949110753347085328309519238303010880814365823989875166685016089607677682051547304567683555275025427314441526446658860361288733096436345710530335854952846848433312784943021603306673070280495366537983009652286192785138708843433182470626831602716476773845974155287153894203035267392227037215631595247094895778136986058776905501930356255489375010956334517192369096316033863569647883115020099932660260679476303413993272302289087483540075828983125271145906399341401192295678489349191514160082493468791258722070254215434463089004063626595494994000529691969050085084785479200263890537582499480720641393566205074373264169428446542208087018503966870522710395379967818569307191601537334117431614295852336272386716230309828432442296909478025485599120274416573894151889414960321426516960658533731648489921385098200174802126644385826866327019259123883358803833618875490322098674133165101306639690426055880051679812857741791523249245246970298110912423939229287941377977048266519439893377984515545338803498672010884881203295928827874147572004481629730499609109455900689990967319428949409167092602855951067116269568401120282901593615704763616986918297632538665581182132197980986928698267410512720509576049809893543223123590020100696537579325640105241089167859782562633594347783593963716102182333800863599020399994493886174462404877242314668554068807445238016039275577804395387978045393478081012203959250788013895077033333246869640340523993761213647803914888601804371811247600017814809486538068412943741864860050021498509494045693326484320500200114706494693045055916126769610587594460831070026854674033595459214235609059694479947884164167865909059945857212725275331926202200628946895391145062049162924928817512609027654975557379594824643683418959871606060956726090788560506049960266594812475012831356498251642372561318669585257204571988552180081600219920777580167093576990646528634401991592269915820112593878743307410971347161641464909328462389156300344186834003384711145102559654482625565896775512774939963792029885067449010563747704526969446960807948399137192972693600102157419188806718521743686553576471940720265863003863216753520966519491140034730833244073046641775025564599732134467599154323468184307876088876166134881316089230385858327411862065579309436009289331828885657817531516352493666378235666323948349542575735863845963532321220909071312268258691764519730831616393375810239860704601911659592955704069928605820781440571048192205734009304850658024286331941026640547141742046484280546903283844252212385592376511248371213080721643215469005794382197086876130041202319737716415460213881248299747617698424882717348014514696589626712358794920307667621299959379062131174951076035102540572209807907485343741020850480963223392024175690702843792993841767094554201706799782554829909115033272882909403895482082632100500637626723146938082668501760387073469256222703079429839557591761055768269269755862926386319599779952472090137268035891255367372257645351900939568367066097045499815160858234956282718833476798598858215320056929026083572110893828765781079418272768388107229147626353055509661724567809107767849944138004478816469843919059666563161466617311881735525661802671930058191609909720847545473362619581229140432912651083630870125184826289904509000423653497121386725090072472169331354583668059631104935782810033535930324167231764307666043965207270792202270785731311546426356879123844255272346426433151001623766928814744171198792735316606266212516684760845832035250452930488299848095161176769048663513765352936430744359143960104859280221481550343759885458668171117224523778480730087890772323806889207107726153223557952432266453129743766203887956023293998832205390502310815499688486244108298492724242217273480131075649591929170388521444403453573517325145373493279705405877013363263368193976685885260222436605671626996158373960516084122554516276183841839794380595407936564568955355271308136311269076025083466278440815708365096158950069130768140542708339878207155248954052808826649775753170364604822913095811359803110849988557537111654397552886328109392243569462500195396726076250972131065119503809205995844245623693232947469303987812371962786355730727812094652946789832188854710423188651119459093362062822072051499898510728462543184482776354408769626480315775656408094363764625621906860351341308658503283145369282491094458206399488094775550232635325076314503751048652382266444605855549601968954793855561782247262539976237238909827465300593122755254218406911037643181926591567412991199332501368446647092699226989286830634527353796687371800179672912710172188693192641886362193524549475125987851752110358681582977721147399058882846563865785779500019040778045406794075273036216671029665281434461915629806904493419333235752212029832962002000885762646216905201336053069332903317590030535734862930926859872986311715989212803843175388039285633677897257579689518956122283530613672980557137824413548710800863683908539018020760734793016732800441628751693141627636010502285585079476215837570476961207446682663531996356308640908393464891053005089241779852049317773267216026065659071385540814472103234425914576424994345099441397566430659473131549040083589721060894082327272236403617154596342905217303253200641423676824188241110289767094039262962665397486257004853958096980887992920068232797517472889695552161164225775255042794248221443694731246980542106472997877737542184941393520723626042049509970495379433273008785110643513105889534965863466882205370293582406117958403444506951429886677562532481201418796966336741680439423199855090527043230383065105365468242632437195575188919572566134845881944655324512702856558467884612868231522586230176329338348719017844690090693291976153787655169155021281315566821956974023002144348211592969262046064919440673885310474413210695583529119199258521935027970336302621936795210736052286049209042779814580419911580462595701546942810213791107148880308459178172685440688674308379695720593216348091283008269700060686635352580481082863058738674239273933407077802122795666757627483060049231455105028905000880517294558931055357879966425735476244361189662770418126848744451358351147979382311631011908453723404668005082497196559892635128922644634728280952956410621640074134940484568740597789133098115342934314478478896276936347381516740120456322355282513669687844212911027037957041589978247526319436110502776916415125314572771004467226162943604842429418352580530841431968260229787652834943031067759076254476905783741798882470561714711532787558350758954804697723503445485854726691169418863138290380543574170207201195275844437099204828467809016259332296115820537203561276255102450572751727501768212670217825994274573123933443356121509338981050182472568539573272620686460658907444470034743220183570581727351120980514636170251067576476564391049435317984206832085576432280819316485526033435380053060896406519559575551938854700849823118614444588025663503563971552659051159924977982987930594368635607074988971373909582118597029758650456084756827403744492626155278045164571012506339374561460947490106932100230725237369896238249047595911726309205640146984801665230724435632352423259943709151392755806056449797875166269922802318690145933212757986662564896555088766418041029160852190608316695971710714556257186851784849415140707572773185773480935472276488882678557210512353352428707567380261601105968475695992269711760464313015864335050697178884641837237762189462310944433636733802994671009471333823978965290514378971913391037383185194771148817602734520910245092968374110766716319702628700661105501441973246470936452782345750614083226821707199753767757555162656006782525602454202989677380596491705632744169438481115685468638344905224301203151998345265951707743556642352841947645388216059378935583394398332303169548010578392020605859741289477256167774385701222775189099934735548075540676953976357068764191755204160813289183540269977559865026477724364769119656209324258704396800320269950171302570501138353274213062593723272705390412909022420683501910407563175764644014439676715998457244745302317092381267439245978887380878369929411281307331681266891629499754114508495384962135746743100812660227964897268427333657123430747014488226606693931732175460250283147976278370730601521626475730136003156695028292424543959495085128172632345683820587354525607852012126867335707528409057629354857403835140071860327222561530311820782638052252632019816381473216449848808606024580694375004428315048895981715774790606298011888610541382920115326049197562252413484047595054109161959213682164858036111914733991586973610033973521637689520785707120541865506996203346185230562079773482606799999139895986046177433464463515079634114334044302426046316955797946525346756601278121389781071982916765248694321532232882637465198196880414786381484199670132536005539199583173365246428421882588439951526341345858141668578693202403462876623153004947747804164870132414050381435628755283150061325274778197848792675466346619754877142299267401720696959222660949082317974063227482589736214561230598511307602945114406946286833948048098030843175465246619375241781568015044246890189538437316978767293013307210025658848867781110065477778936638816909703400032510525137277804791321260372739883463131621176669952563070616090393755340467035085902608056556957678694350436222846053084204552924760903143190771866499794103570845006766853017231658864231930022209580563383001135929883866893170945651390284406762073977438544800457869498490654141377058417024207260912798026616120142541122692102852139111829020581758924493906286490554712923767487482100086136358674132385943596670886613816850001302336946149770961418634770337945889893899585800798148663942680446217132715907313291579958511663825957487369680680364422419144431928388796877734589947879952236848769495498884988865878697825859952270231828912692081429375949963134031205185106397166277362332385295846544708124301262049194525901264263694012917549828293854190541236991426318818460662358051054869898872268031757110403647539503612360193240714805784039823050930051954565729320355410246202550241073159922582872811841018815107797851485668075760118746266307343292618820663444141841471126728390869924006646120084087434405119740028333130771394342782766860730849987836085649367585661475519815095191761444152916308670697920061996395612320701026920940512009512877754647130913225011072978935620365404260422605424919317290864925471457920198683919817940273598372884880101090922815704511000845482614330796562947530624141969317741517249623086400472395717237494616525093391730680736034255808405782118743695886158444747826877030697119122269045098095588476235088029883722880741518383802780154156812740565096839234945792714943537426628891712503378580246321634214769307306423927984720468406850340637609037817674373348285042084379723939355317031217653079422160896223060749572240561374186846651830508404545634821387010203461660462532173379248129798142180114855154270995664517485947352560420563270527727619564460802811805759186350129904663981909047198573076720917593191127838129501018244644870497369686266744906940839915125427136924857094490707405391459431099187637933502545443541422161965401808735679331476914206728659338544445888923961388268957840642453671177031830034880560532315832581294477051420856740894902723771957235660778654951206755000455755204407882310042087277796802286017773156620413484905191314145732345516642944010518433219115643679298439126025098949534630378124915544093175844590764576462670498633645413748551199546535402522685917798164955585979920776881375254936916013287602483939582202582520120858875038920708477931728609663252282891299568131060552906765661996300147988132825256283219811011832025979827125951617205882490170830676644364146589715639237960557061898220906946612288208578056520742841680773095598998131020243178874556562719290294238412272401215200379532952722631981017747496300563970000907257990921969701112142443899577925220034678061071167857589544501398131303791920576070233863024148892646099767767008945353410727192129468269757920716866524882562124596888886444278959741611423521085842170987844959261863939726771967677463717730436994712164143626096675196747915760600442498296050644228749723752182045696920071163232360941555799237051800182826798136543229679521872891139031595928135698116361592840263758843311357253339698077804041718400371020469453393210711730117619112911005108482224137498457636409575089559713592159098979875082746387753956266517902657380433864529726045684446341061869963908018555630302806980254759580767545490272774649868601119159100573508592173726130579516452579350199479563651342641370344931904746799714820195911669972424034704885391572847536474075576567496411547864911359972411597253837919703463324686348371011353309030713477815768828440256123997026789344469406406108149192131857281321092055613786151358218154579883515423450949525193570833917875372011778783094093003312374508458745006877318015021808961944271526502604645333943811268541759640676584120353164287069014842712262254848697723457336112448722689814649935414696360028874772262317114397589172558929261755597726759858651215597377137659904722952541493249657559928129243145380221246237826175927670336686940189475312020980352754126583413212613421443152395259498295023194433090664317943973545172278402871041552960178826135434686694937743362567469486538655351596769583232449021328717216741645058076152201189769541272623102682284623112756354551615415832271831476231477134618807610611375180497931846824707622287206712356439457051449252951859690431872352783290960550876891395470249144711702304043204515577505972582336710424639061562951919597779475897098377539272241522393184742097405076620038533524370811128487693702542811260994107667106097441238498084859197183829085307891891598550232728499754710266538703084155877608122836265767678014328565068774667395438690098437278847504417447029120636437204338585740891936081059536059720825104297530826192712264269177837508403019874054256754830588932921935028223956549591274819415069212161849898102235643888233190159617129355239185037015381633021253528234545392438283062133032751167034192766043153542317092764084182336447236420623303324815315993599046504495663685662734851136296615050936449459519308316539050652517323702196750081554253898157979252453138125442266921435288716585323461462413436882650813715925138071064568639788988297332729797480595959848434098512668072490812713946928697937680098374697248235271940085388642624357677030299087661092230313292747162719931653884464411713353344834282802171473760514583286667768239449416582124491383932751260044765672355714914854734442742599651208196867403175660733528225854809615021970049309837338535672258741537195864364024635609083894613958598680758391417707636037236000758051927827339223685513131617001402583632194524133909882264286367518531076003390205613559498788153593179034940319323850352988790271144693140563862539703319776577880498231415171640199981893792394734064265475822255380180290600941824407626038669936557886654976455967482734014786315071469536004346806856629646069274431417228380229730775555027438844296567891757558615332357785167797234513882925736723652779504548277997695051405652299494717590776015885654776089345548547917819262839751200280664469351009933313676667551068620871514132332249878572746230151025712595919396123151035785293545005291319315270074555984924932603109352696646894998744673200660364720681763726103549159140017550311888165862855861004670510274915795957187926034025360626090549668264949951947852380449330129244981182627394967253600358138992751826877522881185509173322179706397425503062754344791259942292099950700690801421852121048513241738489041929579027676035243023812356116720400162834531251607681780846935110426830089298402348251924448881143216785043750487559881226623848129140774737744079696885674070822171213844490510435969983451082583864169934850054218570509468013018628678377005518321593618603450099192251805440903111829474418762408497709176973190904246832896429781360572020446847697696079227185538641252253696505381705680671039381546604933344826343793591235884811557331272796866773791241370298918222496338484883054945058232293044374718949391450574238792641709218210090515892928872664325843191901806710864412459252475738121011043084258797594359442169074544463793115061712843679454140106028421736767434470057722996211669457721003606732227210742490657821527295833600368432068009105629550889689751917927633533078180258029604014214356508731288311789886138765027616173691904079620888188759306793185916845389806020286465891316182656900436794061158498024020620207984147629145734962699680427780682339593649453225388838468071170140947872493364201456445830705421266698529838895908719621124049437861152569437541104730539799861581085612790645976413778570886944165124949010986991701770649363159075644849406932126001356066695011278659995181366158558084046035947924087133033494120667435974750618481089923814419359503412411939283854025464500691721312080707306872388731007566012469644507384867335136190792943713291668036224086471646800795833915243102480104576128609909554861640428503137626010853343313317067171460889054734412849319785888880736952936379839283712228292854943100230460989435000152574701867060196882741416163689474004942476423585366293052815843195748340673694795625729020024649502150749828989742569394848636400444554043383999455463934972752503208047010092941537677003229322436812002926160083445891780976762029847387019621151556504066576907749299891352071449655464111630881577284252041597179238376278927643485813368256262205722107038010774553700784817489260163171212757467446785032879502106480437121568401691582762730521834912212478943633070470669171234387717445676503662794969214966397984172274457027368615816445400891603569258786944528082401881651715275405672564604140885301762544408088418573252259165459508703849001827398870323414080507749517264897067109152001936642367694963970583533075660204545995050180557544917964365674384978504044548342649055301068822705925802015207350668695777888682859115871009477073867489307974072073071290256540100544936459319306457806303025524266644822491897143135156797722347143041056323178600358875359185980522222725462680928621225039117347785619840181092899629289134010801206771200945606455021226597283186554384603118425524431908288616761949686287241928770356428783739200653417355318478133921528232942409412425037889710859303912261453378076872439201554466424044665057635378868223951538624528726213433161589207064270840991815142437564713242687120111549862380971888665370784815062419845369244148523189084079672738577028485432585851383086046771389970962642044604524803543092347993280364691801182840661948772377134886262061020245916770038934698031609842667247647682894170872690184180007912007485948686344038275648965913467964156045503195398519696097749890309133085362539309775959864590532241395838873295609608973402267124472589034417595616304834229679492261209616651547671451110045864798915334490261576333659585671610732358200651450012736980358389668662600985992667838413334727460770811886464255495787048140814345488273855002064511074232067628940782342567441141086661428716736806134335807409628705824573767267949283130097751192377638213558103711913572550680363221950969504010975531057209560655485554589633830585371620556584356303159903646687758345881399446704165739688816242023453448754201399375413417348802339133714497424771989796547155808700692504017971479612341819187177762610989889489504623961861228344652303344082565739660537005314300402420323977634319600477564694019596465178714445037903781589269865726908582886314275407223588445915392593735180686863730226531461667744298078109450075925833296837798016840010771014697363790614447541031179923933391800162905526071923378001627200266220488933808083563902240641152270936050019951197597345048426524287668624338025972928126359322524150554858311051456274378101633271552645843810346830770848912080591336992462678107563089216565805651229793903828287275652655018824327566123731635631582483360150859916944752290198159739505991703287471782011626202313115616774720119958650898332332852527572167845273087244574815416596607679605271207247154435679916062176956169220815423436012344257284659929216262479320148393213649421164447529424247557747752084804062193918911697867504740726656871999511432630279678865122852000287158666044352858819846358055021194734554074722359357215920575359214860183807660789332939620828835000068854963478555587954732584279670533645821027818842529366767737224458835611868691237173258416152703379051956272946671368573679924062100604989649883128204405067870446860341389022262725767127130313974923860246183837540106054923112579111182390362126181786230542670341236119362660178782598560018562711198893194373107417465908214500202617722678022964572120565031245928500215419181094495988955312796594301655365184694418758249410592321237751647251323337431209694013419722048206360472413680487401717437290803024096703252839755879938292337237943365764987114439759580139969160699841314332180965413347749868960446080848200131149491829655602507491373928105322399572081511826469845264320441810568721273098319944565271700168991935591162895841261929018361360072820213743927052930334068601077436698113353738809614528848278863366948077927199248517938591560036521521738537463798278322704487305418928360559209787580321289479848924833137008239790008091905165619341412796317713718982342154181963765287282142720515471717459669329090938002617894854512089450429497135638851646175323051999299232196375710545203184420847378164146525093131378276888581010337748495829186307627385412967649345324901181406908046387064641405819935968901999079533573041281416951514550894259653253951129366324247979190917629192223827280369016231192084243666048451068729771324723578700881034352467849366999467205497460983156425170567316887461821199494604411271288158365877253125159833076408925809343584390891082712622231832844884514163378740463105873995736203395417672365031612075869303796506608775338767245928833357398746667305952095779376515035373090690696180190127758747201745470013181277855794838944361233516085762203480704656198462656592957421384785164454968513348194125366484763799910248367443602252615283862655067465223758104697862027599229369089305490961252195795620806467064929079117271176534254733739864538199451162927649223136259720820284419559751518875189485952741648992945753876384839130840003297296707456392946076137524378544444643059532603402150071701372548903061873547754116376096661219412538820196849862695354725295416423741158752992477307829063998085486237311476326756084353747475761449348386226587687435200045687016966258419891054098376824005791811591155268861209843394893172173587078746314028014413474905258908839838247504210807274523159342300529032666546075260625466188227507993293392849612488580100943704288338504614140265961218612246008452420871803456709059155591020412124902578223817286672010628104993803755419110417137105842597906064736478771862738675345135057153937520547758262567670910208948469056004606712598476628152599950467250890745011503641209576082616158869545498686025078288376217504437489665509381652990233752680591564895744131852308442988129514461411407709288896181093072706555397170962665550713683823262447030932479801628001744074413930956034655660787829789157521967702552748734423801840065165099969947047253654538007981105556478817765933804931228624956106161340460445955623601673827716735392299353536091321132501440237346370003167450529701994186229603992846557234610880044462950387684255882601341371931086414068351189380358722941637083552815130594675271918536097505571351544927390159450909305248426238300533961108525284637998074720491368813577508386743979994230481634158028317549370928619073062213700307402394623960582799973313747306728280099285320175494097409390403156239442024499310438586174359115317042008324575155022387070386368865066922214648188562774878115443856801363328326714982914213941491571930034669002414384186024671699141292473996197412496389881280029315776719983444674302534156182610981869046802760289993798328843334816982573857250280924542988875137111270901760529982351214050089817648117975520525136569807038005398376525499696449607635178745189426960157598921708795006562397164797872907365243068120757558346621001018018122606526048831356341445404014771458645264919161451345983212801467246820596438577225994148438491824099618102596001235863926628362428590372758773554603548299376855938683471120518270121615978497835345990113718641670089157081074105721413595829494082349205178667997765714429689832062094860010270459901292980303186664966751212489665180622822754384251049771887020132178081182807078654048213431286806123312259568533349239693214475954401163033466631336458990571396463729049614528242598396263038974147058904947763653039913487831263462648889556972015114193375633896959121504088834375989846264031899809360134621509067440817608602569474906500631021513623244549657912116226918815723502001722441080144372649111558717118541951162118076055025821032887851637693698906188048244473625513261004495717510442440678247474078610847413288780586371727289213936829760936451387411796696769683667032262873022302673088826779408797788872302978366796821599693182520914748083758566802365646210686499613855171996700271630898560203305111364956212034523547256089154601214625711293649445863722906191860621839019676392882578610898215521897068934448436222969794886715883307793477756501220716027825652303559024750361106781201521017330554251862069829378173201428585400032824110356749286723885634905836128763342675199900843942901525996646014795988174020451116275591561996961433185785891877252149023735404343851136450119478931332329495363759675824476276248017503689772709147478028296196953315451060101158149583560412983012064829602304357847250810500945744012313748146541104653654148415842032303265444916545771904340309918165051644306631029160382325453710067634000018542175594865063643239868574194779353995293416351130712716398571979443205145762531013970542477441007143201564779413492337129509668858482702628051732681033973377038083303827469680635161411609910884120354852361438467159326814656515367193809420805710275700207160506156362410002753600346465870069519533519784197102155573531882876093346515384624088631541134269089891080403039249708583729017589801450465225438956102154794349383551213387987465162606819066846824809757109382040706424806025743611657658625738053634816375249859328666316272425590733071186655964295919143586259037990772489952506744703228851502360795025549169404691113075692670153513552416503721826851836397837581762205230532790963339359907015057622489459676965885768760924914063839796278507674267782680618612179698507845370197727186538603397152948288663997563371090641813737685683972740420932208799218139194913949717384665562441085124465250271156219834135457412325183601008342134199466104820796236723463236618580796854397484727482331307165231075188933387977576723117329590939679660957260950877235646574776147640140985648307221882269959132538324556375090394792388289910809399874693137019473577003063190034656863157900343194539925890080358141778337873346147057814805138924111803793269104654370168140530707355913760518612000390350551540236351487151339032381803164714575121081797294752660259130973671634648712364827580562865328474266172412854904916349475643228230598183432467819518609309528350000419822904649609720502208237804830734188201560207155412430913929978972679225157908638649343292625780914747667074247571488720805579638800074133845485028239166809781083005672839167015019936231969731591384201909244188686348803704916749240094997495735259335822831580411159698381758448653005897214342874052460395470713333116467041532184649892038213235263995747339495895170907229055992961008425025757310063346846274864272044833472262299168781593506950141660588107569810730204161649742500384584807495362295020338611538508941061849941016132394268733855718410635149715356428254938069664990787222731492988506002359268467217664766796827763758554047446787678107667058731901586745148104525422070252950667833381228226533610212596648836879591269617713390499419175631885328885592040424139740001991832254982380238280641301168557936901004269858253454766959425787449984655644293905277678489896702854669940934687813667350453713863288288808514871670521481880479496389164598519559299782838399088729214283265729238233156149018973554309559110412849412118299452989233296384219087708642741761637630268315207065547325321812575833051281821694807900484683230267211096001738685249312499769915208215841859719548580181078360976698854046186955429473234137150316483817974273744895269867110868370562181190606301888406897400617092359871417222600353149938599915046632625899237262256084786052120902111538830483802697504920228718863675941342482047364007739928129435181818135146015434073186563741221463854370053135293417639028070169647582678040385960867352555014783887979524782799320559814230098650104067704179863733265213142150842377249181722660403811306461246011040460958535337290010208845235765726446499980924877385735468439741372832457398603662297860626275849785483998077223176452042469056621884929841968563612235620145891873073918934956653590897050423315526712463898001529131936429415290656188183357629083393125099366403396308625787659189191733837617691516872100487483096691325467720225329333303189793642894334198954350608747274696369239281054920268008848916467728107614818433100339794962957594007839103779963438839935488214788647981810046861791867322474862999427151656341174978669021100957447489388590946750817631227491677935989876231834478250698794036629036048596451898049810043351591095484855968121781212796139208367686570987682936519746070936082427008685510643764392640921856273884782043968267770357769409993392029362092758380669376930846766948523036258853946505427837022059588841502234444771451821558005084056089163774343459970595348863301218868832119975653964211682700629116354470999484586626493672412767175680018703418512488881182438734373650738194851782653702646723225144425881679033625643083478607583868583940034278101814466629818201671252431756697795954180074295314751223702456349697753413412064090316821946873526828690392131101649718324967039525080597356088795121820999516393351701136174605849114643901766245955476968876943301223665709274791148817999354025386504033173555108719356102627134880084897818417144847298952573567200744971131713315810288843905507090393518480020718462686682499683753217542613181062383896142082145354536982883632100855326450643517732471793193547950682778355241204922001504960512743996944349062337873231650139432107428782781416417224913597983203814408106371028675209530848487537957462657571062400606687715402822269973568813707461659755264642836874031587425847646571388873175772528642991437322140993915626691784448389168599818193292174616457682385724564864468428347855381479144552889221806998316646256420629746175860478410072408158632985960342815608266278183913074355583451849282298931085627196222106139036363441718308701746247279769721450611389442899978251034275587037271209632050769899075329069439475304063752664277435457564213255737502724396723055969253594902978811552485511903256987182061031174821203052685746057280743643651718918477148370107528847641951448455880751034058856143975365991221137006288761999161687669660683566931425260325098801919614921863647904917494830918057354412371446156356281462983537502012424291712254540912510638795855124210997819910006565650131786317469862675973844959609220030083466990370920947935462312434988679151480503710854228151170619572039019774180188289321253590103969987380020729926363806020890941025752710909414633638942727449045447296670017210045982226045862838553196156417510332652418113821008628931213480609466244110610219677390813251935687943175964871188634315141673979114002141528383706609167574010402802968410196058061995446092695867290788697281486399018761203821154985958290835023138180202817945465348901845714200790051431635074316723578589878828765680113102878301584140984451311272018831322283053038762576239548490019308533033442052102260234309169055541232547986724598005448334990715823726228137899839512089388516846345577862993382604215303981034615709859548496672531177029249193761636028939298939754078779396709614716055483836010878852451549127673179813894024915226651516931495705511329339956994957671513743568723481235107448968777551541392422567561685640182468523664376707709227767269659632575186172689502318067409493258252301024822539245321446556242961450858835522593515492742571821962386313660518552076806640970493927868221715962087358907754383571264049785239725581930510476260104888428351303071562973330310875389798983573206395157170089622413163061669787925375447977772301095341110868058059662128710880352328027912694894765568101854227000926842909772295209453523370002739330796310010993944986240622793412880515739001629626547799056737646865252435557187464282579581717567878780000662254470646091745511512534374668429079349435155940001691005944521966929365540405710542053866207454384712345835127608879823650044151818815006676151773010222155860566240881993063290605710021001582026204262117290726343066273120901013272730664011667648767435110726642979623920833836314210884872701661351814115430323928823574124720004552874071589240721826920732057991114548518605721835229570226302809284969418007279861987918887582455115210049712965341447302797480538142279454240763718206464334500303907883192243716399311971175921798892573811076177250196842046291880879902668514031328337342165790729507283625897417701991676134522588928506768919654850981939288902246272802968541643603395260694423832572518686320908922102007384488977609111149941181988185995828203475196478693334967112332261245099387758902179698179417151577611529113740380462212106650858945541865008261500579760191758179616893788750941955445897261458103646910962462830624319455270193719691886076550707758473768269814115641893404717793063239841877488700092751773356639811136409534346597516997019977178956018580154585070802155566694323543763601961602662196556044582540386116437092856079378975458472843201130470705089084417203602531241827698988789132068730704172246395563367398628616301679141297607221946792191267509006067102814816374445838236317961683280129523518970171194456690868759515719059757363707239268166558344495982225655872734397415327712064294828897096093963563608163441469508448763776938972957617270705580433450801104150227699095875722638962191123226571216436278431983392675688089103413587649557526476365206642822245251194986661558557221309140905415889495671248233184854775106141267569922203943601017813067836566639300841674164510005649605493792558418749975217095999236986742550262317749404637972040481267299603493740077449135852655353224237262300988124690695202486894572541143697745027793959729131676930451263719767287563473290493727571896005435453047092795876576930516141202386529380559637744647639157785937013589505532412801005428392435908059964170920881083359124753603061265245798894136594854975794516989317948351509873290770790764367814357198395735832231018325517649676671179085838933054440478595314553920113983082006045881735305932432232521490181925029216690667611762400038534327270076428825005223902366784433553342886720559095071586767986775101112831760461334420998104500358518867645191408391526426879172841018415065011987803551884793555460038500221096251283380923963954091674899712350758625687040301055417144864452891214417141622698888761121786901114045570894761940952724170126020809051101747304514700003156691396366090661776504102214476653895171351988199441616708467336723175440016629150372921022497979273932106230434833640334473132896904811633398434452345556679956545330400867543169421855089012437370571606450740156456204683570364213313432885067506761840135769418283480723598533979944735195758398009673295708593313699552490052983754305781929196550232854345276838598895955822519865825524059275750072848393756425485589546554028566368488036261883101154852229186216543081216681185394680733248847012938008607033380554041321382435768110527838026012338635978023951742566908813064484756261408581843215483290274893878494403095100077798072465970790767523890495376121627639780177758550918038881055531479260398985567665114195373465420269496876527579228982641951270115214789496467762239088976384281949331166911455229494373230073516900549027902722603129522596988931053263142101871792425049088062006071000000614996660050841609270394726500481171457846645886687552071271333934348402722532051940387112030862421793703919903556114796177982056819698739105811699123478538602070510309873121313571074179889817008510017141251589630744604518919422301598137185506571984380427178351456975668439638696897220461744309770928693703064347264191069701081098857123104231351666205881859562743836508128861068862651271631006947737938856675320142918462431111080343645189587804934619643908447781414423866537082792675481858146994328791445424520958826923793881009262138855125937745778705872692467633502354311249597683404318607911997456811366319625737142945423043406725099081408834263479737327782632111613930670296807514984960168918404456603824324118909723744254331482385186641803076958341726106317650594876712993140008285686264031341408127126790644787922052180964894045642511567288668479474187508727268501930021751518777240918690752938776652316365970637756768257157270991972069606793513767318606827228653245703431930307180010064920404972131424268710227462001369434085628244279699162086726637358218909113184800559944786083836974407418321422856590220911164576700985278930727303054135456510117423214150903214114799432224460258718094242071526508701071004378227741037697547428240422769850809790997508113955754202015185202408440843122955263611850856364615303265190879241272114873282216013144723876706352164423854302954964764285106533114882126596960148012043370486344928652020391970456569615779616797536728598993600707755657908762151614863715937747679579754438483842236868447042431907881909304863986064857236697618697009702339056174237394762880224244979832411039731183641990899622845635521221845196051710302205720734370787961964645613396565316933490646209186127325788411961628611922626664727689536151521150747444295183389880195971109747412214232121831581573214811099412989727036223286519229856185864918977725570997620942650948212703702154527192007942488833124979746356426498734996227104320152943371382639256243111818043024004708430496093269544416779280325449231116092769435876650623960332988190093258434438489982235486638635978792902311116740563980900826566530995055786591165047159138584094204035665948928024836140589589681645314911740602485144334832494742259648105366995373202789660564605117388737966275126585141746383326603876621963024417266957448190688340054686101258363307396025506096309474648131523055748670720119808178884359028098826780957273712995994282309798193392607869278650088085898383903517679833514984518425412159266646039183373091835846414130324091524745975920074532077347876502674724596414084906732114959880174367441498953278867178665604529793220774912372286116006638977529709217081463804514960041153918579407839930887294014314161550601283549604403446382881768090746731620000819350193551596451325693529516056656276354852748775896681475824811678774346598283237208588623751079866049283645446382227346826557107293610228956003633892265118415272475085648943336474756529743681117977553465705161453480771591805730151023794993275053837995431200872210538997092185364640911389486288829429177508318839867288734786464022123809309734015120804690752392529515629710993098668397671791307967677882672313762057027729501074336752209799490843355393766478524665479845243537551864557523982599147148306488143890917275073575460502706277982556697348504743745064255001226081984325666813894936676521213524107056330329981015118056247245096346616278041166365299802856049404053709244556713270897428759335513809212272775656246417418946754133366564782947880840803466238992173884657040299758672999419167750996657102172729159539458435760217394559042868803730440953885086828118734363986313508792548945245085752964957228892576923360284934407622583632773032607765271322415387841658809798132165929397769480014708153060753917171679159329875751887718621436041583318906615148152012564550056350672990914172364218985993959583061615758178376522049097030696577121559341332589763348751317606239740957602966138014077994314157955324263744534910895658557881976862910217066752746882439960754407039799295268111197177191316019788888041400049356603813595923295140347669946158585795067849122114116973809481056247583948005801752697488761969674721490671335511667465979414619215266208129397578186111753622392634435876141546361594927423165883583379399967921208916364315900559627594646463935539737759617651689252210848922340151366615636743353807905502274469569300910729726522442658616957820284025769205710766586251246510372265198413215081100359980759009850025265654556060575491440698086212897956033033786427196306272332234408523931327935040344606351174368300602980045131742538639802869824727150595307148934472017939411208646964411145442462421537280460277948003777921170953141883139012338114935730184415321618794005572141227780972576313859070721857623517858215319533383512814629582061981799252622655767232266444649496584859257258110548985528832381104069257654305592412799308307864599674214396081046775255950051652980757109885418894621023713191786864451825985198943489980191162642022826322505795707372169671429975390887141755520539236026660820753522069645851432447091851465686596059406166999322565534703610276040387120923124953233608519910731629693976180585641577340575666513781456918421269769106739743457996569088869286257629139431739724512108798141452529542250377426342301774090729986626287316531350509329037184383843799925925971669166142329518899214727568799464236953752037837180998157590385593769564661923322365994329102309265725484754750059835847496591548810685722972005587541285086694317731711847082360185458374724830145807390373438298091902953472864010435723422740519394547031468983258521176331332453764813467827842088175088933231293350020698675135536226192526335856575504023325219560970913128363952034798880957440492969342779290096995797960715166359391637140549573813514939064081957936322826859937027073781346049219311423371649404071968471287069161060651133490320792456099292191589875806810819597900240753800775097574559784111220087502255904146632116608138315047888375342348395356803551426532613605232988190758766548430556151962230471425111606825028276028751354087042243684719119933885315583832296686429222967276435973380920244763278370658164932477523954409089555930456128400379303034631766409229079675044458909494454862299608564119235168417424775618299355803688801298146428557835324450507917124511956759541733957790410885513307550367807069576300720215481912823864039491271463908839616061493728950738287058103094499196550966797092004225039907617431231961280071912231885973122722904939349717485753355397379393576948519690791755538166690074768756935914052929780749670046290445841785154659183957618347360844711238817205722659465984894271911631381339936706774614158495195246619502801630470232746806231523745556255419773690413023693648526612302517195812605431049359627748430308392939562520563677182891660128484102912391648542770594048207543900682666122286685224712163963189859302164406446930026019674378563990027278638389666751008203940131614649185416950982529068428517963283837124141742283258445405059660898298139836982248011391970154211063777641134956520229130123200136619013912163211170438601935560013393469265458516653730180532710655904378412148796289481100304571185738865208333342813300333881476161465165158485679961112440753466966741754202318242467635919623888213159931124889338207740359019980390302241689189553137879537218384679349044839458733115967849900649513971252013579248367136451628373259792902218224952364680463437206029438311838782998300913846876333100731198684101670023199851854100225046698115927211888840687392930112170635124068771551565730359313434007048197290264360515375213809449931167326436524294945392191669683903834817850829820432314163805239306046220615965451340861165690838588086934048670625765977722146206135457407250227782060941071601383634072434778588141593675901429903325268389706304534791478417221062845627275563128905655662423801632203580892985508092555721320986925889711991725312593723642683708028003987322892257941160241071713271794431450152391843943055869597075711384209643850352363689443680120445425184033011334165506496414663363093760940930579709121650205189933260729478933576510335045544850628337520802293209848501178638763543607150935633753431481801414116278741947977734085965791316991656719155032802848488611443580078978370252560247156200151310261740754774395854703354463767416875824295539544099194630398331518639509346057368499684116687978513497369496139138185623670349172644381790916935052136796738653366117314732686120304745038453477752758809911974545321847159820729978220819161119256190790216367760236681915894271405753674451965494543031132399155061856779662544087178254538727826459664565258370507159866738983985269864064134795217501407635038414509047422719634290598519514624570999041054181437025007759748218594572556274809560313215492275001560323238032282276659586974119205214191015064922545908200679143816606620571309006838997064595090427846449904585503757035796639950422375227154743701532899843703444310172442678776320431000450306420210738734085001171197925295844193750884111664730829481845172821220077679098739335718591218497551251639159438414453722838666939297846423778895153707856639420160337783216605346100719553900578583837393737427427683199662882442980365891230878090263985819384041961803705706938743321309002272846986937514845572503871591986152263199445001900328422747168098381549871224328224088981793565345344160794425965526220030287332297841943346950452399165351798403112293329704184464730964137758081428285811236706600958009147986460806379382132245252079324973848090221325221600810150152331012534446123652335186160966534398336996086206225992391912874370490632622797788160224347551749359773028491563459803295645723763601120205835196082469548192634890458346099965142272490199402438269060560588946967929080857984586286377080124149784850610619626075500176547793692421859790510843916732480398303289356735866480136145799031334361190426314475676728197949375388732010730897436186903053877889449122359109778164382226501088880498222644844894946480784558150802916347593007550321498626824799827322598757581946148671389583942485511325543043455314483897163432427633903825177488853748577847648495063674775366669948936352098561749296199740225027856741226442674969606334132274412597822380151778213293596691908541445711095116433689016942415605039432441890272936417247678336813567970813540990363438445414709273755012927540575410885776605342060544887162160376907428196730945957416885375662560280025277297561017060496601018679780085168706227562757216988794744045411015696081499278610844202373509915306745311170136099738540473975081075725897518084819834971719412740675964691986561817086528586069365921809336422185731850272596584511876018202077335422750806151169442308940580485910371706043660744859916832828064036939905453519609878988829878651693464312134641203354136433707129615692127920479840815991892065001791606169900748838133368491897683908195515370330639936434812458471222182842310357850851146918823323853062418340081994823598491218789082901771833288450237067635700525517639732711628728666861344385779289129260767230066109971795130414432159385301050517156261657017382639947688607820651617120232780017818629774098037539580842634341404058059755472615136135764049210298960745733582972845010074922207490061465943441218095449249442710054192126062762253503118726294573881731224861219325703408613807972709977830734727421557004807371496079255416134832462088862916933598934491817767449227745691788491478885001302310846998453421652414644507505552844101012483777349161447681462981100482083819049899858233776278616146599934681898873643303336463833198936802286709894353646114915460543495261850013137904646838618746337236875326983898864205860033727735578690557429527865271056868263845505530417042472024483453718280149287570654051323500486183466461411760856802232959728889100644389390310718908688986803299110517590825383711123410951107633223658850501167785276408656304690751838071131607079549146307956095536313159978134836180490731583345881211381793370389255894253942124188986061738056529335912807232935485530549180781410530862299023596846977706558291103286280259171945507151196318664237109316957870531205915694794740482437955239777417589941516939563260232479227987390861734431650264960436475574209790578061524092964346858921973472536697238755814981761576505363493375655214305591382179169180968409838161462733562781067979201025446481408835771117055558859005877241733066190207716405347616441671732901583651861472908359844186445557412049337664866224522734236982874648306553584165398322729335102272353107609211251256307055844337827615023469895228558482580634761578556332302205836777516342833035838823293565234273607887810965643830617328514008279017220904588334740628720735867905353357294761145635606451135604193741755372428274523114264415220784308395767408616973188280241591424011889867770472535602188352928758715269169742027357342848154730204778558863902258100121570525281596483341181513240283871065748479317111103826668649742049449382515785179667597300886949411116168119913681629281294096386545784800169902068613487067569701276114906806569637062763179042205002612809116097456392298871472086327872811069206209404690255270745846440016363905828399910109306571544302060154549574714906500151529881779928285115290743252995610409956151980241570475480505491217987373927698101949721744509199006333197322477895354031296916876275158092926982496328077857373366632891680133338434234038402671656960474351445800760173998668140135767467066927627774733121677422834372442685406125677134487362157052259216873409799259518251885028870522295665857720370560773389483667837781584658611421377742834436632824541434861907135008420454876152249465609447537238056056852456330491124332915809703129672712407483834521691456251292263288068517349253514364001292520688799796358336558383811481742886167095455314867850667235079185357683711005007830963244661280020210938404454965123384529920850480237450800889842386784531286708686472827407729948680834689282011433951004565019374503048579375714654801779464620808758839377553520829595112639108432697345895265603746904051759539814870975986615410242209934397086987663968243350861566257113204884817392260537283091894465317526905235151143725672016014581239618842098708701719054739494689842946781689834785286539140102830544627226589628903265682758931158281797095453271226374076751660836953579807593810202617803890549533363377866891269879793926754415845909780414883439052450257933641806276653460826739373294154095731756345184393625513254415986622263856607877218208606594753962606234209843100339458378754973926926853223343836655086584264098314392903722146032978064441728742937635162239760774928018645815775723646393156480052720089867960494421466988307173919792626382790285449077524431741418468014452960205123845473256815211909525699176369203344178372069207878876127720913042034220243615145103072595598132252419264347823960770984301660458127552187999432626864578192969941859466531290511094268280907173203101023085193833357709667732687478887603108460823899842013208825813114950169239129843592933322056404556133281853599648275594872192213819920880316066089334701880289197063007530661638315064561007546527706942707776714843605107044150362601119767185513372007262546154235149617958178399134448724337593662333722874788926623416779717162652775848281017765108305560019366668047116371379308263003947828885134351427290660513556207886377963181668180943950980857129736185125723072589939624558033297083610507602201604602283748912348096927542246925483274899236641881778076222927381749952600685274281833123449973648842358276664952637205456525214374642964156086987197730491946011695456287935621354399580940450301793121565235376837292190498716767924770872970829550366585298604797359338860314290313186379239722277756744967900232146649311417806053867145266154808823777091666618599051865754744805213887735280650404814448617790764380796980087816938149460128127360256262973880182870355929921406369355019337778074319076207848147926347593137704097748397463536304031853169246777804487469777502398718827070781714840682359812472061567803886673183464943179025352363423140094768584151909612959147171027991756387270654422977939137858034154773917025648348431810535370220020807920403658081177353105535728862839087482022112686730140224411935700888519489242235767414388332745514112529923269497523568465560284621014809341291697312831401706545998624943925000338386193598730754042868667915539364623334522580277303620516945040789175565015912651704825150827734839991358036573944138058933663718763228608774406522846499202088411569939295781347663839632546364286391352911690153226008888221609827752520425886520719381237709099119264093031003617798131362536157725999451627787371199076706786001791034607835422079457214365119420353300713367334182824614011554724189691847054621814091865036668417893569821394277878003077087738776531823135651470657464510164931783631900296131828191798125657229471771436785241793636111657420856398350664594872527430836792645006496737606113149420813249781718351312113459452458417579839350381607482417931711273892864790591504922423056940623001439923546072134957104085075601775282946721540250347728269960735311970046129749536569288908948738869673880528472046219858719108118257946650590130253496593222461997049614445264850991637364811218698044556420308877292828382944544684567251796674510372990031282252331044240783639706717558287115274409539319592577858174597247049625276361235259360978617386988307588818213564723197631578533287377538866301067067634077291640509577808783640313082837160754068493631995917562260728771074461717748698775672423395532124807232694445989118834906429622388755862946603165609947794306527463474779843846344919573736025000982136819683098035100841496251980667437972329386536058453864834582897146972451203251789174728086318642360541166554340664352392414247763253377745044309921085339571994308785518042620414823452316849696694578423535475534447727884691345215941547048397515958968754340559647896129996243235752739660909662644172657619610272365409244932524708762062343153780006059776372834135174661589232465855958035452257247218905379789351859761436715462938490311896890853832073139943991377371703906679870051813665790760227018774776464210134075329718247372443288681188877506802129520301305495885981126131555541038747540404897940993469364913153479664516825271512702763949603437090047712349013333439951659270025436876214421721350688175400314003669434768942352133122734982607737575534895112255049256790109178736473474434007328539058838922502089937799640126750298281029691006998799734676997830824454486424631903015034922542967865791145525405906461301187745085921116071884530627105899750702157136956362074083306905345667222556405006223892941413811012360202222260999476246040316634290516767745766683995289633088035308585322355779646088462376193687261741658134121383494140605176522451983167787750934238963471025950698936497693536262540169147719376899757378497802263059128069914320633463777837115203985635004720318649574876786271227805884105829424417496436503617230588556627350740396096547595274253768415482679572104779305343375608674394769383898891840440915837384386559902013573121489680961991566093808843771168641434397317972174605079225714134575903561647543416032311751879511058251558046372495185581643084278369095676850280802756386228784157287012920378444847733721872755762463109122758374254591585686602709818326131764477037365040812131505957705378631834064819152665245264733787637161245406790209667602969219247321405513472356900964621894249144467778808350406168019239899903664615707965332484000423310409291601121145357269767487536238378091658088964117958158405729460462943094530576457125498577508325856126242705174249869187506807840259229262866433493584124499581928512930232520418505867531245860734494022911827162837966115437825640426770900977112059270050870282368116233200952301253705303391561359313871074493497133611506460739194925733087917427480787257013210333018560648919605576255403882537373022089133690777994956745758454115055095450410122264364940481720469618459047926532257178887427606457647752489269340675755885638063518444996793977787694901426546977064608989976926900506245970375781218137399147435616164145611838001751560265911319907645662439985141427108936014332466765729771901369934972749917603519458945597492374017939189160516915202035167680955263599922477151754218111670033528604407491671715497187298069128320966211736513179272202102072464828638034474468788574231097126595510959559232705295057113811148414300065178557656395948680519742782555248961811761586934271745649936381704509473854959280004974160075020394390716711421824563820809720737240886643094740907376775294577946048516041457240921292598007343343187496227563423091791127522528567616832460120509431930479948361892832176979780214732654361250632911620197680135931450161732806321624021943365012062270816617381776347185714941522251515182053327717129131671212746757680954051480238022434544501925829176421742634222665847789489400146855345733117780878920311210322219056997071412381027290308667933516035962566200919736638936532499312984159317172864658525208467176386195481415765532182865651280308142811514087513558547922019741370223446956244234287511967113609474727770388444944172418622529246576243710548615038964454254526666495291218508580301988145699416190258176298518126123296765537576371001882759978177072026022669448912620093807968963019053973033615723247429635292550537435721825519891397768199187633627984351395512207234986365137947356843496137722282087788761074461517787287280549791756367209876960380562458149707955492066069132770330228326189395289690473682122364727472240618601453592258352623751445629377226547779118297623445971928172294088731907789582287249474133031839190940343437450396186352396063597287407803938099668748225015388541674758404221070338575458480103039194837575399715294362929608959465072353861536764417345627734300810472887142239304085423721735079150975623170822749394943570539078843049991806191291575431757264151336148046171383713890853315206195189813874998733450206579311917153208671690902174212451516689891116910278612037398638080772742022894506630365606877505346578481856289798065878445660536761014101769647922788323177858179563563741020470902710357919482959601262838406018678311500972952656188507009279568635236631105807116942867151687720810125755198158981427627805618885217212573346877708593006204719350669867954284375547864427582808404437506329498274845261605570368967738865797417530362716021108569977664109809890465557076317867427100586626311221896654898339586144280782648953513602445178465839059631654098075231083773742455097338396946631193465806952209015198159008551149721811328038304303845683705311400451984702178603041370221396697151866784271569763241673966151585179840992937708182957227868994452349345549390514230574890001038507077390425713405159798964501517819022487274758812263018995774620177240610656926638928669230751976881609929557912535102788181724280730191830779452731169843522586317138039438353642952559680167262332142866227294601526153868881634712527587373773047998306605129282048141366044974397981014590012829518563024027398080458190845903362198621546567537279520109775246414509192299916777754472231037697489934633797977436799326353413245226442582863831669483869655432225021468875310012179595971471278687144445572265921260763253186836596742682341706258177444878010712746839038278014397575898266999261306343117148483654758241853753049348001370853121873007436586959358941170082096394246474907906567387087933889011194441021640172030202146377763962332179566088436878049715246027283968946839030422581181969907956236499592897762553135362898315915767774910413156343909611681759290983108917102520701285120567096384640133499350763354967695417969018393814248472121994198738726022090327220766114124856156004719217349408574908951705035210941538524971226256565300358807849781646892057624222295990355158213270536589870476922075798074279935313845710412508918183842485134099087231140157368021468691518941530822675565114516910619960468000202755536516456270642099047505632815030910884776278377274087826996429082326991607883371126805571186070581805125344741552491167255520415916072791469336925229496812632540763445133719910246682386814611188660949879310925779486274693323121559784293065226363467336852758735460382847540429986964121765248166535212632493949156470867800056854431000231185362010498653482008135059741399371046395720429309223043255827171233363808777614397998193991841644705943110710006903815112048352832855868694491056256401049096725539844106663685347059899728657686633710875328600737857305646509648864199547344598117084479142703715031694875663961139630768768431164013922108974168491265095693084460265515499529250534877057873395786926807565322137709158316258746869067720610492136497872830890637234809257807842126660261170862047464863687476345370606043565447567005978631876244838575529995786742753280512630327444530658848845619763454256852745275507088992306643163244067394851718241487777071075845169523427870016298509193522516322638796230881822253878509957067204691680199297932499546263464174569542330438884168869082967638233763365347393930900387215841677622618458435516029721778067824795305752537506974930254062456561569014271097365530504331260006693034244212072584073846924249874109065547475615959752277296113492880525193299603453210322615376603864911975780614786730548977100408403686666557674329956172921039240911589505411872209972994920562722535831694508188914826859648759869699406427867870977220755158462921173819877698539092728293116869771549940321312152835667300518124844362715746281570284335418620229892383283688991850405780524305630846447457832807601723998199765781563260665458589441899417084503991517246763729326804324026647793594750880584615430722767603931415005461331202167981180706364694281057472357663313901801486373792503802516035432205480647188590273383741550516568524107640093423265139060489789239959857931181656809861608444646198374501941843942234296538266872249950139823529228436476915141018653548549118540229419258930152388684242588669046661256191656559336707413500874662076847839695001962815621404103351064305213390972475827725298396192765588788656834083921963860075296476933328554968701587004005357129975809207899541045103919733702588303122943823382359350334879686001551400183623292360133058867613410950648441948198330521890622688225491472527306435438175121472990757644288979298045074529143871615208455738772490230091846979669011575698645466582882018258229659703919063005186463455511346766713341554776830973617177260164138169172868308001379055283452003386497140682544404039786903862176382527456856859683285795723574401008377115592737956270104256624626725051497071238031036805107358415046177376930184247500999834171621663122318026163027245062789518670871285264118368319496176929445002449282668940755651835299070782522615252254642601062855917057182032426927807321793452892045994101001079013703601476532511737099182428687619235598881246471009583927470976881439891969429538374808832615465890870923498859318425308003667060510739633536292842141577442529741589069893029577760556413238874560066952592110998202761458188269140767780696344399639575507119762931854674256829584015745994940370409915225864613004618465334200787515134388598205075872518791228856196660032798123109947034746032338678721862172025734850334668578321045559242090821427949960382857612849090850521166060230300616212454732124215669040630302250223739604070810775689740116290990720564373168377641154003915308780010560347204847804548844445493080469467841626273039645372985854777079621294621306347695931415514679080708122313486576757329165380977259640579096066486793834320483809096655534716873725335953875024026876680677206926982011391214173543901177544418538294990967017957577854820777718133197181872970354320521207593243819991686509668765056825500907049389317056165114119276340916019851143438532550696395606207076673286138538879273818157790557958321098163862227658132430778906885521878947422256468559650327227330548725243684985256369086313848715951918130058538782617412341706953912368131397221533773522811536125102216902508291831592817758739281814339606996026886635608289717620374661449544615674288396770667117164586465968855061551652975457647626096262084009163947855342370908164391206624336713082755778916036891197954267128359756849136606496074875115779395777146534781070597732536689677620204146547430909423021849935783887951429100785922831044930569300670946625425407413895742908308713293278228876762643791823518321350888114663778259744772981222315162717525427173444107609527448574275766867443550269905367967880594715730047387964637205921213973731917562480038620298485318067680217760851921562371048827574158536610555649473537775602895855687750332786519197062860284480600635498643904896098680461657884635996829929599473597697052356627897691687054029484225567949652802676214845875549581792874156225316921651714025563504827556719296581083310740543583045350945654412967466351517493876253762690044965882224922702802918300342006284338264263105845790989469350164016914694323521153028287548396530822695483154048075263325531403460903858401641305124383473099443861149076894295875826264444108905743281041246137052083873434939291103442895143289905357951225869229055901116920766053390269703846184233539986390378700024438711310502266043553651793712478923133461038390643733693768144321334303287082248710395246648230531138413338487974115739685623666304426312353580976920438704239113471351347297547012756588478621183932618897617225003639113395770738298481636408355859605694014325076021847457794073465716354359520873294938930412341289838519967323517932065878111938455082682970178896612520176791859247602375157984936137825855940047497239349285028367868515072245558015901826963532671167612799163280235792021141006634546291705847461232463649373813627976350438344585941608623018132247890516352181373617513047330893040906951450736908035866375485190570182880761282856309735375250289070216135895813605744149072415622753894538906840900150565786511623576052966451444370546565290993276706650406851117831055535396861159245462146965110253946705994368389556698268976196995545630482110870681923317914692500649692145084010473607311610535269109997505617539972104416601219579982479419413108310576131547823555523240696613102610672183534063619359323779347947518049406563187367175998573985055839662496077119603672248470354927129470096707666516005875739252658228645796348987955454273991194331089288044551398026651188077704021454159469618800343276045838574737610958117101403790366930032517134853705183138875839523137314629700705868024993042253352193563283969099476297836414680358940320687641962493795731325560475094324189952155104632719672030195979132918044778064577477220861199204996377793834024309946920826274448362552993816205168475937510404138429300117230373847001099191620614575848580947822653331281111912374555364626082391332655260287504813430592521942698877099044089903093278326515105260391489991060852417822702954655687213351766540458262136208634976967967232942111655209413154165730462307259883303410674705466028961688562259925769296382206863295864745569507600682006501638652407845714403097133041742375974106023366278409553318132541250980520694740470526591276228336130688554679279923943280538060936711999157919009480434292872513670033667036897056773769118860857779645416149346741404747660181698958468670801442074590212255589788201932750104673093574776368377839648137080054229481062036796446331986638193974187183946506098958620474558145993407007651835789705204220963137124443922386476810007996509695914601202492899256390176242992675598989810032778857281237540374504605590240478977337149170456175024387316634023381748061388653416650381874001370572603369037054049507636651396936683728985238622006481650603507098507817967707249479383104780368877965560214322832639749505075207522152007706962074647869277775120598209824040710283037092686316213768069831305137814036967559253880549377414626762566785069965089512081026897585814180571639628327608438156753425899836083824635881185584523585072149528917435669887259073594584794985476376912146402087819311790697293838620573573606781473291945607458780747073150924575960765408216415438504876880019730520296494984848022556331370560630784459189385381673826317955548515699074407075346847153037195409220641522135074784281372225034489426523585016087981518917896717444213583669373217338782284929311798234467773868018022411957742777044910906025269498373599824614900593260277108265045673084734745306294311576872161326481290862527442791808626481544872348780409085594267766173079177059418393580872341974233880326661949328596171881049661668466373414455734797283152431668353318426168723651300227627208816581117299890301031539238817927788974799903410097021527374171800353351354904894508038863537886967470277122663078606756341332190778374869456862979082181858158394114481798159675252368020477271533967293735226934312806312059067016170604618190920061931301440018374672320823363311655344155764943396743204382834020828440056869214823768452479507479342005638673410700705284376413175662452061561254291556242994313901580574036312628199695120373737364572575684029033508125003785610177149692111913346638312528085643004770253317086893932597150579542214506617331181172438699686022926272970827402953587847465997064507095840665015538479440149329193048611303374732056789217603699153823655992864223656492970600424617681545193846145845002686421100974650793444742990220402954389422690999991806935051109405088775015494638721891492388335114131118359456777674607837754832311617958666175370165412200807108385414006760397518557008522276285572306594321609143160218242018276461622301011247145910281268142702371593356045656749104927070258731527287927423990014963163100236350588228592917706137635442448462162729158729524596817779429220895599410223182313830903016181108732613691423853024502060865743034171137254741366805599896882605232396686035745498769133842813497492103903733845397312141732248587317224139579896473004883116937837172436544367892851823815312572142902514539946398521903095726433223820178754066121898477384009290420906983414942500215269280513204281492598735495189294772708657982125933716718531511820949456322599065846679942437474552115343924314476136856241922870214623591520752134571513042447901133850789371504319182881583489763578553818246921063392212313212590266742204713423136449853432949916321856660868519263796299062633609803973310378376975963635461423316961383421379310755481101915876527274015525741008791384386835723455355741619663544141119055543758578537903469997567719249450190652763782331095924457000079386717535584924534364491061703206723419045131570976109937951877211507085771718929978125039422124392674927874158958715255588526589881602297571862239844641531985177958902583969531398406037166197132608463337918432747659177136723073217648353506670584809115261601205046593854984962693319785703174074621165512404856371879450798826513361378625545353731944605454183357144759968499986096281051518382240324944626345445066669026318374481507886252065107213029425156278120273495457937502399324175822398217188543575986843848653397224811550017559793444994943491012709163087491452696363239482292607583665827023093431186870266751904610580568857538099514228622210509543232033514763071202361305196138192011632467860744699236330574753140920427222547817010118822006248750137354076652841094631440377691795837560840131238126784648743443287446217065615881519445769674295375155727945679515942811404684863169851609341925110381962131412562561531891105279887620402599572114011770874178068705317437181481161078045799864861195878023981846112749972858458543165790152091548940789860481886929869385879102622424402196446355621615542430361924876754819746958716199050446131592284914532697007974839364462334048052259635684308775379753995149501530554683729539261097259676306391651616633672287597388661801943164014298330964003791100220520296235469360362372238363078400165077020706190029848435982197771904688608533956736992730440515529013291601142379593749121079009516153011111922006729404550496750992991291663686031575913731426088456758030494086647312028170047871989655909348390091747699378801235154131000388527239129573156140544029654185361839728123987479753811432368499991674393103892453502916083962427765032870570976012629265125274197224307249552487464982865717771316841394394379038933653795991344434199285351826039154836940524184888937233779315353515144482156375374670928625171557463370353977075606928106461536284658340112489722564415076127465400438581480347086181477159837229859817113929212849076505921262257497554736913215521395763371746590094266584236845947395890443091672716526118736795881446088235241136944625043424068765473157399872455315745321323145559937363064607580033870070982123394398478142152777269778119686192019064964241336790599501066979036343209775407198731691020650366176856605620606695300315075501460267710059494588426943427669147692960455610406841025990349725369031546265336773902500580201200349835245794881199965224456888690365258097260932558070813527752410302418525847956500830010704400757081166830154836850403607345338631177789801178460405626302621641032553203446030008115723123992658423928410436105619357037241174979508121194744749748380455396700093490261331621299152121795053761303448556223490765117491129742028978755296313935177243786900914446414538374235940271367255532095327721845221517253969366508887637635678171204377988003273637727045659887346761503397509771281746977993797801387953044637292771747111331082124594696466122941087066830225994102072673776041474308914294470099915852529529540575223881597654332384428513120517780887159460001974731334323720362179667301142335295346998937327352412570228600442569312378827904237124984740522894870448510047056628221282070744166784835645465321406718158435868581499191312441428162757185940713223153215571392818532733685664539417712637769024431198526076998887659274489891907885448059208530352920979268415562098071467304087032031324569180116449288063864937706450073989355282900923395983182576982187958470434589103741973480322659071074344979201955943899053179074282899211343354658923280789043105166014565604161277968351399736891716715835647118166734899611806586563927972656514108266964411059310447424899141417934582459390765607989778962944017925162199461113767767684823216523439848770912216723326290048592303966870042638020306058052531903572549821713378877250033576972189567596248298495957408213998359048926127436956102131895090594719030249634398741581318364196873788010618225148166359758937639865889628625766388646167417671203792583718407414637016766643853640652366293606493695542515679304518040956850960398280497993091529309725626489067585022675784178430654786323383473737805154025942227251531338552311706303139110528757094481623649400426566167278786344373544564758570901442118601883041020744625156406943900067260559997428805415116327427020992154703713878935735917366485366155166787664805828533626076426014660066473193878276194807063243224243042148985246483061747068970029109992849819716430183168872539455501951166009969993485710760992381991775603826369659563097838026922544577166902198887059904852020654602384419095246650101289949934902368710674071031006002777175156259470248688809749661503112735770168449415253622548513491235101271751522370748619399403181444709472178999399309819357917009140524727719203025538668062408238166682585627073631818744681717885727851680164526451317053227555595724535367601419916016889661095867549506364088775745486575151404934875868832354631143723508869143994293582042636374677262791153218310055235300892592568896353890302259657342010187916942102397045147882713377605886540366413696908620104044530957354082430819472864647264262463296042970358063941365004718875682299424556358654790829888450793899480897384651911634287230839009874948619354377629659656619133531602983446400847370394603011182046577095031804763464996326990743467661759273265694183457059007106466604801611214220275635565758318090372870998773422050207641185124346592797427806788408476735961902466075342118099492651900621440856795579845097459742867914537930612011529722028194459120846485033116651925856763202640213025577969960480261134868090810695213068151439824880977858872461552406065598594871078272177068493686291084742693330321396211687333521781866238087235715503898898501946676697948544222745977910935638896939191249793520903962966876248447000643599696328995692499352468317760313401082640345761153267466891970110229974016799439877250065608471788067797190762712898847755342018736016590351034531582564566241539155564316597400612715833144830395423433135935776217297892300901026482208499928499470030886467976686196459408163619849940147540821316112137357272942230751883578452217124940691467250891824365673996088289332878554770375308983471241057531106859055170898510162661782879911489945014792184020612748593803989849641001506842647217939770050327430023731295397224110409070945133268250702936107818406402145838268253718180030876856991058850579192640393578067537802846113000480429563905194599978776975336346854076470361949708933234592887429594548845121867713395771171720934451354868664470902731213394568911725809006363555085437435450290296306343917817517674180995524457145966730261095638790692556363617562722551794888433366491820064082627860749339986629665433473176373076963313457516077351356107473768352062144915078403013468026430373618264459758169498892336461999623463700687664053833646945527270022731698962045596546726572264516291161339294416239721877859866056764392930864778766307278022002374708592293590162710393404206364351173211036759303374141730381435686530016907321450439147688246368056846094258083965958561070391235072101991866944329692233513192970403208760462148347462430407629951084114763090525927882751092316606562144938306549240874899679887887653499923405281539801708486135858838937872076890576950860340845379932369402755875400270378227754678266091625754664688893149388691569329390042220639212322750440605592270985409808761193802066254817294239237906237212734020781720567328222768852280823617013667463192997946806810626493856799086195341622138504476580066928426879206329740517434235903960463171112741459930831313357228880228836569006088761423807230645565379246584980155235637571448886362618048185635368572875938945908157705187650996360131538184377678429661067405114983117792906024356656411693267733328898661824209555357468341987129917927060771489982487597026027497575073763806158635382729655142371000020510008279444205205990281474946828552490358818680147985299938052881755886135724508055591063125557112924695325723696838073417155303538777217608961158647718331687998438050802620229485156160680934162320153424324511070710488758597359453788625175449402531990076187931555512150778931421262978662676646894054297449255519791223419730803126911977948821945921915145737011681857636021399650551533150189704394582798592168689753928129716057774834885095794408849100439092720344876386984444304921995242918032493980147367260778154568200871090816028133614465949662653540109312829000467629018048487001194640239310028133342487276778294084255610220050998671144348553653633856776393198540019942577252352593888374832894119416809235130793674497831047120287388252481667760623606116741645435369759741295268479455410762930729471664136501130749210633500715762846734524318205627333164174831959869387451029575196631105547428799216718947860935532885906513133202657110561998427676898748534421897473431939363259095109763612898039458846511798822840394159614516556145753443453044360916427133901952307844162458311459437040516041241280918054837488569780304821258503083445783860938122347667873301924602529923270548153661795945340670666848287749140849725666325017440109290508693127603042149133409728181299189459309616415958811864884173302522217994985841044952597742291917929861192242185853432522377596630204503846350003734777796471711662811138907947826193431577198611081285251417422580770726865009160678127286959510906461969135113587161832787501465126069521036373785569390368791044830261488970540886376291811622735434832044413858307507808053760833732282294403069663175003786336090364815708531306045791519632520580349090664947099476799597882459240726161734519435768481931689643565094366003025069607256055155718439117556561347314892347611460307365493357098542534820219079906634391173490425753412609406109650434729318188915233321010924313441242134286796538827741506150161106435208034532172251281005602182816356872725374787346673275040349968102230293988762293228521331577938248092135838538567795399946334213359328387818196907227491257104316272897398596321088307094393776857368283890511318078277763243347756431864927586253169144775560103081180365859242269025585485290769792163433460681581316095303624212608257594271641374414007038298591889173587951710377528215239423402014018475434914839149474490520873256685167436876770571948578716493825711124823829715331566617569048151557571852477330933975204885837699929442048454058069630252166690528345175668850835383893754522166272512436298037552921495428861872033966893653375557005109454828946467788701161203642189559880349934525956116105473818212141171528435208632727145259542703229959824338800668781863249135332127867324880411267388520563143525769630217144657763282722506992389832107536047523883961915048160365504220572463199628757018186320543607135612931849941934190294339461830919962280217272438614389204890625651625168827499067634651517807225177824078383353273494432839020451377142171085310604375281542543252068165378945482697402818324011193818996979114671737448629500415748932803822512795704160413490945841432340681439258084202247554189306608016158819506613762577150785097629175471468435707810545696164156820184025120169878674851880154708891197675076580997153090025915228455080312469258404955577877141157717466225184190717516487376384428297383948667316098929650692738506117369054048618945081770198508763654766830544122807039823873996576719378128195847486808856776471580985229259071259392063198147431436333703128465806159112226551503018063962146932944516550407365379520221007156916106100238683803549564410610474026727964936953866950109500298210233283361422586372996511861462497903100202126159024836645305483580884603435328888303522699276357013658205294053964895402491146470127944875825541231137640198965825073224655005365029219730012033701015422740115467434868292385328014563604741393680835898524889520355900833487936251188086198556650210228296476657137338835960598545844398852795989492997540530302916624548270670248104614009645611527981365510573605870394789334628804789557346688971768147990778482273254006070995014523736104218952954042573978438959529165193311894318288377288674874841425104044515176120502074858603576546759727802326338654296001714374948193734156991197134638009068298232862001981538188140297676686606418830237801794191771609548251421100665611504580926325014899910431006110431212294992189110480622249713154138908780744881135282131795180124016828843451883465187081261823702481183530757185989979508163325182949675966670093216123556625552055774823447789519165193170670375738016233292508256880131147670699287444971754541704138577221836003337020130850708377994160782833769101236145570379930706286297057161847556699915907967856944174751853942521463190558205960364936384373307828707631079461266461858817656773369490241880008979888258121305038476907469549805192900839197048685499094430825279367296616096623185234498509874770969410491165845657503341799518979439053440821605335289682886979031880792518259003657044747913278268866237999241701064878035890566811557723090574069570413698159165282488941022566633172426729763883592163870634264592357310521770982087010088382462988351503212695898262530530815670462204305059655899946026629684491146453703554138476739408203193524906699364135614600028770338454806675982711820977343838031947127136667328156601257470202953518726831716453721772274952357413094641336788157883432719696304224823922583254462932619416420079928385595457394501307957548039754308835780481636120697139841729788784928837736749507833166299689662269175101893053842297255258056633738154159694051309349880488737445106767736014191308853234514746778077477205287080938870452009077194446106156377895751204095818326175723488948979879569962964430005960520497076653697023277488943464939315684899747851709184786470680123030254237634277448150270602846190776374605403959292989180788327852695736315954758862228608893987926790013806890235321522319442478914583363224029834175575097053608817623217015416070250253874512959171818979279811243321430083637845786391245671959448618341163596857237362322521238025648820489093257417490735700610920889110908790749147110699059111266095045541708974275378178131335374688649025496839811202872584528343241888129813208104349383345013849542283010949794189215753358951377926120007910790882798390295660718215805553735690336939697673793846641462015389079284932234282792568471505264462749923217513561998609985878083314228014658926344191405827464786984119176579186930666329533655991967426164795915366035731932293760220925731052049754138822034691338573868995318721242473969467994289128667762194583085025054574901739415248769742100556752501302218205408716124726619002840913089180084429263532825678047986824472353265701184606296313937259952158975156201128565594733646836156997969831509544186893550990745730939852654867791928797813099309035364595264865407823830649186370359498612986404725797381393730571185786177699116753509857096540102892155335636183936701911046745667219550906585998361138144522350158099204959059851539761040529006720090583847589060934331707995561109953266080964168394030742384566701381197223508895781109310859625061184648229838297330148464201547770643191086726418194742872221266901249502378077249903389179590383685156546235776775977764234242917379926406240609846476057612438726825083692443998648971143141770875292637410612797195356504062095141872153733048664565049318463896651088413593136803234352500149389814356832201126123374925583979721798890691680522868760550791692098635521332931205973403393270179480226558549377399989869327088921669939643682369919819624096667448052726006305993103915841406987626498550884823618859782543240383505875117999819108223782069722949637901977477870401998928925104184210382645681368149598706333148776806512022621253052190317348332806397525498515447514823359515723594812673923027779238328711571827624325576061921046272982274802284472820897518191774037224536513869786603839676812951071779850709063392347873986520996845321551668192344501189422979661362239161478027043817449602409945263113651877926936888267194175264085719756782628604243804735683274126371161705209644295465742658567326747652276659520926140834107696878090171783612145892799184834548090937386194276591070663810723451845248688945309491279044234227898150666657938983428937685012217551354690998804429012484258309703043396312602533671966464699168197062901413249956785151231683466419007204286995635979695999730497170774900499321112284481848468259766421210077433064448806955889790632737511075301028818703045028191338050401235741951286379211853444628318384472380264450961746445338243000738706077295103930778085609975214569922945389730835954174537516087685441283420815716412367289587571314030363716885445266025030206941168099965687204643293659236621128748615469973460324071403269838908169150217040448861153252274082883771166123061714779267018998169136425885489436903514462244573634193735982744639286111532826677152236622655853013575031418130406388884014384319866394689148891196251536514203554710504064856775776441052895383011705798705531617190194097225382825808851882922455718909365900534445046095092444175021743219755042952419513060338199584542303301439149369900178746613378653542604827764840474284798182798223289410281623849215536997518350689378801783244589842117999971126795008019240540519814111260870243725419593394216335837823425430274334204330261465164050612520656064993024795791234532513224247964210625287033451936124608528340368943833483010332148099431970651473445272219390958928574614795189538912928796612048624113754393101396736733158663047448104327361082170518038925537429316257131371130782477858755294224227426453769184916401821225926229696427699254199199146331531832291030790865068107007011191367896924470773496959861976162969098232291464988479692679610946730158289362392153467115170361146961280919417847377903649559130050225428748802641981811035504320811431208868280804946499079667943221692293841289761380080041936401856681615051916405263289540957354718465520390568558953904470840040998196096164588805953730031438338272373223617375094341919790456272693920557441934082843003789664093926365642796726894995848962748773423067722463744786838040654866837989335085006483150149090173098451922744431368654328479926659267019566956955885676358806961750672264323274561066177687824887204334397425551677687763752338270391444897768887332399549400861365752249180903713737255825815520830694772065377487232111257547584726774825381200284067971575766004511510161676806885275614105986462855437754039672574426550695795970595332821522808110462928203705622084104114386842678680903490685327470405634288505217613313045897808849208621964113067726741063421124830886998063256723436360454063936017867119614848097668894093606323307936986500967919884884075446719715360660088463960494896326061431674550445872646710524110046902404821113600490133249946499962346915506583670804937441305786939497130740832583931540182233209824795700240968063957317591402781477679059018547299141076803779445279689019562891633832519897295997809074805763303054652053685913737772454621692138722519505920862439680654410500570480062929729106853805219940046379115995097755709788662680657691441628856157106854136326507356395372326651141593530827126770354663347866184273954723693477761131123716754085149168923815977915426729950360717389928850848214434102467103169699310736711153923188166138730218062970164700019555501887626320097022910274509722620884057380471407999897231320639815395111313771078211817994435614569891066752827616531715261077042119957665146884244916009927154881455901856306466573728772573082748509625485893252423481951784895840975552909812967674788730027362900928497599026350259869829987821975387527507460173561169750622220770583618074913045759987959301898397453621825433536252836600855331658605259369875462373375078324482896607502197980649164842338629527204848733354721768313963204328936053033155185596443506975294870131891391785013674654569104413899937469452741848960616286227211182582115853106976147629722303700930094483261425697878294583561691387096938894259442268961705871522118849195121961377893455233164114249578185034546396353508388155709614021390185522037219542181770056551155945738652290179551836872261117990178865507743780710355176421061680370228972085101660839327653284722878019504050729706097390185201652653406567614864890025069941988294624752625658694789251834653034948066030813366866705440852101409844319085995083269910019276134496137819521492166562619345681818930927217471958680050568741184303449978554127696030212158549939253457234906971396195257277992294183691049737885608675962957997164177829933930533141992534602199080153176403299734072427300939092736209136863911720109848859316203265565934877022660004270488521141067883355974588182656205335498193082193199934657416737865773723493915675137398316870917717024099649674285970253855716445027663743479813195584085184107991490929180059729753494562920331971214945407220182149606038641948734409998449797737446792098582961669078753730663256021319345942619392345787188873817444528505486248208663795127511350628825747735173429186250945947036521264844639813688822221603183587856392819706349156652106177288665361204455196418374559537681786914304006944177024119368151416151499133450930407551164771324429477846463964829708601739671180476096384532794669216614430906706891077022535652152132084093450246533594878063421760587912360594188426849620170111270145562722192049954260597613985807237179680657816694903884300218051880308921058055854860291668298835113128826554935026699822033650829289428441535696236744092456474094585478773184917508608951873961037591554090234291577979777604319674577531611868604439408788969208207017667704508081122906965810098674260826473080101808466002124535552001018461679304588857359693280468005134105222327670534539967865161822525783366976120550595492867285199891427567416609429278402711153231901696958736334293676456960064872289999638078216294955627971983127291112799605721029272336119729726154865468450960148017330080264886646150141062166268605392543532821160633918722959271694668532218025699514728406559999115852480782509075162157989044809150172103230552695184367512595478806993320003392322965779324276288079930627900234525142992795127560860905980587981885650756144545788840971878210228486400420867829787967713323250473750331613287845703127529787537851974032772823064987255686287618682276610125995030851306669524206384455256936477833324271235999824691851374507767097761824283409140679114166101204620383040195452806689026298524512389414851385049922499030367524047772268841390468805435393740493872712392687713882270770871547482762644864415539396352203994953437750943426530543412544795017340053907075899663325965171127333352018080208905324704595233057334514870424062007276119794664726360970941678869370394608911411152904521654525564158428595389736599503932455487712280605270130341731817621821141500983074194463158383148191699514996946387037821551893580450365082694082592239389565979887976014865986811805973713938029529573898890204642593284324134655820328227369473812785672051942653718322776858730814861283501420320533491083586978823963273692368501531915990198062572468571212026100812504155912874302931013588492169127666111316961103809115842241686788284650293521857365176724693287363433035434631303940141093940813562549152002368275436636424499552158737600733464311334930622245522441498841424576765098480094024314721660850337322834892001119969218443438095575942152511496001647910949660609932013014466725469518011013032223297029669716793007991309003949013312267625864380335540957293803719596783926952649425257887885852635349824048304226026036511060417768792449618921224856936865946034596891172421367785274368570852695119689993793746605774867774196097779597196844141531952276445040677596564851275708982432985519074823628352526764473843176935263750071300174856872086157615492263222655816587254123900362737622282103497364778653936584273982713545333329278177390582035261002474754762392185081888980084178103878504882232108651422540386947481536058615483560441422442691895347536501508656018534531895693313549198145247100783007933648376377592128435652341377166314702684117403379965742482977068628544891480640263781445348752930822840563009516551184520935911774637371277794939581818035627655607086378189919568121152367987484596511327964545196508773646185109064735589522518877209250695763019353296987422885315883992697856304707297687991497532258774980583011324335921524460919467129597782066504755989038891677995091268498516692445417301539780656534264404532351542664541035564410443731676103726889946377254704330797048484538533169120981935025918828379870201564835048683801761510015573202225268410541976427759420333728265688721883897444803584894886789359160563175433782718513180412908108339091822624720972379399665928937672380213995521436012091706482294863395288578297332541934965858450555264821868253910326803086931460566790361477077333852175634048516533082957405156967499619860171233643218685112740589992711972072192154214771601825562297613722236892583862910020579132109402872740897979583107379417688667245287434878471215206190490692152787680043562775694125382357801889281776451652221535293962974780273359138184948389313505995628728223639584176006008759310018815660638145449884162331025830084317314552082250705114580613814178304378160489585574450887751654210599409737701859721450505183777974999052952484430062154558771527557314207290245787936888687739597150675773749515768934384226886382702530680552652698249301298741149678784304096749155656240906351754434985558991958244301192254026387345540618788471303955448219651175992702494656144072832018973679172323006425132312740733323470133620486330304139673008984068823647388830176226291825734495851601307891488542036122796768480332917834015730311637948949547788414645105980542982695066756843914192933665522739600857976753314013876151857797039842530708788769228297088878938230850109549824992156206432200320666700717970415225232140950539851514992636096906979682520941255967494580429749753462174462041278042328364244721061469901946217760330161923571062404994722967165086312230973569465489941463545536145003532616487017602799371304633143867875384223029815196552333715377390232552341285555774088747981486850540690811370060565296352515878497868758906378160526051546770362282961932999750041366144050545435461523990062586831402507280142058628997887700687685566208064688112388946346422199003761499738392544652758213216683136963066097747309261427627457617203876390947854264160255334814216708508048149991431630577074759986713044758834636910080183547713162551548395269045863276938800701792167354685228482612298148301003689952761829450994207152166503764438008004005019846557390161567312499895366814890661120012099098155957868306798457390219494757519687388796955258012242153478556897017398797495469272419287777159773462152370893054363370865144709053386412672998518712545641360190403213355604729822073024401293519084812691029913146526527443851078007312239945168655224835881037071912550348131992255406847515629332564438939518194056328026560066226080845841374647545353820750640560363601551201373567419079472030092684874389098853678728061604521525818055218817786593431600864497235608364414932241855049941159624639978361139223595522806470498098329693605568560065771197504866777653693393521995746930603718722882500036219606167878738804076939319056610976647026700760421377036472933644953972346745333200539709397824427266818690187308677935837035410715059633882670889629641525423929152899008051321146045042868149875219029553473925402380658320977109595050098788852371016482676997446868116689757023863417197848621810337562724325207687800556471613417555884843414261801129628208904742588390451502154934220488485391110482997133959094464898039540794263985459670726355691197883160026541867926203434081884773519392666190048813538597059845214446076240936322626636176729190025135571901877307109624017245288221568638854883638323939401481931495581711047125393834326656161219270016331860389706015758742635294508034177884084974773937327487608544070375950788149519789126553525530914805440019299271578059689775700670055832194722731148573321486559951842706483236455290283842098229406555048136432484906282768706754330537449484134263209138258020068605702405709471493648160830573903639978679091995607957387071605846558956909178332551858768148901161366335017143964455133518127907244504487511191668346672881603870438124066229531216531073231699101106371599311496723435674854527587855207475660983662088818409310980094959143935368397800932623800862369572588439696657990599820447373655670121430228745916694768210249484026965275831270620775310616246728221874129129348212882931289511814570247003611660208983732932355782910360347633498344627430211733770438896272005079692481226804579585973643767821579805026509099010954942837187736795486620076446754635067799140059186980930753846940475893074712469065637707281390338383124931425296257447617199458592215689436965994685635487234805574362234281027472320114028019825442201493238927771784950664923645568019741359648530135134880517030028887797780415310353635298102364620909090632108437806619545680972310906807016194424919224401932704578927830057917581676357811806655144580777664144880356889690482745518168777030422338666899645210569290514781914794332846326358310971988872816480840328843737213152989788160766557122141174118603339146103291249724564293316274107470767008698747503185946381209382114963051394387583770276876264303496890122017532413305538920613481801278933953551541151257913512936147920971297467337717610125032885538574388853280755817034736326758205545949887718705134349766640022629996146936861999106322752968960655792155298651739441737913824753477714397546228889778884323456495716000312353157097378449078985618032586818726072482959381468129600129531428848411799883585312931982911003773490600983935462466936679822500900506049914761805041584517410431636376186502125015590369692119749214087682090413015729575807064031715727362494592913529255194434775498043716031471066456171159751215754782482302235030677750718602791484594090091470409190733944928865955707381343695276889052945807066377988386374766610988376217961232364985387994685883574720928549762379980138922165596739883968593880976257606205534686100761441614047707590026743599584044385171582720538141122323474825096622498457128997368860105440155682121429297089757988617913919910299224074088896703690940590889630419825632885493685995469284517118487790917889819735738103074490725639128182899785395023730771394706660138172079061088816098040404167821371239575136509902834256295900393233523330454905342937111500393305077828275378949121799526550736641816442828576992362494782686854032505403077151915142181624016565635873350247680313400143165088619600367349890089556619945362055639456166045729805427070966771989947562277721245827654189228823874576979394387778886605858368994842110749201439142885851811653291021469470099809148391387861757571572502662354176600362737007355808157142894175610037124804156789699644909130354107586070853822299894785038732436656292896316170000148826394252079730160522284185618872679014683573288111754507309517643125047992794745465447519178213097172310734386119821429012953063863990443299164742538992288055777369971552140233126606966181684554053986844293340903731027850871548277605387347316228065401579033237755270079775210689349734263677457168294688794051409920656181019007665051069238133017662891576233093277966095890759534860870529613206327520141941736056065802242983176674240928360543477247619346164210499584783893130568434886595978603989861546136720761332224315365585517261799316057485493901819527250425305604776585788299730681402806386558631417101743890909730095626240964729050958070602516646762955487219712558119711086457770769912021614269286543855919258875922641868034406019363916654656767177101712491088611974718445681091636950906374833276364351316975594205897736548865728851847703221685303279066457640358764396494845982936598698896841047507826429552125461833915637941606588206325749963813493852860262396359263231599937357666542049703876726084693305523238797743432999887038126223123322804620026143305963163262937657854556624147296276893042007059024104454265111589406995477506111089942497860804584360497042321071056914551677796488374426529102096067188441883198922337087164663780302583009497442360255642823197589637256963339602386172896125911025059634975092273373989404978309768139423783082693006649824879413367092595310327430800220946161442830324974216390177038172236796477409010078382857384768511467319082468930706667110618576320931838107269050091840322847642179573032099578330764056169562308485010064981913246886974494336808894000575987794637083068032079516774634241886307489824210376410776872706887645110761228392940295995257126838109402650312017872601376502156893889879267229189243342455622765079077961933658913512196689371220290999479706499465892047341363598189433172156671338341335830941545831919874025195488381182658008381069848631740815702741148970846562982418518489006862294477273184039568986354876696935869718752753795886079741976017714708470244014806405673885065402484980836478154684691951091148395284758599320966050459915016188204149272212797373142457135918536592456298598937140989651849959053294815022987676796448836488724739365979918435530095220773555058513230616608975212268132054174582692677087379965945367424344635343612737480103346807752143857700525517279327044934616802893024504754443373962201057208005197746041320804980231681936453284139638350777975191280931251238162830947127026424167657929886929519109537982665040494845506874964232363485517079475769052639584907089638950724450647224896108219667471021892357163345228016573065783757606992835337351757881872823049326392537325957837630528127609442307697294918400252049788411789451642211878604665517251532227443206550501908533660029668463358143719537770875903305598103576622781187119587680208656791994661482800671462635326169861326617120252114339147517927039495643877712371066437564571492822210154632292719480917617868199449331607553492528559463870972216118550536474018637977487324457549075774735721641627599918704010817212905970097252069515809588733148974944379139325797224499507089010705811633033543423375612902902293433497608827618132262419693134681669328059953477046939431621144140018115476402698587462608841420917413835430587270646756271396296580911240038232579600314759816406869879066215086297552965099227536940857553286552991163017730132026803490102735215707119254120786082965785138152198104216569353763059509310314552165957764109455669807821630260162004337808253872046066788608489818229857440311450968974905730275591365680713660841473392120154738394225291399607099946828234820209659812766139377607059434550507526238781165206207005112451462051785861532758720418464395845777303224381155504900891507464891871646212375051302492185363025508333496361254789857794557140936446986363791279821802811667506099982065575248099336909240110578379190037194070125958803514583304550497430173177305681506640604663617536483503819892449857997691273245220349977959609838565000789859361448473376268548259113841003374310601276531663093518865286321745378233529675837161281644187638985955480386793298970511063129552911217986517731716377815690298131340719207051244226180111051505581859536515237656817229208321828368783775653992281803128714621407029145124294962554555355350681663492577213442291592478109047420832460000076219126757327184113503827896356602175679386346304914211399443568797130059674113101010982009661511151846267896707734477064413347807558155806136882748644248103871616469270403479599292785462185204214630762805396564845217531636568784764196404032945673604876228249884938467173759693597103240495220863160190336132291679108394594182269428897735806280759924289370199973340398660456637330057692343469760274182344468848633431563636143554348862147208959255437898002644205025540235105158519140894512646583143627135317637745172135292246707985875699363995528811385128607447412170787547739126588957599026286522795199501766683733412068271920416138915736594228477587576685104407585579939963878164659920145078318286511622979390011245413417348159698976725338559752810123143385623871947267852954380375020025035338895012629875852544362268752688829481404809888501152684580220003153956675949074482833364021093026262314192687488398239789816246350189245189997397386765677303392777706508708927706381428974857313505098248971158104212732908587705265202865642007123708150210325086408415481118888868885003112517504357940012959622379634814790140584643295817533977193223600589950257940919168102990047582925231429491443511475159727783504010869099203058335495751674604538154718560515657500030472533515566458166682275661859262962264606197719906118256993643317658363061555392238300558211732246704552926649148625021675888366145733247373347076205446286808432839817926875871335267928256274075535003712669574325763722987552017067919117412881725814178370919708424923054449812122513740542993115799095290308902797696772173882501960749424083257718801491728799901802840257464879146945203819085518560875955255642842805287424265382093305405770475681373473151953243384233111807896589956160084305941890883686714970864350412129069288841034593578480237513711605798679595651713374632749576419051832386871440338035242025902303944234244797751865466848502512515180945660985128221953275556809367856087792521653170765065264470476504308792122783140476084425827289796375212942637323146328883388586651089057196635490677619003981457374945534865633933531217189117833246295108205520761904788752143001886079397214253037325174950856863197983704779856439319294283231578168332603110103926182642743297581540422328047726590956814264339446772015477245150630088582281740931461618888450602552501540786316001758968331897105439354825486300135712659100930866118530003723499824438817538378755827064203438629771282919144158536622100953282630087998875827781207026232315919024994503014055957461134456316849668249640895090365964127558212839094307876441071813956300997746194706073566540186992837180773462532718654347754443587414043425175971567495883740765517522013727912407253776308118579041863411321782526437845777150427785147653739278052915355002318232389622675753259675033511914341522383089343148512811040555179800008538257511831104917704244610845379683723772809930360231793602750019620197114197748274851053360971430307666911127736609074793454285324274929150913206630144692423451388508838024818796296825090426489284693472642262216849209258088300516294595507150271820366489827182135336917512655628547186784073986212807548679716608157393494018823828766174838332744451668310088411396557518285381019387017219918457771879212615233725967134177096593945479197907848335471226825084390239600389463246506446834119265710979105029003783178100996952252043661320073731656292335574127032363241219190347803212459457661012346126577562640221748209077052282298194854950223619972433651497859163383665190254432686669208975076852839130504837265071514412590958734701887115610904351763031506340760774647134121467135952682777968881780853960434093187027856121495213966742094980962428344795540572307182387584751900219316247118295331737347347121643887432537692368873014705101102223647784910808339026184917442173105765397245991641315945706136076481740585498637788779065956823948258242547527483920010726088562455372599787536398200733895461129928114058220555226376387754772681675663642567206377149278743788731303593722151433799756940787050586701429172940136286817164963937563260116862367579659620357895543197464082845794240757784883375588577118387203691852261499909392054431617582134756600454828915553436816816862293592222483739505696254681758942054298824244792444552019444781273502214913780383160638213672621296367089026969821594076600202017494840516728196461031890844637267808076813779440291747152769726949907631376574233936424049516759455461703214670889493717259644844411848157565935477983783207342426869077185975129675557603116380163622269565374569045954219525033284757162546576088916635287123475896468039344394157843625023386485584304941733833615406916414355502655711554520884969408953464088849443773294266235992149143244942607954302089121554229272008394836461412186260574628024959324565406642398438772409119785116335218130408160601849279448396917892693474220045267273926359833373690946083323197009002181875185709680651793811480499952759687326194099510614810033993902061341931514552775054334979438194086333636521465918067264172839925602364769557364083426289446692769082188118081075304992839453542284325648326724286384083301342304345369170799738474733197486447798854857807043668081400339511553166088247304472423677838080246380005758788390701512229712444839344629247989073181906370874467876277366309086537415906620342547772182666017410111710143507994621506902857836747675251745557887148369907950761702529131636011603767288806897203354136507744672154903210603559413347812448006088806733235180852089481487461519474263912140461798037412030705591963078479585824554188092933835178362289103630341507203035735789510332706437053213418296975698180495277291060716696015878402589834458342045597489097481825148526254039587857510386138085527113208470799292295361120117973116018295102734206291947393832275123867479240349121453604613536320352246609432992037703523355097183401081990896753127356163561181769696129807961493455619625697395416464594315143081128624427079729020765434575515566988282675876210440330016272647827179855542435014728093562075162184080758698580604490769693860131622154640779941210152833420230467218327881304978747397668545047347458751072308206270630702506517596998789949449265490489382522916488638297111057166719904383119754854961806069618921841342792959898272876875752128034638513124136648477643244066973370083981147558294188734926624951693120036822639083066489548122074682283271376802100613251997668065685735322909317607434822138166020005202202400537606883845295077716177532499508886935758916387560932585125499654251542576282164700873000652228993717718776732059325215889165987771968876509861060562090534467982740733559883322259600336984480609201985477218626234879011618167483338090683396121742305487225830660827282597020174715491611385039778486380930023713592224642845042480130159165657278806895141819232099730212704191831655054328042128627889297858807971663682035552066710639971526377375909238750176372914598927552185758280402941707064112377544994231946104788399094355834744287966288726139512806129582791799473252522334460274598487600757939798898036555371784997542898649761637161679619878468935591597941887476040733495838813345135978429406042805747418839671066782487092449841821940477474659037348112494475605956445988658075637905400214299926454681775820904124466619032505964811264968258097392573096452462871285446808435087444059786926727578263163726762633751311284235468809288101645498249574564280580529779171780073551326275697220799898738899771946602086496779681702997847775714391317897167854608261128490030413544542907974623330888468120694096417327010275133108761805588865805054733001670820760908016322443647744932789391506618791931152750769956830964618342440048299152056344911684405035589149613250020402240381580176696642075288287844834137987915492931319802244870565542790343281039201909098924699696890773921179971988286117858625861811515686473164348585291093920812192481649426432228474812908145479608369495270171079831652397229755219112597275997373807366471783515739294627952177962304238045858529448166272174026955620376341176339160700342261505588567116676603659380284955251820015469188515233389582771017165818260850656268998281587623044023060527996676650350780251781929628314325420202652990860774149742058906808817968488597154968412661739905229995309987715280038774966962085425010547485808821109980425154239688940866145296006233155631295759840182088850710336572575325969877821335515607915353053526047317536343925627072516318629431529580414662169117880855635735042496776299685609399582504190828836401734266220970169098727955157348239043614899976088629514099680429427897703833151642481404085651124389761519111747550607224844761322315309912164018932408896324932367477942224293040982192028153296158878444588564645665577296873309920522318022266829442628048845477083506478766439907442530804467282405338713443060685570628209373898230231437299566776593564690581939079859781242710182061172334409611733477789050826791216098030325227350441810648859978139408503834151589236849818781379882953136639738379510446460740813214975945365788923445675494706400238213169398452102763094848261311256975745402302198230408286500682438507576501274346841184073319983792116084733273420375600470199198895993715486294056825040374368526155034073754203073467151198921192646823306599475177406951866805306570634590283152902720172262118911870992415587198296661171114313215975689351020187942671802392890696039189256409258354928284907175097372529169360012020796358619758690175024866237972696436380317263051589439172202710569743325167692474629623669011978612642236084283912122935863941952046546489243386632373428138431583982528227497450135916806665417567203226660776016860719425898349796300151968019702385478681988204491907987913199868561318715667033042106444073036712875880372917780187082732084710908662590073271682983766181249803222518858465652532202523405024105682950575421178446309629674597097017026883474621148521709673482176226579301255142448659570192687334651765328968773224592756137165832732516926722526017086551778873583899593238201179209199224112693107498602512447368329075952049052466065087745030631487897798185810961657101045654007491379384982429730681004639913243432231889357917034176472127505434911366086227888008343696808419115166706934626448782480049403471629444306545639225965493114990703353453658891143663056838318681207734138590598689235702044252390160134104205128890344075700947932899623662174400765240374102026689146560073832412749838594957076912074765650743774167534334411907781696619592145642296999936610865816165578468030270711448012176768376103350755659532597513584868376580787554157018907357244629889378687227589912565881278827601430225097882238133017382119955775511839945513987336436692668259977170067554368670032013463205625956196185244757209360120213720145020159611530225142698533717972315151332716344239250568307676762005845972660923739917947600099184370345328921759319946935470251596682059725814268897961188435911774052285533434638461345518484346636847711061366924668115124454541405869574858184425261653327761885384642048757356462848212999627161937267843336648408459448955461213230021480377629223563421311107718667525094379120756895312435174035134351331622715354686267963335825383192924146879519812466157518082320151532834047810310311634112275855095811037422877117505131777826473775235506242297498235616018639715554682852581991640854802100098311100158328447947894702768209527579696135354711138855430897362299214470749594614398337900814414148055193605647542310854420496002765839552503645094984176566205662371498581327640439680410146475857809270565269406546504437277892108412915786627116072774093859551335324524976130544273178690079400237118140667411025730306050727859051514706976073757303677561983215240541603052642640658488942024555731476903545208336710299844325903120147495547184001573712199490890696258626665490603406680290898111794017117280081384594605514023950063399876605513815528731545954336475174580423909151740877440795669403008886266144056935874216985445744488359288760145469974569259736625008103461928653430767490580475188746453419769227423948625982641606681098348195354542131628363862767621731689903806554151383052598853515964144521461254766907357949278849754816315066310645804053943753737527661978760977044793978648803022661265760412019113156463789104593072359755049041515085350703988494979717232793802520310393891881198196476094906495660179175898770841611642302981430638031266226100612539518111666899949059822712765627600934875239141903899246518206497537762137157948607172880873880620065274704542499588720019525240078048239535819466281874391748055053076347422360384544933091170341586234824963794945273215236284788928167430179328705153778866412540971554256401705847462372443879874589140228608765735367398960064538416031321338793467582112754142633090600525537250611572506797845698759281501846285917121937387748067196883274230918430093005356070338874017701272289772352526681833286612976005134400588684742012301915801516443186343456287180935531681510906438829158049503792160904270768231712639068783525810933295162162018203385187041328193442217376444034051355513784626301654583751978445740014703854021639444926256103812154984734297530481407140880435100241205705462324335322893216131625459458076778565303014028405852235322072676420898711547822166149850147166334203041988898036497315437842430954870387205833461953477125202370609228227957042235653368151655152911572219613414967494437322957241107795979972755303578705948166565909108907727598879832898033548356513061226592199883522725978635168910392430276695533694442287913993914764798708697227073419574920854902360172476164978519269871507515701424641420716797109493589339846847860327781522601590594219047396538356555787269915991489708716517487244599840207629660000228106602047515729023803650158975510074511980006819398199324138761423772745940784388411772443077949180758630475609277869760646145247930438441121084953728938156852647034154720709083523416717507312564707177987605810135496389076837925362180278835891023826705615375069864698081652375313666219128041161045411365637537579925208334812748608026773016069050520725612173578914868664433130693881678812298283178787064462003404582843558746482533770100631071884212574319082192300664604367819703227932530263548788279663077284054759778940343437931645507656375044301061995052601887917801306370097370400715989146637460822379130118061464799109889728753568875512530640144618314874186278291981924868731031930307816340641120739916957674246993650724274148438116247848411825790917221372761119750044993848047010972261025284797028302229977424071306346520952554859058997938037824618327947548759291574659420443768822861862971801185344822692298606446304741689308275703884559055912622805481735450117964204693157744446896238259915664025936924314689152244258346910504555595009730922678033009034452608068880630798267352487024415054985728226334639725481032869141253780557030319875716738304750923491069283586651217190506652387090728612224877602946540703894381248530111390637105802621138270133930799953619967544941760845781826919808570616984519366263621792597105933998834521865205526853607393660363010250631318119621536937631926731074909566567127650574302275801989976236964307183847844027591669329233789134873659926653006606315522587089078354345084972239818388607821823067442306789858453575457728303448092867950061134897891124496806278734663198085357576112479332712098177314633813214744521694093401670981194397116666972574565067036044539764919558661185627540833022290549016018552237023406957893394354443457791798062748558150483550637931876335825416527054050460673451741730858224502835397641788027662346147908549101871183433300557218408844047895514311186763268196504863197235708774462648157798448743702053061977636579543949136995583699821102716072906515306963812635832055995516526048181125963774205759365836374047922765325968161948337878048334354815895748528588417028709363383969042405448878025192927276588677213694176033829995630883849578910674633332816012561482950638518555481037946242114301237303862084999560381638340993225797967869369748908276475626954107552332864006553588690143275796658437689453274937760899416811022940262241917661290827290743636272339245415453286282684794358535801530935329618911016416818669200041546574231228926342363614043076436805396740552365932020909311853620495341947091747384982931766450003387150019535724033892108170881829455189678771026661784675268436387045575576968764880721422209783859329333401185943101569601406856747235890780565219880276122863658833581250297052426272161900757241552294307872562237799757776689105883761720028138793873217950039286987918932382560614176363635922284558880157506691230249813128842383414080921686320962660156289487459097413745958965886157544258453898004254707461259885970694790063702531923450829453244934297473180754823749520062427678918211083155832370342780223851502876384404093563209863809909529279788213259472068653683811944733511307494851846204370844661599257060332134044289915956975351221229104078272762973507888451881399223812353157222596686330410980561080739716562701351361013522441919427405711587507807183265456589255093582768175820340254906367550424423356296783268018404744856332224051017377229731456760425748042745441745312219256199927160285607884048623206426078945843836143805445078526242548698275407784482084205725961780773889029808612505663733750789115834439840791341557777170619187953621774677711265582454719345281396256438220059940008275480741402669112478999340852687478966166316475897003312644975433090704622263075854366497910750230779628675706131419571740868525693479345147800169178863362843626895960200945421685703551557522023764164066229633686103311238697960428401358062958545230340936696466022265659022232564839229731916649293444473198081255267083232460404551887801360496125962205792839304805260193150301103726616127176704724476567921496756131844648324715349699570720000817204190762522619050011487965003233610098124430095837105112119732792912253282875778595207177726402024408723842963174204158920856614059400001177353258549626412120420859183829539890016478810554990206392137398176604943701291146589344823181368815855501487190535743989898274203703847354090594535573389991057337897957437834179709310492467951241288614658077740628868346388645021176172111700424043736793844142048005940992801651881520776864325661151914949001053115306921617978113283948934269333904026406002647699036869013661495906540722690012367179131630539805677252882813043335002976896217579094781574595775289857775923621312141234753249276475511920272040091551546680557036837151811293913923489058354647307279697877057894005857210525129706881479238427021767081297714305213219693894419776247937411154786413987518759780270099603458722022993136140292468461784324411145509372047045667306582206091067608569718636785864146697491621391005808022282623677386374149083342731209806439513919388349474279180393741359448195866346925494313283664246557098200144385422181704905659923338272405490452431325619872246153983925659920452878007627622783686781072686793715800446890493260449177482513476456186969892717109102649975174494423333401359829836375970247317848301771048523055510475994222870270375697966859328319522028110806643509903636247976024730376789174953489666696155029006309386469509924800798088790355883322115667234096028141960830107796525285037466068746054051479895653153719771787060525236821158578073033335460384176753346999861008152642046694319682121341694302737108317591576178613533184577640627869468363568734835752779125309631434101652907198595193932015316024684275366703727015138837916957807024731036089239745244909452329843167082393882481232639499997568399759225948471390533898099706367638587418879413236839383269858343763650586680594765809547525535599186563750142234722361668585968257815318616466959300310957977936271264479971499771002446219782921030903754020194973281536701996823927789434432724856346931936760832088958281001592056871083409036946751887497044452115743664286369108097722367260226133081596710490051440846742927791880744843085367339552508369721256837387297302978229025044783489168515526863095216654248479863187014863242457383113560546132704724070906307679979030283865195828059165738441455038106213835766099829371251543635068630364168638316997655031127730867233925159161339164001266577662479709857540110228310764694026022960479778831411914629941018910526479341986244917250631440207404641736768149416324666040542162557198778445489403897601205285213353448027390518248543934590672871623395633979575763332367788297361354270743231579711952506801033823671359048590131925319262994650958465967563329665277768649224863124188798988467337554507356402117466118785081530665329357438342788578778741707797554919146167469437154978684449487343192064312904995011343942727350208579040977050281644103220196610624085741635996433088954610359549323809526172642810181952689043884445779589890083778426900254375065860606554159221037784116930757713206158235653387673545807555981705048351150764036785389217121235783875994169596519478205294976558290918631714753338160908979500597528468511686768770200047635487314363707527784205703429654106884542919618211566810206911307424473930027588948363265293756853780891231841648782582579517036440759498160370868674645166674734756935147191314679452378332933163819308535522551907163788623740147773658343110425782294865325365665064998310134970902882441652401128900223907873518344441587374018740989656591208294906021158573837075006216847490175111033372300288204252496046425914905612230491807899515594715869789597876717479590225932982667840748994661413911663402273077815701592838246789693191619926879028442448038199492254928204623318323336706385991949497818043432314153981267144714493150828358326944878828512192615536514224441973742645591261248119170431729940116629331737062079468866254973172345955892346461825139932118402223697526713340510101920215175129945447174807957212181116966151498368886793263739185823034999730692291213225476601615820275742288421123292237100435719271896258225178893145386817123783193229145501162596428721924478082433380759392290733500094516798482053953623695461012452866726340472410236684307245098395844317272395994007378329483342852244782627804109768475929852924974933129813066435846630404693934765177721230212937677605181720579547288182982479120419688249092900055752933705413005304924913172697284238212000471583777026711533239562152972652850683601557631022387741420797360613983614501027281298811246617919254209019910911200951831002860387494479807017752684174702915081029091643971569062393313336027953798856803331119734619865066485330936443000073598194648118773568912729317028592786454538992624108000469784812993336908265897282741263468999810450485366969538834491082984656135061321051308707916008591078677555736497957835313591631522746933545626151306956560986331941909521375722011628587274758181312318022004150771575712235248153485997233045009004353325587764920778741167178843269454494206986009803508094143733447361620810467222851526544128760220708093869619057776521494016792759611234524480456570463103821494306471555284121833603036229489686997483456789739557766744965204227885387860987925738955249057585964159010314610140168103613227466383016485652196324523762213619175209078406019092051013071707648779427573093365620110502925606758045287422691569844027935916123140752786326904714630295708679948529585408976155711855831337263037306347843082995504286018271953118293840803443545126226084934445797325501407425486889791591684775706047786146610331350609547247496736207587580145101266627106149959422336125824952047157864288551061368628158880822874471004709159471065992408617818514135535738217011987336969077648525780717733635597768216452645730801966706087004763306487604414977464621367688591462278790388917473520323832765046567311710799761566854599702539834493964742820589151428939124637347014715321696156435627432176627158838292829501978703373331271250839565171482716080149998699741027618907936120346584407300029471577446388482928015851140078133994838444412235163532474912096276714725178874381685940793004316980323847103318769825726052498063005149445111013873952267338373891163548355355217004269232268687086354668459194118525251296736787516398976786208052831708515662024515312211697219216239634109637164539076183130245277330587470342452568693491010493898925006926739340747569606765818539258984560594181211629145352350111585536953541956450474435791301382817539161554005454382159398673394285577341732922925629832476193537348027801691014298273020361477165694301623397327651319508665085242555777265127570213958495051103917059150245528830806370794224434151122384723144581978053854453381960201230604117784271891735827283230304994618677564703568373656987673174513501340923723696817929586757566913080657018161082797385666865447650559234918718143993027998806410453844793348549839359572333790349438071540198760271629482290491028144177192466752424583170151717049566182828224303945090585946085274290802164312680756128070716619961885216918710083165119561055286923538471313454868363590336891113684400533929893975527685487132138578396405590823294649021559717826227705081079476244531432042302541088344917215478224075994218248266822897987141311335950246810396394797609494016134695433466328278856325260842711119855928285536154275539025700756175865998400417980302074178191581276398680518568371034258148051097736370076334048902603724860287871873695417128353020612103920508345640760248792234129515269460057560453792041235821984678644328043591693160572074789441525756287360085240505078272939326615940091799693459559013320911949303401577351168778409423074108254402236587915851772245135827933390342565926452844217841417317233067565046205224254312397912052119186441111751221907743378345811215286610359576116032156076482882710920217493154698531626553537809059928444217391062236933647217368156468441608092092076915039527336668933850922668267708404515589451930092125893788060326612103056076202123068105549052581994831100810132970712398436177155449860788101434218084537471467050949169551086470148942902557147674990446381071392195637392128528635668134143247355523676597828264097170669430992116478378884997019799867070661316166841637136179943386104408922942448031932095716144308864062705260743692843896352379767059330054857449471965910370027042952757083900653308098496152168256982703099368623322934233132869245196882412038324902743614407639626707067795908488971461859345626420271089205089377288456660017398782377766025272248509062188699641183000587105990319535769526926339889716441263402603440903880058313346696255839338974106790048080805766602678085301886287705073643784234521185613664966747395515686788356823577414296559643757268712483153198900693371630479170994088340264679313552112235560072567209883944377475279424592532734257316977820585029099035635669609954692548259455612959168565083404529715410373176341900597045290134577696329283795249812700843580152046215165359489156173054017229495109965820687142776356789604287312989539587742710031709768790238404112856638152828714095694097908542487756441221110681147374056127396832883984258013828521784264849022292540555545482472491854063831031757410088619715018022037168492345271757843323903031497385292297287298082476604876135040929467972825429825241388522314087152080773737368888001739478577568290871011872105940543949189154722724238710314004253200055825662186608800355202761260513164220027055581419846957166333981595063308899490150916551604323185914041241857568551864638990012169624971083316386826189734164403490941873763165521561471994651662673716294667868518892309928337671929206051185637564983728742026738768276799684028918942100202842166714108151210410345922622253355263116138803871350202656976192662025294675376729081157608088630796269905557577190075977260066088366331264986016481905953953051895171652770305145988806462529689650826269164300417752605058823666089179774336339484259977717852260600310099935904209253423902714716562481253446200287900175961034990140264377867758374103137942259139364576139108482828255338623629039518739918082872655990817990343740788886539103487590793663972185561871887157605435804718964950369902556356636337111420073128099920391266804872217416418070303434880828626534729471388844824182528662999396919141546916299145155509171662988766087716454596993685271958523300913219690426682641502756809257871736032660776919711219009268646782228890225470463688709416396124380466804754855050840297970142105977021919754624895633437279410481729748632600619139936717634616950412328543816407707889403044274038366578900583091471037250310464574933813622988531082578939384075235379979132110291213302351713913546850837556444670942703637686709518029922888056184734000446075335278907898156099003865734165056816496089453710253926568120439264708219668504885493525410971341206655327124224615793391228043593299777449696832901411980381030310156621076267769457734391675135855774473899306932512943670369661858668440660511714340547280282081402723218788086660790281040989741356426814348507506215811490521822210157891668109942186989450956164051986465003108739708759688595763300233584166099647055720691329602552781462872538640761353140356724868046972382727480781591352576644493829997879026072926669045696988666200235162879960520486311967891203644601557843770696935866105185165245617515189774073789405747578554988419745346960375359270431610008150403337132399204070813943540229467738885330253573053055660924486650934479835190941489230098431643600975434066942234016995956199588293841087119256404005527332605529044066647159703667021781848637289353975123204094150658726446273336407420987886261327374085037500531511127698169966677053507459265948158496183917943750195866075283391532638445846788238931081948034076161582704685112349852466594529600544461863589892546789786444724668843714695236047395892137812228925046582926737353067865503723258700492834361531064431852378753834437261038585988271804448839130136805679159590706692188504430343669799646312320756483095241657775205551730992137110124987584291145099155036182076065308912931074632847835611961137827593975276988870879650214392095064129401634135756484165818644026067728301319172917438741342561117265048006407314947904123526406996915681164274368781909988825608104567025252932403781654640216946476207391043465515283958964068333064545097689740742716415260471051733563504530703382805332428569158683496844045036415281040145380682668517265687707913121291603897631223943353484045997979830856594220817068604002066309289920532537603712995855039883591976442878090308719920334614661394055498460674219515811990149262559430357888691225791821577142432504936244193477398543412970513779661156212654805782909408000396092487257250819198212926355309254278920865345164330488820067608131976801315451342181249170680324175439585909375935455950944693121588838013624745525141301376027328321923038342296973257343100111074343258419604963371444397827797904570097106939460147549379446477958377475338184816684950839470692335297549411418200478970643767567259161354998448728004802310804976774217160621816803076103192193086070394592702252646308910607796700087013792069675925527920850267662079912723430565750955052679717555198648603605970948726668019612299969462127921681166552733718880091646080639596902992433244701443118778538638200849818469709262103468278550108147316104916396336797907422435461884614696904005021301028196983079357746538787807156106100746244388430928022893794176777003419565350179645743145135033583168202286674580264435695125422684157704272237576571518987672650637691248026023512974727324878549966518122339212148260294617667879011630389038006705639698732193538013042436500184624896303387649710777620892466262340292944093355515098190735471215706802734930195109160570755218273199131774715397122278814979006324950231104828209044685739607912577624588241512897810263209982589416167112251427636281059974972806453302566117886666238199556115312130606230559631797186794560458723754806276128223858864214775035792336639357460739274864967934888338890457498890695326333443069237970305688415091093881654744963832493376929742343242854186011581336194276713854842624665834710146501579649696345124594711056590806764030722238064297464174036772980387015072873980234233204469220642498904327831307063911858126340221925554295057618361000886404417778944875949407516986524057552201246386292461263829534046424469111213381783366326357109890212051970010309858569499983224120019324710172348667552246223102717074268224781212159798972048282032118223739390265939883720700819001915049311006362586046079187107166830724836192882671434880304078120407707501037887048600461678467130971918337806558725605853072504853200681130996727351328078299429191667197626394312110865572699414579292447492271920336101791423466080439128644875807609341052215919853025269318752663923074761140555365813307347408357134346125322006470094312721180015850549373227056260517206167706459462215807855085741279406640388843760084090654348060943171006065241977407934067161342632867562657845954355993223699536685842348164803580037156268346952103322111300549753695103071509385090958869378613712162273250329205255677728123315943567827775662166641590606726942413978771851870074429065845826470334279740490736581545814428981082368454592717485832295633491192618285264417671468588156083219641938828991531467107044444759617079744605506143349351390858343715564852072748056878644790410477034160391822208685269540230292153219915224243526431613917805070367309167870444345413190150133609981311424577602890615534424002080059889272884784952347088386768370583666182334354287868343607420416894694981246497916905257495611460369121197788644799783682951481328068282735551722364936207294650284750768400807782955214323454628025564503463571880538789293138967422412001119055181044182794142180186066384443159127270125095231598358799937981039096449626373144150871852324500962486094554143834287515591468188098389939171472422997693577343899673985551335349178088028853352482495217030450132948894676666894528755172766239492443096844215101773292863310577727768337169518944849494609986343116857159473537834434177225650746396823081737999071455051866358967628782126195363130762557691798125302003215474172745413916116868474315250404727575884063558026869033299400686140937916535538931282659909616555652023959208151268571221605101173937259399005744644133597993834476734718234377797083399515207916841299817860648446699003606015600948703398778175530665902844410259010374091951240173945762950274838571866679487708894860862214063741991494654627112486246693501547444720903358080778441458772894510770892134198084239801185168578572030083492056683839237962980884593229964150085007180587721342106611813678033761096959005942538001962932175563319209947681015288533611679527799241866458672778569167559059154808446851795559038458610106542640804927510832968868764107346419865326322092596433199366619065144812013952609100392960514150705017821324584687947809386700350781971966563151197998911615194501943607094994843227029927995911913859435625762076153392688082306623065488708895169739790608572040072462603275492371516192793209270776479252183872308583547479000776144597026610433512283262269462711582529338014682020351697141070652591799464950733452931522790327520171466559460103049539965568673717731574514048634434283546951111741621109218907377725379558476610190316142441701921574117699245215099633355480567857407120071224703718156538398892966993608768120866596639056333504951611809528339538038180323162705012284166519527067994063700447034840323674202252340542000783304242563260579242115398137677506230548775224178805142021710376744628843512538692278019659637756578555229036789866379505374175884536549265783400952708399591034670133933030230008594824383579813688588139081353106362033638382413937798098995446579797677645822201046167912615394936470419955492950757870333255047157639975242706011979686446630630354786569116987133172092041350140580458047622762678845570681898910687384538492892841373958545014288017507959232149920957490420145347028242572336758623622133790120310921980688659115017090462627797206595363509392013515936418014631222479740457725421384362556594754332460531061205887087099062358730904272505994432435723362852083587569147247990725294244787257308522239370015384844267800440190388098799665654057501541670443803930096157623364344395623555658098859027805929374185493872543102466016461767738115905341626270682640164409916881309741620572025125237558245129027731299027521889080012111413488764950486196270938452017790400784978027553346037125869338917447391066656298253856160681163476442288881673525266021499716195104806079448180353502495668854291038442627808107571812133878184900229509427379062029531488047893802582948202396094342899996318951385669613328633768340726290634189804834326338577914818767469138931764437018402925765883809301689138258839217409631079158354834721515766509710729710850278733965583594810379433088838250008102953282254785565146498070055735193443398175441840246407814289719219813359211315733219225147078194216507447667952311407864208186186468830622766503447158318766517075165526449033319293834303153231635744785729012193511137769727246890622321028012911726101627504686187593924492586906063063094010618723937556930431558366215525778042523059685195106721381894011951124527129482945122047384922298712572085555834508945012155073464104500318879305940727113960618047802651238357697843372169533144995496935946945580700548967250426146596939541204147397617740786735880219034841570772686092853449471519616976649133639786453621926383042255447675202408168935724387011876324416730544314645400994371500191972271984882252497010254688616325794806464061760333361638141206632934691308536291926180520925671346491537363281044293595566818463663671833105854803794163840290579059412471087999915175070860496685736694958227977723672943730914131375899634549399997031509858669167673488157038314091558547229033364862576293834466723385616421185400302293696295961305492171447559112582690190939239364410733558436256537107289032022225837085835591107524752208161118174139975797650502955820609458194939026655638558831947749328103915684600477404091428601237505891908819311621002625067222334393888474097692022813794280640819457727060231503670664240965184574772873439997021048583661959028799514771019972017147139479041728427287222773833636570793506718955078764332359184032371108713418287084134029583448174609307029689891093749926085863767339727392944773974114556699140922920340674466296749750759868496989114105877653891355751850944094720398450382301219588884277950126594344625080491361643549493066929494198781794008505957565201026316814154982682997296042256687820664986702446590220244234670118772534223464500575001910688623140910566540763093539492871160822890355918336131972826700584797675791425693912521964035961682134418022317333606738737344004955377895365245898482569148721690394939700020769650438314877703502836099597209597597762357151279761584033478846347284115419538184991465048262865951288436682407199511715241287687496346818632222945876044787463323090307350425496161628766424598772638291449102517276690834994837989729635483744673277525967651679318771957875455524903762453714057540588615792506928245792087095957983149159846731283373171897586739633216292289911105207867090401308906347138623053731505769346692274543688960655666463186597995979455508782365459730938951684885372199266389416801018387109001036971450892637932367534478946987221488604238606855660103267703487986923420242621861339762024885865762635456283281214770419974910698169936830747816707192106259478046543889567653773932584446052182491129529412817534550382991209681617458000420456797290572043399370377646528918030276577918613675644899263598554302171949984953082204343603419528591429080946701971872992432799875632831969485240332759598730969947674602966893135862487353548184602171736381382583397096124520021419697444930822698225179823006041963324802194183250968222378266989734133181010532114418731790202697358024257942146612856378038728241560881427375923210607274026586442989200278606519679711247417267483592604746674157515753256339210673404173656497393580518382123523834394076082930544503516936138214514932343331886670079359332222028083372545258480943261704501932926694558873809843943770625508972294461414367147313188075610604726884842321820345712480167602207464837677218996713957468868993385972831798151274085721386345404836709675422824028590103908183219203726481075196898675584050565576208861695197665735069374913202941766759288553230950444700535639861766297273273858959486590090647941644672672533200882264972893386906647119091368029367637582386479430980919483432582987620964226700543710923261265270834084973051044828973796636579862326315608417092175448942087319536727712026422444898927326114099204707110907067782363331783378725981370860135751658833104780178817014702414374239136174069614306890689457705376833597320634758821167267463576341043427402680327934456633054870632165953884227414095981781529404668451814209649103834153373175909665347089237034054331591441443369476322403778935706202376676410863161981227138145791317874856838842913611091456477415273814333066484275998916730526714784915341485701801439501130056164062544689568104443882524876117783083039724345183912748463704427846003904667120813839842738203590434251478195193533026877088967514297260280570790144015352547725684326211354068897235100144681327102971009730089829196046377296298158234446178932392775218541075005676188650157553547354186389334324221046360256360018367786079814323425610117837112796081639850436586064027254385501994514337737657588334233041420168406091636898370452758824891761857661925213353474121832392029899185170771266984429360057227507810623457358857325174591441709949081888043450452663179213694116862897123442175355159733009062041354175534475123646130112276258837776262193461287600176708882431518966356557690660744909481630330490608793422600717141618352272681584169156073479497844681723244596440081409702698547485695677509551798244093131279661109965580045994768210237351730365764056225517335541105663247280244779384277499148023807442419967724732298259739064496135479461685728522355624516029935699960370953093346968301499696196301880886431052620090432883591676942902267302100616523875098601682177538535440754951528594295111022536895538391628458934161992007639268623633888240931126998511403105548369746590745920655193086463113670221408162735067210766894332093965593343591014881106874430974856475285384973108759510690679847547582895115738628959304960509552534539604538676453332560169310084932905143418752493558422243661738224659645678742914979255040415795359193959908773260268982211495831501056402460541252192128532757322210051825966321684162686879170719103494983504877767179896458109141731494456515131394026196044713947458944072662454219446131488448344787242618435587111101425575232582995237965039002861862999963883714282973608903231483634572294625928572121029305595912514091349366770228184777146716408390465901118755400290686252943760314028240531800508799025639095611500670179665697811482739432868499439726746415814927894600623513162072787549874225006932823056470179717606939359026247980329525161927931690329239681424310086052220694318376835015207636436143929599806540611869815238890188535244775700757714088664212706684533121109250982257471163890182641637081682611825703673783708164395767669434463634007730292285219405880750023068845194207311741685217586304231063057215607473800256262830871282987332464341965967397813454813067727301716173301600552036079039118665138429108042224352566062457070042186706970963202827520884869359339860934159042924033805826680457752532893803462777382309545377488258553269279243620734153993814579635041612526287695927224353007851090251223782390910438588181950143691098827819503237630157040665445687032118667937405239651962872012604728736571317196309180141011902192070085505684784343667133971761222891920738410190608793691348355893494057263130868420225842157443826621695312786340268032809080728461871890961654156260796953574367438073261320673414424840288136752785045297316182529618825816184626628300738898351234783545416041339426782377999897429669398228398547927154493938589793017785345113616819878286117049846353744159198067703732231313750391155858634191239050103425191612485849950590272363681126610565255535969718507780147295914615037641437612771065271490367841940697109895424449984381952841317047408464210256622304027282101413159145199902254288777084893321858602316224544011485989211119113549829896348998178884745733484534062780124396548224321977346892874459842938250258065016955198697192660784053229457270957502703381339185239928081038501125837132751509854910352610363606171149611566089833395742467351517098478666162503093858030921681168562435983643856685359940360461847390757752225108947339784392709172923351795723521156284135325315185705481979128793282188275973422396850107250959291507996424054499549734840924070289312021365082610853211972141804595923728854801284186930699202694286867371041335315459640634737571851766652706966083411521109156092098597136097392649823458534615417051052970472098026775777710515260254660744778187334487945645408669014727464883149319757632173888194575863051233295761081955838294684068740682324271757104710207441109459004784258922195743927119264114061778438627782760684459559013937502570706221622115384974584845198811145332284460134844605223634551197084855999780170124159496811801801431650083834399040099039506705438763998371092226399538680637986200199903579446519195178669623868332698249979023103048514905217831637991223099317721414013664864567588436057372933126789094315048329971492315005920334662733098360515166059859705745434084381619015734914449983954732721287406953896088228365808633758403003766588813845092524847925821619855749853241617462656288543864105815066123300192862509786979336778011420273215143919864403118480721363600828313669333888170227176723036893964416371991506216147977177337666384093189979352724532213408356654920476421353733247078653998101100391224477892438994694588124743108626246213883832883298078786156135227530786295344549211199701720595214764215965519048383626130721172538554883395859391800284118132801273157863317700486017408862618354740408716345728628397878524467151800371959249130460595231398945733717473478784581180910865105400248409502442409802812695322469774003451411605675979234319662268832746467111868753438178522910443096585482438170983877057115410224923506612475887407490624945690482750942262478552321406570605210068359817321873801062885803695281867663350525387622410040835807969149165654917459791808941655815828438123759971660869128449100165434442841993554123379866109089694819253758639406093204165382839261142574419269654264286396708440308421621013664382825912616666112830182390973736148592153668268535994502229774007626388905242702254756070055062394943798675271742414151374010810928036580107721062930611948119562104341027153907193499793173473836933605356514308171177525680802757242237345128329488010461762558050054137826697834063158061501175114597528723681575283751005934355544052120626354313456703596085548380219152716415062155091721209850694766487079180827809753980100801831853588399768254029746695813318538781992800627313321882465206890477074711488153209518990488982297318371683238603674698274048181803595463556584804283794843750320259974697946997893779251745454595567962118467349374299533235946725603901413528320689470239333542544576175772688947657822981970603844166722061807870757624726986000445932564080773739342514903615973725973209491771761635855845973975110550135197862526909986670480800816102855153754785953688803866820484357316057888008306852336559468051664411412830671075414976448932715171075879998511431353178537919608304691989318236796397194404188088022742294069381426545522156368799664092729496187765576340612446889375058432901113223356837388781426303551558290471063677803387601802542706115396595057279269385334271527444316978266577573872735892684038921133906231106683759828751141877622708368077900634846940291225033780131657864568374992358320330589774597453397731312766128889728241313565740845502368614510949759164679275234379226858491212265060046093353798574623981247459726819533512487990909785583154047889296403666345156762832458944462857725158802562156679579525392358211828925593819428774705262829390666913744206259441450750188319951116846158840924307290958851129059138381330336891101544167335228193952951357650665019975099348999833892872855101619768595237977207787377413553519663558261592862399842001949256478594223930533603550987145657425866258718073515652976801545328779324465737172830542587141333077428902591948769031656502957839913025194351760416842282262410458885670001088964775208378933986427445130841174409795929661549022814829780805579251823931457916660722392208397265969278455894658389119558334506139639391066680187527767389166549044318254613516991121633421435999153826895675408330091120455076577798572529588147534796620362095547822411527119378800671120731326888171534622100938295491931960747315997819602194971381895624528836021538348658895739350596579001766783602572269018170068476005701011050207798431991847177589464714889841388859403612569328664462197739058073125173977417429272017773428523907956670835505165520927211458344226640648071509523511819815938083487163742538733386829190314065112458672683367267437961824801353123864917609371465858910001981751959287464164315813738269962663991793416941798593426680448217809120883696053596775449396345040993225684267039596440858112913087473741554837097081085815961692028838291628474084965302123561381629524012886523539416189154795747621629853022653134692763960833324648793297504227970729902186506129189844439300621793898607557377211003468554987818212392329337471231145724579660356288607806388398089505835037432237182044464003566467055003807451679686507146554293941058928391194840153596588180278555540136334413720912832909674391303584566683839114880308510365322306519265000865823075781388164613637438666580922433697508482719783088316302224277389218081230314397939774545081890625255951521209728151540428833093069332724080957764670483949379154211839477723850180184245606436516634211031888941735807187641896186688961990672325634306058932684201480107497386130288579798134260126029652128296929054017285672214615713090055119125599843460517218430033219349650886244268160961976704400192658257993179550500028123801297201198974777242218284158000090543483252112249406853698390715481847290740289504881994245100752288468785446073537379585819636350238739466597472565070876720875262154007228027293419483121413331142351139203974855810682212555195294468943347266058590569411077612151395741672636396488748106143545136247414434481532362932979522251518779060765550729738547174306154431299340782113256367528136995884922565257548933045262698602100707555568647311659984194398399217841326429971825724335200525846900555653311706970471737094681532357239956955202766581609711888244409689332936540064980371295134206831498803858647281042130149125299207806967468184499277366915613761928593157857295566212839060622890952042107739354986604102823570391755027555307229916010385603734834799791148011354984462699283206175439289256549172685017198845449523245226876034193570359981491043369458599316900027039086365312976225789059389427715757964922753309046893576150387009521486255558204828912435097090961815479980486469097979466793182615254320891874699273681436279871392683401955656568404866467705605057350937408538760864296031634780155100351302168487329916462562684927850634810648483672107346950107477838079597697316462950196077420086281778766653741915619277123576400276725279951100377525664795967783326636780651691602323704788950740496544367857320928244420340037754553838341787177420367799799343865809265886009968886912511139172927662140776355455363915424907678745226094355105411329529612727924259645574512041175377222595039573679504064355415455809022407888270341012357988428357120358305710168063218651556128627754640943696523851994870724478990820750804530259299683956621038373551478742948595832769696004686078513570811922824656869004617497768823022305982477791449885758660018318119922558034765449337353545974059451468609995551925366289559817466269403797306051678818627070762476641093549607982704024310953485386917877941424439384571752182451469673306423359485261314639241395239121637295715490115962383403663766091890162984431707591767279551116723505576884605087089988453269505654764220232979004482991633831731035399072339525319879777276275957727112922042180192300689489165022751785437200611284373812651097347868036790268309560326662623837451698997908356002491476389151200979544779078625650898665741304696413314591787717301979853368517163619351261704236026016042645711856898106332102396110471236917557551445609094326286764146079814602382795469990254058771697205308204861348762925196034300236893395487777379647080364932739997438461684910453004413074173980348785307362412952091843926258644243246270497529843131619805788332695737098299287912997076415835294205986030308757581585652811762985900289478525484753101962358052542842715726720826164614400341292766922807373240038018997977877801615168787860000692434037467981101271975215766335745579690606466635866250823988006326880551976333857335839060438197872999955618554197271365486455330666822163266522706497361026804235309567028128434419655842287262175399942602549650229423229562758598116307650377033669273190526978529214105115859238849671311145225381005191666785722533427883238124765559360064130622658205055867624639552918502110908460303957880871147215839750916075372878144118295988199386945005564355384276035281711973905894009888160256173946814778469024923551818902304136087107748533283215902941136687197636029071266349840852312266999612897287911890465100584861956755127457776702142654156110095760643676084478123881736264278077248422510020714293856741069439146728623573268261287491851045430812564355043909664383074356733262240557220739416673011878437505067851067619091801124901764336370513660184619786976427985137354309004368814383288607267095674338620757763422543131735229460628747396067280791584341349276134812753795151869181910885815428621534972068651672745947121374034644512213464926419331704491194860999629903308486190515914951690039093258039843419168424243625606294081429500998307519135025471649960039981588990894511209567739951070954242623315004502968389967574829096850283632605452813027156769451315388786929353687512709203729837132430469941674314147360625708908294804518350624653802430999843482617008761478183421313316282086071867073684295751102535013021104457701380963964152036303222867382543516804343084497350330711943746255682654790965202639772899993461223062715777051058898834926703466916967348535278089959759994821182501895159321504800107630545115560188662150487433722578046805466624472870183556159490234582065509933474253069040392900092285178404288942931535318195939140889164741486748168152579391108917902655213279502975798707619722159974886957328262267599726498271789088084199567460985471692000927579286514565962083700801345774531768897720020485063410425134167131244277781250522255343007012797314801156396633345594195689533719028770445997121218878147976731203422039322714936897521997304181378255078004990893441347980138467830577105205411205566707435843000567991161558800278038012235654866036864456232499893549787863426482770035774921171249334215425793603480801551386380565712841200491270598065969060797926381297305758080661804865334454570370873207550122083352842469615279489813720109575525696755680937611678262864976918822728778076700887148025502216468766630543332654884424987275403036099072428567601100687511754201144599865683337578260065158719563986971571401090397051431888449277061805367051186487285981838399509547343726073836249973759736082968388133230023778083531236822257461847160254373825988408014107949112839130079906533743575471358802589204586441298813347422860523824822954983384762464337409875810641759927320527500804664603210225178445020454736687286216482291555607364391391206435719992416850393166288790926107342855005365162623817037970199371054332790987593445584970426039928339957043187312096083614642968512882600551160445327143057130717364250971964337059830646768147706814209207122163453438833047465181678349820402525614102076189036777082534076618356113137293528524727340211219360329485098484439893401357742933632699093886551188578879614126782643481600281716737667909885574895067723005184258188902931340504442729089322656770204295466608900371848841951470911551390372707288223629650617816019603553092738406389876746129985147147501149725278078026353178390947389509738413493392480057102601009673926472751840675954626304333021226170500368072750739454781498926772604179715548695014955958059898255345015069401705006042578467701827859987451866228735076258452241540430438022301701134503386457745697219476494245005674233541665265938294062414639702154870966601082935465840317411101868161301623607270982589081140199025509940516834107089025034703551480857879131497804137758296277242715186962106614617321078280848361686055520726943375642663958137623895698187605543407008847333847122076322376072454348926030466334532730468367499691779546686810304256190572416501408928704137754551080198890346904552226272428766635871724984095357925088596491596959218576937055581186517966667151043377566349725268632219151071728334242094205307473141276134259151481325636181606753922566312671293872227287062364717858912266088799678947467337516336740854433061455934237698427589532617114562569752461948892981025195860768398735348174176714998341926652509156685041153387448589198175614980924001320106034242877751114033640652007774306562514578359404705309653013975297446698579067101160505960901721785771207931261264501857299861239017072741987861750096924763038021139871950053416748882893556529933815128521356439290294270993403641376422739880158097403942246256302518619297903110525018051190577126724303162045190799802247910038362315203147483903291898351768479189087062183687211846683697208218272662751776747246125969303328933501314598369160117988195897009989821586961404928825790528140104119378386662589542582717948828883065012360043621237084415459606984781140001150059855867705755582784864070018880573327063094667128758912557358152419304717827823447619584332335905582449890221117853771244837069486014337053576937591194645903751827573794959464712962277518355673238533534869243607916476141735603852361992351308387836195149838503092102301637807874933253329934064304452408441840539722975619063600399890685118045886806734233690691913865023132628588077946403831361914214250156636781092034558262519054559301954352789320769732677009583799657741304067996389544606287225782657125527517071239990692934363206543745413461593878894879358578647815869747303275014437424306829696215126991912356964901119065832928464275617498908890470230974994299956150482061844628069093756596227799764014126763152790786001529473168109719215364864511269830758114271200545298209800784350531716692764697560434258507862071880241010113081620278699027346589767040373851137160129760519232433507925382500913505713111189567442677389209066457260290463465073382323953198464412934395575335895296060715018635661614256262710100325033394985939672177776750225248671727004671346419841932773807580171122727959227488009933841041620876766744770059087365957457832995686532601318212239748837007539756939223781327250714829167724286954218774861722085355220883023279333399816604851625379850383059074130482489849512267843222484431155582726779059261187765643710478222270761151951588952046525742403745479596726593358740884335965878546636903429699815696281294740826494282523380990341148302316489010074470579371809198725456240418813627981123153038565314423689788858061165400653268807477294922104357606913135449353448348765467875279292229517302357939690161599759309132559704996269211289714254118590523618542349075342945817030872780086525175360442971893324732693072925911118985851088948602275575813234817781339054345677799011250523773844328163335771738792181760363466831911761053634766336525525345389323006930137713261199778203166491825331926781629044546157310189377300304823790847781002850438567747175076087464082911474760087770841032471370151112774403180604436936265567004812045114353909254632860814297036094780448156673496658656348906173078253092332946373983097834418300885725203616327780778367955145892786874137211139063081511407928246284793504024656097191789651113711094220915443151369349452221109599415819240615730196052338470364526273353951172924325631813159469618693445458860705723759505465158308355983262662390037310756245183866415288356041456836701030926391495847365424208881819018373198862493592792072148488416768246271814823533381946695858982921711557577431041198692125775959090639304399329038256860005843529950211303284380901124002131141760240541838938426821536625806972033440170494059504827443677239641731600342606112443493205300271526741946783422610592083228707946541443475608628728292166941627570489925755298708893553072814647772859808067502378877395862229719492932986529309788616703345879772281307401263741390445226968321468958452104626920210002467994946840344269641405756640492089753840503642138335649842690432341811552695512701043376198115189315297431722783498488844176241709261571267571610200250009341345224834085512720778708654389618613650634659814434607080408851952845534551020577453114722271085788009786569663240585076046749082745479456928114494764733392374415354430220724530623711016368925065217604996638299597474769834921354532128198614455866888548685566621284489829674323725867459598884448866490651575581577408880635349436082383993911613907382987959435387957842448555592125501428916413621713815597244801529778992190985007230129679066141660998299344482663154455852023252367136251297711256625147905842521682432019760999621719180759046823693003643163551638089744908972265107852138978896071209860414321177062097294694412929971808821029404406581374205135814536384847217451107582155501379931753004367556295997041700484245780728037119347447127833089183883174311581816219289346475632858024057464733970714611130284518361936755201251044550984717278859065376112873347830388269056523061350161853419747840240334780045677072002406267961410501914007336932607924564488334024773469673707715332205199444738972295654388978161909831009514194757507371466506296800115723693550441314688553657467233151394093758628554025186390051746784181348443874383400434445742476649718299314388510892820053382289286984589381683654413510376144983500412412427700339523493499122149033873153166432045614480334819285677802273156247667028356551201180807075658813203685067167088439757989891338751731535240871830044902616969528806449813949672283566963562397831654599915414717710906420569015339168057919905415461905601546357338749302618172600748535672546509330248491180760552216663704905878394768341242974974837019482719003443835436158559582369881204770115980496529168460606141791043537941091507891401164482763477503594246125797062331491586016323148555932031449817214586801277305287069476650595654201805313227829821789795375441670815940155068995184650017552991257301181421286567943652828511952002624318031338164002636212745004922432646303686418470506911156257183758243419841534887257750480964418889404643378777958432935112801244171026093485420911200540397531045218168538917815393616624051238777344418099977480787902071879169092695603759430777288369705118987614793769383865691393009240080151837732098267371600518470800141728720523105513746414641162323575107592765999112197614117561475366545570818980402499456784357222143895429138856783426814012965105359926698018450086015025052435116349996668107345145442538944225059629442521968364344275589803541772540604634529095517748481720226245382210360932664540263369908292975363731687604920820760035425860425999316374437768112051790600882166039732779377775281985222198324579691530461597467159482843845937926662463141671947985728240212761698004599332291611895077959257296443923379143844372387821676610963448611002752699394363030758636073328897618267014799092126476304652587390191859966907884429337154915648531107616994930451361294851393247094814681590407882069724412213095260289189166325657084443735772399970317981442151084396750218370409957889409171555434144791184809877038563397903583574866160571982096689721220813981222592360663124132191165145695476254562319354028050967226752059396763873970079898032992298726206639868617381177358680880571515321587099786066741785703384547703394752039319824770811598418754163217352680742078334961836553731983278903449546076835974770287260772990795438693565148249749108381710121504452999557468049738926716077247189116289515102074572487282856342702208516581674679266619039343368161863456632288640661597806203402680816044257544294652375278438948631861652455545363581523699356007602570932835276393746081488348219676308603206342256503236417241840036417595187487870498911914614816508627586228198527562811678583494531593202288536429575134069616275040175578775051647953166464728829231666238414592839958563771132411866900280723994815182119762517585379147719302246409058609521099105842971821129557796112640884857824743014941827051511308036723073055628079527312955576554815196527756020492263323083418343824100128007231373309135256779946823040998655483553761114693832783517319391214785071465201615257909618821564025760467086622327134838085461219169915242003433382690223653647460125178985292447948025149278816500407999233463665454741897044316514336789032018936502476745068400849344375407912583408202948607260473194789371686255932062906012774445035830868919615913072550743474058234418805872594292933338582231057231248695085979558691542736298370385865471566454624541133807096923097607812113702833416918050033604263369662659910491204651544454312291684193547183771344866367002376200098859994590872223916805133918433661515088898190760998396553863628291379853436661855324192085623571456980756389269915228986253386712319070703247817928348632213422252924878005381926223227437757637585696220002530064358764081590562722492010619651941673140316412989078580921431597459858914074156560200265223814150152803359875092140307629715054248013825682794760267081074897491594297038442568883332107124898621199865463531187000153698135002822149160627665424356226445599340767217438995058707585250926236538588690438473601342104474880533238319369455535981008242301259437783825619787927138961133153668267896177947835472951194393051017733149407687813193936537045333778334512569271302211082368482151895344050120965016630010506358033156737847053688170430434810771942272919180334066599743560576025299605677808041625037233327342273755995369915115763449915254202081439929417494994058346474368752481130814202730067169974797594608765004129444374998728831180661724069328450093185276819393384040255374323733292550445452914214159692715875730290715865878718266177324882391428061009420098323096664352656460900496747097889500636225620378763786754998504939998280857916096182203876750529081896275082570039175088103358483906995220953462135616049121133004547403806397713585003843384712562332708645517503449712568947185339641846871871206138860649235769662902035573835507959361239246859677400497170819748985633109615346593496651337309913519005425090673483443034899644143678162675093892481011214064357814725235276000757705312842614739110125608398766317165344507090484439357378683197577989684221823344868759098160323638470381165841289748715640595518022940159818922608083645632503198963345536583050554425216924325093173059532760670718717653522186388932621251090850842706725419173355308702243339955439416412172263240547912675535498094455005902598482122209867431867390607904212472496749174472172237531812423974633026527529989201228673492271068217970854635265792094537630231124536302083701798651536859778230872559039884425108893530497928760130417140666748907118860565866782166915756443581888305092372471984120143351362032928309505220373732602327980698089685417838881474221965806527719171962563049920135791433364067328546087610605185492980574460317149288262307775124660600482302134667636972400257766844794263042607461960275064658504995940444873866129114161658096816760341530633061697040593824235946221564938712920939767757212383841774256316050614066099580968233373098048410625835294926465446517304855004369152885336778733256552325704348569280674947416737359991923494218185920448481070035378846087615911986262971479574157885691569826960644525045103766537339471095268124837063823206163931072553164688827100754736016897428834990113132004289891331405413748994881842044098637234084040221844948402036493327442808896796350312718018182830123607889426167982315969225071010687587348227391320930404081625720220378768290951116479138571810161164018791856365500364421876971301665894396944498747926744343062387259686053778422467922829874388347545169684680636296776939472388679414737256091907308395443421106063973000667108950896138527016330064039100015882161454883433470852657847657664923727734682682161372653333762317971772926509158468087254107487311189811747681780538850040049018634559147781286123809708184635336725323319143657482351577867903835667075493094822863256211403203183956174669318971748712483431775683453279022962957764197922783219984740627469609419374891512234151923461812829968307946245616706692506793945771445840616332036351417782728532864649612431474192796491034689860205343836945165084719661952123985209562158449751911430106136281160912019810081987887525040362508539049275661114781637586461759213212677572399772029778175651935024302058419904657289016172597254430722069411907769885768133269486949598511555855821504294191825309277708225684977227774133527113422177146899632978054027465977218007785060508503567283594740783820231261084086330173245329908626750030754438987374024555957950842380741958103389759074303924681126085539854526092455379542625459452972757192252824519151379196329386969533496923773419333238434566595424328656977274816694467973508788581926748100444263708342914501749337607572656688919480711120725365911885257721270841752898285273033568722166893485763114642596577937964505524008978010929619096773094206666233559084873227311800271547560896903936423552380574269597018875401646958508533629904464732830170174645462203559391821966900352947168228452258183937689004603338871547739226799557641906639565967057115348034384712931291128381140320829736645239436788788350949538742469917410340019790734476127775022052244035826073557476696127213037197651560334297214722049649099424350426078204790841349770746776168347725865973334096270196917499082903634622813951587950150655470410630877018999852000017804422484025716955779634443330068090759688673853078340553821042716849733572597821403841910567275970159209599473348855840817787622394743752557178845242861486260145178017520969694994236327634793282067261751052333357271171122404598287294385926072458039507453270421752189787385977211961361193491099666680591725637813710021883650686010672365794111932439287581567013328210180022973318501293362197783575409860583054505663982711051422558574263095342410268836967163703953143623317590294218863189802297770509982956950564724488680898567058502522424121582185515791965574235688211611905864800313020108377106958900076290548611003865831900984523805802139477025685341200951618133089410222658769254582559261822468879578743584208400809330289915663765333525478619263940221164778108801397883451695990274142779607121042108777017226814919515241214525552050998674876480585224596296789796628046424844026359750496989362934969732495528134897885580729935536918396263745870687407348270486377236377643588738364368055415056501346980169985238169788197171910189980643818678566505533601354253639514362817241528565883176544230713065445918355877694902447855034728999137276015220767354406174425088901982302187392307298602040477012911583706393963601994116427015460436634875795372613864731491643087804717887713048855802846619147646734966678043581440159759858287828442892458559848011120422860868297967511112681635247694577729466450492989406021055636129104627463574978984208526983160503225959633138547575508959904730404351717510106641993961990578207478686522397878312519681504657927407691391481545064785444271621958183862611114240545467891864371805401475272988059224469299822752068229408434550736833067718050371214307602704102569741278130435592950575411138665950183379089939342936472070301765774224934205470807356953183857046324078234300378259632052645831537972925847621988232498022555193892702682364018656515271015732210758182936557560898436011069604609142925263757410000704377006344768272349423285921639894649539483219823476068870029489352097830510470853296784157840710219178305392669612881183222655784541318292563040701912602924991798222936236508430946716890135226782384834368095163075736180044432614021968582424701800163945644827434014444576355278188511310452663404016375478161477055256627837821162671247378852682952288028488775738792986576176353206999031432094905275512795342563942082178829379554306135216085286669828641952506684098402295073670318273049736953555824347640033291871596027571471070158376043760475057706453623705171188648857143370542232004909616474497612412632362424156599325244119940674621572783291011874524032047499629408766044381395790441096333785376433752854118400854993692894769723631054897593917830945888486900567262577593862865432209699279350710959257377823997144106486073325840868805108580778294818073070373050729867735545747396896045954940303397795443813972896711240442733450136968953884329736894310181274380585580442703597866614909139203928437363549006915997317942447213002091576168556447599497438410924288871946744529205773672081294017928231842436808529287714058106459235204014375251592157911685845974708755703208263516798868436851426031979488307810665245837633895157911969516515064287995924799205025442553712463581336872669364373122247233600193258690624167648485132393275283269465288270753752439416755563136075919394481413094360627787812996628555507292324955146247142906272666126771688324234436630974350006363154803888867706119582373522851494088755618656324266334766210394992041182102475331558705729902738067976604020255429107438327874740690409626601060079856499192447039958672523125216664388354926153387912279466772758752020573992554838175176409838377071196699904085170623891621620819824401428914414399116693614802814377854478223569495470491982984593836427948402162255454889525123683005631915792407210727846747523596566868038195435723223365824516193947436110350773538578573804830732632496041845872686947802011816048229682137345623810723691652630624763426789709792614568105125323491248970490082739834977674039519361818298585673100540351405429214452866312615052702966016322444738306702169143451122481074472337284149287539146765240862099989090568857826745915339766599988520855050806397282805790864105052054315092409770406826131222796010717944652900629689854617719453723290282440367408794778192146903151010997105842917939039696329001273148217177803460182910914607582984834126450806009902148236198891175678053389402459771279077926993376513316001852062049153342842309003863012350850889603558673157967120946853969302294689703573916525781529107139673788325113770863490167467437727589364064814210960245469411935243282910869611911309731778743971619629730337489007735058389960446939809282055713331451183664391273531109350272807406351395311482840187708455214324725473004197847806123972993853505470109120688721437426995644295896590734988580856756635549275508070199929838290983618614112410261361496056586099229986744966704200953978573525099236035225405487857755677106023637675019628841843016855330726331815989821187802736444111179317183227775643863619701396505545854124197239838943390591594728777346974849920381424555810031458059883724243190522807362969829983298740102682728456372233301892759232609823190279786294458422529046333634623759544632167400546193998107449302262177834879926525862713572540720113130745280846335656664199499288644379765405525325066598803396664395069213596283533359628919226252088090606948677052243073317266282293618366045685108119663995225822356147079835459286801266338800554469348670971926745367542703339543692442625115677222578320783090893870982348131173126040948125982554370151956638940228280442797561777211624042850090701364958005003292819707308734232765828904631098212480758835580972854242667245731363367428786878771122319561728751027173808343642742512070301224694141996364928221792581093092799053922833743534793396364118544960228673142672380521086882597139653494115017956685551756793359729274475900704454170169156220810305752353364436968931469935478933211365626357461853044354624894508579642761322278960172210855648970268808834075626272466324719156079323811727083726731860866827518099638814935116842391702991744570957639383398024678125045873840364369441414213558103055163225328600206374267056987204881258155462004842217159055410982366209713775586176521834432696825191942184042333224791770820693897387953830787277645720265537807513443441292654397131559615646733106336206469750346196174517055712251956589974806512975112261305201861742172237595986656379467986094204263192018610543803138120901162286061631510145191456350256014310927979188202579245236937084676017923482793862119690249785078562926978053069734873346423296285462550705231213291806190244144700438047017323386219135944594471329494422809662643214926530033450577785804361486607886602597780940762909344585084698697889277141752179031352469996331862826956741221242560339493215184343581517320388925890276551923863571882761922553209312585242365011640618996378538127999007602402339340460446638760833540813089938578267517167087553095424333276925397307021408404737996986856438907176687293990408529439907173426298025989440284739559144234140803569887103512926797900019277838501145145860237229974304043142121822677202228727043195488009924014270553245902076780306309893188752984466224314004305686579104837314246896782815189292315739554489471792077259423056397538853142449233056421855176182739474972921426542773349364546254242559562215487092707527013535236811974638373348420638553648444033021808461863352528039294594077548226665460069467189749063339089236155643314500044599805338073071349300175614832743953810802647768655570654741443440242336932055186416549046168293379602680716841559652490214182962258886753624235073258127111095377890117913238175642352413485993375837367650988487487098769916311663422890517055920402573016533348925264229227262607135685274705038380600500696321887651634937016268482790112039100846976561501121278323190994108146061824253328889600198446007834197718729264141018148921436089043667201564300600292372637925286621617026939444647241494552658406725435495411419743152925292808326539584957426646722544147397000194442127042323048963298310626220374035183653748543180035147049908132848703591724273665117612610793549544691014068831460785137859899768449619209133004293486371187505734729656915688253186301779859033939738529341825327812942497687597701538951473651368799657345244859297483734370583415924164124320501988491574664778325669182293172668503406706673892285282958252370323338463231104553174600544925635839533720888263721846648029588709669326044352179137215160204123345439713789492486720995828339345669271850080829801750000598785956203799867717342826000423810666916232106937441351117757227006382940880520801213717397976181878437482661473716702112460571859207360550231009805298007145526361229366929795807534923545210277050438800338443978315328298120202040016378934364404291899067101539680061172073726648718328925801809775000050682869137813627171284321815024743099894836967017029552946426364718326593245982589590966117705107871445733936468208301241460442385255183105180018047096479655001095092269347238797003879049744483625283050046128249000533940914857427989841449333900496097135463717527429819918370676418955901083875029750426313377589623008099856213512090082053885058951529333611437536475948509862235897275915629110032081910576145551936386225527665103881055048622498916188987917245198329499933378889499185991683953307117287072901496267371306613437304864294178553270159518244302905071746592270728082941435542891687480888651984605766873051249631459771983547022777936932344246157082876831558266244782824648133977592015322845606268297089893044660564277729435484819701936557592000052802987479798386745847318928912320247267840098923438720570571034629413185749212889114350337967185942781853259174550544439253563635864045560160573777951242954024707658441172555010940088885703780921080296233033463671043464108368909104941208739947095116118614205188974304662086101221102628662272316131216547255594512704019210823326696263607092653715563156048951353873652349654338214108030901680864775133820808022659746269300670879314505863524398417939468416722997810003596883398498389656335674134358976113044869842103872970809709358275922277636541091874383714960115034975296408387325815692270886159225047990659229198060396784649853115461282423927620905943043840329013477314426199023147151960794011718058991305674769069260495385655488574053094880613939366622382865339992996654209742811688875477762277662755949748583590631669348105196304047211080531507537055658486360615711865915662441362155722548973686904220788671911117257920319803540795465021356642699369705666777790604378743610175996373231314021993773861794510530491108837662708280782143750888673002224245536917207481074622020210506174334090647944557236696238067393358389580561966671784202695909069927590167592908530408082625471474364841001667932781244872851459949295874105410369217952866132546050155037015304717941798656021770942381063829207152669776395265292619858596659009551074947217834351928798756119121797899125029241681420019702007281065928879746176627781182166636022852616752299235147848503753351236547145163051423064161536918646853256957823460090794506937018922685259696189489981839665580181635373304870747369160657760556113562335922656812899233517916376820304138644374085847838982160128334680816886770905336852659097725962197386413483508549733394254058216282002366673237725575526691449554350125631369613547529150098760108017913526382009478569734137349744146212892872299546415735631834779260588415362919842101450600678323828344207436693698248100694250670581801199606575196019671884854156423030173542221273773847914436588824078105311786155242266915819956985377560216569804939253531524207097860168210506239930529184061696354478970863118904723118445363312526420280749134338905164830766196698953031972279347101527330200666990131670731326517809532693908145704501199922346459748114061910309158141187229216602074451777425922835691612872949403468135183881001122719893389889900285930483811045100314346062969428448181025238277102593272212354128553325678538977092639980016343324792492624639329065863449109889357938411199199844050555666284083460999976337574243918199539107072669267154109070779237174643724363258624394044244199030937445825780354036606307842514188214897105422340358830010319447937616167086404893126526187527579867272586118414231144060351455890679244070764678241763268666982146842532542178913442745940868225228152997666737340231357373684941163553203157487562633763455902785098264754594718922874588288732871099086883885096238626074670298083063360614870240804852214570642323296593025579298791945919386100954847259061395993413755618708039210164347971012853264760846511945778621837727592367361659110500111970742965940672542208984745285358756133849015560968106660533662075588777074232013692634694348841748872489339280776703477821080254587432932381391555874135451816472946944952986423005600094934485159054505863664424644294479404788660215586594816216256485718660769227025361070285511633439692940458187064236169883157547414244128026798165208463966588002244206895343532603932392326874903850203751796477886746113736710055587958434693311146476254209216392520713039841937799758765987965263895249827081849754296857472949333242772898923286539121076870835847494210188578889603799846285992841384247069053381072983867290976460097583322864674119141418839824189104595107601656869556494879711264749230084782153268024850763215220346235879904811819382991452185016863310766923317018267121656936136182422233839062648300634178985792881024581997109738839473390925134636472294738349764391963664876239698921486548308924185446291498480942318416182706144977123396131856739582386291770878607489180570442166254654003147757518521835763788855311759316791747648322908748671690075008790165678911000858156542934042545527050768078887407706398981482305678318616041468939248303160547554296949993752407331996298129825369460052589073312938143239383657886789495174878109134185198596188781397961342735808478649174639814859378416759695254413854187024594613279391354138325594677119764179445135712476835326812131112820730650705956831623168767248865309832155835936034946420354025877148978550299177919945273674605137101784991481697589715925367395938123706534656276536709814864592170047529084125620622845187307470911493843582559187396491095495375068935490405278686259701683730133741604488866109482579955971041949526259253960197842563339806301061259018008085406169896004597291973203085529731606993582390370561600136204224222854926163631471020500672809020593610235466423374360325163873819162299081814944221437478356116198516209421132013658681682385471931566703249061395395213612409054457536855420369430556254375105081826380985411163028572164194116943075775632492878990057433385430278916570433715841885206672275823121201256743311349133676940066908554247441283646070066635339228564371995042185904710453634181477307868400415005547040367254176442855229058758201542712484324935926255312948938315794483478341976657719525212198568817649334222917606990240517412643125909310424347538926897826969002756935179965607709367285840248000775641377615315499802756530963905923180092449532656360925804224056064054830361233834736068948489388121234160850757169879105791694173166018577817300082670471687474435297770519304591291292643454810896762766561145424445071160042269226116816907676404886848070038309257830393389715364002463479915682513448651821174919999667889658608568483010270240172010893686391454447812613223761976734048724894008498040784220202679752763480772243371452407355438300030555750445012419624801539679207486115413428818341287692095628755454709900044759440332746895284195405669259782107612516862771873957642300187878685498532730650670484173645696956421483529282917917100862700036977051116931829757743760211169800471449895780022662446052430935831891612902562832516093512245794659648359493373688653873991669515227073171835033983419699157187412073450056211472620846008785805759499546773184830958992868442630713505097058155189729493878489065143381464779385794639772100450011130469618140763309504492370405886372910399785029497743169018038513332564421106213925951896727556394425463445942817566585132679859954206684841404743058111952853721209689059606002076085889831591255186124688437684175813761463472215986745693954007404736811427009153070977795398333815588080230278103139251900103699482823486956356610848044842972513601796762929950194903814949479540576943279733116767076453775680434813258091638740842362573076817172549753318137473759684333277800905388153666119084653383013062134748080806080969782465137317064770628201710020593603996786998355682859321168318560960796311868675406312717602573284934237469001877742877970515507151596640592103444195207145289036986184740938419648004229651282008901849616610464888929679695295300770057606357461073886092891005345714373761750614484583157812242117915081174193813334833167779187603118669246405062930987281284894107884971283220188754871903798526911768853861662213320819971165942342874487319124165096346231593251472965199677594907786399568456519085446302100552358484872934461252237002400681713263016265987692159477677683938531564430940860096387642745877244536629521622843206584018605226523856830898629502896257421465209580873505976106567184380915185262550979196432367579906230847885902926729206461465073463328759312074261843479516603940851503182226959247505979337798923634946208922267915196685020939848820811289857463659148902982583093533238715393964755256260794810665736548842332131737757218026543272360379364630295888740997701493527955791607904044972336161999108908106221349307511848013103478005525328370480096092597017544989333183951207537253925449907258316135572308099716401650693598222104718972349352043482739521005583399280967566996112970719415463842837712674520056777386358825410457149969109899378304182216881526799566967720275238595948757651665345013767800322646675275804089402717317720993646572884566309726194733903274236259169185220629085564592616522279706373389928188248646639992408185013120544207679029265553921973268192468086258199308881230787909819157805672369219035514274770724529312483803431358688507170657401619706809263572568240967434733622679422579087412520011628216494144064327880543700774795404953318051079115203620404951345546662591528236183979366333516691279358221910065536471636461342350578692324655687056119141682228918065307825995193462230429247919774990554207627886877623190540124831727805245472646581797863763038605417081946142307564909729711792563029921534402107309019760518173217566544862539135815400432120162746925322179489743175820007446973657091848353916296522733011524611679463135161526705423911430073003273938251648292302013578337979306130422591019942297157452527117390738096531546343818915461674186149504197717247345536668314585526477081738435542634656510564969615053591967415557242991220080936533449841863007215394727722937534800016845510259646988075270124948505979995881904839793452365944702206178121657185047626532543380259900457979039171273342380494116843341880378512036704873222411535291702813133227526930234237289758173318267611810016376764519007065044548684061934472557865087016036472943496219394209168167985250530154623005191216160596731770143134369457596318832840910069996389742730574586002864028859968417668421081960819152894710012386764279944375560542895047030444905379398088558706922074382980948063434206501365654923584098086454279962029187962709945259807227357145173501135509946854303461584317494913242118959710949137012207880822559406500376781210875618392626754436393432862899312158977800324453455555558101609931922001948799556569623115320445078863383783957615966573152369731226249369147779582078080349633290664107960456909989571061509294915357400459271480748963024907027089065608324593746025878424372696628545920941116538109607606389616664465660360865974973655936379268441002135001707477497559859656841840831359019234473320228992706279839109776090054462745995857622136819903565481941726266185080073623100913177279664589287366620208286807015311073531494412579372358308508365185650192404466767105835415947462572985377096445793643917343324958588568840584119012129880977074572469873641718828710503483603174680569331995248676868936258816124423705219937233274618764649135604179577523237617195727561269451724180652109022260227034024983553016817416058716410692715953145948941279890207884504363949400052450566603461436168585503493293952544861705024838208091208667064555101230622569605654077489484406140613067899891140576581483428917864305925324203057670570406717387302757519249657388873563970788253467724071780033400574631116878350752231567350631241027760992417628214125032837767814289818615835350008321721856338323493725072719913598281054074506154403623472064589192350596825694036944549476676584360340375181201889483128591361864369680420401742496120150755462846584690221510082296321085259928886772723605540000448412529135957148761779193457748227084116095906210880375024800214095775401580835246072887782770567706491883823146388448513819874378031561271237925020437261850040312868665478454243137412205065735267906491386677201316189696466088441267306846816444078073968133975861783176779064067412031101595976189648719822352854593211990594708025226064347376934624312733596427292178246973638991985191491160807147906562337112871674031002902277551379376801332442316780643651546798339303984626005123226103685498717929019792731182340189414699259773815538350059349339365480042938790509115592131883325567703177857247422496583983804916301005700584715793391179273485895177849702352942527014395603435338294080038411591235338459250620551283689351621162134966366596920127909826716401432055777528277788756638432051151558779920855710481188899172635178646649447885663309585681447846143024719444886687391200629511376447147420300376483719501519770099720435668105440068136919650656810454362433326043742698685976752106821948533428929060512164994259825971124618395188089704733270128453078582128436848378882051967425209551954707814450516497410150835960904752297786613679530842573710206442810126780567010796170476759681832371439132220954448327163546302514073387218158752920821276207037761542758737485432910175942022986112202787157702808885282277603132173838696575491710757248619403645858121106471516566996532462808467908392001956018031755694056451068231545896082124329620743982867515037921722334348461173961326529326214366700233294609487138857044140780712052175086393334938051337071835358335650973711391791643538890188615464872655511743310216068725030879014447229645186377891837105762738454748365048758076704715680031777206333194376006170916082843823232589014771791953502562434133002558299835565193041246833399271498096544577988797860611531870965900250274544413914620814868440195238805196605022855042622333176234355502468351831966755594969142731878732336015433302508016692807916001795781666299148587217975495458070236662683585887216455329368135177315311854014424815957539933716069600584691980857113499335210916670319567358507024761714517668370376238528652562677475915992011029920747601840023039531665736655345054094997288322080223050059801976947549261618134780113765801284518669896554543589429352762151210122761545962654671252513188195150639728269061081294379289441852216963559667263643104951238112314996568743711291782461930804985248707945832903544040684201677808750587135997951257941399531166758945534951906819830679113713181972385221013785673637339295424687639730399164887190341686209012959359566444573855579372510746395892101285540818190866909989554850229894146873060044477302270050539022637829946327051757660732530325149281536206809152300149134379321556133914645538811651711518706862547541042624825965371757602347369971518327610131207741438810543690636879304979217934442924702862018886883436756006852997235961363070658094523533671046996175964284599402564446831239704258018534756698892551095495684972994130653668187997221370596752429241018514784134975389742729570842712743583317928906728666429339086254259750323881382241675808020565807162197416387194558957055927753126078328243414169723797956622438621488781769743803641433414594227793784142963931388015099040229035584845032164690323118951187582323439384107183888677333821667672796511979252376352341202491265859017604415504698790503303832772601647503103512733310043188746517846622224584146163137466886669295730997022431496406547602070960516892291223974070772096579491188215854750270142291104815176988046760369051437159375936693550570405812814195198071625196612621066062160370550103303388722910862585528480273832701002548262978288749033870958417086982717819533873750303250052513279870803618626652040956900325113891721484180382732558187025209427686932228769127337442195207321569980989529515849850833118719328862074681828630967514887759880733445741392423465598940107097524227116399109935423233753345020219951393747671870891422338265504949679426780279128059045641039854333074396897693691929706514664110800085391387004166079455296412169307826010873917304889375644162542478928065262485532411137932266041369202365893559707076403848169265646790178328541850485777624110115369919257370912216090678806287811069816345109419771641537106840043309259782924971620768173139909491350530367685299252172442734734432578241579637180202220363733516499667127331759415431428375613373418718127647097740092477553008447497082834635383665394386982213037109089738228940616048429360534547337774249387204152136291019796338701962341447570460446154399577914867528695325275970196078544328258555151416047398342733879525884839180185815841428974483420863231142097068725532416407106822823776399835884843266571314629063234492385578861360644150799456910070332412262175122721898631247284365547986055947628864523625078074559633592302581090387221798708029373915394188584683016998427623763735834720493409327460013684228953808775748630191604283366009472011355775189812790434739509383431916829193758661568129060061444512298551403119098587688351771830720924558048198408196136838970246935059040398942680745175912100238246538928883204570519399285254008145880344781977063576686405921779752649588035650911922145070053548239644911235110435824195858532249516170671576634672918290954689115260252869897321832023788762100203249414640188151719478460108580980885801623811288526287848073993341950150519267977915692419125088125330058485683978878453726192549732507068255090105269206896516695274377601555311217277438890756458356625350867016475345562608420928396828668635281836853174412190232289771253675442787760050507021398617741003796897808637414533369830658867745630800579923719468472863773445483949492161900014701569606984446393359625524329818276589203048421580933529192712201331303589871993494347931623172370618186086826051726430099931342442084754217296726273416185322841044677454105685480871993111609000544077892630952780498144056283693457990213519369283854279850648950862778918039008439986219083125994356780934330349171236072632382693948205948335780057776599385055299531885949231106313311211153991103522883814403523646450795966383011056173942376533076123932398660653565449626648729836921507235381205758861576396554095114976073922847479041058841533138537171195981334232551665302406172213309684245172250983252085545726022023937276273038565613579854770244466535379144774711809345882249016612772801021467977863299246595531947874082883122261135379932953015484899925944095637213264559910876538601490527283768253599566403134697157119716113598634341487969142075542488590390957667707128584561073016677320312097564380311765812223454029561027763563915898074395797857245675380260931963063771672811533617156851693103827029191672674000353696892035555172368397550594578510146328953302939501515037227070939185298718908404935777456166991727174541232334725945775139315653985629386855503651279960296781422406734440060128001958483850630372602187993983503013444675656437316627670282179914336566728673224282001455105806599361222635625651612368130994171009939727764096727034924674841715190421759075090269165630733627401390477278981717014493587204720491517797455682120242717776038470284935490851457970916063681438652256172557389942482678609177375466403361956712276390305737548467330765496947122199644793427058430184605407257935671248925476164699358845531970940758691291381016597361777210121603272269665896164337593051382675459044674146659661980803109153674105617671220691039730498541795439645408208931537847506496144460045240675948044389806516083052252999451180259367675827859593329451234496314311789516723366450510018111718918002429084283483784264229201877434634441731904215141665176229802020504797459958715588703746480636254550565181641536891362419739210488827610576259340327820051187757497011278494107710307395863794500157191249196994053475304821710902950161891942618087280401685001847060958774971820429617086940004399215781473841022304780666993412537358618780220202052782086074016459117937557744839816088986852121180325016114724378314891840982295710848085854845811140519769482502590038014894317155211240342242799392289510341427165549607295572449473046374279231842313732168953317679907113187779291453377901232752552140272050231110520512742295193140317774988123913338431336096061367898552280515422803364424930768582993450861450081266284925844032090309234955886857645137539721289231562040557600783907005104648278993529792291921013595956571456517277424082177185271221563604716645721479409669495051823092389414914960233675306043729864715846903950071567428788638015811665849997679278240777970228666009304457475321062971935234802748056549580397285326406018283965782408366579605903363892509750140678135653044220619276565655600247307897820376770012504158141903126989337737323008302723535870799730118161855911494522475727684443653633976475331614110430204162566407757443176757363255262607387378643646175043506086468849471745879526627366769735472423022048313401545326560201733113065257248134399121357766844544189548106855194275790161869541480861119679581570091782310313578684288454549929683428454155494812706222515747121642060473193947608919326688650175306913964194970725955566071766818290431311530301078100727093084155814482948689415084798917456903821850736457877442753834582409199341030404213403958478996313988735674466698538774090006730829329066058507700808258828518065566287178105673038433955443609172355996987629214632059759112631318367347957930261693397678921742923471050051304083140075343898387171848730803517216321738090318306228880388216947840870595474745167061635661215135141770099182685849800373314651940743045720357598752914888009142529491430175990789415116762617760888138946023276974385813987555842687434117222507568271071295785425458646924899584860586646288185653104597364864544962947210234902714180478049482274718345372725056565106809186561901650664933131812635420903348984135111062604126910075485412627626709842592416006510333302282334994341329932861650558654132188355648266503436664399657221419405241986886942984621947441975231561536478386260287324654212874551038362022213090065387277391605481963799341888329346741847910600090759455120200866434900425567663084572046488872299705847610858803001223636528930174305180605216513302914214472159619008746545712543240135518838080059303769873792913416402033013996373807494336387992756968786657715248667287536104041534241362343952199492942743384369888860394945668415405221889843685655072439394762117733036594752152781163599854386448797007310603213010317994937158092379389919290469904581212287553484992483027142456735288819702754339068186848941499806283694717888996491547302798551537940100736274909184064242504433061217978204474223207818810946833791253138105708144849277228186291307044293829306082405584809306150400423992244871836147340488879461337501260521470500517868188931281691408505905728621409691610681268422400843706975661433553864461513118431291064801451617703249151860197704519823638628737508274527142898542618462979224053380881611522022455136865790074440370064219040993996770486194276578054147562632431139733902489203673556506249735629774199016511028926507693912166436982343591529221900466826018200627473775197077178528475202141529173910058541948046428415648177226672656794893377421413065836404075877665652946472750649020338331440266641279121156054805693033946166961477278792448936740014618240948775957007897846122290201358367124855654448717883757937870221551903096085212241452608713253015863124154440082068293992125740513787813485357538314485743023713543373800870536725741764157684487536652818312321640025342136531703093022508692352908391550788175296808125279543301151295359704827032306011067634636321493972972510549873680145218609933229986873288045243841943774500299582168419767615204010865076877421140242495214855832442944221125896428671282745491692097066749809565205116957089855564157685666808882480366046516602066002205730817050228803440461273630175030854876045873143363042006279263475179289706556256135567305334823812682603622387594408165968034567776108508553885326221744665113212674016629017664446743611380580193614553516642593673625751624749624298404718046900911992923455375041568207040635413494860286900367954955139760810565060954679428949116390417538433345094176379227136726119517695211261107648026763632609622605326199936604330413617876722682948873518479020418414388026279621395453346328923299988390608466789783655854787373998852257472558885066948116497870698839373335073754040190024923604827992170651423707344185202099137331385929945773151833358826587798000236152023022096167863426409796326336307832495031905686253285201563489367673892831699001444512517203664871784706678178235264036877987598353231226241676968348564016102543506674238192248901045646471291915142002277534507771380968840223194736319847334947224649071749102837170545863089237489223724126167323504979179439485483546257990480914999572896575333177040087015900190423950698107617334343383164091927742340892413840107268928930537613541749741948718718006529950504627478190640500194312448184792749021185499449004117826513887460489370310726222542510341051610140535206895780452060539660166071523514997820143406504499481872452113707659082842022913447128585728423357609340670184349877511463871013789283578816078871062325067858937340229581061258454588524264980660250071138153375337992148201977404168408015061311955345824988560258577212658199226260708753896229747682609182393178292135751327648956875869921948873111957263967125194411781496606352731766452863443917044706525448031582001644745772841939594081929632524884436644034215133089389325335679366233115041943605420712202543033886947822384945922859944793695190387537072258483446493914327640734340055971026042145908479705742414759023521639192943869782571763620465033547248218629286505420308767126801147230242459118050659555578806583161062267140566410386476150727942988463081635906325074012482647890533566931492174243120827772536441966496758037297259476123964797831039228150730551905721942915378950623006870322972262600603621388872266237288823267574816423417073760191066678168106072726186310624536720999884957388890956087692871843931904320004579098409409786071278494931900802361698990407577422831791648773745347541818458006729385354290534842803178600162730080391282693893952088318837489490426240737169122221102973095220863218551396290288077619488792128221344853116446140424187894664312981502202320593420306988117821641036467861959342755900046526589117298603265150901265668603155717814900195409187782649630209707026415721487575033352082568291401569970254337217054244659988750756705559551580371226471909774326180885062245054185930101491148630942406530425788872695366576023751374228358012705062261567751608202889339895139701782982234561772105524428120852521111924495549163543425977687118756257573838581080432475963828210073896474798296144922133071407869778307882150850101067180827117916859617883461262009126683804948261727471494824484569706860504103097859139455814384635079118003721585664622858779818490287398602499577449898147896542688233034445941401901623956923172518759913776084105216716859303503308109934405069571060273258239295192006954738735766875425238233129005271880708410700226894813747986704352141834015313098839838702793205239925225675344845179758076850540079468122847049238502117887744974585458345116459287767403225799540221296045515912889196850801905661542659880824147299360805308217729208096227433781592414139607766848961843541143696158866180701796030129462718635583803481668889958309312493151106493587839127216418228379082866846885225336998332367605712879333038904698453307370461179240632326942686583233666495406953250401613912032446808725528489905392636045573371167304743543668298075562821379212135139156659627534084579340608603492682034561768413987290592493891967721125194497016149735162061094615011161261362539535480053646265792171917892620707812587575951686023942656700416982142105053526168203091107364485913316737618023769714170208617730238863005791683728515436423602242574970296637442374711489076296719205275465604201004313984692441239752293514917240260231463316117301575731349085110307890473884442411651727155015184736573429101358731667474061608547257782178150526520977759778579027696110868633751687792526352956912735144637841664543870213637579267658448286294517029179905278913460087396730230991393900854937860914635085789621659186750457985707636599239646617484388208721134429150047699241749313396029586020915547303258847444960656850201289536107950149296115357935966632320514955459141447240523616503689214993790292748113580799776283213860819496310863896466304821076899837890980173874183733091032585179147812432862449468571630023777354785009840470005606294621941126017470823469806997578138042251033137603829559475600673280645855393107382770567434687567341061745538346712393488869664221064912647992511486069214230035418225096221326946781048775346840827218654673095360250859568417643951979601333235678938954118099548009067193196555913970745982625411531981938346223673158426103677165116736818397808665398938171951792089246812661624999163641949932822938553431565402218546101269936643546240301898235301397477107889677152540467376805298614805046541553592298984751418730984633893196947240062920260790585515498103174718193955975486646574332055807202591179074047782315372680309644360759900259223770145303401697713997365246422675427804663784498751013509396292914487845494884482289972465930765042616530511882406716881811761497538685737080323793896954503993583616540956961650753923114609051803581961276681344980794888870343749226316703155123707025875387770046060397614161123034035962225449661035696176676331582402675323989098722862349347911321211111402912931003616791054194461985810707457990160407184844580526059091131345249572357629994992517061915033938268131623076246348264151310658859976101949644037277523114010747816460288793117601248205203118824920724146881812574636200952529023989100007836470187443065798759027897659677241008283607860599435955903055085236036071776913687611675296088267287926826607281448720181581047344830842044358557836537462959656989315431733082600220132672155436501495184952968682354626587786989446655913498959197269657766280832340452681497364879149609536396967381805969552953467995853174811934956363590721347637420947005691677975345885283858537522418500553077032965345681222078849430547623737303283282209416196738666110750618437491168260488190156321915209499016393712586517307755756936536477252519596909660064858666809556993557494066741125844075678189789708815538729350695863359677491543056014148861923110698559893816941272689809644151220823373734978686424234790624014503877418914274973423368625287316266231450432773640678886836022689271856973666150479747073080136410438688505068307650611159258828212136611066961918270996235675568193584032668562044825282201888998016349386957520903106309071979999652275210123589994768999687647781754948532142475964921629882069157127282961457079411814300113563356233039227196153626003403830633265326222888075852050567198673715141600516569979221160620671200621278805190384691862154911572666085134075815223789076527834383713749096885805835905271130551087427648688928423749643802246420458456101317355202075676559229356766687795092342192143396367068851788513219140826877781191118578082367278719209511034531361493856402776626407245390821996609530863541605564711385192428228272736562945169633257656927475086024447781942801943839555595834464019443717753528741180038313626220299751532545457903161682146816376276698707721692473842757172461887982988594872151547867356722073944780672889005651036159713477846968629933195963351780596788565211196314671345671004550596342163523503441659184869880984134231357446039978244028861642114436241507637377073875801674747022489233303827077359716273744902384237436355204854135821474763141766685938133133011027510854409306407957194530702230341736311578630092845220402034062974292961139713008389449382426705167220288171621063440880830701449808488375830717018547319961683297116511085041104593769926659058546150862847253156781121445635874880418393972862246130922168039255767473985896128164072125967963811090295996827294910358478478909959724213679386132837393208706376501559408958428018553207407691301640543615234748433265220525914373926694563926875843561010672123351173875777312845887345698033497445846133755209929276870080038655214503014941746657963272181845825494274502213511641229317000670327298446835329404220073007638763193603882012808576724322338524149234007337815771284923281773133497744238114349335260070475886798237997340045287410897525795082168654736810862046007204949575994119221114532013203033656375899897070307009486797313822546258097259638142717153014503380726255422484801723124026440562467835744844609528567125779569852837223212519890137438994295588134898639718447163579273183839228941495226150948441908733405829952467340788329048791379380565552591445463786862007570569917921256723132634127016894579299486678588850873383899412658101429572844966416019802395330102109507695348276288008322209170064566366902053046087106299105917509323351457645377870967245801335081963279201092794797412996470536842028924661671663137147415571881394144043164883400322532576063716428338562262538276648088290441137820502262056148800811442726308283731575559783055538884631754553475145261643195091231695076637875219088859697482179805093775306931460729938435571632468950279857230861990985693432059444393212958666870576176757794876680506881984859930800307333108636692081262637891424421631490907904447951074132054776103087758399108052038027669093798983159982750306523818049277079729882621433055720206296289890047864996937576891295414563096929809035158365853171840787978306277894914123853881933490855385310206486363513643459117727316715249803610473893125853880602979572993619146775382197738446371301936559172664965638379815616430426771540969172222305285682343985691341300178524437919008925794001511781011582436799777988079507020884433888952431434893904026387093584350224073786016699664557408760870521760389183164186298470942995137590237050450409450481562044862508854000875861939295434690640744321030006127137624818097915889400939088065956228622069492588303530028870411978430846455937315673988660854555126333865012119631096450686111355349045262199306729808607000166850701476230622823520993640893639079843741816751728627848238881298054825742390948014102435622005824909116787421617727395618824136982138778866445748396645188059804013452996513991885841710128263283330740922365139946738078842007478661471778902614673625527279582051622963660023797411447440840873801904057477808491569495900905228681683718309223676117396986889790653264171535492591953921893877302659267518915333061448858318051322676558719918689779803072898437192687412568678667572472817519405249236313001334041856172771676501885020445679300698525596137146247695512738213153002097802528503357600510356635978078796592747434659014453916827185916241264991457149813545652456835196462909636129751350575133056354196714443383769724937064806786491815189537999089073032983029499946734872740485965285561717737861595793605636377233279275568376405132284402904636289426031179243093302608699452146563625449784848800648529738531410484129033754801942929511731962065096116560886932563998312655681895018523037510255130003117650476867318115535570636068703087088918098192558322696584501752949653530626165694941045597885041559187974494190146838967989936213321892671956822016786957162045886195696334171495357487048535569911804921897852838014342813765954660862294780594743611937391312591355880663802195462843300101050770467944272003830026627580527798691568602535119967006056343261223352105114096589465883136589002667711868380734324348328881723734790888849815603234927898440206132025724602994104721631227533219559712389971989827745665143609999310458679131280723298817365514493303689899011994126055825962694695262254459242361005895177543158053815383839275389339304313099816676442018383396953296776716392724216511565500443258259410029129550081131315218008179289280212242081203512349360894281737061422214022955277416608333841441554797691931892201720991917363037027264874417531335057447438856511469319472334820513683924085655064891404889412895830344893049442788167190515724393496523257932473349343718904598859233892309254858313047008965106143608248369356660782045204605413489824265180107335446941762292958316881919866044140024103626480991878178397573195564121603152806745023993898088555493780332348382650130991719281413277239642741760400457892955447987294798986660844213088190962673474653683636929762768064524500589082456003054017433908599131647884286725723677317470862288635984743512345469726122347912301055869711020021981873938608549504872951866859764551415779018595153035499617284915739364244709278078717135411538467607305844269036751477260304835672923864591620420227830800816929657431430177933980987244586625571635780569309119037546376724974853421307465361623679038749298457597107564359305445231701061616657211805336669421476323952245363972607581570089285888529547686563686898629962630929901042445975216688314025943097917818654574343345796419231923679595585054945718885224361620015504393808678890505194477814868539984482500357911693963323689747819397274768310372873369406320304496207078597223400689835474003237835148446993267860478823845683073036242515900260941637423256010872766990929980084247790069260710007256541276015566202798583435552433918333936998839281366369655056740194391597768492967952823392943073326224366478898893481540862648158162692178723548783911274940907539912115236403225217106755848128719707309817971956500154613219483052490144911322136676044556178058179083021932413227193403142656595000419444262696763548460003827589653945147457819477053392047601715887559199267963904519668241404673971038761135998740152929938487503717994255384719396621183986826054123300907192089271366715609006480883076237482142318111474576994335474935808446666086266568647384343642267987235738565435331057591335118607434124057424894166896109255065457864776976627522798887027759141216610950673303552705671066237307818595615890584758619041613726051930128565659987047940227521875612356166894378578614795696003688562231877761410489493362300601823946380431223213760906376717654472279185580112669744653200035384986415874116473277175639883873881026549397018350188071348050617530088349629984470766662289653453402710168198462102108512677196481158712471929054953877162490025882672239864808380033157892598471486889821334172533318181125643729988387137208291506402465520162498870350917864764477471475647046925611713036469561651703993021730676771991890702752729593328538980715858059201796433349966675501942594998899835419589140153554079182735935422450040867572277930879164370492247042625859614597568860968031763869768744267838081764122757697517339239795079353042133182184219680036524475364555978096397714659972974458266511618658937208858913531493941089892969220248924026887030154129981449116652732620512339535188934240775028643004256238569683778936395839250197912730880907740448051769034736312574012444716535636989153862198150155165032643494995950175453354573587560666957293611138176866616025413092540253080692228737969342260120994230203415706696351562313051831994521544190686193328844682212849841398152339666078384587057073277226562947675144965785504311943854416288072015644071531852812700975998534880845322059098724358552122364125117527169093455577913070900716365155780630243414304310546186647109428427213664485522788263713283812675247722061762022441939782464941031736967079508870025551279277882336330989730160322742726698112974223874296708014807495478859677149136441724905501289339876884823055604459514091476122637563865019573691766071208987256920836669727084668421775222005818247455352278967264326790800102924615804389539699871116941686117978706071947401344735975270674919324055092165288167013468741233460216342836857775497812423601033145381569850037079988544598597792063069224143767886915669049815450836824848385887384173664427651733682128096273542396695109391941068371864321799934457172958442711832044472223304533786727137228271543965651991358415900510452440179898612426780628260407959549886114568966309226908422332532125971183817575911797588451997528902273612940242572654362713898463412106855623119345297864948699908174294378580438159557828918929150752493391251951785282514080469151222946852980676528107138345439293755350657382220565377648075074828148796234073970365545075820850260686302261845849875586915505631182498441831496678019542158088557270844351187493887655915861716007915542885994975563919961067204011308818311661730473799847252777282359890647081502146176826881032807974409795275610881964194191845334008680125747683362316074632716520856267338527220844765501233502796594174133380156740019686611810268783786248126197488813020425730670007910633534957378525589621681486560862977181893333378538866821760090441572258597134617182318185936648385449619615806224981847195353876550526009841383996745832409864461654250362005683096698109398900554205764869552864613502051263625639526135941540031557433120771529864465995885491951732855142781490367985295439731923291410812276663663505724842678839308910820972186412134017476301929209447203059532220800418790143470287066339549922471180592834444441273544588623783756986182439911160950141741596096842220257784877381099742024103646895601962013733128792183290291687469790674964377697059117801095842302285424463443067485264505639294622552409743357976894206362202292729144621409937440668867664457013336728782516004053618753493139353305855498961711090883908280362798453309057063518507140665304778187628385521444005995649804337240446554754024610308173809190051960868259821968549547697706376229139360544563435752976276258916903913558493125844044224354394874130088516321078125779675343388425634600730939898215322286696132484750138696285155921705840411522396456666367256773414496181997637472890871694678614163522131178888778097348893519018170702277681150586576381643567022804293043059695339827749933299241489288283215772564771416880418959686215631582831117870439797906902248300700238116935621807997746499075319884908638759288587164522285832477131896937107937677609659183019067744839253617140000612247337916556003472146642193498906051945840772625808452282237008182333636143518650264901806568944906589972358028071832038502874636902496051548728220106943934073680031905994131263888365692985156707898393825343242192944803015850851865560852697510088242079228401850247799144890380181478937080731135452945623391705583952666885979808796259852526224356674506682493031246191949029854640246579347220709219702322562660348529718134759317169724932044607103000582482831424202251604896585003771879495586409962711660949765911793807239241128049719093880035307422797825898524363315038631829033001287994193021963716418261608913318586171302258908769581734596186482197195901257614916095315303586257993217113662018989779616396615360634437845432977112912589103062511404792965882191514555585588256663369985820138775889217424758207609263543293341902876517408421735439599795479230474474802533256282706457019153875755947883894664195929074529942900974049805285128992702173648785203417396145803600314210280300285113541749513717630244536153821751732371041221620600894711029011702361951527270377993313187361398939317393497757843078829009727419541530384489788252439629792691657141734989343658210400792565774276481133931794622023551985255125479139357738580379366966632193689994382991463077631030992979969981054948632373288552972040100096969477851106790871938842190395704311716710962676296184961793606241693148191418179438454363063015146803656424335247138031971162800825596770681418588172165429837349978768178330397088095130524421152627407456601858638721108648385550045981941537281423278490767071568410991411329918859841785504810714289822741130159629379953541428700627065118589484196771387519062436170298237266836867331521166362324195254429375157566329442833367975446397923487556666780227478789247232502588989246516514097894261368944275397382466343226877425588421038282881601054480324121606065548550611275326320769935338511892478705549031803935350898535136242961493279267665045533055585225069522132743496629817240078419907101817586503796829096329298220631273736496420425231361764073452083513896162865190490655029034913658921935713848092178257499393886919591790231060824742031381927575983349106564025651481714730268486805962009888468499484148052451345350831383176951619372118714745134448465549992346002232686860774759776014696117101613701354184630861987850698074898611027148059617319013312699180731646824158488699944957822929240377219916945781164249221533317778869532689034052557343703321444805921992518832042078347864389271110677821319599492604509303469591480465496879818299332552252002207324822865729491618088655559474646207233897526810156526049939216544191238769145142434178916865431175483990340305696903263290795408461880663537368408709133597091243974099476656779792969562716399575211082241997073703925362586898553658006409031909517260083379452203395447247147694062041355305427548094854642814201979956281776053663980495556234463996849842221493703631672258565894628092036965031154430770421280366371832760088786919968377137114697315818504749503458186426804776080192606952100982081632004577670139792512801778473870539160600795552492526573353957070732520743612270104604518735141476457928270510898386258148201385173105517413361622331666819715714583885392552658358235085892213812389386136396735173838241517561622821267962788891184838572444161136884989635492690347792503404115718713157562804079624430836408978922275998597649854831756002089518824572132877033545934776646138189888946662688137310959437396913931355891747973793891637771713712008370688653414438127280269460060027575252115568447351527605514338949885767338157695768571487914934159415269565529139626410671509228966668679904592898713713931127798161813012850459120805324485952869967282965119227626788271299067153891272796508510412904573929306850967505194639963687206604779820638420381590449077312372179815693347133382102396878475816455476626787113410909559008396095084806788156359420861325568432679704811006764412754761659353252429768827635806490590014630271522395531567389036719399510200897681668620498399590591984470711657451525580692570998816621739682417526264689536158693273927440108146045131865810050229141096287448914067626694544033943221139899618695449522684098844723297673475479620726866092762335643659799371815472157149770630412457636816211916264296991712750091447067364702229949286970624265501255753457173165139097304275267799679280911287322342289483192735695804326352965630150141519164217976535262094203670063730097135704499725124841349067287171105090593675076433499613755282277121475476381437460846389729238789176764765719157158245722923031181738457355580628868725782971987214846469031265446879727124641997842200351258613332271781279675225688470513049464899811500782786414907300233367356949522721882432914186870633015319361894567784467142332276091298611273433768072140581402430085878858650429843682598280702714952300857179401179611570545141849360927273541215056651559773046282459246907678163084115691559589508148590472377473347081377022170194599010121363573683770325612206484854383164052401264500805369915994780452826703533138533437627366311146936483736603263779824101245732898999699247089602848996184247473108610783787805895621055322354052089651827076378046903754865842769467902128225282780044781638705507469340187338863501719844386980455165478780480177244355770121046772930271375221447245297924688131672050466540368223722950056113050302846534325734613835003578753554938286245732290949467498078867430506663434537078867324020477677359879313538326510292872354799163032929408546610688623149070147525520175375933871735469573333531621057636937181559339336881645076702909865753109432655780636303793085291473954780550923221156532202517799697126808388036701606636888015918432584268763857852234148327216727177410750935602196260436715347488006065274011597565600389325627051793291856032663629071680646356876636210960462018483383696351729007160372345996692113831201538850968315501191573223628888151650834870522755812564107420165027267771150259651012558825099399025420673225280255642514040493582753476940897097249122612488300856905367443792259635060656210012495118106146822279772827513623715450496384205948420174005938821922985581879528740071717561330197614899210395793453443937664089241585477561721291240336483821645911794223207411287266338847001566420940205438194283233814963000298309940690105080631155311233156200951067868016284498773559219359714757999376658807608271910840691573555397156109321272891638220529320908245259319929846078649485811837390129886198743449598980095002947628037030384286835989290685443459698085693559390999339883852277418502922104097511261437184341665570461772506745889902738821090505471625454348166638853478088667914968307980548939243224313173598794934043754316859859499618803226968790950901844463509085189163749901071863300415998467057706164092003231291545705268120538105822060585860365142257935208693892150531550083665571095259141346989183998871560564361912667528089427552537645459333706057502892376832894977310416296380315522310566088743474891599667536804692347011006034646132081585811724301301294692010444492787239404613782823692230501175462957639982780497951946935116376369073626359570076473017766086387630055841767492255528178976285172831221899278584246597562257794702644729908275820152891447010793286935544713971145440836385631272149788297042745193264130676339686060213323572113646538624537612346097089692700458487763746680816719433659920382633113604305244524193449775860319871040590345069177074959377311130776401695513084955215856670459117823588904847127866997065757062552816182412754257482752792480323177142350421312376124997332093976802344924420024292110627329442611099968108528428332683707109396425707649602248899672534564187026999641164786734920592758550985071366156208986591520422523043320603759594626505037525842567540064409255697504921289222821229108519731926050418027905062390603794546627181627614253700559663926785825108837443319257693325736703306603176402735206946014066359296735418537677994067719277092032948096460968987188846118176436049064507338756660240122081356811040917671439557411752556603231568366078407069307112658696326991335320196272029835503588001805415828380681749627283834596820197059525663136248736039495007361701800898177141596814696698513689911514858602474735973334640166697521239612891625713277634724289399586621828319474936778856603883740129762541815517104261793915815386509308591948259378321695074472835656415497627552089836332926503390089150702609905499661951892575365936240241414942824509670955851398926876016396645251792835422208882968214996046112750218202098544097043866644440273106830658125848254744721055224412737390283791447749458856162037736895592929468516511372640300310326770894470154405819490425366204112421873731282553717148904912195929781169392802016463138659940296517524291443962158144812187646846245611001066478512030943639745973520330730037741479476066552767141950580272451514804494208415843473435299755088769463391759453536145950693682297971553440117177924370713996012978373618297167728474105980120052624590594900535226946983433883471765323663470976357066795777713939903650545295534885410687937866582768835435405968398438016952645867028497148642476886753040091103242985733420349119334125425984206400249600258653284273251425857120374854872134912527229691639715636263455388175871279357939646174254231047390000780847993223282556920273642131462441572815394109641740705520898399267510472381564256641930925484126843898225707041705387440197762803924940835826511640770016080265572269214305160987940864974848835715142259985427391321132320877005765147699148075682996987892931513191124466927122045665979504812652642422133163150371767709667840347013427907078665371191310152254560471590652427876347016125594799426947054635367656854553672762195841425276791213188416349363184333136163833602990935786524815155853422700745939957270763638562469989068096870393978534889674606953618543311897106069529234838120199784371421375009195023730879322897954347186972659024167145289190017554010022890823059385296531928697044324452266625175938322104864200973815487010516680958130373505137331997753112597441724850801563625712238621599634112894287306608529391567554755877548316766378996593836328892189263139953967208650595367891526130624558919453212476334542885432126181672010323528722924547609679372853406048165678198385178737195683936045187727806868250107359386882327361425494227247192272347160017471450394240056904696835958888352332549585639075982967245262014830502993642276478628857786434175354158538918659766619059214256144658624182320716884111615876619238669825878160392022934701156994788221140423678184460568344191362016069484200638878294663790673692714794333656874470713204709804744912569169664169968938274781904884467184475484745993800382963885669503157647803728617202265363713058862275894431099235667326736706483973158422589186656022862195660217749995565056596365004787441933852534181429872066890249623102700231252464312924301677353643884328038575196924391144876628612547480808726262410737540220738629466305466246903163041834670478502130201361754715949391239638442660266838204734612254701753976519273423787590588657157810637178244145783785687735019661142341323180722779370426558264677705024494255693435866210087887906596574373188925262853830250819465132714626954913700608697584917817177363905076753787767384072830457352077772917697426785596508045246819696814429156984300350409466051026765115318582259241088516859015216829704849389204181224781925781617660566787723278480388197191877425471980979096566600714769939454146997897731245143985030335923234826092801824438216830993231238140480429994481333474224836157697959813923302050521400884427405574420817640829480752059964526475155279052849064847673645859069527746519352305302152006929763536638690566783308423686137085562753266455883516622137226568862520289785612658628155342475150036731169245826570736258672949119722389890923030488654105296985909170919134893349158258611513844444887204944815686442484810948348201546052122471133790904586146772502498089255178221015000470902692944143690234746605628250765640947580242093452577855379834424693625250599712117985557758422065104192343810944396815119149675950388653651734940893000940547408005724838589752998763939410561853832726766708297087228173770935250240591637983644415341906452683359923457309654853672552670196605963128148399643849723518669557263949695119832750521129663054069968972801132598368624571013657553617898496063993033674163162556319485604663553445741001431813456374737014083079343641291812485314014834647248310726412187877905357398789289745146680455223671888768234477718520533340719803834258516990851158291357029314715883821100241034363501315993503311378425026918094214565797643121934092221948065531662616623616784478072519930630928419718149566653615303923262875595690940830299794300842998632536882862989560173035028753789516961119944810632499975587346250272192889133615842343109457838836529354947316826570007049147252663993058627550829046895938348479364031274139874603553982193367256877753800359484557022536505469056738915655552755642353084356597191578839288533380745644830932354286201281536558331829701560040406388167519268619049751219884372416345466348862234942410004527508597028418972070737404572085558925402553436205784528344684281030452251556482610512947928741658082824379783866134291014992220676252960409849992860375324501118353323512121348687787226410787255119406109095059645811184267694729294320157006105777381379889930723518113394873102141577279671469896780604281119334479750983549195728412338133132098292486473443491578944685760481214890955559619208641349608293447287068356715552843734021345081079137730625303985841201194807193496868129742240717955525148238392043949169453972243971451712127612376881751907646765879542480476218977648717735781128729698996168622989653145728696854347839664758074035869535795377413347275034918732736026238426111891532017239556662706595040558853233978501467743681411317651141782507207133578559810576755108251239876673928125834049426378752620310371534483745047453641124480884544896750311248752501684562248782879958648009287933129219628805472317513224937984098335494275634920650887560737243146002422582546726781963941309075864839064025679918697241979953946120072473490034979417853876864326737165333068036487270938477749147013694670408975727919102284024629736046667785194853868136258251018129212865913267955206341629131442300035741741456451237629101497265931104066952249421526333790083465241155895580979116913431119327321163424731826460990829856191235922147487832527766434662863333433361176948455851232312735246008788864664347921730250069037231077605873755606567577881152091921765212279640160239945327626304310804567204927519448920076639158771195001226835159835680811992259208650884334327734288882494574390719846240193602770276521113529364555174468429510160317327657500877547452692072200636978542038875830827337747390457679967094310465362242454598048407268567330878276158023765568342115138977425608207476188063423160329756570044471732669298871104004876500498275760797564160204255281309783141001960039880380651725344385922820547375180849579187599809970809638183005803867173211557814968304928976860868663171096347307036824036940155632724112500717173955274408693543763103002869837595936063510584069325768751976986073670052560146687143884696508156074587708976172843466668459111784646912381916511203229070572999806887751182679142762490216205390441497056522113580504605622799306761526207947771421938970208930972262627207584733622715080446647011192982440626596601845731884914683704509569718332009989695320250592283691112193777677859593674549187420270926878106619440432303346167176569064271998946728341713262531977463228297307034495554090927746624235661591550607108594852624904118431069067595048713551540447871242725923652017759415659218247968387828430389305818065578305527587903614078381621852167675779387054606616740475648408048001800904883881741928449996600871647464106559918435697696571125729738000062869731953200581862847367467859468365532120591052077793795054968940507241067571536927886312822706677783886352117648192397517848024955037409522698223535490991083968651349097681297100269210401560373737338402796752042735872814819243015919805787901988645482134793273648473726596127617892015124702588418261362637674353729748954307773345494815423086525623251559262360280127928584614871704997272332352831140359807733897431280916218437257351125075953999913136871927529106696841555232057494557192217977877152175969554798440522797307855972531486297098343848784560742574453064866840909404631281639820129542544364444443397934385379707568950148020565738886197761487539753318235985630622906981122437586775406000276051209989234070347561244920771645435555225860049120064950155341792505018201253048173817313297371296509235115971511527740993494381404308152449461874362590169799918720791365409426782677150654698050418464129071940193499835578028275767547425293846953483512217139330525246647375319597998864068762854963133636737079469468116857864622465274470612119937355704595554219841374786691158415664602300774576609011738000107542568343212881915887860331962561854298944861329717328858883922836498152399235627490499313149388257029439328306921371359210478752345869290744923967700881690898792574551666172036583044120405032986499384058425209442626218113222200752505462598823339686959617443328374366164974819507802015573253466722410213893007952781646774678612007130571922037668895703414887461981033531619553593874828156397149426816582587230387477777722174785896306950361060767879579525239829535008509850613451555907699333299856144492774189173822692171122192048538051982800621030943437482728262193656568266602873024898651076422940365515414303099474165766946499462104660138241880071330733046166857913484492978195548255900519220359269289476785192712490009668071116188469835672451169505379266428572807451774648277137790160719002163109665216788112763680343734775784261239557379483573120980417177491520897264077278745617657650845196514917582549511197975307623463270309853410125782410106463249669419277411399357463089251355098890842046842398418636633463918258211174258286340816349485269791071212948430405470893365108555724681697596929115175767003824007918418721804494136672062688110049214771469787042441665117890927723307625294285416252757897346816905562592183160890408730634697875264489740599250841023455385706449694437911843444114972561879047221329696981962704510654439925929017194683353629523572756380497632764740969581555411503322182939711978267813888689889985761845369791940248025000118169293853666174446923715670044410614403610342881019489732440770039225908431476765265302205357442121476629734427565373262816850684378037320123124777517546652875259867893345390347808017966096638101366258641526352598814691228657338386525299154207662006014896321963072826545476592870081009433971449153114685727143388821376755574829478893140879967377531227746623042216769038108164059538422978583961742050118045261150475569907528152651281651951252615093653313990256205721137895800199560748086968060243458661861130235697656702626348141629223257709661217978964612719210479327630461407839025494975226762344340626042596612262162681155168809303852950844615253589612510166842306699204683969050391576055323992175102258612054535032009056131182199403960470323035912848749875958553628049011713034040274621641733306268406833258311283642456182235310593283760697501850071848878520597421185717951208684831322577632464532232688176472057075540966274767528258391420840909961875082472884931880791502248654808096129315824957353721689405519446298115430317783516130475830292804751171739039487721342786547911726589716791585609152134293658939218475928114390523443972326236178350182980805280058319233760936294797646393928315787592303559501363720124284666882401690532060897016598881029448485949799377456504780200844530208829060196406060989735407207832375064028827173888841973807121559388940260678070206005140666769171262368861308222797681963201908382013637075782343458343187323106539824412808792884792943352198104146230799595686076470931009568038069053914028442734643026946975284638812709870824482091957474462183819779746893851996644188290308100965478031381085313778842460581206451720695300495731389875408339146088555417712157586889004666151936602929501723388022526510046538486945714174929159901127431832214999290814620488927269564146774807396838972578266633766543299173353942928854654579786224874869632526765778569003279999041571186531472565835093914983115554215593897499820748444781841783616949126032712923918950264455342756458608564122924011315036002782510435893947100832752734383392075864869293642153377869202374892006873836332154125887829938024598004391814690305717458800988212318541558604996844424148451084677424051282739412418177785669575845779505293627426648564818790578529153372777151980027091371060087405266532387173079469777970033748729793020096085302111363209375745225409096230700403276258743197429062913253411309298973191320738236377341971897493460541979129966795855024160832221403136388852542262238556002214630819349810627365731278087982849094645810028864415224520658260480811689209785119896226087661640552557175870429752447232283935780697754483832357556527515514739216082619310053672364509790971034657230929455058179476316152199036510064318237692350645551298647361052618365516500153628748654032099923178800732518298373759114501976697071650067073134308101536839104808971430530393033477367408875204026531451758575398152131790837915306041141239055081784955541842493316684722531366001327582975899887181593909701358918000557253133824385875362032703239460416460644007131957118635848759261404859173131662348699169467656209671213315292231356635275382000352687139378509111186572127104346904887050107583887440539633976538494278439586346111130275263476240820691699029094130389184455308019490321782172125853792309503433061005183290049026059427450618055509569409412774293658858337645679811190618201886039801692557079765495742614244425043369418747838754912960232682923401830569401133927040280391470953753167760677254509631291250339946431952379243414392108231946305241635133835514875996848400264773509533359892131492085874684672267137042837093432600333653537796456593433784499221406870405329806105735809744262596944787590753104249864885174841503784464065133982937112194151812473293646208322521207352475679682756210475800781589541646242007923713090133607028009885485766494349401553586502364535177896707794244066576060531385656802544391536250695260050834406986579159495366234503234851805409948336075838251568429774655838749763528480240686911453166382879668590032197863635136362574056858478290197956603002600552181850847615417612245875332127820233433424135140263317164605668931228127830853249502278547378563204659778610998887552537538007622541225743540727866063130133810169996734669848579959107714558600674447449090252410793402301313969145804858210310869202062400598875559032514206645903326389739984306361804596884417590567788536459686189915085199809817163786926845455749408154931025644451507802267665983188225799548400578218738122803862418883796100626781710589388928269985378432101133786857962238974746461945628357132661775843320448409462283197682991056033851634623278647640001686989844987844334693669244996193582744669055381839505119704299592336896536925405385543169034563643577897305323546735028186595333688384225076216321873594243066536972910711906793572655499968665555282060266252941315925813985044947007051805238306588823674657373275369191262226751036216906669102028065463347151480509586351362085773563437278806908489184569602787180264703995923209880045307695228711461235936816860359247805634498327120928803065490526278708106334181769366362643915764855576727226120846731216812040961677015782224658688110205901396253776658312075518622716637942844406553098137787049957103112465674032084602585852535559154726809546469661879263683368548960577346099245616632179479235710496256634798633728817138129737766155524118298852275514162638308116745147366633306222000592013103975268433891544578150768594152003142224367359928952107708546652451897405902211427966570241102052630679392910283402082692917514638467984107091208067219463849196444649965339183877709464711684945721601625246572499829730540464015504193004740769421988910447311517373392138076074212805208963790769847340535888474189289405440775939076743566455702034152782769047769355458698961707402391147622181773413008514132306393719347777714517179738531902982842396772127411780567652197884593950078480874188079367970714860239911790734653360360353879769623724761195499567323037703127717303855121071119644337135454527444805950320911344538197882056638461108673560583989634100342618512179122601348298734365694332520439416197401699962744481147657950647445178905759217072611462352026351342511782218306245375113067935050163334526429904599369171845365773771542115235972344747092580769899760786939216938340307327555103346681100438069157577328071103638657566611449167955308922204613920836488859924765563348346166130650287719457198182634499520301252670480938284044761554514266716166159314710174234113248381402433337526885969415807324771459204443693641541012167681071571760757822183008595245544071814227488109115392746937256849724647233542607172350032550499544299588243056626209513976519149862862550694875993492927027256290048361604428739190000827908258621831327235642004239199152950430186896837638502007043321106832245083360532951324571230327222559423192964523463407980546947542697663932236108558878959680252047666862031211723790344811808540070393751789370989219409549100005036990709562544839732641434347688080835932227130789052538488487189317175075031766690213701007770936066616604302665922931692410379378415280191014618151853037371380238163315025679220245912873522290619862910852037667957335093020953086614296276457369001537112822890445965281844408016562376497348025091511344942000833849856688839629043436373842703998792743963574262980024907197809462843091469773695879442262158022602322162774523364326677752290802765366146820988683075536907448037572820525234525693719163905918966155762757062094290028290675600813890091060087595731673413524419125566288843134379726313521971594390216698096461097272145252789384504452905271961938813146039057331458175241054534106360050992219984776239142390373027742627272817965276031467186206351258971926472701088873737036084472824718426978409190305952962483460211513832768878659751503339273864500988557028285796740644315008923210925792873426843670750465289624791464029687449727477966640088801523848872815813610306252773867588295675030325930273809469889747219802744204311470458310737635428212195738888700175537124042089181251062545632347318431363998187030438490832931215307175496144207681608743527636562628808702018507276700013581106041133646244738203744713962481186901717361146137069819940141157679024664614836292766325301718899415783709169360193960650838989661812286435475183155981985920982084092403491823298628361394560841563715281091241766985681640590990466246887579388381173012726360870749270711994198875067488512485745217287670837412271371080525855360671146173006291547199923074532106286159966181406471662143609896553699114767260593497211446968072836467702216640686154392901462650477061979609372768566144248375783603209841289976678266037711125792212080889692688830839565501873870590767202953299912444638593200700769554766405067670011996302508094454011479506908897590403329628675730454003942138874681590040605683512646581505537174331118514467901122728714856008743724334329301262143491496166100680864873160114496907378298198632320228133307882316979634686852468162458955607409495411397583048236095771701091315792113389156198352874814502860525114684066832101551135957013602223433452735976240069283275640840348390293198355938442103196117101759582343702193197427408311324905175026795094748470296517700084944636166462440789521437597071765694754198407974224884219279618033595025372943827577043960397379599302080740294782341584566615994432041891613566959029372841418131551757677426533534712116205992526815738872606626903729239268522255853105893598346489450645167546624910828778717365740781526546867756962805159046897889477004529676205136595869003267635570383706810899822147658071849508493444707768078653361258522390165484438895034266246860586710924952693693764871851306981058920691704074812614588322340069594377052575286392650389651804415368979412820556906465928673300286582218807309978083297253464202116220742389497334820713327900750273331328584485581402324725344448055029066895746793826001039856163129130570644648864471454920084803183416146754625549734361671959768409233295783316894159486892110673487647501320861118388981540130244395088797304440420596040794187964214996388936739183555366030082399651618942028139774833779232475760642624811931218512318920104937607833152432250303619729435346603825956008349261070319359042744756929234795532128602525952636417984300615977934823562566759209462941217896679649859512530308144675823666793779619801413275447913983369542993992052704292478040714259919709788506241341052822408224136056751581807116520345951356756030815786111418567002805201613669548457904552697683847707741282532005486762129485595482730761534859409561292813895203278355315938141599398747206966075020187973438659719494615438260495109705783282552732000611434618349327148796220087873062740777035710303215640438117933718962988862854633765695682712208608901003872740152698122525495907710438598894443636141417740205363430257768305334665351546663579454493096529213619755683023126512548648562654759060999620269788980662067048202594751786412478526802694659230121586379205380185053501467685745400429086080740845744711412033279940236952455156243132063199263340054175703570085352331346711097205661818918587029986269621033220004724952844409012486983887621051307787718124668692605779736438511447773473739136771993046806695885541019337987922750132088378018881754616702353553916655151493220734338284067066335951504913762867201266438185343761674094072354964965895300508086231659446427866860231705070387753656074757650914880198053498669013666052589552606715503770271222803956926638428338324762144809811239264458409291428239333440333901348489696617963490604214615217286738425277081968888138416450262775199754311777518162793029959587646979173379656989945650279025967041154374408740903730535186356493260539677119466063867180183896434772227604535679963375052189490726624729614069233377766455410625213046553586093042626738864577644682520489054957998163829481774445799095551689917624581741235804378151780961157976324192675948024603262665228670880030732573311682508574457481417770951543727847766731018216453656760368550649442203487489190958642274028240703310447603387607031456652026212947644508057064854663361032607997003359342153373821347191285356082207125195553444714275827529577873691681791232820808476283375778690437099040011507400111241720637722311631663421025499513941396054372241769864808253755868423209590294149355459896201640549093856136818824892577818207311735100396829897611833613586110029717981066220799931416466355808064024820857508064892638705902749884690662805735164754687151478827310398645221286447220234902887584369783752921045382654720657216338362839918147577264743891157642303936492620033955955706628032428039512989884370994158344919816839723945033690939557524744992696270922171590208738358201629967792131176674336018147045962100800654269548800952431077408451569645857522231037023609521442954997924155244905169445717525012932630196393080979552345497298054311192254705098759902654931182073455602049787545779700966471322196101775740090263794809926139415604546591256083186692616090288371610098160398382318427388225060817286279192937245091968733540689362778321578559287492417265677664521602397589194131568006696080220304813005794470559974812517912858515772948112886780415297739982595541784310018468199176677400018639617876504982595947567829812304358085939131268400598293467893247342867757729919889003948546734182517884524777675630443321145939396600620034439045032615849357523759841754267482739700391261551492466574034730372278047207468283451685698405269367084393702869928393662275548205326969125128229107924265100332432513997182426148846268364314895437453435210256828991329247086303258543374028722548042412896380722106222301578321910642928474757364559062491578846608891430239931914344807511736719466573400825526417647456220596350130510859543945249108974859067166164758424887006390054654853260856160084130469693067228347764660094449202296825148594232662048676996797059825904840421620920917392547985879302147437375211616459303248602917743275664744470448389232469665184252549778712667926915058064597937230484876505385074917408397741596178393394992949452871255844099819461459476947077834765272459063209709438354420686396629774657519496967919142348716458262243484429550455135015991498477160944091602428250250497036524676702184957443965668867167343341135296421725264435502989998744563225051661860371593812611126839853402816660471391936665392018535681042098396345560005018851878354489967157010878541510257804510683459316628219756363892085811673605826421015564392488890412297646327259468046962891483687963632225586693417852608684976935497115242564279342136856261551704988888919771949857560424344589808414137416260828626142071848280434288552173532759337178419767775895512122444958984297124353815313844976971975857984208824511576871434881217670468906852321391463281765758316971653378226258147581220455438143681169663447776534756020121973376600660879826297453878719348162247698009753829162599636114623574219483307845759073139309321005283935287543313776112906844514594573235241841232544245264183436112948497333642756864838521951225176112569096786848138478867499325850121806223279417967527171788071409014347713032231930273133781125783073110939636372797764503397929377154610950283138333380565095898391919629697046883723069465834010677536113615828413362516936440172218828787195246326547924686088818621901259628412190695834029825428414515667716311008902507780366960144192473739024516285440896614042322271665969912128355156465327549406717282944687999046130371955386701310416067871630105708222538460059184285326949600887781867260427835806561871432549101243519688363856969544634132491095811254155933077909510698653251060030477238249504930848692322156342739196172443586293669505891961565035145670419403598107523739659837369449127600521157092999872513989264342129345462110176748023433954583778682741873352521837582161641346599531030514149314689462837262268753103985074576675530068831300489572175786594354153085722616296936751672652942202970526539803272297307171697621755577980906387552007359147269722501523361055571314692159236496169500718847552950216313415595819036610684325401039406241413409335657018409345576039142753361900929666890433086170909395705823857217886290753636874967162697718924146005785692045394013200549161104902903245413822596634170894268047261937726503823278486206343761568670201626603258328840848857732932336262937118889176096835121685734105891452790219416613160457651591365417858060981522966220619944200773030853255196831233748678764112618934270138447619963547421315388071619107902910477647009245070909332767753101117916012109518676216022332362451088953547565465064085418861800994369777384047517268905278110484412679316733541745198932075439444310469882431308577028245531396465637392157606810828110677630766960032447587744825140495968191916152253958705755791563522535436960748169445619690151327154455783542012275990502338966919311968442411087166781654904760728370953688654262028906415710210176487159580371665283241839614116114167933943475795650908109064800260883768880131121798615862834306693911433979660178072612609735728935330768649139124780032263846023537553201300597400087378464081663263878862410758468525066753075106458058621201814940777544472388828956863734634584766273081290818942452157740986808561947290836012110989584576544587111418369327322763925223445400039197497389070135644313210356468615616179735638744061353543853064325933810167341115000900158209600517669060751743205509641745667277823574293282358778101098673720033197526831260580624258471404601085661621856453002165174955157257327791042719129208014238873922229440361300803746752210179717594692461797074654608969493391399046499664960037081312036712726898249682921677548828735065748390757369316848892526464459804507602542851918350178129777680700723345337560534027071959786541328715045572022279076505479159405464121502084888955601797707202641384591993397017496861029285512292587329121033447800151908232948324474870359705287425870758260299786488446353597314372311436141527221471659151517417592775590510721135464464000663555997489310770588143057736489197969630181040267052662845985393529772291176836140053660164759714475193115373519317761993206164213271433086747541737124354107166892639096254426379959521749714772773278145045168763564575355892402244355368397163651211419840906285247419289295443786343069249490007273234264519106071727562399198014763302543114974008770999652817675231354339747577581034578944682248121176789729301868796130735739076204287543079435240771176175456619000085764303013957300299075621622547717029878684262905619047972873126009246470346230348473930883909165429230768954385524670145367788312095118384953366626685124667870422272323266117841069234843070573294796573042938926104348165241800465235648504500760062024625635339639433341847583431600750027147613797513490084836730207661336623399342921870077470423168760513827759470177856308832353283418772538724286628839907150362019257132623039723705592706539440449070844303744576047868652597712055800311494981346408010151260778950686265232567631062941145473938271825200312521743460351429814621701900612882780610575568713832990528070637207251258827315892332933943843614666378062254796270979249618537024356328699678513568348841752692122241528337635727709108861052752480701818330856612373554131927902768826778690601022993113219226722324810529898184141421862012230889690269184052509821629636021619144685207005087141631799563083454057728800292613350640339676711993687369212095462826840390941938406063284998830227759807728513039601328621257971319821428285382673453376112862879523009138066402327627691771431297051700483766042532360912780950314603166721624935258205401526266598019131910831978743972001220224528492739521493663368178071828251138561831541264836051098389468675577729672718174917798744186102804214632029007066935136968345305705561725111962293789691595513649414296496166397459415405517606292670623045961990800184969874736895055111638490419331850398160501411285283359374327109008420671074605329183689982108883777321154576160534342167059881809527563272560809793175354877147060813899932980683167302822999743488933271108745087880590232071130207069905448484225517606657357188129396679057384061888745068856307029572857204952885592550512343510710477685468464789481077034936083665885440661847865149367548546623918559662050080639926291604092095010916679059902196529239442505010477342982459581987883717256406663187880167668098003987410407781322392999364404809687040136479233521765998727934329652102444373292118791549356976760009545783227434584257823868825764767421491740751719107481144903647428215914203898492450049023233924964190474536747205858114319422800072988766456958596656561845205956047732870867383603650660686503581193831890325822840106509168368494465974913272498538130822819247816841360391871116724078369200675060418288880081918048893234253687289623262828036173004263441663659582193251206122955758138417365208385229762235836501158499148656602201119454409184712118196238702702110630624589379180443639598245179261416792444294926833746256570626326361095119058094790500757659140537624469685514701767280061214858440218939387522926553784966292725403228030380615028597331404512522084224288073004236338595790111325233631992584042575941545987454114680835698144880084289265008761199733995574674760667120403199792494470317577934004271353483464436336438260999603942202643460178925659581558705808380698881756869337419896358442682862712805309222018553584679473115218735487041541903844471075083055013880580596127123826229761622753922092390874503448910684280812009673037288587027285621511781150828096843464666957066176112450690856887249503524592064489258740546974262785363034497029879510539513334253026347942502181460141417768860579935761299020950397193281193062353670214505464363744528665057378480188222419793119090858835337541825336019566379638063136060013285376526423615630342246812151922314207547861039174634248523356628642525824291371607787085386632468960927790496241208087043872453569449334319090876605941785569426216328797235179560448536370024673213099721968850960846439412845834144001827186454822798630003908804387036422764608546367452234785331894222250672511323363547658799558216190008722180593635595495490501929318309730246876296273654018403334909370368938081492964638878489597501494530702643332250249627149994948728391191463992337263638331854974305370434114755907103142757805021243510020796509448256362773176601375846556244363237211089243258926115971020675772589064641430550373379533194445019546716639377943553512857689413712151166064312747960004070082941683666240378046808359597181554038695407426169331472120478254623333090356843603503895275048626486437568262454638653920561635439214715916888948490808645169378267844327434111723812326759239812960259167678076179623261716161735291577552001417696023879063162239051704105758654927251566575628648808878530170152655397681606853458766410025698935866234908482886335644525406897911625394712378443176621800467009288716624994662868002512396114871307681184243497349694677776333896336980476294859855534261351361804693032532228192210128138045240721782417164834636239725853438816061802547314393270525834300872309252088650856042287871004024292129238637251551120971517827694332150465401472705442209826147066993087226616313889235837569182230858257064812666488644925150230178561571603343050140515090452463690255221006489277874665590425472139489559759891974323058869261235944494247385034657605757476710681736924595775125028887599241968101268593236051723857540023320605968523689019153647370311048466897080127080579185875813438841460215679093284100501020551262116918438237143190591613860930396638240069925185212917621622312081060994537555015986475717405202175376970155589751139688783163382974137083518913744649933159160813123470387302774252140736978878667706150857639508288878813047737934436228251514325106001271884577555002260450872661496499292169968717510384247514917910764555778374270795697214498014074294654923098609315811564214154198043745588695503201087431301626171599704832397102719635187400611742124480140559918274546387071001267319500964893203546544273055431298119265539676458311659495981672608345693355193598011213841011795479964705049112583268565302018181973193954623684994895697763767367796355984515515521110616620018753390524730332642492554380764371586893850554318043587615477130105594115260137492695192549524781640976206979094946022248868529048714672097390586786900740219494345912490253565384890906667765649933249370197009621965820341729705369444451596098999487665053223017341925685691314355332992223035499845622825292941599810555335680927872989418278800223902181772333625153223273263587704019318033657544831173204685442632414751232732940647707579523200469505656489810285196716077848986469607203556622979451375301983205439622031769649625648427973616013216025312983625190760266688587153435987973570290227274277303253200032673845304940048926075041687108066546856453174894236279210530532805441916052230043154135774708423831865999981809361846049816434710985069268406709849578305016133878046831790609868540416352353849943804512958833826137568826445084896523164350612351416680038402149323172752092365604545430677368987529424290170832892357504503046327093023317974549737245281135144047531253919899748334388600554483240808045110090720839267259055954536458608190252248222892765554828761638044105339612895969882876410843541035459132405389296444716898836272762362738019991512476053711173903248983887238844306203956038633365228180177115259884474268904459773451226970579870019759371924721122224062454295419879331088862568548923257104295255867278884217683965249850021603588510657268845620432270614046829552490611008755386411335776489698822131350304050812673210763796173841136798030876975345589545613460342463339160328855437387499232091094453937559085415247430788367630299424345049056819818604872317178980336230638328749001102951663070837537564103266363000537989952796822258407328441806166547829771216703883482721917411296436538720790467275960838180830894725348878661091437763851864159710185464708635189472449306564920710204322990777147554823853305748442303142921792680902608246011501882022650882274339217917293866572056746616987293111268138863719563510315058723145664239419528524942539580350654361805036771621395736795076084171830321924315860258060976446746736342594163880862606961834215281068251165204857244182528701992504418293258590141392512179233899054961022873044051178642244237523397484333806298420641334396942485625137677973719909041740143148364847903068594573348812563879561277614357386463936887857818102785533163053330112714116075694095730945586779328883639356146661868893773264896052582837669109851194682539344087300223277092398109122933490328413809528062677550264720866488120543703221443346538112977929652839731096158411716899247370419413849280439631894037692071052910367512333239354670146510678775251594787455045880427041796441869144093334178900095783713900318883704651196852572959532325859402030870351952613160661367708702875303747665208462322050429592326519670676023731239758082776843059693415956994737569025334241542342370547147312670473919840962086864705098427509534185509147529352418144313688571581931415918015983659365437785260674168090258277388460300355800339230566005990721202384943850689239346404157248511730519739818944018411484593165767605007083254192016626118072524494010977696447522856492540891582677765556354129410025791593625141803767665052443920533988966344070915056528744241809771139746867963007361573556844996463890873291483137573069535700544257883270327922113203278282816904924024800226140489017121853360165597619667270011398403108829075206850849063319057303470910743225299837836760410616659143594067685063315483891836619606830621985614558652884771267817436539468014921666514918136002396170306203859476270867522099611518407221427851501033678731452240937301393117521183791222987666027960470335815984269978275029054633694482730236414693058018796157081809724134566000615095896981362931896057556940312756252752019911903187527639925465777845000495031102575406603110161892371890676807888580288835476570965907698042152703044781589246881992651265944551690203607904427283904371163903007729912958241468079593798928067263086417545324441796375503364754526032146917540574489682971420522455685723642565382091322572302937014600340845874067536953094288397448371141809210119861773487343197368166620147135259444059477864740577278708947542944512105967227246227929109903103100355960194366977880370624125129071554219813880748803009217682117050549039150004848312481818929687651933819357843431503279917978908534972912454056446959044638157463030286985648011697121903642762391703140967752274936024657177012856663374604036768393260915922461028484622633047411957673900843652437535955186596242035845858578107688575562543217954831506260700606116953627183291222655952272268176824323188034063754661581301601602877276633566305416354628920687429845128570801233253185514225235019843808769693038342541101143026284372499216631929551706428149674270481104452071278679208319870472435169065977683368993543808181342377903740008669253556425625983512210954096930677502732191940719220210529865753006957103180559238986824241825907375890301073793650416190120051642181102200431822301611809103045280757479761591992809143637719777385026260793140310074345261976743808043223321736368446714963992726358790574385852966571802624593738642043159024347455071815818675356819121861704539479980587086717926882803271674568767393780248140730517259202359280472939351933787121001205821313861390624219482582352584024299001456827531571385870303275506688134402564491227719430478995541785294326340376555174827909486714781060341199551069278937725538546217592448997613486754476984334464771457227163584452279994548217614950973395712521863127277890123927726130358867706001085317452733746264688095757154060954826529819436546878625493534894904420484287229306367967565678101881444093097028796499888079369877387137673950685411989183328347842288307433163472277739323600103306136941482171988406095922241322521310634115956578993978456575868418705684889562221975559363054621187173823756050726625723469072438825113633771291918935680053178275434060390690965670728001562865957974953883602504077342610155018375994535270430666920684448427006226555514751825139559000546158891438207041986744451787931898348044682572430308049021834682903768148905722901598857303719889528590846513357207464374355221106613052238622527260191799828225159873607133072266356094151274055301837262273890609200696692011859398886828522953952493930525145916749124977998437036944272457621840568166763015756291712185732252269144400828973908001931934027016567397900065013241494468657347521991526607558860932188779846488814469664178949368620816871019958058301601644371098909871051585341593574809423222812740653657832927697151399117835368761046267483256249934668944334839715686021585798696672273693759612390999467873032517716660855226509709286200978379834403950084633704153583835055269159263074943968428779019005000026315736959038102133316971704813653985494135432466669756666370061161670986739326060859818616158346101498203939134425254729719729002699563275221634187292731135556936376913073728985724989385803342475425144063086807717790666989647146285171328455167696214639726064803900148570464122386718863628587632884062818858245101188219297459599760915438275386008099006544377654130449353512676857141583913268071714073105338928549612808103893624632055709443949739538267887387196261434556657204297166607405183139747556752316693402990277682481470583781569961546178543082367705136216630325508300876986162123381838625918247513378565224044287476524241907804572303435174729580922380345337918227718916762082127398269478890169377458455436572752381028625386795805342497135696588661023619613483066396240838746002201916911491745048223433148103334372275244701844562354033115624247259508207207364102633909596844555500181817837058785535325590411667024744091051617433290410088304695610741106607729096584660609336325373065697527710085141381323914236497163568285441425338455817680399003899200165333482317722946436892747433734880058577887524070785965441887868959638013388483655600162452065745339007271041536500041003798767559767310315314794315882589906911979037081794615405610575643023435356157725378366800638187961571222413300402465914395562432042212138342998205883578041359455709033558388852965047892042302482440882871242852682866638924821420547733256715034159059639047379963603234110083534796276311777756141079236976414666143973225799529810476214931920135129072922796645674847644011686831262364887523339316172180736778969355697035089793483707790753377157132820243829828434488191578334038613826182059603649017941747961318837267283954432863880374405064478002855646089634986381561102241162461264277357733601458232650129688351375076091465982075922786320217994116989171940918717557907656924431832704538676656454074301049675051597210911260032350895175931252456599054342277187578104258659316741878636387738279430475471698589236512400715578498975603764379028773951868632260406729136660716041221809798483941903481323902103806145310643720024423233215953396019577387246391253918727791701355011326207792095692449579844544485557616773891057198044395814255040729083026442045996453009706953120273144363232633074044436541096708215712750733360392711209935185257744583431341894619673814931135170729170150197312920301122778796241598889111126080889029968633514125887599318909670374146134374491939130040295710375143859021867231355893417552944493906724870414214996830122963248223363222788061834221404909832106181202492578280729618071090962416179074432059370255232055118401940471494575547088238300375580306269113354018297517942113949173990778205259734746085795428859091122527281631038344003134459646237190007440670615207355803195963211304545388998884564662171318507117250750830500435262456521629177813898918652903023296963459350416553001976235731394939549010864089613525187797158083045278134084522363661396300871423520660852237845535086020240750489503021850367148893235850848009565880846845327374642458710591206021718068260603542997019474400373941014273834856567262993060296290941611377662341861935648500837534848299139196191843768313587988169925622578192079629901547680968612737589897299618605524186124088323812903600296926260871959491545101018440277349914323062600876680137842179324163287369152943133876949984499555147615928313385823233376162422003453409960077105191754537573347257663109757979105609635634131464205398161442893161495817624302817046299455513300880622273557310667943138826955878340981354874123154390791086320520801008367733125182073812131760756830015369036398240806273517848152113825079953774928168092636348224379814479705092661827302918273648751324502487860158897090014234911143939478682932233119765933532321624749996293425370943155721087424762118458385061683743709818352831430553826141135956264358944164968032066712125655581087621372182544971441779219971925401810752139075456657593087428913155141137113602207226944951469037326182261954034246288060900798480945928963569174379868015919791167325285334721769049709004906404612994769807242035318506786990482866476081485279773157786015181050696520258471097197601156039695060782686652763345874864941233494079112119188406344819064407401960260232905306542379881232718204902741750399131809047953128692110160517252905225311394438559787415266947692512795852122928473963561463942699495916810719113495795057902752557857506135618112129290116247316151234883149957460204839938814114857091239237205865958284918324691448712634614591391237980582380283339220704998570623198124774026532645808166467241865782011628007121283251624051771555561701340290951655600987690231672340750070291579405372007252500445938885778325937374294017242365526953368770953331833516423614072784862115273647988399912851396476803738017841369644183379097837479064863474211225674758644819958300653521391175300294105655793206456191813144942894664133030232540628727402037432312363749439259784311697416570281235036507386099170296031349080395621118683591437644347769723705738229158541771147766516980539623624701795613373065406377500087084060501576978284795835006402274543433030373837809670935323759095226527289403075147461524093839567542598970481843366942644765890840881846337533166474208744060671994146577270035990127673677779470474201315475275215466955548435333185923768635836798735756641662743962268352471293256800528379133680129558170902044166044371132462500446338509090938523761686957459083552571734272147630970238097563342673719891975990560544316064554636706190809274444456090947732720474277080936504647141745283668816525239891679283636789160982142777221625905591715273462857122720653686693364640636737452743761280462827685953890620588739157612566042274348891578576084409402537453462046956015274494712862490548215343980301676113272381820524246246895214474374810153818645161914327828152595097848899242664215386556598121313180081571705125976038905003234979742959196072659711857444360829846517398930984807175855847493556984033477676760322847494834676895038128422387805248216985674396447993333425331717424058678248959799018959221789153808832513006453028018600961203802868431724879017455518823719161374319239140154229073225491025057817793136696291642933562713408564926813314246974661680421957122420723300976862748087619401644714209322109521278475226863303709601742948198939508225423412640943227582555043059302050921520703426308714595956418323302724081073888081416860870791829743534451386896677829312873180505777568329977769625383951917508697122409393982287150713991731995707253031699738116246177984973357086635708671749321921667395867763956622026205476385030539308329383095862365981654229921085354088552257902506840533805415059343607573172736499488468892333265003214177621037308182418365069487305017745330789902515081497857985470221215165562759602593453958148735706108435070544605244842937285702391373402634736597467178368865655809734468034912638778459403761133697709269642020538050604516503606662130420090977329476105548204325527675968003288005247644498889750482353032694319011310713122857290925874363189200466236084846951579132601262725211869541825380180851297520379616227919320460366592611214446453858892543900410081936843522631707443641473644705903482983042721507696274181509368091842086428756372549125776965743924651951144120529060444244751347389354090982338228145502289021834127969207496309382940420051551954147130162629252275028617656555409449042505177868422102511699445192912868297095232045771186776803069381769178101068004774124419037958858956450581568247059384163848207699919999684598055574423910056872848117363755857767557294383289160488037302151763814582384731957718353339046150694412718819628313852958735534273941298797868698461423511460984909248855974897184358868689309593982034339322895099809590578825398962928154731844457172302192401565707141118231617834261732245654052949270834383333591017626597976991778240151115359878253271639345769926800797893540721755891803361999617198053312644507855486168426716583267378602524423525395880629801022948604547351089002318622613031662581396227791809318097707700872245818274345988067179391288403805545449891646808322463306899930729095058275338706685127622601183042402462583392634562788475402825818842405312450134891525874014388146308069206504095923546349043524554998544080789440786761485160243137315451186205047483181446800268027087898273383298121955663437989624539954066770600234096145139598627049122780530315631052441758934372426163182210209247878402700248144193304214786198346281423758452313997000089810268796844809497119982297741290235315731334679381836315758769079158392208548656299052317707038379278403400403915723211606554425748355143518158642476680229869406863740383038841253723891550191601097495054936801109823512825180548076481155972779456979392792891158088316443140022476152716980426513618187994348733210066508499365806482374022703445183817332419002372158144359809855976848138150259153301462359870482789111599531221459583758626279492837194691015732926111274242495072218942383887380849915402471175512540515741094260003978562876963003178574854921024147866648498999949047354383872187697035282856902455262174876169768734517251554255275314270928107101940401055134313765479892398106842533408620064936620826323096021753787853312873508011961223723365746332294556457135323643116884142320065881212204669542195289391018341917649284274592409638666617524066205772614178333868848891863614270896713570122331357663764255881352553956428780683208258194123945735626134136293140115703580212778851032061290814488861198369766540923729283638828564387548448115106251167443762428277388649565140648372495473913213718793493616567096353801310437740905307903095475888630042458783647906361659971228345016169554149612801181762079949291476236321934457924509084541799694657337666255467601395610774724562227782497922953568846683404577346936273005034246308700477109018408439670262179768863526616115656261559576801126977768753259986958317156275067598846143271371322526758781393443909448290055874515749307773676135474776803556589146189846621961721989137897238924387899992865179746250499532448233290271032573719694908333675853496946470358456361964262449134697623766308908774876849577093970356977344006571774876986894000153398472474204177738464523839428944829296755286477318323141811509148933060306470335940036663841687651145469169619662254200507588825536884839665015548451045464499005865240869997951399072790630379373175570941793835658620500534308782110531480073741517481541512719804639997370401843286921644896134817760341823560383310346156238702316875771343980406614891394811717649010408915661322084816861502865091082720154267986049526326045986974518504579135942378624739609231008436155184307219355562826924181079830331777618285874877421282492485621948032207309699036677887438383735766971937793906140565256558750692231353804887376609717038673092096981583883891287417557119771198539257195608962021169219949338956866135541587229374393996200748895616436500710242384208757695173007803948713968870385279838175932674998897468462151023864083119884646764344536276807945424243039676257979493775765815498427467246889364536224197263408749114994369530017561609943524067354782025673828933554594578959135284425697270164348145628445566809843620632058171638804374888807688520017822319415062184077471496312240217069339990685894405316019336728053657353171247299203042252940695059905080914345566315549702676712604230918877663044085070571909561641826982571068270788302769454536622535750365525923584789372336536851376207398941854865902672497111304294482404193960386265998973358747067702489188197076189543846697623416509074559842178297260271370383337895667358471440927247107427035480095227468833255304362911870666313661646783311607549195069783914489549702090410632538639146846389733365840819059283244698507232436117099678501197473239406154952558368004992834844429122113954541003510579572722069601944705960803036303093748219372085109837761854547306422263257966362372533548773304779162315237454621882124176843125049332265428321067512988116252743441417748003506334579332573617880856580502962775445101925043367360400676687784981056406768525115542291846153907661979569613610250196013236431596220564782622243078880759140377406830636182045304804373140246413180140188116176661511018825618649030041233637510937219913392759902529666481489538368730474031689587240983236322605981638598542359343131382943159947311972311843533508545957633317738553423558071756380287622322945518892970577556737090288644785646587375458169022401310172927854634427549144300150550923726500324766824308901047402289470252470861039640748361433547297394313826904441680699651865459631912816161450156728710839522611900027036148859853613005812868068712875705793059035873843627480859534614544105312552476057916614778663208973512535924660300639940468420339860607943320817393597664267247113969003513916241505050017701100235569381959497191067642865885753963084156062192978416556592942562714604974976295739959600270411182157340568547256048552978567806327253454550171118129625467329984319512398944371710465300932559321342027600238883589400419633601865133465864141714239130689460088664600367006646676535402953352320904670951329032040489136833905601328126967226541044067253985248044529310146338726684182527356855507415853810364393163156602510859052324550138221939223759873942829285661122056640716793492971760841133395409223657844138757866767537885998391191932082244842375221195932354564355318936481794409093760194507676149291796773441210686007427862034145279305958301355589045195416593550732065208190598254260985352530637465867139593402128419564427168570960702568933722820000126555301089379463655153088712532303562331224348346772813663231022132112395769850713172965451596212062789035710497403425519405308806371139871453820954706814409688835438897097148671013433102682979787126068344400160386787955922166410993848936381635809433221419132399187171424411249767994017436228507344167575150674323403038441436904483524758722788913877862358149689965626212536851572504415781080903522212423355036437987534600393164956617594882994991768008511050788617946461207969614303736250349738438934353116151056151555255749075749992235344926589631244482165773573501596884783858067977470767222268264666617608167170351593740792407669718795801148923626680870440014007530884450719385518401113983344252190606961790702823951337349962011847444795533164635169657712559713016185939626935315851020587204597195622730611380910368297912544420697479369629840535244903805620736038123267796265119400566412627505135941425809611399090559533304127708769678679668849379789442154218880956063538820552614989736892455951672511686500373388812173171983303479988843656849914250894636000582245424180788474285548809002669447982845303924185369246824381458219481330035596922408232416132949806276635668476385121859252505507582035642726987851078886307059144870007753548359603070295865396507836591109496556266075964674530996929906608954275210579886298717603676010496420501904295455034351646165399761430877047387403373784410528721890569995465402285477270005178761463983509753850373110080152802741166549441269349014742069618731309333692417076252872955770514358957680187229669743597474818757406529659635712622150086795882745861544766787226632339875167891291296141643515790608282396475764018429541239757893771292377109652600344508250721483891519222794302076938577213111920291234441354033286830884354686122436706663543520310976256825240337222375929849287693106352171976327799370862354159042523349827719361232548613117334759283530337457318616369228889272966591937768533937393764415702841795984707228616304579202851546547910067702735758032063211255968446101611760616369298166285544150207268971372063958453030493249024889098333673387065486793751089319998812977364443714405962180868137750678628681935506791663509366902501727780961863928676757042711316843280946993529180749750610772656127764021309557290667220208461820019239697814720178652784974860589995982591934518827291333835623298958154882735039415286938570133253244421404973947080132487128795170733147314984733365261584688406373746169423478483839097063692480848208553025055733695858944076766413158697589454729080988409264947370605743474942454544584261256296826666162209340844460573268805669482372264794379352797738525143026167561620638384769325519793141997277344880964042423476944637932614471253867023490965306921099045620878399253022510361783980093221256264945187040173972726134185363598099692979524451073784436219119985624273614803445012402807885854405972773137770956555730663197793229185429651288076375164831828224036432841608212670732437428069773337771014695810491978652212624236429094959968776818502159707018948826928859315693703149177997345282380254548427077405777401355243348860100106868161548048222466471334996326799521837250415895066922501826698364174708396641509820603605204620181384292465757569424284112011966614273081433259628960632265365229109872242050048351673574125746188533812764041190556419308805137368469876490004738420639666404540896103709877761720949772289518874942748909856506879907359990685977359520779017985040733206399717784473568448991090459585307393479595891677525575946561080336456893115449409493988192237759355222694325619630277944625108255872582541158322513524443947772730718445285903031891893295091070821382788565603706564888295626357957057335504482981083502732820810071902586152530704609782627959659421811604949755327345294247243889258720324834196204332480489259933399977431126947539238940057155989976420174769317753977957472121448706694807581625989680445900962153894935442310793806516635302370188582847795726829494992916436541067757761699752048194170255815364711485620300614509284150058833900903325738337313001248949818297631580244160193795925995631129660010860160271725855767186088537381330842735543841792995145142501759787506926951018935389605556490961094879184533049560552772705285891790814246701690551659584924086170201297689394863636905062953284943161918194700274771340569306497413997482416694147284459650577553823683458351708762271248129706733647845317908680339819694496259947930218227029968975382278704714299415914062622923420151048249879419884071945076921352411498663885977395398626343801477888897524882793153555340023335638992536364489699687106426631294806949258881032894319334474142754078221725364935657908263743481579017423915077556139048485948018749926481538846909845776038874326326245861570345060412514737817335435707312468184487173611337631427786425077141530747754932122081137339467126724584768968574449195349151386451344419034724486523465844806505950197340521412866455850405424583259894432682945193055768113504847650806770779853239879265992864915897719059002584806373164140060397015411559776414586905196100531656441297760840674899983034091733064510276066297413375620667365079327133135464816665216660243020457211347240090480209676114708290209881278576232838208703238082314415683933396230872094324230259505581410180053280544544491252056672488997896758464131032301776328027304276674621293504941418265368449494597634118243689337753185323474905082233052904475735994219800548836500285520785839140928025228577113643704397221869575339680538864780828558920587433640604419394324318799800798551774027022844525121556114938406750896186998073629198117393220708226240308177367764451362178177500196015894077871697307659439918002413968907329569632254452784193818104228064458691171051206615902743884646565488497636454419948270702146708427428722309015560198344779286790781603886885311693299458422445133439936158446371001763735595169872848717275671703967281772490620238392690930091467173621644858737811340808288927669903657521676851980604601641582972274048018925531113514025866611230443356737058995039437734109865766152405574152098990153268282093904583995249804834410820774713810544672637716721019317559021733958310711134055061946498601749402353441935855954349164716208546458582085886744257158959286394242973432531111140461803044601998983869342460929906899034190084339930556671846512663827136481574274760597797054917880273434265946264650259554548510991371510355224089091713280324489926951119505716783913724730743221867000769318648501218892966452424738562900645064768240733679883518929109214789435262737598241120547038539737137103027083162963263889716072644063506228424774684752668697175939287957531159297348974310582462685793960602713858638596547044546496480938083161743270296780725297173843238714475431641419678524306781739949473542848223146713436220493529721453442209398037003452437786521811845071478270614792559489859911098406120349834403904006312229184887379556289270880999907542819693660818715926379672937909365875942489059834153076029625937259275261616174771330858316353505204495969504763749049544003626331173562686724523546510168741853342955143114065872681543458604233071017550666723705986806129260129415518780128183365222009366776958034608217330251737078788495317144639882818581336206550983031857149175281694057167710911812582046160734163454631877319136559262306631065672489178223889045149469098043687809973669006378631882011806156089876899905986892891312438219325575128212677689133116911711095846326619147926103331739218194711029124938755345540217598507653542897163766914402945520064682725486921223432955269658183076257546444929038036655257655559360674993017674992354339972945753665016631931223861311835707284433745047441133177786110348851846758967624174312329998689632198410997335322539639406643602387650767365443928294402754290172880585321459102046724562272342441158753693070609080486838226445274340725635740312943267112987565658578388146922424949620975112855151712574550945275687281938608526456492939342217947535532224319464119478001831678057400045350512287167064220062577947444259432713128181774967894256211857153570740952475146565978455076678786775356510750561709886073371125212088086974586662632226095969520078653846143841610795942957146986597493495938740028153666939283401253417779521433362498779607497705138927242075657855752283479265766196112818140958834911843745773169253518548947468633999177005386738961003612996920702911408299024836527490099062705628415007409648966508693883240299545767430859340757953371894011913755611931205599088810309174935349685861049343352845951821406535598534088656496472653916340890789466108559500833395687069982551952279119835724177809763330655714546300777477283354361988598113260377991955704760845201532699627623543000550684075269506699817607733977226437854106467076527644201238600608247964729681713113543797369451628190186803382083520360980621957111057523447632937234071057033715147344230125060553451799664435310310465149134284825128197048888654880570392436790783778500767405224080334478549285890822551646879859986846223440083465875151251497029317498621962213824307357137230095813632535015838429421714591322016319193464833698367973705654579454745027182439986406805999596323044615572182128393298839504108769428517859452074766258760106590157580210463057669783358177030660376069019650027490659739891750565776200085160029020488979853838942941782401497098616281892119793416498216268448719674896893053341084404801216939706860090173592015416376196601769284029536544590534440734082585814043407922052484692066549864446408155486789299752229127567747274107131627454752705796164111115620623206787744958292000152887985933620828733106409261458807853493067897536547569705816542360832980534717868867209197172805645005708464905590267768092950968574793547962007459136347076982941395215714116763491612521963113398245207175514786296452793567651043076698834047893188692063355361864578329200918165306602053921848230186554370805544702671233935219918338506055278123043895860742436650584098170836989862643111833754103934703893389632638180222054997546871244552260944509683023888404156168919375204574008851250934134062648175945017063165229630816518695078373849712940601843806425408845575325839630209246027942051376717654583568391534845758343923749718309504771222383304292704384760147443214661734712522888409782982798080347868592691245619701809227835055488660042820125660343073580799702655747836304598716631432199452867805590517156153453145667905920194651308041661439839488528016298651961973519039526017684739557901591194088468792096303099045766537343064406352708554694298842239052005628217264530414846265888699382491809292767681347814958260997685045454310739564903387310690869685524224842752220114283662243424458483582340582678194386530255418521986135480667977626789206083674057822807814014233383101071444720343212004985132026467262197124045857178677589759171120712133772646098853612413757812136421640174229729226018737880167110904789088702826167179002578322547601531790952346795904149214228336204235530397582091159530173711631014065020311964854607903339569726555432024358810231829851955861866758031239409709210313962243473940071166725138631079879254707466239088863386341887587573298029185362602838627878257132069710926893379843083370191251642863123711230227853486363668567495593637430845592200100816031970557447280021507793498851805223694507752184553781662486976623134048310270127814873878564843346488904066305995076232813372549280239311121256422962228702554384944520658056977138049518573073655007062788952376114398739229832537930507286774779851520086469671609332655469421259038088268498968085746211481492926353601366333091859302361915285332182607589846021501560247356021391778766935465891664973219260652042616239538471968379481744304979471481009443529438371389714988772372354276964987667159512193401545036923572679673429951237118701655233834518295377747698628239390358892582675074489346161432152715168094925069175012014019895935022211435965686989263747935924332472294287467246054046897111724976496536403420822587502683288525011465423802179155589751589040408433557395528144758245882983194216912003243326942691282209948089938929917716603457152781016463451228870809489863890347260925973484227285200759113695711412495426792318632364834364849239690970134218153100609599645431039917697205342661379201014257663471047111852230094399159708823714882049417955568014450935707877413201643362254265236472649656131037712872469005873045027358348285366812675564721947952379203698480292056069039658289865616697749488020490886062111898821936636569107847759563622945788985389272246724107468465893176685400365330920807747439755249786160725302997190435944165896484515615562486206222282179553279804318388930997282989593560941799500897590939116339723314225936568951938928932503158575914136853806001888184525324122519022678790298438326354566168266174290237351586734303653393792249148409261215428968592609319563572494887040223493630532383153974567848574837739405858416079778228281471803019397162541004706358968358864478528145122331737244027049463843385890078257308431429053900936976725208869348068484902503012635174764392148449102575509828201952366575121090320003363873275031186935638309308994413317420990008641376049490668086244370053130926965894659001099000421995038003227433921780934417251486052798549913047505554517897296768846899566598959473846172207883876546960099385840360970650354722852930522160879711743780904075864824528767484126662649425525070111572393855214503213032234839845462781523248861413368064957756814051505589410293251337404013313279820608805903942522856965713721718456591834767074991063592564571435003192829133533188814121312223531334669780567251725626378687652802906087584521884963470059431672111937765234985716836656166356985283820695075698757379337555136043880434141723738363560774375982975653264119284595078789832423249020233798845146821256356274444182083036531046206023224938734052814643452201406192818683672690138194729118108792026223473355421152323573156299680627638859010949991188213495045729816473368191421031890654936566432118542708353741550732949505241113445612450394884367970969370073704303651484501429508653126282612383821386609737914869764287959512970846573066207565676183628164549392056058408950099415605870556053320520073535784367355950210866882632699676176530581748890670741141215668350519684617160537777344286480161248636081781812206526873076171726820294107408782188461054760234214703045099682363780896320905090472345875439181774484046711900196647970675568595931201314109389031009205491222816227524981789124208189704165735778881805573173632196777109680880728562814689871205475822362101247060547917904058996774105820508250791379139930235382048831985992091847791894853893917358791417284466352346169014929690971253853424771291020514118415781017206376936953655875265629218217755874485079947792489967367775704594441735677589303288988905982702019828157251644331907229943821473808760737358988717319333542391474977239440577537308832595811532545560952226059028850719004760845618960614935499840695216456162097635862917647805620422645946695113478539382717503653794737795685787684319581361667274968288673646064817181347157449751646979520110252509762093901653525715735375854722706322303797884550073202597375133838015631956281103480209506061218621394395127549964515796260141194402559772529204261749722669698423016312340509608983368880750518353759206253292282694425220454548927649464630781415515974800261115698569989539421026178548074074702267714778810442596513550982151527639871989561341103512553245015766360093171284622522453239122910031907521280400753329621989396482458314812550659138679736432335846974203586309630700136420599572139809649579385915859902752412424561122302331441807431120447508773809719008231201563955624285467541800287599183900957570288685673249313655740194026644262762246166324753488424757732905820136156932149323611633289996668199741547875737079586602349547618238848308276789211779222225396785303915290744817929691389735145347957277240508725255135341299079051150240931944959325136656850183504915808076162706338910012617210698321154537717755136287401510142674054088071511687772076987970033311830594726882638976499013557077532024450178801309541454687869625745683876765188636657940088064061596298114032181473072782860100421432937346693791760584634282908813297092281261520437245248071738706517115154879167860806046308095049414106145819965112241200063941246940883037950519957139573410231245866488922789353923310649750184050988162712061024578423630489024315108019328066084585212441748802878948929972870366748591293957995045011303567978821562061726188585421520164111490241746947306037207157988929275002792369416354143424186775876823345090522683585269193244261805150889165820833775066941464839184652512242072767753544123755514015186669910990141021945481555769166397155690521220226015041513832052669626464428460890269562881434111569915042481329231373946269896684700632271746550235550926115382572839634644428519810572880522737522544305373479245404546322945811596682288637752522841322368287700263587947953885087884584326212428835997667249015645716029067362246754341593293573906476535941023828701918903719906073213388565724353771771601246180177340657617757141385054160079579302540757092458206238340040718952896618708328220122058209982838029797703808804044774920690936821958792331604596879234671654580583266279039519652915455142045453418330308011558073915491980550085058994055152552882542797623375564460017999012167518240070632786990359637975094030199315963770726452289925099048230063574756092088888744645417649774226622986964485166873396541298467049784992241628597165010453505414372088493894598584375863737085345009953993241855659252088060256078020966472033952981218610283906361334735074148059995992476069066356579519893178756135274854381896471107224418993331684753170424769207809318390322366104343835377075991444597812632366226680080505152230650283796667340079924270957059655014891022600128967865854728768908170877325163609455396164718889930152701368997395582856135446936273700907448189031348286321580027107314384424483243040710878501589166082718737547807596684709471292515501419030336108359001937479954730617227246918399774415487312827428320221826124149789894576270689676347323471946755443373788358682931485396382482715265169925599341066996854184679526914049909154445866890016728192760286654324380936059294300992463474089006326928225578066469320687962599586708195698035109609204105361001297604647787846216582837669309443019198397856810162381761232091448249260850286843099642662778864877556849220440071540851654793834934929659204072237965493186663388880313721223242945139555090972462830626940418619640173572197560281581825101137363494127445559296635845330406765920998080105821892194207196974507847100849126397297276964882720476176964614681409895061352668767187370821752503923401619527024729723685123712154710885901769239805598883602136822017694208461267471921147228027593897293193410707679636796637575967246607424263205446213481512246573334512329700401704375938932048439573982881784395703866325154680421344961164182877940786635461801098124224982297984623754584042812876226895259764660679310119382008720927308559379895250959568514485547303677637624710716950057574862185171048207372508646308226321764143215193119695889433684585615476933157095138484683271166087513050338857048608199282409581785512468930881852799013360075204845465192095625625240627874781808307167442247006792486847574003414183466471954039473113347709509016997039866542529400594618371657608789302623131509031641856656037708178448905781298304157787664722593257139652732275085714989247995036692503676564100773037373760322871407092994240438558494330958796687969775918826007537035530507119638900530884583209242459351031855663226301146694869002422498687613661260817841596230197873845790262070169230798070479913922263259629991917719358117885543192836105478543793461662855833671942301933843031720922154836570413269121194079187860700703908504019936862169153380781029863411957162414336271762186119470314353411565006789957027623919779577843976815982882065678396793757415031102595891372996773108891151676562906889103161249392592200289585622125839822846448173963088024795446606768345490491563538523994024592036930122897655345410037328536519500346823658472768416953977654620311652673071930763713211049641351770428654585268699446193742782643020063666327789879227062576645648182235826974625005434422208029649508375759739921948937222604076078472509130658729260042006016136940552080209648046397298902806603190059201364420387152913555642780996454605279663301050585624517302639389975478837398390867376724091788321241597516912292945121044047582171468081847621483938858522729906600138604990793593368992213584707905516746027653780369770218930881668434648089666194173265559187437211943893963831754404815933527878615351756909835518421846559212799795931726527762590983866509564489710500794278363422133853784275139753305979873961365450348325732178510736993517125918714277458401026798552481794585606328154559703794839877112682439791419855443510896680156692308701697568408845741047681679362796350049549003627207420211667900412296281238385133548775090354325132161620504088278646513260074350248899022916548629922180956535597163105148287695680555455715442038271667584802039363219068186720567310897741749479599121281282459940682327080926318580447431082760265903570990416139891876473872984671044543611062829983357497893699547640917946787482681912758431026219682487150519756385504699471014102168713858478257201502647826327986833641131927491988301859691286682426608128505077142898920272223599425643267928403758136863332513523748047300674570657947579551110896592141184992892709256630328593833871868448466907074939920114023549484879896040035211964757169528497807720692066767236643625590556013821500353017725008995115389869630899236536713743434545837046558625974471707671174983990939256761097704357935751946326844499219243164597369491894125234846593523821386244715219109680347341701419235888425852570617806802245626509354301340725813590502351163102195499122264239161292485256084630622994655422228174267702933179688881055436333744343854435098164919289247606955779022444056542690371874342799878036246688698137140045602546163334732010769228545353278434984337089903557954560766806863141446720558457492142823306150691931218357526415405324192625148993475357540318813133082021577251110886799717978485047131300704119463502762885285593472135694761451478887265603609788201578234869922671091912609832590974001995617650734788997870356310676621088231491474813499554614917409613184299995358244210146725070924095229206380866495561815506073668606064859274004362181815167574944446797062020022217767186744380706971191057930102607782606390183662031111422290488466520633111551866121851795632931247551016828407498817053566859136999510078421332969529334475374089629214208347701363346117984321052617469607307728535776621449034267311750127962616144473992974296397395727234760694172483144609555649990720604834184534047519557678523046858616437147058447348543620463295482072264677126010105194081903904547214430443226115034163227673136551741486202532344683862564901705503784720985888518957296070812899379166826255851610041023487046140808029649560533622258364454598963503141591479019721915355737749388100716921341197581325085054565222502692279808073599311514658983776889127536467766905011396108962539341549919959449275363827824386665968221197484464030630776798491938615138724307487618878364412949642530503735843347389224917106863237146341013257423660356555810245761207647984130912987963657440157778522629988400555551042941794448280379239297221357076463228635879462377510936085664900044252750102967309798248010847586051024348438949417092269761107095950901098758229747493764411672207469280028983061044406938699002517293216912590513003497251240691025331651671007517051692054545390331497855554331690089196719548714781778338017491588094668806488277350972659118578022968924757782475830550661798811880869970221407814716110086356956070386187313032184479216402858033230369039730017146294975807344676325952325012683696682047532294434019335203147635357389268100657545852665644507270037791979321428221683955397735588561735803507200891699033563126470737331175103971241528495115262391926232009722407220383544610257126080133617253255501939979478811264812927543453613785931305015851650329940887467352363292870321953258110167643195057018357972140753904688321128323245462162833087336540937264021029935670813759372119548695941066490047408572073614889779980784842247265339234047770248139763752819853435250827570799024600316643954926512247808130501696796393646376087759611818834475150644108530014181895963889129226812058001129213288991781823228296820888846723466678927538106964625983112754842792759778055238797095458400200482785368446393454666475796026615673279025538420896242079147002097348304832045372872251299177443681702653943624916884244431505020829131114959626133876583093053341867367101606002484634281399742246135159552963376384280882422936739301903494126433093321698234920945822485236292538024833718046333394400972636279564847936737901768129588852080166136823983489890374350133117428938675153430701441900693489289353451461124241958379256402231426961595258437845513174134760391389047260264076200849705316504823342260942083440165577266429687693739274268798198622674414873537900040080503370483089380665169066247662854695234744152253714851435742509690890049972299449917332730781952790098809659109296889170727431858821705048280050217402693198856237885309098503707685522098495016177624269445215243110798511338374560513104139585821546167863565027433473004896665687964040343473509177062820383239076018664385509228192106544702308578965233770887874005916567497089635616837102263480499252547790009230792916008519398718614848800083424927531626059743719799282170150434132620385105225197330934340077118474306368282890430716750103206574028676039088513119016266790741114022731398466576759537398939925828236365135578653736728404456400768358795844360741265990083340740731319740541827387073105460201293608194930474182840667282246779897253240403468889418553968213550664194535684407493470897183764356727895981650483910418804422756749627560330504905046769604504961415884909191321421684637030734655880011040241086219561905004012824764962217345169840251963278048151214016843106622064501901804487525912769721816692051203783223577852323385797712086314488535050150862582540218840641026025137490543789829978617088022023194971414059948624980490394425627145695557939652448587901539458242892012035066140654062934686655238163776527134110408205738759255084606934230271451334844345046594205163363558167394592443761797544608691576419376677820831031755948752290844386419216924393831481552301574527129254382118309878756254237717317096161296706953398408032185556978586888762362782104272701853926223447887256451676755181737141844083380404053380955714123537561755630237791420888317322708918851292205657476005986608632675326273054996587035574056811196759913541715771450060079561670313537962486864178668235778829322244874213307578817053652890422159553704374350217176737658376102918987932973053755940654910771267605747454089307834967725228655514752221501208299627059482014579866010544848370192263065578463262600431298795554672186783830778729293005658599289982525024389130353569491829384921119483748389397879763034753439758440469068306679368296389779859376969695870737986953589496489018642343866115556638547325547470109897832013914775543800084582664275646845311595231620863028487412732315293839534223500586477653702463300828244581951438925915679134165231963966086235710653433410752035366338206148580326212426174808531848803168799052315536550076868645144928057229882414156173128857219877122544173765823077903952184028804995823994576651552327998561115478565761033291840176761105722221931891705023625390036753099257127948463365090059827900514755753763150388584197204730684919893455613033361352775823976313654714200846401348054640469534036968186342105057907600505315763566978881359916716051091150303322848977250871223938262984836700529322636856190628410650544187833947310834256691488074215303420009546015372569130607923958185445194016007632238229393329687957852054924739590638058556612523284187145002890498331710255807433100599049897998290424144495748358903465143481134747142517424503587300126066522466207234740338154551267490329973333506759770333384422136264173953318472604043172377999564443822199552081683076207502956745389452432542660030622258005977064822484686864268539392675946067594904605399316413919796893905302830705811155280743473192412494648242759657507492680716974764753445597574837388164134285090268842928810448337155188220238160305557183827713233613394341745460639696636277233726588666163415717702802068484287614246528813902022875328782908446252744126262725121724352117319215120517724095245529972435153451226378655504981878499799335292804063513394201218125397655535529770148650880404090927332738136105566455833037246817342285098876071713544955492232448950213846353930412350558259645158859002017655431379028645177422848044254665402590789293811488286326520132412022858251611437136684972620053025745824468361386522475972459790179646597391970631807447356025656610461434231852927428654250142129989339980099933233285589809386810353134997630100705901038105688600412495994897903816077662131013863921117851343007596244383406194337071700657812012038818121652787075904360830256312117455566222630047460855696640014691678664765870520400755393011899724816064481333490759135526372728599518635306525790198024954596510162222614820284033546672846148924682250325652949336316577847145200123278046951607137688700275870817666382131794821359204861243353729841974771831139222322674396387051603701364323918405647108270224647561114089085691966722014048971263621149928486311830272506037435957611437558655772146846542886436770199480777847252369723386819716140562429326416956270725765027319831313075534555151137887191992293968580718431490933710809151681301155757185281762066675832958835145995465242643806752998229772580340901926592205806624203166291380401036433952873849143594970546898587996343696696255918665958526762303918481539020379433492876637580080496862934745607378203408832969086175223216374992971483901316920827337395884959857019504512346596680931171309912294397082559405220511942978302806606139110349085149709923529651817245806821594626459667180972983861799399400876791509795256179618371688506625090328102710373040100263704792027690424998898460331390333899360582526901687932636565902472545472481914255210420748967196404606671754057446403757906714329074310610348169347445556069651097442279817026991595080407506284690157900433855021560699411179395245348509182459624307679574312965972315578426164600407628314406112083114392474277252070811749816394773074631531451274376574347998043855093976435468048253775267180754047786091815013715687348172530495407451558504806141757469148795253440398746507522505932517205812944350899604923941093768292583761094325608919762331825854323049285834084535139513090675551590630694615402024097804508677599191953296159536904319574888875871564714994515887223978496298165779324710252192962548055041929580869644439155622083857367272650721102314136209365509988738061652642690432064898815070454782323579498278879319067083813764021651536341872315344319239494465164725999915540347517715119598218081197654921152161127845405178996983644322734414856116826414855718464301526029043723093944499794632059871170113634104216473004747243626857161878899992599261722129111864387689163013098450628521192377794858551509972798613707015138559650506791797609653816010304382575353076809680290944162048816993199565014643661528414020519303595443700507377895945950204081539589561145749683785583909783160593520010175226969211802844993625578421415889177450616499941173013110104246199407040214154066691967517259459511404112786917904401789761146576047583454155110790544895530055123321627351859822030109997792026989700331774184616707935863616709396961230723051775347396148899268201345736505943678089813850187656884489642146702994475166067382682506552351789252749450291336403310665114186208574455820279212443886879349059783338579069080359205072715114207093844138380814899869519007347119789989617070848565707960279927061157011387957269263963595116843760310642770427111343095584638314080642669566191694837731588830476379216050694306331242465163069356388487057341469012270525738402035787823568893272610333648173456319728061197098715879182850979287947546952717273052415358002961028054277073285711900288601065972300768676344030418671468099656073927084236328352602813175130117367551828924373344152547881071008143385460681974228276172812661404758643920469279183562923330660383525917633106004583035530931909706545366049540986181752326867980627730971421070790746953556476473092051050868975758144665218514448502268996343117025246111390597923326223852198814361707165145115435621332753248689299345957252816798924707000524861790758355938868994800651699178345232319913781975019967761770340848923068916678083252540135030543798970086136910228093748965334545867713910776228900414444173239597115315420243116784483442733976988121660740495092656403278809199819558171397504604584625268508293165467255047361039427702424786693068938694602465749627958916608267707786553204656876645708065443506592567806856224457192068546557018570062854347169171599639884416842473230764670409401636638989204839815970905485504901453203426296677726872032192968271549126583734472267154510798692102979389061786586823438090558913247349892124117851182068415513281382125122209265957902953067412605781555120145973819098245813997471261383900094192128134498950428942002839182254043039649007579250046982869146054444505958208455975872546095228514762104317353396323343846800957348396043282592183187937544532378093147010952155009199158598136275854224415752253350322657416183723175978769085831761337282353127675843115589101223334990299681212206978616910974718238947829348265300421811929792352502148726126915173818352876856187488117474493399823636066460855529305741837867850256557039466980101285069351943639733726527105692551606016270333314704213874268755054085350970198527071948189987454510426234428945574434120444471165128789056755374347340461880401139209232688920630049264898379645763731116181220139679000193915322544975092489628321641333551698558760337491086537476533602049014944916699186255259439560974644993949175937928930570376955726971756402530286988234064300719141685063117800314671117644978809115053732314917826272608532808926706089636619122499801033198520235804629029508188110486787851505730431123851077143243776409559465626322999681623963463762157844249003826981987307550895837500833593215867112288874842673153585017165151023072325920025334218681205079427939005694373122253142850365079652453542100916041688799397377744250825424462704832939972895392439746142370101954444583261673634375248404177625999290789768154297878867808619502782325965386270455515837533899818982393856881842983431218193145197740850077643139334990036469139766762472939655851131027753412840657119200018326707766406195341239555458274682281646488044262238511778716863429830320006004419219662339742558477659784841706531176430559188189398562626406032635080664622297634871653374103320796538891829563034835269552338211680888954453146101086658733391928360179361033784446280192092727225369972453035708603946564294608908894697377694043254734848501324975769948681440239682680619292157359952983257726342465562218840054157141502848134433790599619054039454334729986144855806407529999176028876783430884406327926913905423838299699165175047175522325605973342309807749741884560344110456164554711504625760718925684566143592102165148017185982663236530332866228192763756186790005133097675198840674839896729403995568851068066689151088479322848775682608047556471868492392342134870377099710401602845090389368661049687852843581911725837659434239131606159977369067830917816447932223750443074292687280252761375923182792637704549743552514101666576457148958085655096525528204427232665077134339644852910950515826228203313180280381322903246732067330048912073391855144739818118068563744963407853759928340906439689886559888255904222429916521972954208437673721045439298358419382390552043680716909657225282075877759108203877169017202333255831558514371466973453752391486125307874084232824259632067207046456474197773538250107991549646791941912204130518059920899225632192998704671824317477780707133126883956988024707649731480146025866231595195649272617873212101863141308915791227534212285118789307623447361410483490056794237047219174636010243881505337649759981525879330051377793423569392773233397469849585668216677226386907800031020963539218544338813921631090608306676868726329032711509063121306942269464192706094010866211725244574033554828261341391663586794232898855115565019320033291246657543890870651756757355978233840047263350601811099178953172111925707166525605831997469370474365837987544905276236149343597766818149564012927116206884805916655547773195453721303245648094065019404306732625451916684702314191163969480678342869536186719995158594785626860183281332264564520094119931973830902675538320780408698452969908571654281727270426259731556060467342775076857040553177348565323653337434775181024702049236741345849367238384900831535434392243534304515853291799287827670445776317414187317813867350615234213156238626507411212971398192055436392714392401433925409412805561242199291400279302726665728473851125257034777662034016015955792053795671118973665318165448236918910651887959437873449309197572216543443520035460497010363381337526823014963075929607695278388104624871678757222350817050404578157701949106662720157012058725387720911234142047498177490750629698584632513183015166722775589417886567520209732421385294102200407358068469402546254257042435005635052655711341632579844962657193889617968656299702783798657596642556837044915559940093095855503396072888864991394472202620488283830456364218765269005141660689706801153487912124220404927998052422418496851112507304657292889027635402860983090946364026100024879105028748086844494773635318237690963971393354344662627999076028165477391704809963078507210608209909256287936874527110612533499261162012914586249966279198965789291475188456152573738740403694721864861700814056039504894896053404221110381142089052758586329044187390106340790024627609908958519583488437482328814065764623522258814205396559867580765156126529060274277145413454044682911504927795230227966521106992496326393751328109805386345508910872207621128359884963565256592899184916970719620781251751175781799310420759289233283076997054700670641363334492020251084062468955359817669502650458989154962377875496163888194130051077495643543943024419003267423085533350036077837851597362564824847300548643881086768996575600305253570538118291845654738233899461628546545958321271191955153189207078758849147918019618480328294522974632800840022972015974030432779068011716026942910113732526084521804023357741285240212894757449473793223922618057729792354028004917725684337741119796804616878936512216895848658088937677309089631350197289016104226534152456875208895264217409355254830588376521659753606322250401285000839852135983793162498470638977062485113422837486293291196837457928597871663383136718773400045171071795761697830546137782582411168380241101851899540770617366699957949587816206962900176275737983327291512303519674449627818169465521489552020875546100643475074710209687969051483081484888995292086753706453661706251057138489412874995319034947191530625609282296973277471695147360899144900305811096578362549935722813434439198786971570824513920566676479296752517342573022622920020713333314355107483422249102887890514672101024392929191551780439324828934103213031281691316310261957367428654158630114730097812239573949739777001252007147775960772258681341531445982217203462827509292710043082297820689588189898886697296021905591239844179943742337092280180571071479947172812001527150430516809217579342718329697761704113557617119415164493251440910511728691505293307448982833573242013503375144451822717202746996992458511511953448688979831049698124637678471783364745947522141273151469743936874313307724513858683088510074693998320107420872853556752174370730855940609769364266709632328080912682974343084716814200442152976963648325619571697665214675892892047180678516276775731033967818282462756340722635431670838449550539181509952936279732715303564275235617381738940134672961871789485397618905444879812325994286451892369742625442255011569778487736340963016627283518950730592044406005977948272389109784200165866722616890403996744816013320036692003017584146975413568641719868046550838557932216159554898362723131153401041243795824140411803815412774299135743619499039817617379809057584208106942520021241814942460278956758362740986449257922366001598721005645115849305872817278337897349472874404645567180001399405059222594524866787635538987200063964395441483230460793564011326844704295112994018932870171717423914466775761641795052528037429059105545058017558871889511003257299670382239541347788428785107509647301640763633364641500079844286778132480222880456961656905862620493806333119025406811680356884753197622111830748169281591525573754491429692785762804025603176717845265662244348500470440312008610076864106006150864623747448343255994483273930412925912991520796752485304381884500597948598455694357527413431247626411365861272851883440203673446651129623112769461809442224657616922666515907717372735663084189940103743163105854465614135418648488408358021479216505207226673735709293759464632026455428068364209437388762207913537231405513376999690566387023962850845610624776057355347428018284906983938162434164378353621470417709147171907179633649911040900659437900188582018969513823246060321647963052871801142121119870142302026882515264259040319409678119808272938335727419248893411746568733849493879394210306444798393245311279966384100605463585766451076444855337732030441150383282293094252611360026485829654379861424584220371898081845459976071214689727635283696779769781333198879052207699940067086421591716384076713024295784422060084543222446235214552777198904957512002341073113519968522100437042786626943208016497294160012279101293250727155756923691583512968718972930883407408071921222075865822297460264656726469630426339509536750860926887308150786981071016049117050714627923174575431285151281891051229250687846604037690666122750696644152946759305662750615761070630276471473656094016593817109747756078969096759976339878391521806114857175046912693981859485659447280351060022700863294065719323500619851427406826245523810566836740250874355149696848017781658718292644979361962520012419079510930433575801028292848133206376493168648292733742157182145487816082372516159442202808390246161652205464158105043244080046269173634755176137069366773244797302381321062243107616994678347666283598848810899612531138996506440047420195612295097751224661973682246153451104942703355107056372214253661697245565534696785774983438965348274520621149887654338078623050626245803536864868914676504978489083195663187166976382155660614962149836936020428752626448542583713822845171318550944902915707291545993153214719934381798799892906739935450718848629805604653932642728418488839637801977278859478454695618195602100554857719627625752393233433440695175462044651126220903520360681840202869915640946237821061002477914398348487325283772730776731668729580597016984183440271120886486763599724273499839402164217199554870375517097537042350084191776924137890669358525759667510051555718228353523439989029570232303448967394995189558514297632115235250682437572043089460839893657594658420035351718715521058158829064944902064817220305045178880265862386477690210779687585509643267680389707201796179239560882057346944372509514240014141941127717388412766231771781777628708047659227167711955913694043924723520912622889479768028998383607760384389379387473471040627538922043760731628093302815586336251619901065518210634600147612967548059547160922392131548792534836878861502430790799202983406002006038666721676789783430354058892257638483241195126133777111187045791332696039584577194892477415437906192010983670029368948010238515797282372082771696737898195762726299371711670367524754479467904858211059570525900864374077383217992842248420752612168846441165507904622149544125475637283428272349271327373339760125645019995403024208003304829616631451543693899737459978621915335743389587250092308979329659240885123217352385119354585159899593505521718788665712655229557994901836916580706268902512941747395638812084120729160081656494390820980231910321953897299194730883228676751924688253982617083245861431381464362126142851211931430427937309921130506347248843429508688022269421234310826831454613101789941656481832112012881203146677850388852826331275407856649352452144495571051063439995361835484765303296342558043312943262268340154858789956448703028108712009361933787358190500206168660896932039439065795825019554532494073689498287813293724685813793896427732834208663563633908230691414849101691743256563018525017662143223196004942655562145718119578295907983204669747054299264100852199258425445554923627635092970116517941413635785420060605762951746246108179606186466751798136726314544199525580027384103824939525693615596713843899024442864174213668471075237702364835406049561033460082054029472771289665303325522979242362529278507162634607130037144247389644716087850892792486078678013175424698117007059154969461152227297809506456408632924902921242810757815582789457697619120044469640110389761480488315483890375775520252961478233770205820558985822790194705377819667673397376536710251205730134973271975194467889487863661153553590506479583305535497810603431840535212163728206844906310964229157779124044326726393481215118886655222540294090102686747026500074758921735319470240946794819233906228320820351452274354307691541729917686319347893386762094144326089407373126129579690758123405828872604465157988964858759541400628809509374177117844249979913224163768539427064410179643866766367628418669752232338473202032746735617840376126488999022741793311676928907807465462740862944445995040249981011784501134380194953608376278451461884634668695117830630988229996727675187395499834339548047064333536353775498262585794838830159962925343641548056586013782539921429166365059768902270151841162836217149996566573150185010600693694502184500641935062246365888488993946512731425579501919533453788584082623889947059092237758382059124737327336819152765059457481312977728128748118981541620125968618658798162807179931854229408607883461260504929567638454918286498692119487321028470762322405699289552408062565969903829492254236184508401851103860269394051905688550287309340779270519655830976051756414315523911824808190872857351975044237757803022225384561896496706440692600159979474957421998028943181616538975362671368423126635005668593727934720170978964784692963940392600881161473336881889409160435476804251855609355045420608846660134361688464012916424330549792278540330778988481883085302605231094002009103232707098537496269008922144696472805664076942882315070766617006017062597592954002000439081170774447623530524480598162529266125862955069754347150688525364966939847980737294854570311373166356248221082860456120548893690053067592837047173895247503209295499656454183445743438201747910181766357534331755525908858044706833530258604557186730181887834369392323921674162372223687548349629548346918591264457554808497610740584298022526517590690952998567489308201622652534263688994382890494917584621098267697408301670811120410672019235272674498440797439154510306467425961340559408712579546384612771638970933006102754228869369214345089442086939717428788208638169720527911063915944587500960576728370591668386563262338111474979834816172503060002500160892267926864651473211747828950310873609057134091933625962985140920498436052454738448211324532883071891265145331017146189360061099899497859172884907651811600366741985588323132526431806570176015512448802199679171416433238649359652975552342623400729797787337331325296304464077317882966895393946162131538802228766334445030426920779565114090799314342629315960412785894814651188441902317205211897220839279227870747206113729599119951807040953526872662210470225814296841446579835339429600119775740714581946666728943795365598520966810689121448653320986589229682333049032551499743067426119682082374635919307068161564830025134871593342410745822484770476473267948316542663437414757144830601310726133210143576008559331959344553791298467262215372259520457442987961947057021660778027544856358342902922885761013456407746557500542965909445056213618018770455189079082524133348565843825477333354718827056548670779042796539579584488336764119203404275951475365339607417576574758188533204990845877920461063483370213972508253697427038553925957588464117092225560013988176935755059544781696432702629089749415587937507696824197974267342135689414611889644144044928818582815628781298027752581859985565902650034084030820251037592272951353731202991804943688849973860624858943536268852129991259867716797253048541256011853781586169408527219542531224717989017186366140411951632058375195274104195332875964874978747881280786422706838607629526623533509961322737422454837429724282266676151136857869077256136424544883820973130381069279900492188897003627672039334370378013144756821585071771761220060728839165450145110528516715544154307270721923373782151799799051153513517320531298922135736416179633267403975860429781735390427004453673011619274468026536347288091484472572785838094223076989752749914214232833476703227619482809023647147002545576930316052288426357200716401142342523452059480949280953369864220264482158227222949798013261050758393330124652101837583327032626589651264649052105092305027042522405924324798578640165668912625377455302484875816477872882414396641173827265041298188688745545189966155366773032741900542411240566771425899550808701041884247912804344914066067676315166147552274673707941953050567412281170546474575549224520068459388055572840558568736484227146218520627882659875595773891299456171769445678126481477593396317633097133043285831824426929202874628899532672307484290523652510892801890426419369013791400901850168965466845270123522119844042055005689214249787882314904945302046348660326154186417634755587433214399308047491464066609203855230712527301154332237873899119535691262159323832887075924702390243366897946797759975395485461785332071719744213700314496801901644900371880172795327902720895857722700532939390798012359803484706476802212562270342551835628097589741277845536235819433313676138943327480347399890359955629746715273551814829862059092284721952267686236005196750305067316956827292720539867972324457441976722261832850620782504197159600168996751694288388020166792507387785172269691769931992291694511935606458771238869217074820540733621407476890046428096375834073144845400021497174696022270329430267333094465101733095872902025805908754755452102237709835422464962051283647529690297606005553554826978528179399378708002514868267559947062730983265443780075491563174366740159886055307632308309338673736276052620519724968770204697458807166214812136248756296306565218484496752604673755790823981912506809887216211633717580771760994382143442304968023337389393192699907274404641636665633533125812323027983557917899061964668465045036711248698813036092192232880086452547458172494858306335970954881999614511350550938497834058875527021404047912193750685025459366526752382409104626156609364551284969568228289062539349709943921329522306147481269704407287863438027550344078216457707031850273656159381934774777112020834277072936510197412664124078201484518188907292969245479990807276450221037582376108835711123896256751852590301489017557294012966526211544068208784096997123413534057839295963226070881173802879956769597244447496086851545641705286213471782759429500271571869434737581740367719629448396806558240432137737899905278425976769682964017505576612512556066439323934013719713997489627890246054884760927889462930030708086854310498676360426597755527722380682762598731083212006846068862329699116582215558425729620816322974996858574888952928880197916941505536709220525685279123324300613028271182771606355678013592498225738267166967032877898650530971488202871200077284868981409575599506337309415298988987175872192285285688564671694771639315242908677607923720065203936656794644326517248611619635795780476447079957893423904638752745587657512722756490084650860488015165262581641417681546030299169542244511387670474302051446675834214085665219900405884992889697119154070723926892380745437488499809872157402624356890092392428596495474565529532504404075628283634466763371323279244987603453628370102127569742526317788701352897770542350461694222364098759986007375583179714483887904615431467952165626509911883657072072414982803214694295016198226371651249218947345448754845461401718636382176978167503968887679522666062392194862033212801998982834325594895991396187613861571390109114489651017049626475481414446478456774380095214439108049045011401533901439263937587880064016724654517304341275328982731242565529892088159821420809834133128654626849480024777762498493350859150157787071062365404946780726379298700879940287574384939431541600405720214064050871851743968587098952514147658824894378503073795060199047595763820847901931859945400023495651028248240686576119838918139988761648614161249788666735233719217489369243558389386293258568768088037859833387593711541062678859432328500651143802209893952842054311254306742174809326847683183282105802491650126802758091726956641316474587168731768758524742391118284698366673174087744249408380745891641167921495519399773449296183722223803447992612115508821600247423475885533980642795439319861111428678903967053553357961602618596100363331336869243623161721435206052700972547120012691641318999622241237063505418864068181170469031942707145629776445132444542258415883364237407162352397825964357815223857046639463948517338883765169431620798697584084223080278925573388919914729181924837537807680505406986155633508623214798609865175084823377987782332496611471074893393806715623121265628750821757428402640848192972728585436966744121748610842508787058630667958851307402212092025349937733797383040908369502598258329213072001569902686952179952275358493501128273022786721516048282873848921956146483058906742741981518347765069735730066731316304745960024129517203642939955457925262768012843945481763816861473477120991317493206750282383269706685153890192877143984821252282672544853532155142400934867948931521581225479866132588939124749919621023344639191976223354499845530149515592594951166726067635673053276166778516330395488777590037176565313663100430326345440125350837119769930631410942581791060509498571588441309672150567344472198643221057640514196901952201753466726766380561272291973536698792555478797177968606050835543008528439417904640617732542304617993890199577468492334543575363056718242202955123506525150919887030170798027945778115834504156742390831620124130870250873043057031773627009847089421218469646812454258071651548680421550895585770976966709489826594863287926102914354331345294943504315572555204231283416652200126721254178384645763567813397970663124667065407704584015187168031420559909986976725831561045662484781934774899509478101057484049957903752652316019929085101638572147463762869624888378495268050370105626910096180610968745719343204532833593951370043508816768782484263406038275153583747003181885838553400326471939905659386337151257035644890509403086611506274326202681905923401283386967405012145516566442254164414163469236098470124080052049050104210003228344188696473738732481018953787081492431788039779761690618019502714161464009612557866403643772913870471391498631302347914325659047695065475579231770005619125992787755224531582766084035050343863112989548998685641378756782254916772525023188591218965076213926009122140101808845442579153922767832251684603233958930858583193252058199984509277960974046469753313907679139404740668207091999620963867341077059276252485905477204049127365262439279108339001725265700111138695370411715910545592176720276000488005731322765547984946683322811994662424313126164278830227264818297793322757401598050635675722359931801019851971185686473756341135067455915527507804765633298288045880057153296162246013175440393881532967531676804712434134967240661957518328652476840282685521350001672430045971254111789174202397841157094025239309813785184846385349423985140598282570843937210576650029803319842712578937186171431211227123914107213377178382915472552853574518563043685503679633196834336445853166934242095814626867377077566240054093904113934046156505198544949432173704536449101006651581572765623954573545048703401722351494128097469121736202952477600483590375875231180011067409852748640207162653124416275755310847737730638721871634896709387090949627368468621456428499794057082357626616152734908354316148837792839331344245005145465018504762262562165041097503702917513613093233561595600786460559008004117492888738148045160604929302459132297834712028526422970287179518333185590990359191156975865794968618768978890300626750737536152936726873100283795133815644696681044291113089151505444643154446444096966714797717523697449867240357334645647861424307150714638474153485834849523071684738477880060337950172902879308999164851223601634722599193503147962174282491175137037426348058663605415780089219828737089137116926021763774275766991177066707073611446837587372703196917578411172218921938455833919967481217544567195208227908386368636039558294027063557665004234552243700986708061951180792693262305784916266935411913429201703796135883303825815902976513268274559804986580094974802012596703311915254368006669085986378309510420828576113048906613982996233053021776984185871109980152645132354239786893638047814529545140775169873231376508910105373766285112942848552098705199835166096941744160179118874530514584195787558039438194785868138478528270882347318621619729767959310569683673609231531432731937185327348290804062536215381031515314675444494020453680964813844534931821001640862065595867500676155586932241479725083016462367049016115220860172566945753093699564720133585657146945467709298263238254273921313142857944357321169178560128490224909614918817747723955437047890161383072746647528173226709019133514485493711416391913132846757212038511139472455632528328644575480990103617415065203454815922434251328315652899826115191431177301364954622531233067736669597253231419189540870663616192139356442363122415335297933572492417725470742459171706385198488550525942884051652721304270282512114176602579146004461864036817891382058321201028881578833005932420893937439829001583214946178771558849102595550801907668973996106799427374771541190890640535114359491733913376619633180552679895194281862055716817770875933651069129766929136777541905925068121219754357128711374683665825675560036287428594397975890188844020204277909959833409010295998112441169891533181940631206326104262726759802785119747842063419428379680394977681510771653561788614153865570673537670180125342569800835041251152287824674036250514863260603351945962297583030838682530100775155067315383195571513128040751470839029381686517669936534663281992298774617655604601124713437367821005090257715461385778069931053149884011770185924251452233217803509055491736984383156158309260112388316136033401796484766355955040996140786381376409495649841698820302915863800236618793785470644870396812513156636898059497180080329863353918988423524023347988253523395942432559465273896884856167904504060675174974033229879020596563053443678536037762241143633474792497600286279449206186974127207365566196754634119390034971181807468732425002561265969721302699776355080156944963523281049506587141662629065704750576846765864263586892335862137445731795346045831929651925587618047148832714245585435869275670713473943300646848578808679422767230160645868634735037378532791877361866911151909245629657761166473593514318241230818101297557743436059070597980661518941155076488277910138267902823296166786349044048152686676512438155499142711542574056544574893547133564322387577975493300844986823863381779517716234705702895239986220328877986778684990625871147554346129693034555600381462230644813815845033155242670905593325549573221806471885599078996344211473207797966397367798776330460717655448297544217878614891056046105732209756628893105214006668747859410637186645394957503044582961930916114245761381858320637002668821246999977680798340343301054599966884642597484156844273794256869335302413323639102324400156824908822692704357133775433776373296574022663384556467482506546558401168161559184969088337283719575385271944035381204914945170938202100311711729335650344734504469091841007400473819962706108394435971854868631110709836863684029642581281315781742810322695874626472907829947134010083216725009398198381579694781619195223869928997529318019386698874527925382909048603103632367770621669375489351082894970424099955746820315838802970871346944400948907010957306817196704503155717847417787698354586552098441464106533224527250611747817046740233980569674968760187436896164382371437251965420199141453813630381043387331224353776822146280755309929812213066882296156526572823814708403433558844642953090007357282266293655210013736606154375398486423023614391037589001654214500215178781353486079359710407274647923526270087747895947313960590902234294879906108857496218432859886482536767005073853749793100775150496858635529491927007042875666787321100201890004764523710078081172481808959404535535878140753374275340104238788633067835337936913962978984076566057197782005277656991722018523349013183414917591657360338719330852825020553669085017501584438144125299151323432997816185562131869288494398120318574475859311462076302591463572655151116482793175673779167401905310118290519401082092162933950355234723167277600074270528020632310273439337362588212102505441112657633305082206729636749162137528451698872178033724902799969174587191924625622421653103309625447221728284806900899882907800893103889030498509989124635430935475582110535541870600832936012866781606228088882129204312294950465703184147683083552381489085438110324917732096311741368170976260475840537668029488838735215910069942450398226673477497351409319154559837146393338049198264662007609031177011655677320392964351430469154233684603183717377394084421701356785503547551232858776592096095629170978429647556723552091908220309002700073702069445871125745782461747894253172133253662662122522402058459486301963287539062331835419041751367740828485588344018288013038564601914869102981621256462053870612611204311497299103983660527805468746503849305913555072100463220244875027458937732292617006138948295115923871657777036746720349482266145531316308001374584099583897113015832271980168086110702727904125012091280619416214564803777568506710475992746465961340396492804392552114571657609160003282087838844921853025462188880609625984484400776468187852893219781589068688818997761116975950340176312753366918535981498764179687000132130524486598289292748179897410419430937677679390848447449696345542236699346984801095433772145298133972188123100217503274164055376815714943149058957188991004369362213366710962235844515125627611188319429515428022879958457924619952336702941514786810157387102295290461094580622097971401814790480484964851165329475672179701059347051246577846895591847548990849411683880160275578710601380442151343205600883388882360852804304753251466154624497006138299095568825377893493987905136742568251797801695907966619380532165832868717990025924435980848626608687354411034471914452200983098268851998771906646546001569721811381338659450804442717528191150452247487499493565386694723328223769104597383741516318164740533380688823511582708454291563631422711537555511056306483203266572239814533775573706042257903023084248523377382833921790430111204154376315871894586483032238806677580269515278755386992348420423535876734358258159939680727453142443114417906862417273544380393240384077850360848071084261403847079363257703137011555340950444072225719442799439706697885252235739483426687931413286135995282131259425151526270448775775967506070954170995458571027856565543802077477927106378387101740613662910163448789782619616448092657666036182950995395682869786854686037160111708374905378185259204329119694263406709258990504613341617679282903430247282341978855856425786406390419496266948864272524130813024119106385377415191674536157025030982367390753432415083492353688710372054609046484229850556409736680893903510317147161027743000386037086373169947449909131016598078883484071243414329258917211219723631028692791235005119713750467281687759041532271453317998242962979608318302691569340831790979248057799840362850666793608530151503099703410845421593865748074771754479941817664656501976702796113686471453278709376928328474620261034348886301306484718813927888564550223845886551637567797271357770905099311432215328827089914477712764522907777940540078023721632898738516360293030155968373072662967112943754530197078974279565877265670690481871623930968717110452390482113206266045111173234971919799335921755287078560297386839411076054719430463295445957980741945612686973052935950009052965302883077786969159310387956208376089704186570021773399788438937311234778557000654655581958200752370177283096444559921386624318698070032052339503523441313184481139869131960879419072352785432117158286532404213864688306309339732919499295488520414260759319695925463483463009477015729117719183370357855359964744535466109171599764372487765125300030847368061685379542473415933730861051474349720978248006602219036121828400279907363137229693338057863185268932569365515220374181151984579029450354168255785247623555752536338452317634341843539070162144775303004862490454262781370639186025949047328617773279594565564995605745465440753200716418451598125875808113125198422884318560910773306654107009468928169976575410108635350223309671805361373926094035094234691932452861194313595850388501136012238081107867370457134021126817749220971629327560825168533941204585025601862089062002384358481199530102935479264342240631153766988192740064899205479523297999839350678179221872014122974856026199237858700370434122892154902453931156623347184421928873049011195330261201295605274828543306045283969853060171294002167211819492583961411672472941102002728922841343237611257946653259160655355089191442527281721725089967341366417054864635723969328945731795794051837682653847752843923636142902216114405569240695814569186259704250853678525953369999156476884261649431968714223584834134389014078929282596122848513439903714978263251282077853129240448591639194880533654800833036309283912309277546430881806708916708723802426566695748961571412062673765364060163578548151099535938208073328534530007051161271709807103504164391955167408523982153176326734915907596301977139739939052472550309613119814138960227457957754407193592673384685374399717368745012396690691234104926326945086061328564024939921640760279459167655645582031330525319064381608511514412915051723459895425890719226015471755959829580430629121773234913497849423148020657227162333086115731077758336222943120684388545638324047696228194406780979349607871136202183730270845643049165668110698468572451420000358540819682583009254970827856081347559083707917673226696212683287978166673755532296863368487638770945497468397937504798504492205032503387255832702913868759411255942846735268872548564582297092026152722565859607123196375081696070968954565818587631427168246966629237928296810866738864397192356373052909404408153350553378906001270094437792005785256649573821307214279446732911284209006147433274014646887421179732252813790813754479093418684646827335126490415919461658613155324767549717439515985603967243837520662796584953437072707032749185236399966167420167231341117625108044485385535013217775074132198578836002829871684314461280520743007551369101619660415643963637509354925239895099568319897038474858712158002521013811165083311087328064408629462809982653915405169856039618034531527058352876119974475475633643754934503722567076420974486473767122509807048551664446410065877471875869786653105256657527315473887963242957101739009150614110462246141501800626679197102980064881331386024219901094110469918718540398562708859575812017391341488006398365708203488077638118476094173570138609002012389325333232136924177892691775132296395471753479510241403445133172363849346035305136180086584016980102192629431757574520525325034641855973280481549607746085749526376538468780262655117038212971848331845457342308471322314029122380549408677726925086556467695371486838357198882275100337122251519872014384317583018223791860420457938599679577946304979377181477835148360712755589961237279220383421295762804646906846342271665250542449006798639918209556055743343732410210963976153158839611172239053414389075814185703844174549488228712657587661157350588264265574337219422154835928744847591408440221101621834088316867831613188124875616485781048846288235320341056199477701475995443913386506627164104197318377080993030522217913101674981986093675898968998365301433578680026507366444945610850815815158681931923203688328871453994970526359073902290555994549645452252335299644617674195388371692945944960317998342262316549392391292155278451027396158521912901089194563098760159859527464108641525354572146643039391254947026188991610461069466802298287746836866805153621207686336204389115338741631079638459024415934684661358347434881737529517508496373079738857540921459735831419468048184409878930693372824520984736625442198365644295894862338441335844791677748683527505426110390502025893257331960089274971810926478243734407142509359106770735421709825330951409558974874455744099553734506870654699976529195826607402930938529906463367499280821936959817057031661882949209773962196296676515680299994813534815975885065883748664218343204364364744394127904815409410137484604860798445166506861525962105522070536156694323357795023928147354528175992704292566986918720165866108530821164345609850858215178524421548106406818225507541059478481112732099517960087804840817189881095539743747951665756686055325210468548828026318274362142773912674545356213794953709432174751823379407322024691056523044620630030154513530526022661779469128578238354141227364892333822406165370553424058597463688140407727059923369767736460315527959145593655521866630460662322716947629940412948796259772850449837175434672880869385243819927116397516236934665486384535835214973272976502945949314332385093954835643431437471880190202001892126941100432853378081308739220217973304626569982114511229042812940895605127350714023731682270357030872379632356086335681373128290958648730862122040954779597827828005015165120451320751237196624270714696376164406490339372673872435883326537116933685890327836670931019199523708430487555350442419859667318541435217272373933247250800375691344827426760258133277873533439251732966286963913789482496690908703620734939658947597817314417285146788023798725873805000955159776105805127730318052307093313197424890279271489252807046448776529911742105411861075749043722752929588125774530516113207911629575720157388522322254869528936494763915756516082004736734389897129281884301665032370732458940267372355780883544557557027226014415453018011300076929655791247797659463188388502983473476979824164542514389979243210348515641158640869755040236893458860741880695112235655607108912839196239344544379436190207859346406535478392288555430244645234346441903856337972734458745352450939054097254775618932258618607846943426354390965174548905527984405251992470118072196829351191763024917673727181481160062374488713228317625119003243914846337339614492623725769801142023255695805745094099720763116308129011261552228128655638073023646802082480717661222033375048758875628914404984050452692986782921788671068659374770607418111873192503773728553661723535400758929018339630797907859107813875848172501407115762028515379587111508034093556458413443741470393254865667710640995538867616989323480989382573170143270011590020929527644244337711837107350897958351652159962448930169452810185884241862224253589686271474477131897911804193695840873079058908047795261569072012506473613785827723937223391551659416022174973679552739809518901645303383241134153137944511351278161604591698765079867473767989707230264451101818411704185408128690797177130116727189315070584014397043022007131892088621171350585631268968818560114898383066426429537888977203893004599824808954550056349232397008537237688127356572264886646485679296201348875273109810335969959986246751073940219450926869894801569843870442598182787659862150514897279561508527541719097217530804634121875583041284139709750737305050997119467815355003183232310277573182568770707483425248883735015420124772796837088735636432604638247457911169794163797235469985461126750963832666717725218321291234869923362676578219928941898336396145523953026169881843416525342098114531951782072823588615983062304467488480536864944172699741261715240446213730385454449468839143538755600724575250105412672521822636645422278939311650501120129113550250361641528141936895614864406809678937871118310765939296298048106727525146258789042845486672773239119021061571163629703930195186515501716093163500799154227301987185827035492240311880862052828994370043063071168223037100409098615242137146780556383331274003968783802611588397425009571598891132136601987067763251440541525588747696957899241604020235085153208680192274195324461921751945521211077333660856690882636685361919539337451150954235327884165695393955859068982096518072017537450446996208653749471175183943475582680806011017923627558985199220275248413813122847126177078060857902122598453528675942373078622715969902301059411678254708511861794929973937656289456030732169014075146965625372523619186524491031046149398936906671634851477644599114160865478209447975152629955969632860148780816042063042619636528445976308938539099102585808373027471814072533032081237375244084867100445143657810053472331098430630204540735887582696180754379836744315891421758214913534611074479221151798532361916208419406749431110206491449259081364958198749762705567877709451208914428909718099201835399414453723980349452938377465366082551861033090293627467313727042677906060563449042739492233340935274372318075583781613938351644885685465097253043988508018688224481232701246817252166605007041910708472934955035873417093886230988416897636696536001063378813045417176361877183407210016848619866302719284092217771251761577455589758339070152602770825721925795989770985401865478197528227894122783379769446100835470399475469464159362926782253257842207716685475754432271571069688972833867441156645987851108235176244068135533913729734600616041346887618946043375721997339009989690320491728845931442500947040342681701560431249360805500381425457410463444709864029050066948910253134099448665136526861121584091252369129091111632225485175115031220899063104850700223000280589306142437367060513226748307054406236995593882813675325428628331715871950801702341895929975415557632101371872048263733483787661147875761873848122484233142061070948601852194265052231261424363470063354645564281580088049478973821182521363364379651634371750244063156274452266871480489695636768632169930453761298560465589286023057473212160422494876706884727834856068777072884783661564427880228787679966094815177645781302999815254945024750527942592585417995325886705168529801218668743651600446814902376527355873865545456310373752942600491034931742926497586538682894978721180341040610964166146432314168307922189474177812511883663828655632865810810379858745441385026687205922396442530289735771698135111016304568851286326543281560494361757694190872749763517883172142378531363479265152793432989777129653717238602043797850071802398640268722961651067811376305973757309493589736417963566720033051224206979466720407973696625875848233786600965300119953155240654768378495386862879997134611015610482959294947638545287186672102038666380402762520577226780109838018269805228199621501242190642701193623038263345689165437124944188865339742598150561288444559084980512292128241833649419317147437055755915910637527005858351687833933811737664976137302655129967652379923110611532083990765472252563299536843496324253646964251302254236858559043722754483293657090034172069396617624137727188487611782653513208306523131343501275128752167762828530420597479047102559678455548375352347204009898019143766617107338062946023974635294362764173441179605584044394033036187202427478104686152665831666142382480800632171302333963938678813591255651724547521881311601319663101503112893995916543840959307260491316082510686609455882198236487977434447424694176412226797625110343127581170647703216198205411234140675195156361418152152433427580709626805110150141413239398818772673301345679897296589619737523533113618070729592605437122047536264810119003097942423390189830892650161994105682932201493413667034463183484396477660505578920034726029030872458649846939049839881127946832613266142794282587332822481152007688416335186674989935005820872188164512294928286641128878089555842953766246555924157845938735269713919041281026718566718467735458801153593665642528561694026188501277643714978292174118450193425660342957505994432924298569968446354677595777123727963203324833542095049187217790483340601472929299072945796749062942065202858164841351234479303664984818832940579304797917655365631658539157305311740117717493546165360218294400008029807122666409082823634261389912119478851228464937614590691444168448258349096686161915658427009733057714650645805740584818279200110398086699501991354133259791231703335328908419515881330451139876471396556422411059194591252627674304597809135909105058258645059180591433076272089785003135843463972723690277337907474443384951759744235274913520304157303733261367448432681311682017309333200337832056973032315842098212822324258766994215243511170303511418730713375442082817464837040477902756562840337240676090151691794005016740590977069737445238750238871948305597509028941864352521876942327335639547807121061341583190117686052175892181340177534403646477871327858925387871306756192910794706335261862657463117145761968312454607940693451739598813648441255766864389440614754440680132659401212289931215201323454456273206810437689004296023851666547695472949999143820985505999205950856509399965584731138312446734544946114375008502447792778520073622351482357747355171908528530855713120237906550678984786766463643735857786759377524908364338404647185428904086424737944454190154475103291020115867355233039011089822088110902384573310996208432810031711496540028908836356357555782954387772727261542159657945227538649867469180185730829374349020512022132518589809010466912865434624311656625096840392673965995202571105125781350738434790428259221282539139497736751440065753058607557596488652505864199032717724299457015533218760104760601269193006859592486665122888533194662767237767617022294298338487739536525854516826583692913410535381137294569537745422673634303981993419236735351245110218371539538734734078532728243362358993922870725341750188911044737480365236442660639068010426307689174765118069843056146502665714940203994141299613436451853745574117412209443243898892334376363800460413696316792330396551629324452162420096025834830319155628991898940808919537969510879639143244462980784916536521543768325214749043879154246648204550774520768384047566191838869094908350562291673561341913891262296033436332165597960869293658989535716390528917186128815534224804674948860785230945674313140606649366806567358161145084750866415105210985979108710144094737515072275724887863251519720993570285877386744155599647942646125892322194138634401077266354288397830457499468216256448733126443233759039159266593290250888090201731119790104187693463602535565692081461795426746821470163561367791468377552180328889855966390767196732471521717403282478316483972613015777026311507739467796564993989298276564463489908071177678100489603449012128216704818000186316993687437621697315457635221916835789784447011879449659159971506895799507807622812787339796564626879042728768413490650377078658889660295488334438084282633372911830585151942306780475191301826954454752737197597173760804532888887759858840369579959073015374276228019814078550997268287332049974625111163721298086495110571039269826559658685180332442884838571761493961541949662965383365182820264285778275121213801191560304807773663333728665971743204877572669247135371810674135335673395055262548346566563925545519425970695248421039564828224054926014297441704286376821453576046655292064499940392853888001320032725961464530044004290531688620837559254280703338162919741638834024379171310677051310074407698216490080085058160265481286616034816947782120596500647171699094707033956238377721125050521307147302526081076006625398919224784698379748057745915677904764834242445299529611146754067134162604848945544682874491938761982535318746474617460292653025790797526309936388678417168294931981640857639277763481767719467522859795447325809593385997922947063042390430804570864643642853611633234013317815306418832888523621084040423529749360058433106623326979374891977805508727183393018307609209705492751472013883617472235274252327971371653964241584030087146015270306843322414338043404038051081957989521504952337391676946820475742841287552003620068379127004846220277608207052793432115917188189182615235915324562999309125685768733446080156349904989170489816345247104569517606830167259438569775786494493365743919596166219848855708299446706233550590025817008353232907796079057668295860750402873325776448365995766503530480752412464354510341633692241041423356237772440157011820960658181556390304528634467701003169696283630415062958581721403268092911862330089040862111468238893730317175770624474992575413486029359403211566424248363213496901761162505726112720520701330111466171174986465040108298675087197627383791005403525854667791170937110671325629192280944831893653686692842070571403262310306830116589511963911813370110023805172401385830678482506567235004899538800571281135988178821058787983383944515691670139489656667503880040079445470972362629364797164932009802909673311069073966280288680136292509159929412648097647758663971558092497276427976801302390268777355689418488930685759654056061642661183861599334706333486132792308910633209196986508620653131601055741524716337878058022496980708762168828734525712755510387196607689675383964640592782331474954531084355245560284758861155942107089848412972790708557433382219270668620834751157932749776566135290376844695993150787638154126162608163807692183239792580684046387254472663667360849072409013324909587084114736887882025696028695215626861394286719642915900121076041941254991698057860403322882506334828428582671611492193404511473088257672416326753558945150745573413415315369355137866566928890962392491807100086175581774526597651681602441212776521969413929714773702782634823330648284692944163064292103090988775774428891826312653805881217628135358157361456760173860223687389615943127647215380314496814536156691146919454272769610614243785610276214176177512124444132695359788045932813616661540097555820853632520281371544455680436799491553033308709877562359936659684568263738495493198600936540990511444003712063807727108129396981521400142823096267421090983052254625145283941311173030553918601881913313195127369266376820795190181936384981281115371975640823173369768274155417726222705452748513640318039315321869845383024283167106463242707560491365946508349829083087089967199920457868672753095882770907060388482740627937623518499693742411696317924720014671845919451146384986256288640873798554549949470915490353827782120835102467321607526864111521695693890181209330368928867037792408117044923922937165546834156010449878222369367758417900637990204035596474288743927268551914703031392083996969340252150616554280390504336657349758792872265732745459177459741891232069534244210218535583384638194936558205094927257653273570935565010437451882386755041576094192503144065030600239900732558197744101991420230558348288880592510116875452256995258073222700059807616728327172143022716769155032384295716317650025634259561047080595134343883980298075502427048061190513731763347181597443283321202924244832191899180897696364634688101326707346069107678355325684719068369925715599203086927108768439619566060939399455681737285756314284817356168794070116511451326493247621831074503735598038902241113343247619199255741408981450161792132969217174107536085310786844027372003138533668859370433543483864917661072447592734443582566748608074912714756224111619555373584255461425720208965216246253420004630515853066536747501582131851325568655947235246106078378791686030138924198067570005468331449930011658294692518141263763121250243514570220868052981775983765279770442471847410469163803390538380304763305797296153806570326678335807623886597792934274397264292052565145601180219333981665926619384374408566755835478751391320331687247895625897300553871382978032622975791625183803735819703590695511848068496100693010924566653925691687343451168927088581704152231729963152663475023240724653225621553465109075223670050200327791494391346820694773436390862685722605990635502955973150406436399404527756094654232054243570969040543352271855479705754638148115565784948209903044860132571450733660581857783049258111277945400634581284786775821109211644551553689462901608202885415950498192706459305268967947949394111272344359814470140118005879129160510326855811795372827639434533820702127525169831670078724272753613628443900098180667295958229035998734147250091613329299493629895549811074916301050713459297632355015330549000347567093818141538778711121068425202760101522314503455298043311525437539020188887466211603592818959090034340690644117798346565610424014022715648911709143484831375433045211112965809657364440548859531389181001626893519201749483185932734723587827925485600961636187629918173893665997646074349032759436312565026579372503805840033740965450507265962086000066521990399234142583203200621632514877664128464988430824996531367862639568239764111784447093690830085568366836620046333474943523937219226889426890209284040202688883479692133173404775768656308019732983501003385377122501511019042521011499562052770758906063270275060727259006764779797107374204130298447955160795900046065502091958677349567744075576786092213730964275926223390357932743650053065314076087697289434456679377078043211993144173679784289431186886308541548843620495879090591624313134693936384734050653774510602200252822939110936583757033381657333549360427977685771430741228978160421390084111639475978602675200554616413358251619265285995991727087230188699682622490760531400620200736583475557348102559210630419374780430435931768710329811200076705792867161387196025038508098792571505741210683268455647381496948907408097598502081229436742526761298276508915030567071551181171575128298824616492925426880405398027391756170986403002071207460679055865285493059036007154010186778983940106774870113232361579281063532058401695311361538813559372900351571925152268931909387113039275021079667147804296843106066293556222462474900791744193328350844615763525707766716264185896988178919915804427126930179817544970474889840907634303972469659838059218777007986194784118151679134393713213130934254737389439641471408143073181391872246833111424280270151801900644616940985291234311662323397499128951888265666283715329306155453275761062974069647089574521428409315938079311765862797495403141401111272644143019882598203301894545390675964754132319827622597869799323207783174145021275909933588975318300658695729154166665675358448102274098364523878081522735236266045469891514376389953267503891360921050673922473439502135225149197800698904357421499586386767000794308846431719544705028292628763574771974789653617757206195134122742925717176782867240742693715359010089918710727346675793023007517810711344558943867659588064822916835516126895343239983727717899442004931133471600063516798483828047821257760453213234957991132836850597985189098353700360776488170786200770671893866296260530365172390416277356982851232765954918008397478269927013706149612825465663717746726565827125593328244272987909682051925790177020330028471296634743013370129892379335530827453970401160830375030253670925723085171494601478838354912486640974690026425717066150693327929221663261090676769037335513030812133232264989564803520639617110017946767307566937680560949950036153142874731700589281629562763130778163740732210360059509996730187726954549416621582478140634359402933334605980989639226288631560226265320145121471197702352271411487216612046820151698278465204470510541980418620212615634943170021475854153268353324747478864274934728669010889619103889758719296842710141265408299236670121283506389113676864701856416731173637138689695409494008453917554958456224146880075809898914351392495861021074054304179324022244454740124019651965492887856253398176653380351823589177993258369432754982305698035782495654195420752842277377126606753907185705830072145568977354011661085168227147380118239417436926859531209626300159554077182465989968696973399123735602068539396369331382168146898062616274213464181820226872178086311266884235490087201978831886130887670707666674166614600644403512190503326979418714905291532760172379183091302637630055271229003464559217449343244562653989527246634310302232453916023477356237304859742954456093210525113158741083146029733362073592763888690847700659060270374675558513832203088720876110272918353267049905431875471802180736948782613822621929815879700281610496917394404806509471612622029629324907807553324402164059285011849619221939893651537634207628288350620798447971082600042404560453450798958303375527368904462059120616818829157293149991822509844136556250296268598505487561538395717080290034248865133145858184685188107642022456511083989773417986248469369148114725309130790494983381045338279617809913265177948616007584278540343356047382836999467156323183446129262506333609940926601683412697254586380609316670556304922034623672467664600198541815566794555676701951648652797689646142171509415844171425579326481661294846207292126596895686267225621127629584425798224501182697673906719941567099671671246314219242112764600685649989037227897077330248025558437867130275864940934918556298086040817496490514020645425464668350973036492533132603721739772314384311194112082027740873213906203366279290188259790124623140370158944697021485275313339367941141475079477110250565311504351151868655962109287721775993520683590536803934683246827460576233887210722692872737254902894664435058484080125836337731422037706551493757599161732033288529090101396239035688674014233803066652063666020052471425929932835414208365289137282103088679448597207992167462829059107334118627716409943786972180085397059806183532160937123353162483832992722029267097633388094184371201980517067987594104514962022773326052592902962027106947097237105812314671588382293636693499626439911806851954368235213842508336892946304666513538120709924280255732626000133340764173427289429955906179115098673115172305421314239808960690590795822222810580842696524694220999918942885052060735467104781497196715423267229879957865481758961749008708401973729402536855345669396041183877664343821451764124165852598997128828813271765355828889209090516041388785903000421419305571261843062951420743930177418420302729489835161852021636005741083936674911863429271873539431606708167877521910213091707465116733823088091712949631342000230391330017227959759043088973170129376671089539321774945961526544849704464656780185429068242653079205401049605767904830470266038046643700600427296588918127160600549852057806141503992634894166560631433762125250586472154870970472466383054942217801142565061629374877236290628312711905099740449672022798548456777568909614880759759770376918654927436381750779134110203110193837945819093590321946757048403564799672713307616871931536444749394502646203526240878613511836162367583034246727897033766182963297328157145761470593234626224261109672429675622498638005344527211272596100968997646651924350796320472354427949963863839693222472210055138242271071684928291911495401760683337323210212049182635443431635502696009373367520547041160145797785461211802100688682448684588983774343967219693369360547948140973569289618044006378026982769868708828592362894437180395849531002377640798962656015568695904042486209224546251134812203043557744234340014070843061561042035878951837581537497320857274051633021166063051936670957270648892488672165630655469171940053189232360114572740267269254655152642562220548056668596242446319278595879256951251725503379116324850560129123819472340438716228388197064249139707718589864613751460078748593569677653371889888807506922628492634679876778041761272954014639811116864990397253997684062418150292783909018664583575642601728778912917979306517643727111089957758212708766412439778073464270806797535900337637601286581833871495830365977183238196759706187352074834022598965537697646781199338895747194159278949685049257248074388379188864306981160887718619542700083541521294323090924242497286938865005976767278789447437030298637691812284949611816801260076795777119117975831155534432032098772649138132236339295982397068958866392459691519106679901840686852696747361296742836865305724175690794638293049064453088082910773461293218826760886064160372508141195356185043972460075073230408143825089760677163532937070499608666845332412622381067889788012245427226059840069973345279939648825276128231862457848301433605934380699084976428000373765143717995254970331990567737917930146025142544105307068947295895239952402347740729324946792595480857035243389197984906345496425250743647287951688641068811501701919092771761438166185137012061479874099885249926199943497653528984079486295204954887729393832057502712215903685172778474731050400709997480276544689903856834901417627896217330705941284095143729217083250848846001933448860017771613391755936551493393022331336976484838240451680715002766242093549915006252619314237039104498691312062595221765425425621793756785279312156662387789675418020654316244972246482750671670401637956994786134014512102063710246780395104560125331051230813148690901042128444224949332575476003274712012045402834325826726862322446318599291648992721475883408107930373337742029675084243304246465961021104902574790957882451143482128053011739987663212195180780575537303003088833596447356246668412464235454877704822932589060131801217753654502928696050170743882437472042206170035272830598764824614151492143599761633384337179037252242003315844364452426928614634433883730276235141581101272322754708563562546593767236480869224834722756755627303176527805563224293994574589206650058663020089322833521430722490232115867289141849732720870165597416664168282769535080886357841070856425749334170029570008579276074336590080996975631937756630592080846414121868104995378742893493627677805038203180786260008149024506385405401569534172737931884790007015912462525725198601943040027855697410784315048523778174149701217649846164251374123899424273479523599135164317961701481397532505877921031509875734565830850384267662473889127756354814316532639660020097832385563599750114447310805031526147505171342660448946009575390427104254334521234322923280988997189262859879657895428563734775302876695680444462720855136697646037618016746991659166412922148382169323318474926063713986526372500660755038048226242093127735043669511519907912558749747444728673473905756184875439275392010552456076273117345403183526589522211113581596829045357491134987908902856983702373864002955247410067882616768376518200944351919865153480906262940265461179978809944891406175380164508319460650207142461782875410392178704684616706595360168757063354199999883735728959371268008872205280048469402043788321867666508302268176093623773212156138346630613886630404344648632676964641493645129427125057097941190861383369824364642445545586071840388829492497418492476610409284305944113511744239360405877900942732089314098728869487598402807800174564373974197841068373907585627701400970595666645153015685564938063177985360127109782454629916073092382687197185784210565150521783273647700634896628716659597137309736424393884465623321951646624364145854084315516654065006565688068281338012851680744961609017891964825576010829396574754814609252223276218766613607018950849644226256082935197260810857722383582474105892653845470647074113181598767643299119221712943302348570834758749152884927795072079743423765595138545803928024572594396945549007594551701992816157595514642758622575361586671343309754871690571358290717859494385873649437258301975100883099077462714391987141764908042290315247825397827109304924263960737190524565310108038185915031893475529971662041693706643950516156943022273071853460884315238299433465811081484066805791391937029885564182825575039822735160723897674819641206169787871710932568190131376887006411294265349945076135085216615168663676807607130664572452983507816163100006885865088952886301129674080475493792772692683093774163131139653382115715842587624714646477469660786219724292585586250855335304215525191111580351754740290323721041132001652997157086225037514272431618628065602926816527845551354244904082544844075915473797277490072589656716515150411236339178900022821441661337275544653979633367030260454353464060992372330888251004952909795197267253814172890957396850231748402571245671644721858319454743004625963686912456653249952047559810501532857403691149491928833359349296217901368640819615669974426322352309699729471918944448253645984261521931170439752220343643251609854360088486588990815310465315097816471077108494880769799661407935896860283070835455477175116029769549410990325703691946172579206686043956506609935344012707738082290547325966587124555980851778875454344757157581212537296431299158819244195984780404066848406283262222898734263757924492317468657182319836752308864239768282697022948776380595480399218045938473450617764758318067126769645996596268177763362037020417871375135118894117943561727036412848870013324368407396988667150995173567394740622190844359622040990263967010581362596287696291426274031974510270798581823425455809793188576320102087271321633226597154492886093000545905278093149652531010521678923877300990041130793689795280414091093111159003805755321318496990043490866736915079264654905527779560022563815199721967575121456904374675494297347415338880737678664964100177606644413140965974337775876563961628397721321316663303130684450510328503552546226192284465005735136077312457044412686233563599249650078517238455085661606399726168678016431335505032893019756086347127250924987605861935184049925303266603034936731211865502965238120074406320182842554921014868031649724259604097048451273323146273398394705922512238967745298442849505615428398065549261809530001268147207343046022297129707544951756982309338236032012023640543252210185789789405632828576242436640951592456801721892000111748050038921166706970997588731027027538807699674531956082811025622878148618268579363515268992954119038255268234054973015275272968658901863633365601295522539986331670524271295303645460177628543181840315607786602273889265800675364740094989064385963329298522552452445663593746784366703153995167345209217320170301898289306592701894904400897797107767455627309997331560038720959719633792060019906132848684333738995563565655998874998008645476535511509236570393588530277070416647890748863357938692119563438034862853082004402286421554037703842288541767556643410760867012709271635919021589030553858871364185437993154199661477130694804898372528730897180983195785416634471379577361882981594560903212115053782858474479442673652947857517573951481345195496472989584589707651083664596916026755659353087148428281884064342577882956960173290636427062984234977844641698184729926457119210307136344541870216540591595553341241495824940859925980497075394122221525210106995089231747973098185272718543161073257608388844431447297909986759137224544467925469303967757836664153381306148216471244338393623315071655388899020890787182818070010427326424920798769327857168268882950271876710261466670623676935491277991010450971073884267489574605855931016938608621266264850242259156634484060650050656135508909127680253140373691021318389243421709468993584227584397878006026107839429363740581883777940304184468714928840728964119106958584339635771185686935507299642939444454742167331060199324671739205244360036563120615040064395795750700549343650836048077472586929314726857264454915375243507938262591856512906305379147013814220227027841280354902784593134857868649264862148859972862330686345637900262249085368576233083450810585975476010140872604783671395058686955839307982647983801994874520866672678624540525457826327666586401381861822948451344993681458964606789395946567177826726505796628218851449074512239358342342972255051396744876804841704578897138567314917805488080034471567603175086920112798746475659270027867835288580293415213459515516799573916832219933997465721078810144535236957978234770901547375010460683059237063224754495107423177413406086526209420985192761138165895254540314378823552790441917977613457870077714948637322138626556695137388688164755072887093176239631489535582162006292108940359972116991629977018547970790794358584164922971406717247351129560830625736069265135181606030454626149603348909916616229826052798812031757481201413110535290766411846545879059819047929272446236085632489807748655310013424458907457356649586027591997157366992190137509130440036028040397924676846143899216948732454625085296732976177186423245692797777416818193486002859312415671270143107992764789074767085687031154323885185695986040631772534190463407193273180554486532451138359543004557878201905730899106064642624764893310681720897545009651207229503028418452635186951325168554700669833143777427399920986787459038815195563362827149822533870219536700833323545714250993740533567872572764528589630256890478715260673606441278326802754636167635419725818186712902185501361699624921847337323413362035574657858202703478605337963979240353382851452091919099264915028392876501847006357979484732272129079815779201511425316756600535389750993912376040352520105488912416836678479201730407359295191944740579870847915406625539396723015695003994993078771271337844563704895952650714480188612431095726152567359549773519687006134201699573979449192397123307930350911407319121518722756218980309890143793907927188071592718206600552390399229610483954962664703368984792036066215430975827400241541512023310962067631629940886925282291667335567774031867803942835319577226089410576945807542071677558451744121795459437396726840357709232912589444809025164757497902416212287028705764156435694363186992474203131336960679450887369673424894911137803695058212072348201456214385328692500746497345821671996361809918815953693889946049358662086182419613536935036132415035657147411596194705382826986361560936312938781131883594100142421508129313023292640602485379902040518911170673343291513422559336599166177843789639924731457026842263974566845833375284572120716858577680885725361537661534543156862318679699210183744853736044312851279237639176986089267384891157335904725832784258771744333442791308835902509566886120932409225177373076805026968169785646533830517706051947662115754288879899833377790893217267973404216769026436767774970894803714844170668965079620704290387424863858927557689494743448428543012287347027134315071663452596204918080177342406184476968495706633156424457805490227294044324263047891389435150983796973780196032182071144022051744829325254709208886211533534868217239209131742122363288330497222888240396309394690642836015630180864107138978193054047554326498352145244764707193780062860415146861088594620850172036259500364573504982519795764269670167355838094999800945598351744265681285569073537296040788284183372003907764803007826982795110368052709867215958607817880181822088023010866123656808625483043978870159908019186006280108824608561858438221722186489455139301343623566338801850312717805964503658382877156042307992087371749146502211252615204817579469347681583195228015941354820634133035648731551899991676814596188847866211616991896509102267077566026892774658031262329898850169772355709537232752197316236584729217068364916927697085793101037487929419854058757929966278977522190066036800518459824251703753993854408950929888422595745147473646637595570475813876222747832034349512213543876513887332521382770554559400297436050948694965177562780939777587853017822950090642317574290493074811079745076518823697210264823631881931889535024260814748975338516153743318803445227236453503741398663755379273852764439024384689655479475085125810721526276467227301377044291754822205504758751649202599375337463362168603799593037802027158595247242003574861598530439915013843144436635328372296391202320038510890682337418176307981298890167650574766091844302658410257068394914770446824778830617175501678226836528982364699155778033631677613427290079581565176846538364829061157275683136973065526410733267689654082957435482915162451894850947088935103243871710894999536696227356459038758618837808699258415635950795654379169381161440177900768297060922137846987078178173889294397827487692894829955338689412551748510969595594821112434202674764772486775784961704820942116013578818421616960498215114087357075610735730507559806716092055265109966373666299166109304288244368069556995125231111151759308584926016034857184905714415672876372931201575371350432889923282474389956367560739836261302402232656903948126012595320473529851012026290133139241443985566587501030831047540365110198607640250393041308920237437354466369921308168134793657441230311762906518210343282767969007823809114157049832603532103485863071992423026392369313759891313620999891351674076397043048654263774496101734344400233492371486468090769428054508027518952721730019986107271932193792376893881229976292015989803231910001091507183619847138282981100334731793415710497565839204499034379775147829889851345204348519852691987431636850205240274852082815069431282451435606798533076885029613565369073157999066557062556338644874891286855488138210111187688746753171298870858770947743805510778560740221927302352542749419018536868574409133492977114926600304277246174279105801585852321791856165298614675439049619023615059590419200106941658246462132269458452960451182014093530763159360097927173461111233586971544871937843848272408368498145863505473111536424145627834291453479104294077082561094709094466462770907804494757999232780272447643285319848323545453427690424968329626469859716668742968398509046836652167106948860455078340323929640572569732386541006850091716322063477917189416733531083343619504280522924234526264272787161788477073290376748162660305732091890436591835008081127912804123136652830915015689033040813124630080519664887263469068623180820679508618539806475187235657803227777442226009930767945801839085039273364124527261159954666250427669987601962342686438871492618965975287081333844676437294680038143037148650738117328318104301359273112137463484014117719044766823503109641197506246312268527703441911507548989262171614969390418517961863337539030054606785913587007435827882725276229176839862472002086002225613455762285067027933492172028089659569191658012427453294626870752817086850888651891120281506163325038707977285213348292638928410198603338109919124302289191021104300814791762489538291440336684329114967777062694384937231989848891154897927401898845742494462719488018916337589295797046999025643442840718733163755347345571932669848042999079410891921333619732830996577966120917910954246824765860545832420935322916056731486489056820280915601166793385510104775756410799350699278099060593000158708204547388974120443379349943448412181620558329521283728429605997420146692753982424761232006641306799735608126331839793399210440474250931167303202207891011476874796817871698434549961662146036868626650685660652513947160747389311404525145434014819842582508777472203653512135566489339982701954962588913254929034471365060241060077645820605324376901150324747318754977481778250601706993313711125522743980784756795757322761886296795018633182847603609228091046749718028166279982851174165008989737459868797041316281077797558877643209258329848661670263938262190942638552364062219633536374859101685287353645542744473408693103123464941428940833670497940049582628245679556531586508071946846786717334584292192373531319854285380097068336920844621812026164777541544068167733182931391324704980440075464593323974904575306495510255748554430760487914850612247552187305794468419760109768999601542155424290305445462720677352813938199098656001093129864914820590588817277821862580096891771354666760109894930688189367226948561850397276588190331794040714378705564154952127635527129541061960524710649266765979271238079569651389226593504740624718041018815380863279112862949244619023754438601071985851001762965520832254755905429349181086318417335738659996806017645789565827363502408493036152378058953761180026953946415734274540576117779327871565391271464568256591387141676547874979489073922162232516225819631327193712176107732727189824869431013995229523334102325609908174648506063033636771292301669716777078085670286767192219623192844179681221506687158876920514365701036969355732906300638149682448423147561887829934557564336658254297214675175390110933831779688726918151895630937774912960571804329456532978529020495545353076437381553143782058255899636146897179373357170435891591807293090275664549591302455353838055786732051756296318593221112203318564159332020365182751828575831483804206922124762857148697865741748812813224844798051981063720171517520511577598309661595246280485193877220934769109877997932799786263415016511274198492490958646069075161123153740307355059441708998978846079934356200428833811181184956990497387070051083018625244445308729259125059540965186693673999087044758291538559857742232933392951834181929067453770233748976681781932177601509382811387910123024203973017122295672629611435626122203946359621564223218156550127237475409921996936908980176908212582771103451854100865901978069340818062257125315383184936916661689295312347501016868238182828295475821700380067949390730954708556366186366499366183635926722506494035012344118567088555730731155683590459870198056251779280482930066528678574072199323703351810061718608715417322440404236378689679342004667125682810170511299123969089962092843639665356792989859448262960890101931110389296633934618479752986029206265800941939277914949168827117073847327627681167392296022129875934130263034041187230056003885010440014670443960259651900344116747557356530174862159380879464368828925718315270277037778198443417034421133595726414443431005847186928231046770957422427836482666186304151053587172547963242558997822927153138813860314587994949397480147488811552429101367996754560993240288192785305748159378083880592893882317662344288530825473771702931076971137152434691250402915722326441718334497321612494201531903631730696741330580660725707481963070226559655038223274162376345569160786625540863575026445308323168332848333827853840646260791986883144319386934233983784678214223344600261899456302296855337799013041640639546561470183788125144379515575553597734504371888359927599217323001751768115646379441842804287441475602468497204604354415903412718983686687616056907051024580311509570751622991525337430546627001845747949331243823735399632809304494626463202076189098799860286202215908115220551681684866201323238704955210544138183876232493000216958252730959055900456630041984316243606605430966116764220476601212497138748709400031587316775655783185178906615796538153538825554100081423942248890189363924313311953534782474874570789170973608379517828381105683236691778589964222814332000355950630424393396341295656226528285247606999230151269666700836344468297965393556594556558042931071018481577511268233768849219641496620302207646599175215744639118542748307794454478805697948673241469452584184329913874480589486986977232005149874920790419311496269629969978891252161226459199585167614299424680458778999502548013143291692494477713126374915128893146317499019263562243750342192812578011633942562759535047620186468706975013303404276754034653938167444686961511919705099848214873879650963987649495094904624049117061368641231751961802439183682127959973041739005996992952911924709196981923154354489912025515976100932960809452396145470232352556636249177408340980707764285588258014010342019912743927411559863669681903917705947163284874356294505318926850197114387836420146085747375155531996261165916163358442943104486377499387422633752779587623501669501309478668524712670647470912477747310065946571235848660203514032799048952842287136042722204632532819630907053986950101704284080649772125722141837231991984264235095149600965537052232576202123483016633346719221968585194395507527633259752710274624012712214905884724014778852047337235076346569035566829155171420641994105326408392627058035787871408753109724068220707721821312613118333360439812314243253035335656003891605434076458416274354267301677326738334355952045618222960588587774848318827957799266929470320059697432075898975909238032710575702618826704909026010936588175421139698549256866295290132180830641579107663895188790884688927724645418550309260707305050199557821615348965512289388293246030431958233400171504728786472630675096019687198687820472830532857707996093088261163057444766028041183213937231051767132532973879748448232249315460203468782641454037384524151336644407555505605102965520519330581422730257448014860474645331075012853235225982203157329463008061388608197721971180200929744510885347096837105135919714034186162651739718376469645038735161761307141389506429253298437806230166179837553894678294574359806507738709015435368268846875468141071508512454278598254937703176827673666660639978365295232195809342246545169246434928631802057771775207025133389981415702715712217280902633552313959515491998501137026468919274279499695651693289136758492188653321293068556761496492289646225591140209308041600794912413592855322894312986037955519348480650633068017164618786536459081970575077859955252787325369531405145989399489426269152822857355091984792853975773623197909598014116913663587547056311329011706863407573322179101990900821887816251058377591466768153709962961505728848157040853556422704621658584076447402831517587725205403587675429695951030787723448821810566453891589744306167544842713913486712366424664525178185900490622200674197435927098725123593418600963626374015936636841741958955996137391015203236279772194364973403536717550172792881960013111046402104783023582056152306799324132433831352654735543377759705852734033185342589014853830051541263742112361024698889595049734133153342725885684240044103104626991489049055513139837610560984483560876609060077835890585491129938851855408359754184516286679435173516027257620125799189856751107392156613596718533039198558991824067862235820936973305792382697597163513585116999175018481776179508146078794255452906755617303726811160925319498972160009212682507188538221176157172589328861304102088690593127221898507835640086393764206195321796767768838303653766429805336800468966387038111957004352743081278563207840672240513045044052616988750069136602357875980977422613847899275433628041136508441359343831616930024681360441809334486105441590014719911978982626158674002308646538649666714656586345732776964164389390865039998557680837318126601033523588723593386203618353200762355041675915956357504572474316193304486341230804065099014707536290493995989652154773646229288382369442328490946309368568195260333374422925254352684089861967141596266754875158203161923249741252343606321341588696769438281400581862506687393651091922281314605147934845477539868122016006649819161784861565234200741934566945519049144500894624875133714088029725684208133315971882149489095174540535069342415613000753465570418371536577060195638946399176862838010417631963687786257079758205221863934526593741093596462743804455486745148573957174573582457028155845510741726759049256694960475493980736644759430816015632823159241585166620513165868725875493085129092578905954018974136335947520822240033444614709407674540436857492394907676725978363707482664432539756534114668565717442173233583464554295542658103705332252296594012821841250772532143888867870371674272085527590624900579144362568803940597767655459836886314000517117630008329001944586581800890705610287473286434669646394490388205711586392923322228752023713701260273105705465870350403209515316514861228969366590059973244738372925272535988050482425900324766930369337938821396700410943629383947900331117690594314680810216552177340631532252776938664741737787509746108153517132726090551420976939970897939094842423447755606967527538847451796143004955134028681075239600629268653595313001513301772973167277436576006837094084974696082691523638824050145816360474035746015361939209746460883548638622557554234734637333652545646718262129560244524616205305146374671678055745424931236406853934912128026876208873489332361721368501095984397812230546874615779973694537008390226425977023739469534724207686647384148258949535267293238396917447717841448278061354773406730469284888763141860393264360232245172626720290748556936035044723481030775687209173141789158953895849975394560509428944769120790487827571788185631447323187975606339287378369697652291982383887713329544815069039196027455066106694629758349674754235827549770796260718448147898208482868047780782050616800559912838520445724399960093090794140690869371176678089916489150438350045763962180054342150726645528055526259478079790506376437723595138676295874721766225320473270681514457255316937482309759316036217961493089436283753257242676464709801630543782162030954510263095388130226770599385857000680918554230180356290670820086325802584526329899358012007708010819825137632834192126864259543050526384053360086848193423818988650391881584027685287311742477264209966243713824975274808999079836183474425998010854258398958434944037193621683848337234644426755140207465509021697307975143625762477553809536325515934934468933176581129477756581842284178308012462917994905910595660060995956325979613504765380492389032758689030393204413304611286493620320112311044231637792092288339242060038554849675246180443147641188040476621856722374764363535732637590716896977441801711278724956836704023387289837540339522180604880842938331756429091303850162032079150150293269615470152610058831189965378981617268475591869255329945675825977431632926395726722611953184708010456150380841038799145863936718670584216663600275138519122149201035256515107342574790092578130029319855023870178464008570662923022081938095547069584569157270232905163777895718481514265989142036123132041960496071349304224574760963774190505703539010474221756001947314229553670296746015973902043652761538227771412771715744707540262371098146907733042566673632707561024789034185427901996775026649746533370471158129805278275444024651265467464958240487909920196134850639670602619447362699260164404501724141814809960639948912410692789170643723588722617128366537733691273234000778033690759831035264133128741118252809861876396667898572389767558044543985316744809295934950859109080225785881621861685692208984881510928566244642528461821775673152754501101564765990194486527807136141300941079494033143967784560304254076265637823801286771635142761541125880817054101034156212282496075366826260924890465999567738317271486145163925184937882644247558921509067445906448716085321265884593027230222746825816070398722271356521784359748625567177802870986197440150114607023221869839847448376870483781662270188249689599467200094338563505155103190318814488709605768796968428263424706580670270353672188784161423810586739495722353836096303895155719241882756711073461095611017256745279036147885480761942504112817236845535335884320648338319574656649562895314197897761163697227631781247022276322791861032411258533066820977017416782116036057325904511358814700847096159777794448790833828771567145799885112051685119277509475129991351312507540021893867061679112259350085074696211400892726348627889360958328705942584209336519235059456258603315789419612533960544989622198187200644404416104973335754794907303432973479211166788690680083481651124562416729486359649878033010587623992156106015570212905375878940356040862101196741018878491947304056658518927095838867896761383240471004736154639643505327496437644940664772637416628733883944522515300790941182370314742146572676957156669065999875899910661350604128652267054728592514153828163101555294979032661406760698996739860245301048667066908860150329675696736924492709905796028661038033360395069285176312603330499110611870603078109798548289737423437932373338813540797726661057795695386215547036701505397675146085945638212249121074718803144668462354111729288792079606503008851689758058380933241261192331893718935357437544486099637324346553729102526762359927825126965476356315890492794525362353165039863834588312536076442355688891105964106614149884682278936391523995028494779159842960232339784035315763697886094115025325293533877520670930030671037209919124543989096175887185225407018333340773690941999343529745697182852710668388063758744279702580018026510187559373631311082476556638828302620306012430787665093397449129851595787004813664166716143732989997938344094358593760536828334746725440166101483849266770251424103737992299621425970793412501900752600631269316244254361303836164658885310745284202849578927851771491538000596700078194933337383762917497888568649279732453075928727268425280456320813304291934257104034158395178902506409930050351682773777581897776053455727237873110480016583394141445006836670184137111775845636486505649590404350842859726762007163582985055084291352059841644293102379920354537295430100914022981726914718826490673767773824303736808080407126035593768676653705869625394350112303102658179005800449976560462882375657334861560139164262244083850244987021297664944698519407116532611637127095491936855188673069029859049248266177623158208224581755393674867393637107765732958349115013404687789138341561332163980373096574502683737567111459161029840663016215833889256895653513069062560710367798401168149116788896026593496465908226056639867724992307565938216030579573690895759341322474311407713270339140981635322289243002590629265634434510328644015922933021000637126457678302227847408984709940515132311040591040435290416244382254771373050577258421552629001774233519541977669259076855878647643109998083280485089999584888277462106544810560332279226018068656163609095694609210722145221999207057336163590839963029929900878019599643424110334541144986453489625163161647527443410744989545502344190219814944274870003443968709289476254769383546782715455599137287106952405071598555232097883452186524121505855417269528603893824621410591728441586621829550482172306363165790063503152624378266694676774358306128631478402796455952668545722196561061661785303212115159772826745285956873211000165888565832897943408576028909877257378624747389254437626647395080235937991893782720726263586503452549877855620655540962296287201559839096610335122172571337079342307793157540687618255201855952079145094022056634987215547455089689711972431703202689477323851492179250042221344437642747742566330049737136855781690535228890556086141172951424349990911257171283222268432866216930576335362057118612215992559777014593236238331968641802442372736317568748284031331943239670493716932882229056148395640511463203211446971542169754791289000182524594126477278843647963303047831562660659005927705407592271597393916320009598797848105736964565681820228090337441768838846498766996929955694778514470049094114823193229367542307433733037062677410569662858669787063243398592814610839198253865958909990387828733856155951728304160028924642109227279922292650539281698802907461460240455029531630476465252032243692221504313044455097719257038005873106840036514798861300819050965868009882980895315209755965613508902496502655958092017590924751638528174247460979021003676632873747204284946445601494440547313864031575001386592239868705130373924881689250767786904169030217326372082496906384352505550716508407689272619708933854326985650476294145161622553191375102308021458976279135090584675635737127900570521733516963031637684588728085059946119504082178526441682136910376073923731055090662954560998925007425837337175267128412968353653780295664778486581784117272531253703323507071011873659023116325191241726901720507140663514116098043275649368007665417711048598313294549870455259078869727601219918753212570726963810321336113102842441302606122965962561907351579458655943099732215375622934829796391553796313213783433461904918585202546643684297049787474063018077150391177505240747567017637818328643738757661718175525987308967286598709639086059268675062916507811449135982119263567224013189965922286982645881913244202038755058530416555180015979486514466385050506684393410272136653066922786312405331111361475495833739976357589749560348285938594898782492647710408340116915092428307809072768530876681968435121027191549073106703301852559586183576550255501841346503251691553635599036468147018124185754696532639127069463952279593000231278510006482691760150556026036668932136608056079683350635505206205343118178266819060118650505620621794052923865244188891206682080727424104922278413429739840461335645063513575657323415369264168885724726160713835764082857382397368016528064591231756689674645661941356209867739839117307123194689069189588847913261088550735582097986962177048182339561464932200888128286639440925969878769992216217438081098565362749962779632302970767385467434880377760962792228808640021691766270921844803100084260265137577254478267383803846139120566879097205415766781808265716472571816673746719630755522500266308325996968594066543631623539825788768995597844818499991343234531972595081659621288570222386048755956238257045548454450970493190002983132242845323727964890898250370967255072590173595018415754457708115075631388998828138409954090722316584932389029787508332955262008535670175305262083996277123648900990175041589107421924334185665750823186845927791369519405591933793498138314352849523062508852103997058729346663193217704722045459638848666544104594954882116084895510287007972200219302427752454796767025444205589362320691463378825404143597821444231896472867472350672243937250141906380417958687063096268164773748588452352024546500346066391277113328893583382273238307460259367901076588763716699330602321671599092749777420514433028809789555925737777948154632684691607854741141925623724820396456211638605728301675595025301590185311069631464229907334219900521588032943977201307747721586351971304533978763839016037663519638554915966157166564966312680565936522027160280594955344884533358436348085701615509740850297731299773865137622819264084203985676810995139157347068850470554376435902586120878646423403915305228331125229506177067669040137419387551357086653561584358475699632775201813087120464349309575012159587868317237153201344224019199495647851184667492637630579985196035872430416062626429427974876519175227720609120529419638471790713955214933470756110686767638269488678839921733748273240822725911367441056586669423405321806864874187673915946455013178836326631912827140418195639773469634372798827135816994333339971346330450792562436710352956767594831615505630980451620660631603795742278699955139288380712955749955107367583786266654115982209352501467911639557280149913945209347715910377287336168717996325440399371651674421779515195239781974962126986602705690329224260901096118620626403329609972001761560201637589022435151247202296719761617811948571055459962708785242761074435422419887525941619989018890679629112283141086019925440962641702827401272812717723823619305885787436112070744931991942388038896512353085866451256707117702295082239295982069263327068900769238474552414207187841478687547491804831743276585278993312801538905744831539404302944964803914603339331409943141793716622904410334819991291431616507400138758357715771085073670873618205595053027076990632053417893047607314465900989413744166723221569982421551318782410066860838445124754212018570153094021426814683352726736105881537548446983582033065943854690610968605131805483484061225422726238381959278823135175577797726058699476657427852388921213015275672665336241201781413977900196766410726734975953484918156035541037104420973913784588048533392155372727809945697436778170400578004244210263039779059337088066452156575530068821624788302900433925635501213099528302081453255529941156563152116741359888484466704608895462783830730117741939036545706109203355232114405114816469584212857670889309159808911549911386847313304669846997430045511387118815521398235822309825430869360239966811673976281473402591052097667126689304877632537042956310082876945062993740274264328272849301584196935565590097875092957464530073451590308973799469349480332880330002378545585454930708934608107512440147226243295008035985660642303290165601311307480506701744559299065420875406602443897176173151062388866185279446876617451997753499748884023771164742215392218850870004600693284709679176573498856329898447729031548146352116804081476137376636648807572203442606155153643733430606632220030418847582174235922730950482178096045081195575461264054690819845351255272722623759622257242213313296696803184723996203713273844021014596199332019613457496015801407865426984927594135866077835728182214423676347057913295579715014112994127802634278749428485594831273960295746435143414035412452533915836675634414615153778618989447808763583246616275622147134663417578452482317209408732390766288977973658997203121840530435267023873679014325274197481528393095281226278897823636214604925163145049846266270299577839251580003495970324410132730911006285919186126247785247070444287683384586956008995301196791884802873118369075659173715468085134978139802241796571068729607340006996206121718704962483030726489369636123283293676156701618400901276526437413988068115162502671773821239785521019513875933580344163896462533722619286670250720094508414385687582517258160255088189948948923393803725052893733578482734865572774759874517094115202490370580173659871749898572667086285747069404192681706822952311876301808321925139078680247634242053962115536236082281654495425620803805552920152498407885307219276492798228165999331806869093230534579099958314621379559650128970585715145101124450068774124702829333318211923364282751949071703035616089083036289592339764911081547596310948359118182769348495455519812965824854818574599141854592252963418441086839414470531014156906632110405788925165126720130514473011365403809113927512032427053390058588390020664209812062882548435090220072151659479051618692285307590113466939256889084326119264085328676043817315419549671145393377400482762822986743520211400553414152277095681951618807971440077373775857599622017284305431491953506514081730573211562147718218964251521805584314725372435608427524149124294939688696680539493646307197855183250262292763263648657452398055712332889459854238652480156914376236083447863972903210434698141390403722533537095054529299882608114946650811061683432025080797485167344491875818135592191375099836458638781088140143512967774717109549024178450585277992444149678285717894564981993503575611046449313275830868846766944587636150573029714859059416404856721061122746215359710368987231770512596887803074770169375988531667284028925557093531832187008855210960124443671549301254484551970666162241419451106546731273499885996055436637431164657734466432573880990403841094167056928320324137326230702982095242261075534803472128689189780292973396261744954962574965012827112780226052044996401101566066571544342886563860015130056361573461442103492220590262884747478901474647840795376169392145461599358477346441984016498459753314363301639567830551128734737226065773643400090991196411343766784032174037051323473714525323548662660481243300575115212280053579193872118483400590998877164983030879863492606778940441661628053327485797075724472503926848030747676970656643138234216729132289919077603799627830832792967772579857618298921342820012208804657246988255318212094407221750103558294414504428315039168448937237147554782889402337395672977133018996795965160570761491130842751239147118792765522908495521182030600712464510667885284341451297564909399506900497140613367618954965916952788155770033795983175121315882089727340280945760072639004993320668708110894851628103667432198835803428375710086969054887935794492505217120434783734144120007985530535846359966430485263106340990280391009085839688167137826130420827365544957652261419706403840134192425382066306113804644176867036570848263400066018647578058014835196952483467965546657074640323286561258397973746184410842070042819622210670196135597545600884657444374709910822102256690676090452339255115879840373993510250824411694619351321633306408173553099375220670937048937275403662291964207510476540364050969093325263056270332347148657091844322281454772013336066033581401992176686657690969654298868285329421930388114172723950402065273766434368445573843054634706584366580532818173387616893972770549561811267658543146381527915200486826980846039469627247148128998557007425344241973890264896130958812264939308242892831964563487455508546805969988247066556386244992955847799917492564077167441942947277865569976978663567691906389296629006914720431452844471694658040791767395761295037809564374406839168161586038176840289994329170125526403103149671104914679966651374257146941011249923330752790196786003636950055954663547155049852957404133524314469892064110295001195635463535839311449480766529551534056923828570351423717239490336134444550160368736569952300588732527627996625193851654266510442509993292398873569861486064258312054213779235890132605072581224214535557597854177988362903375799547357963614468169665461856507021350903892476844857223357976679458282728176846252325049569495593112977906390006387884925585826554936150113051518568026075901730739841253472261622408500310006415521846296957454051770325944815794860903246861956529421465856841578975780145781557964497642839011016038350620634744537803059227899787785214970508621030838865346786329670342386627305038765569020233374000949714173712915691513623347847613753015555525301234827219077932513947652134703876271306932629746633124243106696568488564402488260965463497777031556011628649530723131678111249793132557286758922615840605989447320690842484363340590107636000700952774482494483517869163536187126479964032899196575933849356050525358459073073568243599653629631683671197692397060298797103891957929406139585225974307733211994985363581037542196602531446521789486974870022340660954216320171021894859956217458080169586825066710408992043851628845349028548735186867218177424988014557858305350103793188319157579356505053341294242215025841621067627465747523906246161382384516669729358466564634582323138243354685030562676974284955672853293375793149003605258582921355820682705426035617353586109345364501974725315458586159574081201455323516749462884500099334930815724622331468299659223413337667253293074781129981145841179948541467699031816038307074170994841217980945620345174718740927843985430664468894777243458265779081646184250674003122901726725385760359414851680345219405787759011188925247616963718306956054071667841647988377625643160314894562761908365631892982798058450814342204157245538937936695428896306261013683870914305367328059356177442980839385546168378243151071590225729711020112129759960116471923162401189206561264965889985679628883316852870770159495490111248651977770091537079313771104080047926979635479612886225880260517197208144017515146124210830174278729513599235525087458218056955917080750415595675088849919010549149993382058885594485828452377612386808702786263329956377941137977444514014256487974855070238575896050189574647241156034063214440836715486246808541759658105275717169509461763953986187123288526053226940690478471888507201439629340719022921359159098912181233676266808846300896552178807676534454046535581469756382555592436768793207909069338806316596781928037331589988963409716941644929322892957120105605508910309907582140696864218145509517719352965662426104495460012448749976604876034899607571646237046257590292108270907860959466003004516453797306352511406831378120952616112760606443753579888592101461470796663656762549729528744285768704090064885228441247376224102954864578077109258178861388896107415541105752978868791534224127098720276628697316521816602192302247600337347013504886773971908699403846637657027546887633252343441828429599234967191937971956242148837102482768076876576900088052180639137294742464829796981636193419488739062582635270904937991377167565767765175456314594278366244218365712219443771341803475701854816548293320785002926177404809053437642989909672152664946614983617454377325856543490989687673196597407154939870259305330045480735081774592337733709079073994944063820574829671722225416904551770173214684628891888024285484253580954739308342429632290916630114800535812229757525599027521409973857498228714808166257822565176337620589911119692288728865830055119989280571049500420730118159977485332884013749437959265396384725648270033558415232192808368231957279083708941289711453815121094896843220985734155154848300699580866062385892942499006423536063002060117512949861561115203214086196202630541130460363427264500093238136738822552660034805558034952434676262982747180623742056768857337426734460390040951702033883957655128928519565202454265144642959260690926573271594372765372462546355242403514710739510325583065539891048012461110101765203156360195502042834468178633426653001720129971251069783409480284913790292125098648223828029987026018522484595831406488178000253521383896503761486224184340429902402922125368779948469545445417112523936977203146032245316673479617189572930140198058806765666939282539392624249268228143672901293764070167944762205039202363912245319905464880525274527269540093809035699531057607583743433411547726860707640441128953718586595562792212082131614172647549690267216108308917198846198313077155903662047973207659682620097309717852492237049775026581928257428721028861956102696454635330507427016717735087582226633960040863833104517138518533155703759990140345956112348485871532928442394868602175355727187556064763337746003059847628503936628250809130729520977882772454998727852690141309767018230072513693609263575825924835793067542681082996002697369750744130497061875295773399985765324915472056462498117978678030586680005912190931974809493673180067374068455600764285810038441027953454973235538549622055611734358636225231771271124199720375905984338232065694582318204469006067651443517036934391620688725615091115774228688786154171181395765618836223547545642276638837676760654097976811763368014022118865103240244452505218793153621223740987392680731327585050159182274613407803092765565460331079476416304732327769923893949844030366430375652656521933664863287133957125889651785938148102646832692219460552462057831755650923195077748909945167878796771580375454821191991561507032416827949671413892297569253047822351811254310601215987853276289970262443175583701977668534134358215948562960309604385014378041954553919767371777129728403156993744872209787912675016349175810880259272182669920285239843303577693573008584346689008355671108848672490812440942226945996806217316238577321823211753252197864022348001485785964340375168617513331629675846799849423671058464259701641065337753564645350877485294595880719680078154347786027021609886211010688073144669008649156218792429862277063176294796679526938611212850887588940695160241343756326062415817680517203301635649152815152817758240878388148896423147296076823926082515882440623827053603434452948983925914419004264149969733833318245448986584599032213543035885353333048096892387923441545158450847653076325364766162223909123555722352705645174141145254358247126763110177438420264596807073472045823397086441404709365186449033904584701180328934011071158719346509762501802565368095535313622130737504346948572006493174541630662953322967950623637439213757444333431131293670965120346350960313552453703271015819215069398071981824682513373129071351930545823045012570123084064730119556923658318100626625648770701584498160029261885358439830660744767598351499720883030160428407445357523502751153822812838047512091146664601425735164395073803797480035657947118579202763900190119525895127908253209360733881149198227982214362956343629511335471599216228942749262942194075379204101490866666107427943028195510411648933775438907661680354901708721972684749661706749092574919400082905570628903058407331399240505257802853929273288936460007618769482921237089035396035706186277801087027822737716688756588619452626722417682283870598790028306932304762423739612806869059685347347808514375697669100063286627699826446837040152475121066596011425843985913516455552442103790081064074864410198510892885881002410221439368397332745503595622986904564316886432717496654766875433107519506453061285242414789877594304492650491589237316118029562928862550274394045376145305542994611216036818916178252183246147384287331651085059202301582639386568740724884926439450228547757237410304336834790688116522587652539786142211648603905000251543091217358987868840004541181512375644845356616814036524330171679784489618917781401507331302082728549802571115295526581490162951586683645367646474885084640874897701361147909400873442250180900699645913028817310612236050859208827675104178895555314105587132496707570655575941481011289083547912193152890781592391990389615105639863891127923552985726515487788614782367361297999620234182702362166431286964590890442698987960751430514253390660288086605711069815034275163183539203751018575904157857024127907850370887991245198283429724853450013299818838969251669917135796208548982683100190969051891892428949751563360351274425418839595859637327479257279953311970710847803418324574808201922701116516968895531195312597425323282319035346021654052258357895685163329254750926091922131653352214629410209677609711144540745667334547530426949985073354787379552444597343392836822084810618616020267239528838396857034460418694286507518189140389231093332525964189542829839284008453535686632325382257196848037547958373203471115159816945260075870415866218757075597273529243790311789055153206656578749239332535705475682655827185364407448888357431261112537143327326202529642483767922601453522551432820336401597519059037094903663902440430470216146510645635075698140977809257796574852750269759676754223178000901828627091787399645906084891282234830926576754506527269256072027658542153130348165829119618921538806534773054166513916562952499865175866495914198111597688037446245796375276618358016326935012863793148538956073951380726143318089123069770988951728707610456104819244973586484657727940982880931459662827223033199459337797876589442599825246407373531736539625113387409528286931068947590194403099357812140378757169015154273160964784261158844056945041958795807468993895500775008446182098176963399128695350699447486331760406504643581855282546685999468437271607015296409885703639186701761068488172034920532931385833062891513059139827628533585263076267921313399177602748535022758703630533665122078420452174051979340864493470674175619157408040010849018047787091459887815391502573697657175015334833110825815401953460762430350999417815355306229779038996112056203539528323373443923730037474955720665016806373790610253993203540065182778424758258702820137215798323648087707234212531802221716731371403986461866723978278225650411199263253052325338537564393673712942271220884536699415475280672911870846597003648420182118031256651076279890571309497965658171449237210098162620381032276454798715666521984376774832079423257341059537806599970023380429507639458801549254312377009602817819686813673507375890815677376367932102104881827452237012689803430708083686619329800276814187444465136847323035457768227153941700312498206649822699127432389485904025269827790053090984064078465781519509177145757153675901224264976931042448135110232881439635701216170079872975559021750777660244423142252200523279807931153911226317605865531705729761791050481879707405504658291628469854232468530566558138945894410549195477953050848300613642934584184394855538603897862719325992249463795255163673876918360264445315094139925784679525244563361076441019764397261607414067810353127106345479085703477834490710574001462423857062178073903427605989016229206719736424188653915503581317107103094412853142350783575165908778814438781280581536560223585718991563305126283271700879275614547964483858827928858888202057118860872769775648580318382149647737383390090192967746121771766645755748167117173494735701588678559424715216821409116501362484393194185582007513463723577689735751889069127911457753224632269267936203536278663460725150714948675345699436211228652433202249615865996648301373191640998082142208912833503477146564620740621108704394306628667579565772875384030838016222852901326830216507133825491208706177507668892998904537376709053779403929613818604187528840836693067867440355185905914359469597687706378113921816642463452622423549563305444742669968495643886724678974134337427516769668263085503940787867129011174280481640316319194867428415900395228759685826135376306925536949079505663134054011328057294982726708598822295340317006086589686135030447722350885726998236126768129754230482767733301703031634089260442947766374120669709654246902735703004566092151073609379929873319870121272865458631643228178248384469604634391001857183456576794168081982610215379531746326395502060329095090960560893412255973702366496814046291100256726297722166632702728614621026959781440956771158840334811479927596620825101977780834031392489743604054607990505336707973241227041813158680218792076044114492787114131946849141788062269127771936248592957880826975802971073364595817933866712797772135543756964638295627303586228356484006485308422538557906594646771281601533449720421723605769598634911472993320709149474728540488106047903456167907807135979701723443528123690212097139331479416842729434256797420093427577164464845725968468144370204498542787627704422851391639851620502790686499699276797144391264029224479039873511035820042185467713633259698308716646897041630601695666797474676704252766666415410906668851542926276897377366907254794688822502579603653347989692396714223486740307813961497310124998059624891345444243243455204357787542740947726565407889689266495059591514961945303617834297282663167951913826637744342747157144791957064024055172842789959948020645965852051462164381324638414367690532926447902031303476379389626786089654655100663501650761034978655938581711423681812978794758444215772093877759300407059949146257377964573773179065630001163581419050801270849130337088158743513771066567870284798555676746925715835170253426155832004042118307715114420479341410193473796298062965176821105067012645484839935379089344786410920713362592780664379539511151982733893457418123720626358937934837224068117030813345573876502788099038217827103460418284047054645429370727616005824500610664726866316698863603579696140699083457341772914796203263102376039731067893476319697614672040101549388223824540679041551736404978789441937442802452025432861102335053954506184438164645121062661637691670721143052401976022099784355649150707118140348742683903290993513709570332697775413027318056583918046042037476940287874817374179817885995952556745114006725582720834217984887985146243807492977995466417660071973530266785939650403424313978003402044240628357908585941868900891946762626601447670376870820966726915981671627661097602077356389371350817126330584509483094580450803650413836710109646144552315756755878159045540820868625860049051428512685239636484569529217484840197905732422807090315583522475935758045879662608862112182462704198209223430801492109645462333221090380717523019106567849447081209346493166861423453768525925822988982460532883425951335898285316846035836483481448434447824536655312690474477373578035727526697500605357386436704848927910377921370713051374033895627541522965616126161587261879291371701455801525994540417809764595517757176393154058976248174514247818741669011472741908064213440253908630442357777711087306533477275670608201981709715288108043926414131129311620410440472653604743217518123899723138136942027661142229759957175887549627705226745462620114807777935679646232575258710308433376024722610504237971366601715642246476820076875878041957000833925209996321102927094674783910540741807635129394203165567030290703478029663175326241993253613422886779155379200141414026131937327057657465111486231865038646690059052482391030652416897415612845348201312233535885195970806193050123477195766823726836199298845607115350767590111199862242167190514749811989514317017019478212353480074636150355416312917117387933814679601420581840045010870478581074242673520312052237570157491938959343525010768207301654415354755325815022774062089296491171100994244887818256863109191617632713208966043903612807919240741927696941016993212332200976690940281313611467249774797410484571079474368890654728959921917055436789449262875830673888438501282582699960007795943246379005310138728505477451340259560215521756136553262717002544582202127590039746226717315781267346596655422694080758182678487852925804439406836940345473652696378967493406215890403356583524280568858671201726620535965857792275468940524550372433588128291181187474830015107470405626906708350012610562007042299438964190907855420836665107083677717031525400842230846891063263010177754324293821071639234458052240551776081508810409618384876916187264571700177799706275561248706399904409447616370430157977443145359668834962884083533914517108726270800785018003622115645917124934673215578576386481081774700597127473346698945525941323256122427236296857837329128586670649926322512949968089492082266213031192098189638513567140923083796027299640372837375108793165916936223981879172084426524468622949756184665402450883958758416007731592436246345370286776496739709950255312236062867157211104077736000125790964194749608810350721126187648671843769475076904620502366019036444327278925238295909884667826411467691636586412140191119331913769392505245339537494242501144534782494174649135060364376219375214693574431224302243164890996322183707148293582530678559792139486768403020471755751016822591605074178123929991410592455971760013838999728193775754010028207060596141997813418992537930184794983908910145845311220214144581012753013466257023571181093714301069922011247312773681195359821733898436043670542879444062409006519062977319414186992632185724103946927409672633541416939965330801533933554829682954033946540055600652137171084447948060031040046567477564367163860609754866566315734036711043187952202603955239253921202223024510536085494817747890868831285971194440067080953208651315105523814761452314196484863255424979284671567198729807483755289972170667232949478929374219253901049113315475993011444106764085682692457086570704695427173744577951904726256541033321289025455352172656451069450240625275421499742493378202649456257607719868702204209818924361420905416670426666425805929566073340072054068080806412505040656137981075531954545094911211483866022499645599155164805822548754422472170898243301524757617690693154650053487389542820392527572456424381733411565852568948538188479072105089135013652483482178040126954211977293590045346195080264493154040917388185499231918439009883522634240866987469360338541613361619851812489313370351716433201867448440422332337381368667327192770885686226338498793361993182260475559607580113232207873295652803713397376504146632315572434344499361673056502955673897610321077443488940851722003023586104085426283460019509159663403776180924909318541647463354353058341667305829119216182270063838071796585459140473162253094630538592289827017510109543730688953421173044241280553651204928551501097311990703792654734794218545741134132423674539745037961620489880125106458402271248585951467320076809087693195293002546234461361150635883470170311493205090219820513512126611851915937219756224633405591783727543908895223526426246171951330988350101984110116476176580921208491952710556663667016231699625112274417532311233512054529397190240623935722411545229756615127928287665811550791593101150861510690947626435464412218773428822703396797597526305002580584852118621524183850170330413138569661625356360196908890817477486671073435807209747733694994929365165283544692926655875527589038556720323017212348941072453290166813103636984794319313544542296038549877263182945412209450916348445742900088118530179076829832491869504788663125737305465394174787289551930792833658617228211821666351421152360110138271274694009197430998951427970640983766689318274606780396254159640004771555429314005533817667071468443548903812481313303692898580571452367496415364484037080690158206516061571128008783086252029043816571097559201430622275132644186939439242289743166298527092229343581034983558615035415871035125832869765865630751157969020517226893575191333934443739938986461391580568225049355388514830886036076123499583133626212825730615375225509879114904538541308473867275860432918063729629156427299768442070675901113859186422982513101048914997021232126352416374261388065550306096129926163298691316514733892857916379011794490981160031717985225420787430378500640072152754154710797579331201525312416872486221672481975675031879165361285407995823328693341999902434637787693265543630859875814963249712980516639076011286631879658200178783448473788271628162295481983611836745230713919616257788569077708552650292752576597794862407268034258706376246631181064948520564503629948350729642261108025219371457321580264799228251253095316799200533377409732149749655784257966833263523268358425543677087859009766432423849259681294556085730077293454479352196797606069064357835442139384932631865880440053206867345853722677496062298894848610892387638479715594020380912674820156401476452748868359835813361983086874669142648544297779413021557549550154922642594571381009995344684557542444358951572648968409141102414640686443729307523911035726735936861052634026944426141773257787228359705321666750510542136475101854615218141834291601527084231242003444516860810326340949759659912724640523693540353629855992343343499995985811798513442386913519765014584623122792311264568199827059965711782643141550740508693987593491611968454825631140935616501793168309274637412858669481970699223279676454250598493063865505573844510030261864518453182330998783603525237352121457270348381248508985183280199809480860637106329975921478860033491069164163432609612405459802181116442375812452503222841813053226660289506191418725624450517964619357474317764519908031972640502159620572703179288993105330192525023204767693567083818696019782061898449719237495475366617188120331260752133137322916773049052762287891458688973664712381343124233969824359552410227593968350215836629475226188299903947170482262326843642737465881577762817540197800845468589137829067939024924894140397164146878324220223718183660090230018891375979918863380408778094867815477308678925161896453824150245739585146614623372420376301908273252741574693098842697894930232609994542575692046371379737993677176990922793696603818606044573407636900622665507912877761603048047358122656380015543251044223515476386821673962817651883319556783679114799436422156681919653474861234350656257085109047103476144266188219163503990760068835794502020663104850181187995542542502416816817433769827496120214899261109017549589705963766434831994464608633306374394625766290868005965604208140129445307729340742674918172933116319381948749337825994323165367322534555300505486278501632542202574623699452047335356880320061660584342863582239402931565343935364547662356060713544823861706480338283415273171350880351451416588113069982186364408380696902046530535446486099951830341284659886025826939908269028561817578670578311934879404013000820357312154887816098047982219736421969791737524758140322752432165681034448558811992820061639821136619532444371771892708733209935311137006199186269207786297112947039706083828073592177015466394090257191282695970141769636855021636890192288542526519631472068665016171443097260097828087677973276687761418347167502163502215304552722626649427209074313432402656716724880891812258204657992561132466126239651322305503711100174379922582233946530959882483791647716591641267490794627773434374803181609436416659591779150366125445999662094536586582722974213979119844866413525515678226281082309885401144335744361632461352016613945312157696052757434295948414614628920657243886712090264298358003451648430284380560706494580130073491213681760870631662209876167187062154232345367416722968210425889415504418360405955344503211367910004225470784793483678907064026437769879898673375743485223902721255082478898960747482255761018388787128087072557279970174214308749061279995632157560418637171158511410831564722825744045643935678162305390982923856099834425673870551854066604594728569355329132702921557038489880902215985166107886099424983064157636336821341272929705281212055201983298043991381840060813112778049653714980451543100393939107690777952512079931885885080278831068612652763935247113687797592511237193096683289421214693161226952131610906977982907788835060960747021692423991175174970144834621394357420471528692193013155661474956777513980870659442844737619959685160242823942983799268915184548414191415113092574401831785273887305084046353030815988825924168416709228345005912492751942989363851878391182836751792282337508582494720868218223033279867700886296140371257793338314533579194709120449556326352708264162305410187412723910327868271164405270190295207156435553580634538241278960131334898491871870248839948547929000954380567740973147417136884369879536827152530985651386867826424191899813217909543391361760716931845588276933094695452266905528862208766239338613564386181496118062089569893844125269816086037994036172890854780333952324856287268226341875896185349472214390822364403752628184382550120068335817787386786531060645040922192548110819854723147415752629824712785842640939648009055136585329417160085306330157726113124042840389808614622569243779534821848513629344095252823391997935779026135440228194299212610511159422172577312810901051760973265219800856529824591552216156911968403812373156146405660698201992769365187803771466396411518639104052026686301107231324165660033984240927046952872475721804422586014666675330889083170626508491870567078248148493546110662570888564782701279889954023088263942075900924166200521666429565316380111311010614752480888566602265326699452659414934557963627568441980722964803501570332170784363404116597231777292065528497780319457583951109598931881010099173240587685623027323091862766775377201945082151199973890176743540290039811818565791117362142867531301421600581406625310015285785088932457576657672421766137862966714711941313675797896006404976441045933480693261161572429225091922011930658403211814488679237752287725486153882535864968207911936482333841782633548690806380799643318150597404189782053085731812272412773914258890004789722314671766618661888234642600805558431796060774803368183926563322319794788664353948393440643173299385310622150977784999183840582727293648933364161952288597169974597604347383957424073441489605589749790565955899454139293843397550795485925137035198149641422465191440613529127024137351783894818597686331422272021388567333232896359829618142480658760732220455288217130197321932091828032148346664560240693169046238572498234308001111722465586662089895699936767782982808570606718520223489737966933882452035270249734723381958906646936394542437935979142731309422492508022557216115524150040250432029920588081756881824742595769357344933742895339714436246380856029936409198696799369494742693387275632523930936629768411692268765931502005029074345594582135180832585271237137181785898928909185451886266623129625784808247709856206441145760996198529725373244616799888885828033526361186738060391769961811132188393989643180215519509268639159948724557265041018031790603075136849165686072294113391379754823723782923571958340742920457615107286317195771363951711297137715663838709814731565839497167810073261124202781380843813579314716954205778127921106182111292142086141492271839298121593783746555380914920689146741419634725504571436313751352249753067166267133074447117972647132698942594234448169141245677037240330229204127824001578742205199187766129261858333904080996476587715140820977032286478752195864518992946690110398962264011931330392397091383604142181503403169509845594061061055576122667700805448430226404088582518122039697239884391003980775718241435502112840776711190330014629849573797585398491558151635246889816985015896272757162700819498191865696468614439057290832331759782443518170863825409199378099134189205204974206513373581004932871265036147479378524574161690877686080074478984773750809891201442354753165848001826700298588715913525757535007414897085756964064456351420845143473976434830812299720174297013614684488921618450636408196174108322134651796549958965426048802974378852680403249054847264665294950389368695593098357141301780528446942433531130936401512704294857917860943860531258270830369262123863890814366324572911987558937650500126924494033827287204521227253615821900911206631635288766828401772839672523024715716070617364686603142677448159761506351364170132813179509035083581666294597238293016929063871626164440896609345009872435618453509286559326552726720113781230620854000899368416098640823289897199438493215918314140030000717470772126252014462797714645297241800037463219128920986777834327065915633956813139450167612709754149276689070940249454287346435780972381534805732293793202048984589593400578546744166815059137065394555892356269407230845433475531975091231217859128170636447934546209141293475877402936837758698976238027277300638677875287804289095378105869071675611300706532628760088009213013929766836154450596464015598230504737339658593695493040670759770673909835808652428618775383120916035922740879642596564720595135536167094659146975039071072607005185090012578603677279318018474735643543490260481341314069391279247734509006517148688331626677301587236849929481823147012943004172995265216502343577277373299364347205417261426984721708638687214435771082022239568778366632482390812109514598175115086856139680327885280182667260224981129441622457757299273013956076402581356914589653049769468093036542569586162099615779943204781216929498924636933524686857407569248194210597591687256861029847072402738006052312607719895406831107771832832742514882791543351066453597452915437411388238072364027451381823962602072557925030109790636591309014410441408026314139609617311975857497579657944162158108754783924813261653484026431164312067233041117052863769915703117046312881189903413516254800676625194238348247922506454032171838254719580700027692154199479891514793716645363577682383972303465453063976900234308703688726026727417504934515496158134379679080047399403358982561760648854575496947770385138808379605569129438657697803825392575944639850637608206196498857526520463996159122730696616868105784283316170971595239776876193048623794555074075214202920088598856887690223825468357488338973544904778086537032806986020986703698531513881800182081061561652724404432974428259509318498799046180623478985216025241186066964917599718916991159161035109531363024191943473886441739368245263260573247484525184129182116815566970749574945776547786582828220014079328817652454592567174220281319451158293870962410728552815437686043269788867818150529441561983233620857389655175004336952739022205243702442708828749473229333975299549415825681281300294722438963389903826869563722423299356712180266454247472668613378351107021194040552748681685613244859558918121310109866862273873404260360759707153169329688283973576666676514044330842415796782157657665442924970775857153158422811107767609058606773570477272723747198371309259099183779952941069093511343118662188443694993176780765802653111952301111366386847507269400707897417032168168646571459279911782775370227421546335812548886299113681340668306355149655761399724812273676741623237311353611969735997262909622421292642179009897328851683984461021194192631692375406803304862651857030332736576322056770083616986865461449314017882216774291277153607143508776191831317425574980809254003341944677348779566780333403255371184927861018038421381817256560168265745799399879100545772283435448460664496320263661862239380524172365878473631101819991236991645687438141475446192435398573960484851788672580793154985397493181277704584751897769284502566577790057553855314081885715394824185975649732929842855244651831284511580664067489612302406240196683900946506195858935084042701567129830624858825147771820467920183574576845308099448311606630634463996744194959980395982600916712495627218665954200036344285502672670932276025092608089821375565655400749050687368147484880006201638217215665860401109556726952819957955556030127446671131154479774845278499974503835465803892422696578336267269798540148408992520157805242150771550984025076644641210531001912603407651201331965449577403448646729443186079520198504083093732146512198676379580562679536443622932989520113926193807585681988266174644895647005052750565840154285870218201023384499880001259029181476548700170389266116933186214570933016374960032973093489120763499328153034367244084569519673246052516423742282119415273112951602651873205136473039548561726820505364190260139941091292128221198237233661012624453807003007019292756171373901793594728743518588128517755660607056405678801678455316821437269959639372459676159331154973744952132449553097700699579041358280484010863914327481047478056180121690820219025227043425026056072077094034415779984917193987541974807003244661141873321521341586778095900782747172884537838212711633912001221395395348854769666241120794963202323966020202254621512060379913709295770569733203743475238792466076764373278694202590223005446816878586331837208125736713253486985068694976627488551244195637907592768655621942052033705116518721910235541715117789458960621847546811647136351380903405073606504627636976739655171068736646411059042737223252163469495418854562290948907679496147510265944642418716915892193200676664679378837168407857035696020830010117742709819989445178274517011211346588310308010276543816787599799608936643660053593436712180371003042345128327186551480764283628783129833004833467129603659684725172993425895485292132293733936291722465316315570640543779345933823508688153600959392482551871348049226324172900143570410895574232977362226696033034785985407223661906980152728705237595747755586897478058387001320500581982075280453453813274266735838705501168178170992748954839068822277684585108227629261280129355237040543880090387514398837246129625454502202204795605354170077059129479720054122152847684571367064509226001226595010614249738509281537655189596201126022707693126265126434658341830334434378448985814249401464653120820376906754611366104004649666043667075841906404619061235547989807401775081344994210316064985807977303876239064337616311302412721548887718528163468654455207166873120944821272150639575116637078485896358177690481606212893997689605601762101864470725376614816391494972408528310026706061764430143567912237949306982417140650678447131121049206479505796897975531897000919812033496427731230099265364648399280908048344469666419958729588146388534608742059564685070932784234768458664456940015669554837180684043042767029852010634040001452079721351981190149539512272208409694539874094613103614379632099410516964242294662228245312161723301000301682941789323849634103207587751688553314870612259266444862176516671860270736173725647509537020227557589853962085825043870461704009726527847496160066978661826756871756895736613724327392711840783313880211781471843273113695458777205593242546368561813087494218464458202744973999517729669892607274901814776123859972706965710480725741234051136214844622049715542617854069928702556019290880853196988849279094326918089021302691439000111957228436292413586646295237679658990060993168401097660395385145877212966576033485578664904079816354447748131994605402314047881996303586785601265753540349025069043313633315288657261220270134923227875394592854584096203103267982417384608047099371051029314064221765306791657618537180070586696246934792133604527818591311088916636837829718012931462633864614833175608905295793474238708959950595187960441213294071748141451775324590017559532476995544019998848197041552983530415646619459161810788166713289633440839290773924300959699342966835691351208898193713202547113534393021765548167286249325040391327617634259053371829035460734494094559811282164673344958563346216894928610694588316189224024371572921670433703000634520412245584387252882645450524758974611646243196311241209739093889373297258379280533966441982513239875035357323732702790205237331168990338059037451959368709472756004698672053738658633220614441172972683862380189961893124321751948425171525774335944139894599779953480252167818311417195369726883252252582911576843889003938615837030281169853815993624596902821148485817220358989651862030566628776846168865895899903746634758039061627825150701327508196055487603451121992904324111001175542375712183089707400999926393849790315165807182524142479539096172545820768552708245230002081034301667277526402991935708577516138528496989635196539325783880869906213490383882660950377520180355036563944778720904246705178901900818848546615976688470204121346659160507580866545232462495893051607816157730327516569613172166469454457832636954586563653603022943835882256881211763975032006878881913226037884302008984270986566950590509863338000581312776647437736499646841505875213350535489062325722170117278190397529133793029940901733850326753916556897859209454689811172466030823175446664926865308058567813388234260919174297625679336831824334873665439385526848973229981442427803300031716531113253723335233087512207255777262919532688667660249403277600636613692594212685511374451260104364427214247048064788789624933529083339092075479597463251049664315763694046171697792319151866098886738428540800968305150891117193897149241035859799378297695430933145814767793254892328670668596546325094616392449718276217495809136762228565021678367343429408499106034958340285351381762772898995720323679493768071174411495772825038350948166261375253274600044574854095529339563144100159104480702824997575226852123239213733414161974150004212265430944095044295380642083961267345333108718857131663912628824783939900192779570665922220560741377480929944994389948954653642734091706072332449769402280369717875778916212391317657148131580432662003598565443280087172012471257009403441926466547584993717344576989028968638913596406933330259954493572381133801792963003547140152215941668102354996761153938921560738338370266309699643318641459590278265865843933533304751101004147826349237827858632800247622523608794039328937088914558787489697729843480063075814129036393371406944003543062358717294278080151356707052246998925773719432494867159334513638525345688053575180245310633136607583020111154630536807824331876935145714622102394584779016122193922399552229607840250529921129641116418756516484308206245961406561739242312267075890060703494400173809601590872910419747107087579403145722556595989856018592676896747277653807222517712120848007199994573834317539747089000372010420528588490015684544841583381677450435975005908020893904037076620184105994638871410847677793046426840493868676191450861802724698580521283320677719365261028334120594492304798319217173077583390994915037813793770016866770121795886919651438009003237492292285771556276452944196113461513164709487762036107086177946656373224022391473747743796141210892642430328403180555659240005233889935508886422344201365002058085023930077996545400399188885587869952513912637615395586305229612180036624271968982010021578315597206528321826847315614492676574837023674536505338687392409804703621012128324747435881250576785929818861827672872786264828645576655982593788833060820864968927682423107390346903626554037185917924571518423681977676350493043451484876887288936158470466402157452877783399415136186430832492352376273692682867919312543112665281851796116463831182289051116457390476020648150596883919408550228912661330703144033872486424535756496084831321026262080536010655015588715192148382147703998856966291775415852750874548741783052144361957598214994048473610096856346543850210041667769806895446272247997469700734536726040137825111379836011881788208756438737705778006524613431182440718870796636699944751728014168935356226700570033836885183837790042300901718500927872014389854615191141076355780708750179662290424939706260164618790083562362765901400676953104068046478234292338590185384454526303506601547886874526439090130901924657927048349683989279311208681161506966402306471432192855018177416315331534992058273913301718701188905889082567406024978608426548277401421632659032909734819889440011937620320531001769789496478264207889076833362518964991173531950157710965224837079601969743575082483098595027849345063078801217156016803364695528004143199865407729515102634162542025075624771002971010437044899519152316644081567082994512992790416822018683902638583189456167098347177560969702444660156793141841582190023076711744141374878460006923940116481375384348555231411757279036811750280103809409197239772820208562443982131516032166109720068575886151964281617544527649699287848451878299946455579550119375776461813902784896127710877828351121732841225929859414025116807239870828685033072600087842982647425909619560767170089065935182163135524887256657277483296039296027673303601850742083335990226916221386900980588116654586437118689406450096151158775708736077584586433365123888133691378479502516784937914436385711491746903727787677679624149611892835950173998408143112256997539383222773928265390267956079995538223291514049395314808532996294576250014133203225749483997098133205283880717241694678309272061147123754710023570050543378584728128741761729163122885085854847228435172646909547318717008884337726127628868113443674486985003508815965035844732719918227976233083894841480954019969209861027824378186701307558138637046369463825293331801783585475762973659791371063388746444117632257983717325075431383448322417216551682128301333088821189297798760263965608374224441840366655250187978045738222723060024043129303131572040035880154896977154374954882758517145825679151051896195473062859942641632164733198030588817380263585086816387996441370751912363586888331356595673238200437390354906609287300168531723027627423832980442295655635154713837383114045548717930026085361486060799354206351445599512038260208048693308953129399165984350832026214038675061587644501676697100488739611012570505328425051419600642063048908308305241925698573961413252867587271071363063498490282057826864086374624698868179745701980693900259213060925730776653399635354875996268320034811308142108084652414556000246294404972094534868878482939807920833627371640728825776749025928463450175791491738700924807627949735485627084630948919486930019197146231506356994398128169046531108380359065001284916041593761786651915913014992770232869127507160284838637408070275757308289881626151898155887127939154901485530035979545913879696428076345268309354489973505551502727879779561014662183732913085276813403546444399565562369310926768540810454648154519895250721970414374882969955499992326418262043874183764020190881765609865473852077722963296245645467936108973554283264353140074057367669783852612124707360396967295303004093506529804233668329041000638617932453268986154899458765117115808072262394284768177653880279703454296551818497567510069000594209937070810196940299363691244147862594684976718156353752841320834215712082316643511761764131563064236617807575107998622397081434133043123861789801882307158392535662224084097147819408454170004261119896187416901619074046921895396508774193337211082874870334697396866770343347583832029008544740757395530260148578559916758201237187095351359487620768382549069965085939955216326468410985847173851322715328170811387106414963853066403433017302895404637953163662226311316414040666995019556311980511993230141675506980138445450895933655800626041915649770582244623297854523903503296149580148910016692406353646717553250633871999400354847890487784139890348209190399881923073454482375218679106431338539691556516686988215309227555292885751130923699302611138875945976973924996718222008067261244671001015523217542583458643789305808418273750220112677557149576428852671551075077768099805479611004242387196296330733260450814311896283200642095192220089182432895131722371160934145634661906104065725725787462073772455064351196408433304371267922465622299546884944769602420992193776050244568280047680756233644044338453617048726875295336928425879487881664444696356199773033314961406522451016305446566630557928500872136543783160908496672124036659809291556328713851521314095767093829312749117903219553609306201257694432791308393865463756869127851442424983285672173942682742026324667278126068881689175895031882761928924744645036779126029363560597452652165641234446760280904320401134193801448725885188711621979786670756396500799735672667528453835419351552196283545853424642925612245616663711812583415212994371790828284582671034924358894179077625144518227891108773422578780270300068012454237279654756388634818580450020980148580344210295193122615738629829426197990920620060638718201788122096870099803023318714396068495117798744654352548083639031786546531261012199081928834902730350357873446894141927449334465490938168505436399454904027069321777207742860215976591710791881580843992010954474984971192217823225851420988524757771959128460474065287344747531121175231225224753722185450178496682410961274879458314075931830641010030485795936832846806460878129295717351361384009136524302576544503591572572338441869843757055450076835973761837873970113356796987541891415386726107824160326788171280831655527543282870330444205839349090236301858351425339670965874867968059230170602716634090327562321635280629535512388300998423686328773987994884061723247970020931032072079575118394567352378745142588261675637955643806877065634302650747951759375727017475433999388618846884923966828497371853318046088280501784301961687879359524857132819411463225712977612555162225272841906499337576316572469876345718847507599345871432586814240177818762779355860171126619941120215576984452593583783974433155767961966037578014260100290713783276642112245598148831740905840920600700191203561444191020029810591236830035817737533111903458556305694099637242493711421866906551752417567817711506134737570162619745570867062970320628550709346963480632012789379014667423095439680532578486294150682676858331804640595491330607573543020275753770899239727229995781407803286547952377899851225331650108924709129562155261684585201082709469299574369198640181121586346131076413463083034788434564568354815180228839146248993769404451800906286113492795677013221751504475619158383809390180753388390178473888011302422083666913974367493200663632845504135767824837155763757255838287547785342486630660723397171110017207095297446077992519570681859876654988664644315700430054453337924048655020203242278867447190293169367708536076109651938599078245655825969238155270576828370152593921328856184182288064787510943418563856495964447043527649870554699113398375801379700604596711172550120650290193253392024091337856140381990349264961661493313104642271936891532800028834985747281279306385371763392174894513611685189981677097408252067961161724310706355184502004118037926814592554506035772188894627707713614415687024530300717338465084896359811727055762959466232497219720709049502011479898660877548383239250848292175651949758221758663617294661900360786491816486580583154508666924573721527160825145335368924561997676008704934461180870399687415245639496168010462562090755675781602004285201409662941778024662534176436835415079964478070101941333147802521955961023975900233700537945195674725017189112636596710833315166654211541651416670516508510624482651326858942822933673779991610890016639009377033560988985705078217714137524502868490856828239435328207602998942913534891394006378279896315700357465113398830873336193975626465015525262360231144691954300100619391747226427500855179023136551354698691765262421697031226457645231970451655302251324314922220345167764552468075693782546344398510371870169290402224718993009316003579494324688772835914268472144578291109321358858116742365263592969922420679530045145095758778350203441462311051453696028258205800185785726345344016544808961741988248672265834949663423694428656900301517907459230753973582725744621160144315487975083689415704967249264401577552881862737327322732931015825292137919713080577057286990483636719367650817614081390173078332979803393912365040089830038149244606668984560389437712993801407916172496013354226858265754205452128957433544063481982821209735475898162482154611813994000165802056592306456835938133139358572962036688858321234415611007561783773170911180700484060774539636975974099383081982682663308498584099039180035092337951476315765873597305793225875000695188904257595570896898437089096406470822507978723356439058097508768642811134767915113435183643837822940173746182054592303579653313436189598456233949260797678895002225545195510085986215996228898480979240002094793841385131691832313290314042484809706685000566542222177770288538868116442824032980940893032835632944814018041053671329579877472929285647663582644706339961992899123093570770695591327910874433691103751775137651471394997733932866384328376926310243005317439355185594832265721090024979817000432387551880679670811446326026792168807197119161262511205574284483954415985022856516910203080482444298584493968462235185474102974101491873674615475791935713873179769415390262042187313161722664017787086259119458603844993302631412252044069556992577069800503523691366830532271345887807048932292747036148820597752088292769241021387172932062679601957605147482500372083536470193888824382616129203222623663891366387986447597657178566717873358666028695863772254405555933741444848951354863873152025544019945188901044910430219040905150413747098913063412065418506774270637341247347309991980989906827564293396160446702312750008312655897027895882103795922927163517988005017077409386016857739636973998206754754809876235993689105170655607255945773369122064203153327696533267202121496826420822743035911911582147476013989154120505571187930374858645787319914380666472122927896129484376247463912149777221122292532786687880640874395510777915549152697147571199779902167350158505116965982244449440043256453741239876688228756967392045542731875466633007786705149388632006403745597389443563137593401753484745331335224596043420736788727023907501236519319758811289448977875822139844698360859713293657060083426274608515369516930063951052743257012838612356753350452815886631111237669640304868394951343667571342556434559498840166040418606469889969435190171608569541808696019984046307822709693259895837221689503621404300743766732538627511669812060502750813906439161383910683300760557386152013556850101471476673706161861265389743247914191811865557190345565988974313072522252892617475170933135865693533015005381048317017960305952089432754727599548288448241734154204492151042301169549224620294558270231766287775480268073921857641184265505923377901614300521766800269392253313487958009379477782781781249541195843928589949560423063519704241457660618697265928436702216823753084650971621219980216628329893901263572454996602601739451113205633720033451527171383249154773839890174169738172589222503553788616315143032393168257266007113298660919542848258035970833680356074738599562455010214641638759407071505830072128663538809192267885357698667156770318878941563638742135078524426216478185829911633842404408855498933758881941997831224434727071041150840471286689454096052991432105132815091386593778499561311291144478586733080631854354685419476438062534382726173668271506663291688287920872214825794475854809219070866811166210277715205561908702861583997794950528380804014874694610367089689135403762483761887309933691236952073973984982539758533151241819186994995559889687736543544028895297173688915604579262716291931184076427290910714964487704611157956114565059207595474976863825897606090946841874478550466449287410770909027050474735599032617096075882281119907175298988703058117229049619833712824402126063067024441434989520521381866759735300053099482142565330287433200346631866498424627823026555238571446429187756440370952645160417873101266056291716877207485646205693941712206004460746027590161046100508024754583705380453280081563679341199424365318382204021220650316882293830986128421268042019603459848151084588339039831483342676213533065398176950865017496976645112119044503976183463263469717128163317463320030158112440942035150064240736914642359177572657686202008728483032717075740243615616873642076180520153910846052773633739761110782348567963027452804184384499802725786497721522249219731630156929069113578958048031543654460073215687943259754952937285417322293955850484005075488103449266873258765495817787433765612634552109187510385986638541905128374901967580877253258019568540832749481513177877129381992017369377875188495331190778764362422152382191688847365669937956995531974109404089591423786865832241453339698144626173867830624615385499080165667875361531381519779987202204853363146712594362987097412324613955009318899262281012293338649030322423794118288816781215175028210888369138593685538329346792477771676037259922900585933954985700681955785908970404543080593800039309728698905298344752650318429515920314073908332900570401320915215538828859212137988210705364953903039440532625139795502581640475258105944960115210464886320708705918767123706813020578431416585025624969680888159708787145445684997428671971146856093882261397103272227864299546569478466341429196500671674057923942775560368011463340363287730145089272001288227996247173464674193755206188128709638565067479734852038908665732547193749244585745050052441449354337649881386402283645796266117791979940607086800811233888131160668496658446111690126700685503731579301516871904380691471580950041489044921595174998158575637639022512331341308157548014252436410468715468540884859116031894609062261307356698554233618653486020671597269088897899522475223690252179832974438223144726832434133208979704270894476904329704666758642420224585247259671511585527772561590508044036480443610876158325639928534249868124055129516593234518594027324587465059636096463179744047759091659894001413152516126634555268633761494379543378360446172617032148459605441732732346165460500742355666642954584318335874688268543272078448541236306778772107252941714588954020322657976413767561009421903801360600533837200631426467740813073015104832556673805526234287030723130030656162447219172198441008805997962864206190455746996008906805008755929245499724260652403492800756478100520210377120760132339718590068109706566468812250297328858772725227520082667546267009568646790762372287960964037340192086072277697337194571374300880256765354397659794543534385071455966216257472871520030343683993478468073730764525691572297170634643092461170036985944959798241521230152117622097494088991534007743676058989547881368877494346331445127707856595003177480574973876187623170750968308560738723104877297430374283093994097325726959197980562494961708001762638905945017262275950866977768187046006868319511574721675141014439663763066032139388180230595054697200807584778266348805021689790478570260698175076677176725337658576899425419246537737974239838785635869522430944993112563756241525951994009087306923258795879671879757264237200212141638076991112932969559095873871229066587062632446125762582574665851700521641797411423749370324583683185651586804707420697200432931018070817013114391605599175639186903624611992802206902488104154834268391252288984978631483179104177403422269814319015540920180874941988291542633135671218091180286576840398278687074278410836044991542336234693847117598595897969750604071482465383688790711700474538054558367200814744087868689514894028289258238244134887913087035468533248409611061696522328879621312494911733192435795698687278990162201116870698557381587413511825170457284602437902663634068821476148072256687520633260153371078642787011608580748540396359193904809083640755907234697544914354651822501812336922131136041670313567916895070839086076431600833362489459524119068307401916595919878353766712220522040686845689460571538365369950352244338083136523470090135016562927491454239272890252476906490485048937264009250387382285700430498647104646369617330587641775515370608612634680848182545451390894499407716986972649508286330205258139867135632318549449051971978413626581816917058196189572914958955641712965300941245961967506762775783193115375840760784729676451858914692715361828397572692168059672433653898463176300270287240776530831889365102468428814266607504249227931590585594067870854091265663201901878056359241878816011003293027424703408624581162972679227889377414087819662832279209911108916895874053168608778426492032502228660674388699648173681831273951903313813645353109242173305552307980453168343189866743577557668095017790194101943464025509831288899735667074967131731728874322044839375940628878517329868036820834531446499062906593903202966459676940112947089229245623131735053266117224478993293249394177548785614520830584975600956227568460334564791447375112178399972032167631548841646886861987660863543711109241272968893002786410221730919173671631746672945148137441716529858338341375573731802476572277722838613347611103761740090607589861844943906933993649632945938944875293382939583525560908487589564868284952558573434401719336298867454930770320213347413299371249323513416495688964164443887039640211624376130967003943535452926140336463943577368879935704684622800959877297379105027617876237348797209236664755254703749882974213889015156828101830475753309296529221965996222263370189518217009015376262029104636801202671806430940725779887730997508127201209114094559157627822100740929321610836796502898128236268422887546801423141818770021631900939242906604309269230380179443916554642153204168859519990119894804812950646751784084114704362261016998208466913182186937196488967703424275094086896277943018949828585250310889220449314086854995128073000052618903139655163377766429584084440523422839657825627940641558955397082927215607541012041361102290535844360510311290145548277578029557573838717692542482708508001090480368945967161883104875153234178415334476757858708769893058964286837894842726084405661058810719793884295711553966775103740241878363149576236233876856453115380536954889084621041705387593390368976646924961282101910897115462305985430029852663751455012631322041631517841959377954558598253562970536561681980110050378258610755930849206333203287374711398926110061280961551586943132772448212877964507199582116139535971701615716703561051403632918725299240359125416795502027125011107797348116378128419483105431536104370207171556217247037066968506835304041670320747191004481619068257911488509158681502790646981498573809626865454464389408734639239320643001057833679676753897728528808790627238382431445225298886312570941695068792003245405179220510006679380691716803429880744249045531235440748474641233583229136745670250626414494986907246580249326097656084144245970129140350647683435261061028980112897444053935683854369883542987149348627948476562214542361754268288345847757487395979368803564169050255681990799983230394732764481267162739089042452022348034703579485705550140127067860819119143359248156801257400150192818808682883390956985960520893374908180027136524404012154957875920139960825963652205656700676583413960201244197977007215064209186468199208692940369539078561739451984664443612277196555742715852728822953313564837370836574057378313201304933109757048421933763635190263372315133194273825571447354447892052158925825533457357658595261972824497552349492535576422912459235020415903375014855739382378756545834252614977844129755969017955389217529581248385910725911862997377575972792004800870805904935842324250829956084928528990531508925063613482021249879994383525745542127919166707839087336389192391094930528538248399698194320074977098027961303725965817942971080305416512036657869918220182025199343402445425431472601759335811251061592116766652021946094168436065124017568286537735652234003749058286204137898994376509652233520528496589061348675776135753564811531732085989389321234580890736566235766372719007789574205174656156294081979613489454255766268723874219212266446286702141679132610847983252538533892575148359768304726563525014895415867468568819140070838267327262225135645824624534664120849473111349355416994113583518625228940519196572053058743347504567384070254612418320581481682061768307914090053311658856494121099372349158566371088433762590056754669180245894409486439556007750279819637016979300088683229468074177076517888859308187261626452469706250342491732791341536664417842258586149710309510721669310689577356548568118417353200063209932455344750587951782102777770925767898272677687302888156212010602901557590912723434382068058155940910512038746309609884194913823892739692761317646439567875369682796959858262106533787879377881391845234409530194098364995456329735421471681416684181265152938047334439296909815095942218147376228071744707283923326755409765353523741937384052624305545808625089926502189044788968690061094751928646939331186884435818987490572374625059126521050979726394958106245671443725440242988413161555909241319285843468890568049267616120108366919201623072815200138274002539809341402615665711532290995764843143529767017801667564309097206618887467345927688718701004260652077018040655339578208832879925897278394618448643876400565205045627297268585017489264240678348013557779116297990639987677566737099233532305935770834046779886314828405857868169287313636746194774905504518754533444377869006528638878166256494283173367365400195760194336883786886527704916713324638550851293148581395088743380086017430718984891169079973347522074402132547382464544748209998559803874793831130270886726297164911381693729416696950502608740029897584577050555145659910065546311734200960646793572363327010483531871463256076987531928829594569767747203110751605835339192813479444935226598872960310739466129697213072626703107440701007876797200162425863240872909059305704298921515384645746248108521524738371380687006669856805459749689602146077188651207901738216020801079918600046048618208925536103923901898612380336589058078984922453951688530138540042911608755904161341179223838010399605787573265795005994230376421459452696359570419052142417449530247951508656759992605310703010724905631296063698414151505069864568395993206029968576967930987636813940400705422189969882047225363378159438782677081328792485413620907052714282753121062537612207139451880164000461319110046612730647863309199492086933022703091827452784416678958995097062118692436975735683746387175956930089000794086343827798319722318851246725290557942727872630415534110105875997575844787060090673838171601158362320699604071422768363825650012996955154731142730992081820562580434357188601263910900732255060142253571210499307292158121150489926939078878270311505684705600153569460924028425556963994719793281354530527991926302429258446672368570464081613851441970145859772277070165869270540609353144647851570955046329565784059530942882146674340400901645012238970442215636374718929958865638144035797768298790014594638037815138729329385925880123224888511101398257504146871732056658761683035775262992822348598592467944996400066063194291843155720835093009124696391983535075765997508209484492199370533883028827678018679024828274256669669961228412817489185436399309420799771155082898882609823690704195273328798393139783396252720516158626532840250993632598113667124102532939651440974262705132617903151115650264968199053383506472436646255877625109468489903296585179311704316042246074690984815615006505731867477799430930909218713774480024664662993742425189558517074229231817086132043678978603821970161168122364658163696512367678182574589163216786438745372240304626956786428161236910437255843779365602406376757702197540854928241957211899321852016499195890273212375272981905543451396929494776022669940580439084979705916395838251720319876893409066344262180242817445459955829804306557429100919566358796219147526655808323940219238218731314352831677433986489160850963658500707109483555212164178113022556248948867006000935518582100543493220313994720394236220991261083274456368560155467876050818069746420324292314726687489635917828527656347131560533146263035503252971499889003918444302600469200355714296374711987063609249968238330236936837640229837129831572717953419470860265563221372080546776302267426369916085985615507030363326808547475425851359355095381039950209937758238820923900867733199796518580813601508608093932891429145347448196355516941911154786803900243556760752755852938652035468764275214558722152952005378806043587511872416404181133388089683619495190526919234028686153462628287785154693947267788097749816154028850706490615238534591185396243286172018133959129673807360513119004641048971343068035950543681639461199421943990702425115228029505439134298241058224284293098403766829951307187588287534312418282220460134425141979087839932550198047314129339914620735845481857744711069678854710418008861002956385029283716984494151336021393446920478768601867281566463284436411366920300252706126519607273753777396886575813273332040174990927663581627736532345638818742202838141246660797169157259669211818392350448685148606095450656128781047667104642625436924346716074272167444167274135476038230829401571264341424697047173746439167652857823306926777922764106482556061500678489821148878664275418106565813408115921856171142427077081176156213406378696365387299935271462195821395228702928753192684926232664124376964245470514813988096521642633177096632045229081609944275838595711409182544607277116527678440888643296182156830521317935817834174671665841049918229981816285945907994257290773610402172012567769960628146375367248127154954469158417666753993961522594220730020829375912052284238403589844529846783882123165459723656752062766723051551588248766338810689435481670371448323148726331827763628230256209695494634959863968461101498040433294651481763544703257345464380435708199954954809613456853835486746663222837766367059759719429388370530482243149429699773466044631920925737592762725689236077400572298922702810382094576149966393257813915272582853977607196781221462435447933976070839205134859183613361696054066786067713324015504544580722261963612991398462244286726425963480149476944643685805197859633505076531761269180912385119959182829843437721770633032040296734103367110056042319280983421709704673831005752652045400372847640087945696441187324268205366510762434281122822021253679771107976188311127229761440228836628406772353172468385218059976045892127137812736657291380563823559341817420781418314582409664105151861559497883941897779541654475138781331770046454568211446692764469778237269543149857973101571801397009579607086956610555038603207639150082051295328609267487164749974386627787771099232707676271528383075356945472590994766955675292187760411950143506274294542329805768442094797111837925608213889280375986519811781610012112920151397698003028386031104762625091772934098107980220715707578303351817515083007387767224583584276970536719069615711166114721519156723258506323800125334771584627923571461251243412999868607812081890351515750106402087934594500704192695189204804386219341647156988393566853161834687244363092042378675993556037637060052106921401016741996098937297172761336829312195151222091353526108223764413783619765631015720303796957825129778585231081070299060059931741423673608516487948053492857143739733463423319560667778504884276678841022551552670639005264043857641393322513484159880216590351773099450452414807594976090467844998573780589361879871797184692104430394842707326872608067221495549838002112685589360408653154022340100896808922230143647351429100937215765976494493325860540704564677955034552688950519381328233464054021742718406222988931023254797929294010438541601395236034742874169049030556082380983225078822400741833247643034729224817419433410116888859756715122659445897993429267953199350763433515149434179202553890682370924264300861943825588657828933146531412107624785891246355883448121421400756343860491134947903556035572375945962754180571679483613266400815740686491476089939431516754222912328219730184387893209370842838086483533196061894617988032542554647202205723488011145891268584978254757906612456441017368483477882507909100002280701729171914313345368348138085492916266301378160988313265404912203288784669508120783318122429096866309486345240697711429762453141672455480932499703011542074107718500913824039780013035512422698118259158582190154407811293081267515993741639273253132181026169254068187109841801903244814626693382237864090688811779154936473746318942723320738977778842577967240007798906786805144454583124484602867846322055519882913363284443666917291255508581676232847505209458780167321251268921241942753069443942687634948412730171666623052897577537241197030746613682351252996311894405719845086195907289456210861243692741821133163928805581403461776383569706107646728307651652602799183628184933999844986723119558903169171985852242405334815135722259577996514269962768690816857101417069306637598316799802225736692981822351691800718954636775330564450052469674141239509326661918500116742204916656402405614024657790371096077559760716770169712653730451922672505858981791763523617588849224214682436207726031594405667721455157474028724187256329011118857046492654583821076733569291968075314799580545858078098324776925561997564625566659675609829978472158193267207211379709371206268987419677242692750012339504345731459183144661041572926052658448599675203355049117251096370634610446414039444533930645816087769156082610715652777865019898639855998432788362967599624976562534624308412643964017813342140246259144768462030996455768707493168160975814018437671950977529682820253272374055322535118738668422385930841922533301875009262415853378998719449887172698344596635449458232679696275551124965669953461487744796454372281137299174295955539013059024476481292455539977772327324196214687690973437794793660003174987846015904761822591771019252561960581276258972470788988965481161828159742381659763985972223246002147612096060816187781663164435360525516861397525576225936738676546921019581184804645612028844107335816507899307226198691409014562723532679854163062215409980111132663137137541534606989584418769016863419433099327983743793416752691749607900264878935825988647812311788393117716280358612405730801556398658511218704759901390186182888441549179253848378631378732085601073621197198680722600536402670530885260212669131948445318705047455497880459621755486484951812443283499620278198835640023309138715365902025823150878775136073025717567453923387924911240738442732076286320220334300384362832299680847523235207718400642950981151350486156799801468993126719954341768427317642844082891303295890562392422659499257999538137943938895210399950079588747258815280236642957426762298780745925636136763263757980941189682114980564101497014888322865266201699250211155754291850107031190310328132861989521148673200788233549320546972696189574783173597454892084189165017939111902034777226510083059071789347404617235724020117278227266409630789794838886828611011290635455040514088716790240035909566664085719330853465815565298166059380398908700970492025740792625924600445872594193277085079032954689651628351851985367336874543979120447065211947516628903019103688925616879671651237189206781748229293001222256356823779750173200900231577816899578668345554031112743948623366678381085164966714862492915035349110936533989281611474936390752406474524589244639314177003738066033730970079712478213326484611800595628833694472977805512741207571864442303765244791812840590828259472669075306133451674923553329079715207906179278001329137565382582877387323124197650222523974331465516982996608643070191608214882370742233052804884977570169231229193629840547577987712859472092579443525934132048049800299960442809823856149884575722954139155591683199661843242900750750103364765900698318701996154688986815140657278599241140082589646483195323907165970384361871041658724925968589985587576287603181383889483883027990783414004621339081041281666126631657975048692650215593662101214236006170294674703248972522653917077516491516554704946691978491101344827133668920813445655301664117339503100249501246235007567579806856748217184675058275518835129979074762530298744973841236924615574667831637091498552686820515773436741781783059523425918276383079905766391485289839484212814616099050234388552286916238121725093703685738995137427714881007585485369650383004076381074724126390687158318045316338190654493322000706000402948775021368747054640882404321555026476405962210953471608896523135170214696986910812484724420045641018192834295056854289576106634214415589828969909357674381831269827157934049578263883754624269681503273944712937375965942767706840502742885148367683759518437095535209744130049964909555896793613338216798552208985399554428755898786692466210366532020793305097350158524276927147237754512693297826240175067834245541467558944337502647482383620548532233039053735711155596532924384599644693725824911871113345280086069229716354936666326548176438813363526408022390861250118480765659269836455896206982460528073981494756810501012366341881832616144329625020157999472511280943260318290898474706652247441777003308264457409018339406713218546457080346016516309317261669028325442691161106999762568808787764356275681103687879874139218913669249855922522029370787386431410375050256465361086349137087484123388016022331397868075152788288744012730082631117912459339617388114627629125356925438340707393956862988304109589655574834143981619147296016174779855439189165579813519542773639495804897756722320932543919071068340772202802596784417653088813313253830917687647572793842260357472307887921326330413524619439385339758288910858209735876716294735472998667808148386270150830995402707454765022105855989310434521763879499988165836056881253657775081623557607368686517922657859883288757092208481268397096618631550351423104502853190262730453221487572587065231123140907149427329934273415566161506256329210335550685224697352030734358502312913709101825791395736077978912765895570314310836133786261472560037496810619763205537909660349257678758221175493948904432519827407819597525737564901018870386140263118153294053077194168626734590098018834866032782452925138798729266282658349400834410184873830187214052843078103321109667466980742855869356266134227306233307192413730575187362223482320905944875926382372249183543637865104768268437698414640428164376591154428830871520754073597583052748493169836579064861691923866021087841239582880248388501397015928202166939714068341345253417801413781967018160624739964812342200163966859824866417227378704968225860509919879015952362473200025528177040932057607496038600183746540706715194071586796999206978266092764374304467395800777971094270150252768033609533612974836860458555740339399106157139597242117051240123111022199013004267395767863406767233120414429566206137444015367916011596001290707765152546809843666549275394687041457933845656719629822042583511339742653728634563214387703187133954239805935162050810225636654189024532731799722986223890530549985514599401033789432182311056526842963916830658959316322701460770376133635744419181255004134260146708522443984905023629273140134890029403422483340869087984214407684033056007548945759351737587757581260303211098883053170292933131569346424906232143575493509942702844849621128929170641684562740213482789138902786933284628117203441669383762500922344412263634559351542865931907182734632689410346469072394765510509873186426818077761258888131743217201987883061358200831271839675292646606643423280415024882331578622773031827569354841649278740557503001503209325693897492990109914902506099211713729796598102159077834965549836413559692776703393612445967091449855323301866372151033846376687986621232008097844963394712064929138860889289500006535194854921631611875701469374270196470322165447764107359223115570299731304816113509778469948997943338055182985336639882596788534579657248334496661890787289250745600779936964707216703497223188310364727766073430516466364044683691776342021609485051955990205333969752268792699519633102394513609909705950658250115397977759043778749220603976167358684807724419398360205236302545854644131341137592016863536974691812630748609174988100107564987933141277829224008141112445636519817078101170958310251605253386553555341415231457105707164630222790985805831044452412194241950338373236514858847648714806557752090259010031311747502935757835448120558545620495901795257483352697628324447574003830113711504907172566751419812348561758851265383799862991449372129436365261464348726088509751269953844383711323248705222475854190999749483304520337354814737068055664059022844346195666658907476950662496067749648871763891465307801091977648057460952554029651110396536808787677430796235878501366995313302539094967190416741642069405573996213255770716211444580999450583631730588880982406680714402599696065463834318584128735512941967839423599748622033942671009376195394906765164066250365828656458079833262220067014940180791991351694292549904344216512016664106091026451256773399013375161396633993329808865727234358488609045115944196518850779791737767588578436548378098127591882588728590718862130143377347025045035845532433764832409776928700690819918656134705684422900990389440747930231948981982685394301058411462440210704149511668880566626729684818268476371606184682969313309348832192200635767378860772301582908526953479097667534140138227993940176109914674026282308528135851875367640293598091252604861722657866724092966332833915371970163212203442292088292915443231901948286208440933114223309471053306794780731840271825174685737272383322858027797532358376359608779124205790810761504382557206698534965993207995432691673547596957504191240014574805722093029225500413208780942441436698617459985419976257294457319739684976726020713547706974836210557569693248674221064001664217048127673461756901508635981702612028946012026057576470302219753826115793647600165613988603832890826673033969379763447378380635092466561957320461328608756320298294398794550730204422727241030148808826133708825833374512904387669252390553444054201708873043582702250701125191475774511212185390287822446799188254650816725582321397300662025647700919494976343525775737119468220942529545114330364392633152905001851213161413797298260668158035705910850146474606665908888340333411934006570818252435834406954787610062282707282650466528192338462954407053128318845899317426351963786537872604449618996140369151460594559008332512784118244124630619631591272094661699128325879606910194350387017453912758962341958417913698331244047904117345628995604158557660048972107579349834507341933375949034991304961421446562594397164331873763293348059568529383262323005343264248508400048888685638551742159832985471904570702394636291026162354466324454017428107912613397228427847950312587773337899783675660565400841999278941983496203838318545852052841252583033474079399112032187026155046085035774982073643749710954195979949871426167086484692979453590599389724381970801572159982068733034703924324492459160868972656896554328925688014439190961398206214560456625249448133268679222265897607976168443598500114072489403295336119354424999202025750677771405945942901462394646375772585811187932981474676231866465575372302171703147821395976335369049338048935092923242084630274693940111121626864996056441065436188522022013985733394267797110653092178913137632041112409357210622906529004735746305340849453065295987815497716606953979714241059820567199676161935267249470492896701630743105854588822148549684188666912027115259731422681528829049141238398965566525780244834048828423108239547783181086140189770185460363609971012293585870174342319884147538508571048829054228278038518570546280070000223954759525628439628015776666559555988433961776661370350943188034044455392537263339220068714019953033849368204367956618189261180967929385918631999554658011825423146110690927170896598078136740210962867924427326297617138773971782446945536974278194708383654962579259119360974713281317056007370634950115064881030029324389565212080545068168673019773124269326147840655180715267841447790774843041236898284651352779892327525754338362452844812397434281639955561918795839706340070805330901545479515834530492000459899054656919862928805566583982399482411846674694699080215631826994860366586866157019404114700671637419641011376804533957186257409877459740147242533634005831547228196348655569208074366744516580636525555295977041875888637089524334202514121236262379490978499714195099005733078395050490343150161370739259188187261983687736630521296724953718309989319025202977328216866641115730477067499789092882064092490914918423111029780760191225626244485331963069999387641065942219779992032645515341147751796320009369112340718898143209417232914678739824340236101178349583076133365551360988910314415760443536867577283066416496760200714976567440124745199619594051981273645829675539238825104024533258208986481623684384896020464576779826733250790669014973697119444761777762366918825162181896704513740083406526082285019862907279663615104116627691685717448953139129455973318708285939446833198590022402750143619190143571078223679132233433583970237239833803359203326717700237958100235593895754166090976161565095877120122390127407765279052350175796333845537658040972665925884518454480741350348220463196462611866916329702170640598320770723771963303397596364939234991417693269995387218579409452536265067594422639217525935498791541148646403442204417689987906313228885588385718177147263164206180360558685250678174036160377679517265230450347339697710249403468706174090841964347226915963103354031753615420002347420067447736398080196648745937517530285172060808238868737566574146294093438501257450270297555674663624721989063338955993247588959080617190368421414582001026667746415103733665183018697391834774611868093848520731212037744203270413405280619824994719974210572941259254009652111122551581499072072410786825984247775845141595554179370224059130702545753720638935286941810657663382847852885931944040969755438247615586941505924937906263128909673273185337205724323871951558949106171022984003173577633903580755250233653020541534857051304466565774667718532941068533138113637624138194926569190482059311844723824433823756607719073870016571418990404858918351861008914784514931805247276343316644233398209157440008141942075073043070306495633585454500074559159205911561934691988553591382751255197093821631422763295165897062203944483705987319653328396830367364626054151392122792573689208148569491942466483053630819563363503095461045184391125391868495418456270671120624031654687008570242692199406105697226127934059837420212161673246664851606461291567290562046831309111977175095048786529376654839479612702821492134207696362515812441067653364025428258542643592287978410771818961855001104527255849114276014109937587719259649726407716493711204572855284837087909984418733266075249503605231292268182462159736062435490348409454834232393308972552650579994687184367327130437676852920339634357441421109379633367969081941166787035095820017008432158710662246842280343274868446545515564560494170807633461217867131790223327248753736483552112497117493524701255997092807939566334450710698938099434633922413041739421726378309688746583866763570157292754136036144142983419609991271224333526701350530352936861765654547659717805598888862050316942546222754784158327197994124929406664748369560716557533471468976928999142101289307725093346054153481345132919001856303086237726168369754834778878697743582336332282072256183861847000469791409938992447086970500850248478232356449261636561506269855465767992677328445599588372349772210465637351741773565526611756945076794165611599055512647238749828553373354389172575674344424612471072169375879194371293362776263634630193926603203440307537734532304133252291361601220108455337003398376444289064971936698753654782661063891747857834257887710234995774540565884517228941642623073681794610112402233880218096253667154191976796916848833793114856077591910710119995607025578939315678911531646218201276122563859342821955256150810296131556184477154276931366537013021322329688704157639197726275184848337012819609275691499708869713058349331755522970941134340389999390246353923242784599994530509932292432385117919898603409426313911637708450359209370429377422425729948000822521230323036002209192976967263748726112508236431961434187608151812573784101265079044569442163783898021163874979060133002251794077429103637361781703006126118947268886008090859347165271101234737492903690719545714889804045892513948695088941401173699877061020087335044390613714148188005649620643171233404602627176289871784578818570941512423032622901394486666671861804257025798077351426688775245113725683395555216098404741493945164255707672557668266068026815440115931287594542393865138190860356805210630160383712526125929661955040379777315150653235293554705949197151505387376391142804420113818918228398714508626428532395207215094470008448844089714727017172249671038261662090446867929861036581982298617112840427533122514698172699232982230229091239200448326250698312691200206580780807295837249884235057284021970867371880195471315593981555468579555701714065416625736864354142062279481758479707049962788272782889380179829370198791418892827059089679807419306946861220916716629886322180032309477066207512815912681950567077168705163186726651795736679971259488978415162403092296456314583231627291156626648128270296945036227001262376439984101283924014615802382802546657981240051067242792586766765514367749708966459591034593376504397212707727833793976580779841379499117426261735490278386844161016312034777807107013643993795033961165664533367760279257300310470493027262471497870488247749891497469725888861845146368339965678879790079387499396160631856673417667241931260228276262366476192035506139553297480130266454739308873414985829755101417823317679484418711058200400059284916760586956612689134837484160301420519537557555582332329190885437450997048561650240678060145722355521140979169972200341445787726474859527846325609067746145340483303082509178986590839757039636374973120303826453509470708322974791332693211324443200499877186243891988970131284644518448445448543252212309365809890879048306750827488305837397865848696274818059655783869960207324975376017417557521001112581244920223955545113826941446253510372498872973130325238286447503348599802384074283759672672038819511922557252308420606693957913987100061826142096809211275946628965371814123436410472835082545474612438955104301914413719277389668769412780532843586783573161451855593564230770762813689958564407031024046701105294535821641942096968838344993212877902539173996688889217418107332227588364705447831480656013239045387371816585657946320794658608158248374663092442085343748482998269066123644764248968939091061083926177294137308922843001511462755816845625344327968534403252216354557103213007975954478878703492581361703744078482861788970373533343647384989059265698543151657684451293425804602445928041157682715424364675392509392965296012526143020876619135870283050173795797672211607206377618343049736075228585437136984068525636714054750934898701778562966007130703213006561229359736129129431951027478294335386045954000342328596995879213705232216476214275899762661491075946703856828087830141819473006990326960283119902041022240110484527592817606923617098916161522788374122515252413163496812360463458919032122969619290825525243731937960335524095438270401777230071219779820750379189490511273271459262959632621402511613079418230951617104425862615587287592596105968964032196277895582262502597978260902043083892950119522106141111717322625240821812945486846642254951424989778409260967955052483749396160240218803957812632309616051386613417093716110784626166588875065079335452110001427420794865991348688111675426312058665344362035953846655016082308885031305587530772237107809424674514896134730362711603658973212738690756921520599622723711796454349903261588390449473535380499060341799392394109197962108628401422677707220395894541978399070882029859417187068843542533606591383819199076481615169321136544456217618119660075505236953261640121304803765613438022505933169330025285717718506424934523656625464235763395896604907543102220022382228164255900494887884954988817282431421179613961833245751058836677260767088085021201510965876744245717762006198851996886555283053234405704866166413446068415551891018739775410361219771002763820828994723573269856078952025090795531692676911985140978282621987309179251323702037110807084838207377938154306638852106631663708851198914573768914702213732396764671981097898358563200638784569206632129252988268491786371777001445570450142793879918905784113398013950101454344821576101685608910553657096153327729629333772226836139982719035010206505162154187354363614452741581858835960614766916547770914539018996318364583376059567054504698486491375162111831624857513820144663898186964232819220040674929272963620806022057152699356324689022100886707132952284026826914656299324948815941829200659406445392143146674520432069854768479710527340446759280445811784932123563231861966987226425115418135226766077839267169895683812926794833634205677122887722403005354299309621884863362221338853440695810780470004282096264126644772921855840908391775884376034816664940634527946453295678420304121969710672600871045369459018705187609585538695978005851865483752871741288161646052114684013233182523038791761397243651142080851669147338267508116292975914792936996903076701541302098199738061116315125766423075140380968667961430709540383402499938395483288413559164876842348992625974458058761042494631089579504786038831842038602793406453073601102208742877570070209921006298725576454717000814128591124721654062885618077478701024730518989917875943880541185518387702383923378257669616539915251400203395788609760664840634208575099696271003783973503365065047608820463353570875764484253764829917981765322359267881967368741773414670616115215320492559614721925350488591910702884738836301883341505533758508900301898757053179720827912477576918888341011244765953763281272151236049723349141692007049568754189084203330191741703144126437465374952289108133010008147171066173531303597992340637603846520099311469014692724634789210982035954810266362590029238598819971776074148024225221965011637007333838983741389307394540996915981964698389956532851196183483760769954123314768997931467794851362316559154544766994406924173687808805904423927663176708093513585869829101910508981260039722238654016179279899298444135385890152524468133720039879808548948779017912000603026630125625475326905592478857871384965773010209813817625752313885148493906434527756935215621205241127904836340258394237263138983246264598569750307424820017364793914605143159431722012771549458983470286682795788561014054673036168891402549115080920134666653702703670377573951976408737998135280329848895129125509875605248809640609975982378735447735605893148075054259783015198329974282604211499569659128654152115990979120874966831224368182091355009830563557790825594196972084219308730281431059849556435275021329450225822174396511419539163238279039126857517492811154626409709483592881391757010005595174308544841702357813675424633888841641047396796476659945909110137792408174811259615974299633853911805953941024145058525431238942214484143499736716062632833879838679538178815178776286448156064941475862878929972083678062089167323103396835374974398531589844688451266803030473119310917696599847319283279378160874147725536449157894556925312222870418646074965740098479163275789363904284771276155226883353669328240138420959878337211164545822034508073093754351546022526365870750884587559688054662232618700323631913872944674795472765277847015353002550034723526731642433308391705140673446800954011195894965648113306422993412057658371411260505572856662022668967586995556754967154773144350741899211822626143655980477891774680691919828898558327370947276533755672722135361949707816508921405448274228340700716004272255916804372266597624185364862373413482332056306477281141571781049956066250352464172825369971550637911597546410011855402179906723344830375998428487327063644125726205747144003049207481153984138132021959183180423504061877416058694306536986520593290512625649307906043955466238510447431874925676233514461172830734457722809656353194553562589018371222913705282285606637698899261775938846851370822618529964535933984873264074423467739658322644581494354650044390546033809625763799338346868772803285785864668093515225213754727087773755549748307056322017923760729011872076562279379954565132633260525558532252025479018798005657952750273352938491732727401378279157837490846226958128038274929932899810895225659797283887958266661424775217811845009377541613080110505281857272613140174005229415299105801187351868041117580745377186078195635197498551678387926837746907951072595745653674657933180193727142473345591010848745897422478870984145140130935268039212281535176498494436534750303963675201133267177027096319952795611364271001135918850004725022992438865688512500021063838242546186861619190030469483377803102155746293536453672306184659845688526409328015694597756208643489820893781300233120595837461263619122076020552774178553604034402075139499763021006116935533947017545086103520847059810444529788702404831226170365357271117129304456760108471937163084098207028114256540145419691769553215759938973424483771959146259356800272919502628391007717709965471603883327160035376557910956944520634402827875761606972375104853209020799610554982277451534607049363569945246092161680562312769014827663935738163605534846621995785604276785077506750841082966129931017167560482144092868345697400467386759837518397967940262029948500445570605998042040241005347986023020558806518395217667350445901289435806900370555290441492066184432977194653178556805426644442714205045788849179538187401465967251226359976591063592959745649676495800854939534809954934542013360219200490294873745073191476437492225567611566134054319353406598062967499697700828640352089425828076619418411949505939339506518962464829404796893761173476036010105586626940524932056718692069495228104547755310586648513452839371455950185003770581847720281504334499885929147697336683433549217975518606799104831076783547823704124595175253078634173803166550888833904935348286421258121379121670516670706392209961518769379606017432828999220057611641544682336145821964678649563095075818472831487408911259100598215338161257846297955082354576017120492783143739233709422703467124551927983280041746255564800142743809300063500058272548172695928889755305672141612481253740760669916132922032549124260964145244766816100557594085580589694577668724790820011565469673954106691523523556760044306603770765547472242665297226242752452759373606049060016696275694072283666250781173798372115739976796854637254601882498540713477576478204913350417715049702474009118253509391900391219847472424171261381231093459066064504033287893491802245230904567957555132559839287682269201433269310231977852626122250133732675158728950330466129378455143766060788135667058074752296279579087878348685280600790821839902359422011049077389419283013924201149899692223297075280026971822696939760407570241726383431136951142332280774054583951756742385279085002815093367858554676381596034529377227492117804752118368850319850254959036975078544581451030865097963428704599261133004384423082539744504267588991113199107499618099802932217410811617197450360238873813197248486714837960775511179709317186870774707143226470254621526270857693682933105246294712594014713427994449799434346253403200342997046851051614921104056937563567524643054592831519159342878606551551468249535939889003656780322290588579421086074873289809104981406468983740457327479134524399120750368352879687404797824409830160904708189693053043118539069857732513628091893571065818218353765393519908487728092822531726070605841681211867019920552061708490840992028886326692521650873679021610691679476063894056228648895953676185530279294582111464396721002819766118098536290813357854028247811619912058146715622710424917050338625754454162324353860776103507855188669705707548490826299618610289986419365226740384869278376038981996142242885330635914671802417986441075298346064827928577844279581945976695581807620031885555746950150127888360804392395304558727427261132223911217692923563931465379064401155443577832071771851559384539200061104500402649082142863370162470406680043878042112204192332985757414326173972166722646982505574240576209864331636186135919006070736347774165071330206563660012172024268534516733761943408673357249319070316974310988230903630704484568857588473321588465680408996006727607707086062180186116963590074018490106768746428450803777984978400603017106855011201091335145128388240019853304083062758010855230101262169752858448673059666300909046952381748908144220573350827851619112589751532615071025257460187606898213263896725994090284843147990748599811803006437057280577556787599310902981848011114206980322887752988368296681954322815270195525885139872095816891807382590250518687234987445389195519084208681228193741626564222202545028019818643942069541683446371938123482478568028862876495207204179066362074803890948171846484656770879550290186223251010219229579823636106799032882610573741636814705419125275740199691557010813314506605656599399344950047688505392746700834011509289656858697436385707142528892376067338635337819022434963355882890940772636488131067431269974638165233654503809167029694666200178173944944646638596673345812966589861069739424809569317629002212350339952002270721587492179881926520760828217971830962986547862894981622419190704832886843552108692600552411267699987113048507697005802116589258758073252866226029494947846935854180675267248636733698203726428737905065899087461634613324695097949326708174722045581757870916987842132631447450669312002923336630635728313435611171303933332234127020955057783285946572844738553132812895942387735194957024725944556586021190988754203728755916260430943687400937134931689760714672344476156654075680192511583730519995741549803829269443810573536659335947765273323047129498768839786032921675910980739569100955774282009438722457329581886464503579726690522431797289350399406522400305479860741886322181970062798973991157596086222260599218280380484354070275922531327685896272826263644572253469382268814879135760914015294782861088875674177685049968061695449917415389653643716488667398520335451052988289253916942082182700531997440441382252248419438472824029691203468652280279794918546700660437725713204394607183916072048524028122896184413931513877470357888044204544615734841935109278587759952436261838338360418372864008854739057126326352736403789406601912264204973940985499009538823738737655808991523460683601882246729239197156998924174387496360618201182102087887977091515064862163914223162722495887240993855947640823157897570820391253941202806130440778921149858214237705611387310945766495973262755836157123104239120901508921853145861080519405947660891223661139496838367129339118196813578226725074183883163338999923393511694729331845285650031891469683396941191277545104969734428384826459160817096845337419345212785074538872742291500327395099726978905666464700401532015960323823143378294013303069460153892377296676611630269559851801066826556129274999771213815032793094443187516040310739437597811110728256450065416206353565276391117106765679707009649109596834234054770016452854309414891221264591908479076414821875211956476481687388953577405382645697166773117932091855128809157130139564119977915654310952415401962362854505826564063898545120554594263735629134802322341294014319134517211039815970781170752114422312803550061232600766600223454032307294319734182323267920185381586689701681023277324322537662703300609357709057845964618369692371481551793752848427405292379129687325954822187230829536754877655004799348418815663966263315481153509076105034472481210710916687606055996417389855414174723884834804347562545945864743987830164305700942351286230715780328623997886724701741203992663503112268139589433585817215814380905489597155052198052277759215354719401886194070882058929566107420677233223239417187540180590371652704945577480379102505432946422226162937269634883857357366756697829786025528761820767984423034268390685097235395876631801085193362900099695757838209757611719386477865334374782741233840210978825494269622795231338267211228518984911326441609274321785118178874535792263077678757689205436391972128901624241843272809845073287859265370079826037828295610418156152412685452196547391540521775698961001980976364636929849177088900850053576726318682680169514806169217734055786753025464041820017073084963280159976895786158081565895907911604489597803090388971185796989584737967349166034807361394010338574691965072270782151094200968178108552666406633357889000643168847333766087299112362652159319691417211183492695902423856555297124230717730825984086742549495777019340858675567003792855237001419936789745148238194417555589223682330712622087981612074582493533302770394880292675502768445503051456989979881920306041015032722642636553741403471564030599243435340361552859800231842899236089624085664218228696650412382249232755333412052156299394894220791546535572869771144370793626432809009157095870730636782953087335962763846051258326993296822516723810136941725555132859535596973987303576708664518291856729151811389044873514970489029585159575431271323894071436822099624941258579519252027098844269142808660091010704855452287444007208106172259666235933093832974836944617546654726210110014618222229961355687077957824463800528299765835983190730242272917800647387349797793650541768794821006031270720518621402400092103998537583729547890114155711806248845266921776266732692186180181438114439087727867564753893623111280598147092633541258799835036531772908487535110916675817108506317640451327704151854259411267769503728656384914354244947304868078710760612763038470666514155702090969421236716941742738522898148065260608853236360082532684218240843248949709986179182629536620025970435055259922853441810412080811584634356855388880528263324057196153691978861292821876440055823212976639217207541132976247678937482454229432116901004442531952582633091698976081358499126394996491662926397610923888832406741094048123849866335708537556989623150192129830595071392241945155175378579074270657745550176752767558949345472475710480551556348486165109676118854531735547224601328940726997507866564661332868264803141559320246159923679771124157719510758338421770651111751674922434207500280891243099317306639503526652831127992130987126495690017178951678759426500175455690916582269147945760299966616960686512256724366158046588057996097477275899774907264228838886736455276617032420581640163432100709719083860465480970679084918494916369162924035151468722327158836253858834661000322362747920114476518304727239650318423419841267377402793157766635372950589196580757033459577948873303407952992612293794411564818049378499460117197307533014398271398594190427752957843863785186169003060302663096150640592531254537938675355292250694350001123269334796738731906058199473346557683633536742865750383905228221233852809611442367818270012055666384124345970002950654312123473411085570696041005245654494738824658240191209784744619433486114172432949200882392832313052974081718078653449868188609461993732723019068498315140291443759783904656761135290833341664714414528259372007679022367879970864379012453247087221218889437438116522431445304785184762524643637510048451058025610394285912139346750487308550025613320507351523065345108360415278660737052669563915955697133162862196904595955697409659798621394014821207211118092761707393312305104400440139495613389869579503315580996432469788292374653240117465769735640941272016298322513585614919162067364800898683780894112401606726898539767172180775261486019016383713347638497879517168640688812200082731766693616908577092675750606822011268493454820433826846073839982953744611623718126673458578207045103895280468687563458680423802000516994932038809143335193377593757762678456683817335588728779796000655014706510520984996213761463338631394269182308855345730129801581822281141060814984023835286543487927096937560431558993773293960113501367900332488695003324586328883622097143578692693786706086624612680516366812753618985787255897997751782400791893863617861127267458802504871875908614889559781140196413403927738380157188533078042707205877627821599270420714601193757718780849608499488271820315608423861353652128158699101330671865312692875223040574780293988540542814244485943960119574164440460644694971861320498065556894775622353061955712768064042030716552378228765928204887344718176365386967207536998892361424926441862236557117394529253094041284520031690097193755031063680506195912339433055326607432763030396428582000741315824672595095658886687386955417309373184428009291842976415148126343511853836400647677684372021169165425972865948345232474972021893860476799688033271150513273221361324367119378062731943442759241104324463451165389367503135872244189419938247632288657987500489895921762743798897251351862291105032545784898994017732963374911165825285892007245586512125466996172592052360406138715832083969797591824688341558043317858449207940112504134683496921772879405376573487552816064730447888205898429592879033967727055070712248446295968958363610775188275915636302869579691833996596440021088799041104123843633065614851148120836825392556133852563922297734734312089395675766056820697004775238520081413256014065892503752895738910644845027557745886898932913505331703646298541898326821723149856016866732002012694893104601040453442244381185853508349327139872169117828467915691388240869477035583471828846974920967176401094059209001938095047140388958631991155771293072920350370544340785865205097214331305976053290509612299790798491431977531784425918932509154287137686966190549167844139038519892288727744249469650862906681998527078822305380941202828654052588111518609145543574849871720268907425700017751574078334773560093338152262506763594306433303236980627855220923413231392064443799741482597226147858480532466694602951171707811481670611572842147929575903296314086152167728550070883273724309922440531787880114667069454798303736677156602342084750565588381494292988631091961127478686961907857517761295950816099739665152907342167563540481091710412540712092983294523189995059443035852429964616663487866304416405312796694150430996870510623760395405516370396866927927221979540537058939410059349806501692640312786444723565582892830685537555609518098232622422258891431321631050191586027435165210646556766448076255734906190194774453141694243789959062573255705447243871821613344258721116759989945839491298934460080279015925692077659514106354421859520783084039307142478221771988072290564320239190700657138499346797425796000919584511254006935798773194824195539739035097221622871936909803613558468543890974621895853011727784354767353386104572520132431380633089251074454081167087493735839242755801261233408878713204719664336351375452185262367430889285486982039019014518154008164105702270951966708602897994638252122939127592305767997335804279845466070540014375464299760286461499080606479980463234470602879895498524557035646248354631896720435571105642396124224299991131499019218166146513036460663422197751783028249782346469105545154971906367082994603238397165075793582677241952845350695759007356288228421134294806766915683279402120978495724285059169316576334078623883964961618534082316196753819561036056990405874340101046423939215259889661478051590964210563555970579902655476960677715779187836885042076580928776264642221701763226175163915697440218010813489245159590828078097372376483118959486661024250642786664159329825576382807943264198759847650814063937952133740040305349683534760698765310766841132519004403700629185787547888180152690010399236672581087648384415872668044906302826991639719582807420683518424941489818292437518022654403304429756145346261297215861145777536667774674643697739422302308714208576189713790774007428760879459705784593700927811584420391238014920214774325649064674833699260316018208902732015344513622638567415619145804568661194086705486647878275741684868299310986254357986359214395530583782097080526155558649030598210873117356692952943563446012954455631670065103805342773516955628174348225100896293593802833418021775471714032852704997653078209557021326765949106329709858074470565197387442568699812059736197088926735439342639888954139859083339631127233459728568854646355020371870840091138238830428703400083711575993263836517996165291113852009993197568726932903071558369219939284565065250748311654539056957213873465503092541881712549837765748127803777605919466087290620018107438465841684455851032940334249265223509621870566529384159183516450867465519837864450616841070628867470003282936599432016254913366496318020936501596819003113569409378115943895976761686476413838952387590318199361755631767281012718923188530382628513979103352578343631188725962906294993934960962054216701462272576328509576977842608256306396563972555992494112369336087323895224595475786096171915177807575241201397427224082189382768556896446749375442104265782776387056819405398605092484532918133557221878286543536519455366582583097920381871653622947138461782252174952569387737316197911503024930327279233185756341504167631650568085644443657820480274588445188403303060212051689778911892002099173252534766085031106503000993231587374201188384603894672013874794657782120698767831399357702726522761765180649402395709296156194773459311487439847995304475000267692907573957149473653317954430694164742887218759981260498403466487814930466435889182021717952650686063414710558134832777407230982661080232493788083188608563661078935222261501143141594293906146520422273374522193035542407644398200966408185933231309771028328683828700979882918036124319507785021496306135308851551104301867294112266546304058576888712936569227609843612717577450233306526830617252603092723928011149694229896829619510886939478036209314028332303711787203192623502975120661680382182085813265652947329744697437407790246686185099750102398709778747071207402686868568132178433909526216948833486194266589678737134442298248850054282797988783224850887425351380246325960515685616249780503427155902998196457081528601438848990935711690921086784998677073009176299138566508597577874104216172387428584146269201875037694893501384343305441504308493571339028344725715817933868002617394598691068045883334764690814117313403846987107758196650898045792811911849303381558679606868945977660683396389110625159737455200883837677121089079135537057116809175645696262894605460723153291830415134176549972243152831626889013013449698711949629584670215177854978691853741808348745111743993216794565886249805510757690874597688551203842399392199603235097937082289977994238921237257592512046747106411436747479576074317993732353224029085578932295267878378873883739721788356686699471912915642500549485893947193520406140236730229960037562079960836288007409136895888040995820162148146826067917609576255961153745715223720426473446263791257543669575509797068813575850014779486359362298308304633126589101032147748971208758501931004503543096939080625055947203153836090740101833531449146302452649601408410921962444449557227768879040886853232222915660684120815289757356927771411874236647427062525440887775208666700224426193462719620402781908057257018081805128805964131552463971290919330343925294122852924088312630546956803431228180580885660083212544803522840682254644069141264549769782191120693171355518688463224416308684095720437863552851543369587330862106935592867016509973153933476594250490899407188714889862598295626444988531274173949868411445356073848298884100837305441359170266091476171424681270064626841462730867739495845920801308875860053174593543490382701996046626723535569833025349587619501610115187773174450890725917679732620943672813597937976242799286386160578768758563128849206627546629152592109499133241949874348115805300403272095429620983877230761587063794370541257343559011697308954330113345728722807163345494624746201850076183290673114440075920997163582025477444313834049737441228853198358039749799093460173574565673084226063096502334824752861603935222268200634989987284721331939683414502321436881512053964726207179092305776791939639018295716002389758710658937646679094483755427459619772279969091981126209777242173219670229026297098195045170792245387341713156339695515227876373601324579239159028091923761631808800486856504106035566919470346805583070699226758310136998480448878351679161456634588086619284334337480348839712237402771426041581039762630011568808934427870190735827592437134453029583870408630666856212870837750684956907126070347288637577847589787392249368638801657021828503989154220942333250854395324673001913957589781770973226663316758276343279630516167918551311709284820469050411512680013865023574137614134726857339588781322528550725569214069851481256560791633537877683789813145552194979332514051472085737604889298216988486459501835949471787150876901897960347755889760937835756558473148602628671861999718847029970499394594605977514677453154303697412619380289073516779941705745117393109073165438106255475112267967809447312150414572583505967585850722171131241647808179100131143032924883944988230489133969028107073394813858915090296291444959299254528303551606191297238455941068543239611199356202369881512368350995905333238052871641871066256454685313599651500608885277012023494498722691098071315854214018256465811713507805251245387348696105594836603465216772957326574294156113563929549718754221577025115663691473133296835955403273483466880030947930709179294468299310823600147141998166632836556088230914246526592042915924579599394797398940749945176905604833873370267520781798730720268377318392434291464465434453235534393039854971447884493545563619945100572368670994611609217226124489445817805125104331254791120803296410348062775802903949251394729344463679569305760818567105275161400402421902904278844593827120689485610414981948720155087869993087099785502880127283938451355708686576636311939366013582493306885229089338460066383125545180521338370995918613394846094217769626380394426941173895268948843008374906969166593551753575984782745113981253460103703814454581578533874927896176582187985030326756152839904674653874543743223087241957788184492009547229862020689177459256973092671030449585253933837428072080741582050153565197292023819019683344400712768975509811454093523906701754315235640348727338551395460220684452837478878164497338533958701406189106271670124145478046758808637012163909266668905927295229093390543496080035883311295902633405041368887309542328604582695809372743585860319552416000265720667513545501598552353377688454784144764001552506975041579955523314297368681845327027192157419214268560844748530734110427601356659220976563607452044457315996445519315410005875879380345314551451912613019146980670631400783855322487959483730941616776940573512794437601852331591943144503595245289472084266459130371237905472120076502785832414166836127766650453669274538870389466220555326880482479997604169138955053778153428962036926300383212363199117257036243707470041754645490654867132194466708298541251904164651263699289675047089720076359117347220333514276767343358180448818686123369914058079679344356765408960899941012095986820618394988696399800954728026723825515958002600232032579805836918409846272894875878026061813207105079691106686448922767646911738754950914996916846408124697708295896305762815049759882226285214172243875957195135701293234793068247364073191930719246348095865770346098909284322315234787175093263942117371377791414689285993225441969596513016087475066394898722222766415625637079935063588428739230917263439307134834981929336681951038729953434347326698408342366508206718742405119193526191123493781504707779317401882240336290018716340457929066007343824742628420856645560990306028824643003262240771188074464854612019621027056465343907113709152077906674097322179008201601035461451216793888452155712037109858697892476699594131127747132452358354695893896483040584065722880070665742703152434547440803972134960276152774270797844299904668813863423184680970302673803720509922291356502239690990051956383812698982702719709441532657464600191938611292145292177932286403897902061817041789437981879324147946623923842740864488656576867647149572341673994924269528693626214434489896519774241869030287044541921228197923258460477805551955277488570488909617717110698064647447705973407782774042442377801059071045228530596342196034174059709021156620080772619341926506038253994692567298459610620326386838926872859959926025314620820064558798431611693724918621530713557604805366086262426867001911030761534683236068147772149619368842451105888118871866201897088013491841372848416057763708834092858597458261597266454527457636472921293702560329907111155878504672295753922013201977060198228165379905827375950250296714068525101891218957443216135815810650143542610208332197229519625998824936348851706279094701944211306086902845562809070043248459964135414164745281758738473636209689573970535466637904656135106294418129632772304148325908053677838124622015043173366820656959007360076401148884744626766374539452907551752708327956109827035516186358390688079362427110038409964665974201045353987863293671857118931769886502669312016898901192599155217002155393702270258062408309279823340021629889443690073166295265355267171735396441151241449895662041794965968930101186604733298310192136898143860649905908187830210664337626546646519215487136183449632529098721372459759980230500226031831473137721399553621001612665188484937317485759513716352753704212960495869333702173364544678966739813881181520353584998808907632048832533574060970970264189332646948953099854170766164756752854571006658794523157730597109264094858715646057157452715893258707895617507726276879855101417621251121606807056810919649334597613571386341109046282399797869167192641903332948916528035813530450207917443195567764470693356432182202674117133873918190851690338877608702460981111028569650435644884958499697668073707877152251950226850957885158862259885220688503300754250413400477222387639085533954850490179282605205667377295284643890850703069409471080365078370804864634942367250597808690867428412229426252948111650852903596476681186902489088527063720316578316328617366089860748084472628075010539315529926410988457007501583161955679883453284011841446926061722391527630880425151449660002510094868073922150102444920684032233864553022557374480492662169131098345566799471651351928844078540235495342586521480380052630830229042311167459204079164128991887783520972939559791235647006903634387637418833869303128440573823301175688509309737156843775111629561103576323897924503682244926736617175379859792564296269526507508024246789328692276635711970351765274988222309502409707816477396151619676580246475509338221882808780523105682011521031680199137200896443883109919300706219793646745310702748027547689715644482008313340632158902095797310247382378920905887576755193755968889986062046391739225222289627322409628853865683612160666633870436237439858521027487093531276044915933303868604128185498939099573073383846086118997543927159083290176032375937479968355062651023486759794133184772970531411104357532056365543472546533694372991594776240117057219688064600328920028772788623734755522558533935720399106583239708113736428585956525437187175701506874290920971944660479426875660573779730918147444331471425779557385322103275580065448168558684704098531211937205893528097363679614569607532131274555620917939383642552857615097244285152463524170121721171024471876173058188230466280314007483903811581743845272416064528057498513021768203995622250899166335671270085887284462003580492936624097082506563943337772835547842455467390692616533455983095161622200717066807334014985166243425133842765553443923342654221537981047915823487146653202777750616894011421868323740552594408122140736703672422534445504396696612122291989537685472176671993019547991552277252381673598162628126706260554670211145737174587427724462931645364258677008048515493908588735295986924196370077013447904796988181826981595873252240624775398459812516399671314789197496929553741853013602880049163415365870125247280460490721970141212194871518515941297810396653038243308400756859617636052583891218331508546762381319583886356442882723263566962375839301344533417249371113821388620120643564822456385480842091156863099672057112435068286537699699829950831152771016460059446366149177180570617836238748604819477270361978304928165137757316473040490733734888625120546431741073036028007020709897673770550230707354997551688974940749314094048672504626504412409918092969966814437427364627516933283993678610775369225933467578920539496735349575699218805186472609189547803386815349593802323202778377763954695565144823837826964573278820413451164522802132802026761814236409615647484391532899867497175593377031825190960671180116554647706131938987481616992781727904092053927647728949273431144444128981160168510298918725532519687732521286362758339435939205707459749955682232557985334706148573538650558173673317749760970439204152812141318734163708759537938805510575245551711648628742349445816247692509687820303566278802059214600761522243305410393650115559559155396099392110349259178938096985980484449750617536620030012586433476672441625568290959166154242324253829181841987626832132632722386898263072064186088145430050931478809533401723760002842289987773260742168268499002959856244387515264076772553894547092320301438822601040346898550371974725983047459221908959089586307417438220782589799400749718634153720455035463437201618182587080379798971963286620265450936184576514035719126787002914538154306917322420344397602337349530056394152005321210605977741984854006981141224292796571374962775578758945299454382659444822254407081894116606104839207995060815335559178027674493877279673504917143034548511143422660932928685668186424836943747453553065782817443038589322273115764385772953000449212130080539349683824010978729510919304762892769193906121813331817285125252497394827059836990184742097425853027534480153607223216340092338161391035128140278066898814134546540244203037310072942511509547722752951712891618590545622846496726330303601001675114767259855982642230916824046610120710224550632673390599101920184358500914308582046391551212232502262552248394414614445605752772237743912624798974588230662799420202440402773381313771375100040782561501286265399134983543329894634225200847185376558296043393292431118813277576976375704590415837417285333213248146896974899912607718635072928230380147615164241577985266776734287851025511677119880143961508211892911778314043318323604760082626072282177262036927490713858364459494272736784847376281687420798669375889978109355954568107790428621474714221622549838608212751256680750860137087764014579047253052213985001919855625029492328131177878794969441931413906481031690049353739174194013991470107861610698732333185219455976294537935925853895037621733060828649055114128019007719391889226451645145652347177696048363993045999846876366279628360200802539272955415546887004755152616416022337207240651801630650557316093523666621337856319881749436439534799809048951240016354493167989875246519781455778089996506265896004544408926536078073609009917803891790005628352495523317250709232842302819406447845152937302440417081700085960963906697054182671976395598793410638808660299593269793474514109089956298543337441722943545823635110570599029022839544559894340396829586186685657008454425669382104587222872546822567193467105400997516803053739443315666520400430809169178552993102522432914221182631982212413981916747839901760528445688090024148802191566933787155468128514712220138501750868180106921034656359269393031879633167772245668400895262566374575921934079120477873544607407712516741999387591368003853913066524988092855345433148911899249034276319728684867575272324604700791383141544303102436563717015825719402448691150869623752484865682120739637671991897383655707292804717318902465818856779914584145619014739230357167232911689293603440825109508849712007945371316763693466641182652228512730748663105253678831208483653851322490846483781280016810079721137662722933884066448363021204863952878277545677444906557690865184373650181271507269840722179185668483902636860003068101988969124402516658029143407225942595869245434344100419293481156057377793497800377349221677043525534450145250315113115246581005923936777869822129443638075084672749122745849816284880683378029808069391956040370514111846587605299521539621759088220040194857580310369133623981245792569334215230357959821618847525266666140856078140938476575846053615495167029085687781058093582131827227090325387805968729193303055686814785134287888100410846729403454505732679718178750251666794275711161345103574825799710651725230314142905930227027249007493933599277634302378982884948183762513831257211168222033720807728476342097451555475464606263693350410820310902398075498200819748507020727200815574932007689969908708953439206631484428681795968209832640655743395041420073251086534094790465503964749465579889560890471464939661798592059768671719990570218002006288704502027800411245278246866068833501333464229626347263836443053661473674410278813995483141566600935714709618533215507209966383799387149022519046106673461000935978980192576451514883224950941317673119752517885561273978096713142910114827358481220654302568810181418110070644077046530006608343357528082160346114056698348149860116286867779752403768051307465142998848756399311062882457634350426534829216187568371769753391529373487851799431434714124558838850290122581132269207355789416299014492577990726745788724241953379093690690896395789612893430944948604222334247688395456881848493306589107670521108321003881864489953741726975113841204711703420704721165155817112357861127127784899064137580778279011642982280521692256243261252413802205628045619078177962966900987014903789434059314993061460415614410343484714817823136254196751775338325311180863288653831596363470168549447017211316823102059390129622445900062301922053094026670959768015484807174014093411613070918316758313650385756158859692381862314720410819982722691644009011270093547286051689012181023191966623878628149230900866323629968689619776440548090778957160702765417727169534557675854571828106154557972864860551172606009748141095404747799733984983772492763202211267571715008991806291406087806294420056980246060947446950246564343049679609896828919888509845626879034927240211353750433413647587756028042741306151726525568128756128479769372177595328612336233226209670274331963481746897428341119673460440501655923166114570444839527045527381885065708644494221330504160981691950526432688879176756776824323647525949170816316857936914178505567887146265649197863507833342334997035539022757367492679044898339427910820692024320465021572503184417870404051748406543744334962353804786071756330754696692677721797857463967138991658375276280652951726840000430604426016430507220832695883216918504733084986112702810886734148652841426435513612932324222376994889163124638755645994472934767853139283221521982132607150371199713346715768987200326616036007523139455575002242684312959246758472665919305264079369150643080442647402851478679089524914906686270061446845414897753237844546468860447656026707296013609463205541538442873948917839110174777256125008478821342926764409444017854198190591691565268991399796192694477376347971734850438996048741031969877451274918785629164788669674548643136408066570166767927962134176528031335496960353918649428286033443669664494338298703493161985377258741780704590626247697837402755736570139917599096499959706069568299782878189801145658207355295693514577742452899475666286515143827901772650030286841254864229403380069004914582966045429093722980560551821761321867954380627155465033124829772032616482011152367019167086730433206739913109173760073843170214650772084847140556837956835839383817923540194451003560174829794414825821886073434273568658803041838637833278007729406599233292453221819343140197591733841747236798247183947188477080209356241100591864846881990487506589575605231453475826466247608758370517690362661902868633456209771524558066261158583797420064967173413876569592642230279991882489926223504894210106217246626908246476031253233769205160126291153556852293892275608901752775013926268022173166033472036915722029036624514364588453347537857578872473550265667812543361294653137145561018505992429726002371490321179446045866152664504016720295034602496553082192845701935631790637651885589878483091745449683327754850810342207665845481039763504820377228639883839287882865794319441821671829328186499433783054698408168766742057060313986586021108594366736426066034078713955495906195927475948320875809233214486618202493126836122953637035519946501130514560855888554968502585358650573280216138259460137349693788936159724366935850595553529744917289377705091849799603274284952574945552255949589408562988355205253085818965747329710346262754055705512275530977949730890843442962326490302390811108166499174687795571407429019703349254647885410816461383526288067799662695680330904948813805815094442306362459250374518989360442917971438702505022397907243814055244029302054467036764621736278610732088472839570839344389236420596347526331850295078801120948347356215178733657391935782684614014949911163154436314600089965672961241186057866766391905018048584939506407148287811289599463610855990160759377344921783386512446805366194213165245991166256596333013455475473040009098532480557519640334238657688474937665386322723773815219927869244711290974923591327051245890021445148858711978397825486313751680014949278395561672519155996797148896678559853163616594350900318220542421061260321057179564471502767160947183288605923404862510243851418522186821814320246507673403788535953027987903696707370473294424220733773554226975150504693308628512505322318963555522065279766494964013825921689165736777295075545495045415320931261850737611622886756754720670112749132525363381982779651566870408608069906827242027282374081945848434679742209657162345197329657676380609006521894119068274754154270423400957740460068344839403012949639254417494382100655163514856456363326844887023194608078851236260094843874159989008383241503861440089046766298532550762697890140588269280369825202654943376661569360767530546023019058669465534853338645221195250053097969648209341843959659051850005602867583153788593605512618882189500261987365183820335316925695703018428707165188072776825908014455968583471489615454137987451731004275208168730651739451027107878466878564822080482837953409914964647551707258735537475055053592114836693983598920161360371722239433403604581604571057063808761895408099300149097776281609104765977069384490466896179646086848020507514844263373204280728105816295348963758756639821398917455984899192033654731398532716009615006398442776583684459906807217663186546980505381333856662587493369657198544355564144664350631869821003308034669450231610502161071355837706788615753540554003520629782232832754820913195472259631568934536566429812521736483649872966085682743417173774764439427157673976606533290754629380387008631190148981419919624653097837066134717999723902349304926117201310811683467958276390137462431955951705157181041711030263911625142089213786368047924669513386439901138000421138878283870459122038086659808745954916713956495233151798428613703919948403584386583269166211832573896632695381724234505682967334415507811285029514585415907979822801829567027982294306735175464840726810590321234587124260555389280362043825002185326850284878988920664130334445008048273620341603366089220897408272514658258938084959543843808986492814772857966984908439864502209273394387674923654974137618974178933087882793189343360961946878355121456396888607878071702046337370241867731735066873370805881960133527638623678935551688536716733923285598207894936480611642557211271049195336718777580118172137291468156106762146932481444362231521461631652603742092213050677858989896313604575216016442462966734644763818598941740742254898382171889189892975040049834917885568343159476091125737919610574370264574095427982230606657965347759311457410615638275958118025357833235516599958029373397537134193845952364766025051169723354547756082513266098153016553724685177885776195866063781533491666839036061218912157989686030085872572844551154794478632268667411599996207128375197452487198776005863075796090502611079225699650156214404006195137855353085822514735322542236538537514837827674152865959710202655219266125918946063725411659659771039322914343839953486621525120604774953314590026977382017228179638077228307769773584259829673377983250127866882968078976906520368050057571562569271940986922336213749685394322541840836943525284296647416201659231004219853602185823974842003171503213791226261891496925142193497014078379461867482986088224535140965862538958676179089106442089936959749201383428570235177066950360023330067482725999100401192161032983915936791631285601621003850179687481783723898822247549259441966712496195657503239151299839943818120502067163287826090091608397377015742187921625059837708078115766323726501567474222388263242587138975517498177314614294910597682891289601381939289708774364554563437541843666225540364502655042994861407736406901715149256901282312055832143074296832764321765572283481449484177889465929587550901648798742986490136198559041176479292903786394095602243362066502309366809265963261156262316467588219414548372476834072490942290662581825853974589379328483348795739639020365718425195220876614008602731663698196759268738542716153310126870446588305563823952283631632631979682723150355534724322416387070218101942308109683299189107208582741575922866761201325749918184214107645618158463932624825129525659056204154875696916129288438805778511759544078025777797989026484154383339319275790209688946355953840507271750484507248740316574009477366791900662836511499475186021227042785977364764201357678033351895500661585985483138034521206336239575644952755059885648851462881057943605280164221372962617479155075099127596401239761258866457387870349259093088157712620451330284299917525409736387195450248167626426418482255361625347182408279825003885907461169894314542776422479582297622649145367979798557435487736179330879086413030547441139342196791603405521231872989613326095988625739271456348666140013561189057122458745787014490777606024867605656450808251107974212210674166908163564650833418447856783563416581722294958073030213412771266274173552047422043518338310471651433516857376139351584516313103703436445780147625094117796429423469500643328519626166788299208396768903647703346745351270420765211680553890221352696633532446323548725440126829793738314446012841420387022883004222626700528794685465597222391405901552604469986824969710419617377351089329247879554424406034068331819309215629639134755846816648187055973141214700132807209900436056697167607792240389898071677607458231226905553858094316260883901748755659624324833976049422376125772044075095386244205350650793818483095120410121109370258393627214292081091163424802639811820832239941725286611033976215482034674732350361624092830515759302746832852798627598632609791150321575016726791130450995338485677057522106757196488433978410623653233379260580874694574771509860756887226039165754371747475087842647897571823507873096291770049735860337030781438757316237782055877795836100809951668320926874477041279818422019485386203558900532431719581013319162448278794033010881310141344645379998676845661589042415613084229013460150152590786428403988673540373974296357516555883766877493582125516957305909496346723189133946387943905616706835819128562873470767225146737002955050485892947684586282131158402689677792832559921020430797273832231581227404133511756731220323537423323549276240061501088686229428024130247655060657599784499915907335119112107496728391930878958571147047600451301908274402272289239031069772389477418766562951377521681067715483219588961688456125495572573103983087416127649425926769605597517334601960184653544009330278931498582375523106261231385074938664713457613272077792831561904936790123352423041268017245038322002121615797481883259988857111331158867249611180518094255404007731944737866693384738634713851337214110470057128772505899252120841711319954465934082448797870148695453106877087030356535157650478947617092365510888771103380485525615842904870936119894952092330648021316170263144941285842173298648816340466732798274075815094664207979057375048440635773483032780599619233244751483810985435067033759174778612537561910242126768922687790720897731682223808343632419322209975874853952035163896145249963245932314446604173723607273053798913510883237529935004089381106869400263998293713019194536040612878547570674712309905566307687468082974798646416724203707582643818427226595183683745496185442835265919149986465294880127097452244124439032130664532258209888461068050631538616011161934459109049159380459405693217481060937003574058370679347335086486501699609971837738458428777354876755609985707523453565251865066919468579337753826724884027610883500862813711484228434671736521389894420878773280020493318826119599514426518368268508443564627621681750585701620422765758961015434832513262214412225187427855907989913672927570220471174393431509917949800093739062051907164297713318861628395706773571653488547451801725397250490916840266661135511264070234741069978287906354003785623472341666077825825327904104908725201954434806695446933956591908548620658382747796093419232056458481283111978321416532270428898895387972686202048542588923253547563344584612609552389596627781322931757361163194469583910201749191237762768476506521146877554115045690139195648582849216260023354215353216941777371540195415109145619481823001550094355813728117398967686469619685877155165228850690689329193679402834865225822626606443624234516971778081385593707751153750108076301599517211241083232139090434620378846273023135225414449378437915777314964732922733163456397646024248354643219253631376341325701857028421813719455857563394195753277788780869612861558364491916113939209406693605452878913564959988443960751478059473742564996197356837001106522377543131438374114302249868495783986688746710696422493990870139628817192188470953312737397415180654041813077792700078230947239298875129161412484296033145003846518675485075059594741472246956758284858628537998961374816529715774426213744263496383349772931299838164254518457971392342581936236064051420812540966447962433876051081937098902008728660614200506334248889976317336253867704044274872167391247696477527182754682763497477222309306826926637272759353517853021673146832600108342976484060430617265082738244798528907721101706493249107249192687348195054566186984736312571619131959891191548434691434876075725429151547617380486013389101674370776880903285616692006263825143343122744142780575322886504805656011980496743071788694606754996909662231615045824470875139138329965511407480385120305133866479767881888303775925346028912591228687497629605657546000913000382725902513218383853384905993330725359189594957193365705471020908507850138786816860159876586127123772374810950616465567844958637520378602462577273088467065271913409064687854261056090628941672891786863201085623769941902808119084571160271007272592037026552457006902077251939063092506936200239673101083182151222888733994185535295283315334132664273089066781887598497313035343465682319938616618493906961803902896644716779190087750148514424783898723185157532367242349712385031896236740284241862384182733211457932512113387991432019369137085743579008753188699201655908638942778172094697834626295990432080121270402902768009826571117146102295725666506796020917505858699447239684157220243606682188432101705806306220657433873802485281481675108150041765840771800525039251954219078842165460371679833798440351386918160302442597763335606553291415254426352244177632346152833975745563056303493557435135545812331777228388331424427696519395061661344703217200475211880591044960171661006362361394307452479560742243041009289739389387784774612268391957961376076483658846643872596889427499325631533511187252916559118442623258494968657708739549344736655270444743445747737863702839545668987931014370240720607412384800995794310474417406383203975581051110969052447278763194913448523354119900662292714093464488239518421245953860547666509979670258132278137879819885779235579825145983051284155192342022075884759114260359863353648962605643968875701234942845776827685499977726088457374601216561715239877116571503633846800324553640728859685087944035410795996537335793073913982565907173739395819669589697800087040702928746508574685644596145938991387642112061683736217879836743937912565960855437119389831011020776053533123785739710585000806385720592744616158562642762302117184798467935942749779870518132264057020588538278022895166356055514540602592764441002626889951611216881255048141750296370909535526355593664687944222351752739109499944258563019158396459413248990161164011099838615992633363663941995694257527838013177994031154549922761016479637488748735164783195932908471248984286136495957460619402129452145960161145987869530761863755954966088002456969707484497382456352874795842223969548288643492817331068966084529112658388161637195345587796871855651270093667840724147893930799519740747749482963976635256275695922342998951938728038051617343291899021571870397800358678638234561091450902622286812448390131169372493963635038575168637549743875806861770997162575601235097625538246859124104932660659570130466639914863042255411504174416105488779509369155928413317038223368597382245090388262287677685186388995150097731474099256777496363259117167030096047907314057952623581785515294575213997885267200311153448514266489446928377181709674889220127239637740667616540528511770740686228590643090913406789753030215279162342908179945386202451284307282377841604891155832628297278820020668906874573504389128859445351506911589923567994816554774148130175196086338118513833903528651437067909976863624804133242606826821560323401604798332599022527908468365477735020271943231391593222273461756255137720201997348627180214259431775909044507358852337838966571647267222980503522742534861312073353877694346693315626478758222235512047876640895101575894986825323614519312588629996590821764953193155050898361810374081791612734306870575757311346820936482086101883679805835448606153606503248530401271931857482984612406982591285385175046495033560348360660475064478638375488073482430156063426784645410784924168811137000022647727156386520025881218948518451279884123747057844281436830884449719298853858437369654617541883999849942604224363062079010411857107090631040921352470503770564519135301109340132758969228382180269083588455887476300014207170742042652088999476083811645149543633750423249900827376307070637106039502646214622105155120989499512966853101877125478464641788870376206902742115322047473065309396957386943605585033520180282869558609443555758764447130138088841320576582411506867991178604548006044753341024792015582202104756476811243989220371633035725973432561027293537336393443612334051247063357303216422529474865968832617435271050973857802888391554093966424818824159925119815238305753837906416741515365867009046746754080740613359927713293881234599897797634168357896071339356723078244053618795604875063052361462580302532901051665432989510046073698734928930650216374825396550824941779753474804573971701643574485576455525059312760478857062733180668148052811296183026908518976780430678213227528585874987572478881041055031534708298869666837511644099860655900343672240293252286263227382061860138571404862430718733091333973691865672178348834049715053019409321798889679456500161484411054150078925905108844880274005857002145898318329904923959075883281697689054238942570573830734692703140982644982679480341555097849424654330574296258503502291551872332851078873478594758942111983859022475068881848255194312982098245464996493425982794855229098997013148559704744036848934975279998340392723216113194122578059426808157753305446426210435436453592731985254943930225969416557696008967666586936263121678684224526739643951018629821510942526308687597131338622435201223328088725438588834784940685278496350943288597556530875809109209831956786996643785751054207678464780052711116877766990888293515638758120963614756148208903928137953625337290530844247339187053935914050236776556620173654196583887159528435723323665707165855057275486938272387766998688795475411303596186864329716592657130904414628396104729164332440464468277737549474716355649070961428067298191264384127375839933520870266995150769178565222411330814621181884091519381241319992675464920355751235894533670936994293383314035960295753779624408572631292154030638061235749093481379042766914525846480581877453989607377856667239418961905342113451145897930980407118007572690421218315321350520232306424839684067604210847839044081755514742961099970545018897943334386458800127850257121314808955779682857953117268495814533774528844649824195781038645583923415464919868519589552186329873305469010109207406778190495956531528879827275469947851705831562996360170804456161636004664009838604526105522685821785281074345353706336757542789773203462246572501402483493861593029213295288937386119932591546291642842663373568224119345010492062633118674901344470736512082416673706777426296282687346868668563657156401556077858159489408943069781093331576215811569918688955106628275170538477970799902830461586151860096609413735272656024073470950367040462852446102916313633646472013330178194391377877087165655005116466106382098462853062136358304232151316228527183580633179031842521737257598157617836594480702816503207235071768717402922122712052264109314645444110271314980741345852509054714603766939104838529505900178609542004927623874024544429982454686014881561874555898433186909063599195454103076558962233726912677222393077367845769398594024067162390845064379847071294272209628995006892246535716437631383471204613631902742515843044277566100768657729079593986062015095661796665453788027031125989085120502437219271933332195812648242362984508196685602617177108912972802079726792780837581137366425339685779814563095905812775050208267532365539798659892801487189694170082463600081211828174658153338454451764349572912061423874735333236756252076945903310943721510336894472077260862429370277247657792099808474970505261690316694999112296050057638162610315011359962553398614095031123787984215821103450731212763249445577039214032578905998959234440934922215582660320610979752342673119142764230787453426745382080869193042257324584113598025991721435358641881493916071393710222327177744752363904378137614414685359835578449167840016923791552052706868379548116031900180510122359207223921271961850596396706776943007193100436085468366608262752886913804233115785184844555329399567382245501156600219410515090078203700618888975422848126397412479274603307804821423236441151097111639120044857837837855152991119589533525581120793988114913826412687598522026351025201490956263036944868646507282675637297974793275484283920902371244464300047896408824471776555398655849386714148632255302407285632489237979916380660016812403820295320709384570267690866794831517419290163607766535262185637657943216607296194710196143489550914452492368656836042316386403243476601873755375076233726365719738607075478469330059508508691510911854714889173663148523511607535886921682419521383262062142658248495279750150153918370846259986969064043453133146596145888519449790588260498392156308156025664328884097412370498102888077011865734960635843897618967312653601878792249095108797215923843426363852309640383644487978945696126792704964125366961826458492601938384763282478036849942237798091660114428394163429901991604773332213147742432567126613243551541357941501580892739230936804577484056881230831655393505619982369249490769726084147522917403346040216905859367623385473247533800052865007885612881318771576377399685956562625776473124706379818856146968240408714779684323811469018634616663452192687246656297254756974652551879578538245141516266618616768902821242177434260738486318369941851553500993879691944262156812686379189549782126498949064486203858380172772772431343079947007980385871918026746217000805287636862686703607059406718989453980914387029239527452268145955546420741808850086252553805656493755123541437563754564578854615379465199491384062491113500269131097949353582057749668906772316483834912795548245484655965256126475947358821798885956231511348180111310883786383138530727152433382513475345031769280265008971152159695370710452863922668870136997154032918447146012282973899720835625241559996444550530673865899292496761895164560315850280407001283480305401973325102832788657172074927797642764881530401299219595021610095894262431701270674872082367389045014446841344281759921494257270836938804821717708025710867148435180038861463888646006092897752427979866919885356883173489331102883553020782465013329017009346136917597339789533028639820309303429008877463148093542791967985482100793078239555496834277917235078317649749608754032116302478666985790896000029885112294857225352595978194085936578993010739592955054812663352602706388560178216535656633521123222196998887117681974875146959376870729447926887486788342985619657660950185179851494003746875252185582090848033915555272705015438266848434474655932786468145619365704079570249866755732116536307807020949974603666306860360784923793866948633719377277358175843332388459885814693684376996386344045945824198922632942878900464614997538324324763145177908424711889237006905540157435203894567619516931431366620068286997330998113519242200513443213477419711203542143353345786410264333996451968853577624010513213381147996608898296803896474856186869079441611961114306994445567626057315843755834835908540817370275908830651515375337048972700098304100064671514188234958924477927562346522298454056787233527941714220722602013579408654822106676694836341119688857266297869653287604411621645425316516503598176471666727698584657826698613830947168211302138621880695627532284935231104021695774122501424426031261499368686583753486025021218869817246642476971814991592144157287558292933478421880471725541628814582390027565169345396036602639362767510743476854636615311118444228302877443855700049062493116505865658895032854570882468706640247084198770425399371018793861192191250542837676049233207538369577829409450695224655135801818938479773729140129666658074376978594256733672222154847412259741990139778815023819986456875616929183514480543658173600264660453513832442534321822377122828869936987879159285680951848177550554150939886332291776277046414391923378179142585545938012005022231920681534818674722843916374422955436826730571237612107622413686175748624832436035948221630014256834121088610636804575609085514106502134226662909773772352470148331891461877183537393024125941116700079850497271382361321021735494863262425802045223459483463771665835923359808771066399676976388477755533413003274621861908947764492366750560481294159668446754558823181710126169782360068760989555501348690754974362506026620455992761507611413593054966831637599767114643461032107232012460174108706479301502309404962262417929576474761622424111161156941455086241277293095623877699733638520788020541918617664396761387127933028742000040494079487867411788949361842971232435092006478627899665750461466276238318051318680559272314762098194721670811200100868186128435088052058160077580870119833688553084359216732738146548645876895982961343168368658651033282957381208370561943143263640530377331848581852511764657009571263086524133793754685845546024516602745708752294533170170273302127416066702455880264701646170534762679181838901366492482428457327646157438351869022825629132330991640491598649011353409068272059890583559717417155325135496563003867591741802264503062274080733017212750464889958928477088866449731987425907668407582157307929949315007235487283046332049159027804876496723525091917476509123161493872338579148125438272490331097257327990686330563686295960410719930248546069899986043485571737561464933981246073140030030663024754285772761362741577462556121319009194413168355989134135684535506651196738288283776538234432904302378005325149621269912774531250846947851200443999754427089425373931209241999602909938731406922305409632958572384393360108462212724139235048115712140131488726509697926449547624826621361703300175655414183605274590527069741296906700223211945815300642744717951562046034466440140241667262815535238342567497402717706429426742407886756483583083108185560396584222125372314819397082932078399783630519825508770297108343115370082880548931601713207489148617326797685685276910852820604611028972553890811927149219660973668504818955234405543173542769050363904659516690912352959163412666374971744566571685314168109496001756431954311475596648841698944246567936751251317666119622578362479327846728762182204648259173006231475263611749383039295932750269422489641071634577592917834266758654023166865527826145112035238377374396379623560931360457415357082244499828367629490093908670933689526788986682294324003513231548245034106204997765131606004183380784461330898508303350015238747677258540491796480072193838681637782442448130567376433106762028761543614305376839918845042659796635805274723042632025420568888326290407303043733273246537846304850234368006666387422952057183615645581183412097838715240611592058382211759937936261195902965876013902020873111628412907956203112495912444500599265572223665493909315769038704459151855245192544592004935978328478810915784297819536707241199260844617765343872406569535232514171700899231827104813066239734709728376060616398983621252171980503384952659741361020149261666881857531632913206351459320614052617020590482621490690984527240222690192685031403665138748237442920543114819469198017828498797076705830063983379828322210663178322645143338541020517979761477445118635251541241669293652525625882392328505603641402963956190984928517087652847295727136125497983185245853597872324613177877389904030723398198855912114713412549099462972351370733051952598865628631573272557317323261618836261411786330520294125634403890908716872790886759512378271622074336984161514197842036764830816326131458324923212036392488519485338396487424141587612175849576795432047546927584169663295926282416520062408699340793339731771112957706816375404385921005359910308409280013560971978978924898198747278211869464131203762916028099600186313434041292808298947901095194991546603223476240023593638562029867319851484107369869241347100491937790857137700726030795192471475820532082788833589292697359717098181129723112395594425221346874495648598158640258241409455601296141619229859734468631814223322251199218347400441826094449132874372708651362905237680920670514096916412065426732259583472545182710095702564833618465693300150800086161688751502996370497975976516513260524576924602568896242303664311403953607921181149754213521731549726891293546041112451072880250940818423543825939209183639489115293630135119797440060848266010888500553114377685770379978698302611552016208107490252357657891908783226772138272947999530017103209890155661288186542213018319590814973653203383961396231931083777592921488981155294834060927742080761598482354898619295129696803211692115648369946801024101631124966296762672762499658229540432859642281367418484098796395874836196696135933226886541639498785478875044552708577149191521841847228413567221862372178343281234299030786407387936693038252150345150570908011551775276058352984240778807139276322147132095014251030297829200299294171643990598246331877032527246475951287754548293332831612463843404439397405987318311212530442307359553274089398063855569486565679411327210794105761112644238330502909232309592548890803005333079241918580480355838541429047909783018797639035898888548672826546477094092843489448385631449652581643995749284040759200586209191299548237330044638799128079059984184125615518929823299452302887707597503442859831042799398488374701139711743835216745304564007849485093875852050646901050530631451335797952241025638389188898627973521408645141666148726055715208772799222958442691320112862296526001268376150777771892123049079585884656221082550868534685006159052889271576058471870289520817988872996113444853131442291899430392790385086733119225421837615430324395663617169260683027500651647753319206945877947503589788201632223067621501466457281843313054142919472004732221788057953518380149808787539669959543658628413783475967081154802898290827449323042576329064798826418784731278321164753056667801542096174111645287628327972545654302273708081977726979512015553630232761585969081395674560007684277523015244728286052666397947869868196048884105221867285394575752816202800576243840390604535242798264017346977715595350630801065482115177418322246975955293152250671602350648693472096657147428675490509760036146638576140867544023902719257818786187655481077756116936306539168147008641797251886228407936027293036438278382285196755429587632059460774343514562302803741745845735063482180667425877620923514644144835748578720337438016074447209182554355816916979846206826993262356259077970358028083281201813307337558585102181596441356407384009646894623575152936949469909461924460725052769973844569130339207079798266838340132046043704798393043905869788164768513653801777912259221255719252731732056524041509060713293175093136001051188795898932812415469444661004235171341310981533192901680478270569263433675213595286568406055741437193517911721731027357209165455061154026022849179668418907106095495201526441235691150482636879080070631666111724257247083709523607240687790161229672015445468127523162708492589922301971435436813505338715115872093980527509632794438587259172973104818057905520993916236947435665340653887480279248396529496167750401324960631439482397599006468760315722331700022461708004349155696112391263861549607040926048505091976201462575231612687956410844242955807864706636699752162476072123528082847631291240846021034559485383939329353069304007261705797913703761778968198674935111092685806113186536083383406308153561110392679339281133724299461436149573774611725518483015477242891552773868378556407391929622110055426078745796689012133504762175622004187629672070747249715572024704458327003623506111193055705362258254769507988116453547165415906185374066789232329939152340934786680568708588025701338348766136778808996361250575013480085546257045616036613606468930277029342949159003060691560222260410852196783621270818462916919477608625394618646213216851343691704943661694408391148403345095653306626474449959546618144484642914949787299331496888320962078832647056742320481735744167926994969508745714267099177753503304814909970098561995652902395842892319774955532855039523111683790642373731776298001848832835693112459389801908269527579051689603422062583909975550916201475935140843147616459289568828040684824286442292457067795704923649253199669288799033770121866362594710228232026711331566724543744138122212085636223608737263976588569982317117627181335266909127026582399091183864236225118019672660804597804400757907883516721274703533360071531194037478925643755854368945681161142405278238891989840413570505429053689662266875993030880158414244892766433133862466046670205798420690608329422243394022612357601896807064143693737790509763516657020544759128084015323500038452135438527563563133269095099605407873921768021885558923713799833047104914493177982326503786922872200166777391824638321295991860429666239391994560843402051416770143077062800116806443783675276236085420128804328011729722937257574946294390149867511737122518388367711799601583904953158102790879158342483844061846949061720642038643728012537793250854913265274568120030234376737006730828473913446777926154079881037277836537109158014410806041494281904741577400247616000579753558242954543890117821970943076466720353547182549665749413654109553958507492429386580764030331620554449963129665935246955880394671811999919720544049823213213365094659739353931621852863080212752889583230958055431839553787833149819516346536927940955542921251198344458190179362016173146173932682280757950058450971185393657052280070381156913610630107431124091906478980170189402064971376672542262173088988008845082258981440855879456737145729312796601509774770251573929969029716883905609162682360984224834065401949912216705068282331162621176596556840916037786520182073065413086015930365283699091589478030696177031849036966079152827715786217785634571310571901390094723390629620012228561009063245084277193101424711394540143661787654629317493424063221689892378689330529606636930135955758837035820938448918584359470143560310115475809131236193844217284049947967504585164847841919546100752676357538042287051379691222038332605501162052551035841500034018772631882106293356648535621944003035108941197380598858977533422355169169998099020705261002112713764439676825275693007117671680352767313788304252273962562289069956553182094101248329565671059697882878523871690569837640896806704951374921690799957188455578949571937062115152271451685539597920423836566406344722439489022346665228808960106396074439722134990259311640843439995813179536794840568542981746320751606923946809723376941392375501600272540544275370250606240723777311703249936402060869936128380584908134248562741779587896759887400330049051542537624718023976581724461909582877720901499433245214982007916618324856272364788829408790414604524533038232590278705017615022411599798203284622737108417853759041648277168459015032231269036571099533566519063324741499962295269552142920991550586351247496336818935647567053824768184270835909041648305349638656877205718607835219676628947012077286320708485880763847555281098109717046126463795610682547542175011664397499302675318540087646322772232046422287526668800600049476864578069298099172367146752930163564808124203359700226834425734254418393150602835693914379264322469938837512338415741001523715945344103605156815059042383454184762801523549922393045777971736414193056640291221318058816708904017848728274722442077792752140618266994120932709777914046358204158732376818170556856539855349757372312594992162028977519413278857855115414045476826527435321408148346783273310412275873235209220889569086356952736391863968163419241750707491890856348451129650649726583047943217264297050210029857421353494714752912871936910074271046802262446185427232937632341184307008384898271515089306845917625642568458605850711238004362823999184471965251362726996889405144912224980230610156811210275826172605208966254453828125020924545222454403064293534265125034964505578526539982246764914577919251949487412016373696778021659039846426103539656121801706723406850632612794981194763154301020432963989996688200534883726854326659902946038606743677154774106943755803290073214259041173657828213308052639216208184238089418622893529155599225157777268175787287173175799280643244421121969863190003302118178198928741608446556846755515259294018245774365933390185889217962752947892387788700571150648237685794875491589009756220493965647708425151453267946957446957304778049969281417657141753834018121334042575849563117437198169841044205931674034314393763027975768628394483117366278292985074385109591986456109739184628206026760870423929128027279254994860178280607540525546140469818191798370505529156873013814883952155149688945476467236701016875214321467304299303603577409392972916310820776847580200999536116396684644070829177401312588696356936257780043188255251608813521024654391012790437515346664798754845007211234991684531417307477323864019729236727394858919722852533994734197024723019581668208555809238213207033044307934278049798901981134727376059229923231339710571641411205397746361269471596132601338327297394204617015668327877717528017900501021104801375978026267121484316578676164167015018940608498068178684838528735889571011458437305422814230762113118024847491375451013317148359114276398540124236551383028478032847131183149050586421046493480525115063293528011326302880483156864757832354456128826836316442636971641576017404062531888877000273992209644242481044174920985139828010929449927343695058004580692735523588113033106406296146040007866360101741206621726592346327028497378580138552629030393203111448398202237032007370526786996239283001261011670451691659640622013435669648483174684246418657708991164141448482911416878189745624269065125373018819176812021123958764032727703134646568458408841527446702955114990028488500644431290443156880028759995598631886288471686575544302180529456901864778643903102655747864109732265087610107650451538221931874195382670146647878527033646038993319010736403613281677733997609860719684125511397531605331404272334828800022396114491660308916439154674037268087824622856159249542151994055181466498414819911238386757557028590818261345127540652977626349519718233138627244566536785042150151214169867135115618599934602649008200570813297631993342746824807785874194850098530708683584489147384930442271764532889850240573054335938261287224234116004327098703294398201281788317598641221110514776655367433770434397806245800755092585925562428520229230647382545114680322397616110353205415962485773587818880526771231282876826820191222518096736332808599379712507618686333185458887118062080657587647614903917119833124638071469666743822591973124674175275558307067371475988811916612901463338697242942186297278278930820207600570029841468176358688802149347353884054715370796433934330769441461931747010047310893889343471922259646323176270257731697938805641990578749882535785081274574789174575181445601274577636001653617768987532811021645560796713165501805875072926813798776479327871059238988707965100763215708046899807518604021769391523533641066181828891027930191863181799656740567869947087095855681321782654545075986531368873590470160721449954636225313012832252182634948428673144454356293528517782127963034288475457755191958362450299513197511092317111546265474672314915080733022060225562548899547898877467699983953620671855107260919441736811808411353052183641987771368179598696918679480560565537928508648863335846529400758180555685430249704416565517333119286589403994178686750968427088155708431382233228665687184360870151395186139106523281651712865082611624765497972288487225913883944751559438721509028437794220952488162337159043222318373481853623751333270391252130744495895979737180899951999211643942340880793207630174768432012122379624536506428240178639045026604840671884166566543523866256031193205357625330718788289064276699468244197260706562869738988076901707215466897058889745807825609491349258337376922118610653802686293374142471834870704773008346245219852029660570303498134347233567040747093739401204810078228528717464008749819307422959966035339254318882372540753500754661225231640723637546023122568684836935060759974395458351102107439146644247924774781925001220026553634784302154571244576999121847237597084879256169272242963340812367914094939015196604233208554321353525482229123195209606715935461211241319347903842685871378489402904322661789821249108489706326553384752748558977476670276979831030951560116099633349496142882583941343585565428697128967211166303480138241473061627841760293572765197016559558439185824337928428734189454239719499992540740515148188026963319593170762320072019068024749246082705453321228141121483436567403284854081947999125254844200609385104358911923475269936745878344013122558091840401472700864182662135291313841396987540976368646755953961655628404693320918677249534386238843376723955481071368946965503838695394776097083126910375750722127455815688063407128268243469630377031816705212774385431387356578907465460346060586815681871971150381157893499931049274189357024268383720776963027977716418981658569563256800273635696276951634831134344618087102166171599473910811945561282801508626367044646892581928905420831302163576462346456208591722784731499329657465954208780357595081831147925639179969202468550438216655173885511648399184103319933093984512023405610609738532786361738769328866449381515276050855395544234729348526076648736681264715331232377272967787267592132716385848071104234382448734318090729704259535931838678695131505730031199859687509050626095287528231891965136856180224848914930333806593808906661181045853850277028027367879825799604910409282497447557582182205767882132980191820698468557744203351990524839881007337532909662212197518557459858635373460751624119402633059412356010195872198472103953815040476766121561940255623569730025831814682727563219506640980569268757385635684595112822157893913444654336206086946533876070233178775062214987931189398521784915944310686465920651877412451929226983182727868664579718154615085248560264061204313677311918870102502564253935092623833187025786978079707746881964704988844464476581512837099275339296454303416616829381183487655956607784267508272466785929989836919320103669119126150194380020873641149396982477555922284607502934178676107654261611934472643786075569333019397046307277903183800925581386317757352394849403758712676643378075969433047148392477320446980936404533197219511692467646399366672467373170114792228789265644030231944110412801011923133021106958335632684554397952516160024807507406328077490699201321745420121612669961848818650974763747386651786027668542060601943992355956865830471868297693686787366012287642372539968350975936849526666990486749334410676139141058851642122904383168829224916171285033239352658707191888806504311225564136080650221161095048482516369192696474347832419986865259670336669628561666335751173444493020888438096373498228686072156937109862201202227939831443884583950138715074421863251597019149247907064164202610571118012273998520759343213457167283729816438790296293680072398528569953304368590886655362771330702703038887541095813356170507224589482602104317289322200256574380006743789019148647593837752450382450202571411177479142946311728976455005989362125902141025892520200198786464953830949309787341867997790189411374867477734171600555097562457193044540796101890276944849977209239656382704322294108552220275101670710538666503720466362050590947914541131558613090051146947354396866974779885033303509792019928208191498109100790509516820437920979349720259256589926957175316397397980086044501416174455689450007039373529243473142562294945145295637546354796153387404859279783912524671208326840811826153812585570504046859655583402911110002692962111470953845869355105314336324163701612681325546824152575456715547949045924510583649857548751671136721413293969568268556545583421093948726061754867611884897350637007221070235906577360414091600735859385822611222718208123678054996291908678568768363137742496344841787168665523010966998100161910691015842735285141223000906278343621840464103529682503297948827078331084959091563373623360584172437096870721549736225354908653920729795734196991108213777591573408598734881507558177056344426907949749117813845977977336985663192712290397349323033368519364537955353850164231053565919659622733665450685241487530956152561252258361498250433422559204164232421207278843870813186500737243435916239702103479789809785834295595462948699771019990403109651510921591210615914351641275015792150155241638943979177737398947294292176082673404929453849380894515755734071727930752114734045860861460446883067547988352669360915932222879748097111763969861144253653148967517822086474859112270313418847876317750738678906944443964437076152399021366713961177728973994196511713330984758431446494032608079026749195996433659790091501967466119324030671088731338304368446161227664691097118538029969277029634532723183298183906786005725672986276543265678588632730249278537732735790841008437077145192257561690756960978007037586584177506702279481641862617863694560898817715926722658488514169398145144585445963827672885040446215401728355796509127804273030950411857761300220501396012379535590676548640404816631626603429001314485205976243715408660409935748815434192103665855888061222311356474680098340018445574135278659406017609046078419446931005541312266727551339059224417865178449226097956256577323943991243232996513457693153162146604804277086006808410797035017445603595056996987238485791741661761376007582434664961842541901975268216651848179288926732176917464008005432038270093935800639662264696599534946283295968510362935329543342665180362561932708808418089100375467297605636533104247364261472044750867050828388580594035481920082774421667429285387566639024399096435583714162255027661282754471352656743842348024354714152923127183554544538558628076113583393850688915255365355684827605803698880726164845435336547100184820110589625948387287809580978253881215467466080233972492183517555616774433920271749400792054895985097591360406294558535562982875370745455696322882170357009761989044946008198832099848836443948645678384903415504788630109900457197692713844973356520733935261954651372121379126273703693252468245572207397477032689556050088301573397767204540832764531445807714284289543811762577353868510134809784163128664356356739021494574846812776710837452684270073117936240129195777497124960408074127660643494512210271286503301988793371686535061360472561260201550770717806003222324150809072140984470704069594406395455157093391860743155456124962079844642145713099354974722500271467557430372891774354818109167450503210864156699584333762134121866401064241439117576775523716934848081919106281523056571272652128182526953310874384301379329133205069470056922011962766856712128485220902726205799898975977529972882134330413847770432229710822168131155509835473374813652949681686431006139992779350439649990540580212747009969026653892911449338942004374906812295531881643030164552133435226908135402304464305095958766792073982854104051047954774010397154011580626941474878829602970201599880082325027756154662561198935158631696949227408196137609197519411165990608214440841890580444180278166386572822771236022633863215797587689068622434184314222614622407123933482396019898950274766301337832804308242109357654694276011204726895069672123462085035697975681548656128096889928435252257046743135270693872223828311730611318769662939841645272668685421214508285903075431433292121659573482987518359663089455383082658465340364589457047619870113656978427144047792511262375268658057204733676801558895456893293962782659585929896546623331346953220640187681625183781273782937449380111217178185967819033298352461277735928345150946279297403399514719090563794890699855896334641313125155987595315915211668677938612022961207119255737120294120894964971635550844670196456293726565515464133185042774880157368673913396229356871908699800285769419059570832936058216692625274708859985092051612695492178475090661787564287188069431282062780186042430456425494593946007589785842183923040654367675033833086444588630515956964351814399373260007574073288139949723130518928577855899936594806987058951191312106012070761307778964315647347447519518284103532205629440218846482003174553770004871615430435434128026545475094530658104433049305553165588035890901041046171527393565203661700130720915033348625909181137621178221663822127078598312824311709150543546312913947734051824178390521837543529158553929991193032533756534832890738175754453040779497045920615440881426381408640839738809680469982361151313243080540361505986320236476806233150168566241090957334951931449828631531136195769924024764567009410293189214317771012063270029638129484677958001009021599829248124430324482572428757612867989761847802160987107622265528627371101394959411043230667744226535286987545063011523083703857585502241080309256146225064370506084761863735341039072072621539218688188749949947998446488978788028556291136885235224574446577286367306864155851807703749645448471949282427420116022988956271292426778733351045143822235965581562728977937222900805156040624528103210843950086118862272276790708262051184781878338407696487040622288875604242073818192621432298473416610567210504345767874035487868517396185646936452143043027503511126015479731175709198707253125069296276961001483178257217184666657007817251458520267557611510812130654653978558410059859146147787619554671458522946168224250375661538561221206494164133992113959228707379348504293641528437048106330633575861120018588971612521411377609422081792744259716218026080023024373047230882184629805391017215254916068556114670620852917351822266691503531440752264636144906054133955282234676766953438322787354008980073645149505012042676708957020024164988342838489690579831104071199972792712023194091552322072953305193421615292746034884975136164190546136883828870747171099549172106960297619350887146652435928015418701408823098290834885198758098017215818825583138573968546766744186017863828760037616118350505781540152880654983041453388273859249314932290293796544298719222047790664368524739093175792734997675441968008719503552190485275011490976057684246177189174315180004644101936258542573893809206758013234428690331240721794780410536061804560182987669834346837558135979143207049899248357566313184405028970555792359853387806618375870733589570120074696210797712617116445224392358657142894047809095015350212764637984993788697288954637597004591353451452885328317101429772558725887903781975527990576826064630681284582455690015770095844859226045076449475268442175385522481208873328215147964044230369809538670224558794464903211161757240825056470783269251963936149366857376359801709060201074923254009791759610801097521238267018314120449994895453702178086859804915774771306808094319355791940790453194249441011194646666844327888664216489339577857185432799231336759322597161869402282482455689968188994622276069830168485749399120230946050981843131666123290198252110056601382738467540503444874515378185005806396364200719239445483617879240494399062554512437350979265478713963032258625500097474747870899946693019900868323959467366070710187686702877642219590993238075471436088989584158822514735474188285565308764109113640991929810919112048008238100455483778849332206369533968702433348691669812335759103161848655633173263832168909028006079173694178807854138325723387866491808413495448780147951255130910398203859931332990294537377804768669881464340252934705220919580864414678197933073859664590463093397905052904429571658316973411793951010954915852421680375470589383993857668713637140833361680839223004283818813820293985758592124046448071231832294676111621002557438014569912538457440058548860326060375001667981093731000240471241739785255143855529638622321549625276649756030675422518046092151405829793108818086573472659778835009148210108414627058446744321102601895567236042184836211660255238020384613770067446922002323602688788041790986566512900803374624087847094738528036373692380624986358755220863138570464545633914558244984805745563325785877747604081853904541064500030717566650370620252296251600968835620674186893462788323282513533091234574281277777190093695654488013541699502612102624741750620610632442488658034567462778506257109367309012723866600740665080638160544269232317266995229997136238066431092642493934851222653552597838535904671095725571087223315691046850095942053037307880199642835199682402176439464463881276301819676623304492499645276647642780505670213543221491828927702320030086996670364826454481918875343637953666256361754084094373566414780712602861890173398790440130489376769458170673073255577576171878618519554314837409945046261921472081951324095586928380046325627130434834919983702389090313280316347599079918194064279806389234969327363621197107217698104479805118124622114021086230783532880859517332306083304641987148840059610789812821023842170028758135137852789114148391614753897423448293420307226905852955566558763275932863729501513668531127336928049875965483531690227487430494000494936955673388455142578029003889372012976667005175369632101249804216257845723072418067546640296131483159735751020729940686108071286682878099194066242302811121649890127449146036250330780854486982748610393642403534269328851090505609121402984636177822149138882885069014371088082121907490895442068747231691148658343080072611359240446497349585690913443417819543335319287501749211599707706582023273508604873628958819109790836735657494350998613278803468361035507897840476122973540719890703127925427799711331750333865707476890056205684050963123461715787332827940273374570537976329431932722398530499926731256219998407111427523784134154854575372142963398802376734468578899396076250031078087643031346804114274605603750927090747074570429200933335246761360829807219312348379422352272571974021683366195286911796317444858111065192097271351263224084354946131929576630190379399856683236418778406751962032669074108811370852352470733987789101166222249294088959849563975443453169547643344841047177922980588397108428343973741271543063736735447861707513922661636670391130714293005450156251641781783662595985408386229563815760165028641844437455674344704868202581625329921187827377974387429783850146226595216042991123516937696273524907986569168376096769562511359928820627310531166130958059072164378818913083978043890325825027049372247593291970780721345862309331703635203534713581303067257135379138695219297201479917475677085634535068951685091474094090658428325735788547684820439785235265310997439457557455491324867013322329677271992141751558406885437490654029404501258107436441162155066695985758557091824530323175284882124712172914426877015087664172788338391832790922155318408277847109638153552816328862178024556458312828401091795732775450366400578997801700349603744978863621305213799674636159727906158649661571484451533624955229040579094981622890578631479425375181895503625775408117662396074085125734937178517467017315484906960357089540278541754069874252881167393606099828378294554383098747599301119331511284746578239297341382729784642235330348998465758573915136196580619172990930654184503850180602615222861821259794112589185336692537857439293470292424231134017099919038331980289329003505764393509142449024005365308560264100987197415275942632771788483066060105090350592585939543581826280147486083778897643867230116626690162395776583020980174896839465510280292663059783989813288736633564054933773641958102886174856477509128005602092448793177389112316634547861816409209519769762093528067100626403207855878960544397473832257365209344731986414732734613857788884076225110320859114588865882742009329793447050578874237636728651515497277202693702968968716818868445743895927120350681757861840756831012763999157163269283032448388595655522398759759823442195151488767845348139657952188806658840515146499915778398506153592473147382323462848904651246802336743748769261610348544807958421548852314357247307006126909385559098549434091674280323142636835859242064600199210887273868297470545445406606130916106885749877292685896719407789654090089231886484296611851838915237953384603249667158250996016462825193727381278282763838742519396723896040285280809889357702739497105601202118523063681417387459102466208247474724588790170896633893840913716470928203508409651483450025040616567884384470991435099173913430423981248014036143872802764122207641326925913632813131620719962943236070411596863214243646962715258611620131631739892613994890644452347618994069054524362024202205819116787171586566533984066780270522927745951266188738150759206267941984136855220747239971614556947209118011777520560736284389253073629050310031949133973935484624397535400649384685069304038458448489224551035225518469734411508889118472866187624126046788975185812625221593371474869416999376575893749543247813571954614260403480749244757264360087528534154629313377056847687311206275176165610725561023225924707378953921934426669623947652277040946025268937424603131704602818293638553124659222548547707847161477411201277006572922769285654283579009752301789256077496144211454596150203089311886602659583776661893491882237533992860810445250186446572658825458729246637283802494511949972726801080459106229294504575671199989897844666230152480347505289258828475883825545619559243171382731084565721712316477033726162421107003224810341552572802462659748526863424130157485681817851803903568836786261535776818359449490022466885327299033115450389650239310021461380220795199863799900597434759220836652248994070477757440027185284812206224319362841309062620340284789769324269163018044673757845886542210725577496657195444740680912642839747315740495351649855490927419569627394494271846112943078216893664965751506374524867775128164550458467885575855739381077284649609040640748840421308461873196620530183886414417235025206986399402820957367719688184974866622314115679443436206419367192240682992280411824538129317337445180086194135100887215021362727152350427179255700323056449277986484959905052225990748495814922822326898532700870373460017024468842714744104776016549552371437723579678610112293063835184170591026565825826964808393739384845389905464582745567205993187802404644611246289810278590755181974052597318069812124417245397857704683185377450531518735214223920309356264237388728221481016756783597708695497751255273681951961387610238195481403168409662928342230572849275510459314545513886863991763307885776125551242347796293619773706270055002185951494088882193199769454476767602749062012853284915289449031765625980529071938790369502365870182053883533391100893337290921612774924566208987962932833352611813002633294708529678173500278122495691434003503201041728340849545138517441997911294104804490461910772644694244878665079889759097721150621850196600901127626822498380551037472742173665802537653233480089959415261099835609608658619499269046852907573450230294542175041807150498071154740156502079666030719347610219088817371119152288370912542895919756417338259039746776284680304218756975111432509644561920750346733156738626998736928171586956444027092770983234810090809948462264996314420746988788461628124820686009216268759706511968726678729215869780307566876673778240419821672603946199311030149649482982709973958705826581894114839475864858642786614016032364155279340665888098572146282687435691151524171084696691930833486876272813023958164334244658987659673004590637289407940921011675412618936304313894622238306536299894361917465083388299124145666261496966334194912820683457620824975262340007865879510856884361945244706932677846934103990251259656789401018110686378935178392513194512625315682944639584007887046864623341757845812684805636694195955263820172102965270687123029168422950955743943803291448490836356809992150600542525915027429006540507011257366057898316649433135831539480871494355009054382971864563152851732963097560235603808928470851866458230162542473445269944673324326719256924575023489206012727871278362263336619139452832035850658368195538071414728749113194036643797713429463525726971589536391169234510614802953357897978674480142234142071780448867716531114287168688917365726926138961410894661740827667529609888367287170054275753183031980137145436286531391114223311999498950250712458264431783488339486476748011627259039866623147598979756316964364204148626188298799851927162613897233489996261218228749806058004470297518310739535993868605439228373003931677606613158530913873028961450947940844879087721486282981861491376780448640940907563403033830150207602712759545954519688621562339905392272473955358005260281284761983114078466124218510405162909399140071637988013476036786051064354528326081505583358298840573602280940644095707752480700155412548467802804302107536873522341332041106558427989892115253240952499997119654472817733753047360581380307080518655767321060958412764136362180947324715626751239406638479754472015059022828952211629024076070589257662007134364088628722681571507191085014659429887657110019879447734988111585413076743432296519068711028996733909321061582612939531061691449969429539757002535289769616253871207587104433611491388290155002812952275222403537268001249294375574781732706907314343788747518698926844258825982694720933947792190785857128690141566888904789387007479436171092989580142444148465820203663596337373899028992483554862812501152276573000147030477713988747115539398296043686239333347697268210224029086103314147797735409374175468364513214793062022948345271117121615706227085523467821223440917425661176350614078738861881966325275817738446403532641129686119165213099162644083741881888725486977049545830214659840756167025800368079223627714806258618515412948596592329631468543572597856979133534766864629810596498992771667734358624771059689186481666052864916661103431048916659143277059070300956940994471087865525598647438641781111471147819097528024127030504076026271880774796791332967491333381406948816644562925355315950016565027441655150543988976417815329226663174160079520669796323913527889062361412776537273117711158682731276735256187756964742587983330436438142221613319677255736359266824273148380664491807042275631141657962654007081207112859376228924867498393994060131727084514124479681697821652365960400254715964788100248550536717488719360204313104561944819687618646761769797574752169257289769272390722415181171805928004720186285729862451266067767092381133176490715339808683282940079519636168076884417208241204201659945723450702457112947382391887795515179380534016624522921927412777318385000561714248848101895277142240653347199905372920771873061808795000315917986349256172722945093363396674578161174721453159008223444930867489734856213721245157771758664407117500229293747521282338250101622855038931921655584666565724901821686228879155743768626532959908387958236061148865045978054488378131824702482222734411543480101534308303107624637527161567959688720658857393386299890317838073283551953405943175709263354734861473329814191016363804153906477707955728599029419146644629666376509814545750972127916517204272391690125967748010773579410794997055119700761572953137331008453061473567512560179127994897336430208195826276879438862500649584477647100358157297036989342294190186049571317140091456555916017276171896591581450715107236374202117239915595454050778211828279038221145804459205839511715669042909279979057258137657205591286888970600728374758422634630623012614145607862747177347497364517187447708310933385995104909337458503153095456276306837793646577762851123480077706968101912114833317608516211225941790558171673711605482946199504991617097635077004461390260296726508529400562787068918486043771200583814214987267568740563634704472699626407369529063436649142719341669957305370381527003227344383072686762363142681916321677563986908511801203929946126712536367373016269439457768107451778164227840036246023424328294951603193576448405669594683695826136156005001272606341055914965433587245741320556768959575047026103840481580688487686506404377491045774894134722596628041009510657484186915285427931775178029641021458313093689972966188154079893670018616723029767398453444450382228231231387832113091324036075646465835906536616432039148611929339124332831344084375013262333330631466604818058743711267195763762485585653390109514527182383914692007116865630219763149593766840997202351636628535741258453189805275463860287639645998451961487357162829089711867045210776896409400876701321712798465063768029045227048034165252975550244848069834111937163655513606125806085446649762488424615957713146401015629122079093844197273184900431346930278080388013464947391973820347177209288729248613999596659298087508689681444890016556210468577601760122197180053871125625373220585970450749699608288540196045079824220428066451423966555949925957065722865576200982704444263022330955353481775813219603281227099298212431970157443781143888103622973917158245840951121496407660380623618182072130509982911369878729906277475429467325973494114537670706053744356421778745879926232232879880890128234896786314160273070476502594598020102507981259917323264054269112611621021315961666623628096721708226029132247195688806299177576657594765921747332969849313190222179354397241741920437252451190089366965446877797156017490143537778345581382226179180907404826960935869854430987190879155668749037773701565525589820270752599170168831627530471795573555531269564544252261806061912326183269483166185067000975052342765927153784322726623133032456982617421346971423679990762453349109676014639752957378582436973947501319479818851256962869398914053327546868994490196644438287979640591849115956803272274696449523370970741119816637867044844456789001560477768030328076692946881233093724824288106293905931064143746069172792310782872089174998373234015855794522259192742420982363206797450182391049813887753898174840798174833412017047399147384903079696489519197301441693941086508845013125773442213583267997122174095153694035209019122231410445129620861661188579428244020471949541547171903296568439700844518032223230808214441128662352587466970358291828933976619502120186430295106086996668589489665730605703318633690458708297714811621189890005914599289933232384646716715735190729345548570486353113862380238546256594909067362777641115516489681962715963712244182317585966543009079893968259232158902659150274934287414552983534742752189232635003491211254854896134006592883806721547401732567867884629283015070581571745548683425734313455589275755711010545008601397137953757141350605910085713007350594466082335677140978757154943947940327615750245255753995690728139648361462731600368300264059446299848250855552246697763107128573312324708205435131530335125412933909234298501776301810112928033418596881710568496127734178011595349923351079483423331202758296816116896292390037417375435227242690668002203826662827549019950860245477940133845670526409871810155139252369100304136224019567076432615165065130484898747857261630756684535675896201857716861966137026393465420348017163913136323662326594680198400566212422947057706503616774550400893681361797893971219120839565869777558272160390090502336120953045121468948575040836569822010589696608805124487923897339654101877416104511390308464697282363369789560398409166661093058493892908693729711153359298509830231050231359488176492000328733888418666560704135643189058244415449886016715685063766209538453617977571398694034713697743697109821784996029373302816197252750806723626096144375285182670221148914724201065580519686759654682159154355241597584135373365443026861375209005340473408214927136380703470438467413324204928465996242495755043119867720479860161347497953070679781251722818650033402995038517327359923036050079795662047312309854070722640294678127636411413511011787926491246748072805017722306140257995570355971084822068794365043537050136133852928001888447813848581172192281191847990228269273569353485100462380658430706575322107256145822186176378690793929901323864134538074454214592118937236303613420443433208538586779011643266220180400846565123456281800564348336106557901523550840590587132294371503287401193809129112028434260469000329681505260523109963463559032903988407498104302399839209827667524440913725529381565211289061576605647838868581737900841498327439822498108378560577117872581306032445636614132667762245822052485267640348701733887670341318161528513739958352634635154044776834379829049275228695804451587046562036799926298906899853291110492872475124538215112039798734154241393971368509780054981726643102694996207445957702549968378740097471437983487969098019225398545201939442126970494122171160343302496949075372133805632728871693069140353405448939086735896070002937311106149473129900858473525693374680737716199435559900952649680584482077821690836308505621335262267722171825160521303810431752181025073881572326915058778393139266976639525644544841614573882078781881623331984767874595849312446063302864133407603127932218038133118361645066390035048727674179610178244035731335261634406021669498252443923719194575934946678027548432031850778828323887857131854635295365037135368275204495908317028615016606387058062721672981402298515243725556004329616805933729732861299016758061014854943950209183771779744765628830559298009594550533685772218255607266286184151202008155001667635987038902897621832419185836021782367551157654637909919108169315459954414249764149262306567928666351746080530778420513667743449657707047762331681419977509347189855163790651291375427284358319771896341149815287281778702082289904716804712553301208015950639696978568869909222500150614032293551539102789324076849407368488958596133485177330805780446753201373237762490735380444352340486028072665227237929271612226995651179646356816437642664900663229792881757728668195861448312835896140484518524002438268994210353959264951353289765641184553017577740601776598783739234503925853911466818835372532036510150231512592022344618322774257878935704688251050731488598562799822669065754692871619645058106679379911466358712698805239888725577001993911478969563002904172571293597391489798419923620755067152089493002874056353036828653264936648982988111730440877785378282965416359860781211849946073294786033737500020745779542301691608824468095011294069760950076363362971221028098909698195391787547116796992717487168650910822734059321010029464055359396853461979076357406534653162699336947723840394684751296520056590262679756065297523534898783865356080154540969053953475150814376106733411999321255689676454418467030712478570087148369321751506767151613391804424351864326312405476268090039651308272020795531722136731926994053741827581910155465184944774271825037975178248257472925471697521504299156048772721156515181240285096301850688285565422046616741994484004243650551105629837969186599984391162143531205718752619122329019963334697398503955147322515012907585412916821150910886433142230648454796269176990512591369085584959226831384727629671839814138317663031405505780264898019964762815801890332156215052549978275023206795128988254860886527710829887972505607816547909670536894845713023938012542121476689715763256333843874205105848649337413930681250825833294268064869288703407805519648462393073924749890653304970380348626658370569985680089124839715622350348370860704346122413988656325901831140122024583077414991342481188286959549402507193201739516701801833356785801672882325579733739298557335688255006179831578912656910028066199865513861012668987128469973245260120718718825705013445928887190017489394070504659191197330683166213778324685501307215453686105041118909624237177504588186231389216413888375405540679069830237335516053349795732308732232216114575834843106655653114968722817005099925134617336834732418002254855097831605720664028484731235967955079269774580430783887722694321250694039549206620828472713283222400494186001315376320266503650291964581717815874084527138319310127682198986427495936283906388923756883964118960619721862722317460313203148507531820552923644810523424673051329580885478079607983028841689557113708930716398750898805369789031347007007557786849229753891130210335848375288719798276616966238832795398705379807327637222753547907585688518073749383330941163547791723833084764222797382889604103591520769821206408588742004481624212172336008402239874614299329622212298826477135222285204484558746759239391053297443907789811021399044165974881042099721534510631552101295604893045963348210756513828978673890759912630850009925854280822736753053709641326349608741513497986718371044398010714695397529322364352676657168797537286825081302898580566081982836099457925668463740452542154527156949293911185585987364697608932938599395994706018822812175328649411697677015523892018454041193484880767943443089284557358102855863187124715466182765316336493720068788850544973003824315731765135654792700643668757124970311988325843950626304229431036830003893505248113168032099140682583190498964230910078869710316399002269946961762190076672753546736792642787356510924957179776731507380752919162650132427472770677374059780451627194959506786720764806681512083580637477052206156937915591572283171529169375087977712307267672709084856324710889472966203493190836110047239464915323713775936777863387979163429439212433893660327032977785643672526014429579479439455961287388184161650516910549596291618939398164366004847242808255767119515450775343044893317380248243398889833237938979116671534718351186019266313497910793122963775755063260607775999711944837663860009310784704966835498671091511155058213004099311803120579532553537479073408718215800028399401089162797765575592395916635239723912843835563106293919207378278353500953050693802364283558269874081654282750398743736805180221461612305624898784510579425057861012725300127332121976857113447426780506393089084196309365402286657765597108404124061083306505888459710002446905085687777551855820437421449614142007968502206137090078138770892362119221977537288581749636158505166146236418322474727785197990562924521771411415811302881490392482269997803574690807157564250263969429281053967121333458000625037939779167600751863570859078754155131106875496861518612708754059446145576240999265325044955004022819432718229517211718644091151384138087314685369761739785789254370738821637869899747442355650872138659574578048262195537333508181205000643427951742830433290440186260822423799361771564882869264622183093059644297852578149685021508271382708613766248811468908757809737535176805868347779843295450149357156098887995439867919190473862830905604799780414047436580515120595745594678348687656723507359859359377442783212008540823668449873682990737435259661459671495066213143623264440925441707304100278043979364379649200561493782483948246456552273982523037297184625745464913365788593972379327259314784531643822721191652055347872513180547430647293677106902942464860069750658712460483550158045959370398623133743937387851588329455667812721444420556136314996550503522901231949845258736793678280952234789865940980929536642284318109007668973921172854369053854762759512787672421585565146648520288293445718184520750768227939037950517206648004789918742462016372316285728384092855525048100263810348607144799032748629035188402629508045609653435873175931823671837213968340547101448579849674781014524997863475076613366366090580697287959427480708364959302031395182783103032055513108115396773711360162307207818197966167425336606745521060822538930812527824712507778922931358567934760400279401578582508443853347995213265809583268888273342726335809349990263927145187385403249181438408097264425633011803828600772482456824615174342091829693642883476135572720263968905892869751868344329800070494212948840569406762996778989326665890969826624090323355839904591115239689589303499650760150415596129619882149965146385572618870712199477005382276303551703828223777973925583300234694783028081459639051669275257317096834695808736686347389165965307134393536256692569269169924658463477829555807319625955945838192714304552127500726743891301546314359921135428702659868262585258068628807159687896751586190536438598148217128085511677890234321245025152041692390292155846203603469165874065409544200977364374883859212671263602506953474635437931992503823011281668231021280281789952591002682015794936020478361082387139455027563540538958851348715961802482380837237188988062021326992012861767700882007413146041543319524777816867257621609306396554723074598895800181020254905742734260146133708953284357209302536803494071133512459358508559853241395517940548047235090782490178908708203734239442589096060832707877102869639770336292360346430317139782956885730817483415053736626475987728660933357538424870496757446134579417448563308454748192278576334694302152039727284753707605012973775284887362613485938096396564704720635523013115665270142695269743501820745415277329343091666322687928885283219921142794116192201604186688344754896106649752723494441301018856553694009460867387258296682531919836184378282665276843227059635013410263570702798790202057295199449556496795931603902174371672071899615274906699691642473245744719763430324316960995568639283778925063200011023625255923297026456297236097054200060022492085560778761235738063224739153751562577909026906130678565099133235596437029752605977540696789483100445178981886521731127824496375137554118033733844028299202025534292924491792668660533048102131312265294728727123328359823190152176610318088017226484901481655382985428472062440742865235859182633585714265172953323948324501745202141785369479283056047226056581016048544576445407358388972661931101281126454600840542661048434315999114686462723859091353307551920759688189704462214092996301730968069345378786342837745669940263328612174218029590100529963859129124974479684029264903119728723974746194665752612841637943347532860912673124871401695929160862181830057252552971634972064376862492652383078365463238295186727804203250432589875059920985471956474286015489123748770320405074299889363132387702787816638737304626649508995414679515746254228677868979400719494221788044149857416463317858342657284374262649091054835983769143047898133029154226804814210183488370410453824532568612198393642247788016712026692832609131434642862840138843434193938831255123973124202285785436136286931903412223224300175269826555671672042396068347132642405040612622484906329584272581870928456840724192186953771613603643717479887290888246912710615496162153214123131911053038152665077729144209802611682265102887607826814412892451098001514998323201322196131966605498531778863069096209431828659736529420945119751815290448488184913501084710285600761362475912239541469981995429471746284633684390537277788068563959822473267801413999741406767963397126548357873936879373717489716410900395976458364082439748654501979496298425800168372675926467243476313518248361671151885758249117277264333606429608990179189627976344614745423991244629224392854181979974816885929014257240153720104852071018300281835101306920219286518534580905459610776163765954155288327152062605121771007987301085273372148055994564769956246007223924145310663143662523295589580683435388290366608633939907516525421835341196542605773869710060569462468840828367966412437958478923033944742631547121373821791579074985274761742811494496105303586312310766237212902434366966901307471356375642872088348918521385309169068318090957141350724916826055831840289420205418134478649558572820979417380672345256757452609162973565254832548039294077062306282954464828953496567186417499394771737193269854654128225816600108315053821254661785337726322284779493277281922685783368982095755504437680696278773399583661675853333988203277319917694775078333652557655163807025171103643930238095713946389424830344891835801105522439102521018647751152923407438118241854210754308772107578703784547621644973297272554851838780320665400556578843255200831160542122664395575932929053741225563118744971118615413859582905805237781937878499109276918416124420848327738885348255939518514600877136582657829831792505641622267971528933124139805576953207058659451301522202954557906399174151408110351855213593405460169156000985669077669452491455306560237414520948477110715945131301075247031812690082434621438317552872170758345081575489614524801554894476474426532681962622455157010583925427183606634661179909073185777781969825446303099869049360664894420037094163073072036877311489199925702806547975478443552227102410306000021637726874666472844116351464498629502067536360049507711956805578227031031347386264216210112727185517441853819625541908049531135245389230189979582471478250295910061257238447955235207962086814478332506015092950259660192908646494007200138143644383847909149135746824500367493627451589608898478441396305968150526106461011032440801771815129534650042408962082452521431481496229835499637317071856501684130181528520199899711646424874134507803303458745767804309340569626372589431563894170052394654113562049045639039298099360858055441056715757221307562127280301167945953266949598867041205950767031584596848999834214765646643008397632407554072183433193808487953964647674807706865314126804233003583082949796161082611258551067629633076389267242101439726188436623469845810072215661717167759229861469958354175822658350316151191220228428741700990355164471347849861148888520318926656559838355207169144739597955470336738364492546457778631238645821239108209552638316888460123912888512117073063262417704906327021952314261178845163127920524538548688745466333828441525342309314239877978999541987657037788468822657728433714516664413905684557662201657810969201208578497866002043127495457259880266770492204031907036451605013804497278720427445242813354519575410929314226348292145637602985287230901687234044020015207977661462101371270773479040061676968972911581098695352883508163221235095532659587986043999136892852675793705374933510364056567573532960104771137153899385187736937767488890332647296024735531881573429636293929510925287487599331249225806601397286248097015615679664278066606921244783233861321489483480106721269784496626825583340366762381858116229482831034526307696613419303005443027162450235505420662069119860754372706095233265035079883323053643197147828980687116718208281139429667896378367088871334421858385903508568507887024753641730698529362945382483468143901616268397276099717032355853967515785095699517934060688882893910305411484972655906837722842120254956815217813767742053443856942658398891578205809860277905346984839050807450205157224827440709579354045494453912981252926049436393360801844687181955253875157117749480390755527565242068580020021331481380171867673517091165929004300043674070862719203594116827872810133648805452464634324310023441248093773447572777510619845164821160992396768048209274632876467098563019293148035722544940713056757508554680429194056449138822570073044951194262592799246843594389437528824638895506674812750074542197394566411931591192426480929094888893870887615657961154867915576404183915100419636640478102152160274742754488904640328128520573009725998743509023562810601252405694304482088697578471641732400361514489633835965812655439914141324043845501845767560419435953353368969781786276085737712763368804021418017313669697880853466497794529484847483001635224253193789439356974675621110877732014782718617925096002358359053464891719355657965160730430836485415429522140835126344493142987417558221303478518650925456962273712433674604248908303908678242546071155600050243401096036397222099434483204036966056369500480517630349137064392620161243431794988947604655641912950290375571862209257421302206332806838127640019911583501869525036940494539662420568843603773583381542671138792074390586429166916623772939193248431610197850097634515607220465374915833113699858342044591014962306393711576647383782021496590911434314811411710432805815773659110209922083598947507280370333536211895312830159147151557261202656695174988604076163303701199508711977564738930386685829318699909504624346512921310029841780888786082053042880756338128763580044443451400812589316625758104783123907402844763274481356680416778284303217615085308321351430208731395837552310657120101643840859736238965370559670712406665617496929383697308606752955589939296700569560573231564210742976800586998686176504726423415437921363025122279806574453664177741237242517943483204008999682730833049525241033517304601033291034522655882524002850890564218961245183003321245605496095501027111740793911087842138438679217789383224040385948093313291546179457166014068520619843810303213890031904171379445386390653945804412720023624159768109465340503531536926706612642367696883944391302598748498904547428315052671129677068769172788889471266734003510361310112768550395068518860302231439133781848813796996369341260387179877550381214848162810218905747983444074740124282761332730086040182880770905073786433788203404557422481124575843929227675847698818074604654643433437281405102223422251823320876854034525422968926200266945012582916365966901832933464879137945574129863485865073504135337166564510077905736906565391644073959347709050062279969706544601266431961270396007851491826256440695667528457100274818467785215582116839935590087561111120365239023973528837465355279065477864915983999054245527163757544275517790157751816926932829694055674082332309445802355439870502844987140992340953944381130947839773069213270551578121854618378347437252992444026566878028810872232130348704403051148805408264982135259393183683944571881269079821414994327999939840988509744216294183930794497371652914267248965647829560378095495843561520653467075768143745950071750772163694202902494327896497174252045572999774450983194760513679151369421974006031824831424658752139497066316125285998111638015010728999722615491000151784743342002542885308154120012678849705548526822763009800476026149422552847544170903739489633392274907185291657375175053304708946460501491019669131177111985172733271402148980614637080030175332517193385183191161645880401926227819387281082819201746945491428776836821401943856908533882738787722387751919583305314603286962010494990081481465181525292257533858644258846478762381559369975684327323689646485588903517909900515094870364143724300252482991465616597393244645715051493534390196054181842692743355109316913255422496560194821982434618131074835667429994244503509288359527691596266555360710890792298967279499256474389262187848862301727520100340699792035432271760950194481588077551399095906781054036619861371330087630931643508822551351482311717541525506119007112467954024942626052939636623840854175425513168080529573605965576475682070931107336263049087511253617376301935602433713026143950958892926713217179034125780723871775414836645599211515045257218670161841925429769300712673539130953975156025652744676873695455525440716628775649224724726836945165555152601872988646960724879427210319539691143232432170013513577165129282207757929398030211313002707112374335427215901504193782810514758011552995697951583647826451680463201362506644723758404378222175628295351988612891779832290366041786855749618816285537346962444430537281455704877613090262872433549249232247397301205108843814704685724843313673026015302455736715827035200813232905834604629097141204315405915664974327970686553004747279225127989938674359163164276881755739878575075450351754317245296065122060663829601689265130021749391774110416170538847001356904672175544836365893270648713928875355955425765170077567886384430737035446369689155981694516986559204578462146765748136808628417023837596847861907516242031683626369668444575190863957698484621216927760977157151163067258346973230662561542004807130926869427015193818573828879541323744588973786662111364984778935442497311154696669682228856255189613942494922458360360500255610441227676608354443687119409710531682913754000339601061043419739142258723603926485033105473540588421772980032211035715012296958952886511038930189495024369343101172221311719360868216818640438982123994330394140971094919584501281965400754619206361321031067968022058910381458269656825976001980519822366113664979435024412371695289207703063087383709803763330191247758550694085194838304537825439554616785916610591133735346416994509412841323310220717173467082485818543615289896824179008639554705061303450663113229264143010282337339218974770907493693809119125643151280601270627216313796923424283427198587141157462681362790832949477198851412670794564905669671637661093452885339791941969973738349516732587330972885837143793352804551853353916595150032642587106718550327867515613599911873706284711640996358607148959659501822349547762191659443828179375394904614113305528468879941422843497430046655413534685349857742763799913053031611787324315700908327445963443261090990005705710492352033831730024965173681535348181423370898777636962870571420309693004162197966491637942369472978938335531788966318170390044288072980252326387877804606578869318452042742152341651021720768363650298732974008003679620347606058270011232182140855957918321527186685096504826133805797208245247365018954868314156555231346642328134829146259836009868119878567567458890705919880656366677270539179870394174653503486233967539470994474378704276203296183809515248810973204516845626479435406918731249304226738580120589636316046645409668270290360168354414800689297710285636678819709998858195279420515524306118244153783595965094843004321793475800201960905473940413726249287744948712030859157700511593175879350058581668435751303277681478711708979495950680122949663295637393219040022400978695594562797183734572155748929364610688649790347104930308925258513186545317046036691799385720840338692591559641739781677978263761188951944744978770389894647054396620644866886416928434387757867626263616468461200838108807258681012099939622846509742428030803091620825449751501434549954828022625993388238879897915112869457383904580927093957083096877856772999758585891306152305619847433368449001973418864922911780143338766066855419674705730297806098603989287603716409949927509602321166925968145266885445011182357184697423452894865888462211891603160372718824890174075579040983366528322329060983293648264844936947505193303121291171760662906990485818922051859106119182865583224049933684019411942685953268016946204884055973494015112085099925120451110354040298188001406343343463725819444666745088464141210396899219286982628322511248947847446993054201997937881893376744075876761126677464625255555467321092496260648929378463258678613944086010420030950958635206130054538515675351419248439645384739691346557336936343405714234761923190399600366517758410093011915660849108909638101860632478603572458336284841371045551635006988459413193834612252105086269200163487542045501108092139895871092277198845301233114936949096343494883927957875248379717962393501311810787083444449884750275807139711404777237012615541025631827632525055375425674409660587279330699024578759270167030177189269593895535559607275099557200009909032972947335538214778123884726625838493281650368284212862218305046010490217016125978057924076252528768246867966543824490578782005430603079711099692196573866094945062398557297981209473419842198114505409808225689120431000262239099201800701311320868664034881245403259430426970527140163624247739109188634871891654645407244220318183369516869664668476963743071422842915573826796785643831766059702209879739298512480949514296478234334426363598477805886803161329424555323525075004643756267035403485813384272896169585126996698195176879187815947986787096404323289391497050165794454645864807875906100955841409435549620689386331844496543376717285073849822575198380969258333611950142845660711095592657325211588477118377871116881162425296479582363644482036051959356884939432079466858012646316436887867196256843558703511982965650330446896576386445004272865104037989148270707776453029454395944478409896070312467722869761113373935510296568245740339005782666815820590712770508944560657204317664265505153240088498271698932415902079653858383682584119597008429778288804717096388986896866359420426316111291598780546975267616651688560124504416626633005848389817524768180704515568941227431815971502715977266465881387888936862140049549763707626404986007282187875519760305018719867706581763187050749955821285373786048645005878726889988150734323740738759251655658111300384119226596744687292798199179577404006946919164522828162944593192097242191461427994244671930510576003308780017917800029838944321918098554192664822247946132107433957188124520347129704194409078002204753481243553281318949765177561620215810033568745485748395932076471340409612541113780740350215307288350323223720430529221186929352956686965205776613492690400710685574226778690353981768760520056963716718583888433209169404086097779557712908031574128926970463259419879791258990017705427096166544543346510524812620041177701013558528351155775038798116055487820144202600609288571215904997159464161610901938603125470997202760342252708822781870349146583804379291444911278845687723056000903626401377016619976933977679496655236479646051901459618565783304284272654462614254034431102154410302738076327239335114034447620309889756250996346025203339566109832324718973618713587461684424843665888665707584630200347673257128581646186387797474571934224404626152157057723793365724750853377254582256509434566205577073486669249709430195270889502683752890843483114961076519883495913893777028130286750252487615244953623189792342163995820882378319893994775232257603054758353682944710925399715950763045054893858805274921319360639447057379635456344451225034701145962169872719416339506096174337622172635506994311344461083492350051392523319210742371258848227538109948472072133362987326615564521727310249919819646936987450794245271313003307913766066312672257324126274262638713902091871607313015125417657745399151307137958736850473605741547534243669888483649852182091363300820179421409712324909781682176829587085983645890530729579346209011747472974725711527933186411386992442700214211505832433640054259074131525177397935692389251339462380165361238871091683449328317592594044508173386473916765215222004112129707056754978907277752238378461624614370583221090408855413169820087041214258106711938368997640278920852193136259144934936495089360384672587342512507954110655421084706068859227320362406203545302480063054406968878896439801683874329256444433069095759304123979545654002064657299725310552012682300584939885209646784422176880887694596904614479885547345859202071355458734105908345180305672943652746356904684745818287852335898836160786104929525740034450785095917811372287699406655026759714154181520656641703537353668879259662127951096189264304343232672258464591416468938637997765830681686788543913742431313473047157213161805283218057688505211353767085047439444119032827427262095425733692598588224620794820973661582693112407849436260840561759605829021321916191237941616860723585084408372614255636235229695492209564396341888897239372542646025795553242646006887681351244747262971130992274360688967986965704110930007228663760570134427107474024680858508822322323301903405161334748543630451069890590119576924324327917491402527511935035654547560868634495375257869595206388942864036691773144326377793736101913932944313131986555217360599096842581305001822129204161246712732741399652045565551505072136094294423524803385900230011281964508406557594565104636052153003372339314081128980287805052206018659373564577032887333348969170014781978355882313504268755419667306190101210844187820451808764284544198989977790946844615018584097941908737627915506399248163861829228004451239736998604242263900545778539278910753801602980839868886717423092058403288207438886822138917014903785089671910897692366602385535459469381588269165721180996183264712473037127302697341259331473221908107894441718540691001853195376731011351946129187188041975491197815430441723919084063853120160583571553076323472120046801383205861174016225368652901219146305411460871506381372076187943677493709291950417060212241019633086901826085394353585428257798150655833218463663171104323050220448979281959770943390366244885462222382248956410324011301015564633221978687482329343366142431139632984877849369822937441212404788253175048385002742201738737762890697402506234393819818781612450635176451563066220007534067150196819186435319631299538265389114662370113849409151922419854504711849317175944806541157679379434261872708475172658845793797174622249600998331805479765287239518263511701906947459797650154019115396979315349426175389336357752203221394415894327240420904127721444817839128465190442211911786792258890120206344247686575390433127269128452784177638631624240071427718920364185037431010654129097872517708597186104251409105789996460587620279882658145496689735211390112851133565508877188224866824947653181153412059366864126360546781623071262043790980839146538190390902935442064347687286750143838737417854362713990631596713519514564678234515967580159281619750219443931192252129548320745488804399443257141824048694308435777803149594268476217148409607090051487767567928986451559627382317800408901366902419703512248486959171806225531514368950669774293999762729844498675992676799732657861327208256822022700644019672761045126567200373891783520137627904628188019961328742203272125746671853976705583746284610310515856029260871131479847624407335312337986294610255444139063934597850935742729759340762804970357824588168566235494456786566146707453480968419591998093595561779371967689536643783986938442978118940191584201773922462899135222508605638575013741586794562176654583415790432554309627119139755176323215168534550922850557172311740025116157732875203758106897646482787718330894375816191473293123250372675692869830381715745125237520502976988987767842543468561936443740411053543618964453150336064503734406569074340945876370010926145310292437297997986650439895267230120149937367588437272832276767067110770301863804609468672739653087015216092964588441166356901637016961443625725861624973055548753614951554662438200979385387270081283281599247025350434139639336031049135302793711079171018134484479742178387578363860837833103317802697022327438451164040644528771869000987530595441511696568110240828257811836435987566529860301643456137975669612896135591971938228239955361630402937581972478457619834305731795274710896766215425157119053457108027857810383852895101866890357500923327214596319938580137604045878682066606210170338671431614954795450470486724730574517690923149605059297032857542613358679048319979565902439921051006586753047230188113913435709680095807118541720701481944968116516238958221364845911592395604746304637636147794736876431969829211969751117553054324263800318666329047985725315221281081688769185906517807762937688368254228007395366853605251560502912849901425418981601348239162041883368200331517329477686320833486444544214616543730004758923873991023429716038584115483210617423902882099868932341038992118400945409629037972560829546633646490089481390518741279272292084921871861620029333352145625356658969072574882576449141595805918135847450597526128941164535120878526164666793971046253867026172556214883571081495455890228472594364056787452028328550264285200545016899427163778896972079527826228430734460227069950470488717374299184248658751543480234837509304588786378502574474853094233325925896574100587749196660007771458709383051491323116661415583583586546587553924081830415505250828682205049163535018000618961284529912370317041695391268704911326911459311370561625813846505806924970908834621397473601110071617081310462595125524718683690855294492575902605148164517704834549540104464324301704088483485107399281447395246970985903537839143395546494791201686233830247679226368026436801436814801342837639718932725227393142008798564590216355287094633201049458897757686917126992263500032710936770264972262671312144078979742063942231120472092017339099457135082980875516392960419670060173741638751194321812811260085259162250558872869829562117011736178313574063351367441632798876827843640459647805497634439802167247797973759647699855935853564763864105730487700213568549639560497448462376309851635868905657016241504878780182390337702946164441299283122978704644991724796457864551364930247298150117186924689743110367460565242557122185670833368857837950924755038986667979673566662143068938226009152072109681996591700582729511775678801659368309891801790622485010063520444528966567578197150174380857888785921123691022266331422714692295266950518635442078642056029530153008850766235863557005127632443330304346297287706475648840505873949748393679004189914277766219404144454705249047260701580942319903772384533492897049241957219105621623416705586179658176963181539828419517497630959973538321624624509373911512780157996814292184310389195878160397737722925738800407879349209583291031295244189128620901467168040634878717507922789772387951175474584149380026402841425017318623666383980540485926854563573548618919050342305281740646631270105107284277694191485211270717537265880068375989127556944167451777766673838316766067089508662770442177070700556249288812776624747874782716245043026647400575037712231492381395137150312601851651496317896164444406130183805634733561341496792449065308829351426701221117746312398796270083909448201544816779934554326588302122977179225704750775795574826970296029052047130469873270689537249173114352766123498442646804655886449024081858044774573424242596167732758811135896302283969446044129277563101482889997941992076620116792205943400571254727023444972594794596459006480298921711054552502977620984799804424841708336413734007310676158432534531893364537689388294912807756303424395257622964224386112522012591664782625485519585661903023740175645147581227499556244868880127890975562432000598445444241840714736055158683898176341923024199990555900879955530928208213530301764715674448565358509320918694916248655819552922752906039949088540584850527522973241681121160117845316551609335104925484908628863858623005478795372963395811179109959310026284148820269566025912826936044038876150335775562729149009160178218216152759373358263613800670228951949880810495813481425790215992528696945599708085191198237615622374955362976902524190878577016515932490102652978250070235898721197245383327800601199421430337730141052243955227303005941300130768033547342164793554269040267731226343867204184838310897076755401749083763335737783051315032625208739246746455659926950695669624279475032413998609407136036943218435641280774577992881017762908953535539386780724420158284798097907858898199580247591237797359207060671351240364419436353172023125725480073453352539221623628028256086036089853037757715084885123793935188512109782934948985264659594726144835318886296061779687158581442781833269967295599039743625244288758164111679137170971938668830411731462829453842768270199477171925106533145113940847684853639641433456477116602909798019796144243965558828410262363519686563627665899658571048125167460995310636938285201016945787198893723951922332496766189094989869385250122637482625186915236236568238734524433899000494247393887203036526886286760250887685924870101009097004115757044839399610662762332407720593015390442790504293130178976440078301284803041319382789562542767196945902076213876117993709562100740144693083109295743486122810948896679609599652331859646612721580376000872329434215493914960868722132225342076472530315749052900290787640131795527460139258619109076834894476146236776929838844530068776052285005718952346221655642293670281583613504097164586527731936554511198892557920563183541321027512376219217221259332941607518938962484044969949807632812153613904866067287369550269134701595138345267227913644945863212593641776696409378613038327387552914655306317229723156394053651602187819495308572172532716405071684772760107930027640952993186483945064346831715484782693415642259778367135628917558230049253919715459452595247265513658362076051376786715980901616189991619465171497630996519644941104022166127480525421985771207414788237629704144058502008646177329510718085058153874599857293310240694988256966366235360946764173030869008664983576228295118511675387932515238010837146094882520155129490506250765304506497490140108975655264907296229335970838268011716376636266660025584430305207153311922230481120392138087771160614718156158143944095995001690214460817209921811401916865752036464524015954408424136595387439047165975820511097603100034766903785010040198492729409613190068932977549443215281037413142476583201485036314399525511140072064034047103609179327301950882026985795780342443922656888038011894746296399222104841778777550599277570268359462090961424319818291547419781793982788760396674418703603360146042149654868010278382137803850152795280121578814444209192177378114120564356235807394448603145296439313866745679452309905874863409510371029308778501874240630587287684891156614202185955635907504701227391772504751138275816574967501655053076635821380132744663742686601806559371152509475582094202440251650381405704765239202784764021419282607840462681574520487182319395564209346767898782054110138168134988190380662095725524883059761581230724767796754292704240479069363942164529552861029308151702683125685124457882920773312077022020790072770173409363567844435266289374138119380525007456134394144327652426127112897575589233543077041253103725432225714155023783360391862273373731509426390541164230215781757373405966730745833607314436438648622895799330281922175153800478086384580832928740042448641609865138225090751678004798066862892421191468315739647980135345370616113709128724468111874823756353417792005998481678936409794745969555892447387012139534447093389395332588736496002034065236109980954771696117638510602629331619866975037627852680847312829671473851330588748014330522577902418905394684714638398622862033297957837610301700801836205009994294120398624486657172528215904636796397303410210077688207042674556971006577905325723378103588143063477071890599588544497493146894714421509802763277266789463044818145109936179124816598560666659077536733705749731508081363786939107044528628882663611947320591252311485767225178282408879849604962982955792078329192759178931472185763215305775058257480581687425055336745085037578416470596552675916583671446814127204959949840690462996009085950929495400351534176107569091721174996615992950639315993518712177562165535004528871879877273738554232446402385580656737374563333686857555472219184536743886363698975092878506450407944039120466661659207063181346121935348526087408454405518136971029783333073951608440155295608059207475941697679330224827713794538203618775795624741344359854086643624184605274328929339574565896851325320223464368768833607486653630875758704369575039844353311811358112572922954370608058233074261690620691633142371732050028499977290756194431244500619541157072829733151161808108138894625606307201665128647829209920455348413201277716161623911482510640807920800841714329196157681867776407145935657171559224018606164715434265849009821929105059349152550096661666154979518396918976118504565702600445273730155014414412122330333975409820775428470783246642270468718624684502253269194543129082669452232437018058850405684261588801603527601071408626975150728015660222985908238151754894029951180657104656294964106973478759481024487046053761600934553815729154019881702241333364848136410850206494179935711764200642226751104577602832471969926732231400325505593002030001455502118452280953735508342911602718398787201774890402099616920377024918158125008961566119807834351925584821944031837675110679665023300087916143066536386496248558216297783744655418136087111959046465827359984837173264789712624203305252620859212232180964668531440551993089218482601743828194066459559651536790017557027525691116226765048885311827632676281263749820854336158320798779756565262675259215581831982577949555281293668900558072424341567335205600385282379550084703776385000000145203820673738607945754953360423535778972275846880290089756352306174300481117053584696461324401625440276784924957781256569520660221591353795970455704284434919553928984931184050331074365484920119233621286650819314820234807019829086892939235103251718436276198163547378481508794857213027974643809347826715567585655204844892140617982509819387936583979951049557712167222987968325946968152966086666078721214855431099888603711566796476098579848719322060616468810807768239444227953953709141592929246642230562486668678467158734416774042367737394441948080794497739902455435088188566944324539178406689033586695586006802929775200437041918878600299321740081482252749865684061959590245619882868066366468931638994395854090609250711403247505104860126507962026592574998125966124531756328411948285541489330097479397295309683855987439454038503221309175099149754568522451189539220196810344790545330476302292754706776394313825406711513949562549424660331487778843822276110869438782805734407224764690929380815782754832509494194061746581688571338990786016107195087169222461363928749986667777547142349765274470859356035251219503534447679174824096971950298589623202718498514798079484750242199578181957298845321797180727336449978421433230179358282789992707276820731873468344862713797888541141578666255576536109776930150762360759748828553679723520046405043701054442498112549303285097409921777193128572887492818095067827200260438074625556187951766381676570925918689888268629031053906639238566247048072014126246478114299380752706596724025228546095162312313172669997573219736347470712447050852517670172686877731875087852233762145851627599645729990194265917585118840430934095192711543232333320758321333160488450551000142404362418612920401905024474350390271648303863952488621647372459513442785735990886373602112154943004260445583353782819251285342532122602269269349575836010207207415094857003367803287544741945612456771671446869148235649293759451000810956076989353136151711287156973699506858151709315126348049107959349716048976352089508662610966846814039505203228894730164340790810078340786451701927403623844388077151366137547142217048107920217513297966547408245880684701338137857115584068632984553484866870027855584552477166422196818261117140921755568496265225463262054811626479876212556121732065421766384416917633671781350750464129062984380184861577270190231583441014866566259872454523075096475840568948030185099982555481785685343658291660532049452488419683560213438887148275820232194076587226293644106635714864784982829187998298210381921981306110643756163832881960405621683131943881133669082660564277695137939353164398228308602579193098039878740261127754120502938709762522635184397124229913695457338173889429728943998803213108335024219112934884293183868380695448165611596445560134521126411594051394890171864252043040993005362084100508636259172543143036808185719786480632320030963820614406794138564305965060458894073055675628459110010700475306625996629400928905529703411393186689735704381860218845958988711040931344376444065327507513249858347833211493152604083892758267648581392762434020272591118549503030753301425974500170467398821676849726238976771298404990364872224626231711197635070095443769381337491264143329969463330574273366076062716212742953335348994345699004917656702190107516144354329424534667447651150510396178699740670389557768069200332800337497346272090407347161970692373927520595780785967811503661530448318839795149231597281158326909492272717962295071509905460041930266623125339788662264670599919334828281834156211415701183816875234884918613576451970330246286260753991095764333501884924378678429979434120396853039816302544639670708455760145660185115092426808362221467621069109304282912357604451457032883160521191164795673435805552321227747648460861269844558663093512142584280093739666328635614726067691575958087916750112874672109531466145545109624849034503392642268072971829082923060510378099285165340942464758389989999257495649415322888252088348661092082796586448907310353422463478647592538653080650779177583292620825646605418832421701321011188247820621794715617782884856687538915000488977894595643401937412029586779498448655395356118884097692298597652974403193596465683348982688811359371673675793910168002381720514134634661155057856589981105217671030820209993575690867197073110695467566434240777560807662215659814635473500701310911258963301207867990771469392995852205910787933690109154206097652414615271567566579695040042271870302066705789382760612961274941478369040298171989130135293052768649853286768135064604400438143684016332969902304538373963697220399804444940144250408161302308080208980200849362204755664890770015318040896701701560198888014115813602541637321425440436475589794709249773559578746837833568057589749769814314771598774601710689917420321076342052019197174739789500967638862535244112711399811906722000267070952005324617196962444375754660339320450063047942829505333281155607556806315426912871851745010339476667906666137138572505892161603764719808291727390667067866931747601583301525437022850605109702062704598329875930503267446272464315545789311891885196223088808786330502584440992466905317453346714694486008433246166362277406584724466350315367070987327624654832016061742776748604531834507924042528510392372945352245628262967260616146632309950192849618577268685594317253911055094121606656798727499832549834391385500270594773975236237742798178153069832376784058312367102920130017848387983110555143344695087108690464021794434545020301912625338838829157711171535577841250908856115363590015187947498602024021170392145658935908456877280255239021178460463998204104191367590641782777483725045775589756937968308979084430490008151009280415027593754722736922084126604555924856233232029824900111685148286351565140801733078960126644164852116046644399827677563271156369501631822597622855973079541090770632211098682494529109679507253482941734448674553414774639450432149273247954704592010989068685581714311595522725886630827831958648296292289837673654927719980195065310199248031777703699096092396871805803576268430125234265671555286646695995611734880535184251247002426505901851779189236402460304308331208499865395543972673773486552023548987080206158780807697458924042690070415872679047951505950497193623374215471082132015174627059210140495673997792940407593390377818065597865885139519774068373420867750928421675465981684560187724388403682742460665251213185164170930039466465500362490057385212554601978595800051649584280129512266140861886399398231366775428639735498818516576944904066031852577476253006621402275009219537233900853576575923082912052943715021080079005532112478079881670752165989847946976259257028401916762288504006916084677257889113211889744685155033423622672071934180673595743044914827837263230429493654765345327395239978483776633049058099565065716411015308229456859071655361352406373798701190401440381352957083563140777475209472912951465277551002468774291019574503994972594717724638820953584193110873380559255748340816411306663454798584271766912924047948346738032169996939758144267133987247635338514520194286652455698882287088435986768290375808017847088819873703048272589583657015988471650323484538729286732457977696600268573643289753847418674241573089594715293628980877162882023778704616158581119740738320957394090275904777466106050430397574195382686231692743507840479318542082752074782586286339635555265507739187457082377681076661836024901163740444311531398479308866103592659329741453039721538418971985532545775274282682517519075352802343471826156495777686916518185903684403188498106896830569668777914878836495494814257472253010728909473385436763509188685762838862479598564609371859805017286750346196969230892692946337713967607310823758311060683381662553048278205068660058014035688366347276230488712240560847732207973836347009131355209849336197177970411794195075200380678455738275710220789788213065014993830127428519352661856074645569742657732181517123982690840197841791480151816095517486332392906161495591141014397547613787680645555232768861860867440893758990647167644728845042968754315557941645204536177576067125888074590205714916885711664104313142682553917525215598578333224088235121397802336815789843987587684461070453870747918236005535567442663933313340640107406540327569445153754433852274105485654306158050662058666426197331268044836396357050208510201819652691389965995640107160631534421518073079852796976625977288142989690022810022816888230665664421121767439008972237816479983549607093139796919114817416571228584970560752875097403122681107551417137116507277207598448894726102210749901608778771990814178210468600644393277090965683673246482221546444703919997700301542465533528939676667590184117418199236781088197183918386027833549000711241023770764872675871695421789466459422567909612041090032619121953060197275023598297981232453300076386414065574566548389937722093922728530713695873639862639711223625601012257091087361707974133738045360070291613343695447110933993756378643364710544726716133484675177739336412237189408211314809496631907802314137562481535220827197597866517234161220344630266810658370645657048158060750725711143833333348476539956345617553196010019615485899654369992752888278341155899566490348253407479837068938891822300595883001945056869790187283861052641978479909758485684311399851274416082915013125789640492236162170142539807073945926319081262867341982238735398828281825720796445988243983889134930925636625377488575980493536852655513273698017136235554176844536421415234160717284770523045292320602937063462911161752525972304277541936789332585222193781955346298559019112823691059744198980876911420774895186387900975398518448917266792085348786130932834952081370570176047771984444738672332114865381775946339599659222201921030469901964688161474939934195280336541955499564568500909287703557417349842269454345576530435935959547034555749732096505927583950336648668707840376129224623908017216582372322195161184541768028593704764917979451504393405005522317469355303155624010702883424565682076494308874294983919007881018623637149304229088583959224760624299808500862561516073996310507271599312926016709632173184740893244957441465034911086634861617091163345816829094280732175071734225947058377243797892090597105563071077107125717215257984414151236552641494200515037937080473002332210661092409995678603321588557001325935951980375242632370064726317239872223332534818330662134545023397928604705264150330439689978824036267547223912128738332978532461347725498269693275382697111598216040865503900105831823132670412777768323724939410662965825132736441939464472696910499168383087693217437051532801746044149417539076662441414091259542602296915838959200034926452071778913493809154092751117329760772394471758275611205473403866774891222653206616562822309912958616707828864119345956046937915733533177135546828757806996650810440060759762965166896424732285419804308771521786380837282953006711928301754986608617101104945840778476935329773923961173313607970599218729464373235823772562420061140266271829828558405471458510033618130534180853138841230921477437700474079824666530908446127766727151446336370916694869795661404987109573154958279333692996411247396070891370042079719469777535302629317486613697050052199950292514733461345734659977147702397597677024640560619831444713019371904323376773628618336712827281781400880047595251798884798912319239848834630357501565387940370059187254059317844301972853435909353138438312273366039668774488923208016571011928456816804540391917915426261573381143198047555216679233715594979097820855320356380474490362144904854381739418784398140865073618682686389045870311691630763377842640236693822175445060836669019129878872889414212850604171054760264207878871396584880948398158507953713945461784994494012618495841725655866622691877458611411849024328898727650027927559884874229086440545758769180246497756401079856593134155082096758578243458709712935046010933976952866802496073053411337325206362103842407012434812766104008747465745995121579597913198140472965249164680839006213052757409688841402596148867269181490759767663972256165198557550417901536818022139307776730952541586000299939737608208144265744203672886190184565335519842990328190638356249167500337587527229882779557188500138541072232171881146819091642398598668452200430802676983556374305476603263238862052438474188863430948474039429604057160441467796591636482027705420516633043130344080488629837205950145649796523769226868166165939214673384151258960143269954902828572552792008306261466020669203531614368588427759030717951276042873469250569704408939857531629154591970561164857241697852220945176320133585181992780818796911209600686399437331436512571283682142806947374129803988539787006531959496778077043761123622576479314126192334800057296327524404551311050689558335133355535105316716116879697597561045541180389526238391544713164832132506373262567608321831702700835180106111000340502710432758035989638982817385875326878044981886447358386940516128637441523088092027357189118904589160078541179592588632959168641836352311380666921000751591472854432084857192601713601107236604110556862239940237401410108739151525358142091153819147998604133202572197989685727389995977710360018949419896863944976738125746881223773142777354310943163247009365820897648120369380109856184139718513826017475202026000610955772147448982830719954320954340635491134045662008373509943007130422829112214836420928767048393411835579594979069151548612675324095399462153867057810379226626231223224050562187457824157786429698033643690910462352642212342214244333873434210652797335769925635150740740527521779010384098699633678592655881763859449714585224186312470635972980400704686450842716287797795430472515319141293806653303340717896131932519890207787790337932829260800083645892032146964722720533971583169694406923761406354114869961581073467615535036327841105899818029793789174436730404821570030131538594674584613307991463873093029890756831347238157082614255468067191293176977640943019821634893632830465444828170862134271025160132769721518368512756791270808716748210906285825353709865528262667679474829823358877202999767928338563179009789334415491307848047082017159343779977569811126151524976185355850888139994558389356654944524727235826337430719825869684606881504905807082249210462431036882538679412728829289941622472763107174664327583948099419839174440449601668028592789259273262134286666803126044575189646539392270917904699024380344027927692187308472379031145209361654996476166869534140337917179442089534632532230323851493633899166205649478339889779508228504776974778677113865549730370930591268843084762069883165133914156159262175259999577974137773834947956117918870026365069457490326683898093219468526198331454825641616611338392110152173415645936421199219975323723913820641323221983000083895719113871951617594541195116610111142633970607307381648822561849294805501002772372332446951402738328479295687199909652038899601064378416947393681693595911342681016336754711191757528240736909292782109675521370606264677238522196980113916187396348890167051496668190358953032020823907623130703204566112332407201426787213169565783362994023887979219948327211159812671010800043105088840803773516650885403172681676258758886711597483892070946136097837884808370375379663457965121007910885193019376343860608036172291964301300694597493826169271698817008501764565785164965701298218572848920075820414040789377101338561811742762338109127355865202752692975069732736737864849435730362344869252839817932626768455235806270001747419864300645223376863106834758823089309215225030831874823074609630167317576538020679328687261123607154568104171563083470063051818462852755766002510285657644782756991205828367069047684940425573802955632751667807863447974013251023617319732252694508846205711053938943096840730708511762578450818792488490522868383045210874503239509354411749657786062392817893742861910146995281490013692685952986399706129201830382823304107069211527425418709983367233132241305723637860838423188951613770437915593135867159355971660654453471364804566880621930426230659176861659669071719166060597582626146545919442270927144576695299909778022571330097559155939328648315284465369013962557340711418244831632615737596754376811536577188763353609645780650037302550778029808051196474088210771248930142018508711672068340209160248686175549861230688708595264694728608405902202114113605163609367134651321022844596616593378816210886608258398998204350301354909364006980334981782726870296754694047725883406336576378024399993156590503949460341621152168183508170533620744673100972186226868446993173760795616844152054562766691215516954107968277851376148185576236562672799190422126781335878353358769769462808046299186660488979850069162862869078775021344641043390662831171472883736381549902537281134425557932208004877733272286196671626186529998494731258643647031202504412219192029433760844841692488533921391045219338323572927615787855528027201489676029027404064662291287208304467824510218568622127361861768530213036004338900249172762969596363121220538031857872146910373692704205933985429712649148341451238350289684273700787701786642648485500557823855486797425313269016247472303887074016172550674823611406236954271596608815950739589906965265973115434435653085039617828436805786863872409479215750550571786235313616549014536303209953925155563175681622630632661107505252525179667870304569145103300634099387168789196141836931793270008068683396813385493370594961895363123745001708382915130416055396729573612917322898940362985222185426138585274497122801254062812821104846309138843740544195867226316694820464999684181247235907885748332305766746366136457450851511973911200755716965814897375668129443508723662463429208504681603040970200841828602703236411191538929027352311538839345751021598488574300276367122383295299022999138190752674297273630633724234554728830970233165885619521366489517063690824600544069674725057761196710979587209216565301325133514358006640016765931257817379097120411190689962334837330329470603469245105646544470197751265272471082015496562255287355448768451891901336087057338079880288891388281449372270007674612366253860618817975361127985593398316959213508592935013166880859901678845468457512124921295908794279027687611183874944022485522273454325729564692251314066267639087977283404775193303255139461035585787891303473609273505979626934339269661580215846060002957537654632341899880850724553435124773927310766481508368535212141529442470831400339403507738618766500722300532314268573572158432389428485866304647731261212940841841415033754759564172592714240732419427895298085235005013535351034146392388015997970631132504713618058399153172969163703988775431867864657545344106113871163086245517140731313889967353257251265358019707684022549937679364509565952362616179553151879125202191459458537081911078753677691833440149405946688439842307754876022273096126591891606902124747506972414289861345413308937053340767469058982139946862187125238410159694361895063723250499399575336636607601476475138047051824600679472241864593089410320027002074153412079452514767773590198756075357023342849588104520902497188020619113123092096772175736355118344055095673083665011800118123443763518983761063517603187504252949573882174275071201980196380312916843826868864336378092785816233165914234604413224822799549305748080712201969047333794745261725527580773430961824416861661776672847730514648798703368483882990214746129019707156851611134987109891897568590469974837294760052874797280067015323032907634826612587343926348080275919658134690459212037505307509597685822071255208051630155250767106835060719318154719946085063137085288572641084059105430775547206972781860481148922963900000686762431458934275795291210090115096526473901749675717184346546796789318697805330042086988201528137182214073288649022415556686359624776527995163777599779416594578919310460575786696398562221578948538473345749335484695100600441089521855537320425876826321763371781646947734056297955823103511180009376832469995469043213902143880167143440659930220778394220205929661129793076334809865517080823243501126480370539654062018814191278972428259311425263870890630007046447009187846677054593602105098827840598999374319782685784847084742512720280420743509613862021721335065775457648320762128676948760965571196120946403859421794244380946377875724881883016467985345332163751329609646428017094884688827401281758756042370394549719978402909899048336475615679561525737675942262665503305202603975295419067170215988818536963638615430545105212324483814959520252828070328648764234498215895315367427511228539001797765204799738501124439492086472647010476039589201412641605277902609025598789826280226658043717360878905544492664003506757835682911750414997262098447260621209791402640596047049822618725675173036360107284354754467189356973798808651724085436407390860092239235984570770996153535554916721564314310467935709135951836610575184403202106179078753801221367279697943927585251566450901236528016447300871522467390531259338630364240180467493879290056148149762635256592869595835480032209090167136623300232418405203813669218924018854985193539386221681385140265093194935843861368078649311979195403419124930856086641644040029755802710887125823881254846966559676764019710670174487442450180214461381739695767410400817403039391368314342639561522628099928910198968622317829597726368578573739968323263561028639743360130111108231710530947102937745859401711558020864160597504787654701332611191337560146354323495507736164845015406254283235132842549438045621605530735217451029007891309401447149520174030598479762953337967275874065989273719468483691557934156763504732419774097511953177036246495009956721946003342528403597883744426975091780795285784250599342523012888809382157804136894082759530726782184896257269928550602017096626841791310729861142369015461448930016698583534559345770087556187354570481288113875954189315629934256947021401985620405255001435095630072814811298086082228833226036310557474694773083721177170757482499577840912367112176976504581077291698023649311768524559442234563619626775758896721084997229519765778805362637659087062326827813853989813679242934767266144462078278468430188510865853635235355437065395476408742262973485934155648969663154885248130725154291892811448620189252718215982553115766679155010665364312739286831117492965601980152808063080039369134730115514586348095062762137491923609342550126356424772463268961199399669852586525546665864593692649078161464994887556359035558701810239353349345965270878962495990044348143693847625265389851435475991167666789338422507965426376547180923720318108016116393467596506722635132001418273337315878710003237597319849103595762132164516097277316066162878832295480272516012508818853505296973376511383255020534051180253565429583365293366152989377055536008093605765150057785429168743202752278067558585224835924370085485060426777796185188706906257936096381038192941654383015871345563127117822445244835091181911908862540901093601504236762877789181451925050726237369742827784982083716734707051218354830830174987729825157997630987249887930015053223992439826104621342046677214427029767190627061147816740218752684831136966289701405815048006529548149719150993446999209029828384584506509402621421712314292913806241229359336547424249746819478047994079154930405614508533553789592486101561930539100137675168247549289482240385807718881503095606189862149815592962108293266147919014854290785631275890886171861976232833561071304401762620506089626034491764281803538685214849038311006517316849584186708131806695376986384163769318396627581182081795833675720725478374304621716320201965067229695217560610202323164702002202943998730861990833840926000998852895131475484802451135227551013465362939068194617365718503232882799754767820761752548776242899825201036507210774704301976473547166487174368772813521396007536550404824204188159725434334745041609086172475939275855700291560339447351662695703430179681829133629256974116147910816090248770183212417766171397938690743210626993730344059713226223060063446853606694318292323391924238958923963310630359074438038983572405741368512333975109749822228510173994863184534173288132243166388090337052664659900424263178743453846000478368082044976684671902401530369607357306165610188135662689437813661299239356657882347062489642502465468303105336048059300570104776916060031204752804078769670521053639395932754215099835446999091851726441831542542072816457684367244046822801924845102461343648822573485923598076923197643054763389289048011803005876114871720439836089788326606562375477367329558212879496585266999906611760452474553772306183233297829258112668719952060817037357205714048282277175362501409741725448139066723769792375175230011079669811960801148814393379722825619308244293519004679912304235447010560356769647053110122031549497045289647925638599595128189029857794952042228343135565030483788921890834821029736358072097125769926774722187354372860097100868270321907177005663681208131441727711026666544510778510708838427942027646992976220346667784755455621221634601135232010546139691578995774286022408460933948638736160470351601460675969696164262242570144680995923791166021988112291875599046344920782272884054322001708581791316363737457942019054923307973877572198395311969164355222742477065470968229904306454268680711784151092901672125267963951438422126975754400992450181388566255625833621821330894691920111493070015356332427061228483049600450491390879492339711916582873286117010825646068715183198114350234701702766616248786514818467099928445250269601428056838173385553246307284986542539436764754334989804181286799445729241876966163267370897925789784876699780900108823788941924262478920832729486148085233587458413655358560483803770299178793290154779410430609167087673885082457515624202245869745218414484306612723658121077258949063510822123465984979864639378193718840007986442771413161725340858865382991766883519553019574840681901949096907929209311643064521289196642040226615349415735413696663075414761107756854503532197551295866936573534017361321126187228140718968271007249404121741816067641446809707495607119380655746750163291533837575672549599894788699653435782162346833691827831487070977644530780188661085957004805624934545683845623386389953253845617767244774568448611498360915258204125817145289338723719356061976769594830189806595565472781063911486523636078165194423501011047869030906581867342644306864987532746301592260150501384126446954827280888017096807617942011090105155538419160098095164693266953209968057411073695693457463257887651860183986757283866554298668585331712569797268313949090423213291171607765895750697472814284418051606542419895916334329370140837042129233822208140298390548558824091118114393286822701228463504275826411973903224854118620847490056085883577758916129469974193797635955517428059459626381169430513389823066866068956723202134983284896814914730170821534254613259431263653156076893019296680721431387164593966019036647247650106201354814140229569304085564910001518779021138967085472775738796710795659552190708089768499584222262763441408946077147470555956621869462374038047878685738631708444507078726908272367432107103226150326585845283893276408153552818145183041331797429104435987670061212475779200534987769370251358910987206634481287021610575863870306203651747011644971793917448165817279206322921896403155849341361140488200320934856634713922581768158442566420005032974878838759258702969054593203544576863601970757283442291772592610287214714177844066041102619116289143955244828124804912843128926598124912812816565440573858223169772981316437489622160203811961723825298366532727815389437899586804918499731014550860045305693275072631416264365616973075346357099885758467927147413848145744265559986327500474538829985954381226244472489183462472023915985010417800176502965530918579173129757030233442937510284435697293888306120118234130943107631375490297366995100707056882844906705344736123337029770710866337483815304620240505179369256241808484550222309032435590563179014049900786060042636792651142134590771555192443507760178461850683013605037822037961378428377106441472474210359222206846704149233137522315024349675098668741578767554088920803436047244554837830795730443155752211082680244241058669880058798971939118442218778839751396636598192606228403188416937180970824567942580269858489960986221424575362426050221751932239051688749551344405290289808216706814496143091683758571054655967890912839304186542659680970372942446581146934512419347693250704147467540402656207404878761421787844989078926716430354961190830915381029563892773707726575316319510754683987083610852107514222244209074096324637756067791587832078809689287428893955425772800315278551674582392683537932151281671045172321487230081157761814161858924823598281917367662434870264854541441558383818172501286789414330763672980134476518654595794764651127656415807171160360354139812206012237029302902728687953268950541341332909933483430901016866872219620592497780002061949468507077143362964235951089656844436733806722644535929605901407760652524875687673217475312603003731046666511176413474126414670591700906054198623012745235673137590673144457893834924078556134756141426930975275571332015573391035444914018284499142990938997557667943427094101350021479023212191526632404607690106949416073030773614484988433164646427076801239406361170607635043933723065465872263663256271690336463182028596029755789158125582933381486649567680521196460895012741591269255955656622983914974986427127311064706923398216750982715886524454778432714807090415882244498624957262627870706120196241753775317864458871257792825984645537706422215046419536534586858548592278830761895237494920779718226409719500876371752183707350629079739861256108160249516501864873260667622661865097865242646759670897508129698709386347377367807392512797514800640351429639493087411949927461150294050588082897270616032039288942516389822774515086372599107907650066920088428479477801533936044376040960615755725942577253813713575729620845643474576757601893856608345354582682705932464596718816394560703260758315364055143067066033891227471102995947589454597631159658364662414294059855755061703937781799520006861244035294833229902965620745577160463847052954625278247779152610587441851478001535245845913109946467634017815829404301637896495292843669024259401676115514471967412699962042234306588330696089405894641790205574174771665619839719517516486040696086990862662550532692807535267114651282563777041362590394482327581797545455529686533655437183271949875104914057238486093177301448272425201302817263357834255267430026993977599192058390746594255479355811782641850777757457571121628381462259867602919888516123766147613169057478234841918806469781558812221150877631928873697346043477013605363649334752545753821125722929153482790932594960743542594179279430221042379861723345449244402309360813509209587760694314016594151397922030882285962882529653479167133137506345582024692722220650590740717476339340100517963848060370424718991671690961972480001582168352376846968747495521235486704072743860416619063982176929788906347019440115950713786072482511177323086203235011618536932194333335373359689184920511062934867124221800508881306128572575213693019565702609312693916424679445067838773342595166922450846550594627145979927750418923363420066128004781502508413544215794224174375236664274801999159604975054757327013553395740723031285328829940079971196853533657397869234896628396205774740509498599645728819293710815060265493180002946716781789721075484011579645977744978984015778415715801732364702513872275468561284189315593142125584191493943700076067500675630586223567645735518152500824617028675047437439898989466539187777450901192863016849777108498042586888317940050341360606891283100003865196559371594485823776024376116025543634484870598802019911011389197024504947291379373068001122119600857668799892768591022782429583684194256532627849688859892271717600845120335560726601165694474134151690675610915530343158244420551404927089687023677209669723615004143199809892059865901798008503061663225068444412662347376077909937449823416014223711535673773013258231965667014297338323401968340789742894059504055868256441603643840053693762115531050998730337100341011960879640774344796360606146586933492820833481762911020748399107818146626248914589264655068291874904381584137088748874967948315646182944869143954927535454018458321233384174298413446211052988866373523290139514597880050246243665206539619807101387471287630523507248333479218409045168673104998345526950272385699522078500712917322040875451120111904227806770061025781716324590963363689351001106681109758542419000683886327672217329059001612800578609647678425215472426385383505859468968882543106293320479650181058483114827764937429345641078117508030953711051281085437816440175244973232483468804386986666972591170424739944645983908168209414119110851079468860174667478870629264727922451816457731765500700601223923159232517439327080492251226659434800036853569290771706704895989810859468065353329610621151553363258160940428436785890763464981565914027255158269908136165716644873947207822042471105950161163060833765358277882854034859521683701783524100829917492435596901026329941306044443006120112420823563760312661398187162188216812817847372326729143927645075154060255897144607795116797729237924962095353200742686863853340974369200429576609756522871205184899392437474732619881112019319714087792495631645647745449197958067439530665725149502501071555279861478091810199931520199391234189460598968042817666062812863889802530106081910367685816255874269633619592278044631083967869836384738397696485904440235179023639567055176517970369761124940119038346693929961669568596032508788931539512837324213824746196954035417557401202554578374295808012827317309517073299186358930809820197757290870947516424919846135806459342011706635585670641602831414033164876921846963396590328750412163861141984535121217606986598763029957114469227389941950791921572011488661719365349324509874900311574698118150251013775386125841027216112767153609341174159163929094428650519580529295155040886188590205123800624667189610150310555255447697997323256158217916723475100383431069672540297206566449044931528576627923924082546090316422635492079516303673393571911511630517363532076787510777138835582683592611317297310652224574698031227313602275130888977384755652192214620932575105801267119685948464195320926684093406664949501448484437160543048657426632647184709481241638130010016961107313361712860808633273951826701163368827868116154537243228501374436526618382264154846756094302154051378730933701809381574882005501791668471275707091243003134975112266073307901912522656533327232557185299480044075813485667043219635356415523883763662692708617845148636631719943543905123167351982551129996890724342652824928886914221261975053655748373085311492704411265690535200840653245273827263341434489463492923197690894170129095988759256564416168696005477236500353702868843745546100175470901149810353225303821198918273274315899095192113704646982420626775460968783059145156025316225159330943339861649965078084791802829880906007619586121563335989229101597030479769870283989272370611900992139043964467027307321951083727575118353857930691787037065881240435512769911631925430218752771679711865126606919712046043756315210167400179076352554294662025508280871925148520916656660275786730119831951551844617264932612241204748078658386984218289219914817646371594309489356674531314309903121786337345410559920016207510980199861100050022352340334536153157870748689402465547555640652474840578720056418603818077492910076732888741971483559315642685644900327830037733019807947485252349499070984302622410864805408982803806174828871003065399360051448856616340607206302969316277348469062341138030365682997191163725652360008129502887219175973121479646339819817824390109653130637696936050614124734974995266114745009013147761460785892446072165696227965937074789032016431120047389439413895687389706048897132534437822922117352856692290994630190592654302982315655777459259844615243872991341025671068716174866707574970449976943338556379761957307455971056105710048895077023000863686672050048785730655387079726269229184889608195724806997512001319955824172708629807289280530242034620336401837193669152243328194639561251872828975382598300979682002338990447753389120191785703010722480381691262136549419205608613731598822894566908572434138369462758246795592500096386691672330750553570091648134580277358615748877574349569473325251626763384573949764698728520370909682014606907847283475569146187849348227780306408833350749427042618972416296205033456943584996388444332373826804994157575872592821868045378396892894156032855017649561135081926738607731349846124211218208485042588500056176753473863113004578591099660597359422152819028293746802270968576499246051616480526630703921354656157293502784764617983976718776097980684890728984555234563833091358515007377691464744530325673187008960319106051233722589804475007691020217901691984735000665360390935014967215494082767280817458419588588517966306378706609761422348549956865729333116372570578713138068460579364134228541401980616437754463643181613910539034490989481543786039282826814012531841133621547367326370894869921589536973996493979626110826112069662072755590069524706723630801503463571056503030119266597512855792836505537539288693559106983508445391444596804836308297498067877836588885701280296748489490798631123859305218330858465012069051561571562680346710299615332015393826302434947411612071145537790870121986634829315675433773013385661306236675220200904797012866711190510439543836871962371320537808640921977670484889379117394173196553227100631348041486284404880360510592721534927068791279609880089652459445452320766314965927454077910138240184337814746248473811390716145895914284516767482530938768119262116530020222127577695866753054754094096976640350871079382465368537307088092727648781493083910351046211713000342053862450278531267480571015288054377813645734944933253147620379749668881551955540986757486425075209522827931136164203484627234803096621937772451730462252798741476076597429175905908445652962775608470266890795178782047792064282068260815074866196215885247792529887109731609895894700764171625419560909840149481653323833306451073720352858931236513014358517019246183178087988726217651558493695408822082540252700085261244616127415228993515056279734150599598247296541201163548675822795172032157481322405239699514914107577207884413628556054863385547801292450830473057041982170281678452595603487002404483164001843331563385426340167409460463404960992875854837891631938956266292729151631629693202437886503582376427356883429728037393748062320840519368382071208838908280370466364167377237704679661899969299903491135942358253326848600842790370117994174232157952696290369335829786294611998591512229048572840931291324699608279977505963322175547978409691583092282012180788569979888770521698216055520871199603091888471657700533626541465814941641071253496964239036023641161792250460938410754687433140097450755208378761502080872847510999990911528290848610744400877519262380561631976416970464914701694912841540959573172866351047360952329165880784829557507127036831668513613426472240327513569032723745114008307284312794664000607759989528454621287983205857992274683128474497748336244347952223941320667743475867290767031139731863118829152579725067517357419631318942510006879289456019117496837308833027836796095753166939597511516582647147561828301382913928177476843546036837335497888820001109934013088649257870245252510465496936005543164661228445607178390775418742585521547762207774249017954172575332785167162983842829903016427603904737720811390689100118633298099578832871565140691812615193120467583946006736369635131896333883221650798971169731214563408394810079357569464626460291440013782528012122969534170019934209034572399959280926350809859461320259655826860227160783868828902781371818677393337157638450472835763351407796800449247149231741769154756213915649150682342841234630390552561868269942890322779523773402064375580968863133004927744463789877195500288092218417755119283295889546241435881324622220117055799665916413945059650899358397851999778458422674981896475032381927683338851538186170770979725670782973762269073680344316869555193506601188624455456570798216139778196552691972362872413542414645618996573055033537410160349615329136046956270432857876699261838868110026335990779588092824672652860885429572925227004992901679181573842433249236371757309314771880285858795518176868903863803717847564484282011428449305653373949463930393268670364953316091164941822732917856022874766217694738698292311908589433726134775669984191458093750022056474840130010948478128826394630268072713658931401494000771636066352682172767523306518015029760704324074602430808460240357682320971340590520912349190955801488704643462743523841285022411274654101699849669451725365069846083536977141481998419322951251853409269635330485653425972514941394478137969930149102237480422435583711937791394622020088260952610351221782487063101005142201208423119843607535203035991387620978185058667233517312677895598583419416629558107492105285641430823607459355159784228823691936842755568074555144343675246488222929256773696106690288715343573573892732852134056413118294873000631266417454160707833944114501068667716087386540670788116774166187801862364426682814983645437395081416077580771734493934107789639433509435221350730526603829966439727093941565401610872642654456641869700724659117760365559303259340559797491501513762089553563068395040177769148485057505695452569105027501661342675812529271685770525980179517347116361447498360476614336355795377461654759043126488894276001863015498183724263065683827205667252111752436844562312530281487307079533418975529494055261150333809587818844649482976728051341612802245656701217339585135694467093619822218302036563393408164750028270113974177093682357609988977574161411755503057327728973913952650079139681503115000745467046424277255393786004458067656578712706768429333535969814312383118780908442026575135931064265748039868214995352000848547680825119371689121102484489728527183746950547943995163027039532652509391978247971316086466721647848402525101539417643726208389869048071249830619085164609464526237429996038061938368111525881893009333325970574520064711091322448536701319774826656892204705024708763021409396685274988427739245631746206996890938620961956964044099101654701670026858328221139080307205805206940372862589259965013478510977339770291831329974939849836515355560722755182668987200908951375151295181487837103248505242192443040941894780699515512188388658620272319436551204571461987384823034489105254326383540698617102082513585759339285146181372963556374314234267179755805971376966126182883782789114099989146865999802379916061506308960966370128249633294846657024694468192934356391309316823783290060219151540692414272970963531428731416998373721097489368849697363247175565281447326163254520888514085174114949318788080721950575653993787460111353669945905638731721892325649024741694886513834085355131450084203274220046943115240953582491150770207789314212232434219506549777864401840649871790378779923577060284395545633844387351293343827542719438070379346280173383199844957400356607130847378780888233115208678026745033050527788375063412398865203299252869989365686349387911462673939864758708785269133279168819409889260166197939112997878536723847383508514426001608962334607563695378768209790088226761897041747104459661835491321102010663984786047393339697894271629375592325686412947272518663712907595125800149384483455055164710137178076443456864131469018590956475642475342016304208088057200859393908319256734250169575871441330636623128192444485174301332182169021534499390947969310732253202820696814484531376013933298219462774390959847248766494093887018853917021481273801035485750480955042283158440673362750563200513102635506309534010621970218301773152335727347935477625587490306136525421413917549854557460110825306545685231241919961707153268207867486472468839399162762943310703970374101441777552838663077288394230206932602167008616148785276490466018376592423890256528283661582522521654375426210610208464889696688916800732496731049502632731439408387112315529577373144112289041422839512082658098879681294095441427140658874657267080117451285044312024234334024226515877998010548900984121854294534009506167334427249791670773581307313992355482918012181436290207909458069413419660977458678967963875744875034252475062411938793819448575139058172036500182797393800913040196098911834631978353018195620336195760218103424351177633976258814444820556621161020182943398758732755438855169494839615071788132021272541636228346544816016998941842616442583234522923319318888920337651236249495946312700387919773740669225064949763658920841421599712720511803493489667145258606334263780470885391716744828405251808559661471604797570779272396646280527078597683818306987376726076161680605068577357745435510292001633837398677351103817323252610855612779912240883747004538986668175654839148605854448081891306275351522776226538384477444505366013697003488143918638674957122813353763249631227266322581091299200854503326922111755109978504258054358426593176084083647158103820569255712708884308260190917176643969066687104749440049798824309356666205685330480685595652170380164449492988962617200289934859779478572556780403909043941708756099162693216387865538768615904070750254490787559653351175737236844981512585535597166730884830680198743117093292907683620748745990309190675283677987202847387045066285792550124336246259302868821943946752216205227811184407292010463318381287250863226350259577095546250712438845446393695631028738626623443005006526216030571810174615773891487053013930982208177961530112008936384210820662165655080134820641596239644910308857874970331819866708263458014734096661939614542946737563799942529263345885251592175470803127720728394551666382342996153382635353257881116163900370138555146448756278069334675420705138874475666503004823882457314702637854410681795567498696422556444230174307864744103627100399005169171216235158594854833728515504526609059665022726279676513699956842931796118214974512298122974897283433108166333666945322229409355482654260830384084848667923356650785559276440242246427268668510057855093674787881785655986051908399090282791838621395654279884767180509869705982432576353109214024384242749944607065835174425090515500879059303537374456269433319625672390436877313147568303404017819455466499735951565176390089152630531393862334938342288528986937874823009475159898461093370859040874179913387923798373867412958552157428315282415691105337765053408739502926484219774913156136740464345005466726556912191049180778742625775031003297950613021012684291229757233553389627314590197445628762346974135281113249208059968735376955515219501142521310165835975829276760850206871658569601814783168989264518676295513308403655888829199407128629835274057920981119351748048237389603394995836806956053389993283229739003649216169451871968607667307564862403163100468670340531190273480163162513791615222258041160007517395121601490675220620882296251499099568866223336517289425955701802169923250211292932916711835883505062124702920002218092304564206406754272983475249871574889420065119386474803268730823415119669534186155764654154018114457124537764300243873728790513872260775135783064549118569730506131958322717267859807578997943177776975064348087492252638493073509204085893074325103486078015049641921366143157759512514648520091812595088795579120010660609612224240729468548152645969006762246485682069186228117216256489500140512639648730614965525947979869018311700885149320515157734503126304731312547863413925771588949563225788027630052973502095072737587541543810092284197671457307985290506866564234058818242824006123203484769428170623757520816278052269361820861564471078569177825187463225428555182952067796039731532275681014491951108956668511893955999239185651436075026173836593280748042734649984260754307114327742621955966325143111379278914402715117893096832560349235702724334973303792020921883689974932149773561689378477271295736825469975300674328222373070678575076024457589427217604164673853983456980783730889081587167215305751440061253603713886406237453147775290927698350403632582972085146681163972137613443735087455526741786182590771568953649945806066355404778573847962961396487691731387561700347413753247351619795096360319498212254294977247215766445172876467318426804984260189925871838554094571596041022589228537857449537506051190157931132800114614036412137640429742834845314349768452386472260967119329784258805279645284910251827729023352292219313709951960872889479993113830655618529420066092520728987927501891863362728096699959961391621472104161717306612836628309630834676262395012193768492105248558416634561241594512984052530973593397623627048532695260588466509134790672746342357157546071651842217555141175069067808814673034999523111703437650340622602387310592638763276579104490620412461076414048050258189294151434237176290907004118114694331127618288366592213018492896009265570546558910787109507822125381552740685329609139847422719410253914116709419956325701274236436712170653080114048921619346150750242813879015471341962517217654386216603966624771218885716472271682552544202352253470450870676268636178698019632202628172091215844560966186100163140455741699366297222835237098326329510774721017120996283548420387106942067410388720591454507182600878881093567573271242165225043284823206584897961677749701496373095929925047261869871358875339729051530207328287753935294617092029903712927722233574614192811443959430442089218912660922127963521348772502787371815970592079515988500050337038258223127575246537470306966705169566801221469121997732891287951335933161146193514061053827667933951157370347308132003491915212835082356875798521772422480599985230240174617658478716104639869583754335834258903956239283589122835223193781796702989974140860109185408250726215456138979857656567698706725419296180283321825983373459671262419990249082047864110206567827768148130131970699792563373624495560234714354133416829481170648088840866624441615435693241852281566705702056500876279118039503384572668345075790872219404365165105117995396470553841366462887506993766970907048126045463070350026104047032649252242850012811331333276336698692254302704178093866569768245227235835253052596867272407287486087990912594492567987539085795674893656153471221667094059701192519804577355615582073423087812738307749489955686877484279153803134540734412700992511758575837660113874152197888435410265433141909016255497178080287865684790518127613153571557708208860006652754463104443182779533226034381824471453997521474448306984307645376876516143760872910303596098360284991841509467512059538670051567399713135395637016979589450121075196030830505626514091475931989125569138679689570678960868935232071047517308015742769209850150026315841404959485186021443085745099390387647134349818398224706524978808198623894134885186029685549087730190150179221169733828540880131739768294390278497437149380359083315225827584173595938815025618604126089635022721004730807442600312461872778369490150085245673134252539269525688232508540613159623741343731686806676848728243049520991354809892355913147175785184840245986669697437209943928897485807210302639643879764543587507530199218483978519162838629914818578751584522292915309834865924308284018009772441767574433790837497764131070897304718866053960706726031932211397784404639998672255861621903399650824166629996172023928224438367483961334573463738811841660128874021702267338831728205335215781566100676440801277780744639075485776009147124712216269927353617900136266255349000626127718461973541500805152422713838970456128200310127567916523937847372430953342236265417497014684432624688546967884618075758143069105288688364169118786493447778052595123125193359914799788277519178275339369438064957283790773696319580702199469356557451265840241881658170194574175379369996618589755838082888294142997979330860698074007978453397311817085334267737802832355337847237041638864998302908844000234806080345005451817280471645588711948924344273104033006090397184917194720570596771859301114607210319951802234303158111349551082228507088916704229455811583778580662053827762791171839468057918035184756823603049232420458263136284513492251175432952852612820084035424259150427529865777226632586103394630738268608418754295670069370763331037416410253616553486255752763637944814103621070167488417518132237277026147091289614332901224312490144942536803739019962190562311146213934056010316016217739252782748149017316330228424350890898059428125260428530238496556919277607720620110494454581456546022385876533527169350855946004994428069084511557889357478469005603094819318856246206343226612102697514401806343715166920487659032781246605540943815441571965320939161102635791030875922526796774625459161259493831054605403734560021186772098358470716604544235742458441715879119424415636198052210788051228204724736318288554208273640729675522202159155550692079623560463040225969695539109494476867061312965341498955400815482977654830231570445172269158957829384178248356114328279443393091638630668234531178748925813969767339234120055549216312166243706350073794683655951421904079575026707945906756719018440422814757412022871392372414439702205756866150367683927225206996268617190564725470842710221086251749421556440760110000261344153848404067089508398188344872635289959544280424147685608370425771978119704937843229431158585443660139316708970495045975846870563084302406959143217434494257615501750081946224350636328407609320973892764455373080348330493263473015140518018486303606037423407426801908878015160825780960043607149948414799056648742183160229941315730052432793362006434593734603896174310083711294598126031768239543644867174460416783670031502287792783466505361413095082221723106954247811190855019794835255034109320273492085257629202902485545952237744946024381417019886346086188681642795558201372016577977628836312752445602091482024135330423219571066942409158427950489051804499225441197825467572296635819219351336208376175437609319092735445164105505911269404416074086125031229927476172316451762330337707098312341691990117124604432036624621303249845367184677260087629059602817072524522437211768049831813087753483877586802265620790246152054402974100506704051694086799392257618309569411249030777938096293565367477259724403446275580189764911783548642875274921480094179886003515900402563573695305721801032479625691685468120555473239940885719684361456588786482630544094955401299505604293087751168528551520106211126573141419219724354277733753440758947202266091376652929001336958905999374887239014680404666532363421089213657107939709775256909354191164833657721225102317181495850393005482305023384611621895715891094457583300250459281747044003532791129063765816309287181789865496554448852405345383923563709979648986988660981184746001772899241133057452995087922328011551864615148937700251379751975948187814711874172185597239834902331672800704658508749776230097155944348362491136452925780822238656580404253147937673185143997055177729030872502778616784963848844160528858644393768390548378367572892687726609153725906550187517795998743044504529019844529939471243659931182058363637204798539141680689863468810480112831010374177488270806536424241746784342507201141021031572527413642739405583029804406756847527436658712335475568332543169635793822846248243504042922367437142718777900628191746144202738899974890435513199273552469353620942176529411570528360234439691583748374891247055406009685809384533439358169469436947108422069752279377690146571140997058113599825270226721828417585729490276692581190631410898197547436215268843481176101812619660273808890166387890101386433937261834478988991426004947173178710770939555986006680336871688448010512130884643962636432707636431519449590726533794026454518368122130183630227146376012123063557008521969685072650545278336298296761293787890388377726081523410224144576798622548549853297435821709791015562507462478274434844068771393216718432425655832421595916741921714273103723181843330442216496076581598647198415519131194873236044182068137397715431948603987883352689431758077274790622881834193943323561060840056532698472680670072047559683042584002867454068954875729724463749127440348155518854099400394397522269026888722549829432012791683604012015435965401421706165791441000176738794657119008348043705217575176609767138395887281740439542762782708741151770932030724578061382860602754255015622860223275815365433618073001840818790647968635941591603500466871354709971874613248404994010878693737421842708655886757260293215214865459347101606141824069286493379292255839118716305840090786124699256129004221073478035859052925363775632423700633296470091166475667888295022062208641044914622287668651660399378357344939494555688803123983417218783347153861882365677040142768398621692902973625188337974770246179291633652805714967578682103959431778285382084167741818959555777479182404015271272114574951653131405231097283660858388945966019700413977259467563502762394714078152156297113449666610045529775087230573120726727295829849348213597197858830005151198528630338954830215114752388254215795981671240357267894419923004649083073599469268697625356512537062548503498329878252433802419786024209379154181424100192357174524442258061207717152757375637120023436923063649450501274678064767265745923472697060307489583160540827079906968799028675861661615716486983852473346966660455204668630807391031220043735093128099101667745922236699932225832777326528083327711804529068886519292217473677817454560721499015508442436278103736127496769275337415929555442548480079129931499880874423025245018314279757830464575835223681043117452104412587359834893436057046818688340838496507803273610770071496829516137632869593848764687288330437693139989893459480701547375424327574637758964118357244110628304963458781815271196991558803124988787827870029506578381220743719140393134318220434494982613294726349655636768007080577975011236349584926144497087813313322166418713058342928653576844052282344412533272233527961634535884451554730165877863391745599391689771936033380770786067476546683625997692076369895795700319242402757148162940563512723386561607423427907676533262535241384956700452467069465785816715075393061313163594354774717609261345748593095140786878343631288034150666931871680952513418601690422624937824735459025440339729567030116739398390965250211438250815127894963593706064364547007946214631199571451988821417793545798960329011714575367940432823049904315351833411415756168202804023796443147392441991932661002732489206970859689853006180300675680649234672524142279969773010380198717724827508011987731346222198826147089866892944095746262239258027411029537801171984228767009516292743417550508598223233469003353892861916162040177439673619604738644337089213051758432809588255259023078171586138589104982828962957132563138907613364009021046885150266025204067411571389798345989115493390574769322446037713258803887138258948782861694219209118010381531500525026518912747916395926716345184968375627653816019241359989212773694280728786270978725599226582313375541674757062922781934733456324636017491959049748644491740176191554156056847303044125076731214085705312676794674895497627986866125323456683487985601531434026600218790312529702129593400974088340653316583934201710321750393197727574406926756015438764835069512769124816115082884260582606703617990386518353229202806477742569505994828423983202179678286536955968752743103072199260832248042289499538748740094110671209664820565717874058809210874058997989480522858811190417472861996343622089912935722404392314083353695081678903536074291974107196719025747246482737490203947425420347257724328913177179477080896047905456967269373987763154947876065015971955813982296287481891288426886419108136227707626983413397367391463912135315372305842353492024159551377193545328994956814403914067279839391842862371023715704133955447578115482531139702261650725008027815245306081641125125695046777212582217953922223427590797989916378327272766879010409073313394956332069466358995393699781411046524116189848571117647759953491260777560959423165628011118260914610579829001696074784782258406129825586340254322688005745374272607898510327510959658937512399030086117815293945994616534243199408463029575739850320062593017664247050455458715294340923704348478039351907421542045573209946593290461376293485103698559331145167435888334767765767276237514065018450970699899532760492129935263316927158372196785218486629033220890821037091976019112708568583838889426365814272175595588489367927244806736545557883189498895956798202450535614662814654707261049070561384954626608154995614983155093286140762769122739218970717690907756532168470800587339232923657137243609141309729236489192899807260085240514441145056854853701704998771348786623156483183778510293187980217871300056752198190084800979195352313943699093633644051198799387841059375321877492468181986686501545421818348363592387344359396247393994483117485259156252536484674412798068014405378903189624125157556875643630597271549293803726480782870417356500031605545942394115829026566178197215217493502900348068816787247331312865778211216753745189416731455050090145431972184607868977224562255451657245077413637116625152600932218025202381401439766170216793839577550819941356489842805860632061788424721610155535571362864749773965887730568764368442173722423993154688295605158252324361500375737073930957701271507574507888923238512779865061771801460687504421367484870206900255562180283262301150880687292788765427028661327560135971618703297534322143095545239904764051102688566338577208554418782588000676092571796855065968528382205787373874752591596839124431958937983664791550447820958105317967943122175830765054226277802009823180917637649417094730051443772314633941254686811393657315062920021992943045149385413501066189891396440443640462637717815634039878953520624453837201303897248739060544156978401929188450427589538861232534220357831091779156389506654189224531061535855637062638995349641273842514180928824484943940761100853042559161971828599284992333630063945925063078316377803405479250446627409201766315893587260727118343510512873048849936143073402684001850461309107366192748891440817590138412435153526014503821653591832905507495153959615072809731614261525133825687033523401224534118182491831030576182533341930669012981125612450593573063228243946460145383038043204574329383829258047769941453091082008267981757295232827560658836690694035509168450251150352065642653720892189890496426693705886061505910736200022701139783658494232504421377937003719703185815886132892015350444971532787054857178889532162513672304081268220577981827615963917109872995469882726093069309668866030340719521009403146077880706237671867958616747735376711210985009479015525886546994065314254139294050027540944308463124679557416334131934059651932632366734806901133808829214898238448254684742846332179507787353287553616214289904899328247499255298799692561014791586419760942035302751461665115896065170020174563485934103509328957244487003952411548132523831879469183430778238893012582034041068941283413974644614144697392011694716443143581450779044622275714172806981631073730156570837342543863432421939561892158963910703064279604191553317283742989232406498739842843685260252255073743928268534522354121324889173364560482048799179839697726232050371430874873335218710393169081930153012072905531666240742419505909324884484712927103527167604325120400252020882714606309380468596005062635101250107013778894345456144448127924313865643591826553062250584719835180681426908047289028727612094012422068541958747317943715310133295222220278498853090306230786201434015181026996363336390470341908918055310948497764585269433557741251494063641111063235517277169099073761001698380510267910615125313904693233508466593483838025007266368139310908453539524973527956309157998563178693911373495434101403034886060282943211207032962857473580658220751050044818690032661224430216885881233970491408901435876721150873279806688898691210866902372266687479997543560925259816789078792444176155977522341001616108728266626260112740470832804359486158436642842270268166433368084563564425061716084236069996091528058530443541749143739252546223990293935293627999624209780751535432849504995935744374879001576815753896719810137132045721316000990264003772790315900002209525780498991974186268420384792583311830747597987797769104052416327024826227297840676070549687125389178189238302507167881757095853777497286716571555382114649173800604525220431161220460258442457015192551317453241333968491004530368105908366517896876375478663577456878844402418381951479048653674272243493429842181644031282629304870548823136426565780815318124030537801433524257337336446151661749198827424169698614340375662832785455286056837318858961967559380157873315858103008578173729282988037702404141195416282517052055156733019195282941091564916552689627478392885440637662591874164017541409383727130825711068362681553760020853604875691597453938167748063973675229840706510455730843126124509993659596228207684036259756207829372395904838512153655769501235239650723479638161964497424351405468177386831159481436159907090831777305046462316142512982096384304474220906351833842704862718126553741623461920330230182558897287189181057648892581751719173676088047866977796219503532439400397037496356819620840175455272134252125406497493607552358762711419285753439158715960724179649850378894273458882867511332643802587502476019716936786773939784395417566846548117742416458198215602714630319879906743394453638622503436201758630670281248112530717411045448932322237059157430634300286945235218463344196274993068495289899251681044986348132862766369753350377223942479144115328934751715928241172635178778300220522564092441203463973383303234181231912480143945885486937936801938319683100012890647401366659161608372550226109388395398910976078781478511896230731311926462188328610749466181860517373482441663003800316675335534772210761673029681463004753106998375892439642868531011679929784482570118811844837463066717897524039858895570600467277207841001822220281832342645521438790334882960658288029021297905153223994543346640490854784540996055693785509606398560169765553347609955622972336322772990224080931845376796171098956770597917941296555989661708277839857609179678855329160098549951746269023483394858524903558838093630901919740221211464185723893788879830362557439360795570015267586939527591825649144270104707844622808930626115525941734321819097327094852468823124212830070180915025607184481861832113542753778109041988493170327120436734420535342086181071164351684317449502966421506712997091970088700994417341950304684819500470536041961294210576895262398089266411049399366744301908459471348783082590756708372326062814643470907560929956536587164890362793003377063002826342613972516512358690405575763089587997534444985364281072176091760931305813404403103510707169931917003998176271820694863637568189028813334907798356542433340330830828045214001460121970691723134904722663945108605054478971990644305317814604562812387404049968316669416118621436003728885560409984689596427114604222896210578359506645791709187523872596352772070358192992821591036165748054982849566364709936204743427657338670705780303822501088003672950752035602480620365590336788191083129535239088291995852736668562378412067463988773634686603009843946833142823985497586200815648933879390286770467243281689145178217520605214597451034507568758268208906517883679425300271809867204836813696112305066418447925312631733963716906852426010428657983886153803694267760285234081231048553090391328485834931528275996184640795773333687128133995849852481598726447096066565329674203863298950591801537323456008079076885510558433667058239649220156140178132131034375912831802918624323329082215097136793011688314207977068126485554014865133981305595306772120362287983913151124560472237936130955041919129274998884174397015856091522253110795587271996994869362369395192635764064420074330634256616843137905215804257089796929466794908885258408693894071294294008323150879513308171289903117860260618655376151429467878619260671501163759788448647542449026342601118374761461406434792703390982723323957029776252635780684964239917726883658097150474596345506819159880877502052572845929591411511434729358424132690220220514641926787291037324329082585682224354974711910487110853805133375187206311660171001087888197270684418388646562759487977112829255009793361498225240859050607734684091714499107042494322506224770562334755413736058913815069828169058073162854803349151150371910848212652642965086519878782177426074327469079972386961719298741317102907715075660974359260824687729591383996356674089829533365918866919774442977350185729694584152782657146954045034284706521985499876888039793283659435727072149959126873676938782072968446937589420318226681417023250823517649502436214929176806747277753167129108829980907241676714818763414953822710902470683855645142492441983465406448663080362664754017996608793425525567148742573948930981782712158625834965077454378684528791697316355341924700101957897633548239325260835855271581471757883101105638599944277465985441752275840122687813952233314566056847199752994483527779336841157896155642864060870473045459109326627608413100117061436156235741866684889954292936251971767089029186856991312282111174644248443724762837889340808912910412421766473154622084506347862823592697159823865223938138395867839390115960486195367225642855618460105173057169802468790890309678537129481962915472349554604635309958101373624337474516341198526240408358819017406183241726321465896677694358413929752071580771417182569285205243774662504129962809958636876947319862073828616520562896984147640324216623577557752242110156485288495381706929829451937075625890695779803903846113245485128568904486883734834662865823670897972688771878902679514761476974880548777136372487487567010522259789267633668711904574983913162857146934226762533938445332021098300753941844346386925183111841422609046228958988063574302119119657417444249956067380691782345647996803842606630680247359202144771991224224109477042811626487895701795784602823238229832218535193707632526830911200306783726199940995273671688399544120039204473462163520186803523432616808024262270901573036253938987981369374956450968073999989645463193376897884243548827300125748376972831038440105027799220996814473424428681455883915293329541552845065775012506484233817791152656784210847661735361757266767618761551127903947697366138146333440574787677250277776796447504976248123866387734335414437558094857149163627649192015340132478237939984256482688870754917763905661518464562736635089538680191975976799861685417155660796887598059285658434714345151550862309891280732606885867563827867192581487457331698782101193607044121205600421753538002087673074821866648176642749964740507042872644200341232962598188333754142977394055362416823045861721709079632962997141678034186074376862038078633849491839013362929614467092114728595582118333414690389194660861126121329932873426483180550593489943365159602948965612989920117035370632360994259137593846500777816386454860973357897320891779744128638528623626195373482543313829477636482167052507243786923486530866823627895780363508445018998282529726494150728967280897127893577158609706980595238291943173898330078675458381064238464005809112601645647247976459805498336163884143863170719887169461414985595309879895411115860433126085113455107390199494695789937159387160493463727235154323821680720027494337481157171532714238846934928594919027281522113521111538507953390462972319178335653224354023816238971696895325098323128236593746896042561165185368648463620887670217313152967007188769965119287078340901523041004308268544732759610973459292709237032407430703796125350902672781191606868645867439990254764058269823666725127448546866740251406962770656540997538514875505741526764810546961581516081719356572875280906614677518581892033205934492674483585854348589418041362670276364714871427332842564265590309554069848106062227998884429570840547109617150366079043762734813800456628903912907853941529163146367645262814953822578759082827590163950900328716022853479085593036579899741999227948684031991070129884859764210231263040326718130906757651728040392906100179519679133943567770177316022272119218363370370857289251138454586963638796405715597713280798184025377427223933880117343978549632710025443589295647880209716588321444655177029692640222150615163838745738814268030143851488824779912847452600826060844481408253671667614910101730456243192253107262065588319397875377566585892642535406730103263262681800516345822814845116304672226664315713056765497567791988930251116976357011086120058233456368100271769360215954633400122433326680856293535209039412924320283080166527921380242578613090424069734489066156750839788678968928998586848758045121779715496061605524907994563312089120067319552636307042723961510133364377020712722773954578647184948413031941068376604533059613238125600544338463057801009678852521924172989963418666392528897653384345133864307097538949576741814084563532102256571246230856910472548756646561317892628511840617339929923739310182677289750917574862663270602721865202080912300390009932854456093842706615812309771260120429043223050732999947736556486956505081700815135439377953882900356218211891754434114333799098908128416991121176640940229327140682067053681652818023583447990919811189250760351820542001810583903630876157247380174001088691821746849368698287819408348776879960075311740544875240536236993389078812193642871789181318843573939683251294774721965865776058689896771737618701866609294198913982338283831204838203588094952976125173162045404082005400823283858845007534969849641494237649269292605460641364579709204846465010837225061622326847240334755823132995022201047176023912849072874414843863130430569591721519346626657772831563775183222824414398577303319481211302746632260531536886116763056542697802511792082205053103604183632883894412182501627915568457840725845661269562920690484521023279973012751269686532975137638133207139714183402491910729878852390605398111605435491034403043614201347521045037974104161199314528812679169406670871298858684537272773124764828409027121063400590423037662345736059737029117261998129920528539383920527996233893920415397806306049977767716084950002860348959826085781730185123339335386957562827169602791468888638595868407413447382318131447905291142539762385666350956711052374376838983153807573280340456619683568750892444887689680952855672379125590218025348531572929146970720460332959560575815074010848443964034094157542450311311478074150261695390238412875092783219075303516542060426905323871518612115365158456890611471335624038322762074845990417908288955864221505757008839817267897746661536547290400978908642747783345573210565773863469444505658485591751112324634516516340274675945454710332400510182572982717230389530334672343722274801022871193282535618530818804060608514603953801909699735529301624572040782766128760465114058311249648223117596867346555923698257066035875418002539582839420300736319892612383446939726213074272028514044369660025999209357505972469498422875293311595699378182828127501510799327997665693109108461986484563160694888562986652727973000595272287080566332813869258354759433394140726295502223900715901660212069408925551559150309082311423850605520039155635378608165352965505382770634362028893731644013467388416541891947023303049428069778635554074832865351130844679790741507096013579364210784951757119405936014140823482730733983427831651836302353751020624463551979750748214112800962934016706576544634894760972097358950629627120280443202114154232873913346426575471630844865771027871439491297835221230100167410468973505121782082946908695187564854069957455844973295147328133405745029279832734738649029024471612305443146292491832695356573523715079836621406666648538547902041504923296824230325944458554998964111139719840620135608890613754106294840501937583566071901525626519684105255980978255060518623508995627161400672854595408152622477400799870836545281596164010422511305780232904036061660049857622960392756732032168517940363060253526995587032194433046681461284177333936924150249627147865587273259268798668987869568713457483795902462920146713609080009573331432980279003226753641136225645498214972297994806752508848082835600459804873428864338079989981888042809432696607521573106675910289677584478876550773426560595909846809020228967790153239437658578792381992282155502023695423786482991268816642217802386777433542802967791651379169974845816740315291329846276704675706571514022871347804663630908731679176633365865013622186139062755244604769523797107543182173673509561613811488743081182421397762640096419331439372899018899507433042202319015327225116277442643837159799383751100159472280979298750352097684872325183689859209460578055666194932196377607255886658215667985248421515719205026984089779093701997653240804675854972047756719320089200825623082390119607566807321863294857006028928866356504962546097623932130452031741325694788976360454483599029680819958175376037381196495516726215898904708473964290238525817375567364639396703943837776925788157688997643413486279450852925694539639899007632463431004074295758136085685787547494555582963934252621583891934213520658195700420996398091924941482013297980258964165997428227848406217352212512135190526834293497822705242940487121234527370366826582251025579830634230359825053826390557540358800905462369669911345421940232481041390015600105790367741065662509572245287809533858842160788044544827762675398745715879033890902898502226578260758813156374664732164027650919124074857118455976179159023044109193487132121759503865091373199258202987634813001481656957320750308328528398593711822467512168057817723521312325128117879401789030720883522967084977435176584454900909373849843894712952494299977868234491489514635004688112182096310340843530580219233544010907332400713691247712938843234811004712748078702662591740910647256049737454620725749452140321060032943840772829975942612900520967842415163694117163298158192138748906969786269674266184760380212035496833956039795482997846569832163823119367137137444607098353297589746251218126253083986807872337347460649093238652091983145886285127408995115429966279818144690836335110601120106662228627184508499046737847580019817886384447480415718175407328945173019551272946106789736482587163627711595437515842319017828925776662651371334101175808524208108812145793128762146924715368503538175605379328220477992231603349731270649031935292053786457936095650088215983365527159568798872799076632069169730364827808808827286586537387514889098295082457857629310080489369545743521668510247578467961090429491839226583869376003796964199116824645482202686709954126661951370413506013121858969873779421534067387577551969711567198878867093307444529319558925440753421132206041294561258662473155248014961377635789741286186471330591641816849835911722317832829448858696562830827057356979983473684242672971230972542934630684245127608987527232363252368734012051663551650148149586931299726415592343516401627748705096013614034611736071798492088701383408762665044676084846520591186067518234079236428752487567345403681790044407122401457912130609146796331197595934113817108856175641946718931306843159836242190894902904206696995661476097820072145528465647171935288159655514310441051597811762916919082779754308709512404547562999543969853036453556525015575123819216790221213673624605402989272303376940181156993395952862845454535499255012364647829765839634763138935390997920296020388257009761809051089220559964772160724470680966678054858300949071573506015950059148026070912381256049752809191092852276975818283461364238260177548524137656841116499609032448229047199251150587237283202489425533033454898740954314012061192634384009969623450687339610192133152998343549088592249334752940340592365538787125837256713253711364055089623770301787869788874602846966488641552055992174710387799857417771582210151830789176323330234205465321483260257954868213168331932681038304703414837073128461164047077510899021468048068346783143390167881169690456861444331612579572923495066193094569103171792050006120818706574714142577215871671257409652362201576234275124676921738336725682471439707791053521764535610304752517719305829457538015732870349484681337968645755659610652654932057528394330804626976021759384652054379319710879873226062378106822442874496972420484096209967952549841174509894098068903217633242007081899251281840226535525287363422456308792349178128152736917466600038160416978774301805325895796787241763980137977362926931362117056266367363480329218154826653259543137111209274581100361037505149737588728515232695141333625642148277821272915083047295753652500543917268930037363161217535685007289852111943941882732269041193201571286703638886462052416477456705289276628094416984696783730787755486040261282256875029059922988897011128573278685487858433628272727898506538885808465579021627919363836554333431406551115417861155331166631916230118936710588697303807875328339392283577907414823372413692225424371528410865811828536569080537618445686032819603979786674251520268683336284196198513908275796066173483358015183471239105238647736648271402453592884120163029016986749797769269793872912885851353001744919196586556966214335213416764788039042982600228672740072669941533815506713223101597689878609891242645408055683315846127567716433864204998004788731003728693562711549803023426397759552506835220882409426183257204026865005293277104789472553606059336363069242087311471982534849151738883953409108754473938733142024755072140865448639690734871104567854447181953002165323065033728829767610466453165625230907712465299377258135563169109790898353230814193918285298509718477643595541372095760481875786600055745028526907033215897674530036483437896178423615529379900649206994825780576722411034150480008498682424672364999899535311230353947379488162246078654752710599516853205386066092622022272573743968325683484045936925933705198233663427783768901734251561313289162069092393077546880199513294877399841962622340358886224326898319992818521709454633897247811673925475231552392628688311111479373812824063259613411192552425166346204491107214712058176413424128365673382245854795727305555022198619030725711429009666623933619321283530715186420853394791933376238770016164790464616920042189620623001945253708571822853511038939348198384753529229696390147853570953219200382727374889138874234455172554468415508532988382533492397716294108051493614489601231917668388553854504113497099978977055923007323557710572418265370205188253296051013256182527159826098368434377902058459343380426889990614291163062228068159240509604932092967750120203344165253689306928312750344585840797850520293301994609070967157300842736740881827980002495842399519689522693874604489853156148935581747756862912499141113024212465168731952942111607673553658409133502791208053478374407964338251730014310312971911865817358700006690384318665270245428744814416922115977181205306161384512613673724110257085246411869791443047796610384096529691622351458634646431977724482488407720691561567736712901018137004571771481751023850681475550533554217411022427754573447919635709471970471537685833389510689090211642620948713998948833439906308117659436523363684887760329525681103652231368976041463157345068771422347265376869587842434735815423721842008111392866819293394528048055518414099866011418881043716986775793044347805485526605033342327162894642443070272739887419636019038296987280632344927703163747825734365892859279355497624942106828589180617350862853090045764092307837120214743516215247311199004354443598721139458734160091282758910693398202811926347070218565959917269968554620079368379023084698273009553331703500263218998220470319161320424449395830013428164107362712924764608754187570144241863831409592227027884403829441362294734806759544126750629976837449854194335867781230642179246039696869435620082251964565379295035151552835406176819667971230797275661372923017514841453087492962616487012575511781921114167611197606148142905927842608898812232904332080595899864722620389304183014388332018020111449807824744313336877028400017284090067577859789280007446343203273513351008226349818877520882942801757039583761845549418969927401831567413986141801000679378177142187543806382119498511857759628245508824177873637862009309037779941058118077910765982624838517655721828810916486740346462337535752173687382993731789224734331450604655708904148635092300682229662761128964088121706648315957724092422588387902394460571035821418455506655703136462983630488919135324961262841057805435039259228385788347821250193521452843957170787449895942342661048895234995734171003541059634586178078866370305336247057366183146980786585816587803371711911351974575609026336346049739295953628872730154680380282389740803843689877128912544195846243179410326559540591825787883904998711441790809853341927264177647964704545040433830537560684329404395604581209737269558632649340765237379181548296743904110228320738266114282203638621726571861682539300691778817730552676305489752599918788254688866027187358655077628577611796252625896512211161594224764182913219768078698295491248593206378679762505124228809835215096019094015809825829835449033504045747288814527224412216899248478704477759446053205019339138881719148351891035220144369737614465287890311329175776561275797083907381284071442404730971205714152800860599802462894361938741367989538713960080370673529235182648817303067592870266952305442277366811576518419504998423092046635483040496213560955824744185534524200544881089073122337181176670462816832274857446186757255832151379426421552519302619059124718589790913239291674531837692982434140327052194076421623904590557516519589339571646277173669802011518186998094233711228635974596893636085472956209322156747554132921380872319150897534580110358646279574843872538749354525165142254207608991810374290481420588154023788367636438886130855865724928214226521211577242706463698463346716603246225498197278996733525990205536871786236782090017647866918316479706745691196711662573923328458462748544139534069181353668585156884861851877381581215838601499589925869464149221996948893156351296696772468977111179858697560223965304512257793378711958753523403457253998148510600863854823782426581147354408823723280567428786994406240749034784894411953023187019153584024269879349227751958885764857488457064972656028918807817515992657096013918551388033501632341960256033772708576711663938542096627778120137723748141723143607414192493924539763947115914626533063382770103586817096733493571873706293702665138415816400954277611872879884567744550191240802887399116273359572631962380205685377840489001832821771832624877787532833190395599397525339250717589032721999195714515660321288476470097837429519757657352871931349256765463418941608545365573314121150930505152972425265530744454013431801013668907837825950018455805374422331854145112423415249724828042280657838277963554805432583773128697076326679375992646511066755475636550240008891234294721153574254663068584387954981624239993928984566762744452260964919190668429584222201093888332212840293026387858600442861785216068766756697108739021240277862863737732134182178034099434062250933079535890692987261044140485562920866323275453202931828303198038711240431363851407947403981820608489610048284673040902690910054441814453170962609037255550822837343138243339334589953438891013676908255479647600418266308781121205850699228086267438314043464965493723643476994151677714663396742346535182490344203910262266167171822452807783491633204470118331361227290333839599327692211073089198194446206590816741940981690039755338454463278626223041933947861717060174277714513677800468387768217258628572654118607096896032182921619684664154058302600536156332389595239601867225876297790553257644487902259531388540206704284467511235414548167903855636052880480992844685401033523724372974362467436092206860545552120495565002257967507814847217546810388416674345716515489434267292862960798699203192277028714257355502846018394511782750327988338774935649986029569170606608421325486601615751143738337354855796242925888932814152098389043369192610904812052450031325307531649106744849087610364739532588908438130253790539903151913607230454297527120168197906132794942067543207468676575345329563840726274861096342935738023550240949323227336133506244420655822654403264516168821111354724899798008435991214620708888137558606933711340274680646264941966432770146605188978288376926625199685209423958620834983635020505173294308370728477427152595486251098868575861089124685425756189079491512578965625416110784141229478342980836000463653410249699502058458517544767414910797737115656101097789784339475062755176968649611357097589469919240023755223964742805933862990203323697429951540549085967295761709228407415790111499041015526912093756535471600412198150579099225883123599169300939720572949828880886286523362217925342002127736159767213902469425076133643021945912255967657543741501492785929931656105055202940816636309466357482644452797727094049056093845754721799655736747211657001012347266334604182654079528965822935245122117599821771395824124987381939369869743795378153621740580918853627825642537536009605356264140192670185146455849952557024411539482854386666951254751248760964338077455668593716516738543594545582490958171433026840733007684625135809647944040145262786084403539463816829443345003890119812677129341714492920808061364240682655587846899950599542623531588755070841492892315427402655389583416162223096059312438096369682413133871301465748969170812553838227363980610710705542031748929043025218435955524371021056984299654282186292094411977057279591162201065779158710563933873214028541689000903142851134243500637131558214924742981096582645681570744779194359723621553249950508262525747545811385600269272972663500629589890976353189642123973939703956001120076760845073343426650160389129965371237142906653430532557545892057712152932239437279981334644333113962602775231651050991143149817012250890906665659439508451961896888915712901555805636155708987021794128566266437740262833454251747275581693180344023410874428886896274515663716645261187449171836616547478587711387437483481169175350514821610119907661797854481919033296049349423117113981440814830109483081932684030570536331613252562819251044618345420173868164746363942124271058907063408361247409048055622865595731742049058851467110863429851332295658511755551801317843855641057165080987621067212560041495889500919224673479474922232524011469424706376144579925824903244011022500120928540774127969903777874911829256654939998591149686463675704881608173210584661712034410443052340839598340413401896085033685390606066860333237445543146207639071567148633635961942678782038056156495635321728248843056174525361239469840848455754436283618730123139512725766002677964436348412410850559453069234692854162968759292420425592177333360828092500479726004309955889867484339171241572911780149524891168702033500139901790332334835309707050810781789819913457001875331297145667820588118173953570805982157470147400038059831655919185314081711067972722141041991385846072429306203164391397430744012092049971771342297014727676501107416294164007280623232686768773147757869189373250292050057945128184777069644040148127894151259743786943347317683823625899790932049087175447918728489021523307148827718941004978150271630864010013966436694843387161957700155966091968520072597882002315549973009620595140352174808610125177877535479003321864142260112111191079844794649648504615306422263719555860866891917276238979809723901935939906278288949970281968344194981348176410110853173484787005691523826662593085233894752697444564671594965821155710592362172430990880417346702994146830568488951263769116360446008062278010127410717314524115588543187251909528144186476879816655141834269439527777843932800569088930207361434443656710677645378453112610081315055250487956612690969212701378089389338319186740347062793378549454799395674843707279457708962816001001794194204457736897742767337536905260371656524083088393502279835513703067811590960476007818480108025817016216013209241092289233597033867387622632463089015682062648152100901492721488569877834224294095327746008599806675295514902642350815409253989461309650522588531009858040948820598311446872396944887696270067356406840629061504949811132280385367114086525019969348775122064839638943353271369764999419617664922885687748692937123254861981865081374884160861390956823543752906838237106857369206967070529239352800622699520825486619388843795511879732239544501461028215526025505069339631632225307657630126449171705587609573078120971084323012427497993905761494412664793068300663202229903764083180173516454452676024365377992146125066031114994596913639453785186120837879938787498269419338809543349115345649438538384724414820853714488820691866599426695579743540627017641950254904633486240524246431146329776407511483771738321681664788039873975649426186556230130953032304226185457244304389677109258936849969565649024508984988583119863339468723503012944484038457097063996749390889019282606191606000294708010738306861106001424621893593124521519499460686740266300323347473360996125071788406964320729542589274438620087019185616466499560311995977458536548805446449669834736514210088018967136497948352683719499618764309128276501672046824600275693026280368258688566169920937225972218843429530654153488725297683698524394479358519552739436999348032920192101432542876251026356461761986746887916378088505311937263561222622495537096478175676369617670069725209827905141932598252605373846922955086686463769276401623436060139814422107492170030375318584461496418991734223235005252025776985237613129403247889067097941599532727213037717174243218529100392813019773366831602893951753212534653271887373544656725219884797924164948695796846880403723060304497463823306188583739338210287224637474220460223636713326072599188394836426437119511778717617265889539688512712562893762584893049075710990942666832770202732702349380291257960150141976842693705801964937282316114091277199104554261077073781971510624498928828470226406510724583503365523721596110314502063878839843244544404930267786482019668949576156193880977701769056882568301102309796827092745479465448753614330994165551213235222533001781077264077155534810912361008409290715669119613140402326979572953279044512402824784100821816310673724570788140108672657655111631671062330315853501657527717944527230950982022652175108133778541894477709405682794212022181655583867598305336161501598869779267629419892495340142849093541218480528121016256336363285227933671272832174918611273295670138480510820561515624093531385569990410417213096184109999657405073911067672923747251249153186468872650229468758406855772583271066322111399515009563042839170466464119767667460115086707813676630093457561032635786521469838960030998414125162709866840280138822163226306940271426768053647147680362022507357827661675043399481896137546143159553088607549200244711857757734413616113826362004354237761300677481478437167199173519229173959049322893035832330448617982300855988907208117149231250287648967392262695658458970300797695223643938415402097231642069761162970378450353949978206184535329696512063870249815088221114706609485537288059098755374892748426522539093347214911809227179953810259201961731946572381841526616836174406566837312209693260155881708880895428532656831787665362481690737574138859869351699226977733339235717303586074609018398653087432608001707795078771375277959505887673934241059105445164488575826968835729349690595746618041372760664352180595101482966448906353683498777880374968456448237294562039330517858424539434953334548822232088355532694750633381742342489411149733364197470303312524428933186618615806929247485101625379975110376643394622441808579080407683659415281344069290532133774096114163597773718749432466117134423691592798390112245942002422865117811266939679736623248366019816254954189475187956497502973900146797736035675986669631921398276776846488691666601321086139842860881748946702987637708925885158436263447945081604686795546698455338543001035804773149063541925364254199394085147508216700251130294562819351295387563055779000082938800439595085529947082965555272387378832792358537177262692217332017001376096104768348033640641826232120403156740828694667160273186351424827384970277880047607953838890487907186027203786387202696477492871540992184013049432493796698120381279580906568181135325160400402154637805875380631506261646110943641555571956442503889956487406115336134617324062588750962921402124659623660364960892060683602671534030389214170904464691733932296659870109916619196996435553617400240021760766348140678400978546916929805964383279758422857921900077098393954469314344342254469758542568876776508064674509824462722949483974700987882904007293821237593731876504069710795935058254862093758933771548704315882843617695433651266709661824530461294784541345635637864801415283705169654552712841293254760596537316007446935437716844596773147110810635922223664525297815690560467943372045466283265837561178421910026467721690882270795243757814165246806884979950274083281952064178645362462989833273441690574042449513617356048731132934810732972820114359762796868141461217460603216427327018414065211923860387362729051165138741045780656413563004459098489016715413655360747163690718789524960896019609170691359335085736290311405529652575975785810361601129968994658772278106062401539334267311582950968271680028777999301763840099921897001833150522491683356671553942502009251759403843617145548847250552147462975170976153058079393949694093307707504357526969408728076042474981489210281506291113242282862648593504011705597831483869415086912561419179576111727636962398115785315073192071689709565032062233257822319239419966568283798941808496685826015343274773541667840357752513640981055920959518534170674022306233366358955480314847632686192983742185644675507449386354824364397398685353941154799873985578699069113341534652033762162372110413244648704746056667827557054507141902194912423990528194849208817677369190163772438784933640353390541805473405096289496474961087487892805226048037380228404127078703043027341063364413475333210240184067712618500769657934975454853489106673639326102139370191969384197369050244088760486158974777974711853905283232141740160113656419280462791314868354981183495226549351165251225783622738191785594134513135978191969122593898702700712476136328766553878051626241018904621002105981856837108009862519928861398880420499427545149851605662499907341829340258816937917676827848764314392863866442754334228913908905500049676262659759961213359980719210761717801977108388269405515273950174218272329340033279312881668013138513895882402530041533559745413099012421066771707966651115799064959105672512908600062527649368702029550054707071028797350091586548792467367924709090977706986060670627408180945944365094466594698368310401952161739741120826248475218409649627020160083121094645443527410631589946048671626420293477463167063312857213298536983158342317183221386707025106136384916974000932476524723505443539068870540409339804314384965714111940830811262436272683048773661833087910714333747627922542758077731044050621364997270406554088407254038615593590130948347141452403411225997129885460241679062150597552265216887894264239072384631486563939721794342347723475597415999852677109503932923527112474715445987675921102935506297543723237946865122674584501766228309380596192919879340212904132487247212733520361737872499516086914079331486871043025848948015623624359039823856250686383293577871432665768972731895692082406847111566140055429998192102076424033388441727333201531950999228826380842371291822445630506575088714888355243127157240426977289735944144754917157569966155298754000629589727673969381005998722737222524956072063019354954702377250872854752065716978884169564668233995964552399359214252583950346155089712646323641871533055016131918790866706596767668897752513161058831335781290941619135736166994528050846039748943721895060945961214818660891109784102197188955105165208028439852597353104867012683278941219214027814294456496868526186433086588331163409764618284910734308454476675512945694897969241503029164962024878081167391993825267346544290204084226656685188324467114351085084299042457635382941651548553393069114331671239133124770495827622832859196637167253059564812220868751950870522977110123796212222838059995213789448486492771413944060983397579757706948079701179281460987356282266426477206236066109098946141385052322523693665971487352713579758393232025883380582614038648720613909498832459402866048586174332689058937903718139415319972127590676048647322700706628151669043376728152679991701075551424292715387279798855633105372058920629280339105787184766532230858978918988641897995094947738663733947421441044352498925916796612574252504242557661476488936946321389910944688770694382584440341305107992960038097970203349570269373121018394411663822480614992158889870644096402640326769128523068222935085378348958673262707974192242336070736328729334464965071554397535107138264667590329309834893326530667086204007322119915750653295212237653573595929793124450623345996090898945278032557219325908254494461938620928283612761951058685768160568875158236291852769955822575356599674971572837498420808098682726231419653266128537140122380480574261444187466155226668518791520568859568664667382898794351416246338113294563268763996839770125224932941775266462934928807173876775676323114497179482705006912523211779808885137215635418365366255821020051857654570328233592213168557553474506122911004095780358248117492477583395430947247630415508685137141075835594441992954290204816086513526136981668482961786228543784120312649034663971665167075817660835940279479986548972639963342325675677246989103145548714022067300524360655539764281727915182814524014780388787668912040975138517107922974203773742961064583889457578521372424223436736015278246530164737637047512638318055760777888226322540269868610780316696005599500310180544311895509354748822203711265697028598605429527982015382400589066613245059496022509548933728216918611279722813670229057458858168152915921675734043420275236835537661034742983138675011941001784197351916622949126190052706571496814373566022779990883671812373473910602013118603578100178680520837099619995250753600298042680204070215091571655729466633684461384110828184768472798415297546043809107440111390638689256843263386461141429569180349153769141724572321872230295697897054316474514229344885794732236199332405634252382560587787062015836376408447910552653755330620226188700201811788599113519007392717285027436494985567349971241753579771837363152714468681932229628720272148377570796191907265336203199490866066875043391585202795321828996637448078443215564584505240001060386227975788167371642925442855926594224741153113329873992301661465641710767593335607344349505576687312999674997982871117006837895482067802059291081939450044762754956567156562800703153062284789973742283176732805241683751440136615906192126263235841303577545778717355863680938105201859191312832292679523043613655081250856116950674543859485175177857295321235225686510869208517171062402425982878246974317189617000155140912991184984406766554808472047123846110353487820695272465729912185550723707201834880267445753102429121882751096764514904800108963216891627398917305015142725753956600952587191513802328502903743744663599811606732756992460153934343239802086555111390257402819266140142314603753143030130359906430577048162819402397762606345143300177864266935816876859957631799869692841088082705055232887771111814614382654023664912546778674415783034261359956256454525140822762921496127888025705665874458580681811375516157791597299596950815854157326044805796405235330816382832296559185604040822061656142759369495936645443268364229012590776390346771042948347747418347315259002319308148278266651253493657695249714502917541748815673207213325505359142215767111016252596276775329926433449900894918298617245603555777715396547553474936511963475192010240921542288974983011380900185217273637409059491262918095121527369972727228008765930846236207156633175357153362880854435441906164635852052032176305847888885375312598775624459485381015400305852683189843608720053881115399922705894088354773710633606028242203542977314290254091387827866400303948694609299783880090310351489280609580113432968553742252952062631450471613984491279659432219742221100927885815025300326577091411087540262600435360959251394204273985306983130577737571223637690562886395438139183228448225969027310726639060315426754283204139993727880721480848095609425635360544854885358926624842260898060044060422557327421940203547146910406521880644174344272414908676571237420164442378596770127652198604856024842974012056526395724564407031049219369283823888684470503673923035415076012881196209453289386661191504315838027431858851559477714262858815396909002587799071960510022621940906218065325560775631669239596920065508934882880270367166462082900845858741421751814814071243789445080286270723194613517331838859735051770991095008394046440329248883776639869950187941967071374012316719038153542367776255110038763191201647329705991464627408176374467022919899241848945816575614192364712762889387849963263691906454038725958644258330858297485096430705015872364906563976597401640333783123762582970724199279406949347111441781200046660881603200949710082442262997994498074597482993697808191233631770198825531589147844888377830911646889828677824449320526480019971673020143425512420204178431341615430514633048715961107787250095361703176034363889998845451020276238944494872579351791676297281081827765833990038534211570025109883531019348436217144641428323208199933124549182263629709145886432689141982184902828641385491857269851647038910738967267954307999053681597971252605689724933744662065945258654010918970073722335728281959635829776292691425573160327697509423861599081119387649265514928463362381104346661956586706343334477225177514264378450433086202938099523062666695480470553779729760588749625447938313055019248319352632559717938618818656566676356805209710077393422391826498056210502426529351704651759493511679911667697718093670098273185769449330811930601635713816030331252963581231886733856921313964706296946511752060025127634999398668245902483162403504729099340623180949342642274968822496072832834824898745168824701702414801497662502741054990132852069391923913979472004066352853711692841232074407658267225235283312248249559861878098637798289391214662440178130003999391403725745061874317256478806637463147123700579330303201599105784527737626360506746923942068389035437374566365489542955624598514030165326813985865417146439809643167253978544932103116460912987538642169304754959345797709830264669899261923001542629081392741265133373547408950584902016072009825949931178604319865912545177690752318076577950903531728791148786553527750626201351353448836968664349179994730757348535526232530137944249561811167358777560772405584494705801791659787536542438875462080287813876748061226321705996591593924737200173080317200600802339869997795947979548418971218885232633637836093631276496070283060346757530305493469877504041814867633627011604511333505157841430203757080646277601076144564372755357815490034306127170436232783977571766845479601493948460580729061399150249191481397910924205957871440577430563911965378414986107159920165709535610919021840261465506045211325792479060215707173320330734449579191977028050927393678560908550207214903651871610523357923765660627833154807577905538033233557046494355579032356124843288841289223940587367409493147427172289722996975055105738268133108318308023538450390443888597286065486924732272604661578500661307422861914550485909991757234502275286614170462182586306743992992855414931870025850018642793609810021531833576257887626695212030261070855113631073531679814762103230037657917295774598256533415200044430258500917392843456354157024982205412362748756453691729157794433981993517718192717180240392424528199129040296997107240118189668204355214457818047490004862388926822684649536438467374190519479840016900173393890204340000714196434497907378300340587335115920231271485898778036804950921482823367186149189581104046797083630755976980261166335394453761619474083732215078478135829291815384410591557103272723215650649186068118201894035346120346820848805066180215526378903040624968180231268967947493689681031710457859854432975639438108738731151043310930358348027424990351220734651133322926611109605640312997125000855203709311971695460479853836549631736388864814386304259966980297129365394023262166672293392395215110434867761133955459659183515744351324581522134219020262430081432682155324740823416785786273652488745528508402127805039982069619916279065755021031209826845417248434868295497571361507083711132915891962759595314456432901615492969108234374098328750576377420921319199357117391254734184368354534451421861591925869101406179614754129442737642709201331805260193732040911405747548125048763723639125202524589360855220411110472203046145613739252034187232468945005009285193126982520704912201127621281422837774010680718641099159508387897575180848480693629301689362136524042079793583573749255674381807341537639068592573387695206697534335242348286225677716119316516254944232719011746800280622244601831240820555225869009460983849459460945712855702215527687827508974554691941169887258875147379077014433206961670806575611629982676577967658390799267209120203646967448548691107729095386094671873214464634294379773906386906351495325796664646150713257190619691227350038371333924956594388986099060911225993722139650490926447949954151586407888248926621529191583334224471693494312514487356761984653504854884582277760980523193436995531044369776964214902016760329368522865993197949033483193352216376538318354417083585313958045343461902865270173879908750618125577784785510561752801494482114513596820504520305427335642160357386582924720648581354611538395862347605430898285333510728193557151088908015279095320098327407150070500454121970951648580738175940169287458384577574015134786276716553058920116206288387689121929007287325645089166240599673220607350173812683156715407524038759821593762831207848969673906188770611267741915241179279806271512968131706967682355680902725559587831960699112455057011917985565279156569585081852004621178703220264295505779846882382239562041631429774516551678817993617970760690588329327751240408269305301684900009827236978994994371613738585666422939838294247830602630457860042998512522277075885894838354694178992656209640051175509528724654784033848010382073353186501810507339347921797861087925206311507756944779489182782309190566949006347940384769272581960243083580598366228878356686835379762428637080740230777652093983467191879318424063470719033781139311617834651484717166516817657742643014010048523398996132758629409949106868134710423824847386056568345224969327155757269487667569600687151688903487023051982114408182909362096888386163468651088543064261923357408146058712413503299198004332202212902811629504048413608020253130214533214513367234195785166847385254223276590541592846105549799055805362332250710547075917150067567556095800572232507829459613253792262608105662923940841312396791288608568500303529082470587023351549928416664069984103528269183797489934353995670509481981667425278974729579506444234991168255481420271497208073697256682789166447665000390278430210612591208409691481505393718444506513069127456557657375083967436022387422159285981778024350055945455871415701699024574395171355209182965421808156497030133599628029394762907462822818523389362492350385038901672705573122859481354627031122453858071045852527304472314980853883094711192095307487785235885290638780465120938383895586739858616150212945893159692324787617801446588350336418194915940013981240054854376770432843270611896185943258982904785246049762148817053632540588844578584169773890594951931217553544239356424194858495619430852056164363325681716648649633863780052501365539905977071314147549624403406651966907020983564945911451639549662414059654439192090221412315618358147542257542104578064549810961110592359010798278804355805927683769588740669846038471271385867952608403076443274440174762415444046691658239381850037198237580850195889846576945645268078766506859778087444937654421594173145865798857220967736832528068779607018192314457477073675733590991002912574272818889703331905574363643622701605288446143022768476086755323763341910253538582788253763885794923629297252821936148650062285532530206392408795115460791667454628673304387800493869639399608998204387474258034149898500958280167323684903571555480119028745001258265793549601899394728243575500670841105463298122178905370342530459193546775409449384871440724591215964989948743066730585831899630399769842704620230917034950332243278504526536724003622133380465157550870087999812254878740626504368811939301908466746957112393218159006089548280784802807258257609122595397719074494311396587773566339671881714861890654078243477073276454667047832762447632343942748842427493361283116636675689711227031812576795593752784550362060810188220468552670806072426376343833014300781028974723960655516600966438313962338015184532323808452971287623063304564739134205495536208008691879887867349037872568446877209550725228319309611992645410703425799293751448890782427668812085934565565739424205536236017046508925040550728116868234410928854254208308746578504342949331271795841132192665686748322233596207386790141305245806954903486193625047159305666358292747705004118590955204097032951416699112285873242044462028713043178805009293891246076701542568000594890010300399876214694087907979665855147251266968949338552225915003306948004514041012038096067811772933094589260768693533565583594738448669866548786592770480566306497595352369857171295572140194905579758936224217635273296662436609441345517724424075278295876767130036860436564173885759906903189426226025184911992235169339531244055169745702700238491714526373811556795851388154622506040161358934155774582052274010478592870564175982855139285848058466393014669248854650933735024926317422313936820101975542965445406415924414155466488631157093634700948743519864248368867348974099519182195474384011967585744213937363433291725367378791086939609248091201240939822665364305324878073185482014782010660079938520443512199060216041324460596195394439325972646273139901692663704005833121700369121985336253720278109073993650486208879379602587104706475836056993018795978297795334843241362913098853813316200426261548158622601067903468622669544837512870965749750197401417396293194973473414803145904621408400193194457698956494300197381045927414082673404396551220925906359551005753909638799874807891997058015361216219662141504579767679036862671405263426989275062900294896619110113654418963094226707959116073566581561078457020314824353716138807740790733587406027972393440199605053473946828447184609215174958797721540872103553852173221632987855470757720399865113354942077974151102464427892624867731031313706668991367627397867999780417826595835288582467728542185684412888236735776660492230480521443549831351080118141593051458063732940901728316922729102062964595874352923795800295752876889239409716534064323665836124852863329815577716805473030038014339388491741890427880249675047288969832864515354863338582172584847312671093274464854931158014017078089425810152952650137711204716359185766756442463033617210669636677640710876411101084327271724015685212246595306463498229871523182040779702401185962899766032331613669211692431326758333985427159568142060737657726106325441479363255794798006552098177274305149261079551138230172760403709420859057547790681028847292086852383375108427561860479544915358340348980285202240057071248404061617631845743612869310290212126772101692027868437331471685320271896128821463867206531748911452303284311974245507610601034793462574337363817406190531449244928421476037427428942985488618840689710275526764455570391833216072455089039497186426208757764866709235452469714272090989629774099810477668700599143108407244668427308725104340221981893129228257604189485867058565801850610828362161088919177131122611175827691707216028451757214227344373387320101848495243030087089564038218861549284004436558037664859623912222532434286411944431435790318384753019955331291004278070182562416911107659223047264572620875155585513512279129101789365996625630203845269899002514487041633675448746486471293221914812339369622154695096872248991342587533602164263124133000063335054419662267962549908411491451967935269079870092295859879721887428551189408165627694891584173032770009940407016387813111115580062820471184988269438778057642265164067872115621207862333545855179955853471696246704736601405019836831781873787627788795091628287829619892673172423908207119327189053170531168942439328401001594698602993135333343604146624687487386902463303141428099224319874189981831260821283027895878454239934349391736310420005133222597196651800595275058999941445449938969004190016522160011773144200720506126083030554429428259273956045217092478396645776918717157823117709647222412341524906698039568648851523777751866948819964712002715163022929172937268707723756981403111951624561172883679876109104384246390640195498311896906739237352356202562674852433987439634676526216917221193240794911058905153537438530327536652840274626135246388266754702800091261003713469690261851313585501549366374938111834924612684951547689293013279358077734626997069672139209713309428790881893339453618723419510313758455564002415656306213153163998669865123764776305594847093405467295785430694231457996545052448645413862260529547775730230398922361358577294853967418266235303892479876875306663398251617962191640867980407176828011394131211500031306524505075664042626364106753396988713928759643869711292415108876354496461331186036486472477516695628755332281363502258923605284191957542808366277162875603250423840534798891115243642584539738258491795465622236655310156283291587417573432414138254381441732059692297786677081066011032452450585182586079569690864298693266183728072089444470141934787616661086200434397320004051201680408793602835763939773540498406245190218883224348616961763530708085408872652391630000106315856326099811270362265562872729633852785054599716969296260151824753099370129067219792850096286447308698691394763711761731155493192300894098014604381889687087597159796302521112309970121473932280420831113390250102911621936055170560958864011684958623844546996981929137903087412028265068093428769130339348508079380261291311460297432991896891628719083424837018248703709571228977441105615682572916783608551823883705392101848118487237096308345580632327912801937119844903634486782074879454863558140406387567060287102579261881307630921581016557003043881801453299437849482121920705300954717856742360262079707709388251623082713653307053523778955020775962819818411412195627376220619763095799695224701001798047327741605496387460890153601626191822072035441882316113117262602551972788845343606165273162647558652065649367848717887892892855865766530833138308035670267916378358460341233074736206300336357341494033976248218770913232192644381620517027624881083356424810288490886435488771514007586744510171155037153520610204385780655637011434649456472287136537810652892996350190321626430304791502834001121590170170279964352438533082820315527108169383391487706223838153297904830480694953656010901497610365290611950358067370218056290206411870462095064613680337069413173946595507033411961425264124798908067311011165370118984060870861204384286257281459735722194241161709545709689109876682596925831665939598357053772099479985585643754874529345055412039617037191384565246040471546205870726347632662570955347819677685109620090874682387499794078556930859881963076920670533839313116707316502699502810412732060725218012235269502101023588495239887818081253962495970299032407860297900013785963537883253890765719632601186754756311046900722981881954702669270072214171304837186738743125843097819143819319245625368995619532689753153073553010118110546388299187335478012480546817928103381674510583040660760752471065741310140655122481760164098467807074865446678385331106638794972008099072960191604688324045891693155909175970563264088551648171408413193102567120921269571978110490563471963776866427415990563399380006186951827533939674660475388361056288865049638329321656654021089224587563278145925451982902122622417858214368256157610363837424045799673868579532486810899666556188370813132852587844516691979658736748108907195194670701151355375432551033679080780003589518288939879469389506940861947942650990365048514470249994308589342900982889482322992746460735491553731349965702658108854545964873814105070309979724754806641949698089221570404705319649340042328977120518914785871167474318869286699720401751675601401846895725190433414257902146025401223636246245538906526019576228733791607698986462088721832032868964203834236538412638681294659565956001542916925003413184764768836103088190680463234565009092756028648320352067768183581645114680557674998052901319075175372948021452131860217630249995180197639315942039230308364566226809320118805980377787540802580890781502078103843401010221739833912930933483665755249414774061501453128383600052565849709626459477969805608625832365219951296182481502926905844796046392991412822531387485323791058110858641305334404898494589192356593888862402140134451335671519730937004579716512783756283966742344627334545255707155687296904466166099719305002065360537724529008104724830138155683075853451766172437458295709802150876338079502209636063131734488572868760204254271213133669505698208939942331682610567899051053314890341586788154012909466741609223777798123224663097100841180838371364781928559522873521110421163064904726221162802590232068202148555623579267640191277753467904376048325951172042069082230562323405097146051310267357320469146883090213607677391871704777638740140510152353212817919177873462034037024248534871331157643879584535892650531977656744071927670173378130709474830275196066930858764223581399754376684741839614928841017610551020381774814482156557365340455672265086165425168230672017927003261404972737637190045626760126940583610599157595738284506324329312002895578488303441801333172304902921817861382976776804410053183653234365809656043554593968697641551381834030760684632052675034615193597174620819951245326435930960622415737992032735437802512856595674496749601164417606155447672834599620879875259191103899810733493863156671733965573177977175149391929739436868788870170498239055903633208217306100883769368582387229943926163090467395188717556396563953866332047766365296026417974918269922479880903688593542877103878867734579111538790793653597585143414621394774479245818451187312251685385379525831418326227166962215534486393867877396388297524524495021340964854601063771917366741205863215465725686561563358983736539566000468881799850763999369376041290340544682952115182301802140354895267795746114281196169779519507393490081703991968272661427536824293795318369977267298740630047039864691238835618119810920684554509504679503466913628287532633420205621633814685458374905339305750113185286687914404677615434257116651672323324572264228343558347566562425450488237826756074176641362681184305216080866997765969346462845848459960952196227452893990590859149615061900983629697272393629632054524375611184410242757003422500925655275553110788428440328141463586289028186512533138388799452117945049840965857820979614162640954502676162408519977770976079711800745958311078963776173449869576610975948541591714773867598437557492174965438212888671373399297910169289422401245508626056240457350780711673002987596055174077378527390191050747053797087760640165119448827072081429511086077910577861744187556045469987058737548895992759043312781182875942375592619488598988035079683418251912948838000237430945205252174576471201000895668902593042477859026625989618544685196891774415782686476307735374350560588637553226599777326981381183929519986378158229972016141831833552789388032921487536664665588097132700246703171470590698275811180370226313562192754695681725136946436663296508999563149235401834177800416575022749741435609014913573902317371594902704672128479435192356371956882866568991878110796189614076106286456522750082992128990479061147077353101725223194130833952676060523133688676672013834037820876877533615756060823583967405522567008317788000898257671234039257864344203813324385063119120728466679464995134023493075697156526471777910347064486448890304395317776000267632568788101554980450004156321998394385395136642922279112902741826193945776768824828624614175327258795034774735151422117537323186010079839379261206424149534537853468990562790764311482904969581837838419258873508241902373632835121026156314904151259801365764948754232781288929435289008423874988646344184151435741365277306900086786167923730946295532414870920924896847322572892264644199641761132852085955186149685968347062970348500066074880887932932661572681684901723530441715834011688881730231288621275343700033359972009271841675133594911909243876410716597025805837330742248441353544177029729436307417492394110824158448746190948804349686610855191757457953037465339508554812989951226374923212251267474657872779968882479168249603710407810298497529382651697687963827852585107970713530168866759938399317922372557001439095647107481697933309450055803139314699664663663295546763554800346683955004362485663180776376506401891762038779615115502524370813169839583860909072974332750470175725577694611546039337223493065303182576640733261598973853136085971073383774617348266699667807929523445470177029608828955929249328975878247540586251821501744821668914416638539398175918244663216531024757544401777318607767795981896080987002364586219765930955792781800590777940387717549071182457746061366839767764809468120718156065848193941442422171858298493314341867192751611584171192123056480497823305273112533661810554307174863871370630145326597833245691095248374546359661301877188070214428234210875554100051900177136554195065068942452083358692184398484640308879307192506988134638469372933259882609813793328417282352743594142572820820624899811054078692449489378189895215160106616200213057451746216373472038209704714375148469260761134563054703872777542598187634271567259728713101950758322762375826620398934558679431647291206757944945585202217878247233973751717912615829655900848377915848091988768057939560575316293565060712423912827042393195407177992507479551083521654285663484945361000608674036819644640907709777345162719868873041027238726312670484243241334140778835019160414379609021122262915420087142149764684806896432667983560007795851692865118894737942527188476974658277928751714488255095032674431469539073979721833452431407831781578687590299060995520936520313536842632590169065567549672588740559205075179576046438627075155411886147113409387175606452430740905219878634130449460408971971916887627249548174419772866687225958183392777175179410856681530814136175824332860125116378044779313438300925879693432693314029261584104401154982666623134466717934152222566434466139322386229101450911928568325834410632894651657638311151556768134743410826592630015525768503059595959541880375985972578676919004723797759613582188126623328979544955295894304024408309277887904159277844960044754471631372096899631090477617296851507384985903224329234003051593455925717248050956762571056647188685115853081461546506897892710953679616185280102026654447928428305073339260480298840335892427911784504099547610323591469798094497554548281619888768712217041115331525655287507247209749255418257330158098748003635968053511202865055226112787744942724191870034027251385560566795389433942346226387553898271372402790494972149104384533414229687505980888836379246527314958822704798650916880050031085400416652212703871489992845142853095509431667684443798078220151772351815861390730625511001770253345136078799500454140861029369042572039641824550446278055991498808332766246517623771948959404020070803732409059773938928426464734915227629859392854194406727391882351667150455421071363688712756502468597232224141355788069689649849149111672806660498459040599093868560381062527062242285474071240882229901586641402545876499491457770584296633112461014444319341178279187095611252400974884002918325575780614866931614216752908543947390794892293382552991952325252115477839044040951996012270309278559033088299972064305855162414937072807459046950503317958760173986718174874360415852198833634348974618907337913005649046679197063357368017927579905872779667611662772126550405504901145554995981359484791473824481517394071049373214791223372805776306304157679720356267149910735119619492338330421103776202515328522822323147299114903643739590737185823646539193830676234597089910082932661840813484498263329930421915267260188409380230780878238431224011197816664874751566134613443429657318788925879595454796148849590678871453157572474452786976915517658804412523295991188366498981080296510807721003642276014102211544915384742243571024362071433808381938559522852040308622055436645064239864506938790133237997115174801120761676571208558872233083486883001247218225165572878670061375367073414294928979364181264338369242816510258335817906896668497497561555744484497951332005523566575614695997425514593916285511272927649033559991534071190998059973210684051035021038270771610403022033421670000361119576867882875797072105191866003689869152301055615225213024131763093679498265938721127744477379208556837672117028149424964690315127901279474478431418452259484031409367692664102898881651796072487683572665408841866102892827921331501807618430460373980613612194133961411778155500788628717316700179385726822059625979680228607951215370737350469736177212137277052493090279370460034839309912853079207883728095056438364836810789844430648607014328955776906831989794171941897626519747942586215232818095929686214306865986727417012889859742266146028099720837931570132036610064660214056066004865296521002811851261731157733952385678583322889147042553636963379001932089302799004666337734702506522005855524043059282597237618418978105467657225742399198129407582135081834478662973327441219267198932784032454979846555588308042131950352821467925364838491369628953373227678266580566866464917454964357947500659989594005594473636653014054186690304025490827266683685604166450868705721402875100896650364571711778387276695289810705727393992675944468536853578164999285934088337678359826463261885920700023968677075893241709807016518036696764023446325764849129579168592644932795612702174910400571141786993677680204856389155261834974685312222680707574554256949195927869446761666505652749796822118141427109430045380902454274600801954413436715399088569160483800107446490653314908122745772516978677232251742746147678730009049694976145131683609840839095202064319554696267373325235916503545316074222417167358286763741573056856248137800475405217458769318866697224329181004428242426678119633062084066737691973151516134996305721122746629439884114160443520882712608264367549213126593509107230027978016048712587040281683296993801706362155527117834879890829623124701836673055606238985993886140497778447194785512439613807285895836449261383345871136513860546866829144307451985853797790139420218138542211375157814451384706425030214833379089010131560815439247321432723763737756743130179738346479360731091198807604061502435026911174430298363512797727447273910375327820963607019736784038311102899357105363164196211387767569899107171553865316111501219688397747546487891729860423093332250314424230165238229354587416195341461671052184019444056606481524455338555661566212867972956531726613628126621915648988091374785769352364138877080493371621663129158504602190417898901136936015958344046602840720555878272609560479082515335419453443452231986408570233599279215824605954194379871321913985429298022113996953567551103984302351723353723833263044298525927366882215752846807824984016525109882556301106747418068140144816306664203641378681074182995827893777523433893392455268639476507349638055649396618871833104781761631222098761544252403740462380247613951815132492142995489069492768078265833437718892626528664568201271537890702982293472780378186730410319358531533891604592353758206866440469253543751454285285675919996566880300581854553250121403070015596179954716156202798999270067501171449770876995583151739607850629850720021228063261853464406339228384465516268591824171293883071051941511049331468826200704970014736785493879126853043233784038847460168718775702036229524871347498464277906207116250709656636312510648532839710425166742919964456081128476205213590082828566696907564091100934722360988477531191050023963713676000283123310086258855416307706185037594248881219824781871917143754780600428186787582358405452965422129723520244450519757991594749875428240558306519271379891172783417972620694272284589123220850996749850773074551086153406406870966872766368026841693809965098023302127727920628079339129778285000398777739325991388742801869348209440252978109373051925904800195254966407231245882785704315524456900099346262805506905762812396957138654291121381926222863689531978049103361626448765535494670444218689171313496516530138589715842244059217481821921965466222679798663055684874018859490681977863283658993738719428127052429668488091040077394766697950859558773054133783409520621507325602402266699728248488761034386410106182541731920751096502919784999433567066487096352398706697426538730831998446387491790058562451000235238769353595519530137179002580874475753494601478951722645782065633484213991246966657637766772743513889039120843688485281998634926063365426294243213611939026426017372080100118967238888023580820800137193731119326558835310802434224246878921751361602373741960548884927096708228377777468271520608274230272983339443762700907217406829459060042768019327431646416993959805877492313140836363998433017029179477301508364429492085586478905765563041183887664179359584263557921530179172497716341560089542246871626271701714742935289073698984182968894367349132189915234511289761070539450361039820582390910483618634879719376591926015926828013732484285336888934508146726061939081052178538870371360193752915911234220647286788095184784277382786762453426838018431688359673778611487276039463075245626648255211056299481570821793410834853663787182971958364913839038816966550555280432054709565939018240496476142932567307955219624627524745439707594687808069172997014187408488069933539855423259657915626377365232255925035343381366984423145028254575191761143525840919592837594832978519159564782774674010670936124644656430326462134028502433713475704185862392553716648461771473855600835201615144473932836752539827168596692875171240429848303909874592339169976496353685646506700406177608014277051916108497322315281018168343538657867376853241677938934679025432017820060203361052593330370407235851138841847497313647243773852695056651663595740609998907121324796228837470335645983635338205554905165489248201406486738366383720048561375607822304258531394940789203717347089229192871637784122764316259169646497891056275329088645981535712486083521605981858373813538261640911355655410098786461920673814165688868693715649862501381562882696930408232808026076903114944119160997346326375770800319659137935592459077239359935622838346000167681789703557931764987804751986881156172341374330922914740542889273506686672376922986180381663826740796332491094013754390665704093177313338338095163689269731421582527473588047058749083077881290066216148272892412689651780190778318751386327787391645031892662898599928643495176001210365187384822830653259122016331098703030088698348640139565298285862135562781500026099917114560496707043289090035401004571642280407084847923042263972058390047689836450838379659900302135835573364758505798186751767796566352511915226933534413524245929173529590028736404417325240686518478687567510416029563319283898680700680476646641004690641891597488937259996156343124090601682311742960132924048824382170992590905062174354851219005768527811903381028787966072791472762877875371633236362509540385678653588882076651082352033509924117749177030809192836131495815988022907789754656661641313375076985579604241689381877827498090258711893890524361314134907166805263061922405470730727655407885371425289496579380124414577183713751559921787487140957626055890245653777434109419948271690189803754613293402602008974465525743298436291596213917729479806656470777608315766647816761161917161557254663880790047255313115540522860172551145641718830648491840307781574562196250613338642455694040156324403171833409454716595684181243946194774660886334736152433307215751622519287810902152125957041569255143828830010760410112090547858318419297964002403543259928533452033751110666568439953429692869321242889453015259523055476441505574950570241143290575387248040164288113771076159939730266558704663457638917611358738607969135154193723190804398215290146900425338482492211160274974158162553078753123222237691691974459339216286447010993723767790440901486208849013158702312863446226962420142639182735224271810000891073506130654260473561773734862030178174218902422812317509132113306387620376893343374309807760995559739299720913149937703735730617069786806501583377350180095302665545292584527802265810011308419691035419526860322946372298629943349047584122835954577842881737294115095083120258562870106283540205990830433284362191056935984953927514857664769220591123987042399563936715325908302780840362514784074510916978771487717343928452449595475801721960757830586911483085346200422892855551211759685973575197018204105397529490726998341618466911466387655525777022431153192653550117335575753672130770014405030042282081146749312518403032935856623298609137210342374130089149758974974053720558177517163634992861245371535423497269873232467607765290401069835729777837602184688361039279920368913184868732741898206281424958601450946289702074981147257868515631603155335378852516434478468129998659175414659339173586175970125940818375595521738427106690676573641211925144375570831152778924216395353003959524718218218591166994930637457367211954406118183411295540305079663664428954068838098935030493040714812470122047592390842227762453444059032220248650749431808564769146565737468004127532964800790356857932179635535260077227654001956515694718734628155805521932802872672135899924501032549576559788665779957742433555455584863247133568095564649255370709856728181787321236181861460073238152643320660058935536201498287289104174669235218926132365039365588620725957339431771461786561747757543968113345651356705989547761278332766861624294385690911335482474667764335521115398563849176476999323160388466459118394792059862988270008436627665601493498387366450558892817902715014017085101566642196112311016916736619355539922576997521042658529962306768388374639803863087560939151448524960021758113337046887332321998921788109279197973810904936789846280973381710201425073205795364827307880295059628661248648939232466766099101472938461518225255116817047571589502207191418818441737990474499866315660419971198000801374036778709702149741116712872797398083737544896625974658139143901950125598561005568265327674131566626732961331378556193041398561800169487415043015543929900695804040195625130211268774503437577150152203210039884885571374428179225950656548085616019227895100578844423952775334350087061259225409868081153617697799567202175427729977497879426126009255458660471053648167885259104063547814414358135102447990213410853876294591448025551389647960500892430800752270812143179417985081890644669348065520326754101686938976585760077508607844063146398675757424033105535824984748086297839929973873975947698322269512270534529656883401442142469255906948859422861839219575579668653250993761411825229062441733036126683159095546243887507081224036787866320752600042596611681766635578789275515384318215779103607408673164815313235613635425743784210751842050092149891766811992613977622588837786190512719532737313006914918796406175313976501622124323179740376393639568859840147856927942451603323477918056313605593833769544858196905428229747328304739105373417662001880251784136867586612680589093744139216223876989237421938185465034559455519323267614368172389057289213947226618652140421218397483737663062021653989756557222029954246605379173060145161909843196388164916329259765503342373820214872995858515305232047579009644104171808769446864544738584515991619985573454510147270954614534496818586704565814820195415295045567062603501642341840168692797625670087969001859439025623425842985550792701352135104704356148366088068771683823662048311294992433676148166726411996463491313097973431191412228697707295201951662960952663607726622266483111381067064278270616574638429655472256504289654618713736216141261420873842962297458479693104940012764769971791154301084023325896663559659427560793653051297863807281201841840582558564594606067345117029508098288313679868437728850308832685298923164600685700977183140026136095550229086501791803323446186758894055620084287753525733534084271019367044851676734751583842332483271111334288842124692339796009596418129956382652194973587913023176455630165159971237794433141351349656822844830711905470146233771628263833587734763060822484899704222261651095058661123089733130513862550239100160249699447873657813546308398608086591132947558111594250033845543909640162004017720561391852750321209858907145030073255675730220563437225995905868871447503726310312776438023512056298641371887074085457626001931682910088375157355274425400130930541422649004324917969468437011341460783816814511670251636932856565045047068331358945112521940387980977489281228236855013521632221142886647788372529969621657563042839500320841776534739891883797489004438670541638077092738874284056227190592540034182089653678939008547009038101521227358454423352317842255245361721246356401377758923267149633023065263312108617932829667263082528024863148473164932295334029365838066424674965692192336163769501532630496383433635916345383359843382028947664141306929538463505920000437190562777487475360361965669461570014914577500421119168443895909997099296348615466021218683095850035593562837098623556699748384837112516186237225910654248799346855703043121108314506124459637878013533794957021588267276228437500253742430207231832020340655693327742230285950327863930110148558152728048623488460301767103468512657260099484791330145312730956330851631427235093697081457638798725972355138188062378572123904951618084482556875972007971277284130423727225960256473288855365109142491558789790917930268344383869762102790484146416423980062943917788906989901022100200935097738782926135172132955908879436482896645184006156560792304923006603695754613032617119422278977832546364550941203752286453604201669548305819144013299559745436910561139468418983027356436051344939601151599100572617387216719066738709244992451469523330186961489358570201526651348698119770732886843525650737538613129644993696132319656674497561898186587324917093334919503948147143811899884881960412109331641780972325465544758026625241006065309221303303949440214945853571218148598274688248272989494016824302570275728135382426489032038542503710543244930545552800418748508104245795828084047040831182306307432789994622602486555192566234915088287470929444760777835528818894439788911455751609533966591047126102368701532797831036175884839500888480709641752260750646501906850852837120828609857482031268895135713920222585759439241947036007206968532516785604543290930707815130653539469990735188880416690491197062772190673516177500965033050733912755735151536937166072152797742094473075315970830304510844373139384803271615440435907364677305897007069360022228756741933714083311022095633280990872989339347550121242972661120302831201953756162815732518424597735047599664708830371035797328100940143239851113004069186810948166108784781410104205251568637679041492093325060483286932079600296653278810588818506419507285623542136362612195101314523094512369794050180474720837788958202915860717986209453324056701720187091611380700218048280332019081556417813536258906164848279487803419727126061987751918343585119314068710164592957062796446926453048650327671157019982616339070235995820067194718256916391370433626341177968649501746194994804894681754028731353290104809753039672283525377704476909119879761583002054825170146357563103007647758572435602578599473196637016101712985194361085217394509991025697241937234205767409406665592500690793555065888011678850892660959802974026637508512873850201318086693788153930430025285660319362995511079831464647648973123447719330404241676591342047161857558303810554980848355137681379092518213725169609054191119004459300099987595269053630742945883880679001159332648552484914994158015748192343696027236067153594653942467759319939602619210410235703715885677520128675695040009280731648822692359766308698945091995033782476360288128242910662526612064198429138317367336410782539497306939798663148622252263767473759055585693375275495770662431435587123706789289979643028739841357822402130785763333219285593473306287589749778558375937314532244838188154440147954536086304353682825872029918865539757272327734141018201863158265628815372804251204027149310054348745259634867628194671769238326617997840445322921211265437016142410293238523323315404675676606301155752605337023784212323633135674697696457476508144142765698363221214171423917310615487008683360342892479240480213693246533604850339409514365808686412655443935685761364686013041325473512155541067156643167619086074787034549528703033276020514951597793496598007621738943578789472268896710225745449166012269775573638784090047621731829700900576656337108904804911997802616292415402739047473544566387609195251830016179536899802264285002455670862537023596880219380990795911705033943112216952337071632658743276780674771397522832372224680634581878613828773666082956755855640303174256687471786362665419424920192710497952279198069550451741267168091202699890654605467989284239597246150488364804063325392528875635570279888614584356642596313513187467000664411974615667269413167305126034246856438169808278849441372420153980847140630202212629079460001085213394671598776391259673682829810468157593552557258354539103971813895503807872554945655087757705211878257858789892984688685953484292025446708767057076079640733448737978593274016170722755288763772704509552144348554888091383002387008357272599086456745309209652531794704286929773822668925573638616996744026492748064127566550847471057193606969398219977979577798937584449521654483412618158551038975824179532836332416504780432178040254775714351189833161166022235996118494852941466912663412776829961937176928698288225759469772174394872290490626410492029870994895849449818626491450339419597562673700868705786312274701461638106564917244205194010439986619864037486713623476536321589428739090599456360078339980376559878406619851256056138244131538913458465884357349330426066416149318796880592162460884792675042617592591306786984659813365838373730741582723877197974062267298126039744271429888377133780352225583010526658334646876777871305469731493039099581788046389008836879858759573092105083557485604254028237328539610466816102425560995253554766476897747061745028795166450866843826164079682684749853742957403525002832271668501463301222997102131271627396296698679614872530653188391560444959220946579522215037781106813107740913535665839563444037470250423420769999989718644603069169938268881804086991337606912502439428304026830676840429387298811841506502383397949113273210419810294667403122846322555177061451385854819312844061555742827615931087484869147959384735417394025603846408001559443735714447259803551966902346116380416140711516376059718739940695595118278621060793488823073059511719291637245735543038300833865493067124852324533259052960589429960624818216657125904210846766257543451741065646648100613403766714180235597749995408232537956664176389388451922851078097812999064242655875703107993214685598642894380243135936828626233821104145921327582348801545800109575493193958130121751402867322714404824681752542034813374261067194741590978801810869071770946154998359959519715194439094243968642662953481190197006331216808548507188795194813224537542627578128053844126284908725131584803106278164826386354943718103317843480685595745153591848354927620765115679540512578630388640673209196994048022365455901075984591089443255686566652898888662997366256682347065368707833977769192431266023803959291121726106702956166171978898986856857282659871775764316525580461226998470148240916361409387202308971161590440444364801156580930917757444008371025712079305068352562441337532010903265814973692530032439491499161164618282016348918885076119552055614726256684612725626430614427230515665458844175255110829034860542878949355969805433813080908261715319115998091425437126121423614199960206008741377593406226554832508719038840101217156700732189569251932439528087575716078926573310569992045951719050503489767489428897771651250916951817147182210618609295108581774871442964489846590386301909099019550464786101706236094221402564844400565574121400648849700785651230387793660159487673546014376745689426155965063672583384751145807476597000375410758815895774979075768793649319352846193169752563147649633308392937982489194301851412588320838684781246808271199567466546128170857262586218409193281470723845960722431926809190379214910494293338521502360535302080345550572649002911116228858633978750840965708655172270924095556833536082889007499684047988693507985523178747720027586292920801631433849838678722784918803588366609954001962485802492590225017346242545469832901867563750008473785538788724213370300956542681231768541047735270704384842060681777909723895672241746983006799383070940247412758961849822495472759048350150196220773752120619280655575746730227216445008908598056582950990863470374569349660486829570838781806337504316244436700265276836197227281382491385815578051497167338162632723712164093338310267300496088940304968479755702783219553966034892570887382666130813422299317999569081887367163632562233358768141135020377909357408022763710383722883920370938744428568604562619676049296254730120410840641924516701674202881538673448319802767595237945552843835802601829065247405059776875181035135980252791161002318148756436856137523616293308470447666067570013749132051706901419053593502411768572034337634218711419331748075904143563877092430227498368907569527521750833478550768640216704693069158276445361138556657986056500429232205606717995576510762902569113695913591966469644311167674247827137309907352460289317960279012991477382841476784598027236005616713465943600042844990360271883694250361357676266170798917443047375559020816598973881113631240349290729160627557384265441787851151380388375695083330667670449523542188567828373754713143267223846654845225441810522226375708257965901844529161077579612711919641203014285329502624049792373019398755595749732994412472249851941986752908436585790247162828160047017078188064323624863561673967853566595707372842325905064374688932031902075997034622342423006424145845921097568151445686482576797236213173437930581726053510218918015513731125312982981888292464457771197208889607478006800008447002125344439226868700627874489360477021934963113754470707812909161252824567018938042958316746433507881463741152814586545173627126624579334589261239471987205664164538485759699101441960433563460971602779214572409119739439719109317186419544290404214466577840676385836753333115990880585022828445599803025656046942355474263769990336059596303745605163817918237070389955714305259470998666188962716478665260136669572479781920365375087632035627215612752660695265887331953204713783780257800099888449134291317627149830940694418149578378122565148093937747604718669641192828959677425374886642653784194949123002786248023792740690293345758604434926433646272463928501884602346484550042359832005981372186873534646562458867589923503040552779749536407254107152005231915649436782944121790054111372124608424456780785351767482628432987038551670471222933667997341102408395385321545392442060644298797170281647021425403783688474932247379267330504649191555492504449891687360284908326524422619082993525715057332586664932588669619181191800237708730500205802661956404893272818372433785664105355841376060829972812379104316036146209503258129596242469472903399037813769063377357023549661558176925107848560231726530132665949143008328849029589320429326190637770013897615226133518294846104213716156095426429837006281188514540564797654567436626400397604214267512394484753426338839991396535936820645645840992342505634538475843769285251477681628126927916090934714485426172214524186866342765400419607041872856476021738048274791003462205748303350645895546213493168182671491785899192801288078774721195787277392832862207221199955509641271810503824832851184148280386800611952684481739759729956854366202107388751701990911362793887301632466823494341095336296061819732411445819427128198229597770110832331929516467939347366554786035530591956097764878034550851126454547359176044588968780090756539176038478168850450255252522039644474745712334786630367624686688562265092223813301102997626228994457487785035449786853001555704530044960346638179772827306049031471009128766512693976648001478743495135255698498179474359644139063834951822309036049565617929357181306970283037030482920176632542091312312289345253385226199266087578454087145333579699935574325240829892800213575060536420327810808647901146637729637411768068646200176165360877025872692641262950965575648573223289914889033654462772655062355891478438892938559220650219357473613833119523211111424730477707792055163169614306945105491698547894340752562581193277051649428710223666816922410877969966897598813658338830853901901008242390616022968490650808109195003415902646113277185284785522866518081708184401253335006122582785896482187927899415541352053451309079397288320965865504342801905629392829719993214078093723743541632938004793511557877796183390546236393894592385775347432689463842180731435510035591028205026819482049185631286467117061574546658651651493302687661475307080299522296574997320079606307307015814153482439949001988833641508077917967438185413033227352259727469051310559421745963576330612036033369786236489495363363526243740625257832651473202521628920157280243064649168887800853785657351484112209658203298895783328042830161156238320885340334708081403668415792212759104160617266114008762706324186462880847372620601086450434280677949045883765099960613829832122000927952330260749758413945801318008118292105080992610194440615997218578512914296332588182929056030737602040642234435504362501035762357256653056441630930409684364322177029176867651017907951465529694905255142377907605641496376454714417934930992580002119125513768952483356974214332418725425679627524092973830830893785731948100037266372080783456594036217476867809568001058616846183295259349683337540993781273206351197366926915902494295566983785487356583327446804514183928618705370035624383005700098945825508121598705179112290458583199190442665409424222420588945601782167171649379392710632741181008063716384579747122731143144945184408116512991881480218362867747606222403011849965633909720667531791508406377402083088885501599935353194198828651351782081289733940327159167649548362964604776069895638202539014099776472790428688367062138531122423691810298603256660876628899626628634578101828757222624313675550385732041263253722432175074275147847135383174370522274430788159851952646143473846629986106771949841044198146005831216469496245682295168124865556367850997742551484408853401273224359022798044466505555756100291391538133800351164952349960208425619654611241023132207011017788593633811096094435258825727502302949079713017322682783042856797586100740349215468747847514749704449064439965016505223867399612465279222914192534826889411898810986014617737553443654593281643885516183920237323456072165556483016968432349056175453318873343862549578630281109321132727214170059440699520258125744967375511773621795264611055643883610337880696195077139578107583407202521369938939697673272415312446895620231235674306445925220756130569003737278543316647907939370684941885805076053698559305491324067609826097438948337616100243812257987736792822641024437601157617602958814850786466235001003151480373165860999351545781650202297170057037856746251415677058668408143039702815844962046210188281367033137159239386062018996402513022791163693501525331403205629701091743194373774953871068348769315372103302122863359322805269096784339016702822172116355661648932495953033362921010201260029087783879417736288069473880747917855702379243816046902020786327850413753178093279902915008245495442488045454342978311659717345546823314319213267602554999145302681083979548061910549938536763970480417872304869864891646274710842988043776993724450694895234615357798060782870520306427181845051014651153310717847524107824767381205554094270298401058881634261669221413279108306075037254330667720484935139710312336787109482563184087773555784214695945916195244680985018074669969059105914418211205389677150224561092883883593960391161469859347802771777127714804797934004268978247498979078655461717537768598859242421764887339356112407208349835793296254310190633772364849028893742853365296348504444359336122290011490229187108863640385256231990814970470218671526708813802840167887445081747038697575985754319925291462126929031725889827932684124930052411516974264263017654522401396233179269419350077874219186809081521387480785061801397120721037518530867507877472208540346879276266646211713118129719589442779196389445574469336423023842661663589803205296189898727595069377658786061259082282023838453368515185614896724476971789249060587226917852891189988690072359718670024699035054996544537790326096508229108793273251369300629519506347863434668636870136746954111090427094235811136365453381991065032140276236286813049252083559231726389783996901624794899042900704430088667285905035667068843815898883066901062845312652349910194730252923163967709436708195175597500570795750180872281564573106421127588399295913938938522204752604113060380536520559363927823965077756599620288942318140076261090289896612198536834312973897965009190701093145166620557588921408236884525351942644213057748624753518277526243332697575777655947751289397137723831136728836940960848025903001442631771414220118507701206029961888445775924291495653590656487038140485750563730840189077242585280870669924798749925378984196772827740305432366245899230833377836035516714921230398141457740382367558165746594191171435970235212112860640608244750363317388354169272034690509415865880653633206407688043643556104529871027949722522539190391590598981255171454195892865887075627546159884846475221832406099474586252170068696931424002828103355678152130178497869298882827377577980653386307090409263683087682778508843510870315163678545098682917283425477936440610512483986728208819828098256631035948505591806697559477272784908539899410578713408764459576562003721561170396601118015958969093901217987385365168753989120613629797249375527161433558937125758804177377736438039726632025741771821086833358619307732413401420419884858566747063622353073087258549961084766932629107771073758531224817306855399713845953352331576075157210704260443711474281788617091264323050562990632041160334651221529852811613113499063180045450271088774700320767417326040958592337624133352183404206461053056122363808908384123622233544186026592132417313644967738989517157023334726949302289861220223992927674462420762808462915465360086393239387826135520845662245258591990795829760629255079290369766593765788407532149502364509970134940521697983660659933368267122876552410204152190966423034559875623704661317174564422342611367238887597464657632992110560610728511041696873294397570057124098359235297236389112311328270612878727310700311222770442447892552432008400212134406400250604666244608935948637920163809561463645093476339010274083304313608197704952196941803339484775950239601265977951627290360424142229412987424033353175087990127106619075999162227928728021401257843104078642058197905627261883486294728065282000995221432190270182003364414041220875364107904686244490016478791373337165269440537526544771551115782749338314323787373285803032424784798765881652433516537288769193603573416068202336730217682151951875130646984524157925144775556437218914499950561005828769600160387869276140770487700173137287410462445347018148830606696553319130560281160254939747183445090780052199883997849667248983440508350322373359767670532956216826764447636183089608602010346376846744099075305539883461742143784773422540672497466038035196815134749197037975358631995602493369529624336500214922793219115332546520431581364550788931221212217785788142033835420338229237248800757978231791708917066453670237038413124724853497136992818906158572809783962579938004252393996921633216354054349709145809969551059485986257815191866742816297807351096287409433778807354449835948929381890241838767010229571369112074940129827621949728836765382440055257167912955135331177974720389174353844414830570972266092280590698834563990677682299308421086485707467910913007986978744606982928135272469430222272863166743157434634973587800634977898790478541493949951788853616874160726336369135317547167033464039448103503797777120798004263806104487803898309599122319574567876474833823907618156346434902681849529785861371119123877149548738170877112921217131827152339912373853416519629156207864574359269038747762407554637958560565414875659846346494799892249695330542358764781781304736677434664691098303248779056808015957924217020958945762722061548411238832149354448685838422750726530152030762642602037434433515896701897638967421864353336955022472706183871270623499914962131312140155392800900181023606633709751927805135645713231914966776254028964257962177539066594194686438488396166329963865382017399875267933116129171970358473248976208328213377791678949103208513740654407271009454380266482153944216755426913353641133798640219617357162393777353316597130135797835037298454783018913144291483050496839955653127020170455996843560030598583046897451787865084739183499480593412283838211760699982320521639164412561225845632676411946867654460165396863187049740467539760453906863703636880856033703443880887608295382162721441984345998056402668441946717233914550243875287924854559947527181164354554226533466650645742021711154764845515468182050503401598251736976394336881742250966011211878402758512885778285392626390431339280736313560891134676135106223360860579718966515855999442689108447254238450605980196832315980831781384612227378971190554140926222500671535905454925502639883356267752875042891793312992346009911040511648158319389483141923005822522795586892407850044508881059840367913802799516129050052727003708654943084222891195495789982165068475570041557211764168983349492454526063279776170571981002760941541359795373635846952477792143925534764498315590851972665759891421480822553672399717412958909795457626520836016143750131215846644342473352641135325835014818930986623315583739806027535477076591742172375337922406212275205865251994397378860576465427336399137302751151908186437549384240979227030048876974060551597121842450984642120885240007762835706847437367203156429552461888190412356678438746737358549723943012789277977185253414267646300913228318123583674303198701901147511151749461238626393628650253329245188667747166349706817270667840049245835398750495035034972063582488500220442696801035563993775800762007649225672659576599071128434758506181861957702000193241074851739957127202106180528925669502732931274974869703905892298958432446813224092196870747664646331460543626198047660274701414710849775092193081098748531001516211668017478463207027856587033372192732199044302928001664509790485528360207303855101215638247489216331254571446084605429707833436269184115201896420978440706333117031791797786247990966265099648882513604340002943150157690698557590205976077845928022129486714480233721475563342947629954123093687496559332520254949421708866830723069648867030662718050023579697275916943600557620713534915755360601201658649339177082699678911815203066830433059487634776855184951517576131359728707391992459988302687106409006211698512144216577008340590413442510235052797816687402950415571229733641334328903938123150721351540903892235612029678212340118917013224352224145691918687186349075430349241413842375243357562737874310913804611635199620206377243923225565783463742235272580341364593754188907798419252801651156752261477814636857645117394618246480088641185345298528929465094434948744914165054178642875726723165663644670955332366097380939176164156316261827911325307951810908421993924818847549222627042278769835118625762494263966881949408118010131000555845240368862626727565305924039490927414028174939772500847689411644740725093827794784672797889783689324543112087046133859956864500267107692316814587830619584315095693012020548466158748247366134003465042269896259359103532206252004241085350767028341831096224477052916924984919340296972202749492609369004003884450736692037375125365601280212648855231752274291517630567101202378130033939584782088817194303254550913501948642343868341723042449757742975476692425126154049768023661335716688404800663593065773804107669797937409885608551069391421457064551329379855277384030969841711341000448241163590716572365401460910352162898661242646960024254234042573552743516050651679024715309898686737907835768567821985512372430787540526656460741254172512803420970916079294513021220005697717156128272681387993015559007408284389782822238152322843481183402157593051510361152510320139144828640765996689838535445512110184831473376448251391045521335491205772607288353711190348756491337858483289697776018512992878364428239804782755540171513314625211497365153893255851028058779742108324169237673969231619904310372720619835556297622978774683158468805276999968545492014257295255069591759714806634340673823787726657079460240383950264118340103095852158867866938232306207710525958224842075147527789657010973087759281578789089051153736443792361522526470039529111937891772422184899801709051328274253798611254575911428318905885414211805656685802386158139127241344286709954639266751346396451850933326155647411456355948220650639717926517044593758714588375772959038349436355944422127765596672530395812148954974413126331320152547576688101692543304658850001162645047088317917877424778121328126322647808446968903573632896402809292515726545665771049720682506561446387594479081714281041730069011623258189316437278741451907106922638664346959018525975112125724239182233029940533686182617801304983593460226182067319648349202571679311360011816258694759961163966299989231703765269384204657637950708731415378866041998285730397693249026818145800283255198779351442235707740195191941187676800549052471072057474160457878896005278806665525706861177288951582762384094405511538470241106285291190911876292113473776128040567858083169521575707193798517696761869359025972917574309639550606774519271000266781223496771825682236237735058506764422546405436523297081239501688957568017358698214273415674677103903013196103088411597767039696684243690290983892002450198135298285113491428638541700429150931693382359195578330859848300474141204177396417501300252947929278339693788456641524149592129307780344752129405565938017929284446907405601252846642652692813806387579844002457940561826520759786341555445999426374688836330984845476524110043425808434577505450435956181670760703767337649948947941165486377038098772572394867824277551908393696022471342225129154740052073570794579895846480124169406376802564201232223655752617260678756827290826292372035863910571475798857294333041921171200493549875391972873521707452398461948220765242362679648773651058195023605291447313729074751037921568948853686117287449863368297914858009439561401291555755074750360530243724170595219463836456170085390762339413974372778878861036682110300641822556163338540833592848096192615247150528774205611455179319718001635868722628686766906896240459506463957282453801060760975186478132893939532368017432056647456649406582024775399062353165254729263063813164130981571694515892932664333528868060406565554483528071846405477307049917801619983789520954014343989558521513644280508037865432507272119768407291889768926873752549786083363648351205909559150084442605942685423785545980921811213477443126108035150871695064345477237028118815132929181421566120225855095358863780067890349721335156736743010528265873375011345113127628526813909381944214931422326764574301600805026316787843448641620964309338788259184166650733030601717560132372563793321283986499475952054347503714401849475826812054884480694498287328797640441742513266982541054496433623346013408962366181965862734786316609359611073683183646432080532363483218989374054960184159179857252420008307039768674278851783442358470243075483322644931064481118489380370920033059881346833922920156940723985110759281516074503041485378306143661504065922383527711292829675615782308701398919549944777695600213956848663772655746398810105533269928402272569919545916850110937942201383985445063083219379416074554181501497443684244826624715475619038592650257191225328492897828766496017880369021226800891575809931331197473191378495822084029501136313987011802484475039221137077096328680015880828358209458123237977895197532331188792696654534780463546229830642934787622127185712010051232061191917503251214497463159102611055457224383010854499523860723010005677769091723638680941191018349016059740581511093789378434125718655695129702258558383488195982389464566608190122168779456066845551647007891365219293739865304243073223080137784944211121693694758596988892839575481852666764100069635846502918159044044497722990534776573885208552193757135625654567884438467337574089692135906422121486724609864528945291145061655455120137581648817634737056353217141807947605091126347031922051077982717684983963149868477106582857098834695937691256189637290669030488227075658474740265817544188444839363836764978891824796733372664832678021938308190052546843794006954287888048216068121509183519442622232798066427770543805478354515337199432146913847409919014944523588024020888223745735020215016020069000976098739257480828205806516636738311381926919559791560033380290163720614754409218556275018767506492088416269179038275709906074779963520849645415894593508361159039942797792842188214676286691423178658856189562483627481684677301210973654374290320227908249625085007013858304092401469306609912239560881609371352714999754469597292020089115509869656234814277238591342189298098862081859834889066855592856098016217601460327817995176122976550385881979944602031869456401884940514549198601986936851598654030664143416787571920845662270257658502901588421169161578304269767086029100053709368271260000909454409112932609504152194882113820710677251232808148243543808667868401165457454444228631141351808202518407184552192812230087984009199997563562614406265910113407150611823436030465273366667740461049466721471222444037774878259375187691031673505990396049329347423485769567394852841541885164024517476236491460305446274839716631945672572133456111577264074885286549185330608280457815744130330172926563093677256282975793387786291744058073293729167423678711529160323253606798350211895631862556830638304188648486124601413352043721205167450325421585034905455330772730916317891601401807194689475071144881984165797922307933661369692166816780125354750608390490441428440146809462738125499138993260384968778448104662051844442658395325993195240468523392442351200397472765911357191650195915703433417581746614359376673282133574792384376888129876997740075143221574316046062977870865496630514283878867082961497323467198391864708957860761918854290789329277873808483238890128653015058743224181420258114078445554836843427346735109704353630115240713913406212853573607226219607281923881406192403609243661777001275141457616035616293513486388104422292288989289676533117944896873452505154510743406322066081306180122777057629781539867404245211967307691948408695824016476007962660691001784996658348843738560981898115469134665031650469010829723616884564153854479020771733194828304591439800151798110212243229925868863906835027604608659948208211460490346114079853718520491553852141631717667597728799256409642722953436836010194908416267769564394818166555101671399676676213119280286513727828346615896131635705198198805145422365499882702338804965913830768894458078877719588365909520090599185238648427542611232305549714440720611691819283635234817539489184700748496120169304432340234898340001673453609591746773382371404755654349363688576731661898893758668935727465810935061555233494260433355005223572248888083028308455191110940879193971992668876447969875966805005067243095755527226549020371825807555087063839628106196915210336193924685022112887075807076457060719457801662347148914509264790601814876698674153171940969648181322950693923155864157666315318369457942664903538154519581884842987495187736563980178830645713040509875240476573845056704008821274165814217267694099627786728344638201003550887797081745451376463695285031197042283733804730741399261607245244890125504107195136744071961730998313679304955464798461108050534552010082762599238854562376532502339873385116836137138826778537980764109109629748897994470822227048946702004908164442020858740931162636435316326105564652091074515227411067254589704138956043684342980600098862833488023706232082454946888065470326106614146968526830423837270027375400991617877041487158772543790869677681548739249927758708321566272538732240406078840918991929153902573900873661420044649853179111359302421028571168998005898859636016947280832155678196365877873772941593610305661244279657436136822201933184291645225258049466550391576848600266287791369900707583399346108714553929035476211519808505825133794522890363364745197076593922161569017162487159512721586739397851451554798186798503863971784202962099296222062075506548543540014169467352222617374774463128118012162210465733823689177202371763165832151186907774858313979993000836768344043816870272215155013007410516539510590962865441533988768824070595130118757824698577041240028325467811277128821236396562890167984448010080361152761950057259429585900555250542173513831614489525507530102238326952715083084902917207394554582084888659833145762438414509302079870735069908447937580027183103843297982957369247610959317730993420392099778240676753377507420936137341136375854125543675497196457603552967228198645034450082857098634168030627097473312380420931831611648036949271493784320573908797728241359886807208693903896424499078751821110514068579547410122481031404605978846554300419965585190171143548279318381499273147477080560929130536986916650783419421329063605866811683093008610972008549922445389558341540013023764330734166537828724387237865430683888736606129306274176339034981124472183557343009328765265820462287759086806310101647534413104643213908517859971983513171514182785607441777913859508002639018513521687502983151907082173981035701499281687927406011540476441823033787467557425364088384436772995544550252951359194446476390619385463657732765405487899978863241043731089359509006433702818221832510626904058783468196202305468537065706992753576033467605311012630267688721582536282083693577193450416969492966033801332247039441130043323419885864640318108418818515687664306762301046780131598747521229252844997425891650115258964577735668824295711300546324718644778301964136172521237189807635021402823372956101902572906530430731640044429020200118459945444848856206725421702476200518682108412985074192990244816786951261171761428296674759923452358621811844126726230609499755764923959171994155999338913983208274173060006972092866531687907430887227339934029713555222091324014435745589999057652781095879004730703216619554210110398419005119553228311134595442676483572788245419003925642999606935808293676746352058512209424984338107806919510813665291185110417457855974412606806322117512771155749597501100283090727196075195967787200166685311588200394818914986460543598751189990039223526586256803404888890072447184276388152540652675963688014637099645715295249464621134761399030090008534668198354985108410822341442015351368285513868930216256440811100577346349389743518661351913353483837917708006559932098093852311887336824789690638365643670037703935089059225037788469690813537969754297407680707908650191195108962139262951359886673992878154074020773660005838875577734141513997460575702206812604755225777902812516603927162925630626363964175437034674087545577291926947660645350612033905247049082225118366391076157379806462184630633659311523368362230638837472298467029158575276892134411859673001705189834713107297217440439051326546284168207604252772652517370763154046033889022118029110906671214735911512101732114275426084894601057400504896414331490969438827482957405792662822801177240421288990924988009187708621634427245014900148839827700743193199551758059216876491727123883132619479684205485785078697856474572169853461984389255667523347573072205260640544129819099395621121701697294758823039590779726652519080275442009733569693615775254829066504335146152975927453510093249211712198071962128292851678066929531100896157810664094105430745368948055245845197617546805675700135970063757435632256486025176471462850872067376820821813061015112949301269623929263610902175929290130785983052521504654826177172373826995154380976450480986902035426717587547977088061701929471776456366902326979915309624226201807628669128021096213811409494199505024506285608686946702901138223238735798176839087031081163699993868488601938783658307224491793705121166314518039217178048966746801390929950464794304672924224018992181916834656220336676244013510944126815679027078916228182183847179028019403990577626662761971047181646379790298383640328839122533360767755951317497914087724150512863200426371817456730812569325060106613506729707682812229257728158020497016877639650553829926055351605690443198172496321996517090336293951622604139552435294457355265436987651398737179945022483944616424409328542245462901503471292244487042689998962739133230335614716270436302079144200172504052018783032912043620595116912848752904953045207715537909312712848826095236682598245992261909188880823478956196096056581170060177657579397563275316342485688714214492967942907246704514170987517706115008409932610328145497907778095585442625339103630130272067510081685357652036577356739089039599800659709553789464456502602269027093014867886369808561240502667122119451243894959511771661338208873974656431843032449718128481969772294493407677090589099031578773961371330904449629284429843767733747810012538792792777961180880715797178904982663212230715929453062843395161635924837898680278739290199059071931102610457411010112425871995648804524723217955351318076304122519680907616643283284850395145012856999010094105590059006250457272447966755428082822783832724533247898475936327894250294782526757420834933981834336443714069240974082492983922965665387393793354596825489334083213728747605042272573922749286668736134536188668315850123713700292937992415309604918450421541631357057198334178346753396848684418617878682714275994846503214286656338525663452226148646944038558099277345435154665829812756066995866075455068382719484804104278668753614709839242914346990623537425923189337871317125065269487761259731300230639360434432621356998865461453088801624830437780163264409924838570222794703135900973327681246789950483855447853144406047995687731778812331878392728703346620171321785300640465920462962450553222830063167644823734973978528802935679766159029415141966258037966649080206093595378751902072689002236972560611839633894940966640151899709563564319737376576737648729791227470298630311998230407906410800749783390799179092792164430590733209594894854137417630385097959428383376212960112869894544224083710108426705929771395897451876506595886868044983417813308371852473969792307636901270131492456436883863164265184410721040703055441204459816340785782244387039304262615446952194010548178888844286135265928318369695479789226907341524100206276082704046930477044915195475625237118884491236608571079748669261656399573399022541157436675453481572820499668349926450236544854896550781052066206888881851961826494194908515125406993996266098176662922676685536242775061956318000421152025946497829317645360905041741168100550127426514398141968498740478570556700976896046215663368447812127630368026236906594930951470494144633363963470985260913311015573587359407617219452187037448214180973971535327189798460068974632793021058344332806195462760789035668234849743283273686232994380839098749311270439462047671015679262284158389985838289137787597537912054718880416154227849809676320807530171768679737409312755739195125279701673043683603187831499062712930934501785365146932806317010769706094288670079214786951209953760881346000539243593882748462617986157933828380072637922303232461589961404159377225566095049947354184238479939750119633467755671779944517578649266919337987749669348566425912460245389360812242145790016680914604106654861104339986766200593053168925095541570770920975496726483884897963031727659555769154905682388646729773426686360917574595959814829428342856772856886914963129020135835467353740037552276628220511423908467242598916772299747955807638918443344453728769026995497827042018262880304282364933549130735243977651196471453180932982256758792972085699415374341599641658554504743316929367486587899826767305339970310329991714324763647164603379928141765544229378465671555047146240158499923924182208971490813971581701527749985905687523201888768644379225329498832172296358101821025758108313458293428556211748561562091040652903648488800405904653445116691408282113257462915739035419324546686475812482842886751926290408887457046797388660968488812923027868610311787377577434410557151482156656489465476005322617369644846736073289814843318790972598467713297027312951792158170489384492764025661003294568561115415193386442952547678299249528478373664479164158325283343659742912765731494450530340927884237017541204937057169474265319793482412204265352988259639042211344985607891835892846864954779500223966022380239247432310265517554474488573587480585145331839268625839352971575195042318463080784191837408025734402606060107694778622837382077663014905470202311644482714988944557088270435964089049071544563902950127835012563374863312634500971079382932159679520416236479505638360386211656622702944437295439968569498127441147312135326940569237804829382117033814818727667107760762772933319730820110156373063796991267130291754888722448546695010878129240810234712821351239550302003148101887693573399527428303839338469650632099655722526643487577037488891766866789144925541018143389363380989651966485161944064078268233251654592692655650415754628356166063429850791304099871292137436665026136621521405180494750489617505580843348484403095219472444938709841758567413375761568329510516540312218492900433592122253883058991480928894816141357454422884254663064908112563972986185700106675718654326819367307148926199775567413749076007946163474617366359324626039389005546373478582555723694704991631878277457409385253657961370127814851430467293895113275797457124376847029171949680438042774905320470888211044083882223292182910950546738703561019339810016590149484181423339549490016551254851271131891637472385218478495319896076120480846896991157240536360162099501246734134022434405979907557936944708380787099829192159560663478314074878643022181596167138423770116269643229098951892750287529610662502320497028116392114169878758265845454727000019593974460467788076314444316937158957045807672647223364458448080026286321962853476379008978399461108419831334154750823658175022019833747605323104115185259173242226091025045466369298235625546272773889431915417107498171244486112110533989893782906108081292821673249502329833514416686164734836264618772838367129122785485908683241232219104699029271972710645555098838231966015778812930383268936177447327169258041406316277943112445557933448076524936047780111375742065615273177077985188943451054220611326798023176356814683157584081802591913055250754493089706971727582625017297576848616381975198915964831766954442393652640088495699130498309662524026076049657903676787419130783204598925631183603496626364319850781752228898221313001806231864193313733145648219882049710748466782537491517772216917756920030907521286486556991747557940432953907520975068152482800153714165398156849326127444893938408513693756372947556328519322071518974320032572476432450188461543897075504385358588040437654510155173878265851442834214341350577673956911719782379169547551543580481450964073438843779765046070197231326061981095335154806465141816073944670240734820105972959841644552571479917621561541400313731144920019088860570319401623964478987083559948525604616536681140791194891629339976321519171829259249101602960402402292188038083873979065164363232648680857712421225171577351391552649353510379682067856707381522060093498792026475996774656729443475554177086494213122731057215038295200724312652062462430818514276481411878134551477487065289560169428028472410288660404990682116576008315622490786069892813246912763708017336643333059202435294105282126994043392658143267386665433948193774814785413166133695143923655312793574084147208166712305240510059064618384231826694690974356384743979709489614311894321070816506928374469531435534745047773087632683659180764694226929110895790174116910292637948484061176109381386974272807784674291640235169135917418731119349670342331946292729674665735459367761752956285100866670987400926026868353658292597535209836510629150450792930762786103947406857357618775541607932807062152646283220914166489822235220922143481291956297475521337328224796925710221110221025668570324068231471929672639474415868427962115412413852387115990690915867808331607847331306122977290556978504492286920868174389239927128110608003832764311422088036980451737122816102204820647461788353991776524035871101662092412709802285664351153629905329612152037799776759590286377837170002805642174147962464516883784193630740120146845452863260577680672317386251843571205394084837056854880838335992793337828878607097738501920622771948075655344991998156296675451020527804395524523682202236367933936410461110770117963010646975202770789869942779416422076214695908949017631218745692845584115451242791623975133599216229461439941392807314276427433939923315339899449412519647677447447023892494089193227299445955416433930651832573458689310389109751603417846701213305718525167808986671680855516430351416814948930067258161431128023388785132099576759977898076256406394616770364328337032343344538761888889010829904435602887438227782376363574417934970386133015756418266726096787651217269795918572509443244228826551897227810839624271420329890481272077346603237212713847334814396623051080086634420969080310417356313894909904869989209269060627442743411413709146951492536911197276074387473814865751389016522978883939568378240671173662868499876286490605067674340728322493119483514681064994796391913207970619176317859933903068038153823932437292501139649319263820403495311429161303293692603667385888737452956888248200751166705852298308088472326228704215745223252018552768802375094809760646161871245547815483524943348077803610589946178114818465837025568654033527556315734359802038677783515356861374865187504808134038885616281573278821024074672743198986866157759955933465617105381739106772384709651981008445399429356608599948677637816172542453007638680494680392892434921563519308016751210224170390458532933665649227747625237782975923164800030803110085114998134913289991549962871911707385595327149489946684715734434715130831199315401853659733583439866500361309945620678201915761354792914689639667730640652185780066411397987818408566072817508033423188262224887575148529787936857292397156140340648958052511825943437795735782998104978578738549906117031702772842934522241390592979694116974944148113313415575892850488884504446665027358607548131002336726851801669246102155772649991908495028751254077840916509931453422439899251591426681023904755129285075429111951754501688819360276438872704789373831235300052561607521548018963739692417312226942210399423157657934398167133352439269560905089217035737460184458148348996555136484895322126587444671907941135719038063663996719187600295405472598858452327342898461135201181277188509601025217454834595908153339711906666732894950616719185578783569269124000074950083461600240013951680860825262496327121830528507244964700637848592526622174379183354813560701309887340187299607413768953368140947310383274598010772114273832303159061142305420656271112315984500487660653796636403732432360791710341006705634104011938167618099586800145454982116896362409123584040146165490209803762129498734781139533819456007058877820094382277360330168256904254702402977191142962383335596207659763130993648358628479257425053758855836114231956525005110581267450694841523775299638624154541935123660977375034825975542740491791881242677850791485772586226827102334792609859334015646148545091022245704195897460793795314384157876306522535709865130349198289746813905724440708401288014223744041035959605566330343446638818689755628250467235823964893468624907440969742931066335362018067326796342494637396157199206316963301042329976396261802014925923943093913637738321572179769647656996282008603990778700913983739750949672677977586164637596847292537142694589817181864637253614197408045547776218867946058845255660630430403820866429558944711875022427655705150060390964745172852409152900008365133303752029400154807679237118126188980930780263327589593804137995476881183467880994927570808959377449144684231575081279675293488674086666000721619692321246564737026319351117689405387685253889636897420992312122702140247871083873098419481052287364654850912092314148070883223151987955626668316651580229326735490457796573097750931307043174225064074086538449653997508183482985405071013422474495990157634514493953482878249952879836366244320180824191941212136378022834005037652364973811621893025226017991150301772122031471476119935251232617786485737955038183826295823239211309880271263232938442789955171911711621970074344047598519823350350305651977245303478861334796491656537497873415511090162066198340886437319324636772206311552429567707042221647951671577835735414604017280659031984295018984103506975049576421107031379983648717613438793614565191682495581268515264559328362291702920232837521379826516061655180951357327711850234852307746390600153260921943092979472567107268125348940660699296817837736657158908077465139942152891898729296266799134746411897696890514030977265385352456330345391703151257184352921628256965529207173420548622236812586320422053585810951092174171878909390246995712136767884021063708593085245411937570815395148051058616284193685537637314663243441061686516703602825260471417433612232376206555549682950730491474576144835780083052232252842456700109105688987948976013430641902676624531144058685983418392675708855439067888980785796994457051195682067322628573663022697431603490854573253233176815888717352924166370091313217816498306051439748697063852614614744080961613239699178379069726240694200842022908231017754035452912193787677634665030682817564096575680085009167915935487991105517874808839532296020697720171955357203624028304421486900254367818083575410905532533617369306344261816063951856174730422608013533839433900391349360148748243438587576024853546224012818377662349753284048206361601407749687438752365024643574051099672125441951660993939531755465088404498832445297965784399907385028435144816937829134754050515977773464642299101459883102666730675156668077302241353942580152161568478018808628397616914022218507510592238713896307449263720783990575195985004757889266283841963116451889825748852654477075504378195236009234024092583702979612771900960322994062468440208932293223840800092186333029366890990842509406613020282139416347571895028952120212915074336680242707898625677983164490829235257545264489003541612389740306565412652652664796137242161561396255840621089638117766393436509646794193708531484572971164300012182044448494739811869657905843892452524288377583266940590654267951350417975064306403724679313651335417200204165214946819335590300775785553311202837042014083705071212908131335674337624821694859664321717772768814791088586849863121873936170339250884713083351571450512816658615772686015301222355032024944469050163074605338729121880730318764081814198222459541542060595937676323694707605329019261908765110647845162360276994313416729034661489940484851800508358993675574984902173530338282899270067157802664632492342624740754060480386038990500659140679668131090514353918958506947977299053772625821554821140965542463771198898220995074243670735196842368116795699492034899585656066540967587476508729067845127267990920097271070508732859956341114288000242217596132416604752049680812554290048467782777447499693923391335514936067907566093443659951276719969194945277267157232577660690422173177204291806941574190226943423810962978042132619251428862482446690902104568490213636490690776448878912368444795433048656984548582540780019595288549269531344554033523214991164054772304952042215607033393993475278282874925558626791843508384351848848102277783578817112296418127087285879666683150541429017591694904818875279998118210578440891323463444359211359623497499370468924053339582558732582131247041402331897603906374703039678016695119394323227031147637207155819473480659448127890871536059581925512684473585293224722750187944213929785685301653596870891837133834063285272201869307487659408401765963430228611529231192640793671504852283151438336843226612587235797354740283366634818804294751547002965478475432670117817418145842165660092372797856248916049174007747645729793850079824766503867948333146910811999002616949563461627525070349213954887628307720224798566367129718417265756882737398851223225466990783251985622287140192622233131522558021595108721818656687877804501602394724332264436420613504452240401330874976268988210581196381596503140409722880194537262655959451287123944483424695229219393659172342168492584531551767077112237946934831774683035732836692903441279029019769133204572680688302799494258870320076943714569948267820232193352202688162186264744244455970184919986643518848053086478164460321362640905757850796415659188818376612900198268247518241658134230325305449505487956364259484328833716970674830601189227990335452461513523396526024173951029224536103733709518839745296085770852915232514138501723035875594647112070005910606958994645832940982878462355306364023857197697602209742727667717631642244919721680900843598966156210268798881045967833498063116704737246995470895715202483103074069357334438210536226146006831695371935828062977976584079231978208331626167205354740594927479488071139611053289663568950004661806473552408630104893086433066314528722078197791108124169227468838983209579663008923609786991471462738889757973756596665169234585840805965144905859503917734158438468680202079950050033389318888631011344599927444515098170928028840117724109158148836545003029156388479727146326573300064869457255829519723105342665007270947298321969545260011677915590200537798177401001837497295560572733320761123927605931777486368436197231767066081545395599205840135338792255960690396953353534588357589069384196860404637003837317432488482793281427056890703091225246611867790909743859823335422257905021059749994455225055714028540160115234996311421675651882174973517619156741510948021077023369124266079092802916407325391937208564260364763377583608671255741332216049784497510011208980766838872370178946191526185180466456062743852563944829482939566079717938252466492283276878927401419702639607105946921343383498061614202921791481112997490426462123195548908423932460841448342292289582472673592515625871394364456475227062183830146713783388253401252520890459177701000237621757869875236271694687106938228295732728988222294385824446181740870659049147196032065066882184921933160501385421015974045649952887811242360743713425148185393869136610137486882575443519687798043265156804885850615184881543290768858287539353551451492579504922049159945403921305113850715012404919596449363654289928951023456376370429724500504487301728397288320314350823281022598535426605870876611792649479236036350348872864000667417295726932271499973128227564921170606418328716208412941496192417682346768823631548314824714417409174620044273749746540134383578771457931190958777990068613511013538722989190928338532467881629185470547442205010900080335372120475331633076578368632168130231648485355382675599602461316124089144525788196394226044025254168953555256442619875786379702757762449499112193203869863824930550320445372463430018172137137345628286799289149213189828407789391772377106081969301136318199618630356942374065261426262110246169072720776891337871690599866751514988402913105118608081450664654842418008184145547302301393448380566433981834406404887063240666705514665931100595938283026496304832259710667300083837036325563371553373707521935218271060607081262001762718482641760034025637126853612307967353453126721519731242902917780913386221547817106891388711924722116298835447388444841141179411713234944109273418740541974755349242066192421195333877250496726855614112842147266607375146452108855633750062851456014313590323653219428504229117019405037357427909513477881748427750266340954780416855032530108063187422056460581433085398447084900485519516743073392930140322833387582063800530047283512846062751451348368602216338060297766781499339904319851366659999973938835168880915917443936812510200028917438626188470600536740613522024492414461851378091290295314270916389376107471431547538352110034367053146175593444322753263750993708914944939670163822197518880109799193480434957028107912233109741843683731534969890223679728778845455792486862567110224545585293057022714187324923491387612508588827562020133272122742435251761080331499414822846166816583897555192729761707614336434917350865138399081845130782586957157874746279573553727824259627298407616155360922275592398195647298819972510543535854288311061445381296255939968773794003028993341305000239701584866299894253562516459090458180039558125826878034535412090178986199253361218139298136316681098320805707326721521283063436571627109570767995438230130367419905075407977282212525285406025473255457774918467607020185991560365702896242235834593284459413541618700874940155528024585665156372520450880858471903013156294321237544087910059619858067869860884238776054031050837687376526013528587482301920051049351006543060938738194637819744353815351279108444970975502490699585574351934127196613457453875905886623821073638753868671698756865238311371460115656810456861771919326951510050940238371889939175969945552492714185260071491815154799978016924047296414403014515919305598519475340244325553676238236258237555082455638712562274057073467692628706682738451292072680677377622829489538946404771340451332715310313628124446851628994495604725739675385663709243693380591688348485685497347445546434882850691370144274554030414323239640575381447301045583190849356587754940512508546254846290337398964214723912964001203975029304507371825615965333779668473636513614632712821477418022093382046635275407581199442186233373832681120866034812776977521961518951193196804338265884070177892227443018404169615761470608944842381515009257123298273184917366954276999698506912778846018828645484234842402247802636137625320630353756794069711560200752843568502811970164601366617044224209658307367557979585608821153369970050858939948160230948983337051103697884990758765251912965463918744251785524726783368373826413337444214001941096494533989345183166830434423399950329399929855326223196532845339489596335118474122743305639236001199142918904954305101182787893651082750832484717544819392274302454586689687301019705970150576844892738597527469487934514618117880539109575089453118525799576809049795745440981374666100263582668662129583734537619473330078467933875187835880726092781652547586968576682428872078463890335729978862249374555653190672391661060988041759403368716853711302529020284961811886229547447925783932340878805341531248376144683785171386352977191330620185060820594054806985971572743304618179010848911404116678833075638335987776888383513537896624026598814891170866049267258316321192471046873534128897790181079698431229775060069328300589450518298275862143226098968741563025677768783373126066245656966752557481997957982191926556835255945890497771614697159866912919928340692220150980309970536350870320293117453102174900084508714642663558997517605478486938360291869963784096853834522570811919313788163382090795931206199890830453838150524917372558315618850360926563719062840243687503736242526916512699154073462177274194957716446991236235871958608776303410923308565574127212823062209978594573835348248469936861752000130671251595185316434549561484183713378911640085504040284570747212884850341449159654392750383093794741240403969798243617643257572221851458633155772182371014522012793941492446558970392730333168141259554651732684529725890521804764488399509771042956382637376939275644431594065113464926304744540344074255655880551431764285956107869916100522876846004959873237193107145632434697923818459488402502848937303186360690784021051190933265911135499759193129759473592015249820895405861688552065563173351822997953772910359446467779509487561816759580681958462337152245582197433194463868116369083111551457187275084472213951335918805508727297836958143321885740238155237478672879570165621809739904609568905433007283552141004647504960650865234554541279213727736671427162614202415144321272693032252281429886068651344995745561356119528243870288279258633575827069005904141360642601127777433955485099479722128683642731446234549366314494770274975987162235869417669409148891568940379929117524890844011616563113652824511365192991111813295430729622257555861153935090827468312572848664199898395071778924035773170696164066519510139365059990346819961240407114512109391680668474753532637106797966888985990601978226075906310201019719275043186610323373918363981095381912322124982558893090106778423311193975447141477785869121800989417549101841364031779867714289984964203615858963769823438167571083235397961164148149575276926234573042787935486075570925012366511724379930008505427618198695060403882692206782475097055967320514660335269257447217367999395846746530934658393775862360487579214731572844735879622766158777002423710328098062487346994086089805745860316221981272999338965051801842714050101229747456881776477506268724562481244263991470823363907372991436471037820788884598432429805235019464230219875765434025992991952294158805928354706665781401137064078219944352992932558063424173664872327364807088277082823603888288830524960541738014289485088253019124405231956411294716067229820088486458951088100998355693532833973187087403035517886842894693354151197582124202578716921587334654927543523711491212744142821611826296177847577764697824009444000223567131762765086428763520496522092843570820406912905530507394049920293773332017270354540236042500397453671353249620163757003934232195750258276476364242740096728955370908283434918439316075966484603481969319970737109347608197801412673982982684446658663582954808030783843524478689999320950497417773202082288305849676046784939192093289757109888649241016538759149606622305833198570426425715370221769088071303622722388059702482600073454141627092295837909891599284993911071364393323833906206964929419231552615348169212348240673780003387570900202605527794472211550910802652668583486145103280055647431298653971584479906895737210647364838536962242070902092888664520318546919649204467485500939055676896929476516858295596427137835490390216107309810904149543840948432842184347357592406571292616289051533161827192634355624889984494646075669786648304771996791082216572068329057508908342469013940070620595779183948880307013687685562658915488456298450047801666254148391859210666983999753309286054084860219780014603970877519440446363250754576981513315120306501551769687522177943077286358422133234319811400839071506071403027537705869376761072012628049471431191364284485753261614260387717228103723193159865032470031148699039711186149231742843308616614639963172268276228744078445509985973019191586142687607003363630913795671426985204364586516709608617040280630867033863190151762895146905575949019405022037523267607965512278557690922050457000722805005377616002525047962801101596004343843571357411585107053646671574423326189325944171096781502370703801820365045561774735585523090551901711161014802613952750888779065054478496891641988868557791977904852712323535363678350628587171864601421216843469461608343456525623421051225033712015483379335424648074478341252770651660390742833978943813024976646433581777392693969489042357350716102843028083161362888412497375641837686637725740945674412843395605183706136305783217973256964198390228231779959127421176105375877118830071203231201052955468494597521934551411133617220063094945681392230151283825466667294758745126632310887218334611782030941958384565535086821532986278259784259613848739949618968732627636340044420242213405167836953306339154435869653309863822118413969455278135138070651449296842089997222831025002246857842635060528894438572297907449430697924645906790831863304255219268795621440781825102389182966098149558941245516802551949915905152942530487202949809993872823735966909615916043117771019997963359873801568622220729392496486516867566546958159670214964707261548485392809930500361783086498202565737792608398334143650731763028034237790031077868018374434145852931373938380050896741231503253802553568860698429818237212166119435318291564143449216882940196715231816590598096471631472817645981072829533478174612963884133302709287757478900643558166239750486537230987034202609354834776516394914211659464706823012593463895057009761259942585806637624176390712049973836814692298352215477729210120292536112723930038786626741755933653468834247022932682477531018138600470724154722872086777940915803739994226490332942538869470456540374231596100104354812284910365102191491421932639731177172406705222409748073253070282758175325207884778274050078081711761095160905983261010088646920430500743392995092235091787676002178119918099175506412748089006384938945557106885835198220919327467756693653323610189722296646009107594262838683302135460469126770155137103258608740446530442378032099166561176626873721432890196329162812780253551040829368897363236424758839561560176895093774713627673992023687571846873984602693564801610008359718495611522451074281492155900083724202162038113255349794273329300885018491926850662156703936948492495091427906908546698747828826585962161169709278338641235541280062611868503822426194524647693104403621181448866880665247163034866503682221836127617899400131242361720717521739025056233715477008628204289149608762455611502181211594762263128427577454585549810428089964483763747326879430564815362647133221981644890659726893898702495000515617433818601011477777847485021910094169551995025607281367816991937617625197823477642317923410986765225596622652045408341999284810948458255146216181750989782374111139921907365530277574751871107010365831253982646010400500462326426202490974848194033809402583351697341436762868418424716505892737057291721780158864330684053933993576664392943481557753651192156807860463562542296449073729275759878454494820560968769220804982839095973333037763924908658817991188042287077303442981898293615368898628610293719725323000722394421699732520634342473473712583930909564205540924632980664898802298439889854279638040008979375716804552870343414718991691255515481690542573794969436042348261321944458929218154143355483232782300359023242838204139337493047535591730755345911375222537386475092081639040563622036333750078770742904097515451809219314555418052406259006453702954845039037123493105639198911953070074399553561629535735288866304184940305174712411106180818174309297069656333136598726453714656767805404951328261516597000635153522592733388827810495196119366465760278402750591592860699202515758168684533996891769094619346673484311771431368811770073583953656847592735135516560828221428503976191358188987077293983973482616271186311802214746179982411150818799813032657668540036607618598377061939611402551502692797669315250717764954958895402271874965586572523814428577508202959882075087662875168289684918108607177191676689099884955542661762649244818408664000187418550102006284285072325674799425115815021354748276782951944753292390160664487045074011354093716929130907591758681396030889625076149611839564915003015961027914689155117524922132951174603085298773905298796662037580973269578182629665240099286178198049227572995940128318555218993330700505813659305708190672722242188679210800210759543967748106388606690096062108529841754596066196948201913215123685106120305937466948506605495896635342504560222899224281540311800288854339613605721150035429974214564338817551066085855096550306353845556144479678654389921782100378874750740967226642289639285196229200703121908308505348653518553724886068321981788252918098267044118547716637019654021316801883857129985490588007600832152590943433256019696743621174688906023494209131333507534642386858731909369984308773783528791847828340534446950218338568488281432962281652162106589374916171711111769172031797260497766956588411651473846980991627481333768554473866916995352047888035517869913132194822136555823783333210771400402141496388249342850469816780224825103401600422376826497045515903877146634995794375347344950457480052631850277643368028089949554704818552098919635566679424570470207884928455039012071463071972815977446788053150413731339051134816692004860140480252247722988481919285953969543926081834612994008650968838572730082828353603107036043021840130862274869445894032378376554267924503440731073471544150972421624512499031226815241453957305230130213179441121938409601281286926530924127845780049532562290814302797137897070572904273802229278539425324350264851262603015541917988817965172657882176080151244774050902180955237026797930010605653815420646217810398740990728338181399070869575468269852622717706704954235272366101469899430777687848823691800392173157466528892993699312662228949525578418796838628311690435055969753836868243894222872092628710905617235071200688437938647560823091424460836846429624096829529211930344725827756614205011600756131002052020439776198037678246969964459652779758109219850751512290819025017518396656561272818484206604521581447629119552053760723685386905702957516579618694179576513420188764120260196396141592807561316587968562590964517831682383850472209625591285528184253099494422110739493815072310564797261104340804397922406805169324023495584176518614732263125838229910671871698530805645691732369416132994670668279988130462034842155180431399492478107759631941761522443892750713402551364279375973874942399641563538388482343324642178853329573149170740546660899955232745001720422085578947233059986668396544511207623606779454364172558430268761419995641524225781544430206087330472615552067399328215066331110510216968691117323371503539778437177380511439566176151129815752777132188468261468610686249714914166879526432194773026847387938334788650508652325924398148481616181602417983815134128145351443284100665647384238471193612312792485240218507897213865204855076465640607269610299199621528857929686141681858718444408196203087010714537650765447678887356672906106650152131422667960829818625275032655944305368510420242006378414316321203084359106660331611266950042683448919451766750515659405720579564243788267250518595530450737856811420312676933887089219454444984294272524460072155557165299084596219548199010636962126169577485590763245033537261397892012252699302608016999677124530258237653370858552084587500786123013212793340489719750331359791581571425358109060197012535617198168770679771096046859121026583674393672163593619099808244745841929131494873649558347240201327958016071099334058715526512792267621889476803778397928893184398491140079868073278333262957733660264073606619414128186029252723221238035191827075874278082134704340890215970034826935221141063358567933482780464256115304421722215995129791183135927465713392983399771144262793750411185505845011229257777573001897582016033865122831145556103190255212776104868820626782807585198230760285408813879488252275735711220004929149635180577942083966979110888401737703885075933018572685022194142023810722207554433895685725150522233384163202945560064456689894871549369663485151170218708433389942306898495889640302041770289158431461757266667496314408772559996725875915621380189419967729207744205574037683457332456033476875961917707655200505566728951744203881742227670344952306158591627475765806499213991467468059113214997324449277402350422115728787796754582839747256334573715229747941223388499164913537426208215872853406875220952514755895652391583042301094702885135050381144429523082022359881290936976857188362132709367701844269161801544123824307826235851653853888506931027576487105948943463214188423199686004280093449611548886239941597239473636046862360167812520138040389177425437053491725617914697153618990401990174835170952191168513989037709986942493194211227174903955275394905240329525593074430122844654699810374658709634432880992261177262110798781782360147203482236510636109329139341310405298568817421967337911407524887608582497736605870438405278689916343667846475517177508734883467912133013608027813908435626686554887655528882004377779967494193275641665301600822931601332198935031728906762095989243259518416360375337900600034763710962554667417130610732349484753375759478889601464019416543978792779483797892021263558616367593012749060624663350356218804371323082001814574307681015149239401586724894778360260534864428890778004463270723598944723647173634954971483915329975620199371724281856243176317675771402511682495082860463093197376222151596089819166786964974108608362157482387412235019993695711153415952193794561258251789925320313682767210038986203497177646342786877429162295632178638304327475432636107675705703194711004323972146262571142451100486561292069203965933406339662646609135238992347327065730950416025793846489326821129938163318037733481616369647848626523976893718681520763088932415739950538581922366823458015124165475189297819051539911780907079249083431885382689345680805996584785068941924554613307020729526257102736985867079617292109689444786395337450784538508845979893370406988380629505149646654347757890426908381555563309438780036125351494289895978768166986155444757631094791233211244910069283917199173787609523207028564943738997089190370840777752772879282349392701283725657123437022298513937933909387054442457182037144900480461303789933105686629897693255314361816189708186975685048601663056853980988522730654768273380631737756646501645880411930827344785914978331883347410800219043297498489988874770522754511346617715289518938287715475961565228740660774343519291422057062188821030702561423661554908363981255790869988020742142297207746393386940361736012967205843009245876118480637956959623747502205350416153888702928816336500339992575864409794072580905455710695741125723832987006563735949469118716407694999647294412518161013712285967863305965319892723191526757393903677932125929822303700827351276070708527006016124436461932023460815491463680720606532507978161477537458949276013051997122707459481549767320113059274874057044560368046793260707979295540581494614708058211281201653698241560596613568175550235180189933084135017320309663316377140024301777552306653002451487849211029495103051905651509647079558881213692856699584015575698817670246202900506474211177088793793389189816802428573321299636153104438629174442569740472218038498782652923200118415779916263253618834063572977535338752781798888163063685208782011731328575618652779918689881235786417920275029250706478355227920716593974453477022432424962404523588719574485584719297547181562072666162028964166122201352943360530275761345154391909688036461025574992045560351152059687948972041946843161113174262740796908407636796080763713999395534420155294793623763320186788385476109071853341727196102185416898020790414034997424150101194437018972190506042458172044266673179672307342755464659229907823357226122097704958067100603750868050508335617816515732175217573899644440098450390888017717389045916009018042978421844180584996442160161227969637764411651094219803479665629989009768602751664743798649236111876472149437289032499306233701610430957600799623345656244969019965586321364178693955183702959738038688973449615644168195083545615521089741086498320427948348796195290434096669268495878227628546142613483723516699283618150912486173224487164328806993942647431953482672834004437506095850431812395059594991687686716258686984196870690277831993177474977377653917384462908035049577147341506293890019081291878998556190652306685538201881779495139562051629273676499288907806213166705006716699105121655126413493224789606104944750466632307210648191755702020237069018184899711416533227969283679659372643833812477478696355454906479614831802666969514820537881173793607787389358921880934378263324929791429894540580772188801713085034954596835130208778005642941026321165295236260637637099089354980961835193602813543439575160891833295124303937832954273686335012416417856828644649538262928681113947948294008872237942372831160998009081661354677630775947332567663496826892862389589727676165721155091139504270813177821972468676269180249939232348659361398567027721720740946574960432910370339520350399702076391797979903689936315438641889846990121563153354698149563969830116111251372770004964012887272055375590168502786743445458658799612462262502722997198937306211077308519460502157718526530156863172771641644666137723648560085801069713424248806117890033467245941776788240421691197787118055757324686433762273524983211296777215108287984219502786373312487875105552458434665432445403085567804718413430852893640344585421614622961995951836243644232055605593253386826248961931642937021361348355386699909932323762683835529357135311178016186071642756916841887605015360862745072868106183432946120593182208536504316517036115378446614489489138679218180786438003656924616223287498366171735590642128594546422930339842766955588269662017921764561187171044609193258395947688949066807299919858470967906332696864970623724167742551663847878082740747153066996445302671399831701030961900380266638456415117213645966785632229732934056655177562755465332044232736455798622958505513775626576762059325555080820127251284876036519655290071845082760037557660729742549370971135074938048757269841206763217244292684770968787272636786460091392833672983967584904768539143858394664723236420138422313422373633042346870448206368411793986122869336998478171107975494582532198558792010232911666337952141233474750973661773573900811460702219898758243462471376683722028370871494750945580537155186571790282888865780807191992566948887627804479720461272366619667812634716312682657456443041897020593271363841555292179991734014500975944690154916688449228549542899644098667033696265323103855756035247318554222988132492562626113772969487856934623721405773125467716667062126627759672595572869174612891153456533650875777378640538842751472559245755876933991544146468239961414565838976127742949137053587088353821612912069415837888216369408836591041688437583909024991110897533917313738552397345057779303165798085952461335484680765097911257174708103839105433616917735388694928589855118366245728341212342157736996923072924470647628933042591078786292837407150141703820226313961854281201592454544893840631895491403687115951980840667641699030852030830170005551176678263240234945462525513172950064069717588906403573823785736150612978042036827193779484917319695036718401648300198785867627171699942820551343974195422121688118784732005374041372493090426089816545558208154681027273669441416933846823737065704202054239546767004682543022097112820862680323882758641328599647885147121726266499169769180778523242640623166842772143616266407276311877613698470530833288099117713180463041895322045741438928592009349108796166232169672467407249698337897251605895746164905414028414972011676837364833972213481295497923428562788546594652978799765000280098980649802693983957480530114415909702133852504495663646478000413298019206985746364743099052895630821195974941098798557897760068270923872023995763168684191267065152683101759271860791064316579371000552526001091056483757757711596292045358158791340499864751662373641153088653785851218731711002863056217991267631711966841538688734714896698803726667822534056819753949077604298429166436397952945590594883854674445921826990823152523990330965582028325031638861931234579629253730701302939597490568766230283781757649450676308451278235749550020731269369151849333180004057898096792054531778099755322535354675418929832893860570711232053730543047794122575619898855317298921405283286051811301148163240959325826631135155795345968809070610209408880822210534390025337438729153601758313837975389969806138300956120329775360203140295128103576244577451636944703847347204197882118142694372603324844082284430856095104356759274855486743369286521054272120911875945095928047144097499609379802006731886737011537772960478079078350837978738878756651684806520433014115558358122401136797890003588102185183125523399510532049379302860144557078167562684830505150471345569669440770538875625336064229499169397761150449577795765933062977625682236846476714001471981511158966465467216761846031134423880847188682671390184554713297746483468251104968888468406783071617746459764323784242748431874464661780008664791145703510392951810503511872329855313264064624094461048035503809671562110686390977784205198345222892868792622392418091946294397360895717283677266219166700546491460664903839536011634274479150704829290857955111311462617464440494950886381951180722694722090207659450805216176992688309059289523824546938992324990668410655364647217080126773759463346779590657531214672587345479071546373515240629931397533110804425222985321885830114887078648034553578908547265845623393107505526374397588154129585421315889182946996248588035580648041942396329363696295973328141839419317533608332944024100499095959399172069569526914401417816483265582694584543251950867213078412510645482291053097463517191860040922457182959191940490089561671989638179224321894237342688751634496861214595537041250383527043305054925923156042181266946311448481883938009327470516246367517471871855252137594169327188311366607293930521584727779362590910608790236495602856237137698597288151040958723187649156850490708863456373513513648478582794836718888160104031608876276775394261409968687995933051972828625116802042459109952069403727545580486359421301403753030316337026461162850849994309674209110460996852874127393770757658819594672925927664439964307064595156191510562667226830229217973903115623521051386992417057805791644812110827866029152602112158814978936869962885205668870490361851185074060412268656498527354010730701201720720645488826560892296617637396066291524162366024685009800471595329816188375792523926406163394931447422685223281592806886892261574825144739270448979499911620857410980110281129828680370653564903862428630918666805645750739271282261898991164240238718989109248105836707146931134694239421947146142740582616746768397503076845476440016221379995252998214417481864063943475138199157879471892710868275853956296544658901510165085600075174778965352120051454247681660807040173535203256154702372420227170937347867667858587831746098222630847226789602062538737119740466210633431296800270092705280966503015392200409363211907518643307183832274328845445489843158853896743721012112379566428924343715561074444645500442225842054664340149407415972183993826901334440145356206511959789785886218721678532087970418537205596978951503298511127864645760236529088512986385944122279333321619680872939432223174435717834940491247099004111899630466657256823499047568139603297506417903233994299385901487477032792362840159889088334382886746794914860109888257955395943812556517039217406999140916170918173773769201841761903341642357250340260529987153735565053349903418187886653435287087639735433134329781837420521858356950240951444066465905755312040592108344168402198850374545280472593367417671487134640486422309759358649639618989096350353803626170726461620700963265350368731796120855314450015066628771820129471979123501065340959877059926835746949149068899310525260859766093406798339477785645780314614497711755971693156264864615664372271737694109724816925512121457974850434744544673221564178821375151166713735194825771436503673011930456194861616618347670160798691912267866311996117974758431691735652191916130456158459891117899720020483093326043858131405610649943269119917260618740869952134823045549578838153365136039869724093619645248688099517280888123764574497265021305170241658588696388867269878243118557002858363446335520158502194714505799556994938324442150683871421806763202923349868835107509726463129992842575848352831698375715880932026302720268707196992250891054604571486188200845462229924358965976466524905267573151013224942892724226078476580813361537159514673896576227809802432540412802800139560436842767302172743540718716501588752003855643998096118035874077666551132304104083175390352108486676580168973616263661631159331637456055283051323002961294618974519467689528177382904735692990570057366871982691028924831114300942935964745631629747332609437255358839827383132795439369924761771532969931056022814300181103213750540705420156587709168499164635567963890376655842068043018681504417894186693938540341531388933701357869565088620032001511945406984565327404498913957696249511820572663301152229190150286838387674220654701889997955518067008876404408465561109597404355860422172108795953793844515050003095491825688521790584944975625850561778963284117339533660711959115849862647428260866256029787045596831044166856522334547093224218074790586766221346355962543770539878132849559033375293869977817791501210538593880866169711187458942990477897544236194077845532589452689286809855602347421942747534690202805584896943864115273985151383640991703888592525007620307686292839247532889032307912104682571193518924111862614052737079142537942900842821161111542079532522042497449807766229650911423911472200990460801560005293131799983003596208953024726070096942950054089156385300442566587346095213834296081258115183796066359597964705641980024788429639063452160227582215373800259868699307076012220814455631611654953236542561271177061802238006937530954538488404838909464749439598091564494242302281969790375669545509853694113687963027178321445284535265932863526506542124605285762401297851628553032573979247319069663332932906437967782978021943998663979229775256683562906193759504091952282333734077138423294883239677970350759462598518021495237454748608331655753164032318801139433093833786132819179935459002022271791029720853569055969934736400326376354680588827189269491069457243753131212135924964354101056746447995401421993413290502840138082679167497637625367020975007480800416723082544880620264327343265850836988480169828647229711894676898667404736765263988536792115879239596154434120147660460977470903225969066341985637551143768398502546302458170738956325956257574397983170536620701109761814389233795611486706191855870810811887458875234887448017838650777068680697458045697756057841626310837816014833526604287412277170742445735742574631793702284199589607750559985858237946592453138676143661521856648150458672845302561500642414895228922393326383612124344477394544950562523108714828457930966267772833630775787595688886148826121890279017348578032823510390572918246686916320660874121364883594577704573733693551456232756981485448113615400567059076838537124327523751277682596055061772836337907430366084836527374313136003347989664530977899149011116629766520879800325283969911898522316090330786798257891698991966472077442944767097473120713496894310672409063060177771290336998729491807731850145469816122771566935636895275471276605291733665218659972704199474150044556166431471480648596854830662092636868643370795936019094135443882250707889996215255550935954787336032733182162824019022766282691362066416601169789130925962275781406758861401496619195583578240669494680900884169386313935949580794414330144879739822375008819595459842199152803428776490321399273517961005974129494222957968105726267649165378984580560105670219477767093590262601205064735930798452512840109285833916338702880381007211611729288188867376169476438004400657078822173826230215255008239220063795587924533878869084381053119948886766524984340586497383835023033998049402983504879861323497999004977683800342338466434027506643415083656242179229274961198157206119704408591105881526759998711314200789157099762406599238001942669969745575502652859023931869635566893310812460875930700994703972640029362700766991946470095235423930452967184774052551270193461722294531114234685793013835373890864305326057920065135000599507544816559183737268990948611192458036079073399007495225529835817209974206217495385301979947783576323747301898176168470901247172950501862461819823286571871184862906048159791670455840936470720564206274915767039067458361609358303532141481602928120056655408827841408745520561722217810873538340931530792889012204406576600559126892559180139258257584301232797899701627904393584863578604924697997563251814054512764294116002873712180619649002982598700164386418289227605741106482864159374847289092593408585256915510165363225440579634768530433857083123963951749130134954457642911707384220655239849045250335960624247552036476966963459154210038155117403796876235314872579944097943462377329666496721712724698057201382709135951496491568481515162445799624182977917900228826708242312781805856753559786195557952558799010694536118986548164106082713437243269789700753311131382918746739173521241502174166071309373921798257817261542870682425233549047312008724267160591234287787172299307281184809912530826385805921655467427058073394350814376157707726509780488839310433709246416080215856189321755099723589718129007238444089722779867436267126633944092299267866725407803088783750952929494951076695828933257012799872467790487501091427254192667341053442291452749611071746790199916081871935098501127805516411206225951959638072244390602655105006000345886485938791057187457444588540698324554003435387797211969640994379584953291056482315045530111813965352544184215664682054677734040978581894839691506706291501598410864803976963130022559312485301802573057496773085256576585837809803718509389999457164207090840155020280151883881147643959858685028563926633236011525762009490836245861215185186430796430718283481029733737244739207432020695021760646143730692402123516777716452088173211004127525831333463812157919717986498478213092076892486589472120837355245522344018610626851052635976909001179872193447113972829127418987576430271240063541196833372568083725822863315337418889524433192107833560138752197044280004941762424916504040691368301805808031277340537187953779804221659403536829134922100062647362093998837878322396224133201867019773041505240083079560304938661998130836387441394480993357964604568277785347819672341488266572982439554632770957122858222335224634886557609561514372362351571249812666607262533108844318227511135627088143370763904353370531171795946857088509070223954427102331002297917023991240585468409611799957033615603118085866366813334064393571044412821544002351543316858157552381248106665914563183731328811086623694450170994559844986092607564322047919510437620257315482436120010587829959170526198723626480713357183742717514190916374309210789199122557218651825496170641585464090609545501484760819367406930021402654631056500970596336109095543573176848145706503994344822794677553288962329778460606163432984470462057611928868316999132851016810221554769951408468951648536116986253902130384571399116352751148808471101944600123481671938896042429235353803922812693963509629389153720946583576400401052560968024514094514847588785393823372740855650327837677990811827839322351071994543645373960454143376304985073631438289784181167856200172874681034801276284966422981865723242990983153489104345514335742203294828271331465059545200275146094448647715255627855128717292811090319600997031785934267680544498355713553034472947153312524898210348834507481241185716199441761070989566132458498776850410906181347954907616637955643206364348064452277586333794008242224548086272178406795505378723143082501332299257037876806284560586542167151194238915864048347584763475153445194458868556514216849963975963701594301849446679626196886667552039770713252500744318183538330354285682055064202321713369489939207519347894787864350911204723644432896613340410516015318647576637672185668034782387162752280869686694953824234617896325348465113132434940878614856619182312141492178246828587441795698319998398109345075803806155577021929247345095664858753477281583379934829773789383546558112578718013476093272738817823378544092185834781526753928452719155738162037461984388530672569842948995800610537882865505468145638742178950104052136587244291876326621088380790631768244788488060403802542010719541600455114853262747949631461367163963737092685970990465408149162250950682783416246619100878200644165720746911052963771855476676296580015389493067971897175231359836224645530782392820027320290651059138653265693638509201767393379463804310069525659493157808911259080232978269046378070276570619871763302942191276074648847961266768220473415544382861904100189078780757158602080190995872866690709807791820060726682580451756049021360158082375178220768937060758375380187382343838100686124370825252796416007746016747237852438044398026849711076842740092388140989150830051151857110886750343278033456373545015970847693883733031958225399995564392991708489767416167418074220676157620610084682273592366340573759068960451137711643965722501680521571403886984223162793267990824966731363933993578550992636976558156612350100093299879321676656142708321889360454193985962783927477441059532564129593649831166760809531389031293334647682269431233893423293734600334533139249385487850046203456962425873654065617493116311231744402965532282634642781633699123828766040268002762340306174779881762054119193045437408898126406774686154032523891123537533661837823055701219756909706368322091416114974120756247453746742808499580914736684891072160891484961384785796813813637748340669923949259628844477702691712425931614608650486091203201812167537245626704405961383789257775674789592149344913677841850435064060800979483051163475226004894655735203529007835988910757291905588329588971329359724549927404409006978322144126267430334193571893479412164427321185000347572640093166534899163336578863407204778940676664721210819001211261998381101313669547586391795280608368454163167593950252055987232041533350849178178778862825510228671688876322142814651067489714014630899907480103773402329914679253684975285233727290133170264498871807539106316186494132613158909645673949380162654781814783892646087395178531703789022458129108049983067119417785522049584243241782013207154055325374645890263151338568115010326703758995216152911082068659889592679985236588771137960092120215427583966379705343783947268181523019056703476456457202385860458437522252666409857689742088603430286558709523115055124922254423491767219792653549810048677605838452454108197656272877173467427124081823905017140453192034253851172047375396428893716306689252037271874747255973517235879153573001442307540380347896985705021123686024015624982493509598040438588615909183080072322283783908128842155254603481229602783740204728469202128401367086294246172741718199814150702775935455355170976067552300298416288846463841974512942453860222031031195679477962532036953692031999253700134564667036300003028413110178183652804202503738008999579692112622620288206547307541172728902457253460150188758980070464389184408030822237633325527375421910617991779240117463780848325151370381352384840956442010587492646421958789295524842770284930665156343742390341487764475483581601895683705746822293995012689199333185380927243689973932790647231770240192675577224900130475650972351262557924943553186198981120408207869411362879590704289205753819887390931518467518650183209917293326387136048669012115583625254628059558500127257802245405609930482224294263636990749328987348603656344968010475525295950064067742188223498000222442066709403228948520399898047135123143414573843559600844056217985356786759721558824982647335614711665692884544518973388518847556917677238539788166921561201521773455842862793299122138132340453519452640753248982394831156716419711934721184824452455627684160288640738768819192859557049811693953168839124663096878329017753069091807360724915052773815977242961163019349075112770845495408586374698598291965754618684596722294432267641218788062270003061276650711616189739300238408100884606432172041514207400961673169384586471435712474014934019984180379390997818230238051667337650935390349907481793509490734896483934336543236062963862290479177957450267806358257214622625618454393665192621157473172324375190768589346556489707335067958492609450015166937692546249176974131612473495186152082304242660153168164355104131715520842456263792648790918942991110705735931848577899112025167928785167010369489766971448195203341061001223851850360804627020527992369274995792298074606268695626662009292700498036168065578644604556334546156911772956878720494877427236525099899974176010451446620648070262552925976827782627728807557306566420987578864653002043104378269825132935445980820212953571349152209054714250685045696015494318482482196539868242192228906454117994147091913247350915450640415037601555904845780849489516623574313936579824074723254028349582920022141604573457555938829965572134371876093806017715545027247930808308870367555670678752989978085366286849168242005141056992895111883798515101542179742847629001930798953104990251499182022209253333019609817751619476747647736181361333763173151690711395146850050242765772869943343201485107125604012134011189202381715375358240804283325735713599894832386849805394926669429170066115519131809473302650782149843370394574233040644273222892709057051451144446454726480342498527353092615799886543786259316430947564605361747075886266608601785161593893327857437255434780065585195085107169583374081398477928592022668935100486780805517531541398053078310527582850363381058173065665259645563244984806054493118214550850813831459180203781807142223808751231854517588887615597585494210577252774915154544222961955480007992192962316620719251395793208247837169580751525635662428397086211341652271494848550052391785474538416500886004416708708422638303204285602274228791752289382849773743423666557307463280568222183183680606677036659745093278177875574800753539208712155288228041757885856173255359514239857871127048649589294007884395234814842664831692192277644797106219715984665557780494591443903973470931948428993341123660105895885061337782471630348860634834634714894903920879966096128008545108163521680186921246305523992414260656419840367792345927270485296410008962376988273094115896622851355062480736052755491756813768106567622268010032411492337043537891984153165196750700581403129117066535498404415118197640131821428799679406999241196871293685030219219952491606377377592271886556527657792618771441372443774486616678850426184462997515426697192062261734060990109048531306914716271617566589984958395180001229960584662498994138895162797688378958262824208449134869485350888523988144798857344120742743472537141512784404605680202260474475762614797716901930950135049420105759602292328578468084300254573563747825395913714342805739740633028612255325478215127215594435571138679387466860131797999780853345470790642048452298495410599562829870286384934967323812190720704252053557891969254506306204310877643126962529408905793291334273739077046106502498430012935865707965945081096662861773782937956980546956254815061928798861716687191043269798570475214183593849929868556765018102085622075506350520147236956354276510931080743975548581221391048347125659347095985843650812151234425735178460177166472023616405235032058461974759108303005488182293621742879223572021573013487711184579176470462183830770011197703661193398143915488584839297819017151098815415542890702767781232060207948228583424268030840347156220726485016369364595801234857772889340140943186098755107027217203839419154204773118818109341277289720153891370498787655489808843794120846499043478474213844583698116842721351052760751366761227027418782078707675516307990985662217483478783474347366038078247367741956537936699995734646363545366651739670556769182293492299707154312858047324950181428454159363850834442371569243819395380410347611551444817440085217500616148189685876959359618359106735247657738917859963616018286456174473985566479228043223044229403177392810896780869236319326444294523058478766222087771306113615784889500000924650148804046849932877559814590449302225034886389323431078042861813905746553315759123820099965894985535906865340689424756133931361271542457557746338093806049903839967113651555824996201889309725396396413738198362534826760006722143349584778933704430273028227943751765683524980226545508050806011038859022952418922260465927198844820807671595146999080794636625973904419908314050639315540663679432954722076446060744388863629858571430138047228699751635834184401084269174269762710722681421376700404277488077640896304483404597877880651704539245325368205012112138802786582443327410750399385824997528309672309578606910226726478797542046549591689225200022474039523645466302215838635227035961536361729896589294495836287098859089312765639358943187644443915330597907696172168368772448239790001199160323742758750988949170453008269464961505930580422930647128509100587865977998930595878919319345020677202988372301784640024333451314337224377511482915675659363700454914828349444431790874000005577479735063209853222728495982665342633162469919095296667203468305758445177264626809955445106278227013423357383433713798181159207081145155002032184404329218756449144659125358171778293191779317541682941376933434346857072528363535852454328043438865042291376841321582217893351626903356008886595560977838135812438086756716458083695523584039936236694441850668817541939348054684837675494995393617519036299814565518306145468436840732604413438777280992266431736199112085464969972862788017304176967370208835677248690595420907363437184857817718581830376493200881302381111638254967802050081314261100656619526961248444221038137828885225545432310840300777210370350673898529177054436302270068196894101515272678330959816313105636350484605216792702818163510974839132717170044767796425415109408929252163818778964790532380747698699668863147745480988456975047351220634064615644477028500308965395133859758000813857091927697780805558247870190610360811404248997583059702516100147701767432816352138036505468330383242751069174066597224597576885739313211506641478400980363271078784754841078481463257689503635914692795101218777412096371247808839586538198665761705645613244035649765226997945457796044961866964686503112563907943915288276417226779123703432953261840900503835475699098569938404947890225433173259736479187669263992514638693541447193988416373610531164433809591135255687366365876642047022574589521536635252006046990456149986084811655476039021363865176225086893817906942179173357561021604929063005899112836487388222386278453135476417001101202136387077233682344143170938094570101175702052789406109578426095423480638634378218676669031951912155216282630927840223278434132377108438894161703966935497687480845493556461328664737213467189496083048089523282266430268194292875000909766909975872629520657576427314751669761273061023720452127632046643014693621108653219697216697165045397178880664422083864292088152918985737118849339596665719444139714203604149886906819172930630978586132340988235592118270907649052393976675307314020513153746891408796613332945134632264440848659349034389310138917459804569213395638078210860855050733874928203927849140024636106288270862050313774367069927327484113747378976694831100086599048754667701606461650105336509559747576520761633033753400107169190471265006312933566355181359781064449174867370788010914032478455236126508839046358908551727687257290724091498029857295951348841390826458676948305033176171614768692100673288703488454149147636313384892673211932664217076797556905061040559917681048488957395488674303583550750636379345730005754572063260134558166064546246569227204063074790392925147503708824070181705331881612409536905812051335106608783813895783860209542764781520775759894469869612946541793212407588806722358585544231203495277918561834418983175879613326988463323765658148154200233747755626495828589036167613477616911091345929650058197782384595128991038969091637512162237967080826947416646721892881503224370609086992746249414498972815956133681599126758080284971710501420137301370529605524193292923541378777582806854874782228406530965128656133318826200942047571638229318089564082636353733350665302087119412376925370040784935951920769474586045827321332463468654810162599113424275906813556000388975948426359301553983610021588879717992155296298358139376532620634226736447603779351646307035118760611422648773646933165902081756931385345936741359446056345576067041125895179482590986226987358994945175284284627147025165771733167200198803942015882309039904975652567439557642055654405284217299234697263015846005754742808786625502263033519876826299463698536036177508039871337715228242086278877292253879700083962190876096510661861882630882047004457992393311561911756973475873221083996049320960303480027595714296806054854202618055836465248983174915433704206403078210638918838346467161594119711156906626963817072078156525619103751746483287067606378412579695875702090130390672164619775614430302948921145866850422685126588028006139492306764366093026066290351843554296911957162391883884512324730183952174842721319738893736699118311197712566709890966335346942226281144626609604877666954038575028141989345727592609117258697058148070637177651502358276506665307130606780624723469497374407913038258193533502758746893040018337695638930625931276998186712722813732738275211230322072269015199080358017261632177488435954856647556171956917300875650974568951633136344054276253344218955957517214607721697618960969650173705884424887536526904927106642452294785712231277243030787803318005658916151656693922273476376942570729042662250227319682096613002080848066186747113719176376750729115574466397399831256060453946071924454346434375479086318570356475442375347287087121233112326156211164511986253097568460303366920046726860241428414537851856815325844358415547646644389728635535899374287008803462228478608316756752702686011019778705192030898595581828898636098790341965744003570635949437934279748430108676644092749659016444161159944843775305274766712371041545230431762102169010374013382241786059833895361982622267581201634756484622620580785450969286728334179855890784815462460048879691234699918012477789529147136762925338022752697142164451463210293067680776815502032023589462772702074124977593325976653294627956475780571336230277015789819482195461171001488958788950539535437946365123056086069927760010260133954230672769465485913927965839608157428738079281453593406295428415870484376195098055122120952381453500029538640444340257911077975737806661825523486498071973891811630395477363691601986187777116580119040959425961476217856407384461656665068784578985324966305254696337470240167508414800594906171964113286753873172274522532399292879957319345812398752292728722511889809555287520620736137159056581026179428064437817967207333146934525792498525395085888701462304850156147785933462218671463506940234857384611363137698790561893876764112869337931743676536098195403054616289893953979123587429277320806877487903546586672491445835956916084886290910581685664476306791583740997914566234520755933947449894400141728712933000687995202578197906332818582770321566895077461956106089833970225823807120555401661690589517214343210229577965589183840903407743922796566386831847995343277983623250526488873441228923899645481250961277492864990569944308216395811035203239077400285185846493682294814157641823330833220319578026565537911389204897442433939786093215834029726437663707295574506369020861206858952382792671315279561662603645345116455860017469460016184416330438825077832537491896862764342313338642173547377955844916420496936858790172856723713413610318390624485318124515118136400525715781907901479601826134684672034229872856595205101481805841600952032572466082948140852089161295042636576307043752876351661386211477946861642504695189926526222544013958646448156887797509055398674635612152837947504636210736085110642919794044038301924866332015361691142351653070695924433325928693639637250514641708024033822555045052864171593171431525828128389810112856580863651832869897464325685178941083104316468080972898702241815136649499178801968092124192224785062123235217578263594756059588878358571908323779593523347779439781330816949453112649791538802342344803154353984788531882071785082873785906394700863388754760453790290659577952777335182906041474925775463189837087377795912239134501470492127385729746932099873223867270121763338828845300625161212772093273472866824560635596417189819445385102633268825526175768014371537776913698377675627861033990086362571861021985831981725831995487350535068259565530491193482824232803848969661870395578579698323483417636115553400170825050020904938871628290907872439351174592100208805593346923791172994454294938645934840493776748119101556449133255969165910331245879138953192655116580921020709311348230343246532796786876123823955080869968140378722143385635508646437798480765826053849669974769591163115498104113642792801754987787506700234658966741510948575384371357327891392440891265754893348978499779977228261283992457320636460455068937020823942993791158031488351474134556902297971725876993158916767643329337374543180987228780661616069437536541304746928145275729738081232106582539498851185875485665311949017382637332241788661830564917583782230764103694303763938385130150439212407172088303076528355337806212797867155947197603263447450208511367554306657149402767791334774108314496062273790832659496459169767511483691128329207359583191512890924486423161296023212802443978833428105950516381298219457218933183265631984665739332276308002881166570102318841101294499271927829923724261482978012158734962910579889182663014350089380747098511794111898917562093378620960890665091858015224296466687755359455678640073308378992505648229243793391288669977427514095298651073533142566757401964319931149458077771818782232933540559174980262366416470360631647544220962293024878505166888921298260748490426724788060388018310530189845270312033650852930849172638979140155143169705084487987112635355847612796576178951392181948786009474362201908872290990177258427417629281676697775563934974720163634790803600423364687558295709167106797172861582957215393506538552342833949801455203889084438852728158726327524543352197559572482341952025763992099855832885354971664812724301612355495679792614539184014637110872605889430044653717231374994242218298006848589511730610862676634594995380655503594916775178164497734218923039966893761219156607620893203658252417549296760366257510046409504932684738260173243484916087686160556396926948682425139746234088139498426552587858172047584111449939839806280141941438836495160454443480339336177966009524192574854138763968391485705984248535210479766062677352700772259168698579395908753305047140501955492364762579498035639344476873975265079218963312749048701175667998102392238972745001731917036181058138198913353855060537395196737739385089619603102507290863275137762773206982965103488254917279158471205314849977373648955958498887095182254490894939246088408050740656709352162550917839067472798692263198860024161240223791523887535379504558192882226374101526363055911695123525654407181649411012642574990153361322436052088654415170549182640091851133105664592848984386754786333995933947143355195910495008842926476354402019060602887161440447775126807356546981314690104769402980537744846873091473291954382671431377029251672189431150251294342974137248953540250420028211997374227494076966443024168692497050610936485277816075227436439185636136559324698124636921284583837952977816580432400561234702087861125804324357816706509359588466785768378754993361628160608627823127829202118518569904554877175003950005225796891825925405119710726126869708948757312860812122148269059513648210399080759500324475737328868534780489186042640940855547714522815420858869320028367154668773975265372468881868530029193303809881093458705280509351758958038410008478721902475209635169972913834408808983869991148522806937143845229100193034218188934830842331455488221088638650408751358741756615488649135810536584711904264259284350337942456367400617453661977345865699868337766072059998558640010287368393177298523743844396601367035120124687947794292275836667881275321861057783011136798083330704914869200316991096889130872580979149478156882183953739088044340359712671892366773528509883517306608165718129224629086221543002528765195341148114072698235052242449069538249839151664633756165735829170295961252625432518888596327641823334753159665650515072436772123686737128649519004810045265718766194958778742171555066861301940845014715658365687328612355866108293163401441486337621005622280285827432571055728493068774848049734905923651147999914614388775063330079566409478677662077471501504776031689442939199654446343524999731248194386876905464384512000085648484788363544312434904761249804101255624764909277719437433993106567653505336945690828870356884030403334620153786117397599925780730879347125393631235800728432935868562765547832095262421744193483540477961086356390588556558293326113857584023139341726938316881959745775479517302908912615327758367841981686223098266892526817022004055192970341149515948063444119581441849533720877243405762097006490944643413051204057981251007620794947983291219926749353057496931874104188977246945732969874556727126791205962325749065406254739034551628975330646631995406819646151797087302367826649983752547254754928595921709292119262430648775166973334632320541708315843415972116554442808321662518536449391807190982985383250241667490545199804774794913287401429658572094837068971199139368299965599700749378417954649810322198069488694547412199232542255594701417810150648372990390390140034024461332510607716976233737031521939609354347067328820106232457775260335553355828702847723293271743482865209193863042608092142201682079995466608102718085684552295351182559404444143909949980344093662216737239719175963981255441127516266211935929439290494167451860718523287242370072596499882281692078118724695254151596748526904506144694425404385842357890462731401262035116757539973136361879733752437380133647191661419172858239288673892355411995846787813613139012350181014222969343115667523014051986897948441305476102278087874338170165422849011109144374435433918858898806984309316929699746618980090647448950052994859260211788270883966566028822656856161208604222498717006096799613654536368331133341080643513557959496737896700909027019250838082034820369573947071300843157112855537244698897157993619023080621473842841942807790238722289797743382040568011568893564777181236613092133549719801004743528417001871097999728339639602994533290819298699040950152288241626907452433902146278702539660349161984072285815648116333207275214722367714806471595830354420144656923001982709564070377683060393705216756189646341767897804228506811530122266746153050178526902171375465599629614425495471729247953244523062833563739762631320178188809632051460537610313215209257367254691880062922672325395287151322160273394150226714997206991353809121610227381285125390208934553240476007352361878582524978515763909375706161069431473167302298180658944236057635488456154710440587265332725045955728371610069979168224024505555984147374249930313945237072225877758929151468472502472498074766826079142615603309010343487633449694900145428359640151080035556997112633640655364513843222670269085712610050258542448854387726025481566190026098176049960191582762992555369438583006133643990554467680795745785286730998459391210327117548469498882989258565429173534620870962996145047937434849513928245655564204003108824821615531259841479793631054369066401994667658866844113808624479779229847275079661738684335510718181612547613824136128385060115007730236251532195718231346819088625816625729761021270674607755719976895363698681000656241068761173736291370569070611274123838990772701293334124281498705591585511668616897411874623333657592008933647191482828589265536335703513756237213336406391268057975913059526144066023979630922121047608854275260587075171558831435449759745101460061005964258588798533623938047137531692430589922895243141438760028814519122741467610120815548087626056731076648616095060099729249845824749415431464515899146749454424756486241026864949505140891896484897104209992471445302863153023995917027435522100333158608627699834810410420934446483516170601187622731893820676378616256400362041195768447375797919030020886441068776539704555368044265436077916698203378226274105743014750323539025446767032339711520506087107032020312341219572703344496524655275146643403952625073271948564102202684220685425841407678464962679942275480508331291520826731294599354587319935149442113240677863264051173863917490583492330363861079746769582134177095314458433658371183626470532804629826810756298551477971644009384427998620438806739571896318669319626880005701845439750590243580503730871764877512818753324482055559683333701614382068474238648498354103510176004815628413660782772067619725532604093925427636097483527573930789521369629785338028374708264158793932642077924091719437391797134159790808808160998541431540469033128631144378033419617212670164888658509524609250671079790000698582594008585642544873337998779481628114245629398934773176507164976970734425242195790981488803788248265317869048923216016463320398237684919750382658263794258557504186413286440572282247798219135028045306938533314516140449294199159776941697574906341163246849241531260362138958530173262565432080743839273255279671485036598900199520258213502828207591720693425470212102071277878433109561092317501610059404068047842636740952994477767040516896373435668491187846317905092355977830316656446973035818799130704989855252892297187411261289568877616270767314660603474931401868576952033426635425792089980728459046403248536986338099029535967026953928779083163784670315733634670912227441220309132114449400684733405044249408537538133523713461916649872476882886851986401780090358402379544099280726292823855297057314203858592573090148983270702309536851738265159822999427623233025857354246706473691649407322249694763413951183780903396224627092918292927134802926333335110739336864744029251543390045107309183104884382831704407503473910153077952536618878421316589990881596165188022224390481292332289379081114431409388370521291871681278829427328054250458738695461577905136746190423141683218870746498287737764783889238874838575156664816178305149183807986114168919355906199826254589351744028225300900054407276339038854483064218380039593798198185543128800479757190768177742510582457321328232894614254961054288306533486641960755974319118071202028215466013408903846727146396310958299741244885914725078103428228928223281795225447010932694063729749914415199290166230194978547564851132446793294422537564882199361418253085651720370703477449937459799475117490302735723050915416598738744900815510329204850013989658486656707303528812133907365486174886485364130064797053095818198877311111985584538113302943349427385658027382719846214608717242370985154699462859125339372993942008806449595151206023976576782863436888882950974489915337737466838673510353037377577391538046039278525651152756052489462166225692216621765514489302572010101085853137473056810120588639748764692570314704572199847005527717494536896671166230147351438480108263365945999371342802575324336281141107913866190696844716611045578549033806725282866547755187689273345119432088131040909992911849794040137608970505319756380986196126736721454404164247614999182979783041557884454218722697502203226183252343973329837783186363973052174175344908389475591621633606759092114140575149459609146724474056626113377731926565329723930532263785291610869677832735869981831146998590243315559333828735251207331211965605219446507945168869338359412891833019714045971581890934029078320007707639716331492870694870665431175881749171547570459685109274579367193117448097533989649147192922329052776412212603887612792134611767568086772049373646332375861231031867747420206402059358155759178435507365725024577257971791011927752014818604849593188621661318308276025177913832966834314300836501059286197945622491034053841669141241172397223653701322877259601495142643345621210436537028205609506563478663792133652599834525895660044834799575655261983905295890772724936232097477410553432330730020120362958944759688601347007972783433275285744798017154406247982745720046275788905747458340086491252746990775464906627621428690721599351264593725172841205094730878959240035950252101980584833786643203367973165261387340755891850480608987046440157323800124486748596882721761767620763929308215318516892144598315252285683970646393383966970566156897516181373195521387961103776583644342551186294988987220911893588866460040223715264146269986938412948071994572201080055936182595412079355315463783226321158008329334679347803807833527632938406048488591049524787891632486696573224409423020321515419811774812643801660078692937127708761499286027355230167354412621177960424349112584833903951125949345292186618704575692447093994627590847563867276055750889725819943769215298067059751475849397776206583807390659188709188930030767702570723581832649035647781118231858043617099160899900320380059080812897015198691136827650943061574671624690483048563538797771764388112356114324105893394039799427108083108081700673732833883686018424372543568452564845084245115778667737372140465631495967941432574737884675239086285362001340137177378571426421362407125053643196921836928049041603252838974091345003311932395053641546093368459225987631764452023611374820186264088317113021093018220188810906619311003005403286647312582757228676456202161887808224598468220745854046099488319644782464000511411536393278628634822229810696838297235420566708692045747243892513790724792592346417504360230334101410042041253913947927031138452571583110350942876242618205483492634145929321497943184527352644653247366903418645480522237437132730604695946022211264254804229170051137842135209428704662015051457333171911228280653948399165602563399481529232767209238722156392204531272768840100868830247132654936293199267530097245650062554197518944765675803057583750745161216050755293209909832798423754863905106092352058277997411055503790427798474400844932497496006815005314949643903409276198673375561648450094303511477582344642852217748213081835728525996957183845459321398268638050948656034582832299347619215381297854184777480472958672940374171040833539338676569292823630891666931984458879498714227058522137711073119405371693967449661951043968696680891252069439231700530833643107265535909162193091280868630460365038634697654304484265754912736758420887061710762624188651204987413484419315568767801620476143770911692868671407883219833941826319320466669923549934103571638300490380690145958069802026947229266186100121267768949212157079517146643647799912904041669332689154570114800373241393378722026971637816391826660744556662292482819798546489917446792166331574769392026167189191015113096074220246610707113702235217561814373833984170158197442456061733738565766894735268521933868455351733419441741300923504614400368237653887103757198209824544472211804203977281613035075004150638958974258843587629209886099337530253564501292737836219944128185897226048588481242835799736872831914489781331873411178854064002114348264505754640396524698003853702938512680542347499666849217661494846178123777491264558706810733164150857602789792252964385226033653853130129464833172932366291629391771276519794604536553330743282396427751378801596670139998830076484508844815071649853859878858426189062332365628533827527708135603482480614172662356820800311379394517058753270547266164616473149764454883309975237503424392283327985563885776574245297384192639934495748349776497564059123922864198162726670237075826082306014949034096755083286974523251326462010776269850917867295163940531496061280006920377881814240353394428427540710338257042788236145277721678558491741810247695614314720840301687552440762270171338526284774413097486181942288870675096712427873904041675552319319977022083587664273905758889604678770790023928625604183358969458924139089977291823539193796677181886798501439582605919869356085468297713087261394085141277170282536058589337904935349362637606156148895450365265179109285368760589401675034049016355448768269289079344610894579944716426137297823967803388491617301009523051274312399094723676267281733488461578408155619643104801669799529668239330637346990386077939780206499741888207215244524146578285837775421612382803762155995188206220351186997598920542920312172289831699906179797189804822247311965961972913804746736569825611514432800945341101958844391511426156369836389170652435649055314048526315105917285134979798534611664309072770035234661684151476749775063700564022972053648515204798962252974748655003923003161987152912232937283946043243929180119182420574328655800034728255922478703180088342523623546418082826369252781952919307410113377268906386770601080709103992308636618792505214066183927968369882765599426212297405126356214427151651423323029018252288522466942565899134299474752370306932746903369746488333420321320759467638683085467877404721677787130215870731681180432704042704195219139039298455387335572562117622793444270396535044832839944758929298346861557653867366181520083461294885086408993202968245490346597425659593322888156835203106803076786630533529172330863486803744671824802355452273712407876315126310841438282558693544373550175809540246120263046982902020106821653584669563106846001776398606996231001621277696882608715497443493558832009476147400157356305645617330829859111729619712329729979438311789594764027654589373785130514508428719142190029323975772647697708905936361953900350705490078886678758088813883693714006747270723222246737023731977384298146496505945939312814754714247987239109881643541626404791252845887568330754564015650315315323978759319477200482154053221124767391418597855754105951958419872046953760052491348606148672454470417268351726824766015370331732299005916470660428310975452448609745964818076816767634737039805930767579955828558647133787420519967354261714331770606762292490268730405271998336371945065664654169972117300854239393717851553825113147144999714854085102642352519059388195493564619979172043823859013561216260015112262237457997994414214451115048907485004411926163727614507243403549137260731607716941067964485259231065965513564997178167384072276178080004544082505349682308345905813452167016423675456332252998840663349004158148306065193410361591537599656946301213853418417222129835820818008102698389583165252312868244596143711620251920670213496428866685984407051047357723043659417734332314101390754643180183618633064212961700484201466552360583359584884552477083313854237879379264461065892571997350318157886394466856802025010192004098991839021607729668362455427166892143883316439748214535132993622065756594745036231061623838998421913918018625221416888786461157762162648840926127744812469666248556564307079259614987622910860141738570822489864895446873945637001862517339613947778408825701985289712440450496783889939852720567907666422525056710885211829880849452158463063859770052377605843203339383660360586950871452419632229154363211588868990356856315048191167128885217482998685576165677360482332384085488485959895544828171776406277717873856091178992247977408785734671520179302284838747252723253090496705031632740634646046539852903619230008674947972854043838971998523960532311868576927384343539287195568921841640932612582971956794454302780392236011946415215401617960197350179011531374337552972597527990374882473733054663741557742623238947962248756636187958059782224313836078941141407351321007171889226892448392864472658099678029320337231537629231878203121938430263189840005311620295104607611094234287635608363162932969377993961093871468271005705765979409357959075977257815561063809658719590190749248283611681228792320039742803663166874079157920724566168406416061031977330226370404951423327231866866401883518969066975594896942608868538610820282873241136090270711457061274328479757153031397020855856681527148375165240280213071209072747837671831313069680451196315170544696097057024871385922546571678584346677654532108993894912167365826136937843398903850333078205908703200109618052661791096478701433881856723453624295693235588183357929066872111260744373750928276679239048517736678067304315850411255479361886421320492015170389360847093929124487531753265680301850036326831658456562525396990101357998966218336827627474543959728447586968335995745734569359503672605393495657490039794160368630098376684491082509461804533814758220743307112120773756389221302291931360978215950501648917567568970146145478703840371418051998205378358033134660657424207801409777756731358364521671012382094084801951831206504834103629253458378339558216020391746917219068648673758369963196934091375938217715974891697195708641755520072455392244049643597406697402069015584865195487398431162641402474140538096025247338387560364693653728293041530274222304776736127788397958120729039219512478276850685671552966606582969618893445813215596696570372499224989714286656247516933574417885692983963980255330417429341945761609039218938942911406322074027681809266142974035887270832777381802973010634177373860186421168446813483437218240383796896231158411140620302027245788076186988319246505194561789041982976604722889945840353263865244183947407204497834155820728633829117070065054513725888677458052244564093545602842297088633229787350101771412471325638375363508241985152227963267613072028561918250784223804168827832747956665132857677539383779547061265248510989930121129232420691845693829877370442947102632568616413596419085705211154139693730612111505322698500554665479841485457962796597712396310079078323376047447191798403931748498504397706303212324509556815468047049868684307579577869795702532863762545687507104198164879612886022912020643659096846045893798990956486192140822093235937380447312998141235270329049085824865746973232112832690601050496114939623941376340901287955409499049299742429468697868969066851331063319571972296836614040426079730279770392325179564675681223919489071082892154562355213514960675718898665187038125586330256349622697505968010010988515801540072780889421982931000352382349365552639838545190597265027772661533052385873453725349211227973527732227155280736833351075476377707806207259929922294625664791621919735779065406644038583723989624466138807567729631517780711721206810365093784134921432521164923229672334898630436203183349876556696600687357191907616625614291036930559506771101994339615757164458549551397097920000205383291680094865251617260234068888173924942314109008286973260858621041674227247828869092003258869560524671251982328165579518558340987100360055467248005130557442645341368542540915939630776230191238488565883800320251084788791426144441448962725322084170767411429678431097699966026538241889794574715851191120030243693980930076404112540932894916600188285031691134189575155548300222849455664685914241952498466132789802824168252461698247596210618117941797629047433736943935242201104395795247081658998486431705407307609026688012020054896735473281868278204110024033691918164525134580009196062724014363722894342216508293061560617995739753475543926607716469223820838091038011472448479286173833655038528962142076140713195801286147062071877032277234570297316240801966087509095888792288459080783490650470036319219578593421615241117724332457627257189235967918399461041292643909136375863225390578961421649990070271735109400158885208713267682398538648294326874940894495550646213331450282293374310275204762180237391293144328482717233211969781071891425799438989501318636067481119752456117443431947991114679302876928196096354961333336055618549547610587916831742067147084044997873636827287703734950802751066336663679050858052038514309107399367271643153717377280292529739568995257634530939685659873519732533760909313590478690541143923394658455976511172440925710484173310496323058648039264981877423716232188185244169407740643476547532410816798920201577881048145700512485229433365488203855358885837797852157173342826920449145171707793838543724602045469211422088638525349640367297047076721672853435993367154248815219344852096575339343729277798786189854294893788343525288621573878855182058228982593486342995557968968128397770736593688291760811326157158031743547629823900200081066732409810285818069473669919162269795058631127010291086464297128935541457504352848259064544881894870091263691476403020899083754859220109705606868555087553524473471754831287012614592388420748053058829006302769520641014358251410146918577594425319567848079358134052922738908790303456322426033171330686025889024683759718345265165965357954593009086599206991835733767664819445332010104972268642460734773382541077235337425460507078912207467195777836565476252171043357606621932466482387860789648385202308527531624029416398898574866087349049908432130387442229939920735579733038983774945801463695059381203047130163226296876593999780659843114129578031067850100598853613624617575653430503370025283499175609013026120185524365953304058940117277656177324112423789741608821857259758077421399744109218676259900007425030971737436598547461726142324305373885760438289646995630566220668330760628612402600960408712670877450306941734175385161041628402296395658048284777240023125175812174172834169722994367690146295267806131013831401790108590244772104961645051962363442223930182929146264305731840975632214587105739006952020046312096362576551084251710602150373231092137827183629091717446390196582195543329980133944728493598280201794525640042406948968184932369755076024328560528906718638138512433564643408734741138727240276384086869101671440718880556816870340280853315248894615173708947376706819215051320629891557313447967256129569309271428856392169870137612743639332917074477954861792217469396904302956090928955722173770974681887890823900385664048900471382452890186337906404143409071870260170112618621447566117723106441408341498290117249643039453800646110075972991042055541171687993307301600369545483813567248803436341583190649455602415199285938862604267283742997082687018723337700150906111587933965435169920922841947460440760744364655306214562016586527413516195738058705244479932000152952304531841528086915742614026309048906130023798438082116504511944722942310413401086117222488711912290399810694193869651520526349553043994631989646124312054686118623097673148192069310997582327153872078100479537591713966125100434056615966964727532633397766018861942971631872432426612639945579864544838327038264659227743446334446471589891916658150417934357070810457470377380158278308947379669831164296242225641563546352989538109993412740914580718070565843349648799669141985515390544179504513618799617672645962845364438434242297828670554259920468677270151007900434589918147405518551703200515343318787337617298392966644371209160777657548444020842182394061237574436419443862602107509366017260555904794175313912661563102117657522382639682014645353864177448985868261716237979621431067904405961186811874913192643553567799659833985585969264435183717251420464822044167217358549277419838582423778976785279049670657375077372193422245890164999879809059449734426855663375965532434923701522146404364687463062747488308352185921572469490460194306401620836620638696485346591855483354641489948059907884386720271317113736941480786992988938371569958882365450710790119539718662407346775944829703495193012392508725197026520849905771011433768820652866694323077503694275467144882759183825361759286906835679866115110718728575595088730577450576141631165677181308720004748308867482381740873823651007484449079741273754838753713310395303315327971816311899754657263020682172279161959591087775496138632335487901520493343991456165690695939485373318094048666050151363508967600368479320168459750679393698919740978819968424523167977776379747411179281385193160880544478029930373755930967708459015931647226809877049343855332779667528236731980137788596821234444715201939853162171483214873594989482404202406500003273349225011240762393892047677491484976639708331495523140225732922060525624079378936087285928975545071994102179314849110505413955002917834956663793106995999288245245867900324236318092835625933639990417941154271940306594418782840400427629272599859261774042923763818118043162539696537348832940954094459877415930357773684769453731285665481177146999817206726885374375582471503414608825274740733752633160029762753389852042617718166048270803699740150527670720269440477190829564644941268362856456619473623714350404925180322064348298637893788803759038301522180587696354078292818108835173350521720039632765784283089900486706057642532160366444636483975818109538968451868567067455617965531399428066013007908768660868830421933720521668480591257317147566732711331694065548380380561977459299493387051712703590494993906842074650408563593517291813209385861882462723467824495209588088127900832002493343385908018965555257520197416829079040096426422434849878872873891373109311347602622507002920525529544974548476225924961822495221930281798523217264713076788710517214676617169035157951367531751922897085729031617247756241700681403429065388512434159751718260282453962707657693385803502534169402060181020942547146044575495975895607380598255269104702822826059406741195423898890200592624068235083232977359538454399463353554020261092677849907871025789353667511463688048060134413342554084392601884738558972786486089248999803477094697842787484351332115509379387315675871701852582570571562197386267344192917381270007823052895491393076880698002623978901077675023055156940084502796677098723063427702765039600811104525823786017646475318106971429583574279142277435613105956638872662591323899040220614634776911532407128413979457066429249449571186905675594908305335225089348686216174096056211997530782152116260586189162645212369583468992398695240604904301916550453007632418621590925500800788973819656450962693484922140620030188363647309764186830499234174015363049033078502260093823609761781341897984567447115806753550091247991855397384993764396332268531832765374183977689290219223483370904289729258526811145944256890498615096871973125251815582404332284387027773546775144456863448514595394547468543334558424357119322827680479017217079917205880031176759229291568173452670232696348316884217341580866092237666312680073968082432549055323077722913987436503703173400738898511837982983841144457684285532411935256569994884393596404650781171593746996974112779501652011351194507238263200946499349036565377376576376659396118555605314694300605693178880847996766902269348648081734689546231486542479708687300917047489231537198396905631964070065416270672530774107161470691253931705229810918623612278760274116084045890852076389755739572142033400365823060665292032367804134411063043942859639162302116524329370064944307370262020838990746482147193744396763589015533379784635855725499013688637431990272591832637692540186892109587365323109116348581109770601140992823313205101938907087806289750214679351495273511753075544189898523955806874930668813470275052257105712906635533363037151083823818678335227986450382436431241379830258488571840986343596380049260204355277007568871177339545604544224035191160778870364097640195581567136219322275407959363928065144115881082970057386436614487414425111909470940971100767817037046224696083508732236255789099752699096754021759050739349984729479227788845117383479152589324248807303810980111424602235973578577746690245111794894991794321503373168274972564559772656490771057783056375496007545257642232839341076471624550562169635227885574130608906645769000943738098088037494091322116980499009745163081916032294830294243386293512919542604145340041724426970738734853806843355284983333209552727997534924730214755749925654633147533185582899635546555771637477624193771387554504625828653265483082495119708216565619797661188306764234343412692105029334821755794647822370186567387490464036904672215515286355862155369304308785306305286354636124592533178183493429537206492871084957073325287045977009472750143787164198609725152401630909726247558111751014939401944166260198667433623842755147687821193290687609689275311816571465309902279228430632664694482587213960966443950356878135623695912765946190736001683903380713298360863700149039872010349420973970987912070833043048378678705075257002817810505002725741353472777287851527274404157718471340352833255662728018385840023512522143275934162130155573897905684137865307823673479159484289240696085179947663501051325348621352324511510015156619986715584602845707531769133856587245829163621103321402728239769923605689662678902445305562070248506391440443320541652607786438642395531756220325764921518104133573271088296229320911376389459566100309037844132245911371116370068807886711247899946208397701773475550655658741283823116595899293482274554349867726825762758089954731284249534034220365114452246379302878994579666334201317417683177568456919923152212539289001234164503239950580635549385146105534519737947514911837289872822315781690078414057847379340877685614987109744575163371713367528015407802245746209181226752701019701535681327020500087113723288729681028347936816246147628024575371402435033970034464026153214988093408134566711421384631103160010062642850021840886468892677720297851827231852841745020255006210852018996939955741231667054280274796191255209023209101836073972146615315713915384051750658967962114133708704004312633693053803510484813810231697651143881318573899218187093650722801431764807561203552604607912814339394102682551978657762336256867328938895228043158763207720576280247207793317008132596247774784114845445320712110874819969947743713157675079539118865775121993052550312968587546134833862869898963918253440758045555835809321134884293385092084052129078527743092640952885579673555524678507019097741798506226850877889573258313609770751416163723073814010401142887706148764196878522422150552865508719337646644760552761065752637706477286925930320714429012367722287785556347659443322596547929102893844947849210988141563543084525717356290899640018945035106973218457394326842685201350182497345095645839605101887169219913803495471991720073404433199649219972884784402741445463458327159852619316654317928294941839150097707081268803619753289982331158227462450290631651817655039249128860193258436425628372014546775590954861654526186066278800688898010549937211563620727028410817101776411932068419209219641864660121208224427975421799614597055357211602269574905011598738316576160266205754471409737136329247088800740416774086152139963753880653085217921041894532580859526998832601359956505743535534493585240430525920388851605324723049357198754237027992304814562074671035068353318447644004861657232839417250603768330094929343268084087482329811721385843572870534284963172736284488312967281801981633023903961490905214334913780084873999959931284589983308975739248185271970575332890105989876623144547568005681557704356814205338437211279688365036799007507810344832667886510874791792556730678538987072760146308837631295926541044733653405547786467908536980369071696503232170097916724785067436545641016131539995880610518792417529616901955569317146216211233198504444004073627888911356067722747942191251171694727081392691445896102961176067031491378387155693173167280606185412194340384398676520707080239307304724509568802900462526128530217093116116845626063310716990208021301217102036355322251727920880186514123843818414595058305874627761108092292211118779705092788196762699054761502157331833668556895210341343588450774435536784546283954974763939634409086236665781299893306625027026834087839336721373097466204272571302707232102409952016376727779299273482850416290441616632328465566307617922068398420534350610340963147059914788628074668201115196355336928547918721562717167246475924441461305470888679361030806076097362255060845618946185401095617141828283739943021655322296619466297109051229933272181956039565349664454151864567996417656503129269577465971192461180432673601212791176244926923456745571852191354377654705276166352532637050605861689071301323824567064630624463436196747959475528502764249966475738560078764399660695109730835547964160407187010795113361128699774389163661921483654151954203592770915400569234039909953400657606388930209771305007520874068727442482471428092241137755343886546680256461583804835069929573627815890805393485472847295407323197621644754179992894798121268823083874466041870677608571921900072285664486946022647333826013675738711117853344712090655922974632883184908916102605333807047228188795524480207454361953728634986369380732267318218487945676043048930691683070318738589833326238456068550637993450756146119718493642245091275095796838226465317085941220511916532604920547858616589230889864488920644341798078893633851578267928090808433045120893787714785133920535670164837837758206009164197108993017828127614944951082360300774516380356235849448548319990484594952001151842003496982390506619412719058853270505364771499549359122749038730667340253429226032320160067812301129033740096481955710604981133186779732519086072622585499560647404510500687796047598728840744642184455859563712478731699317315375545403023344420768413626022750146935855895172687802681424891872808696985558051426175392090942789024325147795263719794568773142325071641753035975209748843371706024693074399651761003702794829083276052969553729017543629884831132921419151757682076930272903443322521681435109717882390574754766692120201003172292332050455543907797403491602227212870575595635144602691385457119158303365586690395501983683402439583955769013022450473758120678832216535817650678688475521127422125838315994504696121900976736301259099184264610383334964565108681280029180821539333861278816162219885732504210009005759516379827971818826920369744891243154566016904552356693801196576198660506926463941970358649603956176761939765571189272206357053302017068776299591385259613914603693356975346815482082734580899216028209216396792121521274491499651210095787548288381980249775221085428152277633799021969641090285570171109806264906188286621415292851204286325793305903772332715154972656350873271217727630918578449247620623816211062927708056084257006113021696418427213704982553458383416669741506064547836569974764523634447128804119694776584206803748624399581684808009371131294049786486842986451597929937732732721968131430373722939518951034588209686755734083189082828465880482958210979110498210470968161276767907047775092648000793881001906908033039935833444373121752282175330488851221012898846759339425085588720473393321646433782228397519481790548442724803472039625484659108862616591810868222741886563383519246234862644083080769112392691207655930026118867910051343979352782687735970955695811268459893804325996647447498506497473300626117116594927471181256514721046112659792914808632145710935275957165635368708305389460273978902992097505859758546115257559041521617649690300892072102258524735554106301229650724172224816776148849574321620486938556229385594937501621219705694252346284546741234662604631953562991009709043580759970084074282940184499396874806448177570662522548009308842430350699801379207167396709018820642870934417285700111101309016360744686208736003555678889337402929355698667399499820040555076317017637917093919310032001097719348110392488919829160216567916609853441578936695016348625548105346560741238084293191577449477041988380806751261060087441407660542835795675663029055085551518881673470289507449044691951501565767661204437043138001028645564780274953670584456304869206744765713960959665841214474282328124894062704937185343954535194225645583407721528191767520996289453934460794038335437080762328872392497869676754731314454050870381667916823624479148840244959169725145472933537905014882055614340316932891061838587384996730372248936448521051545568804458172943876027232422562137478479952112232877632610578240951388750722333730107296722088973467427341070796398816357560740788127660971649200204451514323300050420146054871856364879724032172259173555478917032249407501892657963631644312160429516377691653618714603768983999105023873390228664680699974528153245915002160969867503442394197688532473169008087642378306902194304281257997704539806336247409198406132197811006724048610107236650129539183967345436639251555146811527828897092706092846404244702775419099995160459988810136947660551410753488229261815072291901611259018284763532049296258108566167120026642123013285026084490072959838572556649419400333976870255674373323482554224878269597365229004722281015795984258161144432569065270418048321272355732159036973397668283433481848135392033789857623447664978850203255063230509345907337982783449118199363036376916327500220870127830837301102001991939699951100975149541258435249686534927830905650181971958162618471675452173411823423192842262238263214352908537923370215929473690416365544788684995105961930157888545595252877925618647990565508865264287077578643200824265379771291190811070551619004640431394864241928356346401684377896120006873430604704361571159615275221177635108359538269219955432032293463851384563270358601911722369076250667359759865278716787109958398764072829985387832456620581188149597737069677660826426832717759163638139637546951227976018194508038225055850472613822502712941067430155024056990045780267641782564480094728818452006188393645129913029152927471980152053204380919715122298361597469801522950070873226961226201738328771921657823505218911197807330067775148422367735265899468715250125346672707700782165568306461355856903539938769535871337826236585164130117733638531760537222533416982123239390272478389781937476134198876309988379507298362784705183113390018846007223120041424370039293203792573491568713463892013753709000728245580404919501231725659785434955136246683733356306589840554066842482011010954770996279330178208778776867749182561804907110801531309852525861055593809647454452664489871224958274706676470167654799837577739871943927065937344374171784288611028394829338592294274311378277302563049194259295959644077754671190582463343925122293111063338742314238092819563246280578319088479694326031334599897156613086936506100199750111465596461386652145291688229319999650283610990803752169110604629484767186635625105627377166328974054859747168489404574150690118263705195653271561178321436468563621367287950489740203845636372771206884141265919055377911935304108388956025008937057414591053179527029948542850220859766796961650254524471592241289595113469720464267063050705838435639758810619831061954987582760761363657931346472071943211233134992588338253026219259434639012134448505428387437537967279603280003569778283170049763624671928254750737065994095272680973807218927794283717763872421889441445632068664604997748569483890984131728657202587276487836949280425673494334614970222000628866738305978267539250711603089068210321181193398128145071570482331618677262244150849483485218280146925699993538380179130584031566040922322853684668133604409652778501100543858772469224095402360088034297868515333464776930464260977940339947692313547092740592885750197445756920033338981044636005152910880151984924332086991617843247594546012554088014061186130514012409140041739683591008307114862579247975881397464806402696744884776368754636677446000842944776947302756104520575968738888912045842271758628715572760140893465872962285339863649338505643460793595879677451439931745315888493868677201422836896775422336260141272985051512847866065451394878713045043092885889640579887599770664057425228515639203510423400127829975332028530884416011961178317469116918030013718089836505778486021600092353145846531876262705204437798199436135812465595305339789926251306487737491049061409231312149177454367306704860663654137397117890387754045104805110539777039126221990157466941406099193126604770548720458416712219360151992888657747427190212802613452807085453332983854522492305266490840423059943187551990991832418322739470534364652346929745231641809895679802765881881670130991240177680804700503895390142761529951600679495585401717638719908526151910631463905200986114431807661686293496112177206975291785291678318612870365833525788913094701708148657199676423063006835803835361818774448613999298440188611748504687290986180337024627071761059244352235354858893986505339756393616688246770819479614143898807341015312238438493691292425479253090017845345443380296390297541710521007426592909714654493435751210286632321841309311360552156504985128071963794485553673178597314220896530210560697942956298922738618314110638409463396380379970391417467525153293782902714161660006155223763969640902813331123769257011337798577990473430175378673326193076618760770313878713228636597319016275117745779295663186161910024415847874203185222906651736257675285807305123095153083848906558545264215021519969231628242327582549375549118508483405459096930258687119962432134351638366078650436574364838292518009193457233715474566441788647530075542478334574498417445288665295930973366630744208153333496091807785724227210137832968931087716449510052402932652894292517499071614650407774960349482971292902206631839242613347514992860660374557569702652459788878939878104272035850796137266445961397748584093524714422000720829229565218875571414142438797794319182028041093111206829023612007243362628738653905829533652087715885522301301795070903799279570501979550636225349631154217114436747367870407125569964797802893284194634515614947748654963958634894961718552623835479842720824889803533306637221456748323930452109245953018739523356842925477774280045358740929528973285370740525002146503522334142677381112629883712077093067205022882911978427118528925760886290499082155307998334340801114098084606610978025378290497736018292587878093340287712473683380215681783784194801868189260207909183646017186485835694830257964587080481307809353956137468180443514677002915784110013417973284795262668901583134820646859613916683152242449825905421813251076325825062980336408057781343953734858548483092107651849225068518894182042664713552310529882213359235673442799722361368350491175283305933858742725726804937384552521413264519788613037183881297098904273937343896922709877724283564000014835855836068684900459505101629013478593414935509331303338465931730160185027203017636641279283789669006516217378673200937228848924329461270848963497711820983314988755170618134096009238201332982903565385455577797351541444187697849540758775313177632794621095817656825237505668503736806426313389180079776326993708075584517787570792552181288859319104144195994445266023252280596985326427758536272450884410138639126994213952640337238539348442799738044091160004890421812192068570012696871908542651164878492686599928215088409786292668911246835980467581249402026590102083551092668425487623958318048731800497027989241325254917662017194586377304663836147442959001852548625860534743838929906840412230225219962848920671249785256042983033212630031162002790052018770357246917411167015109643504379074358656848225205315700560391261164682867033124093045511470358904263283150315634466576161585434482572809709351761676210759360245832639804938177259520810805098789634706425189717208378648171473339153733877003345494387434270860143963000758990863788273626992926219948918729236919804426745810147745689801204688050844828208178532004517203329126064238544563056109728432203984891895808517508737110044741330086080010923655554414069066926214197495290292183109005291184025310847908074635031678667658433413428039507749067597908706909911126844251861341164824146398424412145683662005766920874661869382638767032508802033815777839393262169374389177632050623970501993662708183586007516198092718896384684292037046788371112461665086649499715837519156973434144598053680868175543618705429928734631889087509029418956261975243494072080036944642474453516721349843779047439850420328790416234264092748368976237620836622231019226740880304479664562434707677081650551021877305434593876885716907518783084420887845520273544052816205170709193901422612405220038353121896173365429359437911103779884524987370937913628188983860471657032520062437386045747429593892832303582256652547319720457760492442842393127746319449165393664439903275043255542621410883909404658510004547069685163790810992488136170512190428108442977642020373855757326248307342968658434203289591043597411549643709023943998807101719370660958251824420005682872559988119442872711147058458774208813591814390344964393721759493701222750205077947221020561920659737283419190919972362057006069258854465150468627201337513989140922783240627514977226100083626597085293775743266978348757905960139918382372144657643029904920292903370381112131157834193106953807370273794431971672089426097867506602796322529905616307797471755216068842846244854559808747880170864781611336690027289971478313056919218813686434896355886644661366486462814059721927736599424703316509442274025233012260667179792995490877423783116354259902638540872032083652301975013819595563041464811567782039153524827377774256800100183485270501432616490560910220055993100425102989070308453480632486070762100706657530908048579031752803962857740633862807006944839002706978391643859126792790481128976280723286715413389138979183584141820100274852412640206230966990064948898375832257212035098956004040234091684790347824718569420838154123459195489298845966897736501711927560578689299185398297701497856549959108432228533704744229620386517130362960687716613973802047520991808885869803392018075653894331794853889278775509992836122200003508800213157210735673921446098823439417417839185828008901039039113388439362157099688398181444921226229831249354437707778386611527686842692972556824002323699972920613627613828071193590099455337051941482600039720370892197401558396636125148837120363328135220165919600563241641364771291961068304478340053646005924174733317652203457573742208309249519648308847880981646017793349523188834767815964873884534645993839509053901606424616582772765892724206262482559405992773654451959937775311162640506792359643484282014022228301391706134573976912140928523759358381405163732820884742894795036080607217722595518481728443206346494228207980163090978732191410915517837088369596734962901958510968125211788894785118823224569685010594637692130365517509390326471098161281735888655216895712048127898919569045125666466781317418811122042533173290124497718161455278286433773681888047153772581973155879996241008178421416690247509559176013604840629303050321114030190266975644372947754791313295985042592677773330301668371247390697277775147131655573309111939190169052313506809011414677787642597027003331945091920412407746212272013086978876262274606164893175650610732479170394993247035533489741399680001827858135774618281814811361224742315199154074211051855141479667370697866291360905527890506626693681390326477767540581084086858199999019875971216062222861375330695275065985924694698693634277768360896069062664143339335514934458837542686729996917548713342166913821381326483203452629396512432949827080223503971824379051131969010733834674575983574481502748034075056014081866649470280417092431448944064066951572307147537344503648661894756129817123189295946438896795727689551141495731186499608687074325742650767500560566133815211661476643479360246165857261762404860802572881590929486551371715172804447123096257519194872223154006292793351188898397333593974400449393317843228968123772467945442904707159594229380724132493252444455807496260345831432252005091943918077546882831221879391006794042150682070071616757701176200715881112843390505660846785183873752465019545515875062590892218529801407030882236889314910743697277868198453533212044704067142408920578581379976317630924659085068788204770694971055213772757413819984656959094887793721742678122663125037760282605420100851393390260262456944713769442449418510625020091860795986147693087423952331453440659945784075734210455217425905411787652521651947552991439441616118712664706597454637428468160050813191580116451170535120138949497441173581699054986474188741616113957839592160647795085758176176161627002321825123862554059195922779734779571669729728129580711415692513638974989540245118887117804953987933880136782621254420676204371550429895917744468680109690851943552983438875555041502866432426066779471858021873055730362109692363324957344540481931060016492554036707237600376117501670256587004992789199912758719370225217095365913988195595985786433959275029884824235283209466840566195627419227646232533950326037885089328452092704885735479098603007450223167408483357019083669070385323439629628109014837013466604917816948412003372448218147052536267087773023267509430528031583329584707959947607054763907017814766100342518246257590543094398919549782025077877772355268514523022388613131629133947761435551368953161986322429188679132856719503595813122903056293715193540517414257062200525012307219163503250039698792119150737972773531044477808042371931000154052412607876581408494340194340744635873861779786637194051485641674406731172709534309827596074726425973397938491341407464324213616798257866953122248214267833332504199326227739949050315893654923403191258545567653991253652475521088783245105123501765407598041060336749490862079440184795487488102385777054208603406061886808210779885756259001248979598789125884700688947907126293830614911945523955677081373224592619195470610782192760794725592471776154019401761337833404705631804546289320906007452749060620112463322056110421944011684029700078554248776141120802986123000995097969025004168092710735465349391590850926670166653153154946016927346751627618461133079491472455837577957100809944621328805560519969847046713151543908542540953376120636424560509462329370935629975392227462320903235738214361789855194702935238047321392652356919520521456923564243564904577018913005813982345845860099592489343857006896055403896181763131991492747482820357366247323287421708186848700432039179712937676652411424266416795265147679785725884585716896796999263041237727935259367889865608499004682086695734520943796628698688249423486364183669209375901212984853414412267022514464526975050918201444589724554309281348415509908975648699076751766409200246814363845021972904769902083155201985511107699486275848031507658039950333003674187963309824658004654255889996682394120432275405326671038579727151163458355016564747783891414067240324291086317087686774143299859360867647005757547832527369048740503006876225731729142083054306687003844516631354545350307951718494488777320172634371753079831355533547932767311946082809766193646247577929578171667921118121633860230521400814861914772137054043938575484334972432672561140573274251005211470271227382470147381332369755291108280077694926963288667023197262590132224436311859676884453734721218684405217628803250919842815859624484510419933234740238397760417979567585733568305549126569560309070745034764096715280905608028404225367385515046021707780686938023059877620893877951834386939625190600299953850966854882795091522734816016653944078016770379767762643903731759376842059263828489970429593171642706230151608160896914338537064991042063558536668989266832483296761393418158661866162258244324861091105583747753732068159378044896934040154404079415340171027991911240126710508634398122310668877986554878660103381372135419403678816364014083735518743202413944800081053667866190087084679574289754560486978839575382938548013453589142839446563030952969989713426838493830086977257923266436010775698307547884703917061597435446091235639563616577392648877692071535913447912146163734803902474832818948007237837066866812492640293683005770372608356424855081291179778353398839843579066626347509846224107621576224799154842015870781113688045875039544101502238757842880902983490074904562065372425985361037004803499566920547054900992285850503832286572023368091465321426372570770042508997960093712983757700848233070374452594446165753302949158932206481126349492547903000105282694119439033591145375125921091514775256812761726197745359801237585748738618603125849434927561628995919952144426820396805308108933304654440449389392050489908426793291119980994720592415672000637674166438474398194785878539660676779993394305194823594888761228579669128967164688731032787824394717227615518556018167803702041687329155350959103456467979464957178108109468736130427457211282962296359366255012294819622122352129957769586415034671517796090878601416766921473324003760707371749527895273399234600569593655215698545710643075752818833228132696137238640299939239106296552930961969848556173830037951847975808272706056150245839876438863348456600505055122075763225310374350689351153948598918651964873896787771797445148271762756363050900176876101855399695906794506550657360658490158292917586191892748640192132406515233051348729061866338182250613066581804916266047949304815640067581639403989794503473732686428636503699307297187353813414155783959541624159434616798040073243054897746980565145595667211181359190814349256369526747235184005487256734527535728011278102673708483883669015403206225000907858282508844954787603357387818034131781681054987777590424484252647059109994464836081461475332057287582564029016658916425637664927708884538920762101651505672771495089802834296866623662527982579491921679286736466282796437271796489554999494946584755320994625268731919356396141612216518633705793635271008346857040236611999573715702784535657490624050708103404633347919214898349088449164962906169944805338040504982889782071957571867277943627151831443277209799379244579520601472655999504668053525671081633252146143523718727449833040942216501699130833273173229042465222952856252567513137950571313561963983024542735021679100197614066012326958161235139185763715369992925297854417334249079796865888006034010890134565755693610181580270217792747900637379457285007236818792481912326310556326315722009883870246020462905894476414977350465573517976802690316278251686033030653112273396980662992755346192263627824250059172357237266126775876664914526875128079155799858429834762556556551844369444555813707482557353620678899771966699024915208520876970224377178094680894628903045350306125269813683498799584531873496570530544600069138612439505264444305454975493925775555437496078586700764637591157276016711102993783945376886302808219315878717219853306331794626988500536484185612279393063758899035696657114771930525894154706930173214090647597713575235924276513310037530834197679076210791686309139214497121238473346537730790912810723329710555926269639402669266348378691664907138151589730136704006587635248333531076009688990422323003681203302565994252259184396127599655334419701591875203965522485303182449606509719032576348556395765686117188685775583107413342259926543140301517499704532307599701559292920314521639410790912005243452567143829739234987254038559058406576539433628504598956373171217671332097390834115381345761499579355810368557081097956094649754181059209699065770419878032327208118788610454400959034644873279274111448010023623679188702737419546935861229217262767591989410694238524015799692248775979265030621054406629283783265878146808276872021607898207944647634592829245062036189440769357981251075292125647710099355234530586516046331208808910321512194813377536648292740119866053631155354326262924710918931151994063637275174625166921470190144916661855854933328268374832037388339618951442451181980736150778126566506677120080963761872394558151544910355195713233156399206793156184329720801353763260227679084199430983479233707988697679163315880399767320788252311795066861341542901285696263429475816182294832378634895456900727561625186953458170578932733836267356981354043877213555675331872583792378288207142906034863689104971334262520838203478527886596327311177497683983964568992130012935724339049166356666252631706684670443115957440034145186879419596479882891133538111442210867446707902408824649363466652451843803745691205936083420102695075185205466732408239068528845003933614070106202645904545168247933969152150932369728272982003107284219820001458195309723119862567263307297251170637595399194151705845529943307741642942679012548802873924153608263563128218452075675864837656111038327189682188627212820052886909575933129313937092708139727324262015756992544648687762809714948916781080746499347433013551238961017588323249751018722489462202894212572184255603815621717625689837764067359649898211570504600879816578275930616208253369004565762811382580466303679829208087602304319393515118517431244238178836252627514418408224640309660706943072704516624066752055721866377064133846593332092666408773690098701254478180314257900861557440638602373088380352837865155290138497910315341543332276435545100524317017356847615403798147237020007353882762203346926699886142733271840635219893693931960348744142201373457962137776141687566629449153020129759036458365738727758597476943648416772168237367381681114576107775634450672382727911691937145165832790470423896012543107779041407665434043373486915368807154680123834944022626959271183013336560520931959766691843988869747956076171654010916374481739086509682753170014196028319007110708815722110883626400694845832638458554761437854818065844826469562090171274243051657702970288582842248694750946676258034938140554108043775812559293285873454987051706693730507531581629439887864476344673978664079960741965907304881578603758078998968066685103299845399489787985419019522442822842725735749112459198248368673571346735363224753907980889553353698116924499767152775519592083296620162955513258930792692015480549258084677826725235613162162548193667666230657568633427885779706080976796093593279460159416108087569837458504772379952270568797304382496522356698770984020052471516351883266998049385910975913245809830178680738772879407357395316905644377411874723955940305543778814991640817120130680814546906899092173282444195492473518802173059903210296234847938696228625768679906390950947359810710897443535426093175490969833223932912724462987271241136195873225243588060158997112071854691057872407665615865477523689737444529534814541777434210419503535574179503030668692868418003984971945380382913007135801509985354749616749885536082619944167402401936160136163447887690909778555280945140172360115295451945916852227453145696684501163182022012805526766112847623849422494258163976066337270520478535967274660400496143402259906742472098500461171754139390770605042252285187229103732243195517853112458248840670373218480769058259009836376573595720131793667054958976705526595559833452659851773502026045094133184126721210313552275037508420081811723670023456879185077950336285958224647166243650055481843150365892864595843390559505401266830497678345769721483908222709525177209953727348782043559690094122200581918549326593154978198610137414481638632886878388519072364151448140842370436247038086700487191341035901319774876169891756261579380816793800009022703948818623166062882548364085946661868765486885607517662167679418395575403855370471482494072928287244909388764245476189846464800804894995846257232685974861558682093417143273546409625923431726173539978759793805128210879222011350335004847072983491907565010438960610834004891519184116284901303849072431856409981822455017414411700322998440781656492636732717138478174856433641054352827829160965349246249194708902057495881230907820312562179806185370574899885371969636182462268263012723784869153065850363846995543098486712451742503045929452316896290478717822520061145320012206715655932455004005962123046375110742747841341453497210689668510512502118628377176815785637004764025159619677374386512297578112905730284565575768248145726430367246542987489715376864058548873946490330046669876853676399168161650189648961082333963521068096474678411015730800423007442971539193748721077505923106016922305814420519078407394076204476617784363483649425609742426609935315875120613472697753487998313891076403041427298163365853868348774636442081286210830282745396171908651931408295397862765377885749154613210293895971767552541077985072673343985548370091968550326501129046887250326667963826864686161167738653734919642826253039783790256165678257307368917456949662068530055961223487125213633794481149333965667371318098111854957036114702922697659810942939327391817981728508418259522920706503913479259144625335275679362422060808097829970484494362000984824994976705093950285194992699357332142009428925122456888114003357175788171911879069418461844394015341801543776559328680501626864252848303673287315968472949966532860343305738630236447785478849223074781882135423815176914287450770885792891436140875917094380176281312988474170925679879648523964127200940170628052122111694811131006618067987942441394489582809302908287050461839518331126940347490699904376721593222461446195366022538119299669300240900532011357744835084789372819411692168723436871252377569432152953509133206307092815149079764775651058060523580246982354042358565203851541662436086684018295568385622538500429103760196643398126261782441139010357319256363170401236155796481845084334922143043265209224589526816696744507805199806344108109018484990648362184304209313349443303768644524880038133128598227226245553509920958217065575820945797810504058415945687518108113269816174892264949701301020933721730475475058759138010450445012780038983107051027267201122427844417207558969509100240565782945884904743613252517804242762466293561644955853271553580663432235331052011703813120217685649609850801913228043671575708765064509964134198399166596093905938155858446184202169901669070084388603262007099749084555469693994122282831677854465079102277525578076872349166786466058304584391885251450401121112026524867923848521224454867227380257895865364608290266440675803980553934197632044204227158539880678214011217910360662748691958568444765285627729616300339197736808734306082673436182498010202917780283124213815651337688288347105973830575869278523678689348352890673100105619413404347830115643339489051114797049289249266715209083091039694215219672349820404738286227463846834774322361818561534981734144734397970418283329288399135899134348995776545533379088860226101865147353147295926136639475414552028171661270056435259225568986830192197125877215199205127136042382328425911531197198947211511056984225265907390048437209818884079099384121649492543863997788126177522899798712627021080512642153944926396040100542550221231283842342484375690533769196477362425197911774100205795868330269722681101911568632182386505970645066386150640440195988463990932134240300723094404785809547323761248117543918110000579000065354245026004732294874791782907526472461894885901779662199046953038013106715415806829616381723350614418579104056237913931527942016489505075317020068833398296904608991442618275941443753397152095753280323973453664532777306848156698820151104409143127734312216977897244310917457525235650247366147523904893408766707951944731941249641014043084434317804895358095879325930568642166617368645939433555600943357706941620865431169654939623610059207974006763530038266712857238942664184477367555232889235781959751508047804105353002416158785308383269561183188354614196306317600264507850614041738531149996948380419483393014268934271197206471344576373970617023943518643200323939620307236790576341298566972378521670355120874695171762036608058765636524346438942926653414987515010741322546136543131569730186041620869914945231849803389132025630514905673847482228780851329111451448080998932535270936536524190600467388382263259188226161154157192554965647974146026079411294798659460926536580552103202609673542639054280582006449044847990534352098695729932293180060154065560511945997452419902936599269397019828965629914346687415585005575661986098813693135457961794415537420909226280103174133391138179813118491268888755783378134351496635581322402172135602041686556225138254540994718779411858957939191835879221132817265955276532153599312511151071042810833303924880610351781772333913330916128051365709226705936304975949973465827480381667648853524721256794869386091214116941892688383393924590088878262920566114493811978431497378984615050662659368390201759410816233368574365387696118449954758109392828907847777487416896621311881143708761870958902253681777302775939042336395454902062518691756656519879151618238699873904900986609449765090977888051632342211938143347416841978735832636149541283567895379316269379646818478755219650202031747476464761327530673013092486935713372336263751006074850477421491818142323761820224708875174610491820156760712607272380970952665716238500016141974191184381847045554671234164004602685397381374907046242288265731073168366017488242589864962451188631386082840822900920410564816453409339606792956573390906265815744707490681758488517219708032224565854774436877614907670859942996100574796497400066176937106993358092672427962696721814413439253306775295137225336399695054929850480643544118012561749370426996493985490278810169274523489042811232969784897441417797301984204959961429560685034880079099428571023619580537191676029247719842722332362981627237728849185618298488954207608970052449594560220587625594910979058219473223406164865540312920553242930766490342567810906229192123372485515612854096598247381023942168183174536698257474772701438147705078124869105561650190167939917743858447166563061757585893891649028541680251219651646801130213146213719269338661312932380814651365406839669048595720793815785750704501726723151817023317195031988878672796885573121019939680038151232556395647311441013410477595935381667565251095935446068297474317962394936109435180700157127316907500359132953939350991244721524965946930448019286568404642788338146636729476088832143552882742621175589652800222871382734548702890994841655485898352968416016655323173136991071533244273644506155968218980033203110689001820706001908015671021752403805339958720290028788909155563894755853215611619998064623561558295167756228867622099892984806815121104076340271390839731768257274637783839994807481244358698225926931419794232361030408599168357634336222369050312685151731566133971829032931342883056297500179095256038966280822220096442295807293021126862390596963382363254475679161814433557507638733610744617461421450139285946446685223140140074111631433893863875119840144215256018001802159424735620759835273322986057538409122133139037576719512008454898088304526944451651895857674843192768282502408464156823356076395962693657591755106970625434856893163006967547366583216187738941940240008794427217543513012126099428389321004808486289394309758766791453520480147893379998926572505175425173150930483452961319081989270195743896493171013366967328020932234376929519358272666838783292153158389231186640921834128496143555942350236200992445766000761900824344629026414792114041484257263449767247343982445151581972940590864951805146281717923937898337438407569602421226489803889164358137085208917037695982024658583384734440611991478249299266646406305647493824133548869093271428685242279524243219199197487037488264809311130661663880033106376757146638781657036090179029601288997390596687011422105437072909824049348029490916136358481189842998887192052272052193741048188710847004922061316063946059122454015031938374011273945194169935747594575875859323615754338989646839129466555752410779507177795750705908053738552541265482862666340848467709680799266244516959495047443245730281909945113688532322316013572306643913570929387627998473162375289374485939865621697673306381666338548285710560652470446035113233303097445015052724458779260384972329859235329983256316091522868591081765548201125128352824766149535035351093083386998198594095508153634023422481300603008818311333054353380140385582255852825800380569698316013534650221160497681508378951903732048834363645549797552253957959605647443323892434366777207528159809078486363036404780351824735893834015625029092893780949014686138982494428414523872553061433228371410438657220574657688618989531323587524416174270143301865108114807488628893893750949093632020354824076940365963926903499671014191256452351299713955145323314623223687387377191739038791606938213290479251551210960345110835178293510920215854947523400597386233289344665041360955535558926913180553440012236559391968393854371152003016859288787869331899398652703305540337345769463085511851096872371072618548137809186822493097801918955769031808345482672129430846749980407099122533198547420384698687380668043425347658261055272229921505406239019614350929483235156114842842031563754233817583497528403625286243970374748629339448494867706910163392018490615535262704102384498013452420304055062518589066966844055564973749912475553023448800278413449506536731675876686921000185934862390536486562607056505580809509018734645695786868760251242563938677105182340667481545218649087651310438915936353944906075043589197762865450821587356261565772170741500973017194561666588501779199484464071490969800411818684020370960226784094516682344198215635738598290771063425800777243757959160992093309545164032304950286353887021004180044525470730450062005858706616276857846009235041793452291552743343160037643595045950716059530413305744184318246714468881601125730669879626266164990594362619543794354483168280539938568024320258760459241632111950301060047181423279624437823443207112621722169276219002439380491500391266802976541885430796783677487024793009409072552166210253141374932343918507216905456226857600857144657613717244063732523922190779951653764400758958365006208179372916262842829652164379336007529024218508248695351562507639909510220828160540618440260391383240898816573753309493281632594786182958874313462338995117505200728798206965175348538927831189493541447689290415329009151334087921772151273557623371415941892060146500213872565359286394483582741301748699817941427014324540819530589937015780918069063984856048688761755135939012300069250257420348896154966310913787435925292784067199882829911851766513262970550002740615891623867248812701766897233408890086007412896697201251967843596684969572770482602541634134537113400060089986432813936138353604090857574769255317768361977786613047931077024375000977413858045748083201860892854327844528789415137873839119339486828313811325498815221625885150335520452215501210472899461823425449740541608243034939617107265735337222922291126060900999999544901616101672876358422807534513784018960593684633171839726231238010203751624118374324447998085412401773658633994390114144191941717472916136306656870584151529482412394179856319326104874736810125043351729987652672925479236357971299600793655974015986532154747218638223411544358187550824597257014448421103219142836226016106193512353591359145919078076746676278455028711341837760814831275623125010713681205941068563744921455692198869331034006083914439921720320926246970700150666861941595355635000910439046055929877252847125722825673719536640570900769092592391873693867589389854853070134069094802766644588341301823899998124922327655361578838640117338670466266526553864506610410432383915365633282716917854385799277940465853631246279150841211287413801619456159740596942083033503837806232961931880066832587647566960596757093263486808705597152350605546086287159413984339469184672645016699278201275500903461259003107284133767979590358240037864188641889292781562378112469696108539977594734123967522541563266448530109104786889701597439015695234799521516168055004576280821069180178662519832825712778727187996434463686166619638142793132778594641853575036561322955240085678915110418069582044847239236270253328986491084388592815085404974012974065630918224805284898463226140521844870266914542957758515504576307270357011039254256392189905173914207943443209156114832217898716415496747661868598372225333993065781590352206521120423030824251072109764115849705027205390118290507815004709011873273465542233407974929830001678807158353026157144632912588798733650127497835079397355492855460943222330363438190542588609161079278368060231463769834276867705981491058572257084866236380519670782778417111885843100605431430540634702881981053390022545853274383793032944432727631753704663035983267607998764235655389063413450615253561554873456536260716848093296592099267464495059930134664016710431558931341686837634413318948432303335000217997887445298297653316893901045945366663093636628665568890536451523129255706431986682530152679209690054754562208058897649127563749062922925433928735810568403377012001901241722730354597681122106280751985731254113105750091326521644811979920292531245556043942722705554167482409437183229269794246165659610326866147642791513494102080512910474922051356836448244274344630357469794522208400597232244773378669313282200173913454025365165770681811969646636087241038724730842166324439751095132466741004576913929030367444867453389103520636913211184088783760921754703399498376166802474294803557217812287613445037734970417023782199532797160532557521150287364044463832094577808528875487002588870137963750091067087457624222838617802117576310829591090798619054337944977715798316359815057939298308131623544649800341799923185087264194400844912202338938880969324697529739936262914975565669807873794206889278292850340486485691030934482940250062028736809125958326958863843076382634468879646253893678485476001361220939113876567687407658817228067671743175235635494135030930208592528414010898888875815885501383418110628262087479262528264799685863857279138790975129431458362469832815762417092809899997297731164843831464773567826696284524016730174937049594141199325497615291606191957423352958869583171499453402723573733805028979140386987888530546806460366714793071086203065665556479067441199822236210743787922154766800401700143002276939334208521991274222381409332230928188342104542534002593427918948360699515066662334976114990433022950570898394556495136294681315425404179871579605743567990321018699314370124384909789564190504455029036188735572680286178300153350899028797433590891687264676621452113215880155322313662420625530448239160447994237668035016491147873675450139900870440002226323254584622215671817130636153219286359900286196098325882729167594243989001898249372455981438714040540300879265315438417681761828727773652290806577522418094491431388376814133786715582625703439492547422357519100230913899788754466606392012148937813721750938594401112387175666121347570730913094314367870204940804478699408617893700900337743786783668005306577243038272963102178637578139635266662345047012209296926800541852881021751756320436700061125880794324567218260643345172382453485577287860413733413929448684457652511761176035222273057023162241525895883527894042867398288729370230319178502745909179233846562843711121706915635709564332752044081951496536011355358019386821835171105931970883161371875723079629844320513378558196451000434487737796130009324268306602963918995934669775447955532609176458935089309693015756766171327097353581650363745278948820101903900453428275045269713267173543113712457428604123887453554863932284097700112926008902485371933996622971037962833246777074075123457897430887039214045849948953155814079148741673419822198743141545551698875893432504284258987624819030200268883774373764969139825316413261652940362351215331539286949252861297409253018803776979065098351706787450376966211664316164778597257805443311978274953256180191862693732356359475068180520400714343221916968521512822797835541865829559441014890847496407234040472499072958417031728863399492611376962879786174501586329500647143345608105698607865756360205566703173095173344772404563652704665879912440937511650870789924683790653510137388929686263778705372856781174995418375266261501312282559995035326205154093236657770301106337948850954571864751438567564890386159908174385102313022829600408165929056767342436777256043598864773866732976269553913199352474073055487806228854071601465495933652951923504952325811852225920930259946320549955751209114961441628093618836068637604937605151513134255223537217111786869295589039846218871911665169797056220860045190766034495631512862391145255345817622590221642713958846032624080947410299543275681037068403805459708305109903497216392454463522296661441384786642633886216337146095905294187857462583126920109535020390270755082864820886288779686113909355320268691267112704986555075862330056646844042543150504680308551439543190363542790265255399448985665197635209252042046393883682219057013341947150765335993123990392351104599566409005357124677239016399876584315850701462705716281623847944420145410634569393633882587344709202821847303869687823783244717894781251231142888559409706611747007702246172652589134445707504446394772445994170973218093009708430785526950023524604959814294717346506103093747840547686819066436974860796695213157247212342284679151014591586046526990164666409702786728687008380466093024194651730046493486546808756983247962649099593617775586710349818071764166395697050865511105838106924488648050800098708166190299795846087811746212826117183004337941688397283585115068977543280164175714214151052798784781482076039317821454393805356065507200692587772532881969207294320861850976709130845587396529589498100817210338045228928280985891120551389780336661163844906974444504802924556448376455641613393137397782129294291229404954316329418416323306254171067436468194500103517804514295579625062733473484584278476768256413024843989832584900273230593448916207573198959293704972162987678227286788693617972248366806604339520213543652044321696457570696770519345324969586414709513147040331560564394348509668284627737909216834133700609430113976361337786595099682937452115523278867648740216967498888650401990405682414165797164440594051587901713588827349489413911700437856072748563751040570703979251933149531928776656478923606504502795789171781579409686275590548254955109585397506097460242868940093698874579665352357764625162785810705204037022483016035652024354255086825322139787563994614858560055230492615772051545304712140405123253580569734639819310997597431989271440555091364252492167920737375259699518633583948353653585240957550365065418160719478836743516521995952844918485952974997868775355303837371197387840618509150129319775114168519329240259681240540528498225396270225489002818988493279559733159749876544906088766678802434541472654589255611930884594162035059923018783762315684367792842911363617728288130143691656574688725013296941822478319438478859641205115511164938503462793771139836666648191909931764503664411019415195699650048597800955615073453335268606230952592640405000286107211889124302523858600764657533182140843370892410952019945032020140502281483265672276751840759231250689134291527846575520163434954311921723221846430224137797948988485128359947937830897868740229687277622589267004516426960672169319476540806989520264404911042731657071477049122003824125085771806431703648239918545860927564812310600346255996576784111930771826405256421410528224920553147945481734665996661524568031970920097380575068002785217401828445273416248874351448096424168257177794504400302617688938305638726182299376905593301045091165620458470808414912573211146108615495284693672429477005907762784987176771947865066161406811176711334026389222128690634510085260032437084745121797799914400843644170903392678960099216989029981438982694598067548895420633592700753243049507342278799684090425308926871085160815797579393888783767920040100325811032361979193424326876667765762361467922960247848401551855498520287794649041261865435503453948977718991727628649835414316296125733143937227706779956989181872078865046730737363302370782316540558576476171825438676541680234667907414953622413800874542868904626432054262910466915710592961442914125534065942948449608855671669105387008168292335063310138742126849479140779700526178301834244818143367957414382333897389141411600666350034085137987370553339922227736603329848227585828064434742241820631416425372504420707489124575172350075502513298558207454613889592142991112781976188568780434254709161866133702140162462107032001830803520747108319186206488511628995272296287596120297899611908401333371505897186063063910350208471806714924905138833271523939113769353084313599612316978402116848868442874240602775481408343373876377115144188908524276245485232121836568234417341839588543172667622510754297822636858956042594619368938381544825055696595511426240899223014164679693337160891601324746692374313709418982047393210559296791289631515581972298744091345154814290059436348224403670226887360195747409794893492920295576527399459130218538430154404551186742233377931327529340858479709308358479179320273838470062402643120119268227143177691986706866214693358965524003515184712528515873406244408315339558812129030916804767548052146750114036749599377176310139701590235885310459617510924725979102383340264944742583707173655214795192762500460310503495062526136511146943580383087122282491933195396793745376344242506209331117755341407161394767415563947168641912752905494214451481622487738034648908209790939886916252207719962290772542518459226830817681956868369855173900322006809585678782487639370441300124151550402424756902685543621768151592051277543746629495097272112483947801825212707277642495442742259558559351535368390845259707584408006865161522828606419644292981233817735869385783774887290707566215827073995600322479045279210867096136432947804857577739224807128739081434841997521200590597568606379893687734438944547564768834232646100881057655372128341088750397017501336330551028042588543536846807767170915260250389071674065822126197640720506122328826039977855409558757461032005139866651887658372267085705661787207956893642200720659405794890161990433811284701494010849064735260400371924501935752625943639309988537666671190839378081819478287179876535965293200735612678541373326385305967341352387998108766217965189333847873923253688574944604061289859234399624423134835199629652616464218362473833570100150599113644384802288665591911354482306423621242509751799332806834502036465814683510711035632350539489009314640519670425137046896869377180165849887602479272993051480345427982454780003275131091345274428940386489704784488012933776223760044200442503320694962406956062091523914664440063282943036499251899837137267089399023189310684283227140868532559524826059351980807869385771500519334355974974228275459769402736967906243232216704042085324741002577869646628932411844081445876809036311790553940087027917744496419170498584786406805981195002390162480841740524036688330024716167866129682897271741490426828680222477591492496317989572705433457662013139770064444519956761889521887354840251317243179255108466248856235698748698482810654745629932896760336324069456232900815668330453313300262352187714105340064357345683589140642915117445504025433320902359450719672611359448337181919753217773746142408462850286954109659735405289678960259377559973126073328964057956821760905457029279661720875841128302616968926127279612482217538927559392412168325662263372252222001133226305204081450663714078783060085531302216444360310309229839252634228590288678482240979106835772695230419370187139659367321814879226999031610282600253925660401284998919328472746876310056157836164265011830164064375282401706277856558375685708958881862419537298970898919152544243311781091082640428533673214135102542248067409283774527122990676947037076819619067954105518274838734204156467009331080252895614149788659790031114469844428353929873504327384494153841062830312502789216052437604511711119782429937793930755873415278566909664180619865638131860205750706847723977643898151278870968302225968270311429252964301652922827485271036104858818674349833595692290473761866478270986073844284986248901283471425030905456425231479940198265614234365814600039414956177022071546472359625893018703740636119489171007299171862005477054900301973795609364180941545534369032880090898046581709191475327832495881152459515930334701051331982082545869726852779589333550561974324371189080906372649837207176382275822935323041297791773560469583237032981426971428609206689071601896606873524673336160126251989794851032085396814117940662574378216839768372311515561801152384628819722447111622662420403747718203297160455523211986539756836469600526518950763961337091968892402240726278003170526968052943087737070671197025314085013583623259593813142914693132229984088189111194491607123845279270016355756381602780101366567547445099693601153290674044628766579362729780964935294026343571570665705308304676360788198563375840506108251343642901816882668011150349801686853050100138047192275340528211310247992335386379458982003264381808477509199851169479786513743610230042345436430879828433914075726888641682188475587054213512953116248793989884141460623848360718906171590940304024971616092450594881578495784382062404352633788184952727520531039097730706744349362286188372519970570132149151576649516595403491655074620177871295658783968581880644557691930946980944946474676544686371918448431364776153398494091347462362232499016227897340635788321470521042050043995997940309404946000826760518864060537120303792469473604331131706605472961931031661645604979978857547380735316775586912086341539442025557955648672940549996721232172091248812336921386415811674948758179340235412068175082152963661103176380355209474499255343429984969416940409100702551357641181547577980508338911205201782958073398916263032606852434285315993764317613062408536161057625102745115277937493264734218727955183621344321268347227739234824801963162363224299685942179567260112748675582767002744692201307851933159557062945279462292646660913319593424606154839183663973418927928433027023624758473897373427515524307683459404796431908737363409311332325923150747778141638154540705275649677893184450946846990479794129179183666820780842224984578502773246952285656188228493260990108251964120081689710508763615605599235975270337614511337282196578590196057910571554980826388866579852146732637878278896956340797402456762342286321927861912706933579968519667179309763263979182134661031658098894380435874249353958981671714657066781457505037658558830403953512717950935117824481292889569051466044687279999858258601030728698585272934409599377561437438782832916567044899077596612861453710293748192801181583551456334433514262551350563456761314587480511994342198693257983062105324071254473139201672684427617031310527430317877175191080066228217769982600344219516937756719145988254738358444792337336818334016292415247461677951189606318192437143578994124503181589796130565695385016703573521978698742424924195283402775273104211102177500594080583148638111222137060648067206979468372836678742857839044734662643266957204185384114335670665931673034167919647262204511797588161245776470130006738583778228688520733930166171128537676525918769599447417796631266673057327566637948430326397483962165569568119307248841923542868590344242210637944745481338677236792858013433040904252608438117574193822202627726386871950684676381694805130413172073349169941271124161075563281180618799252653469530850069360941327401191725933767020348007287589347429054588404594929633185952521495409204746213097887843564456010057982299471017928433108664720886602252920048234528575353602988299979324049599292343017981165305044815676774370712288178458896323497507947944007650285051709463343917068765162725589476461273412100613351712269076168908929059370322772781358034351015478729211805610619414745675509194759588536532275148818538891290542275879577515292957209405875590856269262311761838535521701566492459436755646701186769926645825594479752310982948719266497754975344073364365977670700389690432080182789864834030945383962484347942545649043650898619783845376128207260127683927980914222312202844311782072377618775519394279497559821205968117745324952200085871353825913215507828008627498421863111995146232420527909225638191126660719641878885159146732252916130207478646801880227375613413560151120865358374480531763533856359204583141282730828853636911967507735395636205131642755835659336713511746869464870642270066494485272104790235734314429142402896953541786277692396198172952672068201009224361539443212955339813391181602292180242863437660973101868497935635656134470000616075462376415468467503336333326880784767451038667310481079327178880218527334692301249474693244025536033009823501001887393945612024786076798209516574637679490859036647079276952234436966777003634988286308650904675674952742803362760775132999165603908792475207917934494084166376322841944699599525880081109113973151713838506615040545243440634592070147718427917476602978560360192097284000086641642384088215630762161505246117761485199981818062372797118914199403832775236386627203548801448164209903894874554966156179339217195370742103730795932585963331069021089643685566216687386684456887446504957887133089034906068708535274689605965798944340737541358120591510977488663011561610701408779395837727836909593361626390804984250158627861059753478517304344742640473168512624262157625014063830289539228686207942927646419085206369289375602402238569818813604255890874082951785694133191323477269746528180996228952304719227533402412651657946648345870882195204787091024049062070279208564996820512147366694855535766922568616218648482578509995467741422933141546675767394080103200757268269141238670404987257381016027446438561709099815121190917476889665522337385301807433463408897458863974261239875963052828698223797765102982804744915296252939625596667795367308091062784497112760529327042236482057133434448198319798876405377145781076539726246082849189773198858599796447453533298291393147614979901761107051794989901365161409172050796584070142985220203243151049352137949763773573273720356548466933416462898075193895491240869465333900025091933478528219897811044215073097802893659297957795035210986702821666740752650276848579630883582079060127940329516347661563676852102130906313617132161525384900048664980287005451903453677139222209962996100695909984855764141789882612227533599807200774674182012839039602081307802722234350273463762735206086834872120420063776268236041493407027525777197718637768538224324305596292393742866134347369135517084027130527069861468241526382521162532784604369564534249165522518325433947884772487951759926142759886260469984422537696930437663352318455464761724334242437029522968078643389626309381208922966355232534634894222541269776588685183074114069317816027187450766431681017357906596807382197100459652632014400847351912454028387765843365348508897130047041465399290806488574151767295711764711482335881637758552039110027457360905943092226167787135721960198988769367221181596300966666057520181259234242788271755789871032756166433543160811965206122197654053598037876322482550922827400222346984017429306243771957067363210954033409103477186159821930877173796019223748018429854281599735514646025572403049986428875167900554992885652582487053709187849673200933277526650766145619307569110072919735890427029500127887986264178821298324515230787164489448361541933149936934443983350064434474327748518242156898970411981806041086235678368690153224984285156945556687509500819932751705701916274136026660508253134704658004734525379772073636575477036153639733565359918684998897299407949505897538424431082705301489759733281780187124763357462176289073139176965489086510482695758229330999234261314102497124505334700371005378914006872058479586050721973254981441055107356068304777691343061398739424574696805003830463795478589957164250012309354509933822275334872481638481049054601475685438865564360834298870789300671800931155899239385228628616859015829831342449255586641685679925408454528072250882153467921852171542794500709968619808923935676862011017624497404968885348096320652468342638752493765094761264427052659445270818982175568709734431866455091804918229964441409528776646480610711656808911817378465991568353737463654012503759608313736514808248564970256481312429014962142840062672832363683886643690020695558103028024918409661447519039672116186956763475284910234353226009044606609334171428110942760004419106093716983031133584520068102547736723009946288138977740466452259352493804943810041139436544858152862003277317629332590913129125746071235624962648791239826863651362455542359306520961620721408371762389447210466509118842133300902462590630364600528654043216746480396497017867253349886358685987297470499536174899670854652298160952960455164264675471247707606581757727104475947732967147742925155922181194859191816766117767139418491356257134789345589116798805059135672471855270777881530088581049974493646526867808701453327945316505281797253516706274843445653106663009009689377243470756158469438764532159486020361410599965495798101792334430834095493024784818398496055710228557911800719086190008496912079157552700622465163337177931668170642612290099627898038612465227311723796428222751968467662745913589084656200685109649868887277105767978512284128948441506609675310737443604275418022202581945910894766731784525336396268650037640442037680386233807950243217070223203293993561064166437791963094754799741489492012848170720857505666733725665725488721060256117026038867855547419158921355450485933076049426232801633910714817873312896031229696373306417487312664715741816811303837722509112336117494938579617452136556174613336095611697499474200033804418311229653780473371404901814152988778380742472670126558501120192769084095561860743021573385628137481344844727861476393205297102459766780982972969857902848330523711196904064420150463565077005400627992136880772722073690859938292395827346627629760780826902180394826599532769625411759866200950100474358982320817494861684227276928430831323694127119293308405076074620363119239944586683357690918396355598845189908612629272207621553532645498724567542512848036261026628955080490967883392593750268197840611234285484541871420935463697206310242446136499304439172847641103452944756275939664336592458751041539636342454920497168461076628103520760544688365071723810313757328378521270330030230808265179476449136342528646606817807997170828367420545502662969477958804242952602245564419008955082613664817695009448378874793281647394789065132270517970049827218548687718526478054901732074464259633281111717354626042369525862169020835101765725168949141621373898490791266750255795226521054916811163987581036677845335244396277247684566468586093163150013544954773119531991153623783541759096290276872241212008974340370373026016467009514589945708917054770383523578540263413094392063282238049333665465813891426791916189702640260852204102033366350860456728869758068858431845899837359998433763558822650675803826899497055404635073801509689076330321022481456086578969830982430159795553492727072538410172475532186251110578069677119176048109881609368569308554717550951444886546225530351843624866459091890355083967953328371691170363479476012764290709096166952070302413443917706740278003705461381460804566332707748271425709026549396662702294950376390225916877532025256208799743839875319850515842994367482926558618362891112736569121929107860118091096015343654230102041099262829814785183722414869400008412503698200157074008729049275365569019177251740274650090749017329880172976964758840047484246825052185116932678067882428794494660564061001907371453294322886136714343775181409317458230099622216870000590603648236630474928567536508240868297593002648824230874644013247197278861829164676279295328746085790520467709999036692158044506214622352215135659769166769674857168661953711421550934965425340138187476239361404555409106137262479989910159141390268310750854558646237879035276285240763197091353804299099194070710551307004226267574260548795700508918333242397913150899805460702007076070633463369648295557448606630958134033487183201147649952333165952918504367359699012961455778293470451088517255581277033456166410189285298584028797104675785575194092636258229667028944217717772636193532381144958677851873835545390186508960208915197679016993501794152552317693916879052752521009592009872665803136334515061835972234384095190028865817745211188477452819614709287483385238367047148130575290901211963202722424717567419186654638115133540765412142155667254887904433669492853895391277424739364202735313192819948489133969128555101541608303842490035949164526810516082268343621998376157691377945620236160673419611735865272158257065385858210535783275688478092171031529378616659975525564860870670024853377389236909343752952935638550797636721360706577559481689395914104833370337455640459864417803078184249768065446439488301858059334497075174124941788303036035948723561819413493586257339303190724724387623912219780957926615800786513310589680274690405597675353888662237552433925261535148860712237723099481084750273095498630706930716275432825348219369954480285967587048703438435117506274217911342797334094705999338478225351207403747924587013411874850098453792940490890684982498382609499786378825655574461786877204900757622603700252501324502245683471594107858963591081884695058744995360131059959014841898139633270514833303903591198865115850070815648521737598293778684638708257228572433676714772449847280409991920636448843475911168013399624876696528396334726634330088533930950552755097166854290232559905240302646993050192433609723375498907521383382274507061384643689887720535599003464556438460483718978235015774851031598131991272049846414671197338516563540980605948166348846607855335647882026323614606198093411070085936263202193591393980729386719787367370810164920642644435703572991491377345260167900372764711296766529504064797057087980668825449317360037826480853671422464461991496290066921102598245554103026501489200120271080153541301394718922680558895854984057520951524315177160047660021125045204681838607123417463782648428111478532515124409215445032783364021437666325758999198673462172759058339677668581221835929750791184664324744562125812514951218225008743810798668586735736395974198331429942831173278656983695977888923782496674790815145489218121691834083295978990477974453252893085869739066720636242003913856067711012059526589382119895061595347852473258173678590732104573189991563422998422363615881319264611712897053581524202168985558112824324606131747508099551886424067640314438754711137203099904366174654599525974377126791933335748106523142564429098783784343104791607719202830522197419653233887648175893632605830806337143475280551170065666508020670101253779785830228347766443219714693891227364491724624277711241679075112791247351963722864187379931479120008414136405771098028868601126959674260785906988480257799905597435038786701729063468833397399429519386059724805751443643262581918329883040743849771273597751529967720559162424802765472381226808312646804834458584893390331455134233479809978011695437123047957781625868526375188345174629300549241271406611192507633709154291321721780744683198400990460510098745825765769747065247237665119205175765689301618083389100414408231413285931949762451629350742549597121524018176314718397191214517838298321072541944506883846201022264701045677130392300369718900414871947920967343598255010356620530237657194365297431635095023422418696990170852803607109345743895107709099947235877453928982695130088027444252305560583548122379217269885161151517786761455633236999993004343512368310548626981048166202502178305024292344676063296402864021876095507635128882089800240372511558523673410387919560798785529922317525398623570307076896046154135707527223237502157210677986855190515832351604769099079337057508358637607225662230964642501759135097561845767414013560160620555093505052643012519592283483943195163204967273195890492492207923894524362807309189776108306357808165568882296205634868289174374631102085888662015712883266467926490973563194927764513876214114565472004350886294190218399791042989252128227113332466138616560518245723932878308674295618074725643377719563007066230921327150514345486387743569922009579685908934782260075617812106475284223621236690232600693343938274777447053494479085383329130404191978351020270605822940187485197773049030256922316027538856562792766172357332218908353343159212441040995195077136702532621589046991663997659343782401741847919358094718877701527308875499277207232077788043717010570482421364089043535456243060196268180923988963996290338359264642203159804214052903859969279390914247329879736954954683458487820758141345136571729399301324513833695364497081873399365634269088292228236799022706554301374441645734712195606513159476852997290266552331210117130576018886787868697727732695847129682688419532214589428122863529007469020325374590286525018214691092027026832938225817613375151595709513873512306421692143425064550782997390055412160555708844495442826710472665867398499224164207968074643920096303923620402112119387318260854294570283405220194874205196353385475204487142553880660830156268580895229868023998419219183754704332790970885978086848047048856596549644067182275866259352156585809671275568569662330106773133639512651270354171333319054231615076262067417102351187188239992472917060886679943245289992341823260800709899926420564781172084667755510969825419111752441700117907720603026634406519857354095649863111207430307303883845293642833950021974538754118199344336993485105741104566006171591579628376990397957286764813031626197327911458859162244434574160919015414801247951320764844421142164527281996585976995270758753633679709484836000511989106758825374834304159917629306515996336847155296116573190959188080297945599546456646132717898763562360542468609444788687438669791546574887263796150574892204426704018920708075220969124700503269591780128481733150445087156353193846369806027826142529557582591159026333142817405003419934634921907132317649797975520057756545879714561819379265489470067112344366818126027093810133204708111879260899578887082255713544870102375394566376075393122433820173072100321852936486108318607198779033479503008838689013279463421097315951468818922442991958757904160064521153361840601630042780001722367199528790141306717316045829962089057054703428684457047527078999634316985397695501772430327835778661580303878864603460261683289531025575841362085872997421968124674583131728189457345072213673652867579598014470125547488275372868074512970025125212680936150618463279264835004864199966359073915030120123350113935973863616620925204036549399388101595438846490573248006106023344874120000026266363967538234998565331893160807226902002306329226242878187203019509929339943516253295583742277243924146612852915674957162492240970018028194055304729291994785604976194614536545915518137829920385791423477158351723967979485270460576344977492851539158876476521220646572120345986069752461698553739239427219620833187789428798204460888509367946982824189084495116101127802034070258546693383053225812062881351450765330042125902717341539625612841864693654458526183030314286036402069314065838518244255305499466684114617156254836070923607799010348329314845079931049980587952702686130259938941492964493463313024970173225971736816233801672775536545336931918960606111063452355787020319160200144122360920396815015976420025550433678832641708864884606009007066570535645747690048608154898049863649078501834052248576791267119516590369224035953448423019713392780623724527142264593483225032933642829985407004994176090349429880067225110799346330077846897183479228091648456000417009737697274947493423772552930597938098356051352910126630465044043602106334296254681513464753396346731009384567158642356735556946027799240290546675649301138438039597067231367733415285402690202878692085510457323992526671776893014369931254400629435281154479955651607552428425994074243417182005842077018559252563008188253656320191769627724502534066619992188176130777205595101859130661526173266372671279596991990145032740134667718423191425083914496098158035651577063290297790950306258600837645786150872930679036523479172071636564819087815986737229555179943334161071590960472483271022783898332814391574100086353326570750078602712748543804691917270273416742049275319018118594704417059455525509318835764348744410344759012493812002877185503630360094228351895798788850896787968289061764566167469648090813729922068284742364925164900744613776522002017750414364569857060967505902731312336768737124241612624512650316849096247000962683300010963176532491556929907323708834623713889279006199430431590079558497628983362413635459390586393128320854624602651325522277753709242872893330580106324446191412020248195448038682299340069494442922254929698258813300352381287801235059186715172431163184619833597415925334274656616977411269546498621930465076455852002987143146210908589013070130501557795115479887248526595335165183685799577603931030237510950480247684227906014281117376803718505621090216778396890869577261271239820872372823419931087832065645763146395768456759685349044917210260614879146741822565196244928070562156186741792230692401296969944191322440467539044073225261525730106035067204248861555149876630052935573511312533012281700631865759220928657393058406108995077368505534095619086515916321492551857300727836467939988176904236616888846984519708483949974753866529267533294631131229651558255688649299843643788585136325265425307905001112694702199947384052167500992074981557065078197824085822037448747528232608309423816307899327437138936474859042077666559136526815872605104566761571185284008274073836785766221141936424990079098459920414648901395361667746976549050136815680724237709278142090608719885613567650112651584378420107966904879092618210768139031845336852244295871459924650298483162734337243061203249483588434033865902766425510702427556780963025140718460605759941517353708870460672262486802122594237971311903957796053065494997658142774041556424117493923635162904999399565492875874721634247582597292816203188228290254152021960748752898660228558657362882400724889206036230324650868268702015861114441286970733919128051609749460862459333935214234050931186968039474231778702372169973158128069687739849156683277221701217974949447808730889500402538506463707315963551012009113534309599435133955303473289036493383217863218365217884482517296276299533933742728645053679501079362152859081212956453657945941225763118721704516736183604912623493082558114276856163739470652213393706972399776143147227849703255725994067914053874671929487495990526853407093795638956248651263823208908127735768050680582693133177480102183783720974488106601388500608743446090255709879224629033253341549950930611695050686416848165833486358387933435901064132911281633759198947336008060912900694631693559549328248804844781354416960256900976919651031642567936745326925362451594103691748544153281781926307377810254349156035583229260506989619110839489851644672292027497354370413342900051113913809278346979177983446215996884644834189002589946565409942013660384474228205237860431014284595358242443828696598165604372240858996012133072313568185734185307169109924914851603567868636416694753994134145729707128910750539128410172180516782860661702590631006578481387836897800818000714734489872855761076243187766864022710438644001451166264236130137745686298261543435435026471561710124783162716702307129522497766358655010082632204528298416665695547950749773976283302932981128536639350158066037012218330130224220717475159699084710997707948877539288164686097557973871478232067699343969654391737579269951276493490948299896017232729428783298466319312051055585327359034680313282559105280685411421423948345052034700812036114308110001365328346382430373395147845379133959127687657843894198928081717001352891478936945277582037326226590658752862269252351967549762596950146307039100889634497573517146435386652463601473069746725059302672021109531732259862340953853520558503402837409860023048162556800771387370074962855732977257934035860611066373757176112604927488347784111331185028657329160557284579878500152115070863879884565842675833823830315734960203310713667713322290393676489319716683299618189298601043721667492919103586480406222540932258847873112562853124433413028922298700315968116361145594864760297336434193118471878684618428784047105342737299824435809429697230330104609112192854397231213110535489017051977415810796217627544990853591471099632423467934693470462949450951535659721567397720315110057306442540033226338246819381956040374988349843110102528798092370874603921695790982751452253058909462431698668924446021448307550712801185444481800316228122972469372091689745304983399658546545734529749535107872691016743249471525846568012551450840642371054454843522442365622921741099070655811669569828808321411001686288086599750837102755459626873570787990447249078612713051400328710954806466883949005363907525781181921894038442806891807512151810996678990726797429130925693385839468898301945763368911167841670332048003806643888335612105850582929569109255538755328842987964979662616834030034165889395814665510575094198909991806928602450097791461892795658592889162355185570449069380718976224880089350965203357638314651327093999929358099564398151255291710281475074289805727911721304694882744465412349421819697067738712419441565567472261857188526303199956724878579649714973910019599270997472864485198577253717719629761698000011179866143722481541202977125812361207896875306771918899409178525671526070640088487636029639541160214129769541719992178458757244514098233164997470463862779288080576169785540419753959909682328276621046146014091576101442062774837177950748373917082011019910110321699135886398121089338078912218181405261245192445321614437263673663509214804524981381890002401834956813329056924818203929291837916346238879212045229804409469457822573904104971980975877038292281781882046168153993742262691735333178187207340750712485061351734730007867721550331380396451045025610353529886189862443203464731050393478889414150375878519241149764397366516570715330640670398534959250082270348898449948680962243132983722646861415659469139886398846776569404585101922380153100091810990528395698444666529413125698791428202435113201666273396646471057536518057043714341993060513429325463477038086336383042835476388984184711966615916648850287977559644803072787370353395241796634310299343346981057480358341985496756790309170132055853251010640356767872671874225410388111283012881554818919991232812063952371116456894456496933491159194601703189025722315278299671467182686006397812597609830226310207330545459438806137419838395781193168021455791992930660694934588120056931410380364541456300786760715532403091313869852263527775649236324361310642864062973366420288236081846089955657184543082770181825020828525130031261992228760332933076814673152033170961340345642399672183494062892054436461372007893733536536986624495237478017738143977002475236700514828810010082180645501027404174049900341740685249718724171267326920599711400207596086416072373562312581685751869385111967932515231217061449117781631689809864759991044405440107007707904306894057455771140638377428341296633389174974918522088816201524314847983546562506356449052490094268225724680454946524957792693385942630061529410382276948495344183063943989695896040335469550704243361699343647669364951755534526106121566740172300091473264131121435400286636940934364387519663252990514389200642243077899071711931346369999494714477007176992776194288048532176897423287260818734075945522315723021858924461329186788769678013957298266875964854543033964680259763068804410720872815959365865517223284427174519998329305497901864674749385806220309105100757746259866736694180680610624145864886906311864047128351661064432359727433466513419301623239142273778864865159867422844904062380702540297060815023136216595001059331569231527517466049909525211987864267819699578712605393305444158638245971045559955736410043105597270272071641448085077185143284772816811642094669413220803828577157200501844209359469961780851014440967264158044678282928218881869290536601523382301733758050262861165689064432571135358171768471084978641647787594173022714123792193006262100657772504575955212836218560070768759060948267372645228197657413095502482662000198880875541657909474696257244704916879041939030614141274018136284504191345896561220580411625603035874480209077032373450680019621682000167049997554262992969601209791529158872572451644614094009318833872383943595882264282460011871307748296954431287242040797551527656453275677605888029824660368589022216627687602414417503113734452244299161910156544097092551160648871147758021564955420552138687646077441203413734694216736271098919059458995512965722929618193777569675018019068996909849292157410338319283370707940994234592919655704432374577891539983338659073870892965163180080374660438878641681329909493622946540962940667912422689421174550044597409795530391669066754497187487243716478984319609411089373433585717963340508529152609854742842598833405106797303009040667954106489109113000475673303315406848442786575670019845292088391847609055968369737214258355867589470895456944026001003422584351729695797415852845939661291359684201285908048844816911338705149556374225827625804035714216281838478684112470858578148051296227789932138869815911444526062426769180077885822223556196813656568526302761958951729516590463901455890468917115197078957777281228909801767667750347592000699707283446527613666635583780943035163639867773950075307325540851820318707218646243074792602869652363784645786799672681031729601603875323398918923075697277565845644933503445644761207853934772524189103206093793077547826317025919089460713216000914586004287579285590890769314116643867432706418554496745266218710528263137821096617676636718007425577648364274239192614097273147156827079430518886771771688508025652174953336214154075781857715075297600239252301122942568542073085499421786918568724678735212867658780992828745410487384507155465355434578053829764860787591040796219217780383066964810159221601204660898698034355695452877904979189619733299663946902271566954022857625028955712971745813419591298748085083736007139458477981576925250533304131124983534939631782410572684201057341502117801786461529931013434973723894472323491115176738129736524003160790635666121681715019947375198368410961170919591267419436360110187368963717483776748824453209178923810847731432482859962414599507352267253203131679119652559025209671998297834965156416336093058030831951770456290399026323039160179197651407632780400320790587714962337508321391325603799195193475678693075629542892911326745821062812863632690037736429879312895482923380614018067722667721267849861299129931650090863643958725014665429087508646965995598219101114306699927675778146980928989464783004648171311139529160601581281496850408888483420465030612877207019758540602393667453274450804933424210500406179261745890146418469132052203332502182868321306003082512239647445747697016247928867881226965569519794390855087003550248643726868996992693027243945148658154849013253488399541020940670322771609874315633249183634041623560084806815540240650200245678739343007168012867245478154422695201678350494403270550071750836893125613477915334105463612672876764717692675830480758612251466281958852614767350909351772067564654465329667625224217626367227090351019422586444040831848253131244160102342250347582502435818776929438394793114245457389610059719601968883383377957155475971591490891343291123764556841612140768978079183004409107826974378246528648156954530431200329633159396078634797723431294198838911689017130993391107706964018639303590998221595684765527592430866314572950422996167232752926212835717496025212097036909192317981450207142405379808625032411375639205268391017706064372512534015197668756723352276431273763837826876502042441272855716254287680610484085831622318711689104320202750802478860617273332166079213574911403903294156909075320656955740175239284514763188435507610588846193493663503816641290026854931480005926338041687812778353177977611118989121378127932285570993985014086527037912444902177811468529536438065151657750660577374084326911870719200501582237968421803414947208665540898767948415728173079822885031287483386960464658312136085564618099209588563705119366991350885833289925923607519927231340862624297468282934980784766359180749442227122567818436588622568274327919036347263886367358093495584283037326487957212405046853259759072510071196544956060508344584703043740942001837981628892946896334379744441254488919310017815712731505729378037590804237214916414085372616032207063568523988090443764682061759779031875212010373681722303076517333435878690951870785542964476659547391070299222473569855922993004498502631984469944282954448723971082456337156900677190318782847861089158079039731453295363291966610675770284033438266158804975164378118518542263095446633225302524451530827013253145973737797930199649403582536849560450791153644638574360469509329962364449944480893596036963408691427189606950717280570150648712718245705139156058970934642331261972537030123721151266970790079701566102118250479119530598936533137003089660742726386376392868545751075438344314416951962675670861313699473638295381399162074956669737512018837095559638462291888692279475478476447644870764959757982313972589067499933691745810064162222364468689627004288162904125453386417825447703268337895638114917979180361602701217412012311906063972781796495881636991611294312766504361707371842233544862592970233010067798710396499904194573545083592088691490606465158205650537340770211994574713230410725169040774083132762515655053255880983321456115859800723433285371716440929750291943689918265086813681245500606894447076370598377849152332586819429696492487552390430764722505862171158371993795928322955846399106978249571770601078670302787967388751844507907924049566933533539410634682221329645299697426202422404567211338553405786659639096067764613989127991690358332612935917097838316004199085484159158351021601254441335162705470807223266935853454757212474097562968716535472238381028290586251048766711685008207189889071680444880341661764968531885031615698912569293661090517926978413736894849749985631888766202453135059320677886331299712121054655260395158899094860773308344286754984761321569436008928344750987951530568951134278067806631445363699214306817912282738811257502932585835820939016480596252308293920871324321174549488360470558473438091457315125469166154709487859584557845050966392320837965320731449333771288157847352519243659896782575400724498503264141737449591641690584792121868972372867859228950734421347362213347469662202759838580419958212345818624342942331207564772360021004936895578618842943568044216589531467550783002886913071774305373169259897156309453286802685517071629624187011972573591594101168892868240653554052996055605871668490341753860254281436118081087145096604557338793878508069334638351155924466739863625787071401696197331030336060539903926238190849679908574493326947813900746784318481573187243043912557033144642060549663044089813534214131478597204457142456694448308375617426287207417025157816781258391152321664354743415621991009147343173935912391961805057726140257777685335948218694541792726109537912663093240159578866446571764752676254671883222242565423035344456037651877420396066649949767767715191733243897794438204758313271554877042604310303834312330191310236248955327963441177122361934764480412500545368019297410065836552947546704656535679084786762836080004276131187649947113619859692860452520881506830986440613175354147529386587867703252259333745778780305185945369343931938119616829341113566533217266718813299414368905471332603756332883871914415199003060295659721860543765929867791014367911632596128605463719445493711971402061583013294389672050416416383683779515215125751767241040842153412557133958044715523253772997302444706682449113210547679842181527981870203909294116097998934481843638385796073293335924245143835427048010660165635955401307744759565293388288239315795283745022474570170593967578137809182097867410026872008808088148174665709709582906796813841123394503016074336771609016683041237170037153415946138853803076108364440842557991002282254785115434046691590813540759296985286217310497548229556232667663242094622903784218035845462433034231233530266259590441728932198281049696811596656562439875885510613330478462906218202230360229028564126230326140322392049201872559858399521789886113696958269759479632591921377709448976150248129384054796627948205314351513644950787376326352789765667247001548880976031570423241775001038685704201566565850386314603589048330295916887618149950740343629676276159790068346277564600416259766379862243781913213080972453938032244527942571433524774325547953472383196366304120315060509599920625933805088712930706431691937910941741684711863150325545502771462107891264237806474459291772855171481878594914220303462441934615412475388427629488672253991713982561885304841057470777189568616806708891381548179458978843931065469321788711248229898534490358338488160462770036411899323134168356688205619437804009921848744361130695033071311450118437561364336003299611993921945734026417803109098171884853392169983152181221988922847482612520558564109671304570120069868671053174801506958920143973697226447922567282696435779387930071753098000943825701980839702433278238453521815440043026204348997009983429048409384777039116789225388793338823585441379249980148491904195384183297348473878103448661680236243061629951531631052511600642536315331574053321154159053427716734139653975792237734168129879045687060039458103503394331827105697515478263609805500151445289512798336277357429598815825507879967899699089361456431886413449286894979883271816560979069664131738335673018479481839061684053387315946812969571044229198127804175501994432570389825340090903801990022566240544438102967660078014754177892966448044312560477619539553850444016283125182630257087901926070600679324255348411154825695033732477564517196617091304981770713438855873122981348209335454335930890946904644384584977145569848978964853755662109596988765028128060616792654875329933661839979510022831030427465092897045940809348850460549195679558135726914337500533204648044643262772590219189707878071463890813618707811868474876798120784038618160821901000700463178025787973266639835153273791992380377885182738244918667037013939949489234272864369941416835775675904533610777107099109688413215904320403257215346428421439980720140142879610370382112100493247617368386628985406550398770573518041122457242693479103368611569281705423448768963769748650525639483233891030954270189335982207094186458644028242721002754077235513309129847701065862586404435734285037786463082225295779271598754706359552905184862127440130660404992753895734848879728103202228362814943542241071311379310849495107181612308204249346419163178439118404294489765624145113925724939855249267600840350422912489240097471087915660135079227148261364328282224260249425823431084230873011922644262282817693655453570744320823229085742525736458858556463006831511300589197990153390322137292836634661383762248350242938178267196906312899218000655344043789805284485112870132204413962570785693881132055022353855037645502394759113075464297425665156411022103186151344382141013556522939782962604533375512451161400851160847810836622447636121023109527852628369395203844316247486264670000951642595644766845802353642795748392977245802167130465561363985018032839122695483393574964952761419202356118552297799402862318404166820973433310927017210187273295674211534364554120622620689815201943614500461095512923110831737807200502946960598534614383850619786002217131503635807069472123650197477085745246447172203370879254989606650873786639452329561263395771635412007571318349473847244721203650400607557609285419031355552302179062156013333429250203009403195746832059063749737794951877673607113938335058353629768080712734522442938085490636954626244577098435100645220587733447731973199797027443524013848202879070795443952257431402886307101065922358287830376939575483023227504653507207332583915349407321324918870151008414971686333968269588360557316901032644899868417452523095504930789159581233933505117149791234656229875121218905947422555955533177875305728470336539601449408520433777926838034159258284568882670223381297610493743217454100026839379881305495019634142248747608586516028995147247200969273586236269793558626954072544690640695451383018560918653111979404066765910956121929068198896970600536906158675257945402000378725713518127478914902705719988368094393512153878531555096490351375353718960056817368219654160474861035408211986318794898140447421091417227605082182238437766335970464823283090946702216501808379153350755405591396816046592757072124589463861588514822759455728617416981546803884643493581975114065666936346097893661233476132858546522446628915890603051208247855535832618372577041769069734207833100529853224377782735923747398964744804416815181766093754554292097879397155185376456549712928195188706884093373378951508557475175741111981717425325573908915783798397030925067629436754352850497053535057823314652602576968938111349752713396107505195572165271158698070588650600392256369360765730811960946735438631441304129191185997543225944544045934959972488600905470331403293807507487628696549847917291411714269595859324602349727925653881827627799946293082872508012702644581716542493778817053905934985062803723486066671435929078571952646236560345693793329193070896472223773723850211944394790183570566306298142871241572577653454243484500065814180895506917464866465733961727768800179888382257608950546022023188819903899199298695678078808952011362691226379948532962610069344744897167737236749048311947581988693721331440798672118788463017768241544387949334290031680605753197434800845437591808767589637935290086908602357982645591578794391941278472392095366316969386035089367681014973859803691641059867332439496465893883203281889564979934033370467973039813838269650391843401248959098238846292810979735940934992422699864513154475840896961137054856532818642212671454573201502776118416973704413445037157064820269752910993068657004140959724923932686114216925846542249499397368461128368314814200666053689217457733156198623085138142555642291219879882947805922334508099221053392783753841562387551491100960788443613878074450442141337170453251003512397605644261338945485360115545483058482371946281060089695565825909931000125515459484560367096107726241451974386972027158574863259195653874133499827299687165891722924223251859790098652218215668350006941462083580465085064882992317621699258368246038052758766425963931641383485835514563949940389247393155202237271384419958183418640785032322485596820774168357762894642098721038158376555243197857589410304342321630241869594869026874220775756241647224744751717075842097736008945636540040952772517540501911178027895365993328927118542975797035218737319651693060234288068326024079829750414932299148921246702501114749550388056853827825169384587680112753921598892514368521725411833700955616989392643173864301365351352542780108247901017599157916378103646911807531488828699341089732840211398144731605965475091770009447171383721707474081529930647254939417253457174623072851898233469997887530121091767475644192493348434423720940777498368307156823441899974913625108122582517047781663979518652141385527569607972559117307554259404228265797803952771953188092774001857330585805923479021869173835497929673301218464186995629481178421625139494735609310871935974849680794907389966102317680681475523531440326760618539830105778352741480516609709993439667903669424235444479403893620503494229598551226898904673410241534095117788201322548440420688245691856616560886776690086493720760702313945140855083456155475896428843856971908723688306962142396505338058877698525463596385274412291328533161765575687666589901440750511853739903568926280925321027708652480414933423910206333362853416704168218933730405838328763065041007233887802743276385609169828431194747120565341482501110103903447475038553958154124375606149684420924152899580876417675064867287745842971960900209793518261945310120230545883623323191273333624386955490801733921550388769090997918333405502423368315314033513597311992980577431575734428520331607306381643822217709554471917932692860571089789743601198798882813990471919058391023930579021313579870817476524610180237476383434592024288082657723955385544015466527022305249431598295039744961092006190189737765407937398139461531480922796844548467053635393852126352676400217849717630122161347041234819632668487448346023678612488862088737694463861025511357395850737966264475533074783927072540279549551588312000012798019200737348507692183414653348097806626107267348277931373158890803453969452566979572571823744970270623315784715918577158883688857945463754537668728144058734498607907329219549418193330425711069975493724626819047329996367927907045828426048753105994398103973523948334258387842744578976582944471611414260391560200199788024083157934058139229904888252742708375717141283870607439237744194987911889566148601944062641841997720357641804591809777642149510691154069005694730997179418188609550552116258164089480378293060236803195818157373164296686206237320778168328225955236587524642782557130545219734521347588056884111682921658984143421919171978206276881351506263748100223573678920193261793136685515343047356832134958397197833754791204751355537381379472835816939014361436131433408635075103585568010527957333705726596978382797855401940361977815989858255834814264730985916155696102991381365458289325617380237068219443823659506389339467684595353306462595594876256774781643604423975761681907871195006291464374769033225448782642853637375916193705793474794453001277074001306532902373339587076552643033550273753009539929197838454283211142075286526451161215646079391627731228226258114091465825483515941147555533244465222254751302296710793324111756795859034193202967297404191710574728340852564759008178944647281745925013480085548117273976815860622621031843076142724582374047681408206849782267303007951296044379939802226503846474032343719858455007334744199197366072643828972381249189804029156146817951001082196470935020130051892699924118476981636871154554931352937317577558746862335218030224646270949611111719171418915340908618347492582758800185508917902089016521985125822356210167652835163669666300076064934427786168894319034713402014000171169716124148204852968207666858550434036054950459988882767934357806534079490475133082845840761314510989746709725013749360728058084453638962491660386385130970227283220683489069932333210230750258856680478000080598339803477673138080206106427227428801424548026170100572240470758760530688935925164516921634600742885952514697392806235402128805346741464471977049442445543085409528826895607900859935382211236670011763662962088383103190889158847277033580945172236228727954470876732602141664726476938939131613503059382508661918293157961019262824553943009850056609991866276304505434455086029063785032441261343217242211340050570948786534661370769475880739620573001049675945923783883934996568442500421467803365131277494475101432144184333114869868637806897311961290834049746313731723609097337852831495605028464997983843681161014111278261220385364665341966775524527876904681578136559186353951444531662296266993300564094303345381644641884607099455118189969434998100063354579488311485873656893106634304763986408372640331465157860501286353813348856618371212203602246669192501843556324988259534889465495362668481696468077242019853377657015833142126518549230609816329971955108508483991352805908962293266451096777062030894010661617460367858246085383754160249710015599534398100354989513149818154720625028334379970299831430392040152555752910081771909934378226504704906782600752427078804249196598243350687432521940738607686824668908185731064854130880086166680379423534835605480070745786409382749712053578333247738461284085034211498067442882978798022232658448298142222872977174367014828383966017576200845147063609269815163793212415409349791278439781215162952573204400498547070214454653447713812176154349245287313048084985486736754623875148717723670905422893575985916709338071070273575705989353759995836361524189280265186345604967281707503112128725022743326377273515495957109728182073698690924377949542972461478075322686627879514983017073122379047515741333014297633341585809722960652178041882119249856994781000056835479503638198493059390481298685750375154298349280283176948469871247117936002033330967313961466940258856072290973780236752283051614521620448607196281351140542230938534237679284579557328425212617883463755092418532850191141475226456016855153562515449204733640124966946330839111532111779921539122634363789923000380550169814020882710925544898435171118453009382219293231912413981901749559641980136588791843361300378658809325079791473798610724164928734550796258570113219335357401008193045759794041670533763151708489513536220564412888700684903480966554243898835066669636341386114842792716381625462540885933871942291920658951551661040597779846864283004865950987534082470289346962601871791165459946006525191363788949234953509017636701923416658104674877390238247457189490579040972708780408107964141825785624583941644447037415116333349893057248200215940587024614555225501326703339733596316614161871550817087657664257349200836552413308623559131997839718941389355871516170268432462852865940206086645539622391824601268725539898374817572573105875170070720676772026832736324105751328058924980409175626917472108670735677211600704395231563440458421062504880872819543994645827791792605513598159819836756191660215792940889893970247934576552120849383082367060957439679202256283151146866003950749480072849096535512393216037654287561405899411624025187941513878227366700310030441721126826061151190826784731124011717219430362601795657596723561267589199616861081466597228138735561633786843613059886739505117644453884179884920972890204183447317771912797979073517908805636992013373170856642746137896855536876663819234331866641281424724443466480826771986012189214497578857615540776811607341289421139807510602836734447869383793351326986559558013037065825704460386655002836147440023425272143922816912832605565241960602148885823914126773622520424010501357052586141074793212067795394069925783994410611006496392544219922281372542170056884674238850179216546728746124849965736405760544579095640921257155280092881839333136956494044814038080345288075844862804761153804346746540727950931535102951372909616785184616358563904348286613523401159031308306846464335458778341509161304061859335700604112629890797495251958150896217020023390176449861512540613946725002248500770621961403101007502215225861940310264165767303427131905072933675221385195566425691629124338679329028816684137002146261259652351401351455712531686144640418033603069955791211017429217228126646996596147418581558556202175176930073335400110520645653033101926641165493386406166894687283201908790724310431753202920962539979166610920456172913091920625224254011114886628334955647373014955301417766749380180660564483769090199787374950297951919018397905105826919086187506636202375575496206318103046774144071218592467463455423774941125001677561957245672981741823798827552126939815471211970069761223316931395295387243013980884111995169585650405570959332295944407722938959083276515933651677949094709060861220499827629955233411477922386276541845111157841791239074871788126748534594353194467421169845076607942256556292099833517727626574526807888834495576575068790877812465810820037464583394619362446417102637049569284698816392582619824958426582388462368524607778641636842192302179533068341422798818059185237117910688770840828137399132939368015045812381300563874606391884577285249048167928057214855562885709940575415488855652990361411589034955105395835415062123904409404926462089272835128659956120301147479018613095053182743895465075269231697680511075816814372580647294169807594258721990771073989879163017289182530214800417229123253279305474724439926920759191817123118422420640342132541905113022149574338302427461939698180267348631458422908711634151496781381682148776598285962883189421089167782816480836271130996839653048460666126928210993659908630887933513672399690352942563320907423778549968356387503694779154443159697466179578473486073130243080186307557341637987803589969255601534335646430568559958263702100508549134873728364317022502448927875304558249693023631839308006279094657041650460545333842457216243781051540549524676040325304590506297459574002489179671215160041293094977275583352632793329598421167938050805782464407363998576537589456446487564161213396957265276856663097571527260087662372230517081309811220537504063740500684507607952463641964469063341009109142813905512157931821401613314907906823014866835658940898577815517907828370894227386799387334366538902028156176519770446904367998717487946893343314644609264860823823497204850134493063186714831974125067830063080075366939234575939052381974200033254462044263370126865769653927572192323589365872958693844637056791436061111668583025462337625861439923699441971342288379951903093695571067229707114907845098926450979546746113032982096603502399723434233243541501137600823598532799992112755987251220825991511546810541233947943211779086452836190564298828441337831847737264295925190177675349481032855012430590117342437122511210299641261276943240680687714891160383444053646038155656079331478630893444319959338169794261389843543763671588775623679548675308371486393578596691820367398028170622506442264679216682273023373598786493608711583634245925084220753201005873271901087887024952383474728469371196131974715852445188243228913406343548638482690378955707364535359968301398518695204216851292522381838653256292232397328186411982934040908511367469196840169404539282439834219568362260427946335457825671191589693260635050504453768606987984887221650975010101756908451736999136694942449316683683326434238608610462082197076879231693589454592910909895451565761756612413858069683013342774555582845808325250565008388487501953607388469162778224483704173248653503180028528041534032893340830147872114899351349790238372748187241381124280638594471651709760563205135944240412586999156051483402755342991137553084016100204904159269956974865021437872634706240974725027289697217547395524326308762456195983156408610222703436943181368421754179723171897282728070381696993004932226422905094414693326238746332836881702292131980214293388050436850163994817793768346416025970367023987935357877965686437050765554495519917387347781840315775116661716789910707703997435176625425478601544307214593734341997846957800812598726454809032190499700728828081249669081791133067454467727822558030111115979164024384971576942508091630745382222386383147067307017214722187626972510921398182348197430055593460782188210161160795859370544412972604732547127751542852001375455755143438694091799931152491921479566770704881579689415753998379969754323783774827177965420076310710390206168377960063976872076193240702964380950877510415828550010942166166417612140937533393039829597179435000554201122729056670040116753298220598368436584801912639419315707410028784383522759175438519308469015825573877317875273215286860974155401873582740574959751987935771201598582905227243760677050110054098767837768371662558917837338761994719867942412098986357630429361676978916570385590855906103808868457684551580587172872851079380203755747908041411749702656053852581808046272205539847417720826448381716845654634608346039164106531711441725858860962176677013159815123410751777119073938755216575346608216563832219396865459439602078115884394768491087439716126096343107927493585877162770040077015992628434149572006676517609097808734999366736349981057607135957778898525842070535398427294884758679957871510820538769922904367956563970926067039424274005184837253792068661473485597928489900220041686926336491488065550151538996528638597894021136828899503538257254150788714279019370733819810856923460596730538443130036162777466365714938295692784849423547625322244366199262347717769034555106105854979202969987194504031624749107511541085205894634134538665704330841153975318266939172183543011356448992398801422174145072457671395859792550470809430568730560924723350555957990460884887997684475501279605408677647730586262859761020786586932050195943131043833274934610431315554603915847005949002011082841081707765825876045529267316964162324989989000654059352089467647089108606483589469179075908550809398807749122666312891841764732030238048262189056832536326824729931817151598297868167137238186799838032722609243739389618259140157173894900584309606316784218612294901141476510639499922119940278666058328522862465993310633729886486143089789008303997884303219990601172868552013504351925508331813125010464639495789808368680895505359461480905861714920215051911107600793622876515277651605456764820267793972281228541982430578217122641815668928659158140764859850727059684416601431372238720480241746252550864436191151070879204315883129196794591110585737019624356276803593736313059357454704681362241232125491148113465660978830539264934627730017335235766438923406710842221610060895716268914201159703235938172045276307698349574337048137661558391616707689066072491836851002322408285691883938369183949213229413901952383384585141415790580403591188993015541149388486030334879558353127284405620662445462507383028398126019786364094090050546891447660734246371631659514806071010903840971572583550076563154553300386505995432130654553919269724048842567561109902712335738434784300443136978562873155552128556975091503653127780260560067373775367348683773702921459078081092330074634281132018562551800052384151839160807119831132357749262298136767986073007451719685599518005250459466632401466064950655004493656147818868626165485928304092927252113264784405038972602976528810643270419287791310308775195478256956257823083770240419276173508194638993733652479657884833565735903528389668788442766005917227758967993655507349984747142327262379867648655273298031499980139850440388945330879363111925713876105209697206204825146318847505690139497388282379760392624975386343224988163203801319619537981901050180545174301146823152804017453767903428149965128416745288171048278637435021075975202204601712536343620979756409027334753346540193131898619386710570715341581584371681743970812504629556870907970381293433275904360441599662466040690981746007890743237196959183119509574677306944184269518058508361095866017071042451648868951856822787162352806255792077604225442788816374917400890413262829249689316232908065128899272296655889842919506448346932798915801307942606584304210137414637396782726021027309772395717346916429183340604574845109567589657100786574039570094450170332472575469368274584258783958936110625702825287354414258112069548546139390638482423654745201282613265848527966362607181225769509226467792262102125756952813318295484642270963852864509228102088728403594935833757111760103880291849970825870662673177623550865469173089705637396551633807448709490015461987440075220084928805500064574361802611026531341512311126200155889706731363521991293582369692711623479153063444674013737398588217487217423065088870456250910776079835651689135870094041812988981023449175089006388940981946291008328852830726813010553078883328101863587096064062398806776482991072202192638772385111959379212761864189894218432519027683486870095938759148930166566539389575518784935800842848386809723708861270038085263416676755985948496595483810053863577838656127990939538691669211801713936015730866346105289977382930333614044870776802981371253533969557205600352651529192950171126256100893998853599441843607243079940617213149615997368736891593397370650760419818011873848748483917950807454790161322708669412292264990963999410250115193295756462284204488424397859391411844440109167624754097724408121832937476179810073614295598594038616511036719496119728505354612586373468796022196117061040480998405609639714815387446516369537867250547001251262676973533845685772229545478297070697415719200472900029799033707061955856740645145944074485522011240353479884904289206117654084756171335204774473878355307849555197203162038999721624913910890061014165629982846226748126716330506534530057749474502384731171214523255341219030211580137451041916212990606733191794752700345482099645610508593757865625039384128263578422454791374629708866643547877206619909975240726752139674284060397575053146520283596165051975742713391814129836467012173747552468429182759413962283642602700150935180531706737622613085275666750535586023727075278572920247101175883266294738314626246304182569662066222009150246966554342419506077523061085854282104793142676897737114958308754192459759544560165972228123426466944106431221020844066873023459273002746845973157418294050396372388817598280580053173619047577023342741138181938186506819117832590043522365384838678659683197814033684142962914303377268318547039128314368251972648164291406018118656051220410555243187864253161569937866476315488576251144538671671640557523473629053069562004079901104941171478308655768870003599845777795210671467694756454045366908859094328159675255322342177841545449669641396222326571783925727956688061428602770183880393822698611105080757472199707540930471097682472592223401498809260270446123588630794971178763892526023875088248680545843543900731664794376124028065337585141297349305402787552051623741107099218036119338310207725987270144187732150115823738011161567508736478596525340813925539217450101987087578137735477243092304649752879838691719521160319146678185911601378586451279867606476155297984952552100046301127228199229594521072627298047777575106988136272983563369216502068581883104945919321318511158950384629269692204156512696047352657797690438918279222498949818336522652360946919719232412476008139785397957176656543993435690799411753586520555046461516701244107610361117650653821788955610462721075059377796439306994575457462506738357978596936209926669522755187357906410985877113474259431793165392236232110747109322432615330929119037783728742776357234794187442258714777378244067889973575877958856839388521866055925815922721646928621605594699677320637328213622959290264452760744415820063910265855040120227436123419205181581128496809838103080792807612742604671325003601048668291984211555128728457882620962202731616883519354568540884594205978994039298451676101169490633774630146384563156102627932911588011588979011905754647277266951818014348574533964795135508729819455008951609296701846111580985620128513065271873373028104086604581905401768728398709418640813742100944159699887918756148566979295513715955041752852605222177966467025537810628256814014345368506566014350323695200861165253097641400549336722933584766069400048499216867938375113041269540201294098561146258394664871054233495155331665370364492219190139103299514900259126612297806821480999760253206507789600753512390790982331010968520449499307081741654088414030166935508359616241306881384426465708796736737271832175131552806070793383860709019535143118646292069109630614045254506842817286640813455513390214516515746684336793503038067810271328458775470481819036668815577447069976589399902485677585353259085548467781358517204380027931165718145432487855680447939711817862341983992161206349350236603279696647122221737698684111992334094293929218748922892880324020281122748043063792299722860491381375972477730782440842217756782639835246528410285636150110453499865221275939091865577930422213610956546540398299937174475642718767511853633646786152263954246722466322981181123394640852833754259448227429414686202931549869449759003665896894710336961756385126649001699283043209041686653010332614331661866742208854953621391254530783657924952691781870975397078076619222322429874671533851380835441519944263449341810198996541086584759579265660404450763213330721722739965008964238092143918350112710729820028677686331082771677424062514504435373355433087858467283812657537960719825431108291549352400019803561778463023601433204426127206735054404687307256619432512507498656191039355474049102414429044182318399143473519895350056420189880892733712165272157949930023009069198263006732643302182504226514587410797842863132946282443223758543635833259580339437863295056477449570646350530827881903877449593688818802349226596816632512529259746950121303177115518977441694225451277573524397073053129667031813336332000443240537572946205629421919139080999717614601316107247110690348117857431505999278539051580906919795648010350045783736265870808208381339608233010511672113777889402090562642873345284581989262017162480834379437463275147882155114088135114000443633489069619915883306413267337496936182645417228629232997584156058042368669421340973270996629014495309444744159528201008228213483684739247620286217809406366156733221021485265065641139595096285681050290059646708586851704004285018301541843128614814507766976679655420848137374290696255059851715431899772127126497543883863164397463424969991520449335988903661564987191994565301907088038475774215868258532766983620916510351512748559837275308582977403837641095648183179262400029175536011107672333329238278473364807712606958776136456836982581942189268826399726629000524385986843124778702948910178275257502076214155972407170200314348054119849038290763501116808631360646706767077242730230425932178746285114052175467899710262532950981782432919835117920724590469564289675603077597008191801379874529659555786631549355186012017584746020282088042420723622668390874457105592948354580034546581033503956337275349733026533939230825280009760308337876859820729747016360671601541827349164839677452850081789638513480860306827647208010575956631928054310418828503867677560081053754730160627336143566423293229532942789934372323869823600808660943342730426390614414135088642982410621710715574991698193859483182292837791091875141113117155076010082819948090971978690770823517105869429102204907492886690449037417413856797144246807741231250772705323803191457808773108196554801934921627987630481607983134523728535252976303276600108361940822626079625373806163530141173734298010554587203580800216491238027775859363783209120357789328204644775685425851480269126463226215379966464325852495701430626218628983121890206378943176757200253546766283988230379614027211018838635980533763927209453609376080552895050580348480160549750212856086502852781232923117421087048839734165247808752370515577046309338975646166601171260315384528338718496714464123131047444620950116460352521738067183599772701552617949280426213426591729700230655871214102109775327650083609826824074773009926336995977375718370857344632200351310963004010096987026225510876514289491720346310447835298341998566961162272190289382700418395941213630372398534368292151327485408263215240515073796469682608358674016263380410168139223843308088331468194851524404401049295637985526874634544288981425513509667902899565344296995189138912114385297114168074455091945313353310387384685562485470240477911467419306949260625979186364591619547779540688963668022665521121430081097787322965438846400149719695503774139382085775584204771622381670790372345531331487685627837482192241015382832838699844665439455298509733625803328302371870498913860289467330764427881581791710899493683534123445616147859042530718907707625200638515538081967288849889316923534212143708003565791183219899432638236228293321977288099790852585119577271381871834796123117137191742543751082612734021333399049610116942892770535550224488121001970220699140532043760715059068726574944082278036702370637898724000808879571307437387487582310115718735467853409454177358936383477395960602665334982249174154655005266477606854890422096870308169752830336786225286222740164061211524838518958044241140684692346058596074996557055526490852505956370853493265986700305551967305145921397585867916855058429524790687410386965216656865029401523297880833888676384638014621476484644318112451204428212221212484128435245140545327599385569394967206697505874838778920714390296187149342872391331622902218076317100462817744754412557274423060796817542857789524031199698803900743130267684001484635477812132815525279113722797038466695335598616776781054658038755080802158783987690998718643661032262304707269485726754389016644987530987538817390423360688170676643947383223420868351960133112846009508743977629893378951055205905382004520066949239301248264642071984142624260315520109586542081217243335474321557237410720561991112686610707694010400853429778308736088807882682240325016523137823498073312483087575106634594256544541858011424351801409394896998568195726755257047132953119064944601113963321376978071163162840856813959848820464901509214978289383593003115053691708542619065733008994781187136771671478406597683097272936454649993541841188235225517965720939621742198603357293372062565953383903601223407847097763421618337049361056453300672339531348134903198404971416613753787782748858245547502110268598874521895429222780296817246284795737685379231764919190043407020243430263987174891288719168889143725572144847045232918078749014583101896470854545473973694087319327681207914010434852555899806910184183417396550486163086760601727864754164201330939201541682948790958310270262612568240477602220160562692400286328920289068635762656449685125642162271849155905012004517460515463648847523718492043596189413572040463956183372656793514766012175465330070507126406605221323207946171578968088369962595652770061354700500146119567182424295293460950714062158173163510526289228742529644399989377738169007876586307418516817614964006577463110850223956877834257922579362265041377319290263720020132195521094243744427819505460581508544466562410489488009157367628874788705360273351585553709569768655821074428068152620554120917571628606498584389311652897286727168384793039770378907117641611284035441185698826413389610772279157846832952539331082720464925414039102377288405734955482991162042507397151445046417068895756917386763863171766034678493517085153824586831347304923342700387619918175713840495802554803897119281362705519403980650157918230688612276156358794855238090683056366247982798501969644110384793199795512819112810438629147589266595731892069190038477111378074433539334839543931778649960476601051076054678625856217696326332262797921286880738564781565525376362856761939554419314034414780573344066265382068190489820863258388140324658516317615769870340555674750163373361475725555566204306292651004860874677358687210311335566132389730598736140856148469500313512632738076763088172998640047759624835259878674129127929361025124120571451710869716820058100880440298901596427965392594032161102459974874858376918078484199029564155915656541239661046696815421452029104324016842836517378958301999719478306682781902855465921095481870432252290513285581136827548821686491076035101616594619305987865252473826676278280667195907081200499770109455473532578039839023371815885559568313784675845141578987491258534599422246957095491812341466034916105714775680875916954505269983107000971905274605203331092856873382701081130686145765019831067256239091832863344895202694584771698528610448271250357623332441925804078278165533658928911919599360013429335494952001665312769801186762050161432661606976426979920022743064295803642386281917303444420237363896248530476744190931456462994784400127668311217096162637227389188958263629233375612689841004725797076216486149965388115420800166969108559170247818853984114807093322593549630476281551499127992904100141290008750543316395573336347819956869206450664195996344721361770174691958449307558085901915253382217795952649130183215800671930833463900461855085338195588503977164137407090963114518825773907457885371835233075234690500367774092839372222315783727627511540973131756314911908764824865948632671511977001539767606005614746370148768190259563865314605900667661504999442198162391557201042541218872425653230183349714991498283472889567877804393789147498479200912501054142411048285177878327540418066755478723141814809687025409437426355889665452572948740257498446418140759014136898120527982904188594507475019579320059646387581090618262426526341704409390153476648171174357925825888122309541114682059608132701663531270769341529798920431496436235111216642425178773598451477804131251583462566512953349662755935500448822114275870221812428299305613668058562821589989866303255526386527355487326107692372369799556145436833533532898092135728397701093720053921223361962617319339240068471961336556417323599421434857782760271577863007540255311595667794278216519416968808151129404316663301515966620400982629515027425612760218389074528633649843980539767019928201701827376695635864191080092039006815612917075781264840946023859159811697340199311071714690912644864897833616921095017956470700723821743758932989008374404057383169259656877708396333547964565346820029206350386032416072904978797363544322076141224625632789958467675982251930051428450932311532541606201623124506576779514128837290523191599570905364143336613083507612591487491371669511417857280047931520610553075528693452989649027028886849119526092426405208459633675159749212719848992722132507812278136122130244560472372519711728443343759658000970009244176054181682736719373907409260935719097800997910308464101581513101188402779398420881422045141372680220285839276794286473152890185263536041733258289307893534520297445409834744575277315131082466574831434026418486743138826428948274048028220266684812328295287551760423826354286535223012733028027568631676517811534658786867202691545625576682710153421084418754434698919590691958546986248865982250119119537984383894037334953669079422007783086835292348181409284138583259585823659280377896298304615010339940309477256938469468192215765903354840062783593758643621327457936472152524755674130330223073649200573781877477463236646268474497101508777780380696750394978994523725446922409983249414528074451160489669743108624055376149028898575280296883822064661748248555635629557428790617789455516884817464942173190394685367529335141781435493158566658945001089609396006100626479008081962403220891706680665328623349778818058202469702616652868961772588187856113918266571019432084247528641532128072606548258101167702999754975432490540624235549320123784743603115193958129038487955197571859101189638997017614531251951468772052976682520803507306367531503562235702432317784387143516712109677335072613498385630439046000945996710411197058526911842482260411388079025951070995076586871920610755126594079306618497105133543385929688407240169253034389856258027760884083394532493827030949486839976832852529098382826601252390827109422667482438793802525817760784356354927513928349235210285157368534045030749705640893855712640570391067331130818611797253483210784752847028673005066071568649647552574387298839901059766532930469697161822311417890415556773986417172483136200050205320686370762484163561789213837538017574261030501056760087701405300004129637330775688442932415689128923578621491822416639936935974116556243264523583167738745192355181861574444857938871704799944149364788173499488572534341763849730252372898828026017511592088214028599091833884166970945709776035610390186640306161168837405057433277469150273028396046928752137913217855087418674140748014564052163310621744524462304341794999890721737665209301505489647742225556179284373605510959886526525568544673481996581426682727084434212651655934115199722087472801864165570489646883865513114487965371310243753146680239879655730857380478263551717394426855852333190184169899822483506983573165535096722725596010560797488080411688309468901861017466863112838564919287867395315215249876388847688260600161977150113370789537943504214341587613395834891938874223630849765191074734900499146006030298215393715021529928848692871580004440314852130784747513414368626175935902318673218991583526277573027512522786185845212261498497885732254549292591937631235523373032589833224817328310724404490189501679853480846037684365199069524561438149358633664523429657818429411739154860058464126340342359220689423104769089253470105617169694829714805925148459752629011183393570825216043705202879380313499148385257269118542064611927921213897966818921592345516325561695482413477897021670888583333524256514739468830434787024188286211189970070984201589250184623210251688565663261723720352864320152014454790890110597281416430553670407889870618184257986576572431839901482423045718804525886214852588565659335544674464736844380247993161640548659345905046396338212370725648644128132702161549053407620422288088033755858393024205761396354246330409492392304208423041676109218836169063043182954527521215165992054897082262738808534027815281759522548446071964287675030387661673692587110323367911852825149941714514427106118194471711094643512478673822488762897791409473055812052953951160394164386822674856178823214237515670122905093442419100355024312149074427662634983985222882669664439857099763599413404546052215825082569198023366655396646598199487853967720724836712826721105859889197255146339581479780559329673045157624978978675386213884392271102472470312340469841916396432922250368875545097493654464382732797176013731295358961124999057119521813171140128893804011174016181502484933752806217820569788165915349330675327800625059254703137328342635772906209936609000483351554168469043894243115540616598608038767339637594458389368574632610978824365817613381733966212640272432710210433191383342154091218527988659903243266136562754231991676452285487552812397986405053679197580130505789292866291905738246388870072491422385594300359635222214638114057947556875354506815583349395854510567752589204439916071364048304602337243643622270637212986791403240675599745126812435983877534721022659420645876885364152469595832616464540008517814844609164950814980876373740959767767730634909323816075151172018611551567557777043669059633553322613864496186281343337925862339425398733715748065741517195099354695552274466473890312857958732680858340027573892600102458549836477386360024188273245803909099473365195036451949837457075022851623448335485127609808792617654919024162088349339109261932071487071428480137268824625750167557183153850585955741888402992592807957819262720385300186657481329605284806628760640557539614567587954511789881627092240900569370561459098088485913260955206903196094789892252162459597544886549034450350949525903293785817360359816350164581803667609214852697668726026833460695660726498363868368001962035112658927014536201141641499320755562402723709115591566631550931143082086940165191863904368097303668621872325233990542260400289640298325935454873414581275004642863880719886007781685213067020357159385658290229838008975733594826614588584178757446602821010758865532815256319070071449658595631708474692504290601937056244933228164830147146599493981013830075091919805733533657584092493604467557405988188913574973915263782517000482038058364285345552861730376074392130359930435197121399279616781166311383701684180596420391357798160860326998338661601872958968891928356754853627635094714547114855812094983870538289654297872881708223603670365839622533089546103289813347603552983864078289146446747603998293722260847459086122157508511781152675958447491146803980705373065256016842754321877471343283226134306052052928327411177816885087573747635811645819678625128843105833843302745085675415388224543837779056159117384262970428348060578031780883320577645721007314726524161026204087322720070133883428708596576700630034831973330727925117773188178658269611012157297515380842982576331999504907585562913552823917384588011998886901728001316285040596351607960965864740640679145537835057121638671877449098814697649149999627704759632413219028082031458082396586634347664106955775966161164887906360321284062157604340373309524931986254470221945879095751726053199991163125236309518957754043592004658104900278029597551721912012573285771018971588936881256524252556726046751024115211805480132266953330189613682857268806840914466944197976204334508634150127963335123734106792217429100236070449572304040605526576227100417886580987780228507311939371029993706291818556633012939993567083680266986727985472890214906722698712108211348670679159851204944274310767242663228442256674924217566520345669664147737907110166304801382534194043686172850221139751884971604183001515059499718814503143840131805481838291850906986644365524138055609688194754616681515722073667188701146176439388521076295039876410255224184091684909770746563876562172673444138052878856474446104835790602917763838925699263830494755601164889843414538130132837352971815379078454534546099726144316919434735782204384359050880829187248434372400516640784304066869248716419988659344142971343510612746856348896449681401762994425438867199312303215348562036054082244812201116375341797390722087646278030086834284154424823953255049703150255913350071131733213822077379032962755075382227927736134275321560008386264736222200557240451088188887327462268169375984460301087075879288341323962739602289710027477158646128885976481954730871528349787257418100508049554240318354806596867243634076899678273820691526822076162847946332385302962511038227022149752786203332154173678742672135982790101641891609595769809831374318591019067671798254755875376049388606247408044856597780774949801251775133037036667908749075745193536204971890390701010239600236730152484155458639840551376546827586763212940053674558598252942921254643645929005572438170589734220590539163019889755603347162165733698300431400775943483649518111676277002931972857991899854845646915399146085355354579949236779134069604538181338886334922580846169902535540580446469875692739369714849667476496466229044195513782735602225461265328143593730933183820556214948619267707706269408590667272620054342103085768243082445788558193910482804449187631138428844910114003232041163288554086384065881435893380301546849973303881848053246414757217062843828871618481029763703863051066960771219235514714588850902432159740911051668023694716298994599138483211793995187400531968857407379201792156531403874818453901355362231957209842021563613539182752389856895762303618863523904576858077986020139348537173356503244980569078732396572268974878981517599339518918060305477654770766742727217201675752440590209327162483762821812310909975688051175561496377898960761867005921664357713622913312885963040198449913180630512542297387555519689107105365727639026134990402759642707077497988997162787158149703640624113893902667654506837506602376698981783516202622536427923275700564476246326304003043121387385320875813317815751245121073744769669767651759893965056359123073186917869491664790392785064391451628072516387989172838379081756115563196606968589601114984661466760409370400559112827584554150325443868217137757526068068473463824406294411053869535100159284408426983813993452918644784146200685828247255513488725846112275066064885409247517914643677745806837936720281914097390631568472202356205696410911662370280742723034204146757405846043671322958119942329292096091531830376728232612824234518085571401287079459565604017774576571491820099899165304076287473211818193536317805900114896717613420054932344837701119353523851420000023396404542888556694326944735003484253180919034682659312704501490986063663758467351254183819533352308188450600305979660520779940816635805780129675694504916338957942174903254725933449487633424779198497851908749565599353620506044121039849128273148623756473763726095082577809131505385833712093511644882739832051710353070877212435977128408612667213552188157210363429796975710225333532590585738149996215442157368059556382729877252590117521287340196349936144718913327323693156125013357690830781676393979188840995609726372689882191698246460330805681806665599898951855194351858985765375774086469321521413407974401330934729193310699752295016886511779300020893931220853803483434012322369671323401782313502077220971867904200714496590269044494158605995553289875489725353627141986679907635931149922034064197948318800377900971848420042260996706524123314854976208408948915979351814408944435508993422766479257850043946259325217304071839670906487695759295262001282602997927626638697661401075852179628819260410643697833992248333722830578790454649790109780388815971650236672897547978601746170049363900722256781954224033268329934259900752479532553165306118689672230660946527743831313817167090149720180447950189363420525552546736009011421924312450452210189431961837706633367920457865014980488570956234595390873377681787687266735184058754463007615053157017927741922358581865250826412744821835717433243727195871864572783353482151024415846383838042052878086007755194940140898569868868932100787986852282431116614814867853672708486309063687547202698032379952389990184581211077443177563115873073507705242367492863989563512936406930213829594982226810103394986330216234884478105064758327375827077486671635043253264213834629696021622017251288345726481261121539829151449478550815986323870635867763961489358695875335419115499087495700992638481723888034724248744068792804888806324834216195035312885645283983514639104644315716802918626254913542484189238366171609902534480514739108327442201425527067329822868192365050234283015245898499268239803542339104302748723327870984402564092821617047833586000763808274411329470400799313667027718935206571687925462122618925678544074042241601710359020251393401053810483142831138005143563719331615698997140448438016309710898435907649974375940842783809464345328242016160660060113901732611697668914392657016147841035997849261332163883570455461750201618765832900576186001380947664006022443853707808184643924961777793214985499023903922094977959621443726080337070235614778824389109035024872161625176172059115101364542558705818707537291235749383061353486854747462927325725812886318682814288835415691411992183596661143137629432384428411901109127776225949966214919433291261158130762327104549932714853561208414968365755860247357173599142806286544399232512523849303630741719402961486111139535273107516458843919762771738606902203324581088759301614472178736036394653429872591992336259937449359247285884219008535309770502696848012608755291555507362112258914528362086535458856544602498929956639248717259292746809113110388505626859685007728252997644348144070121112885946579016299953565055181725954083989033588601278443426372847346011427401151916662712912633638831400562614704544411703150375405829826617471102666770252323963927162847578078831313736410282639261832473834555571756333916774895163073601418097061542436064483537795619913729692800833056940128122288068698383659362386787449807596424461624969292054737194573565382991609401396707802215405336147851416942130023798174543470146443284600871777483541045646715659839396456297532814800093498021593403025162884060122598919942588353179889473170768240098256209514977136991060029632852351985783430112806424746350400101306419258296376509957757063907262429167090544338851998064297869072756614814359625652327757919390546927756347270247521223538984613528589424711234513321396234295125394645831376843863321712229427952155343419160010967822995473144275060455392822552243810820797911179720081124927417151457049029257757114858418937593425207709588917532329001677093044195901761908143176886308016940214675249630503357029026831978333481373575726461641822669032929542572018468142679009940055758638961294762011775833311857221182661145726662831394711788161432086082400371134336048528697241319406099097739578153987810334015611954811090372798486795833350751729484342421244786488728854959041931749854049706534036833842085571439241952536821005638014728777586307328501591876471330241922510911667826924384784982606698478920225910138203762947276300987571223267104885319387139188369116754696602046474493002457441530517687915330683660054631152300496042053062780854038512122357902302468930644205016680416523158322826197271991739907896142683541851222856650848559788467513311838477227039511319178101673381925805031645319734103081303163374803940350088193753964376925249054123237919559676470671801731965929005343514617443659531032421173110670898926506382288643877274617837192154777781642642667260334345018910460844421131523171563334571488624823825112114748955469198903893950984186621711777780483534139572579814815208368352721578143980342404503286010889619479362667607046110796398009714318968785257335655493914234282718583953750569429150330931172482665698492758588874107993850672441805578429198156699463038319190020000971559423055383317336951881525388427666522675690383854746958676682060993740487859058456310029566927152988892178966949117009929862054555531638261751573750441769217953412715225642084110199209833705258797904187202424025703367780840913423276447559226422481680455580054958637921595734005976050105701325621674318691043070847561843173145293714799648699582180126468715900275252719622312387181278616618836236344956583860666512478862563779694049290358968204773277339134635626975109183971154426045864004755724791400257715376493607347495216798452105579547358132207653286018555438054629113090893414062097702020193872396710848854549213682527452455053531780690430228120281548648649610214618904340786381668891428259439622327163329018494187331872875134262337557740386764175386644729842901180627383717636590485296251759797726494812430826762242335027277395102650842261762698107709407793167047833206351903181353813447626976798766162744293404157897104840268764027990694109920724142542233681404795966111327619582302108720518484003760669814349973717436828106088770118131034057854814675974245664316371742693361825608469996547052115739999318686534321956296006728625446377386609489638119966540586703495543978226707761982360008927389996578216243044973021572676699149072146270461604458899344307441233102098364375956981014579109082258462786635529805589759318790887201558846008039736469319087430635461487367910318630399976403230941175915420140511212950842043188009627140843083516400150769669963279214990969679949697013528303488110054227984307080422798847102113739977133101751739651284984218252384785338689501390400231946669717522758507902951804935467896596453735908772836293989170032762176738384575537108734502736569355723464079434397018701409879986365758586363933445093628014807143522681160229972022935090724435710507709327628135535111280670682027017525649156665916935965666938521778692106540995060972351856026645493534936568226410854487049132976242138513238729429792502749495794817789281594360120434500469791144761904064947699740536760291503238261419272524920793774644812420957991671503449111094044750249647024151955618491539379939748473549757593798225600531135052171395859347093189969768895559207707031798718646015143681135158688126538397711209005475211131780112360353618579469299877051410274376737877354925440493811307171256889306002680438709559884537606235579379488985242889680400711197081593111469845134586526951351190699891455041993153106383445220649197098919832715414943962366187057788568938233638451777240180523122605673995454907704947163021512274799471614649154402521493704520770711237650821936755873739416206639980310230361810237927175964838291527232842569717410217225872662551789277941489834454987537836967224419601108651254661324947446731361156695945518692334649091299214412742820077760296071759390445668775700110483799707693944173069580540197070140418352665210147620488130043882033806274263918969032117026670599488422975363877142604279188934349596526454907318880162659430492256305376945459437441999136832564307808504140129354994925291659605379678816495496465914304494995492221582574133535273892291195551230040236013224746731395230714820668933015972625282731957222025022121167768882666089313587097902403577820333178140282622160062670254495415755352392472429546611306633887059558798127191062926912829701733267129736388134245115725119333603848031756100536760247296011036583057551511098690335707486233796781649622907272260537203440862733161903544484500319740228609881886683072144293486925830345017874671695749148407174360195463981395684950207926459738838532193510977421533589991757519426751794644651966501989592897721710699964916115916968040669897124575147881563934611699696824196078828841049023093906048501066519615478124487174531564375973529876151255462935573785919816754858374173756765680025638668441848487228205723376351261670818693304842090881957327456534917191972264315513635286966489869451826631340892096289306558302622286889984091586243301777801835086988254062453105853779941553687030973987960682560640569400953002743380559519706150005823023729771378707844134398313584794035713377780020563374790237603490334216860471729112266713920377954285837632011847781315848879022488322622109806406868952724460937487622230496177341051585248296527822053725342830728298597451126892478359613643811681432535305277631060731330109710821681911276872909856529985599016133776360695761227794470864874179372754986744754289495540107495001735579933595862717835232726461204832215899952095309366528946744395623179620424604970002520220428698236058405101979857547829362350513093186521337984967258069246592324939947131780091487824836133276663194977960606918171581225717750823214291722458071176669855959016477006485930008141287333708934656534026318253343714035450396950812216358293008844532333425357833686877116184178022687606526285976876278455798423522915565895729107989957743139470579321659955767077101120858476338223691968171356595225976209694430948038626624738114887342748874005176761962504745451197968371173936663076676496185631725530454463949546176556598906370574400890243372112822320668361735686198275882686313210044899855613968118704185572273978391632362914783184348458085302796260901383990742612858616113877515093864690320051978187717104243894688846365957151832047114651319839968975251194015779911716144223117568556589776370016106582625536181884254935033240954699140509664005083981996114592448132681355684109988064711002287843688310755264896847169451210954382526696054235877485540104721686024169963248769193573184236532456771647452425639431110367844178830396338174896161084100742435250723050529367288986445942394461739128366348868982206362978609278793794238631631075919065971859896992695912379697929804179240813346720781356545263302207169984383028154206208492966956539449532735580288104623941419272326909869567481829904207497429694949873815666547714064388161216761118154093959572984878538100544294327314423304338348943153747471058141201170693128532540567753963258013020499185889829489473196451362579068671998981916967878433553598638784638112052704703140082689630991954223755557374623497667036445128556421421599799862726781623816254431587081560772890544461323152803892532468309281602925253823851421671194783712758948567023817880510495697277189178956362293018799855895160945332326131862953694037121110332898340772120609137761218850812538385860311914103065354942165291080818622641861281656453671915714051458423342495416385939221379696304064699334072505379520070092288297156012642773632432127441769361186207441117716838307928807849092505527085929341215235267604320954436616512407488157285952649597709605160489892935108289531680379358833196624216380007910459970344800581764994450565895361907018779339176683294503987348861781849783624766214557108629311906004574110842629093537568332161838199536853050400894686080864876603243911193949445643459657748861942408690163246213369671750061560840893572204611837187925320038062765287286558126602420921569992053082523929892365444166311306462982950873027370135417216226033277327717561171742114746240620472128281945437241163283482963045975577239654708796170659724602033804161630314815666599254339148660252752809627321659504019434070639203300231393782151269563749379705292546341842738386990779878161885305839080650383372701885861708588427629413943737526106503083515194776379951362533057172174226765327421574801073380216501822827384305166879358110881316310999668642558296425551705837878419012790720538541784368809769897074210162333963572237826641264201666228373595986626778078252049142383897114265287353670929715160030826343498577414251963787492255096364844220319027919261628768489955509279700421490613486383940930240671208192818767347327414419306634041374859037145784675302514595674570453539992307867955663206589010907704204674586140981862600665222787214180240583212042451896753040388291772728753546456836884039636247422148010022895516670409003171079416906471805172116202663283537396005554115421017910264956777901787625860725148920208283085490551973401496713302319322599918788430271118216288626474569054741871146032125331143439907540798439193312500709942996892405332606416188289674561137614210538667560283694676983955133552648910484345741352197991160195906428453745291891486034661042857046649914619289324080283890259157719360594395610088077665405516354852777374383585269441504459168002354072274531713117516640712647805916539003254299685032233476207934973807578053441368043759096432358634347527865414381092522376409967008622301979720308532665624206140716995455269074005214630552160133173929357730352689151934703737938081694796821603778378193329059148429434002264788099610285776655539107783837792321961591388794657261375440332646895361793090048303055244807351483722437001332209245770839239383189771902207887650006673794998926412021071788576680331955540412535722327114293975833897993540576195449157325997952748778864327230055118631564993447844409483400179431459473290129537972068933759809701356308797596242909431997344947850770441376571264001037003643785205127026604267386501638636878286617676735569116181291127159812090140129617647908514858583654815155019466885334987851888387709320440595148028728569894238158223217496632990668616061865579840120865299368565854649862708729163359278768834607586443047629103947801622752397612856020653903964532367084168309301020598026070168393483473176274705641059950913662109772828879014754307738117190412584206293095328039991235496492060696327162209393690962373762412188053521020350621395427018285570516148144736378026323336551010163321835050740123876739509687902953655748917200192158665796795733371442286334691243058458030690857197726193518321433242123191908605057303676084810441206013742741556317572382305899536164423121820618764069760832210264552978782884836724676689014064671099292907492423952827017776519601557587922869124454534739486286277586093622592113457023640306722264326549288679613137937018564913458073196996118070622367669856484420922055165584013167289564706117805134920527417143366688543330221287161273549963097417224566626358955526054659271981326811026520062457291058088061396230322586652800739700133792980621055515002035045927125315286113517651697698490580980119159328998748556313528285312204711852465062153382590395838531556529399586567908066864692110653300275655713520529139481870170483482520354943504943789771276204161930892521797529504060371063243235546604194397042870738114509786990392274285780645467790587595472583590214486776476914227374052086998791445220999707003801153544034653959586251665110229356004810033649008549081999546992669205581956786156782780672990426932948785186073911577569271876179711240715298662710563735679546213289939729782419807353486524746496528902404682743987144118458821775228519858766186012203238414608899123000000460959547708096972213340507554169632238324269642885218927131995443841556112308206504700939152298466761971058802119496982183844486547045609250410151191033009799998826869218525272545964017789353693537604916770347710946731169410637756035376863575981382709284654347147976214271536737887616060529540209754131091083151802343158239809709847597368296131713135277090268977289848633833709915254883684602167231701167076415276846860752577855736216322025033284540014323126123669488247950520856651762447305003674288433110462046911562769085443796043717057944642860631081267762427101316503982963011593444857879362053782656547373796600999509450741342771945234506982118943903177682634671859136450792556759199718748844003815752090836922600308677954740855663866381721513222110452409661516201202007292709085587438706472176384556552138240846870780428576324844162209635166939872564684022965589877212652438073194146977964528921974939337463483271821289789402062246171237589462768281814471734862645415618663797293482231331300100282466900584566087256806664155459029944966765565688232213352449484458410136828685447120581059080175025305549543422434539966641768406392799385723130429818054029360047519106087519585926287224097016761727059108715468118297782600444271574994147295074981408635846184051367466825252857312133805170820550945123243210736214877915844420284882148323959900042592931184383044333967703133022721832170327113508352237812573988587722856658806112146185348287210247319976477220883889756746494904769965557746024087776848601786302940636549527342251461088130084435829377052949830418233435795046256988727502164323962032151278799017364264948560692575849618305974652645446674508515953791102717114402862357134892840829477921553106459907240247163203276001824000291896327946674605020576612603699153181468834788093387587430580307559192387100519152865315103417871860068176893089984556502091344247645309918106746808387057085081748935860751703999986814931884764970746211012745484455262102616810578863339385649191085673902412847952745465851522259353745351911494504360282343624999690512857646158163958657303729791547591089660960668044378013984652808890721841062708674149488882261233249745817613148893438280783379307860167150767952040212038138860697500150185477339520799578467275992805863166136386284472043746438428306176262944786568381082248809488948598266956158985946590036445730250609059328897417024725518006019584953150607263817261405246394315870030406806320424657887579233994427007950098713834266283119817942329681091849545439334567537173247325093141943479238067302163794475506006228645944244910569222441781380071811169590813475417992711784954369052136813203490085925543558372336976416964158728968165362015028203216134340334474405085990680758258401491584958413977563820236624129768727413947079799775139441041031717107997951409049221982992748105575522624937580140686451365755942387526891907441509532711036891633546115487885460016700325544305602267921117907586021046928851333548474836806479680652151484333948932777350114025468828605141009803528110665147998984280576258205851494551513764332812272620959895160789069014541657249197421019303822004221307423595967732941643240972570956264258532490306700026185131204288267353500030764752633071341584408664526107928899176676164996686131670189226254949771039878464388593192812647796728645108729855913459824042747813732451223453112477464936514709576471266162841346479765903757299038142873499505326869055322530573850269504420354936807543836802573577259133864055211215636643233900458903085717858206851125029850291573794632345534899510561492111577061202895402811663061741801686843400707256811961325101968943673195393228880773887683123942961034350610869545795197507073552044484155364816866435706682539700438848546851474193024019720355355239596373840798493270121023911209895372147482260274999972053548483986944448596798528271095623824541264731908729770786868077907710220423130250271548725168506201084827452410957712375029923329889877196771196820644558106069898538464292419352425057787713772953206879190795833874295117377878863911166088518663890185352028012577543651832219685465631196730733506488038654751889713649852188578875197248168406420834934857469668425609849705449096197883804969443338880646267160131736516603437448410584419581400665191668466265737594479666335223600881841669782715245075855518556639798522727883943062414243873324556282694503770069135400252430459447785649457376779418488632830058862061654288848792072110192204482178910060914091002533553070290950005771434183855500650142361768439623037462036813457878550955584143877124627659632665258320905013451615012001537681006594985351351128950691105539037977947280096898408290586533084352834814618688613134917809991567034584174438656975228781567574177357609499598640199821542143049276641891976170055845012645445724587291769618997129115274503602144820016048890948979960111678393180513582254359481052585504842747054491521650462655587316974247858563758627184982156740418216856332063199962155165285142661633201186946254026485100934955472988560003789146193672507743709650769726513786678206440518710637849718306055128349769354037708834398329716664789017113702702296274027193068636454117629709725547931601799853435565196904094005002359094506415304402361169841903638159049107182110465782366094871816225636497122289591811948798535384433662787710136187003997340166950522703473978872888724512269110533936251308065913590984855913717715092783625493624594234758028798679572000201515310677535202925169825019022566848278311856811358719395445635825112148108089384334759099568527613789399895534071462953555502586032363458258311950710859514589777867937604684687246271869863745775935643466287961755848271076420091596502355998935426913135328759789929737301543932212681528211452009630608666471938946727565000088950726535818822923056611620705534292548009878448835673957871057846393336021784054935191730906019010921214694421289960529045196618682463131039072249656048760877897582046634355698613746714730491433722059028638029459660965978217554481688978142640860336336847092680642539114555584506471560683132818461556876915703371162120424678800403206507370678087394061215361774760929967482845815322054327316411261059645784765595686155502609218755173608989579991621212187357021360032282897540706423563987966143566623378274178975798464445195414234968148947932197825193554600761497747673311838891665595736510952324652545844623852149369451820765491533632874158977835163812642132897564076485689256508956971333070322964773519791066293732920426657088257576583639686836350993280712928925367004679649366915671505928033801470970637942563377545848216040057717859790184567064919901630239722467223397144458387283745204099309066685962441790620799174073848229764229593493669638394893452660875145608795276804698069245539858263050668104363204584267066220998076045073171186806387879460067121920347653054072828533076945723675263071671043578136135205713062607873722722980028430138184202916913708688989954398033726512579464115922524128116258379253873722944815619726640081474322057110883656639009801774351527821110960607095315440995435503521275486277425337850934920851754524409312178569980292360694898941100544225738645242855839677822704486638767398630699892975454344286099571452752942295784155335990302660622358335159932662402752294828707436460428158298832200947717232134779134378911105460068474272717554300273269970182817016436988996660971398646786007444188203247643526484591330803459531764490496322731641590456347528889257474396783323141796832116310123527630174163292463571532366477692397950992592299695287932066283793358726930291341377595993766904949094804319983760857800326433855654596879239180030891918474007727006424470710690081117907652757392336165003686830758153208665837664424459838747419708360999136445781388199269951896645295894113607532494674438426401351111167437507573355282731904448472115267519044143512171273195989092353157788083121111876913200314929536084566052210566302190636613421390036311964759227682393586203873414843596788527394958437712900729317503286210167259484959252522671194163269106332266368969506485629038293756130869662094376030954033160946872817823212709342287556217818009208291035369481650822120388262683082589437335551918673998073746596466038808882307994788889469770405401157902831249528085765605388912620871687509831038095310316631578000579228054865925083777287295405628206380002480696336869282872392597895694822520227754096966262384272038759878865459719100255130765892393513401204022553572240311631700082498380266890454542327534994080629261427062994988457695251998839984178456010527379127288904406359934144921388459685299570434704471976156340522764018603125420534693095860370317233493458154364672122481881523771015285863420866536312178845313404552013152728724977479885553468613473052892157680230259528788178110238907239162910932279980422447117249826518117195202495006377819651010318435527433740767330260582425454380292770389753844478498730393431397959358561893083280310974677421830187165151250276260802039957427108424716549660035264732465051002393297080576399536411787661158627861542069505175302578857798979964847034690987431149311499747027246947049157991947318270792455447214772242770752315414760001905185556566983749964703172385309898587574277707090349375921896431258472041692668741329233880785589060136069138833993816634641662191019637891658776270755205207589720616187557944580090691466911683853227980179635156458270931565172384729097566330221030485097624886576046201683635479474418153243716208973447310393893287363801013122904430815366094361855123883704869822701358901251109636150475967398289332585171719186225896119455518773992082098390764710991550087832164342453516527962649884522301986185812556651831451367144740407346316361922366713505862380349244340049023723958104495500383644822618776687259203624490204631840925219016868878215814825774116471254600091444762756417163890034408243440280352958563542587090307179968128652796576074273172151232522323528117691054627006727667089587532516473392314530862344384330331348490927348558039652248323037904388954006530131646013290233103570849609852235050449451051900401995535378359141793948363541956558948450399257397113885888674228958978316707210906745299833610341278767436985656928241612871845076686241993029739035479164591577244627370884703623811551381338909848512695248324398626613058528416210984388062363502122563387344896706173288076094532237334870976478609765143115416666115193006045447772564619886533707238556637972865751773761327512218903274813782240939357262539563679440100077315623565671962312290003072110706512385483288904783694659418718237485711983352428479664013315895340416145542745720982163921112370466065442407718077112353938760393932279134992714197602241327226624593758499858542076966095342692360074453632957677176002268317361291968167168607108615853812011301037168910075359701397003341163422009316267681126054359930733403252992775768706490384481211614338989130630538909504477603991948427316155004142462297505396376527328814874379674478375844866305189911848973311962542157529021908536987916530809638597930865312676203354121653868200720446126254082622607746138571636027860311994257751725817792754106189612996612597499223870556232944760145184135791952971939896186648868115194004103833446609634686005191213898828550700615156329451306606404298827601364884375946792639780182323610710252444871774754223516610336092766474347181238748100298288747378793772832109319640067475358453223227856403360687616744436611241926969479816916787089784185858881692418471480264879699061218491948848429418711339191766522792074030650060734086409974723599495740503441027911398772560416574994717685446454181251420780801861117130901893360589397744861770700072567885528420978154579507192998155265504132468820218313425424051944782999070383205243097840067939934632109177443105735163876478933703720530336564546401172656442464990702821540465079403189932624933932806833905827963696609498725442770979984543664911789606802645776610818623333450216162785112309537698450758011013585488074954003577215157355485880548678435964782081999487583560647950625938326034007824315831007274210922258395917349519553178216888957678723060986996533873075584974598241034580409927458884581030543870062474655092661020248396408093089695866607237860091023097631976795407423701663309869069259805535876061875158556664543919010218033366730713208960735710477519067725889885080789989326195068816362031319852530095212361824197459816527336258426692200177507173582936599490748605840787981040270021216699704983889670787605677020349074143246083246883485739873725732768527905371881207512661542940776475644023543361636688015094367401263301370725132030714913487963885695992017642029905128777176731454120127040448308846659940173227341354384637026180475180210796987000942356464567311902327223982607258820576063784058870543453858011369805032792647462319411132725894129313797934042367076527830308596417834346057943196260528121856805272569167899174280924352114006289315451233313436664535221042508596748216110590158282452582419967511657054119084334636738795197483195984543029647262061763642407828118550921208209442524248093086447321105849572067576685003854126456503706139674801643484738960149627104704380176311494722652754197391370253016645365716016651986607019922720439239287115534186419154185546267003528727680388710335659682662583986331867091999484504286785212683767480190850971550390520077424325395203401635717473233884291707591871520370435539605548975886639454242782190479185682048733455031803444945128538298807823077923637992694317751061368337199845287558167311673159370626358345697966060742109351636198388831802468591190060608582681251714599339963294395932553908019424332567291250248541040748218791967937153068918983857046927176964918164511796600337215894519856702917038614429696816173913224810142188376830710292831484942174004390738934381223677730785061893975442306770961887410397340302860088164758912077297497219962559064498128348150960430675494140769415294984164921952611475193177697209832712215543941439406092811114282129371393833769997188057825479022782904352832971680935416867452784575821530527213705428618011557386038175160137915085877603117889343736750674158322279501359608384457750168723443142822038531454921297457924666761566646833442621753237568600421783793445910455907313162069539774306807554810913462804718837465743463051964708992973918753979112648549585113110239393431372928615967812097912614095022983177254262477892571873537035749149910584522112915497050473290352691611996651577998384182511419041884864729766701652687482959673634670194013690707416945691533644109430148604469806225319802574064240562989761809376212279800783142439873427052387413983407502610747501462194904085462713809700865473571540427993901203874462619481605240824947891752307871471502432983494538982336431034216915744026950665063601312966522504282500068443148630219965594065378976491359590653312414423104646635615662796101607128064939841493175816929655661163147575373683649517661701384999505554970102072778426227422354258840363502600518746614736705880451171031330292719244495723191032934541446679645633837999239206591239749984039397408446240220473592441841985235320421011231770406308349400440777344676697346144844613348143335296944974867941319554863191129843579562177189896130426410298368944126003786513910007583383544623497251305831185843156031630622599800995998435917144461211480834674750730697928359861421979469192707067854857056261778813324796360174079479646834424925360460973840631204459796144377708441072227977171659807189093988298447194497332173516843024332692209157788114276913100429574440310722580536419646543097688719444630664099908774390299494920696314265708449561668408958371517938442751581378589917483742872721275908622836609420592742654324775324996630126846628659018494673732368651015200107956107735887959093058792476021765219511065391317221824886910668099687755993421978823440795564500095024965688156688447423941495592018001292117023689693559422711328972869485067303090810054189094960971813018672811442455095845794996585151687719281482692432272920775373964722712766588008504934981382265333524720037148890174461191571652829689711741414740542446982501547513941862241189406322596511107816446336603332076766171487430544272842960510710942054821413493265445444644037556449118164849947710863065016092803604422746256473073879000555430432689521085105326480958581996219648690592211869199017976614846140253108614626115842778219892925409972749538830950807855284110714669557076836967684219603452379902858686009640201438564497494404347164254175163949250321830233527817119143810919367546868949479323983728275642833762071139687004633338976304063290687815879836961519437659540798819612078147182343480399494818565320871335168657057353727235533342672497093257539759367205643164480020792364103421754624245742859471720607878435333170128223707302128549094644387055228179839516984921249213152054022562215965561943769411303945653716945874110816082897019799411818131306707181733488208972185493931450281478092627438626914763583808222331175284423618718013138585696568580179567371401781156714859628741651199005561673196319282408860468269535129130371287946620709648723315137172765039125308346242325318557279041044088004982216994911845199031135307496248339361352547094554556090898498436295378122045026512876145132590937945165539950084692098015112908799496207100164215332795415556028810903068111641474337558225346122091940497514289257914873985189383979204733872089496022925250783093697046485867634638608101836227187955822388349113564358014968248679149588758381898537827795976304737514031342692024535215205254578880633467020640403268445211829893393385759792287090445082554712357345737599783272987097730589838351482455174129751840088046017449741174158137919507827467326166696241992642752948421430183288917489420972554747080423733014776465103914528759189135951553535393568159943456516447156177915234811269941572936008454597696318533964487737697430586618743516770756765507058246138452287173814967905618252350987044243623600281065143928958444076620104733880496668285132470093895120189208331719304487953395224606533994654799422081524161625857501703097990522591203721836346611736173471764749421498835467168629857931064965511899440672753947840941680024697110309443111775343015428390034330844847919348011535256633675123956033484909572835409677950836227137093247076389844511937225173547549006014542137401638954709585897520576887275787920831853919074481279985726418283387920756635763175686273183368583507874662152930157743592009060774431762904833987295215721984222528837530757357718150933352377622327706419978108157157310750896255235568594177044686495839399037386530641723778731207642912344717771614943705287246058936497880702082151031701464318907005432841437130582200284713605779758778583088290706695027796251057474560852501975128819000325651699434111969156908889069682154336581077504305603008381522166396740707560070614841142005495157311368934048085586863114765875199318752049610361127391354496361370376325661830015710410331130045411394837805860089198909233714848604209018741082189347304810062871479694476691181863749911691229295377457492952578548786419977410339804777905873934996039408901783078680876378581881020818886809434822208674841165872430255634563025536249877096758633635094649694732761112261263983175381225187769227803051329442934698912624147617497177660476983547008050437738800689081227590170212493274156034924142493702849936526085798597145504167774262978554259206445880624813297409473588457657713743923253843263989199514860660786265808568895712088290594556768212582610782506034121326216601436653715240316968154157603257329685993409562808910064317471843940189281514251442119209132223729277344741409623994214888123985935883245728356758168315697177330306036503559351890695248640053982684754408957372020828257346546224985042678670079699566518161345401871915799751904637749266110492740184863165198926736262985432754290287458389575721193054709996846072110293386796012262708184606676708617394094914715842772513083342786996215953320807064117615119031170974996227846116572384669148604683309311196559888203898075699642520698767501538364597877770019237812794468722616979747879659106188993086669430692265231222622250983292012407223068497040781876132769608766309485110870415360333085743918500595161307346567233625787993010500276577528137303949025533217553703328538234447612326286311489094282132752236083053126238021527304405647463736722772908638202023508533602893617028594339705726733142387744518842214333701172525603424279968602940276865009117422150492432172239141690247504787510837826771692757155637956448031322252027412255285485152615486858358510257543043186635556398375823022289081556210497581932981170631957550968102268525889623541559302163214909764610229665196583187191674423471138699094460048594708116738672451096044373475282322495284850451975708797764877941486144011747622489799522727017293781203673139025782891343737299362675965715019329953075021825186002057724552478432547855950476917999550400706952274020271527998211771720498889314627740215406280428101563855450245760230402013239900171434652295846456654623657585005160688195384714764271454042109029740611904306766153754729037375300093765747010739913507446688659305945233400150692061842798078130324352860897623020025161368689737082754940728073094405625597564219094822554142015058699986001147283988022385626517388023065009288574778170844653994048530370188926560143745068468441081389013933186462448230922463431114182866514961905341526090406405081364136562926685797292708143441602764936206640994251697358110529317319407266291534895830418626147418208310102450837866460260999389211503524221009122794151002351115637105579990528904595782712902845994324205837152257357972448252366026446948684351520456490994520911714757867747102696990483570145730073142382191206211843171514344739105356645481368189832062739504468034217965867242485727601628605211406822963785017668468506771887053806620954368276018879080126112711885353858020260072044250293118773729046640583284636573748513749377808588231085767367385636125322585068173217664741790490469027666133705698102318493402249595228662827866070035001003811671861260048212621167145392156104411179640415751714752479822020246376088775316402004580646880677561852976037795480779530128566864746639620469760866516137818312185141119982855679422580514470044965723465674206267233764742512300558898864591760688940747104601326009518935129758911542278879921090524110275030389612137923239743865191417195174360085377505087458201621076884679388087675649607168579253247996963363879251637753750350655533876521497002042701847125328944337806418446514878174445226373848534605527624339271684620534690114988655985023507375929963472322267209670941298119155613381836085791451426133791152371075888407267328312708263134890609545634379404703935604549784267621017501043612792275177405478798053603271429377938755914866877154380018250067912443997687853221924752803355340257644663904144104061331960623985639665018961797288553226834929255397538313107414558776994473525840693043815157068227232705332016301517963549009232060025652541908422138431539485979416235235882082225544389691501512582823302677606004487104113170636154590873194172251939190621701204220775234066040832993265516961605953846596350902245223230797512691593871906073505648157436004955654412225794280001304341834533320337309609172491434495642062450360928100831582114073524908725065379079068464016327147447883952755085218033028831197352594345063432971807447636551627736062003976190068117623226921624272236810161485076860754695869387085659504056485795425670647517119540001655614247162695637826156164866591043385740045540048461597269987721600315429328069205199548518582727957299226325955454416541656283593386471757587207420360420863810106207579630555280353433874098596934371157928405869541085527422923856368609471993329231166101505512393341390621992433027100704566545329113987311076906479423413070980617136663697723577535684526227660434355192819163521163376508180604796032278654215358075999646403160784551282550238732530568846437427060461010527718853150076909701321217068599074072274082667473147438617237207207015634951157419968462439895972895029623638354762464098387031074100496193750296602890227331392920000594280981931221419056728519972896355257920200524320958168805607464698875279560042547399147569964867293379894880262806999837046388658654668118360712991109015458358784464296406198525657338957923285360476061377011037385442452280820912500501833482548816317892093539048721969629914401381439260704618605419847344030402346398887889156373610795350035722297085808143646902845867904413349215952431165098472237257173469516682985744620687676927051353257099018143045572570742420437540845981756460912714716087071024468305367340489877292959096224785438692367139681434899575377211421502044109389446283855882595928292019934890534110544653749492029749814759099271426739553956129568224832202738179407979501866658303277466522899435336685861781589479695757833299679317026930315183329558255000368054713244996060979866838997030640563961992737174010417011784385119945304575833180423791660314338419248488000974464613623268536224533056501971126809668166523521170784512918069715349404907669667214898103789324531871761491616483600935443436136571391930378927166017656381308635316444866840635308448684172966716798967545961648462043455401270827814464018807603017577968180604794260342581673098385069668190796677696417539438678162242484311542873216085051335667016126241848257763136474875805145234795835422771734576395199606699812482394787306617857833465779295680767061414883000725089408729381856966843829952899220918454930624042657382942724792897025930031361574654743856669261885835814400865438079569735892900486906801107269085684876218982797634983502632303997195613231515813246097483736361590779266139081610693164607936266966898469696178092812633503426917279968711015198292761525907766797675967671434726178689688497516914278492545469848502925251744608429514450840907742747624206872414040851509689824252686331015345077708857456350039190213699374548835422590671903169134662097583316721288431539415868673185362920666174979159104889494610552471681043288958793099835008900167795958338916463331410688586734047781547523015582500872048370710581438942549345744108027581104729832907360070211934544091224738064362047708646954067651973172212256532654393205907996614898209112373696351124571153832106955957967931911338056045144095725658231125011383422303880710193934342774987893863788457986058818321715927041609926370822140411618268262406555476687555169718859770243453782129525043235823482089253115182978707799422522362759347921046652221475557421009220305034761259904461203333920232756402765524305488210724704471475507463035082619675105189652894254052406673326523318118264018470550084944189655086737004826317823997541314429244540150539151313667895862668533844132466669356064683623810568357825699667610272789040842615501575932957107056677032863265338263110105844070624127103658186122098023641051141771225232619914179179841768429831833785750654048742974750321977935674316055641967214734396530828454720655082017274797249515201070666935418787962500817408080123851072315156276565053948206607809815856144852707526486081816222453526268117203346507852005620448164697566921255759869276958046556571499418730033484883228732860835107414079651813097331234455836229267829973525423986536802414569426782483738576400722079772157373034147544281579423235212420413096561844819514707299918622792453796922712055395700542702458304194032526306712561870480058464208229709789387646921080360949365409887039860787465686677159987165445300945570900201138662671823569293290675760148153656029435640706474111333217950147523153247901957476085812264406465626676652082451246986182217673193869836875333928269459972167578663353986607690958421951031162027149782418478866522948885402418047616439512627174416975685383501125100395724303869926320104172316306229035448462181559390209327131665024725174100530272862360449593129337085604707626468241581317320560440692229067555534530247311078394486908907757922860147884397530375243232559853994539977006452249931479666441430206979407333965645154967834671302526308793722198606630989508794793707861321830984583536362008721952264144804894358485214533966482820192130580648840142335000363742908694519597889727644394670433414021071984153624301635965047696049313551731494776550996245082340843434880208207117658828252085070123170305080371453824280764228443379000523578649398308944784822052374306772580095267872502719054964625058535031391290462436012475874568920710554140167085921256866833467159661408801117231256282230079207474085864164937675386528213046510406676202187783610150927613366855541266324323251022980822465813467231652105843485691242700837382048062174710456914152603836513663459470020461845722519614499508533651268957877079514167502195163286150760293621306815705451034475755824303943414990878438759329393348606917538316038635624243405986447502208940534140864602366702821612317511937335271729672157739081359828482091791601153442711914752924037815270051803235141912879253981413081452327070223634918795098885782646096043819109691046521681577726527106571377981947189224828992952700292742835090116799763127800836729918620783153122202299055461121164992673437157853068876164720696620679424228867565865339730996840149482234970052654740629282767967153483755273468961022659707402983173502268401041217165243880872072815279807136748827541671998646739346971166963991462719259665340608518724771603873478163069519412982009170865008713061822960904239163696240023175423727496007223944116893620844425136432833993032143564449188829628723923095270488364800984587580604544226788310826937340900542945805248019500008386032593077472438787050496854386548681299655200274950696518370827898015354167767734628450099214572987888980736921967251929212700584482283112295097097547352986517735594743927117681967458771274845319742855743171762740639647594183032251609541191149047932732229861389229182046878744119190158832196264722637501830942478894544160333043817372650999977396611676427508450382625253925576543863637847030483211830895333347212864933997309159361170605273710932345343963736430065803618458810929612792324629951187036468010728143945658592256212481644485610440905481506460663958451506559285455582265099334133102475739041035526748935785618639334482644588078950394335867184654640883661555164953236010575561074418827477105615612104465974718126604205837344613356507471360977482900402017296109115704143180469815957711730322802160657685238442327825807844540775715273773846781113682578721301490592509893621403065321217340917433027578957262270958979602135309428814929635995036967584856782239080200539889916116162940962109855226091413779833233139377531844630873460229342865558460135793337677758520411740009988456428835350023714556399846886525639443401349833666712277011995166848148950882165112684570955781113767410662353667823361993596335337231266730205777563218871289615021197932808449243649596362202580727673255802399213461596104494717886503328152554656200514435104285369437468281559587894909569284697846652297525597819438684431241507933411675065140755748057954541933793739313378428745305801489554720623049278050811259322378524540091659748202903732338621820899271894977599393650805846199125644563572823861179317546671528102025537941716789325953841982244543079772306310526237598349583132327403118112157619268651769689814806125160209288182198253912565849566954508350230272939596360642255803413414650754984027382391925348512918891987881156848126727356862860072486913393373362195619258992718192627583086623934573227909374790761936612606383744151525278557354283463056857288588511268174677390077310230114878974693003907721496289126819624510197217045973118354194993425885361449650230525495528015370823441123019064942011071585698183380717704254242929609686866206883947240388773539698240353509393230814284652315415875330113999966783384711770502221859414236688185384988878596378541322606861119424326381169840206594935018446436248871818960330000045608096611161682003208957593754630249016129072307681340889589366041647930339480436859339646553403244418157236021177064288834235840053562762105667853209709417572947501578368663836410037501858733777881520848724735297364985842988668191243623237983114227131931292669628591095095470135088683205547197039888496301723303372069812267613098545931438102508965905812821475075740664788261175284986817809046079369709672558935385017755706253370603978949985782071581388548157578865087510970006569065552425421372568622953241175713132659066890275618051958346183131539867703982190967768765657264722357329647870233861556032833706488736253162534249569533533916356343373343576793828039247529179040265123050803783961830274944716070461897691523186043702689752245527807207253716159138795511963878927186089982451209219412648832336034477874749638500120003035475040992984444780784065044527830991894034781431033869941639962175363618050255669173646592110218153880551359731364909046576062482343064197078708754596754909219444968127314357582810286194195569223284674317667210656875968964347078721542453114181196092301156164316788899091668479735493634520459177479480029760069949092555440774058753991341787186110882124432572507563983832711827988536499493418594613919446609015386050964847330096881502916892119155737809336166046540876811737099166421225491235745436840997647380251469474258182637321066131944523805467984246784886527621789794794133617604464660793205732888307695641400646524373564961475398680315603765201556755840723330195862411505625211852712464187107822497966790295636549578082326979022775616350099478879286582010263482196286104758064057196668929343472674627605800282277060318629096883700071212141437971948073172379064572729736385797842783659097222184240192836520052676930724166197160550645790700738651925584373877744436825959602210871161581643540611202786979442320914787853560958464428004989113128256812369569881970956227314095185174615132369090781393768608708090880837055068217406916855053550264510127288608907900654950093031085439447021104430654211230472702531814316989830207556095372596420757741702265558759628585503834132675399594238387097268900949149401463036211104037581468085756592858698295873733524627759576169507670088178316388454517350914863990470734976515566635350485586637200382279272396274310104876719988756406989783121391064539362070045154155559421133663040816689934690047108740093032464026167320859392828193858076248020246786965009309010390180245014573072388863998027746339033617461643546744717349721577021378527609776474690153000190436961156059331723765835832207454642422824259500045437913168722967722275435139949271338868171798850744747199416411716635939943636525759100963342182153862247086052512922454262975919512034087387666755735147852133467235006286996796792174656458785588469277281330862167954200018526711631873817533247310882675733724191862802679720694370212045794727116140049721802987545773771482274584585633375320089368607981175369106967014007093426300258032181888383973588035183007696042223943454820926096466089690862270518776601583224265672220627499442945685584328624183867544202569078420754353090725991278482773375537523954325917232208731680449155917853402290196188275625336303652544999739614232259131137102008117407995261980638259014784520944914283149280401160623336320273640479897117446599416369535484477803910156119947514725339657944893677032796000858696819622442300436052098125232310445265933944466883911069917452066202589886253110353016304092398492566217484259392775490962102944156827709951809302344345940925468075800354104619618944824350710961165201483186175625694857137586594711743985553069212874052199154111501594600568635895607132270332224314708134070440397456323661662894090151400596376740551702874780332470793157236836200253347956780329828500680466676916821744946105659666877714573772897946517681508541322973090313214286754292569367894346877163971565529792465502073563722487366369359483189037914216627494444198164012712134930285958118383363876961143776822421313419630809051460518597525404577446846201366418812516590252894474645340190793568302451009714400125079958740539457864644772933224674345864972844153871427451065078605727673976556706581194051003451869505874847751181088426551584952425034712415882106471170939073542427998373499554900042090347110447816156385493037074136213656506584462502136314330077607624714717587659277570461712762647256641678001129445509146088455291096162131477396894500978833263807210136559506152945946302260040936218295974915289412987134806661715721823766792076743784074119827474658919270648360957148797007542483789996365468984479356467944373961072233371283813038716879132018616095209667476681818254965184372861396815940597367432292099182792947625094200160065484350196207367136160410080070776381144766490373444037721177667505830450980847095461165763393835597055996251185816707841653049380120512062074106885977433823046635003138048335798696698011073022952746005151153098766734834799236959001103563465525251000642156802299692490889692279440045906011417503345028117078014149822774491351519890321909252524594568130832335992643888694605766242378652225375647975463991290676281029073653051563976067425469339416510337665580874180497362583603932542645508928856123896064496758588989154513965173941800969091051135388230760305231758080863602671207482516973588382641331834856209279015419943201413348605501504517888849828491998793801238205344034194545233211646675671772874154856374217541122400138334560146687147132634350375736033910034158686384057058246465374006982385085626007304091275556356511403765735255395451275328390279338149463549364619956204494810945594866522968681312698618910431418434348240386977599376227179318370912921932151455664171357541566547008707070897819212137543139489199546693919723873933176618808715558074415253667287418211018733607163712277897208885239720641445098398499359574699361567223917988220708072421875006020368989387875281059695361119296836094429020935061784556425583391046654996161504897276000221020007382119251467048320791511865036490075115280027498634240000647305891211403727128186339608092717447273669678921177436468535115903349517032834012938330155519211131292399582412690135190406237475568885554457389473973821219171381610332070636191781406275745175180551245253283044761595914022029006466694100475481478756031952333237704469619913273876368650733072852684709916862869698502650106727435916540733899211042454340493282330092689618023023767294116266449982395178432840688425242032003688592691226427744220384436658368443947964254243477908171930195554412945369595655065805048979865382716595268895261593158844931983992823126265960094116619352688760851895703340806319531063600221708977303173995230511362854621921924897189197707494333443295192783987903680994364747939665250947324017161584323972074408957603879470925841980601683948554902251309972711034594866396829746939177645127411383877811069384249646655090875337214260482277562608428945435902595936444643239549053292624672183263411865633929370726514493552841115091544802306955510765017718008096716189068813247318555216251072681689364196434387059843317772393421031429868734890854177511028375360445371584286300392950034094608675208710022854668827219099169167173576023229890009071599165679312394007209061698195664286265079491803531890343898544554877966615543944127875397666370490057998688893716532800784975322203246504412231156301299834010100343352005464053466641867399036894717238711798744735642897429522838192636330679115633440602613668246721458288606987244592378326531338362514706736877794487902736659427716426803530585299190905748322977679187137578131946010681817263750878153895095859030822955676121727628309463284306544325258858530957221889998829091587388057335763726985916009902946618159073434553013423408798211163214534121567001907649615427374627243801437739073971646527984441632630006513633407677786277109093242757193160429509422292056769535901705077844496221202670122818532916289918105385339126357698929315424446626210604100207628710632930237653124127326892838165771935153461430701101576703765306265303839456030160107362497633522632160850156213036598540795334904015690207523173804039748397605087126007543803546180527473565716332662204535638067313062142667957501045836762729654361549671113714815516354369171736753516330989739150447448483745000763085126140609069108562170421883095522578936579620312572836508628367123885065342597102226801838296034347631574173138499514660230779343842015400157394463370717797660893784072879429315021799242424485244784983526523326264295985767711246347392679830442713323523684110778240696726692755896638925977534724379792925324524429763141964025568990867923614861577931679053373182868580235669754499085160720226055281244218791760942104250846555272820956251559095358510035684582003977289314132147723475447607311683304940845081633643539000711604647179887519940246102020676331202269173762654829723690613467482267349643051267043222608518196939316585350726617272682952596946835887206439552492327425154588945804961633697294459190022667181224602838830437791810235807325375606786104213966692540006052360636442067117667915805437038252895880563446505683028608840605309169781548606267258759964306211316388045502313328671228861908006259274810747423044190000543431872487034032224447488362592296805551346068791433406472265987638718759680621808505452870193971306610050916615656591267130393377733317744313577827028388434870706041424695607112509320505464415115006342920943660190153795010106872737814556191310882639288133446742991986893998694780366194330664948888524528679367639144461060323936695850521331969039692319670704925312974380656018382052464827045586551152485345640860109581886930523630721280449517257752257653034174793981567297148981151234902522339116756367737361463515057667127385498128276662144895857507627845678484810434194717318024197430684669452693176301440655829910887650436674513384969908934017977911900228167193200291681568651873124662320690767287182847872578456956260402028012816551781643252718801077123569466428165874887495256210519259080513337280827945409623114926563486804177265078447586212901788269928311223105381430261630932869038592833770668442972444156594950731886302257265509132389643057657473645893901620898755509590608662097992510992641261817219185912846987250410162908773281613114860338263521753481348122466938653515494810019362371866902102410447522249176327538815457853259544744835527995222479861443962101011932022584822904435898213324224532117130197790765845050827328016516973953529575256180932586521100481425021591444573987670896778264463548887176644761404782890905563370187187631261709078123839996274335808457507832026687520046596495542585421261067074634122035799164334959211852178677353360742304412195892352550923667171054171188288329198862369972804292142347211980507322352647536244759076940022378956097796564144390811615460976841553734980781369780723646139865173920219065424341619494388288216413022603336105926287551998281788551611632116677706942039746814043415008956800772415653964741056486145892271461935960050094960351885148873968702119007580630560507528943474706509479426591864337831593769347906819204550661889581839252495573078106510673721237545571307141853717988197221264502241349477740190825731705938348623775121017016180827279913081293665624637018426033862459965062318811710900812123570232038067016516562840342226155030238170477297881561097921148654273390634257931134523155795009296078860654416566666394511070506369141919577786231985575962519632368155569022949132521959454634421689618570650019624525315325465491427465675146484711021216124903086092934777179894165276593304676630033415811317716241898471267700671416757677257272655575303505884258498145995903484634293794831403062308475536683953721745895513822184404387121336804888083684740497703027595427659906449228188385722195463662414653135485153175396133979777087006532505589555867871184736798963407229096463546048683863950195731900760617841814767024324424150935280830932130899587700511175966144789223560240694654601395405156189582334284453737183400449131475287914651085278431550080094890591321205132279926675885725600233909232678510451574908573107842587690683004024119184525271906771794986387826841116492932671721504570495719856634010145343407033088185591910499128081696282838536228988624750087814768834851279722540400226970500696047918017855389015919772847161035905720679007735304288255797453019446723909722335981954674910224628632188601236818088736266465619197041517466525523258830589348656078431254808800991786401244343079178147742709244020374190770268274696059583763175647730212709099952230332188929699694150837669374599701475897387896820272553051655044568632354159075300032514654965294293386556975196473574489941043889503208407439113384200941422114562914583242306214862509674258377201633441192278908853755407869160937524948911036886645769429429114882433009484553566776302188577180629582266400752372336260114873438901494528471378044025945070757766586887537030055176832053862940482773083132595558288312353044645970921386708949955143463562766049777085072550595800407801610746174000989542730008390170233071978378160475916762316560000199334616531718532846359267930038729920940520891607542771347112603422925554128971597230823901212208992321441931442299103024213326851120513057756661807555253148376136164908014965215008747147363599503378685729213116607150435583378673811685990746838751085755934454681983908109752549542101768952581176660487549051689252629045888108750467916868946241782546972400689383090468228848641157366525137779381707573976801311307320544024765662825685992021211260509111167877515601047876772745865564156188948880145052223930123807375820585646816458584661494646618458089439080295726125814429344216153470786194542521536811372723532597481458506025249636929487050173508468650747069586997331001507406293225870737538468980641592187046937207985024437249166692592371672854461026924441059243456321113835730822532837503319697569174470364423734455612951667589876262387151660201993265276669145351302763472827724846353663379304887761982639934940442413696167046438637742849201087918746974128403685681687191994423284849045953200709818180991764896232645120043647128025120654277137743255665034459608672134962980489221485112608542096544005117564877791784445594824138379675788049722818489377430916332885993524300020788815424071087513149416702501068034908683817743648861026988350004285917112185916777387959910978670090701190950144215056909875826467631753566515895071164072706097401750425285557673854210953867265078082515925808160726264180181578270112191791988880709005030091619083125670279718212679240107359402576755435127094301684731992646646090808697488524395213725027153482114087509244576216088307915343350018005505522976716121336496857110122951665253569503985649619883263999189252251797297382482239014846985054505427181718107561368027860326312306056048657094422351164005126443669165322440725493205104565900024003533521244279737147243676341497543723514997259746092166240401063670176475170703014417202570729189812445253049979707805752110695191378416436582856098758653951777188312790430088344138372201862360988195496356056935562710733840800196064599886487843289848905474595401302842252169174328578165240135791760705315458867393230495994080076041608107343590223388413784232192913720832286113758287392165856194411315048814120752738791746399120530647141012341389043258959322517243616565697172629090809158076602545540943874612775887447284399470723428911236250593220469329889624832927430780509171729180222606779891827752420079064859075848964394116421508839136246392094021232506636382495883976908463605198949403453396077786049067328532990729317474601220388834122134630834834891505357165769191594023077509838166308687994965339098994951373634646178358762450169039194921613729362562083157492060514499759290885444639823945193228474379608770811834521264045102660679217798028749581937117186785835891645569693231442937872185867437258380643361262350047855209417064939906299301443911145012502609973819424905051493699044457946323255242612497375405097703553773110642794257442668115812325783203992538945139892398156853918959726788927058353106382133110688087424617502914962571824532175346407537398932590125470893066817326376839344089221124501177710455587664622010155312650322946262245791649718369145906894288034978708625848095693589819242091182800053731034596914716560895984978649254267043549882870621819269305171560396796007811076752210318361378409883205240385777193909544366735130091183287198506380676330426597483567356150830078477788757524114949699314758002719738287078891745094910050672578543063235881486772813896647845351788257694139952940888922610639687483939223589476975701615609641637487902362511253698619958617303022253881474629851138039150429937755717870124436139031539560089774896081986741624904629335231796430636494106393130741071332880331111308439449500866449823299967552408964294216640163549599288190010772893785265650781492149733527482314567065903254568586905274360444324769594278409129348714728663253044182873676955694747325529473615693094282377751356792331456096868474740968175265079488277870857684970504925763772666097583712191339008189363169327673661515207862311722302379487621183087048414248195736707229621250060322469966030830045929862342457011152056289534871371983567645741255926560719019679299951614473739439474313291588368515725967511974764597394267693836535664524482965004277537753632342788888198233353312215009725600458344710266707582079597709086137833926850248562440657069392552893213252337228783878398675195222661638982279416652803733801902839239717884473470703533514032330792050236000398897800516798864182073613376081535950438304077753767189940054984442896603457456617767432570377133004096771626606913537358418399084506716367057627975611667143706685298442078284452883328991902771826070701509903342517728092135354385735868977949172588560670422784578729905906027582281396970565538367190270862465248264945440542218337559044131361895863226310167337740901279832330969906348958633140961041438711050852411169928100977583074075735677601911467656761709308743418662315066545941470495597608408311737395249464631008728922981348500466913798264765570911833409155932864141748453322817932369039743156061241776919003055660889077514466135522353296474886251796724646091850768339937611455597559432832485288580085900392856600390076528317535348264634181317013321373583203828636059202154517952983503713032795251674779587671447364768127427938291053345735115977291926431590065517998241537352330281579878586251177845945943172152122356677452380403844880993036158207542183624878904799725639095952170387500563317232903395840205399267950872204833782491525759171290886505112171442549332849682919674011790292000874536371347757190070471380675975446903404192540450776264221827376910573042724931512094776714565692516546549848374422414632125714874436654251510047712755302431265708626336094474959059668669636064384567912555540293790181123781984262107441949300537432582353751333085423261330703865798680240037020775756051637272278098969220691258895560640010804378207890577208955460280030238269027370180123207123697954993642599953874834369795499607216977631230241668295407049475050542073405131642284853260068656282024247919795707341216471642202664957018956935741072004070105729461021108061127325911915848317957897003306906235931929963972500194706916069497181523328151338988167457171853396354275949374328091718809982661419468497078854312588835974337905214528446912175025303264591616917775001163469165353834260007443938224135429668584547991465191877813325736887719722936921915186523655754878416520560507311240188762204590500730028929639485897897379676870900214610395964680085102584254819352469797167835283312632821683137711111640976332467098733008450260076653160971952518610066361503545759368069413105307666163046047721078482623015917652832759419160648127131493228805950286010575772433018529313845183517073488933707841669098930447645925759139450437678540352876683087533604564017799753717621450407417111521708816903929462307281209891212085116828403677653833764664417531243114625391434995272270253917462824199190549899310199669336164380242707119567642071786258803853466533670469849707348169024198780147361189073473899158097816321386345501049205606780788444345486046165861523482109506995201951042889380319856600428395841981837754084715083427355657637469941863787194197777357905365190413394485152878126871496010047734430209481857504278827611755092194183196626987663378698038554762663403165544755573853947640369819073403770919282691533251495270208349432964382692500677231473982012320607859370499679512306209141767596914202207118175135640766646835443439532040565746635776445622861608691161372023355086971329635940801255863281418399831634991442931105383101820821746912269626153165394342890400199489932651195192905385401348259911561875640697988626270118981217084958534352339311113110013736417096036013294117141186559605978295839151144476806469946803398421578435922762920571682047713287236475706349095944628728380024058599440634082563795680131438611409308877816802273418503811627457902894857044424694239271662369084329328756614254164184014357901314710255226221284435329870150304617467957208254900611308834409894936934850491671444383903610520981978385034279559866552965064734424452951164923333621359416592283437457804608637971773587978987462903692508535120253408033256700307175393708396628814957218033922511706921352766445574473916368686483555081669590615605848865599172231287684234703363300897277778572889006085094609046386789871815713240244796942197571414429544808696335344880705700765473529178231430427208069662988350748740980622092015850495015834936914625819146142310159108471118521062683186596672402372081149912349001501824793332897089190828233601155265149019738748923304162394107228762186200984832110149709508543789856195468167553524685421603079070213378783275871258526326343844097526914757318678634771082604246732873545143356188903110806873017604932675336350795730687813440738039207988013693450571701192212235095093993364612835852312195449458304833931807576413460684816516906201546017664624109959110688307310984025688425112143446633600918952423916324757082620116717948232833052015346007119749526385608840011949384193469737860995134690974627994849043761640903838194891547220469707096051709210795994130708750553625432823239267792096009392892522532459255599070327992154276731257909192063646262836264929701027666277762875242411982921157268266123288629533199567870733401046889218258982840844239789461046603003794868630039680436117345481552520265170234939759916593021954639796346191350543182375650397459758806139811056945170723588153405396948046125330006160645235124941447201544125786306212851877017526168177209635304654714340926729556453580792748693649031838321174479346619070543002885722341063224541714666626224146362997020711550108135173375052798985083419639243062184090772104664225295363522601900274516141468769486945143008714390006322735171817691944825370164788185770980868473040638027599784825370356545517176637835567224826683140768262064744788725951065065841800950414076027182417861649725545315149576504023212641543833074615379152718142963096778564490276636394790072448876026300980497156741563510474303548389344929089160456029922923650566234162028834249456944036332483561251037565834802994598832197840854745072994524169606370569569199521834625068301400764445783393196201090862028311605267910854158978308444623413271675388531635185817317545913543377280469763416696379892953474619689685247037851707088236147362869274440644924125281813577671796806578175791145653434990006170504297641802367027456141197531841726920563470626961601036305900037154063809237891772603597009749875377911550897136615313987843630821243631571035648607639774700626246855238775071214590917870813045300063125857481436625883579558072882221733083248516246596369721521486038966879817459256429418358200500267242630973213819008085557872138008091576691643650916521356515502106274336942769349083217700020573179586743112904331072620924177253876113292938993181578237909610367667732200988874640028292033257540197540463547726006814961818486175052143084608466496731063000548377359265957967042049730715318690392221678544215745912746238932068150535461752638145224199323634922271537073323444395229318893702097411085481481340490710085329262510158667559697837835923615726079340879170458403651212100073204525787739846438264057232304787444732613194676458023170949789291577101711274382207977972989293636685534167391905403084180018498772217621595872002997207636131708214807152393905142910030847475074008264638023652617790404144556505824740629290103808044917380889172241314154275060783864431726586431710095239997676429430398353697687069550725058497382070187538888903583250428171408678838136357006517659526666098815013331889126900374790336615157363656240052610755438237062404341010632593323606438608811944248106815025981720692779820786021589929979937448488979847305222112518155430028613380355386949955237687853415898521091377476796334448086094052466464226852606537374119381415304976346765264377850634795856498572145816348660425756487181757637202202194650902727364757873783425181888460934212752128826056464506377985451886123465891108760564525656118971905119802996324426173141938376925535139237719140813662722782063211325811199587710352859513883972600568484200510792333554468933627511163337740228362595727744298054645233895651811106589513294386803727166780362701769818416091268378677750734673713720890827090004610466138240764521113320005335846464028266606993104666080252783463357444619934087199858358840448640451673654133458589836565685827404038994840128898027944493295732754627577666799711166058344726069711449036711673222007518276353556897236046836038062532502113825785688042361100621506838021019107900190673212105259787014519128006494652296189328027687223268078662432441861602117506015440147737843268932968003096690269961334202018472077393490820933867705162884490395660208726950011582050441560637497347861037399061357832660279878483768963165122899043792005546566284077716444011099730206973188802217818800369508965220194662309937404765723214448313029643642407589167012416411594646460044507430107500170519602152332192047429914093951353065473094296301484336064708788986298692042721242222207508274259907322960741596106708395796592783375906958816117427110532242514619501036628538373359286324460286051913823545607104671061274161333418031854109115608587510446784610865877432277807516909839059377710038974599884340302423932271431714178023986966591387003575965343060331615798631555652399912522096880771891517640625495221116607541734108796041938891963649069871373412039452946997719246202743717080528997012917854576135906674663359692545558793888381475529838774922171327348254530588830595849399048939565059638711101197887500919919721074514201171403870939078274745442649864274270116673055545015704974812889111722318805449387033677810441068386600545988604496448066626234065186523815529692884609509285973186149001977499765490810839996578187268358615278561489706967336072762458661628841343259547799636483529697592944943495860693304449448943910426735935183245085476364882409674635127539230211213534105821172038402177493334519578372055238193690401111099274384627423202177460392865088087729119784182137800270327126357294286245712548915112706694175760913703952786157647892746789315066257177558519313135664581222406128837655454802112065691406595789357365277763764333656576550564321621115619388916070103225155825432474362639404313217864204500161980426752542235617421232407714557825890678009432852394800502558114597600853265007357745375426530432380564514062989353983156429065009113076701383330078959602231972167280297691152650396721344629223337997816911241422439699836816605164104053630491814241350685698307507231833874706635853555781295203611284788957455372151379978436960557334010295635865350402714438405104128471665030253979589981898855380465194351676566033073595706246423462589157358183416539594252440095352011593178304679263172728249948349100847321055977146258980180852328234045791335855148851924472620597767201481751248620521101065395282922351131335818894329051911029720398217206254188935167593083769007501077598425361199097563291276199124603869640474221672543154404212924595040475919126656803940762299157669670706560814629166730095181465867566369025039968538240044768000538118703569967315083994464343062258250299623316405860958019514746322219334825718033249284330298125238006806052762216412055835078079243159646474459480014149551450748387500868985725877754817353628910930994006861724126199501038411552745118641712605697837890308860582277454362785433286824636228808776698313345162864895251343447193486195106591654714457572223663610094152697656313511642840830190817666185255649038984387252887458203839448636256297711209640169428028932456058468869792161036189672484795014921985051988479576611410843064625841339945332250028965623876746635270397002063168889368391654656775416149551343168748026694189390615889103184017866722616723372127907961464026053958383606043914960093741434514871978417704757655321555867332381718822375761042177224176092660788001759748432783669997431180507540535905964092664871199082273551914061810247915845619007618749835529357860711649139028039884104922011883807042374505520216771362580245466133577595411297450640111820513861869562786403480839267244754503058105804257757170899373129867736728061321930835672014950196252535736718122339773314457523084147833114316364419484110611851318642567996399390051039543370379302792456242745413349968059386549317934883111174522127722156730416911162256651026437175787671783313000976388292394124841582847055864467129115085930146842334119500562298587244309858607680875964776263225567004982780888504230141405699437042535651749579852407186280193329727106424164959712832536960458771029558385074263669544306418928637676031438217203723998104295428144665362654587315142055019443316061065798017448519752632543899808118315171123884036602908946310742545149214963640458745255338867455816894577700115495727019244879259144297378056993549229333635076668505784852721767002013675799172678757004871704502602840794487201056978762310276715943066828105670746534261770852846011583352705227041856929719020103141360155145823513947532837884093976676815460215750463709371464203482041824041788714821912738736963636015316343821263087010484025219319770708528669029135431453606739086244979474830423854943619213706619366131699757944643185631888950895215098867326257663421199642918155095347725880669195021174148074442800869249676779326551647329944877642956057433897415950077492935804199719626245858649784908175374681697126225678641771401266910761881944144643948706127921203313079492321159460648002686349315944517022146138843244087929844738130341230626777020727713307826052009734056182304353847115140494909560730755167399435391571595035974251620249949610200551726067128556537872695422570894917850572906668932081530828289645288658796471837037410618595245015335424853351716953657306817939121237885117163037790488192755809427780892661622465961273776982347489684698378835918924169607201788477758464122845289052150013150374449247396938799127965867144684694011275527198353075320262086760146564273262566003855112857993175536173840512374177660440200850492978838662573393363834012261492411508923596788604577290951201613446232579239650626002446070918183061187679256448608486944417571083143927824068486448584030366845971842033081590828189267658388978557799714281695397109395313622514214332762278807396510645985867728582277201508989389528112966040756317433221833073080937297228155208393820856295358159223637890849466369689587615915594503496175746061675422923511577755242396204563801706715025394189845000613421628115282320337631884827805841124193907156156406659159941485133923165675207130532149335668756352306015655439448028465234118769135233913308537456572876180652299382695550775920074295870863465791494273257287429998982229831700635611153860345404434811700990638517507243537748020673016876321756058643191330795401532078893784517109728392685465615543004626637849309489455677588350446309413709455951747793537683522691502291272174032457439135291244227041544119596353981310569692660332007201909029795798747857032683775044207453146602848760807838009541849497409252619860236731397411027842990742302060197902206514630057485973868546764903144745329894007890650470890471935822499880022679277118920730577233946924512748856763853011304363941717568010094654086490074594860963522594813633421331288200204968658390950191930273025232031559264710311632621765081711095000209640629890808636469935063213389751620971462284390982982268626696591257849901765222320864428150487411769926421328116012140680768866762601368430077221729487273768297133582139158417481594930202130433929544065780502248787285519800920776143884362875033814226232239071473363710676622471843961560196304584410410349764428560182133415909577300008881430436994007523088428779486181736924566438136601011750943976757883270972962281961396535084298000600375433455964327820505808555077465792597543000789463223179476437170988195465468956359738122669541969622329462108126097252513235346424482424704930058982655303604192651056369821561597367458663984143604403434482541439650050389188473148778765686291817890673699356508056519374762628662767577931940827274544836847689883161495888073926065732380295922494728732887875809186961139873238125869844827512560131299295075037059498891472721313297830401057901351270337320829330198688889067971245250198593663678714481712969595910653598691176869951723623986196024156672155263715483616334850831527029178255289731709404703036786172266690803306281908088193677838180671845126247625763460384328133017516199240693137944448994255249525695353232766163042116168643442406863979060547523667343702648811326581719609830117091157758397964638927122688876843209719829609445981060056551408066970722556155913489791585906480276513431732506516671452180759827525728624586213987290022344411327977559743095018301622380502540796454274445840516388402030983912729285760627641841223468472691408190174113132077695759260703391621126659295641534290259493033831656194793250600054683554007648559933855013165592950604170432873281152062619288147091739245438332729127177070054023933134585091115758850163744060970219775580908154369273005243472005317768207462049657767529420220121098422108946353383415818537963938306515265059215307808227710902797885044111448087035743228145038853776242658195895189538543662638635551709387254251086739435790640020650769635395767635915072410013874519568356252625549797020861654182671178359641941719448606178281541012801042596955190959538448937106728157647172284396995456555967949724257553277965922391644225757991573461382606110580156672462145327259465517335875089180159658257235690088242210226335054215545654113279524078735922020032323590323388920572468266484071653611064153624130095233846001347531108018448896949303434609319943346076856373845693614814956803902628741654342919953957996188408289520737260146137983917833949008961070762262313231752197729271538807302878556975922667883281311038968225650599255044912088804591027930780798898090977298676719226454412644938997661700427675507203757525816515068132690570184313308469668647621915712517719791049819274426353721735253920240920524188708207640725896201831528944897603008233887929347683562345512706696134537720808863172411182857490075953128682149512250832547628670599901917505879102676955467973163840693192821618023538176228766416157695187370139877102991925156501293070485085966921669464974899284956176158939804236990183331772041147648827882190035633782964057068797498253505270298948293487358803063851206378718935025869651645230998805112850679537224996642014710038614366659708292743885760790459562702463133121671737516570318324906795693112056395674437945359171930564774928057115690790642531886860218860664190032391254003073658143037948250368437577985936760125224609323142637544532820887551719416367975519967047415387113613275293437704167631371900776593650577110143499533491639902604856952664619702755782941009135003274748297493548055617674519728869281954882062859539998810525826445977619723800648491315054099790672731712023930819288532029752042007281258328059987398571021169266401866960036516383874789848104727202867945320409137891754536023399416898568919878027200013789714558009107762529161898783945217022453295944943487079949657073575364836567269848441807934103651046675665855983455548117420532687828817254369152538181022575938531455179501396918474499194900347107236926801410755584396047998790707082087119594332395793346972615556780019233508692516567731744295796651916589127374844339980986690016049457297117010696952988377186087605375277113594513438502092025065156909553790403838731385145088292300123762952345584488817035834638802948404211625504252756593263453983509335577440343018256731180673541971130069757110490694193263656220071455661915667877914687717765144690295810985466866093139945016145871664325399794848052886216156606603650317582228308748563075395115523350205220864565634464049634627389886555407534154118899796895855984134527264239885569502040049834570323505647379953737409332838898158129486258392080799071046916189309558724028329556222007156369191158047378825327474582713564326785445215045494336248626333479889054130863112465828345748140577805452013788009400969289887336211019066087630737881033149088394078203091488562974185628632417104102176572446693795025037821041012976465059724512338853246784648485367523037049264671753903575771109453741387515358841670818330189223458838071383995754912402468390138177128599887025464407369538957441151798902969709756344602556850393126211221678752541828093620695926215643162438053172079842696185561497474349180863440065433816199695999813842747538945698840736289760468730456277092281170538265617369412228846315538912678802896202727447861874826120701375593083435966133883446562429150803456123916318035531379294579345766647023043965480292980213672253053188149219747655368020814983691590615595978079574667614958412742555025525010756031105940426827883206967573606407671625585709012035662897366171440739839252188679377512606708415741774820373090951525648609935810100878710536723400413794328691358773110504535673135467265515957548643406459214998478741529431318224364323597920481045669095276651309961712587262596798005335430073007992620096641611782235990366203443081492409080968282005362660081386908856405312366914350751362931081474730925960823387097247280684069835456054669108787350908587668790328223655812718254149422986561795423251383150874553064659688525405707304745034255913949011014680106170825198831736848124808780502487018237814158762350700415136827582624375116250588006682399353591188620934062314202700505222847770496130299357748202553597844083169649241256990211296355167985293748265515757138823603399404686991846449262048584230921438196377163264565487983865475333290205068166780823187945859503509710448938661201091523454262003462528348719208068739767110496072483333834216776084317556618413479308621648177691398238931349421829847716026138807740293270304468869213596687529248832673813899656001324060705093993043879862981300965978182025875648273626873864731274459493421401355619806157529018894204263855291395102139990086494231661849770421603404178250624492503006908034558249403633268942330925370844043589310454583154714155507071411086020442361331938469575344550482974772200802088518614212615862120321953123423136194832596259449990729911780126534831496247260445367772957429756905549442738855108625799204197759523172088912710777374219444961051495490485875140085624872604159644567225044368450629556699721086616065151158200896185242957649920961620866598576553421695610342542680824182054930795161097751987104328022754468288946202277575549851017745318423370121308793397486090520431553331685285885694957868389887570368144145624497367784327395380978816829916871326099715903109017397039619237171341545345591673550161870220799219020734880564976978604804557339457264705245479741164912492595720969985567729058640077533385585297471594782264107411639826352222292851067843196529024561274377449708440905380796323123493905680777569107745965785415369168436032943833732733574975809098279504567264641026872676293595278962527093802909000697851363927017954364416163695580166420939870252258583209510865885011007660294918311855239771724226159745019392932006566918984266834981042040265608422387405699176831257236016324751513003364762346873860788512387436677679679937805246443009556022353278678514468476360901370043453281218032702575754480969267780403783703276731980420888544486360406961737717272228102248407946530047498615064683347595328130832606511814955433498094210766872710222789846532076600581364149911925975802609646203127517342314846117413410527548121656457341739248371375665582343948765218430792681371641163237687305390469857837471880576016108744366130128997292857441875264298950573831959213083813829264866158990913763707910013011660441153935555944202160660832141179750304234759854538821138406942087590906509879600479257326694122891990068704160558140710050561497833130731647944558525100490561341066779717402913447659081754969861954676599491540197003808437665484217087478039506867238502357042907110009136717768580404384118770729562450943473853568569598635665089802243686925413902180971068405737256005309365955747760292477453176769601042170749372460018808283658364584352982880357522180369859134760859562331016920790290810876317560862972236520619506975739031547883178969082326268648562541857937631369324877312636484953565352737187887319583763818631182129543270186339573281882358154526545935876517207728308846339255769080012537524926912169110700485131841393351851972642612030630684393788876662628655704364845422887820006134834385721043467775919982149182647918013988841755370455843991251944579240972020741523257609609802102617743526556320221339322700398630362520516662476110783064169457917378071147119057507996670021970721111725178580389908061275252391235617059079183535106835287646684219654018679846111725507751580806563518362595242762129873619716421384330594040926498577535480133080278419245112497273249396956114940092117449377241123398418976534487962885958206607940916599069143130945135699131734311828722164536263994428890895631111140421279497644437506974996630481715908348239449040365617900397087807228190040550316636763159527620798448005419091605756789494490250654325053863076734678029491871418268471121757394771027375788502709903407018331455644383618492221180827927136899353461655228165500374441581299813150490678926465803427744484482189479643993643614519672565054586779531066706410292571306785939717847017296169919409958158557192710538123899648687469471666687349556857043679171123962087278004641573620332965562040609343214156673791254513592853427213740071360696014057227627073946866892103591208144326125976316108104539119999381182003126723583612110100022720141990066758753077789744511254171422437854238644727465001764372171503217131719007732782158040462814294076382326327284283311007143382567995703206064096755480901021579869071364748273246395750446773413776882049410513772275479019500968454946639297282134827740746316952305219860370235989011510261989042093006179610348997668872184332368156059622117625889283144737823230050636646346580964672993896878171893147755157692386066351864546441241956268378096278031823100059798866309125410418190733183836044534116993774289853753640831096206529252436070413889619526805984401319122316846302693385393970540212233222294071628509823797357263683737855624807398922047164162931652899717288234888160225190718623718008645654119032158704618410812059553031421634957141505453934712494620333426107013775554541741871952947547580957551395115712862591942461641748191281452802878975989360616350170112030537778832973380288365256331840381184757267839457284868906844526482250607380706995734611209580799457002516293094601899012798122513870827691911442880457780973028064016680043104088371503915081800033656312117363974293776961631208896665602452307328554399899330032827863800824671604657926352771315025844649055814325192197953717312984092703403656408048272102052627015376678651148942993425722126128702722914006603075071090356295457587454310708752892510169069516465176341207155912910465963105029845650690888510363485986586466660275328533647868146274249856784714347979513473807418136236313752081974824812957444557257814254895621782951415763988519882507338402579181919396838069364383393452609052620279019415734955890300691845177413600021918496234549100821185473883775421999454545364446129380064257565019042251968352956035681787730422316781240322706212873978889956504277294895525244265805688669787590570423889105890912237957919756131101549470371655678353890328155504006237180849247125617217827335275052622901817620327564092054151339141949600233379286972118824927542521867291706581207200595370597469186808032376956740049588752717707744094728445717988832927002763368830121849712137005786991748183698366967403039251014103373893376404760743559283423236371474622766824427505726118191483486025142470070804581791895107299502679369431581569892606777981304671780045265056616343839030169376610081383892502747347183613800054965491762823833260712240222367559860721509654872318131384914584581110321948287648003912778060046012884547425722282311868361367992063100788421771203514135477670192319921688059423935647695276227821958833148154295888857271830774744302986658744231063261106001372924601255671412335104411085267798329132956506723682364976612355657191874763376252972276649771364118669024144054472577796147361372270448856411155766264469489745650164189546795606076182633364652753346917558669235814971682674721591150816339511279884555826639867373658313461836462426723196332909383113761278642579677665416029124560439530649236829170162193148469531404994230884281708305485941792534385189214047081344938381872527997062922420265605818474714319516341788953967591425381527140541774269688010891860968988278755261952541051996439583190647232723295871672842171191798624711811827801446086309654897549431238508823796351480938408802057847823014140747919649108436444154138408624573538056162605360454915027004254413020026667228340191827396406769160916578240268588330456337941215486698594379551270808827165833427829042608096402435198458616440608779804734883196706043151282171946399205609384049992536084393496013645504014895046448352393350786986632223707408496127801201093255495506971327949876772619017296201846549809726711924301217257508674345758168646139920593776867002864643600634855852911649585121533478697331687473951253137863520153231004929421552948088141111619625805501804927154287478282225295081866703405495760989065754992948770493702949223553212246024017072617378267513393041079485406786672241118716304971109858641866727203721358751338818531204733426385745858927404023264660126804607858544559336941368416973955490584092528661095710829474601970289554740183579638208691147419519288786236273900943253198310616357900914574506485134639080437001594011720490793752906716536581318563880687647121123449904046402963938085062276253898919241172784226274670678635151051715464038764200614560664843445424817364144986792739479503424344522965303019888319863044673415525560053704695956668868756023363302580108798373322840913549763111247489088629108929633954367333261286337060244584639302929384855651033668155478465209457914534941834507389920027259361738155242954111370768623964895555754311141315243408875465182907084701372134117423456872227366059203655699382656047579441959995539971815789645700632250129596666729017051126131223756744950040171542605796183986192621651328677692038800426755302631695542570924817829759291701537965721515300720438794558794697011792468046982612443586229820411488232677374943520470915309764609215868679780516089063382032373237607322769575715913262550268198624852214918823782582570909742586890486173604362257628375241652149554527834345014556620694306864443977265714636916335152395143425610778385447412573699504978278246908879216072300530792865183988215237702181611396380732243152736395689396758139431451194306964444467219909374645291809411290959512283541455937453490881990628466172590578144370165677435774792394073129061249822716609095450858164243041566085376969182199758458684973021088743872509678285256042219293291036630532051951222108614807725355177897676536167398242850699217683293090382102697583898427187749408037584461637505395873301085575284464749258113248728262379554699148050483432777286686699873405149065431844908605941459063712089543490011870614641374617192618208583651706194662743546259963370279924393146091231083949566926845324265377893694746471543520392151556814715707996372895221704357680910752781830502911102356614547775630985272446874513896173939168774642729394586556851821364252552361583210186112583820761638544264646164334985270608123658233002920904363574714171900880126806953876481947550681469859898153022968491820585981568292836335936801342354433305618821284699386158415656415246712170169767023253806599882459858412150849514599634875823198395932424586584418445787159902066408101992887329841826701745075656779878238856776524764099508695450719891748259962783634450107281317696130657465102686139649077322398618821843677313676452546517679577955557061408573808922522263074391625774350976365271035731271203332684259480129585932488707559030214649761746015328650445836438848882291255754251819961059217104168638797740155386325415461063135846705218728385853796205723829827884472488040678507094000923628735275771683602997683039745243465173746805090420237697987794287230387570397241300370114091798255943877249294310771233481614004068173835577139989711076587761946193208179487814824684232300786715494720355243909034131701439165029388426030110973445568551561132095742124275917478113182667510529260348598575722003700906500785404065035540133638568884339096053418035896300607015726315595902734143765546932248025870717283518236352414950989588349470741030521940691841709108199378185911391774238968520440925489909305799601762155084024032006662825585144766941541788440996312478891856465168782474287182921457958291444426507224320376243459156013615485361098808787774347664703763324766184700346826210382712916080511211045256251454858584658994757955836104400118025117421897848048606985735498233129912413167321536215550665937209295344617372669798519867409501778421739004800224536282551188736154577091990248260311087304655939128707035321973024954000843701856675722579472251676919952685476063524131564669744471740676913915474146526578269424263583460640523140226243239105703662963694039239955601474358334726518572371550133143225299434462068327607542482144201337674252002265908747275731363925346236992812219157595760248576958180818152370276823206381725238891090502403012224746342666389799873411743490156433298504469433887820617489239545224499418475219625463646032747981094952869920986095106279964630944084112558276787167950121977801016825164359903388896298819607437855078367194220874749373283742600096334125102070742223356025833448870470957091336923420997729560700373911956437289990048366704810867552724948189639160041951645732997477129118665637742814760950913385671880586623472447721651284390320691529751599488033239184461398205905489699132774995184000721573707445112257562907693827498016681908308748506946856934486297699193726127107788706851842141767618222828070410469681773587523626265670307060090698733061555234196056071620345135768510101532747916913286375678904683645046345127772448166566776690990060080521870316293261197795739303522263343377192630023833155011968970181401829263881669643041849870915840161044289662320133089294410268929251623430649029907235612314620200093488593227283316972237722913440767764649159857351933672956666498178529758471770199985357078374225731021670447166805038768696139959508131652378563348104517707792175429585606352077582395464365275876941642944145527466249912116661585111398090922240769875977999336767994080840023432321462010576304232753108307914915167214137582531190242888713899772352736753990270222412435329086332969231579075862501601679938744759275650117284606850956881361200431447980128889588494393251335849990113735972615010871428981197309248798026216585117842157760994713628179622275264136070111882597229680300873709275454130765987894149948726964219641880507154969099586749647747525630126328008484174390088248279213611738860629270914630592787339520185430088996319356060742684564362929250464474680650894049129332349382249091725486837336288837481428521677700902347708603766355801079738761216405168846577388186198098502565752966306726460448239538153394640226810689136497767604054359589725459674386055408397069862730463746207881576222305782559185357942343099552719498116283354705323463057224386388014193417548811558745868072737587441198895473178574247477371013139036197152362698884024660378632406327308741877502722377267371227993262852080070574420922001674607164010031674691971967481547386410896436377546587059638450600419892287512035180899327180851483444294217473461016675497097883807756250015744610013621504486867121890019556386370239742334711488680741937009883502341194254505250106807193449481926731377479552224125197615273324371463263857311053986158536135268752130334900906840425463681722172789646287682005159776831548949357694202714888259965215854776693874526031489430633494314235532162558092768072570738782799879134592799671759617526536524612524560875902017441836678291511611403589587350961569575775394265440415297006923639694922426885373318495855995214966442610963235790218710234492187875740605848511797883288267437709300365201521196238634981146903271879809688065581456798948357563790486497965044990284917586114495586274601021955871149471494512512794214788793904850051601432853199876946457814893618632041604276443700236407004187080268749975057022743845707319186874026667848251237479301009452041133306127962749884992220957826314399056383633917666209158519110890943304761229049642102914804137653952059828948796082469479046480561520187672803497156786722023541761032923352622998154046521151464409801468396767236266421648116233213811097478722801107678671658616161417111101901574348263364689985682654493505813437188693971950642029659751788234208116617160979392624385544272717217625757839102307133280596930321434492241226742809457791596852443559577815942947923295654667645614764716190459989259641844572636349319049239963447632611787596190998179972694004577799131644111276809235982936136651271230997653438568115945966659594361356391131487773027985722175101196789733283375866030029690548452894592871460296654738007113565446663764182986134137112991473855957296694209924941693527078277275979209162954472093708893043428497992659482677716470289362396856272214882584510148974078287408915318944304831122225265834617155211822270193068879235173501702408399736805307838554252510003177479630919154775263868880333736916215376292703041577872111212108900381607301273243286918923272627940268570143554813789158342853579086695924352841795178797333630793681347445031567712259554617257998134542492800442213106731196334488937464162313264720795293273021121433955439064517328231525557115983818795949022508173074849094336483480561135494853154168333503534081929061331893101765063231704048717816346242938301345468607988766943055862669599751768722034942184744052645086648218802225371428861127446134871671006503847472519953750534848539951188496595233535947730774760610161642510632516813436773994729442078647017237908996320690413898887027887056503826641086453285812167197911682804348536347047281103129339178304895502460128380870743339610293119939289280365828134575671857383419184517388164464462928342844464673705148420941620963781943560972646755778815987436310731142359429022462923647016601346604619299534725892672392660849608856735292597291815969579375699952981443343392407962270567962809309073920192205922733071103728168648303184014424806866942454947191081791795334100777417632101605864724686045231988011358241260347601651492394966257063820442179468686055719948373777884203349752067900083424647767638148856085923003792417995181642838294421970929549336804321189000404444914570174567844661998853785438831803869303451900820712752864735294323927958502849708974325201804976671181411232741573123897788928583609396687737624873161396976386178045268666051113201343541632017556738219500182865042163032877977989767617937590335507653596884937288861873078918721646181226588045827641413144839020587533674344782450150075313584670954791032217321978626104117754707531847479108541179978830822288971507990825456563968928553535542622621873491543631889375303735170130408847496246473598220372575148302317511985083450522058131387445491442920565227772838362649268693210777993526152782688104769550941199587962282854909191865237759809574690024434116965003238548692146909166329967295646436453468333562410436271354145495217649242734642776840982091623152307495775165600921584459284374860300933093100569538951546695623599744639625812350714658008183870207731688500101110227077149713480720350779402051086750771248825453951823939624835362970654381349796131223714251742345525387336385503763980736715826934413271895345152255785866698998866158563002064884299662326239807267130096790244111934400805478481872519885936778333796648828712620074133858058680214320277136773426471793907582181123916043986607460939641900862207971524492854356222072527714644469823427525258355204287733505101244438771775617026281600729306500718253047956182651829739243739512395391446534918901840396446703536037416521558785783823013551430217257196171205113318692497044584531035114157721079466417404938551621930821032729696031748250476131480134874420971109883348083371739791740027428552569413161839567526462107046681882560549369736300428806843545800235021540357613586463088634599737862149999573580091959155285221977338242088922404596516085164572111885181678749189854602537838017489709265864023626060854220584931554912026613472772121386912542439674998674227588390691921017627121760732215665640207793752965361295570637853867221385024120349231241050258835584043243410218398099194459110261821014178102243952077623664966417429000941292340451239845299450632880848261380466200435319783551122922097104127252197234434478742430917354168442359447537188939191153002326618401404853048996369311209119901115561686928599544763383616885051991119239037657874797890201544129680508146375948700023991819500362173668759487633670735972734675214431232429499856781456043512948069926493190371891975283222924317000115595833831645013511285133979874540975115093891081063239585484240937702918445239862684484257290845847492064462555638342571725819351956478519672662352006157770081127763459738840084668266110564683446598347648988059074521792331048259620958149331938823931641177593371988884046947689288527548943858871785109524227139840831116905747487696551460030651782918331640920411992645287313398380808994699555909325588556816163345647316539970371243843278073555577617517018808032937504465606648589172092555465620484922557955259873527714846455042911696026513325008695161343293709179527803793770387366385628055474604353607519012073892045305555308387696450289299811507213724092086430800175946555563588998092247460460968306972710930873714194853219093760585668887474450088088390500851618131806240336258405672274741414694620331638203535171210991340196603860674695163107414578570872255884275093623300808397276720702334486868753319595267964243609861657745198109873635130300181876658114349935579988472890870120205368153761663000367610917202743797994429957954904785407431127899366612805609036310193276633365395087586146279704396967656316254513809879122306549608785880207750073921090986042237550964150861424453695911962898287317491826041577243289809945381212125819736449041714661012897277074933874670359263728372156598377325480357032801609432225411899940734175913512780793741180776258331817962006023312105251407719258804525192133365417408610471302512385896034754429586304820243566683256247687478073670026985207783371885594183612547935905736583510210824291456567568199171447959064205698240940259436021055548994475433075156152410621093140993274951286208581060590277675591916363744393740099856521293955441663469802863156864475926519399465048827673835560729185074666704289880117989218450183501026950549819159940214007235348957594565959488132451936432357645771482248577776851200622551516660056611001212503903634992307400060000910372001748889352128629548525466101702928405928554932909259798216592867600952594507383783464180809684532118028900417579769382808897851868327490694150312736435472939257183321571552590334937982064045761372636100351441316118400612505662238032325616687406024155849765112015463678030985246450021088040731454096324697756608987435690401365450136110746523897253512076668074360637964376742746335041038637991090856011285201045384962277060248032405721494919650554654182580311878670816817124947809903518247967528074102466555839542882039697672574851140985727669888612767061089695423448736843721068881181090362646818026630678794633302686245268109654095003788080486472110959589418456700130752914670068343392523356840751510953157279561805511871891013117735347088836838637996032355480078040343916410513944709211229727862441627961611087926861432431865038132584764444789694529968550611591993567707910418558001926310464385033541722705537961229510297241440785617238208125262296256205663775274343883694489718975344739878672802131351775104559223849031128848049203665632109111858063098779862668907194924294489800834600387932884302888400896990816287518207284902311823236129585977037856303230728409253464836734745906561467815279789695046498428580025957582038868046884425956626885124936973531652967893127152823645455386531987750889416703229625403432264992141197471039609334413793700528250365705536757042859789823546065807997090359609259359548486902779526986610823893711392924398546448386996384284375178712523507989079207900995365229270776144635760047867611953040561506054024161599040927157957169077226790687268609945500366052589523500916219051894645571372725265520522058843974207373550043461647193848696440811587604291427829480506638294331973464568281334425904345687169045058018138354344697034845792786852313676832109638248033979892790616664240612566306366373436601283864924230903618549245358196628284690299630327705029972046683226419735742758274084225406609610409289439577611871529845043692709561530154243915697407335193730938200022448749551448189183510250918706943410041612491733867392642618511718211229323092784907054772266887724078369938561611308451681340064343630129532859445262271001930134917440251838421068519838598396788784734693758925836759487595187887288775232761527637627500196753125279080057249743890248321347133838953494473181140930267553606242677921107595972114533248688365804575815366158308682179780639012470756800229922211517162280438364776623190225100915142061322782479522855385004466610318163543574478977861514958089154412624922925598442445029432972209263966029430337269528298075438118935445027944655071420542269511020720689905181725361849719387138950694035431081274153731288077444915026729203616640549005348929044800931359363921689515909528357434781620125083190738333645113867387348237136452984806234275245737574619366355476610292507617184551137285515230661234796031601133215352892598298607486801904345911493257463184975943599498882197545906927458419485028968352287250067996126818523458391339104488514390915461521652461207584446513569471724836903402256183565394270743901123190722735087306255953112523935159691339221832735988980037536388311761502296783607782014785014476935153209704041151289244490366959770906706644959957999448483835563250095753839865150372127647939590275129640714707242671419253203155053634241672576858678617522095737548888678542004516736147711940632046335629870978538816134796696163070952840385341023690092649525131763550790786767593008040137902768025252316984882129958287756082199222803162105610467591746005638651278678250626444913104327478267697851338441013174105521051486593008490961179999262277591961042315259848881911481706481670841162699788673241574810578833949370581300921266062102458517432963421831025783410796641870516026610640304395864561207397859243042723722601139224180188866655243269537061539776948224067945591142772970679282152736110017492711019790046506564674380086528628291744730118795097926087172171972693184022408030317810129131050721912956501075305222552571589457823537106343660485992302930414554156422297076399210529004619575625954423256429744218445856193775430586402256006697982547531163397738556033971685236703823763529910125742199398473942218791461700466422289868213931783345348113039959433928304522627329158032754621752894386640268897005418060860354621104508813782240051983403604991064445824067723197337706591761303279407744218986096240311941479737942448102741432634173137350063932060719021161167120582405651621125750068177849882887842811723248998359837400976186674624926900065724798632199620929235146744594797902541079108101086779459575067205084203285040754004773914569735479346613870851185751295497354370723211811232900703807428789210607527409808578324216875853770088018635762238637193731822818649991867496647864138824299031122330551440980233779691210128526004865755570368539016487988232523162866460502682216308213137521269460031459763807300931385195578116598796283145675344552650779780504657201856229103607133204844005448259642365014639584415465379699614191901464921887049413002611590496373903968945516081135741319657915317919892397892355028207385349751883408815361041156344199830024161886089717810103286113175613439901620249279071816689454883573021763655232477990339907165834667567267693349065962113325821155767597961059016974849631237691358739376869375261948586715659407750930640678463785875111428772490017619809524412472253715823143892647058865804404818791427419863922544858639828878895113695776401082075909540572659421191861972736420895387768970443104624718016778615285066570117787034426499955786532485418322146799376691572372578258015809044736811483796511626259559856349133090500821816881420225928191898814199964573988526333064416955638383185911851820074606399583544450843071763080087583654315690702307878011659217228634889901552418756586537367585492279323768229237003873826014120613597754880862767353411050811439548239908156262204431742303644169141491449336615241972544036155992460092777048686372986537419466264366948058298809680488587385016954300894870463748073179806750377003256895042805921343421799703876220802251053193625622667037102871117189118811925232063563174240459017944615540841445015712976215045671668675068248353406662152146892490456464767917145501794346923728182958566815698329596554603088957000761407646376003596291159904488013699014910106554687931220704014036086995460559274142284893799838769726699845055574480059130992747096128950660282087416629464873725251371227113001481876621742426626664739895997018875804127264230975766240430531608390982064535007140248445644652404389109859227089605030626969570844372993080126592466396366855110943652838704638458790110296016623486799629980361948453230565361650411948982278214576827164535689410965532851184777885088211788472521113848267364430721828046196932363033442147208027596866129659942491100269760536588642115901018452837619084976569557646172122404526917665249351657360028897100465101597905524816076688146276797740589505423690948782318527149452582126907115667564928405885760971534798155943413625376394088869003381399637451084270771267591294396532272620949482848891676627603019381415919412404474512389168016884036761474164416357373268215458098445859206765451596945704881769656111021023620896642015817052683948361103026622272831566623760024262084268231876211474276993685998481977890371678047656209044342978941885980642255062754393633528529693944837994689598022643072446839952087012300659372565252976916647875167691324219767549579634900694039049690450837155159382270505451138613836977203459621391060109394621304001116261656802362942407174204048977584292600049735739644307952772271743408990812839357850329867597220670734882733702355880864831575291623784300877771588853310904015672488235177257910208829837174051422326568431111261770375444357725746965982364951189397608667861693063550207610366181443109188469934254531953471520868977053655720086956377094214494685240753380903258972192987679245004866658651731036509790463214534913818712571855577211586236721744544979588142036561949657873093001629552350431255069063512305420489327560850673861051729134357599026788536596406064313740851548232367103581408892269030181633307203242844209504413692026710018824266461800360530062010959891643434728624576025882891598481481541137226841838152751268451144383247179736301490911571264120154069569181649258241319468962067558869931663005081401578588899490290936285138805283091642472804558086788883901266158608455093333873917059418504116958802584189072456952047550752998004121394600994959479636030132605101567340869228093296776172104861964051953534418574823490337305477267495234558746211821918644439474224654776387934056544099985755449641284248705646863008676362793642665553999071942491860281741660092789326330392030497411227545936034590355465688475719100144228331278169955370406014772223581672526037957481236585948736628774423355896098521972683835808743725529114960688364739523540280886507327002219252228900763371572165218534517050040163173797440659873814421868721625322918470826848386805524534914167335643152832667970776801303971555053991031542975737161582208806914259149043848433765323760483359176779203721164233675149924372882032790886894169509179390545279072071349424038885755580449012498877249236332314322774781877429736540724986690696654395002110974791570729127985996398530310360376727638262763439143305684637745639101220212291719304828938917290041194017508216304169393999997201253134912137261523787924429322520323150216884087563155471772365610333820404917657261917121822268426470939235997782857670153727814321040182034716780228203069168533681668814699146611041708398888025279098925248759864944244361974198990286447454920301282611338595920501932617245064037356903265765709702629384400357164583306170359981401294168293859502892877658351208594819855947339335119031214104463605673232513178760025994284217900966819977079989032418926972054392836815849860969485770607793926886103411931041969553914306968495852034255414619289344217231413687603876467870100047510725793462963246804540203929701503245274421142016263054990802446759463289910048236426873116959734486058915973470800724361550244232839591176678036558309189307672481405384461974373120047313061655466022750864194539610207664502586745510148216699452387078420600172090239581229102378534808503673020914740897327185583940482099667512735678196505033890913678954648289918879988856085501963241199073052103446942475447141126531451221602043510099614757651142010815125544805193839776621903812411961747774781453989799829035704603011879728634753680425006741714659750493355900316248144316948430710316321675064772125721358921410686685937471288477881946964710323668297364145435795241939178838495746508135198818611009817298231648806150771251096107439859199865742417136736440293286859815671840679061949074718385068155531153611107612712324218985846646179062156885369887128706454209773856387344278793249785042398280155832528362145061487372174897443092987544292424574363399039652527840985134478075819021519245912902644733576735625059948997297645629093934617146235288597282161750698595175310268339938401743048304198471345930770323586458150849258188843876484461900034877396634820563399281041494575191780386939119904742482726967874065680784018221538200022465021104617029731330669461841800839307829741567507399037626362431699086901312683256685992058552035944420855673998197931267619086685554911584901714318159199051982084324680542827358270434101058582806899509250148448289601446083635596079765466794205044790242747124335364118313922828354156316160405006581536419912535990589864010027202107545541676795453445656208106267216884655085530324714392451755871033450095064697719086115506740936524715601352210941335332026882279877933386502436399768745205826020361318528331968375216872052265117566983961164886918743750622164420367207170268788091311311570687952294359096879348031843115812839507738239109144318998774133576142042382721157199685630451038199211890612013106662820960792310880165973021168406228930512553546939645062609517979367602736988193533872456504677682435929812297791728268530898845182107340693695794159651051989433971688369226730972062202130185069821096603848958053016390878929683502556551870164844297564674025176959026396915896590894272127936648615714651043695715858521277535178713279385997019069955084657176927385698765626118552406939910505643869159256810354001979219299434534666733991354574609777665969115122721225336552463861648738654314955181486706414479949482274564362252339124052561650631248372911427417839894199492308336820978599540839803154091852435124176239437189757518102618747818470757976895368802734663071160851979296862118202623529398209596057574142897551761046299754603413560743405489187084747282839242904450852277642664509589816614384860952087722494278689008231680643981235643010052962688282586077186878246874343725490979092876988450791002769926047857732201762312631469463097917428567698321744077252615244780873156939852741519804510678881597312136889605111422903732155430205402501828522015099487079500255031418651199678214644895060726881510384633964854473363347745323181114534463790400804449453057175021594285000969066373690606047432148924675064148812810837649992994566432746600814915788222385473447805584900769908463465906503499898673099016823855250191303762543327318236533750186831580989791097389375645093447434822239520199044169886627787623714829693725760936547233272968363301787119304959158376768316400619601334571644653363559391826853835454634709201217121524017038455015162186470718277939112961003517329785153489896047561910333687750796478938242952314424448398410684346606318345642643836553231699587908428936154041978604098694175219576923978190715505676003458997202477100584714443427443947598292495446902575551603661642786755669049066290474975871105616777596848989897957470054946296988614178966144462815696778449393414284484672688275907960793008152832324208718354133748853215279758616910495127875866959172849002682573498699298199079585582685151033782193626554279709856781869564590252881112256909444571475805315736202457850992077001904447322509902796699188724328108593789452243323156073306597964325021327227336160377321877501164815631470657775964882518057011005984490590821160815664065932725642677971442126849624745292617468220648254154969287508392907700940698009009853628283939069580568984978518412548252836991300699354597975918199060629164395738032368798576694580899856008829187948695356324783283485929071321854454601031677068399978406928217702589364177023357179495155618039228916531833235560289346617516157924652069982263578553167397816017590962869264961752116277320043076278703667879709671516359667877814619062756219490028974714473876671774025553140273325783133503196646331376048878020042173865192787088782626844837711593656156277468297275973796020655868430594317983843909524463731511965586330563472728393862670428192408784629765246048192704084882242111452430448482084987660131575806942592899652359784026163145885940360474774052139261535935023600945620409380852580529948718180195756772506332355064243844936599212562476106304499276321471720273564032407081750412119845406963768306032582571838589928231442213044717018326672818514792633675327672730429411904554171420804920074316024004812123964463344353547421678368358708665977362938373758573407382313426449504482619358019894314528105852885168177901599562440043849446667043940413565839402822164196100142117837065272468381237291677091165023458901703990223611197247476718960031710857372429191950935654882525271971388069203630170846138590521780665346887149532861739732687492420622505669068541919416226427504111149056823234362808366798763163933687640979525473426709752138422979142656633368122859497632226007124161028958129912330360147594847523603668587389380418899308617033738618630528403955214508282180711070040324170314228047944182044749244495160804318900506586025790446257741049892589908809073274089357575288291682282034757490562735938584868665260140259798695805905894068948971355011289872744526572420648332518323808735242267543217744601404149082297022733609842571022310605274086810821968100869095535378920623740026368638941788619595195501319898787087223636427105866083190337926734726552353228705445292695823227181156174300626283937466020927877969119045778229301883282800400343802966399650626199411861183025568010642777250590491376042447768105496470962337755754507907384171422001239952594146355170961332733164978590690945109714082904561434882882465903550063523081384703327375659119267203702679462699070542365653741085312946417411420078906818069914317268431076923861619145176867565156061016546144542382039758252997132424654947906623466524170740079409248930766897011297145638901777256857849470628258501365423257584256173776883796909735512783970076683712590802205284762544284637991477786528679471772202879278481249030577949826841143485368084663640504193342490046628379859006452463565136067123743982848181770462144172316897261022411689241394244935826642270407509968891453835822553729879038937404626579408241526264064649158490340105922854531444730183601791546419758512896760165323784120000966423317606078643782105233667287780792278965989904131123821988984994497187337690095814573477281333096719283041083708129366592141624187701150383229005526718016120646458314591329662090601934214925639811995069271532744615241840261897502802512856731380593977308191922126130838199019191283749014405089616264021103637556197152880801842800017297361426110607115885161190686906507250761883195110314368049353319992900325841257162838399097037161650695107918522258579566173697591037809637586736677513607577934504256745900711634812500011932595343555884775734032234677444285766117935909420876143709674995838146925010499893517191044336087648247050535335238471816566797325076270197238413422136967650672659948233841665950989406078956062677106500210115690843148222395530479103861592450317881248389644294202736904359856076972449457444293455884506612854240690409180993188680494270381848296663348275552787029162554468265007360644212824016777240151002683323638783736445746684599054332074308791365718530675669797724817146314935398246409916152392723193817495715635049878791298672851185103361740100659295857634022130278816392044088452159568291918178374392997439479071472297658483394045084887489409254133382908659262507727670703547353209937753578426377289237034886541036864975703572838165747642149006291078271372123103942074045187391501818401711764092623693449779266791327814970205385160585253952831109027685689477850223218903105408157157403711173442698759029713282523414472773449535557011984549991565547144598704330528825660891655517150001596256044548241686910779880478510849588674009074054002527941560387380596120168586533185121197214350693651731750108772084013929175389502866252880336591769332434756705021523438814984452146400346912573527215964130927082148539615566387772278457238108237270132971824208753821301136183319428977186220803128414955228971899785974439584259953553509586687607548496002245022797836596115446406639231067148348524266549682022898413123474565868736072750542215917877631132601535023702452440018391480816620968090882107893717198575394034291406380527432144530249449418333723229550512871775600446610381199870811134852752889033971225743193744224830072383368387357783865136938089817295273479607095872200639833679543526593236763337614232811019909944790081131977805864393502179584005033438620236472745504349982621139761685038342456349826017584666425694571804422666678236539600770399788029766686910909039432984002871994974509306431216865046452278627381888903889481996156492106345104818996372476088706697191800381099140576084046154312244775966821070299900556399354014614358809074567464038102454024747361820258114159857167454304322415019794607660478315503290425326003211098413166256789659444973258230311497839831527884075340603188475777711705059655024477760872928498246427953923921705242136427652747865332738462312449261865813736147656765244818187384481689234055808749360226514554427580998366969925247389684717305070314514473419902468874621801199714869218371761112474253942874244295355046021788282269315598052294254895122966652104764351297913865158825786347585324254762166186886054092164355119025564044148787535265668008153106311259606962079174043089830409165136168020987403295002424472819451912168272843298040556005989603506561481472390263277723299675570149764231329002452205458985395457247908751710533317329417284073500817126565969070643246070029288160761204345120962473377451771091343120726221263724190271554338879090255819379284054597542792519337431713141004392421522000585528668156233420645840869817044680387018775036198136506297484086133972847988358636710129296313636438411098339497200694398194171080692552242345023606607108786298261360237638028994384541607302643565870287776345858773995658940665321179333660647410477081403477246908231560914665734723685922002277338322566075963227969965751408938554396037782976949866087194584856706791422452029712510498437312812366995019318418167729533984297406153210512081495032891691678399726093858169997640224580969951766149107394179794609172433160203489026579747542120510441538067282315584236470475374000083120450227539821555257293299596080397453680402391178291367403630706202101508421359838749787121372387195735162302994730634565965222405181100676520924037179888820863479463634862096796924681274150303348783194947513470456493363408659742022724944175610694191048684525324326853250703241715893844722259199017017787414512177184846089578510846349619398759875256692075534818580326344030526555993049300455394051926802435291337789881151149747125020392975854415675984893254078315770266808441200944581879825164022618389522585654778272901022704604480664829459757203468318756000602937542937502316034719765930406576493812313979986391769457840340847920590472066072645542780452851420691991321932037043480599567357218153741386021781298171076676365425845239513072274154215320864264334486536031246823843712306169846820549058902872976564068667826083858458642141393337650257888701715154603609200260439326191685343156810417243526543132177225622743049248232743938928477065336581817527435337654613174058829102981207577918083723395320225156460767502671246747553379157434172558212945845191330637549235124944433602298047573999969710736406766867448455267845869193136678428582158859702163067882615696918330005558785216008049301566603681174886660670505473269504251195394182955413290009855976473778753684780064942431920588364678814746292940306367160275014070225498070861220478681481006261978397166048657869008231448569064188364316720846516809031186656025960498868197856598663994180727487782783615010382814664351365188405505583449314276508060555448349835644380408490269649942641548035014139703375616807195207857620215921574140611563522685012805110077816467673929121724627475208901236082770749359902125808438238914529675785726343846783406917663875329877095511636191539273501848278922583372277212884176111992989128945775579107783727582233076894791607811760866557717353238348409508736007968213635768114481369919862001758978045469183887071412093783073431165366486520697712758809274045532624024483607081070271869993891705292896052216668753962264970608160268999862153531384791828670045377753085073017375135989170135452970402788875236730278491999954717700730320811477225670454527695977866137939217806771807146163421630642659377475961530681654341719169474978252926729111987891896324561309131363831177115841461316991619678856568076560257567926906104081968010785621773262651355141750192747580754154889603837588651110027527944557126760055466027677008535126366206251698122121143142992209360728382889746524704978202549881792234725130177627757625221966199178381031073153630613767228504246453941770958362608587644474605598307618069483359138092012198220037755270991360065513826337715877032574281627362658205380337974072751727585209399529739810570753030725833249005717794202979564060627863124630491107893501780504047143058556942334328725420569446306917483279880683601366033227196974502213421258423169628616017628588496915027500803171407618301117094142806475834884383637399170136534084493037752724792205795734770020747472520981506561653614368737872585537979565559530678860052974973514547373434065175256674870844235652333938878214652248275338565616895109805415163610578780517582772567158770251418688641742475203743864351311331594531000038941017284974205261116578667497389613107379862174719555374088231252968704247244346266389773354473794565732002182311688430796689243395056019984310324907437902594782737953308501095009243335009321461883207926609317951065121309894532246494543408600179884184004371663119732611215347672714787392596045676037420418849094408370646404797107540525879546220338068676707182819020345179518368432964029168167214952218172983297279562079752778280641211957654670294135720994277700166376759688325806399496459051466864385784800091762117924013895332736862458642037005598049856836795290854084898248801467165999350218978350250620778120717302390125857897115971658128862105541001579416602597313295275667662095401294141953584170081747465631660442490195935136582311107675256472632571724038807160123901594351430728857035342600056707133974498461270178643894849311744092080623701895552375299961993777045750312358602971680906745840432108965064885747041752661242623393176230611816512391761812673030286675794115680184565109266683381938874820141778303248378837866954554457287558645434856157936871260121242221898558746543952525493732546425531089985158635793307021778717113429816836757410346554166208013812952625251016171972408233021889846548845051662979576012656340646311072186507857155075975482233680464024511069986370748961861642580203004433943170587485071406985090507076314528702868966512512429881363156872977170203422214830602130441403093550965095429135117057643652020172510313926516198580417994024860808083759865316387092105324799413470464458826945995072486085019320263252937464698653142850143327080168612257699278133271551554771214006568287766911984474044005935305227402099949735894253808987459267035266786133772033026043754257765858999812452533782706331419066132453789111282215631477721092077119538865861703305882635960092260858728583944183072945479132049892172613626773570799482863936734052559121827709873316848770128675434058612762065752319758345511590156468607967260531329271501041233569360401289730772544457458010620605239230527351285220932547777361084134497463535720105881452666551394907985363837826412471590328283567379733256178766019916045253855171112034887839434615063572554512596002060320539161796453717680159346771509472556667672023056504004797162845788459580297445351690164510029573444754098655332827978423401572788648728241904590382549963416507807956244432004801971750734574119410870392686260131769697636790928459433804173782317224145611128801902533035635154257714573898485512253965131160304641851150385334531481487369778102341482938765898689104633429810700846785339491049539299983013556191944801727402584108700397759770625405793088844299704595446214272865041311046244412247083280577095701153133021999992744004311408330930783847772738045074617148187332000459990403363546703869409991461581021714720223333064443627367990136047693782692298552713390310630225995497851654876507576790908700709124837764042135329414393110942496092686866484416166319814631399685748239618394264040191321086508044179973409006352405067112647509030742779943875980185225997950697420501820726767198981134691528732424940043326281675224607143407532130009325092908119450196977932115756297233397713217268926517820817822848178496226401768812840096233212153825355327423346346756236379751963588586989867988728724826671061837277200950955071062466247085966491190710696865069417283846219659071475113360601821527065566303526100718835598423968894518228415553304765891792455060278346229122391458675471402574570986695869918547627869165422489867411688220635875736506287335014003736717123092480273303950479612914135277178771610721226501833961867182567399238416469077612516323334439380862049277291781596206423600329453198674372712245966249075105539368003689398208818340293986686406727867712003098769618817005075433624360822668187222949639025983732970309228363883610710147368223128869586542736407119853197495453529747848222983685515589953613808801732701578671515984704048528161610072728865294202593800973698050512035270277491912599517372579692201372563863909236857398768333457792810903543131124293534306548100464750700009857332649505301894173402584694225863001198391391151722225510790958108222146918295951478966403510117280337315768252899661516045632264592955278418210249330119729989931182819125462430889653480334905134017696804171735916410592016232308990054256404320043676977831120545004356934620798892611525965789683639603905399467447388794115244412444034682388224220273510592775033715096053092374361232146400563717415822523598775877574907536102481291459242964762734397302882324055008277969870310037645673184831698529513533376004135952184812257699604680855801642154672644343824531888551491769162234480235221227830457453499337284938735888602308624488352857720265245262551453008983043751026779235607710974420917579222057405363557090897162470232843860237899626153893954250690100342278286359547311802743121944388240774319833702408123157105445064709311855342152787141484324502719851895564553266850089479606023248187389567612978614770301660783299453521805913073174889646528716097506553400506044612107468128026350651890826477983168330560061042392482318302657053332668204575776801841635283925447612583704233175500656563182152438932868127612486414375455219228162472529862584584094451806872517106074827887543350719782561710945416634702218796021649496601107848517516002074160177985306684581942392576591322714213258361183544280821122070799138515563233482600624478950243511194380428461291817590379232166502119103082076827050345474875535291706560671878666327630028815984931039135890051134674279434092966914277273261598979055610810108153674515998763732372513699834186454437965636522255061584216616696769109539354364964345212369029480059645841386377304284208681283155807248553079999616861479465008627985232845605612763697440261157329607621501465677346440921391271674458702177482786551558377073381116850995233587638540504233547199648980860938636314454918792831613279059676763524331409061913324124301386934787269533815263621798998722270830128987485281443547560069485102620356175666333504520420049636458484060212709021429081638586799665467958527516248962628466874407287718402424734374296141184701732412599033028012333466697391627704267191516910352784058661099128143265999435174189829428317328860426446002472870076559395397963956088845526280917125962844000197749688990799139757005300022536879932384466022624964006966877214455786133344048203283158918551457609815238618835572435857621344111096972446260929412938917078233830428003608431251005703198625414491234577836247658491342982413757803302805489268255665716465853732892664477864822743362487580114037593625202504695682576705566844683808131081519964180093771362189074705689458251794399089833883398244277896681462415151416194930325602136887014370558627442763818917274629582423947196742871502951986556284430435981300247092548365618221460336250992711169242311855955577580245637814202327091455260710327258561543227783480147172344634155869416397838878159067927870566029601889604933881813279871927514148800401189714517760763735905360215713479927034970754068345040793231388826933301043411424866607870425406048651305987776357370620749203895765095578229058079595645103114494525139940573351753242569879469201556064344072934367369171462296740587654657513838825917536402311205524687378782708980209088780104799825432699808914757928133981739156841822163765574560611195994956143452583811084021389396722937033323870167772188359051805093031132991758042909121198063609509258775259154830184002097365982502563148118634110803447628876227979934923479706347169123506200956827241735332834214032776240121975191590908353948628517068020359858854655835263874176287469285516523552451640362702402759610058391021890838881519240679305974512659931460439529237925609518623046378779539814644112572722615558200212911190821365437243232905026747578432841430486840939525284904022550057116664258705599086146021954222918690745807865587932867807795896087963926545573070984266807734024799205071538092489951049824033853035237318425032454792107164508154789502403141851949297897108152539457785649245357498348807980979858688070286635010915132448483692569229661244746113835492159093993201914563406163914250075286363235320435743713136746363742055129682666530095109110334077524412564207130539283910587224171508088590682410357955213780905378548455573880636034833515940176396946711406859257666857621357904085247786996239690914274957205703195794714757256489908605114633203973808896821370564433829102711600523332163883654057438999890728962321550711677157278430425385014425608014010503678614641618888669110873066388344793957071849316062028750165224463589836104065864050689999553676377039726542025041301190379498560578256765636729610449984264717080134483190966007479139315802823028632124077466251725553010622912072697807360611050863873507235928545489982087316705015185054946774368704642899341305837288844886474000857078194509806714291553407565801032355012940846413052299509725264985497550543624065595028438313597337426737854569763551162817320205283261967443977660774890689970559251066805620518676592250381556148962628214199160167705821512149678362881283113715796990426931404539281072781233342840063603450476306300231874495523273320063423248446022781901009468021111035295245694015666190495804145959766665998663212660129332839463399887692727798006792410439651370512005073104200583161594207586695338360173300229073572850297480243057953674011676918816620646460797231358150985925350074558969242871295861233277595886828677409645183074441284251142685541399557413886194309852422631282415573628166493940318387383890153095746042175328306121894259232368841752153737796037427678379827541328562862619481353422006717638742104157863126099115595936338455520484944838826034069269866986345208779115253045865350573691939051714308875505181771863548231859050788779651146776786917674006492412165498650557837283336965190657338202884840055576631520293017434284758933242876390100671429552406760541731266915468335502056689781490854234468575316623401170754978334268556010130790184158052040976977870934620277207832821256708954078658361491727943836844671762342155253482061769062515299898866743263453501113883409635019016286281831756458741754927080925051695185348153083021865651164543083627513735434640084048674721425883855543498234113077081326034170224206977096355893073749540811580940942806673366331911388877979017472774457723417177225728108783707382192566288797762638792981673274086741274583824776519104107853864860485657248032225026647981514719127580988677412733546881192000890352209969432564334150743581647817319267046543188256419227892661793735598902290804301274368569895816154520915073866311928937166709436321186391776499238800879729783724611266936559860917986951759063516963112430698465504758715082856203523475290833214096942594476155985250122645246480426257517116391426325680601929604332804247551639829985421526378404045911007510769204930251559483303222976298077318726973862705344240589078526997090973193745937381686245157702500576922925083821606483858856334151783827021358607643007459631169656624415588373799639827790448532330074024666300907320248395237678151070546676486861175372685250617202661870460682865523549795320418417567237986961672971695744154010596381713744844632789931317820282601152109725360949184736237052826403267169133367327440087694016594071318869424893678925106217788567429265833824216968131932968899638500283925441657430303754145806434220334985664005663303234952906376351699928232455163301979399416040267441759771296704305141767398977156197221584220856833265156544478443736449266419243497474811177591678177602162913142738811691315069815254335921020338558983677537339879045696864259901374955587031111336593876631811639038507812212391778475247780710386795100644530200329582024714674734441128729163278825210840513218841509038465900750966954484487365069714067846219587200704258074976139593689426380761273366087769719383490499319923611061708566699900066067417317373131336852512299675370168498858610855842305312988740651930910288941431369171399385699264195452110740106903253218762246762820294669190260872549571669333818874303413432639920267840730785092297295765633344439573629265887025879807729908409485219350621057648616101051903587055507016625128071427994267593007745168018095339343274137144934145170144093719267693234734835028480919983911964523230021383729338335893509234326968047208674500435833736822808826019184503471176323758350751872350430709975831905699867109923958340943165645242718096111521216159152827891718382787676510741717927418862349795134485950812924883165340188311266698003957550089294454993831266397515812330151426623411342630281659800739967870106534934121429727236923079807597204890759454342867632730767341525107408621327119297936103618711034029659958377300519558400002532401317562233339595307909176232322209773025268444033437709874804049817794420967664250151686992253267655222550556206360906348860511635607076808820706562023191127093243125336577567354994229856413780397836149861336975908368392443134196821427067280602906723556637348454043438987226665596134162856264720558526465114659414737303615495145909347773230221369967345853163613154210154045642503462535892471834245608537732681520080164023248862564339866091847108165613428678852462518024451612863712812837839596810578883854620037083486339248172400053252574486099427970643222259049910455686309745259541682421451996371451451229780257205201973234107806182123526253414313723864568500940526012120085515246382151194512228217625833909234567561181144832838551286590296643311140995453126083944217732648684359957100276970126851114768319107986557364759803715611125714414846636318809411329034632855481080817559206177359805486373902782810286731340125148439557755401577360365390461239853223665169658825410522217192559125138145492584131969894908691730214618312913814562567266194725835463626271137883176062068618654490797687018014418116114516630461929297731351053542617041285692816632206801801829880356693572278130958424530254995481627809313268479494838181879348637092804962773335511668910997630701148908942865761497050107450595237639972471000053688615526622679407126205767524185217078357085015260666302647000157410990671698727217002545745792272380370986806171342947434524721610092501255318823363578794420227791782053807040206163657898505494214468737804778838682839363558703483021307084136849131548912097158877279479848590647999951360130040971486322447276611676331413217491182789994613546031547409302420879466772026027441723701603580028550215429006174831073222578021049031702997450131601838668386495719198096744495531798927212649751199812237482599128384632386792826565783882198717513688524424921463060764890618304918074134400960582513572535987839410427533150790530873470005451309351568653426951403418653736825059807769110311191021627698181637025155998074395005698937144906496899022962945579804348488380138526431482134843370280814501357760241666775828965546411993155755981485033896076314578442667713402873817560493710328781396615683244095143509896768077649321164553864274634760603634438738820315802360557888401340762754451809949619138203073148959044245314870718010952341868994312354766792236837681982225265939330258178190624385604872489995413065156469434623677946394057467558067936422595148019411080240202345312754355254944109106838372236084759484518623047792717137305973419183671589461959971352089961532165492691870044793636138903013104523411224784276415390950977078804280813273681102646747709940403566445763478273710413982193179013767567662147221108424512845904427985034168946475273967240497608702542719441787148531255895771218279057269422504915807171487137944029423240961363470015073096519053352507284245237346277026121534712656483388441882149796945900717675134795381959084161769479986363824940827300816614159914904497442416509909373453695730566475915038254173225932110615644432936744149753974771206690880733637335134882190955646788514151250348243033355811855136724041927321438180129080620367950279631632584539807400507089703087583996898791782786347960101018606500959791306934687711241709299910882623992755434114122808632796024296528591866729093012887226479604491079487669925182066594880217924534300876271131283613047182433059277909845855268736932483989262886813162776049223080449319860916783042788990890703292266623125897361719611555193519489457961456302215698861225816153079542220157273807435923026597325913603142836514556723319116347557051096779848407670538180520043794061832734056083863439349614306782551210342664709396971238766478350013900279609023429411513680420864171161671764010399888657947074409987694972383844897412150947542057500392725124300751221860959911801222745842262964167730731782632007041783653240439709394194889761357501977471477967916930142625517579305707273439897099459874457890685776101278410228760601084586560714844750612725862238620494429904183640387755258778583579936052032619173169025175122881244740786122743120258630699249906501686004625590157634712449087728751598933053186488458773311077385102206915043557837853343520014657549798081911412272681513047615544088031511379777054457928039662552505865458876891336264988911659150015425354600543941578681974337640717708213881675861965519570383571862284753994881161154050797663908634613759972632746068324319829460045255365075566866860899116022667093275875950376472635523109293816159085301908080343164338215480388109548060230293906423693403142920327678153253796608900385390147600527087760721511957510541635441899188373013162719470301854382718571935091665283570475963053971888538945988132360307733703400124219141697829428880942816482824910767639933931193951576199602339560090191166663237336048837927616120595911770394008698765277514577220935829175239469211322904480081505299763773348508108003511459786104120284623633395475149903022970662673616064202984555050408267237385096414961081663561020111480137284867814173320486041923510412915251434173152890117895674720460305538975000879166664463985837411887620941578500840673231777023856932197278458803335664295004042088187232880038283199285265558564415896272499806013206602868209050582549946396908378198764531299139395088205580359985758400195717326576062832460470525019780663780998363156345040971671670174960372371412254475134641871060069473246794941522641653531051924051872195618889835429729342418803275729135057914185315451266261445374178671108629918314813871652480426282582991788247206061687247027627936781436976589377521602533730703003417887534354425976704975976038426554347282810557368556441902070242635705939750986570029540614601724243316725852704765907694307114155955931248499522365007351603977705558007385691299164342829728489325020602767779512322026210567159560378160392136806322454360946483333927121112757159542818580494815479868567739550682647879017118832455282903431328201160135002103450665510179717496272616830725577376461846542671938932157032265077299860773042934167260972515874616512639932885586556735979440411038664091197956968176882835857822451626735726918977509049241195267122824842471913043844399419008466844777524143310378697906409119113236071431681116198028378797742327737218379940100073527318563802667061403086645032971068109594661781799136672528695396373425966786234491994255597816324922311461291586436714686013128991616336604548007650852099311039528875593383701523972889958408257752466281001561079044434761608299901255413170039952009966157575286577238650170164888429737131912871076205041364826193662873523927680279751172576219228615335604949177724705175913944983707242341275169257382066702998983387293462839276952697562836044970506937931018805644938757492165309623707295360587593633769918420380580421571662822840361829663679480233934689399904676179290142157268132061323163537310389078094115296252351013784390526092610942626083730329969464449344164603314223410363956915987055651134034405845776259890844706124462310187042260825352544386279993663829002261661074643849389178473864031587697335148825655238814603807639532438785933722410199132394958042842720721914515623994849718571967989328620876634031823000520598335029349942791952122791818788580976657923757042277800920616146921224208512798546945404994736241590154224705353279207571638926506838034051593494246990826639048803910304796846053135070635378994316989155505407843532320123519365739457424829463825832932495614253759182256977899554448260667105591816881879302892098243266843890654281557991401227764774274201250600355113144477198952918360520935772252944123641305731737858715326699071057030489673819502259310170818624892889458505554124201245470910838542270745670461258765785188407785244207904615587155099129864729716723335666682908285011458357971203251316105055754601390154421343547729418599158989641327500484624136906936190493100686516102045706036019126705985566124062911500243625775531833571697120244978556453295246029774371294587828115276975520849638317022276971427900720302260581102515059797916759037141893860375522365425644295137287260792736275394527765555916734313877227821974001362999150213287586916052306916548422898624211268336583825464583481259387546224900705892929668246479828444951216355575284787601691509296821436979773221300495332493614743119372337951792313298140704495804608306097860421456193972934509731354369649037779000593435059248724868718276626994588081162688025800650693282082869381919932474417918928453004513484521950372595717110869797831655352385578551942755907090423965072736695669671757494441057905118935566093628364514184796300966968123658020751884139194820269807960179528966187904169115553668314535187243195293754153892650111264180287285532268146168866075696454518671862769337690644545457473098727409603767189962182379218714875130822921986774673655779864024479978989824062621437852771954828904192500346377129863787628838608468242333866716245489005536453885030097830422717535196251269434167689696353680849344525653922639718036195542977156429695494664014482513040989946958892809555327499603707965128153120338533242717481750790798128038162154355325556417906052693271647216630901168985521026879658201843286371690482445209814721690151001657690644652756004866825120223284345128486891663996603692314728655212015412392021008356688709645903072227789025968411095688906708722894126321568011338144996700095958926738789010556428388441464185806316175463558947341975452177551070033509934619076770908210651434068060189472671481154867843426201375299952606825745350515970421355565194257278652683464450105979233208566272373190472631465137831469095958058757499852265587563523517123931261850711657645942024555692770728608984530455411877873361365475186705287932600911901413984745830915136195024671671996642042836213952026546814085542100466899005132889300840162849874605669087123342315846403668919901707712293675908180026159666538676133640132627366489136768942328633418534880697835137511978864883962584822340376468179227510410077409526262283585075698139980308792707743417235377162042854101674170691904441870842928307735509767881181592978352987249092097979115495303997125672017751255227840013828824266537939338926856762067515041866941027928187366871425569678440737560450367180713768257249336516468867753336568306222125383418387126900304275900617441724861078932584429714882103164096116709941152961724620451528780698882188517029672495056100047654005751459191972366563521630915298688198551217115246183960143482269438434705574387655732586711258578126473611853400214901764851551550056141004841242169333267426507052928725088603265344859434324144624680859405121159482881239389697056553417981256537833755298499640897851179632646625887864884203046624771631424317793733526066697956910727783718428639024657801944175253547943211329671336862318065510034626271622232316568994091973772880685756443529283606915178698017628969676617700818685086145727230923045600055521854203642205907466163951276369463571044778767400234371077693113272579940566036434423240299320214031039313540883765769274999718797106359847190913003340072802196575079181940437419182850832026498787318736210118264326061965656254165481477292542048752878350881972785965954033095413045441045230744949128921320292966660098131308486524825226229662957281897330883049476229995662996137688849507015891045682185851045534477025680021333987985864057813747546390019277636143786964455359861438218131476648436738632900436705241610483722063078302646856410851714458316543175266054674878857342195970409192578024386998390615556898993329633605527421667974290159978098820550309732407553948212384266074932706875540575319447499236299421925696909957774033116471713816799188428987229270451282551299837582792089091734943500662391984866792068780925100305791392553635677485919460979333308307460496163691831976479839660448899068749950530405835487743984928973517702132254367258135288596840420562193837918549617423076165084620636557040127407407295563032986680524452076201117986912068605860559721917131322045332888148408167979306168270404771762379968240401132085723610526869830434755706544121570136434931812205365947098107258598297837764485936568852726941144947501984272230229136471786483224517484206797866980818928897095937748036434172649807167293007390324471826036924358430991369205040552654580266236286500540827483763667733096350902893265019910278589481003109204415568544989232113004980240550171337754902728317786048637643521584538408844686193361891116498165202644769604235920072354292085619344154700290811303608974195704878605168817597482962497864739210129650886146745273911830119726817346694557236596260990342439954764390495226777901175044425955660983332805380563866822055958076701783096876837891060538911095676341849916213797657524886372036198356423618006248813309487687257676509935084699050316124024245412377468610594808837682065961815290934243633754680999791697379323598050591564628824675414507939866438152993082677618394171022447241096905767946985488497232850813039298956764233035113702577704455299251979294009294153718170715678360264977661397448381425667431319873429317557728637333332682179060881409205717151597766439916442999546339271784915110023762699005325262712720319526797833770133398962276420965420400639068203071886140848726331096084370783244941623051144775385609729079320063049931596203757151692660341107639846848516458922537916625847804862413448787923702722927398360761917281332912115469450543684285087065153162387252845708361378673368722243072665611105393159306866242352489428289295629395303200968462620481606573872975559552252827034623075298090590518233848858766774161247236992535086948562945320340460191384063346169340831893495633781517403347852439011817782595084866579027482504250571167805984535416484494192080373565612097735095097498072927937260927167024610516267542977521300630757055006452634492431735243054139079347246912507078136203682887091218567593305224165222889950256934328364751177303828311961161282659980474523639363688674142170134806491051530577964664076693337286425984364594751072338693998132524565255037167880221016618820976638232790450377755197962297001590342076470757853618294011311536419749238789540566620974755258395602124574004793343330649030091601412927682700745276096370448375010300891779058570445777276509847797579954019641257102812496638554759402534523436329348117244550757149610688505809681359191211903719259077556747716218507603321876132188119296663851052592587215569328202645238637124039908439299213458966638771520252118349419673108559714817929393484484909816424280220973013122763084884258259986523843668385486914581489653788303233274937844760243057725382914696376660594019003441285318068180101774602654739868730582452480565074961070617352427725488557123313210866996381612775654130727963821074929784655255345250791906893571291132068921181222760329713461999098254202283789235709476508698728943538437337282883678468677416720727437862096167724705837929955599848534401785893186577446340721318464280431480936067610983905279584174481187204988124861419288871683109114158467849239010894010108793921386599225803452569177932715119536379402578919556173455726680806957991064539292238310531436439150871377729619789092078205395624800322448262211914827009332604179917420938821320916713291158383981662315752330482836930914103867303578161135914361006414820728592268347961466549604551106176526710171722679311403401969601757503291810910494398665819331150879220736624717720106532538013260809330391982666687905390237958671051208528994731956410426700782573252388299483253581706388560408088082883440765902995575170087192592760779158544736735381686456847451816149921562617186095453302785293064067875242517101038303423740333313435578322157789802788532896322602167462955093031107367542976093104774973671177702256834779862852914114003066013590850705730335359501095340168708443675025219210113171000143074830789967247896763173901898103553204199259116760677595751218580729148026392638869465732154960050096867242223077022924051651197264135902868665357841970309153092653618825211914006712041055027272704298562930232557087385995946073951487507417853820554715611855862882959588584573671600278020857413166633885058782888156260994611650082981773160737904621642339919310850594161752212840951567668214833977355346011911868651867381958252040609572369931552876628958433984870783003092220721135939242058114971020720756529550774380920071309582821051873817108903872896428947498944527338130400242370833092352955560995002415612620681045156848466121601603884919493590045967043121393885499200775684192625791308163334165132769193737422341299039886825632626462670361383934221392562227773302801970948746982775506813858382287125015993289298193345004608439700174991990239139440973991688290157677107143658264804530165618882836154293493647718587616434967723142037516133597514022855104316534965725836364181684142706580520542615785165290176574468916583685153084666705430288874425723542096998666756193184313735963067280890019315730623689366155908513398414237896483382047771567619483955779262903334038236983616487447816757789888549970407270388428795766417047033737131398241279353452370935098128491035667159838641556939007267113829679930012380522874179457889952957305137413632409719769572308901064519047701237712439677265513813441171258910639359122964816121852654067520761211261792357800333605074294236603629138178126604797110729836238737092941458836933103563906918268999440235306100135860022328217618854213062383630284806735201644518750462113158940282127699331009929357166777856322113708886110126794468038307119265698707357727207636617193865059807255033600801257130736837417849095989591761468534473746865220648349849726493164127006258267379047284640983794323468517711524596488152823135481547457166338888450076346065467913629562173477292827635125353427285324298948792593785960086403600048497912891017693449822088324726696725426758496962848323114692281767355457721243478613434685539147470631951865351627993726170645592581334860367585052629805891146598249701466892446544214427436960468607993664555206376712441855252991896088470544417889033927047453554025281394486794158853833218914260221126960067547955725910647566184901661320874347189647123723669856660861241478369589871873296321743647358727642099917847646006309206634931309257212371159566287553269670854368121014179123694448243928449471101884197261912162362121960489460003441556889271809427060957993651618627562229756832818890409913455810799848370848871283499970426435173293834338141381295745797962213336617043024866108548802246298166585187928076102774933820687115672693584727839803222748732004698054791179736599774586257021877858412720788243888240936617935825703577462001741715816477868865396679810964201094365739180111809828018781780353097178319117610874847604690756057602112454913229577519342564384261146139395668392538480836879476941618614184008565056846258829040331378902730615371916744944332723560799767536830529753216765423906714064467580654805263462392455562005856030083663990483154484584933759579787151485740727428739305676076969334655180899394910373386211523904260382915185825150222145018172524912369709854689677919853163915775309889794888178811431353536962379774084414391667980453519232981228538393954359571138496718611549775554495774332738633453485226999396023292457802214764807804206104178018775368378375171678112287677559321254586402138522491761174304557756461111632505717549268091086584415589609377615377134041985326796849592911676837708795730505081717137528812745009988482737389229703591863449968071443967625289828954659142273670139439687723563836165260410686083190103376434455173209762415796401729151683580122951944706181049308343302179918130554510914737639991989847474206271316892816576224405537313039159715016018303772156781842654576185482939514460088305853888371832716954887640355443000486751339519693783429044224481844378011843973805174443811693361257995201088547897529063047272568453850510050559061506414581665894723680641228306280034659962636291677271114444646785066015085464066802164474668839695362429586177077957807642149669498403862542804981403307415236333923994718707512539688028419313528189524741611323601542234269181071499641409985700001318659584918838800389086557681576205634238221469990996420757641777809127854550989633235054509494406253644277741553901526040011022573103880820693175101952702843165270141127352017626263494307571311965709641243298270423683761631256383390934323434100800789861803154920222556859700930173736440310811657134133743659462779565719939557706705831173474677233841590695387383219879757811612409500092351070366797059148761858935261075296217859288627103946530993276935250088322957292876741694490556711576036939432914224144054655686866155242125581919744744661187721600099232376864601603276870083810493535817277811821233103425075861642805655803321650088493184961581791983755816472413330912049966619922212807986791777934663740617782165202077283166210025958631244023305058092412045269728897701513417420857981704048416514515544225479074293240170413180995455926053130247642954896185350746183639844951246183688999431308878685128342293243141061643864783089963732819335856560219543685472192054377922202847655290239227066496502315048448449866714382127645275166296836676046810557428747095612592583516386961514409045224748886410156365731307099566809247696007902056518417452894432236422977313143191223023962900863129551645804644181179561880704347070031510208575619814052114800533769250198993912768966233188402862679425721313924055075057138452779444916769877786182544480536993582767982721630675458143181172073324969646544202309162337946749326877990119109723227226065543990184779904932607871806130245622510790917014858500124805334712311441029460744250246917936972349581031844396763824170602018944517046895678424883389251625748604580490403047282280174178438769873192294524320536953056138384195205299850897736052129247384280933411642327212218416879441926966793500300644313044062225094193217128394175111657749084869326302870420907335149735281472011759464606455614780565400295186354557076290326785622665293765767137779571329265398883866680982276089271375731023393730937732744424307312512196132519914968912925526249888398861395795750042923195154515522811800708562082149986827328055098022123808008114314129045224521332204190910420548332835905644652626931728678570653358716284593355873858365481955937401101845814013640248401431792759048238873125239087237232910464322015171390769553407986780664093977929326407468712807172369135193210892902424165520297700257903529468666884334073800931048112307047589662762783432907737244434392374007688560566819004863353467454290414047335835327625120483086841148451524145541937469349689603002178943237895121204277710890876106319871564703968545905623401361597116557349076761530958353177056301698634020631853225256419599188059299137550160097194341616449546887162512286320093084909261065235446177842021433908298824547062628847891099590055666991869950936676221772972739752483578704374515949624375058763723317837966938225765245634322415216006693476853860413106017138954539193199773907929422201062459379574591915150213147492030689292701934446494543836984846213595685341382487643336103550630487336108961190975578755397632423484240285801200089251658265367389457779741176366692597481926358437681821565946948254032880503228548670716087987718577890260586455272085061891011962236940635443814792531707750586483666090360522059326010244505629082525302978878961116360449733593616185393229199674373587187424755366844903251101271282198823123260623438266751150699250469398484588180145297179910769247548418972153376295366424526169842785469294384101513820050334244495415632932088801537917450349720031971375605215455820516974254197570243713471413545821068317175727936234067221580598069710305132997346844845099826866393908283186096797749973245596162021250559103353083017077902322814620389947525321430108028365839932714345496199710239317415428191342250414335072790903372571742033477084157725459227193631396897147090341870796560562907351613307181733400421938801143311833609812952712495413575792000080769044052204797015767320271630793908371848109241555830438430073912437139190070986877574079297828840128482320663353929258466269629490029179275445732664914215608161920576569057481881384953291867228629811664579463750899973140049466495975402364289784652242626023286513032549013299619595228487821319276379079372633593276558097905190794498539555666600795968975795193044914590505206046952861503154602559242427535801888225633239251149295407326226956812873481828329038449848543958660319645765817039497297830772828109461710888754073758305923205415367980870133831938802202789389551772332573730545056551552859518614702671538835928235990707823432729639268787754020248389752829285373655200104758437875059146423176947099001824069766141921335153842030670970454040546503453319436635193100262370896942690475043112249936628681805456929912737251851804497547047484853406206169363649000712303333787800426417411789169487843335941813758523861701232514702689519037018862811167332102976036730404353831613782703472621511445884632797515445282167547351963996976177704110070765014231324002204842460470983130339111827260489748897227627326448581766240285814793717552978789165582388318496112131514635172059694300605461766792622491196807928157315592687604583418753708015604488809303285231397997737016142346481122854441507355438447645909048894206730740121857883790624284199978917286685603731784803441693921651510523525050898511789940343887887565316216443458681761106131399985000602701372878357329581904149336908548498155743836470392712007276712265902615239234161553325714070832558398964987259896343796978387905958179168764035607382257960648927402398284119276274723052881399197622551500496956635017311057350808167137848713684671157177740167853750695253666273211453655082611476262132034949194508061509130676267385557771477301225801799830034205385509753157472384535940836257101532809362230287684839530478115978663615906360915516285678872926640072809118254318938536391419465530915019689698034824024667157505937325350156495087527897788172962529929780359616188270219267985407880999541679865431277819575382787887635751403046828516085012674992746151755629856884538686453989739176527070283044613649988519107003653971143829219783405615641662895232379387043590771412561323960436755817809458420007486574623617989025396593263866962518939664783833401032559472030915987733407353396669275967714727475191429525887721083197456860602510790651643781280818615058644595808382106746771668381186000870157647512222796018974775280606199453586664987114213023245045660468498582973291541115077267646195151448014578714618828055225098537909509728963575651691361151769241599972394043742470334312049606415951969711669896194953293818426770141604831381551488816994532622183184621512594742962843420327265046459776194589069188137338000647624609096539403974831114327229679634643093797046295475958262132742255350710243792810579211126447408241871324130929838664119764488217560434247123193183252532017010726242351328932285768087388099605548954073855387976886101478722080746710169473706264584908428661903409858854044571252976860445656282651208091983995295664708444685753599782262534298360382021324421918970292791584918326222336172865559960030012696362791317344970953753579852160081104186991023545604658699756444173295595561378047315659034301984468651772767637675756972948774039557408612966413870290665532158273520275700891950973344550283214225227527801498824141694665339790252197583358463535167668459713205410344890858963433885822336039374987049044784986570781391268130297787615019742726116570064415664408355975770515159417491193384776754914151359132163748772596624634950847045247305089816690465170316309128469821277369016180418282171825801412710436934599394875284331992104928801962989767915719536575498719753788124724327659199413104915269839779470105333303406914755590517534592982817689378264150985796402082469612890806517418114700286714555963949693406499378773066591608136143336397872755096526991689337457298585595161157390931000514841419905445961153670772397874695278651798425837112046203024503600474754304264586235410944172953221283649912691798502248773016595736128237048360652088856449880487478694887468804218488559516918481611365628975484879919151719028125532483885149461375501584508851724440348167515777010453010730050519861003218106936415648344220823958253575818773259866702924565411960487157452613446055839792385646928297532916343993830834634390545401583114292292083392401462093787863381208640279877069727575901150555284567805917012621575556184070184373235106446079578233901475770368910501616066190068082464123465608468190639324302694215822457981390435851724389548843742370952812727405642032427401884640032048085563649266868451577764969710876922018775539423318491338801866762551493577212255060745859056652777419719857233541909960154933639060929717933899968468799912821098381302838369919465627515596831713088255361688789433658450085368824146427641485523178839988894842762720628937168381848246406513315900576141801241862733108109500272798589182693776121092248708567564811050949929123993887701901712661109325087052053830125990292634725204629724076288202490910004340820366670588282004732667922633810179345646302742571397898501267077621775966760336562541114461707762532495694065252842402299910571974321554195227386631059819263057347047364382515363157195662360876986491247555173880040878236410642723551136785035972980719996999242006859342741733111425560553962758671449026131709855077756328261503315089579228105944999509880648749737539996403100288636798281064119109248876196210961932319672497988012963866805830903232870965470856427143303646327537796101764518744527087247254204708051204320458135844281092742241829943410352876559413607185540612577538027479643965815898934000342490070907229024106824112445732395599854115457378059624692697207764819334722247342856274525898053892821488592768707065369537361519096580215738040153347399377549153158580526847817718937659953921516517222771728714912004997230555503865850806982124165091064361939524671124141249910254860232818969309764389660695113912936276194697715809708891588417889949588833046988069747260517666121742419787071729275376655477185274402230942221246896449367883921610007677855846380839011052427949573333312553540754625162296268321287227837609208243785334201406816462930031079825683251642272084084214025840223036442923106761742560724697105832636031438805232735403166731798980980467956887344801738529918776073297502036159478212563090035275697113288822162038008269829049775849586488483858519609940615300450652477742654715229116440831612428963966953597266663962246783737468851249785457169959449035026750664014091787351303907503253299917765818997599902977473015838135992387891494058493567808548445286859357207463980085996838524542979076192645271699612970575548587920236015846638332099727970161184686750750942974030036968862231901018818051638650972047677080883022879715297306740841655824921581880995056066969189889035167804876636853347954315907732019052774007366479132774647143291541330192428515324362505948705133287249808843939968500493824375718624222369908285863261671670348536018262985473325809108348381743882300784986452765579632842726440190871428600710900186073401822106060207454554374448126533355529153585966014696995236352508611621091080201624809097717570137641576287343075467500283842567888397763105451875668641290363783927582174429884262387624243485865513315058591714453931079405856185557978474706190108196019827052165034767079595766071522565781972499493290678729713659699451332553406994248049695108275390186676902121147511326182458729004828116316862725114901508580700995400500435047387341834985008427572909613448482587623058371024543269122966955248650588789599140699440109635140894797294565224818991021164191771153355350196043502561292910427578991851992201813473046635981000227369443021763178733710724947487586558026807501161316519979370010276172264063846695372117214252003523389055401808157584934017500587262818659395987646887613862655368734650140231896193037395688415746828599524034597062164162406090316760851447814292984270682847902145096172742473088914866950561018606079555623751459623812177533329961794145483018020281683835236398737452927455932883658398118214284628458716931880969515804415169750913327349316199263962771070952826506560831477055871346008285475533680174585966149165453301137389923198719809822219695550025240238468361240764887563246335167439581180617213773011713085443244822983308333564748962756543812157642683092662784182795543796478964443237820418554193856499717159005351311355141167926043380864396102254675312298465797892781182747133332220344505706783307454193878342898977229214272667107134208298363706962960261982205476390444226046660215307635872374527478868433554095481604040477012687182415845945899194697971201466389798110598130863015342119498360837582598209627581082307658658256030661770938103980643450415927858401991608798039904994664895692592419700290179602207455323304358075597573216613754486807062240576466259380635017899969497920705634141770917834767554870136360114452454814249773320806542834702129710069705574346356567397302772373000336693828825982599585481339202949191632281300908013883180965618544884382753090482556745856767824005577949525731423181793206253206219502658070189928358932903036555485762321262702580332215439319972084349663733764510541824216519843011495093587415943870320075113634883535752943989867907274146615232771979075133556358586490083735179337128874372061296498071170723149043703671676346156792015325607541131908735365097290231930487131345213508983341783447442960171493978950703121914622042098249995079975495673336344922876569427030973465271715011312299766162956187910807557088993428077537859737518566784558603366796150660297869494433729341256984943120577264580080446924750876676171900030195912260755497483442209916067401013195352285320702609757255311289459506738607219765295769453652528066258452448323717716349718487845398680324536920294413481929974967576050011382378398441832557338394052177124513041970941606863747295287232272725715464265540139822974860072428013949897284433332902384409193092095085083199200085308030522358192229281301041184032707738767445508356462667459985851535866877218919082738364124183643657391118590345640114834994626037827934478614067091470119801529143308037129071474350482885698241327451590237464885746037473869409126433306877405579762711744435343805529720236721024919408015691029566970770371969050163216152988848626572900665601245830593224387187790854296775439556780493274307173700054404386370411767846087364931681959459565845127917101453502925696807146738784506447693376396906059086704426533184898726739167553159718163415308050543888806068061917580905575130528257680777758292720262372926389324153117040416477452029882050872570616322127727807672328014345694936196506958913303897484136832409634078867525678974972855179686181827656508211303589055212467571578723387998324816510540367693977704230083761647650612989881295110880129056218906560628610161976990089566582602602086874529445037724631739240269106848847198602220598587158551379069133666233910374520205696294577029978446347530379178478730671875360402545090043671251426760334150630967398873984819414899097935000191464429199086271503659691973892559841587941435020027919514814745627731142563421457167467193578084088578482130512911774291772801397922796686045406380727615947165097656041601867464666103732573199065463643146958773919819327387541571409705146090931029843179649477176254919554810278043980557586056239214970999482656148655257224599041354689031561691606827620455801064890895620861355502991842315518142742472768450048773230480982980158647426883070523028973812388367015078201818807474529146829711161744254084077218491849006110632026270291484385168130787034282742627527029153707054571565682108850318418447542734544908089673578554249977397051436181365552123489580076128014985766193331836224444288090629753307113115549036861205707966708995811676890883414564093404321930060999921089594388079643556649867167929179484077507797935645510004457874217908835306988366871984832369677698384389873127190543301941600066883612467169351007667584546949481243832931397246988829244146367936800521769633305794640376574591900767108721741694570172966385437535959346076703217333952199220638467873632910957981086879358582920696881021490647332283356375483898834979530308683598474141898341684073072980605512164967987780610182081267564200263287200102888789369686187116607884232110919838787997307324694071664020164487668115451761287193377200048509727265047618622261012558975783651831858155981290402419893294542507137652541216273212401691876672354754340027004939149359106671129282638995905856598926741805547968650932711688646911694780562755838079790762255941827319521589488332624153737108129586806810139624052345952376775280089729035459711723454417321803899438658033040205051519693083821854887286066474154230975584451633473610502300144173447332496996700297907006093171365003998299434957935712762591830647181858978280585135514794249771037817198328542266295096426475899213045695775521177393915181143019948454631212681939211608723128858537253677131656799559524569175747430965049196481661963196907873444263990827344070160198854896729456765257933384930686672682511021680575401354082107312060339131764855072110929895998780927629940570886315443195416155694464577426587871008248927099021325303459521448740786590432634275490615191901584430496922177459686263205731045169927225913549642436670606099325288973912511341964799309129982125452284311824438020510693588598979639854616015428437526968303468151530272689843588078833991389952260802967588437406810825219841849419020629759809565040221029173108010721982102749962628990336982601181351381452255683648571441951191895027217597085988744969726296531634374666238450335040886229887333355978902140653285056545388630137896324226330993059194430581630391117196350234440478256923211033608122715673073669419208491391784286529152024281359103310592986431420398236928910454605811738777957899759787441227066932663722478763548963280077040887226020877193066004258937647369610497788617233900097362733326543830943993183240928334467531485887667889858613559567437445790693166815199152796480504906543768591406354997263430152834994530983945521111847411992631478888070361807216345478558882633587499387995227069658698611858137117267957481026780369366709993270900120306243985114899835260750159669333277961853812591809268649526601973765466306600821372085721161404030480600457235809158827942947688450984857249879151975035345440309249985333442545516717511539700170390066086911713530123362391196101271520172854933769705858899741630030240780433970413051142181288396202416937598786897627243665589706364661814834291662101288981089858430209925352931334584111230446170718543235385236117729608088870619144866174634051758709362067372564755119506526821305036129322834720333636856628027466986380541191605395171180688874277680103902697391525988609224842730541304855086394857733044584769478394358200832354403571557853969607073685144140514212793150204560048623941827087270877211125308049315792518502211373813357795960202391015493173786317058289880373922952046079161642197552712160645908348073309705673032053433623989308536407395545964365930817481252070151472662060604458917810405528461676640074148222235740117005277396121114233979013048933340297028398273232578324107703885421306320928218164865039696030532287769021430602492446731944764066767378554928651937978000627277460243331043697871134487515465262718317896593751088015834916507322183503359620569378246674073798251466930238213907796084122563150872422683372213759302919227129055234392149079806229381900913254720969842390058169295953552084317495981498628612650934706707790062520904112555067254280261761868983341737531462198593780103732481468995774108930001422238347557436918422200882260500163420303750556886801308655244116766678447140341472205620097781742398067013206180542651971606542806949483579448873494807261663180015557928819316027888027255351010359919312638058796499313314911145128531327680215940514006988182241648644569296265398578193468168024588190826083973155597349842234361915110169624703675897642948619420215640913691061523765785145099923731310620956083141228422747783778077488081364375708071815405775383726529285019587541475540771402256981825780362937549615891396978117565274267681093922548672676817410693839060328494516916816638133482421610120277326828748490758820579554803751487088784390780720405088892495766886920235762676791788115579283950173551305765344139786385950625996575207013347466160662743803287229618908211387802790760883840379780948048675149509337865944367636658753051712859944822050209246589807927400804166172542541494516097095849520841340838647086994132385073633518284102318661158792587514159227910318142245283630465572916150904921672605221089300071922367822690850577474683522112097641282506699278262041891728611975447963959530421898828776639307683064319004216023023666849348355172762752818740277965002390326244933477872941785329717608074372523593353922400796620054258754556863676673349408280977722854447621324423289179175884650392584722700584232890034368459936349241936725999129544203902339165184187442726391515105895800356967242733207189793692138951103998035971648182419375626642678968537158427321158987802347025694309317090154272382315066385754239509875572987316890872430505732255731737665864644075727910534846051955073992138817567414830944992880582064048986089361122662862324383241668187242957598271833891819643879361314129012202795385475568928041664074504396939998791127998161290193931812943782644346438519518708859664567138965164067863548270746242675694167762033941972954467325296503861405552252481603161360068387046943132244034594066989903726642326267504293209086151093408820745223879211471873308377649680597868004522688103764752225731088579755246687562164493359828644595414356885173078550286427478263006440945682254064886675673739540546313195378610219798095173414995540440531249784161427797326758238387258609982354167606533486576531072933640147199253946170642197801063884678927844736472986457870197798001931457085423343891055091183209702765651054899509301230742375090373178724521456407626466977030401877256202302629427212974981411551956213865904692834374903731549912655746187106245488049444208979622017279815727260781411117357350602523391903262081582127051889322890621965801999087081251376480294242528910953486316933767321339392713696295958585859289255758449300340004718949612456212289861884735458764907268088122741856408960874278575696087932278527176089332108453777707971791869043236967820890661818586162989294911678103347778220310389814293563806748460111272022592207121732211099315492435407800710633180767928516727210443635570596996322281409765846597429274388070423831163515580435248506180973602656381671597373434376587590736367757603347953925410924262078826241010183232893193458600825098679896144672247948603565134290600095238495268879251521941868461276317343313517044468037390018566578494555605460864265278953016393445074921481931902136144867594567743857838214725330043913469081600333084105962988953870277252365649842751440585033261143330017885412205964833459164056531741714822790540548828129976353130183833657172703036804210678968073283306682897227548378482240271423436787293029727075382239488709996807703592808007941232030262096373377905161226643325676917662042282878484071849056008206314011337765475742011141612903921001033310343199418472341433666027940056076863592599083189537034362024283208826960797571428605740920416965154633769551123312286885053524977715791148403736624632548738944500821325952024593119439603249849317459890001691023962501554162548313239429909473959905229708747173382933929466790846263038453098694176647622699574651517484003537908134503250151426113733042340183583517415091358481523301616219372506447174548842590103601716639865369022734621835306040563758872627630175129900639954382763525568651431691630729297899603149428379070051946231303793248230392669005318971179188467198052577831341081626766461007046806821128036161098908339239829293013971840026148981949433848785858769790802374408858992702026582294863225120583991148331920041796398030769008101006109892357215895580497382404574720354979174057843189652211486482641944403408777920737583132703171517844231079016251713955152286538373530961134362237880341970912425258355130714864350221187735525637175427746884573713580007025240288943690621804647639445151948561354963313366601277694341294385141605996663629402184982855408023184394048097612015565697579490256846965361076871879802739802046782858801616790545869800394180280884160996750810844442481358655425793344376653099832446490610591483540222228578145841252640600263933124424417268940604725792513428660088404448191837434956062855509466164102610381795683068709981138050865867229705646248603792787126889721405429422358253759453398365379897779675478386321985115858560984728019823716500328617814282171970732026584212316380232449535705078025230155651227361217603954191538946440383756705056436296216296055205042655202756898762253077519253823342486482926443815996805107976667870774245891781239146212550674773396274997398919203208924845670328890508289343691127720661606493904280179655392649926713451878019443926177780078452794814729809990563439643807647820632709046480121983441171093526351266149580051970545221966757297704182037800688355250124421873165304118615997578096630953852825816720416275682241522789513161986711065494729737512369266055257154209304815127583836898718709511912797518856778455148719201691693127540698096169757537344520776178175346560462784206472670638679724335621252868824030804119579624684629092058639163772432553276219583300166393082508111425085457181926085133749997725074962462264630612090005593999307073824024259347754068000536650016882622589998937884930449682239248690231455562919945323549109092884527398493841984893473119324845597593494158468704843459063665230358994189266615963625540757059861711474222161398997279148275667793054399261288287549041314017997147016681015709661332777995991273040265269520674689978611833548331833497843744236099040569886075126651049301866939073270891244782702789494640926950692185508002415595166318893008707558584451983219168827520165637275671155610667151943842171770933361921283499579466669478811667083821679572309572382195886499662642046364161003598718831802865961968368285188000367199922341649319451725597278883153300517252322520251129989429761865716630815136841415286249684268731505684580632787548180700324484029675419230118217248959114462634876121972023538110641892452571783702733754597317473258641281208195646006213057027422535284413041830819457422297557556135252185612681218663396159806438356654009600563277844279223988944572994522514893302737892890829202929054882941753604045967969179454329546725303218228645351952136277945533234534625891769062605915764668076276123219750376603165316266593486380596318297941994873083274104375424689772877596981279667564554653439312405414063009502351228149995476788924560627295208150278016312390440226538462616286174268989372680036089303541745889846890384424791146261356252784952489316198611407320155674340737644563743650154009394029124294337218738367457804274500854230295206972550238450038137408734960565388697554371559177090283695350378752785221515252747821789676212653356864137979329444254886247118847775546801129221880829678999594363084248771576760302528138440793898413187222443248554156606486510127608593396164028033703762305199362118401926418201615095791420846423498934429994682517182545360275350289376476768896896604737375955645891397646059547374570649944700490017030999075304705082616914345897639224620845412272200258725246495305353038885148869911921008175376927956672378971208209209127768259992531341142225699342285644982228283889982529856092184155628849030019098685451972708350130138587260264120844757870750976275819579187488243547757635668889404491774346896301449544934098875831390257495629880104763804229291261166194138820365701585421233440124969197841048474531401606710658545186133648497981808890889583318994390714151257169701852709849973871467613992831713283379080396600367224369962072893857677093106130396462658583575148936911120728583443687561412200808956209149236445577778022605698572001686602902964921336212143420059756934364989683439219702990778917959483174049996929366699447539198667819721815678740510328546192814872693673005615439545803492118596826563754895806860055329572569394883502482222835355759500331777281883242755521844817662187570259592296946224130428509579602097569176113472038927253963265317085573219663279568551722934490985856083834310331404043576497784418593063957139739693435351501688373945514481152540734496194359177262917816515674430526090330540713004775656149551788024703261098267810894316648177578433418156286936936459662799330275682618195382576669806941772819648729495100048927278904421881669777968809016505022170323259628498053447114661588523967636109100803022937596479971351373819474995346036396160998338013590740043757960147375707380287231670484919413060832775526195234773452395434861916035750767054642902298416321961290623712936652581360444924571605350962552482208281853281637222825074477089497523049447081256930626043501331997857058430359299346814970276073175925620247168855353325599065487846112122490150267668150464530082650673664787078182253056699546040426301334135038060078276053350224417424837936272598240412912039881350608113337467985872640896445610906449505824526520587625328647213224458119754714933108752715113170701426939825476088448404993500699160611527387514061413084660316655625798087697551647221621902118326926844317580777887316022878424882764914065859776007255346397217359493723376074994275481261776337786574855365896416086477349437390476044739374075585582189752288634862155914015865567619517249257510094356721813112472934506157132283452512797658204492740283265647791492462380492032046017132784182530616917323550891843850249702084092122438800849916553307110861811749818125763878534981845006645968039613555355896877153963172301426775073500908500702078227455213993392936247825907714852283548179627771886581212150389695464489543768473462069354687561299818914213276229779195805848387608195866788095101463395871356362189731528701134807450443880944560236692746788684780839799285209342780674596296826389145446950389648479788621812846916027222075831855508879205241096490174394005645719199980236404356121058564056866273412054523136712337390745398789810266469812953314895142476032703319001254872049860781216573413841869808264970179704034347870798056214698412143136562352112969397912346280761737754386093079372577660947433980424972629966814972331015939238231682862055869319103534325926676170609591968859586895378644276693614865106411192499174404441569968654318891739480246241218585282576154520828374396450538956359788106447880514836311558575848056758100488487139142952584816491359216315835655639093593529557872871631483513819801635653427957798237524036213855841074414071047673491783254093127177576875055307264005701672376385801231948722616744829481657741073920459392182329384589378411672481899167898442645771672767856311796943673486620530823140859471746335378606482302853225313377809616199899073558544951727725895126460615982580642332141654278138470338498686439587581879766993697269098424899074526277452489688474874895467453996832652150469926930015675982209323193901389355217544300841627522568938508230311700902274528579097523385701347467988988643740746315671829190943603776995622840940954513773404679078958899486415870030251748038053801199465550852209070468566022135315102051124377317204276603405865624197427931029374818319572670478493017637364628648867648665013150203860350723900056998699040968714887441087576171069290122447132113738374483417273251891035618242074213244196959963580642776567471682766387372577770000225606548148873776884611395304047066825154826061956198061767340451873122238376068698190082472061170283731301294160265655375343653024070441162811332395710152653749950032515851428318084904712105858108927931944328255086359145175811187029965715704847017218557992302057680379027316725228776511719157594663862057381647202807058324058533841919348916183687487862993336726799339046736063614446038267615562257165579697203047153314773107515398942819921186305201465133488616723002536572574690758893504550656769186580295663048279578513413587688131732805973420539433369890129217094758062968881345587416687722263965064438624705554647208822869123135912242501141101373093416045825001255980466024801604109289897958077471210813066630401033566447433985685767192777594465507030879742958648654704465922976880616036553928896664854455454193796758511466714674909614062336807799871101931347821361346101465888020879735360617504496428884371564722996339217203553721438743504896109930397023273926488662785422267264442405228492089162557717820410516311077673272277209046239885526621088551432741576711521878398528241590959845471734679794028777740215163760562580611112096325131239971907816673098157697028246919897026577737310645107366747141899879945327440207485002937121826735934337694710833242690354832733011287943822491512676437123332074833802073832120940274254883374592755823911889888604847958714622932125345391108535897358244832228185655026122163156210528944932400579014976019786653671747178870445291709361537376293632706856974130153752414211006706151458794066982649763035453688129461390593286629287920779110775499684094947853009759062038262729278534210989891145966177211370170919106094323825128164782203433806579880061255256746157830015762890244444407988159628265131837525422033489622753186406228198819112076519152780306095910094690922133264463648225134810353698899544254818380100501046974318732388910512446200708320528708433903525740635383056263010912007944901104843902049748712273294479899182474895437079553464892503234104992387968469886401779741477299386282094656739011092478901281383374448226965479061339487131140488808965464292796524056762487134337129766136594977135784013529429275201041890660402446660714053048034745685901596145086316288298810766725237661511294223970616423098245388690349624007270713034121023258187951917249441905748148172275611895078004611882182317048394272900117028560139751407723888884532208709889417065335593457144402297250557984440467933975168526854821697787156370247064673016368619060575574907796730513894026577689947994040872587574794642329401611476839255518463924198416069782337651512325380029241690168744705051756262119036281103655870522876567634795411133039570870190079134243258306394213680453544035628718802300573493877396816586253565405862683906413513260940058194265249082335737730662256818600411402461025018859580277604401852176320026151423809373410677096760585649164178367513251748556347975506481721102739293533218252719018766217755084969194222151427934887196809238433153104358417621496317949026298693012803803357791389699202866628969178491332082269276403823988528122056869812152157854278886624242059422681576481577614981176202695121624896030491583426773541862644780092253022519649204457087320533732418539744308860337580244578132262602647459823276231380134142045503018701849054654363649401557391895849976177657348724447029301201872313332909801492993590096452232423478660087700603172230259542112307136609540584681853259196193994360749475338196879358729394647062978597158429800520411355866070444223598386162996627100550482491086077895043314654798465802550274040129213897245617483592750438740157786340613094681984650855239029717521077094179471671713040892612207920513300371433181977638611993368102561317568268684065905330307369887067864775762675023609242466536623736892742102590676934521513279186587174179324869361238072888188840546619687504563747493022863452705983044107282708680295954006801751076804348416676043806874239994634779572869173661687824264374030326512591531446114016062490061152880182463233381105645369630210771272974088323723070281479038320966624704451769759537247981531229429821662426326108245637565239174509972490181613389199400559366473700245485183732005439653320085784790299771052602240971390945711929052945717103511763344850012487692268401577718829320401930898205210027083405975824244075731200130584888626240816283663154620801447838545174630893346117726652687308198302441357697945994710210864113082416552596373722523405947599992965020675339085953258069070910895725378343567096799363638236420704808905955502214819392550013074778326446652614505144414697648098719284370290457435443683346751480290276481935266711087396338778191744753283462696834297033879412066900073556953276323553882574930672163894784026313585811802116832626059580576471534493124996342352982806200446612816337398222551032153925767507844287436881753734506291428079300668435648367203821164483208869551267285461507245327553563602593848189287885229364542689467473257287197824964397012514814953218410870655763580555293956305970912707654503256578930232690711707794446891809434673122353251381843766576775539364034772132449805519822826783385849607448001813124758613826904448027890566227280784527552585474978582286879864102438494652904497921252444180127459608734217445969267402515764208544040291417605871806052580095051169285791552573540558936817974609986473421592435319912407183313508678008520692655009712376446142697441420277071737445326497866100183985711005623821466913069015940553095909197837966475136913074573979396973495112328565341652300032385894399957061386528137577497753770522295784164743620723051990634766597529829226030590480644971765815797621918533458127271855292921165509936225112762255262036375881139796919480257015495731330863178036013815439883985530316924733270890919067854974638660247266447600546342579903191471825381021428953313303449671673420568871132378577315934638093301865533253297971188873454135629358829072303458616477236134094125026919956456934653267280727482522872086887815540721569200340343097138610797531974978224845001406601666416931188244028779912402963062183508933304608962271523721327576044704754301618223543354940180059758369933952473572090039190912437660880638916872203545086021411338214537720070906058320846012556699312746032433360506858175280830990543919956164323407804376162648540637454624959554071147729376315397742447545109068154743671103625163356833787163927664606040929072929175875742567469292999587479918023838725677189650734763975406600614259931352034761170724930758492593993754838370790544417614802501125235315384764828930258614752265697965444369332508626455625817078324507642553900085561638464817051695712413162780825253971613742409495695660889036023773792200551852789070738274997009175104437008624483267980780474151031046269388375398721122798120290159284329365118394246353863691278332681513985411085776594369276616711015378197297394511109949124672911563190417149578331729333851946243810936958452673185506730424289298110886619206762594659177379678246919008686316270815614579317954012907189156479981354451756541858302690383596014804968093149680293327494956509472911218283842123869074213068220173703624970263304500981933407896666266818636569628113919308578295972392504634964043353415670839873831298511202985817506380709747573530523956886880455292586539179024986268881502419793326757622747166806375269913347236964731934287558772807925505389386688925265259619164998558871893724405142485175098231099593754960030598600968352145730346043247152877435925566721941380832875220987532392178821735238291393166586185569413588300349864959042460539126475325497470252352971513206966546520799054317533401177907817198164733344101317216449603710884207235792829966382018437390106432781715002602412294781881629367278805183823041157882191900894684275166160763686926244963036611606093784988529534391822406772296079952808695890641142248118984203602507281208084062405616354295925314514858433068876625054867608467689328681795237652687156746316146753628291735480283444147676259410830012611906262021362367106921330459876146113649868195257702268779646583178944644565506746610663270695507737919968822412509774601444539003209019360871897085124259187086922335128757894748086619867357978048632751193334161101270740729181052990687340320900216004515492131689503905407385575561435850898963765892895141624754796761003803385765308082090159778618310993791990787752963929337129540352283743312035809593405232621590746278286636519933084472401771623844945595139205306432231660600288668486055162314668554829290882683997503162562068769063918840541959990962266854837307112529379424579213348373371854142012695218409560882056341980119192010131306718097860030556143731316588904215638272954823483717678143822774766370703916467889873358355381027355294753360518320078154568276864739519034116654623354406042113126840067688973698184308172662298804464225906065936963600325168422994379870196153859818426345685231073692928407817247329008653812627802682142998467465452712789130719032605154465141194679777602825283589898065995672368224208653400962937752524029304786524791312839955817599795209218312989335430732464608380034268651959691478377147284149190643264405209794363341243608402239488308309366682505881688646553585091332239558821680590968918898624011327761907142646777628365541947143301188338107862194711136823372893770734453283143454559399737881971917553673263624673289264098843594209893484304247585268142338347887809442699648959731907953775685618340994674942187097063918921813493043128059569217532059274927158276901251692971129887910972913114707350393746724398238404295505226033383591818418349482496491848935856122994363279033269475604435105901790153864026755248550068105721607399554822463241905328604274793673750625024806916356928487401478072957244954794986653598473995017067528912613812291613541224543100273738583237573493730456887942800871032034940882960232745917342180989452940957010139000015220379439163275076458314007278058394258555257197162551657603126507617539084186318125605542618670065430601521244387906981637923276750793703595601480278256763686679015914321681291784477929816280795594432951849750705029266684738467006707221489190202068446262644844221954542297160402771389799125204177096890170061822283492097436392688920998301756296061588674983563795057104211367194783385399827369131763040069080612762015918010171054571216532914993262339590439568843646694963300220952061993782555199623765902676325578119965150496966742454328862848234950630022612687336218286484610356155557431974987743118823861205551149152901569799996125948810162702099185232246605548617492997954275231466357426355889076955729544000239618605437664923128705445859123975971799787506218751945118400069672860472998937412962217230830333100926421868321751467067554136419977542620691467244850723825599004427977659477945667283097941101549909884540633613099747996669053808197968776390719394460710871971455395101220923416438889816112654811830785754182374414410769340770263710378096541843386073253140474296260640247822080059285431677874810137676967888469856107519475220441953493960894399129425885401157044950673914588851591154221238486042729050015837817783186306251703509688196304108320070342122198351326408855278978703735092333622769399230209556598429120558410939272025684047738243990477827507473259012778771567132537441083180477980005383916999258966890595994438084905060030764166222463100922644890219578527306383758011996100811984260598562110699020445859542014310797804853868203920610650047109044013970769736411407412414193214822350883975455965497934136818241935263305026791626192820004280484826318374750315892246251669980818589518507643121247747828922515118808036564871352249827401605727918031888475001133818019275142585273670707252124301026961490508620325768199586653559469665936907084468055653737266171226493422098985958122035904990409626705690175476992825814885702398956602914114759799318320792405480928693833901585833646513848471020312849054148767586589952047749378581382950183766078081377685690720355240772798941103697086284683081880518037821598163317285648087671876297329738426761576476135027592812974155295761098683933669621201100312569717968130537982496177941072243620303140283962391974212163616244435718000487616066604443286721291336507770298859959859263508918181365953850297426459646908036036294433509398050280824363668789607908185213324242158047905462282726104290907164353029054899652146185354053584691106968884035764389946755906050990295931403414624263946434796196387217063561301921449634884381613660655384024635511311318055111305320970425544742186332873621450584003541710334169851226325803086854801549977629058621208080862017866369378007871714239207624566728627930061695687281512674459216703857437873265561930429501658125133658646408395959958894954632962696393671546031069390679155420147245218308521166755326810461400434822544699840258106474134418577051617924316912154906969534920190299682334260302152235273564812945786034463298503393261892746348199439185960976636623453810853291587430087842813380896470500564656909194106017934484402899258402791868932792231165731485081514092444344329250844616686230537786009788747544521042295912073430650532586334759190380440735694672236620195700992454201654561251832443138989385720808427315919303672070222499231784774479674969893468751297820657689398908442686930017048572621532171509504461076253513746296912413248716017936854076737879456653402097012775790960486612013788273943527416299240064868166922579297024542871499536274402667623779186459214085567138158056046216704463216901996178124447033729663355244312990446335435669701023855359164423833311837415358859631736931647097159022486269511127550701309373721870023008545015081925797733301476696220537915081463065755972958281183567515911794943667748421176165964813796024485305094251879129331117511263152463659959428592120740551217438450262684399760769747188414279412209739480542230288845606454282320659163431093508868455352680067150780181357579541304739304325294815154754651660776236157959554747207869111756338927215333470632678225974717637164567205893246160755802938245057969923947306718591293684928523242354730758670660194350891907029583157378229245528929432216921331525261783702322116490529852536924107006168761694064077554138372505441864802932511436595089380013395410908419248773067958764248835371845231444436817573047994609147284401314850713199944874547523963858637077123244967647594641621015084638319057969051226741112908942224433179586601185722603759865247278836244479789896323781747203520686789705531866787359497682545326653110482821901268815777358762027892563676245092015180010593576636142222042765866183797907839238396966862983807581548750155130801670978578308520921876683003733264482134228916507266233985273118285402182473827668563085145586281436996729857711593603214060853109859757947751061389202450491336849873103943195091258773253803352879400321138045321055880408407805819808553180603918457694776516254199778380729281127947797250530017481388807308915395335556587172478819834042874195147100565028623754781255146883683355643574860786887279856199430914165284187691279415434803810507774182277460051492253288243218048440102826485734156264951435456157214715804131059604929692383134591494397639875001210310355501798388775002589426147079622820214697026668787929685944990020720696461761434499146888679967141094151338508550553535144102732035400793715100555683896174503785350444597603867346853933721692335407840479172894916092731789895725919713724423917424415648971768218979039403063477149941772151119810215510995719302097320228433907189113223217511890254515894159322839542619884157763678189133981825212290187785564413538700743258910456733976759697292071837881425015056747265168319658718916102835176271317748030165873722234144399406107410237205253421421978370280304519563018191306660173760092932701132920498336911703222620650615425851756226390692921352206590359532884248848962997268980193188570600944259146315418482540010441974474110038453930966303183777724235530334091337731691125253135426104212890033526562932739172352641475681948401896286956433777609660739016960388609961384639936504958895025380206837309043804711638625694946214999680625599956872043991580153012287323996205944276811878628599618789825064235405048031351304669627528084383880634970899881810212394599816708860273416918531919543899795135686972204997201917994631881661122667411477041887080078747458236951818108182488056570659688517593298826292780554077760240292943063370799653931394538587572728436069365491932290059098364723921195864551805621084808588191696066347438601965707024306063615025732055108927427600116425175372051456502068867092528282806826836348333106960476878094745973661156025677340841157606012728142822530264438361607272784585778689842926415360662350909898592172658644078344386743238276494182129118415045505916721815183317927555854974780258577622506441636072349734807214779046536396738350934776087628107051311704824287022047869419702476233692692312568576427183597925629468302149223318630665427176528816112339604554159910803928757786989239197763931771018101833543005507122360235833885636576342770511060699871385008938148585625399034554231031802746219366901474230050871779318579984101769200561470707740046625192149284748337990953383668017719149981886183378009075829452474218085883102896771311861392213560422644546730319718680386888008177569174350593632861867732670669112078670831610329663119445365448271960727691969490887179869058589244287240984561289882829712340098830853478155719119199407413205239712500186842683861243990946753417201740017092346811716179109778630187588439663175692592795127627203856967104949958279914393947251390103537571976341322928836934642372314460347974110090695048690095352854935905608786936208488414757839963108108073385049492122496820466424488712934569624788895132059976883233743009506819980397156077555829333456656422593983550323677984382533805755222842643589681322404975668478452011645726112734999695200396709673062882904800226520434407525774591177105971933243259980125815064896885548060281538206496054243657522085281030410997192531914942526879062045023850554224246866918420612190944257479275423598295868735050384520536172615435483380256397696821862232744116121244514340824700251468520436012686175888868657820927114382883984415415918192573964728488070461556348434668732608452497313054125870889241951765291050964551415946910473976249019371300888393826230777889811722266732848710393309677495104379160322419273572119603264414418765804137586141404972302526069556799281903143077605648901841873343116833537545262212622486372574732541046439838021165375741944034756517149235116422931099432696046820485002817877826725902680110348701106795736563901194873851930636239448426623870861578411299001772086897592239657338535592474916383836030528103469187849293596870273914954269150843945461049305521583373849377326754924551726581498033148486337744329410844237241604470545378958739478629232880134071830518246568831533436292512071452469754094817515275302694747543749573944534489467925724235310596290730404759572236111167004120233181718654000441917257351340244772833845248743625638540046339955030428737934046086321428901755398607150936146457017626796109952429002470074602181378587550905055286167049668422308377765394684996698839272239019905975547267994640843434373377850067478564751448177352336023657691485643712727098368468728069565082076943117121058037261465287303166700892431634258599026051651308944395413981490398794570821386699883952969554327431575934991423435199472790488246544578054256275933720747340900668071263673140429011930400904904328929183411240564483305527287192633194292596249288746359529375788933936217570399422545600243635897237901831486350417155079155640119754401640375664436008655317321149598165063687829601397653137799072876507714735826183572895467735585390332020153005466512004685374192818350196680128741140453478224346903670157366651422473241221712063204235378370963473302450237335102225883071857185850471378648320012476834215238773778108487111168063375457107620827649980851706681861165060134047208560088178008251376817024027865117763386820867609790540581256576210365681130293900415732127243508927074954696053356885984399226016361896131591013255523572128970381619326291406450143032727188649671438796268612678848778853786043427866458417535865596312342133631306949392830869703986045306511193445436176278705766176275348000706550011305547755866212781173501584826696396511079627872527191078849280407077388152896202634319535432435817343844911820906076748600093116860509580394671292052969178666586258637061691261434383863894467255060590507323018270106255359985115602929636273771177582130310600462455922123312591648571073982370082165976971518714718734769221517619753674517597116857668338170668616075686932155150561463913017010222314973882113137154629336104276036683764216253745885730403406048362853035079321273871138393066247810431994194908618805910632882328516531706935889590219840457477385712950575224162306207629384675072562779861836569038620404614904147985185460091707417183274800178623539483665385024561817527443533990551134561958804173213274259103855405175096241828349285932565426545415211265579029875418541117198038953901974779790686525459055820642303017830473676175346692056342338820173569459649210890965653940418745558399672468801628532275964470788956417140011863794611690653341034731433287645099033636413792551653395106847700786648725790255735191622770426789038786793122345032098059391584331873364949057849503219483643715627493692611797990101402988159278713054630657940356619066762079340350387061201923278360491607428786149886135602046991584176318729682248178105669185866208194671859962204336173214806545300116943413329048191932603655107308893205079926140529058542345926599184702256323949556610429447940982844066218917596009904236134617426907066913841981912169308536574760996777458543854719381047685146197211496454030165699235207365196099841512230518812127818369079760445160392883080443825283983734487494671693201616959095630948714233106447440951643202393831936414466157081683737705891989648820882661688233178890563526730074777591156362702019747173144300489165037581262625027935349131825546664619350441399017426997097083954937727584367035599727798704982288344237424631201445013708404741789256807435948554353885292161463025722599489759836741522432462306157893362449366086190019134640502027934815643572925943835939005190177764875970721990487374315919530656941563705045692520173740505699943842900595962570103013637037735032483647150542998829062903230833030517870919672413496914825618078318868005457962844891228302107594188074117331807722629799064280879786907891975894893197361698089301546161354933277594466757181438273601059387446120398552428189644871586138040098979097750500256618294856826797376650638128632701132168325918169901325190993973170842921428342811279142747111460743821649362477646985787834271082823563910773543155442067830168437847830542508691156895630103828223297728240550301306860088582873816799354231894024061755753117349874942359534609164643742361914188007256633026536108687990888741629779135186774398615755717484627609727093845158368028503705420142810475555610179842524927290338394628355019923280116652839302433145115520145906151813825748068868074376459310377632357890417751213663552455988451208022266480634188806178504284508542430543839064595245199664439561727903069833287585194131727559393472644374817635710088680260246033980136833815888233910413606406380098088324614627328368437904900048959810404971994672213715438499164726278263121303795200633838365268022032905194189484629820407348071308705596478256002589308504669243380844114644284892933495835815954619003612668374330297628921786112837709915127777145455082273238037880816067337438450236586211408414678892753075372223315302005515320312039492476776622922780019622009249113783076391225683262260033224520693606623820710907817812170319618320505182226451602938269115324172180855869707515633726534958381286187891390628392176156343329699173628483743267640869777035786830633797318013940726347484342162004880505419770394426401017257137814560808729572870141928197425738300238914327024099625903785730345917934674450098946299411414266792200149831983482614613165107424468625988061104320180455876038253264188983023167726630794826430445980409182258667913572156700373661619232903375676717720932602354776488134110668530759164691232274028584968526055080773383012709268245815989661715346198270621655002737391376126964551160806855912260366566575829854031805813660822807720206171118328942884464964531105529768898586069192585731101275081363548943640291496602775458036842585497566668063212939594869608694938559560818436134476141472475527247683682247196864851069266027386552086370338968654900109778675305171914455501577288059560025226081507158555017695883688584721652400547448694586629660365955399790271333175872087771845266360472909386027772344365019811629259629123338217647522382200558676827027955421091783509249254670443189267168446626856332139550314742111819076565879179621144584320897225934666192607453414657191889909664081807607148278447675679631378607178758442098591900495502785863828993919848215722017103002989042374449451739767851730473322622670096321220880593532207924065641368098345921526542413278799551300196230963680590036992397476059011597411514099047444952937837541455591529886358844238257383049136167163432897188892488141182584262255593906861130798932509990182125666912323674950878892820284864241276561931042595206640754824087829957136712440642405027903593918569896786908370918950675291582057883624962234818098442128109682454919694847290519821380823532893718401974373533993077551541933537053172364682129900239401318706834977175377203235048611915898998102653034327477087306053120642682466182594825869881629720219855935691492549098166396353339462632354896868829199608655924182467965306761164920216721109822879153759972952285516973472635293343337737598587073704802779848041926980870812609480832458503422486876755852748389032639754793427321848154053094770335968119103316673383863175422106014362753287603898311105649536804942436520535149221693023451140215533373720588900546042850960854424490646888709544322109125638020330193933312826301043840568898934727534966685265143961200879275801514004703291905617798530711099997948716966837949120523204607474413507403719460239075075994960051094381232742626315101437773442753633702399619302070408107104538896172518328398371102320955009472268483548298800038684147982710325988417150531453745941367853878522542084649744382282416481885136741081905612961472627571766150395409075784137599792714794685046432298313423454770508995359265861995930788879330376778361998492456968345623005916856342994723055340036412068925187970199670078839500207028768118769508001605295239988863270741055537786581592670474364978829718955089976280037847090602459585365037396547250628405351225262086615615470041498342758201701500224982938295747078713456823206780179656841913842406764646274361891361156862987123271054031783417631049733708764315641048910874514792652503998981908374238768529043268738272967095740473271712570718327868918603018333401616259899758990504306738064003046130508353531951597087385939079978354239560220546041013056514020653502568445215639185133606229000491288736942860821319547559367525421882818903027729659718441050380403890304558189770607562490106278353252231066303538214679656001551921193766664818146354703991912861174505550689933876379542887380757280649676067636352156776170301419236412783922381214195917832670567623612738137978007551033549719160325358780607435369928852837526408527540088035164856052087133216848901360546900670000512517028905390747202990263892859514007595801741077216640071946305775091262505389455692675391549974124663089129205292668254374628912911521038236715118200238054574885382760109768639172296082801305727333048514193383338398804657988400741001029273031491147187100152501280563502505993049864676366309263766024290038721747885727873345885609116345091011916265266390235881017823736781855885417592401421994550514186694181858039455567283245385184135633909596626903387391516199315969137148551453578382322107866917923641087240035419006494793512722516553073568233183468747642635600180120959760183264887742499674006420419640274901772079136630308825432380698996546070826153014930545415267747725559873003776538790663194280929288524169585854339333420975763715184888362565078610976793045470145245433296754530505776183032396083868615357560280747257760279835700871117676263116681400609887592153794942477387849388803237314276055731816071135156031464009928032701357187735846220066431752977624521899127572662387725784914631155868442130948286275097353726232941005182808684223478917307775156720052791768571784042568620261913630825848208288845488749741244068200514991924526536134499797737598475987984824432411057012841553964129791382127871509719277419862843544461129513380959658630604191307607167332995462962495205379163283965485937434117809238584556834986357372352007689333317130774894481373785171614198258274212839701886523956831253228730018671939974282377787564875803549363255578022518972042445027181835491207119086940602859116898613767447737252324817551402903253781955950815311000691069875510172885025485748858201855244014408489442000273208136825157993859858502036087678396166724022454424401509719265143053867785860489237607119600689288658172389803035118709343128627583703644421903526226084096673602884384480944441773297181800896099944713475649815969696099282416032382391753057419868462454516811989032595877648237101733020825075793779935009401495189835935334175382329713543350675591062998497365773813002261746127299293750703231349473231867139065229256689641006129208200798751768674242935813472887664648814146512496976740967851526469637433604982875494856810732831153009766419359254459767850592297981916592545740731766873182026430282697606801948878149937904592977436427839112960961604592914939252354386991268138864092970196167200850634176003876516495250665288880724866750966328606625404826335183637354937671844669401596231747037137714791842474179976046009901165932255093107123293627332605830961960640544443459207400834184570193426828823140820252576353147146035592078166500635365931263772019133317003848010245744063668446091733511334660320096381596463283180720102623180802455865177858067298233056084956678334634406829115049455866595409842534214494075742597764101304472145471784552798279519831021138756860716046922063129498744288058012598374429364186413784040222672735502385456105527571988723489801130891143887079722634443677875423423449460092669255393888117984589413315040436453112387640204538113422201614244236172042645409427223652380642479077148121494743596077687246227652826409906935847367822689591860153157194231111918149201997191662902390375213718878762861629621077056329335839617020437135120601286979625070154550586682732341752977351604995139022045681973520869923689261522394451213641071285281786811180019708769978551174456851895569979890721216246483242629422503995422385973130215879611385274769285499629926948793921727158422566055726108441050379276491546330580970966090995913532317567931235730929711539751959221946347566203430907458936170216846517222038287801895060995117517052768850794779048451379416770836450721787189294317348635176498240853430720464033359417570281028948630259896009649363447025686148248111750060794564605287309975892902291076604022017707578188856622189049753100503669088654302363210167080521017492878307010828680707656376659864059979343561920598978523659829476876314860490956030963018111654113368776085894693688342616692420404012601582695495795619675661685195582078021177644525352117842933528021703930485672983326841227354167936151701363091257522647736702652467052677665738478809492696404740709496274000424420247509269115639141549112226066250042537776764153670457804104206057236144310932949827645390781903076925826649231905208327618806868555794907270577352584293528632129915792757893967141698503729525762201119452082599442870823818329062138991773173122100387479205836177360801307006904481652077073052306734174134741488394264619553937150516835004199711614650430124708565198100793104188708030330805857375900747248800551606054015089370043628109858487546075447471330574487784334784590644435887781299992409667162318411303857289252496977990648691731764555379255974045136626135459962517388945833672342289920625388763819239875430558128616115126889830113944687002093346904464075841552976309486945798458091803412839960689213673870413441265977681568458950787251004260254840313277275603664733925725349478598799244689872661495584648387482442043688759952754063281347244980504852201947695118601414896608096612559850883267391714761334601492086117648570958475348581266594080436752145830941691663267150816159522142173506990965117771712233691106526947389682405836283760985125212039639067826161469585445832110004431873418272399252467969292837569198278721753950268428311250622021815466738346555304668464026131847769355528702487213332168635739909846909154881938683186374490464256217957800310339463168198225351081643325828882136368962463775105105996032698784110341365810368691303724653323949930723584372536844250233817455207977721250461000325675451895330233752495472252610060497351470862573377188231633339493243888454490533184889364274277778144459054259738287397912751775432954584985784573193869297929611828909176433209279780451426602827917986291682625062197309896747402439161196825131798558768075298194032796560756876153576268524553050187966987260812058061595508820635929963074786742476789049054517915394064031259821174656974791661204082307412406172248415215727748097675298768521833225037655277060709013164728932344352606314218539221217152596191062576836157429295122831762122920429590921620373271080805089477973814227069687672822957517944766852076492044270392103465601306336968680026100529599574930950028485779935122419544003629880542994264580579987528854164724966969583741729660701640011454162468487683794661082212539573483327273151891880924227657213567184273946547255653567028126480915917904091951872852349553189486705837446029085127984539254557497333935770969170338668383659088493455061295405230211292926235549456914703567685937340972228478846846046729186930762225220653129006986265352223044603792692615249508558377775084884281640402606143560782950315282687628534435283052880355550813575713269232544941816214819645444446367374344702521223090368596334263755904600628207261525306268763035291713012390985978588747400636130581635927748559058478356316812490409379005004196821594842873527800925214072458544052740017296539148552692283186465704808006295757584112481059298920316571707269556381906203930858892607279005573358291475523175755970547502205095880628060724801156759684913441869717346525014620193497554646058049253381295191478992836125829441161674997683749638095021779272668430839183145210024508133898632054250263267515846259428896561719665307902151739401371523630726461116322941512185742414672047175760410951073798054681105132962351870966916510443326580911149446703573867612598404638007280932834269584486044203822011542215805989213642543400780249670849134031242136159270931627023154909947197166647946379933781510840910639725676809331300212984913490310904294019091138212761567620488391914983193564424034284015074840867684145234941962761544258300567831728487842394751432404469811335247643660906230168664946579021712507805656423812111211402683864258500079393752141738391694991173017145785190614665155638601143441005244696323313813977391730699249922112516175007215583841243198570798158169121865622485246914010846777927514342962702486853058189542892454414103472819219216497663789720384986888032215306376052122465436182938982933350210984132020445829042430811228772017953164803015193342122172750017079227192526804710970064285956209457859814737898960769917199182553488343521921378253488643627178360317824968477712614688688437050053841971314069242014622186049787492612981421991969999918324769212006452284814732748236071659035492632885661231840098470676379036546836478215978483360132668682235597374460831038015888139210557851744057627955223858498939045413634007349646848517982845885186842100183435484257760369872616876385808585609008872359067116760428821527520219734308026787836218880974951777134540729756886945405185730642140707184957194430202466851566112458419208478608795507088387652691681092803783483027839400720404202990045861262703812582111190043707411099031601726998095067047016062405139253882537147739141922861483768135864575172177480282940832427800522566646222092266310800720740496493216837955847173209949399492632036300073219794476327058386258004204217638144476630001515224945932692630553199586916400224860814348627216915704237444987620855504168983139011500153783649152445440715728080734488836291042036891167864294519793401158442273182903546652813869315465545277853971478108013453655290078473169917737402033162895349260625708791451863539579912155186003662586452204152434925393002962828508951804332936501519054869260263395644556213855239647272110020386066157038787677315962847141556232283988893975708202830154626203312926948941334577582605948685428191261985103570964425451290779081594538911085265020129175996676414852742556643241365490863711712900862026242628336829877666733943767072129749005056556764817633995386347513821175015310227213521509377460618869533811872898569115981482752594107838119384529728790184940748545423009630051978534479429971908277532476157812252843830092206688810076684688315044684469474225116292228759834679532822482412036958796618257294797257036592016411051454159882551902612837456500379824905730236908951966360595570067255121748449807996893966195087385134097819498637549407891981545345351972807115310502247755947831641541064992317573236737493727274043142988231716900092059148858615701056063183913922223597389395280290665576045951192728638755363774495235759483253199238389844290814397168961956457111816277246570507349947477704359332631374037358791535225266177100524631862117738964959099136172453727413301792923039657567638231297739697002700639722399780366673656156463327443892611335847272531468682351904550462680706102029741227588830248462306021498489692829992089045865035140896665720802161154270144864731252474325096002252835640139043037814824695316366736367930579529932449208876218251336423423168470185820407390916175463873824522415449348862216269317985311148512994562370596643574146578916047341855670169955808460283258808961933672866803382169231816044435606920397086252324248252946587558246039695185403165545736179932730360706275356663470044294977695244044504723089164213250794723945355517015673494784662646506443867255155525750924875607366933682498236533348842065930888158430277121438157449082024877812777621397130436694791696165175480234054866658768310753814560111320755111777939616601077993579231846385793832609816822227250481436437439065724635930419777797754881447889661398727142440873674646923290445352356840402079343436504461885882280735578547218373222613167757495086689578720611143828387585692538203185893239047217532824611496605451521875033395670055471748253607006838536697008284838050787884450585329617500546565230289853201268064217498289459472042937684734880721661789085562409897262610139104835461808143070535117797609528179248809464592478610041781274042813150746209480703179906859819577835205380353784952245468707303651903467283385655347755743728483145698421297891584863367116242793697535959016612815305506235488999250243546824720325902005636982251739331522127898431256586602892071559216506118683170003239192013228233812793658785696116521370653356521820387286326821999628572365544957060601125473201292361276017627692047012033561606683918830750228131648195420885971424747864789714406111198615097967819301286584670257190941630482652144573456137573131317155753447434100409463366193997838654366381658920163126374974673299232890276125053780915899115421568826931898530686242978972158947550677283646606049406612675220395350417869633382000402852064353261165555361340666032199702111723153345067588520290719613461018932328030643082217223586574865741272458672233063700815900306661237454378807653957438168076833696181514873487507906442199978331607666293542934005861393961268043785190014292842383556279412397974399808298361762084596580250454626861896600010368426693424540087055688418287030793112510635639624052010108351250967279223155096726273010824378196752030079499462352527803624116769562438240996053830315136216827988850168785758891927876132601144396888519284654438386569366709832503358548841136912542744763513980020315264787454713490809044051685446745009999936670459371126635294503862127827832453237025177863328046867567089027337071278321651040754273537994715387363354783624666974726317499722818727988657146101996701923928459651735913809120347380587173604791137320366932798835018063115347763474602485240729758102424516176420060709656572303177381238278181363059462855288720535566972885015032895875517550187574633395090569841222549367280456160974364287779812005315295527476956577494236475300333131719069259269090958061190490956791458289159489462191077236710593584242818745314098251907457306314124888610334725854647164936016808094240953274161032110183774986760080154680477543986610731302077789427233864371721427700331689205131260040504081237984279013805399352854206684085700221500420787579521357583878513920558472374443368192297470014404211570940528875475228411573330049740550316280419491091400469382660663322520017520848503863599263378659696260608919470823829825436026568395863342190515683060941094081049469506212877926430273736707029655610108821322761034235684690554699632636731767373349739431491391648571621322946619749554803410397987180583923774280623971599499138474271713723862717310839338329214151597563775451117575443007765641160644640487666912223809342357776655502152077511005374883120186981536026815990515553343384417947848604441356400412087098045573189098183129902803615855013070818801885478221100847398092011278776734063739036779678917465193092446962014774373084903877013249912890590251010598928268231635945694654894271048850288502095179017887041905815630063241828198003462768848380814303862827443841970536514247318433939921202243927297682720295873338897855044534803519819694098548258118049181112341420876185094857167386031942851457237059281038685377815922316467892962255361017609713170393187439728208312115551875796124985196950968123263402645567637010752409506656075630483439938093419624740896086310739672774687660586672170472314271505432436706323856691780783800098624996552887250685092548936019463755998135917957141798819781170515311531755143124684572306605904264438985556014599961689132535708241993837981665360518230727682536960313280868613998769663122617582785061750867450222568823746424941841451594789750092337496511225446450372870227701278066238409779797596582009056800003457760382496821280765005391897992913223463752905512844194308351929780351223751549577687777588691805693161102348076414644264824546848885734985212337894031147848687977298674227602445208853930439611378530687836522742501998670316801738442233228629232434899440547269388901132303365251299615170998864054566734822468736561016544540271079641896019563528637975483270467895152716138820212544672735369536812223291708761243149866357335240549007316599215528239020284841260156698418423413687788700752547945955628286484196080635404624549239028603971297461537870142502905278514786721781790127560227802055759796425149888124779077517219630815344484497479101667044407630286152774500889895237224889412310644134653711996352080751112919444713911037751157208706015328910098048697553716528970919858838311958595983021544299204247296663125932654725689027170832211357528272625360385772691131930782433219094426798308823571979293539129847219931238550616789112498610768938332325674099709539245313801403073194171891015370546540565544542059654102136819903258502702859570526120872830524288653660492272803521653645731373999792894498394958567496964869474459594826670754718494826497185307385356606578563954045324575503098645289948650113650438053235041045197473294234361551798808550219716097212037080414081989198667480003894982829455242793086673908489628840464882517194797845291144819521866502677597059978277821077469141474466544274716918741393521107812605851185830437191083356872272554079753367841765810244870667701614498088968846661761219231161879243787317528939725294592594989819782642675295452268097381415557688888825432536971923936324489492249104122395547631307290288337165969624756962265017371070666812431560866683269974530206363432931017844484202054987162489128866317136865908769427396350877505348658597787673578429386501538434862514956133602131028962301262352026779622030905752955291433604773994833746218063631235320140775509684283100480808080019403981691221582388351008587190229313725713889803302719823327658021089410564150578236046784869484154183533639441649504269970321367220119139800017951872110466080408508889090765771460479947536306809830061761773748632377917737973481237644009638723521813228864339441100872961032832232145659407424526480241779495063769172311448545963460225910262235650425910471499992844284340700009004986043677822078597294578345631114028685895261066520548380407176554832015448480130013001664344846082367482287304171580136669694389915477044079771506862290090960774085968128761230483068853237545665910015156793480649926861061190220735140871253521198302834491461806986765766545426007159559124333375183233876636849754538648315713743522067074650718748715853741512580558870362772184587390987881587215684738618045915989124024828014836046474413573977576143663389047089466491556334167889757581970078607740942686017002920003880553742567994368595878400451157025976121159495778617242397426909905245342163924744456299640917758786904276516983335859772677040884731228355515235302075922385767992892502293811297949835508761826588427784927845346818788594464937288212918262677863767294622708895606341996301760064513191321859072574050126104650210198095115928434763964870593907159173074664108410766838365997886530095289477683799041852093247593946670363104743673618111696356306096986498496763233715240636809217964063996803419712766459009514921577909939504417502022679754417504033999862141641306532544766096840736247721237582522063918031266236130756233038180873725759155506594040379777557405385917890970243576403109971850308880160847508157354516674972769534987815830916648148936413988452611207053367066109036074831294233314686160904671691986391779456730910434340532847915350735929185323684836033254420931560071436960945870059435839370705521928461612486495695813698759212997269814422199158146897417712699374569342312153844018009597686685589513994011214406221729042006464355829241032031325018852654866650024362099952106551302658248034630903346523228625875784311825751303690538915671191588809623939865143374243262672698076705697567960495512629218120993424647266649667365036914120910559798208750928796855323624901562519371860248321757383015354562305347304921879752101847538444505047261503584957553566225790799176425827793902917290550535145577037560034907175507796065216402333921304216776769000042291554559733431755817275570128447111570919752782756943499379188750827236215805782741366872275892977058725870631789592695293481204886188412425370250313757296626009039509589023666667381751792027309478205449075017526188018547446427289838034527507627218623640964957597824490840620115200330569477214783119320411228538689890387124720139216207080469204138184217367469111935659158760691553256374414483519715660431108916689981173503480016045952600553036329830104784046273788532038842323550041273411780017475376069055380770090720743251213478422854554054071889605912862547617720028229697903391475835241599772804643687460679272096478536115566874090661359273040999122594081712874273535503611468552753289717914743691139236247146666693467189189436626409752834643920342212842296916015563882118835627393657794138940956132857194596714979708517004654512001929157751878490113250208458791884667004090676298032081389797837237499801747174985368012642007524523273996268395539346838599323284339844853430916114459096006801800875068992595849302664295076526617166791408830811646450894842692473102918972957701509770526992701693532535021339538681596557143734852231172288799482471858365883409941911231283349635474662510981017941376892056289211002437060980046499399113060571850890535793772675150200139819735198810369641487705133305150756732361411472883509155955617140429057628832305620444193099920003645321142557951842890944850260254580650039932670155423259628593269195885614339419298424202231956407341020852451074334386354853076867370657797226770117577971622349409134824646374892111720109433456900856709776187479166937699805866490524951025435259111822935476197959496518515583847402685579159895285611775518382589907786526358277206657874278476030189980617153434212638323785391055362509789771453039887485964304315841764195216172841829165221443684811703424419511922850477349799075319223507516503645349016368404889229346290704530801048253707298195126199450031383368532019347805346402997242766563351509358731096642080285291420452637049953973588779793203132894394359702249321561636890210992823942577347498857188819425493725611848855411493715514550415089584098977346016044715300686554037607153799464035026498058936734723210649797490466799723189171793947982481957863377179836811048991726371565831192811066680803328331450864145549866316180235937151846218448411275932246340032091620357947362364991921041700548480086707529405879834668318053665283870909206679062274895988321265930776132058114975765272473668162739661142962972962230039276051094107801080085320403717472470902516547829888367918755263055425046238894091992124546697124608076422617777682525770763015135400830328117203856891353184913364899485990754753527564989310260669087541674235331062960551328765164217167552826507663262625101269202862482887809470332606075059888918571259912536464189943778374869094768771547138823999479551410117881495920805659701147608232007598199155321910158574767397485576110958909270811231048679028463036202499840405424044989465083917881625246643700751400855681404594882014683198376957871320926110638890883048474247453662473314294104728785859136598561614359232222689610484698143600017038758148155801649801557282306991575001647072050601892139061917145931947545294252377748760072823048262139299529057124648533376683832223080208826904357241110297144669506141134962097835187268782685475055326318600963058806250433837299048133341162168796368243701459041101052383767901130951929060408423959923367677640716604094153542090716488520339006879315142568433225100612949103368073006949045208970076518843369293984856194507344111093603239938222051167571609939528219032209966937736105961716019862211468221265793662642042105374595021547516733940536953646329772696640650056094369294238065242130720611243350238769494987231011237610811849390756036107303122934791124026598716134285317960176480964056233722103507308995449992328701746268444389034017850685894509523948505187368778364547178596157156401597949369525488345756411914006257686937451671720814929467744657063496216296003437784620014505460327343334529843593710541673866014399314240969731076592390017271690019097741874206365989106866927160063117969647022147807819570441455029437788877126404013532875694586895340600935168565778937066133421235116344944666435753902862614865871085958202505633921832371996454537691882536409867166257806382381206849561330013230788763449181494876154532752900502900674121795539054724562730485817070319688718137066909040162530650211094093387972307722805083459898915252955156072290735711115069152200505232935163609236306215785870546356534871029430204823794794575851094370908478774815951481032250209911260496570473940594717601853676152112994538644094968868789322458700736379544493442083398010436761931279929007215856667574642015687148377609701009023599321795574111368411610987429397310332528979141463564362447454794383297061970654288033983579370794778663577912657546792399467950257718481174537808634407270733352693450023365357480440474172237531412381601211460699810344843073163951244760790906642847562774511863211547468480054095867930575262236313408002657123015100079179226774688623622326536166323523044911517257582041199498865580707580444753009616387119570639094131415685854631518151839224935577183617550944278245771981666879698171630131085898768991906988646988536293422020766624182062613285242758537276603663825227440874916123171717711162667160203998246108562133676776646767267193291033133291633146656244797139537977533051687551764788941196263473979755450510268490739451832935480934234833724148246284470918016079800132239017100102500113766583484184526754880412735423099312681497449801919325993241947156985802591452877814053939907189511990401849387416113195084626470597951691908766888668563953266227842241118099658920695066118991102238249521561099978913899659895686302117762143227663463305994061102401074469039692938162833002043862696628294569483829952994457793275924142798511726693425261854955861799818739905598360824963979972210561089997749590381570736740850767685854163038367861348954092832030041985190363230142673767468017287807684658542278896912471320991998647952791343734120650017751775215969941295822101385473985740688796222046681642512749802393238885752306659261858942199473768176480778925591280409204481388317201366556030500311305259356433193937087312242602575674146372586548207761810246059682951577656066186398680347194359572796332512396844357035433009987957758521538975213329554652261127818565878006178294880125739040265128201825213202784305411543892982079371620714464417698976483503194390978774476301117794314827302348198198854168939659959203685181373673187535499396438111328058294213484054649261497985079639763774888610243130576418814878313342041301868358577084887972852445674135644280627288917539986898600441869639814132781305075615951822219929147901639969729104557347365984040322967760437820895563344526993648808127872939117561926620060080476114509107941422393563294769034773893550551548389400084160707655565315295290535523374449650243390893093313239731739607945849019358170719195479517310096656958270611253522652583287024380251244128571965365738152315313487008561573691171790323711646772158715402143509323769829908990464151117612180603772260462768522651463216790607139415593030165083674102176161974777935115224722294287427914072495841948280822206279807309015859871656765196684179179548413194586796368462114668430562552496295763342740202733785171785801923239134759275482112591933316435426502280855353525500623226785750129810541864816337349220700763724664513805701923431300082001089186545584904070604899387078685462108948329411808410595682293250416930657577912806953049507613629049998443135967819012326492504555228633624007166356719124577768823775976666703947022320204179178832659001430743784526541183487851899327968927386268014170117189377407463289056624644640129126853742401802371988253227065821707308649625250347580366956939587208807850277036024223003903604777265235179907309371603948809871048045783979543618018769908251108885765438635234901306673024136561477861821207035567016103788077319222359264497364285108565301423163617762246171531705713315835366643674119389202575143052095492257680282260433297760405502015153635338018479369494248152949176050206123293884918402041506505766259054575350441568186539002613168696964346449807020893302791438508006671898889214028991290670940849008130043600231289645086621221372329789117687543753606136238740490406096481921803443887099960500287060389582297467487751683721999008312108688932461923963385084773362217892197063524531225353838127595393261992236459339320509970500726706365601639219801531902723773230629476243739730845755696019416332894294745924001037347916951851416266776172642696628091936252312034771362939854599087108583044658389374991579989955288253297354976582112871527733585596868494042788890988055281093899159586754236573931015430000086428150010081980264721370120336848489967466988448185295110332472323203966091179770754197088262155396535273786781549657460152163555139450643602211899751210534357534969773228225450519732251431655192534973858834723952879525316666527873756526312975624432586730693882901167718312190837727607941583160837788957539740108741085450787336209743226905790961082923798983277633299157150609793412066823858989803337218397734975927175668746273731182745490922166239119762493381524892727290514109775401598391040900394064997393656564207471785667357251089766785489228843088648805022581644591076885648640756283192399076247264465295729888855547083733650870090942704964911281530928974834618311242610113721932483408386897798511526042782847501591049024678200507272831275113494002631418155412584358472397636085606531090112755892946955714664945930743218314369697146154405327437390166824018771937837451136451275322602230881866489777455024021985190624226410769648436431095545572344877116941756066281746387003552234339523497606037311985887588642086522805011961588049356467452342359375856670724538635260774593757693359993152402505883349399435559431223556008522182858562725754741185245323851447508466806161026874283803165516248505966945944597859211523462383607398780330576652368730822102624331821433448753390310063810259926637065015192494808681015875468001087009819847035734066125414763708105752203374105050553409514037175371518682264713920248856394245938069653547824358662153875248457014168387969341538203407780261323049902087033779800394919173373257494557236032759569701529942507759921464039462843963418327697523825465271428900103453944327684329860530111416368427136921713604368136573566480228384428152065639101819716366865033477394378430295795754796814316086373734465572253481355837999133918829954554465262709674804568435081006127451209999815571721705475242837262277354236619668439592946140120892937324050092602597918313874837654355423046391911611869014849529806151567476348675516193204787577550395081367952426288562114413211441484229375457219135070710022747298630342469965897671733157792581555036516695360998438487368900875280213269293421353831792869034051663090253298609791534892891523769553063045562771041948857561120247578304762488933093433724394576730465546603513895910172942563749718807193593677914579311276667112511289248819185897141797728955343930401833285724543511641794724804080915875532223917387096338776027635054103498275333795152154518860542410723562975710702533628770585969273682875841464687393950903719238466309475541974703597748362182329367174976380404635324218112844952503944655338859809199269999937403669286827872182221181594009009882402558792755220704043116115406295639809904462980903611886418467094509453637353516951122978872214205652715724873248466455389106364509678631412944874315204344552071675608851269197742057981770153370165177199184426320070534121815624653085517815460692542785729033072955318005936444406185821485525294641675056462174058103800330804889048018864986959680408804757179253016988642766742470507716900644588477852232304994658023646688081363988288002833557444307845727783345855905590097506409759803974449376142106647309570547772490982767721264090571323181162908296609004455271927486025280800643078388153718881409960237448028841843604127661444595057060266119552686315112526846798031460806760607862194855577425351868624062299565435296129990714619039452414640435205179435431115750999597586988182386260804507165736663101248483808356733269805922581842074514984380582500486158261575643647369202161704173128319855026039887447835662067722117457257219555232304990889385218628688266838700181439545184628526847255236171184337121393687159089352033765362603705446939286940334169105128324836515236749248676242827542877342276132110152197170636689780346174889091911196876582444946134564761993299729719966176758642499294263073247812233253529976355146507890504145150192689288507039600037096121352802868997599929389473833882082430485867525641206264827032922048009320253775980866466401231311899933950727222226433633912110217172644717809195653684218426568350572788712644292347530080591374440923964125241704333811856600757100575192165607405919314825085487744995445129457407951861214368114404705104840122048449695973904677912965915384572012877935820619452762910866859565184357215425010315351382434549541277527556692026644483907399556444277631648315431660129455994851237735683650429188943549765134950047627051282728775033286088986312232103056609362328727761770491089116752338922658199878817548326333866887148911103465873960511704615882100410845542134151128858608114912621830756628063468694174084785299639237976868212859401039118072712331713863017405039081951578481650534858457609275446883321301278612926355628361079984850992747426460648651054637922709142923432961825751742131292722384426209653054621564714983760145988477806938195600361726590465963506503841295314328283222120923063360812628631962401820715763927764650732252290871318033584004478271920729528261748259177165734657818297061720574507738245982922471829284800220540077172601356990793664114466113907821472140432246639529741368039077622378157778736977492693313838143438475568486283206796596614723233992260955436657582214645907831682512010818583513387256850953092643716503404995215021498990367724521018551147986029320911328189129623092330127090240456222639627381113828708808044937630243019012219603542512111187030712925431762012392497931121764409080418889384355570088765633488198368668484526098249137840462728365873079477128087095435229436441646564453007958408031074910052957686095081176905348719917659918806768704253468207422522522157339893539858459521165103050525457071010030036874805206101250663326818360242452157865473698689889597823432082881977217692966198471748403828698116200514655952067998356813240777589426599088136575150706329647097652730125352861770645988198535987322625633917247498564715408314384088495675857831184190631685093136765594988694517298684181522992676364467242916545854772087573825832199996465594668200747571971526635525644501321365244940301606273947011970540266320641187867873623918861588670569803844939463522378795567818073061734559285408799763028729118184581944787074507929923575566208825671324429383914536638170682762436226253804352054131159927711443994385357490934623351055888813832415814431791628486015222003423652780741882696956303622984953864765255131572086733687853215188242625852497340881386647029215805521983041780072456200142943345291742928298657947171690609420587711210390300001551131542948941144320094033392388244068344328467664719556371183182446855551853978008757425890193022638547235421129899514002206059067022255393928234479174012891813872765223628391283598690202677338552547630625485374991442178001906568584949692628959071982889888833283233983691659799661165861279839430524333604248647411674840705576063571572249255794999156299671219587864620060684616576643633123703654312832380169176011705616032673517466560822114468038672554945017054375845478889333761448651984851879748317652747341869372916259481070222916133353122119507577381569650204866115138014577803805907855617358408522515469650594669246625786490317975058936757740759965046607897915406260310912641579283353837607502798791706840705701456018108352020771718811363360184741913458728837552861232348142303365556114444371683593858750435669729585869247199676407716420587080273886385749748517444951776500876413801456876051554635029309404445269385165145028695470452963928566804654359495777671310800070444368281365766748402416243420449185848582312608328194967890034530926237270519396113063284339975508820205816530814784136034533235361042626874114071861329909543162423220820711413928805284609207478773745649677134024785589463379851994160011628567524878311111895457926081033740028518050075929121115688945420002283091491809399588694141317043548368174467850927058954999423246775928857360572029400957485449240979510255787165856982230240972898750242759565287187377556301688384837648413538262450171998348247578842641596405475457827399751303917435251474342625945134551226385547658482653821853701386578961599098972344541008577088447031072034843106777606578567570294614231123312342855335360796867658018082647631432389798887652242713437684720051537738829936218419754282295585324937553771507346036837417066638049722131313281267244713228407574896083310153093935259390648186071899307873606192549852649495258545627369195671457413946993366444969816511031726316292570175580175548832513237033474349591806246802568670308182002393108223605323439783673816520323815331539406852842073291059810152965035811145132486395178265348451701757374417452021682132617028293528018149626914492523696390240611034479473700359559738218040899910551159741559415795989160635190240007516942230132922516647788079477015799210370424644549139578735327446785005284692530635275478718304320740737238073613670375149531522361246771344164135201882821282756726027673020965949428200106888182455952640711151919044280628028933399782655385474714986667969891167527328595298094067837427816502414263183315921242908197298819463693502912467526714336657554073630766828510796784390306316925912057965535156327101654403204839985610621321787949848629298440778145503751849558029121519282361963791582867565215808989737282657021744633871456420124080300372837836426161554381124401605690306623719944524663572110786425567609849042789766644509070887894729973410907874801627557668363994900980836585517744390529491185507049452484528825390073038086377175147903463895428547943286580199724057154592996868943787557762429662792234803300411529005391692766541853046352705621546666629380734753392066411241282027192104634568219219003109985255395384000340555820618207100472870332719017398659883625154314876151346228911942084330648087590651307851942890288149267664590783355840246365219048939566988718396768916434660527962694222566356701771973133207820750246660209836234043949082599271598819950595745869863621908845427574726026079499972304066154892543660338537463638380247613741564838530421709971466836996188675637562937088034112275413818375680671672982023425987768850504587120663774739249714065600654397771258057577376075423240140092236009800610692678718627426355483552516286942133886141238827205866956402971413729985735324534237294129822424414962163759247995774254657958613410621940230613683595877715920298823638078171098586287927462053353168835326964241264758316954525651748401610549914058699632897109573512905921707505465308775909272577833860047415567085333981323902169120376538104887816068687473912245603469428515952825048372067239071374083867978334114860316353738658177311955088594455087461245313359287442504310835657855200578176866709159843900892535822390444997076639424433690610527073683121880152054900968661347066166096319000698095548587949405198345258094129449632005283018916330649358543545454128190881795888133996355024961820524289674151104545246722087064115650161177516038311183778999929925149121402097079632145530753897955113144208419356105241423566694928680496271550639811147001829882390598247056656689007318617659236248151982277527194848668383520094690804902225179369339762598961053746944535052098667425751580667133559306928096025522550099642591206864010491443467470821844906473253785391741258651104270568960562757053028875549882345295810188365047926005416760699164168859316324706024130375587854549259799972599734786993969831836907855224836898659748443845291693964624703299249230827953771096439021008840525733804579876381127375713045071015188136333112918806640896009375371799394198272963387661695773647644223235358417168121247304673810769010004744815944748206863377939172791179318576660855044005007393350725050840102667629776970751069303680764588387102368012053456006202237573069229820394682225152526466861812480657682528685140062032249773341980434197276404923663189475395783443543040294020312060024542660526185861292537112522527873298499072068948956029250432989050555188297899535749925140842772509752774545284732832333450038871352015882098717114695568124795309822262982109761405196362025659610616277728611766712688515611577016714242275379652785616384621783133307855115510293870999350799272585944208541661323351495836344521702321369596343824296667635919118750747217795837782694455026476099239756126539401286606379544316375445511492757143132464763978040409396257911494430019063577741495413432083674916638599535644658198045424078697980499459978075101054095415211238382321041001008083873438525210107805689671965336116339599121155577828726638879747933611814824888782660401932065734462522850378436086577926773328563850690509488337887695556310602166837989250452472343633458347611041501165568155987733211385190066564737401754487703035653941072739630587757972167250578705995676244692937936654729162452005551972261917599688292252780689492542748133330079793943497181771459442521623793165839179842038497496756386775261118486254451744233521079307082687669585876629880777088455304957977145093266440765534307953892959469260376412551676623024725368544562476119024732103596313608226741503235041275464821301299890972567529879716564303751818649648540708404285465294346987271225372415995991913885490488102577235813801567298201403435883530379408320869234633668451218277796554251874029468619174109615119677062569618480351601375583984366438523033617469470090116818178718769005702778252677815211751687577370116275699703265179814434711373048166362221105189322679993296940512822121086298671828276319603283048650084495038791697203192917955339527581505015998154099355928382574086414904008744723155925563853514803336027650952607598762261010001527042924215538222719112109300331708364659838145768112512973288277028646342890260412779855133524922561120520351064583013252509248767181341068111965524033763078057599508286102370450557511163490330053462151947402220962304915480429945324514513999820452699728729716046152173167290062671211219652352304237021083634529087460387191536315061778050040007993325129970633237186158701692362173518899058509124908724513145822249469644050783719458562960549430129841471412019508900819281782529340583125240702805110553952318995993740480533933380555539658261338132184313597765635817431002192381402961963615243682958255207556317302158296401910508067896398911300648024459061015645356202078914461616345486560036583471140521424247552527933648112460573644035392125468850694068573965283914174959488834599232366838451242738049714764465434138057836262320329237054235045189203586238455926022698774884729210953183515723653150966082713170446411226177604590445960836703331723311184493257325348419664550705855662348076365072098230839734782855316902145654538217373470532729935053157524584729891993017727949656926565718520816461708960851873521820674819582431658257317002172548607384519814696486765402458015015722681940312223326929966087725377414239043948917921293653143879803811717584506862790526239063299460770581198195719758683056676569826564971046234693820711712742817365421501739628384469233328574131152036058174251932478002677064739116335309772936996818769978525251819281236528053170269022052593741151593470007295199020519088521706472859817467613170074435803631617363078901407644078904348517703159157598106801854697821769754713861742280977937120765909736431698094822437148739994513110335192854525411412685079311642905732448848388010414028971758959649130834610182722145520017685899117990771923043487562243644747224020262156932895088660594046752419788179993680911292560213633986158592029488560103054012226740522144181318638893662609293862680136033246516366586184760500005530535903216958525668215643697377343865982917212323846231164161454117757612113927300730864064926816176054828382965529943323733350435986056960658367942971510582057223942932782978093697570600953311100677734530773111228178229880278068266914424772583938833418096251638636446501142911873660775968181827932386985573868936741202397955036453728654115408187982348144332380175296251532201927202058519022102223390380825866950388393389370328763948870959636032246613322575832400308107566979819130287802595389607935949706157119917475244819404985030027259378594375290894380155347164430672903622569413001929627410750644228884803856138727443718540385739710541706372073882750614686735084220770334293679494256659258288464041042506124146819755556911806465386866578654125624474205895182148728828319016776327869177478533391452904319518587866936541611605466766798559917674834051701488018002062607697635097780707478352773446212926174041834856064837245132720461242054423696379941860268761183223157343564790277865565096354107242090357881138249365532926068457857092965660080133952010005125097273475018985364001721203703447578096233110739694982922683709795837111045988409435816190163457490826157574022739624588199684806285109350018297084935114980953825973528697383748312549042098293279208369809268515524771335839146427794796103713832515306950766713487454375534644600413242727871214466238317530130512420048518805208019998483786433418715573024933885022917172073354189004092685870133316747870421594157549092444002470311633601305382913581881085146379250498229570696992092965942625010330533622045389758399679230671266114309538627374282032902977157309675593395697173204566418584807657431849996255571398679954455220014559410465357744957927476747057605513934265991085665152470890505984789038435740190838544106716506337339297704129766672294248991085729968517771017893330387866831723950250573422006518536458766438334779431748047149187233589855844176965339049280356197189049002172171700928909934796096887366452797634205558976387723191036770412289105154772291611834368415023104394770040890639798237999638426192669158493142722936101317572682274989566114876659703940574816640001950126678577970266109350947559553020526019736858708572587136156365045770729033206496867112561028594720991044822912887079487985849556647199567197676458278286534830924994722316649370349732578246493616923449427523489028405001474085677318421989520665071558993644196312969193088655355540376327090246523236611413364273046556554766368788624597015051240769708268375755178748620084505657313617360549332125311346939810361894059402965632242701848162867349767907030593492717670674558905061201194170342452949676206993427104788901246735903246320939428399562053382326930993379692588298636104884541647606325705536564014874553163039395102956707020943876563463991787789870318173230987016393413165135216084147700036935541973839611869536745154165576325992459874554975317365884316292796589887630625684893403446304979289802364272555128698339588788626091337633203603046293066860264890248949171975704653140928295992357812825985622430798861260219926368890366614351728198835610149384221429479678356008281138133529839200431784678512936721188733073192310882757800646465455079944415098243636517866362427152696430808379874735424875512596335878374738104751134421249513474546367431455783422642323033388843730515698258692811917795232319571328720040481131586565146532060601536385471713840807956977562448520002987481662991703873700687965712762040948899207280367179290690077515967923788734735431079880741124728036774524401801503828843636305537430829576497060816247438316110689688900729819156266175457289360593712043888988592617284304940553351497585233728555166437678288906724624676086766797919737977973363859335461791331017521084433388144711785793743964820006748427982663373472602207995629478101764328206879157612874967387882539711755428733944000481629783465858688405201982752964368025206622088648314070134373339437290986950939722093678029279026166054897009869793677398796515596937549595605876122738172376636443489704083115089615402388091957687612877388157061808213472243876472368319235963684246078443858406957076145227502478042271353090277119199313390614290974929686139814854232720962473958335031646982756549476644563162084114050823514965656998114314857617927166005608367524191497566501088581740220565414799115661120668789068531326891227521251652164041395056136723156583732697998036501902399567333355654201588105673051494101954624318010870152843542708132615220417351728778996652661201894530246493505040252211073643597541000634580449710698967558714014989463049798417831447398201656264847708140279228746647192648506182059192739965004079931150428210508147839718827538178659156519220936736884613435206590949755543664410461487136470119907237111168132671141101595870934938875288616672699240506548810690291338652158619992923610737697188470761479593317339485712332041918993391332222622866692370277761931386880163937002462927640932776801338667558550085964696846637161034725152917893614817075221884650380847895103776230885819992892117496103598241622821448505452465331851319548663373497989912916248219400485802327408240422388437916359533480314511197880314193733628707627809579255200883953868200522808794943875066146970292943818417592614992832636461692330081283466114237742272200818542168712734612409145912841284040898985099046104969102763378920367716294115504682766795969511341455265514039565370478311788611133204110407673592126577605434536440707472161421098133541236474516346402490642222599804401814750504786655988072262482079479982209096988698797713214276166927444344391622607097756921471482064636752153532205944568917505728538031432164094585260269159669206355306492852463530507337251784545402715958197729768798461593986738831466347101658884733995219586496178754662356088524007309226908146484816209348955456872618784876763988920052903779453610828213402867078392428466922158495162229757712702202612882621490392560491151430833143463184361926923818874439395536043338803878434233833659685885144922422518450827684988432152867043989681081246785479293078163393936991675567938580143942453673912097589104564147635910453527477182571760805692651028354732160680914072823531162758778270141123172718497182300356500067907003353231371934114144884398487763655251811105596558804918582624877035997116051622577484556628711007144514625458703572349710537052812830624615648913109853584459694897383603786889035007620431922390698057300002232603402823286518130994787846478489292956346681433810361805381705244070294039478734124050625481499548047846809606464359199083021949794562724865049656428316822518457973497341985578260252310889527826193605912627700135167040796635779907645799454765771504690539480345115251043789554124041073683660436602677519488035954046510206724467787131431829122477761159270607780040607664329110739519209074722001198726078358859002607735313539617435261246122249805664291094273573163979033175101330287887241508675645270332041894578697629580365274800826688996166125443189287750910833774316465379552079310402079958025875717614940444254364918641778252720808017987845656392830600496084745785494845806496839982778476323373415249301110598614353834677694416485146250875631339702023647708098988556169877253640987598693369377871976751755204079237274964045993259771546083117495998612622875933748834662258538968065921803876907311281697400468989671316137721343154344483436586269366061564916584107017748133840378564078670278711197715640179650070081692849069992847148856329635169178183312978149341392251782008944450106809545562677388769189454636388117918260060500069381280796550436465283873626367735947556680788050706325460231315172337202190804489622541579136682353810153246894959082405623964952092072415381811558730352452154884990824094260865707037619321235147307968774377872677698733340694919714181396733055868147038977573408259693635623961539346548346371959420344020993141499231030074774970301511196034669419383389444654016731832837740864540696047348787945716887347835138455417772858559904233900377160122576257052224377555376067180307735564963137380604296048988968208126548727729618208736688737362205197948549462495776001386696437237284017375327425253699250876502213402393053392268505529391920905896189424921434264340574367985573253463952093604919056968196292056982943269553318656536813424973426059372966218757445979784786374330893935405390445919435438270165176475059732190122399254255093835554038098117027590947103493008356953155608355212320367115272357141434881514925641044368467191333123773505329624817995110842941867192121271775305470079828856775224275255571904088566179650558399949770156087414627677227795735830400086809680474406755108018711813825209033698993894804485165438966258386607141036438858157584427046153988784972886237913630399182050691322288445916088443350124765366681808466619504944974814595809945584087849471902572772240870201777558582952873898596784691446014496482873451713284610082790462601317015351063542765594245008217684366486286607096979356665596372971011396919844648028804021420276285802581261437535317158851977577663281857941901933638883186681388054304247721414703888748486858326635304458268355781205161384138843758834729484985187728545231560216325713064326688469033870908429375694626010763921667423665421661253808096314241882313350165608931349085583338884320682314578366247260751018808523504142174430335885546788624183063937072890268194233646587408795504682259883017627649061695022527847052719024538040454407014816139011329368369848311212502792534403354584231675862978685365991419120671092746792713364242912544419143144089836660243242612237600398562572760176192271376139413099251887590612864045495744362096279569146011482091564975876207208732244654954336300036567072902992820389193582613650472019349775290574237421722216029420629783823421681214282372535323530382673926394026053931541015500676664702004071565010401379025064145932295860505609128452929776693366837738093142911292460395746204310258985925127217967602827901744221715236925560133252601523876681881949756521752859121952860810939846448311907304833796301906712730603991306401394997817167573007633504850666358020541054725083659036838596778394706885371413016884180989218958477019355020717819528840517562373020391065299420852874027975354085711026200775514879484916682846706376809155353203158919390830556811645776355274905176204659283124416863184835733331473784276020754512174964562250870235051649148408317763894571285198796968150022252543745812248996902300962450515807110994456196791955108527306505402692613305692166202016259785643171613042753661049553976579459024481981922138019474155648377287718533596875405778186763244608358113657872115561630595663065060616427841888164291205895804668455025168006060979910448960190423435106125543214551388606380791713970734976218615638347020014167753069842328995795623144566388014458295272600799419838130673202627643345710819336460911263738203403166131498682715196991487607358875318096967748853336639452889702656249253051840966913909324963828474191162226541244518248865374568042979877404963173659254269494316033760240245771992011299115550302201201520496811866463142794265122327007230840084369579078739627692659729870852051059015767743132575143369647366499163909997518208058769584042798300621864603261882102632484764642948992222296233534173282133376159673079516501525118610015028649502058262819173371791652429866914602195112160228171074610550582965012785294679888819590170912579960188993845865532249346845653294966521176576255865669077627171594138015886254943186924468792390354404928140852496031964269296149423008173219412954010520753186192597117251160042729440563349414744551986578049359467375771653396234569847982841690544542038910048227582728929328059678053308123826351051097425572479190190434649862810463298225827558789803182082078374066971237190400125706043352397197127669840177287627066601464807347066439766497338061584887311533639256731868975342565805690577614298115179435365472336304753164424404796215770018642485919125105715880627043810797029430984735712849372246596350878540292680206500526298133781139791839893800902186644679678910618294410371921669582163654452470182925984302217145765154713570956066491453402159400325949768771581259449628567396554548213814228698544436489654618479491444399823633789974482830912880613883219156982472328192187002847195752135863882664604987223511480236047297456244236504556607706011589911849972285349298323565079463544435470056066481983729759328729333878760881658142949951210893538031329088470750579049649059697402733254828881823963786508426832233771279571073188983312376863439690460116635900868523439741225769029301083172559469299445429673584045897836708682769254810735284401213807375652847212671790409027271605451767973839021687748630766986492560970637195774643275628414310268062118813700504138888178374912843784083779128191432111511227123733308572255593342835873230846878202580674577816785487660030610358855581334583491055861787777558397315186254468698375381947329731015719744867163779415759077249588072855899217743419155207289800240037941083542983675343007252157405383187013268412283292442471084114005160754494017557707270487186350058196391597104639841110131083070656624211406174980582147117414814184417328746006266078911086614965492598810856190605854567815935673722077057240537405160689687148947604308751343679939597541178029375692403042054155057877773345227922176393979811491248443442165818183282163599331448642436538995855535459323594173665220815774009973348862693187176769760886793802653237835586753101235399872282039324102462128984662331587527791712102368209948349846515318814579480124952915979535049899733871365020396368915882736910941899268273127757928041026510299942884635853785890256079468587359580128986827185660000749013348659427459000803129848259316573381605344830515730353170735191857532431344798326030720212537040022217997190198849238929850788707217932670778764318109403307229354805481990098008873565196277761146658075299769500518156231231041771537549708385770701239615459331986749230425919700415177409997710020657174650466968021298413912059257622372535239929354016650354534690401015316549082943744554125852251671408517963597559140308637734524396348166519297534964468229134158543615518975630578930620167563030659039040605384453717518526829281563015670515972471846623432275340146793734134283965430390092923396629710582182527694298228838496969062192253622618065522214625864632189414293354509469824702764463653501212927470004086828473667378960433607057527612941387669761028924914813848003671683475211791969850157309660062464534340873374054913746699883133170209125636240562605756318161689749518385725910644320796922292520084838537102831117674699242754824018265550146012549269074862375712164013398189541631215433930109693307454242018210839655020431082846380455958727552901147279475405041643754793323523595137726787431259230990775433098734007347011623901961263876192175050457742780488453706015236500297830694306514953923307496999918666191472451962739774862083288178164038120803934697695261721114529100086904899682996768459746520773572461863918840183494083368705808255079892416021576929410739723441899945048725896083099991267221427282909319483792329372188275978152959454826149331063583265994837195392924992582994186142190049111966262589572806737022607452382641951346142354511162321809646678077916361315034816080454881526699670941308248434639484056694547840770653747233312915228321774329452161989735384210692771992555924960467522559453674327514263340747845456810456897152811315822488361378083139082865125844369727522196623611872758541540019679422722676079347281429644133886814539045016388320257959680799287292079580978023466179077761274165010198786317048413842737872149383187003283154250735974250391156949655894370687595508653376264829298913004444632351155589050888873205749350429855062559319289338907472114570627322427625249577141280310083811689189035361736683561633538209740527562880190025259705226165104359519617505812281592514518403667974979639036074963525117058797770536919410442814222619188212560256819753313159198725800567633661308605555173946085417439689067747846005046511537980861433687637757733360907509261671599578861978227836474436586177968176189476904157437295828322262188739415977421047465747887926146989239783062876799212546907828305250363547834773776094086685542895996939664258944162579809264753427093349864460183841622499673847366016770799642908115183848445994239282147780143140168844889281893234754259910410909105750292928144186991851214223045726121230690595284431134196484136287659148572601124081407313530230826847538204247771216232550422362501511829949439699022233002143731855321666193431849969230702662139354034936726510344222665102488134996667025281602628630955964567966291906566031853945581519580093932870500792202066649524402918197893519285239718653149996910354690390691056773546141157256029190197268384925689246151101217092483711588746460316516357574426052028963971461230491113025710532694316633693460365806134621593428212303337332640933910637134097352755430676218604448134898839366408091465157720711857772779209561807771611265764423938981194765390585154255796548104526609288747774238054427837928688604213403161314735164119801734827936971084343968826705298072713424315986490760783304283823112845334966814598938078605123758267695101080253493137522545191829305454548158285697738849892144007723508130968066639621156713217148840697993314901065569818379206915939929400288620353224652803654468663506445778519603546368579795677061397156068722679462561750442500971520063223524001482069106555309519957394529046498019082481007695048679451160978767511273865759324774605037070339504828945477282306977422444109959830699100306536578309127854388005256582810835724320401392889397184718523721087324768650080938395169236732695894089836813787849106145377461502148883307167803288635783619897131434922598549405857053602908917292940629646869621121212108615423624495241484596160246177495020477874324603434597236187294527940140989372092279658508984211639674079863878949777507409818101869509792874759243273253722213817192759308454016654699470910041328448008282813054292184240144590232381053379429086403092272220154614692333977025913335419902205959283796199305431362559703834666991271800539945365983503854753223062456863442532953759434089396971287753395046564784779604945132558446690634791546961263471416497758512606621311454032419047199780786509076622079343497364240118186801922155056593743500913621638498652237694546883806956436575566500926382779260079084199010726226249704330816902162495477575781950058386846969367511491930668629105951360044459948870347702184419882439143383681334962621213485867273260243711139171281417181075817165942418048818763706345352230994621873130436496852152772077171984273476799392988127681638826464659558796790099435789118913642199455802606969516248739752084894709776729302588043151559986672190530114784451423913547865602795019240174681240961308468890812547936228023664448007942675580514158580124212231609226529192704835845154703213087801500949035682160012426342026083455780341412025882361231420971173110319136848449264383297419902588314298205643275003070279660297009014145954306303541492270130648564488876506018782279543588997463252151575128064491050715730285053621763670240144764425151589121085757316688427872930749146345923669108044985487927137336727276858357345399002217614998868524955139361474485342569357147017544187248947233170588385332120885392171082624827626853425663412370045010903134289799116889753442121818150130882199485121677992245769711439456601273794358703703188029195884674669881269422880457012388719031854126581959716249946965777145307684204595140696527920305821383494658010565971569563487488132077328272445452367157676053615204926805209643696849751828821939532881707251740166093284093830810835519275941244804546571463645520880756519068446503773148430576093443767529319176659730526397866205690369557612423281426469084258767428661981679705097855900343568379937086733038586621710790395426222141891628930563369896358682544968454974512231534114655839515042550677727788182966541525215881089752773120267890532864090544630397021783539994541563382592952132814766168906712419228765140770258577315773526117105989530343705764443135614967994653981794738121024277110470291391270063759197651324745046920616998518462586746552584155060567040106034917637791597266077307716834733753494318466523210671213843224630045697667487923264272662246195668527906529604757211422019940579310691383469384678078126635460458342411850153725521508914794254539582081043446182481365812237880955669509694563544920248703884724478858819562052512893640659899665821038912957588520983776395407724680547909261166384252612270927478237124324054639462145453827969382102413116612248895795660033871920028951573317485156794710905004390263252753020016125182697411826544122623607758515322904883851333100771143547578723861197677253649893298808409269990882663476119027712601055627989548773124941697266100237499520664809375675249917177677067261700931515343747309998526059329322733124074741145208237658780428796294444594991844634753185861971192679343319693074592147026713815837711914621133694620882630503461254132945355499323214800095336803781459521881632160694532992034964528146547902307815823476005098845462768514218817544791962443244389477276808064096308296887364769907138503392309835738138075366662534866227494647232937398407422507553988022351257688940243000907653057557784763967819842980067684463303371787459202786445530309134355299103372881091258327448210436429106572251310065045026351008923326154489085857140265473403759033429833473574895888453059463008665995321020074404691162891971867434224213641570628776946537003090762069216873339060343323234687746898384573922193583206465228078784955472275917437238437556364362365530035104359545080397198652839380890474333706439075635634871789285346658161608026860864468979381850573506889254208870299400489358427982675388484578738534175220752570774849863799037314019960881436774886895868566896493536645136594885272167350370772782683757456070034917677562938619688233424124955511861250064258422863114706124438021540672917863939351487363032585600326822696483828185223185943282061120975145871793785977037640285182974726365332791764767216534519622934520081173221344938871694422027887005123130417756896778088869309818243881367193283584720968031556333592882100705703024102602561161106043588425569792838036300955776751454083830220406228625154551588873530289160728689557358615772369611988464921405643876418473183078224786512054089720525611355523979940830172947593015944317156545027790434422147710879146671454456878566860337953722614502845809115035020194801000584543427617037143568727085150455192785825556345526793306974780552253036177731876513764900260689111572483037687549955216627723061041017225569356948538414334699447719011911876320306699308098816239393809833865972643597586540480984410786644771274026162423287556351965539087744516473064485648873998657491241769446185559643830366563579257979164700432731636068909983350481946008450027656673852386683270143137295453038292451876379658710719866067058672946805623359824355003474697645850448466458638953637926390093435811612748640976915975876137539435324366644756568995166475436852986793026678402867445254991615751543709671350114915715964106033074914449209506665636982129694417260126681249744512041033629078297412003631060626948168191996639977130796941889691279983767586749710029411616892519158710874428141405173014618004170192127566855188985505797112202422952450792212544605018629297637952838921641252027973568418013275373448171202311294865705254855430144527519469435431855455409670944842625597269942662251837956512697925226658040338522066746831895880201296901201893817408683913186035566507492548609793578490503465482078170143696610344435459358624854358913579932092244847453512519261411890264225917765832385627796577806305207061007249255545201870194709786660580655728349475989690247964056210310290257324571549060747553815344571076247278769158677181079394992670419968910468592174630485827184177680474339880494987952624276214634025127396524479523433692691336172007396475201097377393611019429922949246894231796776430765986735863691006968295178264682143284591594380253880192102691745528666218139396389030334876418863226700404434427432368189502082324632004928180138247470286053273811756464454046411438304365514843306167901702340079938947600601376240920329207680903003747892110768888459273980871755654958974338130153574765055646742432816250928969094972512171816476574893602681312743806677733408807647354680716167657627547386347954071184627633310670020182389945094956785413440989117402176310169811726474110138712801759007863590946215806531439607752195547466060224032944122224747720629426145099862241947974748911496558850929174386438795864164892928922206639066752034938151754906152003812920975004744280713528051809722108974791537280817326751268709733380046038515572566383521173471387319839282913383584013711745554013941842669399343286207254624253298495995858846951288871706665940324438929599133672883812581816135894465282049389672593923764306165138186597641504023189734401043422414149965294211003956854426358423312775437179713650141918575292722740836212595616932426226359633814998289567133672077427109599412316475848385292014378972874698268025705051337310249044170005331795355353607842418132546308544123012450791962093199840944541710625211569791402475358488388168623444757132119621429412326212297554177949568689471249308913185031355055923487503365977535309837656100535342614858461001114119625953116436523141476319165579970307649467804573318947135917778949961799093871690053976663293454008218989679875203815933490344464365817165090398303814104849360434668841009371472375438018295551196857449754881209805119823444691707815407044001134872277081221187240272802411441014219537137892199929455713077540681556162554359313683549144827809214209427418144695031571376186833491822923620410145699731163707521717042261983524816362494583510871433203283319115814936019793132694495225203575447247145405102262906745360150874122848921027509632008942289741519927619891373904655545019487115661766870406305066406102445701097528406393782625718369905429549150851234699653937873282328782069272903848177613956445413686837877579765425432526960119901915659680482314659465512880667293659478711795004271025082076422047900150382399235066218369233893718268387685034337166700194047998257807212967273006993226553335252832263768270377044968378745191157875932208012924652260874276415587832610606313132059932897265851105247965849984081901687759057131876204544447139411960737959409661599743148371229774363070248151569276296129555202909546396074858414707938324893866933023199963446837831317657411044298981008680223430806100112017256711419410913746240206714022137254826440148323351654022400822347573606235328780242569303028615125201240605336519474697523750582867587222556223401579122798593858999329415174527613154645841515468912276203141772463294662484807093661301046409987020257721973510260116079601975195238252512052390405976964815223523936341618112476531629388150635086326432513899018897672898445276446330196847734268746737330030990227948684153490906331634250557068731379035774143381656387673936988467251676119750913339556836278694560577789561235789724935585961576288389668215937205361772097849654693668170067884665119057070113525744581947569342704357530549937894911421099710318053152334260785317297199237272727799910701669610263615359386875914410189088361022209514273159891803692778664681532660451824326145466904205665559816724125681668137361740828885373362731101362053258205594317711720033915574962350595974159116262431684697698752703512528895693009924656274536614007605600733447069385677827721956331061615682825034187552172950306340564432522391551113270196335254040439249487719389062355965404208247703139079524538910813625769273400945503293136318799199450700044629914284752712258873740407623286254020393232667149993945606544758238067551724824169982398824206650602347373285833261876298788861255530128959825918534538212560769837340501099708377744211393923580961409021510276266919445498460363779301839456730935714369784235527237631186062044312586020595249983624480745215753081529577482327306332989321844805583166601655063270442082447120716943242758704621136891061237606631882364500342837763338543613972809254877868388258053555090865023763519232524111423298238512507417423065405956938305327103161715677120295809716259492994065654664263153636641252589826676084169166880997692310434312503173402545815348673361047325011964050105331864414063122758281070475720460649566346351503382103754809147457384037609064221710472993606970374024569770656766613459124826973493870863182818887741757039579421667328221148148430821888885294131780462225056651009547866193162372936145479616658786158377031621564290066280174045415112814855986513283510131173065560789156973553620550871971462824614987129455024394521226015543221682589880854515113567321507413144413545328829027817499524759652556828888906550244507673162665970236174635823739073268832059697798880003240594387616081590919419867168177069758653514874804953897316336146117819394161122040991055253919570137013679139520269261994083908733489827562153749474461936273818463865161962332849051214380105536561252296555034845561165138570926308325776955905583400387233833532785186598011871511366193308430901843521178030996422844983211690121520463915358487759948850287116963326055689155088349064561088891158088051400865708477183583925862034622298077807686547113778317304941719384317915835406190404484504619037782484598197025404414756592607597156371829825975612121250688904825755990367660351135019566489873546566993537800753214356856856606572204256568392269809246373116654673202090843367541145435015473420229426141471795331510451075599409320729065856088448938520096939892513968952083239580860162830094274104744913810354379477852086315730194592228364013565302885463426694656574391544851591340950934442542065559165387280028048789519759228143867003344929572017623790682532971058108395832258848329975209313752916464860757210773994761019633125630326812459339484334573665434779705850619805878186660098021692206940481667384439918701383740269137648113163774639175608302207219994870300330145955547637633709844241039651311620381158087442449809427485272508736361537149163226748310309249281564465778069517787430358823134259986383234114595365711296657440885602368013707456785721264659327661560441379881225406388857737567009913678972209464325588609549908778452734296971255819503947945804256352024476329572831767484283170569086386901559858004530425447535242618227799994004899084401665605228064734429805385944934522242733297864877914578046717163614302927354232700296990368511647373555295308644925642058104552342841545070818678455226460622958637026769450999365172241607601664413283139733593138162882050744746382589244067162298729271225075635074075891890582531759080682090614996297863677574111462311390876719689403637095456316681605177623722803929603839543772054066557731990386375992629025388345594957300345849753072304040964377167082350061623010416120868190744578328597209087159462342553463932095921587554361124474115046974306438183454567240778388167320067212285759308553318923553703152699687969080162094115646781223517310913271473204635152103590180115280347437942549761996325532828707599780132391429565873536980812432672605748030779716449283831009384282166339210072845567510432194449301785572420609401713731974025183531047443077478764270765369129850171668560997770486724318793373323983887285711291739410542870689399522523955660740219689407133196303866014451290510324295322133860980343293956556605931860756576490365118390547811685807334332831032039776261341572330256234795672956142293357621520506521866907061260421701968520194972719981555166210181893747921887785641943124099717552438392317577726530654437957064576705449025709955368124048875197909528516089628970751795940110347071853114192797979968025539883695622983122282463670345550126084458240920833500185342881563094075494065922897793472336080723889593688975483321389391010370252791744087241328738944346293374811216815618975662235068736156735060158872652297333313071919364001012764065062817257668200281376789956757323097437825857063380420123957545506205179080795731127026832406922328844069707551390806558383042687031729030365987469583792332613810965858831342307050687321377814415019623734170961764925827821987674855215996239212729002442827614509801173258239221031543277389269213147266348440899166458866867815456250333645695127127040881209289997065675668375343784363965466086724581210141596090714388435055040301027560690334978077077326792515302735402374677890097359497315974129747957825274591406200100363775824590912226445407640061675977279914156415846932055560639175401999557045990744519165338089910515538176514917968665975566191882326507391063815182912441345647805216833449767922203982473337068809016922615809161308597638975637068838695745211440209418396773737804991405645346910176193205567592765193518246866532416204305950847541842048491408739808378226098836480077852510936601894230870001516978159245750853787923535471571866973806603213619587105387742562097188896057338519181968150209241306797507426760950412058163171958215217333126511931185651888946472820845079391042770119934834626885138389545191855858910347506355586817668569344660876817878155365769086090458220545476295011827494515596047784723692184632534595351052367433823421555733383073492331547097349648574720844518989926097195421792924775353603364471790525789463892658737231862356329901585648708584650747202353592308769775890584109178920683949746743296967090166385347809941179015423045830053459500701932461411780861828196433467820361903332452501237368762484196723743418224940855361005464627903619213434592027064567251712071496856723838747563659239883475934275741478732133291075053607104943873759091809198259698349773069643287513922836312091896027469046333748448876461767717542062786184279444311137636285567633655948180813297147240533035507800932125547397188630223934212805740351917107137100456825915634176212122610052504323533681224042459613918858620613463769877425381281296049151145111052210447265212538192809725364629353099842375965894515690400271949250481898456083426408213410147954082619123895429948638956896980758413712967347895133812325534554425609848263736513214517749366723414287939800287526422778303919849718491572969913405014293892810470231032318514452958607339351185904707933224655750824995526911676979312544918556422697229021389489005569436606220606676010305750979617997150846108445784930895561038035119389350208730087305465177662059011852907463106970781532239007438351114083963818257200843185283763664540813356175106070990076939757453952705962201552382699587222298499372403465662085465881375848736252056298186477624153221549613896291642099385435000906489228900842433964514459371579035897297886512932603204667305571173888675901085625588445473248665240367115273720464025621796452761704332679149323731909822602443007692175305486071611909001470617256607310124165551940253523396110869399044476318381911423330568415102494502656500287162291134923105916012857603209231857396070710941551191374400638989174061943798450227881957941232985257255884257947578012641273407069080220048440637814039250962266232742842268296796149231816366285545817246803259482544002487789635482415459445565577509366751965063074749768663290565742939534469452705681033681553805696279095711627665637658665271053061459267523991353375158818183355443763171299679355591171829234774811585698899795483147745905236392413711683349218655115010448411156071176072579841459692818532144239872225354309320826108739356291987090993782681219762640485704198387540141138605880068112800056843902149260759233804018231955444178416423019648192694886976197944091884388256119465428084421731769321217695944521035891643200213141952528143819186311513013816030744623903725327004978502082364077528798555245497779978535441124329181052919538869715938508855557741774409124751211391484282165405819276900745900255396314583071879794704158365071704956322133410129605274534164034809181240903062538802413583539210156408447285498591542339904851383065708591991052784402533982766492065928883473949319143430277738588584405796862569976882730152584663673340332809065756826267753037860578144422640184470950139215855010454132514898236574809168481335602518691319247996423263185947630707971116080203806655797125479932402085882965721084395963044409314752513746498314276228809240984342420190891659201786758891687184436420538712697219570044254206122403439431500209171597787957504115744046788093273850406071294235803549130956729497114039722738035731166077061657860422610273388763705915467026351112456569772291088002118179127503137451223338292548896236792799588393066256323467271951236086652086941827380033371389906274313953291280727374686705473054175395315762414848816817021928899787318022810254433022643531985604644271263223937704036657468725257858917668276740249458536270247208943337481572709469354173167005416273964038051551001651848067846521165282930333300554240484175919638727936391589836680055627569766788762189076281511133264888492781958619326578225715283155781394187521512578925155961508203963233089281173569241857081351622318245037880975805851882081162821131320670610558724026648137765565273730380670805826387678783430359661082262440547316399216937014554080277453034399061994595158136734260593091856593270716305389318966019971248119068008823233319605822169579469934488970374270867480479756865766951908757959842086539514097119534086554935355163006575270863577901594181243396156258685154446349794698876689352966463045906406036350396866234801438269907491332194528721339914291793126859607372196443866163130486911334118651546967598878092363428143887997460210581003782188005286371638476894595357537807273357970500530714685119886439326607973717510767816869125677476747390288668695302166265064086935526635173255143673413963526955500023688834933565983154350755404051334058281836520157963153520568760868616848426883557119089508569315612064312275381839508653224609005801581912151010040584207376788341536151099806493643059485650121839295319268196006159203934004927899791400585519282499654050549505135514927608852324572879470628161520262360262758410023477983673284033574331951915738554525777528146560199598346000080777160651535305478841290176697326600535190072978231398787656570666332636307065727220215860987259610173982413594945103661552898414694566344112618840608743828674423608275715233230060872187084039431291074184217599944181184331234536641518450525308375322067949558060939158377351377744534154130586462893186762624937133624397297134883408724829245625961283952485937780179132039943516612370793120207165267757628096675256195852231782628089194634012775812842312488760051849740624433595549613428362689915342557641056873457451389680312221972169037751354752756365704448024655537843948265157231632003147663751465969966909204937849540599120325974729246585973632242958226944133899420267733360914997460012543937285196237990882909125941735044262726756388924175922184427719964598903617463308366294778486564614991359947684103939757249514684499695016782805655553355223172400176451837456221981545781578906728992472127151116004169017073066940403363990713132606042314821859964409994057661134778454487271104473467401745864879738035876202990647494929080748065499171889831645263258249448630953261240814468341044659313663684318772116268225194325051325822158658644721803707859039047999099421559903905943142258010311792815015105783676978589435145155304239210057878700403613662417823599792660352093424903353986319909445724375105599596132187724467480818976289125519307207401250916094949047424303126660685282449381021134833218367758484634813275401376644950748621990726594179080509503424607996465656013472134795225982823989858870101019954651900951617995633751042478249572565111366367066122451928152853654565867163366052981167339672274723155619318461354752156307938606879248499279879502927022873709432543433212535219804333824751973391026514184086763906815016638101833126193286232035301647501925687726630400976694945978351478994086126626784509949132678779518176985529071075956618372200844498065238317448623610346136335499653420545217393529871176749609408809126567771130039346462593212946239361263504205354115734544001971088900037051173649627777062129179115583578948209508351181583925066918030172392932024763280938017619033616730981284184976506015581134207706921792028357321471884223026185065516519474101110580025005455316726610474867680355558443494545673877574031058172626521665951765458532570561544762403290065229984790441473875333701309330642007616036909000065993267336123536601276704920966211228466909404108442318001069001993808098785883115482554003601604538691130931078370767397330114919754560162504881861456094895747544391200814627830145153384711904761415331350474491461657901715185693945970485677443279273660845949535919017405449074168553383449578015633603881863301879441013168759130094686950276478755315767836334498340106288729068842387452852400294580368310609018911337587370451946682506089310958121637837771301279578492129423186006916279733755020297562140588738158734941258210475187064872286744174110007324100783202207842212035213968540578242160186750510729517673027440508658609851584473407942769085471711753425206630934932085476254788915581290074531201193614656786091687288021931477798392352511265249864592886168662035089342001353253516436763028187224286818819680603984128061102560891089686642290221621255987254300665222045777003301389155240305688593255582101221295743056654037342730724185211300734598709139325337937781199596162787965278974643164010252101388010165930093327937427487851935451128005975667632224207739242820792090808611006620995617400020554866785779415348443997627069012150208075625854496987391767137112518668227035639301594200895240511923751087168549681842825140582619528019283095560443186414055260813082621461705340357607969492636007844851547480209090298756581303752820205490488023739734731333692883233301411075037635068343402658465930778885015632800236163127454275321109460455215755480797752471318375185446284307609381818323358112787189467986115467416486136074125998805173791038374959308196495318700453298307315230086730671116943425463968768928923797794393255041631131685454485268662872799902551930593789477688597314388611029490282218775756549153972253870323745615556113077404037279710175774487034461750158072349800945068447390712131331971457347043512954675602680994930001739929644804836536366533119608039134512023794182900805369984016280162405104856487486794708498497229504303230455297853225784953450071392766430975532407015450864676176399903431340157632631139715449857982570036413850239637301213451787892501551358263221517567751298139898885727760070915686159838010348197834673130953882373768262784342913084106319430888619916217804836603059125314453362304007313042916565452261332830072335454512849742079969116700047979822537408253285988821363585232764073130389244749585819180350350212332895331269071697129259528348851556738546506210946286278609747050134527361227483823616646337949174286355788778745489146246201577543808680841404826724924403163300192322508890624439412866907064042774735661488489818090487570563116471976504506059335897937288574022346530443319835347119188341815678798814491897492475581684172176229333317358241300197919527882315306373028775486206465814790081133901703588647827268914533641352315203801870102422321323186601486764954003035869181642203654084051926082064482988721659814676203168079013443977663465859507347604402937126565451804150790096503004266982852634064094417036521626564957591887019279016418638745248161083336910100693399126998886361979220099282732219441290321400338234960868773477777387161536710729244908750687161055697191362174945484548364269189472808098893230210686271643609066535848161946945440218331954024423666742818038630984562662838906229055481856861465095582359006307952047553898110158540450102285253502673705082094147378560503802958432045319899719209090992254004519307327057186024124184818271888574623505740984850057738597195955567312446552521925075925423073278702069825292915483551707618639825519637010286856933832829641259671446438428665560055092762699588392017315910297711928183141225286044591887134948768699591091052616413692804314098591928305336032138716885980629519346391786587690003889712955436631504887648506693948033536352187997290611131274848416125248903879256655176922739726020870583419981563415183247367549953666046198433802488652145139461500777035696658146288810016254212660839325918121751161727340234981056460508741473970355386504864784741490476788777105560261278354301823320270250316129628840256435063709535201375833438821157997186261059492086863631454757627551719302470099213874320314446018940509704169783376995866734564267200124660437459653476049673721558753687974465744470248433453543443640148359401296298480441583445249878224743965074157748212376044607325738110213746957805967304848559673873584380731768579396214260113151658864036731188178548139239608598437079694685399544942143430079754873122009971240164679531932600984594007021594722198242778374208177841660983169131793953531451780689440886744805032917883625852526316133442427122732135858953699993074323958522214246280138097994837064347831673889958842713460029468200745376341462090063416691632811378723853430081501918759753103842011092802076395944052081252595520809872632032636043950481247320183049766181704157764174165559510189724073836490272569268003798095323722270357528345556945297595604986546860503955156879428033850249901974111063446177032293056078267855253011453559290330543941421697023004987960177674099036119178712908062873260047523154405706841257219623166187644135781859437863027264055674249427460284751133687172784410052711626049037751556596950457110560594508160285302632199685404482612380941218670503730317631052563153734769505145546873117756531470297982154037439234517612932781120969634036898229864076799332019096269097577676153880136599097930814220492365708919335127664293072671641258148648361109143679045787751833452394035183460062248735392183896518208219650114035122028166915521176292247808280636570391156610438645393417988693724032352350670339675005281194772169188574514083397825331456704086630805280958929069673421483838512144804127087002618146623911255031753968079766959597710971069184397154601662294901204206759722722538128513254524182644606311063226233680885236021113301767215323560460698118741085472425265395811097482369434586256658518316619539965100876217638666930522291257759147933926016352003627468520046212261859485968387183249594644592684679020646355794508462682563798049083537399616222239751340840224043455545049489118473313268679969876930239867654666310326359288601249678304475220568695046722612764932732432204484854846810370894573538589563363985855147655140235695051043710018804222072209832939231599080218348986415357485667454868079624818167490990520836119526647748054620229735368218067678642025742857666303844378623098942553056001242442267003642022418920187442813717452116896286334084933058198685922319230520179876135336060311777670383539899943443831649433236138038814014413417126563977829237992715427794177507376532387425618378770110964433973493258266029896660992164967004002010166408979071986771866205522143433810926072071755781448905795361062863292569351290512857520211125163423027344181093319594874144674436439294294032627958600860753536297576771373769132073126403087356028910913932413171444176944468925109053294014015329242329978011072085019911347181990667186013575062931476816772160244195351357022132120248282167377480886904936201707197368086043508382061985895177526675612612145585870601204747145328485672445577999539557350593609388695899804478313747725661085194784985142232456181497090033417673507011864935152491529269196371857068113698743147367401228840385045696102361122588665232062687829601148585439029054156457104955547115435184139544784370805804330142706768113530900775775921141429759207747264476136812861866758397279629635753093263248214617198958162212275381321496726727088757832861473426704065252151480718782433018265161947021886207529772487253889873413137659511270491864100985373599403838947249330034162114100730799160552639720211536438117018175634265473606811955200306244662597526787615474233251030826354122787615244987983541216326601083571251106323739143964109820037224031459510043813202267402144411449516421150022312944946165472955882945964266029041763569172574673811256326359966287137811523936627329480110617725260784039185199143743223402590006717190226190772962443087356364547773869830763548380352949302202805363616931647464808133071906749958338569988432433105033995849089415886026179549144994167936295995957928479630958883724142085123844574378468891145172120442281206260906804465570105584095880104805620037618782977449408607961563515371471096087485774776980347324883370098067489152415379929967434905041609946499606225972408213290938477168322316153790089560677421961299376078676421000760257883749816061056829453539736203623148311362200827255901562451818936914418348284211334475842974366090539199650077663244692160908983118330178765986317617413454568742413218686735292930627558831657678025559598868795916230215550019665995102389271095036183243429942072220355481440494864307160836089637365786061344065625828953773632208867283799225206981332376499665302003955233676100783559731549935006053506295995573314991252473907995784792401287166738923982218292476132643352437793793666674242305563942653449632189673884888341627593793992393464162503881387481194456560041627732318698116468936023514740837391240669597921680854328632340624768186385251217169636162657321607579858484842988504436412811389272863358683058270011536485938836170748585242605982892341699343823472924254366162569924533800769734636347128362067846859633443315699726991369071897019003133342276359873463397789167997933901169799633733692125142095685756052979038320851565166231770226881529593948168477418409109656982873330758359341464171784689935726300093903666896051154123057369420073810495971888171134248748652344766137394330444410367862103022122941212207748708984940431901884314097982119765796620685295569264589528480498058693772983282858475641103073907328724186549576399562234736562649370846686845530465979697483760771695988539585342105703861951445256233795611061856232434631723503069197088435682535362749362547029554977597384206804586607533875218724867175034940419032499817451504095969484578240833797036865186179245466688122052649260825979321904818261274522573601323436881176930302630159183862573357570802448848476502306704136716612064709879494858126696608222192516836567999815739423507261179594786081603635197047029453315373720778081843152566165874214878542129110620212791381311476304515631245164039720450762308162260812503582398578897495164022165645901247066405519778672299997041641597254165407923578300874901646737541349058581922841152803798003514015407702626131095058865536423148450655519402915813710703540709901763755189384637920044484195941638094525912073966651599843356878792334796571873299174081593663588851884072527526419255342229263877103901386453855918011169730424732081210364870281824736734716550422649316756907884145675397751495297257883414872166558739322527064625071250197241278269494410890848403369065637937572988128351709515184387662059467878062310258382136006552251988357879948421929195770926511384852048351244991231245218465547686934786702140935008679984002266600280188944356465328247473800492952687510880767143573628840688689415294431783588713695419152176403913396213039231324514394568844651799480006721676351175874205197356937686079686351398895031382296754356714595737696538606794036553323242520971754216990417776268654757741413026652012840000554230042409838123835291701939421643609577601565235478480678210678683924271229584610593160504941943693367777909878531416564129459508911719746385509325388786183541417626736472514640072857259573085738255078601688411626678642984770042222107701950104648849022047008763844580803615695093822889615102914595325687768043055602695974991750688430895389899405239713843378280566251979366278620771561799729238577354614821034731623427347962801084667524242244011748967672130336202664664318620430256787965866319988778187400262842294027354345345036356590557017862329937361865823516205744196326518430651406933515577713131353933934325484068625579643204603339184969833425261555495450432868375236064159592368808064858111849761127207439353562503648474357128260360747580497879881627933122478665270051374279337470993865845909117427489760358913275824493456497643968744498198104525228788041141447337974097382191930713203625476470126327824660647056242036894201065200978747265360317029701554858353128438875393780788726416053416630829511264097817964671823046027985206796723366018719061748788815145389454677982201016765071533386878201747953638383174468346956375539087548835447102456199621853444634456634628806017468830574489658371470618444277600602161107537524684621836423543117045371807461990742584478478841120747468709698122642027641424552305870950147990762542894331790626692842544936464306779049058041637956725256320906087900998221809189653424694433155986310715781701231066672244931066790584009257432043506107967262457468462827769356839449100519934988699182466330063991986086475981488111172937596310618197672943950908414065049418388714343016988273115859038320198991973553014404125202529114775838244901504233194186408736923773758998795050067407515295576853764271590749825953807705157427554402479386155882012482688724054967603592520525987740155930295710138153448212476840053276448925041974940986533965703406289452181342811511182394892723453132261134523456553644320690250495283370513851265977874272498186779709402281631963893212671362535393858224352149618291176290115305272661628323472698694413386228466590360955698514361720370083403751498428793533225064084021665830445038669266634719722581106967282563011023414630481382356075457701412255968345999180881863015318192033397965480539968388708894868774890478624339532985557553246958955105728992459349165420854376241920178574956808103385569222366977297324847630513364095569797083675917304536134865874077872410826491656645052364215219972588239079093496876734500060349945887511878747034273904446193237735669539436069542554596300695751717280908562653928994620298735497455570185967344894196384301472052621318659151382329910374892866164975895066674676827928132155250485698471882984059127813027572701654642504906828717442618432765189652695368633868259754710575874920266977588641486626636665074893817579448615061301170855958811991592311812237177603922385580576515378003725477893266101579461571373429623636342394483783504056407336142240728489761948907785599836894446679096382236746236676258213970230478491546120478399574735536054278643872033225849191406884766784612592502644589974204522216131269582252141939933788054310069896238420328658162301485529733049989349185442994067469909959635784102524587531921386065949135133099187279292038376426991302398111422835071885297753097149691641855502958048649088065186749304965330877354923814983324192491614652845348962964316959028272059025110174536308376921090409985189861559030106639644669217429687468329743587951351732736597064540769205130205173882995419405844777719557056191830491517148033636566211032266340156411757220079669418686745100473863882058352010063229030185176886415719704851951640548996394508814563893084192402998335630993311202610735778232555407842583213279437984750721069311307354969703944355869246706671152302787650342322006941758401671453073434733512863710322593285335385033547956655477018815757743486629970592196968856594879161684945878364531213512529835831968790353784398653781109251848125690952985963461869825478015763116602567844829089978689411676778469657270717260375264119400292856824147653118796660728161100711294752893419239711434402938979379097528615541750926898386206484100273545774565015076903022925987390025289705198365970237561740066678482699105599618217569358623548949941798213123160812361198281687455672837520918293030499443309232654878883894680725833164151096983007974762190787224468496358441629274801077030051765113922938261340517512729157654471571818173712211622053814861483643440606620837778321736102444143695303102275013563322561087745529218143358924221790760344363740979918584063010010894365701009358791418554386457888168106591803418367076452671659455442189087305879758193979200457395453136583390808476688772120186998859919113768455845074736973504262542280412240253352568122020820551482639564198937243762097407078979391589835151091834366019829691569766879076143245729470503219528835063132068086082171924008924855508417208251206015804890905791727014031460457544873214120580174839788075381448011424013684223360656063864116287593782176075289699936433121210804168903339473145180022455712161298215484934807072008568464808953211339882463229443147739238626141559951421363223638590298282271527016196620360638681783356857719503006150431265737760021471312794406433013117726135745305457524127609043319773123041540084570846026022158127182778342510415334934871510764927321731799671679221218867832339164046508063661131926545930875532312513231140867461375249996284688657488991150534139781344778095715275563935631278048532790314823013632364638057933995464124185132351710365955686441528781945088023162969043929910918541032791902164571978639124234315979615496394289088603434498056252471430944324825160408390782332918287909979415852955454282412697892559512438942693042217034928832868708112247689155619171182090037418290462142840518674072649391535645573516028187948224825889186744683305619744601289968930455158982947397939097486525774160735478755516195257275436742935521363963206164612347904300153688358658066563669293553654445781351698189045766060166585638216555556130162218137616073672824648243625528155989073389966781471629351759695621322808386138867877705581587853896549842141838188395105148426730984765406771016309135243926683190046726176728530947711311210823649951642321258140401480190560549174643639710993527043280050485644879139330833279874150026302288295600526522859172096594535181654001215108628752565909643355604694702934144299530429687977872033215837313058441437400908969485012195501401355915868536991509167740112586081493410738297997771611361511506868899873639253387912508980757398764323370821463756581128613439302964720936760442047037086620906601029403193199302636093544810238374763537775248474529674892678493102249294677412634430336760256116384421940496874107165667413280740485558882715272701759950668807761898111793014441108320110235778945540317288195589910643378272623551422877985360831636088324275478250368576757855687080146876956609394571198965774558372821417516100087392714667510116071601163651380265918581300031859307908616227413418952498846859630209641577539694606398986715168321172707984275226384312791161653092683541247220074785449119914712633023596924545754611273940906423870228088136102717150601340972967620109767860564261631120782265067725571292495554799385193405776419160400438013443018671207805708913317910105932066767047867205449516476339234209603730634966018929673313618762072798527553148899758543678635594942748827113175456371479451052384646807939818940089434722434074447138855064053504950502354838033722691599725354503972850388879786520622035076527991249914666644870153621203437743732395436300129500160319385646182574363076114459451750389479762871260070784686946845476285541042286500317520172253148885753256264389711799990521200423818291913516817745431050659261986959016263683396843851519939343456352171289489735246683122530851707384329561480079072148887758623685931937327984660619298011371355486755680869843895056285830941312891801472251251083145490824012727232594478991033690888380249930768078596187268971882569521598079782870191549152423426893428755745747469977410284769251773093244438786048006491477188645635755325478248814952751658169505853330286080118320612936374806664308892958115222238791133668236648843384540929334782488159239107773734483025409464627378875671700127743200551102405965835104570936073890822605845640794920557919693056313322319655924672913529729048548294244902954797756184472851421613199675492925598519318949010729292356944912114844226078708309942462973358387908708323179349154552456790231529221472065938150294939149169458757899824582094311323090702650360115029907432959032036252029220002501934403677525442593326256995529370665348131540101806252063304361923071611528657291266071589776204934945321954325155422258783461137445164550835222826932012077251118148101011158164221834852759555586731669936712664371129078029488457506531393129152756256562468825782784594905407399322327826924477796957766166852896894786906786263422455796060736132917565303950780481856582284588579445779379895261161442423448035860627634682259084327762922619864191164946316841300059843843230850846004011718897275712577250802221636029317376722272912382097456223847276505335756466685402735684055607336330582470519777739133007580556486720455111396664147792711578862351878299133387845565266320802050902184977064528315835678326050538399428590925270240737199911411124513879684362237203596618724555568103957664301298848520055950311060648778871698928449585589815070390853738433101350139527756218355916977274939200493222711089288973464616896440833944964127896993843051152260367284831959593494160745255866912692984161799067967120606614085272454507793257635330061869114453064915675783506092135499972626120957133471028527535373078667360444837065949717657126524488740608930381386053363762371112679443459154669702918287334400829846883686552585818312455501051259137578965579480868348111249899740766284895439054773634975483078119921024419698250648829105923352866841451090805087278062011627258355743786804626105044063595744835616731296604200886009582077788055064003113031694003088463922003275292504557002600868829493598297706531394453123051349909714248939296144660366882585237290407361954900787686304792608854537261265368948098156419200468397375295311649391451181226903542077676462774546241270615841938880719232978517732037686332421393745928095269112052797174519479514721998846909831764440077845799257369472351791110980718779804275212893865818628901329118431424713758255776954933402969786013759925388945992607928914276802086176512739796555021078482994775791282445586912144170713173644063811191158452938928073754818606702805524674350486372054605958569663107603089687507516094805617231023166199620278432572621954976464911732620988400210945217457925652815954887849277579428436415323974745850561933631349639787192076436946970654019500768594178540580848887888465701038331950370089255222441435535869401351075019842998798247075027689248442177880221566557594583362836844052999087531484488642288354595363660868141780255277898457085380877247269181736206251218115502654139915943921972052832229463398023956503031760146999366286051736680260962715604575182958644065206070960945841389502267998980429322353642943701064130416959665728915362751579514258597340372149467461704858158100367260086204725186305998277321608010794672498281982636889062219849758053308456601197000811602874412890456170617934220015460743478812677445926922738615229759913878630896045458446926644875266493348454488613351479750550001561513132202631421988074809080515038366864569286507799412394502781059393157520859180506947681112691325370169030753772696160155489457756717062989090339713594780451475551510973558172646160924376048625883517979476327679265055271934536355174077452692094513438014081018395695970369229010402543648497957989467334818004715402671341107822768735016568485140659403968826182350910861020377873723027670987967756619492774921815404383089728763783135115748444948894090993441091841580932236598963010340602611368383796713928020627284723727273338318834140512262107658067113783535622320341699310976030320819794019370213702332891247379599412594977971387915122681072001074058609381597325968131343158359118830603283032973353907860080007799569347054402013238381733301676436097403231256159945010412286679359726584278920015543185726301066708567410773174327958414622310371552798998285116455964066868764181202361972732261143237443778227929159593203944555918259785470621142086027001930992422571905520105396216486936261415056172716973072251946328227467557887594067714330343890048587773812646276128711421565897964857222796295406148065138082690858712641136932792900232185490967329924632365911857041366112318947424663134523621683064317219439003213918458859108434395053129097444551850875938772975663965804417361086086269110834434820715768899269890173045048819810257181269817938829300048684292125293535465295049622710594462698387708984463254682067349829890735089526624981522446080664354068273227011904544867277991700455295230072382418504722840582373682534624826034537715997393026727873066840703072040955128603814542221324318653703035481810805507903231211976057279793760838993185413898976511576640239507650343615272480584153551748977854653821983063867225739287541319098263923861145956956194528113896074849433748401693683133118586841601330551478485137667380277718901415256484265976992623531255116715682336058140534719537975069846219510757273729560025201570455920551169423020277630576966460999834747079516382249954609735733712668343760303482559628831664522210213457157854499134915155584603883663713671607218135897194092579002702998364258445557183797235734019399140606723694209824282187322654531126949346227328266419944140000056665813545209027865722767345144850031284157945207569912153311171942707156751655623487766515180000611759629085093403207734402929377216813467971774602568350915282215693697824187777535585149506083090367165236386572303374898440086060401902247332852409753736442369875514577083367759202787952685448243676973080463556065658740975138827674358165377172637486059910241003333566116059383209210358190802404137871380393933622001091791652176078960440027806548355199018967107457565236128294472077944997277676012607258929004545531377644165293597805805563655141804308066664052439240684311244623701765200531823924598199983288027699915537876466164746605380829361216274539792932485423770238430651377878623539270776039944596455903983000468756831390358809741361293691469226577978552568943432084985149848151272777185799707876424794993569230479335492751283002441994850534352745839058746160860296060683826709698504428289156712929272483478482859854456720281566722707614431763439136741258891195450674797239145046476712477342625119352281770759951662411092188901013639256692301230604391880724109199973633748771787318269124181239266714030692105666664726820295128887234139527251844423529787824539164007964651939477316159106863453404056928222566660280168252782388408825390957272766771037474122769510801234143302784972355686763608707912042862117047232014612681078011560352823419323026178756116788251017928958279796102505771613513199920063967075197094041272407618782725231136880493246721878771398579133109986938248597906918981366958624895681422590186903566847057586907957456727258953257698919800480927312163676214691207515045083669072493569122537242485574825695416738803459839012420316649745372567935027274499405374294314597290059958567130668145560788484934518269178785589257825612920362077108290069374811932541364639240012856022155090848021137168354424758641964668228191059838796581052769556893252944756536509600302198801389979534559159784755491982593721700179322255811745301459151953740103032486932280266904527290384816793137346167098683175035897735918855478589474995128272936358742879323618837890435559098594879960344278995954909952926032671757162660695294724223396471325785267281942878743634261911935911201285959740034976550505621224674083413559689580521973842258070682378900046792678385265612930084482969635125129717426060810046320686995501727901476535200060408901811264639636051049084524872411573707935067049358287821911261376982243571925647143004399437706725584149171395006698133183331971451506071587916419354930084649685634119618188552821609187808642531830876877100858621944961009650247574658984546702498648299678872984344186057615780630397466176535448513518160208977770685667841695639049134114209397735421570491197103326078963106033373496419749368609772587416498838039147437405756781891293708935310583233353193996354767747658788201097282625072851722374262462976488118226448195490227725353081019476840722786962530682347842989160269712830462078514407893325947303375001428799965090164802034427352056336300248629423253592645157458956007942533665430819521968432704062531917753507819110246543360831008751112200093090581411494313239495047352767657853174300454937020706371724850901785717248720772033035750395744769955908787426697894096031856726275489021425947934858756045403254146386204195117437230555443772500699622303290997480812639098126253205074220010790778405174654943188189739422781005731600832470750076412609702114143298100277049011545730327753704506530220145685113322636347560497561756185729398796323667699252246603225257500528133259899293616715074027356186645764540057038555456621599608734590899017863395357014814540243995212246031620238874023993897982924308267890802759609878926390273889752389643119320273156863534312740628607209038924440033406479244516763151215197876536597218399446048422307432822442735973577179835386962324993217423409007991583492003355269330672701147346238063223528518531945695835274196989091982985946420760145757077822642191101729162652334546927692101156513636137665395238483218808715785928154143662598426956628892871824430871051391457352109269799320361251332606520689547551195478503251405815068206648386164533718912132439723943142445146532322076820160595839207483628412921054160292931323427832477248940296272174999350039393031283777284448573478222010632400182956401627716802894503801195334030410153071588250811370575616911099080604640591437995755982561085109453810476094379005031443394470726644692559448968805483747185939247121469084226388779107770616472470274836424849050518106725518980490113266180460205256929578668190652272169283379111552634145217007049161435224185058019852134629228453259260920352626357849835364745932636176751018077181193132836687658098080235103804386953347335817147852115627159357405437163166948353795327328243860400936187390605426248364319422975258055933786040732047535830547146100579906920687967534417833239286674907190311239537233128477670410682966795396130220600770072303773537700994241890019757330890925092829251429612913719611079789446631089824225238811085255285148399445192284465069996950228750148381422295750975785769778465393364906663991673392206201942554495232162169814177150932591695547653077809085975440995337481539639182544273947697748225955739616576189575062347434799996823024536676460605392574729594584884717531373771055106720954901023803433945600257985103434618225792185686408422310928057097956504822533198650270268952745752342962356762960946379367997623229273412478799310065042720717414021719625378745479191795037774116950442785163806995611848319122531526583472512948559871186596606096572058512767472978427899892397505870217737617356387696927810353628622774567882106614767493864040752441411365690057944746776192883689868986037233820033437521538248040246265517867359566948602403863269833046029792047226168007092329633170088941730052057576268700565813794778878187930347283335017690301997318961136064381983158584523118112902087473893680110539832561526347594942033947087754014952683636814931193223388466184971708508922292887853012538267968579934583018315620340734026903131956179766716820556701004352976780109862820151316550698303549717884444454210042246635914279643490099633607210555992433557979855410156073833637552283634585031054067223343052976330667232675592712867305015980411538263039529650058636995008578395658770422360480282881296824003732244042942768728988258810446536552817992214567081595432583496221300276641647595257735064879113968279082804818420309438341151533203803326927902250721447120942845631396253810494760379144367139624416468992079104408394227037409701746848830665151457839012498195130343020970320119850573989324845821493953452994036780210890109119505719103852562115547276608020914231347044648777253474640850192892087991496472075334533726271405404432270885122257577015294529718602581963134074266600733777257810988910576814729887567424183623149028063003800781589984760307853601840514743387343268942085009677905972601023770829277415089174065089654879271838929991422728206786347847700107445827451074982716518765817288820788469833795331844660674602106973708569881295669137090595217528424260394499164646631636553866425980789349632587922835497080690305640694515818845661631953183051003951958419379340914561787017901366382075562575196739746264851008787855764208870016151275920347971205175473889330859719886940986533941818226721990168050957202253060974323579569432263832099988587957664838430127498249888925901515847378660581503722378656654196753188213768827265366591816560476844699807976172936911032523929110942854004443995265909888819566552312523591946753617763174795925436846893591690966657397134676391650091216660944417948515136378099740461357245043590825855969205749915933047265006391644734320876500888724406421823470151429045190165971978776195386849124936524170646644658954861226515508465330606059119356317958700807418801752435110131062985933829191128546859423910584094175217781519905050154765265513493806273498620617675976714617387782869130079646699909355198875670107677448587414631743244656684583366095622377811799859397861708786457230798197532154310348742024701051939063690914089456531802949795945796508617164806772302453737804728548274552565710686100999741764547229421809937326383223499044409599842063302718592943662945363672499198928024075670210395369473728466945032725441754282576109173864419954880308891798748170108641479733323573240283823229456557739983242900899301365304417669822754352506612289032034779819069082263209403854180202348206899680769422020072099775025890699219037198880429478622741296235657294988486695748465540843195743913180418292672627222525971880239722655566976511940562156299729354806001305120701279933529987619872956729588639736123326862349818139547604578785841162576421762889191123038414532525277704226323528066428191838137443868738266376958244183680028413960951593306272499381542908596501739381844419414972953628468892284726843311372318572498033263462413019799024397619844851631242152779883723838716307526881812660889178007625457143969305221284372883002011579574694874014833863363098117312344157593198673876818709199914177458801365464462716687903141429748416598936663326312238844099932328329925604666601471060718383132536158690278804625156970074257810081848836432715684616755325701992400239028156439320717361671052889509797179326418418221587982540758304479875362221069460615530509989407050114925162294087791369163439958216426089398065586591196866521534299753116416668614379513981672086050932256910428366147822415144914887356881364702545162288166910974369954642923483956052835169813583379835872816310159145410513548788360286728333373028821291427694180301024437230852099177837947896419499632519377112788599704593953904123055573807903803373447330822719993263490218318807130210800270057946463685369130256994378276529875298695126649079610876382740668291977720899973090038560211880158916359769238219186448280149332970289247806906425511061750111412387726920545256692279610189603384408799353992616049866049713717606123556395055792514389229944709749498477722856075873926580045998096994242785274566619619683246401378650683871591519148858755269076309170062363138734316748486710148692229022421185237191444034405618129598243612295420284371036015213888873686400288032953347598221922439354775393586255399316072382833010889436265642603465062071085770444946019608193647354441867519156006610565152799720682766707366245771273359946443291026915274589186120047888730991361372522517548575873214951373406254326818219069346781211529915949151807665387500670422396914981559701936001584020972262966957554725390513644864565293008225087876713476726266239409051690305297671700881495592600110838055171270113651682490276261502073588443206059721905305168106130631692704275869669817819393526599375370603310462306114551083516951976835661537210700496337579513969455398791074828312406546854108665401793838999957552096167097759519513843857390177339780098058137831896285418147299410664276185218080407884200762882023292706027266052967439129780838043392000283500689199828115170765734830975388812168378288269671020628375640040875340266739309179619722394756175521250034665367004279324360784173134660865709357597762628260526791437391268115328039667600642169001200247957183488598858158685428724229962690050351182317685613435609520304391765000476686543648887481241191478692173693052280819205777775131572249064299307475805332650268781698443118853498883265540653295503287777374799344438552543625711856736728961697490349115758185350391654067237315113209745385904321129374758446127902915626754872827970100763154980073172127301676557100537793703719495210266700699947817807053872723215443316868131353239240889628751170674944349473279417343719790174170012387982558490895636897579017906364328291455991919217834542267857540707489999741994833105992202838485978683943375509697411272527084667646247673430553860881034567728747873706946586158699387385651859841653661814468329441165691361600449660224199790872790730722884920676535651713779305628602010600904589660773322116689746774207827631247209021422766185921421720867096171788138011744175931278287574141036347516674327515964403848759980477718481109762091195433343922548168518233395230856701948239429898545964688336219339399181476365338735115224199801754700789078597332445840235215681856740447472898049686700022587823814832239509091847878001200287661124626395749534854740174352161178099351253823005262098056547207041266942327559805951982827006673143114717754159894102764332821676242579737103606427368853274591253846893855079775353128259124780620576136292563108881590255818014855870874124750759106370889151104917587348944258014830104223555706019950326293297090413773278311754889014463552963958020097642172726107079133950462768826067699716310489519678920185209856103372835888657001239924764764339362128211203191604898029990398520541392594682623184116737957355964391256022752780943382156838400482406433983895245497186267273671696834756538785670896077735087897685680318113331446384796679766346089432311984223993975752794465850342548427600852136313737460856264591321117804703888564136825089128809487389940467097629530336309085359893288730800392271030093194782847039703738525785840126661276037231666120847928218757720597349680183979797456503112103439243194534816615831519323486099934766717246229760679263748070226101620286754337154134418166975884000788924915378623081629683599333746593334475643445547107910838301092588216869729511175701036525683240687222695331306599012182508572691175287791027051077261726879019100095207334835537982574350178669492643189124992114564215076505361674510410971653234153727621787258168829710340393956475328421032169764729514590288882166597291864116190002428452828839517008481459791863186911325337853872495394792595242972156088004855590107530942351804821249509479040870505124253226974677443808306378739546147394618461714006337114996179562990700643366535507653361316076756030616524591062944437135739716423250439685569108481476343288994625607197211900910555096261020004512565190165768902330419259456619903646601616475711067465495467844451976139644149244836057892509214909196255109585471763750149591782609409232826905605062690905671576129872886596532192135632110445508408840173677002450637896722908896493048991187303504796469419305467507786546979144172126652361410387022866786877332963783267393345604754862438090537337375757502246788482284897259580286908567871578718767406609362662001051141023850352209541054213352296845605151358091760567383034481407048587245081021182732361621697256742943643627534835261063644332590630644726408783407480429018032267807389700533737733232235379721793100758266623885581883273577459113466442201504763827384996789372653279252734585763037143034039717042497297557908063087882858405244634674562755200788132739361581019746328809269235244903573598432907667542614813178141239437680956623344744622693260840889844993764860233900537858765470330814417771552637161005918079634983445454325319100747881643561360197176848139478279860358532743202874448404822560897233902382562574236163836676033080831830407692026148668278797881046343433225133852609843019816381002168201951946901179349802395433927319244954700809216449145174500523595442430170921249942648238414893593774635813886851313585216428709504936478723063296835744416525488759272789887446240310554568902683288234209007223770610751882634459579314546329549062684166300328415295034051739233400853270130943615977173017860361293952635655159976405206726573398279198646766994378017578768689847563688346726349972414921160064323831543624136338531025825948087057964998731379606032680229051899415301552614467566178763074865299824837535240181624293435711268017446809359362400133338323328711370054477745716129094475138293916402710307254762580289765618268944408363122409279274086056135215689164306126278202468783574182576064677927208786968420131194726054550422266413105020245283766904614013369864592205552356717908644116653407271944127262895521903567280492179673384510263309406479065934127876348761887764179108894993144135254304161515258338486902832696481764343927993764806307129542605409846060050858367650363998916433271701468536844188799909136214799735172326252461361759672208953492717721208461657794058537085559111349192075044523675177045868847692475360463575732702635786334003625941914275363936685641401938076353914811886502317326587626192636455047085877577018770773110916464303815675848583728562375425949109628482008543200105448224225729776117115157866694516746975514244959656900236171084167506490158852727850612513801029715112752962635453994176029917964848008112256942254594890538417302329854695388365110336940215483650686514235321451537848189382396176778308723460970907192122949879124675580825744466177059339313587053251195766716412716430831521013867879752419899587699534411345219771860739424071139090084014838469493807916831980373414941589733958539820028913504551101481097978402878964126894227029822605862435505036361219620641272779975671495471357824054191473679623929967635445108486464458743713080726056852941473449810766522862561250544363215475140215600886988624080236541173167682353482115678728513947905744253477299240256062443822204177639347917098261863915124242662240077526452298953198688949127107695154831248065059699437879223572483140005394137332709595015751228335168022507348769275191950263536671534891356836613859461703126868194948351485950768700924561036956724635345867204379754651832846342871422438720969829659980799118400034369524715478985775211340163228891365777653747514197830207347437461875403172072525735104875594349531465650803514005210981899211022385564848646640139109735514121743547802374133627294644560240873248183781081310254859780497759931624521401714824314302439365431873254185232639251998437348278828476841329343895412433112831994685660072072689675191783138874918617549802372108821532440688312937492870848066704823657092106897886440879540049115256653077172110198880761684655159844482226020996139933359800064737385835840805837408501292668593611694506233502440635024793055710890689374997343744181221281551888462358090440162737136399105511391251334809340783721882859929214124656957751440814881632168426803765547142353619608963150773081758583559006442206545613598510962603964291810177153107589570611314016930731255962822489216411177514893039861302083786337943004603960916534337908833699542269473303228022296062329567757791992643964311035755797369728918744703566087425923174804130082108561840332277460846562525318507779159094103763664220797037531642724075051151222408389768481318975875204331223626325817316536147772072790131049008660739464033533370186549978077005677356552332770443746507572693749430027497557219031542009493591556689149556261777457526022007246657707859328155446041212098113667545761638052349897496979350563840625653534539280516779850755856584226278637231768946557296297149547468236890275319353855664665464057236892246586504145770590730094425131618051812100881909369827159596545410020220797052557698972897456429679791009658817088498597942103566151748334369082635872416167999969950089660140457678563380818682874154440648435430739753559403196426228060974411114599082724778954186210506447342742727479273855640177889376993078033058083428671728781316435564465043000062551465900599448714222830061276052904478867926718903727830537522820799487378268373980874480894534503412977653873810591701004077622991646626878198566956362472152739789737171834964892798523991685713237169952245169334200584050307218323270029951563900180271091806250944813242421676989076192192075149869881706452955097616556206470645344719032872543978145550210000615896946333408921048998475172400746130786390329637737447346844010289350642848737235091335862043530416345749835980096622895192713317113651581182912721213790711065217219928049077772558885681036450804286430064775023481418515116054584949769021548794744034791817608369275764233858082180463292400924336235922159652745410428486451899161471689696767214932704181369389624155378976730988186198958501332214123513860537798824537135965187694538565641426573693418440340937843856430618984967616536582880689454778275904164427219762553092022210487409157560833149668802781538165466399310544744661160919539722745522087710184255607473409511083887295171182978639489290741715259897442416610379889530746167137202891697658646311910226601922804730625083259823583743773555221880532328240286806640930517178944446514849317680135648139674226288061940211549003129763017056305844242120548755997179257296272140453368797072689852113533844542162030918150207741833657865425723070422707323133529720935927831069341768312538460642623294360495912435909823561723178184640948421929072094555150997291408033214223427229967636675861040519328210487136764451259530897957049428432616921713226855574665915264667918939413560835776995498799977520247724003696441646200876996476779119452465076446913442688448758676699461217198120732506555250561729073892170094142357106001027642870295545375593657893729897646433990753524022723132501226559384322673322522059881956987476703857838888803901726333920300057165427133032191037168241214452484823317077150960180027941647166408789617380843152024958594746306156894831412483917712660892764252088672360813997568966484116558639536104743430361022046419675514023835063244841648653912579215703298552907058835453849424455416564428761901724645899072173104717176277531431972867512352513280504807325721043445372739248146765725390942485693608682686276548913021596510165807412853538351215634784031554072360277280071842361477017115715922989413284980943442723666319815401953300316885643529042329945044235101072742371592645266773805976093996739385606211193342674472067131779500541063566863426716037150550761786369713738287061054884052957339395610048490733439803126924716206905031159783311934092758706493919879991002289744717583507069883424678060854599119925727909121222814797964570093382051678724426387256427053949414021423809948895434172814436559008751825501867767151683482630067829002815009258019659219826491503758426710920314321245089335628046638118455789111949100511532259772395240586396803528185070135102938045325827717199094559087272217085195428466602709033567439440777117471904040845525087374412121403029603728036621121814959792293038209525321160795260754631657214781457256936305924447268788381062892858315813939599392284858117623854968012591569950861763175197508318541743187350673426700919336833936254778865715549168841982945104398704231911081406017187287326759194348085474952386907194584646982027814934307150002081413646987656571556860745341084954967689216196350791791898493935118260959437555890679775194848663774543495341269223720484803428617537852701733956918940871545059876243504196718778515839987989894045741708604622047786530301808742080096441670413035681638584498350402336185696554378185587975212435386176349135047829127426805761068438381801260301592984487810392938274343522368578696349159567288442831686548494782756722848903989540245573955034361131344805751849238803616893209250008137651519479797768967172021624887156366948839211567068774594380375862549492883318692163481288885862626039335339227759756401369450126979103135990838130262554771687474807953674182985963860039492737004445061206300388531090557923252759246603422712451756012255112767757777273903889865923195683302862444792885667787637007958038735386473971846438518655811580654372595849697451228567163485957172004978608108106924178634750552364435404648073729111955967857105820420781934466376545662309515401864555899340280940327569683120328889784784555647938939060882103251600547208812603206445539640154940913234017953287228034517170984047265246615135971888575256653255840231990074342042339893115357659432772620601322867510564578846600594571779994282827162141634212126666026290443203760967156378114796073915653769006441929949909161409728425790808449740622472213085115691587214353733904509025422869015694810324248070222398007644924077875558725046592323534646812270601322772414551025913468903037969427500121070878846684390939300347038667504251825117940511282493584507155983090600019942718452210696964494817131460394189295573173399772733654027763666938256974184289762966335916450660262088131134827723401992984594703542438719904932136590219713329658095039153389277522620276320595858596060710637857719123222168408161901463790673324631285620369117529504010362383316666832905870149630505222893803156285410289657718774755695848690396280279498987255300711618228254028735909383805732567857038563732884040111730330835766592093567660074109018458931311361039779898316295407165446673016596765338901616694617213123437685521822417346514456546042363903519639142952754788935487058719623063743642174835199079041115376990441927875917034355901198331773416588028621828686358183807658241725829071664023272862348387485104903701185458457815105396969315870840549272724838364336296429900268932761762357955123899603841722319358743810606024558756660615171005511926303890751506895979312482564538214204748627109078656516449847461739417253314426897181563033630324345112867570728014289710383208386723750149996378337461489499977907176648410711983511934343433119010036005787318906179094547826052164552802306280667200587021722697519811511024294086882074284158227911185620837414440615168289996940000291785666179065279055311443298672682258256474166235655648594100563984813191436345358504073429734717813425779437013249777920941690416891533621509648385754752762354753788845211600332717273987396018568540768846159591026770717067064129581278335016459968957765710714318377950215559264640104360346339190172409682579081765138493386859074437281658671402908196585909362129444895318599428127124739406847414043685491814266335007831232318458121812720356772416161028915980204949247178104582513530402658762909832146868283215461793006460672947727171325006289368890001311460901498914215292880106314053983462677671830944043498465775111454183732196988598821896928730672841297598947659677073530128801072853602643449167484318801119739872330561226497584209338517858007083480493452195391254850028957909000614648867063640563683815906761948920188057863246644187673882806227659799682464534063376317933459838248300090605610132630628314324907944878288328620513793593870535064291072709244938513279529418504847674162931713689575054098985316838505313958879576165942744678389974251640245545951269032649320967934587609985645257248601585067443852433762699483769180145677748188755070540881811756734023747060686928387611672955410315512280911589624160955747880285382159368976803193659395435920954767562873390809827400065786408537183160360777346303496323396447159603164649078524596287880541390375662204960917365044022265277776461142832780063484221069456290115002989550476924495607474796185331903168736076561575727842071182841101051550819708583496256102994697495415975885033354097922959302908827742168705530323108754709725239610030785128334622655290424272579822178854388431803710716769058829831433573261864443467155998073087726638688786590754278900593840068458511270106616765173172008673376322323752758920354049097041062427820676433874426717663591927163805005427630376527313203310822260212217595799582327642665401684054391936924126423516997218843877646993465157602307949915750327950498677347110963931496238825627313138057800815971023255967909708915500159270236760039180345714591801263908169998951501758697840643050584480137457901613985055981018860744792015394782488215565858431823044005309292669373259920984406534949457740559418841725685545525434961074377893843958321394071972970418312822974151185168552660936068463161191511776263221444649091923267927790093407806103240544444163924383908514546200503133712456539427452917123270814128546424985364691843394947942693235970708629964074795197587842114986786135794443036987796770197503717566540493210609940489059631400397703689782935954156020642642947338236149893636092115322362719871646664964725450026420526511609012491840395179894644411431134825399906321207483464730787472144311001454750601302711731482802418192643343439110425665856948020732914421852380559005768093665314411461593784727666051769844777418669176407990296372768939685507935277631119672157139578479807880095086869013558823994101489126201361360573078080523616407066347371252591862092231685998948845199205284975668818166729152311233860906819620728916812545629714395816798620357226857355387859668461524441329136676683898426376200388243822117349255918957918238646275414447454587028388240861945078222646010466256557758372050901304694128844396790667365766799101890461817652741791933300099201645735739381797757510681802280681240947476784414219805771210666441774206452735658420128813135718723583651524437239659058144465242487296375212581006303665843909712121016637566493333675827443170741152310651344639532577532475404444522459079364643790693133911060287614393385565020319949980905806051725209819069041530513155588712999816530268858251310337804615623288485422510096984501006172391784410702197300344670992232724421398678877988701704013578230443009919565655248550204248539840302874159812026198428274665953952689398475989685899553361265569731986063891325390729771246245941806717977183413034835921489043372627290158183903039585669302499540116236795568059045748148462672426686879087404858604071184941628092348473521193288990386720206169415280065109987771981861064442833843147431356264208950900704197124509958493325032917796352894668805268390461623725737422455251885809799478442247119035468868499773186725901423013674996875849722704896794956997214688458839761791043479128938985870805468502315657865282325942896832899486508034579559550981066459347808867422391247190290619179200218113351605464139127993863112653922947352532913851910027214828956152295150737284040028813091307369205712642610413749198001375252428312290265842248215848329201573651938022097580822139757731114047818193531427278958326001023165042479858603561077076415001119019911605354429106840598907749308121703463215149965616712305254058994845072982638188072679227438360358591481428834126623648814385527124974773169848096370822013657874373025898624946147618775371772365611670853609317484292309053512040408731994446058168449753604558430957011321599587653519162337069508556474566200739441741560187787485731552520954132820035596939330669657771139279634004209458980167660919571595529294937135634633857672115505749578202607758709489256055246170745716166087199869560633138167809219754727358545833756424685501753414745021717363762824248343930851613865610728598050349847893894102014735682967382872062216598882382982713035355793822684922538883995977079366891263583378815292299343000634820339668030514069315639181859013257255305290104861912425573926270756058611359830393637107439591434605166589343530250373671832796185860599697036281992550806839396643558193347892857367101422976849194704719238875444923938045939554074844679806565258304722271552968505313287293623836157346997421630074159885731415409264709184926334141930014852770232293150255624934075178726152722920327871321291744567907323276027786702802456422106544189720733513657533697097785279932020974608126145334885342431865613091682168386847879534868608439299299372577196728917943090655273523545772330205768427199790718433132815475375774707688844492184213168847664405250002156991555474188218165613831616425488167169324802110735277503845319371162584026372477768548253297277198376884584783683193474108023271722048848758135703016488295948075374734717732667753888348577986765008356730679314014564288389014565596418165490230990836688148693635679638611837670683074475545562336982195266552232507354651869535885300272477028214340939849488295668267373765400340372048609712875807904776917007669901088704965459170109940185187204189974213185451217232234658291936722294415575543557462179014864323770277369301759526160073802376075503171438716878809761157414627844937245108611939067891827131896090794556004112053968384788096800132977374570268826361720167247534825523902706888775890774616243510984891651019317820817744680225427074620845599419057375327765876980733428584664242443147235813007870196843735601265875763913882673768264196554945698281231906248349379108337708434000943389164639926527785790552998965206706292882445429933143123589984385200350725968940501959112526296068175505864986356413015047883206702474802922566179086695083070635798909505940893101421537287339032498196717841270047918177520916533269387706311378805011343330864564056458975151381079380171755341578064011794039335335891369588042890245292661574710820390370459934018703964652382669443177917681397911488644385173108819629539642024928227976424304210149792257245217834964697138234573582254545591579169804990907396753145055120326768302460144128542594790698797907100502565452501652264224510187198734570408215621442601763424443421027893203801780384056510767817697276555838722662937949580878475358165161058763591264992963849444632098542206554491356127500919825010513019566785671468249444229839652400032243808491159186452571305324571637260147456870418110831963617913448929710990571737793474259232167295399061576016563649151208258149255018563886849764519386792972589485080849709546091958309316988412760237565766815401359233053249152927961369698863057508656421230157322230712803838839209099188023954699653253148133871886344546349662472255434255460139536844055726028113138787360833752470021056048647925915274229511341013603247393007075308610484086528331900141503488440701479733260303916061190718811070574809531103216901933922958178349638379818072180325430331803707133106453042524336302536964116666996047995812711235827939460430594765677492804045885485104863612530739738766680842858219491602042144171435633395343767553426732327238653850966901031265768411551038145241878360236849888504702347966248970202162403489163633789367269970060132416707859015633995026331735349295658859298315953312584039731946756802869105123978533302024034301031534281500157679282752087043576471203327863040989234178825571484761282852136157141590703253105268605191980607948770357935794417343428174376209359266480268104760639265260787723315609949036230533385548260721652809408126227368235793624150482688590232493648685074797386193841255473329329499718037982358622683687997766318887352097307719613730865714938275362998877850686979197179270135239043429937130606812261574004018193196066792799502992077617039083059622876857111203906564891711029937038973449415182490092731227916117974263709230138058558040823886635304708548779710113882349333079335722852524826374922080728597251728760297351221880868690032572649900860489755830593425562099783703828254345570093217972553964423252408778969359854184072243598061606785318108105704570629401751827190557045680221296186421573231370241096898811315187816186461547380320697359566059378027006279655858154067143600907482042927006681509454259930520167639252291276353091692017823272767623531855401261647750405332434185469989741581351960585059334121968305515703681336358019544086473059723455569135731354793588160689641028934217220212405530469491439649635841308932628108544144020297944562833950554003200003826128603386574889797123716095707115119196367486607151121796608706957441291934224742748411902792703278302134365209710062079498250844185868580814440698625011893647477084003040432822692297390715305981161700450335027806539864385370042007043798645343025524973043587570645428530306795486290992437340842504299938124652987932940831375134798706075900691548513352891152973586096367930501240517308131141740017090669151851891750725342827630176961066555011830262214539688364622546823640676008034756934933736055963490167209980331684466344844468269466964096708268836602775580728063024333048463052925301242566404497031889170186419463066469270733632979223077833503826543027318498830373459883090889315241169126553272033567356969184199190630537825465652872506501535021571061458570518637253132284725944108452335884811409759890659453744182923056932758772120831353845809928963300160090535471918428829290736407886547623476479159308344576216855960525457258244970783209919264062880441368090608106291977207118030474019906686803572237772790201301450988864975913719661725764215767920937671979750871349299179012236175565144156819336559606571479270641555190388958707081249910232750499784178369645486127883439973620996177821295982002117232257206238552980469227059155771354616066407000570760851253119944503401244766523929064665487668368945274798689966379066341198324514482811127641758847699111328270148231181858998796504027343777411496385505643275422637851358804060598654625816926402969259337502295507947884281395453445103023595942280866861437337577788479584611056677793293370501662489912504622909597518353512572369931953529244321168610952959686766648882029271406901048754541320920725444654348508462617150220521046480768976655160135307460705046829079531258370494970440341595421564718720093530750975671331250952870403887120586471615469111043422495252099903480611285032051090503385866995726711896022990416484402362854009278551827478033489021247688797897773342043470243151875675334236101131052209975340415473292781129417009833655053195453169644034981786433507442874792795093605314832480743445149191007292157478693786162364731157234716380552924899370171080847246649292109980779729399272891506774072716867300469742686101431229412124350849168670683205344396263455016676441635987200164610411130629161288132426162938663999666683301130282076683307573830959906212066241797712733724719528344019064970713262123838778510636254315670263627599864374331297171117548031383437749647013406715887812537833870359874099833653445746247941627712619099920598354900451336799981069836255633559314593922685521385489531384784534074304530285256080132240918770556788961483823486654160511330328294396814805919046620427691338340078696731163097204822940906901742162841444427165032947140868737107223729776925451997267524020232376244774447370354174402886761012805155792883976521163012615566883722943299250681299866544119120321235355671729297931509287298146327704433879124625137736392795502863393829393786447965904625078174694387112712133733121657497738040077466592972064546832898643834370749424274478507862012787045970328605772532603380016751855164534448920842617126053368610028270300823988559516461746639393174892686053300468058704701556409564007742148694522034265604982286357839768352512343278828727822602109727579972127705880403991583723054610706913559152874478940717294559181025722991358746057640359955213143302880989785300803041714294976776116009067417213134344153196147038937381855181813454815537180981521181518279449155757202892041393916464952234585861621769598715760367522570738405638974694948252482195790567507145239500316262195115882638911488606696664987262355687527852784561615935748679603138669886645362781921902568912773343623334562106244512251563466389047511335447781354211729417644577560101634111051235638423781507501223144683012356376259341878425967740513674636227500814116376919260988064995226154214687920486237826214311050510592710112253749979487281500017625560585283770404124733745296163338499915129841905109576061325743639572392901028210467047214291809529521766459601231216975812606435220119376597366872896085571135299907288594648880904038647672169758329562341672922922788347716090638388362599535043581210727036534696317463953738497697081526885639630314584061575315667137033993790885296080669184196380400956354207282038422792159520040888476492953133370202944420894630148187262721905657749371003567421989256928779176959144440455572794563465100432345355057578862953749444705019642937775738244784629431857869924117957376066995484421528824922985273635800973717992375032953515415692578184584529663025980198014441960064162411912874904046598724339672466561788887418160958562412972719210040041809220597470815147323092899513280222979920979402277540172577811877279021051544192741910648351277600222351328696436772762187998797386713245942872553277679360149488051092087486560376669210855962201069019696718096218719483399330510134405960854462307863942962431165609198557069100521843149675762190570714942947343322987160785726894600491961670428016472530020294825089825152246817775268205648502557723881777051427769790459397894365765043177160171166162165273023956938190634974555014083352148678563518624323225560213533042729707830269246917187741801705337339503965241702242591653714189537607164064742170410299200899796956794227560869306814510021438019048775779994515445095399380022077435753054578058770991455055868914280710254441241031462833443548696909650830243452820109042196387874285240129269315526327587530355773276268712720137194107647825510003825745349345029613171192263846215869728720240630697410649890741243671914915939868218997205814684763142390409869860406395065522911504493260703958936986153917220874011940681066430138178865860429005425307072679371459767481161748156756908654084128175494758963933113218176378967980454354508179967833867137845066564773788834422884244565754606096923368020323047929073049145578108787777483115186274234577444653871200851564030465595827073109811389121239147197838438608817175199643188328247883483599023732970991012857307443313087976416439562019197679795794110817829251371349795491498810340004400393274087633283086321825584788511286734605430999298702715130144397224268042452032323316781368514146143909735056308334396871911023205102719297315780008430777560068309660201763010707621779177758222502665102997629390082614929144678267685575064140242773575773651113715110061147650647593307532309505404341578477561541882497156563121511156099095172751608593134416455641865325794046881821921407391483349163668537195315279926903340638023600279072541303129597277054293520832102231838431594596251984578046550876359484486719349391818014716991099496994179590005606299201782894266669314704607045927443818942027792111302915283739364331632586969730571666105637897311300213683896544231607127119875954832619214334905441932109889706806114576168222641356433857788789282037368119764858979211607927570203504004862541127077795300935556826889893934726821235793501280091185176732596630633180850111387161138401182552695723598844533855875588538483773168871767889586295915891114066307066686820472294741022668022699454809609870344144330890897983251730336943875077697080656232002744898617976646275688602221519360826065455394861622753649316830029520093542500525217148444567128174237855680976933947672980590550742236842816494645592981600979094460878563248649360611709649610357349686259736486586991089115017413403812104959507919952664928679287827712274200267206295026698168669329316107287466666516358228560823782032978015541821502146472102793941875978163704082319530310098434741985562166369438552015331829504817619463320120797520316768199300294554068859070624643376243025796078474848968614405898182494488285897257980746452764181184122228987762930293299733878804514780318140681195004852699900477261378205371195583250299137818251380881299563897906706513068256575218108640456434561362897767839324520423144451180497194617826792065856397186644518282994779766995499623175505022605423667434088774052113589224274248305186323258884833811543101118379817879559443159537666116460051670668662102653835441979300111622605395069114604049899795012006838939610360486942149596730934986280773001030189139511391320274401874283906126546495458849966917602120292155598194987379113146376795125650227343866177364306426294358304727364932859423108644595349075659581011798448439172712581262055717572663895013749698255826068943706677110875179335622023266895539161241625049435080283883573809162394865947320217622450218010352389645428560280763788897337999294217046707291648867315706106295684623265882048506466103977324331875945408856869652533321567181499789240405598931952617344963079164841963029404778253973878859211497955765956528804460748195624040320971883594750302443502006596665344702757691507367430279343119964944192336888626707208459306433055563291085610488036028840733686398447561855438914962436094014112400058286474675394090023231945858988898538503274743557999566283885722499156978632475779247366489363071769732683518834533421681157849015349944595600305185152273639036263448959363974093266823099815048639285639987080091776269119637012028572505533717183582714748801066308560684448057119821204210626318875245771824120663972815110937655143859957001790320893253661597612072097298571414622816366729704638576959087646866190606991158400278868800782979293816662053964619968443520481266281976014109999196379951105268990169025969516469556818987444735396322560758041419428501204625947112685679971333005814295409596538604086301895837409013618415971048721680129895397553071034115175798847790775252990653753806233751308611500161808847984452863748403842746812633596041979806666352675055993242632409680404385273459328445668119680924283244884415906738165647693359224369272916894231036715055159579416141925521058015105662980051388437245280448359006668751782914771343712066450696884874072181687928229922008784855510647447346205746036102414045841187662891688684008171122251630193738730737358060238677595831960849276835452713832690054262228438573096229058283563030924767536958956744171763225807170914164500724143702082847933179159082697588904445373650493311771648509732180699319438838855496402502387244932015082604844276291586672649400915527530721288393988575209170371080111082597166340519122285676941325799731785473968969693211536995395720562017677244564994616275659387083116663705121368201573773867142923990283983897195924054949481401740081168216853489184670081351308563837071412034327034606669162210734168022340159650415681413889349560148270530217799570104343564170953857155836528232493014720908413769775042980901956838282982485144047857384480595635839400499079498981655106202604124479551739920993136863308712724815909803763991449861192669039140442614586685299935002896434234548608872326161512918080556678599603052439721470284997108426210936286538459704446834533952589345303368714933750875177086537616868519377814708769105857796323229658030912663103627551601884794041560414092773497631893130948635096123555770021865155263041792217485134475023908141792699300240178517751196976358359070736195728723474280714441940187849513084328288079945370280318015923347431971783742834064274016483558905469431704838389477633463740963480384911147525937805973122092303722531305016605690436382914653444558784872754872127012726745070813471138851963670820015780137012631695104286284788785576638826513164420419066967997244837820254607896554984728852292238494455498122580562192430973159791161691787540416398286650232205667971221219211602269115742246771322976298220784792935871830786534294114724737223687465460728877803923475636879697518804603880707881175592613957508563292245086973464919379602388727820895282069366961126156689455684670670007669027844667655279107110885589301333671309607840724697790213423444504842772363454765996809197223017851409571668096666655066113389150004189053388547510941988183415791367469803473620809147327998455017210580585375258409070590855623849908466448712978651142603172405490853458142186670616314494448017749624361447146933325684043314413964774863222858469679060262746704782281903091295421707271941852567542250270359905781638753220900798021093416347867127938706856126719645985268137123526011656087868994525841832069006027294424784755058945596564349592948368777763503087808995675928932718469589456199962971753695697264410767920431303190655625931715471704222212989590674110355610044001880550959695648393890372721789786706411429670655114613354595900782497449466764216920713154369373472652652026392796939332863453673597050048529226377822505805054699119719489204224081639070638593407594306061770905555783605098525996731023638658029851250983346233685865560284485550957590941974490782591323183063467075562649884391544357643886240775920207091390565468191492015542862709472117409587014330147727172232654986626504535763127237530202280195618211568237258943569965719133740786571048790784151854866288287782867578041006387658336498692106353590382518793700711589640033537292801507414984531006425679442194780941989103067994811461310138302173757995989822178261984042805353765965138971194500166948421809774416436718835105927133105990814566249816409011319045584671512369368672184177049877072949537191648316596078985640119389585976375146367063903733454736056289560850409082439840565347836628596006554998893667580784050137719422861861457829836750377912411130509004738001524386720644901021824640127657365943789297401541841547011962385646990936418183656813136550198981771049888429131262036067642821230649634433110156183382161798298751945047097975091228169332987559301325722424768640363139000242227237634375194484486588871503142749831459164009880754672979956963007858465841977817592222658212354786278644200271991884295877007855214400315630747971420733305952733534795074515552211970940505886432690139890575694037307528444792006338366264938939172333498575063639406912074990609976629233306029161342856589822160297533859177764619326183334561680712711047190311191671091499534261590663500827170090215300503843733678675373182198003930624141035589934767933349312651953566906939202089814419067162506899584330756840676841812080700751235714608033632614739257170726248307901042640090270457246411220236417674471625376763299086411979288791119392355347850032992114956656113761714066374535019667807630177051120686075192522221557716792486963687261353186717354333868258504947239676259821489779434894575630323859173668508290427636063474150915954470185063250830660122930323218474320200846906016978612503241051995339498763019457054744152713554086562301737536938820605789662130574892847267571600316220994251484481227625192801793111990912761891766793399446609525886547484972463026357053822594270681966860773784864936858016053741576165683002502177301027906908682681144074054881858297919090953341079471453356934489249800237323959316231540104371931153020401993398326651459732352380788308853826562819173871859094252335490131054666606173136288037778983948958366223903089213992999976833255769982069254375511690804973854740490295736933137617261707266277223252131925283739535232007329317001433059477972374091894863073218055585740180412816965154102826309459507570350367499603259986169522326208198256013334707449032717048104942689993966305149923616023256824813073254752191713264154175841876813402985485561640982672972150749905897542034449875178853170239071778433317003313684761129593823864984432016919336898170469980183884913406783114124086319818404537214628409676246962684332710968476034522890557839752945058432982369878326156575847547857256198556479971523642769186124306117490731394629206279855537357198151659875800288012698032350834645329740908064123056410357560841015994984214973176970313510121352809630428328497660984576671385015777414694432605176016828545954311282668914165570453010399204533502664237066913633614944155692579259136373589290084691601243697663850518127387166893639287205406062921945337100856526691768195050567382385387723106754060195987498629495515775370185552009862107816929279929033432312056072883854299768496568567421296202778777838220569055110339727746912010998001039345033091400305937434576310618925972551929468881998037302013277600282754923229597588962308565794929234526482320311808822004022153913117680874584255882443493985022228280711479157566120753878418373106920544804122777988488982604636970331415416403440444615529885249718014028882856496043480066635885271439077914349702908946671044970898383621252482698091702796317325785167904143848649833574908730406828484513714855266556107415120551400851665336090209209499857619177278847652313301663531911749829293961331375089494354764859498352768092200933142508621820716289967932033542684373548733515042157430600739707174625852065579785878786092150674660539505823898810535194953700130949340744848958389865086906368094896602248480589973197168593937073865396077579157132216034466703168180898283777868052137709468367793458001933129113498221056400862830044774075533867668682072234458063867719464376473855618095839117990029792172429121905591459701091623376006228529046022932178765584007585816533026852486771211689336676522699582063398009171578890685347971161712665871357231697734154224968445874203828964577480206834126341529854324772102630253859541473040651710429640323483175309251241809061570356956051690238334215064582379019411659335288145081446727144234913415515977750870642761745573449951224216305744588621966571488277143538159591162998406236095780031394376149650976484891775382248329297509955837687938172841041303965777530755090255616515240700810382389665702481512524447778062504071685602534487662439630621241258300237206879935725128190324939249123165341151101821146140490269383132531710305489269966843689178136901146675300372371034128761051528616147339634079238391867139180303939134001211613537516458937835100982716756994270686743309382756382291992248873178119305950294254889133590249029546118759017068443662743105158959587621827514026484608702201566779343618545730110189439936957599606067405319353929017741031509137700694425521522331244084281888429881597655885375707544860898985915769646830845405646413067610491477033239456156980177743725156092954775200545795889689515439742068132296307286214620342049720248230797536533261349786509661604696526788455591247253380633704027635956460422347483726421122077680564512690353953465182012943183093978810154823455793285790524224755882652396884058671368698237933624991429678807933780913641369015948726788562677439772691462610452705745191886575752912839125066041158355886135664052625860759362831047352085865148344384310312205200384157578205773002621726988674335217153533159026743543703677211678724785387155988650836034313491413363113678971166829192222209153787436793543978342686955038450757271264749776077681394812845643051231222248622777767586276558124528802481024318326381250307138411507935747579562316580125626372700814929956869259901779600761697785997294531684499828749409981071769372304051659739340557346945001058172346975037318594037391230599308618122679427378142338287139882435368353948043810788565231689210984741343322409664648066817574986541509561362877556413299377795416116375056775655833201316527757240392779052862604694380069444251941771680831125124948148201830090166335098095034358616737429581224053280074371401556109245513207421922860530139444421774778121789563561919927748480488930806446661485056167693990613031538548197905244670038519206188121136688126861615207951387274542873960118430652703349776880316505690147330194774925640936036086674965955816289113323780370583714655506242717333741559091221622432408446453975284072276442261699769620958832841479401102203730751744089118902389336867996816469281202146419298889752920589503778621749543950370409648179971646561501806153861870979523049160758967893504693699883048033136068592172497202016045996978229348331819537651480553482104839374352350920218937317323562014797738787104634364603614757879818443695037137729135284861282283875927037035224706483477622107454258032138731087394476198272041118105422918253760581986486105127897691926773181647540061474104148646279340679180539083135669174671315210458840506198886627918516352602093485990321459558383100488302527369526369152948274616848025915824822898760002895053199095061985616526994893734522148189349951630674726902461781587193716851378188685414666558765432232458010676363178579743885309853877776473125086144314379324296776985954141872054856000537153276896541105922549751238413362538949071837890959219768786810456840148189820015963827504957965339072868065601336582939252079776675500678521709886879737370309574442386242285763380410124548838928504877318056074043487791722376378706145521219487594202656119815227621982831528512029619417844430170821602952591709162613537532381453240309788433230937283566594120733154676847953714509072370628449630852531488678706732111317309876840969835511989589746764457591846612052965069114562656165657892526924959246411732782504304564404375099688095868007375460932600409333768067422304563202684292256823293487724126578508689986619866109036080543586692806586228233463334795451459772136728280128948469220660986998878923858221317755011446464472742039176884618159695473565306958798448367743931478608575094701171769568580058838543675350694832828380809446513838088291536634847638059179041337122125021828759239740149412797170947565406922994475805708029392131383960349019408971846791079506184449220952243771340265810226928336446282477466400810436136597256018124463446006071895622717444879783205627252898356241065455066688410223377220936115167377453950947986978392761452926462592618285817920761263828785117128156692638774320005836001963860778772926475233316501361866969407630425880841690256052882863026740988882542255636676824762021616192014600357356609163520673241899910897013790459391087487253431207034681548882812018749528431662067767168228523021043950259025457178612854598511354556686027999760829070645750492899257026859365079288134386869854874147736713072355547202470448669962099039710508272451691799514602121781575627265184590663184349462084264782959513146340287110674608372510194080731501437552742143769549914194160697909536016012646389148488264625105645568436863718708759743934678643248210810132783394010437677441160408000902078456246975616121660153441770614497265365006583818222493826280759287125475692374660497963685378595038742781092744242607050021909666721415979809889547308167535430239290328200923910954032473434402662672631489342331884310800203806704374611229223546089013579462549023998875760421724362170471547535027239965965251249462119664397440140449643596840255348577404468799654018247991720796391320566237316921945730686195719469032321564441126076430383655195639018017224606594606145385023045277782012547975149068440893902222500696153547604773192803764830555441664693759368656389485248250918761621731305771220921985091058675404489825700177961190813308765312726330868141215316594068114652134505387508613120664699176654869039971708940464599150359030502868749407336871108775142340984748709359854769366210420421329077917726637737030823966522486596951474975968917941744129149800937086229261102167195026224336577005016881322319886780932114072383956021320329131165732999011890687272459414752076148303857836799011055180056973628194258499510247094150315838404224858906746827797667514985511259981308238369552661403772568605420367432431071649655641229652076296463005191031368198269370005466604647728818512753356191798665924209971592128224552103306970689584753798486216732020984906590161508439585079184893203625754726746214622689773344403961360267090744271512776681377786871506922450105119669279428136039960718028627444656487441136355094357784656248996429118646888857690071637377309644783295094898953237242329871916571071659991225472384438472054742686206646809955753110484917222042732835670403522792699203371235791319471570828572234896184591934332576404383439715697278598553336093683189823544852878355951502009933604062687496195010412740635514960574685924702387318641148309977396205185150617449867299195483544383457831430577175676504967279820603500158221033645356924323814408448234741971004986102326104514577243279475774398291002943636174286031170757753975418898944450769443707749536934550493144884752030358710226551667971008296995394946504191201557299611757475907282938369374497011266531510265219447353010734348477927875909117857086293427721693574544994876347781926765877468947425069012160456599933146348453759782086352183648172008730741977378712507781064287435548543003601459283806724360884662637991381374500748398866407482403358642138362935198370251584354171723760200545489179950102376087338430535853654517086155094169714722376808702971108742897818079668492547670761688294267507370893598023808142207522685898943941541841937327451384011158265955217143472488096562006648862897781674581071769158771295046160561992072085126601321338636481741978783407439793387522347164605465279577043080350481923108721758023315833578120293650544750248893016214270222104511073773114395122966934283597606809399622050925059334774915470170737816197673379943031106619030628291748684572818935323429238503795112140350977895771404081954483963905036844957848793361127355159337091211566572353762738906521501228160305952640015812821094740131667848053119567881685158561098287219550530225891575660133084022380844270094133740495406611952069363027106309204792409929270915323891507061771112560575640650626921573873512888282415639811615645414604631421178261953549397484237583373975338672909973005960903788294237904635396805995822068913267705476712649434982726428909047099091582006905322029670422489785059643874174315926273266181195811231158463789415112297552523711685424455394468355628709944650170597968920137017576827515095760072696986146340064060811738186678159785619319491367728987438121484199494741719697332305272838327360826190277385852833219406554121468109169037577609879220560166916080328929990471480596384823537391223536570373038480779808271642744868719764376798007143843711000688497680463206718900472115180026635463623219466142567481734969066538826501123017874225296032586610421903829827463988425195990281531015771098245503715495770045574438067237892432232443421507366946241257867431900895959084197912876655336902846138425676219731688600790255398337978244738773894027084297630756507529045746655296363852732978655734182342543555086765724579835695276658989655595133024830026799855381033343339233356794538657183724661056113845786718950812705684154903698138792287147523589434675246390748010704409813467338566361829610710744214037247357241176022332317513863269169981492511497686420286117134369603150340815775787874500928735888234943313775881939122651054992256817982753806290786168519796545759841117660215002339191416665238305717281499751602420979851234403925655737828190530517141499876446649959883211813440698377635344011384751130542653374888659042664540825234726153164023328054764418600698464447265372907741067203256447844726362841679754881908289603323021081508443106285852559824501076650572578714253633357521470979500203315183508890062028605775589411035653560197897458643296438200238805999336190804011858382680350622440337443612291294105578518170660914136604533637234553400561897033452432880234294021047788786793374100334772037364422018641819099408797376809897386634556817044458120495678694626159011972892730733477024887014590052765972183514106108347420127019635486241555735448211378349716141273937978465901940846023818217388750344149201804753350900278517964439220125869754657647201567644553668243151153841716291131502683210970307566305113800027394449050032685760097747264724517674776397541910859602650097601431262456185929967971532034697445422882941048863648024220111597573140010541038516312143025575830999402255712304000702748002234617010505853130943344604403690195971601796800935907286797047519597110207838737579986840578833982500288211209119411348144905328104196016843042874331660521440231808450805784346508721067622833206118109052863205654080787716506468952381430690304975319627647411219764244236889613858618131129422542815976249131255682661298215970095665985787485003584404979394949264842090195747309010291023030276481327299022315201381424643997026076246164524262706727094860821859927709359290264570178117114346263320997647780080655892940659036702011205187512362233820218034343469178682741558549165700024513416407554274314715764794060997160697897480105092828772757414073424100609321331992545767544380386772514325208845905344490461016608180748808196204778756215335520775390405619759274989961330975432713904947993743519100760028659835136692811230522524775781632350795037164200726352755450678966409219406730501365776131591321926501439036742329247736918163711286260084080312212206764090311424710551382353751807975122707029081769150962120750150638125229358803342874782468042559043521679905750018408065010218275335534865888682717426700991644368921541864283669968125438366255480330166498875720076710318157926609505124195846198146091120544255541140832203947493041220826751954607604854185698839617847128853796630748777316290572447182030779676874399295718335818888030450887204240865344140092148632151275808235031026139297149801108442453090522356135901473091877020950185437956101073112929535168504734731193008207553539838149890493354167855871701313415910387537391612766532372809934287874510414041098199186701241918405295092643464463440632900683638098700006631340241327155090664285284425543117329832546769646969903963801449952225203810961524012048398858082307448882943702993341525003228924281730821356393199120593048739265173252795043688383160644884091067655510160592335238864587576064125869504736456505725718715200799504015835481100823219136804511254400671645766848594228556648377671925308495236086260180855023860140563792257066091973514689838617732018442341197058054692191976273649421712498416463881271697352752954271311125781530472086304183706101851390766447663702346206384472383816790002636225290642621314640275378451412238633221181523435915556968062426679301770993144708491252831093141843719537229480326860213449341757859166975917428490289624772202843778798936016188067313992691850125432226308192049415058294852349899285917295200963621014162253407764593178013717291969760913751212098812663422784023090290175789435531738120998128448853050576332731726186725102820090944955369350647260912062983648171447809625744374892208311631824910895135628294689011946445060370812079414861127491358719138112234711891696830551739130889086153712164946604043276800350316411058041038283847170733395021910306224541642814262967830461244466971726333971961126914893806209137781846909412838501014270282770069445103199745266030214126857545331424750590656361515009513041804618458300025838325223062125643173174510909092817176094551453729613792104868658013447131991559282146289795643190843392156306693404325705193681400819391894532727462770068449964518792649102506292248341223121294078222382936345035551069700732480882657056256124522819098241323445467547192070581500703792065635594540127360652411116163198876416509331667021334033498355061317368735411236542121113595551170805534785974720318354243025330270103639490062193455468799041476201524881733818583975573833002841958715124274110651100097850744872862881912335609793887280985937944032569925865005885799576341772281989030610814873044638602838728245626863602172869340200193044945573123178372948184106103672819968466698013842184738929084040071361889122438367518087439954860016200069011406561990552708484813742769856238573253572722163890357395227268099802358130406328403048257962472825069328488667221285457681862244671860547521294752731962366248563208814402136089417900001036811972355172604032308604855036515716666415497434085263663398541052840631278631620588232363289386113235046377134241287310448937814359696553862051186752531860647470436385060302510623992890870878760472504995913954812023419335847846915503893781084906829952733911233297942957539870973896561018316569360696258692344991528535668897226445899370375847457345193625218335856521662441040034394454508494292555239962816441186057514426106010408915278411681067219462200457860583972530960567305420702378598453065412591066904144703763820907946616863822013287536199885970406744015371263363450731436387832778389595437097724389096272793125272270650621931750223754119639212438468102967791638619822543456629015682362545194405598192711841564508468233673245099687308079539469215810832311032793403788738331309166962854758281828207758634796763995763378384083262305584715007080583720239399003488142785645474591317242724360636192374009348470847542015295221254528966645394424105328190351174317785565054038857004612161273783470243260970772912495811641954950940030541753429236254611626061271013729274358919876385610272288938387306373543386284475824839369077436415591228599346827452668546213738261245662952243854132452283530677018257109151252956779022265977682164716895231114668747663945412986331072969556255432470072155727086760583145736670336907767612864407240351990997401614578363935983965896676384536320094963214939354020234557372599695639940946442655428226957143353590582492940550607142780677365013395291039787585403937646885200308083529669393948861871202425582182268305200265586445997814099721282584528227207549807799296850514415508941442756418651461140029004908925327898477656592000978960179942476456080726976510392635111186312975874209986804218950224197973850567231187423357149876449341836777957751609252897353631138038863316709335645713619777302643128980737273831453216096107853238481048856514526834891146202594615196400192861500113465854654116382644698239857569139274582207718065663620017059307170948780737567523727087509556322293585597382757816045521699499476754106162459254431687693830256782513278200309791784374724341822486431664696531318878315533295165597292699436884088756774084360446605883438474071114706586224779581349740634957466225065584430914492644803370000515740873716853348001612335009578520034599177771849354961903796236532243473306204164400266600380915138134651308579730439792545918188590904200531020142792687491849520448828283633435728901175921398749170902087483918765088932270211265690994372879471656060007678357900316635984593160401209849712879875739188896131558319176573796667916380794045688471246827820881930588707502902906582645945379136504145377884771221340930135812207835605245626005930445316710721400235689581121668076681836705820347881746830272370241014445943956093245727004287722956040642093112367029876982669215308108476554103732570374033785151950374304551952543828739316067784516901150931048066890783438869670036354650510875073627637783253464022928830223389307009031037385590134712159526338115950333731049770223801845307499778490630495509198698809127550837881471461244726295275668035325597409279237155087243507171040303893998809142238592969240684468217050627791880319321625989571902769329942025699874489627986103588180138488274406464277562271289934752877104285154038858301474911498968246898421137156220911519820998582892358046487192519612730988440017123295131850894150529663084730817032174421981602534381759258922838569150327983146553812996270864727330029366380547811865276947619602105125770779333474833013414433469461777811092370907063540467843988729893979587189581082668002395984829693328759292299581998349389310802909639000297351828935951537144380778999730027883064236022084103673340184945618508914664516374692461131721209454231859067183301610181589175744932169094724213438528021076715787606282974513873911421072338030374647033334620230199965051517754339999889410089057471912473487066144305431921253324396466472108430224067284974308044871427454868836510571668675987096926239131408254104284284010251669514971334429318154133204584338093178611382244527268712066996082097105022682259205883502562480607666474958015492639250953978002538768047049802551419619781770002612004062543073454139527639990991089316391457018136214621586524268638476260521216932943764422729692629544411047050762372751091680334145708820421426093189081881628416433643191427892940127002699430884604229213536335473973305733465205662360818598939868802506027596051208505496188311426312055125542539959427913008392092830591456272012552209600859154560295646645917947467870993958704669519497423932537655318808518668511646375478684554872742714199038564633998519863705682340900979254268762852399961073396357348648370949740129820610665369461304554048458752764355414428663633615682435166021269578153170997044048110153584938083468242092701112261432168637468063603208901580648988287993657354734126535337854990618759520057696655321617321216816416245109574255709094444447207322160044593196660028441901556758676287623927069969732451883853615058377290462611502541047122700182098002065316121770758633329296200035750146881972699941483555892420885656765454921055073847222621329769447666626476716010885228809757366990744564975695230469921714463830676502567729406592970531153265371068169015203062818647004287338376405557337869360666272088320040572127469907369906117065628891556451278374215747639873591535593399377888378534208962422500769407868618062215478803584581961410970506026901683124252429018067733082095023728315269773462420089984207384650147411326905847475451215887299931489182285356089057675063825719891613773218236132794102408517206962244696032357499620839038660130823885689317268966423444712136882126891881033438128222809599788618472028642525538495855201510639158945848732677711052381738999726053601631824315033221998662055788417977975245244589113478262119851554150496273509953833807249903428523509855581853367283869561875861826146264786100005962761931943837987818587239243644845207726645640347154756370081387999689669265803751267571587955603393010781995926578816438899187558672786624936511734951124625089060811041633086660236493590831639153346490407763090959403121247794382421675954105881681226153486785790857267593258683214563885776326337061814565530395697301344693711408403041993311900236520167124238406020740664616038546318354678226958423479253382679409183625899322643081566468467582005513027656986856201898562675609321759605643644586525466712502209462085750647444252331982926278358534334574777528825403653716801798000528894877148842879997263905086214460168704684013547125171574174879600584392705831966126380878059253217592684790951097703765325875962199903886904856115421401461115141342760929817741548956313611205192068309399160618825246819331960930492638730923277817393787695384216965311337078922352451427178944159671479511165681450719413803372194530787443441530285833965882566856821727700182627967536808314761377842552176092250989517417792165885599949249023525037454070374207765791002253895507112976057442971923736625543812838344892787365021127390080118151125695292120513735553575741482848252048821630017926649852884337715441631391678707822528189055359893584416900862283979940062665840595285806768532239510169296299476916939349825458930283403035295824489730615826435093114621353771597835917573444662929060232890382309204469222761978154098496683146290500280053827205881913494280563101715465941300440680241672780665489974979683924368022710612687140121815538475558249366819703253612184122222337180058243814302740528875166929911843776337808017738783030641982039560982741699403147876398505447124673638391213768089167593813713480645871483671378473574292200275944133545248310880411008011488771235114531191528922907434985715945383033320508653857417992661225046051555179793021541674628150584728734703572925196007805572644188261739654153018394291565186539617060545188779585352721220398965883538108098621687747636423424150291908492471273786182099038355165589536573549744906469279900116025999752608929963671462495552053516500598094796566456225614040440253473520613099199396365934389284889523783486725946998128732106207962631500366353197751644679611154979854676395284671842963710657102809377482859888483319904513500125236578656052772209864710464764769957395733715156802899122823520182352289878220091651159330297770756515976807625648763884540163252843326693932210861476013552455997633846562211608797328824159116186495031797717769384380044901378008708267321132562222285148793029311200870698420465107774330368366977031428256224660081248705281357438367125961441282889292030633259740758517776955949260781031399795833523784819241238549159870701640442086537524668143607767899479568897934362904532882259754529884299137724796492699786011725519044103814295752287325935651713637317194236903412095216902722169719153838728653440224279881467367490607956713820537250530663305769098115508727931020231353689487369032719770232728967857609013929994416133763833770375411886747091919667923242290132433295447990547953149406112834288833286012488113196923903053174886731180010857540158215876443525544519175547417278813133754977219391026437558764000147767556774114879097884823282308839400973255052714175390834588710198459663670889550231230562582499935779112913170579543077716481471766706959569975086868170284703751849734805644808240521889491700358194408290295062918441331388322928355118219169478336684685759844814668751287071174945505308170654384500187194958447448206249240102484772498419246058069096112656984267671600661011154258357667523334481937105358640857233335563170740677596639573047427819756677335740299582751047364332217275085178763521392258672649539182910153752964708730022637499675939237763017349645545200818633191509992230131743329199983904239589289189473562345031837011867676945894102943445158976862543775814912408721761433308645539834111354336009070978187000887901623120698001428619483596059393567801710252197969434170321185258982229281564621506914283874852622802456734411428495980781771205880212570057090711275564002102559923444350125356942113645275961440503501890870498870218517868448622164338418914831100957194578611171970241780128442948791647195260840138551098485421409855722011121993944702106936247747636399288645863070944704919808426576961678232543978427280388867707573868463404940257388303393649084776486084738931577814036051437480794759569203585353837554466455494889847715142216625046567420775752635241374482623516013444926636198802106688032244992258302672575634321234905519681330364025603287980086638620202724809236871383441646233632386365850659544936919895557174168362396235529943378283141678874301605593696655684338846832970728201737919304279226954933889933495156470201112992690124878445391968115773514347425140920645666252429809446031427871158747995366959615222106834238210567195616016825587885236355716552198786087711902563882826672752026165785801748288742303749933745674013284733293933182057430571432741447518691379257271252312034367300077744243079640041038736452117686657505258551524482380772851171375433414881648285596916977788299411920883366611122039453128276735234753730630113885225881856930433554526994296208464366304038953158371613561981555189034447804230196411769271437575343109738286146299030424686983077486154425256743372074678421840583604922976262247841730430381179463608397744936463697779978071825685141547740720543987124967300427425735214770977663185589690959204576976915369989123501087486120557677108228573622702206241681030420688108810238391064698954988906715756760180211165363400561916322704385362991038741078811928975531425950861819282066715837340133729825203228411114147049813548491449427147972003053792904852383338927796548090904560192361614211647541490242153163434909472600655214952423796688640453740039121249069224897490917395975476420112681246461545492043220016191667171250947165068510449108160194510277352466359365305778626928995403422828478489430132189520108765404101598867798395152980301344732396954020474058950991109449856173102349730361945734607953244891312741817363058665788093942204449803902299768769588514308959556011964941161782829433387828204224810374834635666635840676474929142979802434304804112118797205807097436066949474087218565826054782600811604974911090765920832082060078478160998011052376251436129370807508234219835269215391712786854051829724783114378638667656343766833652266241156375259622909986790123565977761244952465779775476258961077765215746694990812237201425416803983451065723254791917965341891657299264025069503389609894615394074058260367577282218042744416750559049250463123264841472720223157702924406558721440037531171306928838826095987139952182634318105994003126293401382853393412370083862414786650896518997985382080669827290736327430548641068788428067856571046104347280386768015517529217356125175693105353848011229149893853934722050190493750757354102146850625483460633036263526441807074047996021950467920700244887782820085833726964058074075361239539817849935655288352708325460381450893003992357397298264994053667462086711914539661768750574605773522035782010515321202063700840466175084700799285556987297874423993265297213236625921789451098002608589351635855629093499189548936671054164119062925592625985251755289399029460564329482539107417061248938186079942932611453208935061940593787603984713068466687146678786062269317107228862051181415093970995032173403185513631052151322996358678262338217738555632829347175372858063003926539600299267771188863575747223450415380029501091705261249773047812346748042056891243095992341121292157469526288630140329204372384211391727618046275926138683111813243969395905637180861416143021959203497078444688799713363607249460959448917254174711654698329228774927314415287285436606994440200309275188091261924831291880393873619047365679132393279200105269410237445973091426886250605670598701576815140076561626974614629836154044778094770809440392801420501022582942882569512753531467413537426652532370857871759636718841867194002471675943983988926434400134460900769569840631480759352111074980063744476405273154920979686393255959085374789252949757814538633771520101846970933492321701780792027595591614867071596220559644253271320682997693518058891580672531022337435579854386415687913233710031405343197356053648936024574483674296378575179561469017571467070739794934990437138975935300515663034175023638670190437736235235543180597720178803839130334385078346551492441808971051062500837715311145869023125381499378553721325218983227566145342726379542273131556681659058237916695179960648069655611489805005817611349922583781178203212895434353833068569208334763026433498807893601117910172143654130295714870620051852713437588409601456852595885278318754354927678565584613916251982777168777121751348644483793913812520851699456935767712277048442785484000883409424738496123297470018838448673437132036590579488286513700133614412229793100041582534437601157677551265811751211810141929747037673865602977197554071055157031493159974187723100711390764211877409423855552951231469043241668578412751074370135547811052316633572654024021876875639319453115136840606666288420138512827387359901941684120356810106356323617625148139216736838111821851007677127208522568450922918156968576967357014328320856819594898803379132139535553912713953498415915353055545451427893049411665063046110051803049368643965921064902124672450219365037202073289566292444745385699370334772385361140408440732325942944897578823406264976020429251634128447271120623230396606228898696318237137584658497438124921045473892209009313265878310210515803712623235575510111838615917382368306496617011010148536585276346084657622060412762360718062251149603265319786415547863598641098370466577485130633085857095420607245176832390370137169843966842731494844658166723168375716491274365398211245834540413766868306338652311415999472014538089850396119025089883384772110986810365891175981255052400991211271078088392409432289802786745737662099868622045150833591579911211804775335117503840188465450081872053956077425692943535081152499003897880800908485589546465664840890687471197322871290157134761571236234484460163733274689559448435038366447767418371764569515668996068138780959705100040603146203729244338475888085256774310095449711622533317539747474339366396088210549676077327506175115525892941857727929758415480761960739707320682818663394384723825772341900302776479602735161903340297808404736374689952013582571595399751217027859005452486444119527286731930132301251448297985873679746858504932798927333080591800002546908381532204191173657509346572288123142046209609141497833456163216746343234977153927496353749207806649967698943788772168819607122633130992651132123568528486754253618552350753360556768816748590141551255369847343294024856304666258626394586534267871144927856593023768870596505826732592547273966539178476771089584682852323914917873004033800624838975365949707669470013836355501478590019976054250809304302529328595624185441417357533226953136434482402475331422852053385545649319739431416718781744686914518047887490765307991733661684771233978883557572527752949993415277497114848145329939611095682764174379354744891828676442612994835324124090708312451585796082680156771994157236052533873698414412892870966036043082628841504154641373115505327661029903079764863177620814130016705016419495598044383863114500869006196784590043353998098002904996423050431644682946382525514228462863584013510198132518025055889850147783695670710383763730632403533802649641090982921368951289498086396642442406752313956999970867629743450291564905403067429844053488316379527102891508345411205163914902363517212065360505746652466856050971045273361987052510782270504433439778403344146940730019298136370618837348053967762234378682348931114366567072374486604305492104889948548407261752832089949240949493363231065606141308453567458604219304629168705635885831409709656241139407983710464103457003258180019937759728442311167096244148415905733139881771273275288279941073494963939601923481659726150508741387714958073849907890190894027363336075873466042067892105835447992916099102080217762032372824972325024843081878005914738352268800169404575860623242501540042635188494966797918114796733217341908616466163717764157970802142880871716850602768631488338580191286791402579402994799948557609746423913652411718348959581927131692807526771445187602233619496231538351742567190075043339703347233808644477268578165061842732106283726725555122759695940184352032466880127854142718083797552923034159641865700623633172334824504431738061643751584583439602663935148291537182555495662503443039259519174761223551810313999012667179066356753953209829887702760782732409132223187953529208749715771628930045908243909409254280227171830680635653195894072756477746026332533229973371840651483087772961948825788485004060084681383465268983067884908843817744652891274210346040234592951352420629020562530730681325851103665098796592603153091421395409800256102588383475772923515009334500356709984070306273370868068434097210732361174674373890690236794551078937204361423428307903902650140634705918823237050186947183455653987294057484646066873933847461114183018482048335011854034138589485864420223255744831435907742314308348986905525139407254132018405327261718274415716895487504251474469446385981857887667367950887162104886668521671734395306040362283959501659663223761233093873591128228547702255198513803120510441863589662842733347212398668048715866503559450512905505136880707664937685367307229814436983383894884730750703240783520218478951936583433180674071031614780009407193967465391396542850397088827757087994256178231936485806415649173047989695134886790548173921928006763136216033137313346040596031231417253287894752358677200677487378063878041142191725872312980234762557010443001460635045727915951251751028065281435532088688743288654533847026479305086615430443154084618065508151613229126865728058652342776336974290916883714867830252710902592915681397828536764635066470853867623554457653676068608952284345543553406241909940119482289324987816414319257411211746147349615830573218423491059261826794488424532908984265871576423968587735909755794091842782777138304563186433693568377558475607780420962232462912665116924102300907986942550746477250737399933284353816699847405990151243821711627171975915440902609687015859866162865350806551101991347781109205896988827200722618709546675164833580072583229952339334980290354956557400827550496925433920882413611117541243299066775992203086556420477660983754578706877872849260563583287898624435496888093755615246461315353377354639102612212088975836009653177606612286231598001419207521381289662098736019052854839647673113515162205785319248094861252092022496874088062866172514888741991016445059229744281810896567036296669092157719189078855645479037100860417447132269013129196583138221677384664944827317101534133806592054478019037656332528405112482171119440493234524290323218261691778046098696122438320384019662956362610952592587830857519726450659168430359926929842395008351876732311364040369289795120418466735354735784467390670635323770894534783322726648547782949666567130748545797293877489203707976671475170795554209980211415500956221467693943699203323537896306169754896289798759108358010227239206502365127950192510629357170132625564212551500190876448476950049382395005196011488255775551188271620330966087947293551326223713234950641841578776661178883503901768890304068597707837378434061204853110542507304963708349157982959202686731414450671994671590999524119582453366035021310118651599090385123897849736180231614120367791609703972288574318130598603418170968137640542550150857686550967832485868628580254613688591450072568832728076984723060762747775872694682998379656087190161981610642681886371712927260227468893684653024140586860238470099905509127390576234634735223447078275190265713642323261396706584948891409925045766624174109407564909998167377895593891980116346348084079700892014689384770701544106265532098666032671897447625754355053828936210823335251725014188307175277189393510663477808847211649214720221786384963324456544384080383687737946149918660067710951928453009230413071552328832487523616474106096179231850914383314330886098338254697650685669909164302945873787635380484683300618938664401459542618119129618333311504760957874781060629245529309403903156924623704421977915268101904719794086974384497541057757486886685576276041893338604971667221799092479432889770375936232566437827739915842408144117884352862293198277050852823358378361254876000402781811340134636475739698776757547205083833690362751266704521496945925169186439331544430032338740111790334628602397687215447682762967754935242282867505173409517720017581693595309110328137320861271328279739436029738446910425932017199692155686323456864178257335369815958096974159487857938273250486460387801947504342572903457878818374034202455258274137265773718626896071279346709225976386428581792609150709634319051775553172195307516755042999233957446829434206784219347787198593999697857748334958516057258246841465078789388707269086504915117737747156971395844740768616993847364064423364829805138174180594619407974092403711776400749030554795015404042175263267065581410968079356769632334860803067392159444223412625774728670559296371705210791953152762131993993203175469442439716444581745817006035279577321731558304171841496707454928075612934674814183617476018557085451481140104497273651914028387792147719617700485017747905741677643832615474610225382267361726207267081865427961446854713779963611501725114330478978521401311492077069735968920288126885346882109365723988314258467979583664900912127487756992616912918196710981481519868726005228504047030245003524687434256243830566224178765182896401524083997928401518474048513898221341789344677750668709984752914527717462847243535449171693876223907613528429236042717013196099126449457388746528304424479127610113141849822390109938643237579126633296832221390064553467690949538528428966379866664645112966112753380410993596812409786682764414908517636220534886549620387349255728386630138421287850787201033522868315540248745205128223778865299697272775638163602455273812636747019906976008770290918975583520651625449502290168784788596164487100843320494900456098994854752563787239288795851191907736450965867328465758537369241402558844907124597434628999022467483020590446105740054155746504002398760250648069469021005187862913371214730198062056017437547736224060798941885122385118217356073023439674248144358063103052726726459290531398362744772627425688816415024883435870191228379509849814570676456679464487015136924031352282435254376387782546453626917280528476418077086321043686383752511648915537925475932299540943318641702431987852669342225914352405190329539748796738323985564122456591091769205368316119321831797829763084571390292956487013868380787509328469142830333614192217148453422741837429965984203805565158654462635807714180895464709789525111725743143552644468984840108574907354810243857377023769396369767611899620109263933042813941141071082190593891242973722542319795875789920296094831861388694815591510307151784322117028418939064441033834332896161747787771525977401021541363575336301027663192381907706591205426301051981676784850792167649617607527034612758376238435744308127614397430225489218200704405571539576400138909486707925217788083189987906012398907930818059002057012726014056864483749105544441784650230953657850391396078792392092834028393305946743221331937913847654480919091205020215459154527867961464802365461812136285875258938705948357496700129985777478911576439175682406850662206723436202824359859184487375205989207775204080569142257424578496966147184980526442402434868150725329036015459770136667276160589989229798592848173311456611580024169971755097234676989049830888835406719505947745345791646939204269014120539010870812964479315412691513025418619184924027398393351000853195629977426420470577832280096887716553646850005733286400709960407706716954408249000374314963097181708218979125304218864668812661923518830840624311817085080902079072319526377399048773039556339692067765108834066282871947549228833342994369415672768764794285851005301389437698840558366821883829956348554687287849429765709738769477069303456429382577923859339992348328159956469632969519005533300252149632952903507333150742441126036107567104917876611296280594741076293927226958820219137339574921154289535956811420066806399101110210381073702889003445646577541161166472496304709606528119722593048274896826554203141826650283110986804770239534372243939019011538493920240900740999269638790519083185644991348067909800671799268072964033940769374811249589114389231213909152750491218573097114800169649152250600773457709950798636298050078388126849366466932368830411386681575559367109475278105359439110994711284789301886477271798524390092923106010675745263114546964602264463293839461862967437604000362726587584830759254023122834697458185876202328392149857363288777940678911219079787076430642938498796424985919858063911198166307217240385443287654605267023978955810337080135993942419587706163257838752183280042351488669594981733875438498359703986293835157175356368137314999327600436717881445871606113751390866400929925661917275529124883892672916544901322964264859884398556374309898425466696641231784259382362300517365416702387637913218108630452371318588900512912192175096986579782783148406021635811322866412801064407012297968499294351869353071034224572340575625710985586994126855708015267722563118015803808381714974796543755799730570117101974836765462856747572253316058281923985041065161531668625575753095764479038619494419366775886468250124776844110225610987434954780730098611348607502940019262679023157956633628507285246145612096979041542759625605266799712829675853335589839050890212213193462743176683341266045861904912733695713549975215746153801472633016714581622497681297123990931911369649552852495606640830670938347198807951825284694335685157991501069867390979917400522026580313557392188918627047618580690026305871700997300001885564947656423507998786774155924839493386428405890375763824178347612333597585461106953054531912445531247967417823639808741339859501429157094713827399253199860176710148468053651031424283749513526829599142097486062500758895668489745419183274933296350936267362239453236546500977819386816724697062367676893950481514988274533680955611308469239817551165443079483582270814229310691136503690179739591227513516255425921123345626096610705992465836355856393283189610754365052428305023146357545924089931953596479263968940791418605416788123782136145037066856599822990568982356233274699153041716724853339841612170763625086270987149050531228960297142136206286775333238189360883618643814407154005924533248020004384320228522888979122683641406043145493124529275819328670921256106497188886840396978832724046804989982799087773890054939663246587778549505155102965889639690562142640566146620795989500278256121720923573931627304065004081980377880947295273083202382248032998963195375258842075404931893686048266723465540787140659449536219447897680831450313567698341138052072766348635233697057677594804898327983361226834561774303408707496109172102436242682848901806730776994013359230230244870827489705311272962211016574019938904593480341354105769980814853547792133928522802498217792853191266825904428529275724239100148652516948948034842228821778471988202218242525218987937847138860629388601342627606554999637134252465888785750677122865256261425728059356230699207734806672816225073629208581162141201632024142139183930419973985929042785185184427369326381586343270343265286025883317185970596262573798965096664112167050357876729780808463964420211547448221250176833558201050783071210789390022724190223891960099795017804728379013989297949399138157415020376106011263376877765478708682307386900012982764614488464693219689073016276219000031536342210222638623366782362956755460913598039608483854066346896903529715290800300767966592740416415820293006488404258898813309028784448091641836037861076477202307939656389645239615316665191067632615605196750520122712104028120115930358228747826946528707041321408443810522663799449823372822236840163335525297073851591807636154364974230153195589852631445754512169706422002655165778781294843377477178216778503324255529766513923872870931419007511209153398396869005172269247278051329722207611541735056526088175600888755279212604587797605495658242120341929500396463635225081148648004941092976930415305287686188271177033679073464923283511472474006688955002219349782127347831385993386823230498444856555656223757472988463681809572443349038835932205713162978689756857553212906356084206134366942292930712357293366157670605965906385736463722714191669177898149377560525847331219314185089156878688266140446280937414300392827324416214419444205289943779480238763077391518417810455671972076205892476612300867255670837708997206227187593404961848911313931263853778411136664570942959358179147877877473918313354650288648567516335888414976685494914180993021526636826155955281936186560816150620515096668551624680669596097555002001262833112028907662934538698567808638082504959591591831109373511952747210436777865117885676176900665614951341026655939451171650032613629912457629160211228190855874643030697649858359427374192413484652186741098076354521907686879923813910218305932981161768059336298681752430525367557865147969811578657572597079022261040847595311467698266417730947215012958575511173455209629024450999204493124095849786646692554004245642363977060880307577386067299026601582744316925706412236516274740096701666099462297795141600158361268978919955208722509463639254358794943650062418332141132389934686915805150471549892845174815136580112019805199227558102858981966614796443477672554527921176716553729495304972078548443989768433135945535052350996418381989456158434835132003136259053368628357497120390349749032232451988753700426645067161158616285145715723990124613778405501994529375169863147831111565439254512854619028830076406230373406366939959073936199491161812006224796662754646805511005653918185949846435137606195769909705937449514428571584851035585459233111394020384112118524115159223459972495234185010075428370143301904485225902285178517311813110666966939500137864706848526303923658768216067479104516888970018694396582276389225882392350014767568941423928963250557207119726078515169792270781041970524781438636882987933181763343305508677876983755857889328422325939711636047160236731871357111581957437934069349035461151419644228179889506362326706556083090997897371281431478278359533492841862780441642541998311126969003660269340095917842936592670383752420573433811315706668067494848845417952598350649780873226694900638562343392060832561313989258706772663431352234055991833787043172846352999622599489903192112563902948165519034305095439990368386720060972412458134451424139808808472022960952969270655793641811268657185746444347372980466587541030580586258541683779630927346331502115835233856782285392404630247239417266594543348952985586969965401762182375527587751650751410827690540702378449665880872957694925393252068760489748182392076908000474779768316108079862693408330716037790570206433618118455888477311396734248795277232147649709086307747589359015803659417511795432672892665597936704452774306986065993463853956008974786485320505377462194624535050780255281342052538102185117649935951353908969882996638135735428102075353267116684944870057990444671641840214506886687782255930857670242220601745873267838160862450371648845593773589677040758674358994390140301018866376363438388314234223849006494224364072965173857892610927034713580410855147488926634760866504195391323840360533394448027423711205508145993258254651743033688280007397946846679674946651577370907985807152142501779857716344562387367720928655274701421369843897578868496335742680878358876256986317516895030534080943647009899137867402288328090144766911456078987525242645197512285019574933676959438942116575104840522085527194632870223960009308938850142082835609203079287753701704865314729479821464537824592830516545813753919470291980227762746298298411342549717046396627072329526782886256372495311614190590956348981786655588176346975093643675867010364931518399122357759053198588562544176637648350952249702809884804141963725325881279421977550743095099597970914890753949555007239217706497498453271848100954892456124736032202150127244304251749414386855479301674468037223306866420051940960327151505310933608097157638943629998466842243919397873863216678410362459299560225528200451741645761991576482193527266534242703029808002890781079140462545388275175831636280258513904153613289990519678395581908661319220732916884021116681112038671584536117822692954840428673472937782970788026944454060914811995791983382747982730286251407680719316061894408116647250931692097396240687697957814293246295153283956285297856746192519700275038066527101126687389315780905098944715697655794610438264311902763487343267589782458254883253755059207685473176975771932806588080803168849140481287054498358926149458848559914189355461343308164366164112722877376767663828538939561743920398060987308194887528099793187278879623982877876452165144875018402491717941835443160657580839358695016759895796272351088273838614499482357740119249554511563296996951628461494174053804117131076808707389983463334844730481467845692711921983386651888947193219954318770537818082315719292906298583786929864959476730313288519431964042913603768541821800212309897387806248338846375486009048542086051835338869809803915674228160289827021371020101714926190325103809705339265189524811190620082182501281981247197137703939118553511894938491306596735712055347882652793162863778456493405438688089331155733042386959667177764988053347729891861201891650439232584628483955953203518489069846885335369563031664643646212843307518574293032547290025265981543057739544051181594190266802915147298138518267558870124237530613121012130663360792520609213325321680183472049377962445010679833225637570566292962252543581893773350648302405058014668361858465317114100975042015550672879998288956448184216455369580730848478525133015663673880390211442496037875186386382994195053200094990877343886587278171635337685487065807531762398609113241971851688856129028392657531628806371804752840292402182727022877937052931356345239789055327048557716089179941327145742857482228124424200884872320400223388674971653396193163924237350755595966640832499080771310870283929310457877762542675836265897397814478726777515589044726388030429379212803061929201741085337274908251378427381211956696406195951654098059033109709514747134426558426624417593384548800772703159169809664135098584326921138760675058775814091395200387282501861818038577911447919898464808312040986085969549653148937245969362669184031268748572701440301098725086114177435915502548458596443587487784435702005788970839271936971304146023449284414268401397695245421691334165478235499065871362844647984874687058417981615881108448316645167369981379736669245991308002264899855840593458075593399808336449638492479955991963626426252776777228723601417128489040626764069100315690434860926152475743873639142543166483202747023966268163400080319679534217333934806560551154063330057907624590682046869114396696627036485554499459854161022683694238924566561759103293172344742460483927325766696264064757852520660595631227767414865538947827930322586560858090749534459104393628156974502253123386030111991966812654543152924089090780178469231724191515598775075766072777174306668787166905312795183342689079237316367795588352520969972869536220412648873401510506823377713268065017020252978265127135855792111858984014123971481417169750900944328740650749100763262032927769881477367814254563720858923525373185554477096531563650191007093185154225051487196394794855885344712872873249919878057976168644373158320769747490416168866435212383009669949219832969932699777880824639503597013160258383925339625934376340291307983142619072776587597243861495039304149834500997207232812738936326192561711783053863301163028640766621315090596151544866228373395444272410270574651213063108564256672406457946288897660954668821287110681902739041215863094675759526770481926790523269670539728870024171452026894759245612163841299425312533843463572522675790700380575538117972914150452465443597740305506782876837060579730308211070687845940669295904372794710213442305108671081290286127086435297434903249759889912053407422242233191331712444966122221257260700870095457688022115058141677412093141866087797864928763870482674094511283811186464199749321113014251426800584759373825154045880446484696146597776625876181661172337819343342675979406232307170807502774143943490770282626010089813110016177366278057120923955832014011559394552369033006842464510609485209992651794353829689363569037970558614625198186020193948022412055481117804533622021056275274739565229911233072511573894390536202809433063547986556820187107781193797086488626674015655470781109597906043131820563281355878456896270463117683531710839764829164079401764460495831236025554123953930520322305757527085437761606385862881030361993084961989440233463363676533879632067865826675095697554533801303468803123645602571300374473196300036886502066595095272113655554475740091631139577662539510756256471065513507899437475383747692951990233885430824173095900837464267111281860172751167649701996394267490604099650067080859677859198028758301963669658390201435531258217834115856163640102596190370161435813771188963476190267438539874462194352580598450335158299526568134743995389697713031515287008399237680903666558841610634613341840304924016788569086185500028176494170115496950617801634428501898450170581149786712176481781659552076687226165277820574039509129656758478368115686278023740500727246255917830944766513375813586092025006560425795431010747383963785815214289393105315565081681097395716097676978490268912468944696612530354537816364484657605334562018572392557092386167451696445508788793215435838746253571629576921313692687121447960249106346704483568969771893181034042257210085381810691510482742981673502199008381701380806614781995694168999286799393543481171874514096032481650329658519376453212284247673780859465078538916754849980640389223402753537958252440015189986747600857346475311112410802078189327357086047230557629850398050937513200100632731708875634991776885709777810887174122206183222503101028848768395183714759916509488242945811830782146814266770536770822517786409454661287036626643370322602616507543888278157881155192820740466289091395678752310497071432524300024036515773000046819888259069735538191276898831856186272390357698697935226737388782581575426427575138920850203264596366003333322044944494720706596501202837266357381684678693387319807160250220431217450994794326954106121744157704881693005756327121460667952107888570162116527084671190228535231203273128942892575547808847276352740578315976026223899881982568393017756767647398052858577710922162739356237552725063574469525427046216615156483361899090423509558069472276409018857706294281896351741858067656726822648558676024486581846272705464631357056025313017881256405639273933140531872991438896776073364741044160954943683107637952241196299106405818235704988593180766223521875892298573163005276674869580975772259587748792470665627852301744407249828280121779407597405731874037496320478955133281035864348374559316173557753324378422762604584459046095960552587386223677373363563494388131846237104901392062819289683303435259962812218830509376057978085583541344994760638494239275269649882326018327695859770121045737180563445892845079446597723504927427633835130419434377432159147651389348125119649136902589817523727045457442771204518545545093504266008371667697861936735091971320629113136366417119486122115059644799182187397943263662928905786928640276113182941077465784121184872328858005536721752852231732666398876166448572937022290304916955467501470077376843404528536484379151549898634042590011860001380753756901561052376395506441897125089236188104276298098976908181981089392592604656941895441229714302567702524214388870170523096764554895033080231646115344981592664331046189123293678801466089750376484867423459584403886034506252626840236195022264715194861376727760280162228176950129908165414017966763954990467448608056542112056368103656968675351120504201991599577384866943811962332060090102377868795578502428852012069895691351112366838130874898659805846427691706025553184573373259019996451332691040977286452467536976032100647425046806900313506051160410912219156431246237096719850596896409072196073437547949296417501811002231334025892098094336946416531510462963043815004804527621402944325916276363232809090590974237874282697939781391156433068560003884150070700490176636899102826088093804555310780116711080897925894385008347799727998733546946769016358647680858685991583839527831959129644018627987623348900988901892436706326844859049597250036120969200532453282474385193036176748600895266197819315621236931096168871999687734340835536838526197389365713090238322377137990378569648035591787659386417406018688726246431357738873158603899827120512987556101270591935013931095296748304954636375502552206768433767360116046273724296615506714689251251784515860422230120796409807702802276800745054577078819057008949948044603274999029556673176398751915717562777193546091808544568772930444924681555907778897613169323460995759072539921120033745412044980405129020214832784005441063633341472491824380677355261827160084233983957081691775997234363689897033676869302018449797724766076499258960011828332342853260370651907211783775061232559287841912831407686830183785285039164782536422386955564228895254699599429592392913083965413912454423759643353868995903119278697255354798834694193372465643853093896054822535914912847946408790212397117635844888461020671821973547453177664931466315986078203548183350913107879490858575052809822104213093028355895754021605725686032356395764082994332151308422998047819017324503853393008737792614974597365968494744994725452327585914396595087015317263117916949576847198413138756868036928213017036852688209822828026196520299452801288917248174183085415166344708564491464127813261554674794419283472082103510685857296701455118926247443125134295073204346537728226596865744882573007355919813892104069374333312546604275069520820600385774424953870167667622645407065564889516516513827268981078448827163340237106727231197543083197716962458038263763951021936603945406474621552907213404988410733023558978584913753628570639322802345942947308933904623659952435654992136626551347933066835668523441946434900898333245651886402267451780634939770220044980417177461645617024479378680728880082287329819176728311125402156754226792275386432576142295109379999408882659682714036657757353868137991622500189820894988014984720788896796437293825471853676674657180516196116119625073739569727208392003193499958610651036154680573393174493440538789663997847559243189392250068602932476701901928661119714379868700121997164785779298368057185121717885763584706919421263730118869914868272373317596118890707607178851588507821147725575285743512661297369915398910861513751964742388175930488937153124014221601319445567513525553196461097147071259547269967336542419508190686231928787598373262711334598731785957153843224546574488451854695134744765607139782279724267442085572683722614114605446221512078411706298089237775073809102424481205726540532549173247131330615204628246749230639433063828627985766417823938039280162691099249868490324104476925439394463646612256205157030360166154281715936475337683677467262066030913672128127788681188700741312466722470676052090058150671527186057452415922600281823282652233967847913010972676449085262405859886569270199570981251819102611428879102632876632499749669246823670687166206454482779724722800460852359426940389385800022992845392887619892125265535734622882047166385664076218124664304950495460289156756873799274859176691230794767850836234958184046690341448863123717318384070479900139237612933601486161188441267417262496237101930998776027752726351713684338167492597195394225795286260366089910701101770817109965740806153354709421439178077436554097481997302605157859400850268927351087061123833062815607133339219873105929675566947822026031303175069408500484268332831214951711693868282689441607878638311070635879684900216684644143033214971088259839520583691530091162542791895336281783273847389605079460244810435193565931116985757516573358796602890362523005329269980973364867644330209151148548072080502377408097321554581994230173516587073593921202769108957575510710912690121388708691996900456774891207425724883777043181714434121404895018093905957182646550719298473465636276615060345120854112788647627702858885327909809801541285688255958379709866749776770890733602222714374959720473028594850561329352522128674649780177038123686267622096854782497713837852660420708421477841596734887374001010656997464993924825034205002511759655450466087279685171893258395448179357043142994614098580984904274508669622417749447282008556715368631303337319821547353426818898443082596640250469039005474621277925050851820350996496792152505840977124517876084872960194750288495025383503213639397159473240250825972376334055259383642249597348456966065987485637941730983731610520465465313948646086208981654296818494680453168572810079380244197559521446280364619895147019425818692305676969596128933273466391710138676210572202213232134527856019110356437347783926500890042392106614177080417714680264079215809722531948417371731789873949460315455797248142478327338871330413911391117117610038662829606555524698332996389006002372745567617222844953710205278582092913962454858465012911258141850834221668925847033443106202219890713877460332487584023789962167573410629796929359826671648222349161208785934273427112820003340666522747449744619819903492638682191304716941370631761009928975908654579423488397386801431050187633661176878477633492766088096174127945645530210317998694592875500846881512218915772550586597097840878650558107745675573559875391938510100194954142739223332836341724324536705195935554720194542845411308866610762993981380297915318199628404919455312755404241378911124509409659021340128819466833870981020688205604681671686637444541722222273922773293488231696030066400481479516640514794972325643019501088827051832065302010790148158596805587054520813764066785792025240422148824790709516225795136640112185792144679349599375797493732623596063227161187435335807616936540689641263222186158656221125429774021738852280748353085560881522378624759946175234608783389628294549621330241049878816674036072442933971796300940359568433733151391086805429874091878176444020384213911079730716676229966924036777873429114639542411609722325909819308591187338162646310416161164771662948647665395310493670514180693152192770282314933492703099071125879487059731157928391001471850154838533399857925839669132543134983307690174755973388950643095257526550661142746948897194031561763958777061871146720436640658383078379843560317342765298821048440437899070249701249574813995193905135470490812458331993003113074198048523441523120924574169664111522955651052892214441694378378639449500621960475547563032735133035304223154285252636930719491393415063253321520098424662790686058298900573257028635124691120571174510937499582243760374837765506818326805303146298873756861128366975664075413358249651157381312696782297025016812548497323033959507101766335950753291419266679179965530047683511643666861687812720927168301003096246863809396020512679376448864685626606651929783386339647702986131349474545770675682934902874008741761211692674638910017894296515655317922045830201440024634396180310137633517970068444097814080403724707569834319841658935016895154983710921533677455604342096879923187618083351348602399053837911603455534170969938895092036234029485411599608515751281628870083148194906568420835694559425261105349765093250166124340802050209697155017086583405391290501459952559827755482894165786314016071778618807339604042205800128450179135075819039420967579604100159511012427305473827039914133826723036608341799840510878481229646303623801276489372572029928032659014572192913255745829537729446255987709868897719088684962400821327340336379372789805778239827489645902178295131454081588679836818935499964042562738518387734713786840916814417013679482629207753852290319075536248196661081092711084374433015576987517422544589249912655970460766183838181810013149472553624843838695295427153991326661577075514380048799181721792931353628668957926803182359204605068506112294320864561951650271107183609308976521334877207303638182120467120717060469074483668773394204413057334847223786181718447367108435796092182717536313628285000237456763880588020038991975978256832133070558857521853991510077520091913520371927227545782807167784478708471578721436727514613209508738634134681260450086389684788860825480303434067819861874314086678734593516969446074746167443170591711872486691703581169519180597192249272201041156541863124137246019549829701009125318128957158458183349241058948809353880555483441860487833995989373668940738366654185584257555188010201181508047851984257778033804232772815579085594483155620984522874577441884046786232971506901448460430562033792765002550739580032507567394585875864747116402810758037548898840036205777828765802299751684950742904525019994737372727351806731624214030973676156990696308520899597429439739944020712461189378582450771446662693644544839430476210007341713914661541811580837646252682680704111786270511919434779290413514662442963905721051180504075045137450671914498141438713627519561599460178028280452293780701782129909445948116714424728973657667219508853483922416765899173274518740301759254942346284884095969815608912452253231874345509240895029878339514942434687997346441463543818256091515966481065005228143463731599690725626318540434132978797478769179620049315355106096664509481397959451696172083479682121702720342449348655159824201965045761209529611942882923819335870810448353811922851636492562136959586677999586643335165439959042852858589520487372066566257923850589487908823294092099086343777154999664724829624152523765028801768487712927362802137770679775549709331004452530822479032754332076465062974170284602562094353411110206802567453590204992918890886153993967779507329788291947571470292792422164188665806455068900921367837973606257213232030936113571251098632343803936585046526175792119002895830328817344090201930594858416050177427833712832988861077948609637857728074620410680394914377500663187020068798721326114720423658337040046874610229083085945801232574158235230930886234001840930577451293447478745894612913161698065868501695625046700884203331985492136155069577510200281284220152720720695028301200845765827435017223436631523566880257068538229207417459300860531642884456739682647547660295805121279474129580512489006517318379315889546096649365606600450691694637746133337259659806779180514602696620002887395278631605528454568950468446341714155400592671253776360313160918955567350762198511365763250429314277155874116050721626289614490486353905703080344795760866220240351798009911649850191146299214556442343229231389421850277327826198528165171684385378051593487606346392150484534282852986959752592725540255815525392539873282596321236682225939119793152161852550156153566214149041523938031309077174749460459039744932795207041055816940554111190094806365754310125872883802904333144780524196239647760316198075837026347491072342234466320468103220123977352783987590616932150123284734611778525733962159355848039880783336530011447178337431642410915963807430874550922309352090685555464635430379690301732644731525691373760528947173105002890143562659740732967342893156905246174807754243635867650509092621523117509932683430866435837870621864860173953720978274765473490006972624533747473223080533373297812673933209161399629262031593044608129688218678009860950672722900925973237069103734251867248763079762115356335960878839921151158911845026702331087842761487269153026296419384474203412065144024834079566252752249461121385130367711347495657211140598779805961616139597886175580860136929930299936036723170919132501997590487642693218991031736327391830600874859957767444240539763256577452429684291438771191763426083995676100063964455047878837093832436124332211116274735236085481600956299309316682559459148703547009357794797638864399785015279871469461178616355335650898520018033699536741895549688993261435494393684841157722929542377203475254980914555433640787315657206781498376334801014524092149476460940090667718513963190335174816159096954347592333781619683679531518023417662018835514119834756065659312017354834865446350915579519086129396646567709694966630339419219806655975706656669479894632965568607828244045601601450327014941074413550500429705223895599686224311509383814002151953177912872779400242924020241161190065710964448820175541809420720460153038995684517007083345041605830797742652596030372613998339783210232026951551604984232507467952903892270366044430110595685841565712819079935597755609941433204852164383583524450363956055491986068316572710283244988337962135580039881241869278830229847328149009697522458234259499084683332191593535016736934396156226606427574878333728904850642309975388474157634105127900112688089302710038463943949148760077436248491263715859995237558404134075573173893507380872213257837129576061441070407672194317353843993387422058696481096241637134359296346792005320013460562644498549859061930371593871093733917980802786927083863751137134789052228094685922199090070150532835776841865180060764621437074830414110154662095170255283392755954492219199360326414595112687408501221837395758721200647808648938827956406033003126043486750453856716302445796000279882742178205339469223690724181529822410577762047985368560927079287444279180015378535515506634213318676263476241416327292863763062747109511104423308093725440822610486090490035559165866455275873629001160593311407221498947020929519456310987444780865179189387614730046835167021946985297878705175398608059470584719911604301635422189704318871320739937910237759585064243288702651130642020228937713662241395532678518596878346687739841830089684712706252076384462861452792291322389616368674755119943169486928135622466936489372223970948615769649639299772385916079598178606784837705899837648300167943577433503362450431252878697576859421448768904981059621080939464815679386829639956600851814879613648988140318071910849697023230501231810191869668150142739764744923284237088040476473966397909578885406828690663379321625080928522114021170065020219901067284493585360769569609332374633456828451699980915771181747198658749255345918722406693876902420148022760830623684868397521817816034621603356988937506560736178874811651215266738354160279588902443918400276064331091967630766434154975627479158965066109503981169858963320879689884098798643500313023466612015104819109422692873284039774503001631191755126383619565977362237844619838151649235845311771381427626390185042954400932583816666601060860576959044680442650923088790181149042345874155027901744592335695540837529200578702698497549277005722266014692861927230683117739668783483715834498684793851000158061840092009926147396535226499370401349276453057446963980958522789318894588122292512254427062634536188870329548963251835935484749739250274411584474231968260487575004312971421691839599762409706892721033186919896487050336817352575545576949955259204888335193358786626236682580206795316439833020866865637714500854618227619723572064730617132565167952866511007715901011200637632523599500644821720994375072561807386961847572004043295103745876621754160260388551179530753049355484822939807379817518507018891294602653738292723031081096091423246401081889116885705563485090246655313387090000588878348476237758694315424516274435186022638675839712266148355249328350472465602225204105414142033038861058023265643237808521929739106005601719871417213847390435454045589692520726892682215504144526954371818555110264293333744311922795622898319462246525300353601306326918396570395249244628363630187288090040025300691920636971707453404485300010670809692082194161028716911342976190481458408278769362512044494225288925006077808652851616319199309417838483798956706125022103841577593189618843107603073073870407333485360058542049851962276572938640068238981616957927344673447722143707362328698995890868901191105131637939644506287325775138095596970266368429577272410325771825373305664387191353992102303377033749900177695976505378827608607547728527930619520407780819421007266347113256669593666652235641924721188162627268699698417940041884121546906117987605585766369529680057909412737159077501651855016751851421227848273917101998204665268597524219232929658632085473586909848170109732679889990311705145196793818498817103409019274086447262098280468475870180118915743161240903016571685902900046552459114814562604382220326660601586364614221994538827313107496744238584803730189746983343066555269719035308605450861299113032058757788708220817289934261127636640103848061302266075117837161909075670336642982789752104529922678170173046722176890654318311037426771965806804412840135080842028953024942483223386467006428978241989992622049864226645444914123312051281603017630398542967935854851292768181453012657457297811297508322993728849704459091216561697471289311837380682078632575022332837934029021877216068566501774021754012754232377681624947998689663123301347060794724531277402259980423715640231843013725322423224478073838987757427598267968496925333224317894534347480496316665943902606163532577114445931435574930426054608570570909196923526300840316871822464348042279741584577471698309100784040826739600676530899241303503108512177096991659725240201945907112807342441587061108848989594004635769100879404535027421493759751492935394367180460276285657618858002079243847355188786445089256618815629881685536224393886402167206209039288036289153607197389781395691750645615031765200634440819755397443563207112169752432304801175059312197880347197562416966471068640459143079495542984788548287268128388768438183775162145270648033070333117503011022178634342972464126212870429898059135070955228074466377198089742596878531380986129927116572140623176451697318939131031503361203312322762321142008516030156856974421365264079623637631571226191092414282560486079835617650281802698376578374037542653945654332419367895369344174144000314882029582845950429205088409314549644539714813467363554059725750261134522795304507420456344834605582445163932657223101615028234200435878481287273561650944442512475620255464735737090185654845109348226026582385952778806549661995632121992785429405075564751334239268539047279141721531184616724729422541381145003738139045906851411541705893044552055612796674641419706200798449317513755379998991319335639831928201739695824102784008136928786894854873278446328369245072828979981510894645662759388089651898465089712124542846590808737700146172407958273555189508745675613292577492640438013320138484073646006838809451993511298826560157362067846676596345462141105724834012797938734868460040995906296108788407309075339982456053484728061844980523819935624884196439289210025031725663460255532205254837868650305492753045003154198861356375128207911533384048094641989523473767912190122236021115147971446703209005313332240171369085907119947919121287300580435319857925259706556826281451076216821320598075473156269248132173946620552246241367997993034612380858383260526728255098885293788303078325508588704405068193149220417459042339508954724155787796239114921202127604595861968106575614656330536317191409826299890071308823804415892212402193971537794682721256057923687505048737611651001381325146933002255952115967739851023631011202959135869327759234585618728100970388949911998708771076854386808291929533585171506508287689370457772193946300975613891439255315667235339450564338350667194493987266304364711209919602002658230624658210712734331244143355319046032468303174955871381223687022235760409993376359019105396243433104959340691851587284069729305505296045248983287579762428633564913152666314835841594451331843116075111062213720394044503592526268901080013286726557249358493019377098257131081809513487799243396609513000098881530608012003805248012475487321573064209724103370405973185775150941095728870323623265551763568217272692182388475644173904863590378984958298724788686007657401110949727968890229605405409377870027776571212716205184327965429270502137735113459253886580257626236045285703100417916089135232094302859088178660998221287290310179423412766428404920791337493460128864381423383069743374811837440589110674971271920027037548153192253858685357924435211648910826536945380368068067626947408485870995955491449473825089211089634404251781216020183805962226876627909467934759485565302973070128418555516624042870618380582835402722867469434836007500853370781748558651829365636480668959722699723006931802651251237037170013359218903964647333491292180965993124403820016448523415837965252547672541737292617715823314969891569156956858929769370216526908416915357083666184499306142374303859043617964240494769218084330356703341997980285667356708033823043018157178833827841380761472034190789996289880068169834872481822353415976257387555517054316419613002258216916549537554650641330897130747844333758923586702073653818349027922262534577501111454652389877012191618261656346234902501137287903729983974637707439159117305157279614242952420986615123542676755768638604177823826103345587186171532637169071521428295857526948949997642103611607456818010395563562851407191429773499290759206876855997963516518629950967736195224934168709976010473638942829088000143212144331638641134809032445472937199535399074450509986074147044230394670526128088073620475947822139711363644033540436141160877870100833503605819683465711938715215849985579541271532955636650347488916864821849139422477568386157392633316735657310909337329755113945385000147329397105070346787826999929574179345801418351297977265275454540389771728464940505590006136667420474774969952519562112423520589448718732737760491515600399136249299804770805938453956299507720724392533179772522182502234176260829918136249452867080850640852650233904913463671105303400448425691442854227135225329936611004672063550767154627071795741092996707943681406177617544771861501016151890641318695971560739262456572067888555204466347146702316018917399631727774394560395506625858635819757968906493476272588679338415294468802289345782991377672210871845152838593642789841296381988260307960814078136937761540777715651154381126698986550690540669546474881089044281943518806335956377135064020894869258448232684287794673326570133189536598358341299285640028364679449948802528718936955286376754843267434592738875305139726710058688238293639040596528743701590809326309729722765200186940745676940664691153379385812303581789225118835065183698288324687407738715413533045264579403440635808988589478315475306744417503317876948166900116218327665093725971401321695252843374477688569162466155024377956110371828151447365932105151235038534349820288385673626945912278828176108378105296988440715626177563300831611008714779700496889300638272364723914542136631243340799741996461904844402961568856999570222047365497372142703819828409172639406222008471773669297543011824042642969320666469936854600003504888118559960463614162111269345673885494543660111980934605347563381006354032704280475365593092511257172776436967741736324662335642650443382141812478044854920830396618168646693586331430554225077853120835213280768239331867268500544065750110906161606694753240723624823362217138614204500044838483415050674901688799591800880252489733218861760704548120621622141825074797970600916224078926753626543185988907571862367165895782228929804535802693074942588563414662025122099273568241778744791392157136917116059156906226919081692928227986045458364558745840836208389822898646096253806252359236081999558037043652370010127903361028029775836284570738126282888146526860799472947518103215261128249819010389805077135198343015621086707300863023945851780851905849353427369089846334876787836973946516993837306842931622915788407010177514922070375288706280245613917890323230465240908259264069976535943186562502651264573325932719572200983779239764585174169621081632462890628907885129183916474896815786009198181755981914039484577190453976672048310858030875278993240569494671038099741459718168217449337852914655530671698897991157202904065950442726250360674319705588215643783177096882903343635443994711188897640799423084316457853194284728832374037471865015168800993254851943467463284510542073265538259787631432967519657225879886678858120384756441363848607188481607179289073482398667899258077916274064436046321800226124778303633230962595902022509351690933953662810842551883707887232508486862105276461402006630647622671985365475265663335164359508094234819042428413259620436656642261682413281576162189719707012778204779008472001432917511085090560103884892160907771962493286829277698557402927776035559492619041382282715407650496733539381659416195824264653669015145799058817419982194860851140971438510800388918292567701338719667398444862196939763558036973477740811560460758536844783957617679189471905367278441460697858427737755705521849387270201257791301984316005023455257683373050734635054524114434034109179960954092910338117949330769034418072208675930525820766614913318085006769512942987751974430421777547872673512359237871805283413768051839725476329366390786553989242613069380243204652234580924832870520854571224442285512749406627631137893228269170576372600176097759951775836654558791872462875874906776553996402464758125548142900225651038183206840507591729909108858017645025649560143589892120539158278962112798013414775668682805885542573455331261746679251932630880903969182544721839137145526347093648615178920826870463181283393888940727696390405978369787120611406750225789338999545894460114836481885958418109239463015216744178968373210519758162501462360930125625042472904396173961813631911174816536600538486261494698733703837149490676950762120688697180588582772952342294559152217406108605936289117703239296511728558657233409877448755999860132763371677844850965369018695459955416608122554806535581574062527615181460198112832257250581645068972482386448815189525168464768074993569487386460910385158174497915912702180532596326837558042319865274498018057236233269567910283684995210985001920560344742014870519422437341200431021301721784992980805713900533085976268001231864049459039760186411166840706582554927420185074403413205386902205576923277356635866088141060663941931973854127931865321447866492254543123888661291461966557974271308178074223134236081272275729007057418718854962452827532304011921066426370135820801331055556156403817343907838165976840981539882909216244286217501577387096538484493064264826964294704278338262765361741423225975870470945904218236267696975020047357481695761651654137020419063672632603789030973482885942263300058028398837653675162686621313457055001387875248017901236789580843255830412984837292980382518691694629191765535286258083406856559139722079416114500767500604498278855106180363468828160097188781881818780594345449828543185952439799671513581842830233352469964934082309712710476161304772046766539738460440202740438416929461961613068581195922080698226951286602095412402905201334139272766116768759250491462477054320486368852411033387254937478531677305649761523514133705260707489442491841005596290785605401660341147204521722250887670456573789050169233705379561215251497163271203095316012264261549780816321261914111503531132549063906347966755924204017507641580813564234617285607469664782914608966658463289867713962222865130873045916581346591267685122328549791508877543933942642835992362627777613824355713393954855744962712711252381035966607074416139932650147764393626687688563945435556085014621286016690684859246123314926452413458165547355931335144355540728193466319367629896594476196355367732777445379415349200907528543532675863448878418651104241250120881469409124456514872451640735435755223564397124529639994420017434346268962257688823633458440196303156480850511429711327266192643794819967779347514723936373748676184658386597437832246569023426345173154874913010124326508101653277164671668620626496919816319587077224287452117579336642190405454154960704387925615179505065996696311474806574028280223886569718214645072569401243942638950907872820215119689873238531673446736313256105090983228393591805387052796036857333093879855534400488149871084498950275494742947212885515584792826104507490569181507165050098173078296281348884750324030782191164009444717521665873912269349447914815017617908656095192163874256018440049228949868547913401616121641041043285428040871539779461076853227515511592346361375350539202382564311973720814635961239112975766733576203733984636042813460062488382300245266040396321050037440367530608937595031241616599617209825458639980229354450194621682165622835225918684150925399874933792079992237337802866321798628053893502551071734617358708094049564390448583964837012687135831821441367589699460270656101511595761998791896112030668852269284530652244339168705999652469516652116679572956266817856081019396583627681591031278308234344263779885979550074121804077704859967725559595969181339520714165201346301826194740760007095433918859197958195617826023514984541090733974801259276903808554498326668142178288721543781080305783226986132285620789007928143962609743158777001542659061797724010637285568558590803581990510143304421118231519111467969309789333990546090588293071713305184321852937113538720898910478045020759469030905095808565269190156862490390897718564811491648499847139532074199401682359632253474982196503957262872812938986530309017453356529694305011828031405905935894933332131272743619861170166082483455819856856641478626965438974297656166027765276963294479109384719419014356663309959008202918778122109481330801308903975649926017799333514492033061811271336295734900482594844318125062359573827347292311741441020696984443677527133127517064242709170212569536179300912546376334767433312681199113827136998057486212280859475558819810252868647495476402186489108297395666196457194944353476965795131484036961963401662124294139788503412970584760162502734378656759458121013523346587479945209987366054214087441318009719616046935160004256664092385409448624268482807765795205844566763779363645338720671689699899178802864927532931793784928995674079423743012046673257267301181874114902982695084918505724156938129344483695255300230684456822350912846842815546879136578163141211574709209209739730394937096707572512266524057378107873290186744251577321702421071172571977002425343043235900608707439111189488307001271518476362328670124764659652437543740654359656390290608160391437845998753661660828299111181726329409021633063199101880798237615778409321418158067026645482988065429687921704232952602747847710014813179409149452202581705125258299834064026398634009493755058119502306441441754720406508725505333993805669226828114408698075136326866945561134373808885974712740591875664513762371274749842069245415048740499877383764684303172393595086031470160330152349654957764546644421782966969166473183758010270680464149788062285078168471673646114208575032974795565132372638769262480360076782913528582886897871147545689663354841999166561268283449729486424091792980776088950098569092915967625097401538324218877409839308717103772868012151333314154440247228280077332542541605728027967080905672756065583342255218789152463917237039840139395805251900239471840015864491714965294962426452571489594620893404778762416843244398116135770643518060144871287194153990659967872856715654472499197825322787865432998313662741187273909804989571544385924670330080133037940605644057044841066491032154905003315809820710733675167814414688824407402463484700316594249653433819336196051840900014030243292793055808044963999074150319703816489371313454594270054789620064683432035806167576711988621881135954793247978686324840928475740746528143840269733606475777772350562958650417027499989699818043249849167121034327602807615150219816600704503820898644312255988321775110399777249619261450563080373134836372384948937247933974647722017308825358540410302811492206423090618984081046678225736840200777211274670348960327751873039871159322046074776803308913215703483253991935333196296775920098070192218997250896288374452637522809739630337403906205424750971010644888439980852964083091795658019867035863477670422567629326597111958415941075501363423504992341302250244378901689723572285062541547528159802316660995100591657581513088537253191041292325612766243853978657806590384379870969474106956730678566118774486934892567842435696587998304935777659848919222037071315216170755469462312198831287483558094394615250320080029266692987189117482007759693296965528671219198579925113300522348074551206033399429814632782795107519169675983977535375202560728592997986475052904010838207302070194090162959588844142721104518899488134514620372427615998791239148785562281073239222619709818648041143147909190850347167819408543492707194886010525623367614078489170260136633930777727169040605018973737099794311145334895170153767933642832562627650164501009269550189069389900237874413390221277956467332846657276665399526992656158316955423153074009787752182355852338779971346724621271934399290959006062256090093212503956925469652597637938298319840448920425828992518721658498329855209239628174356764422993733988844745531164672643727663459383408782978675408267046908914565285238691293554488909735368978693055240134409720358482649128724104098080769041417655320165833210869430611832845436998257871126257760160718267983115486026149908741571412722430393193318124915187244431214705509403801222139458183023035457053193961870685145756709847317900242414161018042945275261167651907461319829845292584146012112587751922560669508594900833006891657592078229844640823696090471921040233601206094923997024520181440675431015886230997993089581877179510803913021496340386371312909758751131708431628425999894026488853075458054655837288780626018254449684510972045981579682514032705115864721829392072346549640096480546263640431931351364028740281035073772090401479552418785502379587267770852170874115748571611173312512611973146201410601664306366036709883859385132034869507175978431582459015587323804512789320612291034694282432764321839349613284589486697383983109023375903757450937932369469445840824479044641151657739234580363656398295120704146879678136034736255359397928171167088089452706259599143348975057913966353880878937817697572512250915065286036718645625542089553120864345779996302706745565853277802353178801807351168263686243363484934740634402911630017256735393242501812746683674293553799757681181916298553406780123894903171364525100350148879193518413165318302171788868190700581937045182394165391802727325268675981667527233561908313669827506378501221567767262575868454104520296923744141411056035886265204588276693728742006007515112038274075042744132127176440978921180837528585013832810554804418136489755459103833877149239675344472535105036147395574918811961546113983546277475082090372608269537006516213299165461069682156932047081954798447350605660620874240395712434745679259531808781206662333835775060207294016138169817990761483930972690931316567463642988259855842154199336492121936597593110653161333257359591398293778061430779772138330341029670102281414616423410286762474695123507705041461889629763661995558402997730498065240497411377329748508436201864748118042632016587505554270852844723260213966574838539995940449733521316087781390021910534968473423507278063040437204339894070314837193547115836988031103675057171541820921324825709416683226736573511612896846345751017811144628818796202252338322573012375462182078428423951685830444776815355382850707023138561090372942891533985990881108101303366875000711052411067527423096127461479552847446384830397723642659959732825986152167678310015809549273562997569647620297215579988391328539147366872248392514853635043440979848913211721089933524247994868189782984630905069587285403877811045274810491444832433319094710740695006189159466007413565559960880012556192748973918268776338550009296187512657889740770112963031533552334236350948334023676304783778320565508745559425260701076883365076577541411207296939167650651690812205287382882759144780157785520399232638262548135687001833198930091189545864963660857973434405058672342269547838007560531170311626609845667734914059372012183302846675090642116962669271372779047643852181282204419542662624967913766443419824668558542279096618308095532770372152765187012862322103678065966426337529229294684659976870860119270179897259444811033683330010351240265769603804591912953350846037209718889606432759952142413765987877513461830187262492785222819892010126677126742835226961416977621493246569313813013064851002006444697560935339238206810619059424611519403839534532191682280601482271481474728654529311893219713876562707096316119681288687615338011077854748751854192359434454419130992634980073198108860584033022586879674558491168285363371110698436282042949013295018558052385452646148145407312726285108287318239473424256427905627981242815064482221325826899633398327872649654102518356552870812492015514722733306728961926724164975956144569277056805248321890577068381209572973290434917683416253291286638914752423586704988543343831528856942799653971184427267485990824570244738021719497338785259776590445778695415508955140503831286303662271237156219250715313536522189497311109617347624897227668236417353957625713029936387123492461737807534810654353704927020578833200607177381970115097616389475173175389416136899254081208986531647041096440964122925536740616918705201294348007393797684011273387927618389690983773419461580171830716052709669834115929320186497796872165498122638571205752974000128829941444141358869969752192750336672912797643290005878266274026597191661126719357416910399231135830824546533240249606460004221355782480310678514328018603585397478777695302151912191493685076285497205378352104570243396122677499478100892866237738469008662085085845303839836200993046696292719170847236015954569391706045917523047365021234673575024507598253051111117295789071658790710014852084431100525982016856429744242831029859524414071688551423240324638468767386183050429113005148892953537550834855847122212712510699814198940278414931445358828404550209148263702760626196304004458915053149762128756874030235699563389240947974387009291728539465681964055838049607660225453488278543683641215892631553435340995017124069282817578539563037233626625161897867442902520045356990751262013036353836284420395779866399702761283280657788717696668563002979201892708138895061072397954925786830855225440415022804256068842825806240819806896273918543633283680769336456208044299306619238882687947483426197644094593910655609139149767994944729513874857441120220442669360329386948436999775957748614699208543974709749471749655754856942835021466234499600220099453138709918410141492153091302154154027054279323465341039625232200149503084450708363104165860649552277644947755900209687029389575136331182790216941739664757859860809833081272815720545175699352556581231602809368874176322646569688261736756763412458455370201569106766795927195361751282282539812140315160613354537290559093602640868560096434216230817036598970674918691886290984991862448052211444305907897689245756511892059484745975511483747533445425599119387695111561581740411024285420503649546919506636869575730573596136737506658784459575126221718805073778140815814288230294431648964307094845681950164693512556658282470818357607739624670112918808829290431224244463266565044335460029921651620719847242446078647026033042148493223543018505880754714726587050771766148782017561862111383326980086072854657048403907707165563117188259131954931516487179748204308664928777143652535057287714263126651172151548536727794520688172545809608416241549490631648082661167616583534374607690936608312280376180726995875302214020375459923906909865687210010879961609482686999519128814988000813607473548840317571565463113150596018583966312053603574568978916932907440570762244683656810328425009028860965887061417886443734496830275377370160425198186152308335189346545919019531541586509853725092589367594710833233826300788793936756436094413647872105957771394703149794955000352579191807510256543130621952486233930405408364387750766139599074133107431120334039957442834224976646759093485091013627627841426304162263898648797141849645631819548076721083050599780169533462281087743942509224723914829540162353730752891193222463365454166368931619948921179737744971494180306552289954210731027123845796598442840114838018188125081169611811668235619066147190270395158347224128471611477739587652503769587340128528087161460092682633954480505629667268349278458366579827234260791599427742922679481017319194417721982819247115924023892490129681269691611915516920239100554444015977395267416448022965699660999100705296318957781568561344002212236167564246589563950387656380936470835154091911765834148210257612010490401589426065563519849469387366414581482233355546750685381183513278177853650919523735708784101530659405755828497175817376341946432441967230980449548553081053900892270046075257591408589414108732970049333670144614747270084555536280147661024422569818005056389143786800284860495661387040624481328996845856688942474132111613622884146618906500963871069730497203537395704584752071520901166038350802972928793657043494881903859086428504464923857794562950038954518986677437516355213325112679333792169527768110511797897133728590462732004722490830233668162300684081619954430245888847672257928403178323190565475598710654175895710732936881816692542529206823639933435817312848398404473026701941788624827972676491958988069187093352086133515441825696764404752438034231650715480322945234689933963875691591990768402120086741227002013898514626547903466772399554655617227507472393578233529724440179998696651992290057391850426238111492478035000886023705551387695915009675258623685677471082052840191798232818973370292556670647951223892615694808542403931517681985013780286163620860981286381146864807293211267274283546227009861619746151435452303733489369286792670543155257693176856819470007110496535283529097834168457387573023121736075730429956067966509561844868912634520697936263520583922224901793156089302455684062465542461445720168308754414885575445512982002740091268355266467578730263776296992937869893954546035180250717138962089399978345621027212748153011858785908602144286822506534334170738089581159990223721385093412463972352781977583389947868860889338731908700702330204556243559873153708361266811103364107099200671024578112902162166512520586881418345062736684269326803669204369758284076052175861291597119971943090810545757815833935194772833492956398825551499992065221584606451449420220979872854452897088902654862975566587744868912494938728684627823452374851291430996002038069504191346853986907482972718623737254251481452171738775871152241572367640914688053397557151623668715369092388318090100581055706003532447413861368654054634417812121556546974941224045447496058579358902989071486189259857265110538466128663971780346866171763503446966164818426545005896238992992434260618693634498413614556542351869475824486394619570449023400870521115273271305267922394197377154697849251885589106599677315086526514386693674236191622373481948432162989664893637161457892961331399937081049810859107867938294371122204928472329018190099644871907567221527282500225494420993601460829000439664723508080495633385359267547966418149695756203770152760720883968946517098825663517515406637432243814132216191378026007838041400342013694652199600327834777931488852485848725020490971266172909536463892114114344032456136625749589124856952048710532589803268075887800718695730170922030700410802646738776189172628377227559569840658635682676786636258107854769831048995527936911110264630859267460721587619361928923743171801218860441946894629966526876848932389310576328544092546113084757449343728624783066393591565608513288912327111507946363602412436158813953343214095576444179199228748265212950113433470584072713342872264707811287593281306007911614903662314757286507082194901722063255096565076059966212581695207676101763202722959017230174062774910542746444176089185221337086005601781740206251521716975828586768901295330555021318597114725969109637317650153815037389148382475672403411854176956172625570311728598870044263474391932620601405308297726528979123391773520630738457430209777098832460165499488765460818674663861740271833655000964788951731304432201915969296346556799469013903098582452417639028119550704498671584530564652245482204810386379728512008509099246778922076899991641085240817744655760290200820752578822446102547535205180719522479833144733900210868928140833366834546239506840656103832143121249620100706180823093286883708610759392110810935089406207824210174246317462736062352623548870471098281154041290627117095099565841351871337483877522852645835126344886150633231492128497090414237090007027993847322052538373398832377924160066742826494360740006447525633517717401360437567516212787358892778026874961129316178013511457024877060369700501045830856075126428655700342796205929828494050350555175673288185547100640141875704261518453428566812645896063977589326237692069817784490893166706045610873901046896475474584544192221631413049990223085565333916985513072720714741980796442079465165557142408798431718345181624746286794776973344916230751415294441785793103250085576964356437597222566726416158914676018919734925251344310036959056300360640066907354495263483507842514867626721223941532932428118133622971843849965295860917585647938943583381747509781852253742442913743191476197708751870333866585710012739585066652039011021826180481348211639500081226881499514671917033947547007050057638138881299285179000512418106093474088628788397665274490768909907522781250551286724690691183925919558099528235442620719347467952382728830605710693499702885445642015440439298153683603940641263620249821431363192936526174039983361183806313313117418219838627747971225914578768837684056425836717942316006638178967546474081478146122197081567495313537554628501120915182089942166402374653611772697784913203106159090636280343328266345471431591150143903791528598139007817450291415270513850690579597954656529311292480113177380192752541653192007716151246370107192615968126594765277008553216431719064529694732074127010352606656979549775018053882449785361346148705276843747941403941624146379983240089243625200023737702428068281622978712396231983353398627272073591714481954607414426797037105861869409352568343241635663701319953234031503141012240509711158710224585024150206526116765228278385393128758252207336502628389842828818103578852161004364781055212474819484573689240508834067279936721716114161680129569961974054111366734376501403487674715955033726138445013894716110648558257170090824625696845587914909361303999834335819957296942577491924595166063360921921122669359690827775751832543949810327053896845810648468620311661527168869072872980024859759248584647094284126128753760073495509593788890623520527446195153741755562813286331953075875918935148411847358572888099573888328896748693100500926979264970201623401516522005429312904264987174717920167882902775817610666684768597039174581077294416852584155148869506473933389437419479829057597126772161653547761277477066920218688690774472192289600681815080267658221502002684517079015964001504115608247739485365602836992426650367449896982378632413368011134698156288881479449337726455751658175919342838636960616951009078689058928372181917338607822779812130016052000286384379627942844467600394019210813160340451802183302558448077678811097894353057735210946016800801121224693371132293101452922016618057960245291791311869775035464075756961537151500751674516036557898289099932087806892139692256245079870962997901396478547925971368525972097439326860270221957914349450628168329620396209050030928314485522883019487691070641950020050699238051597712580408039556122091587486722102848163250958632839499130400492144696457229949690350996352285485626949041394252217743127386953662035010797475078384881638188277887406030786828977301067037790036108385720857555301527151842481730064708215931075874129243934903315473279461287931496170061805197130459690823726756356381921680585982655480407654119483145103764951407576548314064084848324186895537414396970442431535555118647966170377734361209524740912081080990791384957499601252730580199063472817964346782665883533923423904563295401822738740380792026211304053234022546846608432048565040958067109611306210133383453435521348404745287535465920105409859205367451783209949284087911900904749131057128715182756651865807459438028080697953177744922811945705052002151429482707971523667642918904547954971177126878429547796252400426087329254338584235025261726695333633938360781879195155767488596092536043874756693367202453397177171033399101922764152471422775282396537363569707609082261355925259766731425995436975231164096174695690190541775108686492083390933280723776408110913723478704039764690880712787538214102174598248169272684159390821201292853354832542229650477099030797295867027804674137888478832175181409265337787802753645283378713572164414611615906922121124642802241951327871417338776050891288617859485175041729089334859651887774268392713649465989859131906702135064004652001530413952831549393006603023223073358167919784800215150947627064452059249721467211855407506900800019600810935965510503985392032555144287417346165907454918746215975986630459149525627733091941912181809618807321472499420757602357414018536270436210754049409561523099329166723246089818316376761061422215417100871784974769794638876177384470386337683148774219341839980431501953966916578589525096129864913563598780155104279860428206655648062296919807972330770864289227814142116067533045942535374964064740647848281356786920484088260136811861693619152526460204479263612186030552530401076815667634563540887055916009139302597182630787440193009558360588388945218980623201146804680786660439798421276206882715223206646800049057065563326568082750487742311430200906273975180422663106072259599006659900308239641869307852981604406705633061596023389115894731021864500897908468000719639884508708195403032280488205211881101425243412231651331850425852242984982234543151354487137630568830926301220182806312843096573068872112165655917796819385267354245869942401306879903844956659315301377802268691895152971035410800471756370035392433286523692579041549304542475394496692565066009352199806934758501239898267899567717662491774566224998465236119607670947402071115279089043767810649306441172008687051190693534198580674898036513815017156536279383789502578025836703367619900307198251634940963475136649517318902317842067125142270746659732683670605056129146785764406506810406550675657978770909523011952211403271528833411564132651236470532247315551969277285582498860640655930288020810864449345412531034296114899783339497550983641803492935063545371408443879555426879052959750187144201492001073396432781393842477889943543648351297321169603397584169942455408950429236391312737453001437511354020141600169144162352034332863374844965440669235312986571948750425251294160488310002419014813227633890244644154985650125872928122003713690550510574320036285189262598022438071029571071314426237706166310907243743241467743140066596353797612926702471345345441502144571129147978986012234592195260137612794721521713488473219379538328839672141162850742382802202438122713207290594303671185147797955117380676180448391593820376645482056670621313978492182109733955317165377590552497147370907871177311046924319634783942218633337834854573634702336592420140180786351561333959301941208124266228056291367980038165813383906908549092633286263631625884392308325224647290045171606003341899535347651227068114140110507506546531500407125649446192234680608502294636756046267120312083953819174899100867582099614875847536053294173817610330054663741438038635839462839048658290207746287625691359278058353608319920849262416144311045283287237819339491649843205355295835210190999079370339643912984663567183998835969791152405832808111681391395069412452405020446448896142806770427357990822561721980038204209031183589631966706671811483386722511067139006018544948332576901303263588851412355692526249795623666019105601634521443956369411650235122549767572044052325706637994839812504988584990105773342655295566182808852644361826884465341819904706688906461706914611606745575109191583792086280218848497221025935397280578444351804275718433955805703436832991572134699650448421221650136061269747838910740964153389218778697114009639767507098854447050952665082087850315657085690174923208731660505006233985329379944958876728502347368446522141915888957830463277992693034021244843596316014872750744334715334739745512909533488882329196552279492224886587435225440085640827579659816752797618314430135592209119702047310236190721935808174359081022241159443784672004386059721474027358170233681296439065043219888548327709912287844850636489860217987487684256859376191962406325621330152215706980190820049980157214149341589226854259487410787524392004394174678772652426257401307043984479481603846724776182073831231615475886888999191860015246109293541933744998167610015930149444653456642583964111190539339968171311910060471385072887215890395634843767919765358823285026055513576298575287288222940712005792200822874846939568551734696757515627191524444284310991034061913103099303546721628022050115339741808358884700900341545220984262355271873094270976953094929230715547223264906100246845466250542459122035421046617536327665386391924708417551743422007795130928910869567549958318834284563776447886303210519338539066151536662661935858992098109302861368730781936623077336984639261452560400129297930052144782427429084361873556838300450139104281408247699151761648961083549129311236151802068926839692445565661383284149898520428318912923951941011871082549412199773070248710173776886198412569340228181375686843692212961593182448556851133501007289932417232501510108428689704996882016576714257654853594019772588931358716100918747766273096781787108554012322136813188678877852391166827662237346929477535676967996194840214579228686853262755727713644407551571309204678296117039612000495482168406275125286574384856541389761080347154165426433037973572434031981756480430414421714573860090314309741696538562671778304735596503107096586296657741353305417925700302619026055223430543024999276092641393587205556140360011856595222869399610162599962603964632447819450537656254456674941718177936329574693102451265228984384662086164815624319465724809071403149053881326306373113924141101569870993531120009527588875828849683292902819353683463569396466930553751629750705766888781855629028832359908085141347797299305553466185261548078836186000298699033049693232137359422578196550489274264685675980110988791608013247042134464121336587429302797769318381902398503929136801252670908536751678621228282685809092288919790678654423360016550449435790712794604022657669483701837916913437288026066109908177011087426966034409674989960046051515589127366129592060804936939393293375305482289977598549593806222828214984831082635677031543951382371548400429843941982702261346489540370300720165121894177094001547972156428213175396599443279947903156027403339276294565325201567198675566553465914346128921364920864327329755670931903841145072093015013261569848962254071788910692545999302653872988822825257398770861313139422396203054400531238110327101391676880379746264934565602353844801897541685570565217275174631449034834717245335640194806337673966694120973493354153647220272674801487489431071177801984041530853730470004378218714544321273159052637168146997187733074227519185831398203563175262912889774460191365676598853500549352041478365572083109299430554127437168688260294726339163665331266290150155993937943648944464897931530624124420621066633214711733015744673069049226151816673422942901514728373731032041163490913528142650117904105866237202915765019174803230796380424864516099830617476204789861629794706817828665790638241336827314782531637060659744121244092005173723047001452028199048900335469532989181809065132736596994450728072404835670513644752285695081630304421385394357434408883639883238352904105084019104445674786023338580627174266896704544370050273457093062535403024677929648344790547754005891570096323353314311221134117748896943536326375455679057859195989564724485488170920362124131918522639578897703803065918456141628638097149959191330627588153816337935994150671793022187581468766383992398773077771176818517330440485242595585948456045607674801716304841888780714529906704913869515528986845601650383210311230542588134381825735617745189838934822824734381269819836798379793877745089366717309141322098888938512518852273267487635659814810200588002027172986853844415705785064640919890877205257819177991894721095270247349049042803920620299388021222045856314111354911881702814566464872038497325066763350592564725147354451722306350256385920033860861972025495496537410104395216660259202812496704722080783047108792836538267547388352718044200137657362288084648798782384796886629464030377439877560168047321439945344274200658707768990915992162195071782825288369977904368683832480454625401232872075881089937686057678219220178191054890487807990907246081535635284579148029848484843786463685130031600553197002973603824255333004845544051334564273305256702412436450833829432367147715758331641384558575437010686646872294074558742233749829820829722190495919607541561523164670951875373993389910204624511841966514377159575600420130520344242228809169630810186905201852445353627553962617543580009805439868216456300707540435147558792584215249869297512943763715887389903652528176530864099626693528997936080053866523036823328897007475075439824999664277189164323786316787597428327730742090768441811878708242060137206884157894727281743062755408850254670598167576597142205717432435802323204809388333446609732508087781853894988118710066361869939983531733571640709323793550610081191211487733855501902396892553338410378817166682899491288686780915203157531092968630764428527569674089281113497490726375462032634880569729305998610952919115927280461720514179732018733781065042875944021574096653078874068510475902923962738888885906232903270334980552010193063415720329487116518018483854501453104011773377023235468032592835824086670712493778310780427873272242864455781839544350001082251914926428433119410859537701779121198367029985095230901515495866949335851468792044819637732360561124448683051034217354390432068473233501086856760718651577251639837254011087149769787683427333766254581520047993925149996692145161073351973517826162089102588019577969117302920139049451997544167095649995439154801253405065672015166151833084735126579817179440850302021581053577209809335932976260228053217339225487788095093716979005742196500148482876917539446268318640274099910959795632831388221384102283230703926869623402034625803044041970387234340522474601951466609774173375542242802351993749264978346404102135222132530113871402866746098329210890825315280166850934338383906492524626424993482166016213891757288969865456434741480434745317359608447642189129360569602102369845928478701555212310623605453247702701035467342999382199699980069028996387825134185274872801070975775586516301420560696997461859785873622174798407520120601342977608958522891140851668514216117974404545210122562396462740144145148057172995256650737203476584504420762808599882440275428714998296960945492461662980209790984842782375069184030814673752365131564459693359936570624406590334390019941749279375786189451950380293122472277657089355889414261254577829215949698728942372873108303337860406106457255407202763486542987689826852348201203104785387969595169632119272194325408353557321145199487075941591870667938493874890623549674689115058211018016745178242187246234695127973922441882586129407192893285411755714802125580681449550020759975600365068181137700795334596730000061200831847772765323196480634665949026641693126326546756578168578506694568241266639807661526951269281590237074866761771522042407555114532891444197549589679679054589203984732643260350738728425574266813214997494661002370434472348109713465958503064943980927840326264039113233033964559493888796537726467324002022521194901557931089034886586191472272870328851718892025661946314081957455211662378023396841194466472885495488719503092053340611163246339038393558496174385575453237696696201886678317243939885166549408166971325363312211381611566177031357644983437622617744709721647531914777494810809498017802372410173857021478803101496866410527168680209537203773244037501310606966233769039488766285455374730415114943902323980699851915544663918129079094192235964953269598047652851727390949574870001854668924167737604825198819875201713056306284422658509089370622725688903737699605991075935494263117555345376482304754001605993636451890842020230742286317661340688179974045763419738804172493441443271207167226916322848675975143427772279140538221520018708117307929411386016958840913540851957249779640433869304650228407064726061053329545694340582408364276292979391986526689722455995220244083358641374835758517006893177017821012680077712699300904546255796990030764080462735817854912326956029070380013421982582239426223744245973101202873571608219181623389738011123318940007939072583763206173262451612155836971786987220522488016252523917714329001457201611372708241482145024208495498934684929783875060444903980319195939607449891863179806290969739079035180656710817655260189564049831001174266144267543332249426306380734682604322295189061498198573152688616126666831702445275748529667751199876228739045644751678804582510041968381023208840240268844364085533951959628576142657241090340284589085166362286802383111886444997879441270413149573987838556529388291583727608000286114187164373213254702087830651816251860099357143230807547086094834410726893015844816680253854129127154208315090915946034860467959266364374677591283135538625788453788870443219133295526032598831736373469868712403881374190551935666474961513405487083183068787328482053451375565333134600267761636773169057442503857311205923864301681590758549413206346470158514905132286796244854127208768494394526259919813368642357029934946783298118676974094714952586724979799949541571164974030569184498802433809465612391090779912347243861566511414031331478288466670212491016612704033455676998831917961059741193162728987553444244163628072737158390858987436730139018475176834656941018877305017093588415724284629683497396718805079417543769276679181052156136617298238881572407056105554934213150008251807123179413091668592811527207031511890599699949307363768043515300724455263007667084985058599052502216796212493922528701794647708229995372594215205137297652106226729989523044818479914278891814087351250247022885178416942592266983823750750603909360757881483009002347310108559964402773819087081687140086832415908721537510762109264014704856595425156758864697214976627072662367933756612047253055906123237023649178739538903412365259519075619991308125616143048348207612583858587697142612678971301501779169824302296859075536430314847655338898310775949459038663425077315278147142516717582460320986064969315646259636484156821994981466968986083019699429630751139265827732296548892923033215887301786935495420252432523191131309092690264531353528765167898030663416758797016982879065375801418283137799939126554685498471634837444044373401329617851878898780951341973586203755039673761390736289088328867254938742415310377419852261032102571995615589351887542333972628732848691466465223377549485419069654415127551982794401553830286319431417939326333355745760558706314388969250225605648412372133006053647292164378893172265013576744704652067448166146928156851270033138721474002484292284783262898752672312481685625138891485574703877539536406545334602448527616560214010115662757515635560423306494020914745875511069735893178054009029897964981247056531680611373357270658774964707613855945573437207959341721158128291003672535966491574449469396060809285721879008853692121396062636234851826545877726213222019650236925285480309710885605653597428954997891930036029496555342510178264001425859994470660340648267617076123421849945064873822350081602851269847918678180798916048945162927463137503157320316965956127216862422124710982939976502951922426680900851576204316410649403876869285811352308943369811391572711684785466323561922897943180470652634718597823527671050499588422675688873542962411087205651112903330400676785284836918641753103454621864439829310353574740702278104067410655181575415082716262506792605109136785340782241590844324946676127314594223782928663699516948993136813445009367633807504460524048728924462371869632481969298277758251266550530155863668816391739008171313223511623241952749548706859644154835090752254051044853182908249860056789393891818063660316111504695375009906758922086353659549527112205875241762861926320496327152783750273216571068701929808509905395210048240632131130780593610082857927747429251973028303537423863995113194283280161735838658614531701096839386644142757094369429216146425577023164176334313939357358041261421539291964206424817379334848263076884731138424957467593787552839511455991564205154130078727870588856446583258121107576604586204569034596572570842028637693670214428457885350278811601398430253925636553863097983816990321547355190162468391068036531661949555963696318926345931520259547808966951126073165349019599245952517954354565806170243880817279513681386101376863688875052785670860242639757803957317071370307857289784622120639805436373383636778966821792291853392280540203808713828117513192465502294412509208958379124188746944034156015038573219994212167467980826972169741551332143156039578958801059529223887584811132748109668901538750137049637539084092395893804917205766361013570238006191759402028837660390591003831058653413918212064349048354020952028715076937758475653312951653780192020889349211142394510119766211960148517156687357073323022968019322830540057379627930026662272222113609284180672708262005767758172197034297159257800879705054962291081028171568406246988664840017275673329392939580137137736937029050882336718790212148760597628935210002268085512679364068993876822237810437532907285883363524945062833737492307091203408777030254451218421323771966505343098935100780074917115077440725987481535819261499788391822636049667639688901864240452848882641778160222929087929938293974564048303436653479457869830384610644554845603640920675987725972747590932629260363290702035526390763130783575181686742300273163702757744715902463367841865167388840087096612649916272773710516158405527899672713747234216688847368746836286712002855856596364520488574934237586759824798616303919977034331740562917199752909556443025409182300036283405872293070029343559616555764914245013381958234325117720411100019263340461075426697660127739935146718384165373374453819872791012015519030958208568061799857394671124414399273767440970083209394984676989875929831205619541648246529734254338503246718883562229735430306697448650998013359142567859702034631022518511770425972551768363773706045775657704074293311513943712409246362995898897029307170973916419646644969635247450001705441198941208782170551072181977069466811428580334710890535300762537730957941123891206716743682055655538909205221176419745223089989498347212070204069063716472954196580483502269025121772573856041989953093788568339064791071176419562097896686524938251171445782973466467167339462767278945509734110558012110843370155787430468015071191589397927033596114482994257868658415976561499176525296908019464585909378866321589643365275766170527004758703993197552474008096046958977985771485642233668395774932129688241502251172612293648179033816174540352714905497199510462672406931240223413329333180725491473342760636580483982554958658189383318841929787009820480551817798312720571743540128084037778902787664906259126388627391564883191498809139945869889032166607831016252575724440950965513030451586088987035202562221601167569194587055032527190609120258670416190389309147971584106715226332867746759195339290189263690112707356896305395560336370161527577500491219688432129948389028339240783628551361517299130883197716793053584220335305491450409087096046247310433441180796759236833453212958782972257821443919387541254964464907734094796084978925198441784547599488420287244766695631274702101610725870812630364393458217160557732041501696656639112781454360797025651673321589800175325382871928560026070847260604316774582787729431805731860008992060799106135789912106659323030231758013225423658993700479576508802374971978758234051355501974246296190783696850815319244467212454795891476447852656411302109625737252201374669235530370038108675307396442602639440780643450347056843470970435432578092539800274399051304717522343581529118980163845747760260878072014479447370210709819713497591831179086318937990358862093068284151027676489604337034638957424373208279194219769552275112377054135686033743911982232394439705941023625146542848758728609864383849090695263346853897201644819254416807913996965449665144819432445984614905494313586059031027085457377197933128243117481289631252460649652789270272753731864500982964680379086232153264582390340119613542952680516644758807767743856541615706201729491157676809570744458701142532315316354144946090603613753446142449842284041431408244683374659618827762093580545176316028702085013275201898195942153262735533270829756679520511725998595976202464533210812779987849507845791925514539544847764038197224104428483514725918786584893953524681983342544935436762548577335915028080645461692650405314799009443363739935591953358797466234713744720015365790947156122683407385700546565317335768936914888344727123549224070837989180850071508569148873091736089949418279981206147381585879113990389172590955000966026315247974204021385526556083746183595463096810260097458858418241607497145589935403984931689869234636893042744454635570658833914483833358620264990344865598069855614896463842656587765197526729686319133805855678485450495128634147713819112480254142266082746063000894050862918259498780646942026695719203864842177598314235717571125413530894749094185481532643786094637283466857517906913284908975163615738350658533450459451831360604309898480041803022906133539058959227971383793671872227659405641639085794620484353233027493044881953476194042212384450306801870335183093051352227433043556258366322218662521493601314506679806004991641020743120727305286933016073465617886233203794879226194321855641973697587150027989664653262067446698143023730866852789038910512960779921474586815270426714820512047306202655279518296007219576789151420999230645684407187386802350650922752773133484650051221011852047533256531349135693387286585430093223945047228748895088101403101525900671363915881098101383704659429079448329432585105224344776023208505645986306012612641957696511938860808646668884876870902967850984173991589670892652739339213021974815583188231532849253606850172488580946914559107850343883945889624934904255644571138164684810022454248761971128306617527046354145432569029598978766294880076033613005379195265862537277884940846109928665009831391688539592606808837291172341312114130478170210081185999820465014508845724228719676923871421072494956441304350374853886369642713134500592267778447732346851633128338898426485459856745237687130114074103287146681466455621189234730985520827057167706128823714726512469518225559030667899044255282120892027514302209718654500283569772983913426192120683279245845087661946616870801342731146245910698532010145592619206874196233833199748490228035931997960885002567676692978386864264964740665097974236067722310542272945401262060913958080081403488876459236678382688649191098960751392119052303104941834530815339347796936406909846571187561234568481414016547530211178321185081236964449723656275954360277914406234457504167049028333873180181863351403552449038431451862112515216989535370974907606877602554939905655872524314584202403672646061661016130588054535382191339553257645109042543801194296520690803624463107673972087708104964184753483035539467938714085920015770643991032551675900659736922916438504336329714973825214882741423625943138624827839967076283812187135128249836097643827195888665474480116701795080534749119855829749417772143468439250427582752126446659522762476969972127036001210284538605024719366027743365502597390733719625467468314488692560853082200162811222337531051270328802007351467136545511778438854816193526935560982876076798571852153000109636456925468307259832736452443232231543670365927457390075712563545454902985541444232878609067907692325327765435070286108960127884762115901207282649301501395715627689414032687094064965643824283327504096740016135880138339310688504187955090646143615031795437093728673792251816943766620999250867621178415578826384301073046298577047077729666284020788408416697697526832572026266448590235662922115371868874876799385047419843047250869464141816805014652837984009096688109866183295607136081654625568825171491363952719894577459832755294606910587670944358427718197896065100333288197741050500199560575153199933482141654172446652273061888445500840981472439440452508162883686854325429055257437102579694730323969209856678255511201943014144608814646714113868894604385398147153104495979963238460209271133835652792683154934528369791452889992203311825887368692121862312876749263558119576361470607621861150731574802738457709272837895799355812505432023242360641828950050764749761023371596424008643139700893718974275137954891687211851279228570834747059453136014776597984182475462011159085266406840763909032052489526586386875464767538103023129134477130872876128299888243666516828390770004149337717570662827977282424519116824130092698950416138112115306208101013974719593365030498137183234638292920697441715044204773419977316133751533547488274614032112111952272281129626666568330247557964565625474666412058538197904106554004898144173648404920820485519724787159372324460535089005870239446817668706210690521135335843252131045953939083910854287034360375309870262003720937186145539484812093219066659166174510777333715558603475289067155312705456247259281918828495154064207741673507205043846142451627183455349297683291872176390871666881356713793694340149812160490955749013249080495038283881500661874820457934453659176551691783476876482481324363199904882042565033929489464093681382466325425763246494608967643832194182176071855061140634733916563836442130553938173024281822100300869821732582541294083703590169020669873533963055365998312451094605964207344839707899119145493292269065921702576700919469178959784509826571111660442310350151611924143739668818893849516828595842486340622012562737199976072604990472933733621014711735178325629267319758142941684336882504561024547138431487940874808351448076040067907303087561700786515542359699590709116476378813044356529152509460832971595148905810631520301582546920038487751439044884399737501112997919310011537303582044545845467438491293409923059793674077489629337050529665913533676101189534897243826192404187297538800961912453430383578325298583840269654318496626648895834008436038615929287743369780368271238428824850080122926136799881339041361001288409356828885182809506848752232376481890519536227585183498141643660643873210220132684765366213102162744797158756754989902262779085571817011216739227491593936678240053892559587904315099368857388579939854696241833862820530149938297569365573605845218491489898092078062371175692434965239987041641506519680625595289745483417753386564539803111623090489078481751466336673322929881899700931391767894606731215303345827254868497353510174418444760737678958833170137480142068342502592579585492583888503198909956475476023714341055704067094299812966140314170939327936168845379368583985619120071012075742569556291148084162297693686041544934037054387691527025057788298032384043370354471012064579899637250589140567277577813757128312562934479952101667100565979288513045848161892728593019771040218222381085257220654355575063794637604765969510623892726820552911632371541589760537663646684003914570297906799713125360334910162319017391063865249564599830967164614873146265823111660838806589579971811592080395694333249976677825989630992327388222945674254503632537908032327042400083786832935811754931030661889947549502747084484129360540434260596459080719441110141839825360004020217431741016888623131427044920956204519297097482024543789528598754629720264046056767283366213135378117593200322650855858558410659779781345275018643309823499771092552655925916266057198034110340466375811089186969805668639478716932197180927366737654565926945047494942829129572694479569487354635555420483845288748248541208063077356050093508030349321430480581243158840905175670828666127211121672073672740209850216952507808964982553114132211417656106164125633859269827903969285744990092279097318020353081520168684928732583337900366206539482814580470908043012885891581714341402281715308200014489442220068107465713035611941413256014047457257197279465412276659132583092537610652814199808053403232342492971939638008603098531913075405632773213012741406561928353943268073456343277924436707847702816173612078447516762697508096107464974220642822161734432187293416480327947718152654322746837022027005970330143666472154058673216047930528778950158495804505556284456164114919613109203117212214956507329760891311814335868767884479909015585845389731367833752777750251729225336601413302465828107934923068618434593300004661077750908449377819487224039677932573715261238715731343906578746470814272317838224298260453879710243290393478007538321010234528733378106946307472162775433373272630149897657635176621567360461130692859821159515748538324022603069376491456070847425139948796350869204180072118004621956890821211636543636917728273893765973384896535275801862078982362291857337534282832415726774043824829756026007576301029666803934559740938111279776440933579518307094998462612370378763836192823040748153946085907955784090332670913394130560045950258829594430586653689924219262053957864353777663477868090059730307579255633488905513345316573882078391990888607795552818286800113425900323837427878496580130819751899370165399073413052251275769500696799506140520409036520210353072811337675430416029931770553266694319538697855612240071017816816105177911635538137268224789208940720950963751414828653913017225913816802315836620085107057409365173391332749743491728491443725780378622448591504592095997199371880819299489763576850804898031518106849957009358322930658368670409570085405286702661249854614143023451087092593351913355404042193760537531241853086546607163329274401052532507037189265905964552104978946490421431687935385644536742846914045319593213908492746532016128983174480337587980306245570043702305043910441948962303238600848857869785065721325791551210608515294523099319691507157755883701933670191836366762547604522336744390285246576251466206300760956690107169907764031581197888716774170625855764750122481256068734904308691398885882471037530524009959692571871986331917935526209913691513920078066606676836173664586325398714465278998772093208390832485406611851370599064299494768122384078785287086833567235858723734282791131279484163757611276356154061829514826975375093637161987162719111690345784481052809492082169668605975445548819188180241858195019411538076663697728131519284472412827347320561186813389840905981086490675242420525427411305089719715353933171268340950533671247818913734479524474095041631414715733068690555022855432342884106909345297522724645472223016537010923104780891584964874303007054898101894606804823418081569572332999670614022730508424360710394336195175896442202305047978597367178914388919989886497526736648406277480830443097275750112009890809000619420980684140438220542805269187834926881760244283169602273002608277871683020620456793330219348264291231266472942282929432508522727630440208941156605399292282575710766191873284613108611567483034403960717894434658536905480010014923522593173072952771050644362966361665769568572241139440463607193749879128054347659110582669545179144825664273902715975574621850168840396379669708572199047896012898723938089197221399857610341164719934790262558468340012193641848038745270137326693838101398252155445653070220786274537937777192468895552821192216622595609525190736031856963620553277908220114584783133217572293723623142476069948602213257068875602756998642102153159667305598690765026675628707355692049917258138965034345392635007902292252901816303989914617274197005791944615549586029994003253629317068597750222040722806788138388944813645339028496108068460585790244765604883464825037546287921839772737603422167004411616544157540749674932684035421837624537424929793310529134662329215838792176833730495579078531614093355674075578526220044628263354252000981970098324409159036987420710998059583770539815967957112420386047161467671275168728193792659379534047008078206138252537846107242101452900568385565114624904960397390396460566479134017875743269307806931894348557871051445433168077433206057074444356264304598560278267482476690887465918432613851244860169583690150933344369561980989253296015466578101029796405807050248125473584471247593735518983995922750874427854929706911759943412825294972048924853541380973663662659943778852629323177240416147693536549650693612626706141139667732349524497439327478601119909803183688025345582819856984714515494469289935861624375178932464035952702309274919577338448497963728636769794611927877743253220274788623247457626208193611164093951683970388973554564034504596322267537253025197657264332030410088595149770651936860515931863382657769236540934654691903960591703160481333921460462459557355640081838941383980522197391871848664059657304831636461466257713057015484439460935968332548302529497620618735094604642937829207629200150657403239120542062142355937135949782759998667586033201408621999551807300525296824374044178342368996411571705649172226770941916945790178822943996119100544719012528343642485185617208404643864264775825398358250394033011057864364770718095682194551439246615025531684291629038859326927489784714512959319139301430530410259559053678728740754657796872211991801276113296509922968250920691994178773037141454748703445387994730254000823561747859422702403969089582932305148694654051400979467482301718571114418140432181529239474054404269145858242882056284836386555078123696165772574350296493175338546448437344058815959867952299132011033834676412133816530161907407053703660921895860227765812740204568374365618088389123939371109866188801619308198517312557985797295371406281090974309107085013769346282126712060060011690675852031006190914878791076882391972766047571416600366389291714535253477093140620586071455061627442340608773400657816808006950186452866132469371695881932164032205648453989903351380571148860123728918045909468149775746613825490558830743537378894416127855022995109064548160926558738067772232318162013236595816717691647873235599997642144876244805149938794132680592924280986922758548063260817854326660109896904856465522935583640540866255412689228462493499995498434099993368105373563874449396644246503633994200340217800148939421359320710300224627700473190454379955478374459181882558553047779979349975979713961892528980209827711728992050865629774474093198610886575240897291201747840519129530125769993832557092633854610313813681746474173911638034547317006042095132790303070972788460679474636785591879246827535902165123361275460815129456536357313184390638198113024236236192096402727827875110978838257457689990824438434676832829394987718381160018248335109221516308726085378660015588560639287513483535462351146644051695574026937164506651247443277437216750944012148928392950296210822575308880582749169554936630058811307906805223002643743451604554746964434986793010115566364967601138861692487203836175717675555107339018510667419598877753914585794388358954896892763074326672160255501809735148585570227515946405498027325799714019960761410348435844689548385746089589076838365743283454166001135817640109464413906002583873459881677575521447169548959297293777577893553415259425663002535894259454343853252881900274635036225093156415765919943894389469663528290081899684406845790875626438835939196244562724340895078787462941579290359481876760589580439071773892923280234430311799447611321560266928039860063309279028380052984005826109561650598507845109849841476044717230671705788417444393402451640884840537374549658021057303268221113257351234965017237754181606089680731599028516436008862996580175943775607472211576914236557086638727342200270015679612175607723219322751852120465902790681540287554548735202044198634864124241521171136038375439895177314914605862871307570143801353078599308702492944881279767004914042516829232908773123920071567567809118033090252684277528795980740768921011915174314611794023998876128457791760313246218046943319327095745164608205392875370520886936535508461639865401567941763390428997627308829516822037615656323857038841003117153668268267359056975519824237276712179831374854155719626042766787284346482697715187889945029756359279601025049591793152328917408558980970175584186755318868041568239730814351202846762481735333455771309134771685434324161307891632338512826202175487287432574703756014964240227784753406508698865861784970807958541325872627142787661943617393211259465015814305192833401749649574755715761223227168712111544261560049618539511174999238886593653678273984438654986753149435170386288408219035189720840226271226782065993002075346363709513287473186744802787175889496396479569340655501454095424713693307609727123933085821979029313351836400155508581404986488188138769368499141624011589925821572916434809461495804379293491343574664861854360846076565574175842727411803433423714104465768960337833211011331480341565344995822636037855896276209520468320201796386456123630498938188806224402801223833835105841053773511417900365113069609416325807364744904476359549354737603008171991212129078963022121154748296817005864970025681750606495867934900798861561846503904382305022981628120950920274010768220451217055782357731992732592330728275948264007658603880105381659765361646870125411835698558311256439558749300862433656797777826673027743664265697410708100544700929125123428202555791097502341567446478294281177984003775010356404704381974660181935869607446089615050740260784230434970571881320701712348948370139826061185729269905466593243784512081825232219344195398339527567874089716411505448730313087052707286851617883533758363571814964709141886304501918914789043433077830020249241811964046157470749134665351161517583300427152151997442418498393715388609380043120681269017451307039182891962438655381865662030760669006799279919173408758445601060283922249690066519734023685132753245560731677639913531914075702301556280748728848479179230048679622405023080092802502253535199384665039971235791798341619891563659451084384187031735930262233977772180467224041397519044180500884993422502844697415314921555583798359328517811800861508877508794510075380912546112636644209078207675815411530737592843862819426932234273621671728804179541759914028239909369922712645572164550879773560000867766625646578258792701056981182224168297354903163423692879699406613869300378882075093539828066817913489200900801214308576565388353066597036213435967128988268185615979768076657872439659287783114061866857126289247059424552679990328162037549966752448740876977749013123244285439091678381161388398043894065615252179699827047253296900756216798706598753905737752493176290434280805969569232189403307792197703812833804328231439559785140535586405615976450653748713993529883791376800406171708327520225450556116814014862680349775533838679949935835556842830436765407676868481061349809004761730883885770668096040454646451150939825357333195251157731233573372354341221562893131912608988528765573442588361815015154229215932791784987365709658842956348275774314661827637924780506988623583675551322822374713371326675220298724972277159702413311241905569538608960763210925463510324019790824266405903292803945012754343907448751344551593362898376381920152112683171729478339678771178145476139801962436940847686196089814873906496255493973616653805626160271606964994774719577481980018498438345656593044929012661973867921681663433012212546886299723956927106342056515384737995588509529279936446084064312381249384589805418081224918880100007986417330967262952186392413820785940135846553173621208364886709380407373818393302904969882112663662681167715644435333434605017685630319776649390551204883343682562349504200978555772337961032524067967628814014575665075812358310742171396416426424474347028743119185912698261531764659012644237649974091156362820547098408653061396877373922118202930107810249770232083340945949796400441869886513100718161555842478573027793583085056450651877771111534391791761593481227199729842967026585849052400831788359822830009899722052272445387424691721722096490534975072300167919107018606867156231923707849123943453417963799835846351894273997067017815132774842821310106700357977117491879560334785450281447520569049165746814462703267999549448213455330771398639996210772397180295163430122774408696697188727491201234473976134794071388132810668508494830779728120291124958368191489796781347186569278330130711835440232737399000548395575517783139790552667579314460327598255474462369256457158671556572530497308993492194362452955801287280146074794744392522960783068370064910008545473496347823225014006473673449689994454455246429032479893317142656532291458640951384744755916832014770665376711881165576550177769981816076826719221123274552024575407139197769845918856787156237649338793631522949533486724131906705808294243588143216812168322384208289097800666006570841822196036687190818072567215620114887377165800579730880480354497460432549556376824621569067977342859576433354840662208120334103917884258853306936081757551603885876993262554813790789578361375308245805600503938720865885346583901950921019174250442146790495544545682830959726722695764704177180336986263811142566646948677756110871704007832144615035801953567772054496124899330445854417498337024984848441540713131270566503014931116401058247430362663076990134664954632722650764886855799261058786279402330363438923276892015400585067380422108232091650173827611793137467093251091055566377481390640340515376532153446219839961978179389703423300548783596504531171978637763616786153899468525896353542608718666839963922592012602252530872023746149512828481493352832789624907678541238740153687748445226720668800331708619842287439535797366542852204190958766724540779006444161447286745973489093978836835775965560295485265102067610716785446568581050385157260241958981612869129676587346180730446770272185315220707741513535139216395364755127892045872222943754667227576413453298302455241796975555936783152009614380034889582159455300009222399379477160467509338809715121292091880241064717424502292186905325031897284131299783650298044387408469049568977335572668526866858846029769569894982102589471109389825859635163761104277390821839677322005778013161139282520808152895469995411331377831447130519671132990162589193945844115179705314875154229292418129081777491931730453490855459394382556053999869544369918888785733759938335719265973738785542985710886898511918974716452319705824112452794735619891458306631914508798885530176451944712915156221808395219970658786692774678824715248718058494772165878100012217461590290285695585661841886497054944223913530348720461492748655050847804625080600915254666344694296766052281342045567580084252993052841448554745481917209344135953889325604789365492209736785483917515456616838979484631794201939025113966123875367800170604196038401684691141861394754491230501928790940576034143454837754058445219401195773150714465215474019758454192705428202378292836339127354896160854044906597416025117565267790584418731332996648352475059231631209959600921953378232516778280201395250633545466547495321679047454631115607584756833953983927296761417993750714531452654553732072246538736371219317810103911311466630970355420957147288971550525279671232971629450547413377260867242011935523003217327491276134369722499775252347761925873099409991760102739147599613356449800224222180546739917821924551701047751597098749619456983386826280779103143772572619673965352778000764306024107705071652027866860923192340367369201184197312975898781591461449814045116603146359038621745341582196671370879788344390094286645734977669137016878577957091339057270181154207771987340171914514244241763602689288147079037446779955016453152942968409840964145783406653752577990120931692850185860157443293393722654270913766440642851533231532155493416264131508173463707102293387202805798190181529215193883574678922359226856914874857813296726764285860955342207266589454879316734813308609153776108848028894170343691372195406204007708660232629302112293216536948074419007155543047459835018184371544003963325694403404508254215769368546771799699896260037557794279310174264326423316263796320007126180203275468184669951673161180148349110419726939934001166320389987938349526678483435503031330036195371090952406582117553790361605107822882034235775069991765661519647881463362708282205350006826171358296197405425461567056582070890525157457778665646419791618867850363478939413728628130663003459152755451607015332920964736024446325829713997969203591465984977405728727684098727047565935256876898048677482484695166177544470795528241022350316788225096073231304280225041663534422807027888363286590747076560367368717738569788472625642246996777322518877318006929111072288502778838579726669440865337364005306322810063895737955005514387340075966712175790568063534368050525071712001783635409019353009137003814804042026367830141140684197042956573860310753601117233444684492887532236013853627497448986517477585511145377688436005376914111103054716658037792649421059229286551117986248748978612231989496917362571530414907494373516293445193336520334962107622598110546957305281852174921401842278538856542701025270486599789621015887404134285180711421623484819435796667348965182716233133694543538705342476641379734892396899020333401352788422329661512799800572348908544778344755517122840925095993219182207738280716838122671541486736777003096446003901886875541813727268674774944959277776738274267795645552915330911105773684046755977609212057791366980126510037652001915571110119459152235016706604222305826220683043654113099477870229111406529138049875998685738053971018947310884712137679304162403243117790892949377004510193423143094858106975203393549137448743108235232373243208582276586144916437576354090388796702639289613209503842879847635017976068739716048224643846012507070996756952665048211339482564730342302914434195082290479917657131817426451705825026658884749500618376066169146055632673336060037845213955343344183959553267965938662939830395417374207176194100826501028647439138015996663982650448118954737688597722981299104856140135959052816318549038101691105659921067983415824043243682508864398122322207228058438718077084303915397593203878980561629338031249742549454613009961282601645096861887113386283929032432673443362049007194599572459546594436922824500398215090351667611049942748564390895572639802551721640766513623711913439747749688478044479526389447514990121470994092481563006002454473731353055231485019531922482781373989475707143520299699526314626837194709827169628786459207084164330714882089893185894322907304157207673474327114916646253691778779896153718971049183239302090566583593470526617929329499172549396474917922656181319367233387040156349684354430905254455723343444398033049566071878758296623845965197188934342610160245051875804890900351089215494624535139851086268715401018074796338234853120036562253330125081878123017531378817359115151860538493973190556155387412008211530757668292600226258215523893890389565612432698965484884189867867279035496615349440882596745181336536543098380653868194853046785697717783394930949324278856205271978226752307192170898192831654045240297653420546441324755735324072190228878952091368767263875002119548958031874436254677621679885385460811811124291721517640142764700058292112479294974930041435857363716829479981026274672410660353661727888856758034731252426062290609034228331548597525114721403172870712052634451317771568430325400072006874725770253706630547861129850143508332746904760799366696756484500613363956688900199194964700487523877950512177347110866883793999849939816159938798005842230851638174891970673466525621817086339578601747615551625183038289959148918244296428385066579630412846357198909972117480686698101845087039711960494761585185104423984730442024123243513625063899257502657766201792277524960417595199031465013572834012212130710716401856964347428904123001946037875270123648308799299292958462646729777638155388270683490034623733916258201864430851099592610551175866271260790828028085677957008512428890791982151040834500709448382416905694223598650243740826027537113762209881509503527294798632785019566106930410324674472615574674005050208606353926488439929914465895857510186045209096063060540147093427170117436360876975221053216084128850754813968832088210780070896409947068526215452056811328869427657717873262765703853736019354987860438051609541990465005646185836886961870302670137797526722596706109653089719377113549551084683412157751166103769427614300426173595125338568417931797309949590370241978862390159126595348686936307943880003789276446849182229189141354629141968490804988462908066579289581007808798804450965624004366355180088154872978509470588540950631996767188619640550724886269668519867460387793458879662424523198970762645927438293037530901686945336613972917042939533966480163278308904716233122189056982381293261501667517169645608252843959395321916845047537168312037439488315172827109949568338195439023112452739228473572667635055694114153301853820348262794340938095253094532408938047874183469504208375527647632687205999609715939996507703975258732011057914229138237121264859972489231193130035203724414299851630366409798482874215363106311732963482355080514793212463801778232635580829657548959061691509128965969803837297923475731903493629089670341808238809178616986034819502798959645713187998043280294297944645023036827443400628201717727134881118395615487226227813269414386729150074464953992532762811081219657651009264310682563627395178408494981004724469231582807367026182379491503111178855860859146603709755368032605475175270508386675573477284020950902283258432337039612168575561488984879598515977462865860983525830651615742162881021792526703635657946217103630043213339866869373977178299747450078501861957099338097988654047200968061771715899653432746818564556971235218743243680889517092584504917070903985146819258351684937247301225807844578723871087283973523111068527276868697102438196182002990027724857684186581502575072637772527360901375389655406371277142547540494854800938877029635816435779875759277120291189722491218183329101472630298727240644117690294244068093733807891851110536584531462476841959092086431642991395828002312360356523368677421190361695135108325242657969922002973612633986682477449167825811200488758634156119032495122095286760744276382695411654084983550286439768549327395333155758496431624232047846525155657896668022688636347622340758997400182748328618249844904562787742496940549695880192105202668584173269182733840002201402168181700162887736728108694441373161600264049794536184877634245894948727645935975194270927181503958196916798297678346201788085196823158957566730555633895819125439869338316151470038066500267460658872552542620711787883548095579538945919879303525836188562331635098773686251991769931585724816670185632602689252138942091299362643721405569433594152636813054700366953797058501544687971001281092882257894925942964853090979721908115708674772378849241269957513408798083934613279948522231583172451808934281608471848718772936862423698184556557570168409355223181943607670185355211481259580456389866757505536552692585402271553355192189770773854465180383464565096252561678004344295514660168420718248674767038257874146395342228118285220932876047775388224277797020302453579316289725796260225937701268669736378067676983595805219425628820544289165251768192359921801916079773120537212873748647510444422989436115213166602460736679082478989871721915504566820341624937502187660431663433467419727983397412276356882162115547933921584239665609177990091716505433952046800995128307642553801254877048560983899182587561500809104120762654333358558131955233965626854488471357344992585939875117821826075021991465969250079329757864826542304457750033857582462268195315998182058744674844055699889311393422621840998538599308963884984390963664137262797106370490945619601258167183036459538638200427987532264428789821827789318990704865319184025686741399074790105035726642391139978913585221632169655179946956661342815889126157198736434502996973730771010110810254694369095151368568537393864052157943836290879036175314039923245719667282871783021274726995063694841899182734760448626533407869130689842951283092990542165549268522862147360037581359120031779077932316015835833403663459518830991320332686635350715815286080964047774974120986775311234396284789701060712601748977675858764245632626236560954077257048240643549261199636314828862396168677242194518775282539706426697385252845361701512426534654136769427821420502927103706476020387776084409807683471610917405042524514488946954581389601891690633500271464426722144776037967201766670370714179415879031550398433088122960281390847145176734772298984961534552002448583229773680936080841301483679007060954031409658611246891221507615594982596587160346986084931744189277303593517659876014894089300112959080554550460641766937130015655859044591800104694388731300994365854230021778013454464880549863002457115852281922740712670176314472596673976707513062509809505053338865897889152137659445054394848647288174544597042504936756759226321866943339490963048557364806021457798296222460820052780233630209682153744794595150035960281981507146946891762321483285912895025128372031727967307951363438183079313864914789460636951254018039233507518243403112857066347320071509382915156649217816516244773317177182530167535945608493619781557023511310226473811169172004472499663728491391414132772894359871602470123283234166112537297826370488391807333032577823985443874720566238318619939500552761256680416335289812169340260132642776499302103570528784514647107175693045677711429913441934741039242664574569839576293537215166914108788428232055583832362436768176868405569372145022639618110821692697721309641999353238475667827468487015163507849998391870889450354781563989810310303718888121197323916682390708234479723306727419633996051621900828497165031467708871905949239085936466124235635903254221243299441390446116645762403565828424713910747830086880301247597502380678846377067374471210987583045615365963933229138813212338446227679168734089346268939267809425324939957556398118819540651563185971081707428852850348913973789169578885591175620414873491608581472544688219696631018282927657814374491507297415576469420065961377532177056183461567870088221665766716377835474741165822107737461542481461664085331071578341163699496283866366340267430345228923707253165207621208254110079157785593160203422028939673152886788706308460236083744785934260517841832253048796428144541139367214252051848277464217515303046202297757958227675772596571139052417209331421706838249479629206311856968077567944998890935481792003389548674052403559206545583612367130735268247107005794664682224954266097679181179566684648298494057258231671729588391704976865591102635078216704247396367603894797474221408251797796585474342637255285030834886897006081896070108296534035802307880282280887688510804977266322979382192772155400918962837273767957137655475993276689895275539536983389982280162119206103006588113814638965908819434604511749111691463505827108876042817050741284243160256997889889925348215556669437372537193702691841147278287207047187404822060035748070975027149012711110143285342865190292025466383678273711530086001753658958159365541380652878973655313420384420385114970174938021236058959407504025049208739099362027227815760372348575618131496198927196270199043123306484965549371212132365809957454850347730230408493539493102638843326212986925313652960578451760536337658286724721800519396622868170480733111938230467005033944823446930143838558187433645560853177589909688487034096209348612161575250747863966443259402332299455959724368536376521631891960402314126672902662361576204483077899830424760443018052113328008805225647836993374375114068026239825477476930592863858124762890359170881208323257728970409462126602850700565027076206971837033598295230145768317051001913306328069635841777206978308209792010344111654689514942273453852709102565639263797420228384265190994371729427964623920080278559229945793810968841453348895467459773401407351209877677791156791878625506969262008997363691134442471007712275333792885414729712902061245449521307651936295686735580093457577841862340250905489961881129032833607898293538595225163678897917532235853855780310241456038192046212468522602430672309389990000615424687417372800152428186353431327082340618332512164337609092205045370556980937630122715219164430457720925411456063363169794369159805219026053139847700504267027394634459144586596096476022730129453926091614591686264847816937335833521354603856809299462291350579189351648376015950778703674996452694809294516406870434121325693200587846030274658010227712941825975573803862296240496931895605692891131845500840262445724525589383558730991147385380919337294732813748848357461565282669398108578046124201539782583916424926557745568094498837919517871738698935779106170925847459815716413245299327680019679067638215664229160230063677897446178046319563548777055342300980153864534527916785905299356021972951302894176408040440380549870910610746969861255761129720269518132530393857377998379033078707706654149356133504901051409726657552796129609663342685879332373410057414181739999700372986221196525900272041640413385358149380846689037861362398478787432175106424878856473295657591936507667428418776010346077960980929774096310171280198935356631449420023570936301423394818136935486270762161459346859346159551995473685267574590840969378057154041918335672464968703401715525346407899882214527487683401385163920458017736670200998930845743601233157157892824913736475557712166434909361488044748333623944359546289542597212911800057101382007498909406985411992497594739901337100794512687136775121827049856589079262223515680816920735864493684514989260657715103689958978133325759754563267601299171466837959542981580667863842580712277311616133179464920209483815502659823668305991401393691462652490950758225731668608055484865567157424217841735255628604128837322875270385092543570784693632566912117492424673502803758047714365692182322459270216146832735647354889241259266423285381447858763848578057348175627092603953610015142498439327154339280939327533723247253006034229101012461497437769225952513046075639988390932208255917494747426816864920545323117834834368856076673794164818297606747748843164118861823194100731554011392634587235816384347513127333588365913474533662388854358956029752543436027762527391075260877865149563516965651218643594733634629558772377950026253958278844056368918652150066503493509067287155964695021274131012876538950730842973500328183659381042765199743187220735221697090776375365233787752354531845329139245832098604133082737374468665388118597873927651290011913870945499141265017184614113193043405632991567132340192364183325102906841135681504382778794621368324032729870594170194622876414710687912607398741343802397034630111590022549358551104608751157282954162422153399374834359080361913954242404192748974414721714607840644838289455105959794608860431872264039771029926016592946101654040369147570394161707768922982247378288893474406283919172726117853583853557660069329812535785100878349732314532425216397162060561872881253479209694434235199385855426487775175172311998541302450506654978056370062778051382789764321053314762098169631782626284970016950545291944558343056066145753846517829391709792657028684966073572049430236647798260635850840472878747602907486011765244610866454460301044207619318100817107597548723270869942844166324268942272303578351643632345478533099345432254868312673405384088589580364587629911634456791560017742461146692745503524953953255782838020197287705942245063702042451031533125255812220413698655374825348800362474183323066064186255132529843599588100317247432342994772180476548956052596691589956654060114441711846773719505540260479254328428271092554618947153289798592879904526816822817933379374645538895992652618869043802702222716568291666414138806302075992932272446325400309814348496704496066937069431113626960755821204283918254768816189916115351989723342304044063022946163131655502052274878390394721176785831298512881129055443851316928908586181178714339317781678936191676691198518121300493795023299798419888135165428310272113605889580909620532508958858262450672881082106575192983110371279978639453802421332708081829396876815869597120968488728361777807764992141809838475036683052500550348570302651004780194332222081536726967436518640326559385391506597435437338706217053318180942418867131978140200233814700672611593566783269021067194945795036142377903310626561690667757425743721179314862054300511092126017009197290143061587385992685220618700485645890416531008063060047827831114570510536342833232603714141270091982713178841214072995701388124404979252603543385147177872107525441046664145648378765961298611002563555261670174493301372525244152886753092354869016128873742548518341403566180901070228609779148175421975957604345117264081022884462671206249335946375558689234783137117249226022345645928024722281823386551017824061850834641368541530342999769805175432593149608157830528122279622025747403726861412269518154086339861458554383604794085345823429451875173516451609686234581748610995893039859131313850066381850914659740138651046619696880447514105186713724203443032487424315491191696907008335086717582512542518978401629123569932019814466240431415749111459791436376972594825931182720656945172217656055250341321082479479886940088073707815523527784743590867561948583582559829506168110111480854244890492354183575455154868494806011830038050596989324050257405329648519211684289234901918791900403717903728084670733509532996850078814398645809690470218346543571315395212099960263653212684510942803159553978296159403981307034522173791721247078596561780122693402768105729184728436644210028958475885337908054555253469353917581500772891158471095627265465292757649497033792672900432725102139206948025963906456807316281349578077768867395363552289323521831187306505009124584556094865985965377333004776983884065351507478550771193523652977957413065356885772167636994214158648647115561447682847526467975944375560021900641652713539724662399054294355320546887439077890079672938268772524509606192508866799117039652329125823447131267610659149430441881205442635626177121560284321785007161638729072009856316831080024842614815170315555034170950870331861950643470636182926216213228655037031259823532888427935877420893647401789650595836403217489611250027919877671188270215648306675328561776908130247131697500422380823171938178119136811129627342806670880672156205434824075098936646172215924948066060629898386060278149281188803797540189952700946236137950822880516649953251215463222455906344510964363841873274175496793230394675111829532937049648808148729736316214000172317581140752070756811879302399137874122456255712000289623830211630834185507915048092096120346615221159157262116783705603312330431787978191180163002349781360582131696978624338396343393477571096429612522857759137360972596313398140175940913679965192468827303068134607251972645771275695617000613235926076223713911459331664543899856746218135618208336603088383333478206832563173138533823380106039040857881854580248380374834212340488639856452074519836239588845888573089575340166757201169163038614430066277258492374184059002483220421859138433431859347225282638120393283916963657970142264893694550032654147464306021262014394957533962203809375725463321754081372722821987614388011675326470939527526188940948784419708937837639520054328288696218366222103335696912466616602216483399256790081080306807652027722570161929773337664800965714033458244301054968908649794372553666269168487774191017367220549333599714663906732043062700700646921949987508080080436374813970166776658671541275372384379690273359118588802727439657623782416211002041924311684008906657163821087103737583125027711471360159335001299735445984805040578330189637758828181662950508146608687797339318276196971969572556531930807094864686085942063379281079632492825041722795562068731909853156658107898201665381910768317013045057258699933228055131142749252324814116014782643053629889438335818936469756828584676522255611193705413008080833976780998228847071408618187390846084555618649979694218590911445127356210583029709196506059326930018473853745977350000687450122043422238821576617895509373030368011261449484794615351746778507888230625885510134368049890553933313540586996061245980839863893802759751061042634692896811901080935538824608192919800551957309535865049251390684379788138535455843921628720321174516953206753608778629349744680197895057285889173428157723740571703465701654500658598658646233940760877279046129481783473895370934417243353832215937761611456779224634951614790540901708908987326444885298388839667705885405371695112263328574552945047224222778051713640733141579153547586392455381534061467772376053762076280442626650398563960119740888992881284733352679912384061771437123893924191314207180875641322193305071794253416213496531316509166235118455303119657674759709404042301240077249334973854435447754263248139897738896758750591154410271026922009225090088399619153034778685920870037116001395166935827006423665247425485975710221532947016896830989546291966577628119298407951993116366677546836894328559734389280059552585471203476413152775552914731493252377956583715964797400964933707260898854058309569418482658322903941001292941627723001318269984615997653367165066567534986163532502818137472738086484472311908515272507797211615916552617332445603994649294940197137325900923504292640935561312237541286547882006114842725714123131303395614691487535967723938363957531640099373351371718201577875310358219197810895902332757288138691591317150692000542262249475183405090600203885576279881362721950556876939841301548294946234481381674829213818901912958244193924992826293243964875612458684113883837832994954957347956564763696054166012330623519664294767662548382855938756798291083679998947611736163362303823508380455318651403685072071540440083662341644202512699816363316054782692002104191064460243492830794020738867532561521623022880822223784857757037567946462552100903616272223668102239444632932429680262119917405307311166246775638561757599522080288630100401341095120372855657003391272709477662454602008793471807582237643453984097263592979081001084341670315649843367684070716323507070853760462870273099227857570100628383360876476082534338856702313695848185819677872954147733545223734697171505783078984313923664470647895956892434184934911678629225355933164511317485230576763052248747308519861867028299014479395464284038244804170411138868726125730732190315893630717543360546524174034201249372977298740348280743898158216743535000046152326702210564122773770090636036257424212710722126948924846503542543385915382931554203296898504343304707764976304591880084672448993065285511435767129442811738494678151111485152687265986144364979508410609728656732471132989018423287580309427177785474467554201784912035314080412475023077932406366801134108763026078343182922965077022886628838675883582473351423576448869490586974512281809588902961591262790031153582532929236131996815654156430981367597735607633025835169997678443390987723211670630164131809219668344036953345616294648202121617811907112123931069214598253248307290250744155940906326048447421409837972909387301923121127134016962000251519419652312736375148796268705528820444676310762445861667467528616704178750702683900639840348985714193177909654200583029478332018295113905802498701476024852566726664739636439194246651907578419353978725031509254792542959651869234530732883983003457936232815677588977100994784516830942759184685199027233131287544791272572124129739510393416863910900135335187406896656380766787096368029082512463424961156521605870522217053321632402645892887615385265983055873176854842924164508338338195957606656372120908577570214504755994475005929705766886757443571455187364811662811589141624662978396363066119585812633406186097615683193948274206829642030885003521009963370440422209625814614556339969448305350228352820401502747947765368656914123174219404927816592602763921765492207165364736573954243338986164658403153066873416753272646313463831935764550394203321758071633369484262861420803378749950849475703106448235232717601878892199789704568787515616604823776838708317500746273644755263812066864150222357562383087440549218647612394174743180358206778383888685094519904665024124940223021715102135717367377387033041465740916938506762859799867946750507313130582543950159500993157841847313156054529568784245403913626413708770526076843352594584939529055347792776830616293358853745020942773517578839780367031795003652766900015919085603836038490275328446444724105683948817826336522584564068028262230377554430583994097310398708600006333457315852084392142253698392744532072216472750569338910038232595169612827619871562065858773789797237803177907249584347166859708689390788158388560509319059881858258243334122963743877659342805231910696765391098876279609091757565537959368538188403358775536717609928562371376556833192588246269696622780502665657440874217426003610634696957173785075319965826125042400943939474852141975265176469023591359995670635625302387895842209790723735109689556326921115124852035471041837330961585444146762352542466970421289646033761077208497449603767886413391976330594656542253504401499305687013165313099291994708543489789214861409688937408726772752868615431187087433979112824775787067893414845922772098902495544419213133318342124052558604706240551340332328537635027356487480655932876004465911339965419279242914479643562947796952711897928800510926191139929112095068204948220164666211412345649034977707710714935855887606631789691085011634114025678509411617307609211773799950325081265799374142636871646829323514991349999495093206076920339456657599288671220489893108646520371826844415753295740873236959535608760024176620359902646085196074656871191884610077296528398671225558816756984032622042575701535106601282281143998478643260646611660094680161094809155223745936710890986015127566754647175686909890593995306894445976950149076414293354974656115647663966840548027395365941160968754609281268733413922742371586934338088872606564474828440201742124231757511388364930168812493074236632903210529971132234732070854992114648280927938056956382389658207027709010884577998311860420626777857964466125009322333882311970383789884784655434531193371562724284687376790026782681127011299238305799151200639231129004372930193833488196299641464131379470151317758168118879912604213792457148326804892987938859097046751353655106333968734460998377061847974825269156404352313307692377073313419112337536405671770096078470615738097793720375346458966287197625215704321161084929269233025096263461350561920512347479093146201649992938910745259205412266191525299317718574763640318606878572865477431421927636718502045923596246783579381160587992218979327395718005589493060482469715688208682841091992609519666175147453602842213689212363015605965232818866496936463665004801518948043981901115076118149959012249077784639973535752278890086594753949799382621152337727477067610297452641076237395106463076855702471319242228890252805432121497195597584567530143072543020989855202584473711655634237880823797454291257824641349053284376155166160896489609625564332801898235682024930845429537809263846079461484566919306868089891816832952889397460186660898752106199000323746664433875665124296785698370850994182123640027608494851420439829083751340647619240663848254013286724403164829279270873529189627906385298220242345991073429151546819153811184379558835326408551469653071728226395782607758870302633914272803362210460897293544166070438111282078122521884940483773732345972243045026401775413475441063100659009698720322861113199964349955592852913058482747585430199673728455247357714291663967910191227828144261370331195909051877061583756654507315307239662408267184113832145667307903421739185813094048151329180570074938922078067654417244908713398356964646409713421777934559314730027427270307679070893448696279283608881091809756082064079039215566007388062093091887072861260723383515884111266346939514203644620346666629044065311289638648189387646550354963587925231505534111329269593494575096150292995534347216785946655733432334899201260887162446564048718312583171892217053276618570745485415570034896166912970168566338981121166218979434428587776901180056547832858717225351757835472657706445016850263319335395171473068953532501309030980336466610705183620206501316699683996598558690808950082059225607891981024734628019996843025369263958950855423774213264281159741366383247184875929840486316705196426038118648415354794628258051564651618027294886123879268150644376587615893654840581134111993768129628333142944996357153343494762553836140082482438739758907126496077015217097532488025865880512500374256306201042732231553977995871859768272644169620118526911049342560207533469301980075477308654011841736786983799030917494789554973050393052057289251292334576896625021708319981398054467301691691502529947758476178773040841523653070534765514082341904803710913587033175740645852867366318301469656044530322462700335230088440124140574836876903633335685836487147785383382176641605086266070695580685884370213701293747739960507389376279024094570962721505673540044544739863599382125312748429736724880038597531272669251138353145952995453789283812220351101792843954347951552764267251771911304185969667623109638996489477807806663824474386256878569850137171271218218797707978460339590453886930007077872783418965648917065122617199402126890668020430986623758263957338795762574816316988681572328177580535485299588437332499382003888475293915267853209894496480582353752445791177083726355706765443534326631058750251174059981289173730185231535734532962859934616552075188103996405781334685286058413704969371827973674387160641780810788075363344258538138818269738549316886968184531656804023403041313276865213482535861164005373206878560649909621049831499227509755292494682330218087893991854100034948259175666092834212561244944049529623703240330381217038177875620312804530769618827045925343056063820320776721717324407137465518625851466830518646714385152922781388310924007845277988217040531873763416340285792204867000774652814576583859100986935749639030426099049703063179080803677778777424209010533365211777357627293130159245169414720773240504628162851365528328766532680686878654348429979693160461933411418111184635767324341030831673017582197901532353042220310822970647278904485643735800978832795164810602890249861677632453835396347470461648711636839333611041825014798562132347531238461361021279923124094622475678317551480766137797968757913606823149660406227093012585521460067477374300539050404228426329243881598315612003004019387574840988901744403603118571247272719547973978343917028084047175585387380659175265961045378648491184867260426159631649375695785008682949535442742596523606914328996557285437139387420258067550266062457569197737136909812308903111808837188398267608289867879537944864995338635988435847543166602632157599818976036349425671978015960487183533553163303418014839023910310808828938015725366051433467102175228556631418761364952041704302346396666685225770433867300914841042879285808851291800642655613787483465373805898923841548388761192630049770993124053835163022003333828618813414129505459842386197385500503616297099591568240667272239903887976354791296017190930003427352537586372579772464386142002505428609286548946085794654919064055939767705419230508256316139528330408717434521259151145293563906684970033164932708596292436647307627975316716456750999308094314619046445249781898565961306501141989456762865434709964702164290839866056994848653387193883263050145088976150714997231552603496178790739156164642032490771622399407485101411949570741680637989644866314647184020191583646075808370009341763370054781317802960796370585410812021473320828146152340184082435188239827953490998874296892531735280834186223814362285068696128440166802035721679671312408485905143551051446005867905622455434344116164080693738167975078001899496498110158430094896826782987165900234755702697978091906535797592136494648735886428090918990967348569444332666318416493001511246720976785268540360620692144282944141437711529512510413397152937020142750681300594729623212978128212535871874402393317723860916560417919787708622155970441512858644901237111795375617639318556279858999430088426981801406942548350851860975405260207351790374525004590582457221596332783019319346441695961419904190896804047479972017551778026411856701577194901728320970997167797357284660150459413173741037979775238221461808444164827671590156633999911921513966777083669186890030185231453894031370530709697147444309131091586647388023249995154928198634469689339221659288086835343802852438047872592267683041737874646552580781287029397542077517313771263301715158866326589557657939011732705798218496358614965298539687231420086889504076429493129861312045955569340761152283980568353941342301196745895127637731357225206587653815850646076225883791795337223864682235623235899372559197006642348778350462382441697359006788223669786750239164966133522570313767160351821365460386317554740478618718363086342862277622125241457549577312043583866174331697807862607526462175289679965043667322282866795658074267045366644041740820355581190621442565145852608851278385621543677934149463062948744682823645474931436519220828556519188053575757994004701049733657042138846700417927627944454033153168010168508194541214537817080488954115562213452920687805377424977337436319174477612411195126092443217223936790506923044051653176688167289984815451824800607666955146877564893920184697534074398578051617255205742653647185136703360668473030554900767461287097414671923361292058511991626721653658087235893170439381577042774635178539642147967569725733662415795144412139255788762746453094839666493024013747446629158378938535155122484763932444219842210760949470079696840836901281162798247468471551163853264823053344688702485925215375503119306475626006919515057143376794157074018770144743254245971040115464489055073821956796500268415106712925070340641624966322908303428447881220102533270838250180967480867421292158688021938743309004470080657599670555669906636583128673782598509258650202779273794415044631818745131660067184145340050619248735172912432925488879952673699293366881238070516368422733357949476355979729734594933010046221437243103026401790287387344674104340249398469162514837907590267757079134213457046409501533464440628855750872666150815851723783260172308698840731626306552546623989078358657933468456855991742531750445087227297973431542121753351707120940311842235146687160494109509422179044928657709171434486334330343795136230501072520520627355336000366762273371758477401295559484214645288833628029971694007398514214338020415491347494923101647763768325242076145419966579396836617400937188215556178477971661088927189168799786486187318705267795781297194664910036393387287125711038168169286018369832046228711402338469648022904732345658668166597546169364016572810734926712544048093960014696693230091230846538424662696537371132209018940374898212186811244103463823898653841157647974149417672383095062662484112657589802642561868389637777400044556169186498680018577283424802354972698254306218281913965285913286738144789585917365961162450926756399590974885223720798534314120036535488311641950707072042164922805525166607213824912597680526366567603810765906032491098820391479044407250889788190921934196246807320144462423970702162956015896617258287710495063429608127033172878085336083378638982580228866662472069128260836766512204979597267973670094463845286023287971826824568969331008137975752803774839343364945024864800636187014302438697340468397873061323485638168513446680041299545605577647417249571864638044372909211126323516889372564445831555148720596754524768177598420632323612744745411134181526285565390360585782786295736730085980441065662396611124970459828997543855503076016218129292007536150131554781587519278547856625938465722562963669454590728052685875348446016860585538728062849820164180837039745141045058474000522770927923717762938250244004888511011713271451803115956261300484733628789973637958563851650979641953887894086599967632354407629713742908048349404416633200110037750269904623104071111942275449628637777009483373425272770288307039418526695215510292877401265759994521615240905300377165199967680085400559557382127837544682736128855345000791160725438158984462995165004798423270989493887573142221999356437542378079219344818518835509590911061346841629782096270086220417959595070417105509257833122723278526373506754836579793233777198560525570032309225619227611547385437516164495084562482316896803715782471362113391052572268442059062286514846497894055607554423307910347805904400267175108009446599367636634813487232832639627664308563816106969564454545953170455735002856957556102125586421934714870373781113903854143661860901518888001100035492993550685231988922431544500494169837613800075017637604817048816431848267522803460666144210526505102263119381190802675838143984600732687678628898087650116690322344586976781137090503033361868981519381494498314683917915722182734887042747668170379132753475438298989261120688024129975143726535797245990236266854485025738991001246081437045736219386137899611025638676152077619562135786573935209069130421048470050674505222380038648505244702612598635195661110695113070539418829146289554011126069834063478891327236717195744858890746451585462291320086083533682965962915861295786700318320950657122538419595464408110094716506462111409705468365446323503460128893659367112562725969272975815693372998891711179062533805630829307718803429580744597617487837437020826742949479094463370740488673443731584056777996080739954950300841531503380699003188143515447412224139692443482880044749846034733578257487109984380366395023523750650838851901211269946818404152655605177959184940305976996197316323518273402586499010573333495523506318566740136818840668071339807270458034387632543471957293194258714864288386322927838651843563888799891132266045265035480833052479733549295157273956016137565597456040199080672197398696077316654095931275937412116742073538743337514084914212113076749530987384511948846218482477957481877856824527403862182467673601574674409868243016465466646230300420054386296685478101918713861634982247541232585198744165840386456026473692894435686348840205357607199646290148708528086038164153080602042971052192405575760007843317851426668485516915968943045383456659218514758523368629087320590041349554769869341577443879000824026750344407824047246280814833966979795395617723761875285482920781349144686559684605481108469688534085302367030963747396351039327703902296012963343895377565445797935621744081394256230739519479389750777455001963455478682316388380839009636819007991821272275134892736986086225849930997664819810581033747943325426491189928792358628100003561335269787562359928328153380727218107077759677254262472944443161000546758889074891080026992698781648666348691875339441793203649304534295070275415378437721682357208226128681359657818635698357718092742887733650260427524927291839896752456604409604928800868199370136165800046803138046956990146825088435810958420816971799331954717661639888676484317082370926891421993022399761763996508409745295328827003121795516049883568202458668426345127600828817731651921747841638880467284191429830084279452971389223857984248136375511372941290582945126148047269684868813059223956795967818075194434807313812666812382437394725199164595307023940910588793366021705758456113777224454935370791396916324626975506535507155239411335446225515632523488680890511605852161862571620196153918701004983164939336025082675488579323164701861360111972530130807451725359315916297646873047999273187828354171834757000865120041498672158254811202584255126510637011397914957547320191240088343383296563264240672042718111793862243831031110816757634891175294945827811818933488189992897842560833446735936133227801066256973355723757894904228843854194731368424648276417025656161561713973991219929351242567546207173637957354248478555166705531762555466566227032982510892549697213259219236347766656382807901043565051273162138261326534102218311223377357440228759580633736259920826448264760258543427283388605839969531620195250117156213295580707493784896587529809516814995793622097089799898509561477858073259998784808004857572375075061290850787124539167866538798490947802519925675889563982583287483078647304690671832377023504835133886725567417502914690473853859074775278136822407216199098420338428664402169777036715741976192297082532351167727205234082500485323192591397996996528891319770954128976762621344322474709529309214641216162870276957999041433479061727303619623534629559625592246387739397666960434680881783073959534805510011918008217819264961057633167669222850680972832180476034476197107916085921879191833014832329900361915216774807952547358686097833151337433308245104305778986208089987600433571690657984461347128114259962129308860960791766569591406088065787372249123106866195177548822195783015976673756507743942401219324195555118348075668060163600304201132351135148929814166459594822640498427071002524450241277827907231662685482663700305973859225024457576998469895953576805733624691449786559386596640677349281587324760862460477441025118586068021189627852819473403882643557777035447076045856427796801220611838030507035952335454531519076640348225542173667516649189970370547666486088316245952633569556775447204680826626817271557701902066839097033741710429233479639954737245459789135479050926555567275320586196278509126030978861725657420798254144791207883499457510972817086963567236548956867647928576282165981718493129536917997984258337171822277988938133917800171592802980575481331244239533021561258495322502656708371066254664075581617960940217120565396199537409186545193506338057838172532395872450875044066023369829634564975878880935835965846200339333912062850520344034159883766749381521421925367981475720195159810571555142631933964367673193913011974871137807488976434485642784829978802420373367907117781394218878881465888156507814986154380178672320141046068094837851568696862564297146088644608073287193873613649956032703151391802752411562227866240531149011027340502242983983328520700554153401247493675011983924415003081943811762048997716319778532003651523699294058819830369622264313365239662843992572146920661990139914904251613620199023043914348070712418735045090894780779895131445080034279587376980455980096914610457660256107575805022701499208659062526815739975837556218462555822501774322439837210177769238391240217660834381796726599061788443740134166552987389432192501964672335991076140254901454579052536392813548304801797016919655892203993394133036968031545474250601579458116384286173389289708949134095725905948947586744682124395714797505843006799425303002894481439132822589936673036781388441048678820445671139349896301628668621056103251837481673777174963045184740937198674827805277278810439071051414613144177449935314233448337411880338295591899522121604373568943274738194451641180031692632003634538579735867337506054446457438022136235357287624944199900351034844342306209893292696729428682651412019201966415837446940979835677351976508443279002774378015929735356946362771626823795476624926762993121159687732512352988842930196917743135998094941950761916923877768726430168726918399497413574286668212937430260356692332151171148592620931494707196458982937004131442861406648429434212700053148381807664800217962691020139789933116380456421823013364690678404007486150153458367694723008021820147513680019610734524844115246136731579097467061598804998008761862941513312075956575155886675388919314378256585174731027541299600388678956986455286080559439175758772942935843352450086982635897385211337191345504712931917602755794230390570026579311277727263936216501739235656567793303657044216395953153449319593241480152268198045144845734694663551003854613611264960705101593711628782398905907515478111229393379023207169369300899854582041794699856855046556817983979523873530563770983571783876449348821120211032298627339726753653573332605421092513809748744005483370419837675707669086175322611933053185535544469943757378368544828365954673888019637135697561332994687194688426122170912035850711898713234928032583230452079561847867339038852476984391457871216384106709860623413921847489170852499660143145278062311532508325842386208964240205649813524995187997654352609826021654982806612309470550875614714719991479249111517823952069196796668278669959618221174227509853883230612862705496579178388682585268443766955839596854613774599778151541003051089687515325348090938815785767366182150489397456886863055404135916801047784719171663499335175433030213982219055694797631499394526236234970262671350056602642864495718434330368334495574526199670927110046886581740790074658259667313212427490278584445266067138152653974432913810835473976333256203092022577908111884087482457120999013644321825662484411431530207750166743508595597772597282087648267094022733792408273977316446512838322687839214809891185772677664939062234304387012095797425269918516246471845233351103049092438220578749694711313019386297693915768315418099997693019883646391807069329588707799686441006211666279658000692249910430104618748133049004045415735641142401206890305558999725943018533980769083805719657992894897306536277052629597882562457287105229616596710476936937234357882887769905722492328677538043801313671933697457794819407572073798545459891143722495372175468223033194885382896133347903166590087880585483739159783836222473272281905281310295618904722439395174707435126811003740340032917838654622222540280522251511423162806172084749845761400416783519824862380493873919014591216730920211912753737569023817416438017842890439633448172554407560421051719872310606355731649608248737398206749548311486625794306973265941794055434217034559984155639410336545311809800994488989215617091124098169731844120465666002244293180123172131807742270096175742832166019965422710581123580651784556966629158140200091306505238640088137876995255382849044577661786510029668909637671402358004168114239088771588372913954630949885124354539272498528891211003116290936556758369553481622816149813552383123539747412466584202468005562653752137951317636705430874718578884089014511785955118933386348833845902326624664038969119723283300785592328847260291119650079135326820336228466651261373538581825177721012346329037226163725419378130428430083467385971436010369721234916924974904181098170348527009096652592733731788774411615914269834218160909489891912133338989205834491732682107582505495615002100882553253604759532467748017608846462823023311995198456293086288305098690135500245751511184437754822411806974382595431881903481126866992624623655702538469583986926696116280145887826107289475679330009001164192445027629299573655210247812969879117488294267623898632479129597035102288990037151859050868643760991717611126444779462038545514409140537052860713632590230184722329996800432078337646440864222642209104776404573955158445615276497584868489575721845498731378695745113735525855581747717444920744588591992951706531441158681245639314856404285583327086547901396032107712607427081320982060027723516958529561115418504590852309873876433420297559870883700095308045611741991009931034153356594804654453667779714991249733093711257526983593968682640831331148009005913272713848054984992895542597435809196761623259255689182931774790197488805099057126739837006900628892758604464110049762899191990076236080144342232445074439505537737952482528134590454043578819025787570762998573724116183323182871060797604217063068286490035690472762874313302610163583873937630229738454512939689443170920392347379468051567941844568414670651529749412060644724356693480152555812499984361456450737024051503063538511483557279258856916904008123839032518972965742993240819338151232602391343664771475852160101226699321966748195028966677387509079675010486112718517815907671113405395737385976696836435769696451530319679621105381552914199632178123224275478531655378680767731728946442828028134091996147609076592837469386424142587099752326063536053360682460896893239946272387339862025686302664223713520671389699821199735015499750432324486966165868105242119574296127292183794346841915848917104257403635234707128216132885253328651623365248915251984416532207579690329178513256711913763948856694466516041233239193736045447843759231835713374903385184437694057363986653546654661931083524892163217218522338962823157875831991990961073475742545390433403839880071559246622027441642734372287361762644676481322200233544760897422289938200481420890441327455980765588352434038110000094190081907039084456656160277859166684195209742678053576551639636731426091956454556696018945361860693786043951519560551334511530714791139248178529084469873528033770329116355065658713255114660994570616055910031843038000471945530808796350152142523196609963287696389523736238425456232903755448224276017678478676038601302545026295434384188049330694199210745697183617973168289755443017762199377209418098892222469198809931564347628924993769901961281893748379205488702163621050967954899661213009329295389143916838979221718227507271177840798883284743304299932497315046256919676143975519601657936392382282956576973323009869828653504098252079703375601908461062741783639893950197494667204889505786976084053848736359073915784427516099346278796345081230191791492035156091705342808907352843155741816304539769248678257653242793620604211875124129113867712324161140687756042257216837846353338366291164367144062851584909605917630460253716177862199777896986991074134407921307819925128326201445913558635898536171112826256259183924796679743806663402182612492362006685186708601810579062645091278955992082440400100868256590795606311669408038050409611793826250091699186443843399926583311192651247317145714565810451953427374415677286508001604882503921900895720740686004522768323175639045372340142230165006130812224385568451242622720542981240544203682111098290012817479999022377781531827775922824920042543732252177999962653049367881543413380990744798030171061624705275546772694775998978695989422263534975389572657790417416052929953113316303604175393910137611169152634309254246882312020428066057091387705105931271531264247806462847872432292228702726494948938557128205371590114873646454729670620861630571662177482663467396904402264317863796117360401439335816558637608322245855312087224670510194061265540541521481237083566822747780809335438374531208061915439884281451843466029580136571986767839230660206714070686306384798899109863061834516293888689676193200708848156442860876313658626873809794586420398084144921782480082809435028329568979285752339012054955748771965339746238517225246496171738944989338038452342860907170968695040373140045375080865636602697719533335178930973181548748331083333787911821562532135998491611273682508214410998814572472520359915142605301782506569760749031838718751839601368149434398757926073991987452593730181368686092882548667536420302184967281262465012704747707056852112525730304701349286661675894071624824584245848388286127001748268017427014697157872031118379805195690085774103099009027802441760048226919652706650483169499465908468177663305471257582807355949288352564738753224151592327778287345807926773012919624106541413185587495867564128779452452640342671772331937993172001512924441086903863051787885248214989280745678008164839038664526902796908504991651563476894806337728149100738830368979806061585620667723467121249988157247777063814697233869821339479558362035886982988339013192506988583736044403379285182943221098190909999191186994096138234112541768087827887385543125014910334970986804412012843631004526109683576895500083018543080111475663311742380068025699188629986903746370486904259687085060693006120709369248576261921006068886067181930768988674913620930294465044006093828095224112743222260906301419988562645869487444886711946221965132329992962730571528545598548171718892263000628224698025270639464347988731093704387767961423820354391662428848581150003618940833112753642868209518999603610418884096443442276034494936555013522385919683417544073150181207514849590278163520961258493707259872653592663544863517013404670466212954596371415699453966936441805982037632959520786873464398715403974027431448146214959511499898265503718992534685781253225037439327322596786021930040272738336652528598861474627554609015851853174903363926751758038277899521623957291229213818060538252424892603690374334277778555106074337653385824591566691102240770524617501656261745500706716478787142256314632417830972898502246102817522469120092889081466933877186360828934012857366548942194753350914055100973211223766401893909263839993168831777243722528963188263591588163975692148119321878412364542154691110399453145004141475525359536902136937367207632381651401869097639253080476713661230125050381948001970519902517403566570882137859759583466837001359821832835302034739606079313149559839280685955259679086116671600472419776217135404341412502929935340231381716133912130960808913542854666880064642412043972475932296390487278600760041810829497624123673946605294293342403722790773114189651906775097565916353182937468088792325713563360021377376307067870387178743118100452143609245802657848249822685876186165359684071286131910783472973159523349328377946949347227907299276588603614466201410756601761619809547623767662763916494895909169942751217627702923943158219176982499952885511658169432143870171657374825068767489791331615804289855221853904538415201952980829180856223716285143102442671055184074220484580097790421953499529473833224900915438258908245169218220608580215437459397621453491746408980571053376679856012424536486296068146736576769592238319772076779600258876137674897671086988277525282775483705886302242507160921813134692584699293966825572638041970355208762830014261068903768563831547847292112635796460042910927944674769876059111214662780981787345046828024727131169431621188687103380915680797754081709736715370478713653125801888101389329793482484864449631315808644976815131339812530057787878149758325002561994616548091377301447754175631181051750883548111655849816264545236748251699591383244423899378689943420005272190194471892818643981763517235983941322991321672347681409175324231727943928942560510370136612554211416885602739552566989426131060358417446801805172731863504770196974371746661360357529207500383740818854268660154121627839371844939698210001416492754331295057765077515563596844684812043941177576730199961058323747287656780822887479910534660898258486350865779748022471661021857234498088531965820770760499685008630605498523830519801415515662049739888298574021858074583420254421023643449438318295686094078924488444232868400121146042790769569482946807011306870350287007766548702916214840055644091326267073421001236156879599025471655134388775035984843414065052643004996146831996567389503959947399725193533357872986744691752596321674041723282948729204691982054673256050734413317186396353015919029465847506981462379816487567939827242836103013401039770631350431213748614886139720073199019336630107271210117069633510185574572583029037483857756784223640742412164764863161779744481561580453504281577465719551002152833510753476557355301862063956921664420745833629056929459741080306182843910732898101727863611925032767492830009995609051434115379694529753917117913723828353669116837828971364356832731624812084443918930614490501647500731056077261577375453042835319809429962242450311223319392059634540578370305624381921239330047973131307944059529191453312848697620142201306771721597439387290281423248904382850384550311622295034027545651492829197936631998496278816119632512749808235142353719786570577010765493966317999435706626401033331344951357562957869632106399824863445556045803198958426143454578190309963333678830636784555845021937748092122491909248958924005060938816339861569406673855378048035734178709833274905061803887630858666040030028794884337610175312984760529290230723921446224432639039919912859694124698270731985841335406231559137745778204397940907909117594677336778756667799185332579892165576452294288391143566743569499116776410746318727762461788949637079226737205831950425602151775346060501196500432374959640355451990511428127118511740838557516250712454493326998089847840232301250207781336000962655301876980633979280392809719846157311153035244608070847356833094489031246259542150009559987805844673760677661534970655101698183108177669044812395009505298168574212934794086455907126590958628422617336099942153675878900073381325688961140065140155207651529815385644396032684035264694469166760875172985169463965897056513358741475726442196416949527115974342898880544212137317347809651041479882948611265849181511054223885644362290945173291888899199564569878937449254882196461221930823656187877267662339606205069484522588249398434698875083825800506550910311826222718702425259515497531658753834315027659922687257628511168848217917167626649961644334636765789205979895461571313482391241873390444291276867067803113741835956649153606522457266791840544434429854960594462823958878258597023713545991997267274976332989925250756311080294466317743923063402023476384176820495036123807151284262880869088969307865561555538154665363668159548008603302841373349902964017419714427304356652785997025998190874538587813963376007249390407722738423295396825386353576906051759801014089474625522868416312818973051798284054675404414607434169171993194491932876592786736404674805966909989005103898094471424746213790859193167919126452994648945043404308154602916827465009944389361140757155209047056222978906902699076437749055177721219038278343530622994703551758325634842052331454605360583312746499907172979765963764072044865455348150806096259274758689295458141319542433261035006075406126594926789971541662824743477808169386541588721300846688929440914764376152504584209523319889506769574019028454252207975928181859626850514171641828827956258617159774830766585949534329031279098304415557419790407337908985046353037526207617870171397270648181682797334559366545132617251485636278070505426943241512570479314772559947742738544509147643900429542576449499288003247803610625216290835482174777438344843733513504225305465754000930986676933783886514161948952503027758533027786555395159425080928273643965516481239719007033856279791136162499130975864959201956918400945536971220938546919578833340299611676438870384771230519757671695432537191604772269013351286085083281665251269876977211186642739186499067011909268594300148227017286835629278136604284733473552423859600518323338399825309791147165287501253512266807987686731755702641958832176552133958842837977226596896085105890237499782895526028827369966324745403940796809778536186579961383399034912727625470646645085417998769650318295623641100526462779915688279828533281514383118837663527674524284204477682080215041666708860973866175301614906971380052313395519016683567343942583184902313787418480300494885507970186104554298228312809308287019186318882174690933296789546698961686956358364522666348579382508724429312317296319047573718604633260428842360883614830931359912497978056554698151017324876428816536320846403131241129170193725708810639099609677708011206672277236610696072286297692787534722124566435420846233807786508329998151638665537239414471097292694338271393877073688951431406343121158738363449187060374799986029481383148563781385458660663481934856426755597636132958768456526059566540532988332176383686821368738866293285320343588097888563933870488454457082527423447930908763890115751422385999228783023188516307995040174601007613391898828354759375862141574213884583244348617433590800305310430294988985457919153529439581428946069995668349236318038980313363064196475286389550439896093104875949317010406427744739979357072201883979733334907537014265797005941937807399440957421482316048363277285704488996821946961747824939023603331706142471338112249840062819161289563121190338608760714815912313663907847020464739252805440289389230873797188738378202578092317834494574152667776493004922208784289961579668220618189783379145784701160861737559308194395385456075775858315107290263826032824787716630863343139151619349335827867611022355930415183368153659103997927642127165276723364855157095302029841985636094423038932642390431205654477774386236352088459305199354408050873318791791490659112426023073762471645559618931053179769900405483288914822706282265245101601474330046973561395202449596181217467457972741629339825198066755368658434218415753165268790153620831623106183727574195766542434610917910529391835674765696577209454347246514734117939169638056912937876620903209433953927077534059626992941051008772463270379339771573206691362569150314321720829593701558119258217554977964866131952621262726223122713221024096288207900912721793050499469516153584954769752700500474178335940329082035866304400231833681417736427945061246231486077941953126668968300932801712612196570265250797837749468971909758192873781913527503499806968964930568269923938208203688962708046369760558570131435927048545153756098173769874419950371891074061597781392591457864908511457146346745174539479862350104761744429110939861962735513748460741510163056867696000968387191361904748732621508957785620700468706155822325936337972315887576441333245168659780090482847002089643565359319931105439036070433405400233336562597845218108389759502556824895199238739323550008308399704231314874629310773386098185706631529444000618746081206594501689361348845017036417655121026906169546978660875409306227498546689370910323407259056572692321351204224518170645221802643695224965803486398059385531785982118104670288226752973490767040055942829697120759905429564294558777916894594627475778342623400551666039183696517647696666369360273152249364028223074718314381212341136215852936975682183197061919250483271419291146340107551685181915140693383870710230124082932234274046365126964565373854113490893872296926391293381443038251584919961336365661035251214474169725952302923482062420751612092783165876136371525426119636954159059860770274932816048682533866495786677063429830361409903202979809151653111903776721737351357922898407953423063337835485673903945104187435945914652491889575051869235043383638501309862033442471505857919977018160233069205651530135691602447758978936279849865714283624771656245439523388148096315840262264827135499294277947218728396814994448773312150260385612890682106907497039008049554076113958243852495964062089143694054565499859617889418546429665219034608362892756495018900815380983583562263448439389373112505155379533720088913390066195694363723824565834680724313811073398494955501833283696532987663264367154583025806063016122189776102015024548964362797936781821214440877768564701191854329576934582707861983512774329165027520318038720887913087867429361023935748847205700968133808727685943858026739970934300602026287900965745446328592476973819825990532457611681817745671940948572910485612489604390158129807395091809865968308534136341837769505082471422631876670799398685970491122739674039862154815862218687639865352347430100955295083910928322785078020840240386359362551130333394852871005697031398879279400251609923818710321638808238162307497256073302438779717715924989200598717058416377124885779706794006065827928561292981078110985288889597569708079181044439026962923187166663073991274974098345739732533972065776422006442431459755907292788177399699759691148794251761684378266050887950101298961838197694014409210078141440484958213210123757757474555506664671657725188951522301251483510075779461847061877681711761963857635968919210945015079066254261854765457493372254079097237435540210484042293039778142155674087340501534632658418462335227148127832633314557236137650730194214434394918855046450512218438128476113309774232081934623689524705507397893427220408317418792215265298306400401181577173904520386432898439160807038531622126208303139390586199349449543697126288074894366037032865018539761729987190674341756363761124967416509232380553069092740455247312517615602807967203825221488774621910205708426675738667593341201344159657508531623478543224744055186433357135536060033059465314574004166131133922000016908841126954545045097520292147284282896650184608961516260494506235155937504249345553935853056955093738521364320425781458441602405760202169941841412210234166498307716897668579249924874763099601718685745407280984627280714149210251161100738160262561634052797788537375601597816243046659388084428043760046928325974148140053741205035545895466720495401643470742098581718155615902883560422735588325580695629139340269562583613239946695428865077494783875249839447944032813621116478992658798451838827967819503877494105759846797838185494928014052315264760403418338109383889895836793625734219656146742025818367855747452293616975655493389740364850853124306527852777281478501086407265414855645828205057831192167816795725510705993471859802916245600381611430268133218080303051736612825616573139791717701849343079017505504101579543590395772629335191863414210511225204709524177787951773224842709555079013319187196028542862692167611297526687404204705631335118113843942069965064318778027835126737873520370761153578815139325104928631022780813695982236327315195664918507199934686349097105459743546167391295120815252026633064530606358447570170100388682618298604132615021690564266946949852127357213428973911151646732598617380627532127186512447568885897262590266672745636261660931033118058991076510439793657259218437380613008841590962403516329490072239112502191876133838514372829081013402885267451249354255537280428433663112808738772753811961268291320108876649031403339986684028806961781363466682281115331084030427035990109608668927968774029822263298429907252396754696342779719307148939838850759428694169124183187836795351932994019181819821069982236302292744648475041208123491621028459781434560462020278000430228258571010584408031283651952232293600479450268478183794250191590570788573310357703386923314558158321265431629379852780906206176806495908823825843981399083375902097666368783058850933897691583704328590976386928554399192869157558846073986511606282114393768095276729325516859089296922567554429007285053571458489202621914181078789856150224731028197346196813206000529536879937665106466802347055927583731181412920593546194398383950059890509115567273226647968752003432870515700264675140561011667540210561128085242438541552903235783444997305475269146991511641918985308186692642796069262804968647610188951064824503230216517863116869418161194691103714826901976807964685208461236073428561536215070353534242303155272528540345807608105775289346679338838710827926027098504554727613515039373971734842110251808431309031590176823144558632090073478421453014578427805872017236171677531842146354191961822355090177275598028472335836402489738624088697539279975938979253435312597879276141480724823744963614820623411303655976416607744175324512517466074257644775430366092923595222225842712152664754148306915021195970031407151184942466117051149012486470630096389773042669139947900779721680987261167885020741327101113913695892873286576728336897808923928878420106047165786029090736400966025341706519344524404321152929995412762818726055992492463368739489413766431294988313170164324328702993029349043410083340991107212839102860313667940050285428702429125281472958410906836863863459725432048214178400326365686767091701275144358910761795793517009048792476637360627792626371909245493156600620082468399983145203577280760933144338925981961536277841266728373482832675775725809678341121599636598554068002396679672145640104142424948429588057802178588466937635764005254943264358531725786508218683988956578407278953007595319521666405859370141495193337553797356816234351089783713689064503333789299679312707000923003685441637744619165714554999598581262104864289190985117195937059286572070824463506198652790327208594348277819282946160224532142486236669726106213149663392505890173299362145385329081609509355123795091057603742393491538858216879328296633526190585210311680048496797699079221198909849309394970474488444932409144183345855676026326059134096372686297679836132061773578946952264641620493856913324460364080028213373847894269883029770227841352951957849506908755924054136338398617378055139702987790207847266130628007521519124321739555032341203420845736719314800020779665847083086828120949191093501863042707734693899323170104581516772656852771612762598468767850691435670154068713536349210432954955602413109056140649611907468316819666655359529520636560432308045729714937081613304524728512639047124977911313027748169890268431581685170657617687425465453445081217713931524799070938726836729872192781781969481843067852834050770379759982121646757034262964433078034717243414059892110669337994103694447566775516552582719800515533854976952127335248456132804631072578322341040623062985912852175770387274171617766819359770863579349551518572951844979034845894481190773677414519448128132866360144659955613441956890242887132704747738652030170213908466236355524610954893174115217994113820171613383487884184224573606479747103000395851137520406000341949927843831308435717205599337779844894461992969162828146523175491008123095364129940912623813276309543598030490216508694225829212691760592807790100809740470655642944966658298480025301317501880345854118770240564063094397320180650838869961930771680985945397444669249000700123168602986451570966990118842537602049832857012480468573473528342845319980543473785411895287189565475013851323319236678344790814343343100833094905987615813236577471519317321397353977469496120564675015391660719129501537952606530109203633866536485806077625557748078441922467627842388307306757272311728759029153700169380733230063541208023737596134522600788193211109419718866808999529875126483490464212385835012653390913978481833511432917320690818093520795142476593449238603157518530187808443205452078093854947196771019914704742242751824709376304127442435945794504336314417650459717028870282804526484758191463193883459697350596221535870923471530676142083488096442312340268757819434583197655302315658697217257147996695040364698057297457527961666618824791142128421975151873127248469408178501069552100298241482474084569105562216735934410870152292534761134487568080494932865939517728629154407766941056178756608072330325394322231575612093169553038544172473089137552047553334026882025867712134666308279186390093637960306951155632175424696534289493507074433911042858604660881843769171558901451906707373541233044638751178737207164268439714973416176398443225161135552579335603684704576928359064744217134443242528910118850416731401269956962170420595311348495968116740782753520025409440949397851014532224439537824460176183282999531469957063043034834009574378197997296373932312148432539355078660611685357280814352042285190964265537507557185572687552027545218125401752789163236264329848012011597983871354837535721938431507707906918332118393749925999577805096868487389366469405230975088236513895706130131269606483868617612319704437470903143948682982307623573912460991728078150711257757321406518245708077952142417263314089234178614355020677700729806069526981115358507125746359214037887676904371147200566052105466559784619286522779305670959946800230159365647144917482335152212880831298251321214877515569943134538101370031355168008040411583211307584205002223243290427405205053726573681148953858044507459969839897012800646547525664618101855816150438923098533167685192204282790204974807780937300631887603407275231616773382846677261372228038077698857805629185629343311212258757807929218304419894784820538347102060633656351234211689502027708425176614959350750676142314786972169550460976214296809896783138771863197298071897189610993558069640121792265062998602447672786584850482504647140743351829832090072157585672470474594191504137637019607994943982240953963170486059044539361776419377894492839927677873106461545820490942402744590951817373279481924773413441049292182542326796170834134478613060979976047491248340083178240373202986061931370823550931717267536404251057729890747406595426997052608367301024909932269672409979603976367521413412175490505849976801430080336690846686345662919672698996623968874401884275436882486261860680104222115269857454281968912484710582932932946138719972859861597937150304732913685076593500778607239402340752342514605935783357346116810866300416937244863294024045569872869699521500752309671879307443121391302099254915813435768549074750755670532435921096403349817791710171764042506342641775549000698725226081465269848059557307102372037710992710440040530443799705695548525516505225966713208504055212084054173281102681286846585216902645605253594202217744626475572971783416022592783641534929959945508226771453031092880961497859865227271179050872398003978760828957337184285750683593557015821562581836004244164090777665357271797544057071279540582771197572806070396755877373312323395700010811881983879917481785295364398345141825168504634145229761548594904074147768242600357859481284882956580178727955871621064124947375840561183737377059028767682013025789368948882146765831979322572660747398282800605776641694319065990404687386955847608115656283622288073158954914255133548936232464037546998730266033954571370253141798029491758169810988247080324525428563131192745717819653986981623734536853075654163597560962343436959055861289236282773660408351846303709884068513053723188236365999790022568610031878389863798868878807924972458277973319574930547618657829783629682982400521583111931589589416362310691066036117713019534586512804898783898189820085740794307768512975842431007189772120297677988542817223888042988108719426348582401314458946474436235194273655226759250741593158378088136619688762884309000716363543274695951391111622511807888999234261028690522618530690761653666754934211947392299975905484729330576703743072823755469736267740884953130799758439288925343435341645903890691974576389049439348527765420530974658958166089226154154977591780129731794432513519841294038912396930261919893784601230337645625221470070165836255867883619503743331632575064108344131144779797602467734275378813001576125633557012203599479704354176906784215327401156721089809332539361869496138901421302682613802447105917563097996647674000702800911060706694409152717942786407441013263291777128647185232505196296431470507691981710084239270814886238113879248249720745732991728741751348004265330688825479503980076913484312311060502271020492910017332902628852577807633978174145597657958418472530996262295327217732145633124065326076894652483134790351070180076089193185708062046203444560019375175103591372166652284547925173562084395942696509645874173499977536360377052650143938688657573729158678159788417470952482830019220208237187461886599453830002022596990885400372380959361037973332251357350440151614886837818005557601355160571537446818484282519224091171219128381771901985799554758738307661559566433362291850369034262599505314281837041579722867749024109137907217741762342825917394271546152471307167773004782998460214303625333696461453526894208122351400106071087786227027702383729924723658757182211438037792238188705530354906975747832731758542287111328551514277311157590669897564634752560603889071136549420123452625603163203020472162282277188792188801909912372416781045906940126389497169419216000810866440859523807345781082360613689899231217072375488693746223075929468568301187298783520198851110273763141622119303988479834184051760231065826294507456588925008398945362400619637793532976393720248632528765851595684422193663544944302099537946525323568890706728177350690357834701722261280173671098711833911259078000905317380780659783339585866561145292768292872056216601391027812802018513655293330806371457047649790337015873216723386167434187062297088263792855964960741868414282141225728326983647539956951542386853415254096779559000395479046539111634419539541726133152250648995079940906631011685989591026171944171228627693267656453294791163108307307856824664445460299802730399025294704815077087680945595472052366333261465319222340990515107872351631316206212292880375489751724731614267797010493373298509911989485037265876669791613855408179304046756688006519125634976470709693052014497796069890493387287090170403602660923067070244391965253593457401839268839516456491398795805803404540326564387621619377847845487937488289825467041688055611410847228566426093450670450372023909494874290575930343549840305898128535814498786878459897181629158108109577568548518326157568937368256806453734306566810699614615339641521627565299534323544355413998316667962841544562807999827580044385239042424886055328260439276004496713149796305479168044391167761368696484119707384358879715090559694554134919417562536230093801637457431777642165458580039326566429388902438670854324306858683656612959649364161593529473753216335529654485820570338150219076826163974954981547551592110843135866826594507807270721053838944708569010032554472279690082137902152946904170732185586248433077636657329851000434851624782127641630024030559393368397234438715553988509960793229616971075381513309027450432678396865983124677103999931900333473705870885285003039595099059080572924213080473883659057230347560872018955221573002860364600445689978383834901162864501239232326046301337508519598424509645604289214653185273646715042253721112120216462888582212390021574789542493367252195765694699999521299466119970237789310463934069250531186658575714740268254892199707610033423829509770211417943116599303797031543609893154360589930079023948595343813001887683744562659600958010090159429027999369235473511440687268867977025776636921436165503156088264852044922498285336943672643371365299623601550513855984241255432902545201451878153953461593813597370661372492132086493771924801679522125155503677709986831998806375928807950115623799643083842107295868338059647042210426842242357377168658965388023975753666587744940245214367694240954924841083387943090085830591252124097741970020396543040952016373402031553237331311537654146608820103744599655861746156921747282034815407793120356826994923685902038120879751593344378612852938100968780085638803126576597721169841646085147529585566246457115602386247626943045485726977343003581527788803662719586375961779112861231038939976228860771418881470462617570233081905699369915907019963573170811017210692338493071466850685947152768040827950966240887542101327672471783452553977488327603339987941439121030280732587067386518512816006971816643827135525622474386118962264353859955730274241226689081365817819090622361945643124487414659095771377256232375937558010075534483761835619330597306993270774022634047806943791914970142375327004387765963667450282563982321374919577909811259739307490537182299010473910754071668499025662110048931362752056502081313371362807558860764045043307660832750373074535390842063900783707860153850058042047814259627825621341945383937194391947897798083411642589585071289548820471570306516171278620997140728412148065470242609395357342182229571526876753354737513925713313959417331615979748299888781843488561365309516295203190302802112970254447889136581828521500523781131512066644836469393077887946844815434289494771202020986036077274307429773272608227880393101395123667729701444788101633999099439203916718754505211968623972036194305409835081551800202994792275069599240847615794356127993974554662314740232430782149554214953904188011663608171171354608469277169174642213235035000948849726411189427939571351097885135899233739282574251684605125819763621880589107737803130658820807887616630388103044148906471761276381422197188833148066080030885601744740762053695282137120974654650465442189849092882709817138929449969625387332220845537805148542929587444457862701414839587969080130496337792679467837921885103032787390875143618941200160290136157108970428894367343154271984124327643085456207962539131260223910172951484180112896827627756680510157414929255601932926205971994830995608790464650146622622331422526622894182696577339886023962396302711660538895478996439051639473484314346983408337822916076653003110170702477853067012115131864395549951556520891290390371043585291978598649897157468545546630340103495960641753935204092546855251764102983441878460199553534749904797898804681813535734491395705108304095555093963663218191932009070403436839056506723768914933831433485183597668904745186183886006643057310684641457395670374795812622145634702476759091604632804307328664628558385049855225316735964980281216299978611742028011768326659639291808174385700831271389685543422712652811040761802858017726398241948149560283060071066684311697960706747751551814617028823915639143974301542991089560874453222055670440770505907970838047333669097913555959209105087017398559382819317739078927996838432405435656381138788344089519677433921430403046440954187889216378934942867384786257731518905581882370457319956307048790535100139071528545324583662336252641058652745014205035223780274848188032772690807714206992395121894235982000932194168953194236548771057893635871237376419955290189153419432121092044627161938516037869594982122660524425065943094233152924566477590263950663418398579353607364636899144266107766780480737000967314234824987288582689905829590241211135571218854929287496891910940565815357723800197059659452904068531513689757304275588030091940593982238737483618943012704801275394976755450221278089223204445024297964957772687314580647107564312252687922339188234977208642862081880632302840953455366673519996602359650170315422597414714567986734297107191049200823050709420052613472309422614252107733094413092919138309124013427493529882700415262905089365954641275707897094977147422345152877129141810794340935868349249747825397749513810276894179653630887825679579571725092470285880375016956309403835646972681675096102708014261263914816007431686306021200189609819211126201817520840798496819578137271075760818493798720307505350369214228937603119118345036578093297201164138925335879304140266331333987588564641792943154176435137834341572355879274551490415973439175103837531264270971040782119469172032881884614129047397582667461255085829056861193622359670998455124457864302499783995021044569077957053264140941781572999183680297354108589516213644027628255713830239527620576756920916139967442342643561091155818739925771215978268854902605595408625720394489658439022169007508240427182556651974542988456550333556209308530504530969823011383737304694916398178020565028139096666463650099148599795789170044355724301873274970488324122242382110454176361910892278515737681017250696032347018539906566889329720420496166040193485750749826065758824894582588919358218893716152880872311928010855595279466895544494453582792155854656631438091506446063899952356008746264204406659843183507726461339889344615882692977842262064325873687968818263792992992686435610591337217075025260771719953783917821645408048129693356076844524731181021426671862280739165374325213411196007305877912657435566911513596949547387849583238582664119655778927249790124554457306054152656540397629064856344346682232051844732076928000411791648001644550802720602141508798830786898517826284470149812813816314172037602472602386111227501110980566017788886113869007262546819604179216290341878992838236860630574299759787761033408511867081969810803645819338844992163526249089574390596580720066117807774992596889351199718546944836614309658554866915778587774267801117783728230275695320660713171217392427577722190675487603765830909459362816719485438092558661702946540196171485077861572725168182395195959987757415840936900180749758342120086226430064815103204903794233342466132827258833238396387097845796538171088160713853184663955188537321635968257124856929392716689510566791041375608511126620138876060798960963514798477744434486577503277703809853314047592372482119513673274988463703865331400417422716861950079702442204008988905470023525787138998568951954386794375716740831232044575385113517669158622786935648789327483112374700181836874803077939917213126113378796291998889255710550925946234972348647896669237306618043724529601580767491611546195820242062900761466879997159857654816011631088109564491215021561240416251859923925228335636702069468096100028810085681005043593311310819406340671871559470466267988856618087869598616756091880769307462991819120945078491471960270617354127731848210069215848653608609312019141493510599619833362091271765833283769453260721495936498888076933538935501934126737835568994164788249019999615886886854366787870330801745324241405404239640142493473347356797112511939495035029062512492505316233261457830316298599112571805101596303370289295300278097609128324431221541909687099079310740477046920931810236280677346718860775849783847034858323064304907099242233071949038302824883691981286639601904355607995649048799467464955985957190582262475071248028360580612062038332871321332461474665558201566772082871389218623838330068689335023045950010904357377582847468923236875253313339820266257056259159796785490305670529653814058175839011741328870970496798944164832224305024298485176983003343553055312867539067233092132664948477484956899517601535872640436879296852499210516909178344882393330200038266962379114028247219111167642333225630561046733764543633257052327111158332932494893003429911330218642488908828357423789445629054364166010916157325252500270156635127157962005689729634976169066037492448262290832686955194934218665648998475284568322667185016512421018558388685801130120897450568154058894865483405489887417493502686603042380365983946814213594126570936217004753958717546960541103291443660812106407413779174270165717821754447178865372557049582297656090476875901256727337659781260629433759512277288358361276269659260607677928838888270305683996967667163881068684291415618534646177838521272712279109400041977817967925621433472268257467400490974754137191248780760861715094199784560946771072152158463993903605649886932405246679259777775668924553157547345631262970226883806722210742074860744442926128032716597227582879742767304065857623205292390208750400022607672820086424096817866898938516058172569484986442971188938026538606569786719410867490080959003573100084625248639690400890123005729544155681489215129784712951547422659207233972488498338495895124793684812148728131195384169822448146376500790096163400912209959477014053033873236205734276069463353478775516660706721493543309787571172868749588961618213672288311819092360763218944791364291494621395243630495627033864420365762271323590242750539871867824558673821654551124407318488645977271433802037568952011890330044908175855289386443419887726037880643304024663208255154088235353260685445244243108130351490312732901103342340828396977683389425215343524749643640549985972583037469963325125500326424012466390581220026971149871234962609427328606821582591076634343422272814478849694825139340926391057644474184465147601916988761806773069502766333591264723005461066219188398238100529781755517957526975238817174704744501050004367174319382635189869450626843996154800647191267478079438680839967168724973999768715297142962813960832240374499065374532942558805309148300793798189339754621793144290368047396881771342327049026228979111653452716201166419987959874277759567321525148959881178792905829288307351104774345765353362029546253100321836047825193989344893033701705031167202536155557650377517704016310032565918281260474211182611465865734113306019854914458071483356669111597628490571139654178869256873940780356307634333560559708291262035587345340686250985015696016382278024039396682795485441846477276530958243697653504119037984322115876206224817018327364178105971231389964124519771920174139381989087498863891020752024846901363919356954615998416696450446596448731939633314064735522763782457354537219701595999209583931233694795370035030694641013335844242358364773364695403544190592236900020619487949545443783802167984583885082693845933956424881405425099810558244251782450420126759999161792957747340869385609157538165989234125773228997804213379595169659225294190781694128700633706723883151368536183269086854368756504544642024534671282403999303525900393984204702547153413299548405437403934455417378517752241026081499086894483457976800396610433260871215438482643079038852446920139109028528145213929175946354543546015319799203167721366038327553567534824398039325897623385081044201475819838765696656526674820722400935977493332394729416578470294891914601984701191733665546491548243433615651188760561292963360099197297925664011062013881176917514287309729743613059351454711372229335859475957655246454065107068930360093042707097833736881950985783801244929320639767816999561066405921703150128445780517503379615402701166715052368140295088946269956210718376700232039770470284175813017693123415250477974630002622877383225953742085781703812132836316555887976777322677818132622280258399137827340008285377010918715464352033936169802372182965301426150451609530930072627459050585803162294340297652992995918060096460887923002200800898460814133849202781223146258740742629822494205468334441074533612389184678059474526714980908899593701848658031439515024605281354480743099832597703296242839289623960928811835543865904974465437344097479759951539877554887930594516911491661977027538728673029228004742578933238328246201735587983575386145805478739604270944449163293865448635120926384622453219462982388158449613180116403301248967068089403395351854222650549695930517497162616724668085677872151332969837026123091694244671412447617801974484121247645484447420756966120705567198460420250801935731191288367486693942196729420902445773773020204787139050968575756514355476182233640931987110985570949087508011497978347188239279856340458980019939879494909651718779932341905893820426160138559676050980538829817452654656626973630111705905086592683222788711952133056286714804122950240982743958420374297286116612574287405348296523906957521439412727582704837439373892128372066764788427409657493376314335691679033346297690399046843547967458501078188218332702638406522051681945571085436086615559678737518879549051734571005697468325227194590711384073770164213160237687740505121475450843600037703875999471658283118373649741914704591536709282017360777214718304779119269361325625203066767778707727817596049086899064092552709392336717594897915376810275998463439784696372454304465097492635526521863351267944252060219174547022032507518500550924933643677746796234535489287542533906904639481420868438695644353152855041540256858484496905494424398074972309909068834766968541148913439625226003556430746023795439946545278873567214865228297626812591251153312104699839352513626816827096873466587504569871291600330052485495515499759382357367490298551247385410762271580358274509230585930921483250023960125748229116148049100067925315199922107166984586632227948184888855487870487045669393683125479186207964112146595996908954849495835830468837577239966350785930594883413336268930947808217178372531409780186705082005684581379411997576069359907119586168236268855326905621298207813834817544573223582592882123354560335454038278959568921958317419677705145566644363884238208070642572740993853670151233206911082540545649337769573721348252461912541945064420854424678489930634758406744217256862177238678619056561083166654633607692409735713808967301587226326645504076122903316836657790603347289786602498056396301015972387466611951004215171300347274504554084328547538445533744568221636360872372704561798218862567583155433805171939226268649135733672021504349107905938674158393461770927152648301291827981549861037176943543766328720404426069580382315847587490206497898520138030363395056610641498133334876400199568380381482490406486374021831451569192696926725057420188061761814481012016313653752840794263554142411661693695801852019909192327093726717074387287727325028287013311851387432448387209100266085506628345619442875042317377793809549670083279410564697799490557113321935278124534103254526862079902941967624839951870705447329693098884677086791396213843849050820753132745485126700103994049814471980237651154977210761495438476865556078109743565930322344789809009166183908900999048349154312281373820854079683034539544741194629148716824926854352882538655717065992017482939776928912440952760956093408982669753827537411042198050194741774479492547441820108817749324106309101595380545346871877199907696918313603661038433774987045516650124852069158023654540968536342941526470823502545281783009380116115861432646540558626059658025020882227641826824793376371960398513525394332272524111141648116605838968430071848074826870064208919601855442381962005018614712232840784527281987187845044095036695622651968196559698992773049308610621349299542530842455091019136150093171099084583931215574167065563741398020607522778546281654525192354762305609876031360281176560872564038992228055228704733431156228371647450176670927706338102025157749503675935515299169975419094327133909480764826851627063545399520840252746414868914284166383585593479751582606405990548055625824918381801578126168353488801468275307105125362167875167227837518702894151124745335190199706929402624391543800031893037839186012015043838060175089958511671977125251418196463410067552937091512023606530708875115619651010078975808087367267548924472624711812156770121034140710239072726355504822068838552505678430352215682301418914763235463864070600510281360308895551514567058655872393470910273391775074483045179200314453754926064361907898209388014886781809943588396873242568506118868496609191764982834434642339332245050127726650126782145863763157130282756572082430534689057799339326555310447325799820047443426865536322961558307816679463490512770582048393896079885683812480137226671855409335867713225066386561678037982063003295672836596559269745693332401542817742438477646623217809788401631447481721313536834758314677461415462501857718267867150533002276718739756223532755020724152143938856039333419617110691762568775126604208551740119189480478896053087261761322360054476813278385915766435641691148241792680373388168394093967185661014531633584186014006527977259616796123756799695302435627632460253225198684790291636827334842132497570364823121637828416666086579554330971504086646890829254561475255600160862992606186223195819444091712977351638338411583273643616105407734128575849140292703564416810176337798230322623363356485178313643790982891184591586595779499606208767477047134922066899499682701955114314082391486325842151040679718075105400723696779975683341240397821357870943864098656204337106557674240400415554655147065495278026902915217836672731296584031970589275658587412888031744078548455562129692096911783791089491090475387101980764540768836665380825977539029831137206676884128516977182810755978781974661263381228317205502621370752300597491426521950527020663595601890274712486320901909171916655908606117405745265334246547984181046306977806320333955259174123547415030092472673427989819390276770045906022677380856421352078319259284205863166938294985353632346297062987880994969483306365614879607543936834076818925408773002858207449457963196042729982812270129562923427398674409018804425402856981176278571934848841002906670940978897734930182695983896035078333210382029500447704454301298245252054171840709894776603608578875183913270633350095203365215976852882861636044357756204159836579364565726286027328374089713303284944915940564139722878776002408443533826108619498228306117318089668125721756761161379271756057088707320820050463309945420915166160277629589375263466731408808227742679336351494563349026771492833661403694135186062752769163018090273775736174379425151317923348950263354572448625467780654299862379421571856399181717819907615917408891845900012332660912649419963622715117526093750434802384972617569774985716047290942309439326569225822672140756637402510737561381815424243876004403165814040162744782653416219890309865715580359084433445769469813587486997126026919668589884037805823118774761740428011577278911243357137389363222131930589729249106755909030805367060805891468316587502958448576787170356109530387050055874984694109323505205612805994424385630281791215001121609196734760555321951841464536478908171277253573479631835457694954234466239410235692907588291503857120097225890001738281852119256255238445136636401110562937658205465982311552730916585992065960509049463219915588472043120394381515236335900598064635925225951686207693161575646438995897651298386674752927804125026358350712405263198469419043338313730394745794501573353824692809041625603854488223791992829436556478399350127870515074242438337288692533921418863545179865430370203447796434111738784589850871491335401836185456556505577730825609546927546374041261974017851951635908854408575717695789591109649853339895350158659578359344506533054828106367496506034848154900420551070318365756440586263078756648982465360084868597925065482298572810429532912956023205978719993181552900239750504280381212525121544740443832812360875112550023195065045040155225107484183220872904705685864930113123490857911050076104963870546318045941590685039069910174899088738856133820590950899829998016369720982018931061169076429942985970565192046441077255043823584685245867183465999576556423293723107548032312163383973208896013300027411025007975768014879415358368778860332796835029402881226042801582014197947660404395893695706430957875879216881835529958895742243738831435312381879803818804227913456320599233769193801349672008630355653968118437788963845564876157087540250879761581166277577408947014219525791316795697975698165235643486866501684267613432179226126037679855537284672676850589887862543001541041889884798922121894623452532920736608951212902665088510471597015183348510669922293577150408714631472795642263421548520995732931856312895570769565883529893038254895049573989247188591532163215279366674990352432808283694627532567135301685993229189559298777858423583015347342775638118203263769781080581093529021882299008532130003198498620845377753997289879273232332884639102907959182585883544953490507681052565854386119504577907322950687589606431143324537675448021266123347062856003383946353308365673795270456685844392608783743236134027477538123295955613464382539354241003547646817047127638233915559557978798712969746187062133698742062858313520820670287763602122571378954792849687028065996985613757475788980350433041883450138596492536356354102132068619630690121797325556464735465303728680874853297684270942831916754466231836646921993485972507447775043503266617796556423089443196865684660501871640366024119164115183681551683854166427001240012741524301112414226000702901363082228703071280049107014736504230770521963529432236314876417691129499469333095747592731927447504236515479536640008197018995788140726270810629155318083441006187932421879211263744938776850016451655054392721825501075808933344595482741155592085971936192689906412591714067253004466331789012604112967774486351250717400564111108866694597503469680322522982979909750030707020796857472921949087526723097347640766705405742745542435242420007379199044411405411586688228269127189590444018698828410947218589785605653212553703394283809436373951501450664995257314189065579918151503402931665878036982327502619625844815924272977509041099197112306009984581080115678508596665653502457219396796198237114347973626757713371856818617230553445601231496814652293789989414117633994693237076512936242031605138344447153258156450632266075073905498400211890584245574860175446731366199275076843298010985039020930670947372356074027136574958288559965868683667018099137895006958239841872951568120722346835232898616672120372721755552244194496156228342128289875300771637266060840370656656540065900960333074526790744127128754761777915073939387445286583319255804202248432668669208634907856823120177540885634636397067470455081383772992125744890547029612944522845852564756336718766175367623214050089216767866294473314509539248554574847339760036125535114633712793642306631652378663937368455826999281811537816962517081567232392595878712027928735739838124064387199537601145448862708995108271241823187594302965967097893824884539837661541124516254638888223883538976517801479264980075235335920589862811593157832691290984579877071126289353158863455392515263767580913989413003143650706762162793279970726775840410372627057377025268381400076878237320350909979251648951532410823346322817447782030336457583824247522946771933253510869121442180147347911373221941249719739651744125860543082816427556914875802487383771743209751321224211973428781466008730196909386843989059329794447981472443517250193503242900855167375125992077943322648545648150190309682994262219914186718157425517661894490257009212973696468874971028442581010289749159041385075261578434167936128348766871320622624294246295906191451436885144697507823459735750504877336920184575248122560920447392839411943125464885808741076196603557387440622860895418636560091888748240978967909045711423688518952717887870266687303906369656386555695438632956030895120978596245451446009678330415593841762622508682204616001156466845305975459355328442741182274056019590674751658553859911091416149118651665087468986908841461692878981482977840579072207714814622136236309006635055005212916134486955810645831989157469458892978901855434950516222193173953403133779037462385229545734836362130909570900218051558405935539918183615970199725173238083855591789268891745261499431792802710894512921167051737697316220298566484459125645722760676616376062954615389936381292465861601982800180316014328901339796838770112403991408440428125047738071340957685835691092003736314569270576838431318670862661240101593948952278354868690000220183230327572997589636072337498216659937469008350788913310462863316356781748892734565441899743032922863914308460402239097309998258469422040591320284602262997727243514228890080550866161727045796721772288757184237909170712387327203610377603450962340454841779849538398189481283566401201917445815541306632635423835820307635272292579726741997714237588381171960096690641260540581114450161885085840169732615900751101681380861439188340363650951680943881513973037928683908656183977582193766414800314714826477561463831893812584929629889491225074614550126097149050694704864539750426410969739145130625455712428451789249219766370336774244367979026232549578329934595800108907160692062737261327804051866422238320391860012321896634089679994117240912092101369920659338924772675171333353421603382535819735730478074947991022176506928470296613571873262252405279718678203736541692170226517239636287738662719377522766043414994025275532458036068892985740989503582545210616933860014840942926904620205165252195182902034859393811182824576118522196761428285953880387842797601877993901231357050236289521795678573136772290808353344808132920703769069682540011732657567858121471209006311601148627357840818325785680859361036227409627766229394999804516641005960276594768179198946704213172430269392698936801379951933210971817002577562879002050971921571358601785331172850901560691205813429096823125116668348811485895233221506504038201744204671368654678870619942070665139435683399296242144772483925094283990888855753701690342883749524793077900220192875479753748407498880151717943798729470850331717641619229044928557839624555912448936048212338411929260486301070266618054759127550257671231860227254743131483370477364936438024700857230163737587232493247724115479082652150855460150160375054673178715365629478368513081240560403923203731134439523642845528855700272272176378932430667327002837886162650317326605282132415160970861083839661817584434839052195158304593423180393399229732545408861750105066982667132100666254035418516962323877211380909697649732645576390041209773368045906156076536888010512126786785420530575191254257919695959376143475354457688528941236114532707237114326794809201291443142358367353322804852352546887012226853775148476436333697551668222462364365175323869535114049037815100882060804877867565053107604349194001850107983358047516599762127920899894891419678307616298409470716491395518922103587453724839892227210422509967323232444177089309317657491600426781040632506125919983346452008008721035560412840773420277763403795802839175665754301214323877318137987366582901214355386185435965489900213330516214405468041752962641811890551011698264200124702417799300055190502129178075720306101564918554139952220476027055710012761133665923178771358547746959340948860679140145279907315330846953435207462491601556120289817683674804789971245864589122263593338172583331965728232713200561882772374851195249318650117213671284003760094650761492185575587866456875111595362692240081043318132660587088420040247572410711815642375977013753617572650611565323110300789772379682570275208888553844493092972148124518992803087323918735742940100388799337223044767582724802682791148331729371109078515886672189371855332899685334982751423016544978455041884627612028791394417238944514054294382404351202859861970916658767283344301102356552738980007876555166950215064701561720287634505053064847980216052585756728131773760859690231098383972384089109291264341659109664037221747656775496352406025915560127111675158805046866067092480475953427725072617400972968364626200088172613047865264114794445681905004408256766577868944346049415679843818194762144935292640193854148195036022772854084706341210130884127731456310100220859188480564026383875904285551079938407807980828822697283847926828272310453043299664271434088659257924345248604970151058505970723790962291885954706173386302312423316805529527310322040113562432019512340101024227914346331655822709415099350264601876921718918633221428520278396333826081268581892296158125321360934079888314988921988948579126341915351123238094419790707100225061622108506328532561808840616266291469727821480822088120816275143141969317986310929472813278401798565734564042616292057701947677075020586441684446915383050928301815971598230467631454111439433354573195989645041902356300395030671913003007908386162328329627541280934498940194532279393020700833450513832972601667171103680601899826737341567760788937536789586689951700501181374910138835995238768922919250020633481797013028947432675120396424059894073503877452313865641940901747797474480639375144835199215886528372276185143603114155613858726088220749255373262701366679873242924439150616513002398966778680558350323026890511891068467417492711256963467823595960170201618601613026659999609139983061899419049222937718900581995036084855153733909633335361162914627139752841969238043266585711425780140337575037147826790469861117910268017350038004213985237205886731404931987074714525922670743753964865131242952499222675342315344079895432026247664237530834894529235777280609256934508534751633777289479157078280094180504212972635331009451816608299594764354410083027429720715454306970528876815435816869056667557458985714585734647881896706421501996117060587176161039352814431328808354687668721135386918177568852686516252430105464824278076738293302893176980998462750852746193263197312743237330537554214900952553384054928719644551704921968658982429464560048223474390003209273898840656787853114843242978532089987189503921932670216807313257545892947331211781287039391025002751372834719051320820232231100213033237671211697236633290027218210689100875965677473351198200889396168958182511056092167268542374620680490470409604392596413186294464934159037816280591207969556912838754050432544552829597475375259860947921529056022508576330233966020180163808063439798199631876629867365785522920489662440478716885880377098437503359706362185522720546282895708613303823409153453400343250586393675187683213280704965133072940971185698580965200810561282782567808905857867703885822012636781423076873562771207191253337405507693354624237203978697009634849477711091291417482140687390589675276648324961554108060228006013338137008539276434772406428119595903206016209374531771598866015033458569865994821932262685265777381166585070457206451359448652847281751964577349686613553222450381845996646513027008084736965571737398360532590493483918378825730980318386973672771532522290117099015792768378139506931514235074041341605361343278973016716794159116623153955695639063165947009353595526192204501124275582697635183938357352774206356107616396099975812985114594334563568696537148192072810747551373563043056989079161507800692585848142770509282780343402875085499184173703662162809142933871493596436884449552553493004784359021314859507554488269779350724621112381663552436121377952903960307773848895366565815326854359989165124502666799194557228486456254777546234255479522333249980266506504781219721522845000645479636723206195429871079836326426009766485008544720426678110578905856789355113516988324799684321032568279881640917576551995709432430388886360239075346534408268328440147126637028637693433695478703593873845212744620714667893910393978910576869034916606460899879717807364828085224042458480301539976742050608455772559080523574716731594807122417596721878054089750068838028932294918851607854722852070410389843184680676333610826201664741277446631636329695437641041448872714275390011899912669070319566459327568686120153546431970391439762007577365802259165527481338523644874184919105732274203119756994590078703059273643024757031384966626206801945689064354021577662146380729170370852993836997780753629730720928794796623289949967446202660768934947057667243736770784127567999430802225567795392199580723230129949598155261138104539122676657807585445435221491057245861549800852394962916271305651764223758829344432563527844624194398837800061023010439589590951012605372954697961885365546188428116264691213914182548248724649569164130975964193612212617315362198304486429836744402258798695868782511349434063021523783349831317251068308442455502821283622445084336382689494964695325379208848973624955854768354501780938900662532975028671362841104299078781975138023534593602314841266032879970408075126541695578428790725540507014922423254500947135491730195975858833004159484956353841557974137077952892528897602576546890147565473329997355509772471642329224711813521813437633177806603063220569286837049214086360537287381173536047068878751372445413847405894454622052975035948146100787807652214537148912358865102501626722178152338120464999244376260576036149205350021940436254870354457510671141924876918026588937417296896180310133898323354561944510104539655192474488337030251142684337991351885833720751847673584205357405742497125872767736402723009230072628560993998850310861408406761037725709213483575964386664519853011910273390228236451407835959115263701850155989121024987184154679713337726923989310113941725033467250424344986468097501553171647013668467366820062585071843132545883778470666807495515767195401135242546313065125708318072839063913373007867139348694022252805590192378028870845513451889344475764190647427384085663868819595606983662070363991789671906810225363597028933465456862754093518272781793608017556967432498336627808283272921190966184166702743652240885266843046157071538407200389128520941530893923287442945091306154793399579351158288254038361570642418466738524041219641026194192062051387100443901064402351390106312597089825716424024896828394366654701497170470374501199505269484036443495276424605381428883965566382106941424230104171431105197277330247487249322899400962107605725443488553330951629722050196973898887339123035953067481269750084159563583567706299720432616846408777606771549139498960576194207353921832114161882294534467466533551663924717729246820290242811462572602769297417730756006613021598251036991195998227622595561381196515797848325944614549613237764777242023295061463162414507830382574917053443156395440485772420280901194903791170828612161079348642824499257804394726272235820260648438193449904121876781662288603148376061607352558865807699852220611206103754908396109395258579155108759823074716900141290753501990560318254923399273606124259391039206237549602786456115467376332036582144044968501042411564386365753355844623026199083605958883399979294879287051860128851926456136213241201679948017415542698382761749860412537204039608157459847019324384429567296828698271424378827356256319847777006559238651772171569317257042146108166056346977375715787809540256643235148056520695495166275856673856407500316947231800565437960675126854429678213085891360062502108425732955003894003143671486430904988101823203956651935144790162598356505573424548777130701677887017448036613983356946758099842179116699706134218309824464842122560666781965477779625819703369675223559954337082419196973329473601337843090662263211960291004593022439520619374411348763468225001430490693391358137000227547032377597056076718898493647564959018098099151283067227547736888545744498299625744401852256662858528693817362064009541534445972186731835159202770443506378896459550196627930421370247650627363441802062347724166947220518657407192184034647414851028480942841913439160059706368604229387644678877816019037733326144386081710036648010251803338954007231852667571556087712374385020227131363105240437290601829332595696984026699297099131268194297836960033192651937418114190581262980241787963546555445825583219431502379867651244156037037170539975057031578939196403279451789973986306229438766897398458110513922268259332178595350073689312629706575212600750313499595479326147591637937886819879191898188455091311325650111143820757286071038179790278216298161623229545084875600750844007476881809793659366385048398397839584037763023969908713068530271859492322049067378467477457636472214141923887730017483094779082510720086569368027238579591332078644766923008699659791162485737621439507993408988902150471329618206776759298715244204631731930959444660933836707013209601158196514460509574995937860229334055578509546352234192840345581270126768414729816539468835026037471710553511139580106245620931649413989891068459005646890850144366357231924611876333868573144808454125254061077122639799584264053591540420793061194061034235103951649838012763360098299235968149098600486657292334535756376369650927689852271008794536008847137342830622685386800185897127547746844977298425228098609512066455195014581644177418683609072581796243985032677238044658785251117895260690834830032842765170009157985556063936142481951709590312500075242319652457304527967745813449293610589707258145568623065160791240567704346484336126898793798084144333637373236953659933608972445185254060407454381706066609477025649459603685866527391766651256005982262787688322705295194313492024064651957375034329042887640265410539472992616363092715976932184111716584544294933101889381077428192489280738498425226361868350888948938878812504197615407128242739737081405199357888083516924749317313737644638649735286907377259359383886449467838737121556802616753233494207464609455885956094348902239807658690472653987751413618646337640569765476508049397086396480740821528795687568419299607088717432052801643584805550704974511004916687211622071785695574749534390635497191790229158970915723534978785982371009180180373481379202186069727654253897582371880816166806504457461434173159633070688436029733599754157208594720105950348729093545988747979220871745315829660995753327521710788693119015616998285358873149511708069379637728162923831380396231511086763159008413016950880067077558114885704278933293934906752278795091460876193841160559814050692007904733544590225649373484833274680105166681246025550172404546555541283482570790484487070804031091727208963329422385461313152231143625404608965609422096974327721982874507128746923948379370165878289842039623392211542290846210603470547608793273587423990298656221500515758105343727193454052439117364737854521238038870372225554592015037492088044797664882699500886106502969981025835865706421083790161013431641410927110146562641227419473116578626191883337951203639731957220516604752144918758821268427981642549070574719900270448790282045842717503912703423893388321397440271739032953281540015961953797722820388202548736402787186505193509054614163650981806256139313685578059233758439404028792791645542515484492295432495257223459409423240117395154261327011536613054849593129472375983732071082027278263448053423366150213151623448321678608587813439346134996985253647208206218780332300007442342166255923757563051313842567921038408282275899515623938180139519072035546455737256220461307810406623328511447590921963263322915126674378782718873362004347925069637887060519345323249865486868418599667251149753157818282404189863280139092376455648459861857517553462878761725644609127097763565845835930587894671500230340260815272451660312337327955058790873198251921327116789266864440647009201017999323501429651617167629315886193341028610966653686044295861427443100267207570401542289847131051422031528712892991318066661745923661780888063840355779661151733881528299730902667567856844226688909675483386728501305767412664156865324619771731484318661387720883667888174119962056031512086656659950438098058868191968270621083546758152281790023748593745809993935879826334629285853840152491501434153041036370838865038558549336502688836707471683430864312106946766953992639017685832646251840182063758530538174102677346069931495480589632973397959150691764568344009817323233868180415284285178800371567800678903105730565131636406384619329985894343427003436679256140034419002102269829785920687619461785205489854446605566920244367302670247039714193843948279851256673132607453764953929563800079722463057309703691126871706286896304984871513221008645384595386098612251833138468423407618996596827266543511345469391511798667681907781989358812786909938602622676708577593994958876805755285903017290860138661933453173928839710220576787205026810460084051036152796093846662531287521761628060813133297840127217562957229775301065755031208810425023586669839298107023722891460616139177162390654596500323452823981439344648247404546687620624655167571656925980215855169164178567017786830942616222108891446040349810439761502151647721045020469497817711575883604670475679974721048454795423418781712247872727018526049571923147033269712258131639482640059763764196014158696249358073342568595323643297942845110161248689607913391569974937006684671847232341821555921227177729469637536412763421120662842166999588198968911810609628590040629559059315431057399502843599179754796878991235484134830077922008346702736997799349228304234272142445568024480276681952715830317066459856752269012492686574446453094039579864303777244738250740642793380509375680052099494868341557403056141431491381694167513313427909526131927662775030667051405799784417661002605122701458498402081920037957538027463144198942704817548929787653632156407707633072473890807017956718178573160259159663374376769750672037685454237029589220842630788658623357701065790931941691832558928858716609703027358130703905306177350292348108027005614769860194721227368989966721969596060098574732656297933806624400336813965756979851128988998994617211960124442319306563112625504903907285250668192026699061845827744703948212588441482026114727032766509656227325429451566867947014806203492346268678514091278916819157004358219049676298890020553109463302450382120798529712211467180133692213025157417802506466812937338625907925937384541991529421126027836073933626724671656566448095364010246312944667399928251140691740261458802320540180107356053271615675092206207360340297470890325755775376640879547744253946218963853963609569711754910350380726118072016122560685625291058964969448513257141608044978166184333131153069096243949663633692636590298672761580433904595221125331201289981909102355042430247242513694595667160619219855949885027448575724155384995513468389995000909913059495395549224840023302036892299397169833958847986460202002701836948133396455194238221022078290137981254359513529508101067927889482482248871968886469223182456683865506400871874687042616024351920575417263878830547650935474470396160426929218483968146110076939732452690120356631888466975364734631342542080382585224857291959593477421593561378812507140281866572021465349064596424733209284663657608397031632810851791417433928859403595809389025425065160370796128317374315599306749499623285620972742473570241004930612457297789992296762255621976979564173641496938168487688251934318858246765006078793274633955868092375003580648377958085430028559972560278340740432246657923236296487236522592137648014066785331958214840036691789088642973398923258184106593320172219337674278144853542507980383315095670874791586001801991846453590406392608757715455878867745029089934101405178479350057162026529381137393460738582834882011669112908031017070055161102784110797724819178885621418001885887676914122548790265349253935254391741201777301240501231082470827010893522174178340447549547025258894961631919908160876341327843227597906135340109315913466410880680701552921655422365701251240259071131194730997352750440526583865835865425297444416772526247517918230186650788376044550765344994271826996741151931802882543465549348809021051321913321111600401624782599618299301689395021226521658167930966696821141341512752334911465999333930346869446433630308416490232095745561641272531639781371420675555202686800472394045546003939642667417844948625877065975434545382977407983262663696394058655948514015768150817224804567145541801660441663815656907360325572006030293358906768026638411028640001721688066064107489496982141725640846113065366159634494058110942121306282633163853636869090263919080532054156111451300950270511150502229084908173985669768757148877700788623432303597209035540345487298771503774003718817879407071378048118621521028388322193698619405294192058229294224356738573544265483063365870339197543998662943965818881968628063473572524477564785753945161200488803368487368881157251230642452261269102535732769347921152178597174531606433354935546644393154071675482799392396030359837923034431826848158289861030259524887360615094475619243117086747981853478655819841458140416920507506553467275427425157191983189169356186235362376797733649880754788972572753248283922686909275052327110015173869257745082427703809915646480768808369424505639291765820217026934687149051615289498122238444438128797134139991959442748302161674833973591888552185980297948558039504817625423689504595371460930974136276062142166291814957625692897691228295682170009680584754203549541858836969051163526578829099016426679990657849301763603311560774417007328808603008345907666602415316864815239602994031259396774039251207404975601968659916146648372944222534745179867508353275059209068146291914841055605238771174516829127127299989267317743573583263889817306748233278950846522201362501701935367800268494164520520273712841492125086309521194701384552496258444920842461438690058946865834775833258462180091997551599272640998900563058814443318462349980911831447859247572255533724127853823351632715411302542847784428290096966088518676237281230468462128066183977748881904311363646216503511631639922452446643704407950126731993219638359440854099130741931940015863005300312093121997786085753681171653996406924826567078159180679331507459741193495326420754063855403035559689518998963100667665116182761997651183004101726611211068528811475419668883714125134337870953312643416481543853265440694377464896748808460344377205375037118759767172287119605988010195833367408783904427865180552819736853352602941983794147186935005677640073018802409359664544659011624030476853198909959122650873786118891693827864876620905541907843749875302294494800337235399638290444637000134370045619944162956489126235224418524485979329610874209678294476389437839968503724437069743511551069419981913660211592327953197628649402926776583192423037529508404143584243256024708788185994123622655361805288220673269306826298263010817311160439687172925479965767461063705288137645835878228400587464346032336848651800286334780477737302979964126062000378856911699318008889131271387334536333205042088666954692153491386235314726070411098851524196785418520799773311253959502677354926048972457946275079559222919232860102001415718544493396014579493858677081417260473133894327807414104000755895231363334559712879406155869442610656740882191111023303074295734555021029473842180031026973956607688758199979243430810546181117874354561785160427213816488946916534367076256587112698815925576219310733941204395824393319651471312452280569574186628679296920698650670126220098658806445712578568640691951140441931360857825120926606095669455131724004605562129652149234400547566090223457870942071209597217700499951186566541619090256732755120461953876523055638312678306498869759487969269656115011981831309192058249817801548472752817561249273730500826678037430134425707841584123894955714694515962641529105886311439973620081748016003370660717702325752839972571109302257413907223681091085062642965639548317808282690003828827828211351671073884234218538763580417391087006373236268745753664903863965834754901567047724944054322031128309780982205692645476346122436574134465411689224620964408144180452367839307736955379560166251028392424126876949717175132984518265518363122660050825594331982266533918547812329374231659202107410722317628320763714605908682554583399612072135150633243141478845833232422014816643912125252457184566586301993207570789380582042634622892031401175775947938801657826631832290570206372518163598565236842915532333592858176254124100245473001189630755880955608149387158043599423252448663260723192913250200904939905389517677774621123311932208500980106298341953004420711457153196089451291778458676963427846214241301954324665041063994419554061177449617912792818683280118917853320984569076327839993193927507406664264831981183530165911672104655861717741642437346198444208611032304816817440406090851608425906088197772744484153482271192193855668484523051097518492523808583751306144637373236432477468632384415240525492222414987469261589958504800493084496412536709539749035955987500002410156586859319656096634891970286263688341795171562769684421396263521865873889299354808627204021329897061825012047218613906941846200461835713240102178970438627782391062913716631687424043869769457978396955720276527249432597842058267745890712494732623781917883433350500593417305292669073974986053838683963324539886921642009042297761935121992290531585919093206748297786128362341568218643787760053103060161770551389702731305063162027567143552936698567395083186744653562965928796791956975415198818142643059129383085303832291521200604732909187388255699255917743626450849823050069849083963286526415692722782723355220574771422765235796421353875691676145937599131779685939543063430313990962274483638081630813960590870157820869822702133390131267579294069205878387848217630150058816936716684613496680868633236433685983203920428417317355578445031225152529529904336465754701923062433340036753098322202943858945996020618207230386774725842462356278594710651311019884574305413207704687943211564748071341975516972681887619186001816818432713884696401912435701323542271154685690613090369940996676493100796267925081516282404889023696149509024283303143730297638237511221943168251957158639346199488769542137043246596039815105175103304560027943200531201488981523807384306845351439481535757048291061977554897696261444069229707995674068958738359464045750153267859159617297733070601418811792281170622424326536416136053870387730968684212448247540035600697114409062795317703950638670269084077574368466156493027393073175558859416493272560116400099408030081090449561744278012935054515266446810088870309505056947914902495188809569373206677179496290249008249742081377673080995822074757424316384520159786233102774139521530978486682542022599782351633242974936206535976524908803414583879241126012541725350007748928731991167694890318263774592961545449146329192530681445854642659434176240700273194060626653723026322412425400689732093144397629529601423759487025512875493915242030753446803547592684302730400350049265753731105254466141295035353698274734134777164631654891090381885995010520021160328424437421017822702290074414576981654217334816867923269817147788560999841613643640820134122172515637733891175014917982509714876667184788736478061217326141202729650697500590994859349681262728776493654547047877638485014566526698663573312533549115938484446922637115851647001817720310864702064403478116211675219466109414069233081221408755390112932774778787094281768139229275395234394342563411823723663787429376900981164621536509982704577749536615492941971849916624361089485283568938242375108365515481091489420905541594095632903839344765093613599287243176098672033831519163387984234478183223298033220004428923575076375146757945505873904108777292239206440482042318887933370578896357042371436891666770957781560392405723523156182383296942016919115230770751207622859276344409647437621535026358263250646290546086972321094150296742357816679750449799245973268687104899902634209832971912432922714790291454281839742627547361607180945387837649540627261307548983684799648367369618733511790930516471458889300944916419561847250418273619946316605317776606294630783599839999754231985743637118323979601009499301376808079278301563253345778402134425244511493510458002786258230395182704761991217156155841316991588340903030577931554508085600811001137727854970925778284127243814183626361597901314706359445824262466379357130970429623444250908611813592438954589165616109365324838984401747846807610307063322674823031116431300956754449315739072850132149298282771133793979883144424672252705640818908006690929342075530521949568782848263963859082290526397068182521398021386227464251951999041600891559508586183026746610997269295677850546981972641615668878470015287149480276384275419724611402872273276231946926859360061787715817701867567699694008690762805553316698765637568520885694514192135685374527283714984102962597479115820246693166205254688873605553355378993011240251310633795503733312890293732978316352157436621666506075208999892010530298697223273807383410290734561287277668630971034058295816802664772962546144058981457803775668902649484280638587175172921232005181055161322045427775932298655772898665922462503948322172089547249354204483654352453688928838594791950295318330641346383668106731254384964707006435227274507148415617015150256345762082915007637985530015911858335539563813739951111632672803921224154438991444353496470775776070706154117857086567973003286460506440765410359658719761464222532686268255875160104864201942478632799038852615244129970909375619648765698563508551293761923980008245255389771191343457184867524905211023075890623681878363696513180605901995391792537035538699653152496147057635788228541629314703180858858471525004073975717548704858137891924422307848015678589301390157420846459055281658752233516310988180238743749094798872787797529986363659803469941406026158633437625898752783622472633090144137237072197786896584282441950401455619220325779617385387007345223220444518516687639492523462098633667163007002395020839254195356963615390348847991613640003671161105015951937911683225132598062797505179315887833394358823836613991617475714084797323190167894610972448266811813595156485341323137367607537911294163565375232858328462293214455928123303642709199465750395518680217648422730509948807721795142420888721185684959202949495460913785990399741125299959229826253174052969655013178077762196185414898820509681937646550252631005941766060335301452565969121166167331427195970230349715875194420789486616170842829029102935345277348060898857546449241716001521181511099933337876992028596137319267609219800933218080965583385113111017682435605926514224587333928146422226956058205691586864986681499254306869432003960928397333565234007475930112101653716113775327910749367061019260403120900095566614286871685760688105026286263369373597494598824309088316647464178238137006263751072344791138461299650406128084366518425041585196850919944615392398785326069336295245206855407833992717737083328044349125944332236058714611745659602225809427682981920072771798609903892765842517562172282979260528526968228964837239525966733607412816360636891405845410775195976492045306436129495820691566423949516096776344873089311423646949932233484681890134567387413456155908928140207235134167435781176765852059143179723250903359792650683994008298875680577913988872093850005648933745319703193982603373102185769203494696117954384112927299471418445387742225824825274076460284787578087528954772515729253982217086422654965313063065865049028303577098591838613575037507934014546251764992271432894696673417181647158300770347834889299704229937401447103184234050286668929177241562754199455511946042931841958142502252905363627607965892337510585668375393627314713391982760844734949554861639421399295129566084949469407276709857360586380189167465023260326354768400797917463169404847101453988430979498890252880772137896745751474541734429904041849395309719980727323445724356757016915148377239905874692130570298710769922653102543643842313584773100205553287182933700798461633314253406619393665104520742002259434138517454161659527238672467512411485713964866669549045676910471619825140900610262828302032089991323067366345208394864270280895389616998448838943492370934413620401033653326127099093357775340833200961492332567924987304850394458514084755266638271119037556709756783750855216872563451641223829162981916786501326086934113018108764333345629086294542103672362882619492515918479175539512238123471729498447761761742099372717305609576586913268675476043258662645344884011939882628565161562513749956361821110389103060683568666606596483414971787533328868727491032073883767581832703240881660331782446853282011223523501889355745226113630089675495877283961296785672502738993039518031749393152930785615206286773330708701397604561882514352209785160273904907779095291220262621816896240504093077623532947437697329178043247245067332348854875552481013889523887994831606258040610768004167921981668550628267111901070851639328932944232939670006176458039984265877254524271071627096075753294984413825213459429388155857460295914208548221418056018425860943841488901165571672285955655729649715780932952702673636475727135977124240467503336921812615369875821571303420457769236000567028818876577602925681302468442036852469784115767010755120298422625596933607087706988207854770166669898104428929039220291665956882884318708397977963956457349337140581176019863922519741895381477435863970423377342522575449583263506325622992807379911465430007238093529153756874446652076717441273636019817459615400601088151235336699209730381222488283633392747337505582658778341177338638578218958102100901405963540626174895076644247150802775987505008793930675461237497901710848013803326676383999908421455829629670111509072231395548309723270133789751032736668042812281491841031394338497756248769208446640711382916753169064735110287261292920215050526473442488678975501584673484974452690754175355696703660763182494228501495474910851737776394116853452397434697559091231275214615228869748809651833596567180399911559512287523531824907486235448026036274854734978983844425750105940369646551939238271711674577817230787441558270788857564994619821196825118346295022438783930229948881956377097429635651557491945217999773358232023045014563656229287835114523681753161058814110207040066203134033787229853950085566434859921430144722880450809607174121706903817242222101451858463286511713557090933203567642127795343184836501031531700992810571054679985435261180186812226741141475510272564801554979490452829693421165927565883320688727837782233085310676019790898498615449090342245111449280252300465211510912390981490354290931231702605468453285580636323940631162899335448856682999177704259222045639068154881864190771375044329534443581783529344991973674354530110342340604598728391713264808584332817522812642971421005756415436280140072750584264073636573916772492811904249470302762770668031106189680778153903486991136405776593404817783940883409329232938938124153163014768890310108917452094763290655686072017946163842780419156618137832668578541191204531147033899556880332008933045599166089863923816651302223731266925330311391657332402097437393305963673062371611876976049986340245092831883536003905133317804117571413667873241225144982182136116689973230183659313792827567574424943103342204229859958336239533367148247143572252663423484330442407473653422541067466063198572844147495569706544622298818302509306673086149020585200122803466998067861659965890221533959046582924232911368873364012564339117314653922098336600659093546812586165963592890922672012245874261992868021133038730957697362108665824019555715854413849067607192478168859100547915576296727712252087495872694271832823267570133897648067596870053989188833373377755210559752789514678111184819955802537555640090167187261915543172819707274734280879270527843004674951059130998561267616445290743894235995176834512629178888632629365800480027337967012847841880898519026181792005613248034728926892385611160838428737822861898450640415581316101997167319593321828451106398845848545206463850494645186492175225231591790247411782082603958060086097933879754126592664859236974645369677480716544949080316168962724423880636155880177517952676000640677482280331951640147306871477775521454874206516250186306103884905351840503915714458480607811346897144201540880280370120938617739123250654897297614455007662874569079539997593705928499546093937548103228542068480452490051145914256975286518896839248527839192232971049471800264001462298391756334169100639181052358962444074375681708498454265189915179636328865030554548098631302732757795685450331229196336786561570844780670276925287946357145255671419661949267353412643646230180759187456493592056090696875912660312986433629625707443756274053945699801699889898262237321516440184578936411197377426162252101509618385412749102634904814058334451565481267975265864143255156769466363543179291179694506595716842546191891255525678276411537581799821319440236519045354371988332008679982856142757101980764770936250273080566174106431601193797459897061595275533210844399454245826601384546515943419798416777694815314948578178976877120860946764433510013111447159815255174961334163006402837580392676713935508869677027427424060712439566015387354995630723363062185976843760403279968714935946064228332392359362699108629478967664650362313038259795992448173935519352093353489330402229917120480337953832040622810256310093259335010102858644915021925723175801239027402546249362753959401367365079922242011053516677803639003639728804296706366461045051057026090400096700530780984930283878123271723238198848538239255919934371349889474704989838562380688338626958206054243624229401940740679955617574311931997005679030277573038308848561761010118830626125855180266810714317403408147863732111071685434387259047563455736027173124889421948392117557822051483906141434407540742475873869969981123288084890887734015036617079296972012197563899527797174713178403142469722292612224425083750619806523657153563005838743834109933620560258557199935873212106011960569259882315209471403640001872445322944878812828485799170389845336712828330361884670163786732885284705606657246474368471050984004921575073076705186078572524446698558910392245216993279314420364803125538593049549354377401846527305681549059092672119691471080040844678348840293762817329061977054500006402833716089720975385253706875492617250345920366655569938187283145777021162766102096617550302278537481139746648179557952463348394969745286095274713897388838804361423973971541228716652922347839646183981639564880107175429325446389946004890679102696843724813347606592919892998522600274868581566289484283302522347548045951490898500005025244026643590209873942578588392874290329361452188212174244772920576518971356028873578977462271280998640048360652432626530216393123188808313897101005029986058695360811297767221793031770986526281005779412244677523705464153532552539401347858352553422674022880625291761646566945917890369467513772357024392682881705234542554486896295673210891520443504852822234172284456784938897559035404123797820903437848006846932276289988845255890989191528718779605560783559457369210412009415983681388040584723321080256988547147259352501797170059710458786111808251486653915344433107047658974312045919184981022249337644256801199184459953762881514394270144264976682805783618114249784559485408799975627218507021241398374768377489092315085514556212865770124779120502781934606874204741556866991947860203865277591887998466611946417682418818419610818391157386658264233699480479453333749863761835715425719924106402291294102312825374074170140979348601254944942151982717233636929229122131599561734768256512380130018184810490855469934344820375638851780074127524255758677769813007929092223593507839410585922013181716042683441527799018035460423966544961014540334812534558920608428136564632326222776535241748609149398139771693423359003268526939639043418787186760200665135159080569853631895506264168216564813094344080449500189588032758923208844778650020630736650379529412312829645333454853617582719643493602863356466377766952682554604883505953157694130601008827283989493800700613692164056714678824553715126309883092113499549467318536366218635702134363974876065555147399923700326212423447940373634235628671275564632592991684346515563157202151052324568311621233114431742647906380467841654900630266580400114274061353899189850991639103935753418657731860529486146365192705135600611149444063298434920800880953641694988749178325786593704629215335264733712212167150711093809161225375139500021585813204007920203820033733310536103460460881317850946171396857177950544882343014809330576403675591936783591924995118642279324801491097123756698591144954519764781490294076320017920927165944443811743970349237599885630506526516091501321903790106527748360916307082762497230834062107172462626781531103784782581221925833245697298672702890878742436358854974687581509555763549083418895370316752375356120850025051956602193360991286799392285836579673516181134571944107535527298763684420515261854425116237278732550432341659854060802905401874090939000225601163259198872981316896563068079090712899236878731400252442452229112688627937410093022631950302403434766450023410705929329130619634556448390547378993366907952961160536782714507399683321983203180200760225684700171672086959557239668477193318261932507748039457561036207581910612373010377385563458726096320696415694280413770474958136192680401942897437061126357661671536897066381432015463733454204065983060986646174613426852602176794632613254615470545314888919182487078596495446148732664855613115389092302717393430758478251482910450982144235404128921957751795883121555655620390922816023139959502801545806353055191166145730126808897799889404134021696724302639648642219556226548520951478206994756546676092755408946966294450562277732330675077906954586723142735807157545501770440961929616239972231155414544974886470509078963497507862737528330287346947202243807409157384751335560821300518831263443243360418241570391015464728630194377397424586658475715585824587265417133938502899322915941931618531237236951208689220251415163506175084195605465334851315503969252111860311922480441148175215182707782861456362885249183064380777238466573102688713212173611141531690662157862511266301764968953876211523127607436861515721040502004034548039590384405736442222102208349638584508851524148416091902290837181230222513088782433011742319645246584206451400343530253512193228906888447689857879763058318346112457763735289587479276527975511231524561360889320700766180669214575044358359463152815407822410428737299440930769807476963653566728124234386347153071754630398593530925626718387466447914793410128875384557131536255574957606158902180046387398475855779426838081621350767771785254596520400628168294827628314075045560765897734933455566050455868826388543481684372600573315121323073417857665871444976489337285767768223189473229020175724680321890171148486698628905968694776837995382765550405747630044468561394302848133643726052905050064724300795810520576189922122288156077634000470653040601499945473696614685410237177637088324800650030101077752443680464772598624133756223024372412005279681213033718327097416687023345512382504216046593049097128994889698017222435390307604564933321588566370714980144265316106659540899356128372245211348210053763680625952803009194425444214338406438483308825644394230288117117429934507129119473925437996154498185855306644255944516937999455341002261321260361226962772731375018196725489590866976502094304586107950345777212562529476877252991193871132855874050023284628204456321454645977696650795708830048708173415814792436669458188513908086946462256243239015024006217835123767960023835579130211134898965318812625350197625609241029275454187438048342319305234899564720475914956790952085516335091376069518002171409858888798175214365949793115589670054255136511173358861936079984621339774726835682331842928024227263532557746406109684735549117552457582680045317317260927330630020736478822779837372416931675444047402061638843454458769464124942558299773847570935021233696134755218359022906994522985564434442693607017792643076446701009525298048400283226894186849034559053695801607067404882505358063650433487978154725902407462549603680683368413510164651264942532211645233809559281311728807556899650088089803352041157422956294530581517815460171551451477367698219853119709466855348651378831026518370276878792979548740931234822777511791663399357439472039440219642571957388114460335416096690261126829967947366844810215321233259723365158773782681004633055467900953366164268142626059932580442659306721120256146242182693650842560787856028765307266518178368363086442853084057472174855455659514224349784229946751333747843468776595162944913522020286919325504701752695721838639938835649574112276122654247597669438648242939271277135880460902598238374380142385545335797832792122869013283561659870635785583422432439729677588266989078988043423454501752186148879330959577938735155699144718352392843572747028168611530021305036470591374559402317712785001089050102737895079059080176498024827683528040918919143053686975049908243462232176279754050958389619396174983708383548930074931782144403562354499655371474916409628188387550295248019222689991668828004380176912114237572682553291084635335432267071101638370392193992880949147405466379043808684329121467548154190571931051815392630680621214626625402573614192896933696116421796973334604200478374802212766686355855113780582979839438912055944406727144097341506650437493653980855536127758958027863819921973210284767928267876360133893050680677961643236834539345155375884163383237930474205970488518780237986721507342666503026297053763006292820449234304148462696215670977500115790867340874684388144776803339102855543309398888089383480234137584263343586284226571971783162727103555594320620129388903795572111632516946066002206282338254478834265893447600939393414231893601283228283143491566081408692132656375759072997851094911296517928499299465844564623104248704572643140677805771706518278456769071184868279862487444798476677401303488724666396955086272681584409997637801376582491405977915851179445686156472719584025017112230814564634662334154665738489603640324928265181008366228450829248900125780444449392122200206274533199668383468323394451783524810433821997740975676114364410655224115270431269927891966441604082861326300540351459942913180513458924849286051439030574256985252668603992239510834228211733103750473144367072440034319209076656491564251741847266869737264350793421021870102878225260860878586651620965801116282872161039488271487226825586345141698179966487364242482266828342769804482438494162911111551973328796906464006904606544655200479620202150171597585444132739058218853196334987901411948163487633003431529854697010200989890137229757667865169165364730906549574286324572464836482713116184357662709029633935559069901518992361546668118065851508940117510964167180965471834552591653780615424980966008052433818933654110336981739047216309762736514633786482711585748839832724752210613437283701649674251877407303177635123585037642088604804662323386070774668713521094039463079846187786406603125271918891694184515458888331344479940641743429331716042920508257096963480262552987028639347046022238269220403163605743949155148763439034113969097064702654653330550239280070483692813847267966705376125708223780991354579066041521637741782368931913806093334814921243739221900382293834878801657095171198864567393019570417957616395855504052810167252152557115468490781020526071106686905242960226532987755033967951536233124925182107432874398582933849049221092826703987097244205309264225572734879383301054460610243047926440187993435904546822847484219855794661927708701030491261399497205894611966603679358354946429572763767188746949758756114930526251859496355274907757155577071953249817957725548082962564882962090565520622339575098872383022875596260322386543821650619939214391463875266062638402704915848277657877177139594072294081882284513977270735444858647159580710441762192387975104430066754972061414737054154830503357214079133474497514153082659871092862907049329191417015275414265578028438949551890854457772010288981230058968477167699608664766125162416240189229276379130770310068220813895744330722077365927470438349358991974367788807561386160109457348442113227733852326631055993789954515115951255699644004805429763999982521873491626565150808883689932578909230711184142130115436863333747564576438364314890776300642033226151851511161328986399920601969888608949949504748726958924281309299479283843850509795298567492813319780950628488669562611268618574649844891382972171875706859447491354375727699142218378930240752105509752362472210291991529259289837458257750442443542384993725460527025884088389562456280902267941619760559399880261186564692257069655468457332407016618418386102021216623010496585149450340355848813002685473272420957860331527859307592530874936960352068014761482529864029771988968130791975285349756912646224891547549712216418087278379369610479402836613317609657170734735143964861666435056382607178203057748880429213672609278339490477834073713261203581741460684760794427800363284845097559356598420946830053768283195224983264841173607702368673484138529231441648610739039456354554415780207984782214439774724527453480276193379512200354539692829963865685894194986219231478703675709392418237843552913528066161323072920596830364672008686204152666570246190991188340246906221952258042526131712054543098389415509623062214335264191217203389045527332893203836712233057814051099151955035091441256978485732654453307818470431724389441546135682146798831595344825011375166647802853315451621170457207665061987185866298718922263733523988380636569356124930958718148822964946066867657111405391272865180972982103355967650430877453670519490736871079673881243937349320228322116368856615121868919102152561048343986341953927042482866982650165092642139306002230549171135604349438600426651151183052523300537762957927125166787621265174419867828409233314343510092200225654470929784049816205272479778580219762578363617236058094366727680995825527270044729052297628271307016404564900769968782389300347917621979166799393179134755322171279053749276789545627508858941877291859457048551342503735181001334757501637033257899116219319037327346240414287261021492111516716095718403381605245320896206492917071817053079507095391551359014483304939835369414101074024526006821381815008485485307085994094795693586686335047730591441592139177984105673313804630561071080875594120671986526932248885120588695630393991392878916945177154619662580511109347106685700575953700905340295222786985224817004074219400597578255946422077548949676644631649642256795535417334704760392593060649707588109847631404011304361370925342334844860202248887180782389926621497820583288395483511759048618328925069453631220332528927942703198944573940733713188286712694331233087385492135702881910323910829407069312813037940874634953635752498222564340757469652530688769350460327106645271746422586047272549537138832949765231102366774217320725269264414798286007123357418074778717062298231501933371370423096039782742219971665215392555366993354432033940559002689780668830337874055989661247561955661495419776724132435049548943263334584180863717625346031177623097312041587185839601220938286440644065500031882801155236483978802483338219040760635929790786553199068485103551725272989365882994533412067929300469626829891774481879013186436017252658316048900286552994608655868738298258185101879033971275959261087461147448254992323752202691364300316337910146553403864551405866760972767341541368969683733229481465135265117087110586717403373671059343001641587843352844323440751615025699741705134210521446074945104425660501117222640924211028402633441637796486623898471280768967999582575731662851951434112073169856281256487528303367072322297361889444314040659534509621990589814871692271335520546409258913741942425644041867475238721935473305852168295960171710562831546184159232959038144436985503829730556408130446733211996792724568049500830622956953721934582275373972306327279044215292065170388355187575863353617720057002143032443835341492208299247996845043840586315715295512907683816505492406627534666782754908254998870179601366511765044981978368753622033082812641923004880293884187171025751251223769405749559437365133953144901549850506126509306055763742587225388096843075589194631307461851695562802702185791873288144012999167011535523689605098714735328956455725950084768063429826550660511299670249174221257695144501969861578895021106597732251823323405347704653608913969833984190652718629010050239268540341494349725085634201726976181841372806802143769319217181725863479419102922906257693055517263441822341413701957542595750069991931027244130992076100487814173851036917922510767315182426174231513012837711788657738843163660271414046221823948102828024731198453439086306202958918016633020731709861233163089384545776982723423563952865015551544498199144006163702697699213723407121527335157248164831558853491823359099011779400978867982129766284384731038855836992117189743683298903998408217169028684277081937145621298126539219512303202552905217898882751211550889324615266055495235405154016539930618033751383138536195823788507457494559124312068444290598938880223641015848676907523294542868018488426156898472094847755603785824627739924103420646212291519232474055056349127170599231952429050603312529235976054493419333592618757986738687011202094817251883764449319106184113544290330463845209193343216141012087431778458289144834064274087453972739955002752551242660073612022384946256685072617112265509177985877846732255229617826895847220345926001840499207981881766163336863817517583396574181461656111808777538420486581201548845750752363368178065906789897478527772873372030082464302664994922309698277550437973454932510475108610173206072705297055160147514992600861533581573440603822932396788716388829174677494789396492967260279229515243422542698355674264852062537662763779150394324643067194678118585685943343668634130450320497424078473991846071309663500450139807913589392952172154607759200825317951775010109340513589919484790628154357298781702995306778391221928477771482698018844926011420231671099819353616362259816103001556617793334780178591098819626263349546534950894144203168879503582148360031646163081718920568866241688869165970164112576027044178820309306848160637756282033119711524760505760929464091302790562824922624108859855336422556694593829468147536534209113373572643389307721279239887633223759621843272055403660144617584849324249300242837982395170121610913389771907434684229634742616934503463298183843987833275114498920289535762595134921001192163611331349014738607693703219559202612336192143464552753159836921646709404428003133090988570505911169820411314662509498099019188549160694272793795901865260518077582564378793221166009520612734613451625380491654543644481586729470262754681364625825835507801769564153342485577324409514315114261370340389714440912872710614869366621215293557418900968501704546749662879257876638172360865036477152436079747348388443965873223114339349414458301180983608701921759264547074051276864885165096529024000232891518003843093439343785142260890436573674211874062053706904921575576069747631807019694591760897033609763666176592189753018114651546448618682052388894523293650053905146262984784002270286672985457337423256273559707353540132266193264173993668001523536254905738122462591854697396828903452621858883618399947338929820772388321597590115869520284680220759431627650016287565738511655487827325240392790797455282506048663530269619893917820963355985754287018258885759396342974890402202838361491118347635336736551627222306371442869944713140421510148598757398998373140049007683269325573028950834022475652849339630368210888116355022699018166060676023636515019301686833989063902543900428246841794581067341655156776210704288088520669393446336408554727160694223858268667721943144802392034509371880122981710005027512404176108452369194756450680642046380508779692945921755975632698469186198689705917383058300745112852140140471713178590017766357956386166487290908954955031506077574482608082478718584074685367141682533049388108165597952043959716578503552412221379311315205252365299726122239811132208915249110431258545362294996052957042727431975894104974944471414238580979083438747049830025029042630679167118281026809354710211416586261882781667461851792649462186493726777373010371259565205209744753911324937612324434880935619706733451019055311937214857483142910784255761872720661898699410937671200032220899293299906382844549407758256606755256709660388033482389028026680122898073029318410650255793133854467144220599509859812919785559752431476182151896175386027104660530302328498755346540870840680928943234838180676330921189652908941435081810540434296732845752763759615324405604441270507168958485387014351058026745583160587836424850434425953574803641981463480401479958820849910093836910520455427072167315283891167561202709735908493114701760573530163006938778783855912109926932452756524637672522112420975528234465131728165093156044715801981898502971284373870452638353075674022094262186324019834038428318163258850332719398410956401229553658868884577837457527852042128668025205150938674895553543308031610931070107175275165044602803570581520315934601537147189069467745330976334640707780162978504796745422140154414587049071442695264247024407939132756541603309983986975759343435878719653703850803169197412532572080911542404582376896303644116489375588593025608732738604972051606973969082650566621656244976444289526479502569799556247232702710673534893330166276171101723673369195811643069241450826839249465161433848010682693380610225889598861990997073653189915251693236907630871911780754141210834024710987721689616016944774369448643156004587926688004276207292613441676622217263676060726969725381204984859252458000831264946012174892670382824111449496200993492164328434936804055863156630693791351657525737519114448670843510150610441549694896857919313903662479670425667603345347006819987322170380071062863456488941837812682303896669262976402757077670493969421006616650178614466575279619860801476879980945507477910280258304898107735853055288406488292933768293238128543645430474823024089170306288669557084412475741522075649381830989866747233089216009617758583027568534580667194971853249247787583847717635966057078359743962466799778302600941741082053034345614470555037135415246352196059941625991420980719743336182867937319260118256881550341396492680611117517690836477382801482588982428251667540597309669060578191229909149375072991503952565943970090466913125188756894232553144147595702771147994725266815700192408289451679659539141983518856859707334473824169021239125009523180803405880282847230561830027849948902252333062772719454888164826886879231878406223193854001214028834402255913568022522048704437369725231163026821257654798808557672444441357894838271991656462806856154514920828043927808184849813842120416926062486793782776872843515792815871085956805141887367830080897209545181044741279045606283001371470174580637417717275621339761489467325000981583009870769313553099330642656377191398365090174931949526156941683985176717598163757164253471878644609804310225697845457095718892841524916017855257632475711721172846174626818862084334814250308575395129749982213704297096068300256966123730904558376700181199166958623953147209836523631087709162845762915241786681858669564359311467422471055610162160554004185496903407482508805137456804057634015240268413903295125075586823203560918743548410977722527690510938670434224480461662630150673395594119829311888025969645121810065631887998250209759570776552827166931895860911948565945558758993270623344966913696887539038013614895517541891514401095709235622923918942692412997691418413168803841184315861444574303178827377140514901375008103733851113549402191500943941611052379653727391452337578386789493421865105070451312414596815220096348125286812804417075266450648210136802729898975177388868910178073887962658143696623922536202907788310178961231120380362259400084394585321054018496382920084231222941100751476159536164377686403304842953286494431725822150796033652829722607451382917316163678866411635736831296411376471374016282500204741938707252331061014355121242323243473515568755225093493073050110756708940601669039724418961101737329217890982588634165488478455348853989811641107454963945945114182040365705788221466049587822369715566812997635625087923312539293023734545685229610332796600711744173478924718078991584958961170560265736591820466048559608226470430062631098775456811144872234564078975788009182238219608231376543078726574881153868872302293009724471621018072315666512590807388396226896298123954027005769930776982730870274808090394754582889081904977909668577375484482080070932295274062988365694218235858113195951948128437832578080260315002188964577139973505151027325200451442609252118188287323283502451730504076396136344555840610883903217409599102902860191304821641538387478992121591928493268839158890457679329044650043686268623890165390588929641848661140950931268944000380496450748160778956445665141546486837277914016262829809331372583222746207084885661241424203197256810656151100154103077424476959036468758797593485216518273980618345975315217820270563557173733455689951763974647463295508809593532012983650598648984737126456846372137656598876540633088870877349194522904085146822216056178294662498783825677197491199360596888230622764833788105203868761723335999681892737622260520917088674694964999989064111027423919213607472943887806532526605755870884278980375802617924808014431668235289636986915789582274988040643867550203207448947509938624683295890287276416182222726656424486194451019383344919294317407665935614717687144614150704975784371218552679077184613598922910597538997797854667497709575440691784896273592139688157028702099095175851136419480268324083390976593887880345327416140724460047705005635202054407159722715958388704467714274075873225646450427053016919872149695238929384409926425464012947848994461441280897275750860535825709805916163369096183823033821355940309560353288247280698355585098618594594424516494619763945997834511883507905225496463224341848378322212811222829638755466824297190012986506344954302816147486961024636626574668124160053171468838512028701608940414033680202943309032055249368494744978313094799196672492092723524732824147644139146294313680557036466067005343818717582546580752040509810479310927441566002387727894057012442150090926268880662567534692704782494876463866189573284919084849485630133322686918058785014543064568786590178149415720446626034906819874939687254432789680853517306897393283889239148671045018727568946114744705641947499758733618256295493372875755409486408577077198160606497280297665756272725379425629445268604012277434408732116014868594973291478298065086489164514688726940749230372639004042069153405180924380603021122547975336382942390605136515521920564635714838540713502258129501898159580489195872317245437037851150795211712371918183426742797046371437534073323195879253376472083297631692634325319070355554290343182133193908082070660917525365991315291559959251019866769925105018317425662157590646470288132928364892914822876464489878925870501470941520518015122882483067201292585394124274712091264484598807365754731210923283173746746508660062385807161970952355033871715060418489544673507650847174406187811590775659469755042778179248331121208186397716308395958400295499245535743490584588228671234889655234806089927084576254594244513046082035173736150317588182370495672024769362381309552466826550272291002129890536023510388389689959667238070853203893369238651830721816118890051519149262047011675885660088989873760478374810695213254785772551734471301978642862979347823215987792183703956813312467127811491984104021180654941145354566233236436806628367733422131943584718944064100473465968952718995865648185104716522285690062554870487829272087400934891999951839898204345627459165598423248552660187380721361479845700263617399811663214682638317549076334029241952669238889132663145288094830591069738674009233752092423939244747490755791338864335256069457757618624396997166981068136772967366285647537176329713187458559684093616673332035673354009308973988435824439805218288981182160240316058717702106685397250978794238110279686967630262217629468086066406576764402817712063405169722870307746745920429167503764534981386876729339785869100965796768080461000888989903982971216068889670386199179563897991686710423724583385497707896467012131491968640756274062886739284815640673850932292383267830241939692787504160021744026876693557485841199226807850870348558873254076524418234442694091255064747361444742385288910090333153922963630900723843227456794035548381202204249847034901054558188031881960025189673911180098861731308073412232943542827248063131991205658672790808066577700838795667780963728373508875535357092411154233674314967215032385241843742828334843582977666227803307354906744103188768641903886939252322536220107614739516452260806224139169877338066504141983637441510826924414704407424717111543646707482953141550669439679173952628418975521206639121439053590372252627902714813520286840841172971899820438680592875250455529300913001346740567420043082408510921870336525527608600662784391613282813993468935850169594942922080314753096428817119465312827738762353804119947398203404442680290981502532669555664655416526934801328095594520387194671456506824270103059355929407950011003281682225176019552517627183631142927815671278060306054420313197765653844777909484341445049130992788739143168074878642537426911742171921256784862951132611997433510886526279665496665933540151725469833817867981952741416812707532666041118448416192159896015657705786144370402155781184726684822816649727199542421409280203895867283989533694243215323381184121330265400988047344554173247436347462155706522910778024270563972125610359298688655570179840036999785220543602290656049033906330032843255905330343254559317151519684690745721288191988048572350651986878745980397384543972102312262694320283454300270134510979582351147404844266879628197151625733633012928728320692705102841274200239885200773269669633959376208162603287118651150482688885230393939073076197587165853205837062067707631785750138958887071757859795990265897884478895095720403168738189999271108413742300130366554040070940625054108421600328538505996927183723892638404562864288877060168807458312646760260770859206682386213420698976928647483250274990672633902549457548035504730302846906742341902518326307593349060563346958434141719369903488400706018942061142317291186839304317088165345113645251514530177191247496265392761416153679624222484623798576872816353869795439952859232301641785674048595442202698632096767146548249008027313483138596723519133675212388996850094983075113474421914440456252197616934239601727610219680405868105924625907018119371354217678707851037071618909791613665094343748857263206427678233473590727574307053443553117499694214334569660851026592905117194926858384545929874880117179195725130142586922976724397599654157656762018125566072990424336568675416628807663301306332079720467680040269644329624331658858967938107528807901500545933945253557838430465186057490112684459598838347436314060105891988169382736397506496077901216630605944758240621991855437134241394179008316672691988468282038879633444165628687997184956199561893315212149727413359706956172018985875414960961198780795167174356220664537891508188050470566700279743420001704616584234505447383445390496429514364008409405525044348813884990912561787327436719478163701224501101756007873245375962407305996293955278104973610680563915267585285924212346849535092320819616376309313767584789591478276622016976552544371220641172327275928141644661812723167142691363711277747086793644240756580132692192472736559801476924102317203975042240167831740811287318390125072318231989219254530447093335429657207989093185158535578543161962648565614174020857872571484887594048381481039396010983489770453905062125852057672045710351309614688708155606172264731001356324675668673061710307840677320647065256369966565286824141714852647658612086996119372184091441041983644887510060032281048002230786433743423186916573489829738367190550333681004738632216937627443623582479081777905787348851691370394394461857727184401925900712320016131371777055871474334872583141466764452638133443057507251579182276413030971562660332791336960802649862568998628904845934471837867649115274296146757466157820913519888766253595331636230118392592889745275389230731448973535525654415121720989838286504900340494658499688734319048833331459913792999015422011294506946868342459422881511364154676226874228823415447654631207761726316175517647428606753401524078317175843742265619313463391493093293722099996585654253526801234098740110469840762174872506704825781801571837610338372254145160074391482936721216994800351635200366423150390925340597645234302026414737083313416087286588477643573984057376105892194474868680839717105109619174647956841965432253408847663197083570657909349482747554323332233243793737604993768424476214476358280409510147911779532512400839612913257863992371813784406817818202371421062336542957548553431695485554442319555784460974238802199311802272380286874038333453280534643489774690375576382021245258725126471084079296550923782124553749320522558992988784546248148332615288733741681437716818927156254323117414314294611858219004050339531565862632602677406332549724249741394880459366340166858719228118538437478085917642590420926111871782067744073694286432612083943264122808552940164675325403165055994862802240271744825439271820151301650894396766865186553455111777370334756085410870065672906292232597742550181419945366690817641405373512577154603389746769822855301774770868036086615618037045146509621762542974530793217336540078134296629080491311799827420844181753179282355873403741298384675740361817198691043078269524430869345469995771157769485217197132464306108783574279387072365675793302940322314237807083848694067850017892225374326485007585286143888029340328398327971215898023941333604375720986720405445888049989327305650668773621529431750535525204404670215180570453967989647859518297605340648481396864734571512726862959475402679959305248163944993303639876148372956739416952711549314603497883117740303860048872625978270048711262023466262961118246368619744528210148303994920079636640464697658057448785700839916995795299586242681116801097977411066029091165939578618914393389529180166354881697693357233329591834418692745067819184739665336412045662451828518034048814059813738928518134376440330799730786792156022036941946345867691063970749610503413706669191380787882339836668147171475267926029446832213220834864417217459252241140025945605032429749250107942002422782233593077881598047834314378015983541636558088716944202059741445136334467541881598362749844509875337662246978975982498476499149208782400718536236424204700691987652443656366800972827721520756019909102184569465382281457302831529967990690634262069066054427489313719708778524391843454390010880017267741386880637991558730587409103683597072383479740793448769451008718949278252896767030053625451683344939836207096557161030123914328676632391759240938152340099641991051192911366794702463478693151890435014844482701490037455838756815755408932529458787178174652691429550975637317488613288086286826695979774529667884030297660781305768473751757510848074462060382416314562631149567969265085948545638782244269559978065639014502219737672117111733130921332955258719246462896435368478372614084321068348233558687450058162261576327505393804087967475557614207342551448990006065388587483938105206894435209202503500702141759618810273518321112363571781020661888438687077994711645258666314549011879539604823651512263273185956086311890265848268237101937383264534747004370094725737228445392401701183818089950768909728313108045357590750924876258516243086753820013403509178535632299097543338228178382588663684820261856839104822144116317799003386971098379452015922137540564336644656190143372083849013521057283843195701515327675293319422587269219767019422273136729338085463925027270435995418790683088243258316670103852798410577272875850574894908445841026622072976636811027459736753643865194763359316533571458283119149236893526469833423475486333265517285109505783061483281606902621356064743213253826660960076945306309024072912992870381229731875116254780920891054237564679483369152318157661169407464839614270980352254191328126573349651454289123435427817571586622087796627699267422569218511880878642703893883162337252862092815491589239162810177560327083947788131276579486871619200320431742087302370906776029863585538055533392954242235381071780358064329256680424703341073283624361699569727938110064111232712145347667808025195900088100238486341949651212157576129801458481345526900727931022848420086948204827100739003286869399373490080545962153442963657263435549044087727918687300021294082174816412951177640655873724780487590199704506380039994219889157026350802093665180920193052158005397188548124350127809030969073535402158623321603791638468413717286311883902242705008724292763680224054272399572810984945122528447879952674142078194463194245507333929492974473100356030716874476684618026370113608962520673253653253897392268503902053706825504639210054119206513180560339641412053126922901014820049257297175464417183041160425300147827468911621882059190991690387393488785150518785992072880799596386948500849735874008614799635042142569602707234416063881480831176083665981406788457240255079513630792764563366078183969052250608640818166154694811980158389690332219039643606956685785192071466241338199055843271695579108895525355086451318031064837490468756304309232981842342547192698694273023187400360369199778925051877009021829682511436299430872136256965439429394095495810061197647687609988990762732935864408236220868826811867002628746129746996937278241500538258311635747803051704304852127215412689547645253049059391907803530075271972976444868174349982757930561162975933650196174911874115208870642422248539115781038141234652650740252201839121311604651383224338143478491759068885825865650598259725335050983362182090251752803644417413191247376778708048147518352333957007922767440903481690451596802655105617407392389719726931745820407438837283202357081563249921349216282367243628535794563490326427255879107340465857882974828204304387655808764360885508594914451354327720509530752371790704980802788477172356408083010405547462737629317768105669865858307410935761626809868000102619910269204929497604114483060388915562677355086904199560205036573059852061567624960480137747356067773368530430458957085507041864321709793542071347855206045099178332379946912990401237956892247379003382184375708771078960987261229570761621877082347306920009638741078813858989884688460655412782175614657652298434837458059281375768607345186074761790119097827737630995582337377808429932509482628309880273717445003650458104745230664574216319422760530068413014780831273375016966982398626312359538349994807244460478109088405829295965561499136087334977314854052883577912214283501141837859820549501587679017580665854889541782781710823981086943613561691203708617908475830446396964437874608781642546569868255446666415841904984329765852022044033913446439911220486499444561928806627014209824751052680252501337258597715985628892243088289875856036409065354060878737583349855721117062989569962603175754136787035950421879508227600805546793897964134608571279460118837694059092114860617299611181944441479342644977688915067067484007916749766754862718902243222109661163184599726094639342757707865191201568156031291962120250221137980865625690662059903075560065051100069090877563204977875590015399231588733998240005670894434271590741493553317526597735217325279032781361043547807707300575373990731540242085457771745857304879217918081617282013816999237293180144779208087896493468083396474916616592106226435228105055370766048340407118757687067710583541392857379157449881643890400805103940948414779481760449390054026307369048816891328182406586493697236315559021078305340751934468190597962454700476192221220006786229433582636614073384986863396572179070064123839130785508370955325403586066781445162485434397369702352055269139986777743527214817043277018283105892594744808481435830439916243846887341014864269042565393981849310534458318971122295889391579548977754168982023076797096631560391889164798173179665546550774559022527197610636035510956605478718617671808000368225723622801623716949490035630008773808477989157021877269707283845890168371530975821877639629201010168784248229333427118462406962783084900388653960598560050257228501041038930708603902740337010806643663916555058002885264982119049708849625906988118116690757691800786416950017837629232633113134680758932531411007902223647462983496523261793608687514062477396835000121114616932643792547241019142241817195316522639688769552454095643868998519008664946220122058549543814995832033778167855288584696002666014452760229589099467751749258299354533272125951216768373349926327823042733619715530939245557047090044696584055917056609571533794445682660148262027942789784208313488340881768280548042895361678813755114010141362910076170111686498403152589791013882035043596733406030280345645277977386269311755013663530651224482631176619880815917697007142370610854514090824195465253798330441512718609913279979497138952119004992665737043821342164324787690668605137884155412808732142295266812279383443529602785745013387459685814365084466854299455161379920669930193507270420230527326247727043920997601658744373633086893447696265885242215651150072411778383538765380641158149946521806261500820438285014217505722380863831455232217468502552319743951867171492582153235724376620497160814886400649019272257903688233794899450014253374968839715309006692059444454620719964186844764314423386888307428012807787032638783092296081069207973072883127119592261108645413959163362291065658826114342092231845434011278462545976616506218824064820049453974741415407479618180781681083856684944768999226758192115401588993530407576137928964408248070034187179191377435869824444384342956621604398948975316325213436189174157613282207510586922542314209313794575903971560379663418678411522511214647495994640670710345701173390232469420396751196092103098888477084667840597783076983325950089846985975354733019489821907389229649748237696785226736781479666654750396010752194774914528033585854011908834321754288581669014782993787804119238006297220856205230427348785884594862728429895789306901557159720322950703738678038553164841869135624503636436759382368830686772815909173845030229574979499831567810020885924740929929886977811857287436817782733733056550864544653078794743949435875523913321962897798513185703548965890687915489210246103195245483517242610623220902059575883055139783788708465218530939590118295416015487397883187530250571167340400213861195455742609323372104360095877171830267064094915604748520755215814403279409938254674603289569395184560281985016646657437083104893713941419615147737521370258081360018746758157556037932485224258659257939813887714707701611602525172547199064122447165354642841828215340222783733573228588458125666797066483699680386578145704978264461760939604070890430007615757179890289947447208730005255483012049797050562987492590217680138803434768572114788279670365410042750474519678281236662280878387560093949594434209703106351044994467962309333916363283097206935652496635051654589048555202457829998999010456717900723916139869062693761948161134438140519935756637091158619517941886994801712434815815426978799219970873656450445661129556017340759004343961119671542764016025748148322918694545533536604051866358121062545599519555784783857545118735597345590337693129240006682727668433743878864749500152738205385618820338655882981593668901111065960237473265417887060041798564412076540791800518583779567299620691203830344015953175978953258438539089365453825641614725410659922710814831519389491423807665370067925683472427563164279898018255191047172243775154258063524186762022954705898605172127047709006355455406579165883631518768242766289177539869982820518097926528387137827716279128497385189525695731895152312040082570566426917454337504701702575053849204285395330015183106980252271961553375472690573058799840568118130233152023468261941899883036283945377867296558981227822486314727710962784660087077724840985233722816825019342858370006696465407581132533022354332189025292392768653353993967942529095745690135329092683373567306606104759149402312441259647537397448825866959273477840863482135385047250151723548417414068876988136130682637339736543649386797142989851991474154448558210684880120537983157076942456165558178087932957971585675927676505977912355107168126501725713578837494662573986045044649692445907903766925152686023418303689793505433497836930556279298784452958051171118134319808398989385037968900400069641535470283089481696169859047110064172962867502892807474041219118119040891833597021831719845892820543856752283358219126156381460627939027326803227267054269887853071016420909911320488620685474208424262808725269183914067575864043144123367420955610578146599745618459016298509619017611896681659082717025358275308977593357911008332512033558108513957408454773511780248415363995288337480363892226932897990354180480805786748502847027554335619418478670338191215952691585875812744211985181231517240555380873168119531771324162625919958245344266151717913212183606728942149517838061063102177162406122025051108506416452468691029074156151740084656491255997045839655845372022909267022451944319593770474907058698016849177896332525950380908837554508689047382756823731688526927554867081383356977323547290615500682003033068804192566997769385857491519546418920675228505790569520459262133117813912075276309260255632926651693157962464012740956633706192514759856406497152935543456947933182860152633261992700435248840365583758489253013166425601708486250270907163283375099359403623706661275962897834925742763141604608115866820523611406236174764102736154940763909558096457411608086363087876633655408762490243226507032099958728458434109219507198257881025164543725207028510638723895771296350809347300527274947291495277627532770718477954730875445021324303364043110506893186230405643916056128786656200016775086842239475464859171656704736076004958622532860897474918270437301365517416382374662004381652121923783618360156677571503887506305763211854240963847710843186867324258449792410861050497629714659607595943224463844850903757790509632001431657822595844929908516674784467229119930932637661988905962439866009047100731117505125419196903499604121876074803401796511679809574442166026968651351337603066302642646401190364520395247468831187869224026610114810202851226402598474233177318631159033327882110895533602477849170597915425820655681640588386677380515463571742445661078898336065007902397338853930880503719465884008225654079395152179738695931731938754314601210712769972025222522195749262579342950595383882445373472371320690831210227457229092701331647934706161969316825078291850102761526249949860720726122002475069060014536293474062882280203623653427939472846283653610255696938582665380513833073952314544363444963543396456994790311261676655722705859217944423469463665245174510755010482842673332631709602578268036505887775250979681648629241080064637499403075113182758287339546252905973063701325014181980028055229536830455467917760479953740693765972886023115768292484885568932953363419142295587293418615221259290806982140948725901024369785860304621186510925117229787971795187214570719683490599155046403102028317254218268931616055696532716397472250537598056019329527070259869134843067013622567241014033279360703089709105645943652848742553398714845556218085256035218850086341350673448724352928411989512179556648891836739618562214889745401187459262935877830973334208134821652989850193864645199616646090432099795105075064347802894499114274253227382878960597931940562415050021160254996361510663887364819990968013945401084918040349021282402076384015110042984496295136938006755639814119968907679493546027042142531921909316821950433354873532168664222551714355792791517666220426475501836751679945558191168250083236831386049467764615830213838726839512344208496895222371079556693984384332759104394211100294375071647320914881475419775445890987531707195715477538278060050427087436186672388852786799409550008137612958075871872715363890413486987046919224803244014496426181613187139499200590751736210445252864504097450216428028393827895014252385860240550953013602720917585331461797742156399841409527581501831059370246361462214110365661606965499832546740726902177156000223501330962983966306174974367459323935912804912190021465930039487337265118067319216252549910172434775236109428112697596104905861463366123665397801778062754674562226767627816874937266202337132829806180694558279769997641874740186539603558609151553998162686213100232490044004782863002807092609066540610158656098618013499936101062022771218074818840419342819839572476850244961485943170132521559815812843317671086855708516140843188338433807629824994472370786278496462517554824839810861642698894765414880093549734070060252538808134996412530396675854302491673691816074404569665074953329242311247772440446992205289322330465106831934470517132670566810387518649557657491193752311316968441375962117323940662996098903630102590240952703816552023867410198903216907694055067604321697773692996799412234597141602349392892691930693402705117090995059702971873963816669778808708668796197518342220468129719557992698552118449611234051795135715211689374351158103945398766394987560718878073209723343687435463934312816896336848396652808894719096100918801632126975701473262284791917391943835806767812062523605025147451525894742943662495263552897429228822688748232019105026183414453495941638806570115115369826928936684663186931551682819965944238551669169313243837473210868090595508324204082018929732462879873827523334240342668463216756090353025443443171224435852955310674288416603183467463891343167912823003788582776544125960273121705907079018294089314948774730322366196692809785177327136401233010767709389992483189311868576433394122667175409753617322279567066831957253971622225587063418220388293387820367267431910401540703988391060199132762198315554108895722483271832151655395005910198244973815037997731433753168666689350020296249782785509164109979427271811771772014754972019036252805525140901463147918633685188481774620371107587397036628643394141382406319506668396353244398108187640175332432825533633907582745690690348975118956630208515130616059440676713947849934282137806436516794483342285713143945992561330550052446163373194096784661639782071356784844638840991688020706104508534354868872812984640228114916705748691938735567636911138036708927335340471930338545058565998210060557769888023198590900911825218973556386746802405915963877104648431786926701955341976617289876619333553886159677641995533600545399657788362113924310572245527356516894887822738216950827679927447064406920925668881719238659046620144935834719508742902819861280444678303719048821008576184153617323926790400114205274075243436462908502737763812167170298163587243605500405015772304917642719371434449647826516554722711800577008168531027964341197984404255664374311296953059472762302559018551125249783512126561946760991896338363508193698262003365311810701961941671680686080530348420403664705145831015543000321386460707798862215817379619986746175155336525590094566221997121034495586643771846306330572105198351284608078007980476941458006519905812435401021259744415986636837992498705845254794671660946361797578733417321062957634193561137987120014326801618990527276388061127971979735829914749793657319267896643013688183477589201228498893011294577903175620505860426311264497702141867126600709534804704610336188435440198093616887313848497082622461929203062580241925222784056816804213412214639076796912267472718552342516754895298351626047368676955646269120153554899244955241971147493898221268256682546007810382934053855579439626153534665987108061582540677460570916897892395287610346874650892083863222256478778692284350909335382977651927530031731001387414271933963901995453831384238593434763309705905885239750561426974838630448536944428629748575917960048698188381671075910492810105197255211682561722135468943202254596673932123359633806302369639169635484654427373913215602971925916932875430288521437348330968655379447127041018225715142842486254976626383304037531925457203932529467093257164526292067337654361371881820312461320651299969721120552383387470583241686778016259366877815563812137481515630150531900407408605667620445214022943709893615447550505363182592833693030892994239833946187292033356339769709934157851126524248882156969695887250830992961518815546793182551704960186880826076682324907123242651859908038019460202683862198957355122963646981498663057145829422983163147415673743955017118988248443997707430163394829315582132151214314741767958617992390441242656262683748491668530823886724701252317161800929602179363379654009614498183379316689922532123484103712394070349350527453155251032844258975745577184771433891973907566666268536333965814879812503075358732251688421213609541472804700592706685314081160379129129078943830504694797045072814116762868937966903714538357222618017695082767069614131176918449329378051052189877619192010438211660188172440304020136584406121789791544765985012302908841219234278402326875911818161709201873637788848277805174165862035623037488671125677272157106742141825252325557517105988008015076640161658557457390494341350180505147318845093492078662596508691220504724710033273913181714360164625631237240837122216529053976372904576370672121005860345593141923742638263198000111439014072983632128029331041761880082509038196266157357238434614859347595757711324519069221655712693507613880496853026697577776428789662650945537820901543790936256306978330669884084402325079863943409062178976527713647701390887507108789549297841380432767549063756264048849779538237596577547087442019992309622700815418541485492662207807243102069621185146293993808526828986705793598348441900914233026082759169077561337697446352251470112404677757101499135189145817075622611674448347351117377153484572720719433707363877131580395289470500529461562836444716627429920248136198454380074504466022880470895106799407689980375261406271101569614773551544493584108656775415886269389677805684748665792451423428161452883328865924099748093864643120554011807638879527075580379360856977898712274209059016141417609780536745611539211848370807322164253076824650529518263104470719562843489915757390667178715875195890589935209033021389068782993431148659718568694746846552999110154695027221370410073672456537696501775076981982067457523004062509196906169154674796157010737341481431008598468987097147718722565123634020959950452452123038983950863416143006910112464893525236713476299260916579399454135507569241716218164770476546977610488758201342120399348438876545561913841756828101709221896695977452642639691786931548566322789653224275805280329389684125755974264722427010781941649666961525642257700282992970144218924846981221242566280396452048353881848574069371972207182170600923253145717326532089009866892186193174191256009868919730177674770899063108619233055423216941597831627708212172888180511786299379603249702142189228325612666018819264274147506459532250847866074265527546386804366815786956130215689693972610200775856345864402966654932399074852844976936060015944544676658552752140771354762076544301753460062286971286521356768795620948705624704420259766781935025665840851571865003628289407407972080079215463540304330170806275745281133399505456639968593192414621160401942368828926559662883505290630428527191817211898687569613566061422938834813870708403381699233929347023269129473134526687001917158596562123345081268276920129184833570994560663153957271451116538184810944768089387221454243608699401824680184841480582813988715953827436003758815646212593153677527376962136136541901273410550462440082858515918203586190185769978324086411104708133647946839832648016905137827388375222724637725401320018854675067395076318209300622933663078693098695901248508788232771821708693635975416764431022843900136825227140920814589936242352370125726929799356111009310718258334451241770403461334893623620767016269412415295675151892973475028245751809466661060701134709088722417138924009509069071250832741015968935224521233800575732252562469312797806842212511626181345264335239121139583534371018483987521104649713382746586376442065977677954680131117122074530903352625622499322876571107136444371928969064962689109605188983684948553069800150001461365374716117519977918418602528154192265850119789660402674612079334801140836160459000815958608957017936142725121216714664451217319963478811621816684554435748366218364731222051787543909192591713061839020133610321613392680160663407087103300221206938931820198652678880440758883484419345293393817727749196916085647789912840932804746818534404029482075852759160016866980702793639182886590648353805946191512187831833769675641662125597465836046630743025305087559816646234680733825114978327917728999109326559031506240028644469619838279049533360646382645410419846117945686390957222325777033089509525958372203620472011999812516114080472033873233039160554512018289929266924739806410736981869590687841682289140519436515059653334850341240712989764222856614202126695938447374789883700990417169323254071542044703656790858907918657154302433801863684016909182557655316956292756773119394929206336432259045236081672668759173360845197452935979738583381772314715479288620167041612073686625051696024034669389614579151257488359496012592535307086006559750853167357618847756829964883998307655703394376650460598657665221636623281467122207780198746861904547905905166030964783679450489796738224024205901772238968196357443577319253422076810186860691213836940199354277280012085218530697473890402117040875370597670152001113643051991977391487576136265761783566672074174840528392358672431038454380100300467468393627578408568780836464476864354172731013346226617465388759795211820458562159606552569159832726839399972789149519743444482139364134635813965065047470161065040316254805208764455026858853564945702483386820939514354425018364158277893202176907219149782865138030819124889964393342708887613922411549736530419477330756654482897058579575408313457578961134789132204479092034829845167961457366831100581392856510290296967769083584422287206186412833472828468722364030028196142888202396721355838220915808889281549554509690928960190881928345518030537418663157142716859805043849123470238316530793185315470915519596191115030188230910198314675622985142049679786934389311587627720449579913684626135274732712886725147595009067062038256728152339023365868400071811207147835506778535165241770012292227135999879842553152206456640314606310588337424882893573553309297724120986242172116646928290698029084615159404099328300451251029312854031173255299271080502052437118777003705493960145398022917512011502619629169936184637462645342658720030370405954359335784189901575687879716703962790055743572870021774928270511001002876228484019085996484783997567903723166056164336219669593280220322001870645491616560916301760160501241476600480088831745500895305522225144462753688876217412505020932356693411940849795356046704143279191678921298130995493983377745736748494199835377646553989794695529961301758217149739203345217215479729016712681468497958898305263163867711825402533985999851804917197758417747229075808974906406153691287023372892069029447341591244984513614618535903973651769300313240250985747954175824931408568424091210396221345857168348110722841749666388879216680101567439909165581145481100312425728175360591280556545247338743071781427937937051358221040296304650996364677962406419073076687898117866362977548193800530792725961433561900101842759245431607598606653884617670374400080340641732411608950168956790005371592281958493789945868773014780791528636714872577796849254670513239463986732926227411669155806995215990410397825964052423956738040072536131072320084528366874865075116147013760378903464283799519248956530552993173620491059980287911709534347500669000902446905841899310318256652228965539143319203989917032231313145396813714579651275493273218543102239037512811488482486912633345773643389205044032933181780983299067513464458961861990429475063302025449610796009127203898614855803390666948512482223000133540840595367232173129631180509395240685391504487018873255917436157586144778053482917051545767721516763723733840994084992241562575466144639690286458997029069401133219951807688823947751339394061497273674544574361908635771083942657897280982667495974464867222432903112878320355191036310044293448925446568006482470722770645991320302335132181852012497279820340278039509571858754038542958210602802961559377462799155132025134482767734633146765027509116470830653537826027035557566910992852377298006017327983399071587677069076895231710664010277458986475991780282492191748071980176629277838661792342169630285262770239828651863119672152346794871750242385442550725454719881507419151361788892742838328305103027453473054747823009784361084108090515276992220256505661684102881944113294141075109843546085106915647804609389662604470238897641804363242441871312942384578767353388113262208494287176250430136153224930757770900807665816182598677187381277190397315809357517178698520598519047587191446506319957312799481283043558462846528113272105163641477485455416256733934158314374767062894674074615871550108249617524953950460779469147621457784592964807248745233369479024985809335403598831913962749235372558907362974830059899610470866742716664284500248473561056497052630000671172649877060361432183381829171640815337476986581481499705253470970061969658896911720120536484715417872740214023204099311777807771990452633788481573183023972591295244944883561627709246953281222526524881970130025337273234968998386020194687307556648053745874379635985450168905504740158585408077973413846657677683498214192602835543423331476085677956584761039202136872856661308382264446415179331469282531188172035125633096004408845381062735930044618846825811313064172778516132503765909537147891925231365160190498737032591085469156338997202192770873414117962039181446185353340143444809910769945668657286327767742273579669945627305829610361476766880457323644367520794248967275534924337201698703392519192523378633225913799327042164546354355331599016478559379681535653665703330551921285850570283767450149677559056917825176013416298971051137689713830425399779980876710108702762753447196297363494529717375127086027928523315383175906189042308685458977939182296171649077653383228107967831374701391511646618794348714720313417920264301217726655002167780938509801534580214866290475725108871684207200145622913635557775940743216934012153008626860983984848660641277675553065996706604585743645326547673195336374598641306097992826523835207366016411843571778285492700182852255957077395888633747170354305797288820262052561333792886578023746881866127168095702255402770882336893686924278593389193347521645095279817631785655977338966384632878336747296788529380414459498199360742873723100177545973572612785450563866264136526536235364374088599577567903207606412781128677707869980630317028616756249362481000295280738238654177418929405259682976587971515219590752130038950024604568821263527116434218217905147299640739282144944389117108881946859603132254087913398920478927969936107777709908979337394075523221449197123904213282833818018963878324376568009160769602170965801974614167381310087053137686150586623629157206902404338227615506695366570445083363333028012421958026833677202733577134855459594827928675897269244532619460975834602313703358412134198772096156550074587956811971792960413550368372304387804385433036984002418095482819671159861146155700095794237601018028801659250251720304873997228395165200559648096076700932667731718322505552480626571192747242600215907395870015977958801629759688256646916072093765504414409970392228525397741307825178065902199569859485295067755973435487431663336256456518023005236793028873364220284782527949084607417298029744274200670575127262987057268635564247750206226706139560798640411274131067989138553252144682437049475715098788839007567786253091435135739166403306590069924591791987373707369136235351409959594590507832846955133927820487883251459986679748827147090147962972998039257371543419854704669114921423039674947000817868647193630652304324760366319457568461015027564442687209912393059661122086804142387337423684570608140874200222401529295662812502257422516710295746661741917315466011233367195823071817492020202325968927828886911926554928167132654663784512887479964273275267633830477154971721921719614935366080059010656839173133414295370128976743099801825628002999198782965572684725563359711466517774753687039619251783108479325116394727531598226057731236810145876703920251850534453398323395338029014509082854929160899156714548964815657057258334994670182226999639366107509436259052920786964991730655236866577793971983169097977487114754630410216104623461144527304596826324546427871981985259096709212711564544544402251046157492297008088511569433702713921711241549662145423087796347031297948442172181578891684653437488950404174799521422495305680701721491139870966370436966081701186512987988511882118657878058145389728153670706739057369355433953933304169904885633249128881638017965810358774877379367572560973207553249742361442143761602108318001023031553503575390422936404948517166468771746498470109292356882934269727962457293350682167020111431392547297150820061546288618744300069208017815078840385073250930396674387151045282969252135931538012648842185013382433813882940455685434481706067053171285383630715675398368400599949639109742687375200528876591955372875156534009058792109740201968827242537015081322307537761173384264680337642059311283507852877624983841097541604276793395525342111341073485341732913552734322806917898675244115324423964138576597223860706191050755886663143559540616676930658542171075154731477045749045523069581876696662541828055046953678699819106904514361924107598875240415475252981749824415006939038332178154084883001952437356098330495963692055481130750193826073797264975004370699041055972404475930607426538417293764447782534870505470774643996898813170894035844472368053375934026146837126230501158224501115154290463911316181142281642839993555716981846831857059977294284991411620614403689960203221410733925264975126787445314214104041270717583803160762975591698038397012487522725325868442788100415263426452845442120693947987411184215284125576003225785280225275285520489483640966635991495657215643713314459153194790252251931949392676093950089989337137304773707446465281405271891051250766965643978703068541590849349860143186418379565919500351295811481644200855031070986364178563182730016568560928194411266508486887407971480209800887250951678777893823811064531290349553908557399028006536849296746680223660905482649408699950717255082606235051565105906008546246356335623667157021154757653551251615036585381958889591649417878835670092559480218732365706339301594456890899571630492623374885470187421628454427027458980667574205291329677654060392957224691665404131918029704493645249264946782811510996737524975783719508539649788134713003744348304016017664459316452239074357246895767293262574427757234899926439594740000339263462921376976027527316145260323064828194720950440989886861759420005434638128799115719344778278253984138251583819863669491956587910575303374809354654517043015813643755876917508031564815906491284123309535265700531441070715740351684711113062674411585501949239929287104851414955326958163707135445019026876518384185927536115168678788533250364760728423597840471059015376824158054431363140487270706092475869395471660621604148148835298424215865975795171470309310229416470792471779833962541027750857068055962523622089302658164306476075319872309970935656394356627683712188418105382276686694962319343376416050701510629969448144353256605299523360395677332502831056551598574093197631996670162582821609347925949859274767487227946362154508139435053376029417026734201792898725247957060410920445193793509765697049072419237157120511216727339559101472659169975479009862572887866570388834606807418478829881964393836409384666330288385798249115892167203256534191159237438011861184173972650001134603643154609511342644259947873857881178430892654076705816051355655567494565102395605552660152411622168407561338644905526981927019375289241534783684903666440951940542824962618502057577337304499285809033660478335698868713086051135651013821103096085221844807338452218940860111469409501296798904690447613372626099464368532436412234832557900855026675043331766716224190625737492547429621617588210063536557123455460121309843897464423482501652898601142590357549754744923510155518675639776809527302552662671864342060958042484669622096167887597093450803292216198707446731935280452476611811645294244425180320479061081889715224235134110493079451013412814228770835655889602784980028706892875512778853092846340358863187541791634653407892950717342469325462357254068947013274679999591249386708049889087117834512196890743222868974015710230712030867781122083532578364410467689100757322415101970983845146065849501688955526496733282236618163662043283016553672512545865876490309388307567285879302211141843786817821469807286525710247780402991760889935138945174464339002629099445354192049403511252962860850862728699660426295559944992612676843839304748531008615217662590435236610719012402067226688209628528853820745090142474534982671603406024997384963524842775120451529919911565718947382815885072592250810761841632613751478253549811788110072806669969965432363624270627711717341696714643532403633822517860466501457488521100172396725759144429315954165599287107764652532592813981533420978874747277046989216474570219255407487735018310181750408255540435137397836023102442604335447810300402973208461951353628028935000603031915657987949809939835928807669597485265958086435887667596105578372645671709736451971328594900180453007994113629213909466947356591963828087897043179258285378342817646014813318488930178861276335601665794236657864331383826577582693557092077504934878310603744360963134586772958688616811585337905493654727910191756144170137443487151429134632769214033040857727539648771359441184254141031893149335147277964523300795501353950794984231802542354897342101631776189613248407438302654469504498571827560038373996526599603327918177516028476254654720464938124967494282919527872462978470792450895787127618582289355509382567011434616624963379847897934297388539315141330259603533331468048673531557430104743857037663882862624765361086719269107282225597850764216980556145153775723318056052098278395735609833433692764523192458616254455153218628972196475040024106508451889058452248587564837812611696332872835839886098532676084234248865809988320122384129936417233567679814702679456655563559383675071622566682921151440249407516790987818670911814135729443410793488225255962952699730476702490999994127146909268562797605228742980529118567797559156396047193100519375182039486698120977793463296314131662781375413830255200649111842014319262175657851001174537307540900344950262747604770726461801937988619544396645347372479913979562938425310718393275960486385216944696930335472252729443539961395707285672327650392869710281579117893496238222122251834618999624997480571531236706688954000199735631771437031698830038262904810411641755627968899777571709491626955191982069478846425095636094441252310044472756655682305026781854282757450729117871206135070316601647295441968998332289875543434347025651167905857011476632156162936344719292879883292147090523309003505084948449640496591113658823521183529333357010777840847299877755335656941049044129972384207025874249563357410599864138545489185993005629738971637388888272918945350638372108273722717976417883219999980811533062418893205887674946868484283301281943514154355656970944404131778265074395314549460304946049185026936137655579807746490443646897507299783144779079329684589736566184209573370159290126062950798799162422506460205215589321468188847422177645557963665080385839787892650537977081464388882903763308587072271610122483232848054931960729181645131305255785177565279634495497589377937083460776573807068422421308476348538327054833827288584900763489677776014000088745308518178006145065451895771702330786450313083503594692732201212304341547367709902295395397591415493714308695590759980183359468419438460080405533192724292838145596547246243114645072279000014660544535305382098496627343371948277519811991384046168303109569452170594634388960639880760731523927990726397046985262395064774367785193929479337772527796758453462816113710425921319545532606134737640190366086228070261927933697573684537759451546111744589419446388586704023374338374883022435716693178804904507535733333751150385703810093325181355590818011993196354818935271736913112250398306290511893787556037524199462366848968816473157722570650279857053206975184199323562110734326997517550096701277651276863795834545413584288296829925308916735713208668259716199738536067501510445429799286917819455149854024492854771929112374386016803057680379165796996364257253673758782489104993678315351328766369446089113369416138359515330601653297329596634289313054525330479861155645062696124023195153161819117487860133759499564963049156471402126409524719114940411435351289630146536011021410505056732907775150854631091425953636669303904750810131657732444731007184773350618148220518404964555838538225154485077072062605325175801434728340417936732841143381284076511196596319780845218958769188928704721231430799438613787804214207719429723339636967964712521486274392248834332303740754902831363865145810152725752303653671378046930927249495795095038463605909331647736049707074005729254033080826216920665059672206975245344270442970811466885733789299986912467100540670772537746258227989187213164943762141470209799484609672008383463895131690493289498362093671792404446298335205096463720524922749467259923805291130037739850323519536832594110174679257115348330227581965750946622200404219606550867944990071502551296390969784192657994532172976718248476929323275638281307611947033238127451469401183406537403751505364926224105960564409460838578140670178870145144970560452811529587848080279010459877201767480019348939781658542518302076158270548402790103883201360689102103176287161537969558362669915230360559802811015777236642023563993205407189613477827531108277166602209650290578482996217019094315347438715862585128929432445047355959420629411375719813727103018757406398158448122397093614746415162122705004342952501378594954358544835370228063954511318992735214368156592585753319255964326962513963251129378856513329188791704325338595527119967629869394928764705942612902703770160341284046932662043267762713478415659530543394899153631914734291366571569206494551935100585009300535419422578730476426893401096521094469135839872932120062981013559294874775630201318701739303223186795179835469424943048353619059606034619129058104464462672594475277331069873480943132369375556400479327645190005302751138731340732470463914322183951883660037843266787730086087547290590590128627739069726302872594057163112338507258854878853958001433936651981930755991542404613847735592809645145688402897314753579064900475372790121380643218702663107634442377419807316003984374458001571266853137434156308293758998177265297640925465399986548141331464243171951013593742617534787839119911312148606340700315524594190304705151024868687970973992446923659021169196457197938151328664316999585815378776443637256702536267030974936421534871633509108753799135686299250296451394272256746646147357100090800968869101670556074052091219162557607155567829825420125684565540405569472598344174293403094504263207038768267381689552394890993543745656290298667703972924913438315368392974452202943627023634330698628762669677980498259609160496089640258195290953072666194081312092792899499580545993184562783513634752736424905286946375823633815541465947898847777241334903462627531900320536074413584786432350248129946706773573790967236853982420755563491763207101778779682836314337496632709621011347684610856810344143237067075454786727128795179026826951083196989364537071202143406436428478795731437401261986649262828526638989011787680166036863806931891249090027247902839686498503452501901307219707060431821540480783600413638309676938813231047595032500930968238553668907953879855732203880193021021245142512771876638008987525440801607825582328270927547345621771724055463039211071074280791637704495752431689403392731012672364043921827104619698816450052202505686510819193814922962597863122021771057444894324275720031140441919731865592583727301004066273490545792110232860300350322011804595488167519974826253745569026752431931774974687706680195315147229079633614160393685688733334136900555574443686967381252401694449698736838211262377835851830844431981611485941608344162960417830946187294769588119645792536002457010391642195795002003702774323532928826095897010933156634780807932857646259676579433155874780760345515710472754356892880284326809314597607352981957771154206981546584053271449279140281309182329259068594256710514711391902218333971518222138734562915096086874251364494208777511258806547230867782612198838908194673494624904337025231910747754473128316988786090088200466515179760495955834676486107370174440271151333624758928576221923333758444328466574748961874716592381788315347029254355188276350448175808838130241862272387565036252118329750246718689194523816990726347151159338379426641706411103979583874800638461571306625129662276159603969099974262572468773629310340605992798804271023138546920241422233413223065143249135744531516049633332929728505626734322563987671441958381486750587477972890927089676298990600118276123278030451804386407523378408786530098346305038156200548638564782272765133841445960890386208839293623919262355992848856265128364548158979548026227108678420391855844669825425788171616505405636317174794618771890188437444479507044386720247199025032790550998898729549561098013819783606531944814567443851613886108105395311033845994773467902883272522246896574195492221052263102360280803599503507578381788845419293716420018020798886087866688459906897788389393940595587806143853592530282645129120917210144833463139747295277117842342047082655344102964499883997951361692534175072013301117847037710626808918289285656939797043667406720488875805611266378044462711642516002092880925467047867722860568888881335522621509037488241730347987160686533680308815908661874637922390675585568811731759119359908404611837588144877802624002834488488351364356375573653624370591154336951920797729174576297572105893922819178438081797330656035443381728890638604105620078553226459904060195206166505268557263929730141831164300287141022123553494646543736549821272788999930049194477748363434491559091889006569575441753814539549412594001254614607558886281090254556429197936821721366427630354309405782553968021578419740229643206106787889767066879485292286423155116076022492942594848781910528943757741087060798912231199670796561771706648360757720547827881804920158254854645436508354931524015617867973292995350652150421013558765353624887201559294263635219194928540840579842550620300755489494274031877325269575845114088645848198407384304350741320740169392939696550051372949183814426404485085915343532044771958126336077800014483426588046303756464339118046875915378290733817884164576990840099429845373758175246834883791043002951682592543738438836666292466312842158792526183461342651104917987895178466769650896688694565539488042088242266170226144076453087632405774589350941303237157896843861610195657492370836760323592834296846429926305826393346312032661828166163586242604551320092661080188491862418789514592512695421559276992655864586815698917207613387794525772815076992725383538996419829486330045164226292092924668031369414114069775929358205615631580940923698235194520643561946530337949127849357411314547218813710086907210521461568441254391372534703653979191085157378109654667824261155739551315806111779246675210132741748989905195300030215480097170123345409392892366490908850152398772249297862599164114490395446336675339687137376324610990986180090328881314236901461813101080770177429983720956989682385504319880455079215098544794047953206269785412422882258298884270752765704295098592836194026384038512334230648761763899655544110001061479910529826132615275728596806430911290908538321981775168153342735940593176189315274166865513095479513362212797948453656554819569534269942187000554807145265851641447476802660712644595634680302504365696009660791983903012726766866169913379747878879109981535211318480744978713248347535162492495778947495272152624185554741208109775920584725822749491221283248944632045371498387100667752629858807020750599826934544657078803480524638895279603074134142309519512735787928429733603723081883938138795485974011574423725725982445555789934497855177846551673352842575765933476555577532787439597840779293977185384055059226075662571610546070653137653179758431961312876734167565077584249861527337390088929124343533549901823422928538289516708319591558875490016443185868945674484355445975403957185125144131296938894801432806713438871021738203825500555990799807940887744796891776823360680989667985749317575825096229148514676367169570521791457601717030665639706042029484350161403648978008488379832430725692011588973474959264080891566855669025522851765830743699202354042284133391521437427622438308073560056659114391273603008564682177541773981394246272599924898475768808693835337353840832050603416397364435819305192360591158011709214910783125166490839404436915601606756834333762717983030116570233921113897194918478245743746960280450971353425345088813829569115908814745910691114520664335263252751805114394172505851951431252677549375364335005251843454410960775033141424261234355734908363881603029377587367915833325920313043897709041911606586526236177725423600535788656039699915361340723088936287364559015595405883960090160930124132038016328253010849131181537588073265863820402540577830794384714517061333277045461406085673161276282539839147835110332615385862984928251678955409795314081629150669143246061752511648647772137878882040920291917572488922790666163841957448343364665565287180656725965579878765305165971695741380390394765718215312240303614196296285968977644544048189689915784173231324552093028669570140446694334848098526055318078521280269428490573644498748830883194229070999475805826940577984385527091228680589234805915474792385503944265851470002586524338332098208516453720120710973805616514355565584032054749510804648435964471032189281330851043957246652592899921629219853857975455011707841184756064673392124039128912718564852222731459392260918227148927872672404832990270164509235685133586013577589273504153830534980055520275176198803018298117021573420566216562823608912388282712657455666827555982191831494069720423822847009403584100853344505774036211953236475798980218399873498487253602135391023124637713056883165681927875207597137604550157480937317087156927672619815072888529750517863884630801653306113140751623098364575258256742481752702562733757575358798379280349623250569314513728423933287531685954313121937862487807814631204127912341949084612633381405045600331398248792140157942954901532645543471601065376750158357403929405544000228515811842060575808218984818862244932717365559714875734258237771482655837447012685620733246741060015738450262743106558099405142366282646125869027054949059250862415566067474692765152535944328105021811570577030045243315962844972864527864199790170425576523522780926482022586457529105049075933868662051560157966339651633064268192116606037775119137751138103428973703207570473497666349131150120351122797322118326558227972941068068492954473796901440970807327427585786357118789689579397102049662289852245610273129610298511681193635056011302908396270617402981314817383316251193279588453361100326866840090498730772218055169229534264550309365667593166865178681770958886892477604604088128056184308869578137774962838864476599464994975246062880357571288489265972318966119954128516269559836880024952142244118424355762533028689643867082927592960402786663411369203085024756438465136788435250083907524129382705475532215052363490374763112737992107649291346448348493535918453869062436296234835634104462200604084675364778082193825068314804763067113129097487716423555523801083382701456711158251320130427156548513059431563174216600113884997064484260241268665495573030456908691718395141524481187395440496501770306458612971841964238916114407402622786037874165064343746857854800120900708557249678687153573322271510031757153326730898287660221431525657423783329980083196197818807320854404180540165283550119280502439500026603320915055793637294983808541328277820548122397334147786368727218444126129292044533341410714789562408023560795537668230652889271270998828235056512672904677502198251066170731673888662641139154102883963280164417616206075625924691444472742524853237998883956043547303251215440959047837936760697974020601105016245258552445154949702234106972221614861931652106244296899018627976167135571161744836022569543403251494320273083039768097483096735893894966066949701107714315903557722393638421305004684882556029352971991717226115374381273730261186216979127802273054607268809087670485231342632367547731652560403994840313988193631804320998093439422176466764042596247172307219395603651569196649590054384394738286985414487234483395431446655485439395237689698097276219093699942209308275124480109129192724841428737722713479182021677163061101071923697655882110919982161246380871783945152181493217624049493211795534553466366329722206271018278835261557072134767884621433755866489131333256308454283465401358645841521381629630538760860278314847939694510054641755635442806612040209182327026579447083209721094228283309703722292154258892621613678130493184856239877429316361611287409169315043355138285909963509961423268012184923891711867996695585929861318239727807315926222100236603758286662034428194022943641590001715429022362024541305326787923012486750097724645716615908391419829901251111876828277454939114282788676632469819253370828713537709941844057408416451835417965449173311476161102569978589789918667475344217488432742190971053006677845615700514231790052878033263113753297511429237095898535559284230953321742987472586761163558638917819290339810602814311960795557113135525337024800348445869766743312627221542993655691082567393457083112026132397988433830495258192262203603632243827590090205459102330666784698941811386418033368723157925913257968752244443313984794965152661509702808924083647316895455894726241570595383609363932486832140997004731595867811033810504700988809139036071170868203052968598076390460617379719396972047693567875510664688722437714887666858628741681562912614927048651803010690455435199923231097144980780774379853443357250786528922649639441457422601293437230925888991185402106510700593129683120291757111438485252303293608683805751972649140549559351307403805794888238074331825370290928217164065248422522939860188485482189420855565424159131234080547005450623528031350455427975458355650809454578500458624265044900344433670406615724185408742456382045801610972494259763642861552380586943229922046110370880168218403644336035146857569136334885295155976045476409358827853874437013145914596538852875297518203191934562546405946540041203526220809786802475217390207085850242005957460179374510891628540716667562517541490139671395719133628258629841061202046426880194951189805057247594878210743454246524847285988086722380468806982605797187724776524907980880052092263994571610798532944781328432133283534044231965552399292470843462713097199038414473815485684281136723319347943690628758492717212292891474850304042571687866830039418164068150639094002532675139992607157222034849780602969123648901614591746254655100757004173079323938194978101586884848587500597733170388923275621022482730647103506972254879918219585867446412448539481265736191144114623753666992551244488815029944125078607307679098900889974129443902119309605749295960242236475735489877544094223854476484693425045346174282989201289044114503064888518834188220913642596923570406582991882184517178634958874495441643400615471116959206035986022264418301377486687136471019289076550327007524127658675676103688046059144598983809153584037940188191703394672608759107354615232592560191855773621912076842463817102498353185326157626729606831237917535887947363813064235453405325436733354832564676645186877797658587367447464307433471040290057522251611452673997731768871909520515069952609736735549765731840417307642563394127432789258384561635110508229788368523765130330361757293839039096100222085857237887943124509941857900034358866933417787167687413893137145880198481292264952902340802433606656935998229651650199195431689105897808503333255236409692083043073305032579490041484584665212955065305386994004513263421891125761345193204576064626994888407441148534292510281872542705851134512355556181273127129973737720165218951846345619320079798433342960106965082676780408439714986285675846768100798588188877241617484139561678883072126997110848666367261742321742070050714779160299913020111616468544225829736705017716528703320893267847212857223688253597584260531468883850801352538542016016555258883360530648661751807781331155707757251935279155727093747644075078925798840729916699774479070644244400631346307542233732539186471136564542394330565226644326036992866075981007949581201409768529658533866965351839625156820982259572447407518222351151762374579750863965966274110126420740488348383272328708666131655490289748643422377268450087784591505640773017431833048021058482997848108766590142056252969982404299949830312718721205477681930089389525976450583490629419354900511523838668823132093070908343119450608699237196018974802209907336769776558318684083704038927598697056730553823323953423093318256818677789169592822280701810821529820082396910103312459269441231755769541028708575896760363563123930172282734525964250000614075496348933863310408349578485893452698268553327566722804457760433029949445913604455635067909812613490676461532839778243030698579989004541232993294024587050591771593249833192017514355909048543847133580664343222895677200066194676340891291973531162422973594685520482781305610149180717157425009201100802465842838486534116465252652801456968465050512281715290545488544086950569414379991441452876939868119512602509941853792014979335425193345250731391821556736111192565478868760715773344217179124282634712853662223410525553154334063061106157454413306168402195865011963912513162857152111193406928787591028009616424038352918252262079249871344940933183094222704652226749291165358460307795345887657145497307522199322238509839805153568985033178457664135934303264650353104216659862629702265299229786993510759193980414959524000112340590717980439760159331346507081054101522459774215298033460652472579608808386599175420844386732988010088666272171025971903948951739282820064979782078387986146783608692654237759598636929520272367549771014485150142577706477753917117894777474126386979806513252571289286530682173624538117562954370323106650079591580634856169133250395812625959323709763062044289853475644366968723352089365298061996022329372571466327964953390878598699967123080443514476125882667320469429346801037928667387205461018558570492587939853291438985581940386704853294601987170449285871420689531095072981623907947471698207255839852957970795857438973442601241282811579137694263766046627436844610176301124032129193068282138411298792528418804001758240290533836828417755668684537957150269173519618491797241337696577050754878725454713788486746620891870156870621290763628595851287582641216615305823173410098394349072426844968478182304091502085919536565679159616384355063131775831117317979852084655627322878148587514848085018918078756022936548286140305150755360904478633068865004435332721416403004665689873950829669569133610557263665624653407360607913940429562542724820687837314176949946048200330605979424907950081509414999597977973100557011547382644159447576168192922772076761982915127378250360239629447986058048625076640459504307700169303563399998007253733438660746677274400596096323325808711246908013518303770787515253068320076638669094477626477722023962508045137797669088543763458596504986753850957488467278272112252348827701484978632201491707568165206930655499079526819392948168803114976804901298429964049527136376999639018312286276184978294080473723450023264681661222613634060789975029117537961964745372116692992300888662598048962510828956593773100850081022625399989912339467402709231620244911780206186870931943064147061097821690111077650037406307468184767453243279162077118827919159543972779572918775248197919362478351210685857320859425856060554818041326389406763776300278422301007194369648587403198698569987907952629217140335560171454437982030185684057562982220435527953315956977066940232765127835052552439845099960875066028455364372711029903453486863713472638104264172736867801931570816484404362614113227634403229064128441458774792612477259812377952555871529839203029044780776021944564376314647528896045984819956895978925982348830938561551370588038657859933572614153160051485910730549167024607710188430913550786827790013618128885026983181579185938639638062754312435452201708243524035634790871068621693122100908258375448118335159520088623690681799440715372181427652265742224366339719789228207713041304788821647484910271450398124679098485799601099416904483317336123297735699896384729210495367235911497455980756499871199834492402329564417787092037761848470798540095953927224674221904154992530166800232035726731432859147960575165179760177475956493776154687338413132330481291446987337957086209526092081708230096383244744453795099231151495219055260563864643912193475154208940177658005634601302089163425026358489219644793797400657676258809338724233724118858552507925717337246046120656310042554314454325740416725406857286233282516973912373092647720290823306810108181872401127465107388465949112891625310121575984516061503077602304912107148345879884319343464261105692836708768995588552448267649149347354855240963263261318891524261608420845337743832628001667656034867934001972419295841583007912821190994671489564945080627601670415193681911220760711819574061295154344229192893964573776045226518713546801766691200725357007432480363640089498716058025364723237657095031878620755311298229428493189751493954302244388570243538887217160522107997167901190316426262780225628783290509994485713008592923379564303071233784618352908056963300530085572940190149152154582884079695985171381238766846198939346851735371700774813494848437496510382138612382305710134484270467276826997860644091936232798994262332169878173643216069474639269339480063720865523198308121129275257942826014153925912371958507083318442520872633469692314450879164128078397067594162644302860849277099067584962230265345285165882517166573582247156733035699679881852497315934105953460450204209333960268218206630657651975436175452076354016852395324894765300118122338631400147009912966892689614136750609226913433988903905454446482192393255996216031325367585129405443009266538101687877067017504277949628166668117624988695379024636443884810541908585885254846741612742850753284557249315328168653761921747419312375728516187202141027544169007677110854281995142003347512957672425355505475449067013837285633709930017082566857305112030266936838357808303157274178306273813653700639811092544792325533746091586759059268307571422740276584843317793187039818356040820397725447082048556435954419836676247894659995275407044010166213137323394602608396416727241522925913148536633738182381185005457036844923384004240513721428738065841724815799179405396422721483743669605690632435324044310888292581364588928913400623239414189100108486392239588008332457154315388615695791587266995265879676072595075492507495264147379750383239025358606122414875762633606204198219922044473358333617204213878414870722073745650865797069135448709511300338098356655940839492054451800769816989217353552457509355801726331976485396287897938967629459332592259961530840333612792971281545744419485844682928569003117211168638829631180417770691282879492520239883076566531078043736579118726179242223315247809875889943450322431378816991576268040143775337463409435902127965346449108160404387430894710597262108409456003468550181025550446221088387553172648107120949745330920092546261164416428027667760216026975565082812988396348990142580269528671256245152684972066902502745812007407223730542847645210905600476903711681973813638741060487319322008016851967943805679098718014123591575615948136658403170053041667637697898672646158588287575787053676567035018180284229035704076134386540634858738931880060600963528720319469443707651961725947290375278489698529758055992639946933551404431449283199721302538964682862368637997088179851492476353192900626781254459261943451535124863823271899637468904988485194068016116366307504566882809573197411911265586724189796845178807615655561489187721065714628342141400069943198854791746981835722056729611567602541005509932340072076699028272352649874136828559085325838944786034442959404672291271457714126572565383034601062082561385312621983763886467290865916250027157506482557507986582248884119058113853561860876340864650969711306026297970999442246488777064507255479499673911758047264893979882794689502144849388741239637148409419534500907264835082868467494123356197773413387061628489465128454263340033249425448741976779825686070003340339636837136916431770574335606941471142009768758129435058868106063436225690602240751590377786004745805466967251316336302173665370257442374628259640164489584860230902288281682228541254601315607723896561801449394493551529289813354207551737743155796240907611564976407176634719313162073395441653605052305529285736742362821743645249964178999112015531415352578806335486854613806517937932260392731392248645020343450596285457404887258001079250597381107007315325368577091904674031373269594315245774659562245257875555351962998267186062541368227259455022553660667591992798843924365697025930535436266679203820586322293508259140239793107923707512367012555127967707681626798443446987400742735880060145219760389057589233969409101484392502488410314992082581145518340284628572776066394630320176167728072973924434598486229840092702276780851701132053795036803486892020518414167638941002281302586706225944248456157742678147144176951964809071904127111449458567744486876147147693216830594130524365510843661884843799962105630495813893942508929732022355664533792032651609882252338313390656223263795493606794568242663622510590116887332043379781070338065809417732202571623600296496694021544143687720231660097425360234087666975600585045186153166272697077616956999171089917500983885845297715724869307559705601869909173844513805932359893708238569532630016748569012626203527748526585688562490771281215335807442373816963175482330161670420615613779965281075850461616533210428690070450406244088921835268783734908697092615456065710359096338169191109808220889681197783369739898371526551980723599052544704264159428921833693908325666166166534121420602037330363237570358426478711165729156781461096848677862508916995735600171156778343043391438268833342221110770253714321185247248038865143266361577655911745789707808027397767719103148105434006534532288196777459912373675325333281051946158787543695332382866618345234413077561066594278726804063517644153258664476106608074541060312773615356485554101652495051058268652380159151720775064623644690163226354327751096440136161491342718027318991060955148121744001749974871331452438990148509899470585038702020241821341049900035162930757764361764618977424733251118555967805579155257531313220069994741232497617913500257385329471675094355793506714228016236148928644800749649551721514924959943458306025790990768609859162038683324616187010485621537493332615871835105619813075141841356703091814629830103206634239677373942813710143212586176037965074258095044443043886734023990298600825790830996946905743127553420324388259899284682180675046913786720438021647292970834202701445802879462470016488914245086091938761989558717285447351361939634256010797620721136145400848348129971295193762889805565456974569178852552792868794782925709639116622681459923294648631870260348196003184536677580060447459929894753613794745749897898832996760745933780583542645252409566334656331475771746422698518993094538313035902363152625734387517651088040199989110699166823807043427987390641008132224831073361785639039578725583563302922617355862117986131550716770194672051741938670987999402706399651278725021440166694514210035439045209035563131082510459404130393256197696119315099657164947247731135450975452706923296262687283001321988887169358439642401160844462504903175017650744005387666702890496122436999303492140860902129344894430093820976870817923543298315503203587933521012019570719894980807138768438791543780141070583336904362567656127944327840268859975386497804038744412172773794211390700843710812285376455036921007528585871387384609187175691992612263704770535109892292646613966368738987189214097076730108371056029007455502289290358545362498152468947852154791008142920497570347593897369652420136591030323223026331757790042569159269778074783203454052167694032161511877685221331437713253906589419001580892423585824440714291583110768827162228614100127687755058467692966986912068013046046123222336252528257549715693798439663551076067996659883764581776923652901065711960202815544651483000549526139277370862949283635661322251277085957657141556225016121508123577237395590115329375950089672582778127376221445206580433377838112310020368466816263824714892227539359135710410142001601116892306289892958429704364745314599059803761846036956460009906174198392981404776379671187507490836196470950526173566955336912627893975770634263300526828458966039534843803298599241390912699027586704750063080336046205314746022594861902444256546602511018062063552327657606595330127086308013631873015082512491141154165668134154115460792129745726522523942988979433977456670429512126824401359756656711815351762718093222639171382679786209098382002386837930600345108185720424576964452293515818159565513648812300524069133699072330057489115554740443424181464298540901828575760552363540295101976666974877078916988400233005870979658539790597333598345786115447548268401940327909961275459834452486486684989004436191859634572563042022585929926768931523345509666543885796030347182117751906670780238119026454269809678409486999118987337330342002997323514592143926679763039117833485010123014045231421072373685418437845405976353774031481512710284997786933017967394366986486902123724544872455837239490063147051398659766115353022266158155468158042973893115240334449546976137187642653667758042120748204723123508713042896599010738848541446892956345779631285122278041377372594633004743370093207048527478669266321266196076641285633482551344980884766679936485743493860779444863733976318071757815594586901877506662012781700391602675262523100438712067583588664196693325992543406491073045890631024276448058379355816725759560599515345573102789996029998208530613444864677534605022084861642951035782783954200589173678615493429738929226718599818016312515550363960168613375476898451530832526500189519543037486961978491184454209276247485223087278010835037298589865797342646053225126991197477715765087926565894224518744744811335183358197861080953387397842050859864708707526206705398060925927182148224473822664371013823349304028736023127696565921959226351364998276337984956159536495157350670112703569392455035917294483623112138386380077502041880369429603122514869757907247476596866676040149461969770465691634628167344105364706881989903415706399419151552727426484557643543120897639999254961737595330573886698521479840269929774801248711279815272170700797046684992422715055555205801323801786481889687242318614957453393418533508585188314250884955039193571023786214607790125473800361719595364920164323305638278690412770299880802955125707546077742854149999623644193853532471596266811863103869958571571304428459824061236813543300244365102318765522468990979848493887008649503858672718627085708136439008163389811591468528932660161143259254907539934375954050820876789472645874748633802812966057975315494917578716745054214370473852689203635688923684874762080530833578166468514945961020228841701101944665162076941581658435134490154666324732188424875205645660284120210287688105773902948786466421901417760939647820850921590471716180515236112265610963775031411910247156764561576482091436018272365396439832490961988512955187039907681413761568432209276926297123816764958695721055326248675018125575268522495691735880721626048294839760489756242427053757046618558342596172586851415168715868931184594380056276273531358026024664548330156443654410734814137430647972079272526545425729836274086467109575788271036422710498753880898318414532581980879634145256738724734419399225944109759226565251180551273666547002031843319547418124199273457149219332508704583021502911535482970757277346934054272012330656721155012961055776129046380291130105935751467391101088984243635801483208549287786950158766073950293334489393173393003046660658551033083205789726317497866819662591749064579897555668793497522653699052509608576315102471801698598161489335701044040787300837985036336120121967169924175393438933433064823734668757604010278818485352391159748987662615053526290080269573032868867749080444702663217959382831202560611356723903532104862417632655068068909675555252497784591323731584574603687781818237497847569173023331872710345745702807546181197273428554785247151557028960515553254004766886484230434432428632021989275520622483876394455814996154211578264657020358640198081173840427484055468096416011708249699260686753134029740059292493529978092658480326611189718046722598610498691304060381239951434938697499393863159486014325027110705551596131803249008327720631423578509542666134007757882148822182788481366107642989372936357621757019663642665098080412174303198581829835714923648974483151411237954663198228544735533269195042485638629650185546893148239108117475062643528305233098800180815984741287752332273028556665963463199584868630701881293625010662412769823612778921452658082743223703998205024013088687439620843945461349590450834842534869178125835548891797003117350676956463376811498758216449371611281456670134982304876046239308757958626642478197671257199324714208337609125013232141822824495205219484790268835791780664184532080542634711773152501517936517582152769369191968870093996019147366114212300559201580956153546204158058316922304933295103638075939903007023313876550809195303132422098664557270941568196913528363379086283227276181700508534754937228600916441537477445977556777084502683065387922392652062360475348197025578506439189452916055041803955076717837379196322030443655762076162838266437805803609436771759089511159064802467273821167367060268737236981723015622436100454504050402124818950963715275336992052362270376695427080096500564878310212953308343550220520782745779874194504539691655018028663829356367745480899355460013469969371944489423110757268436947517849898349958686312779140122561030134288384320013361739260839132155584043146609007085036639655724601401478223971678429984447140759546084617890156145787483627876723151101765204359189347454082808343931388079054994388289378880052068430766385780102485315994203233583131422999494305717410615758516063506125125172343548601025076392978435003307490415991741580825115236620022070282679098921429691545856891408433938530820917164074873561001695469022498749075524649648783365891673227969883331852180851173406361725624068440103152862224877342889159805232054437986691772211955252349179491170818106765731632288620122383285192375686636013261509923976091914778156615767949066086776219961783363557574232990410735526654360582203602570872208865709423746845455447781330116553965004915730222927246085300906644858753309532612269708531876159052899787342944646938561517409916977961964242560542566769137641762329076555989311130387190992207957940324864153599009990270363965874579071122154299105794137336426702625554387262989714289653320660288515394881934174208582215082322847654973938981303223675119136491520749332223160495126590239259365819771290205443754112693451764696273470646161570410942992934102915054052378580666825839460026850887246233034439991312685944603440127074826367969235210305549031861589115595089676287770479267645242967796728490386877726469595084438252934635264902927119897694367550403937395935752113765357645904211485904428648666615907047066841016632193291738197784870161390423083832245214556668204357878711399328740117850094201229750000738837112819042142316674357860788041012025285886987659210800239776498463174080632738171542234268443418268395927989602016892547247351957638980160816018094682857496237716065679229876067034248280797121039761233420366435899168749803193236944751561661634878426673113816597562326475515078848421530008352936850859521900832250700231604649814892017981650398094859416448271178730102624082389632457933528098758502812958305318676784916626687685066746361708390929100466965438356086912672533368102545049742183157022127795378424243907358428954197084455081777485384070494907022076287856830740512761479606610912439584176462839759035618202563785216954363464776799357978996699396561613457923337728232854710054764031555484774390082394686852211507483318758359497741425075824307270336706213771350747238937399651148338974414201017152057265919879184907419687468256290855602069457209220334454845048361130899015375344787519254676356043566780234128964818337238920166166238372522063032386965634742403967046978612243486031079172804884267354979028781920605548512449496762911770450454087553157832335636681447394650367110542369301475628472911193210878649214572826366734461420071692493473322051720949318225845676675606628143091597023357844476629613996598685615610637068242804929574983665044333988543971877720300761327784874194100157916153357006248802774954049575901405073443342503913786732088271386778708579848348325149116788747575483243365549897861787402820697896664630889626474472536037317069160705449443750803294067739091526824568723738605203470260471616063783718941068070674583983273612950593976116619247603980116490876394338729829452935959415707214016662002877726258383212380075027827070170525157378724825637383648982459889114885276341442327483587953309776887229832931057251993123969847924651454154190253659119375297690726038346239584901465196440813219145646189843873047272993757881046861319916636570843472927468879773382784529484278591006283511426003982888580130085806904903196155152805018326919429653301675254294281689543865818802052600623025581572465056988719350977340329097636231050930312740863740400679807463746045188642077438937390783055343926926459893994159167485862269418444996011989651647027754960637453664419791348555312595235381679319765645824424711113035301603499585395785550472505236952829744146682977153753671991925119489895684873234130599643833421195170730692080967367484425523515234757864180727198679040708112041103917012316088711618337637556274531418343794051662484573542835442231780209901279678897872145855691467011070300441750783180087120837708677625257145011461706684703917558507254503440388913592886135669684613538490016219527419296409236138856682724181651317099152282655858204329521855282685257047333325906829195261597057171533672671008622493018620175134629242460789118496446873833338051246315929733662553058218444709572893478876324386851285974611855590763406259321122832961610572950225353080638488491929306294583345336260418417133574914448175122833275869887909485974885159594896498413664854092979364934822708376349743865295096403024180592939524132327652123873749800307383339970168428474286015250292280154604612838357389027256920738604007502660938464474259308431647929753028748015939238341640380774252723526264541365625934638317788339211669492544950625435909618994994193619353500090888058387106012188689716895455848368738933709541585517395317663935106167137163249481831619302251478986228144058031612243393084238109358878790829426460166447895496108007882019487861204344803527704269818379034701734754404199756467686368296192853538631490996428259619512273184064604007884135989172367411839961050929254151495580511956355383890505209920029321556446741228067134515213582229535247786483480996305200335336961451173574354932758517645101711225364863663257787349056498884223498355825874113190103870558442907615253767242153700481363612106166916093082773269624700161033992125912850187545579622204896648403805442928683265029724466240009391539056298723069522564900625232233847879885464317927117777495818205207283486678349098313836303230871778486799999082919181557330466300265653039649688795859829924487108482835848815135865402443859826180482542271170233883844059314638308142145837057607266659423449181409721082164454683119768755260886524806738834388460727679650172858103624438726904541453980417248900016501143940554973831238508633326302894972878729575851860580646173580773316870367175666262979618357037028546906400717781625970132035320762046547541091245265734826229335779050923527759888308750613497673711762141901415155596198166521662017997583681264679877103232687258393662122506876104262540168191394318338184714015436627385805319496572299597759124406369710216633960924501364753177577672768379507301202077284150198638253503523481198051054879677671182136896693628103947036244431866574178214348810735005720066115874878853139818122525200071254958150317707708026049744398618610309863055748797515218691882700030414042979107059875306809299468933846960985721911296586675281627140238186305509470090592682801212020324717318931866719055021713739134153301302200309768561539983204062542531444951449363287893032153427166373365389513807423584321359007559836837710780650749883519012613368290470602396667607550136069533153530686232864384893724840690524806725213328855129274465547696492029351440460573080739613445149239487493693828358788529374551505218705115077677145610816295695376647070272716465220342610552185307236076368813829876524160578048253122110482397290917076257523558673390371593539702599769379783122465113250476129491471675093467124850020216529843257565675020884008008373544996993996096983262313396918632914899345092790493609238618729831742754379189786449468719168207604738199376671050650532324653798794410237671435928855264743215742772190409431618151143088604969239261053455036920204647149007991765875061538455346987840124218559586869416246332786278916462178131136514110585816889581186046419379557372869014027447115850925473179586368501592334175757448221206587111497005658382579808542753849611818348734050636646455728163614782566440457248555592366245188348966896375837268144552880085130685451299117345555745117180415940298706483758091365497650009411145051797479088323087819850123838103104902472915834893883109996312721350066994571997187354709045863279465244621929172745942916980062294350214679829539418088102992677149364558630038285989844734239215535370600353324017420509132646236232437919679611439924893768665542269150548395649807882154455970592093742156583043463365244157468162734565202699071352439119854792239441753656420249731320416750276415205996399528393373004729605570418815062001416225309595701100278767302999652991999409394131788789681694673592376377139946136225194078456228160527401143904239238700271816362098396474616367777825748052303432584813266229176295999309256205895221833139180672590550188630567309507073394954482722528047416314493765152298956250598933508185345959435075888560447194814499190009453390481049998125270530132890706915681218521173184796040259248798276065922629789297355431722158645670619855786996095727778754592083974314934111764635761202936668484090919514235261937680269131670000022432671514139784974038649327814103302576459809844222634044745141392254002354152990293020930709354593651839100975432050268198127074572227375954725104521829303456290414142734568175763548737101533615155773668488773958956798983574676547441676084385230425720177302794992487328164125943007314166353338819935242872683241438121206471442223630050551673060144940040316448305133106347890576688419326461271888590728693737451305835358378863635365271293326130685565647128396441489007813731257209319568300555470045990830874086491972857629407061513180660368950908808612931876899570499751638242952122761510157442282835048323383637679375154107013913405633456602505107766934131212966249225318715604140954049429418579760322998331484455819471178008778176034654570981952080351426304681164237839280640249945933595774683894731406532601524096338020942154055490636923531205322990179286930050864125751534331759236258429853254976628779665856520209769258591503018917086998288179365200244739405515919935689991178880597233616289249549425607710908723962342704108983658869905242232902034793858940053674275254502329893118477553361981219033761381836144815693046738595060854050780815477225073854151052906114845205529056591231271592936130653184886118434545075654204364968514298540840792820569176712709714148252023306377510257683611711780669039627750460648074596606595633209490183107120249087761075914692752499071847034450399173837191779291686600197583662047177483959662802739008843238387660613414896363394214181493842206477833946951476626561492880986139618445183108430942410907980860946916170338178109972367605581874259934652764519455525910478459232375192589550355183194952203549471738705445255455708484091590862968897859948080523354615512402422970950733846704913327844475304213982839122511608116483132687289227619087369820563962793396026723950739890236941404735551690570717085015022629795542052035529458506756994947999459230826797819095952541412991265092560031952265685251707979579829871959877924631506650691465616342077206366543796554998471776215729556159179464993465541995644445878776054453647110020072048705135265792904083689578918338933687480588054672268971147334805709858545800975082171675158182338182958742098218928547406799446101723593157575581176254279275689295149135353887382269791923375563702213654809307601562663565526279847904555992308068727664995578555293545738663767182461104799540807207758864214624321998500810095057492072611278846549793707276422140140158732265705032548744757068353192579157288256961157533457645189649128706566741065045709054131260239265836505655643822300192408290983563718684193499079821277826685910234609122260679850417395943833336994574639656073976650747643745604855432560810417603678645316721791111306076365978756503809073782524769854257497462772801320587793048405237618780678842727801924838746131379186432529503177946281280933481740488133888076477702693496944984494286505327865654117774118902357302534376260825353574784470453772673588541921744871001879151744010639574197288823059344131904566271547470007963656263150070063237476297153522597043965270876844369038007845417198663743795637667515726289887570246423220693952513989301839479227565158732696511006618575490686311687102694191034296747551856390964658641595809536399067910611086379332811103993273524506216460184965184762850363016298950754139155825464367764847775160489816921965831404025890221586798388188931540848661952699510319458920876318043783080383380553718893788801920309796400911477400264881375241553185834643450524813863213276820861548411383057755327789141137228672504254556367877797068627481766675272848714589034094411872663815563206841281410154224553669285615360545653167017541105728945659447200354888242904175109031462505522021633787543455409345475634640956394933807286794167654856789425366163038363948651207095378461112713206193374712690536870704539823608869444085119447450470788446967068497548256945077952443469622439184067127462253153053325258157216829064397692716185692319169381741556250200153771119090090039139664453386914465608443526380280749632568697638899696875394123016377905990306135014262233546549883376483684560186371747956674075114470752602996357162535417183838114200176681620691436081318184569328713565195563578844135577462237823475367953494044726644539641097312631240867817748633384942424036394072386281408699532800670139381303476371668649462871401067401737783631823390778839062264024064392787498806319585434280893490929823761984437020806447387189166355106141409139766035713211761820746229863395120173206678727029446452381494878980943100601558829002293331037985501502065091436458136713551103120413587878696275771450793600371535049774690604838898858796854941004175308505258394550283434209591430481354546928448919717274548832574334576164521250181656200327938214704385104722503344539128535106653100941983922414551417731965814863249363322115734171979734566451941894005572650369092541511251110806294043092875891817148937447473866338432285202728969445942918527579454711883171062985803997159065636624064970165736980257881952966931306821815922168440357196034277504127797747826081730139142166001277008197111926551941646034963726855514510392679145485785178983408722368300512226316778861376455776857573786884918972900291056565710041802616678532212194656499723156571197241098611449851151615791000721170512126059257544679177044381166442777243383409778832717799410414495901462737793936173250050160725446624725829152113208605196070212021353380573924273428711730562513462649138657706074482955038283659486832241906180129553868578260746652067114805469763675970872124307015741122801951611006582245931631691637783439898723069676710900709877819733605373077106842256540483464006514607571820442999376161855068175984380394237806879784242798327175704658536547406424526538725678232665300101221738371470525275501778594319362899936403380507760728021445660804954551728248585773582722655970413256006223674043291794743896653087338773031889288731116600873511139681871523447233055499944419308321902153225739333013900430562554498542253630763236896841612080658618458297351581230547221194018828953016590539702192850251596758787085877296158181351318872700669700953057433699462930666611767695097389960109503415683705300810306887229525276985921198237708312315454134267067437246078712034724207807815362869933483676570518046228092254724655988633718974915680531202739031545987896394450626743397205321191775631558558000059389916283568495833059341307458575012434297578140573638742344531212517687056110458758448165302760024868288501378285378136635974541748018266274434807237247581868725951319730293645817826862733916560097434650361004471223192448874780573466540405312677652903160873112097284469221910095136126853595565026991922194795537856811681333749443161932592730598165237259100651807455333124946861291890290642253897227066890641334432591644015384822164857429488183768208920377615113341670173198765526587301639635945114352850901723666707352284932877903899229634513451478474054534414125947770375972930990352803378072324395087586327396355036733657621573898103634182095163421594907503271064689866779499876777445944630190103378497968592451663447676868974749139055397047815145173629702862625898685810514668538678840837153420775719300023032483577510153952277093503837391312795077656845097716978624493409768323235832867700489373564865275609565035086957642430829092062952850126015934945284924759651568299726127081921918110517485813188247008983014216124554516052083530362696250173385180592978363311231669312408439312993633275442813962618028197372473073278185479112573706246783446559154815341768250321694793141670090723927069855762276158567337048245647974393905832102441053102240178626649647537403600833329040765486617680965909703631759727048386944031479325137790724705634698969785123841627737306431322889647720386592126044854762701738129575097851675023636996270244825958787980055546088810380510469313077077712919214867262671190389779869303236604853213466833497340511433514776325905352035898219841398301063895710931898454207228857696071552342231601203358890705299916357999953565232847103360095319682175212684958776732579085431168048211808325759058980195671883877157710323620508206115037443609503103606722417979929370705921289498608589988473542187125632115813453538833966768016046243900697072662452502052267948144616053049095036782442387025138296126465544027832205788874162696445686923595551139619370159577611903067850479917804622124243752062339361073144308730667401544333796788281910038394874627338089030883428836779978513622568275060059288371195753137888264984442530410437405364232627404108561449758725050644790190672149079106431074741510881549760018712553679824464977018297909202468570050456871076322050708365183140850781722673544399781632485356865237528026220708877757984807629910394607262094170742606324002877488076654386953232726003995511154753888652042002871664312600897037460838311969057256523954024565172195896684827160151619563372027974509473061395456885791963384801437339845825322019737316754844599246656103868384000996023326495319578420705018721400887180043404697429367067088727076836170208169873257036743877420789077264386392529638185514609367871563920977954248206416448081133298989324410032248393358265530847901580728381040677596466615856876454661232072641592006849729777877936024284329448143626799758265240956777808297752098726231289872857418568541922024059792774966903903021393022386508252026512610128632987962528999621131851789031226053105001606405918192682609108961464337437175583871270912306589039997523546155575756628219360844765398113371184899632919695375021409988855317758981745111066059515928313578671530802863500307549497060468776263912409233802479908429045506672627971667506710195672481837042059251177950315682958877726659358138290249682311760301708900245202812848199594791882433857963691991013238931581316068160107714361189230855917552181765449267068068600053572215876275166307371817053678045037118152230967532372912142202328457051177640691984504476207632698792113992772168140807848830604100255516161925893034313546404845182124704270917794080021947130076959837123671907470233134979657486391269862446114939235130493023048041245082428193470684547398504115185014701824533156586570243516332854350947463254705786511604406446316158416730356941372676609660803509290196480072035565287265319445836806654904592817369219236852083131658444616458646461618951838885201482984333875310089353408944741001429375040326570216608187008731825246454648428278657792116072186310141427561460322203746030275596628030024076608529747749639475255117959159335518192722028576675465320718530076607930938618884348680640175992555790577931900302260170091863798624565404410667321538974353651388817572179229884453679703621426213473844799456647682947880920808471237499459671981203574840216086315031821672102964243966240702739264439456196526940668179689837341486962170977737851703634997880046148106318062625204062803269669881456302527378577509468458950392578830687238974207169956845632995102014925681888567086952390613686602966305588746728975831836483066938850712330508299077217455111961141848642310743595805732733699414762996878976093707117455344604511482613559117934746730242656625291186098299374378611140939794139863673840555655675911362663787892254776042667837446661902519002652290005521283703166085431648502489096184186179630408371168764909689129844957832865128749740931302243577333987441530404353282953881441944697344360885455780836193135102162377105564408551116460279972814531220508602958571201665921240463399300835772119291027466298059541183393512540097779441148404797361747039968463175781295430770612971787981636515998002875716241227686906679425419406918505620982371625812338088242173681978743375618424197518707000901956564469020105494513879502324002445950407621878531158981976454395705956367861947754526545771710240046769470906809976117322091506990355222445305940798358702769416617616464894037220264858786062269354787968277165309714643402865842419252172405303230303795960127727598710709257608098157871432880187091428450057183924764520182922421391171680293238753202619264813086339119531317150467229187458294006921919592931190386697089160586720151960291897652435711866403562584979911784658201836271005255302174626621579846353193044860727192664080285677649578070650222303879719950197145942956959354535903168556887379157535346234268416253773799642300291613086094563162210321563362047439214480561684741800453208658445852171089409573174285304331212366808390156920734475769664782073744299924373856958449888367932346071486814727306129745632348081662379680664912007265359263672661385352992945913919516402581603025779226868512406583579289134387801125939605721215540350972566250322234075985335979130645942994494154441657367464098689587282272943730773938849009102531882162676909094747399261215922179601271473295896178941421083065758414973744572737300103429392606405487091441699727774932630542225760591344888990265200342740675850905132073667337768434520731071626641173372677444389556236780545554967745407579794506569136709270868196831463584676543467612306353537387118334883919284256930318095409855083122949886617818498160408133653464468765202064419776476605550532293050221329310863626111475286273007623226387694217596560810946685215511971275967506927741786156905338013261618232763791682269986225641430294600041097660183141064038658314591772961766935319089834339932975427028064196428489110963890532888067136131788263800894502144941729549743428065552777427577680378112999025449750742823391993439061667491588436683286191673880872582655014371099763914848315205664840293874014308142954954787507950295983169036555103953093105295798287445041077624027110934746785541392467754232702842825589779106740392243931649582844879754044978768252792748223369097666350769319918120479272677725311057936991764058613492717342790035879644833900002934894796843838980999555257657038457757776028704104330458881801328829106057743201541873060261438760369142267821230620286260112477947431005079862387487344538422167443291844814933695985875869805283954723962179944687118998003757376356477018532306246489554201324740282235637297958327153315021790390496104284934507858091941895071924549482057369609619403232995519633584369761879367200543437677184558777169174621284636499533260573335223467575377688658823145457151036548701472595754442044376877755603301524417984363304927337590772636619261882728321157525023844379453748526916791702737357410868304499477537384105564806171184884571749244373065195162809610477430154002385238564787562667224127967316355811635494192719315942021855799901799550452279182308117590349167012321262956480087162367509512973108450870997400214898624087798130475473310329999084363762716689596791962216048895810450952364951627593850463327736985851932229835344580880833655232888555855061935518257391043019402756304992210584733135716482429399983351288331141797779506504010335329996105422163763193900198712040895413359673036963619724452018171940180987110078183598954871687528922589289295648286598549425429071643929041390348640086559594674144152838505059812264962935234117849578314422263713556885445675033425894222947003279430159720766674874658663107468729349074315153998121568654964822748131647463097801313713655152175347589771861735289844772595302025095931840150208666907203271581585602742416297161769801689834133903459492391329436638189586547648004629441136337134706155373981790127345075328638747462806698459910352866333200826931329771968297345755628426211993276819310783311263874062557084134901896748408454093465635221052263553004572796101505844667847093614933378687798086081780486818037845374943113510370533648499795249223163833890723815446835973906787786955021020526532926855927906040810152012602194159236652880677057876093013881149312524651530800966035753079464558642778941298791129729806835406606115344273661570654457622610153131196539155089278576612597213885765246880813427790312557773831789736138191620052573412920193702375488691883694359303662735867987998452200731911784405688113464756088946153252818645228730920014531355039183594595828030571766021153057602565401126999107816180312557802554842752392472722663871494247961552309384925568240146715680575724002389170609092439906627033498150063383632490929375357638165752630658047820503568402268408053437762564141491451441674946216114532494050282346360965233172978023014416498045597230855033638752498743864956384808629320319115450263202211152554423749335603536749368357678574605549370771952546558031820176847344074821096886077545746891510975869954629217475600389922219563250524070097523168840448185162813815319992028470785934355491504705132929501379023483322595852837098365826512673902639468924832212013356975049792233182120311252166526043030592165113505845050662639021895238984149327626866332723087756693770112830611879157856542256552607258927840672843330538658798298354067161894863382858327326546231336772298504157305768023185706583724588044323579828020133379380592713182641068526950796502012042424173561020403373174882191546584785372210235924248562104434735782257307015641832629967136226754008979861546107573426662301116942274157314455087849575153802164364754697450434108653595639750351903279846413273438529633419380701227193290067077772280531691901131922217708471637004907238631986625822300069428033996987300864318400147967785333141114085512796846865088388476217854252686443852036551078395898120426319752785142256375537360080244767297269540179326922639095473429744668296152891214309664570528725199451540297932801855500463595169067159179400487041661246809470178817465560834360303855975491901448354324634854621958966178762169423286550317618659650615335898111705899874331945017236448225650024868943843883317873441866821674566873527412663969030624124777964083985827200228818668931055079455181289716168230504673115041720146285248203851714976626441362604509264447400715070326721321293803264248141212251879530216823316169875954656896737032917744792765177605902356370816244835549420125903569412327716915301578514263943138840392954181355322426908451478854137743508910675572112041521563705458742400058602016554996363898418873245200227303876103845808081923717317793035782292291174680653714371670564993464472109228538666696504041696721999916725663133564655264372335344005276700103526590593429908586477879183649971033107499689494942448880931808734252115333633507482665474757497705086255880957655959101247152412821801821631921115850255199864424748918198734718864722166460327041792382926922972880821664452321148716609475613262756909144984517135135817655000683569084503557200531347794142955700071391740221260134100034509029375030749786231860946647297315436375322484884190372532264725416736562374568290212485596627855114065399555300545263928406458205569008327894089047608880670079751686513419088205467987665639430936943899141075165182633510148314027524472078935247174265696727354765566335656406330403484647725235279132339124693083935739475763808241084637979597178260802075371957863796683400815143644078107061396907710525722869019618634462203893217065309089054636961412485605285487713959897383508108872633253879559365914405604390309996975305507246877974116002892990994118137359321327638600426677696189640354460939164812748551529698749275039497835421696516886935159904990947615815180422899539906174767423608488716188995319446771080479387429671330002741827109986865963964536316576887576839954488984627175909252634843873653177267403014774110039253391425378518783541094136644510112588854505905273121295395839935400936263911732077345394370066953140491678154960715536924083146314917308588337007798930540914307302969531031919087775606636962688474421645398196099333590522891920676910468670289852515200027830229045976886421921364780177216142964484594694214542142384426535536938649089820464731114871005696808713158094370901962880667870397461618197134622394650753988977233409154900550847727252445521609688918176383646714996966867382246190487110615241806764737513284706640978604668533796754059209965592104316356267074183653163032852895262597844356531544851079982655949882128020066347006750874824963891544476976930200018782386539733378151546688803704421082244594096610157622022321590699995694443308183594221809428693860521083377518279876122678315398749998503558294597338323001302281455059731500377271424196451674065738602729349238867960184003403341036384526227560399644472245333972049173344026928441973640566771097774055772560282569377947351566496837937190753547263266522404251057433253560209743939684569138545590370721531699171356938521510977438477171526593569992397852223577044975421910274785532228358880580267264052686172833067110450054806359338705895063598967154508860445230200268230849719011477546052005748966877114491230059464532170341076868510094191100414287599859882802493735874910581964961384518825111711377408153025481575120116992282982434168108254168187748280158879094029466787855918204055429233469107834852473217037726423681070772230631533105374106917793864224910011735363122840570665038366560925696139682616353074643265403302564772158234218372606529953201495031920209203239901663738298071601037718746215488727615237084109556842539056353998311609007947822338515598208612839151171392166924928484052983032963293950628570405994007894834085817574769149134120398858841729216399415860559629871014403674274225780130865769089173065437786459179406805047988778823770967122343366950394871584243980013897933519681995182144166904327047837182089706377592158829833257957784497071457504177416501781546434940274683620510444229915128706631318046855542775434232136583567406376085821167835009098941223756446762536642481883663942609423050898524706891938167833885458197538363698890599967574477204102616501984737701828989653030477841202334146549016113611394830402774832266035352423032415886246504095297851319770100970672428500091931314442290697064570780614689824635116413634359754169081050885436402108548103277421057884694945253786259787686021951354735066842964877982502008956761834104498190576581484343763054034526270159871670079825220851082149115534577861217955897197385064998563200001732542451335206062046050693655441651899949803293188939652400265426005365287503323010603019270040368107374775830462661694211289060283432620643496969916283605713817682796322558993090713708512476740694336952734030551059362821383804520906182245233300470474357712605610356871701778146717678847095083004482409454485112202865685232733315416190335832644941953185064574039586558518115753187538562265798865771701473523457598743815813493604247005200203915214067813363468975587795046577528609254854384680942970058809842255446014083418749143146152144480655421799150994320860815969658187884358635428343022417227347170867350200341917144825176172231689750409881274936971798786593951878061652680148054333386934465539181062436444821796601717619362169863039680131142067030718552810021801635635965335427921193230050546178393137472137192822190818999334979263356959811855115788025202623946841820687442368258041157166455819333616436233851988938680436743698767500929848150826754326606170744665632798625193985250493307300755130946513481457665476036045954392907862166114161502780175316476375888752739915605922430388695483719212779952442073629038551801659381042090575210173185853057632965543523190570599839081686249234933990046537162885560774783710603468262638543081464503301341633046961636103062218595646176990825604391286187819634337036892913532113143291361853866738673768092568864400204152598090925095224022353876100561607050634749464193523915681425631696694375178439874355468765561605361296863532814233322669033353889932606104175641949461309873122903557021653580118037996520251887272779017662323382465615585651485242725465250234522444311010236744760125819359974093494449596489046256234042202949387539671598757630510666505015051809244312938734546978161227924875891872077657147683647170555120737787857248138516662429678402312651230360240696470327586172762969178380766079987818451622128145748251651985254469242321471951961867841686747937705017945172466957461147692270405114135905025214719440226620201052698706350395427906880684207273450334169295471792193879207244977918956344482897191363644993940446317282648469455897509878460800284199679992388047860736403759121060978856360981326073379608102941001649063310666374219482794143088152167187693807904753637747235014017159383085026995725743072889415210481482288975500465682431394236819738771775153677102749292189277392267591538570322240407893457856630778449848032286012702186941432218802511192960591307804440716922209502510792464182074875977472597339178051779509062557032408631184089314820086880489705189489252822826371466663728823702874612720072226689651596413833922030101375362058996639913933364141296149612287354855829958609269869828803815927182042042447068976224406099415371398167630243745576209311062248553820346668897664150109974478686361331151486128279786192294572749075729879853497506342808893576184912975262065319919829663479988077409022854471993015785332013014155056637005623650147202757104810589557739015623571843012684371817130925619027766211857810560413375104593083203783392154377326475521452417486067641721680352594388294005814493769620006673564045378933547197218513249564801901852499608015490332619913519294171725355236374688063420735414571448626445055628851753340344930090557125638331210054625350671958126539723654440114667128330748010932169873760262403058904432748063506078647395307579125287100028003240621747054666553460131890499008338040380736277420266381568920804551821420322747491616685586200369110490166652602334722529729254099298035612866241512257265296723527343726092534587516625698779681238946513130889917518831281278457293107419565643401583172075986723417004660845705450770030956028959954201510159533343311827729359756572003562926829647386657030233976831780029529957122627027894099122244757231310933965477117891046877296366214197135771278543518545332366134716741198414474958193221783006394492649876972279410310174944273677189101655233155982634225912052320377143838319576477237121753107723351603517891188665976717541613187732014372501383536228679145525068709175767253411548712019605964251338172235051873042778848865064234417044441638784813237850271143310076678153988641243223077919974302493219536580182630795719289150267783572197891601463616720346435931229117206955282117602969081297544639752373680481868290253086226455605675806162988805217979345318341318562004259902978334375422722805039332644060772115488871170434667780261529553876346023619632371515140660116731964305089082920532314371990197320949399870566892144016370683172853022930634057387773959872965813128829853042422115021278091948372596477706011517969542837484443972863465846994690448990574967770468240041213547669379542143104783406933436205481876317054822518177694333301756641275796427660008330806937988725017607272655968193956746490494425225875096380396817054008136982323134115477460816531032604739340539267923773226554168281508996527059234554270171025497462889194074963258233944052626216427394398932543170461591154130717505213198077545566112284001651299094279817213596222076173749667668906139764760376900538809396782310282278650455141164120963876513307521971480611603948082040266942391428914215352557659122385265994120463752786626965305396082114234599192011120757273883503782597404862242558117186954053044953359221119529460019351591178393402553475046970198329754336246738752774554527743017483870271098343342651001847639127314088978744149462202707192239126174419420960602814031604926441650289804999640806023229477440592318149659475264448000756665073813731872042835485941871820398740780547326208242278601113665140893239209796537819073901427375970501232786038564105354863324269891064394486442369790541157022403278347880724651251086656413781396197353928749254537983923349057793540825588702823749517455904884539253225228962874610810241062158471414344563512965790456234788894955880368913460513302513085163443945129997307936165598037216286983560457849444593155884214032786088551312574416318465142975337264896583244878129966821457742002789850428733862548809058863986417005805848345035430041965718547005514856033730577729218358832086621254195740711329669273140598599907955615474479455344101827241896367652596293762605269717128817633906533120853361672985969155791166493193907163356524081977461195274411865373957830326121804747087308219784872035404321648471024136052133821405347697813546667172797805588251117529511182128897109982147243254758958388015459289876896163385609474729321754732740866968011663106909082363032800840705875899931159505764329462713186329165017650580719031288745451546556231183677887258719628168506251338689113292405772459245998322201595336741551709257703305276057954449934003223133935703081677873562286505738080415991466712780374811823661011786955060818913726107488584249586813735773945457409625842364427960652829268425796212085899439279949605026914337069929473727209167851170963756035935732043429279038966566844281972112427181742613463615174692876744072525473245400174744916553046373160865319677787930365183132437883054401474535908275965022463678167791434666882662796855495867168873427343710835412292271274387186612402972279379297460739207951197594264092790518039168249872809798336872588626123274674487341311039125238262334251524716849903461295986237447189528175165652058372326390565242453014759528907074431784242475655560112636768493226314961663857287334329605228312035730486863355908887790709403219484108156308457088394316070304980255383544820985854481696925929772411101052350766815629096816886933127996573618913313430455515845087925434624786890075977267442643203971831669144187108636639674736105096656608393711091913414970275434308605770251449336275365741872404343412381522465884733660693932637577376846901736515143184889402118797472984362660894119691168959383719495084904752547459155475674298126836454926046434319576735664224518342731231301261974204194767535064723408826486006644881053772988532881044054701674891853341632619610181368925366047266986470072829005867226969875445679636691473260860402831962011339513145950352283427004843288398576681571549338713768182802615961268992646873031401411682188895937745678617263154536753552047218430844051385900275328785036603284451917139731194639842523609342201573395274375532926360718633842794756821494888977369614296806575976579977388797594435246673210646045205473867473389426915905329529607795934551727728975641596431047454063384944473687068076614150269533523595878024687134509071355129396833370426696144134724337793508632428599972256335640889342893327720040979423978839209079242776932749480547318517470460551280076859930649502447007186932662342103686499006186859062226212885952968754668675935525343306260549766606472851441266380547650380527453368791645820426663551621262404966810249114735896218855087704684468508990512711718407362653441497479296881403848458744261463241616527619101228935149964240829934374225352550712377750174040951573333959278578608280832361137753644101612640267733109105897113933648113351827714878452915554070669814444595084538754995431636093641791637619437427532115374970770302860137759383377540793917651536963449802106425853788174849302918207339065470511390633119288076546534029982065404075233356125508496547847530883111718421491344674995587521004277572526783854519615205120267822157504505430481022598612644566088118259749721817529227601403199119362437682514542670994003802115169992128429956105735651662036179099880089563236870892090640830891778001741701970461154219823431770496683633885048428749660453314533737193607703819923280185931920180848746311637500438784714988097333370723957696298271884314613690043329354109405389925825170052492976144026161144766907777817183621226196283122640404070420184093710203343973039892149776631847007391804515632904852418293231054257637542025476413781174470618130645579468290101755971692182380924592007041919862380414383236279853080874846944635254166818327551357713363601219477191738525334331251757874522191574376690790800465980774380460934890584509420395139679754071944270512136845749656421929055922384025864823642726553762209496520330098428877615403494661584911873789654652083123465188790701921177906791196459208229827251007746790189849741845389207372670458214409238018959007459587249511879555073014906050884705028676329263899554190389429859222433744598062633099496128869345494165865114768090513220518784834834393266440407085697675497860127849771537902963836053180668785595911529057075750026606893218422914405300528062980478718950355425664962121351233928453069483962129954491905727840997792668935663844049734266217839479213100210031637157516433611375242175202722800091264441403789371336032751723880479921167316291844565188042889659258114038437434121922631238847206752528797370874259856771987246596049160276988837550122769400811254265931077586646904661367586875609594935014937455959963132481108864238486285423365344222693932473441936180646994408250085469035220132501062987284391533399538971410215001902682879675522413338635789534830142969417322103674147493028625752785770609178118330257079937614085194591917916342909015598149404540391971896279713640928355501188928589653327676253050482300233418055426289006734244538191252549878529910810759707531926463393840221154193772800414774337263694490022039636738168487358493935264771238823599402812482322180352854480111339852519120775251294647939894568603932417107726302867409405091762409764068434156737285771152496356745424153577211224531260182722597938631962334690535923629579454107458968679015115052327806569812106398636866615440274666819042288023715372926463935645272242169177127325066484028412827031891612627535730864697894013472328916434876873837580405167745522942288114043021382140058086889855184134927741914998137208495544309824972746713390381149927611648892138999720250758428378468627569419688571247260436623718146530865323930747126971426523960119497912385883038951084609421283000075691314887547449304956613062352574556929158023573307314329160848601488737359832960179647501699145099262677343598058022154709989341173374713448074221155217450453966611213483830350482905501654250475937394562053205435911075584504877566544097565109391612916876469189418005559098261977268471914992564786260483935474705052545939798975942803409684528599855042213465536900997211737977668992726977617163415602981701020175436662943063163110053490471228794892968188291116181175065214668056138506847655607930061973062524142037313549382819795824817744347649256660427910635868617220549794273447508368447182778270121412300193110433432249366713131409365944887101327488390248454228896706651852591001236891632902201821490902810504012912145019072783737336497828476802023050882599785266653406191657572106276695153111803619755451183746669231281594023256107266056858234548262383474736077566970936031753468663278884541518110805648352551619105912639333364478348423743155358569719902237349472862073673655470846135797895828742530172045669206271743183331840439235499482863421964299094762085969291470841618517929315884324316585292190768868791675581500117324353008306318288070137569810835130151822145278701278219776242432977235506355846445263117946719039134907192279085909507427727008875228508949098980545739818474387190565081505293338700883476541410820010162367444370716644053072595310752682288099699253737792309612626153080707477793099394995945762835844996542420776064669347318550409971219078915338234427386636105243373410175985193774039636017765439928015948414883931085963993880105569309295862576758890155016213283815167367590399233532908403631074210602059119406932337000805790704412120710765563940008171296767755524976917014950216977411024899307389927749797038301456530070138538487193874976839522391215066967845672395400098988617050234108790797577197990966365224854972959392629521552976229928496409026692210859589855264296310149348978683462694985532197235348067489585537963738763507916760154031572689511576950415370534364434485900568311947022033507955344023319552178352060020491966260586780855125148731391210713290203533350000995525896581941282154506945720431336310475359689592078219521655068603296518198514404745135943332368977141718268987754098505599848473828870996187710398032991240208939197606345601304626070525962312218321722650955524346885340319352190715217556563491231305920029582407262348197902423404269208420779781870544562426758649468104091285500361059880931219901008552541598221610910123109637609705235490913168809173425665230992285214005677388239842703527172912071466946969494630750418475414267219767360883757177014087198020259913341334631051836769829414793561613160760595000207178437350394977005263169137433941919594269160326984346471127136676783159032279792719861400777691469804945084526814359867059165750003615924437572387566374390493006416794898733835870211765075262796163137537868008720194138894341879698781644619166099876363241155032572752105108707020823733398714565157567904044649765000005717120991668329372952384232789706382853304233145486726590603346378443026539036275576237013642972153737376558760354855309491169347499002772862691261940320270831963002597661125490084340255426742088390218361951825953627115107909873332279673551970657392566705966583009348682166304911835315385105179238732344423351452255973005061246752348446364634595028575730239907873384523721357473759759511394026099729336162635410788175836326413963790733526100730450161424507024095942969178161002644794481287298138372438811898469107533087842833415959811458631491430954577937693113662239476305135574289524836174138348344574200984679749982165462252721303622745995351416182089275934953104255619583679894626179136014288056913069785869543348611586228400752494595226983611096644778522324466844756447947203285946210219620936415423609292932268400289057635784872151354991666484205970965683570858997107203385611397571955021884205464616071138787234476569126101567123129140220200948947577497098399418251285910744651829683000900980032148491948057388833737651448670281147015201773947908217205864891830674921803464130099253347191448481007888299123765689589190759930615739832960657276083845073451807035119887543460336196768777233485642258763958823759337125179749394826049449057825034194958623801809253163766461790717544402489383897189646181642351371982780405616415703080434912306015552419400001289001777037910988180657970511869729478041140671879361760304651570539780381352421999433909017015064808529682004213145504869752756624397962486489197861241402094733514178731345282829504890824989734660103547952428651852744410619324024656411228581817541105604818228165474910458457236556651523702316072955563790312820950456443478659215462888194099939157304770854508509498730177340488091286534770802453384679659565772603130672048392464794576912820737494566362394402232228038504927487592710750139576252589808661103585547972560975783698394227709531577822681597729935833128169782321912238717500759854337982950826744785055745952435682374859287625475510040060155748966493878415209618624485058990019202499886977057436879103619105701242600457436830015514499287343809333150320316027196049210337422784494698928871966885224991826382926060019184109079119780400877488277796059277737999654916977014657923637835281123666197351518674725368368111318260991127926773243724258094690407374985722221114803332873876439282409019732280802403089887470816379544471090160953699772176849879552004252933120372668138999197025334199004710217960672993798623804227412433636650637312593770415497997569676824718203398779168076982507743618738594489916105295013719757514688663687158732619312525460568817458463155914454803404442690228860092390724181204565889127222757058453339572903763870688662212491127458290205771168415649863121351828155397820144409005537556933386154695725220368764310617736571230235424024231428568377431151989642084883780817557478684006657554119567686175034942215898131950106880928941687433326973958294132364712788743350852782394563152999171276693578282602421350588964004645239001161911610949194520544784233081809633259557353577122656761670910314610077781863900975967879032443831424364070743527360868423999989929948290116208750164962901516729927390157170108015353972516197948433662429515493200994271069200417089211442327090656666385968734139360739001565195007428040888287056001856529696692064746852275247717780815728693122007734514709838910223812627761958051450467396298922938739687951254437931989090523105471172113048833721519275794770743449145968128841356734528629694122051825885841593756791203518035284362140617479609806571037119878797049118696806402537895032572819678932473823828799621324942481013446314159715232280826124350664541756621317663545864541425202252998547660784751210260496423484353740012583203868026671527302287839290156946226402832509608367695509599858849176368050445157221699428792794087470496800084667073241744003741621322602368663716364227653427117835030121546027766726414072503348164348892929977463019154585789949442134505512414345997094328612917736607818431793509884032511239261486155866763795119503684673442024424525403286660518378859955676308446216036094261035310925055792018443093524810258283326276412384718245899103916503677367209639436167742652187944703837423663382534955488345656159972911596897622046563109518018539988273803723967011549091033520303296672950478038515829834083085502558429895763157928545803293214386619364342050327018445331794685039652017596396665209841798585792016193128364719009219500478988693106254882988276837809961455876940968617597441546161095630628119094544358784071500963552417643903156374167411061775547236382390190237327713129753585532747802625459108181797469870875247124430454191235617037714034477484172309427396923200636971865972112044283011661903427240557717617418168929534765551766227787124341178419777210290404741502615220445280885700963892677085791344594247196153732762643985663111447391615845314708722163371804233302897655063564650967898484769415380936407138810290490107620400248927959122124974139990711144550244778392325993883854451398631700246018991365875198860830330109279820260622125224899844764151982420429992181452523789221439937985378158759082856986001792804626984678753052987359751241359462106890374819432476659710520305298970392057665138385997357607051038914643749486221708394009114568976562439606569204800842088669925798129974368342237574932895638345466877448862609694868546554832887442413602355746313769217342145284305046092854214104220483598572754288549929256971537567958130204885133311112780248703935504550983377493744246407499845635535898120625582421361176621609610047255937568769692211677523249759133323980587223372419468406000151401493623012715635616897352742234469472926753717644994248263360679059058451875743283219379496226386770192016098265882557868215552525789536661482965831284526180309065835955534407976294014870046982093544719691881753884474079385480604222944865637558014394279490530720870030450108436580967042622058539904046065061862101257254088817919885857298364300582371171931760077042768984798821388331608042124250623517330810487502896351968333188938552190246900793755738425147096136979173509405065754677087762593580342428610611270705445404661987150108436845589987005657655003282643153517703055533788742137523561122826264707930817178968420743131914751666857320572493804920649421842477903094585714554354582895425803901048292879820152204935250435232512725721246290532238978985556676409732595912538514391688614507524289393007707656318660706681094222310697313483415540345078741711176905043014741836227644276760465677420943135541972226738210982758792791615527577967599077527371747363664219871293444505484126686079502734601562034096496937787705263686928049687398469075391089720457283888803429996848387683223758474623028072446131713276034626186444419501314270309739352527051141005927128543094880968794745028487783885470980641925265693400317061625933785069300144763761214450205503025572623002441809404666658082243975798185277195313887854024045029655783572610024935494341805492624836687368782564023922962064372642408555946708365684689775091047866569405417146484101512191960316481187828823691589117240030316494379221268145390072691716954230624133664988199905424470769880873376132094850369167243792552835855171482332142349925640220741198618840508633587653829725387811353564817185409930378410503487809293408438227099150038602015162511518631789167411381894686370189933841393595620535337846082848492757529163418170874626429632906343240179813469397721881969454625743010784254368046779900132874453567525133336714424043562846427733586184738219687585589353293114275412415558240874039793753905514269182742148224326518004236547839265330508918177356472555877308789017206750472349935905709559091796398443638397453698320107099740250254322179498218075682398553303473930486719605579246713444438907960866155553404052932411225079164420726927230058214023433726571705794366204507315311752175742562408617318963181334528355008478121064492395341272506228605907559318180528699916926347712078253754535782480100853646011260223154888141738088105263378365243585305977043845898862299190434977900866919970495098284108709501713939672986447168895168574172965855349195368683384500951851476933664496153602435800612118427048131997778509783078083114804133105616032651855526549778621328766249278719559839623692822414100855937810862380293231151618217536997476414967270436518876245597585258221353744181503986442461291759142396549422590623024434495668180103214564129917085107126262792264767391907922074942781334006938127324089574069549770592599705760789116062883833960438786472502482166299635035091963419939729310684532048447919180429314695203947763309017911316172636751318813646027034414148708160161636621113346546213803089186475046142184715659015803261935832536532325873446471368070189328296294142775623532200666684628407579413384231008497792591168375833768993631830992323689015204024118650900656383069807420325916971525160936212885919639592365856792226265936852977191559713054957088508484169418128119564197715846904381111835369915294070493510751263676006861121499961270025654395037845731253808230002109173161773055866721878024016957084771532048956866280446245096723912960175592557063848331881311442434208939934376244569050463209221433455011671253028169960169902895397813081990374332582275722249126738097883967495679538502369762435404009642038730552557014852492490541859387909073427672386637968250596249867095085436332368939880643161402802212728771790086289645949586022177771885505048874443386872310770503504524322498271614127654009576150943452503250475749491958576978042059932285162168620110248400716435319943881450573716713078197878406643333589119799550308330271519134939730125419316736892635922921139996613925744687058603204051489593846146546213391701388340048012379022606870807701599031249229322753369716594416762162554741918568827484776834551048702675560056506833666256372856769272980037805635381667545494418350694790573237604681723616658356463965271333301004111162771532055069671931802431772820710708897633743526343867329059416355869895149374430139514532088438148953069322124640466062834822841267300481950920514480941400036681611970207060150440389628962759453905045344616003664524627530174366360353405101704651285129708003207936280392709492896464628685668484480225159383436998603269953758794751689967049095950630611614550753638303264391953180774169830845849457788276194354327539705692500058370591407271186315648441625954688463365559194633592959934257342236306281192548257516708471302147722964533601456733736376684048959568816903465868261966195300795582746233220719681154593356225265440919466731803869524768636295972520101320968275634952915369750250589622698262421911596866656872184166097375332611800884079558255339262895246441446792071191654054765840975701673574474592442539511362450223077469446607144221498766870706186077528158819107611609768629415459992020831316948143692529532189897761174645480495553591897574811881098283227621439574262328497508126674864191022431712386209033333131280455046455245418246130649843481706149307205865227343966823473544645868377843308023647318730975514826551987032684543614278757845959159156009883219847123347534785326386385958004118623737867372650385281263694971454462451311790051313841413010839237921833719475085741926575941795025518338266641532999871166128332611381837159038859918363811629867922911643915273598333685693469097958606704606834835439419678845258519356676283771288325002597707862936584651171159793972244447763386509670524065502974351750928413562257805980923104771705291483723792485224193641182116762839526727330671926351653251819892880818657557320855552865268729359936701835510193581240330654169484027653374677278300116285692607094474247892710884969724952713539481001955873679900012344625060846901309597064615553490244589488965241520634270434840307274780933753960231529137117137250715753446420516340726149921646209426242414283790310321552515272761762433757710898366031699437892763173740700015123203135789170761945734432449248611465898737393538360566968825598017256831985664983292715278902991307652088512018023357344707448172127826205078721504309404539679963349054413461047321957714325220344727623928583105801614083732142571136030537258679807218304346372318675408351201387216169198950371014998716935764324504469191696711128118620280554817390163767434260740225494559332299807900000135410804230251828753161787208449654228736094638033741212816944230792432613413275978566774001221117960873544043552024657558744167900533874976070616633080918588435658289627479071819227531991874885873062118085882429375894341557034716755538084328416873808835597887412570280363902771883211258859102231958520262360228341845480807895510300963497981845842153004729054544376382796354019619009910394515631831517010980961188472754510888731746516324629451452114361356423109883135265550997180136836757477208532782686035081031257582311879008257737501287262889253857687004851175502045890529230493291140067615968994485265220714222174376244996174468899319551626905273980020884533207237794471570346235599509145047904345074641167541914530329341369347179462581357533251086905394892857321962439979436821329183103578070845162424995433185848260304346653536395949536541502873619743259298043104897004356581288769647625888597338780866114385252545086523042394713295944995754746719411746028062735208242192012518150878937492291553751875621983782952483242991960543533457013541093333258130110538330768466821135634240213257544265882936631305749692131759687206517177541674234202850717088699866345523536130836481562065692306752108525479504709831787833215559265392233207857844776805010933689617309437250238445481470939541137164424239942057162272844125192131328338360228470656594178081919463557137544957392057532226261360887238319132807297962526069015423392705807192151469012123970622026341174915759917239540066033089605653315235773365048664117587154512792764935749203209283711560093054911374372718109826047990797735197102065600728027291562901154985805039519032342033822235553043543951150679629530430988462560637586869566876174306233447101774258838639977562099903797077925478500149709197471115114997800702054054318600107541247744236106799175705594846525485625747729367744813908780177896204316136039794697003177561072210366269463454236456348839706535025122275124783618460099717870534594243851597737250168283094783544920635682210666211625790473738253060381490297227082257810655007187800356101114887238833543213127675325447792459019146655426994092780131362478901549244052769399859523410412971872632072909083292817357639088170437524342258767826668321440265794245689003375211905782820392887900659230415476107441088898943842789895121982116057645422446346001306758332149769296973112635128783910750761205579855087219325798642168755972900813116846763059072619638040068083116682413440126353018037773788090824055104501165943178785934745573243921484120247659962990619635762485968825416714741827983864855162501606909277416703137850701630327567557787053428136624572189749676968871633562461751715115931745640371802844998371453905604291116069413790702565815456541716772683102808849626834851717367282404850015303751349378519611392348510843987108667319378756147839033244083128273666271895763922805890999620799097814187809946872573266639931028588903270816216137397012090133402999909649530615949555353217851127206811720088507516274133536052997832311972635026157611694538626794655812581859962751415579033446751245599711788631224092876595782016870299553317245847852825089877366558880317971843205465541491046094446360428672276313359814703671803190557904864782513857497290142465017620809309947401492068031475446241397453823442609461397064436219063998460313814168332888069030982428377201531199494288464980984067399326880892252088962787190440476650689686157249489668712055636871758878738377660848802764137082685288198898102653360105335846830926566049679793500295199418283301019642918126176575670936795716951630891697307497811606233694134167426039324265420285092394816156496406767527490085698894944525912616068790275716102697213172120196025558136912273708754514387334141771364600369156094813130568541381820530431198357047602220391929374837844678516214268362972798286351241152250732577195374414133169656990575605249925817485462608643773388307075192572436666190374527182595336043196714796005343023583386903413004083263059081372604874712174575797642606022804654845641462033511738212967991297892337565763300469043458906547861634704182125310635087423600954899838777291352341141901720836423760068234999284947751888687389519303878983780210075260936820704738634064804863604984078615034063225933723192838178476550597075352292319823506512378356254848065624943087680530859149212484065002635730393358825115024792180908237254573006123052203069733953072043599070113726129083853354509097241291365417892510099224910365159236703378532955441514355165793251437254096256315444475924654779298781571911999913138799055734588076670682929813404143866440170771953280606219275510532018863215610622329641731198140240487406160024102694398410938519491418932037553678782706955611391832769731178018784965884212853016977808380543524779045749715860576416176374824487338769078501972896403049136436737179384806841896239030191957838045715841024784118804720524703538764417901779697763608341107599815945051083908573191948263211395380566660784031630241252597000411033093957119054946122914486065779103138871657258722831292738072669669684473690516656376424030695048388049439198096211680370766143206307928285429666751737895398744332872400766549864176015316259350178735149891588496687787595294796856421754628664411562855341629061736749919728152219535702717632905706527109343606118472092608512470618624477436325055744952525310063718630449381668021627339581455366800639337838631072066498683304839099836818761240816598483516064026621862237816960222426186111006939756876306319765220588943156066162311377606464987330565158427781448927027522517795780425008018807727286622503660322154784343502853781908691145628396058604399451642762318081526334505230895654730069878007642175043319892457967530976529929069997013928661089412093194157860241785090990740958125220137339469884193465438172674679118303279764190538460415971389327523387336922802482799428241712391653259432236239036835231571645026860502463361624238790067707272483889036101079195305669940879865097217107396671939179699629245079966017454862707694132112161204326524821776479410819103509022839969460209278850194576621125872078635000375374807045381174615615731985556271895160839102842528597609688970171024599229696011666883656683393653685563208428346485091662996178738534347526152915169773242222178137068545241445775008838788879527468640162671519500827196712937167718589395069068244959399965041909646246108689929766521069195699089007590561608437013102589965475604942425577629722880230687006213396982435204038315350516441990484475565317128463930869943587750213266678782582698900529260504185439686634513952602995702356593577346455530015290438361995498817281429349984464542509885880282951244676288069673595499650213330317932357949607030142979384362818131597400307028610338973813595519394693839586798396846100314988403423403442645429803159918853380606904115498850181179968077570479620059745142022315730554719949679921471966989008434726481248267037658126505202685910133658970507091095067712028059299579402663704626705957339900986696372623469834476695856568194745081010747210996491490644932599927062446667254635634071106110090652000475595177586221544725455240054861069365647577841305144279808444936941449944753496661942376531499661896162187202017882025707387212354081157242743052703326932356272248463428985706514488639063152327601016391033232400982469616260398190419638261201222150290048804328087934333805818144661466366760588865037692152333668472243021969984988485726858892368535212551609008970277979302633209089154990350117311767301188009566375767304344743445412339637097216063009830350706367174260851478920013864926570547520696709230220164292139607995379278634089054771756730127396233432819206826585034877356986561266766169022187133190598859639924700842342939464786697057320513448926164287708885720341629038047269771403325566597201478969788106500911078386498298289178600363276951501092472498475400967831843880666666930999022124908037152979923662885325269500853548428249625718706434475718525722587048727188090216793848278542474938656971266828384802654029577781709146237168944369778027356630929247094505911459427763643256384388381371919457231577267990203488473744338850371208497981709365542688187938572673321505804550828578855924391712298271153895975306390087874820201636800730751711163749690364421693644110497449499072968018057085214803739565372469409967935521521533866936994929205383944397382603485531276598984570710731027464451881614130923729728155252448729721196449235372374683849261465613798187943449431018965967507854744970599858135781004252844167262209474806215821271671570594549403266363591669159439672633415521736451960172822490626954919567265078616482058789054742701671817735888579694357961849339210862312737727980308160745268837737302993160548775195572245204120135374101867068238271465234384240660429947228128472493757099353906749685909825909435726879592363879054650350159126129711913901904689252525028836454196287328968793752567547141889085892068127847563367319302494967102554869994170652656931616664901798451415563324023304299901780012117381906656617768162330490325927218997255787080322228060483463619757727232366854896523966051977998367131692294726499114859800548460672576485057109601582628012159533439607149677774339596712161720758303898005598169800440714146939369124829993805898105905380795813048527119304326931985222555409233283904703473400441032627511923677295505686051219306461377351127270263105732635376027687854727161967882496206852147733992911507354584732695076698384149997966993841757010244351102336342719816991564420959878842064278331216856977799844158322495410516014292364631803429665808508170186519874837041872464029891195689821943480729346416681805743816088507434910136281304773558963188127394094605014145339924900808270425705983544200057045130850961678431113715002851189462186089637530084173845345971241960968205535986209697922802589053252117841272278192573876832425039668482683862445963765286976157247147642927664409237138649983427081033391911964141134644962470209501255019163796045911475948310057933133085606756445437973823766769591521651516414875146636234228019603759882302923058606274012567139583361016684546881173978632750332746529255953905980112916758431595816478691455216383349059296059691038554949442491225999416839706296562733586980344562634657518388588703490797375632820647282924457766282253248286946546473290390776840887109824547655827280345167918923164223429776413306075116617896047369087615587888323248387295325016069032598131615071563207877988923609246780603320248766009048061859079234708359034544117447531629226167623661169867294704450049931678076581691064629246110418968118786135985877031996628460647704817572147104321272446948054453127878104720011102202665719673191229190179987841757100811911506097890819509172969360741490617056323965544385815982486323461469704487982566560227049197830731616114798012542663113899559025812510509995504078104140051162698169977538587882525756651521228103032022765268874443951692583945807347586574293821389724076173110619894425932936708311292897764069865054822335406389208210354146595434314709035874376549468837098820811017111748170385841755933817338174022424364843476913163162840111662683784950948455946705411806801960192800272907137251858653027059623634598343386622137637352753550755820008623204471764238359639598691289768536850855114774386459532601295339821572004491345396896597865844689624293738148655267462507861065952709052488714704799399848113208750241325411744114111800622134340655433649294938580524680232992538148482449848758628731833799510354625202057367782028020713065674122327512943088543849050968750154183079229795099732128717901314942316249317389715904208321267213087298912766856692806821647138691565801162851178439601387894310606688035366406461881213263410302683673204994011216945681191975521698628307288113868997897951202877294355079752540219792913864505796222106379843160803389732401468101125233197245741255734969415057579344240427532614944115098667552398261989978628631087728359265959826654251947232829067920601442508411554084136296925874081785758162460090729559821071461199809648117034306679305840327586834805945100263036581311812236375693661323060105211012161657757607010965355139655267448120965610047495503332905898086579281046424516729444209699949946864230378345992375773628382216544516880032225222830143953619886061083551269559978119061305550688580421093342289961875858991027140243160088264421343348411731210933301015235304147929401908527163605248098180295886542184521810194984061714438605269791289714555117798519464710679161955613894380798416082900100787987744329096793194324911613378735638552606960592558328565132537456220886804018917328141557037476176923590232300786521798830026626790841727922961123967223636690812976583196540811179762212953874242875969020926175104782812927084710830606446145070083524652423081655755702980531043658977037186427767057686415898831233046456705408724454228379685510810586964894455688799667632460029507228161390360214059525305705707761527668895672624384566115447053185789392926952918859869712028766654075878106894134483604040271892023722682945835344150473726036783738551939551096198376039615562529428884252546141450302556208117041275185463054296546552101561688082866443162794698152588308910033412066983360060103513824113189226291110692462229019843780259018011612923818615277858077380467751607947805889863593334937382306719458441365007480601979854589513699795181230886096327012338802508185170327772605901840897226265612376436096423513831833716033053006745600110914294065075330527247344348472328711856424392066794647680211508852009255397737205797528723143675015647123192565198229796326669111554578214790629346285796081000668108570667579443327887304807498284916591665299612178388873162166948914281701884613312807383681764153947634763955836857948533830296454684213472915407679077474880199469450501325922974568413873442565285708231872234201441469989926403273823241018996833257719657281834469914009988732070771697387150152233819997265446992352007853870485225247309875651232506533850678938366532069635381555155558053078060700378671667148957836220119932420406520954627626635245705663898915186366523049488293581384256611398823313195111996380032763965378790393968901699078879065310898780597710503999344597871657065108704309354002259482677279856223819981767860755232469020051205511286921941483874674741961514322356012212185497348829480686196821334702855922373371908216171884394505128254744258520329134460583200152899499690475225249831869424777180558113680413787585096101013025059468357394863688453379069505968095498914919320432982331173072768981033343120241103301315238125766107642170069078510004454879790615473083312073046658747869862702299176105562164979070425726747640789798492399691431023317318673033777523629353464381359088912453613783434477526334378762344447779635468230672633219689250830248083968192318234794128608537775091240447813525214652262734294780677820196734700651635308808389821595433310474362899911465027465725534217346553644246697573604877617740682639379105442883564971226763658021360560111582134988575920487091163545492156066930355476981595381073625129774164456536925118144328346821991375182504239940642213210207047811026828176377524479549668386331254335313819159100686282094457324522408768825888756422632415307408118191012662068419863366738059523241850689675615240444791369157928366715554310128705297522990797741956817901657002024448936048714673780236524499892739750038784152049738682636022044382802689646575715332025795814233769963695284262198887860358692053443164382003444641082358351569297093555775316791791651614421695796498861413119784317546519153278100238586367828340493491243847632062502790253257262922577985657176933120669140926533755187507325540912936846548680288766479717956996875926705727615225567210823729309224389440015046874461050806052992156487734776509253402064360671765080095166339598132019762938406415677749165297000393771284868544331024017326129169872126048369060089618777256794364639482162716310477938646103062719200635342709510623939936810712846931365181942687885628769369313179236718809137468654581522148285892095868382005722192675701234115894478205348527326517285254589427311497328699540728545233566304312316577065959476494963951914171027196614429801903396281249068605283073484652583611476750427273972601388335644428319141640025652180529899657189239916909511949091696772262516777494494554126131018435332713331754267391783566053989447341381995310120943806248010237526604337825987318800364157561489589215164084280993113738114190329340639957184949692788050834457966927167605465477894635826528954721643396619644241534510319488692499710165955036125111446519163933686772538087863299989531251590175068659001574019700906249508012756141527128836996564585753027382477051593311563229961564758998160061019889364079741124695373984764731427754320811558412287285742698441109832969870875421140124523692385983260470760285305307971484737650919919994694977239460916366372331107431131840688426885000147856076548752498578055519334563425484775408677404927873398791468677782673669778915726942765331257974660823915414468916851067219818562873134755486970826818750905285532999740094642728047009675724121068196409705772661943717426747435897684872866798177190105547206030276563661562215879311915086782709107521428059719427290782734486933674186584408338465907062656330567874284823508398497164908446516199381666658857084995142854733264095588003096678862878046771548663876166452015959027596064520420635572708255909961492044016247488298454113448334054209307414140889625796189397331201150335212025525258384233919556928034243323760624366399679527750048755831040722543642295039499458898295535952487193350307543967360399498448751044218345779150538235110034694463290778331261190156007959052387098649337612321172124184988307143261141371825968427023127306361640267766275025632608610629266326282031057184047362661825804418096058573352182038739090281985136797533692765748579788721320315482141016384442249642456865873110234884331194553006137164647419335994365031579979772619275213185826304906176621576515264597142322593411902311949354779272738746509095655840293460167424252489625402700585508504417695687671590703695406499414994720738821821972667762426896189826635951634237844553483210236764185419389847625593509346608315334645220797125171761299251118883111598442578699673715678608208019992874764533989685036668081835023751255149983351007637020022567769586181668203394248440775826351732449077311398203855329220430966301704077532929809946990132745517127787796013084729309684461393320724593175194278230880676358776513777207607608998898470656490102310051322601472732460116752795352323755270512128322506203734340184066039328880440788043978728377876729316564530574772317222953515914809065325409767621701277322261958227433435913556416925973376398956429003788311346303467052778759885893622917872917451269739109149478894590312458087456073743887281644706717723824849049606648574752168306297148209052234172524271847285979444186963200793300687940594136700000809274123818353119585187133474668046841282424642802054746789213568812956803949841078583273810896261214649107692140891033281244097210471727754357627268676427108045752961362003684383525018807243891981612093857265845690200399097009864058507553681015310951440879945306064924133831495603445653151324132640016391904378991504047682019507610849769542964908292375713032238157424327447610847304835436803470641091846888972487556534193983451682131400501339303979352370418914410206699098535091113529432056675233683069118879602759020421394426306928563326764849687401711279313089222013372091964532655674494321403064281396951793756139927176750966160469006681371064943743603623286751866674542215426929181547046416600020555354970876372180782913677607993668419845470896942424104427020614858348821155747073288072007286886426934910888252904574271044821890499771311029716016805164051839109016074854642991486580294153344702921703837329129406523406331432769473476006179358819195669366250649725429120117857578544779883138773348847867219279970419083309554879326381662341961619289820572009202087374193404120594054907041034774919770684478481518437210978312641728188701137959794469391982583176307789041022053605667235761143148323469642836926869278716854101660255617944820351348009348532744751539643115307280945715466406713812833096758300221444264759381276239071178712747577600387074902836750350702545273451654871876478199704431156970044905397798268270988113112498314078848108226366908230076194334371766914065526893098700816825260742320000820129459287571027762021325641889555624312157096103499378442323594729781585702373360311602515101668117118752827890096252424857746123795268707282123674269884688932044653092173209762309485161484479274155447192085552126889052112317116872323152341407231080132903955542086441761278505100812670407330863563939141936774843843085908921614754365494242817092329584078059569075978845006100696652310725995174865849982741367163263284390769138583809404359605533345633347194392215491869884648676539724617873695542362912781641031607213952870729623710796894886046813477622180435779175203109815101618286413036543433243598639579012190149703823734867851722602296929997488701515400482941434910299757588497528584687591383690938933174507716955451862047764577430305881343066097245659795089424657742406485658910002367543291894949711988018807910087556535380680488412913632360705782341377084316754141284743756893725957660292606684527211303319402710410372258545617013707082496628599587356499413336470605409328385042750270768319282429940517368484648462432222415108812328080182239590065942165704735303005807540950075909870989287793695989768159567451428419356420875793900628325059727282489933722974144166273338116542881328906434334155566798207153903423087498410023321147049692479050083291159510772964111879298146445098856776618638274541047803474268036198938737911929243353602529487169372357139952369456268255809327912117851311972404573661450268712706655450202128193071721162051212065695670884541038194384772947338229364212899515587242192552210204312936249301195614927743187435831480900661333773283474860671033964524320043677499120140837159745563931358685582802352603050655020170228293152774824458234270711918069415447430074103330456374629448711600007249414729148242561642200600621939269189361260686628107093901691078904896956217322122083376595039773234585459924509037177003820957140033534581524213651137583398810340108615403929701579371786643971727020438599957646440362796183748821745969613841623029590103224140052532159816847868819982244763939874074739564578292117725385965731422780680186793606915927262874079597700486570791190730081178041131518589370757508805035774153475234700643219591639963077086046503924368702857195835105247448977880985468402698446648247325765661715024538615938219678310597332190622562686610753892094391070635161740443261202575472301370258528386922478573853724843225120389452170950648747857575880866642625671155087357653615258150424830213536238618014356275605163252645786867944120706294673451638751585372607173207206756731663760230845538715416584524322669795470240758776490956387934438725280687401742873615304440975981397232698862160744118052204485499816632415759873234987357919025792125620809351403584433142528393109024029864095008604084000990068712413785808842721170071957459941389116026162968360261800581610340196600101540456194873080170624766011688250769480104695091511932379002971890673266037828966323221870894050724649183601755603348007432368487706492345864339388799779093369240152472513714213428265034036815317855247799115572171421736758056043255399094067812009819327133554443100352193071503108550828451528855095106010840458614045578400556153000274105587147415543297385264609690070861049812202141205288847970204545968889777049919322234177300125815541417885072570409272239971432413348353201090810436881836791296337614845893143750707231837819415445279360714590819739142016220353657737751723705394124449596587894604550876162025321466544832234478630674914058259186791716005055021560949796231535702554766693823725154446637057531414893882190250869705338585605250521618637349415873317224193573226993765324744354535261936291050407444401765381551265669844574485851011299245689012519570010938209522372392766923736125394211987291455138694052251259962262331436822263991194248711126018014731824470677799461094160360141639917159384155405753636445587829637783719289324137318413152945617993740582329083178217403741475097803249073455897445651904367603239004327585484647331357516972816283858624844671154440133087764410192131021701072275985263206906174654922218297833513416957797319918256595092154776571027569533172657498982479064981251094998745287267330915733315076624217876072888212406857429653580289078097241701290142805686701139686984843316102176071252755515742404183548806542652859611436983496208039400764224834387120479408387762908913358896740802213547933079242224364888126271296488148637816803830905332538659277035582524727943736908978263295510727759177042127993494489786612637738597570142569435285764414847616512173364989407827542255714758654626686941227305813653176727992019525756536741346435208717245068394985335810546429060637295341329904828936865658262205280147820771394085028455695665985148641959188363824797606932928417547150638549472185355870555939492207323403756630631525610951343946176075850057288313167868562333063539424988126904947689332640209825225187424016093986849816139231669874058844255777204485838428404460027529161360540867180744180280740681197214100021636403007216731218952105151868847705380496797857194356610850875571139037548856986551892495372800285650394237640865615791567337362845428458597388707367312544688322787693176883763750253577673283715273305803445994204303698559496020431957749707508173794726884051943324570298000622618225992809740650141961488290328194436325971187477030188102355619955786053080038438045879416432168537971884402574905020216664683837615394035992136656254673988536916159921237287860970828123179211964755993473048033102571385855702602993715563932780328091606132942446724111005725273873374290294745984048786770562679165670296973323250276688460562876765335378857008426644241783416601816456056029869894720583785942146125965724596634511602517104930529196837964947311170219922092076959352894918579504317166497082641003231720969485588006476037219033338176078545754608375103289146478215159473602172129206769502858649623847106849198891076062037196787902238562282141702902449881096688217459222213255486118573504421547073942645595410852262670652170794177867202928640540721636701732569969558370730388084144179501454432442397468961004741991931130155127563288420670534083098993437151268668383015983387314364673092503409417813856765757001255816218390734532421393715067934395511952894521860942510172284376474178594207395420091685131745737183620106491966650389669780956002542469905929098389220941837233450268040717247155383493834347717393553090112578587057204924378930073502756111677045161805358307822491286713505200465184040523143246009123333029194911874577023453696456196267588941873439567400032721876747135530796544890501791404352332158610884891129576568473154151129334402312536811720221852044013068208379444594775267703226370834211638238547593443141568392375669026559439051170604353259475064644632328058374078789342042404159672650344358710553843181059966032624534038707249960198322712603310242178658366184664183866601708966754037574064999451879564459508684746678997919908527383171439229015129261972110598977394195540488158417117415551618726573722796198209750583156101503722045881495315550867166313196846056379611633990661733038943755556612751478888261691337375386245222099649480244339433749814939312825763832914696666048090203821462138866566632305052766153620000098805947027183563268270878746330143245167820284364812855620021987170389886143748675154357501823734196149721474918784009128445251966000794443422355368033766298655118508756222851571796654908532368281080479340853447639226924299053259290753462161121529471235615124477933756029065953004144551113099485408747777513222685715524125505041860778673621177264746957960787728708277461998955830901827744229319115190746987213485753933420322326299141852831283538565915178772649418866691047333712485429407711517395968353712129292664194618498100505004091979715932127884464371496277908277978259129137554554960237989070039290378362450253423321522695007404853574445799840460297605223369545203946621798875706571476885634158027499509671804162685219746364010158600152672782435209252961708554591416911941718623931325770836988366006890105987734482403724142972058243127159747494052805481099521644546043115795992606099676844240313407087440681347169512058494336204222421018329552342966963976853439474990538662792403056104269441254750841050447500436262349926826658012033014519976386018616479599146226774728001824347798863318125662511706753183230565698946829286950137152013842964965279637299849083311326322840127136719570785096412469753162371517236340980882702087510541839096915509346365141442204569497132906657917819384277417416324742588813071215001688469300946818447244893832905928693038786726375059296069999963305445701622215168721751772915635986564771142041357719451997694867466006564266789107350352945756583780818513570555485023269564764416148235570060288472196287609676155334015896889060355210031609000530419666700279169407639719049286905445039161054397109074929009271360527623672896638497133651377479247874714482829387530407262042907842324831891791864642674519138617363898699973698730783274298983362056439700186196829690194879746018456740628154989872917591854962904125326549038136476779045767428033564776919522453575406991193300367233758605632460100594746879384894092242150493017106194316986370907071048699822874114456938409638386418912211138217687741804820377119539810448459930581850150030276831509082231302192217340113886685421276377592427168348784713504953652377581674964230246811119250183491704420170181322794943362560516886021980236210895495799606092828499623571769909363769374479654028371515188131076032186364113736190426460038100309527687791281488327786814670910901558919213351366700354435249466662373403255374756236129414321226227823471774037859821346328724055618546913326779650364648143719504553358752929929547753642533503687321043177824843143730248426590025184183551960410387965704265011522661828769896693991976886575474546174138487802540508328319456858239032286828299439318272579978732107457612421647328053193779181236926948306862200498607869295919647121115170509966519271257980266188723782714501073598360383157923193173101189249765580005716371659596327226919381749799539505448056078756773333735699371202866855550395280457441849973076413796053188110693942166123796578324069595062053021206137563331001967751620333024155072934460023326887584987300333951810612076846280195555665778891694659777716347412446564874400931961409062289161848478753914795797231050824602873738451699023548719096314271215665575679451986696981443922467268001045510836443607919332776445386132822278499008763848068134865093736271866369989222085187111866607281146682901122886813366529838966143918875464744626306379598874750358486410738874447442909975261044233268566251072812500630868656816940747617737479904557341776702521401927948907736493952072855737959641638518289102815699316149682757979867908176282915146984053577799546137379855461787933047709396236276345616556699865099489284253850112501114908436578420097416880513623387959342078342342812417171123301450419880506010069710199943492667390710621662646355072699753172264279368654677254143567482335490479562427565397240089536796315437987436769480735933464905796599195177256986104852700444109912391891649510720648456022572375725294222293575051952715384226706608375405713843263884378003819318537590254589003118710028704163521097177025192943484938548497523017920722779692066288010546066926192777835091809884027306378831201956910137501240792279323434675710705121990176294115945994270768911199659410341350444228954579342846627046577088637395518511533171938976183161547262391159704260611517414492107477350027441133673862835972895015828669978184083807940918898065523643947382408404838807540540254963751055584148822699555619342515274165729874175818347805273724219842032287053757334221166165184265468698939207861325870451794318603361660236944433388642856780901650826865177672051647915658913970954723875566054280449527960600801492454212422807700989451272175391824997219009646043782726707528762223300186607948747597272185705272279227522926410268114864137506163825073354660741034426207931818666822536583081993643795752612898932729949362341697693178778226245870853156857022556093319479144336608351218584978009869050199641433291467435810783381366729493274350845768324779239659343907030127362366784601403980299135319528044442683652095056009798222586930965968617814946295014382780242555485221640773532827406274299344217887622147607840384092089730671429199646990760407037893877600799085807698621970217305779273805062722664127554068386575921762107151998254000098253524422713781047356674739242692004544289432537093091232145815318474677009954386004491253950428792315458287539132192991274834870967009215290506707086450919243906258751955192116094041347417766980026861568065486315270842520539337938555602218610270730314019016421776347275743997871797185688728044164392428788247268853253980567410987614944281241336487757279183929345050632475908360641679208684519404651064439329042728178563762482095553404232753991196129818231952589186405875017241289599165034862424790480954231938783624898686882794357991201697051321765490254628228757736160703197911386388395503235354729972862451103937030278522258727728131280053435867698237569793924991760008677666732860501905500138478275599417775806458606583740943402218964180367742471126925093399943702467001924023571048018563645417554068993869115156240501524655326390923794479351214370569054642212573011242624449640660271815656664889539035598038652820226576427794826070938640894316086828181256118727406333366067852993049054154683651758956695951358652804266311004895257786413436371391446187259186910056720682342622192557200156067514359523978461406185721917171193779326318262466667554016643523753215597779309420575032483510277032705146923410179657005963356949286012442082523013884558967428677891684415226546978947074782944688792830547147054887261388268436959219190207130595495062283510414209196032329429115137622434038300086040343179300078140105694944563924551863849707691252179675855591426392777001165368525448829195473865359346007695940352835229249189601783668387398051421794170447081992574300546941075944571532844996808814986891210203842317820030161550990747148712965289700897158869781728600480072372667726497345934045743717800603111358930421359472402202591088913685602702731985817715114370167240236814649891408389044219130880197627479971454593707757761186624628802418129512577343665019791389380945415037971852556637838819544926322976712130066896844283487918971386878418293683770168471132677017458848567171713335504560653327404551147475945316560228272816844632805894330813788893805215157181338110455361937697151090456738897491257551038004167017863334486288094214249791564787154172581202674237063859882527184501131789438578290719942186477057055459048142690400520002215884392105773260125487475427966955356158704644657361046915046371954603441709718961826983864640664493422613612194027389515039562953104262075728332524497911300463164801270297546545491564973732228014910301361835467145506156409171661529442450874840045095950987058740168947169130083322294766886346451167810305528830715205986287801696858313073449963703080940514298850491208597487198782366046545500733502608567504214578983218781557043878671263939600796306632342540947495088431873102852498231124152189500590052549614512588903250182987354211629689511857216433122326613091783566049521675268424537111423652556886868336404912985686757646353504323917400160292440452443534466850820851043665476368423868088829269644935475450522807874820859417441193107523177258179868904336308242488668970863541975795385638909034660515162605967768194477015611242248828387985436838275902492502404910533476173364644576879721470608844596446831132366542837978076028304690741228657080700390728998857079530072885334439731096525682008782213228956497087025770892368160930268790383367693825847218558080113442873496165933043274973636687977261047242204533732995841107822262601002107051625842961153338249040566549587389969166744001001339693873009697209635247067132964752500453515430257441145582248301495404626798862007683648430901600889000633867695395303442754536357345912563922863210675930381798664641170975393624364963674070710074945484723516791506738040766841647009998090641642602535967038387355102001691931449465286415693427888017072905068609926738669895788731013691277281558390780933439000102262847394076948546321321927379453358811675157588031744327892726477019413190016406548017087383875419373217290100410335382982064080910640551117501720473577846113617479730140135949682890320784655250152125685224792092211139211455404996703867764595434060412912820067709938547621177562512177504375755826854726508480431385843431307714890097779736460217534447443324488194785622702891983864761546686216547764575826839753350876813183130673054352515725888232693964179489784293468786750111745665922826806414522212415365285415123544997595925523820858001857353870991667775688759064186226605912273177268376015564761959341520466119598728095895338544775976280791137668658816563160627020560600953623289291316394583347752907538091398369005137017645126429040825191957584884082554081371089047423440004781478174567676219440425341648562659942031647835910356625074834891898161937493574883391503976314430578899273515797897321615059841640854183715577282975130860303029219485515692333862455777123188769970722560917228409815840919033370662058411474231086399393180100765078099519612048839188411428767203065823590516219936653573377684278846636610705688252647482244439276321652709900904341510879524407857459692915936083422707340446902597732552411457897091086014248264966383635464637461518609869978888605947548852201549559717559117745640681446817679766773592374982971397305746042120937967968950481867166360000636514296439814029388992976620566907067114878947010238375784303283278485036618233991482755200790293875543881865416574717772813021405445275377373070897644726651919205684067626262452197226639032991465326391179065945811809400213099076048075790907384372629852584346311458514932668215716761759225635827603387092113861655070070817128641988482868534711836063053433776150638060926323528507917318643733634497459840560154723531963179508692599674719299989493238171437588468950697626353343597528529757222154581722868722785897690259022859957473697798684232366911185913120210620024982337450572144688330264835215133966983506729119818773085089633823156920173066413395067623009595836046258928539807394584936660286906822200763305728828317966966947947977661726036948650433700665701753889009263665582940129568667451649479245105125275936201872075428116577515650728646816514853583689958441941994002083378157540607416022063729139062250452303131069143564766523353169548608859840536885355460161918656288638797650058126545781287715105988011419153877981207973783775562911918335578795299776912912046920808779113885958246041400823015830857029276621982450265539424535665564855351468614481723721390364432110802251635741742802091931486676656920035825187704706860312019905162357779707015547022377133740259403228489529020729878617755418050338885969950072859179283388768258479950954392459065916465730410788223897303608878655918685863678031899517681631875132349184454552777944535763342936401029745204896739645936883950197796005595293932588069659534012143110045041038565820073474210387822330362018138939492301282372800856733407251899752015787030736936402159979502495064809036774886942823486863050023726295816626277587963765106268258775516368442412281246767631005013636926699404874235180685991851571256549380520203525024143501431009389081265972311758358241567701784660722693137513792063461413075223512614213575788669162872580862084884904545119318849306213603103400495194871614983840762276162249039637859931798534411720897066571525730847484271966905560049861239729882245362978575105479351960327637732303271397139502735490721010563740048065839831267511060786338153713882642284465941762246504244323298721819726744405262017797605059305378692508032569223982328967381234160110667716662938394484403073877181006384887226147448356105633199770834699910719989559760140468859904100386447735727365882543354335696500283288681768177288802140638717020429766876923708964895641657959681599066793147172996742343942830883365591988256610860596723817877628974028185666548270269820924851634752277685952560133994990317795910814327473692238544531937100643385115728562190582221298606174317633661083875487510401352151744411385773725808624651450839855955334710893027664380493010217838600578035661374367230083407243712764677841694788096053263663285442720365539441725517290350538614488492524219304300918923622910125010573949819853699722566938342053998431681992033616585776299763329260724223927167522034604610592431742193617634659357394620316614520773751240510672596631522569265537815116417291758416678274830171621054361803167058457710801257658025806099792692468916553028920786536673942886792207708695737454601800889629015564387900091136741600184214845907544720248758766329067384020419336885978279856784750120372068343749074216137684416366835300436791932370655658647125194743773405470241993102311692382086753282764409702684148438746596535283893781052562941464122333495347912868254529403753076613452462927926041544279155489143601139157629096213030579655920373796431193172541653260419119383738233384877359071475974657920454171210542030957602959293810563102192474984618701396865749427427853794116830428572836346809341189834014207030033390073358986947386909729994944944015590160426159496230284041016517693055377520883860268704912309780249456138565694440172505460738288502438588535343089999637207661764339632489190773219840701767605476513500059043042920985948342830420196295313897687807406898156900231048631787337026858716566668117733356325589120877112731181372713602771388524986568505167481921658734589831637259505231288415559432066595373518690682854070564919801685260035720893934475218724819834668864246898025228805850354077020216186210277320780323106141630002022286364499717429709834545686951754107991414645484559587793099230190098253505256764263780838259511512643182242140413547526134871483317475349129209568273635830646254538495002432102501545585976822229872148169483784271662308702693693533446574134256323030469727058714047226581520245523772716794292994611267723503744335327411286573959286674168486426888520935374906023790865392278383971601097957564507892536665251259134024995034825271976313498004267284415425059140569879086411780126435212187583805399063920035301547473012091686580716236309436641974510125055164426205336027371921649652976903252507128184533114812194361510268840113576658237006103947342014964354853278302708464864467012036062734729855280531959228368809022764660113679945588085517064800210998403718163469691042618346332308204010332319406087615401620865721828612849300836491747052427997144887203420924508840735223675236700720991958345896216957181403743138523094596967300442166953266915698253079794826574296093222328937108161551114515239291446177149910183492302729754611004123040704886711448078553057361747416781512899745326885529915573796770487753540436478679731675170411672272250441124520559401721890610987295265738654751685169238652755370901911626406822427019635034149329976436999213940462772054347480680443237173865634431758189133395074891689437151653275368193181411201276226729522046694111122213389852863045264835524717086019705577955570252002837880985832683657731325597204076203270989745507386931560209964661528005595056293213860375722132575873298664753152783194684753739028504704882118692786010579030131100138366480085181258055170676274043932863334463156507734652651630435846027353057227391914845103677858985042475783463871769624922051539230854456868261133632711472584452272791995499296909210603694227896618866196052074238368317996752083265553341917834811983655636031205640292131955411105243237563508893950658817717383746915295011804576538403241603128558725132334905345236068872728222318109308339223797688006827102711860877324190125579125095793076059400542635231808811212351096238499242733102131427568392811946200728427194237466399268453607017354256466289691625314945826691959802158217709195664283625168794334545533901262617597296790846067013274990983378415688237671415620589545102240353471076963180275143922479930343878637516116571754336071376608855903776308077200356953066957003813735675703329091085642550041399948098504845119466251537439586305834309845411630127694466875764090882766786629360419788732787367206121088762342942811445086755319150584693964210969588246307443387685009750948934818161104899139502973401025939144772334323147264578401195353080414714237797465900666855264645061757924864053841979840226304617280290532867834474287663548044471188748418606144616340940714054915283559761551251722881773745164238543762042443137486327313739707956813805791305433128214014068517300200083439770002010357534496669016747414984201244639925341032825801849562902733835747502996038621904498487141420995697542995985484670595817449488663619537319653383473669345967532888501726929567978648240701511025401711410291152851772480138943328529319758431826328054339032414587183024776707402429986162862533250204847952438356771808951153862591146175671771264071682789313951490833923611107692873793284489453164734908004540532928264088712202986745594435656889198093883130174673295563490625903340566200191493506345935052761709083910244259609358049429789995949240575732624079912563298061526238291230768913984367234577992345185861170959888870950530333805929523021858633295960740045625888100794618854209959399532271083836860213695752991802837570192394541430894780017272635293196963965753973726011248457969914228209910195730393010446404053001667598773969951465560414829931164876197484320186513600749310687258099038252633659012217570773263549600145105295878927089837166270807385386544724037459387291714065488504426471488642887103750016284277045653818784179375662890974747323887878363332821100889582250182470455223498096137004058554588542360429345244908951000592055150344701709568258847419881070654443142229086001283004419330463090338437503234981939783712438798800315777282744021249016006994975944967375819177434682339912771446787589765992241404077438273929678811011585878990158812265933187536478787837714297734288306179628567837039795529131115047994677897057022990035075392593997490190964708952950515360495396359410772288152278756962427493879191171410922825300494734875617480300848332587447816477652685695254395882704525851008094048865347943940351986763528217778402633907121423791014040794978435303415680202882158273472090762199727228712337007158692117401778426941363637942944509034325248354426393418865827111190214499687037759809230810905537249104553877502749545452246112733493996073528014110194642827364603596172294070753771109740162644236481808732725165884787160604897053559008996353621911635611004528313765561805937987542440335691767048393684943451787861340640369761198135659306215894190689969246924133563580090058442488811225528277723616943597976209520957036712389965799269102480873465188679166621719309891996812555921183167145811763995329991361849206628795846501293544414403931053992789986542753533581894590527226014967645626056955336680017571600163203654207744435562673783786557012676017791493619361140331025722422681302732250163390141293453546861035496709982884086308801670694287817319061910174835655442051028563091970147647886929925285078673306694880160882539646889611997446295486345020967830804826937518691950877917026084991073015398359594128956530538190880646519470944311888430034255065524415121012827320363424424185984711699963839477466046112742128649146271950677643987948708536684835931221298521689155015839089680210449894269350411716763538275791433135064109671729874648204584920047488002625501868848488180256740851723747167287154847554720367342118552054780481225547044168645544407834529812835563135398251306097371302593376674207746581058869571053224256135533646523202748403284437520776264325371948606055798677454030685237545369355515158600334672604440736055717046655121654701742034116094557329091698952859991339679528672367471894486399090198946099284506092648168639642832946816761502890114489654033742372488270127262741293459866091496191525029182781336253992966347547588090673430044599122555195358896921607449967569900286578247520126553857951707856262738757975580452066884203628316428566403364176030940172957366215340732108506164836816012419502472093620346639241258807937211419905257264281658724908864032412805431253649716665680319084795993575618567074482418614824473272817040852835883814733372079661915238598239115581745367511187449570290061987313108799923765866170842937911672876590918530346460710976942273846118516596118594674741214111841051727376188645301850161340784808113236519829027867232027936306661536268602637217063328134878771360153624385194001606198809953035977267297408372437718004526948997363839086343870269490526752930657212483550635026385010690912180200610274882743262264150987501319275295510503512798451601027796561021631065977492163415321485432063193817651652789875500370228726079822991811284884150746712467558464617394435819954612475281261995921895973843595583804495735286586416812197556803666568676450177404507017406084128155605620803947364603331126031267790185218375631166722070058573475082234187551251679299587819265677994760371447411336919797173559046969255176296930207856310356976450344577021674517083758447557481798132781927059300808308949897665766631617915698863762485042377954563113766523344163278362579581509979363828376769004771915581587550948991638847729323976973567848240502926336797440334505846792239654005032663099171094538956891566668229658439048476625764436198473083774766892962137135800658986728489436596311623380162396845532284585460460182416831174100865861577433900519476683611726564222519718646878868751597792254167436916880909963262971975106039313803903221615391362116381694340876756464717675997628395638967759208355337357170061140023931607082992580889103761745875885365859757849398684546453861499373463038436039148265634070456840143463268499548388317735942355998958535863870088136870456969710986265831192462236272255527464425362850737872398273010846126617902259797875029710413269569800658223467870107014967512731326812597457415566898214760850601516939648722769986546909378186373833157653980377524653979513914521976983572262904788591607945529874178512284934552368505994773815914431742681190752046209798686138119991173461757782814456831683352771625931761422359689553701849853401414807041554755751031674970722084705183661847090834603529731266180800288348269954034192110134646801624146553127153948687960679179809328730581441004577570376669567437548474894442947984973182068661672969157336718862237775098514285467336644157157735552746836980687503495932707283999380156382414912758208126884532342544475223886808194716004703254629664096418614711442469856253014785397006138528583036733711691846651471370468827887865487527982056467163140934453232629209694750073743820561318432545351595852996350350092387616113454912179006727890476004617733096755929375804886196652441264257469171153484125829649397412780329004023398683450659953040224676812411886725419119223446095983024009273373754868531739107291313624850085636797302245903707907689992172216285864537510530764599508525331482179689678485302155102984911052508948453307614407565857350340982627804569284691687662092359836224656627892541221026789338302268422635993088781221688511715973969674217304961708053885354966960512455919721913750283503579260404373551283643473327504507039648959159912552475701716600260472522861174548783262978950456394498647016387133317382825030374037826417479178593066010902458982683664355876504554790409247915158809818950364827491530850632067769016752059765057977624780440129946022076278621874005488877183896911774401858506672347279142604214671297588762376436576065830501810044241775041466250958868066316121789232265572885509103627568715289982191173085941731128554013713967023022497877432675362361281760933193895908531504878378791360516635028160407222457973260694146768770292314284462734406168975564334282816653047186083031299437751454545377717183560868663217765593627144155401141325626409997637419896730508210178898949395871345154996269650452314280676874065276924042095305826989307223557076536386038339063821237109997602087349806445764946672270115916488840132669789074640712573866060621499170054012903715540737761672112991078868468468840245812688544795789698040511327597816388467838042414260890605323949573586728143513647063512686831558686798862676804062628329461306616138380482499995275379684130648304934451183093285355672831544496051315548310207812229369808868030920768131254530595934837123592970652873033106944206659765581420431116552491897288160941322748940422829372572716846811065297768860282266070147034443082691917170799518510634365741633333133823477237077576519292356058659494415800864605220483071073382631710311443141027320324180436981627279632915194430391518292093190488943659357577164724377801075927958317009172727308654445953289703136984865049252583485056962263470920520801782366174096381899463384780147493470788396452848395145550631927735745028919422646155381827000590357549556244424108198885858719671003362324249953135979945997867059136775265316578524244638023428307622386679936531523548770745322401807826685792785109420305056101479039511629358488030478296958467083358820200832691648242504757882874397120680252000970129054815488062452700411049413913065635628063121998603021131773091982473848013043902540273935714877130010464277881220607171855021314982999498850230550471691233879293968346739476466948531197838582127648253685799730671365970150403624613761090028772311728094392406172307345334691463289544473604509693868860974828287833668836189825657085479785231775232005289634935709694664408909474369783779698166233577161728694752710379968395167381839969162112025393997421747455596519395210880215311910164758862920816965046902034678197852543916307214180719344972679216704474629049967041984393955352663495527336373804006165267553564351011582609165246982482683425515315816822767808960916637393192967090256481593682533529447522532108828297021121437279775452098333130824980571909280645186563360747247384468079505717160451788065034891473648352188422145065021858151556121125310703248841449452512524007625048576940020771642358055139513528819219894590201301637827230006144729017686401475006136486437263227654453642222190792747709133406298140295553433312227581438767919755739659848390086706759958398740808732917552171225978328819438417403953860536437281089502612663612172528557162516288069898358757616476374263099073350536900796487736909996743383570047177342244809331633479893159328430863852140791051715703187026823179077045574076555217155721356443284595261392841630760408697671758445436305369911093981435165309175605877839774589329226774909710859237827090252979966105276940859766793249887516675655952779743060591671148601121385491116392278124441684894323177198915881520149622013446196778170376276867271590800134257764021451803735229583147634392640461470896353818019802840722191490860346179382952185175222987621540936246830671606562165438734094420505313491253942291837813674973546603735982933464612047238385437142921014587340008772092139675976276006402519414920253910866858826356901025754654417815480714945000220202288457970152717321500451831970410137554002136017780072212088261624026193775026723573050138826010642282559111352272518924118418467634755769340855230354670235241809550140875414654268666973944965435209784746332227815338313754926789110461226273788994754616252893774848572935119657073181724540818530168804041220493466859335412281533559279780343038281040377261539267977091357569382431145308810123082139275653252781761711486336136717483139200625959548391055108054997103687827445360970963458004823411555568178097840283618760856768236142314894338044476410273760371064192737961860577363904560701414302115909759544055278674847952916089921967796693992324986579754166477884023503129689340999895370244379491119686265324581591347086623216383996636653283595512154271420507483707361520676882975619472167731190987667501650061460851294053519209596999362286088057167595841903916591466625128409659948918979293690949669556711776597527702557577212707273430189074859763036626775731225496247823738667672406808983015353047853287420312796792608265348370298577525220523743113983903273680915692228000247632409924054619360737642225624556520186652715309459244868434393045156880076213123124290626704060732429574721769353443605817614838128345200369143317378631675153712887439678785672397711705465745652383037803353429075888901255097913434667170420456329026993560061272911583447609767467280137587237786375901165120444889259267924738277431129150541093876646609069929679105435232105658608125342599219442178117924488745657732914768754151021195983794550922812107822762255844304972151628542404775566225853806041908828637403879017682279757334857817322838369867460993513790014077206429132371134714880773123327557637952709955580671142113009626484216706625401237099005527974775644784276371961530293462024335884798863804351722685578897816030623298462622317063240072233021457923944748892801456136148308319387024416274298533732813254988304131662046388925582354823942852202117050083487277319041924727020935636240572321963844355155357654016784500955620689327115149897620858393478051127243540905471869014883999245726528828843927517537694958925992692979454198575026445028969069041998802132620559426270907339883485536312799852661017558944675099596620279256480290924205708627079535581337045780758587863949774942270678443865894290657626648701953750438210278520166378857084084280165243834624798251622226886595949027293874602756253842195584193102598968012020630021167160870168145167376651128286729121972853677652107102849602426717112150532105592703921473043063944000749679435284322066899734458456794526656332726260705500065597327953148259414628678259032536317785445518305170765863457171124811596532788941134998911658159530939247504422296811130743446811217116142187812490975882935114931085730462419151970598738291636842216374201383629540357870421613176596084194834556277066452084297842345451892787056025090340282697554177165417579673375169099640513355837660918643176690340236349861045521234380602233558474656088263389034286447239167727457691155299614202696329224288244584074478867419729955783761503226171356394755140658655058736511808071490643466624450782621568513989436604090286244475915836885287216790637722119661960758802651289817764431792219565711799854789139054994775317802077798409778054205083900202760554374438210077100646102900524813855615109101521781532034292942849993357656290749626755690834793647360234371043345495568903777690046789216626675581154000854792440521974537535597278803206661409192048127178698345857246738635694122818335664694144575004977471505548444157557313037960561420255240574398034669459853797717673863377270049760501917672241671845310659531877869095265251223282072071670863936347988459464098440165133948958609750599021298248211986247922430027911362309232955939154121049268840826408546420645873080287882119970081214364209440572770025751402333091565846729515341949088334670038364294366829434922713952462594424634834896748826134500945444797599503874446376885506612430893771416677707659481221019225661292991701003957873646478702620291127403706730204074942458324775624805304871652282102386541945223685624218043056031547601400843661160300841629793450806332887043704904329891302647984542897674747037270411944498570396321027899370938854611259004178898576882037521954031207832179810379768019766911298994789396031776611828468546878074417725224062625516676248557291619347183611595344822878405380704530185585311445271731927815487246607556443526728243073916877402837875186912866871496440366599888358088960532659324251348982891971312337659113697959860665402429668655694433792143773611921334788946577516754241695711484445938104732740202418695912487662564526224080717181019642105917363939106939479888108169945318752382251335311463951933619708303806205305797983005753872763577282721587163532997918775467685264043898747899329200676538247905214777645305147326117476152804907512169953210891993732934232583128465533241317214177453084273505353735728088690683622564338521672136628495629009352119726777340697783672450718333527474770985284343759404553644557998131760769270038817029167260910603632457354909201969683536834846761712383248558808329772987795735977704292981931726023168547135937318479230835691929039991348595068008760488149048783111187643729292423820936583474258496025573046960932425253928205313438998683179073010916519646146814380613414558663198300199270800256581135739823564847411212674436003236633957789582257745592796329102486664101711956160872073455664004207730512542219964177244319422356156545263627888630655807976072324084027912482007130586294070177327452109165884740270661279401252224016797981374619336028871528718525534927716374067915644125920501364020415152964863378439932676742059175591914508923954134270865991460279409583432426519680210654201205645853967250290439032562681316329119553434795227287163579815361498521492834100964574187585177744293803219482337991521854082348148826078867607333497883961844889382559080868324495926027269824199844847923243120407455953689958687721748528307773157605094543640373513444291155642579582188681896115151663602469127450446702129185354150142405700503489236402610593346589889390733731800524759791314046863604740608454849638490822236957799354176666208238099555248903102964076351661482381452208253968349542231197241453319958004691298872322619960965575188686030245874147883676489392082238798617331702042188370625349803892246253265148740280838794988339195956730848777722890563362973050443111569819012149142295489719161008535081351806004126552555626454837774498659834229097436995745198172562610867826953783105436395238048348743577806663764544268579522853973571035645306299245496296233706160450243714347457063425324321015293404425873738457927454945984453381025009403736804307818135778321683860194052797520947552668472663146665614554911166681253747443192712408679880118344537527299199313255690743431841650823411648714796827301539745041340245591896622586448804401849086935205460720111594517285916674407971981988541649239881354512464007304413378773270661443494252544189479257927188282646197702274742068214638784329824474089871903937212013776937983505789944939764202619747687284058224520597157715836774432083516233718707294044008999582127972561083574208320932763411483072209535965679164020690504772401984433335841014403279565259696590518471067605501702613132918982003636447498261519087810872572054718810582880579168843838720818631777269480291557295738382890303929553544753271475702343676871806224542830185435572679789270251710397545263427643431958304994322361242721605360534349163295800000805802482780078541943650379169088059348093618732494620125358783283057393417483845149106810633695481684017376443051827765109074852056232133642991681008467371821232376300530660265413100963215114334168163595677944761787674835539775973885083471447490091136308390972421769967667510175716732575213290300040599306193825197576102836756026230338841833353786044597946307476533096109298193075054137809433382649039376916670831608937790671909793515457514116672812011104172589114018950131393378744001932098916160020220693138315277279418022167867520209017192385788933458581936426249986834474404243964668905837801301779777265753923263276431561896375802160870539631187901768869738912116654183730795707978286413918960052793195212118067647074004459087118515675823462401954101856938743929404471376998670300119907761069055396570676825734105653164088420060492199902068523781674248292982283713084334455515329475186665458731275968346004869834007737644008906934244542058033695501877866470308002721281557943078092185630172883324499909231111972594684409357468922414542753196469063744826776324262544687804691772476577480773749175605114173951901365756609511589550139430403205563079181803796384712808507155467063626900470769655827427236254892055922854017060415670732789186920805289632285426222371955864492345898315610435185003384425365295617399683608353435422906002077443779276385333219786152837400177442303089586886808326842478941127053024838457950968194742717050159149479047015941483548455621902617622859379353927689850557436622034034260284408290082465911513986411812500747534250789472738060428361645748601320984735637963263368422110158757447961829373403978442110746194116002209993250878791901462079046621578670689079993014393228687741998143066881428196751443380318888484491070029632721319046974789457090539210595976248433686083450417775481244674635310229822359536536147934951158620412639936962485095381453463908718321200381819233460690670845191562148870564469697200148048763821881565578041370771446895015401081191570526993321866715747052055452134737317855467667477336557680391346187225325608042739284235976795398869806020369993955600489915109765451433815518897340976285753800803773838095601283989316687247384503930485857341501459326028937340858278880393472565449443957832528079064155167816266485380783833844448852278929383403061788975168443408937390772719754613793036242409180247602692644607385308096067802213356193344208120350052350543862999522093835740905215988145166418146382841394241330548248570707144185377965369701035211953871743510673468175410338147229977483209688335263361753942124650531551757825655130081763165007704850505497269520259475415946658291922895275765799924986006165282393006890678625123611353307816750501984068260976180856704633404920040738340249748795055559948060622904785610074806031868818172249425242560565732513906322948434508383845120895819934287199294337735936809314290678390842328443834659577622740385792341974091287065327470757033195058898730823728589231166079885249325559034842453319920505021277280469531371454384331402121422712866738313809728073989976584624280574001097881246663684610410016400053599596374898856868695515472733153512352492683874733588998810227039548780285940708935289707397997627678724756380778183621094682024311419234011405607775045838414819212506088378118078345101975077359903223508849811322295860509199560329122078874735856504343416603294470120471333570003886796452991725285205597357230220665278722657136991946266480543321413645912844084649732844217950345235427247072930208545621892910027548611045890626406190786789518743620020386975027181513376729127914632317152981959701357272102738543273854365210930844299843175473988330603001732665727248089123240158963486994331699021701980830097318678098909347950498403196780203318932420645481208884313831528491535828475233948655113578246543994703114593787798670714580716804404113583181399748201013106318384651380747095341810619306413010294604186065899719116942609199281521841979700575332026584147086645095369680672929267743954394730545240150181969628502999088599533151998866877247189823445728920326286768719518729182202977798972898166030353075620842259099742197102832447234745783223515666513329004415799875237806688944802995443912197595927937245636178050900059596309657305578093913500556348038169170915373674131889897545987108889679134672848899564030518016871346322576862658006417180263928534743984843115426330556344308897026788431762276935445196760880566610736604157968239146408900074854099974583238313216672451760322270742204273695780840981934512673640567332958125805522401506194956746442526193393765389146282304028604393955776652928535358249694143960568773991017881330831976895724333679255563800455866486742043755664406393422758598943036314380491604116181350758673193814735292513333721683237791659726972443285647010091577371575265753373248929294790540140888220488033403442579515550484764443571508665259748125046473120287744460153730069786158412551408887791674517570536556711639744494913335092299368623157553972494389602255982915637119489815301154992940208171993687687697909473075855242297051514993213419563843720276290608937709258971050337055876820561950976114296269370932908947054337041464720370036482643956758278115811083121853073119479431460958869455571666652418536472138312054630281703949998356953901854369818457451770701823090586064103213307390555525114290503531276315300235569273213650997509464080819825760587919794235947578412632238439900914864296999097978170062364631273823381595887184066386552074148805402944559228093600360396486969937236180962168325733922357790391946323566603543146646354154647690478344772376712137633068153403066964284313959446451724490646919525167619542509778988408479355946082897023123574740549962941008226692543387842215780949734399710865360664308122566234502085295787812698084992552511177896953534677974935383196352062310281659495785697881849828722277378823237576986762612271036442458680481881593133973634500244982245394927443280524985131468195462786176802545442048271805067324747042664604652660203790945870993415352076756727037716649574686783556148936244110601371172896917577982975481595764171372926857948626101124196914140171536846692180088561727936708567942147710207579168876469692514966792580502370766797321582357027960647368866316107229746238570622816177170006648628186711190616284874415055524250789918095449483545355331626547407378760407225651859910083163804846504685538229998310510725302346043763290403850952959160301804448114572756220465695753743184557902801617681397876290785707978839189881695529475223562811084842257744057006934005338341677179470767745554943292864883557058306755978880659866135250323715756463114084560670801312465493547732686416697162814862224330517243311525303439979143287200103363288957329657599137769313291914349742064426292712257922874794634807080174334084282410282902194777755636775560632063340607668105109401716023240712999256071788670446521883432484282632176373402265754962535623598466943491852461385059598388755614389623377608292981307226672026467033526102825734614561932161039426908545460660580452707145426463417691104234574722272425957271172367467002493295939689567012185745659763001568811770178166815032595785839623384261993152336116835729015836032779267690167529630573484856299358188703920509700641116947895175612297021014094264810921548571938236250959776850891476521798022517967983087815567587073929158627358940342586391625452144932212893375273136822809008930875241707576102172093625446710390855821091907746510794815091871144611328781945000313260701617286645351793241626309357403836805435894593235462943812702914237524625578911364090741898905246954228296373453610330478073482921051065499643627330429695630716924824509660381864411633276831274655205947322021298822313414340622426261926370544228521297105450366655971828678655255637586484299321404856797708184835319883495195866245487426527594646818101236241027870016535584931382499258389740142487119756371930853169707383296694920006609879071049667808768865511041123071776931123727921865400992991381875047797526443550749487736081528724045276358315145670764083640243375160478102024915602815754536096614626490583680224996949073619094220412624754157844927921899574450400840795735919399936661052720626951255353307664168363333532526885500966050407705148569252227283138299286660378829497993759268830407562777932080278580525042213986101624489341880444072642482528019734783605373866994424392189782973281982219693206461548636492654366260330383595777374903711795006458114993587023074948149958142298231018672935154742169186121902431955374979798256304397481033049734706143324933809889521135992300780041437770613024357669800673001681007445924089733926216888790845742339713287871141251727469036450778359585879600345692725565697110696349700392151782776746243153663419154342927318505881545494151308130050266869397738907290601646958385637346258702782096102173601387231031721716104885428406548857114558315614433489128846003935863101311096750933751412936263294079963494468542904253056147866618766479406802746200215202727752567273125490712038523080643102602380230642819799789985163674722552500576834044789282163907908005586949693102133397047274748959369091159797465539619512524351311140946812818150345092049754470013047615405703207403317715994133311165314431517175231494159111074203904817805908630687157979125720516201482242182500223515572810140646062953467214809327441930579812937100998378101134066046741203800258259089333614634077241496496374661111651866178857467961188373612982248068828621705682241329031712255617956156650816997200039861899998623650290039297730443800351976400678471272923401615292526430110544419685387913949013130196642780506892804853375265599889024979442878570840843742719720559656492973844704314448654960979250299264949617508299786154162506713658279761806784005381416725816874933069863534265748194823530582164583995330146739203229170000036393020484638127634021761814351746839495878009819738466717099524479054453875343953024870739727152116817594107857923093626625699929738251695105977135748191899381961172853750994217785939233350372175908529905022838941389130696077272981595302668731658065653067455868407340989121329619003703023414245103921679692135361413870984139983189461069153961820783742505031015209775941513270005228422165875380241058054679802609556234184516849480238140001413997546789973760373575096248088206423889784026363103748322785926668058943565299221033524635719677931866783172002549959385249881962376550293610966132083125460604879776381523953505560631526206372838096180725957743993990341178010698303824080310126344599993094073539988247254534842878750769747232147272661182193302306597754150324546691276295147154486504185416871208584512509406036839171298373758106948495193971974783961624163728190573684751804939365795025812767966670275546912792322496298927550495159906968452310254067268432695959067064694681313325283970868227626502158551304702241593059157471515961464026702446761960244581819305678732564898839748020058649204212114809582753581125137644533702418496430083977061645127095567011009484021832258120194858410208107199946561098279566778041470810297826316662662930119446444322191526668271976789983745932027599222594694735934757748456556400311332408905181945734746264746115469120380708353016256469486488053357908010939693504209112943835854901195658358339978224553357075294261220441791398269254899367261207264741071528448051653353055343027219943538228644192527600305019471110611235432191149335145777736215855765725779840240887526348160104660392923318086678377403931615999721414485051539462300760735356521313273970858772819937491289653767776656936637023697849969675838981225044928094924927609607876454745939929303909567198340731789376392241181999179524045849128143964791682625943725933490963378763029650362855775993877124541017023291237139433532133304663964763620869588938617995500517215383975444227247398287108736960198220298955508503965184825622975897660728464482601223745413473068311309250345538123182087776019216814775190085252290722988010634248612461566012526131560251920440774539552251877380634966832087593757125237583002724107878863936259927432645074819092526449332745935666935161033305293268795989635389544428497576789147035704262178845653122010089357425457343639598388474534970768584286250327767317235820993459692281192847026703300338972376279268395137213098809636953553244718578195495803787009453535048826660056710228907141374404104388729653444778020729828076937285758276178488815763244156017543671808285054684861991397262019242675719866300960354541885392643696720038407764990517783894855743240532031920169970837456716760041160315492497762951150594783783556055942270563815739887900706670758014480843093999962718155681045561562851549151316958093898135308657925041292017847072384179690277198769690208460430358860192337467173009961576997155335314551129417302475234689177577521950699195043204010095759728526028572836682998602780187812102779693337422630670676124511064745158124849303376651755084921166675397920906745186149630436285992070679799048984540045892123593522056070340568899187707318911806711305376650808805654141712324933707324953593431985942395110576373640490255972572580359507442318955066271132915500854707612172513869408053913111641090081792881486908499582148478378742872196553255287428152290228948044287983895359629608478738431517889750680986417461491032201365931503325039709941061247607442937909624561700084821773027881077106444819990608123094799940642283620697454898388952292147141723658770535021511270168386711128033182012493365254824787165197409037755356455009803531031868819170264741273720436809917451655321385547745418254870782590040194912206762961040010561753711393281579168054506814870683438861045526169883635813336831614595234692750322171247030344962527948234974100057218606738450956825970722345612664707123105648651268718163717680151954878050324975727938521675125278438720639844649530468399637639216241546936464957971159339247550720934334208212372262060843674707881019449448426400648672632081560381777271908142091805983177275005693602832902153635174898990278628803034116752951818659680694276471812449101584883112295442475507177121603379696747228195342037967080969874370061972585994969935902317388534629643679571186318410488906479215402835976220829140666802740874094828557104811314699860939534519715243871238059340663157198328312016945201612300857510343292994501867449546804061279458969031243667374660467235642402399205469531031738112930379662630563054540950267845763008443730263636175373693339318685177921419915879280105636730318951419847983705731983533695777920955356755690825077451537094603417432018554688311351970206839347919799877085583187282162233464729534084110791365148750355835325450890069869775174925520666349267317302957166770198759879195984155413797145838463692313160997930944262903551047399235281460761833888216950852499704730375350011680423333390274262236053683014868608736531196465496834413247626892756956148510734777981473904401151961266325157574889876110096949173913065510775272033672988913345698293443610850147093055751478000458651958186690540700192369751267347572262478493969434607699554653748193764140072959013586471993124446532898511862460473656956282679543343878787525500933874569158381068677245044728789397514103192234772430569310703809179945763838457232217674685674253506054213462222505171945548779229672808553517556935231227011022684926914440593672093067353613267621017833840713102561435448685560586718347041365666674683525381785360421441508359842369097318692394024559674564978360620410831342265043000263301399589645503991931925455853619147415732777107756901340019339708062330501855685790847655809690526939551794187917981751224015538868552206943898023707692522906797082722879667518416812674576687572423022290004342358347170234305906286644022115900006059129572646304038498130322396674736913617123421972426836066390633169740777425430474974697032871579720706924152320667651765255984059788941006000626979849370361727916067998498704624940580927664381305408046622972192327695568850099137712385642310102433089550298152429085512563592560586935965757082050584803257248803795108334586729581474056877488921976762284562430612534633863421435151685828048411446411372492613827792350041038553672698649006304958681543672655402394788671742274827748088835164558205799445344182331635224898998047214942223169777446735987940614717396720588790425711563919245943172532177008221252252956799841891256860643693537821266133478306922674598619754961294099349658458108920601972843485627762191792115922034994861954526901393506388673407565326322571476798617904998144796219216668719933157448599014859048280496681420298183181033307622318388164616567171367101852974726180096729807643816522869524719530903242043638514084894228532419409984390327209577135398445631210758739187231983396945586947455644077593627320879915223187719645660183928147581697498201865322936949432796999016297605402617183023727761684719447104435575988403651298519804021762820150135199447044106987884309759722636571602316026875913232667239286834322451875610418702017727382785932943170516492734329865063885383690842831594877507389875587072792795483622267246878057359011833554125214089431765249211976491677485351207404345200327559388692126498135722407769183375682765028622501056681532665917063845833060147202660453389975856702044246282712230432626522218913086610241790456475110986849252322783562251107290175748248112382458560203140403262957289691463699697843243427902596090069116539151024647222146894407837268159701991556779614888714754967319590290670318067343428701135004154765249650504832841721951445895252067981873751891347830660551701540439813930141451666848148247518665595591947027151608506708984097179177617154543082719024842916635293059883766290869240757582903761965010944072637000740613428643269839625521757399252623512123659250657790687435980494753405577364545074760052531520251087147505617893219529464080538100711172115256748598273837880573791424405998576532258629588896166595093148129982250411984038357773804490539729836509988563766001612408989116980854093540263818244663806338179122643819759452748850165273276449870840550510705315328486737942730185100892325979725325219875090834349222487221053705879187124033181232051192811712466472891551500888522249144489976386954860620453028661077761665282910638537456474588034193654457482429922474680085771322066762166075352223657384580740377638059355136599405994446060522030169279649635211098577634752174104145515521527498237274438539627804648136118754057308122435925216910522974658130552493794474412408456171127463989379085194477839215470776634957806552052460769826919776408832989391016159430980786579561577814736652413641339170256441649050311328235936023119440927143099601782828269773025867651362921428169890550104077460785866261202996833553380823090345072606959353141139920539727884364917039268050924145917866173093296166389919008468270562036653334464580118834443118842493500118202735543204909694485077163602494133533656630989074445849054968015299341870034578392459189982427353629668444932016410268727086518839902078615214136207369027189573754079734096172413914394383105872242215672726558451591366015430656311303805313022575603722882142204065107213566426335297057675842953535767921742614011869544599649108627791287601895288208575699509659053495601042352261401838404968391876970271082737613694301172559532384413604041899494880612705201337371677372038075169904394221917216167758496047492615825442212438765660144852677006358221639918139004690359398434562245137976055436352463373491059219158053336036676386571050576903352886883551836745870391996502891062154985948459218477841456063119191416091242648836529662238913458211451497944709679622760322007749877036849412530205589514519073679409303735879168236540732931532332782264446853358497084134380590965902660617594011509325046956525451240459546655177315120149394044289235056518868139254949113587235184683558906576646904195423479103948804188563787687006722920405591977538277373913499356519591143849088587487842917682514359841448532432907340374055672983922655975604592539504616229812288949781406841718862723828236963421420890265285742109092709684035912784502694110199053168329521099516644990361597403727725528778756125592105176131047799004148571256418600757337871032209835246751360524303097064917486291006764189566443952673489584403508567316485385335843406939454529932197519328489987596578762437309284565428863036542744188817454442158438283492026333534740984741695014221716933867853703869037500958384534456180971552288309729198209187348593141070518630750168171272771815265157012154907965963560900224038388547639834894991584728373861723052475986724606810984574131484155547949943723441979976428372619708527184991264390790497338449728724962642620832297047343916183260725361429501916078272191794253579181959850252621710868782908975257231548291879379064889639952548586787587332819689004992375091241530357820936281065438053637050182636854676485638888819656908015408246704479653192422875603073469668233872380458068761867390974356027102701925584592250693954483565875912510350403654900235426777978685420859278994870136751020610782695170710564350870467909853472676199240044912111830808528548902324590894710806395873502842914000374038977178132178596255211676160525214705250269360831528847071138526221267041358778864234988591663017371997231541894882663598015854155500845688783326102672286627708821802033840192203883069116894017928639864461001139422030038293943414598361518036279771208737630349291028090567576824309291666945904203753087714569346175610808288954563399503522609826167268664605765114255105010506698427879774149906665013707882273345417850292123499677325231196021036117688884301511181761050175678351297277353648624967724531096085724874338554477120079530717618140983588756607043889888093702295139421003416114404574402789230536762564830478832582828916668850481426719141836768934299572298714974186749008845002537443389648508193113855516683138016120066516269417271473998871691002291299179180302632176442690294077086335365097521911871442012181521221151955645854359119674121466327706252207829663601269217805078493063847653305498295099664665802172555605366877255567593099669340487587962965629921642098611139734475926370548156337416529337537425963887918117331760906469470044559250656574841240907011848277842981483626653255092854614253708523997755894755699350646275433189060809017614345213062632711992626931425367431561850762605257526795826767539656756937835751016486104874968229326473694543111382946851299139965188649146471273498611614201325087799386114132586168130815207226297335574310377416256655818043679809671920382304609851934506626654456741116455972306894807964393217608535924098501014817526017239830816411504005497991295951526369736831129411416703140491657793548822285827969073427847777779977557516451644242598134720464631821151852693054464411827443039324232305963127829888496455418035776872358610619760030734274871690275163678921901445822551778784256564871911187389380296106478039224134185776205925855948528460569416218109925569702360232432479963349641711694323811074510238586622752557006047537424799211260897636243606843328328348719627348654612195709080188563480799687321573697616391745686925747264981480206724060274912507861878671930461062174677109948483037967279109668178123868612771348984431423451764103330847838730834208982910928673482255568476998268590145813591555882957808127493582505076117415273137926218459748245639079486852743929666922632167257637962983628888980022079058314547328285177598902975805046874377560793043404985669111734050391908349307157346488550097027455472887691850498097073297997631324881084840723598740907052226007764392502962739875350188869663164101373792692174902610313936520739042794967320291650436598585799173908819176492524835869233084181166548996802115144965025191406682080824438662934679873844662972539765971998858414861489196940175854591790586025314590021348567722258472662460778714377123207008732391594354918317530126475742837963128082865739536771810381065049558772959878648183312043531956346796848976233246127455828322336964393045976938317748230015449908610027578727592053503677455613425151697296325303993381973441899660049928647038644911425299605472939420749427849625007407061340501357637212025880989283853043603494951834084786860284078897649046145235886753393418988545698296015661257738673961292870697591802936604095990809582829679235102723146681009330257709198013165394166139458432975728379983690904872814286690690814564713759546468318247341369637270796057222378018001235133179498674882950168166130911586730427473175420341201360301950839632040930258063554200819457084267125191542391405324710460758422474130433795685121237975392845764059277656553135344188503900085469838683149018891685263095998290530040786739321612257441792567831845744060867960736679975303073016885758260358794354177680765195636242386249554355592853805023195827203743915902374175827380862520781193708805177978518570512094970449508248324722221755468695544265607279241458920439225150482454924539127176541417394196864702260954825219456435090644725121760690568612878844775963811315915198505836742661073909329721305879459067769439090040996568511985630033565547838741111304884928543598526379013553565352828664362084202443214678598637709150234959143845510359979748521503648035341585591776960353093967536051335860601029837796366662145653987949007374627423762885534383748505754063062668331515771286736645761567682217449663121057004280937759200534930949508518921766985874929822987123483901784487245533803104029823320960263618663277027792338649599810505073403302691715738008231705172864654579837392795462839299737152799401021802130990723187316285334079772951270287303231763865395526831476841906363453623682967781081892964150630360666150088967912873936970646831386617455750094293058916030551086983985092704034033012604324083840328371481474550521796910147275693202947677740069164562556310768959948949383274243203693564921248869693558906127837484508801572799703910282659638641381667672619907941966014466610745048417450496897485778254574915667006475346894943993781376877258522050448387082535424912555786606246845077167405613162945490244182978640572064481258394454949409018551600271710446309624869793296190462072190593481106606383716006012060058747709221383090307647999256354945795425241694314504182071143563505558646557497489679782694527083769170520599769085364748056668290984461893281168832969602125147619935277650530597052204416591419475736370449865588817570958044664213278371541736093505046109998670231445639098313274633863711088091471412011097763264460293674812864801607302926953805192863131870342483340694119858656370262366460416164469540390397680894010682070641447949185441466228053011525810502349135913250066311166164061529642027390059387640622703426767174146162365882906303251613351695940708450033491216613682186954311207605760801442901152383045107308361023738063465009135219877888122617133652336334923197849625280956422212292529399996940443596433162205739885938408502676413246892805377180008504500986994857420987014728976074791786780262466216069658651216203976952471774147512972090166345172618927278089600933490497867011439260423472477856189177839890108794250080066876709830855663677518910004729831245496008314128015597575498885629839328198744275642586351048427911149728761175852572227288013220030681884336726092318510405853802831038110833051886896508203924044658126879088149924127212985935229723150886161152331319267217655875817546373180985442042110453088759468892990736407690737052156127913541495463518682308620269243151490513309729142908913346503680026398949755838836843907141198594056188353437115213133937501005341307235811201637019138701027950757991959208482556763193385936091224138030874229862546589748593682549865738547877310408892706631124967908862380026095153231679871302096114028374282226097173449799873157410491486735404786320082377780289097194584374097341877449196460483396083109450605043726675914513555073660922489287379572455647573055318753240241803217347607891966716304607757201603273341511061729157323268330127423628111646233226461550874938997255156378295271087575407507016940086811589828803521863222717666133002037954200410258102541577932804829139635515226538435004003732093494029428478514152516779130622024675972903768892041967524631006292942182415706577074594915384398520939826837503123859560980076674704079776426474364806611308701932667934638844602042076718131371478638979230680344304655671700894407495963490110751809934855502806314072046922632213886048568436319670585913977313308638850207142644186853902335314051014872373363171984881533306161570552474036088201203235220180991573800675140834311165700125016071943532337331786786613364033050156350881130669885644184524849383008136123073537598910066157217316433021256711756954963651630884253199808105726000742662471508860888379586239977772950764347881451624640832848601976067510698017709090882964335668500402658772062771254030327386614971916914675178846698442755273069440277891871493346331393067976701075120335311145037390286510096893046141789198910836726628207204415129948926019648608716114404800770473742194478959879069508988043975476979463836486294581074964583393933115878557656782407176772041700197728894676398239228429787502621903444642072439003995010700809260523507443853356079158029721872707725954611308145088682096379594070441160161599050262710182726080687659580443300206843764916221197735208349912317662318074512413650468840962642737444628418782234318695398720998775390635601048631346894549528163014151334229143835119243852597841904339876207320742279546778241349672965099147938000858711811593466516359846253850069147165021243017415471141895582530569917774881874399256373542967754454412923506613177742533681127965973569205714477611432419873149572201238321382775745066728553514750730785104980843599405440268125191512062235979462027849452672968695915160451944379855388023085141379383870996887050275725124199734874522419256898474095219908763080339210078606477814008814620920392311447791385186191783430747888500876683874865866714924674429318883661101457478736313895717197984996616672572441281009467521035658862029900990838287636454752604078274339784695328298239418299033549268195141122660553923840523051127096380969068368363485987173003063346403937405298730506185740625286030907150606224172532777471810831056141629685513946130325281545907157239145535332916271682572689844271568331851634766572419729322250117268123738107722234591574250868239475436690073443474193525197972701547699337071977002345691217800954113919656458993347366382935206395461407160956362774012020103900973892681481672293139546287375767107880538341625365484392659115070706059445411719630404053938601785693796443123698158621693416646840894695298790826443531690323879140702650890285645617865655347889314659483413427485418889356500615089352008704084052733033776252746395871718955692424768059541544250720666686793593582945902682739403883070425077430345290409046081913287956624669120472814417930283980661875433367248545953918540714227436124773363302515037551203337311779558586406843584499912565142216458221645023332134569270498343285477531333350543725005797342496025880674623471702821287757190642919673389260808623562276684257444210434918462098563072937763885358572692869256586695594411008840682509588018092030392127443120562212717131013195442677822383546344376633751369121308621565432381764074081711423670587989609394313307934563373275553109387770305272851553197719296232927799041623247178849833555005159032461498238845999829047209524567492911172756641397284669531469853486181876304142622935474688635538495679106414593724493897194358415691733362647917982888557716747235871583406243278825118807239762304466326482522134858156829197021774023755684460614173542116502829711111401089564476693078082836933300725869702100811067680048668771823797797537292026856968159925889534642549219712259248829838197977752412363335446407691751296510312375520692283278411258822316413501203463198251023463813093508933973665869865429033477461138564986555174110188287609298139554253449797157270127041256341579012609877569793802523510605752370000449501375077309982892114099315391695806478295801648563819547169795456923736351074189745591427160591622075738176436519831393861160228097595278326147290166842594826623493217935359452985855212691908740995181203429395158457765236868877965916707274648556931896107403394391683512466066935594239927358429737639555096884970062084542749267058571909985704053467798180161264034033177190012568382146025601234933461551107563523101069936799093298818073210401788004653438733267574819867627663554181760888196126135076827853923483325749616937870938351299658258199275143323268635692431590910837355180947875447587442246494899533517449433368804424280409515234850324089429198976798772225962346975367588129502010746197210068618100600680092173789772076299417806004924068090587786802381125026921062874517114749108026764424780361910511824392431902284191041463079947886916364326577942739831079220254638782284260624067950860881013519131614619661996568623819510025037609579249956127440875324758487418411992216021840426349657361938757202724493631497098036316250550639368582345668138227767712752178741533316569928506561421618861233274080078926060797653900482522842052487515532823060807430784527748343487931001842902275083308101672897139149309724787484785652563057098194542201785613739793697305455462263031744005821156851600392553417677206590512530046074040904391702088987842286424486053204357592047396213187694484249883038198796898040884076118536745311217488224659533992486259710718164199455469267125616179329337051540723980699821268688041525731228229862045673222909080997139995905561456136080629176471651262214503249494917963473947144463268391409338001257981606668031332394712988145171797472598150494293423734318334029829228435321375698099626465693578323761771787446561145578805678306251436572532555324302179930723611922819830977127198851727379775721203001201006481921364524006999981546361464966297093953730949495762112909402247396847783556969901425177655395423155112389877075486675478617180911162188305450669243107240757477429924312654191696235372232652089300359246338793563149897758045101652031602886265010601374103582984143379929433013006930505701014656861774756323937704714207121150430365485025890897006391397348902229510080429046604175832889730801690677803334267339443204491746482090237176239728399502008669957246349804042005518748986286249756397667633080083476943581282008253471506061837585648754242659450606432639515367960982328332889055916580813399550750297554035910099592184737222732375016502679389965812968615464558125231811482691469625608897956924501585200101663082540105978990486165423082753425127954329902950363221482831933570946073696401909191142870716150329604053582629844986785950428443502352815589373098639432494582846676032502415310659949261679933693400761203429492995261378402328092218164155901025891703717771763864317224038717996008808180982044372241941641246925228519089142466255201803223453949978032042707418830340024023015692509872081543050879282497993470514343005498186295771601792226646835276420817340159033566849858757141578515624515113543809656097743085884713394637252974121718648487608123354728771313231732600510533130305173971374297941832930535425192402830860734002399010519510881822191865432552910899674444821437836882848297053382770022656384310422550101122681780113393713555474187707020117474498872994004363495689152892811856370859236823763401307204559234597144226917695192235640917794013365762279167769942563875069619767620579952130515032338440081035712561523805722720605288299016227683098974798804252257307094899381805719743164627430054851279067360676358771262064062205457244519513747693690155393474489073210695659144508171789506284640339909666496440557325303871637703517006881045252424418174080081945250811486029013382194709040518423264853812072458744232739395859955130330363117652735365480573424173693119696919599064823612202700837385823011643808586371021538625204992703599712361904984106076642404373812186255887041302166711913051974787110265167872831435666988418663368465851224282756999728199557281173585476334497201823980392505929142387276967500112547146196571714597010641124665450471064037380127465064994797785345383720724391337331351065284625494901828920194313258646803954941707136495957371462469217681079566156439680976948690218833240274583053073074322697289332362439840226083332954179542122040509197972350114589933205247549190995417718421648641118355351480509394414069293396849594814117995523521639253627429000303252216180162822714081774586598700534761109444305944260454374578586410673040421972574975399367498276206738460271313011591733295986315917739742363031043095311224218223076900491916197576126280491391690662403419482473393258622561534938109270015406024751474181188119892309125971843102571984466305466075521589148259334175161002215659136745976806752128428546389258976898423472003277442441201928350964279669777053178392577533822967286047954210095617613787710943745837973040867991011354174175554161121276861840881974933684028627023437879627352632305836201414692478759469652161012101403325563625049540787747784839032863133060358578262286884676161189163033835742322948489451236888046766542986930322274534556072237971509701007165301240693614669380984610649282253282626202533584264774825558213595398334037782317620436739430624877356339012648353021941786654064688810508866152592187355493267201692118855745525936161462698099035596346011654860659173893053540465816172051967218702639948614482280414840156603950973944973429142726581379738709239297669366957030378486650702109340421552352853587510691095619175962231511530470164798255935302385501590084052492646725971482567195114545775464302502210278100042377592847548551205093796618140484828877480944337360673198673467524256136272796833862392104395782109359921265755935008052596322599689735843526165159283225225128236133030355881137292357482889714303610749478303592195527193891195370089502942922694590737219595424473065281201496590115298281723374397081342504257424733617284339153454990372651700904615920311263280026020467532007188717113800819796575132286020119816520511761389482105510251920184762003562368782789823515924182929701936631105253004450741222947851323544515356609439497459024271297740097467721904531609962499986058367388703465997951169584314260516022664499428186925043633507236626286830936840963435635151994758013357950029805531826473312772815678756770575329988770364576171973290097447941995188472494758911854244429789285950706328635979257282396693457254281699884993671362526827292991975814504904558498798061711895710137686192304693667894714062478206008278710823406644734511942131556606905887628402627896143544119815879799033134210942449493697795660803919646836000695490922744535477471728462696626747228808626637101180555425708380383647839588451793515366000187436434137401319771488237345468532796483975806499859179087291537640558597509516646187617829938548564127955930923159362748610982478482415031342646377491042996695911973322894956629515918522318864829119327330040321867764432035448132812592772549443144806982241046450591714062282219551342205394737720117776492080432950448406604494259903342924537729874104255967650393816202414027844411493678673557082119734256073717211636734605592585254288593706707604735672732226993812227320490726314874810772998737041259169092594677844761080419688795233280005412153207384454648849373436691342237736396885542496180107898110086118895397427488400984759964188939908901949654175588138151946485988178369381369399913391819196546815111014512470719544068242664402021117783043254245454716173942545492397690328759407534773154501554040944448150712996223676241919948930607570648112507610672175206800209535803494370519148609652466044390194846271036270036773610035056435594550756236665554527784841668326288449852381539556218599648235019798828885329079434896720454747795636463946167483732716394284767207781150455527400128037891281184036314373635731716690441203746619192340363031113074868840083110421429868482934002755744733722859983958982086622749591154066744449662549621967329885525541169589530733932306803576464416833557541222052363087351330201948591299300662041931308874859819421596565367916847198188505484748863021577273781289904330836115096763634897777980328019652892950626362906290960291314957589313320677443729417374774229456650612204254153141772163907792794530343723010819996326560351440102137227533719392228564482200705636420276228414311479647777491628705444555070961695896680436380634979396995618440347685108228332670358109047544551065373011548379329783438134208607515380528370619193019096233915988975552895047010258802783785260349458448293690516888424997697637820976996775979429063351012387142202933093754590170846175482506043591396079879227598817866966680576238005591934247073057677882717771767880913479794903637952506601462305661828134805066438548645967494608115331838951346543475113215567424911899866261841380319076772198316910984117863855304094812965525034861100381096786238144307541729541941573187530959631802853993758037979727957321033709285678827791620916355902723008514794067481857829064728545186381311560053665947980223793968920337073761687125494965012646360919053555978763716034367855530496738079200543884593438856842294008649135267167939136343394941496505446509535052097042150154562128296332343413537099650878664359809951118112390418874506161523097679829738066009048699479266278324479548834052213986617544057502645557610987115522841396206186763153000244098589899126503246828381062596417951257266285969546573819144050767523431383313198157932600500621996017350929230464740365424189437885836966538705394982261411821480582701629266503879781821473482956348770488420836170047272780717566823214465058432657968436099732889114842879542162639676906570295926488424488358920562365571100372552352734854329230389470830220895227971346994329127177187759835894277043236157665950856186696502114252679628903080440651084294174962032078858791703531223115905507066956911091302934186778114581238912408236776288211117838091620155409316916139921703252765097100225648634886127472287354115979864283593496576955181569314519642798218273316200660439673538784227028258910332079655822722842653347068240039178378691468051635313108323482937487434899686475582923222227639570443775045125668221197688422902981076748238013183570636588791468851881760735443483918659706036408482069603173175942003286008481664691526940115260381603375347083812245333787040076902878436710360870003753585922950575384135105756874420215120218048994921802315676271613638956036804903412305509303592108463789356955390515775718923506933927889516353876520082492503325952629994129367650834681730412256089603869659124180234232061198614548225525744510877206329516812603658789013580722484207263659592247802086469725745626153242892162227312498026049700180110711073147113448152138053442273175325858551449605810729342654043162668289476712121588279341439250276338636832434790063000816323627175331302453802939738468337899062130028862279782474194588591422129046486501550971151036343247412773967321019824352055633037548575471345798654620123853396396724146791641785656598162933649653945752512157208733603689225339840823815439105508989473984355027776534898269508214800098277671211862145839121453606177723531976307629735023295611600744597236645301657071138682587165276753213109444361393893533352135164447208409371404921570033798601446192214894159081314862206978786793075317989639612462189262693529629181658830247818246618864678928811087617494804375737163571308042344441280715830945337952419370721475159668421329046759506124276832731869523029610482684756218275154422260072765560640058862960218392881339352093542515780062411772431424996315385275199072669794091373759872362812226481946733647217506627119804935859247838689885509667166417806535284482124968337755716361397029172992448768905623059725671645575067159832259444089881793440845426545654323079262311380232889756182587765401425220045008113744416178628710575338155010985665501449757074519812929972302225425051103062600265235719621397524768679602194268786128040144179434393401016952883622426604037427654524441926075061584448825677535007287305061412151968206917805120657842219342948530749443251518171566062067167124211375742591449038373978968417976523092003978401741847008190205905831792003730346995785266873928156581513009237336528868134795681020338194220697072252446276553336303381661837805625704059738075462102885820695735807851491023080781628122469576532038008364518974487040922178029862319856467149306502934555773790748570899071092583110498580410045840362547840071042470266586567453225535092434876656346033778526298309683413432534061662411355104484337898920874205070543036913398082385038609283292930458433219340509135530345562997272892704987165449780624588156491195413138362481551849469828688255399906345905494698026158162637062818734600274527000836828237283514367003703829757388934496963534996447634220238199190589150151078612697062166331471918221269956753578887299201270603352659158770342416225129128253615423558844136277979852629750587060575699833795066113894468557372698598904798639911748563709899966210357396368713842047255322124387433534926963111140159660329321332548001934298886760257726990562785171485209243153584271747418082742141847773686748623662702136706895051155637845776798326779270525107988751346220056890795429723902719995052586076205855955961664525777585323554995648365804381016058975042591377486260281918278363428418528122935943176692394322458486698688351760511139929058771780073753534875881384887873076971679647316693224663147299200003448972804263325733532258799215557765980695150915014153929694564789651200250471731887772159831790878211126122715578166568346027748889897654616633063114287965840972851888696599475230620807802007853679753541123901299668323841616458411181043439089370326921406307862291845361227492867381175339875268798604521919007199276450813447458997733165257257095902427408964453891499310747218896149742575750750835947588324116612358023133442142455768509316564240561353009712362080002732651839906934310973715966263091409715031869318958695206520260451063316818215585965613083649321753375168336283796522651251810529293161574563590717556507719575279313180530019913433586235334981623125232127213872956582243623668642154966487495030189322685811768130251275022113585024690507599050808090157285802601346926086380261664163901551244944557998645507138746242331375963213170174050431053369060703070377422101598402604325166728599244878299757395455191204330843173333762374986261919984049447247125439135642888710535009901624801727589038875061335427157631365480846850772396744734424833802215058227978035160987661866922816111282650366358771900394890305568248438228692817160583543229364765851066198647328016147097818226957264855179187632584087089365388938879107297747384875543503695783913728804978605085161075622470694225793857464265891146500297943119417520710909027678622598761625714814574403836882400920346525030228331116209149172519071546389189232724827662129780381805668309582516919217522018168657043925856016716441456676488248783121070007523672410513926593885915485732891355031443127628599245889840767191455274770592915694107196890347896331608742171963459353131316619656302725292345384360029492094998614819201793095263643127982473390507373345408851625492691332758430526471307346580290784502630787094534931401396369369410260873842151805331959556047157380046693101015288845525470782390719281544828198586273552733440050624728480916108281356780491211738570162304489021950246884358931218912406581049182322535651291535838473693649508472546525653783164709203344639992728557536421063146743497844920389386108523681072729153136891410865892204253900467454272712499954330587204523011148921838093762470734468928618199162618942479935910531703994619115603591390700090769855540950399301616512396550984177096406787583678422543567826063869057933684505819195639263981590729573975092389816928411770185455332146065773077892593828481980345116118363073203981103099855478917607913717472715005457087428569924071546138871688528498411184069022658599700331595509141206875410642938724787082894954008122795788168034082017520787091793745227381123089030037051185034475728270123700267766941205514291899985678201197636235389092936718158628237278587542139729538225582220757979415975417402693070427054777629191926888156174140758337888401505133295910498856002074235079387655938816327642299224413254913293087698670044297249135236384583827084023627247263217622297791530217958434040683929398856897265635755377887795557498947669453326815488974663747667085675208794510208211073229459875259537266839569409617486135388731369518463323762640635338757770179956233831055561905082911513181567953147439549453651702584203521500372427167200439600658039119453377681230065968612834092890915887069705913946122830220576753103992262966403744663120221817295219364519140641849959131035493180378174166228091051090987426916047885020493933856543079494290009628885956938358615925051512329014567892511358255603308332379289686331467454530171107317478407273401619698459643303975863915013198461346403078244202705466961744643892365178745405561013655275583901143536589118027355218857305187130363628527496274390333053973013402148743223562414310754460679111447294407459551235981398658577353744759741040382762920738953707316294182293935035516693624869611262106345239811763893803546408135955833897717234138719541384758763764462173297706451345338558906916858959870825142037086608328953009377428255598590304094004076490878748453935561788281070050458430745764894450792456127895049016060719821647440594240170347348375422316818328563904814710792085182545323841737155517011169299599094304198432268765022946380044181642050365513133474520757301177583625873729604371808629816240462940902501673923789141648678810218631096514700227109666390836050765853111403513840533292764915159254309863185715259622293678172919948996005272224992850016000671469396247804836147822582013353705914630768586162387548680726299812356092822873385713448174141516013019813072008315252306519537680813011467818876976779096951445104368707140151626849698206425296417302883019830660499388901880914003639375312115144028687637483867141892780790469147876590724952320863352818550485368806427616738636599678783233824087727419983606521177627417968201637407122160336395974300203337603932881057409386977540806338189877303354576290416827326704701292664961621262618755844826921387656126674167098924582458469864352788295530937977955806703599032338180085235014366627637809028406146622263426204453241676671841839226696300186359876510379240873436780323720210674384062755710339888366698297833328355942173177654454718339402624901440777717806744177231411107538325115533490841011288720211822134803188605669155496122358346627746891090610430764415169433078508529300350900746742487993637690261519169494032275184176026102816833026987791546791886546576262329412937088329880780155548131600147178250219184293041415467273113100064056526822471468233325807090376176880944691381219031489019950360244440952108802042181286536437410792808186250926624548570610893133967702988572886466796576576416446634283546843673512806725858586286384354484553933818539470193043830258641219425941017236847516805658353612871118846846321426058492269921451052573728792371758333609315607307396016987648876878681658658369502595258273606194652548170432998396286983569092011709711706002190600753431347080664304694234996538900348963888261011211645298383390577694516142481676305028538477911068620142724086435417986693289346170773542427962195023460751240315077412677458926159978034745804462634942916709723495388533089056018526721745870607872598179882404230374036095236575874652933251355801309620556696506635147154860772508127802964508162994759170828105969045153225179050040234284360222874227186744535478942669519918700471103406945678654697618283016116076547594387380520717889556896030477004326566821535815709198029891372288627704172931205834735730906361492848012188469757879248390302020650937761320888964219765564686831448542471688016215768751929224757012645439286682939950994503341065480027131063339188706277898916789421468549281546890482244758503743713830893407190053465452666351362956073752780807364400600646638145199578021465855720212499099550051128921890832683862486927602790833062262467000328169839113383805907075402757587940791451697660057959080161836683058755020610667308407678792795274620348188239645513065236996452266910288354955970185245857844972706540853003307241304495321948357383289374666541543556145587537446127588104641219900673080488383524709659643355825642329390636307805196941739748101240966563794650740931026587705583395535294823375645181900224418503483913863476440929764072815023537168755032708826946611941374449966454380299210940141782385632251640595265773668146215585391478824064620032891064898158656554357974238127911799211089261122897628490595562960730692087778024366234763121162728127398893722440470112828305004168510324531450716168069456915966319198724810802468001330227867050832209458424620195037974989814566115777057500473434746631909875802289673981716821688826853986032650441999902929826887776147937947780717614384676808705402000776654622093862347611990960274934789607789274628476765566944121286735420059769371948357873937086037626426149905117298691822978247641319326236202203869574939776882583723406261789346762937127278211308090386557207229817571031060014329459640514326179501782377958645856575079264855606922361941570090108669406981760314111292527602632454088204594472456419352242842486532213907146110423320390983685434502657803149448244663364918003810788588966988784630394396819638692953475010962708927559394299323347041050755136492593068389453533394307019261007272811126173414920968871231100682175758641032316648613362202969827373067784115912992333735075942023338455012145346183217348341778195539552594541495735564911816178975682941957929411077147254422073314240149415251909189443905177385972381213891690810312643625185283637353071072686925829235324379954087165492491882207763576779397655783019910699716099783270942932313353965258763187522571389435845918038676493210799882026347844453603051433291697279209397762131468520873140804853347405293956036448027531134386634944178980959039917710286927834888052241007465333278457031955752281005346871001116586145881514613394750463635334726424838862719168651325863427729076117030105459445865559922485214952296775020452620168084997620945290163809673234330523137196356813391382992483290981276597691109477476031701891117116061661341389992922633612593382565591830846331586503427563202068153737570324420631441141580205089865733460377608502987765292054625514823336590885816310097599694193683607661568947939366063063778612710778512147528440843147361259299950415513666158602811496447372798683836316426436935039876886266319275374852929021191665168494078570270739109780658796805435672232695493597441415344837739466895955774044195496789078190304974792389288048400762732089012078345068111604006990482529237448674386750715440857899942130752423781039824494131921041657153202734609459574817790663441447352846156683170409421424581960568480433536469815049247117460377766555820420016107389006977047794993228472323697339800226180632541835986371204404030230872235494490330116246553170484361242094180749774604379727099506529926127131200979182208401621821805396681708294419627660532191951721909113398318010874075605042088464101060229010673446254493183985022438812177541819097760079285445755229278669325857949784799340087698189940958962061931708692018052213934671816350621908677082441897796285201427754040245809765708758805633073979851282190148506573218274640753010770223254168223886381090563295572363816238246546223676430983331008062835817993135465804236976201036371340813562010927967087831715199254953936259870865477792565992073538512107306891178285700965434376686135247574165768876725415343438745600854604194335650727415361973430267679055773951007506204016442746333175992921159425245886596388048764262380238249518091249961245405394737402980093917143327832398451651023070068941755649076343062913014337923877474876986756988438818783400377371984279588406765985875570364305979344587914741553274956621928042068609923854330703873370996821215397957338523382287188444442642019087932868454623976934950117111768843943287302701013913576622190156607831692772618535475095043254286721702295853028313529830547024685769213105046540044371442343886978683072645795432558098004057995895370256898152190265236842631795282115667334656524762019410973717407121045196837615729731855493381744538772886951474767618137739929641655262786859452308263005227686883238522122254593604450803157659969599848420439572481859363001876156028729532477184186956351577459054557303992452439261577730326179104251747376741453892475325656512432772377180336103031798883720236091349904033763485265958753482485434785531586031062032249207068193910908962619728509105722423620860259252934898697161229239250195477073970782226406008964481895447894866778755622497824547182628808082994291169499064550726836558585038589421510070321303471183987436072564773224557396888317389180346795405015255395717924151184895162180148815576928584848094848640198942557674238346023149804228887099186809608045457685431279999689178476581387706192769154109946701747770812038720044975641353604396152659683482981953209779764930046912575531268159504449951923836406130317748379591874847695268632046345717954836198374662889952864823145453509532757323525710749576187758768122762191342099574935233431522926463097562292563387420254452874144771957318884841158736517857626507090339552721524173717831437760923038735758738077636559854347620587803140283439779381141675915520643131468986728374094154507861894356107982130231459935649214323053822295311071995125842124716966849052349341173893225424698834956694281033142561424233129581384527177849984975280873608826653892057056267786679529008122092702147006856601438499117640419016676447166472064618226620041863268915641447470616970630940755501592278528336971117584857064783620550276074155126030127654209527834038707111561513178104836583983768543947086593414728293139394253583985985024204220866228149803760677435041219312051562962163499629771897631738604651085134184072902212921389254994911187246864180377863022039231544494406469554558134463746480905452426605763886160583165680714141938810732569557889708763159950094729393594015277857756665718845381726947009181654697958353617084828528081107896203340005913725189641558639123561764575228873715989351340217807173324420654559019289406478247406702165206593086040385642515980737206827174247068519376412145340384345189221952334454861771992234400953914878573864845654129730104678681673488749637059145515384840903046747680851851741946020953483941007474378225838718392795449550713650471745139842811586275417451578191237666289203491644250436960968213425904833614935043376454824975280383198522921711165641760093284814736753371177750425721299817945680340332877000496529560001536567856998295825011135158056648782294762881141328316733319458694370730330771206775698019718812314334109341729566125784652394440792276046585096512720799593319502975171005027902052395924485316430409053402809491934172617916752920676461044477904303710830870676188702577016861292055069667715284714467233756977732219169033105832875919160006115155528055046012594127810962851740258742542437466965870646579258751298142786654799513429952829785544910918988961802246166807923569513025558397061440665656788732663756078988167436207778453652901419763618297543535255067630981380711763257998946105619025486887690697448583948571548690068782666981839496459910469284124015095135932915490542035321184411064383870178377708218720954278685275412232216704689288177321945476629537832998273730903147408711338841522704659630634327233564875595924926857371124063941569233609633222056983737286710649753769082733813838045582071258612287512665826908632850185116788857211394780056492114184737989298083056580073693994897634485627263501308530473132767224545277069315665248073836790648320474020705042837957185451699231490908775384135431523332942870851368117183224660116892065568992725654998108896304914650998533901067175610657385107104471018883103182363068192871539824304317074363452589390271294492503329086550215948811247040517006999424453286582922541641002803499200487232699157519389462781711882576759524425934181224024606391360277666841788775895269997476424923093756729330243524212744894031208266192746334937541517258981528584956218161332216350833140501574999353616455192711699205409111818765848184820387533822187858221116804011241735031328093709520987485700168926747742632339645755713871692513885842313339863709371873212818511748208785786383941805376435762993785123967225971884806786648427719175813697805336966609329355987052892504976584035244790541448707150444584944985540806174807276944177094373711861499698819476895270947059730000001245858263751649641994842294908265285346746527238051645262770586165591835438629414700344874673866532979996899959628546036028942060115471443267962420910669224432035244984609304475757097929898880125612200422018392098422914446590598094632035829823767669122094608263848559951458793323351801655597980556949349566489636527778480320691654110997418411533915287810851219719232204236928724250857213209005522729203018209024155007043188070167042019119086165306591640919166594574326140260993311551605169266564559451100930659216625370475614886184431121258255938597726229203999798989432733578454705002887099347508907961108386015790829360725306820232583577476053724133584377465720311396530838133707930205724027036027921159267354528282601537180991701730379165608358989279889295923369168894969547869812194781713173752593663288945683867210302354001073378137317626319879060629815982547041994490369181251131355269418113312587304135786951405243628530121540471820457394331085648067315593067884547887586918481609617874183064812833412837929261936306018659179850988756778714112434975611261167269511358587527362249627508440449262264975857922957986566483192609867319917672986433423009487377016953443204208752365521694407741474368288997010713315399986535743000868238982658549151384503179242825562010378400984077402983175335021270115559858721363180425387375264945954677629334494180913511318437414202097209384669135890228820917700640062999727431379893287385507849593576144501522743872517923461926090832998221898995754436031575308910646674017469758653138244419471492097611143612900511905379819386444127791077470179214745690404779013112494224155701243010427736348815205368232407416082265606374129215558242278112453974354616953450549071546749758518808380543478600837221843273533485800417760322451614863561312915228892462262392272726096733532930960673470644359554269255898755769851771106723573444756825211168697073666959761727712578828549463475268721823899393498903301099923615763226957565111510414825041672403087751634519214716101864160585157625516543925933907964070590017201619613786357580231591341285597886053881641351569783665076728643225962737235684153362410457516557212077548227611166771574267639880193484041463309564769677796480428910536900343486217393761067128185064163782525266997659255543090538394332518835820988203130393290102771442611158522411157199629129910342397183948295628143916102471054360789463330810388367867094036841940482478106737609027774836564113774163439850136675628167702815492241236175587304691100218963586754860645522452384958267713088009430244698962540128303325917569918515546969730286593119764828808133994725671554951891256592978160012786800011707831953074146638962038491210160335056300467263022296206918190920062830270574447647282152628479333693535888493551180452467496547939517396417889904176602440699364415153444037157522334293216068189312933108899684669196902618439542558491164156137992225859298506771255421281991414609297602716311568408000942686097927471661969495443400322404851442225632779303406421200327669547991525424316020327915397702655711334055191981513406736501236206910599094582267190274634279444270200548374832663885028772754445620855780688756097454945519177740265136650566621584044771223208282069664633291089695639376027096682512998027714710730518717181972806318934359058455403049302669634808996707192938731198421246024274148366250458486946250702774981014314429158501185065655534053836095110796136983843322118589282921801824990290832488237694862106388966561540156824368228748300028335449605446365461151516308078234130447698571184157780128491733265414565004126931832660734784612910209975493127888096553230515290180062713470762895623013703320327251615258474472136705814311623886273530922589215844424651092068891999234231394172075342419830240055511852210254543066996810865270421071904863948113803063953532234994792603946813955330018489434957008125380422110942436859257437681699767212766084982363286709398372224144157834103237730510162585230689287442449318960232168656437228395652053178587559055925499375073881489922858264675424692645421080655192920363979950561547206784709342451563680398920656661291768085603608795846238045767509533942743735486665665364803700759437499011813721983538202838924945945053021230896595949113860334291173206090317413638267704697320450586727523118362706776740892213842119697377430592556550389198983426354852008591928667818953779905430148320896180693853515489493380092192660414062048235021282753654259609302813411729170061323176741639660702563425114503868614298431528311969507813037523431435570470025893211573392324830851645254180084273686541700508406209939712974046889928192525177288785633888211358652120786507538893445607722446598549429671394229523700296907196011735783091245343085927192051961576014269667985217592376344344549753816090557175799331247994968208285756536870117515512241254531401332443020849597182479987619331272974304828885449042172800268199472613352602799087434661335259552519385017234015608950527289339645549099942146981657015765898420623586494684150525191278040585566331797024631987751116050147209317532288883114795812680266055722341088718327758470397822513757342037179660831829749355008547943226715036534384222731239754760939079724729151175148027220505474321393393127248084896066704057277454805009441489277980732446022761925487408235266602022532258615831833279144036362558541774583179866705700465199016103799275081664652239910255741098600570988270316943276421991158287404044385609517376227939333955289558959079320306046121662338222024784468763842514288468061155101046954313738959536544479030501299093061189084258536511034449254079887162567832248760403375188790542107115429921746734065994774583315882045629162878314099713396122998834821534133264020589083964804620077254119776424783183608499288684508928451340656509067150888059566249093078922579527840069468934051389470011493538660755216364940655778318309977164149703259465707356777354881435884515442846859592681080464430418862803982722083029637091083185464527491742119049569357911713223433893671527220266079139397499840871484268915656381041220713541464111879690941958195763141399528700162155047686898231379881019699313399956100109413197683302601049400938674367651997187161147135468738064985989720744202041411277814373575761931144642980653641336958877792459550642861354290284605415744199301620909846112101787679745604817577114074629795914969099604159974912848792053740720775139248970728615931754023929176822306073287492442087966334914943743370011970892785164429167952369172698261040217057643768954633265146512404584589429008182478755583960898815409522954444778991726483742824993062292566422439956193372611544358257231606918809178479047526469856767032961115690120207540447731123111113951526240434743182715666543686140553701947067888422436254419276393113846706395208876024869431354144149502579406977114657353985699789278864901002169283103181744546498350388884216413506709643083199389281916024392823452766780991309580644630899108233910133992985295426972366268980678431373144705784736215452418869464026904717038609802661653099768716987012891472907223204198046037867581044509195672975993285997150395938639478496256416783655422931545022590372595995349538672953156256810335209458201262656140258535680585588541930650189070755120697782740628940318584221982647578432886910208482618812765895281037802152768984782751719550366243417782185414467853657824708850406166710534934348732207696856865221386294438623326396148159949472736465619179157473050780443342822009787407756706785444819084502264318409161994578579669084257253739408239245536704710757313764785908631729627474798528050559145408524798179288901585530728186482474702832991394079748994022036950605454514480919655752014983608639416089736744814664178285681925260975089937041562475285667427345094469495840657335660697491739923640911776413700119362306993894735951423668569258957334364674750719017091542819674906891190462511845360512144090549813864724234555361093622842883996980010160722459766750664019931479506517869852147236314898394208428983139349505889748994575447726481848138734363286874403029134667325915219765688485673742920251739586176657296766858292149992025861920240779051437453344631243639492528559192723608379219197544047483374822649382552873495931154441015342477063044916327350097992975890638879511902210835971417723740387215566180743155433371285644001461982685354729018020361792232699560886294335308906821464545046868589579621081475230771168214211646881622666495387391544213372446259381754860854512844951355696164916056015101641887093975171300139434715105698381631269792153035173344449555915693577783978726685674528027019269860017140364605001868901920722857741692754308292700176720511080053413911685513360190922156472373614534810774217694623297618384345353846067493946724875998500355278960099535083235773286768788201666952875415801798531454126883006835717377549049039384177019549732452543946376266107711008016670472704290296275109049327256721602441870017289949317161565749838758735933507100905863650724469382763120286380430139172922826438378417355526818840531672400211480558898087425336608103946380700602202779143371844519443354112348705787048451490581588625065764688269829144515985839602747918404854706035331516455501532382613685405849466003357599477667799434615807374598718592511567823572719706259942569260123175514681472428867966988241823415062869348730489231001111904209802458168794801247720188995029413589061357437408858625048218184146532816453186310543294272570675780511934025470662991256800489126515784537476698741720745737069080783582974585493182464971299503868416311492325945300868353907748883444466066571229112499341423079055463972533365839566870891722413691801692114128927239150608122577387448347139135007896431606611615629453072625030263688469512995116563639994920376680535952102110404229069807189765758324614138668742576790437695882553953515240143498516795900998423505307470941939889855358691553077239769739343950266675711231478744259549877695582662408158978828088921511662910430614412940203101643626194483540944122154954945919082888404395034929605160234587547582063112248134910718587877104154123602044267922741072505344961095964122768749068365683377215096026934963320065108851073139242339339160913114868786768330296806398336860864377846502734371567112920053711376111397291437913063539660940099246600455536424350968509832858362636908718154874716260468200303902880529155636691246376415364054645168795433624549445321011802428421548386673528076858166606399065021928062983946446077749823160616804974522508036622814578212498345716745193576849763813600918491773076046873901568670357746781291403021273993830563176674415585744092067780333483072030580980186469965089513014604017324571452451292631340157190950989156221581375892819139758203583716313075386253719560479463391999915817279525224467381105482464975277080018516800110235139483874699011605185644348831508328015301167302368398204960196682101930686103832567749417838342003767797585414302394810335964233923933785211240705997473159724212942446542203116575758681724758301535975047686056218450035460572760289047277251727152936603005302150680700917775425007755721950479962352835050140905939940477445127211393462514685440552297125078973510924093932034972016106109806127426667510714976962736118842015328772402850509083284798274489686589655219122774490740557684820711362852738441481347317640911001071061185389444845027060939560860655704197449521723074426083959037622459636536903204631232621901238048250831412365139092922637999497526328238537824502918985402698715323238857742446974297267604782175377561646087285163806444121381857403217571123164362964928851635284377141587293612387054668437090332283784262056877607339992933317004567541764156139791023201625776481797890403849436034058872027693891686838218800204906148402617505182312235477536574553822655995505161156781585788458668156948136922890482324235645625106350591419309809748923445740832891013114919285287517253487221539700779995205447171479269940085460279761664696626163876991384022474833607981413279517478077055648518119667520437486131317411071005589697651630892202416341722729638535132003252927622100791632870917260343178550959246343798762771011665050269137558440210406210860222050132386974600855979538728531063275906171243577166657762794375895827191349719495569010721450140606779441873131567956557321876880653051102092527100913647248537473424093369972736202911620667474546840342266029086419709419537521814354341099706931989148095033201343263312977666545904990206979945430435874701031714547800703658796954714567805450311599807537040729880611732058800547107060005188995244030603410791692202014412199955366622157327611847976086111157409003366232770746659426340304900531884790699553440257148458754587891647764742961316685843280204849850509426003533408592619239218712081251441190094589310961749328874010533694244193244240292486315254026376901847924185288217112357817473539847605437276597201221977514975347141481041799367357581164322434146291199135789662370913396264249739248345938699972595047737495805203734222758494727465504966398818777399009316186709939141016671760870801192248116653308094737051027028948677659952803522482920559083954750585319622611744591545070740514555819564633740031118765185651296062279686187302558041368170953426845667166100540965325698392973725230630642029820296342245829423183168477595854306413603919269609672087811145771336548759247105618429446174375552048978001305400087578740055937297802951722437336509648705552995926100498743616102537229475677728840565523115012265651777779812516294164894592004501435111324763309339896031018263285874470532177425101131805684014998366005383099549621367927719775797886211014626626638000913148283207910770365535113821107713515527625330809076223527910360428198065066577526283332012181868303012471224545432805720093161046090551646027194405051735267345823250895666078420701289480072590790820231656211115459234904643158036793050906741170834696474510727444908005923929907777337943951977495090914161988546383898091169552948280681039580246472168773534220270218604689371882642007783089376704998853956744382846085047464993243241583487996319709266307816058080929167108910758868014254193257052853150642815694846463423693431996326270308536386282963346469735532496729611576374678777730609941975144193982370993340425793088604204611973978699587139712754372803299621435219001377952765740024612822932014701463108150955718438781055100913438434079862245199058962765278318512407047536994942921344233053599733990187079907819783346984907966554727564736571512505903018565583242440241840071499914979346500990674311347236266628892571493226286354840931203165456132809233173086413552778042180159521808769261257534302896229448042351936295965420655810210014784060305258412530220079827900951580996605494400938792028950998796415261602641882339837887023287781510054592176005607284100725266141522016289287141098259686611278998114972726079253302682731233406653300489804000010875038147232132355620601114424517187230257166668766843349595083980945871602449221457195810442298691740334140494680271186771350694919325386439609203141691762488313453822886103853229832079400217690441976486509391473532403370830824040272542956140882359225890690843774948354392257302375476348989382092564229554754097006390727094990801515922287136584485306164471721198804137261470695785192412705662248557476400633887524619368915107583030950444734217317048610857473632081826519260104981102081100806236377772125082190953692489415512847660025230583549384574775577181693392537886962093607794490950573641627976334163449657367080895173459391177734706011532602892113057685282681704147727800886699854275044557084899817788490539304839727760347299497865848442469824552448280614091749259367780725686591187288553367818768973864263561125582103437546007223240410418264104233493328973369444315617945111777108368149433353084600691454517832704626302803120590777064612907844769156351166585413566170887490987550162610763150574366699906122810845283616108035317253383367847515489027530120559446012326594155107742011612018970138644958893179977477229017948863113957962635953065181762820201212697867605789349405606024042079149787022521066615714647033987473841913887580163360976455243869604092110770358343096485474569412574083624701039291113391148867288218095725345198235039736082786395903108963287271535004707655684395134061822218962200212368461990508308606977139950411759281816630187566013488183152019466365521770501781008328096787400615181075653471848717779187045261380708266730599089254712471608429637791872957639646589695207714893742447317777732462671788430394618025932228307956603498493605841752512203861494624358993007414271326717641155560268296143798518872174105083618147602903421644413086822907599415925990535420916815419385415088233332808982478218037791145644515388574968033051500934734798334059305035937463677516235667983040325366592567606362936096061732776874951453944521306541713084671362929315410308626161157153060683432668505795955302651175410563428443272291611899915282467939502102145362626401402229327188735647853523177804163231820620111496829842850166863588861598939458049165111783826787910550392034724621896779559236622397165451267939792367502876721896027831334881788882966977067163680943760712483365318344953653262788168278379514457854816408093587229716356256092633725019069593633248031140128015608473069990284825202017174565928522134696989937318758742722084832125772573666150441926181108726843885804958033313615540081601498633695418339172384815555965523188268781795191467804428975943978865609124376594380695533285787248992049049351701903830409523219755244914921101556881404008013236651791775686281673108455722083340236441809288253485984606231000532015313938101700731391633720518633180622215532146254447059989126873279700210582315872006421883111095764346006553995467297560136268462335262808599701371824533380577501328153462301802561967619718265466375991855350096616841904755939922907251200905070633724596102480640638637813918131409249664161610774798815671893344639847681918655162680072315635441098841543491586896433345092544922242552647665451846568186962219639038810183357379165589892622268921472484191047346119721977492882997972810261664752496237539770034843977425843576051129424476838895789171206222848855433404108134320488642033009724623810831582667535186246272588017279065284100570891296765120476222271964400406351354646173854911228503582372031261347624526587286002474059877515095200702179773332055831629753820971054728758210833365282176456819040827206822013523142359314028496144271552479554821023700049838924813977404585611460771559927423036477124927139691599379679241219015546529768000867895584858982659483088041810006745325823531143351544881821473976310033564666962495026827214782758542867392791693727176573104843246911748688392786616032138769366015743495202594543347922549489630075872561284194410892120619159498811732038195372203404503989786510189284792548334061395777634999684548217466538377293818261495038144015129075251534169704397049671949674895102797992582321410323533833802185474000894177424923847525683801771461045851670067285411999862811390199411683751515473801409234914328914342001151000230941893228968886864757427458855123857263465744639000282467242710270756538201852868737396178001142918892335104710240832842833545374996674499565284007416215462300040231368140322387750683292264964419500162692669897375694304027541288230261249417612037479578629709341542033317578315284466681341740847192947795503292330585214222320156881247974505598419633980517210480346095059153265391856253429878076815145314002146124638743969632473862332419655407097318649638386600034387928626845502883734032859525398281328593498363603168707012709060309626514106232070272367320386347414625649611893094299640496229411441593340761025698398988516757639368334697943300804942205259467453169339477024441448514328047987006283296429136382865967723839892834759536527827522684522143349248034117798571651971974971229365932013450626533291299842717549351620017615646710845958962953207678394708058063067328229712909294885272723669372818592908574881658491513113307098779824257532639849624606512739739872944415616080824246306625052859705886054431380755739621010909305044294182019769613919617662957457550028884387339838316653778033119293895264611697350307165193291865148815553495626809098721044099421789137082058812359777006889062513123520246816552880389244618840210916182818541417100965800165552704928074526600393069690089419586825929211307094380423745905243953187192780224725542376316883287215195439182766043070587324937735661539957212569438057654893995977582899685156782993049916939375531211550440107066229288323942459931164639866732579287177308092824452364900876221875774028511936176363110552783164463074554807787809292399972111118042487551128092896015508548647846101554845877189452006279826784058337170833776012040250307522901644164492671027107133650249495546226658859792707734241180911710038531499736545759402012903440293918555570369411160970311340200059105477605944460790956873071896332309756937668498028941754247748089638126638271382393619194884052024636426199150050300278548405416944745741231326887555195961013742719618251234457827460929372521203880222728810644257557536400311712237175117439118184978059729229215272124584273953119648781345606045142099085965349966882597690015252837991649273642875339689485275862662836537377990708797819031702218354231656335801986873510376982045941847261131482470250007801668129742909156976386370454674802435442942086292492818263786969136513959636985977543990510863607659100459493615668736277786996959183236661984312809961237487636876507105691187795785361179674840637433239379079410033149719662968055679425329829054662049037528221831591864371929666733765934922098269828711554284392415597582103428423501649389910083826909986860727170267215763807265019285970654307602162139482946142176307253892959706451043905325265159194327788164349254817493219467358036336511590497778217094442422170050210540267264354402191520028577956106989316907233093710802523013157412247917123443307545198467403024167677807140118630048951358555027409682857410734664703735222662450628424362451904516789864742204486023028886023309652935411080673271300062399520832325812501610371902221111493912673380747190353370669641225528332378436258228915054978201797160962759608008784462588639526864535903851719923525237605986260022234754423689416171867462147168352085022788448405052199361745610551517546665158902562475851718908875459406966170790552608894589329061493189307714397030873281567207155555217500477612851737797203430348501557873493433224930705011015795404449404674239535000621083043493113494055896099429308433067248542192305729507435976385507707831435684339452538542036045487621588553210473600206043267343648404967432481134408962385502463107299278518606882005093399602257008162769238364319131477189265734643911681991026607258757034560623609356051622042000115091784498715911137094400850022344941082959485602283760300715539964623874702706594849983051093839662593243984870942296788628248000670600502078879036286039114080052435681241387473044862299266061289924608793927936773133771491687562429720623097992125664514368495380519333443688111177108371120829601456972780277920741588751924296076111500212233116894233250256688815017968470260415439304420155166545717354452264949468994197050736453421512879601337981921198910358220503465807740584714224398531573375486268533721483092380947436485429563158215405618908417192190943756211720729391609270258374322196987700356463588725124670003456886932261018694178546321655936324808792263768477579064436172039925513642746954844040605232099365093858310185344655975596189556361202322270209066383292573781504104369013501309368305641999604106222854147851887096661227172888578133188726918609112223647649613905632071085985882728030819206097383536127356591470883676166495067512255342706360469234491622566496714748042556081837999269084357005303410552447013195329118197159238175725424022419754938725010738910251358785385000271618466220721406861552806964795374214975735866986342981842795437549986159322987394696026560391375793413570153758256032721230527573176625209396669605005541037447251799199408136909406637644365972628805735940136659491058281121403704222998875931376478120579746073175220467778210214390511240619450080933939800157447180516326421300858999700261536773247253311179449231112756943586705150122989019755987206787897240207988511769764880758218294801437547718445929925044334106341607459609138477496510551684485036604585762645900625696282502052677003725077619643879904348609774868894480756437667534889587917277000901719097839165799313181396675751163567068226011555691182749091579278069947587412775436802802371346131584075034915214385312971094876671810065009198765410521915956302606561359145075807211380973646749906965634497849575999980212855399647246213246407208250133402157135410835206483369034492949805259615925992488117070508463542348775046639817336947327921825709634387074274418630909542739765552111728205271084388557198529125213053065197267849675878884424391046252217041042094792776090924874863467174144898644101984349839812233209502651685084869733139870892334933449899723178058141489068804830604148322728583905103910361022440096648403236711755887184883717092929151114760787265735430422693516352091355649427656611074177946254082808096329345051416521327299114747333532686787003984177428957643174475898149367168076089237117430754690346599165355714153440112730603466198744369913640582056111711348967632192807572876431898594756353147371129755803197244114668187911609407281737355982504921188565704862314706661932454008050040040436386729191762174735362221641421186411323471239024073480230719164974654223582362023214864282615428546091726013958019067416674464439797154996285480749984523588979884256507877547315644044033469127426363745649582947856368625619049576233962007508590212618317773697898595791193775960832580245795401266250255471979236015279608717716585531145190052668965879095728686041372018018211040013807547776372334199819302548888553213693245923916750160114586586888369341407239513735507462827318060334939616348154209867108903231523945302339577541413353948442896883444360170742532046638825765947948480240868490565865954608274524386009938781357683803641114338482173872908811837601121217688381350843283676976274754366018045991012263465837586280687171845663023298261267561733148627818894329140253896050976334110809026749394549253882674556086087057727465370437388997474400093890056389802576519077129097059732216683663736595087868930186119537608781563856373847044148503485282649655455838391677887113335083789606815186768486263670595280924525626161258655729934774279576943918702942999960249988151985699811032201357084907277513243168843549650554245255501665368793407123576677260096327485923920704271863307233198429791136098356180861877008733861945501000893617531020175056047962138641690131224742965761332504789765930146829254681805143493291595770827439094392749616301439825086885470340796083982515568589978292852045244801186555656518858465845515086386896557181520568866011387072427306432578345247213628269089857484881987331912512586936080801416442616327390777720504110117712175601822924979746820994822495936800345633546175584341987154743528126475952828841535212769699249989087638100378566328831161212705651911764560351783783007619700285307520538776066183597071650906835548145998643108830493349386706491160056106309486751437189055889711321649228320766513152977473950115244655882321725487572237923706772610974722354851363914099493154563557938582756785405109474412454366958395360027585208547793108459470307138782699903505691244503762684603936275221553877594980709066572113975794677157703436538360442399412970482534495861094967521896330665017119641051329761359837809138074474720155716738167567209183259399055125746666709599085067334730112168530865999963052765583034802272626711643544835040296513161811733338439399707063898421671982718179994735858156678790730595092970585100104052929283305933957499047047043601358154981142446089204488946754825382860945050512805851755307031704526451111455515755789479198762212412309278128723825502957017019287925450695678830001926148612138738072106177905003082024337447997921305492090728022128738546161876852168718940929625134579774276320788172089987685804613008085703588539777334843761324050932892289170837657436474197368524356804820831291564918786120381681707364798931355444407201266924950263459404639619381656371493886467283551047416297605714106791414000859392326091804338553540386742104144933100451755659259231861653177920110177019457630304688278144856226889072664626102725897022589721294720013770043935897931757664038964269267239356363270967485306893966170114008056462907711578193723164879460376837217935445079313819873906005390901183362440840116444938378426902219531362778557360265064092923968068558331950879353696064376314858426718092295936230102078287078472452181395339808776919193918721458436282325062412619533969138974872843699295966033785911405731136249788162753385712262258333449171221871122758490277448237236873096718169042014319282779016290436062648053132328821092063261817778256361772459995358472804262894541694349076196006853388518626712375913007290058937766511872107220288296217901999144004162342123816742062846549177329797672300776825128447873008842818385872991359163981808700478333556384186194739976674416730982001142777156890734719287372431957987298892042670809357100537086310168650554318456206776011135488223289470522372914131378380079368895056775132724329274528185201882459904553813781947215474574308984601699068911195689211474036209382511683670841423250054423725490367995752638994295596513858063103423474830256647216953832532964395568143783788582583524859922113977645677758468567195980269137238737688856485699790896852023082926905039695651940436464604205553337634285698774617903551046499934998125585147240362246436243109910600193934831623537609840345659994722555120067310193545609334332285417543128211741371817434187147555590963374541807720835818894232338128202474782818035614835633823486105992525481797056298129702646372331421819622146516333933234385784984230510711751318304385383779225751787078864395172437691738643221498847419014523090210537568412376703278665690068133276793537204510631204372039440621688867581624286140235420762077993540441407252213546148567038503949414332580464609557201671526133675058960382289398977072760749317223649849755626947134560380254590681778392317179149882574190948820052892238171620304360931787500464833903136175126716357000578431644155153695179037320264816642355370782633836992096123680605793211958250769126083532338155937821456379011271098170931050085744958724313420779353336886014961959326537822876963818583843852388622287822646944568613563934718679120806271145980011271860604565419526225346657765171616123085503031082853601478075004384199964452180259028595756830324947462302708275915719311664319146846653899511645873234133703708590896601522469046730100396859079476173204685611785049524305242607868949959103378771446134011177030066848639412018821327054109110060722576045300209697024827824865770296314107379291870568748187631858892182253861950234733578253585545891640465081601349705238689759910116621095635521075072765364786124140886795703210707337962622190739141885134581942926830120076952646214840666479247114467906553916532677071718436128596586789190959721456964486959406189079793428372839032651140192132918946906372828958234948952715143368277926122067321758144667521825868699113128793481040179298023670332304945133512926512270384325336600004686593702941409688006887401986063009420896188663770034653348701183667230940457997936703572121159920570937729127078825110621980250852377861598262171069936218872431646606749225282602789765582600650828088557375586929015363627473091002305933730901948408874587312477964174448949952439450171290730239450974217793524252807293905301830892571201659676308636154141388190165940504828511000267989101148689132531935419612844718181714246451181874659550062658819861841532784252766072934016805039716143879750484097940168463513330005856646501163333331791197367551753186518752642074649343276318311646009673485620498470074694207731107242734477696451861269245964576580620600841292535896990635004133385010842294116101967690149965001803370771102541488830974944444453280073690145423852717824896063071697120092397174945372779996842184940834065202208945485663941310576278081237343114143554258271251669103067993846938452450048542689962840110368093817880419554366400993423687917569011326580283675384645940239924392276904222075708136092699805937884005440188508030932270925198431210036300381705609859241446719551162262616348292777482213663995176522710628261955200991193073665930376072595851437068485767135434586629454300943709970156059219143701501587009898306682661892160913717836126702487165620953323563700422256059327038414746957632274634956647426540621342181580195187488771336071015011945195806872914285187991308449961930325695254955406090461155532100572037315370097839786188713821257306503427243812666307375952049278238789869695829545240909594202984158626797935594933344526538387949016912899003407510754797404766498204205686147370724897766438335204341472318187970512050978064349773404893907557320889175622067657105033526958845395363810500796853177522374488350875125861124518831105845265047376543802504044422383129014025194479616389426692048645228374743585981023728541287389067604807251326429330210227517530984434237399715497647199551391656198069318596039791724326333809144709371691341571435403773537968345916286896133512749315290067336664612496534233751388242951252594294039731261418723555362946960610492576586248944452526670725358607846283226640036720064047258829165727524654845659857491169074243781994248640117938059508544528112211787742327392805272279969319826258848688228030785248724037079835929808054339838735575521110183868275952729442216523776989200738865475383654303568915326557050978625565292967630364566974444503057236639209232209306262002281764842853174699778920237903861797375678950785490925651600563361393035625614042896383938888889003887767215647012467558533191043628810303401448751812077654179851259974197711910603601121504284775657412114768448683809100878172798114594082213771635366057287634201616603221718059345228272887200317598815599239599730468887055064423448602296606835015539585909467119159824636664924315086787149141143140896059071117415464422214517999418717227182175917802770651658096960195155260010335471433101636756098593779440359271360171584706361974984399182460975757636055436117798370957880356016070559781726764244773210382167140910775457681712527140323370460215449743937017326615008713131635899895765556297279034380501828363197335071911456222341966475519489010950392551572297775246217074690248424342242511466474698778039003232656390836004007542296374460973081932443382111702051778599033771234930967607853241949065536123828443263815383213421909971964219733051779514142230504087457548550175848930273181296292161007071603839965656701279803254980803983869516416172273975318035593853821319595135708351826853823865328512695471013731381168429014120345756675855089250011623582378404228532208125433617349270847984187561672394940593229497257094539662440452454663077254084721139487585339757359534884533914902167592736891590030696626988850036925090503785543113560417899219508422319259509276423731357527334380232173891261922895713585303029251834028913711889320164684376049983980173365560188302637787878576701326101963659312674622643280362476317874115776298425607301844284519339513908976837677298420063088392644095601970535710449449903261619041508077996869156725041853248567381079289527785328781779661790446318546682394247471264367637590321569458973326724957388348072121116040467860739501794122924566780331030923756782532625078118324086055502927316881978563598673536283918191722428709989989050140563158858958355161902535539907862872111457250744614146875762001474392346088317126022532448212183318997675439323144421444312886874569458656244818587773326250960823577077033394108643254684553522340510700389646696916109408725650116409367794789610047448786436548651488524555622739912737763083192738354859068847042899581719272578833224194609945922998091046138716876350983594696701061881070697538566632901827022106668038452790581816184354944921849220136391832329371420210425833861758733113095283749516555038998870090963282762485259720319233492948706123640392940301232789448455493012943913526271945621457089342020254550189517855408365094299457417401096216163565812308004421703655151810282046635354478337447994124904477684016487282872359535552179142883833284788212307053813470484351122061418876345811940800017213772680627308427445870404709714439884387443399182748217207049473828040385259066237815304206865229842774157054779525822066048601825507147449769684666027935627875199470456707206422102796917515042781604438163002370137961729044735138459855630105412416405127837685920993743628740617230319495824982606101032998585686620222080010510120172537190231060673291532871504176536813525514827543362215270906226191122474156185900867139787716394873105290411328921569893503870156099590463183719664177613737979411887948286181257650665394858468246160148900854723003797522043140026324850504939391142034542582422857957858245876095756806927530782343259814428883575706682998907998353724739254003738770120353194792109501658752800123511062597710982153869202298868777352128659245845212760640547214826775966738820046233354236415325207255029723823613402726296237449710565137236942423955613948408328759939894122812633596505494142591812864474118929235942549205042903746148045834795243254396663190776772530815344353038319681732036081747887769773940839156283909566557578665008721133430460053390872775692080955408032215861816269146457138577053445020978444916518166804720283325530844677260930387013878448952292709426491356610117434770242444530152199306953044838904177154638186606199485997885358352645403154987668215230746955436526161270479605791602817316538033267391233894588706639990247225209123124313118220722291333433165185838555088206201623950460525513033157636185863238173085669665432149672236223437644410048464275296520171117600915945324265978250063799956068421769194711458244034931633569278162311584410144197206390160192216453982918619703052869460332987915042935744422673111452052098575324355888388645592015001482221888541388453168183088220225707301329379700726472313570974155020284621490055508988144969921018405677284483990954507921549421369162620208081442034208129972864934639525579690753208653600336826906162648028675106099828864479036365990200583224675738004902948531267334445202171517230680814531623385900783764488204520235485713217264438530050358727480298793206585288469966533246522088104936366902596635450305145026393627031332421722713683597639500286882252302321808496736133310524763882101769369599932665332104480999041789555565078190156356394793865951217950369470124015516920108638689428444220754038058738596159907860000477566764973268184565344484285783499776047196969259769883899262851056247147667925518549454003405746896221105723143738944127482921964660610820045890916052607934330970195504309076176516065064623102986911168671896321745127625256063796419224030730330317409204836916613920940506813657769136272683561647919519779095507406567826624795652544948174361765503563371881433780227426306574743529101834789466613595099491409515997793023872746012207041705718118524151372000956738664524732710986092202024096416381758995488003252035134280975300372148555856525185091425374017001120465785961159326043038015670379207779940197072674095609687823785425223887043823045130848718484143803755589041788589610915768726430527708665307647845417235686716381209945726163239252588126149574153016758764398906276510912771790109876330475990693288912139709836876375599856224436369469978920861425791030263389577345128426975493926222427097445686888286682828556808799774143174326201486973238701337065254276545289695137962238551914100271813944167244056538547862479500545847071506495311082483881187240974196970964844136983745966931323633453683417587165422132783927922392930166581517504133031212653638345908200631662208135356358550106735384313738205494792558070556108652462630434335690209993500511000745929395365520610696156871481422796253584514024483766151341211800523493344347176059645729316343599543576422610092437744257503317502663048184808828707339346507809991157025171730135311936062077106517984387556181430040255801142769806532202375900722600038660065985807192132047997105972433063501375904384724193562479805037222771341567753004223211878824645233869335790720611955202841859553029731373504464074159126026174092180828228612738469978756209228567568508975766042392948316969667656519780073439447829641430531174381503475144605793634960085674075916721338997898766026342793248727210349453694167551405934659911083200978437492601733604166469404755967421671991832413831054194776753002216523032311994043124530340633411861074466322589039963783761621279782948984506788648036295116925656690040176768842898123027505934876967975301769550060257142422104750907814202800000795462382670624750417887072315711129375485121908105706095220188458613212116376073220716126996922643582148983939388844518921488971636493971513682430470957966247758764043710755515789399821014436155470148663729868981330333342084464619092748081139179393015128587138651639282803374915995552256611534495117002620382427123518768581578499219824393201268889928668514795592833603490316621935456956224603355996936604198138771196821953906344193423233871787664002539665641914383691909594083931071633740282601970723930363951693054095145632172805702527864842643154324985242175587383498955582236353840418676323384028260177058327383372743938316049151398206147078889769517046188258434354927751087228762610238756484523355309557233920709688119596091885825158033988808756517670432247572563865378610651191157175228224316036719406750488702504764330176590889026629635459752512543670557770125723512221964790192773852457953806048110418722556523979449753039512629929879545837296033997205061428838392521456939047846943814497158669956412900423557901921974136691809987594744866561346632304072174204227315505752561639886110552336271521523664865088273102189699196961188957841962499301092429467619607171068537164780421099359397923630261570117508241559933203478277407251180784096389562086014114441642697610200798836947689715841856798197019714518891308299530895604012540193420670271567228972199895388670579521783324145743527789658166977110019920357574104886850794136469398415771225619556284407732257808386124125806259423932920561042272821834426171605582040936440527513655768413522360493668352151216749198341152097966141732222497986969399880622536974838340658780175233186428854959281422374054980266284931010638612782367271855235823416720933485867218556037442361172828947808898402488923106322778024961435192299682156141230858873785249714096243544971571198055613850370515794980889035427757205399109609759079831929755472901988436649007687741526557006270080326987753975156409666447676249322386869766696693547921626828983370884140251490848319895207680738906127685642137894908978932896214020775023259468509899269481921155359858095774454906126344922571624344319238584260090993739810585879980979953418856146132673144473546224555140223786237425451151542568725818370525050415213029386437089739905302143955515856333834863807814123334241842071630477616976963174966996056599579518424395682678412740525136383930266121242536873162784738870599365328801529798701409795655722350632250187119903112062381300234256450526664619003798759592337773847838040039574889605467699994182416550327790138542761056943647465504682704370996748036376818800806654481671448197066586826756281858540152536737469431206893506279165693660440651480324234862545497956438515001800816380601270088096386099549581656393383434745113977117513846849861130739473756063880248989773482441855989383522064251402673693495908181715612839094853867438188253437937867397666986422326992247452892618627691941133065234726208538885639051308675664339272764913120617323154355061054962181926726768773443161625544498952272902820714294256236832414704927823216980935064181455757082577265298593020942887840512603804154769554799085473080455807694564596088129629693592869575609056820935804315745088088833567966413341495940323217815719988140584030126254777234193874691262686389021353198889599032469496815672700922268122544296364945884968991883257814557056625998755577679419945336220203172383314188222239595869093515815472874298051819386415739774207070771765883349464681430487119503444493396424502036670555113123588008998103962885954238992690547619469202940229286091616224951358444481329175210674290173890441096492717463714829175083416884200697527342343887414526590318295498855009762488231278936669597494407083099097865613841449542373762258180585048048659184380554275104320813471609102209737324054452343776495727204160643124022287873597610185179211874852818493183631904881015935607053920640791886781753050280429113886648243503569928212657099135511157764817545125716294255876843513818292222570060388708356627162690437652556942902987817880768611541922431304628698057314037069262555311593977812689031514908641421240066177429101811557104549794148606175945580259204046440729517948926557354052197217183585484995437381628005894696749785533062936279235385844648512245619089208840057440555564639774498227977466486399293141819518525722751936803123216123752475150512285905300903330419600078162869235558848211815699105660405153519735223335613408160952188570293805865971878548316636030831315939951498517996282517008014949494061214128003389313119768061247555982674499389064052092281941999044496449010976880221051165708203902374313577204486182977328096614922420765141647629792851957129068611850324518691692728688912491451635777777490828720900362395739551014307163624833300335033339423857749932700320508584639481475197012903430506453406748953538685619994355665678657559929761215509324276924925756078951660162726574011751493039166671713575355456723820363564300497601751081327679281641915180021789934506758968452751134006607900601172112997135795050958019779085346502232276826129889610550148309056159923420587206420314301186218876887694170467235867470119630138055183820106918885590897173522265943962103852982608213875290521162123349200461458851496052600223971529402004874425898389455263112477574652522235086392852800497144477929846102652793032552719850297312765351111219900232681973870449006734237187516240249976206659049184488195868521853673870841913768012386851073226409584780192978028763437736011549940638505240704940509106669573763563704416804337230857697471285526852987316622016832838769391390198946976688195432922750400070343917564729743817457438582243049923436862142545390366199589697321246079012152703656450777622431630766371163373199246593074787567392869361111842082538894848283580805128671469359884459260332902355648708272337361695711446921955489414157985213354578000934074329667642110266506712407833811047604041343914262817827862397436002244025610864401964497548338276224178031711328070414537663883443712992207170725814302578545940990495934932068552428811375856132117646726134438040275697728239448417588954913131805396452783352267490727180390607121476375856324658924034816490389750438973091517927434151708477941221506898760710944542336040648255277404435764863854460805202257338843190445390428916581449283073882286913841310078503533503688528408989507624921064796930948123424515419320130014221056466787930385413625022633225407578663737388884107008446960497526636728502156289990176854342435854774560704452635733431592254744078483044686308516074538982784375543887369294345512478032642499761758487278538622813957707707494421309170047899474800278322682573692770245759636649460331873069026021350909210436249355353778310114755628545097017664317664733975306009625567843010781321032402178395635624440812543832839158854566791632699518973358284400088196634205393004045700968978160129486251852281773765090064203888507960066275160471012652758799755803999350068441695744085018052674847152996693585601786065059666754502902177717769089995349175480386406245113322935973396823510804456047166720161754161735893892283927635853645945454512558397806906070441809231369548148029775499349436626979164953177925686165665525484611703085162825394412912512070659745444252086045494476192967124549357729359941041718137914987034217519055285887358844830223221046000103146300408194287424013218414375362960395488656504113538598092930848983650266570673395285706701908684357313043933133360157564565067051651130474029506390470779113855658263840317976696348432793754052977862995974255254642516015814160083686262539209079879596337332279788006265590685492167039029601413328528164941280109456199372663712252072211286222431174951392392581435602182669198750317996006891773886763387973208789962702858857033709998584509248932117031204027224131668646339788359210909665347074854191821538463961072096158904373979106598077058415349086848476351770769588968324967126603717475749448063375993119278312014777994481932602675972154161293801881396538447336439049065022700216054111623640501142408535992306527099879093109250064481142570587312562766079390625837362211876880568964246871819493313402982068746797985406749973845704191110271050068197527053640710683448927151186967227748166683951237248241269256510100238060467051794658500923620159721289615520364272740626975447105527373410689368105301709088505601978028500792189863678579325699582965574540913105035678977587194788782242364913275291489721830411235985449862569624106916212897061716478387478571885493442000979104677068049734048185302555453201233685811868764963671961450178267074088636682768798801149443987186248854079363808626058067197132447184359206740683022856629000644441613047746551883122625875704422586426572927808816477457710920455994768834916116822779558355962917370142759211128277270164756467176045808586070920804500029415390188602430685961176690296542138572914126614050775394397493053973032895704623558137935933205718522690588325762196658836254912700060949478662592125959935020911429879715819373378805670125183733932144699810378961837035910390644394381282580313572058442171392759084226274386531825862603409319836346014842079495548555875142932784263374829554980286478152649989215530100199856767212574115673856646643325335383415579342319092184655515074905084847611616326685437303552145056329771928766177007413697709434897995362282131606749788891343984991328341126257467852384584128867872353581854331770381397642244335352057416522019889042254732448901622553035049805459389557605630291438956046870838511793814448583829398413708421935292983375378418341667958830307207326581964338749297082736089781116950086657784877603453985314348198457930560666290365251925395185091067665306509763450676722298716986451626320975280950913444681017080059069518309436059282524934235667980150499690391362061821267175875535405938639316655000728283183268278969409631256245347485134659213419877145449054374943425341366528388873420296613890937679843148402082709050560583238206463075426096989161786983435398927446635340298020063757075115197872598920304403908385795446903935241733993058111800104803679220763779836586147000572279022556950219342609275011915705562864026615034164996387849512992693568351735154454277794713874142069663745633033025337551909874405683623670310279305251230488049104410121076157970228933194786604960787818446335973046401605362072299467784218464731660904305499555796462249829204331224477567764190940397627192587496810650210806810711659170818260544804993482767270981573647099062767424295000505050830889293107576308418756551918488793449416932954516060421718170045675830070340161071166051448122791835428278323244897280558725731593062457503575082225768087164791625503625654442501972609323546113131476956743029795132772107768042652721561033548238205301911411489261865321760409689776208574309298097562689662922118561003498617611364822878086193993171646318413742960835415615324100285808497110551818333241845524585700095239122443701164148156271368384545817508339278867478329700334044612556558781208396474403113622949022112120772285529998291555818061137308009847883061310933895328928903605118446084319091291045276713031114580947685146326158548682058464673923155141364154197665964687753404862974707837455686976507704087854190476117051332821489125110310956981103012611540105429315811265359988377036615134323570039560420712050664309264774119592687909560311404181522383772088692920671151886992431335866602891542899053883789454271147084796960412158560044104105620426726621793166469502215043193049046541235646114184537422890666315427525641685777547274668118729892236631611786350080463892884492410518116772202395545145740329093093536793901050821603958723427074660710607616632111489336166299323297686537808425713189552332539107688034538599470849072855190982144934324058104214229029667107455645945365498314832817461936118146791607052090385333672919482846929967553384085703987400229953684305160423505687316192923285845829872510987603324107338949048999300952079478447840349688614811391620579902311171288239607495968839377152829369513195178521677788277219377380609128614507980199818114448139399099516723860819653854672102008326888637269082046530256031840280664623510409833692417392178581497280773115464672181144992698104728612844019000361257434507946722445052580512506732740811522553679197801612438282209330452648956557273405961020450802448415636497651770634797093863553014124099547968990821543262657370066437776590759874747531473701875905582215428491321238184212411709731439689945987153628184288340790518827303606530939062210596301105550975791178471747063685160588380514323508529864286445809563671371627050532950358252907491963178371389645542637243187605384152873345009675473979285027528906033659172047501506976128124998349028061763016741789405622001329454973435197214901550080595908747378156305685955834192545940834580053246864025432178546503269397133824958904325235434820801937610426359752399199985258512750035065430650442009265362413876791307258210388430027831238328383387702261689784303233442610607846012081991045770340980655301363843107847202402271414536820211385114362482825328866077416177948025216083345839646779309100142290024587901279356641558284466040186533134151474364002450321739420791881475222554901427220963511702645145751402718019297887446914408359172099305613568269333017410579575780963817789535171689537818235866425335350540953689576792376096900809467844385602311005255445722482204236070803895241593207203060434409600750184639897945436401280059663825369923772206601278058242345316792051105844143152283196164627509086321791015763494259133838400749780480264789534954645348466138472324482245766213463237884567670075754040132964440815207185280080032996652058246629927477618249356949510752282079383095264476275166300323142638233983135239728658405890875715673234210131107219861403391667829604363195683627300938028938230130782249656498771407717837317172423243779067306699400507331301194797832313841385735116266989245514320961406091780489356859103253112782032458199374782884578707512222479298086517757033031713096118413629033670147270497504873122382133680941566803566861594405240580987588383477002353202994189734277059278275234238413837953770346915494895482208815986937906159005966737911942010617038135719774733075533578002984429165102500058923037743851481774075493926167290288020805551031642061264636820073279740744396116255389869562594906659477017483469599183063746635244452805652060814942116035884685836901575688609357119679965386320857949121044520394927983889020909446174347261613089791271993925682026010628557653228775894948643894971655520656292704941621828644472396910660487910521498646842959591626883693104926841567696577288253736378482282975138633385907386799415329710111818014057035187130487917123283142209992787484995464024588786408322552802285880259876337609185501946044756629380358056428382070126433236188284888983469002017130732347616924006023851183163994864684534480034713561466685579627243073990440658367096943392039291086949862122244387872409527414880526082692662803044090532442336483826404532325385032717484823158662257562694118589849991025598875146866941784302415273138176863249523631648646864078831168687617346283526279154049514949076197597879242975388202329197225744319359609665585207744323996241734535837563152037050477474628074536448235178561111981863437418053579324453291996474733036004184107271704496289530505181427006855989587978981171403055867367387181844187645645438635414564516033390453560932331242837330426303733581511433199175003380283953651877771264839021835331927290732530142000386879544273847518710599737300044771537909694865186208292893707205005307713362280117007496832638836668458734291453438035964064193161161250194942750950956897087661660265266033322600766997026145739717318806731782081882573836330832555643035700999876706311113000476285774070847902626151078793777596632485374452724210405274727695087311225694156072262423556584970897919554343836310391563755899605512907102184436863944065186719011920089522984929375408300408114890252725166189885138463173636173236698768182795634152642576637768816579019232174283682024792520703361466120362408321746753556578584161387219778312383138064974438881863582960293049743472993979968653094147082087072520614144434400778309510380578038569525134074168858343974862957038237643360332555514629556405276409187295459329347342492845694960554838503029984497596364346849213719443144786015417798168322500334609332650409858760258620802072406162277686320313310168477555678706270164907643860008446408239373301411118203104405624223664243025177810804476796323944119039230499433586443560924353348816136512263400189636064131035699677804117540314163756003308183931971768718019553117076362603896848672568181375630012879759243274437779822888069031762929549418444180840514319400237741395585918901603918348684708476974108880982736645660245179138754012111398534443184847029726652146930164925793604001683819348989358424339803253106700637166534189642650379398844990925020764814675887861849704924725079513625329027131445215807040410059119077825729057896658068465580342899571437388944726595087243948227761602181581767820141264277522796685922060749174751592801424621749499945498129078839138826574592951213485317011288896911636574915534593079743800666808419750929765358545513674220180588708647437843860130957449437115818375436496232060890614715729531858860384197761157575694815901751763999609769451275955925103365515739466742043505025123832776148595885766047199378670898263080126523790200429017344669581590084322134651689887829173536876560642806775001272813890056460724563247798061817840205116965894589238014758363278982315812513832261818394643893645790787067118267757174056676676907101351915741918908304130827265366015292597335262961126733196390102217910600334279604841528844901735249101234945349143928616590255052657645289761736038528948859979432256289769972898690604065332861702498217057210127960572509875524823178661117506278880469346029801718609078085436046326382567026267934483444263764677187309102516316631312108282581474261831878386179432928020093102896916827173701878643610718869732196375018859261022139516947703904892062431575031705115446480496590965066765717939587148428777402982579015137756503159510856751618445169610779622257862806130865580467528851225830304332986131377588235352078167578460599586076515320704738785286994053215584389049240621403034038701208155029638201671433437850194997926924400306380029943105115866639506912827735142219444583858375317022199899413025743556563999342404065714984113729357978992138900825522247703901512619745559864247473429798166917777207779960641198981650533482056115090305804353802176466255934341877716254985530959600707009313337315900280910612871935731043389027401780515814634013995801971234847084037429271658863672437188558227552380542680104169008894960296713229314854378513101140005383693640457032209302220537640063807587852659355995308134140566740672039582899040712270814321791238628153343699661222363556476075361181689787476822189748749575161106203784454822806647030542416621322158967204759488784877094447374086297325527907389622340779093649618514949438115791615924862512158372628373825680945774536093957112751551555277635971874548500723436585078197771300222483056295158363929667630937365343459947013623091935950829417912915423093990670441048225534991321242783650725134515652959364999418753141870684594805107415657134367089097233656479855614701222005531342568348749397195685644951083700904063045491536579090390490512637681631887323100136890503835777253978975724249633503038078081855934030136982551107928389386165125757112591395905591763480285683683421407075901795124948785260512893134651233035682380565177507948822023528188763733116461962195715053842077772857106890022015060675968974079891056287572098380543167508795692481854564767367461310364832955941467382132753018612749784924909674656144874471999410279863799234536201049310728864502734111079278713983277868979098076909876102723845385245950620408423369733526361705576764812333832423114706494122796081096993411236208987516144803367393264187161555586453900742095757532328266144015276318214515215128594042531885627698704483310246971612219223534228679741150839541617140134750429770558528907054265821290740259174149750197514973961145414381525534001108141520457901759218757721618649746604290909916539687104515794616727347330856331699047970273449316569142798902981695631264114718268907779313773552523530790829818258968212082156986965580257222263447213488008014308836654757113780432458678464532895540609661035359665832888506878858364155200720280081632758344408262698143361635822159011102068710985675235075895321746417878876758222981422520332538611491827218749786120094638002738852041113406258494746150988621815060271077435404566687160833652085897187123980778197338386140455159177485304587988116250428960363943597593123397752090297660586121990668142359801271321799178199198234641162266780433453178281519318510393234214567146090286055164428619387956280836662207838342482887609267434138294620249288169041633759583011350125125300994365049068588951523384446223043880394825672664686247605605349346432089250630113144876353217308215629048936716577637892611592341913425785072122136792216622176187779301765914950558336290942782099408156823089041118292369215557369419385443803281849009673961280776332445020201466372612198849099171851859034368007967613350621830180521729228248740864576477449710527031701840246534891708579198713527988312536671552483897825536732391251459023477103975274416271173450419798512316640491881295020518339251332038382192691810140486692088685466928942032140447205342817909283409633065011761893760429662286486680906205149741854184027186693786652552993319865511421880561081566207373692697994061374734942377248602442868701692017447707341825274749971305603540858095993461749262183059852012011776581265085720238287085817103103394427412556997249517230573409404232116031090876598139243977452794928748881807689399883179170068615735547699656207365185814157972325268069719904880940466511610533552235352100368278034887805676923533226057582398918367786916429246033320317944404706947678977165022450997786162613035025964629924981368107666525200892324930480201794590077689973408171773198006761867722934375461965059814917432719215472444134361321955029521960590288026970260561274322457952592895412799275627839590670891862284956594591105213171916070530007978922213785711112686075157886554221009893020253564349251672949569564555985245309317809872323220909233200626869455101061780533630585379984832606368252630283542225180271105862908644132462703577339138154291716250989402447880938604186406834498676004442951780383410483531904966336576802620640766179998770918423705381988409595040432582281140127731573609396071688865800419737470686572561236039256268513270864914284514741182092861829381818461412911597457574274100417724633587562404448737950930176389089915058111073112020893560811779480087725859438407663576357273257144053628376687998169901009946477514821080892602190415802592699418796085941077087956600792105691299238826269130972878468901153716373475228589826287095946715581906040432781328393748288231314449236404316223568490843888260070501284423972100594150748576166649317325461886503038557927292707023233830910971700483079197574441700419187816578990939684129836364215269963892615672287704028369715459684066639068700485620903711462561631540025682888456016324661171743244078999010945402385338280587794841514189281657385904103773632870198964151761883297721646132323364310090879312883418711324234928658566421138685804312709538152156215921000115507387755201828192741617379417118026602055468857621998965326087660911615187172232741468517481644772521036117291190499584597878864936952347590604580939090239432277662447271379852982425289230664045149892556136418278006072373842907317939680023884670930284695038032376441401638916878766128983779627523508671325905900877246626258581325338799020810787464034429785934453397401258050479138373263189571503595293405916369512562555290464436912239363799817262269564835357058713106001178761272767697077476858232470320074285495141482449984612627142806059431211030676257753123710782596931156024048941044089408730370498049361995452907695105812530053745279796365707872400325656041910945492785625310471252680343414284926159029833458935002762042462174618959196068433471009211089084712644029507926964333052699657744592065644201965588171088235770860829771119324754325566209353275482277730133918170708970338300938195630189557973495299779174929653128062840412469108012603488051730795740161025623461836540019186882218605031557230192036251543798981108206220130981151484360430228658444843089779648865115759191348918800786495875227420766917808883444415350068337716493161089849794564080423821447405708701994318064003041210594307350905275325559528247806197971029042845192609493669413806818471358648653262662358231806474326535960089838870418146077813776119229498170365339217698915479890422193296124684299856949056622622027791988346566791987468394488198711835524737425594955978174046781784227114001862234469045829025709392234737826605847010861592328471440373805892593632551186479113427219314272311536174590185545754319427856202472250775154474712891803802729233986542067968527383867029899848405387976317124900222968916784231171406177128358805801714796272394963975800256348369882954525728027391795863956481857219628969001226560030433499127423868560305399820572394988452230942957429903158786214908500639240315657893695483392421325920084805223860015919212004186952899412365655848429767838765880536997719692172873940690534069772618929681729169196690113439471629474499645748088092436250651630815287371978094464863086988851747760609801960410474048792753962218635269191903376726897231187650042450498048950317040801370213163312622874978753964500208830506683188027100885583596628825389399208755567964753242981624679073135049757608618258903893666805112431929686885032097015398930600408880488573952459369796914497562869043817602059779178354465093901409063969133731330350317873622200546027748292227885316637184887900043362520811398587952069403980883286541492836255775310440027064102692706584157920880568297471857694341925810959249140694092557674284589360508178172013118094320918227348811100297166993759852397348435262274120609441903725441521944712561584463495384336866986814219081874209664233496001907120128294174622300471653514309257846538920777142025165014066508666213430525640210582279736994187785702842706546056268470884972958480774199556217145918786652137325719603219595231175294534920130762310040163958706586366776880778565001445410903828659731757954697371632099619511903750720110748633176590906263587067948379364953801091186195416760882755446086988341124818878343179154879304439328402847889847082176706996730218128204088535969510468993260309285034804085628081800244274647865953320348633547130484267049149579357069465900357030170374530873408637011997876538566482897470268433921935385942980979959112131565528391248320211441467265712175548090353240985028248931456639111718731868393992818919465227397763365028819694087010589202081608786256777349975796177116681557518823399356139639662373126246303898677395273388038530741933525760161339110992240983360615374471927851347727067605765207009175485338557404926212800517253160745522327053825055801598240288261813983973947402198031736077340945562796820817929726955839572363999778479915148657353417745572453551525585051672054756641626220693030035455971378625070546558515350220726061467255042382320847138678963534472862156801337389258187940130171032975286205729942221597890472056323765061065154804030281134656988427347909159948929865524587708475348455078489759810335387694241776485475934351779854323677711988652211550994223085583055141333241861384507598127002182122076152571070974920350833456335365600032416564767505123782985703354749864870629432265854598444330582296305593429094270249871468326404423744962900863912634540666903720088972018237502352850910913708690973424596781202120652416512522360680262367606597136594837410069460213309205782032869840669651914953102258106793066785822150024948407133090740505745113290032065926075019897748743774721165265465854694333172889401554858063794952049548755751144326179155538640570556131621737496824025845037479916189595924818756184498577992581078501245206361329829888176456464726669137789515809508566269714867898697103682841690727486225105909445922040516615716093250837724764178448867217265528153593427901852553001739106261729478890683052291502445344467487424666216731073936345020622314360463009670244802404053025369843786076425346441204861333458123021945894943231309924512926477195234276527802521393065919724835845145933978697770911074338886518606826900888057000647569696533769966863899889712776551690184510969883673690077949565325048064691871765581307926410487767788141650249746910076118678198498907172711285176582080732112273302039723616236655343667900010502328239530064941958787704433242250230222012308894091821596215789438901605472328462660008068527678893897114126950551086629815733449104094783332980654848035974319767599333696964550395057325828718724088740858836469599178188755459609289440955844554378714187410310045495868767721858648200336430081321991093193523468378670684778065057173013179344472776218695657255406350104527669887112057872483307085455663877119004486072180703937806638471361317406280346999365230701015192283312924709159894808190324190895318753943581389559652924561128394147574144604653242086401738727893517587765161364825527151357387910470001588878745378604742516313259075486257888297700704766288561128248294269410076706692851701733321983918939851045704082245572177704660466079371693022859832665017135009117656870137992895220861671874457394609491940445387742195332394131889767393191749178664395842736980280337978425140710501006401869483217842351717883578220832393517250604129699619640769885302369225509717754182254026148821967721068002028229797147138965926731580664483817828803825651603222496720580037186016009505061127656774977046781055790224541251804155099305762820060371965445981544772615908728415083668853881777966376637414725286458915256942118903436572717768208218541888308541950296236146649394963652094842415758288804722023468668677421904088646949393061955416780720292673188648443740486831027061050778773467469432425066814174567806361622911319110535139513180845564549457576941016904205030961749417533618774194316267168251377602635506275395231170619410924778058036867310751487214052225151873995617620166145721891870772884876431883928650364357572619648885491797701785495654901065128052248002941529322638518593700911954491834357638307772805657179931497039107904883638712555744574409811075117494626237016094173464590304908806996055907993649341101504796824722557117380907036903150876274776250018633269059334274421168330886078910496925949378385851669801275523128403947697646267668915281390068281140317935592785098249962616857746518604528676009050855353744413470268179542915262810704249862562185069910341459942865762016397281573000075020537480267025819307413937936138772806435846844420551057760077860541137773264939136228955390097142513264079006975330679043129216998189637193541658414031441507111365316022220630662523278562559092941076735102181209793416565522569677749760520939956804513765365000398640794836188490718951107050813728633034120195234351405829714363386426109596199389681227607551249750471378332882705719570114131882263977766487783944044628292977846568644714723539998576582301250254373666248818844462594085620393898389405242531358615921203774783881441638291655272926373413563197022980460693667253652255625838164808094404603953987738479762892190638668228993570258952582765932258613013104273898445097020355999546902920885979498925180070911733554363829027730698768592910594549145651817655106240503160147285072346250479384796642188271428105892461810359469776533375777799092087899242593010994682852610025483873340021811733769558265054535969468111372508334393082960591122525973254984086613227444644801020296173018388375674610124109334490949028360192396788067651782822072232770537078172271511434304640248813894699179267987188385515636104732699199848092103323167805725519289770898325184583394097704591353095537136305747107311910878595333909473759505090405575619367465777118096299329178341877013449852190372105811448172029523026393913561989759957869778993456456751713546492019625347255850856129282906416587356800272099292909894706481906797108308990764218773129046501808463610152948594848139928788288959567230879517408693107915864057001259145737477540615518106154540804952275448496049379373674608611738084292435313623711319867202749877273399636181291672057839343217025027725777280239831960378720917034698647479378956247453970998648267545993574283475811234204006509054633039642751197982691579445594402769901400837834511943204741057529199267473226993128477571835199660131946682280364842345188321823872897780513676436877329640811649928632832521241523902397508551642800525705326308764743931160525710160515871343426035433828847971069926321967748542435743421282519489360563373875099940675115620689179985199161113810627081678954879505594832302557810725647606445257217062906495392198370811173981301563476861034161974528049233539531714726848790211193163163702768283460881442661552161088114627370466814572157574926597107109856715125255588526810274692845498008398900231734649553312123011817046537885252320056593786743307817577724005614961188931050887020299074636001885928984711874335373162880301772437498140235513851457538436186386951421803480620955237409188590882833117059134142625034109209456124116444263498005377314967283228400726639999095897804928952440622967849566486736096933541586549628383399714849816110449991941849849331204578653791416774354874011509110961247203745890074572063797474873093842380529603585554190394833255490944899989327050226895675472682345556315592245127199760906876122179972113213852423601153529612590675168726585128864720912235405055443687955800591511032421915256094289392074175850125816207431678355713576739050910451281819705852098899524645103014038256587633484301940657062485520763815938034440016341115105087384956060041916023663840869771821981398992169022909864398486340567399362958978871029326814453390769571778006826775383417947381873544587534374339697782883087166278810898335333512644178751798326232070583379965645919340036759758104931607615590280316241081159354757792831160014145686338292279020124352104629370301908562609093271148363370190783324782663690438893609120514517827681115827349031715967052382552819276441242499636659971409906532405331446557540885273544454092663017824266847377809736466013465102457248431842231868150824501053189245994960371076896108478663114852383323972421107636044723313876653667254811876444597672790263256447171221867704691271354938107748779255478002846146619203621290584049968593944506210694883013864474759604887142922152239890245707278073043040520924176863691341108923178223117937892352357001579525476196089161601122427502065107401971356095075656182844014230631076414010843277040494874105791151454667389990528963622862672400558675178529463112662277185506032036508375165259685322444599362013150090158906848580870922101318584319523512737607065115994535791392101015443091718009331184930275974229349774880146178904894694452701822026786221917686500445892471437597264845153680585322417911168470732236584557924089150819057538307766864648596534310796798585715246010591546688402710466316484900462892662296967310933669037098580194700745566420739146228085071070016018030659995058245214452810169956396406960842373932658477436014522198389702791904366026548744396739636362116352553341473313432525541691630262421755836836210525620245952441834932161503987227720400685687344330350398033535198932096114679033632326444520630859302118679241113900440631894549543331028610738044264373725057885586481211293639715139139098123268752137346512015725726333821843161463775594018923434251441516712254093806608340190073935302371212812841494590691216835030275220203916738204656286712392347019606388205162073716842593053447496881146803556195385253083475284269419670116046916601653734789373946636968405196238994249360010866011348986223018216894780973961399172610021394849155423318626917927818528989935412330841959012193830356375998184822042638152686741677165906589694566752954062520963920178600907617371372165127784211580538700315549039291415756579416618636467015784110654758239027784739709046234024915623466063831718265594631836062426109437563418669761409095902219111201039546654068495629597210855822135497155970309762841302891735034644545291855061692920510529841839233616814848255481215144198780817542604568935480543232196548402160608308374296896957836799785637832020512556782302740767058861427568041290874513124906414595588809263687806258127742886967161973936492359686828414830551584659132125405685802412182498724723927371619572118628675251491200315861377536297274232302005407507684736827849683642881760836826872974222148895647711664192663163747678419280518320597967993988970823857721950838198987317551610421708866599315064866157348006951473562759376141486314251714221152633738106407146998653856363816485197023753604481672005610665166546245441398197818849871349064813908973505676443207213885187596706521109712865821054066611464638168291528266829315777949761806020447153077487747905540410124900464074257313085331831353802761626504282734799503250747104660662092479625343870258969173534403265591851816029790045904688070113872662903659956235806371749431134544055151570369897530538758679313151583327045277662333987067303197560931950427109776447984100914206563618225911914938293338378718239973218726239753018256237475079124132284744352269305812604523929955014382833052901568909888218482380697827041994172240960303301917897739895109857974538910647444827697552316821035817242679138597362682957443409182538419954051518157909551891201287868529390589852191240894863695118913259429035030645074894964634622737056006782828161656230851738725466446631238249938419976017619572596617136384531674851794599206429705333421826039135903791045696756177210249708439107665648441893107192150719986440902581016653278537556630916047186605045717582841657446475710580347346106142392541357531807863428014453228950386559398355245648089217385414160284899714012059530566831582019260467133449672957978879182382867939469985987568710471772602390011900212892688474656488407020635792425525745134022025318606163009904983049909266926171619083097513655588233579949030594978630414800719218259019710444765217266424949714457836368720533708346720661512031643073867145531780702888035327762609786941683355884869769313259545249619074542666752327841057105439347056332996983710030148752808592580992332015700573034853480605137446761123372454870269418023069192305661616161706990873657536990838010058275691023679099274131513043125637025429938483759756448089560041551548184316388649692348315713217737085982412846741577552295737394315224206422548075716694842169274390971995235965423732860863802682352357370873331660749240609210399780425167111239983969268017481787529402628290748212638056455684790873798508997375839064045426894431609598931793411539532828448836611250652074060798722916299447355185707920489193584695716041586361642022366430255360115442465483642265255503970137936150190955029533434265313421456874149070531889547652811801605833329531791229671992408218517471729836719956498302245443978296823755644362968299399071273904126962856312334093163147148392939476435118758604331511686041294247758971660051129283634883303119288007495217848008000778236997541830528346793436812354477765727290240378207771229505434043525876920612295636147954977323814352529617284581932219790597617507170891640578940091758081148295344229280722719056666810439664691038603622043682222108113086542249882686776256219832496490662441792284138270858982377259664864406370766973142825190362003025232559285554433419384348643120723084989279528596703509531475603747686199290073310356110997630908772641028636836357736307561226190105367746933217045169672720751506893855907341896466924388302436564903140903565944891162720328917246856584412429819190250953597321294351723448254339571094708201138889305828993140380436367190754491353137759792870416394618098023051960773819234093979965883643649432974750708852405174771306123815968879606758280809399215898760197305456298994167114569810089942070734742582100059738670515032648102899380598296063271327868397971565872058632898103713808360680907067158215873092589017945794456978983474516923383000386442220460256293628820713385273651460152047301742442534734857033277366642598161517272119106053341868827665656411165568894409120143864667284419362564325480868435465405733153069872474968239410671594552981674747065404272149116808300594174635056179573757404086230972636882185956554675418392250176284893495575194404034665059078536127181439325222004741878142773302122345423342852540128966876376428547410439846019432438564327088830859410113280425012674968052890510634677337842701503554341896825634669952344340226669564288418238036256158813572176377910104805767561909928091161664510482716692876594863278273341719011703071465717195506628724404231670327515149032795111705732303866998688299411771483401194751317539741766340617886050475180094332862137780547318031181738979799106521732077890580835168800358163465911431990403464700772151444594197501724237196165338538778724630058318119065907944548613380836528877918712375889544863864745399261636725719161758923274757922234345746513730173727264211355385374449601436211092310216454093320667038593108720970855714293050825560953271888061278691351978975637783943678555904671390594744384994226750881219884683832109848667977339420923190878424368813478695333348195370103312705501077675084608729629326692416248800037441562552149487805256484294030863531411330942547308723266466908646888134637652233113278674937866123965164666751308898890436775508607985405367752145140139143509555476182922974034727461000768445360837944842727923929014572735568855955308364641597991402198648926013157860160573576160233188322783241051087210583715625322229671856447939032487099324130754846121439648758368339032452458161408192833934166724219206804841199126665087561653207627332856142602583102847746115358294969911729418342568335952685736554584359579408325385888473755503212676108383986878292100546501683590706693584231864781757999380929320005670227636335584086589068551294928656636019586853889143905413216300258949274578417764268185046784314053664290584575131739836510973612672610913228266461130906843157904183678072611344830356183939450144125079757245302311754794225991006942415279910579378281712673522335040383096570086432698233789591116534795603531527712771793811310540602330545632651530921254963992650707028969495892238586162443533708234188617609548664802368799970987226969124093557551518063592302768606905733476110373839658084772627120828427307382469066932742160317518200640216760028495960743724220752772989156935868927127796235697772766137384402867911824389198073613214765087811444066062054249745767373766531810549819864953139012095594931647208384307211762917637946875472627927802780420021845578949293219254013904075543730974097057973136215585218270639348955935124715554032633213334656657283556120188600929234555920734814848468789312301758317430215331369830268212971598407134618553829846495408168475008580836143158728425504100040800366936284170394990531122467889925282565714320440880292371554921633897975633317545974859282132119125236045554001469857862190723052603017506795109568244213050149681677393191608221085546650708176039344009623857769726465207929699991621559951446675670249877557741445795891078865006285989604418767792907424253343095606045097660590861956486977609199503301888139589900086296743759641665897049398982582608123558293854281129028003659822154250555031441336092958454979881490039827999834376256141730451076059450799965945875376631313679692350477940456144818112982937515181816453498062498260208904666937265600024418319876227592956891959542059802358229063416153441602945654187615439052765168100301402941596645870818004551765692244368757445168255265163645452540141245951830068799399897765380493067326194464312951666046202506957480406581515006374057910398177101755039597604640442900901510773081726380852507001373023170376424109404139975046017383633656122468843846953596478884509209163633115450585412433580062727090910481613479760637479886205898510031786724720698659845114455371346195521876496584480574873000648681387826742191644500531076910153440121911345900606121363385231477649016207339531296235096011563536861844202305642942673830341441642072579860682565450811859759967539190601060975634617539123455177793785588857583063693447141635441236782462759148533404044458708091708234322086083863001865580421817977642187826462779680145004156530622489644301076162752695295284111532323571259939289679098282661590381871208065425815748127774560581047724639806542068791524182418361721798934397578920966205435819519364003590828226413357158819591627048007761491841767528597211426228823072901319058127424344091415601346200001635678517792860041894020928791305534593951496225897417489034603887083317584755459530509945205684279083962626747332329323788718548216392626771218001821097214052675893754415322114773709595417796992710158798579759079702372404745223961541773351198994491421074577332744231328392778566721497895153424948655829518231509958905722314078566501016795324072880472011108874703816236536851146422114114430925499360232974021646213583549331459712817942172312744177749147909591089796189464967129789519211769562490577667714686260241026178088462339377113441467397436531591369861118487384321472018461816950767757257339432690383597595946731585437980554133993644439443993454627794433396596573942717570256188308408843835257210409469461701792975898308710173760662238701962652534229936918585896405611827934473185515955814522996834289312380007818282385418383684714029735293760163201210797391479973703784443874104714472134508303775420537653093482392498501864505406949526507924198082964489157379743601424855801661838058894758380804198745175559133596958254979256857476915961602021353656842850157268518155913537624086489092669995991258920424678019598485436880397323242219546474231560878401386718162435794978788831333786880776812803241077395213662603461612179240713457463365100023324303752351739617186814966242570339851801858078041384040356710507722722339280154560504690947733957307110186872357203512194408730291171043445924092574953261640650382233704822265091543661809326541446597459570366647135436491038118535110252028547215423083966955314236041121303167213552333317404981691218741675296995595967863951205708553223339255173245178949852267043848326079086675278015107720091435800319184492108176406992114242419115664400579262402053405108860276450129038639367238127960491464351357302639401614318704728269649642660423866666015068902167241974401675400706165699977025214016199474772381771022595173540634303637198658958953264499233591121364228740577664632543141519779158045778326489110050449024286735207062605101518870842877525739905075600250476454065553660043764493825446554115535510759145472485370823779183669603925881312462821471444311389285447783328710036095415648578151341500942007556332644088439151217082558716882745115067079788737615971193604200728756528209611554093587278173741434652867979004572452920671961498383678271668190367875368437946299996649709720127435472606691854635744847092660437687733048504797034117252156929979516206377566039751240589527251209158470855120834195735064808755849446814589770046197029346515695562313042552041053345174972802794253286440410533759855098057530435079610518741043453301659589705602258103601952963917885526171530905540981739874442731287073061271222448007248544190750261902706957451657612694161916048324492599501729261504575444848646837770028176982683681058068544842438899850549716411705627453673203755792693549482775859122853935972261679867535120177672052213666114581662106114137327734809315149995502870063807859462329484571035704720081891332384949489137069036214329339992534314363850528402190644318674404727924094013635062458943398758230586187315823396182637988581190187275105545448347150245056089141210888854839099327310490379512633556831155508758109983384599109756211131045747848899043076050754766521981061536810536888711600118697496552581844659226685947316306681596531881397543082161282412286824278857336145031342049656497809699305949084516865791197240458121844796676426064308786673796829407440575279212700822089464331297592901412580763454611646250521349220464389446050164295479731505923162091083606931287381094543846670023901662534135125212924167981444921049012114004467511203671307190138763780873397160353073759047364483690472317346919070596577532216128965616754553122599063550755542586338696003985877938721737093629474608309005887891239994871821245277844956491667708352235253140641093348836056970254140569512421967067336480018819713832752413100469996015667068019069510613670387208932099790949351560261868245277332101305086988358691613416507639846665354691216375929781688119825544308958554799241057858954175354591544994960322695976986158279686431216288253003153807160793285700472999469426433814611107234972617642042331823823528679848433952038214724582326842521229666275745333013079525809228334403228129571110120275393326635104535473205363971913347969182660962659284866163851227635505046522465871628542719047959710319949939043820740866791785439608744139070072519644587981346978730352785861000782399348856006145571207091830083392550816164666794661171338976671635638025822132206349123986148888377525382007093712617037412737745685736731319579109670676204158487079945928209122438947239443046957353939672380669508017564949226651160125468837123615491164328875334256288725166674186205630716998587302173755427223746859921048273178039218893247239088356501660893194495775787239029309788331515969130681242199545393053988253610210799304399333808678432343219823691785271582977519670177714549439506792961141829430492542394201192248955970710973300435770770794381112057152856377109803983934826476527272561269382793648058157602285057699620779401135322834166885611119920075105284360906413859900938783958250063675087186979043888178857974340665210734215487117272381582237057533340938086355934857056662309869140809022256686440451889202818574033634729769888508419054765996827617132518635145127616224541850551720615773673284981605984424573878991416518039712683376320407615917658484649258516181733262902579792479738894470249235312681316938884343441971811695759643944621647281023795972338327244509154507797377545636160673415202176126211192826975537128986729319039212969205428702451343901214825176819424740443693292775221671763382960405609984976941436313354913266050534949750119107563724639674551787370518240830518330114746507644836183055025825964710153648045357606200251440237178128861788613389729884136716364934160126790320190698702160909771081841807231670074784137513496092549637763120785903457700677646513323403060551119399304862035804842254616504987929485622477360734852491640625798818263987074525944664856785005704051139921548666934176676098077481821109354973445198904444911548530429142094628998322747810293092748977280949494108869550271126965843613111823957174135931557930314980494726831395011569318860685074321036752203974148021045746075754557139316037093830049999699817387199132585468569735532832053478937107291004763295679924112525192064531579402823059741157327821745399458926151320831649471514201143912284171401630957276144016432210770954616410615621519249428453954502130860719874602340142575162827542534914686771967551312574685065884574145271048845920965169737980051427744581524548933957358455963862866712331424263092820111031455658657248656282525791534413820667167238887914756974840949784886657055806020688301766713439803679722833622983531736047986004420673224559470902993809902513856834596938082487810315605686465814714182156141729904632641749469033811765851151061264645815031477490450425151316432682267600137949645244288310219212843092489028614020357120038223284846479153533476503344351027977207227833823891365928743040192641490065929242674852037816714782468283387182596280403049498024229938329546368270598451646990672855048895465354633770841564505534172452679973394416560765248221312699882811239101983591401338099391209837613515537121604670379746729970583142643623135437893393465635087351908591296860388802838901763880381561277869515239322119173201628515497422949746599710266076424000746908618407360101683468694385425899559235856888590681906087543888952180781181214601754191209106503263652833127711718403751800343462731604905790235305731574215902256511982395657999605175589174375113971855446471972865460591198087087215224759029255436730982190237969393241848683133027607985720968777485615111939539591872017749860812168495546786642496682403056044062691051299902513970781276150496825794395850489058088970088683213086706850644826775726684762081633854028534758855437297232899806392294955686785591061460548222688891732738677994038164416423353470168202520325268132584046152249662033160386580059472423996215782241462496377189426566588437481653484465288391710867641336432970002015875609074445414202942184948708093968357191612415058318952550821878397800006155391417373922033553929511619351460816988186156184006071470142434553606455238871066431035086149434212025625209549847975099137102314773831534911026000483273861670700882885298713484787539391733524701317857537295321293496671796972604644675020030596035048953829873864917463679041076163403029448994098627047354763982159099493012113192394108248885553080068602285125992080634185852030158627895818055759790290182217028287247491933249620844686562241410016892216920342803455882246762286654171164586684572683026283212748752819843174262641141754549749788141507073412873304669731484258872918112322058090051989296487548626344407650244873385343541170393335609372875112145075577510952280150435819798368078234533616711291250396233760668957745799525730161364777542929074922993924389310972193088560598410603491083236542445530901649177776234556338439734760925192772694021120973895958972676176750138219071313302817892079609073052419512979132826320284651175680974470448689204042763863786391285605407233983690529268320008258037541388491497887698923677628745461006942044041339400146624102021836898155166525174862262271061203989409909980771347982833525387940478874571461168251812970026892164843058658521211194147497981656693981537420607754687332239861397570049751402608349290539773360101543846243339697118288561935613957047064714755558312305732128292572142344900576490619256413783196547633422036548493038553875455314738181733479588547514379928724324975935880285689241932522267831932488123360280297241483775655304443564939851983630424508816421715342950995235892623593149978123731949883728041008037499635590150966426254618783296994621350570729280448491291974483362980016568303893843399555549475454863997595203416247873816232630732993286805954607986762170720608967643981653591778023132742429618125982619101009223983183083066381056301071802373580395619611773835762674044131359304305659862177899611804236107394178657681412170927743525615744333771010167340450634952183748980766465026164647527620598961922040736087501221539335083925462607611707493747387521516757507439700159828527834466632687129641261631908523015926751631970620338370950934336112712258876397773438063035520975868727916265391334501613921342340413479654029782182267252112241820415489691694058597010871898893884329702282538373548870317530044559824103236802328563751421831628435167889451692604898176068556691436760560208648862429017594397922371274547259811163130896714472375054384524261475270648517690423036262910032982713494701151096000578228286845874022644432652178055649080351709197649876591966577723080582306958433897562132542108670200567013171407216656215568741195755482762146526703632108107122012233996843252827941553885214352028403352419335321499129179656879489102346324060204644243708818610366547030302847735098630087128957067313766099646700680845969881609149217142371856616667893395986403622156562499521849352423494305308875451706527705179952056740632416924122685633508820405786283948737842794351822936021088935330888764603101325074515751709907740500453875393014387477864352695415634926397963467201090518021720970819972435388946870759249957307386344410075389071080494768905328519714245575903129244528487535709965833710079444458913927285872020323020085818856453160763866925071217454741697751424362158089450634424370137008662177463617889849992386988770689015588111202252015267546305206079276921666367040571798634476958405841322294546179007756388949323871235437155729721070958806217232897528351027739349148939756791185814769518816002610972812528399535597462649101422594264205278345904192579384792747435143307447435773415252910793518195244748782128930091322419924537389103607115275509727488547970053402340312896888246840842529076390766876827301449258167904720465006761773361016907595680889647331076718666729847610163752627932793804257012331910948237214403685209019464452405765272332325904866206589375815168772312145809904512860474982781505102255437917596731730652187824027756579698523711092538003498445779223701354079481444633164877045388988132777713284265676973664561758132671414394861163196527621789826715683635059956848032980899655601959879871150045347142494021964785266145734442564222466917544430160081283713671369645747329860549107914718453199956313850997689238743660402374671460067279131347880860906864857301142330143076574265964166928574722465144739901259008423853729188233567387506451559969174875191879856184295864418450998216377653179366410374214287656796831712550907347409497471162308718589361220630804944510383789737897708683271391168198935497055929597415405051293741773236524450488081313853804225903591523102532458121786838120084857991479885524730893307581758455638120972172315110560249346291220409806708767282253450881918064695605345281856054596700463652828992502191312592280974964236771260442916017963091514483132954296354309649156960511855340183046409914925645740162185123846702477497879015632543107048221695010954009584685103983044497762491624625942061061766806345699227388301520973908018589516507940354767134449134283089009683318709928276134628448994644248434061883105152944849016438921403992740291441375333016110469870415388614217598060558816765230792249341060203339331130689896120090578046891598758010973363622463393197769876664661358935333300803018279251957511760814953151542006548209696671019965063279338866170067883729821909728067383797706324944219416870887852112980018334169008047689457615338228430615963795552448221489998530498335120724695785317070394892927032120447451532187809449981124613303598792121764816453646474927202752663261263509764006351369537685234541905822827017490069379945645199370206188439781359960386519171093695427082338705365957350063193879580914447395247588641531891523719676904555072699513693279358017899821721187670549922486209924185271683755494508145455894614414312395609594746585655346568227837428036320151153062659175433709467980984950505833237814227145602742819580002262848284596188312602329515625953690939514261728101917314457064092862464651456579495255176946360354303780320747368129999605778024949020110585457484917403792371128946512184503875068339780717744019421772402891762366800732381122400045759481320526678777831972819795228310562321070248813517489582303420042872729098317861887108044377831220006909851780811072565574609054280514601615989107759187150277952535017283908189532316735551627249562437687726255068271121943154807326311031497359886646832834299718392012394229946531217467906545841435750132893425800765676456698894354066604800902818671122261407096601024229412763021600489048815179657791791551521106274507445494472442362592121731576032940588180139468076585471558747672193394402056459693339337314653556683552107102238283598703894499064159733282088619393902183949254852106567630319742332783635460733050083069274719237838818771378774369928177213814893342674136003500355234547751441899699401195977334398513479569223767107574699283772786492711642324079475334620460952074756413773817752787320291199418210462337218916035830033701363559041695789049579139242295679517033370833481442140653855846386295372980348389503415687902460929203949027727448059340979174172162260275382381002435917151902350150017105353718781600291623624109007816075364920005562397080592818952589031847928689590966889477068741044491956985610423705391631454447876648685108973916327422463178200855887694328197252631419674760536671076123322444130754928744027395690837899897598141636087696329849573403840693826853325104267285764440412131410527739360005444261628259098426573792789692391887298784805117182517451413094329169979472704460791433654086097693586711897125305296307715260020747228050124288157290904458228314781753199137497614343445872233780125453948211240450623113455826418967786309459083135327634135406389460330145994293254729056637876563861733400406453590243536507412940214739868468927805341055715721989940380295849754382048892693460697609906160953675643900848480288637562112635612804135937602195855221036820844309715464267121355099470088900379443082782739473667580594544999018122482589923977172668590940529265068779337423880955706134100629800993066644362189272645731849248829118208510067834850520932765092970855376276964056826186897542288619678126270667082203248997308661116398034401515082147183314535993834639288436914750417531330039384669856609061668800837119583607857208089822489725908925664002085620402259123874708072095516452285738890126573199187444150063442296654643666226840195552675786029446927988691166639174410033822745266336396299385001754728454934671621184027291439635491996746664321246745943006502629806542200048204001117046393264291983809774548071168640742819592061567060808488317936424937382263372884892336272959815696689126559951566135782048366993018964426115504598176376069392575138543793612542273448131805034793112742468723436157126362875664713366778711683102957104082388486241379056026297281693614827587006675264045580547561540755050808230509477714986123643763054710004870849350714372157420887314800722479722553057508577349914974398801941907487362207668866859739908011144415436667626352029758968128538723135142847560980642043368387153940736328337332791093719215220122616035175750408393342918131384875044556911750069087728982252194656748894560061060894339591299817388199297287581487507540782169299615280803514778999605917199330579534430624142188539686186699787782103621639690044089011614099264680120803458505336710952416776207163488812089045333123775915965460126217130472214681671865724917343751157897708370373223448092324072614433838077735374086491940197342086103816732549071804706087867033443476913718124490664896990552496631221433166345387956772142542668510360892476564204231628390112265029784985984051046939127336240559158267263863557578634684665669355302401761907742394941047513639474768995939742437411920094728163409804989211855635843126069806512817865235687407957083454266142990488019764489051388568437740795755975729305628551049420263533222558833807210656113653392377724858671756340600214291843292830515345111651606558755533354257359337418591391949589295558604295919309353530144626968404210538856532244446877062458273593101304669262283383202068690240844962811072070196423037881122710043959236517334656147974845118318445777501692519292451339981342234140340296284452327256950060606756439439555606685199115826587627108990140000149695808909832251093215065355293620876529120381106278208322240188021946348880531719853158547336907335179900160155369539770393663220704830854979428489950510707598239865956403937585912559061046776278721734117846244480890819328719926176129553496919696395165197537899596130636049434763591429749345335170907503035750626150680475143364771247750458401288229954485561145618096509842244048345933582142892477216014648938628825172657619569681321996946320526170070258226563020711002881529503633157113989484148721386743818049372157899800190812139355463321137986841435082606690208344531270258803902723358236756158247807195025372278631644149906019888390332486216027324348577363129683310994949349401873325917655930388592169629770145774666747127195181869356842363195801781100026459385311427856526161246192436228346531582381296006785815539591373944324775662320468529606497742777411831690111607429668327159488088100742523026506864268376945630052858033435160638933423227795731788035186137085048117606029992582523800959864140269076320790595773489289100916963955361855715381433076702259227329037414492261773738794890900218705083085010296875476204785469352368265157548082104372411662607940465734605754062450356587379773123311429747306370622552093438472887087994592211394937990071083525824461201875570253430947465051043113355508904891878479884632140254963593554932622115439487549060774272639512742718234600772690655401751519889373928505076787325895613824691448729493817092527443269744487585975685044346829832745596174829427456653448677455360312196333299269318627046528031193086190829072719629788954984454890122203877641514323529863613463258848759458220529729325226260657940472744024878421515442027402034827254193591512474093840764594098072109245415617820758018529224650346972450278227008266294169185295375956426308300255677862795090676898619995277039046246264538276799946387303585006020575856643856366252129560979885719470296151242297765388447738198451539580781695312697446165844521842192649199923244209012027029521502979312348374083755578267759344356267841595608977207727423488108370629014412678332072872319957709506507435916767916952626944690284886621345829894774339819523098419103375126126860442717606153907703990277651220283664604888304859393752441177830805537910035204559822211557851702679813474282993375320097282861063214370871588473889890577578217616876663083261170350498890715758272887573910827917597614624090399082027722167683350725028721737447748474785017515336091605640586644155536893653631421035560479660984809285448828584970024392330383413716172712766021746168570930208949429781967548042478517922019675486221487981279220400057817720922736919319290836832245577275487884308915218471654462213180544691088010560520639902655133673270341319412327595288343763758121002182016954525953549957113346324322133035570932594755756335640366885729687264372948630868386638367894845690551213058158903698787035004622390842619413631651613611047059936995264484869534032398922528971359782495117236695350366382794792834007755913192009601512984345850256682887129067755777316401936759183670081270389036872882404784394450565954566950864276787757029190651968426644828394580422592371669286945573401264946400681038247648925673346518121817096816075552525625124289350487534536301466016146631662439281253885107830488947495325213408995537558188003992431086004296233018412404264695485138970671479739348344084477462798214625292208406517093403973777237404855208328740875581115437406791934675299173832745054145397633755492235136658316783515292768264478042196272088298357777222418777878398147144835114693577638160755201064305377290628360244859415793179080669181858714390607489883974533714309827018433163490292852044003028794791586881666988251922864586574024613786262739615036897700871057062846270574822808858685798672546102261094374794706199500958201924757046837129140813110167135236460179695706579142029086911267721677892121020202336885997026035317301680692766505911730093665030770143929077464248088846310350366551381295639693055854855798800129899145814395817137581292394582177232287839282450194160978123358961455200056149652320101201942493255280613374388904586847533753041720027146992045075492991420633469850654150404288946819414039473051584068614513452155846771111026921100116095867975092082736878781703210364571237784968484093808422243538249402093975992454537924948760433107746372724762704959853972580669057117071252932061010503642280440081393196134072130911987884720474589607685612338958501290596827926641861539079488546195319848476801248923935199911428645517982614782863085141381559467599333009853866343361207641086227523870822477603467796330520380487996939859126534537713709079480107987104259090952977621628216987313740231290121101629599748453562307588358955341506944900291111613835754066850397145486078446130217900285287461101157605525776599668200691991998195698161233002253274836678967020965671554366621121888481545477374759111837657664914782125989278191007847679246170005771996232283024019389066250175161279231236369029752629384463791017513754818650358755318467233803167078298768187827381441060101314823717726410717579115406253165775558827456924456832998325103522926394032541886189435901555158588564091175163640000068066800829976502475182149694275877404322072476876096574844969317111693331297793351853549490253740687238224139125891962583825492204439322983106177694126599165206474362432749544890834662008927652620676141354300927992893422894879998167798867030907830299532453460883741838974157564686046451567868507777907535594286300747217227512835496272072860395727452591587109379781907216713379882597746904716552298754618160466735112103252209370915459752873182153456628597638040063314251243102488915301234918742239238626178403711425307622171279082367573684433959213427694304126312295002215594207575507929759696526670145579549625895882660688438503073909983114031532209733480942014864369781922529400464602101072340475318127043977993978371058758099702423207183214702648773541404916175459224491172846931487650701051418044768470109313700230277719386898670863851993438694406841411704882867774665837814216830236940529560381291176444443181907179455659759165873732217665508582892676580083010141459714081737564900210556112947801389459812941503644325854538503918646252207293415871543440124451271580904557958339782728005598354152198539382973285353789911721354302923564095869598880588116009090821344904964303385593379933151327800502847642351483066786406404436722842574140491628180543227210442528489175440386514635433122871802284883891161575253399479956100963582074080853351169436867816618072396441673710163744028164532228550668629246168870124669304467458373072115944369910680013478742700460340554872387828327473942162376419470073659666415681305696714885774664348957372843945685888767159464986011461573177188647590955978215344141388377977024502804675671365378887643272584609515007530078703244279323198856683196496592493997138897099197788370081743456647462105597231918177531256311234636962574795653279727874025061965643839757090148326068611383889647368529649044840037003882077942291188672139475321719385640253945746965033945394136373365457534660023967358585824989989316359563846913399550394425693737853032318868089449102361533278337290952643660528635551600732957143398614803095327143568279514202005637304266323985388071799586944107425409617308261877757233947480209296197484581463353146126283511418708854122730446090320921754330456913740563309010792056720978009392096652829828831902337208683747824023291646875763752919130280904926532280378184094493983603562891201540296898000467271972683363937872330274002284730186141053025496414679609785265900230833892295314816223155825432295076156458295232688838711071559131908523251801721654988720631448767064172235977194371161131817766956789032172836335321639820263118055526482011082991687644091175910903085179647915659597669227834992492513592917929155080296118636932617020234504480749953816393731339513958130006774271495271710612305458977207713888210597299799998257112813306062676803658736760855371573895887209688339804045588834805557926386172400125069049269740748444238154516764725534184254151292365591775614138700133589397672924626603133957956657584319644082735187018665920811769165048007241730726236007825381652592544328187681157592612611881930167588464956281818157255954558259937518644622729161758924460440438193416745820272609491282003436200543677850284326249699055875023860679831991165179988405479045099124878941029603086952697986363083729625774841829665900224150177734840175346175479719290751489235958623400554245828185618859111449317480120645242565643162093437229309032849214034799299062128315347112850508297234951262524391067851334859211272654087075830674898801079211454237747308839571113448949773466138325827543390160079981440277531434689678845122175705578786071724500100915475946885615449204234560117255395739802444932486007394821207613743577824453840343009041595492215678096198698739719489095535596904032836023068251394047999432269161604136670437969229707858169078909127536522254641861448115576608630319366288647151516461004041265048509342834060815727813125216212750003041012867757622162325957725559521610173205368724764963798865880719741095753050698125570087392772146124138418871135447705580524706848027873637081524453274023540175338606012725375224853932235725831197708330783933444304298120826813156712328710215184976068749366992273476889077931458316343425515274492702350423020041320617079277416725854560007566423585699195343626259941427328413138926141593868437025599318225523408554661304485808426952946264755896763846668489812967507968702110188915415525650666142186237788318844520466943648315002621512554032969553547510961708680461181672800667307398142651342185692845615822464444975424870369812748442826304309496095576859535173908529308453043501703596851563201389041193039243725620962469012500585638619131765347192839751819709236115599815544797721124710736611883084939252438567768047424107658915981640592222387879410429786609700765367298717348455315226259291296354215117609900231349286215017155731844206242879430506968883205651614278998805421330575877214788126478215549237279014991739796186878370455492307036844615582264778670977318474618691745526994692333525369206886229291448485163826033103681216207044453259415813180152654581892068522282941725321563131722359266841298145583735172405509506779382015933540800614292935463663299034932372425228085737926010415771411988063986001962243833690632234323553551565325227490855309529938038216709901562097477157523952141649249143773594519374863630980100585017163368383484838479752944969954941038730998178132974968199900025613424856823973665357985604149599790232543936926861913878143405018742992617072333536118727676221949903868474284502917287531001460749100056617844213047909428336707707158396600148139266976104835975529733590326471645209778347287264572656544434005916819327597386440085216910341943647545003737186583717590754159382097601640252578635321469868612544368072839148419496408423821128709800709952590137909310339768628092648861202119527086754304453826211522199352039467931774826604659563191009607145205481748982422961047724826601190540961163739149706617588411138195875150375217571699625730303652539868061259768589450194458278898121865255482157755108273035245965649773394428989364461936386748851122827330337852563916908162877204846385577141100443745502668611158203420276662587338857561738103995331571866761816215659679575619949911585716414312758793105943176105942988197256627334467660295001530625751735148736092556825808613810668878938979962328459264339683717304988048921174474714063529665677026306529818532525602784216376839459736372755537752321339711914517684486328777555773979311421004350192404201104130959645342715189410290130682767631773426675704848810985759448930665392028195625348833327875408039393084144419542364477826565797699917590760458674116720271253385264718840205543612047623673535397378724411554517960904913148559312152500551544295421333309412665286614112136634359865268666472432843401161964100528962685992839307916272649137544923607826899703327574031627191913771207626942550393761228520100367044545882298477172805996075063995152371835460936545218830792825780489307911816793055998168656880019400508597224954097831324707259311312647682955550455519260483580498698313488810871366227283579488710785563136278399524863100328125682690896825849921895715747558928352624920148274531194970110733748415720822712001613032908601126249057172316528742882326756677472750098431285647992636013480454255578267220281461127044779285020500259748430553687489598010814846485728080296769090399024932755057140165738385830666380308885218652019887230542393136720159999751010802695043364028407674925371135609179268006813612720082565213408616515915206581754873792997916928184610463656629230501069801277210707999081482250883938239097339387234838551574279175725773074165764087528711524504246366991320850130851848886687694506200044822090706209330612600584731234997941470612850894573682446874858868515740339148922571856866761024688744140421947580731731271574182766516075030936767131671773557080268505214749749810378995762172777110428392879407914876080038635847556235349496083619704999266848824816244952201760743377705254811589841064098619543901960071965991195887888096461336992496328464397870109942729449667341476466445500235662377948779902441251806178765933016052270943706180997288527095621172864928003090445284506269120855849494265367976553603685718883795700750241130169449882387881282243922019644757763040082389293351886750428399701731724321717095456160632366224286849261884587316860200501655023245855636060919424559907759472768363676816526917973743367239331493932660706554495040857138931446808125302401647840197260474249056189333177169011268359617160694578679421837406561710864562298532477007980787949896575366200600038485880575200726326787089298381352707945422384887007430145463517181324912192758440149647344153983389149193963558770203231837038617300237678602070915167781126994089384739863675520820911660418848089358510143035421098453379142500426757544654957081941569465096866300743605756862534634286376912081151122116604698525000886253082088175373603544139197698999518414863028464400936232730104179091569019227905335060125772155127152025757945764488741807812985873817408016221210845629830194850348481233815287838515837132323154816638303512030291545124802865613823465465419499685024230633497978771390464107094870745324756116728720944316830615278709590861059885423904392345080098557529464427689752663790807077061899956860205487946126085367851825023169921495875850712699755611718939780658961968106777158729538723893400075520603663848968573361671365632377750620276107895365246026781397813588232139800427852002419685593193983677090544214580773554493761322009014333524600390642723913917593809522928750444287129283940817014777653544625945923763864737037564181093255233358534411311483172770976163178117196537679421833013323321776364040994173275790441771582800137745347411041386820800379642582706130075341770138921201997863166750111010961009151948696241073794605565525977959068084665420450430649260387800494612074080015346698411668587109051861910052325445608139916678714596983509094589279821065119622336766711481466578272418022483721963133912974521158235379571743213072842934381041230971458862215769426737831014156924332554978297323976503518020794822443352312914601071100201711911607013243423803340225847155930025677741139400421082565118975153738716289747625840791533815198223372139230136160981034477836714332875981641926356465374613802736213006019582508977596735788809602403315707182074678507282213458120133716091961990008466594865027817323264614946039883036326547115412730983467775444680912631327555269459945382214682773367943502441573728833939255364545003025346955980089660985192243817966931996151273785291369286437280035060527038039972119340734814222517161080193049881825046565280036204203869437035627093910577421499363232909366399867074792257531277495885515324628411230116735595680912458228476714145657708386588917709895398035443716982949806020645629838306342132418850745334144064651535788145540958222499283893436286844451111057869769872690952234536827409448378774191458288068278396260940837633440002558659538222241756630928077201887300372288356112001049198175439943254428626801300392150800863457001130627147867647637371210104540794859365094417070246352574883711934553707182470613316635469015840115982756239501053399344686436259146911065443767811552815005411059731304121652575236469714900909110307114276662929252281241671551475265932894149624715995538259885330727531571508999985314527819995377444192181249690422673070758102601414869707423026402809494669633408625659326847336367615148652544096836156279022234299403473481709877652438294738582665379317720550846476218937582281572483039260615669285028733701338063037007397465311074628787212148966425377685794890483436410751152864256932533787095779518781659621535169239960215291507435976007385208552488158403013750645298789454555328063350994833430719800526333783708668586498499227265207899553275602892694389350145217980312223921212078275581704796294514954402799180449858306600751335880509841591035493895793406327466808643030993079937818794935779687026243650282923833126136364945684520904558223859209825990535841265183632445354129715327992771378229570807996144802445139792836961947325478987710313105391815587745155104171108068828889361049021215604583247986820155177798136579774254547286476570879353565067210989925753124780334786082384772928284445021190884381279201259182816299105029097374676030926874678933550697337773052067755845429182341434741722574932193107585723581635874655378188540544033151847484945368434450552508430042735799827445066199723447915673698255920054943354178536839232758056737507831287399431894707068380896199535880800716926958748395441338379940851096729217163443387845997274449847505706397324574184488078027387727775432060469262533076493031505686050414089781950470177201511484989946161103774568510647007646711366771350881284957068563758762376889636233529870021296129034789927174188054931768728724845265475049293247553665182725028450677266720910122937970575140935193040668290667896536902092734179329553865885334853834807766902157523077471386214665689924320240269902658843611499531400438876077277886501547833915140907706629518659388670709281104651666758223326418465013563422899531274177027758299108054623402234353541915418708510542907591970997338094989275404389953977578607652007969846772982610915053296246302643534389640128528866297936056789849235413305354664184257874698863816693728420615776200631490854433862016669637471412963586030483539286434287564138857365845668558466762144422593769401076575662790085471678327202254357551062511218388333465880685176603911985659341938395648223023253875244329844526406597310663979536772959615209104501525832562031619621718863580894539328667000669330669184814348394724408583273573699791053868006817798885178301580772372764269260799684171452440062176170093141363017301705216438079560295140051738635558123621223980210760457124038754520742458028523933829224014110596087452070403260917745907780833711843646211176520931798797146785585577895476549046231127430830881745176025287478838310606792273579777326082332718091612299706036353560467469819045831141482478566097615275894395497603876450337465435512819798266310988623890038406683813947779985510908287636402871305135690347299175809655069356038810246044241002944942844565865228557813556023376959201206740646893253483240917604244799068628964804937568654578716052311060286947090155483492122369921003124434483942852944842573768384222644721430972496535504456866976193875359150406547323265317001713662833479082037439592834449218305562283997461617950537851895551519294740535354932666616189931288952206140687872708642840457932048164257946352985501831751512391970453499593303675026245304786544265962902354157320236989691407553476403596519713424412012001916318814987011232312713164390474872444421859085363534466055710802257674804713945440929414304473540571861383494398936608342572877710025947471050174550005019733377824541602262711901209099989595771241140798073095996097373246175207982373780155730520324760349739827105938491617738267999435911310478796973167012759105614271042364389258850826071047160917646530610840847829453850637804363240580356534033765847325265230404202689981448856045205260386051221104934626228234834956251123223904762051991356839046016942218067128592434014934794654419401797470794205757951276136868921933240550299360419863727138989628703557695690317819449989110498155662775576507109655541173603056305122323653724922085788786793181197031584313992970050758209285903878608026366351443290899177191633738439136435228113562622623697811655174413238395595744388879774157395333333324432111737811235765281641340420285059337192993285852763324348958659320131538658982854009888626770434145036879175873430292780666620859276521143718535902963145885636204001409267387969171408751895624709733174181547607581447412930469153897973964546154949055527037856488981259500423188193385063830345762753828278501884283787295916717948200586685659555846689411094635161156790887295076740865813992992351581275535550361694669074821217233275532518824454640351486834603757544715159155737743846331033358774023794030417905645069927755287809291218820478293280303893843329182359819655028357683272820161023919206466932076846108755362788184243678104855219261069987111950711343017209125556901768104019204035377225338492950871670045036921852199190627069456816138073183124950861545753207033288943044229544809880422476893526502873830727335349617122795018695923227761453529078804202467756088313258615294473634735578836795540660467300241179571195527400302722268180645051845850774631316378982497906414423575248253204073189199493112786232894187798498717799102340476609843377170779004086689731087847391119908427456239575583260357431549293000715576212109772657504347248447803143390821655946447845524098465206654109396012263357206828900277885648253783238145879122306595112283502550908830133004203559641793713741904601962433730287250041904498917335944557871753795565285432679482439075104269650401829659747506148438522355514840922117895392706464536466484083696749629653910550519568324805913059081084847346052352789955224495194530422927305114292095369489980442537487734592927921008554436739079229839802486495005600471258092832381571480735238412652109355511243158828232498082099987792666311601032039963992790028312139252943165113277638309125042536589159004058110484391620440246959630820634929759634570014578624218937283257562651100129659212958204329737918219402179079943592238731819962233167356511491322273448452729174346202549757324263088729148436147757163890062232948188256231797941914454262538894044319928419187598931307287804703375330670623332360058127874931158403934038112505501478639329255162868678102719777592556965816070941016762792965460040509129680586829450600466785396001228320526684538331029644504737375654069337235809335317067793987137704986511113910316071817455520452656910101797185111960392664663143998007982170080719155476639169714617201756627292495574780740292892357810044400925823783084429875447496607900661820801184236965985663702074133606604346318989108927272570965003763754857502813236792952682701466322634206206805805658895159408737628670602541830557268708817649490531529414175803986573376521812274962921596177983355426492935029096355154798009217191683695408141021983499202209511959274817423324182534552893165540925693929175835491711010090745920118002898345090510778867054194961309289432971663058350409776327288827016072794405942744711936427968941604603967342596759729966496327182333863393790779689206335145534955971310532212302428632376646988195778035883632306237339029139045987843682105024266066695268304148420268552964353742981511528403605487805272661712139220348901905330958389901448306088776044827322151843431127557320588639615763979863717041965155857809055485590889805707496067050041192947464946930432316100926282804532063701076772867797905760517230148052512817269197692155613127810058188082307548769225368171575808163403098312997827137907001124561263691215354019482772995984648420932366034504730042329649944310772553857020045751666297917935241266612299235980086012369786228570965739367511503903710912710962227718331782144655059302763061149487462323642995869809776870285418398582533708902784345975753066134975140664712116818455561087001591424707674266344017424865521957353232859396240368078412602914019571285226001210405673639575748659511506154359968577109223605908208731220181754785743179669255834579044517255798252412153205282048799996493427147963872267685902523917193318164990104568978627136874209393202487361153376901630559636407077553332957218199577165010225263207724699573924023807322347428534666587691617267567186604383630638467954016723226674997436922729618024492691488885641766810658417633217356558796627506483053423450066358310337722524295659554805729515264919490305242671616915437065579588400492586085831138721098110604964959776264086895555547388551303933938471055116282407455929813579862511928455516421804653299136142797945854870893644173467392239878350340095044255259129377369376684624236950168352900554825907555500332551343612085444552305860508298269712810016108413797226946909305498812611117587923483027533094985490321012319154469463050041732018467344028375864456966161056959593095857684482949174760201329542939409982880820830146932527857077287410102115596841550912521700794784484656805966695049912182005927370365183567744599484208607856851840313643373560210931159629446753148133085286353205668623174346746671200516479912524786857886929889806919652346584056553409006953341530446633767883390244990132907382109259150478344938481233145652458123960795322532000835367572218505617356854547853700508366954217277605456944044038897659129759272973063717409500139757362996897561183151954535875454059276081401297703974944025700236258993245534006957482779288080833783813110026073637628510813049141297066707191660096012283850765594830092437141035002296102061356961239645937271326356815108914777166585217347226057602770976346667527158468444931726853372919055978793890753281839856339255048026719954007243246689361410009218280399023169263595256964826593806787636424207881457157766532529617350741333791917833489512458307803848635916190799098717704863935956728387130853739369339225282718198273452671873057671930049841830522872613803005801730941456187325864662573739283544743912843693347624617599627803779164987039743620763204872998451194693358047698731957453085031647371383245512099643935134228193210719796682897691698618925639303659732877402195430988593319281765242340503196750664822855922919663504300515360710206508500214767327425743690786877363936233564558991871553962086740852957931021720870543431270862831892478275860262903090185028002676967406657189322758315341076361763399540004635604525075149386553189356455263054975411370882784226559340335839513823261289390856411715468706136595662190600531224489446505456698589474459058376170627046884746630520034139039316271554415962987292223970233613134021460678360190003427992828278140821497448843882610597438309896748919825818327011017798063600164495688420621626855238061619637129422332864053784264652248276429434784416203580950070092713827495434538210553204966838340707406324372988809624804412486526048499537820780136261706405983679182368999305362962340377111773003327708394410505271589887871445746939145513665862716380877575282127226766830321504676028703054595387464863086383870839555630455142200963592645218368832599589740634992113085035811987274561416847337698084918425622921308160811296642438485811825677594299852383288221766500563785568997021661605402593344996467360945258806393699224456798609692398209430612315192923377163902739877873825407051083677752201216033932726093584976705347595917399726016361717982817748201629092682125184367690600261821960485090863249877680225935769236814898086384699099391567523850524158472872958436528976487391183444913325412040927596852080357139426218532024574732208061594347421358105692823967696357555445220645958478763197440845667442661805779655699441627672220452077017687334451555564557420415745585043882015541723920271995527456384404554759804186620354143542844021444088291113541649178290641099584325780683093945045244584327901049737164980639357694363474966256699643488873083585450494703974239711994040236816404417972929386261261377434278193308497847631316848031631764108378625053687908729609766418330009376379499898076743349486982005337175537958995073578122891374437057617441342668511419115809889836548453746418411012947091964664661529571617302918771391791576237842655083300247228158608385862799354868771034551629786046096822731710004458355072896003601561898379125910753151073270821453315482964474131866394885586027819716858444193853622693674584809827137153660213183868902790627885512202053417870706835938792633144922793191418408282744668874433022396041119196140646882780114304064195744760578066682553723901063949069941202850178445200239666791165947690899659193640153678011444438132403505095586994690182909609987930149590658498042227756315148520878552598214006139865712231733109609421619233423461261936164541277664084059493937285403756021471914059312048106101817596700512316888891416570470040523209714999381179654855473500454831744747665160479246609880763100822211902199113498255435357081840376308614452920474715835026212746465177757931635130082706103515324104460104159356652067329267077774912208045512086302066331251779421980550714686394000795611268448371125788658470462610492322713561560640806949934487178532497909287972572252148035615888661736113848402152382905392742331086866909865362880987147585250961216805737361859409120320295002401262246373836002949398039330158899599098196874760045717539713643344509782595639099179185338203967186265755129745181450869777137783285893070115560183697571907723965109349659988992341271114769098855345357183789257700790969991558443931684206450756667828608870737285159610568268957734909959923913031829810492485229702251672524957938139958632445596314438104442626789221748927528269236209483631538523478398025331022848873744918785123644351841338314011757770419321735641698463942885494949093424343981505765261964607616587978024861318158951298104072013016209218046297894742230790218480157177320299651294620169091577852096596554847219057197938743257241656200562340756695206817321007562560893550013609140684110318439384423990212182029510804537248913271115145578212085076626990762568528812399418260658425461351113776603277129428326030931119201339410360476702310625588783713679831236195376209267897501687002016581549419110843654547094799079880600890800926059656232982158856411856924253429409154358857680594443457890617848813782683804863989616224749545512844935990879712541607813276321409383374197145084219198564316213508653685007146422699064890188507022016091741064934397568420576917190208205992040957709437854083426619296592231847892858402389084947634923151850389658152599943469886500002420548217542366374478906686337097897258782804554099163099808360811210919587433262408883821190955580564580695492222382733509790586634139968192318349104365897910010335875530077601075330647750072772013485765575791738886216805714738127268579051549523118686074260887438585331423282082031158888803317968133292815216527652715624986529481353366040611938574789242127497762987429134689000401000663675661370998068691756321927785773169511442224241843651972053911803023513666617241664115804000908471444311734518114065404317039415871187563887242675590503693782311806462911069151451176498012132177249734521603459437893943291188325180807162197134234113614777994669077499600868819412087957467246554954781023779037580719148737999356276290418682849466800692592763255269492106315058831202508545084505728478289070651170618604866380488538613662049293730883488167213397848675301154843020869576396372307946599245461807001199244725946439473772906327500166601508113790939764973869636351105492846524244360390166534307654484516768297039796993998569206228579942841242330401477445803132110861120086726536079786654142987896396133144498779523067228237485036838082273477656911227819629037131948840440358292666781786474523266258548385214532541582477244013495586976825134404663958087481871025597284469240385463980467922723142027360858290515711191628877638975737136612988169522461493394135975158036186329920492296715517356560291651204287229408651550062713334988734845481732380711047385701911589479671959556064213949691079092142308823048467084079209401065587520775364910001609440221571498845439584903651181963515961615635491830629177366796533901179622056564304546070704915253146419970577693922426001374257817721628135117053105638955672712710225616125713914046351160118963696898100531850864474680441317877416424233333173559554386062565957205572671701821748304819234907468434761494365181971922482277148503575059270287735388717160354600086969154956465057053074933885267883119912416398630465189779635308032982982072770404541977716531057241555305407726964713923386220353569873620280376668134904427626336392213210900265990821890722302770915006477674303539295387492898181034167775692254879500639768612846753512899420980600311373989574914307326084233578249223905815127819951428666344043627756305885439200463628519863559918689913844899699804073408766959414333857874768863532681201103589167636794003741777387820795787216697498792772020261754880659106368030981693265218280238210403686948047512408845849927624649199505559386478999475534456717681675262264990638318134120042639147358575209659584738372240773771727782133680909857107220519733703307793793818708569179173251268672514342006522148095559864277082810900587183915943289588036190436989960774201664710935387462340744982394853904985894833959810813466316578186937734675804207519167407810014295777772429291940410863305839737463254450267902438629607444767546519031024900315134767280658016950151085804217114279616441842538180048557568620009195437539302650978735025710249754685982817072727657926229058210577708213772578976184717838923185953392696530381016643504722924306942381758638935891555769878440495052455224520773694322874025879157865581498467285870832491852621046767784838470321306121471341665663933408260722107552927788550094127836645294567237395869120869735568994058624640017861121150535583184066079176349973631850767328785764502837767686246724586848184741684859972925026837064803602742523903543211509849380305456256476771943512964681111817807480181081943237057906383771974293631993526043010169344400570972861213868766107540256960919211944741438516140603201201539020156127138118498076701092987044703560377214355592840343659175101880648069200022029808691941442370365632297790531272467404691900573798627292135012003037588354865109966954517603576503710400468330489736363131168192167823582227052432328520004090272177829009548238380862050221189363298665223602119680508169353207603075589649891748333816150442109013951481882977464841994354743914585914935500965863139319856048899320930966480699142992706817379763869812772917049735336990489905656539677047162736744974132602027639492509723882038193571612935368845085101018680960459847166576841264959734453485912653417867216888884793829949620050812211773615298453041768382219064323996665065407175555262831493043929022421613980069840274552982341085643430625159505220376133958941835843942412583159427505937965730143750724621716709123170847507075085546812125248617735464682045392707619607371550685603492038808339243546299348992076239733466768896222576415977912345636398418814447045813068319979850883655799259469475417957017295123058408444900248402629699072123380151549831521472916576859584376748185095986676926155597649483989668032067996397081381443317035859190470378966944147466447781131915381187607752038510969611109717559378004180181534064827679650829027883677432614978252530917932528508051785463010773048791597894767992626456281377243211252418016613018116623186893039579075193800308904846892760742105953356987831133353009748203332551048044652840251585987153189530784767955270756115790882982163560104659669093061818151535877129226879482354477810753216167326630701143968534198341923394865453032054215833804695877049776410916533810760689172926175593287645332172544508224672231800825231666920857421693433762316624440651023702479539295892782422029587489418775167710009112627498029378656759161885860831890135628498009263424356338972224876388162471861649574183654644319756872204386652708129905315214289235137299925325757275926383663817478907607378433877107215240411163829415642643055348086015413413014683940446758413177985365017804947747620931664151799456826304612459603511521859759375035684681675791171631759746345406269978398544907593171221725389583442736842726961251225821721318811963752991887073834876844080328382116377049123828190489844163943611414078804674823565702521795095611202065795596597917250702973809584435110574347043248745488131724378778409019556877290679249121692672438305965140544412698429958820875054337094041450550421900740017813026524574285876911830905683445412348557820885055485510071165186300213989532006452596328802270732477587670783746931982627784447161224199738057479746535782104519085609922456458279330452171222947452681543079886428868002222512545649504497648976509385942522606814780739712100148625489266771722861756098780278229460801979393297459445627604699203749477512215077160834714659477929946654121647455817286180300148504602163014887132770005776752338867864870691795544188039089873732707559711333305946037279261711626382823296916340141645981523041536740313876946910223033940043831540686326207609066096011490546432786747124786931413079722208132615007580919008205382310832895344912703428165518229194479029747702211001461118844143180713695149489098332137199183026779389544403446450578806037557657006575933071263045436834205368787807263034418931672486183053393502185093104110918484336466768516046635000750044984862061595298020942255129788306137899814525261300372216130045022317709059093928907211072899919475836269576692571760994251367424337626243408239995906850775808761672522484809624017304270953024115075102227524321161449294202606061190907761217999091049536489286731817031686752398246078613967918540185062320157663644791479850382991363821934203079948857789628692856416435591270451010145796828358754189400437588910868178981883484386953251347040522339980320904884641534694130934874554172184184363316227794746849246224355316735040711467593154622430123609407144559559946182643811526578622980056215107617305198931601034800843070986342951991650661009125359459584471008104857678020387267618466671223769936955352729287975024677463338610186493740138441244133196787021871533519168267502771116372288019357714377217754043863738073520800716462170632690819374593517447841043759359281132373721700814297839534957543422955920046833994828379959376910256258749521646901709155902603377212657980828372500791836543375231132159602702644738938811070080649222047465654367046869382902357534814484631961819100385925794162083920093259791051855744569856211162950504817024102225723813950269938584177127139463242419490084795233089601229949076908276047194271983150610893758826604205452562545852405392101815450626979995544747779101902824529785454598246184173766926987209269271302099322849696080295765847800285384244903418635151278210714195829297464591226019665947591311921798219088870840555265333049045965769964763549771366807164073508488025319267490261683809552312274751501561401519773193862101465183909985234361929156057096717080488855294960144409563654088833233419754765699760057829892008015118357832677341247490281358824406245962445429155285487235941412741034967861831306964398428874248223017698247134373494856709799574227843523455897628121219406433941161567881133390745279230645441593309855649040365170886802434592315481730842464604418039453293088525899764712443771655491971251691124275938881335069301795703469735850503575502031871583176216798914548749132370200241475458154741249742911029371053258479731153977592733982273916021525491789941751910241575414532489909158082481517932270754636114246891863981065422715451019109591697210917432976681970562261981464280040193937796733919702267275964704021118435392657252624438432139522318514342996422401417890701343626792593814892862660261067908315256621715805513255962741194732906907107933536420410070431278814052348724187360177433008301821863517925727796403130835090389310416101660982566607446287327634429704387907932694337265136713921040078303483264435917900045770098957458111720444607516422193078206578408288105628846757313411725039392906709878654572000087974206965736933459621825856881203424249579980801156439832614263123583423664351752820946436021153075023707808882615700671049500009230846746831220034891626779989246997660809263711172250883491877157890349378355975516676973259314213056820320492921577817717938515841081217325893412157000805998294227355850514694045699311205736175894370874542059216969461640607868359033016080070300863984607265100969176357829162466912020655099023949627977787009283808992889194976533907209648589540361046803002279699675156240860498639179726669628899852043987249517683822475372385663240231279441270441029754472151818028409583604341156795608982924328592676539637273983478772869849960832766278618001881702459704794479816193384193054536609678345721501700704617500889873146025417963273920207562980854493593223116195579670477007847183155976140984424304457415535528459055850878879541111969035818657203789265640575108651205674675561796288295008067302341101634113783834224309142356524079633296396604634804419197307922994395415124042206423237887471410981434106634437658618244681976543617956066031293020829790482012988302096473555718474130983464185144780693121854840180544613435848821984369468366453540268141437251623082342381203643858327357818507914853730464418432376752521152591534123287898530431284194922187500431994964065371382203127333917496398651477883245771957249027866710680755140892550325667816527533847535767628578250664266020552216008833059026922225054110478417777747947905340981870496326912927073594677688274857313064371692518724979781307966008204774282588786243979596783504846359523931275205047823273528489894204864846152238145816609201901707881836586134838913245091559730279708183268122274793547064002341763216492062507208317945883230193808611196899679459008420456482972798300200572352818979057282770435051493076051044896491745026749147538201279471085371742489894235089700385722745928998720545557764133815483936109703963217302578344035262840412734019210208107025610489275471305472540728261809097175905758792153281776559856761206977457171541952463797637568435435187052358202873481504224929511050730150262702420244425587074213267351156739440104983511553660937472280927654843184342105023795257297159018148144740991211993653983134773831817389555096037464718404279341874550043923133940674106769457870313896921585275009521610389255754255523276635686574967448831040532366493222630116583735810434966340742447152331124896554651877812515473114883993431490874282150534162326222091386982618011953639250647944930332638448970628830559003411926568251795166183924139952506193598272237318409631212542342725379555166828843730454564376734302044496154845437762231827574108354080688595763753722424529177662211624770899047252214814966909058652295608026688711305771484644055132060832787008087642045332544913094456467824701241732765838873602137288647762108247087640993812974059785250187974872169476454562127948242666474055642840602082877663848322837916822598653336400667974989758461234533120640191351612992615193917637173342401437868512710844684039894238622977317201403287384915223680248623755906054282799714771837049102160673597986610708389060227862320773263119853396134416779996542969143512120414054718324353501184525833049767965478665942107249979902178608784758482206496844986184065104769552649009084431611802161493994812500176335399917476942366086521187069817063427512518320627427301677302506147211064154089076860613051527484923875801549373380585005669370205514681065611814947366661297883084495245934079157185307233478070277512082635050353697381870963195405648348841007910938934260527312354162672513335650455446168234657645234597623542953403290360056771688349266963680450702646480727704284712248203186230240185839469573208103849503048133265808714609905087262228358474057534427434078116287978242574337697078020667702329707631105832817980907312272603252112050237601840565283228710212405820142798631866525479997949491813044095839156386848031264287304137198186644449898275287564741574407564892422155105296779504287632671664944074541962437400937860106226563966797194141768590659057455069990135550333706663871610748275228759391606095841935967470170676510776470822645677462167472390665010289227590606957672635027032552383733747734868096254097138213127495861601892823974118571242567561292592932580539711987230876326058929836499184544432117744462217926495639448595741621157331844989054314580771556419991434885381739455621348091800861927832534696249445166322944997258948879659369466972569248057026137171948894629710790447313185330962201448724002402920997503268796715595295046700942782766724394209550349120819342522849375818990033097947330805927959804723720122428239474170013540789754483783608201729881253687735054792251735341898293722586089506173113247695157782179393405010331414671533216428255520692650266025136727142840266162074366248763488252752369316879142224291792506450090856109441178536933058888321612820328242060731631440096218744234239857730415449734218466724840270254961277524524399133493441330430986130394867945372621103658646567237258748282299054395507112676018955901844293048631356213583258597705744118229258903771326026341593428091778472454496543068099645233582889998109637299556526249988209652826643115014462838281858088620612702364163411768849719307819221244543979208731129056715578361892373025451506858058126022354119493405458862926112984980049909287568754474617966919491006335918118901905468523745325305745557215643399223324056059692595371275213050673451281385766740655956389053749071143332515866410646258595106871880948589400978968287280873766734610602019720064690481613081564501757036728119595993067299812986920203281789651771806203064323395618657481220442225444151211529086331175961616738152406297105487184489765182973188536171628463498384214173467578198449605143069386044907866089940807820754156949520661187909527847775404236364320700709641459851139623688131873167408400790922564281931867321035217081169000447782852232420179191937964817841728962347666126972656865097901147101998724418782491383986227438194920574436592708928678202828561310117350406310324388586094678316642994552222328995134927471825012083201809230447476270240055776181877624099736547975462704107195053281104915571166999272895465525871978195092556134954243376998072760242461309830619953698466762545726837892015302251015202735787321662586418286412139292260590336423330935674044899236216333753454649669461030116199066005001931037538971427951122487458599886894829703821287589024731467689155756026658404262377506721902683772432054945398211365937813771427637721279607634566028059621472931605225318472426343217339472841647016262254828505125147235653860300428944863042884502746430977537728887083389782381747832914472012331535658673343770916074770973360887220173378590287558809381755606658352294499995297898614326484686073315781516573173138580172575616812501585318719838001721221810745126042398942056612320984050758440770859633525585692259824310705950939325269966905679986649024337720989565256183804293897665725437242134749379660062166506797413643502473288290590556979020496907954765837985410601588893464169411537897884658626973864054015451077840121029246662102552775310917587512906958575719770616865148718260858944519351932744492566095788987618296731268746719088136150154967574151832198205224881732011545587449797309710413219303884931237144863011647982433302715136987022473503939807915106351066929023445798727650793268886855024897271053480599579964526740808415873740239512031239723223118201870667664313908314207255893310273740562994355996690821430475530370970892234217011973341578459157285273267520480848845760378862556704275555928087271546952192737864514008497084655237347177685295741447969698678822146111001828870692042403306092970592241714530553886894652793540936278307742932280577134380625915694769324854274803398046987864586497228625837456527321745090672903815590306313304010367739830628733460675498626463857509664120373211924455534369574911832862418518697728856888671740085681580847350753182743959676205609697635848376073908533375100136492635133194729343057912666070859985746089302010545798455026681671367066081591225621321809095368773007073048349476341587583683581469049983619613455413490287107799150819206630018982801094251879695702431678359296551909936172596055791696588399451636106662164000337323913691123463211137055262602340138336222259878156676798398996455718421516797324522551032746579309479545298551738702842069873648740266684789428064529215520780841896371455848752152202295993914428863380321888345174646741738608102191664838928386530727194354885386613664816613397668866607179596447855586994813133480420787525529431316663252081991213566662119505506195311421085720222099649113315111286346202905192769153048354461126230410154431926262087366011386189554875723972544843922661523444413155348933434887101379204639693805746854104153416924566950156355361386277952242261474498242695270748023062431110791053738895588923585638315417806897717395738768610541713690539370734848291223413071472163156982654751005550921719248653779305253796087200868357276758354388603387929570090647706186189214702451981279635329087895321505978570343524205889783934063168539737305082551151643488991637981506991957796702261719035268413766793962926436012947459838335976967512906248471415363842412347912975098299974051259285424866290631589161183526028555083656596594155321915077600276952851073665170736533896178601389664098734049619109858749785443796932785093935945904337674601540702792465923984263958936987493316752281242551352673435502786911048548064924681889133902155666672769311311074500685324118683776742432776546223811238756584521119422568079984132162183721190369811259215691954044290616597297160428924209379681494802437486294039433935476559451524138307887809905334645984405481871774679072933075878859055212654185442908355532037641561593280915788448625731697358355607170389702006161700450590162760468158278357722549173076789916590709270147462711891393697166057732150293015923903292676015539152164045101403476046469638289078556191645370823744425877286182682095990457125643670962692920851302570973879687463678561836190625618872549855782681994037460066188252765287084010430276629128473288109865477980642234634620929325684732951166375570682247733935180728596147253842791683056442143464008170241959126025025446606076831252319566439732529956296232151531248550823969381367925335576412151263094634504195328031554802680379704586890098454326071594874978671856118716765172366075873044164765492019414532793929322288472413325051405122083070654705839728693266351257060587947192309259937059663150724130426276781713441251179623113848138858872211474258803614751356792429278576368923137096543588318481226837852383398258898104909522562745187731691336750260472661849480987930358930121890852813535708120538710707559678277730203619199372727283666967257111871247465035507660357089432942513938717659831994912230849525106492837022726677388421910687941448965206117046081314174255698371155759990928330216711778164054957416260087197267688002696002783078991839017592016817797476089451021837878348970371808620269545594494857243913705433063557591938200784036464347544004146014761965104640146443181623636633000753674886252743583793368722156808474524522948033196487226063406230673191973620408663353611002482951035926759542977432770129826471395552334627589974298980979549894945711432648502483159877677570768420815413608713990822633298078667533735566994102649383066576618518202015204393126484526625640656028589017180741902411472679864213644064424578160047644607339731691430443536962636114340926164565677222749016865808275711083161306820710968003712535426500250935115240945826766526624261686018516924469268177397086391416942430800321041941841080547391766347345315958186321997747106375404708734335330584814288023327996697858000151087912325247514054759304967159054056103488805659744954703658237558752611842702876940749282552599757134509491448135226566245609731581927621261184529116521127282884562192930410317601011756235752580377710651342922965974785876050881427566237865350270697735272851277913415161707131994032678443063947872230532220279638892793258811463369829394281507418000988416905950268048943542135028616465522814298136117846657704978584152479041829251567116503756567163234718746053086230408108420073087612620539308330404576810606073264326740088304053036311756531602392469124793456007138354084291359559598910217431992472715804516452192774475123652197512458674856436574569195336714496795558363294851074922113641689100087882893668602805125941741391747179927470232714866296621092796746256162799846343275508916321556341709075464682800533139452564353854613248606973237386133643201798485522637220132260170353362104701718832905454140464453290439871195899682897848716601188655611761826727053886405173271905960069850228112352358745063892296300246202775116451697002293429465255549468686898007043449415104504972907164438172329741193136440708479863467299631161023834797976985398750325611787887382333012884751169940748455240230332133379299043524585213494391435351380397761376327236593207303503274743642829418578293860297541363955451911067326479639663109257887393144325825256015077624030422264898419829525875595267155526581606223516707259240512009549024731215205109430934370632482269696797078534598135861039518403139730165096316504569058741086735757580944547726846147905157669861748017394707000689000098320774602087473376917924280829750812073539803020969903837113048021517185530820436544517285275878911723256462843709614282803828696475744991669975524270195763927499104293180749901772941475129690203205299676239285264141474424454074245483436291850776990665247342011429633458706737686785654286800058656586333283949156685954407250654906379687454963084375266368877068148980736603663871865022100535497244035308960070679751605897247020173343003644123159068921770819222708997506589365940158739980664983170086083687363266735319162505894678147256784427188227370206131312273284330680130986734133886168958900656446660231631633637471722845231717349839497373258075340348971725001873168935527101620233689493572671515481958123786894623715231491735823392394982595171465300347039582738592507865849303523187767393201932663814704283462214967969189134110801362027144945220068937901329966290394438720789285356034844255541270466111584191586092105027506204199225407665477480392090317894094332624037988295485950132002068737976448934875043598344763117965452986794674054880353144632166646738088490376314130724820433266645509547588850951629676768297759213032049181520191179966211529926137943978567470416916608708406894192403953366044459113278050946942458426007922910634486371964942944987533050699316844065320692038552637303690729386574543397382852943391577663607752275651658891638312544472630687508922630093952445474263504863136948100312170636774312327048520631828192976387159700048095953061098537886831391891482058930340882440669208850274441451066235947665978586346074897998903021904909144584205155462419346705620677482072435156844099959745810041050977928004691360267033258250453160248979459428304727057834658783953185149500443056194156810082752205021924760478858179462236701090198394303877913634749542981592933749980957231307063268595326560861414790126634817823657068772670270782255271261847572656901038108230784916417667958376259362496264702544358579029631918339712783800366363866521602833866568571795470532858202548341640664643031847078029497802785373769729326842666126064704562240343081341733706135172983841022357296560402354160235275528219843659622829146646940022086549752082726957805625821651006536311106845660709320447863983408447432090442003565066292822646608274389234054401742832317266729721861075278127195848737739663391340007595188528324582049700238326970109593038737395541138281404206551427214071934002030998584992998700254488931599987225311347757315592624484242069158252806661258774239931733505634040838206774631145923216916336489153694141083271457051870650324263074317848773462437376277708893039005349137957970677089803923170097565781968435776587313970133285802940538843912036771676152645430468467283155318325509220989893569749651493593083580245557598270442890826559310909967026826692417150759930077827111389629238937557508596809286149347875529285530884983146142565319516970034295211420039649325810333279546823949013096136395277796686235759955595910849495839216612098600545069667392012593872245099191798812963772305877451063824496395863818031580573644698395043010733757962331225887836120543459456648231172615976609468895744484449759914835594507425249004089033810478723757577168381773943504774313742685507131729543264336091490462505349460645071505801555409951867850134054011929306459922389279784615323898140475928488425578493474209085696787423811513611056740960445460409553806061100793037532652068701899887756978336980653669083386059438037153271283554958677022278000148425135155427695932667207214717847005610481482382130687412023650911715741042460717327977405476108407985984152939446427489528779906868973419780577917939279642217340568267293491906938939810193071055823865783090984948678643699359807089985591704163773863570768715950656365684117606043126493442011006907837802972024950838128178228871790124151146503283589856611681292656058692500061631040712049789301536935150094435385636881424157313573088529281653658342645174169413142124632594151704544642529166651994774494184030021460944127194479247810087063493823350998358693234792891650191790899147567818227860083136329529316506227177162956057001702193127944722024476081330487258615200841458533960549769051132829576110376819335221391841189950249919139618590015656518526775864275621333130443652295320554191764029554445246816736559700231976643801969849171484291350249006523042742122872066237454299686884124310165317302101830853726547007525071180360572849743979351220137909199284684562970107718680261001292919816586697466016914237021019274216886811406425339594573582426830375019002309929353601661645019735193126166346473980000423787361513586285457023749867438088879942125643102715634867651004382615945107275264021150269182320354639724038129901150897008150818363962290837639278626656092938457911517147275748725583707676187317415636948529070728175151821102359204004242471804559030559934789816821572396367590283344283077033622172846047963909760738320442559656314492924913017091961933895125173755898818671731117452089261571365151996293170712276364112443162098106419020603139607133415521655879362460353864505333375674001296764662562447526122164850141592996631141611679812084428933553798793007866777400197555564216376970121049851642532902245940411638603187208253759188834121307388875444201837086309228283248799228810971209366979665602247494697323891693890027543795422857128553938330091703084405034675105543837188237380970245169820212962676069049916024650443731770357859204023606745271912951321753531850794877335384888526255720567396270158008172643146790755075884461060808766780161047493912894650806528494555069272436219814871066460993940389520473528643282967863279205767723039651902381476670057870329600555745165274586999807962256139261846949647307131967519455689072949982447111883160771823130671166324479395850911107894591612822296310190414256405498413924749737514047046465416443816399095281466636525233248759953419436291396570014961175010997536191056050323553625584350519379861435409199985835304037620505180583788040355529176524291917822359270758970021531596956513036715098731594315843557455092674054130700414122755838740930984067328390511571807042664947693179352960824748885289609338920852320010041310852057472922439075054467340375813598860288732439626733719593587632089973955993610857625485110803150165608330033867523542125026711187993516251967549419769808360321144459230958659516696710063210278888950815925704684616566804248825439639422325456895727105796180366006196182895916017914821830039169726063210126973754020707596654024745022001776447796751635114637465211339408708409428232771718353304855571145261100176784878911603309205182152284308344465929857095041447393152068498669675943411745510411848868685219974395056269516641803258973386405345440936893230476497912084058325981121786118133149227490998805251233022481087472682613771698156467944278874845926813902146381017141680725691009357601620586492260447884324569173398966202365286763301248862785113475660230403153453751004853533782949456238549073563750448517408791487240417342607205126837515185915601893548976669609424981380567635334687781855335501756055259770428642699338807572629050856474155416196853161684135625636580771470591324543398226651491195320194426952234730339709841241260237206526560072017610299983719427229204577368531420822411939098509693977839024299382908296373526262375006092215467240352788603298924545932242999217295892475422969072048286132493457053421364599152512834982043215733062617640534232359804443274759259444541457501960954645113202762925292956092260115460321577266589291123071353134188152530013100287472383642430935976976459208004824388911069685708398584543609102747624651241598684720236269695614950649354433230747940216415307569893504311439802827620632830789750383597065940171451925753422783495317563966534924360213095332512943032428924678821286503497402628689276846614726881281366131711510192408528683819118322527970847042959404373569162605913961544719693968209270919762472622243228734099498645284410368986673377117591841819487482359919264323429716231206523030802767577142665853652995941245428478185232079441843659533535865401613898574550660239000809705368934558805413396503811875772187325351097437841338247785782813485564823696307227218964930110350148197915710835103413523622828796720843677337592359361286115368150843685727734813913810636882425195416463068975376295688191467534406283953146985467530478471553643954545810263296587251300032474739655691870476631422853507433402203680999108851694492921551492466841110873865622688105185137725454050042683391238455970879353270203155428595600853893400436835072705522860444897304094718225367390942796462450763256476480953952604394871231969303737967339158619971020409276118599095018335246391314630155128811370626035464875179678808386112919196905820488932734777876921375993463678333341675473594120771154154787374481757378515722200922871980129234074151247417356119499153139762675473887863095191888377549097487922870377509141157903754200054247741567993722258311047706467877221571595102048261110219435360622369607966404375779707793532135477769763182058271540979428308702933584280932367788755032258825089733291598712082916843175161409019332259128967368248416269717491886652572042716898005552133576466403962134878028467878377998797297092006424862663945115453720776037663243863687251385182325667501655870245310046679934258960497560121159910668661021032316519976834101358444746623747197107211437833012553839035544349782646081567452595728306728277036222928849006704279050652385984624064015990269165532925590917207209412007004942279799596431772668051778008370825641458686101194269544960937502008740728563486756671121375477450735323629204122997519183990100488981197300985172357431072458497810183322487752671252961444022259279362655193506138045415334637761513472975007051779480613043735788451382568763875125222845922396238851584168424784766984713037583279210691750035149807046040424984227049650791837995526897803040966553298471531197472307757499941614850606216678077013836781482501450633574431059470045052938491119831737743236332552198331449530003511258146632089768532501994748990172866465942634023749747672456589229679200554688537089814303346898539273383164224825812827898880320089729419121725533025500867035183764104334179260756706556676007677225496588234290298411460521254307914164048919302093177291174870263017740133774504990895056225425215580096554673798510412293515752590899720011308375177167704107186386741470002631851799248025373946222009939502972879254952846757325995928533877664870608004768387589557757504057361725827247832245832907631249507802498996655299574089959060915417553215985045159780539053888809924775531589420241051524307577660450588331101221396961871535146281071479188591147315842714252302748907110548406791352664817365862978223201855424173289283849109230832454459906555721133375167092605601337744970533058313171968718052086814954584629690319812912553497065773562456993896587353060443642336497645862072202900099050356548161499931048717880238854411369691363234972666495585840742198942983033457713304292531959447841481902505589395516691980588709752202964470723667815533861452484501548904928188342502654278175858721342207156846060451977373085194288737297547173950740724875844180887025325156234964531387151752886430157501477111577068571577800470900370150108029546895642825122839640171448674883304574462907552773614820111398572900570149705133586585560645546063488601959259708422672198680876868426883958783327341494922930289024646702022020925223186503136656285273393469286776634879563527268474773888426916950581036808802024061174036772128127034640274388512661017699610656704782517020348063191250505780201799421679466404110198961481612686771657553815143486905381197460658446765138474628322903373618233324645636815908587553542218081040481737700629501551431756310112361163556604421215651168726871254470217972358032528624426765047191034865597790177057764222691158587466177678997896143267828640654186909234803540752639173540579570454496394589321154088234977018379075103922269115641780408390271326896081568847132091915047662969058266361986432369697320879715816562370514686052486914328650013472139599274614868157715201159075419604383851225897586616288932605308316360638742639059909568200301756585679936558808337586051510993181487405137975372633998054944722677197640829774968031755672452546340216161662747960598466326230052874125687649858502140647132639097845595623563226005170497780573423827507091371544328486191816787241920883196738734540624163780590411708833462610318915170438737706088827123400307884335102267924322506014399861459071750610213178386538513818865781242917875671094177322103459985596195985282034561001536701524528515105448232315118615332692062230403898255532707161557222114734939390642844761799081137229811295120722215177371198257482833411729396474970905299173167627642776909484267859417207505964975644032814886205014534038065395181128629533919724966295981886748350275142644031054292801620816272528122691224840911077249000063625780276156648383678459350403185467718977679754380605528907456924133084313950388507450428070986223986357466027332015432633683942258994497666282554605819898105167244619521960806692063116394250564004578569878990481835950690514020989732579880379974740183743007272915166031648441309785950967246087990615778075488954958957905130970375320224560418500657664329317552939989419728268902338562799213128625114576017074309650060913343217161950758605685608815149121795514943516318912244390853530595391006676853259760796992372438795554951649945262400094800984797673622184338871772178012622843234949577355462179798950236927357299011227207535090798110640424126874598835848068303710529506279182789512266981064045529066570190279027535060584331938553691622266054300565424035582174374764727071771216487633316863121407361085066501874902733944312520340046179976072911254840911784427515470919936385935562359415018918373339005254110983880159510062655588668784345539504606851691174334150214209455724166723173492077956341492808539601634955686902835411645270366357087233892744398384151054401323733710624542703175830146287720427138572884307882270691616669416649818274565770803637606251727951263828061281163879892016605092563366357576967252130718447907996844305301146278814155150029627401780529199625809187290001066036921667310828647215924428420989869824818171632539588090976930249626579488034381599304277532064078912156090425126561129464858483388449677691950239701405006100540999522158788645043016612736484283675774708539789606413864796267289716431625902179455532580791005411525809229553212338920561164631771576311442732448283466377553070855910781761527057607377696385248579221516495962584897190423340328953557600403412820961242177162206042018140519170118692493092846847968897022109252886299046176163332733452634898495618862696872848976848014371055328451317166701332140981224025480378547928009712286947665759848008097098561186605491036723297698816624896120047487699811947480475190625062965393600963414040347399446500358963643934757398224794533259661998128531093018322105982789533883337050560408135652579068824608204960995710947968066167408416028219180809691617029841557358465143701791607224674807128493555921595712681693412000220212301383445433979362138209177832934972563723565724316582168894072365036716860983259472314329404316603857381206358000411740172530717115456125765100305141774452320285931028338509078322370288277875240446642001055129036944691194806139103138503806716075194072569600225320625892673811986918960965929276738086867975919503528654084547558263964755356715485958661967706790057337157482104580148185042441498199354829413216006403122776842119922388002308748011687328126388532363779763013379435829018266765347542638184464347578670846314607529122750202761165145917595680959591485316549112651833843026463992794268453964385418612955663913036926344735081577652883950409107145492783346680528221727123972873034217266879972183818000798177290111246112287322001239356715271084740699965990781839964921796591157293450934743564845018055600295597824652082005517295562120782775766175236185764955848975626440940230533661755698361671831245635672905546039569202928352701460433649083176247145742611440452953770308234512683970277493426132847302028877359747420328021049492145929389001930978153481250163493061182678265734110875540184100206228291719762387456156665395045146857794737282989864904180352213886117832447159157152489576946781102335723312453252849763048442020383310156537198505241804774201027218562176500758739957118265228479599273154141647215101421257618570693984558084663759284757514347928239054189129404785412788714514360160527650246057564636418622817003971104394909104103789058761299503097767340601955054481485630533652791011660617569637232336934356257880049489133705049803991576163954618935532654491566956934791224893814136532363279918504825531905756699256603149958571329259303434618688362407988087819733163806337575663103069394638221325238806214720979030357397918874958411335574941439435731132985105534753073240332436781874004636730981390652026035716217831819412530420698533387897314717431493042068783466052633282831936451743642247266672715617099515297488886970045570841278645704532101139856944444924970191005675492312803680596380272067251290664900667381730989097023867774456207393324979947066546567491957177980651965653616900012379860043511735215764299937087298819312348961725475846402495348289199950319939453310007376758257238727486183833066586693083168291094695430024811727454593231130351307171305138006143278676386509391747528385740600634094198643951222488306164952201310271012244304637458400440644770860053061511453640672384449209183310777947147581306490941437404190621395293098272635084875793096776325667536092686340915500566465491755087744240589821835943407658660325857942319014424943303049983288092165138202727845112593110416547158421806148444644606347494716599980743163309681609479255703625148044687883962438843147500783266115369805448261426945480806216199136436071430003514859348933029198155445639453333469734982666696242982852370700601182086143727576755049324537153163585691301888202767535076978582675143945164730451885977907257972216647789697398173595654852715061475677770710605145297069228225687774935668920588168808167331773861892831224839544725141540027523345670097648812694918679434719858061335493072556686610214589541474271967328189171322099359682194652412704107609135573162819407817349600180052511513023676271679683680040878658837677740539120148677169113134476212820161509030157368943760016452930093080811211359093321211836055677333219911142694879955629499346320325729924506444054051580457177067134098154943213500478813869321052426922105657368875890174163132704947875871536524291678748121822874229886836138067565906541496809325963774374035386302394095598310831997123279906184523352665995758388490255588895971305407638447672952301358201920376869536566633138479669667051630556504674056617132725109765742276286797446252202127772140641977901748311019195901439479452127376043973213443509539970545650074914259359970170990849126749987603866600489916822754230581199287969574102180564348963505439202183715315130151649989722821611515837310569417109363386858806497818243576549546738544840348212227876446036254683858979228905738729178316551606269402664039723570116866422251656840434493204364548318435760241324633507603128835813423540692596401343769138734242818483790302307152413668673292061173947213128408185634688415224654645719196392070707974996646082032114046228259982475818509632018795227626365971809658313613247405373418879091122545079724543910893875906561495194318772121530153797716767898718884566285262844096589034126553218849828582048284762510973366828014516278595769886314344972419676413197481556667245724890091603580711563540103742961445358574437801767265655059688106565657424051311525553024112448433098826956377913352105642493220811034538458318918534813931060033792404783015113707774807602273587540108868628862700681578650763175400568396812340276656371778491851393583587718439917895356215195316139745649063180649055490744075692319499312147800162934490101846877196320291041853401907781361305620138409972588440760303209865517713479013189287063293973858583524144185316528475839206163097643817933386654678363478358770262349572065269657394082412082771238647428419201129328020031666943606680187588994849895416628641563943245105102024318529513234332439182920914178576438885091334067045977560167601217407906911523172716873349768602510219257246842821895010300867181070173435757170926224634706001496400845978704790053157174085410309452431215469834023343961509211927532283991719922502188186667190331953226253997781739651285184913423335595524182151758601928548739036519671721900855016641162396227152866919435662854407566706639145552733202390841685616584645322814859902432867400711280039232276264269873378194552385334813671256656753282293112496952330977968192504826829523789071175655826555845586315161717381619800983216711817823682347169260041986730667745954631228830968096853580254605278922213361225047202508273234235745800770326834348199182742615900725248666297551158362007075833625342187007600498659560919084838846408962797854450674754181586121018272811508140767266332069028949853054796000493991058313219740018212531774515530240540461144370317690429027510597401136503544808089429466661637998126893567949827432742033172165331193046672803157113961876092729814835400834217669895553374526443494561590173525932358293737893586299595708906196513977681532901061061871445410401150743968006816841589881897090535240518306342491878342203260897936612130001328782528927290907574053218719740081208240337107503943308951554499412527819678842858794306989156195271392247579046307718092181658743660136097208136248556972451693652001332048375310574768867206210698121209357059098752272610593578367349761876350080011004499161255620986863555499362947618464420945048733354407381561854980442495120228726076715592221898946971723988148802035600584267076428572679005377192281378754131988767157908330697460872595348621834708471783703171009960506474716824215781774201320918169311465335299873912275405971807895771021661661257193179612873617075930682042564305915695626161170488442117512064118299322093613661403256222306168848255152755012124926396611402226946152030117335500460090162322956346673158297688532559114819267590751107580033829003770619242080533860692488336338806626098645386381716667844585714524639535053136613837578766515098014761982699605242231581941773213577691240704978889762424493174082408199044193289475873233413288723521590081674556656525632366632810581335313961885228087651617513331024591227070797542396546698927430102553007569706841860873392891091880501841329884200593265466309176363117177120246721090655907742872156085922770578214708300417788159457309323419965701852694824932538772885630387479735884440894853319626506584908343600824073708077857444943489122135247504003941110991791903456282138731931987018130034486757471500726545844945564122863297632351081624280002737585182005781045694957175713731348429972228816509999554690461545861181099500155839524688480778281821967793271301321127772624403756566582998834936322385579597834744101469173437093537537578373043122811733148527575162098607266187346558995503278771947348803811730898701821537187418463007143457572883183309322626460334878315384471721916495303692503763014295831620751958320478912455670644172526175471314470953744130347852647994027285254691743311675977863751687994555552708604909593740153942619960935252140727595940762095705364206320207642773380219468295727056937577755053740396127394500065869790812529771554789572154086159782905024043834940129261510844435068707122533530069841181118435186435007623612522747403959360350713125041837418078184237024445246335142473623371531542444217014544913463502154020310879989431716268473347187526545624962449534152033996563848321700721264056624094198143182294551135250797737499574603784489967681396798247940700778604480458693511539184660115092973505779836177250766057748671632177348096697131177029014878662185857475557237434143629229524742874554847819558173257372441365112803837236672805179303225675931103537889823599627665262307302197003191925509755754957295550977003463465181393120175258267156288747137311767619816741679668602004970768334633085987316766371098307279678652740136674050054553298692520546745168197781654541494224225692685834658872085128131490847032034488161675930723026207523145297052764456462654512524022219784288033086265125127028916580926873000951078879776213780528562140352804289774362600927381923412646064045517064409899803650701955181238220543430483534097946355671340015388257411574477841252660619100101731272711704386835240641687445381035993187657228275353735202433807877364746872055430444876484753857111470654023083918942349248638526360772321996099793866788109169636806850300086824682517997710985287062334723865026138458336576723923616196465940213692193385039615714991337635709300565253672860630401235043934829190717724555761326396844687577270079537646543273606600637153840624467542005308584506571930471992384947895852957032867110908904906506873476614727287538289936480494354786083534268642309254421831484205336180887351548759958827137897454668557372733545298024052135245468458025003172665182556776190719295577297913428923299288032216841958333832290022116115040594425633208569710131304283854858655026290932975531078035094418901073345212677776891899964426281487492870204747415729423926146401842815850229600754356739159182821293731965176210894019100750457059860150674517219059103112366551638239751795838175180257223757407107751551285162026271457625181542442761006340983798414826295542413104118877734016677300029878232231108131703461276911395119170596463703121658438833173596942614001589033393940265234157597132978776741367550964911433696998040861900788163378321768888216132159772008842295633761799152014730477266677554873846785772615570277434134796150060772008921742014513796399969850370337625509880916334783400166484051131258254710892554054681984791497035742496418549567399507325390888218773777384146140369322267957564908401490760372028148350060018334643310351128331720750021064026012825569594613383673515446195885353780093798622396261483291350394413331154555572382077380171734315991917265880783515518597633837342807713114537163883338180085725176761912044833146702661355732101475082941680135829624013109540864138003062730496078779187014282150884938376230878808898722430686718628903640668788747737343239108288951085151175448730689187181463711533318855946217600084844856451129608806288110419389426707774395449103642508073333478786822436784964661683638577965282043530861486663308771065164638671126785889101832301108379024930000112760126978421255102142970254025832274952216258525385636284441709030431952989677971967753040133701738497456481865911817579973177535894684550967017480442208507835575377719185420357706684697360455234625189879332942791431590913524576904498016116756723570018551517029265016205625290737539952626868006376156321947482051012229785689236081447183244818104887846125306085817007281409692169431007656212170956492945298597118256375882835523053882704043124446479168594915238421247777809843120524756883455902648865653570515551243999897991722150469420716246934874656477131973080206870535674141945169459776822597205705012927672551093101996648314639620001048148147827045520803217997249200805719294367687650553373042977524896311592713053955654122267024451195859028955189088383338821654820972795871541677285416928643796554737296628826547712319798960129454952641370813691128047666975966178468402355206210834801250482185481039774908034651721928992863215166181029132588522432054635999324294409092135704548903758126001133681702891738148216418563314701785787567898643607165827612062060119746877220618357533069693506066994679571382442793774271177645867021254867986337241834277001223380685041908795274141468668361381323040493239850748170255340536392563419202768180437855606693962881815468075613653359472045663912423348282869783525006786759634989194672181960989530835647947229832055955775965251967574732516786787641233082174962796640074813201923834767317003185881452413271452565012210225157047007042385224890498020202402176149478567515470538882027607724362952864090888049823334077498044636876448102461000160805858687235530796025152078083621887079443596687924532016172660084272015686212149510347428081281759332033562518507682381066704827283109877879968131441391197492586615339766993128147032080979940291488366016560675814689865196854664144473791797369146790743806059180117097100370975242195794472959241669169538987458924600389249614165573379555302250796031600051147010499217868924386038297039417054444084070216570882114387970658365453672118136308962215551946776730149065434644134397372276220421877911112700940136901815564084010122195157390947068658885813660833602091219408480660481657832032333853018757123305949633430826183078548705594443361719498344005341200817871891337751629395005971616799180660082397546061504950060630768945730760186282265150094316615761111626794855234421799163080890210590679252752944523536000122736001097889561125788479449897882223368942828366355571264787475169364856920000385782823767068737930830961721100439720135665262516084275732642418016745847493149944965358748560578841400391895902030164036535233033466458696104022885470167833480844818961799657956607957360207963717000568859797406110968394253817660056719366490360383464170763094154978730131503103589461793168085774638288840002811907844927391530610187281978321818085376307009734901561574375638697652402084935578825808034339367013138631409352809430951470729332280650784067664245416624616136976618209020826381546087617922402703117524671885519515951575124866057208526151330323185187929758457279278695255150283000396767510327675104611463740809371305646232512518244429829717531085977724217260323192528454886892784588638767339912043853766055253883607788067648102348427007551664381121250603648578147289267958195656576743035328256097125035196099685748008576604999663963860304746630133375134684103458184883512046238195757741816309147303221831809501938775588009433406751498228598114191286079357490831104569142728029570648219359133001521565261167794637730189191299551955282620230284496551683221603710999010285537565481780341139210074844019441066223201673169137798398095602306192896994271856376056436831690338279993686512754355914885487772945781683165806590902827152200187782557323180212627676458018475401556750993025113593140427799568961725605896972914016820400837395775620692277028118004706670330083572134402667875079877463682829490278562432390689603141546121560399331076588420118634031271049391324818201176698947419391778403450152687298148724170707747062168735793839075251093151529758641449861324082618956732211345095073451512955270574207771786236608413054249937272331426895435488089797034954832270038500819548208226077514502481499381830799317601372757709630160802788831596861838045866550259764865682366121823122456524825812508000982816689632823060032579136437225591717874354733644974653297048854576310043287177241219426115644200162541621290673980054968598666066755260739879976431480426280201178843531331658358548297990589075284789617620713772503328164804907990942782020471870565933260065213393662783884779046774137318565890445645294131184357391054795028266322357424602309142185413218619134051051573105475147299570735696212412644098663858041559400158249241384197896147332452683071918119579423452278602494610648227990589250481240357542707725067191669674004527365773670725330078264870500983913578668123139130362858011369672872387604350471061050492983962783485340904834362042828247957134661106066554148760757527584330265325223704605443071810294425244435119933871319757297070343507566695163457808388811753059249537982243833397809800422270578957869945574466423462649758562097034807692166612659285491754952372035624931364283796399450733535128646233908067021912487454667347045311509152989167933215002689000501399395864143954507855431965949634936730878904844836492706231678517437716807171208980630513168790830840496509679953066969115289990153857153643158744069933475937395286546547196801629938882000762245853934167235266980708156053085947348572086096226266141778676261843428378174495703460645240822365611821411469758061850896446067195294816396976757674872329628199720789324623848985353632527445718997784072191862468381260028311699111557776653849510698511979703369689550797299805979602131061479517261422865518928121425914658483063225596110628570943697049845660779731820677358040963671627613606681444876858937228460971297127062495540938887956665261174338876628286178988236566956168664571623724297621016514040006618756736330846909544941608584890943056575576507409883842363869250571307674406709599884898270507668521010752449720111580281447886683474096097897424928382304281561437833393386946503965981065649231672518678763477050131154770020206155633769600611909319903742100934213203043665443863411570854135683806748737301944703999765856003123909936555104714644888541813193117279692476563540277679839830494215193579336785506145795168629587177803558633748633315227376848114932573513391171253284901179106294464029286311830843781685401459335117874798518123984056267758890904120161949767212947550082355433398824575601008313682449064172240750236691532318614537609086470369517955327062596223662412347196507063400613909055444267891168469709245541698112067889665230440917276927352429226373322405585655056743957599265281288966578282891789771675951530957647156893184971269183630600056600140627669438453265240866618433106072406965838116389461288741779389776320074375238535993685855294864165212070775816843357555984860917939048765925627484459940268182504843328214825219967246638636775570926034236161181572339638687015930568947615343536863465678732284318124779297438563819108035939852573297686612284603398870610657738634478254293715367132812201977166359522275507556030455515109152100283552397506681902142558119403026357290948781954051206769481188853403776333166501552077260831378480928887096288384837210785855463191097248920673665843608953535760399996918564552374275733277990867391041528481181870664393692643802844169367041558345895112801619638873927664867007991183731954001840121094380341464571516622019652690794572808257886171824395106279527916531360809818778872806924832406507231639026505566740714120586772044149354402223871113229528151873999603144003437586204372859328112251419767945340547286853172618811579330583095008094326095647749362640337513719599030081300213883149555868005829642391942624027332128649965733369239652453496154568674270764446566028108437937241901017995932206919707564597015467414786082365989292024571935246903846235409849551098843745290853112099801413575867013465990942757440722772460415247174278788207128183910791202756814891707859947323031941886024486557984382779307311897309176344792380289095756153797855219340068880629078527457267786322391730660270422289451971145874549221520060736412729348132133984541972034458893443847134458688688353031608905325059525045335222495079986903332627436801749152257684173510331454870109756465803764796740062976173573753191071800142270111340880520088473889564566306708684523031729498810657331010021653469685778049797952575226454143672895605088878088179050662787957354556024497721905579059825784537377328875722752014715518593348425978181005454772895823493294335160590586493135386736571985681294849682996106455081765001821365561285812155442930385950443367437201877954224802843049110528216360397267543182106176144692443765802934889374938010884349535262638503313807437318142654107069995451252868780962652328635605268747179974088565747520669928826328210347186984828593974065186094782818986379116562176965111923398197119247218627685672454029166406193012272612891772433994145476583073662229299909645356184804090181195509940841136192469386001519276587871057566540679487230197530868165855260557151825486998805469754327340481667215480164098938814893684045535871786253711408273357313101803729044090120568324397472692679969777096452402312098061779203813137546128156769416891296914599651646354182241610852576359860109683780811806272211038346934500110489405103903738227949392578534157474552519297519051163150232903177595734268897136417847721453424516776326722097400768169465184005729193208270706972949102519301928776003639295650469190018236926218510331020315750569228020827608680716726803258281065623649685462457375105077250903923974924319041462477089284499144885772350114769868378693357922437944278843309646997313354672831209240918398683795655890513161726739582368563075235990165518266368932523849392050153877476669282535564393081478383601304205143518616823974252341087765652754776529569144132217768110057476950273758895451883539410771266855472504840505294930866929505991373043267706236968954666638591939856518817019774118637769960087182142052490116022239590737954560404966627008187295440069921628457633803760717374330840994696682380470580339742794687015131702631293147780975335278869074241603153189074883868724566150226267059610259105022139205605022536719899142403279827555657604374163236012487927903534291477331475016039001688175126595337909222012548648139819100893345900669861424667898182739166259544655927925673805335539711415866778932696714123769779165041134812920278252795439510950247967791349239176781785540173308805014315043832834671020004147323862696546147483682598565869960075767269808364907592323971020397281435915714340362660061243991773157484615802051054339810393585856825903382156933812107918449850303006203352634560447393431992919492696530415007992456343359581480464942066428607249659555443452148006116072154504900191641156516120116207589971176552876787348064194992676664881205935592371665187760069838899696732272586773901097577602066149730031257142414289454948544821003419378280497459446008781655697176677357943309504091141985064168446293976780023930861940771588933898027086034520040073484876374178414318834057482333804807630978061649298580765297054037587029826743424293365447705229568410805706668139740915149987095032748067038646348292144534136751679877330761923417835001884682882779172499632344794714331844007394590763862853335974689318643149054968866742286125847248692153109448973272689023767948639704686514508110472484060975456170504346925847927989654188793057816010520626710560674032914171798601497072897361085088567818681933509744433763433987914993867164024791942777848548550222786371488960029645373584867709772913496726787649874637368530730395693357677458414330872949033308559247949131094635806969979938371465358382948638209754253559963168365147896958425876945965334719144184864370249863576923558957004368631512137422717101860743093691511841167269111839737418135795962831686162176484991096087989472131741760893619521314487736538052548159239017786001114768181738757104455497793693086758938233331458908069458538647003290357968046712321167610941697618383386153049398013150889331491005490009780237360069387358984634848707707339964634073456342822821490970046186496073358416729963562083753604633896545262766386021126171958597446742991899587792984571518589590479640980072540551484432254515165600302931608408796193611308401131792625432809595802775783311017914191533962755556334389675425572667581606924373992839056065638929531826845669784651083488181328203483472895845928140977306410218749800614253007906657393995798093569227573954239900970715264358866899101697922369484788855112604066282699610796886439940815651483537894180386990991661662256304197025099119463941000687472816658130630630013214491626113620574349214075394974525306230147086760253834771476125841897497936807965157873345498979665705093602685273628387715681069135743005572970748271730535887295704771524574365343957153626789042125531028571383446146394712257432763387792287874514827663127561628257603995300165317570501451640224918979609174346491807433729493610077074178616213729106018954998133129595308957881848871343091844256891019728143224466912515775693334527963467867003263618972219069640146988886092054812341736156647891536656974643705905178381413857638792991634077457176515498500338458924432563723963770767156286367687290366944229579561792427182267703597607699073833745287563489859498253976573893502223612009255019078239500361833511247668380007829880883469467437023593847135625555893096963589055268524714212181602417967767774922637014021575670546934469939547241603459715191947619949662602584758269080173507803333433996894003877312076329226881683436495677103916186867330390745493268631598321390376459151485370382348119004217073428538487091425563908642503528900063714422437327998488448659903627380070913463563066795012882860380310216035843191729576254495376142150568808193585092849124342420041268390492323752129077736343572184048188001870259100028703354246248077586570702300269501934479770665633286862297355470728271649216638906159358139464883842560333950920382291406537200449966208450590899458006201510030269082833123735523426300544251298015125093501853987304828274089037737336172024763639040887681103636480359763606809578415541877117183113882246395627242551191398302482788872217692719756604813887707197072234167703880020451378496651293916551602304173710534542145465113460379607525704571966007133313221642624989493465382178171653932055962502314781239412310220863451559875857697245923140167215980365347233273181997105290640480424017523681202564984953950846841516446038515846325299393325144542266561602146929542061938606901297591645903712752734133891360363980740371018986030734748340489400140216488422364659164117368941444302793990814184312785033147878496719655721459104908935934379348479702080614458109088816592226367443308747636736763226687224689151767595398038945792107899290077127108729892436906267055086543440347239019437324028725432091991384388769744804140815957598923282793354382511793716201980313332147231298803950399643809321220323333462159539251093519581774882652524288509340338317427987414129611382769228803095661311724685303647646912875889972298202556200450433247412668966569699480117481815566687774160531486053716325933524195043752154585117683503947305817097245830222972667291422281448583457510583763967156261764896808813505845332766726546203121890269593190709713965634622883298914882286398372647191621423865066896433906224499576746015862646207852343986655463663613451023871284152287581350646546118046296835793173837648877216821646581167173593422372551669251180616050788530371749492754495213294232786310376958271851802331424049265420309605087770109236348234952591335221449117437991508661946455606073283060057442609160591099052158843891856605531503539850942144878564526561242198922080077183550649760760010592381460232592428429233007044454617127895094423265473594362013585291710952461490827610187742247039959221763529630783311720513605030389720630102614286832083475018272588123946131125168884385787870492731427483612774268216655544544413168472492492255899611402579597605544684033407123020815944374059882360454008801146006915953776539741224988218626587918448161316063065871599263635697518226645528661694484386078749917757139373599178796764513455796702754245156000640773447142648127798337668250111196781749035058204633976843621392591989869981125799107506803885759826458701351482505389634046710402823545913302381514350835991020067472172352554425349023257162932754055037977127432794191344149645454380403272640678733549323324837531007819349239627320015859562971512475113545240264831853078057193152397391157320256485538376811396500775566156836710604830927232326941455695370430739452332120420398706085500054994053874358369700305383609812095227078491188367958040491181904817101029778240529668382365539874278189804827294035929403022315749927060170720791381130977836028309013717833481084678962979167284864816276669869793223369281399491120243642617664632876265074863710500469890529118167726863886815989703027675601955179313497561780458842294344293490050349079419466691648597339537287246292668623218052215228949759495017374402391109401891975178870350653296425973974239085732170527421548980882536516688446544924815586689740488621326184565750912981855512670815440036666697164642568346344923122183677867604287336373212554068466703497676164466362495166972056758670064749494744467232032868048554611546159674155440639724288014841548330711799008494705613607773435481924761236008504519828277774782575359789957861927141203753452353191350315859125118472034843823562107217705979781477134161225007104852355661594821154185443145219365673003182453280559122108826312820570735347830241323692416978704165122417231715303696093042630024450752441846717115661687695919641626377643172602593553659587585291599759864381024326550810842728579306780494170583695014837696698812560872194640504595200706859615115306670449347099210593032530810881664532359749260251934466178288125570481367602725383977036247428901159626768924240282250332077925043843386371178181449352137310597221951231403972202424092580026090511631047537932746648221879325694618540717832012089118466108107869485404595896518287906417824078724715046840839670081789701900520421096752401748487473557992413108495173689141266277042418344867430262041849110270200699176118430642651844315043347397359281360738547768226535603764348346880273907512102102694319807500608794761911005214620443899712009395536056989050103676249206181517383722512331764370087150470008390419245039686280589323108418335727050206253157236637238058045124481927941076598993765594334191646137744674691475528159350162522881795068815234162694702374577241145289893578551815328661890480980949370298073433981742722792450210138383191634426413418935981813553178623972889985843611108652241263656393281403660218856165325763454432883400254831903399994830760049096506620246059675417804645129088704071894865895510102702079597059383236048040706735963780772777716587242296799694681218868632488865920125756669113754181509988628441083149221326747144385228258336286947238557626585102891734626789168147169632547233791460467917550942739725352112829832873042182842700780766676470863252489646923721106865679840353731983584233559598060894035840450813435877132707923092444994941395295693316531040668988757723228333520589253765132632558363808676070395847744688293745510802063314397634797358531382027046724865221740867510835615418494969559278569229602535851917111188992696856004538030552608296666033207646860569484255033594844374979095893916590007125117029381355554377015532252762366485776483197317848183811326074189689196756613978668383235483801502783608101472460129240039506080637367943875309277787982943018954348377778056711432346539587355887487396495706095778507307124879728294538989750540445535472359978436713882204612538002440854021453277045320489648603993922506309776326276968736009847446788091161025556256654330667052901990207934642377536363229549324144078340137029291321585933497857183299855595358603142743179148993478035433074676630546246759805184167040074651907214469752488387392430559755532344687222361465748475096791884686039165039460718253344079223028120023724883936762623739412898552439691287948317301069976311486701914066476107391701004877623778618537969314426584303130036602459136870372877871792469932837161257870682487218584408092284536515117427560219783823196583822216590710579804448001801732747064697664230615379605408464905528324843760715897593443694751026130312055054226331872243392000617325129608159903751695705633729244672083481308556704693810319700639523299801675080046845675896677018834675498534122033821278876084261069561365234827889866301354196364827415279023546956686058307371882346062039042940019763784829743494182101789540986958766276647792999735918388196991333371212310742783182708133620324400352226255897108502049613444131998664280161960498183717105713388705260867767168200811958711397487010574366317271122246682002405533500072730879356875404271869747848447795301960369074978947184988515045159224551222793385235323339381432526663845949560144061374276836662144480088595777554792226231525787061218988148626166226006333193695537390002173476531126929164902579485991503392626918892003456085642891842797468431574928991415752983872658469324585155914848805574592676375760890233999809346655731945114655536035741400536854620067217489764549288857816603313326747654181217251499663670370348705194698967496182959817158882336738940230823764621742260766078529782902142937653410503153277352432259400934771413060140547018124985545325623428778726069229478776525840469958881467661815325484867204587461742505595324763246799737461253274819068336985277339444742281182643656811590644384524601413324195816783298053205326816076791549124814505763312371069435253658584779386975161237524181158224739987467196895605506485040759821177752403928708806379064075062665168672167959225038514082693901379463496247285120188497529982487627526392682989536501579982788797711641212032762815300731221771975772404837831249166870865356440183866363140400805899685220038520100267645115890900985678332588385419466280793670483008969053603674865721966423713067234332650358079536667992440034384640432300708782636731810772653694644959668444583723802329399199285289960752022515092227741523872996254647823070797780141846578362557108071973142704394334248876692205741696278486867085684670836183450187121276684394294151939051117111819271140845949464141083224454612533475746988841190365029084374284672935940127352926641805120778216864386376820986428845556043087320840152020195851117649526871409052813593011438722764327884505968928211224635895698690740648300151806960296274948824069774091076202763836420744892476325270451552504387730408823984538716154691221686447182304228987054463553670912224776997154335985440475758571421276916443718001640873280926803076436455805982816498871645266834664454681900636516697053296809701046478603656033972935485363676416358836603022821302978382389373038341264881040258283412341220443151971943154975859907067095887001485795261571941056916024464878238638440105439775566458278957361811082091003130854748159297543918187252908759171249384618839436241576684433532590463290790845966881482039714126883403175548631911892717099730152972426764008372373363018804267753152775627736153010937950266196093379943590932849131156201217081820731340674408601390140793438296873093925657903513149496108612485535608661579801632854604504871534055165535517172024301828186076771922649941130089142324515621027701084568436979337656680169824132295818581658040507636038163133782935385974766211136159499562314048271150856260152786521361541994659824557309255549400100009312409258392283179404919934522243295168263310252368958073086906202744865909839584255977271647579588195138818281531179329632317941007803400313733738210041138659756547221875641035823773867259997988507631947978722287052539047534476664501549489468718570123984438624537543878857658598797209347474486232192577766580912008753745131704343548647540892033988465529098857726246095829276242741281326556732525566039628655000177769997836197992650295294385152318707199583942337024179981374103755648069610359319311873524258331408455995006901034075934019925133566453418044479276819745964556936835678879283095635384182509773710031022722679274794153510592501597222926192762839876406579168385276036629838701636233523158479772759655992759180574403764576844925560697725282891912433040601521416529906186324500634178384751427990296422415698104469222872551349024771637657404760573131323293615659069262175056878939036082222781835603164947720216101923403063002409345170060630561457656111313136162930127666078765719163960293051812442982088291705223493549470934208104562469286628715136665298370985355449448836876552813500894431775426958352897816582042008142801841243975280637746128512374452392396628305020435442876425123662332608684773230714881556925506442869353263288470969060430154218577509048595786257212687312729340434845344734237818519737363257105774505887511054646663381122806581555132190083111553366541194112018034958172207018155262238170446201772708962310366167287887449415539348935503089600533201154820231951127163716348325915557860205720515716770912565742504548481454197598393331843108361698784277559031705169563753433186854794405792394936736468342321704337188080120937011074411491823601180202674721054644293747802970314357934653780993381237729502662631910038432425874597236289378308588344679934838167290106107636428788864876538638923535335102245349876913732630925355166757979631923891449766555186372267862128437382441907498068638639502247113290705341292005769528829909980302848408878043244729528973954720519284903978526764950165108812944236858272152618861709901614910413169658256169865530957299123760512194300833292607797385159538100606757293527969140856153996867223245283634968361772548663268337234523708893577676230723687154243450702972727827385150970749031476902730683122919907913526472405278487566883592065452341875402848933841712544435054554098101728088763479964465746471999007103329737337342824291816659784864130059100586543599144696419531444265178072717657735453929824234014917457646925191846971591376727776274682663562010609646721602450030718990990345159790043626565775439926277959959451185279336108613367206559157781242665358242330991398100621632505346560290570030781924325159146757904184144780774023151620119122293852914218825075509647409225873529627731150824763506279287988510218810369862870967760298755969287425788740452514510359622602434591508055926838143541383520408657321263077748235107247589091103766777396983199785431040919179877508256801787645718537391532538394238559807679204848480444358517475037085367327330828510336770449024432528954590553036542329491657924062898263386880842161941730919972233841864637007410713984994817999430653489825703536692015407426368820133056390486006865638126385439529918559584755792681999208082831174055406787201446213061620870957028630120227495599338460742648736857992326411620699213870767597724144103033532826949521660403429260127297704568272703422803105013762402393077409744048385850352191410316539964601615618079617005511884912672804334272369845316108561359754105096991077599583625141940625670755993424944488961042810452207159335464613405508814969231767744639107989013895521031529145072244999056613039143627915911655242834778168030692467217913095119375434824574688947147031759927225082383658973969490198922826768787453057912638975352135640128799030168803845804805106389088963555353116565470053363987981202317076981889404095817722126351363134686138313127012876915788176675449485857250320545643771692277831949613296158250274725366434628875749411096300101333565948867611343717949499585492281459716709989353116957702756386800758494622357865504168323795826181677640501879730393456463970678893821195935391179296800058311072038393915554863648118285825512434251304119890769526172253224133179311271687278237160042616182292872992640873569841976293397857758318234630139316550410675301139569583965698348344733389433342376860845359419296628317637463212631592024810047773750412090024452648817145963056319441823438240435996873682276402889089981526858925587168488280176016790459962775992486996943233754830318323099629525728476996740351893711501200279680225583451682024207563269615647734260481874984614211455271949658166758268359619598086315794608694964861608176598364816918278283476590008092878227463144841227152459079098222553395836335476414657972191357457314449406468097601769148677011460381769572007508856944232061903141853448776949177641691108581843508337347686224457819516940116137558335189617333668054163801959942116583424171735015061285513299211123726362634682940910832713331990464057857919640863528240911147748416076713961485329151127066989738043854346378239751204863176954012783144627188285011340820184055203350746438790437943934492266847681909443298721351821283650866706287139304226973185624975768048543019275034839481590975825134435687068672466384713907067406810726936793021915113632676382916199341772196391882147099571976821209704149184572060641126273823943695876833426509402243844694983065614344974782020901286052848361425376468279162231113211433055428271701408344439370711429185645453608986748293773255091614013782836892532395058525909369907870857969015959295999404685947720345485074037469475991766612253038723996963034502619719197605136179758702233445549702777742938994628510826476587371403003523667600050165431897314949124367911910286750155917478302327251942801678877843252203274147672515973804602476395424062430829937868581679439886312767389526790054443938525177249398686020533493023397706449240484953120664168875301172428602227425763441944823728061355496360580592796293295495196516491867128173493598761276319017201992271935065551462516847673916898129023214680529929107230639717155159004169571223874965940497096060629590779205389439754438524547788416816291035292667127611094203746130320542340026989273484143920955966125140479980985282385939853309370923743866958669233852234694567185637199853599260476101640285929015972306866354182519271374064774185354789624069629808374233935758964991672621719182789636231563142406304609384635382883834795960558769341113487485874811013800026545140724731456501235993523086120230154823952696687678968630444142459416440043322382188192638098643267031350398014207791162598433852658074604152844401548723445673267935310843725214446439692463609238679648638185510755490417127888245107847735199067756907532481090160268159295196857176405825639864102204398378343664247746600056196534173505751082924527255431351261292355307165042197844824267234827623649555581718299169400337637617823484301891961574691338539432160127595227015753413078860960538316292990946314758319823630251721328579764736245371698123408463135076329600152044851258097723654624675205940426296178933071786727508667790311872398829981089158747770603193018992106087742156224054044172524210934744861528648147760684790074630794635028724398324947753693727227669163191596327953139266017901683498170475699809353216177414534935880834161902153213093099895786265125075503931200379865730243586995267869854782699481627286665022254451037895574155316750861901486981380797443398339942144914099724587990098543891331800155966398570983484631828522403864377545645273813313676471590785841510421858797670731074591950415698435215180843498800902772770505025988370466556293818104705772460570760192548558458011259039824517916570193346085419534548950223701509814983641933704534190544271763444617460693981886468238951712034463069224367707009538560253096245259191985585847853997094400228847879777684018816202011292370755287940673303695323331696377748409597199286927245827606990581831289952042046509830903510606804133163260881693683737336272711980076818673764483794906139528888543535214106241978426398691579212766846755015403303597570206929934029785752871580213337268954817175095907624983081168456626173055357179251183352015498204631237445587036035832982035394107056579577065321368085018494496830494392688649916835552104473770583782957709852086455212222100205648804137897563622379955007954553762502301376562819862493359819802276643840600178563229607082526392144732529350006775247040739482598438892644074981320907711928860144981246910400782867258491842084137579564126136760463360052631429805407929072518353733859242679115739612689954697142071335581750849240560478503156812133697189402401706646329414118891919562844416826715293932162604602833412344954071277064758783473445701361003461026646897926272289603337167737720662501276332126235621089774722290424220739183511375373418431242499996678211135395241579318481748536770569609792723551484631536636917648827310149168936451572911414615136067787847839985562878162071357027966809990159410363019911983491906881461517851379033125492962437662718274082860606677271764103197616657742316633345987002572718787352551976306061282480889830471989925071453714474777499398597247543389482009847615557364362407955495996854069523966286487376598544045913867281828075001617058618648422860536701984709157474911173616718734350736552490524096701258658802281719664838274608121614455960960640128902300020599622000942623956116991810687585449050913092420468662845172907554169092928706535729440028716093400402678073333164644490772810044046482886137385633923799744939213888877144526860731688421783130206873327073151554019550567411626371694379859963321163586410858862178827643303884271578437293709286375543742961590679437797608236893894279261833944392669138973570216919857288876685317875155457469789916942123532298666575451978696914395222337775385272044161950853048568580868866653134181033583245963731468695403066725532492193903945206709612270585340439549773888956684925526380827440887701974764555224829836355647515812885327449236393831324912496223073430906351435863701991490142965553192283211265711946378985221067440405458464243637764998059245780680830819667423466758749572544937541548426495283199588151997020226233508265450413329435267383163137988753677052140560172545693685745332476408115204438417898070433013382444328338392383230640463509770169569965380137667804006139000918644915174994204758106802360143932992106769148906479399114252298667731419235073209169967062812932078738933521449662664269978530663352177224964361216257185022005563835707650828626502964711086426123007669081468057257414374404481506886073997014236930505442111529560439931780103704117417363148577177157628402215247250846461281589408894468245413667055502891532106867055879935192272958617883997704640292100484344979453083581233093752197699356286812501093595456343759056883911760165261010036885345261584023096683338148761459264082079700133202522852277472423736106436834776289798035998278740813995941317010935851249215544506686494532670191035418009351645057255090813095814688807829082354361727222101433710878368335999936541582317642402965936306314462226270627199610457713392628101467702029171647402404484905672479704967202316203728865897020739419664706143124822459148587409125148498452211198287137462106036484541911820719528124971704619316666742700064684627047750494699512658717594002029179878902487162502977447491575147650357158210781246233659402813193209692836432180489987944569311829251987220342249208021478172538664341999614150209067455697354005671477841984714423394754029648091440996626719771753171580410096529108886488358393921733156461654118566523905650914097083744102755818551454198703438798877876809071578082424861714607609761560561971721747542386011334940594765119992765444721483715966780393008932324231549068695364776453445461670934342185654205265563958535696579354491122061784319344234354860937622817965523751224002379715054161883847133263992091644185821206947220002542183349521214525569364780477746984662198209692979912537703120642428941294276264878495399772730939840121999227878165207779109856956402016097750076788434882682701966243246218045616646664855478932078207966201585620733540339967598600200438073208575437678678757005029173927234978171738083466564858936488611683878417728503814388047843460642167275364467402458494137034463538641326744273106187797792218791608758917138000343086819778057108992894261781795529067795017011173546839767872233650189378122560010689845001305183738769307087053383432595003624722739614088854344548349975835729350306064787747166167646628640854759508002699597966429395919996303199999686401163011011857135544285459323310008161844179368662597270436157877143305517547910223641871903928744059985534642321132778710571216553533951136132497472136890734102518210765471377339773681410921796170105303776377669205153160117727675258176833303957959505739695092127316287667988179110052111586462772200940701400881699642278565151285913236439723621881265446871291978449087646500765797956547260794494275626711370521184305369128784553287949685087628012420557527863461813972108292857660223261444427007342345172195793502418134801709331584374716913133985732870271901690410110823840088724312611372577351376391905594078543888213434580461922086758030177169302921321735838160629095832495418377852629686118224166838404982008128381897798467115971234966230195633576814205271955335437573687799217499144133166193399970192633028024224147740813172106446237596259232499690567351405618998479708262573315904718742722843422144816605777867355339793489405069406131798632175268184644091765479689921550714799250335472198443495463168841081543519117068637033186201160320051072555084187446549785891126889755331497422840604746203571531226859773985054893976568851722876371695209022160946684801523700059994962281478140574845037594068284503789216715572923038691301308867895808271339885479714177712078294530499638152233052826248217346533751121081721448565952673779921929270990592506765618348877970590478808027995870759648578123792362376576199202670275387676249027842028762782578737560795082980228067118282079756011820898726104956793399967663921984583776791065292334275374421732290738291595010889823843930186995281398866828790817297984139796997610374633981905840644031761063707203283017687934145723635507513823193295151477808018212431491492537719264280120206294277970189559540037231248178090333805534699342333028397879570864376836377679804679833315664616034898115152330939786809783216474169865448991993590870195365659530395885712685858900951173452469109715588559662756458678588558998670821139914040529336546723223961020735138049619243852552269123054724146118351556529004852892859911150217692535622727220179864608866117250454219363322852409144299097521209803669941589521606172826342861230159954692004968749985319261447982955271111100145958014060058454043056618512307950002011222397083397122570396326506844747214213675739590026423989503097987154230065832300380313079935282760368033927798260578299629280815739485058200228897924509939834557885460713151916528594013543908557196187756833322674992376746543300553484226333532457968232289111877034514403455099286123040021473501427629757478213719777009037137626032287021930634104731583853015826347759999906437888966705198810415186171927914348178237009266208983819133861490634669034482654080933120752299659240730463778922662868421705146556009638358733748182274946368994554826381797692660359489739812823555437348328112328566293759377791892096105970943256291549807074220315052979187775101978992402889698579032751776902146545264345172774060773395922501204530464340835892268346857044228316510414721081327462093355225296037576532458810445762264521359516252108644454453357108537812338002973803431880916453201675024583616257755112113939452680231595686855797907607875858136031298535336512284568037694091138485815798302055029586486505796130239505953813308156432422164314447842628271834834571280095522828009384184822796329013071524599533314909176479098009547579589828412432137570647585713183283709547955766587300703448461745920778675758334639130376719835275650911033155608757833384593014279880129381300001431911043469401849690304790438234272729562477193636337406825053328786244200209779881648367396256846197622636182626661855847610478544550974687712764617325556800338723779102469206694994362836874865029841880896299999883918880431691918033130350784360621987637426949327341310228075601431998189176663486489580395197734774902818592695789239248741430356406170277816636985369465860830363795158804713766379470461751109142952299597347691713948555833469075613579958558031441944673994332773591733773245181578020204754470741762297702385503400897359494593350127190911725572480697581005137672824002389236099054378873105620520282280040447255985185746899446353366802219356301068864081618317474534380455271174035885421035459943381675854756142200811700861691426658955858837865824562415706757206784891334133712676077115232853186830956026130911119756083003577594190766597519022391211573561867472419885897165973117868619716188376978348996455558725630163355779844508168064100675600571221688711338590355091189545902455447422608923390058100095033031994244590567258617520192433230030043866264660135618704990539264897742905516113773453813622453463921055158640849570314819188970749304391637264046787045336523176957941795234750074447908805095379668475746298528676771218170761300426085384934969499861435876250456658114272486344814194173153068458920549757480348353457441971966347726040269868722944562270743564460183804974265109246730042139357664271844079469204045492922886169588534409861424368498849723018404969544630969276155295469366847195668796691842454649686930131426227818754038833536316091865027270530964053937886902426163670103281996299730489111285502867249621264019161051039548694738573031243601260850184298859043179296252450236244870183264069674800762345925262235574287137264536034608982485328683002597057045566236856385493105933781035676271983476037351781943099987572593607996100021558585724864749192912618148065140400460331634583791845349392076336925414417369275352078658893149768888905714130235306472033555334819315135942486980389850916918792844200537905376724717259486727995506551462834331413540605405671843513976580592120727892481937413811675153585026774403327093834168063159326957495979135221109980935716944865479616648633803078140123117185971655176737801875959341359420541577222094014131603188659733237463030705400407876909056140535275933419304647172964588119227299861591657162830010782066366243806205788917246206719701197716956394250707109622822579505270990947383622494708008076639581065411518170835865147565166125254389612905223755616893979580685267942699265067356887616854792734346549846940659974367417919259093530581442515813726709712629177309546132050236029903226708976792662929981219023933256658699925334184203042723787947424586056537195257041743757133289180684359813370243344167541861248846329734569211348790054563879356556093798652523039571174727374652550883384193371213072150750102674250182877500316110797497547318811272763783675871782883315263903692565221262954759444682354296429313933663570321018123745272147699930486726526101530918936353824673236677692471667496471082695409845291437885718792715048498228787956982571842129154070365091647589374083187790315682890868989865467753663120140591527595509197289919890051219067332439264530409063166114778287740424203519951514922934145655084119546774727888629471114744822134652168844635870764935977261519546455394752031472517289981823267642731726242517667358896596397716224383693560042100209373440765575281685410389529430811462944928857074028176368661413670274077853899931349330976702472421352517935221785056522356579076966958762812549477529687747769708966106571109720537225587406676664340956231815612828439264322306022246827510404691435289037938789712296552768023866359226058315310621701697661687280871177856799809423337350848887535153811173379508648120393733623434629902097938807518423481157498073408384377984251023572626783723809370598870376597843438629242752175209226841316480742364197093501808737972982075273603905643108320146242766275332175528559533874937920537530946054125538140367357794705570507358652778232486476419694346892242586269078026958976846078125105972328406760819109592405043924312060231074446390412314059874928911108130248565123127629216410153523297198690263711294578361433437342320511325843273224320127729354737599303084718684594489913773053684574739706189497789032325991060206270388102864891443608281516724776807050227264457152920657342504957504577041520124469179746459178168110903293432342684662259893448953678285341954520043497558960133118862495068049164638558721713007221711346519157672005996874315338282543332679483770882735967792129823981243190464828682438463436759619477911221772673124861072818253269337691050896143079022830823039670736783658683511279474353150761511289582934026339880836695849071410030119230604117366662769310360212765462194426289856331021190980839337880185213720475274731377466463854481486057338484198817351061194239275639195954419070664535006835264011378560222591320106166925474030011179753006181394111750662519848722218952557756097424427740058692784374116807377772156260624954268167593581833517487860198440237729994375582938407757364457360379432353185328946683430321232449394865845870115578560922786270068215187428357034952041524607481251905170146914541335423139025054791200367580952576257113986457348716885183543926423311813875964118481929980399669428562313678371608903997271525742354333507532702028847085935175434618609583624348898439692556073830619648956112000805022450267368962193685904393911645654840587051786263448014526106410046025140998272354138480717582843535378966823947684157349511388422272468288714051690778030815506047487719273674619207589198825052974377653468910104503069073910601656168874659806261666246892179226456619689819761640043180041006597681384364499377751364434916299118110120533672474415791099343505549144452926569319448924496921777543926998900894124942472658629996809013703672070291848482941197883154398500134575623189354342445482782481651416160606104448302787808478954129986909501397297333107880439642110992900477230204747793463484092708868664921491485917010640556494178528786912326989364682391253253337923152482213706647291158899461774235964606132497658587640628647581267516642371388616257675808324733205552004290492272663294481117687283651887517047751280848341224066057356382315964668449087657041859915216885574516816288905913008207283171541398578199173147932646261856509701555089616522871328995256772280238952116786799858446633647238723214164974132894789613397547722631555163253867711299164457369134074145911565798647263086158965220467601126574960238121758419904665488501356181570863822200609469259646669996641533873261100954323591494458013349453788025831784424173165969629969862718831175364283919734712112363498027520728270095908805509492769829178172373485673790227637179672017757523799103248521651267471334846227239774712208014043356827906268321805594109502459941765498416370326740493372515308610261409466459410444358975387864440179329452528331454137059639763102000366365032707708583952817503745232850490616546187752566672996666799063605777277863372056515468626748708577828748698387012973930329497779485113352369924190461186992743432087803095121328701047491492995464882265159117993023113629257176932959844090699648464035827906833771151041913419141831443190375338860010349505461878528263404245187072000562374503192974399550307497032376905708549173207149513468915479963362157535974690722264164555803701861785521414593791871758722652135568976966428527165396540972001101017162653281487678074557042428025065076307680284213507939752356412648715522349262992545789644247270790388969099240035684435909767202686370554567513619980942270201343612307448718622409486339215362080422877649651192145151326216244485446159767810501827197522018746247754614433869261513425696964553395973727924794088704057536026980554428801805335399784634531537168608950190944133423602367022881042986365557375233264866553989744141635167527735499493130246179088989633609425284194422210181597813020886400879799657294334126076986625957065507192239969953987844788641195213080574951731190780397885173679279581855544574070184885155523172773408092837579428688987290355253765631867833046909679516839226111488352887443731116451928600204262337113786908565404157371189547390390739130411749438062273758702486270711028427528625693089251715455100962009993517708918402630067962312191874457669870846624191112177265550935968355583572869742395331089256130284497792201078132652593045208994983207449088760016299973245805474531854018860948091826398228963882358627733147919650657576535618002863388839643906882950136233432110885839282152715260277825059406075603186211869437587497115350834820946365426286712922128502579970437464560812682833294251536666927325815900419140415384343286460328747637897155500009088917715168786365440171350407241850599969923646466129113820964939087377129759616966136649399931729230155658704518793115259024250276974400406916723933420632252252144266378394928476601156828127442917712381383303143601147530949394762639538492829036831842271105639512514452427608140454005851660196287427892379041990410502635619703540767306266429244516419316424229731023594394764365807958683092122566644402757005962411301349749596347169472547953005757721142795838503025918661425113093350556096963572470274161237999439311680003661803284397833128980240955700509591913642881608866876235776924971365657844876982802579803233339113632575267909065935777063882693178608163091063781275403651759328884187648041880322952709282712636876587638655677745573551540496362875733389281913076163323872982963218706743911718183494416154501338926914475587423880653753892745117057396544736666605103395166902564846962525561532785019208736175230211048600248329549700175966547925642294521604818545862486846506454605346475786386216567594595684560609103536341850486696054979536327524530379650933439065183876667675310475040448580652903380530362250032068064824651888224413493538135688706439630813499356684782857289673071609202448442735184127057815924143662341395796471652022842923635193501222675342453770759735570923451948710800213213712652319220130121752611073516375985682318932855673262621088311956782952838823393468513898851736671548828992461109505738288234446435043635108281217724030593272879349783285513982097841554055216342796506261155855851923505533205951751460417657431920045694153695149128943376625599292754081660567435510974167405877414990967442521083107946649357582965376345198657936071549717785957085803978284352312355271573823335033944714379666429507269287540308541876841850538952658707954047993895793460871120028573424675956302842215402395326519766113095142747544390655051538857569047467272201662374550172321464291715818372131652926010914326934658534303187744975224214250085537247127952396617453975578125178147202569670593163407146504290423061154256413194912561651568964936579060076391283896592017428750749698017616640820817074994823307469404275909559412968178417524551393689819239337340057285253562493643335526418678525305872993903562078707858580367485886737332538681049209748295560012696131938949794431206130527023260823572089954461876244856850555690363979221242623915893944171369922546879322727434940860159144190274060578439889202832443084610358530530175313930655037583851759914171710498183963943668556120751093979139157656362334952318191066404013280705479038348357998117677942517774772706106338045764121516801820417695378305738164257304412083255376477123363571512427649403479520367233949097447745661865015525379541140357660994330277802166731712945670008342714296481541504242021243019155866303949722582403351021141685378003326743669510896064384923855087131380572793568389302739211086767695031447711229537033070910971190558486034574309392850323351049198947666726724876752426684987395874953236939690190648548428434308564738753518095977024887998949552643459545979616342398717481259196863127313507439417193581864014090448313920676758849872049398846722086763326567098687613025247513576089006624890407819537803861047738117813016973615283928106321464576223171733626534925361727308050914245939853629160987668240746931073527142387471053663092699411060154390616511349968288287260953687139371681369525209557579104734928295930140736445837454413493813641216138606441229154453733429043506940347825011395842618940780959326370985631706863325897530981323740304501523936142766993554143961807820622401124548721024479115298786819345972165441204570524514521266117026846301812525317006445897434371308188068943713256455551780864175694089412019154423916988060769735691693395650062996834045854738730520013058538343812301653929390069005851467589745222413102541475088208012613994641772426185710899165069081135202598977351506077606120152347398884102679779772042656741201276580485027881055866474427834522894261871797378630865681286708909670968557108473007189863437661218024418709291956368239554786653249049855611312614873824495907563434982319555746504291555078797871253880217348302113091446319996998465276866861266366197841351316115467751443569191245100197810935526334516220091088624118758552775233028800183873031641267283080094863899893868506859749497756067838686266979359414046619577723313317276119790431451066936146424629177372940160888446842649909196073648486186216087658777343069466796904846813756601373817256658289020663687808732074347742172250099585983732604288325561628205641656034871185570063865039954581322425324015937891064798023540156962937024688656595027065364190035068470655032809131658006068593451082333521827846429994684583210109716287537223787986684914634459189864349987224675619848575678840710339784742731388893974021250079602218728484910542403761697631060308691498168785732389912325874499590983467249652562436984918121412147884085729198198505868006955420393476921738281331249688826920266386867417714828885264266216785874610264688388058713829853691263452623288981144647323313803807945064467867091342251103932919581954880559717985534081261695852451082523690505003728924838994957045686705932723944421403753384715077660340465112940150009497182814456000908576887987971006433996849344329768195084150461631469334791320242775765068194397387925894782293618583126024354531911885443826653077228713693854259896902903729064463173960179124889816303174484671467036897686353723445054533305055874238185739160168799545445557328937225714460895817793518023132827255161625037387400442435206395505659431566136103396886066651272868992296582241625466252779357804254118312608784405312158301684302690222072723833343559942159557337322870970904415834577660575148799283827658915031722732901036795127514948398036056061490438683714156557172620347285150626191211038180412132641004454444869534101408024825462885126747021079415531934118195004116532267978820396302534257767039624283486806993091682024433587732297852833860862396150405990977982599441956795526014608906689454257780510457924420340176786227052797042272761134727913214612558359565069001093431531412084583449723371331257330499005509794736715379836699964644351430821193365899635374416584051613711270073441737643033570435106522147009851325062024145751976336515703482138448339879127489197724684276823137882798453558647823569597300680061436150585610565570819842682912762796049236630685917727783501899086435845730101308221972528345619073355450232846746484017669884987806343853723176806980929070657284552559707402797267386324345676335601349239251418543651404349180687011052239594013699449837162290129066186909573219026682587974650138857485961292673129287140650606094488704030989315369904978597037179380727477772530453382690923277878451465378941540064051690385500177649178406004353341427631545911773220694017645267482473746326546883658807208033938926316757783947961607422519356743339519055948939905749732440701813136158507423576413208547646652924002963658216376073524199380604867916974905906946063578591222149326577703817216252173441533184359109630910342371299325923774429521792039604256551844807124689889606503841611009707198661030311156226144951104421692544773535008960843589845450472245177180107371504554295216926668347818870475706410103884070200135478101089743546596311696753791615964106475931975861875166452031495871452984800054531167348775045131220519716562942634547684135409149833380462281766690998140142714032044421947168798982541525423270419199858667112875065665348967979548470734393216669246126894677168963707076097205384387005885305026226390728191187292490602848520760906792391157046247065159986340293471473117895895623267047750451111339034059747358944654099631392320778859283181304920874432974925830688409642698775315065803569654752234710449193773780510036913561395532909275222034810904619844352083214363197757570120035701029383464466064314833377203956661792695833682878300058698352408973284862669494422189779675789330010742980683925295630380054669279288972877386220864257862084250820453085218657619374156782987791830946115304882204209680944174219891406347911091918518843646553636805847810007872028220223581534066689921517671498664895522808578048405295409391377068365315382582109316797431818130296429261907979773940407010809725608443594724133185480242620313194007146840281383301584314142887756820124834891534492943938730468171617665336079634682199675095661667211758751107152764718804116339787397306747373693794225666825641796626992171210496883260290421514774000014779673461627650150525672008560191898524602058199649713236876907582281876378113065255687167794184010037616444925591956870032185303292576545883114743241566390499952544793808632519994985153945362154393534140823264097809810185990700412747991982154424548711521595993533245649583486441489164871420549040549567880902854008105429005661313040700929651658493462466716047921528192064620799442284910932126319754502266534857355870036593949062337382769318167191815647557383857920791694285718383437110518754703560879473766228036715431620205967201167283865699199544152314183706260190076485360259543659997012834152047148079840919850186353177316896150198231396154416966941588025110839753390121965255613679208822042504591507956397350800718904952107135759361775125466650445042136802042404226111623963339398289141682311512925100714929555459710313178950108650093124401102037915615064760649247724056207089339856813382262613301427418760321991993898214709582338664454202757785230903589810113433065379173841961507338648927729233768701725462031867864655046349100239049709759381718239252021276965394579365260257344575654967381601631535516665195506638026571965437178936869813610390725958942252753090202992665862947344605571709873651389646961212647020254040152281768690458876459902545385921441614632123115100468743634762228303705201458179383758555845134513578656049494751730693549817444155323534494802586649219469604510168382571552860007723739899627298614327507339216699455479104233648357727291093263190270579967765762348138279557462626500641168712476986259903008189761396581895612484367182525162757405194518810520468084261444588203807628053262696772228090328887051207019791055297164359369210510569592318829265188127565325238042057045865193522426157973004172316274787839771713437877290411237667269987965284177355601272117227487136040417810731332269346781482379317438151597685762969453361210030233403303629646590210232625589976598090652655868156575757071116558570139357445483099140950032454408889182187610567653707702623641083847554907051827190227008911954507729200305327366401111576261656916674144315569155057751584629093140583442297060035706212714037127133010163919528903137507039263536769059864081273919080392056479689190434770990377318198269351973096008124688588276361093782749949561424836698921908405355470781809268094973297513073642617353152663046519200326978314088717024089091777904299944449713454464339522498679578856089698782924111533912410463681870088015823723222452233551652564010024002304325776533416793973079030553465567170089085062888973075891393382684401320089714081885274170734667755114971967111661830856385906609066131921631120561527316418545650748361854933218304950808664840699086251990204533655930828648561478911501349299379997927314004610665597081647124562462706196105685620128281942044651115871313998919504633694060377664185137091502900693685759296067927085834991882841565931102219099551908578268167575251075763190601436717821361230861831008848980012191531947461129823771398276340923452285036590035999345863491749180376664171449273483816038927579758817080836969846225605657785166304695136683040465104838206046736023482501477658966370823761578669143995076051853515089921621534825820504753527280875510103794616589591169301177830251626681576408413020869460660126966449932909144326676226326130682261325985896041000581718837294694915452733554809011627947302376682832491573717424128440181423244146461474906695223960083284520282135217637141143422736483284408228036005988936444308192112949349682231487651873103742406282535799234333819003256568322723363748308990965230768743708537817907284245365920872973810963337609683721928485408803328988665027467729778091627003209158825342620675191019219072403848138207339928699825734621242899756359410068758549250871497536213619449940367034568991988137926423674876503582964163583134411135296782404901044164203183262978711603657655817066430956933909715958188681543223568561792789435908722034322071358493841232308358802452325463686024456949929204176480880715603843643565950892138495715672381728465994887618337976997726861609711833679807783166530984135447117554758721944365448721475018990121441244699323136565095127741532728014270480503132638615034882329750896414867629230873649090581441098782687958768562917978495993811288615953097109332975667903404132803792049997050093614091321606033349036040897966494684554223726102885461578901642197316223472680686312830080104744232874303561394496255962326278144853089126055545691959200985241170890030739865862916027027646403799215897862796931547682990284154351448038231939448941005320699890504999364193176676207473732673798588675737207220334802093175438376682254479182038976948518553008387330022773633550693553664657870442693786850938321829123344072001133021799806808988244991701246603210504935750772451821886785322658723571039658467625946783834961362607398806761242740764997802954515059837291175617057285112925074429674994502482152135640919396755269337612426746811599891702725826104657320633521613152470715774233912254236963494566296310671481501903867742583715379395371219593265041963667009294463874090970407028126032558960816854598045488005359344420246632680995011969056904361001676114951021384627948711624990665296261666277017280861770722541678195708910623427337935948321167250831915790142398256985556423937190128181564534997454122056880524679554078354114753778498944416602510462055880942563047683372589179914644757247223998767087643032501408971486263729362382110742980558919543162806809904746743351964172712152188378154774430463133293253604804637296823906411733118684748700150696526726891071755602816450382142179452052249420778131999090258447138802664743452661946965151132845496331068351571186619495637105499811789100373821930979097398729665161503078650431187791448866533129688406333665758567708557265396314393539371613080230088961109433902288638905280394750483415048107836607808906540025809018164665902212438991099638798328244377757413966690598572719303338348347000982806723221950264783656755076908590037708987881761309145402190509859957270165827284978850349508822773095707941837729226046253695925125216666172914806287873222668619808995728496470473361968537558961705810875985614161436131451074029953897316794668131869946437013313013961206240683634583394033273906936668768327707382321990450268323211720907760357369424862200109465287695572444320269662113550707406277979358571186190919493818529391901001614588916323844553443552896802843241233793791294355695453665825353075675120219481947344344969056792346033674895662345050320004341431424696118175859875782937893665784719374036533486495775600419707340809482406112427938657589637954923520869557336151126462633991975838425313705169683372026021901689513147243222452034619532735639087439967779628501617600598034307700085145927667277740809381739445519698332433654534484030481619012816607687013631974263628497820344069060204670632020176308042140167240454389073107555285442123774015064367817602946502392780664987737355246828397576960341172605336462602752343896588656114839329841126477379056168792508744398628769180243611807557155827607355282252507250216160746223074881581315229311206857929547602911842062278637131524782624860637924018344327182387049046817889848286419284368254541680383795889610603082379155524553795022063113276123825611901314797691946123892550121088350866798600713785319085918898136456669141087830658654072236192781080827915909799451363979808637051021675917406152669446981131554081746297464229613409805358897009849066130894664431947788765359718260885489115573780573636796593448573898206962114277986199726832119450373367153807888270298730727083082002110271663564005401956327157779788691529099594544723006714393241385770999801649038692070545499025551332376463054914318345849230969201740165514785408972367442588870897305011515337478559614926913162599352330181590837359674745290121819594552884634628909191547988350275714477799288444199946483153824089546009508809788261994492741029242431726794040559886149389130423481843226393743571151819328983532912894389434015941411764999120049143851912685676228462762507072540022353114727562987766274922146166206274286627468444670644177432017816880012370535499111193837282121219987790478479340967996043099055589870965393194182157744024597763603180088544371249356080603783178157087496783542281112675182089333104562819386421732362543836560380506483126800288152524487780058430511809955275129472435490015266283987926692627147150301342494035055377787561382237831006972273244874310703819890722951811244958974976783657365932906198614109549712576847464154118377123961591463308224685626306218400201754854693461500759637983601802616741420672087063704725221864550271957091194699091868683070405045576725383830138354986399861292495288691743162705703110511291349927312784217863915687926314627335506463438332231447135597485958989942804608954040644741316342654413630112536925919453273349632063762718481609149060965324469373497220164204429725998383413673624317610396889010719404739934081668414158436186591466782586675136975975053715351008280712687882388122238419604535446778513749357271140455534867146446421046975621901650237165064852961907171458554845698685445695001284203829440380552374379566114505888918822560123103978302957986832342137878324015386673333583427184093006692204333014899672137626378827943535436227596501007769966173841239777388353387193129318461288380713780566840999562544519739088449742091890090880319755037690117747394337959019139976397121906216019110950149880330145321505903421508493549628291579246946753482212971392531287633765106484525837018587001918624134777018943220807151758010769688240662024114701894899084896847096821270957858021949508390236056281468494396404662171267315429558593290025316482234816593023165092323532332524988497538826181086607223430773579152513989031710960367599233820218854257423167199078669271351257042323281052534332890929321742972853896239030448126848825447607848256679821439540799082632154414965783986902861165970629447969117217446063926211838176849890753865955651527319418113419539163565596987992823129099223176515065509464813873588996235482369792885013934147735565443811718308828414723432992409618766423755772097874547741770289821225104080953809302846671317585699037170366107947380670040160520395450625365805129631441742317341348971805671206902056424745214461253287186048581326394162363654598006260828904751490913373686984583149609349868128400693848802598989584919986237400890969733906973209432910343639253785896119266908500744058217734711659681437432902131646740909836343021797510120396365415607184670731193331849427012578855368869804794115860870111984475311551545179424145457504610671978754371252601983033251551410482741137594121863901656915389710803837752430583699716908979658617704641647873954226279018215958937828542096831886418085531023178381646580452803016617963733329789382631542881124870026175720107829388487226309905736856806071139445885817569095201141338848203192069696843045777832583340653011408413004496234831192017293994560350567243628692804901016128756695889201560972983227663513308090995271111358945109606796680486976636052175126929800502044643527199255831800443522894327547473295271474831806688346406196690405267971151306031129696058996001907799024649775150144160468126734096767478415467160111855650314930547240023003010418807400241502372493530163122335292539367079140323559406219678770540066194808587481883220279203337596359150298902709703759417092142061474217855932990929850459289005727429146765672575530664413684542421640430621368351514262934326343176823282402018734578117658602645299483923656304808317157854180032305468418583161594809964710131885156937806382641994765113187792507177782696069827847571726523830543026604607104308483258780154820368206042396253532004101120275159571420816847695623286273710652696389936869707156465977681875834033162825009354293492344554308133136518189285020715445166836467086076154950804868430719708902654461786121054438776057044054438158461437731848056331898085172706451254444911405872943365834531477488871682770299080269531278384232468105748679351521659529191166325281122477775396580112023542506012432802808901414303083956354970782700307668737142106188810679179131627263471369536767341802504124347867254515084637865792074944235654293431176319553597828604654442317624215596634397369300298833821794625596416221420811979114701060029645647666265945607164619559844515026495233857698763699649650123792578401370923755780144278320297556810561954502007655349732705025019820265748861843310558191946174367423432017412635682978926651396856265465956068128475606857686145552299086738531163968169903743438628606882522271096179600391193939703728331863124249760824998350463376696398866243371214094148447771573161364402335520014105744179590128205561664539393101424960596861042287422615658187242879718674292751976875817854398821595370477030253263996183791632470286340960461860825016434076768045349190042407366648208285027382296267019426712200654254822788214916763790594590793896917465637734958722345003384540495113784115020702877228294619143103542549450724045620977746289447847365796867199986651539735064721518603117034842568097950800604252469694286524253578855553144758731921855920136439081831573523516413578672413531086118736496988888613505034685676623153928638422288328137170118004927352041500728824174804688956845045304582283751356405504828207548893206694567082285698676814930321087785236791820613576304139158814643621491059037915070240656903397881739049224061593488418727803083655779635072615907654770620171346048666544558066552711594333205055591499770835289669572815271672053373995793769092869269714357152970997199151181659208933189864596231653302070333177491172156519655831658144393616150586614377912676890840944655984268502242733946464417010652843783158315690511005770352123354690306252352782126369169396054572294307126001878316556609783751310029510487179016692905336419511913202029688484449544546437329829332506259562118085042948215182483236788040715292147170540883617079243767799383960286889484966103804000892476882729578002618956045864372670234121577628117142528849644771941270602090856606381537200403388721713247901082032773173000274630475575576634673178644912486426698057452688313157464762279198313591846522913714872928288189896688855129089340989984042662175982530964124744906352210737361835583546307457436677025522727016078336353442404170433162814245635778336207165298114774060262706267149732549468540557804219057120220527339158204443356929660391189431101506061190069340756647584439555268122373523542996352419318556233473824700774014512935668069236663586281444622233541278543191129762504131689412269231740206995545621418457305962628762136100831613462659035715574266940661368997009292893520903113632658791941492082060266248653047739125203182331334907887230831853071131347387772003733505017761878665462515973302699671401789884558556979078640340418680743441266314157873628387293408507027433584993716834136744434487996772688046677589934797730172770151150618464502744618788301016868751411442659868455859244321139318291476999105545602139645723800470680038550871704433705465728265162981709316426574288919110238519067198014973399078293674061507718757732193229857994643218355238343659861078459331488259923187097466924129931121299627731289100827909118449464175792801806131653805926781460896848464459408412999888700062133937887093148319105371743612331343671693444279608970750270361953277894878109446708938811927928852186773214909929095399815276654277223262588268431677348055950694975714447161645675744663872332092809755593881644208020309076957919262721694680519462702239594230749684870861995917714699312259742816365015357971155044196375597414288088290839310500005807880681263140065159119311834410511501483510517888706479814980064014438749202259174818637438589588437320402833998342268915993457876925721538951037262816373754003321586650943831586454500164246363676636455741150777455121282667687273118522155820798345399366233712545728536452019231530751871920121032377576800942744817865271237438143460165256869769499554276725716654886386202784345226401809401247169329130162154517180293129845703653021293310517334809558280655713487380398196440260884438360781845638628597955045147242775366742086853808384791425352112946272668593870773418050412937602540184478782164266298077641950005305766396328277248955751667205902148648186312635845056000214947243902542510509766873573648203225789725299658352910779595906447401288917777721504521908053666665395294591044471100586850771324225352648159777529760954461784244582167249897357421483658914237750281652923005586850522369986714328421211615189320827731725435171361038897900747759775714003284581054645560864303437512584089208438219828255222720641750645957993499966772207743651183317800724825127019277447433184315702334441502152089462480143801613122712841658692969077035371366662727596898533121127414428029192598888539692765325400482740801607867237212149885496573953027635393027131758617782154005378450327562594953032495065634108096046942652213962845662903467414262894905254289230980158796495427385695060958920710634154026428860140083265426704533072022481421618495556397901308705944030801116428485455202144128321195574437937149476586486877504631791676844685748478005793946679157266748472135524241088230707505790333371727194472765259413790572127862392934221176233703957036586182931506232172161088175449377019798488647584966091144315657496962722732036756298435602313496712017936315527974472767471277995294408423548596749388031483598304953634898018897458286779421479692932330235705425092524005596961309300031960032793360746655141854960736686174298829294302558778471772753754569161707265813328621050726309106493230577606190708014925713188637696995406316340188165493249850118660189382098272845072187990715855229766651018842071203626902449551042046431520345774018346679803551163627226808693613502985203305096848416536595234520363108502496229080826773482435170407939866762650511864149332474597775334009346968025618838325851072866291141198610729970857866654429199836925573772374527762332164590418888830567969970155342993925840862941006811370167451396242812859961102486687540946017319730717475049724681956288764283746761924572988027056781949884944915930316862727366181209560937082345121279972217222693619437299946485268375105344399416002873143836947600906811178975415760094767095864243270484183073175273815710428653227374570366010794771069277693018617146322199907008695123884407863392017203079690867834005951370380812270115430441799404955057281616086064543185931454375751894946522798105369578888205288214000004683515694261591244254769910161435557611297206936980626038315201303798651558777668992896707376601809277420840870915945458761459162892696274222801063943029144846339903290737862263584777883879933478047598778940631501010383978697375022215617887317090488589475757045234797885717062040735071892704706948352195698857572383454055100689797831874551602486289571798702941514802761761424484672987906579835431203034292385844629578221198017145269430957409507014525426194800043449948796514766480887066949450397142603334222621270517416301414100460898948835702159247807048715348737665390360728580483872135572767645485923125796261660050994796261796857208621694283520292485727232679241718554000975885835126392880321083799944638503944242095916773498150292851805579450872846488840380420167450386507077280159388604700781325127339096150390121888166239360221237565101995641244939500796758569251454706973557367571283861453172344493731142258540257736143336831584403946321774060647161189547406418917336706103731308171403427099046349869415567906451719126815724789566961018196158849752983817090851323195033687769821140711300401467894777668179330538828787248115374613748318423195291561743554416973020194625197194803137179137931583164949052173585634685186186247473951457555086086241408164229621172534852316944339107857642117694640073080529919809232544317856873406264627288008119600355861030192222543955652226019614571233163564446332809293965463606781009600454315514296418213774933081079392916185402886185261689458138619335467897625796866849899023462349152349943614061552066401128662819374253196759473359860189704781682197125790961093122861592004614256444984627991014669048491802085687412543030421332054089180445791498551852210227250641106573312154798943260260770686002447725727029803670967351522444253676875823588648676520012575788789408242599265264834033329842298318851519726130771139931637890301234345016764162456487346620090961228326930844303878920732145089134365329560220166394138236717337931397473385769596337397114062267945570030576234905091308686938709957438546660767425333215354435234668790886553611171738070380966514651656682065040146335629190784773829125531619163670358374202782435864454648010697642798835213769394743008616283785008808527403642032866672468959474194166189242877561405231424734925563844019146161242828150342309209309294274985431330657595222042855416665199831015303440020613506590821357098042141188671672692824487710461816305642022814107655977454855507008693084249030163703043010314450852511149035406709186345884769111913894749116195979058884243855559000293826526168634599334921817608954586847294187246277168400746968769459705407236298095368804297865815768708173776710189681086797801349002248439622158994688591908375021160775212445632107995797326466798591320695189076271580659787205000144044606808277737398053987812588907024960786497673816638236517031812789739913714792021057023903680290919781687763879683563688117046658601481731246243691850302167360560623789845943979482380137486307982909103363308885233363566676314734868146983256750307193862384294183326367407135123134941967275349956813204060275323548623438924241602198087870053603269795002664128103975182653418544749308832612376977532391306469281846565451298383265801998174588603497381018299112011638988477185573505377598545768007058295156519148841617364459305581936083942362463574893915942952349594814911995199422229296385399187491275359705357888942641429789097869827200994620261633176620166896600915632555157755622292312025157220760374991009958603442921426725124271779358604203252358638935209620197784215105282190048992946073352117223121037700046467851170922919683636981602023169860274615465654436785639054705277693166278828447824025082878207070058816382775900525468957323816030343412106658658556600969023108273655417440407050103093351006221160003510234117264963079651947048834256234272486421309941270507170607395881813307403318197621055804651245618051162750248375443998329828851318167864121803773459900803897217577888530977310965891813790119462294076995733495612500015416624293488054859663265698650373864990119100195877830668430885130545171398582242281846916167817382106497491384818788557576428927915525924991270060081462676346028376220857070439727027344697290255291773376936276909244931314290086672042035715156761421181624901654262120916934742099338025857650863239108105003080230865491024203511222958662495579714140798247236173680169944240132288163341579189980015830322718924287485483981572298162962829602891609414066974744388862720907513662013442338879765628480706583226712736310383710450693766469249501485259488682213085251365655470920043547439146759718778463540532646332643979929171437104155005650762913886564603572872845702642774332749791498582152333986821401720963363330051163768076585110236437429657568208131235829329551691584626932805164087888234804020399095174300232479324288843778156754647070143910793938264053271137459392729301514212897611750889092068740124000934111014583431400354240608183085962808408433772557835328278523771483880593323353158957493783099922192251828893512417909955309065417463776413559816136901264900944334068776676398484390896126194912670662280120801142506066060678368829913152825631491680609656482008678452485785989147973100371496018695161114669923015347912425391339551761403634610790361815929598545712210209300401727330279973610772538845558535858744931840043659733712824827503772195088127731996500894728915753250423413233452214192966548971190467044121364700236309234424368464631924312409293118466047051093239070585528906960190353255598757871120316785416167222531678916048045457716226546664421914236555928931853189499447294675298213371385468833535087456147276934023186392653421137614214413357055088251795355531469706758645905723983291914652998986485585713942457091144834142689263316750506981552777008328381905593419780345201093927610499465730329080496113932992882633807546795158504247635202983120328021325429027077489860473390504281012393043197112337172257033595984895608563159002420165116523858309792041243884633730122351045715528679483401946137664244851765471777676974457250051483755739321070860903776661915107597466939319290232076483496867640263013698262155671195382920053438335391723603236799805830713217003082276895138846762252434350239095309352280950821035329509642573415395929552305678720726667415124523447528931965206165365747572499063684012859900960527242437284578245393170589366398262079757738628140114798889805045053778991452153502332085478866353436075740075881960835466548955275941149798252474513407568090377324271120372986243152340019088054098473766876389464634512568803875011848089480646025083765098895220033552881058965686288800394757102849096499082682111149239954656476394151481767796703835463477465708557421817663534298213654016482858615412242516065363827570506544853952777525296780074125305532501143778843136212398741454966434792209967575575901092946342753260795618255350627495350449171862052818616757704143747128507611182791504592020853021627757138446125287357913356795331110585095854500915077429428117653620857499347737440609219814581873532120984411389659313836073504390828097166727821975110304490953099568149146172362969863717186287413341556641715643059433895266440110752593070003901166774901206464175658977647546102456123208051313047962083943761806972882535321358365818026609187041228687127108620863169689322584254614162975446660538503401932322289042493538584876861689065177429109580290115328941875028158283530350791447905182468549153687046671928561226482069824523003624407244147720312068588951499961104478161686912390757906396766730231403717446403535346078893814045489769379820556519156294437049438491291870369416499503921688820821238679886060802958205304013163969619632694662635473084269582018455595932415812270585687057645586715698628493955708426044465342076636829449711440121933294473046461133298137858662471109646842998141533486596461896197103320328047996422901533233624839025037739115132355281268702024499758998004993441678048140292230085343235325427298061948351407546993193871110235514081799529242802384311131137576101067784947989602147636878971344722426774981047806999313220542965215796963794332446082531777852944659104653106601403780327617894958922547383758762077293931475525478224983681327202728379044984713797290208113704498529414326250966741022026189561870083389520192529007315595382825723932567814416630631964342332705341955887357443365463556784642462239431668248871304701507187808083436722003948184327652731458151292701882303746801988613125069922339417849910053185365452647474101306754005928369084117969098692359287883702752986783417167042947756652002603186724160654011109875325371376691331311901980869879716035194879671281381655929861801049198729360034378388835769744533444716824754492747057539919123615698299051849424724579878832935669410275634296842319106584053127134313595803726252487809578132379858196013454234936544152487443235289076034340479189793884493249043923540454288970769370261890796230957327926493961137564900475620580532233630970914773313520597776970739116088562443841973327779534240231868031063192113815958853556322461905635490170084201262101399519603183212026412134053824703714947455422609607443013901975295539361705646052530880528341937219872643180129952624780490494644626960542726347919673157653008208985632199858024035451674549481291159231851402685447402236472933996313336116095243272976261959235607123105263964131039137283339940574435487309120892853405150221768760772353129109681015155989186520409585722854266135139243954169491655252721483637370898064879380177697772512960437582513785828231569629425498385614754368842251942856792622834182467465961390086376129860640433005955074293799002245758473179674289387534645025600648709639706544497623116893819020515299815241615146483162382499436759475766600441992319356143671383194664628953169432899250351158030914789482866439448689926356279744093061573598655762824062527160742731247702780544071017854602967151406550362866181742805525632381265249093799390769499231593672018694996537454140194560511664827831808499787100508620046976442702497602185311405258180949407853510680874175253275284333273806478363773988459258413030599218905563980729978508396117594221018449430383233153678648532317174163232376713506180374321217117264126690721350361186710629102534195111242911843718531523466724751477882224977122671028245658008960194274702558251560314473871838970826266595354144352582176675938409776173218601345051429408352998863540391527252273519631522928169038965786861404989677657912432185428762377459224094980735003794321189883571314880315048238855539763987380625618254901004836272861724539383148911675235444499455788455245847006497237122941491614059297129656507569463072660995289076426703587797510368902730934855794913935324048413749127902593579646964447473085802627400136421026927284573635827925739043885251202492542034899227070161883113392991162754891982943494170380288888691502139754904089965089696623310077410931181029458882548146543849633562635333762795295612000733893498355519734173562750614694787581232650340283565246911009525618683132216863123093354051841817571396090532633087474073127944522246305637489245120421492018059713419243204152687618254972116117985313720030229977338070850796852398065941710346818314061975131458357904160434976223875367288021767717584734898010378588847890150831023867236361246266872715194392294593280604604599391868930007487933344736403557928751680572331613557470916921589195629729221480780476544483362094668588974913011406427248773561324640222045142589662307619843410947875902365507554887776128579914862997845010948546825166821070762317599972080852405144239773894051753232739315567715064617233803514499098210672383724642534823742123876568575580275518806730317003369128855382953169751740978134489914839375815302120894022325651020467499478646783910480165261595196819841424806546582296635146115593845635890865696176651316999365525888541187095958879815436909317558673591602551510165484238330415905565750008399217503981405422537305919619842765475755393795521971625135144980740006051054409312042801300103211744884911553403830103369078675519852595799176879917375725273912420212847056658397442217382142159816055829037328558546910958405869517132585447179196398274450180734171446371134956182915544271383960024860415913279600461485320450125862548870234653355969659461994545774658885106892881245431503232633168406639551831340802498892907629549069154315664168528929427090121900839728097759305440248200198745682957413032470073652253507617665550424769143322937563627544542954624857458397755159357171146826633476659213594221246166831142543959938756596645887326137549788456229368616713213494435017812726159313393409005618237449187914158895150666632941421793524086792038524700356854608805770433979707626527958857637501570870978910257178155920585429638812958688423383950797422773659745743307056885085071751841743118983925700442889700955010088804091145746138684284713667471661965082113473345235989280492383787206505559980315524078567086502856616687506656418624166988741141731688120961065499330553600691521863648724893832129130103413501211694496195745927361148754211609181776270228412486018251165565066585829359501087586213722013451813603114551917916967100251696218021687305927847482300453476458908642054621411644879512012061110092892203132423686387570446520815579023609549480074438049910720628240359776183369682356788709711592090677130552176931972901104956027422835906810255387301501774125705432616633785182308387239727964482642268585002638980834972881528532734035420378708630332214597435315714167066147827731819388772270924301496403961308951559144009454951185479284820840627911994204622797412790783923553354396901340612576977494150868739926437850518773607682702466063846631669712327652968335034849498024879962873385103372824920804743822370604622148513974729477285958192168834672950582995495920652572394845031478402703000525878952331146324576693136302358941236198502905190561463857488877073103792385817652646239552401100998558127244527517084600223923988962925782320282256680706409428116881990899606789978991208104198935060991729097771809426081450157396059986740490066024143692849591942737771138433170066555495774072194311260331265697201344667281645041005864051081072525589556649750514784844203679271945346392185468727991527910796097497192870714098226864860440516012287014199726556711311020985772198479460238184885208221989474013724667619863198354877134055339658331090512691700511145946485167621103823708321214544401018652582871878737210404578054947818045669712977849541606046540207529093048393459895603400848611142923989433485697800399580260971063114604548481009660108652635923089965641142539208733861746383436391650996914680280060803321437289711933158793058356008257476577546369085569089036347654835193904721917891619884547434789463476479036070108520326901778245383556976015966304318405779255106891327818220381896167461615250983700834644898513983791803862851600506803083901089577340061064789208017471013225304020821993377366028976021784578658375697131359229449579679109773526351801256972442660423308565842480596691709315039204154955671891057671491514003145383978521618116540702270745398943631005781019265906350076671098554919191323866645851606993217230350312931353695806262178825365107547322182334450088777427114483388125287232414406558567863197620584142912516481812735718412830679842901442695173080993071527507854188102303567651974815577285403482352068028818079136829006548274651914614620569713103031202338680285456298182773825904847835084753694255709324608758193834023597768105347439386808149146141334133235449443237662612558331021434714585563664866100483560091262939448399494275998386791349524669186761638714234574072361678234424782544789308302050545579196381721179701860205994130946327012092510413967692575478748443038068948520591883448446874317879623866105370294938198925668151652201482051391251769469139993773391816559204408779431922948833704256978635457626049926116220354452279632583316563583403097655148531239875274069096257979512844491833354828449969711924655822028176221985064005403265880249505275987346477118009500465419651100053131633815373792216263865833162995649543950847240206877549280379877444855980614540830625355904123222111699769642177755891393041893938706056891286326578728421692122392795198132202167548545917590416739307895447168625143673715848920587019685752795819087553079512889154979520473677219805431364049491260171119986892545018180983044415424231922831101883717468176548670990706787590785345093953322442530873143665430269218649690003357647824300688813384524430863552768590502362680521461041499846731759444042865264268488484890521617092960625672688726210189913641264234495382630301187012055653818996664953831059410635778932416564099461513855735394519080393266372758507847177796229629282675284454740128180518604236186895748297106184265903320330812568685436384306710562679215657915550537963806076517950969884859135314692233478988677287641600903197995495779904333110743401213232336227020458466215387105850744546903662344825345062649381684642366936897450475616717345493020551742762096027704900696340862734652062293289731675977337141469438043878650889427428953015727582910709549436806173613247382554109583232454568875063240286755583514726042076234651051306178291666734779331975036995494651099782630023568709846554240312370059162791686190109658748389016332810754973884290150097026397314495398455304917154180102013694854947721009702689403995493966253969132768694050247935455921491211548768090807658672180007860467500415113941402333331446826002282016505947788460650158254900401518349774253920405829455563033313591129950880494686585477232501529287876694299636914632354502765653024091773916626298222983274054955901411887551899157545434432766341675277937559926106738484979862895200129493728196384013521790915719004029126369008454649860267422625826316414717138269913664420800608275855066362605453495162014089596126475787059948087001324978293918598219284570190471677706051283586703917567720008723379442114598040457896249063479153349511198722249166827724087200417606500509282514924776494252980464794327747067142008040951316573266691955137713695348792663610408909907298933268076685715849925829619605053250203008884893783013435505805417416741457215701189695430941555170095500479463179156301783616281327673794876727455979016898202005793837536050730641383305138049171729671977111232927421081593929414307820159378245266188188518289643244070766729180844925704201454113086326949254005679811613019022550656419794268469050772323781706025841355210635274285963188366648399724926501977464974748010511853074935945586595183805157562652764857111902481436955330568982068332391936547625962772179554520400741827454365239401033509697553419554189204430311387779153677494200692657718494931368142704543166064175230131541138288135497196555770092251388628955666018347889033222849043216843573726258870294924282259664969198420850371491160561541475112279805602907864249670976892165663340976674207893653956254266713614718260993780072314978142908496566113845325643185929412847755115252481569526813232775784052753990452313662939125538485243598572527467965072814082310996406841004147477438668726678518115755299766189011575413504280615662933478477158553089114517172771133964384581311680792339154551863346530353214114444471997442806152505288430869837165382615831012099498265287494271958357844194396656727401344104497741364983824467044138480964327047689425709699490312811899833722997030240985978156807889982464988686861004846896619667744780798264468633500495126696851285077315673266261143286258023638137327030600779630136366399205860583855982318934147201677054473851627933484400054158636969054071918056692418317079265139371267014738831138035229797977231602231846990875316579664749616538291354301208057153694290993311173126102823081881280590006713441478179459817654405308410359792926158923038795919240302038744225970575029290927690448793856148914463737728413671404312748903014254058555624856223968114525472966609456038538814100551529986109995675614697335877496795850017957145738842256523130761110856122759161162978458488494859199575901505142734160047447528021882662017254077037623120338242158432210888403728751314051596825272178940820951127428420558941408841519637363775710078601782886310647364434889828115783786404039188773013307377584511527311370155003862508072184443717301618766868820778618233788942923404590659489292333649212454753955650442649254737326430301361767135211006204172298120020087204469161332655254365498316783242061507971717961955037277426278768447928984509622181867757323363050245550374027838193865279080566991632686531628060446376057700958393854749838042044867667152882567365323291796815412400892199025891857437981909771134033769818431341646585793148199967783616574726553948566130152537497239789684147122983260499907762427980984999300161739547704136364369605868203420793134463173602593347294854581291535532036276089744327838148546062330593417699671509997812324977128731742412179135255440377887989245007801107910133264342963166706953274222219297024263886951890860866498571074596096830203433484783385572743653600849477696840961752372072271450057751589436857635205902244371456037000843740643956541346710810452231354617884904806624464212357428948591828493071659531722939413841626090021199572292347720978954760406244288247623519006244971801668064599465989327321978559503848780261162592635745627895405113976364200656342408373284809873216137161340627171222488483587015351348762559512381808792518648277215132739700948013325494651388528273280505020177308644358374745626472712252449624801600790139266870195590509005266060995401180712104881048949725443698575898984096470839824979510896198108924719909945474079218725300700124698525291109272556322073969186944199596182732812091004178763565529050156998519886717208685341198275764044012586997208682733526753206002263297715468828410650728381648698011832792286856653849673576295374542243694784238507153621211232638509234524774514546087170324141542810128620609115708468230533530001887870873718929017334224489089032904232587241429960422826365113461954331111127236384879247120636532413290850526397154518259821294275400699857272729206584215932686049802415783019417836477641851939917632232295650967154504031112526181762760569548732176582901972497679509080889365538388821304038297080728205368665408437151941265413754713345366145974419310955961995276930463029852559355226530199774365771711650748194930623446216891747307440644351084482688781836521010279581242664198354678713437714122007187862696093736407107606666725656746545941954809328815863037034791476826071587797715477390829741538650744653990473895752168046075250511686859491046709065697842136098775511110163478626460480111732395479703483349872544928897351845889868568658899914242779282968361673599185105344489062297190109871591397261359736265550876759902357670714092161769376616449888748696433323409492977845760332395966327306224455825052696685474037089419997648723424076082009441880974085857163046823204596839894658500466309539478669640547215029616930923853963748150267060102249283020139965089629671884714567803600968425047461516901547331834649118230342513023370408534605898725008193795781658138818735381617301806620117174377245453493808598466500471174553885823107054807667547255990076374844517738674161776655532825686586463226816687969531854109210814765819036334097140492283677745888145045078724572274601951579182323685345451910886863350218593985149686563655343292646235477656037564897684780902049727646495335024257319331837231491343826352453938525604188425241178418595043845002387669452721639297931866221864034852455537219840591346035899102342299985308549330031467754721900452534276235137921423971592385368902067740583957945643231703188179581322986078239003344157166975804891708237010644626043243629677086198205793229928694138415663290941842410653431826763428458557946727051311207791476868720246731943479681420554718198889793115160579935693756898025898523473286660492468292711261618909073639651713331777641988305660881801521037630940204477703387297400573809494048191426320008456762052370704726137347537331047463814162125648397403304713036326632152606573573849879956996151055977208918246240322033894713716928554999298407853480134118299599646858462426040788947346732533747720648074314544464491053988924579327768251758248495465742835357516841211237335755956417626934963113148631082039385844526222136153784070196933399814496463466326028907984818764230435711425925805369919301660982944740534963778982173314811332430305284590239872013383514163196238358677071835933187197452272806329954698040727853689665329770174520778681847081435312924494168536966676208117740853261695806021444057372309798246170906140414706324588945597458923308792365827749818302045057847377263946013584730981187702206049378001461542825954296798001961568327932226219570344235863154404942066750810231619272190228378044893906997294508780292216037689920947744944728202149945869634775167676190185808297394156067791511119351525416399434649057009327058534668725378031087866877933434077284137744607930311871846423532045005126674744163158662357042470364769632340446745105622889415870943860250698660946014380307219967888942994817468707785703109823965273130418822183204657616650097988234887617637257480889039662468556609551705363037663442073767034410612985203947576133584853986713789378855477597789230726870312436541912966572362020987882420752516345410906015447394837463447861761496395390196448207394938405788841821593537231431616408858356675689272828869091292518430961205712611785936180521823993541838804582066168760740948715941702931430255192302264091730616134351546274984220298794137268325960796436798526283408982027375993503941204884952362718821327027513918836756300724777776936395131747826557264097918815560638646075602677122151802592124041766842490799087563714327681919017089695278958364018564242162506449555803085294723853402381384103261325249588834113466411537709592045748270658650229560957364793109746057367297648407329300245949867914789563803791403903515917554835747700394334456416475425903276546656693470336245165299262972303768746451509552215700059939383024353797853724284130845057914419561281555288789064608342825708396145807473635175146396544173240984280860371214927829571768876514930815182704436902509528862154643312313485586170362556899204420178734038565906643791022669304256784749699572923661115161410175502807509216113441908617341531598961123535509989380715653536179866430685093526163045272166725451621005998457174463340088397154341825586789766626427104626693652893168431103511458047991258174964622977572043763319772290410363977112213298204162051448878911637966862847541091063994151287543029867611511950771381478083281082523554314051055587521048580544657932585613772848691885655839000798562334079992033288591311469383976098807332043422294780497240625685822827054460689370930196089791158984782183849089703495556930231104969821004750271183592990244485321196120707161024241410850970135793619892358148418857152050115678331972942339935383351496241205674421733317420252262222596294753690975700776460467477136314255554787279534775425076121463597399245629502749888915120523526979615939377500531386477963751405285908616062518543358899610352269133038448765512425257310045923266086186974858721382353691168587156177954880799978023152929668528835413025079053985847605346401387291016985736654663663314901881839161321310704424121309825404630914822861994640585405122847455961811224325647723968955244775954562149746166326606318372166146977218505176410390849227254202380769036641695235581001460642524516807232739104288641659652349438762270673314279306042531131255493596332980003296569365541977179132221140511689551296901585737473927883148413019607994804439879564395201426134598395894387583994532704840104785937440957332616574888430974298267492192128026658471043111706760077896825411124700087116212332172021885392462086704920522148053792024251439034119734955229177552988897874052706193595261342544570936358310076194464182647051722150508782137278534606653105797311270837660041410418958073195057803380824407942864583607450459946148000040837951950374760392447919386617379209683385426222736663131895656701993129058657707827071289242250011473227640877388699517474314149158324601353121382011095754028448830841515181241188110288762263201591259857556960593356024751016839626886781336929298387505484325852571331159936968312072549463564751579600883528193874232904336608878095959112855377861600909902033827208454281163514587151332121201721367400991057429241093565745110504252853891226219298567378214780383642828081935916561768046592756341511337459548366960979896759728220397316166219213063950220847851046612929165275760537183089692135989013637137207432196464352172941762940727948181438678352014563403579859569883124056552627523721861111596671422174665640485974382920202736258257347013499953173420852355940894431095564243970810029962673742710180302079783094792132156628640220942254864184589435650154753798692527227618865782070925070522833709732535300965730957059709179789656603274541844539380715017306914025980996922248370949972733581094464594921558716681402791158471484893263021970800742551315923231209430941884571543615810787026499036030322802827592511933665439479530000241166101682699688719009859728303350893755588423008940698732821250714255107409334054224844000087171537478390523285097288505711802468056660361661608353606230983637630282042811581802452118731244932856592378858321981928119968957862045410173463659938850195462723861749455969155752540694489778351076534372689536609253805828671822622860075129682580541365504620088684263821847800781208160899815153604924304661698392270170683439235744983121087658870450741617682067477158581847769131075168456012087338620156281018164859397059560890272363576247932873349363788076718224836181805704030835668341132546770869649581357285036965008679898932872330038457896479505320065726424769268375738475364292048320236936949862917954839960075247614223284189309254936983994300837576573607865079653961817860219956530241998982658207735377512385519875867439641902485481712548571305989038125831293759161101300190711617307711673713606815129419038352367969349120560008881253034328855295041943636118880722079197632243379745586725972961359091206182054707125471170734996614574925893208889665256566120659329879746749943298202107369828463182894737922191793059054828108130532642851990021494169481851988664829419492892958606660378401257538919992383747913235094003030464590260362194616246314433857900701560901788387555788256725723511903969109047460367568839213182132430455625151779198780641294671218433174861730473044098060373560812253526217927315783418657557735485190299813188797060618435136569208912583053565643154740878265361579716072566357900875210316935910672303958941648009476768865501488846540553740170329886093331545100641751974154238352040446667345903894291384745672232732406591706091815402412509037166846921166010812285859033735708536068334730045858435352571326871697314932567765310350428752380255244331023611546746742822402173774362926865329693250446121233368313076558243276044391112370754573353514217960355332380309756412310977620897376813592715791978042454799067020833799147405651189481275603712109988343006989536922308436006923842291726287963520677335723015509759096151578507726719793294270065197938560573590588315060072001393981976457976468250238557932083298340587259313883938249138860619877487146500874610501978982037145749777883448082627722166903888634247182217140430648059397317582840954158903511852726782514822722959245660974733691627089823666664803677227425356703352982446508304340907673571679487639091717234163662023348425056134600356639410899329678331266980647165516956387284452994965651895569116834790206481229614437312761435338240105596306731161863192539207536195922652949733513377187002076931102016578346361931724946941625924904839979572608982208145468712887477124114198260081477157574888184922040246640076200735598367863324263082246175879565708875778522329316201061080915994644832598619758490585592908338164626571256278715940194540178064614430459523510211270199258105669820236352296251444153252034469336453512771210154017970891025813169735126779801046509999661363539219375355369859923752893404316436274603429731820530520331608586315018946061707885717040979054234915525546538399655471248850112967982014028707663539199684060104580284875764176611360804922260838155924938262170757298268360889636009255387726454541296704596169257948216800012716324953231901278949229680097805023664849755873411352941230607050848427024775677724407131266466800702955902328905838458937255488114122346796513179034152579367070675315226435743339887674237547937967199443505326113937116897580069949677365547201367309177382236138240277403010848214110041911390092342107719452090959045573305565960596341213616930649324006086261070006776953180590321639905406698867024178039588511683161848676523022584827786687139664510463425373179889582738222797393656448116218638119628554644095687732007612440823818480224710361497290359562164189640245319083137912741100499821695057599585154550098923024548574042327648038007113173183944385830893948384815264910342003663807435332352411591273635678654228415777137596895037369517389826388324961204674220086913363166825469085907512618589887949758584621281235187366695307937286204772148122280926724742100818266421594368361101067087334063837719678385958260412407718085925198162517005511915258183922457103947189570459543024126517857186917489735122496570343937501855925268661201399919863616212688133458201079828666595597659509992786207498232733433368055117393494695453274690319147481410502736478124489229371329960244418255660025252692094754511249771883445357000403104186885668642838536282047975301124157638108762582065265197200010526600971226813128093103227858980535058642410410403704533543967555116146491178701459786554311322705393339685900502134020633047962220994309940918381805815473147843254504154796988641543533563960345742800831318018106357877104482317189247669401704474208878733046997996668756381953598049124198416047428861366976684975377338040958994235717429893966530209472860875326116687249131279909426816116013760066728365634188826439324433697826622216090166704371817735853528011152171450410372165760374490739517598934237452315596056531319751382124783892880786494211446125269882754663926409821911102510092727232591208359192416025214555992624943017749706607712930576266676260634628331939045446925723272175292468742946437245462267406654740686435693480881746769765206349549216619662740252834242041950647897027148144753832861863120657182569060174462215532516922530113496597750459225040655896358758724451338241006275018846201075956626742558274124286193181609299002110296059786480191134560410959821915780939527062414818947554010174375181702697938253594717533976222316441369068331099884481592584746569262631284931762657038861146781010255302608838411740207731959788753357253266652890845009240806998431813618042550543788064001572314841311844343293541679676124325798681155217035036794169017597136548219473820726862133774220896410295383676072004018331836340498298348075944698844178815294903880641446243205566635136970239725920757917247199920963313697644139065181508281221275167347694227014423494783429925845179656723092346710277449832420950315200823873980149972118717917267954530943218826985704611451413443551480852182513205778486313195728449221277147619676846107675020358213859501276913228410099840492680367747992340384462549289890574411734409591814089729522616404048237420975776397344697535243013188358911268862390208941184118427540569385866682117286921118614109208746661201175710962550950164909693162231140635050110157162297424208994964536415366324246349239669651928464158859569172196429360127788096271221808135299771974188465472431127228288237855599869376475709829176895669780727697580332110811871058640381007046408664922933715134491384161806484729571601441800424288879149902540768170488144100174381337450131531690560390126449194336161456976903334680139197586681973318744612549105516294299324975896192278864723577465331105646300192657298383031450972150250615103853609693772768244925963456507676041676892873232798817487171253604033543822666464693985928141515558104595766678432483065467579940885543413394214453894420875321610660902428160026563075037059256252676559258421646460744810370078913467697967312900408726579379515203466494999044911753494923816957244378033046124955886097959946927404776428313296032821729294478738804004047202995800520934016614241103906615970947750006664445738685862961056139495881889473654947161268275646042912075634714234571589197310449350899417618976581028184564980634628194009788257506147446285818398425712444133392856252651741466840649269414791584521492424374949744883417583263900618021094180131186560002668641605897052335115172377435756700480996520464925624223627070797990978244283514399063571243383476152193535470618554790665062241077412872497483919074139893023828522646435040115157862749916258713761350851820942928340374189594987819228766382242246031834225567889069481776228129861610282940274149305992394876782313895370032636079885807971540231410399191506099995643679793626041984780554600002331523964266773178096566158559393141322371871904025915180075540709403872152083747517925049328157712590665778056233096455380171198683060207392331773393299417483232521606390291307241753690056227757903851781348484543460934555758890749817378515932121093800755675754237151164602259733819109607129165488156359742173495200969647193658806971581663109687611519554498657652542771825756191757965465184532737281116338615490426625582313428087956585314004764221777503456478079198696575583310382756458052306585581112993340952707828614023951950306932482762970541416967396118938413779907540606768316905948802255665699089255978577048682086553148813768054036183446381190821299574657259140526112483576950158029244906334744062595712752787580271776866220338285057598520242346510453550626266872400333261587117486279111137970938610384348134160021921245902177374391115137806571183989281739933179365146982398385030961226983004704421291418426839342275416519351117170239816769250161162494398996174757433989644575768474726734558512308800313162828226169618425922252746647131367070571908973057906265669263145139636478165391752283895232152526471473234802564284550677246405136056559873007830709136374570356250729875720243358222494185936768229212174273742498875902708239999989637137807564715472073786676589181231755129574530381462594646642994799916675533644391580486663283227401407492784483399809450525561741009548638311969087809309989626786459134961699430485989980460849873951428384743519068044096969340628840983057304747186763545736087385608430072600896880605818428130363393765276205506991787185937684464612305081002755684388140537469654087195517962242710500254943136655033847034748572300882189579284123389755225734103478322868721649818190711695174477361420512140100269053840572983780026835104459142529990656712197285581618042511464265983620392445099782732719189453464146073116705991994919778446802320452796797523885555292653442678178514558742236363098315212443410826378481359020551260726121970970442541053209206762961684130797270136798850535540587101012337224981575505315583411059040222894348052112251797115388227316808729423698559429452335341843703047953504809461672393193287030239101992855245314883708813470485643364500514556925292916084022126507501782497086376243863307161901121713648011907805871906889652066671853274930563077305278060256579924202107823423816468882726357162107029541476808629844359610692471486549470403558025913895489005397151936936069130807151870934685195286101182824726443077861025066032181940481597414407945958599280249668005531565901741814041924149861230067003387050379157330770816971364920788015452340672122945418016656907138521180871500881590967019648702687419907778879742237694036590005869705197575883314299337180214500212139938704610541732673748425814312600830434837293723262357414838337843458165313072537879092972370847403171734786896833629625957275813543026172628485900325670235057133471810449356711181528809627155675395482337327770818330875172912266712923518559281214576384474087912524845300038888133348566527229297470393999652479744725014876368886587814081522765633891977779956116105543336217817472138439796078534058775475222783682713426791334475069861550655945797105183702300836100128983194037836669477631050267209439425057085944327325039002392969915729642073092050997708027063117358788728663424493556143900094664030389080163690169535535855513392922541445083520876436357877243909066541805086608562410047418127642274849626437270971693174899598765322013441708159396402754815590978615462941605341911299368918275337236801298747818732459314648220054707135652105839788371318203078778142902344618891711166725411187965519199390046667767435554327854635358830235650456034372446781611877641030333504303692700013289188266327179447217358050756286665331482020262463022582895152743896898195652134123012655888150020716892685040811886970802626153424100484711936183180934793324175852671845007727535677396086255470075365242536218445203390835923433603324287392474602753259441133052377823863586808319875996274438758669070367589158069201016928936230235416923033534891536490586837211654800022736237218523375354827927517063803240011874274236617126100843568520769226914163943696862671966701239045365182541975110086196049738815986803758110165764194481535496731676848679853547452699434377804693446865896244837326329045504680084879252378621717246207530889610261347821646551912638318841095965450421783681538385602024331153181206264472389355918577740310058475182787507505918700373698515257831722604707588270201038379335767084528274081038333796504314449044433695387029710322630221558437569345951105517754220914004273064046915828400207244922159599893802149823501984432520716654622752275731559977147048727099430570030746170637665438670053947878375641798901025404724390400289138047249917345658749225311742966232246535403078319515711890908801201898231052555041418950108036008836881732641402000423597142965638383123348454096359277848533503530977384664154040630016362769165477250053813914717811745437484633067041866643666906798632187694289205447732659743973813527804855066125673823753703897518099868424506013929777253663872775243360455729332369216321977364347255855340229520933329979034428830951485724664217755064384340887506809126266564953108988068057472074159172080878509574685681274453058559013180959661233890011085105352407727479819621176906890255098221880533122285244689069411568684983329751066302395257485730250951651659444234283340223492137913527311038994742587955877825844173913329623207763937036620714574538442799680657955610000774551746162208001262479409882527398408415459636888279657499321137338002535336612614721545548342046563374911064022669043817832743685177135468098916266653598305732089482358590444720467717732342728215426555482496099938888921038621294207784674239454898608683178074019136734455648312486933980991182835192193042674478368211184747193662379885084870207089811353639437792579098702043623244817578839463028386842070084013367333210534148233989972922118550093806882598867377643352426850894833095697973998814810395071607599808574267489558857560237561437800003143673843031344029720285667878084611899441116208960661330784283427528264562758688650480830199324947106748885455946816087561272285205768468419584422290348775142955953246029506520311869529316803472373339102241579070783973372221192309543928826392303149120638542076436925415274347886165267823522780462710514384823766139983080819300463228699241881107273487150027680175737280498562600490815035697068404844763485493251870700195461624072024564101320144453939030468433390687120147672278626743260889876263461209803213321676439504697824782074134938932690755470001108361507463576752755123820096769683416479182118529229166219072136926640599132652993452085371067989610007195761438425025547723643976224230945110116666259610750168855015613964851541697332432392257117803049826697343786210630760639436202301485221680798948309661650678464517624031966657078878560581879160803302121892729916555931127575445355312063009135406303146020235658859162386849231698834126011563215868513323990545527945913267435352749871846594281198330565083417647441506971390819202928492835392666525853636990901259317026681274767938038209033727173142090757275307509316434275411644652190690973110399114124647459762465730958015641012355382252324125681435236930725592924885229101754850693353105420641997624142894119627003792204163041033868073731416940207735343941379770496684949994379757396591434085976841022092252899006060651839935817691118605416607487890248738122599807193345849252362503310219988123253340875384349149093824276659892045418380661226802805802521330105099772862723562889439535218384752501654358464167472117417407657825536246957190506341285244989915798661738575870515143020727870291358524752686764576684942979697262405993793767076349331424591428542742727279637073332281217794759895171413616871190836888576055503519391134230524477018360540861811613548317101347635179850521351464655761681571140799438701934333771522076692267821349968935609489511602524155670203702479501533181298550492693488971611644016036959460275223381912588266472529771640694316396825612844904498196845028715289189426962751984997413418233677764887116920409817182158137145750629963329484316139140543464981451888153869746125538975308001198822730436205696298962710961124527257139108402086367967996999861741717597453658942044977041677844525901245786899397149303268669136785955543481940628567164848821578700766192765513246906514984469063834628887560290372500197272186006054162195840155970620813778109250868001299603051918670910224288158603824103341749441889070477925105106829158287322535391253993577595676917805489336355991734032478148598148391820580093097981614428581334494497440844493024635603847916768417762143216029740950166718072060561613174074049274343935531791472378874893644580689517938190817414617338219514112660191752236536934777415671919104603777097290242502626869743595618240167539593649581145343862739917978724203705737304650544414132436605604186563661436136490744414531228797553413370478631224191064261789620797202614434025005226507642836080350678608128062470321468956608893488084199110983343660682015599016668040739215828971499421177995951253374721249877191243694626135200868336623410178903015799370792362926707962181573265701793397784020174591916671175344311975294886825455810381010587143375303510764849878244512634808233087597107917610870250704556507243758816122002129906005999084227232326820402825703671518116637540598053628320271848574616525071860512070893806124650437649311250549041889879755863319546458425564949987745933586159751785912195124410900655855165109382023235987450393181981472030482449940638809379309748609302607118152788280936185048805482014172697775613607202409337524158018109676514658930759447876185359650167619540929847109871279673902327121593080981462422246259698404575172636106988745695394325504924516042054868322607392884725141585116976767884219534168755711664453168514918050492790820950841687329738218725939761498606560182518577573155890525694063399008054268567885629624118440766860220314688264549336813458436214412251615076499201570100237870022658546848606302996985950065381444624572805299351581061816012355286956687213886116300340148638074625911163525152167075174379191107775358819051969548938911270703340175100666339830797748519656333913290126278461861542797574657360730907252817864342684150542519797403071484636205695924488906219122200123192654819588503312851035928855261788915030361326606297588264094159672735317846054537269613869613124845306083407133849737499723930722404881751114284986889941084550974683909228610160416440393491750177719235206410577629867908514096969740405478617922832632375422035077162596127249054569025313094765183155684963876147446157020073353144948061305511349606176007411924146084599574922152386319274025333842038547197091172561350157272184772588344290029685309753877040945378214047588544770118096794368925221521245038148324057505041718236445218667225616284684356654435616387497586628661673322426118583559062320747389393324927504022586030133093727590582617466495051599767611662145094024177197968425387011535653289862802488954373024100161764212841931435458234252433326183871755325897283017759045000880438968954357528417131283105335732761149435483838051432487463894134983983489496675236556297791423831827228553891432960545143767400251293529696531188036796632412786749343855550132598626223878147603433329632333576824838510125222727516153704868372317694346479696454669474716626362392229193378667480443701421438376361725224847933913533960187557093403414054907840141445533486641951967750230029557130700335802526061585144329477449288810299510899732239777862167888097514434140680406044633694190535646152794995164340652648436644158732968890952310606917497928140335428063672005903885824968964723461659396475190345133129545902802284904704020141665136904682929684244003522666674181748360662645508152416083284629509016736039711133077442101256866213614333290406301491568399876735126111155798763335452329563429543473351475223983228593419301455794320460676555257029934610402672833205548864869148080175042241556614543792100899222118885032064103745038383407897885854858893806399289828731755786432946984321863703878959654134580551712884936243136211908246603015741683191261862112309390233255246700814482823218041524314754953295941685154516385550531208806353183545657170240711756159531401434750668838666177560565559369371804967155738370143776321078198529775628607038765803469797527916697950250824980144954807890992973534430022588520554488866725795839717322457588950417706813226390002437489375855585917804343544942489234615970970117195544935276681979506380817551736187725316889571221417494208772534096007915063906241849385729355148857498052105380089286195493823727873621218928400621986511314843861143520604349171181502999384398619401779564708378871735804346965822450783334760539396935711735172714543159668739381107871496685958057000244470445552578623200638296415362051934302340610940417688471948306460179757431403560066074894019071399079913286148705965892113617100133872975679255852218117689437228163706395429409933498430076945886776367250187587476113296425860781237933192649652432305121575910758669624464499773139147461839578999471712756931956986740312778491908612653905097524962173466568759089073210110414503953394774222100742867245295633654507308020976596941216124809357555443726515815301803218591909963846589755471163201531204931794318262228446796551534429798144645481480609090986588261400229841454653896976603889829384532463973774981112093599300940496954312567249499292341065999291289025286524670157621418170972573273079093954785640390359114504424536542872552672049657346786555739424700409758972715104369462790459901775115837606833587065363112057477796198369316992052288762853895210546907998380569039764943778612219147308322077410344399553478936306799393014806655021338607736031768856464078797344643235980056912590028147445654079981636514863379443260231762264590451692499738873104321521773272556555583898242806633644146008256435126360293556188609045731648820697867740713952905715938486863998931566123677649853276941952866046521550781495730478643741548714011393482489080510795903473917622969011906752332467534910832814968140908174555938732298658651265756678272613018474535358023007832443682096151301438927962098677753932189212055030315871194856836614653414265165020306119725338421257655505815428163355207107091579412278455556612481388408758691959840349785888923843717661818581598164939754267148854302274815390690154228817702025890157238685513751105554295547541698636295041255611209123728074135278465979081407773506720667508176986431517433981453682463813173037271826084142463045165220925595557336687166020972695054094889160798958503246199194385099469065706707439222910167481379642796813703333003791535570467492483537462041889361374594517746291646196266413821596704760039201937471042163515393341125183663786657525686977396817084259024859821045616099429409727623173714543549363274467423944869442717776685314468254772904600326671876689115859202472926236405558682178809626570693783278678211206978266500161298402403784322094351657238706906661744690691176341333313058622244427566800443049202146141273867879396132194534540481228338650658747449483026716358496956027488077366037973322247679738491118159448030586330390031070193470867860986000089373706364048954022673094963249845977857235566066276438714440034002155735836427292598381354751682195457100101008046055991539533506091791573870880949045658922162874376321509151179944010177960184723294190425177715748383649348688574629713593887384618745662870365443716518301298383354694108242211359300310205091955726310629168415596375053068173828526813868781342361607991316892997902095251916950568640677872124134115898244696977385834946791850878408941555331369260439977666472836463586416296516824441257696124823535969143343603755099527971049176083745240615399252646947019475690548215469520448511141328951597955791089525572357746686676759236754335110444170820663399170705971912040143985122841975769297137069098146689001261692318591670225754284791960051505573895228889786420307554229014506312291582229702502159528720047145503396634877183970793526629891802347186287702519552014932196382812335706197366245796371272360880682802490585885307092570932731960947113095234710844214610709724124695386523607503508137091219494909678629244477959979433825605134832503499181028033545444520368840170741057866474518470022043111135217217968401591748091611462241014616469277478028848589074049070775851079579886112681332628139513898105192065137970708170705767427038932213379600648101852280465898521747827882056241562043637462882297518886478910359984892267153336316852420463190678135785092260176838062703055971126961294891293636680507876687312489375295284535311695235476114628354075767281558775515575187710673692554743752056415071392265135088152456695189165877110725664493224037400554327934985759234775449900329655513688687227466224042017948763650142766199998632618981694051089878432200304157690342562994328811027742799305035918677825534436914858649425781974683374501687073285316693931921190351563961945888900328077942472255774845594599125551297010738897579793898787750845659849474181347874489847142528952762963806890818311866771235392990209767033241910051658613475816804995484554971592707819461621026417837585237430861794497701225722603297602556810152707704198237271050978480002382582806127499309538154174709611669566934015671475584679634383111739764004862252034593803007389006315061310469373094965900146313948379231380094614485915506383827824236243000928673259212828626185414912448076466652664439138699144354596015208001473088603202023278287732303120004259928825470261667098684784487040351739073064761314245464119972435018611758125180179260136871164647263757438432422514740618563741176209762889726206122755379540524152101088431875508819781654256484407838240728824015514306956210266378708842513387856855350761555014730931240178354648873019942593655942583877233258346159046077995576397111277071852330290746769467156897883559891033201702961341081518844973166857800257824886565799461169187788022815585909000261042573455006053166529087926517471586022898689316851235035293766762691872780027248954088222656261565150805541790143483181567096693671580091291416132707718923142221830788618964280869626564886054792396568424570961045089328774643107613868893134837736553023492715706433803963296606852335790372499766474158866081097371029638331184938769086257739666424854921438210620896868573894224390418505070943037321181145068775871536231674878054471949383846560410626732032783052403657849587127153314077264641586058644831976206082844286000249838699087969078895374177881403477034786521813430030376224701627207023046792199542603728998869924433580442848784784714962821712434201884480324943453794124125211162981840127196937013370556474046087267995673207870820787414338210035392434828951677327473091212909552900129985153047414907589361202793130081093889022579114615373824648331423485408638083668272825367995250631037428156328269786558885467855911100386912849701335084526849778617307348860418890301586884137097465745997547900984568987517010786281324386666767709335514706078007976822613475431735616776882547928327922476037055224671888847099238577256798673502550163326556559564009032960667996293095174225734028920614073430200895188190954589496529189798297254142060619290927873257465584064526161156847917228734450175742018007475193523737432109154423709282261125158310041107447038825395775803608603288825318315433213876651273757663189127787020692714716506828694145751190340195826266522482326345293938323854207306928551489642989493079542405230080127789772952738061772537999617136864398412679667950308651985036820868400666806219008071877329704301616507408052462533205180385990578323167210486517022066385244433083739913349993226481600015695167290793445933946305449964495719581605574125142024669792819069415023477329377393911388045841839882281542915389412252001989375438291916855968812153686053915656670368841935530888556763835508694314391869026548368398963417910330279808296001316392130533403187909039448226246171910522944790460390332835353008603921272037111591620070304793932383080013815913286133842588282551809180490036593339399774447443484385235844061823261621165874217795265460531929858747764511822187509667750060634508135593373037829447993202658684060993923699774612422454518542099602139771965181474092803056210685404329480312640755582445151708058169437233797301202123906120166945993620603137614552939328282341965577961129857259894397130379822994601132072976306141915099244016183732748808039523761983199884179476422206676104099961018942625144974166282283401494549254181444477418948094450521786657041834657596089036845601498941249192235530956957030236959523479950564743682895913604238467487129121598950283094062313114106151008625860796657061535648835041004548641257266397393833045170070740527292446633531100108726540590405665133068866518648234974815096010269886237140038928561293011186709156423069899983129758390227351461996236588611390986016891819640384350897062810729813000832575289762238961287469474315815664557540961908616779347879086142620687738465230928351514534646828209584487442199380555890050237212681650502699515703990720985182197706060158071551891963139501821791892186097941173944849802628957258626533481616359010013418489820351274529944930832815555557279605105134980330865982877093645804134080285747436246105284761317906414797383615399995995848559451741036705438634845523061457482496768469367794571110359366996293542722423875971205316943341085601680482632372798205477155771946589623111219296195664460756375142547277462205245052805542036672215736909903096839781269421932459353091197696836372316902729337109516704110143753014327483494561097451064678238534236067249126616332647755006361997297513648625376612208393974681502141691316509719474639670058708000092092040450174389799583903132739457866149392167893570393580265555920405206821124923807897647590154800346453560868846202746020571842664739549923423425241799319361264111954990916860250988304994075170129308268564474138657135769002836356434044800133092567031935872855253757480221598272329138013749995253234101352112319428849352273368954907615614633765787747328562545212748736246869840098154196021874737741859864202951476482153691949305424791552449607870888821021121065638324462748682713845720217952488619211628820608510581981569322795415038962081543435201445768981722962653734723258870220309903915421610272252597097999884721059427186574898829182894367273074507368848116475285918759198168544796500895787885784980841154627145238278485795611651558639752384448409648785021282774869384429542845529165561604878666527979758492573531145392536539380485130216007445697535824815927418552590190424461954899933741369124848442928232133416984385029181866191699344908830756251567885380875847374769608210273739589754422436259463669426143653350615137524410630880163190336979468680645755844532701136994225246101271378818097447675401169299742657789263923316837651461585775208717472133655539767128183228847098931399573292745415103659864603900931243906749866637884054681264465557557357240662982275334943508586154733690381910887982614192551529808029610516091352421943969808342650658939417523273022460667411408406811134759799349923361723576445728536854537846803999487778975599166467185174097359349691992831785145172875266570853913737321195937416216142202786819921527789735049320342579799481364924787876470647956177193909173406621637365062536218572276582706162114792654830877911833691672977718518326554910581888561642645639404639825143910971275536340656741184666596809093234762336839660263129652851553781388954088772894672492867433855979423113512189046171342320655125339259833981837485568561364570542087251851437137662019912184456034769916197367758572676614716234276185631116346927393331001054292481595738168272589023347045096241313320788206845160908194937179325543544048201365985397728498299303138080267013954591490798398285627694368328395670504692722024408568892002645393323490061268728757875587227310579024109561000176200908204424437443752569901082414639115096063374262677564986203492189598383663548719823084348035117866317649704818798237146405855660267173672541721777627847228475182978650503993015687316195577790442225681168806381276748433265656320551478446686256741708508588667335543155975849186309858722428728333200064654135337838044360554338803553270189466755720754687443214619720318940255355192818751824288590985069319570868598105256698711186129905273094411941314928213819087990470678394821040061617098421636056632561652950649361740780799302769146144205876600267695857416043097663211582818559054403428721263467635822952635849957238678024533965379912323904010976055551440454375012172105683188412456511564404248368389905012175985171491547184079014164790876921341693594478494487247478002570880069510665169339764945391258176377059864163244280253721482469393145733007489466488190051041330864832964838877705997645820578592771449293109865723245118596046018760913764343881618952617189674011718888976009089593692873803668667590283216510277319259102880915763063567468424947862801123403576204405353423026647692533975787355899919148872826007840246826420108608797674794127929542528932168363450637734888579839248257162443601878773460595286814473884308939517746812077720735307669119687847387211661106834513031476851879712488822840562064936022011642123421489266749773858793770544243479084214490855584401458277171264490032054365856448958382022010416153168991676298899349264294041774114148437643233889381529135158127986840344068891280232224907384391182039633162013670916744056928808634020728891717094919015443708255070627600831142906592186222423465606306649983448574381346575404790249782256043719198198838475259886825834823936081110072707124769500461162755078367868077864531419561864650479383186547259587734586015523196393139225483941515315514522644564240760370759271880337062007008732821167118341437389212520770639751781500594690718130071544806276813144031503985175826848272371249291164392251463190826258788957300843802624985456925705368720382133112742921977268168505277491249990757110888196386298835659094974046953322809331484070833755369937001038691024302046990970554356418234090689603274502486399611070615053091977280420429220624129952417025392897175625680176280017946140559526837318551217425598188703284422355936994274433378769857931895379300204689251733152619321554112159899502950828961496701343085700880846959230700793893246713695153563763326373030710430972243986570329106848536032668265775624009974703531951920673900195643030492603610085911062542054433011591608668169500590507337767660692203680416913624990523982862689583510735581961286089722444323067937068266135118541335711031550096950116464707831308756160362959280596933615959834295816543122681834880887368616149461319825916149803501368168219158675292889226723762144742953089278436818534075805401345041038591135700819035341473049263926183096829746836957112465150829810964418314720072046887228809163355060025527244083989645260719028353859776975690467181785705186634124443641456520587111559413846675682915025506104059959942287769226925380045361175344672952528196288549291803498350792097086356629405776163123612332076131817022301973233359138373893757476936439672224766792935031570044308234413858575706320597689053094691920859627894872049348115208061072250835025707362347658108321541700823258194991389526320850513878297008773489848840647297240711030230775984781527129766260665635522306343288865115773127700440120717626833797663772940270739914894671431286074335219283225683464884193720383738295455905238237312612770948705712898588674572924652993461701995445129222393825669013750940428148312372074515689344625229039466806314989211156607176109304206325576559797412857397985162425123157403945931530042767780030537785146876923146683489361017558660742707422710652967237301675616413644437277589938350184948268789728642824045745584224168840661741806951539149222983618999201019363199895342338222223426025586151313322315530414639757114074658996672670550732351766310550502610224269863081604876339087465578724828421772646782163605327706836753671605807680787032223073056125443939358651390862388824697755831855763557981456679304287959792011309883896650785931765844638902962345439397545396261762241819774090983888784322638540619729577820913228496768742878512853374982526284085004126678714590694244541870808150366171211014750225140867397727852722658580490097886929330606256169334095376228605905351491834007339070847481772835431175630722333143829865848072912789537723381884572284161589739154568957570241396662166738582575785016683252564922120656926587322676076741094469210136690745347009758723814312954501109818345660221165528362616738374569521398555654253345111546937428272377622576421496034176633599103920447543640321058992912227319124977728055887316967198170511627139520241329394355949039686844180604020290222705036549755875428016243095471265055143747774544803489555999267217503322135260619538727629115129077107801590049131185581459063709774979150182530482611952718282797067775565308670238136341699638230324488847727125956794533321597984312954349306899298144404466794918067815092875713551761156660182261958244539823912539881049108154476167638237546086792102565794700651127419355850086146191762565609209586210530933892885198143578221103979975475632931467270427271173705704344765850855666930302710809404917994899384066243590367479493424465685161377855212066107158589643526655312002424349740137887050141559198475921562025128459512447387876210362622059389160849151537811036111126444648352024695530854089498614514203919375347198785665483200965178979645664145764955374169241209582906012541816310974872736652192609645842942859568262058932597477542615903364340731466608597964551966389264481876740527581115989323896906605244744970979640051046824107270170965912817194046585342050646974023210885962267168935615019786492157727165403165709093118613951285093083213710040836012524293318804589527172861473394885185503669628393128688472723348277123138040225670151427908698381273055267602524806495445860037970280162084000903509010130653447717676874662138075108052096051717970195368482236142795580002565418754507949349954411206604073054975099824362515947680297230145085107998676152035140879725313442846075687292302323757456903690808863857176665951778967833941863319822144953037416805750404267542002612032597085272920420945137342159941708538501734301163071723248583014919047011246772830430993836295738910127250686562813598787298527099257682033426078587516461173699199003324989370030210260949394066822251110535504669235165544090449797692552309357679951741387586143818055252487364929146218022002958550552828287806393181844208426996706834795558424642773619708925658014675702356850132234237494181735850787252949849809805565371551770631778823450639884095043202505983437572948218786025965507488042909496115924007073886598477047355674942675567281066758250889253792850498264869427784141023859712464111260784083503036495088472501800562910170498181077818399102496691783696623652173518870343007126162854688097104508105508689956839763477432492697655135815035213585464620666081120002365862713058016078751090093047190554054626734625942051333353987131370506820342858561458990323658668705460425363719868978043956910325586012512110367834113233395261965730860142376995176791846735387638243344806555600613581542957506204487385362556423577768620811053196670277619963214939251836665478048550723224719239137645302568298671545768106209701103013233807941996904538259962661936904849124525653760407932160689245278096173011509619918393113123156935243390727777117096686885175928274847323815719297294256044856876747863033913328445310293645369382512019624614813104333198981571173252738258541037296754040209831246240436947051478928813176732407115850865966401353585798553189611092630957889256985616542172756431815052942097139423628750403261525891419453818543206305434785609059552363035824077446274046331833532051550237732295868180407316723928665862481761234211411783816956975390787993055089858852641685522656270912513169062824725585717206288885590405939849167339526019168401702477023530974289567178180026683703986130966657735064865877975179515028650250165749258368973824549246809957634000173809379982931111479902148470609296406816956911705564255969626076784613619246697685360720659280098406041863733595088310414231956058498484083107407036655717510587999857205348347596361045127615232207861159479546324308445640971397356365106780069849176920877743793697533045037951452115781214961924337700301693280535269554532054153216485247144936677011530570729091869499131243846965854099419027058863935468507333464719625662848659122638590171540253071299967407394212788329067950780620635885069705158411669121632622840652176275058571908700026182621293100457542189586432447401884567644049985837111160324500916898144085346182517957864505341247778718641021251267472188009873871404526967063578377569601912003720305047460609654812577396340735974814945868954763002978278925207366290466270091030420563982742531860325128559190592402178374554926617315831235972565391177030108111002625032145115151706546399794932419069005654288371394939341327817521726481659142922200985860923179274327855640186760572260949909538337810477621647263012819744801443768593366560743639126865110049557130957211797196938995844256918872728912701805906608892823774087481868661831344153055259193123156552581716499193009036651958613125338773619149471823842353607960117786520098603406620804429581302713965907629490451056362596621673645424811874505367605390450311786012332224005279472757494882707755043416525826380251891291341416981543845824633839318002448672860620462487526213460939814718647611997023162576396273895015814106989308222455634770772879302441600276269533719732090699213394873667803400100681146621141587916660807236076034371353073945332876331915676844175382600049781773109550057836203212333071549774858927496630328159504261922518776848666841785701200892799735225299702281502250050433365417900945145718402841489131712508924354493135075372113502635249556250138837022239837496143800438211633063547833726409675747578974527323530022906812414346512157731974496758201449430994108109592271387353199911629881704753506292239668427411494068700149392086620892935783841149262692691532483546430341190227282275704952717752328260473269324269769769453098332475466019840687635250427243982842304852212567323864784135387882932294319003588971558011821676964070410280057477542013374351310874727237455580339732011532556184640395660886838304690275769743897917736757650647437074048146148371736059060406334011893378457491055413854607928955739352004410381975821022854910942279239730563810301591759093185272616444738849940580871383493060729057090773290929658138472339360692331091046490195116515577647827342344365638980725052860065313000244399126925103352365506177169945783373675337969722286111210501412101919153981950414258496680311797696709654497609226692548164362125845755128587823311182375816468338130630646916869783173789299864641073596126392481100063721798326318007927900908914242730980352924101539413705999416657769959999896092313441091949666175544740424499786086631237402777309832477759020986291644366216779006894382664358356267140397425790414510415848143921624748620332380382385811793178418642317968718686147367972209303380214700424568769845668239004960372804376543405375131949862782430125673078543214050339461308502464917550127538398134406621674818154556603454989777721335714856018063134516442920123307408269595923425937492689162898154420296442556095855166810273181638151625315716127198706016664174178815833610592457458737332444456627183863357346293557760889113978973667767061115745492016180555122283188821297355662880916085399580289719695660953657207165494489428710444756890477881048651565096947200365803531403346508368013784189284710927367280653900036439892943638975970586936828710012483945063128501047886922681912804436606868223970793627803848881739705166691197273262896200898895715454883438224137453731892853992982791109572398913760337774885034052838466858720288531466547657101367265405469366792083763027563836012406431271094950004562737887808603615280643374807390003041988094601358718668874713925344307248626118201662235002309188837199581749239957361608778404205533002316948476525511489662222114876499330649894297996782381997896428077708073058585615023621627769036731707145270284373855715625089947209792363635493391935930159300132495741736090620714892520578406106406385502059194398663884155574901007629492011740177792418542629099452215148461855657310588701499191639526240231142800209686831939666402549965926269176420738815141551855771639018080887711858221951655989265296960253671135187866942785654040612160856288616779711303276919422965190466014653556855708371812373555363127647068696519492969218936218118579641248138063967247901638906665547324324243099226310323044938608066504591363932396178581044951252872732056063956671073142343732624998877029395919868329260228357651999510416454233746172649670012323305673593415098033585004605804931763271213941000802666278636910609485454827966689051706671569835704654922136103493624835895744668349565491480353755044997981044074796330334176584807809873149201923290524413224613516974242408873704377461672158972083970921074290952916963066484208145712021584168111833946526910492445788166707116725466608036745112315144894326761675708797324870583202353260688418435565894155478618916152652491959820783917340582186701868370677038974830935700926266277836706719979815860632365361550686058646771272516542247400790418082695372914735551662165165999331252444647455270243952978698256164409601974290417922589903267067907495558068867575405601116663318320006689004926750761455286140483499990208812124070215081842270166977102051730442711706548493950042596557379067111517003723854969367408736658724281438772340573200338612388159199389771264979046901385993800377274035147026901737616335606220915252303700345149125411865582497808604224449835311196823451133625549285606058994235713440416333963068260090098555852033837115994725902924040074756954613969166973562546552493226813277592127695513337067416144878476951508838301902179721894028603919816605995150668643463451307088437986407466129044993662340257800326788593845466004293217589892972925623483724213567711325959227469486463679124912677427748207408919845659672929859600653065770536761636503487192200003313530311540559736368813160047245398910400869010113188735496149134342365065375872416747500342866808129133754463967420463558498981668541912745344125283721323210797806336008799296387744860794279173954189850932498461852889927162103338067408554459581007169814944131169421887132358378441924767701075919565302697481643787652502295241015792549935719246154243665028526692361428095090003862163762953167828352076850975897663250733668616959725574999121271039657593128312332059732365677083755705995340232048379227134810936405664259947287022995546706335574691309257037192775221037173815308367061481060187464718120934538668946759953009982363819825196062273290012159771136680881342135836264737463057375846335357708489041506146635753354280589649690730157252893882933664509052677247778301994517909180201309191560608896569638970241354856051343824075432900957647463573553652761086911770968792710147796965883767261126501664418730453347432027499095078579591194789230951098634152953355647008715191542095982544200114738607771675043372835555571560682031329730091725532812446746644650650133651563403092994171500353121494219022877036054662634568032050641874302746446406749927018134697370618828711124016499583215667419099692614240182392736397764196054003740169551849487082092493001756605233272384165981408149961398256662051451748030438156750321535753965229262568316546295036794646190641221918737813103069257219847665381559837028389827634657946354904602827592928738688676843696508321752783735833360831856071658886767314179824594260766422279372787782280078741097687130150302948687879305052905215482884171267417421263305731067288577638775688012888676229877054827342191901732229212372284529640361538305256128963945264620557028238072562294907061572188210991139803937106159441444030316735212885712388589629066344196417085616860323791193653054231419748885499982030146089208304700771581241870199717871689357792990794256057660519517170890808425704294633279182375105285043477267743170918473087149865668400686251333420896608080383890125796028166912781974393290426582707194636804536208385529874061614479376163071978556809319554442766779269807765962552063593619320122138756472616796455487229267417582769765474499147331032430597856317710758429189775856996180940109244672951375717935293621016002363839349554835900307029239089825905293500334930796819416829211090915715037335005635514003619159413334742423207083213488603998956480098528423523786403580877837519697508979839792002115134943600735814356511052873398153931773676824929147387017245109931570325618334878236092258426283172799856086886661560886530710710377417835009934182293437347732414772249771593384106739800310151605602671873908468887586861709685505498811243874392593839013751622095332414763698387550215483292939921254800948497403876889228054963297518587882317402748432151960614034728650350231544072062145402237653463240635033312665666470639320291262135460011816771171031133650457255150828936201036262443710399565555655365693126672063514382479676242311491488872620645302196116912733940261039267246698673886664223091118970309830891483159483938527404314263766495217398685368505692618421359473672714805050945757142679040238203084258591802181383065159094558308909198852152050821049822693519078955236197389932867149701713100488038963317164271245031645518706047128149358997326811257459305380928475910503338762224380612802080644932326758763170760373571553411940395349236034393930440230111812668228991199816230987382826586004649289581051880925093127288568076878294657687045368296823049805757991491337384589058885136367497134481814405202015708884667326185875080749553496939221893463443821887834013721961365951857783142887311524533093141998846962488337850679272851059840381067661098744635195531109801275377918150028330189301865354786181675573356689115466028212110105060159264297220246130535586571750851674185225047113957525886908806365187364439796629952426717209196528549273657016973108132622549610871593904122513584815657472393965150055661115057294092461033696043809658523963251194229025156974480656410459805824179118480710728053591102963574135038961947971771188366107947664130060066931876831559486455989709123711198322302879637984982774385704006875741415776663254549480282818682163040035067048450755897868972578412619670645758606740973261434738953543201891037921238887688478210333237950333675350547308612214135576733829573641173079365189667998673899879080219744539722923181534259861142366466370199865710835412116236523782773210769301501292014998404022929339707068617210351870043753305236488878567536988658120598907114441354527643676196402405236823347460360827042998206198884056689243425920533254479185151165798849195601191823954791851181520304817824388320727680941563705169755166334629403776615785498323241303244875513292880282707360605681832251270222135746215018433661084796320375955491822116939612424942231187586537819377424409759251525151818402534159340889997338801719853751967779031487233918037911232503132102190443592224042537036021677694311523506025951372191013619838757830621508842607995597626324165447457127702998902974658645134362898233357340478841614097255209995793270783987168409611570589294797909958103019965538177055787565743220376025403529068622957372307618632747951353917936512708515206903886728129988943132790482801573808088151812616011875174954463707881071437880761639182421501916276186208583443957663792427045179348857548825171671752558009075138973139292548314624179648178782871774797116183947416175591971770506652730009389733168201393227397931602539669444235860272987133917512718367174376776777662485779455135176182106373422499817525793207883143793545057237570264245357947075870284391897397484461737587622474911995015528091264205864140004841559809664915769253849113904058424044859985500861475616612075131748039489195993060866597924252055643993704773549077297351903161961068193881539440756753292055855378854820041078472851245946183999515355599961254448657839490865471351316257603944243215081580730404167581840472846333176421653986276893335619587595853967325023445502443895084916221996042739191289339858070552900342860832134205830889416211467959545543869355879110080755748445228295094982885778850656852775289224214979323326979424514957306734492704539100731004639919593564102507537145907078100524252988469731963065520556855504955380061680242590163487626695417516844774382798359437269095577875808505684601912945303308835470747603613550204722190313577732421712089194546787550554525033024089365350976451383841684995673838775805828036618180386054086799491873766740252544576512045339015696763974067362210378110399252465808900749892473377604198613463660282640169418323269081505498747003448143119843070243759884825023408532594883839896387391114711777360321826535794432084212280863935600051306939287512363835674986687702280991771854590637727238850520702023843623819227847144799108769566689560565782185880481574073883070652818597749469802371491648580809690677262204551907066146598251489471036937352280242953630262454227937925939095313051390596925491842681765419978336658000142587450270280974985865756469908424045013159605729242392735122538969855893850268417386238004394464079909456018588898950131397283997698487404925802556135219933980351418214815298971055221971986578360900911375618854575556435045971036127857403561341935593483003312557493495432774318664607211719973624079984356180864203990744998720357260976781254239419951203588938870301055800855059642325368671491220695565805645677178061953371318974032907013067707508796442606291086895168768888167649433922579791946503431568509992625459151418267631535053637107395038372665204664651886525275320328855134481015069900291062525055837693024324847533665009175484103904602365110586787488724737282684221839095762398410017551479138877489582896125301361365285715314944840828237499790152358169149740188917683977485725962919504097541580826611608466351444098988050371195936817633776626781867906632523947580891016042101847349074623866369594129517216998223920411776826324669083997032401403085784684405459506039982895566189861285683296238760331861463634863501597235194435306576038084961830562503839510602963689720522625187259366309447836129715107957030914708984594314244649621108189017769890145401924934545228603077016069410548154070324152366680811268040266744554298710851831769852108588077743567276051835816904703467551849908570651986147203101023624347532040069989116431438014861300784586289449904594948750841209331189872612713303286557975551172498067693414239730931630771228323992719142701536946567233012814546038582081196246678176820275289803621206401850840669347769927722198162423740656650376493021403573845176490176518330495190627792855355555517370944150180242339142949674211794617829994018259171088164429239101453443240297521807778598970853335940957514133178515727016611604313411475797214276873434358517483339933233724379344415356628173633816371340608246275902347925407573196824257499536962429505486391970514935451434166290479646891413018720834773025741918955366166135009679924031508106713476551741867932374355931121866114517242726272019189146258533363206578663123540013356210238472226984816187499404451143274059204561518610771373066052701604845655070142694234868276692046783892870265622889653656661343201786560735130098632368064222850950750758728820794104688080461039662032163556125405627369485866927229666287016434791707628941789460067880824759435829481585277187557151929725189508354977950247526419992644768737577035460738330873165544279359803781249210128849711151061700613192390235427462007967165410606817260279150324904186340855505091926407174602873865907177835318678476675140110235330978325367448084236642502022508449047634933067324129309481749760354261897585514488914954765262312231904830484654331662017778334720685218204833693189197133492976017268103713018917548167694636932903336646291685758354751544195648482774112525851521008241340037935928129069497179167277158091138627347475526362218300047026624592350879762218214579368389515104584839762012582669085611028950778687668717400968093645948645767102245432073147397467881362000744393511166582212946004157530974334452345954121694862087738807470238988636980796657873788003771001984137868135593708864948662589084520473581394798628339328974531803314662184091442548365534609248395466944145023298730504912006255377721039663998622050746119025189313717583779788021828559824383126890289199317246183081545006715954972806786303085340728150957138522527902189557057991495065112485763846664675342339539845148919246067094259653786960132431458664853772194425123790702553902455497198775407720303095202177752248927215064176226869354216891224930235041903320476365968621773888190174398143599720446757975693491116963323286392074769275641043736272615556547160311944108854173200387929469109351571652157510447986303661581385845437690086168949881474004666613025075744022728351679100286669697311966149019805506182065064273165168737508498196895707295999827774032226793736620062839201844613841210523542699526077828284301058926154161546849065714971063517238363273848128891460586634044135101125055258088373412087005665849883334209463668580229772343851396796974911474434821625167816713414432262223574403988860656315916527219868506582154992920297187535159981128612765294895968798290133600718729008435631507680342827090039657665738063538169489973813022448538812630969427055797380077588227268375257234765047714020079138182020628505779789055681134062972418495302227336884803999354282055176355676341982120957507333792307349643518101391203021832976851565103336038840777884648618286592129667269697963505641194737548975310962822875434933361746260634938548669241612634226514134458457106097928197292148149154590741478456995420069148500925249996137279441319217969434802562517614451752729439413897896070113545757771104333514963968441047110481212664136765453546612402692253393453958310392405125498394589135659383769323454072015147493220592635339117950356905759987058168777625649233721591653172732849680696296607448331060005714597231088836184328065593265848698635961577168854062699587021127757132261603868067411614021396431917377964254680818146978291720439348030771538860537675237831466906316567698874659525451682981342987230712964530191777352448784995459030447518513034094427234811107620228870332830581558341251912885755377255532438015031540660293474280966178883626291467312743437047888208393294510252980071176052373296732985054589273005824770771101805685802502604517838050140790824509088010057455115858589416371358801244746499815027002382576315711435236329505761099648133666165062876448546408291545587962837014745670050645288618152438569677853143693524828507351984186949777439596623386654521382275388884815003652696958530402279177084237908808024593585636303034016426566674396274186669556889870158578522079974494635282121981072816335982887062296584860988873652140718682087178461194747343589286536402473873832199998248814864564716921220283812942017228775308723112795974158025543922571994633178083034994575428636698732536628171033440325773336461961350924551558488648560891252579983520666862792538458500812321320557970217869671351329529794604453522912891023257827203867462030479257576381152033980393151144714556099899253422936417312816504276951801621457058228204464565822717089888015266971645281959330447753317556268741537036412822820474866532211984544963135543413688273983410453630161224743864466233962233438532556659239155353633952632747873860393699649874094537766482210188649584607810344464941726339000711979760452005091949906961881932373572715298889706421859003529835347636803961939491235832457102495287561786298116773038599356626459577222681846586023218073430348071227968022229137465299355784017346371653123243749742757374852003523384050824025674494048968716804588381102165513647983270250069233324888523978619303174684389161397031998057196204882152595611062298900364787579425923042344179841445654983051553534703324738692190010029216160838874775560137041105354118957014775553963785178794404448392729217473619988598498363063208493017401328028012960704098262286697888673204989640447764751356267889087901200395790317215169421610491956054703466569959297993098201352246364583044979897078577311218806300478042122096073982634775022219228535509931193950619545452012884602377997799037952117296651612770549400209475228114650455519178129659327846472083008511990867247724291088186963182591470416259476472972537642141084333270141003379090170030623384217268161767249397772942284692544219583057054582460578961817015907004294965915260802235014806784155796312024885231746056333073385478975173873736965576855553544566873454651680575070474417479003143984614269101805211108348337364476775956569900516638790728188228942596478358199316210837811773847948986695632116342491913347355762586422073183545502112827890537815239095378327284132082586037331662666291776108803360037522031910781539372292998350254255051617842217475946382410661718456933593505119358553395783979184315851045014973542857142953434519670287968254912782382617313685763830415800865515742553647568339665725967542723354743922638973369131397981576057867528533164159289918825543643915866874018216868783925337655373960351476192077652606306866422449470377362589928911054937258469433316124239525646056431268141232689588472895824601239429124554490364018109390389809258076104769865298483551288987573558025476070767713114586645952637839533650993348391026416464803262005341664739055502274647157377340627862609244631188775933898205288648498363430864710024400202223747828234248077227454348780996475917806568776625207328193570170433035885852677497150331962721697251879270696930877937873673699041969056780277527822392724226442695976996895690011454707003916071255880937059640951856256668549984085070880069550206955406013167873278775450230201727203031228786876603894798506004694667165131047818602508858154362153190381152077223736424182126163769930611133634626503410278701873927336611283350449443388920355340094549261326436477280944059946898196128348604328156756356966192427229774621945470513521841810973592957825229632228733002632527288617578840116439479275460547181308998739346571586826066680602248719541533146961677259827007054337915490003885882514063820713003552594711785664285453461599687598618411426123453460581003623990644005280057213521026215883268955388582525198738525549536817495411143178717643735821378247468499914835446906020873739411661353622415916309934030543652884406164352440884220987466716966128692948115257349880242315460551473347204166202747856482893410882144737432108988288622236143591567293364224211349022553873391201568001900557128000345936430249201478719005305864052736874111970694553550430732983948919557050708415028169008627838491792327678660476573817225324521040295574320403994808165504890969480324830899152944504974059640950260426827981549374304992155058627344699508269360793277451959813124769506784027663883077987989521179078067468889192405110622555690320669279815322110598750711981724053265329013363056310621579299826637223210398903396740219049647486537713313397255985686332264804554637849107585403141037178327084312334524735151638514338672849612263323361441505401239074695684864455620492657323638056666960051068743729975604516302328599783376820629412173095310846712827848974162556997031011320279343786815579724099563562382236948341815371299794579595749603001470999719174404821935023298917150461044452188627809075675050708413245336453628904393737071877655172701414845188681324035285003558951546222074789707256702348738442771672655626142518451430694436585651181581756472623698421853746442488698833599098985936372785278768051230848091251723504529333888352260552881606855802790746127645578122158547073526441531303924390813992951905748377941373145748787741854541393994563787889580837342050463331873755410374669722186552712049960239208570200023044329779470962379981030434843215250474685363362407009077421427352774637340585304806337359996737353286544052310859519407824147364343279764557644721426901315219397919630685783258131453040464671544718608316045448576271752356820084553920565122185223423419446762704886667076005386574663263731017314046594209102828782631445619074323028570288565399412415462892893565869324428697009661548015519510414312211192519104428266785930673317485936366073927620089415830399401077398581554801875560651755331404419325060971217471424967249234955496777285078758880839220031282586759290097639312876123885794721534298163266328529327401895812784975738678566169921542871938768873591662511391227590865106143775113447752195299623866634019353646542814941982352814057051136442118298942025726996338630411336356471761010967249869464182762060175386389812764630706061259109777573666631830566624089987255000556996419574200754479677651900569419195660703408449995729358990822394496562075926915172472537675304303859107880753370414480262043588771492466338334917204254615461884291436657268940721651793841109230956667445754432231461163817345959695419952820522938367161189143327965279819239737811084908043739090192343161319739598245343309369478723159382758728030877026522211578096926262585177459613923719214860425737886295714847145368273235338343033778089099179819022091342802882295110997170599979192373647302467880890867377613299032924363810504561719536162598720689597964647557556010959377077344203949706439559367590516541575378176647320858702222346843731273607122784404041360543297916266171778728690358009119937015750695903064581570566595841694887639102907975704000584963559958549028413213072749982006190407530749662637559913282321063854220835779748519046578152499408485256633367112219032599836439580122646007964684479261879019694027308140463727268849097156905277453983669611391049788105651082944121880046371307705046207306108261329968351527505879299460411002462324590903024933321881463323054039802088488638314908283904713432127250587249464472210694174456944326272197334658095316014007064547940044997613295438547915933459753552293902477211071800085638824356863282972111108513032048502398762588157064849230783537336582932829312613385143656037011797325388433487994812561789362902701114368354784665015846212074599641929975330139556610141513020411580770847202716497854691359031104232008168226255390965560704037853697813267960952786560047071603835329840014564403080508084508886744034403391693027657032733079412854379069407200138794586734267482180015047799094424654257969894665928036987130622512294201902428621665451706506013616384079866126382336892528436675547185894599664146279122396546617535985556840267587935179994014578113974219016870914653827967656944117869927777839251763007206211440215909093443313905895889153682154166549925630928160291525048194758252486744907782254258762753998255847301602706595819911067815803220378752491604485642110835684703700868927755482153967926130379747302645680274180475162813947306861668944097416045735834042933369012137907446450358601150140962809496502882206335174256189802663518194738610956145823855257158027489046681845489825307830682237541369297507379185969244111329746996014644871044525002875223064470074441736616420133493993866445184778765202312899226963015274528990391811736587079937834975770955756585644921753243947196054732626089341509099320923076464026908185550653495461670056281089879293505739269971721148588335833952647162983092511397521655057547098167413055065848650739942421154093948190888891364383555822196299837040887431430316094972191023029733516248662504740568892739879534345256202991129585774013331229523540864300865527122743626314895222525857543754518989814003738273633648185511395608472231157107608290798010260887095584585194964107668507630844723262514016547461160052879516494255637974959834782661364303102295416201086497006703350006993200493603766524637107643466617998632301888995696958227425079978493592944578232608032657838520119368907038533284903481772485880731479651124401608024532393283528501469995592331080030451124008170230876620449033298894242360606554555407604774825073175006340685355452303095663002931109615625890334775302701884281323411194781575498332406713631372508407958239385576028319362660935888068138531928127939118667032749074503273795510394812244878498361154779017300489661318504965681075933086732512762397381915959306552145015891609228830372479129422814806062669410139114984827788199463564158257471692836524276229559054770401436546737590792491316990972869990418480858035470402038095015755927256121160058578831733926002989009040372910606362799024237317364489316014866576404915124709657997672351094257386972394031280450786526269761988145693535930912681941472879452976317550373251012943410175425267457664001818514528907906167204277088659073895823129781476631377764067570486646204369592509941173589461530016875268342914077143343653876375492483985301214875629819772180714134937298757649193836455778889023893831818002689486770206476178992616032684551521418043268690316555897498426845538720857266761308134025822342130683282398225104393010286652256869750896162527336628168274550422600242589299085616507482582289189330584702224185308861568532198568482703205526046232323954212084712146476602483797250295383671232003301798042762269355906913225110932790238732390706855061996531472193317536200044670606865447314498698828177872058355037408465267320892966736962017310914364511510247923025541931447245779287647858119420699814209876815149905183070893681637784842093327004706722242361678735517316167046938862292714325064756540250895370335300781816477706999060270241456712886637019985257964788310031421373084835692515860353761689450520643294809211136448006109685819308232957263335670072566017284430394356969629996938920146971128161368929937268777135044417640874109900389777292410292715745498783906670486022633278620702136091190473295141601730096822647961944248991212530073686449379117602010542112580695408017271669388333384040457583813733163065147851170549715943142696712877888266388398917271128163245742418376339177569747339563369937826682016086968164914464339823895204412969159197404472517265651686194998638486194760728392065067666362371492155292642291814596559238621255218123327083440061114829907708440180976548048726195823898469879602437973737922539265698422403653458889559909797101354954442635046674756600273700850516155116802960217250596430578987416472540153859310461498307473463911325176627021126774482023247843513578955738900510736847724047264714219152087446856794088730354087909021035612917625047633114716193611380646382796222310513104868733521869541421495130181905290286909096212724891081168968738713865639998823563572513753168745144739203550142185103889289427062401777199003053436323928268803099539356122772259845352222705080006666882612179768732997861024714709721682694448109510148130648986568240495806548706394676039394064846265978308331198965482830152018701117183143356485052130288040076340006778255022090242472383217155279889755114816434284080104426217163347897499007899926447366885834781598814228765595187231114442573397324112644982049674936829429700929333384177087466477167146214444331818687551323995762868809277769771025639961314153556405750837127091512201430777310815625231590528201458342442693593204497058953654616432130655267270230484978189071658201662343015406951710119870926603682327573563951900364627910043827035483880571788325071026860276854281020785982289175758826491383559351709844494249829996222745231378037814215226396862152339958009144213222341823635624497496260268975108896071730188600340063631911729452819786825461609519478702544632376745485182802963019065146792674769309519816777209680857485722488721582920184307868392259845103529046262884842066076504120571774157985597685023146431491446626521446450421888641515960428924802729605745397544370039326251835946944235645214898327386563080950477093259177968615931800304672354777934479879008847228227812200285992539623151305177957322827688822723538985601611320749258687967210327175639101683876711934068095002902871298684012625270112527507009919812538464296255101436799381840540172777564932299258296789551537845200931820026944300965559145739014963331645075898286697555628648907660066794750294170127456166498797557289256007385742173632611337910375464284973020960339763038727148048050022328735495047134143013104009095548898365189773920975621491614416090332048330087195451120920962525969785401484296723276437587710104219209918961202402787554392236606353948778057226429030377793404885344161889512080700696395561451863429583814624945626562309481762607046448511402891787075929969840580607509406538884933521634755484306272920086848702455981829945219758833572240893650234368204917623804008351525355357025754070202685751894664501919988797778538312482788741575690196890710376342569896637262176486171660687357039132693061610955606896774692689110148997702266024122414156394579470612182763440157586257684370576389029619066955347043360487005067695591865944254452875869142550222815221783287039118717444543245534100682027130265124347334879576671603105031939242024955214551905349642912643429387548970908581422553765764741454742227168655629246460272441213448574747333956992371329204586563731259526389463850655508450494850677275972046366892141661004419852949400642258101657951635919433474532609768453339136231088855797261873677091274164089849636204800649625385759924773175120365029727953948233318748352564433908857920652900469807088593886039031020548503940068080633374354406344920849968775881601581438273528345605521789828591420162644665247387738949106934967313615592993629167675154104794950172365449278723992645692487769556158653179887151330720506146127780869352612070640342779772043738092974649316803161636032537169882399068756964277976916226193466767204862953140853303248267839474549486774858872059986695235236631960496408456220333223910424323300855531727339731338215681907919343086970807834094569617253695442786074902886980984565198362004955858468059604087144605694472682756952850166635737063655782209369366978989082185144889077163631681806766569816244059829383877861705541432498196485417831000091952869622579572765441758426742362015699730113831977449652460158504364941187541007762492366360753532737846671996469063919993818156228666502728802366863511029463688908311513221211457069279492532287346190175008621856648383599314749481688686393140966696845331440470033706480601982720017146333419279712197684257881475936817965821415006547573116443058373641230041265961911210933511222680649607239246037764124320141893698352020966534064354697281373231073006061640767911133086422249266790608384635047960887599932196208025175687555499147353705160557806471343352757617549313048361615658681189555684053722791413109115771816552622724852239862832635439482452547302023123373903010320969785685494558994855572788028339109480562494547342797484378508118580051715139124546389543326961808101412502089806954899597169357077088074143207651509623242439503086334445386620892061184576807182128384942803977982422065013504091209492452297115854441865114132701440491358959029739353485308316733633192141534401551690821699129830507704693086198278388568539761026697030920402689262595095176271110841231775884516954700477532981354746236121911835141920082783850195025129430780837199883363157776021460954308131534289262684694879717615769520422954284436926018963070507537162521698730883616702363749999819244984970157145271723858665264565344424761582815414663803010748129691821844293175094561145823244343257226988446975010155753794642439590904821180952512053292014521771040796637643180646295756558377281407144699762464781786464999381913747679250428456281826755213976466700390497953209893538873982459050604149088258162034716633932610792002435521606999412508773811646750008634020524280622858262120374608968322688550038741529525029877327125695679644548116735356917025981640342885211220200231618430801259864309237459772124263894347475765294325820834307234313764304775398812768614878575989878713603146522450228241898427655587464367022833787579727245451500644683649110012646129327817059749606567596361130627560246523347393406040227910285119455474487177295707017172978440385557035694732886373820257132146532304942062794471935089767873966337437005302595816358476874572000207508735152674396311693727265347574988399202842013930389203329781515841686520575504605572643352581297426923151922481804197751570389556243045653320420315950487825447321074039195956406689447970150495530246383774953029877627959825573998048126450063782320992822697609869524361818552879831839916606085498565569641588843976420910930529355893528831999672708418533086411771411742980991696670214546824354390333719616249333468827672222075336581676334588723982551007376374778766109390728620664856563195896298070761496394161624211476748939516099636984252363394616967096666769599168731281099147554483438484984236867693514694451824573307475487384709904237070208371501912205151865533063320443845465277302434064423703322252625648561639784117638579206940372575097084435125664426155456953381307621200841638017284278809683732128391732893897213636589099231020266387143624055690983020752939350435864237829997120274130352222505940840903002111446485963957947962688396070621974221561940848383520705571499621308602305557121942932497420787100103641347675499945338551961259885723566450658571761104629364915775614438416956042020003487794286469362116271797974394121838145307564691000939400181912566421539605163793785300839147682709106405766404490533397640759512031672317484709329501724882430905830524526641631573370620043828790377005156574118895119905589757467080290673339015218874026301878261441213959036046526150871655610596146734770474480053509406313284758030087401902036952758625449540255579463483156198884844408521949731875211035632098402228841554295992679150363349079729717760687121130285307706575265240445910078131364983371079544578299050345666922766734231032359628140946334489238796834658655254180666648538404491588978596746819929300528081311589469091596534131824074647426617329350707070955902254345256638353923309032475629315465360552738877826793824313848455918721842945367311892517046632135390806336868703657703733554991785024264283505963768807646497744505754494645350269858017226026392331210882464509547962690072232155690682979075917865287462849313779220299646845669376554164218891362528308463188715194893778964143998093193271349485374257598932311158402127110888195352196779792855811978409941131162387638459958760007305005663187012840506745100932026844445981866692250323230276895603116022010070842095655336902162026896605706328116729815763268435401998669998433580862834197061275986241325238060625639771607283773879877428439836023654901115992487756872671905865077621559172407878425984461483696104666481024719497265714093331441594969809074010319098650995138475507644534304329075073322018315120167591303591484898503193838421963349522184927398838360841454815182124158564607375045560259972436416586867739547403526950172039492848047165311999142211395554649756534049395939800328875106715426789455554378337380848506286908405112660498866665174846999481194723467452530059836060729655949284753493845815919623657593827736926603752331704137765181497538211624020924361771381728412026326628310630563545418502740361516684313624484490485282017196200975078926153609139428798541758779469173207138530714299475547710371944379070991902298997336692619866445379836637524540936102203133789068689987152051408124129170389779275718395488621712670548193210605821149095276993952193965717986081887479043232267602362592070144142163554450238880797507219308220183783287934186202151320737467924620384971315769782892670149155262337350509008634225125020570661049417295503908503996832635092256884366884172367572381392699885588546984690787715177095048638957224448469186509205509824781447540140248319535560478803038514472922369920463828357297445811655043906699127947892434762883823070414577789884836879510618602098735354967167792874146863529995437274915535832312505846565507833001224171198484066108969832343314665693470837735894520411831632721246664968092884282730010236313206545753143784919874599475871646977855144641681371815368410126900859149849138300093250672086412029298123888112523354269375533118371226056307821378198487713333324978229436823303492201522727457037223255382962356833655519076732550286058889530889243386396316472943341629928756435773721112493585825426710862574630853342179878244539976069674648794270443764970942774365529748639372581344160125167032219395297530095938853515925316099671074860415292009336519842341166724311327002529806073989743254813324775350097458711775046844713957791883500224820872890183662136343838924760440371940270275565376635702392020441407537825946105375242216843938832523994574863074611341681100561741358178062275871544283323843836997548062847773859355539949220651544493510576820673429808342870782721336362832408213104657020368883990820289851805620032725248625666751796028627766280527790624250778055313692416092907487558996221898307699876646402169883463001619543331029540235114929061516435441402544989434248502720640196474162354300306432580193165960428452176678677414050060628575059014135646344632633011112503333490176573603884652593340053111689832684942959846269938262119698527659882567615060401317262007197978018170344898309569687368129094302165655485697402249733106742335058810915715798362997239020400114654977190156282265397679354966953423074717952170301179831442775088522429792193261164804835164344293166275320073067060821956429559088921312214523882841667436990936171259049684313420885882841575217281293392763331643410104610215055353252681945559193345870506459414730112061811828621393945787368177140137922169526205551220052437592760573859394624621325608949309455550945155429596610898770087375423766747151144556225973973488381259085451310761104566431012048470807050435796382312856512084090863783726790283002040675495327464080555872120925728794664138496938349328441455491264427978085843170903572876402229667948201284948540741236692211952327283876905594934381665209846692547545947317704920176260722252462738031736513975937259293791750692604227569475355000752645593523792674361648753370123691257939627348342411281677623966164223946690600175978468898256985060023611512247485400014332541526582383876531208518738546483811742477775919680342111253036446530552238560270799196951531722689780796970397738588752922542889570329977125998725247022669007273678588639964166533249616644730710463007606385239349071145144596902805999050515349989902352671507833580285130331489478719564493653526916566009952131254964892101917961401197710261955366295308831980478496065262596047480822427485072949502894623812495030949140777234456863976511728402183919843092570334645926894506228551837401944271911064544981411479919930669510677926531185409206161792873365855083188836587873640468653828477930496516585621102961466339351165326474550085414602406427113040415037955589819731433972335166206018790408367535891561324507492018721116771363520619478785839203610453383370914917216671192354224828814543216759532280752534500687957121151923788219424621444764754223106047554312991170567990683479576842290399666764461359729202676588130024507832958534821310021729164887723388524827536827371256612800994736006998723569539808278846210254645098451790130841795050427953675767472885467495191358591713206160642864641667177381464126115369347557949533859362443336028806876541722975371888771068826637848277712318637953338945828174395171914096503966551351711585517971391592057438073689578734862228306356539072205561738372414260962232029651495077342604100028173902454058086648777537671928780620826591901194081963883269623259866608847105136476917693084873424149730417220422548415977049685885845624639044893876531700211909393427356675904563144367655950687774621726466219542031456372839604588104968116852872077276733819746260175675400287180246459301890076474543379962366297516482145333275808652194786516083664868706530933901808919954028303872011589537646407674121773931315702130864362199379004157302170384759839162893477656218199298269121197221509802074689683372426644523370977716310879008869585935117143902382286417871177504258149037268152166228492418347464424353556843769637201171097505155348620778503480023727555473783079836878828060146011962116843980015447110621749950741512848071413194654851161326288525371650145312172178707987525689848816397487509586721814445336148598671911204650636264463593094809260982473775205616129990212861600083274819692448297558360111012886923956393761250506761619273615198668682798532342673373725493163414526542682201794154768515198528090349558415948255710135903854665791949399608672377389573857934700607338615827556279803003626436860269324690453152553629004906445642702571698826885361658127071498946789885239327503861589043662999443300703072584000662356675467983355916610370464367211536124464127233212405168830962115973646523463216908346723858604994257541876827255683029936306666169402161663442999970131544361336311809490208720506433404267931259525229763162477034940583564203836353475314937728352896511379861736740980407027596135689410790809367367015426361082947060006541298638900091618614949219112337500981531089386572357431908263535226373485324632518292447095122641807461218361878795524806764633434508628697026401939330329649174625199456025973604924206591036130402597579841635714445072520933093223104221738878839389162583919225769852411051395754268019934969305487920945978706040385198773828224323093496125077627717969943756895629641266191876288696036907272438651539420785769609517294231851107611697646893601943809639609412991976916817571989663746148166838903904214744423425824855742809662367119226440844970124532507205385578763288403144383040605455672542657430528743308936614010293970601218252461377968163802427834255058287102059065576042818076152688042672196529365945958709124040185157458731661788460448043628039259641943443585253782944651421988329008657755289632464691472398450664138201134547095049540243297706537622654077283177900221773480589125691286488795150459889955350727538460772436433592695842586801663507380385931022528841026279406657655222405665459766665771807648900664841442697383131278915711827001531048635158953135523407478736612378312327357222018837189098598735603963657151572340782756303850802887726181797156686269581851500791001976884068788966974493331327160005299227138767996533658621377021179766179530021350051209862100774998581264859608229783146167968021821312625194743725473445196723366557694314800258239399377083732266393884701645362034946256980621376985960060127325506774037859046971521265872623458789898296472601965475260138022048009731566050878730499228282419742695596010319932875554909720874244908088514424972982827533493097564859586218133850563919763082792112329592325334352730577336571835608981042287619981006945857352229264523841856868655541327733007956729038335761055641114686033556171123483240101617766197993844219824007908056546797713309477491506851072901493946241139678622021522336026702241781636005079107573057098373547596310274554782674456925024312925344145581550957928310513354334602939801915950764694053648157215481814981234178620243052318031144533012892813763282586987474769111393541007290941658944079336954525617912645035213502600316521101319386254280202962736267626334855372599237918680637116245093841092235053874334229384540960999291316217487275340040115688460839952526249753525090903331372173399872756907092338366641660738708966340325676416736868550535663308479410671812737695788335251909897791921267317453321967331543984216621135038827615622823211779730984866791142428017901104158601630423671012052775944858098536045142755862005332201435532878911811266760194820202478312883554539468677373138740389598752564390680791994260657487372032782337915677243829899448429649490709830680635889456307515623753228687316171167363610779692024433860368401083322586381776123131051860666774150297413121174341767676768583865753703697686048752541814541730632913892126178985837956415653440509387763567474746949161204279749556309411365913562719575289199336875162696710117622226656288605408692609700930783136427255102015518229294549296079318953377567463888551764562760268370638553220781346338285347434774849351750182877894036676430993366761327645589444904858217589637232890758489120129404311339887620328068127119626862052490503204526079270334003785510080599581292728619294836010460597000644756050726303711284437024326759562514312393996447939768899476787686179517872393198860179364601581127544428812921987938441705414615410825271296599202250896324062406602415106377302834812159845035850200566040189372257772513131447185025387645542846115763037896700858952085695219312542739443925110430438600316595820884766009263445559916183278306924792188387828182971860876039428648619829378579632913822054736683791496667081835634632625155996566878932695462618087746141584112133711425259012102890460022440185140580350964631526004149317681831447295991793949474658314845833955729127075292309340459821229626461121440797882582336096720352303888697021127074957232697044603197406833717328458685804073028768808147418202690177898848612065766816904890205606611309609581224887890885762865244834201124645675947106688968439063114805465013384369838733658870060883586981796978697916141487408862467927645100895262503434168623801175164093649757559228176712555724902209567921809398722928804116852887910473948047442483172993076478595715772574393386897400795642127164389146776542075049950693373561633595700948018512109193878223725827738677288279733645411227016515968261674229727369444546233308192379516911695023978549195970622910981582328783094539557841849155730512460715909898432682288418171755700415997205916187748725136471007654781528003771783877764004089209240498495637684458993660413238196390042916270082075526996705394257320434591503888980678954251741346493383904014100197166123451912692381731930647196665145094510052476726972909836907964486201330885519379319715659617876557799688822407312031601640842925730699141732426608744128466926193325446338869508501614846616269056419890814271253717904835846408630928412379457811595653723240846951288074405286490512946320991225825565185826123069222175990894204357981188984812490329976023090685218794959746561192039174599448254127660309702637676800362627746385553520843044182269191096435813058914206094970066667532039917836195619991249471114745022719956971792457916694714169671179812132962416523408994242837627925063615680880491623053254431718536843186939512371077532378628541288144850491238028160661661548803065906706163026870174587576261290542378058761393131619858042477167045716619735648210329679269090272547619574213209841709924096589145324443849548873166340579215093685602663916451248556023806789026027259202782680751517512717416121749810931352233393267705075899982234871354183156497236282940958615448251754145423569218983427896306167192789079418895929096098407144523588255774527783575014998088318528732340856506830399578398044196286395882004179042054054018669494650283467771762892668459555345302984975256363992395537370697904274266677242081345981883364243663479821037768588835126242783787090822945161822633082837043165978775748626871722215199829393681308638516095039281137719541979333246013744203342260042299551941722689029550326233506756756791189551550208893945182450057156704925373049737023506457145831824423621880695407240689770342529707504167111115910979797690300709804004801206890817889921158362997931815057169949992763601176918157899308856291094971685842232079676101113463194274056595929329293006284372841100940425407561014388975848117628659813273226696331927716097543321100542104363614686300168913343078014751868352412924497157168939102534889613899673788223504258333754628928569735128225783490749770423044285799955229037847929032889598514455568478900814267979606115401122330747634346174477513075596863141004704624700189523384905196976828521546331780388283412658387755595918437832885219840647432370471183460387915940893660792301874472006847536899548392976446823028528785853022254529402277636256716584313879771482898785181659940205626462197704714655082894140943375664740218456833443697995601635686852540749588767647336768341723350565228852603552966750102912731220725371947917650136528786692491349972907263929261959390587938487443526515893005432318027534224161371434240181226806354615461653179684113840544992108841726027841445216691377924919885530110548583705081757005640560480754355114922679760164838852492893736999728792066932840095372638037695967547878266212544665484351778736581714643578435199029229723158009750200326463923035212990841409545053521387233910026581494247080648140933400390750537740117664893895037521504738034549102563897110894908621390998576117588045009540053937269025231559941466733611643240503312146384015195874467931357999136100646733330104966012007607208701283519909389191516782987940927109795580598247179474626676897434630023088262546784397483004224365267757891547610218290954590655759158279774965022261745438530425570343019051470839228537363746704950611046716103444041940135332985862274104974891888583032247065773213047135368231308310049151435025719891414925618047411665247738127524762376039807010210558920724478926567010939957666578226996014310542381612783730825536207663013720262243965441659235322397890884466081578186891704151083069420377300649583102208530955449468259919052419157683909476424837976780892805588405213955390944359543875014533754022640821793280192870490729647847371462843740851191442661935728833295683877870400884324658655112957203161555002637495479273308784645670274856050468646138534802069939331205851485058535725925662247127752123178531455321674947720477051741481237131671189319334956266617703117049725602598033418609830793585981456694207702813789432376776646201011966149045955363587901685147030403965656459265275890857348875744254973071210238626269813969821994144766311680106489903130033555337755260973127075622304648875634585652895906860373907563449851091144753679172871520292893411610243362378285624097903138967054807970877691540303712331583462397678627139856052024057048708793875828146317288701032081797476782751614614349551195607672246975493296755012689315940230195672759921807250518558673511755539034291507754812283777545917836573056612113699241669925175004277643123671343173149740729071340811632626275353280078482092787475597101808976318584937778549840834281419261984685619493925643019192629154276160292896167041246021762623067896110341114822518372469428584537505861004627407943968896000587294998845066075111446898999568729344466540281502409117388138604119079690352058855301076879507513500976305890049048683614937867846937461949619788666191689362867062122788402800901401593087422122176792737073666869845934238358118317956244550480408026782141480292967051329057438084894441725144444906945863783795040082318075627733388338821115421839182272351781481988905233208878245509044784617834343524729331736950765367282652457736371115539987753361353720581614197863679597766049213868345507536301650026880349122057958428753258686962853318263223223362363344954505928565377980286934872433479400237008859287565277333824259370612966862336698106963027492773038752051816411167013700456672939725245842842975026085497747802171232018434407933522350834971295182371990960615005437249893990660783888496954166749553806088965890329372158123944587540964412759959792071605515132632718415887850470473667910554432163337414304650222115701565185641355252764865036128692981092348668709640497961488106415351306586465591446619614948518679451764362261811113231529831269609691645373137636484493203759298601949648202655936903105905172115933237817891035250639710206510081221544926716640488034546088042325056203044014688594089398475522277004121869906328048713110671519729355402741727724441907784176133559678125395244712457057511660836842570375465624011978643195262964654316973694231882952468887178926030210991373907044621874839397240136696562734268869701479193867527654763232175872349691546316487238678098740502643307338987844482277417301015713409117814135212798601319642945590150485516188374353433397592582235654800427296007822221143701579851416927900749705070185380344644004609624013302789838643707257394279123570614219195305269629431264012585381085118540619633430709125931532726458193968191709238148961953146259992518143075282957774821955454281383759048226773095051352631140653758834604227335450486535376870672270352413908764624116945873615853896109252321738425722152992775021698728198256479344500816881872158297176572199945217708155376189195760851124221956717963648560360447603811584573753648378512380008221720012200095430493556546729264542831928043310179363463368633557814555442127361057706660367214869287264840910152890244363656429425307453833302701985001817042583085731965227209768413534356639873162262512968590562719721329204915935333692534561057076110134098508861135914014174743194725412678466977389539555326958819985014400514397787905241265193209606170896995836756812351090880186738913156772843244466222793047307788966925663496994490388733210027708739024356901412617434980298074825117572181550354407544747777939385160054596865134178465309863177482033687321792272290287456383809399987164826973029478287191584818374050514490182325807866982719365255072571930044730858712404812076498289546430749291639327156699649711485540060132086072414525412661448571736629241182139632862776795847660923904477118267292984392502078046970210261482281799794512381797954988694810059952039836174972911952452390905854981564722975670500248418517473230027412079439325366571088466218053337872618249611844673070063100277702904673750146047540067454785404566902697252221570734025271888561604190081035969560353709330965819721134647373680673330542897782670028263399179706310282395525630523018145024746694142312520784215141937472542367472024232328646046255883140342928023272900819386927627324141825590374704349309150667393990837870301081490431391933495810067146604149444737232455762423786501726179197095517629672634530673056496456382255638789717754201014848423596173298019801042047469744892102169894167619901780776367613599130078355682494382639124792744617280491631496152275050158276665690492185007056784962110327751982348950221417388720036558889600066755779744388544369804533476384290868355162833325534412840976888826704133213210051710361371296135653337646865832316802771440392263938511894392823300021721489137891505775226948993651829300066825441069969598250479808871647792037142671205658956928773176061820547770138810676945221859668834148883944180407658271184262662403772443329616970798056648503755024296020312535770327817210944231515589125745985134057961322731323461127421097485131360373883431394011763944706145695076008443851915824882359243394758004299664358394036010505943089693247042860901193109016670963709891794406488010832726745063354153300710666910735849002524441598919558407418087108845557207130238173539459079467670876524026964309465785943347870099667790944995057975706765214417893777802069842209229750241787107476745672649864974618906035633936178797386988479582714190854996287725536468164763795169433022387535650203567138880293926537350329069536937842719096221505235216403428552861124832330319297620489546212286979453906840214610551339626156229200661201202905182840981079116389100696025260759545153148740736429392951308559870719043378845524396348788851521699721593482064559311265211912933879302411738094144533147006408490485292286814349881115259674821525573843007174298687910062570308700545278211746114918819552194814571653256529327453534077568927613076195803802335556767798259465439597089737962445487016316794783170627605702056265569611582565794519229689464043464341400681691720654270641999615808879624874342481994657889938165393778536038201922731227145244616555122692495888003555675964770248871375590011825440394798064434509235220319787931725438301994342861637553277676382906241736174819497475782454856657404823606431479457850028691926852741911569910954536679061398698453612440870576056999473801960501258086016653233661630115573721110462810166635489180135033548351973086976369741826060321068730773827235465794937489744683317141492820156150147040029866430460432362956018923821956366331033698029400355672123559128420754382128941113006781951843654705451427432061840567724086327738616728760885552394047161561011449782074309793168180495942372665523344240486775886493981406018470099312415866759161067354838069594988341558768620166629304596573120855983546618219076457152013190460009272295041258210814037199799564848153078185160664231508588910796599311821444830100033077350587163616127126086948694397721235464114053834667772506952322555810727134390551505391476374389132667144145075350747433287058475635224836984899583230659842976992602801416344883551918278092613696954179533078755006365340439213343662307516843950534220025896847958868476639916111792729881011378708575751407674818306554599504925714820588959038455730813768051752615016834443749688413224516639007423524773963452812778326138865771479222491524537419919568758095591012490523052730994279950219259989857354953229844679052314511618031244172480714488746546354395750367392745371784646148199214494959618408858215551322209399012847930774557765546778905371772846112322112599388814104394946792038028284555902095116767900045561130914623800363760574633234621886071186745642749981440496243477636380588762538076985840362029410358010029036456739688797741201959565747739105560740981841784837694505840112343344190394790750545417960310468304354885500285981852586121583820721248900552604074586744275911769995291406238963108750411691046063165991463612892835369019309929143266091988321667135106039727419548464380604231474294020042332992367769577321976623541902833518305170710020404621200681168923241111598585656624060708345732022353266249372042196141289461834066125385287819567841578165602755269206175375709818216041442824373067952948949827486584425979515803109683406193928284830703951032585620757154400141032651962564205387558068663097009761368471404662233996414061085190070952883124702131865656190883195280008372798669999103338062712696832296926423451857105200871330450477942482411331818189834465413857752947624387406327887355384632872256664943272706331585781877238559633207837631400345053167295419666119380621308976658833554833782751996519041266326832247343623880346858594938308377982313820036460450852801686077544239700698926782366609534993905190882526869788703114729534596206625862542665510762255225182247666490374534675662370516181639546194970063583633465531813465906419629107642553501235904788596043007969017326784060048094392707254027868902059242916482308648820240527165372087467429701191860003503129718536797840614683761608082904167783575326502978526608791650737617182149652792763994789671863114907137994820462523063559199548852189843706983477336610533706763854015254970714761737225610397303064731889140382457727150767338322757174751125544260631716213217866547792826029750832963812724188936153885041099282878791775572195013523783016651869052526103395386228407873440370403060884029989878373408534244228187501815384534070852966970877335918961104626075619363371211965073901831974737576690536469175531641005854215184560771686088783935393923847387926676573533238695487722845222980290175900367177567411640190774117253949690844218252068757821160154502338676282067307211565638256992595738327603294163257626116609207361662024304490369469375102160134097341223548106920851771536614626129974343229385657230404886065321727748731249231102637412313386102536124077083234064328262311666217732752827909785039573748397973979650106556551309281044070934025926888585996961045571687365466913508073702933596362752905901654703964326530337373484785935455945404882250937108525417074873837281140620273111820487843636779562174061725517274805582677576733171860755577175592942167642742794960820878728990384633883741092531963157419771425431457840947004356221096812827409690446179496609394672140061115509670414933229559086057478576786060863544008316303215322059839300961025177677724302907061317071963890381350624646272009038195170465631428649255351130363947049016414408583606714347353894371576742714786678644922750818108218562712662193260524886674368399215862864992059547909661743325005905510395161238661848718700803917934326622124960627468337229239599932211806948882914833043362810644924371644355446519034415842523579782120040191831767633932104241574723950056267518927836268209592247814704575503530428279171504619175319642383071300154206491840315939552252989370146197671626787989027539251372886004887557422063929570744958682531943832517571887021448745381123199837196451240448648423785118339705260539674414867763643513760485208467576109598768164360681319268553724097547167297342460528179032891692296870216154334062411168260062965303823592721196109695006512753913220392061575754122997770701058564886152135781180219160927638783480879816550732655254994052647892752013111478142881753659853047399849270756374581843784225100458129328591001145780672009192891040052186569702714576483387133904982937813488655744075599911573011816253543555098583685516815869386755594167062385664850608443598630803733233604127338974232062162253927882729865414601112798798757228878538040967251073349822660897212040400194630814866058698537584412006660567716340818161410294435560231869895313525324788926877382680542147817677999185244736978703903910720610546025893867750055502672167598097451742864375772318914038694194294224375572129802211652521277316098235892988675596398055050474975693672907628770008936031464172151292574884122790057844612654625282149550887287976131651657872558194835369164405179208202688044375330502912719763631510572763911323913095705303194101510286253728704112090327623303316801611155311563864046174897760682709140292480423942665677215604867503351796651732304081778222659634257195163382947497143578177883789030069043692848016555377232056289645730446522627385810609715948677565406152810855398093484200202994916511726534155831740663539447948548364662890118204477167389001492983607289142456073064069892937791102235687923133230178826393019302509413713537941879429438076811379355353777649557839731384973164319872904389319263577915455742337584662990017014760742205566520992714317663997417205093148087106130346856578694006068858428748025876671361415544178233879740753030900722486356509914860890688580194714019664695824935649820630200639040764345505721267622535332537963901875718086385014130274987141790963589071517860224842149512527999805393708816614796323727578310039463437806628227538993323568165767033043564204107012499542854374582232443510237703604256604707847437671115104405551996032241477917350331026536550443597945493250914142605880787097788954481057189242304805238134714651182963528576705575333757990281936722924122963673433749270093693782848318236579510080941111815344539635941716025347408839432792886591195379967488661013461394378014437480938832274894775197011229689574089316551115291996894294515532266190722940923713809929703195223223243492511968673261653229528534994539338679110981560047575639798646128641321883292928270525175273909897136858529859747772990615275632304176637955993474147831645365312279245876999998176147154497724241385503397298706730154055600479740370330298259144084124428657798009943455309142038032749257523970832411368125169605746459458133447366286699966727475750638381387175843717224191128252108866799814327460121382403193699178555988879921244653310177339305375119534441545266508084176327828394971026238424557421749129244687587689869161130420746482799759216071624843673186859671449390993188459224636207342734011728553339911850491287764206248516016621306282554117335185436178702994640857769505763696680571467355420239637982801252906103840992031542652559666363728809473517425340071512732191583043796090283421449450974885847222200771503990366234976476844144449368334046630483728045769926855732285585274777986641487755286518173167397468337382928416091590629833982650599423245705534706004119578712508694492873376009482927406998156598199714361525990890698806627691305646530174210904683031319468127986754546217634649250013152515692952642053976277944503312129830579913352675621719585116859333633257373254262927128477011922302462815113243225139728047376903410042008703430976921803807505444323782634038226334230353755757454521522987802877871788821349382652606709455645082202759837573760633618297606196112468111341067182568871371822136639917580026953076078572842354976064383660763976988443038828289002390406261099103963308886403415030817950661591088486338336081428706011406144527030459367518026512085432942191862717596489742043881922986978147340424559930610430397867908977176921757896677443251123165174474135980611043882006689123140381430944771506930955773554339512466549981435116739612321800129273198569766106189265705329348516774000483716446276520246400877112743919026337283899341115423578194625518226232055505480517115822554147973920228216466492962091622305882237246667172811620987633294019415099226819225786400320318562190980481460414115292830409169166317987758595102845332892660357823820846901142160999906881394638643819943956381236070807659927141318582692309391933812992538647415306487885872396525736068496897768026563215633456599180040010016472624701658921100368051993509989900736684411690845315037736590536336822331691714599189953196701075360420293806200862751698957715506253237156000958919844244079265779576775533384519372056360840427867703543062732466088663684540967994763038755521713689015899270863683866382620774686266242338829692683091398712624850030674678982090763890710652124493117780000161813036789530011083285480853582293651881178833814655419201406878515322699705814136881726053481815026632740767272532093023641060150018486856640105418641828270972436991563299146435287955176013071012817395238260826979515211998409257527889060722671127063806623254004675712336892966549216826634185283834067769451083332474959537156656971418493732999341131997546721630070219189527140182790425202335983652543309462303257113520207190183565974202317908458001367721788368629956882946072284101789309606521203297136111320237658722722351347068473318406495288405704506905944908806469664537336252942078261007025624122689406752894510408783120476322754567951410687839614390065250881888405828164301004238473647784129537436861585617707610661234882722062150925692449297309025873373080553110867215172936942843830851187611032605912853443374689553792303138164671165962538848239343036389018899054091834530032336559143079368311955800958363145484380799148380793506301925898369558022262682456813799719973800128989400180258568022934752426538171375492914940822386946534488130134327652643932667002239542565372854451668533281787000960818128006619700835404810678049763079380449503383648603662710302827641654720972059416172874939000108028754846148206730161880675162449542241825433090624511198113219994309805343392000903164614941708613349581116730692168287773156073263443879235760007542402426779150804601388383221856861848331592558573381234332037699874909365034224555107051510806313855313348312926781752403996804911852926171975756367993848059125616500777907901070927529232352713819842525554814304759844386200277159131982010819615136400896047516891391919383412053247939098290973617469448153653575310526089631073110952642902848732499895816661750907290615458654846508454983694853831344108770122816395653153032650894664866163244812402116013149177882196097873172371060136011702635954643382175601340372535459478603044320111179590284768742103907752990813814590884840709780863535106047210895335540593066630141005637904046821919865327708913405643116341440929009845689899738497600549278633336292830452416520421352321928143020242440997114987530554496718911193343927715084090959710576926972197398191418232995651661465330428298982300115362625038950378775259102055399717412682464629332050426956199538124714342367902936982541864661554934096207330225302935522422419547820469774617951205120022356412811798514828600848488291934953822464917155512198221904384081089757752323953331971937125390487403918382341673378273840956402616264803617335455892554537140179171159093524186379981413947591587081247943895593975031505912305851279047241233661888359427250718732495733420718695228493114618716169484674568671274108291856926759384855332516180572697803654434575031027985510580898270578474025011716696122375277239293581519346937884121814917092759002019415148201862011467575102110260632273034472074859850195781172344599946927706335333050932717059058212491235549545797098772823047236243742229620445032363525591637937386526033387322908680507220940401379778953000234663789917937918743177363643241395053230978451747271432789962326458939015806477724605714766130383400044242277712868064381326622760949592867138522076851852963253345067268249078170532954895220323088136124613359285294327694314611250350637031762951674371439369024905932286396996242032992947350756659810441788512169973932001698735135588319808265836953731768136532623779425292973673906067603712085684862153287594598970660585176174612303490502755421314990329317750806852002910656988970754426575784925670909204773616119570655627417378471217637966623886892243268714001822705851577213300310920525191387991716841494619984918398529142986788131796482426629604927608861330945853684537139805871641418703479388800289298236860096334719541464592315308306383001754809335977851964321702083505601840885044055661253173621169733183293601534511991561401610891817260620433387214293072488865935796022806969915762708361134305382423921430240977420853077049145059793193035943568831644468790442074270894613914501927412507788204078960791365006078049540769244255271402428042880466801097680206952835692060914202800147154786409873167404525400952254527172868821976476952621938641211629193498019981131310527532273699830351384660478483113625822193311615304668648874675922335731443917687945916559569189488940820334265093185102265479921421964116426724273578220810735029541938001544558089533639081250000642218785788704708062330281516415441976695052752769748214609859502676769133965157060459123635181387480329223615317037950484134422249702135353553499668775063319607214308540277879935172851435932606348330901954374183294411779599743881297497213294230706058564538301763555277556292846600354169712120857447852878627350158472857551871988898560699806055476277300260441089111941975295160338043977529873876942101502598082196921977629927554103732795521386462080429356094022568803949191387178531212423859079632674592731528222115139364423209216181224573196615310850146284123105565682319601247115210155247331131414734977035815356594782648384465278670227270167679898332864541777838327708698776497036578503127322534244766285521148227985413042203983825667186060664253717853100044040513024102646350757729935263984127236918019988359328131984071005829683050670671340655870901781171601341703276551476687551153917747447221188559649137663587184922799359268129490487570566335778617673681935973406232444457338795542668912517899070956026888606477984788668538707081327773440014993447644472928213037793586984847810562096918199912018260944394155543716676767097230197829853174935586470174425442366919746946339053765484920139934693870944691337244891979961122703436954450050240285800914906274966214215429578747321740600634830881988198499601658404056455055027846553727395141627951631140879981481331910643472306501546329631786345749247418174844884478638899764132767510964091714348986015442225712714418273014061456772645782223244691586926650143389345382503782061596656914646301258601147706485800912568161676882110988560604887633482109532349246227256882901751126958341449775815714447869796178079868856967867489101987589517697262340774146353250692051408601471713348615972759116443841509898684509035688367790433932761182645896368469867832299227924023266660217821963910923303134821320144316498200319729653433049968660686572422716565364370350433242263365351063545228347590986766901484340984297885446279629707672788257185270976137537533733175734265881258754152891548335404984903833684940092250312140627603691827106679313837577095056746858280540534676583883625579877299729992142463294253944905545591818362127672652419632620818753509883417410793180569087657632375868828120665270711517398588563595016129771234325510280317643056053479569235256058792575016922650629205540019207785437190618913911717475198320154139906662115400010955261098435231785189952551214971102672543376878070838287375808827996175042171185619775144668519351497628290348323513643323276821162453183817304938772622164166660045130709823850735988768863003339063634918458966577993620717725662201025014584665570717342869590893382236641969606996232916424616801832058691705412695461392796274085430626920074467054395885755541032782218653731019488886410914025715692842827290983747245123657236781961155947007862954139429937084769838898980590248502105179518297554306110528383583240823936737706194559189852736880164471467005965496961958935443125511290571189091102109024091627156662980931933248059137326828270489290941263951210089860262145130675420072232947853978018194057678484309957026542073983105042213065551830027607558463066939710161377831678968352875114433098684783201130623259059983863056125998347508635770602042820255311652810072197096093662899938330649355303421339801529524118236994769073254389931416251028133535528627465885357853997555934319610744604815656632444245790547030265785991026208557685448003218691365482803710982463999797032621369246130022882505589404562685700407934194830602238191238642815990156811694049857085817784765039614637977516417886791855389835580786460342587174942033140138934616198576816514402235490842727231260975797475347964566972184158049342350448814962925968339711971903262815514969910775235663904615662220884399379910295612579049695722687367486221510450718212612168039998699224512233021461547297309555212735312917423509580326893571799940559475837655073273782711174106019578168986881352924803485621225942916866064508093312554594274805896584294415183221370543920680032254310598215869464792275830932240245057030477453936227915784788348818010216656557285409822764374626953125145205920948020011742156733515929093848889224396227229427705247575089488197284105177565907120983541070089325245149897199622108460377966885536027169415248587974426987577286216577610808894526152160345220993987079683641799275457685029134626977885468493888672668721954784074384129304474812931400595565746912813406879066711104468981400551562613783217477437877872759810044959115907419684665370917967652173165062751006538066512430710216517616334365519089707798274860792267513736122293954236398114069941913435043437368266685566534466377486012921769875042925779453055099868849382471697761438657209727209064585231066526759576421771004988569904052120372158079215765392942540713258454158894671385908459612563649132365238073471826159414408321663947120835671951384276002006626283441732109408601717932889606851701354454171039804445555522120310550593503377611941543162971529486207721223410636641095293189881704229291405832897260852804561297965656371062805499533168714991554455396155370954383664839897888525933160637465554444792934449056856037059562707598133456938906050093745055071747477853913899235369318313720046758546664298402056810068000138736717414085807576383862284995159732518730163174229070273720842720701120941491341614482741754332395535348511891547423783302808149806525157688650514028644787671198237144892665215834657259074324373731811039729197556639900406177935439140832626408187395237228297353727261393615396262408420609979488484326817714437645015757765202849937196148406210676177951791786267753750322575454264640442228955348103655204729440847755123565423143904559970764648385382983221115856153336117558174991523360926848097424820032188009752373145564283575561848048278861989704261474014920575304350572248738495072818556202338497528173224288468043824391943045657560361331633439193823117741586737120196249093803549345422363023128055115336242398359926931726963085834928281808408273731396569815372520123721163531609154620849161442373007547748609519578542715765737212302798307218223490088807521152008283709838460519599160138518195744848486864212391871276408199903616642837835652941384004489239680253350869521302313395203617167014425934983006889899498402701449597670074838329098892069367723834625979231949813699617236977780848209133488460465871251393546671097863761183979489246666059440985359613966436319479568331849351943317755886060378924395351536802206377432603553103574306678265313219233102577316401898854685727514187895286661930959076381835473237080700603569432894120485416794467678371111727340187584148141364018979811876346731824188766066512177985573121976117655066474296048005690847745185263244837370032613213388166034686896881164140695080815998313716032397145660015809708317743134629915940994827818953923436571620730343504622638525380354064359418683381311688978485076633259072639863485346340694870723371069672022181357171224405860686234615046125664243042196619994304292008296747074634871228612819470623256600453301419070179944267116105969369484452694708936073589415484760906028017398884148655440939731740038946539602262880788426728549785376399413490849041427133473425200128154280338290403683049619071628085004250070118977710448103892843374331661316266746452296535533398706867270627970485743206016453344341837705509622331876818834230885597894263832281378739496792250322367891597355181409655658466436431531142004724288732444636215717335957372501643741542159778134937780868509331404650324102347596517733422774518118070041794150521732151826654478166231403272036012261346285422919814560970873347664787303983289865563371341134905349211933110194447509627151104658692638896970960008566218996623886725801636764977707602895299349011911091259469001012807091635948682832724856603081884800523205760102478040703587877588429578218390478955682457248178021975718105187613474617987080103387737805078075682542505056249239245619439256812500423320465966839991529610986868033852627770026288072604074204659394555587433058020280352142562268691352357648410692981760468660215500939950483514692156794608443717322514723505135268899999134600015244785795333656018789680373350255414908628794824679321812502861275568098635005296387990563129596464123632063579331182976463958356470551118568418798425608390244900466312114426982110376620318498261464845647591142147086341119234786572911633639450963422985332997437819022617689678680317494810644020768660457586128872043910368256265713918103039781241386262761408408260666283361402483124535286254092596115697552296762350686007230873307222312726388694235702213038131371383023398156507029636752130401605486378207176315476063154328766628668899512822865267102409899617853182003869945947057835778851969532464458177177014855044264163363751060924873467021144154334924479409866977213343651262588666016583734443312408513803298003486738014671454562032714087811421793797337218005303079188496666589210730675372175881105051763537473471234825682714679852105274595694181556523294519600732902265339441813736492573062269403783437856970049946169155110806417043025136092929725243801805921924610104440488995981363668025110306884175536886322400471959854990125464884940129046573507948491052898561568971531947837191123171550067867534953961920382267391927084810701708534184800991954628454129285620588570456237322714816218444461811643596097009153896537563238676043138749416358278791854337624525549731537286010418986709439900784078493630276634016837060703518392971707935809070000820969797442126185056479438232131514444146205128872947076477240038053736596332056246811679928981703845631858244567418848486725371232757184649614994909302726646422821126094605132339464731803699505947156874322086774697747946061515217392193999611191706408541595453484498868678321454379342541954239441221651349625948527506890249129951345631145446719005236313616440088398976860314139849825309767513057851447388053932077784080191450872877462204182106064413420309371621812642161362953359445347704663397706591005854471970739743460402974249664090462993575216848110668662331264948760521943674738135621763176581149593620814316783526261075211572411868839649278379308006706812104106496731085994045554556113640208798160888054269203587202558284656122520595126467232852016297356077321222181779133545673274744641150076440791179570414252743671631497819018473736487771459014902692703645964812181824950094259708742041384322699916289764663768138503911862552529442364649710289545030694241989964236285546290924742740521148472315165493150260526960683236459691245878776773761459893407717227194487489258384073990703379698316459419641371108755047393735165891594793553482867044750295966935084970934705958814432391088360769481638084453060604889962463658669485484699951790325492480196823493390513590832594766549472660836571505340295363150197635780302919513166893563716618127639239071919175803906726005661739047459510297685896561858138202110132243854447742473794111255052701243151760881063832920677309534119853548557313482641341298107553764165155402859664994536735859149911943442719200535957579424593881767594074246070034459506969601582268755641286833773422543098328877973205318783483290776893375615692390287779181562544099847351016517233643382828819341151695210399231092382808989247887115846507329378650093588917247493214791659813915068490029924012620974640389746162052111864918314670055814219198105344839222345738367535163538564424089615795233999586413130863846744787245925448754745870833079866726058487151167733652736222651127458924932171468488966840299735739386614032881598486952630493746133076277678987576885759263329948125300977224584584043822312488359900832985098922703280897587430932601339656814778124488486267666882982895454177589556756102541040694398069159696274349328435712782691357946871549861653542356849662698136778631070721191904291319418770930133744240402649026224206610607803670783163794829059411151638311002267551806646523622217200492877577368322663613410275593912188691414446887263312599690593339350224367540215743469885526439046654636697757561830692068263549197069886935326707553773909130801419132151959105289098237736709536535546502382660034113449553703394195724347697907883179180312469510116631136708162798549118340721730764303439113881005828604029644365568295384614472592444200875415658850267957130135171948104262554118866948861747816874475036763844606280017604921517330258729989594765177785842139095927263763904013432863497723231744715791154661871898376234225289806696356385754192944282014246759477738911391828213437332398720261806352117120364820160428369192508603848102506726829396702569646036945234408247939952603389236668986464624929554433749244983926561930805220293916579623771486469695238237428027922983198159368057409128777612964875388238588052702031774480194961816734454335100757743424004887604302381434611354704960495744913474220204422913207244501254837007245272375065741355684382508137984773408719547844740936845605533183295590476741936002474043160130632174845380990159863438091763897336134272768681734260017780965789441443643372417925170070650719780222001931285124622500170117053754037089840830901085109480468721222296903706118770467270813616330360328931024551444156021213608279125140048956394086851436733974097887041139199361380976436539252402442350290173986570868782287552365703277951424793217308700528950471575128020115079501125055837398699745436407833370310168551994643514062998587801696005419593819927776563031330207049745259171509479297000740322849137674888792875146827400088318842549630302609762263754541780268623027651761783287788711875804462642455777004024489811815561875634131279837942440752629110015787756773716205282657697166872442977357320502395138087782337652011632780054819587687856130478728288037665417211345349260204503763263093876105113971901276965568580216714175409674286555945478664326638981866393069540314087691520131154350524090343299641379676372925518436131760644573689580974705767512516779005867084172352182466643642301419701987470592340557672376592214625853403651733368020186835829158336929436075078381982513186184561068049183656431520777444033414420525418138763323617654128076432095193391289176565423199268099678769252963035518718260339979294577350043774517548997163077077447813843782490716101907778652820007565136768931665269320725056876862962416379916096828404926762879778135285224655522918290268413667604119957130796225112766327468236818493121860255158848733576024433188257961000916959715256106780093953454616797831794801863941717817363792647361415463646909211890023760051120558588785442454255609354634733901636758284196563586771123404255238409497834394685438295303810992659708998994382771687516933836129693114757521372145388132415537642333561186864588846823672528117903284212196541395292072561682809224557596988356582179254576485440814622995735770255632237142596388253666736984062639808250750979546573085049106506296782886424172486072050962904689727786935193461565418970556707027333483506728332598037002703138214165536229312538069530923261850443342707693500686475017609682703721511915044353038075414167764926543253226435895552037644858503944577801477883349355589474960313274682295514533992226629177453364106603491217715196741696484544806813162473411374041935553895857512803366745804126977545266409781151409297363670229046985249524250831790224337233627130856359669097456519901068211181596151798589203709796160521387395727753364355048801653111852559202822674868077385628780857499803799654919904700521010699056985516531778452374859049958476538684265648953998500319881389824892779472275118350912529997683192684419211025954072436357806531075699190397582160599856251638418392330637490739975458683231226590414518057430997612246363925732563413250638374388959882578678214427210022848977673355737806099422030853237206828368124775192485304758622290980843615586900710464648030484112217620763600567869329194450670194546561631156055251597372038140717655070198402084932388187656055896382296331085762502387957411859869354332599541471973628751202263931956421036008538894715157108812648521621692813642168980952319752674754378103419104049288538457470106162731186425986514110903866398714651959512425408543304523277813128630307231692673305169699737433202036203138269596132209831150635096628577240588345898423961404791989252992353553491906791083650001257126861659019535773474119796724346223677415743017393601510098683887764317900756068384386739920682280846413612647405087772339660140300505168670624803525304782693788361629654150418272689693292018459306131420853209557898316507709056323736413653529136952811648453566173758363789070492384287795147384411562160352097050128379672508056835565100659883537067935600990417450501443127067684639764692799111423075538448644970384069914253607358840057463663867744283642062930170508573988458110323938143967945473232013874999626434326225606568304610536418313780394564536287522780609196483062214627298499132673096195813174126568446067295975221352232196020364565011123911762476424200064548097945068587721767759392515150965461230880667671171286831544478755744094466650399892124189269811669504643715825475889156991821445674319279658441757903298935997032913426521432262246656882546295671932467102368470667788774181692834364023795494312575890293307497943648482091910574898739482428346039640684223903388582594432303604016033331256029215341621664832629603331861305647472233962319700892510863465513651473605575883005296482548806324665769219629063594893740965869315117731660575009427648509724562097318300659333695341320789493778759615490369545912549262414104288527078452297015394403234101477707244090762476342008038197355531093372218163854873091042827875399316464922983437541833616066800297078350027268145619832651605555596260286762283888522890382577902526620465723262825038874659542819158320748348918477031030151027462707612022447011851148144506038568284631047893648132791764976460946136861597415587081728797739313548739168253974244989285694988080688765144564469302230155133030436144827975111016248207862745291562352131768965366074061278836326115365215835916198349930374989483894741741685074371874000742651960097716837856406252346351452476710827014578456868100158088109746754447144789523586132621034162073885839361732408044421523599281104861066186553824284477983401635495417041949407243719656188456905079356855773634384231383105389782183295591932188668647833663248064635671456326430214042933241622388842533904292941455197570540932563029329276740517474336560018418248652742680369529971345197959167871749264366704204711199710604647020596663279863234641550831246763143723961711251316073202913356215370681488139348655712105680928591332402394114199033244115204306499651105032102210847685671918882052950231904232474312202036702409828624851788933193978505268728118474077807922881924408458360631771801494804970242241118884839793933647942374321521822258871423850830096885789016264686840215910172045795901131532982084763062538258365165838088468605157691999294498671597549522798294641750001465183210534917171573135284336343680769262463063759512730762305510518668340056868063250780273654687752445262729335873501570591521269690502367221676739501142677501083182191607639014644335664730060829546972897271405521126399765989006766518631291338169990696993796698388681093713199809611750199872542548603799021060651520667323171836510341783911353599015165400916991931451988898525006147919406432496255090520154925688228822384880442629304338371283788498057664492973144590197488146536514976832688874096139195316791618161856254223997096329150090548801634199717341013785289279047753429327535135725691662318750593322763415830859040108250697174900571400290950131465733110347818511659195802685437401327966145761595068720094082471191357284404985007721155334535405955594284259883144270613281495744916492877693697877033684836732448477028934479638743594812451322433271709413893795053162714400879262942633812304484657057651540415998430442689105491018679325257561375268365354362337278572549839370883408263284707171188514708283409377330734604180860880266387841646192898480983997210873444696828911044755214381172470476411060725200670520074966606610252796224844219008501095922874320090982389580498662449880005970445663576803065633700657840317754730139083774276977421724633860453115592941700728555366264746652320942136125884912597684449320877205570742269241410191255313649238531315067592184418230862886200562284466495360990620131896038683846350935531325312367756195251919206300174782878924074929693106709885344395699890771840320861098442776324950867439270626804512403920115481641739431885284379938280219347516318316823303971455772656575652531944524630982040291690608057963654846962307729005734637210758503884020533327530546447790480607914561087889652631956985857084740416125875359363933102522963651761468849045866538766032568877892436610490243638609816336835729138583553426482020216358451457295918211604035537049325842120283259316088137731974040060988288655325231543703711640149550968952360794406079119852546533467053382817817798266505174130705981105210804928323215593019710758821868698796696402257646679261212950696028989864244622730693587510627154520495500779309246634817491246423815989507659441470632865283923661598299353849502714404231068111356984216700327017949569642852943416542889311882723212228478708749304654415984042414039283504193085657515486372912724955383878547921476419289157096620348450372564457311920143919216800667570208015399027282104857996600284502159117746361757410478811445802142766405698337304156807858816520548311330197970603096063055901824747535107778516297123751051666007517643589289667724694796940693532048030938111759696110227412175033049927406572640928236505428488391989450200977440010062767350407551209612427384757890710184888142627604134598497914285810587990401700638295202319420252075344465273541608684105983124725943140200342687632809435813199517232013922745464101303698083461268940567921065704157479992910802407821584378078863901158056326960819794698931951609078956730814076937877470223745926640303436523369778260299043520626766642121119847968697173184190743923301552136018154151877707278410001032313174267412130985559894529842496955633575232977477771521264533273237154112640855687605706501581809370450243366090878623436409599518177245735403174582162102186084965679644912505442565442257337398438680177429967041668586441479813911269122696312518687902289461123168115394361702395076241982258404177167228741025187548392941229974414393234451223712913263390508959787127014202272424377427013551638284587646612088244317128241785162583929381361424213295108223384507361711435375986658526879115696291448296093378846367072429804834042873914982671328079956330433101527473721217182495007807953502615334319545348459064300456411750023851465305918707345006441363756318365633223890053995248671711001117705203617727409958400115990083063799380331199488715132295474074935841130329249500529818026635333812437120344250453766965996087770280391124309862962189421368962021350728119933442765301073638960943590284281468004859190439544771883565257122948053181605072738338485570018620589097352895244675840239060233308782659919301996160488295334397236376851060105168599070452017311666654965091201461979155952686985101340456677109724235217452756484119108299342882933324883236300813125845953065119898932705921627223369173906033706767522959939493911601729087957463069770938581451149125995493015204504354138819538074464263751935705238267520124024728559618993867772529192093827211443899989247817981304706643649565587309016772159547210683420947601281198425036600931414334411704183284312508216865702025427504885347060170268822227139053976152961732927029680562960439774896888049703735209931570897100593795457694188433264280484727408939404867957967511601418802051093799141047977535913231091590583988946542633491948192180939537012207120015855889103976870966494980371374218225173511444788584559974440901245757496790151749555282520888295961513376699446811466159783679275723363005061524955897538043321917413430652268864575796289259130954419024065504156494580401483972391706747719434249344746708026998326183798367149165599945208553549328549764803857760683691831593885792962212756807845231433838693992159267079446630693783488652317296364566406524020025080453515737747644106604263785808962613589962041533154494595830111377093697656450345372782218259003582775017572464157338749531663759857134310094246736931998356419249613069111180185193401445630639170427437998362464594767114515281253106666495762535744159989606847361540153260690414609246836837964628737790090649919571112541920394456760572785161118810116122929229427804995413963213860644851140718910579434109641983098861903208532022583789808040806602108507742981396411844702092404195461222148916298658162472549737011807724791469397637721732609712445820293582813021398470831773000174835421300834636534797697751958263676908428134010465329448236338590896983090645824878853514475029133617919385412059896830421557464612528609941080959981931674362617688523321338456839036250472752386768648050788936677170531504905492539925976526324121280549531041398254078544133024117356184090840162764380499270236255643034312478215642465778582823959185126133039730319155346937679981609707398687678934294319498540840347394094584491419792576265446558376566435374415905942081076750837003931245086628484414688504925735203203911730929324799940621276637245926518500693327987176031776453131062683466761974605392677012839142742750954651916127876741614720591773717084262612803724262539163421539053024879930156632222620163581267290168489148828738710001707425277708071617631201812614180184961305857984455768920136558433873877459174835355870978856604524335122456278069025574756387242846442246534606251187418825563665428517022823554328846784493159250128942406444942622865407810684444265737197251213951489869765530012980751143421032450713079746722090328145396376171825960706559129292008959852062804573024810070439542797371747729935079184539132442810866900981114571711247471428468949578816592313039727061100680345294328630121202459514785647778373476481069466542649277508519961718015748879236869197446876234801097533866910216944349003877062178046974891011069172291152513876758146768726193016853636805760406975880561982946351324503524965983823559836568275463525409087688126055895546148704270454018722264996193534397448234122381089373259223610156974456825601082547047770160596773635149827669719381622829252724618453380924119925930505539045404011439681411904895079732757704899676130739484422506221586298729167090894880468551582879095323441810480110710408619197712446269585783595420340857452784405388506244184117225949425515743928635322156790904336799150524539506142166307703584904297670517396906498826514090537649295265544717265304955529895358662589859785147773848116498163983211174923968212083126602956586393741315443923482608869958613343456962265932015943591109904769268191820767256209011715343188791885292970490009932213580975541276114057144898929881150059908365469435488867017979099321047774168566855842699545227131409620498460051274449786480732962268382243109023021063405901928644419013604525883512770012380180800458055860050674049081888342565306453006721956362574453581122100892778930626038186027734757708872216402624298245914422862841654933973882351269897456717676059749728104329743254130951570836467159978449697146296324072476740846490329802593745629094648027617047401744000949625243209038626386280809409327043372627383824038304824618965984513358867242375533658309678234522643322775346428120790213945879445424407984755298028186704288827667898084276764550038014894339599119063071491251894734638397543606186841315281771114295880461318391902649568714972072420335135215880148577572673748451268202673134934488690048402674446393259499750355971552205646952929986164806870733242422383370455477041492494597009498243976920264612212603830488572606046203850619229479736989833338345781338363132004149375696579830853965648928830355737091307758966267948420576959808688976930762018296132198960932281839518432823999471432854428729028017002937121275295031346083528741048950718976667655232253237198999050290785796589917553140389608156601222410210009750607534813419956737585240546155046752538412543197198679380242726360408031604851842008851039581288286733708118464434272761186909954401323689543687955523635184413708196036952645219038435271298992109088664283892729227061992561414984011940899248314907584375550524940483133140242052828453728936653100019410722625442254482928141371001941973044528833205874647597591510576339362637756529986665691190769884978403600102453236881808454110940742544289541738688999899843449299962188079424581087988223569250519464185486841451987324702374367070997232920976843054683845724730229557020402254760665243595913860171453821533050104213865764719658942528774421392820504016662860477824567250377026034800383992378621040039040792319060384987586245192860761949958037766613487064752643561445965939216853993677103806908411448618635164338385896912103114539357744263706520442463638081211311032456634325774206130016521911017475184799734886634196237967662211804759875957358421855842602957712042325650797913963245396540677313785155884952855495074070039646407465453989599733847440371743887736280868470762488895694695260016681662674140727640204693015493303191583610857425252917030078963633186437963715412324015290602897729402276393192737318151925989549100926899381896630568735712972373380842263055079078728965228692234225791440821123859658827961970123132629514847276935446954865952736392575299611774601065590739714531304797603659135019646059313578484026485790526314804033179104188857013101540975825049594402346601144953710959369201628853505432744685248119572070883566282965116812628188932735426330617995983196030999178620214087854097892817380140402411363824885245185698542315540722076613197842035615242003604210078170897054070854486064316744336629794413255157158006959696348526766722122828962418554882057483319695979168653935471058698693135962214283382277784366506318332689693683508159412681177882736695922236079438490873699247378995606948816821421606737315930226913530441081015087451139572146336537959111066269652976570773748402984993538614556280616769680736986804680368338058316066560964060465961831815220983101723477919108505347331729738713499711740467224375840713710195432265369108785264223703829080013730741996890284839797272501422102667556793827025622092988147384723840742882288663043769996716610835460290978916607020875194754333535403520503418617185546052872733341749756338555090833959561762160051501610773331543890156791239221539541026473824247072557835504392399656523829860259907572474993293723604095248033238592419340039093228950931242051127853234709605763175393744407647718543975931202555352248928605822449251421769325720304674942991433043903581694794585852412061611117085278186528826376976814869335792940260882185852225376914976498312621939831945771115774433716345564187327180070765090456984796366933138064194537158593000213631537045601076608830241024514150923149061036667885648532950598672804626056781120385173946505683060033345057406125566473619896037991387650148599835941095477633565920999970247837027459461942100374970534814722902392927426431227667899794465723987547881564189238679716731350268811250601933639718937516878009287499032585871773343134915096433812471647549633085067073450731610263219943325556064504076100234070821398581192036766575227285055257036400132062424817581752511011519539444300149665147832761712460121023959503950788041183981029142128975281235305700034962956798326664852928583567394307541871046178690785328886698789266632142540080099367659005563415302867037625685323684264716833028533319326459060839199077711910674785448955542336194216945856315796128654110077467440826261354633193410067306487054276002803051015305612508677130806640963928407110759322836301949060097425612971800000896832766926837222245216395212727958266771276404973922576868451221095396569846435126419142193088865263282961738973124573891533725871251001544892013487023890113178935505674930884253791110376578264973055453935096633487648659093699992647997589831923247375447093672793934300248724112460868033891448663811402120876955482801927602152158352527570287760064825093307323296728393398761458157012233587718877836496844013555906590264632310800213199231377511152328270157231089710346660916218938235403888115909820610394760398500405759995257439887706285645492439657664598949764241742491722841631872502235100703752954024630880374205142843881854447396824091820744820646307438607932814454968995674310186940339076150199316615311529474246014425085465519049017768052896196930063097111320249899001883546410579653774875227739991167884207728161841432068047746655870904570726045338437612772865557100284165980301254036424679580264310504564884629822857755494389714148119267550437233080831093206639479328110773075846155004637978552676305292815821667602898718938360815139305715480055333144210066322195699424502344530285454386247797154022340666273646486300770591543552736995259016675776404215699261397732570822694640398928776820465823873723159788355614389589525359077499214267113279945757550656369539770134852170780197135785248496197630503352138011651871416923040009979913452025214836448730745172752127140469449864541858082200953061944872658003161541124102801266956657678986961094773354883389474109931990283036093452333792554008830916954231972055682178508384724876415803113207474580822040203662440049017278951166371240455346496829797164269723027731247613704839031334778612049484627982919584763469032456935665625981565140656790534373572780930435615478274928422035726867425485893751787316159897080611076445611910591303824689627389021179175458096226675152077277153276439538593015106345812775291883524322677156366359116881865165117998781252239698285292428022889406060863246109490895103986763381177737410488378747785126902175245571135549479413102724981989859722502792651493388969126908809287826614091132176927635434217987780727404352216494732179471474709641543384085624073520353059627956882281913445770887500957153465653497990955507177690769529590084100861260622571617377375525726155589477964239047211247888209212342089277879717108441005956971242056034851249152439241085085023430098067815857756089365730920732422899299590841187003497192034768079384310037115682555305528576271179764184735873074777783396403528217127670395268793781520568686803078868375743571259500945813840101062915178305644514973592279964189758161917238384701599303195380491182891766505279117957111531504592248162626777070282287697813148533336505953925186088330985663632531910550163094038471906135216580994760918297512545043321524084116801287057540423108767766534691922845914323622400889014210555743674621584861745270435470408758315202081803762092167875475362116416773782317052726726099774930076571711646246500114179316142646753820939215867926669118351351293037505477991292365925412499518965000578764112875537943036807767219511213539199134710623415973056177459783192950969526681368326120132712187760195328575774088689620356194838028037938526960278553171331427891787499252346672603511479260498608093787485126943750974838527978350390433740175777290007028967180892726538990718802425856074837678132520917993349105007789698894285265725728981987412145913142726114994747584877012705242259379652375889831901364418968243567073552155773522074890658989688633341667788578001531167828840483894830308052252121729433933067526263930431574022066442706428807138936967157460638584828409425842427022918171313482262881865483905688888031409427932685616174989542588894243382446859881259700248430587228734535654200676930110887752821611528262519708601408060440059706932982040417495668612437180491015909512208255380763051955697734906393493238598065615193355006381238029565547506474086344163174276645004280570123323189346636954709863308027205407434113488188091422461480736242093439950097433121923160761461403968194745511733298756334156819291528257083025803038956334705142672989749441540994572924756200889871153037138073772362550514957051507526635923578178081614732986399158089939598434684460394941982088789957945846865357314010823443751541574404851809103353213575576393913177724421749727238712829810539761830566168975360014632886979209012149063240638567019421924676290067470187849320977697450091543392676712205600418847919165070943332897291236119353628945865726525166150736618285839886917649698140780310573755065404990674580626009704129912985718884606521197733944499505515237629015822961505882541164361307532850212214824125867340485798663342618116207519146358631341335756324713809096813041653676763143135566636014072629615144154309710760211502930586528137013440049135982194763430651217268451755284275051664806799912976240441969902389242639733460620373001358142225930552690138586481077247472887194518629070057105519124834620948200828180973702841613090785488194428772518266305209996024920152095828546124024970621595897302128512127893122144012008975863038706632623503147962091527063285066513014526588313528777134748640950717479611384649724846190773094762072349878814681444519521357785784603889190181277720719872286948987584347506326603260528609766445382359261654310753610066806544689792330659984735434404844281780489164186376668405066239135738123959029199124994573711336809210133337898531646469399630776082489507117660348064544828052378378912762629894683363829464925860255022407652074750854415332726352145339822565694414855446903967246559005938461131541558920265642408451352425324306327351152114967318178215476330724412591704956188901548352525543331022651486873928268578726885031854084940782350582875914350340862679961877319475755304527931563419986048010134705267578369580377122572874532301390411155556159641925299684652746549490557395929008778307995169417337830395323227639900279042406611894114600014544142206302885592443355058095809853700984323329308579209089508693070392674174427391278480768029772563298946979148669615132854262120035339422483506819927929292486247435107053578114995456735672191917519951175067215655287498849042362928256284738686214331615940171093382304678048080648817081968183656819362267749917314529184007738035719995283282303481944419629262695753810698641795951653523974587215941640364029599210670451657427910614626956237169891255077003885273457907261106486929361961546098245963369000352704306731418226569130399530293904552144843488417383567179489254353863796895532804729726154142738904063296949212725023793332349147551730056930825427134290856499382903644397729888210510980815447884232192814368743326696911564938893942914455078340668616691239829601626491054398451195911710271444456629215636618385603286020647780928455206828394617500064639128771697341417587154552242105895432336220109979625091994492615835275704215060176703660694160820540079677767748158499563085775544097921919510791260080720067597862318008827182143650560801742583018803425464144963749016339441492511205361292588345767832378904812481580431325170777589501233341015842833099775492510568047087188589062308074572655353285483323577571554062834694184319679620213291178701247431409321189459533721552082782331060422566809070547870129050387055116290304841612467798800857364576861787891692486480775558432502613257081067183954151524884641477147599680474016690705052028793155959911090948002583507403239743939808952730014640704007730048475481829315939349066596346445665861315377806050088834661211832490521434759529196755029156578523929153394894636485133060426097425735170302915391483803886124694008077571523026361786410366291712886924434462563184365443456565688054283618093799489744382488799001665456776741847237385852550578956120297597510637023208310098026279373939827235385168077784234198044397928565141977712577640898581818714153480574541425539791872971170856876166972793148472014352359124462266016883460106100423400981602228584601426655197955644719897944175223599698992013130172677711566242299769339762440929175440471103493244728321554544929510482669788655832763224991997175050618183463785719259492320763600353597600111061436484361827878854343748266883374876299654590730492671438364086969942430176320542670155432023119214245093204023236480658975441810613614856352614852682120532935096836323180979561725440535147561690152988517174635043477315291347031558893370891081303466330516702658275218810264026948884371418465372359672172638161804186790002361813639949678683903285755538140867170338704148365066419944398176906337882127552483847739679337624872897240050813189111464899792921651228091241560797810063509002284814678385252877024560477439962590463004988049574294355638834837181421588067293959408761324473268722308265382966712634833507914778119276836244607203213639657841216239701293889601172270449711987576771049016658356825125142159269373054370540906519939546252726003665794081136844228403871254001638149791997823468046629682832624266941354575333925993387754625530983985743443469237662492131203832044547804663034901549676666143820226199782409605331294824144015573572348479434438939401310188476255724753424171674710983353532391662483912822558789105798429969753119994870351747246741929576764149274738699787766117282189431538338332246854208113262592119147060733042869250286825609007868814051896086010580746154520454665555927975051641783233080731898846407193027865055477442170254201687089004923923257983671347700138242726385525443122117435955338155990389582474623238315003160570284758779487475289420809733239152534932119411200164212941674629868683528177584909266239528429824174857749856501595717958018750891289834712378022301468283810696100437474705527674784417626208329257350422137949079864415214168257126261094381127726538621257070487145204997409130329180377232797980759499115105414051245086402587901009521723743069379306916304611351061703259510954981955973165610200175639658616875993411166400988216315293847426517786493046653722227962401796312945382171591381006745025337041559548492830115908035625920231066906769304533214223718054930508638930527356620311406191171866667822476521267965961614930343877960740326185187539662653471740268372842323213899238748809595396685055577277938405094118991519674960187810079857816493135725981387553584815773268176269724291975914798232974489473436884654284345996263793878474340628671999996029848758119030197262867139918849679162407315964173040020547991185332860895539884295863387060408244878314334544567228419551109190367506576308317249736831780253422668071953712831310299877246814525272793051571158200549304207140573694824102514798167558130795612842059047862624360251826666776981637875536376628048990831471221500684316686779946335158844684605174666589768148588212208056949288977082047828911178377976429866975936717161957853844145066856578984952947833278800345484261294355760431270033370664960085150165975629338223620191765744493353379049568559520716083232026282069486082082448466485997688770776833063973762464877700094743516314884768720653860615502348737329984468767992627088345627380656602290536745727203044233816384563485101067481761035399459676303356852381968224874240451265699630639786011030640206191090933627971818373047071594988615460680218622678260880872055353904811389058216156270726254767174750033940148562781959517468025978076334404119301184469042281384636263444857662336716287972163274996397658249239295796499625239937760271575423561589738956646498594692317035289689693871617561702272319965941056635149080984459231743740788716080090674557092278228918185687624094615872562632337934763090312459272666370451539036824174766865548579592623143369847311192766380269247716810483032635621457163366341987843638074903366623717806684940439650971871144970216909166098246355676043933944263901715464208585424216451923730293849704032542342689343861912488993607496658449829653744791173833546801544421483822313724145511842846813613859617174405228770479840511812297096010772777036807878487976508873258903314088078624006577142804080790137301100508812128816792439023373741711839844195198412881087063909410276784442312732522164068551146904711239940940096995899200033098546534936721125871075090424323278392460873647104224776828844340024317120346357516775325218608050042361087156713841300863600411396965264039855225252003072341381330654695008202244888609424845710343565554992379025834601793994347667840101433104894820208094490272264142080546899161895421505753205463250168649901537807443091177506705059583351551308748570267927107695020413865204260360135421480396404319094368995124801937668362154287327287829548230311103481785543240098453026196266627128830720263500331855392383549183808887498681504023044980302576569033372820775164275672319031320093839209768275019579368256586969194035236399313864938208677880625401871996908347097492193732794368556817198756248417191775731778422797380631057632115697936590167291969013723622394224520127767904012287649951859815307022742654656442695460782154267125078872581983587291086449895868458306725103906109465114366676674062083210445854791900915660177470976770369387160438122470761118038032354261547186192582327160171163665542490871408034810747372530568872092431201277680673886616704612937452080392326576135402097672009243098659109661841490343779891614741898581076962028513672026067706673797671626606677823598642411290766217355629756548855815624199435760947624257971519759032677483345864096300046222494596378101580180513064067472893443447505472386338379805085800682181761776282340667706316649423178251486504192627602363886560670270832635130967598299137079248505603096664958842687700588905648846884503649561529699339463287005624369569029535903821172763945708170899682641991196741126115825746396993083389571987214992910139680513387306938052877106617140786622817583268448235627266086205259637152332893564155192869392787405553259655041080634588719533908595472861450074251781025882933231019570400090006732985787240056484917557496849196072233355536224091853583313603762640309806672818089849504191457798157227942808204363301552949262702653886210039648677888866918607608112344769815781884336723491643923067671182966901440164029740150374998958224951260921757059392918472253085285533053551818241359389580850788828591409355193715429173841812312372139816862755577332544888911479082164124861861629826318751061749985332443007275433289776323039376823297228216757368705191008730415379030840455601333715734599028630973453873771130439952826008599602844229261432442497537433349812628769835344990615089669917483174427306314061436883661684033360967458895444858264297190227611009504484260722570143659633196245710408854767860076869136430010370991801626642513111710937557086334118654583223745976662004197315596367810610411814968449125759836634707094618407758958918636933067154765660834534419937384707876943068528991486006298600123342180715185526624024064927237857260154728330493490712291995421584584979390446125915863468193356278486734885010446458230017499241957461050707771002811262511666779347777427864818192517923530028131248035672020589962680063231734693329708368635438855776750178730561290113546754999885117425577390167724828829281964587998077447196463763087821200410933753892606791354046515527470000453553070566327226745524262671231060797967324713389281319222901925536636939887469638092254530757977449600073553564769007793652764910815534499899319678682979377879590070197415720044240518101345547511081524142337881610556990750654620607388376934202090868947076442766994788825607356885993756558567313588283877828558556161653416584286529872805492749296321235519074496787257006384769471323183979849560305917238581170123151093353007468078062946569498196687989906604081761938424166820588118965135757251606073280644068196225086666476810213186709470465929181813223336103840118010213350693845662365576906849437011205035992282770804737529483953978959402737410249830294488700202319664766559893180912695414316489026982264135334939514225435511961497422236777557733840016176704871905206543455490060914292249833007358224448690855899062585022164269908809567893455719684571382735987762157173323351597338722035822022154516600507522425906773419318866403396957636547088108106259959784064929489600179543794136559032681997317225143018610666500654151543239537922661822593285095921679650804531759278477587234818562754555500978243838398920579631100853072151508029065469828628575908573937586545809672397695902744729625567341923430525417789656745400556960078712080615967191037149987920058573114648234966750013569955356483945350726645052836011451354461621888142123681325386569463047725096935886837143939472859479290723203394428980906640049256657068598210068173155094102705841010334401567324820209983089662703708704309804128698069075185858495786708805252969274715833250863515545226428146228486255357880859897404538025624401444405131232155673274143025963451766016784725309805512178668139598124305613201473822306417099977137063959136503410624183252798966237494378722760495965195661676819172103495880902366247602024773764341649376039850558388087108701829385931570980580114642955223458364205098374806563731220980517497742064560242938762261710563603826368124312968651916024444655097703825520406320968824569756549046468284317475673216970791330455159291826573070327253480350680068246237117161452174274037298579887550262950076889440648677584557558704735981407188167908326914163768961824314093444589714387359349426565943499557580124103780408593980539425454061598886812111700667985685138245948768002597590706275655626546049464997078000170583140233903754254110770242075557557687827665840545831101308590163208289511347191572662441444046995411043290068846068989835966493704318296842274789107397373625086360879344727807767823451008830590711751024986848381026991439654929364529154080108979752537384642970994353048961667751447067655330346756640982117630189518055210029582088779414683754899188696169795825875604953958589637378518790660980254783784976053765108892001015078746862864371640354504303587054854333937984905080653982866242352696386760668685011502553033828756681525001088533914238967807390454838431326427532082660569182195049090186169314017293417167182969213808448302635932391176938917060652792455622015272371339272701650132612618218050724240075256344110276764152540163883535124438348382463432360783349306792416879059294814168531983766052488405474052576871240089193893705636044496062869168452509033347693773254331438440448406852188432371241134616525497881529946637968251493062687528679638753798994968004918319891462880290227344057514939554953984684974772494324787307805523650005427333393434623070905271057881271798192382253955648681138075098411312656615924072929673018151232929520250605605564936194979914386459249261780902555254485660807068688912622240505932521750324810828240677954692872598388549463684805268196708796178166449765067600095628547550250742989612289397493980490886935729773676904371172390337039331601252381240616567671975438909774828214494257281208999141336114597094891643273280098045053698385018658961948879404715433360048665710967564097607878517364321628434606288877413847737222047498717044129706959180058392103432943138618208141731609423984636638544999090996042600604236054543946172957693379978939521968483891280102666666260834001588911523360958767952266439283412178645241088017890065195474198598138651046008920322236469413498305198300287472770588018209067494934981102643435311244946763494260574596208749677753399633022720855692839511260263396239563301129055271070197232668448928827776806985698371048893776757980621482937422435387765223148303463175750673807517852155126224786107086993103123036123990340122394321196211535769020218990864365309098669199992721134618733533101647573288638555211943196709753255774653065765041700611758910323697359272488975231065629930706503959625581784735876504566526158190978301495032632171705097016005199504846769571591769674653522306518344964797471826523014022940331588410427950001768139314139221464346952304768441549330907953248984834622805105169505983957320372603838192451816361926561218362843864442140615325010768950178767294782826251293469035160600392509686758285582932345439555095512317307295640003679361358945851529419097265174686729641754444326048418518597185180891309007585256480689076935346100402005932745004217686101628611958168039903948476996725750683143110665830807853838959732814477834163833159298476097123948771844083756579042412160586248268153483060486609754294519946104987490929534579752878163717173011986985535563547163364820001691454557612203433295903847123100682620497810128309998524245225737369131890547525415829082910145770633770532593879811388713371637099033191012205860686535161149723903601135105749041232815546716887291772606469506440760939723538684321828317702171657972303755107885473654594224240116782789773237483162143036987481801676866176243882406932497422186447448340373818154731193113069718660665506220752919755344929326160205525321208651863507306398960599781796670098301600342553170693259537781450231242419026665050299575414012467903857585152305960674758524236486359750816485440085629528727846361706917684114204597761673077954427115775837406697576715411607111628962465211616701677881403338984901271476288857404930945850073666219157395746008486889869957752485960479377095242306748345836259204375633939775683867322820975956553226888357063548080212779578169976338539188713801586331162658696311108211484847893188637611046003142962987828582997249703798244205755827128053190019870791974490556203956064651057685587408075037428484338364123505994314901548813034223011720738766370791661960180558740296473462031103422432355930085460529329249971731831961121528939840949063013652590962850890079475668262881461843932835138917648019393072848940956675215032597414202571946966874053809657017714777947870324925108300937403983300337032039485042294949815384438592108229204945927457036672548559243135550641214253618111297788303775945061779022054565292140540424282467042600451582809021433799200829708760983124977831765966417644162475944382947084027521962924779217119185571406860718111260372081127730656402495978734449472766150594637987347839155558342613332228459026119285223236778879188994417439258474044422322710160330278247846033686225529643610951844761385276002782032792318972105193283072060126414867297636778793662172094446612759697990735038791379026273477569959760609179446524425982645968746215995439566077434773003384865656079608324728130135074775462842988757196979788299529960660956818342937582466974567051562131998908034048770848472162043688990229707565944083291280896183108544323045377160733486568366996426628528224761319901434203164799968291307371139306229671440906205755043852718515784020194018120931870099837337345221809551266791292388342516446784147353422038185716131793748467711943102698874947473217211566870948081975236395522060505759852551927863896305581759061313456445143787363565156788973780669658930727977674454232599817105534825745486045279542590500578673561621929313661832180189709515078042781066936828234055937251651844889683391968968474643091831498894925018799880548170019626561620069377088070994467580442024611109517633879026004109160934017998219726010366535650312627087625450697452318812132646048064865360641823207296204092634927917707393682729111647768842847608600801637654296840493694974744577765322993241367968056234489682144168573474611592297623102547899577684422136502469683833394484608931881991901489987799706714359314020489299843187404957172188780181091243773026361419726724781071534133603375522741687901382075658506658779088681018865120500562652597226858091414310600414189623682774755637464508416228496523940684128255067938878750518117517204579502307768299463955112595141126745856072015941827360115374330708616838247319554763104042625100693471244158003292782648301761684499214115704870804695241569956960911667966117190674332123755691033976337510765115714186751731068835384969925214597959949155038414041205761597660111692415153442807690101233777282546270791574537001229356870662439515419832928563170334718010553715036386522474381533200312270802779526812005095085819932740302399842229847442762833650049824242682018245426762000772877006044464664807910683655990430520605769399241266634291922489238579946444309507093388782759447161571128027166111441120607057395060587014387127958401396503755001124284352128070293996814234145160184648923024318357480217267169233942747220403812570764074297086254777972777444979712611020404520914198927892534280347992602911015312485001354887065820326792321157073881260043043968975043577889923650345065898764991886204492006099809311590271904472858792857991248141412269608297268766651789729203490904088272933081100481326270795246676929450410878342714605167525392836312948872938876570139477764458240481429772551665678409504081788189285403338818185323429095707681681169297538147037738526640106265317693876634489119487749090776269984751631380219760521259996972394307359187719390083468760464683421376793992746244306115365407515101380975662682758500882910565152793710372867563584037438566200279026305278111330871343871357936583848238063642002828761243760317574706247252124374327308913260962949852800053523753261616840776293135676423815140323250760014876115392577073143390127160812752819768973954624745452634387746981778909273248632184136299867637937998942983324972241779774943723917639274646610884991987719958524671645030259414262316040236326170234934283621571270599337704522091510658216161618394570144700917058884226329949082635506814186648157212323381223948660856090164636014880827276573771192930412818709570056208014553238462458374458340480415059112018839589152481130781232366088419929864634430327879005085443349399846636728700169844116060435921210920041188729472571488646302101912954391619915887525277681393806303848760911621266197401941736722667338402396350377897470930031762151891478738362569471945179746256323974237924583712885099785719366049585074480164882367767073648232362553783043117012814422422937144147210175503460919356061269796793963354783090248131473732326330334063137623227712414260304253788850599969782451396855077389853548718809366430956505307004993814296593392833401708997894433047513300970284640240389313583529415077379374416822275503882616831335583739592768119394801583139067519560269011657726775979815378457780445012612303965440943825448285077431637735693179682119841184268624223339461643874755868051371924478211344343904561383357893400305864032505297910509538816272462214614930217114060585338037825129331633084360488077132311990568867503368631136378061446913411103174330154085552088713833279465274327251925908298992121872605403219624917739036045237430823632645370457478554713416886608763194403687955997561490867709406596116330545619198859327941908968099500217525609787619142657433639925380538164234928917479068970155999134512159585958754721377945638511782302700343009835796698062567525088376311786924792187804202120963359172029549508055232242161366447966432731381712710930780800795417590560515123140391985597419478746486820625102226431354636828536961565761865040137341693005494334294719585754042838554172244161120212556176437728262060665856747940061204143166429557104922364750580966799293601674838474098254745033156359706581605258284462991515848894120852673402831378109136495877646067479605882234485129540572547021703169072435507475253116116836426639599982518487532071772670067971655461360660211592477403520481536456629054353806470458430426184867090551014509724214901330983114429747933264422270483964787538538462635948923827790068729346456981589000494178946755422353526923182262205692837961444655691942182397129477319059147718439127412980815962012387905532774237433313402348543564556455591836941049811201338932519951355979063784276990916665009826160931676331546686457251088296619448688118660073363953531472297957393470117547450946283459568547250573441566049436272127330673651218819073523419797638821433315455949451497643111552410041953095617775530905023018047652114748259451030748525762834190760117397132703826538757663166801858971607456925774919665301434384130339254024649169451958253367295526566026103988298974123928417263169211134765245344326778414729558842955495621420696992928220350209351148946398174656524545070857714064882871810378415174069368539729002868399503896206163070250319076523984649028256940508765985290182179467835619747439603847464216921909936192574176974535663643630688887233058541571266520121486848160015903010036264224699212952714159755358750703491720924620754836356894461872002509808312099187703997741035876067287560551064073721257475374030070944628791531363247817309077991852659173125991456527859312011164697004643164638611477833616918649468635067117159851593410032320887371860515437644996427026168692222073895329993895184252532532589211388684650049410264426905636839810632125289261069943710552006008646166461416202472362221978147693169583264521811949698723386388769927174829545264525076274149488895812313996654323148527676938760968616541116719846407071701511992833155308872788613316781728763894104455029970311100402375847951190140491896111988272467373443798213339653530846473880835966224834797116675368543916078285537819204610422231697625042693679888960126005467590293447258068039688385093054747886104888992687198200188048913380438975983362782221240347134615597552892086972374309516483246569650014122035457440938672157276517680604325941425101767889833511940776490033609563867076808116549878024365963355116371178568529835426657662209738452579737273442609048279694456680691255424582857728139955560094162540843951623726020994349734057114245797193206374329754316975956207032714838282086358554972432027640237476101547286834544395017874497372968695453659951732484222265778552013178002202344161685731329357726884569680902315849228703433618805417228588368810063919473979893298135889263860874984674981795294329058482380327396602736899245078227741228933283902423209325476676045726138729537372235402024687642073872909547948757095454353293212894151669407388069345101929545838272156124556567165539270305698284367058121871506565710708859077223050800641994959166524372333280058248010164856305101605032095769257759829310704443391117892530685649814397642022529791874132073453666415348013235650203375500368965235018492682325593689087885285755860089097821954776630214070496249220291571317131589356239545209766032826114034244472298960603526208246924211519590083364420691444758106869039590215288175687137438894424173098543187050968680833134475788959560488831686552336992949978494080105644527872321299609955262898833833618356227483716464039403840488904530487550268584610829316620867332339555466970723260768174515977063636945437264981905718541398520822434755582043380666513332681450739936618520238736956873217701199196085037755127265115620456914204574952658337156775916993852016916447755061792120510614492277730583615050240629154825594594091616496160398759491711490568451316447327608182789487954464954424858064857690565104646152669026303210793346546324414341858796210264401408260357518146832308141835410223276844963553787744849648437293839877990412600679888491374865139473889860653492907767104850346992123425013442033961217021279792663048909280720739453725205414659897360047809286876662281215315886797532082808254862878628416019559071449072516805634527579223953482444144411024973556032497055463160437375926645801049185971109944548701178470455526846543992718762598273716676063091308365915329408446247292269835438158754572712082788322461747975401036628173445299355270516750702164849105919211840764425956300563962966757564294497970909476892821934332425449228585371739949567007864325235606211244504466983946180307485709806595235096993465716605526535339518858530337306227456997180421471061970255442691537473008997537424806614094906886930885319260039982493122878697842997444517932241007555077307486989973589044695815805714621264180176294102642052169023815443252081425153500560359661875499773481047898352577609698288224924965698206030303410952412163312488651348869439091292025311135998855149565857197056127763581953068452238028726907301021804678433141501972112381427780159332817320539200910867940534425628388139214829445631252530492993802202086054588228579531460880578506569052068061251346960922803661138618472118832101757252590401661758151518970305539721166441186826118225967338952966743798092176241249214664541186764029854540339148769098558021230360060463176069183083289376383026094165284870530085579917325605516406659346581293014435632296030500076966214917310902571095243836018023445044107264452110675880950411481452640092755439838317110921832480525015143076495094111734904293760594061705610631523776024341669826056658787515198523666645305340918913767717738163625091687960091435828709929259633609178391212048528518687340966269256493862835516862980170801652102001322193895093373420433621231954995355588777919858174722751315060297777990643148090815149001695186071876550110621010695668127420358127059599143957174563526966052985922477819657066564886090089906652438673959381916143691159676260952519696545991346752694298223318569904958784409735302565603633884541903132414895947431086151559121316988062931001493117734232635708873980104055070238416716828815836594503537323042580950879164423351703763288282162058332110994561644535280423095481905130122592359379708694083857164368736356673257757882202782979472909166364382435406896739741736780889522730705760432588529064091994361053599360090459919827530275559077848794154150337890548054767190126004667616996880526331930752586392223093048752752895594511751313980509459434739322575463186379909154553981597102659175685277033911615259081349426227873103536641522491363360406220772053386876693703672377486920141122614692782570309338013556362232085794646017171370859414496613182116904911297885869524312114513372418923819978957561576548438031796617237347475704604012293873399885290136691297920423238073400395642085645703102510018858279276871202350192407090627183100127245119463373076893750727103359210475201679514384809951388666320214645793103181815009023167896505685343056417336274408923789663446532169816892205720636068509503970306928020074501265263264852836002139451628465579989899674098273554786445934444858035102062934710448771102226522382069191074086682239081285151873372776650040117914869261432373897191393569709746371486165178806281646563796028423847204259359174468443041506390530157495542573460686673140554977061469089701597358213861721503401527261591258076450215178268813179368344618973055755870119321221345635781373774093698579676243725557669559756579105915590081563337026074136759083943769049093201357232933799280156991447036037932587016129168456866874088936935590974566371835310876648220903863304009632766826967691154493827276518799581470410893314458958914658132519616176810300870101631792243087820245317935633116584303659015682191031653607276283345009776278893693896718421871757661366811818109535416734998502162534950958127537280236828014825200300264454931652225748065913984282390657189208785291291403270471439609382531680148163906919737067559233835813822150981995980225066310782330871378632807177116113980886001407537660763083169724110198343850386399036332106265803038426773881497988212447654455743869789632884247017441539625097444091711003595520065865933056464822717026768370241268009682139875734604616796598808597068094531814010871570522576117814651319544246142540878270259302106258220697833931047777655698677489496550197597085885781932099559750374584084781406957781385084872848659654423497588849347461442389010396337796987313283719099486643453005495854622106632460864037310374515876122656318187392949976944222346066831921403520036450552135362265625007356105931606779690918374519124973428823133263958006893094713719206341721508362990866757577020048582608065206946900012278414864225144098166348915129752053532870047589693414711076244605079560047796909670523310278725363307423254408543484855164374595159740993684381374921679473226707578562140781730353341476567810049079368105033921766384168116585775942178161938099741060282700253124009310552692411231097364920861010235308770628934223124595186583170921905399564187399601489960376950104141725014715233169128900489902293218363720464534420439160568971675771289362229101691788316356935722765203920932718198679905451801735589322471687020206422684983249781429802954771165646255201990678050890066110526384196949460995144484385765023614059032267809045706257683880546284997022593893967956806728609500895156281676380800700017976549098955058200533775972831451447119825585260169354504946483359622771911072743661321258976991227605133495705543604948418841642655435628048700372421201693527307667139222355135640804168543897410003886860077582654804413848018850902332557302335789323274391797651831495066158321886753808952621832754650209949421122678749284436502375408264322072251142353847027592203403312151461895126664446442542330067070733440589064487245544134571646374505024135444822995276341934413167585087583583122892927000680387149541942506533390488886597698007685214524091960880427806536563114597288093490948036292935656923448795425212682984461812481688265481469085776510660439198691886493418486415889348856570680370725047003957882644844545673902149902415744928085673071200724737817405148051217385103141330066576357617788983115566231043770583209087152821291244040555971512597138990779998619102396882337666107191268158574185919425239716650727455073752374956191486912079732177898547461453767206100984955559284454769911302831007389252101222616379446351915573572460265948071868697281573466285167488329249791539332453292344836145510108221911222251249613686788485473140373828231126025516192354781195234263657279661309196650060651440886002384040383110779868677956811927479001892292280726708294881627328223310963351850127399186624867254741235913237430054297280224819877482869482333060396116919560738092828521763083166408366927845609204816756304576501673846110791842323354985098395974883732838678908167222614099083153716267155124022780744473505997066872899717121755595880344007410486607976529806021943180011667208814117849757628084071677573039947357492441049341179758588281814993393771261409015423510257209546717347798654369331322889806635555106939931260197321353126303177950403824784128901422630871513832740216119364171676928720686660271029691635689391324362210846661306660143689815760238702456068321158596236355106800182681302927144640315885369524215962340130836320359719398234703816916098910220920582300593243593885647310273699028841690101369024662644846855135194825886782751743580197226787233035077759832948360294789583058510515320349212575560029742982583066274427265285085561085300852800885941873127242088113778397220283310489714440648806963904750641665106419219797969817761662518472653673516846739737781779431844038326508238540782801157709365570683109112343002318574627305223467535494698161004251460089281872164932609726237830534291732943709078933834135093661419957087843010908513996842719630372739230140122288560064881185721383768075727077861938384299356886734830765161500276376071993114696567265370884891960881566263068213973357638584384242251433200090878802130313548990970750228692993872588377684092505888658822186474789277408700034356345173831454481573546722617876158522665425416497377527571070849917257116330553090995531954334559488810718806638447032485805200231939554154125367058908939904111543759425994354595713953385226394556457921714367866476329172067857812099377401169411944271072279908663104458302624612718857520009846287074217545301745962812938736818756036610262225661414115596949424586344248102681999680488812546187067713858994296878719193760898760690800468194656121927112696934568297783940818269613506119250093227960058026370838316414144078719125503153172598671489760031499754249390027725467786533297660428411008297981200951849136206627160966312423918401958183350335848087676349370189531730310730868033388988250665839878135361479829625211745737689398367079086955073006195501830098595498930051501817982605143510911121237303327350612040721580038757929782528055879717469004874892937346554479201051003130246769688631752728941419976958352367519392455635569218884910097363321144877186779756620387225717397173519376445145316614524079191030855150430230699719504228819959174793703499934507814732566540085780974645731273618992426042702025182345230555859921871525824282657538355167136418147404804312359174348780306093005130311638737365357522828520285576391227528505875179863550431858119598319963870709172191872483023467046154621576956477691585639998042299191498949480786154660434366232584029954120587745912156273984841517422742430458388035797092808758928953893316602273589804230158249021756057447440034989146331588219044205654714790674863023127644194601884123773396859473996803473420302438409141451653828087405653271738794698915056765201801841848732364075647903813680712899600773457844964859036854568770481117035111435564119742791430494549788860905700280639289295338519562756353165083110918727639551363210964117140626648369003641324342487840891077370429525777404395653069643722357140634499564985017841810342534264765989620235434687500064677217772972835222558851741796653695051891598186884289295796532659596861566528422606956072282011367394833670034862659406356629907448187639885022017398713862177109719971628251144340308404878945626598317024496495522797454880075334074136122715061147481119401822781797394075602214151122119480585826125745622625656937648368522685168042510733324488862280946780653964172119043045059404000491142125841420555438116576881379818554183954343608302539931873423966946123076345901379979950909729931083821386545278841498734340751405825909947109928143965037747306279472071276563604264020026802978991272927274835549275285285890537506036929736596451251983296726510372851290455511180764747849834340712921700891415160705693989177923176296168603027971386992685959650249271039134096017956787135962094583900690431775452326631091555432679960136301264564406415405136344757371091737090122909557391279938891958969288060953365449902097334335339749250506040997219288357711548876463661461061878280011683297731234387125843448272589173503647474569978129154974552107225684083401693208965437821531957331646510508644364454559729706764458441406747080188946684211282715917561632358528344971273411687606818271778930546995812479480885373571672792335293661824601557554387418225204346545681961069188447943550438680672869083334346030287069110246680328422237711332354243755926997784579936512132766276242236881100571396457915009905443624667191872263532926195183760798518343945743448615418939804903533662583880261180366254073011148980381297141026172123045411368344374045814281997593028002502058326211409855114265639792577606755545886200746620947317968563415821261869647920014121078616064422414676592284228613921463903748749541680757225033301655958149738799456900840508886297436003979026907540173289520491668485584792241779000668289598674104636362921152701409878944959440577116871733803800796442131536871097212759229850627747885490979948218389260073255398965805801877051979483083281567938195252040836910895827299001124334903315828594852310627635390687532477874935494467526684503037400065084096101416857988007375815526775983108756002687217109500285736126834979171232475750286748504840708477693915628748074287528171443319146663525395925294810996885117856453057194141523694604059817191495584736507253925533819038920130955401219927011348430828172852366474288738269763522809122155335211787507781583960158464854605117659678246403761528148253801950547657470441623969771252497825728945875649727752225519186097640913860023290408472548978604079693648409066118471785563794640673787265602435806920776411601799258676830079711165098675080890189231480112123360166375403070018761713902636611313845040837164669754906523489264790338546508863617722940881345721033723920880104297097120408237653303593474779066949286658222685522520820517879156572822791822992876000252379231083287768536964939688646653289088177417273868779745867212695985315576183581928448781614118408391950857104503502634750758672975295683201286037997932014334087811968541700773686903803886881026005816507246842121726716081207059176897446429337060708423337546279823064313331561994075499500429544625070146779683086853261144353504959851192168944166011829412423752618140226300183050458724240814430354133203803963736111546909416613457507476722473736643754823703333592689367691357895266302293436288992445910208747647799947867543672120547125580179244405297739126888634532420662563352085932482457588631231600818426560374169308288026228199702929325399610436005454157661631107958164721307017982887166726500616930326197103819645388022876860217549966668992618638501929257555113663807573781665189624769891653874810272538381027822928490738244013166712340062237628697492293830529488152648273227249922456800939953617195668069032539700925762396124469581506756663203024105378990454425532898020954625147039800576875426544791971288872791760637717942529176010063884660769332643132057901738340916295137846576087837504342484980051314502538040746129279370952637530547978792905924157442383820197756293952295831040307368955112948418821568251247582489079455864431407794538930531216093336300926545651915731945596102319336620890605850067013543944119486232959018463693709827271785546526777344676738263615583368574600001092353060263787038581084039514587098110823374733893040717505298034006429692192632881408007234710182945294006019137573844625988168139574745485071423814939345119390703047417329279733134942439505824416095729606833594286282835001475132394132702974038340129616032479526612333547856271276160094430751036276325204640467163607589134196109886184672096910820924423465772765380591623678439478145916221332976310207715133961279821376577421567950652309118234823509583904997105230384336224866927303991317924199991043564353618303555398764746796445613291376380737673134428872756648466889289718107323275470693248101085983311409789351029910478390787331260419895681668726333393470192486845344513264146868042009625599915500896987225529018736273302362778079311303630752915676220169493147799087156562014538458186184318392964319676396647392201275084922658959358141805539208979684942061285288633786797484827299130708876869914717221858438520987031645147288741552774203400046134320096627153499295358813342620732835004222600382606366220328848421334902998181563705569048415029717567254572834389524281552789068111372249421285030824804289061894187280890198573654985228278522266681886065061762972632975054706150868946820373326250658937540987913465224929064109144560634220369028093859111474032120411343825569640854530708606980470807758065686674718149162074854868292762278536601628990601226244072147006179040020541585153358366014190493103262337964184786661729922718715029891388419770437047652274101337719688658804928267400089401486564875891311795540939848978201682832602439121691392284571107892390274253063799588966594257487619512519226419411728683831584113063269167763104987985848894117007431134056514980170544879625784278987413719445672725288822733572222859337431388769987438449037766906447601265247791394636289509833864233198201685205151230168419859572488364838429919897442551357291213835726027980488049157494268296969711522694301823183688999452148807004696022027611172579269737106591579978935223881725388359273749835998633493341302581630367984126214135319703758797255381831290140275101087484669137171187301787702022491465333359698641494934015584163924793526381499016881368484729626173024253822862856392185159732514463646798325727652595201235052821265770890259723300162265404536617576794127262010508294483778968132546123866759499863458631019713801831235365435455998880014669594764723812006417567991432047322983626601197654810061492942554707718025580433807309641732654089386967967769398297747922357636932360545179969703816932286693170971123129740911855276177680871567358542931035003042749015428835055073096832384475146954882658368013657360723656630538861418803393030740776797809347441861181947853261027630164393059724085303448735346322779486913364158821527351817203928740362346320247668480394115160760235054973122150865026194630931207555929083656756505776324210661403755325775736774147495975586714632238913096002714999945833885907457386398218747895026492946160854776969478959452141843468157279584096339522954429724158101001732438785533369380644187671916031538281857630391066683932356360487804324047098478033483664716604605774203375562524357821876710975682554179674592719380449330730946997433916705639031479946316896577920091795484851575971996312106033681247132932835186657554822695911900250512570611418355078355345667784272280673144146102438536678023132123081163276428738880126111689396954899220480575598502557733054955889226356312090756847966100566199248194163702420170971711996140325195059978145687963268293724272382870294693973104712525745254786618111544261880430593814085630248658559480592451021856234185143396649485252896454474854611835272338923319553929240333665284675364553910965161346014564131773108904983523258269834344812496287330215440656622453251409451620408688289276033379434496991612052765331611723488949893507884323293548070154001829557525618296500880772434095251346490819175411298265724661297212344506426367884196367753189228817477015893117100706699481953955284674074375120344846425145032136517588867045505074015909113497739164891828077874109263765870045604753583061655488151169848969737885289681706248868232807065950602416043488884556591388036603177491752588189065119734057609483516076187971411800922798089727122991260655375212779794292797680843378782464628843107069449005220777709458461655434842891111971362673018709185642138964030101091474880971494220659923832363615556495995335228192952840599272264096486204757312310923968170467301681644343512949900909758230825676012689730424734562006759428462826600394430649899378331509300234174187317607788521434545268053448888277570619854942901863987243953993420119438043964621123629281643824994042198348060758694758518107595272038544357364279403522885686695263254718536485076392928099945502982580565412492446824078541884809958141043854898541292622120826135069151266388805021456841950466881683043492739877686852052160227631488567531104853099445222310446543870477047244099246212213624127760026255903750077082203801681795760798083776291331178678906877720203957868669122426876496458394441644523748918441743985161241855035612840513785935221623507245778101539359774521121246505069290896256108726971515830653021921886598132088187608149781313287207857342863689492299204203469629365010284892362803220794291819260067619659071399580036212548585069369413954802287247000824276496363205061838618184689693399927850444670371672538233375794129398361460701165201247282328026454421314245541083194193880072463556604528269624304905492534541566695372418342989500496819040515630858802990365636677663441288894063721137609930931637268737303673179487509982285201368477851576972977187972085072520270709226619776265332476152550332127554625943597816951847138319705660959348480204986913784810601691358259131458965156239005486801848578527233260252780923537628817022490054440280490329383569674013338290423737807397639183468374021593436746612016874039529232883227341009539246272971497366993559007956428818256517876783135591588033524071422047109586784967610315765408211272341736948746618203974227666398749177994960783865047753151883132357331488290138923069598184255652669193797752848881152454281767881889613144013957003680412514112687944535373475910665242974232483562432806551928491567459439638063165659527791421604708426833174210990385131868616898079470441085873293359152223310795968603643096946898830340243473979175471983380398488585765495111095236331855982836399238578403953614606193359113056388994266383190646165669679683528913292737779740574297431184845351472774347410319361324725334130679451657775448738719973998516087958642138958172411502627579530004655259049048154828286342725412610207942368492558471752899966372947988271069234602622390911485059469216534103400982509184703052976440948875179939346579413298223998119792987640819839648329457040581662634593449067300766047457673572147900818228525128527242010661011302575698006083253224921094267124727377154071231239973213439593847779812068448025363108371798810765498352781642926199083946995314469157018096626892403697301224711148607131064631356089655156994957687422464151286908725414722531254078660034896802330878946303079658694362972644406202096449053757699135709454446623365327721842928440876721549387965989238051535655615184413200231939398226336719303927397964415605358467082185198137253662415830694266206417069475155684300885179889384823615435845776838105016349187757334346339113867752800402390848543738039245450614301360772412923283857378055138158716855652304656615018291963307492848570449757980635663653600417103415044942021273717661324318995615320482291430190971540353024684868026270327067752157314198182322628951967536800844158222067521892674341497739163151181943579263480778061745089861155826835038104125421995941248668420313326201807519469785523276030313933655320780694018749131738395077936246349528633469582512890202384758537038999103475190595027380049915678429269306254115400933747090611623769870539041561678047430629506921359129747330919691072908937571867545183460456351132030278854657004008354209359902552581974926596277237529369927394893053760990743782275394234566079216717599468871034798294673018073818303763967518084107370120340377471604844405831812620157307588352977394801803370896022310629005677831301590245010096753887917388612548836384889536108781915743893738021820200497849396060709352234317528390323052514579717201313139719745268248208516688766576944496952584977782237391918596848590827811095174122471297480104886680363660060158954541458831419942535220782998521303619435760202443352548940367256203703109338205314294729893072571697481755652280306185070819110504347005834569477666944808304818261156754977054184296317807543787912995902309472787056642419609337310277516409629252962833421946145669075318241386982544619105522942475111593215588497634825645701204600570442833658546352752394154119083426755738232673112026196748877933664578180534941845960501566589597059972914428630323188942468958661751414415698569155458240671347934489709275506541329060139102672869957821505257831089244488492189635934499748070993188789832652450239344275615444845041419328171382428933170750956592938757386322257356404423332447653183082482260551589245854195505946743501088723601224739288938766042493561881025787580464899926051249248527822741859981616655007825652817111855462361309320195514459324188385185407199418853306150343423853766179019997032482593098884455405641937482557840960788136798561831535316176859933090833064177363831110256162250870649354488126748226716529556561737341250273303965724820911850769461802986405758541861972891716523259338591561096275721398328303724697395017602150865051580475973039833838463893892785780633283721615308734766205060066033229022728658466578932312797236785750910316949328288035928947098340857045931170643806489606517150393936550061387337818774582600292187679536548892768665430646047972073216948507057735688964800416452940492186866373449467380232745720491214871104685773771525292390465093740435358336684695391259782136690866516772675605321956979777757290524329819133489655210033446317736407914804643040526658911086239595056647320820756533218753184334818938995235409176571350100893573786297374201032833550120720069031291542626044960945401183715631833228088925369883088953670245082215634258822221403759027930349206367300209463357389261148474707659730966701761332498917009363536522146811503536555999347437418526230455623633639827232738858386455258446633734052608480472961354104467310931499289993583632088645639946146443840185054769969847857778213652019044362924011069334945771515942932367144795631013651034124157314688253885600847698130612258743005701428586843503433524376695240248769350551118691477395971629689996478681293422186706807765072022452399872520327262622675185745368591878307990704099420231381791555581020790797836874117734210011361782400973487674246138410074857835233190121664927446372022963326425627156912051352730345865286132456803585293254973517774929816670419221415124351534596304169674381098471415793894899787513385852391599489365548157682799817742787841813122827859537412457631371748731015255205946663986956343809093718558649127803203031282182765066975811017657089343667966368133399834687884030390913457655291661125534332663664132862336352686778991465121025327316011434096995133751850255352337429036562086898516853073160859512874202747147306749429671449573653763503995419047486734625390467420497394583366225450039915967444952737929155576979153434089248305052123176644673846923819422761949883140086811020675688460931753990193408957664592733386631891270871851155125253555206859332415438759165424914763505787789781730192512330231441015138852850264295981593034214865544307159488544703653251815461393971997405286465881031318968810521301989594987045837991344186971469977445805340032391128977172657835473045540993323876496436915700840578180842137612588390425246523748743554550528031839098609267895430956550856919664971704545297731377383821847532232315637379844314462263674557218782388956622077969402235940783032740737619617192724535464669012344835640633931073761704956558905554276379390954615599303483393058048406190368422612588560819328710491317701587328843266090189521577350181351388962919562327951091225120857294428663050834855368704163618963888246685120995707203671944789488544672441599898162258975222446939386851908768637035798422937487018617655462128758396170869380817874636530731470642335682143344532423133228752691687993358225370519253653622913264879624770108165047234413574814357257290645908539299493668209366882125921046519565472294267658044781958329731616109378503043322865392268404057778323962262217351823189708886105814862975640204142839347007291235750890714289837012826922606221399968502608790273344675366625320258075016543560486962293336556109307661758751600863965717956486606642948719845080672142796516978152726015764489601123489620132774070258469532130654886305566582237071397281857252483953090649738997062842085370637686679707599531305515112279450581205896608178821527095823060037556897697962912139167318903921847243309129151807283622105461283271336999487201332901142645585879655475937603988063892644392054647727391342899986400475068589181426279607473301584507966723773161608955091473930040405776765189648309962454851668269922244204467697347090103483744818112288529494342988246713468807553505738487221004535467238510234345036589757915643537552626212548466922561490644791928076997450811972482511135072199247310739759251496964804437617913557837429078600278577311993975867342239172744699410989755471010210763601330571003500693244385985092134939025387553233593005271101795147476901600450624813427492074989263042878776640647484850523342136171099987257622052802254368237598710162499674111206651297738243850164747970089959807619784198369793911052515307892900807784063385029510682136620025751251248933419450017712772046830805820146014276893662434772961684448213826215323868040373594211730169305064795165645707222630953536565192572890872915930425878518849748044821893432612371622761856539391580951720974075735668126368018153876956732834670428479006103141715193986743167828978962593738669061636948188130283573602142493199880603086919242584914429741798224025234603096671172487248316818115552556366691240340461682655227868651409562564905968278038234312329473722596650137779757724470181584038346611150405857219835682049256680802171001058237830892057863452618231441945623928542169007242555471770500303237280871292586351847095644097208713710227856160207998660206614282517545832972520572675723720056649631057408281740906573595308859276439505136167100817506128505251312059066855910771590223844548847821530920829393259886089828527105438790949433789315732238828598462736513364129690084398894689850535556919480629899748701816849952670114856845743829877311559996356729654979019462078644170702299801566224329939687915083639741637434651009995931793822178087158589185889480721357954257153267193680867565339756837809458145106666152942172520863836716928082128722438527356614973651925820586704146497913739130154607639234036780539897386923576204854828600196051269462500030779815534417770777728799237404277253982636981220018932036466319064889235505950396889662916282373828969733173941873897994841787481856780103864179187935921289246304392627873857795622073208654037456055408761531819137686760950352686010928698772980540402061545139169564277909083547329007651237481245958967531472689548908070224955847252247127341849618787541457483670853833632751851060883269374028236995680067055677228130878926122215941666968279573959223884488454840156462383819712026085338841822526467222909442286984449501198571489163854792024189559319083893446407748574211985341786549213117470160028107876058524104769940771291032244079105563628547926691838537908585872728200284539182087288910736632076949224380549286137722934594387391286399756340405685322198941612865719737780557146831722712325372075443823768928653971634472445885503758134272326522548286803819736482413593694598517196520046987438494498896187542920494098235625965680514687752147342154542731320899077374872265298243143084591425548180988756684342606117940629330875918758517329776813784130641599063717328095057212431997671825184261858987036408693766034640325823791099044992822423212398957997247350755331467293003825178685557143416543559756769042650684546617091183316490960227334560967257116630346081493443866110570276423418426438662917442026924780356480386208427048841435912506493614693513275332748213971498883348998968329250414281510624541104899594275446730128962007606569628365443842410533899779167087069044333141026176199530345239878166732050763282669361768946406567644778902139773605891545824812389917395379748468918800195770171913149752834415511190293567821797822794566900433522270518079770455743363008878966241955802271543817856416601662771164969220288047145963712647817023873953559531138591252182271062301118274252585226148716528698500513251767666154708776302996776098232126567414342888352555935693919339200710165239171386897000221861280050655359091732870031405865779326835538279357599469806387462149462656020132777870300211571429056025366728003458414261007695363345450146535171550238986056123139423688462313069696764437165588452918499825427846468401560030208083887354248291216819807128678879672684881737023083455412258683367108710701809519140961480849278772109464595186872507000679710592058293462695489788524500054431668064958402706046771990914119463641085390107551656743049351959639728318876253655644214439139077225786338699623182566237849064796478048862955940743584071705677131533086228256833683492230055781959804807844471541760800425056446471211538464475204628279648100372218573905151681269392472357946001686160148676035498038383695763010113883761671709035713752605247717845981883477318056844871450784466259462122586021898645282802566723352408280455711442784249576916835831527711227128957714751977214715521265689077457104390369495565306715536612917984807035108037635870998277822060607382151282492837861786127303701860607129581126832397143129572855804176796869601888730125231957282416666180122542588229918097253918330007200229421212595159847617448838105050843938002378872691223970368847017605942455121780114370068535207569717562245875340601052737017738697428348846331228970702035677272793101060134551291777794957040226144547865418511123757976584804089646156107551568844476242285963007343562612294998630175553273699362468994717129999512056607489463676483112957312092620744608667656049088460969224972236249923559016702748303884668173248408663044427531705978640493720123553910259888647972922710400091057274153999331486879785963453578195468178772166363944165499548226817026142625138910351563673083140241820214999641243102550277286835106315037037274883827419431292165110845837643681143382817045095083391796810315903647198292512154526585213465474843135621566926738510449151783043149724601974496258775652586000825826049735814412640105945346238624822092098825786247375675216743925308661694937935906727912198647870872874465726769356453131276992859561104043149442033309815909416510949646313794591931419636437507283868625100217400865117207451025294768529772691733676059143642068796416135299276418578450273236785276664033215801202018904211312487403315278223707924631287288356634950949467661855448236913541324191292381322169065127289953490214016109565636043711026596534193475472548935349259491108499071798667181227523888298380199303031011943293952708374523900779863828395646968840703682268378311639060527909534109510141674298020972423013862916337227614454897372643519652424133432039411921032332338273167875066265544161544853562365797642847980378478472391218410278849295801579355928997655003578575095565021898106300995388691737360578227490476075433440980439636654961346417796361526128352516053850878729375963624240535557838765417438469076400768400840740375846639745529778987769703935824968892212469634513327403647973623742857518390184206514382081662786969237861450290511142373847836446800249521861653895025412668305947006249133030423587635907544734492744440212936432201263673407739337380955450404874356940901783537623482283662279564239093263056040436098836424328841628782069077202832228065435600704158202276913162423598616890266722442347300439014456111429853465990755445001634760428598741769945777336460097458237795056789842829942893167007530066029330787192073320098842688631008741256374065804559529282962061496746200013422326743399018380832375362461627746632369307683026469152169342285312571720354142813808644541757547106283785146589761889653708048817681050158079449002950474495872068036182660104082757634125552611386230699699538907068255540163835095333105432887249840727981769569981153853861667426416718906911945054409986548520210742607978860558637207642566651799913153201885773259847255765230235769783862663310974155017757952640102808030733161441124939427161851455882021271632444780784489287375809675722614772146561032472450107142101613447100199677534712174763382106693949128658402853575860696079532436196378818550422817458004954120581217766513333588606494220357319352766513559386971179050834997150779302237214480564320492819251536282720206013297045096205879016308839931753559993299065051798563384987140926494912196173374314382790275823557865830138727613602007058747199888680235966892303466446900329153523695378312541945966661103802367105752676014793578251879322406640827167102276597758852297616366245197179560544222202060086134259058047102462341626918467003233850266907400144273098678151260791443854820278760847423433688895099996291906615475953871374619995608812068266222361880264846687167205349895631965543842105342967016836674600999295474989139999786061144595849771273499448088263862928008770115768626389054689110802962876177138195708479223617054074468706690409477340469466827687686368005061464305300219482335817891066034417135226526745466401136256823375934822280250242289938764883310235661932283864809049051881625615888864220080562450007978694433215890793428758751395573465569694253999227744244021761213804960702984420032780660650030178309955392427592560708842628139272311697905281072154445238125697568240074487971466374909079277323918889516139828492217633161342034162525919829776844975248587183259866604198687250893288056434090695206897191968098456638033564612468572774824132318010793237592635051394183480448892964285217117526815724922445838086598105345215347820524086398762870335290156130927625136361960039184573339470202281748263355744656690653987877452014273183033066446820842358262674585552197143076636350840158442175406204637973839721430338526720552126669652625513389559316422048094166040422201818176935536895437318497445072008874231048580516077924226027341559846284271928375571899622343364970303545130407953983105071463744628467914711271576644481737111619684303325440635031866250783662001691542327617239272130808766028275301201840916991720304309769853856120109765317174118980501595396755929210046128354406561177717658518504200658044817094810799998025378786494038384528679158866442358861968793991981097834935570506807224122514048823005113573516480220473486568363670092219991790506440900552579201146119738711849568586259335403987752214882525561313408880564537529141138021729077278799632459903922072378311677913796164366427121666786312444062988163880167433040873670037953914673035957584718966080462404628559559914014161310817601881610648278779093372928055602863998003472595560301543701414761407787201791937619541914324322079788644734652067572746675460364868811672258696012776104979164036564950499800548478073654596881112337268133596194774494079817434493375118767387733122903130722910505786716206714059427108051938571863409210043206498503807310276380140219196913675235167794754381024475874298119186280237363201041409070994021227395972474085660956339629779741736974951267447945251073175976253653890523593127089003342306036208484372567470318423887750672663252787606042808632283852186888558722810735186954638597739888798752513928503348447174272433953179332904017552700069953085934052585523153768761552377275544810821718714375550621905046521628214700220679914259945503703848292456137841564906885371240361903816815062744688103671724982359547090944795438922658280671810636744234997912865468151968585026993398371556117201471315679180438813582395683101596079985924417081969191851692503401147051889895604385448091836987069749038125637210321476335041933898372282318874027603186552028569834887532692876054947640446794967300922866587378065161926643306328564059132387117071052409902811474692455466512771641896229738742003321975579780497543061366975907104244648166616962637478116810798197195748505653497894436691314489715142924187553702194544648565564690733910805632711099009925428466538039720247573891145144137401160843084825546078966855506971480211655183453096369373273121217466474425257997743436643698555472593208824630117166547523500813195697231213463467821900858628510512147234596711794110805605473012277901770606372750129660241028939621475738634833568840652624884599050177625692124639286875549450945299049620840153721467024305057728900841488862503737614993146419187639913716161029309278081202619075053382640198620616346581134987570972752284292897926824681049474598757150068376324671192374183932094435334445696482099847210269762026271084219586235361198387172352440683856425985196586478239536878939877100224481625440481653843737181226028155490364477747156321322043202330321679056502128144733680649287648544708682622055779680453234090524298179573624153541586337489490694274393110257310612717997836495197854145833093932442795165908245612917129640898114388647499175207057282048497509127821582469090770666926329663762963424319244141706305709165203260729247123110768733796537300413151049457896634461145951619446532739593555717101711605941224446306712436956236071693997459588923340933020677203197650091873315354483719667288442570210587269780185614931482743808146141400491891163004697205715829002599357656974365994874788080240720617126705988078662139101670556323938334529711066749531624490685073407310347442968312840789753264965108426122672317514366696264883312828035064215362682600113725587144679688007043886732343155068168757796567652985617053590880022886314075342935574198152368344031937734170509720870791116316275421884505806672604623871829890486389566150038025920969506991170850230524097781233334793644401909644176656326945992647460407737613413485763710010229816645569788663209156846575958426887683837221675151952227716037841316500019594024949358680431162507422997834307412531937640547455105755597696587189335306790781934838248632002728641679446662380175190406081868809251162707182045905991691315354521492388583313160216401063984925376946017068570748427249373480907148770545109694842221089963313499670701361808511133249216765874938913987051400729604055297831902584320335289384976080284547927413157253337463549884215385963960729398350444956023051314768472799728414008261573399672233444883635933712096946035580057921881642997819320373620181795900336766462008025909813131555508863000340522689731357658731660781080991159731419450974891393301345260754549682703536541583711995581241487784112856836233524541014294399884792855569369661921622235630719062769562453034378382835795462620353650961692749202977115101853735640835206041029341338111078714675751255261634961446247293400511553597891611501597511119087546242524348042439085708992379892340724039900335989585521352776310005725584377251151416858482458567050701078553990528416721626152928748991718776537582767547022921250431463052414265627597343940447348570160424395158270910088537022245932650678413477320191691236405223554400572751148738091614065054859830892575225682877329289186694014340699348512363970383734531365059025537228429143401124287394688796820384397238706252060171375957044096565280345351056899933637138351261515424692200851988430834798103276471033503433176212391243125291622586034136322421159177391318148722365281420540645387533814912843839570132056028885061759217957127690039905770116890488811684575440245561336331334580683560932329095144446988346319287417037546327277568645713365408634150576478753362987383958165046840985866824820840759824305445901518398648329551026097588985776991129551180145571280387316611990330466179722198159932438868901212980338106642633221523559118469100268418967584582294900173088890543590031197837209180691057801508157971570479189695019391971681564957988690559999028811546769499839896360798262294360274259069145639694334385384520431690652038331827932874142659873081345203669403469213520689472051628526004375285020273376547178891932744906013023655595961001703915815550016036894917044473955367121837338220892588517036927624156465343195239381871547192823356002172290128819934541279423200194243759970520172509200899543711022346679051657473464415694799542794982571474551459711302537769077205610264655487663802840729705635304432670375562141860340813675699948173932845816394187658955438778470530584714260178966343119788006973845223681914566556228190788902636129770023270630154902252763382063971891184611572663307781157565233171436872504913853614435797122751462808365172182690022367663200498085169577804246477443447225905230805769612486494634845467235799474977728107045038552765159140382338121090478449595497639325523986670485256426748116689794314859416283253029121105570553155046938222591672087600807232605025879770999864977996826179015826247504416199372379454793023929379395274996900802551401406860843949709641416350443213544274239028648196115487765259371931426712986198229103233643760511491776397714230235347429642724769016211872933008043671022832705544297209547609110035410826817959435297822513330615292813556617345682330661202560030277014245322515008156136003303720953777214211460185734469859933368983571394335261343221541100604176536626363907257881084294752917505611089546830097951780150956378977509456441664866718539985296309760848224958784530787239804470929795594845963988251864112299878618974390655646030411701666117646125541114995149880574758257658867447887908262653341856424488711295484756216855976731171021174584147904541804988067679317783607676345315952682801646086980564112391451765452708097616351298811650302794810871067985701038233493173271636470341012968223525823881503230520860205248043864800148112653451220950844488540849472267548056833317631228994857134156889560821475493504577446154143914803691150908629299850370016077055014084460781079794509363331360503275339813384191301978969626256912229706493504280535914983274358080969659090508018767816309119489141440227496801998152043760231026043643792218713656607529477546112190793524511447905212518988211089484082888210135785059470127602787725419862848321486858707748751290250384621253194720164005936583981124925737084976525220703213417653431783151482571836893622548858245760490448543468551212540354772191168712129758616691081805688768762096058561366707500471289402417688205288706933180070475033146467349121230505196031468335955719531593471599328292346081165005194293550902604325806263391903405384106643344439843087027704454668208524553808294242253985264405422443721021535993968760840334422664749850186874976445033264330795231855632360005640026318726331689003041325014586723124365064347956447077679208526677457485219076104070716306369507777901225540365168713996516910347057611251634263546393949511939116011148398136469054256123608584723790845981227457846452069135345290048692627680105331271574976406228065950961899298226365748192406202067084536458739821823586918264449538365462870217872034672701650026600902974209346704258883537411124799682885387889894998042439776438741239739533614664637277368390168279957654458021285477532353472346795859265997645691205283852236828236599685685130886536013796592757590833685484329525127343220809728676190548043542935991268991591767715027363334421882939761899089324084942727792304719990376839272558438647165501275366188851109396181434477003620110785083945322445940350552641239244835183099701879846085733660988477242255549007134626037178219820227709819340983796375464810510587962033688103362553466169422077885716863419452664603558695987776174720683585049489818794313912978994560497953663229213785013765520413021244513031230885126912887145231371336832723244908786606104232239923888982245635935589351577848240705996634464368728502171287397197809330862346834638382572692533135468013132632082701407832095527167219514371444176687135542750651545523511887394727315517006711966906146579619539208590792173690600168548759656396323634005620797748375020856583432516476064257007491603845938062119769706128685906345717038963660742957506858688286170823101220175835176509122022951519070511568373331064408423188029348660350839252762349935724242027858953171812219790786470460760815665038233547512592902083456783493909242325572956173543937794928405503917906303676144336839590940483592270303899537043739985349165789842769598570903715733579685826045358179836342270241753761190355035950925572630227244846595862728408976960201263566922199653753527627791044231118059452787317005707421786169417385736567678083935209569728826232156594297384629392658065582454187583772604795129873317903445468161353501333347790021796203770449169957973963322725978005868272763229951186235899360978179649941791095795531342435343469349206622813817194153999493332605614321932550806463553538334442187187919311318611792115548434940555336348003838661776305297414872236376427510895255177466097781126780600805889835369918000273919386394822000029273557347389723897304232058889651077016841318430240334803107189881660916643253269277062545803375568986138312668771190360202284110900995483769591112029323265676453684381554625840526919187538332527572599596261834243351644305848620618562166798752603568416279764550155343239961690946420629855456930067869885766113461929685597443073928025734078424478998195991199938299774674706056398754723347960891801651641966720681593224260357545986454495072287937353654948671337936249066783792822875816249253020577686695164057298195614673455159048141563349252575226600387669055804242179549733114428432233137021525995075124158730661694795758298967336379473573750438673025956368811636591407605092534076362962110714033618249950330441397363250743947801035357157044683446260763122579566475189202866653628310667355755429868105096849030182620625016940099456332331882393755057763610538547733432487084390604540911131101697575778571639982859924041064804742784066817790259963684494423380346037989301763277252906441597729166523937466870846597388238491882062467459357338169165733842996751361178467458263864688921157277490981466488811640933021286721296370809770255297667030788170902851457136627021418302442425940961993686665111645022463932954050080317045443776819094315104612004899950404764969669697377776769898892103139387928506886549170327977570266502921911421715584718409440639789834619063080835145827767028929108144368761144243071872488677629977949227930870679233833427169752961063317248938254776023726220647368919049899802829734113122930962126032054268651848340281502629469552478213386850826323753496150865365908803099149219966313289739714122690008031521431570513080782486373962166926013648607933274747241860944544023637044309722456846517931302042311757951239760662646288260304180119654258052551290944067045132752873668353465868177116184947354785233914957047096965132875213197956442123963928636308952802958054447791729271321658634975637964523583036100769523774891608294632297617784006732445729580918369169650344613012926806320907488391866388340234788701130762253743828948338224386921524217247162463313872480387573367708652515057625089256062341935910846696281493067651078738794790426411036392938434217343071258481787512238392919328939881519802539913698819230786841232221728282764868367345106564428493454317355043893874201584429650024845747119881005171554282643395097514848296143641386517229041181208674777943152381448895877562424209187603358012676089300412385735612109523458439763446181211080796135562363037471712949252642719689153382018480580048545448397183220190882618707870168046960838030763628375325719792052273860884449915390103027870630357804610696010135155329993584247990694446218020006014808152665285889703838459194942794768353364393214529480689578710861928116370589900811097190833851689546381127359542185225432164765505613100911921788101895670120725845947031118417734695533719550615954130537346357594270613950724538092377666793599302492043504183602825940758906921309807017995783143219174626851289169264803850640956176178759309791888288446874999028990851215030252841621386789999173420828111158478532939198808946848746898689417228754696255376143754218478286045427733372894628653648273638735146318530150642776407454275080637463188887635385077272520479824888938192664972229293739730217847065499341775365960077751244029795679100805228063845530846629278594611567888102344312824912913700703641366333696829779925171643241514042190650415755691332148086715714668650381849743346677723568154143625745217123643428758293078972749483165367567191149710224588400305142061954101073562824073124208560248734505124709558282499011301570735393151739273127287461229358663404643683667835557428440231543648591315815652705614685138293957644732137117010118267648931504545574956107890022553329448323968898508212270649737917536959151028888830420616729104657796930336765438333567545925414961678918983795021043247027063030152572288758705421218649053530387788733721338076293011771575982127992285499425311496125505960579440832415243758848028543522711240564128799005524929273831683200181067507276503565657900691436602566930174435060639398908484803436991778788550949866983706224889005486128555125694474543886518872170674614948081054316102802269698160077214784647529886636949868647939081563559479819877701376135666842633975024135045128079766276551026570164561985032096414698203644775796551876576942913487235045205805020925675074446716095064012462728311701303725575197575210505338185532708105284077778111963832518651010719854342234803357169339428621243523458911249301214157947955152221561764747359604856301896625296204749920245814081456937671856551143990308031403072896737599703680077248562831278777605205675726101808096318444513162537941551266826628080511214577410348846386103892876593968407285423478809783141295484544533360392083788598136188038708281216524489232725211547987792751925348119569062014585946868400621982100487169630187340016282077678229653910075687944842422545562144044462669944007049276226087606969896505276567928831931047140454419171887834157606372267253888747198886030090517481708365535509817199119904846814833239435568160247157877092093415779550653796413593853073086079975949158421096191398864875679719241584375503878046728124639706902696591772856114838037271440707680306189439647598068789006477085991073440730626065123350276035806870631624971518461303257879391848580060269482311810411360773417401396321807958431585660411482304818318487747206660814713987894953637977781229553031907131222152555623218507287277451233380795258612163954900571155266144650834158304055663505199425326846154557064155847472862542421516615552364761705635438846667420395242344307063619366849283390799504024156917163560269187144813874430628482876844114412315495584083019210828680674330535270371768879964385943886616044690302351135340718041630828756157206545882015270394742179112843818508633356592785444230249219380645017918013416475517837748189187956931592811973517850806003281467403166997064471798515515826564171013634152439956873094987501716916676054606055501198818588597491691206412217558197631163409542474789291014714799850043460940440098743511729605782230247301418587383164016943851300392942420497240759580197685727761249872382097706982802342747552241018640042956618999177979071940460743866448690002983265537949173640235809239022476894397957377565307727126317345318715171574843470882610895282115212450036595404013686787249326138915617296935966612121419368062466023323027612813571869845633384445018765552280801389449432822513577539464159960681651727813073692697821902738812630784570397103141337674165742228744076525589088169608436842409262565981308064603294561591824900396152223415847664356384034997618698092664749139861042772401855489508856477466038326052152200373301367834663925505241410854403321908022824852460378740524331218009753233831386641650198702029095028720357133914772029232657933324379282556399213346291315936013138938457919795236796720523490742077981393815241995766475373272808255020191779117263488247864863546696676128786278973356712196678199093266668559758834615652053262101033335830964121589023900395591008705422132097071937318003068355218219132321960104521335735082585288203798349936147216636013810601480519973797315714852687530123450113383125369570477165151026027657421605337192077024339270111655772388504473060486907899166164832167645944157806984628478494058037146441680108238691760571914025988537988601837929106318691270099171117827693483197384854364108244053061905419521751352053181971193217021983122179462964882341575501429209651854281365661899875122688809227554780841035572980681801474102382246357287890144470249653914346890464296164525982051176843392000353894143733459635889557421812339156593380670032796976667854064903166909103811888205159478378507168474673432052864207355315432991330100506817912891752940556629137886125841584430298324802954978894613426507882958266094837172544580038376091549003596673364738057332224416091299276407932696407026252779879565841717024918365526189313409302060874871238566784531487725066296461960278998066775814385315556970146138844312529568409120194493474339810232790347452348529200890949854130154778654577160206034218877342117558219787830089875382606611070749732569063922789263923148940177640942159384994359341221121507806954886849455319942453205920478440105469088350223881436597319057532335135980035881590772932385680829558241566416893586674223796831702975935846859580246885916643983624041051542852598225633107406726598821101058295092657744975554857466983429452278684427583014524898090357320567682962262341603725970603449222330951479205088371209668734692170299476819466225903880193622772087114002717164686864508976626011513468175720464703960707601871307521198388494176874554471019353424194844828332661936790903843723289481464154356490284047517723092834455522975487878100399716924203291493792337896209402117863014088941755066921309923413013899543020290860737237287751395479060805475128489810874872652943923370269222905382859986987746057943103166682379280086580162001213352643254063515802680826087108430638072647851774376833761883212365132771835733707062941099014355161885543649910317960413591948173648751513893254397672899696143256437705855081751864949744266028599483105027345664359722635451188184054802732528821271818190909641669989442503586489861693670080385531094501952550267153700024559279044027129627696126148330444813218205424579031397700075904412648217680053752999950766267768611079680689849922631351637792821776016595539178530646226617145542294893807734938906400896365039406256923237252486327354325951465688892516236347442414881441811386854901868883433303191538744376055764758203932624029783721846774846727355831769709492310655294316176498334478020556161220903798233027144322366488201920534991728944364438375481099507100247560897441743896468739417789526202518567543157169136694220404777797975903533621052783371227504951234071526528159345070035178986169594868963693887696762286732393663761664311233144787622364334027559454518550507640178092329641412657869354360593250870818459605076190200197194547699692340854352864114033495246987985490781636756508693951467400431221054056865241860749637941924952475518474496093103062837269106326063925891342164424210311246907111502011406752920319930208017715125389689455387192532765296181520526263258542984243982614286085399593211344486566755360431480597424634867331641687953553352582875557336659278292821016469727375744414397502139899354964105011172318361209447048996369548700196269446723946974986203027596834554525579909825387256602231124913529626357247265795269740311402924430876187702465905415146450511358746131738730112677541183726553750897625230639996418510439362786395885731653583601221808102687407708332516464497477465927124359723339781424779573523805972479646489310323351149628021273581879906996528731940069917286532112665409618117882466291998629906480749904399099778213400008322882692651842490487849409289482527931782229104347182515856492528390588077108900496650481746873371440353850766150583883781785917342099655125502171033222377274261719716276402661251052342961317982573364111450273621412085302685164110420461033805127930702271758597913440611589690972825069639951752633488551209136610131823527771716369400183458436834388080475713741632347056643040765938838644440514582929906524026415220580047959263231967587286577992823982277807720230345042733874609616531783256056194164360714163843699955590924167850564437552611607943625055136907990712774240845579497169239782718533520612045181397643823548548780631109138900935506733503711630421046425468895319327824124845789476405015117206099284839176532246228876681448926555230706395490887529654937308814043271356557461159386018923259217472213656857661389633045339217266016937461188999762140944194601951547267203968346559181315245864204803583236654372390815010474419300596574915807587674283358132644069298696165279546573193828314944433437336903437671966259109841027225718512747739921796870526890393427836912854406535896328485408155910937568172362235873895068534487117690064820471793111830754505631718955702032359303628799263376789526469765893924602818434893370491319071338508458478360144868349836362440492094391026683515833217757465420103547099906967141331947216186245416074413722819380769342019575049473115961270163728775240775366537397436627554216395001946101034033159063850270003862485012133365894826818283761333142803393343230704308282108203837587285162072281304940422882459360871907991473249569477299834844279299758567622839953910785863139908617224705569663596196978612602717409468603252819322028422851626844618570085009949597038842768064538208880104317342173522498951755870351541763626007016673842452353486467219829462581098033709374048213446275814218101257852841546845978533873423194325999297105773641913061783444655560238876270585828087639513043134440659228037062764709223867372704716770538216688272302212452906983256703488391879422602714401358554730138719678243371321134464411915653327368979801583348388675978954178121842278864374744441912408337914175409305601919303943303004700565075322669932552569635217358801702364359353207033982964993383442181723713562195379175477297694233104797817657444243427637906539466425991084072501118792229555686430624826466092310611279677823648265157572889841563370595010292472151468039117410231523141350826514204354246275071140951285526459508312232222136734197579188352089230496615416203512253833594526569806476302970707570877342327686480228926147085204966427501204376466507342340910898760211220187568306885625107208729657516487133897755247419506505157934770541216014219965245292055772858132936444593262034556384032685629359176427805288231218898976039123651477279013563372484186864977704931640359747238156252524259513321018912401680542137755873490669523776784741826572449911767478402075860820766459535345520548753945886069362895593218889761092814697593676624491087746505141429970664611991920156832366269648505114704979209111216334954050338479974399929331658233904691542809564794022500834013008858909188508782151054982961201801676482567814404881774473358935347262189790399046164088523325370393617465715103706263626105666388757762711245122825132338252373973335682061180772964611654324080506629397444855456746787535046597331949617596161518684829095094076854095329927429736254979654295647053680728478809831342273778316718149919501653461480795863969744039204316982994309171621325533693945952006816695899781877478435478168287773317550702829935476455674799503341540145806286880917217668838499647130885801655600197529182490263607183200690292293286220082513359762954276852986817290352774195751256612286851129274069266100940068942743038533929349885413828607582613397122415032430586531135886502110738065248603375719208027152002042528314462658593590887765478049813556736263071330121343802320973636695425027769677320102700041419722708460627971628646368752437063351071675572376018601474130874141513512939988793911574090917029539435023086883112248619541783016331543744672259649586196818524177907116082667774024247207232395433875114334034025446457669168756724812787149098383993351580086610707772454278963192418318191180521790056595883943809905577417065394099472231557405399109870971918225370475306707218183521287974012926311865806931516031762495922167118528333463335850243466102754829669111474155254765685428554688163339994219594517523552664750071246931912832292018571949416848139277540472713465770997673096949476384946729045134721106167384656080072290700532000796838696189826126144956452246745008574438724347293734770911026365176767542161449051406883423660059893339686372320260052398926711329401694515661476734983519549408307846922715895724030331967690979796500609648828034612647898728349630618592082162541138916922874150570480218187608789985502578474851620011808968890012990876706210143344015673645583049586292198202256368398511514067519259246300126661163208144926965779744587385423359206990745388857519478838850386311851247169080398808926658263995969994524851109399924868389052342553955456598743870329871930319170950047650097788331866853493292410968519965866506128569732376612918712344533702180249285260970832002526371704211365020565121540189984958631646786631036883364999550750765930257726307583065540364564445681632626917830965373606604614151185597331173487182368746063959570778009979644074473475104087499164190819972329318885594809667716921048815275034726762260080693790993913394136499062536810874894445058321188000004211396420591693208297272205001706777396310115037705610009610948507785678202274131783092287557018521203750474601848967876798870266441261305055698254664752469413790989914176042300301953146071072451879803174395361413819281752677514827687791147390875958629254365526990282423348932338151116308791884391661767791168625455251535417391276847747146567949511178871057350483558459775669781037579761169526947881441039240666340268826046334328486939792975782720459479145611297429429684131915052577321556624868556126440627713801051655768409971370326501701395002748213778145509951088479400491566287516728376227686068023705154097505380700925758109824150191741013654299950375410682132529143390513186646695272679146756049889405862541468763197466781007559573785954638997868388999951929281601068059120143579369654318784157927082613245421989427985367599936307109768135074010873232607477655572150245153565023041210191558960511623178438885506795234274417065341677353220918552850029383997757962327533193117076079583129396348183877814783843466128080353733518761094166079853325854196892080703378801527762707261416877514481802579167133914148633132417262987807611473320418652282881268430707974868310103475326103735524380719018251925153795985662251323121475652552189475577542341927302102384191653916445957846433461071188535361727929912423253140445906581031111748812100715877222936624744968050178642532681463179570174181279016638185828355526606634103331128048412869209253419869770178478773463268594390145265150659608711684532248808583639615462283865096045123288303124572052626378560426475247939419328045861407475673887693113174674566551962893163107677389659702311032876185764245592534003573256925999823012258358176201501511058809115307867353292527587393429093491165347891990646532300449033586986344058342818357558132004152341047494309168799677823513300294617745144949956321474161695822833922268881094794455898109370758915958162995489341816805394987671909307910116704973011885813591112354288600918804092981543361939756784002872394529919832713085456458226458451753532597975332516014321933942743423811160627132606817874271536158658914064354286350230685775905209100133501104646804482954343694864519133358851867104436931983108643209554417115250459946206072964319281889334749246609464026294254141775301360873474250333382576791158774682042928995839315583561606964992793932089694010258080288143511490954992408754222486830989521219416398995109266740557290818673023225418913195069648442235080764669345931069301907724384004055047837740259161719776498657740403964816128361694686126512449519339924677064908525533276362784551103357218220208743162716319268925535445516380680073613871550758651381517933237497488431509778955687095034612849566814050057288716836712896364651534004602356527600959662919543937633093393347229078405656058288587217317862993440549678146593652713368725656700782380172279263754123949128346662095468649492967070078062948973358472657552989288575619083304766433680715260116160636757438415671689068436388721140283070312924934756300755302819021563369330456859358370727004605061287520888066247251416589239503702784612645758086391695795552886515515801486409719347587721281381803734318878760424127590207830058244225574040761156960886804842272423856566869132523881391468179712179176597941696348478000418011665509505477700024106020805351834605705926567525988178161903857949499071822454661876689217959214798846277548881379773526906881315697510764699627005047737393958994452945818836067875871749389382636179509310471350795039346951452959253933474698218152802496370452474882439471904332625648261883416220353150356875279102280263751633987975770720820030245990230643310524409951618470453489788710234056464279549930591895662209463086062835424789783833534166778065400225093032655524298067263507194435866924480816362253611019163225244180502613386835607756574608683880078586219122892265263330251790129985148225017743585200923721861795826917932487432521352576292480162036111740314841410454751231421643987389460529558276957762285330824365245126907264568183032198584090868682877878925148523706538903432319315906633538634359594010944120451652596199151942851803199887180269931746181755644584745678459487946626470824516553777178420652754211178884044779799390365217427702215865327830748428282065248916208759973744144894800639421794835344981123876620167684598715928327204554029687234099973490680593957181270460567471324174981036343135074909860950243924031261152900489814328654878791079536952952069340297475450386048794045168201301757165355712116314765511293632018528199239041795969538874170177865028201350395175445426418898538440390867473191106162517526555764507718306078200703591078494531271835564182393795312507020584268913880318978874280387070407005848455847380797494264662480523684736879252005662184662902459448662202371536623048473330875416438206196765697885698421233926527601979427132312224581297148042955404743214030558965893891271015989891780616213315865089338886260344367316073152116717880856895075139564156350647097742371662383615392796452279176170434952232865085857224626301400860257854288518224758117754806939620628072346625490241633373351272675176836751011539372112687581717377917083228701832464104003300386428392749497546111166914455700575436381440423191081923207148912914765313067659772085660423997988877361543664166075372190525530608847965823518068037853561545599124996843325223930159920654622389401454052234698915281775952320017348290989554166363204040833069917701355402354358522621895014028326381977133009597583499776898073665693012669289095416240075467928057875512528031957459420534243972452256211233421842573614818822865237830581262286276616792668011106731718696725513789120386113651198330642331198746153326156943923273707134848188918440387938016957540425738272431690809671585213628673154921435297178390131677908370376145650559758993993302610937471959258135435773570047973346589650740026140579359249558954080414229484387965767548527901833219346555543841121146394727898555239261778984295504775546441323239333503593001480728444316050785381439385730654575261718419364695635369460379602956387156536671460638448437304055716776962798461797472997415549246711395429290398776606203527548342891315697997982251938050424087492611899196233193075325644749944450324261511038278891842881644312004851907114905089329741562546069814193226616620916160440386623154142767441085680161625928408543837036381785920899621944790164339415200245472397622685970688465690367460616145244534471328482330641209537227097608579574380025168251767932878592442263692151396428089507937939128259843625727829114371918486363533537941690257737624109635037852137110384026036702647498407396267486756754335550954239249291393158640777137636237973074489227997551099180369758060619931266751844571410789867781909291227591154470601168182764652892987658815420855521538168430442263315544085442633674118663909308781892971854333030274575694938404912237521299627401584076696192668213925098991022784133071545599486797458572052754631449358721694314042959583781303860575204459302055133265747011573188213756572909217182323661854711363536039496303721089528715768516277563307871398357830364511621612719632437898418641344209792766804943133801819966309793295145275076103125440829620865460616624376378184220030881878145766260901568067168287270830877233205477691215688773216716541532234529046181207199607447454827637623407177862507060707279809981945645786481584736687103243465082007692312411942992849856645434812630929463766670894767956685269088990345315617798323490534160310971705990015189111725397602169587982271735438262423752338341813598952466566439283299838381000492438287982651373199144879893372343587483680736400746295756331470746798683222305030134720966904597599850212303305470372199037084917998089129687725188411732049135233156592145615850055572158285515392210056585151375813794494261798123126769210411058720224642294626872294000964332218514127390676529563223538789712719715257113007154931943634429029817656120840794943494703235017002587930993731614712015474740180753678427710790919705616738875773049437839851007309559137124675249236057195573018927816005419119865997962096055200107102940193212311371005627376631375808564461689777480647977789597626437184859353119198206519466602138467979571942635925603804536807502677085105597670094744313144076982485659164079545790869567056107702489827394063230501990144272610254783851092605536198170110704641446615785617084862261712390896486667012744498203901969928515487859670390898238713755331371568030358549079560877474883904797992172278491008855763315045685419830616195167672483699303765946601935725157551561665651105810371920450681961077971347790575155062944900446796097352245697079091406224233679995031205002624024633017374736996957465732916581496830613741455891899022883052623475494312479634594171430657511581326147027176064742165479330472882609942312647955816988447007084694663823196226964196639314230248433980997238809842501573205557862768960850686926388189161768157623829815660323462914220499897963248334005087196432881941842735212337774203879632288316570676470777155922604094528408848146722177997995539391113206770825915407640265887425176585451720523778009762532148687933159398572993704335828564452357045886802858863930889955946660896666947035900362817010797455534187580153654488789400242894248627009983799828977391586625203625061790844586719599016245679526036467558545620220722867751357638741244386938725747719894992120843690601362263736374405631683192743132058546479674622269082669817313735668916838425763641152538573703075032695291545419507802446916916943446377729563369261381659134440377385782520668785547224176459064552381890498798387055350622343661553408894539961387239930419209625109654357167000452311136097129788423173052131589857044681947677907699421079674838816908977660101257183120036431963179713873572705584952621706946284422798724241954211469969626080653055237790938974560984567593582810397739185457872497313150908092825466712948684721401508183776063791777906375932915025734358591802005326910917598653019857686964474119859074176415094108655979303320373317896085044765793495048536174652175707400683387010135417256172044736626036138163152897592427717739946799920034086883238104505115893637274795289172000319624196420150331251157135894257685219311628270272168635128361003529701552660115007116913803040632203155610226043587854267364011099548061477313110499613797216196464253764379092002534836116096026332187910756617142340045739142515952888221652517849737389341576203089884750976304491289048398534875222383943326363116818717506304762623268470570972595035422636975030832069945445108542226376970880097707824725324839462222220528552025584112513279267129412018667670476718078441531834567218721713679261830538668760842093835880254107909933716328261624331156268991690687958629939616162313966513498965881198531698989421600772577647283010012520121964060930181907383561382134888761936398783802165083936703967613623705826797550814725715257536798300088498528566201179839259035386428278012791734616265596803417277110076922630775982092976697632063300605812186330718120270259640698920611201703699066561654927444863813685153057003447794945416184266576182925188104259992588933034402217234897350754658762900706492373877066144826518197189299133466002903406199173478909255940726942965994728790470489694642498335939082222920859963602442692995985981573591638239817199237291346158673958723207236317901727253448413296966242771545610586869160165966195187889462741638862991566219112784871947624140277326601980499763579994354163792528619563195915930398184581944304463107435434232968938136879917871475203314337770625310462875305108929669206677133955202441148489126928634018976615100931589229698935991747654921755571458453066562005362842854940921312995809011794719791604335320020088745108883094004079466532257488900648075482002412643705612481463571987254211374030264677268939604160603007662682134330714693004298514201419821524274429773356893301881922280692398067409456198286605129113083993474172996699139580024849461691792515480359662800609657102900563592438873195260629297791857767102157759547233106622662643740078759267215393816524779175420536478802722446069908481564826125622508836873208408082409238650512122391046790083603307597901488759342041824324986885826899197026050693888195028300915623963561241025284391923570715969839323034502745609398942705853042444900253611542145966164896219180909044108607862044134951389282229728220149302424540022505938692822946339734985067662309787870613337630464795201330605277726557398797736748369205496616299381041189387960378416778761789883231840371473816519367615007693601101574609825820794594691733820041502868029620180907361604128293519740846469005942980908550260247498139380102784053136447205453883573199566840059761591646099944287127693106811500394538438828096954365785348750899316755015940485402934267781056556353809053849921263069355409622936482107147227821563034077078177691258449081158161647172573628403751836893361378316676306871479890478134882373611524671744814708031301011170006279965323301450595912021686304560595070357654899613480160334472695496461959630398457855312119759835342201914650345897513378055015361675600224867722017739261485255253610777242795009707997454503284639895140422545963457865907473665173070999472916278141933334323539228747617962982311390557576282523886654174112442824037288602789942294633881204708347836209415893231661158649391466673300019461046588369793458763643272172897536083197075292372713686558182587862626992971554042043147767355154597270554579422269263074478127496335820291088728612394539872719440860652920710493435383128930221839993283393316811176807848573332443382745743293372748114693690323120572555921383192855142864237073157907727911877363716644874972105235572727047798718760317152597160166183502664287470448844011208667212761255265544578294322157369793257011819166792742365714459315757807568036458884058979314947912273877442612223847107141974646924054058244193673574862215452339039853560925788099488982871178678474099797122663825836386980489128484271742509730832139256276506956282727931087198273974203278444408999433589402735281587965319140644302868356699843146057655780909193700519143243349801531161912257645350739000212969865441233647673170544842589041984717492041376635481298716360098454711026353956137321320427497610063468386344562244440968382622341632442254798207681112546822665181207666408845674074224868241725009404481775468390542126771593927397999986213136580237015921329457744195942296253473369124299835305342379559196805527386074594609103905550087359627148897033743859717626059518304080477493691117604578309179042592425176852631683466114667016876621092726966868960837761251788462577543354139923611033778934676233451818731351287427559481879944610538616674997898914628015403888921278206825064477029780186274524401348996934814702471620140705447683954853858176924658912918496483463727695000577349725357240717274324860300318004720238833325041704224097570462506132456701539068410663356777418095207174643093280421242109828098190741370453291008981802292767936772920925275480291701479871205499422758283146272845485709584875464533828502060536339477105047353256343245331814303976302004020563821829806909810094785722502984815892964721149805496195847839718284338542372975351378414036764143720396068120998835999459974968394419946388971773807936082519746066651047143233091710708416627454954058860867472285553160027718299106827479411894276068835107797272950199704300256309175133650086948660291235522511905222864698538408423314926969102158274390591299175562764910837600311289174730708773853670258484982454782308585435504099192641550937983871933753203212424234270259081868546086069882726186041278172347637789443944093435767383609973071448635483958180533288944118820286531471398853311668999972340652771745702653801909907175209059284020254831263017929855628923430342004260109129248593832300019996536055584400750489376233346837038214352129048612732985086026473291448182038828375535780282116449028172429599687013225324746594789838708730906209565374272080981149344687452258386069929293516344305429080705401411837919315554885753230234187530910669271450771508673814741967511624823338279274644865685256629764096545389419191263954815078228383217376070999913841808263832958075719082229406966949134027412347681606896177450526996757561467720423559722766146670136978894761880987682052412886525679981245691131413031180357087149096704332848099614733038408864397652026827972466731047969151419279283926202128826170709391038038198445889836703212821327044175625492824366581662845403367323177157261443482764849516670347560957655420110756802112293342904120646806033644640337751193137607031784294416307139907142706730287277760260791126581120522414369956747995737956456241211018321264737866058174831125726099348469492872754419658076600687971904149887036106858326052062676469277031239354384581491319481324955816521862991300085600724170222380786520928081459556640683522305378017813589376434019745543582778172002455970265869325802094207482370119578069174235615986337786240927263510487625804978628934135658802896056611474386695453195872797577041422075768905836900779379532711204883204695111233553990208193909906399587373601453854147078511161171815382808735940187380766015142179770095993858963762246422301531948458653727986643932746811181469751424214828554716576279865075708025400385207266682396678213475798013134722861246441670657641619497895442591998092408093067583500901033979959510774346271672188737565991581590786423293727148417498833539850283004757673327830871815126492131237990555417620618002813103540688287286951271636354612282638792862971147381163546523929796740349313745838930956682624595935739733787658107422910601116161385049721771269570299261210367782778720213650958192478282816120958481906414932562761429420414090851027256365007422434795267033621752501070882967538631099415008242847719293570163017094261382009969116421339457115053605969876317665168217127885851710923596624159302697365217287179074624452057972907226450667912687736314445805251521375357721629861755107089857912610850278114671803535904632001688615477184539048033916256888967761927104240603152347011683412256631588148741276802233140507389767360401180149315610294508683016565276409043670244852945526663028046062314678085214882416771868090347873824810113284606598942761581062634340297428299590154385559588178061916212841013917049955984154999033769629539552395177000234200790910371414998944889678526665143995600136448008739539046328837282184301091553060965867975732846683608072228775663828856304738939132757294991552238476323558007971965448634480077101598947054137763564791507973002761987881157726081834375106722266592511797683148325160079334261186683085238967892098217633855586171920952147673577095657917836514390977624292867204897278375567347216829654220391109894236402356659424232709891672822063301824071542752921601190199394544809708911062880536820924431265439352886140473004224850045008084558401618770993860838449358124967352349898446526876445411418750913621087431387512307436021581869404567663578574756395164095258609066790296617202163882268229270389470262205291963399619254795552527239179754400473620232807107995071735830655132373367681489598271211895029450070382850201224663208595779273266020826925578170679778923366627340654397618619745560327680408853734332857312043518593886521733241017780724430838818803673460310056161859550490635587103480662787031001694411878420211464812734463479790802291027813961930505081945262971422795561421715675335140407234386643932896720260828150922757821287161319560004823731300742312779888322622265689746680323608041994078885727698864324108276991448201009706904220946157007836065635913096752951444322392022237932222484058020316177749374888285714818092118553323241566451322848523197471890090619552262011648798120493511311385559108116448743409790062776427044999735380415442451522108517652089739377387896314677373900714655868234903016927434620411605334082834188973376986749730645215140261097400406123062313462494052440808272534737372207736530123901482651231531198715844390614662249564993960327015458628882257733201290032413371392921867170913369786851599079380110851921065269605317272560955719562625610309829583766963541309850697212390711737553866879089633000896988466925333729584095909656286192141124448906910827003436777440868473135368110122112662911080262735019128564104573027187732828587098496408818151599658572349761101090454250977560759453594237013773672114308106412235558639900934460321534453064654620008811090252744994340791233335992638645262897268230933142669488191268874329009827978159495595862709086578028593117769943735959208267786219065348041115661893471526821784406321243002048929899506110249759218259177891366697442271099277443830539610803161839408720506891205529312121535143895479786328476836822831163739575831432964118825927209319677777067607169482881444106744311205797465221580980042937109624211194450254864105068240246926534632771532217191046701296564728854542441004720523210347449748026538810913029263684025309867965178691652423086929219352166763330960080459076252543034081367033897912953081283457243501133930390440514511942179232025891691640174353623449049171295950293545274309788268862866083903868449432710351141407680377257619501771407607767791067846912051271622394543123939042309013333621175949292258817049880199913690686295404950471792932688788304771416021635001137857261256331921530835700051909357165816862923535935908389935149814972579126784645187727459687773779618687223138226506674915178572773353207234908201296512508748533431119783558284057428723516158695855590693623625800228026936425170772674035465335685934255761900456005153049666799735819719931116321087975935891715560309585984004137582162159035699359327154279057197759473210293848417409778398166555239545743625538368511965934663956739335775983470149807297380878515152611791996344098237961944537326905145249485762121830636421549818419921869250403724606232475790190187981502337549489871315122607859373672958498952245423038720728928193252086339617523264024607856349578322543663226916859957246831423617356844721422475267623421629344956252372105400455078270635856660483156938801857625812306824318943466569085180429856237249477554547347216897381594498638063877078945214698425493804283354391220883143116412735240396941734307012114093737860530787861392197420659566633097127860547186402615077005714985258285786143186610468805880009387546421828198730727054655282272341093028757599202918180119432488505844927166052874962284365217766580706693374028383995157716527189994955415608286081849301445470948554825359041810108900454686826037242362410567430260012522975315111553404330803233316179565396792768555318029273924720441771824776060064244185480786402173068349417670063222570036581958095633778073980310717032340806732429904318486320184243317876522688846227306545318469561710980358205216034019921963708692740910469003204264244255925566319736808918587222755758702481643601567775041344683317523268241574908708467590330699089030969388134425567017580925818887213482795220492144848159492404365255526950344403437672587228339678346699799347999507228097351879571242365482200022600779187758189841758983125145399415553790577922440230044458852661173919504203963421561801229105419351784161154826380640399050792424840547479975993638610395192531819884329179766392924649539242835186343742005182157285955813245927734326286110599079752335850979616386265853438816469424108597749330192928675483976668354537746795972922994266095594017816444888742158218112812730635851344415501774755872155310983888039802665281608951176312897890691643649890883232479521828315941583251305221228136547350936411163958561931881033447553852584951308703956568389863823844581305715145986767625919141599522942250401349407816820850489083594413881392067996088106933018372786949812090627543599908120777915888081680316559349764082401067673744612313059575240718843732855454244359978964868279281175516121661507054241373401793623185344525731540601403002892248658284394948192752273604427401318881887078471233531368765338874638800745187933529334887211169608328558069414508070471977763462352823681551726869455658688498784149171650996435484660016076721613037952778995511569574275802213056007214611392058526975898965868393742280923297536549328743996881228325049929765593193244453739569518235377131867871857057186522985696310444939873430235354456707321176819060579986749429831978875856149828898320404556336204373913095486027766688704392841353070750619093341739372268524840922103415756148810533829713466063560677096832567445981690493745714976715605373631772426271171465930621756113000044442296151911504075830309039928135084141851160381295983874574129197876474389420511481227587602232691425369120836486311589742123370728810044185309095965930423080719930542033249430926286407822579123108987573934032028765521567356215636515881822958507895262047653774297911065742121674420521503727896211547554537362830115703290036211652771049382824316754791271759828381222649865543810693110499257309192762199750811785725208592825520040557846237404064639301793545421899245854192230254744433488449894221831021578077302223342911044418869475715766258675295553636481752587335368779314175485625673949489026177680771295840600606946204283984680653961545467098551260926712911969451062293439200210919609143390249393230004498850780111143398262412077705591178278805404620605318856183161542073400202004089807119052333793149572309700373905484937142445348152634415256605004808979528417725549187097077202906150405697279119692176953451032822730096764982353063406417438843943154734625146683118731487879647007014641319646225851311855991492428553253156204287419213891268232155045420096675450308600995835314451021089590067414528909058309175965183803199481930809008152206720760324123703662081462350089608427061929204984510908310920313057056956834410540235319987704051439701840081693265048836880214782452501422183079185730146990618778092075580002139616918997395827317619108516731339256720587211123083582026390602666825433934658672398984114355894685683251888725912055186347225728951055432322167900895005050521263792138723786334688184049754306942360276247258939421874328605264309706623264694703877705035969281495657384608451699322941891956345642601613327028805962074460641868111415513582693527797589327064224405635479938669519527282866375708486974359776350101701863422177758713066792344754253119734678437262368486161749561553751910267104997910377942615566334480654996481967300839160643629802963857440558092170879807003534730043993691421633237207183446286192481574891258707019761537004690254413391124848444827561386579363086375518769443270144243476092192458935970929654901329697983641505348942271505759874109645377591753238014136848092291482588459043404252070503214243978676769538988499632786130250917526022230404404037406219883044651203361488032699189915328770032932831626672762827027023662512648253940981075052770200065247646563323829751253860892597203031687215882313026090665946598193472919830625246947242453591407672674784579751774808927283163359763113295231362009090390426837044101722621917228570902357263838389044788428076064908227349391332064903572798200316275106314570684884267632672246596673231929959556216304305300516904198186935504965315837688604973136612789203776881184147065986129516622021745319304318094646478324512649726505074360725526121185313552186564112001086636766490935852769149732147630640265245600012186585989024653628500507371985849870336012612604207733159465945824553565058861680573869312603142437919835865476081548153629663552111230978669540074754528150800085879172230477439026003713139418209607442575212727088429409289878629898316162273772670305400867094192707307386201694214812185765449302478676082338560998180090717567503144344431945725445605536460683953154834940747886492967975441042716709916215147972700052604897840042712935334924360854143945163322101097478132420226009431836757385309990763324268380554587710723015345683910659749510551938888402194466530868980865040687604701925128993914416219931024999884880520336431386818083589815639667929763546947681677354361720008849518671139483172924413003565990047684572601186264202720640609800609857313462168624911336375378270931554955739839556374235392854327154070616644873179107693789643396810914569388159765546218181699805611005123992563572998071326666470190296551541861194148068420566496098497854753889901052583454308849251226732176552573442317749364027692577403587163956528227115490865239654802476667562293303068041111873303269190725500465410140642232460597357892651538674277228934904865749721597094610159133122193264718456241407098097517902653118101675022203668544545237214641104733360170144241262809891680089003846579968471752097486955471098090280352844889707230756857284149564885502199075819306659031838749850893821794053476534188410928091750610126324301133370440405177013872297150292662608734905509623402450093037690944337002429945419124168378552923508912158193778489785509373466733207749416872238430511634300973920084790417324383145443341184888823341409059196028710204009547911503563173868375823655973255261672450617898021826601970356661333371235637639532533910875099062187380976784195500908429199552240024728615758183755150287283441941024171721930310284200938411534144628586178026022899882967194296253209034371914538786921854474430166159892532153491000629609705168922498302027955593757347580510131532758181933651186266370687930204555679300921507020151070902801948688079038326301141134637829876674197719784660529078700486329720750480808188381299512344146663797058827297538118381178472398496437423941772092737737500564460508797250495975187453824435140564495294935822470033288519824178107264889247876515298608205697325459162898592125629434240691721685624034877545616327329985806441690168279750621045582705857243083706286408109194307742676996764797991296548652085756851421180509608151210101033887420781900740386616421010215217155147182717086030103653215408535094879657322396878918077734135848897540923943922624121682587386123228298543165438971017207271264033215638489492008995899779434705065562950744583816492994899868071496208664655115757598657313235546086586749034135295101625548269225813175414144463397479103388076577564079698433920210112099168223656177562547017566819271585171035496095394813514419727239300242356561410142127269004454743158657691759514801971930912381744177581332169851933607020909327879391417912212920860022940468707647092781666830665233524399800328456663591887169100678489345985639537138557236647535400571804264363051463324549428765509697257446551650108407121575861752824660126688867308107273235099603274987682779935074033357275689321482556832010299257766675065335929705896507478195768273543888669742839484234843083673948186308744633471880147930789401500876273243507637340078243350253677060631490010626276479380803174111717714272268811003884538425572908718476500190859149466269206675398854974236360985401467045450270760820668221025186191607191492871679140106034382796974726764371379791827838980183361905609043294623175065737676440220392850770089943976163923041734059904482822414784111971746563330061240581275515894869734736121085758174184673859969180157269793801879718925602874215613800832568395663786600113959310165671712441536960643395277869993777790589913195226505816681257715288814098167014329048058167268609519948647179898264147059030659232884491195867362746178988940379279605464237347771874134227987910735126918908591173964032997982485768589114167441284384922855605526303795744578414303563521416150528603563823475733327926808730820345665699588160094266120721154711978985307289807796616748484202079370095666682818263027253336196152541166099777369615000236479438000468444336001396414465872288515271302863145550937924015558473728867315712944716110935133790198489743231904854570237995147943346158700056431429880269038508002966111672174051971194099941824963748499944515424730668155777423673873770710716743869555537970813511981412414821285969326101456192492618068657161448899622935165179833522536230276390330361341998274585119060061474720358278474100130159408378420541384540780639268899162055338053839481895125837799476145906657875093332861079516068470513197504319782335103835749978539496971100383797325030861459093963181796320255058228800148192056243680774118788023112225281179550104432625363135325061651784844814731012854683732782805986388089941860166599053280109809993435037908372955044332790700971177622260470458466648803323779008128478017044273320917534496587823130192660475745434166454477624549122010667023890360306490038822750437938894422506015206746764763013575632529592341848427469812097528663225829802279074039121150680430610608175024841674995320627049183571742982237911053128917868674700936594243335095983336727453069748963015874465652499348794829261146878531189386955178848541417779270685911814594734698477894797310092967848162940351307494120257406364294392302622565615778508390854108264363469439923620769380547508543071107577839312846585212060104019284302808501775881218489728077664910953147689195404846106624167636309370678180428481753926499068347932081494515529142798874014296230168542954355803856511785151083550409380566113270048898876391142922260175834075048614607411088522256110495590011087535537215895414099066451980293392052709951241920039831264233912329654388423585200674039046390075310525437240534527828600995741158574953501309715694277085188086251435282311288369776714760370369488090013659054318321600443125276815940464366960688750969626630804512404561663860553816799163545139451593547756894919053989961582979545243847636665338642199130231597585229680196394100148296169976837003887949518146206370322365208379056767853643154760575883045257564220125366405595516451292867253016934005271573669851532954322733018440068633137971767074532960080797601595809424601171543103898700480195765051543707384976239039850133279303021246887110752332355684484747249282497535589624762400148603523483714945741642656205727218246708099272648880143594489409521892786565937490971468720364127464899631562301966242000377896082403353980179438585326338053399229138769557036964294461848800812900449889294699949673366167284687112768226760899665826826189712106341189862087052546123099522781051345085083876756211635779188324670943030300664813199300983913916127244645858087725063311097162268498814420156928765900811725347914649807433514192950497878227670149857985554159587039734796048945892279715333932067242812905675563297788414191775712073043735738045474829982535339244201959881362520339810109144211480988951997085248912776752410855693373780673027504192737770071466762007482216649629443482808839853723827209793382268761463823076156849605538592551464613590433588702143619878071630937936742050530258219556418997272177767156726060808623896713724215052360510771399093654175791963082698989459842301469486668559714105831779422894740625199302394205607266494244625105343512911856087242122226621141400878355616229493578669366365297580226773976545732090551737257464116225286555651891809316721597150848569071556547264602301716702583613692779231760597878318749280755554595523302495585298149172672844000124021385342666199445408942781620425405784920563601786420746220129472422848890656515162177689822899354339369465844665953795640545581757638444565290221359304305270482624911587401045265099058507953011596533034491583952794231166974689126363200908741628652889073400904840905503575370042911009305531457384386442090608990519639872972727113115178332169850068235446724004969524305436526163855949041120017691618644979671921155746867210003292350922837992912936693394445928484825295272230278488729014668777253625121517239685330513360562978834797129039131131556198702708845676255088726769512614597488526001864874818909180458793449940854957304019265577377851990772900018802848572467465861702816517802799706490229784163840098413223599339146148494335927674741168300794410658568586808904903426781340921193496742022213963804519455100148787311158781120270814365866312065466917189307981325392095019247013421698183012441850766811099733650806017105992234071493389655526856964161996625964299033821496878121432814643796379330250888796329935863722057463398150733178660070132353166517066021381012644970650876433572140223570975324740484912404885424156996460659664944145847094083534512907296154764860464592881796594248679349333753092537738769583235855463356999334839092196909397682052592501020523282479818684513636988868608215028928937796422567606631836712596652551620212974203048809885618690891177953011996199680925031986864631509283355959053416630265782565087924102679360760212269897059906113767708285469507155745773324343258215770385434358754561667685129437922194172562425008039517845240078731489335113938153874874380392696036230202139482053573017631428135912480770615344091776105508642409417232759300611390273485314536474135021641917261258926559804310250745688864325844954597799079833372670134918981722942625328920814536989123354450640971047457193492396299933911563669317638288276612923807533976957443181804432184635798663402998391114279755720826721209226713840553135875164069695284331206314176493046156339790289122050533790649084803713510343217212223448095021233397567386263070319456545017787982935813090814580850769578880636968759203668276537478557479056547511453120341551620003412456921194716414137676388916738572318773255944092742369768741418403425710582384760939218107129210131206691899819717179468761293875466723730728308731535123370113799971220847227681867556818817837589910163153871792115739903906853532615852152338888201883166724231641952023059673075035506191571072792406200658117826709793590016133177273233969631457963280166241873526236009890697272677096550444272395544678164789800411660117069361464688321480467013780364089212515407778429044834371627622869987573936395050275783853361753521860338589795799088389442893293221687482533697489610170796743823833404986817254744120306828075186987285939668302469825737118656585519133756924271700963021264344638418639419396185825908907231289984769978438987906780260633609306512571382270134337713516144010540154292053018456188412658055318270118063870904510614033088642733723601140610818413659189556734048476545341472517409178470755662756673402965060839837011949874543718337179065666816453890821782242820554523886752470685582245131866919391452206944313452215547018693701157163815600754426217069954439209612056702242549733299566774494477598829755471914052463169943092534305546790611187354052589046010448892517523411510145118522852776273108666957727377075623386473671432834115659086053769199096965309969889244407382270544804605454179587710499681397380123008511542241842407093267020447960422831316251892456092698709607889338503028188242039169560839765221529785028588317413245040315775280131180553577926624212794971183172290137098124304668108627511736314701614249378610756816076419801980581677986965079715098435164895735791133441621422369928532028990314275250807040715501573399698737824303975871083778226850300614888217394169025659590056510048751019158557858567304632781385404144138607779364740146507055042527214329840513140806622719079308230480283444248821417073401828689360878824991565588574917074233338921329107255853701796447811040411098611704273114608706305075991831530114256566449845492564297402199244405402717279629843408925820952727120359844423145996583810218201699301219424329487027455926779603185523699873402274570935956636494994904188616931814294108086497196043803007570514741040829140322667390811431363618409464268774442068451940330737300990204325240915274825860415463809654704866231116102002592266660435940997480607716247073225957217901057705742111365023860796222861233927066260040347983494661000896429208075256353091618720311486575209311449483468744594113964563244924997317335929983952605192683441683356792041529468420074722694082115156355505190592072606344969548212247669425194794985762040027243190128767902754032920509210581828981582625865615971580353634343995027109547212743068346053378804014888572761152446984605321676051746358050541174028294511405653171302676387458808324672591997529549663070423726446766158677395356519957758304659314074866233528831250535705942972026747717393338878231624669358717467933810738832241802168665098579698265634017094581617880384704451473700724991369398043689290875251071837338634744804387067009777512217491792381352966100326552258536675639776973151978862970250784529607642628476152400051172118489260781550016630471982126136982697148902272727422646447880880028453816802856091648490656448663729607348870079672192960100967249992265394016376816968207199359802020212641225557033521384994499951952955783177200868243234728712839243400581684823657984757387576203631602485435960348383808668100510752639765281454806900301638354677105472424296269079294685588020906080127470707623247917809406747911751354652439345569172894718269168428829158731355128473701621310478196665854310684097332942718642667856083834075776464140825959800279709755013685766092679079603351321688524880767700588295943027582648807016041356682407723385822910267113855478931461913843562212578407645806017799147225449782173912684413210081587554894100884150246906670141030147306329449701112049320418026392139920903057257500069550989359149291881358294759039364003085241384131852391269144531241706115159007776283186970804592307258781263818447250800800834280459013024974349513271768154562024580390360176371236803565028591761411350975889217849462130324530518859407522759165051732169001790310517477524385949880774790858648126704897165609423655058530930430725553233588840242720665221494094122655090403710708437738271958859813756822436462021875857352284585148403352419062511798476298706182533948461283770371131949969093325326632210365102251597243256354886866549996655523617199426067370869962269619804641458370446631759806806301440180914260586190902413489974811355574384855464931273304265503983787249870797557619488906236061198611955864109875802907764345006164794369781166130767272628725941357731581821330883392927666628852930718032556534125357115448632947528335542044990556661481668226620848555463053614753690028934154937525052517844544293062370098170601080466123065442676330363827479402249068604036448272191972124761117019137530656667465706716266287299801165804894100348542897419200424207281056833641764369417832010626369510140077089752253849227409653677433596542117614590318717426214067498334910261159848826853415855620236702470096830093439597018928373366499159398577528943106818645159014493773373799614544604179187639079214211028197514783987465203248760760004572315411636050894249822737461927990448988246235906185768122852850183058437874426470966222209631431983525335947451830058498062890105320455281362078599230717654460688765305802420727995614688511589968831297946849693757993953226974499249197328337477358614715932781090424426880497810253799526525572889989833883840560936448953780229450137299317992136115895484672990352682354640621834797004305911472595461855637402703039075432833171270508231353022824649572784698601240315695500123858086389754758132240519945274742731813976849091609738167493979639032047921710347703545526257021625867763319848176030048024074136729796014509836963234157287013574089243192035655861519706673024197188565067303453328145407038336627809805267760057635819341139958655319065444306900391758768929437591953144688464232096055300301527408441025264078962576864754040772486515130907439247311759633508017112079065447770864959866712474701223902060057393153484314827642476699463579962476156123843894904835699401153859176084780025844583833097760544392208804330726763398240092481444983890586887197997199053102029617992316712772940932567012266107965465443322985983965790124038269294358537550882363444965275434045698504833232981927320297572454321778065630826212414068869666247250680050323366706273207384268167674983475957649543935054879299058178112825576092044340260715419320872542871335766358141412320758303136013189407014047015082854429752023726279529675112587084612415227645379712453324468915386235248131978398716967915942832071987460447820547327558471788224177800369772744288386487132777955001607269768066808648852093245575000482413125985168803432361588870625497662909021802855150997012659404955102877607574053768183283203981661805883387428676470966247360373654109728633073301019733465912844148025755444229756168989763043160802313612201235836462014044030816499127744016295480633964512326519851778186933414971305950056322815175377804713081894673663485707732162058705479321688827140007418069075708782975728892189598076203645160598741159838562477165517598104690594618109467771884341350495574509989097968170220324650133206629524193387513130815609192329160868834775472517116102174645296582096283988231686282936360873350780136765434701282399793423422072171020377706607227638219687949061838696997045601095353295255923009567054328406165933281786447018151284537217534179144014838046027423707013949345559711529488687516158539290727467972568802167491383198063197271183754863724730939129732775405107409645715808981489083518640013067084681441829546409602871910480951082188558157828411189293899097324837939683078540810347417116870616432551984060509286345321912752679953584854031776393189982733739730486717050026682605260166322569583388406335574127324367961324524547489447647015307023885599936737808510657856802988773946038581813093509705730335744648951772829735588889192290074902162316842117086257349051773598088640037288559945278582263283733874966043407715348673332401032251609187103874758414683141066104779068234430580707995491872059746992298296689580791073694252496580840513578561608431691042799342032425201194589833876764542240286783080680314332186221624880918500364407645935701530377038722337679404311168320035334885120345129398074301842497577264571873861032674258965237570409553452165428471137273920823530681036907892318671430776505958399621438431226203701666879529135579869741429950925643272416000688665925582774121952975286300888288451419584835925815036383399548713452757788347685044453914193959761010012884022680735278740832982558733555746310597870622112582791946643007573642306317272432220380850170928617075615806966261913700601504094771381704942092710505636787060324762313300476701785294725425982765767695033061011423384934642515480712767083087229119163763028390942337907983453686995502041163453178294093048152771761932985987349251940903545276018026643002132582389609398065105642576083822574982517386673065638292765475050131307163619004701317850453667689783183493523146038191463224882489480132452967300547544285160118108648351449006748136572385333437140542316122602739523747289794356755397875110140522566869848456220664544213422886953162574584352370602752394004136271656629932165078478709935458591015970363381325582999342874231257711625159433927671421249045607695948945118070574122538385409973384533140894105520010758882173992997575178036258362103823314856935816176672063476294749746280551829456373217599614457183470911250968297832332776596605937430101484475804732308913685131077764423531480664711443647774957538978242192409169741075283996563397201273736262903916860496719987139473319774258675766196746937207668438393211921805380208044515347952136836272377089792476980235616960356032979221076124786417104300195676635702987405512150359549935163214284349695799142637995997239582110740493801964462800776358140569461273813505209130345967238656235440142222885619016312567626541317021776217607825681896939356985473203675419968475743778142070260016530522847554915091958174194920054607037438386689184569470496937743438720367052023734197662575256693488352170907866874456009928276654847060621136336009088651450473666322222353064095123823269839730167278468058796011103596276546690702293385563801632572263088594187876102624889017154824614248219093679246269775922202579923795252508803504701762906245602647787253156461048796497805596498559628887959045375845160414874705586811468377932501490752648792675713159556912018745671318986543533462264649014865489915288190259627822841894516522963315901660908212727132600643026839867334390818073252323961591759857378990396258933663234952807389764110711356827068975468597534946391197610744693319179635647452918920320478729445076344954681370249354284227994911562349423442125628331200822661670244785588361498149800887013122079790709911973642123753155414425483882731920175631992335297853845749190698703710131799606733441160900918370193528623343623784675091087211267438614582098822735366360856100365336683374307349819209366187674392449225934770973865708518137430038793263884920302308672749233481594937801755956845387589050743176451563591665751022496234511606941933038799289992128360214480574329401416469560265085232493790432365328991153233790478742511959204179613392040278927329560607110139814372581340677325164321138136370878122205740276085483969176878482377235059295437470132869750751853148534639254632711463611885745730902236272317156611528000604690366676775728141502021475543616789767842843970860387150329365532356329245630522638582781736185926197767892464705188022374156351137295834734605179292833031929807166677669190171861516053593561280591515436870695565383715243799964897784985132461698834409333826961341852271808531588494387041739271794948895839122786313033375849768059112882788582145382493511341579110573150745376216368161795813119239278964565333783169825875153617206259507512800887216152793619887542797517875859361096384399521199886312632243599587620283545098584273156460661875177969013749269153314928207740138098063510491010565931158120425801098838936357271569887211640798974531101672008177882894364302635146707195449925397344224069300952379831177504723994146103431299602768784637347146731355577453776630697705569598369299545641632990900424167820844642273824136499907409490183988720691323109625917839894661121591804080082047227118529954524293426907685215659326873501343251136959091707717729981160388742037571376862829814173025394313069187597568139682122301019759156706417672242636385801927272123783113337848845499987636502454083373510686466219536249641123498675554079615982844241545952765525801093850011261262346681123098808302837524230585008428595892769313157917119012131698204110011856805936293853921034840788520183156809226696275507461996033546991638754443601981541247236336837107408968364758113190079699527755444446311198558899813787900227104286709223962919971682383086231475865879633871975382463361437334121480579660750444840047297116246978758067322996724683734407333095223266530207143570382141662199549740046077467668586602229737658515571389160178162277815497600605608798735329302000503111302557627296960387551260458270631748860975713844325928863697267045661748031950771222499981911632532662314337736465137487234700487787203407984756054249207150036836366145666531120105157447198059507614207025669088590085151877895590097651231619679735362309783026713998586673023603330401660184970687314369418137683873484739054938597261477024532633997199476442729664201075958759084591189196255492757435981231824029170561504920325752937514076587842982897178371822850665616320128225740752499707787387559128036458968192186408197671655298919544762559970399973799999201924324148990509453133669497605430562899917751307966919598549137374271803506458352230538278192794896544363390860424098505743069734847528012899570622645683281517111817514892349139868157706172851925749038295261173582839605914675815463639326971202753259215489708279854300947607458119052195336936890661061629248927431575361884251266561301792456635520639237392041522644832418918331782744221565746439437713235167768964071588924869941587385858710078356822274236542718600417406575200697743134537756343753628205057191852173168754843627738091987546010138254889401169867332520459354942947474858294739206742568018707252013033310504700760525431798506640335708056447527491021384376236566688803885004590357075425920289752474909606173310480768587122849901408522846491775595016700204231564435575213611586627462311920898171106511814989650468469898879293319184355375049812635870187724597066552538272017010036710908254676339264514127285214575321869244870821672021156677108401746546037830564361264658676096330795294616281206598389494793546567702621683363340708278523550804030883302468388762927353015194829565233694483027764294824378147789146129163791545432549568189103093156443459652521224158691645528350516734421736393564446360712121587387347365726451979231303014802932727952858434723191836091346861312709639581115976218810647427512984571965325906289100896753249293729840648410799501692720051178017356537544772465777750559769569140843630263503410082978590959886093184874158708430960447442372998923460182788443458430439061749157446004064383948869312386852179930283310968055813610490970459401810159739050638391818596141332350026430182673019830310414900355187083107387732554010683355218743027855948911993985186046354240181981590653454268259223185930832665035891623971280117680721474759826421909794940972808148813875767895763703249321989682698092803003146474942197680789804330427150890742731802122037369038862155160476832546348750538065068217978028524825392188768336117598353628358222296293035578696753978609643015167850500394694316626943941915345471511391908261516448641499790727808787521589248290757445555020713230106701444044598745547204835524755287895982072396366753269517368321829974827619636095025622449932819751508499683428213582760693275594011906973032481284750524579611743275550316361135857068924282388195546732420176058325797977905453115969045232810320635440092998777809597314934705781673838546512687030369467061374386019692657964243136370042404718446780037972194911957167058667130374247624885176437267017653892850334103460225338282260056637275297825283408435882357163694827894977361295873489633063499540533817072840614829332603755092908602877209156199448946295912376116020960422942939295934879005572783049710109829272947988004731084120012161904782338435377283007398332180316943019075266293334325389935895270747560357024113397949723488837664406739988248594133725151727666999770590099541843846671606801914173095053299331105561756386447955679699860017367889159826029226926599102250132757869429330345962258979273846439017032421044343708996432392707227656549361850672092533838833762179359939911390573333327770520349082415607250930319825736910816816387227956255251742972752206721526693300488718098978086314573408500602265658445265831731263522141854373277135955355711344484597278499475213870171197836361096107786090592996987077215156806444249614722117342450437111263371581761936127454157093656247471320964649162086545813096567123533617985990426996817346584709987212621690192958713345886029121776585380176302248490355879411390559364427863873712410036450451969186693312285601664675338486573572669131789190016405302014768250368429065810950356691095870744745317013964586195090601031639388024105635061132756943174639955228827492710222661240068561383580600941783831002790157986570824274835887775468046655670870471794833901460023789345194549998739486171836833342767304938355850209902900152771751244536875030882678282768789373214133108398570716304545955855997059853811824235947249318882055788568138903496299484967551657923008025137943917151098973153110288913650466234599540643285099531457161211089563919208880569927423485016417647662835657015418296751818590886469455373888315208218826545661302747136109152124444785644966790389264339742345800788008927713127224936473190083184332618916557184830902136646885399763357335003692479160440028250958350257113372126218037237474036901226972507708121859394736577044318040869480313927007121070142993620538698336134752928637378626373197642917450633183579736080027455669863390246933369922250921590557515175060283855698857216258439841395411313706983461199024856021571573321095930085494021159182388824320185661054569191487179719464390095799588171478065460373639882982935366648170992523417082111164812658610901038809830403108504324228970904762524424684052245180868784727045561132786196832560760874447774013139203382769542726042172341667464911589100250946164539464647243705075148233438522320593786106677323295317825323476760630775141971486772965284830521910752076458222546021915509738783713091290084273956027978994916263448078719088214569829615290012730939960436098939475474483451108587265776602939994631918166731366543748732660188947835370233817582166359586333032704959754026828069607231919485130672886266819277732723468543835651394209943540794312636793088888369866961648987895328085845222574177300191579956822234427005521308495829929267991137635337638839552709858948607391099637896537833418228384553858735666538825715429483808177542501302518027029984947479580604665296395867398522323165520086167283327880222746114050273978350118338585596353985098693386519181924625870113422562647505532578100197856754361731595243131445124575422155558299433003963231772840618937345435984225498237700427280922767082605044663940896392009562968116327876057204307155133055185507270933349800934192369663057949071449761599111276119151881190218167584343532588711262646692027349214362834970019401623270632468511969730126873561780112589898625879348937851468372374310459373502114787975511634033252150480751798457615479294606307886558567279524908296746906703469251916056402360682881707772076800921016207914020861793323954568816679449395788183108846775279375974733761032886779795559702178215501487674919464127838420122940543942567935524300477180875967599413367260429750893029790736069007152895648099521132509429771460103382615848374765030392556782341465685535385646685393238828112259904719445274785785019619409319582734871179801686709561782438828042727387213414316769651430910357527271553097446767478678126542943573357444101910665066373070285881481571057781325433503162613746092574676650993032996578082799239157199138315361784843612067324910977032756392131374326273383071337858460326803243002787552995371032497304707107566607854846181836138710701815327608065348969208269055536625535741210080802027691556332446174943413039870008974215672628837928308734842844312230361136305916299352562749507730510830129083114963736146142311895158839723941976017651888040105927284527955634795540699810152065067075273261019904496627386934254728707139433727835147519357970166145321000047012263572582020493438765781901097461197003022913009405127123163394458585261724306946690778431960678003309935347580987699504667395733120974840692237077235367392466341354169899204927873587883334677057730237249161863263921721950088469491391901632302355530171051526841256984170954245931360477248886749112040628488359014044320167525569942954564532492824965792720173653021467390914819816725639617846170947565425097993041245860711402299829533468634155197084866562176375825420995570612814831977812464991033208438265253484071430086797626605158509169444677317879226102441247925130909217252979464289672347819914494272256297803545443652456046045415238164242977109503452057862375693626393740911016943529157440795285273740370713371548339274935938793978040469261586841222009216634709589321747120620114828493480300894097075904315584622937617820895708248313712580456062608272070629660023660317913314577407998069984495548207422058090003530627906403137404221544788900142697085110845757865324097791417563151724855750012646642731340249229050562239955315416902903690629134493642403278847172464634695546606566138384072489877812657964238426855974379496379817668816460331470349476812023004191746644284635425473103130042814380159983815071954491638490771359724923212382393037475420746520672973374397239444680014200537042726326940847822217266045208798993491109977458943964159361534209924331505809963916346084357830194489167201035653105986864499648905526883285793329362957633743053569791836764061348486567019574192468860165094804317355470941626075091155079159915823194004076022358055239408370000132663445978614305024853561972656242912937033563930468158241500986098122562640542949854065178815342255761800993526661470877019716773664995583348335301497822517170212147627988696166224944034360589370980424990720753621866288600025119766728675120067845322625731026241263617504803653636012094014095310145477827857631096598501542723634364768610318254877861843625569119130710234207113461561438938981916021538300070101913392263417712215561973020526621057634910325013788946152449622582271952062957757886448493003333540875599122775854228920885952228851996398279692686607587788267394891245127207726498179332127990279180589169917930189469464773802255312364852480793433280648407673894887111366890834576019114448997970245479171980584819457480949509647730721526076663422466169640049067171965728228835212006673800604450566474366653388791457217662669260271778734192602214895234295659870886887843755375626480210070972033223834361620992791899114877780062511622481798682391624490240414315737448765112176867425137640415476007268003261219773239308635963271256029030265869675839157864113368299390778488870122635052264224865540710175674630594196123230531569458834332541969835749199946867327880948714438971909735763720346708307713509216605654942546847319579740132524342148479880811421774359728665937089086913461568018688159036278798367472411323516080260798806484842756326463374377367590426632154638136775352019132149451797117580157890553306422863457173517671004202618454701822219326794989269388097078055038464275081676851162502021951249917078842592523483776004293695088061299775683131519457186319571643734138355265824568155358451282367607553546526632487508473841918238529426291220216290891713047820203004945612192503837124670008019738317256700967724171902872893975486546972382510957430267672136480724547702631546078404169562709684319734757378036794116498478514989779771572567536468161827719624470082922159178559343272404765438475265590778421458157748970689398233372101989440749341288336275758037866365406164870865744451560260494864124846617944546889676275933379939750596647320049541812781726051732615532231076124454438378170810725544653841863397274002200437022589191808612891577091569717740461182755252957205879731552813073816388416482403305657808261725898166171384798577658411982394666936265832884836529770067659369680036097287927587435176225936501753519596758935121459305725744371765529694733601987329540423334167102432213543045686337384104379415269459131638254766363112910372532678471119130228257964334670207547319064786907843417356772048677869630397219217292859339265044523289806498683113146696087954674184920193176345706731440807477432721960933119723555378924095628695516429519144875330125306075658558769789795018525898536814669032250358862604578242028684392470689761102982043360000693146568081472159086937098352543488069691395597264098789450397660145653721372100080182231064268259743034603235713818573316156453770173454264270257343701389103449779853878896111073853332533358078927574128599747449302045300984983139220604400889776691651253863265269075568514054528364586542524622326376951360177845489576129787396157816980379203892310743553316758965725963250071167914478884670631463930272152305981780975828046840964480232504304278033557881007895964191000136961445740902629025143560923632553979730933722099169062753917957248422915174909817721099878383571674488091143896652683739348260350883309379792377127441033490440927980536344560130151503554103213709905686498549629805624716436651717735573398701579770844820695639412013218131418907857728217971353175926811251529434005682811169044680465608571793731474678737586917944674656770354989523022801597237252075776864494691269929083625971196448060091314334328793983347638398541805100983456032743961730482191601263092159786024459095948746394062682549768555974971960910042407557735241574380343117727638894805199411618552884008289579944523741588546185746031527491532975663413408859530521772273818008778985954093617247313516903075450815233057109228552730347189717449977120484295309276311339624168505345340603457261773872410032618329855281673774287815416995659673530515751440284796923921592902649768215385517256525663647884678650421099899228546569726585307002625174146124509931513698545197474483055753217289162208191365596159547489284631922981063344489494645480814104213045067134658185145119927332793998103499701263750019402518632501917553152309505613152835685233582181612652019362110860340425361497553024887854447281904091403203941654755580866677562780541997375021803641224660146147449484229428552271784558295334936658876071637921452878540135846494454823785758286445858495436960853068460093051691777398391246731350624159517665569466153495358249630451578585922062652066088553422597110879884175431126088265437266641047413768360767103413138778277656000290618373784049254408039460946938475151002765691790199775531414757458202758467230554506230274203013567463547498017591340956384927521160178051523940161427026050184404620436384581356046876977606725700215732734657600708087840578016348406861855718520371140497976847257757040723241498676604180345048863320759028389546789638003697832702575558072619151955327717520530294041602786109666126301272861795447324442413999484194582940946773128885648621663781435424909586592794561061621748802871951683255919188374949960737624815541592223734901222023035401255501535033730853861590768666550319962929180525384891743087999707689679421201211604893127378041023208085814495316379678133645346150713593901166439339163432197727376029050717383741744890456710760377720404968227144532331692275447050501263730986618034896111640504069933477046983275512689438590375143810268980107258127489866326883716496874444277301739996623019764658429665572262409868480666387901477143491552879221549986613512114118399539331858258179360067965354041617277755511628916929966190105079471748248282968929767418589991744246987874399839460112432189853258072885840177445714361009922775781154310644978562785263507433970634403165311129057804233055731285160940246570472541585962345040866083367797476193759853462892897168010024770962703707456296778304219762080384179241378660056245823842100621297965333058461195725770217995371706954801528732864219843693723011776094756402329236073922438584053725846806692799947645757523377368175617696666926839816209896201491044837527095455647474137677517549429433023998763549061140572792195586981395911689835180442671234652660454748166632025501854057561310225135081752099681677280841552519784539501834198520778459743507942247622572100307344254105702678392370691766802735150870858092834812124711606672767468172515214185844682343758455017134752257108560722575828255492258078416335705021655744945647596084900557596866842332627042648977826007641711350071754028413720297385174948029108254861111414417072268498639267392050096783876346671994827847528259237050201728898504928645030261731120248697141781682398554985071717697310141390746042605763230082429729960736489248327807683280661912559732321611368117588631413885025285219081739593220430537446269863636135802270621002488629198774957671556604086262419690191548340080162117027688771937235375908363633393438745694791165872374232494428491664285240189937810636063251437666890917414099459885846910588395366900459212337234264274532466592107147345494669468448464197478963924402680294510661194200468784135401031910457915458471822508578063223634116931619391763601344508272394671694620032925122243028586560999077353249069730107782810672956268067689581928991556948861106406485673205036853408341652012080050355487307855883162299557250581836117900647822252105141416502712385035957112207140229631739085920206591796175846009737921762686378304610416962893814202144089520118464577858920605964770995343515819224390204496609863645478475328702972161210717847431250736125959141934601916209754845372028736739688561362821412071226500801705153474614694211283448140855442108586057625667072083342003765584982546645912400249169796126172527826698508577827804155542283093733873784962878075036400570620112850705336571695971673396459907247331107941225564917584017411882789639399452864471548302393464294355852521360505632411731351214512763356362401217243505651923558581546356492380260137647690118772979441214974680213945939515863371609502705615029219213594650248073631163827218612327570950750314178407241575950464545049155515221486120269062990375865166125938418642482550313219713639554413074814902593437928628308780716665137838570214285344678660403658360729347005476318553712502820562444174074955575067017036985171844936886805705301286064840404396092644057651925466010428021846910124489727382513093745624668495985329575013136608249165938583391025248701104719798572492693426817726986517030425303960578311550578304229193898017305071970855770475731310886136175366274975237373003609828781579143460181151258593152676887259864524959718100747045039602530687537004944539116964853056421739547028837277662254522569175778239145189433883339152036545630453838209569939248329696402517928477618981803260881927608662498976750215826184009229889464033910741757994517837173238510681831956557022835400683650510946550875518576949293273763959682733699080378315711386296016027833759231708749609320427105308912422173722809007910726376769694694711768406549056504731169924269070891793985635135760677854630942824572942214904662109793663640652039643633184938382666868717123139824428248511287219522479055455735357101143309978627493473850959356177189685039241316327415042073453691294981452912814016284765116611494085650407058406764290870785821788022673045461750656963210410235202221550602731058630157299912091598199237799840358862359902658373891554515528144839359554944517101194398412653493237615723892805570975602036417366562904885732528774440242403891083880924909682382917541766910211269649755548026188812175614050382864844937952518303248929867337201045402216490071221618549823410232932616513099412294997320538261666029034339522839228470047908129128362277955890531498998514589955888249881783715209034557223699485111412246259179096121569063576722720765017985559917645207386565313583273482338680580149003756594751424743912288531413777273263771769400613257050842747984391931210201858050222671460548656090520350556883787959569863352124154578485923266756101888944589639671997094545491606558317760523373038698533994824580756645640313635666168563490862638926361209257935562443200983122983183590997893011455165777690456331234497039947369438198669927695122595264903527504026866289570072373073900020585469517456943717857895108852674519187450183341471579588362160386357840052871516019133906457361022938763300541367901244091382695114597396130939186236859399109405159083419154962729737773530267377472349925634449482733441116669293974839958461039127620738634626630094255403439317286620684198435288253741352942263354325698299557493993772917720473855632405405970097630214282053912665913815446311407377541118182822051270309209834171358508696258014986996397119067749621965116048688216827406193129790352832404045001627753647368798274901470029888432289203670594322406981554486008469582583134543644228526657786028390044898916057786707670971188071254977148490568633047664853751191857563901794830113614036742598988424957804321823276546139040132935068366923170889923550141102993535536700703614592991480196560799726883790578421566688001003603028904051343513768991540257404223842044418402085413480732983269087611347734529450193780879048038031845967246571205469722914795745818803434830420781577299999917941436648060104689912650942907983949641212088046415340332152039210394238006034564742431618499831523719597148171080614534345439226184777033929642487946006252124651107353397647747424584792882291241265449499584998473970776596997671431385397552621051205781056044512585768739435062162114341619887868666330179187799102821351397914211565195636300323566077429810317768197683079496629649185185080842009990253822538749692333971603911711590126125658260678854932382332970608911182100436640234481135977253063487229458988123946585172581288059380372913439592602100931227418939890778901430812725897670056422779771869261281492999404809262362251924390712042865305030079873653745400734137366265868544552807039828409829744633859667388394671375825811813841421995151931067391418402439480748123262799919052283935793262397634709542427539171118760960232648466546938003852699093917592262960894583419287375013778921916773862429725819085509939223267662499438493967690831183315583229985397359920410615378976779299530456901867694709701576966893299119446409661130449745195902425077531523069722713670286122980315420705751533285977710632739291543910738423212419107981992928588434141259198146949441597881129105378713641291521029546908331543538676042007858086993203972325272423654431956667975823297103049705027726319696072663439020006553471379543193553893782716449268523961604550985132243294772700749167023204279087156199254234976066508504007296256287129585001951576464964983897826436164003358607052191480867453840622374319907961429673778806863120072129309851940430906605280907508960023008557304767196284736391955861415737515195153344479992288737711451607210238741054013484276843045297088405437275794719021878016444271686798652819142724265175839017226879364532705640162900604960280583412748731493682106495187104687006001335630887676344083906283522517806907276136234127799321384372194024859368926391194940941888225849287032740258847675703854483477770208914119843244855919340637396332482706820903515126301614326015595289914798785959407000343763842310983939004227951762745237583475952174297389100720068739516716086740582554068219886974522312812988140155942641568937499261246637241795685053442052425699061140540004383579997528383007754570669230176820079544338649302029987065502561088470744613476828440580021772382385817605710364164684831865601486057197111168240126009427049288540433761708458285378999909965538509350906297558514983769438214399031169685511349656813557741032797615508227721147455721918359315755511096259224622569553695340944932745427848820411553430945769297544718381999021414931085383281852306043929521408317311626311356539478113758162891697697399136889403848275289847400093940352608877195705197318600875486409965013523789957261111089545211442544167657060641460128347823073472916490546037298871821439839972531737055631592824019250111827855154275898314223285521390910701468196002778716940437829269858003389068503068967290453786200938423762194374753220390998371323677806451412425196400281334017834722523953281185325646238650868274944782922776948014832048467638811838923516166020373566544901447840127691379160397970377157408303364864681746855504571293730445705738027142984513105237441188630326556098901200073926182791513164145365909762571762553319850977759546013421055424110183969446413585774626497268425995156442480206046542454993049987736444006509049400100715554189027377249803057776850464901858375465523089642586848169176573045593529896608714861051362206795421944047031889905528360339627461548125395385289530724830808301254284677916186953564414356025876369657656086456211189617201937180765194360586642831666218279431247166370149566847386592160223254236281890273144374859405196270429524807979362713263592279665279905703158600810799475413633203520117897401053151809202762627494404120150223833242359125235645025116007476882772584644499355715851670024578811033601385806297421505319622346413684276843856180375167946515776586504034197195634792033128200216941627075739879586914551465040050070685776515055346897182782346823174970150565705069774808165086084950247839747452595590711666544575728630569641588064447106257966893417013231400644634199057356366543468466483513843170803731286017246197034912210586758900325752708857776387651359453934708804509128735010683461772873561434448165425026912399311290406214569937410152365577661689570379864404586717705916504495996363473203208327217344818491065838307864206505000308274376226631796955761823938603447051556625462400119949129455097365174400409364548690222971880076134293904258811780974280806563067027417096085988963337744371081510190961000106213238109438897278031690509767528900142760628495242310396935556945045944560466980031318242850838891346182522805880948431433040421595266516011501682202819677781022096628018433797327364183857352208891392386276385832840084407740676912578294439311339385101995271902868587768442065978951368632424802632776503461840211195223245223493178222525623458770009219047223975700922895054243912439281520494529855751069937201004806013829252711298796497809658880607821362072105831471907226946090298928291558610502966003535035633958618678198562677020848207206991025537383684555375300986652048364167179028439624882125828671531943222768895153214702502201873385025354192830195175787509346105532196022130889853676417377731535668383275756232152627285987684602019817939297150948171423666571362379118629316135675663624007077439670871931597702761535979722409289738746819539282021242800758108106679442390832699590719883701555661247369169886147351338402266323515635889104046383528923507285226601819427777427243492702751745234870193637477823729437485434200321079122437629300652708795998662572055651418643702911347495513620561218713083126611402510453915526030418864257621177304827027882547709765531450298450560559590401555579481856997518007490396631826601921779601279987284765837739027520177873405175199610234081819267032879447093988837204275316744670037608256459767558358892502207447088724885947746200301415433424691774361544652466646841789261438605689828432726913871542346250619526727545587147479936280126916998578271131485639975470418293830516728302758727736170977354946121803687368866497901771826423585356848356088759834653363979889238287400612011800673863899142757605018720864035911460323330134750644350213069852104944644882439116346382917174546579110880506114873277797962104213603718513613613521926857857762483949898671492652170049167540012250983099063628527457692266145050230338423045202317380401621506667539285782081143042409483228202030514128427855202871947184964076976686213420032909070136112480003693748932840793656499139618237952184313643076569315965235570627333088350595422088189032020658899210113624401383180282586825029379903413188401314042611777447549006706539276892027684868790459817928585889031924503513610243671581021587013703164988908778017729423853693408309250386487091702541539787358532159439330916823555151895565388803176794191369857802552228318454094147332556698073164053040229979885482969344219544965186331062832263249738105155542251298278354530858854228179902758707322144529394377786379417743986856541389249894543145011412542499650706377927911941722732104034694542115403243564959084088653699586414025521801768841965042824607443206987924655951335026053081536801867440029401827320481112214110577350680488163708172396619000029716973137942862402097395380498030086633363493397786786591692064154130727402448866682713974006501628223223443907820945294450345668963322670169722107262136781387927161130022899028809294880805139569834510077218951558007052804846573827119400607316303209576126604534068569180973360303088807791445207563012456993020128101817545966647989077886442832112419878781426050162906716387508637188468846478715437684959538137222650633396523056944163044466587289103578081481222186902712584364570660312114015690620708857511394265512685657769099270424290415795846973390215732281974177773497470782708878863827427338381709799923068279073935814078930918299739537719511614132627768026514202396302725795926750902195607437188956976602181035533340815063014130873070535139825567626382505290886933380673211358992740112349057286365812046787674394752541391043741566751238398446541495850729907115552045915753052373163028560778752761924328888778476891452591121214640005072295068219689107570878511635095620758254620368382936044345491098774106382758924026625895695023935510788360614681222492474079384386467468879953112213033127878563798610776124603936133709897051432661030965617145026168052363222211085916544697702559718678236528438405954333802257600149960936261470611351184040578313673006391671140083551382214467326406232369970569894404380685004200682388411435423783934961510090150492042678555221639761886912502345812210706277170374768992397780249668191363528933548417252687380275940429531400178447710080344074682872843211645635599331887111547487590354668716608854357844235490051589538826267893493632857246647944569989639381016771516545297764595283218779483076171311444644970569816275969136054374909579974115248487620151822914302083181390092335262741681607072228561688444670192999715582285349467372480076436218904261214311759284901713423460843285581877346192789745398113577622560801285894753400010651076451239881981261280017870697980819217528822640218902155660396394109259210592947412657297702565527033803560833073787098798367321828444193611074244854039856457286095893616728376953230683477267426463318614156620036925711092322166798160782683485829956317997527055135710979525641930994831337323882640324233450689682688323076255326119259818012026523012876463209209636809544538444105439185722977936164997884000396063425905469085847914262922495835575514329318335210726789577385238483408992477566605258247066573277184985812837787910182554943687432874717420189653972632631880893783026848951668466724307357517253254979925118195834348051985905976992739803057359303974702485475428157621499593224648830294877835044288955713488243581934235307420838920709800034714566478217909261618258975598257431911880049732593270085434798589537972016902332491292292000109323112665478510151128425855181339260222762201578164884007948189593257284808790780810553622132301903313715491619669877417846299046884778420660225339977014911887883241591173745081649273276872434446113801505853878484473218756947170212697935035540688584622579810137029635011923217070267027031284224522028151879382860968871180398354392344021503321716315553325907339117198490362177975714308017131970101317006426165530985262491134452394668418146206695586147669679336333339412486741299010184760002365572107938488958554630688396161210621862310521343091848493979381270799803471341387196103030435734947914808313038598164137157737643007036226059761646275952360430557261656621266545944147310216160591232787571598829098751933645779681071669830990377915770751581090767825065607042806978542867989622667916661428231418037067352558020807882142827009890478016782728376864651850095428743064065052957211951204885295400444994601194839890747162708886608436836828309492380657455674150187117167244681378385673191186268301946263569312333154579240925561654431898701337461929359212764081834915673815176178464991498618154979000413387132153086056698476534681144336264773429214863459585756129438035659852727425113679617670702523158279810535897854110411147229198512993122096455955251412054793110160215257808546737643577771268798425459880946962716227840340271516147461977105195696532493383444561025255430482270691943802735441961450149912524604636474536138061329179808743945129615792672323587662498891520884230221602988298108724429661475087734972699538158450586892419325998156187818397771525247168985180001075401836770052341592773652918571965425565037543905667571473716837872482496179327371165986992170391513053711103364185549100668075297905145124211073282394094662114584730039555259769744725656022950387065633613132928290691903850938121623664710576137928228180446120512898769627891190209959110582512020787823222952529816940595212162150008274872392296542012398363470129954431260204622692329811854015517102786769166362986641554295721952280418099777773566251248445526226114132283159528482408829308846050484405065964921877274201379491250128136972885053451216066838335261871526883809427236142428504892321584241839966411722837200296043536920520565061430316610149366018136630846459003254935069192756559913138788008257079750339050249864102013692213894162271697774833493581113949343188620247363896311910264186952969858385054789940678043097276593263300406727732020186886568096229318752501259937005648534360087988474502557735595012677817866142950588164753025285856294832700830763119958671045402764439575994785612824977579967042525903292362420005781244327625208477773180856248696262142486980231338875275318474946378495759862558996228289642174439462915216905545921996576327249684386082449342794749476037464720482004729089607185491295540857218974482270220096628595092340678360431917830268289046204123638743620469403947163511188126753347073785606966143399614961722520974801452833656795627156605803065214696013497015822301328594438370776780905268136283032809350564486233518000857185729575442561843175264933561753893703018334316306275584679252827667646016253656890762073218292098818522730689935653283251024541422822135808655192627588275834212346470417879270759314434896493546192511770883057841719602275624810552157648056293548664593401057732929070192123320273891264777666002793510678660207623758784045425107763518654704808586833614962712248788114600220300505305346711197475784380667978683212749090791364115999329747859466506582214045933279904614149767797022107517431250710027747668424769930015450207875905247293330938867797372636851258454629684461830120701026291191952749050705563279911884338685669027899026562232827054894630737605771484469869264825382339442219133819072491323465847297637011304209295813904841795510007541788618513501941348090235995801637622373489614111419321138611218872625383950740127485308965758767737654566270318986905566221672735077339412989654903184982253260786326060077072965482353892703193785796040533076893066121880983375637434197091648083642061331686396127991496866712291353830907273560348644090490135501417322058112771662919461388242939961452847109209251915810250383077169321820151762455937142476973056879093110969864348059817076666771028496298915179870724301925535424997074911058734723976965977671545496216636817697649594935274573446983748459344928994318714274701494769792552057419755663654816290594835415264124569628143998334490301515899281297669752329103049346375139518614873391550335382798564264872716629497186920000874112037988980036517414324913884086518478067868036753286600243973513835696628073055068431243048444278900421403738136576669944038203649289563869816736395939245637857775669799438172963700005051371029635281294883519368923873351802276202179711539451683534217041922761551971659774339028644708715254014881506249937332196322396626791179279237261091926059070586059967395312337606386520535310495270665924986393877028523162916290333863005377425538783843124750515269013830716640965839224501655824490134484956850818408899480980409219137374749914751733359987244726606405070894006117975941186296795357184948200858177030970355120073798003745533683472180487670206396921527095151911044871439059369245940448638424777882475555131880894806643889286296413142815045073332020284088801286497058655746438105343582031769859889016175285616507919073087443085434712366370418687319364073815016611835973519555727380931326078496058280805910343949713474048063501002314727002134234512491569518427560119656935119039691012047146257193662796529632172343485486845721108466125055254186072895791054426306786229064281749225413444509904002771551459031401950830814054020914681129486553099671984413693263758562346887754321282935446898960519224936123071318183963763953258335029138424616187207876994120090168057016042090383322512219747710452427296845965929692656829584692817897809398788603247433386052550460888774481122675316114886173809801029425236115316220374600239607663727771233877627714918732991560905811934290047336495861178578969056526955151340261214359400761293184716691362724871128391712682564290019574236089535941834796771482925318203145752482963768232623757722585354449537061612485542047624578973979701843568748698855444914439903254975285674553384753703842995005687115306773342697940990874536968378545675907875741243936940087120012032410299469889621194088234436918527368922501467776115384963223769380174911526025350831487125864243944603640117720306057713718573119773890477570135710364885044648263691233572177339697095407292658726695585505184330933778211682609553268076703684087551349785497242240214422482400060836094956408430635736259246790335709321089901379009538126593445886861302123418216207949710382018877909015076511965245279394476172380777943234395494534945614443753166372173884738920490810877126318144256142167235851002823436290811746058581192564565458965142904920354948140899255621285036038970815128427378624443570343377563160247288097607866792029951904924078821520488546090646163018755984178301290625947467584452487727851517088632841328364736274079861609411493197158068253487056903113486132329435255582082334700333614337576248368959178714657236932243199927473323552619405494290974258210614571649396957813312701638777144255743408049996081688349535678028981774285455276081683202014748266974423227153760167611828916930446376741002412858502541472975694635185696534605505430188285935330343403472799834190731435455438242148477776710820264814825501127155593714276311062456016813312448054618460278416170561939013894603538128813215384334126244252839758677642915430460461304492403588270134766596458823840035647063974280029110225586031367914526295197747122266980337057047415848730821791355954004001113347927913933313721766846092516806980081871265590923136598751552094081998483073395399674877604791866667022033705249897355578055885279008762907421708783518332565405457162903153460355572383336396418892430132299155550369387601846490564103908548021290332130214820158347880272341925812513339680433415373150566646613615427317672775975500292185849230228480586079508836613374895269421199453601541535849573811561257890810745946656447295322603240823372273583434330610249426913213963065710660273845109397716405076575845934294931915320630158567649332032023193936832078791028092458548073534494298449166683487582597786417405648812643845215568117421142087150201781794921303486453488106668674697001012188743522176364379496555275762072612502460478698239704944753655228359753977813232524962491344541373290334926838328943477782184103528066525735833008919642833447424523347733444130454348732030601467391689672377367068136014552926724113910825027018288894998213107942558070247786998017783276290612994566880217800600087437668899392821712028145553738577926877688729768402074607700680767494047765670012065466609642862191486522036503923345268233980094529927092374924951918688421300306273528784914755487339418894321163056244923332149245445643760746591434238245078039355631872307099119823614641445268577600236524023129683026352659112915627343234142325671387070587586732695025781206084091249100843686307614406015643965910011217038700151939747767903748331619201857628384744887817152225909122491251086497528919369431575041490666249693100629538498731733160194496526735029434695744168431477090763559298968032210548042040859739048647235524398287430044545478263732766122646430213493131233195653214912838199493515470909642564551630826869949575695930264469544863971772864084366093609454588988002240888398320931080390684116556526552578289826528702349728020461839296162656919318409175468026648587798914039142828795156698719755818544740406666067656383275425792616577120886427167499909830218149611363353403954951647368777664918300346839620149171850145646533834978364034976626951024257609623673306814668077437585654066590759370477160435232597441744259561891461547633237536427606269223104332823499265716651236501061055782906138786593287000594280636227385502608312243450543240465897747909242740471632784168156664895904034601194941104089556742367633833407468191648191242453155522425598978964388348212569795368130955494498829836645503064403686310150967046594302515726734111685180314501671511950813677464409852591880762590133234882643929998970225637303861546907857419534095242235331826128270183124694040120777295286579216738343641833156912486623489572251746893881787071696226532919324750691548798922195312727542549613516152345188126735042057878508440001178589811719556164180023407323451299774425984985528519987012065606659952170596504836655736020067656599322767411971379034864109328034306240005051558233440023236944928215324519551841807105468569319991135699443013364038078646741117971464751487050650460943870692332232357597119575343270654668914072963540660535497678784949714919853964752949695382918030281052326019663950568221292279413390625710555841490511316215248823003325007455654372382019166578482379513830002831285512369517212683665097713307397235502381536576836388453364271805841301522528296077712576634353107046923680268429545509335598969713539207018926561927872712008646935882182424949748310367882485646437828827557024615165556022086016622177740220667925385821062136376952727171189162346560166535028749016809188243581031801270797966245207235278684373245576996342819374359431373784128008321773606377709521959977621114192740843956219558871884850452930421730919265539250674093719854382839529685204676534773546002207438331699858645146887575044414019253351053061707889930705346210477842847954709021999049030450387703460686506162748980571737152657235675397120461590884071878435293246532013490428462928858550396943940704739261894047169483257951220287677559372454851240874820577243111763010509980229366060534279106547506556718113500827206886347521462547261876911770148761197174111091485155351386421835753750796134662893039630635149691301213688423330060862937677411507270171088873322728424211880350013325752601989970352200417262652446351135497549168546445235887803602772186308306835598933410224596843815120089263089824212879639138425431998791558894027098202053444566174896770044872625572432756966840493347575084086455479489229171713613712644765252003701743377300208301624485640259433463320853588901786172670665734362415489162865370368094933861826592646105709270193361044366599335905084339368711235639650126985950091707806394904920854722935101037639320777136672014582544129046789740709745592514799466942096925932649459304205513243311242426280570236333315278062589651109658287805912001943938094648494964715137766657573491258454770271611053206295867854540781102892279835676013281879465600642195551335316646322381785867963055785138919239189416006538314973383558767418523731213064455358395869010113484377658773573300922479388083828594809302932044554094362178881351267883820275902286821904958956476608581850141584247016366863935743621066924210165301720099981816581164105893797766242135260509827778533867033658454082985847199701609708019750829108450386886647499226756652064084474445639426266841877292554673131854889296730951438111016536778844760542912491907245704871167256804759207471646407561275440025189180175306526324023521861836495005453386486697610508274878575596794883349342449362576089728421446692814452841993619998749214910175784526931531282330506514561092182789770524981942895081936493239716996454623939619407189333486003090177989287140944413193212279972653419719104106289346294169349188528776753124586277025914802095745537267352518444012940049305917962312793894089640967857912771033462629903296797302423152346280899929912671418338847627623961245063484720950984270232657297970432764762660624401370213729803743266605142717744877917816658291659688648879439447735244215770762011555316309136351972972744423816401205981147049924722443420195572383505050077601758435041228157987274441873479686328352512437365413156717032239635738096357748305813673137495642201953864664823944645004611354531749020146908220781957921700997683192178113042086859495494451254742671214736027010247933858740482874241148239441678817086236596299879892318186411137736516058908977261583774996730622162244574454959435976832114873873166785881039100447642130583823337350205513927006521880105539896870139452692267130046807406954940249026486685844079390242781523605540879319062516777499062492059496361891115463431512499816470539883641466021968891026631890709968130803957990042690983799988131311143396886012300482386015227487433962734477122517830629707917744486643015717128773726858304542419350689477266360974980547645456981549363605710272844917824755157542796699842900855881569986570601822799429570075636676838400417022923550518325884165348121387541365033492728702611718012203121477482958552445817527628247189142012393897444075134660775447359935841116399231524102249491784745952193722240316416571012753427963857988175236864335567620923758924495813368319157828410318782607409534185047307680877582976004555887788818558853805525545355630946896896542878193195349429961485641519547273559952010439904270075543649161480189990342803878609758775551655045434831665871556179730542381194564202559598133882913955074849642177995379314127708710420422095679928047593280103974535478825309541784292427553398515624930406839519392910952070084049639525566369297024774420860996975270506884862580303517757719353729795401451525390606585223305814719014137711896805774171881355736726789711414157140157503995977884075013863751163503847227391493018881274286408872484214329326329037091417880307335385500640243416529207847502594283201958111180762425767299337720505568404266873842346084907438697904917499764366135720328397857061059800688831650886236258465193152426216170968838553272453537313625323085275155725586239868418069419798060773423801345415061759986681978328716801492750647485323986609273445544533711866555938454850395746063340211395931903505628616308992679943609515568428453293172935883913955375793967621924855034362372649220190100072412925724222795600777636667424694043090344133511995241596313529022240312760520364029343870890887846520401299447232552344765537594183608479648708724450735183854318363655771331217541122594614687615119021187369893076783292743998884923066160449272431092787671207688726725461954429505575571528676099452227893434117364220028920514343193310421020552931942719909416619452232486305164724579274648205367350437517608299568262397735526830039356933557433768502162485730050973090863465568380329785332294173694080850608643600551069229605532197426206656217647294016743628988879255311925269461995176941186315105371498741979590244830498120808757739750818550046052274126684975836407775821046241727237028098391201693965191369532781811180162837187639146940884771253887413249488638284603576557706586779902156055993393413295008735489234193312155587597155070968817986503068521780983800782381042608085928713093047637231026742273311313158928092696335862479619905474417518016799815111127713891499424879892772384566259910948500456302055177629980591456482164939644582593741420179434414089149926016359166392276517685923321122764883336160398244757733145519831059483128162321497763202517535438417991647235896855983082969370811962588006332115345424593664141024039926557297610358129009452099754283827068820256940953166655942658300146579980671924696654985843715422258838948708291381586217702329620599802934412134450260757269430104360946242701672673930750997266041046933647025449402660776439989192422077835574666956353884484412657725432672213185068054471117653547594984058523006929625690727076028408280719888862042171073952171562376861651131675815930449398154821295494464248266118092954273787597580049672107999750829704883782577020454513009357665447155140201968541617514691360429046943366064006375342824173366392380848399372737607545190980886495895434770534593602484587461147031677967331547136622282884104755728798403367411506784781480446569085037909880626746402441052309919771923802568628888130922384014257732433205197158974675704690152640833823955415885311686752283446150382542375247566738151903444422610439287314923950305479565924250627391499081642885942154871648350213935904464705179183922530495743503584972934944586732935325538857607497173859158434324420088168441380973237551354632021469561894206461969000095436864682626915697704821088961081220148817023368363149546023731431221400142530548585779296933567429950525963723523553563936742346669917575351883493788163376553857667432074561572735791420933660896982864768602893489353842546387218205515573986374406563370185407819145621989452538734382981270592317641390570800678547010915473975828231285533747980815056782877711201461788524776781544346922593940438945800824493296825442652694020264504743872961396713403009514812344251456504569172174847487223859141466065860517889014302223060157337801499637801683541083875862533394429628124124131018894130350947854750376957396764666598403444830614864168362651888005733354606558828579803720894859594371702890920833776232627088691075964503704506081227464052153249018935418362647038626909062840346243111548605151281731582703924963077493225796068837348190205802163690955405366190638260787608026145414081424354012241269394208222728462521904598452467346796154240395061647410498346325518593874899540578817882602906023058500852201731705300100552178762986610550071061846290943968575852483840885088474317779975831484052630010056398707923305062775038761570593353537661700878498380923730890741758858770130838021560910727721806440672477186456076969311285183653173594383014852080103807848468518960402518329677340291432810518598433949781578666121487536994490335202832875545109239220627297746908326796637693613011600986625639190863095352325045447248982847075074061238043921482331946369375562250282897160289496140613964812804337562248113138984216729959140923731609675155876052140201033625498220164552337742262096960769928264417916238118623175890413279924930860514899114240295842925592135051375548379087811261366683464897753666600130595189194336150470403043122589522501775887580435325573101029558133820513226246579120963876229697641211342865602818781401239235295212478848534815066575343674273977522400540205441417812394462803250467970550571924429517400845883613346124320111233107031181152642304020117603655886138540472723658454079236154834220908796317481167772484587055930763819075426211689682006298353856275141361559891594869995253432697280331058624333867721866618890106007246794880830846834436649349155405815129979301212668219584903756688237105564954718883072862846531274813520137103990180729771836815958920314619147689182290380743842837612599758333722996196081619343382529680267188617748663134058136652143828233529637973333396579185878697204169954797703923502827671146972804568090412874716313753890227117177089935916672065304760974686799098664831388969251674132817063554585659411661407949839838708555248167991448678682140601460337339131799381715497190731656633130382136630443903603928190751717972901537144483003926793103000670904660453195611064867195418550059302373992676665475505578007372017024243893931887046792006739340960736987965174994952591345981621187369663158532265097043833871105013558721092764057506023373903659283809012312145129463557046893418817034269579487849248334983858951148319735383349641310480295703902113197050863665608560615159085423505838141110261853586075157621738083719748142570918694036234272214428567468406382349828369079377233957312159637495958558291567548671081181688085546038904369302173080358644609744965857887617580870975994280421337376789007678473352102155300105961066865258866737868273260456189936105950202320914894583398761325411968952343624684727899771899182242549646509846595451002388749433684175097073602277023489443813975233168156006649878824745205852895665586600297907835257163446182013662538696888135943323957982401156259761753932056480130104605871013156998988667872052150124112412238124460955629108392225521485430406094603028834689682686784818487140375472630683917478312754145795968720719161879556358917652495014253891401287065110823796905900221203182722918132327135844088813547150348043342357624438905267230098680616972792326662680428628321409955543105876397308337404853037258394750278285051592085506957305658323240310168597154684470915032672633792160652593827851014352323044385615849496476349960740369787796613628676326059694303214966993359221910918905393882432809192135552538061278525378371510502445778627001724412474489835274427035907939255748908722201606815536128146926898823834877781449792743840531406531739229060846986642825722963284842418554564484762753439502151729490470879406962669774135889472269793290769191996308054092996554303059300828742332701388678163896274484302678308191201128887685769721573982114237227547131106515946343535990666520317928662337955802916479456708882797371405674242705775475871720543083702159890938579714665543425859882949561712664196554149157943340396055722226041645726319525758998709195069066858918395334713881096686905565548933162303113879096389990845697453100537394176056600219396338609235419685396270204923606727788432948136335801672694858297879528491640449188155840721478516758270851705209140567960573037243367666373936396936280748177156893999433786633047922801827086866304968905185686069911747668096929306523029826286051479069822967515925005826057241291645868543419368611648509430327307615961020695490982590160174378330963126874399288289779322198418679120450304331206550108087795142394135978677898608134703966983829211704876656769266761714160937408138349805505822037950427009206588971066525083533743600908208977813137845681091742946350472188351804347148207746321514902231462250441364394001226802218929314499649324394723251708670930504349053333201030822588764517748699885837235513570354256374971339164998585012958894540111130966955025589554506831945226190564138351838166608059053178459025797275237023338778388411047509161357447870989443623200271186384001295502412503846418676921834278405978479589350449349976971537196041077854279086929390923285167205050871032338921731994515944066191148722996721492146334744151037115193279727254831393840553408808737732964197465358683894750602775288762736600992306599341976512147063762450687762056016321259612577290720296085912814613284745319239563754847616158751935827384074732995048008094605917548582166423339163349634145869024368184177259455228893004532808757598482765179939592026789995490189958906993396025190292274527376743681295573951666021239780009405362525320427297741789530568856814530397046597008872211113691438852051392462563270422668329857611415222748896242461420063518001217032885413257460685201658399242492825849057683251556303276698125532898051368566051454071780816572457437005534409373560360383775359539316069533619982746734249787080685487244458748785965952736006537232829287913846467337985895490511475137348197878787187747598310619928363690913923979274347183408408408216517897030628988895740084581307664616373617617231744590148043130378741698926020652535299374695467555309590044766760292657346528465487117809535158664948004134221330117590702428578558325619549673641358638825992937070176975738859375504265944574432757303061697094861113443472884955933407632120275266300432287719952043792402866672964622795733171672970525464236762696551751229388663189765675129975891809644145433012648217375004066982238159713584268519974402819272901025585144510705624509866247880989956214820513485472893329904495249192810484939143882575794117614668073869339766034576819281789312930103048609860561227422522887697091523057264171115228920579388894008088045949358121190615473145404107219975546909785680737009752667076719715131294306806582410124796877519733076071658643452578214247164808261887799063604255570776073612234415234274305627738514914617475811012730073364516926026550590142771675324837115106404521188727504612114659734069899426462823985802912791893035291533440940744378416666004337959552451428436576940989715074686346311207649619411698656286588576182322011899569841632050986085740831068373030267175272301883249272102076663198894220275577769927283768110275861070977174688542763244824551919795910372385235824553777197265273294050178958927667616260911461725534033923374924953804631422081108373986894109801256337745826662278771967604756597827124485958905237921453218679146944213175858697174599757027258889340517657938327165341137177799235585294611608059446084395767260291479733734906700285571182009125802975529398581502704450754215572431683234439616548465753457570894457496714455540271693188818353772601719357977183808454023583102071532651530842626916565335478725194997459468879649250371213333437061548700982294183607818058076394149712489448027518988655297952208078162875843668899768386057424384689416109236816584713181520106339460266944508133674720974809964445887725596917388925365829485072104846095092841170039035152974465426736615964426295380852785691181697063206826223647867711274078487968626666543827345445885306719565310823447112696696834151096129222456240558060103408057040997838180450668782241235795869140286709635660875566680266783502048704862439241805695541624965419603744048869337886212067192370253877517756430766080945835020447922687849443296168274370928435800800368868663654302941847952201345900178094880452311237769909872279056577657351286664894218826565816396057126628605786961351079879019995333725499966413273544129372850341828118947842623744482977505651868745404112237786468221182633289476813577442251335159530080000389277258601703831909509655271078106003883294387062041639139132243441948935316786165114790540089741315025319787507873339165258527643713336428981452255567931762360650450713049646313859981099496477397380242591228100365103237012956569935889000182405606466835584146482188690648489123848744460819778686763133597271523976417764220646956358811599050439262528095754462992637996821466084207675522235782645093319605505755536717234501269319229900567318181644121172464714876791924539757305603914595416125535867751102956442412282365201967950351769295846412341505532451052059106620225608599240072533528765871312764459498157018650094238698417765882382970002317528598915840680689306855638401941697415733224973520192785358648259229747557324901236257266359840693023647229710661791400967535739873851165259699002336471027285491264525546099864082446715041053972251321130794956143620641453927196752368334440750011422015066094903031225465527992344321875656533768165055072674054289756575219753521498444967516749476833447135219563380600448568370528809102019778067530781547158412074025945423423445778618001056421973176823460143358763843776319255246665909148015550011989766767704186483913129830115243141128229734760170648852174003760410374169391170141370579918910998984168387872433989637843229866323739764409886666525651795994279047211577063771943938004936900004182188704870985192449256417410688387036832817051812939852526822564548052054894959579537620168139160683761594396249462752516060840773201658305979276124555005073008505897999139575059627679195330699604223870903835594056975646410113323318710907676362145631444318283481846919012372167164048432388317572476294281407129288188758230409431533872756282349604469290117895351460762190411495789841082659999853991022748532298624060676019651610370097603401470881523037872709237989739461207875493966026335070669515473507532031784779722098471670991930746512731253434987302097950002873950512995381860043219842612643382865397535721225002670200262169739218741350974346080002306685774146530029118655353136143957575849560639183604707514620049214380831552775454928780940864329360582679467051682067491862043265334360574254168958731042891623888397505941017492491187641322787418433112144214892806913023897689503022799372729458168515773207270780915953599911552391863549808993341889947467327610620810352553915298011377124593255315745980769163046750761091648404638629442449912688389001272277666396152153612950526478829663943985350487780506101808815042571391979222320865031981557172480212041916309446675811921557449810646088932368788074515357464080947576443984913360182131382222729859996647534258090208547027494153456337361143510328593278459518922092850347330930377302258621813964251313521112838497156738398242360542063042001121050730128909759988103532932184486827186620873319998336775442794773326718960933093622571608747464521118389360802276382662623223722473364804227307201288128948226918940091130384927471609271291682376395422852190008805891408616460224992396429589729562645760689742659157563091232155365775611748760877691061666496665841606631585178809180709873643016860217297057405686424300935255613772155879354691812009298128342919259768480501647401623245092213568783150680177710288268998469111093828875912759824353507022825602214110820462710817482134483992548466637690514445613539250125671256802405968247320826231227922706275512273183807900493205189353178164232234620581936293960509154992726030281722344557069063901568892780686547769154040096487159155602383719327917915178736840574752717809866464112029888691254341651449614372696188016037263513923511862322925996141975124880215524298818375902282907173862197819396419457024635070871347392870492266155652825907443541478770640301915922925878625315102296403083999970118797650446643831621679227505186681702537345906545675726515323488514569758367947152616832404878037198599486892889239058955968190842400256279200569838320247168854222399437679199201647342888769971955762641944493970052317966618935739712625408360325684792811634605574667230307288426658230370609797316427046986681225424104172820296681408475814898176730716191383132402815885239261924327326750638206350373647895723445377601792307592708025068206377987431375611655437543141026188568575208477207691282071096150246988247243671459423445355908302495259247032402281607791971845329316170549839300429733581349721925870422684227096098386446455146404364809954482318913096781230183028546940810015508178875583690227965911133359917314490167746650653727306530521138856837967025023690501020590495288372362116907108523836118296044878580795335504100052276159873532750112223677165247147185949780651015029604590790702068821872716854089300470533785365967079709526381926380360370228191303171774599673367074992097156287711556571700819224860111673009517841118792404570747063090413986308122431154530489829429395145995144053349419630598544133787248369515993603241702676219627530734354935879351340690512962740905304051502243646628610089113100180922933831308679781021520638415627918944261073085908689702344717958957517645503842565672920090777338730125343049213589556755524873898838921049765472164603199404843340061335909649160213949277137376298023410734143711486450977972149277477745321788352037446776008497331414627586164181631812683490836483188281130079817974283577561560108000384220717553481595028895885576108570465697540840879009378492977946560554176227393658923993413871531074309830321673790866019818010059285278908136217222796185080135775927685162421537765853882209210697494919891416127813731509265069379661052133512920367726432682952219602363948207030455903935003096441482402866718297729279834934027719772002682986785888198829413845196751310534145828857757701376496355474517980183421634775625064932993270623504053406039022661451580981821246035360091945275841040002628917723852473791987008698919381905826225689842969432490058571916343717564941021414441767481296844409508569788318214682965077758374168318045329330385343953713153780062933962460170399287392079136551877299034082291837006051047385639150771532762784283883423096719977528177448471668360258387255427630526293373142502177531010033113122187572322792520734011205560820800950254065306422834070023124046936886414522892243940834905216274305746027845608248020901399417906597513378366463045993581852307733936420784098254226178174147154935845974082704531820484729671090809790197735704197510155825465862107880970572827224801722049031482667764548427291726252112812409274827005398179265779881431801876349372052375395411319718986473609891645262162195247473068072509788640241551912076621775893286100153183466806305593047738519218579112885724014769264013043643706124923047180212866868053563133655478330805746366724597115961211825826834299646251735923502235915513546672375637729609135539170376736920690112062322215876151570458845640021717861770060881278685592144072901696623925096691064469043626720995479687665569023904155899616388890194130041069296151244474939706459856460975871151948705641784635854873109053612674589087916372653079436644619099759303568815287151095842690712586353148452495621840386049090571883614701148176459782513308500514380856118695705894166781422462982151992472670795362718107808394100952303387783173130773114374572980416129415682313496769555270696792878764987244817595340692510954521030999183219738107876712102610800144520293111392399668803873911074448280017491310237808225885006256784284930326753384973895179025367830492243448528996772685450667379699193597323164045310029978476960897561624571899853928782611463881428840673744754123603152991136798862243457743285934151459995892082668279673722388032876682438424823798031522109407731973321512357282665447086883207057032978220619329115727153858672615630034108564188981339368962549815392740565757173787685682447298905341613326609965943737120250925836276992585916717316335328579852460773681575216088653623453892754241453234520556426243797675433349471570513498310548278119380397560571568789742487045899310911547937223542584230680249243958582661029407778577939996231688562201282224541919879274698576905831524268485796643435668029984598342141493341544755312863641942276374364949136212480741905480896531253520986375436188417369789819729079385215474465966892863431439071314257200695044147138460090354534910182889668725151746897163178190025078752976233949687013610524674666698817346256525319264175691566247259370869215610008728408162475513317484989392825238608138804027052112709298680067624424362655031256373796545894623232223886952228479788567634058491080771194939237563264318748063716051908151706910207189770119186526627660223374466787926430293404770790844232598371770082227609291208778436457331347448757075945473366272331758995796791433932507314246425851400787993153600807419950786560367891875283046834735739764684138852187730460426325946695637109059295728109223444103293058964325776772632780036201539685399567421156090875828424856375812653607951070805810730044507610287011565241323963309715948979984211515290156508379866071763069690401118999778327398926879650574957276959179188075904223446707584779478898837177168421653427100141321887655437833391077488078385568842555350697502589697569471149207905099182459327628472049628072087934879113688138646679596003401219600188362133082800047081934611463287796299671943168108646039988969959870639006110510543112795142839479502970054605682386138747928110373310231311921847882494398776701326065941014434808713444375291355866752397517554266831373527172429132635594830296714626306366106207888573920494499482512077015112501519711018531256349370417407181601776340699162607714078928769703413678588496444150177465689269141566257889082785173667648036319897924993490831191214798276438949723767472246433452210225439730955503010583199331920029865760383074780019071885926434663615004093610881362906915993832965051853823443077253028943547336316952347631624474541966426311938611600934205657319450438254456494428872239335326634438008186510895103341059283790208234495950008212798930749574695595084487145351951111054030590709836714114412116999611318583083825959208478278877673350430890997897267338236406479520481155704937864163773935655020220646560692125831529254325346023497982121333150761388094410231395828820302514397833271214308591243257632116065985276581848831751806543317989607243705571999041957581908241262860492791980550611280268145575466761024395519734600608306528571937104784421684387712743791011969833267907495140301956473483566192471410815365343144534690246734659325002892943769686700480228178788383477380770033447944808960939893446331896581838959059443868278678218002434676481601008350116458731271501720322100483835226053088897588324455024893540993131135529096627440539792493506434455372155967685493053779496142885028292886982756243985113912611777538258240815430429256657686760719926390292969045982547261078133691461812843646290321318506855244068402659893865942688276280655581273474063967770155932411232393433277273298113153690062513438756208668844824807466580168245246272131188166105309213908382054694980812412823026330104807998682786355588726303349973338997772248755963259525202393794624659895809640060406755507775287894552546797609690967244583576035282222729372411625761776007304795513094613611474210511117012162630561890199254240582642496452492105799492259852087409096815953888385906970389332086015193478381810524645699073817869185357509036303415807535918108943556069577319498567597266608385703030675036128946264469807139401530738191657761218421636805327591423623178048277551287750803306887979718750904069536271787415942767097471147060601433261519140417247109766532288851020208555065787171595138301803739954778465832204513967828558475013820800124558436511363951997779537030094909882356235820364087011226563014073008528200970042141137453460422576070478364187113784601215169979334778904846208480384154436537626052681163023209465364683986100496742080654548556730743124302273765730575321679218828106271453378070121072668663241488304085856648072659131298484413859241855347783974311924441965806333580056176206996925685444786073039380435275102115864368767419317377866314386777285241247303335668103178375004414217989038333704919067215122922279265363370497625351374758622582519666742176718597023503817625745002569922799522071416005416727515038252970808669284980606350926086878865621152690441112081622816963533822860738933158244299355754679526432127912464568643880223032447906533280209943561470520938406856818052224573735218161266297086568545926459292976477973897999923714338042968263040018544390337969996532445322561803428522271722273259250562131130709688597631605959173136191503941712218410298453897127102817417531794592848714287820721357916602564179447656760579219990886614046034587653739748457967495020574956779564232785305765307712558324653705771398310720799578030827924683311913249461968936994981415795107012345553918400961978434826753920839907658472700250689636260507481398207598473972419196467160198930515021226929646541826586567743733373056108901314436221128559275677265916737293160239857635892429340896146856618749463955395784968940336294281436585521695311160243515407245772427087482165979342971955503859570180114385390511640682166100890396119219135643895172659525503326661315171271063407898240398501167987637121922691871403498003498785525665234227071967398396364375260336961069274312200263346235124565912094111106899020932995445125422752285292648221691296043536184104443607917380347982123173329327188250004247776962763828387528915140203920738873617989462643468455181548720606499924622660680673206091820238114684865230447523380784926456052577350717098622137960449945844665066707476419497412527941431500305879615309788184687119057461917249265188185235019991537117206101815190243535981526473629364592795939336890999578160184930395977769945123751822645575257319974297155617230994330953181514640310573931035462686423215089725098694671590448768929027578329672412897199937849648893142985863162574318944602262056830491389503784298648481079939273801821098646673820680966016351408666590494656405539464797696466415847901180216228714027845814721951185954662655013691474970893843634834816378618241418167631645385075244651786919297867032621952851707151197927777504900361893633860413328581654396005910514254841549949044299754147474367892063682011716582625030181898009246408928836838641126242146509874602831333818834020327222523965871637446966330279090744878953189900112915375829714813535238400675456889719150913835051932668139348351161496122244730412697617490620834959555692241117022670583387062253217455600308215992176077138075325582390561663326514302962513301474212449105111582716680099858546776563861635296114383033577317300280043355624343034677450189627442698776707464349232482161499335351764441815881693104653408916100004743986794622206282332688815466296640011529959227711502940619202587617115317973348056822250045116042879287231752436643756839301482317198113412215524014351230510940973272483761813046326485529131982950345395052126255387441807194143712190064478112288195060127428788762638192314667479369699337697666808247045238045927157106496800196715417213969255518712901033661858462446287326276000250720525931225397221284082844009732170826553801618497890326103334804915694331692424211269919291518935011982883530482544009398521198668323654115321971469863977124396186236003445899136491282191378958008894084538149111366828693619991255592219830586118298308090975779771760252530348688654004511070453323612192993205217427134899249519224606259904997902184936051516270935771581546512670671377408230687982110222015231215708292986554701975841210870453528240051543292267548795102933211992906352929815710577589802111128402680759327910964669602514790303456505195887897373612381842619968268399269756278216291744455590261710268339022810574468788739510707903439282953111484974614947820564990721842256659247277401192022918303532063787657673057744026120388578377700626750862994881824848294258111808286635182839306473297560106012063560444218358468708756090395530560585206400833456641911447743632032352006279957953316671254966552219843075040401960045320912535050245965909249434259332130749389216740546997974901791174719644128845731971595412456775554162432278225287560029653846299960467478436155539388416252878075527360085559001024274782810375261047074319518182045142358129548883660969049686529530839084544793518063632875913030740236581823990083426120083648075012103934264792667386319639528092795059775549310987169659939910791136382805923133508593894656233199763598000360681430849253393337951468231803724773285659098326479794214553366275093298221661871857633068822364179244501897617671261920215753342580986965195119550438355944525414817219304399597876703337917073958959672008493310233181604471973485684581205476681773811604375750653768510760185002788938857923013358837836168625943908263749995673704344503831583792282287177642934375427244344975441528557496257671449847769142959045483528219973431587059528887737000725244844420809269195736729721546227238451029525531389621123136238732686763495155567156332425678502964788402182848978807932219384693279124379661177416186790926716694065172666507797607652094653410733348940140673023431447234932277371991038385328858911312307597112042181376453134611445903991885979104429231971197781062426635088664624588344049944281339984083818298894971010035470703722608228836188454147562891543800312018582408623520334766015104156635407145591530729001431950909040380451009455528625034268264599983610012649115225727601743635474785040399073412326552983668614214446985434263400304426475583390461858444845677537951541792100833418814350655962069341253278618200358366153031180350875000339933545451789259887237200747144507579066255868755348180863324123122912443946020698497662007736829675519716065709760569093586055905685321335252296634386975667077393851621609410232716431534762456065988561248620057010304935628479399351151046922101023806138525649223197764858721902450304641898691801244747313063144233111534149345220651045036514090458253937778999805852712636202807315858056619633301877730594604320249999536362331985351164192563393221533974398175794381229552112639848439017316728255445630321195583420161943688236882694188887978863396659992462599351990866345149833698576124349689477547374818826476603107563199302019193859562895731084281713110451601882555772450030647085748188376692770422540334159632670822949182240592544786618508262338305470755426657753794926657216673873684454475315006092918464390226137183512787541447762241082109739888201756309960264291412006814960206086279850711867002129357114691822627937823233782218597037065090594641607897696905306304036134217475490906901410121022876291552621809312048014864668011505189792622759999821455199996013405438540903075378404526020569365591949905554176766946205133099180128768514115766875519444287775540923656424923098999815956171571206815191953640932971983615924822188862039498587192803051397618673838108607782563786386544985335153683292489504994818474007999376955684510982117145562355106001600978561056863304096369762516896068911174014702436082868464554138472267889757645766470716621804344752471062663378718346703128107136628832272735178544024627012420901915843380076308181620101424803815982009579092056150977353391349735442756320449168281913770950201460317441109524875096932984652825482567515227934277429750916851473523134624281461404243392519195938826791489180255500392461348674685278980266034950627658414323219115724792581063420439900953690130515304821436113364963502926292060306796823368084595607000642915427732309613843011199568486782402738157688615256832967500688790544278984280268100099662484348216505580530308606473227379631345775113157670490295411953812940940813823709950603138931199760282912229836487891874387087325270496337924598949469694205153657003853056338648790667851894212988633420048213311831272520321716423080497533181423270906775202801595421487543021603046051975280052945135979962025026758612222632362219126611381983391961330524820180055047984687288079862450178395944908370285293964642575541908473720018719674527875689879001672239513586550662167006860910122440760036818693615063039938039221169310008103890402042671991769054626717589075758289793281800499590184836859288264453172028622978936542236097481030046785025736386250551392408054763571223660805406707562472838769615542680563670165380615427698066194628005412392853406035215470449859398953208043940393198514391764347584179492771543758640851013046420756565552888724946052121471224687531369232606502070093988767052043417644634065966961469204506724442007093680209872565718479332566278803526109931036897857105483292941481127397113844690564727863412639834407181488556782017195980306171217101241771302272181856163297849165650316132459906223287949816257770772375101293637868773194287259497525655584878213929161312537531494838524445464703188496128317103137357362811893128839106005985179670174147370414585540079019154707459079438830918642358057772949785721771331086980205697187734231210516682951098680427992971967047263603823926539849952724512384113793643912103993296606470323105198991486776540028591801486705469727362152221545203978564872494600720490470798286712340642610339410521372232626131573665753165831559973640188730063151524653153300528592871569468751242610025219990535746064713689108888232634360119865956469665375909331724694190235484967732135764140094414467572886599054521987765784879667945953241123085586051904096270530075236862382365952972719327421157888401455139898954046331718224672294829759974578071925372058603438749742812485899582289812698886663528656422682234315621165097680293005039054202638674978824455504976777741366581271206344214297234362518770292124867344557906711446727880911480690614184825867615325280351593383802512864272341655025418379180303703564750841376295459572214920810152684519845970911408697680928669208293055675121349136469260308022336589463721459667994806957089034437561604734870757091578234150234919755212408466129126625334142202238033416872899433784475884712102378008715256298544953554067335433122698392603680542720878181671701583824428180572837754189302992983828925548786856044321749931591553780278897230926441412649900685744040500929669376872051235722994978677492566116075412792430403808331804979331603206986569644673934543981881063405779516154200226847745140423429687552517498151869738398577084269279750723216951571758456393417518744213486122945050038458924463555395534267270234123635929020701903666597618064572584956972571398482225032266057711226816200012564620022500622618602380244658730213434835658339498367732146434237151018718449443689041374023865804174273555218604922766594556714754214518678482846141523918606049251848986311964224495303618610806448358204654594486076221793345915080429088086365981550645018561458853575578457791841245037591150441693895733717762298055415878598774619871827311136572746469368657593054963661022570319321666171016827972139577812699043522624145624315876862880583278855389374282779558540643840091836416457940685407120875500114005444918710102490588986585634057204366721087863451125830861542265633914133891788008959261137806590929384973382617740086438796499812333186413415622607703178714731945293012975305232001845269069497791751170229007783873315517626257237521410064075019701174745309231587699448419871733637800759810500061515278435908221596365220610107038487543604060511553417633701431743948758262560398422002640842462902503967030664650415893548072352733468048463218211243314112845626943705903943259834648802970657770430525982776962502146955736681362627864259090254696421158397372145850554724961386615837360675786444554571233585768166147578314279451350344396889668056204060109280753880846587430187779186676182523844862948006726939294225955046792998958839213718659147135503158201421847326501957993320498284777543566709563108754692831288694386347921329302478589400143577535594444909291526997393678354364216959362213981880737966756013758787325893339040784449514357248751750227074516353003327913714575068447977905766276002868135938443285496879095076489864641569036334387304555243275348000569330842911416912044227385974135789889271115815702424052213183983714383063076935363702349436369145822664737300070902919777154347817087211773579714071488033982683327159005134959691798125036062915510971107897971003878743249860536831388620806339042495809664274397581619046892005021062358182221950205222166518676696487339718072171675959906548827892777197982540645013714710576633532435864689971228313829748595631138682490755456655529106364931745443076193399964502780919688385597174010484139996264916383635837899733109020765507422368904302500143778172785665728950555442908687605338667931378367277413045748157721569232493731421406650120611928680677092683526136139001575567987578798383863863022479750728705045636730482842687175438698333771054019300736272467068450673121941885953380059023198114483622245122323344511022348178146332976264020838017578026694136343602872136393202882445371151861246181950149746016690539060471547164541562092208955874585965879762961002699416983691468278495795683069057770992329369201172713002810594485597139428092042095154938508723616839593972779704352813027451676927698395687327407873142175216089166238327158255729196795872928854849792217184388984232889954589928126669786228229718126395137257287427543723396423496929482859796922638623727323844810230440552430148662277244104534422027917776844929570797553362199433773896787832332679283725359438206203339479812605027369398011042976379548159953874444392578867000093764007212451266149669728472635410551179200262165275660623254442678270128074803314461101769301507927382968300044762821854008800844010473922595674559972669627551283948947738141090434895306035466250045171719761268171222099676904510290565183602316190624416728460363780904271679197066731769331478869931760260536104909107875966092518125110976913192739014546371600793024069330175964777643963525246202814921537177621945362576652542999255689898976366455803378702302776241766165032184624359670479031518911222602035785605352610598608345829338631225603048700651365686156035223914968378695837453673129100402941944112828584608759231830725430000555172540728240310891541688122847594649651488894053982124296110597775670651657611519852276479018344871253703939366835718679878781243422716882717913081723918544018882978653692242433149865525840795068085555818395239559122102482423988540275941702427850108645183223160857441152522694347067643405942134171546460555419379372400916425061281314521103822896221678228641629258468982595407104014922667917837796182152679849346151174154644816886032608359107526903999889888873275529190072158627141420097308189849699843372259230795286053565522498209585434155042543165622302033544327516119553986764796555129383629002399708100240079985706603865128132882757363160433668665983867619983255390137706790389321911790134936983324083240538003900700056506777049429178487336698688148602440634393830760977180564576612047627182654663164254011673570764828804797074859620631659749791369100140198791399770858122939307873838723349206978252060394193437647272070377620284808342989905840104107526223915049596124499696959330339571498724605085743553684492841254614722857349745851669052220815265456761645258628968695586354990972996320706487162460557304195568149360873459277389292034636250228387435024391676722205532770016119142676171506165665833281205553812008056239721827230116596066201079820696658493513852088021176802054423440956669161001531122678430243082667986290033345627755848408537578467483598216485136836993825626473749565856517217249594941525117711538327034817489183732434935576056153013111826617079331746598780967695439071471657426120561328556371805376816707640476391318648608239626812486937578059088457178565787542738988403979566178277865152439414525354202627938543965363907086506559924354571288376739246641725982101385759526349759833819973816694813811930307069696717640188398231256964419968762125677891689591939118874672915771786997975786479129192323100012645099025144496498488182304866256151498793118599755944768690323590730776522910580811719642414432297010901679165748253242228845223897773775451917324678092776415103368795924138127653970048650630154626509617415111141423690115116228447091049550589798171447656985037188218813973809842874753092086072331894986118385182384754458290748988703208098639299079483018898734082887407286270385943836015737844247436170331471204599297307907156431528445339406196339655726405779016822266595245800931660131146377308033946283170976165359096460585504558432690966224724469788707744779362201209915440780877300736004497140137182849246151614951309858353667071267250284071895787335988046875261275022725965748220561988809889537878444218542139882224430091199428204611958376224947728949053405192937119411368687057294726303613968312470944871224829531052941993908012949381703134068968963500026499925112089908588979200385273436728948803264115505691457937430515079464130737948258378116739411807973596708456480537135274106360810996574151548928123844391570804141225330440887283769980040179213236482377843772185492871697829538258998722620818576783839096941427931057440984916541263278399305125857652180908563335174715995582399996709447554427047184948376802242459732116166359083354846316156387361974052409487120054785104652789730326093111881517925861953209189912302444642930385985468632223921199500074511066076092969623343799080618387176747664198465564262195509180078846180993380447380047501430602318096169005259511768529625017963582029633457280585019714934508629304631722614663055074237678629934487577352454721916352585244054414669302115924290736067363926108148431773146290900096022612918631095817458034173339898818147364202704428253468260618375456651708225618446168635709555775834731600486945576885528318157372114213459236630497345750513705936611567675309592708626652368974016145519448647622487310016092972901118696530960984344060172737818804161695978128144503821470837362436278293627329400404042646772718282332739854006728566612917350015343148096891083883380058942242872512269361351958281032325900779706819950082558497872354015926569187978319622559289320549701823236102596317072361848784576172760767530535662722525977336626542736973247302379036316462132688684242915695885725629989228620175637354993597423906759509644126751836989475728177273122530583421466576423148842727852036225870566916948387570431998314028735990371651443182773293067578901929074154009910988876635007371764512855946361643094304131027499906116382142340780550371430347387135891379043489657568229847717049378391982901140023930617095069446367679446850871699821497119756786462118474047668110393760050225095309202760038425195109128788691339788193127882406939686420786713787225646209938737965146727868370348046060425328594408030115628748316036354506463604750965582972562977714150814597357014540666760530537500934959179860852633895086145864180128208845652786424692559503107250076821112853343851768575537906522435190545811233458084394668848861875493562891273727557784965138464487367330724252317021463481686948488151670256448110061584669527745846572463011990299173171732057454516669352946472736091351011041416935917338164403965737978276315876199929875264869501514031649532855881464286784097651901472298153025518799108984038115179162458606017280759986807054733877886593379859159208233898140015794701068736873077534626248013940256802995642802627093664403182716298610163536698372429024881959374500934413669736589508182215399222774367532880949003917787595607044972022214181033989843851247790107961350185631949610938170782347169393964717841438387231236892875143475076993986656113392066698695804342563014620865857184886894004790078128992084462174491992078705373825574608281312390192091533957148841463861652038982279712347260309186123366707280486640777840831081013228086375168847360615222008249452400475725113232839752370836708595474995654116394340104948582879287424115915656410696502759488569662115197322291406450880738121168899615436771632002882688077572760550009594149064650520870954722850968771393149345428560654124886143157489118951120688121296411708140118539041629722077858658657526820337611436764052584070777638318783617686538869814305711914009006243502578506138439643588079885241276249284657643232786080930804479527920757821129688476936036239245771798806572333270526947865799800073359381587180489511179772346259588824062943666555758565837952281076613037705870928033236919565887690006210336039236578655447009328992665346162673367505645961394112153204994351081999961339557437322679856991516456729726684668310927688445378860258875266908071096373294493986994198438642363116524190695030943550639520700439774803095426177074533152797589010801633342231970267159812564634456090322408948091882255531910108910976131049521978650747885376828992446389224421643940149443635341991383670445499464231385295683516410074131214563911238693408660586736454482759429270892973048016282443456153094060598767895922518699237797397747314995133022941718145917177447112564119242207221278750682802303554215328158228741345671490300865243861309195555922261019177930713847739192551182056867120831989406347492411757687695844881859147296666740008882176805320411409316092393645168513388609234601020945108239226723379440163534993016520955413158176243240895782085752631446781150923111782347581413782319114764851796201169979131263720908153744748618701755687638716875255040368619453184771489916723908916619367832494797125840746913295304298385395176885228722809308043403102657398889320372626370738350327756877031113632418949627733437205659220654464618845872998657335033427148239882390640816985168127223865909956206150224002771789142531962826401262266416091997029879370996503413423172828593070491912039885196419142706210763630917111408835396818618256836202070337171142870362371761989995581772032446032241506802438492684813234817516427885733080438341573472368622754688323862209924984121842532666545228307608734165909058428954206294097803325307158430076310147631034006017329219405314403771566262276263307924104996938073914219532286726612601474762224544317848233124412889259937661587705136518968885717233177057261413845424923624849442992317953302451815162942387002788161294508287472390605425120476018834602840266373736685722449595490900701434692562592047129728623789596998401635751770163872422984032977616389599965564346623345736907520148309923551167050318638902852435379369468876226879654453955076907901281954581592899388521976792849720035588952576057081012558724763789779198109821550588627778471528185682921827227594868595752936644477660287633555568452315847730667059964300934563989640284743983380841707667321923926903068545895781611583271728281128389942318559157622812115572898436152096743624763002909309374367371695789045064480413486324135465939447089910190507824080134118414919851987271227067332077166513502606416395905596811922008067923985296898614338179840387940062970259614557988999609589998530860357640384578297733170222418398703376136673739711204411201668861355437124886908765152204013741285575360932856744265226416275546582571953106556048260809755966142203579688586040162424558001578831924403564122526943122000872018989103635034132845133972511887375416795650064595994906934116262106181058991921682785107201034587319958542812891029076482943720036312508190715692978328790288988635573404591164286901174751028527033868966702904216898300263465061970877481698142998587077077732684977244120657303292604852143278707040010903484500306920847927420572963398753471959892202971992104024750440852321093669992971723722492218035555960127611434068119030766827912360837323390579721787449929206579915663614271873464040046890395720986967773581698979603040182485146363475645861273155698046240860077266039442354214196920124293624574892064106993149364690497414659359204148762619664482367369548041846577768941483477175989700639936156344473680038994608727373774358154477521522632367687102754884709620572693545409677170774748976621647263628356561558422566897769593061848879609397161140662280582925070786032154930692023324183828446051848854880433091097198004750096660093581995923774470519011310195192918233325152140959684995161391998915755477081418697307773729064213677826969236053960305012482617232842960956438411825372033508271405420912922562955414698116484334455928062009434312957236031360476237778058094909664838711850148215288379882959582573811126640218746598328730816348541973674099682022979667687948615981272641770154142433564593661276632172349595877682112702243374512004266207553815250021858403072502959145942934546001106820245549579020220785800868945217747495193973629650298631838434719381837897190854891548525545115898228943806794260369570521060209386441666444145747696044289915341810906908761189439521658544182065624696785690869925456507989316308378747751614194581773919274828041352356281810041641883908785177992765418360237337228039566259487025959724345296108740601609003175714896240857726365258610139751166524705098467039342927766044776412959287856351812954136607664402629582149058217470529947709351803147410449551318442682126248732047950539537553637561153893922888434319258658191476524512668359804984098984494558085441503603016618960903615516643696993849461589930825746927272861755877228359763449918649124577970579045517939415310485959488933542527744443589158132431160876603576382123395980200974198372501879062767936901462104370536489173209861504452096913235206117385457312788268468304817120195384257589688900321448141168713074169704858771677799378526821556266187259528861402949674276208524745264700438632331536364458534051956328315981900918572092121767469236389843881291822080678702857563449872629256810158338076318669048054571705777129033880369255453480221239026366247412167897492339051688974389298969979627132633251960823959936507284512271584764972861579870002801246538915625509332800649445179821409867440580874282690241586741423976063398370169538545465763581730689288323762069532786201857600203929394222213385879280920379682288819332845447035745456942484305336575022764444207304242082840688296827771750247290982627662687879141203547438857786772581421005118373255948582777651089405699159422289084189259000604402939304397107892035470987035354327827684746666373936748194991928285204390774891369076785349324469947725328650911330834725299894953433476697572377049571907219193903637198914586880336258101867212748565295017015798713062718905564499979694584826872998072100933196893755436906880147997752292558170628495004902487849893420162782871335954077792633427379898354620563950547422427895774542289915455940899275177706853124465338977060752590518368843478721934150287604597420336720114418144059295719596520373067668578432953273428226161874769583823502740165173145687084500027845613521923419145749830046173377120897893890740823050571855044771578985527157696480791582032646628000604852229429281626687930596789672691416865959976902318566241726878900351637955640856528629757075978197245619197676306367176782928516066699714085377701992382837269659295079429431177857179174840888265468101918607074136731035475858018520467856937070161637313994975989289381307609718004201767837971342640233013590656047779728726761833474640048922845734797612828598500160196548926112189371641095851905126577228097080235230678008131682498077982663868708353178680475434043166503865290380098757524185810344739263649769054636583951616126138870201395770394058812995716318961745358283839007029045576416226145201436637544422672562808811037861697168161496516244216949436440517218265412389392130536571080134464346760468164518409767890940187679085010313000601398019568011910227045270763469584629204885273411326638890076817501685964562214368009336139260648105707163676156484047731096038138289139052954756861132929413581671004467517489461056329321660215152947066024578288723496890310187666723741755102805325368226173350610517638552074086057198388703252719932574456336784498909434842746346326138472156837005495115209145447764806461386431904052254083626086240976203392640313919399706131905625838096869860007132442580960675594965403821460009925470989122207900682377832656038686442801151033323187784223628916971634676355413314674805525137638395704096884052458839628215883618771661410461378070661712081647368578916215402292880034774574770029602790744787112032475444031087575725722724666388144454167962327326519465355686116978696652817828396944027308769946088252531149987281329458362247907902108963680823859637226913841125940356672838103087673679207000569715109015497430522898337979181701576937025806095666046602259455020295400246580215664553203862275110482257166223189563081308281859746015229410313269645407841853090614232856185376730787830174827535882164127729790721747558698188927480346700477098538449384967422304748829581896532596611064086602334701150870308066469431533336194011559166415501661052868948474668753065303307146803933779488053196302760386462411473980768556777059282093118373933598351901474088694246827814104382750380619518412380943350648100458670975985394861057489373066424097119260691721708913292326562890142442492517076246525475939655657581853467282620991761316474768524441776125120383531539326594798075946694471040780542166949930426853751143571274717960537212436967607273514911052747816266878104416092528572832805889480836650107594474104261378936477474611796155184764914079816025825170918147470866946634728354839938014033147248312674819808895472549304861006712978650661771618840985995124497638437855673915121392203498711166306164388935750508024832343442995619557103307951366232060866568686886987561983002030182445336015088438860912904891848257272970004842245095924109945685442004326730149617547808000151981536507796551631597530119240903349516708230473286925847076465168725947810077771114115930126221680383863742905401885851261062341087754528036749075718836473068018051583508203853821409538952631238279539453977845428155038937723461102944832870051199144037751593990905788064703463566427430141767892179653925056720380565657241649444811236020214677853849756861848013112010755172604884912272646209433649976820235607938076585758388819993437238308548402619234068932132579173291958841390625837872979177934514503316341348543759291017372927760199645716541356691423166022054891348047457127106234998081526213345982829902045131950836770055232862516004568669688839470975662726284966496464042784975745483822429009498224021628927743736958280215505601187356957333017269554014622613488326913006631254363523176520591559238900678781857461571662749950745917210491812005865666796180245881608926851674902601649010046121698335646143034072752593701775785419002442515998897420580074522038920414716560194333205889546513397604881397329151939252331986514555898988006368053319110916205073680591804124243844552069128490182032389703100885844647757459392444255149276763982914089131063162888684680238140496988384222146832090904581274995306693860814498161162279595046983606690864186985068377783544145148471728247576748577549979503896327593176146995220723032244945337107555900683314510234328060671643975991874769486497851354616840376172355488869754602629107026803426436359317813303068665372806659468283107211108211063547263334562483720559420113143955579216778731605314219883488006137090773518111248319513927489046408349785518369339982156697302282343997008965878552924520660707253580347032933104397249396775990870204338186473265752213163715059372093390888118921247071346791060182722957109743420210833356509590948780576626178223334068014029315781309644909927578433180213254700000859711059661767591939072547531096957314202653424795853994764845463845495113444031936235222084899915898705451992407873520135828107461186950690469321028535532145190764910636076132928544304618478173917689140351234400109131532039543413933376605080612641398662189983450808913650300300047954122646019618995643252907168381138399622732069640130575882974149448015633045876015366873867565595829535734716316076519693711391448882190669121270201189394541778863592386125511004121237024595412177729214197704577222999343684583718156588640071630508394058986528856448900377020715484303265301059323638448472171895644151281118479607466937245350952414690078129969492183785161693114159981798096338076606784503867932315887569187940864605093312573651716819964720001040980932093259578610348852367705283022002915176704591844651563564046863877537171583622862992994988586276714888495014417726795012174383079525628370985489115274855174223821348462203996709363230287798775867049744400714462934201177490849472553372749355946576795934370264950861480417064504699836184930474464615341898501235326527048457403149028740090072775702575963934658937691884300136808785653283257081846344710336468824516973220174719931383227924941468842927136983784369435449682253093261990030393653250134134851259476879419067231003852685289595144615309470014313818699841446147391080910485272039777833629629800383443160869539568690197684406500889238030934439253805228641444008533146995205874202319205430040900599109721711382085706979736126756415186200827287688388362213658570475761671935869122125020655433071349422448426736662329924623030476666956637115707806143589308746465312654936646236450819738177589314393934480103186230204094563160896401619137867015546996952901844725295153830078269905738672564157612258165869452279368439238665863594644398244687449996561887211141474955528898343847711893784606362342287488439974948591016611005965269828596847301297132923876445402641993973452923446532913074651900378445366434375377351644647302839717618970190791268443507066256343840102686878923900586345586200237166128584769670850813623131596699327015159182544105115801793080687306526812398253957686600309089311368525261155807737506606275628176647749821336858528991322129987448297678508878630535645587194938676264653054601559597511755282777706169108911079341477196867701832616062514321332893154303354206910188829604436878851797222093789284183056576005970679810511401982416229060351027452884454704746391129661419222026108257336650402762790464286421354921920121525235720458281823792115895814347539518658837534072389538636342939578468669390844944678727220912940300900861047401992077383634333894881466011607210676299704315517722443625326518240941802917950478084051269472450630913253823532947955983853029901830784245078558191215186972840765725564304980987128292392247237711040712940473478234038537574393298143800573447334395394657137767630504590405361817874206404703798605963666094750490784515492744956968257307588666483574374504803825230627273758766463004912531817557113642130848216596735181145331316875900654135182162323333665634891036626119854718224518879390144588248325941036296312443454129338593749793810040349745921846552551223713934188762813441706499881066318996444071705455250882086719813710349841475755912867132492122447769745052580147314792404165424639295816299419918162775810072108325759822783769665740569376771236876579855512511097171510728396375165238194134854861074283798782543954210386341071668945334525990354606765762316102500100305028680434793037103824740343283565161621670402518909029270904285894714578308606643573995097018748984043387182875798810936846570033886510173366491655325709468125926234852202266124106862986412106281243029441099742437602238352637674799111674331854380559863827248949796977014272473467689414601077928901819612289123916763449154795948081494677699636822682828026527802601477081574083752270791514487150760380527543430745826295576614309994837124337795894019017913782479446948535118372323647031580322356915397663790901084451785894234020631473673999671810079261428403229976466838355740017840931325848130243708527730060200786019441597737691078072559710793578718171309077095118898979987916070839384107468020402961663157248304459732183634470663658755511125204277202186253450653415208281219748459202862908390815227158443310242125414417463526737210466609154245239071700254232743824029581925694716378284409265100563168260687279968129440115095250867644027341113849145048815065385751705098345093614650352537065103919897055128871302281319630145200423105658124175861752543828707949018060711848611010758807013795757637203887616600778490969688570712779085891576150591594602580151371233670444368349014662889000909516871507034186705401064106588054729277753199842205440371109185954541652918097237858772447058313954392474530743185200442195002626463151549026554880821351469268741556766275143137686822497155880010524132862532720961440676418868579564495212661343160311710253987153411492183163824899896421591121355117831959253915786446959489681799203569890786042435398859800267382005269556043781879018804501832614343604842344833654536250077015274591114495023555103795749444142652329526408395811487719688269731768840367459102635277312106475307999500474632426028982392773289143539791103586779269313632781590152742830255689756606740051446128742280798420774419520354343581337107138930947512162804949150449982377716237990831280945539508720074840295954527343724742126703618897836900128121153053164174748042952264742248889203041195627753311412759095194325170508920904731514535584162250567917567184439831994111164054786009111246458547122421721869250995027620555323795553343843169082263445117274897853910256481647471723644870758769276413240491325170916432729495705212841589028557678075662591423945314160486995446057433155589519864881524162987254385316155129048517494309791075792217379100036491273372299097815975672965910553567153510035788150526092512313522796749211753267571930568967203931598515650626676290413271940545712815205464095053206250962958761484788393068388412741373244743603151429795153130032980989352032387936248721353661711712425684458841768267276996472395638257094634815688070279429397420591397775234231038683547653498614686550385618685806197322728030860231201227135078245921769988372414884925279435194028552527402930402267024276942712358555279174490142635129182453140462043306289537438209786884272908871857181547984679528108576559836628244418904566398823176116417147467773330748805787111122891267358090538086474545385814920147694616085816239233051156501643570122811639374294202288819654401638055061446543904346652232299423552337953984056008707388975468027813526079501055522458037868965675808330412640972745470321660783274925984102124774086446072042639074937368192038979996971228219854112417794118792535395525398078245235195387007137160187379632237028777188788304362469518825913810434182016243612617960484356702351586983761715431883030878033419258739433802940839423539473489085341831195734606544812768569050508819289501233944546785359433659867628271786690672074549908668564784708600800513875639553937276742638252042969820797161256855775571765084363849856732949102990711445539559430290001105402593625674125878244855184320077203918503383641419715470979577732553849478537641364232102529524902643531193457977821371794977911982671107291843445661035739224537847016481048798905862461004752894801826802170308596176672418951579798158074344626525334448392532188251207531100109267202202841605008920654132181172882505321833464242599177559825483242616064611475212609664292576706620460476220167737539887785175692843062851586697316171108598580235078008138959242092330814358581702775927430372637007723537378736536856773481506626280451989558097614411722475658641268372066900490099492730230477293354731163692756645452506720902605607818983532156715349634559540825071846181374493301842869409768528783092895047975760140437212648562047127456166479702440176517336696926834893409256161275573882445691518650204030401892408777394353871120209487965904794097062701313393471247853919686654735446901414298515578670304460054246001838921328203715319367562257298810101641292497267412434158589872736152092826662139813151850215103066518858001767614955360300428425277222569261353388726443095535478280413216441438762953915973967657084595257454130671861366308417046970447749529096678753093647552582333003428939793762980043036720029421489661018075405288116542383729865229501965170747170099626116841207475574564091640937387040201025230707882496531241071209951717546174796069620294021363744852020314008324245306456554829358580450509439700545411721244501955244256216671682286187176378836557794447723598006895763676824373955820895587778295293105387441403317003023084574674473412901888291168476426664095161108565600687313774820841583531769219443847309343069754957638801776948353081673420538374191879145223224304531374608489527599218720614490496462543007658467964136929810002797594509673487518912435040591816019380340109823120758680374082383465335963237870798272635705144409681104694233947288234397401363280630647884578935410090107747814627134184586128361118957740428314315240229110404517512918554538618856307483711264792325721982186708060948952889023881049925708202716580181453427409583104963690654261186527480199349032893110143032860697476092137051776776638799160258951651912655000827890886506972604110386336885291685569567221038902971546111146376344790719903295546276935520960949927404673668540351854226336280656656172252183186326126007338956652264785986378640624851312827666955251348952870916531763882744750237995668715938934972609190339171501526589029458058210183334671534843056541518428869385277347044729837262798974167562945086562325480041490112519183874063967579891545067673092418896040571194024788083977303682763128120329443730117290453134424221182962762396301286882417500102063299223849894818730787164406150163029183096159659307538663904480702109599001051916056998359223451195538271109599849047821213237971284520658042683433530302113404934689321551345062056527201384515363883465535499485958964419536997364144020006661536361653390410495419700544983645352295030408139016080292945791658678242192146780197285716640229132009517812065178620418654161417721781357029442184716355764459670481114828729018753797868656398898452304152898816141187935446992048889416521274914674923722624653025255749681504773710933491389533528893582911793125400135097699243674705429531348265044209307865844877439319355084040072472355433729691626913110790843357228652124993936822081833756054386624741051379133960896274709658106493804117965936740101430457158086796454637043875726599603725764292124052217494214117864215991788156362845431085168257725031359670170045220428690295704991684704018170571607029841860909042354674497785012520486323520178620680454717384268069681022013288415472993048269017743426862496393843106053626306914989546732556268080969110671850354917914210695814039632489591505611728370339121127009168904588007741013839990881382535505200621584866081354692141536698047138491243039294161128523649738681552007671449292758475324288776881051144871171939123276886256031346252805842083611878668374934944845925521697057088355754405610542373662738740555196606705483778034437599987975560545330294725631735544876021473536151668834999663716337543576098621626459123480099926853512915847635034978758590983390165878582167267133001145563140124871566749134148158624090210839280614951868162583729931507115737049984325590221738528101500236640770585364428721458381618205311198843610225661496198187927702322810399141978597758845167284240540753357296502179137444176093878448290693315944754542327867022708359202426155605091757984273754746296449098972595757293631357986185230427623099403145535716128326017247794152634150734018109841671325847566657078493428593954416978627662429676421552784547928556250679587728741203396382133448082194739617205288938770550680791062796830139623097135310810510368847524439571783987193493132537785091317649474226873078542741479508423455247906969674485437455075226156705042957837040463141381325001250627748126294373302377029868087100269655675769778837229352617177570838056471525249187863095210336568388009616463018475228356829377940070468313344592454432584077039221271884716221235810316412040518183752425165695576886048377975947560354672566834926433224181129834794571969310767732815186987820587353521912441379228826101580177911686328781058195863734625081170839547790773931064754342184955831511748243868168418488819751545421602960577659747326818854565953662592829561338026436331480381532518093514956060896382193088242215583411545432003693281832068731266253388160608069447010519260706174565824816973372840787250696613263993289321728318252880252714488406573229744545104863161608799252553590679989470132552569392331002113449314236720247947380556046626507403872229859939252769424462183458363282485843246771927648147665700118384454402701806988544088015456562051663844154534520187007939232688995584466779004986949467541988813397068764516051446478221850843386941577830999766070624794438439732602680746943638538094724745484769595652341003826170360358189293994129996119841235445089648151228718686856945422751338353792864792583368259724451141702679464438634001228679097939475452776249541625619546744809644921294947243431500967616233208179696442766366800399516085056533389104155645963356590861169940285796730410884527453377042008940181871826562123447159424435637192698664650913029306402960567216761260830385184589614635010558888235013820658277913904910533015886845169649676557484779962554672019835718024210524287472556306813642381707991443495144051702413241742525554754356284265668956363671690321581260691332314761510205098530059587250205565967457191491623430140489292500701639531249912202757088512485893045132560440646535087666551334869980047922063650241056986331409937095495224113088906893196265896195980737660889540034445444986718335607346066938269537704120261368005030895397388455361972399090596456973312597498738611106497925484439082176640084186982306234240730362273887479363983525541619850176040592894031792076174942759918134312412791731243828022664462384094990229007860569499831913052772814927670620157855286244651568776846682452681890592152713524590618380313748447689168070669562039636054858592849036662891644766219091754163113324564586649592015173346396318179971438611350103498129940597363128987770570751415357876508062710713839191237064384771497336073996108364899328699448696558313255664881596275433998651156552187085267781185487698357674137709841959203664799925633545513348318544344938426819414098191524055066822484866410674220582543578077807394575981750851756031812281933011351111506599530942582902571850442892110215407560449804307267378919477583146602033369172853424211189708898002625772828998725713248826226235914507303695594793555479263272698652855371790173836262529831076532140734906665830721566428544706845395767665499893049999391719207047185197197627581579600594749429745344736915306820936294688805938320598722459835287781590796295660866622755577153054398004550289859331470672786725329109733931433606328671217595038633463493707834722106672769329067464058284945190256294548616117343032275408017924546747256400324984901716487602780197966559531634443846732010404708709711011696084523680514994649684795287686931347083069868106782342742676776436017974108859210804944934273168564885260026049316176782770709634513211208436454303549009067468455157073889513371915433362095765085181375942257740106870589132381794312572980116717182040011547848294109476344988052453893382729649948081098597219447433208239920644260779074931165819808779795197841746585515183380352487505962290986827577810622716660838577807112536399873191505409250294326189778433760940066679730463941742661407567232718560959654240519903010347008967962550442914881646677091157048940983126950116263304508114199556327465462492329713545140720726952596303509485186596526683257703448518726250359585158917857306726132930981864529900988745468021928935418231754457098634145572360600983604307905044021497434046080175831263094989391738269951843732308804537685304720311048529349278748842720977796200822088053542563226745158584985982320773420548165679819727854325296766557781474572965710698167852849051515194623456192141969864347679986280933179127775410435809185063737662672475938600412331449538516479610818580781257976012621136577066123029300810653055459234546447530052120837476860665357562440928704515340775109689601214945981900342713055183442375104039043631723240051907447554916381608096124400464741477707024814428213486801722676871061428544487858279386717311487077990404471405720689985447364430073392192568261614776767869571790349033993235050271684872157229235574279323819784609074039765109089099333115790352369876375274621189202458537122375622334044090310666009496724196252931784533968817727202779998327396002120677707118944951234024313542822763726537654278546399588313732136302214165356868658853129989773903854692916680431533483696298795121747097063040763459724276676542479534662974324917174714834180281967932316350778287581105003974519407437803193657016554796272787073775708959943258932461909471340489183039427468828535179916277652355260890846952997760967826987238512802384705287069404353554923008014322873630800340257105213724138474431631951248539409096501572855263064066607039455521305129257236001381218081037738562395750329551709843920014335420746552966585211176483615094493174682909175897583216333620765305734518209100373826686719381395208334162780114417561763040964796712882133882601053963942727459942020442620859444225985727199629791120611265921001659174253050344210445122222826874422033197552880215098046894284538594993133317165021952244360935443659535369354711672305305935742674961765610520213121821696303215237474329128786298500866019679285455544931608123225185855445108246658279283490594229739253750640087956676071923135652971382447571002904530310076047154148067900709557571354277910455706259689592983030141565612143325372716540542289465633876468060206817528549610378744385837620956024366881660878894867368014714888201029255682784933052650024881086011903883211898475228938656711208783862537494408822920991772081530353565646389506121642591364901411133426852248233612354119205533964983870070507006882040794691602744924585293088699826199062557433688548690734406749101623999828928585952114158014305347452883591482919199683912905557673137836416101829365326588163434904038708957285009798520444195556998892735725836788709509501921814638925633113442428365023719909336052578054776206463724957298531795567238403781675809221660313809538858430242878691684873284153033705536625549269004605083533167495788836506725506925661273560339189339052944700930199943190482236999174511458308976363165212817794707600868775771740661151253813456310887839481895698345179008360637838788102114199816650906314704298984390637797070937357715081875819940777287610943670623837800309926012053258836194836842957653507558934337535526038507428202972495087916217717334375882141263888269155611152166375737370065025896613885844665004063215500350580744904769561949344138655393475969774420141843702481345194988335609105062504488506977909698421077757658316479979887361440922347086577041760417989299286587487400953508776735313507379498261992826643029753859502582640320070090523961046107142025275484187305394589549368918683194930338987328558532505459360823808433914172676899346262390076055093134606711676617617963869190738233479413659183430635288128127131878146269088380448078640148770135906205141312616318321681193705961930499776975329289411898910286221860987930226309792473588147187186205950693830832995762007148113443587953119160884726144565876347696064734539444639975130134530954296467451325147128366645957132660805742399904477700924049685775890033273198830379616328397997249784001074911078189593299792653505167812975460156528070721008473151291308715812958764970411297256166340338720227287281091835860610179363817043680555983865839607435009850694766485609863700495126823863533754749584228435208878924586226219745674287080155610916910333066698824545175094510960784830798471307834903157456463375415836518586396133190953240777264061935092571566247260831942929326839154531799598567462009367735017576630664685849891146669466344411180179934995904836514792821896256045459304541037835342773871882565087593856232058314055220311273026908654960576375512448067056230763836194592658682506904418306494398764801888374666175473058589506053166683118167312617887453829716583713055372032715354428116470636065559046182482737206773077799903937345829059336677122225631433787676637883673296067068748713830847171855850393823689862043269496677399300432640870996886684210259878166781408118409968980507390873298228975100515706958429897745191559609555260160531622091391268885770925807733797422452435783039989420609753946231858830773628582606965652677204790432753004585784628397411096922553668787288613042513185757562890694713826794057086813260381018336648034666728208075189180403889249960696174024448507335080257924235712152355440702288808654556248652279133349069506410548303596599158297557883968739360115569320537353063689099557300284127106042428025953711748723145319819774349709722827221199330916344644468106901110902279430409404883838584138761286367641534693925888048722955925387156421950731586603432353046126426912267402026017744758365166857560774073745821737811861416899787247173554432782000553120457603698381323523090314101626031769317815023150159743701085099316694493971767696499368324868363730296952022347994627871507257645500376665891776531986662594589656030527476694774131926250451849259834446471616822265031638620036317175943927811930599407592573909264307508602170249631644300875485145349970875801175460805905778741820147879593789411279377906740693782273968662046660675438468416707874329621303562136172354718334822631230884134482327223600935852485700472555410984311869727760171941896323622285445666928692949277202919436121600945031866420749854239358700561516201062526115536240723536311078475579948213989615829329047052134191906294704806512612756697839730381482379646609698538874980234004654252145397904751432580133953527336364474143792376892088549358238685915535481441505042832434892484921499836346963293511681373626949165952801328086600519188147601034097454669195830490307872587414231335845278048462924763259512348284320285311387183983147311436212774698309769705613894589098225698910997926166897770134088990808716335858926490790600332680914127531868770368633463554415095388722474195561697385116556773712634658040940874793055710813267247761519108693795511404140057663886168274379140241765544891852311300144666707010013357740539188833256919311008254101307137034267305986450280348771659718929598354816884183865660799871411073369990793126499630124359814165507183202367382051515677678807356960380965451979389074788241030568242203467898963849247970422962011260331294473413448120703079882425983044405633724649186839945804181466980637655786422812527358359275191613289562556386639981076830954958145331225856833096638311009273397954306577891121758380189719313295752452376350852501533787156429158358587636578210157487924074047184843109387131378990167430760494961103558786588281645864455169196033542625344429930125861421317733203127174449973873186660252739120294440036208927634553555573137369173860046435355527658891681803340924987925387521902352813364173646403561325123978019836738509528332636622952144852002958114801767014624485276743034743538329028400371987311799866198762948903576107736614315376058007138410564285606467665126153837539285537273926099564844000798466924626126359334099010799939234758514296766676634268187887907433495527447355862969590031381567519781089864841198914334991991374268260110191543591281371097806895576972520827655695079815665628385852409826924929104546581441857770614660165282523666340923058919889889332871608193564859874807523125285586131990318679278141782307860232056198550341203205126579910269788330428433301228776492003056987424884969506514645991345863756951692781125494776275255577281749349623651635119380315611602455184801134971601342873647612851021667696787069209201268339282202643692213907722524945392424676157316281267438366476142073384299511178412000536893673150267809027005564207540587266256445750720351486000622432907539952757994291634555571050726685067772818385892163060498371658697775161019451789470821862670981186780696641705949166711986060087869415645124714974207875184708702212336472873165054713967454967095479217670089228611688431034529801250226350171781518067616302343492526173346175694867405823918154662833080632218015661638433349682522544904106963761550015235140833297037926389261979205280907155677676923711939343409410472914231327516068922413990223854248049556284180855483660942560469596189825836829899987045144414790579449850496330605287456151982813760024567746767042157652138228485155207302573594777240925179798983359621428745227521026323980131962939079092762953565730257113302733066261813229148097258124687533552527321399418067429168022733407059569038173850686663821823840398527142914694423905822488095404213573188418776764262137219960364711050220910153775468832435751367605885919295719191798486264710267217165534347048598512326451887180991873216537492486523627336794295722534375563712939439896331514511476578353816528134472183024899644013710114655312084767696196303348029768893621534664084068137540338957867025855077616640589773201474433538946434005414519072668593246523712086268590552031568560023504197484369274001920040330685512781740254301635200309453237912595648657165101241224790284856748768485138466971149177884074148322036851538561347288921652284059428977646974745698276450512159333398812746414356001083694229692928981094665207217374715513345118684219575427755918657426654402342139984063086606262773604344746182880003252830492036895122203934620528750904438938941840966321949786843013163554698219015874065868046438605295997281432217835137515901459351653910934404257725744647485992531621854334663210481886921342329763723012803790366545573297108958326663685884615180547237537509205553006000444326485684309640098186788806502360902990773781608721590299685930458634874150034273957524006613201410942364911246715754705318937344708859210128639693315542553228101759086428676719473404853293071833087293466995981751783044275154217683021102996734332939901281747194247879264773534929647799253211942355531359709534141928983568764503484038612044368716574935369637910952635379862930267996273816725847660419045334006284136962505538333480482657991457494614778201154174645511927292956720093659925797310413577916527316867648807061782670287230079963241072286370048805050216654016892841776122561808542715869717868325300611479901903498977172644910517213990772546378280663851983478826174582466069292314225686840251654115928345739118334513156901894273178453330671243199165205637202057258610064743748571514277511262983138302911288839608120959017550075037839254318673899475274294951684449242947616634698660723815114057514320388065511029734110625148760769672918915196952301061081220091561154266480268253042108478261838471362725514379775372600032094396888627363163599991066843001273837270862957879655210308091303404287321253218971283772348492150479626985614117474891655561970585748403510737139608712113233331672100740185806878968897119085144414132250132270921293258503690383317754955762973757878179102499299480570121160157099999139519677833771924676622528670379181790396226621214595790570270663512725240514853428208153024929354314141965267992516909178295640559170446794721275827972579109909720863559261310355009082365780514252152030174053092588382710894792291146479125529215167478881709579356021208491455999098782101154476825593623452192657458864564545644330929895273679541935708136004553655865036202010109447566344554483797610957314906033290874818719384944739592400749958858780641405342662414523494086698094400989168255542188865174178270948815734959105108838178111922419118352199547719583105213300491074514924094847981776174663404396505070953038791465295394982142160835658639829322354642669831628108159202434879956741257258284629450360416006022704359204922339811203228445545561892532608651172818937376909499295899538619446272984288231895595126182516317241307241048072968914431795567603231460299149260637836720644924284019732822067305944659149204354404746229791282665740675297428817469619727871127636108742840927106048907704974620198651412556609942217962525208616828427577569901555543978157479561043707634552108391178855764031302896065019303947063546852219152410296723462031196734569356144963017931171930741149512488866836804602615103170733890728786354695532702025997228482514282880540132758430956610011529228167086631708747117563828408974871991154735428677641842678477615514422905201499766156469953798602355487388198769950633707750671495028382201168172185506476526721129944812504501216061805374509064671095977556318921096814252937439889511995049079163501394716011393623607489412914306646865145696040457120702331889922974451339321351072551928360250329306578203428286426181597175960890210536382916679839447206385955639437583543709809635438004064497718454574661149791287916677325518165856627884232019433155950010399779223581076647120220509826309399839489926296412151414588418445338802902856095114902372910721393980166148302527807410577152280962787909770648437836992727088326772673115617665578311718193575116812181337773550206983417683522964917907173000571903931433579938988530610265210633154398090037061289793560689473563494945227497844325530379608917331739421656886684541991655388163324141899941237800692036105810254065580942710317420195884055625808737039091428830034331865020906478403840113848093466944343198491491700190594802896003314789410209958971715303191277209734493978883175560061027747052221498162439082741046942416013997297283598629064521699987527636429663707114615017749801306809970417227642508618045990160997057970762817500935434338890437860456147476399489752884763722018657823840403120820361183235307813761035359076850324884513056353468196972463400034631972140613014151850187098036694784661552197466359609494267090257583492378093741590367017848717310128397013264881339892292740421330689823362259809008510282862293310565049495655652775963130351910515449903006531975571089573487820873478127541415666729398958954179216116349509475615592900572107236082209535991618316501974584001440617012028734360128421165514893027343454853165290891287606594805054096817646075090034559470575627285825395917689718255677973824585333807431827779416727053881451809504248257757174525422090834935041746272222694226246669158009628967434872330611597585487862566347926751176576483386363713818935231163660410566030397758442608087889091304381458298426129888836152726059883452938231346296706723632913075796585919911096782290261881598015057859008599362499912345328520836135598824451063233238997825269440252580119601813281328568284433513205002675786837076537048948134766847893481206540551099487312060931073294942633870759046418696752017807046447914944680375789202200310470749470079553031301466270602060086577824482033491590534896679881499135793263278447409698430524249935678854372638770678950492216386920728270801806480080892464671886693184421986104422995507712915099972375054253126002114502329338137382270253763193754504819247329237812886025412759401068110577794278566815748208634207613845570825868813441377810850441662402247012761334953322114809869420952640892623873305231049689930168213575647113950095158379402472110542328987637804439187563825984929886963253888846945363911074551578200969380562541381771530196557955599115424991976657890940892054871894568846199231559612546966775416279054326545227447179597795734926976721258564378794056219491204272211991637151126346629676715313573288339716430074160144280507362235663822664685801877576965542272830673256203815676956916596639280051429438865254481384893035781199851463061592179854157405778461662955947458256414365496758205275618060502742614798959635677116830151311393631794039682717999833561814247726378377486972547082277359578524512716319700623468159606955516500697073040478684115629972394818673243342768616064569908731902761639396796463731184208738675933634355685969068279743189507073041292267053887734124970701133447822736011689713272300958196059708436970237895955262673667430376842927084461290937607775865904048139393635920271600849086796809573777828990587258042559620482591579777411712738028670714648484061434302932523084952235263001370020221351814001661235862097211149867082354698113354590434762312199570608946763777969885181474413972975665806184990121551621415689593462627208846833401862504105707807786059302283614243391632416499075999868008188632730920540375514174040601154403246478606374880367751384468394682954069426219275062762327877177672196858081878467880174270578290938649942106027421087540433887369376312085515799009139291217460459715985942355767964121021736543918870627671931252602393845810109601587616736273106019964442001363544507004496533495991315545195655742809877014182641990389593448571755397065785943452118846589027904977739870961578983283769996492764196696066172309771848229228871038925400448792355801568871849707213714085566902093542354230589431879944519656004021364974835691359916830231159262100714206427781298439589144936303439118888953160787728623634336164083675242026156457752953704018557274158342147224408139882477981061058729644095415187442210915573755783616255955469240208610482984030559329643263577596882117915204386696597258400962990116042014489740256502754837981654540396006267726538045863871051171531899497292539622504416842732385755445629925837126513304251581188012614639357555375329133535484360782932840244347051393165907682348333722905330703430163824104255378148356957630121703838816639962346498091107321128894057361549956012707425889936328953139496239986583323745359559624410050371934938438580729503919197310059661581549766562451372741237725548311460919429963664636120285325419568523882185116270416626884160862538107818287068322825691302749629891556695492557887899463752350353354410766550361526433652592858498969423860069451910647050949495619095138564238003710347636177796289530882125390282439645075375612219647822559315443859560662100292435281155801899776757876391421726073374849657813241756611747799923054713509696694276714333980102054667161188293754478119310931627933988934648468288200208728887880310024441403771089363536391879948774241466163038874579063854374618045587692551613876384419861512886732974097894251976375583135026707239164859612564926522973356250730357139771557619545745531511139239133180735927640662069812601556232289306477368447398958168398082518310019319755045331316091871524268762252973848610880309124085713025007748282122833353537885889071102659024855996638833636273571463357067215129450469620274296734617985679546396955041498002219584629850881802949112886603016476105205331039867825139437509083010036544322482727715549090749665234380350346532062241741761017099894587087393046426477012137365988006916363957353294800781682137779965024980630168555293842997731583773926835650635951595335689290689464444250750181952147998991350747012982116702117807083041152420334443287009218816891419778189383412915038735032970372933003255330644349995311601112596191167987344183253547681550837728902801639067964967158637004713630891187786225897448856558252854007070839525724372858387111862347012634584408570866032756978629273690554571951142344565062318311643879976277775915994447860393043769710208531681234985754228062954612741027119780625279244837407651783199053764347101544090650891875718168258710607843081029631454904316604818128122541174300918163733291927381288043399295469721694964338727423442015585677187106632477814026752448237874603852255096169037629040052370122095708457457129130494196832332485177565730676600691467450261056464234510439406624279155633219719710462281014734759447723384221574335035312024896795974788383192051814876848813165408881375508314698101821849631728077924834561020585400553344899838034738105457316803452904093627898499211922293063884297920013160357831328287147333173297796140627258641410896524584299360801019112863085383306325702772365702381407960575810457424138922623930324619507935249189448025503851259887462684210275907692121214785297783374630737535826356197148353640701019429915695884474380363370944859015889828953746775520373376797793358536919567257103507561798586580068142894681884861693970759125559992033374594755555467622832218796354474825752791834246141675271971257597366370145776184232138680601197127712178278781340217192246906509399616082092915031498456542388351551820411127387162169962096769616757170247203979041313606669162417593890925654724814656381181738252360026874629222548200946039984106428122404334502397211059554936190604837087159367325268224889521395417783219609919396325677705971989016833005366453134053340109843947791459334504414595264290513534267820425997469957468716569212103773904397068567921741710751672764858341923969710555812122754203464774111072457834377126076944350038094810104317404309223973949654100907591597568370095240115254395302738520023004041874035735885744302337310832446272211402328955547370667883761484251008707846293274554944616905545429672359364504749095991254480652571858111363610899275286344770432750452901083513733874348893364055450060216725153480069157677510236773661634122758855858049751434427977381987362246536606910213639833324980660335987674067081390422117440131678302483173594602468105005589696589819686613993445825378932278237316223151112050900924973637297620015048583161262761019307374343377626283704063466374630166342496739228103943696857728866440015768770952250618523449444779810561863776960847682410138773640987837601370439821328030819014804864414969118842149678953837585872432057800206270495923872861231714622281993512669107276829654264645515074420180623673180544423995100365518749978224951606058513478015243610982406884692230850071594296586003161833266871143253927744566734917590610098843626877551711197169024768038176960578166477695367336358541757249929590691860938393384247557954074003677300635925866831185894928696471920771363891030753086443903588054844891042287979452093436338985174235610501426949498986765626515950880194887780574458516314157223613172131325726473530218017980642563484744445474986593742607804927338817553367599525320158404683359480425418051133878316514931800555365934201662966464870441329515126508988591663778493555255662073315108128705303999589640050963647734000900655447690604492389145480639989299034551595838348697428968070165485491026528876501542014187341575618606489989116227772681701063929399727953680529085241379972905262188843253882405051775281430073396849877884630943837153502233822354320777405891230157975804191980402959631744786591752058384892437241207763854153633848050493373006788882776819488684013902158871784356407659375491840849466677792511102914981450065682360721448467015535512606060185905111264400882868977221827563733841954800356581782572413887040124387720110327726804503981144918707432044520187434342988979914426555990089020146924754798595357224106897017642564529245510384259130401503685818466504515610571353471009800787650997927899815329871365384201202512744801706375299165688093127392257160331845270000750898020989253112247828183775609839454053938395677104895698520325757403771571080136015183637598641985217736524409199686083560049533450814167118616245949992287948480397903872764651448956179505997031351692167713224804769651427457556588178767527762437640643939116240473203924471341011844705351568221942639595067899884596197191948231153198875954146777424450246685390070013613264012208788725641391951878326508738569844622488917307330952376155771849948484629117751711237312630472979905838705301741480118546705823191338539171487683035413532525055198678727040246830743442460344821249566842329579526449222807939948314074889126280649370489311427324444814078929137594136968562493305412291774920606255876151980910814165129554951597052299895819280129040833689811783668143140312590732976393234058444752982811990322140113831318436994950229507180423079261858601536264487481871464480524723967945707548030223488255803476251253989984079761650278392786407569218627408326754359095799314963938198105933106611990653439803051919275448488346365083999848634941032894439637730155575169165408910530185571971955552403455340981011328156073607664928396831934264186787604786400013293733332702014752621221579025968255838512228274881782853556989309270154476769360505538955109268372124598437026297356113562299319460394314280939016026175283100660915264033242231408965263647688181434013624901696076395918571101067407158366502915835161335134670664153354870579236454654027102845350546622681009777923326112999014282339107671540455870344403012489648787104337086723709122523394906194144854930628007419867908036363268176797807924526750268616899393524239923826931079236090311692398068260199615267118416326998597502882278720910316283075392725881363046599854962119023472886444391545506396370918427389935811963546738230430544981088822528075489451641528210770649020880085030584693214960743840559062369868318091644585111352492896150812271315497301915498063977626905779045533919404960354042781202410114550497900886388144030286921114314179323215195441386460539983425070107501717736955951635207153775798504913157438159159758802848887979375568733943741100924719547381885113593790047683767946468866873140245800772559839687902064406011622703468152295119931623418706152908354780104586314529689520496916019039656878197749223548336893771682897973515472738649893662229489024490018689419682973570715318717211933804677627848496692335764654292891283322761580233384294954423461588330067357891908179324613413784931127046892248620377952131654603111966131050718579652405791237874767418176718185491612068177415383086045161835730967370917579855235041674419977709433245260722731053418183391794089699753893374170758411303653401156886640172810323299064760524537102653642786418741939433751660421143547361016706756782366965105729853088826224658779254604990845298503917722689204454772705364015349666700861570351201926783951262994651865157959349990991981391487928321282595910942117270710009324473176512161404059238148666206979173289470920073218438165811421799404801989915983267246391104975775708332627036126105272288357207107103860546222275487585852527940956911432521568507890709078151324629027258821085136531559320063568737119918781659029905064834070635692253024450444315908259273705653257085406925765816116453083190130624656165888470227361130058696874118696904822387452576699013132772595357479077072699599057216910226284205103973570598824918016740606384004394129207331735990468753260978599593936931750973700246232554399799818430331555436437617212978356103964220586820099820522838076244194301650245330486572190702530124845576629575650188775693869400659747978906038845273019339280443128250492834565879929500843033166011196886664057176974372701085912993172462001820355861380731893496844776097029770774297847465682551116724633743556773754526407807980264226308160359745154747308451202280298107979798535888925082332553946621302604738175397351908570738279207030337412135415014266019748974476434141490729067330846517575110136286799588246669588225327040576812772204815080625424802482391389558156086542016879590716553923043185596785081951371808313258905379962715605552527168798535654629993645978252610861484884351324588273764851732794932814151691414405233204776968259523423650815172090384403137317655066137615268096595881557074228615130552482706646034183639267869441068118904147506385997480309652674615564182080679641362477942509234561609790909991917685415138139367609183697226254318599759649728460599639007849066249225388465764612952348402867820821758735851332931808479383039118044800405221148264061147743326704244918816558774572805773803203884279454336383850389431133999458104043453013068852866006587986464235188591877128753753825730884779039261199558694201958625075824639582864947455974971809238447231526056816934617905659041178568022851912298871119329969908736240298775564403620025634274336398944750235637734518872171426568004888686669866236954744023332023183878857072374181616126038296233657079270080474383730629660817242011541012439763725201266710111836894193169211672964320063821428468517248097505559149521406022356168519704841298775226459093800356950762650493869156745746334145527378875278403228136715409098551879773075573946068444511548905886877794089999091395122559812620278645036276345990496058984144177430812111152851944024580803580605948251170410013426385465324563400940194546318463119600356665814882378583573898120836809671526712363342894813989766136893033121040787207907479554803723107234102009467366787320075204945164434172918665380854456121761005135936691919064262473358912223665578665802871072780730197643692500706607149952772070929153900080171241106545532774911026136248898606534369756376276399073112041736013252121212516936720011781897885303143924641450693375225362561877283807230807636438348977584242982522558595213125028519498191992114735311840155678451960449843848131980806844330781872644681949596688367482331899636378337022647488614388757170670115210849342773803262751735277301375982406028481995131854172008900054018396365871217627623481292583248593414584284567193521765233561863568877435283374844830971611140204990253852742919079183177232408987050493273724497956674798117235524208445799501549575590132741980858173007817687878682605792755451620181450827861506843888556655725941488777166321973244851139050766328062889036549094403698631113901175838662726574084178386651347441942521733229760074639071788194316160095346411453309619694843719535674552060253063120902492867745357051240206376638575030866245906826171453443453494277334521709618318030016254023225867844334172345774998435484633361439610289458168447838319870312986921908355841174247405302331688169141843759197187754931870065149074644064173218408324184205548451810825263960202714815129248242826580407847099821512998964330891861755516555801618524495196176196635210146985196545502668020897642931580457737150951457936628027442348874183085347317501235774060125386189970126550999094241419657139205799987919699686308231504733355829974923381826272587958010980686606006550359947689969211714666421256021136702937321227222206991052405270549535616804082767919653387765044302097518905802572168324969870990409534841049212676677773216871126074318065426956245556628527094020761253592560982748192393809042985766578888781966122813648086125258003439700009539986558966096241402603908293644362154831228030447616860824433409738806651661022343194433463835612404126108281802591820827847072414459703510067959682614660920054029397338546729325772872099510810487633572926165433033924636467715003909957787260590381966495174816214020393451634810573574387138531890495997326270335814358389844301202046594301370537542271036670935770959571362522240313472586144269578076699954942175611884199709045924639668470861460540372679942872774243686871268179793774145371334408705169580574815503124130534113218757872646666371782927555122111769119743115051227677692321717305866708477033179953088203971565316379648558678766679698187601116297558555830264225103227132141550116304416993290030783633620255589010051760138429577039304689624477990191027290117430239831859718719383174286010066594005919771726047201433182067044485770059332697929603016716901758497158145740586952445194879970150750706732846866594307069980350158706815383371172332340340813893163807989237891663464362990007388244128366821142633769372101457549990031401246048294106681819277847223913834048776042557346609503685348795802151332163063065583733621936871749510616286696846838657080618692588067016680827804618239500632192980512901112167826010712216456332139490159082065830668449491230309154873489191260589094842833532397989062085559437471287589214756826535014137308224391111645296128418195333533060814121516376713773291932469675880901262548536814266166609586949007843551885370946328389397031224420105483428466718038471348176574783009674685988486986996895500455091193193488844618142296228133228885316054436536773891593828282276089738612717636966194064597048917606683534136110921520016151151230546040048256778408088071425184876667453936292687288400742612620021255180927198039625832885543826392566390935136482615338223277876545359905356089595932301107391717920708261567583555648039800638059769084738069470091299267441529005017241600645905092525917279435334968930983928190464296184558864304998351892641144055052341668490595812041372880660335043251170322162725848872940915727264338250865149251993169347939036429333602196137645635839490968238006119722935831505285539478649107270578541688187864623345932222357624245924744106935499444142041811707390358653205756738430238081325004201368875851144507336910747076092777022633870406413223189001330999565501593166710430900478534075845693848836035192206495758744698090823013353396901201606263423238923387216570037135834920233157605762380634063635338666117182610213856700835445033784061861932452041238483317040565379850554761482431135853767682057324024112171051516249382964892457604661583227717439135262787070099625998402597504373135704069712011393852558199285817239052658455183684258193910189362340202533709649928297631918517747666753225217663059964007217853940646263757369374313236549961945554311248703316660151683798813149235434038273232575443865950991209256588711666451096153174399182091297520065496053908598737910713130370823826458941226530484439742596803171856254851653475090974858831683141964920423815192284966458946472591938415815049791926558872532919481214136445270818440216711413790068970802724480287452159259049618463938773214041190336282721322117339993101995037091003962669150936449172809487611141254611678524483841891867768861902301975553630795868431021080412129210508937203890534328355908546680721557160555000924959404493851783189037020419138282193222812072180138837891983132640868250247463089714990454544593822576851260381102508321148296164419444517858438416694501467427153046104965791530579509399660183121591909487232847102999973791487897623237920565100210428399477046675532075485518697697417970145714886233866860073878862657615982303438302459023903121317817499721707332751850964984411367609900526863242191040414509042759532921882512649201032971061544041229492711513681313177286211572839603772861161700332643504109566464599263655058819462154895077496851126598978452319579241064580575950971854413113670833155278323050632944105300107490882097864224482473474454504727550580341812871408986040141166577593872661352622609785638151791787379977345555149556135336878392025976820166422475374089109021739918990111897911732026937424964108006658699240354109480598671596679061696365630677401856295648006538835926780253223175130921661176168776911661046149035363269313184645846755923001912234107832078249246984209302753435787840168078713845730341167986632967390338422539903922409894103164968351891371057409878252465574534583524188750727688833643580289039138040942660997188849647695100674112533041129625743230629145085046010806577245192787253851290537840887813406450904938124393688170771154335386735460918157672521304184069046131699252951944837059911844377905704432611978128089638126295008665883261423712425346936591043724382060434889404160098157304801140701596124032837666259239518856950079835435750913264366768322125966820073823858644116036083444658236479236677324918205593736929530212168862218293319577292651517207099064877363483714689818287615320718720754281004875199428920690584069014922649612767983510528318980106581241882689251990157638242461280138032755555660441478761249483372367560558608739820068896867372968311749683127136929823606655377335857106837024270445816535146987992998768053153173606540634128654105177146995682983220436966630301875537888834708645577881232821604695640414443608553791501806230181949990444338981987982080203599535127467401170275451541500156130957495885122017853119965174368520072586706133533528603206037937907273302507335394462399962661334139336806847136076023625918729804353476557661559294781967404429566629141149422301512278899444149883246060728628422435165258486842719748491832958620668219202966283755623061201410383346016141654986871250140828477394249529482556501312600679849486764548283049032247821486582172148657806292927514853931106857063231814560301783586654044659492569171830587696972694157273576420962778299339791952155222609269576780924050720546082629256264428502968073654742536468339682367670345653342382003380540581253974398051018608388945869148798924755464985517231775008960192553161161281950610716264128185665302808901847174625020448273269459599644807293574851528367601230992525229044969690523637344060130522759848437797210337163626200466420856786620801234230437122707958404379334501073385219584240766618007166705397424273675227834064252454281877527554135376075047333505083224199595417666408806191783547426630197142910570729273307893844873229166684351861730550587104455568531286900975215107087737711564146189745364046370646970172358046029378680410014885604132452574456380234444640100687393614477738560017719503340537753620134529227161140559362451115393684483898195132355779595605453843792419242364634171500464812794774833051277766521606639772068300547586962134444202709410914779323063439631126614734362656825278011967942909404472982871075191187453360590784545258686418582208689659819658835005247919222288242129501711829279067002637877685508034237388687604996168557203348288396551384259634837721011450283679815070226849360225363220169364754053852059567205331174135652192744015836728683059225154179889014699989120101932836426512798080603179771722997678330239850417969783741533461634734090531673828174380873350490806414777285500792976034263657614463640638575840673430960785717174686603173805629365264380786054485883321022154647183273491140549887655809716615274373117898628063926738188788814959917425739726364185816550827150959422793323380300708194370152422544989380024591502765290155075465867935407955078591361366964448503139188252045827061533536504721639133467211741944949576156064181931806355682340303792460296343910253829395369353353808278365244572240377881573695691339757316308888241396030071850705130208514902032449227429904295693087335061690175175927105299474120512493046072212263917898275895086092341602965121546563248362163354894200200050601357551373921662564454267819978144375991435333227351450807695398718606517531834801704329155317367350568875384285105540825431643320550284924099257476468987340850293931882056659079143841969683253512920954774697419928369987145353042573340123292441177363880995144432237436799178109811075468139399867431794353261421111413478985607507100445873599801866236395502352671282788244734173051346338727884904705726502998013392800556867089139733542110690023073721063842260833609283798675152857845645966258642311054327613060358355907510295057134134179550722922192908904200444212552355482689653700056001010575475102777638971042058652405658001514538253961635969914860559740677525944952672518041802909535112554340448102277581175465991598873665649593828500745770649193560082484551388155146613834888230695830585134302361941898323254533420054969329242650391022289824527370112713160875485501711130296022361995574828048555354742034951499505600157853685262525469863487581630894267991394356897732457623620385168175689665062135816489407043568438102368730553037192681974505573354245072532689917968395525823362418577570819853339635350851752263990777696553914956646376266297928850929087925525262511860171409213184612794724528106555628965924381386211842012385918582392854054600609894765651757698207818670286205120018021938388197823793981442595313646322269920892352278982818220253006776239364143891451147467339332968146255882582055327535769177946520383621756407352368898219620623260802381458557368770585116556772043844667550633493007483173597806442713605642797114297514829557744249804196529552702950222659845050536038977509045951009047284402611271460175510476171880905576959840956028374947375117111409012670885266945962867101274375480307024002846318931853163728311692488883362413676684111225378832573835097036890441434663195610784309700949487063683471631676546582771550014477367056859706321556894324670468039954669271987770297021339637639209950623968021400680177948561805198824010465032369904205520403562038988553701519205850695320253115196429368538786119883882115115794162847348773526290044186301741146887993062928033055083260395784947640165017562215056558659475987878905589248507268111857082380293537006833822734982461816258510946423458846338786811320304307013440408585977346724927128433676772866758472634801413162645319419273632573883166532850310679571991617092183066709796770022936904695615263911314439572113965241114035802651727785319832040633053261982776804131997236563692530787972557597112159357817969218601759873660894945426188631372179332704527765397904326118441519118376544653001506000292274200378947385442515617345275697738549966294293957891517961272598628471292988074014219774358250402592896217335390662811856904139434649285533948718480745490029373007021853431562986073271779480265748823472312130865996602570553695905577212399212069673767086729057121284787998590013481052910573746283223083146898456842974857975294933807939522100060408626132330404672894900869454229476164557297810090451365456076986138350548584660891025554266723747815498547486623162274918645228247214784724700954283188257564661930238040434325682075842121606471740417645394036456328174036514445905770506853013969597161006812870359044177989967787186107594949692750010464945381149779161230541930504345381248543832784548966515427997434109368230180708775114912887808054015186851316151581652252489387746366291947078923269409893280107227992723217933937425973648046358742711321878147911729150519742235093040666874235852081383082574228022362993626877795246338630923554158222564247404089736503101994135192271393909484199685571382321567650868752664571755654462537017094809217331588681863344296327974572815269171172612041635534306221707762364110377729076610016186832515779064624396428827005862031959507790650275394343697832209854398489891644591941699449364260382102364651754610897310490625271951478138148223175320711721139455518156125833961162034401117442184549796651641372929327810105900046204217121510127517652957780419674479608646141217510215138213069821469437738085414626312504894767748024239419138812173444968572768603778544878705720315504475422427900308445869848765725579884960081843555024371307279254093016393865514786083381881808384415245387971110502141113505627974204344865319073628641165258845772099205386457581291399197122595317651227115340552123032618816301200713363413182418882452750087552835747662265594980445966026082920630843894186841138032958397061269385240455703935063787870540347660853767987068222246593163871927395371121127842540489239926930382619869927103173852404571445543091700098638117778660731041158301417402926855037601629489137186949521039247962171827197186837616093711714828756598168553676321758536448059079943532773453471570288663947405864955430805748856256478874485489872435374219090019567555945153768076249928542634203887572942404419789488184272357024448785508191154539121077686748837004222928614373091064143540332758998153489453282279361337616132684934041265250079056882707155726561226654446549005178686341540733095697495317340319321708841493140109937235930537656805478002158881544793682299472264421263569179230983000722502269145752988785844605759684150563855149276483920686113346258451261452287249325790085989012801214104747983884036725458947720936468951763665726576870423302732720828421869415788740252271554222092575832410552093537639673651264128349806898173307649763575455398612997017417057252461301975140998831026523904762977580118155533110665833354152077789644363018632093749750831189404102400008291516520232825827854324035234841728235033176503886182306557263641179303217828350400532971739579454890712196560680562639436161325121660392887696129400248246344622743146297449544471553323456655272642310618739427869942995535572706218036555488402539605759798100421904110019438048109832516401802270436601085183246543559521040734965432847871669708904569685543821033404935119097527880670161836542195522118916225221896332521675205967735842717444996692775197877963182798865363201894765728202337748380273756762891277336603402139087800856342984716024362285145475429609628679529079092391534066635875168756764068514850867056317020552181532287144931044514204141012666759020783191127628274578816011525621689134612570873693316154950630074238146341535742494650049341397689253898292453659369285753840564825358759861902382892202546038890509844990414480769389505307904553838470811144133059779414328817230954579012210575093158808367219244697566086186549990931357780342920392418323968438884384229777481285491073402573597601058678190490568349179796875007112974092426267075859563824307462946948546776660179358210285004491202094766056895315477259494276656357649158714880468363668792620596113471998203738125397873740663474683828580107608837177417643430562618032513535047925717598170358687815994124924275475571337643475900000197524605067842118030531854585619090521509524047028698365935641971917861379727974451622389021305556157462834704613660587921752963249508657848739477976401917945463070777033878949856353505498075650624007087693616599331697923039921991750838716641175528610458244669855550777345433420031283882369684037728876384695553802551357937613015788099567007529167925461533358573478970576623481086884282795639388107656187014119915624097375205850322809271239149245641412010949906757533792354783585834966306652326033740128434998126986243654416454554551787066285046874042472207021646538182857825491338545070999336796166691158011481638031857289854646631483689802941769497061413587589002534621671102215813474095242813248263137237454083558829687544151412354431812877386446400448479690018677221740774475814007416117843009367762168733915745366382111319340174015374272288253787892358689219497189052626359169626140672107554465725805095678373566489019252603560468704875523809334408220071762982010855753555110621997993277149927756522745249825776255249527827803972294732353019200693902166250801686006726744515271853030977422363673704615575281469417209750654434277636565307705404323871387509325644434695489979942881288159666509595993686699316583186394839218639270376727667824235404719369467780394182501384083900392855160457581275975332838124497357636778469659096132500099638386163146791576457647906546236328776867339615496777297504859958840606204404318613544858125018006178052338066945328024612905927480638291203826617163848229242916025639439678162321905063759444676900482374087458272123490759075664684726448207604724486413081866906100050639143766740392696707944742913527666644994775109846822705325653535109145804683469852013773846551388477947312106994492692295392155924050521089151586044105847963633012071786422384234132139723630545671298569238764513230115469141583398067776718703316785122586412085793332986506996759336942832327185759870838762427967168432828560652557236427002091496352896054031884778090948912952456934797876650671309780393141297979818934366930552492583601666802569360817785281083947078745535297481704945189155117167842005014828189924525741134944454701759945943645278409365583354933257885322357956313999678666623360308508077443725057919705438315529387230580812178429067689871770669617091088975142011373030568138428999013610644362361837232711205007121295084235178611723065016858626243007630627164446233265028347331778163754475953760518816058253262485531462373479234579884794279828104980390601939921425753390407515960539464843850967747085961190714618347196666226276950267667755137360603889452786976120727025072284184512236271288165350649190451422012854291383090047033365414432299467664475004982976314934425296238077026995832084784805133804694353507516127130085750559988390212171013757120815529387852757795442728513637494287873687551867801167359829282774562816420049715192737671631032776058550861937109837699345550665460923069146482886648942787889960691348860525793742734070707290803641615595060432294460557560519579180979725575330702516928709864453880491774680038573073961288961407069536822602190243615591390418537763073817865507531059622007630509488207734047910287673756726559286002552353524708016226933368140806043971309768685555287677433583082801638979195434896768541747832076764141360811332032584825954624952102558150624544281602689300809618743341234648991624613676327936810938388572748817811200375770179013322814555555024337187129087540068138553462852659107255315392422100618118709416805037744577099666662821673466578631918650848433495680916231454470699807956638119510981061194545087701576823363158991695486661684848188962711405582112003375936285178996245132673475451835836310763406548593817049601281799060250649107757037467517381076448439888578864132351911513550256343040246816291470528840291535795038991798971665221891308610698773550675496643219640052863690345848091659295995882676122702649032140996552729984919564135492769513855926578814337200971509797096135320961398308855157870198521038704387199726841383631720462287978251106260864846063625292975245652630765169438228270926047313503413475754892936831083933021963848341063832853416237588244588225294200341707023539291068631436783161141508631296056637394629929305695207722556613770001889233082137678896079692560160104999659897886450038225303955595097792950494571416012470513976141541534593858343389802250533075140319770019583503310838831098749657046060621299628118982157694947771325297450615809818319296680089391955710300515632460821067164850903786520770891685591474810734292895233795599829295709845537192334406592460183204146874167218099418166301681699929896660668396617199554286808575744142192904162800646163587477505404807803301693797425301495146655743729799078550166382680611160170924171031654517564376641470709221408126290408529705079908207710010251012589830276284558337335746501764268937935276789149815465947831216017308299985945841125967404951083989839167697948642520041628197580641608832001024894484607118742745426842946213462198445118612618814791883514023020387127255013492712313520018019588147515279825031379178267123785038215966494960471872247564291949822223251600439716326394534801535163171826054450521275280298786353438249496761402542951977143362854903454369051505057345582639790462105759885804445362687069140760049885016605132345275923481934239734059049546159672915642440981589749001811774602058531848395886817791950086414679014409610727382842303368306186982036266229926239662845772297914183776338394374042044204034519192172448154195587293925394295929172031022245040399445939724623375813604168462472469289259572720137663293396338504435315343806174008076366539041346821836051435686909666694520138580742341563364782764762658153296581557967169998986206011976704825287685454744362833745383363561877270805090490276160341647572941596782194988474140728956162951061804082775326900249904683821693147855849247490367506259406727632099768269123215483600296151983398041987902963697608043740131521541908330200836305253808294440269971642480690153394631029473296980232317339365137616723964605720837228120075695748057853620493516609376661290275646027254591698100506566092377094222012415959564567292926460999675348596669497267935150700482855388854577197709522550071584336896240764031444274653291334369888423189068525758688019230075780943241434521051237033332253294975296961412700391970832568463086852282008213951515721608724577987140356449970342361139845015691756268949198839680434309767844491158918343364816078080730358330283811519248619082886846363692128861486704304064706501510857496035048345654967788725593697764913721608357518503243444952164975609536499107940784093922810628804558524323257874841956221431526812459107205125681449008925521364332205922694403486436521547318033761631647705036749251479044773617883226519148289221587782981751174280957157727669512293898088092247303721221148995128061959639373941932666319879782010528420203007075355664577029454141094573148871899474874014147573643815495153409810177449944900085147137917720321308340862446484232345365009860107481082324821307896822512568059273213999580157423542712189563471589426207964005962631068027344643796149457736924928976227664009552211877026602200825722063727640778682867002768383957112385118308854534626464907669102280001797237931415415400782478056821959870170353988960734235467994119479407570840544536958735642577065536162589906262917784301669849278088775235587472911805554069275476364050289389216323724656905794872664859859353531139356226408132441010784106596358675620127117051392153014739881058945501724497481748007091996890520829270267006339822642099429500869558863642400608612697428724289675755669678903478485390636280737835017456676623387298302929662911990937457427926359406994496623487206537941886037614092121525294232283981225772298088233466706881401799630690390845860594426054234554086016970354372654193544160053245382454670835342685491664121620608280919403597409833453757841922074651359650559430867014586262276266141510100676276886750161483859814197065645372140062945319117297492957188130465601364080404917992324495563917616730633908906397777487919879436887285591577773874901726331999926246548057323842920342591258270671866581675205869459271706387894795539708181158350215619229690338058316200914662926924241946384795994959301582864307031837615497372100404317878946650204389223552415136470323323971825243705701339541925916461569600408333882648712983677965093845094531090406995492191032435067243220098131317412567606503168098618020292582378320317713804012777077682228979238952442695257119085017293434494946539856484705137466539423535961702812597211942702742408892148987872741426181136246464188645470999181804225611432992031239248004807477548581477460671619018591435232787104569982584040000669086817972316252861489129108537902466734090774197106438410604980965813681275144931987822592793655271619418010697453282841084198655417806028933014329388047011270664155420536679235698784323967110213134583050246482791708661222529957322245148073615550111290950395632728393673048091190191596512272444576232980941239124315184853875914373391068377916858523810599781881494385820700228951547583800732607448576852414805772465718609162356654929618141000098737181500088691967063528051757522771406644077342071064354976314665445766804402082763562863639269935859372244077399779947836135123332876228149360376089799441601662112208864626648682537969856350360703739456719329314575988061886574227609346442797677908052418692757162539632276453757091363504885943427485967482834375182155391555835162079397573852335460786155946382143625208898832128585057742324094909621575854819111072582204739490648027624147296778443115959061485854747262110919633534748267506142185643095776513104714483143949160321191392451901945166653929644154953953772340634192013729238122010225664003819798845682555703452811344773550577482040584255393650309919385725112031698361531988091998317361266390033420238768285690631467290676360721383743483345741592182546178855640848465770517120021571926150579654133825797726078924373224807503623276750082092636639777333603986225982284619058616907422914757887222332438259775028959229817112191521543957558663311633951610001190841344141097716416520744172797286101950887046318201943987202169469463871724925912147685748247229942739582033715386544228023601159431385877911825671524338149604574000749561690227683806510588891381815664403968637718034681624243417172711889405252676031274491512433039674409717889464510016348999685751745735442676342749115549206344157700632581802154600560787117703773434445871142013901779550727015750089160790089055077535755343647769976285494508545386122510072967399885406782821637857322894949741327551359713604636007005466363741649489720819560472837323379224542433645214896468710089631424174124474223154356342463401947756585393835189129904459155460843583212114614873033864076936792965108617794029631454702459412434134666377714404719669740888906408891339090529118153819533629802800870801076053625774174177395442109945314809888537672698741082620391964221353170434265114742486023923965535794971676750024873563290033772444587109891360665467932407243388337368081572132216110777583541218459875209415057422762066762006877055263179394018328528873226631315358177535816954183224142599751793469297714992116396362649351712839754564143665753692263504498794086448998801953290857302045297262578205772641665448554012001951158207895846822550718957626447279784456137809349471677957680682347937344016482103052991007682405359631684070635997622246422584835262570160406743013333399555264781076178594720094516538785482755064163173263256074741123488532667085722490952985704615528646694955607173178872864604168844902752732093953816441867119834584588341996658598895516087042289520140736574693451241202027640094607963644128125570560710223598655216474754859572752932028256404712580130244372803900240329416428560202494958854149918698959330934450224289817140457719415356332028440958545076780502119864600201383591524582323233937376134402945052347712160971033274369442277926538501806723876735796109721763611330574284725751437674257675508875486096783880195733910284353153464682172487056449399278241918776268772170985849545755959214287680203501151818842031523691895641384764831881370441730392308814425503416666577727742525229324816499447846498527589242798258088671346333165476583716101775198158340356431548740077809746536734998704444822428847026737699614777647211657055195172514851134166896010939798710317425211512100293164666491229867837857948314587320055105828685095784382024994639977832490972917190990274158360649175647795864077470174830000136694665060190362643520268668992165143533571463432088049142634903747583327453417731331507286648011168902031766377428790280844020176353352582043639739298929287749344085753600490003152060145697973206921021456875379501213826719958473689460817700668858913993225594087062363246485420584137093805772315268522383930006280756753125482178133084483099879341450990193166578063254325420190251179761938018443014107743850898347169967488150614256774569504077808186100897881151050125694969410901432955250600009110904431973005477735086441520660219952515543353024934140152491869161326360447505329523548906015336054115054151663762925201892698335709975107916784269467875651155447648143553291106740879514782968601232162964884281706271599846035554402345911772731987326520178613010731795695425073025265928999398292735818176987758703104565040417254826558236092850325060074908341107570565127777530201896606564537347614616282905179332220480786739265338361004609864969588242336859607344883459899410433535321112868236042625385646957713894604659670935201514109632716364571914895299177818109987361251352429734824395878451119058741016354158057255600619702145932079561085209102585868658543658004810620947691873897828591080837825069376568903574124978251763643192756358823577862763571192612503899070260000318552893650011744661833958267887602416857591916831917390852178914781270892122150932475829020722681202701521212090334233051077301917604081540454474854259297643590303661240479505214171532494771044635636112226695001301874168851533522232726411984644007562558321785455558644701995682943665069487127903004985324516725677506684937876489563711831592390507152519734362775473796917658243634983274676973548518078119626509572609291551437268676663878578100410429882014117214954505489489053096930609904253187549144530092415320523200650287133395982420620477819558923659236938653450488245725448391982928141134720003295128839356763379630231095707848672010906128176482655966700206772020466948986142414975702513778555031017308447053506598040928119306194586559642929369806139624409693064212372888695771733388598970704852836355698275653646836717984095156466615614434181037497817813496394659328594653710676694370332139290691855957941277109472111148624344960688377699568908761465023664092579662509109902692060919561768790950084139909196135262439947305271176310177377727857570908921991631111421481873113922281187384424366443780252512708297014867441941623755323583991190971010902948784595181506820376173573913076306535523724433447327230215269059706024344780969013572573803869488194047165479317064094928140096128365495849169002476910608586965472841359857143414832663807360499899760879088150354777779651474406953338704618905963325078706180621349746750349720988502069668210950236862758330576719532002098952175721089593282932621616382227999476401109551754444824216776416100343517773748558548029890426250707210947205284653349211822248796266931659992141654743092705020540218765449952525094955538351494564147815313107934948307027379540740790434504314435710850244576342753859481027307259442980107422290808200546734894740527806391702550932544545148422444065053123069833849991645287500860310405027442196774818861561619611145761531315860924017199499645542887907764134757122473991274296836438514444662454111267783500324837825270551646035008706970704861470022733523266023535212680855900484049551644195349560233802505612999424140456633068061351589297925579736834033520948438102828388218282607969624764217157861354938314197660043811409687477678472654797492529692960221864282344905026919077263343925962698456629085685374242232994401908182484272583643490486304731844696422895014057686177365738510926149034653892895708864429328120552673676550656167401538921762419260229063333169394667255550327182577475663537667528580796171168156018751199418995976570633441629270317852645924717900987382687162720837099066118559843362766627092603067514409180082804568723797435438819313609225437500569135870576047102667642778127134371803609198282044365329134453190410476116640842870542402070670905217398338646148468457025421496593903533449256014278257932555316529974157620316132177068826634334684866185486003694301976387971089051629043726450739962836669140976069213245164238943842692787439369298281715269756891484438134787883118115102095522791291574337572081131742419407838649512928007351440620739080439142397999560672548192832673216424396055622972142546995680460039425550450769087541560609410273070474151758846227498541694119495405081385689740016780707448802646091738985692007638235751995772662378725210670077353816999597040380969949477662910535879527450042484567700640985089092425444915077339087444609869059730058300365847817753471054479663362900623049478193587071933499596188979604523691840199032600563371266429402187688450567531227382843936616084926419732643969287849131415201703131179205059104221345366827062165726111346183392123709077833218712715338987664546462836054738495786546672506647842773538402917318823395947006666437332873097000982737604619893848499310385048202012031499561776578460785598563842149389583814695554925449526989483633813487558489545515121982124493807925457069727621832684571477713272783913873123761382969874987886207945487338454450145541782996804911633406262418109404667802315049812256136170111842070013633323865884712636924932996810885726360663368555968031153224219366949242782661037600444463036541732851914283367440042471044311096286119979313514460289375408360540313575334004501960458181876020716427974984584596246123371378925777873384498476091251291780917247539890042845671946039231994760911095191134522160338120430504062416816086830327544811043098317219901236338436068468604481773584069845527565472258327346406199766327269559481361480814032305335618999628109391839492567447813664951955944529614221489384452693762253001020779204530945800576209211317685563665936513245273335398494561682989368632911769869432150999758715758120455791973900539563533160467616767568495100650432815976944929416291008451593066693175813312701711943608236867481998835765643110922341579979237254782489438911191697096615861918448094104350628547139242643425587757269327731632494382185241565994074145564303764453961459882771492223438034357737310037051213111292794537690854088736964812569350284465612916135451215713217880663249446300327620804532553562880842541386070973480366111012497902239831905938655554452020115288199236061626111579976257755322247480267429892393600877668121980890532096054398193846537729441672327449432039415139963524453134553869185191777560635330051237188455226505936103957686246665683272669594952536467324156975536601151883480009665208723270046600479738768984364228704949936469867071860079298208025796639578515243386480207533201461446950821184571712338327628728845943729145803624654453782116607522379706009002974403606544587700786924182272265240266305389634329454332666842517879398092386893738938123127268495168493328418829894272396857125496804998386293390284065753802926315230939875174150113987538109186459771062717612189436031643229920336971893790504976350776447327242972925195973560837822969143921661020836357685967271103871398994984875258141861732873265405053638261324750738655319768983693776241017189388034514210100982450077763844578920944994551274331375565193249393877459833403676831830703667899333741782776910658518295905441931623248893856381458507715896674469178686575054263967461348856739335607935252701153893236112054070292710241772485205980545938647750145581686780410567793033515914743843701403603362673957153278789527777551020987173129123354729457349265136555666828715130965552611984369459044967573631029035428664480858668995767197878487057396795432702768133288676992992001347098009778467575655095780415543377458552494670487952327621160816313199431690117419457108410762888143609260581741250623007049552564085414098392178848163593706724290405692214280664750309736238365863819308819036029668086996811944889987073343033366264661034004526413852919358518393140550117226305809906805691656015495270869701313112496500420089646505657691759018005477681429441695101470096189356881061676830898598539067070600693585069958098297329619097296933237962848731558429745159888655945242600625111371298293806990949278505299121070980859022787181503595226696651751169013054662248972124363259834010416586203024544258503688598406623005524981971837369505231977966649828924562988194674011289653698501234475125335958762125923260260289431359820028145040312167643313548248498345184097313187238358472705692385043699679268359501818645135780527035760424439861526985751842826272036390997642167698421971317806195045367594448211632003045066439362514394120696697253911724977270505261106392166099027164953954863679992515143928801081045990765028859260044067300391653812751956628104012768563860767620596814395475866307394150382387635778315124354643326081677982685168681217043312778598511992559509551705069160375897984363883882206203533475933124152128042906202070761889215410863205864605115240640956257517157679692034065741722984650412987265953756818035148731490115755350658425714985669169617669894068541084494711935212161807974083376094313583142024517031923708947751454451931885516236424184250801672960064702073286898153588302995539091242986909930390069703440663244528618759886936101737130930038359267995738542972036332086675157579100092662781527393732285222329881238438435107404623906236982812859843530813106575921653625263794502578375270784947355796497443969956815088340036515362987857524470913504157289021617714422635951087414006396149543997490293706015181362964312956694454692114712354081823397441350051886472995729386604330842429106458362696628416458010437581773756043749044912010677728178904103720058874082711501695577122909925330813592141700370483217529348807276654458027277769728258263400906923451236310364960683429072921893179655879971457623457074127201764614970427512321577494262269469964883098028297364289905010122980747176651453939000616380446569313926065357365443819725981301955601608503247640723618846488271175872988824659145949067643106930028845054890119119535178159498299137172702365002404167820983202372691648246976665074392134809373958925373221870706419814675027909488543238288533027803634072984811300711016218229423929362969232493578717451256365451017809939859834191481782953581258405387369401864154578620861859767219493307447765819438273084200108900950092797639019238541438944853117053215818064291538062581020451619111371259244246666139501069635531720348686524631126075657609032101729411719675402871265403927443109234246921443770117839226593513004725428545018498317438032653301368627158171327055002226388403864770603111631411008414903947657103976573205255877820355509462147926524937600249830776711901022991191731365968470508090777539651634020972095795832896105296460099752328412373011661808754173482817940732133676365405302075262617258485628837054103621938239878560569792652705780347505508248877106238671350889188382490473244778287529765818031452354029572312969946532190209532929643979619926279595674369584971476856110294142698176274494736214220505143986951097245883534293452747049980067636435178982770695296252724120064317627207727478269732793172384941080892554699938130084493445976200305240803963578788988443156099677998769940826481477284315820125480730467262691356935817587490058926792804570695458423217664488729007770150251515969783168870618595091520303312351199881712725136701993937454443081089957342264332164290498319097030199158324586372772031459397849886781696126064710815059279995767879773611066081655549067092717436092277767691264584490547461644906205346804610613523928618446162294124685435046062242253049409236381477859562171170891895463485763303908430889353846396646686671005684816644402782896390909816335945371524427891341116960896794963920385954552594723600797163628475490394166995411881505932894216184247483123632311886536341384369319968045928036949905889941451726650865915085497560844432639441791892531039155077009836037912264138171479038720409859543630863087348493907233594213005438058419476079269974620433366860356518950516329058106056510550495795457682387751103017934087683740106474153318358984031556885160804329878083685881489924991432196180823867762373603761998896508991625350556718856187980417181564476126606674122512676921875679222269150522169019796284298445358960678072733578088158448283016436064876947895803819183011398141330827844452168344356344882942321929013808595587013547576712544675658624504818549090523734638674877751327096929740413503375249614447914167556761619909051782102536876358213417542791827159480747673468674139238390306781511262961850609579051394619820766169338261456786934099469468276324087091419640709790416884263667056245207930231113521094767659585221365203416806028774147301113330296116763296283367921047631780294049796524441122718675006700445279944157642966926935008406652676138644968107499464936388164807950786753574809988771374065864888171791104064582598977572894668962579346732608799090016330160054961278963232846680704277064870948231013100239263357429371293057935316699180009459138880387489634728417564225089876484010397203304075591368484023183787968115667916824592718608606892832645190882352303446705105047090001093602965871214993124537326412563555994564474585549874342788039870855520271769730491240855969904590135079966320670828958097008653389258595725963551704897619484189900340037541281462460764669220558203253265318986430294526339799261729362359425483434992438296242470866904514795984619042730167174347683069912863365373979081774535077780087987169795663607771673510300891658250904259647714075519638233569773351771405214794603041944976127648504163337592426028255168162993760251262852880701121749886285811325656948091720923303322724035246968146008047554076089779115476056902660164517077296557760547371811200905410638293214954803903427704656987770799302951174499882189030511240816960627061492975035021107918698607732037986891321198200734192746548589505463028214823110466608295862802790040817061668661158237674693751798377381671434176230116248466045938207259959827115195329636031646391521115262094730029910215826868108136051294165647629988376091797667258910753230851567343914579880274537812578415367826653904399556296730918995324879879936578194151205439073585234499369163308761584315648495933607197280748739966552645488927887325227195747230661817261670381414571256919804348836691227436538257681456792905045776151061494331969966286881262484758454216593556739250441750535959160654407736732263164861104097762122888639829087741904414649672410290110386062438523798881524881537653389463043730453373219843241947160838283797689493776652022555800925007909634736093914125687797932402840452185917313450747892116877064130933389030831240763097488905204662138008921795665982149327102312181467563290165839914779396567619295982456480031243046686780061709436668196619562006552802603802056237547986984183236645112551140288549020639967462409960804367931806098710883254027407393518119497176871315557084336443446117260407468649025649593037450940743944169796942534838051336385931760174099689217250775381194041595543770817565937237613647898693789895342614055446406288327192294006751371024610628247618288390350594490457512357643101766986320143412240852495955720079158921908174575399677406766723846565758643101817882928519268359523974009972493488036868786730637775775525117778220852097715885812507561447965796050581024883843219857119824817827282995578130847568483104483110798977471192459987213202826941793138843584487412742863120496855707820681319595751106286352295355973334901969831038390548462129593870258527713475801084728662766780246482666746363930204657550193251583609816709103730846030891623196265209036115098488413736719640549563569875901814330910171889334663964130024252134148441965578844083222804259688732256266436738298632764072935824509696768723761329672075935147253888437860327795946995064005148894533362983492583240698853974729349082466860352605371536082041891080349548571587008327124503334307309026466547351327701174452150285230148152558568962729761773892701230754600314466313841592283194988941317603815616480545572094633767555119336593723606978821321658816458606411873796036094480436316283004092545471634601257221611017841333228900188558396286501640600977609519232558767840132251112598343996273399037041909245087283622216136511025293102304991964905353135960168801762435067965185134849572776596757788637251712228437772056465711849722512051203399979136300877601196590295932648981067760885049096967102309488636863824200433910316099993735225075542182449498587327425693386328998293639981346253600581619220395767913732902206142022316337060116152785526364857199761767313382885236460691298006149132394033061009222575640408095630134190271000326096305241492335895250920852709429382579244693389556315625654598284833685191908057704117402711313206776704002330856089990996269543503755584702582476701246840510595643597823969121899611113390957618714412811757093050450245215130073003093960083170808172753104773589232846961933397344491043482713047849576916176529507647028495243601502173126831145155912109732457564072744497017800632693818784670008361106725999800965043055838451412223683463743357284373848854012529932062465400449405358096770019883688805801223919087045704742652481627936802625976629287242527599924582533571718858611337164202091176834157134505333223790146337656334182596285101819289535530133174920185826551579073658144170075504267780657338409347099257585407210650448819373916390416870216325704324607248900876234934594493780706766629820455432384998938672927411187834046833267383341873014153896509701131242915301894121001426049526378833402265937872368440020895129971910594979086698919391244030338476340952676097446319917513641267637619167701069576326523820730638789946006644521974873629664339162667297852708901306647151984165507787199188691597711454740371516439523976951624284023583278581462563948293577005186306491703020044145989438177394179580741057545710752660218969192468165828314255886271134843018718970254594338849631904097059221972370072942717846021446853081843608971790911575061034679672245887245101748518774712893272544162947119299661755304131982530431989780581499877023219387134605471095916664584844413804336890914964635806670904406757050671036408699658909934623704932108816523305586362451467496710821075340311519506222126033005440584209842723194125668181693307832657322767888720744770262427424853571410204527561107126828010840241101521362305760360928012490883672281675540361220715102261369395101270664113602707612928810902770020643624629536584413017313083827531518200680358615823430365636846972882624837055808953688190572180108235840834919733011682149453093849238173336025433288638352304194430510756051616628445447597918628933922447832804112154176773259205875853407168464447776123898348763434924796060451102501631262413451074205560425721647107682325055545416162197304287145398532081752976842004430664751168316587339894734556169986193934605582835904022804467105655900317397260275190329000117321140374229289660934136411777091307982745357810321744658723807800975404886719732344951332668400138792009566657917122158734225238737519942445479566628998499565967176571283624654798625086107229966383636890035095433357157986234050259247539421047533646577024173001513395920942024860443555585215162793371180435795278058668488170509289767796712555479987860106126114564348206400738106312842938992443072537958406175236914214719244964723302255156032670030705778106271795692998961583840112897375703727249437536394648557134555629740418296346130006786312146995192599424121290635655505258347177332922406021693731913373619995824008522956902387124451345792953953773260967489568519375164871710286212484123834605966717208124337980823139410008553067506550028864999842979978192949689315215225026502103957138774200114785940211241815578508974557136935599740034276459570795218022166950445748216536216564870330467142620605808825369197193445428231318717755130282639244069451063091082225688623839515421103172184573417675055630128171500300240784976151442841145770227774859359060328621000154950337235679396126345766970523145040545508407764477980004659970185649407173604198080322198807383696272418456047807450797419917458784374765423748119576984724949515333944726211011333537610329848070437206026025544891309829704632426699397473314421471101048178010029719041354762238433968003527122842637663235463499535669456828902269281477460857969425619196952903918262756653532311926572705484239178723068664852033320476342805303062433590116866388990568828707738954825585129924805846094072017036589895520959326367512752376850552183767788608171309552192685067487676007109869383911358897223087971458457259687404425092336871067516076820262376533656037593290246756568369204421665839377774516500034496219741208011430014946416190936640549251033902005640023233853394631479459896469393783749858954523530782956306347971613659394427520362084199375229503781745673516454664850146293484478728500692260619325247894553533737423192598455087362996832338427145175396950095280178073362329480561829098220652267172157608364719868130162134173160709208328901241976707608005710336265145273857057228435316919208159397649786193460320899391494843907865490381104472815483382578522651833755672592151313646709787492609699908371123324265142721178963237377214874140646946047998595051303087989292413112511720709630816010143125189103695159390784455462635491555142258603524549858300540035204982610716631095307489246807215243725102930510096662253322348643023712108952596509047175369819873514311628238280315691721397227423654023180336627019864488823723494040055624044678253066336250925034040190951526966328212297014177190232013712785612866875001360212068840804462231727924419076126804724172072108453944845553567020319938636711327613864830125980585907181649287430580736040951200513206453072576922785601920395266596008468487025724978801910365965539903120262762348835436328678152927616829526042010533913923675417120919780315463161432748155300431250690124705707487896618948351741724468971328707333293044449301717546603963644260222618563337856980772421346975771137156989627489743727558704130075441442310787262885535338267580356785985913731551981110077254696582675156757417113495094646289233679635456387925088918644121516675766053429262101969645359314145348947776106972951253134974226661741151421002230505925115135483023797227652737094723063922042485784271577426902219364536888975962734877174259827504990758993372004129064473576762541739046058130459743395764119441240082543727554495355433732140667345499891720747128525643526746778141597931240335246373254704911378589995519143573998035078522535072389373546785533053551723553515839860274088122913537284418731294442088605621027379142311361222592732212430150274297495536200249953027297554105069176075399707235392539857779014808060072151120502485973359434430109111774329920470041022786995698794854509437411232470989595295385590165719013075932032719632869793100110788946940243304403269141848887800195019787775279595813793745295980819725274081556635683475292195415768699654216905498333290898734159830748052818802729365993950403161418883981126970871679599513343883370543701604537607606614204126915006502019913538471401121209912723528173527568042502477925912775776388477991516899163534119964304859348624367219237819143942565532954638811540011437523269649692046028518537604681979146207601801378297800638727032237246167255198469865349906611427320103410763333736233333135006601116765974273130556454151490230326099300979095946644089193836851763654618096543594902565513980757239972019337443747832117478954295083079696175601620191524259751821297030568318907287072903240351258118860856963332961032983380629300065933098567053300122761139898709166701261259190151776309231030662358814897759635734538552706717575924996577976188174605135919733372653418084807915349828812047509217841080321869261678533056661699745353624927121758970915056881601358622338735055310894012729524226900342706204482808758116990000697312979185642066327150644409014701298722181724099630499076033503387188798474702509257616581051237641475738255341994633692698445192845514696410501239019006443681334900553361366472792793969239985596581752887315284409548113838339334319810163983585123777394360590510659288710576667792954607759143482880787723905161743514979315005746495851746361294916256141396759550392744946301358392678644965945384417361417793490223389927703468294872633944216255251712855515437480789203655321088953890976955687772712368500372353513263883253300969370471680611681755478301911816148051481578213669904424471206926373763837939759997571484748007865595806954259965936545189151841677371909035298276122155431374705969662964904667002708629264348831445743937089402851771095938327636170489857277898737220251180565739486141800172646463134762662597797767637149193665355767318297768220611071892826651269666185328998765499400223412763104235610777799920453317527318264134295691423644775171456510329384314293594267126760024286863416276454669243228100473178363374598061045687703641536598918226589918707156998501068895554622406585096307552437358400055787206610941039659340910023878410345520472394518653070093989370036477030970965203808021929122528618915161047917704452378880037768974474770320375887473375234813346569060777346292795746448248916362446177118967381126532084581584424869995418855852979221610814469529547348729850900762908108701056561712178261195548322184263399993145366915512266251582313057687890998497797608886026799355967293305796882006359523478716672110814055599411460626251015982851222943967094473036775163550812534628850190782429615816116564315412564043362014177823669137391496776185931127907489092092028229080436022873073652793345058606225381737662825791226503428808878432136642929835898929271994048239123343800795788114197481700634663636308796007576897755552167138892108882532688095387956000310971844927764527824317123048870172270298225244350684162417030573787728740458464521397673104932918780144896217401539372906322588755178593132452872007894348066422006824524499073344061014517167467207745792954219916018000382068916884550682161102933925889461923571828336604911873857985265523796711140754821585255442224242268731396147912195315427351018231317713249893414997779254430780228188484770474355361573885374100009202668965350966923135053708414377335292983575061072683178389736075856633899595041933669413383563663577072966105751217685585388420274104823345189047114736112352751366188019548848750284841431778780698093962083707392754832284307089858795968471194418823811419417119557521978177478600480766677215836906882388579461863603392720052939514562212363168566166658662375810865137475381713430204188095079919874368345488706632425000672543766290504870061131135734403970168592726349250403644486083180053702524391967743434588581557754782696530695939130751204378440781652377671393690822433126370487191035053507708110984210822469979469922142648071747210536955905686871160236776629218923611110778096524216567687229360005535239835822813549211121356973342151241488846112533893013689201503216783667888126576741754712983757155707971074197268066970893343665269742879758772741797761063149868171502038183196464699809809482229301322325578242058078473759361849257557776277523693152363123647879226858452069188571916193951264813162172924414406724980680889195001396100701055615727811995111691038642615665618724715380617915675833482940953461014115658542486064829949214202015562260319614995528018994077679972250095357834939527539429236772444869243170373677535305882477279347206176074136997461604737059751244002024434136432582121990226555357142125873144576050486507098531775574928360909261370500188528959730601435246767523355807138012870902805491516207501439337672731450816117103895192287148184639380544795854176842779836341440474623096866126058859422274179170110343194913947043092819244740316123337614471273655730452986471149957003822892050792782444564712288297827061940014008047449507904858838412948952784439134444947783103711890579516351532822161790477314361017720708904870188289499391088454803850609076344429325229908562458024008460589620248483872260605007947681935244505982957955799504140799714903138371084417746047202057966272806986660466233217644903598369109010904750638288947972389069672242544857190762022866940492918534944313064827621003939671365765466763557745029178330764975721636310729656995936303970547079848683360297404367066265027311396193266587025771572019546864008895969173060537426019283477418889553266408842005071451420338218392224459595378797619383448569833536029208641602274982508903247418964343616631891435096029969447875031191137024501778416743179849310305827480476730213433832193205845008676816512783021272970661304536262916348487466017839741779854565857231634895933763959745694783308931763722604588958575540218496632079772948704248031989054357530790680271836538187501820527090335563366014885154051789789208861052105895729096812183032173555046274163100131001287651245231626609828392597220560960904714066709182496245935997740628031044430312639199755349201905727182273553963107861041667847352349347730351715554735696981609401131650318913035555842600132471593938259067585955507368444329563561563214463107870472443227459863227655490714365466066107113723999547530568990135969926151852125117700492655072340709878201900119945958849153443077793167160927636068492563167557624305610820803838010053978873955840899048441162680926491804929567753035721509732477824236029522119748522130309633075343984954606826104923768049257493727242323575153385826639934504343300532469308764570890553157433491519439371203463733085801696914925115878581665294381531564171886109065066731704054317248372711332293610063431210122090781557385018818357119053356138817058430133163790917703628947915357574625425695570604147975359118733033602934213687116880481704849026924617029482906577250138973385919034581676225976925644850818687379438908166892864857885961549392320712421625983669901382737528225833233753808457614881016317877523884918449833366021544049539422139919695333588509908512288362726734119505739510674579852487405060048072797125362491698394486948176136693425941180378159770835698742385208284141110869680144845496013047362166020437101464665511832830570437285796060668668294341753236797505486355021084024949667846821573137603784199845372852460607357836045110998346821913816504552826259696673346406876007598692897188179334475877858916835070102338278541961106784539143717060757464054755147677306011010120014617607365171402691695604412445095050294517318168050062583105966211611093480904327018990553143427789230497079825682602534340711550983859537230389556497119118729079594400564191282625682667708530514182216416030834155012053649079411892863857310830191137170384357769280891023362908476951231950495651050215179008724326140732941228525074743518369829144853719253453913005816861996896694248294499577268966123552692303621701350623526100844428147048761470953794955884703976483086911307849473957996468795544010961678107432355516688000543426822269054161828109853712922070307980712281213902942705324488484618690200664904140508044552103354999093830571048319479695995598683731969375227198339799399791909051815042184028969982427723454969312435213319715758116419132512270494249836764253708858285825302870203825357217603873917650187972017002770440792872661714588699179340708555384230187685493449962512353628278907540745824473811581069804200800028118899939322442937573113707638431659840274698634776008229720510411622549517963696700502520325744323615564122394893499919923098199459180123127433076755218495251960199104352940731555197632169772726730277086704596704751970604366957915336902120378872063090919139311855101168320417723684825033749502655069072752638799651804366218740692485880464798320608465842481170483882930171750181872203032358188834380394105475689352462701835196759139031901698304013807594844441996733891742516723194556413248499202065396881350317835667867837430122191305246695480899199550624537395524682364802350454344154434050705254123933470560712188751104782051846885218017429525471579568501645412391731554301351509243271870822681034240267120748374615391528908672214773527529072280870543124051429990070162562441516745223900509743366028139186957460857146929081308858215502702281188046534279909790945440838864979531251192986897266424793066184569445679848417191463013585901515318425325938381913961174922645634658633621311531550972662786054438994994667352347372684119248448399672411110326593571751185687732049938942317675810589209678899770342915851125323423995619869674425495216238439106518400057963748601384118634079127001406158939616144746818434949122302301946531531129683358916550844226546283988596303145784177971306372024339262397907734434698224789332381763065513700906159395420444253893253787597815335773897237961913967767004481985317181351834671235865497707136824047234740567593532149253625940290508848714402518032003620518129656625498253657762401813714058537972848266073793160941039437648598071938435432313743438133145166094019640016668153873457020703895522072590446226086470665880026059172431435070595652238778404732055018449077575297095502033561997716805848307958820705088080348903809618747984922205463884575364074909988407859977476827114040522641306108565542492624115552488606434887302708043441102279916607748905951066009429601828714014665035368240506692584561303342133547173808701556851065289329412101426265221615371075200640236193083082889173148097372437531084761978848592870149268870140967162126198670467545852564010390503842512655176735990192391056423350097524771539651169595994843197310890033172521141801690040424209434675404590670215943931792922299424516351550558139634512350353009799722146780244769431060406787454073990676319609912544130588915281364447448789516672509506356710552111131992614248948135248416658000475504843281549766928901396979950689748712497358157754370892303005894124371543803725698681486805015935478287623153692903496303857642072573291849539369737379101749924847364867820214800191698960767724944054889955576948782954387244583456099188403381460479034422881199893076081807455653415176538037754887352535542501168867789719863789068244255789625732397699928917596896373057887587806464501398247259903741611103126259958970311654411348719150938986932943960111653252328640138621028007713594165212852586628682113735300424003541329451735092249264558207468745156836929617839639467087863220678336451848471522876647366074989111817549890564327315255073504258916730796849016552448694758868873264507653950456985840476696636359319213022608223247279929378755673257220274079166491245091871087226096760770609214343535230189027305612077441918734924791498475042669920222446597127923242409164561625547324421190029226805193762944447568686222657965508097298197903792750197398393419400323539972611260091848385949941676049016170884865594718357417979155752648430787963450311098908141546050683269203458972468357906435453711615853920067213015302100401288060760740438840519493452736885412691412498444963847763847483238264482244134971519004785069461562192355869119606250697120478866435182900222844420903837121308006383084445652876263235987907769792018603616764371688525043803125781723918558204366038879405463481813487405084289297850006320053782934291758807354765762410941155931983433388220358755871405860815667571954445903879595701774669298231102639848509093570250221946293559353521894505905207564036262389514994977938300111202091010551047245356245834599994828665639157459131111240931082984246766876450033682505578023089064736516041626982678273110946247575517435303709586310219529118674691213481970042920677043870265530396880920178532272312919079188444796746393380775466712556274382321975822333129537560543356219556179516785115340535819185341696124669573887023924043072242793172799504426062572849420453629184784345371118505584131019006331425165450710640911780649039807336383166145220402025809214653217227699255464498090912444567272930929547159445430711339224124496519276053419492888824629002430186369962323061153096346854868059957186912103343512613104307598715674317669883248053140859904303164794740173303861847882886311451577583709327089622917409062604233647868853491125047832262356683053885671012277185876716088313939038491832602072647063073213420273822420063957255556370710771581249921184547775719393300593540554573363680458414564149846513532583264666146233453257766628788195088079173520694438966636026777378683795072169459617475491433625020471395515091347134345197267547471126260471303563177082840655164060599700788826345531834369174369593124119801710328602945802691946455284922227855758040398143665172943036652789728799541508237553785633974560933022217695854986603456475934986630419606189027340225147676480697407146018822976247164062245437116017033501793593090265336160345495711107266854779124816050798015802818645525186720107200094558807494045656687490636677276860586864297507523985080871601424478520562470014723968520050288254753246588019339531683911890646114728681434481726137459427208184962088508960321071876425017135929801746328307188082939032121169065966626842088459797505851400992156919551074224336821814248714603365977548151632090062452897985501747171568071717702111492809934086808329593493349718409317847914267672339654500954065820453266960733475323767159941344369000750620291454530061351344046550146719456680941185281622527445399508120289506689838975953813507106779669994503536007129291166197452271449632595459964573024171427954306359881864893404465971992780861349849030240962729738307896424601324609439434143877895391160823323758015515426306258085137044362261245207936762466061188342493302737812417371864489450371197227894619925308068966687622733345634653019459027798332192323573728999240128393410543625769929195154904652158750955622626957168240066604185110583732681825915520702042102593754889742178487716179537506628376472202789210877330039632334204851295444851629047787463929614938603279792928748434408296524560490159539136885277234384876276764263843169378886969788035013378928853496628907190501659080437370254550350367029992701359051218292051810835830285683034017772959604285164882388672105249151128029364526195940169148493046331262153865070677914001151848827912202330107565294507101320615198427274229137577391267917891847479390076289209748167310644474008707130738806417849852154213108257693859727514998140745124504949244812544358970355626498990591615225468224165987749370087289627229168488744233352328330214164626245926456087731018065759257463794180794719490577094404386746706850982596328834665571037898506081542390570497905310507215908873635755229252730380091978385659462776843766817188112011927383815993377543996608598097638048416065732647823224535342930779439813247233879399292827594861470606198111029338136445594301456865472362474698864149481298386702820963025726316303663651059497380756696494967563543291745349863909381949711036065409473094448804509292930585050584041826434923217502699106397594822505974403717152770567155762942770782997135591237543819806876033161610808021983451270945357738701987856070952725890379515086400227972926991182566704190089050330207217165190351645692368544659500761446083410844800711538113499654180451410134911112608123681844432239831522488935744461873266737158395160327515165009435983142639311156836899177763407375165232298105437955379081613802848159849354444019718623136892899913815933172686546478356401065070345083924084506028602169237469299916373668692463467233384561135252636563362089214583713362399111640942275683694736913704544814024262496768892721682569984981603951942128956038603453247475206490442327146743776839096108737350495595298474253227704828566462984284024582326604897619687228214979784891594080657538092350045811246451695505791299863727102661807109338862032197968171457816421791178351812743617895840279525364865409851736615142474492034446491160030458585443506656727342532881450235322704678388823660740735273261784533899797457897168057137513662828467379981416588944063448040208737282895382874235398265645046749436123172200097726439627294834330294732982468925940299137237974589081651352407754031880227531952603618421020281270663479384249356020778179512090795779019137745834645985187690079144558452477637799516392372027339545240687709282089801118274392174551443304325589091705978733038442909560530104904304107737877414373742879401260166607107973732919307064267628270028255408793541268120006711035061823644186178666113661599739285339981367223870556646002224492699241005937020525002582668066217738014205253570968622852906178874080085308024707775210827710363261501835896463791708319265411868647150253163603922498948176103598913386951899969017243877149584607850624585073814147525667668881388840576915730574268525084895729963196209271834666611571301117892823847341932979191950405763761734099220491969227420532372978740709450051092213124330757075477978140570293454213197458335527913686171081786228678409562166651669459799092265293345889335640504503716363145615043273707116633651815920072170637942378028347638749386331253537573708388492709578091625794711927090258365820242472647712005933199499595586354460257872559233857390723288600276541502599491715240537747716767916925455492370551656636791144870331491383062985730246473196509562794216123902802898533927347663797139892718808003037622586960758804131080381387359850987633137419808313135995115433046165534894327611200667673141809211144033598442915011800871523646519595387088103135329101239129012166924292152793372653008601658985912277687292477318617293219649421520949018848621852883828579608691014759548047940556860308976280448845402516063855677336460347513349117439731520900349919869313153911651713591232466457242094407998936520355686590953985131958124357489625706017899022270614148125023228651204985686454087879103217276525223188267678672744232410805565128987013759508780275411807626852082417105614901285345824836178840749137312918166057283225785329614539303008080151857475004533737165350292561050917790580236887658484714446800116831937820528713604423694761675643987076236115603268896478848902481485734405095728357756903305853763180132272277602942773686751280799113422012249306656424831761690773916265006111649044866509942744631076120227197132294344750565355284585189340283387620550166704675231385050712279059540474167689964019023945568715776151715635625993496797682152549524943149860031883688344237195003837290524755234299458194330836986074299045524856089988505578905363957621600606218329857649303571112972140448697917050523766196658897088847241272040158010698904904465971757357333912577135359627256004142146653751228487606953860435171431920102524819077972034259499267388690485167358053238301083606267397111722196760410025947670934051129053028387934692501288707328967398050188256906886497900128512316897079812233534712296275491309918532062187955246574263383896013820187643396383472248289192480010323624636653300052054547707332803003348524070796207035519788465827497089372783268474960992665829408024318099277075356665773765893555094738198669305077801454157180054125816044684910881723651828902961516554418657215015113247171855624756434826819846980060199245347367525840314338447047101930014369436992799321217886449524845460935483006375100353038680142774688139200745989076126893047445973442251790971509529041031177440819861752023348908522419601075636765909349713349899264347954325753975220995187789849693276576173791577375302491140695733926667021449198841417989065507156464979354879974924941065559561603866648086791791360363861380279750191332121674730794606085822833416021452019993325303809918786272368367173360133426399634079796357875180674196426770946569298247455428486607398697524350788917289177910265495618095636653152213873227789136544833952429848326300288729585607332226637328285011153947086258669936651709764912776119226709283267700918409026550543878465850054113721687034447029953337058457172813025052521978710697677559574354371122837166523706698791029301323636134580468255626415773559250118444816825798103577158206241941879593490619302364261856115543303448405588183543794346522970529305362625622926920013643457676876739149045395157392354393947925499563929180151853420970095955081256649656747718856735000774554845449594503070239469327892390325467375892936141142977249171675132922319359842919455623223929518522915414852887943663187582761932848891867397769533470558830638154841150029272774125584125615489345431983545657438034204902811345652301578806489624286919204553715779659084102053016534794914393951706420696458192716520808697341336061571085309550686599486124204781918995222705732328788509672784894402822458570730219276462998465708408253802436883010896958852403267132249650153923681692138904092242434279221055203597321188328232135789553399812339040120578877114372134362211726811971955174835862394548937933247399769345024994215520974035375656325974817911351159079378322355513828135390079701380203803103360845023106430587581541470723522258976753769975805581214918889405028295692681662259376768366109155422503751284573785201453320924884526559654875799661094351011157023198987682987988293446226952431926959054457868953561296533021068605059925606192248985910894201993583153573909717821802638471424917968160634022643467458855567349003558000751058294684602316652069536121788394700412855939470475344983693210930194909940129036658139542355073437191354990187196685484919286359362895171102326488129115631363603825035973279373318740297543321725974449072332915475643553708254286891324261563106959621021427781999596441516781540377511415282479692100657040556199731554898932335784975539200257992109330783403258498695665836667534674841682089984248290641776291336490763831739369814816090477436657279346312581677359236161325968452583110856143673792889267707115155415825169940177825181501451662795869138296647902334312032342441143604018459701685297022591241463896003414312334034187632042639309832066756985999392974723816851887379576213259595498253196862903568216626658755624385956110720254787838696229379341454470168439046770703405506860034558894585385624067517301361769368810606760968147514481585022696958175230526026459036983707291943630663826878021376301040905860741430009030158592555497927734486683242262139408449510376232755404954104363508089090780610887304391352728330380458721423841118058403054089741001305737407903822314149747375748770394158144467927042780091985901681164088185954744852058282067052817650022158832104042944282970461695780581815250697365311545629864138236403007147461073693389451309273521993874735758665457204249934728158898707183632958459144424926237273863265879501912455998204884330596819716701446269718714135879122675074048761889653416076923698876221822592674002478844381939417144281831008346782981619678040005042156778515173136256525024946619049967643686401861375222449041325223295519592143418572889127470825798433281256497293148241450342039117632343751264428459366929712755488881811501119159318674237740550238858928049397489629822885690315432224366906879307859413376774495415406537963430410831788166154764327486375326960156077205403704050863702211548488955056972277130961953386158075275289447635901331581626697598951195686951500963927763317029139698503433459934910464522181706393176373127891980730096313072888803059207008227262927396848983658351983733105504742994807163272174679388443684063288321173902496036928103122895844470076406735610060217914098952845449157159737129370952127715152163989192270060676973700484240212780083862974950597854765239472121735727627260926710072890146414391335260088356529183566024989100005904601876875803741646108132289497492252042741913750644044312971383361507634861883664975166026664775601202191195780966382520203421167338984619813877952001616774868285940868979076783530045607736857592408582018109541132310140630463329006184424126347382745028370630271634741268776473469672623611756068825954984223944637932984628484364628872709411364290317923172946360946981933545468081654486536915789768834158155455124517114763417159128268914529510028114148817185095577697818430400123714896509142615496625186081967666060256507659812675002523507115611855131460887514513935120803505335772361942011528341411238686709941844291317950507437234093269407414083207058196872084549101363412305506288032374624340536947252274998717604683575176509508433583813558465569753463401852546713305699568969451315506547646291363608986377347681447747686608230690858222584475655908218904182784554211947671622968818003702896828787494414196400944594041327963818283140852700723262594671097228990035657758440830341818451714452461907489069778124280958561335256236069277998674773444248522789448058383138647956390781591136636747851198003072527383731045578995796714393839534028516911642168329767074589171323499127225470203145220251376859780381537257022782982722026594626473719703836769212300274619145852356311614602349875033682882904099012979345856802252861912475375560981211244673812944377837039063014184837430315074718251256067534563264910900556930856511375439342978258379964909260021511541913516347447454072767816765547106520114158150096918531333840294617493126555819819904384863451460933247819979144167184043746815550925722398483679198473834150385344062905657285297475925451854745966331611016269212613410163947719083765131659250267680189391411782539810908166346545838924211518396392417406984984294710945088141576951029379716901806385377368769481799599697352237782778468916619973711314426230635545359338545514392889154691659960570784773964545618615636733700306694771572772881428002624809112561370149553519678587413408162704768944977607594557311637936963218039479225254551875144532506174363091829643656360901943368594587958594194572983624344338738207687158522456240895659838249008648021523342038776632486563138221690207717149569876907744796800556860042963189145411706808726448665704255105462631447100905177930142564974278703860573542264111213235385212803028972296530313585285234701299414913637291343587035889318007554578323776303400281529466164962195752163013514802132483114043578550581718213547263155987717038201851506702888687275575258782542022188168193349063262329281941857168209760310648531571018785997116548196781840058879270945495598894834605675660086033425661760381672193481413704862668259415626563442011343930183204019363528625131970999306928669248536214136019323484956726047851859713360919599811616405679608002930110705620910804514601835827868718053585382860622803638357525197882280287049069110416748312598819951969465155928054530454341461570182141154079540942595368256147264995026081737558314606617657541190370074938493506427055723866240011639452075055885008191777579885653943067258602697679930246932026253051836998458362594919829039482540672219061740710761419758279864625019741233666231672819413757334698356488057841803691534436364737310964414069907072502349233847810475675110581923207047595336286633828311684608766752227980353688786730026966266634702676586962650282008270438680542279104837274066020343755784845837235241058495630477244997856991020267267351937133912645882664306794120244980776002164512972275403935925221874028710347678037974063555465761771532455397008109887846293873138103687407950399185976061858952838239868971501639251264082317387982182845831489611068400074840091324856668664474917988377766316624746136880875549752819990524988793101610822127952019708034025314018600646662384858280810548685710125021436101960097690778670690027191434112052604556229520426334963040108465266234023672227363914193318153183869800345455558542576678858098942097870745410479409625159973083292279540157266889162308511506176855916057125539581269846188587907643690234097005229299606513380911176136864061528443570659879175067780532847021040477370681773835911668025532874350353125304570830362012402636923752745438955554525766734359499860832412029138840413977000666366873840111722399007556876014155703175124483966951462484709594656362943560606288051909389296955104887333894542148770527488608128120725489345196755811379153298030646181300887941332788765946992358624141213358152825081661361117368688480527293106224463720254384254997255023983653608130967884956009239238088206579134370822650919834168480267989091709793061555149458162946285181332225547421371795579507717685986155865185016168336462574265453520344873705312417998333816870813442707496336455930335683168705019622063494978140122862679566123855158821609407259694487691210561475239396359238669407189857120382571934158659511252440833025365464926316955884834599358242625002461546452070290349297110024663762422780603484597998601361431258513125509980140930208687466214885322781878376066014747254281660322695946274937349677010852914534644987929860563812087758456568484802984800627120793834464981627462766354024007489969658249604116669194949899290930232711599779053196987136009439853881984450117318700717215769163493086000906321439052445610596520194466705951533436485951033676787511700638900316758449466276718851059510402971249888658026792552728822363821651788297986987318691495444696753455284671675599163961022007792324223813019477385989976734509464839456631865403482221348412223427483593115436307447281450469729859970063774722187025591270156372521331265900869299326649254660585369822335600705571562134595694803897617085784501017664547321787232946229771113095756602396347038278660806346286731537167018226446761890100441927413881549148212760224778566959147043627070907128857558579964083609261788501012201798386491064118814736406854102863468897918953333569194845423463308405138743630490312389235284188890037657321131468307952392409904827703553495606313650188734333157433530580591495186919318421524378808575164850347063282706653224329044366241385551831292793892584021963562713981588281429458116425991875152194072369959996340875785556601537815762266595504644357370458179887154273853981547379393623089239350801207558237732147343827842636795786656737119760244424239137029350870768971691658345972945228661062826987107167854840114927703398478908672693303845722317601448074122756192975534033343958602177844170424032065969019113889808974504448287843881263914356035472482049892649283611653846383354369048881179262974480205882153805263090443945636486597606316722746560539956964396436744024192492286957454235463924256240103364567789288842300192810034945773695031700203471486358049423827070372346804259843430183692603541218801988879363101765285317577249736056729582885434972254377128315802190094491877069029160472402424953994950085773723676584938089299206729060496566537496544246080586614319777789376061895043091848052791466269572255362267587556575176156035113533843806488216272472254816350338402721777635723210903987104433876508236792989511844455846826100865857803860920120109778622625820654626940366854381500947343766277524291544281638207019541797185662512297160670888618016107813153978699250313653426907060862610582601077735847261372226222802392002284448409931527822645202687593311978671498206820153012810446341866684377387358759198225579111491097720520499928775538444601742755975542891953717357249568829295515360063556963350457378408505161063539121283957682966100157505293885472181174895164032107957939883646010200052827688358652193472738543025225897444723793198642195006554297266059758098360062714194618113299505343283910935705921330777939955434019094764794124269761386329559917808465422751248375641376479439821394094817471721774552136550021431524258442778188987238387846949763336847907909371721670892520298976648515872312883647999145500604403299482378205358459354407671533259074440584602080638435917731278048791809198674680441022282983303014786940145704271080648409492828070974420625919369752990911529682150840597040218851080918248223180550561988228880466783178112973416904851535839666736603024030896168149919729063343931504616310784941161115512388282263156633973007538008864151810695018451984920690912501481018975124523523828670962604298783624655182706049608147616801273369394072098336261925164493807372619166851129613102050394325360092655374688469688027126661518771411600001359487558295647583549427781846140456062371898566902801049621514093861107144262620612128082005861128134977235495737140799325688316948153965385972747296736842300987454583181679489260002374421780699794228429734463508732462813510249247653142493958006152645193276893640849393554229158428830176541347023012713034800526556276951489893812825682207821711652420733180794297678192256026520849085403850241954199659366055351078843750126174067838095122847248194143436270866399332631084625947298185707115188623008271892670720608187384469699329472348790941447257155687571119549800299051215761407828535388047992651743143504594044970027909554259461259635307407092655150771649536899163858170953725832694239397487874471802495075262791401254608181198914615625201804421973234674368185541164187236061215015497340438673259210402127034377219516012527765755138552463962454873682246599437480838618466066055615548101393834307924172061505305097690028501012084367475384766473712775641347247818548782628310727016331645853422170369146416753723064521154476635202048879608961126672277818985994195916098803037709419943178412611937726608313599338106630165034208840028389128313773051047541888609350842340355210975720247741160789547233551040172359896396785761010803523828573879087153925800422089908781998483690550191264371961310478965322833768962897026143745002264228253117293892863209942968532567671861064540055282926495865726407413068333358880196519124285945009369902067983854348618752035529876886073963169602260310044058161132530245057777180726682587535013275014623662952951367069220380752800943521087096534504737644415271275018910798229730610809924311087256355958767611061705399487725317335813237354156237218400518245791614170243099455101971242940383411791220590141570930912306661058920879034672778067814963168873882252604775854287863495559592963240377202409656721963569245185356280351414272793765645549569592395063327832816375585616208548773441924686410321456628720462496082729041697914864802440589891157992000059504056659594094750528456369458086343876980914095970020543041754076659220444785316447737638689247080872903050287968472422890750235292350290819786666019358682467850976982527127715783109947024246613416114541231181143016888502544175097012006347714942350250002093552614993660786906893380172297824424959500988852955829659156999403547848189549339103316328020207926648057476181960603681486954003493982810562089996624865081494799852701608243345507487056939066790434145941072967934762202690938432215592736201351936270478688402084932431581905013446838557723011289467632956398241551278394860598143261648138126235091991978180417698067015154080357470440511078033962182824191836966425131673303546549927582546657174305714312855439187727598246905816994861246766782191639761160867270025048482768549600601017659403231052101372087378175671646841250724907298700936461346564916781353744945853192809010370084279383869940593803794466273835323456096772937845084668220259802125765049021928944849628621213174070129177467954271113540190452200724606630020916351722961440647865013885333382739383795541851868286877065912428255404812754477135891366658855345355621239089188662584436616418831267751947579004723817355961809534896971552949974744790946298754999592995186068214035775653095628816281279260149089204113285450864795754133078840849741018214374046797310315737254349851948819735858211259080227349430613065756408759097388169300398228677450299939972041623795966272206310425404298622386487372195475513557163393861376873565492110936204918235044644456199232654443712483233659872695896978755009134662105273346759026796228853595637226264050812668299866274829573856875280364087243975596655315537978926489236157772280032592777421368221929077356872760237483805402462717661749456054125295830274101504598862214670426478313279693586747803725342918914163026636175438906173127960725700538919122463853139381638281567355259120668810945992045240838352195969897005392756188779658875736266902096552187689951848644803941507704217658571801169035368736425055098559128615799258904535872108468959822222976598196388799466447811150830546484135003123494671504627350931908583132126570843170980702503434097414806954457276417919987056059530934753107717858886698083088300038253566498817999913247076737699390254843462486043956816630388463903131630829011078386658275873130466363190484195507274893786691094575052422744813603668308620617214881345859965382600832723381854393915690622531924174309402151563239526909607396618486179190285901293566082476006461306118380193712282058580710801307602405460473371212636603654271221597143979227117730953231258731008979889747624461222870660813302356905647279594940927199556886573407791490931414916028389548666452295296375756510158679567837480876661112644667381028901405759890175702705991667486535213486931502258971909794001922765536380467297295590793633120070520392024005564892301332694929861047308878829169020263091731889599570101307867508346722448819333075511556644118497980905951947756396343107398398834582367246515152812905021874121898463376220667314167276787162083317612523158442623495177710541533196162661511535400256158044848737065982962459117922796040124806449569332424106472645652424079186618722350011701977659029904083723802723641320288215560001974773399920330502851496468893438518684391343701139215233287750649232729954785623733551252071152583804643995017072326561219307863412939772237571548423886990013716058492599619267184213880501181055839004960016522991514850865711478206947375235297829763234727920724322313863568766525200986236708074591452472940821879968322559814490430862400751223894031955077674898375848080618693676385740076960453019618786022356916920903507038457517460320532792112004773176724870365791195194133573889611460020604416677350597269935859248233023495199790223723597229264799540598019991234317206774670275634672167892723065343098008821970801937708937417401688206953657874130515657830848945240284564062683284420318247068454115232617815424670929690804454256109524320377141592295009279943642866856154184712066551080619510605703003383636386202770545021695886810937455033554247218476696718931520070913060052970866253694449821915009618010740144716088383193761160477376874258315536052833434276083992034665005396741817246893820222190052399450743043564836776102443308113143536208272045925971456632663467366041800224330896041556532597039548289836734324774003624900444228004201796718570359216878303022078010753286184465535342223742746597630482353018587696813595471553914184585182974467409802419429203007764833156040681780297515318661502346103946342617685799358927260687715122789423264557920711572893079208283092703450937200569374643399559900695895945987877677897468042776855491228522749930328487047143937524207151485031195605612465494700532404497169174563427361838141850263975601553425885734167400727757024614529027084776076762010465331817896588271719784308635070385654689393471638417749033766520218187035587916584287995793477376945227417317265707935111218881264179269674774950463412556637799608610456284128956004817501734959833213731366660787045553962187959632899711955488257870074863034968069441587062881283151062546977125818329311566583337999402182664061613954627165630102290113749414701044947038545630950674459788336346340082557625988068963386289800671705908695436619828647764117391206344653405322393992214391614829653220465139617488600081260030342395864411843266518315792188178597412310537118131285343897080099818031167081736086428394990127455972618770965969528845613741116994406230759178138071207345350157197174707480879837113301945945464054223739479351603152990172470659593540320459609832673334851098592433828938424270935237112143322057572635775762921867394626698020032415300841459241146196988971629756752164335365649407200188564987666215355599284533427755041901983288327193100693222543357146025021053071725567571298455875479852073199214524573885910795373668515514247015377058032061064688325372419961399050742015849687725114694791006438521483182987403330929325535541600317507820399667811094126844136001280313929811153096839254242249258099515148044277932270245709219877134054627620869653708044289787000842170373224973737973277727916491333547495156395187055231991385342671021195236267017759534954083875280877180452543209879516372755376827722378119144592419177106071377677686852350234450266482878761199813860923375882482367741956464076003112794255055009983969183474623661045206806792081021888799328397571351635549217609407598371786598289771868932002759901593697517677415779320855115008851907192327273637242026758110910875519698601356591451001466232183565279294482746283551622433702872344402207470882661758939912865777937616713576455420560249464208030466808120701126861132643033367224126876205378430909891791333241579241267007327258035276724594487325160729954852504347201241392793942234951837846313418805587270030195502437467303047911385576904928165323980892393578157059780876232547819299050615495937288887483396065292216038103096605473193452007373101382791046366847290418181772404283117082581220059601218950797006777907176476058627930220182481369405447026109354840686710686135248820591432008834827295452512444610891738333091288289972290507215856589506317536522690069968847984936455300944209022104843011295454700826025837360426793570272496743334430407955767387173321264361221260039535141516695518587607394148018182984159358256200002604880282011243805001131065177215819568417795676853155916534440496658262509122609767966510190117170758577504621105457281611617707868813440131320486661023173098066443232867414075817687523151112865148885736027535159621753737268223860846987048712672926126652018138415070639877249771290875176254113447262522616480033168614316667703904483058811567227557151073993489645746938867536224279196535406100606664439651545532404264429840813032803355983492407466250381947863176439144404643145924895703418220775921011781266522230780677509588832254812056109464670494932250269729865746674691967093487419441611310142466957933896136792067108315713375975504854481912461469603700139296586879913629709059274629283127047080015550494044324825088804725838976162852777775191936628320887339657008623208449488717991251397692634806071427794738350042366037283160274203493088112011714638358152928437343836430035231651615940884742145616561209901125679806579437966264144873158765415884522556809164248888168177727274106178241960982448200528606427871162748829226937672230038749375499891780593710708048423602344768669974368725358366415595207612709326936272334345236424644842671808135270511414952748173472067514616126324669629233971073925577278251541007596178996779735049856102167240227649441707847397887744891833667783886218753440362937035732575063064930067189084544384149276910885190379778903637078191045707646378726772883701155198379909755884603003928706804997866827740002200608815866892100084669137028481617263474145449511569385440952575535393981893189392085827186734181179165187573416302950767742786692214795121703484213281607475136256583466355538170650373933112848120469589692105482890530589100447438961362909092215818270957289671335341560756168314237389499771974565429126590201426632182690258858524904303652661908037948431404374587731345881794324299830042295089170127609681842160655080189034831640880796690891830936265728130916976396996280867550204984959300174617474138563067674976019477263762648007549040154293658934588990269604904289515956911138224519327684358244149809688084898845897683773034737503724775330580922602867539374383631572047266427385121989328553183202150879706469773106469312608987747582247156989221302609590137971611441193259992946158524642973550215386110680433669048060086566544580192024865922390241754493144465661784150317480799016004069661185704476902610578195502672044981126092388061712211673464458591218644569950118924806451924212516850297375389087474838233278909797171927176355209021024533350039899160355671721354366535318888312874774357841772713621359506722291363288341592220318453291142916731551877682813934284122542206269331129007520179677176956708552353456934762959712374072254298114774817423601651798440096863957397610077522725266014907413419667549631027947495756581497532505225312323546715295765964872606605431409670950001658951898272708593796605985330069162326977459232225001614860252918584152799637507827067805367128393848593030552064782753562728669046024299479401344398846172409790073844729369305795291663822484030767582312166752961864677590396950996327266517922820495194677913539296201442546672892610776638916785641769354991678202906045529524952103458230526998598812908108531536641864555758731354408964261336957105568337374671085075417856662587272074547211243174750383866868657084961707766834087663472982093623458472431035755608553801772108757083182868056927154054811571833752519335643625277228994342433468700893512401062596398629269001156225343829857709665691349677890570866817114307492663095778803418855465119828061170488920841393587300261193502007008347345209126981211668853975866509015718571512745713660250535903711921039108480803783106110845654360483981482298349793840614047162625151535040608220342512917772935534411576572782523572248793177571212364586655196766025390547830017322373217846054902597319095767140525427208256079200000991380120415074162662809075588566499218819630496185314236437210465908785690472745977646973792642775245275013250573352103666562781422821540208084755857769633650608702522962033713040280731178622485150240857295653590394535622054130109181803199636073343659686420040302053370934083803740900008286940942069748888894433399861992887453185737255881315350346432301965725832488532066875430409112870997750910111866744845070169529958320476822343723417581211297734832934890167770401701696239704526270323519328417984514670023872494260149026752824195039113613829906692809081915054536442756451234378186470241812205743972223530114066774717220473427485464561349974182266492713127575687021254897443046015382412018555508875856421981197075204356664842358396352325693750373770327547524358547098041523201398673896518786722517006038097999317341270731661763269884499888655828452835348568007055997445455485282553098056757097424212378114921884042664770577823505009759360480846995509822699337361987968639007137899919433571253253632257175709328881209545702450135512512721646226503727892905103658551536090817038108313194698192065115020443782732967951400090788788565416406518427673584288249614908759685760826704531743236881935035805992173678302091257783697188418350852276938902286822888219939227886564088342293922174021698693030335360251497000608389362900465436379344398055763557143849737979687050461545364897275246928613383604125285643945049044971615434970075288766332738362036139423483937723842654253502926192797906495060137045936718923383395559068763914272779963232603746712951302303056369822310035336272667875215316710345578029490894990762078660553427214870492548538118441272602954360159494918794023812185379926718795662159877113135910866219804972393141304012862759819816064120982202993706188321980873131416180253113468615493397366179109878331081783105419471287837581157383941020720964258108386285517117240981033563788800717195799232939666948944821810478119263319759356488883530303430797422068504888076767873824330400296214984844030450064183445405494632096491041275044739880445623670703194528854412548474212273785225068247101361088301993042271472089556851813505504518242917409498740637000605651721615287328874749292407605113424726934299196486918471578243303578400151079667049459342970957477243651490824017662838534715340319332994494956978012484284657812237442281957071229677702529830883873456940143854294356998020497405924739168543745721717584869180262769253811389778248809629065487854080820054406652494050763845500867467754571367962051712230661300176606473993390203932337465741732150063915922586718180670169918063344727782261247037018334488822930473767154189497934841571850522717353179842936093649403249776953668749836651266507358274301152396101309564717681976077121000413439572572173847797815367240055199592892923189231929007076684840469770302053634405908108229467854528451662820810069320363630714977174687912931255141279837802974012889133875065510682669569259910490552283577949059361691048261435879776726692028953472216480310657913873182393384758868064015397137958565429895203734242206076196163590725618191435101243415066271465888898493319037359687617414886971258546085888380336751619890808919709442036954461743906275429023147818068159052114741871541043243019981393235069334616874832113519112202621254799184805317349572458805647221943639396456723360980608020165480129555225079835484902886541141221748102678142488946765299379833439458303800817492794712620837412912613928558783048092345616629521099860392241424446298277105482136845353166228313397707263638742936192193397109892844802709463498658809176780923817304856892466836155057205610855403784636616222672533724669079922369690006011345691433130995527061996352509356179200417299658339392038382778638537602641764293696880399384646734479682006781441268688538767724372215763767937603384653341167514022946860978575318376297814177535697057244964328040326273571385606794264370641272947424470011735717935712621672989536835928687745242064962309570293870023677289684965444426290094433403802522362153538970928474991753271185230073675539070238480494385590113740690214899313490095728022771846049361537045013606427941197749082348194178130929092212375910582382779383177981770179844311820096331611803920656146316799797832667347597228634116963059778390454627193903609847474007081727727461453337661935026953506652599610432381127942434953721585096818735399456552616601545180263423053971388651331673498851774029359817074253438556227710348871607813475577489052490871117198244304438321770273910207013854004211551116321061162990206289375073234770395145253924750960488378750468284641352869418973077410286718077658920091766590265597317469685692698658683868057460933570975166239765143243986638995142132210920195501577073247401649511573299489344028769589408406960524259747326657929380528133586973106875550353621126680272087427662090826063714224853800036494853230081619331425372565864036467753234761901908682774787282533677224351564913568009208977718187681979232703882106677378114985258751361245566128143615371818064812557936017409183105142152501633111702377191873967727588638144711489153797740780303945828001704803332017891486904958719794997493877329500873895954234321017709904973835818213021993468649185158669738740235614086820716143556826198507039792709165536684555826928752425851438777454187803397196532619815367350288616446617261619546392044235498352299800937184143187382086994490473075523825629368711514494054421296533188232484579040605234946387776295562722774711835492034009820196157170222068706104189346525041772732986769090952152042288763650775189848557560910707441917156965048031745671799709995581915423283727252223983360847840060776895673833132875562229685002828715888438372362350044904906823596229541650166041617987858140920922696788496076316919110329256818164760159508449889555753474889459547945427478001789891007941753174567443147251367339660360242698523773065563743752395980657850576223054210955629802860513152575619987726176834413623609837912950089081975249890594091016674069642320439981369354353560762997113431716118003696804283317449291565728664594262157393922696252503088638918920636227333810374290904221101411297489570032256213082367323298827577418089736811164715118744002954830385529088415242969373807803361474608596549933375320150319370350235216758700303694848090401830654130857462631112449402983563315260188533491362925770505847283009137880295983692381649082455872742029401800509796979248941340545882395096006695113555513912707622301749485866997802796636143762936237165389802767246802766840806440554933583545322409243915178717595821271947180368662166373468029829777539856621186064530797520267622830020482354549763400107337968066198846705531309590960481705175582867682986273312577186050778799076605599539170557660370218994659856123102913691618750313226022710030779376614986856619136458632552809609318499671842747134767654551704443341273341716903485640838914002912665229403372670064886537777532187198538642449463327921513806695756623373173279499405395037936889083749694444435713466015539706682501967606915014080324615272775445438949062628940063529664742097905097654290759750435695032820800144152292958666376573610193755008445182726824412714925100180496309166860192933390095495327615350348311424532860707006127685577690468080239017747286316864955641633049517449724881286252992142801860340384387584688011073088600478357945799998116854832581213968549264114366569116274625976078500129245945007638022055785505156645538526117605668646694427064506754069553476021084150389681663976586718845760435925936191095603314713945734592381668206349322763470417573037434548130602404459600617761390879219542434790776266793605778810352382407762765514047483064315393988628305077099183120248487071000705463404151290189308658366296374602382086555567135271141652763280176468919246505797570069907285630546228336965534572557908455852939407372723699109961097567351039695618543506296189818253189468920190282572745952516810903268558773205382230505387188515571683621418512868850194074660866738246348380731558397720743404162090088610258397045228889576965067217496644589605570697348380332524516962364717393515420773339587688225578954090551613137356948384456038760513456758798173989530073766408763658969234218588763162374594636689140512918413015001900620624107536590963730473974423083297635876034065755290832387963662399765699106250308306261016103559356148975796274339586517243759259928907309614389249068485921268898319047840536877133383968212959191727945340244512930615047857751771772658963284723395911597156215184618690103292340604985420051650984131871506671553560565212142587526346675821429967197330323371294887638335678972146298811419986995828427925127913803045910118005787016772805248948448468954745498034190199711521158964959683828807083795596350591862903130146880460101560427316293003330969706433524975759965481971056095697741291092001190139248829003732850866069058845244931918825310402828203010609381118880655742656377006236395189675241094422912358537052945446098794688813340676059819672563787962631144720411195592703532764373225190157679033804268552475904084017684861108369008404580953162835728492656024143680035178711120618037037549105572353590839558894571121523650005974709891305252762075083835110344122540502857001943555177361407673598934587703645328123356180966654435117519207188827281458510082439582381211425420874970170888210070197189287939001456967259338712881073353191614213767633650247596742091855848045289690227145004307589087092971393671172679728437635971719621723920606658655660531402456561466886333129129980856846468754976984230043882529544964250808790080426027688343147603752143735367374803611884678863435771927196017848369812706225051262307273034976261840394664768467736923042853023177691612030145082632265572465534034396929198980272485267050035429803444000323106238555243872634589348743863869457589796420160898790167169767482090921531352381660538197580134603485411097705256330098542377851992598331890222825115524194247952891245601138394493761182643932600430934262186668940785910060483309328836331581834745152290235024713157780122231970843339006255069403172933543000866856615653023903361733091500270009323010270041569211134725206365124700178415747073232230805386005388189093365712641097451060748661798502959553007894659032875224935157341424624678576424878053456309981484907200547493408463405873398128238700815595540227402992527346883238070237039371343419261843628032337094845816107522950396783929811996021556822994189300373477271292638186213887313972258160477967450118076093958201265289994461027239608975463542855075424921613087501006532907331909596670360621070257432579542664157098186401877464459205882712355157463340273318721098219494768093229676693118445961518753462837999940915691805898509969233628449774602629638818705422465221643915273969654349659432380682187419558165348267906645548768098305942345533822927076516219191057420160891869319466357034880469185746441627774162896722236057345139954577189977167313969313178397161590287113837083876934682733585483066842719070918407466264375552549564605139643792369700089525841363215559347264000839945825350599577818886376284519141746281364964641999531278130994178051775188251927602779483593679649351778647317709936228362819891404177148513039488144429404110116032209838936984776551615715245000077075770059343396156503787934286541829925539697283386156665376124004405903105961188484847347176014865039968654653022856149376171713870470708864288288315144260725688986011738706554504445484175673903398089403040723439340190906190805417380472186867051587444463225029187472361738161582648182956873477849619612560438716010590583873801018914922744228120763683468133582270728008196162619004342346665566085439470731094863823474084218036589069920988084187189782228301904953565700195395659427212440596645317864177229375367072504122943022247126334421823681173794046142772836051646220081911590949395597384020597848574857650265092179704290718113513595058027860893255257655893199058892978994946018576637696417805387375202290491409984110100493715458052008885196393424216037673498581918488763317381666294542190009778763555749140309332814625946515440030717235959589764940864405042424054207052320471532891758364420391341052156086155512067834971707691358214888976671534665415282625705785017267308846489641332257645520757380515332694686631982165299957192916993281641014626341704820677154561553267349345025466220158945073433713442550286448204182479638366343929673999438908420994435317534932933308390771199650343418103613747749217355834855787489855690165163088668295045607222103906725397925101092995942447501430903013329147673301639945187311739420139824235550417816368347831197008542211647607558448944519861565230899662047702544719240403036746297076013186409465939639030274998857597125220901491404754026184271138651646460566612791721182033714902972011362208483969007805876651016254072521376748593746186970742659938915179334727432123850823717271969656318596696732345560193950801971216558565673045038469239867013564716520171558786504442559684008021215029730345051699149554607082372933662737926478920205813708284002677291174643165732417001519352903578814854228962929241042439832154376060230318453490042126584931415703284559479061276125708311552710736506384864250439884916358214626654404895525472242863518838785032283831013864269434154912341595348162611440196019182090945981766866740954844795178967553382580561032269877388819861964447864481429110320695395443551892294231908663110003261571411449630904745477290502251464437257089131400213093590924988814305060048036357933690509928057420060009353195819143816781251374464853615073030456944200338384407301357540539012616817721587484662711397182360934586908184728031427774144279492784355981025747185068158452644059280910507783604361772555293533270492034940081475319083950800616739182068547790930911526486727296560083566881102496896909589191794311702571506180688234198848487384044616768330569146420203597057321220629024224806473927100367242438247769410898981728134825914152566315646800218627924924691672351252870697600219774171024913979064881776888404703535091473606158351488278448634025782267070541624649529953103645540406991904396585129649641829898351743397273232956236896992536579584175532451437959065704262837952504251770014691491637696196195539621321398131982164767322839358108776169669771574560170468630300576430119327849045572321211345742172950542926768956168223952959782726200961452600572221893068394060348197084332964219112633549905170130113164595588761813185672720403706393236052877044651577822119655894396714506800252797026801217308032745655475260924482860756831679054092305936595536606004984962347730231381293018051223326854493257440011044641480112999099462660486545637518706041905361394155344705002054716511458400219886862648267210655825376346199350455551869427041952627671962713876677183451882345291906858108051547796855281376255208431738156383491141279876623556321293376352022472354915752958376943168671609399933357943034770115131458966782399959763113815632758045173924400926277871724201224823860122563600227529484944765566120374032108596775874624774795094100672861509080509791911210616976425943452440720069355145307558728496587197580076047822666874192511860806217853472487419437139513635644154687889685846214291065546236663767005996085322169347727561251763124732322137563558851824293822461990074789831379628363317571568138873219793092923018261832998970821670777521518649411624959260237263831520797877726530748108837929894805674493869478007235578983364521966727221934897674828930481264401358628715691348555042654508967772717927072612377690849527006970000235909963915195152022175513623009585852584692807694450305725716055025867402218838277261318841997687642731824410091479153744234271264227080457813874457331082426065476263891398762945332058129546333141710040960212249653954630333485024277404331689793522631941813904597006867337578307278107404783848595028441277564676209964603345418194508847635871025633389882040232910686285909497170373266634791881245008105440934671062208006174893971621638881954030495287964324302101174152311157199721228929105499460055193771921722261536377597420910424280699795153549485190969513219884954605966744793586031576660306302536311011246611383086743904482094294446183466780576718460809458132125224767360616075091756021424728784632512357224210748745197148961492943260067154985597624533866993239763992524812665264314452361086543997393241163829090812346448689232071434420491062176959151533880627368899353228691815829062461365203189997947284795281792438595055489455700237008181915258837430232326313739972008286012028041677736012486223638454828299434125233398753628153161806787165317578501157022540618656428145562973288044651878392149828303220761503714151690896797545907386510527215428928081002627306963850714011280881093519805557686222444674045660373151393246348787042551706803194959034883868738504259848392175325614649831623887311082062065965487472186901205047491067749911433996745506191169930317743501585383600208688223422465794504936083158666072825575895895081282868875664652427995146582106210104225701269875929119655184411826922413260512960034450198928368307149351618561602553918044273644800176425626705964093475601911276229725377170291835995346634464097071232371712982111482333912402925580021024225200945218865666011502205339502054125193192258073344634428713715788799028549279215940745089686487939352298992773352758357413194571925493514567141620290092276998049486543997490876026933985485159946522552269285893248170712386145071320609031363423640755487201900103058637116519900850007734196046382615366593845052452270927593574136348571002049474691884919342098208545561630428686238285637803247080788959783523385464609057448082893423746159697105226102585616217189023731760399400371766834303573554954699696547722921073475202758399927774201369638603486904076587692948297114941728651376760862575040090376048207270157617681902319889796026389122706081840054854046056234960361332206866206629846135847894814580614597413631236425954316563551909489792673126146291469137921338463798798831624623503562420072870392211807727868974595987288973039930617162197207210910225989334423186882447309265735525853580274038877184506705759557300074725182796469581327903465617895751544002568537242596294792186749193968930357530087397236179376476467567697644909738542911364871548643038546462966796788338931507420238333456544126376931705600092581728375579678456025876078947620638990070000157062044827163544410856452059064297357673947751896013686355013076862739789552573236576259181038063297617246915039124916576225619160192491104516887622947438720929848095107355264964422981294251118902776770049880245105485483526005321270594673381154092694595518650352182281635054983327590292241047417976336734937181330917987202154426593595759404570767356220941315872053653758686739098389263051344724958820494872182104896642108847037133795592491004882830884875186563180345031777257680187707289617980626036870027676008865670628646399001678091503528364285971809190218320293986254659322537527325932940125740701841841304318361048380008094350752478686238830940815158764707262714939531341595426236947959830486589339291575183486089654789974929602022278875335924924353798551981605978885254273303402598673613319689306605164944219465621710362647126730824038489773685209478449923980642552317830247986871251865772173821705650313998560710040554470854570720398323664069959433189825130046253054437775120766487735804891732146988749432642771096955338953317764631542226072793956412733516369348411305695636310195622414013637055557706448791225194724153720499651144258059735929112478416683782484115758320224891903650329910761149698179667853198368181836420357148041049385462075119018893643047769945393834295298403723451651845311757148792133070705703331824742020945891033209504902735955562943771064691432874527560567725863922497729698039715292786644346205194660463184565175607229549634103684061813643545169582876822272222344126704298009084401292176450285267548991291891946070403759671419351555131150081143716775671728798112740627513968489146385273334868540408918474496959724887560111648417710463256658880829354764077575791850170091714052559595527872096707292648209710176750142495847734835008341499636063823104339593323570472405821810948727232928306079202233409059537717426865004473394161140847185116785411434487549723500758998632916647157191245040274602479334599463394978134468721456484775551085959155202195231913908559112108861635274995637546686921390723323949971608498977951863737645510981243843902196290623511865275721270782076554584694872914960285236975400867813436757730475472752428400353615604777871221994002095376087402434012701216059763881000296306973995527535158322878353007118281978010438878422690449390149773788345525022481939302051748592530357265015035422988600055542750729652737004663083822376744711328686874043359791256127105866303466872231219629034602526106320417160808798850862090608907691969824741808036779556108796029862270022186349371437686514841154126473924827073340516209508125203131477875605058103056180556514804535634623333896927352063112929176008478483297976413093548624357589451016653639783652052123183045729095160130127672814541914655989408354501044330035099336425069198995741229814228077895203508211587453870594315075920339563934610589371825612812865876787840271083582882096075835784222560352704475821718757736684942539340463921888744425872548560730435600880483740852870766365719205650596031231843563669276853544052686460755203990232958116097545732712398773281693116337644797512694875729236720836044891030782587808127047775148625950116699154497551170064706503356984658673430454787651852292922542315054399649594942128687154400578287418560805847173976705878707180533084052583249204493087521664239896322574695453072448349112303324439397939615066632617016030314027276317087857144148204791962854095102242013426931414240303278921700481856998377741977763017575979453446164681983215081379115468790562729371899723883851685655609187231417832058367246507475520261926750891928294880282165460213389591888910046018578212170892983720176210931828680152448322657335654292162057928364058751621306859924453719911255000293311082099353995906728205552352541211418668515888906550174914600261221753656688747729047178305826520761108554348007495784090086911561440989170263534047999272385587299408943153880239520014072935932777517543954835126996393130048852314729046230164112983165460243150039465090014399767886070508749632786617107279906943210057263545893981179980427496055937200331018979114389349814085237287775480592650239184071107568845676305659984648476123731623819121928645499243481292490110086193536878647813008777573177347855630277252963133123002378467205713750811153159965232622432820429712215797795317375709029213396221613205178194995335272180058975141927893686069122274242605729755757547412648913842253572202686261640436627907910725661124713389726974731262983839932337196100296778063109255083937183261478806785620319941286190629722017783179345763515968590188584646948672400187348695258312796080067258376891055124689849997316892972284280308041533612573034048644175874105573186455033059461666833346670258116323425534345123636899262096553862549260721898854277331925031846783727867344246905156247815222767359179726522168305909709595847566195183944864957400725110834434453330838572717149553384860541134162919917124481296797441978205771362146233268328864871425208906873766164712924023840645285600173608504065248572396466598763772670668929472651617808635683669186674750024945142221986797422916407349324712167151171373341553490303057850837659306292690154610599298678787445934924967946807610598247938693724277578570869323410551574237181931594528651799086572077255701176308074120949696753975311593669930075325601160094995664469320157776675934608988943067060841714852691573384653210476322779725738590716548837387193211504621385527083134548558954481069492954629754759232725737520627122714055190078061980159472026232779914529237689844981957346137674454647656795478593066884306371976729452732698131488567978213569253446217102960279224080957752615601364790044240610152143954604721698515514125096038244609624485448232468207838594699284568033714010313710451117959082944431650586123763244234191751641284486005271498197625764142295770082926648954548859878113234984124740422661283288015745123031361271151743093575748153954445960920199329071749150697946337026691195064859688850630656225457690124846666359465192462254266556323729008928953334386565953605893225372578657156861985640056749635185100682818826972566819116611394099191200685760123087895547999895161164360782636283300742080299896904570526457638316102041234300194794915272405017289638020137502381440727783993476667051867459280661324115214942555892472656113342269513559758363008732975529050317462417691860115055914177195155992198120435726538392381838210837979450808619014027905959893287726579965675928446514053980067637149976343146142582147504606232709256463599039049582674637948588544885598293579535410818437700831261611266233832077883062945475571405080992214440590774935233480737234183133933192269405574355202391875051831315329139624242702118624074411101963297086357619403572120160113533894996872096547842935626319182298935448444010714687245749600609325772945907107581523147053865768306115726879207067414906813874016320384896573103377523592398178391132178821583239615717565504204400081961336370434509776187471985829090399780558613292747266230294370630656133959546851546904074363916580098897846544840859179549848201239321003472313848304042430758783542790116133762446531789373967802723120826211818979439754231782178711343568039082403761567676008035113879171015391728694509481709252430332337628980373510081769031498605517231733101901578692890108983669572323942172813326558158040066770263899824009946147479404190780339552881849620135920276482751645277797784250986747047831886979927798441609669812838013795758012009685755362848643682227546010599272449959385749646886087348727458126594533062443951076491884160586397102702769429871577264859049448746138866673109834214032258103307776171305705573772200521162984235396034384103762518276385656611651660818563394562697453437403775516377466497693081280297933408821961719485776822284402250986390365558860866443622312010415377482688479564772519868900309292272400149756682923370168798470759046685680938737427134257309239839537959740425507112934021797587364639076617486222631186987990555407429270251766930753991198123933161285512266527792140478973140244136197139383102208409426469967260150461600922801172152329342285691174668573681036183673210000720785488438742064988704340912651508296246289576988457026940669830480822230874307067760386577375882214382181595580457564536027103914183998979301621653411919178581347452056375053667899526524121817073124905127617966938378434701685959375608778401942735615859381043389258420848632022699495269330222079574026910859228694864743495473768401699613749208366529778813950426081358135716474568651487332002892511347048043700273975490904751998932571096652856644288441654023731155564782157462897318286729476402197428685633157016799436884703582122870616655588105673534846368394598603775880177723245111919139962561539201698825540319688629053162720806255036084340382411167163226263619434786181514842263354640518387388649479794514445688980428824707527287998057341963800859719347175576687147837115868819856550349626293049778750366235181893337218633884153517556097222282377911879610095548247598107200587380817723822479237312772044946739595620087919164530414591879541397425032175658915760673211016469015306112039324219553478849530645029393666974046782741418613324969756734951615860390142557685983035687557253591275513308861143581170867944992994303428993194260588689449304774392745426451323345405541369050411669955221093636684723376908016724434044061773024378653705851095590195264150263689889504680230566070924403627920535293052679490167729909585394934965937693495302052657126820201560798356927787988755891926935248828864698369474577176809890493833299583628985072262763326662865214357333028932777333920128772473881262393933650063523664567030360068623889403192057485210305325715728290023890625165972159878448264545711092461110714381598047378255433658499163926355780202744107680002260328199181695894420154349192404878102892386488406281028741048282125250781393093085184263368891383906670170195115191255483677731136967165648881413933807282598862292451198456509666119799277554042832896809311212058729651185133750642282016542309756820158653504310361700554857347767439188997054021533845381620509240480610408843646142967170354796177679510157734227883483491928443757183923390669252297459356595602525363044665439725516950976375755928045034074367297458907546175078413570651120075045488119246842968856063032749351553371757803493091696604406249408824567221361879644378866119067655205553651700979424112951897164528950510833374270820474996510260084844859437405989469201873373290417572697649962153354076597645111228762595074581304238078137127382123310428277219275108639896851322067205783961632157307216047740578043431857979841069813574700368523098301281687432168079458445860363278470006661049040075946386681384327103468759803507267355726876608430763860074092559369712332643831536866200364838591409620854581214279565674757097147019325337214042937312330505686807638676473454652520711518169626502682781349549447438022066753801894578127934111763116565646837905245585651565694331307910381414491095985187656549744605636673364259360495775425003194862349209185425550893715713815130705766854469861115704987841354106539764056423415900681628121706071166591029360440474244134839191364786493284481885675805467875326024007733548756009400645490012280553236487631973777539459511373527600608616526081479630939519100239730936548146615482121690661696189256581703537225346413608516976959231423606577730163006482521583206256470597988444230835546111319645799750783168153420043886808776841285346384053429905877302924582416219374198140748628124099592803466090105950990248944712353332625741953909590622225449199356232034744376874090693043048561288556483957330307074202410629170606302593743550593407165592232230378925484550378448881967892735901228777030491233623151696896322673622277448932789398894008995029314606830333812321765074690765049888032460228490125111528603091202887214306415571136711179427765921852279474651475502364521302204583827740387198798533254933160209138446608621751926922775156414631138425854114966922233405101914059981618176457508749600703721477824800623075067972095839999933752802373460148290604854875740128047895290394751255483270674126430431145488594181525689950379804797668076847650667370432208065855890689728419610406152013663883227569542513955013240382252920062233822829035886117922957192877386713870558193568595931745874189113679041219769175257255471789707818416153924964413711980784353796303805052575943871360171692667348828572456441457544802322083646870117381701331990519805501462656914003030879288379872594387500103889568560132886532333411314998100563184260654420211505403553316210601926739819586134290940527327762187520716889757326222604911946061457158075374494220315858589341233177951181628015891375876362944076542098444070377270036214353637856668086623594549651734412586416418984461129263882447015858568154204587899108585258177522170735501736239948100867565190261194655474975003521048155927921277012462592795785131181587385964936466767743427876069871309555607159432509737068014998185582018884102459837000278630407744253795803244432436909879671487491424677566845315050592109384894934339992959337006253786636329458638797157245972793637730379636381190168507162314420554499039663430152470319621181836483881564177492895439064873857074015816905832713466042096853816378573488678631132510445187818222934723864623317195280955359830620994549988909290736523394149500775724567960161249775389679022512204310555561259823091530508028588973474835871827940399374048379416651373292766499452624477447495610777039526408791691249830534399305295603799229251334225913144769155595207176190549482626966135125765745024018121754510225280852772491199957690484932148878395768380801954823297032550189781355748946690720761908707363690789307398450125229498477841876559090666083146440749682902787379969201656835176389618709167101457345902331752351823495856203040976224629698223418001927874185075689178154078142163871299463495351052093826296772977615523622544061652376454196760145046283243550112401423056347307176171205616792944036736944441707239491333886256535911107560968942343545150953874843165847977853167444817151074085567746700231340348284959662988750028451047651388564336711595148265701109750206662141651035026558098678991248242494774817333837163102336775682173784540630483157466172910223134115984585105063309668371157575320340486671166387798396664958392487203352179815114599395873805188106663749955197742616923046409224208577731890848847401739620869348088835655767482741495347658239505074853762323663032575516094536436532793359937677026200814467595840651272672410802049169898539434171685858934134001454401390280076678143994445371089361545207921397699425294297591450573301353028041941198956915686766070290659326021475945773169645658806971789832919170553416874985669366282779039094026542493859796447448542086115422767260701054006376393672545979567719055439321787937052383442076006972697123372032509055980566287575206940427716515614467171798078150455824066833630109925526696290205576035097501863226276869650822738872114994762334980168582063043378003004660012542558412584259716554673640366774208706904711600473659835508387873979841509975203477429448103040450727309226364891301028529077690740744323207898528866002694820020465647427168215592996405408594340974255384199964174849273144309889389629637875962902601950310544359251375554611701647163791602729392564816864097157174611363787725893044792426687619679015465481657805258745244193085684164344832973228111644014778399080161531717954920258128350395345926104985843306128078449324980063448136934865122798719781185485303555108833768695502140419833420897872178638571543044803837416459365996473471265145381646353886063790100164858035276448861528523866359028512702871789557995366139118372656605710682420039792203159355170493041263419389210776359517298231048744004524917866080203004961068602917782709872657850263471666652998862066216074831289722534054958121765142889872706538534270363118274800045365344343270302722109555426108362856504703474998654928587157049447318836080883883677843381440083784820563282606617199291936882603277606383749336067262282898102287131586334274312285117218495273729200254130914825629073703028585240854506053132465548229547987086089985567837526156130796877720234226695360149050243907816192811535198499048204441909747826600375469442304133917990230666452532833312627100304109241943788796082710852216699825317529417531165426987218953824560596423298190524396518005632568627726365891008126377007025511317448634680062722591523068558084812306192577562871653485407059340395100383913301253544548366286277441553701671613935163498459343510446828378474310343861584598699599178991854738741066884239603687429929545803450124165086741179249983073966910136996648079327805375670065824220820889642300925771401116904693226308931410886037550974361310176040364367875511580464547834369060263074666737995516555840909837482241461847797245561670144250264975767964715550739760806549945037774581044928148775776723719857073503575587779094477868885089874680327088638026197996283000602861577000503137497132928844287732234298610400818001555545906721273155654309668410190781197658261659277591710381827500520133701607796969493958379448543069348497441909005113036668535567194939346682772760750293652372878218429995626193070175418618264359682418298271985673424672190196973233191387138402585900271958442728535623939945865920959265154390248264614732505185291561168556790932517083644433269264957745116002738880286019281231010646155243230792410031027430902190055418176736378788215609501211443055639527194403105913259105724500393975986505246490781926214243669160211231112940148684341613238512610038444765024235181527918509936606677507982490873349704524080740736253822076163438321820226228229005060699096265430241331706718763491315772655479715755817088698946861844083026604532046722971087925045627097762017011195025066515638318264435330694175485955667734140391297530582157011013068803184837430291788268876029316099283183895285703921290651918017137022817560650045729270395003129639560164248376436294886638966285062376072537685478296809589660529122311911274159628142488760182454229439245437271843556083219586182614850306504814765615149962360205144906925193748785663811723346428421209994384094611747219508137558496501848333688310970809482234530271283427712957749499946655955104409247164246062516602901115732528389401254343072164837684914909484491572093844819591929196559276210500718173494576062004470630523321558668759859994650504053118436459527307965049687686494338296921989071113809561447393944842641540216737305066041548930913375514439408277602366231848553039011618610249580365505484450870613150044383260992208008345565131045027602826494705766934918700132224449220553401188544537990753104637828545188881585645338223447682570814718661661329142278733451255676376598922114792840148667635869057906706105157856990057931795574657157957084291690086540771116732567547913992017906876881159509956507192800852998748592028316895613319930487876082235795180916916733921093738802336341607675053343267710021822349901525069883980399821124312255987053927041352401793627833365383583097177812484599513015509800932775112486847558844027431902068223127217114822110883777199080951781720912732161661616508562230882913866634895060918265566313396733547565569460443299497088946987515053509320260492656686007263590616346981697854244884391970254578284577885955637493045335568166081123037875714279195022086710171438654701353540219851666220473270848606552082752836155527805090643697422947756258603632385090792355245062067829566181473804932055831039670951109123632259451803672146077104055876040393987455928991004420660205751114618879429132723996743968785165766931247009453891218673791199887900986672053910668734590611522835594368732768631501408092556211908401670867706223478771856686972552478089909918354964674226047874079654390503161026581210462723106038997744896687815082409908072938557459087748583228034465363003889893478396522134828863437068708835941718674974030077376937217398181470591306070448198962190100577764974443070896305652486691633304186801452335883007893037921296598384956235201401948570966009533527643965179949723199798847258977723584545129363852545503749617564131931121273907331141715335466277041613468740270804048459431832488861586714902728054194637299968065147852974175080679756640976100649981111644868201255975885875484088993394347564389850177743898783991481011432535229299697473451268982063831564218195809693203088325591847237838181372498003956644451920054104082823294264510968942909709950266465255685100212026196032212372440355952711944126607304330279410673234585160905949338833560503898974240334172326773018949514324325420666572513457444081901841585281196030039014340244047852977205830409485673843562584500205568143902244110707192113095195395081226590661611564509057508346081877346424091435265465262783294647950151378031140831568766491611264091365601867449100910476513703250884130985398866036530730787294627422161375515981688576916030366062281378426128349476894797433448472754794667092183607773846884294411596216536833715590029526913451736750507136929778813644525306939363861364584517698878266424137074034222429067304808737665004685318297386298424600735731070791296896589837280960072686014766043370509126263546729526282711725011871158294593938698087712591740213956621697098940840541197880289485825065250983360916170474446463372204116706758317818155670095884845938337570987923670022726837311188410604979755479666016496048240845618296141685428570686499478711717342862866489810650043943017019216030908724784237557128420995909365513938370951481246677140604943347992292233307981244062902768520846177122322531610092825232446184540622862347872866697245065895932572409096700949762848846843484480277259794967357778946949061751364950891970616104502437865258973309221694775761494647662942044166650295788558170494502360897422208721548568874308775869749102578140257865595124264895596637058869074207601332483030878605172476795941671844342372314655098488878888817609554227994266757919933187842456180494555844509376231352762800632236034099611293404168394434083821649939374707260127779442507304618536740390246205895788328098798234236694078105945845239962691595630113911414668276761597364475777115340009729132268211902332972069469006832816984298392308875725563935043674903657249631672311511500105808349539838934067917626003835727776823634895840753455963346289384461459173497297300431993069876645861522806826273663390497048054716315440425729097202385655368919300001233894340785734748382356334592950733544959787903057460516277621145270157612999199116798256419185089280310002513762760581161317716514667895254004595739168020155301098693383586894579523225882825623538004508739776573858338610879786464551916948124562886552044286072719865352825758399692900357056029273407876922524601619389380804932563258334174411013572692012596021107976431365500422582687961687361186107134805485412646580792600417293647446435272829039520424748227789953033442676049056473040019916760131533654534704694022964586917756099397711358998637752315400215034788271596303305625264811057899007811331953561902052314764298619179841955653725318897844840339268333560567426363339740875574663873945518797056334562415999011898880679242971330716197315199522963673329249660928518444448103236009222331357954269260506502318681794231621935362470284004351190585827608096073381464158403613004866430432227520619303768378436907661146391024928261877683645909698369185313943539509373049402365311204967278463669340066889777097512455144738920808663749826574738460409844818373269097503262661156463658282701595106329204726530948570311898146415444543275981979885098883049046264403704851385770918781331882860020436413480613189361296409797611548133030568437886261349448916868447751108670966672023716263223206690904341677582234620046905249307975787452615147122477196340289066710824582208073626023474422155791660701067638553002918846240929715228993523756111629074477192432221401887301306335687942317796053086822222202205303271025069081010302818283007291961348302416399695406347871919212471548413344755171747656502069969163098780880490284852678240506158319826631526071786837713306359966505211763001355268977884156025054939224481528141038899395987007947734296674508004031153240290960109343661048537799439734986781259707852921897731729466442855636698450249259680575870621570895024295864846622936357748679668990582093840831407591377390051204395290865660374139399845200015964897702374277234600025173553955055037945008489848800709966804744410628442803275661515647660259212583990041466126681415139235477463230095153372921073715913986842996467646955308635753936402803344233346515333807241237300411705255076421032391638163188491043330505335599684697931848720877034521976612009405182538993229348448450415847623976605150091211838519289311865147497437568706327901820445678362891101387915531229799946130896242967655886903228575992130948933071972394202082082899103111860739677774532772811362352005860838889071208285349004206918101373227734284665181185553280414769993108247870980063492066326908220303866781707533283443770733106764385685784483388871712531584192073651888077177577131231920574464361002511898070785119018377356274580128184333653301508454303160416381333647882945607596347842093747508414799617711251385602070871771591410922973524640244953451538018234840748892540669996108408303668594329216329007426158158530406917831948175997190227358323602709915191746058761546398626092770414864169380035688913275544794862831552943716887104648857108759424633962601685530115432213277284010466217146923231619524395875479369952972456656395350616998137042686083248292964993911503153931956518823053278757796923731622691627437712815242629303279438830621909430417859184776633702042594890310531318883109056697547466016534692148256707621741794776624943767392188869589441050008259157408926758387014138401657615564865244969883012191470789271235737168374038776651522921719867787034045135119849421613430158391716725998699879740497125919112663476256681082833804258263925547604898395798613926086273682436911618952969410045186400458467244982567206143673392073028239746251243080339296822356851468848077802355531490032743942805745054410031785101455584742717897696542394646326862687764923282176504537883956185808917124387559789403099185176768888806888974487085742702200955466279301557261358671294669571454447015072887582119137680967910328815876451206641677159155019344126670771570955982051527512850752805067372945394636684655955117805526768969319300148003828642726058265126040663232989171196994171381373890287685856390977759562254778750813788328570887221443357679038280305194074892308059682480129003299057339919004973100047448751345542874280015992443772387869823707666359321721163076491298559140523125384121138780680404082298577572027755594389040489886156668956603929635295270943879065532543993220916928847751018131734766194593509941280846218367229127013707053829832243660826319191148874708826136798005138496337835945392249581241137040809335958286857991658981835694138499688981420713326002469448302712357683348231616855229811296608399296349057865458729309369576256157291091341188938585462524347861439124603002585535599086685543098889293510548435444295352903994363523379513459557438787799102205890936965779310660112057700285809574949061083015765078355114782815581375604129293204442289695451009899996884259112158874560321507131488001890277889244481428193228212484414853249264117215716132049303533221075810474758744869115328436408133971872215047371120966475173781388161748818577030200316687534217681096682342521105446137307416776588985916751696173860178669872412413927572704192097971492401564317935996423361429799826274809632550255257159968514138181381037896257927818513005641353370132870464317880871734845120546989612877825951568706292112253449963294001557692338776798983888366139743522826720567371606849022340544693174974059488494030165253987334608051136825531314223689236548127842776987784772244461209085174746391340858623585742341542454412837741601013512237525511389726236075516854516961209750646196184214559855784541159253045333565556609615296005733196516153152193033760663733171962856430631056152220981953312037875691786542639968423055128841636293578037870966517525437565714104282836836174624753319106226088043827352221622671582867403315888383793249829911159948720131027079575334336459226615311403767029498546980595590812285791044890952092059587310296030758908076702704247373294199399070934009929500807560103508775111038723851731599230896542215397930701091463197147465024942726046684748413288942601925010882146966362971396050925328716960102004703544542345172187440886940699986081972805652754862049774923844367402732021208731077534255769362876850757156841015139864609378735894608883430061456414777581331452276203042157036586734589369514540570423485517657711849846943042607765544993307943657799590993757663340367919340231627699192140017079391140130536102332993031071164496807897685855239672206976186730890277248395844484704161649193884369386499884944263217267885738395230931842803942487896197834307712785986583067863682514350308168750499316210149839480786803168476181605690288120962882343015428608845498666884797493723983319975101924695995351250795140437995720317302334796826298592341444383430046552017026214146273766624541571242569178087458398559567859120728658552950300149618101761171763149951359183988906800230005618905933986434971669113213343967332085039064801952560118725293392081313387751219226108335700637613643146768798151216929273350704879692552505602347073846603634348763610477155331437246570600317074225063970690376270399723824707116594625049889351242599988812565817942247796342032417985985785841443868260669810544693791163041838577921998390300055682619503444344876348973420567152697613582756596470772080333181528944960349970429551317522436219855528760691357051186723221584874508512302018050937484803760000871371113517411466423427140801958060928945876626771352511701320772093745271343537882053427451359651366531227432282565697293178769143000621446081704024694595234413105791840818290894380297714898071803519086984040714242142983265873956719987244022458593944933295315029952477402729420122906390981512140219296412005800284144286521366260517533795230715641959468790871693142560574476152324526588745906936034073542150739566624815028957522680996747020716277973567747070114411392409813059806804887232618508971305078778389176905082543268188068463483049359976315369614733454500126073045411240895240081797895062351641443894189963494215336074884012847159885229399058813025216824648438887780521481164623271908890068970770942089268842268984293305686359759557863189009871019804449255346495531728827654444545275975808255647929139929522982070798320556570434475773343436376826293986557643083802150365109559671230783775807166126231445234080146471173301436504936352367967738766033436205161595247814852403214703277479379970895697044317680646625930682179468535399402627615416783495634344099817023064603695311101899451674495552966777837800539226195454168756330123325774403810579934373211686212947073052328853453674461861955649700418890527891311880020295441461956749805552833720633476602346605399391838060186742059341797304626387767495225242345372805059930000334214389876514123924304938730993762444124348856204179158652065647857654399557478817817715300722040249344788049311371125292359813292758743057231416597505950703162049418183993850039159041700558344384166967015553187856221207418488091022824886535706706517173062165570504782730361375371506052646735815688657385791405534007674399591609123907377327403806840767965851190489681976344053180585655029870039247958597067060796605155615599157253542639120539473234366494204360881044419953473489593485833027916981666208555299643873035843243576240346307443736071891238277800063742575410471704614273555705874212591854633575764817820567830024571395983794243104997872108247318367482746415180148689312930166110025636173720408460389686632179856839307590734456493440437234615587432417339331389605339936586170049634581350733561792036067763883518672468018851086412286960995527951913693835076721887945308951777368426826386356937749386513116073394897691485013208149526349890009129426815565641345641009584591416287140501650563504847836038922808248039223691218881994830077991715476234048872405849889536556114825615690216429232984678292729517059853143405562978650849800161047602393165434777421577034661648987776135663912959437054465141415517838960108973167574666652444970571146265663011973245264597745281711392857025630979206024180092624690705633234516762734791045278451234642810270498135976097966051951333658001887178807047107818096473310469889296612290689540228266723727070919692487371590534280391237607129334065243817313543220228300780944476381707241248127891544946100570504405560212540302649324660163918728387330246186741173209816869246707241959787770171957043342594762464873586309356780030676545594828171187159842127619955253456792801408008946727218006458289086251470297719108177129439577383845836513665771479675796287005007258531035624281407814441221502485232649740420670013154758359759371350414950183451514866234978037623306177007637263424805870314774347248676794583719994147007013534236808207743086326949830152030003094850169138891432665148856303390525868508177735367554821683422811409513397733631908217922937910794746696135027203344767700075577789631222072519649950299279408764260475692233151363551129597724107025086062099592462862928168666131615866057313579134818466334256576284442411402989756411156725118353364710740273030504387378604948875280453728285242942935863751176468482677986055664214571037263948402692658205939261378063374074177239295665842260636663425290131909775527889211669445485076525024249517069837023269579857627949359906083998918107898701330541382972122094881156836262815635878927452042049048435430884049203847025872866415554294663013151238060932495833604277519678857516732059157718846118860160367172525800581823953700169576955833025149272373922389183902014145812230522654126165361926471819923346222198298971758273947105722823785908248480889974332166647292174704737666088310849556995147566786469437564555919514958066669042723856357159499387753284234000789826315528624191402310440054839825565109856339973218760832981010578565138225371721759051478280945583549332223458704835306631627039225420503795360968194128928367911618052511951380797331360717189037353454189610862122624059239264506431875855515613046405711500591004525422676878099165038076996062871241627383867116934871717564839214913501134716424909624256504341236769316072227586307680216435973797019109838544719049945869788659737708752852117699691835170606688703134753891263162053122463286576149770444171136522871942985691118879802500121637722853317860482637374886096440790825850611547915524370785882226944821587565719184980836783870771126233649501597820057983758209158809393597787385341569252183320034749292264076371698031067208845787715792476465283119317640751725168460497721624652182039317636595063861546669284632684985702294735013086855226313087657577792034344703668004879306215208550378668467534292474295585312074955095243028404437857408789700127877821384423452306989936515978085279079475024852401965149335654284145965585311138606575454595458140046840959603885980748720840253397854862289172197688611966202224512365892068369343442598118731585080282726116357199194624531797438723288800776494419232268330637331939930874286795902953634179730516772109628430164335484036577267578288073355539375417397187777331942925522672138280074510134618933511183163829260119141984581854793176828527459270771686661955340675881571660615576721023155326555260050953430206683251360259685056925752869759746440496735709292530075344396242694665142568411227375035361706551662270498144441773722217243863700928554129202284238427346577780610867983661639290591631016314406579902035165246073930431436858298589862373748507211190733272838038276824615448860689819435742884493952201922138349549345972334727704477038256735104567884181674242725524334618439413754452276563674180306334894746451016211383577333992600616220113523755650079673718928429029218910428745107407749693413272953786618474879093499440650003792768540241558622039831275555749793053040025127015444339274181103576624469866013400147000508411424900333668877942984442093304349796210243627467519615906874183735489047772150039934010812981264402515527590940705686023644332613691547418545809426312630672109922456712671705188600643554623583966563286503953658034557831001245743578489070975333568446165703728761268031926984226534078015461733246814874649783856572012291680909949532944607454740214018256842029853402837353537137775915636261399380882233757710088695114825665852313431711233233003845512002254836428131231703926681380692074090020558556482252239163329609885877829116598139000324178377730478538044051366247767324138082550533039333758332784231262127169071203045268343770542839525529415289491155065974628831809500163470136262171424925695742685443532267663369460198116382275916602681514268807959258886039569926125441423286317263314537856521207391901485000022476754735600332058087624144934810291646305470283466258342979919215429438484003651129788040099119688104570129445930329415756337501936073148434939549491285596943825419925375058793377640456146528577008626800323025780003967544465839274305913666604269247402195594145881691089608024543759186005681185286940374164167392749629337619315757659951689906008003168366256636218360227857911877607282697001644286277183869056979734879654763486305129880717731339290528888919343613489116882173570452168701580621278578535913499721344934915655818087797674466778349664784235541177279631191061211114987032299271586117271562519678512162784121929670178891743533393510191218123581324809053747998935525629267788885435751979190946353453250092844603098275610696684851809358983746892259293404576197023699544547137280432968754341319584316905367262170933510679362604270673765761248137077915804827653878141779363918803186823434386859693193846386522984313050543316949096776230563659317404472612789012789998517664073873710186555651933753652694240916212481839046285513184431996017643882581591330001315889500904977840922977828234939311730845148031066212713930420736290619621927273851126622224173678700585552090693576133933940810703392349199859242138648267705124292172067716413347121228926067435896557913850108696799855316785206445045303120623857672884750519290738757906336366008579034689201467366101778792396218825949780076786187934418708372974677773726825194283846064498693508907351343801252519953604572427856488774565611561601531981216823443583275738368018414056611825166008459803135022814843765396646602830304957325595700701496640581528211788062031166046254287554906133731322577355629113476440776170294571591098046324059005100477168151441872067238528140950722935210994009166982504488721805752332498953599426801101716110734285374577796930598444859412376757717708765817807049391878043686558022932927868936789590245202096142293713439267316367143489769775338423882282890417412955262458722876160345864433040596692225626401581882394606382863579097890965684483588516875132470816006127166232264845280715398595801511989123633678318283006731365266000349630931772429798992655492743973744699578293280353870709772180986773963978833109746373333637361791220106459101550324463219302238448803413759409502336968195357051430365725382352778084978828446879163004715758215294914336002848692227490912756607085370854601703339737676090992749743909729587959158523519025240903711860471313104881185232882544594117358614162705307284582503877066949911045559789457216634280101884160821631658494865388487654887968576721874050740544488996715113649101531789217597819700013858252407654976835250399654792980985843221510202079866754218937421017398260294317443246730889082502446395990917607717831904843811040772754564272822975768658122819694429326787421758272980554471338938340087288146693111188590212844560701251120845779540331498992746787171698641404921509055298451495174700144874614492217683927733836772891899370863175824398730417029486254066927218098312478030873560165548012617587936781694984232422291037506779528856710368547213042388438991470801837336407551612456362280045724434523409762193854331137927928027332776033685738572260287375140021017455615993176975936185652449252953185649272223809224133061058545548257877924653550149115149786132855700563960132448780067878362722843936054078585267373034278977965773638415865676791974252320815432834049952016240559323896841056363052336163688304714554208836943158613947633039445641638345862342925052737992267226389926992804201967643441597633054318137692303546229130087063860711612937420813209988370608760112709036290673462578658505474595339364722147518324915621202737112822177214077809024374585231017598197047503120663769688298337116127719307353787769388381433463648869044965419995088027296725957128923025157777583268116512796243655744083926170210497298214437446341021128766119282048851975432805306273602283936821469730326498045547973333322559923475419649269907958290159535049399424043455829369464597970830403112238670376864823430596298592118377503271123303042572228531769579983400159193315064273898709891399991145101879300538579696397993964758523748266813528700859422593113552467633089792227970319961801513986395507395653029015209793398238335212500315762381063384474907460376856926659286196863784979439560862954896883468956878724796309461378846162481715478461047267742874754603608479278331267459644823293480979618047055212325497912731560421506943250253091302734358410122046188928122267898358292933283558172907612212228334486053695852840563530120541881478381928369459639776221615593051568144441863853964312986081118539666618660938958532143433538669827344532629233320828424838421102044494745401260511821315493466470336743292368747605691494058301513602303698330540619904774350376036866178973013645089269904573705810981197329210662077555494367910875292158895138673167763314107892891028129893100150985248929764917985345909134204443090015475223997705544732196001010525333124941259900961342367022727708663181423929199736833858739109472747864355673660271778339748908858112673756861659265571498516987298787717788972980927626063392220505850361912717730598074228832948005703046686442923793488910015987431561447117653296143225556636507757437355743999863188227749652889745291704966868729925998215615851779542512170615584405701421969000549154096302733054528879368507638398544120103140448476364179402999718800944415874890436073932350820721707283707587182172478766472770317954647115993252454346596284359725266734090419057427767052237771287544356013476498473645007598202982607759095617943081389738591811618940665222204513639553212515810752310263357136982092760631782406328121019678293750996181753208641959855499359139773286299331502728217142232580151045411796318488442064923755552258964292977879230815947880765051109862182735132923672335479251094452559218973536098890402849637798448772420430770163036472424893493653619019552121548655722949136161355256504194950475588437639090046149875265284775883665224303989128665687769248709961095531302322774824808190567256704531990860955764752473705542393400270762037256828133881615526364054153686827525564316966871028679041978668956392126646723126653594032857703756707669981752754055017106255794751868836132685643123323745414279241245870016675230167903646144478175736267703660725040209998688926336987296642371053374515169619714422314206514875091559945876092504991488414209552815631963838274667031515918928535376305697646353088160806785639375416189661054378165194167274947663548284571942142961382425128270404414440360398688216963165284483836440106413856411829467407302952016942244658299737032852708977980889604794579442682239648138411922827774914557468274389062937430782058243892819207313379004868347478752520512105922521632677607615946709387274133910151483644007042146147132999378696525126794003944732268838677817034338822757093032930279966624843179801514654237259213721443497204938894489327513455545346970393579893839780991138545870621435687769984404634921823863834544296710579875388226702408645538612013195479232002885172760551239997509868568214453008626894765291406371600517732233218429253045756249168890323786290786556038425644352952144391108238799441777715313477932826160342323851579662585252483635951115938820660889890411114229509041809084903738612929636157523649524491679064416396666263871896464950512262522898960598751913028746733395462741740407588344541753521443093298491901292377727493211390138558994649210448476746251812916738316051077910416067737318317917864526195241558185707619974120492150051462424156101638118171563643927743809607867365200731247777676430315776654752534102982270085401309351102504309312677928058286501305263827519405422571228507956993567582838999048757573892049851708647411013783731306089253017302787836155459493751266213687585476087965061788605691147540809472273702724463989512718721959651693641682002889750255284696135849942877630436159708355922413059688946596367519019576093813495897003971701889841984690203247801663379514425401295258285846935180658973491133328908447571134080301588982583885211019955815494761669173756895095476873719787578696243647964480171401034330145893220186335623119498720499905906203286140999795125995859616055133011486068849901418770552040997255800500836774266038477499093396188647944530570638407071368237854294654394913383606431246779364488219165000476135012807172047653323548029948201620996408374521821004635226923922050630339541351470349867335826443989370473905435710328994203991452128976833171489995746718724177307336596577469282325761916738842241335614505017042074052922101948575605561150659395911441290180034605926201352752282714944090801235672667342844211216479484194719435766792541356725258369479090146261502408117759983062829939922631076693514676635776863450786820658897892548540573621642463021579352401944704885107971837106380548979765843421618591847254727465058211722582559780428434701126623632690447592861822906780297616857346501501690900035847714136514339011056322460639978966979334119441238126212166596360970563771259920068325298811002096374737267372146326253195938604106635287379580919147948229515782683533157713097952026644854101739588818366890659055391052646958218160354048707955887053342324669489093545614671663257843499984874728641298678461998416767831965112644402790884329406646205789888871891927586186168757508069333333235513393853529935347608612192688029934528150608527135716191271603187853482932158119396171029295515323493664772734735285772073605350065674456005050510621200800051720157480887094468925097161067646848454575316041539129999228884367711630646843081745871917523987497115952898483356838905054273461260432289133552183646928656169094957156098176063758731792402289811271946318140773274081256679602430747306186820581366996230890283806415865658765705402537152645334412938555801830373141925719590941432902688762340040966351074577789427277737233331734329013813544215288463100753219378885128312950317967806045040558606084424496714164274022410450782687468482239390508733608787954711711834410533736566058142523195012562267477183820530714621690502630381767021427288916728431406000621100354863297815708634375317232530946082220307402788226715861212607366634994547993070115907195446328097635418461743767754334735923830294574342981019214444319001839182672277735358685328319057742765079259223381944627700672741778547404655338822690809734603817214689162739605424415394919460654117842610908910059277735923710566457215916563342550120741087249997095215628563090509820607748891847547653615687881944663520108757703601366144926167025273494969248164324401630640156272837874396099311494342572079769281712934444656429821525620728359687051330837462367004429278277387778145065622805577624664767839276995686997330526804003720391048201703973092906203671020783411610358184872670533211533128135055031074786669871966317563460612180773179359504654247738585249616743285111117980168624481606253418354647335111197735117715043163849638070439972245772799739114471285873708967639232968754448608288400457459613705401426946925527492668225588796269215461851138870778374506121250147852338089767724165101112959821800467425904445438448556805467279670481359314984863907186800019372879182617710554119036674494950634398387820811611888423463468470948120910818670967249906278132640466214314837836614279225551209850259716165305372042076349717617897767890692766886437580530680832261281602668675209679479298208540420994677378075213244379474148635848012153454226035326919014205708166282958497489845831800180341100679477606060884342872146055593521664224660958322677847530092030130681515865530934735559864448001111818881492815701413428919400541753461914787911087410398868917853287380015837061631405171617711159372902513422896184708734438018953702167707109930114709232229982861540946626730425269637724660581525314512133469570868743174741940855897841502782331759054508394818119523493855788770348293004769271707301902091172264470753237001626428132223556929584337931678720231362816936246675653196205211873314420155547083095726154553497926667942183393433019491424605769670491045406110239007566105205017060090936176215706497800156653047970014851257710461880968694395165097291053361365750292407826215530402715056570434832396606450301580498389895381022691337530173664775397759078187309566950268628136040881082365239940321197333974046866924528233018257846932446960655083325427389226489992883272147744026464554665914174544833406232192460208535150662053976792075013856321008048306450723683189627511827952274997905958398118452978106928674457693538399842738683619902514117303708675834976401230175812672336704419739752908632751140333094848866899354449187180110335630735488519624359943173812671947238083602974877032979922526534205326759452767503103112879888770403764445613195727721385814414765903773605667328111233202447284986276431625254843983677861498667106911651126216870690825197365859448986526201619109753024341343757407727640362382401788590218280549727680788876207038670840397925218245328115934037255045753003742756932159348358844742041370260449632662900860714525644465877512339650396758967467486245536777495088804726867074244045503144804029036588353501154964942407066836608179048573401855241784260031437969820707980048761543340267590636795323954239666250519598238116211607799617750265252938463850723476603614316020722239174802890047768038331024167314541047432518995171628292694710954482984307745205427445494582695205688850500121077054352652760305589246857399709503884052238843312043162626542508004362104458428180763627837383790001901961794750335612482279742263842759201979962441088708716075639498722928897357966522952170170137685475668364084182394030679574800354453673555612366715940480857810308961637913969383748083293424714369540161708368967469877839235060283437159390984537675413439476106403641844518781156477206343946061787760673368789606165927493573163375043834346453355984086634877160953695886477028057959746564272697619418109762785801311832532511549671246723681980272060797565508496568155845044626546848500647397637557869623856319654095716603909518727053192178076526622326873359731333166806697715024694171372688619969765177213053825226303071889109427350762462224698458911568429217053669978166874199017457207485845768602604628133010931800709218061489637197831604141371785095153979461400923541570703989819101151356373725552580652549343155689672370584933453540448222426948758691759524439171254053894535989396655644038180289317357371272180021836805626726138975225067321795994930873528246803127910294904086098449887238486234422182675769868617150940431306947586880412397308921173343399416195771766494252662084159261011694045656552948672226529470632090944348125827504668781069300069950711737755394753771874613203304172967968557121222055811718920983851298946166413910722887499969125773241567049649950816912313087890248220157863690685843948682722261491105362660081849751223768031643680675451090722508190354636291866387710170636129587381696442389928886785987260703682312133336233263511984397561811933201823954746321309349242795882512637988781505406331642675741251356408597482311953269634174226025966161580479670118221737265801900755219202102996785396306187202887131980425911320854014059064256398120374285602041300960280185240413828585249593665663427032011012068091443500740882156489579461921570359584332093118680306153253610486833192770200208234242123709036936658275186973438693098583375285169371096380843247817018847570019907610575304178588664392927521622529737959425204979324189355042179382068708339312780335666154842798178585959597107991787130711365867674490844721700211680026455291566599165676015101128630729452216067448321073666717287371589413496126909567245666863742837886761916458236449645594443286065201443314784718736446316076983900628992783368466855002607014594024541380039893969616825575125649271130158937269933379302880422190624828677583847277063164412414710700603297260304659340731994219436697121084105289561320594869467095651459717768389057899088783265838143249438724917914332120178297199438236307552617928824516745240283952512243724629651033389241278339654760732394006778303022317143678330239881828715427442644358684625752196146835273610480253933523162945835463622577363679149092013920845077013314947087107129597890166209414199507326939452763964154985710392791439448321748514219735785756659554322498291319069239098327579087943320125297925720325970041838426803677700559251704431271475555311707264956526048368103328237620452626533397955343227147799689737952929195093818944781624040964666936069901330278810814762532224970052001004760749665403248741733748135481757440711625671752383805530900567038907250526260153536322601116751844866570437642722760213902402320239738079158988182326429828886594226810664946289872302251263471711235490375294885380043357878981968570619271016537660243946610305698297147093479501018810121514085779240834515337943537529575603419045062488463875920583793532977689400267856673789252412401798066513074053592681516264342285353015325370459649643811700952191235184712236465560391124816064143941601722142582773524619613814894286890891258985384023590316565901597849313994259406289138347068743557745220178298808840102577726469940512504870933618027113758752180387009221290638408175153993017425922817458570613216971049558799827924770723099063533737341944614885979806212639837385204352450181599731488461341288882805336767117000314426094218743355169702362878921518345672017171473025643219275308542630932829837550667228857426801319117790058511174056840139595087512144541857295967885100971267790431830336902741143613533711572978797747850538355146129697151193453635675551730842894130174044675827936539572250111061655251242545709550611343468049787459897143413687930077389309858036806765547082321878146894494736194483464623697882512449562703590615349443172590444589289184284331745014311315353747226199502591522818178570620332463640403168767760724322611385579823732642272503319418528710876585212375995110744336001053096201833139142770796289371140856760308290905077636181488704889448820109777957929507553218482130224260523173864006945940428963489111004292272327415631966371229905964271674761518310656613484283022697786431107621816354480805656283988828450370975089435721364258363648606501248340448444596318049775005853775940649025986890234025200945545222109026058642564959354262083281753648390326665758161358337484018755724844018676509244572565074013401975590196711329834898613419348609519207390404705192317822471766022510501867758304389304239486605889346085937620623764111249180208876549878505410646994119326070094098625768838202969540882809470709130636510376865090212465769123346555003935105345442645652499466056318377726795584938149495876438251988426375615744362906083044177154403693230217442727221557476083763073617760378276668297656703262290204305999003758798096807028367715392705548515201644899686806253769920741808400267723223481764482826182753745981117989032037845677848332172543140917489877621970731362905497503066017850840074622447988321555728070327995086600586342299448025677430996653954512016989753192725746073000434407104771871484845806315469889726449362327345261385037212878761284485901146773308462961383109626210400007732470785706368366817169111015772508336900800204673846009266681449323858936722004420182767646531146513544206094863362798551335096191165470008239120452820027576851912178011414422687612491506678294851174587676184396852086318181762041925211449451411321413671519439958299200979651835674189411994828190651863017365778359657113764887679803581936050788448602694553903434809548422205801148980363387342385302805238815305406243504476355939982059431867964281254268483664185139330828032653661617325471672231264186643874466459427944858935626511468339763691717122179593984141694604857785216070521038633352917540648608394672715540757435094367038640468156646526255850017937583961492487585417399998255734704037671940295879463248109355644078583770103297606889909213959804349156669834514424878597256831581012597770779002384738517332924195786935483022769431402148053627626124537474729284647160660202747783749461643092589433612845687555066218590874910064878493187834640368424772276073878237200492877069723351831220440189652093020708370534154051372264519946949773563558431384162010656136376944120572223289160459348523476468479464780988336975079276047992667094071744995385481387334500156950014221727469207246962125315052972773638546319093569252275317484446511063477112581725121989170042632762805422752623297815077664037939780490480392487171676130686774294229140413485803850310176965911568810103205217361039573444100004540136106577941873795159899555855368981314325637158668950392420529709511865659581597816170090832600568025956248895989171250650171793089308497133841461609784153885007792348054287456711738740834753721562489367707168296039804105946305746480949644354965810995592089191786440495657204229664425863277189360437878818790150205923685154101447848068171271455314755605294554708202189007123953928137010495099419591691964581932352914075042763693222052711406515145964114416438177744887782701061475524156789509318429029831574884007824816805772265272943765837532882953821487126314368615895621562207582689387417829571666152973251711690665405343455354220752800254876564275977532044381422784587522503468269704242242668348468349548358012230705659458729929840485399610486109310097529219106783814886467749363940809469049660169083697701962063083477539139893124444121024354695562891928602622791624444063266545661708036566091991331899158924492670392862105788798343803939386865688756893617723060817006946794114684339695050389711945744329644804845286663235768760316493660791721501862240002042521273449091817525620827996225163775056102287423645319117124982327543310521060871793291137587384103055373264394864126132729178568316977416511781731426407500348066840216881061064577274682676104260869103870110831168505613518831617765058935944075994411671536658756043212391111346029742003324701600074337930294719338220355773034837544001845885877414916373439011927977763663670009138599642232127500957035426746650485561336021342405408822978865572198378714814721658108521438648653907713642864901645788633505683953711036944372336577687870644815036026872698860103361851729636980642760195358769898856676449704153825946189064769622814358903616611615704259880779822395146456582100549639852628469547433457601940745041744663139699563314774144849080471360253285599457389075327329166334221334812704700980678912031928853323913916700578262004857324512518694104558073202513107768407408085530226912476677335099409227631170341519459747661247165318879561493561688478816976110840353543383693732777765168851487059398644684457444999873853381873929750523666512729836357455547192493259418489675973000618597221147456395340230307875050838967177702327055193515386909619302335082788391436241845421071276055046895933835078619668670275127895955512410019316519760423843151487037917696941609494565409760779815067158064495500164798796547334540917193798767534181086506381582121451250664732318036424780464298652630028230720448794896979834615698628375245482213440255612900605179818823800776804813433517005846806944674693471207552473480636942471168126000835612404020698477852737643303250715928129989191197053680115080434230054514129439779610580178559896023761179889344345894205328599946823259372846982048912083294045722940438221081646190368910098084966015569565594820558866711949532763507441383969283494441196981298386840112990635204425689500716728834484042179534081302291374012802949390570910762600095357613195526481684431788705074768935455495900499089335081279059420202804981528291770158880603998722066747848735866823613663374093478648997784506328943227426118269845110047942238386965386873975802176488328587795721950786315206896740680704390440896869072671072279346477482435970916181644250737009475499161490262700465570139974199660159951688434094912731689000548478613491255881180265517448220278643806204057499166152431220937322809546904159655967597685513058293047120319338161169407924641278129169851993794177037752649837144171027287025640692644795155844549933425859973743997813403146734628555633149263057839482485743634639218068816455784252530497295940975090339582812487927449637902818688412200957835574293848642219571931444951098631090144044028993094864258745552365269669112670079324408775818165883023057835060053939246626142456352792583082394959250867512588945271429160977648447585308268513278519035869009523028254146766128878000173153973433351715691741627139983972157235730396249368493453247403359287155652116322018613649843476685479009377064148772530746398908762638507341779758637639061384895548854732998982324116103352469432311446924288858229813127215122403253572460873987034199933013675570044282995798746083538435732105836486626507292325313608765584335535358494076264239799237412856447611319937673574230299778166296578941683670610494349249042983737153522384655608185082947133971432779203015528966779596896205776109604659324329021769278854504971410507080439047588716499705411825566501889802014768795873095101729660516611609223795332940081641507603822073181073094959573278663887113453406193275861443127527674332090817841062779430127152004349199658436816957615114291180613816221383588134496145594849662436170229308190784153093019724486811107230467721580986196299316495834183017381274177809600749668453859454742420660790335418369805595087175648480204289138308349975781321183180168240597431415760521272785607307442712830381770492107554009909089241626589667056161416881463084122882793894285688779025018321072027573369395324768438996863887684522106277464434198481808683566143183152210129150460142214544141570825092784609845195626659963430702699873729222782973353011976204307218609082248106167033346922405568230278328732899455717582304161992813870759371810483848939130072582565997718925536758090363374312543545019057177079871815143554431923138096843946925154344249687988918986795550159281944086358747718761718159918502406494447609103701789373957080133070250567859296531691949804873064370823687299245980571068853683136758857671025028011785018626037839504371102936727812219762020664843213011838476620171361783901005688009192368145070311211134821260835627434951450997547940803793918948099363536294003119270682000175581055111824957551535537496022145709817211043445638389905289683656932997319849902956634626620696344818354722170621936362382692042144253229869217178619651519210325009036435643802033169510211026356604784536976675868281364255269027778232546460403899564074511076002124216516907147243202587951464975485561924766585089687650855203760186400035707196852085141370559076544589506921754542601072940420667046923426940323572383685181822838012458198208994168822350481597783812102283333336302391060893820888392870956406786843239961612355966332732507152266917238879866892299901164312544431707047574754173601945956041727949138456336284474689627872338672945997182741517282034360355453767493939521624521132155272363029282714852840407796106253045597337025973341631899513316562022903854492040284495598397963618780311640324530944187405146659994248605034321006363809580690763498172892022489107288232756209543861915883114975416159744028021170847515827971680839781511738584443979786209480188751269481190073416678955750561368850287623311045021780720452848669549468213278837554594945180751825390295926425960083607786226319167434044335774900655267133458672084609602571766854790287153993902914678982889470923617685248251125358195681764026966750144097569623432127214417545963919902562132814734295248070469557919290278862287935095647695384898268386166374696930792143315664236015170823066656552995569979916900234912565693597807896865628655234265519138840473138902230278073237054704430615433060103344491485335505501134297310283542630174747347749232742941100808963118038581552582359891112629797040842840824823205203709726920590676147461730136577842941334947609676989190183259688484227261890655055313445053428489540901908829985278087169901594221911111169606464709923089843786841475004819733885931428640308983394588790741585878101525196987684275515274332393944769336851547846089638730547150916846286202983660141654234454160407869196953130093073170502020661482188207632940148326864487153316325031590931923680942431244608537982687971764887530078683147286514864405820347823917971691160602858914177217314394277126064498423722977674337662831795879336083611970483934543550327548813029477970875763021241023878808829600460793987372248742111514763265755673721726727351182845609847803010488498360832037331093998921440006669333325654020934436765217049057096818982069725818529148325598121089447476681092378345392321746368147591479452024045074209003172573308208232544894298692770545195671450191769163205500768700734983862989031867039432285224892033295513633583918886675152324670271336009753310114807556882892533244355304590816479407068904867318240595917325551843935367564876976855871974165984428198420657725334441588967916428240854735817156176348934834345090595904767532543532072898688334431927260893700399179935495070745400637912162052107889730997066825308047532086817977812939847529910129737220621691359432361917181206034655456019090647872298642493398662242424194158989087812667336548097560474641564001039548957574315337812056749824184448974637353799599069152951191936237010853502064600856334537730592990569768894218908585806958529615757453422733197776640907938369052067820245278678662043584376009082808535248784382103437430439280448405524021338890977637984623788631189081615677889308220188646292937513018498223047079291406850651235847279686445289969625000309710159053640840340947805790813503891036991351472634961874551664577365468807483520986189601513241713758006130661017527028622294417980240277051817523179415506675493118502220320494821855863108038798150565542777923383456053320596230957885686919922306810833129074877974041878263075202324454222241064554140642046419358599995457978325999027791104245080147920055829443321796911374321432014242508703919893303395976497273403182048176989557530569229027006707666205868528969964905261561665204368328070324953308491343957718119297221108594488640052045823732863649170522883022873885256437159770107813514448171195077096815022881139883875086033048185210793770243566955784887827409918739161568626002879384983488848031538205895499100821297130156468331402123060937499569957889164185435375162206693813513136053410621235098216776377544914689436646223332059296684182615921777192722314113073436768717012270358962844374380045356560937586227913489155375851860328323511631259525343838208940063378535942313414255497239526282356565857941759433243416441238318325888046422396919009427905578610094616351609328917339158104420098638408522923306221656318768035441003630471239602259705243895989014022184117098724093872548250425606491930627185358114845623537941427810120215550736450384079601476861000127427518369346492938676889777155336393057170579372155255540505514406748982857199196340029748073872255402840276400606408461378931356698910318004007713368184646455814123285991305528952210642424783234347279401545217310442144269283355671672464065525300393440933000071178191933874078023105283628739583608218398827479725031355053411948461429642657669153395449392504999423338864020897638094958628516275181887221444837976851337930894933982194021379969497938530473017922837463553697626016474303033323804586769773537789381584853093526455393537420884554724951327955724366016500702299470275209508060442929790454662529867886913574639468926195493994206363803016726329061110720828489310386990486186028311819606715004937053794868713319244489802754091278644890787690066039050368735591586984943174612804649018410659756739735568111851848373240653191234737490452574005363147564305291134513034041380977326255076096815280450816005701519545759168287353182751442990165901337868203139321082209808164300502952299197480447425959949354008781528637121532919070962283869565924567519683690236501807801050311580958774042750022522894341655810861177430927543612836116465793160574980667821786576425735512420425773725738013799550215663863488971549415337105453989556442308610978063267184416425767494043932108913116329978167945087342936860933866424021871155090323537062737522162488532899377827596388769181845571157059116424627730002807316176985090233960242149135147459296378630851871076857864349309455655011866637831454657247142351399029618833618464101004960678308814889644116585627064932093102923619030789667261137555853760083213689826916089793989041660793301545456721769658020089434839058833985291966169158606877719447504104559206275424607887305885979937951603553216732148013832515484090912384726498549572511537789429828436948321536538646715574009883966335520445856495276428599622664832757274345362395120879915633249548386530809607308642320330048318795304922506034616831403054659466016071224618703256405673835422031887434119781797623118381630310002416032043227354206548555354937322309271954240023522476594009048167185754632728244016073267842180898189027309615132558265278238253667092862595622293190098535297797843828804745418176066992676512038572625005177757441307109671195145284169669873015577316927108031615844827204537281807863264323875897799738797865531930940106036812766672161600320131215240401664808563556372260453296528353021879475709913787326092717699513442354020734438791671439942829637738352036670229629937134657739825381439729853311194673570552953672482788626906027176861290885700107373693679048810780192149546882063192551582521803187285907145057551789444121978066681330166550006110320520392753054233363866291349449265568241289927301393211348176217310473162385463047231606590445107104085296510566438366715146582795798126541091610416761161109249626719112180931094808073137575110609413570223081489701402037834556179949588720747219343071741956080473108063876959147933364007026849571859385663844374244806246777235348818714891084199527925042205642359616157017599940080470968399671678903739501154093707797880715251252751042863220728598123434912554598516747637199953469637064294482090825372013248908439306121091884684373868607189675512068329812258600168366510873803611783574925868521170814682069598201088012732460911810954563901007421146233840759895242242999737960729054345905461683283173210870441085800387710780862365110905957746474884240863745284040596741481750059547557822376987756444762736070055414656494039809316783042659974331145014793344210687572233380648481087380584264133200351079319355682322276298390614160801817453354808964996548152477317103121080774678889925775607894780154815290727765072959463102487527843883149794225651595230454537287891917528324412107918131111112889167849528072944188417045520553530519795073808990790029739207555365933540121977748683579964400003133916309984537941000705188793881471910093898230060675101002237597235337215607300478230226421879180805968578058345013366960497420506946087159507860452843274723505790516278237632265306230605505411170332703193687826091942684780910527843976770450621197836909862851600826309526958696019033487898497760111760689324781326675975370567510797602889918838327604049982279877359509898432561261696359993733532915937994422495867382129493599480405561480986162451136642890082313879210900639144745670798990058802608177658748958784122123283849622985599181844033316541623911051913762994963858292828305677551134650768669765458502596604266526474753468744909426987368624773240863661423633448626225356453084484505001145696825545211072352229949961093612425747464201582220184119279288252419273162128912618161902676387560623922727431506134794159979774033791736909178518768416861618864487792594290399734728511321892057202954286045267596377294427681952188200527348771389493301666908456036220114778662261570794919190093343299845322765454521391200537685969536371695992176993289197143717797958298552819753331833501262586882263340136799023891048109488633999025605292763074707746492681259033391138997728034979314723517123096022219166849989662159389381606261248639185839361148918939660386209429186902198497911036655212848680390457112478306159016056302305878620499847950648749130327740591872361621618551689330122118643705995732220538175549376262780917227587499760228031743644233466575800743160153596140985018219041385951165778395940244934268454757972923760219616510237737865051206105469326879504094694984921939821080314001344932298259174356221743788908500862591513992317080074099159108933443285530390758371547625384404823981036375148700972720764209093669603585507586251380462178815673887097200142315251000316932494763238748873420406827732559753171237213937772928420676168741175500783498398328306097500475425668978198691242698216283693336437127967954476943565751080249424267314178416073579332395789064331904742873944488037002669118141579249752171754931976364327456986303795311562335383396601558069205518310175035706870358159735254519290275332708488917395931593774303316766026245093408522803179795527271124850276080815039455555130763161040828942940178992081018143628616088084529830543137335591174746209246917319292979906641691325843488803489330381515745916039397097693391377281265863682303164631132093346356122183948619776470111249391291776622765508067893343341335120366475243340964472752152137946021915645627065176169054896644408599372774257286056673563937440440541676764124304980560509425332906852644885075351429835518384528591926490548519193746265943443117847522387603515508300050450353668653187782409014288339602351311963442537481652608669840127271719122312697969571704310637537531475599652273772840380090230265115671428646881719893784876058342900454508748187396063468665977531478233037314056863896344126216674249024977788368280904132410856887388776352226308682144212454455938146943089780220350494216858074563136472096077204727458027372185343226360545404945182192796454026714702651194006968737019680292377832198514865008208478601727218971312218136997127153219682648551700729132643149310523790558456183946318316332342980862380097575639080465915143476124450874662749426474387988810468821368448340603173818323101850742523716005108841271482021179885225959825976792004764161511140761407227110922885863163925588593453786713636874424131176840388332032409954721668505149310597427041868720130824882481261336670966407029799522584312038226769311950696938309154905739763240158439274133476089147067990613729164179236883335624716057711395361938598226763818934624212050352648559220741613753996459936458880407568425866103127761686917967484909420737010679637037346681308505603654473097986598777978139289298627109837535209184235644965904081121372612318386509719491774470864634493515798690845092702821498680987865226943129973190247693513646500667454915693143122737111315781406449277617156909663544005563711877828485836455075132786863828638094312161046344348790880080540507541240487271003118838662427348375451221443927355532820065139425719739015588761630218525634422353803753717819686240454225756169325486315548024524801275025582097600036259068223310335131273783226609562785349000082572555416494847324419852282813664162296391356890626136171631328668465454072235436114550672234998874403287394450703419772041074323984888548908968367696677229036421128785162030564201211987097186709482023338957307899357098243396443940833571961380602642976230770489672918968151286822761368992890094319352028762457750323214643313517954269042238129608210880718400702225479657624894318028879768001839363985401146837179267662979574132736909621043405256749474298213379098324130954329471348093581959705408282003289369538384408902063624880116627072586803046516996068141884801880286188690123992267430457123718945935241201875430005294259908208806329106418516260115427138082596003790576692401676939792168036405512734041188217039836656186502252247550128438909310208900032944404466922956482641325174444999958888444971957776887734110812439044797067741273040137432389885850221655850815845745548072489473463074212835874843213192264713039503109769178164161869608421848238222323230439156681890680254153860483460456199188234594164626122215362479661405664361448627661806950418858522257177380376510493672548459580793661246420512675509861344101947920542980010325276826687031649642177012783758932832203366779036155826307940856503411005716907065427697856981761220457666697973629406611002310078088601866620995392912285352451553633754983126125201207734260141063091200226164818927378141849843215407056116646862363275591560585503653790223425553956051840710972044813578366642584397968133898399722624766843792365706143677162343225870344366838935679463010489724814578476824931019116435638051791173991944243692893372259783798792159153266601220481563238348609722777560167212968480916772101138597542091648609892791635581427708804690481986330965716793550848324923846216258603710524373265434515060577646007526286978091187359876213161448593536005483397756493803341607619591065741985761811836724118717357148500960549208772283501136532019953636489789966445055616121827139835774324994399178390042889060514976885833422246177610278691617122194803089840423418111437645622876935967459038469081740310501436956105906079511479824262294706762460782048090219835115083407684093948095681986820689347932365121742810749650625996091784290844083464844639351213178997973744107779249725222041709032075569769544780914605180056078497670134803825300100795785073474224732415484637884858472433283080695407382024312052114409384428847142786328863773638576764473419040568933053100609264870978215283993008829868166903280757853986448340899557744080929834216942658986131568494386219009729408770451482011360059496271493273100196401458950880870524602667940270506868278843775041257471754019121900695149236605863999603197541584495505671895672512290537623965032516674648568261608664601579501622621824665721608687287886479274977180745922077779919785091539659372493219067592894797049143777976494744928841848393027995124958364999580487501592254748270530704897277079402898080261140380869827905193836284259183701326049655809918511977171470599579264948149980984693824324204520397043453241277433949290842663624777084001946242056568585363022936873542974818495101913282606043893746204104172836877546519822679046108580565480047178536185732332409406484554731340732205358356943805163947643827869896824816544887769044746848763394367776422532310104322923383708505343825976697645192916117085990209352240691030596387018366175028753800241589611259035456212251754936439687483000115931558791344989876768403265634729999568694009181807574766298977254650554486483298730631138344056208314389186003047746068327770789375739596801439546637272871982145416438366969771276599465898631660425361856387894283927483844412447430045557189623099085584029452550362495662090012035619717587972094661204420825138734750526930964957433115925760942094374415060993571523626916259830881952960260044743681987200597909187972329208996323746259812604973767244875499122186751475849822551058413040277711546375509578258484640985084429470270208290757678973975687274169331196605321534736351369734005522043664518082932453458085342773277593073766479752508772393883599559083751777766070163169429407946587210499550265772341855569035180739052693761529002074142093195251016657528211053070517936533039850952391635367204627637478926635380356397248707303253422083679182107962159757561970828671961477347187933858665726528674026447375450715624866482135043737334520454784458404313514657383842038531557364912527142854099742258772701038220607597236479912772223535792993817531139118444502737576246354065983461870504302629637573019447092003686539757832402529173112325427149635395217612723911789547086682359209002329094182306631839935690327449827525354207551518076787859428651961777955396898533981484514046487743913045485924222094320991198981720165229131821800099835382217048574021184708445066636735975778922179359501182230207688465326993908322067800004187627424753531563412244661605771622910399007084525774104049358700890005790322841457681839241659710634691628258208231191188115016942001955880272738357860216317642015726654131712547332334338968613254919214066686750075960103656646298079843536305253456824787768042386575001426088651412592838432130014899843368165064933988924152973988667882506353785229936612672662994810729276473829773323923877808751918780280747373948938428481311511546368719730451396015608681091113848947525495276441687081367662197866606762052981106684971835352086113436085146762077985477273607549888661976905904066414132895287375010595467486317432138815329789677275841216737737330881809235803666297484089987967994595760479441836092353494507883610217464381475593790353617699678700205924667837230564477827173474045651268916905272187721738203388296352188210693743423038777753540778704400706431777996579952247780871889890637130523159811204191811160240911683969082286467533189578850928820377738610244057374612910874161210926426501424298848496274652270600697706395094216971003883675220769976014233741164134226752233881724780788998719349788443019923245808114866743713325994816954461273844851438546485831229492180441002945746048348936960543477094800597524325356060038019209149864888631584314492740175060043338139986537629167180644184812001962072580202487634319459140882764161311067027219421391537595727833285521231312174384187687306022626495026123152691698899667778777825697600351928135727419614560842680084728674673733010242032592427469305669108507882393405298223419968633577764986167575809183604863089300405729914331001245790473369780217429724837193308011845414657039025977402118897844492990093095790853792380711739234344927414842357696224227733094405852105152004773348685957619412686669371607972014136103637564074249465839773089937510880220189590120233447092776933664765383498229600077553953355919594941257110697784795544644849683043020129143381170886350384960231571847224431366444946486793638776779806316715083040851421430349856570361760234707260506033664892388247828055189079210851860396454169755869449913804431016117271641831948338464309715700351007320225232974118383855826473167899047044702078434887200690078006395016106980700541592927826286152158389328632264393540985759396511816921294416783366105473492090921466625718331910816395307512638405962867536087941062048707769439130541095763867190931099109147529681068502950107113376585652446893280367343125026940766805110357272977133725748967028362893860225489570083752136904886287593371387438349834294037459239302012096310308020593723434836023778606498413046440455510889541791908827295450186526843109812281309287664695980149917308180297590132214947021551783461105767606839289309292473663738783284372461265540601386596054380340404403107082566965128833911884763187092974833194452923078599588780124757242536053220001987140812296475166251030652966077747348150710092403479895380011884598894165399824837018902451283035367576082648370041529214700956325638091705569212101266656427627071191383974504293684814682406774161952282226284227217943892591428041907825955258136439479063703753821912445951279982570479170331109295941036773611096197617119035166318117078440808075305993436928131361507579816803155428692121409613982764556245912486324708401913389749166550899422529449882297895080792690854672681226705859656222154014259705167629111962373258966160980650978162011053911471252954025030044337846433619148517399314940784640691385395473631484693051824488941165891124338577826779969090628769232668270809495438752009708433378087205728260344875366835470113034809268212276459698700032712923967569234140937931684164924635132369526301704335465588830356373409070769163305204108358520580566385416018299629939317935510153186519508807600259622621426840523108002713684140474805092453089563688768944415035780016907653409615289505632826069374451454829950699234718391304843930610662814319518329213771098355420624891279253657652247841621989210384597052719272213118271108095099205341721838851144218341057138782572344865357619944130799488092618682204164337427156328742058624470157413219104148197416457732857993418844240431786393247674831049304543942940695550972379803353815978735143433388738433074368807861147079552642248752820757317405365826519470490852428453830031462903732013874966821799628887887184423405142002236702281291163298756575176463214682090276196366414081895274274105869396478910576401342148040776920085101619247292221194342980731292734925865047822252495588888287594227064201032293453143172443737372962844464752511831593213869997806569711803032308315738399772442238628154193207673439848820730165109786569874801413456667848204518920982900145196160011571356076136505982266568124295771768396888005135655382602483145308387193639024074554592433321884491184381549407552231890335205479421874523095041529419758198295777819983958854039481121093992814234693785086971005058921231671881674799849042733961259761184306441265857005188777586388728143092721588498810665230678951431226843092442068861767288549586236387261221645821100595689307919552002520404526928806690026770148155621597113732314804541169538414294556673884469731057966996269805352565035835566861484288158715329935745857830089018952217003050559543317912027269011617747345066479605071550704926082666662476900392120309009060095393013266896351280729515334241128966213133986227875115577956167479126407863259598667397067739722664667175885927101587797735784089167962070739814310135468243427787534706153887535753141637673695448930734613047708932695854807761675729476865514926126229723011982842557911594717077903680762629215452519634126961427664203351674648221896458145496690204496985471091636392088399850282391511989118111622189390273559979001311401096384753314195104494159169058794487282066230816051040121747151391951476120012711773578238159556644772874826376959004932166783369403610864589409341090718150646061077342867460206250492077281771961838775729377913232301730622617154506742439156749038972774206304307704157586614612914278247460425219778676663991578284173646280864743927536475236260339439645337421593566216797696355751011611606757238371507946562641484495726282441626853440637153640232264381225270025985397490444532125180425348331390292301961589587118888998506875507515606992440265612033906823540442746565967487891660479829166452144493650645377547035745151485275737835159176213441850010120300785514354267999508428580607624041467168623868500484191569428539147483687153065725979052165128426770277198786156884590140484782625530346717913014861912750968373525789520477063059267790338594210608283861273658767394883642410117170029121794279833204444602865610357836628920310958471060769168894479961472269775103063856899923178912821516696468654750219475677993762203096395376021858736470982805041638106820989660291409779457021787856476715811784142912323001070608348014014178799054745010192698442890297675200837799136338240168403358986619703429686033332830952979342519762610544772477569975577379835330947143106842622823551032538021250912247937505162411384598806107325011138081577842008746842967112313549201838418509322300746037867282454169666145086112406720156061975742965283138970561166437287504547118966277324243795802899698958386689777065747014051052884738443437201826441311783232352806107233554094887239220888790153431345570452447287731938717791930357788423639841077278388917216370677061415831526650964312592562018812734222990052542923523709501180599944409615017906944095610001978341817342426329500136761946596198002862111861760606149441212665101845691629800777173423080738944996049220827508350800510032981047716511011057588925751655167431438467594412337420466013316249640106296040270780756182838467242013417838428421797248572959629704552712939479502976601985751427880594380594400405118527768464179011538964801904994743001677243107304143497609588305396338941943866205019730913965275895855493011494043855602703241882305916799558759349496282909210750357524149336591917088854606260600427055394796184825116490542279273654351769975565240583749997422951084072234553697494440358115229866737787490414842817550488633672465957954107654525164590900989995255383154226904258541936052678741261850408617224375885016277260907850689916670539034934717759224823498042791076729109308893398516603362377461378008554145205294076309544168073539944373448923084047853558361872186634922501199472881929030767966710481774847242565322758275689427790410340175568287550484864261013696763725544243523201899532217610824338947006440677333537964432717263727540190544532403725337289540622899036363941387060351399926682007713128525248747667986190719515294940668262778871792550147414595350705814961705889887432409582356182368467378158102131112700321830919924389420278834510689666953251647151932501831445950462369669734283763657701097507975686147348447795303124591593096532638711476013556057736067761629434816080077832710852735413763446115665723621017347789719818971240457444535878217522871681060574431993391778532433032464197613994224196621357914976326683044226551436567262518026545319212216822201403969546384957477612663542594611565180312488291533757866680347354177084179672127226333996126736951324475294591919957717901197824842770991006604973101451207896785293392394887910089150408732177712478830497934157580628518707019195064624719442846559698805463392879376160289413526447438198731613679460730040588781240663592006201974487574825006443016006080143784582879881064457602584301157809464956536264894447732305801368885233009698634939841900719435884890888871548136564618543927698307838002991009917120433381141725984260762134108224497296690951526414000036867707218565789213011316667468919511511828881089423773329836649076808528595717976287175398773344446121071671945702756428354809475578716808821095843253644919691185092631508031935401625846647076056901488602030878225201798057324136491542431937141915641247778945154952370801419764698717623407288489017573739169218514348769130116928074379759038903291492791711941390020603251704171705163213668859107486255534552570183487214428938664349093259046408663279101324914594453615848364097491364624184125024024711707773726214954696796410067484197130181334606870362750778176367491733325398879226740380139425675362291730197767260233539224177645881017487132682766404674127677226811017165297319798024979116484376883789542539533370138553831315667092392790233514068338207191893169979430604665755280098442541259343441467370128631831733513805055788231440067410693309741153126022006981234270349727221454175783541491041796796581593894492978819006079058893177901882801450616630832398804255180235677501456538608895046619926395006969426250468893909022230569139590789623435906806765082727771044470540308604245063120256798795468220376143560366188574003842654828697320167950880466139948038813376030921984193920728747728821058203432045412514158026104846924529706788675698981436848293104312171382438013145669852811078136843452852142561591113441521391214108267768872083516456661331337919255136523744096024181559698738929125022265812876529291586579739227365902566214222088327870983510885400053050914320217300449328803597003268556249459368645952448667580791778727138990840479312195922557958650447850372143220652633708972046178132342899526612755269100318050920931884967843673321721723107499278761428795237105738730575874797589673617048955494341138387519601357199057454374759767490691837876321557687293384490592509463478368335644657885899050874479123310504990648365449519021363575526726653745394271846489948003769707541522194063434327904765331122535149589577638969277781327680378912135418716818986940409318995672952189267757097099264009043792210091064293756888792830144159206872227913837729736030361618240404578926807401165672731656380458670906897291491967229364798748931953630065421466309829739447130870019216172890394860504208948889542290840244701397839853303963363341230654634822361570836655766347607244366187718093018204837456578621631307513806039194302276307527908572587009171546387284351033813975423793185465121364902146715830935144964159559171084006179200088502673809716923377427998613043620277936834025555939933920485366087594455479081420697599936368705741462064319885589479155482125229829025220605318723679056842250287588656100033393349008587242981995183332571251864726265115153827560887126103003215882566707889544954383622086803719683082499636701465509102064865513259790897390692184004082193090142916844795037116411822909852441840800665908260003372013150126472506704914914417914973799379795841274515655755133525033004053550603178050424339779793857389751040445195139836616069687928825644377200540877246899153905122261792193094545444083049131057520092413267723397424341614038174838924356442334077537311636965750415998152620380877100433947416224291936501692452224655928268834716224231869060785187923870429260054338065167967264522247533244025420580078202178042359333682642604525003278179409879526089914505032755376347390659438869871570788090250851942566889126671006406061104961142926255254229798299804031131774685959743869069629536425666158701396130597138314276210303209319340042424999472392708358727514907243589941549369009034972747781004749666201039190855843256581111665346148973448013711692823494878690561518847931011704675065782649294178157845315367990137988087239205289664312722580055225923451228438144993692914618328025031130572662765384520456499632820982767396590435278000878505657985907029242977487424183553644327851404916072781182797962506602956059314572112695737154997089386087223687736988348745011607052366095067386776062588267716011777770696083588915986848051455956964027082008918676218364628107919600644216400080911262757686749714627107541567672845486652401213544828200014821902727996885532985779834462549769282279135261248787624016087168216694613436254666860571087501598107283935917087291706968527264330711949783727416991555184012056032749016478490591272435509257654672591044990338302811461206943896391717392000778895068887425592826471792926253619055915559057610814312447215428522175522885215663687183101600474585603385056116466803079419818604024670570080831613364188602048991623742727670609524536930489684657095762201801616809333852576432698962896973854170507649854345693965170492470900350814014338811266227884945195750517133659912333358572653865650340907001469996220084973040207149599182699368109209516717508687059901865547455932906052360989713383706383366290938357817672306926486066209823132669119625895805652979573823771187283505583459701580103753149074332039147710742089365673539428100890512808814871017669966132206852209945854039815664565534804467303761947950947093748991865781084570496565753903397295488740931303663175131547132914423529228577000284525406649927338762515024870380492780773958867686976361136924039143532610282381929760842778901998253100652613470597048523015725699753356606450409617757455036173453055867456160893394751433667168928036179972003176948395404576769838747944986949661899313356685130546841734984296357242142524739904213072230806569279647076870887450258540535016309360360816111928351146515916160025208622587486280695877360514442830243314326162944972649132428254470331784216740067768595706033049986365621137166855409311403097715961408753759094395789423426109686560545902011801084173805920556438633101561139337886158958211495612692861544754581116230433128637712553814415609376437863031314736641994911555676572901607554257422282523923179441320520361200719931504651449923592820580532142227175164610467786761126549518230605627144365378214474336496804606844808529175646745477394687518119738218468366389832010462572924629279553457884893370013195769320379619426897708380237045575645099603455646748396623056642338588673017967732729009067540610083698613960971272815364124609644878761134982022218762839632514218343506325496998971331478085899381931454503457724453873938426986965105417409552134403893432416865642550343413216140256164373029100964538926636242040574105635964250945524580897183444697694533817357383368627392858812094625081900055516104058379449242380313563609200551035113536763612912771538562081532518667769885983022398144473525291533960606644321254570179019954280293942628850138445761691899768529130522483293680482107071848286051133275855423244380035179328625026682179807734668822907031513330846260045511521078295280702394612152178271494522603713879889560058065270530489560250131503098589009096583424309311353438742936342118347842776285282455849902735295695082388290401119088980779452923589971320278120342715368467975663987863929393920871682199727979364023023985160598875593556451933758294466412831583717456156089605847738620284158142121947157165691199418976664224319857403276904440422128294089788581880273709078675249612855539861006696455005575248087528060718311085147743418595547625923805040041830574663605241078264129894819932421239675244974005256687217114606811008865029037256198582825266659585138348518317790690187129723894234224232681529635385632867176374652186944680214463613117400374053705182346532643780304765212132694079516483617035326852033950464421249802945927146019443048425731494679428666232244197012258860202285461261033383851697290334456590881575311805407413672695721568296738609333367149389132229320162741198938328605780995202519240050031737869446841648368462461022850428020493172650721903113845892787279066889474536764425060487394503551509639374111292093284900717131122816734266892975757478304643380688345692090193666694945001172231883279378859253854223666429897485062366930094488603576743265581565844323312292269760904797347264409434094336680320594077437602610606062002212302137624179462355083122278477063837670768836666482529280991359189498818574562757333610394864229762602760049512449107663087255218832411788934866041470084640229518965660318512326521840212507750828827810180087609329255542099987810596138940208433953716360634799262668060356718246070330276399324524864727925978491430330822194015509758938861379027990746320444177364443156206234399349811863872342679057309620400942790519074927780721424765750242267573691720057215528644405364057645641547874585856864110811902833121137856670285797193035443178995458054947643951808707436169014157186360793206792748108161564993631813815052973503976043925533556359190031496273749922105992922310815197034126185896549984823935839628450617229350320756946333045141698991495119073429540889664139345844971864609751365117234429268933500050558803983177026095772716377369894096475735827347448406278070961215457662034673120227010072735192793282482249853185026975154468020355637890895947445891094186340306284888789434751111681004727609754473115972176492733940463685978830308071659500951154662648299136971698470676823381031810968105396060667407382091785601437643518783894815938304637624436891787025260711179526216905623594923441998073986478477156345891222071491689207682278467323958526063451389471619235112691535845063544406827158422772902502602420175628705106893776775165055684503358618541887755437387394087580948917887393120553786765164493973504840409266609610165334975200917247510722922895255626711906088272868959296153760642888354787925670167177103681081359405567665915271932105071905308356673694416882737468670045632644970291585949627270770391702999966600033027567757201998952573658646113232853221735624011716943991826985803817975131560508122879827744645807339242613053294207199439008076955626894046724523310144750413431444962931798140861816859834287790231624923829088098166626142455109745207835063141435171245301857390086333629350535793361754360709984997195581196764091126721776240299502261852904198431803118444791713205654929028174236853893943910682814712643611306906286967110095015513264079117035210024208597762595193045596152036936262147499486317630283349907438958599188414839906857899471904176467106729648518470698196813188786707121534615612845520185048370200854034564030143983337587069937597834178241536918967699116364377810132400962848818911875986757409382426487711617781920897179759543477410036338793512706176456573708546424708997008143769953594104857433501486793052123982150156497884845023263215436588870396739410226241849188736400133480063932617250770068947053544080979986576245551448645731105810273320577130016143609482358845269702291862564263477680694343002912630488654169472802637620163152475940681211078563923931204062120220508562786682056487236009432507948451780147061684742498562650243446908155679738833378599076892281703758251920944463931236335024673960506154761520918492137793720934564547086658544781115256383600084699220318632654592418141640347292498962260446280365568935430558594625066594585016644890931789387407068488833066203147173842336191412004183385279832618314354086458624580498595588318928461803490087119143886275192910427750927541139613182042136676179047171825716329470762915653179952541693670960542431944530265891268722031045641869258849753805994919000377093695939948757051473475826176888524735228615325966730679977273512894655916492661045265595147316132816059139862207658085444692040764862177396682816799490071215792534160795028191797562532070394194530533915204022249560340641872628043089859687096942676044689931956221752568023121123213079972994897328532599990516901589723975192765327218088503664367924546245077435672817643906445577675787447134434052401616657340711515314276892139595174698489912222268492428508560888159968632551371788478812776978071522662347045795744191783406650920105213861751114725436876895951221105730297979725350891916175419763714355384065129242641871894780359771596159886880106514466547201302492107040169061505925135864876304791014309157637551854314736357086392269209515395051814213644819209141665841276811210764999828219795034784540355544093577467142915610514353294111492773236257735035540965908066295598928581386189389756216643689057846277877694000451589986527697963050636226491331476443215631121836253772860941393361403000241441380354866223072452534826924317224260776962931544950731949918342890569648240639641182710374779445919433919865283807765195732476954483248577611358911365047088829009854812934025749427353332811099488784823827426951389111547730831696744178844562103113072999286960928124435455734591544326538724023302419464602679817537681025265299178033350574962884009922303070702794758401345574189601804759743818306058077094953427268244506331656345837107218918408147444958208423513240143837315776637878068289509262869370516031149643071347202651226401299191240010245954302290459898360806755447453799060057543079999601341047218012430524270176907931722914237410246379147338611386117500888489323638218640253870000717572997855951026892388584353420649204850786649113899836486613161061171907071685565451516115153406819284084856314414981803231478842567991339588537846291377641721252194459501757546962422383581606858830510975723130510438703855159915197917674904976992551301577314165683113811486988400802379503385165379276666396176500755475252956669836834823883511632747483483189372184888425740383562869984053596240043485816343287458074007437735388604855491635052061203838888286515862442165086678400859681015760546458838519874227154294097613106171042489912371753157609757711122352217202535602482387950922278503891964995902026999956611152892262691880123482750157132149683349085620244215007046850713041777642907005700483631461405007170843782527185854846567445127394996636567791631191290049246500198206020787081584740550395736016484898934643635670331178006404400389734117840364136730476588591145890123804048069950009996836971496492801855924262207298686119607022856671654004624539048832595795810268391447950182963212237847946293304653606385362097548390900877739385176375799951477139433255816112227750907425466271866317785346874793711039428894604955227734910155475873347516724903114597155899531903842772581529531062830527147583090483234205537145247268728209899587407284127987080352515319220946789042068917782414889577260911456555062932395405972120472228911571783966234554158587904039555884001527888526237284109001622280888933328823332394000712431424186209088371680846383063403211868454477486121163812010081738386228581172320462649625168946626110841381598628261447885668674099913277366636798121844838007007427993180018293398960792781802528090894552538033613077063182029341500863538258429342608700296712333690740342805859992158550091616812455593403415171190768981142613509692562069244904255796664964342263346217409009035573731786228563034374432580874887341878865130500433131796675884319538069512958067272456886936648595226961518839864879914089152791291262853068260381949185761954187324718463674833713205724864438586328722162961214853672868192136631747887928565403980884912105996042901532672599386705480791547199510745016050478493496981037975164974966884933734104094895299138076195969776486312433813495993760878270795136445076558133133725402812177908893436668708136502884696634031229511756929810527503072017743431679048691362439162354074759464377556280879885732713150579832019179674073938241629495943260937271989280968841018874751921525516417808126750908610986368687215579079843131286404478281729588208232458668167509601009294196196592750120210691756155400592845768984226710339091598949524810427417257271536108449731843789807231875577588088316883795971690245573655816015843098237059872340950264691766456737306097200151543382363782418254997775482349479427400982160554940890608784013907202003091528713170603843455964674699307527972453234849595185830978961480286088886593595388678006222705804730685835731022408692958250092555331239621963002974394477049482717039085497779777034229474346107835802074541139408182618390197022450433215722079501776745935411740841464512600247111496640060780912048714296228622683712189238638776641827788043912980982836424894250098640467456018239900624482881867983738251133177463891289286765467848721963163269204555247904090172089304296522867846960791254704150108836880034897239782025149587226411808020021801842598013615326954472241650862813956119690375191837164680522144774261186057253948395614048233526484950373162385791165327783210337548340328248874444242236253094667490636051024915480534923585554082901480861186983114973867736609076133591168365803053266158460315712257409399827780499120765642888537984969269797418078517874421019272651958940611158209929847123882726963626472102102579730892561164650638746030099131140588793899457382179630001953379239399497310899287858918061274898334188020450082714386580167814947694701545554119361512639839090465241856683441290063687042374601246468782723645182656631095902167415703230104473256325141574334333628683852440393909798202298532275825810984369725228832357203688352216560502143243374632021751170925218919463733909990466586817641819465135849764351613935775603310815897510254445393461125894825941048382883497665150680749434276887101174502005103771747102484055865967151364526262033321275511612138770938262078400449012037431529461728218983756048634540391622698980409285328824161295184492288492989372272828866463355286816729399117941603219288019667128664739034143961540079944434820031480515680702620103074483443202817574171868937386133147424258105856879305046229839640593240919560446324038236226467569297379089823577041175555613915524282930240061468920731396418345350201725331958218328266009580748975580701273799863239137379476856794750037849579457101118699560577495379807201036912749144235189977681019075647312811782135072629105775414253264126930104511843306885617565523226617510155955408594902355301526296016794561430867712515793045937477892791105997004392077868699230865735019510136195847884446098406067229112756712626839909528296391973292884723763281855902783219120034837736825633856799727931925879612930824963729399469314941284809285977564852255023769646504030480278431368338692250462112261287532430901201576046875804861923083235328388156174199376135971127617789444329342763041553176696539908143976329027001643692066881900247173594188694509513004343653386873532813374322854543539111534331820139619418892147520980376670583786831900752524682305639065991557289392378030213170844204762556033852679148659702499767686198568986252373863729898613018967860321020952233726613135746917039856536359641285869045595662585228206484765682991900478655836824562012293505260627967070932687348744684546018274091776470412628674493486099362579952329688169079387333014304074804269558897245743082509304015134299239311047699716486720705144191570742706689461896888141007070982969277558592752627401728777809336661717395728473546064079796418503913250908121965928689327888314170713240211235191066593017454850436877342538185716364801813895940855837428926117230166366649299142339427920405274071802105945218522086406687707681352382869399622084886531412127336099473871156299747920254012915679854278589708387200383227594312566407846931653573893985054257983976374925515123020146997853889697644878894215693213763729601675159964284485837130743721407412733263907835975589877901788248647978937802818902759227346281893260004264756815915518408043247195584235955557641054117573030580655140307665652949253635819036179812103608661757144576334095913256377065357003105299055167506479632059377641246921314646367913897283233384106878894401022146577163479071442255691078899102934764299419368878749150339746825274933407124974505381124124296217720482810047647642095559397660666513774953809543375974101325507694976748065730977074385296963509351726229678296767007374034090220809679500305612461465391348056444648005081426769656001155680701225596394375637564869712626195142909954318287659623917409486463553783692183514341579983195963091833901994721340620314405448937775406071100401177613823157544069016872035781659688062580413170779963739150700813745383070742883978221590156547051816593930327222950503238716710372086154556499511993728786177860786710804136266911185489829662396154708871956620961148149636443283569320219505574526044512574519428795414343473646417111811116421497795710429238955049395914750516877450821180597104886885884996164467383826371484706363182475633097304000633612988251051360087958002096253105866178701206908195605989723547145014062362447011063197173954493176422545422073213639140923673190402522360271070334068324797646876391598830120521248226626632578964600766233628541230829553517697866609895857779641719588058105888227442910113167287621028552939354936922010831205082603737989839552896079387690677890076174503911305306471516606362196850393331324420814508457978993354719834833650570595524075977893448162076564523568971495511030095749105443439520484440973898064970588903966421094734191479222527557762713102558373707283132412941071063931067603375030375453333365535599817255663907289169264540119451830656040694461120415949312414992542193232622310826391842766511429706582176834748005940707434053883767608933100347909684092529140531430060011627144395943181822871758083598416837785252074650527693163019697857949299770200534502759031373569909832908120004184910615252041916325795075189667913090531097235266108207456385877170566378003723589089168786346118945710983270480213857187758431446251271537776846872094027468753200882468767044984537426715639749949965919350050341253654064092914765768997677256400073746381635036844725766976009280677027577546194028892592215676652802667352803465944673217826688510619797981393839694292756703479159843790639621516487963498186524369323052100727273593125263672445443453724552404238033239715397931670139628524108630029597682940706098082622231359798403883233819357017225549199993135224543168850339180817854229204840950925032970531045566391302590210341489738243519163204011100710879533291375808113625914809604768871422838454751424589917105056826981664700116323157510866394035686817024348513228838465586149936579527512096530706145514535890304360802018207635530755007396343074210382883099165120941353799408276644114860745243722549412374228228968135449261078880050360081818754264994300103762477027997159956569158145314578188362160082868743235606200313818206538967730616328730258469875850704211903973273988248012009716396878628745372043950017809005844383592858860790648668237533201828675533539375758297440141664040139011339289784423223427965122751137487465877939158289494772098456151038631910586296150966035087312286148860585871773296110799458262144216510154958194044188008881582029022379307869390428665471730214779875719779752707343272395088543549894558364549496737312133543534888885565635555936413628004235856056812685283614867326022391100755833437080345749882826657837054559853482560101041696305406554796688448575853329661901920935446953698988599635031345596194916918231423175231234019186068221837362545080682972789620063733017667237930983260423906748695743657049208869405389768567305922453681213894837575414250508297479995024574545276294213974387554481198371405769196300824499738261440169547945742008913786671748560383802135772718612690744941433176814584385304051123590821620003828617583030915503063652781733243687046351553637120444875066542827792681448182862780316745386237714666307177283785851944082331032616987335645941474502778071339170434700048367232646075167875243690859243326011808695646764482865513699078390246930917055498076416221325536380112970035686190674174057016435498228806588097781593838327973528979236094682387592081324082683787784907374545323493819918546948876744353649459654247725693647890697586034257430803574509278146679108493394839807917248871041521845734793882651732058089433670715560419788203817893770236817710788131334813896990657752129098275653766935935894213730874249854202032559513133256596980955112027655759230070083150880438961061152920299347261920986201295657590809393044431525528253946512404964294751439212930389495304482700050048495769826750264592244192809089727407249830222667464782736883107471088253679687896155567558195661535448831610428616245860872017348915488781519804969764541020017525171955093986803510181997689541743332692421067902504180363058290815355545057061411603408691233823665738238516163115982828075743559528065815207054801004897197194675513514933899681546269163998777549000904064927869619364337949446728900686275683476753453272529815606781896010197034135733154739251392073924976792361276470092925882289702918743732767150029688342633942399313423108502121500064390727700430390816239275733794193585326986440040525833513684670121446644639958010857575777033894510216841876155427969196234851959856532323402532510896528023275041178225634398006477296612925550375379157805937913361103458529220492124359150492652592241269581084156582484274146490854367527349489964262263499392481749607471617058946036638808771800569971778732067987132570846317627824045066498843294600326020694428360262785428444472431899758510492936153722782707745503732557107940810598292591403722582393072704741087952746979483700709945134516440530399871633743865852958943391925164756180983549823503212918248813516796302552183753995046624152229285117826657199392347324384082501516322315690682751461111418043918789786563778063011460609377583020752845501437292712567965733722331938727364884098429169077712132410749898034761227450765846220008763366918821886352877064356101326277059022917822085158763707120752856076230540366639446822329859986238953885994600674271107349495375793106344646416799438129421684555311083671709122231422935354225658735309480901079216958713920602535368203197165068102406667074353607622334320196510886587479950739275306943837958183818187540733662924229217952939824987839448318930711094442694420251266012953459079235119667781113250110636945523469499977702568644836094304675524201480068942666876663519972179890059225330362223944091307894684162936866689466808404905085679868976833228803536841695918321095631159962843899171943678174105422371680315379849409614393514765850843199300604947211643260039451937886489178273320416447275540939368611863954261950229007876646640234214921726155028965904003936260360122034406849354925661960588109254649109858851696933623605591380635561398566670629747191598928457210352734480560622902323074335963058758965274264137642588997752465029749331107208767307025261823147029791362665532039233972581265479136285859725132677534533432644252101024993828226205597834793601333717865404868361561861258104198026336868408619939187147100644033794548404660474920092318758179020033939436813334709672681960342859332680831274450170833431148357839293814544850015627111916942444132444328051324587252978351950816502447177579705105390135781673898665336962276780789711423022573550745032779596222288858897885091091821992115453316993295454079677768056646082298109401134796212900832395885724877063901346527104722650263837457667865747313219880039985120339552948773294640404628741162548213054537882659489940791404647602155421138782064760966916497420147405507163398234809212002375960118178620451205951027664259372843547699334412605462441263029446593442038232294300822985240914102702456106711299376278823613856374373785753207502736924957698886800867253278649712142957633286281612362343341220930975473671020736546541674187045609196651673686363391513176256096516995890683188652104576227528230663706511042638268672414484123583038324605209782392823546380957502278634372130108978153858922665019733562046822753534105835331543284792244310300212350721985220222026735977491944144943637934693474567137351890203426630597783192980415199087233192432668432572282477677499330115535452628756975477876741470886732869429802087832140952278878454645543890043537653861792719754169950216855121259368127223523225852600730629273345701009101013345616226665182522361134971194155512478231657290577704432726701706414430859622378434775582738368923963180106128289090553621490077914093369713513133893404798846357270480650449408891068217696817310776978313429254017322545008851358013254479231936780696772667768581114358576802514048198609427134291937751042721630637596549606781207226872989064607312282364944674249646762476025025467675221373586968690223506963861437924280170643617079578944550243611665373688518718116576414888344464642066762243053552472020508662357763848717543619524784822089142231910847999054234877834895741702351028314762347044752476442928812681813628878096999129439925692539854660699829726324241454057722944006602402682041780002155080724128000608471457669346331525488445551717327780957292632105050394993540793414660230282360938521354309034030511978926834640229880103333433721957982721720819874633158754793529874817520552821952544244274761597662985457788818390429562451320060664310700587842036458041505984854261335093672250839927305744779672601283387324771764635996464258391085536959598430816774147026371196726754890573565529221383743221127343526400564008410430154778400195538114789991878288731794990225318962444160169077529451214562057435586126392952777394840426909035634285847723542950988300134551803936954962625817633189768180761287059357388232286661692461684645363272871967688743650998982062491847492590773765170177795212884547802441581964782969577255931932872347902108602261711786854859303631725532479269962838885502360943306742983262658350893429136037810632430263464961716975539426616253835723047796181557383577110299605137771782160435670194965110209765919289687874970623318711352849029503972386565518382410863051092460220631096245506229414976485613763431342190537332006477698901891787044865957396895071084876456356514115015795245609132756387373774594394747329304569625539717638314303285685524640588807736749691939390758343721026727407338630596454665274312778018148814470430396624952482258011611728143046681451393252842598188758605593971186645285354926542355903256363101250952498229929577251809510954692733360126351570205613542235725165137470305843814871908209408579789568505750422625836382587067389481438852756459305777364287047463015895266606385458223513551898807841800268068449574427565976598829403854292452926981777279118797217605089994088164412720056444516618687516654181620285845035562967322491812251661122789346568558337993926072392226751978495332328209853541858922421078994119395424709915333684174614330448349640946836152617883728296829465649236967910895095555811456985356334233404189082650163077487016081299105529924637328359417619819836703760337451365406764988449364176179051776767460532194763687771214618278449329830401370081248177009733050935083311777567345445166085605111781807713320488477349287280706987477013554627592798760114629140913579235323096971242847221600587866808755273756675492208779212731881499034799827875935300288963290970535921031642497984635723846213206307860828834683994721932272651562493218930465885155541397592261590673725903297789173098939922589241629278524623992274399247084819379830667415202540237812446581128635544126326885695942703558131196173587807414072115917095385898648203667306228240538861468803335996116064531394679797885540632777971525986035257231843747581657473810746933604514546180663069523085626105368334253353011048292339543814586572580429984653886522398676490061483151484347982545844777926124991759357493159671371024336229755705812582015682739126840803168971975857422804175271029123231872970324199466435606112468640035056309357972915846729842329488736830620499926343695540707506510597211945989119638010718524659944793459025871096416550939997210789958550711374274072615700480505680758419243106845660323957642785466562849287149796842233546563316076287478400294475084516204608270390983103748241916110482479978354681635707867210228581734482582760724545361512359451464145557099685332493095227098187111612373830104014622504969109903633919601567822413203390834429469175389071945578794864377952840777863162492468897883112774399667306452181788905702994328205366125590564786599392338301535959524961025097291941343225373079645000063370208613434966863059573613369888296093116742168410229824784023818316726260424000384182050321560077162560491423855523072117725954439397465999236062179559456531933042351769980585702684183543871664402872071799634336054202854183165623124927674620536102421410311252050733668917322396700077029929545517763849100474727913858339092735155150232930441924106827109574569161446563505715969241390522601782104332563521549723451320003368780048762293333300286338824089946028380920663522005254787968642525007429241723563620226954950429211553539300648044394695915468734942063056616769568400746616335113527185851597470037498883543256865110550974931294837559228312028121778247191394589371120098691336555405839042085126926205167130105296779796362518583030822590278889978626138427792717450683550423762890631493623458292418786850148216848839532391393589889747768273363083841147443817673133171543671580512954818017990215973026566556769864300801573606317796851809599203537846052999698862276121701802066606961073899368051111604918954551573164996107306620136370677541220351599798593480689716483018077113842511824271865687099608958721469495821834866167814049631641145623871248010405549961029923652444592323710123018039816980590301595088716194334914740331530095113812702073344302236805775409539393781775874954205279469438626876772318111419402586120980043969403102600389944042358086468846510327957500291751825801735609185758109157521877053685094373951932555738671301756929089507122095145879553128247876053368718076172434681067743945912774561514982085253613887371976217226713524692768404830560374051778483224964886188728434081821492540854941729932257593044502462373395632222477636900149225067933855533939450851472268349679407881238673486609155086415024810390349814093620309404306927337406405417628769263910999328234855334399285926689106304498882960282501724120241411098473540548298464079397498295560630124038741494645162062390236416962036209026784392788620578900124394456242779232903133422052481585338586737427144812411630946020689640136090232917639842201275290541554587345099613276894519200645865471244713463460476093837342907098991603673638871203707249503509411480362369029444074742540814662107388251444274073544948198428753819848757032484828928461395311239205221395146178738660648036334434254566109533012475915231731407432260927521220816775612075629327201968746708235112216291530941768122570355867840736286274558118470423658798513946324204040876678114862169223684095834876711457308899401621930582053670892371592640836238462266798000130536234353589976055311149550333632401518327531111831266547624536864362911028493510851041252740832849994187596288568814049649010133369928751012652576931841552268593345239216731678007372658747227513706218030848752544975243434526004189560950373827064371094988791903555024824272521271576556465915883383193012029586848838647799347147248182347697558134370203692796581167709700691034955907794961238322222398557227987998717019139422349783328738391435310932408086319853601734801827288170281378083943641574930438665036455437786758085666617435137087516814317262095931233072793833473824343443773657671555866133232017157503399860165546604191381104441023434755693935898772687654700484229523462140067877639372563761123511661423138236255053889093900761362955945344285009534190554443012478410497232271301140415961114586310111962626007812577030988835252264837545955918023779725146038665460188861675669339964556910725194009349388227711463800290681742427638347912129727980731557705762183614982732786979694165616402937240634283235255051456655511935024240186891946812596277732782818743669942632950190365390632480565535165781692698716203779796162572968740490255343216172093903744163035309954286213092805080412996224193512993526634825638302719501646106960461481564056801557039134070122754846433561002653575340228054886242562563872756318050576517233427226856435668586966375241554515701143747228174443179406317172107735910107570553929364814833032405570997956629185219609274656038597854660379302165596593121457359498990191842205366174323195484949549417674291915189174783502675579521493604106794854440968123108125680027651566812244232145822565836631854754383954797200412432726564104256420210560222738926539939010025605584223289482048476917228113952718593501877384942684127274809344323936467242840803104221541509765696198077111653119199266642870100711910566361470146192665535100000004204671355475018656210572843202029848349128328383518457058618908624225365544786366188284809677443078099441509109659361469088266184123258220793355894433453628339989489604961299206829221837361483904159950321963902499111096967955981685112987940906714200341369443787881513721043030628688476066075232948746295988863223853307589850775985097752511291074331629819502323976333467879946107243489817072272150394690555209806051862649600511145161423948814848069195796000538331975556898386466767465453637142886985606913281788271735351608018040227498854560569802215910717036115293978971484152976647159208057550383549743418613257682538612904797431171879111664249852157282798400583998642290519955233369052243409780662826699530517265623250869371191004528321941723728995032451815407630406712639970762565715482663689835980851790221073433991920713631054035552983483460564711435504826206483719048244212853796158212998359073699691481346463725512523898670220603046312529292185677442423601537470095391038774630133473020208748942040381065959374755355910007982622310873706197104269442243756125349266458311169967373714943656291454081214092040261323562230967358847173187568582659703721026101675178065035940990928703168176856609837697208502256487766185130675663563802508034782080402892269944639169877577967296292095762315484452861017098171340507195976307527734254036853571963865603332069458068515415985029818395346758385946138866914706893525646369663043998891269382250286269864305536397786807037478748847015603208194758571310408359618945209250220414105507603719491277522638689962162727115254327436368812808390349629563471313325923661298395479410005668771297645277360044628892782078121749323992116142498205436794788662830926033303445359180196322071789702717067237722066021862326130697156550581138918938476630319513791447750323971488844236968831673301119966050383266275594439015373201738476381750468091965850631854154746003791635515114861061788444956298982650496880318956812084893003541800841692977828524424822544562647537161204650035746269072125027029504730522438888907729951978306652294289634581775123365317543894871772434680580362634869603353306991102648382537732683318215494527256590618727658256865619404566310894477170487403170895067341509488245892957594117463020750692605107688516259234791208908691043331969918945230133980869127443040895254572646821451218941790810457564241070198383184082446763991326176687534524330078047365835886359798678107774235795768418821516575172193619345864980570082564143127646188337002374541614432118131413884997214244992389455781607106669094018085018432021932032274406360787529980236326470800467603238341604451577909632088978559155408736051633872371086744426234272186209192521687564560057258203922105669434654648356208567192721057648994285269982595516911362460179992106289751550303049419062511851286818596773689561123585351562783090829642565588471878206908521007169066048010402149621481558471540604114100224537367888083939437156823957547816635023571846889407780424757843271805327523804873264022225249556349363104840678705126148470462540641893063371464792605956349819081471805182186398183455751663960031440109788988988127421110061935815736116292007473029768105189159284789668939077821780729907175039831851582685291663016962633699736878978987417038218713134186773861808738320870062314243908673398868909569310277607095846900933738121953179208265125487565068639424458892943309292767343015981107872769623064660487846206609117066711198772392630056668123937169583843793469515133633514703599295527814794803828483410448761811744496281752682079880191739883309214941324339505593198694404902764265217054938919521422465740266093320975706201187505044369336290215902033990883335024790956559418482924295893863562569620168943061921319527852113070173894882005290042182185995084111008740853829568756650341572959146990886449560886663181642616937883861613914311240853324644052881320925001195978956396210217533972354127463936810632813283835476513053217016061834075907247903449356163120999201502704964695896078223731431387951055236786323473401180145471801866464812093076176123040538472202022587921466532506326239689118867818400465982927495992724090785769890466539037488560275853045691166442614841164629308140677469997018494503908838575995724391423466287793129707797693997406373114968988530890502116151254851859270969733060212738995145473264623480112149468748924654564441696622295293193240821146228023826665806186257322035460461074500217826593926929443913200519651634739454133358142097420988783606682489050595105026803532480984169963960637869962303016321399697715664485398310129685330038048726344364568039737397925613660355130574542614352702729989458414237342901284606078006803593404048440538088097853889681627731398583303965288152400291403280944441803387799952243996521731937755130108161287401444075815022033209288409499411459250367505018561575875414063814783862233824183178375430901689804967386437298205854162586814317763038122858128144564521581007639951027306602509874730972032882331796371493054777427806570988014340498428730112715348753221092586702116687737088711871132914984824872511540311301190152775616903061308272060489614735464373634024297307225949595316999546273175132846128682975074848328609892097563244205681843053115664791402485034896235315852173451470141000949111179887671884933007470029953862071196986870542722126459688130346170533661276190176656162389071880859689334593715408712217704819941543498529494003759222981435467652893732288326247118320924720773288728556237640689635190345395619149003267531848211572985171019569031583461604325328221578415628432521034596950154461090163320875039467373570810646478214570229890576317050744357735562901839414956406757283485047104418026898103699456150003822878181462686155629924293729238512686212638974391765684897755723202590269606619592662486897184517961818024623228728278825753051052115573769771561770399558100125961047211658909129856349731998618217037710396333502147799428076117323297548005017015456723854467904607140229700934165739810235660151333798970391580361456864441770737053236662501111293705249535301090724701139303148626135658220542018086337819037577237234489905769777111835365140944670442286576360112507929428883195498841783462925299317752447965106485867372697949143502143503546354360878003361137746859790412837255001227039767587267618836370296732564637537499279734809419961440060553811230754558263593994084924829451431877627218050913811264230194414390074542357086480340640517753577175372438627358267903850033027757677234447762340506915116115511782376985698412274437837163597226989826395566436411975334664935309983824588637121872174474573043157944547743062306062895914411227110800963566819038798102510241090031219378300911588493671431448690511268087841421353972698087025195656654523186528934692906043995745628046587647705926422568946206827997087144844510155760227277969422116869439170955814961173069886634042531879704710166272202827166801142488393206276421653678146866569336153171556304943400577981194260254619603772987015271556107189110464644535396313036969981249396470413513937465163858655048359199938837971459199428438181197391282193922970000332449433880866793124769513984708048181386098942326152074120294730599153192053084644323245127760255846405083364927198512601074667513476569348838846745621898638881408522154734416123694415149696178653350144904676544890974730803866001638671621314877925310086049071070149292876228633920920325541338413045865802628910945915934536450248970852681816726750247365685188860236768773017241230849634152713880724926355251638387189430460827540418715594888079237713401074751928372030143404978678606345358266786875482610570257102341735498874979731102925865734404965050064607923967940293909593481578057538631931863672684277479206002506778338172550556364494552873255325211659257720904138608414620412332458975867457342543709109255648613178179053505530031694699753343487456918042415141122757179473743910691751840471366798007126845417429109178634865643444422118036129121585204751205508192841084714958452153995280633005772974766625449993559911316158396486452133016626166475948024247377554073805454586326825446036765459576381126033681801342870106820043945098422392480534755977167621629045914578397196652616172205743832118039226710127147733658590331367008343785518982607312467582789975691114572469473006496220489267679346163007825023107859941935943002372348697342912609109216274694457243984744067360043928775490449570024357639387272316859471711261671968889061366983528064893427481295987591259968511120925045455829224791309304681944609354965761400701767143345949071613464092812564901437082610937903892213982215518091689364403548516004402944156809142867430184073384768862006692682790811303527792197304516748577652654700602775780330459755175484424051648728257948976280797246005828698186231837858327162115806228229739292904730720138420573583666478366304205630459706793545693116175669181100914815100111437958658413964054033276576819820889223263535821872556509247779059581665708264879147439894709006475151187914592118307568391984182824271072137311343920331435564281085155950384127368610901531477410310691366563302233699415172741340808420596457474271297938879018351692769053063868247346443259245941988100195595443091038414910269504849342646764897372094250015235069219329209819991720108242543042437938499516456146238670550634116971675533707163183818977570382977060808411360825638419077357084763476453615942848152016264283063116241111519100558821242882882270303277079209161487776902426896918244104951475020526216044645769954640265826689331387237180851189144377144478772742041848947694898049349572184351192345701466333554943070314004587661858864536436167901941737863327439438012034803628038418538605811378054783501774894227692146083011921607693698135002868324125327788405176854967022753308654941217351982125910684053479159337348290522423258939844984932876090648862404715649801315039190035923218362258877086422060269540140507692328948748265959481159174754437404287395069736695354849500253700679653014113512969145214509057867316508202292856907655277071515853363238506944818894810349917940324962783697384614872436338007329687666418280704668992233528799722999515339989528402913115163052713079002636841638565487621610442793388662925411810990168740349814919999472077911603853741284161214316403341254131092302282007512634966967263199777814609150898393580886852185400985852584451383658501758581222192611560262228102710122741537658424094932017486459249383146174645560307345594513952473510588776774283558743279230509622765134638222205827806893481760103393952099143929892129981540236079143279964975715468182655651515766728507407301563374863377272304001874128904958091659284607291378819806027834604869051690244289669568940059838113135915583277675263575984413718457825954438018107849523789728920272534520803055003559074116700347565134257030182839269979244626931334467657648385377860995441799741284422807596540271083716530518946754478868365607912724774494416557903256377364503936036406402841702591002219147417968560707670502018378099749139646189777380742879478947706685561305776087812681522667579022271081611709163927166637923925749526049473679594073885120953665896262891454647181164027275744910087277637334433910664434103113396325806169228656766056548137791563370588356190390532221684802133940658620422807505041976623015686477023830376410379037962679572626067253788946475438350918941256075425127683376735041726767514296929886116126822146425653393915147154138215937667096492987906272871873526011454948081093496072229015628251650728746308786559964336644483043022273585794029055177306494476170139185599156218878940589749805519591961276575997246657866074951970173652764906439477625340512726865731919249516288706026804186385153993616054547162036008882274483573059525348598418743528769582134598254405866788708626889848018582687264703476978914468176799701762744329724444421011015437046282068622291643005811895630371976236996370946536056243634648956663967168643163955108835460738106113528343172643523879291880883319652584856751392309027043980534876370957294850496647718100789087602500723491880428272065413075934481385396009805281386386124590853427918247043488988609390103690873824443247304967612416977250422901291802605013100896608155327850037938431619824588422219169731240142727771900640028297777882557799409740828523674355612520426115111172651842034651394677277023341395005551058002239259864093988446382059585902620254304247117022220709473847127619624640131499715845088557710798830987970910218302263202579159833526404266577098314543407754285580984070831423598980062327186227850112277348823110507913249708136029683706643352701719789431406955515207406170829321586166901762551281973312625945117663861865083356745585958626198158360265359371152007787744874518700073650920314795399524249069848634640437328738352258798085237356002850122074982180177990572058836999028203380198404850270336201393356354928932501065170071601760894724081526172969681644914771718291933852743212249432080164360423517463761874173198928527833096128795758131957722286300605325156059885278414116359908239578685911292607035003900386029671949703830617316248877579239215495438551557583580252648812028917077941702458473275298023615728590557842019769560490093182068812101690451711742408293584631536941509640161811619547047757634073364811098965284171224952284886802509503951955914431143911957770755947641680822933943660023519156311300599528532931575119159704586934743740372649232111608540617535077844836145053262329237117233681477164608436618562052926860786435910689912747910364952954975790568039840111349092016013699208569790943441535015348195973424417091809318088988443890843829577849180229378269770623620258642722452030623686230212821889041141761622878260285636877553714226780830767023615158167602834727372054932732382924654678238014781306964492565171484505341031082347109140956666931678918001640082102370183524190673864103062722975860798208021480165920867966455066843574410306185202082458861303739223102589719967585346803176896897687426801973874457306687906163154998044499391548141766820276608328962846067066960991361696202743941602672100853890148743612010653749320858285035440016638186304087656514490461901892120182949693458463208255243331949185014933560305760816492352212055965409440390142118326657192542421677068680944822271413016071245045849048541555195564148963173584934167906413121283557615148969112307945397047233370290199143335027290338621633789044606544881309721267417095319685731281986507084414236886386236178720529864341670382171204170332077978594178464251320793638700202998316148409137646800543090012121376750454270634052461512191246266893309459135925357348644772078789899427414082892229377700207957617123200086652133735314616807318929182363710420644881082197383664426234700010374972865518899152434061509493173891544617511563787728684416196399573312452913152872617321520010896151436103077432636932222101634098536523626289681200688163358432562878675944227965880605361125599621514179074819477964037209780230225457378840028550580595952479100765231536377130481540736590821171957703980853573307086718354019291326418707753284577832314760859626112898063668956791315090132901389496204270838620483469894754511571414218214272261557053847900792268640707539553127791721297164491547031525393214615204070505714245186526402474866697186141746164891326080366605115836242552268856509633900879976752531859835917838150034779860641484408416771803229607347767981722415005177960292388673238567635209622171947062581128045585824934761899455032321163278740440355540217637434608546112864181056032810628653673403195076472707221852049783320015095363142355029698788405239673753644894268217984287915924460486570527904531413573463465537724695872359675460553940847420028287215914763301779227192908661628416335353679439314567765715146433771700893816373003601595328049236251352601316164223598743266504108057484268966968734196945659656768730882621161798150585344493766330460502414377162513151437304025290945171525742430581698164636258492942275461523366986164525460828853556483850017378423127859687183637177721291878368979239129096562848710807562512263736890576671758321117939824459484967110846308756560799096418440783040394807190839048899735438720313700679937477255630261990921780212543146644978707893529950395337114895714029078496090884175080959819751470308798548425241083055951961546053179553759007779748239403043335084812843639205248457365026829934386747844450102761497446838435718352164953390798690907977982358262243296487258868271481415536545107407564477510487288961669262814150331854206215272836390027533527841785229775819028889563344560046146508580786666285775504635840135029102889015308668893671345503121408186888513483605553450723465554604013027582157673348575443103564891597097910636062022175313354914634754513311166693635111046365267739311708570289059046011255951003360251824357502360383247523184201322365727444910671263179223559660242339587085907223186589658904521952200428489971822076641465523823917687744159882745630340750993719221690027015459977159425266714052557449650213404539044841300630416798034145795219828008526841554621897914728018632921211386093875524050652281221266289296343713275171098468391330661359262763583945423845022375949435258879132094180569460814401027358412258185254578158209580266013644138974977408885346694863694671952621599829440181878847174495860666059507719800435556507787034029763862714343677798807283053632802358791303283645416487910159418663929279133393115577186270731711302860200830915409846331881666413739805496285595346058488865438479091843867944371031421747180395865121012361713169685451292022024441161451113525258078322329677739444799950458651326664926266186836037858430605768043642489441872641137874229841899072612292429645553269121584631289722833565632437363483799844584210081512779418482591838251280394238854796474007540313950335141890792893555615694157154361700591703873532090551003408546617878018480763063548069414238914023346860397561130261671620320893434856574221491266283428147422995799670163252756105738819761926217105692191021233301815722045758165821216090068948230258756863033533763473863142424319511382996652576487620425655041300741272997629308093866860043597650728882223032248553295421519556241902725787968460917527680391028519010053184359566275770593609752588569586100433295718951241304260803500239072141825983418825012462885895967312143792966360037019041379228188769419351148109695660736377402135309037465554875226451294543864879440127113668845583003014603129251692898039681648987197579628064906183964523351148040444250144680055320027830354111196847239081435763335380268066222396764934807250965184832111809046880562209637765397394069588814822775562783093595278583970514553529528721306138335812611831376939258409455563662609492265356798043309355803519676131687245434662069734689604098708312023855434223442073971819236107746797185238395350724716886347365058931831821757984427321049740723159832772156472137840865252813292410454543162651236265488826591289022273427012010088552394400822362723801995880647615698093746365955721294536925654256802022547361999907815350673556912105557215021195370795885891482806034336187660194530347351140072114879303273931848430663255926195976558467694194320929228734213037933443091526702483851526046936113458523506241674144550362931042826407176350890181979933567698777219758027662523483726696261587996785001385928759902650465792129221873415128652308996518105116758556373287381579799112143349725831986997606437194200694518508979793307994128084636550314371998546541967113557874415649851776532549508774258299734855505767549042747158372912762571943711317382433078454320227345424810528680414652346722826597808438119024235937396593210198363980365232899455370172871431662181687259693362051967633451489118578478507299841579259234054742512506829857554527463282802445098506802721381187510786231160259278963541579656438779009636040772761977214891515367835694509515420431974885571518677231002539209547453709021998688223949243593779657739556309461043024093207922831861094098378472287016487592859767045392996207078860097524908290328807775039071307493437856174256176321701254285117871443000057110581330537051859442410105706738232534971401180528005074177376718309703934149482603520190157372534175798345064452931048675466972952026872529447899955086168300213550525925302450577575295848586216985902193434412694600302890239278667814218840094429043914082328210078347227778561948328142264430242053845398020088231418324406232131655528983313769327805414518080175793602189344642116732075296436335635692394712667771212451624795019700260055154087578154132356875989501095125193019613327493999344398765641002048811887908579218912125048862527414851101124415449775347643095655969379348830044562332909629735812541556666263101192629748259435587173718475439148587160634584177141692655331800931765584576264356114251926291146875731076139172903316418247754023946879190784254380294670193355807059035455349943287578881260398160495584921171526345031533664903239188368760887647284808922761621120994919983070440865288958186883394943395286681876149878271662967982852025279338224979799114859230012431830874499911994651091725361827107599925306074644535607312287078689950969135353375181671230427342947535726803067852145198961099148566476431870144746719065456819841144610864649346471773004938674592583181703082570316010359046756502115337728716507383138376288159139112680750757224227582956670016115377679760062684190821168839016780333536051645360915777226714563925576889860053404637293154883366236714508043368802508367605156043204084745750546119043904472476852924244969337454393219485545627670903587022348427232818289517486586062671938533263597443262788424008104901581488435057955347518527945349905979321822001997604377443201571913137282662701532307426974066965861152767457495314186865801040263605828273874455202366063713163598182768077494786465938323454847694588506218911193000857995531181452023571748976059923383827706655413101626747128279028131300823749250090271154476377252394477972205179480488762438366495815091292836802193831954212532799261791262310595422432827349474423226174427678691146122693445939013677154525385357797043284651831066483349290358913709928402815468610385176800382613394320323810280393780695086214202056617442180228641174124257750190380828645469464662473592277084605017920070411297135149797303243334854642117009131574765171740766552533368385666173938133541717399744630316491516130908298943485971604204464674705936520179004044080533475634902857094817498664870896215076984917748254460953757768383117007623838314271201669197888946884732068828522846197525330317575395092600055876038197782617258300613805901521997123072153468134339527735673879233303379662021936784787706449977200123918327799247778658795283255591613750692363200500903995607129085216052800163140837426266823172717766911695969373855675491770474960236922301520032595844933562127482977162360123729772438694380293734724683725600606899880638381775464528299019485220009505962565897708506820534554223974510073267115108940594834050002010464478625698319954739778734186923272288932030667534418468288782321636976463622137613979880680610393749888142356569950116026484062854298467588604561485582503742994660735393589289944576288839749284298270409556711762179122699595002444165671732685036135703252121992664978802261134126975313414160678834186743231567565008334544328788646511310275351803133431359153531301671707415257843084412935393702787298416972954172368324896574157172278025220039150521432643500242821745921578242454899189257361670253748562202950884672027266185500229518755706645760540077395974965223823724644004783307440737618635918730629798792649151037914813304966510360876324831347325177598427744928316317104227139835398485982600608055991720941643797006815965916109901953245917413820082175089655309480832628185895575598516524051907998892468115006597777004729829519944058563771695849275975105862630911348021833913694984081711722498241234496433068749766560320484931365075955580848610034606668074425076252759041452644806158905868559869956209567597141837662580626600795496947648855062705381269194170758166318558111601032457047669855567113059471524220400495635456451963798327578705169407221174814285038700657990630152759207164614459574977164691336133008994797959137198890190750603707331212813850021655454258818976322085777191997157233564576578363738551807910540563126334595444116428100915051052912566708560756849521167618495890097790366641145382907093844138246171465739032301230570000291777064168775012797081656475819445033812003912462088119084136853372059048911244704893506254676851226125333055892506419312049324442285438381721291891404467030415618733255604641416949534309173146157559533261367887630076973342789685631665680099393896100265114448963765255280855433050348414322437460979010051191274958880476777087979099087407216137692846950115557016473071382757823622192144269258245670740343789312906502653349145622615351927841871015214486893684340648945116951682071987949969581638483702773705076990060452398605428552709824762910356887870359950185536050028084293014547326797780064178906020703724716448246196918757945320138690989943574886858421098115430678258450424364057694041626322424846080501506247219274869362835855826300192154654905057138998834900503889668799625565337509526066878709659234205995589037727369548491744108194426172419482792510007836208878853976663368125108568344926457613524285595337863146806559799795946990785552945717355789616652689162098144660484598254673742811989998459577250176690567587355146073708591153955377875382644139161273848629218479073848314357703152637769531054234958243202413087732828669204891793071518696886039943949713106095599626239243232993514445651971964260438832003282417301759216986966150400313534184413880033644015291332122005024774395801857838823234293105823797003461680531174702320780475638104600588070857285913368928270551714017565677617565801578702309988676053029353131729437504971621143834672471542937472255004845466339053830596164557947298103289587218013541519110331114996665039982131254514002095405523417133597328657206543106388992201419087108109118598177889674246239083473326721642423712241956805995684625420513210499015955403235920654454253208413934051403950698946390775032823794271015853629114135108378398154234101322441264167490981448956803927890206063525003259327774189032366013892254577399810153892889917737739987598663684394624001675976014912095215068286730867164674146250732804623696099995807405261211214429280141396323764770342765280894958186966671274692408547098356228739252891994846172276475363658205130114276119761107244685253355822715718759034611541399664126772223764862778996406078615244481383040954868417146562780295794510753912977389779879827037140608345728734395648458754472295697680091839057742046599158409075242135687153297099664148585724004879380659062446349683211001887432668299648650593034539768774011295820701359214340566438284788062620605637889526927766577536019836725447865048061916691634473519044402077868495438445760728906058657836935559197546784401133608991698257712723182725867674040739861822983661085800104129417830241867050874630264571153295159990704203978322575824832449310703004677044532812085833458005801522368669589577217162231921542401737476693288385552690282604092030048821737184309606151665203076312986531391684479229718893936218309452122642604094206090593287301365456282906553600159839068200552593348690085948637496203525901110461288481946145671429916935846609478998819324208232242395706107621472791967525225284070311734802044834014007267776602161225269168885383722304196529056926095690431153313918180728974591725093462678177273583889903096170134185636268235480507769590596206323071712122994552361028000716472592355340197539870672891460104916150311207251141066343683137947106035417067913990513061015119219750178225363509764790359300198323535422444141137130135029044303140782936175034573752826254626924905103463499730950744864899251836651497323553704776422820397589036040621792848117338953143284600307983034139147745479255482242786016005674683130394783213287001032909771097971393937198812444365275534213958757744397733260122879177747546457385560127474660597109571875946726853307678490851787576746066379171693862932975206424343579131832615046897210048193534379081011645569605685255518139106769151653599007133066115661754381857919717993375542024935639358288255490082597428950799290743643219005285177232247678904723287938929201272217046060740371476900349720525103383404480330630863684835649170387454451125103322182266191511445356018830856165369572207522774348041117188583321039823666359566505859606435804880954192412093535191598460046584227809775832465826133218611089273202689736820341409240270216000489455259683452845647906439129327738916442351894642593616507247777883312883823935496593883481584789623790587309301944077503368438466344673950382361667334467630961143337390363490541015065869991794560731638195071097236136474736209248353222643383636290414214555905786700502385098037415143136865497570132981906574909928145828286761207502951328942056183187308253457517310269407247870966848635720286876249380940635822342895624752425491670397461004979770306831533752367332437657605910898453402632027803033771604724100520065132638859242901964822524218951693805718647566905329249187647200140085167059836460501325494481198684635090708755883459738640202339427846106737029688668523754558998429544797948472391896415084420162330419790132593242950730524558853775428816208783062719672406770716317924296539082885027080852340619720203111224700783506822209837412075951521910185541978282065086485444584527406310264496978264906729187059302578016723669251647936487322562947042123239753162043403283055669298464609502712672651987925480928323915148222971550612754005302409382673378381885176612895129543774952035326876022784602240888220664578085680107049835183071402032930982455384410053695776558438816018691280531755750513021497391806163282597589940908268730503518175887200988724559288863060824491576011124792267957981754811620539266099424742275571873101643176283325781331537638365899146432126824492284609605894431995010322896990226512019201070173825426483662466925140025181614625880615826022766567657915922921215401323901489183566174822644565153620114807707592243428265501025904546432131135805845887766958814858286745082820527517416193039608570240270926961835982087672078310562276955515356762040506698660646007828331241588526616337065336939023998912513565983321268947616748867600703350495550792685018644697650026587936251825998878741684771403179230947807639032781193701544913471520243819441895811778642325911919633217533955473954559954537205727221810705601305628003762890150151086848744333485614551742367278473934468335442320655939236238122485505918394992569423668471963082315446627985584345329576884096682729182730413032609092255100321625357536098959394636970530693700100901336663990170789993751383150359127032456499838283989949700038656729076587118737716687821468880793499897717330544349501569293717774562820906247382285180666519030890794633759215938799042734326371623519836302332667173894650511906379576064668162215040711866486737622761054347247490892203493866855547738462081826156561602162461012737829749612549167042503184046678150718818236310288599033514013301455665976197375467845815166358988496241675299660437118413264413133646287388193295352209111389378705931544980786836756791730618997586245526401347587039288554057520886342426632884938560423122661131385256752871482014619411135233653843301891282278124599366971126599859714621375421862899597676550803923600387749087513030349050344558926342060162311179074462096837995928974433662565041860340505710407652840812182454163520539539900751345670215434508100088424386204334074733742029206498645427839929585024444745747852386097769859841364112620100114205396790218520518936168309864738213653958376458738389942142380203997746358099291137215055436961345695372446430841930607531631757078237801097767707225337266814855541501342224370841818442022632182508779447345600632622312433397357563627086101351459577412841152401125091040474825846857821969842170094895602584873099589365439049714764832662129438623960189553925348251955892263485214785712873825345772968832630465161921378394900542563893232393683336168475270103527885863279177401466488385121750333139456825449191563099720986732817457559191841080736845515238583114771359172332662777979048053520276389089058613643400316737811560436177701939230463768251343208214190637298984857038975455982956796819494373262640062643809043391610103317812735361946960339053257008650796830261152384618038404246110561215281541388225582947833142333465156307144489203302896591131163708806540064207447407800545200919409667601267883220387735123063685520557774257998856452073993250782186583444149088535175964109574070474534167836131946265706901015177971911910122575302988908700072069555072831263394234686125371143343750417994855253693271722755453080653238355097934165123494965229523772426879438945515932073007062853269688582463409705941494976573926421188579809588124498126642547291935560773860849712102620276723747112948209436206621330112270339807160302997823872887059320381351254074266150298203218966903883069389871952040817644037658952720516934114779436653769665354400716766431003604715010479113097919092783979288018056796794007404440314655715475504417883896946166054928251904883352731728577478805864347647821380964266922912291715242931901332559029026807701819167119261543626851734763040161063824063378790360450599165122633148197601501737637708221885190833400146664205744409505084277806790738514785371242543437117339605698123916137431110949514310384940203506633501770658758361569553409513928037009644946407197877616893247320105109225759181017324777569339079195967100429807303211368495361489008606757273035230208455915481250742387370682046531106238306758587945920283173289890114841058713779928569786252946589051658274419110614730853951266872478719322136444701709660696372362520303283588188031898277322054786109333352328794637038181861156788854454464093506301839425148988079964928374855931454982994877982289770545410457231884549882064784067533542452751361303444333383476635034422407141622553952104665949020398383219192076301949507419507780719696824210187163095417054051707376199584651227096234414569146467072751503645743658877262021388669566132506902057005993454465935749242172695928804039732650194850801066457908712009663642831558391813984068191847326399146550295050190950640218124487007188337362261484761868375959763139253190413665255621330656646624145513218285360264838408650557339508973698263261994199420156166187779537922590275781920252790026061438762692972093883743190248170740483694070295454495498343707269432512516424601021824031519806919013713565801192500195529401756897855943911512008119803003228969435284148832828271280238623531201865156229072822094353651227085024150007682457192002438607948177527188514393571828784259904815633386196564845612703566885331713915964912038588124202407650551905868636267319082672480364188656409202833569472159415825047858661859035730342631149926206330422399207531966136626479559878509682085218593230118981115403406887689118376854124276362110567343357917696040083500824420987218178199185923876094594966607805772697854576075123845141632980557575761826277995882516094763192041994453602478848691210540487510496027167372489720065704649739240842099039135792287226652279320692099621741529272380671540413700800531248090691251349247922484448387325791210183848281191149464139732491431259417915549882337232055547143985410755692671885763980143381406740902261231965535720355805575370696348170944825634734135165788093181060442185870298721168025543773574641251548764586173803232313513545781059016946961569090056886266129419224795776982139940347872234008244400335571156725742208788042990637228366001924696692472292230408877670232428514746842978701829252264385325046542112682286566754433199445437474377523140668908305820620896750617081688975040534936045829528436704611410473252623490838031432859935807744485784015759673781118613999720178352160178586005542825005825391120153839226776839106160786934391609630150360282271049379993781296894934048080830846648957078513126780006131712810407598129200774373417402868192111730111353632848662508213894655912835637912442488212609661893005215664513023157230423179252173736946291581067383499345890073345802570839308954009056200018663818042836324364598007750395611501684329564553524016979655222887702786491240854492107813851202022924134655899890959672875131376913928569478526155030140885755942275434227408088811909394991139461602759411341057411247469438709689490883386175109269322018442993906346145087162593543505098511788626411799253957224058528969518285248908481827762425674090606250133320760172511740107863604565150887320316079449533631512373771845121224925556412048714650746527959525624030175379415461078801651796868803421623848671808541628476357284962740652170273311533695822188594490625968491964849522299031365679136894513753068965630098625174612943947377617888355951562170142812401010748443877160650836349453952769793744920163715413715163602830530328033496477502974716060342667946989852419235357259927918880751675399188040463439008743963160189783280099058852496487698626427663743095743557496516262939610642928876401472870737169496909072585748269953134583834547180487642670251528819448308551909426556805873334104139852279980717350675902414096858526159530002811667540628415768546163626672840406209803276945343846850423198374761472697656899999922394677476178703015264830763430332803312379410276386706255610410749147043937757555192360656298715422840909843614965647071700634579104021977976917400768864961202639507721873474682816312224932090339027382337290195548878255101222562203917877886362886510498446887821101146782760067497355772339282432935479413762630464697720928595750975933038998743844062740801399753350673824468149269360532188754831273123164345163685658236690082386914300265527299443307063036078419804267618626874361479801313232640331206126445446827209276879466282920165685568968777227669161825259699797769776347379889699954876382501459975067925173695843139591139816650898569818142812195739582437693126210459997811323847419652106910885515172506193584901252130184462612213374774732937601480720550192713228991619514047683109111983443534391285941578444890111058128472634688871054268256874063746165273802829352061404183341877258758514645462202668426736361811903988100266467516438002612169224692965941424299957161843104908673819893648567867490901136093225221538872369778169960238201161605974765352051549938525741200667615282812079749675018769870135465813960533887733557501441773598665392984489273911802463202294424655624390221799954173637135798172931054886151454151558663198993500131735230044616136178762605504816121001813943061806632268107850857768523460551344935912541858413570596983449689648694411497971879229533468961303151611398240413959786054739107483060122867956104533542157645544684313225294018819980651455867608734873913208870966206382234186474351292125544633702556803677852566292357307614357913451772818693891301356781471583926780237149436479280582222112627594218888709801419821037852519636918101130283304144335691010352706701718813733890963756615631538153997561358247522868580627927294142269962468323435372379353556480289087732530611651292886503651496102279553982740396932696484959421108369445243436657200103666595823583296468179047289272507077458884053581764323629597701942946150360114798437827963791946048425968080750647149769829788157107278753197138504459096460966200643310124857064750157383299989281499681149938631286755383509933965569371418149032738060971694683913499791117181253571234504491515673594660804467091821859008479254536830787114281198269604043952548598920687285841707920619577403697297022093576170690045905954013082779665876436450784176103507180068351103982973601516365772899931976117035040288898008197352237180641896941008023979372048746768211672608492475986956029200713603378909404334260571020613866651445618318111854778765048648313112309032318537822110983283320321943231894888095913986796642473607645277544283287629314414069548091512590216688695636858172415882314449082288386080824281303387103464129703633874395839464100841601490767887886177328208808065090978105522394304994159813854174464707434944457226294315584298915875747562182774649632585772755244885613863541097659735743113206302201442781054426241628429235842552999411360854024509774835859775061455992943956589846980908831900909372903755230213024963253526236716031684628211840972558023236959258627303278979008764773052276358545122977957718245650697171810343702882746446433371389060853634618299281802895583774142068049562346547554735789833751757587463382366170059594223178141133539400597388235072232550101307879142493337597843263320559197017451076653783737819871195963767239978787481949963538729025630322481035511118142634318169969846230735704003842760570527199774738229179544239682084674941745342310120106524852538706622438676228944058128280654243962046847105665109412961258687677455832077546946702494212063807818871976571867157861071945731227612037587262515436168691206097615460990023894517291616480047059395500969921698326793325245362931228227968496262647448917068207849807384249609118247747544689942020031444027272804374153278786782596345318777545669558837496532025175337803363883124422218731503432915925244516312892175184129689702186239465582523566676295880070673226354097514045996922149442940787824032785436583481658105702370357435443939731865246653822451271479786654525826954661601577122269823938474101869324276196260919842964419391391194349226775853778731857614734521243191988353959172682194667027345266937859427472883457411919813836709761036353980350049527238019579686588022034576882698115615178945348784039278689867320160791906754951961525963921423994951951276906325848308638836142658651293177170209837805873903028540723420861000982959753015831189395138635384222128599398438718700150508225415962887396487435100483994371882439064772485756723309056547378714649755231875773851141761759433076193959044617154084577357938519512996914317485234095179612367068931609139631053049702150721085118323864661703418330449659654343593736153285722001092485239264042190275366547709919696543716972831791741482015386864687907740096706085734275899036004029007205742654416769993178139325062812227974479275738101621806092254685693613602674121471374851937794512919028214601438830251746028010506601752502043191941562331361557500430171622505761620953353123798999801293054759202350658196071749540735826496097680066944583723967975011086522920538957461689129483559123388099055850771918876886919938587349028487593545443739519472805597193528626985628034767900400526069065451490685422914636071049037586748382162586369888235071618855067278067655176252585234905840114535936445747282890156235657226004298120870429856746129563945974487105616149750978668015744893220346172281917292558868795037092174179092108891052091525433103868924438426289829816155518106312845742825479391213190468175180330063171890121800488261626544266304861864696777150864949797923055075889524592142965364476264583568360313797974942153691502018301990642492770056193845236774545070460484020361213053040674183645104055981250426633170511838820107702707538483981527741292439164679197679805185599878018674509145777887661661141839743281922958206064861596860202870424452718015154785262781895596679892951280342813383105419902186716894243054479282786039066806845449940169679141757289000283401691592781693912119386601856607301198149503506625326748568527763144095409265200678288005715020719559647969518487924823699997247189528288480920800240279397820281828668963710714591413682056713258317954193924646995573534793466954644662728768793851792256397198418407538518325487354200312706858867218856925718205562053021972992495483433143029120510303478324680244608323061658152844691234001335709379289588102457631552452908687724957699088594619469816011947529889584222121562948165664849074227476103996342238779787124933771954447386463751090737839382686687724170278200260662873104015161699446960863897887297946251171221453813211050351575522949791282333881432766190351133482379952886235325471228736732760622801074176514412860483046405192880439941852989489033260703161245716211632051636222451925118983707505105642996074129232910325052873483419683007560196618364175650610272089688620194005199796060433599062015691278076020987712891050369612212283161266099491133406587013549089192630246272677083227360340314399766725120202344972074045888847596904910962063607084815947873286474366676344158879837758354165794722348558937267453347075670043968925604756194197984006422863300751444472133816272031407212855521716869449967647948773197365614100307398695435309462310984962195695105863103994896384213348059545941659468573758215633136129846060317410264200330229625235560161981330149993579810267225372417326940586051083387555961722975939204834713387895666976280749416383018858213805919773405449133794803352850809527151559978841014475627390549439223074470152115777391105447442360154996364841411998954356212932606291543747839287759963892007881849923296229202610720749336380389147015736210991030718891580764004492777010135710152997546328093666035662926099955841002572826002243888543120457032144575150985514514155870922754121672234525384621623166710211802237971658322849283043250500744859894464969422383146557022562000038337875453875578002456418676748321631981267686822796719942998449835652114073243477890437250746636277751958623441811890258264810200523729281963510855784349354703552053702424156262358291893324899420809229175842917229503690491138224596692222793996609345960398140667593215843863238177362641698528491147683757904180870481019431220335609456940205438169498513098819392364450924936210419476030603448732577636639825637239623960043792580368888525864307474461611754391943203879643340829856535940278772734527783455626154888292106848606463098228737052470511322581460543566479741330049568353463210343640375877337637245054284614570271510427820199240758572565520299108720419203414825517354392924903451992318340866301212754795454562956630509497229479896258261256146307858864798915972476891660488826969622009936784278755963324613889532511747243695581101033603276403272413269779995367981427623381071600848932002297071622657279565760406624695778809484509410157214758170303462295630335658077032212157399030148894947184351910616798242812368696510282553935791859114235643365414910540360691222299143798162684559209006209970721063379240082843336147864669230419653048140283986203673792782730832176317326703205780687484574917699890270338248206070036259904604416798103471419840093807444786345799872962647025489626903148255789152167762748457536718776449369469536102444133684231462453943125321809769766432493878151051400421743108160033535234497443343152538635528933920957638905019632234425519202663386821463056541753159944278346060804560168937715813964067393823511386698335295748094754004234258063952952740340563467337884322586075540486432969643255613876093389414357433152704683569014671124312126705941820649018594073259691256989302545501113725773413755270191333545563494949173041477227300329296685067343969825111763927095453104422160238843955072511846686720011333180918704428312248056122447750956176343886827888234366437519660261361940188057285366322500125033054034229248267441866831941570953385679719931238176320817880809999835607238827411705463293602704736293620248775357795792573016108671135050117929197284162414657060423966383017868881749571013005275312700352428571993034168637615534096275294618400215188138752823122994670303605570985610643551395181855001469100375548927695853674023591919005264025349987365429115429763691950202396699756089753375554936990459001780998132649048265515850534176954201030826127676314014721110054052743582524999480526665703765605337283131462324865171737236122488945097988506499440665507546460053821832524446907930953828797876473290698051443235477604066204729907516051587291375412779969806125592319654881478526065650559920618429049441220012403654886053298973524969100486671165096462310993520574723751473869362080961672524796833738457361245921990855424864714470860118757112630142925634648446441498240347580758979174848662571111830811367374095078084943622539079625018986649777041166661585412361024954569285482063704436074851468005810868867889476959747271245499025043974495747905053289661507265544563551132076575542430664040550795021245172198446848579542688534992119901679255632024517558029054243083239769019794570532388614366172319981952066234679805394901164571120305860480056845522549828901502453054404179389497097598294844916141381360765154886824903520901308983493030195844820357099388711030261125236296335579118705026699286617493564888818501185942659894990197754674971306425979720755248968183267327853380392931741029818052593265830592094166991578531743295714951244815893056856845032429718353058001409167911525306365335122020434073237169199089683533882245319737299186505238834924329983507136002305270078947554323359655260693830477643515999857120892942794917545233352823762559217031968766270314417328143887228847979050144020271431788772475139056362614601729108045292554743476504759237254230261796092654745904190450156052199247880547548000600866861608144676357432476241894983088551784563442218495120361846336521921106422900585945761565565365404273122419463719299070521379616977610781172038321735170201209992912287097541468904552570281543006649903892470035524102144289987278426633049958539361943225136170251954939270349575779395783320135154884103678779228232417081186482115209333676898334863614533534765311955375155252571865764398433541773913136622616275380835401597278712171265665128124717656778960114514192592860035618175039186286820410821297449650086247029028895609388679919015343077945267954578779688788694670372883047747662661361220317638345283768579405610593507473008815966190381817713219639078530170251663128527875026602574824473800678868839772358175525629728034499943610951871658723227111985537269134165815772083088311411148720367886933275519660118172102419797875766125407935071808847003407310631284637418732531896308581313642128421712310959728375613929115127452145681232641571328042907664450462666441492160868187208862256964945608386477620325772449475032764467865183364462847406075808834615961841824037686792447939615576212243710937686936854068083245589045200668990544481576659508931716231465278474993306715364656912431040431420696222567813604275024735265582664105239004067713953164523962389170277545029652719207699375899518241716961058808657133178653361332217365491061838825725977154015700690298386466621045631546292603441390440467740618125544009165733584792130392818237776080879411223816457110177027067839655169332472982618651732689241233917229776488457621801726635901228808571935859791275909289541560200073520072219318268627239415019800883824829915933823250432521188979240476598647716722022036634575696758250443297118030137618877322861189958725702596691430881131003246162085221305444926308595482093904940570549615424562278940149653969485668062973563570850499311302052389433138163180627029412871622346167878651565952327444055623910094968699637107330762811074964908353197604210076670213627643599358157076755180317095523784547755710673049050923813713990887298747381154103540151770236143663926360476686826216046077916360250791255845888673612239694701136131200890625157978147158730868364544914048921708278575249456958679599219714666806973046695132039121887407724088476333326578794513704853246260387366645482402689613840801791612855818866073505408229293322394165172481999459137918369879592800276372157001670627070065438050526670702196540802203413696176278445316457413334220173785966752284081123772134360137582158102785323143994068328111415637327710578752231488337667061565132511745343296411881264911588363352177193986881717932335996858424825130951045456770239817643101796133727649253354786276076828978608846460417947254268885300561657283197023556654508835415252181682297145056652067749568963376175921238208927970792945510909385738917225963167235748826626146002396604038458692034316330326721250772466241853334813818453319038457722322313370117006532649345916730896852013177217213405253212930361278944063011129619798061998387617541161436455415990247255960611106256485051611796848401954883385780244008251534178622367012892377913865254517734886925898888966227874826739446349791942931405073029998991763579622746158126022174621256162179960479604788011232893987758979877465868285220725924466245632831874834013010636475592549239765339277528822685995318655947693349283057266863958721982089204140617143038790561335831910421604889565194861111989411781484123694328233663700616319421883470812535585318422913584225613132031121016403525309325572042186265994430792458309822951663524668130922886982112876990021115713716000487615502864245205542466390618635399328578697965227291659665172419053415784939129022560932088200521908327229210273888633570968406947976268597921844413515855335910795087897349106467873029136714543711325854304121920307565726012584984554479445025155647360068384124142904426417189505339889588943859994012086190685726149429783451998406423134492381636550845673503511427949403666622539135857790770842463477586321235167766592088540595096085897788397831568231137813415607849865264527220746904895658631016035204775712427007054847847760633067247261541776471148738875940525129416057791105429807103677957380769482451283539003280859011567557327570185995383782470804429755470352566149279337646459459814710982114484885925447963857904003721824076027812177718018876347177757969257471672825482634285268838156669014718613502954274769402889868479737567938416439546800919971891364099148691378158834719834733769853949185627678477690441059759553991037499960214192726660992666196052339110155626264213184251018714810359389700170964863550743847727165709971291670018868381674601825698452556497333447307655229784807082676715973769723675580579017017377957451222030113312569444583266666853737030162627805248484153936144989227503187950122318434463917275027642743502363018144472567501048940539521402220358658159329144823732502325860706447475050228142606235222153550387391687263904268496435702348769505814881631810253407075865275862692995983308799926088187199424740725363338545282286151582013672856932291348338821223922227490507446655065189079172281360731376769242784147324450421036775822388859679318439738661046943811809257437233119056172853713966524901618758032951896024142961657058110577566584135752914460349749941385969678861815949980366133001259361973857253175098411409108036352055209447217491312911448835307445775573685954998084717558771678553594116735791421200300626454788562387075673318872907685576964700723493804420678361701713631947269814972174663847565807356775338053898408616764619202983051092581461995724658347389322086009229557226793047894734693123081860786258708741376841396860466038763810995088748913016832482687139078116768412060361921954663322887974113513726183661295000425297872325283337602944014144002797178621615897145240916970041080150660759271138899877006300789799897783512425469314304798346706542759902196751358512306092508952341481776366065159602160169411962504470224786453606932463639518617304634489354270269512110100863619471854825160204626828135424554166320875726792326962861832068239279123782579354616025854984795069808200362057454482486554525131905402487944004705306536027193785221735690660781716872145100536879539468949942351838426648189488745898230820451867570017641166715588099921187018903299668107378776478857158623918272496842405849638721300527470142061220753627966354392906657202246924426276590882029998776487834293089116515119243311249383201359935816501082110314068804928945016537255112676312813957690314056317603547152440336928169873998486827869925916398903550909453254866568075046100561069525721577132846935904445817581561597290789807828438441899856825068148106965791136162790113853737227499604436692668906098787273754275682504070345004148691425036286774316428700559504635214020013232562454716034077004151554125175217496693237349546798869423853349012576102680976195594245618260109824510577000681966610391966177053390462596160234278938341510097586474819767788165041042069234885477998833826922269395677030888234074633898179609911349120871230124484801012603487703511494315679316949940178247931863107596196370711387278747526566275323941519728715734916830811769607105157441213638424312097156722826974178028374339517927364275583376065575957389836702532847518253760222728518752455823582667949827747347684349034388916268617715309580899734792818901713709204886640125907952490710421803456999632659704607187851399722819062193015659735812152638689961626153517796960262469849931863336372885192959345583856890022037236856571166874792101882434636053462634739790552743438198061897011955048588108083197733868775043636188604395151205517339353095058229356587466299694788222739050383832118939637692938399611793037885018921374676036523809278650499425593648857975164996282983578213040733756941242556605704909917751091911825104298875762637949348611081709796918910669461799698528778108687334835383244620469150435922947233036243867967426042907393146196136505013660209465275879007119252725225898276174035172473301891333454200186306902738764625338607377351947885187390221770223631425207043382723578982392102994184602890039679244409310271860436002965780574920312981122647660832026561405464135959671790161262827872960252919140953275552649348611245963645376716227151963406624250170205155605077070219382751911146231937786513114613544610332554304314865038331559666530122524789613327751598422676696803521756750435646985279000628585494571487609191905582473273621119232022906495214729792626326122276823771693865539878950875774522499320656216967024961202625418128475721971062190794361626062645368954995869272846487515887480710332634964390736983261718869278043994619799095750402993528162596248577967961336900336763974201261222559999910769150887771193267048335635988216723763106816840292021949735361539465679034453990771424096524535188978108379114605996223432148843961265180182292268290055649743181396821557902048798695156245674431960595194896600492393854367495969179557230741075895590706436365287664500966941347221644877465439369190218358790540354210857218713578574939193032354322848292081173294902883095261814113672235357897580853178465979813201554281254326568450878381061693797125403372039335170034114268422035428065347891939288746064539017965042714119657662497891702747476872633661594270385253642791162279542690840758038551495865400776282237292133140237204884725575374241316425680680963727329180430302959284198761790173870710761179447191525705314169986932682720074603259054648156669613005973523724192366420699913577123773327067055746371862896708622680660928379909768222671123543095430222160099275323091899277794335417447030794714530304157228725488901650020878797362825411531229551271974107614766550593202040631557844914146774528270632535178400239049735991456685492968338336690947292502264687360834272325880566243037213432554225998271449058772611345215831211742712016703906267885073575435399507228487534223582400642661081375233433484207886424253558213695041795188377704955987472676461212924184032343205854103911552124820960487216665222492805176916233179081990273788592926431277227201433298236131131525212492931736563551744697901570130633501978303554735914706158092687222404396370660863406339632590529075715655553928728072427732943073263577938161533864221103879453525073734060170266048944798406554939635812047652220444940360526404086228376410290124680607624903150964579835263659811486492872119855887889858889791979060353050623211556514634109362573258119665373898581024928663813116851001000242256970921646326181456340654567297008930100110740621324875984564706842673788566035630420281448183881015653420260991949186880793204860851888439321917386289833689035508289123303498380652229774526825408608525958736365732264007802558800128616145687024687366830035995180321561562182712411925718256045295089879942661003243914131593836984134379173850734958465935088752631542002621486671816906305146167286076064402791598887102440389959830570120603490116503378320889672084392848016792339515914791269161087314783239233517976118258710503574695242231529671196815875698663525732184291806303262541637958155944273162494073935654056056255707266869381514857819239857252908843664229058247563539151814783491532862530242622046778415527388014141308240151140349868200422169768521460216985594374137210956804787348146060209070403140052967332577474309415754139385454707149313377387882728591974699210680735795200833770278086436401030633544520230673647943228094035915446652417921971388885296110121937955910219896446554224308121739858503294506665600936414096813577674791843481248738664739498612083763537374613574689424914072899402188044495137868948024422734394004972578992222226062987744981377466476011992685605999951331564626571721202267609851106361614508508579232521881790581821103760761882053861736302307603143995844660854849095477389617945212328104829864981162755713676174832274244555611258295079983583388380213544421829682443530718107986151217052291413299162710887401172615583693113826585965925081811490560952773987242716813695305119761494629074876853245197673253407826791012996493356093702841694766374026655171165517053106041283147620950382804226922440248870380479380424517938913993911532054470691396017529376357569010909288222136492861173278854617249203548642841844751626580081487202523194515915759341900052464952193893290117472808796368248821920780006816702906944972739701043476344136208097842942849258720933311649020981835399660614505401855888395005580452000506365133587718866419474356424544538252571806095940455971576546399172285719205159216373603842880286956016514185800909320400763725671961174454909805240670510854010109852742782881239424418235444721948676571594810814465570631975570343599147680752842889456506926576069466225203475506994976710998913792700361172928209302735813965052577177197196837442036845261317315102303953706371596060719993369359889296889094822310099609563721034592381577147495983738379627643152288139948756219027051142476846294710162997969865267849806441841535813343651244270976753303628588827399718093899902282093360101364253817413869097218409847603580810538962618772308278173779986284987603234969171277988370267485590643247399040068026302525102964916954029322053647784304907830321569557623547676429937892164148557424535316406690865873916410550271764018984576116047352157871476428806657891715031120937352000888424249526739798746176808489534989525713942384662870596923174306751280976637849871492884609062456773497525566418891796613234148129030940721267073340824777147503022338869021446299092376273594374933524530032422976153944717973623266849846763078416791743843120489494461561526144616039547356754636031194479345748685116538130318667563054775475871615665012381279085865472735590568858074389685828162563521767244041581602929894068506144262026533458104405769318388016127604493699774392861115689021901730225119677621872207976589525610335713677844238149390946820109545111632649530508611842494200957569859311759403847691236010249361655991386946825488508179898700475892545196153026327728049293066794062006388361274536505412900079681602205895424404877790783310071348777580766832861639948334697223311096793197362618226899153869857504805798486188288200874892439038423860996614150482002437225148555313098317860817763905769629197873430261701752031260934940418269501257254736444929502286227338745805121467503444380546112743959764069561770774403373262654672151826160935697323892229435775615827298223143550245869812833736954623834940663948460341302463261606979214735435833626571579419687901696938755890577219747484939930697736750819643048524810141963820794990784028625456441373779655471697126546347756020187927242132858028478354449865427503919788539413407641741430594691665338004789259431991429568829522093535293398967108013841521097778899834834670342306711645974442321910055366057200278220595936769074646727912173953386660318555731187998887411532273370753416200997255174763786713991849321886428109136229025833041400569375128473395775499659581318172170593691781113195238587108522001682352324073281076824666811205394109119748917740560380024237856930947614221454982459953129120926633623322698634124723767174211377718905769690510296722920478033681467060751194730158669230890704280407766690494122264595867873858142879580364589680878286816693803137798388548736919547174758284167871099499405205300785611034273883457694033540337625325417863251184936077289891379475710174326828329294659109029255264425205504850483553100391576091132805168877622262448613643168586647475976661926194665985548942983583997614594796051651276212707371508492511994543497723963036057540958567021854282668769460642875008878666440282077513798896273038963805376880948959873842753981607956765768723543348130335719678609369068648750435486434136259335759343332673006044674903220840176077230570766195980748218974693730204935600364074297709030619279494468068852993228073371167339196073872030763828422722695423069261002767661418060522078168020680917773076276499403084166763255507047120246545975935609872039646976593668409473307132141493050961927341981434509322744131701716400993907662699899492706347328263305617084058501393887712770009040459833486941931166153202509596535480165814019686094046332713112257553877100224997941819025068839563224330608688755828152693123888870875699945671627923877209088383761287087235316228506127023655431944270410998688835682242930075730028651681319026510906394283893036239887951594100521987465213426158603517131238213594313136605085089944359057912234285307978941096666055815493214008762705809656026366484687121069486731096035446128362380966190041933287676946908156926308593771859827792093021999028180363366595081312331798758057432488872444207207333705294291863858437059595327610939070099018617132108908481474514904159675671463292359841433732863179979738857285744620028429821645691802318584990142920914032992440252959793401745950876725655284939187220112548717910091432335866177113944636053858403104437389443011422741595236705619051175480146437904327405502376416736404928735014029715292839434534324098568580386589487378196886856097806140411889762465634676153922289334255724646835800773889195126961860969004992619058639637197764057563672967140075400267786421250526308961955621454351316004594727016055257065511440983840576835693300173491992841981128065361195950153979710618353215113470633172343566811552164636964417401953226030157751427849676777323637787699818428627103908328127110864474047245134447449699604664770812025306793152971401246651848696786765704799898953806313838895822194047542514758368504367413408574715052262895821209253454492679546871922363842652335801771802945926323737617804513793099479642165063942620500610201173344358853470518201136973583911351769167781222198660532642300294040389486848316995733120382524506947137133278922755342354895345921638328470816633950367280675190476733630067121286328569363132914079952360209757239555231756875162719740827841352130547256175976593629621916814574460241051908334227812050668932627280270522282703188390477774362900392609697178963920406702924502104935671143838839708709828293733413422769900610374914953414413360414877441918996163157690648721278660114446113457407456567787798053103236687493060106206554450565367734511346719559162814730900390311981966740621833180110349459580197274077367783184382170251709771157873711773655847464607626119902656857792342057702082213660601374321070548245557440413865228936397553667983931944143513428677116946327743418244938916895840415776677864623275815763000190150072106090160204621650351475388868931222479095656271130709169907160871075217215968328005634085902638810701715955924272549384004412501607115243016143606475907293337681236751586621256347508309302009417342488873674501193182601947088469086184399285634092903120703223890153325850659579435121136973943018399004444551492134802196684698178628157536443225251212876269409721781294940795686441163176435664804343440672235632309757478988450886653032695405245181342107209120833430789141571700021458380926402013701150083988138374062282458321664151115348864143385228994466854923950910872773272917866632763768195271849797793963649703571494259900591386746241341785290222481444022999095617206862899868753434103807407875773029896204932684885336790623689940691069214385268782301115683628299157783529505883857600232231850149204029453737471608135004884854050040044367887271996592903010985979106948975862675848957809556618477526819497355876992065324157980717397637163251503828742472544431947963155696596915677379541346306771357456217358246422988339611264551836907002978296435984389840186161133250789314839005199926739386499009201382086706803152948398639878786235074766729474200279452550710172502102745365401561243757744539948293825588742977908077202440146413106390164307498644744192242092385964036611332691619173226077092068147641970573166197458833093841989702215291925181259031629447917824214789394927406894404068812031604596897861840845060934296827913345305414797907747351477023373094852631769224526192230115899396947663453156333117641698516260359626579696785923438759979079563217896699607800978834787947706789658508503502481384605591893654418050471117062807570674452316040327990574847905744063194028864007933673375150478278137699736185309366685897277252745797160828267312810286244152652277611355561655167083821137060108098085672910370687756908782566928749348203366265166512732548440701267764155126847455867052139398878614184241134199127699328891853595274061483413484096564031088727819839247047365228026486131220743898746173322313064941337096316031133460487189903015734785364927293273487177570354732313732264664217511349961998708586387804533838487717401335747011248466313150953690448351823974254570670034838804848038657722578509109858149503543604887496094878909427504433482965080667551545904530101679195330947906439630805102203385994420109707008723727441686856508765504990643848814514051143282712092710262713633715366689031576692708182307521544763268625470347665323490613609472479976504974378015667158848259665148567387638525116295177086446083267216669987841004712335508804281550668390618967994203849636333507447136325196051024305811896691023414111388278327767317751782976945383092202351835331569208634592388710833253911913804591369499531003576554264386701994366163363215012193969552737198532677957673788935192570878240755725804423655568463515307611007839217746629311104153664996116775926692717958016545327562807370779741821352362345203259352493208606935253240192463759472981998007631342880225449390029877884374980099097510727230539301552221582946499425971293944101683097732234547495100106311487507501431067633426104158495238945350131632430524787608378337718459159819880113992914094315359159528594387751545160733240149868598124971042711002511231503148627713493126099515294941657668857913964465583459427547002032644280998393600478206342206094846363439387039019534463406753529765478891641655341230671806141827608950083459770785712738248822713094444545183513099631560859900713976640487879008108600339341098054706710175445329334987036211586749349724433570302938908331284362014467034051936016358367201178887951882189287072823223512200791838384072918774257031471353062860473385710830730829692407159709806800032330133557272596371170563064248296632962617298187634678545671085056283424799639673496318976703610410863870884939818792193805960329640134784153839148667381189229195025639225868879294639801669898670531869900197805322864752040018005841850220492815659202952534428375318054721519281062455415296807222500206265705929116564904813801285458168003398621567380671340789004685203542758116539212823016463772211225174385015494548384608863798398065708308279276929934698627343508273725544617530119652669362475509622190855739807446090902258694470296525828299972870054904809838083863073448200976121321978018093243985246606065409893942746672748638821884376661890646119158661541594048288774785151037407261983781818585776183638096844251223498252331663284641381623281136429624858320070520429605609429902104311377131379377647167950757631713857833125602773933318941283053756589049537987820764844185857152447140085320607872622250069573629612399872719892991388328303949065675834593112967724666741360231144227459032900046779269155949661447409444878678020712624839881726735906037687355224020860841487366080994948697414967399694405752103848556999887196359763965966286766608744580956893922059374808708537470173481430662362175121005110724947879656255783323975165594889066041115951400138785977998257435495343268706086039177397709108474076056353405319869413938981208689616546328937374192240312995434604757383800823669741178849766954245716598536793056903845354835229450572573127871843594766993383952297592340019273420166856029602517902526274916333929531735505157040382405056088061657105160319455228003251573202261336230140584639685182024400381612357094805547269288585593827123536061906665357277322499435467137780791634306130249407263818739222029809194393143481535777762339345226728196723096905375894075175607462194508819362110499878616554165959166489419159450693087968230264875223080260099115934468798990792680980280434648520393978576020167679591169019988544857644178284065558772169929989466923061726557753005234185919085142338864025478533787703061257803819351461045977313590305836654799496067805423534242650525099558945001020912999007506576446162333922619883090708360221276172374094286517073503502140111473957411945235383105550959669068921964425795204542904954065669304442030639962104644099385183937391472972171755998575887020753782147967267138416843181388630379538248822023729311988080091794853533154218281829372358280363498259655633927789999673763441421253246686377993030190446252767646500320078374869873795160706940594074715850348671939045832180471504367744668246248941211001839309575824962918795207744871837148603026929033591594563637052790373003712835400308773453856628039052877949596179054226430766393090895621231072102664451064000634269436788941120437033681560077229380955924626641595547449971433903325495888433776886038027738668338352540646096644387259933678916412217307588421190707590613293245685791734808524329733582580314073377035891894318142410375290466680844056791912500828959957810787106151380030891892553951298179610269641273229266201751615694695791114832966487624707866286334773047957069489615560234824442081044420929116464475904399374901402322391231248716665645901288944814350687716366432914566569301254452565511472110630781661074538598327809752248346442414543461115777868577897379319652069319033154021068917091740624792705350249465039110581681678644494098118132825307246866447850920130205060571891439379642185897695278913405878771654909252876161559695138293086347977261104071833530153896450587280059651194579582264471029588147043416488050959164046696847474358424338239445768070733550217371139237231422928305643163452396664202764711257255242893406718693629504694885944648373214666195813103610037688460461813667486284435247359969742920905525456504681788092282836135603431614345727053250856379124834232085315647223492516170197160516578886811700511328618917929897890366523646222768276316880149153599599494770639730043237675941169297970970933564149310163015788136157540082593165261315068332261503170592695078416269813174479022664189201155163454512444530674180690251607643054816050779747078652703700869480688536999029398261524420696357165239033637793318370305220096057273138714683772795491871255072800295134971264438983970531797281690065784025837757410727807171048045704408283318949791708614397719128152401902026066559826787745905962793515455659232159976163730366430251871750101151508437635103061773248062908971321299438576992373488757081384727536590181816908706465303242795319905358423383903405445639073345316479784426601029724842590858620133938418593804267147951504735406232056708362466358875339116050855370583072650850416558407451064631096015241528403827895268152598680445530678095447495072297337625339833425179365285648889237179239189424622031089242203822571632974010315049265652969407181248202120328689710793244226616815257508429779431374666051520925803247472033439706678857831425323078549288037610089108653786913975629352017070105621972788931009742545657007310593324727249770073585952819837134397428269906323371014329608283577290352866221902050644309290604811553733613131658041265600786180167703998570189313599423820804477654854006644871289548527919565388454517429534229113138817235639401789982939317773394058563445959579960712627555293836120093151702152529504485023591604516348736427190024118080878181020422210959303440595626105675884074933318786319957872925819502027941102675360500628685394876146546331074121489681289058750280454177289914616903030385562808069203273457242673753402223165030541246230693291266941660509659331061210797165975804545019754537957437797944128867314189855909566296563006427981994076061580963759463252435105543866338601619312212339061959946805524542922762337683742752431794429200164348953852227664686156157594573413497676847905698203717774885971922016386974062008652047971568469227986299773404405454572721426460381767106277921795793548037923772278278711004327578242010111507885114995466894127244543858246210407544816802447327498632320050411225854950887694715594979994746724537374582793769122825589549818649636054848645237357667554899341326720271400698020435754776263051010107962468420685811821659033597543663898337652680421891843551212329856825373074537016937554056061840205640983108322766905870331044462325908927132434910489804627651936296414556570400732490484055317792324960029802345052883407613599032034104561858560922288344988529960990678576327817597207872095547739325409898356287803197455064373067200176292593747782139841189700866388069595143551386651608669393578813748840056984816730677863969749653557211801057095562485079816857846510543194816841280919133642717719904337960115576047501103742123624961698353496775219043511596564396610656918133727770079126501744431534364818061273273788304047127453175917045891737862162446086901754921940708190677929150370105249456817739250373225909815994234810088285342998848558819014199977645362528815814538216569380474296612295686514133367402778706433651635933698572869864442322093782916550973609767514473310515195743414721011840457286058636672825667298813979938923961917212527907970147863187214359495212313384684860425431438376214274134543334901531272700567467504434856989653055018092637931721521649703358453894741339370700437399042077632532951092999664311471510507847543470637206147572402060020114698997043345211794245988174782013336140906869957390666757230675878518227670222805677615677280123807993285122014019281246403034111476147402194659536558596123232473181947181591816062210506066167866911959247553307112323140358491951687148772432741917258702535411947386202746851237715435459927203800052773645023014825791849935123630550549902770397506742823445602015414959435542151968490353895120874592038563925920751234195842908396958866034670598557068833100589148580540604518834924992295057892272873057446838345517010095052746846971786600865693227848233123704012661108429722265023794739342372202766865236994100711885940993612600438513116147286827467574949609448674521047798273609952810483717129463999366625876298295710787808792828173661569395829305219234624425089520267389608879865772906824991163806246803560417378747582416076776118731215651497699356238820597865444654899630945633700574336034626221926323187717735255929150500700229037991354376400233188958511571227681552573888434784461010361236210432992439566654849268773993920487582198153767173744650299082718522780231301349251550996089827465697869255475379775763730262363529949868225732605527239578192972984802522391350662319386644896215096456269853580335517746819373292316151496166044164366420080694891065215750667064579600276289770178466146762950240977446950882756922014748032221725333861941497755556880725049520667203628838041703410650889283089070634404531734062173408944846951633075683250690150945790516149398113166445491114081423352189498564899761486141124521751852539433972635416931824860072551876299928954543281139105402646083994252595590013200192569525730514017591804898088062605573130160902773582347396249925861646035402060391254532956167004629671807765832370618757429027188882115116155723322480300084552997668721220218009290486084753670488314103387916475008390919646953021319419169257969570014257126305743331770383942073273436332277242722966926312819970502527995049424474472805535255840323006332634663792402546628707008272083819442326450699487951816337611423098362184026636204681917400830923954996904219342229367518097685758448329543207145117595441070386088521015182653849768709302958455244612834138876817805186870166085701755764545284786238233365512472550291757929755382241077917540476301516444564052004318984570705553716240702608951847416802911538864490862159241732086451021005331398652974716553359798958422634893066854377381792290912124568637770242022265470205081200051610545625919405585172043952830790321471481881643173809391709976147776442467283985145022554873039569968389682980725635880920921657960759164505115622153867608749662347858231445222476352713776377840933783324783047968256459301595622330075288660614324677632010608284602101914603402413497503514407591097846339954706542489290241068675966189687755190383549993295936086931322981737344319126843307259886686959288512291245470144848030139510078216449115873083985504297249797083245852637679967365796772808592323075403466860681141339348268523104787605810491235647588308573618565620847394782495848895191354796734091029812246792781648160071794793664638532571188309912170596084109360730452284215678149904274702311741150019759081983112670771876971106649887084613200413974970629832148245435368419832915384277963364079847586539386953370582461333687726162213173794013535973374401781248424974449413499166452780843436200925540494600326031287532059745647664679756760265943992580624687808049335976620076703643123959721660562812183930232907914296457527602593699958417914710536211117192839502182231926936905991064808445526024759898168319328608769609919289798341933196641081013974668862008440140471263937434992595462397344317734079896006732141249647056305286603272328272379569006740400678552058168755676415308654399351291785577598208802374277390269519163139714739363568234302430168268081675995717475671685711837785164951310858576439063856984507825598998804865835463566763016577447038559432109997635927078092324724684431034578580237506929629063473502260841636162211591591797283798015379961493369285992391953070761845924276688530676540686459867320747755403892629508420594654470098551842213395089249795574160199244134774879239616368725657476716550475903957035878225362254129315644249490703471461819142735309748962590285776580592109940930755762941085631832303420334491625621459958506603896452515933412145317184203011602218850172570129743216819457208973855948615204514881069297270939811017815502235492373055226298085238238493642759698672557484721709675778189932585713283147796544784729371886518670824725973755867497666674660316201295458842585370901420893145174927446910528609988569141134891948297177079575689656438185435785384015874684281563581267373398974444704633370806812711728838493246391773860885905840805611764481872808864394590467994389790955605710646193490124033935843599616826493098884874565063458317307693953960895488589858234136842018330669689890142976619580358660856088544000296864791417519581240819904368296299309865137402417454621684739390636097967099321492796958241229478335529876555763438651987557241145531792211683227638758913599002829653640232542910990257696857276705333512401696448831556799318995850222778348635723326726833248255657212917400478529662954057320340954053628064467860082626066645738211238508257674545023813668995142495194692809265370835024452211239452308906114670910558579190411710535468925819343629698239244091252599601200112303420597923807610809198718757447442298945064164252095858947031795486163081747929245257941608396577932114875360211069459188801140213344762073190641291838514377561803181503196168801768318126863632257944893096229047196577099332535141811495697868343238618281737755829403499405772585780798715000046594225793325060389129528337503475747892412694416434025536080680143639602047877324097612611799917883220406814444374590240452506171084139890419873048530676624269635056973520463313240318155719153845360207957998954235210481987775783593426085001252949940165220544764530950839587047326059691411761807450926183734733666130587929380165054761378516694121931279708109917685793598045561224927850395527676421978274664106318211784037092282546040321996375395279083069173760820356612170073624371295312189886452607315021570750473597464721575264122565626795543232740149584889587675486703417951264776117141748676828747690578256304629666909369619426870727441312488079373227347364795751691524125287436787406988262074261437356474096789203418011287539018343149335416851443581731970947103203457975288755243231866506939366583480032341346300612156872122267098193646521487150192477789826128397324555085977395422899768468119940789100450328052244193473492114528551220641722161575019336700644002710716320666525888325260462006307850685738692418539147972947587477987613240631717930742851690249936907204497505967312319297446002421486317910817198893519338240516801544689235315193258784578634623042796026092190609248446524444016915162485069419715978968538464164145533333652819672636412515336652594681951444938681608814623971236983319998634691863574488836819835195240723414419266332527393908774903505775849914621524532707440211105554838702356793245527811350144109684740332683402609588945495928153297770962994843666386975425828909252607675923405753489893122623579864722427047612918903360606500178487468705724977489492589385519960712033537590470539440759821453018324285165599293753084020183253789973078155493135570314294131414950181464090774160280397718627841605572584730727164307834879858294173415432316555207181337998737021157182079900453608487712444371989364367517818739029542553524688387085539044269294692088400998757754617877430620302495250955956916923067245328245771122934784619692517100570154176933940866688862950984622612387198562771925450311596440643506228153149184485985712767585965009127199115041781925933428913380871693080367830383396584437921792433932410476129278646763560158272701524492367834479594448626927405457889023600826387973239700164069954040719532670229641947422149530823499307281148049053503326094831054182189194710268280154340662215498440081431302489714107681561107901619508633737990535272956665153603902200231221406708593412808417785181058750012660061104148228600768332990322509058331898713943403291901180031124110703043291592678381327897089052923542633102919429215581298380254503323855647568148007439893339533559325300493653657796540054204834501999574240216510095715212980540735132251315681254737642588719668285668162684228658626733320028422582548878270029809098646334877386887762974489057711303380465361517046590260980907612502393054046648177380285504015181088529198842653674333561143824127959728888841476303401369200955918886019492727379908176688245488299049564896431581658149526618104984266393044373637908238180507741158525199594821264454175490762215388903263581175185385396003199429976784732063351977914506249201275219458649342522792764185731007879903586449795522092790207310874307471824145628328236238762886782854525079678485373516254627810650255017768540531121731521472629181217516378682572707057252258660049848219441032153073015120940456641562031801002550525201926045875047830756357058127624134971561310120460645874288527148004415299095409572298994733869006255956465845102079327852642756141737897139341614444264294758160806221997463694023899696323751646417938620418939123860759854513841446433629377685891572005714127497368401479551853353753461837408748981389127583695398824077496921480533300361226637398952295725839789365982969756112132489245625881207818293603987947600577282006395399990064434655846784161112322630763692646563374151048150560659378111103974423039919386286169754232998360667313489082573286388996030193990722416552191129010755535461812958105144901566058622170760018981874733957427303290401913981524556799269249081912082852697312138857235893818695309923951129604686868306830458450546342094889500170621089060407142356077198649913786853018658820718799033116397747699018030650887602370344725307009297736194195518966678035711638110781041246933325731908383469790166766005520873173922152392213018169512335320633471700005818521215336168570232376736486672382045736828881920318765830328462026355414742264190798790487805939728948239679325906014768166678401064978234532683896457986541966857504442493645755176527114661702965274328407722357538098339049183928797161631341403824736426876973024133669883071875524356469987053434016991137140033828349561357551434155628817594360000078363816726014452639728226362065388493675960286371651405805757074139800581157388414884087948750576006660540783923988617597908055191207247098003702606799307812462772076984581136684563205512926038677058755989894256533210433497416153585983564671950608692564825129162332451116685155771231827716985439397209045320748393775655380063557467768785772671259875461732944384393658472377424844140264371541444463018264842364824907456611954052156381636934729767802717912462373630383529245026577187377775932106653216579777075500836436497861261559503899709953922099266569287135876554934278728498051147348937986627039130216983696845941625430213661957363334608810111275500195027487158680483259766473659385986623879940233848553126413286458586791771782487927385906488820211157614218375733407386684189765992779377426636237911427417806551007070819164932176747080053393434150811605159042890197153844687446214446957337393560664870409724900499372566673967335538855902586879380645521346225010442710071111280419329948713542035560583067223957273261042213537034299056179076043438109271702983995208578533930440120731187248597040531543574213342516705684421128179988078008312062439736356992987189992240428904405127764967630475551139464558715793327526215521986556322038237381759415027278001871520627017041273377268867901296756039534270204088133822162305806635670783958469163514323728650378566551270322299909711736200240742327597341053411395062809882662234539170338913598070963843143621064976441588640520619352535052302183161838435287753261184470194935258463123748144043427353446974318765212490884793791412003688638989908380073828771951443829431853208786388256892695509103075946642429992025190703844803671187908704727195193020647756519795712442949966529919312401951533564548992758664843087453152492489729418151167235071890231989442001860015831711256455561521128809443047935049515166090082841714062932905805585800411256325759815773946775622432703153936934199365303803871774760252997011452182936178452491163244402038683595591682350931607389265263694580914230116586559090487220258977887898020278094675744261823135875992128696781294173171571272540228592173151036781275386672408526159145193186466852949510169684112919012085659405223303788801046791487775049240531584533982366602714862526265819955618675928716564892619323153565415761661025111667826391320909337246115849356667983886640004920220706117368779074456987167597888639304833460651675044336497928754306072721641491555400436443559764459456544627654316579998011829086527748395582440659809288136373652295302707790231289692840826873945573232855390629090598990367768384787785105078365746183505466842851819411146275858044202942797154084371679386155104467710313322720297130057323736824256601592947695533674296254698084463410058549645666683079453323822921676956326853966130371746033792765631601571081021861575090712152720576804135105927435695684008093649958972382306137050803107831703827331611804409026705739370812257552167211160034611893105338954968126984166847758737410325459593804150192034789553829957459422861799709607704115061297076312422735730555466182811796046144019625513529290267309219914392908649504623875801781350829306624370760599102770628362127574163420170557910592869896197659528150378919440251495278296625540321771027436624815384624762980396696948671358271318368225806446523654450727307350186574473948626573717800646833133377270183869958518456114560457635190827096167422481073805466403131979801253174050548343378418383722512076502568572678609447201763663751329372239349205498029573964379242302390899626522645892369730186754902013443513016464033909892424226084132344125083380487157091324156870493040725461881255405868746888774678249432735167599616618850134828539879266993196164543560612303331017996416505720063874364460457668976805150288759513304727288440487791342282153629643375982721097664992002816718949216356048417034035222362087415669755887457947329653475437121207837122356976352628377626012727772993162032233514253551120421299775916024532871828079185603214624121569999851592011839180308082271790439656432617153809431114080101757370037235795150777222207483778961630039907138929134474418601183776540491845607742725428471708889683562137131963653575112780736323237269664808283916509154582825696073453850442844986142957298980738775842897350182919195577059580218825268830860243486500364844586715477649331635353695782653810602652531499553696572933015108487054827584388176584016181726539315958777175475188499242982984705133104489213478154791897861338148140960871444170317561243482290754876520958450835103751072523032067656312089134089760145036346623053306608639482747527019347022823264419018121297142684773234456278895517181067712773573868038546633129081190801378681243420707349179946887101200303563625716237655261011930484659807794768318954367707024815707842237127339928524841837631766754304052221877193762937293001024912954434358762801735872660312978096275845978623581478015719780572735930052813423465658700461704621283625101473768088582374870151488441461435846030556231842260930746402284152329310350614308121836770533086157602028041450338992621115974092544841214717648777945612633154865470509489883394240889323866442152667384137427968390502797408272824741250209933907452283711746586894568868472427374548515141523728541415874117033360835091270154068004522474489656579438990763658574190695990250793268221794990962286978181386827213917804390545794575959899339555792362595378920330906489296655594177281551321491201884970846068845332761135762606638934938623498703958621753528284449125246905599670867954357740804538641836024144898128752659943975288405291954613391761490086473621218557514254568657418459941348872583618380364888972612835778994214948889331574358232064309832858754835236377435463668616896660351569815575594365088614761490038555822538195924594379839641174830953249487791534043664201066094553386835031748003888566248567310535704880723108718752945544187973601580338223135378321105747748882720075824335419224359225672240312720130261949617984898575288786374086069513242308295016634212619315053864587299535802517449404921008262837540055092929892442940611893264509307024215989853610457286890984598042583208988396749739102746893749411465911844376421674550438432457589132994205659627890694697525700047850662201135596941226900386400307787842274429031780993553867094404502334149510220053552553847351986221203486447483875048948370174845893481471181216398716154954011734814690872796085300579594071373307008334189468916404605207056764327968413004884482905014654578885139418254930792903051078370060239878925940804712218299635015205271725061175737182872240588899473018477490760725199756744064102867362872211001086463025525084859372121389103441543139723820175038630141842404398305831477255948082573775102861064336325656299212593446913394690067664606768907453826448619241548048514849741891000506476156324073024462501352609206717841211254604398994499539521299604819278941464223075088060267066937573099972794222992958361188909185662086355401408269064607908322792667704870388229029064030251881065610691716476264885504688576028675576140299226762730279694627715927930812474355359213835047490724678275680339769269041696641355052634953089105251433746914087848589824952431192617084848254066401125360811544246716875233255383323934316363773125126863036772271484165819880741348289382829220438924501389100132967572112182073847412511168142681887958555564385527783931102397961231643736743308736928244447625159856748992102114308835316204910462109389778376087129735230156533036374797088468799577950499098512318505271067030976809112069089654166974936031508477831660633651303832550020646353464995919684004650997955926345075738426060827455088305578735725856317937222082160650016688690579732123371285669502649515413767232018122096918437482025199459724379210911760747754237757224587732460675723958141451658195265099165706153248650730462505131132554474376297122255888685715401407258620109847906068269371906223566065500385633038526404479529247935706146221710940521682201294637466211221116072533540936925079136630171894386840043468953636780604977351921529193644613963096472311406088484407556378795001220439393527627876705183776543499287793957095307899327797015665619509392059851053629846346330311952563811511594103408790415633899237398091217418538380478318718607829022440147002129557154325684516425109333346744132312375265575384190265676764074087231365627709708928420587248055955423251825139381250837464260989950238818202455282733593205129263181616697339751050039839852060781173868158372721712881778833122183586534851611930048459104745406181926423472526413958522858305680964276172819267514828225811430291194665099401521849587441151212553232358551027451193056150649375740085253447978546787570563869295207747860681391159415269513770851027321580335180853653164692700839370311379726011137158524806201195473176429992258766118508521884688953529296773107649140893431873327263448773574748208893761722938422727043922291226601431420213261647974210792926404503270320324848393878641250523244247530461504261107916076069115443493944688667085493279679993912729591809517654257763970816848491628264173890962176943238334452888310099576322399908783837812189635375334171975068862037369954572596971411866738106198941234115991056312819956922063813186145038616900316530979986399510561869891308779154004800082443425229488157351762856696981805616613659792151173189103637260267937254601722906322243150392211329595058485926542181814051479026529555315629938457634841703299618934998837283285998682859912310577324459516722444018257474002863115578446758412933828014716455484127080433208672289070464970114664913450391068131948370535519095530461381420711685871143912673686791656815473036911030673860204702751506707476780567021802812832887664622670986066018730053491588434690654270059089712426728062325960083386067467189319706258627145293481236400236159013424110761036673493720508822863740851399675450695116085365054952547489194294906032706322477756840883456636206123980576834334716059043407328500232705715506218225204828057531244425317552430811868893813877402119773470749754648116253661455074198335627864984344877929127242180460993364839835968162719018735947356366803283156605275223844752093840837966600564598536057517697456044095396886516118448519225913669638603173905806643963646787602991551900134882652317003609502407484439644470566851546386279410033943146813489847495043120252121599410307156664763022146733508230293475272320611353706103128244491493324217068707531590804116006841972328864599408301445816967295122637392431597126965970294205076471260058535994595140983861739080205656848553357933748083002623916643583790066303500427278264282610026646856223459283151350040067705216308279014174783119677638377865356803548813573167036451548251184817304480401586605343531379390830063328786015778651638111377667864892614257526114279696381436791090036300427158307947008928110783433410212671543363379207489671366657542313625150069892827902887868347157237712738352757453030675064657758856600669677241413619553340936646895788204754000290402461982709545309050777366675478436684153069073544478111462381864624272196108298063124666425003464182033277420743117388857928994477196742983740266676144540965955022672885753097429662591118253701878204354925023773032819649473154935718582907891905937538184417106279898088865235590961864423208584464751856996697720648924491829917245197346720795174038308304048297323820803265149653088455316767405464065341278128569325351199764600807945439307317219058489577695728868395747539061147244896857003876828009243674142108603050967675925994755244936755719617759784345472623367967080826226710822453801030194332974148512735043330251127402758483291370655954478356575284760267748103286278430537951162266545026038844754627365571490703423659543620267295215155967593292159675869690090919124915972806084419167551371032611108272617892420612833896722671411908369336547324595867662615543335253598803628115708216788985700012273031934832603121803163502094168401192569831487269020514496518415871479795986027415032237188558935227530644631412241613377723543191946126121362495261343422852437800868937572894889371094486493277148511653806147566537641657184886125330532093499481944623015248314139769000957251037284372247438449421797276868918418195849291354593851472148723284058006579063176612337873727485820813239969319252995495388901994733761976659955093620318002097550850792980293517967004771506958395942953176439873631570443523651758521650775247525419384930543164651344330569449035318268743770587865269728163772176313246968207165039978994960206811740926475951294348068030918942209708417020927186825622413020227192265788180246011517052440828440389280498328573591590142606040697238848991456537764957500502716278954846493344568253649284864743220618930080151072633462421923904775758671161245251188625304724749245107533064869875755630364372243837276297315048220600777210954227118036530418682203971672540368098326878196222220074103227470143979330813247415094302159082030405702053874011459367740844027079730418184159113209314260330650983563998228396426344729601519417510058579561449066471187091514295276548134568668332989886892146711000715446606652188985867515210606366903467982452267208319944172580425641147301311351282414925602109221837574457542215670082668389968699921070950870060361643566531819455949920506128771736928499698877033424669652315715344331921141872412281785693800111530213848589792937884061260692460437756652196706703628683101525964712319463814445685063788166922885840088189884967054856065038664450596981625706430516212992494958217549350802587538711220920145496972927021711783328108700579532912632019174919489360297884447472024587944700597821960613512910815906751405434053349248136334330037459811030730916454548064511765050772537102296559930074875744723767071309703872048264271065175409880138627091577825638637872520953300211025098756685264002312075249492636937239636065499524970708634304352024257385627467538800300978850896502218376881037403824599542113379502401145952132103740139968777813213352359119915417921868313380936447337125242266325624604427809531781058612316797456710783287867194404106070101854252564396649003840633586543330557450922106017957777717020511684687554234443222083079309971324011784939804770139371929442916444201471529194086708051780966556531025671597134552479132671048065147506510581382371236322300234357212601618189075141632267759072689519737805649539924688238026018292382629777159469200595903953232171904958396680331085583007468746996227537265062688998610318099230162261118512838019527704865669120836608205333896172779880362938798262310079490178979568734674803551778120947998990107829680087465227737632751901118056479199748065051516044543123716238205740749698220856025328414956249005261587711702450798166051186451177706728018206414731971703663821520050261106294461679979252890638078539072451163473586328886060232861191966602041020579109931838433722296707943172740285474351662745727210643847533148890083390605535401181910407747719601572949873364551770281818949362820514743443270067478356074530786734511704702136763050233337416883900471270744771267327992045354525505986961678410807303900873747444578727153606075210794581523575539987007682914686623267745246962492949388709670690505398880125102762324424953664760513213398445339579602653750709547864937375902114548753074303737459676470475941127700656078617185443086942205090821365800686904369650670229417654717627963709997249625260983830509621895332844428284025429339153094828195351889885140496863827478989955615939379317518371295090989725816047603113824098787044963906122343200219487107533478813956835281750335843308368623415973328614623448010876200975143367970427535165959560650338303564558719778346582505168341545218148601217505713184627221648925918150584792509940018289783606955726346025918847886889137999277537110745153169216958567418558075438715991054870126488261485114781365515916426832245969105427371056759157062757723849704490453297858675175790823853808773372784368185914480690124011756740887343637409128515632531757672406259484826863411911496290708612538996609251103074035402073765225733158381656202780325231436649100955702664496160264252796093179331388442325106455922651763614784944267901532761704558182823880091709828087209024419550638479413715414622519277451181454938388995482478944500539416054796823551392390999788357622200161510746020215993557783348274664112702349748599894037582424668751334847968130402229115117141536893884573896648050368741556064824068362552751962602041989151748762721905735936337919293064592460785400626789885996105859879455963539821906709022371249085301655196666121833414525759196402184312491864708540914940025189961582365098312326323101460973002199382415692729472286161746569522832348651774730799479942284401499937958017984236705887351463620794588883574238135136641906733309165558481024871492566860978367473849764571059270225460352956419229388887351648634683546130163266853112998660045203382390957062719803805618597266037264675291401788553086362183450775902912948637847099196108167873537208541975892269302593213251074726434348338045401059468531312718842082264197491158094046359877046013006831251315234304609795008247470458286811413119541571441853605367927768984548809562091870112305402816110384800013161720100392477646173472236895654077542911631595385756588410304731809731381343923588797450806663194559902664237558020074929278887951027849467612902626800831846196495241904925893456585057761666173325514079555453845760591202043454086101414631969743429207193239730821087872770727456817821031121476747783823313230135542608217920874328823080411008370061496291703531308623681230231446393099620816766547680740070728896763894323858786939389763889506081665635967818334798356744772034987714146637857481352713115577409581452575812744446102532116351190938196609090176166724284701777933642066813699016896154287484437241235419113881603859851068327250083874846457050326867244969455175489280651355571576201403271632964814850061623448060303365059950480040259254680585774254075314175363170707708578986018493450292594168947160710295003318855659906085259302505629808730590461455983647205315173837621638275470531065492935900167844731876295526684671216829763498015867664282751115634820745956910912244922578318833642699287621366355847818315871198664489674808421174417289796719907537236512938211409714836046196418382961577481425623002063527130501256052566953805570221155197583777684978139031604975969958302117449126073184605592176299145179931560393209962932544925468660858830477322056992462184104308635392831691490559521721929724755209745539596639034465022878698724082673181113053738552906908112569749219262033699533393440607039402787190573160773834043660170423195406788639482799216329427219942657319010940767499939296862744211391929009084063851577368114669177006841481598561557201521487461210357236189298088485756303561578496367807678706284761974477726702802054286111393004901579548039349851601989371410490570156753483070903970370274897587513695038222798381264271748106400637398082414957838826971367045097289861761971368663451469506858037710052926222516356560415406817901157650571594048757909191038179703294414258150447385164885344504748034206832245454874613904541672493787665168579128425521382258695128931419645106440463233329691591027874986821523638179093193808362814336054003957067531633356131152839364784860094199378316822471254444608350209348414253473265801089820964222857780354051767726409518521102612730140734394041015717678370786401938650173722491487780926407859153152816101885040185610101032860472451677273893909532262543723003762405106096413861187824380341732827600970254265806743550811527193443854982654017719522778122996522740670541837697019767294666783700553677087191878739766081802411278700507569073723098712497779877777340336722993205077387580507971828992175022216865831501536771890790515460798681630551262190598057914992151183556926597193968615871152946554286700675354799723280511857094711256608358257340439875402146978518072087349205101818059730790683506949846480086705121159527018225378557144013709230415461649254770134477703949814540547920657690414798807456530402899624210023905403945167639402047316184778686007830441010413901220409606009950961108639204009735921177939667007734447686877206511683837567653201401351121841849376920557160486003857263790944501879581778598594294069063209475205803261844317523529656377518754929777645061229049978847851551112238327204744657177413613537134426314458272240178671082823126773340703372539017410405632728903445792654180685190932390214735773227924448545693212610435225641226631293373598953690622119463329906173623267783293402181155871170802100093272957521261032932599566549862333447031838138458161744223185343544510200030392974744698753005345908478996390641798140217217633924296372412070694074424883208401775496622889760327642515175278427685203467445501117278890463527962338351811014768592326880972913775442399102354411682293127508873233268252114780301196235162211798128454468889988306522236526891933023193348529285603012894512233237013078375290089972582294248213378820712557623775601505227638468985003622068306457661191854196612565398393926584941619606054156419467982066142822604138342022058854854334699748907851907546036853308101021088968496648816749202856932488966005254115363318921406285216376967355281909238721783865516459153902146765119937525798898528364512608136696891504434475391555478065291680983362963304493218992285640071087876899005522982913203003725868870263798459963415529610246429581266733620624205392559093390305970694727422744139699774814529955042415609960254301564283174861605162776741314372802115071231473194803630961994236065927287934308481155619645429504108735145432934918616285830051726641109207063469990991044199217259734441795216807947993971434397266098714108528056135759600665500679138803775994174037515360151148861982566061736584957144331614579821230774394001330848183541050302703397920480101481369572313893855228714158893433056679775459816687520049562953904754068457973313963110194009984540114508993394672896206600226117110018791400765911196057353404153752072105008032809637265513250503331309971648429764798696496442755382883414344664828734625048074706838752360834365552506685548527503420057923268851321495105720372398428073411169072646798669637080272447097064949162191716745171820966297417811967758500629140290224703273198721015660457869044870006352694074202912333984393581746748944326147329915053008473172161548634488829529218883016903297093116382348290490998029442557682524707677899351417150261800596421346625353745004669696437234735926585936139920791663912829964614685697426696263189805145231369434403937966239041612491472454249470663563787593747457006890876977723396787700090650748741477115465600730062606554786323852405975524563229970943915606901094498239685982854643851543890401387654784003620496511774740804238772738876803708539791925261089126434730061351042312380422516453200240278888803632491570528772527422470980265154540474897833687650823945851553039334745307709653318675951587197793895951574188534488390134692341887263948551806682035420845063361399482992513169717043312491079048023783324628519326802896227853067221800973628324861667452943421294539947205049504540616460117829466019995259762477509683649360151641423968711252039033090242819853745544746300158939130915133713639745188466412875132573567157685895202238401276715714876355604063026002514759953867986693335733621449232208106446303029117271271108907103056521821487620851109803097338753961430063726242770817788500612265714142603925737765860911051711735686957684407148563593006268837073261677183846637308832987487042778110961963549286824819496307980366236285665084166696264247138692809413390396882579916883308051188211329303502911022727351172922182394521332973865021995910875995123814238753860133655858935740533430051952027511539943649042769785371234730498544069014830915159692929707420182403269627023818592858606603125430815005063855341469686327290542118337888076808622726698961954959749854733044407514550985376852245784446405414733729922431849395668364859051878348926188955501032384151669214628450212436976355997116883284560023718381061265632854849846754586905775188441628825321733839924418376282442493686623673169031125805308040294272680301726420459803445192050888299856121915242045108385643356465529655238154428664669177632908880918892980860098822203154878744556421716450458833507703863099597405771483460901589229821358310504512733870770900754252899218438720506353401290196351417457415604923515176314692153582549930828952007478750047752676558780598366179922522200998648306192757757388007113295131321716669657642115710207891522633622654861089191931515793170630513970846795836760083516369731622374006659961005902738500626821610872141547586389650186330698692582453758726694520484624735080813783977185313826006045869322054135435441021277534344869360057484661757653025616922747025833887229689675323136031813869771577886399069521941929265869360437107671966520761901594075353631490156320137710203814777384972184933378902127365179847314995964648155399191578480464102250515136599018825134498942868869864552541506064367710518657426233649101422785408306823169489789654631055665385920715114149022569350936711650539902418848705302302926174708155246567187892840568481250117171915444277029608235116924614927132516881022396673302156718069291661319546915300747306741282204651529767387197884396288164047573288504182339832558188188636191168657042307378476440875214379951218969278037497490976518847786234249330101571410801521483305166985330530895687624534370341860415080101114688407974117478255550500795673004686295929436707626358214867983153918170941049828997787662341435648842163909549482295771700236868018385481685227384099601901138309290461470153162014677425850778813259612318853822507634150219544230116942603064514237379164460989571224591103972442742103279179454890590813757028025080561027871781161768337929467157467606142215065017518168332817060713350708066564940451350740063846199334991091057505187897259564279032750132967552713938400003950974262993502049531375194942025602774961103121285774766719486246201471034879789709536490424290934690704748984190402175872316800143491248350919032348265272117945382212148135116587025585118630086256892388884451503295892358885479688643325517274542761091830425132686621353926454534144264787640899432820771473281272240314497968892313006129101936585338751790572414453210364091541410098687455084865725483454500675222916144133754901729744973716067659343019043785404774241705644648782457141823788048081485529814980258353037452929297968407550147486426832831330423564394283464377361480548846297210727159959594301184752885784424013022187074454756249627328156580831082287413981942764422141026468286784807368955994743486096115197988341737276720594228262931848580797261130218798610205126975471097206304197914239066246186509552708481573784121209177294483039716805631750358823669295607204588236801489452517932888497371704528565689137506796213591848725455227406045838928118808180875579880935467690031878225652460066475720475422250275473225474698544861490428024012920428872063218893618834269371089341213292537069900448295640638285050552315800842875364225607542787081440878273769580699525716202995537979371829895436475079927577895545116884662103359436268215041387788924999106227628234032932598334198133015943555687941394089135440243244329880750607109340594868240051852322363749172545951139032644250667558161206637806955521906677344188455740188623501212584095669032936248320292632630211213946732478336091043525175166485257865101190893367237641433402750550065400331017060044981775636633025743451743116660516861960278544676965790993469636230590651328233312283822617528180435216579428856024755825392320292043372693098268926530006256253790423568671324407344684269363981279982441159250404620729961593865548467712451140465800830860419506249965078330495170067484632634977763928574871597493461005994525035849033342487910364038672487491597638913824344588212232293464144843909225023438877784787183257339190381671738113301787701578490599359074351699815221113918409871421577010423600463382970737792204073398520937363388621280974091572768432149453475822566076150000394528679270041631217889816558924333102693927209747844963701404645100777211352119468457489806281465439922744026281367433520463824398393457810687188257521516656802930269557645783717358220606256691188336716742329014643321063268408871911003232344545150790384563740835048195549766518503563890831663346134534327622082711554212853979998053632067407176236461192626374364445507214208442759496698114014390738927849153947161711156517901440669858817803771904591420109166253728191594103008314179812147254154259916120341805917165286561153205975414550678881829021810320039621202601870939296127952660646711346211295503542563928728016922848458539646292440462335365478571088276998752555273389519071477976383051540553981142950514605609510920579128697805126026172152926140791612477426810089326150520348428261782238375164178562515037264806150299677297495480084356038185628762948198363686695751348768937221530982255415823469029957283317961828504712771977638872972788552954936256154897644492578889738081059804536840482021585678291714775045824171623936020506070100337029775358260737589232080390169884105656136022130049904257173852389943885998429609215131215518556070259531003660200069722025021245590038207702981841846295920440298640738016526371394155393306419688509383794008432649296393174428142472960031398524176613833745377029021539046311842049311461468159437620589994579996869796995277323558307622069203594085523074266965319838188728450333610593674298719011737600023239164922245070571523657750317166700247228006850310598966227409435962276205695305862268003147466441726627042236167935063808017309353801752908901378225107426339695274783430696357091967273173855278189647290078980743258859971561641756589472444143036819602568382776930729490182405663041329408997591124134931817752320487671322423138631223611768218336829386470458612933401521637175952994388281506932364858574232216811650631375188803356095220588139560186659776899338386769069954535671888836960238729336054284911344878255708472069213683342760442352687813025615510990403652048806416392382750188584630465163937917054787231497718401899692304926347973078544093043619243390095777469559253356622685332045518653215934408345952275587534167053561640874640768635295471825248238279080198795479301431082350542726174061954690805865702418247456712982774365190113996505444644269064121946444029555262098118322012666383967149929480610037044971396640314866325448312056961910407539108232357776209539206865088538442413701123929565729608583609621178878287155052789670773099300055567140708067580464797568328209844808477074697925687883077188570412296833211943137468645179319253490911759149228074485883306033408500345868651045258024641190599208436494580450592457746384983828882743937939114427945645006291590475577507426596674563540820605245464197048172846961945313164268358428972551429902844566864276128755805101654147787345876775503412046591100566078893281799436496645947439189373291300338329609092665732606859500866609508098078101742870174396027071180376827711746149439512774886629177232080034723231696144087263700409601081556787103612127029763555631344115894070836629041124764419354437302116527505727212995665947257540873864127499721032027058978821964734400855253937216183936514727294194972750455603224352409832813303498166648118352682682840948001283642031450276246538260236187370845696881166952754479859236475057835654142896273907746291186959405499095157333038780222060341401028874986403316802393746400098488888653750673543491561151669533068744768189311992295571337742627439790422891881099057996925128488269278596555203895511887496717400043579266948548265541926777853239740069177248335925759594566263951990553398877308975492789171311905439695041712678776721649332927501423714816813917274111112833270406302690056186186432483348001122792283497908356877339952912978090914876942372202690144420927844900942567973719266974100645603716512166394749003292474962682508476659616180272320471669459127928587742815444909010121369142931760158062143586358790386852668892320312715849814698879383482381769898099252084948118033650318061110694470522819068795784241491297242196635127280499236047217112998067476955859596240868461738879585398455442871578555870632187226406549096642860816454434506255383213466347986442493447798349278131140956724540661711978031833837682259249538541053792420324007575835850527997632260308940634862699701249214884926870513649283247965584212687864147693881475563427710775532201353141531892974134257417493338250070314413250410917179445469264035465829959315093307861163066988715221765539993445657534080059752744184615342272666955367253336681059864481317303634051119841009282040068339067707255578509458020907442033483848024173973756564859576780317413826601223848438711064084266321922248579413383914413224688148666200201656760098687853689273261213792096112848593742914517746237237889442635802972956268751994331548401337113441515344124881977159092201831506400414155206665602657257213739279272072215896392421677375025525931675623160061115030581173859141647047090800973724301410256115975734611170956044100599764999431576446509472372391673673411157385620957103150512692555286326567690002225771098958912790114627263721280480746153251503093311684632020209134783064056300439339592587211481087637591915111804845793137608752635354257157076624130770505703697231896563394010913296207100823924382529510127474053304425049831120111813172290628931899657277922269377954675883634599236231045603423093142807274790504994376862520488142679599716543561073000213871304904435727089595888691617326678515681296369549380024211603281457965849717435756986997248576024361544642389363064758593593316303348049790557059259715587397682825039612439698057023512731008363767744313090498003118041829576356929030285132558587147956826859731534149206530953916506909017703748292061363035734138129119019616235181759426519622952637121976859188175665086106638959541537392610434775132145151873167989430371346073177085417588854532137739059790794657381219469365728299210945016012369084670933815102735478590948613942101802758774381906678932635872760988161495888821732654424656232191928461321091412616945621961212335549533874787667504333593638156924792569660302270861949583821926532713048890947496884985348322013007130315805184537899350293060593824932009536083887766699795373430208243372843008880584263513097705400043193306976104768645918212811149131606310938221304537458505405539625695840090471004905377250267659111130988796075351199858941947172844617201871034173860456398683611223620684005377039445413422949398735561182663800473686900515058409246561049766617997294480542674539494130612589030379472126539463996283012332244549970286312529610639477895496311711914848148581096221075897170582414548445969734706697938876734269633340438030008652513291218630556313955081494380389028431937077989682724973525725859779292687345194003838586882740459502912513248506157374710559042313650566789896963562145107529403088678899904601400963637648209850952456706440584802457697393796665472524479220350496676895792184773489306876222925924337639334931269787401547465650425516627704229266874356379265522370501987403906298382063191632090679750711213505646560780695699990304271842250247578295782359169639816215917913437903483835403779304545841089427162786685809839418165179947810254892675414189003229415439890309337395923451045485161864123875749112390527226328419185092586635787162571884327176560697533904075368290600853035196853573770234477801007129839407818677118520637289627712017345158483251475292407789850065939173768120325811750339122041692848225087824390180310447400609164223748478292947529014792225225334431739071455572900369508395531907790803080373792677789907591226415658260300788286005933964243851755356639084148893561920582219832077641037724995880788849132002568726608455961380257948379607478096174795355791610707193054908856250522312276758440446603554604413777173825410387412552479200131135468857206951700034242650681087169881361045447979136245622539539596022276428828538243820760816642695988513294143797969741967429433904234936837323561704155508946892540065176719766973241951663223325688311276235437805439026706248957658028642830579523361734893538247188362151146951045530593446705362755412709365575159075477761950464260374359492747920043776938367339735434788892470573123253179744933530036830427164941964010250642932057377542172317785224886529622156173016907863440954883698800167519200707332667376858479057265326472597237044732593799217647395335942725162748196510380926453366960275604906239033164398222423878898373322752505885895489240292925112245585957660539088217699320248660234629466715048161938877259227599326422889694006181229800928872423195349552379964512982729084413582240972254122618051539419947782679305155593643676309630604300516855251685970190803491402356500113772077696824894647219873034872382899187224808024727746081198417638431653327149688315308594876127147932651038007471713530424851326475747853932765123591928962512925673965934672956619815743149796205313019993719315082014153696583435526894896037008840158211629272621331924323524930465315178013092207772374943418725487830911381197539860134725215760597245198260466436852237178131835933213306750652127448226489083555847166167332046107249763339313730853002924592938809246128122415501886829869645699138041041667056998155281212630458631837359949898412114417260716391180546829391360863322658787641048083418812767814630064673216484078910500157927006772492044712587824645365352203396756763356813895654269892522452931074895429494125619066942822847925243230878464344619639174796427993994888828923239349642691655463254592713519914832600108714436100838817710630695595893676312969270706458439683919118136905470877509679688957652577873412931697966544448214454523752490471481672286440309266091545897224413120244320640805605793264080769903070094014676882072160467530157293931796679254630722148740194679779494180190241080678296641188194636646489190041613220768566954065234799121736253577684535534853376726067691225572195532444027174462215866646572766423685443306201418035066538189469330334481399010623069767346914970025078429308363249453226766647454684048850076645648524402013668367937326997998937432972598105699588953563090637721606507533099450445524482736198817588297931453973759420125729916641919833656039063950521104166967178707322623886201244933769345574061035554405556748572571662744445841592960345748274604004403684340718162176690981421532336327192867417158725962891377578438161443991278068061243530650601672805574059865655682421273013868296477757157935252574429978318816104637339818594265586757472960157874584830696509743354098219175075059699882754932579838189931055975702462689441082218441425126662878830819312791272414609442784457404772565556696720943681907946884350863335663348026278350295877259742361829376730679273203950036249242598963301770883256381250595569965751963847484923505293058643916217646156534755170991431360377485546147108872474550267347784151408694159411083615852316014418162117494084907524997151208595173184054653674889993234010645587435575220443987145651653181669878815143895431923175601978103426490913550004106901595205560437817260401783912349144244238244310869251349920161520414235415222464469023520247173498036422706555282842850484074373667256176207827304749556065472514443339261796767219418008211261122923990806842267568645372505701262407602225259400965666371645577570733143059357125122213069030249478993106920591627710624041338661443908315594983566438269874313087539194086052376462359650423107254090856981935004483681887205946931380928020772112375003066016431523867752070795969127793033261573495060987771544861679303406371250858247070331747530599139202979421811114489440790581437612284103743578033433468689697569721521516429197826623209719533242589532627379635370210316024561155320763053347390533946249423113080839152623335220585356831807832583183408800845207813405169996771025741914377465802480841930219800316766907916746437647311201183067736519280937316336945457714670473086823873008444095232858217601380786847163147378099765757919128608409065901891145572283718268295643286973906157862675972469039789975993086666479015612859789864634368827503309734333089466276004195902851432430119126149093397467499636226953535242250665808229276847462421563682529502203152055456813860140103791867089588656091841851111403918238919900908276657502594241014923385408470537005618127954292928384773143418260427290227706733415669606255564770801085611585926088267568560490527954200031654261684328020655434561078748064039499904742462960386284114199612439292553791165742583130492992329398691491209448211240474432031364593252761108565376413952936356557143876425600619303248988289145293247827858898852165487872497642198209016398378332577358252756115677657067126669244559148267372905082596344218559432484216093710405218348949659247051966767058486096565459199018769333536079307529875192136435948282608846348121066335793037124647807199495187992407963149285100812633652151242178306184659480912630815897320219355266560777486244023459282747253256168527245191935357002033188320565921270039008262860262798307202304621661294203805486152481958271291134484604187603532436317511941675558554371919661091180871549439018068323781971274746909668562829880913870963031175193669284265781491889558909535122779150136225110759589993860744845235798052780322178034224879682370523121466934012637000889577276368900020370029394950583738730127889195826393755597936420842534485337129220301723607437587968056713483899727048586781064206111702622700165307709451242150184531474339862384156041137066326442512718576599488421333556089633529279502535494938122186580883224633327459275755709280004312495767760063348591895232205594488570550790758702613352960042102918853798152739375670398303159537940216804772277570311562554248389339008825940149087862709328389841531780520377408697056276283658774753278803621015575569070858354959680650925969377311685346047332722721090407146954919424297854453373710446164685157499800326976340380929084003222491111934086855278515224132911707146702425269633448751008486178840074758372344763992555714563149998459828142300104009722108280052652694899877805684737026113787310165080663663789401507438917383589081936305990411451894643017878209414610825809875585642871683868088904960621483959033387225101904227116215947694114693923970384483058292875804465213959687281330847410483458570191093522780638142158578625287816812039129208479106151721516403073644582972964526501038578457358937880017641676783907140661893737672596467565977481815187384747889354395873873549276687161648872326698162496294333630380266432507325307665359510355347153546160595604496365331630779833727169800028404487097834333019747979083307868301591155870150626824067511811525800108667668058060279221784270157891332053434005383249116475047846028698212497698828694502946715035818766464284883063584266201304479043532351343902086665390937423965297640247360043436730675588253867557897586302820457013163429885932588928654596395428193446177227518277360327928071622152289192779444981595829439620867961140822867869916941062622046709390094625334041909760600572918525858380924332177035047522138269372004909855940601316229623561622246445739722937755882047884975973332361010229122672631889888491515930406188299093713136829476967109420573864475689665208887203889896204394422107775617236813787055271015515982471421943632850698796262386656597680079852378206392742718584720351479491403279693583740767208196074361875571403446360995495122852404996438021600261950874782650033725732109456618960019565027417804226297346906462760840459141328850664565833538303621480771034175430873371629432183496487768533682399116007437690316832216651009277817715951829207761653733470270984847130065709854943670558375078176816261332581932626181086770983730859764528859539463739741889729232638810614941697422564147412327045004314094025818749992153375887736916692038533034791918367774448257076157987184475588050157442688153424815473074573400830084027296021021126128400316446408526892075279241081217142314154577038204159077963728007819498191319169727786236004358127550270113761343305187328975402258857554805017375479821249968820856053279011975038270330961461996308020238837978330541159704591506411387508872345996537921771831216222631861137859269214116194407399189424645298214308434685718594757915571767078325677944679109463141437248731204075886329691142922746138800179689834866646187080530040100936141903857255282314696162678365700295029353031320564124555478389607130882616793194699298262259111058476770985309936830125009172522818491281030476267088383270082188796414851947356001275574209204668983905187337345708362749487344329825720156234415329746541069684665523494233612439584783548638761954904016797658524641588863766872900198849007404369724829005499049700184243946353249616180244518422567305920362267885636896831336074634280333936317883420698461709597677055294321505056419692716075578865539652553106912710175189120950902694437632052227422890814307095214629876172126741895331134862066136640551350356245281996107873792517207156515061237844109488627585099427552110222129932322641750488268751722199996167217001301331726536895942811057367369008318786361932162819689983147350890849948307660104018625944749482195043792924291504891534162521931923567408890621541452611130550684748949609353784005712950060862943262714121606147341143273526085657489792059895958793853409769654938068502383577628851757944421963981866801591757831047982893837937066980310979513543810369027753845188136105274542718218742458619678482361787121417367712993212596756492896599015504160848570602388479450096969786183845933734505520742088547033459467379380440310262892766808869820328083848796634304722538018436280274791267292914579025049050283693155070506236171855676172796945705048563087229036038330740337046385211687680043466309626147909732604135857087732395918146416513053406088616981567978753426413827588593462394863104432862129852818470670185976299931590960639529774911391594457946395311007325573301372207168857123441308028686686247381127470296416327835427590642828807008070776149689642830506028819502553016736636657675535065271964593425998693546990016406927041895304764020600206910248671282704235108210513037660310717661457102363513609917761465837656042052093999103818733403021899173672433309280618820921445234776723377636876984642296548805510857215416986065011112606258929475265698390557106735694219906164895529376457820002196366672279620059121474688211497416028710310499712081031428918587434455774120373157965200371428245068904818774679484615233946758652426880271540229894887863884732561651833875015523516596455020619266103698992979818691472044431740964089249051542628063979742198739965972779040116350441897675963563539691074276378343847234722218822659526230592954138230342032651670290333005401180336722472809855515048281005877545959298983513569053354492653183724220079965232083988713432027145961946186869920977899077763995694873330801113427619912264630539833244381248273955037075876362661114968743474454716256117699159818800109206655004713443747152974589748978202406770868759248568008574372833424717117611860058653950931846118836952947831079279815976542876418532008881897630422297471060126532702207637311647896602687440528943168593301827040707433091614765764916544844674482200037142654375542027551582891295810469190924122330170190380961935500549801354591559264165951111512632438777489291785759294563651284619224135166130908388847089306797390012283947597361676382013843580415604494170861963405713836024995741612482753399581484075143297314840017620771526845041081561874164218497386148306953905987804399892277199526697093355338847850845730860566452578777714048483911297030974126747638020792422788539939776273882695984670538173510444612418826073475645245959109885919314924755204475590160437736221642292626700534154227063714519930202481846906876611730071728983817544201080157997857242617766603412246949287755988446548555342524709086931525556019294186307742341079894260817793989640404718485418439508554307889052438993050776246429110581375537038818725512133453037745002276222085222706484206226940579736677657738204297111030027201108261523617772342649906756855346923409572502475475287416494373811760482742299793184923796735387290941734630275219120251024348171159460508126931885925221022037894612484689677211077241009315011157597022296709312564112397141458280186381089945323316437136277765884012913662068039738350704075698996188937045513138199194605703585047118595801351622699042709386613713868046307800312160811511324453654803264228925871797779391015840714512162974408463652144248326432346447335715862272990372722553216247278473801168628730033573498606210193048101038591295110489493045993380596230248332170934547609258586485287548044841408091079691941505686179721358871303642356267918936919715783465393666987170779156743736810431020630466943599662064795920054981202397157546036682796165273702402074081980964704198320196299728264607786093563488070186302212015687333574129774997797666385508110229587264967301384097705440459396173558274672433443850874565358697848392048444311196084913924811697608230577810736875780707992873668977463273241094374752918546240602004764634714003533707298229586731789363319320083150589977896189544350398073478865243009750156469032303944683931897187722015631776153865438560688856777606101681819559528461444592223730016202401169274002843271436256128767908482438017573004942874017764558192255799947617929940925794554712491480686773604088470553595816014288129023091073121326284111734394925113283257099608365667519926661099864683883572560435821908678943751084438339894295482214608453775256345242261803281342374616334671577325286915499551728805373178090162359511863785734991296324798794393580436739911804469533974038059883632866772070560652473679885726384017962519190458267675137680012651460128783256405765966526460313654993960523865194584952812662886561981935252500663581900431762288366185333454888294591570965672224328047442697106627829593653702477935642982805318689437316564768324947897658950671268053408667215960961956219368678567231624571674417187387340056867411274423734347179337188606874236346046410216595910474512180602331228246436260509891087382397398876083383472648530018998781637330741722496104039570484345079293439181656600887324322228390395550590903919758572191598390769753047176938395153284712444769703792805028132306582304701540227533672847819481451655440977728265216922966587462323799696320231569728644516089216608349335884721199103220052738575492358404305776580402405613809736105124678873272155806122886331807417290946438336957031347707879185430188291222347489614582173941137895013384703255785144960083762800221086572443614074063688913341130763798713762356845813498454650737553918021747450343743015528185585946423005088672677050699978642839076214059680910055009657321121804782658318061965674329042996694941427512134481358956263712347099834236749967491469777520920463662851361602471520523443447088207942716818426411701289441323075228669883727957497120246922161114160621186520139299240107864971832429947709214882925676888579898848584282431064007834815815250586714126480384084200001089512810739190533530615486156465422241750684222053368510547087181304157933662860926613593478834317450042313008179881297885559044608876263434148514874352232328293277964699519095990438988880893855933832865946058443570546590970074979321071631690248588967450750243581528610214445093135817064345986636583314899933223889596923162153700352849207832557750360648016057766990577899185948650496292965509445227184452984012939472506906807976723603760438272451065933439942534945364843690631357638200735394728638742270132488958456394202313905686162765675410846840633084393065300246042938319094808109248085198440611205389889980074805908304937567402884660290078234337471769399860489315780854719291989728717459889997297506262532321093918722875547292528299397641596397777783001259335921740983030401313742448683827085549182964403634432995533363636083807122498085404346261750658792510294544512915650970876313210239887134980035942180362799511080123283954362572026201171345292921179595823837452836990808804952335999892595044418154529453591845176868278939735791335166018200776259192481498117555740623972856779322446165294850179785837105358788674121658699408010614367015466807418285360990602925342267982175320869639410755706468052243398232429125474172931311320474093311630003685963483933369321731667083608031888795726704015854693815249209253214891131837564525679338298812082932826094370007455448514362650662043370496065059179505174502732851206959669771378939951415163889809905371911914145725810350617633008593423736327914979219688502666898448714207977547657381472915436506881581290631719718010748909252697061887451064957270779207941647874515633965285227690028077928114313350207506238541041685401547414355136405937276405554561220441994041896823988515788083031964335764503364873638493585556031892406600297254190004052723943434288346425441755475253379080224140303694917232045524331812955148521729120199562410048374822237138046261337402267892298540107513577743473329864807776498665464926405855050823582811807555354863172681166489167834743600464052757720685452537079715493909449869914063868455726467492227197624100414265719154461854202749488269280548671251720992639471354472200452608773418114943951742541741328153646726535559096507871540232365177862203007457725793996563340059309976677751468171609610191830906879449444233948185351509155674416405024002960692100920237712005865156068154630748025285166098231726090763801071305300733262387567571733981800604853390898593891216117276528390141653286227672373056510535256753264645840105961043416077690518174071893205479621442246975545231185094274919285366722645193037230581411901870825310841626019030601750479592186839158648596714690597606272584444073762391272026196177778177940392602302004846536343709078372491213865913894711167460936691095944618728374180143521625033503478567331926952933353300885787885160480496913805585641721174214524072564508754346927719064177054007608802443917374285208205146022675970147274008323986665975339473424481371513624776887016513003061278866301129783458016675573612211508377502518312055291285150478013178978677528891680390010564047936452895750141146780015607397868799224723969714629596531717824222933853938050222827124305375007110709754857266037879974356865005687476637662703081192432849405231280514348772714386662856347081994507922927708088638114640498628873671607029001921183896831084844324909433659405272722497781855221791576403557307410775322914627842455878499785771315565378657794216469677278552632418923130618244701488578253295700764367487188724681367428197227372574945812696367850892477121825750022460594214969765365114592763179395154863595424820868085983736493967049659805230376183767606641806338316953396590170829673478221798166431091331071878463263897252376064855961306117130348135407689321930486266374043168209943294098202026571511546361248500187308878798207247223058402378850993561203667899659726666507180737031078963661793953302252718240651327155657319185571000315427285627433016354279841780111033813975087528368090318584998164060047922071988170354714968250261430870372785606161196136913405938761346286960625214337604544553152251791676043310225988704835723962383731841960327185766996920111802519624105009361788103643596495219800264507100216100124985540174246629749738341606045716946233028629853762510163136522808795928521379911283241236054703713701137922260230601050475046055960602600316221604345788526021613015725314861621572229194474357171328449675868992135603695964156214986775931099589597999957335549684548966671548403892681118375761643138969784933846772261415482480454540838906845381281810902872477483815293512281127262684881851881849790586015558285120436819436210262405161101333651200546835661296410522678182338430089636807199595928991950486677305804999286743069293070154051968292981055356637364159478127781038939025087799998133557444564441807081613962134183382478777457738313668478655938373643727323929769319748605177743342765070226603967222089858814479319356046421407286800853476959743568164043618125815165545931414278688952536973801299196891499866877356073471721158872160937308571669720491724146932487980815083884555554774137881456285624849997387398083505920315970340314703501385861393532941974972585933332977220038297131759839343882319166345831685425337194050305142002664552983427339393213219064048916217283718313872133038664409298582237539654883008998064705064511250909433751975504678113917118096401834566683943825356154641102358630190169494948194292080090014249659260505419021576645459824746630528774642092652097418970714319014407110524538248231445990110743802148618351028757548613970034099580204184385988001284841614373270185142037010291866694821629962919994545669717997048653267632923440759569801453156055644858238199738404511573888955383062527939714332907443013880571222847874327807403628912622944026570260740801005916641658569126370013631146465053550195690080005771072184431215308842425450627863679544792031854794499118056218338773582547421009397655514205337308574966475554321065230944847418710021749967896066920642163487710512862331217759882200518649254230438001896310477276287312905165049219107973601411427141113920957278114590496261420293891748504850799150664666293691170030146476909727008615536544163547024537384679564597592613392431881876624081372187055513471665594070500452437882944584758446069839390454794071963403879466073366212637152426870954371088049195420524179046348050861362433111149766375440917514364396555746324592598912778009119942843253290650249073237872071386985144884404352898469001690335343535640329384707644194990905604698200075847114349823029742821285599363238040028586165974439282500547479559197043673235790670652533776589446158512916336954813276804151486932633570807286125921762587628618272628353180495259307602090660940873559786513044566947457493783017308651403924269195293544679837969202869276319433983476439719521278690190211952998993397553195869054169627033220905136199502066696790606200406409424306084781642749760449777313496554842547363136469965420349716385796081073949494339516587812827627957376768061338325324196484629908260976960228646421263999175172829173769190957724450053754209256725735200030923209485550370469232726202364367613633215761066007582135476493802812530884499321121265347614246244773849634071063523181023997177648830574331671052243241850112693559353303011871175265693067102400893503218276486326974055825180401679310131120143521744770144080077720773264367611113095518807674613448775568426519001657060375525124966956522731977127816916926974782183280816084256251610145903145320320092749078843200628904278399517780169308000263816732652284865867661435527846595282670985686408696206731233622044889283689594433155401933539438032246079781116550557506618994711975900645041653279211960367241255962660242784641902034802105694573158013989499608777521423646717995300953468742669123974504894428719532012608361000922181357021552039855561930066131727448922799828267751707690660607249079907221540336717676940539061000132811269305118760145293705126656235282361788116820024056764631183873981499470166059461835788400377421428634062534432318431677106245061252367727449916312814686710454842559445070321772757791638945804542928834402504884300242676200656117957540700189571202816897491053306013364900626393583947463619500328830474931172339948626995295466309460961340485121298186547217078847085274125403101598159834726775711379304532346034926169851370053528963543348263573799291150286548616343161253606390610207137782549471735813412418371571616493517970998867360626142582683536362022870680777171846928258405425036059195060544171398637196481542979548321121034393201753362144251314698703062822901643096899752132056024099252565074663584591476891915300428541862491946847203864874275833474462753138038051671626876519951502246975728973695197328891010008155164402115279384153114998248665892817194070120210494778942596809639170713381640664346459148522786387369361586363607119253905185329390033580967842566680151688953705528858506839098113423953431057052587541176988497439557423051565320762662465120348020632136366572582525617105012163005722574670675257883384959873627603375219141602499213274590737557716638928937134033204341141391324615408167533363129849736616531289091774655783850858565359692968271914912083306281533384357074073983372832570697944357991171201265357799184153985139444293980850858053089791503103540808283493928523870995850634723025801169719838556798632463412018865553529769060089735356194537903671503492016485088351534553736729996959815309073937388625634185057543329177652094794840514713500870159279314301826408940948408047482944209279663446124884478661587996293320536836144686331241637529232139351532326034776157348050463123182775604646390771879060226545145291035397694484780695552873120173711234904834278098762758504164726545321181945685810299076896847915179616206583186410165007525842582096380301912861052033179757092159322142288190365188985396715883614890275087763659943368491596799212446069326232105845567969038784529273590493023466990717577164940172153560797216017309926662727273671468260995765536481108261071841569072732566580683803994463050855769714614240052082956529961885764079816423533921574737644502382970284746290095619828012230241583252262794479411290829196164440571010649235478677744485765189522854426880123750336156286686942139687539726729833705925931314923577789608286403959482895346677978454132878512506202111623233764564335498309305469904484400242633138032600559437881910566303159768940948831835197540725377171173760798430855893718703323395713741641051737101544336690755062626768206728378607027168596465628297091937493813669910596919847020614815112119859655217839843273060666284637073703271485046263465923540347797741976689036792381172244171785423224109370091718411989846437730053494265168378911665713611594097915887538730928904180093421035017479665101679388583452412281068297795554566828823134754920541019655473007489638627203834427179442448813897514293168421046423115494670653296435811397743619574472580797974198047300144309355919589359354728298849419630181744856186066922944253366499958817168091495382608643825302834006685937202198699506319403598282981070138829125267858848308674588806440950185952094588460501133880501195388414099281316983496121582460869117032632856134694953412908725427205191197202905278396664966423481716762899672971377202058782494504331227592741442700166235438528332299607646775586718917916670795277803950289650887276307107004457220628651624513433094921637120984330595980140602699786885102924060839357792964153176246328192308003682838590887958171292903210983502819163745697293967521327272150427470555032878424953974244954934223697156432000333769854622822202613027135817251222863883711520233878861272055667551139512321320389226447372756530425460240178953892430823258905240121629145157337047910288652328421994264087836427159017420798846011350533263314325222999604101041601577951944688998717191843463485760997082130720824870018111053208860181608800982463050400933619500664808246300762851442652386750600885585946005861878600962515448885052286231194599062086710052369823847650299195059192007899807317374036370285353900726874625437644112957366791671297916132055764929932844983508806640318855862287098576227050643273679241968464425091557736930526768498353361519929538866721608177593023299993527241811681346204404962329641767009454659013486021243735206887023194043456435907672105111213398540536328227838547846474478381094087019514282802225677206914991768941456349235828214897792361496816286653540914661794752590235564111393471814627813926570170997334627957889742100773360472713717165764590097455667781141860502136810670443310326273913653923573072533324038319618627008742750149382666664456586628534767263015465555716901420518472494417692077156183038248092564384817990447695789169239013620931004899099314427101354611742439058750838229018736780364011246527825469512668509623697693631333930691590625367624385500025042163701147074355889117235678760655543864396457644649281980016522216115523860180707078682333978743251814924766563888978953761442190147352183237258547884308786678364337462588781187117201383848399696027544660476738581544457447673578611876665459989604016148668401172982526529523593974236714491108978401985983817433048530086325444568593113902920081928758362826784047254958998401100346510864706701166988047102090563783795938097764973585172256501201670510897619442018508304939084211988029362262574782681847041888212856557391700109689065053226950064448634707760477331329133174348841549144690285449478393527500676384498369286954547255956548063935477999315240596238540464891523314870094301073979373464972109276351190362481722588311850802884370698195767485339058242852852419427550660435657879260314897461564477517809501964894432118651768620635247482981471851672340376585518568340654729262781876300161027275817554510876703529179315874886729454633092639327295572089807289422757867080250163132761979026640278819872889131543802155655116926299013560353588780456517579668228001736594090761851302898373533199705759151275842159113858614930863487224580132000448879964987366385531851470923552333955515374608219545354014483094206652213544677653707764766527055004388267300548512182764604589801979198423005839496986702569159189863436834082268676908390120130881696627012207361450464075433798216333528743961461095556121104021382504906112843051673276401011308058010904209954460817189800707740666972501943764921702781336584153880818604978724224248725991837214344384353117262261221630236921092807154676410604445071334728896088812269745316682096900885501092703272259452969082487537195585077376612983031329479759589810154401597375476178177625129157100183750486366182504432830148727789073264695066781778311002326531075416578951652174148910170501794271485182551978163064614113495667743986895532899811934912410580006573907069214160991851224405230795220082300543297256856859553498337182075645026021791853296552490725816014241328758563896288520416015415386840140880357923176692216525019222647553826120582562329224542059024815114459337252242351795554297655531024022877447469817326977944237372363315543091528517316971710659650652735567908621890484195268296845802227138180831889922657142004132035751866266905756651156844212073817011930671676083903244746710526047689390930564416039696661052412370197538977047560377065420210436553378107835199270561353530448858747763476999411278341498823646844025238075367164930726895701567901546182061146069035799536638942822832556062660843342372162697552911435980690689967298761851963608829907336790962356802857183349272534162582542941234539283784068444884415439456768655570830074644319022940179635707973477947734880424045217068643083420376051015801143221194358533484041794245470986702422635354358174816819618447911216815833820236528166948691510855963486793694984989993477346143408746555219641129620387434936303020539244590086786595791882162701238385877459313568974589701190580685445149432668867581918409113445936648933191621131001888189176967779514246688424744303267282283458928048657816257460760943573752801817072403177207711299720506459253249804145367860221206076477297208863318601160956767170513026094576481075172774420883634719945387898328902904196745855641277604336851602329749064001814886753260029438103972566418963601058296786607632433027222587431538898751704454925861133834834759756375216701338444509756641730100201954202723305147716672336269255669310117433465922941811354002983158214941563296561357340159465234555622046737676250667543710072943009683103618416802406972225822799480429960226015821716072738291842803684136671816110423531037290500838637042754338440514572987564158260697182166336115350545881961767653436706928011865567226101770588964267268511753555472008751161101715231242432249056314815951009059783762658125821787924326986708796705953115630656228114622871090609409766490460750774600262664354640290387395718515927222487178736895757749383518931648535593100270443226236966081469102607048924274405787697711175209140682686228896011241084401810779581760298427876631188095377559311355752728536253021752726552626534692229809126289147154479374112434503772871586290191717755674632912055406213130246472905352060876177150487564793007002064691947810335446141289716886052993641857822697191482944974791097952903741189517914420015926217655826245661198124434729555752367120952344838345842332941626136147976726755551770245715070123181184681886488144626360491939993513527496601902141776553549430401319326206893426256768255744201429049206592939566051403749146462379685978748938008932132214111800182824560402279053906255377130643738908940449402026000435476190326496818795271954817425388566484938482332838700781413988606578301290987199381353396774281586924405951971841906315421176009684513975690528813525463209519221071666590094807520131542817187430783976136444700067192054679051368540312604079172380229238369969652824189939690264364662754940235180694681308719477954272838421720245425222119986644101602924710787321078247903676568158700087715854675023262881213215722662921369606335471215139379546575031289911201019410754586365233910377790183687663176065791947480945965973736291468876311425116393155483350324171561188149057026050601485085880590958477542864428388554326008768804131913809320238061440412874125298109001733225641027546300723361324252673350460209112250611859421489026976474547770029187793721805013480396761095983043295978192328165418713853284339189890852662959058655736685348463006617628942552191796692996437282849605627455069455256467580479620828133619090312785195061011757628275520873956000496253335717304038669042004836137424892414444121742228054258703090440326535223497524162433028355654061606679131594182096439978278845308480435225337527587651667562522134038605423638645343224112032706594112792857751273808092443155267115363590561246072049992530430496647081905627496777135399494554245428431644104367134772905857691623039995082924209950249742178317627462116015892392428207676970620802989900105325125206859650796328896231653678674633461364018228200405406922753033300891105540451760781619094763226896056877782109612500480565066028234590136695183462858165981946821637664542705126301496725314790396704548540208002538020444826130498036714588733647187200108142747910445742469229874528285261603587574891532466927403826590585992116852437384621685399928401419879734313871413246025078708448708673119832018470054621698365528138620410410371104996059563490112627099595543296427056317699386420910204320468462563331812530683109353761455864926056555002754020052287986691646963838354265865962085942156128843383780132556645332936428821440488148609032274710183141641011335770410038217218698063673856611041489334905376891003570407936469795699999215562210463083108736045975278216665012885387765283102301087987573754968771221608297831831292486457071075614098258910845202230475932349827542089338875858660695236306386336039430419746227530511406456411576342080770428051907286285489386588372220763387182273361245456393694923392022140245846376753798218326979271968963271913121092390386952532983798391628825839333549318413842726803890721261817388643534835523219512001345295428334409039254039920090128699075596093355801755817783151873325474167125931305022155778936705278084790415264534605949904121448103487037107553272472173018388357351939626198571277877523778085800335192302556863884839355700291701848419661040591466393501316660885435852686338954127564303394141949129628239350432630553230691208505777968940239813622267045309595218639243173121393885347439592853027669351567225599141206161339604471829500597957220507520587789761457001576505447497919989434665713857705671718305059876711962107161377673761155946670189997963508459997049489097037813985906473950683345353481263496809761147384569335014830772292485124413999615383591042517415603730417931064750560160323481718158989827968978966073188680599793168927068054529932543828821102071526644768045780942073513334981511638217491745460518341397897756934794851999387669098970171523185145431093006726907723755288980426669209222388650356723971495467693348047876590393145234037218862497793496224967680265385366759421342220795992768888258535858533093921828561119478048273202477278409370067034011377892909769375671290818728191291588873869616059934480798961885605614991046457563771433479441360503859426587564465241715994082285736149649537533572724570830217544901123882681715243693496678753765889817793637583717695275381390078559831962187398113345245019672324561996881182155365187334289940651024607511429550813192707285761145646154042359596152947208861894482605897694533227248746916964154577953936027158582325481941344765444052439206909524637976462257307412919493414596040078063981446235229554310225030135175850317348699279197860607039798462662335844440125103652729980466489020482995940151037803054074275556861714872958669327829140970685498990135152394003052412102354549369635745487750494726448797928067675783191552392927700136243523093626786120111614768551217348681926903096809783117369351058874131330461432107963490662195059903856184698046326133684784313673404214129123791678514352773374880886677737157953714762489505661595713584060857574601442274834504180556410075480628724978831318719481000799719717368597936812376899006713369163995449833031469853211209416489718208240638474236772063937719021852368684540045225590784735780494314336864761312124471113355866046155061745636200754440379378144527315122686700097490504079554983391557609893882317630589894783523258944832433829761499690267540267647725686449063241022943221076508615789492411416338969366503720459574075798642157316569214810141505467346568755999247653425186058202625763724052117107835852838798192168885848208640787733169590574648382010544672335311004380110663884841080161582369606764367267419806823282268766757189889986794878705336189459410975073797844607011884013042580309846104939018434276981079479694690227809090004706515112605787009113951364794898369314007882626450888473095142474587850005825624629325179054952853122548191471384833347644979102894217149490050442644515976260370611780425594633021988560407772080851483615000412607844524786332535293129829232116645236138596994821309444586670532961694822742114704530390088424027754479758132981718960296994668083772668022040246152496716292708385495383258036209994604044358969303258231996114052720177880740685555168631836028423238288648227059579626272484733150509135201289284259089462521447409758862869560129357860217417243839854478033020425213156496485685447349811626688852116023064406938132091480940720150805628339039607700649648224879156630435099904086135911796748718136769164999089069311772914189315562364657510017280601715163302506423362869121795660229061976542483454574909077609190587475522404487986709769367287673555173749638960312742787445230315559563976684019972244613824831503672509423599169756237436194703685998958672483351674235177753541835689356176654512747992125113014279266005704702050072501127124015498028871105842214150221511796883299863902749047532774880242877164899567268735054153459944027398229701532233007399590146650906702430745676625507894657163941055951176783290063583245387014544277840788367222439453631432448712389914931504541760638440669250476308856503006122330777998618929320557711831318786906437274298817780625954422854225773799617735470845203507369589506174430422330833433830161225010048262124182557629622099022775495198540383868029985122852656557565876158896167578121827490203955423279489022554123238763944846517736288853608085153407196849562787063084343077145964445658247747651922633623653959982195144862540580899351212668946988448105270284894951380182161547659446372432972481338304636008410121312690721200299354065075960061598135271698108969028423537339113414226594807697775327129690572087138746573192319315793737445782380310482473905027236478305879538537791482941696095597540648704623824764960712125339009491056005330753906930985261338326506642464074048176258393772605523845953757935164298247475644311735007115769733281783064794509197806264321087055454981255239067548683558999624154937283555829623542008218908375669049126681377842589031195042441279241890306311226983150112999616812519456597112853434840384542833546391808495458093361333313994606856716871090079346705015076240756648966789792712286888297113971279469820132613992342192730448458669646430481101882830888941131677643193382820506494080911273485571399672496168136555814115065902696428242790718233060665651773150138466054682748335295390263370962346010280679963739723065855505728686925949548028955830230503850161347489555625035424062580103092673168195975990976061294079074294061590380468709231645013484311935474897592921417898950993820134964290168623346885334913244785107851357675078329139446436877651176385879733288541600458270239117762673889151192063001729514959277635633113905316592529521597850376229930383647476958325095797196797089597926204412291836669502416419563080855759408165839876286810010335510395481418283596477280445340218717195238272462391898616995807978032398505866549286899099782818646575023741753110024845560669245710928105345698793053410476343994122394372256037536370066141525433957043276898299057281614116738434455059934818940884887543707681207887025596444819529059936787450190485245960460742166308907211455675788226416479084163791690701174828358808357739040037940128672490495667527465613469230398196321935879336841275754294506235454501729148851196901531356610646523622577053728336855463553153350236802833155253149112722944312318360157282882474223434459775673195950787804823752646634089306514657228769210494462032717727083436093984108594801985143655553433288192512424105155709387332317661340757743951547424654750381511525626783466605012579869364352679201600464094687108858510951756294025137278496697018885953257688972229964237849159033883395694211671836625604340027448560463104816111674243555402696478843636554667687064017975507042045477363064860270241384167080890418594342428756539127045848090951639288328945682700346517201925711832398978070608743892051311615620912866920859665580877760048012345017365120426208972191516768044093182795097965665114446234218478101808506233835520848919994957898950509595436006907797897045668387892118410722974987386516996337883421259536168497043822339748322921844045888573179028073062979028944280553997425752839349401262399400001250680834690798420815133463254434361825934641367774908675433936188648072342877296819836327191703064536040817240443786315623313800971754587051113994941216248851907463902314670766660887740147979159135756291176309091687919652634177793786062216541276201669990918004479523698897972807203486349110468570056151174672559276070780201924352735469021888370223193762255509269313171760954261971570924345630225100298775860910670144215820646764449264449570474741629435570496567318094121084210619486915685464287834120240819365515406833975380771874298352913798902599128902556999403584022920191927312990624322179205968143804365642444344598676018145806087244128448775267079970266704903886865746409899366689654818686618393312889676117561238188599380802178577511339079171903637819339981420001644569578841589168776951883731157092221938447969826449218061739823348483754807108272863141509698658709602802946033729472776713821427228377149728747050241358463835462221775844305183063653020161295681713819879606560616478538326430230306070132411116805600192232357406825394724230568747589206816781431174864014896088714297608730719313784988804078721682274049706093420545537805046410550064700985865038659643070951042259945201010630683694915678016595486623455632637892424405710439403103597702233411987304411570685382076364265458296685452817960327690301104180382078073423983565548576725782140497583185137274218552572117899352182132236299507222173181571266997769433502344605729453980834695598583762844475958900444505180468475986141196343072333029885574178821504849103879248834178964347595698236087470249989063144187620615282826300512928347311960496225149486705164094533363446492524358263838686389518266043948339322749807751277176093918106139486540749482115433143761737752460798176315239082399582369203096540454357238762085673175962639038189742609717437530951248466263330596210883363407263207568651996248824418227565835690387060850653412908153843359166803358106193989962634218044414208694687404735641334430799124889755881979746341093680648342806303191717302158317033833063668540557566158498097086013436477256630154304798463109621926510706303791401458461892615960663696414455560410239360948455159022132283793455827562692482919989929285975826847002179041197331751713338522402734976902286387092349380652385465288691426065000690201403427384245218261291827238559638923779184781648676183396148165609230658911228267691995873836225092491637249560641136621621634165105948004864203803755671192338282717640889073955066062932811929050426750200780087056370178782118199703296485984887554132542690723740000933576807469677354653611928693985765431748724681723459051638511007881509678127102536528611698542692953218240490167706861967468393269976407451159884257587747475917345978670559321823525342558813847360547841061474302899311517760918285176290567129354268872953544161586264168702134057095096152528371368001543630389587109106582820521645247422968940013515864873944119793742419627225787115289199062220283584978546478078685223778523428502659599969744261458619215823717984898828449041585929403317508400205329001020155330158006870785600035238921734491269012502092968258380098967106687446365995157073045733830034405423747952969647547553280383331023695383406945033546199949704737943243882750330108753760075297786566684571707036530551869285218795401461192520047947573131719745275477692449082075880016102025806618728134725709340279621945735287358275458318359020321040955343116234445146386973038602691656599234054469268130676048876590286247352908465694650983868460363111015916965962163364613686743445853981006867200926227666963925284225040346204046447023314703584016416180990167780666320062744966662520059205839503550055536740872734195842510487286705243493790141962621728470511792372016904121561190683227689491264704318966528689487616683631545012082742449683477009683616577584349612870232260373959107814304210173483563814183651699203615698526036726460379785260847314557664499906077352234096512821225686304222785027188431836491799886160209955161255721530827184815776597659553157765379753165787338291824988965511160101999836171016973468999975318195786804987533535897137997458604837857456877311902956195555143801443823626220722092753378242181862913704482695730572919915963515678438430754489392922877688195486590539066529860858201147942692485421494366689139031587808101382643337607082427547082611102574713021100269290311777875046997807819525124689680880870170202082447751978412124891719179955362794941986522525976714760591335646711514513899935071858111214926885477270226816707430151584824597348486504752690904852830342415781989309910179618680906337035702206127085096409019930093269592859883593214831632046351475296408043942588206920479571761407231877255487631826330065019955165149480008528272657709183743731329256883103825674449477963485760425371274333671377255078968588927037377928017731028518787904579404638895125684564729658370500566858004571944688328155137369362432668215513498149516787306691508836791822453816346254823292545527160315732979111591550829779633829231745230868647594410054828321071073748790024019699404388465472679950996842858591035364589201710033630779962045022291607345553587045206917828740991427238044555450174652106077492521943017077717281339472053522175569762794654845529871800039978241109559500766375824318949193618126201945605490330875068320069699092871334131378284590647105235259154949180342664860147993694452500095015075154592307556601084941976017433415580148283688877617509219894517797996154879989237014389251686637505713444329240774707148186787609545397275931494706922371910737007956454574514057494470920688798274020057413592351423002776824833693621932180221506348255986983383387828405686169442459197212042950844687777802990595691916132390133933315827043971697934959713071866123425414593099781065186384087305169418910060764423135481184489167112892193014239209371344051111822206733410341924540931535686498919299284671762412287054365739841172917783833885076715870431006987379770201218527689504993565782166856416268091792215192368847740334626296541698924449636898739705414592227520682021820555016101214584486384857291525334531296160195107009244300449223805764659215002159636534056718273071179707690393450710481050676549721136878072524135704239684809710757083828666143124333597091499613348871340586852632725836094940564503006208543605779207369952239425943215410335393244797948995290826605578239017834738534244998264109732088593360964094020492965191286995082239300251541131931757111769078450514016908561429393978069551773330134417033755044935011970419587249133148432637693803737142036421836251051993037090254524342794197034008270824658619576249903526703287094387348378666396560824794362722778095146098674254555812789459462058484588131107075892239105428196835482532197750152877624339582421664993020092669570494664946079657362889411313780175135653942241752251430777477871411330755789363826871368494415512933085950158906117630402069270028838940474945501657481702093561003859374593798386209932738270825223955730849877173049901963570719045377476055141716563235355168037987691632936305426792752762418173247522591474816660181961829885442682886339211192357121700628349830584673551816052411282619968135831248431820175404968297373395892156779861504642784430256708302259965767283760926655879779661949854111258651373069541793309653158761981273529557361477577583245817115062167072800294383361320788110258918044053025491250947140495176360044674495315699690347430426098157801061010116178093128548474793785856305258335553573300091235358125139780564214433915073580403072145155258741960859642513914542769121393675150316128066356183685675408886366525921660829653101678340763946859159836318660853190708592946357956921185273438079374287903443568863733799114785802509820353673460137214137753171470034946186438520182370192949610832040455857662275608522225163990376744999004120609455423348548415054136489208935489147731882715974606430379314090727324507445693888056842267498404209145485062080092969784902368797457293946751904669737278330080518050861457251035139140881011540042834273915377422398135200786791988555199097830314502688516009339031606416647460236089228257194394419510178478084909795753427340944033255176033292484449622315188940121792807748276588977489849668312724667903284598119304686938049791666153261549289391054695957576414262491623689560029831754278706872346401219458974662023801434547059874051187860670354129082538120153106614641844161420939697763450967068575194874780080115722983285141692011262297941422027520471630616250283806779339603953117713321879098074445056917684884079464643158283241114517249924542378117959745824024114439471075483975740833095040500423812124534852117233750994090474770598791572904674694638608716183439121860075765656066169028361792020420379807481606413263707047611628917807472604313998611853518503580366240573871381679341630698381629268512064932905159294596816608227317802531252032841811203104758437713790538086947544930062287453358590650370503422539385474441809915170761244347054362806451981024451292300708996837192564429512697330722365608890952538993314439768774724011799814020017591268813199958399226252409979705942516660474135092349900273596447060025228515218912047004680706274159603156031570065500562694389145262873632535851774128183386521829887641864962148020080611574636435212023223813606923999912373276278650449758854271974564748632845485453549740733448993661157328276455226550153986804180056177190743515489875957515341727100370256846347003119211686686993992629138626374860920003908845929083067952855177578644516089097611751926364395864767689739866681091195535943663544434534597914799529887087942781418293999731712817813133758547349291206178876938320098350774249107837765957790550677670282224951880701471128319016308180655265167737190651943233671450571951904019418382978235020184667708441313964395953287856147015123713992243968294414419200126961372908186837070784667096305711218966363023432865016918961088472948962970175526979241061741080726871234360458177921254903598642961395514956125225048512349556448696828975397102001886998373289461711928706687779349668961156899660134143679863052216081660527235761147097783214796722136086935341127524639535267904227371102091706891346579600296197887353927005217108582893424051414738782437804800297245022479141536176628783572675321711318460715744266133407029313797520970021398850774672386594240200776770244975664843911131512021977343383553091575968522823287092004974293381891538533891515948313169549786309698281304618172089382872856637535836084045749498393628891869965500326248130154887663579751168071762174940802419805738211435043373695679964674978061738720762694019962539485880683127215448647299163166864591627343539256931378924295637247101318062881126593832554441068926222311577313939254324045170674098645739252022180456818467356579034515533917235581471691728600357166142876480522727290440220891076481370955331325470595602205963524519541606705711202270227489850272395356477453448297136915975179382519213299366750126086347033880935819541865239809065608232672966794486610033644935602241040818102845572248449808702184026200218061967236969682691658856879095648537001512215828067702588472001203235450666184317357262450086337129314329266717464630989646439695717910168451142736040129364217162881824122896242243400378603995822919781834117614207775698716038819685205795394651013972390339043525450423656239746144549773156877287174693086928157488044027054254432308612026313995357332797133246771490299626086342968184728287260051255251632995546415306666428657540727488547967324764667579923881057326212277841051360459833639671555469322436100703534825606858731489843463422127279633340046815199056085783179202340668295732178121437457182255119804489759211258191088893662449273933524984341603054285346542416566614405494455428396129616838900925094111086387131426726515831358840372502225665641819052179195198344023446616188063709614154983279395598606419075850922314652861014740579052549758018368475295335827276059313331426889973841197706781326799925323655218667683936470391629309593225333687699680612753246520452022219875413190988699695717494303336429812522668595489847216233523867694837315059865631591769428314832554472139739999900235968086521354772185844287893713837293198390888595946671688226840396089507048261354022006564070513017451394883371223998291382204988359554449193462626751719909129156374503334660598580633357295590156698531538296707754935930841011130504030125709758622288542370665559500960447782526103966779851523219962875043534681018882047496545159150775196031396450199909404458274041664867337933039358724185551504514804980113410327659985126193941732119917228917571928761542272217169053315413815116802437758631654640631022806195929574739574902999143109247939138615164746893849910896483320532179649300762087117687745845656245229267423552445744756190769035259248046768155465486523359109849967344317000631496873277625867269849242236252794921533261408564417248622021233504147915312840632318550906664738118627282507170633425934981945099545180248508861123714414016266992572299189835351575256161673687471110383396944304568625060925832034107553130984662650446873612449296670981253962978203653754760851232084703580155594565287880974590431131660978390051071566697568888052686217204817524804967926542901049509343522438197682083244468260204982840087785749868098065622340965707908886538944471639610568422180669753670693582870906693676774678866721986064694409253104896454231644095423156256749741984746462967159069969575461954237125206981355249885505675203986832809223764728948975143972676184563307658918462100207147905413716985671177752943506442776172112107103306673408899790904080583378155825490581865912394688555090659850645806516271005417725225337508796830361947395923788108929291475016590996246935334122047837050734526401406075579309761179344468834951412694361593582270701274819805655847071007685543011089079021689759183542954661416302232051081075136320208853166420503669478326854473907052784235065885676670882189420522167097263048242083482392738343329582176230090677533132803393808115470940158386509958482368309022106362730389414613827319818329938613248188820423487941311523189397737838260257370469072143464494903622274264877889977290929747279615226364112134486963500371403346727891053497587793415209021857106095532411232775945494932542579826662940832908459931484767106907014994245741020664519314210698870429042908180032568845468702199393479906174562119875174972254748192471746194983288430319685329542353823053317720293530582957925761268888609160184671766958512661934055395317860742216285554282753049523140757708379409787959708274968678695205995642821594206282941767031969408954394153684928106572212610035698683798621321614705846237873857681584638396107288428909783880940488725602554374811019696057544682180189786216111720246225010527934057429104392196038633447302862338873908225483200596695286979336028243897095402035036466955746560053038824842491801120231852530347755516673646275840898142569387011391555233266804340269897760037456854009807318840131641145299221225505039959251578073174511293496385866309194498954262461802730450830721892583434778769229057195164345664674122754257721537174112591789311533232729955586031551227597809180311322517794261397073935723673621231935235379635071940924197919017476608372785712993664257070132857851156672235245202981804378347119784976578260800448737992370503091735710740727444833903911652060879300119722375105587716929928111419519646884431019773961093970642722300871739664177963121431895755916725984516292472306010687764711437664235211642790921747077833655959433000908909594031962931998571776026906532222383961712727240998405311082983412587723956622792087853187433817581714728144487720554250849797101141465435634550389852721883264441827217272079940437611359304565936610344024540217465675312939520374553062669539535184651848541316832180164416662667148209312251372116336463156892547851344386013403240170819704447039525290960718554881635458739261407301825669264262295432439282599052898602524082694720922272767059001720046878892683123798316944971467843197021682862009117161824175512007177866760134310719839218000224516640925759109356108729888583494978614379835022186003268638455917590185920404526281482549212658740446611969546674010298972169865151814032963469564641517184050638797328127102703704337377492213036148911950606329621257215553735019166054151779717499797351959843631662860550889346763937992274215847317401148537820314645454784542436146741045179054999482224367242047837080191992877920081071736938733038530118215930040323097486329337441917200199155038281230403269336813375819558990634951712744186068756968532645406803759713432427232753755755721485122955980582406708607217744307031582541677901057217153988850968444843458509892386723974199797651755685626241477581634016142575840215760495177602137407578592694251495974529660681399687350839983100369563305081391872279261922900945024049041400106350088856708813030191267088635424414080675574165334154620429397674186412592203830905240803432668454466628523110648309603664734195931960206888068941290777448585143896937724584053942876010328083179778305518647441588303446437895576947566648556821789333848636273938594908864721004174416258029073370367019331766944318425605733018731520511932406767095572584293023566283464758756745027917592189080845006902348238739921854510113464619647418500130011870842979200470947819979095848381965960338672501994689960514659023133001091782620243046451829104174333688726737138283012147443410191900723339307929586839527361468732778410092329268728596001308398658394815181655194962863425292057630646420574146875446183023986634024499121772777320379966900021085609033528896717216630310700599133583087609577330413491949905100113073478767163330348358238384701861153309199136310534177280458650241974076233017530559056871632262929298628505084417456854938536752848721927737526711089393204060559272095054430885843521422606748023553593171073790483274196415966680000729009506234000315267518258712907139195038335524107346646221071102016139498725524825368250052575319123617657227404859132942478552957052469976416342383162069439610471753987421569870218404281701179685316123131994714016487041842333566480239389577411046802970600916826252176352940878085049186184660374635345162402800769304713241330345427439479593131518337029076869360180180395176118262504044733269497122353891082798175378058274342419501834030248065898481393515815995284425218075747045084367778254129005836263568121713889432767918128946051063031074275949974028493084447987421282848946430914721739506997625842474425379066327442929488066209601607674789541725900047165783703473816389838411642686953543620142091719300226353501063370855545462486400353344433906443665524347164592921402345645588405061759637081298662945625367317092069112890692558220300485724357929268806008808663350803612387962234867984333219476155916906917537115838609921268890488304264695870569366854242069133097255612849928077398846977631148629183177036719422967397196838073695608957497699715162732094154311971816355118585119775078883905079552156506504282864510977716634890843376602186078825861750687764414824601924805319924152563256411813364117860984080799054322245700603535052826654299303377771475477610247049093626518538000439015374348689415833041973474549273139584156991067592725270995391477007817513934799679454934320271147242481159981555352699523149865936903151105637371630432322880435999150895349128894723170024857660283982043785928291125948833631724754612166317046908444986624262294662767923899687825669386352251355324819692951239209434066438063231365433335043516062889895521020892647496413875781173507944473955422947786097023513406119103871012608360344588125855551815317685191637509763081851390622960961401722070838455592593275350639057110264290695826095348690858379442200508301679506968472452359871073910851597764175593166196486080119382145282149087555879783700734521810163012608820736928663081968197053137946909440910371584034132444496844367362199919974194199270784321785118112186263626689809198780804595972601657963784760468540799210062587993519484167398945671297758378847472513975805923050920096202544024333192076499122371267749128657720297470122931190403930313162169304962963798776265859715242491076506954430984505992644262529289805865649081492675221137897994839377424805761660294406402473878075214387375952987907282313943437487289528012224932284019210486537166387834229410800695294284792909772727581389668976362606895966104631687895338142536927009215303078845440398042732979745742667119920215125046575588606501367753609734201456319513858110765258301639049504635044798505340786268241590190402859913396352155919850086737820269991281397208485686893002027183037086550421266262477617533261636029570343526100857749639469364551786961759566998163115926906930344835349938276171278401716016692538977240799157539920748430136837640484813039507571758233080154210139446663453196413284972014515137934757507894291713040793601008329727693938527111600985359551791594173508565060187704852771846726829294838590926901078975712434536105288262015111616515117725219210908721676592025947127145907627704226502004200097698003815416782775901164968851031921754458466141984890789579375917851375278935549628945612179818053698715126485511768421716649221541693494871872478873529953893468529142044498341813655774806339562277887792464573737304084963541737789949667242952895327543115828021099180827981750064147609843480321894470830901380601213863610215473106644275426630862500526321232532140294298378521801358853908980751705811303342743783857154136098051372194563327900099883541277189555912219497914046819183238993665316058231262674577603768844791930593673936681912104743067250147724647325095368068421436220056262368802069762477526525094413113521716404682447392975847323169470400666314666697896862527306052392253811750159339401884368293440493328383775401468859325700425905546132655949860066763804196932046846725120306725034063757609710107221985630417910519298434374852709003457085709735906933772391155950875415135684241628171482134795491346117331586769300917787151274349054915114637075370998898747407531444707456856547980285783036885167960231744600571411163157367163107785928888663926496174465197818661359640958454986162900751683988930131129822367250098368335665446607511202205849848929082107710001715233982950098196776960020997443929493696812185254170897112170645322300881785678782996087617047356757257153777335070799181633104964651677197470215947886115233557852493341825064960117816079080786742873124316328377077661692931014602350080264039191014867798403708709614552349684523907118521685417499297414236011590126325541238748037755109861846460831879441470630750620186350809575667202004064948497871767171074680289279717576726351522855791319219990146205196188558577956359359303540578427241231770446288365943601705699284450998422619007417033888764130103064409400598468160102715173294535920760775725186785943582570501392730838554462185030152142214741075437358239885331622377503633362694580904059966271397947168142551949534315106214291595926830763426450537791148656897406940570413408928786514602286847760357624029362169770003299280831774360387862845455760251867571899063248726147993033583730337964873882162456885995103207987720624925307213696332845832516100056042893845179461299278467568739278799787917584102326224062357399866461695884993040210196217114268779244665062233930633662978417131289091568585161041747733147298840251846382254171464447309426189973763574855329546518105456532894108516152738347454985981538755758141819879812684785416494724915569364953370487693012206794884372084931595363516506631645369725384402492023293444194854554481966880393774896443586876037896372776464240270838025995473326900246322453168491926296683143081488981422622004535107401754891711317972587106068427485911608585232281690028952686236429470883712820896505279839576587149515667133866784403912366303585899193404387187046536995528577441751482042147818816490609919035836846130397437953018457067683670426428839022487613640275453948824107194291490732988730871464347974824906998794287906394395602079716330200725880640625457840084710949709903685514527451314345852353030597416606385172410938471614022240481120393847214260678299268139884418839574830005662953074567183418045047516384507166492725331450929126432949175807504725856664561862866365615016655219958612237458832253454427002494548044509498300512269520589097419928114454999720580400896921527455700449806026530646620189594072336671073227929750253338262322060741780446364755221941668684254211324046404795155323507193252433914762242497865615290382715481700708471202497784234416901498411362784867225405992859111888079020182606362086142678048168339293028202041394204428500489567068451271315454153474681761912960751970237349223960584635968234935666397264255248534668585676267656337686322619409222783869669897300093548588536247381550298531689730472956415547065742110747227051267137810168215312690448977332336662698215126876719565333103248226985849250571194087050317024183164642895680983361558579284195559106834993315384232714967235516012549428178869316626281939643771850539584170963117261717790961880397768069853036744190157051458606814764461998879143879283185134590961230505029199578941681238265749087060732327312313579778763874107044578636790949495119089313480808198545922799074676319747589353122013836183850867417455484060979119596730086525889235410919948672182146824451496646257602251639612956667083280641632095596814385121726234545285512815823669819521236075489999642025692420228583829572952938606800294158035380619441374207075980046120030182272356401830005930778858142835262761391006457489208033079472912079873139490644343189334572914404853974933532704293011991054583560417145780404655856697709781946940849406210514659110079756971929995046256803658722053213675878638296918132798519008813773837058290820152638634686451947828240925382965969530869328471007419041918221924665644695468949653673502488066306122619192094509060358998570523269829816001886465195266081915359496059570914484386422702573328368388529604164441135387216715526756569404780884227079878569824541085812279470718062992672780877564520208321781057937621117818121612349894125684598416423756330138309763967146366156916164410043699833943544921901979751430667134840738187810795223705680850102646047807235997097668149159073238103974431468002891759813422009898007682802123011566247261514369673358277556251700717046167426634771598428491500987793192462043197267447291658730672895608659789334319109058073255976506018981519543072290543749930099558051082281829204670697336121124096639728609321035207975533623152831692328014014068327723870209988681451359450699678670315978590373673595525954368885981958293704152798035582463253178741504237743977095533697082805544168333569065011301826101969822838269722149199993438896622066745686467363672546510897304678370416996993717598177073031924874549608692754441868738309387862961560701235491228843137349424355510733658748380950737976485194477754500459137753024253988666996021981369358994973739150141417238472030665737052487346236450711537132598188385354417998064464062885120803687792210522563122626123344923134822375377905209345274795660044062586825297075657538082877710514492586690487870917288847925029682257681793394784614836889095541232170987749899716714861874766882098861375904125044765629807623997097332754241102969199381429920593039972021916673914404230221368458728312407462578885521264811011909566663801872192221978324076464959053998061327509928161182380658445363876263974841577156188788203995089071481349150610268221497567228358777543764250615791953250514905694836492215362340337494401954840425461578918547129297502641037575856702156204551630050897308992301030834178546935053944123208768472221888874372805719995013589596363545166037652476416667525547536162140529780889261928122308389016660133725472192041122457091673777130926991745451539049471283816715832385126010636001175281733280704127213832286670888217230702879986239032449321458823693545924210785197288599140786820096154881105333108632802390076831711922560518706809391409366651071073969256137399359749366720855448738326443999039146376123300616926057694768937866872612539207048209217718407747395162928794294788075938791324589317584535495315713092884292636589444429157856572501596013829933571264297346429911524508723645021732920042856280311658018018388204832260264842509723845915709690018801878515349430705399940143367532255678741708111723102392480731440698789007671559311195272202515375503386723859676099264015413144188811397672346968905283557239610633026379206509603851686292081780046724765676352198804554056040194581641840520211340710243003560136715923300177697024247094577341318715653555911882335226892294124473172741772248713613172131201745467667010638196498592450467521719521355561931341791630767972483090053691945226866553828099342212742563861511521428507566253659957731993039069666685515037793537133432401790631268466547723390569718164354965615768115172276452397483331484140338592525186396312566654331533905487054139383238424622977545225238890567498174102226390401609241513083229263986463844491740634895847719351213354846993510912375399536449469006993846660704296432157426125323001244136425027196322201269272419513208629851228864223906068609823452762417420971514618291781567485575991649641686921077052688805864918160909690822534388873440136513885768465443999326826053516030578043084299085422543133962639871828933917029416472120081043348675398674944462109636231012414117392337199778353286749507134137137526314651504086143153449204969337892643330355156024714086214198779016712520069918894436049594477251968480955004093334752850183934642115410838823076221508460608162883267398834104298230780937370320636474830957321212720500403766399204933303710114968177414849060230801735255972818016054049262748101967525380170478940079496274306857670324032645072201212589510924651437685920703186245643906735003388461942363467760654611731229790273845959134987028142144575416151928443546388047308202440442586979738987030453943282905966270399667382602510991608362399453944493316172443537578448089799741443276747879703063869102983287169759592176940721376700236951151268175820051580334921987836601992386253024714923724260353764101012222952638147008750831027278371113633730191282634545515607891750118514943179656711369291772662684709894789455328887013041391959234579626428748044152269855474523693838638042150637522143950604125653064383883912551777205680772898852036896550279201270038460597429109648796803277660639335670118925821045137749692570402157240650493316353529555172120988400521601517305596239378003242079429823028358584081179208035405149267138504299050751045520686614112154659925569744879777266651001503840457290173690522584148105825505420309870037415972750542187213292959288593335731903645479455209401877828365549996555432160671542059746035282037747587209817274935391534383832522852077606746920575926020641975918084790090380278416504624528459473133812640703725277027995839287017665193098499867817184089326947435117463045387887981826361648930822912748567916680750905054691893570173601620651924789705523580896366512661059350168725654883356449232568850816167146065029797167237582713854057638386642266152798504578617720228830086295289978895067256892467711401894249002008097205028567206638262348599587981258927416239192492596373448712975065575117451628716327713921791828907827226268027896293471444932933058251436970623390664505454882407860583134666012545390372178053913963134457349682236488467300869433802136363411880781763423041082231785718371540928103113394754679547132144960467448124570548897041408734450471487177707920664293087107669084669247994412715264027364692980251250489593972628867212252578982942545382249299873682390400986247798481594778528036250929515661040447426660073837816270532163362010503676234833400691711973524866284413937186381728940145129532856006233543564735456549921644084122408924309555907928124465598024401536526853633780188168716378641677333648087217984876545224000159854012108488292382000431202199692545761596533333760387300993683304809729322210574668379786149086944362054966513789664540583757071723767934666281039196228152729912741034555410791976870759860224665375163576270588052666219862155381701036508919856964278834257996319714417968278954938024183330745251882364073542074490754329474329635378159040814627707767279226561122635934497987861955451689748760903907461749337155546528275248976796022365042521030725655711793600438814795147026111461465692285472270133107374022446172103925834853592367671074664324039425570819856849076762851726939858482041347035837006755249738925363733199427472726397928676475380416980048924583478652151587113685079761049470654545020220045170565038444111855752977476942305104439337012047124060564045792830331451684816753249393464910108581329077462647026250471189916579222451221059469836140440077401842693771166232347809245697482171190862226797763187180373620809177662255930415066458029213939317516263808571656604316143742286055329780756178967639965923093230779004968493074612921721724391299778449794403456094919616034599293638947692207877483741571492690950811245715294705809933666686708280972890532779785852616294733437123360626579018719721718904037582606167908991007702322929673428841008418483492998074948731457006987023128693733128638333690441138545340939570943615438592358509362510052784027222077611550521385369422328794481139362887596564581404132278075991396806814646913832226055605403809502260467866132301608743278329597792596917587633591359093950379367426605129741255021366821536525551020676611273953744965609606442170364009667964130956874735597204715812306609311070091544827371590947828287456584982503944497544937248186334765593592726023186796017014819293152629696085997680623626353387995853394143228733941240343895477152459231677740577963082745585864405078251902449661265891979252640597316267805903458261433975443072264928583077439135355221415807196615733856742553977857443080275344314336533838219593668882482298491892091521215912491583957788970495967298116961886175230060539072820524344037221144614587869875478622568867695580744423981032260262102228118329927931315062117272475966955161634674994953987253170302584806068629431752782333929357824408367271617230367949525107230600876132039818054725303484466030935451928798751694228237131878161806081023660494487028725208949868138630044230095148739034280787617430943705743777273804684797091194566154950976770745594446302989028286423141565346447028238609365319638859246433132532504137714851099715265499828471180415831837891918602997258859321623477550221210199260610364635716400672336969079376945628036199798442983121351807852194593702862003861897188971196619188578868208530348374212420681806707226594248789271297206885776916999027056928830332393675313786692188925414922217664803418815753425811550189921960764287492423380881219723457712783078796167883574305572873177339284359053099644422978327679077310769488874552179909683997663787495190245750314659097858506933719776934203076459669342994941543972840652151001309670989362543381300696233548559486468275195512834747554955361680348124480057925855218761828633322086127498906442873492188998517618393583038265600739807070467376789395401807615048775267333052507796970527876401885842835085872435165196656234446944634720493899304577586523610562639513803848865028510261105307536965794193675251803131421700068068431620030383372846205275874638057439076210992426183554260368098654404430546087130358344044053795061318039112274357367516748110518644724767462571449813038008639412793756855500882285351262365070991909556168607676264614662884060691352332724213155797999247988174211345132409921096948286827481749480066477279979085257141477078750760742951369938974309150748347915986038279073756647091231295884611382423788524621377341011172034510358952785759531729998343603455961070248148940860234957016167803712629927930205697660642703897735924672952876024603851064960047068610919156051598671459144730100381130181613239738054437854291383028278960355268515483087342477338882122899260367338911140422045335316026693395488198662011384981625713766616317310530060780963410546645264425136940006038411227736188620092390964768073983930196740642191638170731871405101309774576691748142112692002819484712022920985299266831260847160418767585214895425056143805943498474335955458436919374233079037779998384438859647318709371952520386567135755116647102856928648006848859675045766011087622141967138686494025596931589906145755419664126129045078302880660005487903497890077395954260592348787598116996263942801872895736871204061809339440171115525255776660565074685134920795786364892327744939000284771788107130109925014261644645716185218973962892737251689167548815032748616143912943935933042642631942669169259454541353243918760011123268085829383762511425067271098574379018972409564533043773892798515244628630400286148208431700248773345866180182239399118985615649094020042410569034578692383012730101947662053232858359363567378648902212690313013180191958792555392959971674337661589867108978766374591337158810988143703791670501208148505245061028363561600870764578133757887091549859151376052167310287323695002264621989800810049601294776579822927853429543978907132338014304126978636321272314974438487574534227887253473496263495080156292904869714213218221296962771732252269091387017102085352812004844193194080431185644640680987219739125232054146567251901644492630028283991604442796953177590363046535916234319130210966280517490873697864808622212170482121003662001378441887413411207797931294434610660334064874012096384787732469018233913609073599397863024444303240712807001799752877242362031261200355876819026014664200833390586146330160449945465959664538167960419462319265778990677756618800641523217048405912446569261968406867275354564407310466623150336045285244796499835003160437494849280364745615157375442815349759113457910201659046948108988558408132052681176509072941019898522954051969360997908538672902525518948635561253035530851872171997175217487160135684660694059898228071453372853249222039053883560644632916050111649780791834590180024572412964027999067224860629781972195282378541331758758479945025066885887859658450238067326662555115448954576505045931716045510307109099158490906976342936967006512384369650066100474390294582160793238832928512338432369254515891437634275319296788719156827214038429026104181426725252172974925069448114023013854318379297833806170765814653440497313136435966675303420554277371942279757712860383120947803945871847747656066538095630718764039417781895200120422767708915827286747993219845668011674847876132263125750863581767369489955067738796958740617060429015541594598207780446245626673202980551898328347591923181852675117031935273312131303272376050525559046012796806606659928184579428802992740601886696817426857340185093238553511577965944000457971368435881140204480331884990692774046669240829882277062679602335611767463257263108632931373274653090733660173604981928740450909935498907477167330687127381741393058508256914212805849504137285467123275751417539805829697395110146321972287466128946343561123644990130853346335302033554057589596438379499677269180855350997238768486966953948802209101924764280626485265762232743010839933476397793962031790146203419821868482719388930671089062045310642189825659638484109559126185333824113107326895504821241257870666223785702437391142060284580448071820142170155740326665462703031434642634346044136308543369725892122831525867178075153509525415097673591990102631153316911998450030331733881356862534525424092485477750730649193659886765015590636116520127215534286256332187467605774215126094994096115964077049140172866714146412379452419561942958665186895998428966159645069862759941343626886659334814863638833509841872381999873493680380355241855498886887651198004150534889552247643479661258821137426111865551833081534924282345057862237380009546631229935707846843296384710621507581035329506720697716358033064680539583196818773825193777605420574654718400789327160229103342147396604899028038175554647211950412147112005807612720800430595409248320844491337608710838677428242057355527392024890607247022902819223735530993900401089448332798255432215892448908240876096541762395171324062101397463832434609017915891317733357096276767818199933145809053286740049303208160199536662376870514509601645025058832958272330078709161597667973445937843770912058652434952739831050521048988934881875941361349043069270396688878014360783751825441513587807594658388966669147999207281741121608437698740307364755491068367015154776822081465657571116202951798017097997217941367576096732629872438279926815631037863502116633680282908888069975904529781267563102353901129422770490541664875001341069489958305044664473788553140163816579883299967543011797921116942422587697181153012220665144672814429628689319752565961538619549645105661214716167847189475061221998105441210269713262057665136611108420696500099647654747660607077800556593959529822504278118294638437934403128608800717756278856953142468946670015257515295885952734411069188764249827812216674628907782783692089205358251118816702843248714600544795721619304666107158414955429322813924693569876578941652509891270699673481811792541064068565159590742818908338818923013070543417332372948314644091256370529312068206090355709133947257090500742786885077536288279522488360158131508999936059683975895018601539843178009334241115445039040393182546275225319805618038384024383580288645914065449552142839225113502438935239015378710802151393416611532672828153300160998948125318552960188921277535212174463697050264059435153903953231840464129918119829062952995723564626929020712740264079353777228705950152392687622829578464859119187653423472385002829355934859059879089477571341209648950330400749475308026738233727076842136835857618456916563281958412050769268773610482375164657404678832836102642226795448292995917200841481014676981809720171611010306122103330476525339170858029416924219703795152052075086715533493983379519320033222481020629261168106353619069130001501633355004254883713017934972978032263575709249758543719711891841489520928817958090276344136035033339890198475948182592532336842739775381738960657069949235417579436897120831099942314831687001490619070299141935881374070902464165923443299245510847514540082241144111544978325699370689071298803303224791564405057634987827473969248447337802079856077668408312899507555412404013225191991232498666357873968769943203873880819613169685218877473377158906511529108631022581303882607106637703027013474613627609648063217479863375879185406951037897834638985420910027357543833306249399673522559115620243817822932240784749170075741816606681768712775644065761853103847110815588770483613298851155824688220911358616405107296206388802062009156629613221126926216833620826561869712968104917147116136786822590477860936939941849265813198313007437412040497210631253380004853526033043013191147917728531651236236740452130535457129229167511733722373634229625888136635982029828975821657780946858269331917530899465395419363887632407400724233027787995698860147280820139719921017782221261687285674237797111081387952099971354648370138750850572332642575472992332407553278533989193622106765071216320311836988971665146969882333828879232523820776348562206060279775709699628965837593204221683747199688084512287778663404280527256160638291696726079620379958186642586530212351298178741252193105600944849857959442563984520657338466563239240807471102981348256201455726659253409071737796546163534540835010852107897379337031601782181622023646317475891801533500686076385475675345835499291325676722455729177200258918051414479288160479560677695799707507301839222939299516282398311560363314996865056989020519756323062655672919358640834284304398952266092877471644551786341570877669636663525216539699754811456552808303351550701296698018636784075800601559248848843454231332346308547132138966335413280008795985477383454545440712504403843157948993619477276544057426470055915268018644741418428078009307280144578187803325938484212295976905464711703885379019438194958907462290863250185285343640017143933184467289855414038525469831056734701383106209952770304285675179736828717088446936163443367123328180457038363926112306695103027831461130265281241689080684378962684597174763016305535874143481665351633808624353146184626401039262170926190904842719929722798220584896088291234825326827340966572211048005783612973199662615006976133879663707274443068981235203888929213438660367916308800238409818195554139518609393352205049717497214798333004710119284359729609439467969382505979756452414131109195520176176341151402883719317248750231369106350914920059701284727242363530800576772950836699527545188865321762818418506589145204673619685742301061863845460085625100846962425510976197487526001696473358289482868112212434838687684158089931493270020998608478960644592484752649383666907930955155852533342746054294235079570190131744708139736354211394197096557103559399648792353221547984555995238794889925014450157191443876888367863612574413801989349787933573010993264764471458435874830822792607770993436376799258883582602693283940182829399067764459392050572647361564099050714491256225035397030382672113591066814304613529559907588447478443542741408667017945123979803392807728654842512353047809779599149964610934063941501992646438398076141614348368203412006839138175634010937767712322229940195162146044226961855772322433057958023931256076510848356176577698040752376038629839144519922383701583486679417883243903623089664246257618875253126593563613821477048609035857995501967246333476712290944433521929952324973619470849879021157095378243250372585908136668217312585711071132513895157077062989051769175784386115801993303990922839435451890853611400793416842980396370738812843060517293463496606980884129303272761020802102913106039086369429621557056724918962480214853424700033112168363605782731330010962930173919588125718124987149103523869211534747494031033902057934245702341811456404727094228774941372000169706565485056798124462226951244958545240924903132522958522154322738979516099372564228466971550693114812908589547155362351349351593847546900507624412205124382495861734369494505380329557872723306950139078035227870624723446025199743249950354438747713374132526679859976481840760671517378996964070918629142188419042385132673435611603491251375236729615148935600219602775125689863014615639060688152361819139381904831865368291777268403902714937301381604802332893886856277400749306921904899217015107637156820462908452208881757439180187791881936604240961636222201755989148693569084242262689523898582191791210175264473779200114155458004727809661307735125557856242637069885716195279307736543143882506901449197900655365120247317127497995986976142598738083253354460095860987452831250830307740354753597474334509130031690666973423274403228685767224902958550470063821240243733047640507913911103496740132910428905696028164685273674488226543855662735082661262590971757048818280328993806459946918677437713919330678303828050332518168260366901689264199583907946323655710547836704418129938362112183003649598071331919165835061958007127238976289609323362450836138817485644847942291709246665011117437308360236017760157168252804968251878097788185212773820544030081282746531905015488534155258049079455010190169570752939760741347006213490206178592300619782786250903325808353590908364673698062023683739731853960785969638074637597613897652767867899993232800370454366568083571834139115357414274032496107404209411010568922607571293103934022174592279409888466982137483773420729734173119133351904668181513034201744969191973247449758291728237389670785221677476073542297128056554032155530477349282047914325768291410471505070257119235858105819807404466736963753586818539886697333374102517977143898542285452701238156319905063596228962180322024230648614973762142689042514546910575580160891880611021060377916245327138007422259075032985916891866257521117968941483427790559853383203795989183767236951247062957497237468868029378304744334478671567401562705137204727285468511143453729035996975568247954373913000385002753196036207717596861217820816865926822644212312522189840075932008862517077003318419794664552913177948174598180707558546893870327408398834775638190015497042403631105438257644655411848497625077241007370656173720877623178615050993918584948906369028588561090367473327001413349050469384944615121395418890978316398580845549624539308351571569360177377439929434004074603290529424742596462939415670325620938878998106508689894182996431126943220930953744038972651580103013577392368712744110926522911222544063545258506614643521905989170855582541963777890647198738213615250945577507278672737768545648193024349886068538750132871750858465026074104758948214267292890372604068308091937503622451398371577592158978446222264114324437468028371999263946048244192326972871016681784546139912722464118718403828553691739379395710144286617644219415146846162647603539147240576850164522300436381663029587193096068365391044604117939029840484126991396722599542658078901905538342891734710970103781562767269139320210633622798371912206110448510888274502744012992023483892051705825707941672211276328464647684615239106159649042683281651407650630530409735631494956691309252442698879331626935435175451141923832437393421764359212948793815239056833723173284570787321052368494182392076233276629569069432035649592424691338832780258427184649757007561198851559185754678923645585838228244239501409656936652545959772976845169399260779297524217215646587588206049028568592905432950828545503172210299198812308881530764278529968052721461187636253995065931293302834988222189926572119790732649918468350153833500472136369195476957954455742420218328100633786530813177999836157762366584875914769878794914878976571708114644686609843099365479838178203205498032101857095674083414044604387641075823020511180616019737459512593800637178422056065773582166175768358797474477773236137549621397411975052877124354506843679100018931902007738175590340626325696764035856608560780384184526805391530527957620408127946386054515736148510792947631037668077345232714107119078864058324609812558763884685361622987827172239365878049011302870331454830380005030869440372707696415190249224937541551929142965282866792225477288518759844759662864116137637745081633012018780957702228122952539568858582152247324360501593069445818156247857986177104021112164007920315855538029637147821486128893129630493083780634829611047857091989821705339078791352004765450574939510219684345274844404903726144728755533045048855743146556480676948478268787167761348155251631777110796425480935214013930989410302920262371935502876827783588941120774684801322297934453964754761042122340779934690957577851302015732212195668223057944358808334057774079145471189704778806421177965801302370448941314005963778503634783060905493273364966611504547647428905419135904912980818945051261458777838452994115373548813264210061797690511620360395492971176851827072525338670146801709615014174048519601044264341189678469062294386003422648143361851450525677184878868841153609558956534851183636115245375608640922498347305761259198446736755752995292536451375471879679443024751076664212085810888381055405847925722277798269762604270386061954801051320262509701162660729287082544788860972977111201469065879292886992862211367659624347343829874320834696131027477811515701031105239032664689105463538432301263070852104684899851977047294043135113781422086360600696203393522139455188983256076860356949637987890289953498868979034478437357783410582819261282885476603042804854068448865207115112571984146223759617980289913803104838572613667641842915308613725975560484526604537892128728707727660750915964046729269432908962050451311378253835784988188128611455147892235159392316813394670554339260212084156021384342923330868912594168607876415812589415054722203812010700774682071659217508542840527218596986437089319884505283825480943990194011508823832290878611008989465749844147850332770738284743026704598454163208068375100074485364785961628963871355094659711012020189729271657616795972504156782803743233351238394329120705290803912192574225896167133952078737748461448059655079266565160546421551434789706175950770869236330815299241095508573569702768065510220419572858001078993381275517665678482123762429264126267293704580156703232829385836045323210481531708204401869798376860550260539684725741916792032581566057217562619737140382491366628670979530262888429727807691635655472588719082958044539348321965214770685747860084684337732158457876524537921656808321231634327921262119021197996714926579921187774315516206587365803113221334318396496715062172540394066624220943762763057560417495916428659968353668789983192109821853385893236995572742285891481495345455194445433270554978444836975565288687231062040109899296796638832721530326339019272342154789840789003867021290190803250328735822525249055858279020643566420703515616497505775255766536287102834600131158520094700621466425928154171861604855683296774495128051076576666784342582185672756171757731525797773930186035827653390584461965819034985872651601375935221758325459444414230442362242303630608507735293977185893700383514203492123174987434786381183932954337399161761921918671258610959698555983138231841970385387321841244362154734548436751451348333585154544066153506895905265634594886899072555927851324571151936175466801588506073172740283147971731882946713623371352316253753576619176118874738099818061493887927897176145322855321755626696586207785362547263315587621294724168630566176535338033352434935133596060313769547631538271524842647918404067045547577781630765332508107002424401655998289591265137175451721355286652561185211151214202711213723663379440912771126847306007251054807762299682551557426581209654285912386349189676147834555523032949161077884168996447754396450718002261818153660273970054203519789400490434660872910473120600181904755896403516562277235651962152782080937020036809280950461855820458384129491878853126905831339783966788531220559697919254061130022893341106532013505600187162918829402794591827751767003624561953280914237280996567777710641223220519027503316403864352966812159902215498106627040089405753200716990832109327074022638088962472880098380453611049998981890975658767842413209102622036379701971384893077724149224604959898797594970107141059104456542078525913075595898977539223203849479490695017973599120236276118705794376960427637315439444439217932964060780621037161584692142300721304799514062105931587452150478746810960077799758272023749842338886818233250374529955683270222472963798065541299900253102663328895997941444536964590555543443108641385790678842224627899153653597081041775376157937409514201764791333973202087835070905603355308433498782689282513120464655141790392015930372115196746440726288276723415819429761069565490314655257223222294334683332318326796332906077645250021272257202059717626768214303892653853982502747307219206363602466546729025231361647968927054036798837849522523172737492583685009214150623806367870405608819865207099073322416311038662240359034163248449140197960486239221175501205915677698955943850398018346169692808352913328209974730146566432998957910805434315652631595302519897316887065028932863410850840840858459833478417783609165753796166597053671977924039107460424255195294318791292553235481137203188913348615183624264630331982935937544058910826385044896604754830484830748833616605537159628393768147585871026799747713927617914629149541146871517943434229182616432015316480227173590047097014464027003094075736074847921531218778274101414258694644945179852641407283263975541423443919872905921351074734559252241569308443678390921947551158320399771788621246208232952214127789044058138287881427405106271379917253436915243583216104188173667844916594238722640553506663451360414066864872353453405227535502286728789601495295462561831116443027297488684518104711372720274436510238894489292301595656165808003221698001763110831345331253277715891299336996816894038248185198825475038302123502866100742363308875260026831455753044605787333968530575421560159604133183726280577842052511118032846530311417099342209793591059268645949207878408545698829925596741176678218891680415914814588920510066236225718536119929575652246269693353913254433483259386058912083073540230716596178947106847934856625972648581492416336895199845578068348316063869959494331258227598612014993843692016035253383742827543216406854580876538570888670573953882498877907286261323697004456347143056351473802426052959161925032619815752905201644437788833419462752947648946488552179770060453184377531490563899258710985430031295174688845050636873501164612484328745568548431958982016352387901791864027818317105081846008676816144169966890156019720042307264538344674658097388686215518374704955662889669968469292987446977914672706100952936612804177409407893043396797542213470321562887071726513305138185373311090539573064019593179391736167778582307102861425525828399823188317741102239376819764602315720795579140496579954498208094510608276934797037610576739808629551686112049872665700389581002986252652027082476485167602454075557892909435751943784727491050493388786313390671563733494617783287763511328585403057484803018416227901881549955804849276075836311625925266740552861053488844498474497346017078263577412099435837224177624921575783233592617868011716169350455056313849023336235505045961815940964723169883240518377545034781438279044067333393825722453904175117509242481925680239732036425612651646604435146751749742151344242523219730912485129351413599081948421661397489264583364657889461296569859829111278786441320509703145102773383856640736970914929892917687068957410034090348099602943689806004406178888139269609147290369004978913923321881135186274981735923853886476488132669274293108886785321479867995470922729691721433683829202586491379888335691727145442653018763103332539266641955500353223513389251734024991579008947258515466648844426541028773181181827011315715209716947135183126993993662003539286488391553719153257422477858214584957346039744921147696211213721798678062151025262054070886207662596196795914896938956268146484293218411529477688943183062746933426662704384866548769742826581251951987024978383159268622087583687991415974603142857172432062378810569880539503728825589770404229132476072662686973986691590380058387657401015309960979491594117021119435310898944796961634645431466447045778518966257247588571960391184062441850720832832115378911477848117046984069224278874741735638989268378331178959180721784260924512808446386755833432335207303670113620031146802079613214725523625398830609002536063270929209858998852061370777996668819135600411302957613363671655457683477920068129535853764854760401630994726205803426349547949844407081072105014025298789780472873364031226553898299612207030284209035747571042936111539392058734202416622756678671736350392177065205395828272111810481600414623288818720610692086688628025301027636253619877966694382330987762701547813669672442558371446487800744304893119666032049905542600408652290705746539859590291135894238064219606990404764913528723446409462761190111772180035525594983732031057465415027292127414534481546452281286842687957717959739163394178740340805127508569834951162851996368042971656579137418228768670961049995403896021353515946862538904522572314725301346974584459280054660776619123565665628474962059805776246622719043812516461071924719745281681575838232671723617862092253186002798801954922587618167438906765485859892254214244752618139592010796671932445778112925188595414571593369620039603100310692309971666065729429731697908842296659908970978909610191656303945269868568244196425991045403606116350762758018603287917844910323932060091693809121202721587230515378144167452690538943200388514555163762503998740044755960307031814372037375803174814347323796744283119802461841546699521510738545096906201813437236898983286231251402883824701852302973382598665424829757220463477328666008004172828865552163578335299711929061058874040770140864841634782838872848573623472938410973087332797948512787916078779616804386742832303929022391006383755535238887077632224063038603878964647044741057077215879831343255628555551147562808275641579325786241292006349932567866875735202907278246820668371491671334997273742722153372449622073927603378360737942004053340779954379727189696337751894251475900154478378683730756246514331601945727063059794317405902823500051597477447728757862938812800673738930872819735191100729671885054926813973394070607868191046362700506311048507650579154257531845209678498211543159798094879973121671202486723247898686715234304358615892989245226912981018848482419788380219174434285010577296151323658350995902107505196863202013454709093727198015429107218963786259344274791126210055412886120564360809639303390747986903639926206517199839656178397256260438373769339256814461528432798737307882249623293820236243826649443418348295201590225417025288200874051773302295285168396680597075646181684204188989249033660311784219078634787668697789085820823680670338389601750471402891117227690473846077940755698792315669493011924916911756374304447647389048930854312979630985043567097871288347968278374470291303718985084034253485541102794610551280847727810347191242699275277413041257653395256584037402512723292364894757963241028921732125539290542727310649614442290805496053917535834882324489590765162788479207328348289783141603497596336905585611888078652216154677394778855522309944055458002592760921251552663252665810887644060811724513205440198105419990034550882322893356685780177525412098285856328781649154273670644315580377830235377291022973768812815403771563931883283330320899861451436964644833198796552512012108744017251726144712607421664506730691456104389447230497266228266229266544253166275188540059431369656286358484187252697156370902101408909185891604022289745748719980005933661476985109904892081023220117760468700473815741176933264554467242789662558279825869632712055249982795445441982199107548051092820403528738171745396441008739456928583929405997517875092874133465858591613235538811838387761932899570065475187946978109709404755078313510876665161217504736239614402848393332600414818393506234195980531981446376851519507305213034548869830378569725473911161670095302830182680169217914342405078441389956558798833701401277791182819668305542928329192508194396465563778655301130048288491616268887009959895509215284442771339020232256010201520261786700917667818726641647711787342133014333191547357744070498256600997604951816838932406572907766697714165395565500229397227894267255945432747389995501807141783332064928300186361703768259540295368001311888918720443278209212878139204275931736593336686225988945868244158851310427951268197545209652443265210652336358836832478338814687944035353345298865458613094194462224731452461491051233521864367142275511742998520732908359586854867909792057852404424418438241021419380089474489192151060901830332143166612571110809242260078346227084354999677676314486085858562604298667779277370276926141354899911815128423668830598860704322822659938125633225141322698617430224878166582291011557315177852936292448640426240742021435936927694852661593684947371366483728636329021633525678841368730942863737059012409666899038602376578617425090106508170299151337311199454154212216122666230985575869325743221580040930930283065986508216335352794354870646994951299504059219418455153486524210632122894646031668833442850013131510218809747222694063286755834101648463946617709928402286868685046477987516917170419366841760955739337314020628051422024701387044182990386952078117459635396454600205281905735932856615014440696778399034101644185742706239616753332616546130572811548118758997243992978041847866411950848108019876397570505349348661661842939830603465703992477489946997892899779964439384065177501846863800534908482097775550504083731637863861585234749025694990798313337103366733075249476248835905290043055905231829384216904813164474237659517753760022388854389446445981754955086716939400364355954450161844023597353856897758717895838331008366664732117937734829770045677321655629277427375386125694903505038414321384996355297793283083248267028769245315246021940302222286589291958969748455665092660312991717470040666466501252586552923474366587120338344100019414223026956283646475990583826112158194590528447460022952241244051801768792786933732097306352599856321618334683916114086897086115637255045785897360800002705140385510991792554330443897375094671441359793134658822134233248749118744404953753105001749468091540625444719724788119029718937976431873336519100226673623383850416370489553679393647265614878017835620294338418802967289092302600689293037575980645262498313307141027876778247397412430253041906768403684811036382186769927830004594582790157736387901263497637093231766533130747248285504298839386335621460432391946929486616268397526174141702532494599008139127823100465466757184769856186103167553672560997057998838626187138756355793461765369757742244887100982148201533923573204254289305639462298982520010260926867731014909261303546001749630816747757720478393195031516193616126227933479350348680978675229710802500865148286547665660155363260449380367242051876244421422462375206552137741124422640305443608526551398278506712598215503634837392490448525501082540816963982946679258251752315021792164406519875058892847979474535302876152430040440648586415857224973334704422104945235091398642860501213868306781202732039711853688383158312052319640343028987998429378112946826203981052577981074424227272349285566411430593339276777508087289732438828106010188147610611996789536178430115683560036122603214684322863456765619572455623765846310606750810681603837580125154252493815721244384016399172746836099500776702982406794556128393042856410027530639737822984131450657214562654381553884832623521083295467299362258874369745294840054096044968677806147487336107462471479576307235955098904696383155261050014408854809320997919214146051691235547878597799738514092972577472724376507799410169529169024631538724289879529207724099450159514000575706979339445938380939988672360612399732406003168121515152923995923691138653690993244184837758016018860816910599784785880136195621427698955841080182028261222352157776039759631515783567427527205589224461463481213171493296649032901313122419688104169074971737780305840154357214021298714948009555460989765947626759885241184455698737011660718679295909310150782973303170579326350824673975045791403692250378655506518219338416008595441128087243313181032008228808818961559777372357895621830872871087724439482678396872248142923917264859615744064629359042326865366506157028983241437805635946353700109770695999255623889022525304117412660149090300215011468198157885657758422459809754058219295436544921748745411891596482499473976372864212066854588224939572856058310208054343380346052755087662802798135354827497174317867441246945605412716314007478684705975973659079183010222685622635676862657337499322377178336548882686037874920262441583952913254431659126888986842900918563388347155470096933216120409583662012736678806385670301330285876796384011304331032027388660612263982852511655299643388575313295498048443547884713024438297983177099500262667004323076038489930782564261170009292564858364991500306884164511806322702422019244005535811975492307807713461453476518653193740375599520697398820970345713944050741835268784035177948447283671611934103276202538549839668363067702806488366016701162009148943446829153305277433670929149644188200445117466041339887987544231311030455010367234841429546349879456256514923126945710522700135083328362043856575430814768754759710512821772895941720839370555441927536616785804163555929192597334645729617100367058352402539111873188153994737413212985403837144710784181426852047611321370492337086337988827975319634601209772821140858660735376700283709910588896700447077309376403363132110957496290921501259653810290078429092220755400824100834992437254101257807935874179872496105798124723970940143158008782376579758724986436242495109618216388815791693086890546063219814532760704365862710310139296234880811875588597751395736612021488766634802143516989322667309533030339050794232942894233369642123044085896127034090189308882783908954714942426636073538489035491507745274483918847859887351133309167456290806108088714521193982786992146451886874132389754333794280447705169548570099558702750452493353559358333899883105369259560834674498187728057030346240636620055117371923062516269197579778195708479668709501858297766591132483444166317518286902571033707927520977239770909008772962518541405646105393360812906050238704153077838203907439527728500051389182899063517485821158824807640334819449688946959913014976507632881481897596404163195104350369259847326523021076069283694595610877133569862164233870788543687599245157185298315310733040926440752307709221492696231797381345634277551132884076842795431935561924122464856902909449515054274170431359552800072503310601322385769466635547881454166742458534445991677341093796220938911154784735096725755345900345943457013345155242917058091939736733754780588429210842619913639925337613412687038946205073913105657965817792958464588441485028301077824399013596947480237901000750795105964698038278567304712588549241532377640244124218962665605564522029295908727387641397206158701603463432001951337021488782733601697991028081364311194016895450809056932983174696689734033368363696864347570352709842367139762952119492103319811840477724232369380553770702910118895934077569069025059603669507794561434051851792036503464882311309251125525085827871662722676187921056999492942659178587836799580379529754152757885656505692449446611868089479335809931419766120263753933399722110386902985897026001614705670880337345312091296577811008255988967143002840736868055841937235614992955051453522588584616534033284103249075524134363640763301140435827315032498531928211548631198837580173247387361710398342873004502967857231632252184009710486346439284598867010614392358564870320781776976324019820671591485649685948020860474212486336687141366499272723887439180836037311179480512482771809381376603160175293005938775684137830323603278767764675972375992042227051653225963639113322292590026707726887390516074833755436297573334120364101034899764437457999973933110887491190691995304020170423354070270995652564756939089059826294729797361539560137658367792300511998746116325808896141097418038484384183284295233783447062490798216941210484329134544720893423368007764036060267057605165113034397477433806065592978641946281253512761791709777887175633255609817937799657134609920356734932302928165246008264799221873501111080386725406498238292583249245508895357873765124614586602202574362480626468713405046421928781211793670054603515167591036978745498755852257830378921416809169244070287319642770010661364430875216901526401347826631173725160197910346745559952394744798935120238514017670420171211223249050156225993495342039118901900297681940794402291689992407947348044790367407917615900919210829566963597959598202361464888736890967608388756287909570920503656528087524389561337318566939051587152833986766015175273737885218977675292269373499698460852036544983382246457541385354153213581203126768982725335259307820817787935948538619240351586143226378304096412408827121314846614177000974490443601080239734407802459547444301539390540333718241184648674573631357931730609513180374794581101241227160137192474470399727177391642451367340966086470886271680654931776652759247515001986182831552237615180128617525066849003710146348857201109370823374345476119228861134696297069911598372535558562372781139058694872994484080329060972271588262281532616692710707062065578369138226051383123105306433564975649991033897243709212498348428850016728474298538947986797887321847166084640045342404688575399892746330500609307733615845003576803681754699390492388849460778123307698406437926898935843837095645894922321692065566257761046147799035240462086060648147296291615409794632721373453666250353399940229494658754901113471534372079739771877287121463261718378137046039084037866444609590272581280681805916007796000147552259270623636953494491472868520742882243814533717668333735727493297477567735592202561500543234001260414377533621780599860939792143505387006899689236646144641537904254687718800893288507402425885201168732248821103701930963126831140703985181817750719115153171074877579341601304276141917982992846082769784457406387689025151215019551858806397207310032526844588767379791237106750185424991813628986440236307167965631170685019733758556891781208652718513664191065841767157453206341731225358502127047929413268899011464455368605214602234993157346457783552016116052490369944154288189633323268897604635262000803940288909176639349638270842595039776166747088055588362477892983308621555566409234178267109274258387697731671256642613307141778199610919083311649145867568870087274192588421192732030475650908175486093490918743882208993399849397160131274431991477649436156168295488200095660429696910252277083958048647435269196523971959117685361887031937440071428094450313398343221801863458675995953374330046606003950858003543275583367611140089075808706392427032807429216953446807863358983388740087498972874446771949945200623555030244085516699863616720291248386689849728207339192469302282154751449742713771344487710425700245300737498086316971748175719473030617486791581301786518256553657707381641660754471209049415299826859852316123989498423591997927569056522383286505481838521645927722723538540029067532269676678022672005806109585307680677447850612174130815030485615512736455995912991489486429901300202028977886086844085558310700354915551192614926881392592642803635729819118017578110671147044873503209877632502234877585296406488850874105137303247034646318000927800431772093882729006832667977497061420459761354666597498341477661007637341873081013701029406871472152374053995141429842405431378602967951874832105541248833081536446655455202305676548160701775685953023407989891201686601141510602400801339741124355647901705559405369723126018307542333713175034610417555147824216764209706833258025594869675738725105742527811185632666561646622065054289473356529009721674959690353268420633476575471457466129626175559947411812707471249717990568878422097712149834622226842258915727910260577493446436108902207960087481759011870941121428044547393552538667347648329637992001414345966674865151268945769070597471571515160443719263357572362044993839872752820879786685084006776160956197109831244130073717039127821038823192040765268959824162789798670576543405372716102658322253547444024468693251864027353594437122467646373787873402399226289774642502533847829702104014540276659918472219369803351915240867129534259018402215316344326603544606261264401160485772673569941909512891868065897701431358973172713972027218367357655936517464129579114552141124633427980234149832409984971844897772989279485564413353854004799226770304707684583126524673447457642151260689141438121489916234631416417783842875744257217633528408049381564950787868714841500451757682952912355892419456840573981816306102545185134441808076224495192190670445559331482898702053825376857903537515278050340995010191773731501867788123617339895827536814033108364347432341727789897293444175716555785436527396705578247625033112737956469341505599156076913725208941928755412093718776144714248546782629881770332229382248219091874532680436561513284008077102296784027605430245415083064893221990443056448970981507123544068001960446987789081565925267693508776796553943969820565624847568924980960857227664814982129963657604653071859825480976159317103435456455529834952099982833097870781815562297245092607979166551247733704426056247518006811581669262675472779821275711284901128567365278665099646183475077933336556404248854325391098202090659369437759157690000158967352100711444526176981335318550745417520277376377587179214239616463869367008786398135511446704216638121163931792255738229500688973593303211671800211127591808789634264661935945344642319046696299689349527179537388673126548779130738760459584075834477322902717042064159229117235321988805019342548945912085630650894657600483717669348264776897263763926706606030606903101119340272655305165172900708492779795162975636576511122983947947553872858457474845303668058885166000560164244033078200815295858368242198095254837746164523643939834305122622572865837144584492793125276678426649314629393807388935351629330059219657325996075819072702302447896047762392615701081114169284869246532866352837350670228164253205482837771932768811746538268770838438746171574049273845244250829203080332174367179105496086318566837121197022111605139958326492977718905706318178532611312938014193504412554850141635430985799345337247061682525343555318935665120638651859386431022337127418356467132364982353982720617345474292284950087432811384124061713895317268918766816124880356516346776643313085484235150162334978195725017909428946844420454085369388730884549903956336611037128774912569080809484355795617607270922803653971279774582269086699049354887985423815771101196174985544787547476109685413760139065267743852658850132304344989054396980850633586410293406716555226487276114590745097337906114656815618064528369172601079649268991009136646190260086120611895224426248783633762151551428227557118810642633780085675258449313555589577815294905125927669363800813496760149874418744892472612013454751520782879527754180764212627177010945901056744843664754920869237097242222772833918505013570096786833272781688774592976184840745897687907876314804975235054117883006066305977266017936224035634763912326396541864715081819465389389083239467090568048846299491721876773476539714056929997670861924788088420198199687446142921968660412260764131121578267076046337177752367521692826031520857651267278980162997443904825957550066653051428430121284417361771407882130795560335664443865386769214179496836536195128609823595095994249576981772319432528053105336876313686613986452394322725731479233645800863849259044738273412174381035466462035079427358529131604256757866820597475734747333922113453628695736044356290556131713682857925155379627027834190679155820849150406975466023395161116951697242389596300575991556135918647494183904166797068422139901232386948639865628338927483617085060594375769846727721803963084580401258654613382014927660853577546277710038638158594505890452359522907767993030736452631918414495454323725809765590155824615912034529859268157516412346920476482515827761826272232548245293830029891391455741608173206079653437613182660629344361677603457745143127006925894435036097039348689942704756351412894225478771966405925447932178879562849086749454467557361509466300157216614338361441769321189818271872720774345533211651980866383539610263842163487161779709317186175875505163229637678994434600411216955013436003451357115074783191676126013986705784216315834785199207778393452130048536550374064023061403467437437024390593636774254052439672382021089796887152901368694282568930461476696088087877034124662276543756385778825913182963474830597701472721309366229645560252226275181789027145855054457490673136828449106171189994658302367662703819477179694653209486315374131724568312448951674506492123001734357945026449776083309368942574147596537479508073418344307996901721767646823768442997113838967614930867733156447475971134616419725843401617555035889803253651073070086326349605040298623889778557700849081877545901833467103262231373535458147333499098334148363315077779704026028038123140383762491747259108394062174206568067210672252772383498582466214321249524836379895326125396849151490991102974277725142044455084843522475167430810798960618279814214649123010998162402806190268437894759951152278560093677485059765967782660903822843001405687594728679937302054441736816324835415147579959089104748316864393377328768183069387084060065513373768995132430718314296232094183500113597632835375356980034062669714967071825572731494015648296222689712708808742792953784851433528992496226337663523244873259435912156614702798777768669675401527442371512127592601556982646007589522299623453860304586294970183193321517325143516474295049737448681342924966397551420033784372208333756648717714060809426094908753145590343299849807455554900519949507585570098898818195856158616827303059791265729265845119361778419877657641188074418749338229553748491668508322467757680174922817702952834230244208923173873708541844000843891109502854261189289115071732275074748563309528478760547957993969894050309713501816520125402319255967079526994777963966674878789061080241420415351601237774481440043567066682654753312501197566610112433167165261460188020009001756475729712935740763295401872408082075019767807654977925895186258075395413842594400263645489589970654457529005080735713875229050780805641670488540494720130969273099628348743736635137228053454875763088125208186596467436831188150061744767967370629264520194824407480103945122061329280280468625837688058125333041324561829444689954871692254743508390901436680110414897608531374352135166302952779483722292749096234346449725712185571191572112955582193392487007761521796339043944212672837418521414928860594640833573659445513552318432232909665875030673159265397608558281634225345613652981074616038813772062062385308410108792382304764087660439120365263406923585050439943876314312351244470814770322417662367510087479958864817861690924310252190204431673014813061397955649116868617131026067196232374369916479113118793302443204389015196888660270440369023394564906003058674384711814012946850813729520060209470365927689259869284854790560019210172883809813779919821729381370418324588904114151236481893879491442251287611790167860814600310542871647654697068507514036875078786036923148769168103228763006412565457964095941198249600894816216108160434833021395329257441005399817942427418643587033984205881222049972463082527168607049400463764908654205413695985456937409463006552899526227733316758242557802318498079698219936408106837792268847433305337567049816474217941722920228550978560724727163925430419798529362602892469755650712343313892575598771108115042497493726557295028276552746428415826924809309592257117193973624438916894624042061725015215504438838696342952719475928489310620033757816816983573837724895870455250805192692772509116922649189038615368222921722884321386982260266347121310852139803118374176240283295002360024700370555901402107573686160696336443030266582410578554210356454400312333657552591094283402287174242907814261322762978133857811556213263301529823667980491119519714327376140898550881675146710082859982774287145667606026542732924597728034136123336914862406350633857939897405422155605386450111787256110724257508176106243885079334927041308631110820802125982502234237211362080729688716942611034008400530348005728396543127678303223229291929414775462420111558178998287474387751886706694603318965964953726327282172762716934270914781038141212891812363716178327506846464409232447006497710966437410179537396886094312247180898041222425503222934024401589361866110928515578684961607138453453248379632985055935967899873088204628996341331568899992272502691399321365488374355681141999238503680234650708685871301481092778378098534929447396754413327292512333474986331890323641549906165368858254310126768593407748891627593540799124426290491046111327977901033840701455923878645821644808101175566639282924255916935065932258623518187344923131924991731634905741268955821502866166541757602873939613317316931749642407067802901749633209249106521894790627599151416828337117723220505008058883958676613587706915069194123624842549737480188200576673323488209681642581944262842748947819745092086612296477138214025777896540244046965989877998256147870881165067385446025862653542460097297539272686085048213584533800486272586622896111635650727165621333526420180128839760263268525971950944577974185500697534959054830893902289379681449119084070229826197721936490239448095791054367985910261123068233358944540941994442264315144779670897080289662811430664895795364626986523659898715536278418506813950352632559004183182784232405032500641956238322867909060876016655603697642610162491016422981564988982688168602625605541924882706986741330769820832399607979519101022684791253705501964927324612618013563320524700455180509745429958688896995713246618356200708631623089465549703649761681881199024503490293783200601134559311871247564960946817398372849581197317205984754574159985566098753080371565482568548049636514563019928787940121756199706117050199205821235380302359247434330564370825953542034660862068423569840363965246588590092836524103427549432438021480828206364609404142058328207753353575819350293332445620915485199359147406771202348185926254949465681583086370016313850295418846867091725149500596281276032753642247367418668386849893052245699561408178448862123441022401578283357893049271651889264502785048693062790155536986278825868177840918075327267988294086442479252840038734545941600602993103248681425491108784597035677614988560503722470961634790009591822348401756326900889060642845353544793666739576665637761128828615740080810713702219355332328511172685414827601551632906555385676889367772028584624307056523266369060955570158489941868922904685303247711141389587118079858104656098439465098223627001244106524424259106364964660969738813380839542042780690595572394582631072864071725475135451177939565653916739301678961183759495286682252803224885533226717680362722290901314481145892664650646739990255404198081995549431335742033193597566161391949578701183319893412986887148720465344261830375361517139811809424482038549764452048194479534969482633300279535413669595544644361076169677826158738506697561335733327171151553148105228287072375694707667269335131671613765326410115961190197420413172280412787303951151677336165600510783281638685108543865904477637561244305627788772530834644712369105712154857743239019392099453411321352118721000167608176159463187122068695625525646351457814609472307610200205757356579749398827784902088232892343779054073551045460239465302770384336721398350653646637775692700916049165335104350752276148217766162229179810855248624314798817394871762820475985098525891122076514351950960064184260707279634135369017836050763935978852971460769754093590547947226432752274107075358640583665542836238763967653530655847210206760364970756520499912549159753769154530587400504689445146314988738240012334740976836791834565416045763704396175748349192815113699826146170322928024529196356197321303943296179260685068888229777341440882138951701596783879183334064925445643719644508689575731989554773703061256834182985871445835035471558947272197647160916747171794082175711594492604547683241441512541795220655196537885219825300924632181264013969652750973276187053340114814449838251262904386201985203715335841002399072103117090807840295012868144271874076728327704909116700059315398797347587914035304465603029338335729888659105151833893299330776161482871625965348577354324242117089371866076383841781330247796528658606395260900592806999847742448236181798473446220256002424942737185767341214581390153718912680507335018571459916118141644657716947613824586852991077431357382537422229439087556705919413138048175133120979724685177960423546243698054710079836759097669929252953338519269371574347551785568629509244632963650818018336502209396676496400879430027363748442263659347218820340496905646626814083397798835808848952362069259809611363492242668894593836445059622966538348040445690128816590000481261327773459875646229846591187156476294835838663091931480404014706676074741829129264837522054439129503495257656494187302869720979185414346416923930846028216168005432528476745598071466072580554088283325026188321047277011788512465112759020471281165557507657049825360969972649463588169858977629707861414237939267369575828941459573548009628653563311805439288268003700128604208957267188521790624382081043905432669752714607077099445879930469057974267061685556728330884832210223510829264147464521751852318762749975564069226949416084893449981558091870786829023233774117130585029546092487941534419321285898068139194668725801971103796499788955609140591802743859875078446197067879916220520406876737182137744878566693698893537785040890669168440702239349129478294266084970189693806207225906468890517185386556477572069809846920439866908290281572714015274688285041037305995822308359137975254182780401087502521302307366933731788016902615196532810008083782052210694047114738327566126386812208034814879454821699149496201356064390693844622510762860306021527839525997444014005332749710560802382325747592148823243463983386435748077141601916323496107351071862255704977882561683354977959354127620474367271792520333256856700236101748963414194491996612681300469984004199578429196819908332161719474743095060252139672469330224991615426877068133270339293806064874205970238877916933383253088311286909563125119803719972967683645339701169049197187377325067694614855528189485936569007161592821985470747397461786117823785111239787695758957640377943534154579965710768114992698659918304119114826733689613066610005922519414244049613417624832223914079305260084027547928470235274440174903861527146375998195478650604029998969126488914374089893680406749576185529798589993078747703095451172593215329953621081281167482327108392706730316807678183598177467823251898618370400530664838976034185712339958837656164276937211091789722322352503222360861861606340046392932494000592651525592174849480355543974675366609102921242177479677533801380946677394648487546376630778553917842722842925383178446621934528954471464855044571502343004831973359616491393399700082346437870893724611876610512368788328306378605846146491246194876437894713943482939349320364035068966019919722908286565031722182582154321859924443844101752888588227281849951797655810624622397934652145054518660944876979128671984786069454652569649444309929345135543147958064389366429825922600511835526602588721008585167318842524712754569985267391669654993233259078150286059323389600080255890931056990970914548577369746891340120486658277399796934917242602333974074226967119766597641965158121657392560644871123275688363982446986631834325391114880234379050716257872072271127803134009786899191293783894444670109451026193949189506368556999859766320726477603846985460500674052089659996593411659597034116190456227648294608716861211737532932373545760198797839118750830441219028327788415332471763697784536233176248581598037004719649837862630777965260169281829321993709791794832908328807482954105705237845396518450671340635809927838866022539663835747865537387930041396613153058195225380371404636582378898940252432986526567426944938147345634789011355925655713670355235225149304775695584959029081488348132770173092042464764344149118888913391476057182029669396450506803117076454442775426797066569003313560815231154145104768003550906649285549279781674134994277947971357653781555015806061552415824710466406792333908180376245680112577434805348450439905495288423680358520027173162295717703231153777418405133410219018306424883824851577279902890729745261671510868366228310446511740441918840893466133219105885258336089338366065103110294020927699533539674504955576448421758012994128208446853769077895435118306944256544951138266965889779384221423593114740583352465315608963448997692996619106429491515308110737547006811159284857761586915443090896380589229359634973096886756310729326966375249290805543981974865986478982586777191529985963857604149333119685013287969518930266391835308323906569802334709283033612998373583358060259711650648131870224423336587936973781858834305876928997361307582572358200475753902694953079407320691075671319541746039063081729188236725390961189869732607973911778303018470082312149025321193634136581903585206417266521525954701424523734380166055495162476870647309211948074096700244966855805887960107404872452659236600523452872613990571415085468905805631921038453536127748220729447733267860415720969686336260298419293658168687753337189461423535740848195861111552178681550682719821478625268551563161108650434175575616664109425497452520969374447181376811763586845434502985621404438875081789251882602861204486085570420076409639973580454436718998309430710379883090074331929393227224097730082904639000261265392470492410026008561238025928688657366853501174360941425931026409325714242087482136378160379742195477069621531018352811206892065324547433554653911920842457979191634102883488982944399276995282303209782555389691936252554710206569254580894525636742951787169739470576917722040980974654759290588217300371193516858412183435114300634055674105677759364888567624072248232913544651905462406622700275979173084373952746941378693496923999421785875446221397798401030441368062978691874426105356013749668837211580942262054007655922528223589756579801568086191736433940869289539223160975571438504252615886047266495888447250649197707839588400552006310339585713139138412886452314892514040251909615091356351164102699539244438728879376590639619802968211915536455216162591966542886520556950561930527978145807881239889446289959964794367310767051317850422868923658051779300510372664326871608537390474577562729688504581150471571236298545641732135413033057006251594986603315423382236277244794818415926135101086711375117042886339159649198346971078818673627708170134376340615367815927987436066166257808362425995547706892506858748931669202977203150356729575013686474546991041992734688760391350437687095619056179472123399151848115908983445112231408145283686591605037786260936960448191161021850231317322714590196681660160574029881714138183649278081044586766311275181615244992821862324463166966597904500287765737074606493844493231811609349384788766801881073145361379181086512683955381314971086253787780203013836502158842153899373995083925324333536222252776468110013616477160280165934869327586057440132398914493566232688589761256655556059223841708790768908235667653943175075271560349903325193348636854083127363777064678884073533520717245531787005896163685932563091452954621394392022486791976380049282136428343245882824503513867322249719538069343399124584708861818694397230782212663752518992035290800923573130515696095882858743547741943032641036787659916688019677698539663345527963906620591818978724273535221670058728026079799816859259802913280105566289129752243440463224422941599300536916192580480558765815244638495511950011751671315488771123705590613350004807850789034530422901467744386111705595694677607250805665896850791470737177776151136049053083398147645594383064160303349809631357049488864249380106016033621216713967142595558842742508420875046773137925116587412584499506798088698440912736626324325107069990565946966672835838475498870008116342098854259722947065864193488662245670835476920138542107997202175636172376356764882593386929954860572495795759115834798759305970635347494496689086117055686609916018301212850608912199111438050938994080360746410283701861857733149883929544991589570367408115693097476851926487390577240381623682769260395986712897128987764424743943585061052114377855386983095434339923618014189289904220990142504767879563003864778913809155252939887958847957158253485366692508765848484204167413128591669656117224924374362226136868163374627608851053037766169710887171774203236936044535079741964671227502482580097039339847262157187131968968278244527484818675396194838571529764938241976448592408632000255322408211590351005738104225588642473065613950093235862310090881543118542960791474422951186990230270296686515295031510174963710771973762375958019877267140220913766729577225994465157735666779043342446676686883970710223440126593207936402490571676270241022424457174021212869620881193760834016428386188976617391978249636792601841928750187147370625578522115209857564329108515317471874815424345551897266929049058493626460599643269535907632920249830964467911125473838798006700633853931985826945721797926047856703098650209377103347608056658334774485733692008719341598488078822576348240150353530932362679061762740330829854616763417231081847260117945978266240319565975178636729795387340366589335775729098428074627486498299297763391621670976741359932510802762804020603715643022478987452601671914511281539986347761549618562328621476430394844529824394977386810186127808381801479333820219753552650100960717828580633304032176916166012512503341794587567863415622443497190317367929594063174664532530145709593267739463078012983889563073150078849225576704137886253087860860451003679021985639545110766429744016775093189811655778128115195730128726218965137214003654926416914221662546051278775232361480318003963400287390359680396032379260162356768421965588407989653894445117864184306718787793737106702663071170172598019600254022472900559828023043808508934260458477811159412544748111910986453521578291098231932437916404429599788577040379434418711618000855536259256163114310438956853704965241095700283225202102413989746452503395780940629098918143018577290400210107905116824007410023592449850111756514052820015493374837861454881368425757493969779256994312300277390132252732336089695325529772014762559974211484454889418843826827954566890862196594255207239162396028454034233632738975973082323898577624418856815189184725762555379130684837735453587235391956714153663146104085088620015147088922396160152436881891123571150443524727254366876192158955392078474839602943398147337044477712308866206810260881444531522231198503610582154278132007114214294769777614151355723333116792195717503849825522481216812402298580319791449054265240369581585759272029055653374973751531185644676869711156514010094755251416494510763059361479868693472678239642861210423550868180946972606224517274530516201183192001919518551245996745654200470824033271467330684687914781087787991110473538552925815809885243535503131026966762278638526915862183852665701587421874119650757382479050244298074434946417806781401475457484233831685674142896846798301905403851988631772322618255987483796938447405270075517684789834403508688459481725095073804079375858484244598111168342028230044044296850116015367513851155408379722463674747566111663290286448466542859851818389515911440087272484127134384376067949643468536561872438506004488872090884372290335222553388624826436722685409795649888751178920798682010696578990374250453012597296753242470373945694168008985190696260864233556063407989078539244072869315477150324489331707935643395678990470852264459840380916532301387183167914565760756409053132317373863056433109453391226035339610706447189145840229621357584427513985970760492292066110977037252127418624283067924234420432500001035771537775397702791480555762769878646229585878794969748570597436879206061462476460940620420439511541381730524801032802795720340289701306926851331111429896959920642834611412743891855155607910313451249002197091096512283791575909910928787658178572484661348142014299721566973666138983751317105071167971779068590204678513278965814579694836268213799828675301374572368324368519926389485458177325430803762432633323711200324853354010252001843859166410244565364624372802479355320291176307922718169476488456196629043310110817845014027587927108756762091814452474617114264679798346851674689346437747569370408888547585529039371819258714847202891746790710344820508005545749910950456810325942703035456044631041756897242807541737499850661252316109459686658467285052151119411258087714445720099237784047499003520722592316487089770503569163710766460540896256898996341612056057173321676785262873109049672335202866481279905476422613995121323791370710487489309002311233517587650316621820728782690613266942515507630884356467349071665952581141013113559614559599357672599596748617601031500562589569670198718012142701318489155440247140357480363816427032947989743959104687496006035466379381534920657305935764804116006643942863868482155780812667897555930997897699656952086718148548936752918866380427520997468248586664637918693846099382431472567000595309731915559698387254683755332907712891637768755736855162540499157104179302867836546535957374567176553534147191999199477256288857708904824859860112188716833189945581467110694759845169461121830451170093841228583178932401269982078042996420807786240195707855576531408590434424647030030756805968287134297201206386813582028145623047990217219144387582707002310184809688208284656423012843262173716729218005126600105136402402034971441203582215619307882492751376854105200853066077870775028321596006103495310748617368956890972119262056687647037688280111201512606885096779534451976007563380702239930461689135499330954638679974459506513815083898844019318288549280061137150970513575476555401167570188386446753773576417192746836194367632095509784454187883299155076765315762642938069817501675290362209895765360701551450229785021016248822015240453171243632940177034154408013543621976531727349554274460414397827850542227816739751350055542739278896523137692966175721770009774236493837997046331480699378036100803510897172982841665983644632391524075008888490193136828479053057988157360732761314862843920011076657481358045361186957344019361131634721919862924109028100219762847762053276336443378401563575482651536347367121419462861328542825879508310350259790629922369670944044979195841681678339374674189275837928383336423887871486180632624160168873944221848690726963218312623135729295363157858950352812315170353802758884319007365139213364515620574102178134523493308748151604982005643489203102458178000951775586286503359584241128545488460928612021806733079630792247270695232943131778011468228779557909101306768013951528903857373548017094666806888830796744455265207700287096313815026316441656541734220212065328357989303555789586445562089403506417603951355217474228052251808847010467406307009538799447134748650789494067700990795755043114503019572741348618716626158020887488847619274995755727146433025526356095052937678755983756919203889528085084836063688151113556459929730119810091776628181231172548024724715152340326671821453209936912827784011661337177038140161864460111886231543836210978175158213397723603420840101354530387280902969319950857968279672086738119984403943747388688689252122751225802804341971827333918603168143184617758544018592129690078982163125198898710042859102821780775558247981612040151447263646434688707958944082336706866451191524924952180644302308013309823256097069849138262076820991566265859337456243708695601263603416547213526341096161103678063074356325791501132058564214371473115173971001480368464527843527871228969237773109534298824016332399702548571473668571602093960568856874115252197638772372632997664465860700854738045951374223757420107549171463809654648909056775796931900443299636320349141663062583571816754049612399029007132153367176233655696501782216091917336356597033571328339143134330569223842788404290259830503804682700885549839580259283571841227680641602661853986829152811275763791935914400982693878035143581962521882994293325988403732699070403544209263282489083170305458541270706149162502964533177070914828443225912376287847657566055526441646385488764937905693569190649321893014865635312135685572873243137328358818497644625421820998583324034785881614975169828826539354995338286167550961141594514411462558473914154035364000739191564134012347404011930118843544355559110248623384249625709302763193373202599965397205654730353502511843404142413309520500071076766447594238733931374247380590943991047051258537750246628726174583388313604872268280800852509130692272385646063599531674088851292301062297559848320264428881153804647251627149548071578041469485249252908532254355812543673714853774060390305484085282431706414458225660606750268836668778743244455146159044079958616755657152462015060635177380654935052901142894519585254320813742376513060533531600881858122946263256402019909255117011307004005091176726452485865743817789424572175435671487222380627607260423427652804178508624505401735992311341194295908337461022569565983492964470997859276456499015508623792921638170706891791591851015716108548587310990992585943008629281170287690606934475483874750298277834777879370981653740006030676779058214545150138987635100165668762532015804173480640872401510042651887095758473511154362959675023766788108817292364033909420025660357192895858486766136284683219838466137680514835421846544307194578723998894086696537334623266932762412734711171022542096276846153782095800899770652055764248364647913199865563417869860823211704721619425319524711502007298037235524588723348981787093481202516104137874494122325628710179610375537022922491194092042023826702237208679319405068752985950519305187738999388478380993109283583472745981814743059549467629983855224721102384588315682953951377681275309824600587360735031584925641624491630287007668629525384629187273327309557914392944657482636090055417959468604200798639488298753371572311676742846102035513377979191571854659813023990650511070392635368980746655296942597033891107391681433930759132753142842985619894008550755031706526475244007517501030377691743651865317974512087506819617477583021383980133878453364698230835660116078047677942036531634362663453828857751790993382173001011512520916118565602325359785349364039939787777023843103905247207347411310339544076141077550507805161746471429926077091055232756599930806418756696029823134945433458649709225320757459164112672892374559421869131488143666921673327443875749213282748717854465785477140317593121856932206181599395892699231404857263152937415852988528282401342003055757512121394845776071126685624812729079634212414749511547507087915910233768687752941095067003379679458937434296477074688421680461679786818527628011347117634573186099772351761862319840623047200167433923960675540962454926784045682768071390517079174223552345424827575699756107584031191708307256222974520023075129522517470030788685328542383238553247683429545241045630697482264846193082514617748701114075717120733524174098759466178711181437343150365288072308264254062798231339593267740903301098287249293952794707196788859671996262193563159369671935726666417986498339742956987903990979512295668245476282331757361578454710073624288349850803929842048525730581864971072037757366791688777358632312128829095541151655178383527492309597712208507650435741640164756876245637811351022449250600954958207330006220407258463903584763938112976748739298440452747222637885747112867743670503694678046985772691995810534379453969724410199949489882169992697833206644261495941830428577940306046288280186296339216862822161869956715051835791987487077053193690460955337366298550365810600249026490218431235632359030658588926322377373750095543708863716398814780762430221657104540600598888402570244614151688504036842625964572587500386824777971293539469490036953704862659501966108815903287620182316745937633293001105752620219639376856735471702610053626702257852280240870189935109652854804112096951958653369420380961270942404789960540536387228568155637398632709423275784488579550364370081700807600941295195426448534751594857202809695034238867559350697767915123627736837710340629406148491700889779399020394122724805937223099301461451926712691827396398677647068356221688204380621703062513542147057519059642387478197873213181160058097303841659502039291219128406937175940571635826438329854832224320943111744301962973398091578876327686736969400034276797742197348678518008347038159364743427196002391116232422713529338336729354228746698839075132835911348065770979268861976298519168852021832282642932601135199096847227214259780336959093609361954469421124028281295641045235227020534342935662750549099469353708715930563357605272563679069701651361871183524654417533225893875540367424757774293419410858696917667795721368849551838281179902253193431655040272084537931325387672991562630363211146951603153690109102966644297806105403629333812686461416422980272772325688853482842485453344004090060333911136553732640744049443481291675348041656579992742241638841869777014100338721597687259573903238123678271242684681761264750270569729909057880693005394611402172659780502812257139293582677441110683671551467986339203200122720254740430094914911562430753666080044089912306076363368824090309552597316437598026511615125563038835716573626238942143404249328251379014279622182200191374344843026041099852349538435023030021975239254947138431885659138282345916685379991835526560239101068930674765148140922241375332732077934664602550769251794243883423849178981412172846918365539651592046175117837638212059945684831476216287648903932887473600413445660298390171024640177346440885897902786080612449322235259138074551637044494259532996854709096530796015030607941256125140655835527274278919663300114983976698951285531559524613294020685074256254446392631705975764869510016902105974940394525414014164722727067986877985604764336422315536775271052402520756478923549575874580074266460712905386779626215180523457152518478755511996956931196621205378844530179894235292902375933934407411027645763391281352807528258650349574965785253954438199030625365991341133932468057568287157849373638878814854157052527389540764897424572540340991691831103987400358979860318170177687348686489109549060737760142281126424707958131003740051061604463598554511862796327667033079729482299076785151468171411473901624355617305729831814917889189986205752452934887428891603302877528098253638543634633006090857675015626499761348566352410647992995722556643879254208996870631947922318104831172774514833376997224352372313784862868898084933411950884517728841975578604688080535821293145255250487907115619306591492716418607900230271576924010893519696501766319256477686461368324412906450522292360551430472263474138458652492818201497796281933717525210625928644531630590918629870028789627608835623432832169767092306429857262288279728836643541191053336593576172801684008760413668456246139301097478692169566878127192858930665495946989877499932890003235761275304004694018591427800514075310446094725353912046841203835251277746933668859535598782707140470211946684858038753845510268711578498434919229050601402336439262710132594623454768475854609406709790004605283381531654201878071078304143356021137707459542609477075954461412621827488989944647812058384903797869362362412287485434780491988691935640642851520861754003123524339533942466000230861514337676293980821827142767580152794935110363932430937334449120928325915663618424607290277144528357717675172303587491740341093918929680186252785366749674981892514231317084393090663406942560573991218552964582035825056351530065955773669050262747173071644995332526971779826947679974215912794037316668275389583644327676271743621652196948936839643810836039290383764211270659453841655754565954643111341590913183128794242304019780195544751896788101875566296971101673199988686653357569178029519474029483996848385324495498204421683716626631816140415478871160569023763702805600595466748447668775110768427362397149126796585101206757543571425124306403250534048858033357442989384899104358940634436156819121565487599483535386978350106802299656131508073214554175074589611836886425904530367440956867835571517804521859749321273033073114195546814564668667312360198498522069727549002008037595244475483570178615177913373931785659347866348069399651098260593058590871053620313507361688505242840663482522546738765286328963502255677876816741867849678722800146945289857637104175823033474483399851925861289098970232894791327224376383782699057864150339917955539848633999195083161231313408782493921241932016994856259440479152496474008970778378610701886376803827842870512705762036551209618971038658461768212013705500843036668168886020306873506696429137385578802697774338230202376722006738454353606932716141275387983089488278685433052506919148719279747394053843013785203043855425791250100017033310119837002291449643626662455728868615198273013058863187509189184468519162325459300238748597698473372212509559267425445491126237742646749930854642484356858217612098319468335662895135650394191636599078388225070142519506179004738555978711572347122475909448724874229341398894699799129022125946005047250785876563025230564353803416059419365537888353492660370471130242206359659897930262659131912449039335893176622353314827082930354558554785832483443600449411872205289031977247379374963203789530560602505939698988858588708650133522413457995987266873374166054031081633769635466815811466721579862950475355895049128978749017549993625369424753260887057287270663135440058713897133452743493055954951260674112024458032551799543967906257487173191791115237015036181165059574114652113191964535903374424986067474636168608855983062041511076918153770849387790433428329602064871726493960537078411098979696628495997808908297147442214825278708385009933848035657832177207732575629768792332077571788566519385563035229310088951337549037543391334971969013245954675702057807261807975448345165590109844881073213922526173871035415305274119446686205696165587072866033011856080261232098509061368475104669939966715175310946027017134561464344527295411708703471871736095510706514227497552972104746445413956015397148276619991939212898163252231305954780226032784335084686115554474654179376411807560180505239629124736472025930162310851890868545741046114169936905148141255570127777680120334751397420664064196230782652178899639519396420777811821639702663169885058711864751614394404917751315496778426533830627498330779761496680108761423067520703586006633103860607605227574100196834492204542733663667097942771397461542553430212408083620048023283625595661057512282237408133764534571706497517592625695486217212884673164161103499542127388140920118117463348672942179563169941526759298539919736836951424760576377841026159959441639336496067746481795723438148496033304466363602593583036865072959370759197475679002955142901121190558045494113148700746836053067854893040611003141814482325829686012993096928195574424631606544498958772604503645599581276521786971559102472394885042838568831095477934970084673445096094701909169579002985355274378023157491987873361342432499315858719409525093728366047625082662543777723171997496880969287906772422633157395018142687676207406342497256577581729722988689293632006767426829657301668450102013919781755532151075498246696252158913706400805338410561604726446471451401628373824872491933330071454691290842250827730147803938485261299685455752706081224993483015381158040896495365174289731894259006172493552298689750328585877043452868845143450295181090688770742074728141482839746053052025400515666027782304363156541072886422757862737001906924753191327949559684050831164692921791968941213411981151791048904048024487712661466871566524725020873083992450021202322448623026523225138810567170944488841675709339425381643004814074253327445053565694971222405834101177110024725093184447037097537964158193599283581848336639941165422772661464139403548098052607366460252602384510839702999664662192675917295309967777084981633635447909040904120734589905564906549768590643472956096755693536418558384240036961615374996995707581815068783594572539091558215992964511941888855234094208529579399990866511327550970406894027257573589649542575744466186345808649834406669084491358960946120921353147605958396042163824717168616063519819044047970344336289017306458767570333804789218340061774955103576712362459792694334172545936264141189173709486590164244323698690107235542522041848569268899183334842374314737030522663185957217018902295955643482876700808404506857359122806123608742168269731902277251942700656511577718605300264824935036224056905050077572647773507342822261072984300986067980020998786617911589235620560617644099196302721661363459726851522095517721957081472745228683078299457228068425739507780659624044082967805887865090649560256266691009349337259927062155234856662976063650363082628682391715163060266557844046296750055184950406460674711892021785632531921488056499396300420387311680552375147741544845963865348907284249772349485490284655837287174371616661713866676065604447533770318712116830961244970115807277116523093300233092919808483783298483468877962737290513267042842444958232656599612594479336797848641530727050786936240997024578361117494948763880767306891998868535133407338084053903638259784078459422074873746149908347681635871168332689042662514287878655678063178151481317222214388317522376232379507823124263498816153043079345275827118589545777489163502751009051848929949679727083454875341445032678783951481559527484535396905530259208982201144371309854811750291445743759371113978566289717266007770703846278387924771501740447410616268994962574039236919237652509701677308993665756078111057612818634178380702551352962425527534708641767149653681407039789844112906667601069523829230435127323670460273395868876190387430232048901805169383875387228894934664494088432115777841359671071384185047510992172389918824372612405877214675562702248056378516788249928199276520838196500489937396340036321630845207616166899495125848959835701045136378210571147476803742588147850132869246437704868283842101893094472884222067381143698397576081721108724265907592877300202781577385342319673148397454108931318170997975339522559755152386703499511315041271674080680212138515953579961214195215431852677604096689503714566929196590907262079297887369938546418508543859209158447564145337792436993355461308409907437582563614726965984618139183892598661123186371087583255799821641781205810226040150695901419899305097720105927112204122504249358085891569205225438223571453444516510173943506114595685410089469306332813182472879090024968266814690748451558103357551050418397048807764833327314540485518183232390422182936676970593422610555477325615914945111180431147120411702651941161676477387693295404965850343107753212866096274227777024619118242823822145913324816685915779247529925653539455431853949322153522552291937011879928658557671307713601880622145346680674930208405116529583970747897386999741627484420101453047158986204149722177294588821728806362935234166975183878498356645677089252240698662946275436923776442683471100881179186950019427861135602075572604895705629132108045035673339637244019665063876969788755517229412965441370146574886038516002344298826863044878275426243949128674841541573583035366026793800961248966737891948181169054813237834343026384746991186637210619368379796535318777297797889794214954629693781071539225950838098383266106262697206996892470487198037720048029679840038618250033325211111590801862514674260030591825460717901312330803232080319693241413624841743502721422970154678400295578827020888474334564431200386897451636842111703346716040201543798126242692939624310147904140713330408086913672518167274505603512449723105488678018439128875195110314198328590287939118779079449615916041756495997368394373410988996021740373162480538330807238104560389573939476705784125364555408858082825132832054405975994062977166244869130576643506793345325757251929040281377437184054510659526631492919911806266325537410797985667564033392608361326648640138756372489699981839654911643068626203771409699855532632295163202709341244736452354346477464708693982569753289500380909761191233413404814919804382900701793063656215016380631508897321400516145646804935287661607187592773790742542690637490479757504601658808153612353633761458851369736209323547354566328777604887097332138767933664265799563595999194043483916933836716423428987601026015760744240343253630710731280426500498930797123204730057729024007575868482810291074258914889330941200825370381244211547189148251008937206379373647101415305585078619031685890528609488935976040975821341165644715136069787822601335128042717081750086479047422058126370198079794725787981613114524819010242298012599175209555167373752131972991695920000047258493587898312352449594226540555120225894857202572919318544444684023175427412522515214336538917402855090768767916316868950700124402944052447967876027265958613439446650596741785281925158314617496810291637400144471957497170649805381912790889083450123439176360388268341967635844543107447939246666552237624051894056475319000679577267992381732791085824308419418545160425888154169721352962466413390610902112590338638741773320759302476200960527221431383324374649268606728422286414573058660215552403672633334561307365720624716410613205874679160828230872119039811044319106060117255662345832896423718848700725447768808087982361865650194902288179011414963716271679152757456313920277759372917824042298404058565744043249540579146136427367848604641132595993947671077439938143955541848883935846701053545967248359463442601506636554887368206130283311629555521193512577502993509369049545130689931988421798072437036962796743727030433085858560694089168549651604109074559114508982111538769997389635224969156832152907015442290492811269270011931908993908540890663703530377814091941782331644045059368060428936298179981992614323528978681562742023473008790828566149032684020804765849905637799924303552372551246191812960849616852289452733281131382395250772345839145447232806386460382681046964882379253870215450540739949361813635057196136767786585832318774577384470855217435709965800859131935184845591707024467129392941197179831384914023458604397497891913933045624205219878769972461978782928097770377593151956467295301698969453501970403148100433235397298828269680145743842593482399870433624238074781477394444859501095800372522085586702252127479895268950975635615738190204244220988183864530765225968091234057131442300156972098603658863805787961354626748546009589631941122507777947226110620148751909160578552461762057753944558382169584590038421833637017704752178452016120503520718817610227700310378516982538138033073556084164315193100028592368286037040392490053117689555122534138882854564353325115354008491020289500856642114030026239957216557759580470060780536485540225268047504665438255633369636615894240117384847517692491777030444939251062221418975635072963932488849693528872542984643054151823985741812818895561842414084294591236364107330058377355023071662736823999342974458150506528499241598615187521638223653670761319147962497782443573118476624710584695271374278062953558883520732881329670941635091540945191817391760690869553036772700699895238746085256383423256594893973707043332574599529200837544719431084328818358487374202204545443559929242368778539039925080284395326208557196648356225400267288332880286062168416887918502679397763586175433988990852272468606178859921774001643470331648431524415475121299853675302462698327889322316343958059055149523759347177716380450291514041518892920925839378399834323686647180433444976338437378730300595918323939027624803641907117642312125730181018086104694111665580283957380881519511103089963558606759352068430365933066242128293517200715893441197210623713881079005345395370436010606446826501290492158309511355056173882040084023068135617671717940254389814378087495338604605715707174668594418816772388740222590461497454135065137708153527323960507115236137311558237100329932641705951415695288734178306970100847169042511941058059605832735058201145379700515961645047438893174306640682296848338300551181977917631604034586896073223420923584349559504876513430151238383125244800126796240137184843651891496768794952613591012563919755375785748809816966095779711217731710955461346546347689698140482030054384312533466100074997651931920324219999583411336580730056777506375959529057731438635374753202984505992410698241743023983658114956642270523121881624008085012957801172594492119952489394907566445594879139141395972324390064788072472271849364596378884579609596380060162727732029575053073542423893483058424802864257275027921775337296550860846314132486591521155302062361608429411976426009623959979128407621627002105666391909133490893683418432623857893611846130741176592583771313581990242405560498572305329715417026732451468738082091130462365789226339197350480273128769440875594525076455964995206022450190049650077014084666772147294258039072712873606392601215167501988221667426449977848122207274029253757329427470996050321338973541876606130602196283086767390986696413400417331445642477205138954923198045542381287599934050178761124407070150267479330827688884949404274908323374006649883953101036599770010525650551190926197167221211470848440381777100417239625766770082704450875692962615235433706187251470584766905798192917958370189140603203007213877507501225694070381681442380161739568629568502544552082569944998168037426658944262329984472047170844360886466579473716078865710469119911053747247182524921488245199423284027465144214443701607136372452367631688448718713618252888593428191921237631005153988281907092889847763970335960841590511545423672708876245642873695784121166119746344447521838663085063552258440008024611226393146459455056119738797588239991936848077719505849666218925676503313475305006443410929110155418790081536524894752087680232520436350979725265922311820062840975301811514106619941226727002431238555916276503506277767778045474245757739091333166205926371372722545750781389390697049712685891015487555840619687744888214596225227338220280734830529780070651656285689553675743241211386548530929649738037669242245055834990071662708482886833356795789611161967235260684075149812125178958138878463655109118083999204808313055295274610852861560382094632155637171755924644898025860640491013953327089595157778989215622489366546943659477607731772574690948513135363009637144810270223515616938643974454234709449171752271436085472072529892875655023977726068501815941435506115424310663937184181588042557638910799982236569263861801431113544392644604285569181461142897766886936185403613485540982932007278718428043767489496483982291908193096847343487963342813668314131267047525000220516797467167137174351635825001703158307570523202378005204348620866681915499709905456782381687999115845624351518687656814944870080539094437621463067254208691544290602770813918876812332936534811881096824126455890819447686557159945131042477636856949298980403305811875660957279268804486844667171438768081845781464353576790212939624229205744442809572292158166885035598556627876106729288648128530298768617538099304519297517139931229610623420431556020078985502629470665896216331379515588670267537448257834614749074852466467809577057818199018142349697026608814118577206969757425207096570050818455521103355896104812702416428917903763498769778111772889290377569436620391615004507821419829818225053997194287781661830351909080137321741777220968415498087984715502632844565397714437349585740833455745422899462486319433912519076795125668802285841247095444521727149849666445007418326515786026332147328535106143505086422115996894611523637332685434710259153623686854706196392615724635965056727610523612418110806799823965112317165603369186926481910254708664115944526169123661446531318508103582026977468745444608565057391139900441406195876421491990348871614046449418138525833328550429413691076997734313830649871427625533246201719399617710872394151487597231683777542868288223104914228548292442559387354947943206359265120856700046132606948118306879712152519281685372872780711940127686125950843828524761024678458369483159676952537093824928182287806332423731628295186111938129036320226459036127949863752042625428632176462504788645126413514629896062087676076688531115708556995137044525721015270616896256347088647000074872989176527589907029043592378056144254711392971072137058818584317786600228964174448016229986076197414298916123515071976692347252947076302677682963851751133823428133448295487164490261788633507364016822465705541400706437965423652202910987408806010950593667222754998869035863567424680931602233312166907089394010723320967014924416719688346682932989620049595621215440710866417894141160548263566880224510582850300193232938263156503290963027437526147958873247656960220572959414284107004146789458918311225583049612895525260937147340258110976015455826233554391489169713382211222712161873614592139465760661807177406326918012442633717588503001639820276290812330028706326800197017502528607259584038894089279625492346606080376475514990476134269814032645867355574401165129309628225368061609854998958692090928343104227841728822018004701110347195127878355247474234439414223506145212464068277160071043026861615579705035359141482140601550128070690539377932398926255185092208731830459034941272694299208987764852160614655247506527946850993300967136484072928324277732802876374828609244300214285422602815143895071820640022682922783894038143540713181772367988704948894549564232047338062494383616822037731295354628589869524284732577821506197003885965087240348259761155438689532556992838671809840924652043233170466772243593025541777089829645231476235042352159844933916659647367312406724489498960052189460865147045825452329630766117679033446777780946762482649887359508193844264073004849011543499604377268810924184603386400530698014206784551897939954290507832106633653842739238013223984120326274099597174777623140630764122242436928650364591552572448406420856697045313120586924105323259025565056836812996352883889520799137313416811604009449768726113176193727402301269243798256125154049160098556915772400507379248060663467469730754444434183041776840913410824550359970480310078013324010833231242919623912188206630660211571790020584508936694128498040251101335028393317300975044798314202015811777485915442403927343130957635508091745984485319915315982074235572609104748516350631352261420896973655308300700198360469599362805083994275683405693933910982275871539263324721935197056498017402773452359212346572580798576147094267668740916268227881583657411344469549584478786068242588368335024076548957209031629910248977493674918026062370932617473215096797191109395865884708542217983193840569598031424430528926909539728990321890629074662159439361359053909016610047310278411392900479800202779479102289170733139021999934895708953503464654916231115132210041070343640388716133047591243822158175704637339066140979938618843214271251462413281467132962131830707671026375895235307528021578104172483834958005042684866130305716437909179310166167111393749483206573675836807620535070536645204566015158060359651455451959903917750954179831356046751763292967464298404728652032005881452032092054498931417919311680553275884904849839137532986091945518918297196906436217957129747276863262426797756326482109876772935578783903445033138497647358956660925422487765602217853436616971599646958157593552393295820063870937470489283721178008808878535102785735911230165238589430804107143455015745945758970728993011666488021922714261964827551624406681024698838191577503621194647593086575759582189302838246888899272679131547952203057134475036159550427791750426830814821280105447992078313827126376606542413935634847158935584339765817371425810710658781804110708626953122198831413038328430501731879332840064496788475960554012057304343833348700944774337217291309750529690468129553891162434020868583520575135656605529154316666628557344558933719428718430656448902260594966268748416379754845519298276138145781554728252865653973507832762057308579773134632075789114631786103057025431463984860612664652078212657010077297340942624265328041397686608413739477126270295937249244887139399432729371314549172767975338063399672167147476600033369525328684558914584328187720314764351044365014910198484841052820891558618565473554367029702858634203151965626291399147951994224959873669674048700193583422355671639287789144185636222874458170857883855723583155472650463176730880352633515581382601260698223178618991083940040293868466207862945494361352369290557957591669101085873971340767147821417707969116447413621191681186897312278940957842390861780413266024253674656714793290968038778035548129963263590655628559370691207342466680737799642067280590480349948015565728127452025608675385277411959650293367041933372145104681448335815747020738049087803914695442641062197491226922777008650600232109440681488496626274867298152698850117725410321815414415834305726943452761125613459253577639577634363635506031144184425819611377814149625463741214329193018648214203096785162693965929441598219839595288838461286189137405104154237176710722239324864957678792081780789467522639573388593681515678812415269511744971530345966428801732641850974513370773716779128997072711882415559403411143511940540702313220187422141865535330861533287715730809742542425525480196024752678170716565183696462063937588525334194499811395160817009618918825153485710087542994512094752387472836714761427443385334384067323617957261901298826591997392486926389591118636686979127421376827673850692084098297159980037257050838564602584173633637942298462547028246387803205676502239772169714522661697369666257611204836083473861002953979537666631087263901498239830889920650374225324354140897716097266732736137972473422030702718038923886466999906923772052414956186508718333239595027799665871534724028903673693305854920180849368244978503105525892615285536490338251279376090429678686391161659566326225295480577235555013209861410949117837336905907550378525198880019035297630099815929649405544946355086307968711615690296335826847251569345131615268984811917453738794133662007934296287635317484961565396871511477443337253242229732989600399706016614631649962370842488643306789151556860637816389042498135246315657187911163681933727343324656210898983118756099597308708803861334291323780882207769649401981312977535156625888662029768697820773234526295308820806998082674315684153489476384867236181679956069939928729946268452679025937562955216465921185743823766217464113397059360838390692086506455604109567554944593721015381919146803799705715154017610856862847140398378196140798006226161552995854396048278666750123662569185034623151629238446059154191091320918088959873017431543506336840246520407477849069599638312873697870422903865784137511007656382951450625189357958296040080909177977852336203988199107981225344301038476242696251819639875121719026647131717161065285891659832177955372565692401983225424902455291861794469501700798068701147842764773728430300019238147806439871211013920560694981550382455378522544545595299038714692200762363138892568391613771888084394848367353402838742332161626369097485959956714254788059887718657929569071561365907147532791045700062213785730916732763533200092393057457549020886948357796688476106995660013030529018465902385476908560049787752426659980884791937627632575002781768839212700908424201827755142679215454891782255044584103141778656042966266946761401286230896609338435263511394406844529678487197280803457064173785925888036706890564315168729849825164514133900057690894998274751379438824539036688269125407372570646568311639545986257571894425264801415609976655986137014220784260899358837396051932993296628188523395817871812530185637996870274809006121606485986391382416881453975782432173882737447166698853589259336794078134592418786336903334123438044417862520662042786141857984616453449845952998481363008098510807220371634048704744466410260595825544947402298010487110481370784639065517385278615923197993746048509127236710442992244239901241227725585575039697189727974776674305736085989483727414241510989258976612694557467139575083558957072188086844776327081791904957642799503395073749454736876960382273892126905503206240112503011175567330054262377616474682418146697404119330577363471460653949141695368048101786585902780953189271384876216931266899753761100029782769657347450317132009805852679908689352392882049268323952672651798182469400819977668879533844950745160876029105775278255674436732017465875810673409738505172777095974336603487497751023213894479273121853838544637861049788792447209839462940185778146555216703556685985827192548111539023215581600324146280451917939789511589893693926538530372366142287741658435501030548787034101395429624200899390930520792284945634853204305616849411140605465306758968655167160026432879309224477154442078846561909494723656825232828519279781604300024588220178723120732020520038083716964569517986634742054714050818423195698652271092875387628530645517169324611157643950892204855710616307966960353572524498706981170191836342230944717830063663364090693919657133638403307846944401497117053053896292741378359998002707870562105773220043894628566476406032050623580568467272787190937556245707540518671134869830562840523378716395351497117149889403168203174013026441363849307957745206040859112393808879089912827353792162107123405740012847649925300072856187540731629374818212103627449866607321097803025718471164402140833692943316589026723481458718172844751727964980525617815163812426707253853725890442358066262328999151117766060265766722156335449872458119655243082770785727519261285844214269493831481572430159962797855739533496029495154683365843713082053681858385652088880185658831008544198864871974297859655738129157323337927136187254374586851346643539491659280153853339453123316091534851434575757609349521306754192578905122504717926437625742536673600343934688618378708686623527665446842921133827280001852399548823050732882802050675848397421100738839458439402181219998414714512064300629378679405797025142209827588411885774146048231744734221270763495186267077662658266397181346214473265143711574200125004744379712725164479703070088080911874116179388413410938750026185564592399468032258063798098925678487990345318232881320571573366755306189207348789872509417248357333021444222744560136426756651386748286757571351786793503950000255924050799408480300489375960360402440151829700438751134521887930979999841831465691011507664380819729596150249886180304815899571523599802381775042072106149525598085059206678323995970075486550582515010087049892998533446167124555625539630022885255432645905552927617236027437378064981876324320713763544059910782430623020063494305154013794513823394462871231649461557662515288682092627414173511595349425866965648505450487909491075567685147248415076292884834793507839486336172108877572191112166326812322440941521279670418148213899397182861130549741629761342708189065401851924936791108012374259884331734107833706683794068586845747144147735605352082271081129858010903902777293638264586001643126323224440548568850423964369337716487401857234481721927666266876465105146615307200289958866978470985023649127563302113102402560811286076918111869824761290139737138516269620429675248436236735769447389722371577446152147597472631093497826400672463550872138554110553568111145059407948026645054832173499291002805998507854667352964594796888450806406895801384510384002085517866926538353210132891602290615802853473220610355245104034383495362316162349381028162250287211283085238465359320786550681510538655846762005875593823674194624281656252375012675561821393569545305569105830483795657767062847180361491937416987238105627282538131811618824795940978684167264837865804500890337448904740585411116170954822917086430481446321778380792167272898453399829027675740771507892847636173638669647039516891489116981696020587876208652163143996375804705396901848829402405378526802181987919188184489594232231906987013927372731910725412656576003527243741141784038868569942101842093425357166123971311768382785190759186549424072099857082310010723026484854587460715310949353353062110906813225300790983405245815606404145177438756402216708249783759070108277005578560916065624304995379265984578045561636031254924387017164373627261022516867216347073249560666070029483301607785494126275013152698551782734991133654976151425100821177621131266273852305739588777776818352171410699360287121033340380874258415018057475958318138822689457958179980012751796069991252383374970311923900469518036621886329208236636383301082604338154540579031829570455186513686601398663435103994845455439165762840593981388894271844168688610870634769737354867365589863181129413225574825793609598210245044859468685828053532861868078231863761417792500467870629100125363392575506624396309404588779715935506880148380174297323968864007483796920264881534741674577353947881083561746460330567259154710225687506265397462145232622683051466818927675500142715133614463340005007215235873113694530574043808787061078780332978232054826932265067353185855364168651316487697708100677374176471377251100025275721308002932074742552870950599740140995208461672647796361618631198116438230060351021534215752622310046110949964298835740399699441128028737652160634074889335944897573644310634692859093389244310573189507674293763138141529334955668173496613302466309500015534513842128549058409907071274944780666655477461781758970743880842713798128102094432916324100602622409938140311744215131967555383254392680529914087868584880028442831346362301717839927075520766880894184943417202275280294373348025040432147292880214257252700910106045813530445126929509114154751661352587613277141413998194415906339872025067078641162593668564462222067684026871408020102908864458640932927473562323538831389067911721349696656261609600204197696137648534886411564752584728629247164391754536946456923997255332405044684915577061447184866156809383132203425243584980141029780918315897928664325017575887002310898805544243021800908750574205588526124298479293392643455884637467766699806955807434903393555112598570796304502857083633998589284478748781971185934776624785624897208642442124505494924267739344865237369593856234548900638218483597324956631268316668002458250392627725067026429722753013900703537557795464682178793704717945088359227253659132332566814842805278164378553346332349667592334069499520897193180751510717383414580875163180704795917361511281034854872883347358754173018028615653679859737455158909722718558360922934222295517888362985463830874998860779265478031919303704988862777659418066878630482925641955542473318575074281510545405064061071118398666919578702297146533762161453443444841425414962367097010385054032284324310270297998310401695619188434559869455881287968149575100875953745127367450432748113559479078516925112605616338350579605103999372882642238302454355983066579052170223284261433365524764238186513974350275611332034235575932466231017552170918577481747032671055448291347624106019145172869892426810874530401891038000475275136542826368926963296567191637079003382502017276627366420341083304800921225669483448309487517977511255195149625297111422238971556282239380174641992960713915523558891295006265402132991429546047252097398258346285044900999541060503285037713565446724452138150749115594345112776839284560753606340514327522219195415608905885527717985661772559194572298933344102937965164632969285533196766904822887818752810843103351484583107275884774233776758982746261929951924285482837909319768211022288127911958247210434278980025927906331478023377496648681091534306277765781713098933681184070152458510484612679105319824229036299320738641535045516820782194338908902184351603383715367955528707786121059958211211198540812017647875725901044238154452960055341876795228477076551667594908871831734958344971161033460348357034223814266757122621781234512804652728830063203877941057968129630843898856051832783124589970690812289093642089503428706883095390039225810158768065460765751961581511861975875655446826801463021282237882058420462376252385574787816576787026589921582515758405657057290201542740100403432441567181308115805849717537407348904903441640074771363381072920837954239155645505464049580568008764975025825282857628599119109313495850754177363631163405779294990750349515108707683918378517617535168621467400414149355843497135307011931849131579548134599235268295331415965972856722189323770028686622272471701435254382945142575272736607951057662236353420045787642341100635664717207918244641462165826615527769800156892829643098903312363968056763333452467486385801988879223498513532082305039666471734803364202042870063709431375061003106296629856007767308911263298323522262000507609099625638075169856481772644087018394818692527745845370452473904491412916617060065618708374826408661679883720360661681113147763398884091691950476601258250931232000012624468754665127808927369693902455168289624537726036967152866876413919971111042496905432611312317120398807536342940039029319838177119958803981786525293853086048592432238753522605525594562246724812653991669626747264863605136604387933497139128455738999184959049939998151477877050708213886790118060245659811349653404415285433068258475532817099798797256907673193391989209895730296440821257030114285707787839918819495266698509577231916040338696154558658405218545555242676568894742309810906220857998592874222247262827763313098820213896424696501006717384834911692366005363158364100387690515673145352664938311309052986592138778974530217778894480032263498015818909908505707580741723237515576511776392930738972932803415329152256239151231037950207819541701128400929228543665621196552101940369810658657045625183405546773269763980274096551620112491654021573828035036998924914601883547611661632490527703798560521523792924669130314771740326699474300802016628343760144711153159288138625592014753804749654524722544285293138630196419640470302694004931178955680398471059360279021152893210435243264062329265735483421849390253289804931181071627226322550134953482314809611340610120681641491013571793524939917667180610554036541007605626248796876199789307606798937802951451637281060249519145241196726484921892917298680389167862419586150262178790535133403609888229101103971996948390937826266383436652839490028283401397516681656902574733909586924211570179766826888391772417525426675805578394250239422931837949230970440748210281473883172894478432993676756987693789621089825961765813072242920669333691744022641110404824691054406153931907502408439811247714238812845510509150765210119096439262712175584278488078099625565598935008131180266179987495917716925804782439383472764893423017613013914570529549769372446920450033634608624324567136155423051398390471327601583435865237774368330149745555420217283783099368668666076094239634745234908016530347694662168080278829281603134205783537297834995839378036712439250019688469269204664465855664688851899642305959195979562165311484617203535755786874102942048524253367914092803216746118659025022413145335289057983900767840023150994531450298259780685916092580619494816178123874159393067423466654356898761591367878235709307632446544527491692104757025782987181149221404475044760856777955601685818523213748565386634759581188446684127203609475321716334945513813884609650796042927878331772657437359400295929937796008253876730818250471514587555883949853130418418636269643276198127618953711564698203184477184409683999088362166488236748219337155742823578973000028289001314170611840846724677684371109044017664340729386785144189801062212019219285374375565485762853617904155371673673099914649244479231114165996857010338998497553318365022867173149617745514205517568983170804664671653797373419405489867039426346825068663163880832361317091997645296675724930719697780550118885710300794895793131572036014612190725136036456393521381812524043601971871186584022873043811586420735078498376421224420428972691793742963437604392238920039481047522964732890120203946272743570334228084342525431673705303362096326551026050601770027878198957510314291783361228341283402081041155123468081009341830035824287744879494098155096252977020863819835702990398749140169112865028690369871353934133994993621745200641740129786253030996852471018353303069912931552011300807547200272124940472917474879096753429658510505223295084635797457698116081342572464003599496179136049471859838616991032139825982960734256896637624426333596265040546162484480389775941195666964512850165435588689145868013701157761385410043057251915320432675930409730359082813846774418239696100762212001390737581961961749791941924111899447750108481605198654507212780704554389352004562638061766971862359483724294475645496582743509500503699083106595720762573748975882577713726443244795226914994028360452711378717008311140824595485387854508979992705477376141671340650174188820590251464955232541575887959987917204814633445952229584717002147467323458375696889769524698887099517481935635171028596021542938783042145280204127415858955325103337194775280739786852481796686742859560097069898426321043285979170249337514403848556546850686266868612793245016987330591303427055790358446840602252652910950693925992026431904421394967432218212989388856566325530694853576173151543152082918376923762619679083845528880317436217291646777016547139376076869643854685486688582120655425994272174017929304775409049073511045328950801717938671499084943389000919589537301168310826078992278633175076295226593118099461189959516523915937821067942994651667690436263696391805892309826123420522876367248076768449058804427759949877584610826697855097447747956925377041696555904725958101393698206828315670621358106843219925390933354432695198402597180327499196389907076755695515594523163282697448798044934915031309827448104541696554529591491132472223227754920543627079465471249625636402598087859433177348216830016280790318829128908943506276815172678423911378900614314654692560985563445541505971190412359839311514962720787943626417385117809534365121145486882387743357076087664280866822453957444113658970423151878786362413233748918887529377528996262612942792444533055557353317096663293717426782186406710868310939625304204388557722607281769568129837294423816476410738262162485271229042463183524832759844765392399062064292441381346268207980732530518969880362562480750490924727180259287622026151198966361137303409220091552300664419005848674287977532799720378406505905836803145676387886039875895388149694402591973122783052966354875721160954547757898524617048419431186065630350893694488580887915744465489788665631527688030664405585599015917178061673531138243397364413971826424053232266883915673550189279844686677357287196119690511434839381840665098803241289512656071568806077664226830269640324387978485296350358766045797901622531709995579659969195429367285639834113448831305207190272241189208547660873158865185034525399006981625800575409406433658558299357602612864334103648441952545275894427782353561365359704971505828259923479477712753919819335032075544910220744666630335974666927939024516789498718132816852431075587831358189748415394781748438526550367576771858381188418495814740731788971445689636120505458440200261970890784070157765808866118825186311302278929609827042115601009971654658278012063785516097172491540818545078837342392071872476403713262851723033435575203337573576191391765489392551923735317505131874217613595061861563542642546221100916089242613965194752962479301886936573998592867101179874305899817085102785289834150097154131800563204231870384542624069898376227283514794928636692395604522528055078489287095883702963870321765656534457665512985161424631946401998624309382445130370026798573095154497100140195777671303061682996262740573373400174741064659429881381031616805031891003884260535742569045796112175114029190543324343699109823208094361936858331370024856121785902788117996877723298314988864620249028517179072428325038477921514560077073190566388948596706955436623553102078965655655039913087381818046362126068711567554914127785525850056422706251971713463462422752461446193613269740703351782768863108643084227249193579327042950787882563052038716392742455659977328678897785264149440958158457273359046430154103725571742645156464417080018296745050234936630673694774035066854549919926242897328749872097120103604553428747242200751387143594500934438926143872797472726896357786347398050105250670189090317753601327345525931218692109127798682275677614212461606883189348958836357158018524634681941986665471919873419960683212006093324203224339037365464683892419041900043387358481441927683753233354787527883513761566056755728357565608347474519704625102526976961336611472652118171929283380481185069396767935678260486206099298438863175103149499793111531403690029900798231238409067206635788409059669965374107281549225331443490771420735200147767967193508141693181078731305460018366644164986212792871615768124604292513407858053439765409609267083575166653638088004190240317866964753256043449890971296181054525028990604408400005437297120511160885806949681499672994741250785997041471126432766576483827154494817800608511602487187667257216336935696426670522234747281516763018944127152193550688159965652034015062457915894163807209048235816932671411643882133404157697684909852071068737635119104333123819259216582467205899268532263165971983546670174787314411824348243560952175040918610932159409052900648002007988361771649982814594219135986561925960094268213863456561714218763847591667129511658679059651479415244629180959364249232136446534074010217410984036485474396580845133651627756527550123783662043953883844323551456764965458761369241918808076526676319327489344276607123691227730354904563216110324621188451138910490807255100092994153347143691102963500596483557944259643266576507003467635645766630465041217185048426418095298402510772728209622585055096646302763833750029185920617255488658098672778904956036697906629709012210033070171962431501826825287022256799356340326770337397269473087081898080921482090181170706271463569860866820396974985439246355123216960966444104880680652428924499069855905383204957758851554966404284502751151558392491766048251131935785736502896464603164318026295316819764850150100132924575022008430899279292543798146954181227300394491397338781203665099999170164866698910753544764321701127766821423330228414232625859108731703597043836739792181276564704675965966418017244890621219823853696421874603859729050263434765570939003190134508681522868880194193537660467004824324870771194010846154188200555519609538402256334772958348661494502558216699218339728198651015536618382867347363729591540984251455438068361822194951240103342532339839526161438873633823323994270275087646860458625311416056474539796678077114344554438439409043077521880739381934449833764410823403809760348933999055720370938350489025838500243218344056588698593955424212314357748875399143719290872041349283936376569987831950326674217829292290755412638925238266907162979288718530798152007238586909679520855656748519870450440415947207421346852780349213042537055257804438295833599326195976576250517442129268703735420571490026931660033400245988832766937619278263084923357113730972991201839973321722261751514528800150075908250934985987412326858949179900409836183518911421617650119245068457561298873669717560127687449270859382613185969817298981923656535964569042482322736023655876206861010771534211754933621100892363102337085272114986558413057302174924155134117363458201267738426670388737257425013274750795585249963625034943535125220258673123808647945019325282389443407153001542690030800430227393563032999338317941046796996596632937487812959813656510500178598696895467349754851501727905679984970410269709531205914023443947557477068585766530418269882784248607485428242877690577638477207107951079141230406650274362691232302159437409576470558155666484815367320440517081637050520948245934982602183237052692016594569497966734780825879518262036623897459945860336904275870577774154084361510710000025246711194434670341224995196138141448952281908826456852282730775024747043899045949246631028761602247501790175636370233010756798908431760470576816320366987653806911800583786799339332323049288480938214507897148337295982094800174295821833727139211911884989584094878264090526082431478703798022191999297642462745222923954235116302254220906124304696165675116509562147639416819350303090661965085757256591577238196496222192685934050575018776302353465866402354349760662646157008390644121430912336302311200097226665308277804820909846449727991782616202148881592192120775689949937932560144086868583218540911138125974824404358106947544368937262334788497473215392248271241316283316442329853707688560595678187282119820212958566984604546102995949059916100086463208124941822912570737555704513871190595209059570346261067347818768973654578995891929764277363509798547122026751911795754381212845399989976570128976290359462474730205876499628910910797654478359935318187493077664671413496055508103791089161056566224957065953245791643541040078341718932330155021775999731710035359436107653185031114871716623921180872170230837991030507120258972496796674244112829414903287815194694201609473542675854405193512102460291871403492281515653523135821578494438430405725370304490251211542782810933542915575873102958567536608739299020827575283920771113778389910002807139673513923229852586594756641234008095526578648422015298543550869227285127657504535155478674678989529728762107772170787525632867775945827270957422041323543747476576484947560377573224053152573681806876997817410286565235667249413996873444939288917006258560769272627856434829832560215389287731923409636388475847738645458944094272252895721358051609415361297489175489156087488551031425177118198114467231078237511463929323410842615169519125818906147196861018617387893862189317620094591906255523562391504278565025975807383153338361578778075859482724196368791208165505252172027616115740580687396291890467450699555083395185513958353608361886775872787294343552780283325310759097905081727510152449800354571940706970615274890140044942550761779924196956121170321569585054568809573416984537338784282647933635893001169254101369918438863868126569512432792625438833096320598764345538066622651418889371541738180914540435146037313544478879690203868483827354265253319260720004317084195423526919243602945643552665074615025512317244430925343523256916876784834706026996803178184257690544748486911568622963592747986267913490865924515500912922693708851429622465306658161065024942753171130728064534425056271286528955519868578940706757186697462029850393341682254326534571176838193417142816449604216763233801570770586608646703029290525223704554115551062141336290491552954115307092323656858463261528588395541571748751415010877308127288794773651479494564718676847973672433560308439365367853406072935950284340149109936982888552378519408755657646330981504754876052045643668197351246217860308858832988028608565499942857772426526593417671318581666279661358593405788168209916591476995483572755064143487109384770818810014613598052485358130470853934386711551635178756532839844029580520612589228293019515574537708639357968211101147142718690300511817857454406530239713235643225657036635870125353636399404651213872357738178304551721655985692941235284079482027321766476717527608711549614628342004312816021501764779120030804094247359233064216182259522892937529259820443899536485044158242488005889053863003662712501745174252395744415513482484481331686986537157183877057791922121698340098246859820718907194972163566159057013606960969893909192887603549111306415628754002579779740372581202950699562067704913905224912472558402190104879486945171683822276598881511267929562153878523694527631150230124679862140807567127146151577660560224058295535968373312053790218360317568093833173872412318010558276388597047180572729293105321858078772045037732489720390833383600072793133863843937121745871207414289230493805559263563303145828142216664221370551871636696261485246584893300990506804706886638382781705323687581182162049536284463043793121489783405201732032306096966131704127622537853907972854369253719896836475696406702063227276640394022759317003364970710116893067592035930068450040590484109787312747758670439513330445226824000551048810989766892504137338910783182580243418010414580239754432058286287218192189763757226228668500505633078988579842289224980600558831513202610141719884721639316530932947886612582271764008409295254110640964476692561756745141400526270428434390944955113839795528383555949982664327728300195802242058687055137167706331710281983545265248821596684367268602581070506789556764661877106173893357256810480285293670645816109239518859370808851876684172735456273120235954416911760396445367438422440128115156810606712486875270081847189726389582209517351620569205591177892339975323648890219655091092337303407945591935558023944361292275685432766552634244821281503975888391235967481907493339357799581547774889376142905932476606140204698979695453127762117477331276536596724080220919695288998021933468070909368919214272345449646819561181717626434793903611737180990810043621435666398649213446280854628896860508003463294114393944556777771164543614131540342138112877566145130077925186674115542911160727313310035314023415647542264926035925911529617541134886280281454785153236082086276899194843951462087628915358775036847173514651021641808098762475818675950333044754152114723605240941087750863773041610405161242457079287373307150925137403357804344422343930050112074420490559703396144739970725030383123140353097745129535696631280241239270860501196451146018151421262390667429603645721219684092944986118249551890870714865049564145630896578653190538746012109652884917674594812319844720328017678852692122856500249029328056284726747582067030165485015718098434556315094387973073528658602370818378130164720554744415184720048018160066718329528925825729559210388205333156877967902652358614640794005624788661770575152033402303955903972089662476258032452092865608173258300104305988344080632075834534331046415167534071600723335691345823668482902197298912685269755623393060327483728389823625224792229483325536097778285373316835891045371038090932677370290978895275607239980137104417650893180467948969217498738074492810377946953352947690064349847478299073583057208805632711254774712740365517398460749600456898631987092387710118070365954352343785872330492495548666177747913196667808439320412148771500206284088304247303159095855425061123887075445255007746533124768607686482287374655838878070716315158165458291348572746755088824755559390061774187991274721642847128461340944013727995950844946617806836906593974664285915345859919359375770639570661629683519552974890438505178063559305262044914910273902683104646346275336382409572771271154585137534420402480973690191645182570705713395192291142043040652136643565142120192808602191364364359911183696597439818719537128265287485029926616396348604632617084051531973019994097862621851939607860019565899214600479712816799986829382168589568483061060986793787781165268674461828500124677942128286422489635393852480522736810176140475271595330893708283899200625257280293928459486663294854194161130452461528978814043113318692209394171022383493424113305720266687134451270346545742933283154427362079004051887628087463718367181513127962107445417512743671050272535528479163345499988809569760770137912757731828984697428837716272620969851405122845928368855117902910906212635316165097211790594207063314686677187888455329842221191979257072475276137067965188582924551247956256898547083171411799164011130216356414868968915746077159236691147194299678451731583142660833191458861555922392690514229765164802713568609431805148681326203154839032141005038961857151799332020211097073877167431616197200774570348425510388193070651035107587087150681667549427357811655402278730374336931656470668979725005137760481654966424917757206360228959385177123061221001669561129528864864929261964746855032988832244921817836667072543153943878565702826036575111505454943989267828859907646139394228882146891561651578402507790208425151391907122778275533523501431490577619244654164446227093124442707267102776005083068113491126741738479516154955110569027390388211254471012420685874439365124472238081294558442893573754980298094651767672663878242501135270927947080401532000548996797177808730532514314743747495289548950952759940918835344164299221328660472438294998882053884677551595675311126835352821971139885041770212834014892501733584725906083221177120511244858177954094157515174991318610711606964118773765052079234711702491680951479306020237575908301772837385336643918729884577984717158819864154785428945762428500392410802197771535641875274018273810550747448006968096826673656701088041099969660057515213201677191904951696529558668340709513295452935500824412705309273679255002501295890988975824829692055475454622455915918575473143943613460081444555189999207982056101096363549938081270839003085832537808030848792337409604328633459142237871004949072182783785174183145936415221331826817898307940654733295350143143561608441802347987831511232353764448529574716133197468283739595742593544144098010411660076712493445193561467909831541724569468387701573090523577804361325070019164623495182991536523477663836891874255985819181682299849147524039266554032523357774737682365765779910388949627853422933138588065955425674368653577649359632157690389760044363296149594745262014652167654466115220875359224942579845017979130031152214859055922195662504941664590062407651112042833035349730414148493778252418575489174824804795589630486513128180873228946575774586154170535678204451600168059539867168829073271641774275759329561530955259165327094849622368338175844733390234649690019699788365342666386022132262244927231237796952021740811835755750548826829022623159420624393027489158567254183662609536863949816016121360529037916545250669919417341696582985669584940208382809156507786659166243231245414425693602817572866341025513889198899254939243094906733760581231079083518929234075261406283056710371829404994084826093319637561661313151074583182810895642634635492984308118725466113437525035962402030001129836992051480860624615417908862005588208960638483711392031995926576985740698266185922165192158792960920882899570384837824447704202205400229961053368607088338369483116533688820435611712978330876219257338036683496306087838308967045689386387618046254312577113569143208071679564489933225252800278008647372575447654191948903084247800626847794025686381087691207744930315266888041679944473490893994192289305547703007173664843857702317615329547045066599933843122849546146139055442097593126633370530934465678037481926513347152883581841077684494231159790797019648896683670574453332167896665215256872683369767663595187900452139616895916987611212633114890230942479473488911207398504151081558693032181374939018263780164895005921314927966845441308569689854223168841373894526723559325507383303599881531157980805603538258929326634610855851747023184739474201310332795842946602171460412569197364567669989306621941732752639340324779633952028948521095755343020471058965441935431560500545963223769191445736585013928171514574263176843753196188855286945335902908215407685704151949748645907664987006650643540802618342250375320210230228649426242246235387548650899041043332687120560536700177512551587919891006287176214791361742602069523295781903144909034875192718451800669258050379241039069674594005221298332064255731722619079926199768903558256952435350639025661920502852718215917901090519105525376110498357154869403500245290601382413583448224562125736136150022797612442324044481633621759765015966748520932737051096117794396537861725666264304235270566512094537089993891217264148829157099274470594021877689934127787614620423919760589520035334772442751700549918578039861405471041323182569754554455790629658925450425510788316072907376566989426122054591274809492647148946817537782911082088210079158078564077009241350756465979730076132442123527093232272996411204359487911889254814492822440913460177199467609772655933381028921672552872717543962880188166854918659139940177638482379777813339277876504888043848062058605151610626035787652918559586225211859828251218632383575306299570898063257531117544999804813012690817317759757488954697354041296967678559791890458913849363824983873366202896835590399816281213146800850266719039364774286785601706440253987452064744612121074444922201734327668770111854555296490089312347006558454296784895163619371287571712234277408947391016642825179998858964987629237206504537603596574252641120124342377477255295714733629817141382800557150168077889141384443055093206774924677301550510919856933534498150133096259687010880861965991442925586898060144694256533890388947573610328545592986597346181414863287537362000750980728527078402894018758469834243464992898943631987354267789885775916616431446128161231344625545082833087203510892435817298858766917534977278003302723435008911451223215619811585360393627466728339821850000357693521936054628591905735083217190755663922229823758515202512887935598714873200383862859055858352275515058024848093083439539326469401035038144201497627746188155507176286577014984615980859440981073219680409246516406420066698110409182469554768027016226069832964575575786540532675316104914556975201802770812922248192708157156426018459967678355257451673571078248171334453119252231206672440642256228815129412561534941211662359490383123944179428411757209899462068824795375182478884296703229813150470259829226301496772912713960164699460692410248786143333658208489036892294144467684652977249725745802082416990580513284013904131794952363616088214915910483692202328970669412405759088216957201060704357748250262755093414049082147237440172574645138783007119399045029279878079006718551190850525226927127939357667110788073729980249341491265570303075295965710211753251301462927162444061529970703024890470182672978855842344931542745352204729801665411964578114762835726448790855046507868926877932348703277668068931692968567702268360103058729223275743214455037434306378801369555728720683748785452912283830637089663184907482714149102347903346835284159724760198951117559383317087006338588065918657986005307460581612676967690810894650634310200534635635777744123872135889518988259693294328234329972626283681208535666554259322277082297468932964648787478506488325681460370841981552498237008500097163575027933904855481456542821371377427239800142843954931725603180659610120006714384272223318843644054014320580307925976242841841969545704514789889007064670993438387535455338340802285114687498970408585017628611272794503341345945189716376032647680203909488827834043020074838970007255413167412420113162085949433153252904474186081965909155697079067409965227169433707847883298436502912497499288293862495810640541889735329999828866954459085671739674262956008291116230310759186133636084247247173670435843127364068411515172548228666089209138854181392790353741728636774345563846737756673920236017888308051171108868963253247035969135632961052100742258007926393846326721684384521329857691120052857555649674084422722346228651157794838715676397145658311461716856107769474595314129696262422468339250702927091339285598170200203899618053480021967117347179887254817018464913565920846233369952158073889115084901900690690278309247930774930374981849394164249149378249754023988098919977724057409117553415121498744856988245398804881712213335616214341507280741480780745026267205949645834219211232982367600311297698528650424546048272767626493122176690325611631656021051490352519542886626140923535010268482343549855845550919094733662498915044327451178743310961902901292446970549430936167195613028864331074227930388418037655732008913380350322715492835404140765361099107458343646065582736810598242878572817657117310252667570125333406781895745553450546764448214187532060360741592415959937795199416690420387598734424108271312555329282369485778988649854285559208211460917144520764135082366572697700959969986846423038547862739392535556002173592641896065852455609042143048486609236541550163757665678296136021603027237709863588541842732529596577713465068544565957275104646370000190916645215713955006742981070585195205995077324822862706756775659257370880014350975045647247829511293563473283446510099264856465087985138300697501367232712249078514386169180065881850328345079981976265332174502554964081168120210358651062180890046204147375125509494615852987034639390231519380246206931583386810897414298039291774839328318649311733656712887881588859784673507893617148895276343204032967901304044751604696614460521547368615298806470230438305989492506826773617258314603539488487141225183894365215338318333444081647655964491036801274963641738627561910845261018551727236627618350072293425682629611398073492918269247597900175071503696912382221226462349106290240463804804600803205258899277381306549162713072929621537648651193046829481315462204799259240142691917164307026353129356888810387373521894231976823563892385870696494586910324411493501489648075530333796882049480832928496651091036354582796577897160345024942765567801301504907068114136631016576014608633195083619082034407034838579102438485265748026095403719806995696450002295026402288611124526985641946697686700338414566451361040656937152395540915159784149778714463055742962677994690514927836416298388146968667199216876792017047179457669686311049746833476511055470842070960563174902906248665829835959722685714083058838755543845365308413031277252548149386833627626249450740406230516205703728088922845105143197627039390580316088318757570965729277434639252677193900136739314687107363897758159756915936644285591164826609831357045039662958269228142292036927900998732245869783993986167472589448495584189567535157516427880482562289623207354451326100610806125165235697502604102933264439077269121827441407987843361099924375852096598566076941818005479151382098119024957450751215780413332496460554567321999665009642846236113763579965656038903919049679295654924759478880959298851327498659601529450849040712495260361862471951553917315745671308591600232427741036835546234788564848451881993724097611954312737110219735913977208891470203013420974205606837141656289025935193548527705677247678319755059520232777501618084156704099918952736807207722507174209479009026673393181623894464852017404802133006461233063589952789796428023658500106546489011688143020187941448177111431938428869442953468358161871111043644885373420455717312015708358010617884356324637724387817596286391291384561982351035376865167298809963638661528706420148593276264603795859450182419589217509928897059373815053855103765250388606865643700104162809019845341781653909682081408669473124749878729638369381253042147772481664710305991311382669565867736338441543354157598821454828348184294126567021969909678143971009166136770021460970913435304335195861575793069880529138950381534889093034984547670503624162981807391455732704748023567387690966752344156794083212187933116491189687361043350113737832631570119389445427697256942621396278427821564242240563142142906045942647862555309157563400085147268280417504251861971764529098635970363799784818587288883422822516039397688756512491305625366561070656286551980995266196522920678321796423083692457732283784306048511384025065340634769639426859097511779689949597903289054450235524618621011347738517476120746115212036850068749989388327820080474982176837521525099353493831668514624897190513138382824525361305899809841019211804755593045625461423993274037325228579189881517125834460668178686317863234955553481965787740788448541507198784632623240286248036097690957680041439813081831289830430967292929577764701780442284956153840604483173317090957100087831880510923629494391700747849176563894836187254363976564360718485041540254837914650084300159700545584216564250411007661143314555373881041697675596387967094264449597150632045602227809837353259985836233734157969869637380789931540305893874305474607147115276903517728960787371513273992036024431922409824863348469531127323878237962353486248419211853780881650024649175800504731271873450755155079898601626966736158460640294009113903038206093035647306828777296047718484763820589948451757421446877096404842707945149412531857239905012416244308290169331396763365508517833274550285702099300538428079902395592046447927321730464970748263273201386793291778028208768414199008641837489071958675714317695384524511240769968158779603221551024066604397472140247590692837717981448903498326398434260995175601553047155229953720284933960710909392901054396182599342037405416717282132831385936696927625201900910313040616768366783750307170044149498010345005176773453293895933619410561490006686165742184824592741029215477381162092822505603018887763075448499149438390527629840019265208465085235615735442485613507835703621765853621447031235813174695658677217266529073657681577346144190255750742539601885724782006315435938667164691411044148372823694567650996831045346689320126952920246302053123443093718510919001578794000661175663196490833263239334084356914872513489508083253791992329029954478528132019151723796453004324609949275035696166749476799853974812500089417451951348968318576959120706988065650572045909063870867682869691354991748881472794241714398703863594911327806800380536257209873656879432456062916803154998785344464359566280743190959283571172500666175782026531025901786101251275329263775743253397796909849167952339773777596554593324859587740238214509783611377650783173622735923405979750325692742394436678144961425553685294174267386435947733366122618505597874322188425262671464448606042624413463954114764423911975938673720589272514742454175534867099123562050431860320672896776437443765125546609723283525022922267289092076032462050370697410849100769982335224775432051675309051051720473674897328199479896533039710715486040260963015778898082091228868675924604923979195448834065165005562044281984742713861740897569500920222891565382840408232987799840072893910990135208304050970802741148845492761630288530816004275465906019705836620758485813973161684204514660187290982801757931984471870461698638578939386632244710690207191060907409037255263665297233180845831475014596402848288244150875236582559723824310507850979487848003578574985407114981802339154629515454121250387596277370770129961034128679874124951895073853135633751631102811733346420806171806314398774590296203842944932851149501886584105983479795744271713779689226068248660291968959882184492039903475463222969107775848209011060117161388657195757515268112006308502128262237761729158700818456622219719718259310628382010005188811843351818683498081344931980572665060046880616304767976433503843367554340327029896514843744224359693183161760975413739709867067206060173466272194038642753163118764378635145294295452515103795533740234431424226512732716044795253060466000612575884252574609871548141455809900871704498523254605534651166299749213760752930835332774800345217777556525091706529851884777602461863228208805074435826148055329160259936755775760072658820259401598465455217038616307604367827616919597236466267821751403245601569781554283667097989625371969913251634344139276636129931538262888446490503926812684203897895733591262246456140277626654003946837568760841931502831777436299262613413120178566779011443621096717213692223804281636313763265392815029144644227504353759209801881678599091378555198628730564683125564509212077947255645870524454640907011662877862857470649210301503816699296423380269660743505045712650759879164412109052491081168558189322963821289810652069686666283211528084846048611617260591699451708936001773363141161665026672727316256481710091287943533365992136574522774796920884111508862326967241697568198945671328171598882090465771807577022597214528041442908373145717804269222945831342828468519353967679319228752825460750972722298527397245697679950812063361378053148109063526187253193510906703748137861389098284592493603276892376577950015311446948019373152502406908434144616795805644937028041790550001335097962916708809763260638717073759998180120729872237124850740874323040133010218563100306532628195589193600741451176117284081299460930731938952876080588370902312961924121014553313142304428202372794516480139662783886939591910478659886130115936819833712528312531421658626781260779952871409819768465425058700900779990642934970844899154296725114525799503439405652955306850939874910336902838857367640198905142213120737656282001368543108650193696384087121730594223769820212573275747504969812131933913807495891728665851321947367097731511827977943550365874850475594259767999463820653680354129315495349078180794525040941233414404800087168978357898977765530465252436416892894388296942965885648120460099591765082188133012048814566865466656783202761906214054864092510154186236156841359764265950572159675922643649017450542391897077829060712001674693194802465025907143692421516036451609278162325195551113739152668398801069990521514385667040061618870980639161246153832102526222078780562521397588181012930125136824435156256759612499182744750705271651449133370321403021173588425015842670026966636906794393388689106556068953384154423816169088377715000515369866203346523676362304010502191744474747908263030325118431563755054488537616796271807419179735292168040924700450049611572539426598525759043535488090595515210611570305619343151790549415381847745713932348894382995943654375135209194469995444935386333514855289592701124239906017121886151348015190994322150471193513622132797941877045538103859848188014304618067505289258403698212473343075184710151488372622388813655814392761357965409179539031112990211057732553280556659549013052741150564588283673163838455675198195629577433532193870218169877540692144292147549399593651101605298095062994729295276682089825448754907534565978114776666126247723429549910292687092599840311202399986135619203945772117647018659611793452820430940244433422863520089383237357433243329425857992696367971073475541090498938523071967303165381312669553964661728754719835415580448742600577409794731042877884184546468457605959087395553758434323700096955207646859516623971482829023662162036455020950383786729551735645420843816590491826215792011133218431746188173184057020905511975601815948587868449684200334504038687280039473973298726997720639997714076873383929790235156518755459396333922154813127392150312332286645771529844877043956781821942801740743452260154229411988932232811656584116959272833857768812876412606845934125037940933985279592173719259686391617779212151697271759836981514516784584151734237520350732751724324316752954233665701098298855101259201217972617019211827063604763472264263779329046769363021239687412793371846450943713264058907128796928786993161074673996898132069546143912646452356898729602556534925039352381642070655678754194057094837202359866934298435345857824985165014296901954141134065886974442105930374624491953748536719493470567461641014706924001297636470399821849872823517297557178444567235337629703094482961962228295613692365128373037233312517462051306705824906800848716713250373133864276970305872802418525886477706170829958622280206164812111533540010673593269609114624878713944141916926824812442134962594527293286783398844334360497103296299198944312900275817907816129993838554497582615910303925589981008318736726125214201111842879531156567280974752609291644313112120129059945527718843946689213654704419780534590818428244104967143952665803104831791546238620717486628857344734625954686024898061422209659258490932053155098066935929451736123807167677677915506001247859625513536443884019883093725032369148788962647053706128620859747722532757633857759534157484273113626476265478830161657968323141966386896166916144810216403439064890822680609342453617224352546963973938847873598124554466457496108927554319459216480001666251875854917203982594133959059607248635223429131099553759427275749882897974533399668087507579261044996356179236591428868137147063667231203527999375745136054623041764644713408673099485044606832182806079242054430076925525653221976878709650805029695719954260850950028358315785135143382896532066097821241146674773517463625497712208523711459870046116008716089264928327015490088046043596659976692615316250223505488986307416601816832580417512034186449887775383054506099459492470015838639599488599429905983640071314563989838908395190779686272703677757069425590658603230717233445985952480205195365203508575354853100104868124923966418959423062312681385945699303600879896788300641654875407741021753632028179234111013790956786232391657097491352072890186488905506959153363701125810430890879480076733389883583825687592619447819835237077690517507205047811520667403765432827782250876158163798132444877449563015716783896074714499767881240469801467502763339746147353821660343409208987138614875431605191919372115911325450797569409601932057166361977218664547445677138456736341066616386839040402407065703283084468625779596180441391558275075637727857872269289933926327628124984258702653801055083263007589226941881296275761148107705365049886353193064820830293305534916158955197746708734427379634589671303185112362275549304340719680303157256172064201241059646494555845856387268113795679515605987165329836409046246391433441762039402398655084246511318754265782831570630177866164292387096749640987238489395220847098417725076235556910329758839752087409225036496909836494941298422432128909095651269917448696694359754424061122285472682735609396017821110403592496628110059503375539956000803675837491909454252045771432621461770507555538441189056128993591499526891203749681733941665122620880203250457005202690384549393014221306069812225958833362496299785654576234706559385733351503735889302467807952800428888938186235392861320922994309746528715024769921810762254439359667425965777766511760454282565996632232531728341617731740373306383246412367647674086092989430598472227469854138498551284041481082034432542913622665295501588032832019245948365015222352484946788798162331004268832087908775450190395407406789899758803194777292754147566914758989601468531639935469241963058246197383650500808623118963415581939480112596793808416212442638060149116043822707037204116738629650707080784348157780227318425283023662446954374089295099695601649767924561685690543021722057242136677847495514687693332432340402383633324743682205748915765117668452993862413410598285592635786908447492762587270406232102494022672616642141135612795812010409644481462652463692728087536054252166235522899616629096435120792226064193944864218932173790826203866532851663836532228579657312501622305339521953198971301465592714107823833299543940303620236857159874195155347128782672746707965375981428462298065066487011740183610876210664519737216402593394234280322264514003139965127140045736711289161086261152445047374519922440416152515239527223055639247783822422076995259414368827680323123791619614383534438657962321271578177620053849432582208041338154238034849363957532858021327694395532116963259163458399590715124881562013649261629470078809816203171181977849130954848446021791156922009158823385560023922445123404713164792023348786056651054169371217557291057942472387347394582271507993488562215919746240498623231429890878357094404471509118076520776560472181713128532815028268799697405930902103558807083286015946725182012237503049437020872600363723620320976710326820303961615634066380230436757005659384604491416658098651651939513386201664177804277121948225370135226510544257687215749938879123331023428530351805350752292663987547798913006308727381467236496508844232552931056985346881504862325294925949910363126395900987819489586249298506416308789650012823567900365554106839051416915458860580611601491721644089366592034609318534391999620475907869707279126871926848310363611127513320578124326568808306694976385155922910103090671475495025126862471526325677706906510165049823499405830703046352953313452029644131735437779493313655895099760688940470318683128848879922371362415894930114619423530073564406466491439539295066047086452709109195545835891588594365045276749535691614381315916989891380509106406818763604714049164595777447244363682781851027861034498887161980527998929052419616467977466027149464756342166229516046625384984727931076450231691728923062703454502718615065464641623831794230353162802283809407353692437927611038670785457978615766363648458597998475240901014289446781197810601291698434674370219515202552684264719080013459583871470942974799607885559626453101704629264149175128508607731701361596458923310600789208270752671538226498804403425817247004977696348655763914916983333118255140554791943926224535997615304475731308449320051188178969691118865093187612858258679109889159360709019663678696666520178721782800684190892333549977933895360867571399459544412498881259474497002825740578907156630667447940947137765701327964437251734247762457485255191081454111119893494264124087113315292551783691960624715706719670765632699883386913304889789031859027521668528882212898955878181237281924861880025331518633150018590613079123003900821881950591890447738344039788200329624756893907316415883325675534261536216146798669116473393911154425687700742380143233278152706945127058587707997171973790095046600072448678492487104310485934445166921047801153237751885834104349850018481062573497414719149491460175121108229512568505561808411390805774179918719450320680906733292935452941835880200418158986418869622269811201798950568746803252565241960031832886797788917840079206072761267502888616378796375155516108969762798960573859836935210985326615173089954163631955291795360938395154689648352266216294061561831805253226421794385505854795115719141076580202801590424886704417024957176636423375874749403769979117312073231821241854748258566802728827049500174771047772996172151740729883005536531868565755378981975007493057499613580655624488541965024113821376723837184787546881355081552289485075036462201213071146487270827485843279372809790752232338380972180128237935183197716115961431359922750329084128030168554837383868324334408567905993778228035543899221645180734395142325027066787312882500945837413274835413613677776496900091675042484317597566370138082056722574189655704282830655941971980375234774361543887892118143651291379124735651037283832965199341434051253937603500768993567086383442286670448532846010744451618600031131853145199749487858032192924467864536709566384620245690196847203084633050767339728792471308414401601510611676481149734123436641358725928976719303453163752482047599064047670692851126452756522297543026509068956950327277883457712660784378267160521327899444639611461220837039084694085196655859995740245983917371361322061940398653669116932278622794228828529076005091809607673671718122584706267511278814314977658751921539935212651765370212105251725376353508046183970959728959838177568364566159918795139312138330323859393982630166584727713908513789315899233562037266425495127748698680198760349520061980895432605099985082453521759319688219430914035809454398195701350373836391830434575580071858038539680669732920066576010330492716972949027098762295438778170698806236964923887440679935602552635354889469097001486502814891791538197533907004473733374476761681166320312968985555897656494572202848527374149898314655123569312022200095734790922966868263561290283083473392116178909257097403589588518952285372676165573839828391179829902543870990494694371078885315842769961008334940659696736693231250403872191557802815693053472369914489308237231258008363999771809658988359983506026495382155740353679179095969399352168386699836957627148163422085982660107312292853352566765978373836388190738602228719343800972034012642503184427124725989578167722643615656098036602502593432168483895664362517285570071023245363718248286039915202256459697096338007106803808222194398027528055684572957191138544296558812293770684029225967288524041474830160416894282245946840732778890768895414736442761138468543488140959180118958518955799308398151130895928412888728490320676904008673873801213864498186609087569763756286864979237597390351583703741775125731057156788717076577794502108865845981501158261780685500211948973916867086259498154752974712454054906290882067738951558182366118242746031730472815236509773581095501305557902950995232320203151659577648722896438767611638715713428775263290220141489299964220578380835454237279161202805545411752157634186507353217495938429263848213440404160960439816445340358810207980035538753592794597179954186814345577186259987883295894144313939016265167297045918734224337449699662662025592130842382442147541512808339136399124939215974531217859524620044673051536075931368674225331945734918071286304311218522538425492212063568847251019393753509511372428008100219401135581037966384311223591070271635032172210437985020558844019653179045636309010541573469942340978982101282346229357798452835225092324781710389895052641990485010914042384507495531269785699527257107006433931579639721398788713315652227611155015941950872273860935478171172638039102053886442886193466581787476900702486091037413942233440800018603832245849404034569069649285446279048396507605695350170561090918988557044999717634754182967066002265950002256573019818858486032714910394625565252807180103695065356843994191246891390986785177388160986642933415159764977422920118158498611746897993504198722465695950515385725673552287247538491124681917020637918749789147306682853613336021011572275837195591531686305037469622687325469444559027548713711281253066069263042394704708725151589508306478729473361398558875328419252989578470236338940323394813027498676676388287069856612532349205634793372364550988249200587712043611498259362724333617155539023620598895263243225502371751704966884308021084303987919510680996678534759989467929968118921037176389448176216863128941193784457160214455474080629375383240328524868647784469393330461269388551107210984226617715745329564168756126200344708497780560311725182662911286831379736572462997099257052743131840256855964502499531930531936688837290448336075776770044531055903396558835108197135446711017600411756564424362909468780956723657252105274903899518346820431980585456599258909607288571456089296500238693198742264871208125444353437349346464451798171373720809540800797797811941953291587104203999038434653282132902330770846949560957229323467118468264563075579009684048434058694093236447679837155228376888471023603000759274422879218627913441292783639066335447191257925840916630803197053447175875933261402696551590523950636662400083785087934175420632326940866176999135714994887151403990901002040093982307128499693237119520331753287370884580493752852883281250142413922675468776214979670252810176934949972682750818883452576602632699685471051818471388126445732665443311707971093300278457442621869019282033495161314576600999945176658141147564635476385581420081355411593151578962278852482612817352809026332264939333588267640872084640415614406470942591266758914400049125718578089358528355547463285007633654715507032012805179231576381097637745693366184352824209925293535903083535014487054992171031963214691800220396062044217790511451168890491451554260922601793093041304633858398747915443887757997604233776063349981441304972119615916641198410768930204906561778301414069492755487630579830965623600012800238275513425382045882944594723229525749395982519634070814425287954808484560472804716099132632163377323043147620267812248294169033186627267692185688922874999458278651769971152068725294606931753343744974548935197158451734190100321104394766509743172951748300376335208728137583870474147914619093015341514253791385040216725732290993701673241895778083647267062567213501096631242511900921211507669491794989633812254319778154631405025825400023402341789974878513188706441187777802137878803590364205570911107114734676769007577179926139104694147923888815234310595642110303631213205017280115677474668633289146824769232191304737715007843687391105911190011812463955936793291255770809878911585895494460316673327677262988200710645948423603049138806854611902160497717336608273475802464618817419562179503013008454575121513773554565930103767352778557070399763970366739002067205982502134794449695001442849849699893483475583899160096814043343298022491607780195378979129072591213106596931708231496739516707931419925900767093256473134772207103060346437399783826495005212572343257517356757248143469429248442911677849918096929596587080741308475678718266447180438938304910351822967078754675922025824911704623848539751706958750301043840006554126088123830736239695635679352978338046031708702230615485269292918642413235369577689324287238679726926296326150862628844117850495978372202480075016975928441083452794120824370501477190734536043491465649071487382982528629828920640236025299908584388581763653941822083154181068586695496145126338260436889653476125783360214902704585956247520210226050089860616101481343316969740367675949539411562533970846481182044767882439510555058275444238311395228736119103049656516664539089806678231802340324366088008932850020694556782850921159390719165127971590942078614324017608512039609517256468954139085894126109819976426848275082765034739963341711125711385907852981234820920905553171255148747497662171646112397003342008880300451649308457852675270319958381244304225722745723157929763616500261309792346121623808698177535187914546136813839376015459857082934562987146645946398539573767232415107815880557947162319574218043767964718800546279956427798780519781383259289850705427376030430315041748171305532491670692187096130211985936292428848321343791462846995171935512539420942150800703943449279689641831780182368808880366117584764838757831165599946733790669679690120684374046644029206365797657780635333854649597560208928275011400445281409999021026923360017869245505754169330457479042571302549923377150386755288685318584066613225309335444027424896571487513440982984961301736628364574815763036051293252535753407947376752217604450068240686947045666909352643333322139078420679221362968196294742056328665805643838887701395917519442547065447229824118355686483773967070233890952519935508929525325286025278788187264678859939167973577319916361163881261541232996475336273586121731368713258650497878014749920375637515860664969699067371234384239461203333347310327211279593287401695661250436901590515579608839731044160883095398144617324974031455713517874855803982822118898333401582820413453502079503392217598432468891426884223240287112397638600336613120465387820227035778119674929106883472846235732081073604076748832515906580891990102451301085834263545408901084739541781762517077523856273169169115934028697227957143735510637329983201837665448145897617650889915796032323163302511166950342914836636996414219685471671339384089321642310552604635425806891280994468730476184569062977011331450627872541793307075503173202091399401528480402633045817972426422768061569771544901982263707356043957418252046053807564379350301842663560006032468536717266839167068211503290394757742196626910777929407940537038637274023864578958578615846333312549996138376389725962337676715807694379369102864082063490652411319227262788424968076733340834321435518989243685495788114933621713341957140209624408008690006960826003783787879569319481621194429685113937820856462104286362987831219940912773700820465051424251742202476293047066805790765957561827840223119514085698546103424484919824233231488933877204256842517778226887071532788641012450703254203753685151354817507164499524303836137584744905302186362229863819099491316043240743154144757370863185158721172972516251532499214768596694751288812981600542178019416657509014598164809732172388810521505199666561241311445409993988214177699407624126106767201668628019637612843341861973673831222230813491622829502247264505149386751652975497731925922834112906357388007670170173163208620844059557475753204698060536968500878231544771279541713809183280151078549266492802304605243067337771792117847696975028402452835159547228296086832526622021135987208427068456131298486346067660599943016601273190099847318956043288804743255718304067889231897999579292947509514036450768223630929596613522243048563392933919297259811914632507815688810076465320620762461862310731191634225588067063684006911258589425930679099442429637088278697766246733878160244496506165501618978742041952123915187042531241211845148632673887226495142739283474633853992416895790030038730997789845292396818823416104051851625297159749479698835888672289124580315907636814426895128298572453361454313817529100953455141403496906168138654393551049861451078432925404175153067163204799415022462167545893118933978390070861185934017509179041893468818856203921495429733172407471923303930469315052259366168825604086847630550727117294333248781314029175966049223218974503407616684474542773300211233369185476205196922727114446894282892022440864562674354868130207478800947762514439596975629221487578419030338653412616628179040445673797163193583003814048326848047794539073136343255157918853215995852354740685288227793963016941838404417408428085806723160448375912321163323893614470459232413729848144737855860076404563046169375279123084462805060910221008534310186502765287566787126155404257527625608246907537910190907579224448056453061543744534424137772288954746807277056227270751440822975488459792799855292933198667974598562210798015942952511788486313492522262595521231792225743298342878962527584524264043941641551279645069573556421626511167967660597575112637128137921771414891423198013855960718393251454567035528294855647300911649058125067048218176514724186689316168000405672451767926094093864050674861294159961727992607297048987445478739644617744051138161468018057791621336253542444497102685180322313684922492080328677541715465973383121721952693359788290730324944321728298752557088930032671715255799509479881284333779636722549434150883558825790986497947963836395924755653254755678737153275858800940848271505166455465191185783920628157404433506288584118699548674118688670576689448599624084590659791099790383924358339526133975530002758413472877866162487092384537296922849765096536520116743930431372512478994008589561581801337901206422007391876314701590128342159404249197742480398667380156454230110652341614306581396590802974319622867923063652605623203812023247764708034783976448807311960331330920009524141639289927883026927151115486831805651627357765701549360406170343308622879650187715026444098236143074071954165227113978670043531311318252507328186248080742374376272186101418659384659849962033988712419822311546739719425326179852453660688732423169982239942223261113659520097244864282939854186617700954278889628030432700952470504501076170864835446673290738001709985621044539113031505530793256284246683520063383881553557771695916118740361498629669581855756797671505497578274826578819753788437286274947356127101487145441035684657319170870057321222640882021088590737975174109536016335366240411806859577005001298189813402830545052838251732645095484264440599599316855241131151605589029873401733622157216657485157423219210763160796808005778876947620201893319534059848666747564867618078524176675924969154161845968685584762932815695285732802704069280247332037069230182379838061947226090617524254743169692263775269402458887715596863340031429593059227576004984367713208782220890968049344636073793212777252439896536196905813367894001952364788716104246818513115513202864332765242180577730424857888032580035619257676297067281842814307618771649004138354552731471235144546428885127788023420073392068774728331183596292443830962785627730718436491159495914308969544052082122292928205483693282383714850465909539990937997550523240932828129309075202223615087665304854673496353869190086263141602245334980203672404244720409720108867430952770729300160598230211112060350362811158311541357037545722432655946518684836790419690095759593144214660013680545332081409052714764602293682039077713677864963833456846261049094403054262479932876164451829596710016098751554767120009656008843681875199581812321281902942772810627266003335202709807199878366576862759873785469515306269883760620131267107430554863832062204692033556744144908053128845870270142257781061285254237803115615884624796184678139449874368298673151183217279443354968388439610596038897379333780257874491123166714968795982639320055369868633802875494379168896553100699490212883786070433523133316452387312044697749425811465045861982101850354817961137013601740329229845122728681678868357802474381661175717959758329845214963996931326642886945209678273196515709212975002003602069404169333424813309402329282924194203573439610546602760418078203186377265287936016477455140162883995770823751728958630030481551583886394231403822462661094903827534877721415565153095536893447033226853717532011334848731992055362215182978841007680534978843064791529565189122186174106269747724782213151073094376301735517858204081383315997414823868435536247560148368663720451344854658997540126299440535033475061666637796648394712201634865907626566209207981784271390735906511196321288022394653029813621017064735629594021257274533956204380035208156047477187839874637015543824429205219528477540582043343263460411579587247345949943341921358294564513854058447350228953396345576772261380594456631705549244365139843930783306576184964474444822541950750635840010842269436987752156329331694883411360178010718301123824257500350408486546043445603304620085890419909639334679310644026021946366612052492453214924035061499259664472412863319261734456972719060442830653214189164083570255114750520050798620636799496697585140682120681773117386550990398179450731010914784973385312557972164569482198534307945302120624813892938795171674651791296979873276182810690794970136045392404041225519235672887423848525902794584822997837488611277536864779674346972739839000220165659015418102639241989980536879146849850833597956785853849125380068981531221938310307694121283844573427028484724696131770786536055422473391156510775321020537427474769149444526929305968909552751417632373595355471474656533771680310570448288634504710166346312559154949511311119399251555893724901776324220333494478744773366655870075860787400361179453902635246835749849473758360012060224744731098866551967175146085463376288483209605397701138509878790237812336124711451629862631838098986061425807244604211853315427603429274224587096583387791071532603891540594910219626517592178857482027717007124316525608232099752687332582981227813700589121054657153156767059033546779199811066066923918639762559025849159684829211997791010797593212397053784865558019709815187844091711083371875262290237321441334954877885144885364485876293622026919759133189488610459000140589299087831950715502323569297179864313819746502412288854359815009596758830497916742429141270479275748021525055464697501545942473277788801744640129001369491891618015196708094183955373345770025518471477784832008299350203189451294562705598151818760859115531881795054274222047375098565994112316765910035914589334554845845394579167030812624459916060782940610901265978136218075313317001813271881214977989423769356997849020399113319846819318234842959006742359388295059260327036852788234265163942254224282893257874273873983430038794765068695157072407215813438000035443558193077775508254519344636269646222589374348953035485276422626583189832808117376616020606551861771603292580718594804499028593095736283145135605580374000948580376962379969497925921178988593903127208963059687203710087909208339054193718408259453392272629052108371943239791257014364361824308985304960345344686650869829711862710158612254530554802030519482554626275897272216429975472337231702191512615699589702545193273624375008134161626800038467842741914627166883884617302363811673675684527312983708128195722360061242850822710882176574998801427899676260553372563128237682565196633576717271718252487433614942427256659355522685022910260169491730314866288874597073899114194105596634290075185757749259116277762415067127323755090823075378815272013216026281261941984086151755833360702045625261452525050870235582223057783861742204042629746243116092664875792591075441132770981884106184980326283087931323767204258145636581535534648278011752008078692624720719940728075668854432785510438901166270402956300422301911850117338109120756940236798452982851267176249936366191893188085927317747365331634152337839182791168952386567106766550505950237169930097108223197692978032569793585790726571493438283291956824242116010450667025114275388208576629994155092648286730021619514038398072948953645658750148650006250044889350354414802224589843345135373384626914329891602804696334396350711227241547778142703665809885715957834257106116979679893306997197973974184233244389855955363930692274859711517900509264413091034356761114855313359428482549747732430973429541789034807425830618848499061703984972591153504829876309024974604438702192243097599455100475448406731115748647294667293016302218899645483358288121463559105634156421001215651542510736160445480556538546551455356331307334704407363385241394903666167094924379076832709331973535157857589773656521651307703619950438699789102082870901813691771542663559740131969912172792125482444337864012924344472133878802678856334231829583421099299607266858563482134415673627690794083515785694600721532555519244471017360869169083298558578915827175729071793210591660845309997664306738622058383333651943318116778868332462083432242632522620922408874549021704322785963962193624514439592936048847023336255911717175288368049015852720792101541583069941608943340331587359834576879732454945661545952757996252544810108514141750907465328452716012051414253319973209413989954850838445716800425186513796853477080765538273412196501542608453289047049509114623637004875461882453271315999216740878068251217715224465098831236244873902319744882400369128571276450878676710677729143261839902411144040214353677376531522648422035883640192678097710003217773030415883298221404718662059915721637344549277814311197138950691152339212616721096756099368317522247542787690182142566985729605564915023748503260980381350665256487225830787522928992144937998797992936054354343991168481616910501783629428919623633854679011032680568059692885182609833338261173699087672274491223220270003093609415516099563979473005011252299549643469005024063642528230008510315222134718543631266791617159397599099520480682010162695804999236859932272014796630053574616320720412417950304825316663176375434661224769282100466808702623850896243447526317669212400880138057318941663369491044488889184892424946073305624583887317061630075388780679196581460221676596484129850272035634996856674885179456686642312267760197222680734099871635706841839135158078552539950800819327756155579180363993328067407198477876604858878989164092402692754100276792712297963545344143964081884920858315081438392926652989021949870195036242567303740476792868820150387275320336665534647692118133454152802580826173310421201882274179041811686108508305195962581686689674102305898571133309272238946221322548106558650088807068260685538732739850863294620590715890819135421848628068975839675133015250386284193151974590933361776507413617873650748641742884964929747464473029515496092452408912888885863011773874969151848748502354078943101242123529662730568688289329025448812498110457555738674264560965087681896925010040041817624708843955849992619013054686425752264669408005663271291336680605328972463715921674674955943219854159088054296045915489380349656329001892239039316576052314576785494451527788599031315670124926984641709705695075845734350783178021646838552156787784966889503786907739389261120859559562432236988080971949790258604434099084281770453097313186265488786107392403346482704664797703111568446003901957732773518342652131266551857156677279146232042606637821705497308477525320087903196650812238070386718307407656524214687324047930395469888375278899058598911970225683948322205933020091114122843569855388021374149071318765527894489629617538337693896964396599925287816773888151312393461772516137758850537853341529118407141846401746089570427917075859764908382355100228180186601828790595600291076291225772332020334599283094023882452651114081026320279274516254170540457161106804224634208887276472686499676527150956148556450142199210580211624627897501692573760378127849713259011728275470746202600357403595319749319044777646886631532039962485215802019208416282778745063779304521142520820234679879932917604411588478701824001473845399076587737559490613956843686953816116114826977594486930242261544933978621730684781243677429825670230007847759218041859583578115301833004372038624391348735377235501845012385072992576331438937439688998845518108161513274819207923082570207868734606770225866092729054414441985614652368455418668588781916230831273642849995385854267597456924778895609060778007132604610122287208393484165018203826731834654831148524181451937287647462513457687393307533026150723788789296201073487380204758294808913813600786997342519655705429417055070870404721832326490420631310148113738924724915068763175451417490528432022498553603510631921910144103702621088631870931003555968183581841838726342279464911807770949122671819539237440159893251903780543983338274299146653063252476102511659081651678663278782176110078068012340773653650509467007602070471904481053442796279847432904854483113518154973736079555793556897863827534679176996490368544850683886848523501938208259141212720755586065001823015310008879737528339074281322097587078317504867887537611996517124875243115075004038916261949266389774552267219139845583442661304922651469355933064099296287002659620826388183642136655666322362203557446363480909760973219616663586958689544731431325105418252871311167395014525493931908303103961840291644569419320028445041498614750017611207598047710289548031053163202877681779179668750668216125468034635585735840610600080679421368105792631932809585507354465696682585227370741959950666332175645705061098100112044340571415360099061024696826944744057647977059159645462596019140323308785375784344555496731378671877606477533642879091986119821353809169672170696065868240100042764036113738560659248706561281708364870861213560841126602475708690550843299720824053099139166926573654403976641711512424495847478291375275864219141444967461673444499598532775449416548261305423468891354906403215403764254423906799791129219854674041861320092098340692775740975653838039439809071181596120394852096294461408845500699189740833655850117937124717747200633855166701316223906929180135489428592715678176983350353730851535691403132809227628792100412534921221686713217980558571244822210569478708941605409864056334753217826286243055968538448357968329164295277782082883017683736965620836175925921987142393944481804679831328411122081426085280575225036495357750449476746747018052140974849980802645420848063573270537332496859720105634547616504972715082744931124438288860125188716951863391770463379393981068933008000427501621327353075339168341831949145816009422071674682441453437858518682355641033402855494580891474821896034944145475126356307973242704823197606651161870504884229703000287963223454356267233772276160076680335819221744619209328190289738877119189186161177179194575933208033395591652068525219281322086157579560339136804402217403567079540524746771302064590531456808680740311787637445583396724740165769865325058965120331387862552249118100936915734909945444028786344722259107127290280245778179557336516711839423738905708682126600929571358044780238670725030926644721826840299774162936692478440025347340394774091176972825055791335891959816396613283253999853699916942487301668509040307505153683713766972802078200723939840421552733328215086050938213265297733328108582395699350489199271670320900371563974079239944829910202830161800186000561888761083805171840537472641262772751740921572290056365555518844535458308643862458144297209690416244903088276850821003008123715691157383739809694566744992887806775904946048119458052055536335049720442607289887535639033893893976345260657628402927247708786322010649587566753283299055870130474908766253585305931879302537391639356184852689412945033077166521904225790691312627593123870515666342173907015152967342954588750614727843021028660569832608253911970448698290093233456766171587304576996347823063232577969409281168439956419541641990316388313739388652919683543269323691634626898275639141695449415180584903836678498528499355727181152391713360663329050442625038919031486213166295321792365068041956971705416466020931242838470685349776935179592445790106000472784085626027045864827769240149204071541357439546539793268230982348146506014879541138253517361177766693256802146818739254295944486564724593839380888834621999258713588523827084071927088936068176081864991010810669740639450831568368315162035023444067992867941459985927288354500322611049144873578450805478389349302794995909553693748843456722472674862403635364989655825431842737345119121493073465482855489492101280071397060425204789622867780106578656259381646371411220415211491565683474623652189754922664000141694161044892219692379741644690747899040809890598564152530004861445531172873296735744403341668069194889678011422076969458380731846942544446787505227873013464335269935829098506361522565844477468950495424183696175236645105671343091190001641137510303693867680251985479006626342167296905817955748529950509435667746494101828152475827125072101072985458639026997874207385725315944970369256197871754382735102186749559585025766851554279853323914640381724460048805399414705173670295694744803075415304744608394334015313329366978331345370738511636625153202807387693637806990778404027625443068261611545776245110070682289700002290425861925041738622704164295681706986520765422135995333199385629032485757968002713709086609901018515630753484012482793611066377120562521420216571898069471105321839827757266816719838223327814137980610736057308818830841878651220723945285620354608491502535127852526618389655912404291397135904549057733634366855531037838484539844854188463665001572549742878961571840289066663724373999671994991134983813176243730739404683087229539987436722333611351361789210563239940032941910737538087355068748674045469636114976521719917993489468375291496239215880291991175987275651277313059654375578701247158606148870135043934791070974073375503471297004842793749488397438790887918077205600136597286446257824442735509416687705914545113343300987498341196722422242038746703026727328668681304373448504384386058333270639271452611061320687000160556753422643100291241488357393596662281634116385490712872689393605272973761075593325661042133258703580207813792317475693390599266757829059993713254007299901030700055856636458475583243063718174851979966399804787856508536273499063281523428139073820260931405278251952031062784127516741681305083966879843448092294281887870070994688514955757816778981904805596190430969733575171388223851472447956566685173876559267182683282234179357655828068992880227871798094419288533107447129081537190597571102537188774776785249753146074400163147873946803854680069287065723058012841047221229731954328269675346469087547595103846042870337058458858563699714743963561052832705193198899376414040256060147899816115990880573366895253865210484607709930308991667108215130911583116761865388738722452146715867849796672866738525073413798890013347105362382090852880644975872778988019978875638799839332283143321689232122419311079522429328473213080223543227370652111604860217652292332600790360431250096151590466116415952899925598545309482877272123614306444758202880151449770415726472768056904315318387078777066943117205347093580859690634753222332155126122476260745857969473830951483427321416028631180721870951615705401227254642208370451016354071904235974961827090144501906298035944567754268519805086112037578877762653640484663403220406922524243256088014627426148115355418885396721165804415296698039750016939837669990608813208883143628219091467930570023956492444386932505808897674888203876074926292684735037314731111398018985806707335767716284078458673169293601420681393276584259196384860189588884398963475346929870007516164346814853492616714538050534776463859839714798952537661988846242377979110539337097084746458217417392575782595237963511395191986949831731964214370822380666912226582865983248721520673655168842412778652108267208270092303229563763567448789517270840151055714853494959640594786470412965312655730706867603964383392018656761570862325632317655369072999282010765833804658310494706755675853131001437714420931126376032336891007827263040433209066051812057942710225491557651222672437452106863321415019719312667383737898858504367279804081789191327936457504908500267418133805635948235862351342646921098670976274741491386396393149486471849534492720648374198982777361146962569378358836378336844137282142044203202649242679063686374743423912166400078778824619644183791093536499844258748794822070159641572214969351870957298731087678169539697075525021912145073516440779470160860214656150420665111484678867828680462479744765192447814374424712687265202144982420755797839530938145657278829558798472028200095440602524491640800914919714237210851329954945914660251559340571194050466173746315207710207361954442449824771598705544746139869655304280986259244384787800789097025468136804108954016567364234803590689187940538464620505310594592404008237644101404511537992407369844617366462890770040941951993310158506528884550859688151079204173219663516830545198056154634595097303216238326793758577926126898149191394340076046998885172816052155332209257602114221325291792480448833934585581988537599756949912586390178318205983410273034473613030432050100088052521758873541087878132337109485228286545234338215802005924312425076968880754288337440552677938187101122304597663917012704520543858420600794898756296218544059870711353696113216762012451933592264963849600808428753873313202996404356810072473938301362458720012098205476273793642266983827998916776815917240473461010326571524686304920831910822818638081645439575812824072856675798621134686421616947921693920224699108002799055321742750547201032362977294018426415328222390716874547272064309338027605305936748248721062080206445784352370321017648039254649702111876575298489794089284447934654663675587511436409437048492499558448597606290111048146053084899176808667751092485208289057256019884603662356399343985153058286541156414732375613279545750892331911867251213980411180892889693564534231079752221446436082721821543682646477473071125398922849791489229429670667803450572349802139760588534962433515266957557713813665521989649651593022379270962287258827669576250276819449074058911096071100595987448660364403015376209778768879385660685739620894990463549887570139004809273818666245845112952613812754082243207422423833073269770846084155825522043321440624759861679548348980584210130639091623595448846225171024762433786118156630631424878673452007047719300319846343887071774504213684422920140193389507991909977581249703880265767629523102669007870619693012900438877043357475456862408996019417856156880201507150362186435106290512755613722721363756535303404953939779856592347481935615830960258057434656338631057969990157902980287364445839945305842774049070303938912713921090513222756970019344078888140501556905866629241663559474097384918830212064634521383004982067108155046414761003416152976790390655745407254831654483704967094110750519270720201722666021947213006412166457912638964620572105235071388099904424578553840227305863489586112801648981418187498906932064129761527160692190803248465980616341750724322041891876816305542298449446065614873635665737661619576614297910636251703216327491080856034397469507317227717358175976511655133660179930383461642481978675959435924970661492375667775120523864234104895614876659133028994605242395557097321563557735867189220615690589797731950772778953611445612130845355487787067493580089467255362008413631761825279451136055298120771507759772259694417792711893745735849043458490796828286952431957236862079926369378073911192863661677217419026501504748598676089312247554303140271517949849292295678621634818291543111725924452846537006323692317253448334418036025142853162814937169909771360890056925921359402849484398780119103929673316673969104817213681173939052005405586278228340623440651138626609763587474289520009266110486572841946965761505707208979479139812127387490934395795702434351621151223239448694253156145655436542988120347453770944913230604533635384453306909303952358447186187201557011731975827439702666968537461520632962524035339886356677033506307533076023273771240806343419754537720015917678502012015854894400104427351909086787367126099394538753900870210382079942488631093958151665160071840105328421953751287513713044512153307609492722984744551982819976334685174590333208448996165522372734765423916446694499020630169288193311718924564522629038893878926981390924184719553226092163439160679995679814555227981530045354400691515074366531929264021420216338427572502283745487112469829584700920328157085442836267060165429046882810374722522752409005785120539719355397746041584378343786984829905064429821758752819566342714364083610311970557828089717593968532682120379197155758635839416436274556102076522991819703781162487194686796493887382553743836810585339506875140516099920794801510383322027270163307397963134873359597907850393690544024071996415951391203966263386913534188046936650826124987651557701390859871975379939044159681521994641157027806606513186821094156032000291227801232971093749616749997872296013837194883358831025418866326989174154399514471546910787717707396346832652861034076287722741830744866188654206416144519245982140635002966849301850920491306443649087976012087897010393230372726862187826049664659332727456906286796585704795899920546244017423339208764611611543090892037396613032981958294048544716398273923758985798891243248684868119510939760519598155916581779775840566361004706105510766212394883321145394125529923789178997050342707755597633873564068372275229624659972324754200970355301672803845051054946644718121105770720515564576029440268135371319323893621088876709005707322600969906348056909876085729755524014080330520172404433608883041693204147180905282097639053523574195597084770485689770495900609010805649230410786445717366644449074445438519829577706207297143224205543798224426450066760132011102579240823347957819238053187771912264623661427886072139512145496097525103195240097875819887128396246336575531375194264440430892419857868093451761105914938003196887855620726552415397932915905949447365020836560641202372644436919949677990503044426266988594457009274861947460066519719925365856047304020543275814416408681716895562872989536442230871582286420395286277105850558451977770606444995700576690163267833715440592292628804515602367937815383785960777394658366437268515774789227480693029691326719493059041765562728665666609811997668036675900553194082327342009290653823283038868802257963073711744239482731233431458667959734176853122567303036898975893248401319607197285945930000843079463724608459015284216369472542073751597618915087716308815480274791911554937971311286521399937218985572700402605308311983631180680769742509925601911752211137770523121447500379683938368472868602790597827998627353421266473868329570899533876168552996507963072335840595263852158646837089371958383503223862152352872670355903102868111740147447281765729040855399914729822064651668409242606321335497347354808852986021142576657121702775588693363517868821541736538120912458106696505168892482042080099964520242609116990771734526799591040640051479950328527669223074044309953080228563770514520473352196275255433666977023553732071487566750054030524178322843702613043446736037712167392631418324543904728108074827612007250590553832400162916408229347934830874729218301823583526357626375025916411872977250009276131475884036045961332714133623949045248379366325007882507686951395405843984067883538514751623579428125774018270840263567741665957240892151921876990769933837379389070166142233779395523534868945140556947258097909138765656062715076528711492353882962094873508047278593736104653427768256767550319276725023746415961767767548157233405264248666298193424974613382316210354087735532433028690838394073364022601571740825769785051768332914767246350686593215386068354972465804699131059254029391739008470629152205246125845055474626936107222347299703574270622052480417055967734276388427170562635437853062529776547663996194802550910888937837973114244470822051214145306585446157722101503075751990643906706276130132548255086167234638921710727498877235082981956067698387739435944595580403383232077853731884796497701435063355359128846720081087254121365498606092509212931808673688143572714050009539918890398202223487689333776612974115472617656265850812749429805258526044282859628749490613670094239544457994169366892313817270846890652776484110739498572869179087861353769015662554774278036057898901523794109856126948445721306806415337536729327920724296936252084813688141761825607234108329300064691486582607939158151833389455852474130289527838267485762536353560711528782282636844906601043768947249489292210186123293823269052686006627270018241690207215262864260646975009154114277474973175270804610454272686957228647313619762226867922159829950242901569314030064096324964747213087891716883315377216213743340032922638034121501405232104074759026004987860297237137206165706249538131499746617560991469269552043607671325105478650570807084433088657079147794818941199874816208407576917786733516731143810463955090777337435932457195759336377928862723643116939527095446468029192141387223505937782225632079566145449428560017526625184441649469674142311716836209551891031798407281417531885325626436079631493862268462854718608360906506111649950738032427277925121541720209873931667784039786366222568900826378191441327340370647125719243452535411224048871542386673311813976225872213784518822672305925536685968008174224590934541853874831711481282472966129095393116352288248329705209989753317716151782867619176763633401912163611327358853068031919280909049133816352694041408843056596369657879671718776270663226115946776021330136969808800997645615177391651072160812840691631678426818962454970460103084503695236125270310216977478642187268457888244713292124514820231201580595523547268528015598815524575977368269045610613499771929502965187338247582901681369546967526824130954381382476196238570743371189120904399997283045523807051492835217314885484807556529784768446448124561971667708876906127927013476187320133240676278504527405513997548076003204472095147944288876176991107660858550917200191276520522783510667274685274249340549475124810053409273568708318325912247835199932263462315365570367541035994527305828023011223347786457886866162786423283525450658974324046551037355249892431787360918793227773489167894518598655582546159948368667326913360795283602145942670202030794177169078886998996574316255736778889448180359784675958548250841065447805195065261295430757751638814956428813169439379138460198678586010818512216711054651583732810129883631791808426962762601895023412191416751530975398909588960338541670034570821744440830214090688870256231503434774187051278229943085504419620869175345533887523905355783509199498428806754979445448391303849984935366018086029596261300946868341591937742759498148251898333460428697477796853194047822500046299211188576843838569445709908051729035662330771097769887540962342984320536187065310303570835265927193019778157314056339459294250676259293916978462766155764159733647962529798918365076433370514286672020736478404326083840662304218793014274227664989017377698710519355900976780234097642346650882077722222842513006030865051453307887051120494928717471779763751027227702404936092206876903632217526488611557126457927561008202230307086677401232870391596325111371885807528728492479076609042576301572236938637472679652132304587018887324755324367665072814761937051344138999811649576703530772096500880026751176969985171503122736979657092295818704042885537290592242831577858850196323695663052789425141066060705589476485094447602874685526141116401979480878638306640278117703787104156468217609338686561816185771509371263105067285567348114139027153820372512401818733572447781825754103407422526583884802940189314506367074257690783976082279083067957370559355195043134473916409510251584313663143271147828269615316875543080597854438889061056479174989052814148501721716036637747139465746206986481904161833180475308687772058277506660444696950352312228801692678550968299269047923315158370844673737977085053516030622170270510877909702860676575488313989564441007155255759685244562029055176773982243553983914601892495868064672574448133605209918780576373267108484763017815474869695900307349866071191691379745668163038470959743588829513172451432401909934332527998151482149024009408218786624573972444041474463073858429727289948883344025034059868005804058065867235128089763936861336819127904310981838781896189479520664024340553973861785789478914961863123035960162387902731713830984284444188874695804770458045950562393483153501427504940982611999126091133267741569299778691473002597064478614130145840696735419112874162222421285302693877752472146074912234395129829448085336638549183488629013571559941895992837157454119009611161855695254782148300369285526672765033511567664726410956960861103962771958333928941124268619278181296020949110809644108688015871554360699924037467510747980632954498632041702153679941282127214315431162399860443599750869883247138532906745419356297719054271202161177797938106598539535193314392620352393423571810487268689557618259068424905013977012252945869948346300239975520605307933481186376471963507216718425460519374611835641787740660409474094067640350528407369814271767324905330981501575355136615391185311915398250666182816115084450907678542114501379393690997258836458046277462308889135300267979274735709778570394399210034369393419189358499522089924972430050068367478088921874461581426424011187482845784166369056494961498111855186698434117099850723037592231789758618895888133928345728495393262305144734771866749052003293358364593858624583026427542763931918947354377258854519856084558760600525578398107011396272904788033189355957387665068152720207340849087187381291713692670602063902343357886282437586225580450870450013642559909288663491717251250748736959252614144122873728354226371398284376262239417949478119764532849458405170977442364939792144384212183203141789902594394851708681495557285966745949761992180169832237218887109104418635246989782572031147089698596914771583321859868820980009939395456840780906282052109438611583021292292958359808594589354780816043319962196873425788973784839588652112247598328629880435655339750654015107208597169988425395421200024019708537471049660768526968396859667287603959147976109735377738286413473860615918580088089247235700295263736190970022388667418828975733054355070129697346872969867016176071508552872038060724531565606604710004948460958895399797474928036038749651950439085166311583571565270222896193216677148760904686787046183778535196955160027826462619377343444040181038463099646853227550758308509204095286434190019534624150489482725453040149536283780255473285505336335149070861118971781784344451871666580847104454877397946082995893590927186450992254062283959384015266156843508981314725594718321534835944641429845791665780851859262872277355785191801225815215446406058643518553201362776194849712267428751007233684834968379760961239876905654990147686310960510389754203894493545799543810268226674869109893298277609970976171419134090041042739313873626682540859301490485060831050498592858957003395283981038585137741811317156059349497751512949982984062607896070180210667494949881491777829563407593925501893174469504939769506276588009305004363839893674477491769604220221303222507176542627595719403047669910074477630969065685374789415281144668551160122845036404265702724047534035483769213833332885823265482169873977240690648213809572508789036609261985581865867490016301028308393293783586502436282555789249011741234276333777430003826307409014260526713773418453217910592425317669788000470558311891223851890309436453700077219534671775686780836458526584977965335152719193718209063296728027099092254656219135264348327573460815145308137571805996150930995563041555597455740627279524961507497010381862603170663722827565331583667929606721696870494901775554443733807446747392303763112486892808628062515410251909710891455414762966959014358684104646964611204196050270890948071553461754430550431062228110655835929069274396032680018341014931426607424596262180694208055658958935562355820806076235490225876714513485982454603560562291634195950907528368711685905397804173728860394585433106046159907903137070124606684092158961564199036881568250440042397876753005247454853595338667317298843825746881039041599316462466381849144761132546887547689814687788480852941869599976963149219288502310752109646077211311438272142123929116472778410695342591041398859791879733319086460497949674816751900370568502854941289275657712861629540855327382517385012806773465973722100938887000707046852035026827521766491389600624353555846080562380411626305532779440306717388782830054639132772294294391500494045584307450595114776451950700918450050747505169224568962932938899961116823903793648382824594669254307770829166108320950547138172710427082421867084948328406865633305683405900768867010687687105706324316200428645359821516759844119390756933936409274061765423980573198935056533359847398350484320372704977845157441142301608720663238857718593129875451319666365630611617314624870644757082847314691633291844929372127105154594781453197255331122399370974430772820548979724784927189962613172536785207362619742971892326208471747919673144710439478138681749339579478168672607616528120796554462839677564250271517355611143332465701478265125898994522731252966649486462688633393672121440301855227171662148525176549200332939234358089999125386126891657876340253169696247539155800091670443138020903604142414150630951739457343461433106935120287848947072216520723583670084324683397069672977187190834771425576846094231560517864025952029883740244243421023807832451779593734188483528896743088077092954598724086647004396690168861412949924797495780456878794461497206134302082145630025381521817557220471657258409642138511144995862002776060755263691274588592322481024941657643998803157245157859626767274444835084897730584850886367242452125018421064143975275134231301533286607654205445624891454210869002501985859156655411477770919244972926434929333823484632141171427136335662240001649093665569730973261182072891354709708428693258226811564222783386575404386573023937569953099282768836291903303204192454971452000474552685143321821458476380768518438803011096136762333860781922198819240927202077578073849043238569013678091570950590428137739312585895935198288051061979637331469598561703914335590000242753170708710310369487438776445575417497068031107147125608398109834010931748642258611638922214723483045082357797027306231112560137463149644590952751252495361382046826560706161558676633364188805423113727149766447161199537987475686479633088192397620944179161645961283041241874953376754501952832533350645657674917651289381093214614568646115333960077302616920590776322470084657679412347475442728160080952719741012460112019733031321989551950889683340617339034828675128097341969666403953382389326690418303218353005346888394278495964053267627984771460211048489583089587874100451591133043583380805416592833542237349903541918889264741692174695121761523944489539569869434293649549403926161797056872038183005372127985870012488691257852768609889759073501576217168399197735979937624512300715661626264603857109979835894006384346456280736193285551554552411420531196099681184094305239715264554301334422243582639308040596110167540906431073407740558498312453847901067665540217001514456507864178525714111782616365902744937771090016265398124213937700180963855427741029810158508833159943429922084920276747987165416318113771859527024626186156213273580878226486885361326326080963225402847084099487929630126246851394228244567223254206545257729779159739459686553175884389177670446313335775379377045013483759896389169753015275025573373356037601723622941686205489144032842974285983433715275007946518427518388914592195643299332242713589456785802739591711464980471248108203777097341652262182981354120625247142260302627636690676387308425205195772261432320814532533607793025817634671846379451094054271777658441898349884615665836508454356978216992890785440679874299375484357633546209970376284137336095231306972660169470955374697728028605862307897572581515504805546814464829205481607078796196361974303910438967302622088347836657894146411588982310109023925076884314027188044130764343502492498463415478845953653582174201061925388753902992248877962605266411828026522901326552769816324575982662126588462805943504248450541328190455166449405981347430309229402537410119692710550256343457676110558649979033675067642402675769027362297777416463144331955163767211473158066190948762247857913901794178670474349386224182232618151857481036053801979321256200328877642069471140100540096876009394012562144111978400521461323955300393500189449809239461121266150697745869226944329484888135007682890836661692817273998136070001477492723199103299874659147036451674847272822445594867498819984947673698834361507759810874616865922472247557725556604711351898684996634875123830957155519420452189371569502209945308168066984951544001413226303848144762693876499888301436303027381229939606925900479270017369609996236129156233651473388980710542822315969390355929861134137586291898611033121192067467109565407845435993401430481216040269641991418488661723348214978794622114897527955684386983583775849396030318013110491321030694262370587006942875971550337438916055832387282413093421339010381002537251725932569310027721404421157322029912457247890908449665069234586839317784127185798754084293774985793109625840163130631856117171454634323995158744150803754815892106523346545560153639831536873267497782607772628254406347935920463592011619283627158917415880346721336924515629362766304851555165540337090655629373725814846930446194859187992335262426639646560580015232512611993205259312032322298914794651749663933798311288648900812006194176378865066825512025716453631264714162788864526702841944115510796216670140391716432666903613639333604623835941882477100063056100681811136171467201953587122139346140386386781032319916060427478243650421645947693657732522584890076041427440422123193867510921178620852513373872119836192201055138538610596557530294393411524430793912044953496350786702997637645562519752161829654964015697218799728849530534727376721935912100043898605774831906096566975307700772194770811722444301866694326792000077064780755640999759486618800933667375063345743983060085250123189841084781672187805911440305536350489604865878648830983924152041530430064420797875454681123380920628417931296810285520096233478476302809822749240838111059028601090642664142702974789745144015521058994702799009239496736722945978425311839583451963668667062150580034734618341392287755339827671397977579272446967208877369504842654372940418710300044049959721456319952861610811244537495017994264054496215937413639390854279411693688229713895129840250327599319908457743309433802985149156344858481693031644640387248384314913638166360818582441494812982915946399430518189428742065118202405966786880103016141695032819421764023706559453171330207612795163303636479660762987580157012985942574084656222773105360874540307394758519588597626239548799770605111878613000431847440189062513474429184080838679017007420692897563754364781511083494170451770912997629020352697617927022564712922062666017118696676698118799449125719507825620730485027017717617403613997595684328683716694187978586555791635975672177634648891220377567226076565691941484928899404357438218619465712200940680535776094255892533796989554261639015389304934199079808773702011901580977402446437184242503068706569907539338285125201331776756434175469963799694942547577413230122359865095396989012786090818592156689271780483102938445731435267598821334070269515159254236848916659350076090392691773029385683676836074938209894307912418946340151776867929618377401537959579987733296159321242824282705093439646015388833352371120063726621881995121793673176233076775032013557705793136162945881671665041835520740202625780192378666808842977150458401809084425206848289813079494211399345596834729299572931732210702025738401308394754780352342240471080646369225325145587977526287277885777369576238423929679038529848044161097611669247364585319257400466280436629212567607355846617907683416783669882813526599117751162909858967655369896981917292590528156924652487499621636070207057885368611602610493224236742948180853484383180940780499991104105588504393179027833206775720599601682581538973708057215455002854060168766742693570417355650173882001329829483561107092945016008087714377486418578819303924302737685508024223059330368305708622044446985974617461222741063233112677945967698616417735381774308998056118566918186309596791993833071109663119698694198141798004605855345022710348002927417237522663540673072181645205820901763712354177757022945688661505346988804191389380555186105268899718313797355790611824962711216624456322489712565969328307556598234524978838765458232839510604909334848998352774067073814334620860550636536503794356708767541828157594917057620365679130026750954154837271822558587678640957791013859009782089223927118546923733220637495283560275677834904484034763875573298469504860579364501927700978325398923097673692889594141421959882668946632558669915433122814028312537917626360077801163564321691960736703108703240419371694526618399643914354421127556932577153090005804291890065577848448195529972932051553056849214556112043167595984347579054100737777457830051848880790489543097837134351687964378158313710269123191707422860469781176037135178215264899000663642131043024195634983696588094303102947582679221142453817253339308293950387768237709591372597461285101922224089137515342849124589444374510481646576859967248214280208376899988835038645415718121812857141284597785644795547252746284323230922611328351990533465963182037344940319087070822841277998095018053560239098390264732661902580062977852761257007624249884185999039690039639050918407192308220043351476563752017930894878753674911450673591795605306560296478748489154079947277657578279387828326549467949560403346855100914856584395711671285911549533560825115757835043737981747471738112448706093735033637236513422601666292673554207003178065624781097773647414261000324125914330619494476656305251451540839351977252935156284523039775170757055074073252358783387523529742610901176763242433263678876945905440941120774630364001741493628286162297262841470246438434868622739400801981826386361692703938010080312942775206115609391305305369360638164314256394957716345538351705032211093287704099075608272688275525244160180646927320156780273777457331929024007465049228484092594427412480155321802141757491980211524895191277129410830807537008049826547111251581000365849260057033356581940715800264112055653816551650089476943024806894247550865212353913627048733067262636362354838952219416532160689634591335774658585844523561678069475369025127620535892953903491659265732183067873577082106444404043807928816798703373502797801243671033938814193219974162004462653382195459981918579586194956224174541449141059473826316056787401054353039816616381359035050215261202889120634946088300786729754526098902955795155073621884281877040924211957563388696392688508876436661046665198048808069387866648401469319751413972997932817292047060835114805497489424595914373663867101130601578296380404364390714345184762352406948049110165111345146490548355578812391010489688499672626690649117767207211277103159123461605782769649650076126233486854413467846776040540640741180858437739964314758148415309054605853263333666013044092589212211741270515709037255887956410422932190119993352421211374603258436117574259522393176260918369911802624326746269612785418518682584444841541228082224415089738074301502857808794907406196842907189657171954219778700784886920243890888016255325861875467482383177161766074293910860324032462699638461051068373010510164862312663445824213797544203289319014557003664617458688137895756674593728243006351061695391243732833506973993939269948933356986851886340756437939287729374384231102840047898985083718827045863143781618145048957841667332656393214739500726125073012328992658504677368400319660895472737007098432741887618422222827086805260542218483335273994825337130778286059088020436088517908215356758179510030269645084737426630361565986448465143748255342312499075619719351467246270834335787273470492775369007255259434841729843016245174316537998581512739328115792769920818712179815446501778672293839648121131249877642044921983537016988533233390874170250914168199843375754564212106523673718983265708718815146460273700422219027830920469960714911760918447615067004168781965592667101940254215210762383949567330812921285343798156404184719185514798602334184266749369022887410343300058573197545756200826605445274331683928542323618098147409900229680990792983964164355440766801528699206489880131891085265512714452649136664346363047400133822934947534324279530158138307915282839439824921120381983947306824653825119751592304124001309752958144208796954589611952378364474347898961917096035961791469498805869521006340666084835618051510108462887508525906037012437630650988230353823652254371694219847977933177453676661869664288965217242870504465800184685395138722983939433723586576103927218960942755417724525632268260865933478610090243071867468202614410046901675365522613844231988491624210481436582182164963968076167836999202880304536889247366182841092760711330978027012397671451618569694999923156734378780123016334456661765696846586032555422954069658038467496881652237214391963972088888533204300448940962508677438880414327007928877168526390257209069724968441108697676465310005082910794304105520520737096565367234425390762517189967721408782421987528321831975152166734009318352114148626573367837850743259388124984733269210166647409956510560012493628382253002001980697152368750568447893043140173849569166500382364761070472967152021084019122022968723113127025808134580993913320984549279152427130157928927269252878028316851273938430172358179974538979645995715615091667440585216875255009074111332650303666880149706276335792573113858269460286199320379656549530938316337725412372617934353693234217120649892334229780418284170602277024038299688498452537669607938361116692108956400217314893504225410273549103585837516598814789519243065848816928372490733837913432068508580647882858155490059093683031174850834412425209979232112575212875913274240125805641752667039353928698785620273673589029090286527109572526567366105038751654470319363471093520441450827485157191298123612337142598462081276837710521584271808983495896102665687899731640938926894721563639396300806232445600712757247885667844802386700101758913937226450791172258622782529464930447407478435526765794340267739581149194796065218947963917083803729273807420585074245489546353322875494284763919927676659206135910622785646886302967754607907081753403245459988452016815802021365237345488258754835777127998497841765195167518264335257751483593650653801092965609256723730453141475428716344775115844615002233228510411286883842502295791941012036144895220965892188308887553326266471990953947954788825724841622713607680118525517241027256608279074784444471873509909963001424446446868394913582574327045765725061630696355706373454584236889322109092915076043408328713955537912160022746103912758650552357426045422983174640345560971129153649038328789387957625748058043445513891648596800502272364863507887735018334010362797187270883624062055772083567068438892640769920637057578788563275527571388856149610076240393158136284535992398183267922020825811223976264724933734906035998759253940252206278904959017269848656651098055833286697833282517519891251544705111066357997248290460094789360740602832031455963139309518057166363571198728151414856037343460412944901987076962471404611488427479558917309322464085589864674131931177255300674803159008645253642098127685113812974495739605151779857109175767762190760393093174673234515288307518266855914049993639013347177098129016724952585638129696185675152779255598983796331213334325303858126055150205445869314957512074166236331948825967520645392928710771472766169826737797301586475426255842910707322601242669107138229723849692842840236226804749772408316341016323330400698254770381926464748300949244241597753091362917469219731043727211962445093106691233968847619908520129782488913818481894924753469184338492891024548534113653560639799826567419796942714346600729402896953015559037115626537753690521839636578832348189274386931461301266082216479347084425340934833716971538558386964339406855404753142567862686716023145207047355397683803816209021224518445614341095362657155352544736930552394550175077135036036302101764051901421641930141565151412719178286058640351570837187130948157885309007625753713518275474358358495311650363611421183921291743930036805420951548385870008990338134505737081943587766018255860554808619465703894716402915156644563963702322504173601140556880122953081066354582987686802496115432636578456213496351978923836348336141494953536882277204907215442429410771959606602565993563068631388956643798734485096314292382373767758023066857370607084165028682460036024980972197278602613023035339126628654550439944899165948714961944175904519350423778336176947759162525613105288565909544771376639223365991123656071916725073735096100462680696021351391194335073446342858123180473149069410883339340523255764035695624226362599529536803113083527367174567812952391091652212587565119856305723185702994707861527949196701407926317634895443349805090604117042313379411649219148265774998330998334177982677937941342654422837581453817990333902837710537155255700564351347674843751193860713488749300120699534482699670821004248539690351874446754408684231200054196947522819707187548485421625889932779053441872717836860470721585648044700714426710460955420956950269464596190713146342499781870836154789181870285100638628423854695030958407635516258091348639318220906377125702229188526385003584656449007494951197095779527781256984450253599963333300482045579789983075307663153005777718238200145188489368636487089070187051927963132155166183755213295439368849381061465633114083696405091461910441656177095363676992924352099204940357093473456481079031368741337671667464416402481275921744231005759247989694950850784441690159213570383471102027839426325613336363178729655295401836364679903348188567246246178946741301903669270295027283842319775252089620632911446384532730619638907355790561761321643805536966211924098572777345740181512108759888212183883581204921558153850726685755447598358915836224602050503186978124404284867485220282558004442451969208018151976379801518794320699252975921051705348329605526511179254841703773177257268836556934763832698454081209876476947734187376432881426175096607204908827211703741735375495984508932532794414196720066285295050733901907200951853798301654453302272671827353977837518293860687365875355471417139228698237848322495967730390221203311909834787972126650245260405660685852089613635311230166274007996653273278605294073401203554565633415071179445629591397023634541803267697486786710946113693231935695488062213693472706766880870025691391261101168523142588063718415790913988627798653282319383395093338646210451211699021910493966093316879289895959088693430917738281915382450056398850209181431516109658779781838149024549059321344799023463199263834646169143127206837774241996465977222033659040845093439620890557398358293684285957895608545345095754947243532035886399137043844734649250559504484214288851147612296556668450078221055174520554130361674708566964768827511866640625018386838595341440289701992520284020022385389773873977719858549293982707063609565238181630080717953297845302645063985732788722416385949634642236216283488040268871014980124788126471788402557965913399299940571983590922411022800354654108814953158426756151897178043634466651486050428629699573309535260006911854917366960136532208627073995844940465249006849857157239430909354025864269139770255860646618500131063375281867179664784426037544627566946773053128498392144944549476056833179294185892897199743253660495985717977241050859215399009083620324820084527090841309096853219661304633419091781160760709612985924847039195865901878586714390906337637854872821579315012382816312673495829304594615467790418367037374670694915085288864838483774957990684989435458148153603200487633286238870484805169084399273469647437236730761374823605416538408214700512125973002958819558651478433634792889613613525903458701243977280912634496814486995239893564662658568429736329378230195989143133033703438742948388209563690825366166726099813645950465041826899710181398214043981230452716591666380827893207233327586405792632959638160310205148983778252182321229552934176628981603310507004722673229124910610957954799958004655034701324711154894268380527859270796936040165257378378646470018083305145009023642223544049061414026968290898979187787720450070105078671066029004054346521026742979650146765539812160130703351970209699640071115953694065104179843419446296100152230098565178298689151863694600653877777401593974999706463998046617046938662674364735907465469310449300516038598637862596446632029803062807525288825238839864394749169167635415931228526835222822333098875498925306836773427011758588364091318585563764306478850901495776688826508757606508948915470173770310816946370919420700961033886091358622224031661288905988175215010358305014789997881435054602086594331699707196016447546234506586262126869115509744319512453764516681286636006195022129316826836751930824183380362600936878604102806226524525916280553490065938238944233343712288272426188396581304782151321275991139565817937033521884114700132695995294057299548740938143531742877781492253452484736622077624980693421864174564622873905702287261689301073325405596654914909239689534617224412096731943053784800234408791631992129735653837011068049387456311080728827594140698067386379968314798651770439294018524137606654920067847378461343288990958675047042153870792814501130000059264115932613787116776741106249043903823294469876661825673686172538173677758476267483787336973483536342218852821261314485397013091695102828906948479381182239725793962451198521955644094132081605629780184798211575759684885031882602913012144586254788520817127380082154656591304285658338631673207153066712313916127525814534341661362062385881164688191752233171919176966147316621065200929799759484062816401993571871115132844031840648109198272509492130178447856387465495778913786792048647119879859782738013090350027217979015535382305498608115692194703337621822977648618951536759109090888371853377624630532140896064620538677925592101320715452032856482050083405799507832433503903802064152631315908261959342447091626332651776758499325493677949811647877656502164580447861998406015445426802351882255887675878838459050987200149899944351694969284493546688726317579598942575183529881634381593079891430214064387088079557592846422318104736877766981309725852607569625361098610439596641522373084524151200135842997216664933412109720020703152087113839997690630617071775412174201393477683446544133898439060579164622372857913346575897413271803767643671949844280799840401480673737425094133860755883809596005291161802938290072911809462561970257682354864948498448211083149383479297141269448270128857085088334778010676910461104454585999032812206826680424636581886531365885690219023617994079124335116163734390941532966190356639172865169239023944066102897220020260550689811118435172386160699955607068020759667994636500426187894820986901835100833148660883582746074272195378066691329669926816350403564528794745990309184944072938787040904551834145724535894891113818105536969257008891941325843237168070223003929085937257642574378270438350490563074693834261575003685682386706511494720883943931493726698025749928619913579802843357559239618773593349264479440777502323603444891530266929812448130082280256933231545531187366697252171422620187964174969065001193262067656925312292115268048046526303972537164018382447755739663295480166526954657331532245003341391899063572622143031350080351641139487787014307509869881816121315293154157079453047693105415038307291851542438371027275897262898573627299644680452707158203737138312193285546279127964302881564603004303750815880034681486488419764353906032195624553221135813129901193160816801202895871657901948828077667710415888073753876168764076035808051745222158860500943950608871518443971293654491532880896029264620733104488484527863095133195601561088910967556158735813292589500296990996059082208901535750509878989214146022095551506656928684826372542798264331640336829781576681411653819428974792541859664348218669876994289586194830222839970610527072507711349044835399737843149870334170806090042362944433326423673335355618847133609256234719009161447082266075489883878396771939894726276452708431905581907052135259083506107208952985842282457057218893168802300073786802300107692154197373756010504505261818066639294267461331875145426201291443697886856146856563422939044953609809897940379230832428822976411917850436059517975617787525054380443175024001329315974875045054220018484502136614442883567604858234036664565493448432283463637819255285631346683890406393952330179544959346247136220537059565803735413065973995168963609156002671903878483889792175560745387696077595504823520354161338798888042029040140559876595186590799871714771285924556916338259290951369343419561353185902186382409871601667935618012414604963714372845740631642483700831286315160457776763730653933739917052768470963091055904418356565563086121647693032912050430734296411750012184605647119482277748291421893743809036650130330976519450560232848107887454168438147473936052621643456865261287297024691368290328809001457793028260458430791331892194328206642056726317245596068917355727385094400367938891694562280182907507074218296901461642578719658260373824239296319014767269403295093043518184543938355096754674534895236635416078080960139245926826744053262555224700238653619161327272323810120413759297194294575875838353775969584580308445161974781671105045995862112052713539376458991432593024832815931283892644536764102022847523758484859210060127300078482071037191200476473865430230038922325501318355807980530435568982338678875655591864370134902171058679499832164957387279231309619799505318507382594360028996571680239321149528831355267129840210232525593948462438041905651918080778093098513126845850715448798496391943374543558262138076826920969795059019089781854296494138236230258488928842800580349323774414073955326105855361687122925157067206630134297114578463421046239759796539523910712859402509452308245358424038863990158437755753133328290974946799402999512025846223917009605045620089833439672379815204169106726738511293455155249090381713163151381816635869219877389993886020507768874406418766571491844524682730184384922699458373232629124457278060749988910130126765187757819359538888238711604785977629160271679145546297507368073278287198738967106362368988995496622124132779069040706406162165991026485957230045074288341732561318682917721503082582253623209090789753366855143599651821597879164081227209708758553312597557612788343661574653677504079709187857679177987895577282401811484492566888929483435322346084845514085683634347505883226549351272820176195076280886192229230225077979910093907756066550535353257700981991750490035047234538354543507772440331347315585362702104299738885014944844065562329599912590344954346102708616157875555407379608487770528014636325611044931234021396776061052328968306266767518128806512410659298474357971473842058094278219702646642383189670218850700225724649930108772264769768964388100244852348104863054918055332679644753090857881266784190196978286922533523800681470693837980921471468626182074009286688595353713850476704364431484506417562275172519324677344392798002280816202746182229409232082324234585763907291102656937669896342403807604034866436510942184248071420955985091092977430414537363368792558298730409025489435357386934783892766408433163223624092678454545461935213000884572143621526874397559511033376676153620495052323298362465356602060057064756649248362631616329162026921605084393976327611762000163780090991621724121737876973368400265745617612931461292543120775627776185343750064179756286283428411139236191828490018755322506249441332567094695132465841800877013472608959660304118788762269379683705906320282024160683630820541354847788441242473482894947913426871027366738853468019362659623586274910288064124468276914129966436618183186841981478585184583132257932899077128862879511960218099592226463252807267424022955974847442152668730519645928645213401047493504079506764195821474459377545055542603724375437273570198325998539888982745087248534852992496556633568795110213393531869189847840346171994228008376592089061412604457185810595350621074412310378142445027773155582085952826885252900138976210211973073523608076043739892129588339067816271461759583264858471848550103902256496540613162019168200193651560874749068538588711953539462314517014378011159730468941471991615330349162069359870007649713472358533995064040278851230231585939542255633649102036088243546023038962681919626824476725324269645198105946820375771672768396361753055859459454457072590350558209773990914458207712232280796349638401045380808804415887600197848120740187859099105967492291225188391007519290259498475244927080594755748355984264307244808618870120441879671699352739045124714012192555881391683816535819435976102280502529913195017668142673927757114710006851206361639361026846438736647508573575741065264636581775740627553341504851179783416430600755736971357891528443881145433772633472788058653064655896467473885994818545295047293061293375362484378584215816124756607522146348063102763052396300676977312657281354472276529564335792603823142999561070284763040608277866057122887180014665324392226779841091205673766307348411832253588872453699504227769053278393071568261229177263936075677281915152622031497368552281183848851639288493675185047738614996150633006831130597114067736818655478021800598719605731806804981923895707615828077554586604695116000749201642632520000683569358124840447185926324234765977099582135325763895592345089854203815930107841762810703091612561155436475614739801853123753246328121515104115510194609329223838337423654828026781002220110922459649537406443748950304801676749680650841636963668644177800408312009405220207764594539344634014728797425658527954802053821971909442632636826320134848433449480060072259449550317076253808015525917722349241396675054729683098207015269000547609440079156928204567002230017309825400436973793413021197168674788253485274080627077930362587636384051044698592350461337893447534460832948066582934086687670421076521821418122729303673905512231850699922644843582991331423266950170009163446708642763010006859851585695308752953958425819502916413433160110290245297306647392038402122653942647815848430969431236326431152127553389208563187436858249588755578996562268970435542495876934240750049659722253224128609417589302745580281938212923809921402100654704697088673842655257977473728584117627604409207581597544466787760246419456140438123010616978555682728482049360044009430289680928626128804017856048822532895612137726580876630659567661358812725330997565159993790346912087622567932745065970623126076631523409623577266711054630336987976866063787231017761266023703454872703418160008811079056384251899974561505305434358748184776974798803215102217109411230104611712452411449190452704334911147277118742196956823532327394200312205150700697843178441913071498966897336973986772021903822195223683064986897821138970384350494130592362447050382010067214784483108260145482434275171639469900004077179491039182719211084277668861046841558098961036423906037308895926082657286324182696817046767699530265014148696410255324732249000961273054966993512664316871212029120294513469531366365655751581641643663052313003311779328775242701784819234503195687068282226383927185196217944559131825091949236110275992681704584751433908074527456313577383588499801227512596407515876870991934452932559882562079071170318948656196534703716901647427481194634412849342665172974045645497011691042173386618206417620228374156630564703746562696849851063017446264096535367946324607616193637484705616035603197360528263241118657163488389554851818636844841893431689963337315133711192310828378471027439637256886187239039746243690047005584625852823179210422821198677716004132067261343442242119659740507300904776485963949204549122835419086256609312563986580589873012698605827124683612366955084028860752105960582415341203023880900264355508040447042065436622076670077475774545610875525085347524981723910832652210502748535917497138647767148125031206378590651306291920346601111655925903021481945670137331284815450863627462067611573259487013458961031407132115787304872860935604004124527188314020095662531237801600179329743677993196796673459326468873313576737572974220019450815158563335328763345450864917641911353386251850384812943108672491080262799521224789025844225707134813076044219293747819208357977110164715605986969280318557546802381787440686931396268533011116547918901200805164367838857826521319200571176798522910513805259750339971487506054934877219682613949465581031209829045961617590601887053370689133754613164391329767129726166738153226671661316521438320243772530428304954133426399040876670100120385096032142174658837271507090527610901909297033914063522179872610870777180660404095324553393662237507984943295127758458049459087006560903877652704455907487628451536381234491277786675734796187706326717409132720914675645337560277716374486903276215633263640875854594427942235552828545967052430848823466190715161791050401616198589194953728718304309557639542827477055605679060465635161178582057583469276740891576588734451930157320118324079328620352262726131122044056884342212095147679433815191886880185137136495974053600972507489741596171769828444223495802298171851977278258392221101384178280476128910420686067722811328850215575836156421698613204827968928313234255176629221802665954474516715523251491022662365180691062974419373876708609837169065615695308447867279396027580026164811137111735868384532747453708789625895116812348347340185245156448872573692476149786225596318596782742900398516105609063325816912588649210899341889094692897802017116946449000205880061406610800020716664138928929555789799031137100618932148251038109343734176145646244697329673117059110102294446560450582031134230504439511796786401867625772909582518757511107433861645289005891139644283077831378684088680767291731368679501888548384023643567654058964214770811602529226225589199194300182547253732442564312210192499884306857668069303816470675518601627751280813462426799050984805353406747829850261090159015180297039472867147226587873829056666631321435693911675936724677038138936988449425783559558900449478540398193810939183113903586565584528541348193858574451284727361279695911446341144404622546553421118463047863028605991299832295028814443593553032163691500142973154046266132233404810298464189510950961963654955817669679705420943355093159386098359140784718635079270512299338420982738690049946111510005464248956455948080288331841102519459517329768337201993389113683376427341843345975337974441355627935202700629542594377214677793759075760465305991244934880871249048868448998728256939310596473979865637181927215682782736007260190748948342013746200005242957471150432417256576853167258696284720793786988690416211585048877035650365255980179666077027878864115865094981846497846850507441525265041853897494199397702728467212896050646217601743318275476999330525777480621239093641563317628118301346793407436013729785244879626583546331794982197085517256641580110701088968889111257143804232108808272508298091239333875909496261858796244718488890034025548022215405460950448477802676727007392741129759458485043410101765258228276544965293481079691584062972594028629940786318429385555532902839542479164725589177864336202239782810352575574665082197166653745729093008603193592198516669101921244115161404732664855306962947804258644043863515365356442403746390241648500054620939773936000826371668363424938238655438017896773169142690566737809496069198845954489253874613529558209538406848032797720149744268658627573527785965819918421909705958979036155778545434104996051218068148609191843300079047816257541914826940426003479011437133017946696035640445981516496695577568623899831247054302917767043091315733039848128072008233005502430919602478091558781075899761511573942420891597345633973242457449563412590184541666075717745602006547771123085423888944853658288982680146596137092881612800084552406675546121190673502163192414884680135143719095895079869851837777951713000772316577843789413706780532689387916008098030404147460356750816081072697466873932125067604207279231743920466156715623240745649933064258814626139380415548871511770882066551612790966826645097185894808170058530267037696122124647099317372316822190898188009127519430982971664181205188886221176667028397278526786652202390940428388671339202624470132626884567470516395544139152810913510720339029122242037991025816021628321340146374333835692700341262492722810572492627782310373580571189247056795252838270724921543303100799582576485458787585671273262726555431161052995742717237961010788974276392636733999329616829168038349243203897557589319826672825214985138210778788092800546444214338211261721223520723777882220038838209959970900774639166427362210554543324713909460976436950833799253298427144794382460733983074508502296994235280552932750557905505606666152822103549402704512332743727693833892387793981548038450075792340289105293848468267839957464694406097075673001053499099481514803344216210289893641603584207461832508687306265696735161286948482465251226082238654620995311569437797291745328555025050462811247374561087147126245474759485571928650037387539974451127100402281966998256545038152967090835924298603074690567122038824149563788463864828154059572713650055012778398023495238029003827726783888404925278008228474945436551819016643208726577233349766460876366398411747339783180504776737797008995763596659289400129482598258317036610964068422731967675144953200359484912837487194772887481283173474623200225564293703554975305392145709153531908022682791965027845545027764089243823612225355354665750635261926340975540212526379069944980184095765075240896688793963444600530260568368005894620033565993625393104332363515796381667062247641500357773026867423460869124550227790369587804157799806191645007762548768042284609886637793049937873550501434070363266824523913563388252937775033700331197852810436849301792170470131808149316749520447468849938648507357571980612287917578816621801680275377785684915579593491268113991805678217466441600629788163206689732749454506812609511405115078106772281719704126612580233528999306719886590238879476741766456197689875611801772911607262180268076762220361213968818651671810282792008162717904494121134670079423924374230820397006014490022279484422015106124031678294452653189385141337058918426472738127406614018695822810177944467579123207931680969850711589070953426931158015717914994374493582972754504550657273658731642492905257068854442358791743045350234171331041779448888008230765175710013615616927719781299886680488535990467717017293627682998280578039195658849261815895642328801043202366708549147203031659526417314570197284583400412599004283809680765908407469347990776519903758400911473690989696704663827617594825190962168521829365496961330882475378786942249692482280003948914722648055546981285075928488919302255347372400986514153464246019133802746748630793387781134303731826902050093730183732301586859396226402453381848514971882107983181376486462182994473950803205696979342560429832637550665452970898895294131826739348364695828803501584409047194402820435970106269371505708993713792813482623066183883765046778569474205652184686992572828464413808782824620987269043965162078053946905870341493704147019101599175100416408769078222186222140226346252975719429516977488453199343643772584273579192704344616406774999897224809484491068075916917309109120969679724897257711255424846922269001943034398061190199474947421261619339901497907446289115935759502462781134307059039218756990270027624573018560300018289855438095670818924293745420956959024819392540676288474961917972893435489631902929159564224402407365513868126081486564693726818994157244814028334887087165176368412876218288006022152128113251513528134602166857026953420891307137375471586924816408600237606448960746142514899387603660818310717893274397296280159611338986138627789641540070968528512882294115490184182159374963783976103550030020682563687574629964389698059520889254233202478872326766339639052006288411472877640715628719482567116726595703526189040573700098212421650024303303633266670627933430502940132666378015569032607344226576734296375820191068606670583541108946752234788372653213375044391688011655975777967408234247501105341048146618998786497770548204727071288661171407407422942740727272180823630233056017883115706082516753339509910225456990829744701053219464755855008114348729701470984761343285168633320102232021660210437794164713320466068532901117171736863622055484903757238055949736674846150215862823991416130468499663855285175226055755224944948101817956592967125737307112388821058325819934212866618214824104845588943844032425405295620685899127174657989204164482406330451952120942212593955674667851125286312375425073628152009593097709770533353083021211854366553237671070522134478157532520744282254046360786960566176133484072532293722637732616530160487101934945011081366879782213201147958725317347971533297873881566908527971841624709928525221489777544271666118604866379696580520603510063723029997516733247372280689458955949150252295624779285563193643821197002253665978155131752989162554969263751790260332816441656497939160799243155237013812440370688609854831661754476506787765394919457688347165264670355539221408116599620186241550007670051195614822785967410132468098996129853191313693000818487334375633118142905160957811179686824289522405318911412424498196546251734041498277811741727666676632647495682084694807729918716173810443903323639644834551331692593799892634226583618389934148092446975171586405660138573804514191795189646975136365843311932338086136209535402385773094943357993822649971900637982453979120550132479070692826815317394980297156565291232393905805274541511040598688873846643840073908960009845691486824437951028005830487200948014746289962056496645499977984392687749402263818795255813205434022171544876809382684965945832003806387576944877049902088768020198806871341042980063738009800893420121056404753916090085423826387944811217277932878544531109376743107003064405456839246054196078139721855773178576061919581079225762930374461900709473535978484956304840298047641475279410735257399826207068872351660899115031040871899962463195978525717594073647946441650678657339478279903003140849167599724939353860007161231088278546331134065924147284453508349963212843499527527045390568320825430000994967780371269407917702182200438820956143363156456359641127579847371596335346414724988570055674468257900068002632043293706508120121308590587053145588413061536268700172999851892902645161907367920131027847953818446141642003814596418255564683695238364432528997884052064550929322463628736715509212060413090051040563103870325298212279795900537707514890582067475650502944419214694605567133401539184613458323146699363690579031387836921455587167408770444100757393097080345851769316675869603564787539584589819133651823859160491698072511392479802392835194902082632219420272920808487524106024802630214109243546810708854054190414720194362531131245112882583087747951107294263914837133448653336330562809190945978069880765660368187710942740185620632903623708531884958439148696901476036650208992574278980638986250671502472777384393373960094697512918172193628919134925427382883732401331342167243762799726333349284557514169704429326590740789554681649619502331527004424819388351453014318822102185427600513497068676230794382330315335134607259513171376017465698672314759154355445271303286897258019590642905907504693525854684109295580791063153529446421154439560405534414648757006895945853148850948119316340422192866240934673918762457340576953929681532383615025613800456651468213511337344020935044882581932169131943463976058490958144719007453593857017909510370909223720918735605586535060891058367338094189398938779434981570640156013259231233955193052812327119838144316655985814688964069613771067087210772903042049617794823264336429461445106129049296662010545737036546585069459603265172740672584961002958112858182410444930164175012587196917200281297517834623096467463287698184801676234932511748862133544227868850622699546042466458529111308205415081442458514790760959387695135180820128562154123792453693873406394287827447086278614387346601060646815648784899367754860881523058296443517744332832367476444784996575476301943083250239932755882645470048493520755174205679893017061854605564463374810348193809902771328010133943838689422339704074390793131883000746055977838611649772043846551404322968859270086201885138697968917788830021263477555685011517134643643717691799761034105521990321639068611980337713501764265156812670018905795659308168255456489851862442623411251870244529767200017507445964132034771920740146199160603706905089437806593711383184033397636856863637104547289344893539799255831517316461438094760523896823176601731086079910936073674346274320233112603179132608624795769402980814284646369888297623190380360587085814458683401560752023021665802149786531092085630034456394489000694203129323861088898766186116835099448550432319088904864752056854024305996580304274470589618501562596241316144903083196203690823679279455941525782366024987165230475837840640651780243429426512882638200633589531304513454810682835457054235205827467801737988800428410800646298525081377037277014898168560061162074115299502871875789009075251390412395887246496907152747731722447180689363480915827208070347925690817317212572395303695761794759372251369550003080337066243333218022645785437675592120239307735891994469245962396069071187510234266164795925557988451352980048031437344498487775054014417469318082973386579461121989302648167821097354850918549729724071776826838813228011134163801738077368030454211143969370297564104918845938788021697756353967997566580027983400843702784142881024072750760945518994779130506183854974113299980631261764368206630849332200168134006713339026398723579418510543480521263483721761019715118293657014776965443710773831350343340890801187884803633336304227352337312508947660035613138797278938740986574640619091567285497953291437137186954660992706324641328749044001390258855170539900963276364576210733799186451919682343635341269806386193262117750073789535562815025359755867046176118431195371435042489576414144431768647714228096767699283147733205318200725696536232383392047440058676777102650348293361284475403000774726713096728123500252064899513039972858002485703957215772429986726877706544174377837614327753381794410026788255470796138238446854797472776046036048895342076733143768011427287558804048514817549542824427866177793743902056904770257693558563241056999357643608329943522465534892203934850799384778456782256842069433999919690117207785846313424769999153369854293103455923602344967376674955137407877485044367372663507982746577838960414522358568508091357096913678322572613702624776422416369667438125979211493810416884336862828925005669059217798041949579095686234226804537611947421219464309371141498094987982285948318291033735072336195142533005317574149553675299329961016301953274423626339387740957577726527108657597205982694174817081331338661595373617573722125825465349463856346190524613971793448883124519304984165952104467590907225002005945719897982340144553957895167185650938355278123834489012245481759607997291281987291873006182230140500335444734102382857058830108022694939488678548925969855877117644434380255247239093697461526983499155974439452853265536958586281553505184596840193052496834545743466138177163263614846254890830148521536683514156918759596462161847571338571929374301641623416359551823521920470995256453026855809754983666697792953517717733862027826161552666179369950095084461470549663709617690936364637091810218840029329634465797066414140355465944745061094521766564342580188543044301669098161159679093261666262043065408711731972094736525650055030379455194093863950269617504989502035769711475667954759509879994473207373741989372889920924030012891524331452521762336630338920903545455858014746621055633578198388874507849432580783579069150853521102246748088485771369861818747831016941290415890975642583001088872971956537817597966506344506443089344398314350513062409952524320535105779192933431903607590820399924077536038777671670981941139372208411653009274982174735476411673684627621305889299357931713283339638379330637560918775758123733954101804127068910718458145872661588286026056809932470278941451567120231428397124537313695639333873067160061992432935679852051425109180157263712190027271349620414952134470950405384943192163538635071377182230346648091032662629748243278667963200902904922283259382340620104648043610466915302226313233361591854203944208666028883810681248326968022923710682573024426586175907040993087771060927997869836418789806633832814277622085814543641556248949655340025372995361327431698258159558494029862874139052038773491328409822896360511403600994801823240585325388932015212340471909162033021850156235601452039418707281117723206631053866122837427336205282932331396069057878486307576576004326419201050747296734888144127834003276825617681529202600246585642137299899249937807819940265510528635448198344439896455275410315460173911188598176693289090681415704014077420934472448071349707213280612014024750665858168511706857963110476577411257850606935733169596852439300523865088679464999421505111128276684409465469883953064544786182321873849123322234206949504271194785128671527720629725384146142546095049803259085511973979913935047359086688422351907210316869787347703544952873409764136105505204567815972887808546597733496901444775972343433018588687153253283449218690996059055386451613683973178594186944051625678156957996613675960293826697271155789190344864706563580971126379244675111428824854660948380341728110568725284462538238345809960047117680262501686564253224193199791086767457167579600124209092610011734385617394149909034461778013283615726554218693474764899049961878197453668122507889845300230968886568784895798657726964505691373891907503124053674130047561510812457991462192786628177564400229697946541136603278315454529238770294766065380567096915604313263830215816778591430393003323566313806155182271207613704445647738293527423031162259829188340864297510805645382559930122349295618992560452385499127873821054665632924721106783295518369312773691472600446083212838522592229607116903625212261983891424439659640038639921748439774365763677258940917995799143619286416591585404044879495000484070134843100195307587321098175657426527519455424223301650089005378968820221649109583214570268149983139305112957734120849404656364358144592369443790985951057592219664739787859864578315417149580192324343567747710353643227947524306844911476580875969956158865728285422540569888151453366227038394209808998708998686851618471052072392196693225622552101083189901747396339455363773246017527542140804211161682468272047314870134444179649890698253951100275783029661711273459605357349903095143018489898478576472729220534631914661113926310313452941796867402405884266878645807960382611948849288071167774653918605571035710202610290744599020434244412434817032462047319658391402714750458242480523818740300670716351861184707947073053890791205201959266000852686268725871768764182403949878822699048616291471760988362544719433702278254072207020780471018517532966441259792114173403157319263871697965682919483325216764534954584491092660495446387478287606377343322037495626464776963435139521867743986377459867737898985102924530021325913338444610465933467777771454485578707378417558920560508408367905546155388968151279705255627009098885572950395775769412697417845821674082769745947923555265956155254613741848979002387579152486481411822513043544937613866092949219499601477305885800455831875523749318154739695253790321941344198215130934108914299437736227368015780535221389243286702316292007214551105185918229234116951174990051117959362552235101112002526238878770446183121508906034846011622004723865973284126515829204334747451539165509712420859055109411302424187387724661129968582455716535389138014514989839868449943872493519309421935328829009268177383229904227761221967956054782555337591759007844882913185895326749654336374785580678092505981245928780536607731486089996681932340972655920983904416193108715331988277997588529095439077774333138563543206845671010409029375332027674956403883221891885262020423578982042974159511506571555052538384387003932774640534275862094373622092452641240496573625030698502753300441214982423141511234033086349127387312518957802071056012866178414438110510402151243991842768724550675302356760723640481288657427158609155744977929263713495917967555556304846925855879417600287460876248328033513428554226349525611473284213036683965483747595442269459067465808722198444668781247508268883732577156833764450149871485300422298905172606402587215512934560344311276038137080421778225425885239707546489493204185844117177061412732637296250795626039982108743964479294700270164647421120500139785444979385817893871409238107215739986075109939562382460715951752095943822506110360989775664014640732362480110611538847842400349363002045587701278997486204445099013339050689033419186164656581525044746698429024974549844700424078792706464664914028941136245682180175728006503662984550819834778466473314110592738815814010055587150022964951977220564748885546627602271019235983613692025958088708628447318489366871017407042748360026351851598083906855321387606575733901904489224599161502957496870038599000274264060372776668559417220934166367908650985586367067330292207843773408888543621977124345453730266095363664460078795057756072562356761311581201836247105244768602290192355034997259026485059238506945418293099184615615302630268730256243627004557976067152393500888077264489086615439517977504479403420033055933213866156734495755395711159210955789784710787220414695504139942860904646348997938402498473712328391613643093219177248663002676744793118391624850123992875531987629091376374527822086196217374679409142617985011677794136684171085082628467005690102713420778477288047082301913960564158017653734277895685716957858312297821041172523629265290383751055152880746880952586077730154182053212339729689873304175184891227490049461406190397402674731641361633834161290101028710192220265223313267349011988153670006244164236668880184894725053936996776175261075620136936300703544418028136336250829219241799728171050774312925887370965466052788618480298520114754937049688992820084437690716589616048294382387552915875924554171908361791309022148485657155529924092118003753170689425128550777985621742947299738363364095591250290962417404969930790961339452587714840693098839406451189402033920529945006368347608097330467171626368702777910634204212505073871076773083059418187944729809288648518804143972069527548703236985502705859252654140507694976154843690782066869418699573804104222406675827304529392157998203778354915046133658000746042910785584023068414543407236608114072878250663436840651387328871338294136269830823640523437887536094540290348620785903816457732730679450053678190602796446638617165435657158909286384521319369153072958989470091396685391997431917761672867504572767342108987144446066023666567684201722951588227726148677170614958246304307840742689552070990408128944067326894789579839376277544963709891806377177936207488370655530036168827577409612915782231789941486822233667532658253513871622546336123210895384647482656317341721917215844004606722223237989670384529923085127381987863471580558351886199603966270891286455649358305989310545657060599054152714711485443433538216319704809098513366980070778217715391379568772914792071430888185071965693891605047661080763919636430749855723074447835386635206962213217744971042831273048120009767825671759639363013833027768515344689690651854744479232955425163963375858266293565080960460497584690814668045283508520988181678827664610377921139289503221982460959403078889047522604502579346170389270945916607997376533737815648052768581174777860541161185081433177374700056067671822517963451669516317393753901804549583648592571302632417873679535498738085011399378440694291372559513943851007061654153581761343981014366484686248422338063127354319812247688839444990740129172876509443390723167763570690878814449917141553974742487130374482759232073054885501324721295880449038629975942048953194732440934227911353914666138315205698649038322673094560667624031953020462416928889220439372734941562701700207474268207554761756728750187958014465965199956584479415984083092354766822331924030662262148621607949139939382376038673985574544579289532565010984661315035158938229054747715790840084633878251228466242973334970187833416969444553796580075026154373182191782822971315250205289765851829489727370137140633968287688790152959895042424860264610593882800173747287826547728601455143569148655388219046879362400439407412950162670459733755754182881987168313995231446241574403998084494865455246712980116219531633645141951706166532467026000652392019470241732779876617954933942213177078433816224732825850157247170457767202485882664048747226872846096847600526443312082319062937548254701146113794695572755752399575933405974533829547450502255471213958936968197582771255872422646680522339176111660247489361240207566019299169832546957978638494623296867144746025934305006711621103007936497657904764128151492090121754494604498591078276596826049657665135679557696416712609684290918645800624220079138371321272413055738014988186043992336387030107767795786011831864468494786779980650405076889284142319286155836551615477006337770265595080353312944575423110787319794843266150481362668545660227647601909262310246782982504641901968119139399820928085148814877514232070667212584376889450463270240390560793655203196873881412753125992142249356126598462560312674356533740914442142931554395712199929832875597860702281850485451648098481423222489142644994568168429115906045548522580573476630961458571038255125173619094253670552605949264969728976159873417649770111345319289197191548673574933571769191599001763110665812673409534652138267692528623824535858149125012623103065135775797566232363127243449450081744695580128238591973484789608927380529511533196620775744966242341226269377894222209318035771754131277967843216770900936134467837348799168650695702715624553617753741338071792045354109274199287725517608399901153391035089330756628475134687548590108307630809132174505494194732809790452492557427971244407305006141471344039778117340722128489787844767775075944805125356124657862639839935372281893492507927477212398841810125501413051212651844397601440665397818523282384577319419683622791291945591385103967226280805991709652597121151561625447050475036371380811213258883165367315445028085391200639108639282607665788330073489447202964070988577335459838979049943593032268653276269626948383191088026897338682386143885134601849567394473188222090323095997392613208748226161393781861675176668748577753224885292458603242160375961016175734579953035788492111493429902888494924492098413694260003259857078372872230696135516445042864393511731036998695028492086564451911014968715919896088940595933767884067143800331884985700217447410984216672719062822293540517682709164803087636807319243782048768746549571964506406737238265715848456937952521107619325003488334818436567479053876425988352257963107543500448008348362806459038799224891738138435371179190733992887789518201163683764048951198713062290308433459675928716563200674017961356168758849099335938113591302212585296804085826192948246672557828614864738047404123703316411914086619354060806157168491969063393719640541072188414388816742844082083660357995868880409671903168413112196380494741850729282327517858391486405791258487234763607587015611805401842343023880772393218459529311272841903297255738233421364053823252062886693507201301302794063305149928496251334218055821889050891609916661314115683205394280466141307695529301287848182924203086416857309110416397153661087641366479789368844724780029544799330605915436181831925079214534743689217341559256055437115176392809513796783298912020681111859891886668451370307133577702302192046665337902951833106116049528298997322551926901379781529950777474104634836840339769238934655920386989765990958723958718804495538014596784586694176256077495182530858826368539692835733400617391347647971443170334806335596103368454301573582896646653044008196542770064589395009668305171862886219862469994164293207818329648092991919409982269433884087665370252722608221906146661915126781588944591267067159453626824809877766157899837053354699065150085515868488946451004855988996901099361845279963960914910998696838967872971182006960610739416231924804254281762233857789964238923332810732251421386843740866236149404712637789933066622073928818134303677032726749029177660936069504917496119202701608225311434300576622967809460166423798371787703780897167660904641037929523337333666629306848016477029785290034538618981876539028217018534503032240027206689459791595201961069814692395981869725864161104423741356882384178780494391718669039809273111248373639803279216378513926325630879177134112768782575067292518902558307404843134759058317608896164586914746647840721673150385168856729808045515738859308876147818576400853053607682607486360931304783731591819102579723980222832080372259745656282703568265627104944487766207740868793844108259924248898980343236936461582618444900992363600021262896355552168733965638986726330568368126211822179941084332369857531129118965255640529686290463688739838405582523066951514671834430424270315908696292525286412484588385669430970708312658185121129405689565635921757205045272938365854494426756572213003701352202221762038718258556494722752718295279966954667576126690273323732376664855528756491890678926349156972654985775305547681433442515950758941647135160848089494824277226181171183286347158509653395292945238407070198206804663168951683568129693284557298101259136370228903458794206071920323451635446782357736080533907914584903107539070650310627897406766718901737329072617296883255620414852189142908664909318625277103718933880480044564603449945657387767982715500023603596007187310323693396516046276220687215481523376130665840433406508297621449504488651063607943982231925875572131550157681970809868332700884354699059123552037997528730141725901953181618958654147946560519911981650674084704270423587534656351423729026645825831757339675104091762491338834514138190455791591462983974917298203603454213170364961777018478632426655295138192601058945029311720629742692798203250381527147958130475096624121692223680710620112858553350982011714303426320962001529866272555474013403486034178442424288905720310688754803724911384189892059548334250422017451708988795843157379336820290199460951117151095532240777971354656358702624535960071152715577171116282271162423049335655307962765124009893162874183419849648298289855743907325640163753053003876277699814989218447407761971202489601578395401259044406691026068977948608624091314581631595722974592451715355279734719691904753176728898254239779494356091359479842160540111004461862121255182446107770403772550353780654696731626878021304888317442281523645903902263372122159615691394949391801450939705701972080697773775215314944504189822498926809518760499579538039830531542928093679443841306410041768766555418286191147346842580922010832942059511047547649713744836671436650632606152168135053473617095884672462307846315182783116039839481573002034517561474299627805171159050984897933600158160910479032082125648479527727090374600660359868053869052727240923587645073116756021685087933757180719815266572662410005626517194159046626789933608110442489474539456268165875255989118361089457919448512884439280020344832785507094252011223218590415102951431369436288528087962398836045508467658429460156474650751309758419995887325923868426874534930301748755344110509312152867828373161185135839733400216568803963773291764384631624092995769063938534973190774473496403300159388423564124772277208379458210937971640307645499819201050947705369861776129239929714750077609477773715465072261417385437320181444266118773326186995635688478887878231714966481290804880414033257350294144302399581973878267048237827680580744640495799414284755506989856264587847779238625574803995160425797834437448621577180368419832162092059608629310207954105479305784144167054008304205732486361759080463537621984039730326547211563394664789790648713151530266524876395523753044433214901830091725759086495350174873821486952505390885419453629617461329045631284849528614890077592342599267037315369960412157199545637981913058157461806986161872390206053198769856106379626381793989730223175630379422642665567204285232812650539545768861261625549133794657151224175260322752571765825702767819917461849968668124679497730554584216481150559282053711130844011845948281743398213075789378550743012460519136838772157311915133906715336889051793296410026034448567152355723564135175115516405036626906853681545662754015378751397004898435938015025182460409832062008700656921943706188327952900071020899287146864253809981954296405337911320713384769978276112090724494447350948320526067474748369223434225972288915733065935145744219049487850507515664947915864265116557807248377768063985379074771245727395107037687747972425690933197709031065857593546535335358932798842973123818958500642731304417375143661008007415180526650938524773396395256397664977417644381383598023814798468264343539117826112360183560665377680523389543205954283404644127526209841034926982431675354720194259318110907550927287253248795193984365138081421433376657101619098573895949154723039087019748166602490524297563016066127850278437888528267742442598922466756870071490279890202962756767942600324451893134779656361367934025092759674440456383305497573523756645884622641230559074356046540984686128043607145659568280086390227051821316054333135521343759386328015805915031215838859892298051073588379333158675232985799798206652694039293742889661967287168957757640108426502833258875541467696514057598808183649963742848778899543875985898912398180848655039292365260727444924129660316283143279390261193878983183941373517361877538186284915006976363081159356706741292685620023488793613468402011536960453457750516831459040914481523797951012929945419425593625923331956348546316882165670510264893019448934502314945327046403273097107860092842190217804969797803672675814109526544608704139579390507977705608087715621443052856280342182194357476336382688443308053553081473989963013271203475839082934893941451520462758173585730039676588253023907498648569044390514159039271784426384385672662016167047898418269110723879988593309188061301592431664598495492764400640680653197883832036471129348343590496476599560551521480965905021272755059726753233051285851710472017889295073774082491990296018334645735352054020338174446322648592668709897827286603154523372293575567040769839375522695933552759662596089515066388037908956134325844069059889165667802223069554987638613165995309850090466399430475316128548984834856302247548484116773479416776044001000709278815262372763823703580310783350581683656139602094201588851537503472024650203722260698950077655188252892715359308809883810512661343969000493519363515798032607383797710542115462596717570323692230829157670882898024740018919541458063585498320982020647288764360230048690268412824616313726773266401410133657305634725957318769810022897988294023820964863465146266132548785846806056492640910928676577633200275648880835336704636834028272775116693462142074291099249849629206341870570900123336083210937335003570802654889555442505956888044299265737088848571349815270621388572334691248023632534471300448802480132449107277811639439112357543785534295134709885961988029984634772892422654866966264542329684065946317255182456419015268289740257270590364528889431288537481338550952153834166277397328600049888151539728419062734259123836578739921769006009722867518202857638058931969735388341318852714596418507567803349551527020815526533136596936584272801177627689590158314248092494604882784650654260537444654967482715507911684379242862369986736802464979025726106195381831738275861509800849366564925170737178072738489036498652641582439712305036310799211888364576122927575869969743130690778146361164505497272824881218940538828639380648945268715644762288469122970537447158292212244505218152849221790144824571872576498041039892287051443694403630722845012027406228906943735927025705596151503711388804094132424589900610976809684559091624664826259232374990523756991045500352220792715974593586145220199506508625621657350422822699347978534464792688600212860243482990627656612958863276141971861030241372887900127142056357716051841815891837796540088472574028447885512879385617967856495489412055177315887717321584464539040983468419121160612722146994980760013264658318919820173674665227833821980626791602553953051111918192720318296617869459828312574790722304160897598170573729324064041508297072225696445249147721441636379611435359618227299665159260720928440233160862679035114487656065487096340305781646562488841165085072557912168020323914048597227947024193866547310201785937759369334862688089564738140633460923491519157480166910835734531490566365387944800176380847491497479604360390319343904500080999611765603582354047532649708457856908196596865317446880742347343073280550467320868049438307396165071603344890871478534471586745968728503432563254235194510918819143133197306383830745389490011528958162303488525437801355921379846003477207272705991472924451102321246938761620395710746012826368405312671104551667271428410996667199246428989919131363930268710174813776241005700480026966201615624202356205332782459457971532423552283836393274872565418716343806497133571350986009901936169097422891762574570246443807555623192385388009061363980307731165076349076882833354782819002101965040078007948514716551907624128254556431966323514322840004460710636592115842898273954426953816239933791300159142429667942042113727131587697373330766418383658856011048644602569747519188804124882557772819395147697119517203014560670222331348276011845605258753098758637977199947273751889981211245782882165139335077566871517260611629184127766141886876918086112153942790505711478079893846499996394761792205959736092560267802815099225028999290213335148531940770482478773345084161377811609416473379554007151287429869743405157545005860416779239873391047974537667314892997395825537925541236752788906916315569340882044403360983138138234295633732922930495590797340617835742650506740802746041185473194042793834912790250284239382414885485908555499185247609330573572202977107074239421308556868074694760788050373839387545967956126992647156074785241543163887247170548983362932913732345870114068341934799012484550572394205412599533458078156247677047649444477468414294308571691337449080656291063651248564247586831309037760153649413946824879718866562091027783541887107308785889936907880610521940895208584766042963233150252726065987243530612491024053061001856858099939424443919033469926274521696480060751840461178919846007321637078595678940256951754172702862931126366915381329762621995747931373010170874068557673121694632060081709302672366775429052288589687250164238043793981765921586522360849381392787155778538818548191744326339949438554961940510327129769493111478222671447000589858395036151099790286789879566036355150203339802688556230798082660570055222056715395659529586932995827809491269815225103196124283249032729016633518289442217791556582247206000100411746409104216814823121299325750954311136229096227301515095581697216185085319080274753568628914179547787074238360124515430995139868495639079591724601963237134608447921409151108691074724886436962601359111268061110198491870206896859293165182098208843909242085647009454016753953081824503734357253205834722034948778785791854882268309202267544151428283975752441579827931881465710387011012476060056172793222362136886797686972801357981793875982177224712464445388386442366765952502605098734623723765176831733244476503905051041682865187836833104128773411489013854643184720595580380993986647797005385818603392906816336355621750484859427441427441229105030602471809690192333209159694413630018945619618252156391842058235600900916400020517874148057109070164744960318566125973815059719099210904236130920734928605518758391783845142208062844171130391044407836915042061557791760130562841657945264156255365721824564860263001217609024927286973243707239919870740809484351078373808682793567645036550733656161852250801282576207111491417748211182698020206520373846282853550532723002405220341338037528580172236317449513372083836029815045876470127907168394033170062370992206026757715715325368047512269074939671386411014262752461619656481416232426844347336046691268313659477842515868460947389886465842797920812073613378836915280790518057773536959190594746121357519522581567665967568932698915534115965473242013966592620130422365863798444190226234760138585318038751259960007817795821943262386972350808845966510416157159941050521517029163173972456989355154212624078060539243131652921233826407969592052314275565949366496990419252784046199227428773764788876951955691536784596633409434735439943859049478063488065033527096984012691816976971139146836120686006735248460199954661420401972409009323559829079950413827662769574693407355433506920452631439641464875603790321817310339333591845241067265121040027445530057158668038925417899809108721865801373765092434785908734783077021049647183646322756777741693657262496781455119295027525422496077041882196725850370948150654732851752428662732861059531570224109560068518918602768976188585362594822126300687662463951617374326837518916904997275352440100738826476866070808056599272993448470955984730265211782629668145195829150268089554874746536590738486530247865105754032497743568274758891743255954843931588152988322157564876918765728424886670320591453105734986250568428660300440260908621075893507111899757929403465377928936022956137092015694142767610652708821700533093397475715704539946490893161479617446793415446627265119013859068880406009806703150412822762493542139041575469945748952366788791531706664583249157305902394929509318585399492010596458656347030053891832691382516848139973195169717143315356609151860858451250897957356555391150499407693576036555307650892119140478328685418914364396853983519213487836044383809649798594475105128636618256279521684460462218925292155681784858129562069744697885255537751060440126820265243968498824573718829344224410694902492179645307172006229666739424090054248560066029607029998683175177806981614436938025355715237638092313777987999943487401785311577679059361607092600321370809514848493579785481040445224256436592907769746012343026408837723600292047326358001475620349141744371818590029872823883498186896166709599838682410605423444252588961275497895062722368229803058539804700288620585924333989151630975798763949472312143351410701061424248255251085747766852258876596490613123255227954096190471495320789546720000632817866602285052018610977212391332310061901285887447345857625189348369588342974711869109552051123825497117746794630580078268321877814611966479630868712396064769242153038982402192824611499996014988151799616508249516901666750109156024536173474873974729725547838221432829314090868113121909053677025451810347037252689393264612836326941178159169727772305021296322984769897182041330626842033895103805642231926302954884854960471509680824305346986780913217964966569751322414955856024301126574903469767014906284308628337805318873899799789350302404471477025196209539508991905891873166865617342963132362718945972032823118178590858888634353638134454073056379556923935119150234556831339903489397369262018525474495014818536387581114115275782152450548672425034734985781875703931422963261966177503585328906128438446910252808007207987769223957383824487532088431431209577760194061070503506753564176042240655875401920384200558170120982645469684400488263662993754831228672273315365513702634552237300507064005107803217084912960898920810570558801747981764260070104557514288670644138989776937914547073769800653614355136258201101661255414126143023208072078474549992356457023658817733918102606185732032588729121491047347065211406821188583131724829356896292576379232958559462405826613047994869867884208940330524928538550195950961279101596597316679343044480014422536107073687707664869086895484676532047641054463503798573618455465909219465862485917558236116958890444913714869641059245329676493445571427772924040264112215155006360627341549893866979727251451991375414408751516617124703276174197310926130446617495842526675410266676391548024394176634429635143238905280081322719637155964218642769821375742192760258784749914903925417726183810922165026460087216225031987831422181087279444684387033150228498938109305346401493787541627359076417859527425426328549179647818767980650107848010203337018837014611015808535043793570100728665444564073694316021050967534121399536119531692493268863980383166922471666893505036912799992831744062189123871651088015367416457324393675850145066578611695039135736394433072642458145642528930112463839839658866651121449579487569101486744777352216726751459613786796375817069100071491300993259385811715016672290432756102843594091570193717361929173614939954089923472260999986773530886722800148063479029474702629751397980830981099496283910721573853168807123688851102536525368626785800845176462603849529674401155969274340228203155735653494162020393838292530186253804823443800636949732944843321191445474158513711723391864419034855665410693832768419576021712358439061402034641331448625154234271937729551019245491173756668056909286751800713503026822929999669592981082804256833995786499681866027114735938381655846997611964822761208026323581061439991657458100579165928511694715735554871897327334016321259961927242164036795674146188621727703125539126027015495425693872367589865872385215715869017205074220312753402934214997586611726616374749765129349320065289160538817258379018127243912105293718862087718194662592607028532045429931252962053199285745880764783863366148369200457405777713874134644092290703173330268992555501152836736348964101237949615407527111360928883266243909676872137740905482910918886831377146362135967120212434416080059097980541134076752987839732973120882880524602823063521248897993723085288087918686638250061798428655594852488824753077223269205121509731402677636800352107002095917207487585041853257549121868678248627283986959928139559910330937164256920560386874955448710065798684417258231283642844223088103959686713721717692911739677175089466403652587553472288289578853499731963404367762086263528808707924063367953525279792023987574220704399922153216262882066461857639105836157015189872776078178710520338786546824964435415746136563079885694027378947411596074589376090329993740345307813701531216246007382420193915887075867441316320066146940375329168087644141096879887502520040887795882275704100592255800277342145815718942324463816638963012619788910335810040908161237081650823585578928227265357504143501196886099287833622832248913546198447695134503196045276046664517227727969295791799819553956478758775833261215641466565083060462363309883252260665497644678907854381170431777758089492949483852548897200982207419591353462022267323048133976868340799868813976285470691097246215428577143378762647697811781710041170906456911422624034685116866658835231779622513533050601012569651841909057266622162032699100044714938022582099684392681168853868514971093778793616519298213910361857246816726883045963645784630485021744492416827905285319794386671824781929418096743026592084741981919739486854653609251535042940262869917233645131884712745528640229177190304923668824584363086733654320382751069294450495157677523410929826319222909320285049685873500884265932146812625656877676871432257929921078992554577929927880043999763448317920965254409161745790103560420457343748703165460422093262593660623369649796693592021643894914238134616213817838345569769093695175551060281060485729357416511967649208447226148090506818562529344465562788955676778764670960145726817163017802314487065627299899173626584473429172683030394034838128200516502758263308710475185065551002026322568051425046260015700020259737637462052766785124801175977791182581165488683820613755269780507636641805636775260452526371717568018862408438067303157337986245582795186695889491676488558661406708666278374458853412687331522933133497820227609228863438923080257191986681244251146330752397392063698686537512741598064036144358540424886616003898953766601876457896190528686641891043513450181961661203868418363105548439951027503499913863546651900015759546228160661538372310263427216286656798362328085288803383276448902486166274379777986942583403452229221837426896684679221618805125301295814427876434637983086833434050034363911607829588413060078887551852082228173252485380360595717033631623821762430590836881855150274627190843040219799996264871050426465019987447583782904496989809216548190658560998508118445832452694013758990707893717099041798704037962935431193194594936318853657068153743469890067366043598472054545598262059393679629978937050379513154763059459072511453952281836300210721530871868846453153966525470498286386419847804313973008466140756467457732178016753921242788843120561739593990326657775731332486667295921842867407297724571025179083325463108626188396485622289632384351388778300194410305047801962686016073142967593498093182585700130934057856565198910800226752643450593749946197813600782277624787877471024391884913086289670108025275969247152092901296683429293385644689074909714809077596569051677277606873474603250048672406986489756380118653247097006800515979428505158952041654706638400282323634479830525280527224899773611826877009330937860289277292904545810316382582292263335784855769154892107551605442828645389091810208076025383838131941940017884196402087513312619139202786765514494300555498873429320081979749719521693197226732170788099186282669589768545020702754304251956548873479814536714553987292350483709046351200230246166604353966416053965755501658998960243496455097633730781051712483569880721751828152492523258953820974291084846840752896496015901166547076582472116914617139321441288471581428339790579072264856203557145829415164616519846762554656684337670582100395124161171148299061714154906349967071720661658922788200668205043211531211225441747631805067163171128386689815024091239158478393632317410181417020365263927337232110801307575947176460554183763803728162579850180291737207787394886190358649803507415101208256242254237061803223060246151518773824630636767560272797757247540949562339427089455889871385531044857406941680337110547593803310518226723077402913029051969238661149284365576007513738482559458059039687701015338095665495147965399680269954748767968886140352396582972394737490362564472001706790789060306009762224580553059849282737591549421438560900671551916613805409753919934291808849319309989216394998387669548977518986958750756151828468751828655695832129244489463811378030169795950070113919370783317647091052317949991023293361369032276573236399421943204234240252254050821336357593300017876621004729751389242825511013329522140806144095948485213524551169604931925944444287054412035557434036144016313482035551866277028113814878318947575338216585590071056268941109026198416933469839006904411294603516386777960178733974608408258717159674683864166509075662087176741745024059179179473026389701315586600154284115513095534469692348972094257671278620966489352808780220260138031180825789690118377766450035990223208947589431017031686487875788268115443295877071700265219052453883937031598645416332843242041890685112670746195582853997005762674332743217831312343892657574953974149987685554651807979595491669506808644030304437057228804175584844524619408694187487593453590283312529444320784331203588885180672150867125341908299479447106899528980847901909998260854175113907794841933928244076536883217451143356848082848859425947033597458809189301845372278656991388415392990207999864241061903775242429531538697676890082882001073702895720871731408883334766618275553128980073349181848609983866156426360648033516032428767152259894833957549727224689372184642402078080449067300783026706365982375268628429089058592257095052452678336443739347826273006197913328901572513362583515754208985993808100015171073434497546645932669538387126046565228754283838254996089725603252806450397577846317840153603563295729414596461316795272331453308153086873244757844219922887922298568145942100782124105064294354257089321807201488548310123710973273715034341175686445623717696933287981072964470576837482361049469852730252929575957904938530169347655802051622902653519070928250307305113074310094911911161837460861146759935735876130245134683550569332667303429333274875093701582674549451948128502062640315069973004776680219964454095542909800098967764663606000474933985264659163456510903146577175442147922766794958731531447821440820691030533351477553846047987631620534337422673048791697394526676172103856491284390771647309336272509294804033038220758681250831663715711681673494954169102543202937261330308338586254050811217400172927350143985903425615049146171969322523081370131050459803709763272402446986559708386802965947806516785308752184336597067537132413863610097309371658535426274696598825247348391783802408642212854285536671825968966241424791088158821552136738226318015842731791857015474090201433806940976851802464486699052629069193607853681033405676992228914035280296120903842004136615297105075844412916511967208230843957974342765311264441412770386956180827810604553334212405310630775988144821177642360760386872595152459604350715827005900459395133943703066374586832332865389210039526404106424711560066405797229446533298216393661851747399947989001075411066768189605308803992080925027474516655456888792175142334114453952132800643427420802071384190348972578008154016129948864547083887730841510195328767805861979837607706944600996650262996483080417624545987439203161486475960381907398906515600628662217677021241311749991638191845126307378035486080124650074773833167148166931919279316121944116658740171589548803432653318811648160895944791109031582363837976311180966888504952873150093090684530806428056925793230758672476943852827860909732198868615725198371347624163267096776830676565046361878117142445216121812371386096265748971418127033477633821938364044254160750313586491245831833188970191139339859014325129276883866755244438309832310340861452221490569866246741061840465147979158640400565600687698529216963230047583118772924402280877204344096390845632724148985896423041103617874928968456016095867461908449114206660807487039996555970123607882508621709645497758148618536135825962958405937035270422016252078689101825051335560680178968809984226931779623319794558130944439669320359016252206916564247387917868103821873037830849529591828403708346229221511909993626228591520552009697734322039821506556424998009057566778683875011037355883997316671789221151585586894490721406173962758242861843643210020161221045144534939427111782751848179495304494598533174976180521301764937640498340192713253863614928329775189898572802842047064127490944759535863463039174614348650476374229051148597196639090975413998814369789672128868519034015531067422625337388229708466239736722644303883363811554612255225630542096726497582949905310772239517780135813027373800782038510749356186292381666315057198446000298032792269487022630519372193610246498841471913397349723477605213507467265059844726803762869801900732905817777032036378359212721901717200690901366514541215534569885008031188527361990899603627702339672119113917294962530029311068302303982860444913414696975676630866939037574128540919864864468204620127880972580078556313748079468948374944873415708108407904607479839466335453397031053626232359005168334051429886187491767509852093099322833763705783267422179203360235084698887411638704366082046055956095819061520250694236487097604796979430162415292063653673216886328259664606521860855330010614124338760066344645107339475685833097324299603532446978496063493478732389815588704087502789768294305579530956364093676484340444257109883288370813476487369812317396349190067650993626159790629060064498839815822443334249463036049712682557201312988231205891658718830944780985827904716793516390350551534372536050595240323690505450589562340151637013594066947436261345226542858926762101522225504002495653899066295907530514408702319499048423708779664960736951686764774990073751039057924833853285882050522449588259661246931575458751873386460940458264542859221135348448535220577006802082656370247985759621164011307793416122414093121407282572237001513999053125072441802431162865817444949197837744495171374460450149815507354010855462837099444281179348177837662683999688839592988886255655120457644956777503950068235722408111583489958369872386195460017336531189070175438953212630940185095081449374808744171936344749086127537645313690695498024150992173337511492745366345398607942995900340337066175831463760681556081718632774045571265172390367125930906510558732614243912230311221633796539561881627538090541566842215643461331025043877280353788950905031923298493834836510477414930661237411770854419896370985545942604193537478298800643753205789315327066437311275453165468759782480769278453097344532096180333958574042564581836681576213584216646691386699955169994047609558224603659526509683842021950795612095110975352711050072986691607461204657227818593701882798260525444282341001367340240439868690088144768444458741754274803990767001283692122185441866515324093171712930191603006744854376705408736162775561191962097071659984183767959507847018441549132475100446799393727333267918438391522859716793814019393750749855245859197088468007922333473530343920151962616598286733112882652313365042537988366151776873310989051182789070643334249376617897611746945168565296374725339156432552208992008918358644476376254516165778366139588031266839449161735991273586534369420498837721946517652106098063283077235708279586714406064733927490170098737258987346073174107595211731641415051969702586127270485229391373490999183193272652104442286833953527814569854035833601551029141598195134596203009196591122945379466258545931419995758349769638865204384781371609887263992761760018666892170927610354054066864865817158533738504174321066409305628801479705502792650400752596769269546409073219044579800741661038326712292662577062860695790715592273375048781143533537887604934714509892323243856711029940342530703032060108864173040756130364355461655297142442979545652563393665713047060653704141643848591529751069612488052874964264105555518980516982104178319595934335415492114513052898479105483439491276959334965653823804625958702210526268604982788576616947652706728513729949395497531700645572201045886323945524436381274529757027543856603330842051074726257046403655695730258676688815432458083853943481635832442136281318530509667324167706710249894467756466718169318829825453964805449597005039752963694998549242887654439903076430757562074478449630691714825205121185216345434713869686225430920557629826611903860340177498906776034046192383156313546420543236357711064538840075875263707287349567914217758455912777912963612743592096390925333369847564807758649543891133072000311575033484220805999185446470165048442281140901246495403969633592993548669617022664537123650859588791014149238986438662976989168531113819592310081762904552468405158373809926896058290858258873482314834755462658667010038875510180168696227268742352913235368777430992873959589858554279010040307998572695299823290877435645950509841854923458721031904620675294638673479324131281420327939331860174188794626887063133110927119651114999273376765135354706753448489428031097075667672451698901527972359736160056914503376631722016541560142505398310169257442332846197390000021699637064274508371181692011113993716330979227668791943047110445967614722112817255772916344887398770921963909171444066772289895802791880555563727497989117969249305147019524934776900569661944440129003076870177305353655899936735131648838191390754633728456943812635236082115469556213287753456612604220122448852265373092538903826434485518855045070405881135623911668969596757122822151041509588913592623144921066704891371790266529077460697285413025826928988485182975370623293454647986695830108168698184023939395819995000246967258411544471810822863378729545801665571494195992192031906464376463808505964482939176834891244175670966287703106094246620468851940591600642911323804652337898380490344443942966713131386156580070285333949651729847311819203887564489480171519650837073790716062489453467958315321344138673214552290806007918149153018913436006546726789545558723153557467182102465115940606411389924587507160889034823583705696961772130004738454819938578823377535198763528155044001738500041739684869998264316020460139615336945893924022762089047673996822486180144074338297039381611909559466588786458170138780386447943031835124367488326678926495184888308978445950368243897126222341448330907095669379826578619300038886252772397272907618610952699941829816778682811978639002005532244007665458960168803527983530859652923034544115731179740636455941796582871630678420600503518171101694300914213562984409673531379299954256986958769725366744970841824407085701265169444804178835313315849192329949822668144186610057593491365446184708842088548184176819445673528845510777052139824195140319903582805728868086780721068187586832074773407958116009323292934661107232564550874294522712185860922227638966833160051454320729781733821947233075102668744295979566743987194440893750141259507995415920175655647905416962800007541607557299829073840880464583850080873499309450845582870850309863437037686460916229994188555026327730081475321822091619463671983694623493262392610136959421044988029742462864131955396699772519831217139672809018496281671795664290349069022165316688045681924412390596536691588265381864145479866968211158009258128462686151263509931587866843456990482140750752584830801702823929526664746224683424883484118635307677435327121139735339628645985480764569394588477700572840866515389320637075554144679503635160406395256675170395376685497048934713498326312808487981642522444900550710466397429687692177773381286016832454473280804526717337221817651900586015578029697104074575863330461448440978973566717114929382382862113176476575649156424935636050658011650750342724860247257399224104414729529009830972887484250257288482692405735360750746150591134643223880544715574192039446638276757012774770000185157742340286455201324330021688576571461963892403717676816200210334425615149860573829098191762103188364860904445813012146949078873303985135277174869645467948376705664040212629638228031097676490286673035844377243775725797242816663179023570827604839030373251239124714944959789591884638474658121707688304463391614722200409066342295671486520786684358950819135600451826732501727235919553759974437987151728791923576874052751557251507895188002614640869977535952427681475174308391577968321659709533774144345198043707313087234802890597121482713601963284533287492558660498588350241385407369685277501021210541243519581225922455125754773136995282858008180731809143714378315898769321936596002051758155054683354070054713920811456479242015331212889948773233896183171779843335661187136022676845892456241679717483542571238201682472365477142567420793086154196085926029441084586498840132777353596795370016098475735812293983441467578591429729047269199772497207761016873887273156184018998268667673251509757098784027332900275940119836863202183247197587022061760529417325241389930016898861890333683185467892996301092763111854280596098888439801259832990992574407495627201055655309298872137111000931542246610969421554875244183383903793397005545675122093709159656882540914510318552131527165040945017488913296276864181101127952315345700497205244390015766961351545794399560729826166960531787484523074933323481134550055172702561452091243503071270946414970596450073786744756387152329602487088054950029630755785897093596196442094626038954658684953675931824022903103210419529211480649088039933008346305031386654109934420896076034535312296584627577583688933119723490553763211233400076059401302585105355462107611611984996019528689679854054566865780873044858729930627652448999084505275669065040489892551666481192498328330465751068938503940451487178883942571714920303924644454827708796704707003322256974043142388900459309211959042645331740089313377541155288346717949676806167423319696243750247758682031477031910264760235654834194879193451241680780943697866388314898548297451304360605023506483923623798129822752985559792950279160571020268760017946922669409106838454706669327432306879679833621157635860421525731945605964478654290093477042757075080662453383883589352425178031769339955424360870441260575762769631889933172211073257269630345565449923356642805636622956510985945436972952307174900629423442817061447414262523509619107731283506591385248290389614044480296241402729637782078411262051786759675932702707500868332886981151913472734300079644618339464392343594048399697837592351133159595277008578523720417037522210109871485511879174927258550326322846651891173978901450058526737886182103555628482033417626271977772783514561773823874892225556445403527374773188314162572590526784623817829552823973434960720280096315670522659222625154668620845542186753835999192666112293032890955783302600545395966399638711204134726905718503559117654513590446371276110281417817091339627061029201995960976754496107550034195557142118754804085896299142530327411336225992328509012578536542127078824224308508690486895450329278998909530497781683475071622681904303917545109322538987656107827564803127569234408962919931219780989711990517491832954848806271569440775842594166553810010190997214884945032027866676949854465098248520280848672388441708815769916050259225275177833277156644296780932605471139936681585781538847300058035088766816635128081123186127663954843995954514749512332470734087010165970424524522456609397919844721622201237783907791429081765647740004814155912854721990480479138241580028396933802330695073904343892215006568381889330230659158855399865536818021856477178048557364369668420989620520377797997682028300938744549828918898743527828045558766315522100817666247419838776031776914639516285660527008421825805940472948904122110214282658235957142404900546616760172356285059262043011078248574781388008684569647628629038589609330762571693032792128336157553639284910334090751488351725190595197486822793331175122395833204374141901534996436724765120435921177536192392210424718599804384762302622755433977315138254341419802975152630830644395215767730992444526514115344582809736462001659102478172770666657612625255458995540715428686255959546783231166055953166712021776533345794543268840015463276548000327768091135911531070819532876082169818965764722987599086295446437507005118705182788018951462007108188478697321468557502559255599371088453687320557243775924267864449083984249128805016107187508556850326294265651148444479450419515793963454802249511043194126571792091231902588030861749603870098881802283052994382473358864459888239371274622308760223430210695417588011894757152080248464655909957953178050163803317214452640956946716275751405615927234226204249420896214762558816833013753422186948061580703217526137438511190463691251844724950370990930083487239116215537533899485553623966407560666016711996453008398168745911797375026521612537067439676817485510278748387234520163501933947606072632899389943085094561500330462211834831812769881802253199608137864351507328840880990614657885778136045436172698443812270425909537786137662933964875408750276235633674724792092886104164410136845820685398134595779409189757730862349466406465637568660319968623727487192428831971777611925316227059961454899562288193894784301384154236514382222474504714539102372282851164271517043245700299850284795773773509003212350486312097074126750672504208709658869800979292894935590078460213966577827340484423888207921192927458074953869432304163989901301150686106420046837511984040306778063400850266550868192853879241635632328914104527400519677216299039417555908322283923077010245606376938328124525354522762495824473915746601512846326955280635047614156279141750456074860047076428061751230475146337885466210360458248252129649826519190930083659584699858671574918903475309180203145599870884913084517125296700099937651161990659386099172051132930551110320187352318398211398824816568442161488245931271102270444108865441064763943714481621469239166684527044302544974359427606876820601515135827454992282958225731901491531800884521249604684157208351627617185603561019239802698291040378409203430197127225950030926200496415629150423475867880017072356773946652721970863678797387045954655058766059062669413037774720060971205720599135344652140909814309706688266455000213564395661705582866086646994454217842038721679036798950042879266330409088762651703524823763754713107129082936880859682613992686528705934419501225641313308782761340904436080090728821021922805300156110949809185848951181104650450275482286359312402196223745100047222324509777685623747544784595782967479565462759566900658184592216717700516919200707274714241900560238890293138472080004737057372808937528811643508006040289839994101702065592445695615459899924097807293471381044259184106089473380486257670406870239498272842010502891131247719669940643049683619277964141106651914715783914829213251628062724957033296637765933413577228574227778363011068745259914512396047382970735496436188364990165856061598519500502043506056158662050415208539122098583514893841959063525101023020283863639269770440032041528077684089286431849311760329030427901792841929234521027687510562687053641703238789938293094938424145684094409400488415998529578966621581304602875481863124179097927817448258758911906131049017394917548092139119539765808179966358941435310234457270719143595758321181044384462314393263433942705078124845740050478597252822244385869715098901866155143165494367418280362295095998528538026375299042501019029044396409464066548875757233992223588248952725220913796277493609713972918319177037785795439809370690118613516386610121518016725114564383981665041663050408358237637671044659957880535727437633636976457293740769801825456835077505802018113343508201629179994951309303575502401122160305864848268535889076418517028923101621883286536237800126911157855037328351220036248848267147843361307156133742368351565877893077089421474832375360596457619934648609222172636868731869961102788608658596615021768558541634843609310366205583446736734223966562739379468265275680438465105399700055777472030432511447816210028529400829093710990559122168330198913394948236034280726821973008909536827752936288932260005873228635625523005242377782711593443464508730291284875358463342331102450950114066784138070946726166893215245122825516974608460975110392605006900954939576419985966000676312111507342213278524345533987071215050637323846186115489501014649675327331019377282217363076887852446719654499865231725785610370767249297425958750676116510573038061267161866822204270265153524573210468614028922198987588075566045151708201477846628392153735530771298015025891810952821953608032024422486553210055366839433997613571120910270647678473100712116213638826248048998382236547590769255858925126930227772105080006254377105467424752249357184550607374432526345778767204600508689923729294050180023553105039283800297003622556397714741244510357682180379855412238848221151834343909057535103190186555307754026854765523339661576631601193206524047151432990433956090741350833524792606823209560010210543129037929910413604948020596372498591608765830200018614909443496804458491546591881922913437484013345604059266153840278795920335801272964011149147887464023697184693548143981395696880348050042919180159355593954032992343655583893272137330653863939609964781199752762571073471007460321449101487969462282613379904453771908208914982549568990651712607048973216002537883974169274085455215196474531436111901821401686620997379503814573146052505128222643518238824033054169874334995612491182948702689513389423529777255108308061179159923321395643659580437368990138204590107375089827356400786310392391164076039305711515557506702920069766661994406058597671951723694628299729897058226230817516131604079237573623055086292460847643490081035154282133849019816391593907988339681973782943204796997568998891157061305951689848677865604201397387093731941363477823126264600303026991656046141201778918712844339209203682721294066862676295796246036387071246403649374773810995122596425782083160619987782116346143289619052855693022782365381833945832813635906222188533381299080530162747802107553213916157127435047877486153499337131822932133878237799839032592864668169152759951325367292400329603814733917225857802815349333359055490116579889857966766151260663768059466291167522656247826893527988021605681058231187101598508564042800148838768154691905432882867648505339121212275484578113263416038435874494845232226839375239850859830617650779518444973916940366316061913349587204077582776615375254397502227672997327449616637337720774074824033878334788230889969950437761794762837786440413701400740496752863632980239490148248153353232665756442914111540133970500272515558604287185448162085455863077019817387671227612976827809659329420216411293264026741212634797959180051827764546123827321615239890302171786933074340087328923719450807831504818610515194681760603994764341914521796575526830999583288859980775515782455035646967262460442702348051990658208561462699758518029955278149317825338691962119648463893528842625696218678256118748237317554244617041428739943541343116985936190971783488825568660081673069255216835578750698986872907577768161681041904294695703778413639501929477887173818758456710519311840990252785461020735922539955972428015918660387959498294129249283603692305594796631123321352323754397438716972928375349787488999879796004149704407238899414966655179482657259689858859441910363868051652484572651621922471951099876365824682905610938704369127920638014688929454849462525817287343947185055849942084764544223977884286176240862900428168338768617655057989870475581863414045716068043434933903313935059252150185696824455563583123394516008340921304484430453728037941204916409010372939687844912309118951185023787645846202066136431371193702911347362831498273510934362527180108286468358237832251938490029423812804792015296815158547351337722821721997566046474562863838580714099807625269678867510848737721981733160880783635101149347387237310667824136639217127340954730437812525514994363144489439843310025411913886963168545351580429477989082785634063985799973317991439543588045187996735085298184355074436522974967867437861590342447974112442555920486135078869539316608783030885983917589523334371778857837373076795154406362695306495693827002659601382749326920547609922030747342029660565063660789958462637742332808560378407390237157425346549297703789362712570574910553171751229472534270317358389306756836032557808578999596294035054930002563574228617254385128840343911338381075993647844353257893467133212624989372512770035015441756008298806924338465397417349545028619885735840202487490323095290951084289407687195827730581666921510625748409229463409658556673481414213819086152242358218013747880304081112560605383160784606300898442723161150752347564486952342285910639075956428911368244586798205719787800375316776868036218322943255668094696368240103391326263865792761121797292477603478730887062473570968527879984443138748671996180342360555234998740638117332261918009372170321883858765682783730612962609456024344398451561727349040132626889198408682538479227987214773365013437963898151234129252445620353279210172840277607718717163097247436554614909761192826934553059149579654497430437256045934866533131472333591788411131100429053224841985813584342135800792549485907439156333075763882915300311585033193994410752401411629492003977146537925665546413507110170821181172725763239541589570582633586433613674321047109693908312621804255802361130410080816626113418579582878842635915739040617866492969201667771576216446556639905837065183482355584479273309306855119464296022868051858020487025337722709961007799606024587311964759976394315822495174964371308398724373123675234152987710929073149455681729470775298916251387795953408044251997154711699778788158206397864737020737128697272742429652234143873085777088455799992878421862647801317166831057588484759236281602639251560352166358347997437607292137722846837935911871602530907003787506955269646900680211056161573242701572814965518155768929418781704439158830915967980915782792527890008726807580019746550743059096253467524313073854930022782523617642780717283729957104566012517029419704777039216708017186602496757207378653311615194058790925327745595009557029060675382031210807066280690218393705636001345336538558252611937234319101271587627258479122788687319515088690252904870503267354214228211215678329760963411752283707328353875328133003082761181122649461177483625654894911989184699501477089081630740079247489087138549662925988683560093485300214719604889285819229132180306717661616063513469855719491722175402250464915906775679515514456398516874417765776388613571776549068747530939312853709305936079559034922394950656889636463493836605208866253455729858041904124731982451642357988304873869016196599612882529193617982919297754474051284210109763828977224221125656625275158910444371063808102112706726037679740740203336065429626510760575071242944574114779675071935152170021083248240799111553346723912624705435392711457677282545531672811847450108231228791007226915762897518440837562373679073357291941123934465671533566958975625238587464749773537374757047053826011404859881257798123349276539433106371683264779822556447068265923490918402947879966906135624206720263650396292807032216118488597669234452665996413957899110892619200017017346987179576054697308651496902389810126257608310309105082893101194320708161664930635708529644550570704529721987456353360632805368447433117193706717814954401566062566976272414301588015138734058574017908727921259101660353241702327661135737016706523536641730046490940279592326245974456303164857748347394279168502009055028929690000870482062688855440940513643773577686829833057368110807969663717434657129055709769485906231630057086903130392949215316241557096943127692855646769959266633343420636495407281840760111602581125406286075330197395971201815096689250020726847889375817160946962620574625626991607355577112378237811291741518457579121622473267164264366697437254637439172849815514161087593815718521191446146773322446409297673174860960946971047878392679827965005305888632143539802167513646653684470225759708139544632644689018044145958521882887923179307660774533356227986968456587942249069572912353326216752520282076509437946458808546104183600726451505186906505869122370093900117466182785199420973074846893151279403628743024580251599459697498557108242983602642881669164458156906832709424525884200381599621966991094408459794793062369614731298005885462653553024320305106051099205366794094343451561344860119076222358706676350512858480309453560096946365749315051389630759012692668896388257326597047600244709005299216686863828849789382669969800615329652174446988816179696280598853235533683627150849092715263966380195496557681658863154500584091643940847487802482817649384327541964381196927817121951153633493588200948692550012257548607620260010794634418758171361242049602832571230990049243545262552535332603128584072959702921657779085164548304114921110108486053314851745368977050832966334550068467885027465433792700963870461941880818222621106502180156681497188586065703684760095785355270914468709944019141193496314554551009120954636549650702827332249026659808770256055086151184458565681371619946507326130095836745241870522665085226637446138218093878917509211071631547671579412123774183386085359691619384274503342638924922234547285770322955304307228297635094484846093693746076500172401428643710678815358419505997839673554460444963529362773596076903414846995387227590066942763559594420209535759633668779464779680822317587487996111983021203237495799350990593458618947752987594222628371911171698411918714174872868641850456499675020042719081336311080698270807291150779895042573800702332671566035692864952607787175780809202836858105699857864327572527192085110771481780447426391552339334369620915239569543178121726332301752845126285347959924202186746887264676063268362597431640666791253581726873397468750059118561239971371797665585362929988473932799121549805468365754847103461635133384225245118814031112248216986285559841875136937448597612509501816607122975025166572109016696664739554203801914166802118521929674808879125549052265268989444580086587317408549188594719009736381436449003694842520047426331738438071213317942034447613879597840319765810887016910580053720701629298127998378985264581252992906273043396001868389017390661544101631535511274298792205779414855164179381360573535623810036085420065295159449505125431417496414678222810070210153275756600910581220153688428958462825262054687067755745735871102045622532897598661498983246394110033396514404818747991793117700764667616514646565373556162549108558474021635061549846629482157750482505581649761961147918979595164320469395194251588848029075064565085128559714986710051786930216505363978768192649928222667873395627661267414519864253971256265531162568391149444823536107802759535602205789416745345469073591071501013452502718887917032931110969726589933856887367371224184552806690698574578753453149530054675539893095975442877500085719716094856799879671343986229386183282928663548657231571124777191534716795422539635663166236724675167005579337249025574495617254072575034092396447321453352817598590129292217752674595515397598840527782571686900006480469753273541472800741211090105531682058657139481070166421915895264320708401584875672144965562275894352637625668323123217832942765734680264327641000812561807818487837839754589116665588858699474726236699504577270272726129195476144585838431227141615896352549220830765265390743324159479166226875676103351996621264703343145361845981774248851149472194109711334340996034191409425692188475165701758605425525817393482921890240221664911815955384118155931299678217219767204296472570083259634255197501989501312945414168165548958872610801396536100976880264231005332565110520044764998660757707209528666218473133205179717677425353521042926555174610406938840072817881957842771557795436543956022487279427196234346802245401768074814799698057925580831640802420396750859150919287707359613719181216423105275232226668115061655198507083201125877095097291410882357638948475227177729704745339494910215944462884905637448713736343716663821013312503204987538601621201431697780053782772359385782976391905853026236498007924712742629852394333183520221073642003110424581260611808370679816325228153402697351933559067665124005249182034775363478154320580014662536902158398120605336564633973746287755909606770816210641889280137378666880656410221127400150028458106950193894703680841560892889446685752337598119620371284912055943149124551509543476926380203744044511213789738048474186578373242042616684628036410905949593807484603152089040271813202146201852533462112005435495723654488397958534968204445386161972893737529006311437843163154649381887055624136695174513748314224717609625642578326749044501564991654275400663729335907437108363807661613965440173770982574734349910302460204362492809193168368969743561770912762738505667522297484936752751631356721738532435543436527575722293059257463354412803692926357888727882398249818259501785766786475502808473183167570459160942398634059929064931992103109998449914190333911203550423061027567257397596616126979668064614473191787185310213440130732191866122489070361863796339019979916295157052001489871904377014246290877583427069107315531495084182390631563725630972469881624397249650904319858832932437138166788645774807020373333235953990273319848302172641336288612448401611216591690102252986892051736316701367393200153725546979166140574274660919717150334102767697722362353015752009710660204291390864915457949660585259158757848486771146012330304425514792841052241148284912714471643844552398126613317467685989175293549639711077071606930094192821335429471718491411842526544033471515568444695247665432822615905248318980453267244321376278366437300477869361100794234252328392235751901638266852543354839917145869772414929882159479173870798305631019960185116175390964613397934738140772517157475005617770719513217126051522577194795904243260156904424347058800586494474239860855448525382888881290362789637632917448881001677259650959757655145335967813375663515291516068029552486122882438019304352205312409320802744251500614556188892594201457879116575056158190692893208708658614457283686051826972081297163646528218390226381550805556703882165674857344616020857488632099715068810407340432435948081146545467281194458421707138386010982965377889082425813382468357962323018634294289192165583133394361984911620698848761572535789628416729979344253613842065212809538347420073122089221610101773599619903379468993755058979888740349890305158060148565624473752124573225608491075796438049411324236631683772841724054372725162418107433686373144005093495975843027724675708500587960902961092919708429200695648421867845958962829873968032119507673502175734410593979676000216200697599703389769074473772562731459414415703758126950409827232969470820585747316953736154724137035191723409947701774306195376819553884199932552403207084524582573275018904292351407891215394765292425454401120704459387168159641374647676924487945171233401343490193883423971145922883831178306624750308557211982123077178506105773280021817493050227509172953955144984743138208052557296230281819566636449617029143866631712897642764961867283342195861783327745889298959384578421566594815006542850462799093822331714326355631274872272302014927489710230070027572731226509979392765059896625112677897015544022296683857602181327724514684053692772110561812915744790832665626899118123760752293098013695553238600300101558988799163374337510707929305250835587737192254772124039419332034116149268743870866654325689514603567562509909005455119816140454862676272399577491338020170497965082793793387685866369434248819113746319793783358262685181247834439521857759583095030744182495510876817630154783406403157714774966343618599875612230325830171377688993178675021276101579388267389727379577366366607672128880492438246056315433118904115730591844176935847583599279607768828531266383073115963060640316861447243314790079585033583861778941557367023619581562150885573244763667430944978642205927960939984691514859158529184109398819982118416941553760739692602733008901010396376564989196764053392730774681558461212540048885975761290437502645780148762315484439022337001452978979519266852461825480994555698791142309479913603031557298475932479514542361578611454470217098341516033923319160666468761261335986160943572116658775914218605555777820837437401093709940448183272676533280250720135330346850433586330864701423539583916328910952185045842453263255948939288926983795732998236513099828241701439767017517005234832541577058767204929870717154402002097896874840738750748337163473747673488152472084302632582297330963503477208322089810702271109624377123644929667124521092958425082734693798455776440733790169363441405229326933116887365999711710994477214055799271913026354772049117882145177458857009994925026760400091127693817091906007874080767858072292562286015810243227857192205634599641292012351158597922256760397976917918544467577909781724275204797807879748930309857617793690369178542665921599926166684808250631466496939363487429077983576332998783307044959132812181537480280872244961509818708743525402747827565947261726862610068572989131442746607307545538692536716595233387515400108369959067620711826837769330283381153851003565570917340610025367097191869649008205725926595805355606506934542349063353483378890028600960532077415376369657293757264792521618846516046312460041220318104132561895829561807263127597802336850645555294236197617941568765318501318684070465735297040573162515315504109956715956772091958353119127946768553840913713356104378682263274113096117090472166697084416665223884137688761463813833602183323106690102928612089401884747961786615426181957893802902084907036480436094499355877931204212668261596177945101504655165417561885659001110563817206201784792604710898378646853749744851041690198582826771949920723597916194836901344622561986221505720863789015000245769351422459202265955832609488635051455528093440429505702767288415116263418958341134302885537281957646603697977512153755135036945667333679802576688002153274529153962540324241066281701313638902642458732712548963401971154228667262815613088061564441804290181531441068719949843264244125339243560720698792614067908358957953404404824638537270303076698323351121843604129275680587910294632934016201895486668970996296696825724465772817801340484587149505776917158932047365121131215427852837704439449312417610046970111702657370262246243771383612141854214748703598292060341916437912367169686411212790531702774714833338353480220984993304176166324026686857751360876619707036665474286876529392010428064102815490279857137061966925591181923077857362988762431342832514571339631167038536233551549965908979702829271453827889046551512035288309625447531211234492524715865512948107353590557882232109267470101407789859593731382018299562776437790162816669340393135348124386135196901932144476704459295111594097211372976816535285510371660758971808590696717817464007266832264674063489103262868746417177636627933688784460239448176652897913375154221670428760215945400519628760276198784142833390552824664251231247442250572244148875866943350845374203373377421639536609931235369393119590264404328970419020249884655222678881052725287737353393390521051644222940245437680063228137612905606814356742404963769522634391189976341203290404211542445449988295910226824758338951926583276140922663208407677124405206401037575400311155130859474520628813708683627909412226161213216678116629621471557214121463405562737917427255971232483494668341284634890618855368898752208302642527671628348853072717104583767536343194174193408946891853173138325508832171024718998141129235505426220751464185026589039498998861536045446368049499636671052587125750096621495024807675633587519484333112263850608465097985295821633467715899732255282981476327107890565619351885376925830321657208470887290524359123756235358700201681284635202982061005813367693120872360990937301060745965045919073191717009329157069784221995312456425207179965848087764278413811391346416027244403176544607328065429314421347186977321990983189205516801298228505089915121626047489212630292337801140471247271746439385337847267552907172238886075995336972467690397274137224281516474690714952257929191768778904226206982373065744059752854871940231158837173905605806766251154101430093708461348275662000004815329730999354653926712521911004302364508212809836616080434102528210113433785360470617727229286285837585032048374987171160189429329732694237373994724979742158162441058679598353083153986947602537465761654912904246773003232255271555738706899466288160204436899677479773808742750803742395745387708593443778377586581577181741054687232059677460368591497683201146931120433207283807984548532913004064786611231908573487113269913790056443487489352595143572080080161079516343007740960044171019598412835483342950533071033738160114105831880167586231974109426680702135012996757677364406960965407023934622643907582313262170310474315599548009997330176041122624066469913245200077848846121340922020718204006123348741483858017640345189871738572971807614273313812374932347195692253208225870363108627102361199783928175118978805700207901385372626050530625310305891018098107767695453957052557910959289363394655522807002815197620792573023852710051194916110969178382254134030777039991174401342821522757505341877462360229226468979204564166777512732916219567628024614732267127564500138288061921895957338384196831451090334122343215535043752431531061533184704180065916128900092926248451541744177375979282678747845959046844523945829814432599356776930451459591992497436720620884183920629228059586402297810346322054577751298990347997968079448476002157792272703890060320218042937816870752742406260747496773374541414852102797397604417569113568866381519468218496185296645006540313521290186390194617923839512544446141120697464555217831203587197382466534732125494423111409418860054993134598503990910342302057504603862722921111083637140001247371040124770887066286653813157467867771247374746201940197365878903886381564420585748288851219661884037172123508277238441023360428782508255595271396811398192454374093245410890968972912714457950808171887808127587382362884049261729395420762821134616185008074890310097857859528940266922439710102283872573791106311564557966447946731220368984795582348920716956247768448733999677756107489149305754495233628636029281343120265685452813462881283817746807779498351181493732089779958929282862179731274562470480134672964312418869448669725790577066049848763028836493879571900883468104261226093105722854639635736335648550788959684605268221359233703000774576691038375861572532289688669588545274596661816745663274987379422117269243369708699678720467219061787141185274629868647843311378594051629941298898735565592160405562893775342098372988568728057003131592078676581313682145030514928992261590643895154918954208147546684686671764848842987043985878873939817793706276298147659016834300783246457056690342169986815870067352987003190044566963301020774873497770551028783922980369592200975858413663714944939834392715684426285074590828481883254343046289499506658732557133032789698030498513584316765761920989384432249322597295336028471018247697386573343138748483537467748746873540524230089788371935518070384150307308176575581292813469380125530130636329894884630956917080432483199296349117863587792264854046965969613932005066051957575724602439835772022155564551796412128385692708584990944676253960491771134366883108420147738023276867617512812219503181183890863250909786199129609818931762919349762183098976640971174074913942651501218685636697423360646583297080587421690457488623302168236863376019024283204338710415481101247756589048538931087585392231918506443830264714107862163685922923176291091683305802095882540175495342672436791085512608510213725713850684080968088304721202168321076975686754852527772562845427175182590708885407448158635284231216591872684798187844092770368983209712154493840978516822034792809095984722545218739460935841231030105175260705752446220966546402679435801357610385431115263044214027102279103777646013918488498580200387962889512684776951433970600178990436350621786996275932421750399505428393858287182222004268488069577887558416837587363320604775230574448616278876773411724625285503786810086065174208288483557283680990869105598979324896051534163925909970094455191409721714621317788688651674091575780624862095782455348245314987324558073598943980834785235298638018004540570010626394487079426612345270438180173111274922463525652826472200317994726111905256971201874972092205167994966749817627380533987775278425150491510951917212499212328556909539901802991452355950589326607967767973637938675575285768474135753044563811227706562526357302961862348496727445316712418465706376158386186531437462656165372432743493822774106100897495527370163171859204059105990149802142277779239973631307633897183900778065354432870730631456833625380374255718766500507636102337417999381166289317958573034671238836303036316290340401150899488404008137454732254601901839570997504874458612071528206235785629918181012219847856962370300069249843859817857843282079490283999734684287374487970091368160693006229040202377382099583377091883563673972048206192088515439728726262776310991550610121135990190243141977470825257141588778383494921252681563705190801044218753882475226510428269425355326308625380102859458498232802750649852353753150743265169335390095349711170710215881346142744565622334660965733262616145088347950482540912399170214061646687022364913550163301987836793177700216466597683076770663871364182919140792378259965192526577497649740924863190877858898070586356875050375118738449953616884936139634839493818199013767434568096613414645932260406092962161901832942130493636933152155901681573726532945123491385979751487947789189319548060749140853068052587479904000865148732974959105072838150767531905455925229902577736190911997679290157983104737422875942056249402834592751319598657685608209826903203750215555492594693290733786113950153052944951011243999769907143784202379664456266481659045602243883925321454054124607040013221898484613327346044250930147978898967546452541604281681726403989366594599142153220487736060263979154163531581300383599903692363424191668608195765893373551442870447435129894221894784289611814773833279077820866442036338916157474953189625329451210490904900664102582665008847164886921542202412895485361329423272767644633556666739828462948586001729047313023873215148352407803492527386820837500197294021314894513767613350964236814006381552696403984228000186066193621013838179678949925409573776559694538203959616097551458196313089282569850678230260376936132549438954435882918430973949980326954913728059295552228866570309961834512599231699685190578764093268404428696868467077542527012390577354355320835971591681761910152086570282068784740601137841260586619686028624456854993118381227108187677212134640493143376080862676053788490377910830085081770392187447738447678736816190568046732992109560618655780847715824325447964085484694900827531695330503121902536357890644373998716306098223679803419654734098263408871269466068035504667286233065067635389457191734689565273756546986030715642054456604787085892364914288163392906576767212186094453811191039079770699761760340568805406473200570258074457212054555185925190688037090814328437693173958297711862505791376318325436233080664016782805237238928016752834256919351888277802771318698222353252665579218935087881987602685956871840698624012182642533937228277868024176651991561492867179001908386630396245705162549061679039559621040930586268081455822477317360212959165810039872593303068988240712076360097711041500423700750166648193656761059840728999935883579678260442476383502072751825269381071214817183668222062259905357264542268782387890433349455803417487279097639214145348441655431067410811852528733599842168465632399352498529358609230764743103148906080870623466185525601195489986774623362634616144230893078848510526725718918245958901112325894418911018218285340813683645133657483642168790609773680977808668003526051559205511053628910107906088400826372447978154528848473674599453044908068511163346058729019467499130069196615489613902836075836226652542730763293593567971593636170225141595680470017272078301774021048733727266513710145779341754521699262285299861998407152529587923306985001261824515675572679492990989437709883333000022091638515592854577777520352533541493770215819130648737670790048498856926361961253085542743435931289189755975791088130173771785069926289390211990915705326170715292412313794183465591276818909264592590322595254199264127336244495288601635546162705436850867889876104308256944833043482133488937489742024760278798204122076817625897471245947664546795539996211841309246416875017696181589488394658058723845426052363065316811064432140838198254265440995891542805782144877746643031534749553656658158587765367907495145766493213769470104777354549916327955388783307439283157915807535768719655035074290718585089954161754505425695158225228964300965049763761451887859892680664041261337968930720033629311903197070585842329399929510048377157850864155178538103122321019017976132016517477603730450479823788753920934620556906015812974519107660575614389780012244497870002050524441829869829141267906787510196870210909932122877147166824467832367348407259787688197606180569319125193956595941569640972173573331945933069650825382717051288176415498077914937739246810519421392070248824806217758882399150620828684196382415941986202411515248347178214807223450834297866018542909282814924791394960085598933523546711508507996216798926524048222579142439960889442699985144441362456679371878910404794386668646125901388134790185347161107227527703076462585681097237070373975324258824778774084308648006975301879472626466457656269420492063542270492224174493885222680100759264329779155382391067652523568647680066542609298351755657239815236972989019889082652383152933755590866392003202733355538080886939511031841518826161018359116234102009101033777777222124648544829432007670030147036053823135463420490993423398653932743812923151215399221941221188742596584392268195189754527687862238255224776029512947496553764286299534665942498965745173382285948007421407514329786960643191724802668658672494757075981902967713808297628751683003832670629079626048985128052762727005975823736657750347912200936074245914322504592262679997391227271346919338364866070921540012054317487616558876830514904042093589802460175262998311794696950578039662750989478114733752303741653388057842080644415436180359089495788530637678036739564555932963234701919110188224342883468319137259085366442884510862045685652467033254858207222574924633379302926439214881203139732614118939818445274422532923881575723794759234433637017665330679589102052859907107531247281972224219409397818080768865260149180082742801407071801527293056161413137431021667767654658198721423558181472883309105400934138515835641701023352132965050897650907849844881581194833377155424452402860277361979295371983550058744888107673225273976623128863707220217948184207436362581052110228496209518694447665683926376395551447492858650056724761269420490714576996123641654213132939791228719220760534352573930945776553989328289153252705921683328634751716992971054233067771598459375634392082806739135699490170011048508596698516141540674757976726720901147862432019223741744453188389071600967185991791625917368306382274749694922712282266250325134078699623964015745050654398766689980257559970661063795212899966875287554335838457117644487559659328827422046125993780301274604273301850057481345124964649568423393694403518113215011403594083601922643255172561630632399772449760428552675757793601916748440017506674324066953374199482934867613375192602408582228538784213328709655575742362577792410423770286213288830334238604752151139615060634681462069324425977185437837505005517644765500035168169033586176376004086861372629802991109524558666264254556098285046874167895691668745352012810988337866443141587153400427807909094614097176527557884219948244159143912111054153817491116429799733508060182129863428114648886038041282092980337615786577785124132099167757345099821139805662131816964900103851031714865201120217665287263441732832085307787077473822174485115379490722135307151886418825703858583701276129731992205421545074618307051869545554005227387819304318674658093513944779706604963896012311339558216137361001750317710111465782470156052908227062960713217754713536806885813273362630203183763737425103090968005933380421275120928430290498572271411035628446675933605892158986903885649598951658574009060819930720269302835600690618072991872194910618267299768344179985059685167290338550227806868729701357201737603763612786590697266093670217573833211340402283167128635544044055375323774595198991816831401275085899066604966864448644585943685665785664938483664008058203820269122305142702405330031644720269283042992092746790947771147492648888438978540208908898358677212064610802378953274059483171333240710670156752052207243494879597282747569792774223913031405354388841583483109877373677795491436380814689549222567472206160905671233952939536899174778223294076351198178003285141434592471605354373331832437653016481855521905980184884190585939115664306686450902874047911854450281330140676070068930981011595691379424214714876883077474215639807843000658849963553074625721765378176383918797349966943502331229632187130977972732980387908497449185126444377990298947893540363327254978892953825161103694382099652494172349866335174842084703850833111528627782375836708789927245777455553789004504686649315069018252972498246798897577607954833190845019186476655435044282122267351953953535831023194030712292878079972300547663264885010074032590732386590199857153669215357872408233114316218257335439764574629451315899088763491793241031566061274376434603315392502462358512799150721477238899367211142708749985515158603246113844631996730889734567011341679694400948132742722408730075220917222154609241983312722392854080506257584925221623150617979535550600688979331858858101260186662410815817835751536384760245188007458658935202814412281933061251620080152059477671898596525753480690277111859656119280130638060686653479356053340522998589173991750949483840978997377724069525798693272290996248237272350253477340267955450308720394840114521723444616480506975386857060721773611044976591212430313306159279285039169431096860826877312511243200719570219872036531285183265919689715198817316387430595609832986264235552869883474356950273041536778625108504569060112236900383523082017852240639415829692290498272901769624416247798004466577727567719650723038473920882756727500114724596653309938579526060431812020199903704731822921749414837321737737352634129016328658451765179626766610254663972273840827343329277154221333725198752942685207169898531817387325515053672471088749816772331694721878518409523283269624691023815093331004144224260593009410181264355443047224057065656299171386096173843930489359976940507506710984743728137281483747903742164761050576661563318348026603670216690594161651920754887246813797167617201922494665395032819341001880496319579682239368264181975220301261299035597133097426852005587922871501475019233581762286899221592761925275080401374493095254665193550215482241411447078296504010740601713004129005399582189393908835510839290729411391547491557826646570236403478018398011933820160855300607775515409196074728176129017785193879705018932779672209007110726615559568295559248619978432309873647311361294992295167362819767102065784095655905394531953014654501536107395047533958342447111700853350458520630815160079671665864925755090606939928899343270587598850001013107231599938216795320468399789394210443501622840250731616963731033400027762768762620297862500347171386402392308685676634342648022303583372583017974604551601919244296712894042693842456638053519407665374608047816038169544419056748209803339437516863812771867002346201371235681336786170792340438044329009561855765368411876974657073643680381642215606280602175554389339125994916737031971844295153657218535405443077000900898525846455684783705684140667988273405546376942451915207180381285645845688161323832334676046355133964850078615305240021503808303425045352623663328137002647617946596958117999849104161986271229067024593989756066723613576698030883886485995930570835090520735534920999070798620281338700816885497041160638583299797388320939793660323803065662845026968751368297822376340584411896662104897685562360622020017129838303687991397914922402869494385798313559342691637756146332765747398222159430676817136032345017757090598146174049068092422337338260720487324339907401404973613293174464932971636029073169797563380780410989490753754838782444624485891792246442474297490076426430172027229124401803250891582540676188805880296318823777244109257961870963756920332461138034995071610312035636536320822897663707918347139555434603090857579266577510465213504994060680226330534773228592640595642909760386729170932167078214519547646039817944359815542870987439909369989241373154687403824437293651929678038474801129258057723535115507240683242790637122041065043181507781370625078255158769731976857018208954493038467588340109678318869893376278961517181170036881791621084308080114325820661485922361785662970394729423129443381643660945821871818750768985036046213134972921915955125585254917205453931094882082499790949160027598965410989730344174782015986653567474266175127787824404119536009017419414923612338120804015765761164250858373754389377423773733763126129138920437172979656078647244622728199849678589623120806324156551491756228992356431256377799835408870630048075384964426392931670429270084656869046279557655756602997907215356044768170635338033882958166687060157038929085478650105011187736147620408948116629154433905529684558309620863028920499873631035659184190705763904723618815959943155149541192634991406882480972927908634057290972127952340542035392842151333518408002191314310131590596432184742143459825418982553446666636075426868654062565715114824418349768586694025809345252111116035627508607192426420226532422922990485624562788032494344671772827783903817670726315972590668317850818281970050601241022529381547217330732867157177399446919205013261489344380793939936135465752436501515906014760705502101600837197677420324427579434682145993334882295187872993520792772433332225810552374437275561734440035091860715815635357383139397558244319970800364064734911862741745982722392222484886080946571328610985988228654265082546058245142669828895625194441723431972867533088217815203104082024756197127060081698302023069155760590241547801477492409105380450057416868247946795873063245857113710921152434896929288250837455161358980240351445020823441735947161715477805629747481667003180095918750190402375041936243950946541824147586967756273501441561801247329070147768536107190240849500013787799190709669847559726214536126598480728678961257602494792161844566015835298116178803741387351752973355295358358766041088162870216756333572648406019310929587765160095284157544563202216620993237211898466576624675193321108062200042808515560947359796997091003905064722814571599487267761961954244452668416631802628826592583385353038815697253717889658787520787646921681535524840058269021092967722934799545634254782803819054293149379903723221842610253239225851861260488707385305124420066130072763007923493950745835992717472328313330104157655404886886915947852063224797211210045404686853787419074884746628737610511904641685882366565322434247250829663004201717181739509034770854526196652237375965460259978888528680342830008406967067356473978162923704884610459412932661484809050367568979572203220274652528185137359178170430257363371121428787148675894648035871422790631641247081619031365814312083985150826191544370926928791049184114736403517326768923918391560110272858405065063046121029930500568501875864740738273120572419724975603487404610654039556818133001195388791202246531063536540324365033236388421547953800377203066225836265648133752461598939671288146045999667783394479187394017140218474641605590020877363643600436415158481041637982470767035512922331730307563349612900530988913171557217751589860969326255800823946856573442620073032486997644689779134758387933061054839723150121349693663556359115125193784210100745186122097233013977443124145047535703809911506612055185329296331108488682630129019607435663508856400272017085379482694525416764907820066217228325286647914914914683834897945092709783487878869232449407707172195760549624776785748293002658601302254535268662002083186556853737705207791686994772327575791008291034145922028433362959404932022433078005170522949416880210743204598909107453929274678622991617298700658820938518779341888438271070512174514631985533581023985627000262142050706237016663096790985534797341474060785861201440649502087599388197247445246640881875016112338204615927521095439321716495968192173871951755008596794298284732521402316059116526708018375332530093384595550326005363193186900214653704107160834924245222634338641636161430671322922195489134915053451517963650246907459393045847445028371815389691334169409694655006106165853685762505775895884090460956835733766832239228722563558353370745833919956419088826705470687940367772917018519544353804100913276558615600989981242388044935673417127034649963727029639660006012724771622233252735633394363334146766986721941728398737448480960560660854169145507310088757990498818126058949204188672742413286315852706617927445061716883829242266902811007103580205253874037856041120779354865193538640158920381808389394814754253200389532431303810755384619545754778765177549179566914361102413432026862753733487987740473349830754072140464881946754241534779805421562847707946321431142851621318652281369788089761313163181203370083306201863834347008400908772874136642902922041034812993791813601039771297481956831468893327344257358057521436688807949992461918235922057381373946796684971693994263446822087262725547161587363613554522155279066775972682783263637589722980342374620215131211671287322327985316957748784960436596253530383486749017057851955941316992817068960856916931429324501998866012542261655012397811586047756844705960922752467954254751467713937431547674501288506838006881991591340530950727725588003635533075533731847621997112545953641291969154825905492677105130340854499636163342998248537322817374959338302142480159389753845860512130950289084124118546278881380421737859410856915589946775005812819378472646928584109181338708112396759724289299910895523820723709579124525277618370565810724713235397041450854382779296264392119677068812023869369869317102203953096999964093904674105098205730571700839285288246780614948434245897968779500222101604154894141156497513212585126350607199327331568222462922641212962216313017461766686240855801355318487038657198354476353773721041823847207482853868731135684837746115086032706060344767477199552789054537730366874376355321403668998907331244452105893193475158967301220092569977070900332383072196268099980095466929024161728704897944055485655178773095489186952778089019259387264483104326833640259603165840647798199194896978774842653647273999198421549906754098777174129968318850338119731038728776761576838173046282211067848969585348427474397028967874239637520420867397393278608922154500911491016108815342890564647092601169147456958644012374795582748134555943212906134372486428079900092772064492095102818997116869541978329569521090094788159946735258812552118081882069840008657672512187380782876879783180092881675770967920526325225742067110178299442391925473594183777956538872400297416000410712279879868103801324689971386478138756536707422161849091062222489147054279154498861539078240685827044910271599441443357396495673124207606602907521931867303168167209673624011380906935073164456486883761666748449088129177746459674984858236283515482244782483981726542586972133473245613616345147038384888611321314510954975510289496811915058846749601810553781556711301121745146691520811413144660180560168337500818103488769546980801734523625225065904593230789382231012444902696410666901700212840481129162815493551358844760286912056801634479624369184269190941242046648654698228893597480634989972156355056537272239453406985431147783183953151336785420725197153373718910650093656484902351509247258146453810574663322291199847632252425422909048626992380670349470727052421328433112795871724607143858921424725614158567090463659265172080727082169889778158307965876099816142205629498027304978203821822669408583073389950169811090609628875572512969132923623705024449451209373936332598706210366281136187604671467550665890560328314690752665048562388694377233121628821125836673967481365477287818525795950120274269974221625601729429980634005767293876703994645332934027286473345413398173752667363943095895421238672799204550351644920011689115586979767473657575017619601407277058144213228267680184412101629408598164061847678478229559779458933940545677897074839770843239360845604995440444200881718088965284247241849096792291250663072952851070519606724641198949496504764474013186822915517102178580436155240213179966942415651683640496853725240283968385008039091513146665150854877029766193486097552844779087283009404717205098925128885229902760852226308262156221470795137104944100572198513340636036237340050098422734143056273001991188506448028813748092041890093796151660302661210985427858000960630138166828952784260389337549579815040359749036904810264332691728723345138859661901965590878418388317613845518634452073869635090825114763005306770306094992903546131634155249651871053753828576189082412217472784780852528713544235094340025743068677067070096860174446096338622743321991802178920810212358142496070914250739767946543696251716024671913030367633055178248939491760699553279684191489462981844851612566036225695382224501018576335081982954916318858924966036153997630840226302967791135661362607687702116376601587679668071005617486428871598998697797425451650307531896155729231913332079259069867809042489523424898422598164342001608780486924048616301847175396798850893784221293230075681499419233698286184109683896506465622722163809208759713043428363688636969984381668938191138807633209242411123816001337601993988183413775216219006411701417797481571285700363477355487487534825861516625240043225832780528350236191415931903085011056074638338047326182000282207501251735855638773514766072924111902175676368668260662390467076528251406120571848166701783288120119940392144554915408673975313241451503546806987368448657643572707248537670418355228131808649254701321441168588033074805605247072891764764238569834618312914929151709361703786771895290104769136523356441080179990945341687061348369595643149028992949090162348979448074382289661413689107432744733738484722953971601826583368753488571891235930071415334048587650535758329853772395449748661623733343741064789701070568660079790402736756377668482585177100538897873732133032302926154804417549264120765748068829782080322092036005348576153905557812605250499224867853681662109742128811152648093136397198027409037748418585480511239908190250868462780782483312012702203014726176666821635380822680827246710522339533542224666093921567159797439906353224622469929351099078659249765631922826403420196448932013332323405875217546562559404938071635613209865011062184610919150486447104531558324219031495409957031749894784628573051449445045792060494535985923616892884545048028253252011458084909814541103570484598993258926075683894612058378388944518839045184579230373595110789382382506394654108340457010876537142655909950150970995347094867870082486407931076224658698612509568079782363721858610402368833973776175572116009423633090508230376693820920366031053040826408514883932985429558359990877908813929240032579346947723775200561593379576398770881277146035929500496452479792805941405446996787891701158421586227503383997148217009571397298177486501062125861210014164110307416202101481915396909765694044682673958655564167683235450753830464624131500629704642346436936928906604435288587363436909271275896450025743844384591134380483367047901426424054937509612655204977230772237264029910785356879998485469063641105638206661061362955360303805654124524332735764957285080261814145715154174231421585718677142684003973162159397315466419259737995522932720431210212249570021725817201533475518459339969537501361778467369508932462038365786439784198026251240735751126719647948850648642845640297366254397377750658866379004299125271736297169690475895027204984047299673283885508725731730317845510608205621511449656119178183485198776333319846005056829474528070311746641195896484072794680388851076616489045550101168215828733508669440261039307585086015013657445630335536801250406243264572907569991050116060338415586494030312866260581590624209906158373494918289554728543829029383540010907937439701353782054143283785396415416804145837093606032979426071340304472230653960678796547691446506479086864992592510356037213976364329470586994198250218743218724277585954458874961832539838723158179176099731115436364268635505355719370610360264226917714545152920842875147408406347814936088080823267100304928038041799803910827909483938255317193741115716231898180741833267742678874345525127143660890295917616031009322775071163791042772346093328257515552960590953996160918526734627727682426207448977756502437001968663689660001155806860764916168868228207927420021694705987929474888279128285038971031848545655815974666069745275780477203386283557642685009853513943507117280648529181128146388072598477856866878108602146354031491441717484633790206116007477639912389322343058439041578621512151180291940101736366626987782322559935789914737305855517687165763710815505646948831768544353531727665852857399763319550293232349045921616501594350476881916829558609186090995594630282919017067938192076234367602805443188233582027096757557938062796239721070564481272632354915425379953653055961294691396693443450734786375225530022320114853874393688234058847100444343704892833434017929821846136839318276755797019948447596566398971034260698605681732269062413069965660328409355965595090468656971683765009061791472382451588980028112344519360937445037746509535827314598494699699271162263562774875604545155536331509837212256724418981357546969672577651615743096965610878397567852456731638606859558222861386189060645626267444383842469044206035933604027292441762280860980777604182377895526951071900485988855321163799642846547192267268149521122671834201650300209337953577570502742855490536485693744620511502195466756459891219501753293749932804634168904509334997755112368035554950666313606034554438293978193675919767335266165331659338715554696494328143858642568269526514197308099449836543182639025094196363921190256408508119843351434066291901044218137848817330206782174416723118156541012021459433517951514697750555875159276562086712316608310313569163071254229151649683234301490396081767612236258469692343014919790786531228385526519580947364479001734282454352414831771920792239375140774670153455338642769659676819582707972191079267608133602725989678250121277054665316171920906739754287134398142929104302866185444790248276580254893099599659790075773012625786994066067344589934835919350825457794468277153078352515619365940371101456516982268050061320378261726221749018878757088252186955057287478831957740593678434679924463882393115171967251811569751036223626018963487148341160753501325014008046380641101088642870569570315930212046690638961444871030702845839395775115794277916871188482151763037494623627238870522882539103421861305681663481240351676907828114257940764481836306967233165934247450973990281617330595233181039903607679563932005552869995560391288858393329009100962787855041013950961615485585523726340240786182814621403494286278375602776565895469549489993363792945078960621964564990170285032277291986603507621559478044785572631171450853567355452541014728129995783736105091342431250069170001634793339589025563531199321091351441086671248492894725628676350485686738643784824368362666285534699583384553618646396566891244959251347771411463155184444652388742545658546696283500502529987410859903279081995328825388828526101872712447473832308500218622092675882966485052573915623045407958828390945671863570792030818703746251796529146108761014347958799832231548822989715366475015055391895129175271053083124288644957071815201130926060382305963660536312678010234172794447962480789485953210216738347101584096747251487826360612759685167255091222182572566800298011267778464042189492882168612624787605794746680403506704069083093890199583297914231835192047542080873657067490808357906565829102790730450894799171411160955777231261088228216303698881238121012932539791245766562683409494893166829687870768695611265106635306313997893787826031551910509571427316264872702605101685916190490147672075450861338037178176491831569907571051617336655451865906523508569332937112817419382453356500253909491128194272970226744434641802609870046194004632256496142405006575144995196967903317320709989959182288564312780308599397153597706850941515514785608881844656314634160976743877873008181878972602272901693766947816410770223566242952764621277698294174855747757632941341474884011957304242683431619988769310770133645008107177810500670257686920285899583515370810920148511503438351875388943007219420183379713125959641021118889753912488372144201886940383520381681709813204319224993436022820627216349451302699414202394440973267022074274379811640082785712644670978055411743255955186164736549397072434491971210154016377120915746840659564478810233832767291979059930110419126057630875551429600346160862701135078217125835305791121089309975568838297157495150235913641420251093135804190447552591209209604966741092339327526603437664490535600299644359015637857464790030820543894253966670238779392320905288812137249914141208410096765060997334588105511496097003210064532949699315034810801206405657086842163575744139655376952166715437188848875106977227946564620494734889524171991518154547079824211758526041395124802811239375081639872889009453019414025536790087529610678775943160189429043263343136533595336519892379151634735129726520116333202085033749931140763343490453573834920538308600422751469506962177903518918141444517946841395147914073905433493853147424716516602081173891639873613304812518824440621465690423937167944997985992981733627104580510808410543104376611536144889262374419984278391016052058372323145795886135062862285085033613239036669752764847935111523118482438504843609342166841130247349383786169814099961505732847615808466743170211599080605825610695154282626796708970687814456735794430939717163888980951361388554722827461055388452981375494637339500976333818021648837667193462727901454817885372664847181790765023718118278550989699730040698016443143716586909792030509543037659210009126259732881331237311630696782462108265735436328531979813357735886194845068355754545427260201149319292838983081120571965129399109235781320013401243765581719475968320649410793072999052554555545238292933526989210699649414124262643679888430525733842771368620710245163524705728312725530861333439484051728165938187523656003420521849746372355781324607958593365166760509566745882739533986997951114224671180830337666076641085888671681304147308131186022292830052882216671530658335839091660636497524014983318963623592602329695660853956708317155087812363265948796169778859136644995574299057805971473701630075882841495946084061959155685025803287038254345754694638045852896936566357162847299200912201017863534385989787056110922681925743549111648597086182676864161295527746817299297324715853584072237192600280543285243076512399464687917008450706479864609704568985805637431871304222291977172416002807230414172133724988917577435526130790477483145184115164449312488253271491583345898245787640793586409448828302722588306549406692516178579052186180719393758390179897135771463937386834918681491720254428982788610297707891829490799687489980006647153664909697285226749286491051523376338381597095008028848163184002357680042400210338390640953338641959033769083470517827398491066556744757771591117466918468303884792406523346333958693860380837928480925161057021517222579127362970005887485150806245839217945098597970008849872923033924778988095120513517801863514227168457056933591400517504101814136510932880724697739878896597015620038475961695929857891693626491720147620648915730485546765281570724339253751119570347781329751287984822356320375605918296874540942194798776626598658641162395401170855337048960995161572968065960372319743811899782003024792466294596447974697405062876135436254695949126756749915610623191593139168337210912535996501662485007363592067060547907725710393372435591251999913992374690682150667253642765380259827317735776718760483748332364303661364911766536120476853976255384092191783113152962089774953319765752290450533924786349534101684800293238325481970492975321744499067686100369272041143421823537833338198489262886211264734003623459123321432995416269756286566151865403997926034285729481430309241274851911651382606061128959389444550419097455351225928915076692989299499404760122112609411399435731215256809201025542612373552130134116569083684994581291981949500713041691348732564969560458295072387880221270417708979931663173530402422490249278698641071632572164803194708325426764540219817075993825870676614112942840248040175154801493694878537547203679679690149123033672204516990817141437937615463404756628284526933255117424115979434089687043520478005138848949040551953862125145158363169780092527008321049435307634708610111629015930900952080589140611946380245177480900725202509362867939372775483206655800619090713537599280638480710629981183700122996206056152009872894511687770991678452936307618448710112344341058326428293261227641538926741196038060444893354156190723111811503577872963966331571240451206893378548870846312965690305835059881698237862378603195259757366449352737512054224125083700416875876261684031062317969537964390726552902156595506118633086414987002512454924432670592336457854169088338047110742842240493095163300068713727829248084801841540945394927856780604689979353798590969557376805844792367244047926629365410326059518760407602194783534946134257457647292002518349087732968558197212118362557963385051259282409830274051977472623870940121704274662167141063197123668728818098370010154342006873053435230482103827677316196170778003746611251934887206584378018131751528573498206236298433009750713030513914903628024475088100782847892658412139101138943593152127194455732111307978475150392026655209235661233416304590272523927400901328269812180647945434436244039416327389262231253846751651798652479230311741980192002427690271567333647777177729089365571690958109799342058170740486605608378761514744294077608230119488505229712325254952515323475288669507294657371396201004694257113621225491760577366202580653721587491416806580766812128893941592583039465530436051059855541839865938311419104260354283574080299375126841760571000722188385714085727849112784793472183768706741152110677599310767565710977474909956237666950211487925034965990334972876602851008733398952639914848428088780870825370533594632749422808134780649360279022581027759862661649576328333709809337825138322054239843350740602476342681531043939183575212700042057904221256969619726113533204765665614632568007775010251729667323500789874704594436361063062332450225528525922821950572288001804121902119809458225091397561955442622212293203485449338561192415061159288678543346884206669243254472445803067756704592267208029463063196572956752126032973696870869033138175684209185691074386312898293848907331990146551371466239111039861200994650506677614122710593103949030935460107753641854812033443623038637411177097427029529983442477976151563532439100570631699024562015836867164411971977749234425523331461323048285155694157632433149124533520747091751833782011111625888113314266091802025247794788393987632289904798743188293225615982922716318795411613863028116353035785594250977619216970504503183841752854975016985013059374643634235508490118997343193670620881100326126392024850382744123779383322455592793890053529937508248863884913134386022972242622034723595603930254605597854155423482187941948272459893367867550854759119024529942282211510404284690596643627082883487504931571599021338049470333849819719881077198099776870269682942728613638031331282151747779342457407352360398288873908325344720318395961657183847544387633317287957210090305699539540369779726946515848311927249402911718007105363693192327578897682182038796066048605111681735929160976914441551605116315107773195853170295691249354548414431769999904413110757323708573744783486377217252132478962837795784068940738131701259757108233874463069679487900813002143026993155542722292389789801738396662661670340803138259530272754734044408275828159641757738633499688155543228284341796488023490753677360616863139258328230030803308036500037662451712733059947343890809767621300658953003284744465023201783334625530102472906751841999867493401801210951114682027943555111579616035501267694333097163817481248884835036055522085467333454208621980546666544565497062498096410720043011504665962408343252077249628122699112868076418503560630106937379938015761274896926530558477709961851736267056817158876524647522004332859354407495512764871128160458759437249481047837493344698238890616257350423830478756896041936502198295829388368394033382737699437181524276505955345425860731893448666559721041813425708388147560820797760743838440301696985241668021898828584599631090437701231703723588303993069997170759913355815764821155777409848988722415376204717248135193271756513384102629481861095300508701991245037793659286664706051854136163584878606485858044527962532929730573925918517906023969853564783878125233940067065059848675100519831598370526476665145296047292960516085592605339342349494998303345285725400594834059485337467880169566366794305227427491459563765786542639596650512094480173111746133437385569378188868514626396960142089376206145336419511566231318603482229218383913289081370632504315544152082697099438893922615164292459309329469975289211184419162512414444273956650826026075438334756583908044723090197668802043473844085743575095178449951462959596400449542721786405463921172236258475928293247938014134587549982677728692171966524749611304427622418119821537673486773745470794911327978149388672852963368993055523120743230900994487472722307789779616996050304816623189207764935918127866062091801206945511670213209714915289375068814729617064211066068935943562331769272642483039523254869623960953455499314583211955347564545887294746783240280375600139064744194668359160647365038675101701129900657559215402593884511726884718287846613288197513146729148035456767075262435223090402096384054950020416956665620236298498884093960175856099321236973168599452697169732895506834756861377967333646743983218049055979201922820166765138554619909971905787702708474551397317423460672960681987064801710136750276787284759649226181887593287554002085788483665382895689650002034937215344091116487253711069118003630635897682568053518571098851682960513538248868949426461664180024750491111479517074354908385544981314128759489817772298212357195931861046299233482874119062920249595649863570811374310634832382802329542048164023951947921225494460930442536135208048554783205999006709287797219998670868214961772917519832063403359861251273712675968126620032237328543941590448182411450632570499521390243384280435103758694773902678732397090064257008906459136770452768002032765783320047704702332540193082694682644926842304261981021014743829684539451274797478727095237998476840151486200215248817586071368827070900263462670760249419236371227159489544715224587385526855145177231046183915657308878074116303991004904559787106564216687561649723285808689650341719785578217227681277834147428626924275815055514459338831854069941098163095549571773978664891508997188357924653565481602057185867156963549909127708717798239663371025818992212403092486457500374928442358602599707357495240807597170186442911497463185327508151124803230377687453276856552216871527915876960682916193214628005984190870573854684469794012098357862639751669824231726839300985733686466758828189398357193538569320572282838137709815584803268568658306049636682660762158299121890763630459442951294686700854900082739059852104667138506188061858265471603810961435738820444247207100314071540866066981963729663913891155711426871873501794459882980330538594685289844486981871326488118018571013338214764971751315006710951331372064230563213539404791828135285568202201469639785069144563182785598776119751972024695291320359617666971338674455029573865967504821491796854667730943649909237492397999465185897160455395141102346575108836617251293117334267468383623989745099605029269187460521787279790647952393039216697274429330937237108103190834459908124340904854260223743755093418280240065303157258485111384338721630125813197848925526472103477204616788285436051382324852529431422810909039537336992241467261995870393644752710890469052333491663995175111180698590502200271494234738084932113442463859744047546140998603229790443574410698046460299655162925390953246917903670993641447707143945177355342655566871187403141114871316376004078871566359867169316533143822602595120478704033572514855936968899460928476951872174551688946946891350114795925786392627290905721160093846545043569173187681810821319532965641888114424373558161405745505306820089009428987592592369140969862575554200160102761434389884349403412096826597948899039610471389317083750333290588071534907019341169724932141055466016167150617727196611334244906070994041077004309208419137385554154016030699310462183212153738280098472768662345902095083862055687425195808023257722098293168893035588920145939916127508511092990984070206680822471326607762565321337989366544770382683766538117445915253719554681143961620070072171346537499442638030420792453438123694186180130278919746130959539179828128967807062226522627379516802995859712562866927390686731990999964021604863137817149571309028000189812315718604220286367014793730012432983448138525672055767858967738959217088318285182192144155665918419922475231528698861760940755650568108607719678543091022938268051775081023440224537803543127550171126148192954430082833736834909057748369352895536179801646700133308507377366629841148878017470614551268040006183785673487867210121701967813240257918567223023487408885266335496718365844867065651361740738884148106160853291971017296964402762981204628256364019361171920558938903225388216374438355493358213131900139976040494148871450867955355778292818767073894971609101944308935746272197045173387357993024266233521154953870453141439547069107443458243870448077909394813474632913391318277518773619067567964014382006922426430756412733393811558972265548880537642127399158356174237945040319205131401526707056411856667660584485156379171428292388075668316763580367721516767937918218167846331843047481245302717076072875982388428807177439680688505246449154987143764048845997161442656545649265719532633288839087845541005332496131187578831974604694003077923507531415493312534369951308929788697998143492215338695366453557182700594182001146276849896141472883000350626601807220904781390705349980631816329687307839646555132304655748227551750202806918225438496458115389518545623104632619245228702469698807570059992582040599868137546419931896658183640102213609174652607671798137692294047440238975345673801377302824726451995730572705503988368638656458061303436560541600230907863870554981682962962258516767878436490091563668472001974998204455492087932629313916305540985947107890299177573050536409104779743159272526025200542175794847356982674795169293437910267168975144177628108279574122787712072373577977345111079668111943586096586473185105300550356952874759591596048161376106858538494345580560772503514119506227129512812205779272360695373383123443451722073812173903257212200686747877996367023936810216770417480530553921096644272638810066712822733106002381589817134537467866511205746142478899580162151448922365106603578328833212014113235686315729394795237858235098033767976340830203541110915065403464600833451750342850255957329235832230227683092420513026840783703018869565639306314220101452298087232629673595970145169238577483469386310251479069757919812006617757642713754315017238082669548670203787435575339671746742224588435971002895746243132286611047539479780760741890714213963877737610333592121397605331817633694009670390668207344685230473576712849738041359006582514931194005705724358441299446887273362584617757295731129178587062406227064100548104640842932212680718531204587988585460052585189448761469985394463567095205676256473511209993925077695431380973834521887979388849967807173417617206522188693943313251643341550907301607500658620948003527088338793597753641303216576762471806806879261160980394865006935525348538258846209785828382610140586629964224710504019913245642859476696512033712173664890468449502293173079477500022789436874043718958537307192082168014496561887217774930616515203140346068931293204992892727083930088509095594805569568718648766550959549166286804148623135276689178416441271216979463489386487602971933033979674526691952606910073883830541331130512401370481056950849174527869748292840673289075546570822536969720769194902317713441628912974706508514863379620094727619114249417660294949750623587972186011457739920798062036337140763262100096986465011740167448284116100603020568172005314795484910460116267320106760705978868981913392523787249777497812062995777823787780283441427398029233596458298259436880420051453454472591036419388628085410638683537565503845998403669516271994420678416184007129193684179237511761796545864468345670085379587624602755760314053934307372254783273989709414194756587478021148520794877929285920853660901410422785108602411027303489564398800090270602053167215076097503817541208274863488005515659398435643286971642103975573936477190197933728486853349566193456516850402078080797506767805003677201206822359520679659455897655837100187651201936235721056267153450265193487590741499895692997704584765208937977839761553076413787943784965386159192894918673283346699140685345211609211120363380905059702516074204440292104902141732397889142393232754906994029031443055507887447069562895923412360014381154239691591019168726424238267378795732491695685906128167175317356625363347410644943323782995143729334232570716246165625020697804828064351887691289564299824771194240897110450762296422116238393925944234909113523335786191298107410033434720852243396375007913349253072204777576151582226960326494361520429603991052882948066110818598265401127228648338338846274754681454484899422235770175851483020785013464605004126773198106883674873671666391667979971006453361990070443988184779412070584093149533029379691206275320143026520727602376958078871536222201704813624086509867205508977331401972702580361730301421767633631522957907044068303782865172742016031931432727545821547316653382558962883079851510732129049930098924364978486901866671530562993036230094013350419759810772464314617357108876142149620433111415088930830204596968091848717673966149812727865677608681201462755065218110221979263509035286353303819844060859219063756351694855014059106630747395800425391230503438911862888113221614938562204921700600264227357997065545316928222844852966033991031816207221033935129910639006590708236737794368018973408197193570182453258494619576668820804332265491468441180758271339184508725866836566313821798876955369199228304861924870458318798959001735805126329956796870468237208708498156629936912455332990946524365213636918570393353251710450852472416316646909833918061076956151403076695600798264053495666365650906911419704158080454836987148904267270815641611921553618160355143192311770381255368083074996932758098658235870858554688324391480350623403080052286974738696870116243949672616844338264296539601802634634844273258715081851163885932888743748862723193555159027206196019126613889576633281168449542046946837315357092078338536619137916474863463399392478171549715298111189070426258560134753873269507561080217922828076367640667446339631313774253413277528338528701132938696759114709074109279821928769734898589539261429797074327811245501650194735148710086681838640148032882877186340789470329775519644125703267044642079441700039576468281544735615412034316625124784629461517124787048618943715780168294576318099938925728059136095531492232643678543957111257307319046864658209315986183287844278327702516557119684642083657257948432244538145915154079458695123798489979284262902737397307715791237782802285358894935685659366741215348330787284444137398986905792498302318776639315754155919303946518545743873377691827575082072182553549831264624762498680762452065272086718297087082044408779754222290319163107311062775834190316501565439072579776140334039295864959252224090272988552912108103016705366331988415647488779504630610658307705671499466010096743760408451919734050165610020977609953115943091043757375998506923833241673372304977407655417762353448132419454054163760876691700401225322615279571520498826097421252254431767398011640896455018715505699189873892293370646234444195450291494477122043177953376057450376639584505428150479335971870623680320736194270373317209070064482166289818075373307712070115686561471466415100740284439796175653473201745295019399527940815849519871760795438814542721293385688518281102701842241160705694918089956179890232554518320714730314609387641469626775644931724841128459681403377583389314510446345690782171333510016190708989157612857193464158088495873087863283125246721846685045843680241045352757358922757805481220195615229781579343411176750845447333488529278520888308148674981212282329459074916233177827721253778818460869721302140032673447212449420309723149961817722403358233211181612476582879170037952911132191233352857917136045728511606895195838724693787761792986319018259871087298173090341612722027329805642162807512264834986717474150920726148734227259372071369176312382943353302419990834606671067926728350684811757928333995076817010592786855453875295773821418209182583042086011904431426485114339072976615125295222275052576427040392324300781828417266341651999526362198455135246636570245932894328384245407880185381503696649726009172796335090980055789588423971209139005458645004072418115935953535745859728211457744076034736083910260738861316081775363624852339776239465246955249207306291094513377985407947380439156169650403247411412316139482181933118165857732142109554811510394553777330607603385020904304395675841407854533531643547212725670051010489891613183334208583457886312122720876824595774987064766461369657500463495336459029772030580682824904526054776346497099322477009845344519282197994161099224996628867704699569011692597189578107051304133502289849016207899672982789555873948521245614268477034084298626743801318939457560365639324970225428003597966007694199895173380435256743976116753772738789909145566755112068368860169440550152950401580641785662158381223673075260602197482304506470945185758764392366082676484335284916806126970459513252989380310193517851377876743740551993947864170643611966398303049975103629897068423699778111771132792673118431265944577939211292995853654630678000487775705219223120443044581996101020694303173912760388260141890609290671783754795589451028481055673064513819998524323309172692584265862718095809872201931957055591707783198565853523981731601775768271699291136390120352692671799526491025797884699836730117529569034590662048559494077056011406369536692641849167324021529673090075196166841940545433247602689815059071353894899868585948497385179251846683244624952330956821886491817700262168543005699366820790069858451572826350920632430084571637232794770923543813307074826584768229624645617301439465133325044788168993443721000379227180305057375565105041199878383251440882183349019995665544337460134211997890996711016690954570403978700905141349325286417121540971584157833184592378693852101685066013447597319275086976495114427459457402577715979800010498415312171225267280295850945921233775605012195319725399246108766264542317869654850657906600858073896281160270393040433479437726005062348523028282171390451550792029586536504617982195509496878029842609097294588249788816669506229051967004342406467366274908988094946950797403491664763481038575664919278669032269931000805419447409506187382485874016892354222157663757133777467552375848698219124859285285237384234623722965903290564206978887962532770810025828012902787887110544945772875376171972516202789441702441874814158507470414147221723604124593160192863279013819364603998682040617586391075044546567638327904968383032323141723341816510414050098465523521215082914136007221976815469707229577663902100907781848723501360866840318965301168838819140210665580866102958473606941036651953168983534338246489750200754494996647963705631059590650176314232181345528232709851565523544715107531851380481455772654035214084831528673534446561555693048981917043861379925263091540232750457323366169825492029711890227638598702364744718447730000795827726962255987111279792658442070629100708474604852463581777161193972868863316488600515296228354889338333542952154364089692772381245227237870464481711411898951031380053678107161975458531336149966462943011656769942565257577967086676594821867084597759263822818470048483635717762508347737161135273933199173083764070652253628955687424254189955104233401644712709817497085889133071988421855170418544318523761975515300404851250013055089331837379003016385862555922113667738135350223542713075265939462139911261262823865939148611434163782960032720943785658674998795557120534257539334302465529249004537441730913433419325391285623778940688086547597331170853829430527373680386201374760019764309126765618491625932268192082368879499751860244896109658627418279178666836901050251800566682296869589201669191410996474299668062316475715251790721100232441472791097578549186444341063682023686381344455939777466817776113513831310953346133919403659920374648462702830430404362576193494194332456222956595833245235500689533250763840059886502093953238259433350285377813147937781318356165644219550892205999984181382835552442092525070586419485778835736251109549071846405123990008129996461384494812055258171446124044741231684120034401348486858215794436012009719599338877750785135770755807989287600071399433761825405601298816395302467746288343414804867570881314537444340916855877405854810793369805125275633615632869431487570689057445126832905554558010966333795330830665317962729073532213203752908860022700098683595752889669768616762012941094126589061155633234316590950523224735303146413155411347754034555711179502446754003057290313681103112937247167717784109688628138650307321289307653366737433678077755233160038626683623641626444645145211988479899085749761225319966255759718481196122251687416509307967017234316933356161095258674020942059092406778285201488742432157790150031727328542996157950911898595585773763347467738314368161580768703788511476479490048380845535724901163081105977056088333969216932116490282698525134770630391258224154848416361177090064565507944646410858396582098490780594981048564725970766945042813899545031219351269088941320279388294542141401622782281618543361249561092176771457280674561173612022695511480869810797205712749208094260808334331335351634247184739380800156670534995007933751484919296017698727957801297212573241757629527596073896319556454286999234097277209536098017524691647383204831467246865491890233584390430135521096684235933020527237359166904113426067022724677155200839910801852441708203292531030167310845897441249011404958553326908521291935818397843622918516808114643710845783177739603777088789903061459889699630940207724222615580731171105678120938961799831486611751201734636765087687372100590106570727689058334495649182231654944152022419644971068021703525546775676689383750657322050128356645205659488806029531134053190395033267760755738388577770819405084169685591859348265191648834574681378378121183022256387086290977659822886875414956219460617193940332399046726357621433323167675541313831879258538040796342591327127473431418922118284867333436030476327687775217924711723363370346361525611534948188875487548166670822897413375586437460927450657319569822821761827989816619083761995805616075769035135481734451681810633823874228432840209395624577105067569317509724467327935463728556169423498088987693847344701498043062861067822248615116386652491046451186834824221399848115719277493871482433597891720261578369218263785132699788472376623118640777769966148511180419191488805318266419262537640804480124309483305255018352020474119679739412120996566832026494956298887298668769961161366115407433894024804851244815219605581404907663554226676572863589103262913195266152997002237671562656739712256042499676577254282587203175024132125972549867723674151348965893992625800586317763413270373205435889653334319617375161398737917097973182303869889456880707912012945753078100986276939054350362080052946215978737190758315561798679478208492121261254104269269299972032344993244504313614267128401191932710696209511264287968937229712687980402548168292582516241391732134335341745078554804218862581903680959963865802318490058452351980115363507893555268974324074554699214595842903103013934477397222044521623470949893250131946267799134163848891706363938926680258040181832019429046643031170606335745958675266014506220193631452309848518528303239168241316278521040938690749227219122468016509827361499137109490363132384562538316564070109253094941016611761060906797658219675443719576453900677547370133905112489707953896886615240409083769554324941259900416531889482129582865449731738477832260944737596261049350641329334062019764275746454497875949559221525310350520103943192358810693743622860156505949394898762407146374135896321976160111131328516212767284529941426228299402947191060387052807568407817476035217885086844558917816348438951746387401755411993799477820416037681517038929071830734534239241487819878688369141310327198448039929032058802552289177860384518618034003901690356451538306263341196081508999501160154365465792048975054940585836058768298151194799264878739363659511454393177892160432479625447393518313651391033434636288604530633461783323394487481241794563703373901343788117724916492811578115795712309596504366729888691812938498629170190052939361144505512834378573768299369947353820006081379545912278524428849055129904092700804857086592125267288754114472688852365960248521324283842007829147707765107087750783473186744795063543849146700836181108807541330751899119626106916771364717676699683290568425552706582459805185751180938628561754916353546861941152451835552689874010993656070369487814953401320521373036848526214892452935091392051752650486104037046039721771547062010003104179007219354909287202737402050474745939462449365042660838627398717812362531090576990071667710200583954888534888492439952376755179467728701329595584765878285424741624400506074196105220961240161528659775126484734036823704812878899563954411489467856654668605129150418823659049759089943335076713953016173556584338244141463957247833192031546149934586013156551476920797876670638831889913626863364972648853483997535631235945729301844948862160891491381002218056166564255701754920022303033319566760758711332037539788625532967905164053369340858157785543725256612814699730953348560576540870937547443052668351033783094924517362967668370767041987054773608058770520688626661559098587637491325840174948045368170126030341893613351629041600573583805064020038038370989714138925559959889964359962519516309069632617523546083490812499542457780270429390757386512770579945952437063137202098118894994331357177227206948199645794965776471719025034316655545048288289583412483735034066250269257374115152263100608290305246923407618861814934128361456361141162979768150549707020558294444962650258291213976448740649577848711235903294108082751421211153086811084958732901499600746749214991674223534643133851012515560149595216072391381307768851107387339456557248441394409146980188631163832032764760492566178090945122990301351718413026011974269950241227479670313534888125691151679296177411866012501655241817787702648597124007919458949414844339011683445066291755940714286488837611029886917992532058051900568451527487706856544754816160156482941139952857707580788734397719740906184175469975957178134402788993974693075202881082529879128130817155679614142368735783240878588141327847667055665143349009338934691091558539686419266521093517773515904011263379065273374422606946953601899477470042133011277437732980624035135031259454538744692408591684874114798365138374528472667241272373725769625529022734730887886114608538835164590698756123446637383744584116092110125325343480616926773355649204442457926281550415719668718055032474641375398335076081005678254598914618078663960974441994786053815806843076477886850947334775912132839371543804238811767462893665033117952467046916453054557652800533234934400627749246847893477909520367424075059878115627607368493875539540060844010241040399129088808305376882998265625054828742712976039298222011571534663926405775500404469665554726195469654995699082275118084225292406836745966887323164302826683792233575770668927303703277291294493314167549838155301689406943230033170656841306793733828508002580965395839535548839764408614601030955598531646020727096985130304050266291714161104816185346929639429908682212066499388319795632463812043239978027406225578280124457277548629469154420083203638943947790775392059684713633975004019554986020030867951866156392021362264315160177698335751921195136609447903797434532449115009416434123929748202971353704219037935974805395453555903895259487078903989149551856414010477429012750965452717783742281394598013230944486181285555748106638199447151907369343773190742747212478219319272992076775949965322084201233686603098336822248499299904766278278716939899586692885262835171136281204193810071159155029495516052428186745975226239253654393991034493726920762504858703518260095923202233102966167295459975139231583709023896975591354639340250415902630971030030188109722882906299551577214376364130299005410686594127285295994008129934369846845047214547456280540274069386573266148552395441911002313375924575094583875379357810773206694143958007026303550763866733896066646397850766542397148813002521029692416824602804993295591494386075888912236496659223314927360516746362281493711499540899651079878585911573267312003082941033731202089466108609860163201067675911921047877941791483628775167462106921957452055831958389490719662638827789880938158099079882343270023320468454741278576366581384666331978071171847265116965432181091866091678363039986563935788184104385586713275412235551260613729949311813700195407975895366870693159259525462228610266514648385062219627195169378381460595457273681144526985104478770652549121861581621157346344054565179294979251469951062389979273040115370066823351651145103333949462549785370268686674353282384246665976340973896315410904265231734766562757991794164843861285829660171114366499500061271338455155272162043887116500811795022049753792259877852930460680846307912277276226388785390827177384923282871709566598994801220966208401992975066264224990155280831800034645133210620243685430576429907872128961347408152995025954936225446947061200139999515536241676319677653948946933181496250383036649564679236162001132520946567421755357546114442888216200791516654225544230765190180193395536483430230438288557425997251620953866663724358517491827585538526447647050924513360394856637533851662671315893301811400387821209461682352992682916954258012236283091747919219975355366476157581711560185998356995616781816433668752450027270836033836515271609324197017151693237895806763496541062345982925813582804140029707759551992902864579088333718401221874163530450997442360890001664777517970007856875134682782563939866589611016769123785521106631818467398295162544479533140180179436220962817795711317998552254240199484632334639932394615953795149085750289418051956883250999662758084486504570203195194663410644555506297976085342714223615037383675627718632008378736908222443067535377303075789990047094171135169798681134563526106125385874044857174430788179759841555699384146720439539988749920847929834675828934116396851812559072142965697424449075536059151315816382780190660412883702467659939254323692494193172665930630313252345230770954756513725608269952321913522651941382079900915766075807764958314504412848456207870331611570842894164310616938006320689531723162277466200473184112540737499343517891349369810267920744804114667038687761771656046365510513430738465823939219210069168581686969720990186468010894446765775299820509763524228281046185961591221210119651523842590926983808093538429182430307889336174534513000300815248321155925774312142765219416072988602061923937996252910228100076602217300581076219830878170433410326308891779041389790894575737461372162829860033438703087817945104376058664481522207651772085252976465725153230921802568873757007150777731064187840589312332318480815725141998867896576735086669170479712526354076385660929170862406188024848198925390130684620096180179043811744692926621627510411643464901664574948424676512257949022298602384655647996038703915628476206725630423641663206391190780149049770371054109152700841488862099102140367343072467083245740449118189215580177819742910948820592185874423553840366024393624948650315516417879928003272067765913413604140706268992854670858252601049769570254771765421236680813230056409321023520497670941492622146972522641243744846380050847250095623320252612014877920479924964841066032222551090440709048776882740101462766292731243666642653943583317641823279177438819058050126441894299277542562791335403775957443978411311772303128924582012249160731603122372752213650848231253152964618030272063854843528599090197648956756855406590226833822206684694319944216178453705986456211759476059330229903663590590219910400444763185456419625335888995638769057973202838587062382296019941028355647861773783010939903335831047370431043771979018326546262668548515625609311265010288791340132645396378454163264569798330223059871048224430543506352206811471359778865756452996209057876731475849635769069896674718251433164518356844351127325637840950999771984874774835374927860274538992456195779700566521310436654212580791102961121008620996494157851737430552168010586074309682082286349283091988267827841265554791910337404535156685080674392110989148478279305715627373927077410515392232788778813262228153446031867614290425886424388720666477836747392276619438559301065663516417931975305522052666652192725043999928425236304715553914039645374382232349849371460542101371921768866970396243078926102375135421794400340164584976304350414853730198416476665750496820039851387244685740982561537027831903436450611727975688360520704046476204539488371312334623314410060936908089601163997491909671145163853667941444411574216622371803703630020838126739164832567544397527191060610271842051913331421913178643106071045635111751607127147188147108712593387854058329098661046241904408555298985379111079960449786351815314920848503780249378525652119641143255323793885905847621695286314610803386098223460648787683170368161778418554143826901682495904369470074584220579434917231043743452014292412079218976367258894853179130426292602840807441891129600149933988076285928737195044587251310353223083889175859691692324037054519245004995896771544864954164267895639924628218024902542909750151241972212841935682531059426442873798066911465256859543815457517019884465062675267864901448862023289802983600074929535007066518269661722214086895443983519268702860280590267764119999279338570125230922037488101616697717496550895689110581252118570536187727899228224417866482965772121465880640307023745325328414052999454736681860900256434549352858704961274986749882706228310475940374862592668637700953758451849113831807751214909539068855886692511124213860705312061215968532265656359860261553787651088840507554267807138094433640970773771072240354889556939782159765467236373775329298380335423014703475959615278809124647417054040403247533795812547825928534639218996139405547328008437938598252662474214347811966054546217228477124932462485347935891753729742192721894346324826148885550236280672616889885579667011855736631433496308247486652773996193641096364313499190199866043782727882375716883763559630703474519491949626375187823283250287153144256774750690380770501965508889862060610336752608959298977456845799162416669442660167349016266394356656044253788392382459768661860185539369266531497936799928720945654609544353888903194252025823642895966912578428069189305870221811789234924253472460969750256754682749394246283205705480558220029813202714269613408112865006118807193313583093849143996175485627655206232629162890576373498426003372196806146155852594210629928722487301648834702688678154293507214677955784810506386254497539157272652927558925123574384668444397123587544837220693057135151716438841705849691447895228912695011838521956801285231756098438458323165462111788088992415505030918645011409652264099022349861701525653863151975330709410049255059297236798710351301161351341667128206303065313835212822804182802655612879594143351976512977846849601359410997826675341565486428500776106848419087985821075881695146674811965774980943319516150581194465533464445471227400783321935685673830710762738125410154925144823864628600579012992847888131514953936103778773966266709171280424166638676587216620688082392399405367744003494571042956123612158409541802881350497729101746084100009474464848515001538933808791308417291098311029283615787908260047190956993238553212978285628703325269457121273336857015416346107485991071611524255978736369101373117374928015331751748093095346031344953168612779226415674315095242392190006410027566420404521101825020424672473352687307589179334491013064775676838100901615428150959422578990462315096389986137333008589469075014448899233560989130270498422703355632143002711367710209724215180710743702919481252645765804148442977885250627669227607466037531329238697262702393548087236995758709313823844971809715264937142016506942194356502968348753496716396954071418402691524321854388405278623099135823923419399990689821848119802539482372471256977957302941145208502018274503236935437136331798660013661274768454548220779295823508748771144734590475214700004401957003858785357190809810586869237449649946999160541624004947307497430769550625366821034133305818079145792653086861191265816476053393861263112128222907798821108783986970011422481399857323450838451490950879541583606770114582035043506791575865329985232635821568866845811120431453571668670022659412391306160712260261615279998263772100686235572224978732323712081832951995564588376074549845981131528035252248103404866866235466393566326581336481827920527264312101142464330268400826011877752167392430241435606729945919296418303983011720004987085315586731091343538881153544281849128468706861857637932956003897802912766165179496829191910332568505790084257277195268848185736269792021019793698552665247640614419610025549024597860100150572657471321891365352559286836369649846911270840582486569162314699682743594299726564983046482656811580382125668015129721410449374515015535884615046872704584184251418159183940615227841615444438048380102808176269474314029372913265498329438292529050869233076437793532976038361457393254310108372876422904045077714533941636627652189232470324728505333035735536355601265717858154947807122561804211515854987492117630235811157653792984717679593809819298112319492392224421566954432760204088150302321143061917820255864373275389947978514343433341078451174341212364063141980243706763599380981177613563965259047950141758387245186742414467606151543888910840360577361271076332402811231829288177262512269445600017049737924536629255586810627674937275544997408793123395667443615076936749409630898715391870154526329621191275506822637520618572214984462450891786284921789240701390916536416736630227854070956088906652836349367833469068625557441654727616788507580244947000755569618636157273015324243986226827153193789913731511542464043214012315936863841598307229833698601239628123315455657216609475241914489660034863920431948465076731782194461074534364980177190945590647876185609492865685921480683128717768027905031441939134373914920643754359471824660864934796583963610396525238330291081209903423536987493778285402481338756291547739302627462245620458618875599376376732185960757885163107608485751701842499602810754048744959471621714575443422738157051237753158497163158478599041494777494223583992541958053389709916452988763243015227862328839963237809085263518978636689534929215072932752754671369582243433634772640819343851981716478566416875721845347296217520579366868736766290973580061267195258647918935951264429632880019760639717333478907011378847968955399349992514518347237718614432190378297261082041943977915787316587519928585096159650986625891034295318450643074795394502055818557481967083337611338779085999766657267674890519578289357235277867496096632699237204487601910784835095144538625382440487583258707623175051468783465213421562363415984151741519550931552602296403453087296373079554055531833966798262043232608358825942508671244367757817238819631281463459339789045812897250984518584813225146008794825511988877551766331494697319608969540997019949380993667787125164764295192422341306573031832891425480757909795532221175279914872011921458203196294482331358240034134739546920226510640564844809627192245320198858346121161307701975848733423881751277789778118279745711443954635628464224662574068911580109026629049306630842384939804868867473175125719920018821717246988816878094351667498188637858192100776893180389058345457719036007126921540926340668612651880573081635028384166963620466131717865360009314072365916724314472435332884537313015308217975980194494983071894343749609404185914565596523767295899317076257531352478920427282623520558777505630198088314835263010915683701316775274304046919992336039494119236367237066789359480468833186280013525824575157916610644297018218345331536659548356967630941143792704064095339661363298261410368261040508057018801983968770111087026752005913877144231296216187463926879728028615566943028886913123518859149708063997975525805257517437880022583710092751763276024179468705291448852681230302744907914898276743318392210216886771916314924151552685888202460419023663447094526599580963403349187204826940516474018639120937936991332219868342505433518512835302397239837706469795358323668477013898165843641683499541381040284450528067744894122433290865269272541000264765042585724533303043592964777032682462563650768533475723479372389636117581171631401013463301101896086897386733859814429519325710743890922622390110067314516198486281611510054794429573502337802801902134086968476853356724817842663165084365944934284373914203698882661023828342520182690520973701877651196817384331825709353937027336429267681598223684174082009213582055990907433672190680192026057471955283838178690632724742640023135979556333737857791151356030014084174251263555847679919050949211260227399498015718860106024379183540717410195678345704566611432544652140258152793748876883614057954336922400294126511318101489878612811099002553714080485029950648432413079788251017650172459365909037845950509373273167560310178862295622822788009405721709067459891411886076170178939021481964010541984394768272161052757925770754797897989713755266563481511273074522894953193325506795157547094042489686668823273412816729649000251563808041196193709298011039313572745050187515766131900928974494351667106710299417677621953263765845036747513385119758244052878479333409472907048939984113236473212948772715347074800695853705168385532015906281714864198494221388739547600367126149609589519932953275281676632514388434265543285439512287904430467802173557571087058737893256603984157780769267289399459569947996086928316117945175435886527402506836621819338530110931365180169323401531606461845864279579681678182191817738957809045836021868217166947878277423356906686811287296433130665313487716775113691823367533208498302696372576994757854422093402924244696405745586464262630119192492587336401995845057427591441537867190457297488202861268994518947848918538672145327210085154722314392659738080916558921546343628380798867863500854059330800983771535209506395723009264932163380951263931729405550850064348510168739414051963103594114771548305198652952424465771585416392835514447195766808984475227384284731090662588486580667991538516769556257863420191481380553928758536347208167242906934766844244749842020737325782386851427837857458034710435501057050066539868828141337194563999285066414194636135093609085076497569561936397709032168338038994811959678581994130782985945788424951325874808290692316591482021073191173951113289106525120754638025009382798745904119687564792130834519243149268960976671606425540685676953653629784337153705914613595291421414937802794394764224306634391399581106559987717387451158586681980238987371368547638902995201105158049184761144566405910266370262338902743799712464923840542414329027300638452776230310225311393579090051410732553891711862812603045587623365517356351443605458240651197781476774272640780950513804196325239192503513756416769384023920197386445295744687352466155378796719039957458731105600424583346204238912558081244594971535060919189023261412713510194865426513575847661860575465978234401491593305414910990752802207612032649571063024118307836980842959382531988076910310495620744078027428070443456418031270814991546201802645210222150606173271665118137055455615093572785984236885409467907127404342921433474261885393147966232726748278447354786346698777294006513551698058985102801852353458159083659506057279200033049886939231868414720348266081600007393619922735523841460659251622053929496379611347014726908747538128141360423091557975898650193865089618461351081217521331691539212396652207622010006809484642924934533090855890319854421352861911648257373507844927325479065147079133803765350271634144618451017934255870280831640398371019925182331875393275782739052031422297739193715293476278314864478881778537493287993275108058663471184704989566338933960737884057184543145746061170945512587759200118633375392151848286819050753074413418273467651558865485582076913490758841747177777706560991291728705152894741850059740235930599535336601234674731808584958249947066394260512029533102238463424042800974662033220621956104602540957880889497528242460629615955533895160381424046079411360458442102068331428935701641430879096456235642625651474486751865543938032733639619405063157637423537038019867751289614768807508118503755750225348978969224866500768909134286307885275113135526938255350043864883823534902709260582726727114512787879774531215995975775442597606886348991149083889321750754156607274281055030011124017535448274989981383365846114355820076984112221155023292436882968394655987521143680854995936283746644464641527716268299764108962790414045778189224173237053129951170859304846247792019885545898436485718333722188362956528225602980690938749786576211046886107850721831334500216009525999039311601540305933103840569342414864409674593433226654584776184497653421323364406339916101230188647547524555711668604699513711694929173951903467485496963912774472227505439258213119141192537230154940181901812531015864451511560778173072470516094020494344404301414025241147966463342673385695315146841083893905291778892296080920301363297582888848680484938855811307640481819557901483101549974378095779626844485629108625979822912877082964297284860275554804251397920982376360510214095517423899091607790489988170185216378703680029218714645650259803208072867492676634406510875184476202364230558666780771573954798204670984731590748548604714429240713064216732179786571212256362541019132082467961185055221849825077375613033187696253986068634750550557505965339460670798258723100842081051299606206463546274899923173013237019263397677680567801976604013217684145722763848084705484959703130997400176763333844786388541578898922329623230772902148696072860554403677741323103901496486514226602751697029151369586246406305566492736402892123970221847248834214011056220150596138732688923993584689850140399408449490050709184064266183701848792748922944788647173742125213041709904278709390896891678407872311475527080554883074140484675799974223319359957576904414534914548607470248161566065746048247124414389767365004434240889096548711448771589152731935564323104572666329317300090022556835900366829286002320280386453069970127580270251874370056916590261728000301157037682692050988690770431456900904565513430068392347221878075884931009773423802768180632327412743711303475615096577755676382641673607905571032142713811794803776776461599308227221131038145349392146045309520102834552188185128270471038982763028685071541668597196944610139024898029457480857110011935757541829086017576523934521786051732118497200785103686463310563516279604878784116789904903510475574336630882723805011083262013901393273358504859075766434093760021959788498379605841828527048499167373915502317859193081005639580509958070237458430971033686649182167063711503932650654298695871989079464843386469216383668989203934380287413647259826307766050437972506025032512568217002351150261541171885442270772798154966750528526506116721814903101024369092894698666355126591377517250963100795803094625941602584017601291158659099627588701021430231380764632444903762068686334532578047043076596688461946865213792654238054716058251290261605216123389414310305424449611402514150993349971335682802208574305199181351576612746611081408282037511350692063402700950679871911707270033078802745379546072219034755819963334709358084988723339338755841608324219863609915579415632032790885870576630240249185101554372596464273424110730318224328034106943728400328262684372852032127287604680920925334644132775864925725233477766875966751998171248206209293040937532074519738531518181031640517205334885756612332412362691147487748396404601288576310434526323537352398877105194959715459333759583722055600003757573339501736046822555393887526621130383920752325961063624909088659415379871084813035097401791996100965025215868308763324917259460406343808922111384498453000816679979255174454719793968440514264291992330983645901770098252471692580184371132763883675020703085107169867614921084586924893216855553456028198210978033755190596196322399978068774843407074953627969503267197639552126705653793756074075802948261831162268835325072977732914597224816739457526298741485207992365559648924542476353062278592034390683825930316598494869613811088211642103742577940344989865309994750284928765976664765537021022464934819033892347548636371291094837976575253827322151201528665156104408125290068660910814985527735229707769944136839219386553808411156774520216711973405421544910728792370541962317474028146698372961086381624019644041743220320792679664669113309412850639517021006903482202303185766781402242882236808332256057252526099067314046188551075607705268632659005284653548448072251797145817453608022067930439562526029346514673761706902058633623848877461258671078724199745595626585554212440702080736940191346587614910516937174433027381915661153780209504233449210124381991667796308654103288666861061057470880379170802368597847576408877376945374142190105309197740339432476070065521154934419996718600658039350869612317615748328053434549440592616716377626974566599558494759207447481355592770183228068096634598069344137857007909896520192556034989607396070207907784478523733311281872881763834020657990565392834486794493997686857257778056794687402876715119744888252515855602870133977701744786116972565110723623372811583606698100234101489568497947472884513610811611092644046897603976726832656815897416392333072426787029929043128341686660389339361232654805296674666128166046722598576053686886516855505313410963989349995095137705996545588656232420444971676844105951634550648526419772417699379452116259474183454620401304578264721334839090963837612504821155495515811636673185769517091323077170815294972348078760084360777371809263656131704524613546984320706817620750443660816862665897950292891178730687345462738513276140075046876837354195571187400219421927487906979831279799482676162675080872841639283977407172540086928713963036604572987875714927688709812858106918770788666101017881681093501803172095102451084744056829150565040503526541039595016514782578046524121877451015049982530456069798236259921299069214620257884770899218629621305084892326382878348114732598955563301803516599059492331736741122431460360533666266843561338751412983440366679733557190576547806830346737099850920561115928844969862452395244852265204157284612624715213016521817283645410092155059047132449331327840669495573272985531825567506440834970807132276511028294308142724659071810413959738924012464286692173433144736677009818525762165874955955065062566385006294270409286184825312823533850804160636285202184806595932408341370333930896754058934762668444104987510763080635220721515058046295938686403973854225709966259433630541985589238087079424028843808222859966253855716173932872909128456672477018360926423309023669649923707318401694258674244285160805950903209312133193258486151984277089945294159081837919775716692675456201212426250766440233724408091433814032605093710716386930032068350746517736948309906206156101994274549301664983833427976362909743325747738387241920148602414091416149794611030483393710988780462044836602188751958677413870074075066646228355430837701256021629246215432111616810785325126854896173631311665440175018919241989810545912470764221334591133874286986115882132510671393796136250633489202368271243204841098228712717593574765995934523360745367768387177078270953814150621195813218883598668721463355200180788051411348977820133175631519960196728795961227528464105943043809515278915044599546543068475141350667982983574728683715440358689443147083384988296762202437503683233192363377189224709390113419612703673205752314381272790972526589320822088971185380599504185320531236900323713392637832485194541481415422942016753182604128543408527686490766472000228701603996230394045394028112730597755437785792917339539200019701520308018216836321758397431554797817477636710439975146221591830384617433138501482004087420270822207396460809919173194971438528802906907062574287526880596004695007366102127979217680540371659782263882553907547144076605863033033853477027942739119256108340495565955375518670574441566432737281346054409741886730102514849122716712820916990705066471413909705004507377732773326134789847608382363162341772990703816036149984711370741713171239168880440774712713300064113283753921811215254821077751817862249747951786962072510744574311135676124079601107329018443724240392345942157036464041256187935706186336269366542589242900077592064627388228081325140331001219158424201866631249696195165675351997919943071763930832154611576430052400045048456228249294997187803396519282545583107949079526544141613841037079636621434821513592997207398060403675528062976705909895858503938239852286210590685597846630193027397266944064072548135548522802357880863752015642849074050964848452577702157473895859444528860254691132723623084427083693913420781008142005216798024130194632383079937260436101750124575884804126945385110426958931759079043165691649587088228854697300828550319149308937532619375624614945662690326095596126933818785758689488796000870274085560363877711728110101862543849236934855758632718853214161763373574981105851059508538688602099120645998451561909591437699368349644130737696442362296701069484052096463581950013491304047827473168500774472630558514530130386229895209791912674279223239707687058179891100540577992048228112193162684766186740878538000963072810026570281868690319722196302799503344677948858707961079805255433027351071775371780078274272518094065262745983303843402714337028253254367302489360448353319874303282173265189466433286225824856667374710498393110940761359854008198686605833687569401521654270286437425544885134187647477158360995416283001050539804642428954246036531106432624858204162980289132820728428388129409554584702084396978113921436377556726529749088673082402233334184949459189021875725660027633381064752703930096972339559783039577732898260481114690579542832997016996476159512901440784121518751304912122237783510386173692346831421377994733601292372090426238139384760336149970065489642630835670872681497597843459028163485042976709279807349879972565173677649488517146297764728239359594231187996811480906865085479008167316597373984508969893043421904408370228877422849859816904565764226706445513762033472548073071033148630996053086360538953848489852572226089458090002444412662302292944608508177487265390856290381168963752166169577694888488034630314747391427116604246895177863215234600025942129023726979558175690137668823985378624863753255742165847604269120230164436446005781488012090332324501374974841046334629160701180212734913584697297274911531708317120283160493898928033648417469338423074531591953172000989976108540013079360537884560372399088453477378487013594807383320403011453046279870645123440762275864192605796264197310544485378536392292996378900345181837257313431889329761283666804735006042246215244152536445841998249344932784977504048004837923023213364932957157253117908352162746200733806242389728127115974715251951367382087751598957632019970825519872990280957171581898945702469527503856608219514742302231828834080255333404160063367104991595445585722332532766063702298118884297239157811267613728336357307564550362843810574404002731061451292955635696030972911213957595209761574607593127421958185518352606245996047309295747710887586012883145918966618356724165147339355839260436055714056884350916513179673740940256566413153481183237517942510181451240169699404390907204240547550405992714266729713429002306255969839283566635792335982493803192711183290855099062167686482057995534854732555262027268909030101520583445508408286290013325433133974003211069133881275514521213766194695614956087158782533075298241397330402681216105602982147997498737915943432552177766346098416758336778060155007126621729877416595881851018380281563453404667752169209716686168685150723683192320408701073219592123603633661491311779627146920864313393848628456405260272476676452242398340856183589088175636558475674283747412016289944634941928903004171401488725055528441446181874751707018779822348100241930478590100496826705570297211099932846915636696665902786870988791458611603317891091455188601198941363875324246620946387634678289265792797768417633566798523751224718548351525554951659995837501819852504905161393241889533907750489518167310666113660264739057616266287967670246912606515633138100181823673327267803785987773147632639449840624901171052726346036741806592611116028820042489652129201794775367181006034447682196606915851435915161009177174973351840437042677209068553985156581635112298900305840166708331137684554942225266557033525637921718102143142830068516696097471244757286197337630605587514299073692872309622794713313341698957619070082801687855212781169923075657453442741051105603296097022912643663420628456722525541545429070029789793937736382685266683591143316302804594661022032071486024783816374732274731722208685626638080721252930794503787258150881108565268484657046777587991424586596846307327809841197013067690305062080909706078119393598774400440458245150395871941457994683295633719949371371103371895752616955885636716836234487545773964092030882475262309472434042958823215921933382294380024571463201852345978296053129859699179372535123818208423759409637661207011436193637607932157080172270261983379700787939472625953382337566800274874513171702803743879570047204314083878298072986368530541660408436774935884805028646894613123252277521891000171664172579659947126915104770498432497865784847528373457163551871077738324210033487459556512550235372313757706099577683154298141667498939405856894154389368434285930815042914682571358034454203912087859753035287580071887077695498474262638307401564952288528031111615645952010794498211994987100802769740757990825316872242237039852784940834196259164355322372965565932447367787931946948403840318831410077084532755283886953101599544873099503043531333185156195476045814517431320660360860600372109741951023970699286077736821436311126948034765984358459940528729639281599390662252540139142510544643707676826544521508578764448248463415314744616760028241208457855296041257881621489342250889993620759545231543053040675553395982456129003791483040840877481850955606253100417376122094079673740270475208661469485193518466103801998898524381404338663246738574872351941285867255054234935473029207516623245825145304877211806827078349647049675745593649391027613235757148444199958853972741629180980078680553494324522570437072320350861140503870631750114016322425240053901834703751884206544499271764613660247347985800360603478187683671917693030207036758727006412515751821403603556493570743477810776634356938337483679795239262385180226693874861212166857742767812700979239058323163666012501492830836134061079636785718593289009117114796989586311915572346011325865909224274197432788087834538259739855473403948945725633598864261665921295738012093049974567376681304864753439120504329629340576792368341562086266948992026249971036349185394544914790656221033509485750670274194816987844006818446317827762434199067194039439350472852382935059267089859452208889134467598636008969246093628782932160696005890065749306161083101903118405210231058309624394156831645372589209413934487697860285978533330608535022205411142147300529704885671161451198268920375514705310161031179153013283320062865653984805209113686348093342622375447629539130353449375493691590563599104191417672984258790033738848833406228077013296618475394759392599687401923852855653793478155086752966097384156549479627931525826264398197030404514819238699674328079774927447835055229560871873951531095026738652838479175274861578560591710429884671780044817480167068476397107888264281915089609904257876541863855562115415690914529463675490046904459924861437371802051814994526656773139482387414189150025497660419252826544624463848071220254766191495900786561623132807853896029384299670814028348676248943152762747651561900007954610424948832751184606812251467074040760823586384747635967766192188413932464574842465855145907079935416035742312963708826412169837007932966952654244205906484697733789441925674233664915008659729479491811141631047855251434779255044251142252908660417473376744758903190614464768786740943589021780148874074509883764054431612467287157955502526915329524533499998136804521651249279485491417802420304110218069978621275427405483495016603550311918114288514366166284353171486306510578382792158679863502775686918853664203782397947562144129054089446510273506392306473958219420320421811776514368300587795399094027989759414887881092745716610974949512219407657665355902644461118807631622621465543115190452509968027282448815782061331724554171578352894114647801280742775721075675773245989505665068739860427156313681201588293513066134689271382403262077438282388767879357306052407763827992599770747781326370265728381898839629938946201532147033322177886633394529279249645915972865540926155762159449964381289483222284597547169776613068873435638597097713082674908966773721941965040805662822551751751432611920231836285981191090118303655765902838948128376360037593225292494401988623306449174013380946892051304100122095648443638944985231529893824348084972471560399688710821141206894497101505175266329679294376420232635977958777301028654190323682388148723166724480520022895731455602450870737258836516855808220522415923932277293311647182136668314943399738417403911046707623623166177118809366584219057194616311165468710467892717137134507969753254125633155629847869273343675918282310202629658051327960278093823410094561080212817957993466698790702375400758597401431543809043892506953362845884286928072605650760355007049576082774244341379037595473224044525575789953350418118589447812438926448058313099161697281246838849782544403019309523806841765446163292441271847102529443222878352063750835327807128015675501668396658758509424939675100544921233145431902528243708840539763155398838404686027669294055366644535391709212041146586891949859714126224262030504626100046797184070014035263486715709149343242611596929864824043396852285496216991236609258538151519548143399219663455554130623764251814169597801166034900037770834737210265256282307952652119787674900687900343064590057688274831950098319518323253386939057448009793024975696743641138611207594518843987780746534469686847234819369801250812769833339551890829615173463479975080553129652064723141734974851548631850064128184293494656036457270765340826962458152113935606807852737218131192928806592259459570703425438706219397665822350443833984358972558856110212257123895352802892602284711020043416883422748225029188222490266587074648963633230687600612335806488541288344462546644908479332986535845720563322681646148639881974013009690419139260939344847860989897192981027291034811861720750681209793789368679932400820279579561112843352850749800597921703818759241245093560611262216975823307906888985404652706935475692963148236464381427277758044310287845788184277720931370847317944061553335365124972833073112360217350181703236297352512253201110073506630316819190738516249755046685930661409411387355660631241958892546916010688401670333158834391173583417299965316034111998105805706511082362921827564409592554275987743687883128133457874832976735815854998465629346543057537487123588209615502690563858250381062767625230918536766027827106521830301132045248746541805249593232894402503166148252451123656440694572883412517488747244384604688223119105219389040133419532526143259161182768803990067807540794936026162225894036131886628690096838092084655146728290088965927601526316108459939731399183184822019225951400782735565994973560420073625032251697234259408382976135669806176591668703098146185519686625970559661864846179283722150889370753792829131222985992577427568263160145278172480408941509591195218011447303163442633795653328326619445947082249186901226489058520624291697171478559282226118077342195503748035404467031620138353383263402864416765420337422708157739884278466111001456718017616821112906762772581592030835214472164992413010314742123347983210990343557862644555345164680875244294902229839541642289765845230506742557711727119747623853361521624672548871832331194509151169650617869797118841237738471654609363521245500792285918658180774284378827351253853001011199514591386118864923751329388306360049831536710935241941927662318055409714361494857101022936259458007949165842259149372793622165414502036490334763750469021389840149005933261782129856826921129562726079491412001181553526065355636041466922715881536672569514430829359094863788830460907323016884063722174072880904880711103601444294949213309696316759662955298623470909491402726919039997349032474644469317564591102485280685997588383687913622241681572198827748770542773477355356417371860606031334600787208458824910666384997469410679911275896176498684156468514599815748017710397118501908401162129624494535995379797000632069276386021410295810736322940961967438311300551063989884817693647596649548281707530712533689142592828371248507140270808881089874896338326042402820625655948251204285397161224800452583622103463698528667141706366524414874835872461192034105150087956559950904169632507575769049823802965960661955879044815171808546363073125483329046210303911412714019856151970382840101426541154089712116733551330291873923880506119928430255146918395511219330429573025399534410177555842525815396003785640178319505210797816311061534262021473596219874853045487317500862999479964118349485041792176162516071057690848086093381201061991495469848498884397087579189988613388298042914594378154018181918208941450070005622537052842170657145485370978637747376503981353664073320395708490377384028001944879466915749043131654938256039748070256455941514756811569701430833697085758251431822809515097854661138810988311967440961204935604372123755136547279453394296259479751498358052839050304775117540454008720835251328805702850862647965629259595693613500132756439858045656486262070042400458992097435290664356661708243861169340661552035465011730939726183365722138953697125625366515055679991050775033162390504307300166345946179382243671445420387952987430969650686682192221841793594207565876840067982709187209515976321910163381282856682420611069944031755248110854926366061196535611496584284977909354137154102798008604653706598194647638336410032406178479692955363068743743143069063523324003585281342335964212121787878943433979131097758423188965739557733581704693023774767894163789518183704660565525931548406627809286999223156953746976975849182122721639967324721719859000343267390265876057521666160900885458218474207137340968900833697773099203693531208446538406312424666701351953606602978288364571187895062103360578728356889791414337407599334169816016875438058429314594508451876236961157132997387915341325884024084131739546517499938774715385242314768314854978466237104983945906919438245916699645790771923397997582323633254041796013242746381498442586360096482655889418389138304433980955251379084018331720851462816450037477013308429774272892123913975692762402841586149485984188049360662398165265714740832331109118546159655211412442386789926115407606558963285834691133786124899564973935281819532566337067320985157664957761446238479969654784815535221276321927052392367206645709722807771047300643226984557838379982622675592331454824336497636310390329537384169499367402930456889765189334578179488304540590839016609714635122420520707138707437658316088148520860462213659082208212620778145758678002993372742329609746874034677019603178896443419830444962211654684618860785237180398705413732218742261773802498895671186197398105434054396682331616353721004744444307857467778438818816279875675940532218851243752821889427098760857885999181976446408444214349400410646169822404562420967607165240826297796402787968570111803697541505035403789313935178146848543205593819144375734304624512450107211813291529572025407711647985622239795841292553876451423029499562420318015021915139731873402296589128816433548775862385328534777125782237954914075768037484932043244249483567116533136081677223789714211866310199653023263095553726663416231198136493269481508872610914530736046359027935711959248822458288660892507607671751797456784973711148240682928796702185561779311245921472708850516016840537098852489717956642161250784804794855046245895161087346155702911391130602932085879016797192648951008030493623556708265254359722733547986816706157237348541854659891135451043774505996253549845197481809477635785117301981644928040485354282454454409988028574334894038744699080690869033648708993336517168355064937367669762367402134450258743336088688721204359712969841013630594032226405179083563473565586898477186121680619881657667262360671048988955196976622510597460650538413103717562913508455151641983285770297548941125966827457052500013420773890220159200398580345875510016627522455066615134208163613956416234749585294167692993342889971871106370813252662624063982930181601645263714244305971756736035281522534621775888851689023512921559847445850779083346951473066099194661175059641077508825373951094766897571263133771290664785911208300759413452945811509264406664037818633070991067496067240483161047427237974323382267613079105564569441880774227357945957537506978081177883400540316997177385777711248707079836879132731955114960816467612727444019143719764004883528665502573226867085374968943380575260973787519943414072851478308130487546180880398918899420273328348618599489621823520554289138991524777996057034617970257411294310032028931368082029392706793978080331058049789272794931135336839651460362565394245559887807155870648245415055399361762466261892969202365674865170889276634978015554935675480653120449242853565187660966706912676362666132576743721912536759417032900114746813064837825051946809373847702722045932547231322748820972092498744150140934875514674589350427336979020216220846646987776866456739117816046327880118973492297171607286548404110800701496009850233591425664413435691028675156695877167351235307791508171079921847934968404295261773111660133361619810914499344622321856079747707183232333359237414734051393706958150434740058036458032277740444861186623058532822043439459649650378656366136300843407515294907093072236016354035096684213657597282580900461224465448937539296785912258887676955948860976161539932402394691725912758889796833711429518148963663443376976866251095876025591250268877483542796288319837627676970383763365014794633461719334791227527254060306056339769734676982505801796201488081542596867478270152456289746025143315617963556880688138629921809292811316588203772866793962006335937258388212847162202050645246901335828572911116278046939304727587512165535568484962660206875811049716309916431674879916029849567967302876739033183222240599606552005537203676386420260732115834514253436144307506808175646006800943956943623141000799057253127411241253187009072377333045593014312664756162618249089349237382389990980818982846418637840308599588562658584882482119347378339327070379373390043885568146326351020647121393981460345999007178004444208104281370372722299648490500167250480948554034560537755851087822512370823064647144121717440048391173282139993284732195911087365660878269752485076345108810067887991407205873012321939755780920033038582504442938980337802400757089776659324907118263650754968107243266402219824027755494518289148527841076114063013665689233858983482094286034143278546571357583119231735301301138594339835051726033069867976958623497867539956691009657542705615931066458877373681509715545601532477379680978557026503546805191863176800564359889505004124166561712926656831837274280254426430674840612676864451046181838391531486422310222998134229907070012681442158161539089843470705599850290675975252250839732761215444771874163566203391202806389222129441684753504171025121338892814548919156188247499554849037565288120915675779728243540556733121872398478048543218592328188541380239938316143827076968637518958221588555978887774887002183966846906151882070585527351703267129806125954842715097388740252701598583851937043809319225066203617777207586084974222906789511680566518792847777609592814474929106015546118440824022933452318322107903773145178308349657605450299023494158798453512307790770006590523260004989536876160763882539183099013097390660294706661216643539215308989598098129737920618653447805706969441974814334474577704073817024314600805875857464488356103613338302152458339492497057808470768372184250395641401603695360265350188982323144942697961938421431722900637670647529775819902625880868361593315250304468195188749467151719053480549636629565230030895651669331512557289766046144603680717759052547311681977084328079524450162746159955095748097516304084392064353397426994384006899445320863655453893723232201543823188226874346776987485657863138065093347840096849545475225842968683744675251163805484021250419157923527256568578970082187105179678887248395975915607992950585798922411238881323824371492144743747396176300613591610368792256177081242364495607267384455568431587318594368829196689965629270238336391541757338766757190613616330666180160342740303151993978553179519363708920701812372167403192221162310078655713670590989484901053370988820251438813327751849692432112328921734294774246380722547345947655088789818036200712663477858987676819421037519660222743162463336044080301968690700575408382538113960050240530293271632968167208507087794659380585023209593922256621158680782708270064635244273552951333638515291410589788639818540971029884630756170167405428434733050867175240768013233927404875872298191456111725455619335277114955596895389315544341146583305194846383276001826581889182806993375499566491497468378488906503153089293877302563870246851195266726912645020802050548662193139056441318835597593659534277523860163277948655629179814081278912414720888446690790204604982456415272506865384785513189667601898739934312719962916290966698354086330838619591350319802046464521022238183185873207033948463144517627445176088797318976037784625166492627157900419603562610080226046946256148944211283888458512957304746822302309029333480112109222279242843592606972383793236889071564995325325029308897081787702347590488679459201485310352392467090850036608857678710590314461474097226745749508383934747732168698836348688708115866948595884007466471131646139000105252687959941188989844690362502791683200243515202617044414929676706382614409442885500745608378508045494247866095152102882130897742909949321224615776212089297233224315977920663475039566746829934114054372341406507116218133038890473559370874262505040590669813873715286308987592774934591566342396782345737683707345866774787242088587451862690228928913304360266802542383486738234194245252835210591704233375226491047623139540048536323427936326256007655348444982769444587838416601429332855239756226513458060183181048541815186346385628135006626959713818301421703039488600555795858034441150792358698227345347348504198882858584149806095485238324964456965905785331810533472966530574890081905446123009399198433056194179095128714078142999611799801576447744961890088488891740581119523739276127011281665057072422055847393496200807695903371199557755296796206204233052827449555659199535355634727316081255000394796606909393776224079094805725289451232229649343222387441849024948157294901308025708863241334894807010862394620411087428607164918741045718023964996499908565454982571320519244294979799213369241349668059504891369183060514886559066638964643476818656304691187853161044970787582393782031771302145764422347548594992505647480292106619666137720310909973600292951422912177999716954668318666172168308285098460859696423908703459310913763942159596849060442460066057858399090584586091175700128234880147607018475640556062671890753538539545086345282653260258108755827299261091298914309541596860095657082759663677063239970328302052315448075795497307684230994821828758967728352930320538830442713100318958812063954409920525565487733889761235544218481828070392673899579505982479580499407513341563965023486181714804493193839880176759086918798823176190772329488916652945948883777952321757465061586099051469900316893657382560932319447454245720750609621740236842024651427013104477429799345934042294292015658304777591408951611724792801848233302465324687715364358357745835141527122343178258680632742491128984608797781509524945427561408513619333247760839965090276435281607877018228687920708024484042262597539631982054902757725145741296759592225458322335790641512176247211911494154430504298301978028228923186909917859020689078821898512941235322870500628297977647924009216374948319315068711980504710007387576407372390497465752211403924866164222744910299275619430888107909628230160668544858883013235251843210604233906012182716084593390367761940229852091186112567901601833126992566628608109312897322405518413375865349013021753365885260091579675225590506517215401380022652257398056844123621438820617575264955259340461194749310960608588785632154977251389663698349455254376142286857973941355967789320848415305773718563330288318562248391049805307804120964354297696562247708310583582384572666554407373336870767628692406000308246486430651781893205403557329140017224932659676788682460038920745483524669812893224945251489590532103538453431184338468747702034547408096794786347114682218962744257716699883978822661628903462409993444416000008953555404487699898255047989191747297392796943611992869757656084740275720698880889631907233515860626394423416241494891288384878326031986263649853355469650677535035985879330861250973697228917215096450806592833796757181565677367518743051494213592555009214857280823774059922985418545527015337133042376180832024545121744249952830414719966341540809902706541982653412930170767651574658850576573960899176180025718409215896948108008842897333977709052607165541756131039996361395232281560098325512055139307173230270660019013003185820112926215539782228640201951515614449350363964873132996041746392646343421199828743638681391760207874250582387960477450708598827153632887896965867487749539754666779162774181503699913739978520261571765738481032482102024596635135658687112210480095573346994271107298692364327573789179146643214381695675933884651799447150393614440195769848722038248697186323450267030180234360867012173770173095297128257382626144100735278793017329426057971303514767129134313305613798972860927825616440010977930998346679378947144804962189925398731387553725392675680999562138116983748302863838572352939793676378204896971069002698483889201377401645358315669050880927418709248663250121859193923412642765771657710720158031066435334075670242460471639067088509600327397122585503371679634439251087110995594929238809756673809290361051662664032456677525775096742510342448530345954151943265206605748717010183111213145681595664010591749001399799230365657795107004703402433250236599874739210556546115555617003330610874721743987107285764653078314969553501669245413410604782412119673559284843054151684627363995047178051303246977705882774550831493946773810711142121931357077766621861436884401086279701360483681464489812836413729294684231027573834750088026400252423664833505298396852934227585216870717481923632104656303094585345978809704951399128828253290647142090959913177787598316817398843739742779016967826024989683346604352239072739985630767022178741988190297499034393763788527189833084312514429770485270735448964111385167732584821685089781336104157049832645867122455493717705181727966484396175848659434259403416917670576760604514143158562411834543215175410082864759512115883170023376642041440312377702706891526446520331934908257328977533022272919189256531028461013240861990719253149384351753570438346077833262300158291771077764913063074820231032293740416417019511431529423642587494982857219378716767680264495597945194127306331264614147258660732138114483120504178934451111843949251508732118508067189294005250179595794325619993941692624873533663588172050637745489200612672869889997704298776893852668733309267155453196734328216509968071818017713799269969243984337109978340194524586304787998286018451969326040422078460837852146386224057239904444582532634298380956950677872951942059163293705246819675294270793986417183559836772304017112205692954216927260813902695670763088183458610273766328557808116262880878341734631732035508056575383507153826871711986707118058987264352670328382581846108147101395376993385071690458131826565715415784214248231465242704388491777016209349120782382486234948821136872969301881825648783806590690105757946989156463294541940952573163766721310444351629817853160260203113331842718582287735378044096579753718748193840860441214569151046938496564660449803753095048041718623368588048784706469597625473019922826640598642364494646994084949743288992161419763206338043599636891902057352276869660669749755056196139904792274170557583499070272430716521789937334607495473207409951270081717980237367279279631056387003646399175346202590510032927991863207367886721769552839937941470325743747787653017710558167624352352717314858367835914030869571060494397462072382604315946011909714077915304492583048011972072194726473704799612913094119360512397276556066158140798793336540462575765323721088712857876689057241452604977285756942940836725147356868838371840625907906978303343638910047321887624147194115551035983277860738706109311500885181368241479709563976769728795902235208992483839598193605551081857263009498562619465307103781617859187550829934905419472512402628872053963389716813510073905099103611338050268709159471048039881035135420161400034225119760994424641039558707644617432082190989555723195651421183178399616275968134503212011595396377912070581894799608834775418788857611513068512851272522585044817308726864379187958410673087161512564787815349997983513221875482885311526007943631515017500812415852352739171772387913911032320568451742404796350956440017362456888978132006847661718390685308932944780654425370449456321983364208916954108902971472148070328698501684601430807784353779839754756620319225419325211546757859111641019297475902544279122402820560972064979618535876699892226254962949264836101422326232875660920196033261446948448171208400767200017367278159652142336689922962672217976855226062766925920176473516159768814771169570785160786548303661297323759366296202284274852572019033945619964084153440336613263598308842190168306542388178921869510384009848926733069041810197270711080108076416316238510592700853644867953635759909790443387499001686744433290374422830436653159373068937031966562930834985389270362231904422385736714173576802563501472664731358841555200908157827010218154292844509141150308168353098797451999412630004392323137617542335719099692330527300123365596451182096082237314045394638686352789103868484742816701625724516658296684285137235102143103897728094746638261431382770227954230900456261522409424988872738377424948983729467097626566417231573939178249401627243002794742261569041178875966847273596904568923222289636240386058720805082653891256822919919719560278662496899966699742044984250120112250279692161379379908868581795050038804606400902874455789768185166563173641203887564347187808468379991259614365844209174459543390067172898037908704336148914478178514552977950171499764399449927812029495934481762966212393028630664406440361221647338085873395412743210235157304984268803729675896237959963620321996764356658270465997981215357948090087675956012954661785854116653826607851189766834042890908294216115691117187034349671886780531608492058140136442703769164087485168129296106508009207176930560949044555252715607854350746746098817175990292333873558549457019881775845656298616830857643452730341771076913722309573461758272753076007182327470221993254911281641817755859350141001368351074513944570455578999105162633836326528583348579961548797908838473992882349036085807490869497359676424184596033436512526462227266936611026835110837601569226379284850567862612024103430392009389648799140169250548990393826348599598929329668542776299756696004180645627534950519204062157612302722589944670148972463492230294730303974141972664953316506815965976336585135418055625635172703155341895413082835576403158562782713732993282434721059780304945365029980198804017530878456279375541145655735855836201169277783094810048872303285969991376135707294962284706094745899793827416551034825501700167543471918627508251966388583035579119252511035394589020405859881979956551998695553781918321815484313837525483443769347495583838542108317526368336433217642433814645532002991803194631063577466778792135550756340776233329953710966599996041888223911089464634012106241398235771021385374304592430519505684119107316699202058386123846037068855871923904470644721415002306473008264319390644292030046426907469425112076699421022233900634406375345588217721972638364543270738583751307366147901224459180288538417478361473067416454059881061799458898417308491109587136681228085447137196366675570901798234423067638663907095324848257743073431121173171254467843630188235439439959728192708033170412845470454244212924083926805919381324694380721802470693999650755423912451913187740435809065875415419098877666304852300411459473975071032120499297211019657993153190227129913329054677544700650179682132876050114039245891641789180374414745016705302561895719085996081810006721961504262372028809191778889347841796514262664573132101181874032982832717800944523793836960143872605841502396726982575688655263985269578812293283205175948729277937452071065038018356706155038021782629713645837638528194144348326301929197895136470066643236187916043461608763235186779648945419624672059930066688621290277759252101823706600699048098683014574116499088138043125783072314671295980633171702699940053313879012402105928577362498261756132423822273135421953229547803027350019157336439621488466810345081071435242072258984816231082855530108487553757148127567809041576452026717879527431258902962726221904547260275380416117790324527324892885012880644893269181654682755177178395315669102723755647873845190653650495191451221973346639789347605998538877417908340122872951470321200270111741988896110126421564714988235661508215553010668383810314946557179721269420927702565962943828647978545354433869713038359399628050507062707754871015295644471754671846613182311595068629570390616507112984782504139262623018873629175190044028066386912432411150026664864829045234105440431718652393597906265218964184441078416324288587971654576675042552991152967961951752529944964361692113477687534881380569600145436893725109308367262734597002305587591469069049818010631304503048358255809507012646455873461513246288127315334122481300726425737515082499157224917958619500259747663077102397732232977500252992725914616361942684778516079305454418220453381628896944225436420215268135570418990030982558807386219178208607063938086604203151897595265192394671880829712174279283472840609580206357337736124320226161994209033832718858992031955976310433570998066377129492942695221465172016579005674928933045580676730183263230331416163422430543830374858063076041638082293935644319498455399298887435057273704524267849159471951315500881891672697760502495479805939288888567674102926304038731715145447919677022658431711946765007782756063792196350905287268114150403514165168316706563222107755572337535042568682004851982409520628927333193496896817882520059892643170766698392617507394922750172272611333633660152827848304982830016693350222573512636697239767438636798164955681726054168884403000080865322465245071491022452456246163355908243667001519814592984349195731184181627623025671564979457263581809667760424224042074678766636586871238969898396195898505556831188986572509300120104925764916388299275956529785099809617682814692166579443355541577824389076622437330187283517846687782231255249147456547031467035545996641109202674798505210619289779797989766671866814034252698035616155231733855099766007736799123738864286154624864367906660977195159809281897046607232847341342150730207965720723160278135888948738002971531234703879850329324681027397247295037064928801539902452246790581512485552339916196994481769039776421360935885308517132096123312993651257526103989627666967182706861707469948883162285312050103071877714735098993291710089703557549347418172009499924581597384146473541521974842709219917597685751152172699899690136996668808567753435316894326854823881228507362419474180611039152797748747687007449155307308718559715137072633951767873090502165900368732368532212820317032511110452095107505703390849660826407065495975444449173199480767613302651776456819320816629357125994804216225470855106955058186130424781516824987004760115602759328260169546015897532665238557712111774704774255088814511324410298997319678991040277886648098876296715108477051860380353298593767430298494051471350393774193169426175315892521665001936431698790749828204491563776746743283777209602604363036577711613336895217463268279786260101671529028899373191756780896869794278436979297898871117328290446835417622490023779693439153118755397659310413283243541801836551327856776841852479419141055967470231666025210473431094001934481944686310667911735137915669218730313101746475571905759949704422354184136875316196993384167396198960440471702036193975778037822695869320311158522449180839405252215273524048741340450083593390315446769930485599749933024521818353990046453905270172858836562293904625310428075818500877003183342205142512883914779095849269268915950346877552611809173858887804207522700823187902583177958565447196881642646934971680680886593495212801602611067342178876570208714534670406665617693722777880042089539186046341778010308337467207346996270137446824147971850394066528033541188846509052527599843563038194799371179242398078874316259858406905303906945936294407544378855616491191178308030878497693645746864685700450026774756216152889390708591977765524257909070469853677485521407955182868355190627438933777077702880871292102292624422052776460740752344277755277790122949185029996360653809454482169775224035612263504987700786686542316725926560914920545285444543574983240008190136654806992793003799010961856874719175051907772517202031468292854113029047077533611966521597113938227802398561844824566653137518891566924375018972686665548159846442466692043031623740763801627803412630745393873656619566831135679494562733914675468942475545960691539540235364678848881034190903144389872174062655981608000085244384737609478344519116769115577887995770668169056445052501214573373920104404542055827190317165661427412657788774674430592378611659784919510486951699687374491618731332486204727517517007147348949269162508884793632501648731829018436587759483324388052144339094465853179667868311513892570759314324284301094252127270806075713811519728647817803102496326706902559594032195745618569123285966972026697741635789723497623304345715208401164743184333180923385605195672184845154884128136692160952223684000994605939105965511934734293014380387338794430109017273026614422581108512032431577892538031838621196379960111482237718531006832125540930842109378540086005880159811202992877907069810754793934510395363798612373956368646672608141037084840922987854576144404109434421692048271895188381533774249228796300843658633537799928963911596322811692967322439736543814430831550318883388058226597401271446489852901119637572408204137061951839318506522925910653794863977667790167616086873341283910156267308435704523008570460095364878151054328943754570784295247102133781369942028096121419400754346215661451759759184914468536608567545823424302698922597909353392884862398643346884349366975024427582262766120308397754477395017845880083373975117763617743334821827025090664976713976566063118762704377836204008400419527601278376190337571864809578483061801849490265230446191462046638508476584828858546204158236247044755290972925143786246847881642970721162166046995524016666734208410076038629617173544673438340425090131826696524536891373416486239040352328430086434914389879914168816027234001230922725251764594581237197087339205754474830490897840779695545837017883461479464067082001977468595673820183285604342525734762527014517583942250236612235373941756992049435046520723612766124472147531912182070135725525892109698974552672025964194716599401793696751447739356265109193294197103445056082531107020878544513921792467143592470074959282707307056176056292076407198815570029702427828483989597716980373227265121942394900772206723241533560752530054206605413128094447596551222572187981356923217083470170631061410684659876181130995100866173896047796571107220124325208228067356501461535533940164889064191654119790347402339834734669727196892528345028433188658331057173402499906128929099208432517361187814933803896704590493741705508888510725142522663572997112561087496210869394839388726331245326732892914748691105778301672838784582491229092037699320511003085647512092317195799587317567052848452997547645751366479804035030567965727241902162978379392958090706587909951515660685304590384736624666453918052238371169427110455429807686474551339862698777656031787172987904212563045458074759662509694034098359609077661227018632287970381597128903889089369734450103505563281794630011919796236195041944253289080511036089912344236843283549158998484068622466861757282269210218038011150414465445049069492811813016047990760210648619278315822904214667512959592454612403296186357130311457083451031085672729868482500111667318335549942093032890087554089970930481113996109264642252416601591120332114988360659437515179998355764559457076192996233440722552562462648986359857456798951021136619656649222728111436902780288612880899643626754837077168971997756510690867862464361982907625936531888069675726409996659764439566606880480919867834100177017529516918502261719679391923393541390829382068552822282416430378691777195161368030000148025915627678814621327516390669298182084439120911930412787810459405709442065959416044763551992300041617649909994244054995389502756856632862814585879381711992498301063648550274895545586803684984940830060929043597819649842338026836961011114058502231860693502846847956594482798984958650101472027396705703885154958055395904574521804727466917165757656181128726772206754777827180893080967841399493000211340439711242620716710523812929961903829419478588815700731031692737652810935208742999279282104344748607571475403564437542660843026916558027312812213062351231997079078580951010462284760586861689960219697705920298054179006528861137896233831155726615021462259572017281523538145993366007819802479426108870239933252908428344449688987549187449004016880133924584173958601553932636710522911306632536696884269703062214881303453071317204688370825416992931935365881569877231239172598262681370286122537167079984658183302080900023629569660688317184828499354658619937549744416296761381245883289927332866109825701991962621315257913880574886820588494383328765431162447092145582478413349593654173042519372660397798326214149647210904184907825018499643202854749530966555939978101738814421896725824216454221798667970122470032325447591426252219916326446173331751825579712116824578497876909980414624133064572131523759062336797496133010282640573931669944138037714207091219381640503971962322787960472721284493137853894086594349855275506139581695626971194571450975964238716157594559642660413334310044665928171002155948450201624336804905063399883045292031016414754668216726701927476165002093721859381293415428064538259788008913416059447486132474109598463880385111627084870107977777855776801905084915144010172795433025574476302767445216177632388710627037989882244889775444017949251229985123789696005138449252614376942438787223761542701215762431013222806287159983409666963188160247606107168415038041988372245963888251801178224271208256043035216526266239179136579473642904375682512454749852264536885909216995098660274204513866111996288193492053330639244358227839643038411784372546688622864533943526498708050545535835099947904173254026317512278485481003653969196725533312152819922868880703002965808635708100665318298735329413788056514233472454845897529561438371937570556656331580198669623232385601924396813232910818287292951348314321482824310876173565278924934161849283928740008844097779027999048569769479412818008798547814462709540112104002474946682954555389369555476887881940106990522411311975106608167418363249571479601789900798151656886141716802326539297843825359406685382417183517186336529464204022968164234306655619199421441285046671497452591454664973839206439198362576852303585491182756804151449232910437976537023728138899661890689634222948209462557851891756434115935833330603162394070518206676502028326097596170413986636261681822703431909821872186669538502269171747501180599497215693470572630518589106174201301092214832732565060545385768805123352816407176251581682094704561635564145999916857038162812783085676620406579328332482669484056361434571167624803585164469685072133295367686142585637257632608222357150124504309952786764444181620096832924296849060447284607485294150011838860498724205524633841847782534347900803397132213643951507601653368064801386577516448808032164497854821170820856755108061961715364905799538305804123594267400661884362969083880667723788654970178514400821140283049325559649490333241180933887717453807195808916982608692473610683314244812773745013197061320599167981828358244884516162754336615054704287782191659992020768435646188916790495818682051881811723201276930392707456389992903857973634782314217697241167210338102966279941866261683687144524145002904203639235103615920311823880200483405104087483953561659608094513078276318317207701431907815421306056853846838141218833055582939544047005909587491765193890900399495128315761001761252484339907783284238932428814426923700549000022075719641865843216896522482925234228856625594322273865326891724765353265409256733540167734413419209347844557950443466434691494845091454583536007763424507155547434564112133795435066210238736889767493020419757998249569341070347120718572879190781472781858272516086106301871296690870310606495998157412777189379672089000307305253836098817311590840066165902277425388439150325125431622088968855258874495097828378102619044433132414923718339799703085927709003419528752841896954522364507341997034416427972514059405101759771702074860105744054936814048587927495478694030791693943173463111242651089290688188120350132816950443556361521854223311865151753051557789209154598474793583677705362982716419497550086767006986835376614984818182225178583584325632848053231584912503174028818979660926444138781277350885442413506936045784565135168035369965050998841694193450523353945274393475048651028410715298947446955678851527500506723068502323104058224975126238625253573358961681467259636708608356434346771269281402188520130932800159463327170039975234463231527518701833700928634122999809946831463138630702631402713181329628313526427140349708109977804229130133964895490776266937281783891648754282019029500100668107065317336591992000972220833670040445910200938438544529428396401634274919924268574604195961192230106289411887094748888833662307472353454441249126992439645486263917314529507860058016425568277775583450329991340032936594745147919696376187971152206446788445860223583533459604888880022875662687692618283458880273944069969023089174540370763550415237572317217126683752244013706663714896204105826124661242601641386495275477102614528115505180698958830742803134445004164921779885798727314905141775878570797882961882332283975726300557372861136688463283450516822235678231278846896326152386759962817150768575769519492972881700998086016610273028297226822368173293168510081460842765890993656787685213248369125116193443520635924365776270217480637303222578671933263781563866217534827313173484312380012729801095538443944880399698078532348363585513960712640619098613266930382786035676118286832352254123996957683691134652026529348890735370859065726372209335848483603141141077825860942217786257041187966606311308878460725520963759171286400871407034743772613865472915826034285243437254512506918962646689906219570565851295032522587412908495293250283917211384033915641475845572683001151261339715998934801227121032675013746342205229949430094204352095565398776662649755250212811125951437211477277227307962179120382640183738272194268797007085107013481272829055802466017581314041992175320445955441238962841393672956787454859934766501959729571684792708158180841050104376086067637614704441553117281529408542595167735196240204736844325370425373253862810338618394722615885058336246089886119601637092089393437018506421982180476447755431596456822572115861890029786000847684754530032040763902649410111290395307152438935759772438868608428044877463735821726150753511950118064021284108151836541751226745991418902179927624751905305235457379299998129245843543446090187252695582322665464060923514401118714718621905122254340053638577101960342811524233539586077484477014737128741420205211698542524381660966573418518734657241669121849522943737176316174734296857455437834603673781562282015166930923602045750498822943845344266164952816536824306685410806239648889614576168082560213308331988545908969007588101212784875554692349852520616547461254731074814278555025665209707549067724174493496502104334323214903747293581798975303102339548116745070609810704015491139266730723933382449412976961020283769763612415074822725146349375342538383115833327197016448325942651647039823340811009303989548543115070125316584371418643695963237444888536360799347718376941091812941376684153536890175855005543478780954035950951708113651790729029139366700599613033026432890147572684910236360178424732529513769773527373864531209678372990452763691943697001782827358367276454959086032253980764245386137035073604215337574709800844592739727653559938218600241063195343964604423040373270016989184299524742256836461506425202462451482253064713400867851423743922628061239826882277505476194004928970766860127664415054312337455540995705692727971194618909533502240103845004584698819310550762368347995235985300601133348613437884501853076098035932478673715319632844714080957792991658094165035008062236679030919115011964996829436276821144372586221832453792066248570009688568936815789160662536937951052842370676028549179483726679907081272680667415132975434110318014851751389284567955109554546751171075067108442128852266518682712258388723621933477756854765598555015404501615587585467535678318523253399364185646354385764045033621207835806991628264963479038347875600258844035357233831960024848698513538622138059903062582066163738972177413731681693994716820062187910544361194294472476349759638605900384956674974119622721289539244010367430605821457530799214827248667552038332890071514415000123623767860030570580146166884787236641763867234131674056956697257750878655951141842625710677786036163548003859474146293057312616549557672954107249288386289688042473190680950976410132523771840082847384851845950054482111754334125789790342168658607289210563682607729718955262113694521397792785570813171775269676436013989546338172854008044675414509678809745686138570252028936332002315462116695372627871283200269743071404063586213237583922235807502789713094496290015788495338874433987108705137695286074218294641929902325557476629699410401931665198136446987146006068975942418464253159100559504431424664443945624867286806289100046529174932702879935302063713747606579145475404091604671306374300501285211766962906234726960450654472428784425005917456770873424895602597688079719486783397549325010871036287951273172568057153617366645918542148430872668126301889628738302332138514083250151014537745204835202707502992560323794288543191465423747844182029127087498150083814467985018189499383868136802141207821249549709263029163786167289723775271299973943320613966739806895128223112292369920925309715354348170662710610390775121199238376460437559932107041509034017241778148241170641929607440598564005495413957399423045523376017414436227385036770037658073332673864229560418678717950414874790061304513691388275498574935789235505406401710487353238407922463973909213329135836364896315556828749425493416013637947944178946061791938172384728009575886655205680613776764859654743618121296582395627643333291463229613703985419729349856744796004165136293016313927362855993414504707618524162781978247260560184744602628157260679372092879048968145792211832890545106223719245474347820369983042094718865854312814524328541762237679572060132056627109083894894777988966636158205535978714463511998228675509617091954023624766382650752161795464172700530560111834877117810248063996713312185125501084062950963396743931459288656704009874016051269118450768057812628019606105568155756284447448439532200655838761392844054090737753221438880275533523974140277471203428629758772211343106167330513196154030642937922748908551280355201277470710901284654533878621667697707772792211995344883483766559204284612873776288187577103238995843446990380516193210611908972727030100509286552168966024659373423845251584455806989303404392017751128349309315299213391181357178431110438567373241505288032660115963682426647475515518038703004160432742817489210487429214504913453546284399149989000091218163269688778795994408140136286540621694818785140958427642414835206522655332840431345511753323139201242041279455965826288525174908364574082964413056536279977007917144724250364444968077271217693242309224223803383212890273556098293900601558362933090923173359197520439764756828150207693832292160460531558691319111442250392127336344584274701035217943904408780685400530517085325623357385903878372269507230281472206340526484131672568667200018496364404935271807057276958594430450424820193988782663833694261489032704953220516722244875103677663745413930668260884747812199702483881452500045981298743592953915255644319912361921273192829628925594766125107843857131797970558572755739795003251033900420492172795769989836707815482937577359670803063928182988341529061909492028607812249184649432258477656295177796824948799417734236482077033390543109047783123633263664225666668219768096339313371815648967184760849393362114933963051687292438225214470866408261998382581137211357894132139331752569757229153970995547268043556852135860944851925427072234060456343535576216802557475380024943045145616831363072503059597400243197366966617035268722670133384298966958094245243487277118802823534713615024040003173257557362301120836706856711983950589495568983815957530582831448941932670417539752018775000233693794641860747637288074934530977074641804386954522425405014694903671181282069904829594344712872604495799142577596484086484377531668389752930475751167038295576456541915742191244397247736191877970803070151798366996729108868394991610305500462830998950849330774716546016370021344859914552286102242477238106613597744305498511620191671254787845029845564529720133908755394902171553334744054842468046735306785362520202764359315919484404162015887360466924703991236229997989079875785697009513640436708045601953842903584045466755491852053153526010497919328615212834497764769573334007182655561728765158279684915384036449422913828040407927686673247069669660617450779336333032252317880898890864288533746987723403857015558721642303268396975044825422418489716554015466092637164687455249782354967571688191583446767401218922849886673686206394664266349148684396932615523111461040894697940863127908692487470826771961969631915286034744247028447507974362317717284481556568720317555516935207954320649476721657418389356358987931438407408137900833974558831637507502464655637413121901593128651054858736868511495790645459685227468088761124844486979355028421274150701683196093752877518827329938633914153413001129782279473854720518955404171531523381706505902236132458653478254045930979837748468351415220006067884043478972791116572025919584925382646193987176226796152452724167318975923091672333825039695189814029979893095796655350827201690545743596772152019558449212619860823868347470406592034943632347566304028408578578012142304157786885741440798614089132617545669156767999618235190134618229640437591846413049345877648276731153505554120874543958928082096508551939861015231131430670045489032953154718527892428123129125077368938992982515819575152474711817059683013827862092540474740377929164176257545463663214908565383160263492030834032879145215197495235208995059579219412350799731167234402007955753715768320810058733483335620606697042944335333165193160668062498247082746677643896033317199094990603983838093317174376393127546433557709350102710011526251521080811609345363597264493471801527177798941494133945157111040751649017843643795171618793705331740968845498443587836788666053047626761767717495281000733914596837727288660579226241027307913904413966408441673593105070140946973882376761171278435608590206230247452498731847520549023552025505510794431025690502819063571971778072128178724433382026634973492423539340538755502964340075421592249456096486005563079171943850135749484381859560708115444485073133520057360325582493336900556929808974741155019538493768095660876311563888038534648523972489530396536925699353739786284786490164460618299187821149916905787103313937670213752297322605152024433752292185822931776557927084962634433457722024777953741511061814132801453018874250901594615836171791743999740343580840187532024191249523854007840723486741207279866677909064168805603011978586028987750931746063431373691819985589594809689928645199998454387589170320381913615085389291622020429393647297019269467347244288847681578148208001544297724852033356331871671075050837915439358448032440927159997274892513634251499138555646241841273454571934613946955730004654334263137818993259240926260153228770627123558948249619310869812918624359931265113805776316811222148548610914327276437068088188500372577903612868866289774068071826414760614103570100631592086522460220673304792521860975899255028088800829156201137987433607627300790489262361605953650094375437951909269927179287510742633560371254447478705340479597365699296767240202402386097107692513784663230398853234855715237626733090363200787591309557756337913401888594734319924674600196590811660145014591331272207661034373788050457362851194218173730600209059772745875436942880007461347806184655957835508450619001204589112885780007920005601636848053587042184679180291592527514010530103956941754327195267375119753909718509533093559238217683071886226366196126727217465656119163051951957774277429999638812131730349864069020777123841697897868931950142952141424659188328965164350477166607541823638172315061297090043854238029875551630129935918928597068880270113408103727306135291389208333062883748587572845896696986506360548978327447155336439350093612656998931048363468608839507235725706656798336415105326696768462650177209387556274231591977483825016683734966703466416768530035532314753392266532123623527056468462723300348322517239134253025200202717995236592696437652201333923015351849737191532512087466316079838533228034122359994085756715247681172276999840121823992171092554650015799161857459776678738931494870932533854820960757049367463373283814866111213337315094001293591843638764072310636273120366922393150221360992636315777378488945565072569051141375695717065665233905390334749482079244167699277664672889117592607221137072443582452638100978220671705070331635180202974022445041923659749643140769875056646488999285700592184706094722533076847929292982646849864870986432216347469720881718415503715892501228681997182726399338232361523455805272066349350374691210095659156699147075566421706223535401698035575826789575828121015355882740616295795692239291790973055521855052281775491907599108110661402223675967129800665448494808736654586080965405959139859466973542863722506351177473143175827466107857341744773284771920206581394719043167541852320863807074045611654820043119920533787898771477694083472705562312365850629699717696675308767810423550769843110524177268298775534919061066697568588113690304781129887486545270588761341361331142338697594142552241458009147506144257688703873785058557336707126103310751882522476809354229109732025650667649692742749094557146686524580711643358840618062545042993411822971284114364608623493273648040239878745158552273599080774689944620352553267188254466317457859871131757598366869753015252471800015877943350901131096723547915995664761012991644748769764994495271992540446211966957825960171586822213301489626552218885711249568112924506365045049337238189537156444618082301772849521915351057189803952420441197181942707678785078128134077355402600566232240943219597343301408439371442172079709583828865742508975221903083533923336192889373275433021137763983321292530397819980759187641557344036387802066990306816233635156796592998925714020517551338772878508713232742949609280406518609947952268022048274358888223386816240455133053340454245844388084566525840476833064023018321901109874683966608105976218723933866450976769869314865573377998754084038063433311578651128507190560925813207869903922010952848899242307434542619795562722880113236682547169634506825593094495934562280160319248159872325844933641202632284648004884442832780688839305655755320108105843460534828345938852657160530024287733977855017776535716397334741063112571610010150485028855552398890630368466691645572989491991742852020229073121510903598839279449037180050573216411961450132604073460653702258124552384455943867973096136479935092768351412839289830950531188152412525046222774626601094150104630939449362657133427946407392986558938918692426445883918133219540037021157164888060208715591128657169142915650852280848838882883644630677532595124107650522146731105040741531862508015825460420485224072006629754802995385425560630942843270619690632657688341855656568196227235804041054419291299453311639400415032785025626513626684959367167597738360378379769747518461453610493262792576603739063033295114006031204751596403815462183407894303664569466985924104016198091633835868670245512965826410469686207133587239534379374179067573704353545326771433942873664989712981061624886583122288333145851050665637407537902422812748408386936953624105989473191513490703585718977732432928735973231156687061899453226331906773011727888174664985130503510868350767437318446576432218293638199238146462384670847116087206050117067135749540213434253349035545397542703746764075778337542603908270285468102055493104726379791225788158206075121797982923569213317942954937212072612634092120033713135844301818580630935260867761417893100633509656472059377945249810734578252372926029986531065628501078856025647278671268267728312306857723953277142616635745187534568747900946439600892778060051525459805931474193308199276392417484318557162829279900480020379575932810129787225388941839481559563701294459731182592635555382156898830219350279180049597359363880607986032469819167099068860240682422085379246122482847165720616779714232236997697435437248222669146467021163166975813227868099504683145195604528647320413553154376080666132031612757393612024389466561695838944891142831575674546896743077874432208309200350258182148098651500535938731055561655538459714763017907067795428412040027813126380270230552100594582413077329365675519480444661290130077314341090290383431566359304882948635903150459712734456027915982515354253856403630427278975622861999273290460124354320551053173340153913671745545446323484489538119857038080789187268693519035648487364305773346065126732453366686248691786675798389710567113410728011130459696016122122089403385457907835527503462279872985428300447345280505078871344995571524483993435505763670084735819416132792696621055135126562678777043632576505878602822073523280787169365023258965700843053651447886885752400851717694896026289318492018799736798607866968543961205589245790946288169659311820452333894864464029544150634761485472445101607975907700088867169080255317304759880854109265883359928835535413889680842624613240340066429495897434505495611920150538518046773067742544464049141792859206367906017423436316779812845330549767192714301552882637817827897850287229301911053140358656715125563983871008346146933185532679701440395189098301512528904870120614103798208249845806240705605469794729670426870156677444405101037036854677533241806490822091820044963196105144777374832226426291695229372145031781379789161283712407873537205761261039938596123097321587979249814605195561717493639799068400322373077672759374075304304154586941932093272942541399791475368758705865443526578334109784071205193766724694160044827892534605647325418277895513729780061832904439150732894835640536146657644024738207406214375243982123957183353669758421789636957822092479456743240477443229926910272898942357093144460264212483835330167449020262440172833468911958353772878339116204935854062423233447760852920953314039429639173969898364754086825736791826454065395702036176289078902461290265236114581912292189015583005772981753957891844836335908737031775592357271911023432427666378128051281377362029002398209337129978058509482223776527358133004366670726580181733949292141022195603858678202022358262672749005175787353108045588838580917662557067826934013771276773833741399663428061074246623561802251612506769172997068805919214886017820485994569723417783490237749819530004361923880506549056701423521971994216250762273960387164576956598333046762584982959815710068389407424517773440288910136014602142073058078886768078331629421522127277332149524294867786940687701837054852378788979576787847609567168986804692524139680993151082933563385604353778315612993488531910007353897213442426287740850960350337167912936241869629847380910018485488982963753265564344415588474897716151385209762253401569659503586389360966587135534048693375060120768615393948873010417035912986740025874141643565433300503389090163218291900243032519366097941409556441460299462534149210299764785902756116047787018796472764508682754838529135119323535172140081653684931583156881384506198567430791690124768972892383665842677834441723787734880240332863674653364258211937082802583922353702091959987795665764663911124240099462228597149912449183410079512384390815820287826887188385306402313502459189917135986733691429756853484395708656916388311556190592263359578438493150821427383999575715809041587393019243100325072916146427601811234758458880306994567494648368730919716092266117672155754356836676567629330684609985802546584497670027968667609538633321619023417349653810345501968658803757057428818590764262106119002334296496999254009948630318535580567114725318646941506430258248838320683927029519763786574875391357717104008052779013916550597728400808599174179658983345254866265982476592672303376167036394378859157655560335317973059613258022167156426854522502906163581356448684913196477557391606156912530484163201886835902189017453991687949133867424119891177114632351596914571555712190564270412322053646074228377174330983386066762426494764312329907231338426208784828056527652019922208366141946771985115442307416137418024048625931031988151405966058737257753998639173258180977736718074244778964041491355716993951847645326938244850076183115211597046246563258115973388563630211733425354314273362204903713266198623670637180063206394618606352576780511083475003449089011869805243738017486694500895000235678613519576791146117343944942910124130711454348476110094757293117256245308426781742306777109854041415348525410390209467007582172259372977847978683824494862807739221326850297761767037014361240093135687128147163298100914200216962280118487451298108620009981351931958678671237595048290953999701638604860074428845204575835191566428222932143506146843631226937468053451142716116554190007680282322207796743399840436227720439823087512962636984481818260046091570512592035903123755050778786760234588621061555998754629601664111061073611901031559384546487624849250324389435089082300106428615239826878759411892156555041811124016261301205608664068126596075873783729657891867460647905613881942905674422091489008667033513132892628762993386686108245859662283708356962685743455542741192452051723167081554183369259950705699686874779572110175391460694894213190477277094320809289343048759863331052695880213979090455054677214307176743922100598165394423613655471471048989162870574882073595510325878907142465354624479611347433833163805943385725610806550122991648808985172375116448245756035711788192792488026929687195083332668576032544737367182193491157984114737461218388197670619989970785404762694414457749684166248063301562513420234592985382730630194387439318371711566579554050673485836855162039849800501042851518097605261223881516008975193553957256177110773967921784854473630348667182857735425562974607899012089821647563245069644679410144906828725994908399573541037087189545794524778202206464241943961972636165986542596666019991753672951792606363306615304379214575066633760739208943514337667924030251782731682247674205332112161686877598546111472332862541357235787829260258109097293737739335242897275332203214996378437842146113813485921504930942232691652875218472715284039692725522911038234593541698465986846897136526136361337445467748678087774726039225510452485736108029030560136780651448078883399506235323953127295442768246448188082109017069482224779365817025562101369705862495892553679068593047306244588626274261481134245290799532096835770851375542285220141369878741204074812255297719533883248263591164086599005140435273939357466429658013497082255749439581109010141576983832740944234309021799006592906211894898008114546735761989774941665218345308179596740078850780754603659794857304540151571356099799279464242829986547813215314095673055736757629452287487904195146201975299700380389925799887002682040303045542014995344775062130713932150479589150890619556042154939359374865083534278087109057259843948681398827876847600660226340954219101560332253037746749880820582838562114864115880339736828014611179572866025511994658198275608790418014269273214414750725413725203650398702417308974083622043402606548094643159457461524720461021081141469602266380444693918298874104412700169084594744115892344002233324391905132115055887954698811579456981571174594711947606814253973838743469763969188309623612191895050195680322553622035543849413335858620239678322791217532461185760379969356642660432816930578371766101635125599419512734865823539921080709762938587834776243665535287032329543864209862353431108596224278351778154111609069044924342006593061974200174171969622467564293705119275159859551174526192251035086415403174434313506018007266754151804289638534556714616247807655127699805701601387905502904685998016014803624482914261067141512802083817401142774473147208102586016591319843989420174430600021504212972922602947967712726250167616749911573253686875882157140725521181710736390190038476706091785178401270559070645459083299588922250927947140441360127962336539390099270605284995720421324129557017455566113290171304329235356614997541705353845684294064416714274967873658743186068236247255645550384607004427873442700532738036514503473462102222948521408850335031281054452947094391418539555591725041194536437003602597069626108526412170953657004900752890235547217226407892473530402650597846725748937024532570969488682656488970964146921042613049874893847476847380385665809252032046978033910204887552835914508978369453117082951109401233887359787711579032094934677363550703345635018993473462517828199001550857700175256807459157850491924105448387186912776917749521591335924789803488078731145672075180174311766017797944796874046313679876008329937994205305231480556160650195713583274199478250473800619114818913833080865098388985291908059081349789891686359063217883922036870141053390530059897060454220153727009776647084475065472493426364561168812318664787773784787171398429254209530132667034294598020768500715869255642102594624503222984972190847650474212264756678332350415267419773467951655990502998832290623600569024213713647803046938977874989521307268915005787403736511578414394764958138575743621534631459422020362623482348548259000804615812186281829258064548647948465461934437506324437512518208881423396616028638317702933812710185717260461286200291776560885942064974520458980564613892128865630179591365265359960574581590201074448022583236012781198974649127782585369344953351267351662584882200876506544201339487678148257855843969762788616490355494666067864126653346158222712356113149011889492633778186116360372099892978521788023114407195448714848923136516117470050740449819335420906389051801352627994834151124425827856738666675023524877491866141818766156114343873242705855552263166371524291139455625192435069255123773775622036353554076040417190169039573590864924799030067892793461695538811364715868599516510575258008010466267644935585000793237598154860640126373868736765174197227665906700738224740803270015500502821087038246122920889473875426029564116963553420617035619061746121750177977110722884924732701250805372186357955495325021204533961157336227331331407877619312403574670039192107049038836237641120977842514969168308151333583528071776603438425608164481572665078467610710685934843834840118978719384787988095803753544338951309473814227739363707228584642073210392313875391584824406068007824781579956921708481010044976670283178098643744809743803058581352678022859318342913560320672335085206908473477429408975093257532822699961007916007195156466922232877126561043348697972264396615637961976241174708496883851131229056029087852805727808412740701857319148747148320746020320493174233408710142746503824238884009844616437425806767713395127228935042366405768113431390492688859357176312237271853685036623471165972839154074750962458416831336877161069094663069314858983167226818896742871545867582460707403581255394552348315467790292208330027441578439770095336435930610727002263248148291257002170623944639126183797909596529934720363274961205740474047258625850404423082007126023780059973425023985922932713437844393675628931599264611128685659864758294021195669323069219225687503703467855767677578694943025239090636415636572739554487055883557105040830239155508873497086250999814987119478265837008090741745652815745099121190547756637142718038874802580911071477626202591574960195583747319834832570313081095554117061414638415629630367008140463036770691741882839653894922469019307295001423667081798943873330143816835679209894355388231468277699504245527685395550500641513684903096438747246777769418572315337688629921445516389381983779876659028438905216185294131756095285143579414668915760713745557752158448746303038116519047963350509006591716229110662598129768262187636770047008224518710954154006389989157880421470567595312024001204075758959745710556621066308833093830404757147911278948792823569004163520509725630958089728169141514862798506051638820592419775766801282104575970174080215178994799290814649031547859791720517430140979218017428636579423380783596520781833763413335041719207710108994806229290693365068769515906851384746469073438614980286768489883066769426192728190495594609333146722964396953562812327307900153997904443411567696799489302525109921581273064684554194226475404006879934016743571060614600618342921369440798139421341655420700119367905637661095085547951270365600941084376576676097863910647057868533263727719390173797791933102375161302239746687237412734079884652831924116094424538317230319136673541853819440819587329703742424261117420505572679263253793486865637419502558157643185374776509268806407960659860067103453266475788695733383931825375140979329184069360131737505310738314137355336123396958127871971716678557156465072058956166398969863279017980591672100042735933897342304302312883149491891617250011528240935651321128120379864044147680398256880799838939679394873542156203225147637483875340623499785656866809589292568864167959405347067039194115240695414016402103851659331767525254077227897982180571862512792113253108284477562047908792808009379526556036748345637823102811192513186384462494752904884559929515362954034490905309038589933616213289292149336080604555238480342614185390402763810980473940104796603081784646906271701995573276804557215181671436919797497649521067506119399874939508309672523669702361833934939242470741826259896647822891037544526074466081092246996068208325890288869253956582693623904140316611895269372929584904511772921968056463363609291333006805417580280035441397549766893880412240397330989679137187194497401600078476587356633035554969064123965062821047985706114333275469532727770467852353919144639107999557964122398916224339233258284549566363174141694657633027467096924853801399201801094355414359462918298824195267946468326437911589068202795029736718809107382356702333888313965066290715335496733019951188625675020396653126504620390158925079266036397799338814601551617230863305673983092427519825983958345697938677993121989160738735822735806473684201078404102732188343399352285234605678531436753148997600674783548539708596602510688058615612117735505750744041701845469557093401163476596069514929514436297008739419548045046316218477735717853969435748253602434775524634322513240908039133631293580374057418256206119922453335324920251111272102426755322818027614376152494203916788925420530464265038484681634281601770234304015079001355742888383055642132352206304227872584760847022103576318711135837620406846317814076082651088287886618298761752204372703804614698732380119810952439198563968592666621120502231881786486400570940603139659941654253588534677727743623960882358186409548273639019304474054745510746111575818186976621459476583394633469806840075130414542834977813342889075276154556374076675470038445376629486312560007001751811805557229795766422427470091678157788261274022923133074045797161349858803748209415137606984160853505852450581997290070315184807683594055183998247180364425737829525074977739693448932477493497818790108958354656494845159228490667358965396675076719810494566362963149769930030220252150795266501276438910807127002629138749245580224693240023501364967663553537011562021085744537418227752899727409681660119465771863974120243459470231574390056632804651877352018765817596432247481079948372878061949483631713874180237218729564133437441170040954580302856319524292590166989124234648601961937741220877033929239058062415141281475083921438830711185629644370129295912855536033943448855206623652164891432040334404457665492743266079297656664191229456687597933133043603286858898269420946496063632223127928086098294267930988760161064688780697065703423654703363296210647589201343587232914945972087204067755956865001719225719316149411049222617690345985341598428026828358595394951819738171829283949549092500608230736117172253950035307468982008255383297523907096305073902558213533584826934365515232095250912785460452977642844120653573120929643532461715717935897971887730411641187958796295735870215108273261260970830014817286435700924007928341670206649119199431902318229883684032330289488251893706660603351597115589525726513027396653893420752283423958847994263754101290622598411606766246580108669193247548716995496300086663935425654069699361836772022416178863509638848906091104486698146961187625743838231720845500108324888924779459297056511544218855109241830732485147466565974569923926540700086596596974348581483508955826930069221630955986843923991929300713885717070437475007926045594405205817192777991197478106089381390691251244976595391552991813805281130903636213983031430250544264909587178376979845210334872124082302550337513043827811610155509869262186877746492778139433184956910965083427558490764679477659099901551221716305151784523953634789602648556819401932035834572978660493981854411662655871321394246070239786345088021996316712406413212624300619101830222714150704906920302595998924388647626536737367155129997382780571641890971692760604225690443373052429324312112643023927178862255805272206684965700382960860876505038131517302861625131597908237265778001663480168936836022393010269043038945804771129764645103579987820352503179601604361085663704591820235265804000251751848835799800556641628648047501400094141696953607040622941792786421773684844467118098704769363491443840651218136756772039932893681411126035071380517284902923933484936512442123066235955204429178897415316608631075869813190095698718158571402820821474091892698656810518541050619045967140291450892645209769833136166663933796978281028576511276211659378585528160478158048639420964206944035072841635998701724711718506447557095026124420646187237681430827025481676348525301427417489068914626162008929405474152259135080689326101997378832972497692835446943734506092839220328684733190593714708195251865148680039343201877707580022581354072565530986968580115810620196478555240863362337508154439068694717743061326319682703745976558162553907969761827167415304841010555663623428592982446751114415759939116826981774254260246848063900393140495943108523080397927765568090103378979263969464726670625032465220455699781189074807209819357172412713288023904101312214912644682204230495188693352687845891897955472267675614705169790437717996181442747352584181108130034014885967248405182123298288740774956549697670698016982313450124267144135429567017788773023347647698814349053519147573125846818806428115575020652679005646829096279168783182194224977772082761939287536333574674842355141628371438191580248630028321911289092158552211877608422281176863493754559717105011984181784932184473694713911027424367161101530873393167188747841970208291632679155356725712749531904772961821724579281742266682043076784372590534616515248677193073961360715127731220426656681920967781011786127976657240361961814648366115617794872568449780914463640322727075397025096923482980942656317382403984486031790098097722416219795988122881775231429777486369395426007970406315973164846514851344732002172785071458938063891546469191528767024169000573192354631718680212590387100621233909057836567329545362218837392014011049956376005766884337973855829258637337508907534601216092637926936336818140324660425498995757021396278453006873374184251060112648224325245957055464403404795878957479349258495995167856478267862614361996832464188015400703021037561044518568862635095297677562639086341222157258179857748135194594020633034543612222275452919426371358319074675336867260572951739395177280179605117981454413873365981881531299814434633184752433315741545726696737602401976009016514117928980352109265356749781604706655448877624729104022699425101430902511663058874756624467947503277865705969850664662405797645055465896878853296242573126337308543532585666631683241938195680175585256152631976384804635572143259910041621608207183267612491349212195097930778496036575085774494475992388178931467538360777799125473510758297404854588708753046217547566165912951037494875432437535278471999995434905935786053253310349795501736935794888831900315479971840320205895651929834364290468275389211808079095060463295571456414460851958720483542370603624221847618766677276214655637079828949881037176021559485472006623198665412769497271209675313027598035417619065687618245757678612724195639305158833124853992863145233165353040403673187864848278557315276293056162369522056127140981046703579092453420901086364108830296173342705555929645589894810946437933581331457525133303152749610841746134955923559730893288932163449009048259788978515266976711431824685902468615590000381690373737951788577032496975887645744244838892489172843268950808914595829947491155802545476967315991491059201050383393310036301432757281675199293468263463083849764696623192676078364738546895207720490108069554760005421724830747591717787084629817109356324363109282752585679192281947106417142319740220439582798846777103247009726628500305059784094251626969948044902148633582197308203192678954783266344269081193295042025655793903072737591398307498229168031814503941060851337794347140411992443571398184224613068354214751667769268176566925428059369760326472634616806896707977628524703302244710280410881291390956500490485053690729250490842962455134183973822443960761744863476382957833294170514756070036405261813807772020488245599401854096600165697709957049766749822991124391361739284383332469424850542072771305940510416916703743984118897822340421102205371614650871282266638356225444416554123771577397734916022259385814421480925227831668341098650270501091977829839914595903342689073244993161764023086696130502929674322387477295772764005750219849156754680790033186592134771045492669623202014338523495326837184433868512403343320521970196298455028869327778406349018911240600658009388076796266095831269091854363729164265074957318849673384498227978209729623045838070842030632818500656236880358442487322230428349979724819672281982880842752312577210993309075477746821437104937619408319423428663327361961451798689857284974570068448178358180266588844442866364867679355535923054821388032520945913087798406803491121931682548217597184109481669641525624051735407446431586792119515295756032011368558243098803084271535259440027189749769288532131581742533512773036001508543961028983900052377836217717810588394437991499082557890640832041534284166779807218166121948853347174869533876769198584227665213922002831397719849830552768911148867862122574514930180943993777803735158487474259954854971867073893529622959701227797118518840060513596117294657092104126959378430820490331910220326031803698161977424265699675362440157587844656499201534098849008217060372138391964448419215080336632265832219862955963340769614548767518991006266251193239011100902042454690409758865266673917422452636117600508715597172143432479024377876075694353799701857396119737879612256908261499663327242314495107326985486742518342007749942731422585310444852233641777400462802801040351648003938347964923253643109167216972736121906171184437879015034038190962371786711888357864680206916642561118802841611441964541159934858041473672571971413718630148352753940766402033676566414147385552121156405173805849961722091857149010801290786289822540251569327925016989373207801243686491224283205905864473390393788165876588023393450819543874537287542085706065680254381031270126990600299739739387044379177715220503389329440635710272717982142507391868142297133320290204782627223102596167360402793184189744277902660576181024332647509196544192643034841972205274981421961737247283940738911628581297554299066829694562968738293451636122044457288505984016724983194302895964614156302232088456757969052712798394601374265959350398316251557676318091008253146998295876777221426985414220661671232958350146099708187820587255445575922416466432974000957776031963862632916997454607632712171194021611664677726663236672557554394018190968783836523530774013778379516640019168715459828489812020570807088582455978659275225733400073473420705779704184763994207093646230364751266328016503945471324659596540194922530831848293848857034968932218401098383738285773639767318924552188606243754082740043377208317511449236473913545402791085661595522089970877331805037234935922151519727612898811244792604830042422923190859835079104335995365914043744681840525104385398673288981638492294436762341860192716767034948444899431026877596457163342257343258354652647327650205416673718297703198965549260064028430227984769536745073688298546116864438964740013017634485581000043576882390693662923325151062357729670583793531921051201394527446619489263293243864932111186211279644181159919773505949037996061919161511677485262442650790978624163714000071722850144505524988276034290716979244517939090058688974039940277827518687122528806829599910057029781330791494262198059488099781776720779262575477584087910129521054499250517011745323413066791145230492117466198038142933930332915549997325270846694985117948341795431205868845721016920774127319305830741179320229089544425870826300801030525564076358645435223235520331239514181203243858253470953256951167326003845725154455264050581874440412084177138066507698893800326495224962507316058241223240309868693927887495771532984230772500218843918163596002012401612957239349708328960087708669187324229569324826461784988527062570359237427495216276492645554741595101994881514188336253958922701249461948589259464918198317447054652732791589808772719664373823010382176199729481858312684999346062262157153841692614412510691351268347691392814102128897908678025960021540072686698286621645620661233628189742146768444538737995068677201267552326380313367726425497256181852340316958387601125965451679830598025842463561248190052318160005359588174050977334893816134748821900490720922694678455394057664851520707076732876225774438355115844256852110371563266965228177173841378083854329908177295454697420333729049536342762259366319337675370907117330637122165501125810890903201033622963582739028962006678544104636275984469032044530761504706724826348302749585209042156955868966492965233693246699109745224223419663490763405979162639410875532686684387398883316202711250961960709565880238537579060558897293145978139869100086557733016189298476076952746217020099823309822625062237891843047476962609727390092881712724538961141505503332308185624541458100073511466231652618271768824622217064428727872812249457781889235041530487684825335074313747677474100350644340565909795815671197641031335261972411718349952642287750671201850299401163318091029492682093649887290438315047089213037829882570944293080755003186515427903193406699199125551770043648786891228988208284973972367305654759101161675216093933834964861383492970019920374837329244976984749481928690257104534378250228821966623760358259189599859549600952511018981546237016510285688212962270881018546666432111140365217315061667402660344995540465282416639675123103230816463026949026073748287517669607633300695777275458765091004902599754554352398488666175042723781546698922903089182374457626935731783385719996024128847019238499198929118314809850313530438043946987704629997079551492621692664925092779868802838864718658352238250933739691537127001770073399123505059302657960893862147218215067666353693158620380715526136754026862465991146691384053427817238928584369449595166684527626102277192409755011003798857349062841812341050069086799266760062922797706508699677943583577930819047513927259792752645735473607478894702221391703541513853935587692595731114043522585072528800357102159739860910231850352720878925462351154447008098837759466178402275856710654858245914401616869510032138985552431305971085530098737864799628467617903772414774733888411822627051385170752950239435451592381259462782063811078645051570874168097707901166648137790657039485750487508544180909725208572150378340801592422932863881546757798805004718506138728425717881154934656222453088667211695171691875193037402670699778814453993924365423449209405179260392119085880540921262611838665911921605124424748701159882569019515613314580672440014748330142070323235730354653853027860592216077110482481385605925971673234278829756395706976463317548733235811495714339241982293783098298569186696174642859231166358056916172073403165823445665230932012138509743509825562595206689496292112910010195882390011802922097097477021145094770998017363455641259054928027701019462728383682867929240614473165186375659719034825161834283623461059830094229228918745357046895267750818535797731728270210032758009266956303338988747895155995297763404231476965511361163157223093794615402514157376847512229962894132952929689628432540944235137246730507197293324838984868341496010167933025313857519630960846695630301243498554488950616266044674535758556395428387431228277626695465076134054654175412302752412116479152175845395978561597155719883302575922968492985986786280296301908134872437208481132594424918696340964442491146525519781509372722831727173762351167648885318557870571474301806704056323274833068630108835280978383393890136523738808905842967676059080989633921841951022040818028070887398964058712276480910564054333903457928656473234086334643972598810738220379710307075062962880276393721910392555183135110305785123700872835843260993375532051731797112610801499640770548626089470334451975604765975545843608201483002516408473690106655059767483342365437916606863870568340759848910274650939856290871922743412876519868129569255599587872489698983472887088748489399434627355904893071740886417657495958307567321266041409171982938200360453239780291002693662581757297706795376278392756589945913500984996825829530166195687072948976445670124959893436161970349710115716311880606725593521495942889954316343038170709884160431683165968234095056538134021576258185641844182148591108655939062778615857524533990524234618081818236968681553063934682243438738424196571700555791922213000164895940797006166680072477113278835868607091619649585816936488049017379617478426079717495211877513943537941190456303956720746749910113635385587460714089466440822676786837118888674466980646503502098330434812755517934663246812816256476681715564574436555003942358017781114422575156271022004380496529144903108994707835644823506915375144990352417624535218419474120547917444469091170624828394410816967652838837489272839911360581428920828594484028843041645932102336939475507610695610607454134452762654291647904361892781894827755332806654442571574437701542027813229145467383728307674786116042078428173967882114317501720459648822438643859986701451638737163734590974758211729028566234869091473756293803901547252852765170406203935794028008298629292711374157062769387862249175997337685264889069642336513450574429434838539496475794637042773326103180413466907017859943146932103832370807061110409169303865530072539021157601664226600810876016391785669935782127509253195380372957907987149894945900764408600383457063974981857529092843265564939847119231783152348470521507132885554462945871911661279743271310215002770305479518115919456579583161590047624847112976748868666099954737978322497785406937875008177656283541216751763080414852028934092300361148687768236951350307530574276674846564650591178055530034783774417337860451124470094255438579598524197597644254884233863953624767249199789362398936840335731936548442368223577220884838859880081506785420992004244645714758938665467285675138904696006358759265827301510212452448471830637771756363437582674064791174226259219030894833208588829511694678534893581321529802845539050936306158989642681483889400464686258753854020851129877128823538450872322612619994364388868926706958266709708810185704481549038536135047542032618779506124251990166509124086160329380562413676857663587940084149362899182841900776940111290524790218439651145558003392525538963755238785710036856348888400397235435422241906495206553121582377717471304307112108011378601415752010845165787859174948181787573957474451523953748809537763070327347787418109280707516424030977834178350267189766644427963426366016998757021647685588927030919472716322397198672256721306191776325921065669747145648230457462777817847624259328148584786104855136735285917075013503614312870261249228927749373365961538238353225586988679323709440174928464272074985068202909579899919871873278951844225213872477128032573246761112685206273568131179994256088453837247651107838429363252003548977088277298936290289234116559080881479902197053980186662445978523662741397020074255121699186184400271732758517541836220088582358560990197537476011803529468471225461396204596977565417030677643999301394350187723839624724114257110467992410683900572688521743041401335477587588077299213335857492142536343333937697494140120760457578357466094686500978339863019299731152707021340317194834769582587624548671453600900549098008418777240796406500190278189149860722197247559984141221868152290920247562019352975874234324066251707934376285991580650148419935215984794953220721976704453972521622556997985021938461509957691012935647857640076355095060777661844494781337731101685541483467312673583764960323623044642944192844128637525646591062040508426929755999888996243445968987530092395134204405453622959606453141335515354872353275167174670429759950349296530578989645243808366277668368866839288001025182829696693326758080668474351568010080209184527379818032201670248128320768479651942515337145085318101028466660086477845636839845405483987956798867724697110929773066228304298904258253690980715727356171126675409772775558616540564909547612803551280955104655078171816973394669917657043040003760078778952031974649515929827685937688172734883886806478242995158534660003094872308709469118482543743419132156615369050903325462871548966667933108237796562560323904744723049101032166728283362817835926904357492382527745240754343095893597436120724329399428312207012593915238509899179838789986945942627223723643911510669267463586128215327876622921536424799219588583918028761222094529786077799781964244985467542400820457524082476281718672480570029843902580342174561275035875559315249778934959408973443822923670347217152746375122288022352702538772541562161746851284426150696621723536364623659951396947620270768679754060718814625393632029866673656560669740940927473176628014211312445577667238908093524477024192361381582044327477145547544172737833461064730204819542358543048374281513037035123840562841014631312260682140222058132514395489353490972645807352253997146851942845639830285909082545024652659242517911708720807216577385109106220804378862168945972011401411193285983213548045814718373609155195302505486525060634724770316615385670779010484727983762648677814963156769877565018178259967935350540489299513818923056963043610581718975556252395679792688978776157574499350377054638981293187996082744554471750107082855309730965423905763414966813130509369022763830078908769222313053850990816474414562192932833112932343226365413157887762781114353271644566662541681865234588057005626088101121042053265824156138860240897456621148379091590285469999602535875980790861981743233639006970086198136796479672885105436085143644686472133976839474208936533383352466039135945322256403322067732028698751608938434370231701950840004332236627932404761343163890691492804329725675496537638197282355149831270900184858723386683233442023814790683511531221932280165770061515364853706792574080064932223801033149352774465937255200725327295039822800680014788286105104559184117002825010417984229729953244635020992146452741234062221394096618143025719521997625822976896612773892266375556481037331858221826176238621293175581001729424572734411920164251709242220748429915497497976714617350004254460599779156622000740351821259435173118778715994740447397396672367694853740007042518930299310444533906866749703141714416451105279684513901531235054404413637214166270550895837980968583095604763369751222752557251371173975273301103417021129138835910911768084111991896270398034105824616392954873879834536742845943233676058681548030233930247334173452915044955983793638140209342606135381389850694396270988910241555667603547058105827375970240421059100960685825182797922898291284096639343945809780411813378884227232486843985654009165375805794755178813858448757723616056970254066407180964544021699988397135638504773550626063163470703607690130354121734198959949555984138370882741633031499258822306608335481463842680242994794141012106558529208984955212447139264519223782838627001917510179349658738318710949905855033093692144937843720375091047981374770405120649858719798809675896022889718536165280461790286998249367914729899812616302505588571635457809003912130801193480402417246683090890030319393300991379492957384735281894451307389745721498875655921420811323978058672903263457902409386615819994078932870782099112536354319720086831680618680543849683040359474148524095520203956716265111027349297061362267445530811517614670314425086465092065601520680001819719975697960180921806983686626661541956976509519755951237708326463622325886996152654609619493682312687171068992339044930373098991576630954329237495899401197201982834067088940030438708614399538157257478757880714065153865514191457506023137614803472194004685061884205870584752717345839627764312458848588036784779544655985278887888323938909174901226544562164476081299030942447805379930266532567012915460883649264587168384163155278779429233542501556559240882957867097261551321906512622662517467987859050042688690932034015534598828512027176171519788093579124555745701709257629988806872117643182815800197027242761207160871982022330229839671663616533777884973211156706798405494622273489784159333178614541615512529348946104679075461681145520720137067677370700691397159141535168284240964135882141739688651192521281311938083159934499985193952107753573134408810786977414898853329644714008006277049182136666133293063420417544815293593252284025499927185264576127440103298630675173147339217393736526086521390005286028757156907328833832611700071991973951388019598334279277918824316155720076739952882331193424921907398512148977230137749441634891962903456722367291147682449012291909324401480266323038777987547417354111305833052065700006321242334566340708408758940353422476674983207610626546607714662818832644414133438497704181018382606303303848570293300040412539682669700215465108166398657772225460054984148301909091486858154061254843480093765035914324430431616179212865555393062562190718772872620508670809986346599315100277072809062982448221180338700436211327390890355368107239620638599277905278229276980009623570714206200979700108182702856230938925306169131149504933608359488345376385679829245099858785226131849635720749389108041852705175683221488818021845181753751439080575497068148069337634731023697337028075850899864354770370714185627851125443028638206088261394465752071773805136086998383602974912391638475440434127673209732056728020654108102099500546796419756482028865005939433532461619224335098159877233887720629297381417589420646577690227573692255581036573917351602839744455058628650603282446036152315745941567201800202031980340357373229755320295157111227795245615546236359148939800404116949473314821450544781816396198172363959911195450490772808363990369412463442670526463223879659729420176804176317692777256911208643921782030683918084584397088400464681921581155605038880372141761461330950956503364109989641794765085318741347953560555214613775491919297019988301858030686738436508794976833056637787947755606058076951100009377141996697499373448378251596375861727845134363509371804634889801762730231283351620290586211463413189585755847160150476092473592758622868532632246593344202741381515940247911407063944290956271677191126205653789688918715013713988221453791760058815015360288720780207789033278133686568096508715817786429623671733917363998214588314286306770325886850065320478776731459276221128018691332256387965497365421964794572695349540675041479139013148515911823344566795881670375761646535058351861237334408214080417169181673271567737574623006676968909025090992324395009190511600683096989073630843360413219635603124059468013177726904982682975074306525246645891409836887622131472378047011775390134987851623188271666088655009780778625859334214827034536307950340179470053869907730362690694209344889365729929947684500267625503994690554480625510365675218042249791219738424217348146944482072986476528980467827249500835534446338703028377934817183201644874887281741362407097299097783646017860024482122801373065701733568497395423743560465538684259597859382556057675579728091790845872690122499482792176685304241588404335520791756744529692051090089083792933356327283997445325627213599693752312214331379476491397332192993094049238625742670917327908208417503411997572924567749963428467826003091385497158455692970810006343031482977467839489516300254303090448809692223939398383363595839021328885695198255000440065050073367987453464198484683826610923490090727859124100908464544689675659468538414585378108473763017022152821670157731684864208323613035620652631280009838461427826963699034027910090923996545248977739981071492458670549974978755483355584857158901196651039170420896004564905246482526140021844516342065785574965953287621530554014197086977040145261814333041637983030584943339703659011913885514614405409821723840974878018360328616394861273544153351432104056068756008221264425870198847832117824953811767959487483370426799453761258564909124241100875944291671379149556618417848450862457844335292255867332530641588029964934254276934961062197909280100697072031727450578064520510466403264351250939010914925125194369258706761177721563474481886035763901731124087075859267396142899628300671441249597200643814881774478669648246664212969744505093367453404094014390867965984253415913981030075964102271583722390980439276817495463221348177389506481070371696039184845124656171926750691301725235208036842964575945750531484174153791879805281438429743510734041943613280324194855256048558632117669521383748225050517626091784167568961181491349408352432006376629259302067106969236861775617836220064415749539970573723081175348991544715612672104787035601821551763409522988241579118100881323730305371310082239757063042933069214252617155979140540757271183245734594643337987944790098705263559645529825526861029516000493678013959430199035677366178177978018572294489630836764039533687853289191632689243272041521727534010416960453537373589577034315874156168158914873124202473352386544253492583762876314413740992586132939296037624350626155144771584161864400511046136130663289057927328223370866453784968826095076198926013182389007007801785373067153163424159580269909864159325506204958397342677338190011304424242163585010351796446046792523573103302698391440295542668172213457432541674342153991531816155256691050152572296060981094286826514053145398793002291406633004919425300988952945833466342659568979452616461218434283070308548744310935724260158548314329367523321270749475476626164821409536316973064536738240415230016244062839112255943996875317349732975815006883093754245203725614795197384929562717127846328233489088914270087466126286028888419395899877486996721975199220583865764476468151119130250914720871153680587167242742236099719562534005946970757045981200385326551379248246878512765169049042564556338258884567842100424862253870288625853228684091608254279276141481398299504881295022442940744334260149944074586200599470048157486026670536436073112131952282877300281695584070975055490983165714987271192263797068243550590815262020845251081621182444315413964794761384565869099606811935746397729811799349044973054842060056430004781297099534798785576368275545410521207910649840975396539425061566424277724532790325666850549882775515261875310743154527185994582004458264365226003206424025803536120591713080395967027348590469891004751737971387581766871472793323865199115607603742119684720910694200271896945685370968394759650226933974186857610166866589002164238138657183304946712058090025183937438559124159370982346906621484984008820262197696198364965842529994163370515918398588917992106238921506534192783354671028973446959667206879406167882426620538818880880500338719998833138820266792998551923356538322228391276461673709639200673633153679264579267214540119691646501033390352672418533697145776679937105269416617009996522617357000030599973613782992650512801033856111862127420279979808046940037245505959145362327035950845337544737318062799289624568012739166918913659744960472880794444419283883385376524040071987594445199344741603978782029699164419626571197653026697500338444270089140280529681941095615217060614451795359640253753531633092824418784461663778244107677153481370103969738420428445940179397632297877005404313679573507679598761944033997062527055123863180798004614552918573769458146266410384234048383118178175961277315371291353609320359543497590855962683875760798265948376492147450918162879718988125098891913345866790360309231414738107154799026360175756001159172858523825600992391808206769154710445515155330012306908475031526412367103460934711325654601953910756288439988451152248661218773022077999898046313255426435939615883668093681036814480551407166725124543987979130049199369979431852008875424545827478134313658010339789340787487921007759441514050819546949832405010849350318055575332139716034075723595587836615698289661996259996568367235015192338289843713343017218233678468957285114708267616951792953433646721716958911808134459126051033622554380652774243938311424133590835825042589801257320519027887110270221522044597808814490759577520332535328759740188311807620963989144887164029783220485340411720589478163043728472868795597814579331738234944257191995800953333439300013238302611626473199451424310133619892179399431096419841409514692811477377576875297871699639601103249254011592057825519387889315712280841758743105733403991123891848346366576191198136184318893728805387324064946921812635121273690725027368260916431913307802650759201664440203301707694895160343333247240228158152248839913687353487264012511480746900400747754448952144766998248706336182786153516211340369980645921421198239013920267434728909105802049997897922552849909643762248448927428153634225308462325136544895000083710084557307097420094578877835068321974069000622990094079699207154853205397473969619042510280650110469053323141683486493834263241762988059199753477836424729168476602616881015363059670133902392487590878741513693799666111077919124475443215182225422451839043985922297319229230536528108613956335962875541979429730492115740112660252634622670558409593969595695238381075664144951131180732914416656036366867482575945352783614914081010089702252380724093061253349740693719777680405301647540180113081738218154051865919468868175692539542430090093447685607539126517776202740746073867377217208145055194377582046642691210968189345362661707721041903138161747697915480250921240087520357916729289333331272183302720537151984741379803618811371086731621225251051195595914631752230141945800424545811291620018587892692199246411240807417638233734656557031257669938864173447923859833415476395522719064893031753524762808921625354923540998424991413100844870039979919265032207126092999992204105341171879492766153044420385623435692559488380149397670077065195760513751037061966903768142570140835594818850108078024442420686756711602269286233657794629448665518613435180676323091180810881592841508915631081893809189299871705530232282345889948276469662154748795708880415969257362451575874721201613319546412212811404494638761844390436211117491388875454426797813040243778168625119066348678808205623368890273626358894135753881942500703209532002852647182049972604719114696358846660264166252758322953223213275913278919136491949887702684842688477155270262290912431545994156968024636605759567504096981056654495477280453563273089197553014400118925544089690111972649914546436476439395450163251750825068814576530581475258868854234208137343638213787988555775891004242829659046441290672583599464773114861364973328106784917075990762229893361408495171432350411139748336312200317655160095544996225463961466311382991788870875154810032756024824335786720518497299738014229758715850222234493694653781712326685221782662663632604719027805022706760170020169603926422654962855519269953323411848813025900577726552233386382066189431756460478372675291504756960002723153896524806098506857206789825704208639217166386994295694171665884148558133389528056727977587819331574422278923847143645552820146263112203698011653629837370452565505130000550785938419299236950989984179049285768502737507153376992461065015773806018222049496708569594281031046913335289603773894202868295717716562152231853278088508122573974638632550864742974700548112773470118822441939029146220929230387756078891231643431631502273254472727446990700708543165971653762725914560334543424097999897577166112622440432951742231219330945426254120249129200927258707138720892344993187467628033382221413126742995981018632809864428615155427593657596726984536173077959084743753663254289337941992660824251702044030331311232315547008618116495846111613454951311644116326701062701091916000514162418777814125683820713055344826663697049606786243038400741787434000030400697276096401358150254095919297892867088359291832936672056699429255161964641619481245683445906487569829460247402903483625892342468125850291870645368318178951849272144946875630431725665219108804927248396768602923489377213074731667545351198932676491238701935601420554490954345724724030286437828736018954959659997819732369099268926986558212384378710362882264074917698265972427229319219580424985426925265172145683566125394127278355667775019959817977852997788803968578607251922709325765343964363756239414724422224980022786459369605489466391348651672862253956992932140986337190513195160176324269333526666516609808771391878461277698087947912161412681899825838235345983581307148133079793343659535075415725574700185273200421833498629637239657564030790288903173948209407391595013309867379536718950148759406064318229521588505272802022071210748513653923528762614448209864020953655373244520336866468693345150631607515997724172550243848260871220405599120187467014737153088904065743925242672383075805467008759774916797129424755110303509475140838517270073551532633173216062928757191130462228971711595366491700363060504026563161831447112271347717237251272142262132944894936093181545031833649298490596367882688041454870898022952804688456422412623547315520988594800884312816683078902813191283920042604198824310304180087486537411923979231318882394475443503569894286108126282607270344642876481411477562650260666084709823820195980054921614762421294130441283462537638405636426648434066950512536825339884398635148678493439162705982142968500749018637968331994118424162553480967880120814736043250449230489020288584369186335861604736217825133268087297030126659350994876748731842882363864406584082683972547748276448099760865364899539961753861761674265262934717220453993654743086455186419376653773951890167549356474449844369019061142026680308917770953278233288017463690672725685259233392618394820789464690791272297203895376299919695755241260453748891155339926868358678322721326147459436206684367294309744247534566931201035641210560611148245024780049145152218506390598046051822468928559414066939867319499718639950709971806520969332079006010144064942793148029352036995270775642124438214566539341924719824072466608197779663855549287619469820222134803888759739171328870998035385593625939415759711897496409543317010742400862332615595153585793673207067607662131567876547201905076697795916326482130444194442334745323110892664646583828887469391002053741964663035840018010750751063762742213819127570649376184353690840126022334887318219491639403312621812975009406299126717608563555128243332027664509943831754903761296011325802685953286641256152740245541029360358595260836171433347202243003027936638053597378531487928240602239513657471712022814834785482409113684310675749579149332038960869623202269570650935536818716285319202799098638278789323527281822855771285154626562251989428342964582839311225749923999570414531609553196931160034570797295919571408043624022317118830917666856443398329908774185421382354799250212240653218462323563506958482994436355490356670624386790657305598401861302514405465755908148936606602780058523567964194600891002009523699624026113356094866212660793776618005735371150701699943038116665042844237348491734451353032330133015449126440896307959825948991523359984158401649127805028381144969073396800472432242678990758167567141088440633337931333722354255205408455456451666383568882915235127830329616390367330507990605906825894864050892865971530317489816884422240369296645285386266812325397342853035905574245173182546612391132074962331167345123860794680648455353597859170569534595471816284984036491949077422637857950576505289527757292844326181499260162600832756243816420835281506761278974944443035187741687931194284954842400656813923318560852355219714554278460385173783216988445045559472516162901146709924764876413995494406963168020991882437545184938995057576121185411207096081681746503468482444919448972046081493526330048460604876098189572064427712530033093837755277343391511136654247757849664073146510008256005140038544715411689626185175921321853431138520671214790149519247114215122880181207450681562148253221661480165642607704368971752581238475855283574222469597701644078268216121182704440469533023753380356795661744616293415788329730716248895505151302102259880345455446437672916615499631721861832695690341153891570649688829540409421830411422318621846008287395787124661648475559218523770549408107000309531416752617539817247481509096751038654189725851586387666924413578531864976093221946839538733215050849853761096732819325493957013927714184543511504803145687642242701921925184366223849416122400858843757343968859405732813536100599541877500785422336391914103520448018301241144461894692010030051983107495753876151030473291918187089230801161794376029524784879035337893225595005860188517837195855874025291199688792186114856245821278640375663891196523250495184611990566880440697172204902914698685921851490150444568867168027449629027912555853927537653096919190135088073886986112928145022014747523890676158838980427614980992774781564021203959643527388859508581479839626101273318598505862983831934305048927322746028600772303726270764165579028848817349093217515627384905852803698774113621952422512729371628908883332666104510433787017915984363848924184188375231039491785393835268585484714581000540744103498299838631694956202098091275127006996016511424057234648276690769024169958173160960638492368675275106114263821052163419484660387358782136032898396014261226225458859908571629920442649235436285920144648003792663218043792744220275127870635987091398001424323065215191222948606687289589603307462310590279133996421504145860364013873176864246125196999909689053215961240139170506158302648212875094201322655389766241434531745822946597607288378695656043765785126883645202609207309771001751643991694744706958890861470459152339377231429066823207108685594785237391790735024373713346254190616768465870232924857137221540211520590741184886955671302677040876918164457484837096665238898089533717156080598590491453242954725126952869842988013174651715273154717006860117667967687002497312796302593865271930260603377034551605595370728445377874379585811799913955770739131699267300917005472241310559004216616127156796467116676836304236080536177535851824253310577296529630750400182907667360223596665159573018331447677128077043050270938845512581242302519839135963489837737417214393681261933381373489005263772976515295552137553658731685131799074683513850509888933334661964758337496335003153169066354821706768884618243829644260565943346981486870290973080601249563490677368124775664011309309526434012741143789814437268246613433907926477959839240061533694818985211706731752937188570376254757758472562066228074168741327059860434497935346217150013626433296245334135879957837328951931551596158991902863841460779004204694104454639309236627597869909242710975163322269063834772000881417918688503156452512247673148450038191306012281910224750836056610299029989116583998604729060663862180031468268825409709320623805403124324500389647600732162368114535097928390613891681116082009156817513950301060855645787520012741244205754669092968403873450013145096461591491182740190646015303075964737796937847153643750364424672789319382516458392920660992084446003697173715984655616566848045022909982373444267561539786932084858695833133781436819642891827445807809008853874650001798977850381449795238978999336653999011503758456081468129433361351740191675545344916712725949751677542918772615438668210466139322202620016678489945117291375667854089453353775371395576465080335179145555236579020774963834730920546201217061685396118389851086893872256939134330414747530479435479554823580143540449859618528413730206670959565717705033008838807001457255136688829460600671429077030396433758664389718953643203746450912969702418926849840213092641815256826809438351877446107510755723775299918215660434022587411864946637460875457421913195352890900295020101708006240101990460285164549296340019790711958015756914525843757335308982493788846703464188993841062988566735748782189809118487850263958641021921846595476460913159235461449673365773302977818696709570601372026190723547206554693453929531875933809339533490202557200056487073059874130003126554705622494458637134967272978632308935663357410997614805624678729143478163257849527616706494742574799640654618441820906144852753075665892553051073758364170370599380764255310098700647058349110044478224745890289084809729401024146988229766817865208526529623085118565155543308498412557079409176408680217404630581271323661748209545895205440019875990927664060347919013783066122065937643208187238051858066295626973574966668891560563464355617516066954734452684933625795261616764183073435611925966439963809237327272700993734493960940174519892452055762041005132125347959116132939444984257252741229688284890730624140168826633976105650777357720446195107982361059575169019921996868339360200633275306229594354804165742070242990492671234775926130680132371885347105387679937920129978632250045183299299342604814372665986930667103286915683793592345842532972020827010987664360121604729473858600450814462607750126820877165092218639416691780573953409196474587248439895540412323196548779567850275541491731712286058609563948147785835958318674796907786855150752826583953466296345371169435562908440518576069859575550987822645658038697917904037539328019614365031561648193564344456165816857741068825046297068431052759502796392937505689495830121358750585408881950949679890373392978309591039116259881932604395127077031995225371197428228193739792644967468342418100337273894834174678907563755502801512285326477570951640248611763830543521573366119077521536581960250423214367495255856816489768265824754629209417914361529454187029857608128078905797931101880982249286411298188384650016780430138331550351328712790992868075087427450327185642506075837816311456342953495882395589212332553633610693974267209216670685040601200546677665740854047008831512359864328980524671579495661041097494158129558139700363537368551734429161245626904418202398383247702392018693845870357844459161425337708074424710556968121075535132647056302912713137468563052137284277181213918196362750610215961292271568821724623587255507748188831259830613537496533867508873657547039052347165224806968462203823599724750096556219662953713421699124199591275095428087022230628646500842217269715368842127423673914162951692299260904758293239713526865728310823991311020716125565474578678113895425872556453575692400180433868238992121049452046310412389895683455837206407131472171185903185470803329050135848400025843507886364642369893804567221923252285720905883016120995125034439740969795855425077882775699633558411978394819210039361187516257708655324122802685309881658212338259209204704699213592660031441009800396239536416512907447397700614758616404346902607345802930310888396345169715786782662065332438395325655726328739114071864275077351209921008063324407848994794853064896157046808398014832945305758378060625583765522039772797824406429687942807508625840026053083713458223927614109772116219590149967336876877417965365382472888094419402655493573545485156523564949929426781736634574212294743137635014576860115844384015955489705219442691603102263997773885375013894696561339210797786735726718178945854341835226990000354269750920119800809330095212655389603363027532792969103746325358642136193416049776893635108440790632570532875212087948296803522097243760712118397803714231987339049150040289936711929995127293999265343317409213093720036386539008973849122179540741398280244388794932490510781405757333299258736429838320258651255965877978397729779758498604648053685657877022020629278284309622505926945983473116470279716011201123125422024161753258072031088042393412442611513708911041778813786536029528152832709805914735596922710705218597133258442785882463136408105442771739276962377010926860968105902262859276943851730505724900735421210390542593584969110956270201464502555345435981968678496948261408568437721923310167209417895398181832614759346063522945758843636760032572971698110595449889930747942519217992391667226553596389496911797094185892860681002324839211622106850619777971015949892530618679188051638162094824170007288859631752359177518793940463965603297142810966274338964295279636363043015718176850683757874986206115518397094888535075037661578089387122754230861501465689523466871521041324867324834887659589132392446095872969802852408743529517584103431412968812622039203705030134447069298527569116960696535197243138110931405608582949442444238494429997408658758497828677859307393980040110338657344048805501522755756006266904086315253008183751520957264689061601932413203380774539123487325406062276467211915442333596384847501710454288558036272449301194348694639435106135086074574142108059346255689732514800214459732669990320214791237629188267137179056382721061946060170518221061689294616695241820967776127135358187482703820694200674846158951034175908644843258980680404927295386852196455966801073487541005756951506793336332322044021435022976176892846899868175292771302474552182774866587794706834340637919586400319908726932988892623713112991666914729921881070324327669675031519045109924570681304138762115562903791611069019645793252137454730044489403348543117470719328016712589308585147492996073907329150792100243119112163226459329808006916668901711320598009256218221780915121603923813148723979068711795607503096542784087826732338432125061037348064676542899197467825278945713536973450375636434437982844701311977692150160548144080261987728606277815832176739748824361492048902282948428513412386911996202628035142481337165298434506861637756755834983832293318717609520959020092758176848774776962170000142503109038855349903336775211894632895130952694204912963759740581361950909529880664130150780172633769697874040587912630973229646605296922617351433142895245217682613692031255009981294910705782235216715942447968393460493632179795406312902863117137122287703572848798405165452413692237862196558962125645138628435800661165295208810992106780728824297020201092310847678808762576358737030062388238476988216264352215509477194091773850817197732575689831195136587366341444322488352410155167293880022625302824711303274451934854486276654597977468596785058424241563999148170162774672115678967057192107546741447451724407368703004043890541400292844035282896099313040589618478130556674229692236531602131978106918522811454118851387359980581563443233569860856790225312797458577021990626823878423613410968548110894647025205964407083913421212283171880371425877763041104582468718654120415001941690927192357633000187948316867556744127427747088277996824726366895648246190494931625379483758438609018738722449525550980431081185536750234030978574845969593281639001451881230740926683584783416206999146081721847442637285576957327156280868917510647099130267940068732679387057529308596172638045831285706901678814176597624170255820746326644513511530376793942073141173173827770159021055902241201453708678047339903853718419115214664440871583071578878585351640404161878901194331642301815269130050246498803386562661381982221474368806419307958573597777868895035971481583242851575356025143073818243027659949446986006936175162853439540331498929567234615197403989300471267484496244187594836475902666931988370641150464522237912841211873690924933059200126048299874039510569384533495023335304640361392911711511307031889018863946435020771946183907283317899328805790707892645097670453609613151158446332598520921255785879783623243739874785104358803567601275211079246943548720269634924162417269314324083693698842967113235783138549672964584466917698879498621923466391501993536648785224198520993746243790998069745911743735454045898482857763653602617904283237325498232420933806056288908522695620095881247286588469187747835896090367050460246664573314759744337105590265513200718443118140213951707951020385405890833851729873242428193599159945540684628164752222336385130446020017504821753112531415889874528776732323733766952050224106671838165478852193407136915799196081773741720285232779577100941202430853598368043349063216046132173305727505830246090610449540176076684998239506240641235826282956971855410593944898482203674286415844328062765444768438781658492271112818992409497332541455286336392944580646913491595134756390956737379294923038189185362753234564039398754558361329930175138294490283020158745371676375528171077708632533073762207014582456343000809982562436339220715168272035216587444637970269254570970232410312891837465774685229115535084224974552673806874309349356186844466894303034560532662059590113275722483188951871039307527322125321128403142649525188345698524300042492436478406238687044924299063483389649840329852577071094978233902823366624058176280614523500162703586079593968786812482097074187839248504498506204446779555694747169320213678064179922407736497397336689744723259654488863590273087812924998703932078418444925954726875908733777495375895633843210730482081111365026619428014688745508376739620689455132946141358803631156338911099384276232383558694419393408361900965968182977655279113906380075045603036461526172874891381127051857780865778230645337353870599878177859293691161223106697273234805998994534907930303122043542085921499568117817420601316822541447797599361012421965696316303852964140578591991522984413764577956924596686425183295895154958383493498691488820736983192143771601320311601568506647603208530821132157703907643017466390902643394094746913881909772387627335931836655334195087442483351168207314612218854082820737106938234041196499920794210049640350685498376866827205680744135755792660298074459921062484962174672967799906436604734952999040573400669058743359534699676838841626107890697201044034440374403035646305819881683812893047463720142058922463826182109516312606742814380189685914380502400237880077723728849113802645962998750520505107629940764547230604751745008437937128166834047934730425586779131917728948271380118145300111975718367855365915335298395247494469794514637126478612988216166227925090000442515924582441818506112801831974150808324291828332488046362066041646481587538375002700573865444144451396101952996050769671302712902441135767408258430427170736318479650481806673434145031578728323411497463901532650325117164089705061564571334039294382755488297628592718554637453807093520203024876178083150716283975638644310660084821346858606881066446278260284401650808475218216492726548252585150749474553522151583783292470948923203169449701760471804729090738176071850910770076412181357658106865170377733644250463702026722231693996831027708991319666018596918687094808156671605313793200409288516918449538052937131901227587672659620648777340552646549504419426975743315183213927904420407522470301383728931878476664501224349809017180543252625120502353645500507689776244416030017529430835769588938255449357084393804933221639405188303969724526100981063924764084248826549083364071757775443929680082578402834079929173941849425525427220556665022904618043661447063972553697204090409809420914314547128915059142794392085737925851373230035230645110952230371114583752585860571095498263418874979696483695234206393313277898919507264876789420936732265366196069984773292756192023450087261457425655368182092096103295024796708411001304359116064744375688460741693996424306366948426274257653338644607604415243124730212035381732440593918976884640027248858536186792414335234176996410459911315328410757902345990826721710233146022756331730187304705780355637839594690434699726842407970096073347125247933129743648875511585570185845923971070891382731480563249137364636880542798736744524001858225320196022679851829805055948830451604948842414137354110285644613613690856165911872978417465323248123871721028031260165419380059353778372480708019481143388229422917330690330319096949172125906356325216991275091991923596032277956323032867356135538663118398825775435470978547143616587462204954590466789306221829123297224349579941203801942746113042698855902507808331986693399011969872020718371572104392624082250272526192163092657516636791788850062162956393695164236048325627120205794028280151264591514060752344924614128144163951096236140655650207427105055639129234276132964308073005217046051484367357901883898228807515032038819057706733469754106088685782475609365261658166859320869974329204991831749373617965062430795788565208489981293916489909358618784878200680060054054496752643687187015412545677906716116789376274934882003746469721921812624211198939431778394663191198736298967777865974838745789702965192009209787022373745487326149568991606701669570912503792212108097707375955313713279138697989640103667337453414248378391385440143887314443966923382151666085953162587391471091851188608452154432976314484194379317426871213621225948515372094712343541426642674873114685951932965934845993841374490626513566591733940406656686230135694005105514234743029919428428427585245132501342320165915719699019455975413665998048950879674370600717258500298632366744306392521773184880748093202363851067481008897837528980983640005281172650512996656674899414688509060483551150842306884210255314879525976228079505718565131595430664028104024061196168087774752311256446929750124106114159053113363590834669514880104415632327756655368826097124076569865387616726879161912927653120167935372054012175571267135840721957293035055606941244023561546642137425944088119501985391692601070296462412954692785909147635719349295695474012110591948029980463170068972184743573439534115831039936429692669660615135337456503834742465170213713605268062973131898848310021484490511660698729296891642937057769974144123625624250849098354860230910854073615793233342630718352141943950606356343542921446942813070972004140121215744564279318123579868750873784615039077613443301404146737237455584205636630232113795025471954582066819160492936923712750434780199653887429187079797805298833304351008014137466266244129185923684555870251726823684159366193398567726787819681402033433243690380021442757916197685549054055932340583437559728071964012720013713552431172797573145415370014397448756334011534108529689501580059852613347225278425753308609285927162475133945325207500995680706951516005543341774988914939977179315306072844641620861848993480544190719698551643710850724646124073968869325715222662964345171749341332807714374083524562124800406785076994564764930114744637542942112246664392641016118952073972694130565542316456158617429587508157509663442622252135365265813077423518184956143048984224772186833125305997777183881566888769782394925431521327153499616839862133246915943024102809557162538949616135495580439780309186256471412880139479982312668824083194537484317522058164085111930387358932425205816014305650932362965569878389223636809966508957767642501152043312986846368284546635380833177138814465673277708514555634260733383597648174004539728811448367477147962809966004969549367493645644869145983655765918272966336339942088720512459828733373329962778548719363831536539485192840465308953140135315093163339935825383615134690207513872421123847555771684337297594246117544630625574378949749235585793567475855233553849109834298893549865221733733734945909472111274217997653543920481548786849122160135906336626879124407705405419283243730704164001566276056569248152583135276406061950115125610624596821890388716179354168240003568411779905915480717139037044759542694614218240826502632753374712323153481603344765954261823522510035794599492836632381242733541944173819485150664720723038256289311779853022663268803679492550686017169649497316243264670859259925165572964711659273647340225189798845503647332206504819648807481306171011096657656812187826334937173804555002205156260649441713413907301095956344437837441137740083121908608190869604181522696818254712625629666851237291720908050497108571111590009189246071155368496377868989437938914022989738427934506829029315906792436992965177832404146627748786095115294506146166864969444545406338255937117713635699926550636222152957848545416235656642399192832264115123009618157296324243049561182010653075293788662788809725505052041398096858100954568406627841675694209772180940526160504545330201215362860165412139121410304308691500003322858947909628929138045672171687289954705877347429222160436496514643516205886305829578177782884197927624662638414473934577563615532084302847651784533633888240462934392723169686830859075337580409309061682766395606636967605035074283999512729185783310666839427840503230185731445915802223594962089530149941258672216117520633911633106583191058384444148660067380534975188723955107236794853170966692768479008211592673778967788576242454740292865323187442110585198671141754734237588684910120593742464797097837111465977181120406072678349475850636299530955501257069719930326473216935892310183866426320306353420557700032241170349700558940862067600694983819169178112439397371912329917741571406992863611310641273170724250543699764613595478573612073981691545552318442322944403473702156803401810044757675866367016916314845044636688361799803170321629653558476354491936115298668918665807159737767019279394962488343906165374326875769776577572071281428680347450374991781741760917102321459740298867564427099494837732896386129851606438872608376494755239103592108256205806856241690665760592898729002415785030167952783168070259046370823774990605986902900402838169414641282179699664369001388154423768991625317501272927910229067399826695527110957360846111655322974517462735169680930424695789064319894226187332962398999996480998006747750663778431634660097442918738739473030271848345227417796549644457707345933988600795557726512234148260938644255746325319062286154180492664296835913894749983959692704668333945461813390604377971959730341049117031221309677752811321654957094778097271726502431566853356999084606454485171729487523116340055450225139239236240391096816379119197324015319601052903697683570978081837323846250781050961540150964369049155030932749514738493887291793799640534806718340823343461069119750894866466781317411233848234900900903134071255123399067194923022235702307016737276675080149459618967971516930940143997520083188876690929439328319840900835557121599887899925364361072967976391663834570267455087787622627658143735046121954331795650200845165542341440076480296535179961628680130144042474635858714642713971908848169729400265950322023722481598782177655711650741128967478745861019037424507479160901170899508958206673496867990990208816701141464172157009072453906881302808059663855491117454282112512032783722363432838275767816014943831536935663099915590185554226824842233968234486599249949111181648701677834043752597021767235556932258511596805646931950699412383550457116196881552548829348470994114610046071410376062757100427178107253352741624011597543845328352481938920962541781807995601938700133582273158437258423021161960567559783099251825990448068308882683682780662619823208914670867781616790021106521354094727137608790410307841010305797071002609309232488173132810970455920292082984375619152498026042066769289755710407984608138195898169722409075651342555532578571224381916216088358832435691032224416756215258276866748150204322987759287307407953832485106819655763249155289131831747475714556889583780792408810110728940362058257318843372044671941249757042499712419153302687077767986400150523729631320941122081834669511297071118076344466444361091899027689756823918863769633568181790381298271958690831075031375485649943905733977066399875138785927645752772998757208117790458576858902005800704182231361199331071912754179529641379540940599929609154418932521338819490265299838951589829052901499880896121806520687331695891884575562730301335750348785466126532825966460793828909329665141855094934368889032812291372401969389141530481094616119705394060093506968667367690856007601583695586794699726391630078477496713582445688233171241032553086325694111345225563437405995202917589298439628866861898985840190209103917225917593352199427550659520434323514459497173047962014894515324213195152096407998659953095640922151184132467361110000924041390766885589313580465289072888691444369436640194758393352240188851838252493684967799606908253081229928545057344464571573907235675105881546815222324917108287423469997852064139356309781671915652863144661590606622934724409566396706610878047893918552241130375020311934884732602571013237123916118536607777808430819189659193373770905984000735050914604635629966211702419579549019806542836435606232212914055746890564523165030250702936662403758343936168419105500799368198730471076153018285301097989851700644573649217033376621551149935505302558836781265335211236729304261888231741154774213479875162446246834851067639847015783256696863554952112549295002771558460803956952672382252131135767024126034855625663433537379197829699484495822888208557671602525556205833363532786406236635220438200124225365014351710337117650575082736854789604741857907340575250623911757139786774952311063315967853047375036746721026733521465304051832437319588547075907949915798033701980279399502503048167545849457878085688038456535315941678226987665244484638195324712381348155417549875491932740008533347625481354995702295776590832261216209769965162467578125508624739484067489123182959950781706902256745218133777830838883170638658843169375387350599067616512042946743803306776365203622135057348619387673816300760184570939666937805837913716320778498603672253376703212944966032174425742210438820784258116623492287847026659976835965798416897876162329454876258603332506204967179469517621771969983406323589568520536572284764062886786236741194967150987947822659136501930347370546412326235342128342391595453445620111796031868071187301771265118315518101266914152084248733040355288903819200271999719748694697282563234524687001984542089069124252641309086425637614669158271790128930120556726980201261484621238139640944225855151102301331578018844784308905818169745350041112368936127774399238638861747469776782151575657026405810018648987773410321672285630476631648643895273085232135425028379634488772516387387204957164868857254486800888984870890861769876904129458427097980544129382002606170847806841590819913001928041422773733477945409125064115717717696530177921002348458582926519269518155037138527973482829669270387343018517321905819950905206447340101386515954512798083107773073436854077793849384552872185129838913806099558099625077818169909653203819801117355219140535947263318868077299249471574074455405539394695436554835789807098614521869082678723172939040072251721315550860237982303569797804315475044692149542354726787516409851473446385368633486134118567191005305854738646494623128274997217684578551616089762660868767041193080947288247338840155484680310019817817224515152059683778010370731384478345433431450397694937476458404334036753181157881462068669718464040737696273835456894380888230351635283640537514511658013009112736734859261696539025723518972975075608083672962541250099445160885601271420139734143184833173640999204996966240639080907690265377718953414071939100179590660146724432292375310756832042539939597277875179615612436849207095165732532702317782433969027706371542710905637050911311094513937620243168073413825001838910226883233113061737635874692912708546550996358549155958814528715260534550832934147365557414747823550745078518712240316955575637615608849920536520241974780872421169583689348893627183032783395672439108084869050111172726787541636019947286662997896055089978759342400062538367494995275698611979293463969574091423862136312131123081834588113675102403214377470270188549952464972375130783956806142062742520298335342912557287489072334352146126851807469856473834761376207682550472458515035325540308836578038201961690104400959142097894161526502472523095287658323781414408064931043264524336692894857301006617360960845878282136498634079585555119418917590807501067965119260154588318222790358987106423159846530975561514987711179712492850800545481587513954352413110478058314017707107963684327135613900368478857856567029179813964386614101528751933734626246439394759158938366023792713125366703583497228441478036040471877508935192380830572349743863751063182512798221993013057338821804121293626061815587773739324077611178399302122150637944900279821334721708423886381232443245481864161269212378943334162914245673089849060276160335093237998116704735900887732983304757465210876122925216656151030767801974387293697927104072575644487238628778594198467689274397256386079979451577833045249179353968836234504145310057564205116944733954930402994075420105464592983710077644909421421468053682902707406151017338867783331613947478325788049799615141463709897116031046444963728381164195910279984171039718532998638411844536951182471059689881495132516013561330722617290623155307489308608544001717276817124938133378952994169800511389200977314347167728602287200627906079055241378797997413185018759572575609709248113785026018758533241367683323471714892272520757593971587607403343576106162036202458648489504543833631342289914791325094853949957102448601352545495196083166249074864065887179602411204918388488747160564135149041623876182096254576844398177201011515001068973444100490102791867241914463487523257846569126321982315216890824570315693499614528990403591412886745119617513928121581933823175677983033063502884341584234643506602463262674829187192107150878717649102034926176568442918103132802028048850044736962233331419204608856112856159589266578832012486162349218313735816940576664228271629213808553800485886165813428532289149317072329474368150062675135907085971903373153442068799580881665834905253749053137541807357353726831710271910126130597685000421859117749825611472104467832114296192009983998799076323167099145347023914604506850398140469854787509536534728558419230188041672725035432896196262168978921049275913161006477338990372777491471612521631388618886399122006814482128355324822992086683137649147062371538357594949150099150924430720171626051558330145305364552052447107412532630983369505282125684725772194488853160811388520130225943887635774896243745044482166600976106268497193693716969780205008465313937319017502091431211380962140561881048003988551253345750229010630247456226779062162182425144723731015807111552816634364800478336424063140329461073531492112008251759182774720811288280303990643836724639060306332790591800577936317239518751429631767364174886704328315273859163162398989578412139444289482055271460944472908452138137100629910825597108949129141218212496412931610486006062436812214116434349319136243125766837170885721310704912048405939021859585176246752082135095073361752218933074770521468609725526101509292052302247527436127487466989015150918800562676221626570514598342112727912128899095703068797577656140002007885779197237291121812660159565249791927899198932344483607048943457844761602623229872762914182658995194633248013013323071972468205891536542721424731407831967826920025682943162746633208895789715191784615211663685872679971594198829368639802211902767132187140531381168331462056125672283491177447200587673480489130326477214792977090337525180163273375153321609412906298155913975394357144397001928335881303433110236725531175621375424573796863657432270684862142653499647182867691969912593767609228785666145423163034843569228822353765871979414210053232461690860706301129379722903453833914700336388619672632206223292697652397680054668600553069461267989755708304777341875854980719757690314462005820777618940601408322587847568412150180938241575303633182783140991488414097812634766213091941461772868925289464036143206713166446935842893000675475691063209741694976864754886963047714574567004012392462520036996963732618195576443101481114279831050354921989732675740675877492338866949202210444168647945425528957084789934540849128498632648826777824080506505615409742116986357448396703026924097865907013222457099225936740696078261742338005202232141559715542457735805993569015131987471304151138984611313427802396739045754231406560687296287899056990875951500721023271053391057189783886356247139584879321722217393621808788444129475138546930439364310511711389275023849741250342302215156867769658566245675531334633141038286580071809295370206636135026549303115573611895289932972121140157045902606356108727531472237390911451013429166264533220104748749053870111798059363249790846549393136965394398923245514108322271990348708886239813865254556226520744782409438447316681392249454505445975447196773017253654507094421388370732826761725460298226594227933097141376390415924918336292306696520979905043843624858755861570309674641971290802905135590037639263530302018389772096387145450928803114859566700534533891200964246411655966981960737170429389543232466321922401861031806089938246166803240023943499993921142283211552276395766238836768558645335944737762954978808599383367925096653462989012400180612191530301123043745846637187061188114026045699189319379262811203480549238236549516802377545970872069972823827755702371371926636004374693577073565601627445513810966308372578964672877361390759025163284883208540197045943033890928385077150026083426311125540306931259191307250507269409218220751843612435756971397572339378099118541143880514780152032570453444944446530307753873582332218282031990635564531226412123386685177886583823883300795797371336331421239435716032285917110783447790227056620680273268065316294275514377865791908847718537375582329468047254368543463098085734353154445966480073975106834955254222689480350632069061360556081274337169047112450199319541559352042084778187607775553216591899851525064482706727398176245218284276314737117148877963216636885416431328043190226864901247725909002915397153125942075449856166402711640188051397651939222714939540691083407549207870813108080380579222488276116025561946879702805209405409610031064919946337149996455176136164634036666500129141984740122475819882442366629281260650143552950396560335969203071987548904510489033839370792403686648587794366444748413311976630538297864177693495711123809004083094501075789057886638322092693424474333522497618359635391237254917895857640053991281165938796776479948990130562436888826885169598224749232730561558295830566551351817831302764918622041427370881420459028742108430119994166380414444618862722494549317219484299283788302569912657508916822873047893182745256057167713056157423921442164906337826633175077923287478422923502814358279686687924778877990210735252834002499021441665133284317532082427761865598693008954637331770668790446277353080132925833703577173393678128324492180406297197916399508201161079540539131178913000091098379777519066909972925768044476911549234754121842106545710317556310980756080561902657644610366223155626552652377540426720357961602708373987533225717116991906597153449916011079041163792890286537799637568867469117595541793397449026752954001352539990350800512393117111165198932711860854832849629832241814262058551853434537931563985020162426847875030200883731975060417421770637161662951066155117896513240547632779284589229318725571061210112354065561407033293262935351103415288503644000831160360601900280645145295225658772854523425509601606433757582028500370649074572799080929686987381486211762881946407908020639461141493716096125865253009531254110885741159232500245009606179467370950334763830083729070747749353223438334289009711320874624173024100099975856679915403510290592054884311412720887639623446497697011863847466958819130237927628055740711625507558484279206292232763341284598572540826616273361263990431921486610519462898124938104435846195945826295209542209500431449047058700615446354492680577369137708088696480064489342393279520535974565826974729012007024757952235585631271247351975138366869989368088638609518096217688456574389392014128315141112014912337950875608773768558919539765386570801110201061314255322675851105249044523139558959904234034222755163588586727007501724813712893049624911965176295348750577600341301762462682672973840621951399565749729768952026763867186214991216426261681554158838248360550055368569296084356636373705482563572426275119271298857327681150595298901791135927538713123985147291590665073389143551484001177631931735832464139756898607883753187752720918090021038299014468714513919045119860384975839613607377287230237906233309862669343286723306591128846409055332304136315938570101634516842473412067023922307369043271610943113600095695337167988437083256931356506470603328943870694260809545256661361374354793041311908969079738054810180763498325324941248092525528004096184141934030393138293736280534586578299265029841079228224529079241826802600630207943217301831119528228479452637498679101607520437610742134066910147425791103366943577648904130189377156505756172404746514701803747247322630029519709567416023458685302661115948285920899489097146879856425166077402425116122309297811084180939161286008345804988718757250682933731572288037559773068094594792741694654561853739541025734925937256926897418166089665860052188893094057767957605020210219455459325016597702257575351912748295152427292448086796709315396899772809421523782003720107020241219691239770618267359567594548955754550091522865254034075019315441950728308328937209803971910088015760804562871184336767155229732180412851099592540613529000997289242851232204235634804723820579422791461068294967193630752369628790753411494390639347025402058339187818004030212598403315500869416624968045554262243636178035532552924433783414063969304074163866139581848933265862434881735012731954334502679838618771880993057194021739897676141709004178572162472725314574655295897165124008351404370594101862644686335354523002454877478777098373343132923647342315680260427302369064580929533241807637773904879919704880640888802898057136976877425717019211409038507470612211163304833145826836808600286078819317921498700785270787174299423981845985674155765657631109437165678679053233969249893871402177761830529715333519932946054816505102337237367106615202107280775177736122737757680672215321645151163702196626429667690699874762730638800179133633518337529018823061981987566400338439504166966786430727121316716827207640212409856903644782405116386487845723582127022747645519223715924850798916408321466569259222608964338671066998692785471323063574712879404852762942632270554638587073250965089178281721595977130690210998017567061461304029323078438870653066574686029165133739721242127261661161672775819583394334212310143986808256706591582156197696736127653179555424544000390802044582658986297613117978705258664918284259924659998667904137222065964467602091936108872007018595501943885390525094109094841303802040141021402456636760405278146541143165701914066915504569022347958974625017723224905494239834872920834367655143941949279853519416003461828879086714883011052530303250104160020784551382830806054067117068965272332422639019330393996770637339188326600096069728920308097462467405928674731407503861245203753683046459400765633992095769175304347481778115741828475150286891948530212815468253707666883137515323644688000573206787235176953256516299393985765145549947521794704112259002410856782030394713137533277934302460047629166980717743818857603805918530763992768111467595324738102846849566643862920411393866238352067340908590450328337893527715911091814611298106210879288116249519049686497072514547677979865751626421005709361968275797549172312724648095622852891738955630992689906954430369994673264756602000175414539165737109178958257722290523263474802562447559081487471332614897711143029086531953704290967025060720947188878317573336346383865213577794453162302471255816246430989924924405540797586714626301892717716541091377599903277785196058730965886987852436634537677464815589261361956361323474767087143562652957162843310210328467203715045308400492339975186164797759483962157432669848941676798174368011226781114675461375519219690053800325999901705718907432651673432771128413764459865309929993959866641320420874886723823104072219067055520479682567894973168220990504108744630954890047697810351924558315765961880572083392724904298834196773483449600110796557588394228234942476023743781838553551499109835896023756601995399394431919508538265750358070254250160500716221423621592873785521122833967095430434987166875551406896346302135495253409449357997210007367780438289929341628713777384882629156255735365954099681413277497898203808125479905575704046237778903739389684897852275247875356974865122169266627241539231143523718032538448784332779925642194315198832569826361759358600165006676331271765279455178226256225424687464665222735574732194372208803924517336500584400012926286698618083997559307211388715363762048348610614711582140097924319396839574670059746463382147407035198693346793296619317519290767842606587779110197996403655836744403272001158559225566226668974390309642730189475495409636357447183772560861251206900059326009087390291225381964577842878067216481089737537458588456863324919643467911110168625548573521203992274750508567954177715197542763979366626406855076289509542573924092208516553297769698335795955540846772389650992466019266714493571206211191478534044952232599982451980416403712925080520807442374178776205359650611657138859560463204465426011152452664818398564633150131166370441042693911226548893604149565285592222788008195875948212110971185350536220961725429102977780809695442316479112840105696961044833611329746933795849999324314076383870128841109021712723897040123251459137956849173751760216396213637627184123564275317485595381529006974965502155203720395940988519903709981542691423221027942093347195589787215321987268210454606875649507966195591966311880480303025579093364664120388587145435544859576070305182433000598896334736864809400454230321948126133662061984728893178807552035975372803154506253741776376219654868747200702855535531237655227618031243940609921037645450605787096897467189137494417340491160585194485487666609713933128767231298055669757684455216209241498559214115313592056111443654413586522155447513253082713354111004935895292425947183038347094111930682258941599202813232946551155493505392669982103157842472102913808594864722310258790980087085023307604858077188510738387316854743200704267722875341211841777056261030552547611955101981111068463104492309976681491299681570173339669679186891857622822242398174715332208805000620790023890926770603943411165369644575793111266740667208614837762427785387853002316333639719601373261763813611390231549386249932369762031254635445377151853891683947656267411599781994007526996136977462542671839370370788676164243233082735296515600001722434714808447624665348226121444427287389392257782940529201138686022156329926105180798277184980626809051244684568622010638365227400650956189167307779415604543253509961105825759182134133887365635001004465129890957143065290924498972583832241526456031924567150509636584166170659638435921377618096775433855949044777640741025754745984998461659988792200614277020655670305650301069140042310232745753692792012285684193684036718317097868051299817428068890958381171316351045035475372419595597604461991509427427367068532685592609501502837558429298871881864339067721250608668094393501502498096523915062758951926334095095180520838732383046612316523391292532193731624606122584466702292096303161975295934188177998874559650811260671141688268277747480101955497613939494736197121761066908559347214848862762481570669190453531915182935350693800245589377655693995345137658830851186596704600719210617231622884219466914111388838537149741727459204917406124493681273588639720057586954377620260098706053573556149349949582037604312699609670682385076909641286144375704546523566061815076147346585341879209634394301004453734004201533607733788135392952069111183300811474334994805484108009081907243800709604263595403678548733762945383979490835904154028795368723318937307871464910219058921522789199671265813593458958834665630188274979711310460495760347992980108887422355878674350867245857285517104908168313709092192058747763906611486160648683146088092436328203784816726048331151454064636630264847108269850977548535981958545811445244391113217076926015961349067879071214919459305786224431934928233788804052348406550601048597294111326442025573341195324327681720698070042683964287986750556770487138379818584997138514751572727007285768572804540805395269185445920641178589611667119953093554316366629053171004810474424038760379086622501836899628377018322119448831391034122610855578475083580511428799180470002659835299646225310233497635484482861822295432849431200495384077394818305561429207860759960181079637574898083825548196701189048881260211803336453481182515024136142194785693372984147555999989838439800739674843626531807840437701123802325420266218290713010642410120897333324392911058625147375603007843243279414040397295200448653550558700794623271965578347795915869860372757144445102747605249607738670073031079714812011500615366229449346953351043416899272288719988420992732021096852161202300067948059880393837506845982975020083406116568443633775705769055146797448879721850751629856188924549430119594469887882560655132581062084520143329514246635143380734301165621627706334560292095635397252152321575065899120081143241162596903410435537763291021875688577440214203423450213661780989640566691183761157194924762114680832995963615229322795380881454787069810597635474600470230542052537579966265358407290454222624931471414118280153760708528359948335097002426716066152361269429343738019353481410128923487602788995302151483374845960755606372555890828224191014815264435632474357127656677465328080435521397422554682367184493671341552256846769890693523130181942792891186570117381937425455322075629451510419903116400393737034191587279781086372778894255946835445616132597399861076802589635873141832314346940385200898113132737371551888114899737728777734834095578490469048443446741423455754477720336236878760980984997742883982863707857909858606634379348553714930640499447128271248593786320643890407263637331133303863679982494913980108518688982641776725416134527617479457257212665250447392516736518363600563324364300667834760015708687333993276732309969362967041610341539605093411452001612643351184030288653954992342508707312757767411881860101505236407771487085590184401251355401291309343414185061949136694784137637527554382827157392259133977455796467053402318091128682352616607658685282549564988074536876344762726059017315489062344942778110923290709372536885068626460108457136134728084479998388606711084051144629330824662545617724898386670952650655654641280132012556884085496504479430537188589466323728793375508489243060630498157271130926229549146121851285854552180183416199626216619623083377539135980698498393811802853472440116452273325737930072516304460771373584001367103743245775040154131894201377679262783744847689620467943043679496202385999072058498157091706544913625985145938754243936295478705307146680192919789189969333766013810542115775339849130513157582399642194953362496862879326599451473265679996105356893402812649581594413598741536879495268504462409795599769977538212132151992399869361826158267545495500717650277328064953161829440426357818291620066854397261099154674517411626108636971905803016645156673067959625068993118145921486470715061041770474594274798732800065005790374643368536901863154078369538020990727260992936342256701041642064293684705810395167425073502947269002030483732736067152480234735976374321521039196159579680216652241001109443311693067845191829923545586153111089769843223148103633736317310994507711550096342649907553214404425840159352270344651363079574700117856122798517193345808012722500112665545997865605946017441558076481544240896625714531933623980192925669812014762838889102462929649967725477316036405101471057902146582099430983259889571051193999185512883356692728037014671639698473636217252128942140921442080487224931388293059245269207573331485985222060911831166808639246485030944269603869843831796221369190966871655743998385080179426331001495180660603492838877118621991622934486701554656980698445939416717768698795653296339309805028130144341392074107891530414943501538343901123384954154059643912643469741258133306168348404541142482142644080540702472187209233309618489417275848137743583639963463219319060218597234878813335254370204100670357049136271385540159454024911444474859844356507498112937307652745539355365401239984270006353997254220999749579049587295295814970416236558280543487663867459972337054344507610579038995882955128015745034449419637947584426017819118918031956328627240357211324500899745214600558102660261873058843275749112377538012558064119706361823904105626749153444415438650097345269656839456773898505246864215967888758398833239108392797401242887177341434658447599919297232745800563475302588913365689923828962844000910902882756517381619508831238138866639136072186738488759833731908149628960083433560995303034899753718508685670392116299299212165903426255224542820859695419941546524676975731981544507791265626604196454405949358544458573019053956669947433741282046131033517962655701913538105057373532016771499398452281616971963866695814820985813695356348393912522096993016829193900717640897165143477916436654561537607065621288677973000528462761103748452164499786496825281598990481456412010384003938481618798877341352901766878474978049414666869367787716630315505371509086553582847317185383244123997455810440174709010481660786420396028077087254554010554077462019541071317477142563522929992429334241152236441958791513464864628364010120817798184066551961270642743063789732520914016389253101626134295879271509037167417765737996798337463088928164831938197445442664653990801687474123256747581433890765346638438832372112786932721773311447970438143481865506890159715631242088592658914581976647683400382432099068452569274179166348750370475278861257836838255701435909344028627064985286359354909738068614840312850190154360906823734462865863738228109714552774231693216556090069113886383206325827696200198353421211969281309735068842931038567941155881002472450073586269615476040696015203946127739333261080807398563277694895211928430280009209432965880435083036624505976925704787254447920599910660005582336808847488706534589738323992334170141049880167064986190802138698303846530690824428556599154979482065008213085143510036359452691818579848136418635657529220124089311467820696810737414326605503297376422609242316322603901398256249042916282110869163101790605064608070486772550397231426307680375608141325405614130548598413862468889087869450511453672859406323292663954824751400860275712615106622565586131434941119384636533118266436550903170562348954529087910159543971796051410404132297230196433619526406525407207179326468471488833813033761623629123961457892655852060728343581924171318086462214979722797574873533552982000576374607303857116812354196496114302424526840060535860094585277774188925392010909416380148320822869853716671738316980446298328429352756122745661652444557175540130122753427848524117237538939719796850425242306409506671688027429728613706202947881114928034219227035980707930964576969606534049717274191216053727338803635508340632500999306689560586300513383425477352762198888154903532967121726657024206353964830835759878842237662421622178140054689284098233320926151616855121632548050277987720657578057100752620140277285399144903031326067609099186791389214012126597816781364240959261826935765455531731376066412721992763709590716198717261227237357134588006098935701261240360658424387028679455534738558428376934827675127128717055729521592104615830818917368795025185954868634087222443840359862831946330922058052305197377938721637439266625237714874779590954540698242400428150987532228725232140081569678668549973425331530345959008073140956612948214120641572708495326510135577277547974204046058387367549337024182136426144955964156462655735865806838592478306669862540409630177156669490208166868285882698813270076127761737930628971919288535538710239720031711498624879459551045285177119865776414744747504862415435320377479075338883967075111304009045440649781732552782498649983440287349020436805552313181651307050755702877076979610775670317383134836633264563493969848134023175907467406230664590958343822751093867411078597224824460517643265779404422983459506227802594877896352162533353892320791810949609286144407322771618664533833399990650903713117947371810888236328348972666501423470258537836116649020935104951807704753714292082933349333226480106015533227722355920564099400322192231119804865329701228300403499519444205113833248051480637727241772027267772086760112247976853751186043856216814980731152744028342725884973595859680733392937555259730464484567656430915230873576132270988328979506624035605535758294835610655545875865189935715876174721698929198155877665587079725903379642579951805149248242608507158286643804812707889616295980076846500442110855716969554681971530289682635867501906054580452273918962765192282660251893478392753273727430782480545477447167951286998270348673713393517019916001973232173536674483501398211529666222437880148334294117107809471492022326411399596193374991798206216933054634545362552819914765390126685470924830665532184247520534977625054961507941134573403538282532634911390539561647368749511549441039646746724524704077409375013925790560726644885908935504374502279578240607108556544799995432710758446942554732074608007679426021163410745400475316390225797646066290567029524724281537221416972874426494400258639098885097540736136238140493421812705863668833836493213843988592072940168182332332411720570155731914429569208217184067648494984195885245213972012146578658342334965572464850163599039574335524526920295555860522917466416151938476490545531779068349646376644028395781279926595618952554440569332204464637866511058945553119999513375771541151937902855999362886603812804647283389414025405608898944392547086694447848672369669409848443037537543321322526640230761600330997643984331072035668359178851752139969780603317970573395201984173036437801451574842921537953123111592099852224768245657372912382791563139273280810203835653815259645086748106714381526636013905532704947282099647944742358687453084488634145844479227201695365040771177802953788777724577797868588543014843085139642289616074863838081507389572511844893604988686845642622721127197432059005126389257892813821734565872259701059705701002576296496285542681865812531932212352937056092742756644405346589022332140320899600049876508287745247705993688187983687924204689523992482174976135637285127522230619381274923652777741675283818594666373893691117620174906987774665192309834435361694526283167125902962393462060191031014750784070995816154546745802689506774608223688854855438792648167366954084153205104487662287577029885743692055883044282217835345793747935298290868721690738125961643530795533011555272605977789350850600648331131572799330763258169382379778432826851347999959069636168392478191767117525690934725492026444669553259567809301553169744744518290265503034097344749974280492808307757998743334887630011748910536627286487205162744600317206201321522624736960336925997064221589604244606820115310378256264800919288565391450018085557044446828008898422118974668866407916005541557899327836799248687311104915830820885354753415884341817554854465735358298079912750229329273802308708710867811121760297283958149214142840460118245401889271059131158696051175808406310965729205086414582274318901029545427597457559371105475392064635522407507309608944324274583208283703695797236676731804008288940894433519350755599577693956138521257966710153368499194100972427984594926933047688752760654833433385836809074044053123016085090758483726267990301817012439252266013555140939156844027103598654444376870412126734349242765489639222657404131995204545247325949536136360343599397580051613486057351653885349146821757769115858036997801041593111078095899806688618508165348006857843905646497802242496166713691780101894381043638264987254362744355914690432912034413948505050188343897721000168812909017519737191291164515072817605309174053725781047700357877883855081939062124149560125211824812029277544266327311357241814203615767290184278170015219606932410495680721414910356253941702680710998771480764138518162294674575996750784697300344220971728395860591760509826198264567899706419740429223776863095079752975207227677910677665084648375296749547289189854289458707950675086131089814793596299869721742126690463675093088484017273145437921471285643271919574203275429941179492299698911770831607088110581442652236163414625932638673473992123681107336765151089194827745113184411744862507491652008848110453064458753596482002721843299639274798741171089763187304523091412453968446030463435707729109395191413956639200724898516312220696184075873066522726234544348867911559049938319754534252929143137593798109508144946250886166234105238774393624354953132747225369929753763138501453349610470624017520898110791394933617587655993369367126629649142063464530251851106671407608234398237108326041062762255390678676928761876108433333417952504001770441592142436930643363429386751653040162378392642243285304315763136761235772549078597461533084024846177591476852643277479055297141539490819770651115586985136048972033997118526141671739584302088356896846479043522828106102481253289073273313096631532227549423321599537030464664725736344704399462592485692878480039537708770239281361987667656619243516012939801536639413966952890815353676339255492048232465959288627576048287243625902511409790175230713724380997250207033601594677598711549999083048481444621453505839366972132898964279539531442265174627088528125923031896540427242274040731493287180452801999734049958188172600188276260228870158567574611307920501642277195808936230333921282235906623039658470561962340028593587908526677469108761143560156434930166241407092165970280231796901520394044831688580294023924426016235407220490838653934818524652848895562770650341090227304837142811092347976343419675915164838010847792485151000073687095838286457273123542852588899622970782333797881496458803161480933504213881899854269344276316615666575754906317285660054347159883450168165698831829364990631778291919814097402637871029250617581095840379457620781276412540741962200018717856726877999076424164338145607767162959443747355073867355291905180222867797946156332937984907273343296350246226924851387714868092625599215977455503260761107484847250711064856366336794305010877324570501080941644723552280151068613263300311934981517937875666728589358707096900807871040504125340847832272096652723714110722470311045391000304200824365604853914164331681430474818821201399737456787435614691261473149255229595128355585510751625903051514129323544525421132421152725268403728825021473701857424963785682914620682128087906632635883730998391026148347628917414478897883023262430861806674652524055549482577663365906690754992012394572705935778410090603221957499753129098591001003784703953300639459141766607355043538419767756437613471127713245217152542073908514324872215503464964309993474232118260996029387011865099435171239332462171810635395438578373854767760773061891986301929217783022547711102745420629510627679876792595818756192539734209878550353503371706693866105711513898503115203248998113724812860866840468865313617428509178198153700079335894114619144336894204761977909289363496034030279691429267436761814369758109233904837398783922846100541257450193963745372805962874085495901319942408648680595878338866894266552207017707369805544257449485296975807104904132928042631281401511247054772229769289917449297025823624401148021704706821045165455524435369992429963324031108674881615651196819073878684966864699325413921064516039714800520188845281963611721926479524476936719045039291117499036791102944720275949703770011642412345662269355859945028818228763466004538361989059276294372398279381320709763129868929423987571623149180554663803363929795387317170394857320894898284485930806823292783685612720462737023079073057006654578817634050215187363336460430463989911593486022974600692230319033372662002180645820258705124319383059475612825634576214136199024927792886005630526761452141459696344026398577437604671122365894757491294077773095696085421962159949898878883740752769711825001088732416016689938151041785975477742473091919481553214821196652562240687382962879652075940301966444722039061609739424697511618251895771342557155989064697167497383388105666660597439731558853155040347906817059382780833815766524671424328333604981745572736175121958871965413328180716468692022393567039920250960192171502560249389733303039116955153682685909311693792415830944025999917372383231546934808993126067928881785308271657797104702355871320838918455875730873746844476209990225850215960190927729133185653040641098780884337049171755176214090131085155080064897566600347108448807305658943527905648398223042228719295910878559379365842253359910335364061576362386204369539239813984786877319902737488060933890081034468296623981995540109962458939730607370331505916404592348651603596325832140550638943428312930230197447779861878727922948282291403522158423083929345984279619920061705178117158923768753567135557321751373811654944412614258276491838948276579872744776183497370815671190541137420160538286737956942455768064812715990655771844483077377127462178012469413242293660565410007089228456496260333241476371121013217253347906764643303272255332905565492202474508952542932898239467516119723327975662833403192691586059744685920810592003964541657212323957761352051573639545292072084127014493694138073981038873451938543172383322115677452482107072918520754957920716235373394679704275214527187116509589261430434604237619535049614683429697752175508926076893722779936692525252921904717376246878004540177781595939081934608337651577767929297811869598941987523788531463262509710671461780750113586680532207645014822050708740999170535440535205689031750993525250236762192544550390901144928514652860307892365323540414331290072817929298690360046285587406897587500995805304739114073606034441636157403795813274448266066093933935969266151452465545769237600247697984996906100467690681460253610820525417638773223918424040916441045884017160937368505194259980544936909892475260290732079080556736382624728978187401464259140852816502025553235375384698580974328074990766648634547343199070486064426962331481322205838325882567140097607404208163280310359909906395352375458451425440498467306490864815455579525457264108104630303451882794652460007079446984669149443250774595709055701697489748473655512521704160193557967294454098201395569356281323947074122396203584141107770429117967420438461654842689653249613818667189633457347413383729698329490450714901105732387207786745633552714366662110468202494823925032080439022168940320294173563498725131099792468168026902084839445676129111180425538875221302847099856175792586987492560008118442177520610188869654126882988901611273395000744937045447953423951455381497182766679505914078262052798194069857805948782643677028140650001060680697854236126091790833112319173029786658039573361784717877902357782997086776684104739844024569979135360313346664942310553531520083171836049942569439725201372242779702457326766161267970759374945579822994097055994873362501499893168342923712018667497511346982348801702162200995219197945354802143537651583574171525689707183606683623138776240545652823665988992763202346325593965479586335480614241579437798623778713224372822357169668483476757921715105988403188725357340077999790188536523416448824762720800405217544404714012564295513880169696765871803407073540117953133217706485024340567160800173313151316566707868703772956456135864009175203061352556908101019253121431200624462417332595929544992004256607338157940810273882041257236671722121966186553035983374923872355562718500216606788691302039247518238244365227045292487328580355771676803784996446582130279908081758166221226942243324414884309983238948578910987778416906796687256969826775769342995545582516228635619230959947567047524846319328436034399138981169773734530518621740101456519203895194439993354646408846930666754720707107721588537164003092850689826852407205957525700715612617571107549410613875937450298650094472531640002819311555007295348297033039873753308113578518058752152020413440532377462737603634336930104512399470945761786511909950870692142966479973167792268686894846121714852881467793591392255641795354037722213042506839330761102574426733581620926588090586748508060580429935998810279184371135512745663862994962953193216868264352319813183422224490504112726651373369354160069597308440694555746158412544351654039265071236564442377381259553445051541070520570305872052200812153254004636142154666845500750547092976759863412724405735802768253544387646032942569186491834890808859820098868823844460589068042977239367266237403009458292312069008041608315005228792032926094516263117190195517708921784703617546832524105439898908865524833382155077325280952590159067999698053935360762164550489613962242793150806284758871320018068284742017030308101308340632750946144872847617640763666300739690827915866806595435356945212007110334932235620031260309260637871183608601437870682352721752118172524768095371450174205278731349539943669688251934828964032986828346257242065336712800721970797409548772590125332603864366198011273453177234594563692435263923501584424294503476940256795126848290616354245854355996255092586525636310463132549553642786030852075036279807237390534264117168462005164268042227991518513644415584429658773628019979999878105028463921922979336538333788822155809707820359379174182370559015265620732216492950350165149986518967860237320208089189120599250416858359630123584071576276856704057303756756562287502933777111239964363833406188117105926024171532089863119863582629127943977292188512537666439596960621123580246021741692915686995485126013141930973872615185768084033210897854897350290497696122380985870401880868031556569638860435848465859340896372175009034828852672373982829132104567261638537619050692148317461415620385083831881265567813692066699243820539000781598205575888972495325493565959786427963894385364221696916697706346903323640728956858296937695119806145888606908529808440421029455371809595205473984057876874838637470828112296651083911794700885785821286420596734437207191554887458966443982658343939528462990257605239084438212548358016123964349706813160175246016395154771537486609482580508997786929774227751716628044582948668658768771156536217609279872368873256730230624018336776182294681439574862808832343867339706608738532673586604464913336310791358436714457001989488384811975154334950165269741108206693552504487657939784666034166149075453983945297471358846026759004467247897037313052718051286875195421473852494296416757111628053884626710731083716485205459888912561350001400435861648482866434781142620930541539535635428396619141405075627704845464262786819881271710817197244393060970304659776741768545823476027493920373435635107154977322786707453394847689562011203665399694073536946578220074445223051018469929599044842357624065878780797699396340063045285962307931575820232496824640997353681818987751018457405591523625089389600546214809352988796934057030351340402676315445011425464771494540448989507027344368841709510039536796448964350383206221904475712124049608258722548242361575077748803392096234733992333746019976886974251021374715928325279566978008026627295042220390784273126964102076141010828477815264884178290545969160370978629627559659039010320671652324383973134915440193122006185833060474763936646655707653619908006114685886201659641825947196442758611024702938610433407855100446875645721906473314371576402004027830746534741034518087952465159119958361392730419575272818535336814439570753916021613661791456907803882866037502622343715806687918218460990345560219418078885008789852671449449356839973007634869972002614731830268391799427327634709421536783772583281781877494923258057703433755923161738200415277883805398485948207551161985960211757042311637380059172242888116185926216226354857628653188023902914376190575969371357303258488227180011751364739504096403171482869682704814004209050694622624944807163897890078532658011906785192258995973192316325851123541327525992019581566300336174141890148325965932803808678067705629750255564013313829641550001872494602102340868189232639562331855906804019852025908046641969920980919883413134378586986175770738576653179388207732750238323867414055827256786970622884683479945889512035742293950621135252537565779197066025777242745834730950269245064539797128144763552405104709208446905199185450506641955695184086455370069781637295018330221964102650067021916173734788114298088451534555767578219302486467213387054428273011939315859179895271952048826799042124131666180484386358302306520443533820562316973288695961942668982816242959106896733577180280097915549447908800648092266761172083030174422741773941808381259881055025539094395511600792639927236560131615634780281466299858540941652240636466209511563246308605732130596136910793979474477363209260557275938465089132984799012253251637964436117477681602857286515723765791902540150663507433808625421365571939317784605875538876136694183383139426439971045308996816784724115751918890785814535807508977638152850621472218099425436450127401758990245821282119421764174200611283059722555687904824125701598962459987732511240181950518125019634815855068694641400000979200183603833913849238047498059786370457214624796197586231843829840980931787477335922577385909443178519049708049155232257769089248473736199046136216980654393138399726908182810730723069000544314166583912678090483960278838377050042521736468699722970429322413676355727001124053967747282058369914110671702038509341977360307444766744288472447620885232381316278303206853472259367241398875457447688752186864923251724325322679606835216139101620694409230504171901531998282254330189011664734415239129988653244758582458161962264623934575905157426146526171686316243322359403752054725903022433513447899053228671224040291525945394537333283487488966690477582370926877782644509626263924329509616550448559016666188956016542078681425800719640499632351456625552640801659969424888486820600908331960618835469927245259371153797605913027983324109888435948971257971216723590926517504398320878254816200620818488210629880859177098875944107078686928189080945117945023180648464633486082010582493940187475987513938592517336083472916914516460556907769404328171957959809751101707717192392377188408190612301935506829107750516105428170560773021155934267314106671589287966769400853899895850303505282499862635118867542474753379154401360824384678591458333048206245076355235142448827179710268884664808047737697132266054865812202980064328523869047291447714649811688030006790443866236969750326221096664261026968438607147247666864360957909890858786174670233129666223270656256231846254219782002374757389890515348461742993713396153867895590360063453446827962516036210482492227142650012280134207032114310465908811345605945615293139347540285071380658516345947808124583298401061002259697076858033913105759047050235454975908655675421305026734389014150260025586671575421135877256684268208601448674536546307598755090722150311999480794032199034709233538309395711830734749675296095847290056662804097779653571830929085750368811876408301043926790220548570341384038652712068460729929917128645650440173349161771633132996134744731652150432695203735560453536895720936819531516968838739664788050306956903018928051084860279656567394292111729796001503383525357482866260132415763432940250019932098922775638251503374159696117680210490842597886386121740882367843488082930016833839340388340937059519520115542658844927434150515208259085894518671777318846642311574481594287023814668957953670818261737622746809006163574818692049588187576126738653572336088002464609105006233241748402694615615979847723791098787680841051074862639930516674153605916518027177211568611979806089795249323488938546571974162062984736893848265561444236632524395952989651590515743040049580169184097978744637275745643100418677266997623376512938578619464989220633407069792499537575925602203145830987165920444453906658798184830763058613843158616414880053841750124121202110443295612043085349022937713472463068701088235747614061119750332587098963312280595935130676686469515661924453186720147787495055355581012932855532845955557065167396603911046182451964871481516672430788116526425853812846671842756637819396443704171928684897117271726496520816841662641212253202960434957100517102216096503356637579555150033102284908167861602561829296420674306735604473597811810760289837796795401763649253733880155470650689142744440735124169466305172075878799779351486558771724220167292085548553119334372218643584199799688334887309915572875624021416332303917061708709791522633881805046658593314145678343014470096417059114958822636935969231961433155032306918958630058214008754340173576983268913165459995498165302443642636837270376072989379868100537047909168388116974514181434807126294498206836915546098350695991149934330548078822035908690715080001005033659581961909487003951256953963171286474816418095442424542197680286221036051022623430233683777302973177760641600399558434477314241695652165546025157258092862797920914692123596842402732220721613482695700781919814354758572060727858737622347889897333089194240947311215167805131495207187736646140511077062157216992671046729350698162166827436124791841330816875449315665389734774822474876062484813176754291807037635256665045428812870803997886999258342330380414576282045107278793505104544471513245745820762310194246962386426948334344256377159722776964944050052683858990512805076033918032218172371704934714072012262859609342585040424068204182452762898239104234518250835485717026202430581406169539179416897265732622925143468413863223015141099593426741744929693928859641281421679737689766595140764658869066368489395718124610584121165247070719990402691095929889769422744238217563858202293214198944887666940160281286436771097120835139430403481830469382343532485486745588379487747045232764512100021820715024925024363687883439155625850344462709728356100640796964655527443627529912063666564420005429616460746636023892341615250084265347088736038476304925342548916016062282231790549908208453574901934199843702591599145958887624769990787846996630909163314610844548233568089534063709365468184680242043852297350950919232410019413415379910279225965224527537165326186439335082243659138158736832810308752712175239814542893299597082319339964012393516114230050789491516246301082746551864712277546766336423023832603533878243876371307005478359449513221864982819668066076808935228296077552236242080522997981337016939175531242646776995507335768904110930255652561866005387602504198730526761163692826214383363608420505877640262301783304917527992041391127282682816527917726406017429575793570870182996034606521148905012663641080232887096475117880083887350513947622870347525613579165765623220241023356220604885258327835575394894542026918085792440752417721363364784832675376887195907961257722940930289954608619352450090330231582147143522668145636847227187405072580666690815569717005218954107178097364276633547895817120338786644265805756633118705198484825394012511392840178256554905582236964786483228995649270127276479078204613607906428099136878349431264362364900685580845390739517696911067919917159398452431757388109330517698324744114161093864387495778533139060626518032332138380725411717284644005943115931542429087170572707561577214522494079909739487653346984142830657440262262220907582496948770126635080986933382793857426917081504846045340873023155023403489457718596410671238313875278530710578235178465611417676830144653652786345505368759579815003695486792740155488599594305841697448907406292997204469435679213552440198081810591558319227966585891953881029159912382545934500424562560128584902090033604378030605912714592987115830484961371921119384959823620804143566857955921442006599735815080357910895667459278899119196495612311156467069982309197991966998920053280388598847104375156812952302605986646398803077683569060909096960571674597807451002631234347273094965108560926668180903355274444980381867722350927823248641033836408378463411437589182887782401507342484804757541367154790677319227581451498002901847267577385471288886318667377762710659854301756752887534265434596761718526231013027464816597856954967821560605208318600373250459311768324608248393772546364116494606169110758823173344327888770715638852334364258570698951274599738817758506586808294339395123282566121540594005494224470065942528785288344778829795001238002104390902706696684348781900191665048395842183361528379539562139926279837380369010471551746274885397475515958554916699648596128989329397984784383761910546065739065624120372807484534383428870102479780538092532620548212492506267559561077860755140639609757201769586020739721952231447709487402098321751184274515755623951487293732460536651019912202892239787790980894251937720704757161069393796103921628157012373353206133240566803364860157963622211788232373710940694798316595604585917525551222871727519292336034588161874206558265218995464039997631379817447025903453413902196394785934336656129880522488063836309031027322165052601116408001496585700284085776405636708627275278633186191750961094563783463837603411398727353335387662364228578968381480032423032903889810284278973713658438027725669710794718143287356904198994331998070171399920924976310431890000549965399426616839534947065657313789135255149453705021645834314569072136683879130391081778498402185745020549704282477429716033696245423194478396915628950043347104970995159357815862820332733716166260205398914578238596918713234179715313206357674802599696178004538203371838735256728033370887919021809046886810530111881418337212413997675968303471154538566471550668809293394133648014127710028854406097455362541500685399404401488081585368060889626559861475555053451503793704161468752660235123528474495204275128134878909690046679587003172083285206614335174867750826696583912082443923365088862307866548980251247753977859957180651543959090870564439878407171123659000637889847193321639097484422116781802962359157131449803381908749044810410792367020493196601007601251054339382104061697629112057758841158586108647727125257037805440773749290503857178294832526686309852837600434825891966550519013216891365050010661722427480829611071217525241288136179873078114895799016329042385625756179658665085254130477446668048544548515077659935386466949140074201987136786764953082894187704146174631259546131069399612969038286645898812638726722177794358134663300473678335678811573759262419541762887558266157683012643011464766068943013619550041070490156766427607556985989415076537283655518125320239723406694901968385780676271498773761988395045971946940961024333588466343620680419638999018868231616642932095004127705126608839156070619489179615211578798277350622686132485578095462465826437290943888006837454631680429740145557014308056816537583784675325968434178593794186199524450269066933611445953161629286136467103785268316203214573097977449004798490156131144113139673291191066956568734471899453893252367113534397554794062420260290482377699424131571879773536912424608513806169996303291958648898169018277729991785788344203543563429455394604352984398277146031226451504173396204231523121683353465165114147855440365217666447444415582840422616393846693159025172003561065635904181101208739659650025410518500514475203169123458053054662582304086478160404301651898709922909775717386156955738667787578789131070822403790527579991228639012296605412397969004587263651818223382765908238010528958437561012010730321469497581178735083626135296921484306745126854421503850986449800010625796649160778833673581823605395854644597850378469164986727736653755568619140641429097924794060536283778031957282325773668732650826897533658143819239061217099089802252111329642143624273358742113677989280334508576024169256352547077185008721789722192333394171887928137247481166022623114432315620861880876153339127401255369106080616456259036494073257123891084196465455576653493661094199123132760911211108125680353902259056030135341221997429362583460752375203510918388210770438173763434098642326133631625884059947777441781657869879689561438678574314361556017961504154877218062707263994163538770596935335459535359410422882984554645165055459174546580448349306953138100706907543784395246095852428510786807915982868456332626961330850721973537460410401909180991396147576648358964041435435406681515424448570999208867394365255611012005209416842929716778312645577617363753612170930095061439708380954118498937133612519850013711393560418939637927025337161878579117784944265574106274297493421188655276399900336374096450420636101289506701163404633176205222501695131684566930544763462276946168712976735304489273069711123585948615394543922713881094969953928329410687430550639855367216847664555905480379001298060869399420623133717056839488823683723797684634499232576893205474240879598717212358060877976854276852572285450541657150991474809079760284487233638722571699220328118707147209635355938175270854602264968256232996104287855926689060192311264594242339246168054929174926943496133117569252747721500432941033092109760368839482540896914284630537962645506542958616234557441142489907557242374177596702436423960675375073736970145162209846606556406259042484504951363183680221995443987264029353389085638527863624864118494413077260181004263193909978705588516357661468647919641158284026650224378201643711593950604755845063226888493005574488157687135323829922162231563933374805704485374312006034987142451374305201304035648160074199647117496327385188403059060880352392108024595617364376358558397764790982208301341581637749383911876010781129675850491968577314870942703025803923678336686377152411810543657373938256356640904899889707756415415142860860569746392035465566391409795683668908578060996398189688708726811841604517308710432392013464009575835013089268633963612232832382596757763563583829474404063719654112597131727965515368959785886443012428598418455348807733697922953898594359980579778034116456562418482515528539593444673159849007663847071773786823146864785673375683834481641928337027471653313878318011870668325928187957865397184712427245564233866031618944518232237661726937640341477435170476831291085905728378745188059904336340762083300944967826583378998201235267051854534981799451681757131945278404687901604749188726299589756292946499234897578135968035130239415099512435510966685151216775036700331679782644601320839325997896513503880776414019471611185555886661629845745634070366083602522049730878986661019279391601583193398275610974560243503148495365926265252497178773719075702307065501038171037338882696961565289630415196806852295101385289815423297223605439016414732994874653543529587234855086995851112634297213863822030381113161067431371339987689383597403942613898000538648664677736947130625032330790821005364462436920036136955845738149077648638243876570950623867965425987046161290879068823209760998021955751161031699217816619502270471680851324008591774633268372998531281079043110727631204687917474021520731281605054013426609418591952971759029708700251547284667635580503984178232762265664313464525127726532604840021826628817808682856819739809588566727553347569326213140353533993946037005762600365538133040117342087170389830793050113254114468470015394245457955393377891408952210863932312203027312389728397897403162112454675515486407958381442951300356125235322907570422219995488379900864330832291628242316565682395265975022837668715194667671988462395170982679446702431037903514172908402269150351705150923754515019424741701081812279428032741270535753702324723972169503431784722158170630025894220836507385801531759233046823853349857938357550153580026913110692254285829722678187853884430283414486616061784897055753848279996914020726042899639119897754935056384281841601003681101296664475511555279625824059678828410980081622965920155972599987958489106586189093963558449009170083034265022701524219625262945325797767923466291452762879833301671340816172536502071668635559167291725205098105767314822386802313929607877366496051618374959699787210347647829922975257189382634477925875815705044586287334760423402228207859529073067270942097312018484726034059985292354208744094722245752696844950298846425887979894660994011651552486641823404695248738087630912621278855177189373430717156214734773699884799637593464512476695990308291602870598152634048114344800130520372161917304486073073267197658379105075566347729941272985325640136520639524938479971172010179622180930672315412146542396131181489738347978094621105131863796146462889994738755082459942314796475261740876835700640848916004600358253603872238441616753882689359629620745674570095534891100858269732807119479113863098111367423153302714903289708630435541327529093229185875695408541037830986024620066417804002612187588639552212857156281597504539340676105586706634632131146908632643944822673575632089825799616159613486846755890043080420932150714018273665703414987879280396561125533495969721489695857048766370035958021259050283877974824536494360052058057405622751437223711335005281392011414789976715067521657569226226204583998655659112310056791376902754794065750903444640349639194342932941981071590653999130978005079863262357866127452852833313686112066504719742314876276936666803306364415431243996864383065371166877805620612955759830618759136279456224093575034653255107846520198995825529815100225756468285993620931390205922828941590751082479719153347808219759359505929385931794571576482422963069886629855153544194076672716058021765915918184890875182916788259802309305605875202062436188408977859400515768260872209658384557793174810438523152450940199667264708486970701981679796143747981582124443226311541279759817580549486418073844142619320737141975944384792697003630507182125215394857865181149268089113713547423213387724086680955926385516532647140147631388572894506795599769913061824108653361344636139332276704344116351374219091540373925192912812673536553076898541682597115999974981098539525520431548839407806563473349964529392129313564805639125409835565329033167474183904976937161655362828504863817254504230692062126577078466832884790078808351532144902513066476094547477279190373438597844273431724306239278625896966280369705485088694256084937577970784265700756911910133538693133998090156455237191709464099666887515856699319271590344047811261169705204225459314626122489281287715562435272682880046097463139203935440478506241019346871542160581592555082286488603417894230128779927091020021763384736274397621247869263048354382567032125860773720203183474930100014392138285351193735633406914384309174031347759279807341371335530843116032462217900768437715641136656793836091787342023808697748066459897324805424083888986011537745031549017173078905814844367389454968026919364824145471712948063811678443121467299077285080941348999024356499562711256327198329337303678112119154333072838394329819322038037597808773658857508129707244079910116721858445858396002596717464567045058371054942131639215041595409325631579796395938162503060071140973304744280638344943111112596658437931766234099981271056992542363506333096222778271605552093253631352172304025606080858129395721659227038509425138376878647735371503120184292972687816079381271368401847304247239980613967426323100252485478836247336265275125770230656677187425045558204792525600417682001813516639356621517250615187565666484042039335574880769873887430693450326234722382313372103857280642586158986527437918608700719386569171896513688569738509590867528798813522552301819168127638807126372760400968647230080515438403965198916112567395940230168717301145419952835634513510689244959836220487818193350554952783964626420137328719011668615042037627491192202829707792201145649158789424435710624441800043239882966168039321418820640229080335934407532740084933222577612200613645265225986488782899377518570575770832332366377246269681199754367629531356963182706188300778894641066050755410785275590844454595672976841385126685663144902074907264218388683065624636195851754168926796538090978628449906139462071025999771880983024224343335943337718248288654506179127869468095276038514981024662716344458606380041962022156786841410753968031303136256533300437084451941955652277941085908954035099224037697645886693987504993783031356224065674996074624622230482980239590204640242322493121518225764949211192131200609581388084167373211905185692813271527883686935804914032695260371543035058171757659079848126895262274682872739639575884999142501572742417276431378886031874231769367802346713463051647218176254362837723510735347228689228595783753206304612759661922216236443432253105338103136440156500875873448882381542550725881922737487462199471419647504636792097902328064737493803076515500230996351110173617463140699460244138481271029809841005007022734133745617279515549608825634003229794329169159464134089769197398842678549905326757708379856285114343137885525639037792596396071309861036446878837930059942903951858091158104240798271522537073333188715149779244573007840446490427065967784868121913609435766888865737041783734493345736417027371670763407876376899822817715404320117992043360301417405732581740959019975346477412089408523968568332333924244947553472804683121145044527374565840144142986326638853111367712735779280292445796124099633584675000779545944107478185174075232657496157710555906036653906847906743317015988230849312098644804615433374460980398459262747560180504549356982591014837899644605263602270870100496345731367236155445272974676334005938932591251453326135245206377375253858830508004621018026098598535657273280700793387405960194831480775986810249202464681354761212499454286561902878219514823991336148189348604274228909683432691552677103013475559242208247677616075190372609604365917034370299788590674266424263041888777310189278598897591057352965631998985518488016581263898883435930209550125050592410433357242248386653200585087827301757726711868515146166703804694088266328597173417522449500051704313896004561308839797074556390401716123790589725776606103154481476844916385549162643881713326667278364448711944026017586308412775281040848314658752551884560640531987944170404146513466045801799380579446498385178165950422866680224383914713851978090543799105641941610961865005989098101199234439937145074401234032473717184690730085274450173169131343215036359801193865013672845640594824046216713001543972419718140271121197228442177868036098578481012888363056852896820955493981753174795205975592294619092956204417553841488249803408694506002967802605875881935726344092397631815773329892742738062450980151544681979510439183800933052984995439848629050586543388159349516678212900829313459977511416108609143725332540450710774377148341048998415407712633141512918820494830126835114870195306422290476733520663381047641008662715300737805978884628327341162955425979865046883540249258356926003773586758413574094426371605654813771062704792337913595325172732165170517554043770321899436443126423462452135574305985945047438950886650660818631872280219101280835150873177183456565278451248472777775835037981125894232498836486955100752950570383481773605710805979721904040311697180100168270414581073055580492917384368408214644923139460273339873264772660796679379108450079075652287633873482865357304042639897881800561730527295853251104459185887026805295196709816608102634940966329422761225415769255326334399260276916042246658351797625708670178391111288221832143235530335604778996414498110219292044036335956510859058073017203798431869436620633962391516052836816802027673208275135920033228256085857769817512081625098585222364625044742895175158143644330348686770962317805117551108604249578994323555247128117125056412005226539995718228094030475247843101751025424920299464129212538234362127885983237910647321441596165208585005488432868073132210890671703451169730572328844372129022954996906664978081161630861251252404152255811061290046195197664019672914640591474512727976940196826335551118491793878329923064347524753501253125650810112364482378096879738557820415205675552301005961891987009426406485866843512523539979240866783270220790774288627994762676971609077133069866330269353274375471701130726290970443622536474772576898526166345975806703365335886504302670376364033194087347431077860624973994417014953149590427616213496839285638853433417599181074832205398308989949156144369874836047379351639990560924064075515958868641965416239750674086047120833004576128796506609486298448945000013466687926274052533699684483857763771099432234448029748613747725079053526558289896665859149466924874159611406658030472443282768566014435638564438091461666839103446921588027846633058092743363824344040086637583872107767266349112524323319697344172838544338617521821821783467264422370425874473792661427145493191505968955466668061338822096657990932763655305580661635654885776028072763965610639408409008841352690077985591053477458706799580966539812613916830431645886489813720019604730077878468168385136100594417322903139056807359200184940841812658390874188428522606391337923776123722285836368929623198556380438414910437458318687270474017050457118185126255278651519084540536515921584357430300426087399272468708154588836199453291815376219663182506735824829349703661168995364606225854569307014003872940256058983164619976225999225035595258720902915541752662528320059434838352462117444247434945349104020983407164034249259424449653730551031265062115665851702622169703351879556207931737586565335616987139854348081305127367508762566686951440104687277376509918096734696198166326066004891380655998168328534944623921583797947731745649393480231930408302809915298568162179216384340737524754904029049019473251054144775787535776531235532038819827893685898431706004547197434219088885795604021113980693387841943924872076360465897246821547377530716238507671581249635136032638767183683447379720563961885525688883000858330293861413703297760358744706553564298924811875313853326269693958818677929847178190338310321789228440262593506276196430503864483158001850929565001630450581961675740326261021505596735789649349370595921410361108079831312032191423894722685155867504944523012715772801948027448198704213603942244543337552049874211734790107856828485888514264996651377268826318859011460980373277982629238263742464162328366778406316743823277596158766404667054149888799000018349946325625987034289415753057411552050130758610438968148170389680137588202619445247337309219865308239126981966264658507064826553270262522249080612096545607312929092668285257102907551069778194403695506374864908797091634903052551359132489634950470973216777110352073035206554822948170949180959572007121505237366072445073412983470632110584422311170246511220123537307758924728379309488675462638827895859784564263161357210935447338913396606369252287670552100193586721867464886761440502335510222174054164833953176631838321759675928967217303981239975510402249332462610498038583713122103155091587889530854049961589228641130149734246370434521686061862019773011675915758103416729906313433744675126674845422210143546736527257833266031610012608149816288591775764335301694487588879654578058265292982207058027312731783807592567773393206637424109067009081410662456101306442692497547351866852232863407270678381511260746115987027041347523766471719247820329230585151280111997823693815866988182070278299184652076702082673747249207522492212844560586749795303569637221540382359387884885034420533499041899756826432544528392799627075034481411049655945997819255293699041497992757731471327998689578685800183090103517525451313332726545099649281170090281118085784656735458585258057785818234622009998352074391688202731732833459715244485033505207060099368500862627350437288734230725776866285423210891534349965157619126973993110899144205446324936248444718414024551032528621493571934171533046694525262141596560677108657184063790839896784041884017922990735357340282922685061758235219228324552224757848062205401429501428200924473177647848810984433256250647114696616174311832128226559433528120264780015041488026037977335221988674484404361275928551363875423623512212331447113336099768333261098577040255320491872988626722142140468169145491104185905073896467390658563538085181624778399560372866763111705047718941229666833451745812989758101135797764750848517228781302775263919752648524827652125552195578292646224391950045191572504765719391391684540535360840617469685481827446829463828062229248806153191888707954080634374835187948035535519184833205037218988237529873403981528855631678158324165017201943362162616160955479713322371930107808020477866822575126078982005815828280164153381902856932954756479730772173679027213984237294751231389026866225841336489414137655261237163814067067591238680229282232563784113557657756198209006018871478862194150994235060695924350497656847807307841261503422756346693563150836792683860709718080500019010152832498773075886422061864297715846018546739621473789220741637652599883557219131865753161712478716927149579475186254152915991745863175675903058473516243884250884004418612470135714581100040977533580649302923145007958365941468878503468254806930959080087363528641246387693633567185382624552047122833269340716581046010013419711437367991300100358717854985091939336841008416995025352360089458074340177656297521409410830307801089205761172987255694382449175875628538701272952749643633128697474199747092427159972063088589787010475760098794088076401348693423125581718506231630819042268157041271333783206163453575069312662069434937116345519124680311621841136188251113929945938183729123192933083550830992162851208286243174830672782252536971294919277845312856242936384958208533326813373497550024401738283627016778863484761169860511169568077068105361702157011958291333942006510407496621904843977460763188316604667673193502976590485116150974833683121532117029102108768308260699124687980524224270482887557118668718134687001921626513236840982995637743061515532089603312123252262471761775271582555476712553188132133885682999066160825400714469354846360184236609109127288054855484331377894180130481357028126448477383371617904904759875296385238430013251190036602964821397268230385497387912191580330755490774206446669396409583664048621189994167083093863563435603786455296908978846743149179230088346786056383610297784848617971649418552548243462653740291783344766316010897840709810044310746513397581715563728155180916685479001712844429125053359012929226045570108287561789237720486809602227038853824673052932280569457340608280215588004254010958104451299972745552972012418776624933983711776025612701612550229367809497492458956857941126676310645432838075359582919596299431077690128497723527613677401922777315550912153399715503514637088625419447683563335285757060918795142074797127852642435238857511454894181003828399748181485597739849568505259607249905686087624885396347752817428719156805258569897864228500881599462259451972026877258896858773396683725156713986274419448869009972895430423631817822307979783954406985717271925805146200295241150217576347339152492679795615089713962760469179328919924264811413675321629144532911874069706490852809145070394985697136587879930027571877469131931974566666151553447733362117724914387566009362375796198625203291607812370827367122566002714467975237264007562741678734706817106175110860383287629379188844013971370670633920793718345971493211327244406456980745183431271387151524293417885739818273595298940528830442118440810253097156816402486292498882080164766954535773405773969703375881501186594528480214036292319466043503063183395565068888310695307581792754650447477804726239184784344178727669016275918322064617620707323743213177001423361108374739014845539722412240163685845017443414984121816943275673994417798649116584163587692168679768193169931569807241936274226634456190919393941742111603053889030282315687573861512639099835929998727080146983927549002643735551369841117746836710826054274300805462377091218074018826165598690798352995097414816804242002253143697257863926846493597431731395061207248222082411974182650734337634887820640065248196902295612859718249350584893424134723620198248129032156467309686294757364493646083711949323415302149996070848237729918089743575398613704303921367092045640394940931321783480009902006334184703078855940945040460548876214295795512554626357551100468057926544598285950243618662499314150380161907352374499530861210139384996160941730944176011736854199772607873560921414257949843043081106209504326961033214114016463545983289352659848772112844459778555476412803529308602312598101505073991335800958466082558113874736011083897651345752616229720898225025983042082489193737364614184117653301964933692235441632965471716216541376487857032400173763940071734151482591099582233652942859064866855420349755302196665904299011292066718328628403916581406683007548664903289489459870228595998576163608418393200600352957961197174100295525196175207416384444227415521009975317170649477729176411050704440152409769247128140486898231178134337602147677964075181105122966642904838618661755039616038470537787683913866924743501863294453961977771232158902702944314521683307959433014924777973621794832618833703732133397997173903466148465970865389147124719587413693162821007948651959281456851351457421338128931938838742468081055419622150822723819388359833621337142524323763774214461723141772021181898438819591710317713372122678912934345260389047632716493659434790314003590907203724648883422204163671988871389166418317710389989538435129725648222077303228393502608754244065502542430940514854266271339642425116921385627249252537088773766564595366200219796640488332140561759085106021233517109435515526315100977747420189076481289329763921182918369233867092787149943032965565976000178555342841825147973151057548457548950851025285426717670018421669552990573832950956479928524812875418385650758451563362185026446137610603196782659420539446128216497783718681581745064919853912324774406414352471345303397893473092167547168640684649611043581829567530826598085610743086142529336173939849896194184675704509705761372898171714383096560704077019769699835317890562624248148697218822806314537009229577928708861229245040614810820761812517691837033480582823775388395693442454865199990828811455114478227229779090017544781215913161607064677578292191635336863882640023452513163511493825608237208515801496921860035249431247659774071442749582826916738812733975313984086152392276943260365157658980387184571731941692168651442175791654323205824465028292207302360122608891639971167402858147700880169357649191992125034518037764620278567683285930343100794053964815203210879751585555950707591562983706318559514951213298503723790820001086641676029561757881451258861051755518736674325297834477718960489803378808222635077659865249430496338569101202849481977862320807980196486441181134437304936993248363620880238421253311542634899824958332908374411055919351128289906734228666088861876246144496190421027782664735244960548794093537315233579388165843037281525484032595139404484604869551037856496369711348457389692344875589311628309348158390736963879533520503020887082568294165018939088461593525951234191279734440930163072088203769137912083485213033181846629702206618916436166182365790688764923442773837029289944943910899400932464622471704840620625164915629488359231457378809709978517227517927278848499286215165222762474158466770146821678251000181397149603661508448514744078518599859011393610263761865831372832932512378702761694810932751941749954859543095345218392859403185120867904420253908306226260284191082039165466721742966558390595307134246971303602015474010826454474130618208151563596097869227780072599440455459128482422642526766692696605373917907719113602884838467305320013221894178790031261400201610218309287076897768898789469998050050027197437490356496710928487383970691682195210098301415918754624561577551115249866159894035214058087583936895088991816555414885399110141944564039107138671803596013898472775133768126564834314051844040207944997333215402581058874653106475278452599707379121598430645002484477172320269431783206807963003928288942889072966831473991038855917498575097514417577864473523071623529840531651363890600353250747469145526888433352260434568505797810260140869284996347671480540131968353797039595884289457731418183603638233191174480891872536512592933824246452707415362335027536014273582614057062929415170069993165657478538300187079992781888514248173088076467382483354182979429292956284639722283210673546852762310923223049772512247739055027911844201888146271951752244469896236612404803363651305270070946037470653742365490767261368824262898396251621704371994988137729920925961472928728621063404852130328023873787832586190957339255382484596729979770214099121027496125915122641956209057349910060352038729539055900015678612324909961531622114838511795359292354059773468580469974022631007896339225245348660586136308374024606928449258518856160759156989582040057912205624114519998586816318001583131638894938625960387818227185403905427851661881638371663043100127618525543307362455834328043192862643135988569477605219088637296788593370762568136349443880288029621806646973095751361364409228187617616368432644418535973150590689902955685263514650404694837130322817329168787480941472458410374814148286512917575623213635538201210827996522044972567256779773064700302726680236268975491472461415077962378705484704499708784983421222270507454702764055805246000373315452254481933054363285092985792091337182105187231989382761901290114715741501757271166623318448968476468117010467094316068676485841988518535709540275506407963751927482796645765560662796202979953860321215086183224978683054186098736147067851049512100234519123080186806377130524732620431528482832988916409502332501057181815935249270859773455793539211742554824911798616394558154382889745610205880199859577218048519482256413356626998394133357486097758170103837036780270041603295593215100669064545341197467351836886677733295802345206577362838771423911070041273278691341319136785669044511637035083929021787245052331893063951001958181954027028024205209925908416695683966566410388150364836528737944161812236798375365559351153387944577604380126576904742711659499871690260935892166456029504711377306737472021352047435200109918376909432252131417219589027384031123426863821229566998649233314597351385207442336492002674395348241771493948405318773127450321679663057106362419029469556272197038619461104013270396971233681781319370653025516203421734302564862919092344674170023596487546351665062610569592460935696741971889016568434351344803866197711906243621957987278994800853135054044948622271697960315853560320180527226258713831768957519650055444453944970610729820546018348831583502185228055781931830170844946323594966753264765932225238620504856314364724261067043536754088201317263976740366814325267796954447542576927218246216005893291503089859720332158804886682601589943751490213363726198421784342261482534076934676653551663080767463449196664297864234667259701350970757596170915577367218814424686086009400690440961617340366269117189020480999748321749130992811148176636495952776485872896284132263845513568427501833109856492865088176979643267678943883489907725862467206851497393283264098188536932319298651547588208036601746503722183460662969752920488752064915082165530918373651627763699215247215548109152240928454021384250194233082039795747559254053711703578431588028199571247354934454173778840377453500703737203520194373960590923411932881431814086571430363852402305154884760731477720680807286145291994433921851936260826169263864057610313843697335415167683912611108812824208401952125252033499133497353362270972969757018639971725951810425284610720334934688933144150422844412158877730424600731652462811875866431368209756880415588077356217619948382621379774978693552954404920645734227010546650628790676704984755732792041388597634187349489719134759813507285356362084148072855335545960820428616993909163219006330294033548382579500296593105739324616436676060664444847841839354749317791971137923903123488746015750878799830913247698633868316590239131483792313186300979376634075592584718090456176257163535827312331470669046230943134044907311314594940384690327255881128016244975546745715829209320557799819696543511760111181174559290617726579295681292621714941745102392097910650937222772572446517729912084849395096926938632455682466127230931601205999438858941431523721298284218989656949770328822312603260954417001276816672508453619974456715315637743187098086364971344868977836795692843092326634593337574379491878606336965171119979155200137877996987279530490508300381211802217762664659284025344964689296038233953085286409620362928156795288530461358418745266273264427903322782631221752338314960889432930851672884969352872780994657547522733898391630001459158677056934350758933885047547193087880236956792174936076894340613054434156166702846269683345046598785121921687059365910717982963929257142322355027126812551105455680850243695450748051189117252597153356656558053990276192645721734477382364791709619052194077694304787523865079306057226771480326523504574796034617546544736796447481884029329673258577929038811906600875081505798810962439773511741749888097702748839889503784499594177100771535912745326358537412465508480485327237623365850278436241567532342701941289986406631693656479868282305132090960866010458419877902253458488651094387676826687550136167460071655451568780050929494061320647851419989887217848171244039863168999484880343318069896698460364224479105320871427513970479690436045808022038513380436144256030568346238983338327797331439723962592782009036325197075554920561815532238543080294180034383086178981152268587207230806259779441892343018629449664161253702005297365406024091399387870859447235001398627105418491858103214328119275778212734505497396979798246430026664328767287179161166082872751697449918867526566264686156734110475838893533768911254350501090106441598156984425777365299151632397473001650899890148963913344579022317093524172683606260593355115343302402677625882539095228585065737852401038913854549571119808479652827269135313400091076156503154629401628505244956778949755981306669044661727152625996783855796855559387060564572599173805326942109303159213288855432435298693381595215415421575565641162100837724357054148285298886711938039791512687364242271981598653491687356881158146159743720633567672996021993850430646260652314209602192538138531548222964236246599072967470199465596590594132267304114525940640180886285273321569379658298714276278362069961127437879403126358420570107623367351102528024144181560770868611981828170640320549057619192001464358869269270333849922908623813180361994869540365681000149350645795959579515673642201590814974830075341281979721201106849227008042125292755440307749441222079048881020367671630421841835639381212788255533104742405092305536197764241859789789851890109017302162475222390360778057323474280340531302336618933651187490304885740199632256589645798094022503515961045506122644664668580237473683847291817031174865787437578432029399800280994995479967279129923574573249990419136014164896601262262060300690375990797376172022768913578327302999938290870090646986316855359812360625287300935638760219423148734319125643413178498188365068154589285839140102517475383887196018958796917580768234892851554268028611907388680241885120786829536955424461950135086323024753874651913590567815310532198854158409690800216818233992870190784745183542055561001355369566627158743883493414544107733170418759040716311108245596768281575241711088652185605686833932211623450874682487242435150619899030790921058616176645338904596340457227321270620039104990603492647341976299629125522213034562041757041335784006765753147268009434689315938084723623362863793955267971912277220320611597073641816219286443178261073611900693350568748560446750301901653690386817017165399610975083010818741008845701611130864315124860555241623490001402744357973990094009873404528814044743256760578015782980000710642308683469356248150332901451208681122787099048732535413111131711602584989387454806182461380027157157470459361243056418634035905280675818860204450550527771721065236115929022822268986236291644316420082276578020868853148231580854486001404451925674115390752977188570701338932173126285787705204015113710041917224731284542487227338606563416253912881844408513669220848352059770751096754551102605353144719912351335766113194872633950843892441365095405500209744831413829928296489584543395449336841716025412072014095775276865200268050123548069127728721948826215650885816230178545305198440951927337978377485629746280250045947876980814938757011813480650160379795549836390498720709894666326831362923239754697951018823729520009264122993965939813389389937362984219220536933016319223338918566739592262879827681573366780755207716165685141587008800118559805940925808560956580280377650977922272770256002390225109872640664551352861111069132047628697662300976943709527842175330899009151614402793064202115485549438506290694138334581570590226746979571851089445189441461807321570966990047358739980130361812439858744511706666736649815098360333850875791418705213240852448343566318574604142434016875276530263075725075234054909837618263549443382078560029843654097119114772455973737446617918809610397790690642895916986468242586973058299441244434205091465477599380743121693859721311187890389521887793743425021325748810511471674217485991488916379385696654307770090149414378462295056983979938287196918642803329325585023721106719156089831739036937784942132613405681084381635209247344087157736797934471067014490204617916269460554424701057606225177312764980913484051720747052044945660842755412847893743986028958458396110883982273112528005116644371164335926351401509706624223041262257216387223977449055224457493740519383781134064526211794636837469313404046315019786593302394442221239083719523715943951675859482079640132334471155954171140077975105932661703357758709986889881320365780012901805244786348272931290363601185872660109331294251521159165219294108944034141801860099992535513150272019701134719817855375527660975764596063468857288026608177348164497473270095202584132898068573787858736155639777311725982582006692358826009146907040576909302028475408004629608494827183009026183048845722267687410262966703655537947001337915612950267020605383224660048500294703147294954808417745939391322621457491505015663259244683296801280515208837549574784618265883665778837460068715918165960420674529241005927948859917199904272404362523020283736593942454813803948638304112973215928357906463674901768800668703073331594306732747915586413389215200260626497854124414093956799717936124365555215713722554205181210128802815946558627569555448125403837389317688356934186282056059515587168438501538864937469777299061310636091932175512652557837016441824213824871842753025623935073749278082980252219787518072570022556683016971174547900904165101263267716030525582003513515156020209449576972147765317214947201555861779487654147860578422646760342694699388968813230842989756084065175720488215977054984300054265417282667982392322347723135871913287171541507166255463782062355357894290946410405696483435072803690666089980950064715412360834289584366965834719117112564579856375574439067597122984587790371396030646904731876786292975175937559819797389995298284856530521399551767694645257208959775058414860977456319764453263165636760935887482408592560639689764860645430343109834833766923968006182709209005155392320223779177659314928759622333701599092169984277996834232207531377021681974714339241593636169984809274580231131349473798322154464941414461748939937432626195798564161624849532419040300989848041481424363339676892634500063086639983543345831804719626851822295924304043343754295760620638546061572047044386792031841578753498255686464163391835839277667634508036596434224220889000867328995782543487894756381987347220567013308674970148528368919355550178022673393625641629972268318593014803288894495667044220732936147291530095727241858012100430668316370939288458574551155022726191856208021365241757266118914188747907867627052509355785374404215869783654637763131415760851975699484451632811443791548216173942490413681744767320500688230864234268305277762980506016937809777112102195579948838061715656004351017202963706382159983081390340702643696959848223877862848471302000205955657698988152902435408846478585140689444058847273482281822271417904406455884336654854759001501377171461940927254496593386652511228087172724283423257555275854787793983782190657666012019685860696484312923180385089136035453228947604256432676724818220292143598747889953619082684326168015864758486514121749364562777906133478991616666462571445400243974608101698513443013240450732487099519752652507483034892612783000298760106835726976426810777060856891798693022158205226791417128865409637240110401762989376139431882636732573854864400168678397796004640368654470701385878475547054972677270387383930196831684553059325284883656761029463059150747982003733833388071233584585970423096578357486805084039737356442574764927046040921271780181681164514837784715944385286401452832538333953339925113853217054079742522927567536522301687577709602397115123087381997413021257428243444601990103218892996247952946635853052751779166661044500120438862346237279906290053084172232864914236296967592816765572782512441657411247179933402106158826390740971953255242489324540641233483144097531115839384668850591967121983805599203409442560724899760832952177246811010830245954488162088784183199592216196697054848750232733420009961040994041311105474557257841297550850863513709322110392058256650319012714855923948953301295227544543320482913480511310521072955828967443346129986355770540196226200319151801329570811029870445395558946414755456562215807299183613079877933839835784532311815375238555452320488163881524940353370723873841239285761898598610619455324503394186301166484575950615690433914620709815864352697062817470596991826280463248782599798340411293489902553067002095922570823308974236367370569155285007131325108364223924376208192653981594356783141696856935349565501575274872960581328506925086916162911358769852922505569583008171548815737247263189572188725674414118413444470575737334715980074878968758578607601287804124934298816676050842046282660501561558884607434901161659673464000786327344522498016039415510297526772301948544567898383086640141907690097648904745144005281147825259858920267816228509966251299773306912224182238228475938177583403576066876563900388398359012254316939946395885783245967146825520985574732577259701616717558412429422775771474910230313400285019440158969612448074605228619072925372299452110018461555926754525752390802704820368420677674117467825197855178351975331799553925424463771859483363632706306439614653450003041620959905736980026093674803671486827654157343317249412967855326375045724547726292500887837579139755661521684453818628794195547294794488478757814464053940355392191044782964264086564039509599438326158024885418927771482641871567053183887638298413745074316785350270715195473534294952138530826380385822497542893270633325082037882764260290466851724007705211054309534864826361434668710263510460786388141323673041730153208251463119820329735871312096079468405562816069692012794740549676438734977272203076789669042344385496914487753131895847128827931821753845133801470834940216903939194717911933410224522948536162279479836072738895116290263711956794813075473840354389295350330313479179994691943692600525432634769703042098126132505771897936840328272150456398115189804493088904346145440222979135085858515017612563546701278878520180233410381197750052490055335790897815683727990208963351855481543745107317935491296533497869108275758917848331677511358598618819148691967221937438663544589700540752515924926985464545823637993225497177761394602017816017300791193019747863933358284535947469756421938721036651418040479364922073804984496311698520992047207843721666234139261131592496058564818093386255452545538788033922933775684737420778419078494380891399113804000218453514589625627956742197027435078923003315777077270703576588174736659496875568592756268237802774132355355357112483907136644109778638627884181891512135349299057324274561050043777539528096075297454610539171719658374248563171410480414359404642696471868613294029093942276845012419763328908968886359697443187528492414985519523838210521087175522021087467433918280179798204326344900110589351292113129974603766628028886211088500967992079344888776050949123393001299625257667855735124268114260502525131294676654415124553537851440984376970396107977112353280504399994670687669734471929598876492122053119425977969670650002890572067524899490192107544530506178261497599367771391793191462903329976258040425732159087132890012972613984862186452161088493196143006497344855655358382190256723628837528224927129690202843749276826681335264348548743418207370934428370623388067845969866269495322922875674940716701954503586711813827717561789576620355466987802505334376659191477149071090423815385396483385366869644712654280866027289198516898757612496330467996424120546411714534454917150391690298947629621720954185654170932606592146502165727583544999774007203043693216335143604208779494295299739282947303734256322688143569397809292226286248021773947345814979758847597061920124169798054580635306659391199038249677793102834671243498284210890410823596005456967607902635036191798337825673518288578431521343866166214869100247591526996020059291132039391209575596523782214386445935856155758118316538644244590617153880456073682586191849826730097717031023232539489841962268424080242323013292016541594645957053026744382765434176279243932247971025256655961398409680815988794093435265816968914412625382512652693459852326742802936547137118394455129359841822747640502780817816668004588966428566288835057016621534746235554305858756806519120623564354395363754521510735309781470162218760347394663869712086324375061622534410355308833786188429817939265505218120952544156455600639603547751083338101181321874363646609434885081307386986702860518319982053526362340543105868233957604601254628080235977016628558872504705538893374351504488360446608301200651246309353519785418806334210183299356633969612872747956626958010201871061247703598732325712419570272358630486540606403199048409044623770093399837350638302951297029162895667274256618838007220966476683706235927377359208271306215028140737215666761056346181733385796463239944664338476823656700775404012287001227564248080922340681995039537415443928486067818999195553124973424106940767254272692061586009034935511769176284379254896580735528930491065240764658694515236018478663790795945424179111520414425581197357891701178305110328823640649872352312412967210544488998724497241877223311384464447603343307082880176981853114602995888990661923404819611823967840665177186957358563213700437951138167812984682464785031309465249504555533590384055614754128971304012101417353531983799287922238166977114625518647851478559270072149214587877883276762921187373825760516938011131362088892025274645123787291739631792998262850912480222182873454749613361710471790546989847137383857498465785790401795703433441858871446087404714696583770969225183101560087017642041192312820665820974191370748399035519088271206750351410492309060233551904632805950305068106946283511088749909975308338924961410979663785518990168472783426297125196768194770393474099019191627401643065406367236188552766146887147716405960595139564514796278200300905013028165292378844269872210179071489048679394023940238401002570896538723042442098510924832296548245067441418459892215629547684049859836416320010167065041482250209038691549433418562523018311846372538765569174229898029792261631943731379687208571015227127266858130445867336720597522121696715348587995208066116240535572519799564342839500558475734442028348456650654150302194649018151707569595439557225398538652479534971177318569424483612068715248670909661073220114998063841873109337262924076532759376884529601324927916305818636202103985521925654886774596177767654272107056266067361151274535033866105326839955554504355985526498702553035595875667672098575908781766405036103345159622813842884526508950976069114453065116484023950159578352535051711087369628563416861545977741005053425750755800083840582493112379967758922519723907374943633455496262307264897346727496851142499623268387079052270609790136181601101155999913907406767832450729568884329572259924321008220555904304942768812770938077916530998811473846653487721355396199755497294718864809264458540437314136028859691839674996534727205953912935772786065860883879429073755469921934220331771440087568097567327964485578697486977208845213013543548510450441210506246903232143838471137140067898468170404306123417533965195955077006124012631298679481997809215666713133416224833781590640925290233390538549711552535811266529006952758231688534453235766921920353641705800568543425462963969758635629833776355420789558092650819106389443522736139333243157771831838515028872822598022075665764382503546270588321795382278999516281521167713540074581021086090584431412917687212218508511987607506299789541611541618518411646217613485871741981324559974911626972735809203193964307605711442481175326722886509023560663535304978799118234231120754011701895519927639085245068236988471430292325164215878124526242999847501808391859365282523169534505883880608580698713831451810457083407934127025845847918630917244849401229854776683424273941854674677963456502423856793360645608261112422453404223121696226708150434364472130332624177518135055617265042626731418061004485847053588662412193497201490795370781349634322613697645205764574283925280973938200074963693160731997952640263145166774633798884068019916975717514197867310215413521407563110797550042645491920960511636026492217332800158033954761734119686432591286929078934128777390767464146956218747562122150037749809737802022412339546405007958480017810530613037828173704878971751158693619180049413854071109490053862505017448037802321967551178472464838005005393902735062049158335004152439370039026835334277401723410558126618070065276316428761626841418413492236851232704467200860231517521215145659135067992392437698458113291336141661286592367815690085944431837634167381422382051474778393352347683156259696265670636289818333370627211133248194037609302377831432196697888221718784186552623349630176294800120677638041376783102547016710093897373682343364541935526172698178119730755274147501104805930831408569752820472567387682498981621554960934243333068920432308904877610939149668501677615851132859908148666635472993156825662240836329966318480062535295130815448146025044894409060676778540714337875206221122396124228149214008425791336122390161250264963917906231324921297330457335620430951842544254131932397202744180592498037325640740482231772956263190264501855718756563150438167105803205948463469858616984113971568978610007830215523978833517409867457712341703229701828320843874616230200090055718201734408142988041246620859603866153457441841059278671575514571385441085627417884016555703075368842776093367098958465640874230934557929095074528982289841184419904585841731833500657106960316986662397433867532828368200697958255893868827270561822877573172836445503451921470197245595915963698693448824968875305472195081748387765255125008110270199318069668771680558627235654692920240446798238347526869828908899151152031027682182179549864219274600631798348746850438668797393057774624027811786123725856309725349997665926890174798358671092363013635920838780374674963547044411762973819226303265261159455736576507835975926124452279786214817723534468748994454967699281349999458385925028257635040744591718479808647648472002961705606558589018514906186876440671028731307151852219636172418772498555960905235372055561273656180996820063802526472986148826016594463599958710088226269514584732786759286333972262055077915128968573565380887397127304442587348690758608973780909130337066479206562688467285912154656887740564929242346152595428486609571225369224755089590359272179162908254894108922969770762330551066648619984244825825561278914776735610982448091004194978526878534303570610011453266914529424572511173471757976288486681825533576101114947017694787809314669174539746315988814850689049577686175225692907411987633686668018496173622018259747191461511653903391761297931490071667001040480058684904818213489576307081850124812813130944468175075143290918186532491057461240521563736980241402847085064575961744899231951115651559192066570968764239952443585314359087434350601783717509836840771112344226729449251637804418714109848994106958197458211402263397487575452611700471673597718075867954028849370283156120865874421038131513170935214399473919912037216354117283723295584378370037690609985539477550480042488240529710189282230753112836093674833743168438607230127605131097258235004576818863782647418467930902678066858646739903969832660674888254488136654552442090120087496143667298522614724095669864197952474010831296161115044675722214336449348550372462258143502422910614713143679310628619672146733578532017531025655458021155252657697799787185709927150271023567513443546403275014311649251560634909310664370618004890076305860092866368936029548063974243787992514475764026343290962702905947003428088463019019724161431861347551279572535921036248842115911660666443153490902552202703212181916988641632326484369931240211666784924422583212077285435661506908146243598959788306806642959620265243258893605546297536551144814599372384117191337305431744269370029429222976272359126133941454911885943414774791978345738938099500190047886668773305750426558106884819918671352886936162465968910688622103792587764555477877807325846375432998619146929281244300847951560463618352027977128123522470427869700002830471281659529374772216069953788674827303514859790934290440983539742194345429475023360837182295469156251688194176318856726723544911441250909706051185511455012254150602989698362772713176085117876924329192912631602326193399327060525138559317794316935880039657090675344923016879646275532617884047828575466639871791238497835189422620488299311889161224438541222870765053973263008014890262546812744584558137734564723124134077522725049031829559316494842277681590402881597760403285350584106141644027122982439185668735562343826410065029911954089028406409028267045962335945133520900222819475816374844890038437502809177000124992973072779727988731457215873143464635630214038992869209628170371327490198419173199547670665379477849956620528885058186435130786241340021247645152151127963331227376014445753195377285517495529902554184667753065971999736530713525674071604437630274419250730335040793636542187966340587499449085838084431881040032058836293816870418523330630692966623230113159814954267660368306856882379387080034677184851035744765201743393318530810130055871813939266757468519829117208934429395546784619561383180763557231195878467124747630131627337038658385017579873973951751206952686818288797644235258286629018327421460477458627999110813008412784511148181888866746199415927468299316507661468739799016580762490640471544788923574875817718745221461382180359090576616159042941033762659739938417486870893041467926493576744088244957101203295868340797162727693039953515680689642067626089418720644514249359841085624588930693540278696843009449812350460942474048923403360002244805523318000167309732870313528338423257556648569623010743263042317506567700459191182388922011109747557061834218452167486649188096423466913270015186976048347671008321618278300170514433176963864525179840126815487617931659594975656001057217315188890828549980494498731982061635587765584913643858422748268992417339287928173297056959204489224376933808268515286426747416776195606328839861707560241086436024929018999345760298043285132742843155905873032218138090713686299174325946337925918388981261813144081782788262437054995486113767456725800816992232687714528722928381482003997795722600980854282938788819823954617958224034910783829949348734002458361976478147980374315756954917210764118083653930102796898835072423458430020078130955499830948869411427466878586546299912316971146108898288526998147539007811769944566946402550010089678007672795349014194046801158796604787436032507629199335524899651926038298490631208969647197860305474529533732008452111002837808972945174968106666787272816455741362933333524879264328616435143500390565138806172222581862195511849083920655907403165984611587573869035968139259020206992380321137271994690910014855461725408439706960037525796724941054180854851597226156101764596956848059253654194620343890722631943206971751606599351984770784618839686647251566737956312307898965671894011696632278785657342376953586969556259233498747821642424589603076444590937148606521814527276069607153147479942432128290823816488914094061281332081550319853323754417368558334708087866916255372776159713992113440897016427414648586119176687031155646923957356652618019745866913506581120468133913912802426710795381113759617251521054031948232230510358340336323526785423048971360836706989161701159422123239725916628718217255424231725680216039081342654926684913849362292819153095572085969666130096067107496059797509298233217573659106757871145171405943561667260565045488993339632051653738671804055591773427443260450634895946297255594896629976913254681112333080648030434612093941616266167856421098475181670783850022067178822755630730846589399203202187708408893856837513086977736458152767666744681880715893933049388207277665779697963750648924084261005254255312819228845416884571810427627561247700088499424770893501685054867981572284366952541394842622561729506914166087404111862487854050281966491999028630247559972397747026088957256628111953781724863592241677083680752599264003745724164331774536996546160352528254420905360464048908690873780591544613752584038562085329691698183147160434407579499901612898923113993331847890818854914537071689262181209546243530907264767336234059904500407355467728204025045947139666382762948964229909060842006726340396612602301489480398417844910495948020721142707325694528368256600405870121963354013077326015436721565433591046599434701776079033798111185715024907008127555708844337001096225871033121652657542271262781263516532337675441159196916890501047767083344535156698879956496915727630029763439371067651307097656507182034468749317112527549293458459852152632775581963341246280259017923185088245131490855050867989640889556957650834481225938974309922625143584763122613484990037534665552651058336252515502934039125083745389109622753139020071457579003215855999139398167295674882624062142940842119467180629832123121788747444276716061859559705451314572984953212212443939504601775088909969714941362186863204581196185028511030097903632990004805072393866849988250917522996126845785064098261296254847442067879609501063919058750358576002755670109922645961327194016263208711884109213462432072984522193163531118970215283097612732683771671164929768595661009710610467150764450864963864953777677971922955094255460371964170723896614990566551444999203816804262625842296939651131749448533627058841093063291871646144660596979198192052673910123005846625809137560599569447836392030834287399508897633173204463114061394424698976252400553980784510144016672987496879907750967570023911989645261888302277962124114097569598642735737054648437236652559076438417757121306765423959138166398217205958374658113405995679520586414117791198877067300395406126052278044659948000484026204207371033486657385717380567791126575544751383662083691033307338363332766192979293944366094018969561392999776655885063602351854403994274102196703587471969049492963570502074767050887494385386881802139111042109183441351214867640904478404433420246020375978788817557952001852694394342200306360191091537592636677157754974184582767048429822343425300624900813427720053985411549794566651610661691856978836025216203485052259815667877192153350855315978102071079904729788358879608958939633438289274628459055130480681018030055631476905720618828339553794616952908591996876412862615770684642506952565212211542900775752424159760150628053681086921224321368405612486076043416862583791828324847132484807464612264946207617143324091446324002003714527383849277152381005101428747977605229567260190384250048905238004390492593048167172957648139160956597715962725162953808830543904567598718357734185333542859863052184220810778957183877476534666601417611982318048446833505645311982736567705706779223724065642187370796215854719288952255356321119619028377538452476310563503235016125179935805409391051902105250677207300436082816483533460737162308746732292883172729563830157056501280584717188503687726244918567609152688077785704042798929226492904497585457718584225469182976055994867548542120059161261416868325233153951645180147338377924138705150054142109116891417091932502897460423343647116094417101237875628167987366933597962483126161112698865781744573200478382226216732308726034116617697946107256798298967973879164088677138332006371369019290406098074332752245227398219125338867781531759596708723012207540213355201434095833293096853719461727090180444889156186496360579717838975360939796325983579529821137247857386664294683909444519793966795883684280466661660952135501858086206391152351708524840852650007824309372460774897274521706232232053057016030842644735554253266414281328492538276645886012960754855690096482941749713418196384909239000031176451403898274507665193070128966109839214732759458088932077975298475226424279398407549406142717740424883508741095681458093156438701138087450547454570457581195959847493962519783957802019070828173289583508945773217297148611712542328870432038467608277676598747708739394538880235816944792226865688538201618161570251470884701398622208561767587220601747199317875751850665750546142853438663699225974796497138222736455765167078416940394834614559933788590910904593134996221030471615633017320493148871768728729224919830405707804222577519349891264889936525353383644064505707466961521965697020661688440056165566309113854489515638847705288826079563514945650304548448846937930934121362672777913337590014148568909418358422308630903059001352260276513404473124992058039401458766933102262684785072364380227245834866945827072283995088552723455427087317906473932735734508843665210494642667171903184167476387300702596056298016357493520586371888656659686828382089829101901099788099655183579317914220165094572619202975231874885781503544660424856569390602892651911704255693836779442335139140923489021802556446711725090208496051210069358322578051685545882984926472668320790483821872345900903360043353263283421178333836594589854068760922674197998875900937922699277172014915253650159296308083405683461104949592596426779942729593237679632924579977680906497756837925132106645624362956216380236371033267511698252234522388283025863131910396453003877716060522763914368978711400292967147580156058359274175520658503331318904241921747880077057431580750592006369574559004447947450625893885136668887367229009570849043649701373421087491571646696971887679732892965713278012051934162424537366598663203971518503050604629760769304254926119133223274611873674306471558657024044660813070640353779344998742819142605961304482187002931944016828039161053920255636041000788046762356742733256505456247405879924292708284401674771398239253070997663561202337179276161147883812027726068798625898814011880395872491101102956149809190801795385264445025282237603958459943368003902147199170939120476938429873869974170819610548925034623276887678039727057136309660472039249955318509479513453363607826600147751919049796837815837714206313875428113225481505080077199979420531148569380354853446023403718562311777368481127439985889707256225930807952927333833018300964036679720473258706888501222884135853380091984775020967008632670767069347068932546310659564696293806008486853611095075527779181387719893616707648283300207830654333315030973781632750747923251749573770220544780110942076773081531411292624580350308170735269831134552613168484819403209849618704462081581014435071806139681758009063257713579040329736054130467437887153600709238187175918037386138187316899398278360712035789267043039224220806019175400288926865027769231790479001036243744687945508711557346087161648116350469353090097454629024848269462723614333036664019784316950918226439490049596935985401015820984658511282799744973333444992407460680013313617727454053343457809065505578401493111867832134765563441397903815513424493313438052698811514181750415442751317337531323114852875968122211694220486550854600152684926415882717481166063277239764222041420030508017613177749788298384073753428281837253609286533174723628687703176982255828878849613588486302921868941547058479314976736571197979420723655250279564462105139636321308266815340071605229631354991095973266480322139138962056969855495443776308422418793786181947748553956370564260017255341925432420346739643585991314936064995587047173861792461519831746178144021512363091329518532058699401662881754345454030127623008032539193335031857386447203699128685226218726574755894355737466539552957020866767978821857104852526795190738026404441654590734475058975255459203718419349877007026019604015989240553372640140470291099850240732302344403862625960952756945719776626421062536711053368328405282927959625995570963423166024341945229193439373282248677532397618682342936520724049500615683112625571211158135386479401092023518817081921848212611829374910390996560719078052500840834632180075775559066355176946984269406246244518599548898114348093389008083575977093783219143117001972771410059841451626355277727045019799907834024584341770451330146276044849599077616816957628482471838021103041545208596644937991513981460296342186125811736380571459374393779339566847480908415302827611944474073435893434078391377531842625701433009213914630609360649873168688502841267354595244722676211581954552242940484159698647191169979575172502717825532539152607115379284929953107395246967799485049172661010530120675608717623721349471195830446732727213501412513717389535289861579302817715440430900294711916417584159152915123856061557542043853917384812851323129077494688287156700436301175398108324636546346004995077776853073568803705197056667903913482257940844684042650082848870365531254160687924850435081161558605520375720247076288971480255041481640153210148393276982311817450177529707321841970023632025433651923680316371255511918503167198502584394252911986678335068612149885367974680953434555262864397050654283552053721648760932679155749542253750820390334236662916659203291280860648395884265652365112488685710996587527498318531870113338145448828261850159646608387734154159667086969024161629605160590796930245775260607049801818855446460001398246796588389684989622511759133361804465459844951352624744326462173746939014229209033925306231937272479665651023971340869764056762481300439414821064613781446072150181641819506296439334975215179218139481828765874582342660219687675996281028541214415301426533805517775366925796682334686734724354474231925701697432727386916214899292333220284147593894684591508873496503047623793556527437482829611157439330144896578412711813839456109640393857484502557562504584655580259639597582709388265144536614530712979920824509987785707621978774103627751906005632711989405624863722810566134127009185480483525001512126119909579966193451296843523723860743466698767655536899271136039066337371142938419281115432915697375264216526868883910255687817291116857144385152647452890734763791702738687973592201093979802400735561186911696050780165907578896495767908390063966237091207359471143552543186200538316948266137060514474980421485892359796601590095593809486290809921021146321108925735690782111938212447816606836889875698321845935642102331319634866760198745492333236597131173123906865694744385542378004456380461358547709360089653004618524059933081730134181415851900651988798740845018917176916458089497738400626657484049229359679665561254072223054855017220649128346523759943077784023203358482088054562748137839822062975601630649035338504026682099618867949551889592356321561572167328084463726170630474767164884755422573210503224792248278638261667799597103052246252227138471935769631261133529974505363869206465163225368218020935014824296971949815814399643575298495485910365171111080273656643623779436616706708583407520490479894352323547200007255102454576098749075033950739524721289939913160758324481418683947326113973183936288936636721188765601723219754986884688268238863433201650334866003676115819678970030547703904665372417635481925143359977145315546832780399026096132670419385444108757857684745937676234825385957897947729503894192403682731327994073689051799477819237966747081702762076284447277959137867246761002294976177568346052189808072396821312505764647484133492926520126334884630107059242056227578365153333716228675189197025807273603240031930931105381691286753417771488074567056734698150634166758522912723787423474205686953231138123216546153869848032409703391943338460251215743416580992467592064890102705921480899897248220017931635588311501806367150918401548911179212862746736663068402274580599302730042000222911241948180723355539656196824028572655982524388304350881617101936693460961768289920770317387817939243734911352320424933394384670871213134289403024050785228587631899283499774539020340037770357168467864056880004977128344729897769923513542187962005057885676950727945187746948849256930170576870528060066794289921000597168162278163929530465021196915685131113258675476144769584373921600833714861420728216695093091240778934626570060857352206451511361477390624936013099436928847956071757745047060614521217081281993577848629271735036194962159330312284647359708706269809112510462131023143158250650917094809082164967489528194748298286063970337770772511438449171483840114319544758515589952538400631911943516182322768077107605127075429098520138380586315214428600302985930054412517867722743266832236948393746344285860711815540358582962546841707678012407962937656910094789477204931330784500577741615202177974892574358222209384758690633988819236625909810154673122662097018256638684901642681562517820826749491810560760384091270759863070404356339145065423997566462123507333442273601110258901841272188068516299814693054426353861702094087507666602084884587892999495557712695530800777035860587690856930276205209508915397729871614571485041120803260857201931904577313127400453941243914087716725870145165221465181158548316520033326952273195116234144634267579548135159372439886246280724940932785519683909060197806233216921608587822996889610139506458656029856774884179067538169736834605261338987472085034136283311421370287441762577554882737952622306816739685744933645131081278822602996250942489113702158872776879062690953251367043582904661099482066616474445836479596180115636364393273568725726938160613779731344675339069734813037168006147428765571626921890381123823498052645143908612914894444796539874782830933177257908616035539650252065563544438849172077014753029126838733836711581320685412694214363103499656468342414762815947975775128414502426293131432193680189430801030634896905189493178066371522386119258644274140927427963242841150474195196486611288379427448969977312847656964756814203509336239753118736643898467376029652141606302868650021642775852321221026244732315791823764061842815396166872154256759462072008069074482308244992722920076409570126727946163228931508527742445174998103249386819954456714713428409913199169195568122745282404886554634948628067284774957183729208372341734503399073503184500816071424283103011115879268470973126002985278733887657360860597179302428454743506038521208401808180068365345588312528190262900744849263137260318953664544182555352486341461058139993216434975511902273439284423030597870521964939222566656977218138425290280377792966355472056107158539139984167543906854595492347501797287011862794279268653883772492046953718551061067527529288210346849017537870613530711997015715613964025244831842072360078867811967459409712942064854036991213415575935412886284430588818400298263072269789911703161229161177373929192236083820834930648388803792173330643670568401432838795421165248258404702728559572320340156051635954803319724532103925537476330039189783778843288800944459990322551308122083528838279297559002139712161772760671006184737842233278962154755060107971630755196541030607705868974443082386842867347126858604680675206652885241644864586375596861307185096028177357651998263710396201295198069968659383486609181734045576509567665329584065837345226655366125726549136355944213984462900735407613454750554106851243140317427276336266771482815181984663858465454526724247092061807411534889310698815220182993895720647351415238961261454087082571257231615626361187710546963356210513719965685582303824126648809304918380116010832954084505185355021467862460217843356854720914171514754407163650177031768475929139902901740412171364571131687936175448923418108462440091111105580303860053557338729125285680468704744154429429050919056550618873101401472514788553195669987179126178735604339841065165287970521052726333096981455196636764213772024824183317033620061768978008173012563208936708822884736371351440985619956853948816491239591945682676264773303966915670667499853402711222335325150451799914737279013595493839293585519758437546591324241188409151233033639700417043404458601733714650811302065552609826720441360527724510739628796739610774233417981499668145001633846710046959649487580719631793153791874991320872852097490479293795231992663624677008726822821801038763252065363491912264771863866923186437109860659185901811204098356912349354542196584294537319799712645461321065678425219432250608516941120634445080387455379961963982682342951771327055727726474795681295872430482201177188620445661229737655699836893945361410623400159914786013618861068325966620780122177416817529766290707903346267203768276627463379394599111000078194516000528774388177016645957904635229668287074753717187875669708793383400988816309900550881967164763048350683314470296323878365632042369299456741790377581523016066175074307870741248371143631646058869632715902110161105400816608515150439097151485890368149838178941876418339476996830386155502618435090875353370798478908691996898787784242102355605939112812090389774993914248738462316431821980113010180682145245249913998855051068950073700532063020050371797279036684003153890384658286363056008213061519998137866731425771275173119346258319393971142061958659811606863269502990153845652182545387254104643236359526541883915733110445796795035188320805145928431530114325379672580616504205745192332842505888714918435382112484877349388006329878002507767098243046852139938344514923234162831056579101600479264222562392155766283874874007847736060165339023684884267817120158266441120358828740002228831216312410370268223613059505413102212640204699676850016779326801560941865406357240690717992491446997424062726443455341447500118514652239957637640710590261390329933549551643651623030285200734658696978371559127372529369185355766744430488270874765642544965590602384421961152617236380510037146919611112962330625994003807612611756297316656783452974745547189764522996569749033560256697755940771553133047742001144653562122719925164210114867760531899814988770959714019785121849008525615729861256493794446254709668331204986915587330481409054846540788410010757644862089357844122791499309514750634429256877969624134991606392987513630599787041207555297421169468847595219606494729323984389455253241732167519935607550719378771048170921811871629935371522377892707837636516943798756635498500430155523742704405011602364767680033893242202989631922963813922530881835453326285646965260891296476644488107607270787493063639356933841691033648649606144188676926927390620131513245602845760486219300810179400264072922386513273149053860487128185354254888024821835080719144064305673617613912976759084727449676725948070181765138568907783251743460351066178185416869687536705225486279192399860747139765472108136557865602235958505069372182140729046699001897438809209638977035676864492362433361272489911662791947405069023330563358584390567385577252820625682253636441553564824370490051268727903773988541612237464678266962885223937988295119700067202883793143607197418693350801741922078542623475538179489827412595479399993014579065272158066982136221733141109928338449031810739060577808401312133229206402403308363544721987153627680723341456289411316050993576839040385438029618051355073644933212905579253000028399538469924341340552235960651538525504149423588443372502109214757099797249524853801621717240982667600266915753410505723896538640458986202167238826557992530114919469938959854462790929460459295190385316033835026697679026969546522331916416697493648150611783520895305313015100073040417749577855360749024732957747542098698846088009358407806043766895857515436949882133767213662464567688279040788811813566336009233589196312656069479382900643616251946596076169123791145457160915397557568061583812623720163514103274316658896618326088109814786186453806285803409808568022970018263362621700279877296199159932138759021814915737588305395299252366445859501525223439723062774954081100878139212314245182106970387492862325795245810928999841038576184928304276655638978248211355927851984693325248837820021812437617918900473821916416638933192063123971953701952299579776605433958204889286627772849041853951710366969916005263366457785653814878228849569484249217436825354141317914693392592828816464887906252816837251480483732382695556951996204973383275272334814322020272752318328450076822565020169667217506876996484551300075493123349509190557966634579031518253070867466848836545835882446212750691925524996164022068531841046051813060644694234104209435665888123397132693646082104863795893265823207774983153418827443405772649121205033187845700477043457668595798050746668819851578925444711403995834230114384408649651024961939683746910659395016296362369081553671737008761145474312801600643020563469142541257908099902450484741242914061813401066283592665551814061685992106376030331831504456971812306477855222050633549175524256421932222921587450934533888279611737568750991707032104630242952247955388046017004974776941790282841474128114353382454750596392229841529563811106477908334179679701678923173348356102697398047050675818181353144707310997976175743984763905743047796352850235222776557336337115533322245330271704795503292265334914904588235607821078938488430071662728579982822411415797738477871320974316222067776378325218458978830654057803735215981717128186277549522087596288203087829517731543851859176711202693344112793057467562012046865280733729471908888947177654204058183552385794278453607462613661808093406985743154548620433423758720273084881258732273331401182727093766928628604546158532529933536913372782884817761322560595564631504044521525331357940207497862159877137946343815133872447643644002610487257060047257910729797603793991848906785040507962815331094861274006423548933820230133918771117322183341179434562940408838333364306077830855384352725526703058933421788482067450228131111740188339364385975062840785350137755168927282902958467779816837974442557378559475389917814922193537426474989907349697242671392414789064549721929764817759569605893935780800273722132815482823934852802890323130100114721150813800953029284082335306654149499045349107893292761459690014551363353807718709784885732469147994205491919363667157867087500024863065208366504363217031332583507413766092111958954850491291370133972153398128244930217573347656114340161845102636693601185312486841720454533853860962039588279104406344752464835459656195661503068751081090809178352542351198951187925226786453756468696627404618984115320222442489909802017379888982772771965726765507535455473098063199314854813936433914683150165444185363462548862875447225796003597489263179387389004483939257693246725883811830393591283721819949147749959045147819005679540888092704112897492117511389038002141819158193896518542829536569020153597309498018341688217186501787977021660383879428807461902868063916204181878808336560976371165465935479583263066439125814712723885929896800703271871071387747455956912663415537725177679430006610671460039131756317488845152020734720929895111591687608971444897439101165879120629707773468659846932829654182300147128150340752188632385645155124507033494910733055993433510740097272474356886414545857388226851828615591747904444656863387764053808745627792072835562536883581611500188661172895146006872977640496373017872543678936047109098254842561044246002154774215278356328972838253103257699305242270051038584899116255838699779048565709019230840913800119225264118150625533965160776760125108775916057125895268621074229520728298683000040811605836447822563955422809620856409629081226184146958523837755020771052582705577104106750837269295386517530674021901735045275655286503987813936083293653060373186949874956395985429675050135060743411168966968031641908223393628058468907415093241870835827546165725970853903115536722792146476851443205668844031186126821182225429346750043616164270887804281304010735007960285340676192894851673796877128751655123722452585099311093459889782738038550120554377812460357826276307255192366067614081501063343104102372410682621123065515419516439354352523987885758108543186343296095794019472298548837991145272448412035396857637432106202332611009340108503311912361929416437473413947510865268896692430443616597323845417311747120697975519586077312521134271371520688179620566963102808472838429244530857617761410898782384785276531863856634851882849884882902292778244689390497635529824454984881247581200886380547695127533029373002869081636066929015419851248633826309325692157597311498361192099333259479642491753401071405110395988885876722545050714765708912080533449827027072907851910725353644298348749289304008381483748607107270510673392233398345730716325418273486026867695975975314145757883165354486152753924424334396065060052944181361177104353234957660972707679808415740210559476939143749160793985032137476043700362812761793011351752835653237698172369365318232264806414797436684428984942934415641524489659119256397920517055121104228928432626565293603901282879534676184611807480051365160022616337992405313816099362868957392696008968656608720890116183613493144342578241895481543891479917543559363464003888826020061714967850069447886880665064094130669633785394202060289593350818991447532806840811139950701765489046396711094952789750294983925321883117973110068383916126162003036738756068667415472142643171760809783433471096796002475201044766006070321743539293384579310898055394814501595834590733869762822534023037996107876956951728557625861549674360476444577163445119411465777134174306933227795247057300732363933226153353567519944895917653797418109563716287517900933401495826900298553405098704257125701673383871086759424685669617745824945245734216596479524068834762702714994020280834300926774449406866431086548655705724004443644218912027157408167189244893803376042301959924356879554957064077755032621420054700660876904084552244955094435781726303127509766292324511198712241044265256395707229827449926803425152278790130892449129951938866055540117685372667087729102620765646393736082366220145493056518812184991242277198228785565422189341887288528590929824543467500348161470963221256696583922273993370554032440306759145855889115054742331345482442391801848011834793687971913204191101974200835274460034604585729868146089578907387051949706353347082725785697695200747315961426051561572822968082193472318875426550195233235656103770366152360357338887761908664130454567835664627795821184004612818705847916705287601808796293434212347630785121268308464050459836727124741821725261585946236155317046580581835758517874917290314349590783705386726413490353966505158472396225304680583870203575952794534239721746411833128389958065841260499520229703278173441454709291225398397649627586807786685678360946057015165658321033739013105593352262368914084555472614813930609346404965304402782045182238868694071663473039570960907540523224241768481657738588744249164227083128015678497419354680164044661948866480536785757482858627473809978154657886882743499023138263322873410651964903504599693627205139876365117535042149834811580980819974284390991682434139253119233108721082087455627770132688099899332632441050707908952875713995485656585582601320303302196140702681929786149676223033344797518322460051733901269628286828528080621177067072390424915886176007841525267880569540193625912512643148024000137629835159502019292269784158754421204337820999799194508621368321981779264934249897533006277173952386891720209340196725000730790247917494234966251940349132598474307725207200723850932502175124946527986148046410909175199201026857954143453953226834586825136915012967670991951532047910448645031460198264871946939298620380897405706409162478710191910156095797737102449024578776041236637495799915194309215283310145219134434175322778728936617881614707217692860438203574903488571601935205334655017956432830191215042209503931754739061997296467606135109538375255800933775073963219678118732205017025860774000742723730450282945223499283179962915875058802669225868654563904600718495324434470306522450845965766153833861710953838373423616419663904613946272242344078912420623173549713294436453118884950128382623692125204925426120055745007469902722655347717002536338548286083759120117294143421198496166084569803736262102388379290476857438233017272321557016798797570290197131548200181571803009251336660693503481405661205031544104390319972299431332858283493428659036301690201783597861191453343824236187034127592155843075293938135982669358505612570988173141636234330253499251766250669556734555758386764545682740927762785152648697011853124112380408719923418416921798156359712240742336346345756249912560273634911134934597776339058342955476287360990501959255348131286870979885996486850675336143581569709538123676986851788410549855024117555101958210453251711434503958871582861402500644459132055956638996121470448266947906434106127827746388213101682508212546807595942958110812435112226688756037249379704565669500623881021408036620550194853466497521155634068080157314445481060141207136646914559715425338989063011847881560554365357978915614976433966778152374097385295247162963284208570925121798981626428911299906797364758700338854729431773948992922079506552857027159619932008615584512870307587645484594419360852473075789928701216854308371138116258502628522906019638947040520905389979149581785528938809334177691130782039726355244418339681966829700348191681612958492347810073868255765876028217173242314166006758774503733611485564736306117891147991040414856630638250375563674224213614623409278780894451414741258516676329274174489219990063402990303656137386975281686568848709330234940024909854839000593733244149604105672310863319201848208338943623768766067413408615871886562225257580437880454460969926063641925293087035466121119747351420248867045675660520527191546128787771305921938590230053226106443574201206048860056887186128453615796356879785325328202998426414807820180510911104979746193554822642800573071558109672483478457291594253498678742960577470946711731595977921098126502051413234589730182101756210330995132672546710254138746748733744134558890690913242329778735928755368443927556904873677247724323336144043132641348109130075755981156141416245292247694337337779258803667656988121985694025885585307878771014662570515491735809252992239824572267757395477381908638825075612667371109243149327456385749222485256769683900049623448874320513061347761294515864697181196377965310607980695047382941149868720368331484066521558990216780767751472174510466999216686629725409349403143221982148349219992569236085020433727340490584618997457522579955452044881699685850691185804869267792242078695035247033206439643118918422887733260743425013179971703679712327582240077904498474772441960364138919196337843159659451460510610541482974341992284218511618785420776412638810120608902319775137425533960948123631600577742916136395868940925764370113580978526682065809768321149105184381605019938696495767167359097496519417303614538735419013841887632820664788787199080874647309187370386517663639059047413489455087170773970122502463279683561415467414197114560430935753502545531906574705863644691625813114100096957409636679897683078964710122801512734868709217697274591589782638767923699671346807256818618808541513104704129112006086215011683634037067916432161126688246703239446119832569612073529360875598968452415125699000781848351944158422397020000509299351238077009694824912200209253198654313527645627523124189471465982437070625841876819456360912181351799887166011207495631819927633990438533736864342749864037815789057283397560471602264178787326270412721105870502694714639300755803989493435489691622823479900434021255628600206303869095897429417016705013451643847340781991085078386140594059665892616644666590314401000111507474128279974102491831902655321338510575777071738507495299928434785493035795349159175966623904797431521381552389558452598746011270633369309216049374016569178917552169235960084961047595752834696599964213174040715982451764781001297682103263689791820975776847450290574277137570409329245317221569883115371198761309444272746001577894655548481607506262103610209661158295416166493589038017554256031349347154148283644193038770744183661056481939647911440442002900194783378979922585123326318940885159650232402915425983775368910109698008129097789291877375631968973594402512828643306266305382028600563077951824016244015655494563448473195328499974647213054443582088804312934734982712614959870492163451414766831510255715564693070201892705574527183705166982536220337359707122995975530187271816894886197220771579325689298910333588221806018145873333463653097315758997977957706318163590585888771959415256197400291156471100607687805305316156226720431354260285847013022425570071287784002860216350729227201094457533338764290394548110845098808909893681497225995523941753996588503274868982644060702536147180141418296073551504251621883418522656464663499379533286360988740422433104094030401036422182671270865999912843738062680982317111238904553277181368378115280001100877441263937749081553184740103899466773245806984541328659158720713286976889509619874749696819012607895431590589417115751433445926931073160027517455600543111304386321878398055078584302917838090910948485966470627033878102934460828672172482298304300231578764705969009474119451558190864347347464502771206167852228426101286793949711695976576759968203823677498439139116320456984567917824976997188659138597763418779274104938619180019195114409861793588113822491415909703614326594471074181818337989804698874607132944255329379713515462622270192077013798087048498262443590227739067230227253959056995963804147520861500108607149576509192738582529017245260654631171277642387878535619157822570380047945823681897627392944734183572160064685155235822610793362676765440283042003308374412385482686793659589675803795337405061033896108694195667228562596887062371697493953781306431205377018128958316811560957937285175630875799875235060950877285592024092574164670339639847975875842302328056567020267906315966941366362810720712638801026504501541599167800514626205495241898725855151632692406519086018797288680968683008934292201760617845645622981603893206198489554468610357353530945869546681468700008885608548278009352625830718527678107857412415898769954653956623800536413238016824172252237123162916870616085066648496162717882276258240547867853240403300301442075569149820365855225042823679126079274949172998386114286193527035136691033173955919208078766795952257700516754837496598553573619604734429265237367438369837940602981726113498175115421947606290766493904259574179784207188545104368245884071304355850839817418869479741369819845834287455062146269871804604934549868189247798295965926314480750598503168730101239943955626276089603073421958172680592273723661252895399304941973776813318015052981133267846778903187289891738643955191629814207385626204700971233265073080644676466260054420693704724893405135894243304205674187696557067225525302168432361632017386176893909071878949491807560026126178759134522720998126063927714889861870669701475998952362548208610362807086717485331954051946996269794196962462135901049529771459407378957930464991103852990888455862983645648260789006777377580569599842257817327597221790561599220662610021239151537410855296143677595815713284363457884030895851167846468462294370685718236916021264024379406957567561689804145609154518129659720461556556631593571097288911050871583959751694641726621614849258903113868347078062543499573376648720934855338924804329732745404275504291172718265781083978992243982786455255935471489491649731832992839712628577349969881508578114381268674052148480860518088119824980701102756662678157513376067488467736827012290627180699070881096708338527285505539509951619006490579154509263566851526873393101432541749569656686150486362429665841061008984459927383964563428307600732391372513018944784965205788826726685782674050617242587458257091620580731227382006833083019508142762411422295948070774720642580193230636052776277674890574583590149500681269286774549886510270682940620661649708660925670116936280083635621479039432793026004830150738281233675953565907668488511231559155029902113927723659122576959400206293802818828431679036089844492026448322395389240361396431057620538951819403069881399430657221531509614944800193034294565848144367140943392297973303282583094070916682579828534509146517529313106451100447747225853562353867312465887949043393048396340677122764589170459673498258380158587169442128244743530722236289763912631351341089274752168158649963387736799669582803612373148672277812978075526783510101831741049254816435535579008372816799521104156162689128401518436878152322425092742197696078914935262111840655208091432727391406583170660707435330297098599621622894837053675205033708189392760742512526621129914819411881277791138337945821385102839989689219793558960905732561132853097658521335649912931206701814201455407831796526394463567227650883190373040116894749402623413939840415091690313448210752840655537631627871176967236877631630262057961014707010659567925112501328593040682626191462739009120260679985692935820079066470182241389968629296291590366797614293379202745217055110425741028694169428928159073054600274322978006212180338576073902481814806198672393905181586088795280179934379596543856039963909479801986730966597959202056907320136118273581800524959415197346124406373994667273737449733057701978126671136816639852345119704139946441835535590987927128936872628916074196318816174698657367921119030693396468853521115846512675869936994829354711989111429939353414722137349225849072788368418711413603719144038523308255050181428215337218469751021581967181429194889149699905476854507711715824419138054160455087708630467991845525290438154958969693303439005875114419062500991188389380007173960361948964203226976252346785278311655023732115393061626509066190624995755617123779550913106108325570011684322697175723837860996674741688492862269534483787222054269413244223150654399155976712691348132751180809339109318053895143367539963173137774200222252392983737197096165237491234433836779661720350688005975933023531162308570632373451536185589568685200078398780181990651710361073051911228302956348218676636143588005320685007020787174311503627088530958315170980106909357005658484844945255922465425450674306623261545361196442839105422744413655637123677788691125125299813030438482086837835861860106204232996507461036520875806158208542017610244695809605508615627155361110955141662276176050130703126160783598022861508855090012755848622107902837804388093011972697504523512287866114653020154187180332098640103434062338604290794997278827256521298304748426455233096959909945132534007000957187835438382784073256274501440750407940693047824291066052590570978262754292624509811327687127402878410069088010796047992738452702186170627962491832451008379243701390831492031683088647720175297371718275676929688426349942956732123317607240594711223429810615003301870838016028292696807726865880473243129956391448058068455534323015828035006011434947116925359365561398681307978014942184212653812683486080166794489075441284231613635714220035176351810071348405410036791670486465902602648026636314140225720270670491862284492007299405156301324439986905251856215668118576176900027575744242375471837926135354802170947986448936620248590524940170148578073808480154559390077113479708748874616277203497662547440682719753797557503404173566256501053006458761488403742701157195546579856512096255505516043372170613671310646957611535468673336795669511969039150197166794571372015456508767871429888529201736703952791019978520238528981975285905513523613564819742914427459335727522869036140152989098331326761786158474062575600392698303013456294136490057242481584001146144996807533799221191597320475820893722735029892158391940107545211644258724185449066377631078932894723729789551420250177955436498740025275472753487900647404932778286766835888248514780669660210055428341329726140415992109088111917723508057092058707346580678239668793624021368379220621136224993101185437593901404432662423843382919969313740593678768549310980589231055397685039444639895721371738650411834839243872768507680403601183373905379237600955178770692634094581315589838706740304121499974237091116793299825225714924313047153564095796354798442800949868208773274665109207706521153663297549270904202295291077631501025080725861852147930283832929018957539959736287455596350585759971164659632923989655175691940969208913127367010484323193336071242576005780395274505554544836299866892395103977324789145793410611185441099807924381003051122675086332249424507996392544425142161471975782984217468544321895503465777102327557855766645290520993800647947421874332909813022161180031600217323789255317423794920821455038066888661465821258530057363530357914790707714377372091774710248731414509572803068414280126709168222015951466258854252343147672885569806883084666250536247321836492375205595977367784604528729008682446002565766403727546599085261571895974179524354398205008253222855744840402988056825987404339993635737249446475120079073935816046188050239254477571303048552812850201623034167131022903286501636686118115200996702606758901280127766977042129477056909720160988167857829344931005064173964155232286576999967364717318437529786541643299758376712227296471610374855832189877854029529585330526543530183470491023270508192836533386687713960068703283480348553191480726826500782719233935669889594641787151924717542797494325607057329484279380883728673472272154117550077214357763883345735320153668357983307329964792802821107233796501865407301022838814793713717473986428346105672412762321838237020918495534950926131020864891714765240661942908789908273556333327895777702112321007121733905753219036687355919115896920076347487420504726411166381378473128506898798366861964891661756802062996017937007792108149343169559232947817127867056962950148351578856088174127976540058280758800046917650049715969493070281334760176504659221783370478428563427149067914716610151320669046457138089106994448499589809157143217020927567772455944196149869008602911225457293184550539178442593188309382883126995700154194924385900202670593465346125029377356817595785703635985202102928155153723939256444659583452125024725616960488703405082532950996501788096410780644728238110554626793289229849782339200954355266143580457764347363471173073699848375553928739807007907687968588940694168167374813200667934764880030671269453430103709495232230960701956934363321511552850262611719970000619969745897948351463518647180618375710100296258214039220148421269064913340018324065851857475891025396844084057813943710121947002869990274323130310787001719555520475725791411738373865239688960967962519266284789422137207350031416790250764830175454796095992118372879999873147442465116859681936055632216363987068496572487163768424770535243800870780524458223305820864221166161103719372785921517935063316740675384559789639064142784029619467537026266085276798622889091717210825716872640261903165135497856951321387792530496345420423834623873746599109767738649286965955135184385843078403357378496114818497697509862239918776318738784249223581181554947172773290381210389782998040689317463282672688688634938425448595959943917267055803654328443011313441376825038112852814530158908406143690213153368895049622551658259026469928515632912117196150961537578669210002922278834388502239459056343282142797761664432769613558949178609015551208342228718984962905165835368715367608335587238894003829839526795297694197282399228657604393900954322304878997868181635431998699736442109479955246477569137452068067345698795320053158774646611247784785825228665497605395310390970903319705662633767231760915225643360661566214626852865348157280256153998206380537881804052582199202973302451776114374537664161462211359207706600346976401793175606158284183782360394147257798235358413775477252334059401458528330784989641672101856346431118874699138325672504628363769737374012426618386342675250840309773364409331932465642079143588219241202546862131562529083761520840112565027931378729197874088523848516836050975371322893300293084036064212995602830647381936729966869614196342290159249939214455421552346122688114855113983846447782838427801350006436039549403379189738830744419570386807309546975747457919229020259317837577778379518317578621814816653279889060122479728371890039292349744644520976576274729543663495139955344935298148340714270623153644907978343493777143134303688132996820593053778658456455740277578520468299046117353336543555092020478002308304662106258326335124026664096063676972560485683646742111202490107645814944830727567708292814152070848637029763552122567709472514457062660487096952454057605713793570275893425607156777384465408391065111285091381098944320650483102912442298632098844345235464365611557614666212186372341897172816395964773046274088608497562254766507082334323057314992728014959448693552941901082573382579062580833468601696167639105265683816676341782728596050288172999370890272984522284372153108629033395164814574581160970721665728170907127555740927324754929691133117054984889198191592907217452206856534052579073591143010175092200424431197026523864200280349430702388656936522542367909233225154160549962973939410860882843410608199431177466021128963132100571692699106038579569883510372323926516652914050347195114557250841803805960493307875587242069125029909204311234011501379949423443039955046956156229169100733637126276635851843282054627120399900820265703659731342829388767565956794744048711504369420616434840245785103822994331846500353590645492556039289084123303098419113796098549935955800902246669869464769738368632872679646625921064434072786808371692846700870461905780854446141248501187674002984762527676631908358271177899211453446270950272594211086625731236787034817436758577045526795876719849263701991713145609080511342466854798282460093204372506880532529363303336503294879973954828468056441619560210093293454744848926283218936336082934566236073375255243796690001927831225330499935233319833416348942654963952949619043050375634893556683634747508339737002430610002041432191424319307562777718059424998263896650528880057342436055683543998732165634491708490500400196437515578771143043225377152116524706613800815016108918934225474834389220364346719768066957598130060030042436858603180378698911499011324550874577675855762698884630480218895644973377120073857972176347326642919582932907199620113168507537235962008022684844477110609819251421487295171593899587759375748991916155804837554356981867353190394739748582958238981043326631493410431449076174836976921422903462181730641542134091287069254966837227242028329074204752235763334768815392555503180174580394576796458929504411707309529382018514752062100543435704514947633412732520788259227900451230143314616184805355519470215347090963762706129757605894867610213715417179614910218174958902314857797014222750989063761166641379400192777603865507784816547984309069415727195562094566351815995967995557613291130429659147252646016649200498891450713851407220409869930629836305284939354117794856051143841718490490393281685656262424942122158834777763400146451292633253086656322940872218729532720246896327360212508047411199847748097763378400722781937976730393239276337747881732138661958343795252941758088126995189805090261759313912189702054164412148672011287002860529655285454137476362409924893708824375656057600077633224464505119915775264953443094864805120752023805117190282924002907990335203249334867185955656279892694685342126563388688585813944475579916104264472052448042085056244057958102364896953636126497911390572028817068980970467396733948034234479727223129247240925132527454938906084228100806581036970940761770418674312388339942391212003882651206643970825722713623300171554016938196958855648382301808011780872674245548275476765361815952151806371595056055188183167850711520201738866041262984267413757986825664771287828584249131545883501972954787027063907563457412384943347985572692021222224391061088768234663000704989377346548083396773085700837418872944673995577229827049680877191340723172769329051782292913955946472210096545653229684973352989681991884323391975326263843972106129611615266975994092033155916207647540048569753270684335609876417146835014652198449694796710361619415105649651916067741484664092811447620439224300653215419637409291881574673074034394580959232611806502849710747258504423600758128519622566580586228885095837503067943214346334685807862381017600813676459921138153139341863753451527347612539195539699610165146477792656830004123355561376418173620972947048830680823286545601183487777035760671080472740685286875752663040657888448624201586442988693842982219755531430458791640332315819179872631441747826005480055110195575030871135936371228643921355239527675892521415506006105411629239965221907994428339978967764606781125327525612927683372156610531357545796494747036509849794676719291372580492057368219163017548545400213359622329606144764755719649825747403605630440889541912496111062813400261755630273030860508746026208238106820003149686449961392651455974155398792794866742677982306331697496883979442556139523255831905233218617237038507543361867727325317773172516645927168461397835672283918063369775174061352742049084133559332083012498865622495287831769590828846243965789216187399698218392404906171436895815031714866125329993161242769511746327851609585207096327402700221439800556870485868142313954229161399777249926603786233059445690990606167679198170633637898995833815061228703947755642183997938417246770260310609203972753672002725242877619475211788278891553322072318066354116588479675646060490838411622670058386381699124685652404732394985520198067182860280653650835876194966699845235577287491213762915294780392754851053052789289573258938445208705404224380627146863718200156326046461651183014065075770612758062492612779599628223112020017019251556630123369095307065907141880816304044083840760295289206694243984964716929109697611541958384224921289123685754665014916700539616380528166971457823683363534716974479322787641316154626232233503192309208180157884127545398008765555046000593277658346927078461573153298860533751444017686989090622366225982493504728606064616613043171233007882121985321708906237222226188966496416524443228951110254769289473010343984069984020744605378642211258215684833149118887216180193756385374191354655475757723005110127874161724884987297991352226529401414146633156472166028891172045971111909439542702214108631722744018096120658250856526690435141076335939272146776689160392312317645011756250310979609573856821222871908602373751248748629275327394397754484295855858105604316272019813191024841464957471748856827025212172724210869891517669790735914107119064682691616734032510229401024468493901882393523885865054169284834626839782642750423801064110741459662983277509340440042033281005189492943801643107643292986233476983664094203540615596181839351863123223224325915097962938004216414482235749645327221384382631644823307647709899720596103705421886715678800592984641725518122973169893513448384132612066730200883907776884697589507556153767330105747473092779862371534159444881825108984292508862338609621318959007421744148451486704355925379473303620510493906416740346494592221449111717832565972817847306145252564763240017458872723907894990701333714836699788953898020625407468169624608885016895022566575928794755365058852500238002465962426076131257399468383683100770560897021007665476319964548166585350109770039817782206311713009456272640810379987268520293882683536189921307802721535117836402558332538150308796231890852321075162587515889839178586107777734664692392505695104749850443960605985073575667409808218247879885735682109598105933808916612535544706097432075036394311973980560593487846628179481174753101883398923449118783790053133075933893873352472185055579516329206884868524778035922873158893344808371406437948231124258531141655325388302827015057922066037425502639729250827360903885241385148536697088227528451765804145065550943348251036067157437343218470675325894505313926125971796796265318320948983143413350123316056877494189052668505305009660350210255232344898963589023138233771843977448310100368799133117987911057928608769209473709821689229363835625301960248606031384101047185766723764293068712529811595448465578019713805927329091983601680559644171590255262702292210247266274481808717990682209165597021405180343717732587583719261051063706647659702483458501368827038978604736519528835731926860316295107946713279100405285668923964349469804826239706264118446353822271296457269410171711067275279813944922436738772554558505156868966121621976200113206783140687641124278268236377131543643231546822402547265056719226331369062291892356030802765648616045799287084439739300911876172162448113007213664460474801781424598460016062436176694506063980614057906880031933359911688262960015113878142575204450388884155216714949285423307712673477235352378017016448542846847806347445838273206672514104380430577174220074134885008202965369189128476126714417943393834489831288073284134703876889775754454684256506491861989854060483080572261142177242641769537442567200031831151794340235535675783533537200348134074111853983022027830916076042051380153905657053955155474315512474167149851939905193916285929886335032567401923749347796476265948025356610104867113358191187452794159991614578898545165043100835014007310933837135217402315610053216753759861761144628171218583288900203045873003669350276132854720822542399420968508178579142456726559407539875879567771297961854018390580511624154993703026730276641677010083807861644452279378223098978930604921431301321592619266686924286333395367605879603277755512343975541006185963669514662275747451700870977003348998254132202255067709723090274770609528921267662770506528522614365740678576775609216519838484994383605308571317444312837965714151677577631720362944035642500583224943810368145887894894015285585874864303432769356003179292508295285951754307651390565511992299185869215663918861724775050009284292109865302239299192115005711704319521410786567419217160818021255837492627574810261393020486323820817364483675804747702354865435042959594733200057443152737703719002163027288840557159063744217674177179604029300361724829258375089066928970709611952755556820660474932249075278186068012551536356309211973971988851527496803253484801156888867988841931928589196322692134079592653620043877955198249042859170019423334257261359583416476214707174393115865822647384510780283831636638422136229356179816204005360823465501870165929109043178926493109499957054798069640151826295990947041180142331238286936896273340165184097684695859509361240536548040753237666397496037125245048700632731266273591395638265169352338274310494741464855702962525965185282838171467778439040632221546664202812849528544120023476593879638048897492115702765277714874784517657920407578283135600490236239361387366990282880566749871245836438248291215570219185553102963963660414365574252225788817616699894920128216713940526237052757796767527379181202208387937273200951219809892300304992538988552249155209985619334206394247004426242754836638273654010366624994233833779771010163313802254078909301339893557401760215267040395564045768126624579089213409890005997710580342427335520417475467137802404177486419250067128807041308178658651209337751787584438301907814755620987342297081961094195134528250587384104284909941626982050279328415645658648226562935646802631554609450000747098338711758680365410426800959506834610815109445865260982665926813245434456209504415640934614461722324353076589551490307316626088545907690091467070958287394678396569442515860284830195442979813419883197344119582010783092093977353361587243781539501335244598538159054191545149299308671867457714997817007486063617868629619856180865933589282544226775260763832837846608232809093311875299486677478766233931311159503702822640886196870783512093467281941885608401781029425633239420644220230963919175590475829592937246928948270355411335423234074684652270332455541989129282704075092983019939858965220705636242567433576193290469247352334954117845124809430950511862178766573885336233652779400858279741432268761841393966762228709158003131566001065390631032424459673615459867737025067000350425167406616039076760197406869179954040225552809451276830236008666721003654221749385903812268692881547570864852452775992121926958406998004862072834686211606160390400349771795611802336545332813867781989942661576844064203832151728810213888226048768219056135859612160861357140710345826992251955700626273934438719397323771082193699865682366900541403539550120587400848641161240807475592957053369730595251385026191407099676380208033931492179432785363241864583453769514708150596744580522401331405794741125250729456644292725234406900917514563592375122639604837232985686675866240259224700021853660937003718377815351717828999901389064621166191543706624914605311272039198506402548429584558052699999800775842428824730032915750929162870093950400495644086948494148155884736198337873046091777229218121769084305469166879743939318831219298868861290593871587123470752972773316123499815840847413442600009834313897956062663094144822246347677058487754865355826415150819917868012579881057554561101475729263001202550726178490018528967813199692830482833602368237387661250316486860144793851233199309448197798671448472091687260931957001528767916920022833216961161738363882393335382025955486620465405344734935942120522272660863071625932953298355600134136334419905247571233233660139605646112287472215129923169853122751851033375728395922389087304112198100513845132574144775453754029436580813128608706276099433128375518804620033232304861008780776790817603300791415362493869994389643071808666829752000205030306764926686752430973081404709152937885156611873869714119430241117968779413988836971798476913436240520780798056564987331651991027456988799292637996766761338818691379361883309430699990816563439168603428709737121845875781605064586452121873624923428551387930172164492978768109519492035307560185962257451822762898573835160473732910097115820050394467725236403456039272433865474394808430727813603532536864874340132997127192326985771226169646930300782747666328425145726741247559453558012113407545426781634028860023263163516632548219099396722438097350887848215222693274458460612889559294617986500642307257765496320017276918157890921388027499738375414237478878002294249575937765034131108334868156952518665599978423471451082291218837849325505365203884171837084608297778073418291361257845159741281479371674536726128918496743015002804402977708107092252952763923393313079327173612181008669099708214394910534747496352180168085777356597002580625357721319429069471829865401605241607308840980413799388382813240842867030638092626786639413634115373768560858615536780097040972493211899888898178416452256146297408920311071269011104529261234578103885039090201185250304189025131116635230311211775819645046779703899366137067124724006677872283041265675860156058880351862530360332206038669978377564847726698434901737067903680689465316130078553727887245705942626162953983497923139128157669978018496833448314817404788950633672211455271050511579946351345976132249738991838491533776657364984348455614353792595050185258989845861794422946729538047758087378310276316503407174970831119973265953604127593195506405634265669833614740360247513449680021526588221425562752748083478556331477963776726671733875755699116560651105766883267933209460869581313147175369793015441118696784486610678074849209964538874298794802687262643870094968181687154078152019217582865847029491487729981017239706100653478669108140798615834065758129354788739015782156237371602612395884772964313293824290653071084120226810955661654598311025974156309679299879776648071047049293765793228013971015280705140859195640340536818452022340315345452238818828265012058169774394164892959506547881895555776914075258506151290392525827815826774687093312579333465314701472534969329199303974544430768343262920427693212979743588275787837483235922443419639650302698615162159523488387036464429866000262024829665429317864496403591227659987427886643585485466536786245734217463156637810847679250146572354814489505792250705346333435392539086095956756268651063337918197536504078432908194824523338568219759046075576708309367171901945463318947672716239146478421664295433800856918948142105663382757280388689349934634284684615918974792746917709931654253142140403015560282823947247848719130737248293935487345979098579542936981678758342014252751350792571894352390258540625008544788843967694455493215037879130549780082263942891911038038063392699017439712660805678110337246213616769623045432864152247211115593312021998152609714859143148827124192256016465138978318772707089862579779773088236443499003369685078400111243818834140968502260963411892840661729961343599364989467502707515503087766605664768738574781679622471037037147093982160397820799245560587578569101156309645011048340281557238024172128114688418736310505266331579521405403033768116449034557202224122676694414369010913769470691712986427449373244298503217920141348365870486810022744680902910039404433349391130751658739252446237075778661431021865139277344178293908699635369258606169291547444881722511572159997076165817603579206218048316189063927943766901196721359884269270526099974655606590607949750122823309721131381669856157676247651024761745770956589186135566816402642560791088559166987228049747514795401517058130450508831174129244380469628806642429243135136090476380327855581491254647943366217785132373501106755499661192171556439796230696367974199749915630908242136364822303576536240866861376063484855984459815139717410415640112776863874272418739172611861510806401113574448836519682526412121678350452293485583449560141581259256351696050174980461189100063671565047247773094337967120783494853108915620744073350422883652024828760840132273011359405347209459054070738813384078750572040127511306697478728004245842139626990850908627153663498616826913562841080572526981740368410971349918315123742713161773943902582200872535142690979596583195939319822139714247770269482263026825600164856592499364492545872781391601994108221188479320526767260061672157224084389300918375178517531004477416597680992184470956090884379177238218655115961224699183418966981030832909083060881295882036500691644298314003730784585867727164031745900170100350915152435069700124739273420587631817836090730283008889619677739187169559100107425622159954848808852190959300064784983593470769559032848511087854662705965202224937959196437053843021070591560616704547194898717183713506131561142140296473585538940629221101790902915564457821985094224491181546545939342537539481494586087245486351198909759414288543593903661723277833900415406193191070555363916270119816559168299840147968939518797267138803268418382304749110754993879285990191665952651699323714046352670484790203784839489721685744644687610862483878640580087596162325806828731071183573719802615749950742135497022525507353932126419677625699994324263332836936566498668043928790272271240480269508497723845624610697514914956927710906157700757095606462785141961819090458921959062879201600080444155880184497566281598107347579187797980220976858338175197714284770816592334948424510894588171031351763971717263828450762148292385653463267556322719985431148857954761360147389690514479347487421890834532806230124459328378896826780567490492059173494825651534002055306869605589622292433694009666325043718003102810672866896515311481113503631006418650376181183015842909083146080766087663967346619247986338478862174915080198545158733891367521502695702889855367930720414215094831143058825419416772298195213798376304975032838436828305070302883417301819582858243060563549600607419357020182709188147899646348221213188972152668367747440862794822989650659181762599601801097671508027926599435767334017928748557020831900967776744933525490654575195295900979305876381964416120675881618984718518674202030755984568885120366756714014201227885454093030794352606723692350539980448146666491611835692304450796781830578228434383453933437086762954383460598961402003709910810501971379053373595360374180895462044636184326381219283415747738641180476868798998161554382368756883749386879664596088558454422735599583202667540023335579951263306723910458006565071115429452301102293267188787620115678294273662747353995394833826518340976090167710105782046180905153351430082035536130182236871692654560446126266498858655578203885890612503714133608106420028529715390252466989623330371452573188928741306676468758397229024355684166969896626290403815910143438427335890116741883676279082340980411657076341922193624337803988398450367646771461272486821921943516123268056034964394774354996780172630687922324033214224570964703005057227915226026097113483824855745777995208260515318770147754241734062297786244887091264269389773545776131033986949441696315230029854048653287647447292498450648244669070357908818984927960454282016461611868232490913551048077687205209979367739740389528951609415168548342038621864439462659178056182644059960105063179151998258129801988751371015674418618414362921010889954197997187426004323127486643793983362820054386334129695463184938140848779938625389880170988893886404368559947300486083696405153145782250213654412836912392319413888300973701646429668476551787448647222345612867634312576060742695578001587013707140377119300845961169057442477208110653295193244591955700227168982003052497532670838737210361925222596315030893819825348187600691289124575153648815516301112702126709857416945185466654347237171964694436840009799623989291203746529718662383652587098528061879137687438883202599175922832021418024706473298923273940520939251901215327382996381335136424100161393357158341851692906837865980529163335248838949720242291170095341458325754841340522169806459943235923110340670303252489151549787484585037572511592945177911792967632477643612569735350075371399872140254309759021077751649097755636645630137079451162489950013032593311821316820761632921899462028792149571448471845860991238348390109339428487341718946031574628350819896040155409248244224646235807639613863635824811500212163439942057993030383687090020271390663391592975262486658615374567871893440273680823283021887742777884023725022962393884071629950921567708575958561548926577354681687768163699511914480305525088439497287622940184406971989269938193581464150885055964467456309816362373703448203513398115588095417132523897680595755583368623413059840637245102406046934851904127038688008165325694657286645964600042320894688318185183422791415562089317393581582884478826082118986893604732387459552870563957598086138528047951434485150747758886754155985467552347800710538122805163691701705651158453938067975325610279215128122411572167684214697962133826881385261735987518191902226240926942560436568230380049335557222794865021721435453737735615952573421490493125940461234459797836289473906768465404466942523868072874092878209694128661865462820794644859039693753119099914756345994968188222389404981848926428195623658342966913046885666738204879340329418278317279591671198491943328456275850133409310873256516950542449677126326295379201632880529571644796570649881126411890826749426414139797745497748588809830893459448810622097663424020000324906767067742971791846046003143998652173382100873811748177216677636111118479859978672499406318428932175605623323478819246065020269628857695773345248532732970092792909353364438286634160877036039418081256375328441750955322045626968032515778332446161226434091192341701209160616438355429044198594689027441948964433330110849316345544355259341282819839244343615431658285002774912534228732757184727320501366090277310909576415175801592906688513327272534417549473941489696198982966855115379220986681129391551586173730904946101750491684324040372147824128405181895415975651810681228955853829290795758194206590694571103936027265831133126179212027572825682105697170701467373841460969699142064933285317384497842104735300258543020618598540404654484398020647996393511109835628991768210400447903867345767521851485934009351961276221133688869988429960092637817811128883359520820129994949715073075916929514235931634066563815123458287106157713665605430334048764293847569675288243012940372557929285895829942975593655486122880107915565303331368166933842403066946702975405536473777777706862618047239678303043902462632915836380816224338585590330473532098310873772510061005295200175063341328940584558587941797056693507342133509482066725263838634867354691219079105088010033212598140780771087787212724066121183094754647227160070676336991121725067751814447423320907908452345650730240930031050670540167552287893732100656281171392808673295979087441057329472148324300564979400889720232863201292283573756555709265812398315389555014160179866625259707172445014170741531505290847754011121557331586029987263902803558800177632275038153504003519015626532559238678756106466552049616206948288081225999298717442693380833013395801691572532430878509024270336881354856613689605510583169965714303456709972283172962822662646821712675298367370208352572615439709372413662132673126365894351219975370103573604705710438964835673411627637320638816260700231972282343515064887643953948461526863081368414428837723294422855868987014685754438826945610202457072227286767777559843028727170562587882694063028650803356479028343354530922137198465153910689627718148157197303035515622956211643159416594129078211861634448841413316188143031606983863287337143940847128908351779768956057430838941196944198411378086391347647412802511662050154375187763357607717299099585584143171822607270571050108183339511082591258729185878410608811081656325016836954220588517514745772228557638697260878496528026301076812901016605116492561775269297625451842138031024489874577604797943424552054965310177140805278178167129327299031453009308817744970967154454678648409968933157601507677654209170186638219838394767101582031206320544807855877433329339440864719471598610726430998418434943932831219314054740080473632422540257896337004541041273167946331678638577628930494885654077480408371278636851346234268604070215884336019357508908174322150201599289398835003136300147518607369884705311984190408299817554868030677334887390391656782678186168479606577077289322725929559755342393095737825693996744197415316988147412077563772594197110216615035896567549972841844046972497487632083017745112469046466181631205634604001795330781359473995360290677297391464045034792850667977442430382528274035629913585356846909851790673848862130799875282767651720489316446882351906141280495497663538913751150210678990943943948183798229584581084556872000317145741619722569366579419936228288948963482850413598493727702787371164158249310020999734648132239741524582752155583211405873441073064382162902155433612139235874891798178802687499625044294854771532718870980885604545945199363768431789738812895494657838550221755821897148879920477983291126567764108808128372413296040374388200439609537430195016128616287924446714273987242404233233147009253305118647739831591037963993459321599330221216615120690294225646541464510157540149311863779971225414291328858479712791087292886002024395469446670901710724338191327994809136847926738135611480508321527904663003423147284471595499035627738200188259281949868701318539170287454170522151990752124118971735967891779277469298762480113352134452583832304445908994383001335442699326249965019085648111816488537928167764143176221226603979345893648790297952421886811359088533303977358340116315838115323138008082415802520708908835638080827552971338482748570355556304693233292131017319525249563780114668664829455311330023703573693550202346390521314350088934483940707300866058822688030897034346283559187450257891305889697065589916576968831478900979212838255898724337901879072682389804863206171767729236120093987839809997934907399448044572099493123084569880362095110033661387509352945930371489101602354752982979163429085899967933513319410034484076129292296784705978915252078915495569346380532477064878415142825085908948069931997467167542451630763734110359141491188471509162426084767741521887772695188532146507431238041685178993546812377300044270955539319822236830673470510234056313214109669531913767234772495765985969614770746858933842407222034722692948161565787146902867950825925888311865395854345528605162561046427688237813061305156620353343067056292235007870565148425754822330424982841383296435105549740542397171552274436383893566489654801680362718813080665242535390920681746980018890685826293781334790133129337976651834436756249872368591067882237633859025448181496590084894156286180653792074135123772368563353063713406715269858113388127689808112027141330880243697416468930562345771068483330178174824131730930197425647551871844125197652305347633769202405610255476296989662379663257181164976955249935666764623206693310043032277780771001155522180087973105555974902286838921069248005819051359853430218291179926235093471100238768789341123381483694506192932527239877104148246180140855843663469180267569503820967265081516422162756131573834046333569145007980532613930770730430063248467016276056229241433093231768464501663494549891652161305189877071258877454212640285215972200042511942500270184079894954641686307973332179448950534949745995366566070002211545258860266216927265298614216248130382209142134679058091950543853846110189943914626791851415323843692438640765796742435173090149523867549048712045145724790191732960682069883371790145902896615102440950178540318121154882969518340029406216534609607282263231214022715876590960450308052843281391078386167023326050997165381636890334511799137531301688882649495741552041031082886319303346407493737245782052002263383133666203738687444407020166696286668388835194214321339692784618543918769226912354639455251660981968376375269296756357128061600144974747081483864123369333233923696165484241383055136471323569230383095029310220190583111292914553553561011556937391784542027682586750328375983528531705492584280845646678762880208465878571428595512558275364776075935537846066312011016063359980968350978455771623651630296853071951683374899364873104631027122163249367195840425213650215360283298590742507233737600349171249790826082889084694609234283919803546619525739728411339300626986297296658189798333123496638657630395150182679197275551513948310166930944686262732892801030313327016178604063787551680719449637797407403463959637103154502401320901067753063311317304952142255323313456302693533556787707158702011590995760153030349681083622319963384314735816157408906137931520476424691204160502295520541391316910067603083509394140699144372974167027430530545479672119119864725505597739033751126231124756124279034033538308772758401510969329189491191844158884871216898189401786998913587616019555784136026215443011891009659825030672246709199774444930797477064840312533524771335698977582171336690764743098006683148447116431431286530434555258355068991169294877800063402970636070610634800651956283549021570777668233987072515936423388866762786865358689847773197241242557020906309063858003529379045723437805642749574873957291550666222667935333228536073976925203701088359911144943085143129498625460078240191686362576150566237949352397501060057411814220710059972515361632616260618900302047886471191798465446143467742964622285046020307379250468562935305397242482662259048943868799740626253539283782817899826205819873645128821727015615411904964154149941023241178359029718430078232681099257018592674000000787419963013654679576979192431263454324807682537423415084391804957880299079662214297635133824955664011031001800365350614025190730624658275787651381334122503274144897466738720500188506812441536049024306023382103409319373536865794479875528164179223297886471958752172119812951834675128427394900564213742586762104982165796998048043065252959253903481513082931161948527274140299126486786655286902334512207282009199077874574558817299185952831669061394296304313232449446531818934165228648668823222589216698224126042901329786942751292005402061732875948001887192597574834073887788223825790507614393058996793791338242767129215103752610546465796803471885731913143573040388563818122301043159293774124856201273230836343700482030846309451991276765049419081885285450898467878119401284752916733562889362622209065547888172870012002103253733453309910337004350242359154310564559455274082136021740019616124836283881379754864619654986834360122655662099058668994757078281859887959821513801512160934526650860744456854688637284462311032774638985657363635431648769764528242768895350595108039293838702215911934544950721764886379192491522055237448575333833431422541135535468758739782472170666377219143310721738563459750067716244315930029620159529060375947315317845759396052521778929479139376338496775141820467354454880360634086159952821009270058368108335961832293102535175358558560936864718263217216624316935874300305260784455320916773545526883099658357240469012781735285947292675251265740498815995355699678249852735717782995287553756065600952141099723636245940995022326115256871015012505069532064577184567949478724214662411214650817079897425405518022561986359839920785508174012097692673395094892408818957822757476846908956956577329096115075617493717838396438145142467015707091125207041938299026878486537559368501120170056026608667831026122441198934982178441050292782356060468140626823448168959150650269205058824335970978384959788382529423012430652144662043746931042216216548443676135358746962225707745501373624525388549323461866795519078002498667095811599399761929689361554079559850385982412108813548186720865784335185141706266542955900477117412834015882957879638086414739031994073325393401122264179299863590375407318103490819953533237019920740719287883996018336865258774046548041674697111086788432716219636043081699225074448871709831569622997652120742940745734456772510615104402433465786343693220934986993182112854157016455809516803057268193448462486596985499003029985087933109265520078473886760818503842033442327906124198157627856965115094057238997927491190985131011253560336568135767371841249680260424473650297452051115451694444712335028205270359881071442230602453859141967246354170965369363338036279802104563207967379338864111276835928504761002289496264594849922501390973378175300496468713202201471843384193579293065573256927456051445327732114184636954716489556793684352523771436331874060810825385979719365211729592101389988480783248812794100675129286870587705846971998427786348426625469437638112466215421684161925219501255468803561615789434738173710048764148464698572088634208460460481550937392275917472977320307378939636063637111722764203242505953566438441547220909199095210216508494519255472357421614883995169783966593268851906147445877771570926674446109898119710660905280884542776627740282184688060339181299878737496470381992497350286617396323362001031646633242436904260616607731017750736732769742656236737203062638494573351523345604801011190641902307938806715226551313568522214105350647296145117372657217766337281587153523241664403311677671634705943744610747351772602560262794342013259028981031945580957865576347155281308979597460224941699295698930979837147286642195108443174062045224401278542125903454425981993526887797617804412206570363479389314597155921182089674192358520080443976959873649010572296272580434812544023517521443909415834580801420549407643924218956898574829001819051976095177918144995351393264293822613712355345048272637319533613821077398294433781839760314159809498218788256138085582404318440549947958855545479447540829013346636044433740572453112402763182562720129646488842686945696777865877061564022933860166129826726484814028960583467419540961088215458189459640325914890443027412464162679965599281199884593441765966312342973329112989164586684238693651214686697804532373327630965545656896134873255828950394498701925799040576243357590265412218405143530227918467993658596366603993799761521897145892077654237111635457569767640421102697481454473050574701952253675472579865883811068211270735803589067214634733929402611360564342773643612421195778276049421839916639815426899232799881320950944583287358790228196952474917510017143017752367063405034567535358504089762537351824613426900338561643686869333024904112899265634911683376839554982132192384334900556637967587707617202694204626182726409457119949399208770884170643595100452993766450940721599533945230950910413823363668705287069062039473428970497653573251235732316238908386808382403019579717326917978200836044547951155461240310732482324757676257773282484741933721269437876117996846299829735831381120672035363611184903821333867222588012141994764002218692545865914399087786793069942544555273726098495330276246920030155699351887398894519228414754289782339015895538768290198495014025953798381939996364547538309673925562111418019649720028704801677256227529608438822909871669781516896067207410253444524398244948728789585845566423560722769827992351642588457297218818851933994481288572481151720793345563712081944609341154274936052454012251914948480803676667799213643495996147353582408306020667120792190265425818155437154419777527435665600723859363998986016909015221708761631355689876701534475101297006342736789638103870480701089699556089053446150421922962181962031091486773284503219479547766922665441655387893162218266422036772004550166545524679840183346747853955219098618525083365932997132256555304010545893300385928684225462885474353930102201225958568081651439080279724507574517346138400701313828840642577471322070492134345249361166474274286296126398029321965747340740656957275665660260613574834779753200423862878407540682707827076885519066800068685204725128447145858714582085598388499773634302323088354235242701331413244033912283154820110154942614217194890601376119560375936375865342675461896796763118842466824732919653261666769800737971903789723760106261564345490515323546498837619850368838970973203644074400150804526167562552905626353590987423082195965214200114955068592706998892008664186895147721102802219026433602367201075625064962913033156907358854163321336335354180373018066234395710187703463763216212796873362704826856770033701687710969136206366186023954070695532312035436297848009985449297052555254079595120904132358734185771214581254328844323978471749110369699971423921695552595534210048549026313654147742835312219349677457409657607488764789048139809274665314984393724790422409632612010223368028498968448692767176711457856340277167609363069569888997497674547110812977203769698849271506113260135623659600716707289076375468274299777401839551059842321895820307072708199029448450604699965067115494796979305243626508550379541575091899429259377234576630463463457400634715877062968029931691532951788009995112405236940387473728730426700987287248434159203073846584583947154682648489277043493884185094935597315425165109848744685070328046665886943602974981028753346003577395411015238055558440881961880519062201211200096641353540552300809481020180502066834895190699018946067079080017784262171792493838100307760446547651879585050609191053041666558120361445266789819085513206984573933200079304673247771004167678507950768825784799610681192727312140840381299866110965627344007737418188010436485232292594571626140684399995278448760053705318115431097324591147821158529355226941791591453144752738232073342544822950669702985065754351965101606545019944243971945391196000040646303559720648500583412912296153944021280592278877792865137757317249565151635616530371050307470518303389844085794037013006164116259658516496243638808890128167897837940337984700284017830245828144422787774902367416120233796654595281532933261299264269539743907662911888934371895906041490491281850209681845225318930825925710113307817748397884120161274645308596009893059735305412680068683670918783389636006029736726872474380630231960821750812551356165948145741007605964548580836241935107460473292437308276880716404139117115414630700802782243533970730512476592572044995833775726672212570869901656475996589060856124009900379158881509053378931871225580504543935864570363133143357594091471684458987391068858535798576264720854690177615138312813604133635616650331916694366297845019485171504902713051148965088815461585585042337046349957939682889928385505922374633101123039865246857214116997258101280138649428327313388984231951038665341083828493850942469613565187232191931636392024075112757256741091763554479192542917230938394089384487128596199176968078572308328423510953199571478046743171229446149563776252053077880677660398834068103934008710391947762743285425014758075375872909268636078495715040656596704707290696520665908826952643015574468844977423636577283157170107429150853226711458829917547420206782031941278492516322397250624850393183419009948155718594131519901657212423060943998520202615381795443421512247393104015562828100490051066503142814273046882121619089642236737196020334921835963995962087409176916219663978301626690279403312567324789786972604136082749781624746111455796914880407841543866717680699208573137896479744753546495867032717248433431858541635736964912749835566373673255616588960307700500698420782282821753945285587926561757542408503970260603875808293178235196615039131806543651737689399751421943429887811617715774356560340216403593266799160644123889360116114920639036079726641762820557314983220498464536954988877976776926618343687414513229765689046373764523117664154260437063676360938089011265960273708481254744480171056573127002837493161806188898514996074196072516731759777460398931571678940135959613299640933007488523961474051982366517742264066938606408247575644538688330705517168939711551581101510407284684329517738277352642480614636371404638216044371146880696261514768109548987018796489577934869818806123773060568659906000672617999851462177014581265924808369560102185211012372457805688538232706329390537570690914390808810854791378507797454560355655462216314353953545612943770647004043699826573805848547098845052343591128739375098154786450669536261093985075695265359387865379595046311099598285641591024089480939263881881030917696394006708493591963639546489264195454113972821512886490034833025517142580991247177638123523562148591631256280204407736950545192911184529529126734421571621117105741102891859039297092923939603977403460798508329129594149473897634943624173557189164002131103021078666030927059410768404833380091602143150154595136632108673559051925075848026685689018005494674547066412585953762521305412757557118843943111874983513899617786019509051533315115988596197380995264452059873365334371991070273355861539516101421383188919094103375933311536943865740701960628541902035498349022688240854547244689064088349573771726770759291416158919209531354799332107439237047623961675130342684400379870119455025030487149961833671311621507011166443957433358941566954447592995717783499349860707308470149411561406812615701239925778269378997052089205596063802621637431903620381070254534579694369701174916321979206575913230737045885214171429153702890265332679476267592901090063916741877314110372409035633236002530062265137102954800865433370596254639479203034069464877636857908195831636016304858626492669747575435003123602397530189005059780315205449910000271406236467592705324536604879331694571390359303357646361639963697579666715177465456731952311379093277856121345192583506118886347924699224105803263152589859402732752101165163754137590264702402268422579069001972085243514210385082770304230034510823441451614855122377772633170795120696383819536908947373609431864066954446354225667474835483828198330987356688965210151502315966578616857758419927132201825762444870292695069702607374485333045307993436935627598535146066525096252640831692704767064533476526177660084343026080667347115156237789504262380066843180041864242176507074867475705442049004864622155843704817434962218791508993618346470177330870292107274289418667186767540136528774563251930516203872055809655434214428558597545029111312943732640016667966395491270904231539099880044509582216918331693418982246406626904262789099163356869254897964193989742897532132784544803229112938122367390232400428843702514953067001484017715980205507328841375689791094602987512663987599624198178473481913204254459227899474350134342645660004417377618462787582450963796177454447051977368955195851153389952420386450372313452975283298159900441641874813525999834584864482051663077577033207211362295194791668030212203140538566027768592102034753941687774296158027829945490849280130464867879634057270703268623749077234749110396819603785335549795659297414979284091642739399143111446022116721451345839581938804637932775139986689962626696915357677541947794179068864006978819699336095571296320889379826802713985090499002779321789980347677061521046148995248760260916162722267585363315429325149567934618725769738916841263519446147989630631726307512332209114496774467078487419072161795677276334592929318397012587906922454870834343791469244133620183854084526962203746840224066160983584830846396202269186924018249325532457512599064103272174357995422412598107640500405246535455391579327044090414838976892538048567187530465074124888633125694569156020021732735522995616425760679278497613322094429802488320179838919482596115485735864228028745571582987851369384902930790680455971509201895719655596437624062164202967479565295942554822206276388670239038346702370847579078126103832549990685177989013260572117902380803552898815913437027102103963790344270453236643301875187413662263237663786854121719481045369004774865421106760721483737859733036091519071587529679772757853194087166042019440905011969925105773534224966892256046080804020830179595709619949469501693598570252938584639132652702792007851112284618054770828223690620335820152064555413392345875720307096891390869815415337844000080341020847056150566068997916732854149173602879540050718169088232679301456409024479788233151355278276373583583877835312128199430015315141462185075684166564410238499488392693125995469636721539995101499848768836256698098894426792457015857950041471991498496120332468163874848714462997947914760595238875604893617591981597972719623147622845176516749895906209235958934373664033978105910029291541676723371610826084409848617416873680942235942371673173333403789649922666597900429603734442733226717262417645135253661215033550491757256199666377986173535279243048042422632463958763742691213661634940310096912142408449297002836048090226200923920266174361386725976550320338063497563649005598031818129950722483909282876540884637083111134264903384083209703963402564371919307750561261136381415015677499736971629875577789771035546093777709136370126016559206601178578022882267453628492006573027967531588708313906657920356244501429925486481287115191243874492853168037674337609440419767852042678017533341295500426519822192593291615555051752504577531707072516194787334542864910238009096274640471984262309713613936308257694909862254362619966888489715289764794183918207368178076818687255623832735553117029278609253297318478774777758534951816328565286475438943788058308626120358174276177929889907352481797119058207753910796699059539840480494903460576266853944099852803660465424302990814117454028932053651610429270324202620369584543103791266048518598210337101096122763755920380424951081559351293057575433834875587670535572098526183570849035107363966952509565999895486170754479385616639590268801017430156853290602553990947283174829873066887423430779114087666737246219760985991980043948735671218211612169232850015643602625149160983276345912346302872182819486688039218087800077799752487438694626712800041507336227144471354278788988336707323413234667644985544875796006855837777252698401435667966600344029446425902784931184583585230221927603764402103454880243414166580697607255261071581215249895100284682254151362720677928680413251064818501023308671208226957222576540311199045139852149191329963917839515237353790003792305283123704793365539793762771169545319715968221983495429213334003504066841917919252426567821164173820015564945428518773176501633044552987329266862076838773283021027723195861127037885752589410513435166760854038455481338578493889376254558825970168800705032813423508816245962565778624736895908057453375027553172060755183009180589883543310901101172729548309884076258040210750169757964995635123712649341438249734752479383830770436630341423695493979610620723377115471028776902902028950076351614468504011170577902251415026482312375209987799481262016077287421489168401491119199832805985487038524670704088229688219348468823835681446401289862319638028157140183173319620492778095786866914311124818334185951022622239578186204885794728743933913956044041557087677239103998879372708833765418351088872703436168269934670109989066923964720890259549587404493361941175362838938613332216677565703033804623356468149549836564278346749464453171569804275653929562835347012291836000166274313602311761574375087369252501505500034850892903046742423996244759660336721967621849784392403972724746359057453775940486880141828293865631934285693042401781319409764763532898803983660021130753984049377187674707812435378505987553060808736503167047582134035581917727741752422681305188629721193757496843135683877306940226656085942841119072862738540313390818361458639923491452012391561069527187955191705806956393651463834940982126435743027924483084718167606194717111283862346909999306955207459497104392797770267720481902138283047623940113955208410338948246545255990066052790945148040739991164538838938334433806433526889296027263550981894960587332133884385509173217637942965284755326406992394812066947812319938896914200831253649483625060446735851094542660248884598277871674112989013611266904183500111833996929033262032802488498574971860755509268207095236519955512379545917620274219793129452162204312448458926014526912773504504756811802285225075432763609076483990327488065560045317604205134892234414417784862078694916719240732035106536048136343705650257461623172172338376994332288327876294056088857155032002111801540672242273203890593775537856847641407564679896995634325025097604654118405195703157295857210540745967168960266011631359744709845853140302484460297660865443740180886294227177753863600687329190448173418806971933456977116897497167902266680150302670951956359750111692214023173552108690203809222898836387734946348133795257006225980789914294947752666503523475723716647490902897812141847396924409273946473729384441070245792603046643043429283344343745403013974459611311600017538772286324810941707927902331655729906368891555989159691360949248154626560056077701287966169623129777432987824189687304286400550246136396495571176369011407465572518452953340222451980795536452360916520790517835334829807080937106997465729510291617461066320252252075258055306927330857505041132262100454924251850876255275495906629681945564554869315862243627929414093742932562384421572525917177966405987342824002178718719118450729835701517212511823836031684809936782640995573145770135165916111335906316527632805399545650182038772498653051056845322671335041400490202052760146527102810064834124928749686109561664989098850236549360417963818324984390510741533587527192332823556363505375955510174720217265758426208827361624213452759536434223010984810085701070425054863705636755399445459677216737099995834201249254991767133768322131994186868549150531288627584808156743741628052269406075999799121700637757235090873814018755207078311361382674753499737210431474719993572159977623713632954834240509176596880925364106183208907121165461855604245294167126032694951763418051522304485877248800131724165425540013875001902349725513866248547440817139580269564618420979435581676575150268520030492619290607324388090409414607764041263459581706342950153907068658701970119929023988263158670749553309517542635914126075548864704705937055396103402822975286296877939049384765837828624022637123107703131791167254681169979403358875662707658070375525202441450940901210785120845003097564693760143389566137543527591969407459799480290758083051900672211517532225079188345942799836385411323960199750389831381471001351207600201447679480753419067227213226002532677839007611513821628480454774673391910733528120789289915127921216857498596934710433844530317762858048169425550054179587725941940438278551738707078559010416266327461783752385023799855067362782421042916718766265486489791098625760874281357639625044650804655917897780063771500883631502385199541682147273205886998602397304486525714873660495885236342764377222288671771319855512169372872910045240052799637818534419898714894358062743390697245473748994270459192785989913206388657581508813003613505664783606598887553703080624223813548679235191938609442254838134154960419902842189105272241020107506623823072784292056139859214129290431488273957298969403890287283617726720736795560517092471317074401104072425585055471916310145762098482599923776993943320504061895399800089104674303297011457086557194824574131551678655561633513586426104547977617273301496250794280070826453588782115930355097487911832694181796476745852391442077622267680367387206437548758852789637468354460606203403131766612004050102081073333103870353847291895448117293239531946671349259793809729472700116376939538835289349796488629294567223447746141566005287643713305659959008602663454881410517593101238233182304384758396140684684352592865773955776214098892051166375311727501754243497198309125420399714450038498407559500409746276099130221379413040113364660893719539667098047936330231785158270403228316117200756291667138175738509198004297739911742711704655343104523019125276409631916522531486309058033424450513055794983997605095996454406408688692203098803452708228817503155773902015480228124859647345305534947427194801441448285532556729857479672675475890554876667678676422191999769572062053684118882664373921515751624065800186105613461060531123486373133125192517373083091459387295117654457040371133162618868935248054754460782495733121006693387767366247771177217719956516937374725822563805270004987693353417924747336951562187354955650218907084401946737932499816049076787054216676495104771570968553197352972925773601051937355648237994830526701682539805029177493662068680709497892373921748368322486804797058707626856741360235806143159028814671504084754736958240012778877320164371547343433968294595308977724845408477484672555969393784675570837540786295720207963380128028685422503600891426046005215069587924914137101428658430421308669429377752921455836372051769659061345577591118234481882654893226233253541524463124308098855124708783013272833666131248234783039409938428652376461978562244113950680829177176134828416555903353256508666248788059431464641521595254899307355979574924629323942714241195283893937270743658125411002584454306096935847160984097560356624302042116985776270861157582159199795913773603111364636361556229929950761951027352843704789036937820527188650023709651777936169333165203258282175566592006561562012840325672824376091637109985579246941159406530369283166912920619124699670021576007769506199039205698915957007666305866206874511790758286019215198773591180175395917647175016773722061217906817202522534617244497481670128486926169344779704540623209400650030905225385122764458587019540177831239156068304290517040890868158295009306713633613766248036577779978637236341451076881744381842715869732360864795512525011759198951411922934545654082290469842335896527568228406200588109443331457114108718205158760619886007639235612216404797059680308513494911470324172738802292705226923931020750897264408629121880412024794672202526759004201380920748692261619645715697318739391654300051168008216298799134874629809348649317000147710050735478420510814201399494008567790745979391450104044764108683914727881565178387784142153672115985764770671992826029839332822460961884304208857988521445553318009193662942211708771546612403428768468784152349622640959596748531934931073052898876369730934004377514733362907589916303739615063156322153673325542946175076913993740256212913712180715948764003423289318720029252490724673601432227058863042745736164728861369580930736993204843158576337648085119985814697328540025653253396137174604045263808290402710873005523816099530003803054980001482563261336652363347788312509707805629077586283316879918237722967574617792674644113948003719844983415018502095106831413006904555122467804747880578850903708655246005249573536294752572096148489068085231595519925103158837968104986937713044600744141380210612842313192310093277683330456106402789061918002194681813544103066590793725810543192295207622305645313514987318417829948682228590530707642980846077754880534690282204481927160913025956170673964266279590074241282980392437697068693532895579632005459934465454378930449505760301662365940196347738856757081567534116603703095697458118642497980470961711755922048846244830623799860983675122112807074519335409902872223657858561958542882849763170171605854760408286468321220888494037779649141809161288680127531744736167098212662146546650337880314097697273789091361527916756257770924923309634422712029940521608224978264792920816696141664809886469847780280138207740319344153218201275039428158790673579586998612862035297331428269166339820805507724622665603402609595958413248060692876348494841708965856494389822937060403738359778892984257579608120156893525168526276655013408409444434481198490434583813197492196551055213733178424622661123618758745694730357270285264836647678157092237336041731457373891505593827717420184971167780395676443685508612954999041127175420214962469447165831698555880939682000272572860745983545400253988334718925150771123705370059861072917576999751211677199050689352423633923811184046059201281993115328864121751830174650927827833212113713497651871823535539468721999755706520697014956276986993363307269966472245994370632731112569815691689324426675081015768090709074475831777917665033938428692191538011289808958832957328347405147695512583584194263122043794699865460696219069333115952725190616846961516315842189522452982520192333194704550631543168633710569053719311731078958086581379301119040638122514255606990663707915949700642995940204625641853334376493790805432015677612217183187070740320609647488196935774295171767250955858798672231414492097749775341890933917681602772354123600481900071751147707908478942489935407519296448571066828001680412808327174885010669431697329878873714443580559647473444397045426204015639788496279210646387799516272224959024677268498744728316884674779560095978876000059437244150405622488640448656054536527125290287076626900512017615680626996827309578261279820328477033906398403915941689317766201497637822567905792035681442955419751156852552945681063558181611971457431817465317688676266388752479016679593391545732728374403747828816276258417049291673145065410685763761443052186831713912387539516718597897774112253419219007113859124121851745423288152884828597240140924594548654941722628091266789191489277596312313220496344338160011500896381622588569094601607442459013100646945057497338990241958716356720752284821171172214841874877288785046989146614470306429622567327865965412569689377849403617386922726106881854827873121593683003592648338580746410213727921309285396651297906698844297371217375241235469267244587589030891908492179789202955378918207059563300253609254706217739252884902782549335796881945410619533470490344822744019729405027561833540391753655235670375313133586964026998293144438977194368130155147864556166086798714183190747558725142649922545493822928737200496835547018143409790440738080141084126009081966618136291295214212645566287013298530975975154146158236535885868434383295974070792832053413229954408601153578596340213417115759486568222505851615908108512227096784571392934865778639452518803101789991486852885647295056028267967233403909537924328297900120600614558737195283728171038084522029875831993192841931812290219321131019694613909932857503064857678337570363281894762879076223395226335315904976362413782578442963750427158249417474936833039449463539243119333700727872909083213099814808714984535457928179777895679841097776483853959909580323647948051061880129317025745565588899547578766807053751581063935139472897492360167458136324961942986658535617237397709551987047184866143398521275049528434402009817949130880401173028894776904883227825713328402498819833779790687981542140359668774569343708778554593858118022666179208560030007801789477977293906996403751374148761157202755512756720841555447089733419946969532294472691378642049969539451266944528438644755265094778164706392857366858262793773091693701795474810523136160935646691622539145163834472501503287151400281830701644071128716211328430765391220400560926875586827996481520724323291864446015412034952985507930286684760782995103524649988555534055893999142594591287221444632572957051031234838769756145323762891250284606506568450294535401929326557964584795270119559625746340822908940714706896254903422514080308616946617582589050003922391277557093182520718651418224544262831389658885846796865948725223547997995618988483319162886522353504864894569609422046558748798243075500482699533929002392778172846056363547621538348125499906187914245624673935058070350135580183798556669974389493156735518928841993125669041535447118209737071856180039699230044485331691692919357176655877664132221451752396765858290826084391401257544254041209588796455860719909556200415501474991151799854137751754926103387041521631575769260018442985426156643539613187019190476184113485878000917898471309022672633805586138281216667407790675493687484008638422406678918322875658791637490344323830010591470825738542960837968542292853997525949153474590690534432182939261577842864940845066940551089589231409213250981852938996959147682636068451788879829413873798753709769705650417498847689563251041122497171372789673866268228228248433018787563367118330590537984077861821751839100112100262599220346857911220997154155482996817706444219580631110492431809815503432921153264280210913754567764906909280846586003939349723133621352803213870060102382518033507891604727550966073729752905234536050455224272561811115061051313329004500252521878890421049490873849597093924917962768293383774004473049687470274613700915348840220988259200977376320033422726622440668237899501805789157439294315417464124231417348172118813782344502027990551690000262435240672937392611030275690608801836698868494514113508450726929263576731075804463166251907529347490127505950605117806253477906327120737228719568495344649670787730057184803838118257302103541761198090599140698872293554580037058850454581370473636240105087279150338461013918844982014975958269373358972663060183984506229180003672715986918518392559744848123331973245727996498067684723675200206924388482019093034784750625046663610740296625511651639468502275223070497462494774969582591942690072842928489463948152952769337936965996636999154614032520054630049237881316943660751215567977048201238128792293075320479630508024855251337662626299505142177265512457602302111360954152482230148006128712633075986199966836924557324340544848803727923724148913660311249311862661650687371796001859113287678508741081467039080965169440849373513934086212580671511943565838283963324920689199897667278393662736424435312488559385434588405880726171708677077199216891849438486573317398071875819801453001357190949151372709929009727298019764093409844894203095589697781041379665816007852751186724909174970850890595236151135133106630778933984608320789683929106294420147804902661566699804266222543434960072407705756580724346567326718034434737115700502846960531379521706022971181443416270591640631958539293240426677638562017054192004421985903676350354499664016908472167267764125376878476422788134039476513819693314680358818628338708656882816428609653223998913864102844280002973092714068179738660233345052561244505538360832103282785854584955688604117465077416933740525416055810940931107674808316332384679418772538119561435935680932067212228731825085741899859534056503923589437878299704332589080114067673315708067814319285429458430057237329577070040087365872800913787635777865928239574601919021506755493250080459358468530644076926792683688039492229818182683526528542506132591333509421878855105610994906980612935700081061091886362157810578857236860843352891879320155368424478354945315602190643939173745443190382137526209493274860288704904718744256459018185211867361921678650855221675148702538237258630749582694753683917974997785217555617021347252568507859446219285637768368192501355237608460076049018764164257406156029338209538847116371088461276299614543616389996482179657464671312693937547786474733072028689102531722592236294543588214685912816682483836608346342941435022267482428218968495873313789348570408608347234359326316246799584735062815727218311680858382007560421489971004584096781821100379946799336255588556653298034845844752790372896916853869431517382533872370723850389320688132784150158081119329941494607454240995930023610274325717298867572352611516470115789382703605438023847836782890270440616492800563093070042685084909095598029761434447202788664154642805933092519774455102266644502265474281068734932907053539617123153607085636458959354422920218887127437932533295680577039838783754592559982096557292097599561693497897667036303363571472273005223822006448919192283985966803797348651769160214870906550815927464968262494781527594369024278633918276553078292677899844028004383404947880180037187250973249354342276671146304861422094155215726435245117125002619781175799697341471652261466976172256320716247051157107537071093813073950716153911179767651903631850178019850039391272725044171131868034969020070871577483815910702834774444156460701174085971735548259520732487246446904022252773057546603147805333047767936603624577819374179905539180247044833784954233203068402542489688969052442021273139208316956176329323225945733648857157034244202425141150682735359803580823583829848929097980979357694197010422690540141443312784368724402895186100008857944986886438395890181581605748616376653284071616727285527889128429733741561696417390579921318978567015271386595212822401101200998389220300032565886855190799075934620907716987206455322346727990943416401675355513913950930485012725539780665637439802859577012942771177480034182858562641017232587715440252694362411548494359698321719878868112252065685598569816096666223873801593547567883970908824421175758159364390564751667134648630080461543209012113178348874412143186538216139051182484633307182951260221087084994859905225951181570970305170739470743570547790030978423371128005719452799970195909992767121311084248819395492270259536490153009839483670526899970418874670699713284673508579372032875475991147328096834992901443780152587212937868980031112247555789079264838965554130799821009586222182429973475216541374275635029307122724702614785756593246802098030008254397068198308386971035942537093359059716785551188418475604036100400390275611991556985388282442120100273801749031364667785630276569300377557414374509458613551023412221283529170597844118301077177024012100996143102339603934614366868905721541479565075781063985851593944634073575539806672555098388526270963491269717345583071262355887544203896549433198242521813938411100368465824709524729642271067084269995655916585765197612898032056188199555496945543047925595809156592825819525268433462393075070507467305490758167112316101651780134822482667379124261580089670079890308050678135625491140928917530353275729547548604120678463673563407526516013573135193300404946229156594605023445941700661557244170210930380717093619143264732108257983178283257856522876809238876154199758365792632364449590900136957422190586009732089206878983220092663140696995713385707131580654616239784437439277405977162072938003413582035107723509244113530229143504038389839089613164267135149087672287631887140474562041184330520655672341284604842251827013595234014180013023238026101411126931380168058975480662819847214668613016741530700834350653668333609714786177870267849721086742788959955427523881551248992287960237932659010918140119947616475663296323801976812678800942399770424224631408573400489102161719734863086827327137402438959227445915635508321118901920111947308626858826959859165883621753526463929818989275225177884167167195647749616937440315734033023184843867764162577334449221621637194563985334909950464883180059287806222363721801264925817485091722424972987370217489212000329049783970933548728014258549202690438850080455023632627103863519910924076901542899419399489475632362108609092634922735382362642151612625123971718353376212441168429054670693963104828796642282541465228741624728309655258134575327619039444739496934140244254098758155264517110881695069918763313558419758322573460775555359785524766603085853770571542950179059726252695591909459433152512740839640856260964694385431732502693617299229674731439572937092449152651175592746852409704433390530049623127633001381978543739790076762391962666747379074827765121478600566989472850129755220312050307552230228680050432179686847067602018623408192687745147432823570354106614999638920483870801533569218500534580612690046023586012750551435317234886415783780873145078443237710922509729883265769775391508984657541603977413070529237650568772603824826145006248408091793502154941560232665475841049691875959339442820171945705007543720889073025896848657653533032009686772478765864571352770025875737553876272902150319747842637909123758313898679648329152228409993059784341200853378057499129194306284732928753031440205465842562109508048859148264137895299021303401867630365738023752767929072727582177890124717781268866030300218616024934959324053215361371098844846332778101476639046286128226579311158946602897044691444070444995294615978626978849972543872913228602668293343384131324818333903654181484127177671188365582004549922525458471704705322944556251087073731254328180761010988517878299488278117944742425831906217628513473532535817803947797560989535425057407130197236702310064511896527301468517921047959075681333678995491516313963361645415165491401050955560228104021656123347982334851706997533302410584218948090163085637135963573699541142617057676928306873329275539804223494597272606800183108079742951347280208130189805113236117771301465758252273702909181162154840636829596329113230365838038027046858364240390232600894307983933682519874365593509462733910317463546365246284823844300221529293048489623684475671113371544256243116383384145229578032325651431547531810333086741450655956812684382639376431102585290638323408415397493875139189502040963933578267357638638967506076424869906041186188425019834909354911234482010745576368383073719631281442192846087191530973391791615984534888277885294380340845333292587459350881493413795280147765221228790348565515549587399135753887715964248922133770267999751939777402297045281967404539959840163487592190346686993703690123983875264241590181849927250368512729166573548383417683601338071589164344226487310208572138515218899024310957605116393764593066055926173135358112958842946144024375917670559843347426106703954641517699867645255913713469159082243885935303420173165134064302434511164260596689800314959096509682171573394790116327470163726919551295905362451739305907645618555319905507969619313862646532339818749289166700671953639306994219684456974486909742958919954059928927320128579049529665822197677809921315054118950692387546088869887464351368507496874181925887735757918559221671539719888389512773417515119590246647230451521218330144413387203912426444979434917655119315254462025237828878778155631336500750222241993688299893937281244185402681199218269983737452278131920326951571678378515957527049864804389131154332387317547277760402379672331234590855243553582474657098762756562750890551449472862537495607348191719303633960300483436054434050113849345228943987515659310629217734703726310898951366130759323250608838355236707656547314947924549158197771035469595147225799425431978560852532141265872347810941189042934415531258022841507109544046412346735827476242652611261082900777433351531926446608475107373241777110788289440051883480104456289137403696085543165985600904138495861588847821858669217850994781338250924559218572375843075015688813342504460154442447371343097653131395660634747249121346527399468911051291806329350336988654519355899893941014366352816300931792984213245700153984775766713124467543395670016334127048167637847519221190768104852961494565777303191280589208913234903859493666923456545235058645731446152252436790451929869619260221262806292928350052427715722973711394665202905044806365915685388508637441468834721687954743899073483124165735355090227214765201182881341340103389338471097421457936458503521320965150608534840285930428793837740122955511997385856972181888790285589900248359497537336356775149262365941422498599185266322699715052668093203161372124709889308240415319186000561913381954460796829035628157259866115840857787941133618191274771787885291845828553525436826524616932562771986011119253262844649401853024835832478192576087134598705483614226500072526741776122425585574078458357878658164171587820602764138676285913182480152853552124097927898917891106563993519701864794149792756998930426833211455194569948886006185128356358155170218021732488674013117596792128080257273169560270672553789775019080443141050358215138036846091728035810337139254882028135162283925182570225149516113760683295192744998528595643597695191814337848016542977299926947321919127339166644340772868731599902321230760366252181748926878064398501269220282273536248062016159450748707052941073829080056087633366018297334144174415379624589185986341907594673569224470917882831393413082159261761349203101526075229066263129171895328907679485199156503214415969285641851441850439032995714141907357057218500532712400808802987800141081781053710780421169544559040337521364017784215803978896071730545783177214182584167373914820919610534031912602419704979319332551950712376070866779776565722154494631009700202613148497872861106271915558416770741996986094303703576317034500959311758028324142649599838645784615469340596784043988154246819412211736980374772013197319755495464548962710088454001352367495934976424707535981760239227966100555863139289926655497468687777249585074940501482230055180141697989099998802977115009183952243718416271695435701486643969052489876454165921728772350099681768828223064311813458507240770894297733745826643756849899552402055841744129767008344501166053525616306154301484476161872395512471402896168922604852627089203895226702225023620250971404585784833994233728105461196267593289802743168329417560496477713070170508377011448858780663180402864324154021601550532043013121716911629817021140868107421199637339204777284004899585393462869780187819412206525896435581702582827675623003254111862021581132254198367743385784399809773699821622179865302927675459193432395518057137263476392873387414536214311678304015587411865544706129122261020966419810190514940244626674315789600041013545349548282630110591360704497417067456627165158009400217503929913178334787537483077065273233073437670066414199039827863290727353509516506281037882784311761507991016938845674253164257055453149952408872415229318909740306323957936758911048811766602529984520974341031433246482737403729679902655431390057110792748945720716324783954052228355207040161077808542929495971179842753307343776679436159132296785006131914701115480075247083773274014351505943954036303887048447280770173065630899887559733024183755235766392543807465668831604696101072977158855306120648568434618152244561196737164343917672134434232002558066079394947685490856327583792656519651956013640685217219813178411560214952352722814780745327465177954515043125982235412712469290500231108922151651767406968404191164148042237796986439018725363999026913573573699268689786231279457928284736422067568858601435817558883888730607294463538914697675439140204091270295833604543156051122659201642059165986058755023492441311752133383088188968303223314842903716196882142003972667086906722822057616783508242792171513805003943761085252487273486041293247314878399407706878511741271197600589290469259486714856098959742008089691277824202972736167610516220968399385880989915774222322064410304969777597347406701302971459786483327585348952755767694505519447502819587514442961384695207372425706530167190038905773185083643469867739852012238725547022211874271103208811437333735805940397378840636123900346815012844619729353118766843088809095766700040328904187217816534441856654072066457636531062380480420745284237519046068627145253879471628891505087128593602541485404546895720334473069478342825230662334397978506941304191593299949339976816740342602373362997988909822225425259806107917761538203547526935690893710194318054669463589889091890543711582701217052738967636479352317367919921774731485615994666770715101282727504157289106519496445930030069149687444263023483103260644394870685634696515994414691758241314531766994111313228274125010438477466041004184384857597274011888669939869325363520752329063126647379088466833291331113475935171645695867632000332527967745524760602252532499428295764052250022674968881397283183357625750410166277243032649846561259233035567530843521522356441088336769688253937545312026776150275182014271570348722105797051695997487012526158055360871742933864979183884539973864099708781964650767790873174508298193111509945661158683491411351558419953832931727688235427544557867760014069822636549507396741248546966076314767403311729275801732548291295987375758869581307480569033474966818151532017271614761749681940471893639660332386156768779020797809361771203647276982432818529687525371208795926078999751409430992782583558473233060855982499162772848340267317567104136982045053349611788414902011697809422199642880448257810768117562151778938091843750583868037115197423280850795972881457771919929744158368205635164924198791281276664756436185649219663296477696916156366971958409802888342879499076967179546722832913956973015614822307988350819769778397228134384362954678661327259406643118863945736490730308344488792807461028768934434419444450633016907295876463787282261815387001625115447775080869390079911202048010239386460921190587935040607459129741775749231095969080180706255497840072473877466060456842561941485793183362089334607111065162151442354178048251692108413299064606923992440629616764547340796140732718906915002549179531749773017452831515968912514302236118306876063506815030789493479376219800614992842517152873173818281582346355129627109538564843573661147202792995402962886430135170980887767171918113096217652663065195507505175714224781958538870224937989683638263501830692099155790927589831903361848401783649865571685615484026702554557827241096673363962504136759278388589310562340937710853261336792469360746509420681501856816869784848555161828064146887458881768972845667278871884950160913945702799457977696049321052321732071683658360685883466189475479680125504281466063676530828204448844632642433327482819679547481900810875031360901795008712986087253961793402674878503663119886289720775781001909203967298310244184398812962178706479476717430666854369689633509366087819886263039714943220304053276656866820249127393062632974246627613080306148217815807062144405880279997103881611700319171590665458160135102577636301127532881118765563659110029212841671635746237900947152086522805225177396855027643886386422949978597742775192813193141671538256792379343988853207580175542563975613077601759706395047375859371327072547462593088259488459569423876492586957055019610817296125453510147277309915073209668717688576355124027800675265002614545358590664653167841808904581227505154085063730027442910460771233709337847145919778920633245442449238098736366700080500763015808874863552078732599368280061165834274778917224586989982849937819155029424185085069558764469852550861012302212739106222335455930230022080101615177185572504669627004752414515511097238099155215433997670090555605347508037344653843878920671704495723580949888534556932743549570648454785176960358940048767261775642027259839297849287298791621984687840762825921002166009191352714353333074860793177787209059238452859311063986288509903500605436559622061857048350397198481088284474558793952201953059358902659317917922875620630216747929831065831652576559977009360056193280855983092742325212826847604142187174777615438097849020401576220798831505653802347884651248125151249136537766493158057413146231475993288334923633547189905964348991178944108668918848306486049352887192117104321702411935549392593833029002294899005778242003444872873582160163959805977029808768316182702439839641282186262608418210207921561298531227051364789531263176028433817597604804744022424903231792569907222816832607365922106035431154043232219044200843466432894705758528202963165001287875100442514342273106957090602955698496141969063276704068245476207949418723843758756197109301731803740820909149223490166384329971611103372937781929129651788779150008746723993929123538765138121466874604107114325149518689540021051651949293209222153629614823429513297410099230628806876849712800947576918045316514449000769499296986970730536589163938147360917804378161428057082036258701950530179582806622877562124377751178086258968851337058753472249979417806029608213263124485509671994265365346091212499291016512151489747365655240565514247527372479061634067682350148268019742722841573556469350231188536784611908182032855869359648569653501038858971959046020634265731834973047112057013226096873775553711488475571881942232780097265622161113787827520753519696939848808990009627285662193486489325539902705821812762773390596690710704344509436525214615329972607060629519417047626608888553364813074744400055270407693179369992017493355758981962728655181769461442904606495904081353119669814350195392356175815027387567298472756824626948549564433353085607705665267934391094830351510840896239481188101655430082454633219371746023699713226841219933568574718684307922166861555472603870037485492769421604622672451848160018068324743687439988812631412998571656139057853051629325228871225792352652761539854917926184636438393846493497100119588117963327026511518276345747477931481669053895736924464428054662677377461431447500610153050239011605050273856899328512484026507520382754474857233205778190023578637290353591536413355563601403304696113479096051994340063318034708826686624141870742375814045174559150418493796256292220719121842678209986551668391280179234345370673621147438682239670819846270765939024756037780264269909464987518120120419044266444741711608168942785512227673684752223481882042510916276200017287090467038114062858205290706039142482269617782929235707513641973248317991137740020346227710403545702983982203671880591723300681450164899840632323316119181538561866922515542701400743784912124860235850916411010390640927296928912153459838490259786109233594567589005531468828831502681246484660951417156110056600482433068178279070088212224962402571178272026590616535462920859157090173311337010942648858260452497671558149260322383249487396619621522273819950559882431195915108099819217462892859220820861239343366587800198442258120620938672165724422858148622029947753766980036199263406740481493550729227798555818702284049884224848562178663057445198598352605688863305678948201560206174722358481412865927767673883981985749853498024652378011180845144715790307586160316514220462763486844402853176973428271185873359467676883892689069806007697920038477926651137411781628161515780284429152248986885331768544401367414794399527541416262392837398060954854542370483299944563640954273914886789041189322525535874730683505541059615722323236285037793072710268877456366483764672745124428116956207546363052950910606685689404979330046470918856573472227352240163349500104587781861755460881607160703509322474439911453762565177295431924026996931713229255249624508668908152463172633753320827697666013215454872113089239200099757602784383920324330218229029322890632684046694496868220210662983569027716809608505809016179253537316171095102246955767750424185858246235303076103493747622200692357132419171203945959734711866417939601206432697719733909318224648311226237172332721303663306797060975179063165169114293540591022442201899628752381633227731334140598792342450967736568671438562173551375694112378173106786746365165960437400447127584118165513013972792115560704329871701222475987596550141853637071401659722126060400254687711189996534534759072140930879820678304569013330084087687480094694956840474926101920920018650707425055854468064903765453339942909675300120005344562927439246501540312087182385414440388263696761519688851054925439477058656843785338133082381588435571727608810866737765300476165128580698205377078555984199740870812727630272138018069443665542512500860287047139009338937616907022571067166144707006334126489129792691018227472372148976410401564811875757065805935099896158579344655349349092498221391926889966594549242390737442767099591093251121666053446224899438687211653571505982165941535314186673806825891884746171260662603224045127549266986850636908616896386650130594705453669612063546364102592511642516107561992719337647759737376607504129777141292278113655040807677061680692423239014592330014250548666487829214849307120861190041698406061513583048954946787209100705903830553129109805023605498159133910274514974866281437502561408936639624712957545624823815610950642672677586707129450718460390070182345207849181732846924473992675536073363348002822710891586536984063006337542093588344697686490355041912890055767778672836426453095913085837845293211844758313463026798661398711818693293676310630254659544981257376333695360839467054435452749459161874548021485153116985881915291445892144164521929647743534063173709211559160416749098819011084008174114070067146270029548804744291664504102910157114914437932395425160608831679990832147407033724358893371696083938969604532610615339446947446180400196708449646639636074389101398434256387530410925568873795574619385858557532934655412566780174432899164531010389258958234679381318780626435890766857689406258167092883056187462307606283199444677118032023276938518178823632083330746150948643447424951794845860349463535615488694975880654405848029137933312781802248969540150475142435922439380587345567060445573649849367647476290713725770841558668049112418810932613770137090016732976238683800650172375158347794134713393725009597556626126104130178965717155018423318494979173713885457625629904958214301074550265424975040167880703594527471478181320747393480224556488061233415253609271910131887198279338395806542777394550961377095047410701874673620825042418905696407286917223544431657452137732335847168054200237302027966750875396405392529263810724294075125867156278573928615195516223811288634952355164155162325842224988226844880623036884723182356896233938019969898133755167749909877842252278973369619823543241257084652286675398761380808548660729914210941344720254229576988163356439036603005229483698107158771541105700498637049460098543384962528817295065175526181451811922064800576540798698227599337838418605970946093425600054821278189832588795527343367369678129191059879780011246643715450103436643449854956820287368432942655796237905319734240680905935230565468140144265307719017560517784332866511616790631420650024003634534939821018617191069494739097536837989541828796856990319699491728731251622994826722919789831062198705047069313949594994219390795456818214657966197798972865150333235462883477130211045995987905749953065910195062770318019300639730721130199632540306666137995087159110261451045284636968155473930327938610166280598918755366606304542706734677191023392835272190390912089117277929643200169340896440565097594372060505005011443969939284868468001832367358877443362979924543815168420410933628604492304084446006281112597712946080949146161569756926183290051031736772428306866814181887866493440745495703530921032246462742369524853022683436950042976998417104187439041208287736506938246296041609905172221538899423294296309524052054021844118333820815746994984864150345526984860007237727805011093842214222995799780362372156571834605731993031426711281949118518339319505859069321729924406188574444475412413216797175665478389452883921706542675166582607813410152881540935702119593779020053332070812851154549018859901227427589651688869140642927610981342782256092023145253569842329909999179941229235294763214137181806353177498263358706614518183107476713352663031180254686536951602555205723258028483961797869345803567648976726876397560703121619538268931181218262702129392174015295529663232385051649679616541982603805627253730522122336957645091003192985184928025236709132549301612402648718566111783501848048439343322752536021222544026286670680918680164655490957899662744050777978646714936869695916730712099982698010359286030901987152807414595018352047217140945234804006827695758863098872591226387934654526165033996151408276390361798434529081149014462716733952199600024395500110771442337788179219984938883598437910058373504267567560645844838365608388150660625631379320377176495735993153477198756760411657728376758675158223266630137873448003290373330488382356673864323351100562653014777789360461742566030611013649705115153503510558130872914509918895892798654323497737239509773801618346373330768819730959689584259376628680300136393183307281764248526174842531715858397323698093885955019878181867575066315014434450445286330194234739604083616587134514173120495723938824986794494904236705942879267606236018673338104565002077508958918336976268188499460546183690807711630962369455924014244605602343601472022253990216231336413197420893021712330678909934503826395658541693596835370349032461039098097159630409089315078578420235228804131503613615680941274045628586653493152384522338172011729019645008775004806997238979911725876472899361273433329518311367035285787080626992731485664470056296158761523799338331253963209466169211719323065054394081487942333602159077599663096350172017864395288401470557577944126570413651563070453591858148739033968538745028572530071347393005229095158026847046419746208800281495229017849928928233272207762082422451339007296705040203693107047669069556084915868106369744180555314350281722885230069436802896466707525801451883456899793584054646567277401484014387320194545617764993289741811682876670906957356032494442994305224965152467754250941989260790581164819902902570395277894814553639359687963829375237131243108171186848978574421982461924797222026914797518085462801464829245050344893142793939961119383927027301758015458175258662552803930047822504055288944147700672280685582777807438514262738754357704857747824113525840901184710616450194464463558539396083833008234449307304213437756971904409212472786559390977162614523470413002518016200809980788050711894110147077796860559836140166244967296569189068989761310591978343145465931316259903400154271547996240822080793205981590699593182606843184304883928638849248391421077022816713770655095912802553454122470075357806084090004600172152261602434484117603293950257115420509707138004620691155920903963243868283108487708551370997494733169156499157262172332683107336555107471125375802851734988909853794279829343133123876456410915176958561845204743257928890491602873877069874530817998244483701717270514181193310295874069389620652657209078991423832174387498743473060805334994749822541678246296851174882420389128415576307268471483720989262882953993784141297806240031353306059557725645914169222595953967469690062344258828682050779376616563977319254993274016521332612047790187033863965041719453728355616213029883088536990596842225498857527307043478353963717690589270932525474013683611762920216570673828557354435519320009848275510519739866870946282567413114035985321117171054956546308872616936163521666380113436571779414657080095993950093967608714548661170817982161893811405788056744017948549360968903399466681774677059372759934453266679243797328110959689257462663663560712953084877502623302484374995682038182179579443183106644491696040995302758319273443925903258959805927578921754179372166814750093512667273967826659983932854557029908144431102847579718330229978266127374169279344234067284680996559065089101389304997358220351918589938024232034777072144749317642076067491786937298079232642596673164360269096518957168442269627412158589103312404808187809840558287281226257031180507891003757717956882354463672539152233698533623768907291874914478368660217006677571375141762305227161586102104669389430680263816843462030821662931691431988978486066339458954780394827169925039559902672268543024156299059843983013553835582855441418053552111382989394301210243807116779175171610017135072359048464117715396001797289041169298436343731586445504392898145373766665503925232014088836478824097347771804586689786892866762798367621313013182204752642061463684826523564013363539888914461824179768467830527011538388373190928048287426428492278611076567429027967711854354823131250913365925960468535616569069397392684595203045132788291340321294595430971003660380660944529429947581895765604671920227414818994875038508328780158480522291584341192924621405814549030182892081424273196981143541873538888388419210359873719732346488019114165274337969691708918572430911733874869519154814903921211071217807160533792125005280788159188563609063265080792472160486395235422450882197906204691767858976890253831520336567187610676223783141286858884990256661174896214223187174907791659261992235063083521166462944723090636204631324682875713081768758713885153442515904580433776108866156807174945259216445229945751497587138837392433731017796570638529728196839834634734829680272697312693576255158249581171937468939522869898849830728212781258330382251263041630190394907077289211474383754644972777883028281134125675827402890017886183895779604483779172288733509634361298114361363109470514332477257425738761953943766261059925139708301845680506228392960674408988015893669011838772325877437522519844250603265259585706969762909143862385143399841413109696466274904304809259312364249071801273069703575613941376988852191338322297813226749552425681378378724464982590745855706399188999487506329149992818192514279583668643973550563075143558285267675333708098207297066688908082832337341027759185711313952527975154895977592396526310716591971426726581006915819941480938105573161241936594844991260340818495791965506920380961108981797375235806095845447048529681161456810409457203407647274977676409401734405622608988257482783795696487180769344957864347116474982708552345181057668468900548628095050128197274017048707827051196556904032018139994736515151606395441968520125093422110766851687768995625240836811485678511856441825111687645012251361807476110061506874416487160280924754444446763197819335115827618811940994079054917276632171029509463406065716632100597789505417426491557633811946825371237906100087384839794132596326409524005659444870240202655603882250028910215260706925405134870511856198037811924960939624206765953924427536526852236328239815859681064829105623006921981900148683973271347240342243254400553969196335482641604156013289604790004143000260096118852208359629687456108174961660339645439528597093074923453917261116135946435002841981527525492694979720782749126673514808646696559299460848354090998704380193994873999464100075817180480946692176667067356863553893477297436701800646769266378068580453120366125980351811489362400973102333063602268570758317578727301194655111241071373959814202188484028927490228275339054500809870842659567700278093734761404306137293793716694296084945057803717966645003054805944553345688864469344360968616923070555068133861846801367994520107904183696160123814501893075676960601895510160296277252557251749866692570846335877595672993452436299456966742971864990065251854494238531337149355877673915054312036164835444099403348854223869655263058897051536941329279107888521118291592948354151378613636945164529471332679488959859307079372742091445231123963040925734798395696752499764484229000939842631785158997217749465548127030057385503454406037839900648417475932920278891515341607813061126952042863925965110123930844793471800902823445539758041108657313504523652701401222595404097576689490472062359495477066344298970533633693611575095414838461157603043837648546308103882062860541961003414742615168075800641709413257626836362155660655479260153379701708174737193916580812588789362394575564961987223912967237450169672055613426165004731752612894807992098580836850170417447483637632691322256469482819217508127312841908737661214067810440762924440628321471197765235782808942218341461964796935847137030433044590451323162817349360370298753736166405478852425046559372471637001409024006477277571274208600958897837369770376342820448223487801559525632999537039856636270791007746408091674535815053293773588805444241358545064561614970680488694070032024916621654021548666926152655669483887376452731349719818944949427131587739895813943165322400444981017887949784363844973481070368019743272925412869858092446412687175585977227349096642835065469679455647113059214796649195403346649843252971356237380836136058798976295397289289656893335850681253819685404396411180459116273017465725671151936001317837852329984285354042126923172784709698092479593233542784951626131289046610934928440982458892683956180281952498961551687634694377872254930555795026216955248131875010610920609506683304787331564792815460682238869495635161786173189504595747030038356262045723922293302865749866568445693884280248744654160098860989098681025599062975864557497753187511439931480281786990393470785900414507062790022541733468733252991000579926133411389250634433211969683355412612995337880929623881759959651075188251926243721706469433337708743320166105926621649897613971384454448345110813288843853566625191953124111494017386914845882476664942031667339562416343981544726441826710535308638529389354912801747905491882453184436574319162867728773570508043210183750894261708461333467937148734482307964006689779023259307278799668131910119643912183249446467520192853130937397202999041738590290968137380800480071312454516478183877112397610425257718943338275742122997994477039820430398189017916773659099380113903958752778372098554799668005147819015671494404658924203622580625455011048323783408981866351969400933826424301341662841876480358233660865998391290063121603087415294568587572818056767431673658591388548863594954425159417159229503091680268178500326025167954615409214640963639718941756723348114011021587233484244998155728876886347880109169181555042632303016810705595717008838253607951932611730159527418627912156079783226130790966143439604684855416560303570495263689447524475578511625552052872125600672775980164440670101609140878619978282140626581426081059090228145564551418221886528799736643093891047889101976081841421791023804131477204073422930437055318111565205555105967647734586311792644819514275681029994246082728855382923068460569777073939321034849804723520812679281199134139079532490909189680443181277880545041005628901324281646801762713321128720767985155281158418371903220796079277389651109609418477168125944140034220140087385555447778701836884087978860970428138865084788571221167663236390989679073377006550516438986094831626805196984076923187989171185383852187375586362978052099341347053824560292128192155655929268240678067500245780124999883226903965072714016022558809208134244357931384228663437737043525157830992753626244603778384488563439023930906499157003130245839029940635684029068265687888866090524592169381650549149335802560342161042379363782698732371412383105691040869159750633303238856183778927406435250794835578903160370917148336707100294593268119637943239540516019779093826520236370549802154295290715740098276002757710194297768787428342437573937541300109008326623863617981221073844788311270913424786903381730886551287574348600634059700704505774640312475355117336199777214459055908312262018842093035358138791077549205815555823798499292873036974880867319748318288139565229838572390797136084302745230771416213626207867893252431227257369357548705466835977838937103627006474704327198934669880136116952819901636943567926305349085511241452423761590134227601087835065174046037338560664035580331421527394363485759178245951822297611593533808016941930335158687530185498822811755752393731388464986047081089500771755494530655076327253244071083164374314635174499859226222337651435897810469538257782290146362812528850661659740301865968506735337185592763578388198463632675158244249671875832107977924633802740941720662248250087814419978901962654027417597145123982639331892706511117024441611528234814799986110602447974684648123538725030196855699571251481670541621556919411311003545612576485261960832074863014882232350701972085954382552419605327907373865824763148936101323504389658492121754513007591780534162913100157922468587592594417734148897233855404792133926292976819252784643474612462585028174281861635947905669027023200415458420119571300739993106145141712263704092706849875169839675983330126480022149069979384232179525917246348909929647958174710763549513134841202348539795321021893960998745511219162272127892944646230369214481743441926668454032754154805522030354341106990052820782701469442855700941792440453835852944255042266621626759511917860776705281250399890474571971237077646816284959076809271824880779369630810369082801753230955233204436637342602739576263337544506738741688559364814489210573011142272354417224272065133378407884342318739007277856705261937349112540556443672564049926845269712666148414558562738070906562108848412028632229509388940277735140539583096221057202312439889881727556764419476281022181745612915793546320484455119642446520352974855487491365674138016964637767555559855357525296704286592388712329447091200040230442657329970090253714290949500437088882710342714483852303704360207523112187640051001857762075696558380582895852588588475343082114865830250371354614602433297476779465527264751922977725920274872756378322120301943444455806330320083838362485317458934614344230144431413773149202974155325994025157983870314386359509731585346277268084036772229635169050472595797863520315461727787240613122756307037859766299995607302887418650060064334555804011370344836142974585563383026533425917769704159494580955882242926367642992905512722190966304224959549549504391890607917475735860900038417968967648403165078718764098382160088880081814595581009018869404290792352186745268323230080676589090535508266065258990584434652887124691365312024938528747907945819353199729996930047007735089988948511952255093209369763785431068536064507613819629593806573068976665733083270987879049953283900634173918200720589814151655344972724566721472780739796668516808685478645184057877532073816509322482783474703403517674794382298529598583676600892005602394778292755651696187686360656267548396590082857284776848282649194179428762411081514017190196855737401261828418255580038439955974878475368700728643125321487163107850285922136587523506818420377373483882939021197288109842603832756334770931109033750691282038445315662998597420672552533856914719487369243842003791069635756750260166973146991142338967749602362757769468551458768281606510513632947885786694112699854398916308094177829707137471162408480875506225163619048505300803885799291751638873539483637956487657729090955368470328001477848683599477344359180809001380402277417107084435034058471751858098906702930493370230578059078355769947468998534629237429508958643078549213058469495740176242555823539415167736097096682657225937194916603786467947925601289212754267166178697439503575227199774872916423904447962342438243014076437799705700308990260337628251577569266372430940636109853226026317952031484323640459083139910925996113630842504495900235362002235710999755722573972888816258055324475627676501947639939524746759201989156504023623818134942287230821860941676041315708994233859281240720485756865876503778990003499156126610913510989838450821040333676692047647272306864623574607009202749555339868835962513080415865933037850178939276143277784802309695911236497917496204418645577245954974503991786796266456935893764790419657673865824742037640221597788287973983117954134799259510806834064158549349551497256450009071803772695249778607509917108648021053549745172303087909167121267235098653246516931334460390126464787461142785860138968438112919427922541514218981215328821519434662844704166162741397672421212104210471385490537486479479407237734225067956073463439771965040472707504702690693486211510158064106049629019331857332527093174934201420301965763689812752313772553399754033828819601479909862042202110222402421484517139168619158969680043876283250015873912339986433341207740387329525898431505326534359652386789986950048125058270565296428818291427024213598345503996851290902557525173145000767302889354662919565520092058056270536789622257428556171283705870548891600005973599995916081496776238607454362539777560478069984528303645885351848971680158921465142239237043993227616474537811263302678661749324442863621671622764225792417917302393728518078194478300526393403359061829965756227481674608491145943656938405948213285478512033554805063438630672695734332783692615470403912087326714542993974959762563439163963190257773055201887586657434744389249525645818770543485969204829287680138127733492512429101712099184425563882227965901534570013519874572899633306261188545205204075309264723107139611834151789611930806916996876426242713310607208628203891046862245297961675358675345682229328606404909190750059225297918362364691334454071585492942996933973502711585960564248598204252787603306440363577718497058342466628266490884320625682024123921025448990845136201974470746198933715307632926862108741043440808230451720118818549076782761897802529800531958084081259066766820344982415735889026308601347732589880515660569677426961172284561582732521966593738994910609884519729896675560716444661103288963711673141301141236773678247084060944183399446026488042413382208742504197858105675378281594289128517793553112777822904937450756223590311284626554721077274837887879992924226728878094918469067317350394248476196827076057767445635659794519933297996324913508258105592458293914604738613499010195542494166515502073203307698051157447147270055777298312316477621541148221763033665267649351053195452291088681520411517091919249512210681562320672239743719936398522706252048027755683973820605454471959693300897162756317682839730302318944804390951759588798042060097126092438520909331125191933256253375835333019942390151897565694346713754819536922197099105980379950914431336229401556958350073533892018017262554995884036792983986373786058530246947627108917926735655703989205239801847120728551301719755824085261379003638805967332477710579633897652789924435603884955746183508357484695621229457900936436756468264297402038237807046523688464584233212244234743447580635397806918658568595239714770131586538524475848614199391401250314289969476273488296878643196225353081089717188440497585378307643737534189875347215069596229298580176245780147904222866699904640293733869452421918939037573475849459702347740489208354888440759483564741053043768923653740048550848746445471096276219638146929906235884071108983768969880885039218185388889999980033859026619254114464031682785571601648612656837083771718094261825427215120274329822000385781487905937406752729575623548202270135243944155853529188182191131021441960365407796393505383947121817249592839407494767469838059094780166856690436090551614166089240599144580821238817266712543375925179944983815139339013615679288300481056454919181670020308278523868161033942023368140078447153315630405644235754857621225651444029552450306023270714873088990365751621523664249636655096590024291936903840304330764230025578738442025881233321960270743977469016033293826601830301775059766367507630044217274799939061990951924884250113587419148949064316736487206940996825931805343722192308796009964241020987022702353158011901766806312649389868311602322727677147107800098779006731594384224295807987468947742972725229821086235733396137753548153755865632325881101946648285964651506683200407826506442752822298721637676086911073583750194234131671884530923781568195371538545188308133358167273124116021475796499223642661558734740343478582991953860529749462962814027690757600278293535273656239331196232869777469859677189207891474814937063854338839522183931661371720573799437583437095672229205498650262454071591799434656506380705032724786214876096728205828232663637389819700746408956295505836306293681606527795824415238328891003053430089918823191447840687412364130223038548424043954195592992009371985986038782608861089707598255521589668393012242267437859122425344512806856986479397617432697298613443946206018031874482970337875080196322834662872688354093462717180806718352453329706174773470122732035434019487775925737540228759081235378653303357315288963433249862794594915810327154011411471510765356454795952119680961073042060335490395470451272530546105217102710447987005673781861799461820237054034965629318818356645161457719220521638450017087206043915893989095238636700211531933737070541745470478658671822587312578682615375864466479899827460405885752732840341987304028637133735738098643763513391139463991481946607327877242435791363261865587561735924164195155951324158327358955788477929968289742053323888848186736952936604456584056580026422627060725385443457187423525274976739484432502032618661344038096747100157071811258601200312103509311267190182509342278920449307674518275337517610133525274008485234943211087849635056042768109286459331390797952798928901369264275350293391781802047897357320446887548387065770519827850263524125299820817419316305530829262394494709409953394987947542647246437612565011480887043793019724292784052899400282612807187818584397265295979264544154689470040519769978150087337809608842745352108030037390033629291001585876434967941516040482948478731749915666306088005703914979211395539883134369441861578262918322810761416151613976498697771540903872515389607847820610666697309130747400175049035477738808722356230569422001623525995248926010870527628383213857735830081049831700053819264698142556687242354452388939129957600611046439565270358598108808371754990107147738965598650957186330533767303386053051631716514329868574255801729348439861982247816815202530141947800181927990327957471495846392850103233396893347499526042665083315445949416640243235210338551289567529903757129494983945742225057854647314881112511689626341835961413399059005858659789276521053029367186792795097206593881172813785000871324730926190580894315733586679228608496662040672148454766388275202755765991040582993857402236590732667501647726258874145224253552345824297885380097187831141572603780453966620986140099951722485319723935269284423305423606992955506703348015730763174628395296422359758573300547296920933224761699955765542589713467491796130436004110581964059169424357441538886414412360269628431106990434078111078084502236255254570217288075123183100271552782166329150681882026585452656885697273026628912677701207778535482150495216067318681757461902058987088744350690633436162689545698288871100563209067368498105076812001663415703898345411999588342050076925822614059038138457457299718425544887894459202010041280812116994038247862058724092674354938819267202110093027510075440342930517748179092963740297475954581851487251634177697611169990243653896204246381812273497089431856697118668911019930689631010148324391787053257573612435467117839405927584375507340977544267049569014276423224146430795757491551290062977126131088759620370303049286416493485575418960173881483865116442049560530203268062239530638924431522474140603584710277513439443876201888718590707195038243854790245392187570930317867335566841706764109887430454633730168506627092988873674384496347339526656946445886649245799019870967194273939919976407863302532853717158372507230228731980082507410159760910215407242675272711963250739666003169461256882192261362776007713356760164531648061319207829104465118242982066473634964270881923740647603858196801849258167966626564490893083472789776406083167814290093635798752071132073609773960015313095011782263565869910523157703228950751962154276151615807763153196506529723669947809870831805424015098835689045218127453819880148534929801542693083252805249676700319997600646619793119174518248696183680117474943402385217418869589490062050079482638690880039789669639501749500477036834083638116731199874121658159101570970138712677605676514834129926129507668453016297553167909529475313467564136525274386861054054568151590882589868468716959206273462083805877793762164222550651631209439032577140361064835720905774908760496021092640974871274592999255027254346589497657799740862120172694125665892070943161235587156172895036760469379820699150529693728275913006392898656429518055006060708153660629523024307166660939768281143935097527566256376412327753215806469344907747648133482116786479604731764939741056715230861413146264304897704598887575169635572929767785511863807738379642744188846527198300966664427039695277695113583817479873118237969962756157468732335912741185368666738722726912646934046282601274730168139326728024417694478017019724533088878237039513649498414574485600565026395585326922495544778148978128425400858598503362386061904098412332394668089660624843857227084748720928892063290276008523300809191431081831953193410337701533496485013806957412937339361873465664625240354545985760800089217925402846488355374815841038307341527479186610085936621643216570288041524710027235152503148054520371241331423537139961963214491831513062884202339133487128910085924449273579411175264265240173637849301217383750799222260560041903420076869998529900895543507822046637591098132522786970629923811153017975556724368193824116645654131265593260675040395816518106207318789190659207240254791298000177525871758925348774226128874589769606775214352586938004158355897734008880469619977031628493229641377919909906960558033720869442579941579136384457166591687820723248938592276615418905022424658613088293260892641652836361713170898751702300198103421560267745509109995333345094715920640405946950736341631121355880913059186522044691564935150300614225843173723515739030617106853955931002388842553331002647343632644599925819622310450027585673224160424707526894610646076210160402038066872168269787226085813867203128887744180796276375579167591567559600231435866242254908567103736181114763975270910099661040194067536594708014759028390949435471883683342988159443852967523005826503960115676402115042634630043590267653978761186553547813252051607903377835916996447677391311818847205699961511548558322962019718222110935932419296738347243834154454600066675688854347229188274292045909010616161858232728391602585748354395556797206045905105968324519834888925676987015992907829812151987055463365971453082644663803769653779195974782483708987377197335245045691375689423157510673848455310582231922367781170235576165326176067288031917960539035260629603012513958381251498461660961229288637908067745958607851992249818394496125870957321648535593204086638061057060168432183765129851835011968659657177885703150798178733081376799900745865553835730058578203450235011350547436787598737512585044403059148886656489099984377746508151274247136536994762054061464198390362655559408796358683428109476816278546850739808560409664468440623777906085521357558353364000164993507328442170112480786140369029523287507777344426742034280300218512500005080391454819494531540842214326476996265028764195678884014496890278294367684793924754125749758941884820662775422845456077693333663774081506218995846782190003044831124071163859236113771597761160388586094460044253891230915504679221534528034709925968605306255940740049105946466101813443542216280042246619148016384833747673544494205094504394390070776786637947569857159070400759221963552674725692768366749267081160594197376431079072059451721116084779805136222025556211653844943475589236978630719016710127884010576548107604540633314050965126795371414588269947051480085721126204166666382630360584287964601400818423853118028760200066765165309359072154199244178287495843759467263875879847099610338866476782143728599033326368084263150255365667307249382167461527984892263757559291821562482222357065819294320719039664384752059035831532239885338693208784638158004138867361631249118640372586525262613284327624739315106439997505446021725941784599208336847900528792213477156292442050616943922421020442208121728918941490113782168588719410047771066577673986421922912558243250823619664303480721577031695269296604066569852027083185219321747812097219599778566305005771042360004518374412948668343362042029429129569898547298667302331538693427354289642999557711028174642419639898471742456792322389077266671803266159951210801110681274446850908251169583606701095850553462545676632535081272142686795162969926297564858986951631371165441834418806051955733916585566397550080472494614966411329493797945299509854983699016469094086758410144530972995770775433547293487969549932434515186519574837298101781756349349477891022857026597163809660565591647325787813998553337698070892203976554702486730698128105778002586435687339338312096992755012120861878214291987138328249160610746480582166753940153651717666536901559368435778293322366528527747952729168311506282706811217469025495938949360070991643825167034232177266487332561987479292845656694367196330694006075563656710263446360707105795179959320067628975463243172313795375004817006457635251781536271007135620367466736067820164178345539588832265165709501311158244385472782544772952078839220305994247449106816034441517312487269477643989016044773457969820291531751577995387164602889287663409349821885972108246642782180635671301001861899775097667247340052621663280931387683968913815701374655257304915972814824642880240071027732755100036274343302527827366765848371427769491457745738092331542932612185142167691976143092486145007149685269673140715032854530421037252392550556254692095106247622696920461088619352910290815899646118480943833217606856135437753065492756855417307269052356495247922129120009204066939689758190687638244213673027646266313933186621814700441924544776253212854144389835634697792527735811591008696265447381139681239086516516195137356401315809506161096597577160980034999377007725793020014007878664997230824362121871317816837102750495324833095347370014330414533614336265953750499027224143509700089275852256811193568298111418809410486680464945198537309519088544113104094238594063629445111731805606060054826946738761135799947669838962431809341825993781105682597272994113604095070950155408984239258166322933553340237472968700224510097846259891403351880457644088691602099573123534130186961672780270820964342608470024239305239893685949885127718564250434735672391432929902834031405313753120527326209287384511484891272946178861821097859112487107195106339571337728082655050128661483814902129908620219591758942243505808933401946281071364240175484542637591241379398495795932113098073857367415037878948225247087945435606038357286769126815630461984528079843498101743752778414598892058542928184776080060270627660943432675609324450135209041822907532828236988981666063237272963695228535986141935203382844068447726867236731847585877875742627098117369158934646668812630036205433225563194867530325381706331730200161504071472136144468140103094599635586999367591629606176726036059680732321517477033867739469480278250082802988061541313800429738894574719691169243858717550745548552919037841605880434751290733264699171632857317390763583630244847336417464735266820386530645736955283223736797612821738778344250815422622538941322792691462597483923218322294558396408378590702524990625206706647215344832526223128109250390653555928921732777745381197353366030168906854535362555328085648498312907706929068736826137470032610210620843911270514322060978868538664115217949716716067750566192857966199318625604856236059696819170622019957473619170823909801154418423589926211027692252132802409311324597608644690493065357737310182959369742566883636813151556577495492128563805763118057539651525723508331157013379083739094035235342577500924364014173503428237535866419135759582495400847033984452628040979163412409280942783330059480133191467053471056169162409549865360629233941518912011049859104683087859990040811003077554692588260889244862662744163384091911143755450048214386018569856313406252485887234088050742587118756118999341906476867323269923747373310436754686443262845536824979484228881000276266049953255586044920075294872825378982239914176754967521512759026106423753176285533768636204806819975570487663208565196787649486748212404653177545696821956272397303179079915371736500856736221730318818572885442777153459579302277703760513679903693587459981799514316680485298798276218421804110127357145537737443368495416231510940708732194545735534336118944923710970511248772528324175347746018089153010639095565719975944129961198295501529840351244747270602769970783712979572579651099311556916217243266484257274996335285169584328808355829814540847210970678559005207231219896276941122819098306655324727710892023302251599259081435861430438997042813724108670023808505799591885856675115147736399375686219190685963257578538848452833277187929905937635424426083288907503324451666305246118169149541509706588946971273522653246748063635142670185098612448408158789685378390408358614296249457516348738217307380536428605290693062831977385876658727063748747661685089995454594438053794667532734926136490680240872616106623093074329125865468678795622019608525056836976251294194444809979778601553576277886155973601267183294922926422167637300155662425942873733135370738703189087514658097793571126806271997673537666965032509095753819299780792781798348402702278978145397586995098894273967926462290008518015713962788536088135330888096451821989933266810969524451212918795328569445212737271333214385688946273283955382129234162941669079299232361558817153524616208752560998706764080893204470360153293447878141253125513368350401411289766460762678325492664136156997017249624441390740968279220560223367146112376791258945528808312561987872312806440667429090137129636445772244126900306387332301347746662353018684064299673929376826975111263235138645822116954003590335632552282773758731313049645038286312001919538313400485252859101419887971963522937131146456252545188700258961023043532737889938735618999327411121663083205030418931753981717988491328482830560514065630035924687031049805545802684600791154887159748363577167034906584796432459190573000467188130091556828041564777025218408081035815074531003023579285041252305718484681135554696839138404634108497505108373325003700019582331423741132798818053527634424228305131341385869026810624966814474426865639914866776089787003093564330570775400309411940545267148776887664675773466012179183939054806612268820317770769896106900793189836739132318615728499332647998212888944996520204003839685424112683499648203319232193525784559265784047913444408684867439791774744742088468420447977274399308169723091346844986734456327857628855022253706284408555965486488809401856428262912302664266674096614830420523788760756449173241451479820359625312198793141623078236105977595504659982775383256051046003715038801719890262526966689702524098182368691017984823535439409185809181161065381706302047971205475597733303704950355809205844498723680540074717414466533889157605820553345956108927308867918406434201774934595894121788333505989240131670254007272603182468065784359364883712073217049895258319890060483700978178821452224712406005604123741711140813162978780013225427532244626770254483318484204266736276670501582959358654499266417771640687572763044616816392496586039753475100420487322539578217912854931147305574440181534746550374035598905529787623816917302832831789368842174395142782464931802071180265049449492370183261145890674729108073772334315967750640574723656332032299327271351231082678214747575922258979116831763236497589009017701072896817622936300286918139382207871592762110093544807577477673097898877270058714555950598923856002256047960217122043835724426813159517269840485804408318053579366796403677252175007601593537264520687692408300111664463962159806161026963215479689643157942247853204869644939429680978796302831729883131896275044247545859605346486740907841248367596484552555996044398544257789069630337558596012530851866549643226950416880885262171312610953151978226961823238920357715240882512817642233709475558000356954222482528533665326388298902451083787029476291574600216435979138198996917010535237087848870550843740215840339209689485782220681654524871443783142807774457278960880862451640044993438013028094992720048415522120277390071916758496448353947072227218855158800410102736442415990055864270575973792946956827466082598965694110832527354931657690415195314432825408488231786341088567054376161503366137955834785418723866645766506945377799761568996242079208888737312870808847869701165585995384294925525253184432576621577472661638021965684742561879855361731199685434119305069833272845358965435997874279210689600249175418227121113076734646155837466842607992742860364589134646446726510284986403252412796352415512667332990589833289415668642154721448982076609875816865296712272114850716722431368159772899434247767188691969007267021818888621032861202107867109134738081282929748630869312662160073563718248597495477936375247745227320852416266702028551684736569474836648670180559171346691584611968717207864564863448524191858661531726661950262650200079413408148114112408600482092140922847691512483843059826969994769590242621400034031390961392960005417627607672841125514032847427987474255140289782781262313317366005016705259771093903383557363893875461983798706391899442938814991951243195423107495554141431264262774487345933422434193827920061934879646219846889136520778087519136499707885426450820410051225852523696285303981251392099259959085562686754064910945345106096850535022866954723809750530072898987550910603905309810688657677309501295101022809510314770628137164017923879040105230603860885344719906657712208056502400063510416741103052982639591883314039422725396160489128879429207158445634357684336741893984622899298195291905795357818028170986008464208808471679782351449459969929019780533987905739099089284452926877210111476736652245164735625622209577485962192366169920500733717394527442051047219699411775732517401085668364193123886342098224293200644020012819356610144718661481952090263263514457215863579899283999190716886581278483251882055063488951204448974366491304408657338582987730477839771806514654040476029205152434745304747706055486787552494177926725784692211495790387290035124040683734567562966064841371467207750303659236246882785710051221242779137891641349956116926997919959569005110193030381315767429750065569253351504576124556310651994550972593064282109916474589707828585627663854242856527993509162096014473742962966758097819086885899250821146681482581791990311818215982157105430589101629648740506414781123027692048519831808482646793982995782503793844374543085201418300248431431872292865764224930570480102742275380720286798360582393544003071442723005139390216180414927517830087471415201536156541288919725567591405619293427856327915649670923213180280646741618075453899429212527165991533169786690781079828019935875295081860003885220042039450219325421770073863452831351840948268119125286921350074415425988215929631861778981827419675801375823789361945252672101183559815246101696367122201212269781326039926327121621474553513871538724947931740640575627363778261669845503386586072686284989130501888641711497150845484758226777904495558764286191277159643334349146703111064006475852483477407394528324895332106336084993576401500051943231488355349525659016686454626735425382010007980442117763691876931679077552842801659483644835689207996665532854315887165451840107050397953685859019530317125960532127777407486549069735033210851116273252841086401695257035566240200613859280011254418057654307901820535345666369191991304556067451944735099637065633782539272745965941128095713514004266035950022533170725369099211148003569589830850579158415327531765743538051320519335237524146402757223715020661391349046454880821502390673699700325300328660923715297643090640664811854340816526021975123434949642698817326191797329259716665963751131096726615100378767414412689918428342872605513680390630444609508831327983044647874417273450033564618097071888271678913847143486558085269691275124445229463486375575361990151697158723145294066409570076544826213314036534288144672391418897384046055788563720795455606924702836431292926138626417766286481358031963550224060311178476646054083403854088194145720788539454135425260675023541378595181093133781947937602595104060341583085391693825426996136970098642521250284603973646166418161975342219308477262845801998547882534525458167786953738598580456543917455713029521648185539354921210063969757423864292249448126990858428643895720747878106272575388871115403743213647135822585478001854708590229352434720354225979515436690291972638985824018305377847636182622579954876965181463061384169882117828693110479029453678744577887376044912865565705973381724711099120940506400590671899767446522871303386508068692842779433381309036823982003833564360477853867263719041203102284567791782746050404043419977751106833672953089555498527619482358895042673070899065910717396475709203138275561819645375036985153645327513408047388367276566724351458522359996892524011744763136744869028764633608547299946053392217229425511135473765039940742499855513241382655244689519052970436586177667973796512230993130294320430729327168604816357460760215177975145814410535539283533938937142883805825630755426118521151872635324867076709606753112626228658372900547236445369582704166675554060493166720041800260976940211749385991074060832459178941224692774542413300200798624563049599671432552599271398911835095213303129097963375706172528925710822851387156517689246617196798998474226657325081397131383532183593544200045114248546860098585201798459190839974392462986884781499097989534636138263349294096785123746265194319912495823930430453408930559448125470028147872869167749988891401504734239708134931788130837952352479906801888353438017167367054267434803099096253133713715720020469935146668590862136452422334820949977311075649750243778904673031979184810175894290239040070769427131120720359597434989285975828008078080555991682797094079373963193557454361605436881000773808586407273160773700382370009763952402337954919418899778474751730448273695025565503669076413518492020231825271925021847688924699144525323372252607742473199024280438062267848823605294422207156763127926293231964216092484772190144928770941034264103303218416703844180593105706775323394779997217074914695057159852610231356440643377461010618080605333614143007500932741706798883523751527780027831550600000162210122417864952788660030774611095394513079764961837854295219008412631628391594492409294668307693300593221337386201027884855019568637615733166670468781903867160723380525276970406730619176898976035272936758035842342450693645740500720100834567370938504860602773671675747143499589316016584747021693295378256712505517998226683565642856804545055641960368124062378888239544595592675758133685712973918571750926427947097836200739453058542757026871029942111417056186704189645130088056838030728138151995986192122679844547302013108628138472256841484073510116181990562671047435839937547004789615449309949521812837849932982995883902639748465694469963375289914282719310862432294912470322593646618183180510311959976085463883804819975588976440604540381726492383199226841713381018817070228483597551548830899545484460030074745704802223081132833779220645067787631775439206678317190773944802207454624322101844494723205369366647397283823711211099447061740054458451161961804949054497394828172123191881202265314986991707207708989909137130550743238955001540139538935653418934128289515522684221056419377902337337374333483714074574244503756251838355336559928920657348238952336518855109435891399320583367238457140728032888025323484095448812447752339316025270617968613627123665618393688948401729654430511693728696222393857997254672401265648101109344904731262721087498226328174179839104242597752736192245318269234947351393049763064932499695105951625835135302134243321624654190988947287647749407051555771885116130056882286242904711767719544536239242405273064429716523039801601492652043253265573208214059357197796337575165300051113492164648403544304434300909859231111779365927178270467024993402992188924182267002039474323350625381576228827682639740985633121824972579572649457315368442053596110505471996169610105891674061795936338794296001511649991997111873843659568542551735883147246222641025809872831339596060422238548160121922801855256505874136099954793308098627631262409097118395985903873157714190192625421017005976531179704055772629085578780094670977312509593756583397135771265203424593880348424303308536063834695301897650660660845791942493539060009172416222780718408344654122995594167297481013670128201687488188391526378796878779177033739554875225618082954657496861315560904042943708795112327992549353187418532135438656527526583639587221854550703410799655900264579857088297822918849343252305336904991664787511722365314898061392899877523785817521644110975398202608862980603003252073662056459228759317130489954061237501255501091899968705279466839276794998311938123831835213982564890639493917492976719369533566983465776547895468686541930153239663860772156922034049021921923589212314092355465763082338548247473999063741415056110312480386852776948360545930767559344257743516411364510024120795290890563621501772285859855058235335972989858495905071039768041368951738363286076210567583414800919053268545532717698282443361781043063079908390671438287381945626315831052372091977559506673816702220999257412655306717297015923002775627508578887528599369498465150601028752546036918336489896011464261822979734724158683498359385018782925290044128276420402292607479615176674510669295945566120397220624407138316197015510043825885750744263701029430941974175980922358406870805190914056485141412741409640113444785611800529390780279438981326440629232573449419462236996652675698162850406416134745530554454443851942018326824153777859682919287733962868827658693765458327525706132136923122597318210598616254866534861628070129057526248386751604637361691049493974537434992576860434952962231070746513164351443182744062036495750327175156909134613488557097051583688281107363191866120320575714361035917542707303856450717448137041757013342825415752207149508009037309620606542069286728134522565491134319427658201062551463074394109062584261096971487871627458875728497039867880642283735164654587758920926603451724231419487408457826377113738086408317755137403237194485466489890198436622859914334332460516389406170535305835342304005703927877631233340554972342174496427848890464501876032135643366310221351994663085586595571482951502835682333733648713891264090407311946294848688250243028094620088608746322161862749645528537034552251869720064860508905058173000505943266436575633582734975627945944782929216538329524883313806856566160974919563107877763264354049295501389682115373525595005281675922445383593906471789004899016679299628441536295892975396364329231426505835828543859313797333388647918829583815372928899319763690983544821295595625553624395765613506620853118353221121530120870442453559215100864217565106487649842175361124154635766077817314703343117901921921574120559129285944247529547051400817916980402869873045406862090395121003768043842392969256645147479515577560595553515253000516784143502124506423994210638487662727693123398584161330243963507879627522546535675619411025953971191913530872253237401185102376851190059953113137173363823012872071029563676838005839653072856157144672314205664029561823761113804565859626324562867239370062726225607665159160002120133656297841068466714811281918717357888283264245260485902300877307553041548307219150370428566058956119864727678148639484014122115984099362040513312690210515841377659043558311693566313990147097641250854298254059171746300950451939521411637221431730350583772885544787847547257445301429723459396346989704635408230345480034706246690939875230689988784891683966262300041628339610970920830413037056054379947186504768236408548541431984334505143470859785621967484851445657542269837677522142591786937817289457921456244098036973195666261272561802586935571188281439553651485545221788142963430596702982620578130275428856082211662368724269627213912712273033907762758943758486471107756837368589795745996712830367996232269468771069985487374177323679131609279098314931844831377189907651978952782454465698409599755702276831216892117186863980581034080038626548641472647992438875445911274314304088937208061448764319412322462352188124079400611920294624689295066993440984821333466414574795428194437445555612913746920855226052510711214741278390250894448715521195288207736265232294675225358533263971747297659093831843889673903222847414062569291598771945720830174901966362979609194076883488477206530102011115413143073411423030572385690933796510182194748985295723626942307164890841448913053187095650060295650422774983591305042317780052706826969939382229646520305930183418579618473808340885585896439820044885535820451909051758516459784670391909788536705067209481834935336107085584837398587611829290079155944988117804484366709502583342915002062401289563229052873438974142127970218337318018789952637680278106373517645685707572662807453249755819395274110731747345437655672155942159134425014497225758061507732051111027817274293627804548621420109038081597018316836023415890407782669733658576941782644474245605548866921784160181337936203816691463006418044539676327750411122895132955372729409751729744020241395145374567294057055904906657068815809085356400910608691697966106041256835714769666747848879998207760483308168534397912360214153105624376397447568471552081685759356139043449466428233344855631599282148325808270769428370534131801043460975136743705097838848866435828145776097166461005836579968038978267535101494091141142034732232356771361996984310697924969865536062940965579589966411594904757577663885312655214775237586349712913087137799562361695531207102019139350983310211398917125788544522494724440377892942077845139726113199228573019120888681474102121173946352481421743506300403711227783968229611511827516926845532983592590582318781015546950699694179613111404313452552046655304494754428438442897067898190608247840879269747448212986628512831264690763974162704646342419409060326606556662789590787209592483913597240297853412658174720353088003114760881564890968551751464354878198452679812415607403883363354228678144571042849141171829840638617065897673957341183552605995942682108607948062554503960911808428504342557346414249423834010422619684128175291787146704621013792494275766125420823853643360523582528359158765844962923835444076164800248585767374069257669150614618418145056316491505187658658747842065558397513678089322645195028265240902397017191898940039519826439543207042026904183301970431988351662549876182089050240941916176787757161397711382692314162986411802465125627651565140855933891997071883810478935179594406676429608064985915251454976992572045273416549180050538602321085637271507299659027912600203190047670288010712409349302099681850275854447486132212798502723823509170203640524980164453955829431336788630148419653188879367741057404557592481890689880738427405625683255659384254660067813734020559009919453096835019712845181211783274619754727194823336747460449925498893108477714825296779419252050327682101399361564009457351702473054884842017621810619626284822802583334192014970088076686197955164952638556749731830763728701804046221729548399253841870850413448813204198148138577216034390656247100394754507682789739956619199072084159525598967922488971658027131347936209449040433610394922838537297909294275460690771088919718690541113125132756723749257999156754490055163410303918808871803799418182538139579686079642056716842342472673677469898039760595425791700549356464158837579651627418045942260388220494211134363074939947244407208171328867939677145252223742613161953951512313011791564850170315954499370800475589229245480421868781553164139626503721444212306369977429697967707286519280608207846508330394424576035308974317207098596458691233374113551783272618946620861413626660428083924810652518446035123522978827953677691575073827931970347543499616816988848989025543493494464209527305390599884153383130120603314538365802661040105642010526460273842249957362084972882717519940009801393021480170807802054115578445596657451455608932271093551564311978333627726346228941111893266943324567862453623349981170547283603975702710500043664989156212149961719776745652327801677715280113199831892566125706556622898885983811638367654576690295250463137484498948856303630011781011372256084759953701941671084226097446090568810251388841582672362315396854036682540196413445860975289360820917288001858259457009034803964048225850418637261739461764032566042192943163819516409011915544240995463756752413757632477740825887664795794775439714377961527288195055971934989445953687551259400440484817576899680794492932671417171708595771215002360388676643912454737685396283159173298613085914566570344940062151209398321108070566749338969429440581063587019757780993500073521045713433537661236176264503245374909299682581790665582084646701328302416174655299664050295676481415932248165019753105368048491653140787348174171913160128473725941189584283329734743543759559355267378494183111421946966072298426961823791750634963119277674970054167193827399661859185639204801793867931772856809993014306841405602411599857820894525457724075976446288925426246722495791486009097827260044644875609687885749586863795690208960381563817822243142356681180381303380504085931404241410383775571563978637605653880694938818555749914786666879753926618170223749151375114629152163576180286897390962232460096156056149139084059264142975162004455269965681843751383253003964660440222360826078571212821289714035156340114025418781803858355780379023070274870570923624266003126486895413627176937349626922841817320163775034668684039438328586310789879935404514983747722202344192806778475259367379926465979505766886121008044361901741895032499421764933620143361164697357462952430838314579256306653560516055499664147655332253843896398858860421210264817279249957761408021854291324799113229976720763046692940788376168124870377586502391208788552317004199816076713004739019304409151764354744333563568160643925473222396227483452321984765380142909335999613578650426526474040113555250667867680905858654227554918959962759296624736242931407900180222122982752217597362061390069851123038920576120126601134005875916018664224870037346229023144689785128758065915104646232080550532894716670525115114550793560924436468479850689288679490008193907364158796817764118444516149623568619021271662786087135914090369461986128830544302656141152059617008602968721972297863944779836052827452061911836635597573288790620737633834272958607980204909413920377020332908643429508681639339588309584415375132694377210543590663988808242958869398879497635772062125420573736688034795700643732655747999411687906998366648270734414923977923970715445092488686358113086460495531315944459969089440498353209333505925164204831490665291051935933626149974524895364845253312923168169297832088363257384226637024873427208308731154344799117705864359690150390916488187888572738966488124656683603441882421579288729025083066927829006081937369472157157623799419059751906091239995501572205163216998377805556871149198173312864562032923476229939380024088807243547975274723520022655324075380516376721970389884922667832691453018768313396858393972848309255386711411945838987935632950979978152639664219196233385654698648894584613298956254491529615251293774926354237415615773113117330754330733416465762393944880505588050923236873544277800723077578304647494834979222371342544988364582321375212152396787445114210615654702550773101418245815045540017775859889808038538442248690098015824559227676206080985181707118804964137974673399761498968575678330985295451881799823825989988359389328287810332093791584449524348585829105090922817662251435562157003008175982787338190814185446239463847235227317834380314355145940679596286357440720078657004459382703940097731339449566673694012204103528049280117490596787586072123664505785885403414350181369771441743168986578682318941652605519507945761776947027090071345955929226877899345493866753760891119374505298693939307862104833523406925155093111515964012422404998880174633353296557798145410794978442176622255107769419553976853346812620259556707427966154352256860808513765889669492990105440737260137110546160383573223815141152536083613507242854209829951043075254249235221433329805278032831562394926186363178466510181922268940878028097488098628487565982348349160708010156936308741127697177465681151232752432459937937463037403749268311154764576232749308977647318116670250305525168490486743723392879989413351824189303537158908138310502719578438868886885701402459373003064142418564467651081158988624783109409204357309111159121843858833591211826819406242998661255132359493421817515127582351112274191313252371357315741858822457624842207455189853405168835706053759548719163469651754414668654381533503737117672809722080076896949593336218801140928407730217708595974199310300466121337233833529818340407737358999952034089841761792657245260872396042917256510115053272939981202285754982955867939480684180017026363250121789915970478079663938063819931061041129134290658846806507821205954081425033463667846125311886501372489765668814803288257885558648203668953111945010718320378070395977278454579286098021295374011019636394228570074295970741832894404500350523835772275248209127188459156903577537229599104845132857784902397581194167524940431491066327773824339856272597200016029662143372355997170414890840582609820874482041652031450655823406316106866673425663559233230569885946838248774627574911169420408097425457285882686988390862585513182387242993722274419484852422705919375382015902606012890398631404054068839174454196968451270290962971706588948589080339254254825271542992234026889891297246008230238956198431542077731234167485377449490796768206639322391275028677977219450236582995645389334687680443434491527464004343916563348661239798169239046283637350988757345144914317882825966182508608873649401524658542387643411560523199350351320036685527481558584387541606460431497096449769249694951511085854249128369161751986191592035766329840404763768326830160866643601031078555802799125381519600650309159261187925304645774368894202051936267026580299756463734017758745839007259931729323505281370865159427868152118625552742086066183322932208235602633505110129843896427817225325436888406151323155561023741379105618967073502638228395151414993841586073590319953808360551888736800436262651202918832676670482843905357205224159497960845256745014730298778124282149950790508345099704981525163473067946377306123124715741499123583107069297649327205925892195046699979285123536924091092063960149483628204068105902356513511822132748386184016063919451861310766192657098737785909359684524843904352946979015894606231840749076012950749998940232620460363534861625282231393684342463610035901620253923915091522075804946189228407194849049159455072610826975271277706111184114403204127529775978535246731310539901212927611932884229147054178566979081422409908219003898354001135244133991779058677840069779252276873511622642326151876975567086849805632748815524258912419253056435079865840157696802413039983980405328437173843266104105053083068817424224529945510870194037810559038724307538294328190778836161571036880108787692877155485498812289323645833712346283968039031090316782589916856274992510569707926546219454656898462753174416053632046624986290100643765075292366391942319306274753570898584960167323171050710268181252736514309722414556639707471254050586338113893109597455309299280446564257835214185119681908622030816840268902934545484410934948341225725992551415815635544837386566660886153516709461214493955336694329995305648552719492382981850858384143110671724845592552061891616161472844962827036009076647805045426392983385778674766986125834860847679247229284238988127626664254916212628806852595408561852493505588939220944900649659564576493732721770417243358736849197530651613579268618186549851614834629917874433677378640516941926074234141567701679870280799978285759236744969775077564131919969852629402673657939081699046816203577124563542468976196207837108503981467364406024905381048870412229463175602778610934606845260556100871749638759644626055353221527350691575332993121262236632511696742131665663769949790829831109484247425932148746904779798884298368883188622901714757428562067044588242756644801906136226816804973317258225233327498422309375909959675959345933758680957780238651239835669979274380889493165221617502442610886955561839810180553546321668956106862698410422237019671130021322577536695435646369502922045566494570484860724591503103394144927571621603473940076295503882837979888471688808808295893883201516408788849342430204630738435712241299410506716928535324922650101879443515281236751301691843585813141858970582675086868705408836437309432264965091318341895948287742481917649493494845549058865333111848693654937524816462456628446506370478795152097290864252450607495570023066002368157229309773178367305132869712886224763897534014352217403594906882328971839776789758277480021805204817285221963181915921600476475900258592720372354746981338573774738610448252352540264164371391705257841451564353495187044483338776172345731230268657123744585949450997875450657712231851721693841171205032743807686244696950176680174113824911270087864521866962019902415234607580712606961557859715218275059701868554665285174335888352674766678718663512364766926523971889047231043380606071104194217136446081718627259664808203072652297845740059403573003067500422237043828075827624337222414605508225578085909371695473593300495470992834643328715455722958508765642393228053220119380341057208214211557849100199308715047915965991243268514014689184309811851032026688238957109880800927895347481747902008004964926805849769983926616396607635727142101364335066924322612696453293419151494179602024473146981287094673589124934089109039232093406241233101777045726753841810194695054327041579781574125946881494514560247536000489269128214930544174644816627056762512131441981096155205634405678319329360496739628180120320661572023276634022750568150868226165522049336271370686057050288025831562625208963037092822091787849863126024420107821496510545076730376622524256470709046022453908676177252703841065660920971803122723505463140655135188816007954417545604394169275231327641297580044502050985132228601248028313900544992797938911509589047705150920755817528159488114166427136189074154443962323531273583865504430650516547185541561645914515104056591220038176443466833257666707552081747950593647284247271056468060354786241715866987056730413964122113558574558278656664093690509655868552668308303833784359021919891443774867229734241193540599427773700363361466885694773572062555459642798454807273817239182223602941028540432687265270391797463555834213003090390328651527145397419086366524129926317490324338952615450477372056763551069452713877718104811553484130241736548029721957798705045661868151269907068949808895248215830041230506994522163214226274528128643688968888743458457409647564590701033830335102875988608326273455878777928960824339770366540144857089716469927171288156641172141984148767103811049285573913338408952692076093553852554863602952533411946412075346939048183519755952842534689631018105628741488509040229731908072679998784600959835901077964410459218779046002027382756802732470053819427639340133473242493023940245419389046218796704045283134852848011443757511811127117601740871161262994469559096716227171661534760698238305416636242713506764153924501213763160452128796929902906948379016095816689576651179222818350429695685986753815856171570300941544010438162942062407248104568139266674851043520836017407162357465507339247034661046063821138894779179747723569317194891246525236424829183512486055243607643100137528394866355146293745025666861423827289890648035758802662943417504953987389766276698636326299491808218892818697467281608898645031062407081629055707517211042966120810794311420734027647288791150011607928481955011391718338858427802661108172871353761647170867720632168131516416408950946696911677012757303088162620431043994539253316298705121298831191173003611154565685226033054955935518016245774057568895427519515753646296637906181813499042470819804909922995224455442597394991000405587757847238859546882430869388259287305639870050498022895822887915399641675962184801385029710356478545891808369265884079500683597851651800669270917881306090318828186301225770359311400512981943328289737810807880390899221029687611924071456072545225151468804288659097114177729306536686492943573178586507197120558721336326341293028292155506639920646095309126577551492880740340172342359328019856900009194284773506500802355972501916318405918970053387055071196210926594491503894112270928102756317274454956219931852965705280823009199320404580296360236754609137255535528323613908126622068560902126821008110689332548788245730343532657544031518625998465649805707680266829184749713854143151967223510547430834381296817787581243088195914107625315363214773779205514981280520392174198325209165944811698295596491490635027771827935090734545030132753223720318578637077176116766825293871121628561126092977804349318394851033128470285876306340014952102286016082433822692549408997888774811017667402139612947459902939015390407043904334784793461446209211239388184489713167747350901120706828221810203240256393423244773422208729609858757018747481731019517882947036031638187229207011704973292537929947936076468803680156009199056429849936328971991037067706818496925734631046240721465922341729634684458297749641421092567471739641456369190125966069404957251127230416037300552479194077431638167088569409279373585783182103831185424435985067636275837874682087872771592996898634108343502588833788724743904565833323887054922038842250573410697373529525471990109487981091980817295872577231957954715130766677279180370673756217456961259815950285821070821011988735913876652736153646836284635385742343620851206521946067961439869700926828393622326478473444322056170568542879191984150811119211488675690375671491924262703608686675604094175449876021570985525290346957973443074439602355217148085695427647055332103173627640912984725130911108248387282385542429793068986597442746407012055156789672944493365578839883565408578814116669957330323327197784060991662554038560756586178162254403493746134061679437218641156834350299268786387038453680479176878011076787373450938603218894138049095861613964206200478965128439012475831999395374468976397861644361517691334809162248612982301371993496315853575099953646400177238961012489129463543122783501853322394938980146593422234087980299978311849508121833223168743774587444646285325965627805099148989654213073984833741702479645115522442793314923838848376079099590611808644114015917565572919804163227175227210073364632396975930203286907220293162296938229999821513739512905599801412635236237171052868990531634228668645903800995719180593864788263045076633159053462866566980794296299845798623664917145265282928598470796370340778392972468765629476735009697160655585657787974335639794921722414833284574230344263589180135671105009195371236932332891387465451525341130459354837278381788671198353519877101360252479656794966899433801883331519155582385138898596706367606736868583724070106863736389666834555592332435957323392190260720854521396624676659280374295953393424566480654398765693541632852340559743074783460095761341667570640905200745417256172920518345505629995740937482672164654796209696503473561280791035168302529818080298120763587682639560941568947409107172616939453851366852597528738957955370614921817296157101579145471986066755907603110605916136952690511915995719993502150535420544282675434440055957802133259632711556786983744245276927523906349772025261474846460907682479882320516833197755494702064299208114300990834168060602123182910119974892198212299033245345985496115821896154998839002651562425154179807614456356377396851327092620728895454882069975228518871541210786763095091390782013409289983946888630690820738782800924214257986909965171792225153375985006813745893182854769909451084049186650301229877439391584047680318809546829723553366607397060202551649316780798206032888706222934698250704031898095749970423370147339869333501228853488564734142937268363532135075935707801847144777838998502689418533375442608702797170156447038604135853706834665071775388008215609478870078886406355199936730532405748224316262673294014222607909219799872829180409931020182256144275413650628018945624472504701770891301379929296205206763134853404114333276505109721972409106797920923532896486279090319526285288756674995641810684450098581956242089657081440103226480046130404331659772411745511659055609129409362044509281403281156293068031226267195486933903994026522797854883451155476357566518399386507848865872125513938593990353057831923220167197337599685825993961242865873458639662390442958093174177895367048270456972117226831392713360923687161228149114721209208500178592515044927671441810774416810212220691631017692634080201995696351220005353960852282144133224714928552082844160146467668113212498924165177813129665573202706248592109688647289335310689603181361531943236423202116029386991339880042131768954805011459318743833112720900179726294730947508300730577326683274605044750208920883609804912265801018078176034381472408986204573458849410710725331299184341915379355851051076497541628791237317593079866164363060695929063930554763960199884072804985884790933339034528577699541573340890219841283704351937259758912369275875427387647679887133831746506422787612613531404041932325064331058956127731641333164223356449892494941393311710023344704018054931021780524425418917607421045565576206295823316393277634556954483603764097387691486717569358253143258751638492573626833831213030970531029838369735052116528405983724812904235016082759851528809835048271162703369997614021877476366578554783123333018454184766297427408206430446188931918410695728682951768285002842169136156385111898410093874298774897499293907778497792416210630386164458007487026641529843204050579563105989428726920471725321009060177081718837469942023711998879739449161209505263927600121293102483896107049041674576293673574880134960237235268078521725600437186645183498996407897719255067007859900083843749933496771954373954745349928100735064840586345153580697213196058264127091470751350801316888779407888087771630008225854031321972904307621151284159908235983608114015551937800848712172755631044513821736249207506773445115606982457670416931816871120734979692898624108072309144750036576394369410150438595312739544857957242924710164393121494480205667581879815681945400952910162506921550069544649173079950033685512714049434841329007443314623314802818120501513550670071639969302183444873290317069958703773861717322637415829491124736099901647541929286210157906647354668341137798880054634317294266605707848290642521112183724547187631203230548508209196931766417111348736354111951528613777346047762545390737071898905559998922205036942938143024386090587839861228744244435508526635147442344481712226419800267935890755514478075773068390032090709523483024478813619445149940377131434768127773601855085395547923267870980071961795252466196046795099828398149303838292504583378100408062533324686248944622627049693231302405262820849311612894595925113429605003807258034539003854799728506734577914065453647681185805410608864415419964295564987021485960391860304491589092403760556154553174035691559412996743721844929858391948411328054416584471389196109181993545538383154462484005848026030149719185024767365105732604716369543094479575904370726860894335013143173744894904753564643830713801096298759126762273694043613264969640657595085819119696971959459965972627985114226049120430213241890012541534508266667567348076098876081986384011898904465916774220014857595596517589358575894859949387291548600984553183894112953217785522252107643994051257710547384669287839331678172946605295758193837916921008867350547639207645565178427672416843692993979507913524668365605482482276643896771924096014359249482532839116598455236397727685400627190051346644055286812592858704475360035597218854189226938939971706945287568918948052591030216904332819119522970987923143256240367019292355000617165374579255545659074456030926500933128824006449807956109261517637164857701301157066575358874661681426366536509447764951437634603660985734901125855881110648781557710913595541180100590926256341009210649847121962107908786903808140208234850832646650903237472327075199309838200420876883145731925341236300333832476915023750372424497475959649780740679009249357213571748749156760365514867488280136441474420962205943483321352140434006846752981679933082270546235517630107958278862407971675901430527957646568492503691147781626388389457276752500459383441802137500968227683110318557839839197259634979681992194029527515515977432869509072289905515179745822612642227130710763574348811482896147781734471522621359112431206513881770515198340015873384818379991348156156848075447829917045167883543649422065057864690295071413537408491595612379819462410587143905382624249837157381615160797019984184398007120576960953044854669939781565780518709252395080487419804063226192702451198020289809286489136299425411063097574301050015704516170273213279840865267503378658039388469355564606602376947345087739392502334732594199331903776880616875883125881887039205626856074538748527902941970651148552783501388265969605573407973594132565190285732240457065407958460888691209247584684480712036694374382630392172513956081343738596314576061560218220036006455144172548371095968923896477815951872247248152638701838974579419111627753123192271874843481286883452491564166595693738270481912119633747560844929566658934747935761643833839202550053498528000987775825683893851225633310522443525645377617146789502380319711878735397465797229113869913003317179101355745611459310864764974318921399443342029396079938715635823133713022600318476134773273917700617279014487346334900642117434506210247482411899943579403870506921122738725534923771551960378967388238063758268685566811398662306434289431036558439980838102797883050365018463356037803488662657138442352147432452269094944007853870844849410512547988359136819367917411236457059225294295868789193562122564097713830806837901018502839719086067662924758638500311660879906189746152353286179831231647375850213589597872299001829750386498058539008190546049790362717390511895799091834453548454838490758781289521471877887570113014505836814874172651455384309211864460132386916472796492094095177812865456032656522763414016561135622534872649604404076925874554145876943673571871337445326735932461840882065925042016837621987330975548908534736575406095796617608433479284824574733418841696205595198060390442629345636970548933058598612379920525740806037926592392208678392669479970042450980302076686240148818784184214413336559463546810841990647819176312550128930013796145652722633356982778297066278757670323512517711918009123281497505940246901485272628628965510397263929012370698111274438766102744292260554493322234626297603540409364440560968878435436697027633931567525206735528858650885091747715839450075235523022706477500594238037247249310506570183244334515475053397334836025985974260012369725670175443058518098581951728245437251202827804351700206345894449506945158595519878775351736423036954081038273736587245296717859615047578248848690557313363743630120349339483681365776691233931463040124608299740074196011323052015293088498091931332209486239649123775300274176307774181089490800481047027329437594857095516587767520078480293792821272584109968581943582393714957130635538568047204905561745551235025525786445964973179295634299471176575677437740764434862396223247038205741359143866892411751964540901584904017984900761463213914665104111110065550940383959097138906895051770398632661336408640708408233436831323250092325170985031599048748496823788025745162617663430305971672713810091305857516480190174473336619514026062728519829338402352347206660109070635827842416904847093362426510817690478160010875929108202138669714898140743093707702867011141212324443223090915040069717100630935380084100684869256118514136226327413273014314821919288379607325527210229945644786553438844815344808068868895179232930128507084228626911877383666547432556374375998654826648709300395602387114472761233371158187688120744420609268537498910438115766619256231456806063776864775668360832222350522078456657161770241876430126409976621065482304723106534712901969925630560316540810446278759940663449230594251548504362014670062902202128184578882851114037962736664035246389675714287868315148317259322661558357606708486400253168132604117903937942783772835508999916838970899407834318421474364594505337841849239982651812628574589597689802661313845729328973510920800906741453388869000638130728135351982038868520600660258614923895288192123107339708752047804853323060460326908585316888705870106772833866667514538444456728528356985448943611856426979400906218301838020612801241682137572840374977530359000161281612440792241651591452552179442801901654043395847414131402980144935902987410349864381087258663778313148960417112933567157656337805763942732648310463979622444877743350787905120157546573667672176969458730253913131285051211286220594110606082060003095817327062035990338631524518789342664415098577971371392779726467217506972366969887270295683851140923657853906713547704409441975636777682576777326668342759589948564526947436440146725308742360684501406496997520236313474438395254850220516552209579122873372169240789269611451213547668882952226869195465977911323118230974045527500605629014182918044229590063870329795930286456197367016324819238184190717534151949564793297049021530509683777562277078476653246357352526726310865023594610740934744896242937661750197912590670429519833513179479496658766567926876372809355787287511926221182298137656836117988675269376433070631957119350886873746362244868761431971229566802359699331253592348921220624391001480927677579681361249951289654819255237765353384489828628386822832329925709385871330630651815987725531160281950729362867847575990455106405306001791007521408082947601719668582735187885390772578073104941647881490513768213356451297784440701784280486499045979156501922079603477175437940599299864493302524616923686434254499766018481373533187321637428848763635713272063120002034720690270698657616049439305049681948242280555985521304777210381810294723178107764965349036477206704864280678188380745709049556442338545436785226114389712647795001260877419897862089794690596234491854506701209111185410666270629733244777481161558944679450478490966979665150524257121737231385259117354041795394681857303320121696691684747629224048365008045768628056803021267320251556946780905569471952092514748257477153844055255418538988071496503023843264357989397200276820593694914484483607566330253633476538309128849120752327015250096689466608195766783614476225000911030145045083621570171343163768718887682860410800702932130119952454631008848979878582110229087688752821679927568004519603430122277198476616883504000324337117752192748698127963535212110376647210609541076377349231550737308689649935254345001085077769908838906216913199017765412156081690433185635683352398911766395721627201944976586332644584694514549288933315767421584961017511355166701811668772515700962246252478878187446131485808389671361483909453949898807827039585669775098604462753258215438843400083095730701941560630113845026701556047168797191209803478828656193353976676493316793972473736601378193260687753559688172243251039738647711239233649146607128948601930732004066773797509595253593003473990538751592523730366481362683042460949297404146073223381104311658111947103033791326411836809448317627133697743914162476997815380771657815137602249483606827169877244162878135849596110721363608262342729677871838173702265602749554940976841229584229465226028691060567588955988262805285472137675203337202873558496388979147659617404264540763046019751794603872387066448898999382196025756342895354794148945305421504827886102649763177534083930046623305997480768013152167769607311871504652136597623076674981231863988051185695092689802071038474946557046402612849926997281885736805749158901830088278716787460118246999199746793163592463528953243253604399947182445222989911683917110932110088634608693197608734754208695428399578040688171704585760007865292870743205032777012328789762544463578677479405216698561325168615867911708243993105042744793961727690073189372749365489242714497312128740547820621312527905058848116947391018469436031247398290168089380457781933978265728793649825455761603904358978283052886117059199628659231690222008999846070425016137601327147445462328082517020096598313086624607942419253247411952420613292656584460066906865351951044501662409172838889731680207587546484527617079276239325932540365032687479713455476586039464779277955792416436985721779890357568159605256754814240704461009143945298282559660173103890459507750505002562427122290341836869758325370945452359302904137415846843861133185839253632373123138133874882226436293858867964724171044542067515687312601621300347943360379523740229549520705786365672455390251268082358308665307181172594850192337221641077220033293228433117272395286018351441856422362794699725567833434026471888685314229773123077561807891962801905531543284106615071721873251295611054635774104369788582822799083095974675160092753272037104666202894772201892682700915322062889828841692731091573463610585547804418247928796921817753606685565270626857221017272119789497704385014283575901371913152207731028917078717537229380581901642231507397070628451512311964583389724895479287065578449012940016097207758502127400485250574238105727238466720805181449551664044809973404035303040485394795464245770546195600516470465573240335095654133895596427630916322033540851892724486055142858183801240404711931554577218388789994113566569500170916056679677674660986889875479405443465554062150758727298682391060422139615114282758536013153325965454120927616413965602142500813783362047413722797605287627244654272046365779297773220914822179359520894645676849150560443164002029257929157831600775369757303406325546187108357812234909873534917233269275660338740362233282794559934810171144868645849380278755948305951129540232245738206146938403719955711850382200969128901200617314253286158451010689580839502461974994514801103903214555748168108625992273745559929239668477672003740373401738114497565585538590477321418058013155040432415881101158074496836188364858094491562464582021123709830067989521515888029085444504400997901588647552076222557163592312398390942076668475200763289360855398669730615867007226424544770740674883603820470151778233529299991413177965181944708547273034991490538023752683562260057259498673386055228576374002178177312992310557172475856973543800919378374978108088299010793193939617090814486989500808633270167426267477379247057738927118610713418833342872451595059517820013174780228829229788369594559153861928296343563395076022673399847595893892421041975188717067755323708693118932877312684945495702214364332822346034914167375695460226852956883328543904810783076543126732829041091143388254757226553515678393830680348572548026187162698935228629378283050991235819110569056053702250429245594290708570740949065991536338940271788626667550482887117585223013307246640823690763535059393480340210173544222713519518996126574732105901394679268278501738270275520123534885658404764407517648049746080962423140809804495034388925638900654923784182967612397619809573156659691686506800244472640676197797238570012278207066169294002501048406354275725428424366164107916991440581184901292169711068091010981325271777446215769016525922901029328819588399828241576217793967027863922354564179357562334910325197700617103998598575445277930340409197101170386377818009685384855747962464442684819433704462973752782827825696668810801329977182613842581828690534043817255944925536072767182929901505248228709856043952624842719847845601814456392330494000459322979311579406927605388303247464620985845548339737292546549175474536578861619428641422952441417216315945723657050730388260951146311251776440206570223435531668490615668872638390827386960200991684724368028073005494578354948999993986073357591112179697908882763922502248943138231648413525096435404319504477715664360374973401308044644677625943413914095470877705222105155179492679121052327370365935802269730719685145443873994505501273757974656921216660388837480683452740217592250088689257287279748047306047228434982441321092044854859179121185394916822089454721057814135247211688615663817778568190565471494969304138088814090839066847995610154896905532991561562798608797196166572905281369128583856547150818749599324169634657212077754277929610113249996876816596297547493984432808897963037488387155368305780794348683892737884787711153492053862122568378048544321805458617530970181365964678876920419428807331149638457872245337851484953045048407604634179187686656528884438453181252172379039014029710807330879299056156428635203655065325089244401833795535065554525239610987895936743686025907400517538666883534233413265485743096071932943284633425048478631724247145316084842391867560986524897492547899931066321230825196737294991274045057823811297923588767932535135286611551245380352452785660734135331076591888119377324945379271645830801372824935424373295492630745604481731743328137235762874530006634860185980104738183277117942725429773942758820174191331007755883427524882782460897948700769385294406273476314589600678030279523316013927305461722074076840112988800239243093588337510063228010910105696658024819381537154410619804216263992868061957923635300557951103209355190778182247379779329842609810005523564275945536936972994070848688472859654880097265328232667914072830338710200190840734410981164521999882446818902789906380955671819188344916430448622285108446880824566379146579788292220608434631582208436668643832118412561912382923982148140685777946444059523542495445239824730467429172474587493005270927137143549056149281961747570311773379114961586191403992078772072244969287937971279935436062011733734916985139907511262850728760530758324798218525115378558392067986348942459688457045335598304893587265906956015279541398214309750351762827667841361539607168128106432896578196618623232034519520079328159645833643101223411834483936510264186436813587852243329933553110259918937605431236957155074399589835286725089638582103024896706574776057567873924540038261568470091518331506672602952892344052772292157775428270765598020100504457584259257033346753358461474334752602342654938574892481672104144312735199135567133126540314519950670915652396402002253005307545950396046248674600045210345130088753088437392087257731240985068089169547869894202059548196534550708591460148205630659252030337299912350786079058380540893413168201828262671853949792635731391489490731865123920307382964327579783826511479759159759399175101680452818091700432719075407700995977673719698732410980786822957129308337731261671457367129071767839446340260721791415106084098545187645645158347320604450526288146417197337157062762179328252153496019461748993666935732626093669814575352109045438866115194151098598309286272280323256876627830527978972514918329847848687537008571559074344790836716486461456803347730202497472705227031730403545796891955480049370928151708882409778115154532379460391917972895419712069940676707462113924491764730988464321267577181845319768020684397257524557670311990348769901118890653363335623747875824597531580868432646844389127958264723733646299284473187151009592841250680901069583739180018271130963940301224287607105552200859605042962764918898997643925602743876911189877068129946045285681406771291436442331189739203126118419649212750349737689757684614253655357929890397196610803882924189783805821659237271969119883804432622261839189150003154910395898771615631323541296156057864201171220475817978276081473400716621547511341582649705904442304406921972867886507495830607516662218905725643177348137124786470029848581715572540793414944310210387645672985639725061330750604043856774323186504813720444189558209869503222697337385774780185629024299136266036704698551430018302555660840216308721593407855906413133302405695728790783299118089170759438605337379871754525639114428041934569245388363763388648049809055684670544377700583004173812298186166459640623032380642223707299573535892558345894129030428866377796922366726369974731829914300317889961560164004573043544158929905046603014077345222326071393322113044077897775988531665913669161483658909166782009037136033913667375954075869532633370315743761888180901893963218297830199224500128812613532638051493431522438340699585594910564794812253045944795930151332350546420778788969910445125243694299545836494362010308988701067289942900838349696971143576342092660332291811513122540696979407707865648821930007581704347716680213115639705980497734984507094763410841737407238860402732323466405886695658889323054758446379906429881668778828417599062979638685973936113557613367361114707023111515595617433055287546238763673622466563706836922812112158668111258943905957808218073927463220363959551211056177056130882913576115551079254877522190995957047641669899842087521799964267721584664836109896139706685776352859364884628406251290152781839239972296944281834079153205844257749737205598149453072310429739155757454083812914143401535002338756719720262303205129921396089652887482656993106533019082323428460794716094633456609890214462389816287307097978460571325272966192016598783583455665619094602334556869639561867644085699161475884695675934572657042492715804666195452655994832038508529228089795650230312112836604488725141753353274316262784145551045810524510459265795443174297643377242882247082938111949109504938112015210181424084835600468390342738679981259819456589291923688005985514722485626639488223478411027521599371063202472370603217972931229987102743715909610136079641106266517517509510632537527506486976093379941149092887459831468265727143461748198542943918491021314509393379840100435674055612699613302652610741259244796028865686965651491879213081603184917034478637088369170072244418562579945657451043492834328108716552914284269468914931844739797569882170666459542053475026468290694220303580689015677059596255246026410852170963841225430016910129252651563642071910954189197403603648410643710094433099781611913734112215291199301357303007749647961791116915511872142955354053947034040480345207675997007564688191424525373327009155729037192605380068165338233872703816994394821920294215324701264842518260169217556762999192981383544505461097474667489912761339019185723731204213861787820643728801791668673637438459130965456417687617411708385059153555213005747835238944012133131535187487959663119515428374993417212377948820012195872073596837744750573471530413438237221363879690565532263812006813177213658396804665717310208115563168795587900165060909316666625996483285674950884554616155330075522791723445991213364901284059786123693900964706810554222168721425936717001591854523513976619049440406042376789442804173741518177146490811175663431632901029840833061425051903256795477918164480594453467837763538805425636636804455400966769275354874837522541630033811917903752047111168130665449714474870454417406895498424459700397404860836317398701040540432769567610499431308108265722985486367527555418598051721700445349336858651592097826520183681561813762785641262187928613074608185524923330868666805007923159701887082799739444642552378009915495465517705604307625264065928751752096795673098428337673702729483352233198440908182391711283121945316972078790823293343695139264876008605293817744391191759731135361942706824686075473366618306799299752952372921648408239579002936958872380170590430760100727719645121770306252478382066238562520012538849171974977355249687448311680504640251445076816231029458491497810152545847377829874814858347978237138816189395337934930651056991487902168623807874351871582459620198946714055361739331353933757718991530010931879646393062867898649024343449031524328837077267364040461727089615929803521486732826615689363512500803995388453449440670475991333145399897845826370550025260861436598389554860722300439598665699747670499167924895587000267320978720873603316631380184477007639123934189925658037567392267838159443534768984630858931698200379387085469052706381928121806901804964230702901999895938429589390750312470988454812369825023646963446852300539254193672253857206514270751187812239638104685396012133014124059854585264593069108137252521209060706121858791847550947199957363391024328199879301745717597561077778005518914905572376467969534377930782479030554950145256607671618533041562380248879053233108560890559932930994042418377480422861332054837860130780000338052477145767700156776853331703335706238211507985116254099417238315577963451994263520135858987903318948709413467438964432800981346751300889748278055984424321600777248007459835650107684397186030818160240999660793732219276624055705661931057289190120099133374710165989538993490104024240256293671994419867196247597699999904492446034801007108602155746698247072907502041612437072254162589057753505142697979884876735398992565131216062605124475815512681475233725690020237260933191141041956324597498507567582152310947917924115233990867792727921778010173542959202189526528876506964262259969675063017587634215122673622364248524833989289738282654622685913017641015253365587032101334845571777431317121422292775118027050200864898999678715221015041275752704697463168149498259229275424909189814960751655420667219072672534071845066901609074178513129580354765257538110408042600595027634753213733298046701016233709780728999513064930113689348579722734290772085425431896419009790327525202378112867308152770511065618048503003459043155115688962491041779076090497732827164283388107773077690914245635253028544220192802347735693103595581929634164366354387331174737499706561821414933029851618159552733078081214023466413285062100749841078672681878639996598201733930108238794489017503144651078230534175809386865787324488104006342626330213445453699093379269476253624980161621399040357257774585747047200776883589654822411249147202457596863334957135481481544208481972634074381799976778721883048838344387626291611680586717147601043564422690007304773697314645456512722729046894870301742526122754488395540552879736083087983024237018532433211849243272597694345478723489751807073737289073280430355849485192086158337590489605371035135912170342635317652117212937753937832231716081771327137344089860082831591562089469949567493169758101822410475382253985323760008189859989075025063216434929263345520133568317682525784044835961752907766820502687288026483952851530444822424184221521440563992883978926833752927432767476846754693724818103190242988452383522999915134891425470399634471912547345576346462006352215257131219639489572925580658091594074816758539949171099302313292239256984679148901683434522010972451828503735268380091775906451726143539877379242985634676543508146581724808226969130241115528746681430831185195592336793869870673726227177544058604189656229207476998742806272878397215539558039643544738697857819327019594967224062888922853843447398120678531103419176736434637335692258228883306568510437720595136283734232689765516745966556967714562717630052844666123300757342240587532216568480803051580232309981906219586970560727457891371733574615788603517827037650570781523127729481806837869517791637130015136845259906620938353368514879769003961099501554575680690159295281364041322714048369069163518919302575318566729379501032789674336614285451068122022396665511969345091177865931941093586820190563073860362460481745550111253235127374654158727683121289290258774505444748561533842935184582405674803085311661165911674748812742588764562594828278687827587854562325261685280203572277419465926143734948905477589389566820853067060437190612719640900642429841659692339908858040248227982132057799317931331330658609083762640831571634774117759774833748304822931370907820067451648355874342730018976358009295110542958687382915029911219435486957847655274163950540067877347214118987621287256003737149196380536644164636871231171878857072326197999604295726731652416406177746639848504503758482435948071267991848347742304673633378171239402805254433466846079124311943107128124120757358159021753401516864324902114571462868735970203438839492575382282996548010545197670954533055827900183747052662700553671631164293312945697998850548037463794661120708591975070274737171671093837132708232699163287085134199364999605661646170884096445111893779203070412317228666489708704982960885249461331797035283698040880082111034908043234233355127586936680419096863240339295246545615946044979997315058771602252708771933696521861177303593112502657965803711516909246641881590575844943413381502169689685792350861379301546691780618647605633988404069261870772218811917880610272071004180498395536575925175760868334768628761779578330438028695085390065445763292466301858036612194487616796947360852845495623787498214012984767576812878920869167452464374029391795258670852310822041901985240067256696975344130398985463372028136266039191887450359050269685838527949170882160509305474134516125319729120076312255596394061046126796167908578539681926844360257605323497192265921530208907642167714197188753948789747950283975240779515863828870073495554934604642108352525676654616314034417974194367569991880648595627623921122981521812420153378675804235616762703319404022398858611849068582343455897296434041178055662514281163210301843809259351518852879282828823204320340466545481622980092055295142547630759973056875001022173056491159249875578822725552820684279934136799750226681299206120637259122794081027891600308669692454592753765223520676737878453047844696998567826807949319785515296087125495652122452441369454320806214174706728507278907893184946979745992895575143038496485963217114416606776689137131048420909294364589761270922951694991293576110582975130871897772267056107345690606436212017763767505445987340055253372383738124315217286358438832275793569757039288420892581250489103395658120109861320471734219250931170269356558599026388545361140377075174969842247597469566892433334978643881163572791450551718989264080696607604509739061274780953088939149347764549271475387129367381575314175473700791353868517823959417012613061164974953442304851552783366142423665441585249391959834929115616543343472515342323605614683061301532503232768166203804899647409280652650244640702089771276547816977544885355087380319752632759177080003923455314637273034790587281692761651081501304275138581428548356436203655084009196128452531613854313329230466004584794081890130652905189089905517493378225736331021353827668662247884583856228646817335597084606929942896363323482373586413905205800761850630052651822987833691747351970069597764491907128172610124354245922841578313509946860849808144973013057832475605933657388951827390527882813535084950190511218600455367389480368877840350101750545525104631697230923940098685919621497346922837346313895743240553032612565080630512075240843305113604765136624801484340156765870975052495076990420393264700100041026035952197773958979090488809292599075424664722630677342956472027012470724140273254542632201935246679537751364311677935279193686447949470352219448862122011856684205668214396472106892469926410445778027392104612338284281695737534838274456359903466333526405628139846264155912716693399386962221205783607175376450794437600205075021091420218902580375865239461292880618902622884669684812946880718322678018242517457730574953775788230178072441902396929735522782966134788493438500915946802408648143102822434878731891561223449668753558521792599012240744820497296902413306640674362926394798959769048160749234223754121615656199277362618421425020226291474376362043043145109785534214041260492613782803948286939792925167674857387114852276389406527034068372774964087690031946124943152602683774313892309496443642698176527934202871467107393117338245073814974048313452735987444648290973921990422479771985971008081354972725505515425040834571638545439924423396018738016725408335930582584678682472393483061898091594028869115520022410179286280479010818667158855519399083312323741107325129166791522278239412979276064163538554502926899838071096235628545012558180502652839191409772967189091556862760495115262582537924131816300006810132436376607650887293646198519211236093464838660225722693572759873324234532479010343814203328565334980025059694752038694493162979807952571163319657533015850113843093431444772434324694622030111876942410789742236505085769854693554226004068713892059790961458567077070508852723202391154565940434535834442718041596344563865938420489139977621768719594856930047433347490968823021076768222119215624132529365230229525696694195455668510179586169397935762463267691780048506688893928874250342186030465380127966188733395270165779718874933842932860602392031102437142238003859550253151035719947640763275261873748002180961500890358511109695382314641159923543688928024341025918436012043640508236512276090637282406192111792193558305504483476793198498400164776658047534862231816166819116011285157334969268380120111176676783908840257713113202949631476554235500222107990914577559470745421738108223323765171782372983037719474241906672066731309354860774700630289603534989564668033875947670018648004351519228716707089873433358926180178082411278320736983338002904960561207559962718560251276943023775711407639007041737615905465973794064561554552062293709008095361858191741703292644834797286391323669760238664442256105703826949445483452713436373617600056889478879916414305102029525454380563163765204419043011619219067726559102307452303007698763433175005973238885001617313999897265484095764917413276802583478702545944637320024835827790805376179010922369635340479578220873636854180473602898954499209610717140026870450885739753441014778045990224503385042765042439771083798640731127898194565130429114923468759516427981000010567491901854644668547380767052130506333675295323237823007693459269940672259958237659599654055006587022132162431924227576568556351411838093813889478479859302299679730483266130881266214440689736638460816313791500997609943067214402536052487361861820752052443376040076315023789442082470578100147528711317224594058800030402783866819391271536071908117551367869811616976399772989789243681531724569837548727894234231164535939908877961021442463938731100235319824383109036835516011885607434989795633911352834427031416532452328829094124410680778111711458525290756710052248284636312078757148188067621162871583419513516728655192528563147096361298042120079182330108237236627941077583391796918995942845050130221949364001603962723165071565408181702000390123218353124572076246968888628140857999137451112068195480490717209198717282590906198139524492490139668024197225602745467042157989438913643426668979588323495492809573833360398241181416295523521032387170092052506660374030825755989062099813351159387933649616691494116378086919848342677029801261466112841713597181496431034641172248488408391943007461235521893697196991465795858043361271521245457493562587761135257814073129898385583127511372905979909444223892376582285800205837951716746093160110898543064166739733278354669506016924715125782256489626268533009004434088788345904404092696052314498580209137173008622613673350738040625563602891077718324667906558379483334931621899043704012127024656308955652344534872790388041031349550517810587028561559779075087322828642966565374684604372231908596624818700459605074923279001287102249615169693387660008680828850170382195690824259203075947156982137891757906798457008224278060793066084472361625989338660430784711631130068934862559902534210629926199295810252922183388972535748253251629809876771532460220592304935610060122141771068388806041482851366794348563537331027753335474429715951065101740095750436450334647513628559385901470925581435265447710704946819832143419390663196525945833152933002359369901393694785576081143671539891262331611488945849671225511291530450697190288801777686315228781468490289297180372998240161627552809381738439547400061926646073175017180315181426125652827024803672858789815638743371382980324258564542017210192957563144915522177949273192257333754329664426295730466500220259400117516315104591436279777502409462680895879532416422133147288968916920752757694512586110339707654152030430927207595449422649469634993282938063314189169509598056863897503880993158820402019245727909021742921736918249637973019547649217088460969011408359230583880800551872424192749438540065114717325354346728604159074412524197733806608069724472065861746232524130766576088115912908960061161963467520823814682189253337511525965281221735162725818708801949809540987480067053467162144076644940146289715519956513822856379845523508177308973608134141534838487635789178740585735536774704109581879315416651284259037414841334363080444867018584629993823901000123228730325097405394867332327578610644071133543123182470158421038241829651050338994155902402985357409114877091639873696461954784978092727650357649920873230505403803229350403661962117050477759524703555628546960328169902530299543916510735176486326367645296487079742819882079275099559312331333098788500461031569185257264016394986186704439514278402259534785704655180625151876030131827673244912428496639726773279441170323047680685110796478442243530021045371194437130167965782951364892814024196230726583306685624981212576289852454562491600765002754169865658290263820134463847079957385790939691989248263596986198982891675748596041324184766469416551355132694325477035776382915660853246494036820419212921978088608034497048378812124534098481104428156942643882138625085384331240140172787980074496172422298352426776128064860100197448601889828726196455442356852000371230401634694630759039873156675280837201065397321627328191382535966370208611599069674495198342345398708121958194169001044332655037810636221752548665335130612306826313939118161429568115875810645463038903078704064085018452369554656794150440177066290478133566295357028990335275062345387968041921691250371251293978955518529959203290608912069120001819019605818693906522009183553682439243085296690988935173814266240077712828510141445550782907816546902187512655356461774181149068952038398853565434314984164079567556373461601259484525914324448724896414480387822756477356085077804340790035458185432440455543103341369152719826203716937313359871429296315299754480510748728066253351334294544919975288912729188407128259521043605782400028948690603514651257442129758940973767979992794267780526212888762662565241370622639436042223118941495555682332238173352058274880688630347225580698109948588463458732094170904829863853374569126699363617745544729187411053358641540218324035725442267257562734236206434161792078325101639235885277136200150062857005694425751684600058129549618435808518179582777842517909128713408161684026381696746511144231714307288607401108380511021167978766496416189540430561363284653672722948541077018056860772487179675227731918007025737333716838630790977946885286512993417809096255927153484091147977308637717434127289049159986243129574526351751298032718699892160658683824895424835397986007241353241060919484354906762026827212091942435218192014477643456141966287672149865695212412345553161880223211874133754355630822705316437787698401386441584922495573334820514142947992984770683787821659482300372921613732004294741409263944938484985583914865182754150426210997374582426898307001912240629221684457839923050151240351816281824763700549682077869700140491005665367019056550914790288342965154876856754701507463323863430148982909133987158930596873168458821689726179695758215632933362448390893780169930472795701074436950783999105414487609924061530739397562191831132619153369648950744252379820946318382224889881329156241888188422109943083041053037286717480245607527713854389588490580808930487257489221572175919219381465298748435156502728292603129043425197777075189139970969760455404723962463982937178679994450244980724785280454329527849149095418313061768436278164760015809148715759454098659091877497790539146322109869514565451172499025482427294960994848741454051606335333035360907139044438278777870760335585482052527447357753926271442885373278994158994756103479337777372377263444501833423687930543308132391132355064532331501965224601135139602522680665536682819531702990598808414058366956246586054363793433494254864022132359389885554311549564803257946334182667531697559396419736117576344025428908900105663179536333421286526015685743297640238280918381162750181080171502386036607916104443362893648935481104970647604562658294931413935272348427139139498653887798751313021760965721308455926594525053251353192705914185857368477999357695318594894078607177844326425889950127899913246726650192741837067929048794472340006461831327551786362321841424728263934528647035385114459270019029336166381510487097051331984314475786272571899436102718697711974532102087909692706582859437741392933500237594711708146485861476569638527414650559041129363121249936998661687782213624058830512127157669310525531785505355209070720357796862590151150777004368397402209117315006234434698055753130836567457253970078331075042023991946136158893125914934215014024941164784792518328796985007805178671294250657143623107100208034621495599344414791954675543162489181020759085305165649569748867460951372389035587898536721156410471279861304396421754629616147073782230511833010293633264784274070147286473476496665181706259901050874258413921350659405151925697936549911699023132757070651211973267639806113001073187116539737834859883085152708941539664159584659774760845182132843958609086669372044619757044900567003253911123145906950584968001362564361100813999675932169326598105770857041632000341140362468712697743397235816923324131875809248880843414107969382740907276027491678676085301669313620105481128289968350532657401985519128280465589031759953391000171753856145013668184828774585848237856098955652112169012648931656145884202655637513576725198226755462323972841133907321993980043166453605844621861637917032335488447241227498388054012278067553364004949135729680522292022178016621997174223155473329666729404148172373914371934699331239987069556843124206736628365001021059521841966853621807294333265571718202101303517558819922145881595096656281953503711927184574523906188768192313592751163839334071285077876976456437325772924667065619758183116828369651209256556821689575502189974204080479090725500833248255545112253979050958724480618375776018412963515892127213317842082810496282013879354846507697353073522278971966102805908816339584251238477284992993419056759773409664770754916599740280242968466011374257993005698944573144036502325881156104196455009339603834349240538844048220924689439492066168189777380797079102812472465584157998121520251238894496505662608251242398566637326658387385462090377396537536939986074858548800446418798492319889428187700438157397660299709241032778700337543320322648432019580130600728338108168427574214097449749140661690824098897695429350513591652802603368787603103732373130700953674347167200213158432685014769264287245816371142825974502910642939546533918372427996485352946553340650697965607320072122745713096569192798494006343259893232114513915589675998253621617750003833441490488868563809130749803109448328003922695083073477392837040269141210918866652624137745803950885585347282055508015179704838451052230011061773291662756923623464570433899507913560977845586124561483182055663390757753326728628660214434557332246953395669541736577627617229408067057852029083263085543969464042730651788852004591208769881730939787966439508342554080389315444344132745037916811647674451285823443625010411955344891902225406704799427632657638725239029811250975841917472650554600214922143835719975375804274156065509086695101569517652414849687807285569529461943460184812195535989754482768985925537548103917988671146928027166759213976681127845669382682101670068582674256830107293420732117435928808083219707784697842103980061754653492637652765987272981378497927792237565237387874736324564527641784898757285465799968302754583298504201187718982576926530754243246782332731811521423215921790785423843052286447548184256484897846737081794499643954722093194610630154149894524383978803821796631277322160787000414148035515625453706107397070486780521411122858905290826359035422963209932979086037617840757146847828888216260425862960430108402240648654444109320738532037412791244289272268798400101003169451492172926950532401041117722189059767014322225080494389976498554480942742968947934765665480519980561856947466311337015346318620403451738880830185038103780458932310725128570916588801727804552500999642422997700471891263551186597856014255399676624445265972173482177058842260973204484698315157401561187945154070257925032016762409981944623179935942743810698825607624640187995170201659851419959457100084848509296426890311537614087876859078747100721416729143870622404418280423641169509167218776859781671206398024932101235937247878239044992219055491095022798367103987675323373446935769326309194666218598108799016434118416958549370362696770576667457389886446349119347502758928336029977541292571529097348687796043695057581486534191215919437117661852120432727419860438841635241104162691669866898197182859691179872113924400415731771570718103855853352120331404975761845687128001224445486135522534987940622435330502258761548660166274346915395440885677622136916713461473198744245963279296100968399722628271287509107295542272694949948905968910178671897435289874409507605865995108563824867989363860468936969946193195289383394248735484594536653831586854309979895978836227031135800498127400949467233745296573106946936520868175361135503030952308711563301504024923912144778472526362665204772318545579464374185238188023223460357463351237749134437657369038176925517287980353735961062866744182475210003598553481114500723078705584144930428659075875531824009820518598292482490045009914651793565847585966486695600225853137048226004178645244324507008170845771692387189657686674524259696383269811736689420400295650428959590656382418750055655888172117024942163533853638836014206086768595206249913163287608266871576105835078415659112930965228001216361798478759853777237770090514910017938667812908306537448074105219803300724213258210633305267769615137481280883507777413213035443519943252622838050546682824823961708544782614081886417411004390044884173640916926553637489560305583507055859540992457424406565608779630539650035575223949428726475269650859933999338723360634069749325303483473328758018993957431014925811809300893082584844363652850241696009802842302421352810001266931334476612115323837398499115961008453903805339307221178846156449991251526768540570602713271405814209351612613057903878186083829570420110810075349714325258000177419060250946932192259353252869622508292710140185028443973820368044108762723460799340355732122283812643216953208128508305344587128504939293728315945475723856780095076143851062770856895090170458919709917262278923587209674798086094075281236146919638092294411240879683704455495254135385739714562863855749613203327687318304773176870196846399573700872044491005533873838307547219507014534803284965169337246346227093270548400667470094384119912809148760880876346744884667971275905237675275559299691282851588704710145757510163398765503818784923601831161975657044300319028062399312514352724079323057110741358811795228032703546356799051069710899828960701590305374270126156567064520655916258796548682552777329426796589464535415978502659988932664499497872665540020548410001927345050050758464099518859514508135781594444531344460149261800258290304601353806627723590462545257662295500977470586024833503422351127260120429869762267122527171914596189453556407262976580340403094812583847115275854711532514656075508431984409062447101423347395978930062814806848977520775521728648450333580146334074735151423356979030771381974433969881026948421666588964041059966709715775301009660577047970807459028513964797198288589621435970229615864423871303406461048525245227652862770191928323135260910788467915826362524335238583370980224152098798391920665226085199681310151505848091053082257694539755060192796237617768562519453609378231406758315057503519898554967186071456111011822015585300571919485397344717745462524193703447800889504429482996483262557925795362254389137012676260058024264768769964204488216152199869750753548275215865712105270967724390310550526178439530854626026912723850697933848692280811877296043945287942686406738711549074595262423930871188915293277400123139337810420252184926517371943503093490917053641908267584050697065682588034946921797015157038655986116295506518207419900433593998021006723287687734658464825629967182297157142574230164525835430774421924627183863442604667636024114390132923785481749874665823012790853393693632505297987538515699011031944978707428777685242792544875135461866537949569869096897000869602836967738635665485101849241428231542617793566000073420592827026652585042522837000891113133767773366754535237542290479989600442500882564293361229374294901669392636068644548998160374505640835164841319753722503594713376685082585290015201816342312537300945017018626798182417481937345533548186575194913841905708317614503750972129451066115391941378302704946657483309162742281612054205468323212423522934955397944158619680715310667453467219768495037973347395763181915018306313434320229386638582093079993255526505210426591131686520765807865311049351564172953281889360650875646577122420682003451457794817429037135340859625022160009385638757454859437811764970889308854272503352346134168756140932249806561146630819511611086327593918090410560330293137462596766397405126858180570123827934213361911166646663662157038935140741765869674235904814036034143733645201673108040946804717670861803717885551426250096426594987387806396306899778865161645303947317288659691227156344094502000734272722811850222884278932442520780778822611000073790086795082714017340835575574764544931078855855394953930352846231191659056392988930025643625453496107557010761587114631137444024304016896964396352752973643907300994534229200035477017728171290774811055521987869887648948617619010141210674577633605995067538667687768151791863067024775189292301404205230847015128356647124254809501944072645490205151493715336478900386610972188023975409245754529643025966018811430701432191369546932159191025791900719944777240566738519292242623954635722543696613217923546632958256109212447912878946858176542754563393518788040528486428782622208993151432038016559601020575017033734164459427016181051103605805647178966106638850323519065872301230180278501154388371024554095645826701259873846701774124305545711924075386820676590161523825733971636935371102739112529468028519247062198620819706260628614244265332582047122929827573596581620832547943061890153524313026838137737792540971632199323760938882355842346542019883072733461385926582227698546544721382133416477101301484937181355571728928289458866362161859066930984979622562476052895075156864937325853738508364157250669919160960276887013161320879664223320713933274111983288313757706097574394663693654340892542855076217648223348540692347934947318061361505728240711250145102663915877935595852128166468610444886621355515830321644160412663696915341083356794518531556690693722638296295621936513795214506178814047579437784116067720565878164332964892067735320321805452099301484072780125905526038594697124525398723878327925306643968225576217297919845475325162250240771821414515799202140068155862312598586833130810467888072017392660120689288219196167986550140595973268236064507697237564210060321621223343544574091484409757449555295755921638537865538581437237465418425040610253273604516333932903715785511893749778143253554873310896965213899813127806316985174710109310353868453431382516850285550627685078892581055359998227846054367321558264662213343498855362211059241600891940451169965357692045577466550909890883294028230345124177795428284037598456148344399517333031540051021267926611315860436297288136552775439061188084339738281876192058029975610524063567406211935652725714739601257223615381777064053032143134313397334390281808263694657376950103420746485273296270383433200267089698880588098839704492269454003195877630888723341111979395818148011248563080790564355176667956946400437068299827068593565752714186469284538451015401805827000835817365068437363527645275324206456647714920731278416518260545585057402926151156971831879608200383301034416997429467683711614321190023382628833857700763890181806365812558636339932369001950984904619572114497767313533192769083878548413424568022284509402232486674051846542286969606799400516149246609625971474757331452681977181988876972565122438595115700273323045928992472352986214550323876198616389455702764438560883763041551196379977984338816906526365659598953717382183074075838936143355649940525735966100843360468389333276413443428909929862078483927670644325503520517074482511002341399653042003586805143850855110566632263466917088508149223183722773271444949994252214636524697895356302383946645146902862526917805437423548629472987607098504312694904926738753732828281607220263500600567674528072605662335967980710416534725711894361438134608527639485787185190118949408292335321437907691237116566396518169598743571545376139579770021913242624313373743359978722799703886053847691263665899517103325935303814159270840126379135324542077244616912103107396824121065810897172403589098593830918869626315061239985050938909053683627784314275776514836341792413614392916445868352360063615277325125786246950173238596313692071410644139226073399641478494424016213718327757043010001656678982942388048932206970887138209975657569832612889882611268510041279759369510723738953944097187682343050340394347999315543059578516778520092829808848081394144845982822411358527587247500944556295776761820735735726836416167711308255262526061872561580082325545697706191622950210889947221958516294029469152632932746616329846060455548660181256762628926401683609311940733067440016339934039333891378229063135895189420209725592330744399486183364071449729872379876057780258175600857819556498436774493602935622728546591172884121041540606310705875858569009730123617718762006065318729837799774062684189038272298398451450455500674293158534062863795832702563263766314641374196117005046213454270248228731461462284149427823913352185203708903619428929920771363360467080518747607988572031076875474301662056457837113195072400079704863596885925902594871220752700541248636937466873221216874064558948085601624202025102843969514821634981992242096827656725288119525290654566312344283813695502825800855043068216946906363646019304489819711694320278330341410425881767816629937371532005287384300907862474887750649837261909066096028396375026026217936354522102615864347950261826847198015069314937397940614226726914481579470490254199280217844677558296839138606373806445822605844997023935287749528223851471297502441159080141738851267280721618751370456180433277524521896276064678903159023555677944285552388971771486562792354532708475299998714780452458366809242103305689540799480148664407035310749609990455514146995655664606524930454624978764871690007883576688426228948395041403811483574772902175996132779712388078308062221914195050861387633184897810661560813361698524831325689229188624763722303145218090564915445864791868594120073951128328730326841295480561792800061953793206544174990124685549211287942214431661351977664543275054710075241711699029271523650065003927339105767983757134252380472597253705586161715957209296688763557434832540624544147156836160355131152260268407585626456596583626503000116741230327717731480509150587529869993705594505667082322777853866757873937460440967653182163738267950450781986416148027471397038145631548735560673530471915765832465335016478228592315042125421803524645705798337289568533473144620919231972139563984465541331879828554062834484012564247585077103500501136187291229245131527445056282163239477735422791533075631776340968417384423672855114736858293408759639836812140932687337144164367728005567686929311436143113398941494023416609338749058387982536584895222895191166532364743960412037285117233590719236151724283764711304154617804590658786011522155231318371533547839794923227413888060197541814301923511595887465851255293876555286379587822416149097275768793667461945588321977243974819051919393866250009273254272130160499545972892440161507087610396095116451408449828967119137269172258399906016905233079985985221753676734370728859839764382262772955793752911780748763293849932296831246827008930039373950967390010338241217598231542649915124748555321791222580453220506438053124792479618834609856975174581991112106514668491223666008326739534404131644230828750168798355563740280588817206398506115850151245661518106014870623303326587076127670301687341267216445800312538258309082874788185189816705933397469789028761110183299546392187763357382234051451456849134772878208312385472247463074193884681004873642173884937033740917919796403591952462919229697217380682878353854630466066765588551795429743296515440451427632153835749486659365743683791021006777928444904996104844674154723783503103596032499581301549157620863372104568603730494062002501328523472135232317898820513570284454645450902225844073996629049551331556321273941682340071580484102930773491348899904281340876999471971567986741452759075586690300099809162199057912609312357316618328344254347594433565406431848740362098353607006503777128885521866460259088100524671201428275258058432084840455906034333540972372569459152221257827123953485429307946250857952020143659612081278744879041898165365025501859964714795938718801957747369024143091184821287980540236413586676618351230813938382097031030475938026972280065665223216503727513750296579459716063302932961347924046489531018379839801297377104751770272291803606185755270770855365485259131032843021163460144904705225328909322083258235507369472109501213228663947258101078202227564800868770667143852862699455938607901803264635749313704236474182202636261077848349322241512850602898412024090025390668579034052138056623050879532038758037881700278369190039950937675490607367199414537865338733119583046449092266567727659561804293398811034696228976328520728576129235415372828669118812810290631512130272801006982434295050169882125411900265618710084635343986470890089139430749882703220949789638995966580137912678548305506308699598593858036640822446421795955627936061333560180645859051795871426626916176234361082456049208442447734853710480024029374975452043959320791978999812971044126617686808046476339133411949971932222111226496773817730296943222109166273571688495260990242890344249552747056634891752134515099238546045937693390591576531488242514245072533690073378746745774951339368201572872105478013694762202193842542682443135758053949954445185884826061096565670669619022818078480276497057922351594310469230150174875917503542476600551927465621390639251806236184386989595947236157955721714540595691124662993656000577895354868112064829402805003817065221618972305335458754776408966993798725732151908261890922539279004309430362097142817431579936805569588737293754429751374742582339579015748099969695370922197282928452614268159470729874278609853444788356893477835120404167326524637089530973819288674728561036768812922891490784546086862004748552144608120120416821713068004026194656597114687422692701226101149201201149799224009127671890554823182579146756906608826066131574257210977677567247841244371163844240287955142135523480323061258390233737406175705777587005220829628056031904999489738974889255231256382713982502890555714876881465511076396018473793172396428837917584354001765368136756454806205645473342623590738903764565758241071576696149534899230072047493344215081803815826400815590943780214458694282784440254473463568058142035593194834795232617159264563676819712555203364700048686247250391532386630721037333795852717985943452309718468704615251930017756129393021423418846703658524315648500799246166132570804976086895571986282452442338821972761732205281516412964160635393060067475776897554267185024375150854408114410087300839794115148988911291202454599457922504564673130611827333230206329322064786836209203102086048319491844311017620704801242767335714574492272556146979219082736887507929941747195096208822159233885871103101662117143816547840586347984518772381796879994198137323338973550680158196636657740943126074237191877895743474943689043959410476129058607317393725750168608023494128171334491594802840175946642911109967055033128657911443970305298242302785826641594835378434314042672316775861458318138074592273719591771162131778721609069118751305333736944752422895953689530101916924659489246452264168351399778412166481980137965549482239786107881881162990457298111261684697273495121006962512840621473324108445795535602650657795026880673447780301343561578049715258749935874187593693324007061762018023199889300400940063749083714077618050457395795142165845697372600710594367631309306821203449447555664230593165900665232290672061587824581813286290001299413824397841465134999220022534695347861349283819505152339592862401951498462074375452910004277166962772024486372496939346380711093387705297605984929088090335011694852059657840729233018239201536939775300607506911767872695840256541921942473713573029996202403348362040043202667121657142182283076281038575489406760560903096852358040338737436799383384526175724423837270813988697164954740836007665088615241495318823949384197047616663152279964958413761379265431214642542357770376600302970594277328411827950814842191799679213187593428042807892844996487339618721532374061915512291790569713811407987882767224906624344029930622831461895253084430152184581688073274360865396270673562054888255105908588150231580469273759494550305762377166122314863155713559724684819813485647613449906880666045870482857750935578948423519710054984007070577142525981911997897006285299404545581771991388318149001416155936560086879437718694633061563231629342672785283357478600251684524751552677481475078234288959824147306405906457899809755899512423675437712653236288368297627242985839558817038080208150983541162400027162847922777534746500704853166935521520995104581779860974234352616428001443301039334933299292709586197537359641104017871787704755569756614853924222210068255484396749130871419823577784560957226995865960185836372473654256434001852103440148450526658942970279497735822810548023834021616733237862826162751730655861847280877942569541898764155474234591058757111801952293046801026907670404161565240525080189704786700913720280424352074784913313707551556712558303915381861623879491629704881511432092992933093614342974037296237750861134151557989532084333138929707702813242939519037473827149596050289986263299053924699914873473417821931205572547315269367047203145347846919693066779967329246839149224238402408189871722916262399205395263349412332424768000815045367416665181948056887704240985209153910830017172803069155473913404573259747065403563332966842842489828007070695599814711625647063611690338915547947746600867962634778335673293575560540385638374090876170625094366180014122365280203330169281045738499389500484816251233323362818558361748562731659160409140720032217925783118435767903668202666410729396450889338733245519079706861972998428015865990458690700807201090949069029398315676213739511721405551638772572587813301533529059001065092330670370447491905951243773166192204275649412207640341389918918451764470987660119635056125232400863974139278151777772985204318533333011719159645998260354063351121896965597744841286886069957257636405757722464097348267609077585845076633584353954932149386356347414192996431360428643121442141238522147632072721094539580425328263473033609464684532229301202595333765559325235203579353150136820837060873451210428570434947263185629430377262025684419160212382133892489002119345610347526073267763958236412218340057121408826310378970264329115284280319683358849386684218384132455809318559112237912526854691890033518190065848924020089941798847988695145580265416837833306486244091071779600090770292630829047898254547152583824865519119011926320070641796528629944254160194654754384035338350478639921700477737190338475379141007803825060110515259893804725393073846774583430504355301716803157573413070650853726457502180551574466035010487111799870286633426066514746922340600356884664132280829219347024516349683027114152846476729625151069391151781558326753477555609379956004090912378447871322161902215662054941978704351903918453850568681042783843874280695763574178315705952423374851282569803966167574301265656715605214578661942388400376418346260951325652855234515120110343896790445308077083467217844007112848184890381779607787951512248794376320193160723169777251950849600095850286938525664910317664417127661598269682148572113861924385726317172258236592357136823992231071819755408954875261986321992282689063103696965907516912678938250932668526675974966701277108933626223394915551078778426735457790243136796328523534849361645650158820585706731636339844888129324226776380869283251633166931876109849863067514520511798801277518776972576555343785237645153165714230302952304568364911501152031825974460436566289340749070160412657579298586444954445745276445161845544544572936813434013676532898634337861896470616079861791724474802794802745676122510970865285339315005766576361795871465223853763640365417568607041248162899986195823289921663196285992198111929118363387786574261277407314582523139391353683550123640717799592302760548370352794441557805772457883204902684947036105454050834374047808441615717130624002850097512151805007471832288437543235069109405100856780069056669691936327994694473512982930934160569312369383799278732518988137263263884561921672890337504789547213302541302444665477618349642735613347244244618439622470180188251993795218555839948400505517461373861949559628333651011274402031718804850567037669376608960386806638158348029985801794572665158482347920904414207970858550039533207230666810715547850581722750871467084064223501645715397370535720549594611482265053344179256218840757231721690254976916509315483270876139175350953894770030274142783125247790747434661503217315401943302660381330190874103488969775952996011084469958431312280587878537743102177108782242884639380878508233615311536221784361613691687128250081137418319184292450502610219137567768840951363744006005296340941273246682890123461793774509951375738839907482670369213839779803403518163179229428062918898864530573761392802901825517256595146758881039990244420730661702993993448210783675570213257606708167492808580308390689915776311272696545911034279340843602222393821040702426830581251403308739183344008722664540282962293397685479734989455846985796105185193571175773761487714417390332638138379227089724758989259372706673757485148261869097652465525106027364655122284323479546333663392687791161799811510078512464504702739756039097176389663118175533225025926458241066375532597849859231161734276916375030542424413405420628653112230921688958147649596082326738161857623639561123170222122301864740738619535030974332500334138119279689560906101726963395156475627433262277955615212003471670308909223754068781254838987610061196871351403136564271424137345098754646796698334441562567615832463727469056187243677918531596182894795909189476069449010746134888833078816481396961680969297825892032091066757070070580995913715167057587376649900155677444361800994095926592201258882814029382886102275984197964129204704459813044274723410095776045016976603885027549386762423238012930789514383545683352567730169353333714789228731668011750861254616898707645168908404019582197239938614300511905105404481678458377341577872802926208017745800453241260112363383975453854851287649078693985136804543016464951832923971996673449414576651451604011089501635352965472173284245752163298649212229949845116968361398209255989684473265110761118557151975149723767526526530931129791680898291769067232676197684835995291984997745507163017815502514547698165313472115170920505298309284149971611236807665214592376934364991253204990685015813731970691020058075247830645360513319559186820395394358611437489646883198064935849521165632006090781860416119417741355569586574511027601608920921889952849426248936395208419569229950875882503833913479992873462185754032229477436647464931864343374389704298677618321531218509138101198250483197786131614766292794522963433063311770617099306679105178514082839348830247788407498518092483426588308746405307762174365336671584027503866748306485703568973877340262574376732324642442937853553730815482373166677051943130410039631269527326030539101745587522087137296968862483820261036894473305402090463677430024119272138703553043045084777465500432093245779043588476949884459934941929309727145684043679042081864522949426159549362480864508447894706278812242517124090581299937500126201751299130987823233557484842708999865799959359284939138376086428689575364066880198016920536921413424554471561147892076369551288258997129514501560582867453569697371611279459508974490428189018435505242936230970725379314780861113277689775737789162021814285402805389579348169771615979796065057746914152374144017552943823239214327724029502665407762202656210490720763048018489291163001439836093447375511349945247835401472389578229733922202285102386444589150803218392124501440678253969661063866342814486323796969629506859051400301710230737077501406268208699738564305285450957114215990385201369477858483461615808836071575068227107149047346936337812311770053231076966023502359925489630906736761277038785304898191151303270288214395132556968622631637282731478432130965548096492424043559256525478086856610286611500427162497946465100683750742247315850422550121985232631421362383727295542398914403523788864454023239013941356418697420684703927229663211947885717842950999255303800251160376918163104708810567682009264549354006592823637417025887369427851987169252608651490907787515688601820923205607127848054742864646766082149235079482147716254819136414818631739030153288457290424096942359019291959505358408229379028344674284751973475733481071852036094184762689644117744739748238398629755368930493515094713643083638533821573077173982783403615423836424791616818663337969927049031192282223279583380494041255216029197406282066428244280093616476183312584306969701574006381263478100722294025584329791450793052558782083047011443931066397610007645634277051512928260400752796347520342628171270398034522226989593355740364855047874384594881400448928007909159018453567185126655680272443352119245477341439444140332420150717729480788824094000811117000969515522994357017563521741785637271894448143812424568493005646060252812272117419400705565587632956699841887441228518331074980908971850878383598978968414744925980911477232147306078075070460183887886297003129111942665913685501787955754463540744928467941825076415133785902783168598055214182487617298277655381271316352453537047556887615388585505587001536647084462746171836201192060453950005361795388068919593422255923344850539247481469590119610045254513232535885834937312725257363009650005926756724500823756314064635536436253662803268516734013300382644694130788265461053135406734769819397871128154756801002269782162423245086475007712691910138067788341865090439907466425569677420473297553764719022369851428462557050900219226637317219407080964821764889707671604963201882973450746591319831420576606305953108982465083572814555798313877429583717968889111387104888691796006559099098618659289246355837901310528071944094488508905169723680677271769911473513380592727255165756950305406690198817162092794253440151584657642123622220860017632408177621275248192196496119184924111245306623459041007838366825383459733876875433191874241546320324438768141409694237955712484912636194843394520389546875531499505950732444764928489453869505436502957858981905496002639186721579367029469988553133901295237242602590445888544365319214534075748352759541329138700144167001649431914796333510098801568037572736361013987778559737493277735341014220627287342993856158655991222738182691862687554563175626909598500780009360079633746601287339294074246560270311953440127701940935450935717887748443724983753620360305596427819726502117902220206759848248161821560363184594005982690453894454677585330325721639583360784828290863111610669053919669830736492734680942859085742442538911984816368023657970554962186592185000990320273979125169763948891261010579896088818576080631144401030519089362011892500322267599962482986249654315282812416487863940191393035195019019202080801197153630434438341785497715348816520504719338922057245436512072446379739887906037389146019901603474670403820769744758721575199992933731198930424367726112985943809507627224771992722420978607554914907535682725987744874004674434744877740452389450656200281937840290412609130189177549037141303311736369444817853492940618677455542860112384890916493659096578172849367946345485718011866627204086246061252621934012104422933522987685632985644019670755423347902352618927325105073364156273432329887471891985204411870066902507417361030988559508805399891005249335696413680557996095169612264031673254488245504810883428655586162542121971286640433337551954853962245845307386287332214182002660596882946034923661341191036411735269856209319778977580684095600310975976099206008920578757753337503907505507567063387777922960504903871979616674873480670138130206836502479108805719056706475045779051500576188089054643713601190155847931001351171241162832726741052463303867645389619481348405295120038923293599356209939790793266221597817363655151704954262292706893068972767777206312238493563633858924927475186938428634317639609274886648609031508301057808500431509649937842391792979316694750698207884009542132409794198274229397465212230750321006512332854525170958809883008508821088942623480734907898190630055314739496075595821105395061612218362492114604130359199568672682046535209919077466034948672063538163514972733655994195882507806765262575136129992199417608115540109492066299365127180337913119286768347028257179798777155640310367676817235724040245008204810690853544035192682560963402711287819370712549018034192618248416770942575800107027712209029753000595907563851569884938727391351330351092132241389171938001366240821450173962969688239194712731075698585839852811311340646210632788391467149423993393078612076404341958765628730349788157697076199282483429325408347365535403225480774019942784629317734255812514568672574966781626795162393706508010146390469844953194791334598712607313742414921140366895171654960117910570556855178565567949856416064215934265613740927112846136764522846005329246868812626513894184401030810607332372345251823778508563383212192681910693971523100969165656480813620395456877203313552759479288406030705157788007343552862176309444675742054172288809200041852451303680921386586755035213588849157628521903711248592985320542096768283940923902748829442532489512212117552714677701630123223603565233273744263673415076229655892388853730046153517756453935727153680823077980875909313293636735850148703202025728418685203724177764956515951730182192058878638551442361271229972826643264696742850456257131089443737620612453534054906485810239880363236078048682009631474920862482732198651559921391488494928177813914557248820309126324469778928875573709811943532010414692415507041839900935930676248412977053564540654458842674329380986558181769093338960602737399663765434602423814166105319693147977427761582644186333721138957247518160569686944361517738497251033048865643417334695303703984327027527831492501466925535712359224446577414727073060450889402914896384085463324645374660628599126143180736460342275139420914257153490399132719763330790114332856303409143097766920719836948061110705596529998604557534357972319157399695491746851329634195355763411259581037667923430035260603834795100314814703378291664631087427386473829894644336552975216630590704704246256643467093144725151434342531685716762956265148508550663170527718992302554054536055640150949727034742399270640463180990566483633992920922891076426897495434347985562363187546051536329610891937666415306038484319490764041009503083545686294004189963428221195281676852738176329051930252364109833101880084381384273620548522697834253065770768392440997071418853568115654488118427369999326860248497856368459272307264123242815456976096526846130591174238850258613899988829320154468324907620065522448361462592021269252554805797959506071776157334375803971544192963554035027210388456746842558355505934414665460992607780413337014397631821837896045970258033818751774057560165037486041051109985696579855860739645477227369584240717833998599317420316236955533024035965285798827388535420504663309127656307122325805628483292825631923851223826232514617696515498326088003228800324011669136551693236519947023480529200711811486722159205319534324090116205758919043755625399240112836489554575960262752862355942955311250607152647265368759088689302108173814018295036621392376221177323830978793624667644339066254986425480336109022045504544006329183492049454983354410917332975811670791113075881243176770769925259235731584776030442808280876497071823270097791431801911221580271816381324298665464506614739704932189945897198758093512202567672873973148054565877736470793877823098331984904877166818462279818343220524312524234260913472300064037696822875497352025994260417012091331590756811580909420152910735125315082968375846249813341173533838605395027269598747431761978928430927090927880044887812231951524774389666774003718518273742524522254545720460464191475656012365621987656820079221437687746325675320188703325797991916848514411258576844499404845257725737345212496235217832020733187477794017450439142651260488006972808266851767482078894494404053378594504280730615739573280237207418444019129985164073442428997927454690647654280771312655595440468195396870886674440177452142495650892396497619491646827752924168828233269276125797359665839590576253659304011430700765504287294712367015625903925550835919762542473123028554437297009169523375012634805081458188384260245887307275884871471647049602478625193970129852866103474340612256669825292490705332873305227501612908566136015492838660650391277288690583774700516358203679930426313563400386053404634013405478549526989223926689454986350164653092557823708968019712696361485631219159405180634660407912946751483830344988497963382658755325973525652833151968410362387639992202257025139278651347955754897927922480544865445183751921244688119061606028549080669609363109602631211388437290692733178463164639896583169487790614367684605075549517244552613193916814622117913151584838283826392410622409739054814263738121921299748505488677087852060022374786430553515224575784945515778601698049709353088912406259395583806716149530269036872702775069397276524298951115584095504464855272876556623679119620130282597832667641578765412540044549127179519777091470395199795783253245071954812667082151997353432494228974665003201409908928294545838680731775166157962201563584889271158975241799704723332864033149213972622121499025265491835540402769582155541909490863174743326039768990259251504321882302268671926714428778853845522565281500184882370295694527736910255721291833271364504314158920319949120482961779399986695048097324308356393964697954191242787015912738378055337115125113001271388637409675503753448444653524893316440062578715817048700031413348370085283118485449595036901782678197528472693026460019804069374385624330660652713668642666953657340893794260084962853386633791982368128864972777022658175300817777039531511731723043449800843798855243144335260790567886847677251540695017367345821548865548640284622632727617816273525520575079292313750137825247922799024732757468386445722475154713428418437600658640469611715532921305111315630390221137039019872322203521437603166682630189082132493317785171374756120780386267674814047796527208793347805388883556681634507788695128041396290013206663582132930818992763836939325611170939867742805639089978283588441874947920124478030408674455091541672479331536173990544582300783217570416144377694214726959871163143132703406754705441919636181651799195087099103733202354939311238636910186820765063151149971381021524141630872353164900487432043767039113630248500781390930987697209290853871503437899797347280735388587238773964515029183223812410995167909034806341884541426511868807462319957137466995814908208410175118113529523755522730143765222967163557567223708817185792683619131024024778516299315562772350902999254546139297367613497786283084252622954224447694413188093484212397321863486332790334030997416657139572261777532452665283091122873254931573420913430203764149902677323943450385798809365279095323419426488548449097060198410109883043423772514353201702078264505079676890202925057981437775509483049757591845851053847643165006083062124989163201657219700578589153980823364794427916295890791877584399119890463088489944684113911397855048618528878548034474416362026083010862322149028305694891014143433626494412482328592624029106398589375594106095309473976547056117703955676905889551793472471624517422372093320224025034256023703222215306683061234507356441141707912178450298439545170663943627528054753352658735770487855623340587359286171388059219457726623046275574310229422105138367583410238496370088344676852969535648556351720909507308152833922328229374724194114574529539642764004461768735935252362823538685146513274021057862463996249575966501569059738121841656630327397550775217483938350948804489646140401072346257327076695230583447250069723289639213324338409574540422858820805101131749647714214056061348576196601247090261456816136817106387151219466671572465527999295637133254138232816034551180853716179834463986914360463354007424637407221724350316299071990639042147222522409812388464222252131284697662576032434941786522793266274295175173098510034371367862020980710398007735348762896592978049153275582703658338369610408811673818032325053042090959513447043795663276800811720788125516136025244470234802658122551503224480019232355334161077871908294716262420247021852248832265545057395058222787430494567304437221980494702265085818000156344392053986651190627443869143616663919037707419049003445608764923842153355732605241490371654992558582660942199028107370314714057685800564691174564346284477473281937515090502165220317534687245279381827383572188639310148859069245249170376972208101033383540353160877380251297217985160466830904160559496619968524308203869415781159918974904170786720351367841669024321147976618484176352318667282806405282172294075646243411132928612938081623739108684998900679446026211142098214722112455528199919231037774496996038567794045196089976033339775818483245710256587885837629590904051821754993520066763560136689608454386732519626517398036411896681477261259315216876849694723217150544445286143248471006255903518856780005747777773703283509692144151688528037947553392503826235263320806544715333139824090327582229454887347741149809033643596130398930773339601189582881073413756676084478042697362230118245313992546882186974680590771698734165192434506710133803245168691225349462674181560819346471552480957266582484384753132445091719818232606523722342151385487772252233462904825649028780071516532997572960808553171495566974005372744167331164006395103376415291901293428543881574300993544575917407103668229827809653763850066242109167959078339274903968907172974396489890861365409734439817013381032364804019314891393162550021780975937324682277011184673500948196153856881425137392273153929391610075124620728630060902744347859523488939021804075677841088428203666217019982139879986388835744782586360475601110653895020273930710986415035091290860827632359256920366478945016107114687280984868072851311662882684385934088803996985893134175492697505374871061547563059571446768377960042082291771006393140332552496481682514242032667952587143351941070570498984547184533356524520513216152170157418535349809696644571370842631403644660540112224055832924024018571375621419383055546084826098025801838928836195105067679524876244144288557715825255623028282032246330638288248715366822855584503800152009837453346761737958356141462722572144650185512989905189758451683408443404956188767782298340345387141314148141570159616409518874706242032858526835931539675865836496903119058299824616798841222999467231646932114750882351960845041018822993129946573671492827087907720028720722873024240548171397669893266943408692131175482945497496102353296857482312467456960603933027965594355146861264924147285703787936902794540547827476671257636062409151605003642249614481738852406629644553993464579656733276603799721134557782267901801886909954081369845127810809254358479120388395227165297561403081982927876966930775034852638777627395387317960026468330019868603505231049380882189126138459288786834759423959036190444299163405188443345042562514418362981025484277482964278892056671776226968867574503632398451015026813876404856339209700778732279866678625167017935064784737986465654333578598740424186488092158496570808615987383137672747495759821409485748499266349928899815396074119553991855135703506559098106786287254108454639688752459429020878296021409201154840981833018513598330427708645889043880684871205253282665172855000314830008236181433553159741118728994683559556736796808331139540275151522088475232478051342424099353364539341605684969900527182723781192264343974249189527494325136789020813233399004407187772465866397877473024694959153998936614095887946878108500618705166857176844674761478450748309051732500198480296551584222211366823193327529770089030101493268292998087357004430718883113742218339656111844784169892211092855592597698728288183797680898195259538169637514214724857243507151383775883415627088400462877821341070442905133018533039480107134384323799929304563190221204131464664644136223367418632088576268785683223401023071379367542442128581371119134116621652406853841133335558876602486745462408363183795811894092317282926629066839443316776746648572851741329393091155700544671904155913868603786218749423354186603408349450785106783375170643302318288457628067006983156879496692412161079195285113103717406945700947334665667902377873506482565808355198141518854780843904162338779313256915059923902591461608238776654490664439222432953475388906812301807451564602357638760494135037000231810686540862431976523726150072336881123378383704472699618663805118035219467824599478591853104347880105385996861913741828621420753536894695150030968399178308132844713154679495492393771680868408809763862439800967041506501279742523034260308940474976783753420787912160507327320237586276375220727894414630013488953156404272588809785846369739769787638668874452851995944406660467940869154912942207715090969014231568630419334381462370507805116810107449436229166222601577040301255248365512143351134537721592537161858958211957456459735401465453588713589081315480754361651979503749184670961318396371049845183754934750421797559073497746592028528611119193149018289568795832649452310750110604253019818316424988326626205218203281841932706623219585399678867492621167483406617259871341802390936248406175813319393956921789689169750903396987736332488692997294956273716189368815945620806073330492645428496871471261892692865454531863149321682761103892487835135824301683728308244668961364481544205016311639264561974208110704836635725434527150104761933642415649703112286518321986840002651505934887832764828954293974489351063057190446863251751718281437685697697093400435386319146346516831681403465237307219808019390954467899239358503904702194707249114889289176143193342537404718295787904352199068776175503746610044435059790858455888299723549148721567029344740615593201958624635889002673105129931004702884233020867515117839107325154574299827199183553179290480006249631117489847812291521457197748946953089259628349387796188016255080406071019225195620555327698531274467028053055806015157271056704151513330419742210291806004994357438710052766062826209472278488600370051457927498483058782168929539448247798706374379715913617023020899340188737254199320275105514341447785900409433769801654202376180822250424076741509553995498576290963027524740637126543700620570359451512275301966614269759360041462179126459249606276581872706453227858012795209501790318195529441446274417505029407785419094266511343606556788423512541528480085218754119011519919238420956139136368694058607608311051611770941172842328321254633943970589054014888847819216793355693579797630828769634382465971288375673566662214945596771956321387074013407929670349095579882299532859929035706959273172974239444151783758858564096839088603327052593513563283466938783588070669168615069055382042123533009148563796109488791865323700789123454846878217999000265366264104454178014562085088538682154674800421283862954527570949748299419197613815447754083816351256328561720220209464598152968555877314288914445249793473264707030256699913870399885904406888492417935429293502861364445763481009953195453079200333382427902389313574648514346262326376376675623662675120848828516357858386430322791681666373955795523274377725678449209186383187221664358883030560716493764730043476709451450678967907381796436558299810311073274287404489370879774242853090727691826095999026372086560534994943391928463806519223701037818220175197284855013645199978447499125904344313441313316364950169674242612510871876668636841117567086547891550852428446768658709816036776475421034528606108521770320048249074493014646861486129617848859844877438320818036640259807958443889743480979829907114825835301830082363017333574818397167709451153620074012548407577123033254065328186841707375452624113051707307323956865514839095879081439499100748648763288567555140786049512265837887443439436840264144793603661450688532640423258978034504576356262413790088940128647983417450220753781383540230894185178589870199748953262787370415279531089563998528076981687421038664997109310084658610459615156137751729250885053171192940973647095252426694001828966837585788063263946816766357565581843089875823093608481965617670836597076834807891689500283406825403142747863465042889924570768369491661617641702769719773633866202392808322261366106381580171231543893602183888241400583611950620948427471074308195212916886000250662403341597227207323602223104103488126972812917638216718252775223668695129466015886762148766646865604283205572656080052481098416557350992452090934740964506418809820215916130650954871368536323546405787266917409663139088595159405548366028439590600862681066575076153590237924288150917840685493748550344234588783329875906018649285554668196289707919650166316776312919988216729949509607908818755483776488618268234051501350158293452560620317153990275080922861753345199811501946120344283229209304450417073112109169785831221814479397391498312031351565542106926528950734530669609828623341228530544409176964558213325586368967332903819969167406439610901346334035359137503249327108743853471235042826459944528297278770501398929665023684774398497226726094294479702730677155492160155645692637698185905838234009643238424219708509981562143309078355350764733061405844580004885755543944448555507365740385710158853319713128033467264539278453978419396075986780036868708767009276169791574196264729116343854827694544687926423366030562813487027389329564450616102978334511938029239018584052845005869434260275535811607864013975373933324307905034544822535184081146450895330201822037457591265410455426180278473261055534157239797718253109947768934758346314289167224326676109081447492293905644241166151782872091014629646391923275307220951297226651451534396855653758527000284603345256561222549094973395113627817856236521917022915840952247975770445138024525896763280117454082832137315353388815657020746420868564234632050756399511363623364835357970703410984938629596380783091569367354939437405779350197236911517290754416042156051221711639428596889578777511773785242536020089456905018117829764718527125850650494722306044325108409582582420165316761787390706923553126405360475780656875297322947006312190521184814540140506173876433156447914722820321237417959124264477434009785184494827387293361457287901953826109140905425923301455168442876044070019593894611161553934437283210270115019637198602204369589479701984434174510400014887680576913973067688327775534525533147374115603625582383148929704488693647676569853964889876661242327257876219637404840010671918719386814503903329198758644165114023300945827358190881679777156251105910309381824235777566586192170809960163553753942680340459751299440992145874706310051080804131573394441616047309985808818235588352235484721296960858765715148048550148200168535114186443954242870389963571496863242776403747079420720578262364496448986271619929284580834119162534779383988053018824030079286353236474657652530148646798304405202723552598631280084964650148125003232559415724164928218107288071286880311838779079770470260816338828701854538912952366556002609238542642382095654028982504509513023015107829904355943245327932756834592151516795314047936533009838930696813442599240894968117069037639995372193581586490679324001276864953243702497492369170175302230865652491483539183051434439131476566359475003745765738881818167214820197479798986003151566433956796788339535372018641461571175314632937738909020916396165124227895396674411337495150553903471141578067603416874209741702688104301221738220373179596082350556531846943771693368042651954344313346808384338401577544724745405953952337194255820940337547524098776710801820360989234878455603960851002489370604519639309298751085057755778387584748056505373560919517823845087520001135370740330859405234867917567443583877381657919681308167816931640271737472836087787451579995670986145381342705235627484149198053063431881375389823367696834389533091315600818314967282955987164713903425430778169728264368864320688150633395389062550394503660440726126165888146623458392735070905898926000287521882410093837397773757892197239726935357123661575750317897154264072361193704877318953788814436561621048503250158528592877462389565526136750132563353868029088255206209876460968763338466227188399932734525913015180754822600534995654268980330203056315088521312014037850524598206044805326988134484660696264580467998977985335307388701978942232086111622604088909760186797597433839297875676241212997159118640744104824308469101371965748369037476150308000966864402708467547837725370328936178512391874978112923205069039674070602213919164385746618785164616189252324602998837410894750270616255582840967132952398654601838017875048172683476229003911405792940646553806221803649655035615116752441829443473710157791989482713711040973093631415961285304501083697049710251138571517322504463023773242990762017425037372755203955936597834422691643787733278110019383516612121241220154219906920654088426365596296943774294363349257374590457227198345789715561665687111319396494392695990456252514135545574860163820723883737144243692927892222286967640366412858925461962010225796917727349084958662775310219865562103485855921150813514457322712788977316503091147611384636212111012137111447902928889218162898460219243551262259347109307461896969519682054134201060344199806035817493284316018214818256747364353252645755372644874200399198721837520899351543371754500031278033024784692049125627341270009986565821770538180822533700953577734669347768779832491914167293194232626068968283823387309059084594787240501440419415423558197613874326203620380991070655191024225937787669137885137254414263258444897460484717579682470783033843167873267210085044935389359845624591854907950068953124918589606090268418011109202264140026984093565536171268972509166864754967271066590018844713119151809484044854330660174780672981694150296196807982060532636293283544337646473733382598529969507457322958475700260722778615368414328758961909762147195322833481229550767048094089423754912664102290312197220530013405068154987380695564754125787144761931472024629970989430815169888198664920630753247793659516319101936952751570658772214053924494729028888970444681964672205429306936209200980040463548592241456933394211561169565955354443924328523647896697309187760433966618736811300601735536582894311865108629194305441183460739721063063216500226632253606203992479010721663885810716493809572994891863228244837409979533567199762352042089820184863688141312184548363737496498243693214265936992947328402059500958533797372695818723192681752903042892310730342331393890224445693534200312674451175365276323979409790354599181104890108558900136071335821648347997473093551929026157661665140840282086690505216037157558369705076345618576862066937029917356329150470014788733509822409525652974848278882526984826732443709892848925211590628293322844779994615235559839007848886969213017586634444343318749437407487360959780365045472695573929505061585144436021669513533666825027542534829916187766211449435340958526464574097783333521844762102308156900975943189861342547808752060470714196821763334068901017189161332627091426980188627144640956985438153627085681663063031030043820354345146491381266407727116340124428901190471569332013767915535411883837565875275593394456277068887814306948009630095934313144795481403123378851178972947976508168490429399915273736791183301435787805977439143084055521460245458357471097806703183842856330450950199060702805766520162074340523041788417574445841355030279471740883997828819812665797173202638084839114838812144006935694112774663870509359250134863451426972509411715536636038603054593782974194704297160670860742328056134792582732357851243251210241790640176515408713537032219217369853130630607141523233764276791859920563002383492581615830957620208494254170330317028596116172101572278231933020435326024959812923585091263804894821527331410343389476957043410982653979260599309979468166261411077104132057813340807385006893285147724809605797993639574329808335523306791998146880628645031049259447411421695176492477387330369921781779290735822595653924011889424698085248122334893109217993185466822735018940762696987374626839732261834510801967798237555930016807765826549092819413969350042919735634575652997652971622890663637843022816614149142410961080696782000190414417300705925558576596257477638039753386705142674346934216431105985109316347052582738961452439398714114276565726538529142469217616840122307920206411143311324703494973848407156680258063250543103453763245396324779110136933518256581082996360425065476362481388743958040285371648575528787007467731819570483897614020884065508246783193470319629848942606427794729664474545691864834224385053687280232033341553872260763109818528309882714190801044135839717612502470368501060804910323292163105286931230634360985817734451461732642531512338867997231038956439916669376479821288063926400952966397496851106509302009456099610380987134548556231815959740290572112359111916860012442125861526913566385281937805396310144543669393974056313970442028866862605695233453442357839121709473899054951126465928312657008221160993421771319810624617385680861747962010505986456680807402732658121518580793223331795679848724939540910680035306469174823041419185354379415965754068959464886640179620699672954728808107507957136913437084210049331807784328159868032951822853151957320328523230733319381329604298273724915636371765604798501661318825397225201946209787794796566920587725388872740149309955852851567660772189374417020479220205801593538594978285307037564039720753722366669155738624916144296963738211394885621114747023321891621233571490744173622953624681058444986239956870582459895682918469508492278369252294872990764940314901011627687397651700059798122555814359244762532738629030565243990903404629355593489287086045417565184551551975735491292673810716101246385869974827374042256722566059654980063215729651371309190828215413836222298057279482823529884479188059087931235293874409478546956957203160632872632923745059143468993660690177936089511957702414768701849844485756772867023577882272073334020909616931604811677894888580645672781420711092145303655032016139515696204781628667856583425249046297021776653408804335043298056263322057817982555185562327662445202130433844249078654263396864593191804127072871414680131891613751849613304742881125361544278553001528410717958692081885372569272136618183951260920089257453084108389398161846614298869608112931052553013769606772503756926615892688012225370581258609723240419150126897352812218419718808912518545310341193239064920212070116688028555496865689928911132148576922611224166170827094102119418180907010062979049406018731625086640881972878667705509543493365105163812012790691024108251411752704332402778895603865006899529186525814782556907522476631515726508819213829128907688694713251937228888899200906748710712637808348223643055839613239737614743947811398746834125044247268137399120099010064436185032226011905424867566258785171204827902077321537245051197523039291482527710693237343909113665629545927263723503349361902543008018592991619369999286492843690026466021572534854956947926000056116207192552438581900797489500343708368032505763450486888624417306343499274203673290041640654731517339045349247522467334508051800855316620721703147593133951051553464993006017388690266890172264734899794827394037277409994847054609873727993779457396835296853823610940736406938889632960378395336384815530889597241430463896260437292076576401670040616045503005343277557613638658455053440617037252292845433503921592695878959324251914542455112344445811044313284248446137381687559181785282838508008429916420031450820772985741424096344443345181065111864253736398999963034508249272321894997716611658671356669023121394915725580779455188521854435671202858550223759270000303652625677868150576557366483056440948011711172899703260337407598621771566044474492305153128525615517268886615916373732315268967094996607127882549767154726338944794908079253992617080928034641203238130235529549531155322587135446127456674442545462656047123585570505093669901505863936335558402312448254875734431806866226976796724498742489715583547760650169811779495244344557972588654581767065335132274661196626671939101760381423320156972899364300066616166481833663445471767147961569280782450358363387737814384318318242410234974152152741677866196039061349580148783567131457487243902328467614225074326129645329310601917902686847833163944045657952618459847093523420889020366959536317437000411885775027237163039123799329388234688950379262314355362460223201972042632408986044460959232629255459472181632714458850277617876639336836488143248675818067852670003046598102259113775315433226849588035589015849412952064344624078077421542390545150098170322993419929106629913633332733750964177498355271639544559927083222807887194592413782285335602471004844840164606639484983765666535816668015582178668547634149893879346857758813085904089487341986422471910740618710867807355884779679536202067458521926429264885439434244990126761659836735322277912421223245977024865156246207679816630498265970742699136314209841670896909388102342268740861011159615117206603964591421054769762461900763655102065983973038425576920694539710815740818106065602216122075849520980497957788017453831481582355305790476924230509971228445323337736600185780544673717659078680831640655564654818969894849540350706479173312662061433675216679441281133015962686813693882359138803614144630785480223303486214902085560362373100128473552868203996580530448354515770446184995706052926190991214229002932044821930267035236933055712067415636118623842324961458458358561490581794955468545866683492416313912793343373668520152522426810232806359520188359088357718739936722541467288324232448646899718445757606634334286135760570365113749084092692839220632718392752447627289402471833560071705486700793733014086501394040910497204923424735429792275619412245996220124508838607918222430777231706910234526654463806331388888445431588628156084078087283463455541519775906976831196959659167417387014816522046802022800443790613671924640061959354500496882627880289545550598725580458852402413444228697644939345117923941350926309204192689710727479130653323149858228447425470334062023091525008114718038445070866619830048921741024304381386423555226692825361679095130999239208966017896548864753531075331010687962207158663812554668187470472843432115812046055018315614451688424465380891109937908532562604822750476501668516066557912635534729524023429700827130910807099870904423591729688858671824099733814343299540221767375152520445699631721582020387267780865141030745077696538749139138907071200393761936968373722426538273174430072184133138706381832811469330715728701844356905486962741685398123453608939049419419108903316032127265533478293815706174785019957343948322447261351520254337388218774642766762672695289972442053415217051007336098254741543049723499932433657272103145125626276266253499562773309351625117196719137196130990197805078524137213746703075720191169064462884994748012838885848454476656869361925390535124175275787058467579049693994015445999931902109766270419982520254205334614386448767324258469780983222159233001209583158382251880830161243698641307836716253751723552453904975897853915788406988397350461546068613178745778059130798573650253933923970446769652510620225270642303190703713963072189737855123399919636532879020692848736460634295519429640860896161105598356413517229014345402824657100477555779823226873079860890789739289783204106694495194947459640542010333222518925648010713178469356702397455873881860305641850518871340647813353296324239869723552301913396701595251987612634733147168009726892760916088482507020654022090865545400543398958881401899078962133148591730042428643784869166382294153262881860084197075120532392994849757594395754308088351238350059891189901771004005759347145894678749925417240551276841017691510940300578417099051382532555428548028611555578815008822054792229041784660267285780676706702882830102906067269307772425830043018132508175010460388897809767208563909896016903671008498791185445782486393132435392857738332828471820865574190255145549128094363124851348740043115834799279099293697293436667161146363613628083648493383798123889901238765996613545157341500435766271514259389472865017813458852535030502251892294601153703629972071285926544159842564710284394915954664173921385402811505557882006196836007670287912959521679420347505658882161073544445308135773669700228166211512448134378575676236125919612888115706807121822432487551877886861068862417233965878109512633787503046709073391981354427262541289998917349638328304874557795187960690590582676030640414527344440400934236969853047670787171570151250635078301808722974698230551349195485787962196296803093926089302678907951038981976094984666751249886189272019260010003735876907754816488841657250211589400295479819381103290635342469303561948647123485635058338928700283001810057838086197632844611590821779494707320634180966076658080215192733898077933406487899078447742237612618967792040814420586065537974062725789520201355904127935026924963167309812246552099922265172026426866373798667776429960328805064288382373304396098630385813427132114912973024850427561857892643556923637289460368535250704737408683145762215060750377508248301485416682240889680390720807492919343735860313551662263862224289796450599377202346164834219604730856169490557237173781678729675687167366204454196110505809077236299240684082236944298287239515099920090654533899511583506937118132599273358357433017582847722845517905795289408122231725191989809710077299967789278102942815991829464819723667899978315098062805732519028072842335430876409440101402599216840173202948736994548057606647006388892327306686372536788525019745093943808422948490755153762509293984964162730663464083539417630663069189273849527771468331620544866874969364169680862151920188738314354361047777648888436058094403891999387350426955806865414254032689014737110442576796223273899565126739159098370197220061891365569222404264050107239114493270078251717225417501744080315796280491914833834622945383315660426135899285064989780534569882277059165176863361272844520192305419735569305014144332655227903971131814538763717135939228367671423443972196512389156940726223020219358853367981199566408627728871009816292918493523244669701302499382687946038555161053412246350964697119846493688533291367512683713222376543661174922610477917160302230127656913484076631225279972516392132871196694600660530879857378194629703817669881684694252395816285637938015309235956894967882096649471152094449749161208103117150585930845561949649560865232816830035405376423346505748755242859130890553249112860469432077280767949195268379657201299198400593526474099353114858066338285916834182416656130623264538879357309788989199436479906492438195579059985390870089178104835467770889083262253066536752457579891958176415898099545003267621461634743714650188732870085222771882370890042191714978636635649676068185579622689736088259729794575109665792039995216630984707087841532556089778462764629248840802524237292985867720932324210499023717900957290903921686041247969746595486036852824403772398006173533327221009304693618278449402294812330643654334272982221089543092765176760830689566254010972748783699849433223077635846345541399211281695222606009328981044878470030358197951076720527620761392745308961378868467605861303501000854875096654001928002762085447864792277971380278570735930318959130074508528608885542920355374161401224532031529537964218527380471520809062794292688159474081822186410459320849744050627348010654990441685894328755536210402741287920454330905881867709019589034019165749062134971245259292619926429282528104801514743423035088523941470679603851297180292746934328727098452964758956810505728845059723202729940841350980553325506193710888261640004032902780819226260300395347707992575841399987846313151105424560800966848005789373669917261412357013574396515360824579577535791674287868502250049743817943629018341521139319318857795897056689020846306296660728600052392297678879247090007297102086809366244149829367957220047747630784554193409897296588795766577725868606035179505547887929365622244694234136378630135560449632770966495866417289358445320394809482361016221307792139194649615604533165562201133606816415863451883612857800899940901217518643802860141887361550657181063253224146236985817355890145434565787427669965740498273063547770736079320545788646292593906675850536757900542950826221961033492571670885616466400636920551373958673303098910567026373172192458429092520772405892548980720649847750926230804304880735451756859798439243566902552772374133228939055747742040145396298396459973866191357319313365341008424473632432710528716325079836342548827168305091429146745116650170681578289066911637714868298394340035147061268062808379252465423657761797763405463197334865703339937086885530726126134475935910405661031902945266207559460135137571303847842135788496409418504043605795163390318934906463657730332194580930047942292523859106501576036715157028499441618841927980159349847075150182423955661386354216150296931622179210831871777299547448392473023898793776203435901934475754676861275533206365451698273414969497341093341911892540131286969401448149697453521852561828441398522333514809765796224357999387558025678524119022794677177041579453725224888079005463954020123318839923612181712441467011862124732966515842708227371052453531560483555547464216051003344927685329496231464823977329371328565559089145851935807009717705913861236151323079560695397255772626359607524852780860635866996547391308262006248162060147289325885942336545210715083923460687703860884870071207740698849342921079921817610462278147033606945660149154899785441400517485859760488259751059510585003704651805560897428213039360928185822273775646465759185023998230552835920864585014065297793420586772879311939346501396173270529050820136690952495976444852512375507824118829509097964950572392254333405489126669978230603293065420825784367585773411769358264529801256855871792962232003262207502217118833278254634423004545459005993628856714620778985800266289422812806895329047906234174585693039266124429761425080571794273221643987813312118831120135975570593229979707556573695054527711437977018799405863144849144989962901397955876014834057768676555271449464880262911378309657168743692640278507576962173163383189052864879314345803721444965220114814724162064681166937701943668247972941032133872450544620653017948478186227360563212411305390914901085284872408736087072210634243714760685472432567155380727071032307163899895560188737077066582447515450900573650564956652554597034035640319636394083227720501327249425837181004448917476215538030042873775000909985655494531371576689654053399483370751388676008768651048210826974742064216955453869188296192979112331413900208452238120820143203834214687450879099548528783187095528255089616109416755895770261392329080636107233939509019708200577024179833862126135635406604019551241561858142088984112993083244102133982666799137076834980676359407332371025635003173487313919247683311972980913969909806745710377686926948437514326559590423811795909955992912471741598183686248531132178566182774490178492407614326899361572744511895363936565293496733441034354911249653167447764131468487044770451388641202221194568006330282374309664357689375064337542410933524774636580037691296161038997307436238043451896479892837095324607788644460504255009873466686038453077504428250569912176128623787873999101474915587499747184464738282257271018606074031072163652137142250516159898935438997040321780962085240383943694584984014703499643825016100152443061312775884994371839479379059486480290351602994203375646693463770270872638128292634684120556296091074773610906032355166253284269941603846177798294010651726229716711410132990894680062214357479675525555232290071812303289548361718600259106343960471501588065701116386196463882061459861180599818686260003524214555147967122202759530681310654837468881997711898742891607355336158684750954779904657620843098996765313197743479825005215400084461503329820757552313685178712681332493010993809495108232554492404373340382048403940452144800602544938711756075330109669887281260992788267844624997734880107215659961461605126532709551115717449547070714577387502526346479341230626587174193669657571381294318339911110283693894213844864103087290669158727071761754779391362264730900787282121252090165908242232207604303838508199316783695323417127725774117877850768098182405671014543215967635277070979604834569564266564397181359579708085343348865604635372973547627319325163165373338095781679146592094210221695226302364270588169990739650025628919620202736669277636021007938276283145066169442384908885246019178242663692805683899641231537680910980783046424648499096636404631021456407462777969293639329573500341651850982832164481642864369263492736400496581535530121948040040985130306719412539909679730417634407623829539470352910857916949424906146472124993720710590993424652765367582286405547564145052858576924893195666659362182467528419220597240032812556625855450934099206544727569516194235299408267893775954458280581039468417161319893046060798849809876142270386024988832669874756173130067212395079236999328730395354968522022760690961175381547851998970081906911042065715253184511860263912087552552469798832215743015333399415501141076602447583840555643183216120662575821556778605721601199624558541023573027413908016815303793779738392693850445282145585928641525135482253101219418388647194812302751348128978201231367394589252184935855692571055051085837121390412436099407845781396453147646153736866204676897374201411241700891125674072879117723674580138975110792343328921698838442929856415072069637344880303706232885054985991725776059357441633470927886922897567847559196900961656490355254463313428275036856547346298969351513867509702226222695076751308420304740509554640970287862236477633210988116261544160966481218785779407860280723775050193420163049228015121623182430456290220411946403211660760070794340913313293302621024193814012492350860611598602452665057453421548630362953533154785532553528821884550710386585688127828301103377011555881285807694316341889396997981875710683001777837038405234114739883242406366862790348670492093495567238920273011937496586170156513568873334101637697589818304176184411186689210575007695219404971707959773753901635223535148277094886288391484095252783792085548641750635709477880172396641742576579151191878525413012872433828457296469070769846390611172591247047950886580441095442466342863672536191296872300302672334941483346682926104693952224887265429659329493522362300696088523753122300232424816853186355430020799215820607710933638756556523777337891482786082741981218938336326661003105017655438485933782725943405751248147732422235237109522425219211504032909760389743698033608750860674390169089969833244327194787135991656163152210672567257180824011734707593606934663442871814706978918092817998583194991658170319262672602428668218929950361353015876988047001317179188260871661831225104200799490399361802400264118434876110413653268870490126667580722971645540734898593427935706336832581670145179454191850054005350123500286280370645203517609292833992793687076667531317673267191311960981010799336190995628500639450557011057476351175733648215027468267976398970872233149946969019924493750646571723047797860855167200122648107761557052573745208110646772474614036034120647613202541007418003063159233435310956562259828124476854693769432446503307163088386943013999009686200750290833978917574458320183913507239269252450049666142861378631726488147980226217084367340882907626732040477757612886280994744759470198096049483407839865349440586300021239855597645676412578259124829611295909624623724298661834833293041158835561847659569874204625936345055684079464793831116901044539467665081828387051933405670564134781365935890024423775246624872887836125959767741878241737265951982282484788724332937663770507885310271781874412753852572575498136638708262321317662923020276329972592934698394394838690650465765018386701187626935274732571969949697836428592034034549278927290169670756984868555174045237633172702926453252550234926612452761104162684265790138731160640382972725887961745083747413701672757212183508973857542381788087245485093876477571358248910262742084502649509447624442445219156035464283267468938689168894651694339921062745180683714394648985100738420604002447219882679084834682118343910768264106071878723275195823893705436554439911678416568088461956954322449958891138404570428210488483823515288696783975545653333404307562815366030951788120007197315735084926438764514838102220812936495847357476668899308806586089246424837478203556041426300762768961743957012320399923212382091229216947992076308053172882919454401175850675444705076812004108637849459179559613163455227816717231690026981709101229742571194375776865430102409610903067338562158807067129180203213387144876663360983296031947453117005545713638043101763068355199929213463474164630726935027857837401790693900748840145058648827162233864084656802081872468274091166965572400056815774399659225494161704432464015622205312932622470282732490495868840525825662719720865230970542647724738185572530214518612272562118525835499438256791487017178021815983669886083950641816944217370498239287854768607613599582004182243431273220906093720885678789065224537788994836906851511115923715291496002553967389162127190512378409808613772159947692465714471810773316519130469039171648872139910447941039039796364045933692073965896441169630293827319904781478136652929712512328281927272610612823307994932832642545739258852471940668143105925275116782964286156367636374009520512284814081957476616133254363584719448732523703814638686246688938779362566692072101582007655408090130961485166629458588564686900729680893408871950357000271974109883851802639072612515820532041656337025909838233751031881396895388801429639801343353279809535552126314185518851662680706544295711595366602588291579234511172081582899493489285447064104401046093449928136724053024754687887657540960229531998090531309094829744747185273206808179938069913394614352778593310479150893253699074749538425850576451474919999147255237088028820608990113466554636130391325991564041768929889031100913588357479077518473207886692618112448289205100039658180199200150806990260183345467197235588795475775936190569099349460607592820570676081480735475738009934092496137447754180763847602705420325939202980067840486227398421556114318755952506969881904712823531370074092406805403123039367686938157905329632620830868206409307546516756722169777578616128249326992775124435914908867653468016002062125527792510866600658059907672406051708836364998339878837558733101110754619613596686194429862353300809649810529915230928793313570944542879170038317852849322418947537231233623543626131830375552081313385444151022584309448033628735060365678949492536789389202280541194585791951930838100857695769847259803628911834028317809112352496132605233025192931858280131790762930140180590977017939333405427210492886301667644955787765818061154255971779202860368280006085088421087213646959467898722348154354780828808716798912291218226626056202719742164049579473515036787152807097392358487413027017810154252144963835371167244033141034091255585975764497907969179413625665700271722975880477124628048459437597592259883592638286476938569013427383584454920882949494461438342883572692184382914831082906907174518698282382927959975367263251524283678606714377175529362546398687031334500561836492831260186020751594371568170924419078132968323425286963313059786764500266894705857397760054619134002556176694641968929987938743735187684677915931357358213143123373478639868467858782234962398681750717714686687806377639796263656754556336147505690667483218306374077378161583128065148087609142133943280132129372704282679643547044647625616318193008493219389992431839073825549255642583336936181024038168728058250141585558989435278531937346746469718342506362303451765723191926340836072573958943828171961412251513646869165303940272433781374951722048848339799732481363248853949642214557495851343598939788513004148048099389612965762831308244708424591558096187570773273608852434050900865638436444977813207071078683002938403752487594272564792271743176506329398783626164428513723782334709315079231763434170577289201346218906971034994249771537985752072581325635156556992503683785388820430042854090670837025631864416179287858306360457625037267539271365673968822446846033675647563919231014861432400024304929514568351080745105477817788023809878910872844670910610816047885058798669325153411735764620919918948169555322126568099359485889577858876264726642870960754420302753078000172796388153621457393587742992370831915632185992858145451260718304580630488751143805094440825150380003754010750972738853007694042808202884801097554296627862412422103427972404745243952141028967118814396584807352719765330537861793482102640798003414790654224223478726587866077797597668644637303958661935458288567095757330303923480506614639939312347466205505698788486410364105069442093180602719584737719695759949923895803505617860733514881017988050256005854309384094165345571870543593303520051236658472262257496205461079126634479133087267394755835257546085240949058941673518030827951757274472730075171257788568470909336531898542105690846598583269439356476483152560925312716406940627889911084379812315298472388445233656364776743974758548805061662638123464751493700159321582815332682844175496852775283926158721908939521509744980408153616502511367471060233240329632354683436425532314734315456453771051012507964522221695385599881522359678181212479526616105301655338043763763972598776119095506647807356664961662788127204319077809966666621190536764009554301363516519457825632606868862474637727905219123576746403648233299142959427642076880380769816323664775985378807308876282755323414055756052356593312302131827896520037183950656488687094130331006000993914098465974099057152197036741827327643254190419269060248075889621229133703185439202679597745132370432110930527436581454334096158533512934599582048344378605798833737144632361300817797185530813495393506060747285635545415293171883912687341099584026178276063970363764251792654390169519121660623661527778606186503615097088210150374805469135900211623911982086746620973188626399019056242030693333067328451439189117434317468169233134307472550243439151288861483423699715854911937266309224897642419745821067553542825430729342668527288009137606309919086910888259188275764549122300448749081481228505375434181673515503990289470522115911883670887064190419957278880075802687693712662400634415827382135234223695432217969590625586058560798979631521727363009891165826692986024902651326169767886321249194394942376784120592512465690618001758048879103223060963016701280156242199057271885300135988874136508191426786662254852916170820962677921539036334522193021464102417156860667518788465716790861709439695795168370530197321048609618159264132039010776801746630620352773983547390450772875601302858591741000734050605849275854197450485688821839237040113501165191743194859497230810855622812806932225613507218214434664789147935012457674165812763672242832595148698821047424053416120016992253830878547405920730041020699621793447890012591306217907910404646896797103692394202189219082032279708620881645479943420501292349626736196902513162021467253764813792683298112592246461543123745179092314772738028441471370916601780490179526026143234467220386385082952123164602582519038219020514677878864249449007744957340706781049811841802576780903889653848090061523906156900581066442365306591541892953311967764930124005529490742927208330773051284812592009105030216651127989015938812826117820261459151851820092827588144663678966642495322880866645720873563725534351749345342255252500877269702661475959781190906026749247285462940447875709720996797160757821440932646011951669611881523814021274016839332450269291918882804347966389404762348881516794469642839732750635376660744903030692820816753329900856458205079481632780067538559935873830927320454332876542839671549248610896308857359826589462524383447525702617838835382436863969599935625027543990758775831615058330821913014433692377495815096002581042784741276098761751616707899718300851964146837198245687956903764129754890553040859034958606932838474402322829056984692885592578753383584643561559481495033025671157840181968771252660636444682375852636173967730117742271202475914056922543972637254130676626149159534368039710098936726099176424926048748652518659579454679217716011778798240085944593106661355692253638169244932407279054163061581458009338025158263569328456388561938432753484796864971007498484320783310383055767381152736585508308083657870568168915615126319762131765369825535422128448794093334794747200931479002629382830492762922095716238097924538259447754478483765543277117013791668307706231735594529593688246778195562364012989225974796576482104654571401446139776726808016321022470575642200652048943989568747588227281101194571911053051067458727275964516457435556523170282583003317844476692498748035791249738598172643882323140065524700245593405412243957460198695958650894090729907026836326744292368328246534880518955923451287702296032100521685899031664630953223979900856658890314340001595176163252846604852729159698884555386694959571805705340767889986623166436354355496305082918304302778093484728696743382544688706189469596505718309024917061688842095678229687977230955459368306485412490482864199650923382727376177116171844659817542303597185875071531815262218390873193598120170328128686467553953165979785344334828976452838396284515947418830966328492375507274611132551847179206892463885962000417113856830811772701508792662768219085165799896654576563522933987658276326421545987085763777937656498475133827532584082710300863073011278896790860986379551134041460368864932120207214273514451209353522550611040838710636807556368012281008072794369710865325947020554547051132689983175453707545346290750964241288629332060589852588402202906863076718665787531316899827594491324049734856130881485327337268301337598587268621491268188880637522980114028115763249101172665870344239401008597310498182965119765714685719706016136819789377786027667563108628867056788374037356291401590153617858804259837845713420232729912698546481738445368433536368403212254318679497566463391736195438458555441924743208715945820202179880735635316632634581400460759402071880597869421988214488102928810374132429032428265512975422155096223955783552804894157410389083460618382160051956724169604184823635444169861546249586433123606407965722572455677303990077733783699543294182339187048616260934085132498310564730017208077240289419340217840292757888204780866705047859652047167983167619310948942502544931736372543694690581038524053948232245269539357497496740870969857976270196861151161543898586854656526498193740418512787645248239602554609060750708344367960573114241239478389747033071320862275309290213788438543615592952145481154141029347369842056862707043484739845052935025272500446103100779558865794983245252334578213875428290501747060550005898750314529253541016832312807021370825623550537304204675358892475397155293807936808362822518133655376435766058454704903179024884353493029213994344188308602825151247122785856481572838736294854849510158361927532574965580286755282054110334690255050534773563822535139911795572887208527246890079165968539034792057880323699125908533041684592896261906875030229257007736762672502585809126616206204121560753526166893429646062825687675401892617926759324474326441761851466909731923428291256026244958970956844932873740055638781560826703111952722153723060710977089696438378332457720960149204448946162381592578615463104805152855109710861556273845350721554878509680162340375965023071634341333227788170575299694946321016141144705678850182972074070234046808018887277778587402339577178615953682843432668777103937227883426221648878230995444852731395747344509906303620267335066318755802012651525838526676794306118006688806418796508406599359084366533358110368526020229410409612110649954512011600270817308732630445617865463235256640525251714262919435314419053037662502786264228905699824087660301491583782729212800187328621063599470830627769147674501605945113965266009440404555056214368476242246281953682434374237796368110017077397684902249636157573780330068417114210604228144969330106941428197494586179126409749277913768619701637833298738689020270829671421206689551705478352097650393381296712877786485408303473838055292342547421608853010044354251924350237239510645091086309815864607567878774803542614084028735766458440956673084868830392605870275833510936421917555387337115373891615424948201471253449445225067837342300652551133826727275878918121620142169769137895098847736653001033504992445860439342567555573855619743393143440101294665439298860473740207693166276799883710500994075336243419236454732065809410442291964473045918985740876079874140708154274361562950208268425356959176917641035911363585914104831129520965845421384149164957381851480041555675930527846510739384368814547523567395658656004737656459931938100056522382690340642586373490414453327942428135038383097943713100663754512992708454389437298827138072263227472298474320623011427476565213031627739644477715172586557640030402017507381773454614392132375946305015772221251704461911740141863731319902737758363230547393941123934694646542743103301777964517755968059199163559243846581444553804036654337858139017925772956682793498808870089807276547978448599412643345150554510800967057105067427944239969113306323600662498732128919693763437662691133893894905308173289545734569267062610395939509126018756873550347280702066433767924268808879427388679370777908644514114969556465397548680644050617263573728204986660087832819611367334983027463196193674519516034408228913273393824775880425507682162388837999984870033233148580688836905972792505924360930195056733295293297516311294460274739559015068227455098108176821101150077610085290057393917066771023921734267194975724345735820451319988106685520319739395822633813108485731472372882372289401781887492719180698573388403055528544425119237984409255129365207148297267164125112143831235018756487701986563775724558622272395419104497148829177099872519129777605583392347975150397303178682768655416019062274053015291207749408180791742288582706853339777268145593500303359720030897951159329728587891910574051646780305937099051792589103451812053843907528007960253358003125444281450893758367350600247428544698114845931524003719703531581160608095892233666561454489013571770067145086326398311124458570159590481951870940258463880092325762435854442056825188963502585460829294259480672826962313760915662340142834043408640546204447228615866250492498542172485372801146715837327456861054838137565841220146413623576620610518660884142730237776650754062724015057234298342084553504854068195518526323458359088074262115636972295582716285366807909851106858231437019548732109226479026314253281163181666864789911963561014297181553491921524139324402896259283064947299318850366025762239484537038602065840304860832154445438930118746507803163981512229647411818370344495835146279199557574928285231891539638541893277157055208361556627481702835615714682385420635206406637461310250490488337422185825040516925490398061188701140244912497583816196165013188293048788712297476917121533990535127073286349368255607158302311857066097760946810362059419517176967342001925245930864357271797923931874746086378960080628726986567110866519377615882049874171169772332660768334239753799249543080728700038472805728878247726757486349425740675798760668012905486698690308688993219074908148977952503900032754943333003525124218815251041132119699538106761108770968432375513212607220068263182204624428761382611871790174716910447307360362407441283428012968964640958618986968961960889815607034033809581819896184898209122394131220963392726253250133093362593770668250682729606772028256142234611204040910105270938534891888801749422105459170382620309918105152609351653049937830350673604583240583676608524505366932206355253319282302788502548692290916348556544297580715215035240986606312046386905784154018699121725104397534705592918595867620711766033892974278018297633521707680558361388191088551838016696081220978411592664728304928061860661037521678947734570863770842288045079509334694120544750161757288976613886586069200480495337734936079916542959835661602064030960903158330868295093776099817013880485703446309261189478568953851696271422820703748576083584045326051556998728308025640365220228689662480295116549956434733305036146056980926855610889771090962722994791634298503178135580881742867183144210685923028371306950287783432372677501932263619896184273665062207436508139773723730178632991751682162216179893816411910141585494438463749811158682721050873742209418244727256559967473827971161460312424104930779307353626612410650767173433273854414069467311832420302364491483924683210683367589318693103493679083139770120342080621141938252873973580794703298745881701777350087510275065055141955833667438342285920177628801718354411121502857702879030071125335584562459440732976409077045941051070067249965408663234467190538414522721180334739769640641212022558056175340912154854155768424214158254625031530927528525402745006935740707752869236543594802498793618549306112225846983213978059662454257232761180837528698447722125221851651345584636326988892737251010316256620038755018345987497255088106240666309297543173467274061455168686400516001748235873750173564219185569097129815856135991149324267043404672011693675866259696215476329922660248461540824009908753736596422158720494241198304006239626763279507993613181054416063870928318933643313050067825207604468593584724418802664356654792726150881436918976900151844410141315533809515666815337122739550181980468890124612797792756464989996394054921223216550251173067569291538683156677212085573360767124500946859529295146412068355773963499826598036712204949460085160728266875402742852798433364433982551627302361829691394747844991842775683556922928921681776117791244186163858482373256560543720337270570745082607645471652469065795766898155696086813717690331837875091537013396570070990324388239413172351601175914341836609847634528216245243825295080020231911234176561726827094247780990508236950151561500291529673371134119916452397628576554484449154906721235291250177353462952185909489540207718782265390648392857637501622623098236241642217814719354908739699304359583287767446116647796384068672170499019856138043682424189248380958822957447941333471717223231916235908407367455266787546841581631409002701746279648109597056182844266760307284917306437375274151709898325275076451227696313620322379220206309151541250681350022991486798952763596606317609882791341255500799309969616410342225899285295672782665677005174625671898028883133177471913956018115137292913439450090988244238960554293834902010133840027055447714583799944546523033423466462102068716036423005971639828715218090058661632225135340172819350919512523057092126613164266372292245410252638883957808133150848685145457504086006679563072986766997210569005793313236586638547133600532299639196451396538503684705516116128092050132241256442702915662829725578058918543593332687554041290764708589470726872595104822308947048544078510475613461602455146774879373995249798086570259362898111653616803079771006508664759021294064260639988835055092992176116900986375952400515997329424492633929189440312624335765954924737509047781580530389909885460986538201881728129800886292912644764385718814453660452202722157643932968751567989365006743604184187485574916381448589157975048565667852714414778804709297117767480369500666026256093459440729305361811512757059502785652028378037430309270866043915097845867551793194111982680901251044100820643557300859046682008641291938746500280359682966386360293898322102063134013200174170799074842080371690133806937216480674463451678029692197596778268530892552374532782208705520050209648701244374453583072830857244160588372124518436246578311745801196496034928072539018571002447430378446404303661047698490126324054988215447244170211697753504576878326417588426866200323233324583732519268931322299468327123786391808212144260083147696710325137095404399312715373305366648450366028013455246082398089349499573886412666893489135023997302713645918487184769482356240765567947230791407887249965874461875646725951006573062381368755612080833852461330702517163180370977576545456741960332464159995315110076271149418180599986947420057871992239823332772940285356151149008869216436900309765864452636090960996082301551977783873335432566440693493016929614415271472661183273507434826890439364255965292975651458035497613337341893106125231874641715844834727570484695854219048743987342375904486286557202661451451256088080197889821584329130988843734832409163852907350309952394457241788425961500009926175968830952483956743129634217453794253566449693389433113583000682442853890130573944825907990726721568816360464804297457710676535903999350057507493228401961509293459991291272336147657037496395024786572326578137277570169750304058047668466089027151508917010886765662737907394815442156439927441188868109349053535868814624588104878590983164845792457839056716347661583253716571324011813678819175081491749074935585344306007669037646243625784331025778865022780625371064840717377904690604325265278746537403703237379299332205816930770563404099570356290079857253636801180975210330155892545358795602753166597930759406730751949232209095289168270136130510204258372969389934736075429382382364895418745389027440481493958274392796557961223368710531523023954596010363869517154523522136333744919980726301044177300214163248322037888187802721534444902738593762079304047838063275375191489909608088404483965434728507095349964963850233281485750680883792792747998238841401307040838598298718704331493702094485544521689221218714489391040705885222486971134623339071991431754020239885476172682315747605185022735532889065899678576763059281001788921001155614790215796288389956145204714614501019278676919203251239877127477205776130772683060124794372943555604065345095162950684288911190693300253428316042750015080492241249353037898087015957018428457873504112847390169181261178281507914084199868170445076616733598083314582355791617485621498742213667239091569552018652150086628534458870014728375954624391706229157850094302538875170539212734756913637947566820318970283681905695595418012568792816758311150179594983155257339747553085286287130605676973314558462055111686895142982220896919763414873979317609272896695316645780551737743261492113521868498602551333017941026569775091367496623615327999465623598960526999951216460972857879900725948999003939540455676901842112043618380887218698105550898041418017447931490257059256271882871294942589626962553391138242591082480823434597611850455850363647092799004150917132065892549768988008831373250624337658320987728037697055558315961073923772135061842293185472925212517554651035435871486079944099693756993194578702971269606263923025660491310609150483044477695637584726990724354458185512459436817394815826206932402587056560973161849504208312547966197441840886307196106633713801515544457972922516758715436034277119882080675602693314433918730489696015570812137922741882973682619612289095383514837402254561291507429723637669875875976951006376430282644595915634091100426934677341118630233097000856158738242485845902514846289367328976260784108232851529390964448053418645983357666204367860167366040186238080928279247847142649383279978740809945611746583131983548948368180367106384537490494252986061309687621275103947873958972742847269461001263932214098619007513703339396166034705451840851267493043881183330816932732319770011560186307460011070817580099165716119513122902545287061031291020855145749286463130112639635123728716087880397444043173459292934623184651700644305560827043402011412759987616433973032230057821038996228544383915104875345610336991382512824176785896991822027623163011711263847122977597842980387990297556315270358271228602300235776568264251619289351744005200796477244513766149051143529205985710965232148989653097789373765985736104218503860624849121927884193698053814499200038642200752321995168948115145790701625855638025546102316317533610897049997056569363415844275872085953983508077920771224489487945562444732177227728786097953588784015812497578135824530637782323383655879814685153994301108923175606440381626915324731039418329882820878484152325485174285253429915856430837600924001684362925303321894466324592381008924910737092371777001784924404769148793075976300373254974447847918099147124218837389973740736847779680134163815836087206928567554079602415208343130437439169922423630029459324629746891173003879686079914486193775599962220530836709522669600385198881586724644560454193136640254736935792709267197916157279561231640956652310948832876709644523837093004185300860545993838618892784895503135176049638614484507192159161544654233739063154478165434689850912456670791373005379688130118016884008660662073907874205263267820120472362453679657146460350471468364925910338221344885090360911819844644965061454266338505744428908172025692841704276245867753868872081470095835423736101940057748403300538037912201263334837742213317501128108859605571058959506375320946607243545912619398938254724201638695865848248810099655821023828344469606152872022642531687670023947450104552891120646799088484243114765371486100305023561013649561163747363394935784482340396250824194478731331757690456141341190808955146021457241131884084791081665690841810090324799951129870508373952808804937349610600979064516204157944720683699623295550976907290549522382118130158414959331357924118123112419362766580094613022155140803812011798545665585764333275204596019328852988367437496815938551349427387741001412861951685005785060804643641166885188733788938016721021628489887399595803781592209943679795253843744090270799910602096460011637208434511127014635147245172519443735759291188683421900344201894651269380679917608158512633949181887229685600089499555660788962758968219657198938386253440866038936832735977814159599669131244135511885097393506750724829861750594434507129364238733009084555572547955973085246954219686619633131145219488486981662341956410723738923493269853353712467954013887337795620770305534501893593256367124598198576366876876328538250539775951791283834397787237516173902841293970262650925610451796025743557646521018912319096406220862645855430088874419995342482492475479914467596265042100361554762953425566862713443693838937552413469794789779784780044679468703671421709823484651572964110432942248117461074111677845851618018435032501287447350365896010499614901367863016935495045486930894607192798816153291746595225907643254300961309342124355398877444040026349046756726316386046847876253685286945959535189158905976341876162799852568303646889738330350093063390682269660206526453554047656642831351493621324592786358872507832934170012006385418821732930563516931694389445510561916933225966503048967286014137883716163264624892326934003869884610477616371830143053110074688731126718812188094024577625187685893462808764188054788476218725326553932083806192737704974378807581673527691142296424891625494768125432364816054145248006438334600859665508441009079076810497291164246202355999390473658087411723270511750968476826571833378658009175689084477496913636795965069076550018265747190119230858791217670926568301672550026715065503051925905659030360129730513199315615708785199265306483545564667712952292705282427195730100461211441202740075514041449458549422548154824201286633660720401209706019154150752841159674416816704995616992088862672479073000046329383093665494644932601771495783074084754864231802342414904895404597017660968925755633085653565668659875424953266283970424574723622752466156022244712317941864174024048959643250597576538324338039302091372693151464868767381211322516610433555265303023200092408959221769832886690862084777074158390667331430684138057726937035405997687914050233655403504050195420392984541520468949160569984818975162918352408597429109440957778350255625308543943593014695086954306404422953061814938319471076107564989167957016488570673280904942665256178274898684601753948935001649099555694056265657279232122009987368342231686649500654705696939628757131250152314851947126325568148308986383160529926346415128296431438277351076021457397611135303215823533528247007090736975664325308130726995594094625775484084287213534320427894260943763658677163559677999401406357317898214143852978625816276632678908174492004279786988769589172369436547936608768213345364679025719843755494779817370608599643970647864887676959431042926489847969382106383049006462756244085110673381798411521224150723380223568467640113482299964496862876016368569617998645705695450829966278371020577089571929331528055628570264976999779011517542732741558224970447530008698747853719244796152709907962979767695077898496180050657339354567004546524663993076538056927155052629687931490887007386376128603962661286203561229314001945333134168850277675932171456670021300231809779664488013740742628751037040621438426674067636072031616176610712661862517118341644645539374698901755689909034009527131029552905016228904085634951839714016779088705566329644554887681871150766353139758641642232149756924682206811371109489601725982506354062071614159296790176368993797088293796819814627329945047293067399400180708509565172756767361749706171703759035402641459667014996754616412707080710394443174957231069293749192865109919094773774340806971204703034429554635567854084586698865516859123169277729627680370768588513558555091380622233928101169407353487143420736644903065431283081885030738748208368821013940350416786206781484447508335411333595576355529981993195924025737664767427305822102163815272897575550711780046882022692230093906954089064339127347150247981719603145466696056577410493493571344560543671045115018924344781436819848202447179879954317286708280688646929610655427840283408014296076022903787024857955484130524273005405665880227972458089448385401815506458228824438630882517288694849388718901483424335938999128965897771156272564899995302564976530027550896413619600405836276718539780680802696300944125992286302228826104142193260238759184097117609822783290613358518218604659620187064154288360882405003404060439160016569150406049864367980579421645832853077725434679371465874323616763541325911299561900736321311097893924215510197905843380646989232600544072051718333988876437602788372899085332430596830309698624251786606089329308966373815435570201060719298326962538227196063406538038064448756622144431832760861818047101781681773558660838282419830784896151242044338283813002194629132650785468960372078102670557343612143636744713555442246549976336286399343994369510882882096368610219988427158423058992046769772235815434748429303334886663423551432607397387360914373141923532431081949489830158661921333335530987203470526540470514972657178626134817809510834437375579748693815610611265219754039870967666376319835608114649918036839975321343297345393749870962154019642370280583362542326654842379101541180943102582174802252882607164259060481209038848728916366871867813833677857786544399092583275602339087925348663411315872558784911338642428573419741046393543542367529160993635378321822331918465929764941312210252070858709667257854888123815517566978772485833558881647258972537184413926397725743731062028271489951201494131589584359282277330252520957797054764998661447282670297806669788269786593520125682773062150057380313820269935870062691367336920504256888395466338462735254860923678869254145311716316553727998992939473938579086297986311967884788896034362392491514427802536472353292807342263413460850183789275559447057425482247195204120323752495499643412306766515555933116910258700393788658245863804370902405454840247971445893488674844287102341784420975798049438796779271117334916468304456889184663022235365456898110642141322588613119882374511093662512553428743727150199982924590814509775337305674485264693759038274718948330677020766586078907363587761354505509137994509907460072628660935051468258572792669796010790212074455151126630227234244897008075495008689252050817106219034129218509353491566188005886638561740058641229720581009424264552219152390324164459887679357468686507104241137094060812278556692591669108163520250779936120558897098916182864368841263888169535664215774348927044916915858442465697310374310117089847136923296482525466147020905099889478152070977030710024231767607117060018342627666047330050122468913320005750704118956344451480054166740160960480226607785550389241472871244306635649509237342264444722248212078620549119487116687270939157819253692002795345067321057888229950337190854718484094550342414280402308383360392689326302781610283702518629636966985307210650108623677685118281296057063635910699606411859282866240383596749100561878820276981076760423730094027391782800068342903407835228284488043940494484110159197357404108331853161975161506099341890792152507540183253060207379745968288598801434029695241267508699032152371885370755439153577941813904679339053245099872645742283401378404041962805529428541747571326645227383487825027139945480626652033729554000730301042092642552346666188695470050693574331072525606431521433088828324148766314324385420491224986219855055622062925028491034576098672914438848346162958787908798037937648320037575449973938544461094240926514189047883171988238816391540346781753135982383973455406192617258356441267638569856264725178698976431709473002703407924608025148204110166913282071584955699830347164378021457508133426755320106002124389119008136606525346776609586890227606610320851148795582093334982836852590918861693363891582031716123282473305476372057918569423087608178415200473769927992777319763764282655564172914805588385210654883755874752767846066063073965265369569557851295253471509917608538184092067114597729731778529115893087827612897109294082957674717633315028152945175455079044785696868196204813328011188635049009609192934721778431854699799224769519676662602745502447902142546888248637800617483322710280644050335093640286704812034202520938614948154160910491928760032388512258148217606604886696769421843312526975139540377879668221744164941041143914826613550745218103152560988403196610512209005324562079199934594583775293654914315274079262248389364190397291581145018565186572887020533279018442632981597113650347433874778793279075457403771470745305733934386259553958351657667908141142031054745301538039139780404011879236735742586794710812046466565084008038837511552603681607158803799339537446915002304528142775184858115148778188580502296393752983435311054934185804678680058447290983710309764829629902043742347790638702668446490919804876912810674515655941292354488611298532656166707811356410435044268553075651910005186957524985933092136904165120926804423587479956050615517673566329836497018505628176376278766105937912677217998089779715291227186671501857261390778873377746871907769269127043117120564610175830111269759723686822043239444517525692273413121399116022135531444235405539109240080447221121991412223401328272897719981677594405174469325793837819538006439727091393154215076474759040894894744641978846167596531139349411935140565629898929505882906545106771844766212125345884489186192553485711915274098584755378161673825878908149592352649196071393517709998811267110506974761149608090494049225280430355358468110032469664254748603282946142723295438373841387727066078940754515400663359214278933679070891691117910967576358885022409961160430181820941392819760771264385847238261151341079969833258719741034700306931273790284322239193296038156519825692320442484373073817316715501743982223384918045267938091592071467246520814981779034583244210492924256330274032215377321345653055315350217401341339122002400728516692976898654754703405780742495836545714084315882036821630661202319130154543942445052288342281342302725511452865734393951569071133451130804566555395041403757930228887772906868618627278280131404922487733194794684524397454568956091837899272919242259161368390013718229531679863104003176146998780821434287408449343751575089867945230143104220689865210978499835445963758100631103862900822491142312358583980163890291875917999830359253754664980683702481011891449037811094462493719515556024248356939247970553634979956843334134139593986589419470263046036388820643542242395183913440441893050754341389842088622061575922331516923185012845535696323202122008926732163059864499616249289528851414385255165647269406867913568242612495739353807760087471442294722224217596430100613559544823954959063918095889527467577753954948113545664243767160686758669060196151103136729191446738294936826994127774338866548928631015907477765961045805426077134557343090393101634997666942316946632629890118314789414071300617789132107170659828414932723305600354368563076534470663660514118855006823638633162285370203533544303159154048668800196176935257738017956418203943548353592565424954283726433028219605401581772409437835679752470154489875273829677822062710891845302347769111949872612234900930617767903946326690166798112531814172064065059219163069350988246714721403381213917176778265933507723807637873289817143298063440434898692517785896954782078817682049854040559046605664579013495326264520082032158807467069059849378836943844369166456699133339625063605993614422328604757508205484409520415959364328875129137549810213876519333834737334129364832796003475670529750658353775934020548245346056774764082463675707763758713343231448933410085440231191746592547416779925573987528695115668889539798800885807594532939716072619135293808668713869721761676702020045073294058485373938967804349729874529402387982213074759730754797997964129787655064191337732468082250042218522019487041108645675127533852613521422991089865573953907386754839173369060871713270075988038049919053692861879904925218382920655383735062005581086535590981702640650371515356981070708510238672119545024783724820048774751659208688665159221535999016557438543906177202645394769034566161779744871451767644556104149228020880055284122405248158191857878843656686347657691750122434844826416886051984569257617220848310506717286045345553212428394245229120346983738164264501465572127326471242475526760001055097887556689471148737479798783737345957741637447159750712914275269513748826770334666139983316239699058425002199801225451202139871701636290268712923669520126386507349328933994713633560604366791073785088052587934752465614993366119570886932837937436499128986953709108179567935419471115805267027515413407149103861504695000607172900996354288431030960497664065861793094491772752940541068854609488692163580224170117540368901504034603274298277032488213918880757734727825960289376423905729064312795664916577729250236126350409979370757393046038074918801159204247357760227618736167167708809816847347037706390014649479334018422800973421526201891508399185808093960897894976701070818014420766754041220167248520122323855737248941083245172556253329776737981168774271662789110259865553209961961925513754928596703744832376964697231709328706549068957045556683224558753072710961512988302969945947129234923587316291934802443081870701439709757905016883735282671450572930091438217093589937148995512078335635414442898604919682591684049780194873870023713783899684595023150121161600223194049140317771825527505837821937987830630640986119164554565893636361321461011869125417023810388964450148932079064955952019714307768043082876665053200876928140754758581361235982569220597193753438186266370497339229657080853694544588194602716413830074802761932879085123056531295828899344167827577834039800317415584572093451451781696113622151940898918708335607834507413591214294264394658455134863123778152272139098930006853115818285859373068052546087747007586909235279614469108629790956341615989467156688223486961910218548402668347518250937090572203467646927567910503244764503293091471333118189973755651377005763177872139494355025924651919363154980135616934448974593858713872757490331596262676719666971599738292639198308936874096097095717559391357601824066689483771222095774357273209842806750407133454267915161867928498738055779872008747803129686392335690258090163839965187409998646330588858762001017232517293963007051186350485782372400900211497087643388917128242578809323415753608385280897164299980029902942203591137874631678274587282021125268289824994016507240130092138829543021820470582324246405769855068473620272883814141320035051009513896528472264001426635691268523230983716680426598118673936418481192388001006037676355385757372981822296547841771064787705584043877305339336343229053617798423915053261605750715781194306584002836425524971369308714565537221300753998030038806692316274412214555440709166873875326196941212357335859769705919981031539137950296749726729390131808740019226785261239008395618159716339086985110962626155159327741794380450432825650862290842365209770349153665524928397969580691917570042239104493153629982588910216990592802876854868470532811981658282549131389975446203475620794275815631349482941131747701063539442557526648558355563929915540887501203547115069601317199253313055855590981464068373468694046993386846551835750589410860470448885099475404908540381245796815507205561738227593430779182241809225295927791860235036621307746989521346642447172537745377512531999062656080168797370671688868908144654875983032930339820886836104963999067651574638227419514689266982175546500513260301363778544607551824694531695640889797053295936604573398410700095589211410143323713192043124834936158529053188316020783421206626452458078349735487127100656304601754896541446144541337657191218583102214383297897947696102855631778302166244925945688392590560480966618795607077445810199176398904081237584539416668533826384588113657376644498106518205201915684743392331292085596102508985320602106952051092780097963274062845141401506877213581138241983960593125790315102516632579893029448392140792552273585244577442422810159219872276378894021595979286366741431762853478125890184773125151280198620813430301724168187052468305603063542620706499543154208815002433624168887557427497205539636313780444371723659381509225804830155013119133478603769606929690334259120653431789574105149196149498367987442781130452211207750150152727319953733124577173677400783972163075103986609603392956456775793002554397907380232001437165839424416930802623767803329746200838291120832109510566487219550494638989075371670288924339896917117641764423020383129316411000353179069479774625879089442627075991266287824530554810224678025036916199013867305774813279557546641165305681586688033736918050484278582259710624757210658831424621258123492909679721730168062803949721113443651681918064689046165744499306234540997570881635838098943581021057313791750661803468646443343671706273995081235122790910990137163531811677580517379267209965895374114640799473388654337311514489898019189596877832253572249764005346424879388309195560389584061542489898154020083030561783894937052405531415742650927051340093090480044902887808140842806739836909699633068839072162104631016797774040674324939933112626362812257159059577400662534604643752615617841697813075147521281293219801677450788832153189351482015680427914028384713938001219095019245496545120171724121196923905982786698216039911515590420161295750273105919932695680504267431627752865925249635433471050514002985273140094520229125812322066276301494860845781690205304467395971364461900846915459850637239569090028295073507409382258501941934071275502405264873041102014261206802249508862707532715504638459272906886234791980481435461995495662380743908335397472022864881849234702913934319051618704087664558830821815503416546162174649254329165026998104200899567968198044436546569039067954231201847964248349870549109814530146706168224217101762772727043366004793098425884093865484228980638242810520498533062092486800741973255327464435921803511384652173380244026266327612575727128862137786942002193718293640644678336676359644776471286286470165224181560183836350343475701388099101907039812654957746424793440643790361866437240921232362298354104239635066519233423839224809785106879696720547940736075533716167953676330845881368763833796377678919107982933738705679105488388545881731857059664691276813497256122907736663841672208803096546568654277831064459690763754289052972281405783063705272109815381933997926310622974241556344394250057534393588424884854459056646211698937933511144996399197436261324901925246668704955736850369363034281903934248388763269962779715883166769039368626487186160193093662268081442409363947881018830897219840327128173821395420084577488758174900339818148810352197340970154885298811387276740953512214092255320088329052976474628325667528525256865010321299545485640404603671640678657381611092822725362173060995017593504112886024827614783538027500834102216054713206127536168989613026791850933616724836814799699584833054960998979782635605986978677447608564883633138937069026626527923270799117443900303348248183768177011189330054905572735785109322134831671570324829140445093262032495618418718336121505605942104781540161073634581419722617213929904463514271852041930434368630362363702254369945566763434903958483286370242683702755620496098621242538527932909397741041170826443203782610962761612347170808417853761748797329991912435027707660224287138627020698617265217595071524020949467349095398300340856195705435793616595966130059714543797517270349070107676850277520398513217679089607055790135595151775576807665812328956914869725104222821418829985903519942823800175821244265914451462237960540912382761639481182490073065720065441993564250589150497959952602944611152955669824530751421583727461175526974722017237971973430308996839150894888251149689757193904691207213313989676897933284052652877940456376978833967764981303929500190717080722057082367691771254028259463380851010631514870026295391402477698952283525442718329029252028760464373429279728527229362022150537331847934910631179381031166666089531137509909240601083403061643932615197947447615627799130554759515447369495180039708007221755564356464431772551955449788128911683501852667875875239980750362147134962143057146055254924826066293286676230401516465699784767844118209031245812479240382273496054939190769173320195205309021469570859947014947678232772099913061489325842900493537190440046663879190021432589308118470096726665443210720294951133911879975454089090373700891292925024367788356367770233238154972822906206988411428652286412912798374686307564972530343427717546747465673173257094234478796758957529812161187057774453662484286491973293237040428717642630601214378753511072904941092732399579109662207639973057218106079884886665013359154812202148143947394902813392240261959837235995428067129174551508043837228469892467569893092981128756346336403313396479670001314521781940142981356951486183204319107903469151695911133087609698034521502805105006924862105401702716832455911233550898615768407001554989211589158234820937632460770855115204019393107014915086202604353016312417056855104003547107844177605577539870963729585193693447695836790940494743187812247248648795083124068099982561576937985908931868351077806436025370837608119484427092296186838910081336096729020969436661130909868850496433487381369862224315830474917100230683220834975406851336722409869547684508960575683902927495583879117346667005375341288906449532488701112863009029114080024807164385735854425699990069575757292686231447333648070483382695345989603033464724913250594191156851690916917524827522212145220527289623626448700785193679116509344184883577419360022238278970613280950397637628619053836930216149417135584091465761700067137182131671164324684718651606475022789959582760330347621590777724503398865385877595622942738676575336100214899843115956419619876097829977206238824600641420630893003695017826959094183138636666489960050438063874330934849752734509452218829071050476951065811128292813193417494533732336820641589735271077965049842345009768873151309614504634584043010243004939102637602635760708936492428350061606165821289372628121867085885958638768962402128559364106142727908114889573395652660462669977289296546409773143608854594201455820724028304755577715982081195990687986093313003771461522435776206824472754365022943263469683315041534987869335764080741666426144001037207013150988863499131680866199007623757094612804836955693779310099695177608935530558890730772395146609104488276906557939458755888414728676771880220915358723375010308467754297076401498538111466357626112491277718862178276230863798825107114552269796921535004434477602545170236818605408595586206873700459923199297294045838325687495842323387253318253022561553072827125419533449514452723981050462871925126921769722902405037042043762166799878602488950378409379595657944399167931491675260335530364079566492750120160872099681859034172124975799199559687006651850575011935220324447636809693324294058033891959045681525831437887109217259498757783571777284946631513102243945339923436458614527131679239641949410926355098912641926356607483385538573264787211287540868833944933139425564133432329862704276077219367446407516185800985106588384067408481126176205599948877136879953600200669069053376139538237798036809531386730688226108661678783311792868159340324659823080563264103712023175311951204778722384916506074771030331269466294266575145334814302411803678724357919789840669646534602921670277551239437453437765492374152485899668730633176694852093106110901610455686135855335658475183591910631769512313406449663016857698015695002583555647002143307113405835418170965823588496129617893205986741289843320403452550271643517615025528144619993036747225581362684962393592359329964744711036117924367704317207666425535451414590851077944147175388355688142482281115526502643319119720763115428301941198476195243672418747076400799568250404277636753972763436809843290038028328309702845149923664910842517474886580871585682759273983967007015303324896485228742080619377387813568899360849927384183795289695870153902345357216441544685196203790313455870564848735284839215522750632787979556822134967448786023752999637844875212176177991097676581634895827356570901135658094459870292672556928052784407049476808553096224985356621637537211571173950947244688336198161410427409840568757560082308786623679698021917679793494008898685757934651528441496250471188514245317779850332895468139195892312110333483706192887710407694588950601531180399174494440939498936766745499024598499816136589547719878054472084887415421940444231326409126537064044894480411312838861440918936002934376670240626262991865964445105347756338602660402620309934157144122636327578092248831888904526369126340263060819262267540840653264650033275938253290580795271781587816426744709544693521224469120831182564750178044094723608628450890022841125308832819561843423138775265762712370877391028881887435675859299068676890119290345535411701518353673295100951653599180734789404803550291201670850595977237173781361469628598084903311887975009981019595326307451901268395110924672890435486193771685339646185786668211571556157991712925541050746892461737207904867082681758232835269673786403931669760305486090662274133953611279829845223842269251977633467182524825804886403365215253528810528806134459868088249999415118458079070923318245058961560235091552715597895660976680669634837991453841881528939590307215624813012504265334829862365221239371382157313506047977136387454447412330251121593842231056521411840346637140635421703855256987761117769616500114238216425036684388554240846344734442311713828964727506587018159128461624662327875133004262702055470044901278120506674588643726587653272326085409625154787178986778517086210591154406947339644095060549878336440632299477709923244635159888275788858800164886121112171935469998913163296457313274307247589797277620202854759500510047856386966339658669988356318187216576151545823250817216500426925897893472471125209307183992039757294588155543276739611047375594759881954510416522880467640434450382510592186173565836008864505718729713521555626720905734151395315609434160842669348986547282392124853146187361399085393523569602000845416185134885090188755050177563439058510260321449644137296764275542338319444483743868308734447849572942048142570166804675638275528299766938101059227476890825692077014584645423204511129268167465866386344669691353552736125997555747953963124478455962344960761907841035070715145441203030960161753387015775030051045758016623213062390468919584670192312251427783793806327981072830413831150735525771684455385973405502555456522485137203666227840647646718830107780046174927916977349572260791526176912485025250083541010968430214266741465467749128839657402717637087815847354498118450555172313094707389502680899799393723109655210946599792461435347946337846512588361389105952940100535004626299526001450819709273342384829423017505366016006272003052306409756813865190799213975097678101059719734307348259371714158739627100124753804476350981268338433926742006395495972484543880345113894278571330736704160925156360191294504533880470874420297329597425877147694663014974916750770861979209063680694597087459981267448796560777801496015584028472743605056933885115363627432772679929577086216584897073376058414010605431488766966946109144183361787159688328179322087964587085549861231840795780562759044616948513000658335154916046659495468849870160839808920741355236982680489347407417064822453867649689649679144637833305714802970608913357210891577976717827719088133087213648930998053806245414959217565376251827285418120830875338056708880807917509553000615743123056534266193264086206711549432918985870070149632707180046605073530067350953320095900360434033722349927629667755772004029467378366095844754414146628214781270431666054003978456406178037781770489569173933616331804217420605010560276158074726527534816094088968548911148215344975829722204418644821819590892899937053932344086529274262281552242341610986867735319124451052583806863733332628872050514163714090450748977155197190427492636497650673976466217363275973480513901774242448215659964543012686602851743294723476995400020903851102625648480759054535165529025122197801395442649484766948176661504920746063664791161738624919789894637983755323348430687784155871754361959617478230687386583163448493946215996442231376213305946501487784983426673100880291701631146729105460915154682314904785340382521283787925502132313989390612293162324533469244232115604257888020491436138210512016256514552390186416947128650847265977269398262158941394785867250150108234874772116548568529041943376335999589815872074186226379963702996719609854320468931735493071924166611437980111276311228952356067122231924189769307419444811530145524193015988262394235403251164791727244163399517437184215478864894105764617581767806737799074346808363257100539448941633715921278082726515265775409162896099377878223503137457727129463087985160991372646729979869125814897658628794106188650468313325893109175799890646984368713318134265078318830786791962922409261669003423760143803108759511354527628615098225106000295772267272887632414773634622028849006681351445390851331089997355473851324627301708437808993778396054297009514426413347705824002907428549213172116930371887359866451279833959187028338955450818103095531661477414137786293600999087011669494986175679995894832430414488773653687055660403012273998094007784238448078153010227615816456163461429629869769692547034214172104722887883371125562661442679434713318636918907894915402614586795361998801699940804664512551942458614713255286842960278192798702196705341425219485040587051418466495936050911685488073211329233883452628796953317728924390166299269626836167631974912304997724702258386793050478428689426647529657008193674782249534602060522687287403185159982926911716843589812964366590234137084404402044209079176044774832518993005436209657503479725508711578402576333455225503286098233980442430823934774149091698063006082405945637862022889822504065848113288105536285156778520600740621067420581590809880543983319521461078181082780683654204266104935550140557800541787040445507575726562476775466785722688846020378154348036473704291662470515868359069187158155010977066802175803145000713671419465343117221398955424537721196370696511440889976845888101139611389722911100121895826923190363347092566197568526819886127718178431306462967810070077278844073862032643056185173766851632262289865195432022461431522382345107122770539947853861391185938636050230988992129517945629863253644003227548951789191113098688388617948141120589718315426229976985041997928766975511337563074736652635917577561017897930675761051675594782527768422927360699684018591661114983758152619043845221938867587208944626971360986995675279378642991325285606160330347206427966711647764924055123429924221288590675772157355106513386401601136361833887788252357774734370072872735533749368474676302460377301922043273884834678363435185659208841995958804709689342359550173652736623968832086380154553107685863126000146845985276023856876120830909226185710162307429933038262273097174038795606646790124561310222748040354089904649121555821944801607847284460318127593632647425345785352891218161967723016987524291412869670580745212837177820927474085995365508752425284281632708455918295053782489688934794903304753703635224455925213881777097243491645100432482014005930981396443107671297417706238477752262715914464931701399483564350561219295906834763581515689458763587516468846688695186516239594279052698637255927674264345980676219409683862007232848251215818221283550441304989938478560653134525909743396868319142845578198805767548185162437372506438834368320763678980191786104983811815345031407898783436194517766847782146116568072046063846531974904092027475923593219449816861846739529412909869246367467066618239733785497722674382595230923970460945962817831621340468905286173684469829697758619527919171988178702812634398618909015876905816916236195811049397677867627397554133597544001745800624760560841968025398103416624542468258656637514935317903346480509673539266178975600489580321005695838311140469426976863265732601284390035432844770791739740973154532616718641020425271574992949494540098830538251728082720234023958673052132023247042968749275803404152638056299160712788232306561563630730503999624232190056044520871846667167665387139350418354694128731444240255503925988257458799171370901512118879070514944832221221826280634810912327635731007918188033275032959805571097277667319422702644407888455567995737317815236390394957452563541219592429126177078804843201235919022239093082510735848858981634450907645629778823912254166340997362472805252655260300990417026401128603586825811813787562665891255335972892460143404081323291620746568052200814933167168457235601638148109351713847355369743311222707380274725318795780912472905782370321944638991558902328565538979753072227269134776609193382469066729164150778149985584356933833286420875671206387000908602300603619511319394284315797633942952216420592196689792763009091470231179347742925924015688010151339918171589757520350777440661554937384799862743211029743410815200311572460151577629664479723052800354266031137177138440651081750443526227000213984227117460072722173560584710389266817958049732998809607665925839992582745361763117050114258572299894933524932935462679951683551512033517868651365773235843023228870809915819511180738717382297825165203419925483631737776062726685448750349722499890728575707968925508611691602023048166331611004187851983954530099989876846819447955360845776150938496684049723530795278396555317435539505452093381926908405438599154786612937950000527981543735210201276435707723586382959761599517986884447051829939890341240457695590316931451934716454286034450910644317378791537362581700737680725566926599151202319605922792261828068114007409377931948555177643015690052399052419562209062829284036505375567590360675624603713654832070825089949101015368666350014276116389374052976197833738537209686158813107203996957680332196266162091291902703740938537951043898903911789974228586429974034935004960775964978886974289574679204724705443446873795121278124813010521995381894117428128070064265476457574653735350814704759715740343288129930753494850937981305859409871316102217939021392983226087796082563234152963278242158141271572524248162601670177781964424646020401752127262461847379320190903067184589561388312264859781246754288214965841766364219839554735717139523190685556117365868029472731493384479484162072493471988304235442381589121687562368158392256279292629163982441693613767037721962332535965360039799729119021298479302726088946488501248579545503825429475528546038149419622540530449868676763213977696062774205207720380302411638275070249720401711794209154134138444043100294154688099841321190132358959328361743299030210260359960605210897052186202725122153557994772781072585608152669204239970941400279910791081345942317458140152734543046731095043548881216794461355103529342754819812302614678785878063424306150513706869165042833969977787983436272558290026038417233829307072932218331733344978697751839359996957648598134234754023918835558134141887024614687720909873364796998466092218190877657149729577360801661796205720408993592361746961427625682101937439862491382630274750115468790158726513278894990911771196685975079405271717608506985394876836487624645297210765222035580568286234086560525152865984262355484623065016978010867077292248153784899528329761753112817655893589341074848963002628615473233722389068963987190990963464542442742489970128130374394397436609696137074511961855930114956497681732826046350429675536467976088488826163600907125217121008445599190416378901259551996785061061681642686242233079125781648517968338930672540320181792954379579214880907265105226234631023334831358589927744262729358728960707529232483291794112055626521300092475733542233360468281142303755856604162360309215343553811202167493089304336288935155950491749945591907623717810404321621071757312042022314982630955046122083225926806497524187345899998259522435748974332567942962257299578932591378579191080003536673474845208054391866264032372270010698113441692783637173314192162820038804564524859019703995936764364414674183860840520461947285909799112437656517500112941812462832729465227248181626789249722402636511015589319968180370431743138934339457653923660791986169449010765273136606482972949778454565964289826211166120318480407974257718933166837282628893904013657887356170411211646322055074539377145334774945902925935447028594112026477055631776795362842414816323398367115768752914486897981937834524723019999110590062291461763884015377118327223400243503186421843722070505573418476514320772200377733492366298576931558150428421750480737169678694152501171543066958692435745845455823040937350146785750065963787445792836945507672430153440329034046132600850712941465744750869257531715808803550003010936313425201590422682766136886038908164496431040430362710537335746149693968770227575335817676796530766570169134349143975054909244253011056398269591226258112036055952980799559194462973769265242531976190894954657955077765321197519667691828145622682430308086271170675495332017358453940576599438890511727313041699375617774200222122657103932227960037450281708919541179650661843837768920262529794302211394825186274662361739420244651732433229703819133301911717819197105469905681854925928343045316567297568107287773496612118482584226920978881411330425965782820466714137353081282314079689782553680177036759299285024889681640269969601523895375486613219319012602225263308668175097430154425597305375005902871485307338184106226248805786759604771852850681731144450440777999804814145213064633947697415268447063885898601143099029962131915463806425192667968861311227156614871920046007711342169994227385963218387727585077461649631088393345403554623735752688900943547183841211080044648982946933853865483274021335116015960463081207125976782923884422165389754479144920129288339363328527825414094603178038713444173559362771383652781149433803808102905662124527529912210171923212529434465405897021135658527075913727910901518344947164729209200347817155567171417805993903849538539517786264895834041744577547826974580626611091211761654144273054517566065389883752524302374784887280580545710134529442945675554466466367682558340494003594989498444978514057498203116704620417519363843373198945725921306246255967441948057721797954173347363633034053292473602738470490982430999250634953958480310828922978405340148337952751686093909464048699898795655516652754667894036647893008103001675774675786341161163404248721577600792397996984630408828914040233947715436831724897031558387703409705916028014907643730325298223722254129226906061950968836764569406343488808369097934560971376769669938751268732761110336640688866681103497256238891412362800384510343674181408168785858005027023560159510939719163914088001300846884022498800360891086147258680801328203553650273083168448834343539947581508827571887436475468480588252479338430759116739501108352025446794595752159348336955796252656264084107717780144151829796472448117125979571439984885047613317217626934191896321041664786255255101077005770518308117299147491057738689276820288494982681340724494880095318597757766824818121744381944095938902647288439980588439192557524388065363264646806581299193511609835747109247264201629798901411414616803995055925460066654160989715615199822061182374536903154112416055374099702428288895470851449977081838187137878026936097676038336542270068313042950667988139887700393226565719897786401178766590062662970552171100471146824977829253736976270380352465310573681990365401065774569853693977599464032125050712671361318728268776852111448541795196626029279766768060457925800148508602132149722825074425321908900325080560729251044905830003903625098886585501321554891879359279139963881209742260617046260262658270085491641681492684275532690236035009970674219220903107990459408803249669813797762025876817165574869691545957152898507204263076259509745602593886518479778466480524367245427140120758440595504192801913846112047194106078671109485140468481195630609687682467661647923836800597267085192772153077367374556891647444447053730131704064900869539864615368926742476710669360317677249597594132441507765990271561035431164093234933064584095136701506299880022765438702356348077165769681032666922057240032470085953028319484537811845372732358309892134816884420602593636262718747506745659766053171464794412293648037472469080075895565116910130270233645722701489137921840623797500027034632408970818890894064616261066604319450168815155284414666669989031013924502232950609262169764810698692143879321202999803347197649836735740336523347749611741846473171896623019533350876438307098449987324097080647346328331769272039275811530968386828403992442975943655829477000533854771819595874770348931122259790788257204749457814209423262242934769941214326960183371620308745858517994369525349416918451994962603130936680591299525413503303134030160908311157263212679934590370119835585715197889712218704658350080008093953100023557505853664393833714005545265657112317581943200230301690195025828478886602368376268102505988688265805936358900693729019010141764244133161846052641758709968546509487321178258817977470420564689974876869675608600496119170616542657302710739708368416275485585337754591218601056073809601557566009088662403001151529463381944367632218764982098848646823763179933434115325691096502316260377681349520598109826776229227812416624189977016156202475113822164678775819839554555615927293683820370601449708815279277327911889740323136094631818996520499293853651177408477938010234536743494083174012128911446665172752641657084539198835775201356030002660879489692059991037106448930273156357185371501838851855215018710538325604063110341383577849052350857419136379821678759069341019275766704492151390046420990615176288020288514276395518734122127042861933913985742777857201985137610350264973788654025614475818460409321250126455558006571720853902624983947035512218784174811789897009173441952786613703091137287361227716894538156420741525016382750581658061802960452325787875789274453585197642869520395573106901702138608779417286157815686457895594851447761621015958090254183314967530672486982680038456238831006393708607228302876769434973614993720239849396830887701540980667259274591324771142039657696323226541391878949329176562099236831198062188666479367788649728537858471613529038747026585183009437012816009513825126917786591837765359387499914867975033761552476387295175898588107994121482869535903102799746537348254023471770663191458578853574572332203839714917665029181333766457466794263706557061708245796791490942067064305398704901231175523909415404013160120566338822145897643649706406423695028376556471192688159708461999933191653725220570674414788994432386314005205538721702946115500211687491765989240539042872880220461427773399915903365078695134945938695084818924604574211987948377108508273583169867456262332867023578026878391140273971386039257071582374898266886898513668681636504141129438233002013038851004422933430958935274565972065379559895358982212019640546228716869358431273267851373217014724980083289738022891598990011002307163018029892178131596521246667558067326087259440014368473129959577746600237770410357414404060444555425854146596294173533404884652304805991334351583311435322665369409602236639810119584859241432455130974793312277002036130174075390690873953665065611427368462597974265037207267775738049137700095324595993807814882393906974497988158727146985389351959638773991055292013671400964623704834291706598189519656080197754935155236456898062249041883024751229254769859013834503814815432058745340177695308542335460323041855024301393505063696564898678013974339977453110834360711199499439186062575361220777211274540479879641401182275167569099411246746221821373638368846316987099122501537782458858549405814198832981860891595547193496503688110772802662911402446316808415300696373719658854603433207016660976737659046807368531268615709808457312719232217135672456462674767187270393577476293266667227150114276240998759613563178928129115655815828827740024646326272826223246038831278813483803384637116977493280278226553304251038542815424880747758241010498586768838996967386071776844165157067491598068340684692379895941779222368714900037477425037036084781597901921876784994967379579378969049859817555231543201870618627605718229963552967671923321928509372979696552027650130562923296041512183542351352867569014393252563655592463663699555831316153027980292222761606834242499675318474747440641368103298631501605720289653671856169919590253620709417634831135151568062699679524578538521762568571800112759962830867321837778108000918444257511665949898076239060211716392885295939950308568223426594032948068312399623367798681874045258022540698280706375784279670600751114845686741497027732509915945693244436876442253212133799258822226734042586860985625280387019797849184376400088192970075735664295375644085046533081302320336611612828190553931271600976356874510899714965326059601274069189912675127811961272734864253185267839653833440199131799074926998324308871187733642810664022923048117187809386488708622337378723250669075461985308579378178365303352670259164888084643001104918382644217252983644443264655530859842863397136171488920647669476441297126019468422032822888977976791998720842992235054993141886777309134951846782000648210416362692854400953718756636609156575656619213366189769861587693647547159882984647635059739805835052734433226340706919082983931803156637125645446308614599881450359526615683514822557027059524209889029385840687338360037631993815643573887091040202782721119591262323688801809809901836340940858142596424334130106188148039263518806405815065582364479583511522878209300806687849515904648204424123794520917440370543641138110776136614738176972826646021188563287172494019947502491405266624883354580526014665905578030638079127106451246578397092084083236082192896795882328094909694539172508636954392535379841515157404055559214596504898407828506782828320403833696276883524341727573152506079119792160970028000548844619838505753036089740759044022416022203229841435075656983946235932836144993711252713081363678268302971467073770056851418958951322186587278948154793910256819816288785798956082041561696627643503758805434622977915689907600638108040880602860878393918332819626999381121994255531801956662869081547821434817991519818639139666687431383436518560746951492136905054521211374094312765294083445613518772577984916199461856404787509942083121594176433499474504649078449873551305181576249016478342610544898915318663607860879083624805622156381998987996412179461354313180756031686346914548902628664056172443082274593856546518734589296992365986257284260560006575753024924924377052170852608383033783751242502408776566847176193405155413572819949361217622097839950499919482534303131575452231450334574990443086728565697517916446894744377185672917370815673357321401487570046744066733432667385115157274412312660643273171924173860655566634899006552026139893442371168731795758835925588701300379077399978024573003965415958728087023126975000968602681791548795557078334729961590690688902837517775458017615838160790012526049825520936316497079902635868173762540140091257909754291807536972386829933486370398072128436649755705793789822281963185064455120235725829918061184771383355525122713711652192543073412431019131275062084482085682691599331437194288596929502733869281667341491649596211427871948539229135475347091422423042657532423487031262567138720037175000261463015165192980652466425528738918572442931864651551213425358062470875310755331298738614454928843125046333961418348741440972803720272180848005631502746185208872461345892235480767487153433456068053320667185911133976681838562056817187238834394173513178308973090016483479056322672114648031057158326330121758679945848056155277138953433149264936822972999805870298626688398866766397127257979945958468013659034835047925313374293053330410189887676295427311481552476601562150722020191076093630208187670571062783557268866469320964022093214810045392693627599216124212613477355802195983759310678536325742126326148207583859333226688189214564981722231164152264373218744466063453106719257924156516842475832978032511411047285438473650843447776418416292720904695939474043191652568342766094530684985844492399544557249749568598380334889408166527388262840344899184601281400467988940378068876498223403028210640307377526828892939369002614814738897247291049296004357847486432177068874382158789181217826611619243358488924539396242227182745489420831950083319241219722465764203375007260285834336945791269987717746380354667072614072604986361595653904169570090599156701898494704319207738271607723444472177540516510087687310231990284898642273199881458687047533810212023600211898580963551091530701488798157714616135452678772220164370791296895165862674350931917204937016968217413658476628944608300035162667195986164753245714114185976162360894311230928345431031511015360099758286778565579535370506083243394357856550393521302896693946325717778277563059884933354590503742424363282841190957950253590627129592077334912791753818302154519223535952305527514460520519992833897480838634722472970653650666806203366250341945662074249703687121445479576681954280647492925614400010568788807525497488316992942135698755070569023719543319636297733508462036564697223770674778902874075696145188763305526767080341671455096425929857842019181628875252129676673269453952178675756569934824901344904490383781532540980826214664254496562740705157809765543394032991438735610737826419818064363836081886783293216319777043901228844636020011471443489435898350723442139782418578167468278967037221680314700484527176421486753072782878029417158977332168747467904416763895743260242659134470350085195723866094825140821327552641848454915075934784286366044744248870677325664420436982941488351091177234981856756603431912372510203888119997509442631810590838552177389670418205264398840862925450163194258363992341153048196809632528451070160863658264595519839978719638795006516175988831028403921909968483135006145757399683153780254703304969277611327167500255675000281211468384359497584855579071230624454070669583922605424641756460899288736542220615660367733546874689700406638565923368176735295513986320414558789315924634911394422125795091361671870424404857798700633679912507933665568693214259466334657946391314995639505416822035175879892238068472973895610488180569839638901274009106907878157380617260614805909003818502722420038109426007683041551469181561912554948733961109040326286403276237722756325649360758155324576536070788614166764274104948357425402672228678571959512057558887519445886635342116550153084740269093609932267643557708639790359087952899864229479623886868946195637346118225637496729472706556537338140482372205041820592785310379009284349318478567335174905084207760363991518869020202699887961405444020012264914902684662341022104059946506525920416417393824589555129749767680188167566638479325871980900004314388382082095289191548876055042700244947789947844183568653638923810474691148538658344448279707152562608861099203218982565247073136088925887372576386493660929077987646330215719191786170815568231549812483504031717202936194675173302045491411307321828780763721016210878193448628142926798200693731747159449551011608354864755828735400976835187789348148061082817394419837764049743439108435235908162447682712598820751109081170960329353328585158773029670788313321384643086706610912656535384642320921595745493503521735086936836217424014256674787541274359003639913420779599406544590155085267672085239444741355284256911328426185262968049950526250140870671124242843499234248937547143114117391068216175436362048702829698441555917059130266339324046734941792454663697270669879581994392906575575530765235955992045509553599061730322375838469875071461942840724443103639639747252879960798695962803486978747120169838682415467292948553820770448408102809064218426347212709907072143522614471903198075867465251910990077948683450640345492374403733328337171226055928223654869580931596307761611089093947086959199123957013493113222595769589801318725527147155188954727554218555401863560157987515012987364559557014750784747466566273784579137770183351483288804379636605943608517620395264172851177720094899675902178982250820435741429018537611648841220664448286416424642183307303103336182503173552307232577105641277632220881065659077479734333769291164895088842654962497772689288748491070801473579794800091159459384617971208228683862947946361265201380919102826170513091281378671235841584596558053040004670423674950381233862434620994725313142810023624449564358160968704183994103165537808179649422472484302991819000688673752503786701355942102764422047865685607962589372335710615328308814063568430290578869897919157341696834696286276719149407447812432038079683483481448305999424122629777528551035134821108976891684465916537426807229130840328206723392097177035697653815763554484247401824011859227139136878851819843832045052529983448578720385932276807758859819579523245451488410969421126168902016703330494330160322474990021582423512072982138823897453511842684583740763152679719248941793754635415044935279682361914083726233892238145674494601877228552135547137573539032881004731543461151003795700240316670910385417114053692494832766295125293931182086445224925597622267702145409572107368006905243373255481424711006301999412640220870852510690613468404973922080379326581529993009243899930801491629948676394323604765600883943148245007839450654203458159443841777231621876183207029769014135848644648586322870294146811633870491572291542226969266709878356614094676291451367734150284458259568511731680527744808924286285375217214505418239141595964603920310864894480249303298567385266757600458594035948490856185435996566163636820764632948267791766045588618106517221648001067465806446833025510500523396998093581736066410300992275444694357639538697653593881861410642849992607373947848893904513336545908101939043650689063223124406746163186521219860748593297234170127799138104006625946721817849332049844366786069979132822807953338239984842773530214938582810651844813126824487183030764056752242436825498847459820720943668334563490684873930652340065976166953557393513505134353560873617918804100523827244626218058833055860158899693414968394110631121416710978375442048638678599764653190773350147669750238782893139482903509414657469432733967180606289121496914713809573362120525685064029617307000116169210053476411617573577195042266061066085411861237198649813838549616055209614192740938404280130540546821036130271073169820626382586485859008183830082306596680673420459296227939426862667554224627081473995454262884599302325309791403023976714122482189400463467590619410747058189631117229382510285191717792827144134567975311275860777021385582417458364375724008375107238921799670473598521464874568717350035724004945520593221961536258164685443214282192572636880253349111495451424351110672862040499499874690195493586598520895720395189341472994295094939603468857224814324283008478117193125985371182261790725112249713100153600608410500063458346286282349356203737593249493525484660233291047336675864239815881681808001285723373876997233091249690673730783359501309740229683512720914175225423946270645973659636153981057886285818208743914295296121129313741884600831750981482610938332019097094929567590164907477411678538708467517088457557453481060796877658045439372740131056581619804687997106101442788309920303951074291495308278226711870806521098794393489543164287208863434703494719680540684481472275070754280483493689634501069950558504819636857727024650223381490768092644661868507374916329794387623489074069670211800083147912139904101713793949467183430581775604662912752438485266214155303235041696713703285535683043849257564946154954778823833914006976433905607515951776000168380576271832022377672007726194612101782707442835837766251821276638800831702943969913432729936438126606839028556777957929595938250916862664066393686820641152106909886154190554825083280532921950400416629810324900226565615622127527233066365345516509608922795266102964586051489030243291671718846199491699954673053611303512947258441836031813854762428735672269688816186154751012196512939691108269489461472998619596087009594991552120600470539797166831169638779977703796186261435915809330936429523764705657673899687302304378134664217527467971766819338994180557725260091193096761794780929622914661263217865029459059507686710377686263863016947264522018534925767864672969296129990566033416689020648299567202675286654423258881848418865891401527054353800024421918167645260937784842090326154628720520871956304490894489537352540840930191413977451572836647631303166254419285920483817812954093262951817626826760823699565130318670362560476276966459782820445331272523853450765447149438978065830510201265634410303454641376171589616730715728338650785868334367770046106585630615868360654328672404988476522742639240672100474625478033344409546502208567702369547927362879845262774053102789652641717519251422350446830766118296184825088634359705639244031796241946610458812846601656376201741890827748780192719808871305295624130193123921949671083750158061591333014405052605556084317033825118709668768963109504859484487868699860365503968325638228381732135800234714827197740626249569228658388022283550048669962811462630655463610893152503175312723240070821539362078081741437770024567706179644110670556422857987035571800557994206195241559478835453429893176172816477313646046610672559565661400561249596090611007803775237686700431477641405865707753677340540115610326572305416920501576996605130036751987573076919422786721550735718328007848086753157745095070581847147519991592013109684962070618295596558553116284795968284144165933546743745673389800438175141592857887342496706382770066253198577971197417083933149933031167308908155031104163192581044540842300753628730573936907317817138588699412709902184242247572723586234131672304864130322147130893788859394800243882366800878692514900952423658120917332411710077088417323646818638347669405830606761121089358498422010842999159596730308925370039163001065509600022017211283242237799704888697200398415418495207060147487963090336219050001616545491322819326343170990155782941469574537868956123919528035233333575378765594593712478834817874672025680927204858863558939643087457842505541568529564522817718026688532405414532465014267894077747819672363161492790094214674043085660676873638000355446458891942648771024982671617908648812025641375917865848321000965346002817281201046362411556757256331261821889168014517413735716291890444756324137026743107395081629274962755829127049129985607774541619946945162896742519427490776097598508294802146055648437674126278973551112806348826773698097450356154991367288310878741621252687815697319977475608474534315466771228859633043251854807555858614634942168627648131667890852487694197572786890185903546813760415143385122997094646007618158272021209252722310054882218465416122376646023053175148450120929687327518838181960640092256932244922998423340291169777472972927312236913090589882303991636472029513628161224437109880853703147372437376904180583408929629102049038928629927896401437957340310903167923590216513332495888272975386758987650811801461141716576841839839155399429431625022093701718873139635900861529448458372830840616858630201376418974165918631181163332982092786240182247010669945988268828892732365627227686068854875384358351754228622053259717714342730379248839775774320564639802499970707828580223800806415360420581297767221105429242784022952131712898543668105609369631483434928686084760359984005786001326404268402927075171060478466673624315740063156745519400273869800395801222097055078443470545615333228835577717140451613898975238816585233246904367580734302345133158392426352738684984222879775088586146842143428010318193045205984518652974228398832930972688570041096198669384522642043122263185696353897639018878721431230210824167240416896712627719330079820406177971838641355532154886942481303919173751598819497673128522579724480083271617258531339924817550432026631208362341655533177376908985986343301983962928944112519189536953441876725771054895718404558809888331160304573671192866677523992702895948627533592605815794550446557394862862069958325823935793647526018900883325869854159103724492363047545203205191615200056145880584501230835165136157026840330578211769021767490947196848535536016173650112748451478349879087797775397961392221494811503235255010399593936169573049594652751071885959197370379764744122331529563155216831186064797241943029142642627310622635574772549402198045542249564379239793923162310024702469431150283252889634694769240644635958668386248666445249143118833281669208467865444732232272016101379352685017838826240792836160223022162661992887324198662581339428775426049650438342413326297067482452440389622388303266130376167494593114141520102422651380071596592444600183023955022532695732098653838361761339863246602413325719467232448352293543608348981961115314623952737760701456865727146901293287336961788142899506380239789063055834347274898995671330690202777316459964939742471728043055483964511765928973355697863068740286114278987386305919011263821041400142950164617984468549924874005259186163282403136370330983066763438001079576302461766886168194918425535954795824732928188215289641353387170113081048100337495075985371549131871660869168205902008537664285395776049341913997148787177853936602981038184997442062540888023443774903823155695134733939225373837945516080178382084780602854670779630878339274972897467485885268246734070869985898068305422717743623249698391373553951524680333341036870996178037429094067566301577666842785603120330646328573393689166999869209631035317113777034874676598582018637712070870164025486528911745388094781267539835379099180048831620759913914063262499516794417989080846878638031418851259373621981768821463925449514518216790045236187812885682089911348619186350473241704021534302271395477617498035585424664693774241604374001331743863413994231289037644381303809594751505459905023691748958982002637194316389698658134706075197120433228059857873902221800736344683075258275391913882266241034039244491132693684751226766236757728559393347410319978537370806485663090673708417244757394419180873934832677110177048302983271267730227922744786452841781400011680684705400388731958021822085311925519642400571145183325521746752233624823779189813418148805191888959646659409602369536942378653626109559791125242770139597803284159361793804750926380601212245247979644890167845019467373572894785241935309488273188076068584009202434699418446944575259267647689035030963949952532252279283050990713230860864951847417128929953082965549795928138310262111482077216108337710954202154737539736655711872816729899243738967274576487939821348220313903988374996496574384594345136766785512089829974924292824259004407046074638576193615859421306983339034301792605610293624550016168730431967764226106026975726108363686289632459114979891553085634135974698222935968606680739135701938273502599077776637163556848661107669525947803514212310136020093708627624812374172986907854159886202865903949253760259668842948945577265214068010677464292902357060920847988783235750465835308734743395123760963735053428966152272997445827489019794927652485180492325309723523245186378562143110997890338174854918028926511421027016987359251942513805642178973828875112652209475417154052277178039857106631994672918276020047628747303092709046950469820190630683210325045564429502762582271262220647125270270184797523594608227079368950336254350669758140389903679095481615181262511954584505286345159822726043014582787639981347800476501485925642652214283854239954025919849901954406390392295244895484961702550649963494835075862797377951919974504573730224459241674967158075723072128608030532163956059473924858109128288620007202661124882469644378934169872429201998674989495803100740003868190851044736440663197527207269299278871371358688686141377676084216719520955093643984891491364178519639897485944085279802476787291978779518249097426821346062514939092072515520510758339186360150493438993405981253146230040195067606699965501565417320732765740758569195431052375229748458715138852401225223808949626252721191823543024405979957694554443691018978172871230898451955337172353478472218093036731773952499851839499999433528710751245601341937508009650012058897707856651169184019658968275226782047636418132663006058543342712934574137517465502191888062371140722586774613346422541689075064660074953488934274075026454288264006349710600917088393935214892508099863085179525442574588574334258700517115381044294281946785199958275808773751863614673982820630127954915621717270245731195217639348190157163743707993220640915596960382861646049814698754948444033706209815881421062927063301822427894326926350537410941801324456451668794608503692732059801142559842328901809237110322397677731229416700778951826372402658875400268822376285948613187826037765674230881335500118944341076614863725471914551299514345706383287061840285323344972635461628775566315183070580112440372200701619307899113401105261204852635026248343456713058266328699381724804969896776604861646582575232180055014969463713647081535620191923339848604944923748147867881565973747229106390520849858027852888453493611725494527747095484784769314754692837183011178200778389874857423656759513176770538776034462361457041092711917408508959207385914318717402834513172307407951799331843011715580169392492829236835461374979667384554467806632287456565169786115889452784361422958438409675693433632959662270690955149814066755155672086727252522383296223748461414555052163881580663023988996955677666808996875809261699823465633441963868999176852382985216517247476568654936017774015405347399087469445485885752870739995281090969141543359635012482342555087601125830297745471325071980674188608927566711543771062694465600351603697484274375479745316069228062767365398782405158896799998959827421654969817272375578592099221596055431103202483229056495110308106837830003838191520238678685414380301169272879488049529119828300832928975697926172428221439203995600068179076671728986031466356494169276881380328255171637433473088911789891169625810539269530855640581609254888334834349968966603446496300536905170007786946325586819926037132500251387183486317415884921993183974274839710198540283871624837986629776536797875199163568127732557494839006728695568505188131578934445338043319251018096798422049478042339814332729175997829289455078497727175966088867686737155218239926545216311002851903212347885893126782159147492467777506285944933584346510623286373942759645698705149111430515633575272068180113366986641499097363950310788096552451175298507272697880387082203923399945242361264171695532685156913536560130663609796024050674991640219253946564561279000832157127191908938291042601785255813585623336283068445682825390328835599392869552133917259287784676007947812427697822725999674242448473045103375076801171945261471723825150949612699382470894698764922394266608763390260410931700194192911653992499685455693188848608140922904145355463189073216489497932006065729422792034838153999841042653721201288970767145310653532197236769292314989229798143809999373235970324205007688902742016645807973541652932661096242148700591702808985893020854015850461167062273609844223695997142636667029732693924053706897343797627013049813859792491846497376132613360591353822375770113944782805530268032395774708599269605358720950245920685611876870815371036219593658686737069096248407241588656755007770606792063157347194843842442316461709855322374376302491714720886930318517662682839581990595790793077367043892091219279514335072165725427691583334828728069584072177144523371666165758691420164356327409352398940635234529773870746803936180054978807879156451704050738421886178905834298421294653343289225998768257549001649264169117647724606084550415029017867445742340061888331268452794737462836992683763698947040033626301999668334255040856916262824307145162162628583611200484158501466118183999535669466438243765109825734838422485616339932413452349445639829066046493496939520013468895086970604905537534318961918421242209185000769115797852632447721953638437826845514666756802709796883525218587841766394419083534835928316130760676173891561382475508266756570701474449918671500011142005159999460311790766875580898527495303331085715474645888904998822754062620108607094671444032402095824146761879661451098847177689681890197182561811566204858398586318016877497303144746881384364791450342935628182476325214946019547093968669800422522985902870923234726509766438793172558671927780573147505952053869624732369427173057010459459979138076569590166171612478880325155271087729846241444870583745531100447514364831062769917318298959010625086253728748621282538872150969409633671006676498447408691316378133692146566404357325669023925992528728699338241607049744082773111323534870150175029226032439413391577349321631913873878726763360662046362389032514584944190589056158140799844339481527267369572663553873772396615463514768372096548808913477890466503982669328735248101226043935353196498141008898383740870577042858333155933571019444564263059413524159333801401977111341594020836598699508879899060112680336641884389437493841027040677673266368251376907064380809175731442422376095753169240876237635216720901369391494222713443726914944318169238091893000524733160774023206294440011378641524957562781976248133711521310825971927264320366895293251899199747998100042837641482351886838049757379838470790774823653916272953745241126838661916724610043812999224377550713744027702837787984262089308562565625122973619799580188558291418324631188048818025743274459810819039133550730862590020800747290714712861773501277933039656495514465512499160715350531900777496958941683449245732597914144189690568935913551757998267454420724148632521472955918745965831085110794476173688762533080503408235175161955076508778270976152152665572671229968971330862183070228988543665968895316501838326351985044578558860928940966990714644245382444018256467381837352285621643853676739599225606935073546451322611960219092871788570294871858206014709635043275151132641066481832967190945911285138834422235620102117295636271824910119127517858686470428622691901719878635700614742907871661531851868300343029041478256440611357575642281276013605729578104864230131065153439972271777979218801991799145926703925648752377182067461001010775753090355713603454759296792690688977601269897141986439865646446925806050518479330718089971333957836631623969764967438395335488850875348397696500800362238351343203245837915734521965355944032649998159419953567784610099576048166131696245702745639473171897718546894625767892706590551507971898455271130142216887523109536615720200860904329465117310678805259173912799726910044624603466180023529072243831905052551309718123364360810752514493959938661995382407815045692496754003872492529859898105962321197440177031545870785001183278194334237441978458719827234327329079611783506799564943692295958806102041380959566334919072187741469998636252093189500716139662015471445914257005631385553156275219139120517151212806792524423481776074396409970625531668486560653033055263940030069256752919057890540753435614153424061763224860053531607040417035918493436949151724982784513581145942770909183883459319235230575964247582925431444125569874157144227389017416351208305669747762994192283023993809037610881364006332840849714929339688528594339500486840146973250796069156424363205680091095108076298929221772840858864026367407981303601969716875217355034993140184315984151009551366703607073155792812128047319230315719488787381116310314414431577272245627984573843778602796498753378583801144948751019552811532351438868937333297221993796466929055117875434345157844570513255968427909187161167909917137215042916642092376748826795516002867274452589952885490837053726982008907514275821078752234339249790501423929790867938534927635040241194465798788722742158763505144396518068979431609656430417180840172109342392297461099160572902944073480624348671401408595702460358886116880531441444350042627271207131266870275103005472768592369287706990846329506966352012516935188245075454308951369337132675393848279481017824405306210002145473647648718489748534417520948371196381828808810256781112150901316596791367358064059480559363091126915584607738999474497681319289680091070237915637431570581281672190608009195316662743805066295245671152382266087357338465214168762974125161660574685983367552217426016666479309376185246628161580836070009233821765254030767750076251691315550758360111407615326142896475215861875452380495371106508622594806423574806540359774436549097911441196738511589777338041164274794789093735756667489013957798217647814533051262422066962110590091755881727286369916562028544033947745388940132324443348917604282940221705427240832519483779962818969568893125526696554076406352919160284212560049791974763920873867383081749811064925587209933854240284217772212472111022466926917112790263876269190384194089107964982420705623510470611005484552033887857848221851595835833757343853794013253734617478652488625838983884308053700752043416789600648909897903271445592830387426252732924030337537661041451118605706439820292626035446413325697605007092321166872176729265047540857101087546437916756662788799305341051826398860205530634517609417528357618205244969110311911851132020745228848591913120253941266375557597096904760116171310815056075864018715659810041042636248758656115299251155938450639750346723721187390389374056768904477335425998959738635876874880973154040642619541198783347951679122005921614240223035614264763466715449024822773471013363523954353149855047761098949097057639290740187626458991622944927596231055711026066045206119667181917911666920036510231984084510755068411715116163494341036738730490097838337388534604965575505593608630379262836488697153201961234207945188671411558122029936203780911889716459668743935979248357095704346197014330834036871680339524623441553687006106032228975902435611640502248121149011700487645745179197190835630023895731737885122954199934367901430075267343275185237554386554278277635078456698831317273148158603963802183520325666107859348794281307402718461962002256642649607818096697736633024086170317779308100277739614000292920793644250461669118843441705224901730059123161268698540136868542520588012844365650172078253557386810579419334500514844395611870644512657082702753401561873259759720383134005920173623840468085355802209379659310805942348260990987969791542269729623086838341223065627177258654574453012156920388750374588403269930964231900308208707532442420794422756606318113586826750015193834709362410390994656969995034280733475492777779387484884278359295679950607170855696265029296511192078237649598473256655373787047749775298561841416142517301522551669484958041936092905346958904967001007193877568537817998997672826825658841104079635874950055731388891196652576142571133865663688491646847767995110879064522685750857950518344090717702213967047717177483297187545114927834702331166705897639989855697748709156214628323909866552362772587066117178422325585992279332182845231961901952022660701072133674828570273232947658288930073166671259567345847867169822265040434069786895714246850155209441737098971536502230304934689573823247307574323314644347509156541208426165932281974903549634008204071097055961531290919317943842354558437178884707113489134649516413834807709181916479790716086433480596030501693598213695454602136812584324853353290476613429201934861248135085501676272300482790262189060531031999303639014982366034596107154042992804679576073024515571744325263342545386425484649103264893217099914765563014901754872479496860431843114742448853960994381442074157867910434206106812773753907514215430351025621209012099499797686741206107027062579488984173476543666266150826392025665902803321170614892775421275613613780930800027882801478097106302581027986647059295493136560049872009720105307898410617038877631324148305752897198589079915290676984877056687943673240617755071495668970184700922740141267476214526734438020487774825554113171908762495725618684631990599969547662939432211412639418066079280687273492508127116938834873694040682863195973832276195768384506991680269143122653156318344307391574018085916186670402344025748176146734800338709672529958564388107394098056211902152313004990192221075882998758560613079594850062202362374187279731292226165145014113524230975421795729297600583819914116004313906964942990008457041485515338514238384696813261895549025358489247985337610386569390003713995456449927628570469088900077018396540883635916072510099327701542849096608493565700502750418382440526451396380880453018347238116968557040593529613000315304690352262605679587460522105250473442939959358618136584737206317964528687510155857406460713914314923997518752630001338110362015745394447746387430769797741565075619523560091843145153911123039473641095835576559520086506974208911180396410076430367240107099740538405896042989744864126360394093668047891205804007196209079627687543316173621373024268198171925001004379318637031496051937895052127618154117573646025602134536521368315548905495205654899044579686671666866226445917999003542361415226833373978315538042542106187375351260916385872917949505613074281921901730261154896481268463803234807931734454920063329330834911844406253800051822774795077089956107308836628585840710051912983629877805862937720268556884745168814205996315008272062463215305516782255981461429705470234465452870824921790294318715281600929737847641733791572586416780131942979449984003871022936652389666070832541686163676075167639087297359663146901545918752477887762086333526798221509417884780559077880743817051968166505441459842608373988278765596536720634860448235130921375945464097951793205120944494835691832763930446472184238970984142095216953523306904742472651580219852539898134559272748616153679053451916725123723939579004737234302318794057214080152784452528892683183483653657103880565749998536238285166715023730928690107204321913606835477335002161447156704245630523820068193625049394968867399314825903587704665877248117229060464886038424836465802011137943360800797929808706621989996980935776683747030732454785919408601818055163474116060083548728961118850968667173680791985794981805593727952352477864768399411560577957335419707397216460676476917776709305682547115845391194400472633106736837603662992945574216830771922078541006635420842351207514835325064163729507233360554069733725138409625890118924443879099828846658813489702582468800650094336793574230730666393114219841017593023289270748795645711085445173475557755743759929867667087617089567213826330210754681944230968280526448981683473558672264866402104053882144366338630181027888317447979024804968420760976739649257771683454260554010431882458173875684603522490260354925609322182023996581142316778069031942476620192364575670472463355191861683373284266970032780155381300885495498031923390736996726427954581561879740559527335283864659710011149584071812495685847706030538533575649138525071056631973426517837272961552772020278298866684265966823227912768035728162741930939151846857879905795174693352728041151570592183938451635719837948208733112665182235940541965310413524642755343077440071485375504511849320986255448800945783438755242343779806298670811855519378763713867288866234211243060815253445639473174159501100842082267338601809779301265079307539147009252814986069795158340705065218450314944058122495940591583770794663467422423526934311598244199103476492453565440134048117665296334235734922565935783203820528788606306402434391492481234013955983758026077278673213717136528113196755697662516651500649050608751533653389293517153566713102696159368034813965602626518601968776094968713910403815385761118342131262355065350080482454828234782532241864988352850986283536570263971476926408904415978775418546798987336038677826653227054509325829729576489066858051063379442967138349407121156155649055266874310535836439241279367746519162138103515775110896369855390650864044808521135638039223134672444523120551330354054586587066211096031078647551431995036213381299040089906767300837391000789593584979460794883743457160630462152989828978327793672031470402838720253570247523444177104090938038682141134362525553216770757115986494538793615137880465414581413714175587284656932637600594913683193112626863829318978742872516797520426031650715258230065033998832114082582757808518181352046858252129212226095357433865401724145947098833743373526932826326757226594290813666422328180151474758885708777406695068871207176028839852410603458771869402180433506882080356511500564572388259593949156842139066811473884260483523631239685665652804405612178066610261559402901049129290490141667336204086882294191875766265743609859895763306623786411759043890809301832845694269232880639514477980742078361564537256491730499011263880114109737665093134913950826979565913590567098047274214260501113940764370464784701165352555485967723925026225674794654386578226990864994117772748979482878966408894296654881085210182596052595015255413448438811849202297282441166885111696792335861751301321399353589032577351796309924306048730931580385537072776112016384006891545317507121886526637404635205979975402601864758915650000252573973363096219500163011276806921206238322077630815933495252350596700905660445977096302950182645723116620350919203078144908988681281901580570342714267589538027598070956699748144857426582374653629209243211542694808271736920302168208069476951696849896844859226498878008900184920746828931619377656439270097860020074892276395246792823376221628237766118543040052421062219444840174397188289170807931032462874257790941158829278428163353405198109121864606556817294404177442358492253086669270995443628164750947889719777042310875989884579182818240625455918560265414193972808342514698017109982462068738748254734205636820381951232748887004408681417661342607181203731966010873905657295412709785522222436126044104000711829031848702127895195111888048726914565222681882601786869517199197259600093284270141124586937273947440330869931809122652114648683561353927437862466706237936639723670326345460255656675844253835458031061778446222988258948231864811835208113587668266381609165818449232888037225123195089200986450140865697481903803173100433403089264911104605731716285275103463195116289690677844881599537624472495115291094161833230136676803958160034219409606329348001712617797444992416772252810618473258482171589953859243746781960062389788168253167685504656285625172423033336608796849637884706164580309499152596331961351609424387285009901279467331074806223264138205927428044679484774678345952218987675419698439053149409471691284116979732035802915223756433314832784494136661033840054610557504995881296649697046750468157997276399223291960360781614325214725794703436771283302303712715209149360407625013066359278793663462699816143155795784360127929332015872616104862501360020489577198133766499530295265657377481447657575418187713222390166488176378949588558611892375629721555134308018886210623564123970516117499824123430856642768866205658395486253019140901594673329744096028779164202670612848055437242692870563506169764036704201759847944610554552825872762846120552901328566583368900327007488252795137197432657248167394101529547010869633598955114156289311150382552557082088381979009227829550049299144501656477201635540267977892123787157835926630823698899286562708065210526529951422500249737649518239549488116442412896133479605876903086630683621998229135050129694789688134096969076778742598117290454360516353214007327845332725409778372111146833542850053735169717708565500610577250511957127540181696689005585832436444869978885859894209875824728179916615698884720586141331880728714741468098580497415497942976512425974954436005956106297244758052488211494371205983645160730363941755052537331200574682987724990388044178894034230200388578814765453990995228852666160167761149864998626649178968835519693326163342409212289883094843530599233852810550792634611667807448270214876959749279442488376276559495555468215006034780911019016164245550945566616199257452472517003971136244640989645457456016390063961931001966674454501530036748420662604183379676564361286542309534908917312449792068896280786101781173359804661129547043687852685359690049745685788053978422138405380034080394771704618462162958956993768659894870953977352527044422028682584745360035717548332561910112195750782247651258021173256471216814710403895728037513003113757372960640148328107563220392917106931997204241592549484970492066895612309481715532374515537397774354694918063177049631914249876099391625591628536825037336902128762298434232333723297050980010352793546095834807906083012912739965751844033777709135054390492975031192267846279515245320273245515728880676201190827410061395190296778457969868617458112067063468169207363268639146943781345809479463005853156121474836023689771858871854522351117996595779482888090394009690787041067459410265878331964666522845405344299836564225372237757603872253010606035221016086594765492624694393735061076581701723420767921716261297317975105790081681627057918682641773567538122196340288159651033248259222406281525938489633381373817484078056017897306680344041838417342420843922943669126288478633637759924518904437601960655114750191344459920207062619666918706096199685364715861874833768882425036869351052319160099683411273974193065388540357116843885851810227098755555357591398633026821608440295977298372085952165366959656172035906684931679469104313056512732263250249101458340809047580458427658780096085382674861655786116846177032094033224652130284792064302967478244758157600315725794208679025361930551222380262899935006620338889923945161899626163478425580624554498351428609721729297781161319098169809110733148290698922494290263311702045499633509495938087078148457218599669999889557873413197933427056228154140680181481782599772218774379965242527453379267326814595915738631908623136391358532118500843536953696070066040428342911973630064003696577693769485583718702481528736618089411376471233995375788835784820643698838266272929818619796635785579596992215948992147555673581187483795317967083934261616252805448287714516099676126343219572497945600577575422997426534921968187084058464595204296892978046210471631502909436574314524799753839310776780967402589107699679312281444902910720383669249908203906056702999733706871041687900006501549362741900445646631015204910388763108423121662183032626864399066398697435786090655312763240908059652176582731709364544504505143529620287811948128527123125273449693093038349139719053929762549797041456934501558052563066478659843187816774069403485242229614236215606543473300567417525796852112033756539762346581303519591972353958959993593164727957352461294341414532335179343585186226100411628343470148369452876630649985125539713627796474585343891613426038809465500043964863457792104620851022724108128049670675739673575852750508251295850494684142499570397184801815107926404381472583793790194695041639917462557593054362683262873046798308067765954063823960735041293208700238097081122632390614751475453999414477059020816757151502337783084256594872302435317146420308289165510079098832154853965193259181886139577160263656649122335841014060976861845030661034503443560119420754598530121764861220538673400872515493153388071516522026268999582498229494567963651801546683765981323331700554666250773309874710869942797586913777823369276926426280462917879125988243516860135992287809271493065194707813390713745452791708284184580294925393559985091169485432977033669445722232076872797074375225073871113846253660413886431996996155063956626533205935736355143228428638361868686546182454139919534581332032038308091661848633522755406755432127229758668284629503176003032372883519467449376366386671068432161829390633650941817937209508586618805697809269075799395472302406692762976879676256064244675558109530295134435373717160629422109376441910223915049427379187417299319609029085740667664520428748953570946503640937427986230117158537634356388206410867207032336758992669837132773064996302000685870082554041075478406125821165484437307601056655500608104724710172336795161006781840047383038023057841263147074935663481091794154604657284396401198369239201272494958224305946678171536394218226056268619885218017959577642432087542486072110721514533700269626107728323687978571804651010271410645436926840603348856367389159670914492440786462193757925716728874742986440782899427070729705128234838749867438473659937511510726072909918781758921935363000080716523020208959374011297592516424074798609430175270018263277784900186699999994449473369539073958795804079131537513028404911501192463960279277840484269152100464445687237999375349662606339049039031843686441081537575992221746441720279333420762495414066186286750942839671664926325786617764859486491634120175648551358096789085715851950140151764670763479916130350764820640701147620528269701903506003473861125633616863415464530915977076551061191125565975105595754002035296045694931980814950711602028891176666937764267307090308012803709976367176577457412114934549389855644852851946684667210141657274853143938841475052798138643096563514450202358473970090229145842017039648126608225042316338276361906588973600459367956184803239108558764033215159803677958993119470366747496421107529641310349178148155194339929484998560783867734686623886290393620281009307102959538230910970482059991801929158264209591564401657454522530440816311697221771772385302868344428629254966527795603328928783781471839247318810114860138072476277861414044108292832399104037802140213252825892863079227820797712615148477979510061459270920280254134121778293377347516352071581014962996920146385441578464826142768100532819745037608395191219427573916558122170409223917557456950666580347101359527625206428813919264059696194470353019008842225860357723852541402530268611162270689360961609035212400516527271021623397016011530615114744950109975896443522682341532819996338776027509325350378326139842347264313891473700650890717757413067552438314267999822876894437224745309014006749104413020440402931374788889422564925337913524346763485471756522155797605565460205215463167397897724497715981933292252040803470999553879083464444199087367124297049600237870607157250571504020889192189398091724266894073794819365809084879313201123693543948464373518350355068831886259253109518131658054952031158349686849959794837805897053036307173928611493672184453300097284357294638722864897312789390197492726974389932364858426397144990774463324483477012584495742500329586002360912495844085480650416948516224598111390000181855509783907957976790700619633326420388359794398814709340155364823972392798209184700125449906192819032760800980176639068312533981933338781359545939833043481897616675773822341988470662516101994267879738366804430010945132294219907836189570685838007247643102585283966611657014719576647268674400480955059366020439834786814224760742849414724878282305937291442244386124811082548090057247132127449899137367549623490189000018814805302819728014147031835810131261198049852504302008618705255539491822613822669364665916572537775498095708005871138889417184807419967462855689408830920239678640327158349449024977714673348875610396847717552581566913442611800890628251377330736803597329732173452346679366236302205836114573679650958511656093569666080294930042596373615045253871174726697545584418791234790799448449448864938639997550497057145475496010938251405457413501699639688731113532164006781047982685519706622015279432124841306377996164720556087203266510121735056302187291546885056584499127552226624656032720153888830992364859889294890262070891218503707014447396830551902573794998120672338510065489374195482304262587523450299149027054668510101472859365602810032738804952269488989078490914568317685612154179317185922902153562270373114367369633427688349313528070681713783652258310760421333482618536061789781651011107485492769423258684293802217577845395062287192824087184003701895708362958937831447735897452363914599108615824505077303004678587052947703937004186769231808250113790896435350072132360754299644937714632878588295751136787044893713870107183675972613381988934835726979050786266209628148491089794281134170611228146670700196775394632733014090212476832094767359022494745257207899451748686200165362222428314416051824612991178865415490627829309422992488883257366155322159768211706110684889480828710467594910656206644639673104885687924946877919157358646821304088385415685149283615328195048482231823381977922527314420175074141527913158318903606449119616453894539834936916894765030865761525325619973720325413948824816543219875327846312869107679772752785982661849960009209849169526145068852549617879400932820369795371573122194322025128457573346108567871147417406507196154146878020733809703085561222801304211715979250849763629724210656243329603493256908313465903924257632304860698093119163224294604737551405925228848804242210488203046398230274967785002170688073710043595632552597270176855834476719304658663757182949313389086566271512214621457482918757668852520423681130790505482835855716638788632589862193561493087806155818614958335041456296645691263036403102351769669747665788225445178596436172864565489125106315996757203413125536910770867782663265268664362033131928819227475732539205045167488534512086700151853056007175521705577284113390460042787316171605031910115528846794178618997906503988181333758474080255794130266797248026420712859409939761086984564747391855316690994704958875412351705502617973017022200566385961080625848170405478722933992051804276624848598281320259184774241797954976403131570104901865022640681307951847065289524620912888795723569160293263933378166361445901031400935755944928568779589594708114225388894135585885573661110132766350776269530000138076696870708408063673531503308069904191820027262858359256307112568641295921328863208714725338335707023717056728393923423391391017015618005073863067852988140201348380875859725046663999512118667782069668300717334448443090948676963648739001635474967554882190019594481355590674069820488022273675238325074154015834549261788709597674057172749108275348487398809785373799089759434120817376801614664989573566812741224405042469284829352861664524905103413779111662260388970241367971399041243557194834268916867801289794837649249455173469669190106339386764085963675646165913350388180628276604491235865408786924045400843740081050191032020041749422159843525582974972468675891883123161461010244969309079073901775604371506539139087375834742621602783541046138415703825261596218653070526119089718895007800979583332640880520079958500555162488765510935825238810293372666064618740688259851272654882659260899197247976055252425101986820818122729893996544177293382477874596227480967337674485006953676549454334829718085837991900309948143714540423939420116315798673590350925498926760863056850789476944629038034881684034076229057942263684486513096778377090432157359196008942717478422660339647119645330353523944593241190722473661394101068457868257781121561850391395103040969957784243637067026060366834060881855442633256201677692600388613723300841854618703298505795775754253711751638883914484996630992329702127343481903572943952497343176418647056917155995225792568016654856206228884007793037317633736842741815886736621288498993247271523567817973602505280257504380735493319277288835392695986674900186234093597294692360979631749690323031353058560493957766091545945857463411940410648284297990653609159562201201495766106896163105796659887715259153832461794489661069454238261716094405403216622785638025478575915679231920211021320692291761685747186073844408892154109126962371569611975296161022956096278204550782720378836442883735174237807691165888176453064226893969538029414294741295595188760210381173394202841935732455807711516794357291118668424087670072676411370016765549646318533578923463564592374592507127460304877714988457506531383683901918571663572024064666599254944408371581939907745068139543935377460075629607275470602195594838904062225033191060842508220745852810503344678478384362626364183163629169479646867586267106488152961247856177722667230392920210843967222899504784110368609336182978007980905537747187116401564414945806257610621539443407419588843345940408711247370902644840727130026149346982580288786142623558960168785118440218045284440576371079191736944850460158303472793707815962172653110118229773265339166857377756334315053395911000387578748820297231420713368707462279370237726016124010826908995499946614874961539893439375787113150895998180720894495041556474924442400796837934642647480780092399027259250129121836358675687973856250701946549510849558079863856290508099567952071344290957312157196197251420011513353827413985067265615495593495280990419221944364223153177543770453273519297280558657841051543754126357532902604115378901804319767029311158743006678385140183541738297154796543957824034493758582044534920749120212266129864768057293673282911597718699684562277249302886087566086579670795997837627080641660706370176326360318002680653156245874345529815684491818486208401075008229110178562854896524209940757243794987474102169248033245509011887505697115149683678807303980935330070960084170923831116432756125999615709805525760368952844577355859890062299446051730420002694649730532552914716641246402504363979916322704284240844625980342098136269496591845631378206641920728962258846770454733607650567676289663650137878607386527181128585313085393735352861478619832374077333441162474238495095357720517763476302269472883001867033110032820754437076185431978926356598943778385036720906252558228648459400771199738909137146566070563875938967762594094675579448227684304738194631256506875017512782550580911137509190356516838881741166079785515514425315454418440941767311079001653337716294931467590115003489691326505045029315240141722237257160501906748663114466634923690228517297139047822409365561861232987932525037136094345963386361968321232590660054307786979397179805839297275882372582377351464148685538731062048904654300446622356759337003129588389126144973111580833009544647220179121045418353810830914699360651829393382263444697267706316705260557911104175960094176116090692857958908754470092916474968258255416141707247585041169796404130732449970207312404094297713577958970106844776936489833867902775310587007889307237211488636643943026952083594035161632812717765417691222511421670173205248892593764751772843671356573986054369531977134796767061929980348910908371640502241781105171050613988919622683359078239771569193464353931527493547331072918620211514915105850997863280236963185456841743241598384692755729097544781206994912898968446434451594454931977056170220881385417685327536211572267732706673539042743021901859400540850033727379145866755740657147753305991899083387401347538612776510505561777353498305739099756591799079213601274554152814516292549696487976356812835047460636507401688200428162707157536212791578233354831639405384662684268372033133572054020864599067230408075398390820178305506190146911936005308953475926836900978453370608880177734914601280669607931834001630944434201508215994628351239345829046345903983276607034042422491273492376364514483503167453626940321218750989790820562863521575855617928447277648290204836867744690203523104491671998434913668817330390520464869365660082467842887250338975704391013332110789368067182235233161617513500873982729010569491573712572467730446023656902968276775081241377671081155503598278528693683186243101499180371044452107909439367467702417179044496554959138209531321866288640380045059451503503553190536090271810403467434319064730868367106476316725559354451633494169430409939989657689622960065968236217378843199942508630133391427561809462207119871551171796327734117806890108532735483235691670654464174762903316896073877896936483781470498497083024020317652470275994989135395179090228808700847309695780681468762547416315543327771279246091386556886451489807360674233557762142370764623582146511707667571936586326065087328588677815818861757999238359905687158631468626219117501014321984785491789032774064130072111907408409571206633760704801251820190631647795718586959449688288377583718775041261875070360840079092624162282429945255042009449019517015798886915403481963051036141066177256726209260534264033955204838565680505107844159302134581681750617561116726127538691700742681818344795299611027268159401298657796415307504325263455234678833184844983541727141682999497748518988649541093792262004355860792130354916282145994749625724034135967330487096196870462532772643873815495419266824299980681276192362797857371858829784698790688329664207079406378410046201990329521306922608450605855968547693461239190674245342039285075801121958689761455257115854196471293238598322438303600483089706945472990438575263940308283816697157611187882780217057156402805101518438060428225833545623603040743254196532229040623586261099885720099822898892308246930563072747983845743209941419558137098452146817587257261139609800905331766069745809664052990634266400419514178611011421339303393705354861273944809016096936795505975643655616118562827174396181442783330122275658947475235405746858085049437108029902669867919511247921704714641905259236252800795729206877277274496121843113764680496240962206263322681251351449488175507054819496062918956282488899194989271713207644141637955646238252828393639510517873894274269516487737621459738921795024292663438374433477690629155333642027288369434630760119046482690361306981254863688488005260579257096684610117306156179090101798836594315212395958072091035510758911957570586247767378808652937575659607875811111736920677801187977053832862944566373752120516033630787776137530022991535465522334737860442509159199659950169648716921451593330621423674523322337602679222706183452148156199282927134035232979461927598156535812323153294877491767341366181414891523054357462850583249801154366893252998694996738556702671591422359586283208582130568135410964923678656698877949244498056109589036703538376657889572478045222413654674814946682264612253904431252042816144237463135624310947563074880704223918303765337523834035200049321317511890447032714028222652642058113966715287809832813237841088757711978068646636105357595262400864829749556900544636947059291483933107826131084357848818160970635592069224946105502458133504170270373643950709989104874067545589115477225329555006687597539117844409005189160248767515243504762091928965087886829780385543248298003925305045908373938440613098793536425533646747724258576896070402504782255372377042418204839732099508065397211494945379676769450941542296925998684006570585767294241967271909202071142866504398513864738184079164630514346738786843776727193067475117755641888684482791504439358027444235758920802254889966424019744038758104407665985820927372911370677967856077533336226972385097784819908504742129780748005463128558625918606153885414703251628210387063617622506861970311886706593002625818917571683392507303649275646953865313307245717660395945598713188244201501896816012069928756006958863893271465754002744467436393718823947203634005906573340221889349992662432801812497419924958377669050529621895062679494077751786441849137647384990161352734561275901884491170906874748969254579464172205189949007494649085810538110750621412755904884643126965760743289421731285966967279070920232346518598040488107316674525004857829928928523618916320905902799182153605170290507127562171166700012371588661093542616215697380246873463204046210135138655968698009351752366496886206211766964864721752683272797027223420332312028970359375360900850192792194903191818966242683630805210246969007414345069803634436984036443875358210109525264032278648713527774124223600617185092549163783707200410391655535408945113613086159794130155723509555757447546595345362571068862388863239786588418794346911355667121590465320301017370515224775176992936049381419088783414957105070147032650731002508482716185475498569581941489649475454501504151435495843292704681530445110940544886060429857345058280461965816236786205271285700468999420926183466158769533111017525422205948854693985370943282848716738455132681783423349728010440122581686388494955735040033629548860258239865300499998116214965417534189051474151899841117455129875292013361057317397034499460972010183634707561433064759620017986755833127661311006598074383300334783563872073896002869795819775444479671221081900415721761746158654284025376070907191815110930379304760422711599869658322599756276449475733981844292789743927272751515601515065785047151490072469445357404929984938010828829250209917906709070154200657088729438754510601497229946708658326051828631151503127154509974967332606355002015369132857093843463224854762683901539064268473733925189926959009438318323799219233017526218205014091112732741414448731727471270762541537218949487112258236007236341193207013060983741857230929370120464781970580767669879312998157526852269558495660450324380883902514658988217282160229102069283753295241911738106578733080644841288962967999130551409221632909690409015505068794407124784913771652896052411938610425718113260091091075319658017535924619471687943371004462322042613824678849974565946192126054165062968485442323568980836279737825300339150289808024247311256073390765520217199531006269862659043724912155126317149291231547015584306702606667106754339542711067600584425981423260820625499219790482785888149210541114915547250614127098123781747952685882030685160794480082034413136789204802272560349130295227065628184339328936087262064953234063741353352945928570786263106101957889905676175037368810798786667759483756137693302282811095349434498744447492052680129170584145151103271538376124846411714698811712990868553565384108891758749467266855641861398120895041714735671992221570671539186678282144646327176952010571842582031342999512804996226326563274615272768084685675922489064409656022356187906993165660458131328102552868258646950583309136746894465281170662689364316207573692516645773210530004268535097357564337887043027107137486314189427300336435935559234252150779555742453039188160612643245993804904074802887400253948481854335740682671706116093423184496333004581466850645236591719990568045345669872227379342827264258515277547863102035266690741627309889752284471322388709635796007797969247390177918254426059948341455417641768451488027018838029040092036273693965470271389877120668720349530018118679758990615048738903853599402002696321813355885245205180016569828142473226279247545443465544216455576097007813100470308331858982823412228954631672034647937604697620237351863846040134523211180281551532353004088966274855704304265480626164068370090243951952968218633636207159232137834573662792889269000879150281781925233184018964502054181048583401422868095157434964171074522322058908460997478556722782927284136631215034171647553396244701288376472540156705036853419615129770192943011372248470750637209825483308831004694279018006742375645345083608070596576307163219814985080990155689684810637743648453227134381113055214397130394252596036899105320629060286891333797403572478600519919970803178941436722290405023765750144142332895118626679583879531688971319646354296209207644279332015003196392492818799602787950125601993881366541575134620010404770473400151800952805968137269109930837302614558028420966584979772986631963524793309159422105434557178128592852309386804426445596809639153004158444775852187075381260519879933257881343213337059307341422309223854485284393339445888769507345089150783278478936547198598289403500537080587157821642711895130283399617514088862651722787077463962346263492206772935958456279143400923189774319956139008776283078814557800734601336081178165518226654908555857812331900057139147091587972837371001622104387812787234974595719638281018305119665910311045646409205213415946247112751215210403164948398699860518253924381461613936724646829116564275213754793545821515980514136635960875220609814174913226228973500342997146914572501393028573030433847091781843046328570549957829970980907817458836471769155075245482214618533061404001772796430478486316482901131833080316323652061392842844035634851418957643102424855223637075701745724096610452577614469403116087243357916541884897755267946898223167060839889428314935361967344427982529746504289594145511435914183108195486798707605727225713205549069248970261005641470466042190164440526524062843180182423458852325339458986749368412472803126598582300772988456560729971254593124644864985063479948373097768883721556825713762778792589282895765490409575343635270207153766036561417570448946828915770546900559294758492432877965379462271314488561100612740858912351268452821529479249797690335931784876305640702816474053131184446048814073542924035920708372098471735863093859443963727684949814608804364508404328502263226754239455841518629013660435359533949067669835747924440897470544015334910687415588040587533470176230077611097241280622610986655582496601197527983779247557884846084672743118505555866141723279915629767396094590668985041407362209806976243745905333609076528682174114365273689310790274979278955504275087867215241194136453753776840216712542599090911023649850026275148330988952234839878982084133756631572432188333336572189727954341276493995061442238937981137793661826017015051021903389073414536680340034646736752443455868697276828339402071883498973715392864887470251820079409742372762061743411192774163644650354607637288883009793427308517743612932648593758898160437220134278480668539511059629409749687305422872457259467154900017316506199689840217811095416187778193741902745553147696532323441702312165861914127527495819021141236477613871458462913146575474857579162891935732346196685341416766141230301889686295639830836431477055642603493799188702345574156703131969594198049374784666897559118288566045035305271547450832164762822630411083119642501266675962067169650496222441156650075109296295846034648224449982314489767968856639550531714849593867413340047329880100414922401938660125289874763056335889055054192294548101255047658599073899267177901040034207789087978208773651641533758867647666881158529013214995585007367490137373421341652822101713968560852007096778106996941721424284395915335318203737884687964590959283258695678261369506068386773004347106951015828993506113212155598473467852193488538349934488596043657481388483858630319471009799075710982817524021155573782431933198819760440818687741684180214067783951149123923690921261238717216401060743560320225922874721031178572529219206744238959424531342272966026081903971173139278235530811390868477455520908505967555790396703139176940423441247154878433228938066156428312937457703227342602504474007459473820918944157556421088224063672127288120502660124700297998304165276194392888879306086990163499520736349851434316626133629006407283825015007808386437335274232482795575299531498438163441913471347254859732623074155906393545242605537843650546756327182847838765801409176026982892480545734986971948880989656670315431626286372052350000005827578244371480158534901059649792768586437710020279329817374111051538318825073842870581017002567544238662120069422047313429835995270822795047785234321928356643061735285735527907588533580999237092182807713077758567792444316467496997580356866530132711040585916867592001723226824551693386347719275818145727125128229727352492994443868346975359983349290432228201858390928187761585458852109269442530574944234008264246201224457587723392129198394644650218173027626842559772154506218153008729211468978996107981804770760136863998765739874449138992991050860256515587758229141092949728748775517296129558689014516206266151060199084653205214157100121094149823183378093602761489878269044427373222746897309013801668312623878508386820129761925270828684781793029360489992033210289812844351896260463190204325459750274548049829035638079886428958758582811055284141999874549974348270282470751341439553636550470944376289523864828207470408478738772380576325078357707136992677140088589690952894910979531425219617230872213374209985386894416286977329602575610150496358899064857978249269085930425582718101714729646553102184686778690898636043282282858330026260551151183169869938829766217549683182555324475951831808890058810639802465260886937750415444807835636486695050524067078200972421311996232254867987638669237678256598928410746896972535165260371445112279548341767895447633002696678576019178656255486016166530291668584728234958560585008495951029354920496618858133540152087411122786851176413540594179875651011626174593287008083958220640271533434410159788392656341085017861539211705763257302554242138285760832863653529763623617376963913209683150066481697282857816474936871409758356983673149528972296869793493351451159948333120078668163112954716526081121037029812348076794605088306699679936405465130997192245442566449530425040240254788616681818121899635785828613503299058626505313551313489272406985077826157206985877518473608338236256511912879316289088922807010120899479338609073011329411480871155639554396312704717174221992351161087251878378300724063839372976351364340151171065702272252674256270329261240699839312151535347785169087971379361536066499229348590007405963903376688575571353492743166821468114412563944531953893948600629886421806414645447046641015156669783715799974615746440210409643059162817356018047564512589985181351426213550003442679491107578009007728365639175287344520388852606640562816044821433813499087403461194003508234251750362899898118812193583116781430367701245620734922499316489860090603131203494566362524502009684125819926609224598428330481015742216125888874325830603849848172701272819487155232133887183560119308827824876407314690273406959998588088050512125428816062889569604022073816246984363725088821490106001300389949164780043481770306774371675028737027067095764288158014988628843411120171721263659326780001467140326007311152669638822598871769628903304308528973064720412239724025767492496338929280293352158589470672305075747785780125610736742046775475984202715912352778092033973956869295719148571093885792422918747624857455212155382378874596887510531380466720049507232662704790720062314005780633985690493126090917883239235820917301229107147068141528254433352194798557639019892475454882602876473585372561859133381132199760354678321477109344190056279446244837837344014603167193478085990537512649329984188246374321928022082362432049708112285191096839907820119217464269032758603567814322844978396869884850124863696062076902478619630419343362893696839350834901096692019673809033276139029897692244583856402776736691388431473311156669365214722428325829757862539297189149910483127834372897109411938641585807164893316836611024516544109998213965046536754918545154237511054943153672533363361545476753255125834366075929077588761330481671336496210546300145567430844775785690311106067827600175226211442134810692441465970633690319185429657025257311645926052730118954461100941446360565487409374900433143625425569597636858944030106774981225504611724957147149198719353457412414285957283580623350251199377890412154283088996908383450315796601494934956687773387850329390072068073695130802469622237936196201435228622935321464293271082492106291039073168141182959963744171245045244389235738149460495053221325879172038658875090999595491992057286005900232262926789708580028587471185911672493089362608538587416953280546963279251484201721391665007055225714379238541676857202609557438825725231332656888531740553405589375998715636453811290085160327634352380275229101975962249574021358923138663163227526044817627364570466032715266144197752139399565441220629481944977235445318939533197702878774560243235239352785279991860247619284461654848109692194869044273937665139463379971443544898164059337281661075203587542436906783893268615375196426214741625912021605812762606869817597874285242903910984567634652690346954363056904935466000496561645565583023789478940526013661379625023511009818537141690480834890997838128629671328718774458699012718458477154544740593801802486347754322237613945455592859956842566055337492116983816843142794392895122334301580117323600034227230494423565230350021030203519159612548947802032345394519887915363236489212338650334227259816230644905972935951588658430198548000640271284262226932081820327896190548776899232055565149895590771199563261926070961977680421504698423512273281281914272512059552468171378763253484572068731515252081610933916878210385571929781480101316787519453914887715911766403219605227474388959196671093761403233431378786179519405802113487034590168864601949147572230839908806006402884680560095946282275398111345198270787906969453325279138743756384549424533685489299163794316140210178936790819045023734373116641735465631206174193892901065412409637926188073598525730159924947552215407614930034832993497421879503537412526241282700380087288209985933519439741458713197183119083984029372819189512169338331672359913493345249712250895405543160550022539113093487087043509270168263989293358491550776582253866107237110435138313106790615126122876914318339000147563419647361584547179192162025661318990656901569661515728597424532446219395804304056923697745487726959883780240403487002814530231247634771493780008100788366831384714534341737291158104552499103127719237845356841929825997805039573606644042424251285614033882006229738614997594342406222908001832439817637807244927575669549063947448224036089649949246127493284056728331467848759827855348582327298815776687413571573265779445910741808001816926128710069731232094041399060690278543663904131628628222688197853477713162095706843910617050699752621517756817310725505311896845367491677726526969663867473858434738592898727216294152914438577192373120152046073083394685481702393251882828755109709378842247642786608111837389126366651261082116691598501639302852635244536460591315822219216708665550690653988995238374585468174280302308331488726135739945339986772014491710915313437421179158396137310636715935694946025847534183499073190632704340748888584550436508036658427674993375904688432916974140957499271185070883748703548865385631490466543961747448446434524931446902093421186659612596316527814842432310136148536696023171096486544398469720124990892968994493034823890722632272315618768970643297704406753890854812971543650737043823595753893686027684936811914523465975009395856814886043727926819633296736269695791174065414119003847311156459619667075644507952013497115179483395256097274704715853884738336666993271148075444970273950405449343464182078736575074229594537893455612455872284455702131525858741132129960365612376360498236812493242405383048513347034990085478630762293920536694126540937517486884811069092315345713592080646135883261033334495017260558130215327080000055765477636758340551307463736270914020055544139912353180577877135771386106765968480392737478774449027037972410720814363520063448003860209795283695827040263236917696948746636270492052527162761997523384182963227419879508898649556007927635445958078419279962997471924222595938594099511076230218677106410922257360502281658544172020671618230153248281481400266335020541854864008647976385397254830165107434911540145810756649784457525670097482020315996881737713390790352480943479590948534345265865415122489772183176924799375411374938164457111492292961562657320254578004995265255727128374488259277267378825257128374925995560806150971537602002935821144684913345059747338630084529171509946746928122299254806135368421908598273241789592267821715731870605005165016492606508342424447008626665660881099797299777359052197353089987195921789553288840144252258595620329814634484685587975023624405386162458965835297565146123534207869998080101949116208503767948378425571857404714092128403711267672453270155218015556892244749946585677350977522675488661411739095760937051268968774725927376313691428508468894768364325497345699753282313779012074624877954339182607773646982942367747042879282224522532267430195603756315784547618675963626425391578022196656923529118208297428807922820787021745377002493302284309239104100211622743562043565196713959285698473813358866298911825700561138681760521552895582450537672819621886637656763317028208726514984419190525899408458650271554330845949391819983823195939261515656480918994660702349574968282598699325938916868195405397642253843549277000918597144033615327466618413530141630226898712268614542119571645057107527752659961879154277426381082906602942102653438282009500215196337621628544279766367109860441789644203678507731593856485302913968658624249321024960274751901472094817487012453725855544252342788799503271490620324924061461192643485247449381723913601856461150752658076781405013943592637291094038588569482730338323777437706109976070251122042907451529240218158878407594730308696241209425841660991314657511725868087182386019921146639915637164050287189569795314222881020618955412116562103440721443329336505029375603835338587894630669839758262762678207384850784789923587618525165021774278505771526636504218931035995597759691167716443385389545136320985983049910937867555748527906866843332772025332236817156014782716172601676639993622476946938407985248789341563361485367162039194696165075828963877304709552361407458466686360998403586190448844369530704863001667557165447665215957773876760040893718945839177522048847627722664495680410910728433300253329464233539859425315352564007335910708923282975037900446062543125615025358293197403764876985373251616744383285288075690932313312397653782702898051825588566270040409137292711048110453794778598335607070324553782007828698388847049297234012322303641967973657529142456895499731904321326443852568129352079098753826847730117981025296111802441929338520533274802344885250815488815843638956696834225885928799193989862699441999135607795385700057225039552444358788022747091731985331221691694218507927004171005494498495500681034141615126309654769744817063219470200012868199462219144760252805761473224014845233248136808230765386055314536923051251637839690486264818143944751425938348617786385083276751597852360236788149989882110176218348713823118531341271517395302205790702918813315557493346217651514688537302111287630003957609549615805716378573083012436957498205004090431746335951380451606328588583115046734343669387408198699995398111208771350828971848619244865595481305936925815370948872162306330736721013470260271231520835114521876656644188574343053261613813763903022155624657077171970340989952973965918072252225077699097571100396870092003208765658299916846988632363558770621885864304249757572287778746399374198083769230953865781707891498859498557578133337382864951167995429069128482663312180549882262626799625269415430133428390464253467534727252205856744042392741776399100118584403208502398707616761457130329092019894879839387360282143768871915323495107345955976451367132652832484141005343987412745574546053589932832313350439891524866917296979401463345088122550462390570235223311090495461373184511591517263528873556025183161181838552562383270855093630320934936343224418249521494076111874468716936507829649048499693232402274166286890783597389794034465190127474130090306354641096290677568214199773146810572711934889868410351297883323184598386517686620502793853612604062899315512539738477712052645290135951395182972749777496188866548252587307793682655085125017546462435701551060154295974736755779063998207186660355138678543929925788273923661305053648071881327648883956538168333716153125362693939939477935700378629226716497515477998077546147106736815623032065329765002055305812544003191197998280887276825249092654860554939417680757385205412466171030749543105547395024753094390065653922869990418625659887295952850009769789488012630107073098901785946175552800026227892021246539432789784764820478921007219972789236783409018693014327914968817924147552973044367080066758436677068194961674542662870274529642300272681809724301132708547029154353762641701484852698673107020205194274634957421259942962979460697912533018153414265654389042383461697095958106894340296635761153656219328307419972343374570368664286398796387307703530393529287719585796317137125894802991351386040808677148425562560571124504682073105805781523519682016132338878590255762895781217306721848222791169937062591526047160545757607596149522219154959639759290848794010075342853331757352324568448787220322841313264381015947822212134933999484088934387053196237315614410405773348975092595920565046001019226986652365815960173141048810092271782560796030556547732937212425546965632526963067121483567127428506116818653869403298207848443857089711576142960432092128356230473251153555661950649717110130173390392209982945423769701657062952649935813969381529951926446281988652184280021164194619736635575053359497424699263740981605780747064434181517034602091613245346757499783713875888417347982952653286361335860143553917403720921168667881742863240222348047038613586129507409812307598606700023068628578069820775715611245112143403308442939012880622891732976475718032902706719489923481400043857826428207982225075394440935438581046172931809538239441540940364937585569249278787204906537003027256588601080582886027392340369871939182980422508658806045678106319620297861649797652331145725367479259674848260732166422142222509431263146661272254209859557383079705793827165531116889314115069844988846942655926399704790772679220499639452484057249357777919802027215611966346922321257826529407772182320355416249591802269215272032567305583745984440336701062478104322104067476790626866999118965958035485798125075806662464376667420861162068087321833958255478213438789007099984728577245944744224265912853630018226339277478925423579077808217355019548207093920398762110179227992989859275567729608018063570437459486802358798848335358344545211762820029580230472279885625387352818387848004929057025031708302470874118991301194875184545584835432365426524010063544705932752946408020117336417317091160083486576924486335056094581262197044870270640613243142065115035863410985713273246512956365449525220666662654145541432088255804629973072324654476833363734530808798735313004782023186950352053803662619233513642518818422524273539530727585032290575892808038711065198746034504890430854365094382817488725425240183183550594822933781372427495563027938525764648818298271076154472159506334723071292092705710547740369226090552752258812740122117272407423680188905119215800479272302434747999656771471328541811305955101256723774315976044320044265687922272805232398927884925343837898665060580805311711723234074549738397203796062815307850023647464882869149901816279674653474520757260522582298503693227384832744981165993094756667007908177629085770832939238399099565463059739757144853564190835678341504640660195067559443615356271181056087662612003141399227845855432596787207921292341913226094691615140506098462549680309647858692591019142928320803935724821135869721864463994743199594571993717543122587139587703146666627715074823440969551662689427961569578673647275536172275816843884273955214951660301555915565964927235331964115746660073977194471113054947120558416816408819565109407995768152681601726159088505052971433087256970090633278079318245743650023442814855421308972861552978655638393247337514210820910167207282054970260068011476181701862345421830905008009462259901821857567609438442113043046201315566067257124985445052457162848273060745463977741432042568393673990578862482524288515710565650285807652258036912873138400166181745337138149197364318383297012783227433639856306483621245135318671586805637160022725945975852994445646822907609477154441271810659347103295750798386259101875530904200649920943793469891614022393340066415076934393775354287297659294704046744894358630781841316929671540430950339784818035566663993380231568382669901724309776442497085547632076437374082537958817016485919128855650912875948110706395946535588845637770484234136414822281490904697422224604094273035218428632155848799655555696492598617515961590857706729401496677551482337690288300516054670650535312648424597740375498591218195926091487341515620119372343955776715846256250227388499550944343983988051682756356545280346995408885699785059006900002244903834002153175217254038417613606320794870188147947080813980449282784457205875556399087991812057543763336143197252662324736925247093935849356568452483838406125756152147047612477456106116703719215007009009527437485543028354499654017386625035382889365346226120000119436171481510345577064117894397943899576674637395788441043508788883805264569356976839795504647484866226528904078048083406532087242870106102020677315589706606551685765318772121903247791285417828849857664113258872917188443165761945881027171580499381586015194525260832031419857093051084369326171127361327193589881642915240190317808730325285926020306719424003111567933968167585612089449117615646461952877672770109514504678616419984281375822426614937453065174447939195733822029465713180802367953014939310182076666055632829337990304833173254148874577391560229124590714805942320494678528866103234404288204196476954540510152914113215026380894734226380254164181242460071808170538216310215207766218179997248703384431455240300267694714368869355177307557048484502272593874160928831497341440372190911808952400137284107295112739905865297765607358737931069582706019550638290236380053532020566680976078239606159639503753938657502821306911224475044782478632964927366730826342595526321739846918844570560895092733364662290410026085978147815390079510421125952850433582279063240344210114167057736451517321838197770869626116573853272411689717860132200528121086689703848818841127624188531759086868975227904758543895084375345579105835516772113031530789111191739807041890994861696360200470214218796889414347847632893292111784931136796806769306169392346735108012721028925171623380375561071723761630785875048760509433582886687445112070070995714681106412090424715484124380461771867953311925605666759553094876616281555959201057372356216840875893949790113876638956838439058613538558368469808405161675194917178833705341075213966979402126643084042158176367269475414812471805292122171892002350999074885371151894511328858432345666247942425742019140948476678826923744857155968265429838539568492871330204463249168146117355151088877102097986590394130573441104349729850026319381570766873609462219170065901038131966757477560214703931709862376471673137279426938962479124756111013846888383694536968553231008254012810952174798840677482735636126425027358654750776878314303958859473824641298137419856903069198468176648153818092488999527123885621806894360559383296825938422614482259157314174047332777490911517836994366568324479535436365529942584590325145854632830747777606689009044053700922019746860819752259496293007364538176577739512958025237433628809275411346244983060932138326662742974021114023078940134057854391391411328675202156757222543483557875214870587209495256248808840505148573147473871593038205333044453323801608337729407603042852044726847216293878150414654564816090987184591561013700099577509163154806911678536760463634548324901711651241616857394688850907822541034100594557374900089502853383286542824697591147066566185309491034618168491156143298700599156666444288375097876108574259096131216618549397493355563910128068458866119509720769262745837051681200067310055668259092683795443090266180576280746872221168269066908495112305834600394969204554969186626118625846594974566352311607484808117575336853167909231390439755538161588744385006718625357370151379105392323806880038417049548982104547909910865951355961503774548123377600429464076667374351843295437877423564691455795729380302173631835273657502267763245988682018576804650893659325228506073214045838783607110729697359220681783980505268214088009245430388249554243351320626418276891969675861645927467564155478607583634840745983612935079083631137441541768220419314990281426638791749769320904780577684191900501155622695213314132974249657696735349853282328903907570025942908575242353638470253531686996327884067329129989136289387379824058364264476351255266947404679233437460319317806726014384797022426441870541267216371478320155428519996021839629217312441251884029227190363446705415734027964400383837175357629519104879474069040986031592670110856186142364689035104418574731144767439044653445287262604348642322301353013900224099453244738605132225444379986508918574819092100627624176000316629185024873644561470387717147673895285607259253159052530042425230525783697725118858754923688248313889001718041453711097148403711395605596681499291754685807921477176044381361713832783331520132873508789157276622814253813251924753128153821375110303959664662139964662761378646466784262977451361714992837573804791341433482672046857620400230749166360620333278516214569596681941345574403897693260464933220202243349624147995339708971057781220604194954461378325628362399148693851730440490371506170561924404491930105924961247757103652781663452050711602181308559108265053060212551063861075130110371174058430085931578343256346493513251231841662600260406695216544988014576439295240787344786631317986496761027310887222075684486070195922265946749956604413655594806098624828329454494049591289521502134185601809522568200063527084292833594437408640826193978073861209809662253116372229710611427469326105985691516021057598687606636672809677429183448353601097743616546609534839543872187971130222192450550606503694437442630864409275709941455590646500337452273586910281938482292754192594302169422372415337349797791426627265892150856211849725927038299717335352178590821867423952045487425097958749701298739869579163573314010009223174624707115238580420376034816266243549816770389567980474095053292255768761355397393907568716126122179311197680681311593505983974365776708220865590399554852572603688185617059333119351375691350498741051678620043926615715339347141358286206705090024275613369969071288894058608442568657020411981277476176177388745622367709593882343059009256548818409211054680136557545577833634953684605858125104188355044007264373415740412234997806002454154330084459420472676576022166685894388090112961187391555675417819887475666736130448155968165247318779297446838545567591468659510081202398553420502094177287901509725055787586322195099556213306179162091207140164525936687048240589773824746839276738234744926946429189519055179172417622154445940454708120569244179325100318415062627974561187746443094833692017241966669451306877755008562655993253139064361339209614305111088639049435937600807140264322715520070148437182615861945077979653716065747808881238671343899488237813581807268252308187948701915626551517756625041799866204740718809075523041113379187794657301394706351198532623535090720718355147229919929850128891741762449700474647973139554553823994307551318553069528095216718506584726341522403318548152673286684809563013653067381003110065025902862190143618948701833395054039608268304370341760955630513162248984500727833268459384635965547231137149855414411529910881306816790779570131722330256836759787658531821570902429278838881782751391122462435802436697178105746286976163473715783017987085421060259146338246388788529639266475775333856924763476698769179823419111702906817933348765631609865844431147745351109154185239767504778057999629419018328650812440090922153865302880153814749027312801649575643848475432934616044498107296697981410225374283782253325990876005909311290424252200290553105486399737459635911409215068823130783893583853019579439104398643401559573402458022270488500858795714827152894889102413324807822025748887936411792982654006945659325001938172635807568580865467593083971213851492022953974405264048971233824812019307310375001466441573172876383929264303894770650379459798275358774826091167512261173798641298285523091760511157940209595373344075036678633955450600111976139043148442638941567000615791053740285888566521046459689186826127403497453671666088657926971385128350299675084588862363070248010343299979281502973636960277066820459261723272965423437275187218312322883766410016150440482803032948335011047867114284297581792968503155513800580543425317931388251227669812121773118048862255942206846330045527796722699979327139971336015029733114321322821005019610188668295910523380602585618707330351639706827367698964915251050369805162008062107530400960966944592106190923317699948189385571462917782766255893440714064660217260322278659450455519473056285437034341603778551024813516931066092646021781913281569935036848007866909227854948854783957804737349802798143650161085751833518991181841867828533261154874507743598154208447524443764296640375516347881957698839379616852459319491777781876604042698785584031119141207799156599843691099771783081299221820812414967706724740196680371621323862532911941070115080021743930265143596936150825458748390328274757397748434172781310887261931489943647169680687757043427618124352671812310866676516184884330151643439561718280173233169078494732308482194091351928172440032593350096227655171054179775633870961884672284279982515824798296779297736160683046556909503204185100740114430739169660094520655875509906397837609793792525985384884733495670103533429107011026711262276028182067428200412007451596307342855139604973164163059867668123470734041981779897436909954850052839246216733750166788909364682559234907314375865573029190671939962158816735855514892475430309572794688013491493634689117065124046271375713948543199507390465255384442007794671265283336955424017423408994672581644086278805223581893399045160570221966887931903219100074006949523979574261115650280241993792359859717946072226720453806304038328783626172460702595448646173034524522748870299276601755684172261093087892419070336923200730203746034867050110890152993505621929964031617025497050294968981106430481592685276213339033817721731509054180160881911456832769745144368380941549249532521079163817341898713456521901784286140147973044253302874285898575688359154605419223107931596914704573013296072233143705782061869630702134994764902814059065856048138978505270258024909376259413412886988878829295516067981596256146116870602644364239775157852948762892731512380777353632506598161214818658625562174445413147585174573038562989468187684651615772062834954488142697262406925315012893397702848390805453597564228110256837404598791273889365955031917527572695083740160597655863809356871155167148796820382981152502607640390221084932682108692070254664322737494771740379897396608290969121202288335848658149476504646996323092620485940858877274746086719394533736277972230135839418178092821805243428527282624382534852798985038822872790626494814539886178449709881114338520427183719887480459181413958266602732899287236352487700201715072160739006690715121350626172964603064589228486571614944007624061205149271431325555193545726524581044558430236099697771291701715333641802980658162167955797222485993949863350545742589637719987429427274864058529074276836222520483517143627967154370330842201766128446528343322390784770689008294862674558913971516121307861290369191606729025206386178917234959700137067388246657423466400347800254543596969571305481505399352931556865159668190598078340101046384531183369765015291317705716455898782595051274119190762135327757475016046796103930997705558723479840761626255334173987090694258713823282784978065652221584259014558458857593260897714306396165677102152018639252262193394505979106291349571120043906033956190798973315726579355755972384224937126658299001451395874573842284527537490116657068366174564457881307577045782414059235199572023375317197758041656421356194367461231252300483061555928080591778714547126996704701637144035966366011065147455013330716864530506547460578751960376461250978748604405348467526711008022307547636858957972198950988316010895206921883143111041290906073659853974657749376429339844324045477707695951171480095476860885950912614117072640553749931672272982338617661426099449618732819237365325859734267545916015397050586597977089974443554248829796154156541955701468043014016623406474021163761514581967858236335472392140595773325480346844138796358618450296476126591082414079215335142154194359258766734957188856935705322888239966320856005110446698028608420764945564825819052654679514722008841782528595016041084120630831734940246040708583470352138330414118552140655084531426459898186714144782390398354927517447217928271421148872596691739830712812009190472291506683316003345897703731498403715409459040378827587907202516266459676652270411584648754962929091330867519731542562074818769570414624855594940041857222806583219110365255221504259701423060309638548789384888052510323875812151710050394539579888077211453766900402341252307191825509498398132186781393528158086912972444638842602118196463015920707737532483947238859020477599008606138188768748329413125871900055971462563185194039362220601732279851732159090302915621700157141954334811844366291871054793844733862653131980961905649350960751454692908128910280687678890156427150500014100003145969936737022084718602675925885113512722236094732301804577878214539005908973815688226704616552557514933478007851822381102161600238972860258663667838818758344291894684280497228307042974723733474713400008417734706170809476565878268934438600291115836016606019184584512720338734504709276355428384917975170042498944660551281224135429073478835147297088123173520438953977045776097468589252084633559785678755783482267772313211457768496312481137512008953411548853948017475026157286976798496698273798966239895847567000551045638794620169353618154947887376756468971998031028314238329918230752655053548820955675480928056234293872263377382142288723098603491447089310189947695649449419461062466187617418725335208944321648404102654660691856216042542575453648559913365160342977914936618574639724988229278040665941452639420245787989679803689896486090267886904493395353411576535418885139260896311944281208607469008387576380244408474941418024046361374446385182548027073341693902696015598766468230319953245961109120307828753479007384950627874930744959320092190611846236457621037874186353828546023119575373148759453628469213058926468112311111822144963749584404339204288845455529171188050113078905999093274913327202639636969294498646142597841726628837007647776078086930296073405515929434390360172921059125437364270818239982133124207708015769265019928733069135898175952885012234237467233060967338987416453737771652955576630827519420795352621435385865874246335256215348929441590351662890029545209475534945561808907137620839873626316172377478520677209224935166511515775574389568595955542989827029887031695366666632293290162504908012492073494785922471374203116843104651889776555040135470846963600940166084401096271680478086317251371814363734373403598364523014481844875661358908329424287999205584118789229812693585271468733279616468767206303481102121808563989921814757736393995045843401237242363792962760450088080820031275010354235903621844872721456616201465417517934311156776019291104000489900498039416613460157673112872155639144276478968052341577539576935762697365214428277922819756474566233891479763229152264868418555147036630339208233200030093920903512893324100101861137735921794684700469189870920698170638785328878824375236901102120673357605734409497981089364538453953292771466600508373204248839972810175199140706761384732266955328204184206409098488534429903192705495290159806719425815022901423525541779602630239186087807423656728918627408454930675477070566304959632668229666161580932162457946836332581631486307113570315173954809295295946140699245782503159703188712588370523188758221272060279043967789135707088514119601110607689424323826858450259118188676754237203659898719658672499682591439897975305721215272859355989893405389386669206153665001758788203868995314533953060127150830184329431314111567338354178917054534049555658183524061140289669459155725733583833655315977103482644251317197345934003245851092668716958342782734064782458424141610070651518937336301037093698958668254549061795125635479310711102950902918144645968509296867205153199114379215590784975176423477686005899712204173263734754294150348869466083991538754755734289495076107354412927849640866098475165993435751152776847674004574334302919134945621455956101884113770245540974551031075491625128624697467027839785574300361468967411447876976087932321174691955947410544624252728195247502581663563610341817400962451999182627307620960101941031378725058300397227780489728765953202859326680626548299794208278078238101107156570374549977850236205056857422530071012332964653682649799742231255296314618840679868514432226379172709315443965399024611134771618351101013533863919276285530176259290476030869324413435273557166829379149682641542194494978004014276048224069446219942699180155384965937962554724549148267810857846002713418953015083687324262434421540675972927774419646672302039520510687424343860729705663324902365088752058440647537875818718321821738994819733610168849734473238214750998915843691821206213229706461980243997266779461470016634949280550890993749303032254034220408608531135042351199577133110196918208832603191278191810970525576587561934287522908760718204775881250780202797715048404901419767178286478436969586762019635181364550061479296616275452981840962747080741469214431842043845508714061361861839199246176797602637682044302115700567620780235948310736859879132249817098909304970917706733378107142208812558213691247293389538886092978842643229058940690672802656088233356738378354916267943735152771272202011608510189864130085100637406902728160737690727589633885745596925351760323631589203160543353329953887613934132827148655063449128854873713518384981964507921168454790823437847134650190155023239036292612196766005653415265334361674903103898785396912282675706057366921593094048065300669016228464869052032811132678725281278266184646510167398674954257586870322166812928839220677653411875320805728503296556621070918313617130265093516331537745104823655376319337070972181491362203776099394700640275799186325295285854396055630270577355788109935284758017192983024953123279188608137383958527570771170206462759467562585939839712355628272433406589951178652572830327806070592136760041436978414558739006589852163208125474554436002082684308248905858392357221340088440131137599425513462763779726958866464692425544632441687558174296728577029063356730052701460983777917485178162160003583937470075853169749972402055595218213506744901194095489978709952920885654584878766758180997604755070974637472837760169958352994521774550583859835963428021599483769109368722820108897402521084127463391500705380453552223519094346202052917752846535010319782513342916219489205689512956890110676318352581666641253480669316221871382281337336724019909904213679477066999116638259631145660377149617058698989475641238852649537252829215127030181901615187278883670216088712938769828196430022750124501831533602411898435475746734541648647720562747247661734592793082562556965443341732221811473386973950551581219708797837548310707467831735452975087457487939783846817785032260380571877333321588213819767772929267543967403175965018813475749351112185272302799520518730449179296655993870941315438012082312949898090767523614891270259095665104838197843656336394382794506098561005359600226229692576955391629902801954613535169719187487785308145948404057604694026689274709984659706813010226441768097757334636933595902720220897948480430537013207109243997747817602113046884868117977802102304693624719150337325857311074034328759933669035063385514877028382958738334416277630485220157972268517593511066304878587497132310296461258983148616396151405423737020711086708526754015238855486934245347981488391261908859801244398689960290916054069321358321866217788443966137757863526925908754631419536948703102325379954746868102137976048743239255371637688452426441582775043856863074288976928850222581298764440117929044482448998843133190382049519056739768552413736260103196075862944223798526914080348189944976993648280337756215184771890319811588203848400348698887052886524888687449251638550419879814324523252980205318441942273323101244825825323468351368074314971176703926074126732504941087371817334008093620133734224659794192611157423774024972109835965209150821446798027987342484830589069777426875712904983524651690808323082871529738721686954153250106288838062399405751522006917575067606643417639850951559540625711562910579272268664173126325177237701150766936545881195193556903112873311224313997861071819061100590196105624912669571620766658003675362381521950188562359587489001776229453601916305785013819287316019677822956073675764052513482579313867268248307474903489453461431890550940165668440878483899587972951926278998862673021391035917354728165186885762569102594153605307493400489829884360679765183766287015591120080340419356544972384229106734610397422902343265094820209255493350939514938413599814369255704794493221339505705757929657403292708384512370199150606439261516887121274845271121302483674881983859163905914259278363720048037985834259671072123083055786085582233842508221838129033013417301145838940299884421694406149322533355121321539828664596890909753373576236706826781852693537603358004225420112704582696420794594513617253010738584667382623643910455768111878010353671940957078302421735935048366436407152915587301687327111982866120426100676843676350889063797099291803529020714191125587430188676281457120383716384962183326445474559134870178769574120180880700404504723924666680652631784436580231005129962398266516629675632563962874615679875350026735035106068150766127513912739723380553407992633226473216985105172938663800727793902414435796196378857159443599752889107255990795437139360551199397035134882299272465433694519917502984969451546540247189275152033542062357793392211416978961719899775552283155466985331483643695611691583672767805516226937276303139728999436878044750587809759573197188800804705142787851871401184726374679688092309903669038032065721533869027260675113068365822813154811576646409367372423886159293815476653772663689584587852075010126774855856776289320329121024293095557470131409621812899008308234396514064230439633098207574035337527727161711288229877736192792505207422840398020882131054167227230532205712664368821546779483523773581791840596901993212016846689737602276450866986203430577263297902845660165322082403632374256869238192248077286218473027355450986805973184796307611673445987995697709312974843186420265125977447966901420663055951058351308159237930149343131599963158696072271174422802929955101227032278395981160526751436346877220958478485754569111135386400267940793311017766256673537602544674791048744874245954778305584029956319847599818979026380799515782403242974303311884495857337359985895425957808852934202469583070156490766497138547991960915714902722977886034641667459444576725203568204948553027528125975327858915383955859866498639161246377605537523610264722578075337929812659785018022250665381000019779201537222952955353722341673780618140815622284905211267345180835091781611312138726232358761043420314847645453951691511369955616734473542381949116754967340970702028992629875371595605894521628507700466073725188798214390603529603310913841415854458732797146548808638978104327921612977184844668883875222020341152175216088010384820006320003801584699558368042297198664627596295564102064808473525784106192921698225922590336032425972461777633198924808697119508785875425263091461812172516974937354503039000345434066418083139323860311776449419003440013631490741896069601346589314796825347821062674951039878077707518480671207472732705773610174019576962034089950598856476703960637311960178600526182484993910810854569293056787706589183016741819491426871016338947306939105131928175892300347257796505117762705156893247669955153823987418543192006406553867553772992924509779043197122679832997310057224434263373976148275620387994760909752889315291048778667737161461260547789120694139600120033784362041621793595517281590751364650341093867245599976091771774315521699635202149326740296608354744845124172446501563093410793793478327305358628383257940856815306159255328522860922481610832978141083643756513179590987562517637260183426676596646549674425472967457269506189567368820201378756624618047654084466747538740334659277502216087164739977979141397718950393759960486058964664078484368076042431917802285126691249660542111525059161422034429370243193393528816954627257682992247682040759450143205618312191446855013095840472488966618703648854897257312051811439744838766776695139824926317661403022311230278001169122619696591109030738480953148482415320497204489242696334430092641303709229118641938033211235156461676384589520660986228720338059003516122705922325810086239267877001331674316168937917720746482335896865417890429236405583579334138458953797510289654995421419764344651904569206453107672416096523274270632242483948308315392428659632529568557346686177501419715466322607019419416004987729252987771461825700984031751128528294911617945445900221836867382839941334111237083391311005262590381710324417643447378187733498450152717044238011456879240874236817040075270309494779998304006425090434056196507240490338244386706328173795262658946637188596410566215616822355993337524378551742663881032833725317425585095910369743507405799401921110398787996292420455001123637680775460035204131631693722608760285278513286384640856032838238757228651823610653644443122204088946601154477901717412149521900014144848695124227993862571047485450198592842045930472520046554753135846602082898749909018075107989042164186206147143414079235318030947281814107471298518868922841790750218690309968659224750622115348629354416623592732832463917980790174871399537289309888238346864258453331759382641057677102052449823022789936375086466733171200898380995991435490680959825891316153366001823345905510691999192225446052255319443778101271340291397515107491620264850866911513536130120836723235802042640106647867918496679437259360634132126176803486710371210931103257278289185866452310180777288878179692569287300289781087530316060188726125338821239344197924442437941638753308300559773215171558099572100799134714573032434573342396541120630245348958066524113337941405336270121139929990930986513539617102743980443165356421561033559290023601818561820411210519202758840608322304689413901409481209214620878006656646810248817742326935158535842958414369702809096224376934175384910837489561623176637608185318248934051815761103337845465058285706487158772907061101753396475727615344999301054490649978350536235640080593561243717250334445870509657497820786030648796835598658819004436600689238918264257214769541056623184068037287073122742069008943824126287102446329923788758181008872721050294836110939334422889352849358524152521170415960178194647634405118089059938925812250330040523194573032156680365647422600574001493011890673762061424430522344194918064632135892407554959439370367060447904776613220167976290012332961738534575105892694649351123057512495128977333873337506877720067106700798770875785117716375571459395986215158435100134419609199594842736285261798798772868958483079605694804665135914138483963481902362853429663903680998461090672723923626491882034691078956836421974555810100707759592967654518587642567024091875462308046396004651088737325065654624222886748253183684192648056438336703081387468446463689431970541405440431177841260748467478492762206691362337234634997733694584366824005486118194571633940667636521424103705123537175559355790444309931385526955238343686818627270067189906133108217460184907168449443674274414357793243470904268869104199309142419591384885671820257556746439530549331617518327498541043351209911160549231317209560191698543000879961441892825177633625574553986473887521485483290279344158738489265882119193186011588688033132729185242174922943506120588270094055643488039455543270911082626043365421024362261219289973964029343527321239124678565842087772376855418500231676261552825611329932276092136771291926133099638351256316016516433317820683722315298627735329513167471733009815628312349157299058105450581525129944004237422045536380956657202833663827159218114391489146407695624059277318271998038648843877389219596764667068133168686144759277757758417800932223257825946546306109190463819911934322712405749097670891358882831995662494326677128006943789165179086509414457150232860348593892316769816497451928584259694312084642242418993105715610351057393051384413590393257816577640711243999767225569536001338732424714856020546093290983734477141568597665111359114877414554300888762845311567823197420132099720377814542468137307059414638278047203132274440703396792784375876308891030992531547864870279588008412627876055431299693225070060852748263410046423639732704140220956964969711748394905040983529351130679951138665454234721806075031863814569470046050733145172481786481202266767276434359921246101764308640225508914162895138939620263794171195886444164092759408248920265268012586889377100987938508657094549248583177254049120670790902162593297295131287475588278680394248748147214710657890123208599093987980271790478736651698361636632547641167748162390681557203426415692108871814188009825441676074042382806470169576578751047997674914724406601902922765167263634366412657355785883156188940742093531475525150109863691729297508829254324972337093178201928299246731534982303719547450369934956317650214746881804364530537371488126875126576757892788529860173587187590296894051510201023601081733524129502057281388478096699201601704696643601180659918512193892657708629734841625247027531678137749782163503040662109275427844481539426408805366505359998978493040880485394330266911063162872941934030177640745698331450697671281045311901253023906435349997564102639821458468769645596911451033078372209565975664188469567446014973121987879983860884368493801011459694418914799853074096912063647349339417106651409806375220704892466656670147043583385765172464987522610003173199885691637871736609329681228523914731670958875869057072143599999708425501777385837996651433249447277059488679081441218320099653353205026298708554272724083299392467004815772292027952081452252473371690731154863961533574215239827157465626200743242741799281658812652710784850561347247400102577388590116477294506846013595027727073281473571118533450758561576534571380874058512536064435513218354943483049671272655372744349274654729739126852789680980972364003857965850721617482953038234139331392502022617852394624049517161885469636870414538521744378873387540263381886022131802275655416610341955894001761326424260646189305315254998239710955965952233923752516622333910202275413695510210703090027865027317409991510638347805860732155352260474498405625595193083834478206266918204118309109661600098670968130267294046214811572948031165253154523678639730916263162166023398366192717877621987415826808519745487955951629982537611902492354591251676765521676200094501797700751799392326235757452365252048582604060764368260793489392144012084416259531782282067146507903662604693352156469547258374526771552399385668390342078393583110762610494990462099654812648592410766043036690892253352357599446228508149101609282530960768676388356984301244678299846177751530031185454592844339734959928497721404930616086010774120921422697221852469365793575502991711866782847848036132430391709633760686424547017195781841801935163122245091553430083558025297440826824990580065152568749402152151858879025095696474945619878192415639626146996182787237551952435901849766047123246656847527929488069259497919044831478369086521425258940384637469722590657701704858233164577082809497801434989024007012031365354264635189867490939094737246317702972382031399967331056055858495763070843660336041394808802459864606183048551860119743294638057392044369208849615231557468409317771810152139726196087172841541396715590646828720320291521818828570040665641218476047324868714587355116345775188060161954837576577937288669160726476637706172427677753030788155578326786569850160360301356534159339248320663560957362860331601972787497389799990876143717729865491567802177850500732970481770672365248898717829049777610959099535161301427475672873668686647225598168638276901458324376308029881435024876493265904412122690210254277424042857261945556143119696712083805108772546938688860266110439838367502527391564859598724471294021441292718415173503019446105544736803207447372844220610509352126896970861508104894255654405384280199250277142447578558917657944580712030206802696950690614404818624743344896756706429456666275704719620666892934483785066024165323457646332962188880882756178994833810684461111232969342262418031901375949169934246883254620842047982139989979643770380368717867715044860340059809850122555906963102131725850251312926543703631196226642465753346672002956811414964501429353198483877078130444921035921693565136309908352992862268806395976374141154673424012365071249448811774458375632118056222706863359174762994132176405901996241197345739458305337752201626723887613152047124001080915915660161832192213574783433215127164397170788727395533195180005258968208365618188770435752293820834274762454837924828542398277001209599393947720057920539405605303004787746003320965928545468718255139543661488475797507619831923599386350593711403947415766711871365111941380925966630007612602588449190765773193383661231821554213654365752233505112852408810895959938523144053857750216959279947888506605659039868029811009851601219541266200219802907390353236161742523032439638259145946763544537509095485532129263872916185698378184666379410220289790368945447303881177514823102031106059505894005790593787882649040437029857638279866814765596904956624997426188349469849420403202810599583889508065087285656633675117386095973054971681957353758909770157135713778414478665772558718641903811171044118018307306725184488019098547666597149781395167188163624227407619344943196551899402382354567535421178929853442542198133772951340128002976669557893454688189357445208099198405965836691269921633216320909697383333516436721028602899011639218851304827992390112565579370015052805628834319246471672489804330082338562521799637665542181708258087985982366842110366585295459321020316164588633187802363951820387826120681869133959349521482375239820086654981735131690210910031808289082527529886623653331579963721423430579281660563356807931740954143012577439732294984819724000002875923732384664167949049715397112747342096548046413917136823778492205932424269932182049344257129146325615080441700008909768617903764181614025906584956069091287463096319717280421567800068241560844718589654353616213334485920674632460401984839895306755499721332135796477929483601076381160451964041789017611082430491319686633292859303427070242799900671943068590712614548373707765001036576305837760599143911431873457124918507950838255078259486648486483560229720777434500316103463024808063411920243693821326891996987134909084074971470652250081286330023109908640323703396759461387318200080482756864428762292918293993131077964294154738287238372227448345664044819240285636290465780646414000052004806902406554493958049305217734018838475663344958914005371242125498297539604110740579939889237266431981355795256850916699477602589297610983395695229386556899018593248717690184907602894518896388706889595310838963361739111742040666957062565134145555777276412346595074496387688374713258883795842184443704104643905919656230059494733483440652586622795814141594383374096229503298508815617648544058602291216852836005023592523764711919620605314226846149499665965065874410373356262632662041029368558508600850000758068345715783651746525038497909710432365541118058205278580390904092041369605180653541302586318770440640336129927823975288503323642351565715656801482935883488760808573372179797459732969623940048219649416396151190760071105308050247531997368911717902016584625727661444035088563982640482632578267114798310430443809521366060730987746143167286915857882470853272341241700455135435048681253275482467139759445556190552894884929098315660448554552521319864884037934133318494551401674224121920512802752962396097375127370573186864198196893548630894419287107564086433221333081810986664000362843650278007922532329414526756258327662341803375689905275344935709974938337077929548526480774131677269587386428748970389811777080772144484888136024273851464677849126068337535344198400612094005094188912126726145529648793122266797188554929363294660036840118469369359697777824415693604758308503475831718816883859266014794801521757976310941289848499994602382085451889392876795093525032225739528949019747045746226002686955410515743566677795937455753421274694306858201027518104252766791238866310884245644928683287231198926746732358577326768348141971755225115824247385315241771048594326268276761495460324261549570788238479121875178210952967605157874343991350914809347607171255412567065919150971739965085811685433187489154568653243477269309505581454578726451066132470184778088335206258036390103747665861159581781476630780043587676631085817728856912507779594575942559866492679421663188179113338452831202664420611358647346015652555978425251036183835070617484507458627256573504940766345748686614759502435450128054041661975761755898016203465656912646147856205257669152218854755248103311468667384449034144893175250244628047018922737192371903143538958058529800509647159163976451868179039078131294386401164499513022355524224924081019206177063422652570438941903746224214871760094133769723179577635763964535534912732464011874914109415724307835817392089561756266107385989322907649181886330106101176188658037924693201047357916617607496321611989516988227130523581515147983618207812765318217616885909622674770672668454501197291316108670315167771447610345717119395991224974310396684726466482075497286201924320494668897178499724423572213842719267969544825046312529854777253521491644523410744464455916585930345477985891106774687018135634723995139140640755554242629137711557314407516172883837059000168595685264890512743271688711002187009868683279122463488751191737427560136004147527869046377158283687081897742426024636040495256979608431369780122389584941279386689297331410030486924814148628654706681437100831283738648065178164144280561287691526519902344369514186101189048073265788903627105431238293129032510998670383968828729660468635458607588349059708122732582205906479999993846110453768875529612099950631481906860311530850696438300522185024476639926813136458356111999407605014272970583069068703597326990544591615850824693905341038717700684068053156589204527530026707897265425403597206168925688574908205968876587461797453922743561489054674949625033943075860700629977832625880888048903042772546650668548798206951649213278768780617175644996851399930106105804608341353071129515684047563562126060492693150956470290318475145118502766626274870119677823815308215848355985046906511513869909258411904676893684615206952838947112895270569932166463029929076357460869292181263042161960948115678328567200268347745100664855299434618299505459124348301647550871365877777971357905792578012058373439952838503179304562522108970009656268884100861551010418209289806411840375627555839323787231403395892904385028120784490205097318553521988419138344173885105396962376552124474400767674879033998561582934536568395745605136332891606475941047591205453938678900826039165369232457162059081587253103465028070238202475237572460665533630905596215499487300785429500407945412534675537590445428561288961214909947011491089654521013610845807121043255340936062593571450582653027442701858732014902249938345811571310809698773194693974118399804514776875391827588555148591638037505776259394044598566939336473961942742743879965669710429262174090424327836361974963747211220096093231071201597161408132526005416961780723338575790661298663342951965927592849233781239397175105778917021452528038349545730841114653534314689104945598351914179255278454537859277843194682307673583586102900074270263811921450028686592621891129252865144480556680621008898606980341235425120289987893874405727956254275267207657284387715285047305602792407661401646155389910571965017403130545265894939727045541045341718646158643791094650065892882790498506808825587251230867660859942297863563461142021405642810953871342074086137756019658007400300641014888541481685529506476457167209234541993077288821325001986175211969043878913958926640495587514747862741296959924480901231400634400090378655593133784455750714498119059019500471958501320623334529311267722772974451423048268965464244622963773305817449574066640683356749653472372742126961495142056455912894350346957986192627110171016855323542921685075826017003571398245220976313579064630164709221319108623029065109956458088775632150978601333785903366244799902069131927906725219084112934848130275551026966772663152154491577741944692192075494569179626436140426147306498213275491084468536824883098732760709055837261670066212660716541913640555272108690832405597448350723287975374599400181590735519061555565636863718469058450935891364476054330263952201692378866464818053936168597255565886073187403229515587707696628776406867158523549852695562115301954880190329589137557798552669469702244119102649763542947340623846756302970977312025137898808174723707920960883108225691275404523914019552918758765052353577084214627959780766156972453177002727629276491258204759249984845219155799567928270162499874559631403813374716158042930235003365400419474029371035402932786918984691160156490848432467410355880191618512249914120922779581896077711238418337131896623563867311897232296557070281419214035906889012949984551859081132319763723297624993812231829293386903677329248236799521893702256891381632614599422237483310976000480135150005716735581580382494654658452146612865822160734931437853586722751477046257297678348331950555103127568616549969880202478676413985790688693188242040948644665877262907651525460614721726889137313956137261101490498662416944397077345340456972547890039221054148301868018317032412191508355144553730804901288216417804699661924285254906124858044261060259338215711733887363349446087343843761955760805321312019763333973417296974835288553802875224273487217066039163345890772770119355209178515344794584620903079401789000108638195099870433379325518457541409390599953161361613271463610989171514941506926926316110490268497504250076064825036397721777779354915759902356560977801565253687333006258673132330741458551570898468918431116498984118150045263479080792011462918499846958725856453027652644084317611932920178117853479711018079398971440707116183930577655525094717140640354819487573633129358602994510366538169871474339414919122870016860068581609076170462123487687849206760988356057619150854327032392977107590489749903986474379781570388451461426481437353561828568659258679347972216993471365721364972610141478546441298766848465339330103503256565440367053603704260516400363505150282570396188871954426258270411164122720897104938067307185298826129663094462948404997154435912256698441174233197713565260235054401891503573257505256477914186031495981562319533629075423324468540576460097931847492548515644327448059394832146548785777458873436207415937203068986813742883518458156143110227205254784573544449479355375217021331234589198342545412200542383606071488216471043402553351937490459724385751194838259348078223198111811628947230438131100966036946173260141856248188299258796315103122076482719163946312252924436521576830992742880612760538574789738216818922429830247262425862809217021675996174380478571728314647135133003157651085654607097832729320952492813179028738339550547040005339230641882243726526018948340056335929242134968344919372451698616065892159667921496203185424460221733326590089368446846601231934534362287613466690780353772227798867729993568044002301577383761470841317750471246015809001059357345690911659389535004433573929797259674893353989842532148736491818036174471496929329231172976534850050444002372541518302488419729404070683804710350855046290221234195151279599729911790512539858569586949103068282985721373244165360693253572780661485509029150408689318223981712022556303209580830995817321602471993960436908428343173372370606301467110925957628662269964975341597432791697062596241961920334480089143958587751671123946939699010513026244516660014812679700741683286990717561239792423704359666689797078514963228349545948294661945697462913748692876043412937412647326291787191372454544764753166025227380452085843128150560650384856943774704589750440031874937432894539594927796558650989506402421621383981201608392898878035583792113031920125669102467227925998757262289418059853931247927618540750269580285149210664779781466515967830069757168186817392394331541804567839826728112994390827909336403837907613723352954066347008195641901255702229310277210422016134596500986928700818668093041803671593424775975560873548816525866016342732161173449566837058660075758438144855948018139175492348399868547611484197355920504989734339581217038445439374367225234101957197176559666656321526223937329957860888996091960313146978128908291658596509241913811231786947313291277644221323773086999877777883557771532022616051370128981608862197369607665799175170355201803258511658561601349861292573584555334305551507331808729280680053273477534783838570336523108874391127401427809658378332085593316800160916340169716542800737616967680185256965700741954053648728744648995097261588266024870697019780878772823334780680090730197683344230943514746639546890320303400036963372042380338543525012928546498225736402304599259090168662486493076337838345967681398947217985397973836177665386597081641965095813124062581069360240599895279898883226188370928024050072619652227288684854683648942533174484049980746636793746520466461579876170031688427146274453550289585713675753279171122173031443398537983792505323010700410102221177626800646570833730486327825622055045322468480684190914537557345932500741696446448176173752521198700007391663575928361917487563710972866461184917142259163854435021425577171596333156261218632311213800087279252523561260890409873570666469694540229327757404058856611338831814925150918402647617090247823279472744729728697988582777932805047220183370875680126381999247485546644121860798836020410279176441116246452464530642135293258071135219620562631193061376485693053822911276823988778221360195087403638343668319740789940495861004633920537667735331489396494329022498714305827388166302440646236826753104029998301089191210941969452198286773229463934596200066489271585848384984034610423342648346927608155846209287135076570649348325262845599766682401435158013245106719140695908466262182859478005510407534188934691482094880097890489155767752779382120814453165895760911890582856272957621665272667998093441751894110957052489337044536369796830017801284437642525575210940593960220577515845918478938802466950862641353569554350491742466174940836093428447765583838682629179425292511492570586766486508126851498111415683060738038524658440586170397389154279003038909760463291807720090728621479604231346847032713150840893311109128445684382245805760899126778584608726836837671152869596084740589540361138776121212268252387907589911487693372728319702136527638155165200000045133052840610240954358794622423703366221132280519655131678755663071386769750521560662902860824083485567000427986475944857871163735142949226724891590933018391257813448557197694395210882560631527473929950386147771913108200778604847064477701837392509617538264363378298074855834197483542223021098772952741973766690043579799841358179134663586509922831396573705880139260304110651657087351762953601678926968676338601976739784358180511894464982528610284868484956816521630910285294325570493666568741534960797905508698447747174842776989315547327616098315978090472289593742885689301712548297807390176862159566523066923061234902423389168942230515689348886431502053106792966775991757263093234715823359456256189630399875972966355351617014314373724127055330935795597865179952617032200348906412356695542648742124095678082614102194037753518795964163581072905633119122668689174835628650314643750117034524828261978779922882286315486491154030505625682569028047937319389333026238195555210469518305687766101042509965956219119296551222394070305885803839732627144710851556908753365475203353321469976811766530769818293936761477594343858819257855950725901303895789112500870047789055893778072144511342237245699525416596408170877801579928748203303240937486537831647879628467699622307887805592628641526936070639714871378685704538245683326391693102843521548502039296120056998052849859848006469235400823128115669178438489691781994552117919775965405941481775335147276643475627238276227264330167430344613136628847064783182338277158350835213143749421074026724937401581070767715587302493500542697015652103708720426390566606595296611671801519321660595642600735790697560528369714420046568748311564632613995941467017529213370091344738731142300858652578211934878962264705923871222444537246723292426234319709173078711525076450928479454724748652280188294490309506971350451418867229858902135445727817761238904932881611796923486028410759269812509460046301551123329981289123572401731780716961236863042141565687012011016540776724082649742457684241637820757124454721141333522504116208887708850274504657401254233606253267735444125842128532201724626566063371887341817562699513296554017283130731558630740188350383696014930462499617450023316341370189812413598103157083182592449351967202331381501652166145871458361833097450309313574802863287478655641900910661965122439968194321537505931813496305061678068425852970125927543845770348900717891742678033596840077044953777857499992888486853413560329954976256635541032237444617070778231059083653861831603646220146132960180663368591622503898364726715401830240366493955552700943838806778077422296489078984709270527929423351577894586430999133779277603164549830099677866696205579927832534494824331768696729884264667763422231943728379216236834529427597750639157446029467076487027078386355934830607285117809684869683497968942558285185320092273870709697860174144251095214992589286990226800201241645807710803043636507566376804334399318163914562996169232674851493020947157044169095851397229467099330289762418699042646104828029001894474585941587544031018058024205579098592972734336967275394647418947226142725829604592585239017905078860895128727801087245869578025116177675054018154484960895030488010199079667284064942379912728450583431461650405906098709301644860024951521585656147874741498773170854661694290565625162399679946651656212186804200903484917249676968179440947287344288793713856670473870314657113539812092129417381409850813237986007763832371292805905254009075512132011435688091203979078558163802164487320107789998274100802993343894307329383971835307097691396667322312923737839802486182497893566349939702890143500862012214802021675497012204293058808306452497240459271005861411285990824816442850712609759355028596801455777692788929516574593996066861711447656569131857626887981349095294343736207005813199680668021035153069977225550115090314486131679121099214535010148820197373513353254701264073198754593016638749591951128289871983755766100603687955267521755417336248000122333019724261991606195245794709349531083281966638428781608628654148301818968816734306373954187490501347797639378088352296460240850702826693861625775377596222209934881702129420310245500989099084664755014758211475564805588490487277664365644856389305692540861797791569620680848017047242440042581679947487090058910449767497051619432089558499296789523165388190488966802130778213213364665408394787208596395234827982851211942610524541807576962856436499931364365855867104325713015428022361137030647761379567466857469697508479257241423049086919302698094849274795693429245873134740287619262853589606952094529832159250668125806011245004755070925666135472691047421467435657292901764076995704150145852414136257631977055055434163132358957960454055679852138931734269090676977577293269432670560035925674951398114180911297325731503968154157691310941151293270070018001247176094522119727578926620028122784627994998653775657903246056768413075808773119621927226753019391187201371870177668322548770464829629296436799416051940471805211513491142212646350206076890376803108717273987506738986030584323219059691071624937313688875732876015698053870137012917243994355537421282772781214211692699731831315225305581493212946101779264073714223160113240977387457349346178118818831654478867786704064761442570174183744167530422995918686177616893526642024792611233772457406035201818802727812409259640857651145543674692506224763084733212291816690444069454105861585109301894683043534274723761109780884850312011332297273843947930474382571687642220883310940338844236186014603573185914759911327163959480771717115140296304979015513181657500895278481711953782752169385421347674878522545255896060231491521351481427366612397889626944825427220303112420236802373128141107050874235923991319875937399936787903167709483588480454105683958464495645671826536148980584465433983369279603463940469081898838165543680009402122880697021453732501040175842059824551931321541811653760132123800941350888422978302564257172082969667885880369096003269526347368689817785749172641461990270872534983170191935793626500977646131385608815478889936612301967455637519481694589381655809301016691455046840943195242402221955478642870723199580684859624018468108673638356421667609628209198571749443034956007720722923894774006429496217078038746877580246819783600594690935379281291315072914406438898051214159042204507405308042238855467230416593658079344999480976332226123495840941169775675810932210482955650139361303992512568056908887816722745775108470430307914157159981308468316110971362794304654177666978527955703926080833958494820292475420731246284821405315646784505268070868728433029391670587502954670491719259994628381422926481999870836328487975726041031001204143090872115394005063704508991729002018108322753621453658352622608629295659905382008794412862702014902829110596821151269702847878080608518232275821934442866132857363942971891557323931429848025786776236241214612999241275478232642756910470174262754419677164706304397700960445548090185299303374274968647810270231482009881344129207925112204865795423213295019871124833207999881596078887485750856798881393256182722567993435226170906452169343929366654089164767409506722347816958877801201500078641615555770524180388605212862726727225246716138790871551812297779749437762719402651666275346247672836289754140281841752313898445850329416437652074423023150251589408049131273468576295169219306119651377273679379974040338490649016038798153192395900505119092585890176390222915201680876477394773810765942363818576436173580479968419250480622044794442878338774029313604043198336964883363365572547842924669384988145990799623507821697401509491657472710122978939247453353331906055383472711999121997290854920069148091846237264501538390615607893218580160264263557858113590552085073897416800634722743061000185133010921703563806328138967409980678165451064044283203304675833463180946737090770535778496955592506038523288625076961911903313824962606444861792886100208218446751408871380513715358922499634220265220821366733508788522367355653370320292554114621057579654359274039105027618205250756359343806853537348566938113356621292879881258377700312937867956772478732793340719108930858222023408692463101099534840023632584934738658938518163896956403285929764083049493438533669732331837049626270459474938897431009739638558781817265638724868910600690204471016892956625377669806860522328049889006569333936269326813011775750759160136470731181886443391710718070297871712137973647118104676929736962377120724818774821668779239200909364583047858860965050234011835961213633942136642898656240988299173848562232102367748107100248799239934801268460792941751009829162366977581142068805344002483972262963514523536954675015341545296657032850193849102735866724224193651494224730914794811706971963990027185080820398580520813280256426445269512036427996713170108726785099906871096297080964554059261951064431946685513190806255628540017380904907057399778044901724398275734623218548506175998379575500868896322652878628999610343925390334772228470872095890420208481820710796675475002660560975950966258423932485313633466317570771856970442052913628033872693619202082056476566809183162687011589030662467703748316474854330811239747196341864964299406451566116840933671931300737526765807628030133700762681001079546176880000513417269404913728934040678846858539980598339932853374307911847242703135750172491797448153738619739178421887675102310909508918469832638972111616060852112268973800362328036283024673728069565869052450125831465216844821605471384891615605965730934807258401922343197164659807591803643587999454764165398558617363012657592218865100425998614351006338841942236098105060999555228050906662712627707843232952575696161063614737753495078553452637756342425117433605369596150992265615408150993337677703318347099660543751458274825934293484731558581381827076297340955644211102352853428719298810462588564636084589275424591807816491858103221127991673980613640743653322104561400945676468795279596360938639768494026003855710014560751673752602957258137523357300495060908949666277462369782726689876577025697799690742209720958827640611994157867965817469772744945526457264211872629558767554934641470358429348201548670372343853546007720076170043202004978357157985454129909934009871679821841022816220742482185263369198976454308656978609048162866637089299347847274881703107054869462376997447883094977115285056010728218088762503019763904062063886853357544999649120732888285271727837903682364810441106582476348242975695313196860839472284566482902676807071516614923721095128862571551370209808942721789099214136285783206298843294685661607613851458689625939218631375662892987770909930044701962560902031128022201733307083865266186135512306818965071500092108440352714132351720807195255435711457870419237531849720636305784506761389637895667668870701087795444630854596565869027656395643367974383367502288157667676938176460183230275244480875639948718387548270118682333026339344006252436258192430587521440846874514327933017984182358512172929187455511583578348897058580269633757121472976220339429287540517660027850830535336532358251805830923079291232558775454427535988668088553417210724215599211290837411812638841902852252377541376999454446797445850587165153880643722912156417559679716034003383206029564919865819881269575387778951247347904465993118908305224188458759895465676784294190334502516713774594334183187978321318100897572668755053578794766921049235739449615936090377939367997992801717748282580077965577377789529637001052482891254162433897881573687553282309627296590293485504614282806161350912710323049596557557126697566535568395681367610158570110218768378989483026968928596256302097594329964660164329259057084189187825462379349133275313877879104413524525529787501756563715720839839919960197647002503469895353835452506546268006264992350885166649138726105775290154805982538899041982942499325002372143118204540257446573696929431282942222665627867785381820224294998483073947508190805120988163505683014177721071049845629341192500729688640240460832993635182135847820621534351841751227537889930206902845132867606632610796161316601661384153714539117581732652294146640984559195907216427544786278794867226175991245558021940285078337007190596894816332682438601343486739064151605662485368616203420788588916110669752830094586481279076258948742910029356223325317420102422360147148365571449393830079015790976844724613384169623456270677567134952842675217300481765129056555130019514621152831436676539608477941244294716907723612358735396573346382343801679950097663150254144776763367043029701821094028694174443044122353195511965366068173960071926027340917719436996035644379972554514411597259744541845350579912806912612649968511414847961970105700939715995664701057057469162210578223678954208028560531634468211941976720134101097734376961687890379802721322511210242944027308747718336771595626034522226489898066895322694037455277883591494642788574816815277832664588313200989274578737206671232168561630409251108140378615929087739948281069655192953474175080837433957742251837893000418392016674314925625281020475710131719691956215735922612250805251962411619387702312304581208622419759125924195424321975667831876282702185626558309860493149920331236458763762186276679684446379131535071061546496922026704680674849836516978651507578424628208903562450018576083803232509004075517426280406835356156072990492719092140001028384141510203612931332402057396489372685058497537975165918615796062572215758409781423216442729211578294109321893004276615864923243417723734816668730679358690931018013607152148501754382356302907873601693290847806715948665868166976343885605052908077100903442922222131130316427367280372270463902843323603566967871019574835984713263369484666938136185515800327566458558225497274877383816659473040371843032123184325059246126181457862949500285675639556188535922909583049996719812046434910674385534963492328641537840437643574089425709770964360089634067605553728958793877442555345414153020348125041846660424956601291196030829742577478229644546324210497541630207745171360845314641917736630594853847521698291883409191448080625069395503705304977934569520952822620560110253050026456066569227286110562584700177894411056968209845041309888749912036129255005584681016132892809246219961155561568096925394011601237532675625106161516723098688562052732420440531609086582254283746360759137919001159714284818956402818974137548370625512844297251820287148238434848128033427082358293180885928967714380626861060010516496252820827364943727477741805361480546737322164166187512609584171812124912059047193455214965921308740339199185150286018232109511567839780354420670984660347218196424818429453399850610152242251750404540515861548474500077198676045410653630563172485681805551722573164907193745754186103253275256676887068271130451566383630027369937685569079243996804414002494642030164563336048407126521418616802387487432638614770948051379951241070820625077017873909491253869615368770012618510882541507383654088405033682636242017089249202730858558404366484661504634534017268602944548041106777584899435471408165038195280974572647903759077879250857237255087127973142263908217787349470171699054056056992260156748106995864255076912527494559380328606514457871716666881813519842535171913228372208001251253647611115233745285053437715537095847106549236918896998756345507956727742136194749067258692269779363301438544165590568105616361020692794290472684011595917785515227148828517281694160475951246305828957577843589316819655864588646224189053812864857237908715555399130617093492929509610553374119991480452732491927114209256251787986594168381121557310248674544799924618184141196990203272004884510525213526420512423772242485377045314149494198900913175742619652387360349801356733250494228609263014528317085019240302136469957247070345804813817696778404269719460924132795349882428976315909328172644440283819491091192418253433528931855847436102884436164513585614869027771956469318244054736754087193962529630849258256044984648050004697052730347242763798148446067773719437462307899695604957655896026580897574247004733897397463863148027106405300701647902663028954612821714577226384948165568652733940693280967317269959533066469096254343905173230602435489416286133498959680007208599066110611781746874559547640550702550605965835993029120981563424448011150786648564554528325162871459992197279110287834528934177819934762115004204849757677151230667516727608799504801546454940044989431118934271891998399034506901760308276627113113605668002914863612790228681436688693120919494332075593903992537222799365969579011573568354762062866431131120982960995287484811052319574669072665320565455937955949252933766124404676465893158959186639279737745033310758709907379160614283660979495623313616447904341946853997326769841730508791714409791810028238895943353761722796871352173966160879247531226868137022863194627183641503479150523537739437666887381596244744369945108578801699155561105257983339815530447042468963383805391783669854492767769692893798177051109359879713432788040660288663920280739350974176253126028362519662232566781770399030997296293497738342233707145622594244384884988800799384402104653490858161044056969360483795553406938532079714386163929558647967107650852589791404617995592220492904398092057512248585366761086154677214090935946403919756114074337131414948250798881342838816460677910563986688071627217107733392026793337115726147164192306509469142462023913530072430128977135526571284306115505967608801821611417339791382903501190539842048115584929623663959548903464657231661080641997092284661509371177249088457294901141995213706977208068707881345452865879295739484229683789168081969092548378620394508661209565069277542784743140419818438267406129230334203345525692426229056706495799936522811118000364484845765540623149382323925039476985889901894522536619649244508051533834009706196521365311310698652853400395684697963556489236504797277173925468034899949643829908295160580650702961893678261500160396492469413882292637618025241084639573483290697242971587999865363367955180992537696127009951098014121932828116742566302595676857438305383253977392633177268860812442401677971242222152220133689560720846289837026547033762672174970714873641069584420877637062875610197874399630087049972438154149069690163070482096280280302016683592601989507050159934742769907206566474209339665273834113665591690408084710092180344452585600049744162996493681736407161729099566463427362930660503513533142457783066179763083078591002670440201817683631266861513541769888777552138666587029113898818680140085667612150490789002656764507171998280866894963779063296929278777310994261664723270991332564399532228834967237200498613149807400684574304071323684160484324391447289279902109845992215469565278884556756864269458186897222087012938997859726129293051844586312726974638343350659150968695466037864242111453350797114560724599843916810668323103096462927587907942013167314302790002791284757669400768842572093369353295177451955696628025595949419073287674931204564701245123775757794930076713150132653840551402041512136434822014238681290002935592555744948969147620299366243646633838620963865819222244707214374459637242884236544643926190030386428490747289707424649826037474030849374162038651053064499768085682013100252947944919985350126823518426162325251677431547829813486242546587933884877914294500315561420868450602700059020902365978739565391559991565804759728101678190740417153891041319694491471758500938822636100296332824768618977167033775478561966903512270440249262084469309852429779193976063544651275984402517492489796766141630557637859885310320656056763344282155331329298175782364755605248344729758964129128340021314100711868360844210517273088385019593002538638378134558513635832318799929505798409644265781200076528947625434362874852094991108447416032972369738603452232703599860044171526560833183700484365850708879449784984342076762170746775227504945399721771966560996836802813352481276833418999075501002449498592689645308673573111570857298319051431880013468632998520087139398034793051042683709491184346313680575100725181528730619926456124792656534338768625827045203461602352139199633623523938957530609248343410787290782850442865501027528985316850455568094078354399437906706459573121464269399405839505863217699685986572900179028580439217381779739922883974459594544232086028483965221265623518016215608673116364690426914239935749829405423727144793061972425644173165217898658964619230618230313368293870766859517655662474374260610629660503326758471428538037351032996059228087249101242189554905368646497539546992709952361104408550782464867780910081496531398103084821786508435943906365899144278080150534783802799619491373475333303143650874289043749606451999283778447653144193087831649132166526726424372948265889047330786622354550896347158607114942106608780238615824355336940001831500031824101614161317733005100300385230608489509345436243936722833757936549936555149435047796324230801641329766167657371849942126615494387700389392638587381269536317186523697238708912788818917503371969151444129733834007059387572152050473407085432189189678979067151406682032614340605815539835948400258012543569655718499949498382984703763474083039116935180034116769606463648751695703069187177028647512075196643116033327221490856791413216573639305643676209550966774837695600976543513594858776817448086392391397904560130716988431734903124854743785143973621468475117898695636529616319673878441354962579050500689597403123592342883968268658083339771402146530971690787154431338706247261371904121607951377621862664656015647807815692810716070852511789280643563276762119224700233212564786159742151672557577159372692110351501739051065660322063913516281275411248694432947829384138784521706622839768980324422347043476887964236641305670667489465620585710779594531520726517176724930431951117008497597098998022126374204130931507600403930125675564131774928682025461873708732988335721305758831736528131303882717380594633849595297010006620149981431440839837169677334043874018068759733411780450487606170029578584128604209086962238700160585665524694826274271588692345953967256607167404264699386538744770392916517859947226543762722599487519692034591352404931817117412329980610764580286497743279938231303610842244772689604477092742636388769788004217206594209487268961006020544407181207282764403080862829783408333116746409948020835466224008383666770170799516054561363447192927677194599959524757235753833524170019706573043581236031249479068642599138314232580500224385778795401271592689283244701688996452574640009902335298074832798197442268225598808530753759455569413529505037286582893625181650185860560805415442700360345706096128614897221570075380341263626444624644043238804362623909400683869799666565615500044359737638316588752765493673264015236642071412909691851029728958147494422553680688346683382730831299820594021720883486195973578145059850860561042023762724114907458683557031979737376153028419347184969294443794488338810706098717008825607565178874536374510471020189506838164952041032176529806259573912880344676856577487507805076177987745210028590289740419901124943878846340811126901501809710612377955560522598997557134781377925373367716498612572162889210562359774414930664355655223454189134761533701487606427490007208664837289235876185464745184631547708923794735895669910973392008777646005156024842816836730501180838208992493522131818895240990017253627726403671380366748188195442494713438094793855996588967705828679568638926341973339187635506285261636496405503722239406321718068965684114772422653346072128609998237755572991839350643222197910335197008881137576670637471791163157443822297348340032438803264965685807951753314917868929411705004524822503942183521499753121862573759329800457451195826567894942168236950959972965669525662258411371385034114840656374254370104076232771639765338381518395483227485704884034739012781526309232168073638507750625598135965924204549074287029456429830092786392670611341251749802922280373686126352686168179738700408346897474364862905785365333191536447310605254894444727600118595520789515260402341995898054573306031033748781557344705589464231771539001540220312048744751749664534397089551189725044376486197554497818653924654502694981969904932744257763704337274910817620644790295870239852869233041668579704660868636937215314562991434107830885948119909090080184819585458797292104281657984512088521771121630731255642154556652422256784743388057791014181981637166067545020572406318621821026448721778085427853714616536674178503098473156689435827014110958572312762218085366542665564100910440408041158236682879252508346281099320029963708904801755735582340363657384758161946768920828559744950063309141972678162804717365173272128393565827743868303109774451597352636623709174094744429096921325780543762821340749214988366744696171610413310494399695075964799467349835189304589484352951068841832345900184620838054560908987734627221275077926478344416758586519519078715336986810441113230637551567556792964327911708592862409139097275918762923746441394975701990674431558910914041140547681252968349355682164549553944291390594236913341246908784394061008128932382344058071919667234108192748574019076248859982216584850276959191596552085518564013586050570905706277492395810077143208371184216260179934225921180275413229092046457113342261598630401881070449320946097918558690193424841453243830398103121351809936656500223303325396328464394556593111907757752002919073256364018515847663611343203557375930848033437573332066142245886239539457432559431509422685634882568764658206145043038532971236861685110476876523391302428855006445617552616208680650826602245069093441329737609802420138469595293566406226351050786125694504608390325879257994881895000218372531310145644576049154384353298106599475057029106960449326811786970856944961342256464535834307611647222037862225622662050719121901691001036869017084580966563266741587910043894129951029219396657953270432489262139736591444191147796259818139354069149615245021922769644483240561088449704654180913402551006790416966194570473778460283604693706907172534796046210462421169769056838761750693635402391578431581460654165679251733716678602136314790564585763547625011468694893775720831773087030126932704550036718241259735470806340915383462250514346957342971845191801985002711952025611966953731847579909248742844785445891890176300466176527014478670094183807203840272639623568251370998362211746721918133012304942558534433213730243117717590617799827253875918972564537386426351540171971127858843403516440169061475108293918873669188452289975208501886704701267703450465735349528075366248192239355862980170173147767650156842329851234755960160630195169682799989519405923586760794448994823598813731773014317112088239140137079715307483257061044868290589015090807306849310822699827301096141713329031714993703088005459903725979129055336126408476349557405304983294868675294338902630523235865698811951526982801303133272189984561766544737422831964421645348620834883104239080636038419173089782592074914616131974407094694382306861826748072806231815183824953336744043164116303932074761316059529930116679263445734605465327342284338827649029404644534722616919301647271040031551503310112739994417711084562117369058557582566880602637865586708417897320567522383677378217330519036586330018809558528819291442837614954570316272181595702464246453842153456684992899725546742305703625026951203715291450999836434122678772335975816440998997927259875561139702192392782830429762847438902373674949440126512482308778651672653390766754641003484400477432561592033136366226038242811096113479056836940371899433736834850913712860418731703399533542823526475888491635203836939748885721005392057397746451590489315882982541882971895553823614000709884540766356273896557438501834875921556364342265137823119534856353329932421524067973693143742692599579941841504522974777320830595295120780114514542013396372199730604855536140396046298918253612328830969845009069580293150686089866476562613024895418261197083571606508884692970449438011137490224416506510807042822383421524809993714683767280187869511888664768871461032825332086140684571660890141714310947101476649376300886995208791016240166050556824850055125997684433806216927304734159472581203821365285826345042823254568376822858687479297914492518931885734361789406558489066939200401727456860593251904181537772608838627953915326207395576315600538246884766774976161573206214627912559843289061833261025165429542924948096026553400760354007548198684133420181010571434952978795791963636855895726634580592423574522303035306844237841077053247348029687510548823327552988624809755599419069705837612402063648031254941295248250692437515907806053804157606284239263256710970883175950991013812154294456801361070922056014075294429797039711979477865837672966030784880210280830469000042790823347936543814075788349801922477496228044447903712188189699781921158649001856048953500683403999931455605683338136636347071691491195864464174478189842490605512577890439845782824816070106857314362747131479666322212416745138447994615974934866127906916479717664097149568564196449990927542807279508377942010717443281820797228269423005825613506457810551627675844829863819224131454729347836312620215142042778231373380581900960935660438013382625106907051674641930956793440784026079491190114002179879378102696033867907610672160053761467939510314941855345238593025468677704524450451506861735792709248469827378151961952386745323089580048882837226085024191282585894905854294082126103988616994022774773946582901443142988477414457309236017530713503551714149876099059226942666820662402828856289853140714163781704736246520337961144619267021794328161105745002025743553469722961278573185388583755091870644234826088701267957590520301258236930770989673995315944535597357126959228361288066261981741296764169754587168604213885707743258788840410260877546496520744583483601637775059397614559162492385143353013976240958354852287471869011625990016986800790542700021316754009382493027267530585608424967834197339352785662769306174962618457953436020063437160400729656018763593917910096512330594425229892231234447054306286932899323378908284276918317271682836375275956494338953524040190507223852141741590991516494081307431008637372795160401024275169247486453259892461355334402022809196649141893761557084161419493051596713103060941807840049927861159596693937307983761234913113837240596601621608125788000472994296001069891215015843665772061159235272372197790144064407216178990652771380628473426063208937684800185464377710852751937390020140745101416444513603558051945788203834658606676290698698466495002951667250279148496163683235792819145179601940339084520859830694809582232199091780057204228986426111147355220197578915681371575469034764021779857705325120325820388750632651977435391096152608318757843369491219172759530165779834592500944042620283294326100475914742566035185393858427250117856866303810923720194428955020198739168003731232339814076395433236139425113075978544228406409471241687482864425670546552554545859111550689377013824994123637397587474526198307407727670290272711224730056535667142883649962988657310648765729730897939725263607317409457726805410702646848138946082506071090087358443951049068381697336740446884668360961776668390693925876832930225452208335254878977485407760450164326174406375048077694732542548298990590990459814513169105584379922617420464889314932409210114352354618358664362970733869762274992148551395626029796070396646965195981362538117552321665016667672694481304640881578376088801309138689680096544381627384216962449582021291048980128176898407041298610414313866416404465816973341848903900060920712402672030954391498591323676828986707832618460763940772662451462560870994623590711889350208883394484181421087529194145724063362131792563596868287980202640532579097985002956793254903717554935210598982953911847962552553891335648521838829015438421120501745407220259952448421345136289583725378181759038794725076829763006069632178754558306870327536774108044217014275666231522114010826239673808840079760874112352974899598031151960238088614583829311012885839185476743498351902460012421571986789668008211279257802609276912381895351301607869136628449133431281353389459868361920727482046989415768553175509198023515003129199436481801377573789107950319920380218407307440840222146610091930685117107738230016007146002314399967801443848204755330903925147719105130252758601207315431898290253918326059375051675385433327822398011415713655261364855796603686991495260637974833678462669363284522794008158935119236402617495271142672647500137888750005035024426361680294224698673403917730737361082603755514514170095489890522171956103022377234705912511162178057540638420289827883499693804464010104904532591608775341125257586389579106456404609994161913434292023179579713558697714480876159858643752220701739025065298454433239758778413035895420800138648097690813284683932757209050158073032378900357915801867386350974749654159496395590203421747056670946104229240332500088533443064929150145715706761741944161354989639671060957650162203099293034192121022837076276226153449898979094275804173531263436470022990808078441153926552305549133097709275039570358543723791150181064332844647968690227404968675216226744316381441923722267025296823241892151613887707796897620804290185365337760138247346948444871607346190443739340537968198515459987054616877538769296115340200518618465778696887147473634543977616963558488745447664075266513143807193092907974922814823605456314146176413349510068338545522633537325168266663333935495337711760480611866365681026977253043395245237674995827658936237791514592797347886446276178842670176468377531249532122307394289987529240278857796883784387171464636983399373660081324065121814446229953846988775297042654393581648190396555231501785816284258998182442451516495651748403038163816942458768761492158904585944023239203718569973423126001915586377899124457562062987991923712162921948617850470680382989869523575255234575419579302828326193358622922581977251008759026011797640595524775166524308786695658664560497592927218163073572689588197571585901809263383757377011610444496091477189718668977620930114647230045837362107738177598312335458935949618533878941692701190235443537009340262239753805121237427633467808727972513284383763635274587564423270527474863509243946957785766156501821789102166652858515858610285776159526509646721325110565559445291818661292765069503485519952259601335016223756601095877500307732448635319500940690602165969065765216479931946451021575846992549735470927765062902119683680208196909107715027580722523905963570623126939559812170899789556533733602727142047073287428041925745488597152334380796763824816594367775078727514859141308895477017934024859988058145636962929895289690333957109518538751805460713506783770068102808149044100686160180947952070200143656800315266203412176951419757067740529402263880344591096384648679158811304761914948024985436854768130774388795803955476386266360181362651335490150984153531371575154831443112589130750349159786496867049172594371107543081829730511815619841137821765191311148608731222057091208790473280431493169441778989286392381839323086323457828155251865678158085358917824098368197373210847093566418222005359490183926109272833519877654533345752916777856412530843283236386619292253745431510784398246577029525968372775147732177608665041951311878206000583377012395094931885010609244048873522035954738613565451153788253587932081337455555588163832863295541840198720178364828094791574963274857035582772765339185187862717645840990055786463178067049730833489626976432718091003946332191891664051955853516266758911397696444886658619392394332293695681271554585607006503033423063042818718717580755667890909593653960230973848994083160117480384183925976380331294553105709358844175010227979855699163133852489211930721348008021640373030709860846999982130189290473342311935743785527071558968711932790150956351334439923173667835948052734560286662121605789759948858285058552789327346246318529218561948054666549664768925740245393455119647433870361569749847109096505784589133603963372683637366181411768650321708079169737474443955050975566053285159968139171394947898774492013237676179780561785453380088241159158169719159470845548943718593124639451840673021055902800014560617950132491608510801020646254118798734238401407651187768244960174670892119506410139403586307730142644623223008595266710348563901672291782992100226970575021076286805931496418022437728949987466189305169338161105827910816771302460878383769120192137393567665989456188460386028702758053029896343801535740995061047032336279954486910582228755399362702860317788194427196399340069809444948969991998053837657047056656735632648351612333379743341475268118864814974311167314143933022426305456154149963325928619647031064902585192484376749962291730328412329805225799663047607718565623676085432245480295328274047357783964800307642335035188559892684388810873301249227641664864273196437326525205711901369456088109318927594733874379755515741209719399305286634724105764708340712603628654989927185637391820056090266031336708750120090757677249108179319145323922299822740782322740656784967096043916312316873716688590980733488922957849272235061504949120171876551622659397967178467153135679233902270962179823447763940346787907419734890304002146773423866699765853827268874163803828152890927324627137693704817691506143405052852870862069167247039186210726386233609401352107677438530569951845872734648396538363094896074075507012932140087209771816992086490151656597496213060788591400120709915417758374761243115255921021051970860302829746801402506465119710267557290097619457832413649683062254459066721936194911798655870767454307395289976242650522163671422951481353791500693485685771670955197828353532726159365005742593997417982700124142741871815982078013198661903270092343845571037944439534731322082312241841348339166933145624158441501728202219061776030229587690558845946580089037962969160504708555771417408866113781601797631541123896395163129714342579238221962548879716060384689570093059785892055787252062734500951789194813239978306753389103633853586992029326797678360539078826687782643315025813214678753895970899025064233832780961517768719841267231516582118299675299710279065297811072155229394791513613416828110653031022926798030539744491244371303732309976685545454563540618824583606028928606898178588071984215585694162736871070981708392416814585743425824351264599361007693201278985329536460423090024554710496522778116447658861762837259274126761816050319761215372600788960656395631498760172090534202469480564476934453690852954348390356646102930054623824482954980401123826898228979016935682233707835177144008565836383028359104509347926548526583148158472661504821344156911149010985347044720590917053025687718443769554775844877823707069711733319146805862926413755334968027911377521154181900281565737022668361330982101845991124407588600728964420948268630363496892417974722379211875677202928520489935885079782165605119000841897042628209118409009440402310230512059352461686608472070371133011741125722948302149040848077861992773428561251509516614677564840787611312701148587918113737162974480448112167856526346379588337465617454723431185850994387568323696764015886954628132189673683803933468145828085857345892411956682430178246076061809008878765487621750231367636084280856202458909666645665804562630477218861620238930335192144720948691136544520335180089550383719885554928177211116287665182473349699057690811451600931154101325334145534814754878440247654915621391629735165731814338712411259524236895289875830512970425274697345291942885991982255619597701584029305110146925915383488393110628013772403024020669423555201395042846896365949217794465007186206589442017255092147013018702571045494461912155857328473938498877155341296887881083080321947609652801138005725373100145235567854026314323439378469543860966027029648558521882536618028504301971307298646234375782159327443592351158974970899199055440532843123706252911326178354662774231009330771495318790031910396982350833429125432074900046287470131784218583805167802321338518500511736052647197086291054324439804174489632228203393021300093742855335128682896224708292745539569284719165805527119292413329632491136718175688930439362085551471095323932959920101464061435997776914232682482755212911192989930552803865284224224178325052789132311094368303821585572295106438498950195060838152917064250383026413480627323971589749696682843442867985171367401133657998267753736469937147549904932575903369580349704609911174393274761895806018021000248160048965759990371029956388911109986022797228581013336486551315265916231131721613067408245817752840600991503111949458611464288327396239095188765133368255784521953802560425811958067759924193463254114188140971270757160889033235153782890956103549717566187410623934418129253118726941602944516006756477661063189307900066540233458839487690119759019822575098897902652414814952601383275358308275131652084452086523058251213966076621667951289920593483225571022933030216529271205929645276221206238719456548133240133659766973146080633487362366272373233627261632353997337557242814911828924948366428695719936855118760718961851260136862088104337171831818112770001276529397466741797587602288180321340180841971662489359178364362513573896514661656181492562296932666902289658725560622296620947325372374711598899415021686104245545918434483425778386614571767360395139016053634000278624882697828247389727053966534212763878203943248128625372601858968406130396725049722035216280915429841598148725759299539118661272439949564775571555804747673109393097533850787294509764222177569310356998942403291453612390416250523027429194035945896302969546023450498196263895557792846099645805647714332296085953846152055099433071896478812570094535617833823210733338235356727414266905300859953711130909927773349124432847560330518076904565864905917512959975515579206256137009657681348893810640466591690158039578717253018967851349814942086216037879008753939358580072259026173282378406081545324790926348791315782474631739740948619965601102650997918673006670423379803543341342918792265081627644873428214821854076549484348341075486626407715512002988298888770912396269690946477394435954788591300546907325342844432858425036411604806868582800804804859433054892759396101577629061062279335965120639494605420253814908143399600338888502573113102285591439191242655221490013613113163627385770978798732178215742022916103819963584663558556734291472084600171539196082012078000340403089317964213383609937458317183520114147519269813077894223416482759037408585815225630377738558171116501104308209344252675508274113844848033305524528698001896034550656965505103844625104760350922362262037169068358880474298462088301788922138273591968010198434043409854541999195564645749521512033357755892629904053526977731633672923599250676745603857446747403900149379639028909631415235222753859935159462629479994918731001533096967923059201167563624843739485460119014441901506507913300978234313824804373845000478567375536403910387497559663391933299227252116879836312576181984210185206623790338604810099097130657092969885464174606157237568554653722089176267659784968933584818183040383072223858494828336063822409418071844697446182107872316430938383187908089408726903759047238999814549213049824488156380545140036302673974807450238192786292266500563967017434311905988485496343100215323130299673946877414196045710370483045064768497350782531740339196479838647907037449022097910223276815287892552923941218623621417780421948719625301861958226211347182153302472419428057276502895401229021745421406207468342175754486903397405773905570665174391110159149707954073215129111564420227753001534658115246175738593879287451020689867362028680918867627816100475001726291308296287302603934252619198093590300141683289279399141553519363779039493938051193133522848389860424302526510327602384680668749242825159935644943252478884816002872485686962243095747500242100581751677766725888647131376639778935174513399476440384063383925688326312786825623624198953924370416221913550835881040576568370358035272941006600061873657249227877201487606768618718033589253428907339591458592215300467367195287090778265847939548109030575897674558850727910692133509681837858033864457409522775730984371848710681020115739858902646434184628756205415456490016631277806217115708783281502536301518827752506052853003022135910639102705443588470293249151679461207981895802249705046117645440465923487673571468214180355393440467380328409853668451086125213747863654699933529765008447722231521067423506005955580134617768106409302878383963548208895694410041902843641741074890267536533721164790677369209209493117897071007821934938834961978374751478014000157607638073406485943835940175528125287517616405540283658788559160632473315929795442212451222589171252585834986262362567814422726126914878585208942442791447321111282089214664673007404972010197748681233908574548478033270244365503705877235283258847129912190430478929968204621514130392455778446224271904247785961876064464799408739070497434250614572080025100858727431033339633789911967892602827894151394849597202122944776783645034978753695426433611994651718587953265804776877182483436788407892317878708312445239757290641556801362142512243050026604733456178874488763006161142878892123319512292332467805233883585667692850862930315653023386223290896785172480302603211830354760084072463159814612084636873871204883234980752521512757887833650870497806514310183272554449758591563719856912531837037573207852717908809535835338710910738762482703226757406213593816304262533593105338560297680801240571267534825791828692455111808866591703851210681461480846969990940162207416531329357623322680797232469747534462410909269638507759183537324703227909735379582010762014784214391975898347015077454205634916686324576410763560248771715463957011829754724728577285348258558827227105877364075335214105434226825507382507925160107726138043520505178766568217887110465027615123233217662844073916905614114844029812056297319433933137238513566618733949555746767885699975957064697413624261098571767961468481755765607618867973887044805402769000963612765038183078301286244412267326041848719108067270016433707739343557382120600944765572935652077747760565621208395321929193075097120949160777776284799197461871796535407398462605682679308862718081830326364988962568017000342997392893899989066920886292031948737141449457331608179228909505786322601479798761483374697202209474945115202454625796348273528198162953387350213015298306326040664910157624538610283733147809738411863237887122168101696215806523486429352257828961307536297934483614733925058025258183723083003782471061286825674799866612485748222364754043618324417152717068481968168874380155757228168881341586526926096323112157666309184692855543496868480622468780888163231610113845772372106817014807001961814481632555109535430291262903930847908187160848110934664309367777027153722420110030431238202176226386151214531376540812824027869885509053397296677438386892542501065239624805341116592606967347408872641833278035441371332065500173763529002730780244517615754451972220272700966045763209816208992000411095557291509057855691097215654416945808989669808515199374627611571162055367442814062876700388014138536091879395011527616734121813804798641932177505643282541801684153790517795609050795266250124036342417546298602262921931871351416398962163480784613317680413925496939970790278553047747684883326660578028286380679303874552595808977949354173643186213104261390449503506558271459167199896934283944351069929628305852465150096026623126401454805255591785251602678385023136373286172390100467863348463459516086603390483574069873867134158520372237859535481622689442873364300580579689603624994513610201776464136029926598657937525631191302334941244772652593859141797081950446309226348238241001913748378206539817110882226956697181671906189187673209213679055528422240021138982435017266072108562889051037162338264020502343873893872829025919012829287267257941171271442266543535292096497490120013522139907599997429008989029661984841995673685117392088545791722916458938457564415405950341630826761883427805545200463635152302596601044754541557351293042758852489334875256963949030652916745114028309994105442970638079144307373135444363750841364525934032222881728536607253416345040609417680402210999328115803685596234287562743308455386625645294080089063006149021895365316293238671659635589901886535327751098549182705184624109059977494234246907667445130331711351765713122929410968303246043524660284402905024172664747693972729760521028730083706155162617566132593906872623140692299107922805258391781785981985973271854371982942423515985849927290689489878846789946709126748390365192176507957828625880615898997127867853598134399297570628451442134586774081954842261861285121629707254718671104772900193915348279633377627587252813736412637019889266737999827721926238473327440594123961877185173335329948895543150088648637749443690133780883510394859470033017677047884942284644031885841406465162076235565761778522750741131241920828269788416066199026403994910346504053224802299828165084864098191836852627588086593833904130007304452030258842776946587438466774867007508798136672147062206065253273828792353456824148001998141696481571339603108050135133700660812185851356815229625752716133813983965858908445982322535471056324435990131147685655151525149382093171620252615334674703287143984869404854120683593119604198464332828066265415684695059744791597642322198762720373332018032790333607914757623615521696206069129760807065584736718416796658029490536109694746630291570889269111610712283263393828629007293036563563874620646712999733554291296637214733677849424772944892314258538388212444958300177604747689441654871342241741741085480660903173790515885269531283265254233339232772049865965016792780512152015891506907894437596410049229733578323448471319626488584000909096958700842119970696759836455312469590779511141483026350944194094957630437465104448392594684662339385613825785481146876659183014171366281049719146371958846262542788985231548900829448492105783961822284892140675186144470722968686923804769938223614083656624627117893014431462731587816620533358496704896991585784750087901325427773621882490953743642155571525325522977948526511977025502600411025655836471969367249672389481406115561428377304160517232220134139640524201149769504609404410896907411131222396433922272628801441500360336580466780024659406951027476264836099303251936396867167449250349155800160467929013697695059665017029678341475283023917727511777285922117115593634920357327445987785316139092109949696177843922928202577910077067416454284955817791248461536273777591636047057933164774277894954661789657601007198017919814583047099296589111692403740816514528484524692696596232541705962051615422561959046286084801835635937911801434143937247247093494595262883894562698059015562590587506952478248443855169882380885313844929249297207789934626141576027477827231018091101271859847938565753496223901589590576207146028205801808392927869221267924395570102206938676888733142030254009502055703584936847481676925031216376422896396092541194227892407630184479372804196538708711402323778957606290734283816082983388178204408084216437036758995959994697060673985940492835741125472169631512636480248023371036114458782845763396843135357017512240662181202426000915250691498477137093705461160861690632694531253347493194216235779178000677059195822722059586725766166326355319916018191562789231289857163880946178203208971368509721859510183550288214707942242216078302558971125122614942555933764782162084812670989633639963286247599811874299308011658445750716848090933805240086120952472397281345507761620122336620985868599222210898625234878392635355571056107240610254876199158751141980441643490100328694940502164434218282291776175774394210002994827386119835187719556749065987228921833912204085400904865116547527136596980763945063697557520293641284847877293276381806777976433546802629539446935557069426158336276158478174756218859034244458572651057680756386418060437076084587143563304263647462991360152760981107451635773776968949852301161914856673181927413297770518379502368386472514867773581464864865644086004029405210729413850228080143234094942477123218646552937100796917435785285515033330203281041301934053810545492613096013850197197256890249054070369372176024930824624585537088316121945901882282238387811681320100672358632721979302693389821885855286346520732436895898671086794200747483845995411046141132906064276444125189913530910796169811601015346242522487316630470450755465622605924535767015231986507420395540941194837907522827210346136257125999419057028082170162260250764340687858178603486218031877443837109572805820725770877099275537213912653568163850548158714852020148536414457140125995560192637437624782771693868337459663301788025282151685593167721285469142192529273026212707708361943142300721374369083316262394005679692587692916447419904757206260143736754161725117687477326268194069373905616246060750433739255618510651629978792619947522447197120468530189418450653083242628706901947719921990690142235955041107786161212744973141326450975727759149576390086541695219171860235019781167378760627258553463546501460223959683555127134485547631073063376429026600709332044004969943316749728065753749421911045931649532641429880381499658077684222820066164563128931268350301229968673673005507931469713555464990672228794952085848515289706722225450333270306561687227432904697828389165242793477971272872233034871033065168942908375391406701180336021074689245917290257607360354114682089696642557765940793974887464915403285839268469710810020757233202771827488031473269160656110921171768891217940971093704366466231656922778171132280265620362601151855654738553912421853697017902362543950347711717918629973080087241172879297964392314962421773973501394940753671987463009970915556500575577257543772769180909384534762066567240879907161099796446507883319274008404638702803599986789348909399827214387355069037094624395852603734455443561384269907608463873341194170372727004696384324037921081935279145397480796672129207010900905930770069386823438591154723534773809276754631709863319535246480161658037990159744280405249502841098098056586228383903389414510742847441332880252952942656004785247556168778638676734442584179793909631544637763781376858180833126573675846487862728453191567831456121982892365898051323748871257676178946835123952969662925315222126892712323160612006917229870780833631182436651025132525719353348801826544974991405205628127916717540952821014634139736069564745145611198103294968361831645859047289800342189498445855469965953227008536166508522166590161968522544753817021713449177578613692737810701399897254122284890792568399750713759508489870079635530877076123315678500635131235585658809751108951491616327562884144215395713798944030024674527009354882200286460978761803284932358057144352577554203882422161084448311334035628794001935876211980246278465676187298040618840360788380786318645664215247208029012198558803432007055377416468240994643782046701262153507337959098920681541082314136075610118728090962985472232421236197213963781763043384138530501848492896146654799868106082583059029417179090102916704182172499727480460970355275249955568010527626628910091950263687334128549135237316594236380089271464897995168180130069172813338429412219896185839769375873111547291246738066798083107254604635333420639052835859745736668342585890402620772274549190429983156033165666239063528511179075743626716887436094902215283576928168721105650966688396651783111033831357301690624243733464980200742596450505117948098238827007663265402266892584026844712601435295255924498668391679237375354426946932194708785713853397069221239248534798935487324033686585191637344978069502246878493997238646804391032414008164959284264735031028200087704253214147270955125065570033690708839767670839611983418955104278393289717889557688262915248898312920723310768530061132330490903539815587869183529680428319289047083801249907891359633734527816807894803578990644946202187608121764107009894062548497728235930399457582701750806289117557013350984290211933559836679970706701190183241277186624124095917093882137164503300949883119189296100227756320536295731614132177160128889319742996206850843303267332799328476440423595621461580236841447103245331331967720490890388483353032510878631669356961948689013008624175111435785635745293981248134143087162067078254601359319370895070365154537715357708542785228338078645501370585242181077641344213298953932550173049309326014958388947772928439897425399003599546572765780310831619384067200043389904925945057521977095913511397953326217426385608622053413947409719056314648914767060813310711322735522637211085587627398514566342901349040307770588060078420068330581169497151693820209117114621828680252341565077019387909262147778033038059415209372016354426537070066752710723289454463467689923744575383194882922230241281726669230449833648912784701939101541598360879595102303901514314912717771212441071088385802764450798660505300364547756173386378405725432738448258591147037395894317777291931911849367786642947548177682594376477334749997670098527218562716235947501111925296950802998500040773096898157644006472982366890528166454162137957477660421098601177333568076313865461724313811176958544474139612259837985032992117348384350120937211186107197105910353582917218842646138926712164355667146048326127853595334080923966079061059242108647735108760630330989262526826090557926885731395593758224240943395484541238264784279445700943949417528165855227239326501903914257824403194729169270891532409294108879183244708532318074258905701227237842459305264571331516532181919592331216964104735248462255058056086110940284092163960045798916178410396198731865371680541808636897900923013459801681031518742807267861881357277184922097363457123351110131194577683818365044795586822594525894036260563541057605883727921243866749222059560732020428190621372429825165615835023464166113494136643348201652873569558496741910111132792324245440824608014220883495997411558798139137810491209495402259625283587667405705818806695153075786555622575213764898724410938468847775871541833092088160948524325351645714029901803926876488574223344123352212119284582901410593903322864728813118701988904579485615980582028731026950841054268598512797937397400717743504266763863578592179622631051906240999190003370739218140351392848599869218821589756886596526982056170381984665356580278500849602891519867156280431251744786768875835422909722588461116643362859012281960145282913121851434216742947108839258348731512658891247765920089697077603391954398165542786080196616138239596976716394327508142115305107326295481345417342572672317950765727959394854003035621854369940730597365126437899484589101541362993592659399941124076029665515054231862130947183326329167763796651140348136862956649135736641266913043384777350290689228644366760368889426009040698994771788288683789054702300348200594975541493000422639646223243015656585947685087717752757737199103070963699455997009442737095789968934869074132826526130457933662987059335967435284577436494408081107802537448748330334653918164876317772961514151702706901731481878819057475907952074720809411724296235202695642007958363212908170433119149754045474318346351228647893885796564466916182289131710149459780047337224106296865987618700398403361356836024595095865531018799532864236460880850850028855814104568859321759243083825387752438168420546259150609725686134753631922829625764918683314196997354262754699582046137945824252237573531143413167456628431216123267072639889795569758362433385572064860860749390243057661665362593538188675534627459665353129340341643728790614629618552643404000479961252221489774926962743123660378944450488387252236776381897932909040350544602373068460985253667897768852232804046765021696652860902730954694792442615016550417752037075164321781576198130986481062037963030174400293398265321514973118823756500708425044154137527307923252096375623125733390833644256836675338997716223900079458193376045864523653834328133565792775043500561315272427958697303526712887776289569065575760887035751399146961169102135386602741156615359352586885964953200199193990542020796225525999700940434463311578021261277179048952372194527343983311169852304456464829812140267376847641247272383065842713581191022496653677691933799378552095293989296420859007895988902741754651836588798898070700600183443766082633346745901450056216560614345891704317298249676252106845062983766100901724243975824894562734068119383569626897953010346981620835244413197615484540024446772358841011109971921999350401925449360335614642429646869065406733750748358966901112055783614812532525650164584225693610037540361958069255458085131656173521090699563814207062423000683019274904686264537625950948359699394214681442746249493929894922716761153749719649649896274944798423190301004535872439429882554324249876770025732569367231188208261980287749207381363057102025982722610343999965343191473156972410288918768023151788665080351900553518004850788431404094023037041440052166711426883455243427987912537686695720514901384846033561096670948411026264845987825016530147713028622562624372331176653861257180314219825560815000870163455074086590905147004617131285026021787804568446545191373432207219349176824565707338435629412080650912965670701674008495395682280783197764991256161238916320429155280931431989434715404594814996229063942683554199075181232291901758442224248770025767159230333074818725412718142548638933442264851196647192944068176658366064053253821010977834434472488297719502815699305071710011176824198725898936571193970048795352825900797388286120802095169833702938949237232295392012285558812211365371020883267636318599017490511111560181971959083782066562761478477662042912490656288213293189710497338021097431365035791248014252052038478431571776813510900882233467602222546727778020423730221381362142119390826343397291952807763390301903341249145349461451381442241436004563201387398782034737519905833158306221443562585397241330345755214147067770640273252656368053320241092701383102158194669150452077209036974589273041978985438551735449960094764098118272502578193353447119156388563926891181103233091874338548567862733603830235293965085495457942536616789544667461777009049153412508827299229988655431763454625646213815103684594412975934793403276627783032500415289464924285488868834626987443220651913778412415979600257593603272311938458519217206949340854492345851304612537008295172731855123951062643712401032396234289524284190663054172100371488451770610481015361925672839577862261012452350332272085896019855732762801948581193328376253902022277124531897226376922553041101111623232617472686492320653115768434286520539948755853564174967853009031893128369301864289409111670496365284855931878807008147689962654446700189716004110025190669018257584966335907541687456542211385505912305120442896632175490238613222672790965963526526464943005402689873018489015664201333579400792943233269910634003408840133126518855736550797666812250719774592481397449997326387092573123538165198226527809215237952206537761135741894337828440091026837553468522923440654640497862455868521916642364052458532947536362705236897400215253983649220089259169685134251488723239288001593976969413337731273889944743458080481192172146394035089004835721970888674907240358945269841818907946455903688485367777787176487568701729744312364882204448925685841697659110774856526998347344465318278427712743042105097740688014558412576068347710031107579265968102660894333360264870646739191793296630401919715255145880945923603413691435758888683936908750982948507573806240609793812957798047015531172690044927952058582773026812356469312095378447940750580004542874778779958974064822377064951036734958863368267110080700335831427024617362652935050243004766223320815855755071463426567482262808983194609987848211760498719763326775301299617011911760152929750203777539860675412270949147675956988254126184106465137511090582872277164196591403162228980851419442120204290849544624144114852950760317895385610267316563943254971126617571188805564195397109927466401153217820190943878730964868143061087348486197327616635424668781383027359190229800565616170164107281349124948848746477267724130105948314865299853028763288557697889053524743048164324242440504438411634384534953966583658349142951293496141652313074917504333793367476589521486226974168418120734707133970685450915991022005761468208794416549534494792676077538482527328766030262506102148252642263672451343909356248799169242034246560779788707393167833740095656086971944824283172435496817690374805810877297644258713417119610096417743852715846099185424605744712195261273546471096497525976054122825374586080601869912160894726461521528990777900130669363728637723080700076159631451377810498264310817309262550674559689864591175411690896778013758890196852654251570980222433942118300344254301749150179192762419664977750213387085797355674961737280044100815895221208440426366181729426296540590401058870671510828486081632677212229647550020867063914695006522295733007273891712765723609310551402287671625230083891194498444442659139777345137556252687031869325259179110714816082891070930704143162622911681135811833825715639380161885616733926772485567910289219018862317864869101587414415374271180140816739506414728725600806102361724381019302416810649426767962702547036991834100376694310379769520139444648565442815512407797517866773916807296518524590634553596089666272355028344072124761317354677163422840418919874034286718679443182083732782329814824454746777889005294384596427992104151862598211772940073809758991752866730348585953467306371105984612669596675113066201585494720557447347696809342688854004234093096048646009003302881267313234329947280384257957227122806706646945814755570999722010025977978179809631961197216684935508822669419927467093624688147116253205750552846447880013128887474636844851770597949691546569931322766987519976041820307541404448840031011138509783685498886675490986502260626329137319969908258495845779825030161902292340500943528532254785405408189311403847049894747864425055958765944976265264974211896496296166312709673448679797205786264163657941854490709337683171922403394720876413155562163684127080302448102913022166136157932540247200185368997487629549888731074165214901862427110976341644808337860248318209077335867793701155000365586163808712528611933541495169321335939099027224812882219472454515357356019569610278330947673847376810725913242623622994645581588164986994132194901489966354366903556639988766015530533420334085317396920315551804720897793744270404955465272700251318968397564588172566030305998768774633417012427553918114657297639011574482380326825127267845401608826361687997322536353644640240268033542410484231186265702458428445355611558948729857394759086286094072690889437457679539563800748850320664108977474705723900269861455540899728666282764390181801577097386210129492986645489719262414941210799667067666467112594255629863775493756264055792496495120360878660385516968134096406965028810796282878098666111425066594567900916247669740367599813119243844183005322059716825029894589419130733850817069405912090557377328998671228975561849018618971693842985530952679779981059683738730341391330281090999079096941497247703316019280468864299171079475501571297356826758838062123552437618831229992496988529373113278312586686183891685936116348689670925653517060012247457633336858615190173884772705874975083451486305847790892599518685753335522764490007989859123459002762172252952592365703644589066025347983927194605369608557008088968731941071185430420331327587661511857923159103608228609567150455003366113424089540410758994624967183281729810064646119687072673986995274264952159926964535106075864049515082414266915109202864821600174937223578513038514704359549653368749821827551594536157335208099759551430365967478332109907071410530992405332845117244793467962054074387500770136900390762594154773753847417702956308741720869216834274650651689908888435193819356253395796688991846884665930499948445233432098581463229684461126838151798838512513895455600292703581963407572492744506216210059478768458147223160142862064965316693092829577214133224469329189779776100958021277540977238969058738512372398006721423150482533269192138352104968201749912605192380444004520187645391875901206237878594114894854724123925609980615261425892356065758527764985491985531060406745223677925456913152656897187297629106580046312986258231744769281765186461802682086480409641612147476240113086212857179211246519076186400307695882407471403016796997014657529696727191683073981157762072810812832936826004842085021040105930837499024444034509503216959739992150368900022880514376786418026765120115709425427761149267814059256768089084001330767984038384001453188269619773675089691762602260223153780803038438852202101446976889442802871942924802275227466757961300377883113394503328794839293238702345915402585209828569527713380357002677184526091404985338754071788393303377924711142245016753143023247829678830707126737869350047975231214527490826577599346891887514819174604396653333682148587163540197911146079117358990986336870396852744053006324305869279876272648224108370257048103276003746010853365180422257387629407446655826585742956881786166820792972266033076012207412698583431241831772763417341087804022407483061982832313924743476675502480951255851571120644758179713863191425151920965606466328858325186476606900003884186234820613590776822231624684595276741858953696406748462375943174601401541244592916784833113244283959137805496203357895063252550245349322330965326893173706587188372303399595421517067987112852613376277140841639153946227005499668432817052151492270977112594226837250601737897508284521959635938016601928123405339281659059438326102509724775258577319630837744001924133550921385157754754040226584517088737618907842088472278941888912162936575067806163176933060344343491875859101421334511922596555709759271448190640755923009423986854047830498776771401501151786543311983252829011764922183577928034060841643022652225174523878268695797365439638254636513042086707380660667793109692441146893663026705272016197290261871150154640043244696179560334487826380455114350956512439668888995202247308473006056607915037781170177651632020616308520553505580403859530014942373914824181527111320589538595269734218871514392946337098531992773484868951623420932217933865120027444359995935350547190115542072458637307735414532155681020192538265234120128690995825476888978572880050575592428064260624268114384767305880595792295059308877073358216522921583464999754869935373874279646339286206116659893217627264056688139070646119128226855361365827398607827648422920386116710042241313024684905991364451755698800815818384040852924631844806060418929316111242723886088854204394307933208931260265270771766376971143247620699279330950207883664269962568386815301435485246254859748610255129173036354241091249769234387426275613848511781343209900429475311486380420039873252939092143918279708614014345665463474941829526282471728027759649756770963444753797798011695021291310358161388947002034468801940100799993033669277822583882970209594213260993288380304697616946244156471921718665907816941975580657425011114861381522123416336729703057270778861247309753907145657338790994668835583213381076114364121238372456932654886524049539122756673708998831595922189011698370752990049800796225746505586643792328546314182955893874018140551147868855179219230360138819999380234809425503481260963324272206869082152516606003982943019061397874463510993708078332712034754215955146922185268905132441746719574464188010131827912619087531552561925203590885750972831669674145483849892804091881740814681810088954011218568662441538593743306302141805777498228481298653378537507431216443999854792513437169921096685571534410226924727448064791324188182320748999088500585978673185546085417053726825511618167087885959038579361776756112787267273253552312755812220590134583992252830169548924496227487614494959466122430085264074729846341727292441814789613768416573234213776786601861080404166089884224655980398003570175734194299104236494805099241470192147336780159516350670472314987311402655243213571073256142544671804025915717319734459030099805571095857915543135576168466841167440581762049910604595364788915778007482439150655724227986738489209980718645074539781775841324535657343621912576585521940142819300798476142713539304328509917286699532672399787030533785247313225028086673041309306241966125664727166618602575099006540042490788571928886746299566522940647315316974499826910129482028686271852836204660790835435972206604172747402989287157857082237187772058182631496336062291529552646765003459614717769943727540909986035966196874204698143662392244691722907271313352276507172025588905290393005692575119075377775241730603269920559808820028540713292816738982516957056983334777275388060152796321599689190311350293764192455998167719707329838489813463373995945959369986609325880245916202612308735219153198897489707414469444905664727788678184203291873473670685704793706717183933652017621733314838598989907515956396824434348842670599478357404193117796125631547534677667744471233331171080136003441376843539789948293635000700037899245321187629568656281286274493789403108062894571302045935078046991120103148517726690444176061123959306664422869626664698091700600541180332534013752794335524485272063599697713718019465735458189635554577338338820396914548004992330855780075679166715831512624231058521709107889887725155432193619712637028243726501567445180261891518396517748123994328645960457523219794429547987815580196377700840523212312252949047600002451836259642489782556655243646991063685015033351629647455015817410740187273072022661050007097889014155976582572998806086455689866303501606108706540725405971097316450968494081006001922027141438831078021564809059977146115331368831289017643476942739099501059253910690063759702166932407097340324776707028306612373311074746189198764596562119842408077463529928078677435396653481480415513729715951264820315913027506039282818355548983587738820839400399703224618319492574813760129807024684294101149824475450057386956182796559667315172683244111441361851449205235391636276454655306078603170032617170781676374077434058497895482465022934812713992109443936598052005635055438620490822640951496473141086912664327895616568106675629000173941259646755559464708917081851914992859089711792486767629687058321856439715721880023019458092528518042136118608450903085196981267362512130377091966950878048529658967941024680617014106659188349772942006255997391414890744234702543014027419467687188866991534242644224634906898438623305505842243807204365959791259424054753109698670656783306826767390879893865321119768128913306691759359567195528986077030466626774977245669223872269520650803968874393491131142835391105695540365845371182023761231903732140290787398171827699596214722027255019567479430445889704131699641426022453176605820041598616145539749181355161913880392917952164847292941725593971818570259167818760467289557606768545540896638558501167358582730624393844011721431171508134281214956183096780980012353445626047693331371520812271011016244276137572572052323459641318934997946068983396391632882527128005695919763128441950520103981345039213779879718344026131628306867457682616620144924830690897769212392107451157778709778455562705205767550642826306609616551051874220199362849332243181258623297798861332251205879495735204334967018327846121445709975624677041991443514296058694290112875877288996873924518668237784446075299744100412679652651574973866574251067813816455348301273112071178973244062223425403984823486404214959849529567872675430101307202082727635728274059192247231530576019220695230362112368182183978198164216992754074085013645854737568473545201423496537815009402201662242605669290588487003239697754005592865173068102572031439088459568336591201007748274688490344183124427749861188354735597720000021041998289285678424151560886177113345508432659779964712463080576888545375338706174627437029864737015219787079862000266186974060929143944201471931826624498235349484233238184520561462758136865535787031108014206971226664135423466644259923906955663818020340230871898958702355488704614528898416044660623428807886353700839262958514244461912811659581650970455992688218947558418334750023434420667477352896967625013952278323268974280317923746832559898557672233896224657668527335373391722492174173142511870833928203849346920860790663314260474600343518927744168714619063269330977457142234122500488139287263041692489016534142567152845819690776880794411304941842117059298671893182780712197564510210256693153708087346171300395561898331739325887968960091300516693341476304952580463830852532618601687174366060428472500656330443663832795475781528374862279027943983180824493927222853098549872685285068052456859799220903228651512312504375681113847852678263024975337532695162280377085150842599209616800514726824306425145338291330993482416943755064587639016825178812786164851025657144448676123636207265461669955863377554497453810013327009156947217247069019418949705618084501421048026322591681686803715781623694857040155303131686744034969591478705354187920066787602060886478518508975975293414623118266445983679129673610097697676784717125563008244337882165002462285177733666079221842268167048154390065362282736002990029021973428804364682856424239586613038278688904948057436282633143244753230103035757369802358775536561997877751906233740990535319988667933582179064417417959355381425404503794446926792275735929933615805178459354602686215028684243700742513000838386816515068488580473007190265853096962361925382297051983610035945750701204608324754486742112160595686379138903902553165362357551523547391358297668328874430821763254978430420497889146926608155643363271083404602762378019564548536190546695764523894517126856463537117235461494514456001451902049566275418525298155842009985248998373129587533709433634082697725504263297319420965742544104263846335364762695734631942873730015138431911305277690935847467226991776047598969126023621537886568417165518773846822149884153925964275094220980899295321896266665448975610022667949666394192881185837830697044163966539261613007119588927865604720780176142880260224602691221820641162776527299202938768052407288234316649443421461845473355144222801828097599144501269611889007932912690938781427890457445878516352929857629050864168679520638729754275710485915802537503027633145933488260754614454074115583487754483831161620703411536016720057753190263847160656495207965953948016473536942877710191600305700779520322336832852915583582013052280718196046689660407927898224412875300403083510304662060841306522864654796353360354615421859280415516275780079886378477079519427186124692618622118324408279772717057719582239952508446161180930482781992584931127983929019138980969815347148201130618627673776919358875350345803924399766169277023826975751712296590034094729975867486741351759403786200075176996689368540544486320122519967760090764043273196159853946110899751678460938329406340588913824092247595844013981809992717335787853893774947475981693669676537014217682519738107947905315699790384770971973331215765945136637297628994641347402968744545021747746583906338657009623802838842492737634826490112075844477044882193834452395232291889659549135378382714879802086615087661286755655286038030832008171687064657950630541103820263989290841042148068890708574400383768089225659238346879454781434772107134895615830276657802683558730954497736432044792501008180694045211930341695177620385484561409124893715575869463444477506998253628671590066439305291192600889501881868661216768860363687432658236425700958494054952577898678651957044822942821454638087764069673494854405101233833662138733985144721778108195031408728090634138908344761728571888576280243699648929763827867500148545836563280922329855174869930946713105205107412109286570016260934601730268119008544964151720931066636202053726362678238819707563813269893920439293862473563691821002447344873923687015998694322460507490735924028328313143081397576991698904900857374979687874972649540721285388687384251143713597407059325683240670668656992311896938875811990021164879380059552052035821898098773562766470404328428434777824258675827562070245094251318043067854280235996609090685278868725884447866794387710264087925547560938687462415218555893619084187826113644658454383869845005093809856754277121943092929777340980842774443705794637536680586721729786525042675504799879372730152454351292866846824304844153606021362335476186124159027884316669287694447973939364897140313203574287253935251754002298889919163887857194905274280494598947703345633078710266150488962804989628276738800790315216854849060493600985106516410340070510149149678028558201770519176271525869643572644574942447119370816279951448002234090441683489664896793409334834134535524867605814776166210465085561672110602663826368581394741127034265238750908138971356709093706332461113824883557723536978788563718494105771604094017704457261273000462200331943651876757871828214953645540077782939376470145244031397810969873871905387437086360761765816098947792242058415941017088774387649334800387219621991082200620077244879392485362842780213878815716520500485372116219579109769353945982293490457670510435777235467671461218716073953804019029974123805339557476436970571617227867425898293181043823695837728193725156407754520096243415816707224586594989173717305716619962044098679132412998665127592961673870949064992527994591189083783211089484218101950611251014022674989060020344771924982517138517935068121760716388752904047790095195947107244982782200416010268286037817374274383366645122581256617689948933064022827057676167538506761238849188078399309779347991809358707259171073233757411191632888603474253328308066916358191354751779680090155894113870921205945498171688908209061882940058516116755295772566053191917184925897638573739452304887078698051002806531862082180788407690584630318322860931286622714049081272851664700186036660832171233185324715698287269108787980630290958731904330784036709787862514292272632881549973206395177559506478054941281635660664888383866072565162091130208933159836248816847074673117356099115482701695150844521050237215523659213012982260522561442114826756338186148839547317281852202396433409039519333017856662200916118643435985685059875278195728475507065267987374483041293191849594739897734600671735594042435973557185784724530263394414009447630338645423091105349633476793730181285188266092773671192302917109570298030348091230797149540615383765001231723686248868507379496372568189977278464911866570047774104469367133409738043436915280284865417083912683390421161700982068239962287112876000679033306032993130255100705176761574290899283165223764401746829888736390878911951287339071988013065641021443630290364029024699539409175058270288570786153079639218267967865469042080392394253099735332130133793246066305040744125679824896666266991029615323372620611528764801819625325986126737224626296586182164221987909755726037941571289468378532585334706476127706716273050143556208963260512781436090715971736605248896824738582092702845012287013099312913400617640198657995886474033947892579024689552056277487917424989484688923381674566798965056053086208722373164660669837243000809740834369419910059254731586610025993047332087792673856134207176911012095699526341575475083402830078770732261281173460567355227200156624740300736683523662276921219579479497653164053563881132681167232576795598130138626460118099043860689419340921615750656124822243851875343544995823961103964446157903877506440004408213714703725274461677584281980830772477756413921881100089965885152315374471141394704675981272933358350793455991514076606492933469009934988011343954931324514092200658649647276799755719125674353665394239596234859252984763438096017264686876846423409762921816741662703600438684216108981759673071165995562892398238490026480898460871907926848277755508259455668045974415494352100488073966076653079343484480878487327101861293325719376697759024133790459749054709913142455532749375454412599899845961722173462020182126988871158901961302112686393335760584971212650085895814433352007066034738930588167682012897885508805347839322625393782952227118684127506348051830321943516395464139079306550367971664385620785227182308579093302890039806217952239487229873350885078951961360731570635406834683477784368075287437986040073669761888481904490379888941941548868220982501208757515241685321680840715918053572323845350541794998745327957509830543387318687278162300087666470332648873245823883416272113160126018988159523852731663093262337857738002959538365788842693326708273855004138465410688583396801881156087802088337581592069001240484421874127622730275941789970767708026330068818637506895351885696933555813819986071253910956198164184440864915039842205327062650881210723960254235875988164571449517154306799459214110290155605459269331754284017667437780723709623859117686974097226658628027215402343357996247417878864813533257147204020278039759107877267644212658867140715166186953166626333970464005383640204139270738354096520948006075618751557069338960601623846257421581899669318220850250279598008032662742101686806314391526984513243676839673049197255284782136286678635430240922250105738860015584034255429136234134135601621602847024243327193988365984270131455879848781001057373563186668528034620061121472922468999429613945025404439396939952370009704331807707167690586436530081627177137288920472815619540612026883846853914966528932571028681595476313845977795779198845197921247276836836242698766884150863879191947102673259218846875980055874681711583738374679946951127718153910740456323795691530794959421600802213392528821870976851649038734943560160498805222227766408036761815260150868657692965574918297809145300767586471203413843096763433343365422342092050780224309376145432310578222062093825322846502469366561135789456936622687454052010697678169798608287216684522186984489232824508901015735453604196142388891418081721900702324641675030274450524203963130283663674757053293108915967078725177295702514929133972955099433518208126780166781390177070739154160375987458197900165816013571091525650684597773066917883738893219679022892045534173508018909489421807117545677127291669049768408759839728884827386684027434499394055000869730294384104569603953180277462266633335915209610763346568370452805257900206304064943796766625766484696633488881365720087845945508734182915575722678451324459391898863997565495123478082953602758656677094343386414173230841104277599717435686720042058597769751185890921222324648252376200216234679794896741443005268854790297098554156641417799590113505243341075085215906161407775308459106887234402398311391137063342734870156497304039385862769400308332439477532571733299440663074780402006009961166823466052081606811494323675106131115089220001475109948749722122937719562384780181977509737508508361010833410882015184428540981826134791838248609912986029501315454038946832911031148985480710840744780669766242073019314139027123290689122844256753491541417950814778103600201676573139763469164861917602250293918432320381552309291564772938057061824060893382497048882328798648887913384023442888096399898046164688788548486764494628759111042594449584318370153246806381030790580848640254114166114105953720934049157488547801965681272832899413425965562333062540602656779090928406733092401443595954251809828521975872181480520577419407414081573140438918226700789730953786324346632090581894599124756570733356069131650957795943214256274602418796798813181222597292039195557320850870554417852184565742680093880065664933389197034006402195887430311707968360893204087659032646341480794517725565321499965005305418554877100387068405181490337737202161378231986274332840844046421342827127034681855712184895172942527391766070974670847948874238017816101974004083898242936874200232511578746143972607208612604890362396765074915543760843180963856998359090402564330568806613764979356599339092982217903951758418185727808856155301713387144194637548205599184551296697387117333711049571719059282647115732118998572124109164266296404051882166418594513373348354685063644889380854043536011804928043388141729430818263282538589995255021116098280384734416417468495039619886324664604101652435095837967347499181327495646873578624798566554564645266400847422683453104821895025500289099908366874243907556064810545772805737889669749696547949932415069280923314278971453406538324112657602767495878074781345831640285442002572898051964989279442287012398185824061197708515469199736501277864479337551927181239062408860763579657532006876047975497881839173343800670490177174957348788450083898407233288245683696658133587394273808000479008711380562742140087036385235813444672492011482463556593767337846389727618988140946032692386039944124111955296110167732219640125809117168223873078878763469846599041355635106157291345307943153460275755631521170038922639447478456560021373035458734663640251937799337475541909518485955359821478676416175360200258393743068610319295278728015313820936367234510222853047532299088629260322457634236302788795400844870334121865936054464026326214289379908515336572510985158124201231248909351410359817606410513024318303797645134065060223922921811840943086382622160796114712947202825699970327949287590344809362775850216479699363696190149776594559692630820303785203515958214561936521180355436994172430579256724249857001724128565548884530516242602745325797374476454201120330196895155074084194005039674092656528215850276228187919599527476363738936749384366530780732365214636742047400438931977141125450605502668811880006556642009745312784158463393915484978755658677824894747588470839238285655969064645585674595055092718908453469834946242320673458122415586004195336913804678823367383053245407854210095915420091751511079039908237907105253801397959147601207820300685499632859540527996726100933029038151767749092290767575006535538247376870291672322314411213374487827183518132411653497376865831948604526586640333537045719015796837191241468064434275835694534172803653898986374159268495416507547580251199671484012045140177042341245243451385984121530292945869169102198394336430962470317895869118261879952466554082680725622922916896094996601592007278394811982741299264984292719918362296729642444660805294721469010010162654371612049300938488061369360740628558782021403773127237409872157306178488400528486507055084679840807668804283620093081124995234395573049245736180036436455258013225938826900598890209818068022072168531561183479016487448634336281929295351578776483413188982897203696121148098371638754000920474317908559744809148932733679376362250735484945833205921929822139252108839778319513152773419741711216919754568684803845214471026686132399129062169986272689970820645210916870497179970859886069893749554816161691699334116491123514261521367294652648297508675053316699677773616680673999090394011231645659274459746730137395010716932358094748706551011583992670131543695138398034536752249448095012660107516758309227128160422336540738752000742930834086161900286628546834776205827591441235851427771826108988338515361238474333745555369939232739704722449603978734256580588908790158492164627170805148413024284583729866762225770004183208066949591681002747237724492520251478625272196204757125969087427393432245058068776640497190089384564273198657298377575569714927993935871618720522511867112220915273221082432181569128217309016666035120095375068542439331264100958872371965377410706344290425196259822148532852611658033503320224027240858028554951142391518065942840685253676972697785408085054138414113647152951529717947110566649976115175178426655332689678969893143257624978759959534770422269813462526284564980930574555759172623974676614757270857063154184097085270404459719385518846608290156254638831951940287042859588060726024691459273042106149802498167755485947689330262273263597078535800803353306701906738484446176066190143239527437591476960305162396966905392390017247448641990663133288949476039498929637001474100642718175044552007253104867925574880826839014398118971917773528614107784186828022306998654761145691114964970045284774925852458505382258969905806288655231092946246797384196753121705348099290859424623063430139415807273431441625637836476800693838204209201593895748406938921776293632086671912427939939545372809979407647173840955841914745833009089086893400901159065138212912837419177021598147150383299090210420196182048423920586181975117804956115364354810978312040690382078209131137086707707533691220984225001579601281465648280936100791746964475563672888043582743236051013649046903509642346676088260959330518555468831732127997395286727433454931468925748494079193382936813200027424418709636764121288057053004264430945898870685565800850397494457393500986061671100551492164351424954732424205625498361046886859970990166051249800580117142225629527142921008509776261433259818223275014692561907626800143836122600077914681776711462445099768414445322799567747450978660322178943286206568356316155646547441635762894327372983430394650043451475721349104889897800820538261005395259980450763114844544284228844310758446517852127300761512624406410790835760124245201827571450978733689751604098959147122766885410898116625760161990547083391540166822707570587773345059814305889343377816031154231996729529441817386796858282125139943119962621946218310225558239393621322024799535792287989613334455667558595227927029312902466293310047081493585036881132818626486827625915328170694217774685139610441592047407683098417703106346953199924445993995646852250140582181399784777778922747945245116194933994587506190274445227205556614129111769870988619216799226862433533899431992233385676335158360029706465069128804694455041736279874678685622011337605230948533508179767685173828434125876091998748568166347168475694531868163028696697090624214993860358087786577243365316479840407810352345357365967070222294619517083422157798566381480355551917630132630031199893843691406482100997543617324648124785338439482287667494214572794792047676686454461491808576412822821797887639468923519161926908206918458397500366807862764721593267479470995567937454425043093026159219286095804447088492179637524877567569574537336656659770969964551216423921972263686652743948205578346942768790839946981976653165448689911119143580606701875446036654289216917987154550115406233159720089513605772623320441422508068950744213242098578429007584902270165006386402203223970948465020500887433297220457146205701766852635448279555716511112561760697833736435771721443809909962752109485074141240221778186363510796542679813883684449720542375820801380430395884025648612821773538029866008475696225783928414807927736901247821344976965908081386941379023020728030663723835718064566102941164547873321662154443362167235605785413858820561751289529720162659195600339865261804104775339274392950930662764936704338873827789762101257952526858226057291342950015339433688889927695298532873607301855726297572970095132678136331586544304570014943784290857285640521662796333737882620700255765178836243215376305281277028404920113200432439583245677319023634737664407771292580267833759106489765146347357862666309380976287138487776872855222292607763818894950981470979643044800099093669213877788186702551390266979490991353635308554950553192345370079249364858188726633025325295822581729030803482958239224288307617180925461373800879935467182280169458464307005168922442342121947573855838999793448595353242575417742098132603951572568036525330910754776218909302962805898882662219011681408342579234412500660218607038218281164484161924365826209242000331876783311780461509440862314426641355342363586628473901596624809382158822587943225097898430758244657644334868277603240515766613896503256588530502115254728607070270260719104663487873581091980447374314622983961566296478753397112044151157451348036623207295007449562200632430126108836934928255917447868507786938812290275090293759310073600155794666871658014311855787237757804335516634535077327467746964507483440144346493793865408477923589489874827555082578245231477482585791155689165967109335438622292503500996688178933655204166545289728007580145381865885180493258194036262832989752832102313496316523006878419229195663794194718845676580788955715599912975498449884700912458663351348256552088148508007391995442638513924263834645960603675008170680246952601621636619415425560042156167885505004164464461294183538222427995971555219465106384727716627298945280328670789000108714832219617800909716152085072640180125333008024504500099456673143630317250422829573780838343505122748464442378879250511937775006704830927952936624511046281239609979150295964875943697293778445344040814077836274373741625542541342089458857171709597730665453299329309405953430237345659444989845345268760962983667287255445948672285893311846881843146409119697325977712138498075715683751449971733201012207958763386855461582084097375457716945651517151747975864211916989256723681107481206342895410778808638572046137137875246548873401648194735057731288009979426715217975992671135822786116799189518628798443918021979648124182371863052666408580062911605210902160843288054914698189398287272991809738523899894493968016395174271330304470244856058108089811312434021443787842054470471898854681658735854084242168849485367547060287558294953059462405051932570253306501826687334148709348339839099349692996006803367175104297178355259831741499681447599215342007088825846899296293278458325320693604308710774604350453008173261898282001164198918862336227574400869982154737255296665098260034427933042135155350373745467159291772103583300768531169030458874392544876992640800521273324496812145541004413421683450382006227644834577162431041005492102494938763611182288490955763303779047748774880346606992178097963925001302797728298155934997397721263721507066054475069578522852016230199073439835362799133217987373777583991198048563696870293975738958304426840336204704101811461340809604693782054639313013292294294958920620637732728473682929746569284363010135297289965102745951909625330111953350415302126213921238217710768988471552409344493532374460175218833406088152530357402003424398774923741575081538252745038395600681292165305745360662494976825956643960711539790402215945549648490733425951746490886016096242224473432582110918142403968281889743702595878135696128826373269367847272290179485102486625508044563023172136790628465715281889690214673688364491564012349089325945122059605912062920674621072096242125870982706704510178063583240571902086306654311871493460654308373401572441384482448836018175505770596660832270017695502108499104281944337954881700322495141974371441746859987691983668438424873264282676627685029018358978463969388673893046735667368302331528624369958521740004926207131349550770502080199038715617783143966616305786910730151818527170924430979060066447173639763680545776505230747446913787989476450596839606865700936006725213918756980728772030042653988763876816460964423525826453084398581753970743610631740532660293043065066079103053233318148363415860695671676388375105238396131162676511745687639768184657546192188401279583590680640554479677534099545443328481254748066418496975120117555460783678298961816988707404226065687246436469656917520763255629032269920421803260227874157359842768316917423392635869318443371278485377823432859198961526938157369426729515645540819413373686447544797455252694571433828431291014315577725494664348225456126650478426851422540633627834963491866457723381101519800018856033232050341037471884139209312145607494662144431129111589169849269240417792904125905276256352609578725335685755333029757087043452461471383487997370743821554127264483958171540592987388083208227733427619816573340423056164770567379888317607976961128468230926556879252532800760560886890000046883225492553170719805403916591330359801279704679245776067863309407633951846308739016365743555683088784538774250222953198492650402145247907550097564181338173187221297087999080721245909818253634400005925189442150472379515978927395155050829897954705693477261012470387123180400771750356850522903812161627066437579340921933316176276260151863930064630411062339463636343076786946922173517167019325569287516489432597951503213814201277150194896076393231452453616129647046868578915588510807555879278440886488471112327639402989132195217607115585829329201025540701450641411773226209882396074170085650837593508054623001115796905429334999521170582919727828770946691703985884614631182356521676057774951240377739023456793189430354528029851056397327191962052609572613934652281055136333373228629955868327075223536311382818727088836143650659149379331943832254506507787581229122378728836624473823408850815262904618066867852590591447992399200942654553350402906740836224972287239575306128656068016483105450720208719027885506709400551276599138704392843132355670519435350672977798335019877799968143436639880709944907414756175803206121289690195168017152221416736583638887810453479539296335103794754668510870962660613640248875248991070710817033454282774033909700179228100877516388974648159757964069069996166104511212292809222632590426975086261523734469754817335918903396410693463648152115063272753562385647556570087430149182445106464872966779405548115247175639118902294576567205801648672182670540515342999454210364544847816841665874904982528339307153840811417475951129957377651977015023438897182038716549227033605159738059713697148430459690231654134773288670355059843709305905399824257493584910869990800270957893635788220801747270047769296034191018351449806141016497169797641130985616094356579048828267696403950986876455652245764870565841367410085924076372902207331320318388732271909431565845447492058077710732278152155278282623526784656613626660180767306891532774426946086977868321169278676908999553413950903731349590213522861526142079324503580044912451895358244239485792955424128898857728340563438597573264863049236880976591086824898360529412716918331810777419848767557854188361041332000499336421011390188566451071634674322330367447222210049371135963139992710194360613828496653017591236255288613065494021494725006656801769872220495134606055589428311881877090824909566663381038282497810058726264324335301981832411794457494608540947743486809649859333113267386716430374065284659930708270553367885991282957736638187141192945306380964794497571302745234820182678269606824438532402870674539921192748270297831120379258137611401403025781097964398192632762974949824690150192902549287315271962501180210293391635555649980476766220766422489951444514234151276977971245745445423202399136739014254174124731424893605285454971693393758161065819544256602282994193392562614874966428339730141705960311381647554120183734556513961089401568793833982055252785466144770440056085794060320371144748142518474673144662225647664323489438841454717844871038299760740326517675465179820577243659270523361734616271744673922923023708526970192418614187946762821460388021554996692986140622043283147609229174761015989164195439816791604073271225715271197827149139630815120836798607138669808665777769825944185647599010111163564314917368097916523473429140881068238532132377406261119895083111184627556188170574881796067079933481858876612231518172448492405521001944008314954884485704367814900340555104763679169801776125672415504298280229549249695033915179970438876891359643531920953058085773634605969613609522535866994133358876009654620265767422506456158740286309329939646457910245299914513349356570156872454034158631918797387054118411271702993854086275932037798144075853968096487348915389917016384765271450622753738277579925849675620043441095040408104430236808847315050713608371386945410972502905984924383646400957033567708175585036214469599810729120488434540837127893775728478722204021829417448648314687327862309655085119383369140311710256022543365284384630217417325271272486102883609275315500594580496241981871580855170672393530132873530685307923174053285193588214523921566325365586134034332750071323373864617427568277881116671769153804353237667325601931029217870747248559445566103806539841931808914996137888686912537618396557802507050124739028930878932116289634788322627533830803214025254441723372294438240195032074392301186960499054082519721366009711593789804216345985499208060706118009221493041093211094606558292486393590464871514787824337432565106806411727103606214914530119375948687656508476697314162705283369263580413200113106327973415110608256749983550489649975899501277976472552244903901991657869158594183855571991742633873441360915038862828253632192421993458537147539068225733041966375566444516559096743333921104303450861518189374686513129262306185564099245940774083600308632102200509100284618245003430031366161560284237336320827631255391895533883499902426621046948590454058900501595738460802551875829116767157189432077935947473680245395424560233118168646941061097092565827330216910280869178875823834612172131564514134500387276330873131745843203213040891826551219191820924760709596574306935345132292011289944418282115722924407739311847113975605610832281203046119622762792666287740621420765867487149491214520299799775393179887498314759282518182887472857791876702358078915019388539904900776437113811795047783129118124269180980043814974252633214372220693673791846548123487465394284835686082440493166279993311341427465184962694745500611602908518477145788955211093886993421010308594631721972263709238092597616269822599943773503376229303856873349364147763886253115281061643447389344256411180180919226701197544307894220320330975387262214527690216342447603986647763763048118229287742487873747122213243778823492717354862216861378916149446027774727477706672061702940758022415837828044560483525917976395127884688425420920926751013152588955367698103509483393639233082337746983839842031709511287790207930439749620342268841199500273198209580513607191883490866187449536154585134110704047929506847583547964028949837553944356492674914092596966983828942195863799032182386302399605937593788222707055039799391346905375381754651774520778951073892359613230368903320242711570084333936023786611870941857877294778056348885210520705619390692085955627816208340048504980603709151276340761535596893116796076454920891316640247667518912959848894781934212166678509182543301612987514161230044571330131296775310586916605849737868136627280495101691881487560983911716571755112076060769249756398638415681387143919187782621413641106276426267745087587119932246011900345328713421847652795121617828154777674587109257325762237277686514714276624454718000111602841525662846404880967933033333295294965225598803837842584470837313586476458437239937208145502995843977904248540449413800197494530052620064354429551973576186700639763988620529727802280034363450918762789674125777315882469492762266145279273587961289771523688525584861425552204745125284015249133528791521574625881765699554251996953681913052435507131056602338408416597864176490520088471498478984654479889881978878685701069719208551736002421954881349510558999694208824902431547035905676268232336875296188364800716227331375894518915311013368870537449097765993372615612630112745659254262527431386739161963687319317487061895767443633270520862540065435249216926448365303057070351875549940467497133083119491953306162123303891885809972015659831535515672747464790801722886238885385278821868326837862369401282234264836696331734356364794497508493987540416078154965207087767739425418052750319051656256318341168250146925979763861114752893950632971323857188837329991699410063636538553636112136038956937108995267998208321730212283174772617699325687965646691869336118253414868629102489307026817803110814711812267432012488141119211281023017903188117888576238648669345111541930446996788512661400323326429548499172814371076212461814477682144762708772688244527704960432901328952202055501332107352229678893113672653695114167105355623455675390765967266027791694829300796979213399823504403574652140689806495106307852201508498334895056448213698454797579784199874850549131522902982699817216579683390937247320326006477588437041370920968566339546402703338012966158382232969133125139257071422550070044520408782797614144346431904435508496063468198851111133336210898056124502635575191302052989505585728314364116599278472887105753811525914735098000528433489527506685132424852609600616631319046764442569624564117406786209277342290047008882714771480912137759732261396409207601615259759329743021356566904782142034025837148625188170666468653783795123251345480457072596132598206930845474492559793644186758496669988328008562568321603936820336669092086163174926269250199602541150860132116283525921545042551887563107804450988179585411065891085811049582442081606313477136508290882079777526807609876823604102064559844048308510416907339037022544494613459314179789512933139610164370209008171662572641239382965574111312091672086781397222374092792686082571199261515643682393290821164018142513913516361314111027439995747487279853413528486631618791010464507189515706314435042378126863728891231960844265969270657237532164171988244644224511710567948633535476461931369353580959142416598122395371060177403883966293739594239324630365291327599034983475820202135439798257848444948085674114558375290355455321180394568565526631714286767113999139400109099011126786256296843347177015763583114596630225027597767243905557146544171252423547105826880517645633916023895353350430823060448966184105431604238493251250295089462819372654364088168835138033932438332818839418409034062129971673163359278365524493890080611672591145189607966698351159686043209924966339230858751586322503649398767855041514088756439651273265543831556430063919509032557430995446480548747565948351446833518696289664463915265600623669650643348703377674609531400973886377425730100676098774896759722543057890023643474964783100436143626213620818325242446032084705554286529522111523974819097274816118530529799365530270871959907875711762492552360029051062772851570691379212518637281228731922238016182748786746164808215171285491485790000747576271407504510157610787489489115877931659088931709088339878407987579301991172520032280414475004797759621567111998434474283969189501647184701476296839447591609772125689987489089066358417395909472096542941745481246637655532746917285748769703804270783554923993542662890829309627548122662612793979287038921677007380772761482294185318534663883431285417257069836763041898181407517931530845985739909037158205914831581156325073634281700400779034462519844316568810894790495060620133332826575381077538334517660019882043646445321023102968011053158323850051639993677545792801048193793306323152364748246739651687962790026306114021461968353674923105303311829239549744457223498718977489363820102766323502467415599737735457736656192028680373030394909094846367713170440335519400233263224911582638420658259323679190402983901589794363378807914088611898334322797564995672549805732561302844554827434815775651223988468878400318725173222714785136915247545230879071204964243386546855250056535903881585983378530263099537602974432246039219681730228457165178369884996501674630026058172281013667684926026309693155485421896340205134312947723175457202467873423301730622210380797909941297410471179583931972122982529403799560861135829764661142721530201832158012808792534288026332106770370568129998237778664305820220628657371108484478464258649211786140898008855651734143621418383438664080103349741135446800178743231795233176580489314658000497196009358773954026396578946344690508673289040462156015742022492922637316648279017916416315674944576857320529496939150917136430574238750666018566753374592665680739692168911859299376579771407215881438134243232505548975169493748223553265461611116903109893723382534684880053058655734998862036105346143665957602527123446658752768435922542951507879463726281372451836091741653062577050350343889652843547475257831473815764259725964402085864269372958270354759188377892833194264115348767386595494001593188574937067661134907148392092222255914488633204854765221871499703906543431356586298746047010166947722317053683120658875928301332070447944671877233601231193019580155822074051404465579535252792773250634325232513597282617251696394332251131037485117386786360745984300155963931616244351653044470025263897286803056572581470368599619104916954767260598295962624478149684200452098061288369950382974521805976869002519832088642643402532684079018701252532530138232009530486562629511939390163398868420052742871550513655119333508958331320796269312476630590292632883491027005654528416435434052034193332096929818429466570396849969626785420640667889245746847726440745473359374774135075513061106347657283133009151308186118158605316176026413337143659395797448359183514086912545567608629328415670321486091322242708703561040305924413279667351047415271925653473881673791832676270005368573953030648601214114485952185575592596395633994027809856208580350579220813324933933367349720780407173046246954321002497705756448913343241557435675517494044256979581126526252488945772937568681054998643649386087323421684124129911241162522923595028137995649666841109519817871541709155414630095562759218597443154493770546443098489318355754170707338096242613129360093630083422949360288291476978397139565785247063901335556703458288471197053722163337025154456427225289605763769209746692568386812367403058621940566188058504257700789338646514810773597732226956208461695411442712950455714478491272651008760857715152887285964746620547962132893730474682302693586573515627682807436426776182211045830831412608795721428978206785499151585300807199675034878028750221416990933426668678149782214728941270976218951673108164079758304668742327733477143176330934258479946571726238495090063845222715355896055619404485295516798506102889190218259124204438513282356711378868913537144817638100490245922580233829301240467557382362527515171520383410104744749131284968803269736167245354357608656729302165460207606456323480156878652033779719660985750231619871909181164601825693528884121296663503694822188807515371671614306492076420987063943245359250049482289914779393746446172856300695476196218819877381239121263053792244499510557429948970243221208319350297223010821031309863071914001622453755835197305895403509102888613010845021345068107403321396914669159733574461281031629274638177342092310875579588670084313109640366931317488435165525691634034289360126885523267127886922425146567615873459281620978329847541001879929558087728809283542546570775827579638437882379203921056159418817748256226568888099942575046746502514838666362977637593611968754816942601394062566502124058444601334893404473332165524328790708384152387474404919307755328732972766406001843445355357236702584790073046938689438005155713254980540059387806846507017787773076108183333366138238634467808963747495594531549530875764966361664803535256237292110100517689400992786112339402470083552536058664149637264085728972438895956386956566756551935924826639333633866445746030390933102996233955775230155842266863935703146633795087667337417246464767038497951576679877951528941133429160105004947731040345343897453621722934907903440097645433643769045107041035247070725581164723812832142002920535578023930819494556127538324839042537074734214655527570169002115666260053020656910555506201725030822814698740253615177889648186588425284112506789790149254510239679849136607946206514901345704723928197958185246764874040471866087566004911574409396996195292737342460036100311798590753006055717118661095716232580123908941138747758087533617563278617838607167482683707740261513224789868897610692262103184538800993202953651442781654436020734578095255442534748427927731544795849379924078006284183175412834876513993903671141546903960278695933168236719503335450273652962354542439276496011224689219099204524473081233133038587798808579175044469273071580115692337965730487404241749937921170043809906442599453611470025726238512136569998497547147444740385381172681144366870436908623510792466942876235580411993596630494015944205205519438445264544225369434799874235739958045281447641083268428839083121688084088452481266771517678433861262570290081869388953002983236517809922564053851154274694876289058360156523792054239125808522398995062770846009098192486555936731002089970051686196436179943031029547169740800675678915791190644702817982792480349369639107737107532756766152315978094946885332708760923166723802853162215937440746993106729815445628162554438957511075968402885076080110388799761145717371848844846396143345942577529127068692574367305028293140321811822621324943499694519869223448727152353441492440831337988778395530813681604884130875258393455418684298647008707813275509667555776124016407554726018689755387089026340773359480009155914750710098563413588500974876269213460866933784829630016560515462547937583222419346272972983611067986571534159137674813164463004633980219818778153950836416488443990456863130133246719153088684062362628955178731810467045369503163087497351585327374804271268663327872038821213639581710966240812319481425182315590591823600208918586275543065901077765456710507208757077948348286710204561698031247125175069928886251468379340990832903266619167952654330701832949997827076449031493008760153475876285523827323472753260458499015457965691338368775114316624674448739526676176979729325706298092419860354627169874039982698378702649044324018277687621016915092983548777574392382352685625440197939481348819273321210548475929279014447338772518895083015028986512935747557143735326818165589207125503740214316787177672994043642638033608643722420576694123013480771488847886814986724720734818008831996811387940767237791410003145656664889271515185140879145373227201178135676016807804585930093961449138291033912774393288201536709807281089145199373677229154075931630491675846943829231250005141638512842736488612422087970309503075577931702332266182078275915193976703006320939845725545342390167141725535883586561512049107626636991468466041329067050768492264239496197395127852835276729122418192637276461186724570283390127052880057583870411433704955168641693178269651963077754865574280079785242630036502515555073342462247422466211341895261719182925907953962387498895745232448314958003208240359541518604041163867085727527726544055198303083840605230442413914802921834183029906920996886944903948858031314372457839365936823694163091158726683195621297371410172832987983825735409465660443318894837935661418309725091756573421407533669590714194716662521077662033148945227000879786339851237405510756723391285128252684658530809760277940890994455109281045369240115384996634394658436272023942611033720220993562535037033972924188597479698854416756601674961319399309027808546246857361746485180011262977362783407101229986070889632217687440668724558567469116628272242848525103948881370157332876564317522412467843947772107185422597811939969661154832581570757893365233806277403350841985660044364922903419848944747781861055426853296535152359833587030433128232714650105385757803021118915399705220357472617560767579004966345516542170414977563819848088048278799330815743356315074891564367785255696615187767167194766634327626968577801247972958539814764450976128816250825542633546335202724232535689860154972332161096311704444865210604768239645935747956530833962983454450724674723316393954434236183659049612922302767781128359616489191739564202208664873983124265849275791728280332826879759508309890553514951200975712822780128230978657744133511182897710226817675088312128106488303887856844069434534083652607660782571086033701529969859995606676003333108102625151013216941686690722743445778890156706922920068723925634958187795174756091902256855673568044582496543854745028931945796668133559664445228041125300926427148229431705298606540813394814817034388129490136788162910574780379484327786856743382292358351686339026401046958092395245080628920239241249700212361735157253580087089200228697783028989722007361876807793997180870021081839250059344682267131104588060451235355432794603763733759596651328283242360734614889115766432692546104527410624499751784141271687444413347027463445549144770355075472577500721700570813228008519510696914325200321710561043735633287870408634652302735326213023601680690601945629593087587686258364952002644287824441422855738503825098267116420672845956557712677322637649855745358554629200522594756905984087334670082340279366297903282026371568265529194173392467072688644709864053067961385894252017688897163104456637704711619713991141425074121069809444662115625070607140319070463850018549461933254459212814912802642677134544555303443764236333774982194675012855414286296554528758274483972411198919836150484404691544621431244486710931080122656430805159839836055408118454145842417376520344601596222956743909776356233074342943947329431539898893919903771509297014626293203941453130130410839085797666035701529000514528764927908463046515387851939641318418626597534061612131150411589951119692802542486887163535414409220077819346883384567754089357346625800663388027052898325136535717309602475353387344372867803368413173999384357637299672169022015534670825052210043849122322153024297670619569536801897538458942576283024177186106617605978059883822209602002841916620164394076028657495766203776092475355135450696792496376059601439712100770343109564481389787861303360685857308814016427010549733341088359819442964363895194025501014760459278540817864515389314662076191963242685783226639365108230453837001205181914536862705063546804217752240813858399405018644629207277835088995918573038301826845492185509860765006171634859513191877394284440251133514436050490781219661318946090628007036929643303381361367589661943932926645026979232350017828421161023192423156712205987675487085482249195394688571641593374165148150829584277902744097182327109937696344880723081254655099712014050515404120709756163646027987861018072822492041969270114114761165800151184994049665527014845489434520288116014952406649382971100976302181957267726147269355337747589514697413049999015481870996718814737849134149175217483800013893752674239642920297636493267376021869296528418634174790998703438584070766065424267966450594652892028513617878878443081844770258486035354693983246106352257861930656512471325363566832523160113086122054364193398788486586490848185239514937926024908423097102048555406263225743807927037425479601850355199212924964533963602359240124833178782495083753566753263547051660742229184324737413119385660510441264624039742094279328718151896023105971491305025620992751449624808497677646430987148465824434675695884174034682779050305227976272893679177485004428779819792291531590308887180769169204185619696823421023323805652541352848096189138104480107940558848492914124148915937625384328111021669393463071937528222835765939958608885338729610655241441333602613635668845350540109682490245452519545974803742418467397950973472705304890070254823227031719743893474984122628382406152333975620378634662642447489369494545122817348067728859301342624176398992324709153081254601941484151579740405454480381168825710997645100995526270470648805422404585547726632211811354441723616692062527206154687180582832105918170102680449261468011349471631842795715133330290610091139673181828977903229346638575047778303346541902723308873697595042531712331968815442557669950825762612560576472023506144971263259967039207237483497074641731738600077557090858908776790208081321880889428861104782330917322635692125138432562756288538060995570122033835568522318077770076224153429593165969858658371392647040489705283541972909787479636133499595390792892924396326909216305594488369581844253610087726272044250746871976100981466104535962981992887338712417423592926179252377294576081974975462252018728021352834398144683801045255474666015477566512752278528666291860834038649699372454121393980234536320638800100153821880248737505099941785548296656040619250176848960469431249859305031967899662084015511628172718865731812800494707248064418194599072026332490016359617858800912187720832594384204660866952997188468679896772852467678398298663844668190488175747705762238352581344139502870627056374607943504010880003812750917124114581808777542590542918806504169034565590745972694646642766183312997859208406473058192798950055735031888294181744969813277695247244581054489798720348810898475624066938856121728689735417034781967507366630939116397256029895695690084758163843983835956526792370984136197280049116848855118845919938162898264456255750939320511671427395539619345932882597464954510497986768298941757441935125331180175045430920896669986604404452995277291021727777780435852136948354765053911380223535941550493794052465948705808749525416923085127574894780495480357510615129296744213112558796462422317969380271702378430723729162158689886876039785872255045251035659134710225196456621125054172264433524875814666202135287968103470514539051648490382532761082759957975101117068567862711563467940208159383090435409309534455339537224441478102224849322645052573904123467797306116898869552035688822364340751038109618103491966160155292842059269375035384469282830298367135540477800252905919353789190287206630435056350931156390691274987401691388354844282299712496167098818616178985599644140971178844987269848619148524570537256028570369523794445135339614506470556290968783032124051200272509855075058034116951183843400088632473607928823288759676210776758219300123693292469772623733786425247460734526221895699086085586931154302503605897607547375209859403527304715823058390725619631923820358393105165815488812247233628130325205456666239765339496795216422648385979982551881317904799211629315199650343900594350904081028729216327122224390284654723456347556568845903358224701894274574404383621030544923300876418205069441051103673246550391665899575106803753954003220181650201070056195753989848787313365117734818888908223554323977102048448784209328883445093887012335846488799040847274966237710223877581220649862623113552000646835520232447690207059278692679311925815091427738646221982206817383811509456683749035636508173880849093816016679001154656251623199502034909741373468098783446978969238801168680422312084830428495296221894912001104249358882932936842543472436461158832276311874975124755560252146764836865038723067929751767624565818800034472921890525834745857858809505890095574304781369722963476890973493564142256764165910659982934635667246076782550312042891799579557935241101449270975406423600376897219092285961177954211354339191330578002708199340238154094760301536828472466928850601727376642389790707881777041699878321086832264663607331761187063602059361996158146277460349300473746719658287549904426629092659029261643232351179142073124841944421303968897950961809643400201609828528990124760087062037029189231868875869756896850475548133259328501361930808846502535946001324132992525743554611588959515033409472216642070002357568055390423645824047956294760008796599799971980075786808331639162092813122917829905559796080222915378361951117252200253417814065376784230808556378147515756014873863165193380811511019226049610516179802860029937698213478911420928960643184741413129362898528939806453044578276561703340967774883654967827172601655600629663918428731538400948400415606508858796552600398690549032619801182027461410154881181995059684449269278334122131472424664182389625441961933973341172702858021789500294073910664874474299591185250561360627194215518068194054654117091715046930400182882853178484215579485485605847101218889254414334826821738804107811467828811842725473062828216660642402073069408175474895146100987914655039819192590408679815756003903881707210925843971236065294181839437581566021461037231502443688228985779161894945454812382609274606469938232709095115873905958580997948863864595193438250174060475996820711866389145462681911236720097755846814361974918238953818525591856181516502030744590871864726428803619571910238300861540008579530713558803496858939977918918329103357110770499350035407708003403247685409725455194484285059664054932684070016914406933715303842605935537672136694482966911112990088804939016470998175069923287386315663242280633242816079326146195178242855895446342240668886343043160195192019975774817838976976608540915856932023812476446531563501125786852054908329476477805388460020463525961859964566355873553390750654492280553702392450722277484291760308763160539923755671686510595875557503648768562763666562901725893057798772696254561189836889516361995756258507411052097608709610170301236971201567898412860892149773077667958300147207541203810516832960813134968473702709222310245398511448803795045259771075691433903473521550828478695392419482426007042588155507379960975012240313224199845317098620012552887827867788233894830938144795074682483972572449330775273244638385063354743139763321048603749379070735323816120296378392803643588910832613494476738688910616742592978502938120090252508750969028406284296418138103146484924935531998171360715023688295079368691702062186643205094531066833588506114221476428083602479144483194192979300971294509585047006163136701068774952692749228791000346848899352809507469401581726676200589551876392511720753787358796343041616492987349805611630059294760842948554939858776706723808981401487876684230299528555211401202994373926515268875452849434312737059536511699959626287541919765877536625277011584620043976045781233962087961969186104047689989208691214317125084541711970737820291647815415740245808783426680202992832141033804884154797230265613310513836303557735804033427738012092069323010711101832295788264838004103205813560864302000391358732265802313343232939272439731334896967317207951042810622642179937255514061782077242115068096591479931775597698840186506670260102862767240412981568807749410939930010692226102954663304231616022940356676988650683441455447180455903049762457742079219796354320315498335246799383429357978965441635315493618706753761650264563241476399584307983115477881603127597944113073659487564277252452944807549938723442846307661243288242646430459715468197392998842535373862633479267438047404115507384918574421892151266360894308352018611571688793906698241594789052091684145137416150440485087529174183895151449390539226500508437739120328099418412691836184329157304033375603268295806374022654118769065015526475055708915474147745080917382643038564240119604489119708661857541175474676174456069760089559550195296107010579724201372590957408269524908386864387394452982731712897234857953014538818539623275345999562952476933305218978911560085554239025307168563167322732100302456251781925151253469410402065618790145914474158831610621769975884990470515828230039049561048782768443435128231390477586512163232353076238770878757673447538310432970056243551659848162855126764264299173014779117730891936702348112670518337545600332988226140303458026639857952118534007396247781420976451566101970708189296927670258248905729918599801718254975836924449011592479832213023795980632538176563880442370495729752569716900672397280272986680234696109678433312850475279130072997049531219751984973514943285844057045444540653741872997954744163242454308365716442196476939671829741540359994554732592606862930450829186222785035257299992225427908293700941409222494561350123262469100211398327139704864896552318407182320062592220818451542491651254091544837547763699689300297481843322466938696508473843173837606119761271071732497583235780899718687997292567049703974883155253487526899381010582206210627614314525807874501654958393983599464852338001966598925836674535549901731941408252625120321386783517272357534817476678195436004766830974445269016363635086432856725142262649321761030790533774801660097720086680857920087468912746514627117411335479222613136246492167179617703030257247487708849476127595786684241900036490383683725932930010852359806627351519951618376838375000907715237231792761136453217675076296955785323563749849575286652821247134437789304928048157064501874088033533355715083126904772159092692615144770215572490728257767590537352039207707735839005156380163986863382320149293886273031043489911567435165654441391891316058556498220793838499565226298301829391168472862606416316220894795625299065008880681166678064617868275641638435098745448585701898367707629068198468476224910687058682194605803359898572641924979636774560676073078952235677723124773352219859695612011933730965741448054013494317449412570638326905025718027319770818765369956692519056019535929479597308437989047009732964226327603988852162275917853329885661967114182898174508093965564660156321462933251738622198581915337762190016250996984343243251163646582830799475580240048538185551495730626899540399894170676771043398617705902815249950634330697094296468740658784603548454593755511003470348417317889417650085169568876997318260316460760354773072911042287269537835944992034945539174740003135470810018706766488570982431283818377228509886588414853772326664009848426776060086497893022735976474177397267708340595950843030569824357583239614957451187029295239535058374225932393895216106995573912476829051944219969591560655368521742717225215642950843796265454994624432301053864304802036328454535975393309526608162712572447074395292520067880167607055610925307469830540028896847604081118287262992629279126490247281373760185965128384405067897379333108837443754025704183519127146021242739629979885258401343362236575166020883219027499715729113934799122285752921190383805704945816558600505535789517463317903523381544424067059618679558577461238067625333112329258050482980051622002756968381242918263968952198748682473311967906139427629724662098583804059641543981309747429684172345387404607785010672263043512744046329164868168987339240225895266167713560043066060278670856303640544617987165289600312340231661955985788568730441739691969367036358852529145596233984858077105361809854300222200167418002180624710902563775358330150447402817767098332167984880467077390007356645314041493865568233632266768810871229622138636556035692011544272521679689837157484904617202332580902107179561096530832467056102367892936899298410971992175103135680896579776845927136928987910210071555392512496958210025444670403124030361347417802056177310298944095395407999968034499514778839131598266943749621429925832222756403415591337645650321598992800756027065800954585691230168347003236563922499327031699201313371083611196362651780319318902192088374217092514881795578720017501451840107164358112373578874708510951816821145114004832653371649775211682922536410741481007829247646292662876122375244541406809090989454008808200882454395637756765427509245978193596169639283690854742556330008091242314996435909558435456685253683942365412182753855310838079706333615871490245531064248988969021492737882808086807282021148361571425747991150787706522803347504251966879566222600660056780182946572247900198199551749831179095107973817587088204057013585563366116349381438454524162201375351397543134355525144596066566567816338137555617758029419428345285014078430329683256255180490952108737099897813544732873412717147505349972687281874711371390357844609522883785978806470296257257469029383988619709697362140929484607259401595608821895533864356530078615760144198310957033789523163505081252275893507977987234436984762491345491165666176828349493901839837199928150629190876213365294365199635959102833058882353574204295509794102746969204637833383558009521522072855944340153679849528204574921159377072446990274004664084118253565509193481294865241115647864751509266255879807039552641295727983736705960476639965594051535274098791882619102359055270693599971405140629295526389908671521276843680205185271654674471475738857643212647558081001809586519133983048184121124826816725970175162249099171205229516660655614802138224268133237474668619062466595105638654541866096741105593112814866770637474667824216520410702510867339243993069970122815968169764577624975210837267764023756286218232812796870123605760268900523347324792204127504001907604817110115463286999551059707617112787065444627185987395466944581401314371817028303148220404549882371632729143058873049093390898038258520347421702430445001403759588608356820650037857703539715646712706677071116341567203655065862456711253212205335193765152091726228292453520969660162728963145885612055495787238837225544449161243586780050159526768899491849700173665735884838199249639416767360453190262847401269386758523194789918671028147809840433322034596234964015666280357209568766418357771448866639671002418761834437072364417530847351070179701009148217045668885435231636941494809780422895746571019502804062150012823139594405961018023197742262974394740396482838554219892002242229382348674534790127872486213477352969154166792021116278001117211448427507655957283360729302487036269074294639785757849935453293390621082054140564717888319685302946059680568281973011927913612059706668878390524568777024851231190268675047805157015112430558285170290226061345544368605252737668242422812537101708021247085847211082828551263798547160229486532998258070068177470571191597188577741069110133815039257659668964123503889567369993367548419498365369483842426571891464537657554200929418996128320005386410559441435447662197015189737696249453820407827216644903785800654518279460059974708242231330384458270274614326416212022153439252605970020517775611243881610137405528681793431297517994730679733731113356634898338658533380856863993329528435031094205070345096625483735936515858543082819680236632153858478995208665860746977911032092502987520558311788440988058172489578811065735924724286749979132230414033529846527934074795943533439996432591864898089601963638994913670582883363997952642483266342957394957752243670860016197602577732247884058512654455353251727327593044662602887131556675511958829604536750073360945858474415151951394481061671362409772049252751276497282399749195878840975107118455633486134027991421016954477160088322886893672429785340088101158134495370608684731569658647495215418697958231732398716490326518116936250114417515231310982293012429200536087377991308325933834137361100544255956496407245371518631866135337368385554990941296818592271472734167608590138498850586041430091296291033046486144008474698096281041505817867914348021158287997579144415408420476006614008972460928712315854076195782658726819406768263731856375277950184663909953589219662529711523565415978548030523227690861366016065432539977950645575532329929181407641085793300828537548285251573430501943038807129118785664445358901517335998224602287671233742069019888650484886882721780609839978897919979479375249887354785370290477031013495361046440836283254851845726102627536914156784528717862364370063764134851457321622675884912944524475556367028144607183599715666746124886542820978292652444282743079282023410483058958099833900680575058269857385701131382538579430902121530459441485861740299215508414623427996792967623928172174412967166643513191792947548204776183634247742659349614286904542509648332400976516210185050156782239106211886821599819981913253701522664218618212993790812672772596461896502839642980355572425411623427250811247765385112255740690319679675275700240014308685351672497067958458743806960146934865220675664733600553398152266596813750942837529718761681411310827392590215790852711911297768156631979269972153416087472762063338550584885905048682489154378672058116420942980287888775666351302341434216277626897167381609927903031599998273687820953475224633177864347775153642158007319164434269895640404252707490719906636579841101121002045692294742931426937381426172548631850512005471989548115622555862406176970077837422371465887233512696881905263189578759604255525874759846275566998065597196544888187922503409881801298870069899204920183502768131148568887693316473717057575071125823261030359008457240341152289944543590559082089662135902769912021348328747389291561758396826297467223605777095664691093606623864021913935678165784219473200235437703476950143653980095554700656829845122687493681750756325605797417507281854507637339054157608922270617945310480767778054724800394133716877886688402940254255121916235809218586381435971069241475804030225421713178943921137567770434630685036529909470519479818137378825919794563528365518951668081421133931537316581365396792871404234336112378185362656571283766150129963816683459204464686860097087713432258761204062841350058998335248600893132222536841977658754322482195512241030544868933442162357738713812918117426656791237967555226747091510053672375998851274666406107851993650712823396338420247784931037516278236345963854990090502726427141812815287494034467924297692255328097709270898790899814707131259212199218348808560565368236875040506564370670409447045349737188025628197905784137317771962055856630835843949541883330934899973288070758180928019256839066680330566367434884768331777748410273002102110679281318728497796160553810566791005265271342517130498650979139200530709793390525067328945497322936273062596224737910648548892784673837862687952087332144509900465916672323368753688538252966558388051057024339292749260450169968912137730717644051496252716593832211021920571569758537098940222337878514288225800987043123110837788664833692378273044656409761098808115417137421977262321693093475349000332346168731691480361455767007821059962800359735343833687731819962460513258648345718962971018436435155178865881285200416252495841319139787723532470859709806477058835960884613813871098503464622432724891853627162903832267113771405474456732159131482534349154610777346883795929930995604123010343788173848602835742130274929012585236533728653340801163185375280164309347699235583803995090278104390167564717021410781169805193321989504375936320727637383094171262647448438989138382683745698785501957493379283849030257957355724322955950202448104157092228750003834600899932268819180675944274211044339864338873210353933978786657097903185352249069312879134117597952193658219247474479797733902729436266099754139560087385553229278350024793837894093812262404109717747077248711525054461850708958666261572967991708689594577076579206092928421367825370056897149472066958586515511194798735895649197612314109471191408464729744188831699197607654191177684040846593822456707349384905583722698871488886078659149996378205837927534163139494036683453799093305085579465427721300335981148403149089622219362609488453223825158373493501558277210127076605430674840689452770094629831594705696919195666590372500001417362951872185089255496463716876008465005887414942201746943898913993588114779236271520233977890098456753617002044469607790379836829972242285617508697940787205840458233232224365152042997954905564267316629399708020942139461317893073771668927714559564680446076318310872606695954640142867806598112771958661935654331234404080058507826781999128793849683187801222038727792052975418593024857509646248714399390184206988826776131288128832749642292898236295252364066122595764525236022825610773209717681411546951207100404901072149779502972679084791591328898926321424516360983823819664891026308016701765546057398515444385478770364138612514244172201017156860901212629253687712961443097573836555913237643208788326501165234710827782459795429790679420833327559482441161306596936798709591653617945154603449007202446040924523641203999090851518467261926188242030063080287154545106404405290777213139558831625939962124555479055799555462705366587291981274512530326387609811105425599961351031343904501303483977449383021967774099758033728156480563700857969567114558895748796074701902310428134870135509477070306277788887497926608708428708086284805798103228044583790544864132639778885528487453849693056227207353166024781539520090149818793620692086282168554717407831150654357815466087988465844627412739185747655601330918941822328091394133656418995352692000506755928561176139113995181590219661785365128236797900835235109548039515694142436549175666714518700406145237286257702131560274965408953672355508285478395389134965590795149781815167588821971711409668072094652585195856577246954452082189615518492945197735403480093303700057694842786754096648220223581149526541127928948804415647467401289561124466603472200936555314829650728753193062592507533543793037176270225513778187307347504368966235458520536054182398857808509140401906488142568495880561878008696650410627312902585515199169963336787387031823748924833324904149412285468094423361411250433052481249274137486451356298274493490971255824022381238527957951090001863917808459898133685655132979664931343932065640392882881518659678423410196917163655325025123413484047876266488615092244640675141989582576427798915571858233012699859282702995817085490526112036684016277388676241051312477242285242212629488237370166677193589749404455488600738798269029602722379228259100639778427941123369205295491770094705463225050684328578663023051182098368293313782205209696382343259381361447472862482825396865153601137335257712609839476628163805266847543021959860257313297294061819512033542171710839874329738232720232599380148959667486532520737006063440974831617822604251233526382060060784154156183194213999633534027902966971913872586332142848618889997447549389269457234975298837579197783187914196409092430501893007280946044976948110457640309029167642527569176376331778159419804172573018955482244149711856261308553012418670844794756506633685784586268409965411956586814240556584295750368055772939831769896266637630490192470849025432525955671892125341170149595693225020101286144254629614525485837506665759799886804871277566654068514049277649228954356617512821537964945788020128876698918108223495074872553628991841869833064211610352259164433637867527965920886667550972386611762595721990830693566456821548961959700282665669468553971989916098210546489389833778342798969494389701507755580616877987019519053145520049340764456928975582410560758048807637022785375996244856183501095776710940073496067735762376479188850915526216887401786230779846625360425629039162742671195241148618156967428425534359781815361158549066622846126573656898186533910391669628715385444283695688609949755320513681383945702429075754927978563283767560180862221997807133100697380480525999065592077015965193756551762303321820233889082254064657690826599355297689980599834127112539105010199103645602424353560333534629658775858539742614171273117594392307287844295757467249704095778859916141566735144757308231578247916879166357063577060087437936806199458269700047402742020635991886080002282983273346188295430956733560253963773492996332933811333171980005272038818004173228644384867776751083090778289620470849291794441301156238742250493210368309288354937711553212711307940544689590280310416799204688691785560999982905284700815537059064482820988775752337305930099396068247196705940618516190101410487207905710635671621508916589893769564944023322046892488683341158510433403155846142720380859530520879388013956435186060660857730917243285390210572209383691091634745540000028654587683323547832217472384094492232554206279714969823831890762361927198913704139838565478484713918720848899268174548350682239897564893449237954985822646790389264916195194202577446219118913871563889660384042810220636294443954586409152322900432658243243295766839658321383869738120383401733018467407830902198542992339367631512732302893638323868633151661346140667069732310069065957358509905909263003000419268399370280124047530279324229779113186003902995378911188030300945508014812250817532499713489540277741438465889646754077649064589117961077227475815170395345696411230267174464019861610730241961293912913306525163419338786919764174808039518687118172567364375955781392464592869882495676106515803242525579585418534389464598550547395831241510860903759507127711929631464750733637574116156371425285742462635214536058493770950635410121958773601029228005766473886664089773404751314118217996028151718443554522711641077355052902524120299805422095680291873157912152063200694889489398540916124257195809578757019226783616317704445656394914081943865664937848062472532311190194998864589346903572550860821565064133879892442916009239081358194201392012526351434515989001294580816719828981077617935385309253410736307967800343797387429785149453630857054146712145662279809866043022952901686805695707216286541723169918773920636358145544524345115415484555009125117453899160833134863992659143121815828208210582446508612609466582915574659780122163506185134012709672916731852439106732290592003774480045997684665091499448682070327241720595653455662994010674196377290061035484083352574722723084819829699166040811893761687856396822088904684984870090012569655733638205905529397148572216459501775298223053372636436788321922373566610818148502583775217634223544824643388337421800481605093244431573963456572412274231587585835586279527947375922375275999971042345181992533997576281373763086155663533585276665628838340074689257378249887353937081841989061243262339250524701829416913508717842846343511556449774985622896939761201705100847416344875043710432749622757859090200627601945470801379378477732586616891841965405381300158673727237005944751391188016922352181720840909637737662957520974348443951291120044479831867635212858804059439149782409025506931669212357885804578575523088159985482716919305291670569948367100827233337852759252481820654309389985056056682309735971626339331195047971685313491521627307775970957285394768661740392189696962983490962157717181656458862352931628369270230449289273628738675885153459317253101085447965565457920243952333539981017596721066536699807006469130102651713968724048300268012483219543811617680467975652544506269702504723294928972192816585247146725061137177327195931611721759756012172827379490803119458675211908927801946484023933841296200558747435182605182768838882736214222010214916145895555880334636018172294704145881442112652738329578151593266943245643031178803806456422915315078497430555879409365678378295667129828161902339112472362463019226743880033075782752341310094212326783845609325400887384867684684360518849408981507109075702660482715982340153721931199645234237787500435632431471420964350296183967713765462380033209172986606479283444802261407013089648023958052041172978997589156836202503687860850443733458828854369992503398908861347889383967661996979651612060172713873566762727319950477094517735102816588243258038232121093928359277926111906813285182698366304677959356425779801812513060889080590411587890340999907557658503477302954835275393800773183974102330591330723916897420038533476345793589901936472446063725571181963942347248347999399748432013397176533479235127608707372707640203670282552697226870712109740581741282965454076910081140533159221535731682236056803754998729087502534710373859171028131357566384084906096976383861894452806592314060021944595612902795968471814311157740503105605341817597137774739904472704043122432491906934740704948429620058154434834754004755735056189957148524437602777154700553949943369834989716961760939556981972543526006549477045635095748270803919958563722183847810841980247761670285580477554700596671683426037544654267822281908393482586499413101602301586834494408460685720628740610999286082067504964278600381158730823220444979009622957022677874423418568038882332459071756082676496103821600889434085310553053288857449404462623941604714760333040226611720295379174564801173884133556782284631943588235141679006697711808050161761190891437616044420713878116261175635264638097861664000402609230392532344717044042870614483434214073458851525394236545584494057138599990005904412405435299830078239630418054391395204056712943660987328904700340322379992093814207690704853972125673118442624618817062097493679364143943583126016399764756074941256159426747175233771177110565972001787791612258731838253549033261149573763301774489977219751726034511209178023749977039772613293050815618583603339571615305562550204187019708470748844626535356291165479181201924315061112641295786955954541479616598373681055534429203914479819908219533210218196710553543863965744521101349851069430513862171702837502226407192915211481488022569411793737922571427861688688892683340601196856170508977547484880248206555467991203813039099061302235830172234273768894983601088880460152403468248040590315329727210348570882204275536383751954156160561947563414137134875111658738923229771477473064980973060105365622657248049049377246725453035981599640225642878170851945960719756800243642118594381366003192991123164796064799588664278242345636108551047376760942641540710051674327656669862458068633189686561214686228412653426841942330495394131567874747593435660513443441419017196198032748731754879991102251901891353536875358782091759586374246897588746171846608583152435124341379309171444081377957111439720321352720576986883877118198831260583767128263822920207279405455459214906648687392330886425555446549623611636386422091598000446605076763729149979742874758401345356501523716782160938651940107621430278545810402008386563176203191704115358472857421994701122066380393304469950345749369218720057392443994091150766425717705367418566112270626161840418643883156791882916138707878700609383568114406353737553326097028446557536149379437236082355817244239784259813505417768210440474341390816421114086326167601854494474951928129267539507206703371911349623636886421892573020696454215945439968915603466119568677397076525232539909889878675499755740098027218337552482421094602914527186446711762805459526638794504062260793076320061567112060945734615665872018841156499216671026391023210107596478161971827959255425970803361286607765593150023036333617258734065522269794358463482543065245627394283982762851847200071498022556519272261377388937875801969939448127180971427391721741001711498360458336433557945419339636235389946162066213827725683871006763859811747977208703088133463949584336983778536022002201719716067225909498593585606705565262119380582991897352926914786323027084517598108121007082193534854448444830212151990180885845598720702015137300795759216607844336668140479818752836672306539771360189528433831223630608512903294549252114310088817099582613175200852601583531712318873962515944019273136592833739299764044592259356593662680581896447157227795884462131358807404781623954613060049232666657360358156593211915005867719255178764137525104425742844304230461053629052552543309714823381135003555529227709092492553537042331773744039201403621848468953848120781241514562250320115912338153429703105331942461134222896659342438095194967515717897952004453643730726425079930028036828747909592073928714512374980179643839759286052553171591414813281992272207548964449562318862811982094475247234507080571039593571480032604183520737784341436951413703024379724432734162551659490091140522482238792934743205667240529108714502297832462411032765772238600857059239110913777300684212104437068261169528285836854557812479208553911054207374804954301295023009651992691122338306111712776673271071255286508303620382473082566910389761081006928273965295788603371124259077066779085550824293306549531016027463715371632521076920168126866641349201803590465528949082713260660262261835924289885678178269618716029364200363042927134214583944065094304536473039943621253954597648662733083101140638490488163878372529965876682524431497253315324982996141076534710896273232535149010586127013856396851589845983324770410272379151523282063906921333100182129380543306735997085966408876105056849515189551035119994092541547682959544927196014490627677302635034083840661156659674802148085256656161273416240445222834148743226616515083281037977575813748155333892388046348282887527305314851980865968303825719719015765427630619704695659932926756426146166199379373026654333082228320923398405532777990044490176701605256808507283736188951440202575704294685173832519635306539276571961625365468719944224289045238412232789595093931611058195133415954425874692599670865751521917754528545436928193990147390484317631840323590957846317582244062844964551230675558795381874136153011688534544120393247628054666748394940159139300828045716799992244114732553957892394184772030665414902122255335070152529403597051556119890255710085088872537077423444788463947855575988430790854253995619469290267876403468306299172932082825662760727860572340466199550926264039975556530059740508011052846656938173885834727368533687213204127443624063708190561759438940914848286251830361453551401306591494784500152300807132046333860684261725438232569847706843168729839967254619021255704037673508801760686325859139816429556252045757417382072042929812093841086064434667775510567188320264624844460324754211345191023615333453840682002281154499052363609814173535115756124481294543066186189193019916935053646379498674041994787147975126839981886879694463791551764157575555182056490161909900945692943328133006992532908093507060106963436323031023962783320336742411636632104879700353151026022515643541298340295854861575803441616649612057449435081657465618995281130966622274620371892613772852900998820648845144586103329919072408134167717488272796357581992592124507468062966195562123212880448363452045587540041680083817944507992753499288275967882568961283213225059032669506186068573653930365151225915559408716822312392322990330650803768318837488910963576332810253413201249233743975653572388460253041741371248401260979831439932730919378851781350478327034021046186033989833054344246890867912084166104294309606595746903718015806412563196050505896885454659880893433623312291501720168058199665561906741440581502599294401251760715584725678772490274228313752306547642947284150239427125750791983907881213006693284379073603175150942299802940330621750620617793789695134927192819567042008297109525905146358759104497184282457980128036514970050701614536677111936273997310758070437422397264920418578461110757093580907264452998298577749615937137781096038396060280584955661560303072126005219148998922217763312755784432490459463908417821077993475038199351971256039358680445358457473911240218825138476512791471670102394198571717825826409795172671295422886203228470120470334988698089771572411577169901460508717935800043095442384161966677040486800363613507520734122583032254167159475008437225418587916405294047102935143632388151772275349782120381573767530468801616516875469510501567728272909265219268136412453604893526672479142543993401031636784322309565084805204355957119968805662128327497453748466786335252755154693957269425563852665897870003963554111811756994474340470873484862090315137808565796590455772177083263306277491366943970608333529243059829494124338688065080326513310010735503708620079580132083345684184056089634042012246754378013108226916154024300330866940190902645058019071378545499026473758024071693782734625873785558599836465247025507658849910736474819995629938731195060412405573035107671624985914992271451140063152382971366695560619577426745150748517741814384615875642901207704208379328206307341923936411655877059724236753497908557218891788168950515851552783465103382749648609736042947780701137821663825627793095595417315578433498037834182735504252421728535878004779812354584753963448884603937830862998263831594006739550232713935997533127673000679688969710135262173491643226041136190549897027223531254991911476854360861230662303136316831772780321897987269945344367371565592660384221820482052848437395163334906919431661476714337114771308016358344153939491777467498082307663577886061785497244791266513057701280668626054211189353616491100786778715390816269754579469070155771763131949250362183240189023153080088460888126268661467963944874236868207146122064674679995379104153356942430290938737742685653156085044319162119886945621643497266196611081566021808951550783895465986129626689051748867570003469153105008504752445379033211088554037829992626338858303383542806332356534433824476344167221891484391290480543869337881556952394059743445414939077228050460878329201588972475946597397139563936482616625131313815153732054165195756791320108285508653911707395446921098213943667197844041208765466268013797636965738723774206414029172610024618418042320943661069203436610275064840776703213999237423467325508355315001493312095638679446311336214452699707710461451521739529851086586257420729240265709806467812755630117584944201036028169053358857552109923644891359668886230172899957569583538442995542030550784099498789346550494541802304860451352662757493140812300842784980513047383910680125958520021207681270345527842697487625345154764728150604962222054177016880616622615406331430074124282503947112814652706346808987548910431189531008393045456150190303267801265246559361291281815150552804548712706081801796871414267870324865480193955181553500034232436337238883612137328936058879743627120459570682932166652123515962039075345954618681701544992240931529703077662532323160540310976926399123778272449280171268629569373859912830780624071870881888403607507174609340255873138573504575628561960838464129938832097234160512997140293751701217390788399369559387657422492732840808750986860362661859852680977842779334611316970454301903034913858030150291810553376764766411126990431051515728783853562570249607100688299122873914773944227632219823046041711803740545547341854522843235338697788700171377006566552952508354262283659721049950300967159807636140390927287425762455998329209809655929432205460509526384848219287791580264264323791065563057608208342403939767489943717976401692635699448995464398738018868736772836131862309175040147656789863474616533377936608249427639390071008969165975596535795984995781554836066731990023389674244178737174461108410289001259221547277454350976887347816117317971312803621019865021973902459275640514112788951939123092659012194558208289208073787748783489628531166026736262851180489056960255920883618156214009875012662950674724383587163383375308877439617995912182559937827885106243003174609176149558303198812297352604784904247054261358445604686678380667630883271331939181314244600389380648129601096214186617001261820376423057163067760645943632162812617826016731937753132635971579105237958434534040187822658980999210962191192031449533730645195641395298954288039058266853485287433394131672368428927831533126609509928859364315896752471193561909339410879654449935215896012737437392831029978560387144418609393357967933348679773191657898639564592153535044046530066825428375105070672880968613934453076078170732487147407217048143102106543805794740201952769526559822559927637565853012729509243491201806873752272812796195889745757221648386864752242518936318989519733322786333424568256594873284462538441683028654221045088544437462418026475971318174447229647125963478719714806075918686768133415003709805400605771222364465980084239555455333211339007118249392320484452808866764594520829243749643158555691757586959918101308930995623813621401007379231710210023765060109459870583212363608995444176625247667097966206280621790626597341158911323154169674870429942374213404538609639869472540736423338474592424577427623203201200402368476085892839619727652345213764362852645308548235938042523126817905634678784185317975507127888035506733269321287198551596830278618879097363492283481019346560469826056128044815921197644479965849244770919221101481569322225216695354134007849584978372322762915853544805286102843206752569097893148682365500342008577356003774382894793282161980119443039745376331353062839223471817206319720437878403555573379310759057560862719857602714227429325033560868945320755153958207099632910931100073891538988606973877905250284579343188420238581126024849092198705272375832789215279970230095866475568310862547515542953688018356157567476431338514345580427199742796899463917647048050028249246553520462978818617654348508161883884609045230902831179647173759675251964285879408093204009970058162535289008864343514372934388191463170141712641002733428748894063448305823709010533594034104209474684781143416518770097122436119822858283878488782853889657413987683239739960540962544800216993430737736202162876222950486846903039095094601523689395114524080883767958483327926861880353564165624686386108697718385376039898519549407463945272207971777960332849872552274079280389106136436199628892268506625386806796255567938412132156469850597370775595532405718974936061210461801590294889972089466735719699848206244836348248658811151798923655508081734106401351298351466068193976101981230758455799935543923362455751146829750381093173216566319366043784648869971519431622249158204992562382708410746547234060231566088906374854241732913167045369774076187838583856600443654498521996764411969307624470170395387273837191097972731749721289495329618745193047345838532215647850356025786659115426630601928028357556773099992364424182888111887929983126657847015231145998463420921360155669464416383693301472750112045602048156467733016554984917773539808483755229298172767841254684429392022322932149603793029125680130812345466805430651879050841178938631064871259524581645632588863828476341356801515090447568754865798063746158851548316968310718589929996095700639313592296863386411595003505098476538810802846640481560767450102976405338302502946259453813495312551825657065970095101721855293184359975659719505538665579564576366865666573174220760168141065120734462591100395130565856845056131124374323711939890745110181028556236653561136717466609757340242892458961887762251202045656941236101329507689428062031798588796417610111379165217718632485951101769761814407085933542853784721250268627393268325760374677728405867550959584968730328791800025583406942014954431204875657563439022736076267843718120664498874147561936779095144635298201819274000466546039746291265277041014212876338924127954061235295110469037912685083581179455686403017791174621505318962621629776079169322178896919741329181684490020518889855500006024670563964514920506040818693367818734510108080888767729748732643912959739922386849627210638866944107304775524129715011386022101569466940542639522562919226100261353444333798627524461485308799120069780803827575321955216463184840687081063647205781706295471482743446096229613310410802321558924498139004487601137964386967772441716942044513427044859980668217936292790485911717548489959382195091500817409594353170695895155149107351231075850468051796081113619863285016059314149766233778876153080245422556288874832204236684505440275870327522807417933682587297885667964112754613190110068946697668443384079183231935868377519778138314801589768035733075253635990095721032044913204522105391966441363649115218853244719057088108257886088371346436732776838238399993669224150200607272087285886911245889645580904703417941099323869638971523187135125770745552663879230982498843551490565825335832090418737461904300198346154638457694422530907238258405178225140877730619484023166585759666074570118254188206449055397589895428648620381984244839265630530603567449811616857104337989108587879889361039800808792329140171735994731353158893855763013696869941236481470245615445612952791753699668909680579246487864318715889495032477154598860214089100916843414313405480764165752191225938990312695153344732275741670522672722162913624655111011134773101111896782310712081765944026255854459860833056182791072611913102746398337453728168843798524276356978765558312076871232059418378797409566863307572103162302183657849735050868372483681070119519681775531936671859051498468203728977696867638273303165313633067586101068906563383792246310194115475828685505129433430969790998673870073798720124426661314234055782869067080822414451830819853426815054304404651323224221884260999968905115191374139455073674046837433110906775545068994135268474815657603839532491181892154824128262466516858008681290394460256913198010614871527846073269374816640285230430793229284167631719559088422980414315258975083644941325447277835877471214204016962524883315461349346385888335102865985141304740995207253764702301684181123326938156095649693754192147832187123577991975839501492541125052068657874594154987534452000286137324768281321009438901810612507949729290753991445951696616228250228118562178845108871195396564597216692807085066933954087223468331784466592997613609027887819359862679441761125311575277966881106599697394679229393556097371043478179038870127070193398398172614962335873183151802832597045504656940091681591911541306409111774186968847699143249964586164520518161500205652931026652447864977307192446879752595661605514072453402639284578730905066211929862520855930255375653830974172029394659406907240131171260796292258504732294660557122788314940138802462469153632306430958678644671422926599501825153115600263945807979307569482020839840720026410531340472126474011879947993960756203645418122597008966431657254919508810501420457644284618310386983476708782473385368093895373091597798417716355843666894059269919610774424502258264243128163933320435791958724502684590967452021429004387999632392086961144176243420665364259529529805652772917707058508315123289992539706217223054291326100022099395768137440620304332936126577382813135033871313382196398010918371275338194853611939137938043165352246465639548936467367776361512814778843251516079393071253837959812485879581074338301051769098822041233303879351525521923789969718895635059992893958606115758763087681035268746794875791460645983006366495569708926786020996591217146304468116391197732848486681852126967026292855758684165860353202135071638002070061079248807571032099252479207340347720580520479825183078563046367935577133275490868417703734708715746975197306198670791923062216602199026399106423825645165717575537486194943648941380971333599641587776098665583035388944730102195876658018409360116899860094980365744373110185342620468426584876075702786990091086383624369955814921761650917160804787950605150383959610342057887332599923888215119877780998724849713942595693658388612249871712085751617682562885620358308546205966876955889527758121695711349139032604728786863646884120143583296489238712317635028700028974235215920091755621846417097255611249400605115824423905233018202232532815830828653727605000939178476329794402284846652632280055975566826086691211210199217144206526588053873478870691218246540287118404384299646641452821064202132979826109524893553181909457973572360243746160406072564211245396057957130901963867845143914116852182825717036468009984678755693391814674172365716027836389367396394888829082413677962696474671089688261906529952191926887030340956211080934431910524913269064789688790958250176857057682008533111443173160006791763436061770264979549826332062931499186218103499828528646720391217061334106109560252376623900476316708664584127755373148093700032195891321624455263033365671222421936514105828219074403864434544480584464577641049159379339878812429524754127708411810632102938418491634918139403955729702231642781374866501995177751942556460728787153416493292685096575739132963381410754594238272929889910561151547007063439908487636062096616985394961969710673623368495296006243144523671554626803309954782865176254488276966178715583621207987775727551738951538756731046624819091665620232952737993432660472744359407700715096633838271319444119864414825668761383528569988644875817679250899221879953000931076288917438011663652137011856524751795085972606486948930221758256764278838855929128069678191813343267264048617833204553999911885062508905142509934894134207175389078035204573509558475372876092754241787792762216400501450641974203368743389675650638891048508081158845514047963803621626584395829310990305679223192314372591744772652337893854996506587333472099357191859220280448990412178356831817792893769963306155024092207400849160336612477083755447024861772899244674452212583237910252677312535576119164175885286665446693879444153278757401099317959825276595994683670787981725931587347761597873444157172589394010961269864438719667590724823670666838499925807147100380765277098897577750130656903550581340016697538639191823906662319616257320809800150874135546770223182538795364764685420684202764917967074266608271008624264288491508169993424635069680742717817075109091907669547821812577117449842919916455074960926588606058063461055247624579297888169108892111201440724409027459090166137917483703005447791080843710055751444961717878145802721001503733494579884169680634938254231494754317383630409981093182518069692507835823948169348590416329045435254087891449482960312482453397509581238913624894617271548777812325833139062643981365535547858143958384397460045888345566858493769247323375447570649759088221322014187623935755246954047172610065137635706882974152072684669709023226718532484463562211358108330438146235211017137746041217248638801724672220739535423841766681321885395583858003413715713607884144341861255358677596179261140212464596880489557438955455337114040195451152368877284517902274132646102414042180834595291548882628824612447116311562004131339882167578232143135679445474156306373585493147972521545342442599491942442024619904590740583310426483551231873502528987854251140443522670138922973319910104712733411803747243341903476464731256602438614159398255798510882844986478761508623689131741291502737151137883463977332579145036069989988585611168249533215622788842717822788212052468228849400098237379839075396464256194785229884977635169405057020957612363402098822034780560809823982342162686707962023753123741075305964448227697405178938643988549595926365738350915661550883523242618472164566564999392665136902764533407393729954433098865573070172028044805013750004818733460264861447259234245459478730346786819280215287166808107805719899480437025689681701558974750304612702197314820344629196090899639740577750523613835652674794536597242444733942237930422780308609811176240792848169164244760953811520298340358333291687502664762016425664457028104163492773256163220714505244536016128438293069606067525898200274585459008079947531460268541013286942380739415809945828455950195365195309758593459104840571219583076158853367305068310015407383191381787338871023054160334529628773165309697408068244932209327968669401820731092770742311606510685370842826289827237902534557833294400802187751741640051961892452562779660266346368992200479544397874457767527532709228595773624260748602119187924510210706681603502328736763416887560561624966482544110239511344156969569420759269328666126078250667967575046560926435630440621376888155596481271274863154256444286344959562244813045261481172403114146668238998776545703520355587983580990415016800158186518413642322498960073112613302119617409277244371117189417580507985520614799304605765958829454320097503705988365558562877396974232327498996825402246163388756671767249740734858618747411100184529592311259157294497035889814787654982042178086211757729179138711261241589068502944678221961107097479224489348463857536784072574702480033572994464979731092091460013980828520387962794181675178253945021292385879732225671983053876779716090379883069252129433697426918499817773375521297154652596934384195058454022238395960346581264542761014578616585303969172103236676520975582879338767493466972210153820310486365459119347910090587305482579210550714948385301066773014835740734716115628640244501380569232643274654107517149670444927418119143268310760948412119659749205185161242398222008498905401997020873638729017383004921970565071490585061343410496227154752366367217199509708112797857572629650029225354698906476812333334490964445096774855154866141325819533692498336166868724581503431281042637409574268900596923183855886419913444136626408042739781046797532657398525705574362819452964869987583034228406954874264488759324106648267612983584118440926045633425182300421045889453128493487480436640753848857512122901777035277027165626620443129220641167000915016603350118087465887998937203763979709293118400941206842786698364905292140107073634173117059247381554079297205765244280735317804711583556238341610084820484418638246434399330498818576178317078462630196831190240912400803283468420229019353876228300364563031739054351449688616342285461451505486301798242379331922404090443409734430878303750521812469113778483542053040900209224989789896053744116235460873054659717089766816646204711564568920596454683035032409557359348940841710917407764111602319319718365369258812377439479239863158735440006094765723770207806742735121387537597153403054944212657181930301462505035482289514721655594640462738471069170922932293106701708103017364567597462813090937794824776905085843662821437663855291855449567434738722277470616188768810166693739754790024169742172920582772624520427310671547093077126416721737442091087985957689195226635482289126475780963660693315677206528714724677364414553781409508987620727159113115650627880712676079186097834007334051090372299568918182102135126534495882427475974468214155769364848560370476558864934068035742087460405659337940563768577260466091275309172908560869269440213885287690316218289879355877794450655707273506962475412601941300835028252301027454020635744467926552430016600290746735200107610166407706002702525755290009711028715616179570766657336143052727869080815738830150062267431511584763942237314177484026451571270445672737618958319141352408827896230310190650770019476114887400747193192139922936073761188186835771053403155233963865904067758353464636609967088218898290541637533234709571119216537119332206565475340313648661148277770127178157863190813892283870826062007778709136551674500772186155123655068615654736294991790476592461613835117847932069961315124239838766008550293248031909708393276134171335178904668663507473573350680733567862987020775968542831435071790596423911969041013703744248195416672390834106013859036783220971146002618827462581721364886651407233097203688705683645205168572651330637848415168262559438798889193841055020067495363792547861308480314559901531981874389243856181090782654740106205951874647567767092983372138079471555881206451283922956752902565365023795266250995661220599274667017139574945471699625047392077581110649049646776669990425627131289077064547795429445718584678790921535108276170271300735089863547320874118674065306213936445882303055160943973393555447040065166974139970185729035772412284782237326306820112383389001036954520998156543006085329133953921486526459982802343689484777135799482227457481910372800851033589213152925224205394776338558378345940239238964887401122810552093024836168246330327214081022971112684236268195983637879582175229551447385935533578105386361579611913374588912270295937448362662093085125198720885581476929840798527075189833141337556586902500009543422532102150002981163087515471911084806653878875235992678423063928122105544514513478941664910873205386646834532983004545955652575909926122113082936147442357015524034440485148119550886811994432347713453165902189940548370237947686762918693094293030942619188864009226942553489087616472946278881328245409418861411472326958947566716394529380860688376939963620123407358931203634847124015249022242224720468430586009668791393333663104689470385559727910682060050749218808645475550685708135547164259877879253739100863477338254714717906771274953596961578508260610448333454109076935678833387158693366642729586796399083307749324981167015532612682140249818044484903764406331705554691021217601764529484243183342871221849256526275861490749687690115972045705474248074184010254776775194138977109553237651867977011904636757667079443721546785592388481665901193269140232215127962227301476061510685031473664088300830207033034661347322321752727918451419269068284670416281267156217133382892904826232814727870066825277960356255632101886550273218763930105942009925166078578390570481293872213892165191387563442964314063497401394605422387828054976427164548495569797213030064006612682349233387350275418974418883593009635068438869575854544462330805765468062204890486193633868270299486615115438048611784250722364059311913635094242973848555044176574528515755222793229383065460410686019733001384755544910167792541685407731490453929033645712191493687662567547329046768812566805048606470941526438891185269606370397812922603125979405159238291875786965907819425106407674914168132823002972502706615156331392606135095831149859567195553036598153268546788422761621066487258912739657273702212377060681800837305397879626505660179304265931117089317770771818426853126215979075694473349827505761631228471047639610449650252568194322142390799744501547253266281793296100400336668064543135584268786673348260113044172864665409141778202018774374472954243873982095621742195072370315954368838603072597807522785829327524014250822085413030570659009005945532020477770807825713775558544946914393647721781963604613267902926415340210789759941385316806578597484282796254527814548690399711619082651452504971125327959542665318902701466482732786551426385402492010425140867436797250888192594984634352509139607416815427132028093698511317104216252896694647748088681048739019563753364896171077995775383056830220551028412150278887674368180586186175012784690947780934297371256198325866977501324120434207795762092223978199794406383274173812346166906272640950009613166679818686650222787471371509486924776287793670001960482506438182779327870465596200063614090450140094706023806925057280589439842928607382444478880297076127587675416098751070419177600112705905210941138963124009452345683751271562952310213151159427512597461400737533533247462544648942864290751945073673254525629841927104326495210612960507632011651284929590103270366696896511422432556192256337278958909805193623468033494234151820290256638466743924516796874009737114963050390099775796095732534512325964134120474793250368452456178631162223882445154571275539581758993772874202066239521277381818212910010727258232820395277573223365595934231443072631596975526460360474054695301279046554815697614663759074267896348709331950702148987788956114069248801518755826781429927073808419248085940551842036766331149781835481394785584233997777310069377094305885697443443512586704852500301889255960488391940257410570485315614817474496159619821409170065585586419638611018138506052711754370179214505370506928970362421433788720977520081914459119981436018877041898429127285049870989088076209327456638190659534978829450643472752670527307029295636378292901821233520209562007006243735136172225695868372508384382078369667197357188186315201390145545853781501075982402881370925380628190449113018531190184127610231906657815588577757590798091207001600196924840983273014382279511908062494246681081422267267981671706465806666609875974854886425015335859150936539252895451252766621574475414356503101374219377466218629290025411849959569479241113321825161608128769125983232013110126734003174961446382174615930244838669514649142347298265422311923588452336103544360493902257170997258481434180334615233244754904445517326076591007008568294235218889032127848162626312117315811188001585472805155372149284662471845697532242287668150076318603861960621943581344892166210347129846287750764608759991706176029461577689368236104710885191895948113681772287232871309690267760854118713006493369776431269151034930084439682245097381515301424378396776335979817252351343063728576301383195282166378167729349540089837035968137938025506444151524929081590973936601471811082062106342045040783172932670066074737651627801434722932295514342457524397591243594667974874372276942968864488881442148485511194829436772130813327558590589965967006526832084079669383570862353333086388772563235476657596523258451341371365839754095925185229403436476074813159876053739798726617977880587131441459874461168193941982692519417332294710215958502772524335524567826877871780036561384110294223119195580531338395969998447009692478236916961418604300474407863039382934237055940782067668019623767458846060862532979098996119162151675716229187478669871278701338808596934830633220615477196916692423164799114245298668719386893845579854753216829125807649538874626484474876664897346180840773811340121657179188012394359201843902452436883773238358142179335254047443103856500985589986001030622975784011457602913297144772002085425240496896082326575820346825140177105329086731988873545345655013765492920270741310892768055943827676442034769093416971880873289087386937641207500142948102906158112010764978377670106417214753542917710784344935731389230264777231675786570697381120244747601882531066663511873943339667095048922495377030673980896669248611358846449895689925598878186689833695959332782918619645514477374962737448373604109148856164970434542169382208466412624074671300455127013901576553341134422009025885297706820778378843122194021026869994520807389680229068510359521789893433571122211895899296396986386487051637207773693261890632061823275323538960872028240487037326510989371208763558054999093861991971313927970875438781268623523788605713426563518756855087930084511960144717142565710489598749040637344805727295862871091377561733791553687116859133540275589224307441435304802052484104725031230688771944401711325806500046745684300381120040530944111068353429401023287547125606388455291301017266600388038403033641374998191688440301688567167390307687405623561636275252308698519301189512345142378525555331002662917358128419572666491286715007309374674755855865298262688582907567191885630176989003016694543395681334884302956283975701913082415567126416591372440156746591605269147158196427485416364393223284626471614120571872455236341578818477111186981556516428257393074540032765752873038598062632697587038622647473778872464306222174390995793313389835224955004002475876677824595859942799773502902675523552337151055360775899873869030539186348909276703616689479778756317028236683195304002744840112961089148878110718567529955125342902554162038992068179740414138745769563507157839873571971072936741164814023530764328694623558094074543779920758547233825683708212143446251671449934783364880408947635246864576853485307694724250595055416181648502717067244096971304960932990771699177670822647885331732257914908494791630372410993806808732988845442838463336725641528727536185210390072924676302782112958254653193685531113352746277918007153326495366902866955377200613151088523651211452818758712951420890837259244718927692444376312838557211407419814875458263052793828600910745859811561478315518987596243857135380206080551316618991789593503804260335183103140214004451845368551696853810442302998733312479974227931354272865726831502441906825931540677261775117107005504423696577966044668174525158019966971445909695159944413930533469750955505139648893395566840081733525420348653476122019655288623903263690613637369191863370887611644272163339731446910486019444421662252489642459943180332376102019965885145449683509974902878088938464174144395865182403538426467058427087996204538368912027686359224767956385974172260323605107771959492871607375907155046317901713948134532372170849370970366407726449483014057945624590979175651226324813594029619996162937965635344970549047203043632145334815187855343287048773250928560193457554609532445329688774604930347055086644310683528229819351391020557112615548485164801015435769539225380940147361715312603144497049295718420079568638919322144105006987363073083346201103701473752070274436129132680976760569871270082210208797428771540222542742634152901209894976981572710486657893863616283979956168614297369307318863554734762988306587325831793857854031990666051650696711504896065892396834196094455543301047826923307736210088692189492337228389169589615969581943693931971219249704245026076620514696752065618851261603863343750776653451152731137832518395336159156115567765720032094275625550011764356004867199382190491387751600480729732116095028285443163861361639008745575873358241008922814400288170352693460570962165005391607048776137725550279493547978839014577875444527425410317466111830144427952230575516970213869131589674754791783104932194901674897825379931408299722068074732956028790936906786628722423643402115650228118303074318041658167787862565377726363753136040634634241964959419017409898890110397436382719973330982265801798067430485855228202383129156669216613346612375454784730531273416944943572298715535208530658243107164008474685373587502310637422769337949394081946220717355165375378243954190452420538831227291070848836984468479426635812962198599815237567066099401699012927280412528771967917424886096724982243828043588990240797359842428547968641215494228285890193669356142204633018235893706137567169270799671196805278993159080150882234034601006523361404041106298494163893187791164665596084317925448308439234969491814948838579933207799268830349998230749547443034929815992385244197271308763155969905258680534664907227585302430375953147593753822952334865566537156418132705560653457604576202531647961185907283322445318484288999978391980137502283028126463534100744782035965041124357293804005850037825635221773647393816864418626682917568695278790548005827626311701015422036751810681229020900211206177688525700904215514490518187104572599977764759250628460237083767050218061861744080485923570807465995955326098960670797849930860056830269611694294124231160190202629817426517311019601470939268527355069558314704075383720315662718825472309405121335240503225013743565917694075012684489943031032123976434182064043124452337007976977258296198275404777206143536391539396051836699018399618275904656212014798308840603525597339225295924577586912272742040308525335004039609282027593386735605982767784875276357105289187013192487833499809318025180671701099740212431629237036224489755569573364971036515089557686777589983061332280824020599284357600568853956381215857536196810813190639630403853029764115962185635112971601559014419455611903889484443595485948967415086894738147682620259498761010480954761568200886169158275881720319268796118434626980722407559023819673395532606449647122437406613144221674017895763398382270741733373909234244793481514131533380355660895052964254569626964083094599316488544376531544112711813063567229308307050096616961825702592646016914475254744003373436260199813842848068899752944852645197684117357608946214638300310200154487528043958134366842629492396763114453963582735004435768983383900430435593615583841031660652381760325154589364390993221051242351694585705096719069514375891304549842534487293636204923830536481569377009339085398753396143455633017126512134618518945678245625158803424627212764579324392740047653333474221594174116915765482147908193391763326360956334950945282589413165954899833990835425382540618787755823614587626331854413745421628380685169808352854057618974438747807225049460004413439967860632938539495673119277301397418497892011768766380358883358069712509402104456051668266635242569791281249844874620057168555949972611817158972592370140109840280173104656619394787627267336763713155797580370250886526220977503857483691032092326383510793673411831531616616707511963243584740017750378249067031519009314017141580250798240284134469517459041743684681121250444405326354133109063723557968658154839331996051581987905250947664448508007511279215104347532626089560255671288168379071679123785976532592643304306113737956283883020310829146563620858026113184507766794893047715183454775061214872713393871266260545754120996246022637710108202206196739989543131725503057290014383742292790782928952882069701848837706369240884152212164041637529869306713934433760188971106735746318062276459898219119895493010756250258103434096110482245888145338240393935373560255882637514435728587453972771994011168787014723130381510405885374738648493009229396176701627104583989405880809921048720965857007235617599266213435304421485498142318249554658461309388146233437596309437400567961819230821297477709564379957027574029239563681933875541401754504260274924155644713240625852900624017949802819723239557495832572623526398252311415753850760867815976884853076600986530743090770407675850074966297398028767891472382031856441924978882932775897334045366291735446431851704866024281093233088452078637754332456322271970730721037731566261934869544663016426133048767419007653550702055856460625571962737835608827537160234698219496607683055938753871438851493583991970836712138894664935955390568534718000419541980430626918357609980718039217117172642120951635514570708943005414404477231914470861810348613131557144400496112742783260594022482715751397097918980013803096835250612598136134830317363955138096809702198517925276263630009401320028111062248165112259162291319313680068369001606813021126970696342006233504038322055012667704700316735081197321417458236129202871233099152843697652261281840019039045218657574925941071011999144078526909175538666107092170458056139563343018836552600880348617250571427421741776802185914996439338128434446415594101735038224019087289285851640062074601970568378141650584385399713154259058689836138923090070984454945795285168306318129212414457370378659381330495054557290112079987817708095642026426806230730144728977987785109728842203595712304491773957923610410420976509226124386257949407621903193841505402018712558526029721028045465310550895143152382108158786418492927566433777510319241793591124115021046184205667612508398577898081401763530709975486203546137039391712990977917246261769197570618824807012758673960700461439577164197837191774024106477513586775224482739161134005979700333303453312121692410578436872624562550872227829907175355453086792741651970826971425817056707366463123433860273850363355734682793700294448004409214438460068097146156313750931811932257671021250276786649883267246830450760341622462737385648863706296145686360161475706974574785339941855212015793718008907664687155578218100162822869048051992868145144463536280054494633341964444946401424793981422871242150784852036619624139887420466608212063706987356662028229928066889251667017098613672545886456003971594301865242889985610228182395678564299449769099192714635437829952303923589217917989194752460707427431384976449462233322926015120419304566959852470103088409986271684903535752706407758891043872626131689069077399690119406465530320858341596082373293440694152613373126751056392422871675722474102307614622694683367490976791210871401032859366776677723205263977453801034250909061194650073124804065172747824875579581256426506636460831484817893080424874983549655579459917900402321790091003570097842812633491474968428578643065289962783006498018663718279124896783957330795348234289419592671377033212659479544716924117330538334938146062814483088413217609521981330686401169771695756760185508609583676357517258804909616203132382541139485740590688027751881865313557764321870762708011408532306435529983526781261194799623741377536023514978484418755210688275758786365695996808418626197724974814949464956602708503754566323256341786454809691873570886771314201215681093314173623185283666873119974591771921604606175434902839244357801106878879010655435934117556917168305616996532177204359339651688989295948369995035401662464962753419016388890833825867953266045873354789059140258501941082806852470417522540022227535095468959614253666930313928582807529790157774720063822186484691856613409643453076321516458163961845727521680004919583242203675759565993740646205563829367256152555541827814176303950709657200896487221361260293672427446544039316348463096203344969678804294774815565473640981943286742384291777825951829144467985808784629696178705661690865963027747165437911629655122684641544447172795144505874373862332478607510023938387850992085229080039639423512429493911064969293497051262628889409499255095160134834893054453741022840159446151094872674093073951274490408569338829872882799525038170819349333648346471675302706605352206525781759967349586449767119132021444724818593451152280654326206585098869042788582849564102879817255762205169144521357241204206135612282185676862743791631197765024760760689406761483228577711205956571081814582161132901231832617016234452168958262534141738741916240938798544230233819125911715330088990471003129243365723718599312103795473513530006134355423502555951645536308120063050351752797079118587565190075448003378175535746520873074321509667191976386755916014126042180325395916429010559197441981566437918355356785787549199686851456513693034104188595050556848455300137593923321626728850782621239847028390746642893155240819825609438644698232894045394710308204486600957254063284687445714823557972271328291837424881726967605825562143766863594747729590742824219758312674180943332980279197921810061783264462932857337474839141622010833645642756908905893594724031307058028351971733694915182216206682603800391547855488230143996743877319604478323511410921382683824038903536723154259310892447730304325274325590874449587865163124297503114599520854745026274960107495874016743509886411373961288020436917840207139403251200199874817160213875975918807892908221140689938794694389726495927770181328661069539090367654068084524308972271847064726194302219630988110975531257460038126301918733282364820966193648633300895368752835952709363903886784672891116066478866328287633959378951979637947598505728776286386741326329055130248345755118935236468235983927809764948878809765689398529355001590271347860302805207038160626916232973691730056344057501857341805993287632209926209513891715356575202503228113135712135762042861187307094991502926395456679367491977946819583362483659284094891272179408482368261833464845894360825343008498459825612182993013795398072165075900825963372129395069246385857049818790645325765355146081353809442875881576886016000766172862420383484923133020952056352633470208155825829516342415759487164151484941195566476789883715008570754231215328588498116076992661657639520147234542813863025789873282120231533301324277624928954731733553278933678412162465415667114730471399465342476230286447363941833685560091073842844012752478355417262135603453819534525774830423373894313652567374003885062505230834582205558969492278301793283268493617159146286645268238178499506870592854430592648375112608304688565844918021774305537068926159007573775238044690854046915427866414677400481452758947046150592894851024203316436547468221884985234653930639489087227678702971567101078805836539082579731101687850101943682315563403823518936604940429426199773448247010219806528248267046353893298268600693358020597336781253735496296286763819971593278583830595334895138144318551076390164304776591928251499238417118353952929808286239791266292707247524645257715619455313536104171009402660347600628894501499428667123667961118426212839526885733450860684410168149781720351912143195537400396864428977216143124022450830672818685938845803545184001423694268539530283403892769718854306067091578752267365579081885869095301582224242499642572306753173966503083933702598433531922883426036831938051158805141486425006068862925595464715498977662858599521557100479396053165365124940220698558771646260032088229284629751318866103306712896080760138142441772614615779936088101329260808748863952838835804966315683730567417463861541561557822098859088798812178265254403252814290435831849132715006963190611984795362543314083964892607526712869372181639474221759899676825706486865062075132672197188366127018321309292873130424434305542381330743741626401830429302612306805471270087178895002729248346748743035444324695064376971942470652106558096489505139187754773245356335330101624424537660569493834894281705193916644676429161915161876379281072312480257357326205991845316083114671104031678541343611229265121879569030421237182987672020326082436619756454086370324740672636825484279879001435880170622679204332591407587739898440342132988127003569486646174345283214650758105526391706149168794134009721327479924581510123954627725074998383734646024823981862831339786251042939894606871542438725429845541453007263077923780145431637806652194190406430028571683668658815713206885193756029063692207673440697878174931064383789737261987447671616984371688072068137955750147408638487832951019062382899216024517200726290936994828958665798623378103591356919055347340141397032446213691848302223037025739762369969017936695813813199953214461756581544176554054025307550974893652725339445281080138204696196928977912804980759351726842488519530580847223626878713884732221621237854245719310339354986804834729219397109241950227420260925117801571994697225777482567924888689841739171397902056952066059672459890159205939011587902957149113300196083385392665346073921261460950843453664784423320889991510804858299795322653100255255805863383564401224346769864137824197901235227294513222865905831360350132045175965158801037628714251679435995377928446601061642770558821664977914131275684879871528958812043955170865926500255137315721042887938297916719459722542289105355048462662421438382925512358794705429197497024545101088358899634111703765363739366710111647013176983034114043822365738309055380698643903700845380568837250422378822718429249112331967546088834053137431433941010875403157524175003535922201278858850597116530688900008657554235279551367156411663720413995683915719280414266056366533860311778391196372289704313718001591307300257153798026367419623210567107184952171070463848888056193225770495976761396113522268185407001224331972359427782847128501512215293101070806784826933828053654761163135986726472410127831311220465975273691685686213772559709930723555224222373439285579087225064510243291677434021166064333844865420016088705608830312896609748441432693598389354522050028141358430470443477651789937150406264640555057773447029381518591403339445094422266354470187831836495394847443281455612869946103664799133608345549513146596147120617499706558767431628207866458687416637060378800765991752954830738663068948168427716870541407679237407918375400618020336935634480622041208886374770780073242952872301208687407876511271488809491232966132777954678984677211908401829516354386113770190694013534991699988954332311290561666856097229103081263411429035222704742506556013695486892585955240484740060715435527335822598079282743371808991594795348107642112979504474678413715195894795386990271274085808848133398716048728511734936279927685795660452375205176957139427525722640286374009877444667173694275147299245921482025090713906957717406226844360623417352083166856494382824998574580913851346395952889109762784879879551047983818611875006664850978289474204311929136768278105432299487214788551082198877709594995439826479109327227118502644239265144955205280685218016702604178710481241549947778076864792831989390511534691897540956141041161271306786128762468668093710673115776547588071158841840978664323514940093087854665564278251678510165330653359667933797409856937524413952154336722102946183818974890562815739475761895593884855595428447207820388047407695851306766517347988096682640942066797055392786566739240603529414222546882152222129024762379570697762144534085617730443777285374641633942449213798073915013924911711387269942634000267414646039823656909234100765116851907688257716650119734664167525981649215296108243027075954187913377590544715957655685665861063099040373538689871441456599857950680011874364816009080981243080201859893471936140525236867379556765944826467934309452039829614451977365553652521950299080879301292828601438193882544532269701616840393687132222005624630535230846437800706195512741542865196036396236618390212416665433555894732463626662064942345705860598278328268440961541352356865908790734510217718131814003394874660193284697794512385154383899979318448760687927181508736244001081464090116018905407613050172967304078113751583884064492544561306651502512160238284199979736264806289191072744251603805387550870056910343742685278669440342482842667249522132463976841647953542113829820631261451953091995184537058953473142845041029215122706049450382907739698243553544758341490420424133306733672968906460346153806575554961976148794200641057116481775353916609478384237099109235572299061268762731018310510697389079308189891449637473696658872389511200522045270146720742579033513000444017077506910256452839036205587056012569765450551359872001128262118781125360515872287195241925173633700705820011775503665864268195598904383232967168699347874954582527409445892938142803640291237124518587939260137301701289818206439236763230687369882990652456757946577038786476003904130240252002297952624868425145334774369235594179714743968737312989444981445213378033714032820828207163725743569632824508556987555367975917462742998113184486322129267538288372049011332918694837314085208962699808267519701593943330308553995432052357868141147859575078402792474174748952451295480006997554373307680752989175069766451851097997590755558884192127075304525736858356476619948549184743890067227543882529119476709542564230128763358531351000344958089138695981454655038720838230181319244154117838598198626197868390747006354753876771928929747227650590988053083992911829335876940363708388589314421236958947670829509546494965048249044913870569575473776081914771890015596801261822088304101004376065801390515364676540033780691060331650469017102796163359070497444385727897857321348661186279759088599266859765601657015452034812837830015298977968826207502060256481578657520591403278699080258907135206535604254687633426850162026676760204132652074584662389397273536584546340811142009035663400646805967003338060448746095758404928581089798362847574354295702353513017656804296852379753665536208049662378061637441711772287066032257807410788314758665635845459419306851069399435217316922861889826678900557809914010804198134033122227451763173048399326917488117395888024443861005054442301533233107169371877768573524708756677654535689948011208438783603403096779493146649830920104082127879689257268665523377250137558524383054051944176290826970081693800660448027798824310586567535295195733408054300100000605091048636982793806375116565529920640286177725810398303407857831183495735886164778420885348467898838649690870762644066158114868787716900228669793224408525581323464323587336150860134887091013122172142872539874089778173944571111981370233233455242302617840710982678135257863385526281702917887446892405524763699759488221045676270024614914839077585734575482739957727848506148150003595602049006056363272626891929457912352001758526089402074653804878020696659756851629366425299639436512666235075398822985533550292589894006670279505880260146827275817991812690894466486824315064104037287112900126094990913731363936004494890707085095126265086954696912567890851828832211031437820965719678591936316274455935118752572533899716474386729339508746547884147814042218430258485009601313172154798653277221550976570927237671141022831937771047688746830749451916993656260374966644574466803259502411346904404591085681652537506550070131533108873843588235942490911675411781702132303457116312015489460905066958871318224392746372666002702970268331684711209980604300455453361126686077215315558388313114982701593294850432991651741844683549067673966055493573070504140154175132457741416121079767913382583682606016401225275306642125906419876177541269038004390263587751852073304443854810580265158979820921292968852134340009149427956250567092009601633331448489233401014133531973788671042591145206528535236102493573631021714301335522955369934042373873970238194389582827241146620499063194363676376577529126952312114814440849445415241406304256207639249872562555597466917840326924420936205535868867672375186031328602176745137424045471320098012613046877739396953556275817499953951734134430825963385162482531587846581066552389936703708871635805528426251001112271733231872220018304332888938595364537631209920391473669096701049143676850279110368713012191322305750517605841423832807268842884373158868789774146355095503510306909627105598571983652417316226927634556092394361891539564166141070431781709597155647113631924359586688890548516367199327921796995258988816291705427126674156944969491070547749909073793726232343830170784070285194093619579313272245223255774336192296644593548831899570743713413056101536251336858373160002422041471561424672871270915795069055117840543185942027415937366327584696175550675918004780381805233495873240408880534817749901529929749671466809518213633527794009198241582770755873804091287092512368817997328260131935762280770760545334549460227877446877663657456254571742135461274133118400915321985277945226344189110958492987997829879646150308330337144096764297598336062558772101088454899726294099967901388446274041567732264375477865829730667514818776914230413310493311748809380485221986774117858708928043346285194725334998949433492201159897828833600806266835154062043767550321690731141179605155801811805322412023642442678164144021743121720870388231538941388522966182062150759938906222073707267687160739167771120448661073078090017904784043797480401444563185072329137283875916367429001995644063229634629483133456186031641282014228305944281989219745336717130535793232152102713999770013336304667005174316958559560753914188925211868881729502193168833745292625189367468098714694919808025984240932853412378455707187517602327788026839450239168695754038511703957905163468311179651037363767920870265963439874431472028702232610322904396930119291085768783846882355458887692724567892602206831214871709826478278307030058615347997156751004385668196049959081545767124293847813158311886578663453552474782780576443632585948430028063342050027279060792396100485604636105630780743479899095271561744808630069474682708193904427545665072136867620046754626903144570334498265332457512078407273310986392643772569803417358492031203973941066681629094160115118975001323699400606940899309787992059050032176638126376643301913109385015924486114160817995636880374772021110090020981468009528259881673705143643861953265789299479990057984957335598991544365305706950876647927024119331616291801548335671506427248631483581334892062925313645675109660044869963492935880525256106881863508891246434302014225196747769373646785480545981207689923742199201973662036952280344779588106318260413704661848008605254636068492205358797719201923552346193938120022809510231582917506574177659497645581756909577395310490082294512941383418483485041470741756297289257739202124386916277477126223177666825219488050446220878991153441673731408695829561733442200056262103585128975321271469977930442443331187270475669891696986125185734103724413493661965971656240134866840991844639229336245130711930440006538579241756356491452200993642236158730005063853762776950670071785878347991012977578748908689227605872783084996187805941958377123480521316626638885832948869038178488662602849480565109289955021393025200436389809836595660548759009021993536412694262522627434700882523972668151408674582809906450623524304978484887290667322819980947424809014944302433524077138386846832777268713217944561441659800829210600098772984359477619504997345791860226552122054831051951609553353708185640414801861209068531863687502946480644255359717558116835620864739513173631338353400293450567460223126907201720324635053336514248875218126085588006371715887324278000844985110856382930583777788613824366569350395974830678500199240763867046345026400415134193000699147587359328408168898527033176644324540108810661140462853491397793584657420669199319884589434725852706446263573449743449195445596180773051142855790418119563362646512774146621071404017208296240431269215773729229069378640833658858040308881709061377035555281233212072910140789812649832421595238553942844704135291245542878237405539263121082977083701750152459009885231954191469655390704607131147173157743546814743124425037759433229172375705919202853588266342234756426621295381654639507685111562087912994435727367300549377946007345950051969495362517322685296458751586906647886377740034620348752720713180033498188873794500118745281652675939013251931141844103645026533229196293703682648709989131580318615876959142621055974865268959364831173515852532430746615516965311543455130773701654975657503446268590072774090073810800297861196032785284735607259186647445653158299570607540515117460072604019939285901530771940655613738264931831297186780898553524571254323811986497784533119284509214832385191671888219229218683214896194949555065642097794600813060445349783664709223419548976344154108164453686549343450602928233487768723351435523359175019865116285746743373464165038954411049663335753832101297040348051283051978314215773186092444446900454390982047713984389465666200605127134943966143124984177634840460355519512983638768681920739666932023664052191860218953086861684907380096968384215604473797188912847266132581756685937194947081840282031146378662697654405575224447633151932175496725602110253944525044235997583431229809076976143212678165546457175616108330384258886129041379513556181108728585273095961487192860049978153587764263961019086576303487812305022948076680058224608655382113224312915041467990973625998251392189217521427396402614217645412030373910414744612649570999544730936867514970977480257180628186069908581497851365957291381592194260210576996698468301184969879615415533583756695192751419549150918220086895933439257266434932945274255883751183079340802325120573082055371237982898085187606740964718348767618880903526723931955963562178273745892378170634560008111828627429308680610330821612661538613429417911842334982440480868174388199536744962271354644561156596963656477110004207557378301330801965264083462718117316048305694002435615656502916188579755984361951931870869350717127675587042718785486080231986769568466618186147802038808382971740102439240765141917853552166212248497405752753390778040803505073417772982970804990131818148223843374599436851279062773414682401964541688234354056540826674656095090088774059775772952044776676179839746815159725336636139323374982103399045836622022022590807045096958145067408193677377928687700139296618890802940227475399265557527486778104200776032604321196422873495625156951264136365281059023792505858202701216230733580554907597418779623628373390247425478649135677018003623932099687110992808783625812800014186743282910376282053604550526743095910928431519206073761828630020421580877005148718880492447907813419533338420463327981099531709427808635847972800262790376941324918911970273338435516724418518548925335301073689086384413647784506892952191206954342932269695563605368969770271260637078563282934783926268142140389633932095566323879304879028485938732469364068015922540908685945408713980510101508333070393245863235430674911800772244703605242392450210463588236564991308716788489778595118495442188550507498982441817335223739631542875303936269161435768001045678913856926786439347303754171027555804684805224166732907633011103930474228496367171137890254206207388803866221737461408306123201665261827126606005404811216779897839494624470120723793318402652300889935458581434800660879176117131029836330370423400398264884368563703816312041514588878433659973306094855454503958567474368510632803617920422587512309150550919952623596798014127664548154563102027659162009052019890333978735433391495990862721680485851028915823033147337862300155311527032668452103974984369421252254293868541615059717622756587950583753657830306330864268958487319104389780953508703739556860183762903947382950877670285455561261230074468853611779274479787913132877680814159095795974339539928641306413942410802885439971611506596430469238772593843448530096081152905871580602288422382341489150063157540436478904319144610114033086225468362925358281306655354322176378810233155163991544601098105243756812648319598333878638056381796490688410696206140473420697057858837758896236959956767119978162793430598765937141868711768488686386818358539277901341905328467506937752382064644969177013679269418880632035026725450290375139300244995780929838466179368375476429909999925302018079697659459028675778590869205407038788281172473860831479481638724240235282826608333544010670233565653860049512021709616335225720266765717400385378576892004744077492381597548506256295134426055562585687268625661871169045975229110851538809764998778912654026888403993281139121249307407416174336225856546436324117049422997959881346800812418505840885199618977570762691147778780433744116750680739184790624414482010289876106463093859085093996685592330086847994229057859936517244361009783349777873074644674438225939446349284410043025784865048609567624745589617036632162654959014435681359428423403516290141167863043378788317900364550128649310359054404043861215715074330274288085607278949287409199953605778809865555646172615268113088917502491153677725563881582768220368873380142656500723204255446951743423636840596167688054607875640083174173696501931658124274594780961805091795457879046778416712138429898073221803339095257454033104490204272969201019873311964335876504948096484591681561575527747547628268150866114111261743718826327197376465595211820788327420875412102703705605815892257384053288001430580494990466540072307337518514277907095733469050879926840053424767694288848129963326369045626056559956198518482609262767685189204306030044795497787709233966760395817680163061144582233677829762344717446419701607286693233202528945465511691322996124619431791411869520003064391650077505622958501598357557038396981518298525463941337612012115997584822925679341177748254156037168009977769381026324771549948987435844025547892765108998715814076640348880743951313593560563703438131826325833122522425220703012891366187239671615279998762519832335490571717536942503294389295765271922942512480139583696299085754255656938676637008616520776912148461560067075986192767476183268478557639950265157478012273874348703720101110198955845484465286526560275845415943932276730454299287663431484375665401168512271115047873763441284714863873565278191915135865806228960707581416131152129952390833170938420916688858414694542459821658158812776411270091291921724008168849534389241795228247034356468736705387614053048593906928590040061525464556764842324896618144119302519227771251497753898988885413825973305096997960084971114108114272436406216129183480988765497550806552218322993442227560023795691582878481278715177068190503062143669658992811871891181053583907036311352933214015113332802751887460042403688491164499468414873002500334028924888235947368774583295329990103680306817435619656030965108610092453847305602180595901470037810969477758357543903453233226615679001209249209470625662459198187530409630497590776794315967291089572285652728068223005686811150572557086784769019227555736154809655969796466871483319238964667420019677823251356316410059141646701276274890560795533267488453461561309722904505385939122090151056681204915749477078939641568728926496906193018190172926963882505586662456089697297621997535107807595115535873048426597153500368832415909900059520798934828049685418777166241224400680633654712328903247829686815033665393755189189863236706422586603223634176453339193826310253978992556671839664845200814754134092325337147000633512564991856605291601310925274147363690759954032945861576662090790937448561933771357835010737136873276922230166814428504868272738222159620816708032822273111927444257984307407206530592385857218450851395647517415271312499434322836614152806197568662972394397336718903020305685548251441785303372638999555211239455039353792460853942069245908784138468647444398302532846477203428789740163220644675123708538831225097915496443664410145932264373342600624280808452692817010789705725539360365470645318128243883044732389393515195773210109663360043219493720014326717242737700300616353356156849049785455775084978251102618787935207439473046836816605145871976103525537164365646877691798198814927461172167569657183796599708803289095305053277572385510322088409765215001914972106601242471340448421687883982082821700160367957716570345355002345412405183057280607218837059712334685989811184478352602759918308647484126624905099272604099184009737387761579329117297147338493830470597901613910861208008657164416541978812981280499359717619504886978431795677020619620162508060460906911717194611928407941565190941511647722572826442051826293432956349106588933580629005795594863202310523159655855848301900347869177250749407552394585419238996651991879910566265593074418710982977034050051667690401773948939326225462413849195720076424990629117776580274939374626085359540007727695581457956915168019979296785009380904794019087180237007384735935515787411108467510447180783019649875595834409785133554446410705616492486574655953268458333255370775242412051248198701451978889536853395270600399425996847654002338652196719354368121986903218062023029844888834346915966923936711408529620128386412321152407073576627729294182161779413982232753541596081566648345435107410181131064281962688019936175167421654377160460398810980580479246749846792713238083067064997281775448187025766846470828806014905798844353253281632167968953292592122439832694400534923440408014101067636483165436632251987348342987683210056111680518339293627170313070641306871046116662452645099272095419166096530427104384048950353727184498550530392560751117353611898639467996236979739956988114752481247998097858904828294258915534950322402420252043219948978629867884141157058334836959978606986080085582720081468340327863942185123559489516356775240431828804848875299862360810526803294592906381985049460576545171399224305159765951608529343522999971339127133550816641184868965045282511094669046290665974261603845272472156266903955840672403226231797710351040907213773228028827260182743710684655567665926140613228608648211263323104017657827757712451522265586720644042798849053854765998089464082035086191352297591085166401678708385327956711235298086566945301388115350493272088322096084589461536117579900949214856428081365543203160725277791707822394936922254062666679726104665580385724888840153403109809562828935302510488585221514582884555504686075202740239708052500510978681099564256562728815587317428945994077692984939882856655363910332184290633633910830192189188560537731143068926739303435635005532220918835807963108505051300494932640857087665160998436469122143907271980475469427528677336672999074216410941841121963810116392928363698187415930897807390327215047356627647318114962186641399389530532192498878828862723813671875192578633349600330193436857540293135503622442723952850812937822320344554733930736987365373305344500011378222952625139063500131769058837631998840359113129529577248839754305033846354576171909316677455821547991114226229193013670908633228566524231180945012509815772332922786441617960463014435388301529801652966749079533173923306533624068979259697337119810435229746843034141008101611231116081752062428052955378310639628507644192490754787041557513998829184191158329291470556210871183129237794352282021645893144163367327217457831365475716623398908661250089558964215834027592708856916775488438877719263757470812244002294906446680670225554643580215222171043419448860185947278096885080943185280427676467527350845181821447890786453540366211786632612590269396359594901575463594604172325665087639504607940431163588097785135162512390589388396436450998247675814455217457530694429032641854456281824853655978797701805941551917129429357624669505162539363086292940282589816595705215226217428013995202269177940395005524551587363917632878458715435763721115213119865389983569500054426922190647076101793474986981031817170070338502289438593395415268848416584655948970001744137264669428067833233197559159538780683177579379422261783359888802055583408512809486068386176925832860399245869518520147025362084874423678982681107762739703659314792223947763536558327421151720177139577591060404583702669870190594251227233946828509760985063741524030006739936970497935873737432428432008931228240074051785985315322397404860563398518745280185879758097156398753993400234986718228759269115355555855303830776871994144458135701055610930348236312241261375853888054891269803853025978573347239315513443346025203776228201987361949467363926412188772278024086155055050268674725252116959803741831916601606519213722707495740167732555723158835595514584464383620938098556167439283340088133793163275638919113021626939233586747052817763539330671271411948256231179591122895205834651691710410093307912745852616119507883566384610498467548941599923404969852638068313784794040286600050391865341929991618946620789131122100665596981993276934815661678708742547616143076739275628431787795660126057660900731139105786274738827234567004027132029812466421559276163515799046151168722556705027125066511932477357643810803430045143886879289923665601262692117924721902294867832901849602326399151090316444273737366211687209985952109441324730615814866901979567268018834405554583888539902235588395838076603811084988778417400750119908748939302106310174338320915697941470573037152721655468295197771015289301831405756446298241140013306698769857849365234338574328103605742615584805342141767335298497007798439494276215821756104874338754146913145920415908795587462487967859823221834944679214791887188096739253786247837380235925573239314327976415007110469184047408058275708397365792202070928325052227404568521622292267263852598812804393922329875503540294714538135341422880197343540905689721793056397584405104899050560749325152537773927204980742573525773661656828024463701930189953093517495056318318320064247380092917356725516393971427246173148607617935550607236745187992881729052953566566468031144684572753018309971087995934012060053256475099506987954392281902291449574422574800070026093189172940900365283959865955965665776063428456412095318329836928254549095855267259543380287439899479391272029078089954927320480734468611649991986357166055374400513942710499685339337640295091781819284687712074755547550861008143636210843618978050922897859164398561882493069029676062568407070136259403686050290816037317326873958629464221739684673368635006401628194138617923435134741898557452297434307629534537361905308786657865016554747113257419883503411962802423540118198207177826952983048905968107810354849969381387744907597563767417660009559465541643196380028688145878890530588913402745902215659635413567111156457642392255016943364731820901985996069285783406005421998736944925684770546142653810154115887763628644858224718088240539910211177168980132419899438918085837085483426116446461624923178726508310394535606374951864461797317610796184383790986901372289414543786169761458446081272655178938348628900055863860612449505488463868674898777762387298666897037751041234725079906641228225706311373747160212543553844735842649905841441013500527941327478600439568246859558371266814183909342945425106034313403170364292769820491944703214450892074028195636881034383505428864470273515409359801136253017617610683857457255683296941056973347963811133002026764942075258623535260379843544132928960749202050556422954128921847312089624528105424633163387529082613727928217187398341047548945391496858836577387664732103903046819613606813386348565181432941067246579778379130121905234174837631180472081028676491029309815895312531150526046228565216715476179763785364284381148909581547822051232523563463716842364330256285605650176983660483395052464091066236162617267677892166485640795749483352617562189239055689143991279637327009157470888598846047324729664118504531585977363381655545490827340403914668215193505057339958948212768961901806179226805204966046612598927553647606891179475639280140116115776226883264672859372208998975854693657556233382978001557552458352735995770213505692102093812154473885053050407894714886617175152142302981556306834957128791257458398351746788009727011844118129007221133490133748797445330073334979882906976582672732518358009035573338333021555495889634976244324663280766129925345812722612057925380161616436710306037603096588348788248742774484563526721734448531183657098576766136255519862464492510339585321647538650209630830929718499108684855981897894740550233068183007570480515949362828395236194911624448721006246302220686431055379805456568567805253547604619299118465712557092676683053933209749870009738774176640461951652913264608003403528005138588399422936035818502284219934892219482738413406719417034598996537380634870808419111246652585144710372429388420942318479479315906776825187793240533994187408286158024465253935000251328861537286155325511028338097802298469092880069638056489516178903210128064298498337490823367090928409923738383439031730446776144572108814960909658084956508915742634868118171766075526104951868747755129089914001405662320928632655372249623828270119586560215668529888341222890458758000072213662246776406237137377328509160981904883744415591455396039778155139875523718727804534864860327485482441892498960537979181108543379407456513838246225584782918935862683391351338390525483156518450843439878425167547620063388469423956127304812392935246825806289303426342511849574930756785787444250411313199699716637134359254743053082437274105979544532446916136277790814752360548004407513551884556553459540226269539572108951162068741238637899792763945936629522168129327112266280161253335127279199632509836377750182708559050675190892333710258638954646037314485613505876406415383580727955753813532582387072650545625816558699915969090830447139964377764087489236818400483606469638952263914811527513775965710216650527198185330992066929182868799502969400731779363204185816873371876843019270584329892404413680534226550524790033198830172630466075775916876484100590534481240401383171504322740918426926333445468127628916430092484730003675047847115561516286159159040457991745297662860913121416463465294812517099971437102442575263693261994824795892398820630898173137840060656005344187812485736809365607962390027392617702128173491655429539462947016097900814552232693802878802218416118984738825808579515680289813085099233199164320881732135924415235542030538378088298453744342222244419566472505787242139503756481694214677454267750779414546272644207900329158930183954198804745126519372284646573988995703923106218579460089670002473722706774901426920866196820677232150348934927488099179414191393100978287143591013181955029977817978104515125468727987342622052107735908926902101624182680987443170978227220398270453915730097466504119527133745688606722814630654537615516039085607248729719242012698698300013375762472036418204789202663449275334663163663269034737779022634505864647443383948486499282216640924702261798153224785106629292247143971460908579258567383419898110801252700061964446163289541826853742596787787703693748633802014780494549801803835131203574166591197571111459300297046582754338629124494424144928527559579930935298079139849750123285782933867073488188236692297219666900619463415230099949010083992022628852667161826888838220273059908604692702308660995184186395208024228471545739002172416232128773370390750269650820227080328522785639370690096605748608083273056580257728921148510882602467788720652220899507246574770217955005817208240215933982422333095219984718109864495195375489085014111768860307696335401360305121530132049209093046215722447396424252078152622132843354122595940689628730610362499515461871849810305821633186470870306553960672473290153467426903685179607367228030545062061994669399413463724905132232186493340473635974628826905270149897016099731337136329178876737892281854199933492459688071690890117867369573479746290352851233419370458521442349394626857940579393186272165565238487695389469086149359650981090936500267446687651651257917570274374014960563686148877442056503235525141754016685773349759549506044724669633905864744866864652985147116032192259086228413823006029197171123830156164934857867434909240314224376438726203644656984421938693620654141567759053229347664552266941929505090873099423994019520664266399307185509342889269869989051228594338436079887346589731715088581366543358016080389671347224299946560212225713149313542866963899999329951645053674899554178338816948080254217947648045713716968422959921644312013755668963148088673545043454179632619389540019917555513082388470743796096831752985000060537865516006657961234863758325747981494819878721086330047881253987448848086240672149705345808133304157843038949893072404656094480123240548638623942327522623754078294350775875595403003588243275908020742934227191746882538095498484376351808211921603153146831698037694689281149173211462191734955904658976707385172574756447007836445326541665624541893339287746220497639922422140514666750178890408519769357900126582361794134531611806659613736620308812887933815294611259704366549416319700317680445006840597228749901266001818595889395454872116200333189180955159158623553002932696185526865631160601335197480056749534064048802025225057235507921069424426969279168222177421311133692184578504148920473581137025022123886960877501051840755328991418182582127532458084268109254055521529218373681578468597791052191557033181851740691452923487424639295044170484748148002707208953501253257835321172786396340204539484833135449526822247924378006092649003827415872916044624137188274312659689822219958762017849473888078505918290761033788676311085387698808107809288322382421189020373598541904453270721705523668107873023053764683825393972188321825713978485060621765215673266343636591132541638626136267652803052386835118101746292862118434301757950008673529840583657003178901921379723293329516305501906909826152984232468278264047102965974485255834251061223859782811931389519806911574775758399261231023360492463837361510219443824732041223937073791184446242585927724351479787265013528140823110159160957807940937739114652046907881037986054348203852508374171008220227384101835787218900752099343210452189912737407417589909269463139477462248117224546242691788302734876345472939681297623010467799608640179899411701048936384787516818493503539490033608679595422831073230736831864752861783364921621795594539973230143437647115738843765960209993865653485920769018550609544353039064741132862198773181657558802062838254697741334620724015301738267408422845800095952800062865197711352139117187171884987467499550432197725282871626803579979774517589319204213614856818193619439432208795750300229746076108941870424442132649866504889713789764274466331309024963475968393734583721889110151756688406527961111631316907495187431889134619020121067396966320246938683176935332206324725315158477871369587510868105422294673532880650712044716220439680885334750891147787035447419203543289514223952042397182915682112684276517275503408348460890119931872946753602443708711019622952873823550759492605887772099358277473002514507372991911016189475236548956673602333391819351074357100919741481705145589763861023746750569231154701311529281974285833177288011621971428756802109088228050001222477948989916910134771872383032405699218075484066465766654047347087927882786592164997343186759577109421476932794310762293162748558042663243297295985247782434453456514482701479220993530927036070272173551987714323473450455104362843467116064329056807606812698952585501153935307432147932022352211187850722578770161862033621542600926408071709612302462349163355869991243132274990365375510033294084390585065779593361515255570471144215784948976799194518863234740690190353814227806955324340258180345841967311395027645669999780618226210810849934108849777380945980824629399484309761372141507687952138705703715589740086165489931632156798058467249367403983548844774985535037442727451838352346578769564361122316959764556550678711262438403566311678555451564371895274922499094906518595430620855958823511293020615417966866784487876320378923356429247304258740302406024564035238059823456953021747955216938834607750653374903120505088665666992771242862339362757514263350130142775920084281153883840955142388589256347547614645172439947031430352851110192214570436204170403529845307309512359461596074340836359291778652991931217627901524597230710796849980883555457352689757401012236814350390086656185256575548869609343696352590199718715908701530649120823044321183209390906174910799086776951137501535448160219379243579333210118450547429040068620277431029173067302681603826073545538772669317101579440200791646589797252493030813990433567852769127339925018489463759069519805632120008999096275021409490736366558169608621467243354796479664444673988944677618756753677959431589836011205105630926484588777425942382931050698686955271074547365546474945043666267354919662855350466857581752791704876801452800668688539299462598102775210068006916679265894232649594317813853400764443110302628260597933527320996983191809150505793825494867183210920577038697397067952531563072101099027353838293192951771597266474760399507567569667295168454752384627338369955929116538639127979073785488232076611006644903656629962305927605726727279606071650211033759865647209421662369667419844256601106962328282714378711786818134894536733915744240004951643876694471415426508491301070331743840737510044553634455884684499985753208369369908715478832453225134585728815996073603207370486093011017005627705351209829889576907362050924128501223669124691572248029172883979837647979902498470848851570188554132650965174464968563738049195083157483555100632953832852237429644660415439617327983641998309817153646145124172219620176125527358609272676339260411380901924829927237100003105925997088337269205929535150326539354357556222790723454292322433207172290745631383501640514949853321411344376599169197281833100138354063823660081319537891281204124145895306937980431019216173635974554864681918340285894420332010706430036522201424862377803155726699528666173122285579101058888056959551514018663380350157435168123532695789679486406993257093304606717667841582323460913022352655412661447803981602203331993400052718029712521915936045341688319166577068450111545410812745051967958215055256480514543236295303173762567291125102147056426166581106082647446715447659782868136003337328570451514348460805510863124568025729134718014328887185245274429906291579429814649863639811417646031194289406211409861466035430982596189127749514405698444743004685794630118189691727143875635771094858910609627655994731941674748481920220850168223708241993834983038829735559941758778653297326798611995832099772249340504635406512461485145471011119736353228007343921675130327410624003599869710697242605968263795298619625834529704674166875723724461030108015108535466753168219478188715916688980771100193637669913682821680136734514131312362015650778670371817783675601291663036318882059329495792057790967114094928977508624845589043127806634847961038632326717795550739764247558779402603371016217009879024488999201644060793799946593968881729674986131979367017318510181448714030042813125740053489885616283848667152005449207489630133105239799171210582510399566989250707893271889929367019499481819858336499778262509747973333249827902174164446162329740222318772032277000754607227299040436359215321295074025163359859214195539395264859670060321634619348643065667980759209325012267268473526588822944215681792538322264518967431911471871141448712540417975951433408805740858606333003437651820265171415043410568147699412211447808620630015096110388009281994645158529818004846580437109272823690326897967929070832929277342791616592112417332386626485771629747616449602777172656706194388492310534717638358445932154513903686951416683502537858988957317781167805414514212364339798422297304538538027296385794223730715999959506712755415635083202930448224561986908608191021743628347826998060778180107317108624624929109978051306349292432259897387660656357747581554487274784118151430533811101780424922334257096987619510165731957272072431899460606575231776341959335208119113418649102670507057233789639640407639231980879859978861508584798230372754418702200783268619612209985866777137863820230444993476356806367889482824259524129793644238593717563328394311345395064691446915659371339197275890408512015898498223272248005713463670528916797836512426910146232287839733851791174837511416942108481556525624649051887454558793140879063619579742007374645440103834633689781856010615943031417045254774194714792241802694219016877138591726929906879446046051922006581478125703834493023757703440013286138901955085421196567747680128986790215272007083064807728628927728486784174855305885705965429157164767286006848224816701805199412348823460276358692344821636995009311764894551640296207998992920823232536126708687385518530208846760809460901618091282262835328806189619293222137627150474171316893870221070044129662101279659490695681002177890129482501873984859296057711870077527089538673290101709611667787163244525164076534986359783047026985179214011450886019252533595157828355192781810958629661703274155675310637000227503221118529016618647495699200831707807802876670936900439570750850922409679601870657322594835996468012214725770513075883166462987380381138087499142433293984064341184134780537003681967243030523329956687098493060233651677834250917190099144904560359296349514132006175558656524113567903776274086931426911565769168539566183436035359997257163563556496097847723363421037546693740802267212485134408387766849233247107543984576521675519970701265069918377416559106237615734459053008549517700168190332921395996814580512613264406868196872665199336657850230741381414623966185126429592432235613396118177528275360773792665290305467042505272194148940734949356332670661198748452095201259980646016873977537988466310228498791610449230688956154693004417799161986997606495170303010213682376505665426858902837639785134096951786901487797250230752488151741528955381077988435004968847733155944743451930350269945427635947461345509496746564615111527682914482188328720915127077415706198322679959577095057029105067175539649935118251140457605573856192685559252625049833128293993845937542711156744068791375427446442069844262265403520071649298920739949455214348104826521020495473237092986064073071637844820788545911277694887860882192450057551875271616367829926049010416187682707259142857738005564719314653821596433628578892624244285640286634376550975763502753270767016608630464447048308594651900600555435370670254756497746270162375475279442995412895792836835596087313016591105927126640164233790798002177344927503509866708055684574406883278433893182996355364742616170079541337950383936320660745939368288810146934618105711460138044688872794878767628672758487587573680867840912177471631507809533869440613855253551345123935938520863394020747185719293853918020451346823560693237246653891520262820293267064315944428757332253402816380055941558421003431664923168120114270953673070675867768462738869076915679773781992514701034081231297461258030226574634673059124122579106362046389040288331455887472481394621126267715825045039838982188313495797904466684870103857868036471343120745133600286551822568616824681786811609717140299477585222235550208162972340177935344741110232006209102343565383289436311578975763105641914220027510408997383274937565009961537615767862321677346470888503980437366510049206284691922710428142490394618156963680717743822638036980834624015195840043442281149354501056019470207602293262288717971817076016506953137023149201378653493589395448179381612229012288058360938860783937135722855463919766197208043819396357114985938969305535375334992310036126679201634500117284034261160397036810675466518666288462301122457970601152791095487348078814928137609222399722113138467639190020128894020378982879483695082005267935411594753918136385381619951319897949062525704852056508945879151892126856013719002036690373706884533916310312284350860437189512115062168646380725841205988561768070719208801452670626399027343873707413665260405851228965359540745330037342247008496839064683510736145551837006987579622056525939291522827670559230720111146271514524754740995725923309449642157279421477842864563855766243963797117283100489558204098690543539214378820022763092535746058552467387890637092660802995487113478729311225028350468748818406177049488902566058928614964866550811376655513181289245508473979684144727459789490108223378692099612728260248008622843258238212909077990989316798411608267592217508851619454813430702383192959618922721749010076155570938404755038710256815296753684185263033873122105113776846947731508633841736353654349412951670955764005020770525060797362590786933704134798152436224440587932209982191387042519430403307716900702163203971401440694553332306437036959850243644748391132987953858795171474799239692075953301439711608886263358284850958723150851223944323809112653037293887933745429840177507219844305345511302083720301152313038952249344075239473777774960093884538294650180685488380433398193479088538148675757349089996009948332154051737200861917815619431911953507051657421441411934193808189616525620768714590215244811027855573198515661309147432930130850779970025421636397146617572521763913415105032498277941248946663367435544011272682372406302397802899618947344830383203931094637245849261877992182359355014753185047445615703053328304126001701953362621152598320262153460131828670761671828644793176588294847833644808252514346599173853791365914496511839177398969793609808420254488644536740346180002888483678213126662863238523277716717523589984985092460760882361958378728007869110113299215703178532601058006845036617578101734949097555696340617594479588514542593675304327868698786012182674945045810417339392821965720379888023273970866389935133205066348968866332734004983863392729774307947153165638325735895497163384815298349986671018257732044476866366048446348225835502223809894975140051261327490072066872236164455292689818325830913005747262206420156451100881125745768168371154914726395084936837037325417837736006052250609662657085192170898838050813163145975270541816634516308548278942922075268571865732209017690329294737275536979924798609708288235649590708906190822445016793246393404483937993826914207535696817131251532314635833851525129198102285006008567285215512996674892902178137295043491354652279911634732451729359761685143472643006140357464826704853076648240262989755273729243456247155411068098339091218672688824642249003852879324362840603856238519301082304280642631932693050658934528451983724737152330110473567718364712014581028899077137818415771969489594138430378443913344928191825469723101233230852602509704712377593454561394385237873787524284020982186634866822091691500003365960164765614819873441073806980969300965680230361645586686766969300472228053121038864921584492688059577334043494195912222906525601424532240627335278826103536938743067252543057210588655904380112302890414793328986856719158380411530922899926148994962717249247160598582934634629487770817511610858513057341460226411520923172702699657102507751336503514242591565548334155624319256024136335045813833057688794059819112530828296080433541203900285424744232315861502129341476289228570670058663857748613977042781382789771135644671486933613185965990504789314661782444472374301645062868612924171971842169496832152230578968315787166625925727349101294894212009908082292999818869664106204781850920784970588608512279668421188716980128025406095945733239398333980685313479000405828078499881815165999043991404882074082219979281359555022932308868377462228329157921782150218067148898842555082618169293833063232176613134319373139117953616030711248524066574815384873696505243155664636213973464270834347746224984770745647398559216815347205532808459196912204876233502556272528949195910650997917779050389618644022114365622946574768814524933135042013339602445640986754804745115501442690099522556202256522433023597928123238879781389004229661242738915292385383716765589867022374655728681003931826463132733242770590151104089025532523127741083739376153231489078663072442116659338362415854053860307249141265911534526620991153377012123157073714057811133055071072283955267548280346829413771858192045205026972801381561251954216538662888076806037251636974779849524689674695297744380097954434080646923490356659942008052819228111824660857705379976155320199161008283153449243464485105200949853977540703632322717091883564123315463291033179712675493323639723959281935894780406161425340448427277445696458663228161076359729483601997552263922903246185509261129380017820828252784481421490734499398973310422531863377505169439945933318187961321150458531652645182087795179965018030889450131840953077720482945577617604132585700733423846428518928574555170834144383596948209069447695157327485096465245990545784119566080414303936907991054336712934828594636343246076297410234716893614986155656671804703251394265948754733845586472122278569054373942450496449115142234811231542746767388669491021272694340552382427225957740508414136215644169560635647705128835897474064629017957247637521319724052785514295020796632963045791003342504160466224177100047046274841000538272178583593783085077381375022514916956373695951453700089373338823897989290323331142799138027834952588002878959585276912716856957238827183674137366640483902124093046379881853522858822793376000089494078781290389285953511344983099438252543122574564621907548428458756287450425561796386554788826696456870235086596415552702499416531850906145510021975152616838647034451707665985354696875436310529865900381773414370467447538185034933610510675599282586370625184798858532779528697317381522060423918075933315609023721994202602065634290986314082813724213189747843276392279293629947013850888578030474162126225137814964894778898209344628425240764284270478489748419943775894906575098591129975698229143842061273818650951793396616875903043342713157261960800948907891562332927994499689957019880632445093375053673845965681769489087001737687608400401448827525180032108621866557597718251355995539164480101703617173325044487287775559847500646792512945707287499050727161802111974556671639710793039208245181630281723574551123536851523087055411860310903163165687168568117455854434140398240363052560751350357949414266443865476171482043739488762184395304838881310238103591485157796439084753313389728957892951091011342499705110457267675755772600569364360219147778950954699128536703128017752041739905480280761256442701194137736894091793088768710701928131896414739948611045532296943647942427344462239910216377671454974541018712418036337501823771038926094021108703217071676926569462012211796297091990468227723537850725705571075649218419193376934387558837424579157425778932128483810619151951283865793762855138891962360661637280621317580882711208415156001796311576091839168134529045761957769563098400143005825464999629322116568745321019156358619193291696533168478766092669693436703019070004091360596098290579716403292984400556643045751280642902982711043299100646702032500111986006457818810004761834066031466826470777677801850949402509332163695357918279824364355321844383790757710750408982374195167384091921608258631988046877731486222720428976800565427385497320804640803780158901516865120545268165930334319394882755793567374039346588641160109581798340059443832178678413076960600908512922686828665233376128514349333100108228600945079777806256342020732313300310471161647333081339461362953262526173185745889246419252482121111010206591528306159267181326893806960854129111487759746628225937732204770373383880607405791147203052515245008129457959259464897821287051845808606410394429824184647572873197677280958318815212230495661326801299676724984559038935576313665822213046937664179767244626316322388242982280363677883360986747125271367519387325768738531949025321353457289284813941131981804802947373347285008066824478465474766704172357934200320797534594128723269935149341723869277068658903619159229184282765890357519454028721935970923736151365846519708354214855631452401304029671445507251538418771811192400957427211564979508839325403910094468903974047145698853335736885352690816019227117208496737846882097169305480858018416880147156703553939567858110520199234895394676141060614238970152422164261981222092238199777492710141050949453413538449244830781235117214922216717504642961578774091635187053697869601828848460984391730813364129247493289351387471000356841532132441308029615162087736166110103178033490094490339208161978921918829000360562286778268849299882114859277400706727240062644692728019006666663983257784976560362742704064648187765715415325521082030384834361045900328391032714846309086236701325381621136726067093746908203778638322642683166488984501545787402175557558518497139706172893957406033160661575905627011554566569486538621889377760570777768399749112089073023423762649330243881990203537571241552405874839894894083822039029760306744583481927279861400752968311570184111439195259987763445064606139983736715356672705137073176335741033557668156926723255129286220190216920581926911897503350172593050262050526279889260263924696624753372468383498991283375789738156569922343153725269986861464497646837245817119932533493840032330370257149226475585583011919120757218893079940461737436321536988074329001099108368369753320295985983753628249978627875893171796145415809153958567091952702920273168865783869090317128252741476567296287371493218354620692272282502909647599145148668396796176919512797264807834271869489007457893097258078919112204212076605913631249421118490207002550837001680854349045600729664602348414747588664420625703729969432257994866083174302395415797528928579416935622129453147208489465987671140210445821502111325476479287212266664069668903034306593635322548415438377865024955128616678717821756465804716564399193605972802180352516854173209564962581953062834303467936111776662840684903308616978251929267520096418130634140026234430719449397366649532788583962402725783366666394804776371477382851663511927563127702620560001005601413282823395697037992485977097219834696730674637259685449034171998174923086540184719069678690755149819576581330274889420613284304058374990669441912393586453104018071863190614012418405313309131851645936473511806559345307118021715702062398982232217578851004664646024639764007309860606874272399040432621852350567257847382752527556464506210057173864068118199701196614790388200587691579387223906062544366578134219333223227819155053941479095906492846441260545707781990377441682108434650339485602072473813468996516529053580127949220361019695078717359607449495237985201104319215493048939955931954328129885277840145948922155127350937580004091004867397348307518846442847908329893514844695693977235535496709410444270633192828810200883686277743875669830104368519148260564037810413847573549565885724894076252028542334334035507619379446704928186707386047904860171523510411743247607251969884187308414610196036726742391795583749063349847087417860732281813597944224514581867100725275440603603800750057822897809016651936455002185391081089414776107521672553330610911798964563346691314313560627469897367084851981580841225090419323980781432711005964866700125403489352767454760292898493702752429108621419075274573560325058506059306816796414837175681084809475778004070139270883278309825176519419487269832391654395459769838600404117340469532262211521251824180792245451781808589472074767917053142073715958272349844221642512873285735174979941036071973131967668684647450897175045977614280329971423101411643233153223431235105560411377589470701105963975232826682423236633608607208534195587429505386032581779553198210642733937468906746513836992335804177395782319567292341882872183016433726362513176791033290295961453432201571738559404508128445711009430797279808394052592321631955464113720388142896066530380982150254416667698547543024453183425910212264625352160315673661979995552577973690601339057218057121934691522449401766896395193663831851034576585169137528913861147640271136675584313624774285011378470203922175694802069710004987036651568704733708140007240581151816608916179969358424778719334752389350393203064821113778038379551941006349390901816492747990616362648733108164886718658347180516795214707577208550463514431035811474119230387723227933344564656651726987482475170637520767755977526985253209633845577971225045773162490847831332892131017031442728251438409370407818629810378986201037188104786498644148608927801642359590357980701945896156067437040432238763068547820589676002090085992157226858887819573256866788726178574420213161824620907240721355726805177910267629598742306560221330330931047649383711843013116543638909347553361569067543234581949248877071533572782713822333844626864773582302987580554997397670369708363618417313975603559200482787602261621214580673275458788058827206551950316899043610330605243783745932374308822655171638567040699462940372947534359994551212244723514272222832714187130449929286048234455927882220505849059689767694692634292709850820682838556590132808015942100848599029301395618702993581520631830122246278801852250589453930504198060061745230873618487640935737329645546654427002445874961344152602154287358144458278476768247569711940376337561623363678923045152522902175178087969829766593161846525370194162620881431677508169991229183257795424371775504290764928614185060072264741589299980480538209171149715280116114950238870291755728434053948503815432251008145954794508013134360130210827147822711504931801626509169983673484413958152222032417074204228316394774090513719290872856521953822302998224970264493477964980432107965115458400157308720293392436460832046868689554876426842939359300818117645533681422477727988722288010351728357969849126941456414421214299465005936563452482624580363199044398069744108226106720574209378592015121235605053587358395969199802578540277766892563258120919589981906831474029402142491923869229211315767915306063151154852791514755901698195530284217329723776443904344417159494806870197470712255174962353760217306282173868691019567975802823467278212595283568962159016165560481432250016458696796290405066140558951936026339085302424164052580833715150547290417881075388757921763696736406335457421828788784971344707708409081458153854954338375147028005687752157853185632506492401406108797251069862022455021094642037832540668803532807936137182093260734048439589660478042591910395061945988575138563889194226076232542774382691227891428451851600915458443043313791812529275814734547943733235111378897878863197851758618183939112234079946827359094240919612359073143115388715518272051880321031317320250193490849107847871946461851649256424674569431211292842222680447395032959430209412073305374730563148658065975225323109422064327023320347567756902331256268028883504471406057670764373590531824603242517798331224154510937252928597110683503741702008486556642508986539064262711802918027658188643374202747271925163497256346000747032588076192967462179311565750022916044317867076292158463507605608941391208110510698363325071399310148964067897191963688047705873722474688002061601346846593460866498234950412776173149654548189918222491725189566301697795613959207270264950354667839668403048452258675795131039743131722131619616173679201316667958174061111286445262391870406104766411480701400766107350508032344731794880722564894889588244546885671355224678870840390493837359339312909676424189913358569265228390269515922958958293063502203919514583230944136321494635963827160545941828003233596921121882631948975835039824638708267681349793516155898597947720542258433110059331993146371076747482046874369664464374184476344646735439937203933599391831690092484974738260281650352407362290062224518884505395168791864346089146155012714552771251246116983439267130966979317916912934052344719335044358590231658084759266640427161249120856130538024884084300507303248432797218985532078256495142191500281804115895859979880541850578783888405273641871947855272628602966155482364355395852653413169673291059633581625620290811845678665034522974948586466884500470771497058670298683442364286756570314013996205229877895416321596480918602001481462045582861600483790682599951879829528118082543933835900399407668005318232588671381192380228793487021876307076009064959115492212936617848323777362293347420621674307900075709681401644194833388911230484091450262315564877424654252534137029709004645738215204797225454540294141704736059138770348079159303277618550441699483977732711287845806561720394190128779121129918696889806345166227268723903889182667000479468264636201828171316119939227450151524789189067413120311447490060426162706995487547650099879157932951624709172461509685291484483472659975398982258813593105775363190607921764051569067254793390391034698245026529606708977937341934178607821985774640774558924409203785203625204778259919421378505508844854056681976448091541392502596765702104480006793872997766760562282605275886702406792692786009305380174459269112300593972777512203902276894545531570985436488311806058385243263321185163531709703880695289529057806738785316038436306235175802407068992255787194170817183177810899114986137337328740706506434576119945269592173374043079248628627607734556921860520542058191787393918969942240813613385201259180488615288657165190042542899008901928860711593381030369322822125102653902193039792753237495390777182073586594642618933991378046543649463061684993772780449311433876397990992225369944208293449744672080165636065823435088303717694748158713112970728214044464488523133342892982915370764290642661447314588164451165660345755161195230196981819499574118831043523727402726158702591678879539978790991069459202154525554298408473807515855766346049064469194676999585016014771789920746114063642926686056009959935621007803641756838162168516053028130875132291628763828578054605472334518312345145108783778589067172797751566784248498197780192818028229913133923461145244612992831412538065860780395090476366768819483032755560143936852427365611616172214938340436367636449088036759335293945460618599223815091984462132051796440680450921350091535359472737094469404519056270380595022853644833683326525858125035242208178663638593290492292521559211637071185214035158767847286939125687824374118036956381092790458255835187209742626587016591854811419784756976298054281665020055497339410635388252208831802117096340888230415335187225497521023165152453719103781788395325249560647714277355107235049689709677163640269660444878884486684958329016253699572273146761061839740939195174964920975065445131483698341910469904244828250797616152290504243525996093353924969356952942560500058266330257406143657541149146446013789092674941221465640814101036803415994849825543397085157279146473060289646803702092930718831824514231121695994889983444607332180042882072424265601069050062584073761256266009956557800117754518996549481192777738948946731427867032836893742490487142627121413030362421277104321387996002038539030271411804551476996178044985324338439310975091014892704924169897256760849048618713083119013880048622866003500499693008613312276042245850090350890294378771093850529848538795178451156810364634679704692340782941298977005466099181750922306155125087154018714068238845800896151709200312361549197137895569075307106778051575011086701323010401246394553742981160778451444909448409153391826728133859876477588087739457079664700221881513791251395948600256462189195955419693220785146493902498423942823261085952287104530876064132743571729585393080785395236160558598052418684543977203390776890137346967531739260528621520543072895605057311907922163346899731342776446671653805555577282965309204932397039418724926836924453405393095730177225048220946588177123187762146321749985467570731414018006581729283411691449215550288151331879232726269486329756360784847501316020215896952362429405816170678853092023755245137882023146867693387636597189684384858381439052093779065248801918083664581168412030322672172733283051140914288813111456757288665761747335095042967227017606304669064287950120481029426283295129081760385765906288341298693982991731055888853099598271071552354475173523873902255647493242402213030353127410708389700006554635663376786697624508044263141902063287369117298455455457644681220610676182782321658940227162175667508405835966970884932035757581730486673779416456487789369609859204812562810205915201722654145291320160676986350956922878152436667288446326914423633831397478786799465604767337454198327612097913322562814223436798758899580618645483295225177489377461742822876070184072780632789533991451648342050941340914727319303321535308564362885473040166734452264900639318128343473652582854467651195267045492823274036136118394586021119057275309631164176777049535628734886560643652513493822956153991780944013282991748315233826613390396067236736533221030413186927123097433666006169044431293318037956191982559848911452151047409889840179146274841422216768175375956850352377298310870025862460395936397189510170935519481346593071263043067735335176666055545577511545250635903997102872226575201547143489729281883986563544026037529262552013286337524117897951365468496679211520963437385754713495840746429635922758807197951225092511943815045191459361089226906004735542623317708128211757869732922692926674028716170093021610870237629966039789944174123069069785116540322206569247218610905642555738292624733144591592657230375046087010326241018168688909651319284196868974872542165844155087852854247730983916428229545870418663242769326421237397198608643035112575238577727001000568814770546007427346575111404148172443691063375225844587033788225603881134180282626630375389187982345330083956482572307895888509258356352383664984324162153259185796407515682962860166879309212513867828769004227359402933053319339081470836249045383092064039220785433949357516571308548976101483266344983417583414432694231210786052921057788178316066088390314828708303660939012037828412153701171638181347416774166744162662521673948495373939320758633814577838810239928532970370288200721494933253353709685092069823051893184812544523067738083417537616172158638831908855345188724103980334270332154663653698488257766485056750225652431639165255410125918959560578530463008104629203482580229588740276221038296686102399154960011733573906383903414728485072189635987592282179938555962066837960112522886586438474953298432426730354059266153916080256319713550616241788071198531380012849699934988316371924613305106651564454486325932094225329747697951742209542932007584331152354549689300829306743529467940067928218796460316364947797861717535292049381720319108887992074948926524566321558313042488524627346740723898386776574453984269854176968664815532415682127908706267813673541861454233216269170028529222471172885264829088112536661196489049614147743407951657116560222072402779971069951067563798064185815819602208330561021876626330328139970653592270972516439084705859357158584633782789300110595439835912514704575452778906277341519290183924916148303904475446781651651742384214042821980199996203964180246208480599371284205599205565006889966430601831010103985428607243386278836851912514895793801514866202452739453185824223235731607842859203693869234616773081339681376986356941041076110084643048859977849622548795030252269311036772673659507365055349474338805863365602550694872942254326338644062433728217125439232197341007330361678293845012522795479398538934694947639492322733325918691064135542915589116561487782361743005979284993429544435947682919316435847503514905295474102346296672065705820830205722324977947192421807515939909295276778236698039108239899736153414030560277607620354416001095106519523198545091507760117965996987190375595782286141012667248427924392635695324152104033765690449403601650395461402110561893687364751201448386873351544739497272859748311823799036025288151421865829054886322870588861628204770825761522608204806839429599028615253381997165032441018157199504775158165604886187126984616440530769836678861578748712898581187143761905291840516494109639206274604506482079168560169620243989731854143035944090703720885302011078208512956115463154879327919896630383519065007915390681655125222884252918477467232340860145934005127548208049223322945596465663680702892255416964800877182586360597325194674806790638188438991496963053314207657342154859098128152934294671314887708717878065860213228491244300057879239895877909307867676426612705459787901218882168543836131687497293811703504600789762175318793309139398665925415631302033602089642451221267349668004598073293264941311470683926347841512034473006600746700344407274273506440967391051396097263525590144691026314193376947771971416184500227408414517279372222011092429762627581953360863268129838191851591091212863344902985692423217894646347088987696353318645291392136840649130870427480016156979322726248212584038904131664090944138507659890069844162580229468555818874910054919475959712653045309019628847887143168579238676520564770371643424191292520497963646369829021627775675620411554311751695062001740920478877630973293622594492001330051023668300952346185519601822346705031998417417611782293238880161655946651861284545212202134949966939994069502387376745255134569513008612527107123467525483507181487730790238251962295694210247546501147547986724719549087273384498309599199271782153721121855129023637644887327202259940028915251187164919315732154711605825617365841902054014168697174943588842671890064759653226869621881674425699957052279132078929129225055808159670895674805407967872380739630966973136745175066864890865044669711588935383667819924371384480313302990252272853721560723601426458008723240116980364013363584542979237927757495540068890219380515509717529842305755638960139729025828968709857160592548746644497405191297228205465377063491389088599524153922538559289027927023653319383086059947928797978005743864739822866138430418506497804982857171628613251453977045348197365720027500615913714083330403387444381839679163390380511327513510405207884084392980585723377800394909155875917513903469069368117142238379642104028572332651425203473989519899413425880316959240595763630031192222454922094902323247875383551799390087862523255851551435703997807179979884444130011517063398107690350034567801012785888920338177049521552343346336442074071737662923547201989042213244495500265572305285916725418370357530435049159796351323929378012068992126313362308197922447971680556579598002844204473769967091356810854788853045067483390352624827120511212571407587948853226234481475373304691224851163091306803533923946535054138405436713544350720623259577963726545246162793285757623448036636937046953661279310008459313919728279512237215771583087640030039366988393379246023559520775522413520542624945285614931256131805975831008571363976185886911616047133203396528705590584516789009614420634900203983101806387126995607137504697159367568590901166755451702691292753749194817285240288870109390277706652204945743657340584316075338312357067076813277731668281021371871911742742663733460823721834948305149450031262951651013504066221771332927824313540834434591428634328464631599128569961589491702721589677005637791424258627604499862031482287408077905224945267320043287089648642253061224728871431966929450162272605478654285856764752534041981740048742325814785741288178353026341896115974770015074628185098311157359443689238368867533975416495904830038063982062690978756221647561245601808848797851876572468103646032644421406729442908005526893697578316116008576305333232171056228220323388737243629705964128536818457752579438911446850984682071181127897205292432690348375383744114281703107404046530910762713180686435468692121211531224081050776140331580612723987131680289780402951024369429259484588365932218355509824543673825543091962059479617659067938313634031102756461708684471635003638665382271693790021076466210275170791329941985181019268870481801085272139937764118431993870503743780480895736618298997678249577197937884026835311294622766457073420810273701671197633276358139464501349300375789740602540787330886584373229844910219546264363244257366618807762015919702983256209514966776828137806275119542568486149896894429430212855550629692416831109370908961759611121140042539217180551885831420071136990690492936560673424988505808529569015399057687161636944408681014666363728421401181293095589759780286807148636189733703894620460394233902887376251442738974426275545104393839415281261495846826073560282041974423009484923787739023047507740229997379739385860859792829097881729989015760198220413433517079504118317233387656526229186475059535867114259623074677271050681775783182583483020310232231502833497052697201355194955178483333053350648736533932560228796587729116473421050358201786178771758191171214796588447352401456419142910602384929557106842075277422214751664993125266590583972935717839185609523013359019452966486364565378641568693885695361286917029130158105849809456405468079728436560363233487769753626124602837699637467670747840009776782212909230835822911415511163954397309173054475289570054103911357351703235507549519098306442927908410468911720382313670767534270669570656678656059079100844579102033083624141643170681411043418819758198994297137653610373494042977977221895474307389044263239458823358800663135067355465566662317136850942443215362343953213053724140166712691007167821764791468369656299559654845095358168948433243565099915470044453703885053726166777841682180288497414024469651934492933636009246462634682809988939646866655988733697188431303677424885184094810977988438002006310971461129081069042832430674644540562742599311385335279693337368960875934724197783542986369095295987300623326236392456073648498033334430693011223182588988461781520393196622965406047402673174512422321173823942158575213557340105596590109051473064312524911893700025919816410114716048130675780522656155219979334110843848819681061648439396428683921444771120649531602378981152492386682089802882575963276210155736047973915821777585922439213338147416886214275031971083612256110861481687046447320047361988524227017889288331824015912310987398522954148762420126371538732370470653889093541647045351602864580984025612806148041072288823449265774415445424063125705622047854691477812160858421691408925110603082385995178939852677959529528015300512329577015782054676033927900110667758605472769113513223627220960194370494950629836688158291620670706145204708495416698240958263662068639108346062541852170817783981198696248477152532415601515581163531169077331604417982746638013436686175360709766986175198459622291430754637347514427037956090919721704314882848546198880234864550613092672975007005926151446356972359438547014340201699315959675566079767274347120322868425757880631370287759152355138964510981716276453643108942243376207252586284671577044548132624681354886771592012633686167196399655265107899081003791750255271362479948888530730969823930861962576861316722018931708004302713676048480618259797256372617685881177972436342716777003254929965328471957926376401997686260984916740345289571306560766867346450803038925219955589534884331399327490749847623482317844319687143583932235121320989485838294363712221357822560909371139900399751842341469803917203212931138126521109332219770460555420566011461080640952848686382040448155408416564323434792270756484085248578364685110135667636762002220924737717354544464702064640236252554578556536179937222918745535010908599568299377798989084547579380539298042860902145143538301583482251544173081892971503009684531421795004586901719060323248278517035142266130864102941301796745870949586343169200980299099090663508773440274915951403196432436889079161351678312193319194224111705687428410719470163890334810107900815890891125599643534073794845350631313322661430092036292830964340030781125936169920912232962765320751390301914928758353991608090297793037601446206283559749325009672126467884065526607179420285040934466306870892804228718385745043221620060377604140285026498387602184558046860418705896301898498468072663041706570774894490195537885729474101376379556655352825923471321145540909519918399949804480113852765831929872138236369380143307001962498352332121975482221636056535432157862402505251477933700324513588329659585093188963999048847608110573847104883809871165975364105275934464999170852452344323184318979924075953258558937656650917270568033684216997870266006418030163200729675720278636073144687779749159818105353111638288565242408812139602829576438543301992755107296837424051509765917225919653735999501913062288946322391993710366725244034568239736267948752773090700910407129677985112777056040661578324060334094387595601273265599538941361887919090082683485852843283959573610617266859812754396502941669753667511373162820810659271898993718929250254615893242848604540191899190196713479408186287912402112689700083193132609100876364557149910000642336363657414552260270051593321418398116631210547637597355439258811110946257066547026149910430882502881225799737292940123489287801960527036328194814182908653691908899968259228217412658333827127263467543740054581674456320399046790062350977654426314768333180419622729013769780102396164607495131589959222259436425640998867916821498217357521829477969167562838550262829013056096005427993899892552783347231006765139118650295367672917256208431468249078987322772698251456330816104586850807497000965266666280885955311044265095379023350270100498631235477751599608241049042970800765658863244504908308335810913686221013202901384775845931511381552616057481211577108679783526175455552265786322829166492823655479438470715759797239876793781476757652701149752498480581162235468225653757982154433855681764604838989699656396198969132405073289482724735286307610320091126652724654828928574781410331488142294352682721735110648299431081912274833690838707840782077554727973501526254241049348674614993001905955235072687147211468009721452656701340591366900724438962222713999313936149055643724367127175963379367289400225692774562542169863499044324878896649987045770397455506972706034283490713654706569776629273520308941849676456682860230995848792781331794756572116440459295450437038260819276566677596470718262449022270427196745802469836381497099708202041421299291226071330186316356361531653350658770039970332361614857992449310860528084335980051499595203092897663943016289875923912926455247038866748666347423510251863928243681590352104291592081325229022092892282964496207864455395136657200280288994361968086256303330900296424588520246404213174168736815846605887377702895128226892629271823741189240494121096301553174435335352608877907736458834461023030078303162678366768773346899664670400492040639390242879360858851310031712865846304503436484964522910108093216414797865092863686356041853755363451492129720759080656739084291820179702442970147686701811244127129830694441702295160078377200722661769305394555487338636775569212951996318512407632860292652761428853217799859406273118064519429574057455731630062903737875251569706171702086399815852697198893615321148776740716053398499773073529510238884586048494385905648763395949541706607236161142030566094475267150485935065155042481140759522326253657692960376176641620035348785170962818286557161641158925007273075372714097973712613726290782920859279033674254177872669493971881921706844730283845834038446481050442968363651561205995336977110585774799042235477379236276717286736757825473333852927367087336350466905315283683157600954214715654869514351421493902551331233574552409301103670819480639250087932987677874739544013259272550236927345506703942027848181823654305827027723686902296436022665722543158241357351334285278950825517869510843025791571775927416801350763378402851987552038429712157084354183392290688146363929281026979154578047789684193292446828931703670161951711887289666785403117856615518031378365875609905794844108071910968531517344763009205497063042339135269755475963007751779520947664740246112157175684971341381232572966907318711572126606500753572457219579493776262631254114152102095669056260720215892119255674740146716622302551102391025416045657110706239036950054906163881740016005847193492214702198126432111244345247800000481157213704965705585389131260730333257754792703903213996564190825244131832819653396128837810364824092483422784037137089645173900825225637232390857025648740236277976711729582287715155818533039694158971944745852743751286556517668079839612606473400900776926592645148572523758160259730015841337970135395062955928525340561111989012148754864537225075913843429364924879654806090772597793748122128167121863562730667398652322828487259642020694753680359111073686444929100192525501225475174957754534122542341595165921093941761252648084477408375835187927094021871908904692780604000249822131356883440213699804223168687415414080047432195769740232963991372065774145653363491159123328554206353340913908620753770643141017077211644822386008246950936413167782248191507793888617816960356269755927507623455345625961097931419127133059026501759236316162207913554104217198732112354317118037048331610700792122404390614982800133143539207939523783787802335024261334864289395810879157466375269966120931551625345034149932706100637682197001078692059037156631720889109744206551250963133999050656551964041630274153314524369203943259256967552330801512794138917587911765189029506755135248687468079749062140376510119215322622632341405062914755616581376425681912265073203718441539946925951361927336788222689591602596728245966501105364651796629996530253872291217348338374093083490960391193816118280898991928726939782536249215616145869423592361413887718236587634083736908950027539345141665112828664271441663040106335689667868251284610509682868535469823862502564109432022802231331703814938528632591064213249783036334918226343428858804868041230133204978914675645946980978746053362204397472253506915628664401079105043822469649166865935618795641139511219107637458038967308253177477007821721034189315756684769013674116142271822351360913664325286531141808885522147200352931366173868856339293066017230495438931444098050424828356227627895982131822171249525153135381092193553575050379927100684877593692129870251133923539136058652856160376888229220212716651003131531798196649612861552084153564101298278632932365387865241531353003594309034312639804571425011054639518426867015908208161292713505432571474896825664014640675235678367165991327668890066879871731367527387094957368596865766012987774754937948528023280168867719176977944877541778048857599148054615192367502752373968216279246682431871951945861558342960048755868212234493173133361980567792421285122443399335037997209275074378557499484325378323735098794820416753927718140662618399874186178645513815903573778109782762953866470049526537825021010884512506500325474125797522315970382328540321109315772959720020347290015392840343970163250413161147344310802775321603333993196854764251939730321714535938083465049706383078044737838576879462489671702494157586046895051987273061829892574292388199495908057752180087895685121773655799154966918606210500488313164864670348235520485607795889688249576259534549740834556164151093813226386343083663418519111470613604941381879165662925241550277750817900716436259185908717428154231783849361801338879936200611906663358301532617706713741280030264186533298203936085229382929925927260052642022805049473398758784179292030640782948380419945063020692456980971623068126762154483302092691895611053138749538476050951065063461502330841908214458722037048225948737167214791569827033355252587521180558699280795749317370576021398655487241971413197823584959176919255281670392180997822566881251949159562158684047015773657910537122848677959259532231256336758141143317248927931715709440868952029447512637560393897768815722156186651544143969580967417639750907202695820095394584167848842597614363973829467686076221576401619494389024660694967157616261686968765924558690188567315273179245839976153202895230453145121532679093009203264681104078218546111893258575585921055346277786561110852405833164703718867684326019662999740118545630235677362011268988403199561087102581959975907892000243122401222734210665291756262432121366030853391562846772345040235670829163382301893350240185725269846688082247603352128720702426965145216060432955659290431221390908826480141837403809473277802314271853661429518485296889513556378126314616122873899569491915866112236462634369487888566578116818502590946475456935933511445696791251630961011366159018788720147904667731800066492831506769433467453123338019812396711894524494047902008894361374138412163619903110751231729780291633862165527883406086663129781947451333760638582363826731985941924601995224403697932213825259147268687443524715127340368404834328738168114514868549654611902064331345971546774009846336467563125796459487832949603033114438716603033251543832967612761742065687791087831151588618983785513695438316992207941094881028157819578566784725912153270042081012180297576922016046459698039973618829120678422475041007834193992041509378806594519146442672701371067505583252186967757509581560802918966244040470571092505278640838238458289430726183618085071394588550261776574327971416064360906048879547971876798976587371383178126486955908430847885956883353194791875688487486284958889910223158941736421894723148823503087374578275278888680123946394590054227877170465503128002255147253672522401933977704754689029194732426148384019963774225585211476187857297443880396695123115089442507400171976110153222768791758329345124532611106539782888932059331403890602085602420148818159737606723226613103707271741068483952077550622658683787047622259080002766754108685603694385474358657710115050192301121082745189802722787050332290443939637866807390524059236875499608865783953272265632674572826896356208885007547514210491011963826356558743688390625917220611984924045025436257629431870352147130910822397769057903536360775090640711380847236087643903933567555594061077270502847126605935665455761490461088336212295100546472041495783572789152192752185993348225414778172910523331961071703584416876786324278633765243381130270136707720805751619336571073580840544750811551075566203663913377143910689337259978251348491842705865750850589355251388756406070015190460507679918929802994283553222397309484507326142141679085025310740998786418811050882645313009092770711252197179621743897456398332689846864493376288816092357313236396416268326037727490251141547553253633367781914050747713992104103854220606204468901492607248051234282762206329274525445152682328708714830220952296124962630555651615358755099547269252673592764771260811937707521951510180219151668658674249966953222768292079624447027777540878154981619228230180547796808271932683677793492771741894706030564146085229416073422086581958687121856786901914627210932027599499130576755817826355641617734867917578792831167850897486203767912430872004504510772518428869410283227013870591718451907474463086050680954073157028155248296505000123599202852025852114513244721364327335096039271262036892224628460045090351637622362617529224775966239256569997873959738668330995677255211346245648301494311460837996301736062379274402434360968457096665425053724210651959209369190102407264598720189388356374582967969407440944723517044028809348768088652135285368782011925355485959148990041834721420442206388105504053561886718641101213335507786664822770040581919352908440388822437412701404444679591792742183229454206556506607673468932315959617466790238317633222174352041026633550743520249980873791620881724870234100395757303870145640382421322376134196135704365615643045088396826958266252903522048836401382767068104966215291159264076771844233360996628236041262837793660164384240340388088090072986225446083074392198026205390338028982172976426673532546596510167473719801109334622749043196678358813200486443542034908340486617465059387294814695660777538915087654595174625339824565150056071043697894860666071594503300641326728313707402649239573434941794153244372029772453753224868451188448373722705929034340271168237567895598687193552222409416353946125385318104908289383977723715613027480334965530459917209616444739134691257507445222535452644346407898761351875104925913693554826233584356887323418777773391182703877948066349880825685201652038411321130402867147061233215586005184186951232585417539143388855761407785070758989725188681645536827549428184692655555650348384449165639589989440155557507138883940959727095886786501300608193365585875265194207195810027492312031998375287797065298998237168963988519802588795121822683573441664197000116714210504278900094376111848420982305640216334341043054063447259868103938414245219054995334468163658651465110866134284326276842587015474621227471592014304358492955253379038885026611267281512494860595024286752091321716360608343149566118144337415763476412700879376909546372603371857034566310680425196133161989335106750795041396823177140658020270593565365440269621014065107350392518922229259696155527457446298926269142880855062747795779737187100711577201084475752644216628208907208951815801871904272296357726119482883201899522071958806646787875460974884415258972256611654220931766862456790491463027038717241144978544877610978167353538409671697474235050855483301707527065485651193464309558169103688012252963735875898329410583809624844773927585079030132280238796531877073936493329704569718284083077529096287353265706633383162185362119627997605574847855200664415003325958853753123403148606273379652072971162269911417429448567540011363665885418741522828137546472459077637245712024306070876972281878493115354674980005379148261339921755896002883155435776549554809959415133035231285386004003163063106456755636309816772368687685427835553871431706378261624169634041753904686254107949878931070437563870017364325907173146160920458950545174464802097623256790864421289370157250045083129600734030147799887253959104498814661387324478681028394662076102030356809786401808227222450847066099510167024059616230275686159969183747713755257240915833668799145062570007690485497992442673453454319102988837652041446394651180689620979134017670894668444109596759008783740173768225506275457268995802583744021398389233951897399257697506694183936695305362287551334766673425676968050962642167952322653028324195445874823378883001953071275702291445191300749820634458141728122306568582461539881525974005682771576994526535789401673700129255122085973518367867292307423491161774340390103581126565376485799835854340080508457695205011681959531047352147947060130030079852065083561497739541115527301060456847640601711873662887417216521093007258541439166149525208591422258463639445267360017293061162541435514275710823188837135059393054706730685428093136309315862079812331553782965367158611709071844643167582612566290602978613963356058529730009821807155013990807671508667453659741293417683714439296337402805319596059912918027129132467789119051195155331409513812125941580109080060093837858200752705518271815887208706424387349559651207295719735298793430577409718171602783412896709705226658606994668993296811654818568282475230633050213216671652721259176998017833442472108194683806854044547160860722216863787353166719888493971703268568015663118656554864626734591647483356159753037408236238652887496562790542137043871066425640255607349051041930234827421779130345871544534692606404550073037066493195510421635917286542275116381112556665647071585698819487342369363187631556181201929312288206036524873889958742459088773148305311921363642011815972367133672435142422940837922919226107852499141219509236296459574560068969419823437824942451012791495480863166833375731634308033009141271804950226612478212276601653285454969101676193024206624366865161491726198214055008034207965893318668175217542406993697496728531710336352793973975885190835467418563430266543977364040504911234177487563565295654998375394261463468320158839087408766044206048185784486162545870695147760282505380347842286558391246632194090415682644660447957059793053191768771959128714027384999413380626830974768804930951795928803368541688146294758043005126804055973138691288945009254951092799850223274615675233111323920793234922160419980349350161804226158476748463649875307341449409758728089487485001754454352409524426546490199648492368209878651496014305412565119632097959954204946781723173638638352798635838068056309178289231718192536329942879748041726310850228147469159975312612689929421099889855596054429647803513602026085890891344764042355998488159868926512483847835167865980074529025693208925612029494157245271389776734200870089103877728243706459653015903507708484326918626804197596371569595387647363018337249882948794789519813005212068820396876936753875067875590062047988893047799572762327045414972003519995367206010231911262442076005171833403353647252651017538687458955758764900465763435491102880415361116948366492541068017188322990470311802368749039032222108148872139981880037497323970185061723464664074182883099570379868276671202664128626374256885926169672413976692753399934951662093609023675911367711858699061196423867405859546764315921562457723633537719425369804977560363399782589085032116465051751869247993772914184671354377724819786650320114110609658177420726596771650849023263621706092903350775083648769136893982747229277956747045964865673217480623197041290366378420045600176457400054957380958619704099808640032590655174452832505947607328210985172487859666990440890650777005873260975627398386319133316757775174880010774729797613868258450484888474524996512842781308172757634362430648036950116530354345528969150312119483450509135712269767808542975208128547405791570042798157539015491379789822958605263314670368144699022116596765975379757313106930222002753535509980904637686974893121648220443549162922801965958112386428861145116029360540842852641819207595690968085175073977779131075555200598825063873220221489913767609229979870852548499597848401114150859533784928550819428447060767383619870741363684740335676526420291071885560391397127365431779676544732109033618210990996875949413923988578098282884946230019590100712867105320657541792645795280873429825519243924692347688488200000201917038982789061316871752721407904269105568006754575131449693435023075014749598857880440555479835265579547815479741178975723790494825212845970625784493062629837398699436941490525098718445212874924149939509493073904901529381328738610412622474955647392717473543688573819324452503375391363771489850930876488614703703278897697564992260842376069280982443584351383572406423762498581531455720373192940466588868353561214344673951889483236901656513205724254026586753761664558067369714379501893668172985306267009175933144089431951270559812918731214268689644479063563798411504882500199080507773763351796212969446369485054988565658789876464039785654316860035941494849650281648934656941457055874754751355891668873269092684319745635522090349495920638359517318485895856002291410589332865847115270242457034552815014680495481413504260770082917724876969246276566082292570822618501517352019817192287137075706013305750646379289891188343872233638375505747470928755570864282294837678524982898856175535976764988603500774852159164676803203705478051159415500742227183443386065165670727274412730993631197395419039041070305141585475270649284218407824904279812401095023731286536709567112890575773683655634137550157054477018493004713696555983874763980893903434361311126044052734742672545946927945887872969972164387033631497130417721495039827588421137931736094666968184501566488661950075261399599943446698086988670823755153246762383190180953660904541702718026113128303946567799476003577504023688485309207484254726090889306282861898782258331319055928580170857606633395370362422911959880229636269795701950523555527446829535254587344335904563920803873456252833713147289686153404672437106486438953177202409654669380824629751564229584163817060890622003938439519492080908297604731590148512162249381664974983228713480678226851666897196615377776035671062445020030145130687103208025321664874837042789929838817906261761265804202365020506130257295310344214700690219628426119856700680122187019299218888860026879229869376575883060654310493284753068491926458780924170044912781876016738254330238633038790261603403750567528249168241060556268527728933005627626767309197083699765126316178361154947996157413282500541118235067800888803388488373793587436382118528764904968840171869324120423921442007699605914938079837342604617525975908278659789523677796020227519497112330548590975356715144702010467421312753973129355766025369812752088712092063765960780868370326111293831360124705812260722184667064637038077968916646959310889256854250023135201925110790997120565508304935010960131782441989481619945912541292032070506269716403287813777216165874493292986659943129126373379856531587055595934051487006767266514629776682770408177188919871347324437705374124116468034320477861263441495890003012514611536407534146576630345654386198059423732232468127182552541213460816802864948752335342157420448997815607025118440359814671880679958359371299999701893797257164179412712428205275792032739903926207783270875031403412362280158432356525902093726661512427937547599031042872971986664611147192354046838676197848115275582846936386871581021561308213026335429314323701051394886106334899694361255922549525579398745411043198657316484922993498004974219818131497105645011766527254546269091727735757670607516540365469539520174501627781232020032560442861068900810848708748283500436926246854575939075662645500826145637823680263969889610395842123186010706350059565999744852715380282194245766204156407020210183814026863445048063860907933314124604618679524864474010375609518305752460056975221617361961948026634191559644701670604167639050520361040860514897348721400697004210463176310035511963520109442129024890910258519910527112189292038626519840925182667619068576107615384420798337359052745706929174509484911835176622885871433323462843024365929480023613621306219344529249578773631610430490055972568772337267133044826273109780857209665354072455426662525822307746810894336481643249244779598657302559926253575588866848347459856643095763197859907019095185493865232799606215530370805864110207802351628744308570394731361372213347808463364423998745986738831077324052843639732841350460992831450233035023553144564876164258771679797798359573670254354929575041412475398488854858460270018817518733606479613020053465616835035557915243953893316164314130833352140994925462406584690486294880590841165650176594387350066369336512102183844471321320078536767026384608852686363941290519945674199781157181624404809470061973914092977182191613628753498360760962029560079551212093318371011462636105607861460037959743104229949495140303921842606225962509870835634202272890746309058726143568314479314136727500201392126192495114371902893526006878949464609090162994505985528250900995156426864796092308690283307834685248936006466299598754916887655574216035681430455821961894429501030024314796481143331058086102140055196249403730625154565048467999196634860845145372359585544140699753065945038150492569889273760385352572130129135938916315560363141355165963660092315276766027602583128251160008579078264789863131853147730466728147675218400364567555666857333618020344500384582973373818006746834850168109291922708071618046309449213531359242136849927423815419198324984832822366035236656104233962305149597112975569988485175891721125467357366381456156292227622279307296548410318369858083094625508490704607652944555852192364914471653431913175058914884485931627635969899193422921812020004338338322536631487989308869686366032160795528433732452400125708017251306991097683194415833770268874563473924055203565270038094241653906631561299776786237381653123416825652965584769748996962379154699771100975867822968524985241512544090965121820495669035628460373053707240623361954956600813751244701277404006128926905940222725189880060129999174639550698777298127214567666495121432662478836273250689719400234771520746177108358882483842865627961401411738731851411637652377923109365732122923672236334741934465259734385511577374130514575436249185966150764991014589164720093971403893169170083024020925557166328329438555397306704289359235144419875944669250487686508307016856290930972169738217123177958359104302860991838710029525224187284750633948804428330372114366998348384433655874829456315786476099563266779990681724796399935949381590127955365928892097593991345147478099655681615590909252359661814131925779810809729141544481474471744869941975866867695264018504083670796395380353604160778086078539942974864258545011663588510359712258590550090656291528401949304084092608533381852528916004731555587356520299594748335872903853043762764856215916068576362056415495197535411515515949952457919688972209908153197762733899777888420621343497022221525062769457752289223424536464314525236690221212693367797628917614555166240520878856070316621961138616595592471328824174721777698736691414086390371764203651129370379994478447983391293942319083177245974969635268455037125246083531599984932311798662393706223467431707390623014187878607200450338057000010632229407782216566400837548740414473048227200190285883650888290048963506502362875796556088181177497626604882189360657228061684951274736492238017131089781364872377955462962450254048315249212415759429540988712220173460778126097811104385852468527155716125623242726080332762155026405166711895799741076213056983353143930932684866641193598270063876943692006616909170632190169229821247399741769445121559347397578396857882740069386185451261797576630020616760538951637074853338025850307647251684281504973380684727903035218523076946264820817338095803330077149462511272616369782960923996115452233324532872728374766512649291620496110134036826146779758318581304579948273690105058828796736465721885853157802919040483662502162297865948221330558700483648099421853132959424237994444578705705430267981646796341184385885053972577246505527194738880884424034125507084714805508988223193964331984289808432233567415124037777892862310152978796529673744402380192135753733384758370773438439658563174683800625846500843821352372508985638368218015230248727024334229833862656637440132696036043617420153895028301175827293506116293254157567801746831805858993028606307234896574393518945699856232859712745864549635808078764560209182646167970793696252545927410311512423835025050901801682033499272124965409146158809301768434893527259557745787451297383728059812430295609899755446726025344176742286373622911075476210506596613301246587255950479674691249263283112540291315870778409990956377953839761619737081637653330673492042526365033038873841374130300070246623000233372378235903463455476170775331124909550057845521107736389228385001332484676884805664576543647677293973060005997635723392135812979649676975625606580903951798753542993853050757126078210114238429931614897245228457772569801508047874279173133574352167409014246825186978715227614830288411011518043722796782827242321321327204439037896154651106039806086833773548539676102113967880579914080792613721195854587046423488142270666248633067759445035340325945619377535824131791907063510036097891413393049056307402732673791220066666167213969901510067221111077847825714791896472104054893628360231588912964172877443220206588299608293804230721746508025293583046401139309107586057566224632835748569569018634189682921899217002013773939879127681432029912131664087407246868979558875342467747051664849457148608571354787595765588372443610945316381585886008391377554054016814903297664549666231036494294474132632252747209053892076225789964080800998274276035981782417684552882122734903594294139269345104748707053545070300345916436673064088263313358611135125372416681306997371882640388324778278340318282419501037712609344607572273427040796588353923273256116919910513827818956197273206952914133936625424226602253563711925963317756411326536776032435079302572196924298824618232083607018404108640594099049426304025818612951401126816504921911145663284661597841830845386612647086145345031340269890180837391208224858544806002064832822894722381543525083067395314181672261895230869292348268024504147962997358206225955669263581462949675578544537782766243714373514437535774310778030880830778098148461400224310750421247037741223044052664166074804608664761594868712647659803294677015110157396003590158519132115634283713221238460827321124880228340287364036535041594523228698779578155876823935855715466003125651476752211630114262723524174896001686611273494145511226620907810958144183564862510567219546192595250709741449795407998310385296032229834481457573825770663520794049107645068770946224037418455933458386229845249010239441631718956711299664545120912863023529064102341723300880703530812631403006309510961467633308406553505217089799595051001641220311890907200119125892603225219904471636962411460204407339843716346140924690214204711789561953318508511796394404832284361800370585898780118374221119740710535235284707164875081115659412383150508311726926895216569650376942977575866586445924985689035664371326631135434670020155103036394846202228315017368419866933200727207881922538303098052560594114045514086887961746813950036735466188247173844914477118873342350052334513978320975221569442463462371902975353910082845896614484820620471360417614247047468674054807653741614414031459415673632716523578873975978088508912825671364144886193576900117355578944498712086176089533606284785755513935493474708235817553902834791220457433073789527887140730273713730279323481140434206356743996741160473789034660366618678378642471174932630285118404162485692843474568165695959753029410001281059079940743742421700247390006509525972169454462238804180761076642535144178939783469252193551744748101238709978835761612184976234827071142209301330103165966796157547812251688187060098924522492972875555755990070405671848403365979820868550415885940866304289766778757193533989514759579069401926098259499542590589345153100537026405850006975152370483595311278751988391170925010410373266408887745780152107708013859309824825643807881843393632551708525660415726352535906748078643454420961421814476439383626455176073804705981129647322539074944893020008232617500401064249959011780639476747546500237334877304726548744011690490786320809616420494098296474151309031557126083904070986134445772021503708135773620935620279368031772652384012422688687994027297252604880902205604421565400251820001853210001868763005794933616309279440515855213912703877243201999795995164243796561928052395379989661335411328005684727076551986278633497393394313531048054975234579946701882062701535202639703509836267205930705588695822465731384741740030122878841120123143509348004986798350364894989451017939053880275588397790456971670151747755778761929247336395893617872314248875010332175274257522580716968746128887058956063457913418668180862515617492826447473374592075939671021701270818847168028355935978317662182829692679016094808900497900828157089444483285105603957937624532985692671823669676612652629649679896698082626998980798529465747802155851481327504579358437791237564622210507243495110981917852799941133664795728272865148540836528733017074155700180113179388105456673779900955497476448438880178597653721256300336808589506696659081089543498071545295352787105731206346766373105397518845003939770613864605432422594354603903872641788906275871462206625998698238995203169372978977208293261476880489559872493794989487301917352308428932954689222025233072461898891193749285319979186612224722859929293367115043875802697131218593009559095917748680700031804514338804486826559533099258556946273203978436614428818016728992875510486841319944866331561868362988485601284262473812232334937883880774679347192986517480721254149577540505348444442718462568613646830129948808623498850905061871799872263566432726352460632931177248047823590442084234057236990277440841957449011622744837329632368517278231405332840591363467188580733003862441238825284280314345727616076522205683939171367852484220889447555535597110402749259522154437620361998248568383233860001615404504581668639879138619283495218835638573872539826849158449306371468082616961578269883055902552210275589749271164777217979884352142212111027028084878599406064118650059959600106676240026111806846395937557904015530144203843444678369731673636229174697350117774211825663058478815558565930137521007796157599793161911732591472926250074146121436218951052682082558809883665615241250540003271391500885565804308041459307375508242059371356556606222716842511791928751699715427674873651480757858879660231881687989588504734864771064265054713893416837232903787243656089649734635330958141063424158936280108336421154952311609003546033648670959872427974174704965125721673895625794539510986626272748976529539800817592607068142705354087841368782667601825326346918505426248764906731209962516394920764734527335859814508147739758372497501552662079039423961490778427914515224546226564035270222946693826523067305370607100989277721394426912310721770983720453307521216812099811025410436458199270779834725760458028416547202592308688760512081726791786161138856441313408454004764026838920972567372564208389565249290729534321469740560228077747198237688649804070538207760912531658145920240700708012236457240219206579793987893623156083318998677693126936535391885081679915798489928256067092633936740301784718387149454516092663607910585436448825528518084453825214748358526601731826377643804221907331152049591393192752253503779946639278824272701220563110303737013548345664671802614106627385278124231949911926991827559369330463559973084785461370721819767875297492537037042493542380151012221641744690681921916537384975698965315236916547016463209099919058687608836338419287984203124358554774210530019027249661204681137804212154474799572047130287429130860662488347449675299915864416568285587312559374945725017178891983282715375664023239152237066032020813283634265777833022152408587231285559965482222898236709792162820883924349129242880801193099507326398706638212903383324909261077613098925544417858600537409794122729478808464632635047158586927810982545960974786083600662286303662574898494273298366336040345692935170617379942850096512101178970452355657696200267359459488424471805298686618589705219242758737889429785050373825208519412667331282491390202647146519587579677275241703835599349876218002079158964919335418444879223798669129141108547465019698811746830951217686220223139166117344581611472783527381543477692615556281277073309639136081045290023490974916877936731991819285358992564852328350448972291707855915508709521770952723264633412295107643327988729407670036961963837139937794782656035494277543419763046040914180157611060625669912726623784630354124533505116187447524291000905361632368964820074653232870425249886870993335706020655338968382250200783586941095509136977761620017778084602669962754892916609336936638865012855217932867427770837588602849353437737044650918651989210122468682538696836521973390324941862955085668288741328677414679921490152348555421649300383770030911255838372597704739306715320233291472585322859444486681627808543698734725193158698479449963475350819524109832802773096719798408665746995503193515364325160695536803521582447586169455600152643101514234089694803723286879685451500380355265867799727978038953020316975527754500518972532442501096475755796790479683897262989965240719508050687037452817992650214383734611630784219702409755096752090279666380161768906551098730961297773921843900052585116173428005843637473712733868488830557871445388346378410135656093713843928488798502995397349541287621945277357334747503666201838672111443623593756054635730211023951466052741757450188189096593866959179663458498115926454978087612163084916812731635663111210575865490560173268425155078381229967547147166887124968776783276224232384328071117760114594405105145630458841682728585759447931488312468149523390077619085540356182249858160055750031819640668565744818790747731406772082275295006479339701887610236868446241145624232164443174205979835752972007157739228603657044654138072577073350275219990310354779195825922943334906626747093480951219310669991878179519839395160895032038646622964944127365360832618564221088417363955985283745228887424636455778256591236219327918114903900612879894345765013923428701445572260908085048372319499561373312071196027848486187468388198415321666587265535996114464169698813511331592283417505434349568117285435031505548266146026223350739953013287199756203726549400255162518230204661626912240278191540577488665861545655586794806588378125732322516302286912021941595943751028671155722512083091258325135611036051038086002626584954404167270979287593597769484999744988655805626374565069918426196444253506333981279731050640133459364294041654877074652296667061701102366948072319179636370271143665702570292515505101081797492187821451749051328013698141824871996738094104812509304657465489543693613651879038425727256289421093825001357079363611607427513693011491423052113471643749808902594650581264375399203477265084789908079528015191772116366984770109900885842923645293795000324603598715093792140947532677047081790461383158536812368628538631438202281736823139497398715464297492332038906622191384771861786954035916417615979946057117517189896356233442942251465047359347655374902388377640462944968134038169698438724333292132901189150553090087191137014932185904755553753567669377155705681920035122449209931159782643737704513143443414382899499830820790081406427982045245500388907288600251015809670214180569032971208491246129196573783480354453906350980901922317334605960809145792330457463280053957085788831786120776243901118564127154685061244964454946764495341064989428811188607523175463252491081690013773648930421127343796490815993535429840895163544358244156828932158417581544898955203659039147739324292764559472592881400635319048485357945036327462387527712154346236522927835946881725729837622049460178788478688894627058152422176598356782231929291231083910003256165104735732763511453354339974460024786545821768494791327590223030259714715240196390814960522885249118972090812943422070593279288878230813430329614456696650963402215616729048974437760673834740828303782928071436156677372069768234860861230347472368649326416806305147305562304798209772592062191992400440907943475372967566223850278753483827205198316989180241350028495234423070268248426489205770247139175497246235318400095258399366949866775413186398797619783438523743841040379096481472757739437827674187956390193632024222533591396895021458190321112153069831458189064928849364360001982676694413334033579953485359763312697104497822213153915382477684559877187235734525198617938129005749262504647194944496012179663935441099838601295435062775552727824761677006084421161481137982445486866937741842184278344181463786235128696635075800853657622838406870901110497699980418536598739241164059538450961596527959877871436703205846145524427105198586387738916624154846626629922197926375621456272181894024214276377548397704706529729540906775893580411734836468594341048281743220119194468773099644914825301009642842041272136738839553608649589618129988111947915624010836624500668806215244201057876012078829670393884541020780299345017147732495693623291580612211091786332620493083353292811684208653848859239504580137167630005372209328313331596683916854975446375635470790970716893138585504925254677807992375247206762832779496384863684528070589963010290102965000471346141190879856232398231869696730806130241697846186249685745565329188322371167801201793256981884355640067603140900813876229418148150136690875324065999880430507780398404361385808355674019609761488837092419181415591590882253148980216522951449457235407334541818161752476662314474296803156232295517497529320672159691492327108248325156317622901873188663046027456343936662810990170093284342879263895874328811919402128942672386331008169988800450840081394624827271143716791844209217869772144597031456966613893295876679924605060360245227283800622660166320107141260036565720977511021514426033532198344691595821483723660147183440294217551136164725417804831120015289222740310715750995133202225003132872610525453038033220336729013446681054511138210185236972056721707674285646518024181949229221362585642996978244326520127811208511156677208972478406492364786521024125640688094219454678881102469885917366889669000152970673364588052822597961765408768381929770610259498569913432737031509398035360283746397543947875892358507946709311994977320153130176708556029141225976117912250727065544236644053678403179774902857410497646200192047082070236112479382606073391523335102487368767373198539976245303843876262780614573414091916877128162414456076134596781986322579817817589501977706269436856414391917442337504882216513800902864148725619415755515742585792698201988554952772486641218738209593898797363997693332144948663698665226293556148659509710699238662832225899854053918522581055526845388329469683325995463673416193170596251309145263342780003305804027584495093330603185541528232390309743768513151445635464593535924781089086635122725217207108029433446010261065077941820919304408045201875878540752535874810114550541246547053856496060441526776127452287976127460489680041349607349596449629467164576517866628974188094236837093792560369596108050165666103375138247351212790757300115240104674974039121031630478914745416302315438718351278958884695657878460737475880713259821293716005235729753999467797276782890895044186896016030052762582266179196712287836269456555970302911585520002489419078020486545742792302992789153536193427830561704650938853911995978217432080959915931981805630042722897643452961138269548157792400792321721825277585128240794139352268139950728015749991557194373623178895577562236296912813139619711222002086211231041911447652338580931426088389386113983798109551957571393004376367725777754316470033943857535472261565985272762282207445912902813959158413629246567671691514845765570412592171000098895245158862869364395795607396995518936741364218721338960467672885006665834817908240781636558784276875845782550385984709519521246991301796373035999507349262705467146726209637340518909434852202994237987127418426565326479011825716256676642618863397350645990100808090418477662996104198400532074422879333256513088120846419397502624928403344392920162154756718261046049928330826167890739785826138039321412919988928831524496802907086490148039268836318906593960580000388873717851670278304163140894833308766621427630765136378139848993609930231359704129422984882878009750286433614095345493586812684947609542273456932041031495169470950991369603096600473298839946819129139664389208692988794412783426435331609959181570602326604793466043320004869481070499107317306973334879888631105753720873730850262327400992482117898028164706648316143609414678061229850265805148342718092868715024772537278493957582878309370007095846522035195467204993591263328650347542909924857537587850407168645334321477144090129164169714975743053505279237689405541854580407015626023670130000120973675973044898110107259095265283970031953425916812646678715870434079660900459641021239446481217273959403448542854364230820243142566572891867927653407973688883466470481890410362648336587268501474390540001439506234810719028829580970896430015359830764541664931601490444094448796093051336608816868425284680978161051698171776929440911427584787460608637733517054470780622127731372189320664944252024811824336382236000120382800672665292630550279594706349465522501818332539118055209084749237749263166737241904165913844075178534436974170174846294081009838652215262712663656423034685598208104720354506371088762437446644811723223334557072891823047685478065795209009119400352063389467681109143142916744719032893509829228006148776884863885733323385833776888491307076484399085451387208511067950789775147926313372532719440141513807410182429931184408502981432771775790387340375646067773321171550448816899731359666299898590483580414118354022755925716906124233304936384703928896826787525451743240610061366657991759078731609514644928151499987310254150042382294678736154132519709745550328781661661913812795723497299018482201275916447360232951513319061810484466268478378924094643719745275795621871660884151888977335126551183806332159874084942900509871696416283108444967807949693106871921346777107655873370935946479735010396104313673103653916769507259013227045203896319404258697834435156743109677251776587982689911035868380745448059659374433539159780291410941722732584296921025317483818172633892456371970478958952458199352938405493691251755348474930338961722306595205448814540840093336152019234790077396595560527011370149953625891027339766838636104006253621688829634904305566337767697017238325341466142851489335434143490403447314534275755953273557552047498694639555916958031101550913187084446138280251388955728611285587855381404239319294275185111489251931294566885825668040256735715870694483367253172334330415749711938852757825680874591717684129466191956438909798209178145848627398650117064931997704849966750067826767038810251851267450172803170607306867549845237375609159623119001272924407220634132624183302977079443593217618673432918691896186034944568964658215459644602799003909135589963448675272490900231429573684299689771055322078058175585030999048244227542245907300746110947391731597708175345782788006659763180636303014948792288344581382180753394001085245479068613667809688806405474589157084317497824112505144710235122980583397804179929202704598169900057763450025515338407440537896785446916006923272089802039311694331035010005513245271023816061151584095335944203811097551990562504251833123034388988521323932831630112619327852644873387672605770129112732765554790154634468865766531342973865663351137177857791895083662095107640214760302675002149426309288373430284966076403117423428847454396369513104786907128851066767013305446759145835357939160470598824884699067687222032122235185546581251252201255472424280605638834381106631918923366513158722040060071143286407019471842870873023635403063427344201367312166975610540658656449486034372292742590093580037964270971520919463897074248275558758224025492361422618207771256052464915611485047583234627902336057245559269178720527577059521019760845554226737411909020557849068695552514315090076036420882260697225473445831286480261471760545958873683324437358041203819051742679799908473665000302701635686648960007701852621517465994479837324207197788698504652372023587065129102180301700910180655446967692457853439187548908361575783370451514219924260507972971806979396503138340991551576883246586649234803053043182112226739946575218514786537599155936804953742357122135133650030532251878267715096574722473808038727057772724246378330569670309408080160807652299144431271326826223061796377100520402001441524586483578231610248845308420824264900283211124733742573437148497442850740813055842098949819808629654870991153657160147332316802715452817563728049353487548651223955551255525671572086267381058459441979410512658434336460457493381307671380651580144987770597050855859475808393145903381568666902061737484863573685939324606651032694693955951963755255627876439063625430773173659400904249875147030142487924019151022530054680929420975752877077195840165166159990933337186749108004095665870738094651078576362696613243276088352069163512319475900052083844307811424287706799369927430673224735417407355554220715716282378796329289277145288910998453278525184559083914756989360583507158253539936509677686119227800273869991187359882383894685204291174614117462584150632521591541495653417983434020803982593562865478483853983132378747742550025490362744009209682118384345069909086485807430858721097046240391093688021526824873706240420395162100332035885877858274749437932672485664420883709406966835415317854424865805000963493325779771380779867189675780985896170627542285838212650890173376957824809288930078277114561233085271139323486592692363072317775822842287276887824444112660743234046899062463324068056597972328472297791240273529675450984979623760517529960926284200255271533036478724492648952816219676474956921652823118051783485832640552561927056483964432682507571567208441704954814164287583543074040372254396484464999436939668743915168913148516014923944651500088559153139517190405509769181154650585518162564188715316415975175789467937962262557523313446998592960518080385105810467922045745193840730392219209226238913643590237220355279932155760696710141700964298050593529877040502003224177079639118946700155898339795373825455245907098738951762526151515088337237515169217317428810776433777278306098307251816692800389671499720176423559034436307263394748665684311151535245477360959746054389856537793756809395969414368134816097957018035689378379129787827859559513517725290787035682041233097637368732241702048803154400603303040465004767915866779661667781507763901577263998625273243184807818044626967014369242423556890906596082964447686552597873881031838371884865042241047658906537882126025759580684092140643733468245771850633592984793198761942429856109961437138423523784023906482857726295789649365687139681178768969498983455126466352557207824471243219248794046568913371296102196435259798527651600188858120277554109450235150388008217706640724963252624104381975161912582729034437123279749256311511925243956985414667350691948151638372260739251518877517516597410062288072644860220945693041448853988298110851249230626088375966783621649753412539683084922711342513949539956936254413314017381330858481723158874732256686213925193854010224947557549494715839562351278567033888824495551084462300472407612165952784386252830599923022232848659345662629297484368277308120301443459368987425976641551441209798413399801593458435393475650624323850160432731918805126406671871353775557662146709318131511628795005097105517951528180909315448105804476736412216610003242509826316625741730518220480715488224616563891344046934208103238399032540298817463424965831868369474861942575335403633122383822239249405627085637803305621354468659302986821714952808585949418676532291067339817684850775761517850572770998806273708143857941176687635997581449914989031459409852596033637798998822813857903954608500076180754880433958468619641092762653446796452052634733932860749793239315031411727756698039314816385853168025652345045538653437400874565170669237580449786405202881469820303387688805763411350709720170085523771802449232625735469585989984648539617183497365567116979495364539079765842490266185568827054877852060323029070496382998627157187139424915722968618585872709177041479849556293870596513957700532601372594704947467297881459013635686175510796273212208203811084818139065524848077944866352115794013411209583151561426533639272782575549494916362676787351999321686987018224670230668053182563359245548167066536160219002558664153538177205627555297975137794987703464450988040365664613750519087650434580617860974597169984828469050569731536477787877376187501771185622589453374807823500520451762926668290636556106170333104855093794881022324517141592472608079101639656451253279909283553894916107635992561540581155733166334357042415168308168619425509019692156345495576255693454968989511478718373417044375324118325913898714245201441761682981272259124619738835478155247020814080088326783828117433710115508637043037628860575596123716954730598995498988505532426159824055428966068979866935728377195072131023666359954414922369391667403787762200484287011188604375309534536004460628018500213825938726427367257520696103911806527595658169650352906429155852047643886033532769724533959622509868944018527326070622032454970882970999131897892540171883186407402807968395065106269965670273763025522375184478124748388609051372149222074320733890359772485144376053427972159362903545964441703271688566665187324558048625799046782716920208176419302516001667690039400206709884743603886609418533364797884405590540785408623517179538350664597504490650599918919395893940529705934334473185065299991948527484265189790979839794000226732549232547927465141566545614545126024528018948156170964004600087929747560815680882074351975374688376030168341980367664073741286053468790306495505302272015850627073773088161745684768528760846015142866154100040862145415518915173959240599825783295992447620531765672636870918684556075140492218180448867512229845505462746617296450234483996620235981315928615268289573658910374416340953705976847523689848721354385691002919225482879700522345205333206682454137229033503274078643628332389893696568517716336251522826111874358007704386705023586519890393725471227542718165366511005455613117940577350619281876999299902710225558648251131846274945330007388235190343766139644424257494386512651820974992486514479593109632074624504003420504865158848501484582507101496977263241680621631620305394494713358391821373137602704611089513116881375734583731404050761752673913626442104768284105816672301470439887053433044823893850392786230573591344914688614917175072730499987703014429619989263741800408783831843316019092135720366297168000228104915115065950142758813386097018324871981127815762967920747785686652944872257494009698448960739676396551876754430207873985417678092360085331150126994515878454733191310119560903026994863991534707215130440169333558194058305210751144948240658517829198893764156913422125107244710677837788916249587853512914075256095965687199964305038677244189302667782355027048657092914598963509148937730421830030131436263830989064962634366250341380965336469435077927650133311732722336470224704445930645591298943362810065119459344178879892208551749002581693854543199236879523598464010074098059119672352891831156598974521420172954399517539871084688897369665526025725667231647004443214990924818035968822013539530331938036633107896381111055828456392695585536230285934023078378027970280632878809237502716686250189174481531029802088073535705238207143522451284248858320007692125858652890848599222480205694774578835062666518819114448023344104973405606072907868004433689701867387805766896530065691346845290678439033668330133747679973861010040232488880218508144713529206576351672180052606309796942654671749776796695395226936504002755246083455116664791389183868965409804332454828265587298113645290636474585084410483897232442744983013064565087750986651377157490037639320077303762599692023595565377164039505994387107878843643276561646758594712094180177245013517257276889765835474259536246194805780480092739392686051371190466002291094038096633685834054391637396732277252318183040561821163836312074487136214515668698924219509179787183269380870332108158331843712027439436332018357153605305609818418664010710453795169367967720102918765102340516727361184324863180474288917678350912622573459085783295076639653876430759410733190095044836092816321805488598729640987909206086007408618513192477416249672512175188903654624611733130616354974506130715395152614990691006144628892119255763721007580601242902245523547116903924401529801665379981844064590196786720922044483037028705041597354408198071878283300083808617734081569206129464422558077305017736457037144834192505401817790153276636242185796410688216708921179143867217822939650987991743716473775327561948367583739211909014065416445499582621003560650153597218127171783011083877866398581985047177181978750844978896373494255551396606049353688671824003316456136514213333456514428387647307855631396109431141677863979805167517545502720044085941986654014212249050280545969275060090079689398450666757459836724231586094078462514347398351663534855054270463009366669319719053436175735181631679920101706513772715750022624228805700708199023636033466475633684550754139221175089083860828588737011253194497439401968820234689789205400175024713112517322647176004080625435088217029374415992027097189466475576701389157637091634786524187929762489380845883887725822776042092241817537499325497151641414823294157520680547383253877603373660974197998957401516770306389378969871819415046775331098966319844892635093160381729745297820060001290161842587392869634360573090493590534860032308742717351107373214612196580864787559585074157640511490897713601360807575542408975005575971579915688403713438329722194842473130844170706859014120016893274601553148729038826109789322833166841281582165470132832845239298495716157653665765604541867020265820124113009807723016500817657151841712736916620044641096130977366011441559656953383353546515177204641859061950099277808112813189313660725086169764907712953922114496356232957553979530167658894567765515049631442523064278631897104890701365927666505954899736362737413107630615924273744785224934811854950490661072053960083512565081071367463065390889683110369684625418478070477602132544360278266917805018790532148467464540096123992357080097311631388658117522233421891415586180762499625586460609669893772958861497197141223113687220037234468546852846554700108459948300634043366107496531085396819052154274470858909347628190873209435441628552677613015995552891046163227134499379741931952165430352615628468595769056312007147793020889050015295365659555639760723466990807222566253069151799509391033343531994087821543720662646286667111790997875661392834726764489550814436573433598154192295031487929377602623550364387061841222940526232459228758094916883289941183051459339895935596603383994395561794306494453332181338225823721818849094717516503178733429943360366741355652896079438977766391493493033350890824904292400996854416255546070990756412313584666536503631939167912341748505861185773389740983129595418700023111892603362514272292868800210822909436391235085367783365155601908902172956855723368950365235236035196515343291459748737282812689209160182595399902270107556166604439468165831315615731204154745599108079076645493204674053016010797031619384447727819987590776588152268701735510208636992153846890047159512010824980265640974172068287535033924469044069383992286163660732137023345679547110364797398586743711199406646237467367503843981118596655734236020592382161226653701661081271181645378490185514474832983199011524733228513212738405348847674313873807328730917140618596069111817878119013417452908094073935793522908621819376648065109864676411096578735271632198645741163315592032723217780819983736172813771228525567264717833610381258909126837637127984765521914017025536831147934080876551897349359996284115451667562489149074389847374339373020189105150081214825820275670815072447344997303755551715554011509725107453636808530023429331774538397831732573418737724644117677537185926062817274083875455944517436866078354475372338571484183315523644121187876142918747085584648503895541166604850926258955953010262594012265565469219485894600683125903843126163868455245886955548922778047990305695153604354566441945468631378401444419307090740675921055348856542809922540765985378504597088704561309128076241227475750382314103513148625990139033557820590292539504658900573344642879371234537108758532593076101357889463052409328057929629205785920762626417586600044325802400620303271135258083655184624821737654447930208458469612999005285136868298909993757050993969830585887607140760690343085117705559481033881752899906074553374765825463038086572897306214132402656517741296302326520083221017675452888217918445922039617505940777767544609754832811918983717179736112577911174005134368388051352620360243824501257637142161328227957498814004128319157231895709950101190588213276656830206231896814967916319015397817972174834549845018244172324592996065258616136474953863571332267208706227494765400996685001291067102700038745699995144541640220433879855423935215136316340434935173362408591787047124096779041136405025127076511113430322667513220121475605911455741670255115689810552651428530041186622433353632508074027477962569166543986421126465347508904060157828748113216474377205671650278980008041458791420389978372010135781603944066384765839623643788272352257194245220514504308852290722598293430539096734016640880418369439678243082278663845759599657603814347383566340762793726424360555459928968042366152519864298245552481799049760907832885344396590725204775603758323331798397752102356574186747961138850535956195072985364462673359275224409514181738382752192185421635526786529032767271625997643147429890574377685283058246934196903983180069412292032418728828168203752297099244742422963418134244554233146199076714044949840329252158059672099556398899803748308630141282882424272643438162358899556206840438073991771194688275351061669312300661684925005770838159842622161862161116046769677296350416235061860088247574677423105872449719990289093227892265552820052639524251093879698179307360532006704308829912605437923105342186248223944411956954084311254670498531738177716837829300124215092948563426081178809367967802614629602212496071305608334787938662417947099549320567438878881481429794610960533408571012064240248560163176985612580263553931044764763257185656849062333548847025330893669563621030217131829310057772678849729978418328060392565440679230533411853039464743955127043473075052564510165719991525353864843504688089183768028513556033479254322713017723846337465385863872228960745250392997250810287587811886222251075580809710617283087224098184789831955976291219109016805797924013200768779034339722611251904478133988669317855653124142832489546976303232400017673874728344615827141153927899511630794439227328331789603003776538053203442403363182583287402310890952209838219585374454631084408284733042939092638271038034098981752074428949208553099431296825896165839028891097321197023009968086357154565215758398957306805052775374331569576622297090410270240937301395478074931234343021945158990768897262202502170746662931572178031250111401633485978914242653322863690948714664716077502402858190182250476165827662393060370883586244930117690319772144355321293171647032224881881344759587860181571500038670766841949048563817072249884056655390299869226839817237546723152938526642730418775374160815403776110530101471829264135121236981268745155476462969406408399173311610915178936519426558255059288737717493761302635044885070220671760267933842832304975017050853328257474819562029507863703980829650694409106308072236941167299904314585300213132178400073065862756582798372691077871820619244392128720719984114399528258915646219361956937308019621157473999317667154513497731979996605387203447776694927369255377223535124002588559593314267278806137390173497911358801950267551186826528551459035227240199031987497075201975711583492713744395960838093410550555681024361474059557905956509087010836586618990953536536908359675995253112587968832829794561561454205921511635897421963976670082695910703045931759411446907382252038231717936537244199468917812055831757809381209757368911340782050675141872356812296999408762135966900353976149084514468150442491465193967582146586063638032541163193229915121848517413499857803883545504268665225538598729145161989845869605150654899018825352700537871703138410950940596318763246475044920944515316466154537165480361285008084627946279407873550951636777854034611640831395532223065976265371945464626180316315790862844155449809405917709963095899796384347852258861688144355486484574504260651340685980790026341837120640264068779109597706895371022468873249647295696978757550384154109764090680881873705128946249794302221787919572967051892987510638133372317612106883742817658151516600764299237447793277287647356100875005493943467313431489896943251580293024442411430496735933346150509789916120821002177397519007442115385988982343615320630086107895858207009232491559438743370682387783967034407905369786486795098531497742031671601504422936124077398807230404860766619476752630489876060169314569461294799381160403949780205910599774436857712285018587586046315842360680582260360390929628975648957546307024376985377439280297282945379655517390061650929675505615436773007944028997890312058365308282328597862532898724212922225192070097195891582559776404992771365987799323373659518269792566647059399919801679349246151420353462251201392701427882905540777981605642489454911966510899152937860709134944391998429002227985355711132463754398650292908893994870018653654292465683045817331850102825762757254524798758815352686767531112197847559386492320281689468152903368078372573691640734574790887764031772300490024065489419147829353241271992960128322764482510165125863702373904272674304744898465467748769218755787070251800590427554114064259342667318243804163935739175476685934404685982601673224802898853043038953434740462933987063829840475423290546851948540707525774399807924264191699985856080406384467838449400656785344059618618570797461452151287391171171684336507855313446567459572655105091282403089425349391846048558123462858638138262951833474680168047955592458069650765037139228388058439500433039673464543849810501384896631652758702730231424891455015443239936574746141834960790273170408202573105112957057028542994428329275848974952994626800288804787375990439553462565666379841290510525653971186359756658041308963233423379540263343370658088449918581963843110519164925373039133093193274284998201409921035066729453865741048342361998667722499276758854448884520228292823092113691575704145945521126586851322425385377079263682502126517875676597771092291734776686439958084985815808342864512065895118416402190754524948557642615680433470956222416557677257668648330067354792328111083855195418934969282882355180781156946678376753835629190454521353135308711910183468930922601297605907051362089244583848672616210736721998036242431303644479553509843511127577623122017267024975245883541689933931135497072082346994324991047814367427651514992321156401162319565468555519388951248425149757020565983493906951165279683632327455434465317567504997309152702099927469314306443176528050371435842078302175713066674722244729166322439632164465528442724946315642183533107970255692035657804570614187790288176485047640303401611082588262199283975505193136993859092413175134707891691650959446287736988065012984840225682085636183776325175586966086661441813267170345420744876081313108763407325113112226786454340533770367116470149237639578404229851360283430824503226045018910957499203873378545777343757703114548789386800961658032437075008333783551941507336150977163424892474521133508853743953097858852618152257156236438163490833240678321636467422389087264381983527878511721158662071748775118938759320654815227942576146800538800091521403133928867673098086212944395216951919425412766350684546184170181216760439712137141770985742518708629088247753980019343062733008008997572036172576209404029667706099956071807322707408443036543548730552004515635666420686464660428247529704383549299514250841151030491232422640847913233016060107561048965865899621846631711243831009468465345720726391087072645615764853764537445697933953958710086054086450385648898749142258000030996079260155894592948809504403802268446276356154706578418889404498148862254619916634978103891579768077965301145626963105817563260218436080827154335381801796940568792623702693248402046130442918987019429796816666742515889330396989209116168008708684536304161884103604783079940379371700757103826918051059082406439000693297068674308557794079234867345854835613614264243659986958301927449330125415935654169790659347997318551367796275430188985836332840631958748353722451889106788647916781478035497335442467871613752912963582342675166504985660975226822000316616434892322312795926396208293640460437543403879774648527482669106740810387468563963422768195752252363403718836060540867948183212718385310368357068892932794379932129303417501990987160395066158219357281371515553129899739159032119992114315736699030284851538963956904373245814358186365440119127180846733353644011549253500040951100994555788089179301923369922023494191359681431983220329410149525140684180048328613158400903862856772983715116493323059482880319018312534917754021698574380195335504595549477403375744287357308377814841563186593141320608539067966801155105726901424820549033591053270165469501669777852869748428941311037877952788064108939933517563903754768129486015919448665174959779001053060883851029054735116939607008827652489736289029026346906066802413525928701673631092035210820119184044899804151703787675293738780802363800586875463355460925255238701943409116614787798476754528885897772377693683901838046128318515123733458882545859186735465524868420921995880443539851114523969053695119002855147512751653048590768314820123434642788140247683735525615479141985742515317197376602510384304201344261490251740008781137607935370516970454855552366791221000603279118001650268045312996145095990124702578804709677605183408773009396400266021129074318844790494305970672471121673010854148901216159636540226116503514456185586735130348407749623472160602300440494430071475931000316146180521575317041029402758616426163980864498045181540419756938182411053415933361960517408812368252157867101019139781576293499448056301495743624545248506009989530992937823496164448862023653769305706102998765201534474836316367194840788991727895745591470452669786180630502138329653869110922351283165531589871340743581035870702943936586632510214867704620337297117899801048475690998388183199309499823851577632428471141184065797646242031664113522689871354410942421128671655371983418952619077780631707559659735719333886361578653717876911995376843090736972778287765540323201898845005541777099440080171180039993516326594270143967801463465093064372257574394073839176137689388771132150833276876555731354836656145507090111764929342666809450334767449289638093895137647259715907975035459218396547966985010997586481438987347383902594972098220005301666772992395602780154200429028872972152464602017783312164713605359184411093969807704700388046353650221603313610675078830612947689520114941369873692102992669143015212486113666360007986052643413406780554513860552772913062945923406046225038045817108894914752638358058345747383732013480649788436343413966328891451975782178515643924216029129133657556035603632933114631160436469584999235821911851034390541754208274123999663365895001639499101844458814235365936476769960205090816413394697585025130343487436975588812052097852450549436811005356350844675654383170032753776549016122807188663753747674914697492014822963286439490504120542076029881836845788731419529245750645333771665821794850574651120605716173989815284623048053765708375898893351050243598999606021348674143095454871282020896882936429284943743891474315736208196546133680026101340462441488079694806084431364374762819545927175178835251483571043561856932752721207908324751344145998878350984944953220092142736719129593493878826892077013820261793396007229333817853809188035163383455199488852108551623387560869604492392107509119953634634515565824164993701177571023957589861460140703224839242528172938791035557076762368118366005086838584496347465776139608384999021544272678219503328443636745598338113720067726914454305036283999600999165732651600424217398182923555609987923911724704125675046142510290899742544031845474249944238520019541348616815573857737535355331777786834075758487092461261670136482795454639358448648896434058164663401212235465044756116052596090001812229635528235261629683939131747030342382313653130813898986327682980578818884992191747439810130245504299154946530107578641594325996314709976417039875815458776130309344567897770366220217906136303546301948298356153476916404182098367622577471295000652195429050067556360237008272953086604252056942724078293177359976550729800386975562962406260568908454591492453143075840383121791757973672507119098258837981308549810136563763278058648527600900484864161061319170833891318086595965033517846764423181410394379915074639305914327963130100828588301157115199212821590481272240239500141534087746086594573745212486756168900680568339640242838210373941313922624945396920580129867924887283796169318096511596455136422917692776469700090427428327194821029964649112157617158818381611050844284359141632657102222156119237327025975534265505220509598467313588734187196663264147365507929838035437260229598470090329497518560576507700704529716086127408842526552620538854987071305491490973908192023346814820276401709009141263357297790805181108476135906880379427982331439944730597541193133468337686562421266994183916005811029799717689611320662716908881790470506045508342213983273599913237518453749347176337979040715583474696598274853025109248152433688790414160422988089715378416986868995928882522705345887052626584997551132377338533980983096861085556673656886226825866616075915308736673534389721782904477854528253145290837140716319034740281231365921838067204310216444175865746509991730555123983009287313369318533145599900143068806171924456173622635017052498517541661532860117494169429771330641986069511584566011617220398910466134436494452620602587615028171553585356997421440064646508033134199721873330926325005330074831162740145860364822477919752615070716692535289447834357321484697705386081958016761815946221164928392465388017800107665163788426164939045314196450962102941235268431928922239695097240506634825927566320893357810750063098756920840009579198985356143274127314011704968169066675072908606039209039477733572313019803002564553555341642216630768397412008845205490450093516802266561547423864529684478350098332937743373981683056816347045812512063255150107670448903129887924866453560074044644175672422533740351490998070226864353768312325603396548917579901054721315585847376216805781415529851551454439410051506732747800292162340996988540386593925417822125403133918108425681092459308642178872839132880618572976970233136687708751648333566977188271811249602756704196047656699803307308353197566632718324310259441712610023607965995414294038800802595822150303507466997865604133602769247303590792546670040396593069990753429367312633763296886091883570813593228631358984925642772513360275368226238346863194751012847901069497617081481808322071587870883138826818252267959279208724035355651804909997639259449411905458430637129491008405611436537826709994040334671562579056238322992918521300304520164675896617605477115678525672701149228778152623144003445086911550941638435114327071510020880417459049376090327218181947376333300476984096840882878614472005314297398350000414373364567404188805548649669379346351160874936937891982630359610901780184626092857072533437649154990423728377878485081372462967885148222346713679888922251046402029396506783758222711495974403186667339858229835608976044289856392313966350474581635911176956240995671774022634115132640724257341688591297602773059121268799654835065937901632833175943043181767688253043674143866390543930764884218113254973535517962952357071973135524777500953748819569767690415305822329696621887183237189963636272556851535682363336127347316163430973828664748072690540052498469695576409614216067804035476411102637566741860049439890304334351452288195713357988617901513309000960025430402355368651862589234988764077133557171461224846170056154059534541354503421947868885177622078730978087810247447216385982932201720103052453792503712253316278180230648968073105416696750435395157540505088590097155646646192483357784320396682131957937560473196523964370845137818914086898131036435394711976072253440044294441271708930409565165799809009889827648888698179596882246341350032857802501285014624343479212510444482542171543360967323250671008558508564109927103401162889831663451427904125505062893960090602732652848222555250024614776190727472477220422897607544114422043664816315760161794445264142187537164474865711753295766580904831939351421883930012139167998195914249690613831921591176208986060087227779835531097444899569320056531920950585486421615848334113291825413616765787941273206415066040271679901354893719383735943167930038941603233036009116031650758548266351441115985904742905892096600841101588917396716544028732081826570979944385251078658656656321036695659377982226485254271875290725088918409771940476897255612672034015671141326601410121527263171359742066833814266806854504729109302719558424840315831641872138101556709459087115862416282328610334723361915125985855990023384742063427417075554057879420489572336459747158126851724556555851210870872167251558349262701477980607055011559435517662502845235550172694683722682600136549306140396344794908332476175412466748181651930304790997611072050976972668956745208345392405613037372176365138396489432635011916089910336756441993380614211083090825212057933394200423991006063930701823444679506988308209842475319145985673282044143015953288968137503141540147728580838678343327584027560160092239157242041892189128624110057262714529883103552983228385200439683543990485313580318811848934226348063946635829872407571258926979865852340458758954380502623710777685126750432476406362203024287107197687034093493675812801555243491202244889492329724394599206105305845911097942297035301929955870381486295212669936979831159793999811628953698429779445391832493099228710057812752354214586578643189393372736855078355533393722279351114976890569432630432176745753343034443330040341683893719980786589193079081413965578004315890019610779902277739147490311292187614257836381845535878557313876708757241602619346743056906167854343976828653583635684913102539790191378299659783997097197151164346375873220448947663337590880507841831733779350326232942386480050037768605897791380123490878715573174436222700370240937789508203465221478302992922120230817958471293984498799979622308369292826962991483533899875414742742410494697041588544845542159418663994528956194235699848941593502905151824851439529010951732965466333514904186856096452281432415859418287607401569171479651740210099378548035546346908102201014559991072811479362489810617139178122337208149967452264236840534517345920760272471581902608690579121212807957937515238177981237002266503124364339415343769377010025116324704065608716323567829352602779890300282848665444890686677823174790445919175152317294672186810172985258235597886763299021736408879704840474201109833517295802497712214822228669467856549488974451065776028266517808981582805345178575856551832636170815667334077767842637514485765405986192272416042785482026006581762781692021163834931350610720367423680119989046555150328836524726362431901508010702054537919037095325886789083223731619710989682651774445715904393683358602777605546330224191109663357123371413198200275108624576681796895960312312955342418684282180369675286883271141305000317124819734196365082201638223345980233749940442837091562481953470920624187170950324520774674278016142143962809230158065280438845510264326378968149287121486348018189000753794995754135997280233822654521488846993451480531788366849693669412437202220440436644484894860335607234736287293544891177326161247386156295247165253025858719368306989421789854398201859532612050230562822228310735154420230675021269620795398870118372954950027117830212854707965367836401068150073775602019824248291002892912552257097967413245438246664459628415117267278039227251716127568185848016496152152276662892785420236717673576225844901746215492027412617147410045539774831751389958349493773867845388370676099590721755281014431866540141174015690756837240510759190427662399103741696021628039298998360298785879438789526646099721830194957559659339013723576502237912112400774339378018707140603433786499773346104771798806341166722451165566718328150821475348340959298797583235998707720881271213980942871134022766245283496066720171060350994637964371307890810611241173189763709879197969083504069130770737811804372610413927257493906742997070618999115759403350769202263377346193827888253785914819169518856333066672467979606287232466187178946883945953717441785655356576699734954136144547909887218981796595037422659675072798950031464199694298161093037140323006643927663964019738512890827826542609109413434983147840868152841155062322240653707124290916206602161951402897659474574964886365207616105604284782088876970685670606704902397187939071451328772963537363534577518680340724693058775368845998574036911676193767296314765985990157928903648872906501132108887956808294261268531903947019826461702388294349721048411837924944546303089101925297213222176183240529027331299886757065497104015637528855917493837065058421261872068395260864626865025619617835813606187130398003950693415786765516601105980893446264621304306774464435441010904672864297654599681470240218953523189553759157187111535253166456289597838151070819908311372252096347401481201082538949323245220592512208181837912461457545654574338345021700457692493365542791469329803387437518549641393057834523436971401732346777284388264885588762420523951870259329711885148571465575649941206709285428424916371093825391337553549698801064159795310399976469772222337537306090892627619491653918708456778967201115314019341170276003407868915983449685179539096706586065612042170071917187060027447967140370111205053475275608680191689883875717668244542000345903294510106228326791285691077623064468208495889603357191438448312687412604904439808993657594369878521166393183289717859903746804668738377198529607041024341805436354542172393821279231526932522908710901581486199369945913074895215027229690725036409355818497930884749362448740610387265554847717209381318733953397387581591305047585267802910134550722544144618606219281937325368418768386389846084889909860398731955236035650166214422686639399019960853859847816194900999538875372255477158894404300571080139597301178231915822752108427448088586662272081352543466806455150672678363879381723164147496967331118309538948766341763994075485836379948649621356147011372069754281600937285419654338060619285261947316958916487233800411962099561219384381189943207493930811914433817085007474912494242300914182926692965136498518646930246710784679464716493711305151702422055531013530076168734448001180434740089945518650037892602379729003496424908151460854214234922608421187403381356057212589860181622020089255063712159127790794133717513670848473187753997225420362224192988820421102939588880951563624837366314291667970119444700922817809514611884124672241921831783890530464955895505009718301195902310537064881593961249973715095899704147057906123435156491461053221087553648730351844128585763020303387582362744987173596172818415120823055461158541989311244029550712905203011333229954965230379830935953420895939978835339089949396975859133424441135400618158401710297244501982403602595881693853949125089749163729723221893228861936807148698577641203515905761408002943093384786928716309702981325654057904296692840623720600596218803872106402289700034675956598196516846599697490866244768676070388139840370393952432226449328265027817280265137459602974917667835277098660366426664838668170577061674894531562841832680336626880257947092555066677230143879610052080040068362643069448238353825764064389502712574684136432014978683659798790509321800675300724855854215743461575048018774149794961554230031372063167778541269991501636083863623404138437510287180799354519371325756929453661655547610804865909464470933880715127165304430735413297937813508385979662046893593214001762159404209564220779758936056147392894034573476850325460944248099278615165650397574707583350138625771405367177498262899512301888683927552089001268147921726071362233004763968918967199066768862213220967556561629281848455825311357319397946184074025902831762751912738083929255176318353808771661759354674496293993314218907564774129006438209365151369854365979440831051131063345976434797655096818988724422412295117338038065248334512850802829007024433947330656938478998937732699641426910273793382006075798241745456467379024769609790243754679959305594052165342531308119240694427405962999921123519742873190225061202420367121049817564319137828468210396641249025573995143947677459806563960162057315862485790510806395615146336279236277061609823463732872950129002103485449362258983101679083739953763085675653813094337014022633166027606540143246601159725397617972408933351292038237816945714461573897304796610207475350648913859562456451528527301660011335107322097244329517377252234458851105950038233355255142919312376077339347371975462132315374056733108337382579155202615790659230351820801592402786194548820570814475992420173227994870960117534462715367493761092103292851542649190226814967803406089770116031895663553999068099704022852653960864684312263698283862569342848014431266300285214817806825631179705561322648408464318163599149196817620700274728531788026260514890965774822885906378103193225969828200284569171610756869765618139701349621385177804916927945245252910656555530986834517206159644154502664304656879486948911515824170233632354902920174845504497037324089536906678319753199064996940889642228633089126906786378185538593829911474226966304426804154992345434792965304583200069416078811911576234798760165485653652442428271571376735349857084981045070685909053402333220350383120826823174397980337041219713434654790223119119059831345663020258260141034236654508971681488029048423594098702419517519101316387810774163440931855401938971464141326404607575133001984987990868580869708515155315137953187183967405438503493326699047295897704144899155487799165452161424782407685927116319843300775675449427790310051736409093652951919008057353022072684062877758887241426843050689580731518391848540938932163468433684847096837702666196535396983437570396031234174951820214691196130713594249907042247462804820489290328250453247231023966977375208941444795930696538579081171687438015302985482799835397244532992116025738766093488149448839174427622708044423149144476766924270665941898439289380003802438327004250866213551847558816986626754227146821208414756091575234895149680690824900760259919722585902676561905566226454263414560214594976544473531188513453268332295578531908094300674111830274422711462948433089740124149210522859645400797357619640962273997849150031953293624498671427033618591008312284664003061343994079715294802428543860402440525706549839903660175392291464877067853698697136932021511164637197154394359378515642046028302263594163690006028275598653540564480142200734684409295762659078109105042017875684481827774110557683743691710301834081657203904373478215487920022974605745653409740804459051942385026537410439733348947246732935854974490131620243473548669113346055433893692974133164049597259961289732223557571556686192838211277177180593244158495680910810943878044567653568533296676973874802503128512431901944650367838622799294393073162907883497538509756789599320224224949444371442304851559769432694095930547035615128868924208417912435329405139869451762995155725350622254768601114817059086954958120833422931987200789193805071683868925295610179461509165036076157015225532388634338784253485414147057574980264353562899319452081115918432804311348545637402268869635868091009406944732064993340422381489981263204812762799810772301710009444615253774225996937471791903885817406716191762960142700417547702862132920122630503477605885067914302875042131094422786363347211624151083653684746933483804569662552654200757701550489415936029627004048964689430256145253140341110649246125094814119997644169524312220968925210168713830967245480687585309594383014632353583187771823104842118142104209364420308290058333925562047447243493736102294250750825448105694502854986742691879250673905393009389003723882193750038585745532539796303733478036033582842540076588318873501691487114355847410403505746076603122403356750017241464292620384964456508548909733264963407854395971846490136439399843638312417941922229364862626299059024411156636213998666859772180730953311515591009371178758195729346220559257071698283654431152485432229180488067930955010482919550831943294921940234588321370423629157370393949394250887513237083541037056441698286735075193598787793194941017875667162872784503634024988175052396909154284816282961131129933162976317153041827647208991796981407214871871899409299735822664270771488077796133786938075023803569912051531750139037279515981160773068614796483175484094625140643971431737167073119548693843483000167193576986566651456339331082415340930446739406537425029170860065321738316762804941915601273753024352044701245472347241350525317437583631886983580358123038654577643091247546458156856075913289781404153977585962807512033290726089386546300113316098012638774677197979505540040402350984122271336857863897532791145921391218328520684885647019348625097438171775674762147755908130171181313278487538405729087644139052798798465303755870928278434207164453193492054942629518974807217935090866084859319332674117303071928581094503857437942088176922614972686339006247889609936771075776317707142136538196226784339661320431724053748805299164768006127333852640178137987746541441404688834822704210751152290415366927320813916137136630483002009647348768305629161510351985968937592131090809722301081709185716595589039855173046736430651759565073694069478526093668321317816298564841935267940272511297169069306621114785556844852219077219562293128877303198875967462067178846253842287587961751854231875680922329260553197668214072756424665658160235382836376901083102546509510273305816130297634647458623661290745957424380146763586885082104016075188342439278579075510569371301538071598190438054363060871998972941588844465424111478220498502971338236663928034597949032941415886340799152755911066873989033780191387470803031765344225665678425326851498592060655976036246901290003628874814511335996720465538311082006703974076493158852493377738491271790378910904185522778118628853094491409416807762283464692581076234661336899225965514870056338526454324945108990855530735709118652559950165720281001054255661497894190094639303251645346333811536578388054389323108644664455454484335627310461450746921861398422698407082115203602008650972213414512449191469975912937769913573891822197934380342911708661168832915568944826705084177517100588390388851113557655461467599259408074157297761712805197884098043976121714784023050403797888261709934038826171935250349336753534755879002469125409806314918892297771666815366957940967031619529774518626321080004609720948108126386101970742655781248054212013201352667221722575653158289205589823793551352856271843178219056772386280798188277307627386434864764260223280696632834728346427057175114543072918905009351926933068142791146862157005977176622109181972518192339136912654283257627298099934245450872214567671374965410026094967739759973259584711640438065626160572981607919485343516056286988417917237323008364589553203511386826128806691869323748643343371758706914174900693172004658968080505569678240123725277842635608183935127086085806524793597319360964371628839855887721627678174050161994942786715701880172538973661297656652670955842422131583760860036855433580085886822908616178043992257111867457876405053033089715452985220378320044925203514682956414418915151129780662597807490959202866096470481593523986199550860285368103937073857698992835865528596667620151228820569318133244393172745875890396471130526955899848705581866349038170198635092004056486566235072669652459408405741056238398288711117566703560491240640167321823138366017604106442350648064405262685501145350340891428741845173126020421191414436213170066154436484292054976765769901607420567702466609194677261265331205233013022250776983213087434767713706076515609743420693734248599691910094495529616075971010467043850466153404694889741791217880269768878021692646324393396839817243355771249471147483288177836530084816450590148001219292242104744014865941845175036440516118316734785019268603324668364078472035077605506734984141309612878520279607852964306121921309952592629279862314502982749907103691109827714170328460878786768019410249402009084506683484494865833818175022013507439183048721925978028123524569256369458128332232763961051474710047541789594666973701180057558706528640711356209366561024607689254088078984438329970065966062299409365692953957978106818329474613180498390854279816202359540431515563616592905497580330753414379625695126972536456066704574678836801005915669251843067088162493296061372608329872922526542613794589043688225643640256772695387333362309395961589775967977705740970491687811568397772807421250959573169804173473843396560235005774808667506980192965849808994889617469972403843645642512473185235828687592863548824660177967487837448766328635165715700018232224494129307621501716525892574476919118929712523678596339960629610716019203119254559442877999107585397393318519456842495956162408787040030561104135687093661110476545616073861814795422443912289856671011836934862720957393739399844531691094786233016113698356244991803000939855894284664123018333297292015997920288180966565874391975015551224033306148541067612012444335429947834022603082999060472057180368168568700345829179023195034973021778191844608332695884144580048420896420685437358146639325125679665223887252435842436361616295227545630238170098718082282378309574277010781304335667156708313061420546856987820871208516232697231416892208219399331940696847136611974712338441109378132454159854127702576389735370008070946957234993578479797570048958225453050971221328527444918768429518623701725255077810134764404976791322388516261450212806699262030302805925144569611240916835206290300120259385977368370535441577430488266158939408759063721381483535796258043880421281522580459257673772823750101246005986974374210311911245059091840656142364447981084826313444147476198272451447076689278079736875217109839966610440522527587252144507749937081719678233203198248975238351960964963476003884142458457324129483220652364070788055665599287785868004636157168917051248347230249440246231551253057862867737956598139533830330285040501393818841496853996493831647964925208497023767499171669198284637616687343331832452975229665899749811522862906003636646047285102665455727660478487409217704714723247775905133567387813484345698739827931995267850419177372063904734422165987158718565923706879096730746709706122896504962805780527597657676339618157287409522778125364169833598130166902689585766321905367084940946053729579819606748962181441899886809880755888289554871127082812675591670883338000084614497105152786320062287494914827683133679573903679886927322751236237611079412868442150589975726341076580425734991653341299041400379244500575776386896531467919292010543764350733513269213888749620539344391503940010290870838877204802599051355872398302772308061492365656145132999288312506182787795411316897405741286683490886265456225193364893777765431926962886683274956061554529993127885272532983195844760154387209241069779274757748560236613682740256051281611536587884483254403809350067204603801163336438487187484558966801065209044321581314125438843841577405662096577261165698292808492161372257714106407337430076188928591390461609190784291848308109809937502537981303931263599370671807033914144483819351568680586974776121028738476923613372857656122654871270700918583933746480733024722327597796701804501839343471577754154653919723364664845146363360863965895082926678485920519391732057097926801691907349364328384816967316067383899925077580947787559416055351309595096021917261302763533326141819717996356325209629634982875313479968620914416061942217969531110486211888457545939177627761961307868477543268408570170351372616032071094244223869010818913190571655967670057535501917410968187263300898521441253050923211633192813034226444412252493378995494699916869654358417173211630811672584204369240649062334753443835702376883392407808052667512307802760910269861743660706236511811430014709465666203043552688075337041001997594958721447313467582898220504995540053190507937246602121731326035357756733203725698800652361266153922936401277980901228502141537017598696812770572550422179172000711549630606631060556608729716719520974322646255373226716150617228059162092140280465269879848822688345686462978879876323695849483273694893802350966562978654104094533653524205169668177179851143390873510007217316894627475210939094609589893718567785407349845110396708701255267726723877712684315203025038914854720631631913711849510446875776821060812470919981735661793778108288740449933464728459588663830093237886596181364974593236905309017969158308333848585462106539657339773273608931003850851862106920090952934584222206091620132235279733677356416374722845201734995783333528037347573510174045110399138965768291638297635538172910142521529269672683606968323219800341611758149736553032223782227050549418503020952921817919403349789024414975712403493682629280284706174988247837786774365555582157202709417785849460151680997013593914198042671377784293454660053384625557300913909959195156041676973017800755597332529005788158931401957616835335955893832714904398689173856179768087333807798149504076508100785377120407239147892829309264678629454633721635890118291970600275469661949385037359350960455479302891037934873240135826193791766348019360273160627860347482666817542057616816222654652132854882331082186483333457878261687316920097415231125200568023941397106629454156900710050527540199539708790957305379731005286938304784812738367860160078783571515562022716001587673030027127001823899634758827354916860151208914016922558721448685488743351572013045875577619698627473947897361321145095263038928831591189536730814399680606379508263598755434599176317199402915907863768259908591328906615781462211580319601014921873438412411830349382222576574711672947010230927390802626142875317768080938112968061494583869294750271312650406268985650951415059386552121830396647656983279596121338167654236949492896429496469597607587400029441825471935391126409241290703500426133464453633821832462052750104768800585138546076031627421243664525164863860838510202674963845921055451435694750669685501410347888212594262623745412202554919578354443071001315372614676398107650200196427734079791399199054140274961310152264629237651213827636022687107971648642707594976907242776725509401042412078523616813848463337170449566124575572713961290606340932352032216929606367113656599973611721887275344310647089151917291221475707571321545295643840397094958399467813919735799888284938679815465322055757840739710893416041247778850858504752301457128504774246422408516226056903315890714242413641437223049290628023931073597967517745049710264717604732556186702684164849974242088295170958640448976852884516396441876826140720970802436291412266905835880080855335004060861863282711902369193550082411535823434109655093033339731348074638308739030740531504552999058235459263580774628163038593871220259845628224761844349397690203617091312280976621663335125042582801543998178845529746213126800651333450058969542779224220948376114950713887311933463149480859836545100804784156932892154127700491933779633152970033630755546076731948116200165815355338855597415170413172727623994529482548066181636784954322065244115290490058504035354652888015926316709084375792973702597373904353383597860588180309618677575673162714381094851397187148288460177466474293304460780845260353627289472466551052083885547549591393643813252479378764940426982006947403390991625237843920921655951363628786375028204221769771446439801336591706826581812144386395177503294268620044660394379830560879869348934824905203190094935800343578573359532975883220208256295670902105835055238590261944321612487693584553913067883650080351525662529528915152679190654534229390547652276217898947307760145700923347526026732089628959757383779146773531891971023929409647395373604630120472009131286916826161162300427799306208698821816903545687839892823225770810500713544166100942482092280805933431048775460321107086024504615151863993826713306011675049689503425327372727255829719952319239653076450556876580521748238104582854733866875547581495034295871253986694456805365384583050547222927455876159429266716331009295991475905110592184837946788956424434592003847926214573459839355191785043645618782398550817065081319363242476404062366711341317120905096589333288224208040305133881037395179083999708546440009188805206209849124877115951225506483582187621875818186634894462357125456700561174323499741398914812405581916574474558133096938665813187121756967425830729632137813275458418622997627690250642372715360783087807400081117193057219061602463256828922383988186587265886668988056735713463159444066855450701780624496555510734656552999952424133190748764807110799401666896901538740263308264456843064958878168868520064794438391615232809676708058918375450210210894101320513039009253945453594776282138836574644156062660779609613176858743374185915676482124495065084145918162902462826954772569988965062664735763375825180173340875670686284429129290360272374209922917295011008776129696010931973544020091246960362373862593589389714595053439620539547235348547754865476691639556719693125044527117886550948150658133286914690758163158444295268245733362298839277194978089698406303086574467146716725619252112546247773851327713614173224520263588437714999934069887983886835910744320244728359678341189827368550498677086147131345460743028539225877088907549373137662600873132209327909117368891985206734540738912802362538628574139878007202498177754880248324312499495702096378210558713871706055274325377742618969276929838933876934891298220105591572522803284633580780489823854894698318779752466900493485256415371797925388060836017741482215731511813744214295892222122977457926176795621687906972250194507835551723955138203952926242753772220418361673280756103428121926181830923390891574054845018699078924536235982893694782225965934009650564644359446200586465657635495700549213966451988470417778948439162827454338449866342783176116512009836745862819768911651637035683387815920990024119708646067198536519570561250629727621917290206447900077269190321601459151780144795962407359845335361513849211760859949774037028452813805045506971857495421576708671167050147327539159217236942150703034146763501012910165276121712519096127370991093252821326348005708021858918772969546713816487537735661694280290815330525733922327801747923464499077997745156878689700360541765679751546865004186070774163709999425403307701390594799513638916473115410080495016276978520810433231559200138845374114749283851950708139048056127866898077011717206742886230390035385054525949707259954291881711712374970459497434240852649948764274615182996285288509971677241186744990672516465705537257501897135838831127366434107771325117298853720792391654894823648949168101045264674414149330372407617761698850662603752617668522016460415524697721082036803699153696849618223842484709812895131308850517598209277682945950673209313649160328068304963072438363545811003047581107689443210803707885108267888758419296465117005654208019117426413189178117720239870922179206681824553794711796939532781334815631596504217735198644654896086383568302899392284893774535140451784905851342825527480448054324971699866971561963125884439263037081881524291208887516821522887596447469613910940842132061994425508374619618016313497720452794699220838971895810673165479342927732780969200891197610176259478004338801110837177240335981212557390379124840901183449189456616730742486148888591546819783617575264833739232112030589518100224509373354240250822888829784991846601021662174858282830128414400394791633689834397893195463791960519898316041157879120452409105003342639181074264684382419618845937233825531633102969276060765539986888843710843729830103629184701480539428319951442615498524609938284839630702316582218968491587326263272896060047286801309123375478055827185917178259970211997931831369062025745964875867808031053925454738619169458048780091854764151283440155188942170095846729483076176673086061533713639471159806941938300312536476505440369539062650901787318673134380861673871853262602429088420723864060669091816964506577607619242233070767830965822501815396516156563930392957018522616989818078408135165894040357768700946349437936521072953037891631655266686131008842988608987051953581035679075656283321307472296465222239404241285440019689420519646549235695646387082173662687126261884713510341253740811794468563643638729715626023979343205856039520202746722912156665168243534314134578560099513609925612953936047298766267358057547800177227403112511790539052670979796972767047598998852327263329158511248398326312138927868497701296615867983694185060452283312496695477671644879386417542068555531255397506400664297432210762952089268693592170336552880118664654987406540791098528717240253455593029365339402841671391399894481119989824029043441313436263711243516554290992527662920266101647998646155439519897724029494030048682030896768523486994050234205744161271624291380560476928553389723618461731005860626943892912812665400614878427508173960516229522938537718733100466652831581268439560099710993598884012484046041794755388292967684588258118897680238838672324355981040577012568171960997175598681569389649943865047406904278832239233113271659388928791162416575185338879418188205372221626454855712217815941507462454394373681379786230238853601199362677195146935061921855661123288064706846464931353098853254853797166340433270096227231596996208534467919158038137030538849152636905164296826578075993379840748601077833403718164910583355064395521238161379906811629529264616046647974765599740217574030462799086167688751277209155639678853689133208683776424710685670144073336967514440486299789669377533946399688772673994201500570284900043207997672906285163574097768927875104633187388606758259951152050337212057686605250990183935521731929171572384416049800164061037616587464237641994070915067282800609798110182576994111317634252904087331905353061954119483622514522064809753149065120914394574809664182538471070295843926579942640890820742879722416116458410372464752072052796681843547543755903441914076010702366503887815571130778523837054163164232297053056824204927784607494480249684582295046155359356961742734793905982174099705947283414096356752317690313079914851993315748791233429494690078646433311914371810526834301904078412170630272333963269952274043789432951361954654964875409097946287231855738702123270704595587668811999891257071884501117126883518843660774813955393954288083829090305939582620971733415830740206945955710161032791719477215463053171619638838109074041971852754970130112312211773095623523439508837608525760595766110419653023784554879994295451420902601342080856307550366790657319285963293311485876109194475679212315969626058694182551760333952225833290624110784489190885477362690549997517971557046630817444684628141891951732793276611817950777556981182125351657685117861700647309590432109063738187566899429544940134979568158109915349545457286944829330804392185181478769787304239918426068181642070008605300369077265562571069644651535218073412487834416819464233869818589452227676199633072134858316683183164295602405166484599748631735054945651566435086326077400717253702814662787292854495938990424198718394289698909196928258184732912422374107949681718600486641733035442072039440561426245570927793136477936595205920292682057233925703304190516591195551625745748705306370272571604762487049096288792506855779384505803816990644845478461673144974986929410117306661235605182752002807386660997848289584624537209798540159562016384126793333234842893119252703823397926438514193203829204026703601007206666077031259561792672547769321245933220864378294867584227875096244196416882011151590178511433775396231117782967355566742427302685421301859255639389060411272606955518160126802524370184016556158601523401219462063547809182087232148115163763495343960251047598126444542668524006201942417437619878089958446924662695349633222096459255377870271652576162303380688146330413634228170546664271786297956040851778068044988165424749227147196355040371554401540169475565396013016254376301133085192923693018008984952634467952523144953957975901999255041660815875833625073785050320741672153190271443979066979272460015463227495923855496654798189693282294266874867248742704244375835288761739430929568252377352333730582464164454104922821334111159272351784760372525113956639432455000983556540729633318122741383596807654052847935386326092482160949902400688266937095855051301017769787419796851740412069044555611072196840824666876304250555779011287254348175801308303602463754801677570516777381712751418413795746940984368457674329737914080579920851194611886222610147037775129578653441275975372279982119681433332093068227422901102856475979087191515078909710604812544720358423004733609216613336598729317827360767336359944876643833303716594131594883435669059737044106197944676917164438368885411308013500479501394568569214907074931968981351686914427558355683254574760801308572110570846122173936735557618650895295407716254266421512613916187718971300922206248230921907699093325161310769585589045333695111749331612051066741782213187712419141599323065345029980712792232436406767990506202343007502669736156441686552910199669462679390910810407508487384116098110012250535735086996315861611953767633300616199270713980045743329924190113199343250749481228349813752066812677898630902489684479001888356249593580547737755796667118087246182256111638476911459815581660583454361574075893700476699399420015235780265853633638418500551368484042481943080577178561275021067610684234608632139929475389143314462152614731628968697561839174395738435431133413118487632764177670074864233324037558144484156232863950644523830355896679451489272002140827457971856844334426100057689287337482117481647732491225992978602269732993854020766777375476755506649872045361937797062110667015783366211788693095685741448877674035267127010931062552215453789077223470555465146596062299101278270926590817438799135502804681897905786754061151370714338273353108194058941253728359578520854240709043026521314023162024711695165718847531609155967268775468278509263856489166681415596218127737602872416222740239120857877755854545221760541519151313881805058644228250895163519570761251942726335357674195178719741695559749630984328996726597412830712722689720263182042684777512490116579666265267153202778010574792978691924996031747871325195905418671935839280117674024445550169416461252482557643308529742498434200021605681859084548719281711310228564964550564795757952395833538780643308150402647830103924183690834371650543178263154322831888451241085363423056166914773610598200350758146051354172208911691711393840943204392382827145089335441492518889253240528967477146538780227678447853052038849042874665090512069226176463078731564335889272908132637526774653330867881102453380571958762156206171500171803573489710296504320047385135902815769877123020251085821438219808786529481408122494820433633686681689491662727591676847433643367964481899193048841616688597981350251764834315209407442678599881265742924490203540298435255852334081073924872187658867512919112918220991490405487560509738027731596799449614952939892256321039058022117005410501160220322665290677276346236393366995913063669328091276986590075368561296039066532371505489564844789200151489649866864110723493303226476104790909725405815565885372026428126816481075901917584282768194949290960903663152440132227830353858835118788060382218181621275791554386119740027314885111241768446690342603162980633808879547777436474174520319313912804847948559166179137642664590372059777133007546423987636253919049136362401868377101812246552940198715302058847504488271610037530079382842491435624646739329707968222164820832663020442266957070794994336084700076010039904955255179033986317588642913311926850175362924408571490057458848325428086433420023475099893704075868101962081582912344745330773852657556596415567638238380809437625018532764019255538385840525360884776333238003147634858871419658752127532212903956727407072252127267931701871454210525468342569360000701848033467677083092592700165144092758415360710482111707251001737047386998846488648034601480989630095505031886727909658686844097503166599594042402233597576896431685873807158618026073898097849487062755112860874255945530394803627218521692511852765944834407647105951896398971862947895691309440093609686546305057470832447665084329042006180944058442564719120728060341006902300206956737152968522132278698155027918472375513822035323463625356991715455499795754539294957332456393145713100080494015929359948858840863099717114740573465295210626555026387777045960078211309956087122091796055862925730415127591352938958483936649755304723432534362623796794620574316194066889392587125476331234959994430983077570679104127850140859840220886490324264273349789154311781561614589443664506645259923702416851925262530346194848290815430025413303376649830389669367552839693635322565670030690182087601349430166633232061236592317086449253464314077338080984167803811234953429674164788612062979444158248040081583907003085917101376753229735586239273309577713782206450818215843347041337109230436499048127431365159909228775353618180573710665361140632982298129492567977860584518838536343695891881409287129296586857364839301876863198534861888245087104762232297935677949813368701463208893593504186201264561868092681722085161921999429797742030268112912683532975342938880814668701628460157064390521229593838191110894012281911598249368294072009610905814536140784937351863645733275145191846459872853758928620945764476567230910337955844937393912736676056151454634228501966388765434664969904153483538802297304734405833300215484027462416263343053708850101933463748070972130185594820164681619196160475076882435768780127798933538739392206172815397808873018472389078935910632352699611077567687659258703371807700694870440524374523291994150823494570600956585133560795857644760964426580218712251888124536237102416704244249868242958673396066757643317088407283137284493119661474324904502451317667211672385394639936952530367210489984699994135408447604263506337099569587022836315085843659030572388960202222970818000247091751881841443729514448373065795626419944386249011045512379795860628128379401110631972931576922451101086519607393541038138376063588557058161154402104323561662538242989874120833334695562973127216304403448162115778623784451114613337200209501414707512723709744886611697638808410576930085878931644094454827922898524255071996786146936907876362254501375498340918419213640209707119308098488779553025446018123516326792275509915027820341543867365207307341250618315242075230077972390545473174045784721022888153774648732409909021564333041312194217589141420587341049438113696055121098037043402374120377406150082698014444162007955095157211923719576844858440967836296049229486553179657714630885804278387187143258012968115756408316037240340731082962286433303786371813680834620875522975907503183984842965654695260516186726436131367360476032346872185629769115796812919563660854834387180046658538700339628577896901465034851181703158730275666754740378659919392966877007478452600407878027648393641597835670095779455576209654425508087786983685680851137365587174544676691604517242380478522432628552526814522946826065966530767903995260719369820508486743328895482609337607970412284120148787949279873184120013552196754007160801598696843941912625037478194353119430658853844658670971840106316705710034392429150453858098529112886443023412765512715394808682843806344112997099424506435270656769494400206850951480559858183669975493314687373055046033851502506838665331929679839042760849623632172403221634448420180280599781346734213247602385148999702461870202775269376414610792707961661561425260565699488750204684513929921270938577297046131722520932483819183263988454416698456646035677082736599470256892162901719277715020079650262901351596084228585294095043542955595381793382332496964902543401361105457547806289833241805193992573232019977486392616335553484954460556151659721539770121579339554787501812417974381491148027812352370660696550225223985418031166120045574712174231391946480041762701137393353526642967252750355879019039578873926949062934914187978862789805322054120915627207609394224141603392129407030319856196100819948373603575156623594066043379884021262301447970426326821850398912715395672534665120140768836924279133190166562994593794480009216490194107678639823169927530456236623103037056008334804048097051446055327172190524711378946690852775299967758637721245382309070761655260919342401519676798287613479711793995527195535527431200677018214129403489730564023146178282498427967045115747041410383574795402714581112341084091473126598912286819189792895257447024738955210317224019722086296079673542099058668097712621396781738224653577424565620308217731515580757842332263905164429643136433672183459503308264096317629594393294390746428187889854157052435587928756118732926841626082778693576156581130490876471594362235245066013637638131946187031849031695438119102319247014743513331279781603589236601419723750265303935038247948585003017925706721423294300028781399472000920417683851140928691430026182816672932707757256160882893766932433554304075189835998352651869788975102823170715224475714283625812680254142083613458310390252005826702214978101037465511931093432775081571633352500332442353216052711635804785866596801269247747321464258718765551987446348096218075584491927933018650008885919464596570955567588781970526373553606238069300552057648497332067358489987422744218147754406590878641536698062684333207264820930749582990242168536622711511468165165781910411122188236583941454324358495856904759763559443557710121146530024950597095801143378703935215603618162757680107933830576118328314478447664795913421191561226713202168290074724521843376687609140449332717433471901541881839550346597115125291191340447872070082714040030064831857478423113115944854497236147330268537122044886570086797432074881678037804276249276840420912544484389184587453451499857501156774677649007262156547709115002354826978921703782997929945671332607822711024179759723972537995967195002376324291406818088169526559367963722793968837826379126616924970346393080959389577734557840306939987943152940277421930254605144017886507897130997669144496406711754568279939063911755658414753993253740927100817411435481217632882299760331507194798800722552351661183242766386942556896014793832123529828922912929526804943128910697002291204032289098731284851776820400734022313395780494631291756748101805934990754878495238991613447771119051253906268658875466073945598289643935957095048601038136626479548229585840417259216389653593534107480964908013627351385187243383447857128971657077573344947288847186005650440464956551134894514452605792475181026458271794807199870759165830015345541837223345888376100499248422112836450629833854206940300844915259608707738917699440744004348120142841597814294543649708200204596320530265052693861087631176933751302117455353866128913778238446485161976104188165163296861439788584988939907445321433146025927313464530420635528233244758116100546972016976824462620016467558044446063435163364405242821639365989846377951351827376909152519438534592440900083509670157842619361659008281011763534378846088406613167028215515227727680232738874014744514742411410965767421461120171332929751376237524904086783855514426888610134733340606271688117164902812328805354910632698455975475766679121376055517889710775690102455060942688144382164526200774669506337295785238769228573054349761287218114665995990106276400096243653168607819446447368506107281276661051251234820463238158966509427807358127192946902092553449893947428638518774320726740653059266669544842784863352816122413698207380400379527212106966980069851901528638289907857459277879960913317108528248839160976922861659560446329152815250296597142878552469027395467230664336816921479866122958736701368761304739686755749952281614134407260461510370731444935574455681482241465487806970227404018382356356376947416094505360356642993001935833642530693288708564389908059047276484226302131272197908952882944335862226546487689450373194690095192590683172690428690397085907890221082082069206923749703855553000076297998351763866251440562428439745633317158067389144228738613362378064781121175097399615577226610142172967656288466799410401150806771186486956764260893065703755327139346661816789742626250572287325939243265254443385018863382124861197703082613843467967405705895027431341073799024439625567159756806445246983710258521426476931979123028200283722754655950321475564392934184995334666104896709800413059618081518575388041013976476042343011962140974454503702833963122594735063697335255254687906910862200540152615105186034903607143817700420114397260159163646128446837174561541088228657843733427217492771234237189758603805092206760667153244253305952129315695996417737980295966723177736092675409440300227687237326401148072712073610199077970215354967471165309000719714923703833483749450503135022836926750135169888136884948408621342397039333394697985275589558852111301507940339421493325365480235132780717249300849227496564129032888925175009169167452173862606211337005151284634114332718776580036983142491538779752851910554780516974603244727020422109406263739833131635101764655816347017005767107706451040608067678187532874363568301299925983901558352282634888225208319960750077554385234588569661999599544412619006082184061542288244929777080862115789902264686665205880686276735676611341646864197789732445519432377079980837505080811395128388471386099067354165058309736888976987070119239209985492170608689249436091976091042537522078530658427873842951266261514234445318936420805576529128876700802631240068387275809292091020637303522277694976276230780306382613974822210712141081687776109810536567953335228100406351334541693309348090521016036228283897516358509261006246267326304559877608051693248911989652350392880792841717509712038411769519961645137108510072408760123782266470483692393266388959027736075906283512797582539340817759519049205297615144326790009394712753987797278681592890928447401459491422044972091240211387232549698254945919470430243136919332159687848860728144727801385362667088400796893831307662228758449038440069353501833402782999587251592634623076372389938274942198570772573770173905993157133850990080093032127082220083733424967748339326814180065139510395270772914130321375149620368314477783134078249181747753960569757169750001371738300748027388445241120527046495195984673416494885032042692328741656890090937927411178209619485138847446332705024664252354994850591052788415363720033724112645413572443649230638350241574124289231650622647280404295494857552994028365086188367904875259986743495393811322843381488200576129768822082250923053070297470746119606414130359408893288733533853071140769979233142547184530700637811619495354235152087300389650495014137710627855844031165050464370511304832526075506536285968977755732927674777528574273919252688349027013710780741199189332393011481228559786602097932402922209957652342894843916793930324383673860824882800057577958109304528382250444536343836169134900604125355872538863220850895924056239581280842932022205292669694085162065612354044442592775223438405445202505814013862363625027835595895618431851632417145892959410258007739917908277014195707483220256680366875424800667482676901134220399948274189375112662305009072362099010849570379913558701280344825377105319627594927690861043419908094987362230075818720371803744512689731023342247600234834021825776341600347677321248273391943892098664056282990479106478178987801266487884582732329312692977001770805701766928742830630201065776416921895715735837919227207999341082044428329553758830779678866135113852256235524557391084006617417343333715007414643592029420072372570946719780976887598462317139025560667778175258158275627552704763025185940954458798562619827198772870949521749569625187295444724476552961588088849492513635912253713825888780935632931025246759545641454769215662311412239030544781353368771532454929925045312383370747198678639816068318050573475838435761377653598729328836445691689432506291657049556878701345808919637971694098710638284627818762233044017375362388893735301875013025985401843854197082005717826282743056086319240051611302214553501630689841102150425071535039368859792540847617878992053620648659328048162983210922421989495112806449617225982083200759517439826319340642520952571390171842182241215536436186939573364088567902201417644282732673013543748514303627666465136572380594875386287976544439750540648909991699708608376877683799946582495912357696233245546880705753302499989938129051929841138374006217827172214926966076662585814717572125319075705945593111559106962062638273814841938966408567978303823604157716275841959147383856620063273831602749704315855375238057481727629626928346998001205156400490031784122126316302507286956231262682943147613262048883835390747896897410321704610306644094261645210946253682069119314466064564358027580410243397161766228228750668823933351402306544531961160109256317822902604080799128743585594760900413868437568893445960491653155204324097596038817574533654690666549659263382021665984798656272009892847593968101009307549312890349621959633175101803966953935186787169787398062496426941830284281427340076133870680901476335887330470092738501582197610119834669827761592666763146308313727284737433679536295126803084047443318950755203807890061450481608210684695932091826606087901097898513056656705578062108625297884056526330992546377378914877441335564691338500987097867739883480002421904994234485565219333698109922664225127375823023858613018406327553918991463382377079201345440132126506552325662860643925453553149786813015567124158566938032116190480816739511045714641186276681322389379746986966515213443149415878747674833783862626217459830923042437442823579688431921121557432425468699544753877512250364263351941396024260727547728984101881615367521899901502549069425096362772723109450671401738616690711528800291911409561053571209801535262391157794463727070795172825133770510119491617414829159788120230486494432716858432468612184343294839309373878643811657361036946877986243767964557528402800537814832752202520827752248641006380443878071210634924805242879075767079675954410622405722624859044993991206111169825176686174822840252398862363859157954134648488758601137119691076458612031392434555818572199362745914680833344452710316676626626848204943415090115297897606959005333088238324707547757399578491061395539738373954845612726632966912668254633213250802724318797009949771098898422911880397138504395210601643114070109443603439233005457753330155467836693787023910696740685382659667820038738864351198738248561976223316374991072737648975699535235481383200633621852354312848738584074692781208231463630630378231483538307693800311414808542098518144333599660091007979310563128256069018087670185892754677173744419500121260835545346572914838700274739937110353832781541103814968267971067720403068637334554535627441051850407068292377916720425069497347768478254759600411098455112520754050105993290280346682300392162422213438372843852048850484760511848376309688309461236944761055286054855857781401182547638845612422155115066580181854579450310059368774453225316406750554413253696959166816454843813594083757322672572172011805554025749681311149241639241755948838668769139607351001208309311301393710130165081747626223026000003623783525083699620120480801228985855625466841792106673781258570434723444857055936062662822434496990437182088737417516008425228014711535251004520501417859560420705921078197117251093617713475305281965515624771237138643458078684491802481189701061389190737906734500531855502739936010030035275702509991713618202298733790148210516668025254894889477559609195145540394277970824885629358389267910218025292884684265658064946228283130694555719721594390476207358652551420003269184702778521899708234485988155810013922007699035954307327079801341390812611399433597427350018693733946727337356543065976959047911362557749773229087712965423218992560965213589373417640726512491020051686341090390686225830077669348570181255913484609558183982712612289215323798641099062579659936808414439722515028424351042577891749291493413008883945389224877067074425123467166172490849485593586979903515554514925271464461127953453709145164067249471413424884943506959316562654488675258877295300680970583238736217389449463811558982432429780741617635991828714859038999463515356245310884984582928663012711186301851941396411229830781928129659698315017189081667506686878045217836849565505264515839474286964719657156095486107973188035090777870210932858475440070884627396296650286162355437146371849617626034090104353200579047733543383919661442823323139303457078351005351397803705737316366371765563968238733156720631312682246051369860151769453905315865199754753898303198783911017404126793124453023673233888718649299475749211410180092487003983999892432937551091498252663620413430023458288802104391045616306903783510269976509836688639402742401121995500451292013180613658369783361188608960286113289456388726366937454602480942319536519227649467555290776431154077135686411852091142060951484802586946375363266046230818853517762386066179476311321151559591629883993048975692687397960943378503616490675798137770845798194122944292772168472364029308311227898685941834626257162295725426905465308286844241906094899566425873373756155090598542487517586992129049706412445978507295716523701426261815701783156137691686556861957428400068255218166733462369346778842227765485974192288772954953579205673756406178134130182999092004166799114731148584652974645702828378421715545297143254364380344296686374464501587609745058680082035171669614353410034857119871250499974162096640919935222772670228771223941551999608139640984852022180270005452922763128400676094526906588164760075329589300890975021998214594521625025571501372973271041842371982007926475175070475549992412183553878703748211532205451622154408716568525173851695578644275215273051069236259473672280639666305258700305880762683429419361126789558400037034379053494972112941077527700211992862523389992031777147656480758463473780637417563851489018871798351217133438443998360580361189282485669786637967837049352846549055993851790373543257922048673015707341682803770110255637272037306825355678610311909052695685568395180797403622068638148749188951984925827353503461456824812666818500139826930585586971276849545412281595232083287105108634536855277463139964780162503019994321932809715364272609159258890105074546646938906012909115308458693641537707868982156611702960566621614561072400545950520619245550949686858628766385007657396840720753050683557490074844375847087814513781806553909131900549127474246566749262017628687029029620625293528650612747054814033707959848359100978625397888730139970189515083405636728076288207609320298396354691938058315768700413423252363395499436152671221206660604168329139133944747637827316741508476239920856827750541294555502078727969947156885337978702946725636848360892677030078478693329423108563991593892535650510613353057711400711141229183075708271331821567990346726392656718495764653097590735962485166993562809411617700313664953639664283300346589268230201655902120537948779548698580448385312607625708336591385172315288947896176791373177288615767359199633544603777061174137403790982029407364694176183469860973235050488489762664476686288084442277005023419072730504356952264989490613207440197665817729320094318253390911838523097376221670050687369480682248540554379497084853962094771270955649102183624525352118227297583577739974620629913822488216623705444207070147125685852402118242638673016239382167650800600685498442453418629263561811840519439261733861744053010392611957106341705017194687738571861237093607695043463298253262897426461588872691959743096096591314018231814232148865034498552030688217058324477580391366879841156052597051512186660910337401012379899526969132200200967753848321395764666031312473930687626670963178575105592982388109241784377731319777639546766633633831165524715469641949587855465689760422803041453877609691256004877029367301841007796535115331777027188794547735370741589781772534017156568777816803701973026201671706531781820251909499616848960067905331821988426591663833298204986916207469895525370621761857424175674874041874603823492100521334012563342079528708808494932513820739306414855480580822965330534889846361163326806061761222874654372289461538975009618897862494320031338691158640965759933929626219263915003863390519711673302527078394700034406248853143735934719523270193450739687567467427822582144078745548684378108406820390237373250843078444557365102648546251537794273978066786764342680657762663532503033783860271822934689689522430618493433097494044427108577487598032762460289123222510217544683133087418556352220873416207800059788154099292568138929556478547349887005153021993217081645943490050061742754255260392057950409164322786103199208476443785812211944927897899133580418058220241170808623518750524802349473657709327157944024501567328505134747917827624042627209437485175238868130271046002597927529221228403094453161472015338638992646468333475997384915308928199048774527577360686439432622259744639140394436839557556627728078396239275173778632381989995502962408012806754565786160640168268243224408942891084081152815080220490696517662303964638801521792065400759555073512703194331545347461854247495876773078558914088021773490010477323490109377213004869129818813255577121281989852955610391355968398552679712623362331583369123412683794767444346528263238592689573850769020753396902520628665802035478710513762174313999088312409227835952529189678975846298322731964608494892532707365276177281696755754578013515817753614008356162190386927710648329637911754500632781055906611388050334184779374035071648505312923981461516784030350702646318004126359840867084912961275144750697172840988319142280546310634642754029193169116701573953911601633439977448363921738461226105060725319734817099968153440726254819998163558981599735721533832933839289712849556441770952888333738649794570291035773828567446957854166328898659291625368832829489192189339138237602343636855482267606282325916064741838070486060355982355444511647973835720560647322091766433861783826093921852010943246761650650238092153475772454700658136393211430012022222357633731638182514181406800333317389159700677144031243793740973041397773834198451968620819466662362616827595153653215377862801742149264864232299091300223962534141797752255099905989749982343632596024428485792658117881358480741938234544294428180015280301991899207924294516932616947387198446420679325395310380843055438771034680916693923016738775170823544842713482926893104534100627122613766937834945811912168901991836594813508110471725499678819628453084482030979530677083422123605355428873734773235747706851250955937373133359574608595240015898648950397127686840330401997776904535258462901077597988445644578892802757158690979604575635740504358582228965304258436467679080053236540292230569597387364064224235231123059967704223585168210280485126319059014525211043176264332121856504391293825180137322773798174275579417764895552756591655087720143618186003647449822628149340319231395233724764605777804319859884826445569037793820888250056688302278841134097201958453594912337916431406447132861635448922743678342410528601516131403421027621827890922108761451592175381663465092936677988294372194358983024977491213046198706586337788926736488143075106476254583047032718076864222468844087077525721409565598673016299520093686941748729800636814701336432034409270831543531965812060246154808608010112001027609534942195297905419892469533082759510520572644701841825364952536174654417883070688085064725551685922270064637358307311108953597963665138416280198187363015939649723400864515962755331360734898278408539631595219677499716207667436098112543687917710370302195410928180952667836242698584952161037756704452706047595189489947049857839745279977828957820583468983895681846578476592482971609329311079564679508858960559184053152749605641998117366383157790387223715431173696861061086293701436018590244669983694625300624585957863472132310161302864841016234462501484241698210675191174563146546642414948062504696901477661722066831326715651484512213897714700097984718769735144621057777730870021920799618289160967688110427738920945714804440364280739258321561134934170692385396882409939618956662492604346552928643483870851735414610162997107676077321729589963989491182532384516923162698304150353883585013910228566337086519439735095285593038800828607826398735160106474137807253578661552499764570364833179903253083655851232305749299173596268808876428504701854832124380639067692698551568994076727376911927916961529431501576926224275081733235186776346415305918925328533353770597923611066006139202972197442351181297661252324613163127773548532879551342854734568957369351002082473680938706215682756968477423903211818247782217412234084488511135313607764902359872372860127270942134554537058592762454308701572444985850844794255689555987064139511480613004364064549083457398448436068781102334363038337308849688485535666481953097485724733816902465904167120798945808655214016657857283712783507991797716069406097708316008528111407999454814766434983673722503150323873035366999840517806791529568164036849369326010845648583213853646202717622557909045961668963964043629180615230966222351090920230946199777385651167706421138482404331897391580791432932161230723100796285749773248874064744137815336892500473194283795165341283019724188956357746748792831001619887011767716822870741342881509583525336113215663550920220798861000223623268367000760502368193156136117952247840817949073023096079227268293444143173988065352993367154566461595098504701043412293385922837287589960331646809103948162335209762905056117488358530340198080757742643351366722869204627898398456283274261220662006295772538777358420837158052293880924247979783781348292163754019056405824789139232665781288121551340666756630955553069801724869969049778391285104987954091633919758771149071311597880352497752961018987550087547142138653329192919419305463867633227172661262043071916897611844388476662296596567765296325159996849527737355945642172632631997457309499171263445415707820857297442464191998859855603930384884256468376425864904403774442010345506003846029197584106989386957972381962942015972109571000240014448980275401157463220895594610496916683020112025916637985561583383980834615267640195852986573118050069874270811270932081948969882464615750849882552032095139248219791087291279619712666232456672624371354737063042808146212776641111768539565918796137406367099073135163899901552046029401750930531112101800307670864705380541796865119543924459833079960648947504938531505183987671746527033822163247380426175292980247534890456031186421088598468087337800634758746690575040408241848843959987868536418805261429871976946960168574985139022965354483778432089237508597557998911689072122647806235921950415899054307730551258420550176517443679723068801587705855565922048613796543923085886287860924740740985219997202852822396288716947490400684834373238662526850140827431897136816393522070692181607432609543368126256659181187553500260966962190114134716818497687090655599778941054198233010135470927752747614526929613224947964411558358253728838085239027081336501037078486650618479544000833371424177819843417627479498899822707772467230197051379801169069525013458272457453279816268021261053196234017273089487435274980790615757975528961397620245716336698191255314368546994084723679377477936454975071092917115985096749311998762730374403214007214737110647425424262650071840895953978176200045301483658428154464729761111390374471615716666823887720436065497344057714865762014336503584354282607494231636210025461515518472234986640051895528880232115035070907086393806714070687770402788841080252894307805906542321741797987510133150387391097572709779641070626457263539818717112257937727573303624501467624035700246571086082709134140632700211778300698181645999681936548383500204145676504382152324678606837878537729896520955378714669721757753162364767274629381464824400252566026084685180713872878615846473596548302056292635488488263275473503178369247467223872565552551866575666196544035862984907247413458596907225986192070066223910049079530305855189444704696489065577409220010462231132804326570345671104741504081700226335153712818620871908167696712700720872878547419334735873254072305692971875935516464159149129701216309616562362753148499062732933247922471839717920600256585718046539775107086556147529782651708901896066326587679537967685455561840479996141659948738957609588836982778309332271660344486346578602402012678949248138592263776952507357224600743041312568018260928590482716270070868359924875203579896409647881337614760540794939254998234715220410226847661610977782268888704174971913385941763929272962672153313547938563539377434686359066832772294877828586396030207069886995267796987020667654349009520737966855834223798843041366241312208182032233509608928994283181063753183403284998253194447293927727231237708549107352764287127004902161364419466388376280282136242539146158419885992204194484086886789817317580112763983010054108257847921318125563311317598643625787788781974867113663809715463756587364517558571966366712016291026740921932492159215243804800095143372465687036830622992809423999234215859240845503312760626775455849036090737780671414092586443405989183771230885821823718477465645224053359003092316726635293267334524840806514043828850400052141871929096123022710084342216460845893211154053479003656540865583049315033284650314366826432732727441030257012312213666701127706361522434296755919795430905002086066616835322498622019808033098354433226865314160655882368099106768648306386573728787500359332256864631102432659839653651448777326313899298097674988210783642742765549184104054598838876159125674650369624957173952908444521573202725111256101181552834389146061561966667169729802022261651307756861110926021932481610671235622035577221269334875388648676931513337304215174241702464966481988075172697005860204881420491897195185010130109921885308826910079429894703259183700955929675222933653593241143804340742195772971107823526638545028463699391067451135320503092124970397210798476892033271636057756634477090600699544226595464677963518833787370552082282216614791228544568699092687570145925796685788006933943489151225835403781869474180778977122467472797593175114183816167988134910555837035658578316185209773346357381637089521285588678549744922656520417711387672673806829193203589070159566274807265921456999058444435162211480603792694234506286593101918802415781108058565838495422787414576266738892497354612916685793630805688252820019466603165920981003394450209985931749600147446040522093077171388799178065155942094020147668558310902057782716909027929323754746152898008001050182119755349618744303927494059689087260147039080163747224791133963224665326997083651450545673825360036639266603527995250365488380832897588650001080361638429778935624344835368236155767036124343123731544275540544708047312036333551833047353802415435084309866062083374919751091738035415692479369180223145631982330952299017813562056499468137898038604598201009394478369790744563521963284245342160378562580285282469501094393608296729620880602898876502738491977768097686561553065269376347644779809137122501939780217673566609949426293093053068294513411307524181208715295668122270236494213798430759868209333368428584129337165994011594847394807472055296574439875206333527957036868478151646624234013356147423687106618195144467438666349113589773801372506653880995971465973495192912505885051119267297334508484358344985736106262430456449141383731704982549612136511327970830416855628331671965272640061668937919109385560562942053889035050172113938077553244682438879773837928868327702094221383971011403129477906543967361500860796865401181121313727577266929643955492339180409469073978983034409023102973181887359022268227117206461364136643469907232928137059856331001548152384006081419739346306395951369525563637384963814503284459649082482225511308218540668551507212501615751233411006532298957863246035899341629418154332271209401939750604955170363814279071492494103184771922978244947650247948518988870100366152016342275516896405242433730526907722744392960629696120448793693715879733285429600473823606256312164262305925118625251102759482789468181671071720081198430008421016593247548952630909379814094435908165823141207196476098102116385138674306949718977971268469650126553067291459270963852136358367459113406288561476354884535679146392744392005594572554400099118161619455667987421799187233104139706389556313187711675094193664758862962895402414656786591784684556684045534970141127471369808488341073963057484610391027941621223916108345657375515617349199598887629076404163130246245949067910831943217987357497931483248065628414974116890694908682741681162432237365810326272335954607683367034028342635190616858741101243535033217011152928735061578290627623483573425433800760073420227290907269989794614156973885371650602474315834365792668458587247580436369734496419681002481855384577897090036413586543810727993109352920367671720932988873483619504469993364921788734648991769919465063315333098975189298017311720875688127970977185838661749277759033339294746195863650413887640918204364478051604941668837772637324311386363373599538479034694472775671281526821542993842615020365985549031657311035827462211296203305766377732333614535761663278257408899128490948321030561457264512344498628298006075723310930406522016408010281501944956983685201695418592185733388722820169217300166728031742800456992048320806373434627375092362981974066681421296583312556769218427882676696807969373802767406531607697061215530140952022982253135571447047906690016417993727238201701158179997791305592605257376959179164255246179774826186863385194589221671715224612350503329488269189536594086572786496848323275421090299174331899564318655994352736066307269606900530191431757499900158255360918908150692238232232424349622596505221861495936195289153325475676489079782415283400028721906219936529501782756458153141483927424294702835136619244127299008731980587338400088228959106937883237216888846802646429751668021052023206362875889200997109198398430552650740803654349895857961374653591716923171443938056417753517469888414093016975689424815885004565972206775824996588098426122328811334250791292015544339040232556730018108901592227675610738689797034972645419113564450149247783979124803205762325386787943526587212772232812460784224662202455065757003636213985907097727120547163584594839312832069214864591604485832596623581906833353109346568439627858419670824643544683494863788485799928986673771545099833398715315833202498384645073757137548141486353707041762556287565345411227568126933739961615390633503366168625807447081622869210721515136616851135419752435003455369516953999482725729191266650241439425664969379340573769121342028353952117260291752901868487868782576972157517340361320717685554273969807548382211892698017654536424128378618011140609001534213959141452139135467985355496555684904905719678150190190959213313687598361306150217527598679236034831366588462432339656315238640968903237195295976117026090909840843233141844364089015586844490242954142296028934446232285553347079157882943763538255141490761217356569219124402412032467392713346716863353809200230623903846898649810091047538986923353580307519853669624405673243931430012321416707153068760887026903626007355987178583520428282758732854897805897831914848708280945792426357065900631101480952163432606257420210111432530509802466554417785579777477660715212570365378111967258480009228276361429851263130301614697956686583917354012193027762560999808960251236555866177953113420818610025831615949238225681804943201219245051552786976907872906443085832680337936173282920241158454631080766631344971318555287904914731113342618156673567512195441034403958198667110308716485387526104942283668055361532191724060442615597025122763899451336012689047731672256914664524318252695588978858106665956793282725691240923158326698914741543255810841381157158383794844435838326373649238977141580241823367077910703742904591147654970762053064593996325796142446465062881354185096841346077181460493598935915781619130294151954783855532294312583602472598619275151313447475422012702748692384242186405863302118907579678670692877145869603205380132610958654995119186039655463980495901453067622251106329084331149805575498250825748825982144654394123145496873535338250638794609978883241568499534618205125319877485312960489093172356245018566982763460488911409547298926246425597041715857339997353686834169107990846713090483312650220113553982004601490874840225020293641096129237049395890393956980584472773229693520615820983769959752788932838119700332595329922486411314729852190786334589263392417073927411321477593748626235130426136282556314723501462255023866111259806271158385327005239798010294454828319140784744290406228815322671586651900440443611442935074078531360501194848591138554779051455496738044866651839554113042751847411678264754661202236212094378551610809806840244543736566165934292795025296356919886565862484149714048292182140544163828804899568397364568527969545291048794609641358115940721987611359426840935536748640093639668610266264500039129506106358720910685045364403142860659631861727545203957010702631979798842737062459826349852055690859835317089330648194285500575620324394518557983573122279629757992725062017027959956730542285475789872202680233567690498569669910556872313047281797950359722610813330116730542930385924634805675827866162536929043653625199014113471521588337115093800166927560369258344074448270678720715640036722284618776677237236364298450334778779719295837447536729242438506700416563310218446550287395206368091465839916324622416415163781996843699097583603136956263565752962153528892436849479546567217316832127191611226601179841482216430453489468903419423784546792302899705237539240788323513737335245879910403070793171478734087119090574031456814742799076671408374339570858150406537162351240192952406031480097538848579608145884531465111778943141947846465663900370536601970659442348051232538614812452453413394527885137295137275538766137208625816490733820410702139450298528605729600336144259926930242431235286824315435791153963599421065456605873727508520584095845031264008839746794747609433459307508712824654978902924991853199440816652006828961356454958012051381231108748776026248650530735864318912105335931227694935465619601877522594154448036859305025610536465045343561637156975787613201937363192491283070944863843912262548258810547066395081421053459330954944827055184569819633517901796104576411419105603569582444496025448668908029104564993012091632632665016169065431106902911333664711212916394091740562625776708417006334545665102221395721227016310421952603770430342935406769518031797994319366872920721323420377525078352538280599060546328043498686710823123505421781536073030043187600242560374686240924134456509236712473318984949945112669210153413882922947642495337693310566282083915323329435332310802858175179342538648912315020497377858892672569482276616229844041451680662258718102706489058773709496839072423103381119247305189755115896192209337352174968422566900785711467113855322651643914568574979342535356750423649372880681257086587950442487219459578077040010168379648244209847039321352309296947060812822572223884430285287416333190070608450365942891369436855380131839241177199083532001216095550170239444958858294855320926936766257011072567610234381045718274002363412551383248500535506147425547757137901946960800149528050497078263352409003930539460475978011863726437339286258153072459298770615708059467168386807201764407513777421459963391295270865068609855206033038879194495697872236427325715070056025727065313306030505645266962736547218806014493758319868820449711903137646429117167217986192403041343720792312523915009750410784604304041857069760005972093544975158688298140148327022490846341455162810243999655214491772066339862578221771892051316198200757610348841878568835617882433166479946213112966440646950027189961292519934488723404665013201574734279551606083945131831606235346248975458550987438600460234963889185501213293542075212035706600150401936288017371573578028439758375031582636091387298696846693234509369472536887972618518373528818859950853617931518763757356062357655362326882227353687094622744118744454263698046869682978400084820520264341606225284573773951615390708608331565203955848400010827356085281488724070807958614342861148358864851905820509301354875902383797899089683087973863067048171791074737626430853508308499697552842964666011012418901975153248959889337230294126543199865626857309311699033374600288892879637848298670767950688870451926973216001374878150157630699710599651310911971058730736997155005509637562597989863162672967807135990571474409774750999405223335743909560834032107342502542006989167919404620977108849858115893747128675081983339475558328927220817388754934860391069498808733456073377588263736411178051744028999792581010005817036039258414082052641655397054927038100525558329199462495157530895222235834677205606657725566530386164501449380859087410161780591508452988559629091692210344890582777909766817114494287223981058291915199166309773683162791262673169068901773136170126023472144655028873215756734442396637788579586716307983301648838604316143728500318625170841322476497778528125931495201223334947494815317572951099158951794048820494810976232494068078304444361429144310577327987184993070141014431407404801201633934484096353409738082148901919690741841898378224932443661386305215643439534893322835641442135699280346453669773952129898653816530536154781551140819006509636674332738531746937430092867851372180961680661758794996076172472250569082899095537557694636279013542839361552072081817814871820176347745381247946562899562825959944740277294277850094449867779712332718948775591816240876009326769730153736320661218731428758854506399787567301632152856024249181687336225127192278298986854150093801315926224941917525988559887266359773475442817312502793934696848107452536888663623678874870300774716877954690964873603475019137097857867953829427821634156352926534991631772127436562820223170606073555617946514836863298389132138492363044249797981708879798665595138697062514944281401231679905889752369998214799376534265233918264126498777900643545622095731409107647224280211441864561068110331883549196847336058075345711022318500873419442045744071540192680941684533825122892114337873496684064831107537585745466246905345562683525283479667854336278233132272616572140585880507279554514721471901875902904564868162059968998363624227910917038673011962472124735646124892230440291268588212581783184650994608738791029411718343729399208307151949768194102200343634429843818979943736494148907891458191041758773036238892963858266526725913047650134726051145580373022876693213167750487877609297465070387208081851872192266840725116945566341127161440401980522167126485948582397161139767564252711743609150549375445044607141146462725807163319384372146557801876154840782647276879179792954793598037987350758309859607867609100878542962359354746595420347927857249619305103886561293646505917615054097223621721635039688381610093197821723426688055835258756493299595168597041400943661615282972517615786699503534435695632570358418682536061552284726161596811501085325691719004677676063444458496843610660418073919779725104842005897886784732166656816055607354941317603291666096969247428375413677788112894225558958423220340941014506060085331132020806637277125314999124296259497573858472576311510527951022127866683993779443778149620270012499356806643256594297343205147449706544624265167560802441386485066487286118843916429806067537306549467875120056649747431912341258986058410451034230821508875362356932565724884115029948574549489344809567872922157735904830021997015544048230082887660476199583420238171900041025790324815982270933037110907776398930833652106721079168517113593595757169342390881924597004333309397934160558951935659415888203143875578799228879248049074982204125893828291151998906522085742757017316982983651117145745185766640956406107070160464549641651371725170116774264138072635690794432547606407437448035125137451390457489190355751395783349586216610219412761258010207888451819787212441443043014508939915092962984480422105745547068545990743029837884246984595640278768488233091479895843485071210149307671836092983629333651339055062173213329654948601632547649605606283747968063799125215830384957232032730183637899221625364850589299914908740821205300108606445757714272557453082721713185376622850768502191473928909493621832607642294443465924469584479243022533765757331990278443672316242746415140215388229892649561175511014994134692517847184398120429238053625093681600932324751038925587031911208962536445739135716900497209562083917172186322512082645254565428569494822938351283808201732940030688505031825841426482919658166196481948165619417359717712082708832150177717682033541351594745339904126794899993844126875590670368707493202711821971264334971514024594462463412519358198010591945916943782696725351427860698562767430727229881370652375878111708288089268445513525098345388274646953373370007553792559170612528514682219531362455905268932008126159318174140857138189958365385747169870136130138530880388626349969837430689301964639641958644602305245374297660953379352618797589823422092336315182366543884136160856276551951507276278177660754830434061857112750404593288907397662953906652150348668903902127407364539386452706550279631016130974102463404126241408447690451261359972016875111888013136156098188947532036347126119160108355851665498274105207411838406155306038788102181871975364764471255013828964253335932342791131533855206000433516501492672328062241077910144258624923481323665588416732177950973065669001170563229516968309821442737437553557289405185404260173606994320734446336371387098108792308282372191815754082170762197420283979181795795489597607088754213994433147058408043515552837404665863860285044395135685368778967563696181627846892754245872573801846195123197123046877291243255647288944555857382451085810653498175533771016869777294064437023663665947209542396323609230894091882509062615751424921805867449937966216672543327952063647399410978966009560829417093522919258100666594305910482814963096601208949071024108678031499750361832319811877499935162859225005232865346051750648277550426683929128027284515445034703218442998176728315056220829862119753280998821408448695330674855945061938661686252272503315484647590755090652572529757697319825927028348854963536585556421034655482275771191706778091085559177750399967606491170390762208190584757413000777272179944908198446388127594589288985660849992481853366319896500616394186223530553604853557587047127521521141559183539019291106526960743190996691635849218992483550030495483375158460987858974823996438405172438201037088543533885848836717633811009202128339288271315392233776100711200050395290078326627078978319861114949788217409356698087898388192232008735670603202629300347765471003742104244716844681173364065153954290590626160635241292361735482253581259032376020790759898600765833137671306363955158199986220067279945948847256237589135403141299818477259363169326364521307905573145072930028901706431822477328710197320886520662781578641797651496920243415374352961431095670651021747095908274374481102835447896054089717183867498863850822993206872237595283775008055458751879052581483764885857358211549140293869730785047375591786208483317196750048152910484575612260939700254823416826576099873104881039945995207605154227524172978715801552633677407384288974570983573703908549955972260835619659488926528898294473937312270134130549497599933356079399353469425657442522975051411282938544964112530082777443576673596882315709187622640016245518469294628711347763161668178749951154444445222573790165479559489490942591371711669223365934933951677933820878586649814829782120026642552085990649064196470736572113507777925162311349440313398177991933615840240687073008874734927183811413471204760012909315077832794732805477845570647722771113164316840322868935441618315313713292396486568682402302234079317408952545466931405297827903874465758281760922798697132696148977496363164899253296052822902307164608308660565281548683442740095312731093018248922782109494918800291306044862466484161760593551552586936695994568983039941267949309763390267796168486548116273784989054216129067022276792169341914349940051415376995921884881966196137041101418034794070877157876116621549232982602777757403163530890167542777167526715471574944564847979065518116383086653065777867829156287310485428273038634019730785313315611623926834060215011559102930183923745542556677570327681319790547982922530490839045187428007708188107791348396015760149302228353548348917254441926805212230449470328671201632720544762703732648999174460441201553504134091627661614577450315018836994981572092139792778013619508134475137398530296376513622933096240347400066915814163022544153371864871833835922965994123328074593603387875217876976922015646566751653002385029828174441806356851074645328961119960688359842459247079003793918311105535388393435407408340578059378787521768681198725257482680015642734332095295599462023380398050225664355728853770423591852857241804639841863146931526125413833298244366541614781660691018905880937292769077500316697909929567112579664259513207831560853102773765855105746602954342007375677260032030135686088806089237160941385070811672857388077957126026095837600358845725582757831965157889235886787521242741192994881235877893357276291273672063032537503464564668976127867361379374672632688707940313685895900686406981811298021413271088408256283025018246257318790675363977491791767822975762883008304808759195074632393885418818702681417297533616810161056111643140028670006275824520785388320052487945453587092603019500439786736381571746447857054034005115841046019118433994667082735584590571340917988687759769144323921978756934868209107136306265609398791165397153410675633822803896467267449967791119160031042248706627167423407407213064385014818618399191806591542589978283201677295419809831577428388762291712182560581568153616617167265118380812732681370205944923426746890990983551482859813070293234068677896075513835940340534460925892115119060411236689711378117226790558920869189213586947655210200698385057282584240032937556323394234184201088148485856730327116763740600108074582771152367214553971017535234008309937490344018433031972407704759449952535068329044775135156720916858094364360665846878647997345719402305488529201336711933527893446104749540540650954239656883713368419933973166439294480252595458098303391613388240047438067667507779697640472904946466944158031436336823020489343103879799257133842917790579817027205511038989282926290436810339178466196380758449663632804682982560019638343614708081250071591698497688064921046319117447404540086695232928192877426508846258907466911763980930990104044607882493281612512897952697594331859191847449144154238363204105870370966084876419827893982088590616357749405322768712210462058968840908584554178607014635014270022424111951243492674413412152950410416372488681886177617141378503779226721905128942566781581417211223954423789830744919570014995717739542736129494405719387052549732407986818090006355280478892150806478582652187110523719823556457139417808049849641887353170498140677601330601233962403293396150943022317772274367086872402704041583307589655148687693682460577290096154198588297655141462405620249467785184696748625623367992543445651309306623460874255534677098359599527231174044300798465193780926848112660305685329648729485951405290915758819486053389068899552236365603227234768972127332746853047057849757343919508838100521896942036400912193371230482451146092174948537118586649448317794542825425623252413904106791769148021959746922173220172538704262706482948541755532672808782615844140814060131397347791006398807491009436131135138462746766237629954889896844541050560549655607146658429967668975487251540874652505740959432254349926993707802016379437339173510294462710090613965382188764462804314510566676217388238306891770797764748189404618648024063821619864792865670259698891929507944847214742675217530398829870750354903625107924389876051763445177089418346123050011202575379121117701920368373521104289018360938044279002953537486038845989227493707655803004337501356732968493359943006446458728329539090034561593200799309050138710422760735631077716261485969385788075790293927512856242556635649793537788922814476143911157560157361849099341864818168287007411741965078518434270917599869898178469950135398728176584539904717765267275033978860850409943836406003947129108695539579175595739066474497586325313125028078127587084702562535839383467946973853220777595993858994556494942219197660199047103107587264238761816293173204028295935627496058145745613389967737506923432753590114099512532213977756538434059225318252794275953663061085901991348912051043187888014891619164616367588063466489632083924849221681058274892357479006549497993713537927297018126200089590098190006091131402346824366187480350097095571871735250556426175172445446553266845498413321403443052838794732963662246991271702432019565295103029363993847302080153798090555149612007699518264934539234273967541220801983147309445954576334439505562877707692168813827672258357030854951705022663735599691960296452507611391029769122416045474610394031325454902358501486499461050507725386211392963605539153863784693686257868430575141649550829404589617802682929618372287766996693111184906348541934927282167235625426834700494682133982533368042120934966607651818510243439313129692966320434622290705797276654069497341143044052115181947401281268430635452266366381592592664103361280002249376505418445613380390192356906940869459866085834349234856201424249100980534966395087017348337552506834508041583976642344475124026728048545115134587169356918255145523283999508021987488288506231977866713797591891045454598011914167550419870011538667447257615535209203477001339616286431752550997478205935148378105536541462202589759921228642060362891657529625728811106722139870309983214590783034702800835215059849835176284627469346179095887198021615072213282637272593894491078289923136860495482738019017615659334727285840845903541103875696855794210192886584350279509091117017287941133695038896951437736443262847343681750648364065560052045961907314034126587344029053231196777357437196676476111567269102920582446443261569512568942777616199693413088469612128608181185624893113306109389358675878138134937223327987020718393007975277073323855786149494573285819768902402091305805251811483159142920048910804500208052472123013449471409935698741811831803122874193949845339465637832958718844319482936165849945329798454788656071013651274626409743582623456270637884482403354957366812618717083537532067756285788171247836249475590948810362138367703374383354653604177772347230466689174103197183310187962993767911945567981252818259005806067120494136095422985827480767446459925410497442246272775718493754021573570016704561343070621025285283335842022344041538391559985064206052306106708204703417748185741181187695790873762965497188859520878219002832982482829668035106999585327980860206805211996017818291211687255223831941094258372181477597181972622569261875959375148690110504525504843319795208282837433680183851783321938541279820896780603611062372153641861707944631926152296543243233262736235404812326315195745719240505773405505638481288864581994538813130894491432865083932549075833379197435483099630410628752232369310182994033874591094290165641946389713686545386376190289529486094903691507206518464229822546781565867855502082955275436974628440065817925080488038159252996050994514467796681872848620826311787599143579378471192918616407779441135370886853839438052212673126029149604542561170869388239672853055445780889305460284484790020674382201303475331646757249522951714554466592899601350104258796263507911645484267375408518067805218243371154218456806896162092960224192213294181865500597404542630599736584747045629231174082753112884161500790055763290937194054109609683260959726693561979478181513496813516747228501049895638159221672246598769144455149701396504713654001194580070997856834545808681940598687698720964441755667005200649936545721322525361686902738154492304834486704933640801933289973928234126451756255087123288170962429592128389488738399681886322541859999374704544484223025850012379809311930904170748042805922995032542675685914547606672426616710746886706700051232460952401259201032578784724885242880849361507811365322767833319828871358644108872321605714491824124745042129678318374896768243875801832336182104598927530466015576448878614546688045360441889560799304872668672919447708742079400574270875054226425948197589600922814302817675499890392296051592940643149496092801339050559784173258119868470610360160667797006379451600020720993308963262725553910712896931001011771980895641977679592990137338537670169517000844877312042543169453710954939625119530958102336294796518865608891107269687330600797323560640703619880323704208970227619047169107653241344972217606806845402426240576023000038778661265546010118081408522925019233032737191290703767912424311115397737013203928033020060745008448566021224948138514185132141227125810612865473901870371867958484778375050673382348128014499029781062438072472694957887080297997812380911963420483887525244693615199164544622019789854662856187684325581986778901649080391405514585228637943834488409223899189393627086520618372047174294701921904308559174328291328545014164222002348615200491914118756353397968533250730695294158855583908936893428524541720271879941552617051152876001482787063939193759294990703606868659374151596523164281228056937970237113187100258305989628186999728319910400550166229993531058905964000673293876927009751108609181577220203136354106124460769889848627350010550159908473873834071264024352362580270585243571767580837017765832979925158741039130121879427708539299303990190532795069758284490674595030492898809069775296620898470032150895652669888514735865071733922115224405592950410162557094303177955716172965770309960468731337767705139136830229010530265782629857035028858040240464820483295577066557808257028559926679538084316264220564778112834775333535527195561052771946018245973962905697948148088963828649341588633430630678371715523589976662169608131872806848690420003188896573118978490991464721950417100103969246877205780272787200167940623138384005702965728403131791711069444579966992986191538644628604557972267274192858611731787116816613091866595614954082227046538512277343872200434037583527988129640093047227497481496893362890937375340996542489544107008458707310384843975577958541970886794578012952007909568634138031053385575149890604559939797006319063316113035856066591941808363229043491961414108949363405716559106609201975800286273713586849842630157093360040155357280938306024723186014059186918494576062275951678111461875794406153719782673724888990367251554189704234908777358345943750734178593245390927243169529693439621300606452115105949211258307820054286505282896417689195134048874884178483104952964012621911008224352007165950081359913135332698679279624244948546268791224068943162301991756725254372467043567367799200188266752527787018225375924569800748279073503219939066641292444560010384616531793343810204178325538854412176376636896265698842801362875672443591021262625462362621061609175689349967528771743943084333486760760855236740963442398384307405898036445489581837845104121584106879431616727472499585402419900855056213315860187576738153179947123676972100213312934441693284947298190937093324760250864433876621404290427467106479352574485633744152066677015238983923945393552504318004163324924140196334747421610930427818317022998165860989082671834843940380674655408882521481534584891945274990742941590660556078520084657615004963353592892467465281971073552247155821435319847645253651039881932965010000854999190044870875604649034554040194205404872114071237349976518123036799529983048919839919156420034463461859824103048584532482489095254074136900332005456313927300674082643556836838473120505176543984241569294061042130994186586381429799379786714062932071451672793818074530876518508577808290028764608537009006444244868828812623415007942155918439774983285259697403366626270250899838921433732477613509154477424288097071004119440861145204771600639170382289963228008573930064578133405713945776964650744957323779873339752239140269085072361730516589292832027982869079204289555232578183550218415600280657166725805426173107299366291700891676069797106868337394329210241835365387583889781276746326639382202897003550312926827350063475163917106830009557918969261451441687329618393086892536663985391651978265387035818849117158081453740706355343103870996863379683622481063617027897218009642137501937357266310065577051947742678483478277416041103247865999541156585214849515620046267857345418559161911510765022888752263495529495710086635557878597183932552034231780421361282536920916842200211992829980405457956315730516784520961278311917796086499959554126856681946134759598369711655066312075187197376857773047928614073250360774587101076427351782621980776825417597695545677667196415432655479443559678056418271971084190798996094473456256513941090268897058472217064695552687043062875249026269376199155410385466486710775301641077119124065095484832707589497108842272522325755766366159301649414167634623059713146643310943936060564682381197969808063708870171692673300009199131158098093572339490348332163024725564645990267760297308146641472707757879337168425672929619349618068153426309157916869478665653582421810486343639743293166858945866711874014663088094294631167327786496624263406623610664774886516308399399912571177405166921443436987920219797240788821533526935578672856390120908045640225745264016703779679303120358558766963355330890061646161154092695720590071933692891690872174645120909170803638902713497507804724467222767252154135806851595612313997938188045491037119936065756732943750798155919384601497766626448611593569499619198524047629730596731583800104700315665806233926368808462770769013578577979230504768887867348517628751037344819261947394917205709571809087720037918724695164475509271256775703738576790593329687462050850183341247101041385675153813279534915939998374810567275295128703242334481379855941360863200685290764670095281790777983570028901129333973584707168965832890017074057097567853455126203297516349548116022870491383619562154870981528038530581805362434959000595608438929135632327690652861401351154821071654952527497069884022118511264803870432218033700200916437784319730057256131394734349370586290045885197453743668905865883907439388346392109048845103355629164842064093971928181000843243256298905620963334629732598062747731608770014669315905882552129129861937343695202641970858699655543859384588738217420197147222807420336055503256199047520505446250338245672161372305293813377327629840132131808704024285250043820001944429594823279958026659362442738552968698254997108925160311834372402038750847475190458553901395985065247836454115745646637312973167243246703973548087533046866040495406715306711688721881011875917383464627757402225665024483701315165453623880593782300059579008830986162719092741997478299618065690449898061911825305351543234966211997923461101400459103109969588446900636908071904586962359649259969686008317304314188393831212364355826412290933095927612116321283608032629664672995901793291027307582617868566955993296566490120487661860326612696184633343478486743589589510412441581128988131220531010144194682754375288383719341125866551724757815164890242647602136014199988090950385169217966316720541979335897939570752423451810966798783052491217323235651375726609574628679957748707300110588170286285379212895863133809055557791700654619890858523055866114403423687282093152900546776388503224180911345639321167531216032725329158985313414889747040464487995022190753647453425379266172927454298516769640982676642050437702194134305244226264901309028221782224322716894246936462076057430937872688194758073851563154440519207452613307430753441854941583959945239996776155692664850999659177939727687906225274064949891091020704427042410968436085143372497340228612534012821006831506822334168328449455967655268520605847256509954312090213214720801781904873560722454415063563572947920954433451868014554978939361187042115449261214691772963862964820586503801835923199625104165655548066044801668127390520710500850578162674962649293149424946222362539648691626143653491938323394976208784859562233407691978235761487421939648371760343112928908242974718503073436336915307509495286006368135114770162656398055356994378567178585314315401751912560249970686371227383205916686197546342251257853980915907289785883701925292425662676166410308207520269562932072007890535676910021529383763821309873469691096808606152028952391276645836029054695412104608435857220683908125571626932803268997563046485938518066643480944460278088625507172690040697973599991137444594277469571357221103473359628926533509119892550743490896552772103265328748241357810689771105445168722368333798517329918338588824318539131110392208090858177570216697483622834189678946918917479754855650185672135552430998428256519984033082635876289712708206712472905390587703328463710793859901887502941914963807585034678662724453610626368322309444563302201850006518925881809678398206405405357747222460961502750470470519466905945086687369136644697140804896033785769522418241541099763386139769018817979380654780034747099641397192636183130958048294603983692264055963884378352139809972536476778779364216728788258030313007415343922134110105267568935416625826196571623403227370935506402769125731949403368039391565997909800427802793801603697969067637860632209680314527950004047534804756609043309844701241703814224653051237205202649982260392185397529273134407763004646729629669039296670706065581625765588090675346209763313612144682135594757540300288345584992587059772716201103935083028819202398359426926960570049513469355015102418212272443610185858919936825093349854520501679176958231423921146766263925773023323012956292927703825253185701475238525272283170188419609223484434310655420014470682534141824238516177318718969972417515679414887069333303829843781093066913046180922718222824379014861019142848348804593234881330616560897145030716827105689270584934310122132422419098813666554717190689534729046679354371550921265616898427525090994768836519196165704763183876533003278061173100420473898796475669275403659504918130790910357457055495437712973336713359712917884562600610849925250087939962561483217490949015655660853001650177407475746245360401192684052491580189613122732038975285163782034188027611049967990938435674088093183348810611722063033993795545617098149482162146588631262058944886039429547801811090678762321452698567878582460074615998178133552091690498955481631420997661177587541501933843923214675605069754421034895729398909418147579581311979132294657605828120038182132112417618327220866860635821425283367356784143524849099913995042522039897918980718360008522558757357544521979503275313132847518095216749486474734219152837685031749185751700918427632757969627032352586003410860508012205587948188015472658759414398489671519956354849960497437280362632345316050231504053715679130532245630614203543600529277286748951428597330409498661232486079140199859427791088564140163366338455171762579367640764548697232790392862174968139728133233885607828470153671011502497318820294949200330861769960830087281744858450100180190671796377936959750300953964204131680672220235475137438295599894011777626945268835053989484751211732188460979568441243494577630685579429390123415722034639340689538509835131375760397838382462177781870337841607138048007477246458001227780481610088547819836752646523711156059450094381646369131313093375388187164910603381680806347155398152702543698999848951610085403511671269524788544071571581196660670707945310545944549970112483915953726126901818899600868480375933809663067253551498739787570019821284273160449193139627598458910962888700019686168070389274032652286511025229280522081508098591730900431860343158971474599389632345628329161854427503417382002317939110872118677407808245649480367942858574055794139508096844748512769764898399413909936888370106757326174953812653281515071050903339310630544772026352595883996301763924548999087826140280956669054928678141371474953701425079181967660777934829754304489624471739745225015611504603553297161392652132472482275262161310348709871760428942182026864930059798503767932482712872176724741496406311374908874051819387073914683985525202296212304343838509530157396776410122958175812216576629039900477920414207633647961345635827348026828831342760488890950059096554551968142073787472472858473938870229243797871570059366922776539596740816421838063438406706288466665847543582400551996962210854332221694485901388677338961035529413360197361659480981497800391011945866343295529335915063127415514566831583304284667212554401217768639619153738175089149656310330016656354213891876777779701935740545830996672203612236518753846421064342327453917301233492649489485846149830529138528175864701388142602231427365768760406654459591145628663863120719435528741911692106647197810758516854859717503922797325192938026142083983473632450068005331509076815422958952770575528935982299481254728808686835908686532319441568047573237614809199700291577144781027390913895947280164708824515145660855109269280486495625813891476622454041241765757789267264844532659125956168823125566141339922009936693217748930842382071890876893989462604572034834648703582627250931124114395037942900947972832822387708421107186462900611084806575881919654810215440161109922481441392708107471275239517330479468444536367800868158429138984622998840711734815971283751021774292003393599865227466087126734113588247766973711274828633448316500142504734336819991566964249342442413299871305645159702114710647774982240384681028044778968628571950544843189612320331838878625824795945826950453628868651473997780967827059949024468624242017843794649925881914826453485772062022257965082879515949430426654067512467694312836394849730417962139450992501667732111093017388633279506924415298808630883382894639134877799556283043535143178991425580440045862288730925813882278034188569846860904280781649869708851604330172566278420493372207766900507772296373923352177555301037403555140344007115516787695152007801314985145514899082000951596574564112019365498235072965008393491225112996569530521216542093853328083800248200130481684543830914321695426818556052546265672607734702254841933337473085357197712716725631355609358296496697384154308432125320563961697807842285169230175187445919705095779727793366256603475491576831175268489117365142651898077484723465909782520457593318471182592389758501838642378283008052159899615874083381678213814794374534314391923483749653327834956199662691555911663858281773394849789319024065630982283660410926574848971541183638685638338257993693101778921173897736943168163969850466124019901084274643596646914861884928226670454476465096530027840048896652330354823142451669950422223382012576642457912624966366029992466751631563773444531133954350969869452876684551389066197485101282165229865915910241844313925372475049970546458210849919764343452259229545212370447740969356493798880221490968310432670510879828793608944782773653939610515463470137726335567517824126423656690714333600303555079092266371421563510695659218488362375783384802328278457106943577308840398268747544005731429192854053153048560319098454556347343419417080462064272387457412378785969590166867871942830917449807144200267593710241967193482577708195840888345705827507529566264400285389354422358115584340723149858126475763538832287360446355516112193443109091547778195439503450004320792996648226846710095787835540146871274542217456055650446826083542762626551453609589226644972195784364258756423037401010163368851464253548156219681048197293177874209289741705646963588154977839372357058677078149220975027211333301526315240840987624560593951709204861915428637506548413648914566951753350255787370407226137911767332078253753619282188401305740047714492717401080461574737032722591710804632793981274857774387296482630926986111970604742722240685804595262760143554744050934728192206142510987482567157775049338247448263289083960686497588699800368642714577000830574895326782772840429357542029772128640592729165060131251230447692741614358527191452516750408094942667815125735357522416758949427091927686448345943102237618295498167883326579999628766503477874511559593510399542140447707083486294819012294083108246704238139770151580106684863920735495082240994766371366793463299119635366085676323889655160633387701800110744247012389240298868591623902488855018784083492267888095637516831505262114929057578641890055985618694454894613054517947334778814808728852382676939292797816196629092072607228718259564965700921907604553195667114402904605375786295257608832623076463440602003066249341594267939643453631039902503231009661528290837146461978405955553408557433967977341069982022574779832623010250745547542497328480419794207019262511899638389058211728961301227155149885765376915081594925445387031819406946664948519277136151754445290742124317471100211730966710953385104746791581904955742331656720892319816098352373368402425750178364213874649383571358346048085174269714777404849770903162593584529207565529827641555376670549561237260311446897500181833421957817779372477335922652668714083584714868076662094706124803119864549956326731679655251069422072355090049951838054789154843268025297845841314062676186873733553900517721858368263490825277593737408599215692355370012348187588004437444924566577750092674899051446332639408972126776744392334365369799249530590113303579178928606034844326223452543748379618912757616874447019399912227730321904080469738016724601940433245235104909507999776411079905599601732232931151003034274216714594615046997615069785372606182132768206333872710047249985466825621170409917153884260872973055278688156397028146107896145992141844038809114897694932663269797639120743284926478367704004657206087542500928534431895645691594257145796053516670860650274304290754219321438113585871610769995772515507300323052559531562473032141720173840359994080711483790130560862699540937433829839964891773313046649796921865508473410628089627401314208390204353166181056474039047615834107112142714975549647272398691825592446026557294675878495732247931296693045028488786686539254363554319272803176542810855468458141888289688143468853706308656106491988141787289159247644597578321366983191337553366531496762085400162272749814947308771384926740988748054467471643384563861943355487862134416477888594919506298581055685923029055816570596712345953729467615358289365215270458477425868551625446408241185811698426308362551808405962718276575921406305929065732338272198843629197783211603066120143208767686442928245286889383284146817554264105653668529757947284479941470378442806631885758707528247530075662930361496603999154463006932433938797985383111943574404216064052523063075011871792038721311471329846159339826196931688324316845366220381770408163788218356345997433419865830725270462403601012493267395307828892715147198450023701370410520005432707948796186884891397179741203184682287214572999267565962507541456398456346238276893767498656749442239622411171866375032105457439281982300122190845919794791803187511116304914639184278175077202856631633843787962893881734596861414354338621887136103833357486892717371403641734596099526560279804632266567724673119757124782397598468540484454065300405446279406390280101519618772611063892929554113105533273985528510151096779694701927236269187691283622448037791901855878768061312274106544786217139068383204738826977255507021259407566284620968815140961978502940784488970302103590454524231653383809031858372661814256103960550662682506701205595222918564527322663229334195292395466785331075679634811635450237590124545670888489701433718113050995236174680622957497044510065548002100092789808703812382070687579846376081209916195213328159276565712348183432390581530923897688196194179407390663526057232256428533265418581631309028645882292372511550652619917142118349884360022906312228846051738675791982211533501615351605102931371558879484320248190577400099472639181946347610349107761960076362584127954461576145506657813248414406978431679731878248726092469186681021266942094623338193057216259343700034295444705234134180016931839808764930054148342003576539270407334131486159390652817229826309257617888343530675384363731634116861596296160655910506913003056067515535585918746329100108369674318278485390373905548227763323051596846004479238705348150889559832509540254600331791377033751633700534311761400979698489166335360130432932796960583312311205904602827359016676018679167663157362548430691266825394584673011310062515320319963984190333252787217432844927842922563447268634459963158778492781919937265719309070095888109535575920953840284330694914690015364917502463604270060565435205242099154017933974657333964990874182715920415515614725899776988087987218998647847778034187200724231852310527342385975013332736558755891535728275230280832716098766672693364488353298148588128128616917746015753413867570618479600892445795604450622828724676021424141415328947587945511983815267397336817387108626107159718250615362764724184817717891319148572607110213579997703493528990478682514979408287259750549787680480105396433553600544371610143753976814886699392551944945660729467340535916716099226195064398743524810434217381204182708656291734484396340551586793439336749391959903846074739289725842279643322106601418424164475659301098427437470532301154881709069102041527049591166295390981971528585598713019345244272946232487602806965757652290980127408566675250962632336642592427051904272005022329787625355422937264895257569821800013291029622037746166021617981653179081812661098323306975786460408380530251030447539707834434919022409957313308667748889441690389028516356271109440139323505619654093454298805933248984587308980876039065068273692850004622527707801197320682602678116771020087541921664608283805029298214514296052004779488273436551965946517811819087991543304035014678412005183981992201552245784243447670198288903301279777370300544916484980464582962577608757104726509863689977573859473864570922689535321476273725825150924412654061864515384793668004321806409821956242877283298351349477335379106120673760342284007306928780181010742380727428735991137564496196988244115190292233083798844066980305612249978300459297632478605547702050704298980156444706383276625383220106939742592113948719830643476383284339825222654550120207993882824597237229476994168231251989206674738387578062201812413011289329388532053315844514857513302358531219838015764697338732203194962317598500479182845793781877209223272336052384883326958545000985741161025313558391966021951050892036967026082139094015036230973377043172932442355541333053892086453932460698729998947113432793798305178836416551514779252563395277878799195508100458992066725396464118030324086133388099025519417103583004698107408698774618630525995362926120035555392828499450762232886537440629334894719511589376841003716827055976484850992772276033497147857395980568672252566027300967987520972471209713266558302780138486304145532824124872314451281599668683833077833627768344137185797124424095099934551074852116135131049458493303075265945264879043959317723933634404226377906204963962606091810125752987818326475175232801877122882315889160023527164882444931937173027599887561046051961553682246484058580857308473946862221286576133469605214852026854769057557866799796545132643124339836665045651702169530554638186376834847607453703398475064741763554758409623025655388457445409496750643365572069811430135503690811726644271486317835054096035675784884643985126542354344637574225662845685665401367463393234649384279055043610293899767048808695468571712518841561425916898473085366194713971463549683237253939156031170799706338632543730965159394023417427733277228383466811792012475550747912346071595958426452075844180983116738241250592017583287974142184770662496857349164701633613030022459778337355311387629192776319910731900773697808115636686583838204137948647374678422852716307066352693823882733046334398197638931696669082539659316194898442454278808485129330740202796018304935077961902911373698933949349155094950978959927373092181864607974526776026369031179247565231044275765888607905853380389505152265464028764635375796868327367673004938621013155612284549739141263506500326857520077610779489238857628837068344575981215706706135756329253287784197173738854657918927747338545690465039952402272229199835923272389496632211674523248421283017830572755225287420935950659131309592077629651493963941579503990260943099603100591526050434747038345328835007975853103463209969141543611187583566257623695300582814531811368371322315143892824224581555477708643734611822976642985219435941607848212453286083917777091908566719627808732747598714221054415996079412358825595472932759432660558383069541243429064304894976550628381408016452247918521770491164040157349438974600345696246219759939668641656318416617859978891566228897401006459501258350197235778303562506088064944145733168507421095309994509644992839098308267203486623884026601607396935216224235346380240320124765299901213203759774925082634100529173336874149874142384796017651028445037827456884190167872761844419837811145206905811332201557857861376754774016583941292876636173699244352777533288343838126834537870404865121033539635161375834060593327890619703085780101713451419567141945989738804973545493548780332665246860594927105840258403698269758517956642774160002143476423102638214920585382691150749864161965205892425431901773176520180495398128863957187218789621352975614872379284787707365553660981108308273705216871357274541373785683031484917624276947728097570833893119273166276013877987636492744758028763316747059410671714005098390780017413034472352660968248397601457127058608568278834646065707700648464121023498094420898683764869591092444792460820693301987301124938349703669233390556639166608120013083564022817404698992012151422564021213318879212314679659103900142216496509321309624712657039169770567644509399652103128840524587308591142063939083874145532986332641751459746452486702040290166980227534938935114362481305506332806518846204639960818115707736094848885821829129053420769658975470022692466497979364437205701445882545690454562373665064635611688816119422115803559029297476046344556178237381237504886456581638446435936319055646484301800171466573945372673633683200950706484367881828994705055395485554411255656796367107981915164837586378208021634654052269235750996387465658290819561406145696716142181435504613117365540142922631718949591358819254028572418741011874336856038978814256471160226611661612748724706671662052127761722188020157477074821297790462803345705048255310568115023231988327322791122885940167918966575484897897987402258726324499203625850118196557627712737758713366515174643793661700678658243698744008558138216891984236612691053142437760119243614841542563022275420748173525519841887738849978938463705173566792597272366256978835473824772735871149027002877041906210264384865164020944050869080156309713048424109963817010042038952597590996024682433357254124004849155329130717586076867547985061431214652072449475641996417731974471913355514146195044403235499217846830858334405340264820651207211575040707288390726426593810712389960945527234831457327396693315798857678311352489132861750395345536855647148840200215930796585428017041350292308561189360440308896585172380902754319104701918313157063777524525641214157370373486945608644252175926071589881144660109778931211535678885726091898476840561866218112007911372781124650256134018393183365951925075937876121440233649437610434736343169980657937911200222333199347117813589303745237826175473159118529779017132132535328752142155903902507994458965938127984676321950764041342019928416828763002172626294335023258681744099205021082442635199235685046865694151297832511876845021462855512844887457263421597348918609604295813079248401511561243072349827442499281661566658720566610883541014267041925790217471595518780449967886858802356758246238104227508847044629958957071360771789705936205037977071212279656874965389496975219867853488452575833492082915229626169819082772728944213503068971191452626614218674522029136225910414517887583396514953110177046012302653185199584913555752108690468888504571777441848880267776836120264032472834612912137358020042406733735201177302657819015567007884776787830684515531266904177698685914174391623664651883086435484651433936934160718160655249428814427033157348090600816250205286726290481207826461466028347313073755093593709279370621297137949732708941693344272629983006211348298804603781071449258323396901012822836904577821296689862145630741898315948105091424468834034788825858232390655120077965073512775802335435078502403660806034569183544848436422730731627567175765302056970843746394588209019013172638726537526928831168812135360030530231022938878401393810406924800168298843118529115912739816374598968407250640586634542913623870713798805073815179764599969062510996841544974226117574806275666233017473621741913915999675521901974906129299883334343683243441215479580076808100519633770730872070653898879848983618013933496881583891052937643475416059652703884314549992965873864876784702466396494894916451831936080678758784549372882507065443064754131756186290212504205811352393020892979991916492641468852991006382016708904823022843963122600457836778812720286086224303202504084496065003778539156741436889681344554388989057269863690099352787391115052478438340115709631939557695183454744492921693317394138600285588689283097001651034137015224344080520096795000295437643235693756525579392234912354192759219516404557465549714081259250873913117044214018917280418416073858687374131358496504026228169355375043082413326038941148740083066965677583730848627481941969085871447945827558814381766682516588655435949418518716413906124575202300450136436590565690663224740208179022743738552521060889544916251845762360020318095639266937896530218918608256826211005839099088641583036923378793850881581732838925478870828664855844563395227255654726772317971148714132198323720073880272572164616350953814064826253644506239616176343730447547255085563466713857217537963635401801474066618876993895365719632938103692104480648886296125867195702638228339258016173720200806013569628863960042927446188550434447392571108272335470121743583439075135059152871429619688830016087250101494079080571583323310465258940522625329262501334602685257704061065420151976717020865892340298567320181870165688177649476893619459226113972732380305385365977423898925953466377213020703400553591415788120393095899558815490442949045985319327685062615772909575720247308727424169038542231575473889081275769802053945759665929350902740347647172488802784983880136937925651338804085724951778819355036322579465525430159339749081693527970475360793081619253261071961977580547312565687849194897859977800080807324731850665708747646543935259305611606392862671801453006251607940684068095294914599637766724432125982755170752521449580428382997586734395049128923479942592684265243566879854672253042618285087438722712712563466236474887916243073053846056223661565262810119493120407595172521692089195874324522053904669318275435476410626342364199867940369395808108888137493724005245450246978696493208626979004022753042913963220479257740958877067994128527325068477109083171367415200378834302887490662428367892077379811536095415519951750806289644574858173487237159595333532218724752965471470568450053443721639449370768958680605187829520577450508180033211270637532338951954574537804889587121477546260372944188856818706045794795784625420966361133810155760037309911678985149526261640957210300921160274735243305323999511689704751794349368496110288873359302340423966144319571480303457190370936668747150668927066951646882030870352176846453643265867383008253441280399220856641120132888996173977984663212843618147440429966439778517952941505377896784783870297923803169850684088840691531440563001325234574890404265227915400016948596246364731739135774252726485938291696527565788434074400532358596575402614931664610193457319001634117239085842949971605305391217437722626805928367688976162030612866789331560326755115728592622207516577059339680371282341999958415346410085069364450314080502607429849051908795503740950407912144780061256076897119755178277721796110358526328572905980003104582343978962021027918851775501726188279860487187964079869878187928167070969271093284119991390949077681878277010572331180052182498955102364058395017988680020681288541301449219077546836458373627176142514124586038065902935135559588335723759387346560076590709454709490308930313080312599067924728933173378112188210922270972537626547850842998324859848016296509610645180052455021981800769888775758414064924664340024375036370753796945447811585790948596052138034696559878296334398251383924004571668944591706361845379998124358816687936762306973551750328936403517246577402306210432604024178755443704333844507929193684047481493594632597490797655667108508963904055380362356934884788202119285251528149314915997566801638967177652187280736299359821209773491331242248220487210345588402717512142486888472558820778959271555884180917289245649155003685000443028970088294670756827469797635032600916565819542451446785115383653063167400745675300833828125910217213173998543340348849044549369893107161856699763703115470600630585895292854259385804593493680977601236564601000558569918220958044134555621613364664347674204412188697718288380924606735994162431762442534120444811310028015193612874881120854728365606986304580999316416283866687833695619352558107800644930154989429683108167202243258209739789424594809032705328142695930300242797048615549190037795826000130687957443045986418460564309775792079850527127349837643694926833736569143425459541995485372261913581928235577649253040188730035709885842980204467982773683676139477404770632450575957743587627767372331707545715372721672635856401473995945589377716228955542367966417455309537245133328836564925499529410213481427666897253346677701477746521173491977480155784110766918087287805033890466054293093177032045429072885752751438432584874156098423805352695331836981022220583852566928169653621924317953182300764366926190365961314666860050205797191109491706911013904899493717230985843885548404985294027414177619401715390489958613730049798681363809313090612455900251622029695638762196955918245431444184833840841948916194266755166552671718073141053257084094191278618358795282590390130534378154230100888011699909782990182395343438611891582900099695703641819684455881832580187003946742434406375420540765514172505568888407092400410443043348154025454589270177128464116039382985519403127454807788098625237080068236000975732345307723536423086173631131635920810335438145212892645636667444633475421090286119655061211561526232833693979747082324280700716744461264434982052567084239125766676001850096766140136784725342523942372748742326339653012761295960354439944719228444333081836975676366505435728884740174746747643419490359052079730797720623227272978634686893169296369297040384626371762473471748351623637801095415994990427146652313153512635003115041087918424512861592430453432493404981442494945567699721567417110785118090558243638130312594297450243798390990545323717720242243682609757789031402470836325840770667577215075611313466444179581769297246157960368409643812660048707865446657105280620920638302885850385450859345735342284059670655759077140246612964311494748078565252796233560475482382224752861233124153173333196760171662681272185245048510110858182938649139900872894456784221893271468966388241626064255563746896050931381774582720685864943513002575044412966407611055963778912631425030030320770838306314936720144009702542427477514936649133174835645770642627694377500164588456159215168473470508546635314328148491670829829886949391147690259847195502360614113901233727357565196792020720326108775849141882058699751465745085971792606537754013674886336889753989322531340922860071136476103350052493566946320772869366287565414291781880858736604627530238051189511897219436756022419171148661033290893718756142652076074637614422538420297952603685016495074084939807993909420594490269300350551527014521281940890606867489139456579746138769254975849365753135892808016250768624556171158307367983902431184678180436824354464229469592280086194289453682363800025832612117296968798643816382344861850797755998167725716651713756339661348533030415723629805526955538680824867279206775925576065126494954546133147405293660019951006899319102014549251820490362603324093630783042424577093179395162385462678643624426174073702472387959654258949292418847401124716769743163512080402494162630700305184400740167422881298243222690428236790646174670824117157720618450556708054291522529585588698583541124887818069548666191776233267097626158140368152540309728757306028051817290226068777697062271643939121988404363776990096612303204359880195351109600956869351194471732060271363726006588659463204445513985708443307670268611077154063653953039779541155193580474709759207315200718794334461302574899006037215715051461680163056817417960386868050566442098651253061182479352912479342109500776448911445406797423772501837138606871792434249663380701247792694177522889454354533243612654842365505378310760869992416372678595938410594522788103101742322647072707641906343109150025388286767816958201959067217587372697226350406028715400057452715100518084294360071297752428650061332317718598348435844155110602164967858895975624131720365365401756235459566699610129154986499134212537623631778061008555326766172265576052847256761949318870998281130486120066382420891993944320507575194522751540162054244664554301075620640137659000467767765657234571010954756205210969666777321718248239919366138424812556437427872032159754477760772040567264942961719140788304911858340749100393390114377676962074600300940395116432266154736246915725859026367819680476019410338286360022273906449006754677512241736914759378802208383484660027547365432583344145474353668546249804295464597543561588897182523559858111912989289309680783461142446087467578414628988742791647407880488670145293948378285689017390659662768808173673933141032617090430040801074747460459884753225715797685514814416257471250014793334779644017494498771335021767968262542320109838172211027821506117774909812355105278200246126571614819662186092399324447916513090183109003857797156327740595464141720951384458104519568110966466643028287830592338815815237376187400131265251242400120262716356946700798140306191840975098517811790943497734962152673032040471460444681939969850371892326981912538702516694689214979275504873568321514677055934992498021784756925999596520404981381170110181158744338048113212304659140422691003505134921309026543791030017341662531619105951197072907375361393261650404889083159491009910193816018644660175397395455462978901214448741972321519269586875273516110673667508045794202219735882991626793872756833649268294565140140676123421983061053976137925565642307061824678253610815345288250059247041015623686254415917445809049186805901019192824921467185807157768863783742827355836959469051993334571399240833416999681486092896310051170412030837918369732400721016928560195027428531550370299074790303995867630280163080318369518542145150692146316475214588482064632133821593591640776321345364105108108453622852449058754963034260584153466624635456901053035202677199439339103383209272750515110469111845971250993462777934895824834702578137313782370515483026441869304395124610616860310366878358590621968983741468906375169060441331503660147004123293461202837291014394390031504059476949564482833333620777917426792943859316547224423163728183082437250805177231414969841484200555653302518291713246985347724179407107207775784078079664794645399570344684532518614443223697054298028084705796873629872934498826377179966062931722212123790326569262114937768255670378835150583305083596863765135362817352255848365606674476705227867698243454494699582261636301918079107503868438192346650103717826815592602316615220279430589247083317879197200795326552070630466950414516516118162466789645631701137208314715475798890757845045150878046267827707032665500300119705832945087765786772552565475080793801062890166321617906797051180685976334970366164971282490316303418909572863991059165449805488372499242365342589009496454886099439840013097217196922363368340410789578050193516590954734449144457582132477154858340040080704099952442758297629666768991414118628982517430089234933149805492499120556601399487063786345265500036720808609762008229238117624750589302610758809315096222531938426040826273076358802282935196781411672563610343592961104288885382719836110635674076082050077331707294133582074720539927754218320382892122584172092921002445814477259132712675875249736939575373701692934500825563807517982581877195209492242429136690349711053824577545238910296630082956132584219626686402726994081667344534336342680452945722799482111445229951127372724509514002286890947252892895906472892595685415821217422801355783558977455784176155242411591393984724781514826778567062571138413439466287693360354369781669686818341626531153446124205700183796856566551001483563226735824902647858609890310876199618405759990807711562540093256852144079439681500380650411127701960170538638221700309157154985243569740534290066912287357507347487671842255042002276040191502141320718530597079604531322570110335253026510715904943998627222340400676730337951969217580130342193063251568231441791093503753878251627319899174768964777976786249907933195304453349862598201348070062768454799863574250609782174977961404119670453427523215912909995978188694665018277125567541707548883503532604953717458615849606343055526600317284933864784311176082466760182833642724503542118366663024141290127326614763262814246036819078622546645916462464728919945506261593407749812830576489460430284559632253245788025458069626124438053416751968085267189968657479183022714273558688307243896263800324138356073030406221362814391754757053565530365273736142920755406993956800315567435492488344622934110282758681368815895833982234242478004294085519125866748265089157781077424206740986877479915524600124403321785179743625578807582411023205275229805634444096044491817112731893040775574239350653774524361475034788098416648423817657984190928203074483299174044256979880957148693600571728714850544940709686232697536386731336226404035889200052035254266175776426802162803720598880943567539089905864305111668358956210963304192462874622738803926216340431732423736944163859844458578782258541188423280685872452495204758437949872864337792978050371891975207934674156022558768114843002179108643938992370264007282613390818987239203437818276757484989502393853857991180735245548600088422478725013030158430734330974699306730026584337328469413278603587760605837769588775840380542280996517296151146235304260857285775215657298138935946090632989771285050740410776358987821627482714735187882591607988365775603160982830085649525089253648229857410182090230474864070425425020509910353910305978297809749589880120347805075364645859911438580508275943905748245582649641648025794390787820975283146766742480180269861547850996416336262501859092676105854814911869971711847903410295237165301186717539461596444525094298547846514104847657853422264831869998826518775279888663529460097898238265697667066570668640398944604276994509063834088725579215942815324212717036309724920233121516872257518958614881429298727638057011915385058081552988941712346875045272035429954461164426445705809614617161243232224528181011052256813365794907122972122677800119317436108643232445657470155766364373259143607875705406747179116914851463763099187217689949082531060836444660722309385475199245813798797962193732508615910212000139689604844773102378497454908470601233246256429921528278226638887756288904654400839753382031924960278854088119397426323252846098389920647950256437307406367821013193629703699706145787014182054348323408042453543290024428325832713857413563447668636315139423270009577338469151609215978851027769996716013249275678460168820859389190868044242013090748847546710330574708982414065850170981097745804718157521022218841457558211995770484371131128054124571946153821576543714450765701032345276367639037418809131087019305682081519778649227727216825580587323673996987929044549020931178707647629959867702120266762523763745876793578532018596028740272090099864440655806963044260877233161741479993483039096657741409171320965733994545286935991869582865572865689519887362939999909647398807914091628743036576268061620522702539094983379985812508476100623757534388083265066005074926634174971433530963256456245744218674870575018645614119838844785363228592181052576059016920087399224715062205745180784590177614975815795374578029074494316102180352116465894515846773958202635150232883893555872978298134847028884697962759972564262123903231290607936101556219265059335620067508496930957172506487599332069906114750696205413291974578442766603562166314166435009450348333521743713751220382154715062325891502151949489679506824623357049853434335947362177867964133328161981307794524459182080141097585325645236614575759034544152683303298360742913179948586761586178495063095042061455811656107606437468053644166981193592055384304246089444862891252274012804390038127327844720665300903854678681904454771167780340000238922609761836658481012252914881193011333775780149180449724894782796033033494652937050965026709785484465517295983423051607316845843303371781456136271325222782895425405351375500781358441353311751953400295767460732777627208470169851643141684951862854820807304430801491627462370504565303882156937698040316592597327572844327930419186320605304360875994069491277784195531936560390782439648156301075320176989682406419619493389080249872196677906881215538356489778542757917655165399575169441003197915884761617264483867990832623177217279081549932137623306307150626300864487641538049851824746691142971481092704637271047730202528703267262361982011665688261016006204848935306598984251388286841768123483866113431436872310845904063218006198514026374810945695806562986205744874392609885450153713277975783117830275679967527791238123393329414497801084854666333336885236275994304214153500614761788473851811731357142045337330681199550262940580178067256766686743654885490851074560140251649659658259827596239028484517007811028605092748765887334140830102389975969399876402123498011950333259974981688945194871979650259317431775073158093983255055579456731559943456563779755505285775892637941896346518123513941757067399578007964134809347664075594276553510100312301368411709114874344005918397189965195372171324003457688975333865964014683052296527324749524508483713172552862041652635848747394782010847584001633510636809663658480626003175376408160713785437571596379728685852751395105174818044350928975048503795843805275079637707373988913852458905608969768405856975287865200751599323273991455174745806449376225367479931806882837902694105066185195578195945790251711088016923916823106698931300780152079376523043032750673571692833188649715641198077453938693727129753487959570720682864493774284053807307876665827509924612945279770107060066589003673878070539830001716901282244719302873969520165359225957848229972265556584605265086271950433061832697509892678285003591427608726253299434040696653440060838247044732945391522727540191921360448572432086020845304570063662529017418949152266893683596016783415902161009867213132812627209132849388201077354203087515868403889028938111365972506128723531650072873039669885225264147249411587625200991218927653854528173633228315388432074550426768032718400871200519749088088430922194585402229362319993618030212991913019379108884059161095547191391127503784272352687740323111612028144481197680841733096958888066306064482740387838789916059493627993468235369859825192626318479322316972953618788435537113674919619989875585130289291438873061876884660106560408809944635009006984178327901823870277113872826056510227132207270237436590838384060430578990231175331061490376989380881303838058996537842955201530799886777123998521036164890474421179358085350316136330797725782402933916236672173622202660951225198497762636103670375655084875565840718682235567758782153082350384216486189879771699751364438239067465612072078658605467356226634794638760508935182934527108922242853585583068054485010386324610705986535643089416845400735585866182361843392224857962189130395075047181716845413201518840118637963566212182554134507678955923720423204548082412243980352506941585965613035875032846228013444868905373217826724641887732975605604182408543229195043096526787721178272941023591498614813464763061693826197214236643887521752386485010710247113963835972059847668813559005948353730827187033573386298441795356514082832099388553621536032906251828712785982222185771735369740578076665361938565969365378730056706298523495545135749884128705489599623943762577157591591487182176899892624562166611996827327494675030540899765559398779437519022708007921825785153812864657830126562941516716189088456827879417879084038336370061288630325872363382878740875469554683021183194277506439764459477558472567840625778735193944982206170822913093696037281835116258246029924905026642021218486252273116860110968942678819739704318613409114437831657892156462311513066923552283985042919974076299721889697485407440401191705246179548263859043273681387569648856879187096564942640876317389773045831803538417337414532566174553083963227465708950328386618833140970986662438874386325936823698254559720784188781736677407611830218927010013078726613254440683788588481686789782210303233863264763534629298788761602452727578254250878491329314043489891826394062867435184319475341000032229279743415912277553431708690372007752389390051868305761636162003164040255460774675558606163875368712250387812420890201973312206483829968590129916804468736860669893382571959378859674725013687635801286259467103231102032696668946710166449369894254710016797161265410962422151389746969176386212047516057495566481976131770853059580294684280678673077059727336521301847419444016238982136131009154477681684597017002903304428598094024909088642420961948283618368276233707338020752181479134107140136320221248875519615167973760504443919283799773485483453950497779902548611549389766459621318138904920960534417392224491799828410529416297353408861182095580739186698347610746923229390927011509757766664744748873611873366384205159205966738467149829882580920649177339704172740457741599046476813492290723728554301805670790809790493400766712649497301195419301227308623555509287606404301133029008875707857989552180513656537024489693197056760632408513582225421811797845404585222742510190732856205008138836994849969601239518925949792230263111849304225914366319341259491329088619370172954261915584480436845183320052609396099219657182272238760018857560801896248958828249340816614649053791249857412401904552814918039796484532896676249640475873737193421324611290429254828610896570789586622217060279033301748738677508219778187277267715564723569666298413042728108426006414459539015417050308462069445563558543260081963387391618671552621061974299133216572663610203584446056499747456267343825413585840955634486763238642748996436040502262779710672039495715541919104457501588249820413366912402511663400359816924892719115888198042265150692307764338263314440102051629528673827306570651900127225631196807208123405237050482649464908289565313403505571686768595433189881174902169134506979055615034865177410979932543558307542912503589226954488396123387630824961123395180827307395818962797459944731616704382919620320332700579441282095104598247945472441885356179019870094549947445919725586487446740160504760527343541232522001666197841370724284140313086732857300121168001975925622220209285174350429675418029405683367980407655857006141220836055647555780375094086231584598145890856742310350549351978790832826418326266745044661020602783867403699714334023394556487554014116837948379462600682077441598203651393987578857151562799982989210496815738684858259542405735073969443259751737974503265555512789819226872424828095250667842496142206992757935749109879802730148968653729740686916579691937477909962361652541798045059113579200468435533972845584331960519629120128437675757473896394647234493414658425394340804427710225582102571998245356432477620074780172701371966405304645229254551498072112761188141360446471309170006385095241191801006176516991217147072882628850426767725765061358539887237801612331646849060411747887440569901134573707284798404184772865557644991074889012989367751619795519378048587273962137393002021597756855617801219178330893529641477943745111446301020790776718907717882399276715599090501744979697147183288250261733656372402392331436868602469791980369360835888259814532687146362554281952108082212706746526464421943006401271156309869437244796737049336222686457261067454355701441966071045302989188252348535343944667962428309908929486411718972972354074725062471851175338259722241317688736458916999799454507863106321368306315413097470472672228317756335751704789961959144944119186585381281736651683361890302149131417141851398528402849240631012508541767875530536786863951255330058336602782289588259063011098115408750772378883220168091595149672138804607262762247348482102007903875193993771848477506582811216432261767685612107905352577484389172961598918369140330372599015843300011798255544581445198185424178690634233895129377235589681436882030141998643916874139881357395376023859343812645863588315850138711407438712756870836907215757236707166723844779071531046429271438474000453779765532026217325926702821273559077743340254874330221980551509857426948006469129031255889309681149249229761520482808261863702962168081497439023396197336313295733443542295789904033448297215609296530860405578795255789628020502144665528065287668400381234487274435784679109388721273802254390949664799317668598121023975736049671539019702005860295049337698661793668603495037387421626478620805233383975346179982450173185349701438600633199198249821111707668668149088879278700197962424406995002813050775929580470358045338849222712659597280404333137776363924472748763732014692913249410813616769184598633640263288084141063938779585012437846522961988564156881335635094075482926036469489396383348959772911148208421157675252050113494077158643661665176907084573654603093449634241408423717955497392148169402935206624075702638372026022471650707412858639372411531928225664307169255893292315445753307136997899480604077870336015319836351660549802833483544429255941131359244723072097782635122103749202462683306040386466106914161202706724793591129205499816593579470002078194318195078853417376304415741084155314018651995551524228163390346300916952858090969245289487283283607027941208858963814894415140767252388480627491462399457614801729471668410332677533335783304858680601683455546498673684278944669080431924655781645211015896114536653219107071354881928813847072360251967254785954806484515970767996603725571772850885878403658818805753319692880245641601074894098572892808910934063322789491239879549863593089580860572541838219640695489318427112900191611416602902478771307264736888452451593267504494639743160542513835287868949983938708075543151910942870160268954110903239817392049036539854950431903354118340902800566352588936667770351380731247075271452553871050289353897781776319817344016137717493347490532783803979481787568749401355107774457104517614744749079538316652499696827060082779335770173722781850529821593641509034911090857536548513196389539579217427820376538742946800249990951418051991248968579289636899879782714604666354815799574933056564610715580347552835812339097855486694394432879556131291109654786951633070709434289645392036080709989407446241104842977830374970579985089992672316644367595200126717799670600972642238622809475399043936886983090371869905936395539047204290397444331207783282450656387173292932514433159687964746097001070561071543219074349495303135281905244770502361714982686250930622816407467876449047856725093542068308938631610373218736063513865855702375251928467395431981754802743246588438805092439925101928507668642117921908503075611095853177460725057610174053082436596201866385116208803518093970612979783405909848879859576723206272018140372036674722000225862202101729095664965177591666072736654547688795975028244828816080013577396956090076123447894662909656847538086119624544619246234772054612827530760612486093138117454624506445145196192673003682433138715968394685213829056021321303770419995561101000862500198828447242903178756895501038766617629560690991599539133684240313061571509034013551739530250172872541208619066491423211247927473524364911904939236677432349722516912339273803430288217783821080237803562372119517403809356200201557164652914919310934976899203649524881313514557566636559836810407956681085876617923688668251536889364304137978679776561167850281345328625997888746897991259997628092193987472280008432040235146619833526783957107893213263571190097689725123723446667261095503186468281629364943595584508114110258234512943913003240500640543535171621118862045952615113332752795278479832601956584123929517680721258971230701190046835605979648373121532381260746750986969230818708659987072702588543334567498878395619420209688216293003661184892201073956323704269539378005684244755578610707982619107327755988926858955252672493907445857425365278480464659171578554447728431753992097585452253635065975207354734332293668602775048141804352876544176335537677001438326621513672669736866515870734734935228019215656780599776355816491431726274051560697081768160575931621276922181001913958327634633431306765137767973365959551967641891922960847102149326292747392921374404568908190551384581033394790948033278270734745675409532280896040626736403036502095028472178322540219851649346719688048282594820172126080282949155420634553025651881959276645921102770372883321528518541469095615930984970859112119985551483784242431130779718971312904372317836710822215456253803368658559600606091943584699099397931971726427829514170183034041514284634207739229049993607267508195393073078854977792652961502093958575728136745597148870749714194678727223736898408101663442457194884136084940493868734449942095753667295926996272904297622644349997637111798604378077152448750558731239649196750470335427636259664675694184218480647031935774114366935073174317902115653481826672134846926188763941475348269542750380525944870875123391651520822539952283827373121027382597582119370275296461241654556769376015456130364139883414963419985813479857452230717978377948725357407866380800904995376489266601467967588784837680516258740354034936155018270194704422849469749094639459077132280202758331354626998663290833057956075209980531196058127537023922619206498387844880449960076989715213024628447044894051940546491568397682738785640575719875638546296740878140447583136934431408435968357373464195720298340489331987161550094996118967990910046150683179211520140197584782693578849634032162666077822510394020517217862047419266826269551722475777573635969367030788780277836188555032346283678754855420076528407249158547971100247749937054944983066276524956213194891758040719826843848857979536518075898407356457566999495993910861891555572800843156554814855277784504707862117676205037203271028767098316517677772617515965736661875197904558318531357638133428631830977915045898589241781117158128393877354200511500222873740907356367280463558459348068317800771804784628885838677865149395078785832837632686124377983417582255526458704799190536516706826067423268438245683095029282038273452106698876908157470385612971221372080036693260655334781941892081263588579508619835017990282992281634847740605992305233983238618367166700311655956197219693760484755849179635520451030899222988348872798691403480674397032424022786791905782317523005161563432693861756351598079631353242576430466639654826105298449236288805158040433092694468366121200155053987438364855004009722728658383085587997773068104162229406084478108387230010255584529902078065081323294982258624543317435325416278374188263922113291713433811128573776605033191054677485336723464261595269167984612773583219267778057767220627667816002409124694635967288183296809240003686880320074072224283381370020550630970727259687033497263100047426738518911649736837889310792462302291016552665830797733634852489718120734185335453733229340872920425113842735068446741916453651191369336864087237126231790627547791022367984258023438595862641944698080646209149289584368735579176297688496804059648000317833394503799639226611326757240976121434366211891740771216842406010851409309480890994657615386500094066665014176919553223325631163235817969890173401863593666025012341556082413338734834011685846352350392902286939658752774059194470488506948325202916746096840995065756657776941942349987688756710937167335757025383208642286416541627011677844377762231750568155589032957256908866662718982177532643143527631572821826373078428379141311306400130307765458671035232610799876941975252544587412256263009008304227830672425040393202093460611218260602869422562181017237101621487033170857331551329228516924096819182161832534887350406272479134208907143578069839673070781140366813369574315122829180702268465275625136540033672561545082234920923114473160820876942501704803581764749069347807057652895963130870738891968071356890628311367184071477951910124176911145457119576720374227575934643450328948466278555083725480469341883093636427644764343337078810065183181087842808495858799908030525563600749454637322146038780270485948819664031617495461065081843462227178860401059186645866340610420427523636034503183271573699854940731857303749290241838257539918736357472695893977421926198045543050741602231196003093584114887262739242601579977727127533359908307020390820894547334135484265846557945114097449543767841850335457379310032358892946681084871503172177201875128782806547435987478854095830599274934506094682816028508472764998725364775819284735739382586307168939227935206816660194600086152723695805788061430170292968719565388994958938127617390590331130310574306407581936065427776616668956289050117274135781947963564310392564989825356167880052635582369782593312134422449268812006001901246204640949971262239055341165108849143817490561105640390878684440378539655540898145024322532986798447869844790481719776626941401937333404954780780541797875713826557495166408868202018522991257557811501917228665980753619404867908287468651682801035532124149038441220047866127031802675332220984665877601214184301410497049195368140880572830640816247305448285765092400502154623482788451501166734639043283082916315637325320988865318650639332125994503587464679642637934099775774746140892645783618930734337675118923326190550344528289430848564839718030260132500350015865916467794963651244181737155869748790002184934556046411710394295142517419760233932373046007762063260028071261407927385834297727958931155391002577909425659395593680303801702851882166750305505297692091041572125329596497262731799976440120535806118983309275913884648991003559390050868721529258887345538514585502854142098332991081586399129741667454817222532722774876441032954834618350668369841431712449807427908132724772432161940552000337627520190954452054187550774982233826266737154812178509343649243084613114360608209122628402502086552152281738012619514635470368170471664130618762172532183706650781880414644810529147808974810622520058046947761242812003700551053655977165428375737027293515092463712038766827683180631705001024566439516849557466289719401296227214906350651160323368062645004617806364348899142673493084808616539269887501094005856783015617131258753952039657085916478374740014984083701738796562010431733959061298487940040442629806334702941545435867958956138026797478268525630434603488114977712810750536184737012379610946133200691394413951713693761026137202372253359252869192823394132222826040055514261066243558479574672055466182185590631383376338494878888108640016918899255477425697773994158324364813204545824390586955748781209130841971849446386209800115913022282497593392221354477971857153354779357424512065981604030847329873842180826415818170717070071415723344576448440511211781142296503975514431922782624718253472768210734804324408423230051623430300126492346301012979147705674990847976837622731977294473246743546680743808742999825304798682593931122143553387323332778516742638247327806463109980050693526398434506593082035174948357698524942525011721633910229574585626618515310884912031531562568224154811754516323247838607705596388975195316533545927131091018157317716979505022692929108891592860052929418434967908504447046948480086640807545209107424594168348967202062516618536543333260544204827857151171637935583411747022929437112407187600062930729017574808741676599286011011316039584797435662707210775953443603578902654867849073216227646481752342734100237053438076885680181140106428940108845223934219033337372436592297970072511999523591002914718310903927902628080312822094665100592755524814711654358717746183755884094535558406405256028513429351942535200835125142515411861241582277355673352934367676343934950618881126052085850524922434951980462777633417362262982202777323687080551690391823538074629341493808778863007505153751991653276306579350696341946306343614499595898958188294426604458454932402401010344659714588924063040806395523462162418985481882906263621406357414371734831170781204156301318207330509154346713346339528897776264066730763907397062756101806286151332956498292417128560535996413878985910475317239880072535758329588897183048980121246583861389301273043636372821163013083720901026897962431122013229508022423872700134109652244195800156934142262443742051590038931692609265755764008525552482217437009140600382787481734208275725164536241518297421676157105091946959550908043550348697143933825099431191271586244142588414470038676403830113761259174546066151550857634406519895901541449649140104904923012446591633126610282369212521797530550867229527348767257239890700840627206285087829242477216120492331235670527804424610531925385326541181608887705232066345016015618080358802199176387959319390259478831622480864381128666241086328654598980551329164612121602344171869258418903746603483332417467441566219005853562177064552333924121860820920161025533554762052346345122008784383104601759958043904060090863630582097082286839044969473254684589986677176754198679184811360818333363921692045127019870985595407546876790106123177946570597041450351029341767812715537476850470429625631427868465407759595813745220334991998469451802504054088780558803502631572256090227851836280719101889210075671211135317335892688414866243370601644518506408012631561828218001700813865421425859868939320663252170567272144027008138173788824666551211568226115651721750757897618947060942281018096664511070087419217591385894021495925965743530874274071707279877877420650052091178196822360415678766394299492466555313167415353546458928195150784682324446028868818319716545252059541179476062895175139836354392071589366739881450738121789264395470984406505658031905160624830165728417044890386765967855010820184524580442876000736184904906941749123731793928860145322577508437600860710360904460890581304406657732115045476912056042021373596094313954434274074674660797641322653158888067649564017708019021126910306275006265380425986140187805418454486300962966040648928379214720414724394039931639856078304681651267040781865838694549306454988115525560262593807767056077800357165226040281379360780724540553491959779771452397631461665959300060759132928608587939714073958638482428834267363964775352753335504036401395868324497328676360615371005579096024652519622943139342672637585204726300323909412048324146656977519335383710452105169361880003429856847398202068530692615300651843848611437436953051345015875563347072744518785680804788295400993116345304130618972894643099319251242155565135525172145490775268918130056094715991859937155123513382986186198880673987838307395629071821571791656465691609915977854374559240206794854660881911516499229992379982179592185966483082163895214844174604163693355706321381658143641088476257823940588440471174422682019752664371094467116516229205372022123857042964232851895353290733013779701880705422438437156609526225276648668809384152562416868299881883117754594940603724842370684874177196515229338264825329797141732057677159360649371485556626748731497022088894881545475742590608688080241259752580373857627796985349034344505054772660040360558648751767530838881599286565737115914755590561550827416102681372116120209740000750870254141219217174437551918357708270967831013141372867302538612659793577285669139748791175131759988652953020699915845567717659488939070647987966130232018813393351207891695024696338849770008109528419472881606941265625962792427541427661510930639517421817488007501386273402389196746331435606408645486062220165631229999618768556858411776347429786626113227687539749491659825453601661007568478744456217609092071628905849873047004208321375879436482305057572568174307180443804408200615940043087331454335185024691740135168085192365776613403605304271179230158280904962114465034614487724473384590503457269546234287175548920272964138219764004275197873442967876995038523231602005450857736159118655661724472377902516623548002908314687243750122448251266986867751670290686626862954896412134276509549915906735285962684354625733798026239597137033954489901513396628866251892793168605437383459607230317259241602379165567471383229650226528510144697221881181493870784641792540387417453938087892507629769752244626810922290409197575507597255928228170607650657718484676279378802680654076979305949178400637083172417131035067037726710755218287408236644933434224524379351872681499061651369120912031389337890056867920067577388024498185690120585697966379583013979969817153009742035577991354492251748943772520332989746395102931275900728208393120538137512785383118709453885499220940991884317365981411122916095721849865796480954545961468039947989431945052460999985150033533588012411107617425963724887998788247698868113284705452942304613908405173386364924549948795366428338800287591014778164159514938229411149244008562060446319923502726583994310368597423215347150495114384458446605312944278408845586135070679459912374048753733418989661366639852805428452861405799086744169233937767023311259192894598796506548295315463153555432284348605508144102322963916363020483602315577976479454549236935423318238262724701570154008235180073351127856720637214939356197181994568695311339148913038107670766345035584679015576043068117452094030696080152176515466190690708460853690439806325414843819688411379488694605258116250269011717604020763423713172160978022362407607005952702561774789707316233343089378165815378315229876818420648086299294792106410260727175834294078462648794377861632043155269801409222253421080671779934291361563835937754004169730033525822253661875590551400568592040346201560375545074282719138576335960695314494607276880435880197284188581382680180420172469319676617747580432720961611691279744627657630251997578162151226012110534139432352967214186748081716355011559613358483076916284423389112044792300572368481631402221353781662495604575162139005439296572121353877317727428738232229528546398728382466028591115583631049870541211560735553591759230899135228677124028873740623859603084967623107796278621321576358313103641976235539801785704256210379685833142621417405588492647972232898406152624209834302996553446115780089715064435651324396808010317616732875284935294514056832462434906886383480854447664200824548701424724134969841947337272266228494738059404595766219337963599029261026005990773665259811808017116677609143160584339601917559498806339404935126952454212702335257985375665408662913940132949624237166213326466128611614437766410832463195342701577591657064508332166693000441100063898301250205665721187533148645718212829756629519938459457501669228588586609159420563037403905594642018656973840601298274123431570013143999645333678257611025058531177949628625921436588711875033786473072821563082879440241390146937574352511048049292018550029924799067311542453703988156729237880984821479765749969723031157824509637919854772935690192147290802029759994179267024632861490151499629680139673982920879502229777730128286611380072047313401979533103337520182316464027204448167049299722845961333575175838785321667729258317274164806548995775391297213316071154041615518038481946262802326324281516667137411027287950738089717884703444492311304676790648863950008768793703729242704589165168929704296611891907431840772876470975926557557506691889900540847960392053577400311359526724342306024675825943945318763308576601999447405930349879783425121635403430238505715335616123002019719090950794888743688093520815986701620502410946648607248521707849151486886162734783797955078434172499362418999742667045261915566611246920184169735660134671003658622662247197427788177614133933226352054893128182754614230185378984625344658310475634592220074143092893653142044049057804445636811522751674820746238292954097620046693636101285511934796264852512194455127226767574629529550781957195267557995077857338304074780541931771495573562990414125886335141897653085002741868447511427118539567600896480456946045808847082537955222018256328485716818983599668668672637387794111589845804345972746734066489917708289787011013792954340538011675414457673621163765289691078319223144208154291931266240850861575488565057008504440565121010145123471151597986829466437640118039312252605645015685708896097923301063746816510321355632619178168314077605969164134805646418814430794392144819887849405017944680773648585616505355746384394612536755397859037397953664045423590930833828280614815825529892758029550559755109998106943587111179985828875697502758822388800961857933988951673530055703747573270708471254546305755584856628704388602167543579185145442946094602925720959948277969067895909864637861328186025267768086989285285081236169703851989218164599952362939838810600024690062375732858026110926471640437926219970786062648124780618810799187761609007286192554226082004201333608380454727544356344169417975665448529096620754329249886373019287346744474245724322953597478539434921581912849777812615190497689264033345049513623730078747804951059845383308527410678377552404083903754441804567183632695930635167522943590337230704234753292472968462532747211963831639629657897452584624217605369281362800084958041827673215748811387940363920341383485164754411982080648637977440806920813660368825413104528887818905147386496236462235502812114436148615306901165026129680743442167304877029076318246486903203503568386604475655035683327666867605539085556743756031969950934849035193658311692823128009619972997556075402717244687215043504560008144538307083076088950459738241538278686721883562365332122313259554538899858350788182935259669816030272383881615149320600582617600246899780808820495932823539747369730012863588978257032801904810564363317333132483510595969611930347186041398992935738100477055167428411311771601567203230790978487878278553079343148251358720281834338339581142714952748134296568939038873595193691637247607423279752118055173323058158451571456517394146935743352962308258610049187961999736100231171051406048223537480610616523370197923848880855508679602420667699624576732553982343420538970393509527106351185685400537490908011339470650792630858497702806762251090487539348686538773115900854625053722974871731283480972094029233067763442795289485043057384546344338789582009654470922159401985343217512149995699359741499371825507080357942246854654207894500436717401222893358062073288490791119937556476975018215491872237145586678522242278000226656206419674259323736664728710306466383810222853583844878546028396595994067400145913905249056099644995298324333275391691185955005875930678350700219345241902953834367479119355862177042849877712845689306940461807896130836196839873643787718028951031920310603477514706419992493518839604708478261832714138986599297004199751758878615034842875379359564141738632641627701817759458084305471936893879323486704439582579181228540487057763100376577061804561228377962472723512303975614972267082523644236564526913917009242889356620564246310384801711464265654285395203568560550704523837561955553143834100980412454256029513454710442142455502846680827910989664444385678210232091418598288248666852265924811334326164781065699188459788904361974758036249051229492029160913004417311273182039159167144239629894725162736986419140092790033812687221514946611647204403879165222726156987543175004589571961362220619836589756639388489674063010824434066167227879852371218838794218394940628347903498367596199223325159295474190896237236041664147637761294833481838986993352645558330509050848883105227252365764225634901984471702311405289145652903662126971180530434099164419703741633224726302565499933412524754879821772618387929294959697519782288155676063760813068246044836159197080779721694402238862175557095173791306859968285172213495792797952931670078786150040961055906339527267637779452502539180606134791358160436188780575596660809455409940496057500943340573526233676641339254414165116324453523232703949693136635760969153552363001669365130084466142133622835036277188013050345446539333277295254181194106319857811885689680149839736068663985909411921176512089436984254898031480569634144624220924453489561312116980430791699364486206818433774978336490826848349852359710547613069951060209287748461408234450354374132724091329026887751400515206831495734867918722521930165327461029962052273535587568824793004268011505197361163787727832037764394590670665095021196973193669388179336214152364634787447686060653818915504034050357097991000570014352132784638483587014552700141193359263572251479514082343130562492265943572506094564655374956146035615404105169802165490108618578594149988426315793394457078763941693464473760966487412547497924353043473239368662998635536030722433625308174804396645193709130333103992078901102324546919716500255626912469107175506626916872197686447447837851053966603930919791613576265415260925814119173277737654811516182071499705193237776723111380661461571181806958582026489382556773818008234219747475476537380133165227256179126157658524830942289889805158850145273558325608986597618349130964093537123915146639426871873767010123176349910077684942671211488983918585478149593328498121237511435995329362006228117436902180312266359467868990537084894292899761621279034979073975282323889262979283861191074094211754367595081036081660559546750629611914123875857329623801025036962231628745086794656854188911140539944776810003651729515501437752848439404237550972925476854518234116225930415285535346581587280685007247934388596018154245663046260496958150422406057977240458399496294439545100119461184661786134065914830899459145378760106606564261219366285211745987736247926444348122839981137850565092994308704867413858174645655732469609478102025600877299658590134193817776201170860405564921102532531253146041971486024838423250110414237414901292848139726098519082544849905800609539695719353459795685383142048599572002582880798947019461818474823814170604436675580815056698193734347906945609708528919244084815761538943251414176382942879869059674133028186461414736701295803423311979840681830211944159763954550437146464281259867518322993074208093286243240655225642983462966229622956704374781024879397514679745719864724057484492229984688443949477070604297127618284407989690445410859620966795437832449469242160247740121987000127628628209065642552160950332831520061548600891185153952043749075099928212331219533769909344155251009128436963046747172449908796400713691564651046181414748729734666746147892078424738611239455432845069719828265027671243310781822956930437915192035595950406685525401782736735100903418181664518406833154993048190110848465946476256166476899795006641631836117645477093072617287305338876184598589133253979468032050711981121106335334926938645752480875948776053175888971828855488783607993748857695828686036011472317111585570428201179861863551868109248372915047376948166993936365598103843464298688940470928140638215173119586678880819385538183097629403701438882274453203378664186117345673794803908509299592621095486210360047822343746848120306066116532152991349972818759339062679749669271556957014926884069537570638586234509330235438377498215120401110794487589982756284931109307790973794910615988601168912470132969252424258521266334462582965871008135274471290694397564971671471494513437218185642985957979277541802418092545640442637470252835555055639515703672240847705254536120187545728444262849071404648226147803677855644176381203234206432527912551048249655008196308948085898781698776480829998115923396014260390096384371141139907832481019436199621992972507024502074454232632377315189139281727836095521053565458002988383980278097820453592962974875728413676789836798879166307131056042292556344635122614755519529396410567124119059268963758660764174321552665516623916893986631483901883196285374684801782837429398283310727249163680586276394471335035068980373329166877155227522511475775412296384982186014060210745601955953278427058451574211779777861522111196322846868789689976675068161208887056029755330678549727555163269350074682209979891322645053343538898484813454782847125533214190269333212710709114015874868415400217846590303279029534826681354673927412918396014439216078655812874323706423235804794383299338172469189829678215691851118905472960606068955195314345984550062193149092736970335922068146139943895137456278325838000458008281665911325072136584643873062891011520631619588770825132942876760172545578870348299311112395059427598408732962524153726134019779293727476083854765674621794785042932856246424591484667182496162364637756862652287023709070299745386806815465521989132586117339715135079804421794841580546739226654098976849447682464816382351425317080191720926556436913159718342608563157255863739708017223230097100792133915475472830188082869969130736022327583468339498950404794940558570766943077468981785210469734709894903165945986690803746758133403580636053915385883219783792199872169165444660039393257862641025505426838655282994181243733672508280860726026275006708125972817763194021810463624874084940039002495292994266333722333408434541185450990533379851978617685174093019436931392796830154257524604238521093018994070432317609473240384453712850401538431403178171286143013442975135754757723922580284311522313394635339177746537452800128792534841277254559462743099789980491396787291781315834769173173696200581250449087578674053138882686994876158448162086594855278786312928259633874054280594605508044460804556368913335520868264046457012321337512631396198936648198135708681129218908990383694132827002536645922137293911713543852093794797533486964298236982870611561332228757968571294942993777194630940474685847552323560012212456004758651084789785512676800838990363360940616118983515477695456744142052500277438681611302472641134297222142482735132606199451768801468794251779415364072381244214379383533305807582238634429614157558104797176983028963888686998250530307710455810390878127984651612718626220499166147469959940995108780191720534645021320044382277312964811142854178732628412489920036122606007279111783104285502426130441288004158743577889252760198477003655823049803445616371259990956887993733259618381719862300293268890571885705818544890457283333550444694668883465134319352872769661947762222193584956435370401319103251070707971679566525029984750438307070815237092789759380261022416004347414323768183167707801068332670137046346423966897529917607168866212321848180955115613166477500229671399695480307351319208992361321129041316692517042884580775775288659762285914559351036001007229172115993702115752105050390874265034004692387385571707301318770326913272706543076713015381229010119358101154037615163106553895195730545169021654060661522950924151494488742154572392724872749095018856862716130486802284326249903716768014261671916776912658943565172838881989161771474203510904844015398733963566564962480772985208498073404419999731270315905682485105314543171951594398402223900506048560284798594811420209739550390784814510574442119977646257570484336839873740083629002911717994397100756178350095560334082044032494734557434606937608623141149735776144568321504031013278445748392507222185732106504937703734174842435131568653762603662623527184765870494654259605769783899666752547901178723402864306852497494012162761681167285584296750751483228307070707367151608356510719753401234731742786516487638230883008629929025377163581244581662548420321267111090604018294788172442748724390069132455343010523265347120532797712394967261245875810453351966659316104621041954000686388712470334512067448628991856739698243231475388551670453180010242916931824381785891179337510688474273188365600894579475751198375261123064735926635650174135358970233610238583642347020905378743884062372661458555675253637872373090588211657873549311912304350849648562830988902536621701023032525825603539780226617229475409372896140647333261460510063497313068203947654662323548393114235847969482914006693646501786876513481194439018310942100772216223998495514011055188584514307009979827009680469066952116685322807032930913759568525372566823478157157836934224483884236595950007563552477465791043418281165143649568018198131159597488712082151654035269848447389542342281324535884528704447878794394742684558506500634356492806615516179986112611911729767329237187916368796544193561972025846240009608708657124627391638020380800758891941864335716163466666880579990319726312626363313939009978797765358001578116782362828688444823232853486959482950742191884915280973517748897036360014811227591251399128646739911253169651527275186579477243636115837513188253945363792637409387911148098459727572406299155409367425910306963291971654168382609201682847106446534135306570579066971166981970312229761336491243189115633199708353081860376384979122090333581452401519948520132248596074400804411198475322763697107938093881623481831874329896840102935299700293519615415423946334388004499644936365313125042346570544892607515234465436470795584872930525147832649635391320480452548925466109268111328788194915735303931246614794460226306634713381762383113544473675329323800959726159724120606096085949886752216192786462346192077243129004299350020464718381649619523030965357986570453799256633650878301757875233408429398634280668642741114409811916500623850748715512949840157719812595509300762663390868327743193742500031550362873679745824846202566815686288263841116814469072916375155127713007956326215046598663814641397170065148821316682151488894429609837871990995918369117034763930477202165718153428396757124984724919349832227541507096057332405349256769461935541107181790127857297000161178795870706450102623571399320330068210228065632543927698474092929620051734133180394482932681105302405913800399094673204005742217877584276744896199110749228223330947745972247724535823875338311071173765176663606382325300015454337656552786888346795148878212497008978051230960410540302688342694991065096047849617798816263738734683866260875523676116852498059866987377682451938960982660438814083204128785737442156956587466001443844112272766209216813745371392985815531191236567329616239451499677665174100596401980735568392950985022198197260717434245166695145128199242972648763469802091000929601676840077206937596868791203473136504383622885766958105639842721048498163293816831675656564585682970943394546883840598746995556782133512131127511975794344006294836666229801326865410069751327498974883752501095286547310639261830662490697054065937425923338266342864956972923678776059175373621760852524228186192907704427566173536691464017486586085463052329660010418086588316935172249520992787458387075134665520299117106134568335796790881805120614802108463101878001338950083642607565254109062677840064920486963043006993962839218185080088444223891877157635968703691990083222952163960191710166239826389351099071995382217288843280207546934642588159568698000489893308449406122073438606888993050386649729260571073825035277538860374067255356418462097410451279863713753210025878542411004022006957978656038784972054503103684657104726189726054630302099900698082947803499278674342845151037927205027340282369772484900167402218828658288603749304710628811763307806640901450347230904048493573136793165130176699276614679199428749761520932144487302659246431781610255442419875667532768132623300635454111180450718769258647850950508433262189946812881406061288694208351529153340042491014073355345518927305482684285696151083061138117394859399906334988564109562973089536807059831989765897384019248252368817592436045796475487114059646951024201955554079808613656097978543110533069124688835922368603158223172158075436384793179423787409200881630030556219492689731021073202615618469438023061261273441473708338600154024492925565117051597652554123369143545025217263741189235367293108636168128552653842866505658406047200949518554725656687421781404945658730093756076104670305279132134210637879643021966592449017764638063019181427829218340670193518941202617797464223639733896285036220757609120488939358979434108883687731618158604111739114941783783154700762804387699337492071440415329620958816048743675130511002714219164401975525420140588129702563166595393577942009048563673808804872630027370828076474783998691350633722360616850733785750760966746567683421121217298655209820827142338529594521637257370952861275786200270784825392966921186545129380141021910546705515029622069710111598680857727424113363606946873239755174618769082348608198841756598666804482270172914332911380222045442754310761571539018850595235781996096369970453182310126321209825394767720051367731577721288229098229470058019829108678565949799871594934651094540595836293750943769428761594113738180769017284471343067770742474893533138373648555568661964108675966650119052542798902318746498435304936363049661823955420961067193041805841210766855226908396681195164275814838992747978604409345726208304985612147962492537496727326318982473202061130213969695313996172005531137809798600020010902847384586823365026256038124708840455376029893938264479863600917892133620827859258363630147743782827863388157739324265063261821609083295678128311413879574784790820484221125443785994138177595841497849101354199639998231204333457255347004504557235064058052960966879479216124478765966738666292698709858166852446771183428381334793112474359144664862554381725372598251778582520479924533920752292393466055845461848059803838648504802471062218827296318890692969400294782047829760468981961008789970813464447816777379543895539035589348782462761587166113442693301048437935152040921123776141711163199375716945582101332148607102256023622765727002883084516861281304217077350545508559072049050778353666507716247126752455560164834756074613186932918525729312071328237429397965155098729497022702378891305784310093797785736328822430991392099541178103299987448051635070552290358419229200751520601496835194146200532460311187145166539098308136242582379321424229026243467735689504448446663246364587622723378562970635363962066165350585670701973877368252951971063552176716789589723454849016230141750544903887818559366864562018424556261633018243271468794622570907000109476880492941875497302183488422581081425930969420192671737742961073811982195940231872907899693151527994671853793921524482941677586503169713308694786796580182039602500151430295639874446497760812414213344438793303418261928446557696977416394376616634273699972325012161582143346191924353560539467458455811285331701669969785484184020188239570302594327150989031881305522071468999752315428417418619221248844851539273246611464629513824931237196042547458877436829534846687391749067762790981596857071994809302261478534697098616443356918339862955638742788200845042818138190131464322877570840154750104596399861186048915814094535521220330998344347170842675166050517218038683826027048644983129286335462686767763154930896893987877697041228894070639760965560314703416047628911637056556717081990734643181371883111449310960918270233461631839465491317696346892673565490661516355081868111236672533670535483246476360254973219114118305552681404167879094504503219048809698149417465445945085684911274852877727122359053021189374957818171748078788368388834186205979650090796108954590732086789270592535252150363088033702201996606588539016036204027532272963766505439632438980790591745198860515961636531177983065376433108923724294341067139000361217180739014877713277575973998000718110564906004578245984580633762321689564900471439367684128726712022306538473983863359597771028026287952245984090466177949673024467941892884208041297109530593006836687172437961790387907906719387024896121919610439202058986118774369004464553559157216971088088326992425987004129499857922511168894331344617656725085129376970242602294838522875079753803733396994806425350865197742120265036867978127340279086462971911008242359289978758157679224635789619567769055466721678897276497834190548768870791757325242250159930100711351589829470948236653954488278438787688001009302425938217031956898578254024349104667756814302489839432791310499194343171456909416416664527409573705957167052226611071326240584934083692711668888622906745976492337808272082826202943833383361413370061465698589468715708458617560182450378262856967373691115566853209292018478830125954638171321111443724652238061923453684328566964888582518585566048362929204439477905045224990003680806687606611490324137018918637759736025051799145614712365596027054115521404073746111499834281190593191810961010402402630251091464643052450800201523645832236012991029700362884767177680873352663162927315662254594202159711660374221616142375223186173172875925657474150838022066166851134715129241689912265321905776678450920259648673196932699918893808053823345873387994803542905133964592763575581513976753194538228720717278597521704396569595549412022573551023113092766929930894979299271744276419120275328400137763001912643626575220573046657191939754870136108262964482790150278974869619760880716461385694085937283315051161188009801326507579661719821676566014292282386662754329547023226000262949631624331658990983185429388720251771112573132061386498929787594558195818280519927972837707527817094656493871206122138799581056537728744697206802968769756671844966635525219730828313695566320350933850805278510460113592926192322487718509956410911506218429276539102837051170257687047032752133353463939204134100185064016465016445943764282994535089570955664231891544204838375087849893885037618872405935235181664660816401200527683011646712387961354060180161280214696803533842482639291698405929535863272150153255092504299510156458261932187900429263642364019656538968308089479287905290125173982068278651936668861954127226604665416503172638107905785991226726642327190050592529082399489473815194241141069642128667498819509602295947390936647903015985722055554241408283091754160243802090086478825575640574329330235001772824106486035193876824332591873011346013469019829769269843059305607497691167197283819114324290375687951469995987213554444707827259635131048974674729197005714061216731908921330173267292273283087549426195255293518863379050980293039796995560610726459828654803156840898221984977519733742258845215877534261317858454566366885476042033135184518234532703224361621517959419930559475862166002151208571576100866777739433572038248027876628776279657455199201235533220995205150030536548811024206648746493322337187991891430790201361836414772420123912959961784063928272076847614790962048327042774157709150535156898768542698317956406539375992418568802686992117106705557632016165106138883018077856616487951030031376690366855444648679220613811446850688903608616245211166740742032920343962773670865014209864204954950305057920348881942074328544996919635221739233665916714701620857358780925755522866533585090123095250875916361935676965487638878472681943284993627482718855219043321829453026934650970980919905342376715197740604691858998756293014949328824149129160856667252775781823663373988703597417039388750116170471733896673372029599955847610619130816185650433461110454557087552252497366063907405333832724980838538690020461500477236053550883462094782412829819210781770350457746733428059304870707101462086971814540508623509302229933217276176122316082526697711972308267805079818741328889407833886599433423905350267069008573699073800741623997820873462809854800504668656164034482341968319225572737885903181398020776451199634731780671558035347244821813920111607787867442136261111891356369076036867789980211937061126871403753750661647412750995434932019301475236120579328498712223135664160749576407452836553711282690273536302027864749741422516288948277269163374742765373925110595804152937884307892664226219095953783825216532619835253393738980362106763061556374551601110036863649327776704003870742035672061032723795746589158279170718203658454099279515218699488833929772888070838025229865111694112543059271989102134688281684521335046585171533353972904000495162508135582333183741484028101728339615050685329026228647512751654595353481195265992149068145789349414936918990100511321578881369411950852358829687595330855461884463383286766440856647680267077463222085533901738958111930791711601746043719219042634105027310291074392691014133756620874754476707875085436815352000635454486036366530505633550601688473479338723037788721814211117635874924545644687217968341698271037577885404057680842549365573401536546510300338007800895741856025743816088887283969267805081065936079809191639074964572043729486728789474126793392891574725000452301596383538623321238490872295756272898048401613966137380353372036508639893143084711655252284148692581702074651983496173717121902497579971487481742934403989848037951203115190550057051129151679249439895205109542001845691941720846244405028697621369434766412151699372292344739179861003090982672463049192923896561654744502441390284183171549684748077339116484988588522016861540744450767291316587920075693836954356527616942193111546384289874667280783928686166570005197349838098725315448613075744836077201280446335610281840660884116598556734200760607892847231181489574141993673194704426102913418036267710362730859017218787940506708467466838518300836421990663417549195491869906332219941237883071680240307766402961160520732531882517853966966147688375661562242323817135148782845584778672572388415110282410918146274595976498019747667567299110302792626750963082018183325101160368099566149158332295848973566741750368673202067825037586637176421370335052346472019373985544465379567938572349720759490885129553189362402258785647145784066405917552191200168621341615960182004879893329916878368170373137366086122460213809969045173461220418273084878354064637462901559080539477113334848766820989613761197417522346924336647142270497929658599314340893915290132148863730841086007953971677602400141274471741244878333053558230490516775986738575634316989763947150826307828770580923449335959993616999063297766766603207932947938499600680030635368935016721234702907908430169536231359513476853638454059982674886179752422740474850174791867535272322992822176243574076221095840989476753975999346075194078893388135021403473934993593664777762077472495958615647680580423399704823424561867950890262847056270223361257746603118587210512227289132430850134922147051287549174362536575753293903416001784964151641829278336428270310709790946496639305011154483208892666567825901558713590702271231223331781221861804437039772172230414906202034974365864557490327064731187763918812833942622409187887595849503146105930675613418119418750815643260022881505792749007616602895960691936385219861001371022267492303171678329619539870999121299342871621743096845048118333985705394962574380530828004579965910061675138894928469871951680105186532698750399939656371979888018968394158480079072536804559116211209946998792120124380788506956068474731391649998518082127642414352160722466236026106911420509257045512712504117544854257445035123227954989425990767282008162034097451311673163790112824224786642107687524950018638041955928895143150824716863854735133356310912558468574976382511130852006369173611932404086032800441714214788389201023472129445207142624484218325459864088089295455531169038251130523241761666091671126260469001351067758760455205623638820457949198148316343035474324431310495469827430603978521484042349039947416747480033741675511110762823411971633287346505476412682688078738582346270420186742293689947746216940701473964662274101742386315540064630210601752070812611288450399664650901360478853504414214911880904963467842301052859918279930685676549022649561173926066486871313941170030847730305409647040113095689803085487979759325080740387926548144058954438035721659053234914362207718713795437894567731755611726575684586021664851344979419778354228226395863283280360734327032265753144263533626278382695874894878060688321730397039965219193680353756455163121217793943026350685260912918315774717516989480895878525126885266929503625659470362151828918687965160110374040003358712035237625015534673386415149828627011918632055191060418378686578929405600537383245339424841266754708380614439283580565742111013651252617578593653670767263078842911754235148935856411503329143604470593358380362048268638751326508503113850773536579547544810031231259579634725884736889277796624248690200920115999229382166100976438138164041303227900482857112899482957696461081657804308327561164334815860101341025578566449712218721345577965902324739747515969123157663100929277944658688100525920678539104646140443835391523942756944457094603377839076711030334133667012717816449262953676565547153707114597246771691783653181255788716442714802711277514327968493466515809263860256940591770867641255539268514988616582981552186986561478050158535330579093548974124937004324617806464911098389816668951461895994586809008401164085231305819573483514053015889545496664936677568075657070744501789982873360551427660634594126175629153312633070022103008592145632773074630963208639348601405121479960192670244878635825905111267641371857775850387437145230119663612034810839735245125195495296245179645857349064140384064006719767375949277302863251469936921558668958031373518273915036769894746884447685956335904959328454132207471237623587428652915582871289032390411231023458056216287522666559430074378418071605130189508162723564616330116861741506894935814221688551478911852007034365770738335814036920839650883941549174437696054174677475668727269443069526513975346805174040954669517836638449330095448362672550865658220047994312399413073789643730076184380973479223270793534174501887574443697444432186078484836058769798219303010778020512043907361222714050802310057709759733712826968323392363366071769989837623910910796092635741229955382833461263011125010603533249653690272805066468348439686783492730343173173663098992828331583029352810120953970697103854515099702826488214725116787111378924038125110661859293953904046441824822195236159206103394402856291729247808465725688246367762828199064404232363734562976547867458134789800462821953254988034885283536193057518484154460427341912202700046280479239847378806344395968021348322136648012372373298534834886866571052126301765693189729981460055888908429453126804008580023331538980122406609013884716553236875676268582209841486376598899877158712956375355814402516926275264571200048718326652275196048626582588955256138670681877386965994093076246453337896488102439250025183468729999569025818375425569617124397746714008507198787587344687992794201766252832856709593694996846061451322087385023855406109766065406733791908140417044321798657052362733808145267860133831896927148123405972216425156026681845941608047854464680900284245148304190048309022903467635678408537159103564844654904239999301277699892862840791463539351218378939383613079467110084118925594091142668319413486459639418243437275951877170038209497693376970891561765962934451550396426303156744822904730995003840134898889757695618375203793698087350394391959361185549188172208588730724143034136256038208054548177748062992298614207909582306436686024254750770496123884738316723337808773044930517238657445757794835476084313265510317744853949029024951302126004323153805473734265579602341068393656896353580636685314194395819019451126656314985680440831919163936920374163415298490265295523710717711504844180243261964757468971471066756255263179338340976443432481159301725241550194238523066923962885953513869240711528161972873796369027180241625363434043586449705779267742359660571985733726005056016875110007391716785795539060311267989373838940002126019167545684740854263902911183411655433965842499348387308545353672463912434257616168741607270826991796620517462378428274654318240109177346603254761179033958597932457868530894212862661169036551565143267059141598541320254568358961537894349285725438097474887583162527125474403767854314723816746636536615580571190919532106138504750411422418787060740955096689775415827352440408304013652509844727259931072563394207703461890202658388169336676343164116191167369197595101534015728149421222018791859494486327459133008635842381797939840494126736811454231839237946181570681369539083535572864962560002378878258507296138919322831893629183060424863046578271417484822002252223268844158072020351518602135622099895498991762043777307410058578389328872885730264605361465605211103288235658436964723676819668678230550527022794737800310781027955548052032908127791577410829326998099171722928469346684987912537226063270507531252721965895283512100596713766597873683279515422503673088266104138056613965757960617964293922664404597023768568807505118494438078899175502759917697479583757597519057572452325334484110634049691895245531021327949952370923463891811950723054313184221910900217101542114762021411216610322620376019683479222740119429080396124464720050044337160251929441690429073654857043204174033288877591477643033561990277345118743290650258915249380459707647913848740272200483632069625286682150965621950196538961884301506442774420533889408861182955464752936669788566470110689917709640310932725168787677515290164583567308693822545134797067763108231534933970916791137351932596359106822661718973343454245240919568571982349768021310337314543074164967809452327469352277822685087302506760367305981442758769548741864155748734135584944719664052394752284343096111233987095230718393800492425000542023156823435147628315897423232685061536330540094481438443346067310747924580995721828390900715781940096353093364667409149021251542973594106667860138127350451247577947208462742718696100704175451558944346345935997943506818500993541186967648837869129717297074696060797904023352998325139384202560450622313041549746699901923282589587243156962174554217023597854124288240878600851454969715722503645258143672940724895727695860706923260004920095050192188049290795690310086645576294491905571937548650958921402071395375451269563008649831149549674687370700094163296901202694805507113251224593421666076024650280348491287752349507933177031995864047797643449397355597185405528316604455950462701131504522689973379836762628093673752132827840602340839582404636373882817492649457230950996822647954073830137894351495583854349288712103238988989299427570289485661425776142667722745709846771309910484522035612625972325173836037646969976801665372452630985614755358899981006626289700859311585621361561096264932940486418837941869346230488090917449524862173434408091863231272898154050879462232588356961191847121157370715950210417710261692206340704089116842917890907745082266530244093755676284130486581865063415047281518735053387684236818066441129367220569901501115817105457358442810153588815804394001326014693193673959317247005574109949775410793179102210752510583995335884548729526914787717237192291310579958790687584314555027528597297406978293731760159928200869505550281207310827410361980786169139053766982667467366658803078064973390156281520556270755815458447253449706006879411285158772187654772171715862184892698306203253137334026954635983634615695337481243924986794052751425511365135114541538149258227007369957062941498541675340662876524799700848496809369836643512324702962510496213430587374594762064894637885367103504452881116359924838022366719476807479596755395505994515406348152101500493505182822444825977282380374434791568653577866653487299250780311735023435291810907416906533748749485143963728669128669326725918124267227883769668024409508329987863296969427290733428924578334161120097325088689799052656683549393655221055348950114977467000613342993366749413104655782916129205320400274617801592698849050918824567444109377800024103780112735717532439192501582623292159927339311424122424056045290468967836223437104647864350544116700125313415674489959451341661981979152667264082683254319279996922117369819875038840780931196570292153434979299112878249538790573276850660391845555015286140501215680675102565138079435839602769369117287454651529033718816327906000541001285471569579050202304691223375777668322607629019964695149564405011686735225946006842045755330986037454597542070496487347730187840458543492723574239649069120329527549863911935375893155362463218811932478062049782375755298035239861796315045473840150703578211779825925926927426403279197613085809843309876000750739224368266673481735609696020109686637598966830933527581818508308127816052364870205137107759387787360491773822106837404618883328655321552175970491896116160226081089432276100854843063288656234273359459398361398881680227354200129611570011717016507427170176658324545393110825148288161160607510865481991948213257798529463724003132493669623562215928392764327854004941802374726504210972525149551872882727460975923774917583221228011643590726248611525933339742270832304608206062804325228588167802026570156795973682628197955418599645860892447919330467994091321761782951182121065926613285697483319851638240619848250316635488629391090257216502705303487665618794189923287370821740701955617338563984679049973896622517923608952242626478222663394777062373645521900902783848868154698099673549859230263321746848534567623979026453498107822788436195199862521688556364091103759343865531469940192386635120771430211880562781095447721215044278728826722430881735809104913969404474159384204348086539743357164402018466054098556420623998736927988916540975845006227102842194939319489041560909263695879416423720008244719493586510497627777925339898762086261439715743181715452363172382541743116064331877774523839138245179306416657268038600716004628195517843318672377064445910507079804578774926000097811470706402965028676356704876662729349651572483189058401732870384645148374736335767915825313678751828612450479737162955939703145574430547331586820455161294310957451325097715513103877279642828364076069323768633761513065199536969129205836523327558392046515700069844869856725601122140296665021681147053749185410610621788894028214253606730775801300536560200929860235047015818564574606291322807320354171811370688750141386194050145327807553268214646271247920334171892911274806963675439247172835872332604482042410326527372036997858314698101011617239409602212153948797962029583089437558131800117303810438214376992609116319701045959008641788467561419326868710158286927936184187268577909424264512042332565823868619827029400888069106383575947782326847194696434794921592710473630432057958022597081256027480041632434710968448217651401759946263144408962769640362075586238696015184433119984758336806296126656132895766193806730094752529262305245380470370281003003479755188945910586336305751927643441428228900416020493678820365734067254350421025176898483186133068601869416320834222973238030457309102511883593537421822399860367502078844158643716689160468216418632869041041080315111813065807720445980780994296723883205395407832390339581891638972952770321479579904182642164236852062894925721263875076800020914997210563510944975586751341295461055778371769076803078827805356501709296867501360771384017867159121496214438817266545789061015913165094540288298098901919229367017189242845219229556381901929082323373969048185584797118200024407605559230522213249953498851623680531926326613580381497694621008293135064913764505288758151064191195392108799329833580642218540850447504808366256154821174611482066670068652119042158065507206613072341224349447884563892752652025517215144912857209910799260924723419000480914330487669362721412322608094772508963599595251078207808528830578230212394314464880064643088596430081893754380140883023029109829338323171257580040244304308762127367739068934877081858771168888188577662904934267879965753263199220486312110110636851184189622700800704243411314402331464847658587853237860455513008046917988386064092891681814195473048751008116251754313905490881121918839868568584318173156493357121725442738276600336208830143608753412596782277821848960505664115578909490817442897213649721386597139276355972288224837575803742746098059892435639155147202111689981564794999893075610699825483342811010262946643366234654787562767747092607731777785569989880213106994131343422410607364793237638793199614337018013476836635848280807398185457409384206756381512058117417919645454814022269956845880357588061546852259047024107719646077142537107561032959898520666728915912334865611325475009937987611786650908676605464335659617514434467047933858660790187017177912819828781523605714576749502154513656899628288124447200669469230448177860818970917782779531317345201213329298785711549943855165916352290279675065083579341324993344578771702071011726612770544718503223695043247786434129561198317478678913980635476349793341556130287078288298119875806969798849002767451796497602976407472475379036137556006233817913724232779296949768759808884280696041879692287537224124661098448542987891654203224833876935317555058022188201470527805005584377146857869735317965577039582423973611205598373152149417178514659154450300083075787041069092732712304019853387040825156983810438209547758982629899254257243130446198432518927411011231739909775484053471908982713803094622931450464531523062233763606392241162904142016311429403331529254074680913214980671339720906421804743371321596769414211335330485939795687302643590703337942947885449545571142309977508487760939819636942434820275589140188660537698783561012466638534211922389020776231357099175603745715772841256184422358763537827978492598978025355246487807352822150881731029058755791158198010503030941565967588224120613336940871463574736409386374590999856234550089585072831674760070426585554541323179387694731664214855711099391123510299305592841915617424395524124818205486723796104335662046172654440259780991367938355857830062284287009174495824423342524540503438238518655236506477459030463900078477380925277625828627101433173145838776004881688596818287247279265418796748513658843472474654897018926457947175691816984603823400100457005974144362188181998536526024402612202429798875322787523723178977134983789610732329434176711534300735746334340786996212655170071086630860028620293552802060443227427276394983764203296264689147102372283312580650381626441178154741400087399455300555266474208926244467690486775603223065338640128522591065484804220762215870770773389352808422311318353935065852314982542812317321319422052618355658061456270790479258888716818636021004508864275515742320345798815252450004621767233239929708592834626209454151133517366492965504239877053099770985076221270277216526184647158430211367031945890978895782685920562416561929115310236951417036138544842472485762971989881440361148119715779556780185772192747516926837116670849715477019028124359369264291639071741743697849659640065537159110193232690032237383818883041013791838706793530030508489037025990140118346406191279613950664949542804719802668725893181325756216553904037912161017642487455950338037747567108090923734361516263990051670677173219043288807324286471359177196895029422963367232409164405155030573298528311125381866733315059507983835466145108350985733001143608650925701557941963025028287544315594280773273348862999810241679964091671887555704648912211310672888427016412443063583314712806539288755608730399506349158451799737269753881533417181647614388491092533654609703672550180270149340813436665030839111030752686500529210928403213774402722664197509481522425351682714204042510981482715661458234276424117989682351228879334296397141039582553649149634799873253983816409889043321202765820467904931322815460876325110890591192213299993923425304170323838795711288272704906409918016013181484425216487181393027874992272996472396252679658660163253190770282505294981014423046601482818730884169257535066544190448975548280446662299458071938795612205431313707081207705813371366642559045826398173183210337881763880196713101323763449254039842991895179852411295779644040294089675464277910801419565418614848953305536393151589378446141746430347203313316391638204866792258208850411212209565770639838230106448342757739747829192371494116540790437817873043491924164724703822322388080596765834047587047507063753555847251828765845384767393966237024101812649503264574805247172191406923325954085288651483635036700582607049608238689382983871265514781178158832718194995068286330221075812133118793855116406122651950505905159363556715465143795919218397623005725821168791812037541216873676603025044642261122984393307022230572545966136327613697479975708080248641567157237895508452969493198137950756535934290420066039830542067517205694833693470301603273226792118263498016824942163250285207128496441293497710261181778800979240908342503379521704217210535705268249308968308478609517761438889448491851995616524437511734603217391943577051483207433209269740002765693313085690005177091490215544060828985100313872387973157816167096312914569516859246715096405642816904792380199580507764102001437083884618751218530597316879286958109389869620545452398920656604461477591093111750526857535136556706607048265378981462147991476134938863103095734734058726447847446391464640916604519449339151316486031860793181945956669631775740173974632913641207905431496863596033490016492887137953322024514608316541794338392127217748812834779916301929889221641679603689108763393729107944981011963797931868798592134841074631802846587523804899409057998518513032131782147997370319087407281395404888448453908165078166749262826656702456555977598955929919045615931483708448685878507817586795998832813300376507460544169311800462390581110200692992825338348461261326469221198923662801723328723675029436679851001442527925727932961823798171018073920031937617422899236747198761324454824318124124253895125620705661620809435714594667910329518068381452845192422375122891687282713284433599704286622008136331450878671166649414563847628310746128180132423934930977993149782222050880568313814821396931828012522989538301928947773537674678894377238871915456482162959510083125490914582183621053853385453155170797156080488171520822011982168096228561088696802565289168746720203616059673934599944343938852947937357920226093250419821077670915334659328987246251330650711854765889187511808432602186671390416763116434313322216723158345021758850030397698367965580554047585225545115608182365082362229650258982915910452253364462685344312079501699611889061013227429950921975736534227034434336359458583532652744157188117213328253545484466536152661967366414741337709885517457180035610185413352930655275638116960781723974321007668195495045163042582131788238254335047622965937183905121769829319691434834938220325645413792835598594428065782862848881804084986549795871236975729807026097569278111005660530231795185365024638348957806627400585911032335159096514147115489210929530513757461103342667204368111387097965319884860638594689332223863801489329396765120083815974514146936646601762973384110533697270773365552874730638056514427409816652525495812693961396886771585762328377713247081606653778308703147523946188352200935436748187958299803446954261808593328480267711850613131588894099237101840501290388550740878337284561051642197100124388845538410275306673881846099702678804136548125023826448614687191375699807672661094616900418756353338365657932439109903352106703976258391013894273284998119511932116610582756381728605588308308661367335460643235252476669189008958475760149153374543123369974885374657838144293560337730484244783586964765217344461301435400728836527791559358887692378748474851945834092281899226290146509876086803976565444460552026753116348772331778046327160123135338324942038161088280283113379450125675553148703004281938384510315914842855704649142765161433509989828744789968387848751462716683536750899999024913929503945599969869391598494943597621535662044706221412656000015109254273576858421654236039806237351576060851056335136716739277677314192019014500525266457957267698122013276203860301849540382282088649391962605137687755660454124245150438637769297415970958988104240929956826153246130553155536531834765136090582842849155855179304793158749967106976290539249744959691898229640026415023068215464922337551510827554963797968086046537833308827011577302744046582363208565218578131919653147406271597580955884515431532182348543945104148993138056035758699881466189208206098085160600998155607580715624467447504872191776283279998839583282677669338220963046846103273208768408347969201747268155315666040795760127289806555984645599694458150241223225940262523220830301842747098060465704742198145786268799693698688329582100301516950538459261079953282808426487594815588534289586320814277786805089546052094230104459911704504994155582426634437086432474615475437137869895002221416101366586291761391333131137537530338821434358042412678316131946698269325380955797620913490405631873913327455240778583343096926611271057056879699394897667617372774349609704129896099679898320208166980089366416510140892311698233656125626286992923828925015912839562305010899534650950120730162034909771363862304857858483375859532541268284256717385842919710237945406695491550530409330433423935041154628122727425385583710723037269879378143564180965619769361246377521938062870768976128515051829314663832982853285739852512242265702404704162996457824398516605684755728053966314362222089074907959277363283061523145834556884609999814931552686591369139136778384828368751852463370988413368876631800992252135694190001898464972451227904512524828114596167352384384134227526833312538705660778448131386276948508553546267750238578955773854465605489736058283455991905236166701405846778024514457244104250345151209032959965861233926032546068830600369907035032969352187389981309722136233300607125252535249533760132403405089447299899222137895652630804503246342165028960153530090204153755587684676925913407851991817991979642856919174992232198689577697582103232448454423647279757757372789324291549304880984208974334142310882856772884942805913077554314910377833369440096427600802583175279446192735250693618698498264485213043179443608392404301183044663809422785605384987445536560241500590848317880648356700324726443095454392942045911280982505617084021349956533704731304983941567399051279403377459439599978205347520103056597504629775652611889519898781696568168970047816216565960835805028707955724037416061094795265376206584109640377985705632301063250896012580056103277990593071046087621254150443072166213189385035695751076250198366458858370591936852415597606531634094428594218363084981681352320593427852610728898695505096992865514244485984222055273886222776591880232329586452079508621783974460102750476711366127877649899296406933217565864457465028390458093227713935594735191512732765416476494079769376772192527898302424427920765276570550018429017923002171884390637019928917934370393171012388593692296517757769646611996429486223828163105809415342874357542891187939901610889267693716975117471049609801958415677221080809959716673365291057506533690002332377557697176231105721034168839222457971633935853862494044058929677612202949523703255063292578089324355720857502234602565551993891248646019728275654461620919699486459131301403890829928105902450973181114733039451988021430620070832737647376616408893494010511787381545645954721178092519313559165465512323996844334844063111255818362365460674403591536974603166259157182882079692514643194225134015150597376019683641096534271410951700884721598148097800548639064995928848254076113973345313281377800219282450676049656771132241215050686250867224025279979337080345632511228234634283203563925338265024492336813864375214189160393291016811379490445543582072813474684457239108011012690486004290958027467581133513667309575059191284255870926643733841584293027550516747425909440102001815302708500964370219053818875876228356983989298610988561809925682820581381606832832329253936252833035192961571975183893879882740021605797175947787376681637621192563139498949894714319393797677478739521449973188148727475198127779126758838975743549127110307771745963067688921530533127794401331325867609753863341070515614734368576833900666223536200723901221465403612779210038439174392566970354446289037081956849394944491290930693485326687446263844546898927716159120979118131870206862920471405749683724920671113488571865415553047106787401572033250986256546944531499534231818516390717212448109451584378253166915950495973099632821965759058380758379954064887249897886662045777417757138001603232110192422133936247265005334435525359766233819047856510560022592668931791919281413754065797384864660211988732941937740182964753419017343835338301123264173333334904347005197825244543838942399989553395422017839783687066471314059187765688482530474094635420377415625528591052310094494555706453588470125711406144491443651791241439836810402350407864228551377588409736086397587764363769164130266120525305701338178906422318082746811810674654047936107169665988271034548843429203634975733828148971433188858026816613694991571351194372143432142180868089081509673814040624803913105957849860177707197323935102107036195030082626500987513205287933329977470234602324311873089976403076391116360508728267599406964029326598226750956227881645581997396305087725676064849818232397313801170820435420970085450495615739025619976326235073509725778880520553810561565073317650917602765685965538020498553428549349832724752675165488431551515803493058558667433550958676203766634998011602229330091663338040493265620820816733084531902287275232518363251036128049858741636062924826389922275133550605991075897416381560027482002359372328764304147271240840742048737031274785210561418544315326185174271095530901768646421108976039273008135805019045913589715665172233306111974370965572888929254483875436315159416469882843504656279466528991688524771321642461156731833318770802042558891231544858773883759882491882369378654802305937203702806994078842190624243766064918008827248944012190016071234698351554450761041704330147800500618176282437022097968560509662853847267070967676180013402846779214233151764194518613789157073855972449961850772716351250544949902367203618748727184082246987188820028202573488435950084385842836740986025098987402482723144600475437635615515146507363781328174351935204398192363144306254994065825868763119167220867571721956770952502344994036973943823506646752144592809175345302384712485718663815722987525845750116788844469887176901631370653261434185999168663634483314267091379207846057727049419538885563602827606604601409992846894657259284609837236117701394590025252495048589027641650633614366533473874918864602525981879589624303680594379416637912039514875033273731419431119448089459523195918663113370970113108862291057794362562056905135823923119277155455516136843861253097145885196397948714903801004220511582332704242905075224955206996235886081477222919359808317312269012443150885433437855587394771673916631901196320516443267279867130056314339152696199426974277303646119160294479611519961191157441321326257868092745158699851515157954931293942449426312553933668201788264445456806643169178011953297622876472253183346321407467921154225140110287620087179120294314007259260836231335197365741458945562124597672616361387422532244876986885716757317940165122963716263986617673108085830625709117744312730991093370144859316454305743149336747151087135635665450319733657622611449867308392326924816006556663434456647981035165801734309420249804606219395230499021295889833745370485326968202389501272723450209113400689563704418724432941852472199796613923678139952960291772844435644971299859655820727334397139923216609572972712322666779236068369722100184428540233466165377131506760490593593004588210878498260400366773695685719086737708434657210787063089925096081068421757289787881048991962490950903627494634331001965555516996774237597366938549573395426071425314356735008521889769268707910171666082157035439474037627711742801189154563232975529216358878786511503357202768566662069963905955263012603688871221079809241124947556180267212891026966832298996512009825666219435198761333195367556671166781859856719670763586775764865260183143589730043330722222646334265366011936984639383750982214062256712216873622899285915928846207774903525431063653341042245326837148687094809257576003005392541897833814810492338666452376072292477124991235655649371186473968067613949577027905877438123637173913665693188096685343258520414313474682122704725596980909021381356641178731817412757850217505763228501608570171439890803350724957661422774594272070640729883092314145763256967012150313052823650394829633443008035128891722984094282855472039065487060773323278628441471761936877153759555233774888730354381859349625873700842719509430705029987259559097952202670134626059477579816533181633512400439145043841183703581080730070693272181897876565607620783568220950156829139172451979968166546425576750055209804113491976823809224794420328478117226369890444362984959078771343946367411068565066702599315954355644680736198734886802689256607813322256660669352614987026506688867969611455701113648618236409011924955116551080109617262482349574852306201580159641865503317660573543323260971268142129434515086887107454788912129541061119206582276205851367625513322482289378980526294341562716681089296576247998114584067731394894696865119129516317343734201034951157745010403291816419905357243833993865569695120148614826890903720059164567010441867308030989790492167597085324442368727264964822591311433576064928155834406997807664274314100589580670964498669902107945421121660876473950394550216478369008532296324710230347669337267507836112070440621814586284044991687891071991537393383894241431638778877643970635175687823538742289407241306744045796884932140337078827625192068971487060801145470942038124903249473036422262592003665893615820132392040699975617147096639347007253218086241225681489777651160522180249579605212859952128170086251555182418997386113811610231186838692193133772794879059055071322595860717518431799373798126468346476917206845918254866604499719868962785963487118997412379691168764551552450716078216465785926188405821921754996186117419485919662600563807574225113931484455391807293925161170929221918039628290798865727790388720331886363791372321364700410381405420942389357051611090940737301781908464094244139410868151302607815469672982070684281489220968897565072087816305462499331663342751510517820942765326389863171322786485626516838890925328071077175550585991126575346336807863041030878932097673853310872951598592748606125561696161844556439424019669318293749913365737583219399279450558529815556376211721158727826122997019488346833842305219669732558127528480337861745727967502907180888849341270510367800371612055574069140936535508292693235016388828716114222813807198203788707272637196982547109991514742981460465245743681960205141197826546515126232893372161223523172923740660015651956189940934650044124707610087465580063445746005802630011574288619845553903145479082486536967609165127323330483025163511238333047722516277885907289254664680991107820265257878954264005573570565868703904293807724409498859305086448231787687765191014995100041875230906334263903313440845385486252763461287739912921662428833069563904233634545775513417123959463181106662588650298292312420395117573947503339392403617797715762873017477180510611399251744794473506398018057261277332201554978984463538839913666848872015852356860916937827903260136174093491774782070201316116869834411655933934583511838392646117404918974742637518585974852838607125409534366201251066952572297459292750543772485638394555048172211046192837930824198500621203971608833993867011659092363487078259798563853098573468831738688941441458388802510588434547073241082325488948119423710788702557313905236358479089525061672576912269568964900110587462002106231878649617116760621106300244333184730586644961765655878449611883661073699493371491623434353850081599503087961543270310572013953869551276536589400698190332484543018874918342078324076296344630710119707347816617288500119015901405513101476633731050781492462443090120488757595901906370350397039741643577907362445232809369995890768012159778393961108438524520576246473315101446997944508218539859576987544801393213501449861879800823523235480477240461537740047942282852101296557299098972608154246535382224718384798590750977748275363734612512091355879822012698619499469166296807187351569233865144789725435387429890386986384049908620592386871810026487357243106999211422785778087288704235953955202557230977605673412085994035327140313358274931503700676817496470103270744837256179645127882595235492457803380093923325805567094857988496886423543362597768217738460989890508031019804400407275778939051659253509951471140057948796663823993627022662171509396754470078893441288969841812234438781155829831142425147455549402520963705982473660153886179857160486385598002436581882212754913857263550274161682657859885887054782189831819450480926053441066332098363647295677118376466611075694779152417605742825949537234930799016873588508309213260960702360956638880589078838039271738112699281548705758004105335626512056499649211912451637494001228243883477409859322512452965212313726422444523605270787147996896430904370009753149290301919411007527781992396692836278895681490260503027072806892179183840409193988892028933213692831601281325154108106599056242779653429997221291277936749958393225028515680282838976002804666517045446775286825262779482106394915664307997860692370029600922290363311014749100181549437387312938617274792281380445076680723316770960353261903048470149623239319946938347874589867975735653528558828327556369999000535077042726401378035994780291906701213512336361134720941213213978510567970444741711328790757170800805153403623170493777020261874741814035612253258001595777440445930160781461822491152756469997999424877735619721958506653832891558817584452634317505091639439596625313660709367158640787046951323402291484872961488997180884795050714479988010497650929999661395970753059394288901260259512480052663737660552651948912655601504214439834489906050810429361212324935828989353503795291658601425177489277292597481569722336328079504391260055289124168537646491946749635067208016479916109367929463626219858025410757694733008808203068192496762201102364135959523529159441453168501564319686163684106409732917540137234498915170466225567591063175960837941913443238337674242217996992354723383565760677601592996093963545460382354336768510207034073947331304586867374403033501982154569001005998641255458796015782998622690652729759017460750921542460790044002909761894669748709923656438016972372483063740772410742714888101210829020993588918734977935349213246859754536526789085362405888925412290510474893437755742184351523664978604805049559663622374594314978973301347993434928627577879245832423211780189862664993955621932526922973403365474291994636560731942914138577775675930676921195831298259743072964785965269238401383203235776075622126130571279918876514162420512420672340898873809145131647981477078655124137183637392105670651152538793870969574681799405187243604304932892950386732627722712065967012132188158846823414924987000557405234101218682643902391771411982025574284007456925440499704959284934266607667161607135002968468623324343330460716718497277489216635903608886026915261350993361768997255592692272701902135021968663250186131589145815050609078349886176350425264840537198213131904753171253454144493919459445595057715772303661201503107171412246492012277446471594029151141271868155991527887605423906738717946206757328970125899550105541722841228830418603698313946339964428240359541173670764168910905255354053541454463804318397308448298252084612157746806963934644039491865318391922217187225858392992410735969068142209814809116151490179572823218326050996496934345426901641060159003178144249465572043946311835139515879122821839998017805975981740319923454197151155028241890568366632319066709632065998382830374819614015971806611076757879120054901382139320438707610155331117593655306518622206241989833772090319091292651634834532187192537459456523535313581877338488189433931034080176011730267486713533821024414859344585195147138563606432900090482277130751461300681641436927525389166177891872433214958123721420064147266956225733032733177979802647093165448519861942563623011353646600571424165544950502559858976229331481830117412429522624980746937115596504608287165729240027453495100433500305568817481901518383584677116558222398660580962973563240522453196531640607864519154236295878078771158103536236565830603550758598200437221869777749657605734779049697776494364206957473827205072720608725958487420046650960902246623020356078654830005114901209737817368687857023320780240401485054014849599996036011255995963936019917576302343009570910194391152506338502048996148588348075757777372337986152958730868202803841508447284788007151263160063367608672505163157407152319664599765878463525135124538255032903810537207427644506930186926687022702214984876314072620257604636851469044992840326498224878691631948666908930586624260724297811859196949502195726840702957574603869002763703998005367098557842154398684364599292032096821718889944417677471734248279851901140668674558999587786488048324729333442970912911913327236835479256176466726599357668169854681974471484195797355676558661346436290381636965828966982830667759085663234855440027632441943504789956313998273312700499194104711296098655066007408677238309296703191773897320228595587529234169524664064939152827554275154780890055867448117978790480841421048124500808371403942442406278302625468788222775991097685493447514219930742546051468464897103230140207014421695530701636103228963192107198654815570552769318191889622074535606419471409296557884477178559226308447265001404344880833405118925417006334861114723859258833438775607589620113063281244753378560973669145457810599728347586700901428044112821317374294359909925109216436644328017195081484214290501836509095222532874809078668055811267590867847444603744034670374623665796019856674580988141137764022416046135555648132654932333911511099184944755959259383891250030225784372673961048607117872589895225703960178779864784235863604668903295892584194947907973544262498657075395351421288327362538227738048505741912253331585889218166072650023303870585220155591687186051198285750752881919183643670702655928653745567337482879548592775749695280837190651483587550651190751925663834970571054301236417689809974331961469972623788925645574314689819256676658407607769680718319968018413889268853734048942081871822856572406986148837733674214219007247546471918452642769413647843461324064172683942686538483191426204361400820713974321507148562932783473450682143345714337564684519949278336716127081731537857152621680668969889204309206822489324220710261320580606369974608041236667138721038620260152528489377954547203886492769990514546736740742381428350875764943810416683781406396075990053653755875860019582194504573988227649736736761000682944875960893032414162073848204560464063242299736645104108891983594511936280368268915318538928987509510541434120803965086126485747377261922055330753015999968947037422145634811619860875697708546721090904318415461630800266557622107554751597428014008644598039346718203459247700297708281094011993609255991534887166455534652312391338875498194537535404677423566084755091667137430405994359045133135785178334696726388108902275098793428657772711008875582560013827267586037120584600916847556073177619044388915815822400655648981497809517562340777214990586825760285637498713813800342098609855035777898541872048911001553410531294781370159057666325272290776281080706277458907058563880683997820519461904295250875167643040584599495136141556062804679264574878576347183470939092307291631467426131719381749266224885701716494717992089483583051542570356197100000189832981612284876394826853175022317629612185621720659685701678800562142886599777177470571821190837338341956808505688888475338126824798820876174716850327172790934359311262523331100127240903614003870133997980499203859101362449974298713894322219665390073326949725653221110518378809155224023076584099859798582106420468454060287642607059823415873185838172266492223122623920013256690852809421372526196040187768784733172909014483980001027706448590267012548972181577607365954090917075028315081159086918447279117380422163563658686988781861927065034029833801970840760501063595741621434030673727662982209907830939213884049986341153818961495579475328589729885519550211210220172784984088904645559034771453104279055269487050725630187050381559821891633545497957714609594437115899094765840437430809211495286827048613483759869910495942878501569106888665740147979035938832420282293079901339696345330074853370058142218355211677827729504975047589327493123055294906561302216361393759114584336166207664914620328286219410268948262764937528779730966321221378952603479837359358245962080384062022601066687244429620179920634860000293047905627346637871431399649844595962126409640551031911712644836381060260263250772878008134060453367159479827023673464024289999999841426734476463944053937457092166702177821277918714843331486158806210629854549295971685531495498782174041608056966188681793145656143105967405863605795168290511835872512643476404208528373520470188469137354677708730523228324405702400919963479377448995908584216746078109107545284856963154004542128872118644186829898449989141429845004988739340621217879946756758438184006109403808202119539457454399962560295501053382254830683162501260629551898651690004595549527857507675878629173552825559906827073340079597738291393077631624676702559264254899392092804003242651673273556327655176017351230605279797130170748310131411038923583114021639878544470917052277208394672504974869784192765423291858705305462529272371548690280773483902871142646654745097021676673517916657006288556662817521800722478567120313003030029798908283576734325769830153318998054613667015854473623791638275374244628157862819247972940256182403746562614229524023031477608618962414656144209822270896597669856504064608548975042733834511365000673726218946482514889993090056443910069275085678594115510591943406320977249526125551206539211804063344738410914193360032875544611316478199621702681922896652024833726325251067132981348783254368141633475705288666742721673921399810279113849270332905535419159297865573877131984401577405903944525787942903066604742806351606005182868995417206647555917650035919569992657985531880718547127025508951365164643741626561183141494650927440841016451089237519399844384262323796134836039372031005833888762318444103374296187347563743871482226733533744359858623966697345932292388091062352335409166024257264046306280525347429598159018426848479711021364851476993822105072886656524141164262491775509806202967480038033249178252636144118316922798008983550279041635795057511929180606242284710504240142649456107687051528275272308392841322782742084664024115110213582080035973619942113215794308352347246000415147245314091697775232652786476573424139265945536663642530519545696050563399896564752807389940622386290128074152212078638076296483728852988759784812259478578776677235969474547547160829143392331861797403660456598219852162253376635341426039797058218283067539475421996790473676459539878978623503322768011562035979748240080982771103081677990823198715775061736866105990196285575877262045843416213713195626958718612802805609936959132681427561806568344663177915166087984949359157442099468645687188358244400113351536845077906842429202635355353963174012895842307348053788967451611661233650131006049689566511240973835723651178747242610484530231532579990710764980102007114700022891508255976297379859680091785707094416603916819714455486100556277485860832771876493512827195783572126768114634757998149494164611835636066010356604521966577625511530888036753538727249222068615062616539970949121077904818265405812989064999156004135804683396531698982177268297403710029727366913587820250829976171814513007615841585543953350211541018473847112708711610855778270993609065589321868212588797999810206807157807754105679768446186804177721531231988956089638937475102886473516674775819543264080147944913497781020488840611774144034038880204139233167038480490554240795831533089609562929865668856571610223102130736406352125643613446756221182357798365800609084494984302454146622672659437590098046041963219353207138018736353688066646645966465797755151285285753486738754885031297894291675380050051599344674680096985561121303745562315801525298244555645284449836944895241713553534403470300299606773794385759986501508024388203228226858174739691418737249500228015259450842116610409006488619072475106994962509178905362768073352560853916165867571844049633028730768258353720436257009274893794004743699742155427235194001674367810016117004921604437700524208192623829690383405968818125258948282472121884559881585665877010294955646594437612209210304449986643962135781531510688835354857975443985463753952960903726198318846473493893939783802258871151578663412389001437586776988440949502806749946191779559233466316560195843794849706268826187455348829393377717512281705917859796768200949379490093573043063436499785282370418802901476960528557806836490786034604924697978526354097392491864392309965187894206920135544606599822465828532611158426638233177023295401591103007034889249334477078342143104303604977045838439161862248830784706257491963587360929575736962008018100213318111629449275427118398670368427109243681600508566139905396844918295794605500662951967365630243651343640092624956477318246910992978556219980869489018234500817692313639307958846705747287265981832964306868054014200336906608125278630045007513211718409613546071207959601238364155370216885258080036223350949106186376375455863959032645187331172729432737076101276033333103451079724522766289755407877193014929990965998542713735407537152895466365127683580421609259116101747785423877076754532872112400764839265750483570174114748636295970688353282708130637522297778567712923309390801606860921428815762777442740461559538287073680388912896069521070455861357743967660788026035760079713263591661006334336226237165433739693588410673589044084006386727318159091495778286690458149069709386354954962990503172409559815855236459675132317984177522690344298412489574442054563372685030006173400174594193251202639915150598261445334697126162619089768933405521765551259177167939659566787101798417913512307345851066531277825593626264644487714054720225598486145182982390595578738961558880700186568306773881571942595090199124849401427397880017283664161663291597968081338812946093896895184922483054135476976018179004548148370136225184472132854704801510060748883192802289286528736582103246412654556684247242290674412894391381814108981607898936493478867889328697743642726519508678765542583660546758244246437026222008434575059167392075146919925169472878917623720765894985016161117373187098171200571367144736385351446023921439365722291985813460101314691747251924399341297328806161613991579355293023756974309780296837053481534056574169179725065309622793505549716669733503367208540422814065256815394388774126092223804348511224783527533066751038383556781388084970761712513660637537274830670417496202734326805176568310916540936369802045893821075836005599263628524813879840787942559932904255611585049432552799114941398049418567387568278334158522377582879228473012465379036451598516157431770110430783141371475486657341676995259623813624014224829010144305004401710216730022161717431253555801616045812676146201792572941335902011741086018033762553041228896035171988193024537708148369876805939828349969853697008499277570974082671360168485308425563303687906927843304741742419452894349212494356817100415702168493306701621854836943310858689919863627186490253488753869507512214746453473339310066455459221301348306407704493425861593465373264863264568595832926645239356593003542407064934649970991761510970628994253559843598183569595123706793666586832435053907498271036996571324083471272570346564698334305962903918020085408337412875763059145562157782909917929506833008563513436336622445436289202131520947581182479067925900085819768771896508698608525541074916106554287277009561073755340299888496081910616651977404246147663237485118478249109188699667176765797871239024748508719503073784267682581044312688626032780538335448393638903942435495848703212243612698663248138895121280256770526284840849053330352568743855842092281550172701710680498108303478186830709243494449209342781481644768329243462555270210330604436126330288646939803473176917304221585211028321483890319585226550888309723935214077459139218516676737694599814324921857059961933342268101115573861105346017244675620906842925718869109344126459498175329218943271056120216654422223321532837762457351309114999259467011492577978654631828040675930392696997844288119322888276046230331668038491125970633894207854567587522251817059592941687783931319835382909175001530427919105342411934538913691925632076650148297434865236033699868402651107151062530489549363297418616725746183507370874210995436298337612994976584361916821443348727712968065525542619587722542631067931447706417179710131040249816209795384961911855396379048947575533293414743367468789714196574639262145870283471853787950923262168143316402802402366991466660844777139821553478583928059223220712778181511717774755749598312574341747165255503221795765315570449168038525380573436707855608739263726294015532014044419631553380520208310331377088660228032413097821683707380807636097774745442125340111520563961570981215114485205278860865746285294810941402405159994249194629619332836394251389607132580773829748962769392281408489068101216681775410889508628444488820197423942302801888657168062360220025935344577839095262809702782939159263362339240601533240604970372300375221844685071965486404681574641269276492497159720992533918872118103166539885208875567129521062931938016538737744072730610013685099746345520810936974556760138618841882223423622409936043727659577796084158985538539075884319086198196194519561497640436859512912859908009568621771618698493842869383325274260079258920880335744814899243352658066088060355059575493034415090778286741620028598332072252883566964276133806256146441481756121988022568478968552913802947069561351395177015866306612804849732305141960731971395424081721935479522289005269027948175843782162207876465718164985153029058035509813665749464989644474737805298422445675131811126735752701604248334886346662541344315558313031674337280772416151857363867790754735153374534583665266621819673807797149515441336834626575982003760082771823779076062437261107382996006379255020102777962350219738144263852849918551619030194073912097860990200207644616488189186489898726328242481266866924241329724196851225777581820882235597035793850205354386597485912119297392803148377191363367123222580476763864356239276831026134560391389512605620761132341655016746523657313467615916350010683808041867565936765817386223861798385670059049828164447442179839348467328006926084786903957880611024170667310671067874899193119837166146371973103225071494219797589923126958642499457190989139023267285656120122352857616443691744034727487493896387654243652788507893038837258640586633526783576656524732485012636547033029719844880547653743661996882251685136046290648570594610210224965739171980501155124532441508762269595062740799507459657572768082186299862496745704099851250453962807029629418274454879586733189391626342647066152023944361703897005251974811298338702022793235866692569368886490589883274821221576894298856209881556975534383067036999624261536673255856027232859127189298396695139524710516670024131762629904037755113421240255977831278313486463059391132581839447151451258388276637558669129417996051758554448541532413822236555240950797844379325177480877151628592029889967879894412525518257523033924948427983152612663367608317475229403671637614879210764767758294655465977397090305086911797721639372174512054060753033889938258167933179655452674220308677224656400004554262765008567835570362825946948190842841832286585880825030437184091708655293064509657731739993497167912298443446850055698300213720629151553240705117287344495345107472258960792030832768355983188479433499421316809359540345901162370458501895298814606572652782722932880628751574638779032881170750517871618444808734294695003946152740010807193492420158839592755887945980246790201126772135906136871672199359943305523946376419613707940188225205532725044627032366512770393597876310952332648590704510488338660033861518685383152107230674043519703623196495697900295262949215969309178917200257547460489919493542678874260929687203187377649651546260355377484174737018889600649651073324518171320779806936920125914952112860282119162991262396865360929838232119968763620509890854607732623018635629999748312050295788602092292688316469134014908656688940379808550142005579049786452173625719699021021024982515564668074114838833338360935840627079265762342204742769699778375682306893631903485434501539131091917361824597886010582980030220939945743202060941032107080871077771184716328885508137198080421550964764985375310498406099160237334156777884770590991220667131755577443888588746926137074825102308089431655338297288756307629007306467627115541362879706541242925597930030023817969795201461802422223658028247043259658442093598004023866139279621501919580332516516650201077040637986026781978570489211725030542157215829279127546220776524097599673412432714770745664300552667954903216332480862000196448970726455914537988056823826517976364092744050733336399024145015005697576797460308322346474291227491502466217770395978133620023205743237149907900692742884464690515787469790715948600524003125754837078133374043508218874417887110162672802770708518871487215440824613366700886984267217121791078674304808749891023440525361530832082212248226453950743484413352096085179667351497212111069431659861355391446410506680505768083419609959803360658643458587841119747619095325937520660929789188535735806545265640657040661764861132460815609040906270639246566514800584555199853126434118408722460809006504853280839480822530299137948485421605127527293353242495485351003205909016493932150186574171576691261755681924844386440377678065629474736316311043934083204150443200142824027327616072518845378576499695336779278544105926265761724280953926883466697577158180815277216010114491773306851597871342384116230572015534772845317884511507218624542990921561994608775011932404335203844378298144491727084670340713484990856954367340539697529451034722572735332917838246833704604345550938093271174734371259760398810636396730548437267712423338551876212612357730536143240527840758137760134772243723673332083861300719750716212801146974120096877154118838268400432853867938720358887804842372326678224577150430040866937073199612648576825527973797202019127421039812973011704613570980847935144580642380135607634123899479218327629117649572571007278189558787536980234496722362537543472153277692741774490357463856564972617234377604772091834557228705881300059867030083784436195904287054887774601941924020847624036323532800476072910355406645644117269925141795323573505907995817940750557607464846033515169436118675037272189750235912872681068034869784501961744175957119999977415670193172713869864181255094969443194692487272491183568033894209920861382016454356111853831814355165791091058523815699137650379126128740186898358201345960111957129107044915974106053309452686972744662451187886158008067880780134648240152641754256218301146770196596957736362232585071693268793139012107228044364074323634836827602711446017756772521463497219632919396531471233262296668716878099906150749314549185851252661751706287537512062149416906854307519976778985436351895682297810249883447388446704227242501020826483502438657486569058307332504874230052446714459400904221717469138397174461288704068949805207747229184568649649624388200187097757853614628012972311714567403058641988885962988660517326932508606835685836414620808410530605189987772619628328285009080331765755966520251423464877104113392658040668193185857467576114831157674899279781811359965453905440516939121312668206438070342020716465401788454125158138874710082744291006321625038715671851934610320026583347168501499300343358364333048035973964023090567640291855372388433086065812831797980982838018586093089453201601121128849535316630777572491395240672483850082882700446521753845390381127974468429984879347541594430936601957977066554646479658404975242229759449257262675413157538485615765943122746734634307114722418546876174144862419213176080496321912744040704345339366467403845056351083445012516787837899838754319939298183161421460369247735755173504423060983748994834929639952385330773006561415861074524667730229962476005816803979095375101704342606940293636164021849597116100237250214038865475915159975562543721554388144956773811915750745274762383518240649664511432035051346828385394948773616819506398170477637777190136632765691631641042856063242703871553501341588381116660232117694217607787358190722294540192477619225745138277886480032438203096056176227863042385961029646515519749229063269415508241739130630653431878257928373113607898872009173789489567193629613139762257606862529682959363105501497910902303295408287185156027214251035321926268003025702051539660317421352021870964422326879793746827993426364387661747567056484194248025039107228554006681362304589476226815385860842036895817347641852476669466161315336858897743367153086914169970337902667890793266348707797233406481865291804294789099746951928394215952580472950220961279791563706773499650056421610824400536872190477960078070517879707623668287473168537073675481259714010311903989075758633374012572362947961960611502689507987175003429650489888751424885090761604080603830188862031607895967852419549322134284115756721408713631417692391359427770621110820506448847941822955733873826591082663853947347193705341922993920028244920031660116186247022141000303901210257483798329942404583534277223244278849538998096325656826685235167274060926474874170633046130892596215445332775903196621603917150064632731591300396271797190631398036723991983524223609372122744128153122142068220036881387478923490654326870330994224633083667758690608273074331074040818869079596620065163906715045106531041867793921813271439715800604022684961422128587055587032062954021534791709752134951000169673836267795956090383594707035947108515058375804728697581000477628530580898684215939421218479731666309262812780223468074825898943018754435894554505533784791553040031521683612816808968550401398160824925254640818548531742951187840144160839706746336920352877923939212440046014949327179661794709362850698075539395599690411172984987186191276883649310052152807126647452764948658412686000348743383436220357368108764943372388863389990955270037229226974253336873263134192920656492746567811956998145824442850562580766458371679301279198397882043172470204094570513258384550077072255519432079736631437976908352096021703509303819986492900522530385963200691003163868876404477141267193584536427570941337081347860961784860440754501189841825213590516753596225846712154587610814697415387252366061094355380330582310724389926326399355174344652675809461973529191748002162198209817951468178088842590943287984639997545718064208318357534854266474523172000375214053783770269214630032205015619030392206363653596869276805073632264717814735186882490528204246773229025334873243241129595494816130026720739615291700016217364970321907339470267625210509805293152190557341045090358831654843750941195142958828354254156474680332071603197405765611088182051083548831483731368300050306923481246900346045351144277695073513887861468255230550066896667868584580286988352996330254862622512776289842323699596523556250526722044793878306812487012676987141528312250274874682523783924071223034682143427051876046271759957496669910530996080451516086061529871934236052861348034890727781217638248169295131824713113890853779867874719341585513536265002392917571016199989872043711932533386168400473406462796602334679221723656212220334192532667259777656425982232730581802468665104301869275181599379686302235740339621342008207135922963986300717822188434839298656366309244844424505646375947598920005713905292876007456222530897653343950497731749372648552905851229401064491248915099054364336680536803846884062490504016957011076012318898411378943731441655276347438571990199274064359014817270800049816491947997436585681870496289685715385871772737622837982132001260159579803850932358806801415844085885634010459762333969558579353111415374186762770571236331181243297010838394421668078877754431389234774841993903024743637722166208785888686317833185320360037774745349277789193968788785958442972796052802532551259285660686479228232219401693568894770580327291795154964753862791866766997390005133938932044072059482367694851770501016593995590927713340392021425228405762021971942357234946030161436933332328584310730140679048337626868382828335381966379502913052258171539955186379069143914578687281828362430514698490359931881186344714170717136286639499801168081522367550786268785136013281952543301196718366873864462459886843307511603208908737817637404844248546828717423900786344218094245030757900806781678418799967119614787458662040839028592786342783922267381167985960925940790393063080863631255332998441113902191898301525886682169515450014460159368964038908166210126588187906773902663074410792431851688912474489873238647774733435128061057403755150964750613851709726249705211996191150046796066620664302955954680059384405833848328562044582764903011227544422472994422418086859864531493402608086143178781164243271664695726636128359767993395569893437867807694014205992403476407307400399190155994360236148626301860401137361133579036431054488835875507873045794358840823648493493346822607005070529333598971288214668713661760372202798358703818277820782380034275350393521592763335238006854380733233098800573699327151267309067772468433084027801829481954854881156788189017781025345199688627798798934413516651076699685773045555154870247679193471959124945833647825045838092010908370534286485413739039008942355533141799482349716186011007399328060361721600208606568679003221462560913800622735875545980321324636146219640708961887218068093804726741180310882792491676154097563318660043287103043790358507874775650492777277329187035500156407613228128422312711769460055707408650487008158249911145808874315812004989687620986849569600481762628225290991268245921687119935263766176059172315944665796553540504243340963155936165646696437198114243456519395481859103201224484677850522222349848653583549300445767208779263404842239785989118307666278773608413591215784455458600667388997898118914212318730152536301225194157747634517302769871201718533337931196587363272179872526734262705021729671170782543507517694561928718670216858546285421145384377863287006742963190723197744281406472808727717818763999542494303359724727510100253859119089474017186541635551173549940053209782354233836708114926557212485558209740373137227673077409282672924949168619214584505905378208159615433734695963615141111121423894484551291123329647956400953301085029796901902294806712628782761163909568182735931110424996297021967802529297500833901673096483758641869928322624332771212794204961835854684396127663138399262195540493286512841606255822303525738298846509384791992302114650094727410192451626763671631863823149241333171487198698235340415059633820860769765188424410574917885878664464057511598358828603434449440326672663719717948151608519687209848044802225719632200923450987313363211166154764456681763650470555642750166325310773505206672126008403528316803457530463042909117891568758945024502855036480564703514914415350231020572899724864105415138842983553184436843023193200336549138507844009536368524649397026655047461530825918471849924395974842912878959281577590990572859029930013832469250186284201356131611025763743667098454107769934161511912150092361723497982383251175925525852298908885521726212732159124705644876141269371178974800478216845981747278410968274982552688367441897636207500734463951082882548249630073899248705561316456044725726867623321733102349822353255505225036526172457694026071781671268752942149461288926774664057220009144622184799404814950549245834273625759372392076138249754070668438574639210251042400107685515131097220313749850837648250757088093725877359388058008878391846928819835347118701459038585697620151881258588154002596556329863767645502425035224551619700831983029412426121205161131039438553169455698707952547407641145621673484022995241584188290783122861406363919657792189712534399894991050213739810299906386086274413062238242367776833298940824994576281418255770285285450628809605910893632638328737624317818734184622543241586734006511031257030018840827965926517581546070869524255804306322801380766608366179342219167760937913410987542701727249630345197539971044302666836897768707768851066916661116790258583274763389387185939272545141095969177280655340010377063177847836793039517894879533038414758492622625734337084653531010260632078053633116029117622167734603188623607982122509914427905932745718600176767816646114148974249358474265532433462500824660999350740261927967544532734559892276127946621420259904550238320035891629466776219882460022735932696341525329776095006135693606300162982209940683511868305216695335475588099109731353548425078139388282697778819093265944399794059529386722599381800143545824494022301902717864917961366130257015880314070325361272183573360962374934511084777019782798761789032529528485078092059566306043469330573170906606902644998772282481090885802358219867063455286781947955898198947528828896302737651223734690424527836556564369082739020016758966345769523670073966303379385173268994697411745543146290110448128375777794075438173634779074319651445342721340156898311459950790809409475061231976069030723681281220914697742331734540124933733285761296708205778548094454043763056592458457664782165371815545601348610787407242223789270796816808204600099643536293358054526128247795789812543366917324962067525001359442700931048540460830226884354281542340844879006919959565576004376146566234600140218534317322001799221932777372121238397395611517978235194877133059499395334246559788372723533847594619946319658933160114039568511077711004016093959388469591023290814584898535573314699127046200353711623180662278432009975941187812415138994777507341240555293402667846646631486085957971246367016361168627398105768173508378114289390758822907486635715038149164487788874038130740853351083345695577774487332566941398029675713050530752081977207523578829724081166014684318810947484349584035698923596609466797086959186825720032655658592200339182541320209941790306566464170254907460662041024353936817852517466801067460608097464791085017045021383868101276136359825063396890083810861820509487747126169921543521063524119541296462318324175358706195303728166064324350922147784203878027850475925197827963560914815009934395916073890290347732460593381453192955458574190474618077253692187249133811370680758194030631748646996033749726422659609103565627772711572653483241990879214804329583033075535541716136620194148311667386968013583524117215194342692685649585841942709027343786668887420919794496930177913362091478778908984318879134989867120293433203569647891973063524505360980568770261105934127944743207359327424933669179029777387017199442000215857065229987296413360089127224440128875467427780682386719337102860889108022446997738148828437259057074273924008718227446009950260881139986857537550346465447428212614432151184816234730183380423055608336198164092682924288227211183928455848895296304147365662572334291716423524523198128660461321882794431698496882999726385377643301631453632552354749441011311439009046497777720566447210332129113467715954093554862748874000916571130476767776025127177988454679908499137734009479333319812568023761177766322341253586662318114114487421347066654249189756080347760046085164012417687141042901331785587498230971208812329532510419079228212124738804391644278473976259972013871268333640528286616795212156114693805085113773949096816094760681627299605113343600079398098637169332485355628505149818596266514970561067978213603085699190866886119397339664675670164109840003143983148169168585154721388225700509706317120140000400727244431950510493580138245981837052997858539876598334895722274330343236784549762591043889601116547455640322014052585020441037182422259569565714831617469040232475478690897118190840394022736175658361523660607546478385202865920215946093304457383290872708733662586480401293241622005790492492045411239449265785304770700066892378096169511060121750986249391686283618299582629639847078218432195081001358105468956631714198286305051975559002044875023198753722933826097706995782333253462768698646300506531081471215936816823418404084461883946372172663692186312535336031460172300423436218539813659675672890249127705496056701870775095473313376516680516989531389192266972712309380617887336844602460842460346331346162817781142256561046143484783125331617600146950100772812009939201799481747221111207606287888878584590274974656582683589416479005748313913900686231797098298736800786468829796191247998939597961363553414375873869584471567400967188275585850198439787769600520369324696656577985687661124781479986415069397269968842393658378665797233087794904942489254341974788152794320695323066144823231901898187141439876179077019457688173686144293197143095167056153085793159534661270683657318913176503135996055285534879442867232779489179708438608262207275019167559208682808828440975123089529166776727026553856837233872104492114403899382318289574743790578273502938461651223855690770916642336986182645712457351914520937950015578841047662830708694229550890496926512231082878377602066677758676861383526143512560755993950798490702421269521508343244623785972535791499512515637912832999912479139274061807253519374860805882347851663271637845224651292096339000937882809802845080337931449934390181855496245152837436741262661394880510615371070963468140369583700086048440494914342702862234985841278912001176973172862917259665456024574785711616629562147232872491566633800560445635238719153064119130469342828061708171410031752193240111749857835105107816322829051712606767818638767677044843333219035437882790653750733514176196048898280117363227705519959248241318485622558077614715386259809820472597747355123914477914063078095556220331216701922669456533665835435656392167962638195551554920908282930257447863941986788693787344272446302825220444619726127055100630785656314464145218518019359126836997445906740181287385259646772092418108378433661335634683134095623996405965353472842349917639940136989144402154409145479573240096430208486896756160388789843994344081300371308172625294865978129593814087387659343106833689554046690032823169273168999756742949441920611100548875728895186559065663759474976383088145861620879785567608684436823034740739237425797145419385293078368614376244772770534910843661349470855582621285725359034986732030717025406294977125766877540608466654356051010633566403817924373688888589952292619350786424024991666167268485069733705216187377715689070679363767924890255489031652097365294856610286956641121347539060382939996742408940785344869381853269030886861830614108159957012263724335826557076955752203704406886357522706748167279398519808454385083318912268254950592352247800814617743500122682774286368015630171217429684869561349087250656799111678245235945438849998708005590190487949875209430664432607390978665744005204375982842028924647002207372298192510891742316964911461056568721612713733610171885868884697081621662256438698499163917085781472575511620616997011214183883811681984799824447558751907604998184132216538022939132497412207622320288019633262708934838516825403453851962869350812265751750630367544899337512856767566287646352368515841046223469009974981690593082199480077183691838114752786505814151777691695961712944226998625957152932394719175171747383362154421358039282244018271708392338795250248995974529929530753719562972355816334265820352963802032782170411829747855540533393378638869999890487212426627908307757381054455800459958122803973597814480040312587719139977772761484944191912000524252620948678793472349029625376697361941162381122352446659514588788190953684024168678042735302287983764860155416590339034649960054336363728437458871693544195558294067209082017571365118414599782718700702521540982332904514811120354990387155448073160084385974137451000690722402447141946695356523273690960080768324772616299483441982381322745980605224349407504024881067814006274252319825926269891406685795077233366223565549220966489862549235252107242713691249067318392141295052313948991158871714927060822159035278245078604227396239139655394838208781973106645273484475188889244265486457062485266762683020301173162946568630265413001695776623306490269342284268767259047309095992209758030231386228662021698256608521373092778577137534882582859901672063869663791656588026753936177254874041439127756044971137975797302129834887046659688328184209136955925832683400343336245489600906115372279164080451409031132754049615393998673017966020265492001007871643235788239086472159133583450914257739937154602759753280793323686101867893190821086079578725201455051354209955162392005596130564519438238836946916760291802556644842960661015997830765626223390577893373755044539045424990922776569426334752592807262442381165424285314755944713651272513994815603751829116796428870530401254666845165782233725741415991755071135353944191628209501837412397298733298144844138805404963011752858966585373051487631604257465116343766658165741590945708388075195613171570917244362304505350352221379122822848934065718073866518998459793541064289526932356652023140082964703352740568050109652404244442701117848936028615166493610905636290003406532762419569774560613344993361533571409770950408023246702398370491260579404121386552115800908176019017296914872629904670704413536951440221623778128730519275450200416962139042039350758496700460251458711267281698029428233861284140982398020784996374403937044126512342787602380585425310774832321013341512979304498678144694327129452876675149340216435773041432919029156858063986610202569077659828988302651380050311764722905505089433827738119287996416189614952109225031854308677486825577896989417227222325484759307967244722276155106189640548396187253042477648109270614711660692926782068982176609537877356022846394684392422916322423761109352202831433063700559069893156328867013729701544182317976757687226497660637199673381500083312112081714606664250358258553252981467449787011938263920861182681572483089718695713829945307422547790532134243784102021794891438926745635532727446985862688116835533833343742557210971656612893339126425532604778044294041162027539918737494031501584303903935130172151803373972814785459151934447339056280058642264637547948679673444876915210163982863415365017432372922599430267376363330060317850093598420583562111386539483306187061907428057521065769383225598858955966276392283855936921445780510214849169137607958727424562754756351668745309127376629928220669623571864733217434319358617980117179538260484306678647944824430629679827941282421015765081912684145628712387511222919275843635353659634726715155272890545098107639526932212685916832213223983178725163827219066061994392690624916329060044220757109710668546398815378999750663822734355914159104442444004045956184736724871430726548574823479184320682196576148827561400816901678075252779903355596369948580195298822542069386962449694207492452018618104802779197816614987590939205898248890813400094234708798647497611902434973020335731951227589938759303848995040302390587223870305458958272818576945718085830843559820128275030391871793346582709298366959538656080814265882540563070052366375986375791717933314349832410615918851082861531704122592170669044878920957816679787844354592783972343729231838731474511069723608076690989740617536304063695856701968132743656092602003951294796841995077111188745638760912258043843176894539248772576798849468246235418696827902444222642264463297770459848377524565728287915150969496203238060260419146121215748251670945934523973671634864587428235323300946736631332177850119568225869517758911832024561037315786788721142212934892959061323853910843469600167206968545679459444418941818452801752922174729301401432745877365272362265881906794204506249179073858846494720805738758916275270680139109258210084193274698091286625211911640201401598969484920837518808289917838307490154832910147033069876613640569165310768640907156362454553912165314215220669545548028409965374916852145722877390761398624268101707230838048488863110420047918200262389471829797445152485259698496271408559493806576232224045509607539055665330472539110808679389727989703166523446520187746671250363734462128883873642273793323169438421366303513467221689809299682985488710994948568903649643038976186374875924807477628853355597638148585440154994219304802094737274339456369759394790376118961271188346764782608634188870702281630733607680112691566363869573723925218890273381103826312288942782667338176037935970942907914449794409444903396162771746065997925478477055902883798343490142838677704416219049556254447321683085416055185947295531342618170697530350922171890380890790032557633292099443275516185199949955568707686309439204714259938795152247566743747662792737845834574637386173193786730433312157697366504638121619166243448607624752256764084350142477088506363771590346719739593262606698273150737233541047349139023592988074577968232461989793977147027469620039364044548919955509789354616766803830652473838649521143282953075923281830331762985698595439133780724505951007173483762075324059513208073231924563774461162759506200463307291899183505521382905112668538679587293551344963691891109790205671272715305711990883416033252601613445540449044682166575916187801486005368893578740319318520920601490499448312802307253951450428522963749727528817717803055212114684341360942465161935799001449252828428483701815879413401594688013147039945248193533905223272078332617625537399865688169202637805101338743390532159579729675406655541522689112172124253855853336852007722177537672295079834451282133907766724010034501698359045485469898228175318228528846541230201102017282483325242182687430931755165465421456431570360082803466191122052768094969691889925498325900345947467883892770558270339460293205724020384562608096906075352168829707712565478523134979607599430789880065155342147503322403595952114338434467818900453928819043961832838231043269159156723749175314225913843974370097277796462194234174019283345845355613117066435286369383558706524277295801411148145116935240610556135381450657673414967191101868216799474187161598192413141483139359942439645379936987307059758227478329808620142113084299316021505095360171653452184530495991915379983822947145956616768303882592288352942966912626790787274968542670573024576270804141758995152632947273888777783678047050991373799265081038548184160167129395167032114119359910728627407345749252755749106210850641899653028754993012308130979482901285342637990619572564366748673287166874337283171997982635472334558635756184753895386544328093727748398773790537924257151205679182152083431490375485461701696482208623037619852836776306332894174866897258915054170968865774899892512300857248897276955580111484826651475754580265425065849205070045912182290401871841393971407776355764285626154815758022975926302429056292853308112285922484265267355860843563260117375407538153863993407842677925592571793183171311016218408016125276295739789328195469716090277447984986045969365909984663625844718404787863841973361038214940377286047010527696975662266512881604775885213673810021393330079882651142729697778605051249697884421395095892357403635271822292844487734696105861440164750678293277995725094614531449623957287664782655911399722676049748258796794637456925398232929845288900091493799360767131118107880815378023376271064505649306296347342399710166545705904507493940981169845455490702907624508579001938083217380735651237564894912262623902515633112524395891839025753236733252631923842740093117409628031592496582199110276233920435661493262190225243286667731310838933953568812953712484611504879136851975891920901192133587733777528543936618029747856091401589568197295681338808301241455752470551107866552197523875848185088332327898824055610187361556301087864700298306605675642295502438659692951085148061002048957852272069236756592466661730064116035640249536072848214545951537904446443915873763809885416108680587736634880185215878999050755566106928224386132761208593483433820872524627594684207082382082901883852949167113721129686380698687869491089457636283488184796078087866393681283182267112051515913798009266507956438692612918130173828721362169794991447869706631983688687842221525706263899796016060193204691341561585196653652777540398743543779192365285357835414258967927544212188714913674061225682978694511144105546813202848676498673168654829036665750961048656626914830970591671495081858308686709167202126607743357767964897133084534100516913565643558449638257135174991265115456165915262753627816427463593190576069528300078484227166818495144433865206366354650261843858492096074060807207710085198372917609711578750158106706452058989740188385544061208418445577869295722626907798593452229747236218851681885230345579937516009921131325148262556910400361816308193829322560975151815266214511396332419196711970666870780893996852723152848898210840507397236512482704068820068631244402135137597684697605072336630313059709995977311945432682210871654207803464972721424905602763674178014697806440496534843868369956819306740077560634592781652605868944825444446095633687864731779512928905012022133386582514974318373651929012709957150514463973640074297258623132263594866458620178489508833686985839849803467341551748003757636019767881653198049605004145316370190741922900555743252415584277687477765931840563126467120985748428120087481724712922696203405269889945655040042929879800767794929049863822689522967919053581845080447545875312681471076961575944176897683778389476384753450617645345330299787263353012282486069094707893459707751336362036333964638224493623356884750140200006203196263432316434244199845135962649847183045841749794804385693795412011049362745145997914988204119457254760318901353831757998935165513973065889733871853449485692349423975396603485747619495148857985632682364704536577928944947630167750617271052713599310433859766427555867470624442948670868163669482152842192473618396280695033939630976192404386663039088012704523754817992551347231036482656586181265306029884035227830068820002471501796733233735992375075449007714595081779236926723303653941658629612596931320443166694372625036645421575973380425141900502209117016496390737597679393805109073707336380754994660175453080738459737915913381082661614888053955302874548436944303182504138996437067734473662685233368910502454162047742777449512597852947183093040525952331593263044681411549195283178276456814248832184204571310819772803046974856545231608987323219407310911556286649896725593016006166516671079811971715984100618409088692501581201183406577407016242036936894943426326006932857596621950931557870418032898302419512599300327279961041804326854262312498310099556682928048870082661374890633093912235569391992035897110179923645092880481925801971390595806175193098208119906165619642847705300779027301653612317011965418151124056410060719771411096481717842619138560537401152949166715020015762881634909681311593336116272401205057885141395916875080309485586336573349541523809883370724732473757954643347491180060454030096434245215120771621893093835111946818020978302844849085662123300113660587238821041665136584798352447581770436446110326722651851141633840805607467715306790253174873625762171538379489621343369681056406847307908249352454532083167978542846596084294086198291382988592636513932122456672812678200064531706142627301537846062514396906725055925606903729873599500017857440771876304986319810786099404208687179204642235544608132038267901423960790877106687476576952226467088588763820079371779459734625984691934452337774718197770018534682364321910280709246258624191586601077435302015895300903101178990679661740719337985523875056258399025917233647409490552980414849215755865486169585026006554709601719005632958862751309303850523351106342900381532695348148954913590192884019753248785704802325704077734288070645849773251995294888183920371533593484904951523752599813801594702442446748163136604977957611041983930525571749396824793528089577674876641606424519019601227544061229459854348830899446608447174595174386610364998488320982050397916136357133846403917419045795250698198641353839601222499416089921795504039731095893982106639858229696092630920437342887688306712462017818288305010369546395602908607787179965553578776345691137195432832631108155090388321341941916955959810427219355972950112076446185441282631323870461114789499109875879944305132825890273288515097448289138141505544506336362371229057666988249142132414785030053038595702035429335893517534576834049125404324192447489132138303945846697159741280396947062308052161746988273492129265184989799817500232094117798457663373397323134733765240445130455670588760739087943780307437607018656213325010889210166092565418272090751936635315477932661151665938142546487671907486948957308316061777036996035106106306660820419786579269376443294975170429543536619442617043519376364799513023932846565555594939776885398128262457035958129202825827283060983131155703010713903352780287174613136471139602620844040316489590204473747170981195408527493749911184043325835710036246737457950823164104200860011140269373485704258352325198855042173072666095301435360513222962535816651730529042722047134417541662899710061688446265630718828788426414835168886266176205582327947210829027125420223390497780021683422627665170949154599586226329976957612733455197685736551168855562079118494137695644829857448752638338575844171050137786983449269463413944918033407723678644953960441681620319788874686363065411522016867453420255777353985432991204554626865665270272542687167485982626219001589013255443050720243511722222886970203605280397205741419465355066825141579338460047915002943206646347641767835784055976264489682054339955975738722015222684743870327284057804248518437145245277889859458630627266838293301413950950206578076478184784844695788038074337083572181564908886559666472786242009182399453945417139933161916691847617954255392812110242576926339367157561196118426313063769269337824390639284126530804156411393542679086650284129532415965844149793461858080373651606653339177053525931915511241394278591729456037502635226522771551225231343164350034685204463463405492622618486677712133537316055490817760913275194096832953710418301487183233636252226011565504510941009407199513457167774664294378059361692268131786790465122049568796713631697997169794022544229902621524742941342310990480212253521504594321181353074873414213635392498287550499049708021051557599499699932113115843899443438324425279445794429981923046419513847681082535130363902677696414764680936397407518931520578646728527790172298427439873090749478898090167272058102622415508255413079901186415483093096672794823931749463687642967329377663565515440540681973627645850020147590906841753147426726836041031723992241086693856909781145092141107110957619997205156300683536198111801458871528968124085744436155722106709729952789061965504298286102448940936932524365145131621528439589914957863428895681134815880465934176590137889868550196236529501013876672001132368523031069256601225695748627017172869940348130449240950051610374479941420679135198691026396073535249660407547755103744377780258193758056876148148302447422466907147560513376549076020359080559616532946351503497418962161826698695514222633777713656826990294430497746687190372422506668940807851992241449293493979761352369325429889584169686253556017714342768903032844252247337027662380966752250290658624782641327908312525198358445743325208309803648062288481112998125220592644577832100137110539033866837670346340364507827814178795981462414181167613378863210332998614517918640396502798017376138510385488481366150110317507771886407009201980235889673587947942955689755072241249900920532509629828267511050374377609984134320150312583916023336786198836973163638081408961733900713210687269317351054013091313908597457326275392540510482020886029261383533223298299922916053162258074703467232432024146756002771578957102865341739368124275187341536817667305249563473696864989259486715341592800249117424253468650729460148432571590987151072010025341502951161077280864402378495501081312049893082267375201747026947588143368280884371061442299368080112038231680253278615130902155821155657376577160867013191102897084459468269618021619656270644726375525293134747263424987897835665647951805230016262326735899693907453767758630357732182559129938001463564231778405257458260836531180741293774434400017140249585993475888132184569650898030841522935537484591824199878520066522012618310575312781192121741879069848827372411696087529247426921959417299249918125389315900570505793926141963114675856621689671387844393257494322424045287261913610081984565014815401614976008242730461097350724342864594404489694612667980345929279405004325099360549908054229046614383990242029819495415651737142917453642860336355565096220478957637891436829369173858691206767451030583570423811826493161025394905203584353155802221886841692372071718499547936319485658394708172826916575515395779229311918389075010816924546110238603278166120071245823251768504392432325035753441059541806913487730473841682543400550460068708378601244058384738247667579693243724481327331209516830778787226045542263207395022052474450153769817760489818869537541221854090121902757753096554389645011342756602052783242754156261126567529177878932759465256537530582208052601596573323581885295767112911708170682335094881284080632983157234643601263593885749849445727817675912750047653060877940006550407164032743584900139907916406425119896804714233077456612510235241193470921195622537798799187147241136195694599379678061245395014223048698715497942477155921946800623876298370090641706171845966999734110395255069139564255061134086757815511088525043736661403898539276888655495677241280631370340348178378299913247700106393794019800072105315397554607106987218963945182328786747002097970411059542554524429222517685007149175486777018932568867232238750356366915750532702219092184499767645537581068631283306095171922127108282966590966520763788611318235133689050967738160138481757122422364983117335769741517748916756547779271450649360392545930263898977088670040924077144362521835550171741478021192563000620114034109984678190042144976616469628693992714326908353976938657289561013200409565912969331675676941843421318759606044413728448491361307534339360292705465571252404031057918689252392468159744012743415118571287780931071773516517019137787626699730459233126090041248904297347382151158165644974731695353904731596976879108988237684644281549789509952897393807623704078179688461147921802611420589806347168518985705690891278886886438283696043349411161042531087217141363195353593575498119865296331618946692720379087870970458170647902756833063337810456316319103769498785900576140441801233977030484050304635296708779286634710935440242070951264544444921607287303019389416687542566136795130353130699930237129073554030973639069314565911870445205219460497176487554424217754438547884345044134799237272086308234176438573195204709554242746379328884878322650072531758013296723038504402181400223617516199842833248985298394522803295155884977260989816387352454995499259269964284120431160333192115159559399751864231541916361080794535029074994418916891531863858267699286753501915873290551054112241942913728070518052780913321832449389108569813359188870951978630705867247649953208469639512209878249913367412639477775303328352962917657953729375791130832293203771791881043862857881909199035058270072463126463955916882436604511227909257992753394946336512034253926541813333622461963925471882234142877636312059110366856983595796104492730544718964103799875769847248478933764807963923605464614623668812894767986596069966952493094890053800726518252874664133667339696484922306234974453385875639433775141551118176261643738925416222570464785491410629630865607501347514187858284425997860792382470650683387685275214199942605077281401026143853016384805962101572715714601557112918849485547374765869435799940221573273619560206581255964068601518410815513870250870007487573016212960306181316229891818202524699726582015107519345410156092993061021132674748186808043842760443876284013020460840700898608936023270108646985341917795761400856161235380627651937301179081458306050164834495238029202493638328779262603844282185879708404759127763721844219001239261095434396942227308030402295466231303174603423408708355780856647479896218865996640502021997160852143535653326511343325552194875952130756262425501553535711170805565502812558162020214925885927532227138843678529059171632772554079340196272695247285659062572668164539678663854249414751752253225653060913897326915046262449033392761736536376650795681243856631527821697578856803432117440463533764605872067400566837068432589467860623142967441751869709424795318856110124818015345981250298461749233958782522347526238182836451479759580692863946077617904489696918857877899237305218564353614805603218209632750536537506535908792246100562868486018000915321078377082156370710539717669960657249133176577864423208359827854471087975081118172210290067306102494189779689432351293788699936911401798098904446225148207732712990377903910849319805364530097885360078744914154409329209562774155923787452383980737868973324402198406944281408618512697041982169063799335949100364130882470297917922696762017034592751238174294695698243674120189969927410664299041065817070066483647970916245770881849408485224735961295935504708304569706201172819684246779586926102720153989005008945395776192326681685675340704222602668897005443659315431192841123312246558692953850060210383937897785874750018101418950489798405523224171084780627007869068840421054396795399007281979280492375871353133788800483578440640223227541452494731260479371839182807457912687116153224118913621811982263382879091575475135086973965102545793200273662799338074469501687936081662651068677404888160835008010382178604416031370929416478446123247089406091789248058457312610651063603268171047630088163087775937206744073072205384522101319119306402742203364275918136892555871646742885640378451279457072671041342016004816605002755389059510397886995510374771696108907989773114487491337572425064115207195673861698895735287213036052721228975239535096771036228684089382980037359502497138884479510060217215350612245326193710394341192088362180881836797879593023274552775622475519430682802817560269118089417824562965322339171471919509434248092251101927521701033660468993400534898069885916571511465307354319340610592158913653555520232927553064074521811734798615150430403870877157353220066924730615381884216706797112686559392340695491876909930520063934648934333353608760696292079321614096325874416725144018314136171543363731411994549077191263838792455082037631221271794532508366954452455665935322162776549393159131927793861362203274851086781029730109944686936133384036337970462852144094146629243386968196526682828369825494550683636529078087067715692185832054184620533252364349518788238129728113369985727114598926454867340982635793625605517578332891281589616124366099728607637843779340151803059319790313964638804733140789752813439916446377307015723185794400637898556291222300713777916330927409501099403041117080369235160747081949952033212330154108528752726683312571583766441027669140273801469733513063593506066151504295887344282092872656528418220442661958231879130252632420691922927837433224754703401597773918546448908304898842701893731314579042867635246579050142591610313906487400206928359823129489216003256568393812190641971305732257100499827316843571108055357184094077202599118240847113791902996698775562897292082404652314348250879925651846137068855142630588959106671998324163456809528416896205399715866506762697814971221361568112752079999854703649612500541219450979644038500271716431404571449139133140229885276159796750851441044375612001769076437776597721998348183313254950542988234280964128940556807854699540599894132333262372245005624398927845467155293709117743123387896548584296405461426441788597939404069051911012971845388175291210202832719354606199061246419248354145528385999391548598656934386496750862796432814059163792614780727935102381376316473171626094923636758930495985707237597466104498222013560525034434265214768566772656127641496148512880639331016800404894925948672364265621858520307778900575728569398824690791502873501908165936261118288539622329462820254166729707395666962819537004148838019854002972933003086863490119260134037748370392242386382702510323279201953892283536178231025252346205422643780997004746610506612040387002011336167980509335016804243318090343794073759368361105109527471019270611949115952320127881114853918443456102777549425977950688779630784576949419836738407248631246360321138354931018321102355190586063033990831491484463593399004878819741754739414212932962574653882763231109661687025785976194167279126652239622017658453391669007525213061590498651928280569361606836092580974949607202674555642188074059038867566701935806225170782795867655735799559857397319204897159706911478501574260561580663995156782621466293269705080866664569056444049761717816290030358251950943238449265521327762318605873627788291144567514205233128021318780924983462209631614231980144830619210325210462610602034320049125011995733675638429355721522651271873344938164524041862324350708940772039291439131024420323788911036117605284365256789366622219886710894554198105524381526429807614433102622331082950928766765874802016088576428682415903161131456212607434492518896635786400207848719713269344238345710621977891958644307986781019575264047137583567622489697630731654347596401344908918565157841027924686518553183669613399266570078782113100858093185768570285158696188553452425475820571248786621943579776309125273253265399513715989937802137768105355515804114325189228810347281862085468879075787341976814405836693201255604740122312225674250013152259519242307253869916551841873805104098538431187295034816691538229404039824095046667037136129530069901733672379108176519998753623335840618116030691348201656292698557014400748780253028774192163031640607654722508838430514350642168015848345806954647904822232153494129729184050017298263598176508353086708761915848560126756327322439051214286063834227226789073017488407119751825895676522444125045042905991949020740878427023606947224750898783751941233611224895796083857252524063762489440153827840024450466554686183106638803873498837952140970763981614318295124155793183660070646871632559375908328340470628498550932472695881634145183461349127388516715714019311196637310981328486633098815266103499446032003133082815155041788040506258975000016560200214484324757676745299948613061900045079676082144906014820923837498284883495455773174661292258374931034442616374367075170181277249433577372276403912565581027742678426381028020766765878651662312496941077642100437968015010322911316832647297114218922745134472157949671268983951795441760277321285944938112547951620650984416836432645737808404507344506359966661783474891771648127868241180213872961640033942095818868161199482017500301361939608741520258979091195668702917832837207331536776313914749289489391244369180795293424000630873863728181446146508928707066152121918270592700587436980083252555957576623464950383654784848652693517006494900877792963822611816731788181913655031212425116867677875464386051160287900347768204545725501559321095332703004359297368520734220230868639032281937420329933135365946904466238662288271577627064288723639370762591438503709463017899202957255170489372914057452302778562667604083431062427137127767560992852362413185160853900807698847780778472370363706298935678507224765037682158635882533178696714557621688091063219072909785777236260624932223847873047325100422863871833562216450607746234004121283027224885527809192853392797422237044768080225556296606509857210053126586081559748808653406257935510777255809152919030500733128992346581940410960104501282130799970963473581766750871743794148123508035762046207611082218818120405993396504346961401891253744522110009630370827508135751127949519312372561960077798763351325097308825439163422214368719837322721796410293281889275655488804161482909026212042109702379182977691384814794888618495554511537286091113741102505472517340858314114099082174200181017420025542091690028837596582053091528857898648372432743043274997760136925059323784721306991577176422455546423036390946950895990117451395181343451550146150971519245042094870945385911113310655625784399045804898979410855963879706690789729890542120781659866106348348254390146765351067981285999107008141683649622862904087900176397766361485445513305766784399005836533086829024686430932697523930901470711882678393493717298072529438935613715196196714331765726900258597115409946824435193334755705863318656213088875964226562457320167970195759120159081863083281878828730031658753557447285582738776139884554163661973330199373356115833603711919887473364072046967818864992367924535009694556679426292459904108620255001207434853012701865913738381337972121738099680513875168802794291821799511481213069863457371123314033099993139856761532683512346206789078143321844604759772873917790483178142006583047058132175416360983349086328695878196759684887878774521737514440731651186373251020787556269649061399561420336372088489744571453154996957876618257923493776219168812209704209260673339016674230233383633669237845318770029658454271727767197385150590073723787977639278876442309202313272203996763165335523374604857257367898008691837169337940475618667392459187259033803784694202679126802145678785745398889405763535394089059485922285819988036259103718944769984898532867147843824726166479411776475842372435631997076943331816442407483168886706167649970576044013896424134922080907067551661552893691393580325109800029287339698919837423926549091422518840442407227933800917603981732035052128666474046097469564733121955113992140288077258399220454792419077950937921242780277056112432920231456143537947206785762101877939754204216230510401075334479367590138575840215558139816033621672855550509199806194595347477109488733740679076224220854463871272217400443954371584343889476555890831050320331348041990391007842486829694668206710398469016243737336110280583094140354932651171487588477147804662122636952749136826040709637748618767067480870438204760057685704740222143648314513630369832904851261344688528652010161048630813184553778455825155808651009031656094376004997703313062809573463738168662177760353706819377903099160276063802635003593709957709947302549151707090287231684705819290652456330829157494406108646587093259338496094091717188180423684606820887747432591010214549362441596345770138505428437711872341830199733512854180430894223684220214758511590295449304882524346894194587656091869885146974624708587927500395234635347211968693849119325257675083773321407114871578842711375146630840428308182824291302338963015587622787772836075528035592420291109665060801404530427768346336930134823317433910633525339610007129810205345201348022688885062014466523414777197073168373096802968275749989122016527620286739008393688563061098185683095090241768037540475864547768177808481145030746137704708821539479000972425010687770518212889613275628665637091961019200733969046297271793098602317032068752405728665860729171629463688131775076517337690105799155008358609307695214430353222620513013910072153407372212953521281160371818744479008086583632997378481997405177379439594675981558366217422653476696968841326456937233576990086214168592012045626160598833545061898199954307296796608282885983228731086548527399429839593037652570683680329957105148408133624868754339707637705555562117535060702715816876327053274996498435805007059677850033582263106774690070677532088366365946857900069568294328305525299769185731301220249737153659388543365530480009788457530359932574706726881430894132352631026146920684609918767214300605614164040065751002899376548946952726838412924444263707067384118298392646264605027011528961518449159746054557910874028546916778662616777967439682893941102898461771510820710916679064358220559640127114493718993535963793075368227757979924844376988885517185158248833850475810967881188364283532414881872630101299372390494291115847402022018398794893611075956777993380408704468621466564903389566663781489664456009170841994148941078405130133268647112553226941124746739288059686663730297784917646246202304892290647402970626790913593331749760354207611915897255430703129797647401136201870037256960236005960586528552598796026766318142221744910275278244775202052613959103121767624185683587810669850124386325101577811490001512241996366273898614969816626894477490903941014200933522184303704559503466091742684942057602993023504968399022333571439279344386632297945921612629515846395909636383286943244397181886735884206040861358918965746530003436165610241859646952481892285896206703256952541549673502482088912047057633601844473242026960606118439066314886946854286490140934759992168372751855215936342970337329607141259550501439227502079360204534944868464056868157603504574147880866595596129634674363883627883988657793419720018667896650826859336504002232732362023228006261721514303823771214523708754033923571924477435458441111644631682892359945962053914121157409925829468590810244324440154924144352584256887303017511964717441605759244819296305504256084903994115945204144223889951590203249868516591449437453659825185879221582601819354118466827196613890794711843285052926648358919837947579566200985172796613831072139299105713006365873320778255270024005390678368782000138985028776068425502544030416087047466321281426814998860390635606601702631935934566622346389441254936358453171580130783902049504061534188940989646969960072433104765813871721975071743038017007224402087795233375234527668913294758978581605518421230322067681313139977465360535676513085541835350885713857660451026505220386013096061343797308934131437755247735070653635184641454137904697464967110489550097322452209419806185209668719192435401865305993401986479082505862116262035428482795580367613569366792780653313319796825707488504746361466716287960022694675129339098730023113225371003153099477929900640553451255999476355662135452301181296808140080218577747139159814771453106298169332241652410359909099163439219420740608584276626946991176248850324588161060592765079074935897360820277409608140204006667000610286634702209288852601676166492292616683935514106290896449229141546184522801797912929343537267647115772596334318155513699762895838066130492706200925951454908123075319305798978606446810795781070655382164363890077426816983418786644952261235341892991146238722117756914198399931559263854406396126200406253830299190656480513435796998501941924214473722103797803621639261259311715763594532886125613764797528833458203720256903402685845422158511361641177088624123599214365030211679061136850158479957040178689800625934854865656781593529394977448656385902056204822527986435777149289842395875408266408841441212235204586020768970897351095632069318090646040053208367611309110870031402062874550376343209664638578095063267310720711183718609846860943092813628704231997735233118665627671092195097828155876234380260010905558300562714658510641159144399493612376232738667686055679806915613575515019086847252454281199936654622156369270843265651508017582027534443581305746179847756404602163471656183510016744056173701731732759682160204697586082556230385356834224303578304318956654103138584539028810598146725521405765063922769528936741001620534996095998725361940892538330495711810576786934149207136565004774237621876789435889277312749701840690084252112417824338453296789635315615071610205958479842317500049818060994482921621528904650111853858706810387275320457510341446504741038372458771746763170884925435241008826113271694002126570550512950449473212794197558559465148326695446426237369996712766126664891463355727326077368806284148626406906234764755220842010382686556985565836767423525577951410898997199982495232886264464678984315698477436320682288667580794012713394958961975924310701385811595088488854070795561265503185054136209060125043067087901131250613267912390628981237086788254011981546817898114427215972900863671109185984117160490402449685267243678324260760034359163453696667684887118116736286434980350236329512406518334075185237680301489674962303507674650414608591102904198827530786329430384043801242765118989625144073802941097952407168988153392038363747144101141616655948806373072163128626147288684061469704056971003062641604632523983099576774368180593410866850648117188374215437789312546581985383511042930079406170212433032042584705386514253110020692319664572161473720377151485897108470606416604252576379381145830771338400919838626989986849768745159048797152633152600064904286750407549515685520957876177974782842458009781227283922019421573125154074590778217111614766234764669254848509567167849697348559412596146083102819051158278718698713070007807200620248197103238223094143012603784921207120630363762119093850308442052391291214953672967780418361540721949991174023942035434359586061979861453810897357551331093826325394069028155990316324603121489034603328818538772965776908938687291394097418030220640589146439527629105530529637206101407507139136282733406393614802205669919719848302330078527335676119311196912204973544450718776303402478350350945999194241864994149575445752162388372156944211868707395335022881381348075612479747444558584159345214625730384417280520801185976196131558600787659910005971918000324640073617193685740573787941399317675622589408575233283959141166236196439992420992549347987743816197849339436474798125140634905126563416302293540718009435545266272857310505725138878571439846753900709309591073503198897954855720388566104708235511324678478425305603174933080601170269578272890088804815956664040793497175423097430849800471536388068807433718589590563213897929162570672617828937612380285784824995659465577600030706289366240605214169998175173522245577103938550316219762917032390405480298762457869578505479580375824281969113844569403955476471471257962258215446686249562643306439468280523797256417060294851276736477766281946849437417775594009915138702815807382598920105418001408333353292039868781841920753517570542806162454176684944357874989971030274578463162158465197555451014331956395290381562964562061188515286854826647922037217598072056748656405735952140095983411372559182893678960098113653732693601017923574821507403875477660671114929428778313903746313191111414830161927607345896016954652023606480709779122441802326730310941129573739794767949520215305160409742016143263620878988431746582833662531366020056665139462997260886457968981154678526800908625408757543655791291391491571523450368373249342123139754365337949662934603517679335612921584495817134192807188747022959101522135441710304534474808978027713311380307381896277276039516196056604247864412236052688021301045815301671042034757309778720206672348760111845214557935826617744445292622178388658003681349371084461281304884998093390829149589736401117739277446581962623360336470320632964504360257760661269752562723379138144528504148091291745607328286549788836463540406177739830286991857992293402452492047111987232124372035667532586154011789593495681035466420852394609044316897370528582709176056532175535534046618108634425769134888012647112718760480454275440944460285481171259502014202565887460021994848782477195044059728676417638135622438778807331351556228927728114374205166144066859601784023056211469847840736517546366279385183937430160552495243897785869182611424732683323803844547392085545161610895454546562700228688566177921109296860876102606418993211412533624430285354377378133973563806234623763896821111816991479160447642304359057764070748205691574840163739188538155466668189656438200665712539797192754697625203968296124970041879854577996161735382804908471001650323241649999314874219647446419281540118467814552884881854917731938175971579777894639699247421584925807014764701317966285826222814999288763003004957512309085897520015151518702088551320157631327137416008795246564138648021994737056211861932162294118782752290087555607674177640847821316206772028189143367106249237970682697459371941138876514043478907518111616529028721107611625275658011922817527481948027671659191009651945557068151084735870662728448090378824393612463450822206422149716086401879476232041469867506651326784638485319326676295213932116653269774495724603492394423728884886429541065351465837454657063343772045964447624310585520486435292698376784689012259202871987047225195680597171661102229374966965438776344797688352544971563960341800994614099647466590699087991085395983063742360743300243689221951038732064358349492590308290487943761306959324002331943359694725607628824018187293880235449265331582343588789959209501643705937152475618835603080217229412933754316069879944216770177779905928996946220422213678104022984991841363495918385388883298040341841676582424553721863793053302799657936500694644720734235850708487383680518588761839352862178189016131442505420599820405085087104948354374472724505250102959716103098525253104647238406183632139307384808181834685757612617377803376101144636352937096491755949393747267279699877646818723625002925174477552861385613730713490019981141465687471476674728356705945646357098947280293257418220438430300216931476071803603174634276974446806141237721735085529657428527345169577031597569480270037221214148251684299973205783750093683699967086891051110071273729159871754515817152484269985499328662663311342645052069941231737004234567736057953368657750645789303785656210994699749048837027551365386328290867934862644124558505568224018566921786910722775933994896421168799580616971294281682103265796544994012501283046954473119091682476940824452968104977637118932028533162458624735943619560244382659857849859739320110876237797130175559237231890683145342810464670645735121089907653154194319222162396024274561108599566661711812649142321161188928186959865107156713580667706258656251262923064988516365954796427544664141414646335293327051923293381851323501988145691853433739269420393782445484706651554848421033044700617407366240843676226154460175123222622211810511181739185075925542615455494341199742313129984430351370312683392922499669600353355725296691607184283662965629535454542379418483200159274160224790210772087998854575156609383758454448643537832568465308077934706390242266015388905326487833770040352999244467947547600979443096684499170619228755878442196616759168879169950851594500338900661572813574580790078491205741904558532232132453292910524924299515634330010068648194156942283420757185140222973733364374835228074414138970641132832169839524830843106321341761349916682147060676019960358565248575287241910993076428408631707852938601300744536719231302261959442707973577488512456909479199734233568302767242958295398802951039317633012288873143013128983074759728594903025807962235340158680636811081629566681050910903922072563881097695631131959929165180221354973317605196926400170332863683567256909329550251960116158813355037241341338481052435332532128843520199951562151021808162083710512154260139913215469663206701201914549152265140266901650739360642112480964216274652978516781737174708751731254245610908890435656913589864518760226025644851582939429181726762412529352478302314170503268710024814355266675149044159066645957899684696300705501890132410385190787446108280445669639942386525767302087203301599035740308693494422248231413903753269735889868870617472302628913363457300094730023768610537089932250876444162865415166567203679032436950779216897322605295444025036752153578716635077473983060551431329382712589478677245187523512839978415139964427599192926604698015966072747668917489251345225304924630666884541531822601764926976698534906892184947647683325790436957389412266707395154358747587173330137933758687498783829751958073911632628981922193677551240518375459274575512440079240553207025403440173540564245356999256864661423371715746416444583772555212465748632384792705201678439312433259432564896837330724097547158195767867970880999115507145147090991361149106801767429745643388321805742860109661974874019408138229977298298139536162761873120637565180004949782618944121203570398990054091280008218380891047073893523130122464015050244761974141956921623694843027382146544907951289630392398106291541615114802573713205472170232136665893856085998055829486470937248309812042585894345735289459076254069043219139567382163402242795958518869024143965045895523116153340308952946977673454435432140034990400893476452117713301802285216933229408930783944442343571936513667511621438253362667808304237167738064509981666992019810413102487976381816425572958612320002388186164144320342942547456084616346527474700454005673295362856907746039550403173577479429707476500410965326044473969949870508158371173173673370514996987442843064177580264041216691924180693905326733991722582265286363753997315173040521913330208896149231737661829768916033106095185829351835849853154524990749637778595832349558876509775641915924499606664282703101759968554174400992539980027516294450918020374935394992809030841736975226708087222004974680908466993938314583985118051585726206682104497306096099262079430724366811982584462407456553537081861978207131347809806775092614593714300598203888621065012803756003306430978613502482582411363376889989262605514307253525485044347717791562050623826583807078854548366729653954878932157663307698952341470926968168314383193669032184909861890970748909789101456425139895965253451078956552799706651788442044939412069868649553020714331381791097700985937802640790491465728502295561827228980826510819913936034387662356900114451395585613141025088348230172611061547138425798524525244918178378273924950448368917436210829382154589653712054972479237441078781764108406048906598032184839066022870922137567522831857095771500654962824853999105597429969744407825298938348647150735798225708110421348801791170421271153262222284927909823477743191450419973495812937732086919960313243750981595116066296484494683684998819081794848891306672979658589585536100305743720734657204187466790089261290104723902969654649150865060057902971474426052745947991028579367155663690678385799866982164077117436096556419313840292763819746542206245395614755595882406094106802633922605758091344024403165091454304307733919292038454586628818291044848746183826294041280357219177464144595878649134114143038699227783330838729116809796841621811474612374311469789753818346541464187851467549538568636272781035982340477129915470189061987216535282267481032610294424185609802030631762513526817921361815094405650699860566723428960658390023542646925913197382892813252175127376705369873448197881683592459298033547020915156901650168996129624675379822624863933176709229869327386372672884523297390858518465150454710863822626292202745388920563446538627706298612663419667897399207402242836521146432233701709135802804111762787904861855170521981161225344803620383209866953612289519088488393709300092141381390577433221575630597611188308713861430169722460733973885321028872869172745667623768801616461529394640776481399992657306122840929640747969298767580767711291253458211710973258173410448136677944695827747993242680287158738433071456660280620450895829209215106453183026234655190427566022895312287921371895775305554133518577305982510864840966896852598137773779151889847888506104771331653827842509943225153893035856600681593276435706008217194645933559649827037862225295274241944807497904618022039237635997234672439168553033509774449357190821153853133889923608171288980418270023177353275545657380180749337609290732851961232793253465706147283352019587268083514892655260088127755191331690115844878515874740570916871005412271300545281560195559311549557179794202142227879471312418807563093182354997346087884595048828775054308810040730049906869479225906012264566975060065572034837647980118542088022480600571780464934817682368349970171133956278782919749573987651678252886045111772380214315424361590776173704812873574285341637268486207097223912059791456259405635550837172168239766898788227605351651199512802674308197277427418172639410390797685843321443267951886532856062368357572008490466746262616369235159545763166709504671591506744086655942283049218192989092080577925893970846436732724592548819342691563025394690488741915727466792966376474003201287148761075250384299366874929748229438682557707257434082629257243428499255094219057339631780714862730963551750111908256405155706675138386602045382691714165874031437768897030323366634930440974778629203723616529709831954947684896448209019978344171050666733179171157635551158706911075930452585548182265879895195882321201561343484711322760341017517374137378310757042476570157701835196487359641245604842283732847916008248656417941410466356015620857126047007982417285125875201187404545294006260622013833509798366843422602527453835453926478955441119922377640418533590732799099110795728479255786906163294651317774073106013615477946468555165918767567280073014660167818424547492722897354906081000930734396816075003052807436774612484938878249219616694405413886803090406661651162280829492853228129631362660191849679272161932912797134535934354555397252486567199955701166561770040038836676044208689217691409752274220268213872889792837135369156087348431517251685535186282014823835701138311066899164491832690829574816535762344533547269024280315994463736918055632282256351789195600479517448627333617196892691848800463738002456463544883880814219645937942709848584399634263942921222917157922315423525932807826419080122920952604249138526285044981288825721904874011139859708658395788186268747349877727446371259013885334813702143028602134837343607390047574608466475543764327781242574596841369355447632327599388574709501492539958327356875759072206443738693477510688859397939063402419368329996950865278083983147536083917797001895668523849386258447171436424128813694118553464159473032076408548725471950806989456157557724204763971079716910383271046856188910236665735075390090315969588545566321039429499473693026408973007731050528832751170091643941445147197339288915274213361958052231568245054479965537714684680560437746501760410399496541144757533927433343014893652246693247557798993722288116034209096235634242765873514073281020064212403700502212135349685982104671119641905697582801676967182788709922283071032548760484501452452793761715943812680433713616284874459409844277365899357357921107455915798739860535245995171493412484006248703685791380113082692368578594702762401168378746488987760684931841858203518886603946888538984061563249671696345930254112240710775614695255844370767035735911209700661106080375528102339328396502441538548585836494445729433150941379565231438895343349051785481171997712789887887310766606371469385446728858070797544850880154795715372509038617365289270375858312028872040729997723128202618079103197203987821564402928599099426996522050197682124046418298104933936350276515937030121417031143873148707273793936887053639542672263571320360656537032162432161123849686655463039104942527923041873627875129442348886244008488934424257214913392791988597535037688908960028852448143000352987203769871505174870491892085485030318220183472830345200059269162544123483612382311377468158352848534555776179682472088455631977995362965549862835863379350963370277992597354263909565392878906089963709979483858203443968324492591428495255261968620327137410661266158976354088380639572286107622438990041793562140911844379674972460441113439327918829988902877485673627959971005741938130725706668669661132318623717606450606163877007455569575463136245411286630163560679460794326126859714128317913836089024918955653547220447060586073579218217240907413658162878493125708629000125801839863315621209080012585769292082549628457324471797657498207417759244378851587757426650288780322006440570416442580405007691424978153916987129365521371660638922756652694198647548513000498138067822087826851826672695178886596653035278861730592509706413549310269762022450784645847633375502476185397089313752113932673469211539816557392541290762466404701414314776489929672225885574098239152848376270578191999753827367102631204286461066715880068367932109339600984848106046654609591326328737515164902918911769821335932248663098623012877173592167789756010063470832883325651348583789778871875428867096278971739408593259967629860582043157793968621323955275826077361350222020159964913758688051796253124944355561600092025647760588019939234385403430622791070223713110602093877747979099949601508761225095816051987142975839710123808287923257884847033384576504344513650583029353807213377899297607008251909924748284052722764936084259747509509704555776523786971721659430258459980337948682012943252022287405301164900012765755595617144291820220392096925902818692856870557245368328246285843174946630146643177545365104686966250963306838395983027058086438101787532419970950273682393875694808093281232869951019973496746247456096458691971278645914357641524909312692775245909012364180702352073213761906001560413506765593361817844550174749314568411381677850716142466626532354386216928771010060711080744390694572594144522117245261473978741695481547931432894573797436836213677530419539108225982528726132803349939568448253615467522494370862481448777027510467730889532189938856724000339187560425792074523331136658280870269428135944249049098620262986729158171377850837446205779495068068544799149215293099966262708569542500643494931465557716052933032761893890490874075053197797189460871712284996600703973154013329751668076302679099167053944100620795378702997507673015212571589237558555181117400005541455658407420356101854301729212435948904520121713264142615750812126298735592919575215012122277867103633901072266117920068508746660908690586360561450089066107811868021013349317980113863301728578053510010417526215101854301286873225083957069778471719959232371274684263054666952082929629219951432680435214531604535190332696799418456895128857232399650757476971466079405167542724745372156258315946381174522243099225171580765337991412994092061802401692004185931122839358233214981627843170112606158004813633820110014497555459207590554511914213515087584996597100248994895158862962007908049527094871739478227282541016563512813449437123287852041366258368511040832086143325921140183417324212997357219770460642526209635913421009002196988805941350097791822192325915201568900744970450074931319253095281272903820409517684976476666813981571340658060790830736327940999619961452427487255823077715067838569786651833274725264537238833450083378087054575018636510487042199816863826430096230118908794881664880355689775163113499195861980860083085527683716411899866103366848435722050914868621163047106094582951097233722236008160895188493140806501450565556365047932681251966781896471144590924199241037579719899680154736424368600286110601246806117605180600706522818085271999165950402629910527735743088903716895235372282664125566269748918899342891656016452322355621363551532534121160196790859675604448677672370444265462299786981246087998405717103326364342223505593213473671210242859076658376857542732198676384599727410912369340325359662691576196692415977266084610343949970518602083653789010350419810699805690154080656732708688464080565098670636039783985462241850906418405891385695486335258268636359389553274727109455764289986106922853012841614614813878369770699929688069651076274595344297761562908745781072226008312595173438004482395786117667704413056344094617729216668839413696166830745904677607863276159308312835998370834839469656312909154858246266192792791504903940937332551091754063638827857415078734191563252368825024798713564488502664359947032501505265255813526741203885576229436596873692625111539351459374597915412382245190064515899582454363334351665507587982839331361074523258966604223005856437623983845619627621078019609507264989288377162380054751369787497991137132071265081197871543098198510893109945927797565573461497617697355342490887564939085534968767779496211114609960103444960666155894179655847024436943510545890002004852413573562951484172812489500288215886474796815040806954751453716321850906255233977356539440952829639819355181640209254165443898047008631430597744146382678993899265879581452395858169521428354795878777205977772341189411981451575623764032465146309392063108633643348825539367543226958359895487088396489231557455125967665476138939175944025012278810103658462661351684523057613130267888219839170499319163900672332396312103362298274041003254243310500147326718386679501685130066369257121569198492346405123387328442872216953858474901040357917459686220477430684830596209034736779516717308927545679877536575754896751917450006848816167179851671923905140396716385664683675095275798462415853202954679007657072025807743287198712340681499515919540286369855412562608780295323846034260709205995031597762384612485757978784982560755363416912161225599031895053725340427107133602322468502447562656650280380675446636841324667784722461581100600172020785230385705555445747644840345529418236251018456965107754989203001691467676537407663977833845605824802733745207978104557337156073703899607638710375047569309709758194482291216510182158918184743233742492363358944194961952817086686653965201578778442611600319853229363903449831319452592273502336864142971261443649003635656701422746266698545082111696356435823338169685586005816276070279439907472259330849048679058765147733445331920629330611770317335670887997787568502834540644507358184031787790620111885467054445701728869211969338875462201667322248414511409484249819842227742081372149679877524838752603510389640142785772656163436953693401347510390220374536372937215213074882375541661281271070415324919966253815401304669690539303390203687680186218294713989572895458394126260357332934987035434129101744889142673402893209848005424217543421280975157530885744589366563044194962382814822837263820434246845530028275184390812208515902494621854096715055512953602021941250084377956635483843884633578839878930484839423890225456025375194773006835715345751096883124843292677012370714675289270165707954707936430924013182532968509627658655937181980931177878992182831491806751061186861921247763328969950183417583547419202051072467095987233467820631118663373638206304536490144434971942681273703644344883253286943045046318244623081254653190458078820663727801151764043713439611880548371848918353037347718581975097440066637848086359670956750415630931936302313506029630531594698567415102185544434819408894443906055965730369318137201916401516451060629784129881583475348806305769740530090784403730571677617484881030577341981134951279623835988713378256471526535557789814358521919238420853858230435798390400831919214424293131507894362152895144202236009248396276121529339426852811528742264439520356214542887619217685120961227230157871016868421524486509821563234502444098959603458816662401287468960619589859639694153077071052011740215430766424912778010985555108110035886668387336872117055928389824475723971519956672602271250455397567854912581350957077626736178777627758257303255458212031808842738735162600567277975316869752178688103306362798827218879242532333334413680135469942181855437927240922366453915803682679615701500677006358935841489503165012569711210336317121946982235299697941864614651487233079308005500435525487694458527070399077952314170822645771688484473024362691535832768116141461633753848030900470260718692489709731910754683898123426262506948326197094809692193457840271110277101286410754428060594470791072057860353745274792204448617532864212044882593911232972842027858829642479168359355774019941230206352588161975863357719342900208540923690411163665938000116416346135432154270307551025451232974042734084575567107782682017279274281174774669788865498192589373556832604956559063619230767258639643103002405873223057713781358435169536457642091621948495601230374693412077557280708719064023444327481738389665041830067373628768851381895427766636972094968421457575808066197425906486523583709101487902096763574376123374952517221305251179549653839005164116178684801204677589141869900054617800642342886704106992661228425682448491928869900967338033630188022487730021469124420121170748440989864619454672510164878306729815805504773749108492655916372352268559431515031323317419384026659649615287289332528063534624769116326634414099167211023563397829973375696591467696297294614011927338517127761953660425517302397075260718163492363620028490757040735410026701378445665140037092608157204745741889396400617620329511748025406552764578308528512123240716319794851647888180817878125140154780607408022063084764644295298838245664749962329172221388710730820255867759073223708443918636208802348821086465605081824582774910297347478924876968792561034929835335396461925393196116817488245028612682425834351115985507960009169953771714918369292474637377005783360745925207109344759567454230900142903858090528952708379340080572172558994097170692932332953948091737111409240695031291105785378909254818366325164464010913594749880230855878571910127439410532376342949836128509054562011077527620151699089376229910096360029781610543751671257272320639527662634768678189810572326189702411997644788564766338233696866104582952805930510230410853012306719123963607595410626109722670802567131211348608060078782203304350573271103198026863796710642238090386082551990222026440593535513192195085923754782291382008504666663063251694624335123017657831415737247503858697964238723370477703484425707906021259806512574179411084242884565124880526337590219687454227597717687387396163832853806717077230381680299382205118443730127707687256291300808667621672544331614421443757029601637456467189755725058963274994154379091946720911121904621813405312536583676671794365642006765453016872406403230985802278339301607502021795873410028385580123951766016888868302327537697143765546365942006136552071509775600864317763676707907276197759408823010413662782982027716856075461604212571794329657200859770680564286162700168626721748876323637535575720367619901666698122226678334036008808234695626883913556464548090835995497691560611611709892809341575680289059588866446272354718767962668814156950973303365594992626938958934973490791737852509602260116513028441027332703270414080273565337262365231185373531832641269900732071530865672778561646441978703134715902202161152670111340618518693181420609472593018766784969495100758705633760545547410722498333174773305164999720636963209829573504890176016130750218195448144669527746714880079705069766543181906920901514405311256257306524113628912090304189319066299849442976460101985988761741104908044164869668707199260875362861586614777945777686848032085098830165780633661070962632006921880350028670009856161514278244788652219418379782576612833152162634407421027037529338413433016612021894038383429150972621385329672804310811609345511154921231095580882310289336614422961764765127546522956260643189930286332630675914638661442067421935915404898928007697186346455060702431131310849028671238303081052433368020439516532695506357981631476752512510427212607541306095622748643458202671276327500806932967398900183001711900491567076022232532936976440555050198228617894524205074991196251940990522349005478587649044990528324128170088636991921122224504744901211963085249631765541124472103535587348180397125957877876251554140053059594938096621576596250389163023252326650168613434990023692352017173913580512839919514891416185413736165237811188878739017275895534289661039282400179552494137249431633242995610444560828328981097927609238579275431020105346564872500560556424516697578487940523426848468616940551655313791082118382238888150920804821771550916236346266598432656313638286538260518912221959897483990304042768618474362595096027981587350732943167701377432981864159156329242632339681535853488716521870665279981032167252381392588272929122171669436650059278818919180488849879867128894520253837655289472748841280187769198710137433977970955122614348236294613112454033472111547386744144446650954242870767315684468391971712344533702014461368690183353100747223617127325102780615620068399703064107688300995584364527701303940000192760839853163941994000283215060260046449319884439508720934121624790650210997409802579957416082289596559388733185190277203671149219854546445221988297919028531207515797518041640249238583345385738722804945402033210432874883907166092542345043892532898529424453348696088044319505045470156021181416567968653845621275458224694660812215115230763832802348815860558424563344539984250332175540167710715642064319411580324138434769501344749624323299948943372204655153070096250671839286288225877422395521743090139051285038118054444210907318162905271788456027299272016489098149283514896992911128790759710503045673419368342257582911106474106424573090614153344241988911222498136975173691236191102131177424788712314372196367052431757858291284382554657064861326511274253346831491515912244821710636469445938554377447423916166640569671411062350840134868778607592289029749595782227848484147055128038033664298726932241514896088816725049272694855183502546159073946945970069147688541238902904399350538077427882343326953825502463273091864090792700109882268152127725442712014414219691418347732255050520849243031240030892243752531481489127518601079712647722300422005753252703109564701297801566365413737939938403903137931126244597945054348237244632472992369576066823662850239658458462587284964309721417714667967654199654447022001387713677536308667938113193254704478218723043341389886775419319585010014891718912137755092256796276736425848882642170335627181824031685037302124990427727289482252997573352699501757699398746961058187851141044695905477071997208046316323152707166446259165326782469189849523911146836382497126387238349671778103723677076669387246527673377773235012200847535160513406454357252363818381747671360248883141011768041966647460366364149837026895345859155354856852513517096672433360227605619864853986648123476979481336594292536844751395385115302159453013936446324014004302370879551476518966503590719774323470040567601987937393523778108043573723079369010846786422333226269202129548893125487656693493717846345200081579383363705857784541107126856537888942854938197009868589802124066906699385121610650954212528640456669356659062434356810370748063249985390683089011534141373328698861624661002928259121525824444661705484469815972033003861480384573594533147021408092056370253203558613803994459677246866687296063130167086927965781766233430413848444986748688741232078462545261771606135950783504326746719894560161784179521613494983214354512737134828616526644927450976104764282092475651129360640296475149559503136361957622575325833429771944100161743605751908411421596688824650805510736885440993212316348464008081864241797735020460149177339112093110928986604538373444783496935261252927298516310323461520967489808551322028464141271654401985902732416993571022326104229279492469297216393803505998463521394674802688963947612833749534298200427172383903966735891435538529032237995900659191597543042325872167354280843999747801231577444166266109516899079209144419643773719353753052094661442109812257716015212313679847394300882211220174323814860906843533298122062035101082972280904091785412974166840473558405022091304641457692966459299569376486526736239932777406278738465236311474394045829697466244953575004369032828262533657261234441906059019966371280370888222209774335863465437414664703537781593386405433320445500002370055063237394705131604936696408369729642585525826405929687690611317993198958453886991138069885170431381474133084346378159906139513224732297745715750265125742322161662293068195487513820372594882637984469039510526055094659262222113711403730882401268964796023505143982714833564002373065387335943260543909821252019952081760130900976312995959508205724354672243179009100897028633762165432535830733658036022671174130139599463143759423953957753501345092901211230272699804747459205685158077697513035525096616167781752752707945711932469047015774376587011306595785928945712722744275342549487903858509998520518900487582090542772582483253800117783039898704508427839587068271903629776035288088830442998981213403553509084803622899509896311442707743082162421267464204343599578779024336507692170839296249587768068957347516972351860711209719223741948615811102744029623927448815668355564531047218219341766072269723379146564183750646437515137305008527738336913994829403725791946607544208381557729503725323442218017642053413150572577333455499928271979740201941826218309857844956255200510409950630862534073721222847696799020182560992075133719303592496759049403816454106303630109176646929965838626274857024602483705075978610595029445318281088637786579847394763554750342334400970961253943509119973296509508044725287925684557529600178921718163764465625773918523212668364083764625176612535078179991227548051042504096876880129290833692878716540162386933770747588599340007609667796404814111628139065399549247261839624236280921751594653154373042103319510374859564392634482261337459804647515122779250624016945536460408457963156265491726094684335445971410903084912780852200229092882346091302572810186594879268622544252117916490606027146226173491256304142069901999900592473300908991841617387276103512982634956660888704301731805624437169450544576295485549310289383032022311979272358819663299800858165030448433746022101550076608274600639347136426301138591015620872218358438570208992608184465046877349953018051585469437683837821360506571734865908470105939185324483318800884677885609309730815516070465419823008440480077112967305702476027174470154789431720351032998765771193175866376685234820536320389685766549808671987103109872189088356555336832118178232045711629333370363441479140162002476469166664000578163259955900261087984840083910084669660744508707434691172292885996595564047570339876128110632696180498979707731761398622702969823793392719041833691337919915162024726480366217793749600803134220365964281680617755569536062919979793288506819524377165888956119459660043179249622132765302576811889690590306791000670607995987569337519811125003839373407392069117121695724593186950476980165824418227348395407702143656929540957644665625433067391886272053092800203587676152631086539004495810080676359177556207720512379753661280767911253572729529168318434160395591601971433039976922766920977903547925196318333710312718744786622112877190851961707116786298394279360833294500399277356280203663528376176231881085090341111794350588763062312978355735406888560362775643093773752460207422277298305683465316632763274930125136809763470302138144362300716214802694844152071523994576726299134563691621190206906416912013191445454026299155634921305216662077672843434504843280821113637598738292675718237806552361293366635711838418023864996728507955852507608709314297004939418099294095025642273313936783650003617780122350949777160263414617753178649082231680187569742905788290915433648313304127311689113939686814255126283608520282043102666965937944254407259173766022194078549676077360525973236342296829122627825187272245321250878221481957829247321884761099913560357247068332500380270384889346064058152064838902882635642363749520953263466999016096539016732842694804265494606949485198220998724403644732895673429392480544380725265854154431135344807409493136734018601537178741965872697632682409035530479658605842596316643617829194328621231917066991518959712500841456238980328072838046107772474072659432996624821331120984023849674540374363435053440574468718623115752880630573232196636988266746116171533746787498567389654337229756838353695263283499546475158674340416183022897680860655380854770438924349815401629136556838613527384535616503248287770666406286141670364379481537163020894734601309399408219461319260977684069985777590164347356922131987504362018162747066446636280421252996512231878000549029677745924852710644665289426655118007886647668345071735380254196384245113340849352778123934035902395831568563175053648091914525136725754806959547695867004162862017060518979206253441094355607575478320215278572564021831732113788503139336124433270813882480457403063850339921569707680457015497714633705926763506986314825825327097046737671862916748525807937453627333707192913705241991990928510520209979324061379500836787576848436631256410097849843624369574118002885271128088526747157841064623477307344047604314771906849235792290158232222307917037226287381843176430028663010850926259655461923527276196383212815947835326965949057553786409132310902508465994404457651245624986424965831564191015969519177614837065822510299041611507947943198867566010723774716029443157295557939822544321979509788049964362484870152298649034597371263971382799542586866811210039728273059515261600141188042895432249708119759960122996089755152635399375006832037048237151692413590426349064987264521925016909590502374654323648679574237498148583778420264340199563644610290256212549615264067544421128397763773762783863882393335045977565998064472650431160834654848510400553145895333245721305830224962964166257157124286184744322726912473371410565313212376509000929811209736291929135665437737117266609599400703797983092051230658227719268833959924578569562855030637913097838068882679546863732752010072081032469118338774463815890052483321607398484427335281443515468520951476347149025756856395503569784457935822188402943884661262697852175475914465471382664698855706218675591309512922977615205489869669169457013576992873609393717380143883419543991771011663838227230610825284917845568969252010281439411609225329840297863924509829807935786153415955018204649816967969128208942504774325259558943382347009118390679692001906752381188074886475116467967942864336778612826721707656582145294220380455685291814015840434971313190178859806756584168648171184434948060758019378352593807398498965592619179707722482979262645250396997188531206129432440789539953457792572147586786724350580057902613915510991970560576879653493778294185779332877847496260952814529901351836449584648115872435561349166245585175885184602434413510261184455164872377451263816436881331540955254382465148334796243185471160974591787257731635333799215971391599933689336535705332119830552189716796646552440627125939345042404194205021071579158901631054721856400099795167888788939997661123291692408322374919568597253080443068400992151010207946093047829270773697598734327097749351257763611706758913081615979671538668868698467817724050583418669596687689559162883933820507575458851104070461890303287838748121815598048312542223338349226067258696311676550385582871124417251965515622618891774329903662385063361835906430986193489434086346598134501941568691554627448858240346625467873735638697248023205993645860425453884714766143494981871685211560038135369246041477031440990897347104112526757330760259449951741021971191397444875510889154946246807633966014920694010645821450859885782132824656041296142741586713305002178964158645837419173696961722046329720379147047530559195338813884710264515040987123309504916250684879373501801413122079372812699046446732588214649507093084089383530600915441474878169910252404073495263091114330067058399903615928619499675653536084461927429973260045815573662784134941546096305222220765387753018103830854953451958495103105526829854928279756839008477486350730075740882567445910452151919486592515455455140961703541829684552023658181573995669023735500686980998062668491978841795506084225486671810581326651370276234413462026362066000098382922157351822955267093334589647836017486941164412520144886347816295823568809886335959366897961852980534106287433365459317521798782383162200191812385262878890866834961855254581000740430004826136461636466300069005158389715539028536291578305192809878954830391746112491949153417211694697646743137215027738232414738331311846386339442246017403478133415762266634564647875240136758644557398664580536279502005634920177385740613408784959424899409198344828737415626103396657298028852564706978989068599871671978330845015752591120881639772338918354352097428017960192751631271350369551427615863279344004879202076591820258031581907320927884046515095226027398401571176106162552325310627058701152403082986574249052123271940403912664574518581412731580949928435713504037149101396463122962452532589373124732790758034681683795528573926648630967081889674107102165750017877214233535295397051552736010481030687944294879571948342160619057934467326789883076467811839262227690125790726101737065572231249892218723713763592861846140250222031281024860467026627309319860931470057000499616746944290543595727695125506332430706082118387611527054209884358071262621260111062216621741113001882733967078483267746572272498224676811810599305684119829819303402358026544678572589694738843536574937279731122274727492264548030472626619835637487449201097558134980193200306696091651157066073277978255696836141084670091334642067912117225174519254448997608153026626456111046937511947675355892368916155101651428295875687775795908266156768912513860267096788433399068681546473478303404967096963341151807327971522926247188102316814635720374299274679855989285826561183948564115524288367815239400558795028810262436436236637399216938720601819393532611998710463763773540204884096072709048484113414333102621503424823203871170056098726271969425764932477919172766394425190903760051708323263699357791641973715710221681608940195806186106703012351090610446527856234983895676559399511343382708800072914845369829939866488841160119262230458645857088826614393914854991267213642169144358698689158493683250324538703859439259216463412427266032805530558669182791143933078798075065079925038251088108376944891840702974358919611066910310909177367387671226074841204116047166528305088362541639934360360942065561488094285319468939749414105963303317182905345549392841439956638583189737698840739026341344690132963735753676937208341930937383404303542966559706934606833384467054581542692156568393821065475279294638621004955574689040994642130580914227835990256674118456516490933735672968594855204298984352875007848274612158647943902225703827419743641506844750564381706365843168739313707359834754519513381744073536400061424971908242320697540392293133418353117399794894161142015412380136648720923280181428370409151359729780431773261127011706336038317550823687420118585751715501279183230017084404187059212824767219846242422766482254249115808833517933945908275922214249029309790012133250543109198017969505296856715594510910205276086794993922626998515661483615668232872216270876824387907392511043915253789525946023906289569336838849207439848618406267124119889620989169598556455091315434572151621554160913635626063814148461046780928161965478228888505952124536935742776433543713367680385272234539865225614260949786922541878541840559801221693525329113254115178633688599762648863426835235711857989762130509119734530811202113321604349368012421501872314771862413915442532589556068041814504233184153684500146146611087844891353146735397384842592132047667843547020269246999015190861503767148866971473223026014805099098640910731272423152696307629745420326992909164749968225034123928281847751653626210959009877798520945509865323375547982657374352272681246290532632916505050541271463906193089089879290544155451572747072578441224282637682146065553465884639804488785397322159125089144837394939803167083006974497121054569284888642543169448759705327183925391547426700374309632247109924763608075385848158588318063351094664998681925802182434714547793161722365318470897851883297245683400954376528079291847952496584337233989393506563690827912911903095368619833162204817573168412053109793479428614467796913277321892075052697690670426432850485759481086379667835355354733203299655953126724558462458005794817925811441127457613869969400198605445222869698071861657049576771449282747181451748702614367391468918750014104665712123118167677367706308470643969416371423114064341450654270138923958680624541633231585377719729698441381622016129805704017858251987011212820280344340065081933405906753411507393287361405694750382466195657047807105828452150315371551206105182442732728336026941988160497306239889663888523038286287964392700899072389159746352524760270282720305376949682381538986295861106211458155570608091106625863079340461517589285692378185651855662084650489660707754717122511516188790914269841516207520096834270348994673368374280824678067611656946969669489367566163572254313841428159018462720679700592008492909994045576367655804179829833550114183611715786795101311739758410298010028321777501163037817455227646439640861316034926142681408558693138747033351168650516853587286648034793901205057161282276472225965017434537119708868709543689313402246411462097069635764478865842918769051215251542808480673387174210994307555087028033172239018432323517720816738235314772172150107239906671207715830714144460363556352624118601736931222617425194682897021044390090888477802779054362571723561617640647030500239053052435265315951156947828765029089836534445781811732209026318542587231852703906634786900783689909230703200991947188192075512092565757140434855621145790833345381178718557294803917285582476973787211334042296367093352407651215114873502704711001259374997366489921643955569254769268070482028603641024786062953676812100683831177627028986330218919819307277507978990133016715604285407795334050727843337600510064516376798797097199111065543560030392944141594911216981674575667203007579277350800254982325415717051198152661308851089147924345610589686696932543925814253855555429133831051789680018041637518469939966473400521392449322882533534185147801119610313217702639511823139125684676656180882197428926125900174946230657270043213992579892750601779993615296695920041707048281380532606881579577378738689967254738852005643178280615359225695929115354848567946071391404856666056887609268263940254353859594576010275399583844586549469122156554810675705427620293210891097922499817397978830154073964378157307754436449377182394716129963882764822768044614686488800891372612650684463424201300033876415919719173737740283251103507525548726881976165556558969323474907988001618695057186327202236187044761725647830106606731668482580608006382066848179148174874513841223139429697048043543189958169280355835196599857335432422512481042033372578317412529314679962757614160076067981974770390156030544143206297630474067227748374556167719183376471624169908118033928502028795379488886386518332596539459263741046819895833405652706612211459822797584088648940851564682964032291525805890031417777251891550747593670771886860504022717847056561978186031101512429075140388394922792824411123921632849072400260486844915891060700989417186998782022190321378772762720939097086191003233835626487884509802617690369953877709293020008897004154634032105464324152155164039766872947975305999210987523016793459506467164864299247856360402953370492520759571937147724361742563955491221697869972421327220078196269028976047377276321820331814512041542062474794757587142506053957926246092401588841659256104507802073941654929305805999398758508223901849905263230854241587107853557294603882124146599461584494163432048371914850635505227333469038462307090624846401039526443104525212031271307807604768689266593327937703844752823076882954056311991695487598783763931231012018076802025565351611269286021841637135130045550988880049741114227712048196021295590940368566251415354419742628014532365759840723726434347006147394812806618751939391139757599606243837710714037982755993787494284967144627006906179296541430339755758943373642236776683530875578608671920287752520694962377541639768709235632651854947757080365463203523472673136000844581479682309991550412368763162780324675061422800424614303858860689076273121055520902434881252489951608494581621235543877044571575365682212815032742085632608659849965648237833745117170622956235295674437352921209051563327171324261099460745451485436668497316718239386214061146915430797178488188142125916360606383712019594053356494444366773570557867788839629994254721738088508840132986623684119780523369422670573364825956051198128661331937675828068614459239264295758720234842002123671567794274068475285027437035182493804995483155140594553521796500692298564387626005253129547244069618676123781176566695937996890251664300660521321572102043774629431491901685355463077760455527994622633235743245203195423377105809095494305834755254242663554921392587652251640889759743666690103063393674872585363295523835373770748269828473989547972663090564955090411950819179413874970324559701943285884707769025235641504098963719924213656084490024487240317807592209472706689978953270670972922495270859343371107399586372995769604677924067514579196376499203990526443639769680751708927655137476989222951108412105990845273922630569087322261411503599408766742609288814005129934365729212151438601136457108876774926980049668409612015255553944826064180297095266322757804208906868101079235436900949609209778079096411523876891581696889166817656693191843563514361569279408647239386420056276957425820197889656459900195469044458845312386896787210128782663095335263605092427012407643890564191723381265877268935111246938630716268473715458706204214927593532575904451822413115148748768059100655610675273953032924566682847220581859992075009408139228328712181709350844053832236072314197616124278023854822024097864375554567567077110127367651142193475456990282199844408241530337385015419967762596016345434850231744131070678198614279907177952350408352662256019938203056343681559566842797579290643094024642330126492876264181134902050749916184284399111268550981925275542738891352636744185521476795993275582844941969411066398912715839140876352906600629461206847622659749791220552654602938296725111459244471817062937088222972496517142038207977909376093404530134182119607636973091664156946846278501081433220176987856956546382390255294388656113660333272698424235601257454331070157826054360300621079287499034962902427878606342883619945635587101899716704559864096875143053318274472073810140552358838602006110618502842862595713783284760275939820212886031082123603676849981328708288457719633540450989288587785259155708726262360073459946043676895656701126522947325190189430019304498928262708536897245804213445984712862253850155068960182600427875420344108136812706467056643858107288652091852731998328547537106163042160577170470218162784818906005905423597090204148746471013314078408877391126322274987390352326792067160893714351604119201994353192105645548779918989201167258581793197614994182639742198947145022207696370700200027170623742005767380033799040462049042985869137479150921156080686221190640180469206097617079922143559563477913538606069252756393756029627152472962878701913034820449162042668435993258261581488605458875073478068598655258804381026846641963660449868898962175329051746372218474775720471802866180274330895797684156502487893593374040591056918565093927338846153434022245817413428141441585504559608582987940479165031332381728367172514074900443127772762948777043798762605305897704221833063953154669211361494675045353007485953126327274971248331671493113047490463941634248902268634603310447528974305893377722839651166283496968456426134725628315763273300091013686080420691357720670475302611080497497111071463721622803557040553732558689970614052148632473397672808378510524841155262116703551973785537291582121175773094459769896866224735852616534445206973549092421848757495153723907881064039701583631937466479179173190767870200160956046731024912749282715756741451885334049761970927833781108641132869680290724656216773084869950456398443128199724349113935390847145799959090599517611793966822767024669643575843696256650633984478095257856682594322769204706205079534908544411463186346592849046830273636603461310134618780422849172095309266015143781164029725701887195336482840426582526883901910405449194798810284727528932132734420878882991518580200365252580213460028098024003376743996324742234454929724101889085725815381708261723060020748214051401398561694250826680324595654616861859163584505904641388288725196279460047188564257001106575940125311290929135105132849604564977159201793764838229413041170965951163232394384214059265378902661591486246426640072555469506777423888296468756849293360019231992619820215026092714568669329775403295970227735401014223272321872504019941961713876237833567443407525801746244313105590972073684879980475297859737693950676093676095634897456196067636802012538701466895701551660461855341685453298633009602856577455215326466645011355602312298601690400378177931774408511568526242644200092469289643611354401747526873977578418253776711155381050487366489606318436509209134961722409669909898844231909233942379901740324272867992717755428274151362135428708153983495497488541475961676246474863939841055826018381972807763268441350251688513371630553533062339051587107121627161402612351236918258992831389367709521354251195905562746338777308323138620731575770364198740350528783618359967972898110423773017296179494099019732475035021128182599115931740313528378595234430050627161699870030222115705515596814975494713806855521938463095954168961129827030510032869188429309986617211297059957542582028048014462958920907513967490819192967738605166966129896692832681810818527627966922779604698941242820861697887111233906936577731177564170303451111376446640766066476070351212398388889213101723714762314357760790588790717017252280504854313299763832308793521935921288419723517189381225601196428325152160855038973002281997832928470796116479969165663360245682382205555074887208094851023737108313034778942861450090027906383944058109021235157276773788339998464488605394220191771497924609822570832637151982506796018483442061480878884420001748474840472655162850322222962389856618946622071442130674409135676376746120861156722212146162413114243761528944366500026308514349309054438621861729682636438105586056055754348074434878907307835160922453807066234487539618856994507954883222032001611718713980702000148735499575941767037362757085536593378616322752247392568265128127483165252203601849921116335716704814432012278590298044421029473154528627492131665227424394819909216450685845277635881307519595542799436709737841911125713187301884855831793487587327318313907841914691255554782011145393947030907248408647088061634312061247074644409355372375628233957981076855916669781735724496603314731194650681452821831871421941942528475123960145060142002810352442223338198096319556428902023075633882723719839951335149186218396061614998601367079964410396200440548555704437921259778656806039224611263847732663118521029171896044622722304560854330857438809048602681998914141461007207064207629971027229829266118295459347482799886358593592503115497207792227541260927853930971912240260518977859191079932668966293566372903683129178155063387905605984636950134858953653988700119848710042945245642144975312608770856535813737792031521459099612860883237488415012860744283629496580971198601044937838377528908117806725739058618342769058773697751848875393776478522214672167390019979626605183699236950136770784387712974613703779477144263278094803266935991969596317590690495360036731589874519342898499928961192671568470303526641981529298819520922435383624041791784616800788004762570674130349910810979784769051287977166185077952454652492911218891930958893968306634443996542988323528478619065408852903438125612737244627271363733119987324461435410549988054304027340781694601825593326718922470760484130070058107616819068763650822367505990790389160664682982232625236994451443217351591058882515096068655172063927790142144328897624417991414190252524714649751489903844621285763386100881645113993628688222779068575396062949212271342036025151537472478972826189286197178123873343718170359869958176097597782067002285527102249017446865264837327429783194810314016116398868329634491123514749000839556034070570404148196868175703714990194153626036428128084534635300062533454911561855726809932998050805112324902879470854222333477962678540072933125564285523487024629722013745434472030666467947210248463292522592333022158105320852063486092706429881132663148608829233113021769418468015634298778045032126764417049111712082690580648888387916466572543008457305298674020911710588561077022591501971514745280048272672355393127737482847356565301099610094846211191444758051078676459658736474685105067884807021518431864503155198509744676138650722302052925221764920634236151830081020604501175410784319366213027917511163424251218269455817203613362974210519670882714733109325617808328498091242052189491446098791078122366125672229090199991348427872282824519535504338506716660517056113094701327779808516267844995602875583750511566174670838965727181332462844685168533950807757663797165371406361260164469373576919327871407424068577188538536382582398136356535779877053194100948877088054026421485579946518751423109400061424565362423580256358286453096582129020443712649823546211953485675053510515346033949754461384228540651677734767801478038941735799547792437015205721898556052458188481193799575765400511071534335144066720859974059585857229070755656375401088458779692084222951349677498752965858727611820915753719135132814197744228744762036675080527455082821762839333400239213116595299890177221687045579989071231639668638057036214944824507904253699011923292753932424349403629214889400795145384697866890434536703147851264767707065737117354970288624324313518414759103501291584919805162743004544994905765110832258265607643884089129085100139578003599743709952583988075274994295754210403197044920808908571852145332362381378285426256413783914686554848608906518477801982096897689462309365324211307922698899606728787628469569126238536223499909128031541217764985517089236874476754508106170776122198418743597011360586918475866516655142050338227120535135790264138098583437078741833621461112953234358069093845131187016066219629656155276458688643522640456488488163739948224914396815995574799258472761630599412880958260177763040271319210827154426546237006639833659669884152292458635876652398360229175831071341003171845166531782938250609508183808802446474465839884712346030580464869690004989450054702933046148445729032958061386936002259482700803120891841037307007046240815890492345920888450722488787830135552455430189139747424079560571196832058307581952844088667183744271648623155025135448020996578450664695122978056015280302452697320383461552220216238309162505379552555766366453557821000190645868882256865665831028376108849852431595396467886861122520637699074844038813939343414258622640804962599497452683897150928539614269964777675941459209626174762212165390325213800340266237486820111166692997235899512418764545565908297312414555718695566774186665290748356883461167963458217316844087750648973453803089785741262017450679967617300249997290095830258110715522480512501712198612078361685894740548973162884984719077762004009223422831192483969271566725388226030699042656798507474112904922413235537808254455604616289008729570406736370159663157073559391260657284015992831037883854522223874886295266169301923896415962359652022265845822822938974996761940098462229407852518639390779882291203825561415593550419468841010114784964920349221953212327746327717861465285655398655349099606827652336161437971858686193030351309912030699657340159494654358108397641024883660662519432880788590690243213887206120743384327658207907115899938759111450043127329720537271082162579437946493822402705175789033976141401909344865637692054207261422119752437847800935956924974990242907193444040820205754535314664149509497745881645642419887949277016138159318047929011571705037700609003798504404198097895983324604621865771990283196927634785954825631755911589815570008197410431784726918592003073346378302170892878421643487150796661272414005658271904863705228020701432554591101184143508014674267201691440410749593619760103216674705873251160581564772233400548824399103841769292750391752862259949909896073061201230884728030637342211485283738502116375531427853789067408946371722644829387119098967910616844615824594843625234700312028850801864619272816998414250260595522904701559270512176936098378388518558883060958607630612432522146908961456423115390059297918810785000539113993512946398946620844309663125591897767603285703665406132668747044990963533659033708201881171267496813749591479177747337733883056902488604934980524995730174596033022501078659924843894275105352873016983430494968258817686046848308427435006789351309282860849049552513392772999315370885469312880220223247400454980995599654196742358892875993946987337451697860423254527464546647536485792413189497383243967972908633030389498008931858645685834126668810671006640981332981182767351869323191231528592926839122174741997258928115904245443927558562612681175883887286356135605406917961689827966950151712650982387270476091030218173482471679716572492811231062705308258605920942440314638046904682276577439444165680063348364659402862391035761081627862967413832014431163596144042816437072540361443442408946981062283642561540472471045492034498754650827505652338190018009904895652390889858178479625833092133123491339626681491855365053462425050220635961048947665411884994701194220197705607879191006018818980777267476987785598076746590589609827277264867997375452410322340246529930686327436277663071962089755103599020826030240812974769227109506761643394194152465952882431040496335088851038718536727965813220895350020862751356408526207588402667107932238092596990472234189750780203532062628748683179770543138706549207248153205720391280884458310753936714274639916644947795809740052274570273610137928323471685461939378994967481801698653640995972793773921769913747434815734184817232790747489936126153460287286304232597183264723150267210174606922578784191426646659272189833936212605433648619358831629310508656781439726257386578957382822697227641611003750501537897872751533699580391271455191869663187601201277951196033270995622408222703081730521340121206844162786573249271071979860047955991023770275562470610275171864198374877289889218482326441407201639507482715281288478933979530820058472536042545935174281292952944401926471191670859720677204577629625661964163222403350869105088775579469338782448963063601930142070444802817307699637734648486805923179640611222567997572819620593831646903758637879763226961437519102683986085269573559605649379162578016634116397220359919707437137470574774726428276212518865199743798517976935567721860956129519791474735903306966787649241024359747966474058653220426601350140945890146779250706016870597742682999189373217773298559643429346272891945204533629004667142277598370137123714146270282941933336887851752696347630948875046795176988742748239209116970048770752209254194014740551957714005502179544059178966877213384625349293741951095951047942654535457150051544617191481767436746763389965756310178148287014309409462187589054384043860059942776730113163949644863317245919200343508917477188639395911376540953402544104573941325008804841676488014110119886023652245707379513881890220370674391922180591524475059617474024861244129150391178702838209600693504382165305009137504541656256191678811024026714345264024860371021515679407147780105593689379135052806652287301798560895823110207913914379964647130717717140247064678165736115994262992273566595582319582180994391958244516089741808837948656848265791609550386287263524121712105353776053587628225147945826997197360896389344493040714579574553765437367974120424484665106928170525144598479519764409025045368235626734426181686598915031846875636372942090953207660957628860300841682597795357561376525604466067753098571552704178227709404499453694664545292300530726618299277854920083283102005387574556712178072434930937677256082755553074718490888868076002786982570002986377912581533053451519515844720270447980380076628075383714868268644329144507415396850531665666622480330322774864633468582048032815766352048323126207604019847109507429581962111406518980874747857499568211642568349933882662278981603607143167351957913275684664462441118927521955483729102480799247480909451014849451195310369386355868336754097556306224568921535214023961424496399373311314739891433381992110739291419267891542872453432729425544848452045306152948395371960774880039694218016729680878169022885065668312078653380799201071866672771259004165841871807431592051890675998202851851101813137065721629058950166773927307785715085458743076320942393566617520608166444767282651934928236227836891189880202161963788403880833607771569753242013366423054505317873263992057691356045309720237820242874839704837828859547983553194912648434565489649114965395447251987172115189899705604705944099960159507937839339812966812389255117973001809872123885337937636848111992453877560380052221097895723899161859030786253630292154807783519346245104568519121110938617251316205933009913996028707431773739366729561352329326825798322089629999523912839553308802484343298093333104306274542720255759325642590258871380630261403405021730465024196642525609093912831640448648380867900731212590277327458285015716988285416690797551409101649428270009447119345106259920177416122605494583125222168321977339568979504686324030931910861401875641846455540235480554714234215045855047551240440694303071029487096118802057680290307953564459918836479005775147860330518569789565076305134658882245898617278031844966936360763451692437351368808925297265132372618593407527599016320093037265982182056842700567980484378459264410484403541689501406542124458397887556810742133911962175474590523842987041258666434782847347892544208164978667179862501858109641439852104010974417306017556185777294899011038672737462087926371321663602373489523365017093829529017376176251860004634411838495328719509887706362226785136075261364669891988939700793482316955339125050857951012040795781140753752769552963123680088695464452055120033742471311265411585042639919093609915985598790693823964373936134838980505265618809579269646525542158438449021926780017755833750939344348479950264539430947137098581977014720415729656026437960487480633294815720703186546902507906736811674609911234629233157665979269184208100387159928485793868059395324206227244835422184676468808224136415529487855394195704231740593307781677751723350539779419525635613815308440791080861595123669438373403554264860695119071767700728177415578713892810391903053122776128268947215639568289013622820307421294997068304813710537726773289431294317578505228263304490980125801824027208261416149542454307482666623777680921999051379196562876143825004229205337011701439314113760051033190922121860382841263525627976574553220993536352140791562543899126680033959173324725865552320714628243172970604272425993783894636806758346089264606781774410986295212857825206576768838156250696447824136676663830228644206091639271476965703387877888581330303928886654018336537250239298490603191550234223585660923757289527259423123060010193442194047990740238435923988483730635961423415626826239464886240181526090390856072335748707996169456724255713990288292774492373989377383200522157543850372146005525939828242590912924420726436749735827661803634863723086936570914196824732329262774254667186821005740170954446762860064196291121843721658782760734370354875646504453713421306349295140058114454832915955287225521945269883852619092132524466279604599716592723384900375870145344889110061607438666396750963184901981959747324865589069182275487297038385329418535976819860007204990422546711597167954763154188215338193652298817009249812427512210684511972340712296238321028962421508633648570598482327312885608084442168245098848427831562079414202026334537585688200641974183099556781659822989508806222647793885437492808948203147032826437624219890815953963367376534780238691060668038134677769477823145792267231340078959392111719224913784765785529420419860693762866186089591657954697709970883453240242762674387116662997687958075180776066663322472978936536309516035227731089756224052116961467581597615042650843918541989984032007866971796425968419887878549648263497328189298070566695131126551346947258308146545537559207462363237489558345887594448608592107667762953419588025440342412837745978813870064900860252828412315771647439032642648846862265516184467915898040063700065961195196764663494020384742892771673293442923557127857769159563586527360507861068078277016785673088530891989749138711518456799530551386956533273339761395672199900268465217312001871392706588930226236145030985453781516705932249092584628252435738134671075575470715302480217736066958444744934317342896927960842391450374560681384568565216956538947912609978393939117317732278582264038148211544838309957818369043698916348238478258591792502762668868482149372613686435629798552557564810806148367571046851180826096195278374754345177207276269382863003893154852814765303771182682446820115593476471856358985625638029539409001105551755137110119896221163927439627361134987987348261398072108023963030635502871985962689098234303972838900827910721562028864421970353111278145455878030943502732994617073762278133146119541697531151928804160279125015965241057812403053723796808382594747426228338648241983915735339748078681702675145521711327661199462257095159090368018744730734352325804642692068206698267151588700048917575621627942876977692976487207296202078761067716284843382158018142027918338632839295541122032867917578024809422761256199843988828094714481647714774568163451740732919999698221683190494601953406316882784479833549322773242620353367979443303549705368169930372835029924507565284657889492566392988738734266924897536076573855721080018975394600513486215530093556907142752533238072766763496311505453481662381590733105331295989799833771472802865164479186489266419002345252347012864243742030214923830560256465500506823539135381190577921197745825759197343595559466747268728979509612545625984216878916535837814012134692279088887892756240867445702490928407700220686047262361645661868341840661780042269146816632538518280859622393113719897540531220887841331549683218027156780218677515191291664635477631910228201290724955497694925858862060234728236749854268493227897615592159366323109540526283013602852487778824694243363259080224459083986439846624061703318701185891678502925651640089001886404464218326059734529367040020776990459077414813825859731965268018388024234596748541108569133500195031315691123080340901273455299439421999405480088234922533343401776682600255985459823476388870888843470259163819666880873113993147364014159504148652467614239116450298852913720224950391144952019874527048518223404650887815662668572215366352912637361275670696234833615029202687638986749806886701632137944267074610790153951375173534750376792942188040740261997841924121134969201318607228614336180500255862087167225473727069069505797427291305043047511837540764459496592839532170892501478431553918356904540231898309561329714901502317465569754854812773934991321077538561614911223621203940072170868787708790539037606998867877235463705977619437798660039961044989205034540174998777214107774355486167368758336555726579965793301575407957007344052122509890817808272952583750165966236287897324087079124524559113071355684526994183319543320328665087962769046385604242963351855413621898540930202654297943293717723399987636378493902129728767114970176505438162847943398101600093786676174854676101795812201914627570579287536649329765890727971965775573603954636240426977505725974707435070953174969086371942661804737423612840885434670915944368357018046607710656674272303450632297402574323366867321158947651683549782553433267198766230903696963782849528236429871818349902462399741144083158137475523678452753314650067521226565836195593348597194259988630981499413211055780510821124116416211268412951130679070078900097676699907478287456693454718775248594051249214305360314941683862296380638069768134724185167278300183917129435727722015988596725856332008526177689451065655852664157610947126332855445159872163016950217815530108947203335887510584700093439753066666133073026600033700106848308479645713325608960950822673480177438595101193847787312119353102754542636143888566312054495960932312756807221499506449850068585303687050762353523449496256297007930867749928489734103710748940445833985772273667247853774913927312649421771988663410852494979312466599631455536938166038311409308608845284569878232767294053938086325247095629821663140502741702722067284828523477422802238254918206767843438968819507887480003509467183700694690280196285962122279583339030378667094024520639092286548418168871211206143974552669138879486350772651140129576458794910124264867473978096921945151803076469838310605256694192866997740410478162459906894475318621768882004835508539708587283464895263719199338785459315458082263016235977132234601140593857294052402582766755283364505774054224602082982380834544737281548586604326014597944309635732847100348548316973531771114628613019400903621949335552799642176911699259155634879056692408994078718252091557590953397773340618268921737349525255008850209663895218468219132981100770212956587265157746471545304663913367733402471361284723413048680816450250559051835237486927353656122087074663300000402495179272958552649137419898624484427259845064759898372787731484498244400541062671169520623862809033929283273186731485037388350185637274484376154752734952064143408463085523781494660689357016070189131720947372165717444518531745812482917449008345005845766223163217884873913014171717967216076796091137688925339590259925209403724168120617596513743769529363084036562148248414197716359588378567365822240852380847285610658977198069441003479756406349660263480231281696073009669694269609047629998061377827639506132077800987717142323634052691118470505784011021446717181719931048244035192982831202574524662787251707673369509584809837869286560123813980914800734399966731900155174149183826928530602176770166706264413225261740952974200749290831604021199272107211429578414972890368224528691020469089401300500969644060475543472397022235403516835116718095138364313983414020563510286051454793395635969663930528135060680333060601234272631989102802634299601064293334785674168946730081088513660252961368967511669672104163410182632202804411530985537154263999049335633615448174799040859889568821672092021355924449514010227585149478988421202754642740211279545185812610102725163432098539594450018200354011563864301554846857023312474216081539200623755165075718823694988174639402536811075901553194895600308114793547490006891674583648096224869206544350589091921190611962207604634183570378486000822727332757974019903939115028646986612468645128941271852342539254318057212639030503592184577684564405081817893092844360182715002976700541892008283607551127984627255960164849180418551481865312684014694388694030057252869339971901088595343736764083902569534971715088814608254984972159867950407350932388105456051268084407643638440552484806102371913151300655430873543157637780966016844816788167416282890699421002295727091601801424449095915543040160570506419690655507593417380104824225265617962759821992068030207136126244523511939643286238717592802790168680975058493719499670786906811895678716299456531281888125019824135448256240520274988917399526745020354164240074820349685640491912216909927113474528876796884872472003399675467568214455163065833032198291855577794206751644884679702283194219133647985631674468565230717085639885405538682016890753437738107108431187324403659730028850036912770153159440100563689558798770715697553815408403275091800935803590711120937290823414921219959357114162125874811670662877659218821912558889116695964864837930433161720657402173042357382916934798592829025083237045931573681633937924953095354070378692683395568852591234332055370589912807369703200186879226626669455578209903676079188133855372978560834193978344117015226648606911485343487465157476915962051458030976825701286588181919044340062222739206163586839342152985002357065358741059694923988079919087833242502939553270610195486146332559539804521418834282267677319250421569367688962734920967244717522635788482172143516754982566920995266814738887035140729805525915786930824044536562416610979867479715317656355534050904712526839761664142690679460186890218191121677022065340501895227661578121241323658082674378114787423101724379594393151170640770240739921232836594277002910580443985933990425001444162350161658396372588033549864243138346936929745963359724079565909834659470930122867355604133212480874789178189247106103268944449310170163909066128996700191453562244427744088428856278297889342413722699495074850078682732687626769346798562847148966771386389450572029460954029781166421045257114715233435833452345524848066697167098742024584943345548148593932274528138997191507515102369705149969864082783180850554033391328416041696780755781122130396927877571060300438608578056297040793835130197532852914301215067865760112716977691803807578450550842471544091888440634242842293190042653470675711672125994973719529618805241013980574493863428063813367182358654456568930090579090246495511956271845674397540563273839127334437844453431742875882951872990740740012325623171808564500895520929198410458279585675814410268076224165749335417151000889699680812507280093861970850146245802165526423736087092983971890989923017841803649718552012370942850579056086879251781092114894837670134353521893636948557641148584172962255942827352138235536508767679923106068663887530269343583549821142623482426024684224818795388838626198208455026268669360658337693011514370808268109282897316227367577093515072340856905599151392618700552933811952373520357454591955004444062526388927560955089817240802188889659766612895388355599474077705684158180309352245400949443605959968910430807643462232823736321249676683113748871351866006051403885565417575312404132544619722852663595805111313756715016761412719512226259721236427462092655198733351337221946047197180069506404642588190703037143260036488301631126701355765305459735666999079658070787015680107796453385082934788994227680719506576803231895200104652415417144501374655717991486507304806223707376633290210134721854871243990172559054191776552795307439702100564625846611652577057580158652143935070967424524592065692331528082491587717427050228980980675108610224685239287566692073824550736049447833999791734488034259779112899409564448392715506464861072142491042902771228483261466375643145125005637526811971021330880541868946895007758780762580597673219411159709738495615570834463067339638204981211438339441965112387736275539044623154115919279052908629724939604562199866042551854558059270842825288595331353755787768484166708240635945360276241159605465726133069538552865273093535891532417549986868591647163807776002599576670000147664422936796782497749623638201652255594525992105218931963558530367158175205200703787954969446961777706856050807007536141224335294919001404683439480534119072219410004770342487413892854164966272917313997172751828608603670368397894068289211275947860435822384220939874528291855742601149192118632805051438166698092316696603514314477661335534290366689765133639711007290502664327404536701742866354328135155472689383343052373991833310707995769477307674604532102424732808868165485723980556914556326208121798768945844236077007281355188558594873752773204038480661462457575416792033603316978663964814273186733069149326746060722770326555955236150811287321652913484646211827537241906073671836207345963372730095336716403568287981320860751668934558739735834116485665557923842767559691642531381469252961586484746140591674429699714930794423276766851541052462048322259740127452320099685431790046556334059733556264691582648962033471743795186511963002615687396273475706214532160747917507351613228785243181084756103988769648382206773638196711653487370908812910665222921533116952817467820636218714873607576877690511045766068389034698853251509715349936276321199721676895896551892987401194627038045988912615833175890482751028814996567886291351939664557422811735269649681112248439116157931698051165822079745960484929189081108873841411725218055001111483340172139558559395767201940363910912871388691859739050162423672332750641399494037668839511947682270093548468935896626940379542163038878322581907180243605764398765336519890655538165457069751127953775408444021124819599663869087613729687106004445694820228881888815856131057764795131645140685004443957648498994915431468901609458800927223060330621130363561100045998793009410717700660781609909940253956551338162822565004691261087371231043272630759694197191840800879483762551077558804808359321484254806112167709969820484584983268531095075693942368055763048540372580049553365922405220454246969709964268549041867666858371375563975272722169996374427763055926369354631729789225451742063320747451986728049870183778021662850367247074936192387362568468093176175799986076459206217620608308103670288607300071641623387981906950904973717373777416816975351977613173335721632973956617067220728665588905498847624480725008307854126842626287381323185563579282073713517978854343798521366950909400931093501832357093832564975050001084142483326852924201154191580027283442777015073793461162728110540932805747116321378038127334553631835828045379090417430327055577174315409906330692047768698523991014187828943963164186908052163644559721389878947630986082320707470743474741762739788982917747098236690150267167145448045541006057665165032580693794144415369478086521939603049922695034726828864481516038371496136294238455820637847938657395588987113127216708589456020802261636969850856267794665684119061021184244302232192807529522069507942840647431080610040911122092013945610271579961743157979918562816754007029747051423696773353682838151108704030267342853465565309209690427127595558204182134956777088253402366392761517610117685115888254425515871685713409590457600376500105263914699578366094779231064927624913457033094230806863234066404486865928471904325252245546658644477407853227817083265540543057707331528785504984222945205998598261284449005340598295624491259261275791768976993688491404303574449503693479887792966669090397990100939909069051740399543730047277614020470601042414407230757071159965491307184330384123961695617727811276707963244401523476545619451799588100873320149618582627673166124388360312366594328721156446018383521329327479538401523699805363327100701180084876344633583171663081169542196392198840618446928420616232956849172291090165138603102169025928869450790204809802667167959028678254447638747712726472952947860595328191060636219619839970443093694530960248790515903060108955374898018508789524212235562459504574757241683258936689544200335901438408891524588047662944617937644873593442027419703278638481891032637992394686484353556068858977208583002958126805071439380632272158015994753525809562683204078142930801691445350974528763354914502152909123072099515363716809046657641378146964841912532043023031828778562812274136745324208522395467176886881050563745837759673573957225276441308904475739494112301115358172568641679330961611877050078118751638484202334744066859758352799793015189757889591492994410197003923737168292295970333779576519956685605774548334324800561316982717568057690607025529326101395750663860929561375668260630569209583137934422406225747428688804744993583099276680710314729620022412267743748521398106958362468685470859347077624383184797435992922785216612308221526764668714086007123812105556085709176485232448153881925472816460249373377896630707294362815899208430098365072287736329118417831735516328659664564859929022376762339123525135392536414699828719303924600524787668791179315137194346261999147407208158954407526985582299280632027158791197043167146356064180027636389940506509002061857374721550408506374830013413474287876578512621235682077989212985886315728984044827012378388511381269781021437600117290782110581087232338576919932161177728942778128733283617016522632987024044993427258795280760045188033447947055404859454767248799736314899595142110891450646251773069544289868407204869627606462360656350685112589042443047335572132573428052906557841083121792619459364320191780154446682653908815440331235993072104525523662078526938092427498959389872076343325820303853603541256638543879776837298605051711317300211516987527567431551049500852399023584237056161815349400502753148106170291664136623616273717483697763764782491411283829265171996943247419482540991740282901169213913595314803514394616158318525395529737621934750311189936255795315284410175164056039857047910745875652745014410445057024402452657917033656875058901445207778757472202318705297759124646056028289763440700076623949601410611092542440646891816621988767126428297400690692991093646026838874179731304432163601407530960099211102124721595403284264368071700786814338938773116574922248240521725284381159024076570983332824138638693276313525813752013826388669568923021923328983913649837036946331023142233620508104498106462839478114693429271549561563747955875638517644899610166464584070693308651478370693900251973660081416316353130203159932299587476489227351073395528059305857030844425293790124922586060269899136317986872383890425483705794039470112355018725275814626444494297633828334719006388344033054703659023106654108627388685082559057577221208821108617978568286344291525308597375837032715650886143998269448674026319401357063699328341819345622444173950269957049427966836030389439054472118354045355364442675704672200902451773752964181179380430288967259121182440698737613391281371564868815562077851024006866454418642310794153252981323893011205983760753539196773456946917499327782649713097284254089895536941221357787063228548914533704319156471840856635090479297399361645751661060219423304503666985832093959237632636950510445669384927573199953892330679918659344683221080465053573023740957420181352356606230564119289472291120246343747710459805625164648210674911576611965587613603341193649675581712094884136946712892898341935760088659960957821084679641618291064798547230191910243786464849481669753898339938448239439928914558804574940890447655557899016067864771877647048265876984865816524918328331536897743787105515791588104286101687599333862484729740320691844783214707670348834939502520671670749059577979418589909689134602671780410081575293949213622519865443169196030390807524795757210449219038200562790553555798024015928602667921343308510431358959462144761196864246815033263333585996225348977114955089969573868957313703527711934983444527533391097708840066682634773801605076761998352198584069689519545470853098623954439683592664131131134759264282561131306606350210227317749118854988911520951422947329850283329119055182719260791876588140948319804139212680434288675395896056423921851985957149459899896659877679730985974164680065860070853001536588647898167641314702453529531062420159025497328021187026027190960231849256736087198696175717999021049343650094685539591077237176080699382938680009137294743401953096594444375771920400095305966622459257395512287375631771073481888960303990157556644433382700808052263385219809645353482625450494417593814270777498108310460699337824912456567133512329024191986774992795980227759115486510730872732848543338762566794361632568534879084009537375831796326949014531125610883551565770030428011386440324800423074596443271734841083910458868907733021800310396990152230280207342244444436729914289557822381061325656751537950926936946990162890806683579397587515182293612646313439357209717060183172038067834936521018863269178822222744154683852831313167928197342754789495132066115296324753379256241582484950091199519591882377072575621459506293339413483551462184347257097399722599592100494891059773765290199199849384121032249566870552820972893241818778020808200642921587550503892748396080508590976852156360035681829563603052595424164354987103482379219734231568459393948221227352763251707031881046861192375819476722708630249749158510706730505300948367221705128044759981719529781495706634969766798113984888694127125600355694269440197424927905263629303227839858804566627337789216026440707620710595332591441434012316241513992916586988706978044826951880294380496499883584226893036801479888217306215736819073603796271706151335110571474925278350802438399685708397398349183314049590365702335835338883640814716730958235586105245541333285409857221002769283213568817275949952800887019564663204631770037604399153508162944735706772951394374126785488412742402478499687254220712702100299127281120700474330923842155100277482566785577029624880263819928094207290255983527202650803693916233528459435628757846488368056115524974904491783172133647782339574297149409399046274796068040173360192543594196474393184902618952361785243482897955701117794216833279067535380133596810939892975701175315947448817693408732044943492633373310453442245344792531813243550856381507284383806411372725513989258308316105937589208296220388834783847955245433847543093455579204648734717162108631981753114262562787761204468998463098621238588000568618611165748894803193892909191326676597084388274664170995461305018835317191951849461354619616810922168198318353979457805571261807997579656719020600426618600289943118201687371385904045890758726517435072098239112454551869351813279101466545304394496401144266730225823505757547359928277623325424062271662342788900534284205686329725710171443580686996065219687605608071774358236654130047715011916442874177471335000733946191293674139096022295621269533615362354243679765004396514360287042493914467219044516712957692188300341881900868078366632175596755923481220869239087857850796927170673920239259331901749541354546301111593209263626882498457165604045211189663454771940135593738226428270832481810024067909758372620969934515723484277150850997551581887439952712648785756247878442302261122413011252675024383199944061074777428173338936449591745250601348377360717135897277214554116093127952198288245189679779763912329245862313124387638374494488223169353369512005434881143307333578151935747130889160595316280076182683913632339030788833101720419905800414677718319746954437280186346828387243185370047670569139774204448960750270604330215229217530809429613198121288942736974354244427036181320577651129630822211140093071514809328167757505675999062759609032314569919210041446666347850351758634897317799711206313974791541982871165297125772432923896905072388573271496304759469387299418829034064363350221926914909607162398336052836932031984201851075855683238933991429398460270007139072380943858347917042784101523655732643526206425018661803563872865545311200619093653064225254378395341710837291595961073661744018473707418821650044115936917336354184262272146585091564025089670954620579135423968787794466239089036060990388650086752053958694058828025355395382820806124709020861254828326422696039969015098031103622725454886477549485256596020627005297094069358171436699909575960724385932379934580152048123041196654500649380893340218852464750365402201660917385753667322837022639781423143102482451646699194644522690281778677764478583010255202553849645189240091365032366725171225066211368941995636378121422763356260023721617358536124657893909474387650801253617388158212582177617947570656793523926420233475996636302197459913364496220567607624175590986152780839844506245193194582448967839865432866540113459037545377836546513627437452104181679009508892239944132264691914828424386594912024825832926701279545161570301962900688963711500158867235172578375241358277951229193235497543735746330970680342468577497265782524299688200150064675946494246887351227552232380263969724999184177740710865531434658803701223667733388182551503970547231203173064458065695776163599716944606443911521566396981721272189058292344096486275521071035143534598308421794272109485667833890638099162097620155676864837452494443781085432852982018375045187666208314067660778108287627158271283157694041223722162380779811825155074606168012366107652094889052157745739368769836219030122440048134212155044904802948872142966849335146269554147484579020260854453349472691739784924406016985065638400744062142434411625513787012238144637656454511532205538342497936226704699169014298065770199235224374535740146262280292602588257189375960128751664483493939056309626409696832784552012588441402924659658489909988620857707599929823455876963526273502895397166309980811281797364605782711240742370586951557466051329932171183004387195789171258611626266438468962171392009430813878304989399195103920249892670998464889532515840973819163745759009112997397852873262216072420331686096982971006349645450616297015217936280896594295285420370362050915050889002894157191064072781610773192777947996161391669218202760359496207501088975522086552173088508217230344443212962135169863483024781511153242651719679582151744352174974949862488658787085826385271159902253517645263877572973143338802380587020281021363816516746165153201253782083756360638831304628639901964159014197623867271830651333781232285858880855825429093565557890284360220675530350576340441034982640430135073706426172329241600222383747497011712057034365056588116389382219769192645935377893865185379617531055537338431093080469937660629739863467679958639754608873182062398431061485843569880581436980451716957092486456606888507099479956066300515207926518710704684478509244758538914086584347776316262313384212686974562202219896191071205261074116489506663152003388165526877213060580721083607173437302817774768389530683430790919720548654040526574619735152447169679824276373921660084603031048323631154293612115161440865477294494139234158862878294426592628899196281418988480507991866715822891100083720580209566326200930862765410386375828876215905632331238294132678420116062323883746959235624494310392262667031496444320957658413767107255647891827683459688488129204926809245498622833056062972245815850173073592311044938082300103121646941414753199437678368686171617885438772667210946737247863810592489028643952002898349288532653760523778513331820959637111532574671119009751734551661389689149829903205553986180552472958973924798256812025227353204891842507432227156172500522074656575869135044386005815004800639746793092115062270740941975629759011057725884380000167595811088710464977790038977983175441410453198267488862933245378751796750596871446489474365586322246491101457884099427333106846759551081789083368858679885148420411506587963237696902280479922042190167448033907477954455275334914083616349708562355910907331700155022090634176539868505598669949040840002722540058377091325493195261516844562904725604561813431703481167404005649388534593651500564851292422725083788259513947213499426105473898775345683663107071891288461075344569363259482553445452039015077841863850336011133752951942420453261123997158207554352351121420320055086700793744736500944724523458472623440840225096893727959825669897386174222144579641796807326802195277955477889132583095186999266469609220547251615753988203719528857772530077910785475700090267553586838860825604551885371408780101247670078306437551264056164526679048778898665190703923313366976883053836724469223129318605899251942015917526996408730264946445858987363404006567461478497047574242561233523083923189377166713925987373339962481261473535592753282057587363553551660998323862862075910387453663137150999300602313906690462434183961969016546201936504306547827840587988508693148933488617859522161883469966666980062673020112554232327075394849621876497367347010308325544838425738995663890016095121986644011879482540992976739981416102607503058086992583321559906254194797064520579754026482409376262024245361247925069667310523410056786866975157628672486215514903026022721064268762055032539315629252822962921560774198283400865709276252963692987299288591959571437181955026163659981617723541988889695948658660315893120716599424834377907153353761300256398883524711665435754261697990665433152409871156929049472656894204943159081389757951205639632064778601659137393995377980049892241866118672329785511280615193600642258099484110777207217689830554421360725278259836785537937772754330655835956833565429012125176811051467217990229958561821105833765967220214040231144542123619912535754289744890486398404270334753307019695447460213105368643419411693225861004684189401081676902422181841650831029064335795198973963882771846221298774289370334702534641442113854995262624529220993801771556959034246852968477100931757861448157925363078766391264437329956658433460061186935312234819130483792587910913251975514924081982474685337638226534976320451210560333089956511175945552521769471221828005957759422930413787784302842699984207256113353740946903456548634445676921082761867063474297223800061009143122313054929447597437050978829186546456798414670266168500067468073931741276833187940761203175333157594928474152084435098322684726374068201478574898862876949454127683491896250724120941699423252073429147529368783398341712869653560042486962261655109309305338229604190359848048735640998377983577514231091356559333334082687978329409963649992867684619167292947512740987252969133257741756858442490034236893481471543219954317063206280208339211694349638236891147363847467691433541483515212610706607255071062693930034855994441368976686651017149678087124226895673324484994723684043491128166349278510109960284469014332509415107712685314027827711550153069799589306496667982285883526528999393289815387762276015221954502397163397543759666645443577001062184034765317566757347320021605839314195596797014610428453808690955643460050593862577314571087890857848482310807475187470109313460668394924843277364007593153989660860173428499663408428142110864086718377662583498254397139425324877869225165843383008951781806067985989719020780987527851797616905643058403440012874919374602681189264651554502685272235523180594577538746197413715024879360067229808464847987118091641993526869082180604343962846672393229358490461641355230662689055058999077079053487558944429235675997074139644524475539520645264806484230616243957126494043227594634039364201686608363571214477927946153801152490290564282310069909678619917539970036183315066298455495732031715148925051454065742498292126570245908455280356369139469095171228296086981605532021460852983440562053214735606509015579222222457804666370671779606912357673344690324539572899558173270780073453822177874612742619137221452933237562789647033401215140344431481616317843431481658575476152184700397525370080703203564550601957793866283861061928643697912570993882665998943045314029122429335926579402578103245541690497458654875976849607977271115504523062565772137982257835477798265761968396960437818371223295089972092980210988231277220483106526346661451397711907489110451377369250333213353831666704281950529720552548986125046587841587686557037258622645034168023870113467483144858982652660816416847984566550415087939421492238018311576076335258817050525862354689932190206448781542323243949462274666436182350431111380219853028020771260893545404665141829972598821815507296706854508211136261742896844815247029577103194141627186063618702161401939726878806407115062588092866390473277813431417508925006224608486706368683840164734189431359014565275783309411463829500147464664270282016282573150079766935987432771602086570098695671850643207909507609052811730535668595642866198533165546135247141847968760323418162036474208728349663620955174322308526663612422167273583266849120142793837497574389004108017262156184693294472132899975148959415376963982394411159247835850238183660373561478834592663738486458323736270630503642710821894400054522212110938162735799632525962241368815744463093185671483155140967887594583464429523055090012669382508804363396592912483097739377058891098367729984851232257929490915015957315706074225020413104978223620243713148400372754148833365535348135451344568490080884976277718906793389354761817512549608738535639999377686203762228688905308087116415943636470769814908807258798177804894381054034930320529402307756794432878119871191267536404851419630104306806732367443422538388904239486452600388046387040675161737327152844906269487205874886984788566100752576895084772080664349228400498457846888571621959693948025947832569046116080123646286312884425732890987520236563023929841710561569034741571495387266678740551100753624388980112980865075082229261187819877486443900665895053402071735231156108249210262035168286205861523147091437695425380447681051370731870934125500357886283599373957476668162353895997003309180350577720049074578893421084870608907205004868266719896649565037915552986303891810548505242832361537531051808740152989231729594599532141466894346646012915047403025389684075420736384220518377808822984199385766885757236777403683617517308193437219355846655780336530124841852767264672780756815650508355959322600806054903833289193517264864678181799196366027330940698529560327556340289871365584788658333079877215451955238795402069044204037410017499816154221800000425482501082387684703238447035825354046967818186806980083680491444245306583812220788871442547432675699407042664660822537887907787105392474942061712455261738523241874350321094472949308992875048422120814068488801901747496089253921948242741702859866410183800848709406437498701989390160641100556375064314509106960392787428148700310234712317828162729232595739175486375354902140090359835844755617936484610593009624985266571509811998465078718151341896330253617032050619229847909542793973795575955142687517899912900341703673281697580570243059249446862955896388643194055082372891384696017834652383258854484524591930144618281301204162819395469378054633340873644639028022525451039781491077584079212340073594937471659491162325616954582526480101466858540723800881423213284965217272512034998679997738971359873432776262572797513474035524611581713432806576596758076290666947467319151143069502742873597895693472056365471416522990557753541155113409248105966588399082760080246521795104326579568990043497178393918621419567043103898121416095032879972702731986388055132381220059666199904761044435466308891462380555336802476108083508090531577375194521850313064890787793639989563966603541923972534882919204110982177150443132566391421288852737600569851120918721045836589539307740278196119857224129775685967803834770713243260608024686412295585969574810848219258415253199033286025295081079696202221691217722707016244170271760547293988487383157308039455757558919517528092000860695287107526453298122260811752077592791322645450488895133995507875566718596012408938366282669226552446196345752481187293156647633359368783430646812822354732674488837261361884350053523665338458217862430148193410725819806425516669454285744824888102004298928647998095318667279206596486961015643064930677984538153768137977027515169384451658060530010624997757692071549576567011251783025446189560072256303717946558992247313599826701297390777664481275485391428672659514175275404957840478703593150679460433747578756147437771266638076364982267809560618141026639816538073099167732626332933813864046092035433208004230608216333056573588149553620021016429597341727133181166032372623107296513428068843041995628235710167589271844908894037702156291424646180919843694650971003989065950414949290480173070719696381255193421025089183672138078356389918683570884830779833915739916725523445826665334109571639743262512784506666349509231079004487774458274450963101715661907750625936813086443521437995917625001207986892782475257398684366020768902265945394961282286453581996464622657268325532600479944794372812021857369278946993278837791398876347234021053016165172901614811851922912746585851947399310119622647337973378207742531196920875926133863041682801108142995599948301062269887739369142605827838875812520856581986753381662612566261601677071534017713264595645758856703901996073114152098504692849814651944255828007320443096636618343022712735156216627343050301178783953142560003354638993064144318104610821102239405050168638662230816361057948319971802235353387368560180615669479835766836275847200118544065844730486952819101356744577580755039344121806704587575415111380208920762162070855739748523149397040401508898219362967742716064660810369025385704256501598894666735569683142681759871675695814909619605372340292464247476619927390407809769387633663764627358888146709800707924382221764563936631745400842986404856610896220411982166182855907177309713956712884200199337352162039457971275431411463269447868368096386091989304404499982255761687810780665993132422417843176366751595896259407589324291283515123550322776489311623063616500526874900997022303776973494617688438504706657665286991475312606380366872888589623642150001597500237889120435533397219295013731875129784639787021378964810991946483663236917318776765118266867437157158593918088059313875844259404285308071800078003496839946513170245030893035505771287619012029137762618676558598765473487224878298027926775787935204638936319749988810070086757150796770485467403027443791289544705231441417062534226996245490115090120148013032137964880487019606986025208698599239853090415789827508251087556491559098506116094734634770982971807824358141059659578612150892794846374619960875755033659423586236891107230525753103335643018002048526547449391776979875678326568595590045589331531216918300224386814785095621216103688180021828790478796523348159347173931505214632444379293567270414782701388738951028353147060546011094216489026795748896595040949218907717983867008148846021209928586704399840554592597673090421751693112205016251790538605341064745945578372669105745827699139443130374996832365630931147966080560383423563655021076087256702986724015698911647579441297243007945688895771452875061704886074732999601600309619545433781450727456382797036843205805987226795385449552279743507805849610242233390352125593063660080664237357081734597417491577595575146125545777721152866169129653369264801353211458971725567477005112684184962416410455889308484490624865023576219452959997490422293734322483432860418850563606465982264055512106205992441798166100109534772135907173018188929388507582930253661000323531045045580186068892419559255040472617542600354326469565437290999898838907866948653899352321560343588725153200405742970770754226172581486744850350490166453924250165323534215639438830023149430330562630763520708277170070528144641099147126460222786842444155268867709193394628205891827804600441668894863431171916573635197312382377269901918913447261619197205928000866519331235819909767836385709760489184384852510897725528298608977973245411237906003696439200415260216638976742245623255419919027022300103814102483243062547883543505182735339753945255667238215169653502737544998507011620385171152992816396182405252454825054940107675215246097594084529972618002283639649108410716672244105156871755432907103528632096282575697909501297777352684628664524008581463843331360003884886464021898963047584681421122961915341402341219188707896445285333503419111182812814868299265827117133047957310966871237807986002316567284739775530144825459128651224891740474939927437678992714293054748465919096022524773665699818162900824734950367727089748635046183286521256234396076206054587362665383451896002085626754822643353605110019444695495265105246673604162004900470644676329153527880119371275156726412978786059526546976458775177610342283366131245127677574854688484470438302149916724504831048881972940489691547039954792897263925992707041593069192889889135427216934800001137647556891909901683547545959875786422501146224745490244290731701521319466574082824386726634364444266080240474635148049966158927643453096877818668295115296078533697967729188150081721567227086136670185723104616347770635739158515536545867250333039113789389678280160635611112955568696447830658368297091627704707886537759020486726794516318934441695553803835245444813170665239369405927151711113194337260990966729457726392535650113650958854406174121948698598105362723377514535944898466557543654168194527234812209287716600310731921326338955568935822737992076124015811216779122616903841354995055503831863787490609166095486136671570971187721924124844617309884267132380014880024688308133873220680187016095971548534202963677660836221133990886031370575522996795349659023799574669440869110281501950193128454606695588545987555871097811473530795195189229639920477083131081775273709702294077687522718351461186169380274975763684642619301146998575804512788572202367912869686210296444642845822895634604578363621428525547640000067454956949117744758467729101435673063209133812358883157045804478953343647486612788777827229853243282446693998593967092750567435054433337327456510371791590729657723945185138825936172563330124949193671193377596394222823741107684149395764460952882010701936078121001615596401564403338864683376166657363752971618788727500064816286109338436098982764710073659098515499495933082116429049637327934001990778318661634052908153911518429768276842335733227649036865136153676414665261055238115835683460441556360448443107442564551067801347251412803493524756880105260842481230696498528264327757270544795475902869282119808676453056190752020065639850121020969393514099739984711426539447767534166138449541122227608462194525840093530519001876883075090940050920434484847555432043213572234498722773606816725152531341273516727254701783907408083765504205988433258822248332740090777189688830942945038884741895232798701439200747239661601603738007513470259700825206881894094749204729943887374551056773456433049696621034464794320504422132961728851711279717483213612491961058910334183597691371670936770536800926874639797249491413365706409567206212816763593626858012758326223872960504723258435411069405572006645986903654931500116298412884349190309128501833972490539953178442601924130381314452754350523792225944597930051194240222545340999532765789275539863698080059822380377897992032559547895276891960835859591579866049370978594596056689353118389222675394840221134829336196204275306426381919488889722781723163535363297226379348476322588337399270443122566404455816552905830540827084476204556375188455473127819143103697660614532671038073805025631072323159071400604864786796354955334647050501013983394930477352655161111368112815195031244682948823589082528765300852921029700747122263454854882223778895031598845315448081417063777983879713648755739003648127899229924527329657942598786152656049136144770572668973739331252042319887487508511752372854226005102437489160868225882531117501599177411852095113372652355459137063995806475737377259624061316182853140431857436591578296028662643393571404043222464343006920945958078260831882285779823429740514004073850887253137109510374411423673331649614977251787209023132262464961802838742320391317582752497012505113727078980548444196873273647482420415140911115744285848582596680398117397552400617906538897422745695522699212155286576237097741911443889054767096654092541200621171449372036004370364261642113918946057478644592296476426391500327055304916617886533643341473871658558000919626882367464263247150333754096086304761351598401717277548031364400018866936026973439413860385303116349668283174578286649695581685469339043257795888443186562425590005001901585319300047544218262122341211285520143669156796442227448124992748276509404166505396411298638908791616461885874249550264078570768508650562307072685672292463714510131659574294770457859417743860046094344639998979717720833344573438431494842399576917226016342753816508936565373890688142138777791741510365933757560674353778763465581795835766545869584293247393473152225913358742181893669590822548298064322371538864583318961170814198333935358195072637139990588080939413596768844106439455819212784485863770162034685063111172933233371936032124894451694084702432457032413304594894115066249290937987444420357782741495579823681961183073984236125052491024753862256192695586526944643488500293397195315730376241698899211691734234515385209237024563309382065258322791172420414442390879190126547676581425324050942707401312992493012417672205895456222729822085089127517233888421627728621991139312213431563689473371109296037309864203934781604797389783952570804035331267536417592814485702671011787771208400054358763776836845196640734636774152918674324627602375680041187634914193108400224949533086930057034945853000248351956205180286807139110729661812219105838432115341817443954786783694876830090085668801697324418907892482047248647415546270287425970234803452114791421471109968495714636334314555834390537924702338718430172073942616258452347963038452865498378377254919099171944658306484972249520005664709703979948956297117177475253427688843601261317036185245852169526578146197994773401349263769891633720516175684410253357179458988858550693447890424429341919448857997271111669570926658476117297191872101177088375133471463884853926761088623875799807336927060675558052913460326459159599061574046246003395505290721822382155145797928817958541675902669160166785565029259918492129673200920198747182751464077514925798435354164602179638603117240931308904350687878251238347135667367346672541070919590080094314620337145224214801839564020433203591257727221667421392537425165211720281927886327969615983456117071023221989234968160797910100017175847437523037882798003543002535920766931311629097738491223871893099622058231077968399789675202031852013081807206471354543332750402993305982420407040916075328029603032529040759878384207703521994848056255424940242458235005236161671325436165646535108349587166043700471533354918106753724618878506031312823686407693388086212092785988736616309704300084265170235134344992182012454327057071657077534761318701885823837155886965484001802086986436187588582898393219603264703096676892962397814080715936198744380107190756787535193325102484263322993074301466180124597834170483286403418985123872794933700672506732583020152397819071494624185657393179629003942638407519365798874418239743565098355292465409910695292748633937273172570620455935906531132512604581206152908990068261736333486782238738417871480049450456337342198942694692557618245513770316170581889240792707933158825298143404164978533058946479109039335691543114374496768402532269573518476576990984557832299159716687996202193578782612787073867706466671496482218661629050719372619275135969581197650370041802552884362776556702335920144003574454405503190853389261413615033623261010407849400254211202859455715223586302711790638250902923436018694484273097619215308114127833521723129243990175471684764314734443436813552739718809706892679146883517149891329898597490386356867511121852431721846226710941370911661199348497466878619931491410127460276608702846703727157387204058551072849162815342517693427072328571389392818162375883919868130482029063720167480732342391561855907109536433343091941329993499427888297818355393292829396305200592875056226224403012092054988365786998799610827188950486402101026241096921535859991363216810836455514245274210774667670964489112102258750835783640680979906084415404266612060559995514311907524535107837358850465305047284179274940919442161208344605267800904450660428453230244515551085848405296974248427767986047706309269855199506958963734148846771429227149837611182026025033750851442950113790810607620715486074553866665290929068743900482779837633165601072011076421534771153900884355121891637352152329135483762698188538438363124864835708640621478413096753411497175805094901485792306070232142328921240941303209349414212235167759058483018400442492244418460900041763614700879888683575323282415629299011831176202911972904409963106368874421552052660674129256126958148529733993810390719305776939417293367421871698619506554562018208094457651412879009862931077269639299445927225643972588895835019069888592806211337372523034257631758639217155983257022026536527215677247430970037011232700134525326653843767650992776900309743892967229621777883877238984551475511040705782216198272946697057676597272674585582068630725408172547840857533193049707159505596893523911523596974570264894056558192434339229447920788130973284756281134383209918120284958231378069431127760643535603673696357677854053650195647446960912615694969569572294240507575997931269713770845506714184087365460708290350897357769765075911132715682870223242060201737123864293739965360166902125869852681070624457314113381719081518327594476736752722640767313763726721788076941499231131974762312832149704003806049636842570032286741207557809586075836489715826598838367100581964547711214248008025462410637158449462706892620362611990205515714263174639830583144473966209942321403024653472928073058083184163746092145925367583728029047237313657030551552769033321529980792141772977337651105770162879242320704486924449296128180757541566698751043793702155057844196504086814243235674760797523847152601260118005260591839124533802769078896469648881675766415295430184170525179937567385071122240467654855946354359339104551103286151524863285283134184671795421937060841521860598476223100036144020340843629994340805213248537671564488054273411896643612787720107907057660904953486883396938941189287627139143669662733083150894494518007010340235946992304852244401430893076180394813445309764168773796906132570010796128036782725595777632167535947725161699177955239737022095182936452544890481506084730478400933164573252819775721488403318427623243428065405909015470706411329845527533677349908278395796912947168946032489362727240134659342248415180234883993234665306845597239041751868731739062123548857818047565459867083042374013246894338029911623298382290319436661752819734371756217617430581193565737614164969211959593578547184173475891655432959623104543373700798485750660769392390829219246031008910208961001664165778887034303094408238142544323539054049029800234731330082701649634550653573191283763942627212748307075507826073729110482529273294721405404172626583498313642691303250483889056281413266129979041949938551721807119253257250642432469511604994295560288582853106922451594777632609607792358093020051558544751163058717404545228027232049929061194143706689757278516792129210613604575053397863626635993634068192282837312120175923019500507855539487575158245681968945750819370833672777127989332405440772618256297451722687772762228193757048400511348285626403823091986061049145113361169997046747281495722249483913929790846885604978328704383291246856072228900351108982087195339801739418268592336673746537326432014059835603948963778012349640801553190323908803645089259750070474608839457974958407077040516277252145940423344662633578902995833002875493695562162489358221568305368064249463764117171543860674158793464910461630934667329155523142101105591957773651126261566247566026180666330735982504269819252842419405903186351410101906242487681496439913426288412369099339401721999618340419062440887256670857485770462847721004271985510675688195184541019219344493633571040864932547654912669386037250820346969485815510943075448203987864461016431675639683596523891583640458462462209286615145778779300582422310524759654083835817036649303820606079180914684088608170059198803493826223506781755945540625579195844691769220399644723200240758244938639059046904164165083464746856082948980384530952752674014427465865676781884279625345116215221462825142162952919377564695168181028120347063545575161946519493312018846068568003544052350354779231215612573194044686710166052590461048678921747514381436486739080154820331696603595020614156353446161776924749758998964641002865977899799615818332588445863099475159894608976519488363607745650826724443403333643660278033818344960723217347688415210940510685738204138130727113587829768556986439929128117113856914523361998343449367766333878584152831677345886270229688394329276116320080242343247634260162999785586681204052022999504990386545372853816027210780907265822137245104857217252749417808173421536640292477567330798603925448248755275359372107333280918479200357607246342384519527194081611444891474163296846939566793365704271189525444554082817340907965087538050706011220122382753545259431420923771249974322857600823964580811995581686297706680664759791383255973311223662152475166852781454389554423376553423045732038298354308977656774598183521956761529648606811606011676457616535400824982201362508021576785087960684694979564628457239851363419500512767820538352094575535318269300421316649731307092418468568814978284712334265734412240153627317566940897666997450995012728271003189733708536590059035967356423089955824578105440021382609089101223462636428102269213013248417300444726138675494191368201256794634207409429545254314602939359504137088894755008966525548956730660663372703603364848551708201311548244312421928082195520387081635382848518477499327340159036845826381545929261873779987041778431334456786353454932794038051167061417621977454288029743017414242640925580826168783087394792301673345883394137601579517285364730522450385424281375722860339653237242455388119060954151965019928924398622320432704455679090321376588920185960598037530411739683071277909344282654799041126582646892761908119808316252896230856736001883799193570107009320250491647684118980269834404354800151091493676694798220120420687860577018553500790516795579108941190364314056304872631392539010695861119432282040312090024196052742997606902242164689006231712441947666616394672910656119634538172529137840236492986735475579750934690824181762722232439081650436846038959006446796180315714276787377991359189608598629257522043327861200134662668269420662706937759215862323712444640589302094345402120895612562615292741079494284801317895161844580459828619833974481675433681648725730614969410722306740375645269195080360553143169470288480153922483793929175151174981793942135737048812526666451027824625903816064554333803924781835740719749704312112600258478732582262803913684546019469409206705460540899360886194907627791120932913510881047161847055842669970771990766284590153806810304604922153158368874618183286792178452235057593093400687850507203410269094949527422256165708230350551651121413765561098252039416412117961957278089513686197342084682215685388033191066655121763203491469595245986713237728725943415121546471793534958347868308898557146790015070391886451839821313923878821942704749222484442809003456362915692121169493826694386241253682182548664937899296548274360237178320153300578077614385810762461178045781356045179566372797682082113138563273084420628976060177966553758703758990441618905299847196299120256742949002023766829672210873440437693036048930600302250003262345713383122953214457733538225991765237925991524403089267115360340301272107284008357174889128615989700169075718168605243200577317542940484275490315386829363065455580700751483272716410312069978118251847361544243643667796255789669193316816600659933583569467372805444626531970777029641642718233102831338094427870021033788083943690082764605757706031320678531402430906831104753504265328550297784906399139720625834432692614512903685345093392997321298986363984218472756862426690916050606226997477669921023095601417314661875562775813878842429506677698070749331392037077690814187414601802919702333784266372177955361240576878837321743184686327841190624333494001589352583151793740686107924692696719304144427322800528301273191450676764489560981096997974182926376518493693716144647112383085052785694893159942508573648045761481418353397527218937777158467345608947943339592683277140292439434945720245604754914427662128342325523865963932074356831527452283465681089601361757529034029789985561357538636814700014595039843298442668923881420446099617297702507699937331786197446784051679380657762249172147114823985243469196203056199964571061152543318408521670065868696617715213885972113042598610856369704676133943752262688261887661972408182800796328745620751729166415557307643418526971286078795531462906613318270834407923029809925487558374405631762515132525957498677620379889347187436069790431881841854585351734401699632057786128626493917448582471131759659026082087832712222021222747678759483846875298794253828655384203033471141844732386398353592765688597922619552723707851415895627025948786193149800644336276553476002053421085653555155680091739391888546968950152374932576621346695647245621719543388846211187881223563744324566018813164347448224426062480244600182261513817502659581533928744282361975663271761393265615959161321109367121203400029050271797453681581927642968632291137192138474797568639848570537540821798813851196002896419378813439974324280483108262594871206601754911490809262772898519700844960519456450185641216449688302625843621037272630556070772290824793899822810093268260838077564025963128233249610414121472921621705160749070957699502686337152518185183360834318118911890401547583055525162586027506482672972657945879902543772622729968596686437692934577884920580580721460662751797416651069697741461897232287816693814299753672437585566537147503576369875960380781599162535131318914518363984201909854525354331070006793250046636044404974756767656525852828140451931526394826952225271866116479202378316321656160497130420913915060320485258507442962826898274363781545326946504425279104817597101717183404232379287105718649019355455075940186142018957818133001782832335523376471367829079628610430789997971706384984608995578711607046049574914401169745964550739119320376338175125066715889606317246673069247720538504716531444126246553458561028700728126108909489563569434822764056086015739762470478766235896855984982541714906097597722946923411491473210731264596371670714426997849080184741096173847064500462368192564096912389936783960428818184971069048148233198401777435858560024180242911577584059041470496890561956737442069538535111622069395934730740210228498873169753824005485041444602531654190652435204218050860217575218573646158189419171582338430834559294439171625247340219911101331225882152788891960640315396124556765046663011777827444804574993126500594591753283575481470037427500898915440486449351296018085273930101422726195151010872874727094627313793632550944375841754999726752619893386336802853832534208556923953717744618878116813874270064612230181179808257564997448365319860610955294642155844033415899697288188813854027801146977829775438124150677738952159603039361145974728203180900875154242903270840963930394247024794650186695192629692438563561064875618029938384689259467993259734411609275881995111465977021282102740785432140976338217841468873434890039852907767404773009655466339633492070844167835249137590849911286591480988811846348185639527128297368047270392304510925000671227872876407899825052759028975450626453783046561990698496330044670448518480497374727838021289528456356884547331332750635514385069458505493054688371629688785279783194727408198518204810951661973200067928054533892800589191618353744658851454628105294364277777991150878220019886284924931257784641284931657775506153517784578464209199046309244529741414014081199207209893012288186290360157938431515690129705510391269459026523163241233114858347536500846327702791244377669919672388493077859012265404470909639011865256061160386194154270259723238199045960047675918066016711902083666718428759956895437821631306193669499822681346195531500468340571865479045174995569389264654680816506421907127853218632334906594625564922864243672778476083912177339316190630325751387970019995453085623231489537722614885006477549779971537936658815880497987348710429209364300447618452510879940406969884281792573088764003728225650766880353278397498628382483237885004864729637657536854630192162310955946205679336075263655523085446629598445499562218354714603615516885701737791977924700101426864957917499630385177562033354310228510562869365856900012305575967241855050952813441938610614893901418399275623599981661152232576284846418335696306281903319372558561601484926806894879042527520405882726896130008732536267203791386512667767495210144110356211523397197182180500656093932810695804090382584467120675026374346408632896105410030806914312457669185220735160576879429605171528351369321914463837898791082246379012296848538060935420027505686172292387913258161194808085785520222273988430569165590734307013319654873902816407639250762770977831347143809387110460004086003828133437995581409962243724500547893680438770224045796071845837050850152061503551718611976175239364269055120296001472398889193196371549220503982004060430592891064235643149840425868256951678123661877248180598472625940169594705075081540225641271347694082391245858614897772136936161356756142365548660494261234880333775649692318002113914507089744797049668447137030564463395899006479444660556096178627105382855508304841400260883216181295078644083613557488847639576993341714759232543374359090833768899856345891922684526391664548780357545288160686834022669785429468406303393940333718355721127089902366616916544625719020111731893581571344141347491285507738854220854242114305663165813659227001494305664494779708929148096037444760014845376175077143376059526868026655002917219237906053580962140387688596932862728808082398150232452019269847879444163877069271559007699045528005449364589517152952340874297300144720464167315258303850799241732346898501936670823130953672651184176194563874625055458394077203364768246754170340134522067476557125371490750431245523654188640582117568246004730048474215661794234393169420409278388882080250367960331239386767531650298612632655644711076613270646747850811997617492363584766682061136889547328576586495201082202264417884403805914790005908161233151347621183583039697167262114938023879212572486643460466738699204898675691713310125337409532016345043429118903604026329701650459299490022277138044473650710548150595911629639902479089346252504317113756008599434276348589179962464562624365844209190944970768786828032231687005163221674409149434294477563433201765711859155775069504917871755766364362477613053167782458840117574591001950627122138850968395321759440961400951935855869808309861115877131463205996487839735709690489329635856596095388991048369385333855232138517592200500158144851896071310508027649752506056215128602765144997116790907377414858567973154078266255162433520559602900329621598296197143032047972589703494983164153139309546862895829887425001192747078937519867485806798880278922734789937022991526098469098627282970821427382486860570443048855268130513926908433566873367961487231047935362888887860039680929077453255344764331541242980397348794207215095341314628545382550919666777537133418442909118052827800332035219691545282041597487677248094786633944207369448026208288320461889920221396226537337193084127150156540325856412401498244913012538379639171496833908909221647416473864845739173941054359079538728686255458094559556031715839565371721565433092547964887466879895976002144131160982799046236256852569705660335253603585951882862031755032805298514425528405006853940363944907155510850269448759748670254399988084968767317664996415951976512941002176969376902965588347399230612715483341995251581191230063623024585498053199490325745260703846051443449589887986170409459235100892227432505170127892301476200230280893684990048282282624969394973091384219191567324987733353685613289158519963693823574594979776578054385723344970976206259218509349895455341175992586053478438339791684738789303474434326857197239160265311098696576326791422070586185274022135624116528161501534870127807262757951314746707212118486157810511858548608942893945388237202281310239172549761629119268401374756100170737520617376883775138798787885101819267950883645522122818061047229757920898500479729082331070048259775946716975027155447690261190810451301993925399595224522671827009157696452553440111754876251473565520848709522610347616368443138903157663776077027806078068238681692299213685960653398963831530991043831324119353152262373032239176956014923114123789283993442388779457044746966845530536205622304243114942711670867339993300440910519537104705885636633148184973374881327293921641013334804431743303409017903601446089813860547349631336768924285679886610104678296145329126452637623101110984641528923437593219842341189918652927902407959053882804164215870801169704032531412268344178209444141372814899901523973728843059803828599250597687482303844953986898564564500115575358897668336100633228971548042191128190539073047254384007807557483997704592434752832635446395425211687847912578285652597011072890893977890856233738839138873618969732589384981301046387385159578441495187757995494453506423968798378378790730474580497325254140939031961663104267953467781651141551265171313247709561638196802723270902005345331441518557700499454822184883022513197657455427468996051910906773858009354360579585616020440138415926044564402677054471884450823980885399305386224693053930805636276287958649281676717005519147834518811850395271067184421692948591307604156689639457104648252903506938577039166452708331403892189784010573450528390734567060510185002424562903178159212097909232601452911868083259563614796479787638249242806322322991362243723261070023795967910106048332353957725917112042153582205943935912146710326496933487717082535480560874420328781612846057363762799949454069711924147966099450972731425875039130712387729460163105715740687348315434044702992250194639560824416441875175988027205562360074898054037501284428221344428205370918159927327192169081318215079707381175435040359888683289719456479261587217088085879993668508713452133281404716733903341557146431856893050259404426470966230179664296277147590051827290071150015973279932051452846903853238631243974523094051965352000310962229392919030144686809859837661085477865368383826906827444932006051861888672301541297015379365005901047865624985058880596387880648339961254678235365654721956882736484867950919527679802854748720382027595407803600792864588611839093177695751807419894235488652767019866488746041045774884276266872242556253996842602264832921930599574645340707025096863442736495058633735053133541834326441837835925917924645146230034212797195064585421087200897553383390911479530723308218570891807954884226661032595116912022659997113338948712221249344265717417715160122681997530492613987093495780301475425234547707212213750509874073123846199959745218111875150560803775562389428611148262239180226938958579591851262978052363605615397234321707539393479668816928842991472533434778648215896714083442485172608442370631933462563848899041221314795195794734073805470360443408359096372646270649478162827692878397171029553653664805388428267200306988596828592013920579260918191786392022981839772482449152114303842105784483082936407597673003758709302339673462789468811691956271585418823723696593924175937282628458293608682767318109701745323779769415821497095483323184364349781784083017634559089569528657164051482158364335652099987802889202116926760158660829307535091485911430934367274946092976573672970115760875566576808188700097850044519598902405994324914061718068148098376170136030207713186012189044188000380871787074315320766303814812953526467865219236901999261539026276204930620392519863937700902035794968859838514771690351113244488328572019546696695743476339904777097378290401203728218053658170705215810206703686915120985367513958119403966777160233770942147491915574878944520440943138341588660210237628522256188580798942087681568829717016866697554797268172997815994236640248345996410113201578721385839933948516633710288327078412767056427007203549530031352979035102650363352250129026698299573382355421740450950196115339019771911982772801485011740207076304202717223282813014427222852766738257508736108477262729975418878519029372717229337269691294457806959628587094939775307509329078435753485096764923287766238405600464500917479560361428296602009992575888941604735515606107544179570177347020228204819915159662925201998667544973385467987150259034115935016493182966200515210412994075386055196684940080758726615932832208753231461926072802165141530720676443613237057716493579355550553523814200832988756232501908769131609072683480832996501640532700206066929197816230973805610639322637049656255428966418430245689061819074347614368507177232400950440579049106064128446075445042497073395627462547855356401351199645544075190268423002548880471899350499337279151450590046169044502406594838277655832971488520242771165363675791397511361764769245425535941264325404976709845475883629317779016137514867075503396510228339334728631872539629709164615166496213034599264218479078018210502914226688462866022803825190245021265292954251278568478483194187644848324033302644941831681560283597487306302103936561122957081089083479926433371633238929128350891824194415987040080920929057443484372556718146157908121407544886127509066739561781325629961178115448321797927373019919776404959812913778808500039890918039749215154725222522235626982917500671229151962749768196204197604129615270682446688847789830198449242099640603446708590050124856836073454974384438097991470666476062212089361398751197677858825649705948069168521108451141772311994483718037269293239011006490780415715317829995777699453142805472668640583408531159162805867767221118659028095056412116117566686182629312696011023981811141967035483368882083188471993601757779872849258191402005861243148431331732253135900362036999320908545516362407470401386633797669300820048694578648698522312649828656810040518374116711330198385452381639510697377699143026449008839106046270279463206879528222838782110256405211433502070288957715879852494564780059470636082354149965437248258260201477919802589452231660710421779655545081407402376253722284602396979753089213405249094413983671323884105463765877122040851546285842339036560286996571611561172586635150192871658637173686639448873879284077492598013945425248580662846985913812201924934545749727366193511339163868455486698673272417160969107494257945289117011304469808452026712780578360502259984235178213778790813560416604101356064167035465305306630125273423330073656568782090543814194020331039107606334443184856581686035123797632381776964927490467731570876894168520116720730926654944430347501143574219189669744373524332208551027737657127759820312335764542409629208849205252442124411679530721827971494293143908790750326525539912221493762653620105132421620477532154491260043438944245564618323908593172241219023159467760379800320512988861205510935097321995814301507373299841190027275848287600260161853769416250149630289706766863872587200240042078078341061617425229351448252681659513336045858109688377282019975488987379699680556399108150655621800690603798755908630923802994886920915512057738719168987396532481293735398085758819915427316863314538610752884266616344354016716795816019911946522492916145432862700696106477161019198982519859468864539052277602620216785838728652457163684612721892377848516695820411003081241443156402520977036913120945424146622224176462744101331739324232335392553429848081127570652340491039436992267777282912119371496498267098368134217283805403802979356021441168389293693963865006875162103769101307636486899631769772745173923075425198062615519395389014096503072409977071499507417250499286512192142040280008398598828979992929931268659814732758036774432402244949294430544918501237194742008298284352740583238957007331903098569761723742352080886396115866786118791262018895742371355377355668664841157912107300005030316791007110335238332630516008202214508730330495467610453323299981130191135563702865386727747504698462142053063149308120082718874825780137387420052806425518667768344890027492070523228132048498395707252288615206577409863871247759902183488683615535795257552036291938602771345703956199992265879068581379870928103139084462165452054555965246349106625396126972441773269661595454455679851214578522956194403836939710961634074859642650372598490795437014973976518244724981227377002780768558388866422876500120472919149663861640851221845684219470884416090590922254491438629196514777711286578575120924465575129098576218873504048055511261056298013319953435987937684618648218081202406213609368587989757772467071660832462396349936539028281359594601118887432086342651200757808613969971633446542254241440480169769186472292427500099382487934450533107981375311195518218706682748146253954851851317754525145191460327602821574172277704790966354124798422198121615259598956921904315783631819082939831529973229662022240440008388940308112501377047117211393379308504389281215041057803224414408803097359914488368375020468448378176556315465567289608092395007125042821022590223724945667245219209068548114845617963458971047009669933080498313524083161918908379548186447499895289598988968327922155336373242143901098453745774175593638805910638333596957689896542645615600250139142068228235891004175970271570344270912141115882593782584286528549334218349135227333364817275041049368236811451756170756534124968310067076749794627857938108088521159368202947574789648440261930170032212026414300190292880823512811457625651506634215826259093316220577999516473125924949343005131804234457923070555772696113398952106222380973222122896470000191497099188418685734441905584784314894111823492080164436550225675729806564702511315693904085408965679920690075034918166868088515244436172325463524555128082190437276904241012968951336477728667020538821628331952855075833303486457473380493744131459359842349093265711474843363034935476808564246023568923303645827807099976103413138040357230277637130060233257619699107105985477852703980351237815084502097568192331243418478553689846659314097900988347244850938322470959455227510525660698204016135687866037416707258281773350824695638125783108550682970985178920765319474996830758304185102595104169136645259421354605091760256317452417062271666557245902293171358296623131261117815161447919328610313973403075659820323891643101590281818219390683445508299934880446088082623091719011626786889988078585031064550757449335292309009989631654085549529150091900374766381851505000841388949269573813867297808109153036183660950445689923995086126770192452413863288601221803963545287244957938296285719243901273591003801318293789042225883335817052428687564572840104325765549257320120729962338669802614999498077906778168499689014754138642778516908333001053810670163447835533666475410002740237435719206753559197987102081855199137712793441036026427723354276269292730852893529783655712409613645821355709084146366221362482543539931762894921913561332183638010784945790660993434779384941956667680034801045255856732607238366422523828077569972287124791860798184618149616083132658216910243260241134797169667105925598411276121287630913927406893488283484733552251794695427348293060450662492654723203034798650841265052456214379039403578938995285085117348519865619996479095126382991633306683204978285427249150550429327497582087779349786653130037624332759471993489699139659822026608645228098828736768539927149356815078676995650401224199986786973806223711823676416601155328339181196730848356015021707572639777570430416990803472780329900211194871542002767148277474681223755180890851961476161780472765765540000581222196433753431345704591790543017867812438611355219824643654360276453717471783967781675666733686195877257834659090144817544443062030592765410632104831609971350742949806779530240011262942430064579097486168075841275238873271908805037925879119825114042813676105532401831710562448812328337072554373746825650727825979554100802953758754115730289518181857075713676729841023462155121933712650827473091522411754596294034143164667399155595375800683740873527558652339113210986030938838303381312011342005874741380098573643812064289375336581204265122078611671866360899354944197760411144139283441001413518086019633795439584724430407550930362398022986688489170645611198444399351347976969028473176293878363680551890503336148603224968131549192314718057332029715903732483465486073895946947235516549734306749226092703805717223385477172670956806483020475668881377101334607814387962473096043284400097282491844301298194802952254442301316483137371550512280610886040437541168474283232991314545370201394493930251905771744559726274825689759307959507092787572468981395582624412635096148846053158726117475450226229885461164092189650497038930755744690836413913259211064285532626875187361821837018671815539986342106240491316270205091211286848229565959672831936372861717812176253663238518022354843182486225171863794649779418908757367486328254033980367595440877201651177482435255201856891303726898627623778370918335770198471162016681829563196862561796287849747562648293895339707727026684391454268372721773430370065706826287469609266293080276827096649647360548655726555413316109006043790821386904538213983707951940731511839395422801225151769010235234995817952355193137555480328817112957410014748559605685960706790832751658752076956300830193147468472749235972429819001710081111755940174112284866539576172567184256326494994534582928414982150384336303099961944564839686611767738869097555516343470363580219189843009932420150893246191756465353939287209733732049570241631561801346832271265258163662634335567814019166836240431360601814411184539654458111187735382658622757493753878589950419930068950484958720616976331287437659275038862019220888172945874299128312744285406134412706931645671554175394961491656889843060837571284602257725689453661381510749860897076782779384075613116627134190320813659901666581751702032756295030864121945761665717808862639232934487332788682042385522716520372945989245631650802902119298937530942068435286007874576807059869142245916344245261645413887179797689558412306146572970149163770445753774176220212447791640192620887653103395815997885699471260931314095506804419821811559526759392937519222038128463845943025651313447689488993789049554450936314012724144929233565521490353300435185615759879261106144843060355405134241350863963998651246699224396615084061389223624487300682539102234966150523703887301679771696357691467744718583202393784181897838543167276184364344143318675866481069580002173108989494997881535234036156827829778277203113476367096107622516905283060630704417664307659353635051094089743636237891697207465639706176439458776854387697180081650681502889216727872520510718715163675225160103465690575000423860918639922269822587677377885490918223068378051958388019055695428339509909855604401007623353150880964502277390781007408586046462115521611075865053242858516384830554810415978642019726017220067682328413247781788048576626644696506150377789638484712670181041076465041440756543739051524832151065957889650765997922563905292316909343290420505382771071169860183913852753223545310688203278794980498426926099450486461380406090531451324505150290540394419631387335037708247494198106381642623720044180327786965895372130721164820853755661097533157426665393373911851765286135582244370829698780743365818621353246376864214453854980467628509385238116295488910839830635166133507062725110965871874953886345614296932271730905076394382863724268233103356363964517950941301659633578729349185902219037261731338606799346466026266818649696870440632967879306821001438581000252148186520571191715180633080715299808876778770887667555807285709308961324712131522841651129068436462470295161393774660828954797289154618217569572489253873701199634733008267831650883751993865236261312156740908164539952640801454880880885510223293513677000008456129077056529693326740229880301017275781295285395886986776330692812958188768233657304468316532676140335080688524822450479481073663980954594873877012175026674031234168137965239525655369488776599466526757404815577548886704965524984681515989083804679359278229561307441130551989595519159559896369957897473295508423155788436210997348780389139314402471855300294563575127533518152609148153326811522612289669119512106092670775944665903277242200335055681069457792269754260312405105908156686390113295584639453704155700522309930555791463893971501082849288228691122520421157495223578130580218800770749228108257710881465230420777307332989823102857522174643606046686208748815781576592434996224157982182701914765774225399286317892711519937345235168758012738168758762169207395700541891717916625878607413354387261739545153488633514510613931276761682847254722541046156768806980463441147603915188487885016728711749856109472120306927603670224414428068977358703699551585716400747006258949328174869243535156877401186313675627045257744064956996708288205829659303873045767491358604537369879151222516432305811333847522278648929351939217720816505852877188416553393080352833342527334510236192482043991591686714234115442925494163378430044065336618818936686222772220806444175882069298280405196264995160181627304211945847930402190209084612117273136353997942330590540471097553150776199931436975766415398043197770577359581832865623302437202848803652198924417550409355987971782453301282785867842223030966602759593587717750922395248427797857465131306376383258508721621598175536978242943484568321955504735962787227548745286259904159005579118664860277232008655936609988802353808732152983367382905639952566212643630511129559547261746467198326551751459808986314889153363470306369693669965142088255974246404987367469807296117891330744820327677729961376031742342847794655973682014441364531388926119074616209516662387647685020510824906497096382908496048549465747464451652064121797563957412428540590405631871643478946554050831747436394048354216211071864376046431742554537361742511571329215258378921532518787167851439725628192953627977238685471273496360506605163673018107976826454404366177192214867741164937291197819350793547931205112904615938896934458467690814748406274309662234543164077185012548368048667289487998166764074714280960704394504631312270848288520099039670072064960791722801418053507009308677821842797142576701711644182905981882528402044822035348856322098241097759119539554462317170828598897504053372711872364738307901853131059522658410926317308274914873762743928928983293916299146683234966868270780225597915199761365691434376741841579961154877389256575394651473151797559369182595500382964792168229660331783688927909176882648052808116436856915431831250521559361884712325805110121387761879948454974641936847360974364455831220532873760219506595773693190175394785016635620648852271376957563661214820990090529236265560033617307944680345543538642995730109159490029886952213699967285703437383701498090869392956911717861795888633388635546316252602748143757129722863659562012059668579752514754192832130411680208659012923739502012988175740530338941131130304606473838566654949957307161723326108701407738619058783601528776304314880154863662104216463160430760900433690054801362580204367842551935709170849253436794260414323452135413272911593845913944161622800457454693542452230741667627720983805215831143311720616770948740652901339413740236865064263431228683134926638365152757273159304081081898748887343967011320643675985720579140199525561783298567305201333612565319322055348357853268302868298360858746558407018767789054220216390098396492579327399382878621178346285891312705239442354487495451294131632319778763038745336028069073136766149502067758294279342071679233459685172448311924245137623793936513064420161403220061504132819288921760511103099991133081502599225493907043353563520864264771941129602177551050033879452035998539058282968049342960915275776291653952890136610675325320794316842947004840034970792837840293558183378904883223856419708252578845157834456706138978838746707200110431901276957053380684820905511259672074445423424645780203664648283376962834204068521372241450655839126512496393297602659365820945243487499207515792349140067866156369550036761040350263602366565344178523840384618449593250240435833369180810734986486145928370244575622173823664797401809704146988749063280363393819019753396967234939142052847948735113103542982785947614749316660419795672746785335544123694815234563427567835185253573870443265064965330293744609509064439532154098784857420457881681626734069276694361097380677787047861603039660295121451088469146992254844537256718983946833711636640531182520691043781053732595390401136792588018748010270552823545582354810679876190632092747029236492097017474479273872020296144480230371193048556677658828968646424080551957426518285410364568737628076812576964018730694470035682191066414885610270242399086041914216995903211731190552064902642705493240082956525034184399464550297258468788513948021120313902261914937629071764125527352208938902100786763251445647257547797298652550653304316850174367627567390341830931949446849210004831323978451843294522146841469086896212621923796655414405711027016915566129570474189926119096072716465368738426096614100456038802765923697654457544911221984119626616990959803476287096598762617579653160601691578748782757740785570995506743840094000173902584949140438114529022039306504699376575577464232592245352171879482566419535222895969735849473560089492252011376766608355586695717659915601033912245336099027625101178087372634542380793563013376233582300842471339435867149169594751184295849229965198703430992869552979970536393158035260134786188300384727132571968936941237360279759994099037341439898953973589670513711231944999557523562832289330775669593294412943985048805702394129455743772913046209452096946887362359433699412356461514315532271951529729296715899582179537128829671554120156265316309148885064104568289051649290550313726183216696549875425956044870563035365870858528831394758965750220742776400029509276623799393589751799559463243484359240244464826050513286365477628335324138790033704464348223673076023147530222585195998823240594598207476666854198628896938810422030546090355975764052933696726938584998185405886813723693087122198180840476321916761330707141442738939161122589030959509535694329056594647230278313334776159190914501783986819982264374033395528060845788969535460784415707016487641826622783146744748497865158917036748699819864032907254672222347390771060523942660289458323076273198406727287152719267759826305456422594867937347836910759520703226418896273209198879622062948123957996600719092547443996809754197579344643323603588541556196953554412488167144343588479479516897116816875845020555011728223204913281356611053883788140611656790689363313755296494808772817070851916045574150529989508245233710667968621405240695830621648797018098660687852901959183679610094204232137646954680863378299439633769423473412035691499380772631991632262821434883046743616821197344732140976850500362249368081027958979261240687475117175215155496279066132773370164543626471984771775618588034262110051164007441684769075462153539512444347122949200392630189095546216680720360864801446856779306329780858314625985002297187015893198191871191403520148032527721870831778712434871842125309170143796803393027706699656407715655918344093040773131136873766885653969378767739234737463557131119428419842506323842245193226213342284215806072955282114759777178484034785286005329460059568824041097779462898443200813171114915010446120378325622244828045917980906171871105714678154643561734497683027054659137257272503463339032322567438952454777347281460449051486052762802446064732839433245445843588959679953527241182107929496838111877797368205197832768889867964814656867732067085566340102578729626438543885683681064008522727283800258209604848723156498000810103101800929225095098544837749348701189849319674950800135056584500752369910672848751033833268828921783103168692118300631785446097224776685843577565319918564047631088620893663167584684425086086931692834401893618647144038280249959557578961861753835403209650970992483016312291962288434025386117942372934268413073882645452327015640223475834032735500915273251021669384123366832930460677448781357896005307088972511360055015209133503376298689667925428681117593872044878061646438093371192815780166355316244086475047963929403483730287775492573730040483206787088272739111641116716791628945940617447881053971719827538530451688350325618029152189053878720068070140522925528459082208865516396985994579490575226564049775470706557082485762992501621140087634553463003565966402153167928981493540645497988869443267492023268719019525985588928596307975961506712330050701187608137780359004094926275515209634372883756199610055320373073431795407354635506511246351679888560304866013652038545250889226976272716740399069341073756071125219048312383247679326050899174700748803331317924062147189799749591878913903997386364166294645062607919949310137986455713042972739584487426278951705840183320138717509394999365851564980412566172861838623779843772352505959231151109581876911202882438220137258169302597413384598860402028361920929957034750161258635189825708802447517352994537079235180711863446441450114106099090195257898366119681768720910038851683031651639778386823011252512952638534547370841140728614207058169177411211757520462148199557139385664134359582283661935883453265807299186302382961763112174302337119464536309655923629367060839367809079614192972296335063631057093280403571465620332756778793498538652680905889244623937738485676734952749154487711319703798641293818323861473259055539617430639033494861346914960763397295114455629248877346007119509308474362755047687608424768082642297966529049608759867084874821335918649649765742857244008815858640869628599119201574611591453739116139647277742863416373697769046190065709860219601312751413654051000692529195468640330465331510430239002776982462428750769952755544127821362576212252670090663160281856875269492668760372029523857952948734339982300033404028623722234877960189720777294597422913691070762418942063305183044230111935484193110931605587538501436662885859254413435959410358091499956295425759922007592748181556816199145368467298697366786411093422785692207899416568818409189073567798937125778433746770465430329758999943836239786684820974618201571647058759306594026423526499649429984183077115960161206149618214764758705456368704490067427940958120643523410699911684055460217471280097429488480683357000867821376791840536043106909578910086409516991375883500402906039411260043725237600296274130725990259161784213567141669841082403141488438513139398046480816956759203888228424389739657521919464840341740394460775866502409949323580835230049436249588484533328835327730006491678219593857327120258722718249186565246558335400558745618159144034796792899318765861730920669077674630446793831759874714064250165827466956948678091277806643654464418948120174188959696304310810321489027994718750709393763045037549386592305702735862913375729105342822096535278566005797803258100484363525234106726804604477623230436910945122664406413086792386549281194078616697004658406395984221657320970950863566300057102042261390023149652076189787397115905684814885583023816343845151804474896896639989554589150342182878075218867147353234662561605240776700005084674370894450737252410563756957555463864001109008001019044152959586777211136053409846458495274837095290528965451379996288472948950261767169047769164001974879833426321672876224248161847991610186045190721749842148277009081066593276491722102483095385644066387322666512776769978586846952775766643028656572202133280143151489104165791505417246624274271868838924323554055422082582614784418995068445404954865677637345689456398567444018156383831642840940938931616790125747143461259466345959292155418680141202887033501938873823472881026190726131692439623629290952757614314197711314403295075221059896531725521759596392316191548002316236968340709541665106696163407494281233895653100584445262431505169484054364257397282799594313452876616333707609256751637743411734420469748375409377039631734799655925496022210922824915298572964468007590676365108129158027272706792016267647956367300403817757383351895501393343394789571778019887997470424131022465163929477539159231978431743978403307463920883872650981481244398433987400442214255405146909494663585489095242242977142700844566668787131823508549702046376257446396909963177120685531532071554551100694073569816082421428602800241747052860769419974169863443117289707823350073174812087941847449221714277799361241619376905838826803944051513715115848334563920850324217016071790815143770037472318175882853423513804147383436840629745514336849223599170394541349046426538921252128868945410372153476706307633116014903250041803428151037085993979040534253005692932562248484606905704201484274491283730845757312922482534709485443783299339508859374883964998517303238803636402685474737881249787029075029641990136336850018022897173475190842684294883472895512839964400848101478701931846740607485942791987142565716474319246745228656023231183958277082203165763997120021148241050007265909797615060370109406178567931902420269432770636637232202257808354904478155245613141827347909648863560342634913771607503042501082515184433815274351565133544252253438349471915078749246028735925581284904879584905691010797487668424896623742520734013389365498216656249331708249244609608374358224944044768969553048388992464419286952692867508752451689787088519393822661112248322926969083853096761037910973965763663063504827189286262593425629958185305662615831849002262326984723758708410876743880604634195283972031762468067652665769644340794889204003453144426058426329909157443213718194638012270509622661785480507067541769767552540533522083293010581514152049313495949596417762681018032735996141193849101283876696074922778032251188990591167052233674323864421993766776609435256756826766394202891396487767211365084725890267232394963135561749443145673678583684961999126792539742630839749703784722148959440913192452142004671619957545228343437842918176724414533192795016574345671075225258375802985637063537861025388159095236704622117214738031201250855718634176296302323397186628869074284809458837566234173282111201780505487643524372757448428336206238173259617376832798384787803418301874737794990905102381601243119707463682050049521674949551710739791748821485219576748547951819584950005883983680277744439585088645596587569663714266377948774283341157628284295146771853226378885139445397409618213662152547864088838125814232493093878289046453924329849027258586382900787905618462255114605066936993265058904860601902722344763077546728483983567808663262990604645563778613477383613879070275672733186826016456391785849759189359476433380432377346751288331609862956428691766152833749499002524293560606538338914882368856497679322907241752536587983439529789176778716224988678876260314196709430446867558112527106550679730413274405681476595410529273575230260573853968989515612970663273812503800649701576531028251813349299404770699858502301469687381875947767988444666724773323918914705687831967178047110142216172121847931923637099636295207119615025935470431800361839405128323225763495045953551074888104467724901122196735704465107960165570030560849685230325019908696004270387508195999243414908849759404648241967063778153829503756743843080100937437583831863193452040651578919238494611733431772011382925791853782759384180128948968771923807744913173460382018199391176189096321446874521929674206632004803491691682499146763218867448067532999564101460944276827798370754803870959288524331020551040823384433094870298666122740395506054865030700764907645662011113945501055006827877299432406128601550112753652224900414001276110499429548901018321420178085248508694478303439300383254717199169885443902401249206332228769277221373780710510024494621147965901274908405717646940575428443760251517592827292995783660838887994126533721179430783434407190599351531988038225392479370226144045409840921454766963261392126341196168940948026624660972257473731256050862215284696959788367848007169434454144907159876217674206261891423036328668492494868750209795230460636411948003773688425314148202599405322982451467310255239503333920302480206501215425376945048484321457156356983997239421864958863306142396500406089526034927753772641960746806685175715893455929138932754953489363492688660369628977770232821823252527088299546915472010650736142001103326455391703447776694077255263361135799807986107839240065554002540946262640640986813030616655246816604049421890266828064287099642224023931910462746492622545297303431164090852945084920879761016726234382750577064191869362304867615655514342113315142130593179875184017608880072479997823298562254928097882984150854062343174854273686463214261865093312177142208507808461623091818232551233907133031553898325410122717498991082264260892829775601841063332801648247798372693932561608100980444341042105551524080053807103642995329639822810200160847968137386115829463544241009973099273862465568949319751034018198018484599382422490735410123340253562928661803576296745801134269168422269056293629921218223038952293188013322931645285290977315595995602429753289759477797987382401770454009610115124916319646916388296288852918791813877609660172752534096956511473880147243959618131557640304076130658194895327875392649104037805786152964770733785649761218337651838094344056185886831005550991051323921117008965423865785423872336198071239728487054963472825634837346711648843136770557293658310414440948297464538818619080427365157274938271612425683474488847018025753924717629598795696523913211251937363853546217735654065528253880605276306193529093034204258735440873545175664504966591479921843464597495882831326434856197726283663813810441684928757951901683986775587070625390275717458144553177314293786237065278633852217005036641136252244013615017161006854992984974526736907387057296632654970681444349710349116282173401080809518017282408913016529581650328491480959910795052649849153446394266556370427939456544346787967576936866856065083934439122028479696406481408338609722482224534552247121188668219414372061468167265037121076344537395735948785447595797634853833008041750186695345094592240518732653503519635066443627631464403552819489673675742522827663926292355508374580637522135350725304455876678199366696902857116529845466652010751808484681946902787799139457610542844610064907684719510639700671452810867496975537035994399462613203511016185042198807412830522634477719622448871781140229092513599055794307813970556498301234379705929414063009564794713500163847826548108370007989453757331451978906821469693812745864401782865925544603767978087438810176748963394036532062270003253490579579940775256689079077567615940187712940936705395167558911537784375245598981147940134566472688689586110998714911686539617873339908272707484038148000112262994490303260990263171378041246621303911034049573078662491090757294175756893393907815336239768699712956124463647704552727458346569570503661560983510414231183666215858619767780123454772349066875591971094740768839931370303461884416712703062728769570868489235002152500250563539548414733413846355102421212884326382481102210725350747441873687294711495540758500787142936680175279001467926552894323485779329809484086491836863984582045980557744115704571771145921416812180318343990550932895452528128569068931007479166899964926384882615042425288471863619712786231124355784260189895198289589926196777668028762685016258836638779379191133917666456616511288549936389537059146255106803466232079632055852128535170560634605831230140382638835436064153240673398455635731233129958905562915530204694151526223791527883997549259554885871335053439280107033114887279547417442194443834209214703820202174941518691471349220136837019721760513180560694963831723344422632573364768257477750207245260250634634721936868639401887641767529270921933437572426214281863133211758728095025212871422116126565175188867105208433138905196367953048410830498475793230385785854076686826091367227803401660448621400052760129846927731649465915002273477597093103222052246061707020520544960783805810297602278542832647577637901661617300133911442107324487018045774954342063085476516489798839903316357571311196588030578586050548689205352067166864478833155991805984994803012712796594682867669515986286212792890093815757838313148239977362807588075238631357945030260193815402594750386174485462556973206166674012217586964114317431809286320581172460040470780284662578284127765139351472929194877303977249038519624987801420057719545986068095053029981760997486945737144620817503786840178793058819272534084121711346556544098141175815154991028815214431642076617437026047392957015910694602936369072220441409489805323326033647981550590904371017919640684007773181705367577589045811983203776298589031385841368385376052966112709828746419894206089440015074894015931396799393363018768776743951091524241961568501912009038269794103767729414359304349563374759115581673922153392570444430390055064074952377804237253358280128522680612144856701561963461659171916410400678644141978953720106977977215110404626184595649898753907306767572167269426483682954273492137711944062135227572512573189559516018541037271296057239704637211279514775843039997950505019964904492442070900219210521043761996685424013081254768428622542706766726049661299876238320709959521146643920060182935016521105208608583157546028724690922560879979914343237262778705587200129611189146081426804100097696070169167725990865150283281211216928515166467780489778429529738818121702455666464150248721646839360867116195504540855654665476542130407370297554607262916370175961364895125038030275342115372352576536326541449601044490830587620279318490453586187571441753006857480163759889655914828248425310692509829047311539990455442077053534932492085213597856369718110007334785578083308197155324196174340763917471472611443049253198608634138410175733735442986673345048369703491075116224573906886627581828484586319333848921841918007741139375140094324380562392978419493720164331699309604171919082418241246607306337535295657558859296842814714146599788865960976150996556479972234673366563613396588023446991182454289530289034548091710195753811381225881278695274891395589467735700340408435137024479988294990844671983065574833592839903774689816890088755327227753616833143888842728721377872534325347864888540225886308594924191276963018248715533196725925209767320062586713943583463406392978234633741258466763480667323339922050294090122430604157088457661163343642936146859640796844414079084848642431199458142919548579751766635886335028050443609212695984421817876900731772608567689941904188503809632086047076103568065792153055735910808538665775997620776882238573057353674987829704084951755926362730624177087787700554510052518441102038220422205403398353076531450236779400980897114107407587775238702004355414085309371623520102042622465723599356605963520808195187263047670174423602410290901452431343762214630871752416014843391941740714404974877252759878186914106938086643221636097604616544032023901154054723540239191555914419649277305347120108244900436711641264654664381380329233927739951479730615871412654010747986275210630243606830591001545589089046649137045280663483290014659616621593602295729363855806144989616408565880776376149034835834963523010629326017344911508420383072789218442325594409630867840388451942114485220187018003832197047538310006953732273380543302394124872686446211151461644717366774282378747390998300708850464122488583660620588767294517178730422239907729675204388676214757382907742017170803016373173007263666883233798723999555318431346977218013210623227230750990713918100305705304236642055363492035177154847444884823406519477270906095977665560221473864811701726463814959256268013905310875903803674022212651965638524471305095427583130992485576707318055648428667788491750338855828598110684095101402297541531902807939889155166741098910830535349230799379298427135927568966588710501075298296689585783469807233999777210060604768643150243360731330060595008484649822469486174497346958442995426109611367255979232766267090985256380969378849983938988567246750060241771301036806786227059378931750805323330980373287758709569561236171906432163765080914273108514927693870783577823400083202312755973006901730153023533879802871729115420378754365907133278604726346977092387139664625816405275671991106133210253955043658717158092014227802221615731045449324994384234836538913129082498615650740849652020104233418937579384210641209978506971000006601658570721049532117606372156671001884616569989154410711270476346462986211407635431140468176921290517863127965808457073120391941995131292282430854387933634847557317347084935224770862344111579603540828995534881795081671040816046388958017338221109174480118432694940731008530788493870128060959613244366687965258902858501214470469771876658295418090037328677026909628262120613529071463130515136695018347487188458998824177255669957978339865200927106854773058565952689449610248311333920292010102708203013504376940055351967669362134678051397126692272199400465613235323392120570073467521710100020439476790921184071098888147750204565649963103604009845755772440135879360675103918246448765797741081523361596753469937203820128239419834840756630046439498657975326879636192671604730127545686211836634482125140192821230225386318971042898718009468128420478063416189027662234824886052252868243246961670913438827142953349636731214393708692945152366827936162275854610145527698629679196117549615364016773716393253064613377605445858697062870896513310873324087765731814601133879286995495140082513682862400686187510619402720303541264190857681495807417555304071604994220216314174967708464800975851459922641707724529586890524252666480814323152067297908365578155730830946647983322241168087654079051267086139339650011275689519125442939904833239534506830089520884214732223179277362725320912893250348233938141291976150119027809840018567520570387151536201419169015666147601873675415129987738917067938833418456333652936354444223825165743561133785961904765536823728129155532695749430966197650328014620152722961551957116790117399193120156259937593848525315359305178867185046595251078672106086838400146468117789729314266922084077180704481056159063275768679903692561302195710647932724986924829001696630411205743412599805330829873360815274912152027687705253321967255187518448653500061205259967925376074530573306843371390122750503176461621340800546924058330683881441205351586089600591929422526729178592273293879206968100374889753116809511762695627385136710254103901423720397686170111559952644437311174410154983506614931115595485455147093834777122529127045882283925171752438920225822354166335549022506779393356096800856093674021579219371683376656832164560135827123308730497963050778234802292847418688913583528542180528008285387795111642910866972710041147718278035223097104827255255136029379254068306944354735000366904960555491435129217390512931007149151888426989550056661032832163383129329255744391590583456001972738118767157158378169200551756515113925876267194636927950912298898015792246866885036645541685795603226775451121272426780511239526396963534905628738556224515355509794217712237790578667157899887705702958560122621928704221226941214482490774706192273536106575389675789561608869716671932166244728416676722322541579771020572182561486044355848665580174623591351594055470727354794748225099774999346756990626536807192567455365000814678691283367227140174960838095563441139401081598618816028797895409267715295443582029769606909390498920797626387427737695060113399537868455426602210334097493683571937324326781305829910760619284613252021352858745909977493273254069396358464328216997438575371141888069828972974807764828270310361370532791031135663214355658542975557471500462196688968662214093390212788637630516173788707763665549816022791570424206215209158873727972399194284262164276454675292594069455281229973214127096896979515890201984318100879558976993246513190519438988162505289140024474376624061906481132621478194163572080042395423809625676425674555318058180412104255052657757195061565970153056412294046696636369579077742077386757355156772906916426388547332772535894730245930250024032264474625003885198410234032147506612584920324886228425046857037559361875357859953256828149134294775973784343660326417164098920343350044853134996537269543628458184983564604544348702207767769935042241483072042601127057962722953435493132843264236606279952308850503898567359324975794997064663651076340138952917841426365495920927947495014615401859946017349161414985860069021641387513899297571007245614852287116069105940532063216727781009760134980985894070226279835067279113205686949553595585027311381295834933797124942362825308515786172390006092484871011915974832474114198839213475874107147211732774161665950461598134696729726701528266814407411180837974787808834931722258866035247353282146127200738859170579461312375603100471760795943200700520512262541588645033792331780699836194064923528557077133517251286518201940142888294689655127535189685314942473283693125821014723905807209871760354442883968119592892599616100030452122032882138230983166016555532921679329113736276785680425276432868846817632036863530316071031581626478511923301004863533280466912987620877834434964728047912861466434654968647922350007725081619010801308654875901923993404252463202110968874059203274263103962089853613723461362237758487339826880883348248750975595618946349499847161737020450409042172145143839287431328976716587872147942401935950809877719151003889447074388746475054895890253419216479858761448940933637449363409469593134242278895951325528745915249769707191155724099642514902286801309147133088388356722068957981880003943179966891494582528215199124277922457577389132035312019614384123616912008061243937159506601003165282444936880394825775834961838921520432217556414422416673585716948306176392791377474128905933411555861319915649365000548655061941169721201204926238205472228655312882910560419485770563581267310993831718853302166271207315648886316490366262848511486382567298860945226097262582566061625828597243559754856602149761579447792310265709766988564046361933320321169878173186515937786222904361959728617249103640430675486222739290585614046451287324269560872641694196640690630862526360530950225633526755605496471138368656823387641868090536965178302230492791186930956682131348334637660334673244453459405372342219704575240307691396372771827811682450299008539575452422902336145581447975962833272862989797059175099007533730087597531306173687340025047376527846671755748251966108234847772256342185873240964379284192833148922968294058704178156137959937534285858671317520271783546831893216041800559907803584025262286307246203154036058193256447903574949441753606576242284633150669257647454541281313069678010079856418900632028595754675489553363541938667732752682940402266001916886777289637822702358353679994160586773208718514216798291745622437037361871120107344824992122892382426296937076829120455913783827012703884059549284501011851449369438158291880880387182289592078139743718524484148102026425784123496531857588213011524367615847220921463419709815417865266660021644738858007847781581905372628434573296543216919479466197940525722866581127209050495151425532118600159801783356652094818469477715937048113170094071461033912639947583351734104729017316734391572374271665916976326548562069335263429067360199612234698468154156572232832557568088159773237857171228611935395735377897872383023591754837482900274650071777959030176186118730966733162920104585184953529854264409080195829863531744050446105968316387852226367141093873516530659609238022577117888848995638296223564038685403985303464318903548646663515819826916270022209067562416221050513324797082700940965891264734890077156113321809789174624889847270941906713245302407696121761772550226224528888217873016655455455452713393578996549496665220606024197653396752865941692895687610520184961253511354696165575178647647072804265030737411833676739420007256201463846665229258885480561412709538500409820960026686987985781701983440802263563074997972282663758012992936222873339961956798878589039735496542951585659706106472997236413423820205787557630489272925879230754065661445771804869896190879594881264901508857949896683853718497607559275642907579306832991357661677646595442072761443458653168389580298405942858631946237839571452691361973636853368304585207334682350866479976970533472557379966642552855955905731530611174542269677711244728061371014733590409258893701592981752497829979465908352203995885740295580834776037028895795656103587248257324468935905453437587586025156848654690718068970688991674063321135527368506571417409660326004074652601932766626158546173750445945884655579043794478468944254591150423607269165000817097808427548779682628822922408895579836938266402449780879251958165968398088817365922088235987797201295675653534249818552721588023122556715032353467249311438432511294484096698742576005504639444250274074944149440630840787225585493440948918987280863409434553291914709494149986373822719697795592686164455007728080033797719625598430224383948719176535911705617100920981079673847855686558412825585250207856809628611078361472308109939940483576212610420528625172721250994856980304439532734547269975463749262968194582708667579173092814948986569100296442571736846536080196190356739798635798854675410230528355243679567716315392382319093861640320122523724347007590724373453035997095125208572663552848197690250699764356215601589668198478128280858733366496031908080520460491031893467464965695541274604994225607483340779752723307891969448312566925231329456513340924849829707753713701231676967882325469455381590806506421519374197738445012425233947466578801758974429298363977395861055792322889493503957266268949205605389310949197153558420834354937688376809868227276295207005221965314506691195182677780046280989491524668172923522970332649209910520680426730194977455302197301097361660279522246177579671566842513545311996213940147261777036805159692331759879130579942185767119785807053874029430702614948365676184506344638348352046415396240718411412288939748984690632783689272429881968666528168570213893367319019645172134804072734025417441561726589108319533359549132512220988038522580180508506513524907257732492535040119123660353104064610270898399524928788984319984642279203217851675012688862356319961217799779210267508869993798414856299077133223592190114679885483025953523339424750352794189104759913443299359096770814417392043379817474099211677820298746879492626162647755976260724379353169990255909369827418635458252181035739084779830983631425951037097923027509892842906514888084920314446263383307636501722307763742958303705432000537993771455723378092594996626310025223444155119552266549558108225320935584943569625966294421048317415244869770436992805491826671943406502794764562538123305224453886652809394078211818232848363910321381999346520061589065831864011950529829782094274978629737611637432728742620572450638099600234273765747224439770607917448358296056856480481046934293743828166361392450971281245291621908406562922612085668594343618733125012847861493117681968031339056335854761981749565581373969430811757399884401016813387159365023484142128452522483899065495226897248824430798007189877619932531500401782387980517221903693292611004712259747939305723800964857718483336940291748679478397959850689800399236696264314731838119151325562120058315924090633110946069923429390955024452579126237213281022136895620930587925912911223635140755516281606277520153102866723894595635708397740530144313849195221599293102628001481932493811404820099959220320435808169037604263810676377036889792877138662447591942691585210825633731784074557033597320422007501719906447037156578812984545546241577315150683282372867242700313017574074666094753215165461959030117999765838014200107343830168805079143561340710319881521060510805163752787785541801736317115320869905927080107285390607979147057835658273430142281091595811461634514927475697648636633615359629713712276249444290206675739102662472748937067861035448959547279127491142678337403491342148914868123554505104598452559769595382500169498786891176382029337051035082828303711382537234758306573243022695555381224881869605747581318795202804851504080762002730760647004279396564797854297781424866122279133581286932728129478638789185084790926359875753389520702390389093922210311556103290439217975765597285514250762432635818940557364979510833177272151339585083355140781931989355355397914167034718637347909668376026395498612809913807394503789506652726372517538977638648263569305702003663608618828898969885575271354377503412712911717529226925767059219190001101760961035620267652726787748123538838894514819886391017256056327165466142103406409740742001323237635318214386087587210078780545947458672103517682882966514968779559672919160015000303848075207267588840921802960353281477033454424824282487030320487834140224722980066749313202659861813960613482849604390741825945997106583704920597261644429343422575294483528004764599457820508172317067634491785904543979928017597533575104118833133753415004624802671946278325192359915665191182395468899014120642680775603346288731267895779624913599788469924304602231962099976348171708863517028753874388366625160667860252153099445727449848760203871913771298165903627597021605559500609803525600322245135326562801127788810133183041783511188964273297423132231655577670225337154867539181234522189868292020455980929295589240063036989386102891688738570760573835368547174139717582623434293406733068386028326461680566140656292913503284775333796159748677591199876936842096326827527629834252129743071446170040742343014941963911654010070399545491314923989960629077496598577318219316238374998519179304206152970083359368722195288994930428036271546188062760028114720861373619183929605404962445972614191761795444919760618213015798367991303109592987918641008475991622140004486443730041997637168552981759025710079631246028358161263590530517860537064532022845833147966431967583986596522633757266187628928765048230389059732104486845890011024876829971548525131995923751321732721203212564506093147880585414199777930600839940412680253833978627501010534774462799144186110309517523213893184184738396908170703221889220277153466694292942065518034005334136739015322461146645765934192165205449603084403938570374761780263704804963563324438006730589020902140557391848577381205060849721777122373348828204906030283295880680743939890295987883960128618063567927680955869164180114247539896376361008127812586908008130753783627036193333327840576085268501300653248210764346532935513160377069344092853220796197823653395434119880531058296140167654576910321057198517312638578862754207378466449646907205120118606753304763279728140628279193439780402083400988861291003213906619895737100961160456636321108709680155591395142669926024824542916079669969087364620720628216781388022846073957935301023760594784435489595342327925897081804699887812404412481990904633124588115009337538603154297607121304695089959534687189103336981166193125985771411403181280028477270375890258502973612751568094667648534423970247430826210850045950066913118217668128787364529376553398486379150192147175523766956470358114407072956601930043051273803843992486181246891082219495510823777425431367686378418118887940728965275181449447152001778679540188982641963070312702985672660315863158333136826086479802949145660073369932874833877483327282958816939623851069229761708586542569455654221845870577859628087653596384565446616085649794421395611199977232521978660762921598496832655217150187420586477422056065420575970055530422645855174047415915615649506237501426564198083861007526560890529417229200967792353387906769135290853716290326130315334964351013671267859866186432782450308574909107052364235579233023392735457844424671842652893231888396309645745546447264334439098238943303151240458096564203222271365575947898624843055748145566776872185115130431644347781429378009212568684844272969875649846261278184037921515890809251230671525729251678842052429514766172662273764715655811032820139714547797681508676674794251546562337940596478462847202185852365770563454735153708395803869973503127530813628915071790603356561554712717579727468281578044182589838173656998897616054147761328278918409655465815526566229694955916990982127976773925689512635188991990063882597724118063835424989852129962963878002780053955628192885396825766581754612524079792450653705134218089571882729039678767498865095944110780941154559246701124243311497029796160030022118385558505756029215839566711052983827815355806348756969179201413285762149284552877402194163276372287481039166623773592940387972734154419730195169376839424846260826749721607689536749352967898697653465546421446830273369763653626957188130328387563957051167506353311529457910884441294851368606800703929705631051525654426312604920928086152096940689003929255703451882829271789095814459361970759880133457880272048210872896867455394914311181835981256373641154354643233119854651516767990671973378338396128081389607114413055601801962383189344291997382403685090238379869886915758161657676886850077868547499977114728936471186714692646416291910210870471699224046334816853062211849855275707627560496012527371856944123479365169991022974121022543870586205017971137020642161386484971494736507878142693427712737872443762780300941815258821064177250523121661507704471775927749401719295819853129769676854201906878389921973138522144893433708028269085699819258838418819799672287422492965887821423353572644853961840697862468630577099370788370921346241981281492499604902973343193430985444906893694148083287256774802330941365222592377362079021056420059286881056908794444855103671732983454598563268414418862434474191355576445680980799898391549288362970822807687813190906838230953260944562560261980087253638619426578596346662712530659554812761408137250645413699746431702772777260322705682625254637249970951672845213887279227057694071176597955748839543324080092976625882354507912871033709760463303070117535461450883553129300871702623558373113674424427031800021026658914647828200278977735269717634024876388548877424923208328335179312614358976611200938282377812377886204778484199888221644211047288212247470108510207315934543536463543237631354462448468664060202618725062284953522644938997559892423235418759826024021908624178112362180069496016998447150065384814308738148115226637449768722580362847411970734810914555048217314136302374004444986059728677039641990935772916856968510342873811355955983551310119806857799326963979448620625660747806457971131167260198590571669183467617480378725248631174251746269572796633837085162061461903077541245729851834390953340185241415690460889654551400932887492643726909497502352919284072352965617582203780972552831701714221648284586371379202039031020304017021685112532059917314803410564449254439317628603110538809952976512852447180586917430449493834520906760151054304290075845036222082919117391987094516308018309705901500538605152052985118376068410388822709197258975244070539965998910310099971810963239160131859366699535117071785555052157298792014342833769030649269468934115575111921949025153027521284693740591716535479618519243973620337599035543088115225787679331345837779939047274277548010486642958842284680090153206943562629182994418872348856823453273424425993637248945365180418542719235400930107746066633362724952106286700793824852849092142002945917078866929120585566432800464425820604175813563579565316299017968392626978243102703580119250095426233718636634929566214891989787125834076919860874086426382720455012245987836569539522899841436557415078611512012721293055786752457718566600149241464625116613140445139588646335267721466138492545394696345831261680470921298708742923860620175052801488527819964950048873067071068486178781856068140438471017375121910559025546242881220311111597920672179522534961262295557729040656606169470411079772066770998365223397806420240339763145986927167888790392656445378776036074648866672658249170643173033709022610247338565581113796514009551614131875891488260591229570866726840034140056678892810713678874835200699181126970128049315800298277246158249258177192530930703387229260261315807125675991832808134092254423243623116773283862256804399772706182560544049024970603388228203114200255111142622493932038302125197185736572238547886494520100332210329617768230849699393414310477306756369486497987284554310398654915669870093458276443478044167008785074523712433852489780940460536744351002257083282551713675549763946904417800990139604617789517260935105336772346008795941226744866673752744795798012660925656954373240423180776255613748859469469353719060375121479142093779898744644878729966981588738923083327701645790122186989723766003180373761665816698508702134321140609076480688507915632165127053085649547005960837088673028865803776871370990289209675137048434698804337105533430906294773331598538800753505173236932053958256860087292847482178812375826486530745472919022944195977857470437062157199253148540401089658949760900681246709475423714497290458721642275371835612458865017805454998923986595977785481374558940462061084907099200054751444607170400435562502245002454227673010034769582642883506541201955061439815729043451953345079535361593854819662369612433467910226329121918683640292275246948771702495622696526464681998050808966910249920502514139458174826612721990011057204412235593316922772704128645582610121647724121961328441226244051813801655712770369381908571300623789403597126753058258985813432705027953606849705571637725672409161121650019848889584707978103969087662973621480391996219094755037093156445028810263136085290902685419374874286903185541849932340949001832577038013610071711362347693499376129972486883166022745114950983838858641125794891790909154906445493099015454308244883807058604766600262294493168420137813733979517114007525026757601052214930743168292888062260356764552475342964568883169554334832552963597559622032954562026745209273238187132963361597549052607260252846053006527010217687961919635641318068236380912596468594470738881727113090419077955636837711739198227756364538653630208344053160055166018279864165104296027242815093222077815510530390360502185955924151693913660279423267874955837773575783576534785150701235019759476636631783160724848142444878008874490500135836918330237928628987907432127868147476687747713640313400668237144597841936832195555586175222435935530217099991438009921972676928465768514285902304542446007072028948049022295505044864370200300589833245818084224565252208381295075843022937322706913408394211817358209653310085884200315674987521381537734910204782463680715724093095204822163278390588244489421024130447226834307088952878152072020657892136497846622268327092013749995208535465974339639446571989745540468701696695579667282043872250492523445931653806789245113947354534201859408059971018094186043322167275981707305381025877876715166724983246835641936601681703807981754326371897660315159472861653753243814963729663274422295200429507180169175547768377858140363111277099191646416013716675983439374037498859713793980108943622406635947628947465766186492209689546382056757902097436913495070389235961447091844522202572348939609827360889102177243141319188310393588669857725009801222360604152986750110708006251893669829257649951495985914077779713082258896809463337164027184866533481649300178332488893063483153516660709079550659440230788149305079693013214710886752400917778777710556083147637743097663281660050389021527627778814427938770212368707259132778537840399486038885769302890044907618310455033918403970866223799792785188273650056061100277352923433909370553654559541596427345004151864316384139858257425588264860620304397635410285684645943653955574935989612712151723115605439382886265770829126993866545956212311079474624466522451763021628913995445051689136228835858463709490593651521728877279079043781808686598032690511349474839002887282217343623055651542536189527381981643210386639834109901012241281654792843495117480373597370532350969977720297454328023044761286527407322836641094739204813298722118886783613458555472871543949673722696312619538125030353651356461239872370463974821986173892096547344789984426787733612077317258241282435306980507602135015326577843363541927297895854118111045478756068808867768659311604883244247265452426478606563593272940582922000154780088116795766272638725818239979890932601108780320144890302335157734319707504251862702434022731059833512802364652713514846096982086801177277189993323464540665397879615696173422353279731561600878591615471727710216280018152537511622247990695457362535947432003831957671130236083689361047500431270677694523082164091747144587560298022185598666654674508697319354397762522665058010202955148429911259768394421056300540944211492717204788562778446674167823407628142948092222476961203672598907920737516745507225922737891315642878814796084578841261686413171176160297395018760038379222630268770190215842353023531917600694102161295264686556077642718600849957906957686800877047941986638468479161808194552525494667729888781216350556244818643062660425180277086356849168623400572319522051078810035726547847751836110244090193690100983522715099118254449812817231408307628329765596222284536983587490249626484914482170074743067236664426266223194958018190287076943074263731536328642099906246220548383583328761874421330178100660724462037301912133448641838118174382399484499863204383617942674729934174005254238960430520712581877274827468701008993021847499127269748379003994862689189331706490268542243496771964052504843713599345482170525353407139323734972903071881272114466183587050878144183570000420424433867916098345842185743826931231899867880158622839947801523092455043231770781980519165528116347448135064789873440646231748860480770402159898415081770610854330971376684427416539566216102245604376973612968418772853387017181151900917576057856107693343045810613007796587746898542080404407497154213670735470785156369622672034546036268794506854440391917186139352478107398150639074359974931029642189496302884689948190361311748557698655379612051881115327191017988169608807827204038331279243121299028567532127729814497617815859002865583628420689501343420659166944004487649693887858438352385171145440795741218800833186500971627725170511325988349131695902111046433795578905218221854733997005417888341984075002975200114213983341164614419160720137431457157486482039002517596220711398336874977890270977088685934068182545256421072296698071714911866850198204955930566337578140665411544393197732698200689311937589701774463104731205541603073937019238514838275261548315398129781894889278738621444497961032809577059966387957089701564613570472067919544138463517523168825467037867771671437525674735716665973207426302099368696796938923963768361610620315598894922341983533793135375314841040608853928394291774552568497410593414995968908829701494112558116862000426267440100568637802223577924111324693045972653134366705465413473568659384243656466341955789300536402354624624533785354602624891261082397226179296210631001731776199941813011588766239332457119613149042140205016073453004966054109087931374091400339372609742485980872713940659327112877594775967953696351617711249949718024443396643808982272690031767132089964213693560174833654610866533466644916522276549477960067997081170574060341270352608037773947855607858841819380867469364676717389270246459542885333745069392139539002309420144929162294780058741959853717105740761669083522177971461842561918067279674763419547199213654608280629446200051510434295170707513614343680198439673908795122414087769744916881718347910311524211799984334971030154973161382527777085917677957231195906434063417290425616436315973945156055490536249175599445227314535380869460520779352383876472530050614343726597674416482616406322364659677645978019058773471670280766032941509450406326801666634466454579896886842776841009159762367546703721541423033874886420470420901023372271759858416581555554264067878643363011262551754562445658901412816376719141310552110754806541011082198348558851887099109008117423212403031254455491883102194412903635781665874431152319997946517648727804620100184299641219795682480461392639475178234028621017713579082208194170565183768630738752154237207038908322407128238744280066521817890810911289156195531384968893867226155874656284417792094865412703040598317882093855986681950579396310200931206630225521793051194547863709339924206861951867814969063019910092682725473209362115444259384624441684432303593879386338873198444588655999734129544256821248454308259011660604704826208000888657455461798540697265876136909996516142621320002394500726940283251709686279708789611988698038592242602604074777686678693292705468023333877467968238743103672894981212142531025467358152931999647375008605947743490782127966548026261888294028463436515871237547257921407757181812645432016978669573728996586575433466427500238187587118024620018903232809826047231106588103461539259247746322363799425958850361267150984969724400565238655784160658823236682054356293768818674094708337826280783258423630273425091818890034963579681714334484236546580356814879274136297312363853255912649568290463573445423137729084417974592690956691926811822414222683911787910952589292156346495344479262778084215511843394941735318504715962984432367240932418122673899888515615402478220069133710924227514402044373953205371719285659404997864631904030294491478669604911698356146860581413022433958249454095215994904536515743972190004474158328905352838028094351388645664858380253781528783741588429262384587197347642494436745053472118120157555667898431204552960388514712009556028564978868440945304401489286200135704584492045106791665199438834606041069508479088164468866722114204543145746807345156225194533067558043837463788641420675234628932625913672772645269393797449225268624257660333744343897099079875234519936858185081900233653117613520125045480883872075915537195085290313169117845970720561608211463534145606799523110292682234140224066002716070853481581930853415608094004480660979158796077928974351656622621135349430266312444455044439504079630034361791993988763659078794983968243048211244730217552044963592987723475629942651343937800673931702650523905667838545298908393304111120281002507477905530703408529396998411237647926170549028520809013355990258988464608620202721047907526706654549896353210496378235093078614185906475555083269547815351812213986410214576816892327253699004709928760645606501304316855728369241957594926065264351411303569772576646505221291176316377253521206600946891117297389606743336355047404248305430406699856679535525310619146194176320411364224211821645086067816008205983645382622731207729906570481703770829252035426239453303841524655576598735896989321476331793211598344118692962930840400383608314368778692419138719339577096557514027166339356155004103876787358343882257767931414417539453155392741846491763773181252616281752128417633266806549752366283903810148672764689451727260570836947839772186250302952823511334281972607501813874982086000128185103937881180423859063381577295553786884059048325022041670328679792492656093402842571205570631398827403404015623167938289252276312397096029503098826180998270549542654573657296970967757903913343923862579766897802376178279111032791773340753454750647657216551918897759126619845608649631147228982992793172562793633193986834492533370888969103623853121636378037216275885428578202145513799805261967948635623360379339436167505335138892409317423304316896001385547697558730025862390286164977095154048252406819189690219504518163273162187736833249473090683660196477824039490630237818110861188266951400318611573523863923424098242276148946705750785643249039727038656444109891295859099667740352016638423636927190058524917152516527049965878907449384593616835138819712360081023973427882744044779638570020944012933815831464591668701912613237326065817754504074116553778307612897697018878070909841853485654056432674403322292057411656313946579659179192791843503054531920713648099294342612564226612863658217022348624752257719069406644312733627797093004577683121233863807829845621730381254599552621565465000467945261798409281393027916359582760417623358071630065544927273397668283983172327694377981335354089659535710570901579335997410853591917026177473315362214169487435445946955304726887294125795803153184325057110924217162180705722887654630322416510066082900572523495541519984787472805360898384676962471287402887348118260288481738815358071533759770019737622225512031567669360873151609220694587893803296478787193484996489684971442241057371704280367886648193466940703711903838377457041538527561645886225060053741350749194858258076705871811455129259182368465041740683601409442415970529454735646057640312225939085120003709847510272361217898326793678470321899690086724351922226628674293337716716229210803726202233382118865794850170858201372728026527306507245309173708304784510476705364974820399844050041917010190998351071241781252392596406189151903016461335994536247722905651990918735254199552599212076646451103519202432636069158380709663348843905018957569778510375397100044104578023083442645144721219600918950670489341564527294294020380725101129735405188055051192562614106219141284872671920618866884671364962664907427746616556717430957235065740534780786353064768588819556174995339241703421820864665295443994137013230744841034420877073062667205627149710414807668395667669271801853240851654813760575466351665717831267275441190166234663940692562936121445652271657586717626705558021027501352058432566673951226760135723408075818959945517080887754341260073012592736583742603391975683040321898690350739047678759533065757095905712129517982614129735007922515829072502230981013458002327853420243923916519688896325211325178694155445974539192552831833284645310357296126809491468374678999050743836549386357964233919115302767511789835254548518742301354836297595865809265139684195525328638022241239036041541445852811086586114364232144478562763071308221188252730185296072853339502639454270356408364669036640534075663202683740686831843181335247143592747146109439525561080883526111048199646906396096246836906350216023065649627480081197656596074657403596210110372135907919510981392474799105413504434197580663664754804229552411434582087581683710835364752276681043720861122903354464619989351748094975195408733772605530131324952185067833373374855670788834582517633313163152765702951230061667441146271328949867720480207958780098132025281490286029541645847868003427341432565352680067269672758648721953851502921252494720290041079017034758196824489745629957425523567778669317462023314701443303269401843347034887570007409281351526237520453625621672349629373710328416433797526960514645701562869910850626846395553019121604358773606971410980531152309599583922828871479898714316458388684944250510050907107697201962709725610531457745385672186656309382061156492097512251211057134419759120798253788194275865797332519423150901230450924588149614694288348564982379312090872749697046448613629319614987344524759180465656072560166254573317255149930536818797516407179461109447908197855520538060053030856728101991706316557429765179632559886819304169570633870916640217306341818779239182573754287134911548488589087463661193724797412420567082396929969142683320280439766045738799713270340792276581308393645349820504322441794367950669624115616272786477040406532229403520197001150500453471513918911790579186702913752297981549523146692402564308373714180236160540186354061703308338963494948171884261487114407583338116837167675488016877502262515039091403879770104245934779112836221393730807152257751854583991121556601842323011627190303857039815473705820761163206038931298707923543263678880592084662350776139027291252101787615678785574331124127947212274427557453820782065358553938726819442103130384297413386775587074717985466766380449328209134462635894901162781363750997782778465895584639066448785464536185162204231711636878425131995047229763457586630828358900453965333346330974703913071366653842483496945949369264289407597935312240298054200529455999011876239841423083286599519210444855072694573035686692273295976192679395217211185922904080221725477676754430790033667300311642359919529136663446633653808344924023402055441970487139849020409707533156381307823087799613894194421012979431645000811868934883559729760393542672735307011323799782625950191098244460149116026826360385789195238259599866697267839541143938220446055230918541803666518517852830753498525402827825516370083785822637254334336725230392724077925210784978368948670928982245284328765952468365267253510756814564767688629230412281824070639944638260563221325956580022929940523296518490737091855679736852925923376805943011263192063559817164578691891982790927374852976416990778228053467425821897533042986760736797787249822211315140467528605868607145891814521170956518187758330747457555506281001816176823228796356252270438413883109355251870739333306670678993405336299726598374201834603919682180833293048969376880573124549022327312821750783567668658193900595218258666861446972332424808159539590175781907761762385629426153895514833117926356313329741606129741251654866013384565034123069312485911095820888432055718881294421611262901081888993574804673597327624438471865778421340144523855463368248792510537667492503610739925777811840722931872659369738986882890500968369376914037836860089541550150707257421145369750656241753143945900674819781192068403859704487777982470465649666378578938462451164273039073511911156505396867889757318373227974351793490382584712845621442923318085299063169300716757037271906456136525019327880880152350205072814529167920137257764791415199395145723145308111805240212931117619323977374540553407754107937857635808809415805280739162809004971500318734314469715953250222156000652822448057881264879641291988386720444913622712241535202554250763279940899049974577549741880726893268509556224033914813455593098675228601351901161330174466893540300649396904873104041220195837319981788826545715917559861575662742325486866174829605815815062639059304487068484298031485453709321525061718785727419554377085100273052829743372001215425071188621898294920743935968452153920904135319510307467094692779965735139896011730461051429034113931690818860308100040540287714413946319749711270183311276462661312036825419239618369019979999383381147460389900495023297123595980013179727053829900803575105087479859747258317010037144243696348271788570782801350004254389738918616268008794180416774191514049148036343025331404864114693655190665042625684033770662380249780504224755887586782519961739331392053556072518712455504677072886304959403159748138090219864536865616188294311152964143762128166222934951110652296762554417018897476686242579149700942109255925903225717662262828127358372417293720283950395787614465212959430919667928316702713559451549969791911007739350519449297530855108752998855315004763497206575546369306571384409983078427426352603807677320838431652046999497564252062498081532132164369343030549959118744151206704657919092930720805307543646757843058382630088472379082600361840241877560668096501455899726763771866007371361551538141289328741103608790170276938000633996841937102046451782061752393846055823735788650021193994083789675525693365167526510330565236146732286404176250649256755167705020493531658315131597601469087577319790444719081305976518304830546791742808082658860172015611961644037488666998402694837336616339479588314506628633207404661410546968362645037976438242474015902806163943622847932470395716575046809464239103703931376096146036572600400834858698439388807073753002435950897052315750187613351056486984736580825463067160474128373779135883557039946830135159825805273832250605739417323935853351639210050097897094757617811299740118058433125771282961019415479889989578497560778350765702909098207434249419540654353432071758792018980258671147292406561955739060026453838362783057787636631521254243746028425159554637504604951731125692004742908230272607683166133677856993079071658299306068350103145984032986360767790320138495399610783238114319397996578706896072980496980359824275393521175327462001087034050332728220570146939141781907128489645304300027578184794936301658040522225362723134250047043179145025596175484698329087498779266189129848630208552468115468908154718210914871804782217740472497098473706014181507953617535084832495833683765657140131377657184383171362118672806649988223127673435262792435697007783976475082410725490674227443684463564755432674752498931682872093787259083806353735427439008994854171632117102185084777816012111921196409066704008187119298339153387287490282250763902918743768811093665597921718174338581717000079806171371180706032200693737532052855416564896102811954329133735565776583491803478476343090761551167309537542847716541974158445891296146003244557266529261426807670561690443932550498456665068386393595127910575391971103778503291315589014501527563432734060777812141176299494403585075447009090668134693607363272788500627846355211041564948601893184271422830443539761129580493468778822549203056383950951072874949464371443725132617821834013852371344499433008484113221648466190726474328446560985010173868147973086188163764204078762856091134200214671883885837927837234898022560479449125109588072222240673625020111391112733598024054877906895280821297193021656048257498218667777414093498229908200342668456367271859498455381544104873508170393637019120314030469746910062892992731108315976657913410109528909501683204675568159125022546528577542282206465359400010012203413867467915622235851737748261506443820807072191535038278053281803258091161200174778372178228928389181614229308641590774139713952960923357437417054583834107601098282388929387245430606744099770347616180278260060271187150996869074260481846845235176554218341733207717621069196762893599748124375877255445461067772948836302146932871957525537904476334108466679854812336862005864578951135297597458694771445950503163099279226752447621342293517001938094659781675118294422910886004686226013050282292037521397403466501472928416126692737968799898350692604894551415306127803022447938566377018233934240973003059148369991394152451372232355758629165735527322693868492231580708881884316520228889561587532854985248542292723765213048963128645820372950696672421660367358861717008893730176324736063029138209670689826711416422226701854995287980739243167238610362304724624791844510894343980296478979018541262230860139916269060206303128103619900007375501586683999017368906828745599744661410888918382237518875493128109480497358554514548133303638525226156650817248867380275299099292548788441680319906832755077724359136483835474281301922056324165749308973459943676745621571889202244205378582377998871111785621947612057531516440098493133526117975660978125881408695989266723809998223077085161766205626717351749215400814774190301210799334374414978804178623991346116088568813537630813700085601024208772807942559760073523735820672391501688628863201578626505026991504975523582669329982477650852757950250377263148701706081247612038855516804562435268486705880210180498550503303524800856714728186559495453659186457782926071049938973268252887182314078840638097571953836879723809424741359277509499263089053874289587147253189973866501271320595319000321239090876413849266354026886744012823946223119025286608380928883287479798562763013495626176313206920511224070443708240133173617844631645590639463998338855221155661514718844301059122635054823455431845128121968133635087633433330182966468339935123961394258543226631885941718057090121034043207258242613796307316289749899789524985105254597817631901522662728736992239481570081538504926796951823963390342123179054913492942973497710097286064312979018868847857150602110813627183566213627461665958114136531350705642143262288063863963914464135852341099265828371616596247746446899758133102151408139788111293776348445518780993166329868933034881143161965786730965889329425051229383103905961846044206010264813073127142565081458067426001564564445006764563764097285115107178171068371584971447925220543295080707140242376152859189718052486993189464055571945942090811193093953835559569730410569984786100894507037086253050158156835005009361723557624136704462140092798112419222313497547061522856507356938630527212253125080533682557748514371264414706827703627066099488333292453883078933390724989492253259473235052568052486579748261741931183894373462225293172411159843013207225841715790590529313943806298762278643561836810994663754447447241680401969908673948182805707144607521202579141634572466299770342321434591266558382003419957725031343244266798143079318909066101466716459407677260401837642553398560919802457873703150906289486645041425767872927667808807198018383796271800585916932176205158896300418162761636145871009230337623758086876402970309846659541898864051110121833494984548466375376377778737290196531301516592678299236232467256614220011985580077290546958537472195995092829935923096409006457910165011973230576378473736266512492232359564148659215375301339993334580964039241086077047774040606386867059622859042166600403071412262149478922556291432642835758301322031755899011638692642120483899618306264657270478005311347726351408705202534679601555946064353521207963342464192793395374121328465922134260318752435600178518048672047888222057313929185369078184706867264121575525269675958059441564201860385902351726508705433549850690522892838658393395810263170869783441449892076816228042455817792930125157313546083291919218307240795625563805796356136785530979626384602511190559325162207032027146384924845518939733395409423376511297477128572813879313543609526984768901740430597030026461904693222039051378378734062095818921110690928077714688442246458155555003101160940113247158737667214273775226591628059958860866909958392962407504727742445484409229168366357524009714983723164274684581818156752466528289564867283159349464394673947247833344661884748947439034312988048687606888040501344185853229591805473991447244975255451981437102026073146065781156968568505683840446142460922848067687529647050370350387209233247352874236962683220166935054037861404101411936172562057066365457475850148483646373051356459688444165451454803641493692967431890369792189487331836173935924854289810307353767892846988764631879582486515378316730770347270811019284357769381681453970532990351148829813772348648360081654317809445960970364778522369501484625278617852195544639287431560616226290780430710202209187935606484144435533529416771044825865240518428734820141004790206122139713119357566351371252787101813504930012913427945689099090975758436644468815172107625962812035336390639648189288016848212708819263999756576414634729132148734985775336471552914310142745858370432284954804976542336497797658034007094509141387472914717464371612105824646908876688174616659733808316485493170022616581465964986661463989993399610185942694321070190434391329817981175437305229327788751464905413805549915152925916084700228237297485487905100977007409458562578033411337080789616617677393316249380946043684075375694115596573242200576637831849889115317061661177437113835069676687885494015585960277727575563355855741305498975257124034415562543523995855162111581985816826196822871003357559255402349526161186846878017089079550422320215651254267894103414831902344205221671351416619052320294409482481632468693609885818298716893290461289143758968544159348403079322856015897952675919072156910392842532240220298445473339658152813873429982399236012538694278398209770161455976476190618180624317037373314325784844782736743682654494428916508933206874972835370082711841617739932054818040112019105850270432179275752318273176342126611176822867125415727335116206305181071612863813792468268402372906478052470266818246369189578442987768861150278925557075086703055820732923121040918601752264439630942152990654716704782336312654587172031300166290346753826502024581183324604546774827303249327296972934706927735353105784621647309322148730582975043228989541948012185280962390352198148996356384581297052864039045033971560445767256316622243758589970127525660855241071721539584856025239366331611449791535967206177901941433637073586112710526628839688330731060685978141801006034122612499905175634371831715972045122428753722019599221098795772150456443507933608948665469280392786378803909833251921064225027994273448927412039521904656771544251111101869675176117480290546543953952194617019256995739606104739284613730539505582453649849155279024478305349203790816622438468394574207481553373906150163581634178028678743147821108625450957648811429340988200749552833293645772923249149814783552636325260699930639216993642473831892669164962728957558701133283758095059643776488254314542469166651861512547622446576575107837303078091044492922593468112052249976703692119689097764386724649708940920531847308819352805507761770116644994675470652504166485998711015264060444929665171322546246018972320128036637537039014602580096366738571010356449275061048024077028351938004984699208484281330339624040155893537909054841416111154060788115350695311948058650216299392571866446759100127452677573735526810070365442466421493878855503509519433767813106467913677809055391224250620959276489010949392342293485151474178404282526650899398056613367537254395459885692444704837674635649759217285274776978181020264329882564728488977306411234977338186913536617498090781422570836252509709794777707700566902555669891183620075713916023808319583062871904340999906424717953538719476257087974282267134360997385454792666021993488740722447806119755238522682487949849846443096665513800184967625741570579121666467917571383139713171894279147742362327702523697588813323129531565069429303146654289857227050742383114923569465455422328160875285370797424330131743036517267602697861168081983426949911692031036238652683716162433653646382738569138636369952399434508978180728758980072911429498257725813607462213429886193035943141329255010797529081876158480825792977402028349604844993794741397717731833548530434678950930798585325644144566778358556988960779693790662424397605647580910436030478868549310857402034380756114756761438325389843238533940125889870673985261986879304421668402258514792578811325653268745837386249642265333845270537558485865452831397095710999039462614935043326347300248223251247023693082601503004224321955215843715217742857159812053015101021421123178099585532011207879037753540826546611521490965020735644082188224241935006089520311754275461640672224646456675443889957922188289705827034064717473814230289490221019213105502034375247388945435882775137720436722741247582726084873965263739092009041122445690476170370097793975527794013956698748670698710365608409533583816742382021859820116049882747895950419900862740464509686276852879971926674890941069532965309727380202335827170579210346202126755855134253426758233799942547430727236099012777123032915201094329888093729020923227674784733185831511069713353378715527946748017740973437219517340531273180350083651575445547076513224170747848315003708856865142003334679223026047227173752998038232660370089956394980461116733201411189301135685192297040886410466091697265276864825408337018572611781632897214423147933454420746611764000733594052277488199405599852549256147256192161497429094889323187312199751525476838802582298929517278418880581715192061435206646062049743457710257018541282910018531246808420088814601756630138289026893520539710624995133593566395236902927400351931313915262174947692630733476733349690949129014598677868102085830451674435469822381249223453275959888820051656038254589829575954949416954506626873629653681289750417102989077606425677449282749183235571926374579061577519821663023494460815508738779481986823978932491021601571961963635746234556231286888180920775035710740347524986738537179587014144601116028785283683282544523127539934954654278238332444203207038285381158618242707384067067893091441938740726881576224029127975425849838532779566943617247436233302941662470734615108346085428759677167006017495305616957500017433556810911156401862725246206225056234618957339064423121705477427668726534111455777991035119348105191695833969319928745719930493640534066998066014130419204039640376727395644961068031646231257242434385983940189615863058888158169149344065897316445089411493516781669931348926407042519222938402986294978924754173071130018742969816958968602013342354397400924902441324767731772272330883950380514201385235264236917385659901080554293135716927209167521868612095700083336564227101818078941029918128812515732644931941903277801205320169302406844456958329328168536331468445798955159020019330514841996432132275313246223016271599256111273855255412687627338860501745366145222628131391436394692630629954402871481314490041532726374198123396565688123846427178073725592821411957858405640885108633865388316345804169176314115237285872212699483018927997467971028316156853066545649972959883151153644045383903828730288088556695930220184711393663260123320872402612677457509567768154385406845053354044886886803828167311489360971173238293700498072766845890556245791522610861209054070477286116052111040399483787209976856316975128804881039552302751659411827318764194622328440012752215684501144634930216726596274612282873779926465971774386971452279568665537274386196936704656220491133927883978509067333338266611956544476515542702574997765184970383722182883846413091700595573341520189477564686084853911953404766655826702984401529990874087973929611389400076940728637625369281460804624677767268226807568285409423175725275271714532013750201145153903882424078471039689388349807641400445465436675983415111675293292533942524212335113309969958821595996790155564955726604095682158295448290621705216970106403280349402179793004611883274973353396270660520169108603522654264325309049194994057580483027986625826049638308078266628947049460836678130490640880595262782288491121029694669837835397721283342519663220674098660830535913820617294011885023177115589429489908033962570942169216833716289314311939979884714864088825298136854018593432894162648106442577652674895539331927018679704756165994034757808571176240507531112087465038980430438220471279263275555455061524260442532934338392023443531410896925348014817735317235450932205707317913448710521050653365164698228002443401865399283481174575568971862890643912406472656139528599294310797926373439540874517981717038701802869935507470887291392311275660866914036279586394517327567758361594699837422386982919832312628723970529582241226267865403151607977240773726662487342548916866622508973835011743888901930951061740545112844852271881452426198463655947321131597154436743550883576533786764707476188681622340256145881548162073621750880697650506065531049438593092651390456837162939887014698600290915225767937646397608999679918236987174707777462704093371692065363579302796163013245727360237693828027175001284192155249407850323072689361457569045833637436497395409645932187153858024864549567107413122602082996699689242649431924839329575923177904054306294648479427420091736884368370823318600314761391988054240745716206029489724975198233010842811095131309765752954680804808751885044236750382902875315847198609951938296043229361153130976399082035450389655615016188417650080340777227795185450829448965453852768075537853596185859862073558361237857063007810687948381280440156220220457085863388730364804547701615543193896784828909676132881697892904483050674093471629613643205199203677822170176890104049760280521101088624171293288094191830104589877773098424362868458810570530076435425442651547657008137056884646038863258731589916378350399936238005160999492806444616503708237178707714650773519491448841299815666133564907382559129100179971058081023543595765683274293807291931975081729210446694411796472263806611464609399514596145606436829710538931525788810055627296284102126606169114307844699717152460087552043901894964511662431897608436539980432896167276457828824332420118922699819019591893314146141013660407928001942456350294336908192182330220697612060476665963331406350616639580656588102567096774940363292751493034365552164265217570095364495160727831697928529232145938380227446476179563904920623430761618321428119381565728583974982116653518830169207536392106542291833935880982951195097422136687767458897114028778622860228415747134267601520283175224273925878032573455655650306144819031718504255662314745019819354366301431524486466813593508732491934384690128882257548898855906782649240206332595847101392777650735002132132737859430452109479993573371312452352899124528436050400441643131180892270750201461431495960402965670008404382290076203658069324355427855577904260007899295885075258284100161064041193917349412674284744317009560292612482129388159370361430379530069032555783827413684353311473843233116910710810400744621119965896860469372327707363170681091891857157954173748186132127473880391300423263103519459367656810596162974098027904116536079129003498304763771477341801912366269631517676752179538460422429784791558759716478001678854215264130264524794675066314319932543162890682668512196092456842039969220387260262749935450248137859868710830730773571781900571439817384307244770989804033407976922976645420532084148148603106927970812264382711609924791146662927599279074359296667391488496904962334105615035894552477684322976078481740826858931378695699771250734722548275842464080745315350216241402264887090513610466953617005022621787685993245685091712253745549892878207600088675202939163829886217272156905813071884831936880204396553696796353332446792633192063005894997345928971888056084730810485974110175559083495787551718762177045140155554914496540385228146109458326266748469052138414145695552017335653837288330284133666843796168280373589884145973966706301922744416698574299971979727872046839565995173499229676776038283607255966781346838757489367525413443783555131802790093279887711143500803137229460282403015032366273642792501342469922432158010102437965261870151005211368943553197884079297287345372552355306440514485376874308212464696482561751322667016075260094181708081910489526928252362746798310979045886797516826190158952476671005500087068794075392042629027395926553242190242163769431704295579284284466394986896294018767077430158228256446986961024687530705257126797618120565347279528836889027463425998514218110774733792964436005374815782007317669548578002579396770529806460539074103254952606563754762096547394192349656899336456350221900543065325771364660199833969165736106445342434221389548368785075986887770864827276082995238248569582256548887391980559009406285754487016195360091938204028937160400009308681550305829638308680605427223875465502248882518518933359595599653210482979850326406253698218092773049159079287164136964632476049570912006429251636725324231763447581984811690722430430353331342173734371704907149450281262235348736965632536367777531481591883576272969813089473015290966474165104324442207718208826796894430354700177251358622949100883319939694187170323415640551517141267995861912239737901751668989073049781728720756238336148453477415708005233389013528699399369997706375306944907174567853155919024851631969326711969348092837542009494328874665722551462735204270416954183486093177497123722409321116874150506473228726531336941969169939570819762378079626965611507544937196681819033947657199489411480457380764671532051883939927282584365513033971554901124729020927723959520658934863353815755254035239140611911014713454038572301326122745048472996327553568249954662735175746673559243652744937687731956408084777085113999348122718223427573453491549636519936372249487864155732059491468382707017117264802353003702020020923337567941569015215458694613589370896819674999479150965805296706117314337125964853342192122977779908486119452074360661128513495122211808228102961582983483632127396296223533875702132653532726148571934995912089122958786386626204865572946123321364353787524652824723813189176593545394230171526285802212843270464427259608057600885285442056770316365901147194806025247758151261096579616374807762479665328712629576657936301183208830054315756658386427195173659017969941975501773494325620442201877400192935611837274826764172134819623636356385952042955619933418557037827748153172454964277036475077156514982134365067383271749224636946998644091670774355795154522536727223792122785469285855121289769050201091740907065398026647098825942198129091390532364135648364287441584661619234710747433523601057203704784896684850522641996579765775489698432649238088884236144757020796909203222705254448048114416710758925789819615417478381229736244286730915638199770443237333759426541398093260666253334347256374831826314343998451860167097094818329440200912780000449801583237858651817271379663691563984413924021485895499856885890373292006601015370167535214277170132021373766699904230330944267937923505309284646214541188934032964327560865074987608751260858207900367859567164878306350253815415274061037019967737780724944951940415242950734885204898978902369444991933022214509275389365272279610831023626586229358277888941119785270387939865397160801275535657933418638990502925664771526563797372941137566292681104580234273377625138845926457631446312312314637147974361757242515457863681212704432149717690623809234127152141370796625055155281486925049937316589619112354878914179281782919154270983892672187602061072542539356896756811130274131458665204516149078258986948718778970320388190641511865979232182373732744987710215704819977135407825540454012484121769514975440478672279882857392472610675319343526201680241429680684677176875945780334624121704645842232054252474735032728627378850386960063441343451283001548903367298141034071459346070409307156228799983177716886627743887186279695702750726856203628287986427354081852131382936282075806604956423817811973618613519996833254005880698447383025887595822912767562235622691945192569276162893454955416048960438088370998973580837199889291237267535740742645764179529332151618155874908847914949579120587199108486827144338480827701473591971276650506051145316490801419454401086361837255329068079132133913667783995963717749018036979346254979392241327629057101663737841241481666743179249704618333924789735211711677008863899302527579978899409156453567210639579782175168456264663209581183928615232223239456586328965155491096237485732559536036599809412918070674944166961118466432315528871179925401707473066007778523648389616926158514179062419003147640242969506140564670611749999963257929782099028686748741111558898178375466924879428905296296097202572826716814347017502168297419189981967622862555636638348045569085897093286770458210830173191703997412522713437322578527042879630685105657448690312908361013819225094157918601991408575901798468855642823510554260820018545828785463882801498382207972970937055360421248548628436391663095533284131633182124494278593762283846603882293537792485297414832455513644129002675247074974270668543360478364682925849022531019119152427426594145808438884227502998838909634652509751888394023644073583497251670004399238645262941700168105979178558720677526513630540325895985282377156778224441206119307691608596282476030091217299133970861652120791976735288393065171368848802360148481805752827176854623637965155609747913168195234595834249980114854629194267984901779131362219282608976271716024708417034523462876947233239862604543387564778743355525577692390849132650430910402247151722623651071255992519025488330257157888179927114292753119917408154562759845279494963928872689055382410868639266181188233332117026889967557991439558976842520870352173586196321024233905274115895464215739506423884683743989189519523025497146570410533562835092778741232566083817012156210940852356132413403417399692682427159190482314152569486591274110490026152500729580296992167968923431821802694704753437700649845743795528126130395664987697943085236755480026464741435339320991082450120303009512160535861522473436519769969468286312988702686516189206630728234792398683021716615247569924385090221104382338065629040115749944942785218742275797634269634975055525835428968178928566290215814909342585304802136708212844977888451840153698509822851470224843765559516340336153588588047840901916174506935954574263492383698863544312886671245631378301439488791029407045319172115395988254354002472980379000094522046911598502124996870827653622618681286760549816554443983590452522690325175505762877701399368244727977401237385237305337604851713158533800937077051320801837664851807603628994881373791272982256522031554671593019753200248223799201717719117072565301157604530173237489412826528000581939033047519777979291480337700920268353886658778286312382969406954793217285333362461162040880639954747917768442539576692976414261624802987741454969151608802859985160640495124166903679709086946687878918489790984801152690556049557978517428349305533054478500059161329522276692563087297412328036057212664642992609423224550230275964795596430272090666166614523250489881265817216911762993076717822473261015716856360904075199389065321495860872625787512097553065371076994135486090867957726195395470929331676504068509969999164430151099750263021886996355261468126659198087047273258841843549800828940953687867072907942249050123342285803999753280617580228650153811690787878857250804451033228071930822487834955260611689144867122974411150805450327579956167560131894267802327121581523689713063477424931039721856211398909379711206161272545710482859371419496085779978471249573305111046208584612566173546001938208060141888046978735602771275444315915842463982001502791274776880590228918257139186657769019099690061105998704878719042894972239267040943799893951913632045147243208226174606498839952679306015359188876810143001397321963542700070638215664597103588053560618795807614374369318633499490304701899977349701542513620340054361028296878827371789997184894431287137358299226825783345993676259354476148057715736456947010162035139810128790335951518792078117251368438561147813239995305428594274251544920386390526261146434148304795248910119159457999059963252260196118735279803612956968811344606090585601522682289900477743805559150635432913120884040758197573974338817249367924896490352153545679907197934812055790232058650290606334458533503917880298733483436032988060469902163412793613559470998909970218653479750565973038815340854780493920989127000120323459827856227651631586526440231837282179189014117932565684169811983647614419784426835234353967496783793427328869795787154843002120156025234561256830587559857421862850491934093363050377270889069512955070872038059300487980973446410844180283612256395175731664501361352441616035013794866437188609308717504324045134327757262348237303338418884381071630493049713711817895196240880899090806141770164504194252314252977597854285760680268240961975983597225018608421612766530008717550356613791900393111007180430726910108602124778303574245250015944078224824167212979407852710458527662622853193052624978076213567547190585535640406644371653638438924549683684674752574131665856493589554949641919894864428285202845905634264308560173711189363394781418323449390046908608833651936533147516541928311280342899207252608884101805013810935051293266867187260784526996275852312168112781470126342515765862062087566621740063967038758569078104532644700348475601195156507123459476814753468922975025841585232056632453556377139250836649921690551004736209033049070467604289841835583842613591909462588379120120305781327435010295878796225604585749870215403034445730375354409584759171019121495350729825571590943767910547196837102091594709853545408553024300677355190575364249759074821689579376582070061343613180518516534277284921890365194002802828926700302694806075839843719096971451564318690421495614724238786809910385664323261493303873673408555049749563385349408377560231087598253434520886253855256170013956761985294775578353576814611551665479482577697994254657114332818708784697396437735709288264906868860229178130523037932244265509626320232001531199500509972471859070858815314127044945030778095943054899802635872363839311564859639331295547778671019153914813406760622363390876432697387008865130046900054458419930505470848567827594278383894810928464545200530105565990023152366431857494512018466129531567466177758838285180394191353460492987155997151193889383754471102492690928854481862411688925258862129366978284463769778550213107985891506501261865979718176191968226556833518792382267348426743774380473304348974703122973229436193162213953828629185729045477547243129217392858702842973067476626368778244222838731155473317527038169980579365639998651317589550028756181663955649728741599082435859418513822351118601583169136116887903975295857328100205699446771010439741595873483771971836889513241525648801022993387702205569565207300930709370695473626374370638017015428420680459308198963863426181007696055150113145747039536981842306600544324862952565293853158963054489933974060791324695169348760720899513152897618921279881461369469750807279040699393002685384575147869878636837529107420737399884882735413586582381660160433758241967921129106157508378989501391059897888005424273449703131184671992928548165896162580173480920352122624998481997052382115393379830394659750205927349369989087707594736059014486733766129917640503432945724256619641402924880781055053312465282314950956697858094441595950614049839927277284423810788471290481307573693884710594422500289043110892454619520239946554070780245246785281956559859872521213225241927636800520284956212155478819909884606730390556467865412305267907467377996683706857438673290389072263608421205602232688376089709747809917403666626831798909604725192929356473375954478301807072628075354509899939007100208224704817066748943500959152705533830354887482919086493872698393684358097858625047278440251364415132409526876743154703176184067551943918797389692550760162742271269994088440764728169070806360972099394193713022239557475749519154604991679470156342197761409804455531721590139760083700084158110893603013512671326446788220055282530147342633701595852546808303467297188072473456229264100884426248838659854798328016517099581747612234930651525706912096214078431834729087894928328357111015378276623739958730764949839624807786990214277578571513660674452931821422608652927846305019317817237620260455228198184165658524228341989590287011741732590940535768298052673101883815728928474505632545399855514658275636395042883027239644770156881493801100193443351270793036045399808403465669676739601392494942935985258562489581493213902924939351609460485691351491235871944001376848196902560442922781778276926635490481829287260384298911861647768549716721863436389058044675177720644314385386947622853013210794959011297470128005837431567735626513645456380349826819309658341361361883347005500110156069320606230969796210936419595206012603661142761405554127765489252603428443753611266195456535741144351136934165331655121677779431506939311789835129227535447210527124462160902050255870966343753161299797604511526570119121357347379706477675429072117813264170082747075607504503240365595771630595191374116286561484240858910576311405147801371530179857306061173902643500025412266106797842272035866392439654122754405034253662095151832090944060166520971610383801687234540426983706222627972403447877984553253091757009958360804337378737597250477833133969701294789978080130027790959858752072133785177426082481997061670830745234858424242941540670993088041988616451069765194995534294780784584131736408850531423692628919924804839877513033869224051382529411238389767014419758499949665454585498083786748458754397653812715510028955966675957289087972203345990467665590805333843749922899152593598035833184015045815736831159951853093675186922327549306335850053107431321002473897956038308846263850164884461116010362446793484349996459067625353684677591587257280268688255722225461673616276272045949405481396823538572622509949828315593557669648851564790494303042132133804382306026635205030943747587747358230112407681005343405279326574182632403134958798022578705505386095190376537829737144537190734541454569614670033678545394512668400151514061995617360688934438974465700495064960678951868588080054635063397946500057333432272073243824932484751973760780400323342039622177629522032131993215961576289104696202949854184893886186686353828927511610260859621348671381726292730650247326107531966343349367163030784400644610496870799608660040747101081505190421825154660558416267289230808934590402257623287579511800930776581092732890494562600028048708576353358938530540710588293121360824851369288655754630875987382141910698399432943786695593359988291882164200653959384209156961976847563133265301700066051263331157435472260219457485813227601572703835442396405877867558488303768076064788765791925177597195933741999231067027762344809324202748650335915555462196738184354392681202956484535570866867099205653794744233344819437287343465549106092318686526129679942470694439579212600780291940000508667843201278059141766301216662829433481558534606781227906278432094392571197836244902427941850237763108367268771924754868694520074434440328387224638844774453111199685423544036753034470605537693648100232538320502921331422173849948002450061661688072148125241860826518384036083006456246185062185444145069856169832312222608233837617353106741917963843757091773841905865986605813369606857285792485193661666861659550057405548639594283750212869843957020965778872970528968560633202582705913561510012490609749369505617377523699314417114613388713357707836489582929181810301579527806962166939071466663883920829734781760834050017300252656781940164609392816389054794791793880066166871012042470321643652079546323342216860105624484785220330734876151150528130128955501921303394613682450840892293300761211959518032798222776656119929360164046377793672805435787312451597121444105667190242689675109507391081997776042532014586555447810889919898099069769961886663362319293303668391996225965952468868546718355708153191108368903601884952768451929487699125490301374806277138382833407384588746589516420167895241934892394976381219609703809502202829065401998214744262985351928731982163357907612818151099095296058535952002217811316937248048980011814851068141758229490965798920818184794044521856112488313821628023721114430537193865125732784486403122159938856784510106748473037430444561533486823002318112756667712479735524056478689220594145306415497947982352556349907816772452133201847678834999384075242668610235325220245755933370665872870764599338476311162687833397300208824825236205363320575292136182891403904509624927563585431275716967497774220917145159906409825723621787428522767885965122315045814741101081018415246320090576998568062872833673539258421435986437616441726100254955588443858494761198079671518234797825398191270116712854475409071681675523227899757882401058580019951043593090522918671740112271997656237544072092876985828433758265497935036071174992039082231548111420853305579378472981517817369879067199133209062765942956247726925442774283882686875220631477030543215610383791940527915280504739651994420089150818523382504291213625400694405806387834252029311762217657319433664502864717406035653779593763790807105052794356255351899954103567782824479949122740624273098021561211016671315016540564870772657675467473278282598332187786849161138493282548146231224089049537029072452197607907925664404265917123293597985674118387120060826264779139351473727164908785586469196361644904704814879683045765256233183405596862338753334385102855528641471393430036888657523154832271413976655691396661659082895020405434192193047906848946055613564168418292555523104494724396032444680487282854679182028764351671058921968085775509413971655018650442276816110576684922021088669738328053445066890390013630544616234777700294675290732652249405753204679801866395665365909381429083452972800483649462269949617603744009288392591445771480704931729291077985557650019051357438664697218483331941624347821454883469050104647907748400596117613549982429509559780070578456855415192610823876654371339161724289347055405938062929382429799691603030701571736759322121767791690427168682376929158737901604613538708004936760398061970473127377080373142433764893444394238603831515120756351692288493994797814018787616671923845477551387212725114617599797996174830731564191833900717681634917960320758424787196047894090193823587033805524951667206322594998917155870793156957721559212648475607434573838083957323537895911246981361662398294746610727842895751060600800292215050167780434482414241516537929119504233902570602993634781009127709273664617649274096033220535606395958849163041791923052585341273457380106369745268166486899703172013766920618824359946247859503125705205964303569026003284352018749344156569339106479872397806757214315714480241033914196770498512589187309078298278018067571267161007205908329964017555344583783913807368957774624401633596410401752634258237933144665463247213997340178004260035752548160199606988580613372603578562883697642750704838795947088677191912918447392350531819953410283494167760158472906907213873375993136821241991063029519103329449014411591175674298437575696393928467605406272949343910512337893324331601166959528155539391229536658813024235288204333605294763208133898046937777975245734735429263382277175231060815543980898873571942595283437167821389450626802606769030194328725046815627574333253598372776513386360889293830266497150717853758843588736669001012129326690893786320160097934692245753689356559932578836444627229018850860018187661964008943742958206947021655940822629095409357063484523057539418204334461157684508036563312541400080167695594197510284605732436743965924918878419244558593321078613063026232758137067295540069127294697068018050359946125574557609859189982064846722985645743878671472113881291242169748122408047470738428550154429612897151901597196874994913242013615139533785877453380730853269591695100298319372583246208106105361586611476144057517335116841712480371853145486861384925258095954371453033501086910939647918002746749803265034197530012970200665698152216550296740924177116614350881791733770284295022470352854626036526778664256730089997680744594059022041164077104988874883125856341160672687428834921738350131567489682130329859809042947558886280619047457989867897098180512509438211780790277365258350912312871611852218873261553919723684512606339061392483290980447063022507352604951574365083780152040602431126010243690141968939939251231131443715248356769878949530794160821496982165046759375996054915201334996125089035491028101747260995342542078872965039828709357119749663877967971492171490094099949646763687523529019513139522647072689532195994812136216370601778698016556602046078466054928963710184830088543631616028834468607035305643797428936244075674100269962405149018887180556547073629581697988475639489254243275185154003821169944344700080472114906487360413169565263614148102238277901501257582230338537448682314567368717741415113829316152409872562095673334234157354396733973621753802094725450711183412763969412775553843813098909802264190657349596190521710384372101563995207660867701537396335378785648265399733039994710139951460959313027652223150937120750143785030797099034938960183095305906165973851276729037765871998706880112972527351058382083926594002253366512785260472675254888726239459859180496426194674190410432400989770659891340872160823904769729986600701267046998609290998649425115931828106799116464627066894126854262399892521990633903905972233019353825970654660677269177461353953728970304778817071204050913880880750214751986438209777557640508104379564930325850518137969070564267304604157471487585246968943442136577628149408056307161391690638248101170774051539933072580600503177236761765471765686352044595865091293747686679966379842029771667290747126903432265573940393784090204620688152349902799044787029513006663692324100090539051747279572134319685667857510107904591556545389477806316232348712210635556007574649667496640078766880583338118330578726513272031961349535960955302878084682197477226012035652906122747004893655374964695771860351321639675049451541925876536196294428517060806891281161957431180034892716705624089215696137600597005275107698198739600063662021919874116857074632568684139439518556191297711631259392854141220241631127918600348847376390515347412536859075207718825731890050399005703575599955879145249218414095444959056560034578535397051191823036996442551660087311971531996364577993855074136626233770126653363961471899567946598136095997443929511087517473323560437523105191769397406488580451524901226085285335800221083709536751398372792983161654904946264914362947969858450708988631878540419354765407125594628026673442695757911431271430686953747537658325169169089341314230227237387320975500380210808175009451168691555452241739377823810211027116442534254289259896589337894906542296498324739153308430606049477650422093998882386238289173189644687334975757023031679991759642868928137927231951845942160569602153495057260460682753123745161528406642566782794388022202080547127913555715563564580374595996612714983935985893026252846027543314528263147302603154008920452215250605168963556804133942344912254703608933402457642315149936523505078018653193122167571773882687252808755380162334380122120457286000940048373012022539556242344112905975942179656448887588227983850164355114801474982942046990345658936003208932232635740251859929344274996811170720158608724547671647741739832181299481518617531309680559677013383632238874435228479563860115197546777831931052050206014092439536642321766309057796985838050671215754411535396140064733813356077531225983527622187143804164366472192286978879400760115961590879100610856187229573404284484453212360353360733060805391638582571999379120360220309886427028682590116849997658913104883549894266595260790881570253377548009731595487351358418085586614805657751710683714587438917828493662967590892949281169253941607411498664625695994232189025752352940888210783741077793984429501802571109215356311131941547339957742204316344822462355930183044665053579605558558215542482293216424353202600627321141081804640718805465628941639643861373506173993578331611305183296487029509579156949968118018899809993094687347598668332843660136215343668615298911281738055954896892171336201679595812882671082272424816258192339736037460346504877517193841233896635587726688173760039851965986432338971079779753127258210612953962925984221491571720760432969015924520376823262060245939863441352009462972406577381135957180087990929668770883031270376693207554832513579216519938297326032952293294716826825840210500212871271375754639860175527700700106758815525393427700101737709423205090376761609831835840362404476519472677064556341152385160699974485167439109601263057732340522004039037417815526167017190824350083813286074832094621360452275481206892285832689751250687128290646878603308451141260658223576064701122053265830566030278128264042916752869465143510419733772792581650012447913571361739201242638502919090446711558831385053521714889188859010359837261871752959176280035377483346039705218703911816630168955871792116552363177638197815334076286703760841368239904501441850993897270206230224541247759551206766226632137783582287757046239276814253247641331831863609851816657953094108315532183188523745425103486889314112498016940822103433198378412157901148662389618749264112603220218130727688471251971087590107905472996701230493172177085227516290486732299658185888395673619105690776026836024725157204560342463159391492242465217654274565477525246324343713078336031239582932553319032141926349180587851282612013944262363829967054985790139873782257877414452753018788552430087372448383038092265957043805951006315038843606991391708424184172419307664257522366955879902303864495385558944367391039942640117879423841799393255541851260851729497989752593072544303495755901621837802274973108697763150834468380318996718924893279951807415210992652891311067983870738948824970776278759283105917006599123823585955742304034501370218265841039550325709155070288335307002013950571603645993651483167582355529733982441007471682701983652192736285355583600593207930019173506677145381157513694484482981591213145240809854533347190316268745999305865198112062326170002195664972445326016483555741149725800410597325183599653595287160909003500163662350870503453464402077320142316722910049261146294046803780079158923539875796267794995517494069851746842425463031612804001433094238431601502478572394625893060953519726882298552184412344908771222587986987551706129872455280265193338721380096156156038811938656789434417701907111664891350415605163738413880683876982400489022442252409329288136077499708940196035962198266507174932855271925676421948057676931307589004122093474925788647554221853943000101193670725774025437896151655238198172361516183532859596303663601443969232642336685980116712168053289709116558187608540691953827733411087571200236665505384796179168251979853993933195182954759852153395541333013501413366871642635061883954497443987910172813913649640815930855055726999451704782058527095878510847103609889658406483855278402714274398511354994823857390132649122543370058679508225910773471871106113821256660253068282456868878782717095332743982688538559618695698845623114273768358550449444748332530406276486907928675069042831717681557047873746734806619157417480414359720089490614859180603603524575985676161402430443815716990634198484657601266705191697362372694205039277213956577566714253029597003422560918612223895026515183498025837830932916172149859542993032248526549408532589472542498565796945798037388323547201177752272469848266655848711156467521849211740302474427693726157926848120893503969417964796465346332500074357110330170180547930735697471188203841500799134990082391938360015049819194331914896266820363920438009262876796883573153838635943351850704060593312512752050062711335958935819925159439832656086051935977795915714516379173650977792625681260540488611234158963603685441523179541717216294751799419676238529428896953626367350665302504539089714118390127607007320207589716762496452869290185883814930665017581485731035995275623724012819347907580600485750183576228966474455247434161943471186625815995849097842666435422458640424457391778252530204153349009945980823865249626840437184481369735579381596564398651038464701994407382015303339698939845829976593718212486407772340368288503333548005991866211901693240288609802306538653101872827000163346696541693525197385363766182727980235894232519540909366214919270060929902757995269984903269385650161473149947110072042638123973711421766003275183534140226314355366393561953223612271412606509773679803514383481898347682150059819091139424314529363408313341164773374528082067046333810964934210913035405614437362466389005799749995368194652081942987366849443421355749352511634804748408580816028781183830337724299113046175208592188867232881377658749490341838298694405711911537963190203665415421985320276601839385989774769386781303214492152909479130576887950189492225797552289762820608159444270997591017717047117830091936951522033164505758984449949529259403670887172397765434384470022593031215046273207624995640085702859159665737362769737901867905448405994924180280702416109319828526315077006177235691782403385465906796593429915064102704249297084050698928970942163734920375605581929329283777498123614006277512047596227278269543808224158234859964880917216883357677898227620024746650774934392728520754259283597856902221200274896484352093304941543468733519732121233768646071562816059410435367273410106323300634053415672152371811501415721732961868007352786448767463796099459021071160583719509130302238376854809076188852351997609094839458699451663541806753304003739682393622603547577727191883210638669463824844957602514313173518455524926336149733021161139167784646971711490559045084007652358114242204675976698825882836201732618260589148128618612885600600931060455149366724248567931616176131890412553993697848743813938471975075322432713840485082501525567016396790297352172887650415745657300980146387639110386658884138898491807026481452618313461606867947019885732417447936642471222830300244156909585092950719678473425911747539505255382461146558106668858931363555931829857885620202770201548221486744688144904663036106456642635683927257064860766098137275847131455951768165379609594149115349579358830526297895749998500812288115953625659032982028718463143538664301764390530043297795784044393498840814581395423380225744220596086278211332455939159899204222087362548559899799493217562491431569274623295550027032961201538933877324886911053882493229778536111719520035138939420648112831985306787104304130873778356074371952119458287175597189212889615807161056163737546253543576597404874449355367189885736901695490044029209135534439630554737255142039300452043221615878513947516455056904275448620931080914569839568684810922720619226120536100583696005189425982955508879404029172719019732194126316626799583342997916850105671346835040799001715911671346152041917633810171748784876367518745212772164760866165411955293493611793699797218294743299103793981212140762566924745226266446836910374247648742523053953738343322081702918510133483562157676550390508837968114636980865978732758317473527585391548920240649052233737488351703213736452945271295139452459654228238434244668322353744126611609730275118379727784811911385074138385161508769728163894746572282172624470349827908351909688151420348363301650322055896203452488406831724223194546312045281743380560938646601238198130031586528154093029843993085372087509597308337441762985173328041950896348659481379093013948574527915858876759526450686554286984272610407706165940575174794902162140192532467608383189749654789184486585904830906895018590933345919194975014551027179914814394400192400831206260087615883325358335657967144025711140891176356296396641095067777898494893369134280063238633662461346535588112042178760386644248009985135549497638063024817887511130363143186397893286641862740208343599157102213723054714746594006788103377217265525086326630740057403257918650411949764257441000589329289536831378720187063806350286551317057842490527054360230326009526562805162596147975953202431550386650149160122063091395993481882010296419476970818738961568261020295208575358169210355211767033246613075690738172013074483146790552057603738175997251225473305554331273731220135318296132081559039039877463949677327115128764504445907783043416164462635891256973468285962495997724484070905223053788247111967259714174597582135938963869983493408620397213370294116541819471548685144568614636030875706106881500999126853525356774125933563743040784701406230574340191486191666129694107832800946646676273925082135204799164719581292382118337678948260765820689511498533509931781528163438241651431892925283923229473383905362886736944807174328836287137550714418871106536861320813083678670851404578933185711354027188135360702825120775470750857003377497610716914719947151052779380401719219973396689602554465566842212301824109943459928831998689269575701739462964700098657462142423340756293592625473723954910441311062316279238955346692591182523461190693367005042365521238698985450285039145853335593452640335509319496727820412344117547240176290576633794598879580086368830644982371447478153267999925910902259618778767364005862605085066460820928219469579622311032120264254915159828516543011702940878810758274379688896475048789308446377463909141762467250537448843078567856160330931697166638394462983815323772265173694955052880863270405853218074401583485322319841969624393544767755256806511968831022565042866418688069922021039734470786557001941913058292496453659275823366836964783690585950687945211334382021225506229775738949871248502101768604353840694138685936006707622440551617194973962433833947535341508756362272892168138534164371391191136127752954131594625821209991954165726835617467545035195808657673744848124909991377128019158007848626613376223062606748520809772621010805166297489296376593663001056492681389303708915951988653933952304702009458298509357252374429796702090474746303007957138894768734890576093167149307543884249341702136244970011310500410228443737606468593668876145887802369992598244613070896155465572189307613908405307180259235164185228360795330830671944648735209848510825749057743026545618880426544299966304209645022170620528092774203387393560744110452101855572760359299163671589051470988660864705111423086090240636554648514077897566726870241533891798907173095655330893211225940667219393406059638752085869316891658449748540062502810059268687425053731182492720109652121155330844266287267908802287607452307574165034386168871611420786778829099028012852408162514592556973722681250193999221569464151542583117611358543930489485088498224107386512890721140301764148359436908872201491602978926441518413272733102850109185511355741018601709795123661221916555356248132904820442450006066512733734501534669294240838329570873614443173864281980704484473156932741444186535001789508543192183799068258544387910394333476265885659780848697084179967056182986032356779449033617993648407938275115700593080426844637661843707639342651296178343144507444432421644525461210181912464162087680251869793494495613179296188473994146443705746120446312885864869081758385337410041957675541884508726621798503031387991472080158808828482053006450076701772388718742962509120144763129955405644447073636346783411948268306600828468967056544310143531431460372891742800853787694207146452472654472547520610343437262764133490300085986049930935531640046714769983319125303501126525230961170934276770131867178376609202722114985731975442723019901983649442192045562767733233749542262461414166194125694127901046944539122940456263291739369372122120541129677470150756637193253559645616194985581280403007383085071836071585573842461736954082673942523674316791650704268295340674543482935693228194265677112590146733464580408200358429721088982196529150919954289372735859805289992705625847035544808895528649349530992117733617596492390324708359418083217365532061817689870702517778840357397134649635555977718857481518135116499101352502844635936591889147013937801063563496921428044702732885240689274468403366654553176810686833088536332555613980141695585313708022478381550998322834558056170897894229130095116624879760419184789106741081569684387472319524945777389926843263846820763974349139370928480254982045290875961052009638135687420363010011454735919084245089794355098172922565740547553201625956221619809010827949451506638668753982917712945652337821634573090970923959821640669834710237403609226171495757010825675198111963133801288068315641578425448290052915757408549774887858144366551674395873366322825341519432854196510971957206587191083855039067598580949101365853466108257037789877578834396856786283277580418216568173958516259122408241175839849630030047623059309664505528248636417241900498531314951121740814910503795539096367621767791816504813217825812899341710129140641089041246228858136424267857823899889764023518431487804793852135816523185834039312380902489599308880163188113872872603330717647356115828557995759652354725770655807377547837426629037535285010212703981910416176585089501091193231000444108944914512818742282086818628812050238154317442650494489157356150571666353934123115394026594495413157807761734140669300638406907720654921325765795881205062534196957538012930600148928169803022383796190471045442695311873673899145929596742260110127248178077742603106745864781659913831491768168722901143204774507235080086717183663334269491765325891699852276067259262926112568021852160532794828326555437906040477115513823172020626891140355614728117264612295893321499066237801956217790873122897506078892407341490035937273131203474371660478842076260101523782133667046605776511356864764286394421424955511616962616588463966812840057303705154638665817265895982036940661079314106845588025135988057168450435503988088016345565078625762084973166755276460948185944524530865952653018037581786530882765374205758904746143351245687181928386779041766869122267570175617091847775576351261090292091948556349809343680544625856005505359087037708538307555857232564463721293517783759588384180408389478844161297550535552967622434275907226690705304002531743071391111661944494777192724988927049293675670974358962192805351245500581667799704698767311363678028345775053479142989853920029510510576532282846311892884076079239893220065417114089231192334786865528511314265403716130623858739047098407870598645815287643860238714603041733500698204173213662089907941212110508977503463000308498435251324200292354484725384344559108955690883517588629087203549056098589629480400917019425157135986399309254264676865479161455940219452577826318097235588858736396632499347350852281264723764847548017877124985019481714803777064651986245175732154229364347277297639805685400635701081766559210054627352189926815652206400166752611003050167281656807059658622644405600649990960173503957618927255507291829768670818535118135644641905895146126454574728883169686534815792019418703889001223548407698894492428938361632400729101195306090300471771503878567432139396774505209080137663079748271832191908164894217019527330445456405771227991583594558713453971906858699511538849794176530862569130045626848351850579771229259887287873404837466526937768052763952156795733779389291207468797244632142033126788451191785887373418106739333344949072783159663691858245701826211484433693954303171129466568087722297914038244500857074175493776469393169114877313668985614060485369196899661817205514588761862229708055550894679554284778265175716477941018958397738959554056304621183648758376103697319767239584792409173493655643273404439017080317775235449418644668091123224996503848775193344949204803958394930507613124915218288229178493215163932879129919618595921879480467608832967739524334720960243664232011293215080811647785386510056720603271179231532147774050522779848364280448777962270778609224280927225033306746962190639542500307134023081689814587908313845169333477101133986820351255882640737818093403876356716190640875027851366839318576648395518486991961591297773915742667961927459407806395236198150154918216514032432272444512447262870830754356422527653036942770165095141083337681054825887253479326571033006307537999982083042846279461064283185721353985017315007079683527626992350922891511451410653277426556128295352555131164729386211388911483790117360135351860841345553071589946285053908344821769216974274489954323242299342985188626072469020669577440893937204473047921213680840512069263458068615141746654343322118325571224962353555711455797335217750154195622077708452026857324085034626743872723121555170072203300070583288686029782759026231535803707457068143586502356423821489466819987572163873095416534160901783594458155883267542951992359016462820040480529661511248302010444779229697855357433537999551708656873973715794207712650371601090703854550806667657746780095433172105011191190326294374393864175798166884042108311849853539212960521148405309809218018579062793645606822080293120799920583532802555866246709225272502222150668447433564177327639044302046276190527842921563007886714775288625710183746761851232303501728500566935245612727118152664278914056081904924675892734999032304342563494371918715046621671507319267832799128321302366319391876821291051748522241755016231008342288025752551608057033951074835884971096460589576007980086957297979685905176470296311572888624826841195801666616830495909786167237700468256435912659057204149727274882460638655245466838668538986532025786940808491862163123331250074384656303386441660037734044959913363196221804624110411809964066507804771413573821319534270978818731537430734736810701197830503982371031391873550115122395095595902774414859488883309556407162556976276154119206783671682443803297811569904422156686262688059345626009056583384765868810030920770896758604051887267904108350169194250702546062738586765668584503257370181398618020205799755761393587868731170574033723965691659271307642450540555594617633417736243330389161503938379243089309190625797956297124567543564420631955074701858994940382787943680849541011245184273003573795198107083659079198410502721265959549464623134657586561976396910910828267221447330442261243316923308880018387763136339723550444395558359910034461978999616407950619492881761092693853098355993875055097445072449052276982862077650004605599876370522644350411787072830352000116325057536946382533346883046231796940487547313257793752849420058052414095092680920764945072448643718942904638404478670636196410790174381350817857393589003231119039525643729735845402706920305340619687328419711477830717872373300646164069504045623884114826927172601088569187976183746516467818263346623764084820322568608142021772408459719237339682877071358848591290409615538647046788129865428451728167373967615130963824070063757506828683355826920952906761893994270991097018555063930656775210825623768369270443361347558003451126253505765026746928546330543444087540609226765063189242507970710548209233854496323287676012859323537217918780446031629378830150331363804750279356692933243579248709017094509500007011606921013463429093405473818232151576314236515386768951510418367216946706925221723389821964839654975017341188898358567967238879367177674690727977055523089782252727360113917585700939030210423541191388622885111969208187273156486431180504454591585514697051926879771599823761046922064076988484278126235136105931893286849933775487247033316290719649740193585828971414036439633037365944080043862452374435174884342318088275871542171887140337570366994706370122819563258184039977707665101431970783702184468718908897090383951597466780155475672982790256028035820187475448511923989443172101205528137446680741109490539912858785909676686074934975069404068855194031320477948234150346428450396637192265369620917850333773810311687189980943009597195485242349955701300243750324402359310678932561812283487207660252228614863943534000579282269148812864909949250183562316447708132467644070458386569541958774784926945569185130991091185170294570088236701827815829563300845890195437860530459517132001575926050614593027147835025148661944308940526987180356841927592446548594664550028740297711185871732091899745027675370468722029494710790183696922594127460375162679325167515083494654072440218700549584262116568188627037238822434577909567371614543291313793833560688794862188099949605810475155654006956249360773973985888954181073807104947805445792581308918374174134296093970601041371321571528342736232942440346519960620599515390874431462209100677120002280656905193978076277742051290620080915641046785785733766762217905293607477615586258761096634372984673510116319703190572945346434063400789180480923199510700407886618419171723500624721965891008791177993729991599925858583240826348219193207921490139378789109582844382135388989156402529853183099335748055286625130941127504996097088031113714145876128339691641727184960641784409243793196966581885493439210381181833193466985990358977370762552788993006740149007486124579498929442874950919151192272795885229588095396253942761231886699112997928866292106409998298654789712182633080232128123486384335103368296435279712983360517002116629257600836864741264237469683176322687738026613655904737618228317228790344747614113186687341542991529646294181668705447443511375227465735500033677181895499048218073127297645489738818473271238905686040949005431865771199574862143033789486833794603664444998707964734780137293816262207756733733209953011843624910419869452928280250545051189521113966135608919292603937574069641557943485680475230033141467951015955665235178285695849183366876436253543530149417661669961267809004668465388305313573553185271318644507861952396568222916835054286862098059901632934867797007576072944015963060726654849184371312503882562207353448656609465950799269166916397092023631585736064756317394293834188472195142238984523512947565153535890418823585907371087268868987518132566478227247290419940209754623181504379941366482941461200010392615995701459257294530465018879947322579533726553037532930647235505468764053733389317995488856611560098458993844402984666610029527610323737709410575489251283934139487473770975165720390162197745994016890802106265890816956629417643600322106936744850693544913834725370681928494245831481820668036616252691295774527577284025386126577177220613772456068628004633612760697530264559097805039044519005998036500403614290677206138314208007487895955081082087178672541884612715404280547279447773319770555128735035482360664440369778432268023635442541891024356638715141563785829671023496936164929127670355083733080626543299161552575176306167617917460830032397463424326894127101120887787925764189495585085297281088003763297600578452869637665891380390741962271768198810475801500010828792882627456375308913866241586668071005313517222171481078644391628844829583752900820674476306261461848810937016442143217182536012738630326663792600592387489549966679791872945474545543151765915162162916272796470369407160185709111369930598907791156076177721507522457178707471131881488831917250094186372564932253623494537937627916543077914966010148539269952246635326371678056190607891366140917714421829169231784063300160012091575010101455062678755339874399788029885833453269060681570769400605541339972818015979597044016784381773518349789199169624362371574487784690010405687922833513393872732214690034544207516009731681577359219535413376614119661757006029623797307573091179360674887091500767690825666734118666205250532531516778604788027939820182912414116918949863032710871305601905534534356537920174831374711265026849684988167232179526192717377956636316030395553106724411248851166602506536099931209605736208643506771533011935795262686760763629596413366784505178397557080883172614247636663962087441080895727685316043204722783817800422478883167741010652590700886194651440453867265234534175200660563423867744680204095219812733264158676812982660808731067857247891844473366689167218135526700400589846917665619304789708866187494357555135560398627799145587811490377665531390191187360662395856451659398083123208065946602578999355643706390385543558558216098643400691386728554281627120134317959654796206888260197311203101299976014791775500101819130359330061084508071248539811425595827662835434130666475416852401645845928585340369127260928930042236415385972379404411125928710017580409111650481561712725965336699237778133423283489891590737518152461310161494902233019243160058395294380623682067191305636334490128586477281842986014359483604944675953798333460846689647953440023850150477409347150417268103481335235090806504583351008815929826219061899123943912501366259677235239901066823317817328847339541573546209330850236086176858604823752953990485052521908373588291068229180152262780641417300223897640383574355048383618498731855711194506748478416935334366484501605448385246854992068955953789221833884290325219941061920277547425967390572433822212514191720755781420395228035758669075677026333740262780234969899704021922761913269487477247666225596513905521332926785514103987402368746148665647229322236549754713687769530080166718761281247645559559683028578848851832646338198361250468268295277387927124028638101816854400025791039967149627745018274830399844011242700107901905751294118584067691563494571093276992955097601466298223122577494174431505284176952256126534568030597907087097944850262592438501787340093046732984139931081633451576301618133843806123673776745583107635304006246081569221358712549952499575577652121651627782827987990773626573863171343706305299866115278175858206330021113174560769818879854589471549134920567621823165976566981085775514374890007914235809033918000407870408832065224016916312278395700628183294805388901614780414589554137412366436140617429402964525200453615865561109637534633754249168325799215839232975892908127773502596907069993434324671338020101772384924616095449174016508254745515853298753713940179075489772264921567579925363140892101043787009625719033444008584171149875661786352440533981334660861840862769196519117832616778059256258614463524250461297940870962704678185703887278626843845703637613377422785710783620391906483384380805204851380706898114205067837799685502900712962301644134457094949792386630359283961077286884660140050045826657907024294734012487829715563043949908705069401998697811316986742367435027833051170591191911644880990852897810383645639529546524475327907341497231669670841777887810649645342042545234035584598140016831594561143450108146133093378919130207034112067757561860309475352438807087385959286826473853059619253672560041079038717925714290442007033139970660555189322248427277969970821182699649092064598112897378065634175665614749107308136260135394162397960253711611848227744765187821001243940893114528004669958729830395027984796461917306929337357775863187633938583961728198094902491146364265602317195498673837098041594593226918617677888178346373507578412125296896145964086037330262243098952257297521205477721495685550407023158161764251550987069848410135463605361091568645885654712673580480769492395167351539503318202281327384856563873721568474278636713020634512091924055507196723623905526799965434283141405517755829911414850859820303927900532100732825744976136620332723066331659194655930575178168530263692403614764248443922087597576887987618875700015453224885773764833340451359343757109088610883458483565502784930715273251438941092745514761921700576465619189687074987141471034208086187873617833905141429367759914302561925316714730030197170425494471664626095200879398428941601661570461782924381940582099341062186161674686173296565844093090654942876452260839796582170353959953756892314202279355456775577961602065288457818438461307231292799306783724106290598971025422565471045163676182669730632420626950454357417013443432976954926291801461404395441676998916335017560198539382833205391053888342972255079575117020622712959863635409253612627299087044360337698291776358837993924824031012967616962296636311018589933088311588054971779261454440377882355465904249594632436260957116006864363506114667833596316519251459568772517111145623147172388180903597441754662955215531054319370119750074141436800961333064423121737517899220430999044038606192496301655301261669247667068687032351677440013860684075836278277358947949401296670451861501338254015340652477067114508317968223079830431548296848161182292791291618077921521690003822787063466110489421463472245170653769744211256133445561035330455778605790186881855577048986033283265965476039211035678819718797615997316632640856576165080995513734008833612455636302030628236172408140335709056605885683438221646193969037422392802304437539632236213969983929766991345792085450250692627458510494258416951299433809107252527408411727284183014302941249568000813232037120616461543253705639913437110426149667016689555904156169538050288883273771462491041403532461328626800220075656459774783011234767188958073018794744048826973563625380230284530528656434050621423234190705481346670868076975854000268792994031572069821055220601620773681166865145216405161144699177868097802075430823270747739702914068519731530941355432357297893318647188501613209622632866993856612428802594484386859963700739122614288538330094108452045432881731125287134555612508394165147632509671342898748688272656364162055576190895234678960007489751825829816302500787148356345269079054260698195669486566658509139498552979089363563834058960995740536846646988496038239719418340250789787557333895500828590227250118230707790299000727597844668831581527177871381460067904181987691489146745362379745649236179252301400278164414574709361772887093090137670678298341418684180537710540773258071976053543440257848518244483738061281976547764210924802900660679740597020687757987422079181730835052115813244215126019738760038668293735519629502079842195392322674434006805629422693241874243129691675547772121943291116957110638554281736456739133403959763836021044096673896261582583188077219927366548434550479546254254552562114587936444264233222261656222547672346407520666795454320944884879951326116043281492585904240568407453280343951934409787991090061152769201539012515046133067951941979239705917490382832019435619388064810906106124997386665322794961137766403644630718310667523527557593105616541224836654010546613097037866419704602218915775956219493807010217603431041565635599268286676586251569666501984810382410158102179614212274620198629000990200766815248077619319633468036637154832239172223550036955696219016445271424693596309381617694441048550404326030350595659776747691213563985618534920456792252142198615443078763886068732677657416732142563444653344070268212649789435742113231154603618071404698912524407382602423865439249940083510083149206411110050468620384728665010210361197768272787677291494611398464653788279781252552508401927270616632338341775503056304614883590725093756198598928792713871664997325562465524290196125969260861597980544650151103230820890638557070320028733317553438230371904771991789651795835987402185376726594633844417141986541313729952989324720147438244879291727825995703109169955574305292015900000046961889222514921097990038861159793113284298353421300036473649873688781249764949424368091686607839005413758147271696316036966743829587668694885167625477004784547733621302926589006066478693643532363241450542248659295158261494259302416478699481604263618414566927530953228033705611596559137689304598906038216515334257301998188588727377093297611098826854185361124813676582300622636612971809474335185205550974067383274840077347317609106006995885687454808422402544089920006523115985965790503651659741991595615424006176741741967685049436968617316986925823261658546090399947116624846082867332465948827812849210740946461470158713610536217874724925384245526577776409783528000375667018477661407514615711127046971193257234289730744261823922271775357421874743248783945756604879426978556421691109777526748447896280068993687307552687759341902150190385596237214624517234409599217921836918460678957759706885641553180260402760881827267305561936047609419584043540811675227220926173544899098733626659046275395435347719662271710309572430840537143811531108930729052274661844308279553530965319927528689006100235690213993501698793899051372468630264077834768933065913622872099633760767965697573479060151056905810068963181864352928798900058810000342773090241995556969749701916657221536007665022972840639647621985780191535586125975218960701845713479517017460729318278927725152981484126629083681770911186189794615170343035496424304174791248361117412586556981846342900854815896953342979501399547517629417413564303307859713937288471387572999139780505650879779291306512726873631238424709538818181589922348586989937388127016408460990026921887301919899555687852621113108892877872691429649245034690448721573102861280824281200411300244320726729974708674145981622839419908273432261087404264951694497302390556232462492357369458085475284888236444971831965823337891214402105279397965219171300963408957717709148385359492031415778504034384167330048813783904911518239678875089198257987829333094454452867997756339579942127700934882860169922947801000498994367227651929855018202010712610844985799402315614974780091404200643405084846958061442305998284106013269797418502240365345787203154567652043051349785152459958058591927992240397881849704686689406852880381861786349651033804160862956488350051948977111104582965373528530938864550007272582604470710418777216819184566365514938838239990040611518331717650322536258037783226813924516832520994602602098579066456536311940242207302672888467114201777438010732996549001840776034221073345249532837462066807455655408308031676511968935029213209341972160005478166343812902377174982758001874355948178801084172222754044363840626315500078989052494333083336548116312031198984689833374936459629143821106199328352092366128486608817286713705759318639870353294108879165135329099558007391145176688725193898199705418372623686836089142438202347855623956863862224101752411326839168750437328941156005034037806708251744950809821354386414855298118594228012856972837964619909182490315775382217704042768000441242684723059453060896770662445191326107551928176836745964591612278875653574559824272738579273926132993163405231153526342796590654272596469012703089446664031019369237543227025233900087552823420644075569368086636671744322572034171507815890919665163052120928294057014406103636225735454986674708774227816989456155769519640133101783332422060081384217471976838862091387900419324168767092801298780285582260410691937611096598695174175856350011260298819282929833236942787574383019180889522308272911905686468109969942256789013608124547463093761602169562034107981741962163224575838081205285975558213607821772192560798679217230291109772016689383467567906381601803793869671676313737968238751951371061226914346458135451849720744190803666052489743395496660218765982055217522327837257088602304209030220548232597601139329202527895870872669858091452277529956591748312422553873047264638651339389657292649200242073181593051640278566993623770280704691031821673599514946195440455802716081928848049388310657065118972022049533184123869265147386614311547437410181645351868137182686876179734479288779131773205835437958694564174676025660373713331640394294380242905998915166163788753116292620551869195649595554027657906074591636468505422323138212203829142394775300092896276003278192614685609222205013505149183310229086536845548080064610597692565205802522972301937514995605275151034763027590110002101320723705446786054845464629400916991769381986345214210589533239997248110904030596773013681006121522349778727307459797478287001917694050821783719788948919737733147892929532873272255409153006433830572884156215580602611840826261717767541802621111706836359508740335558263072219787757758159422433201178198211200827506570829327714051635468513255379557553469242541551933352589060527096963279642724706344926873047178457538914949895906565508225584379855078073917371839220481908380016799030806495005887413346988465283467057871842345424817255581091232016119219392842912936381205818310101648446310992008757548629530939705784760093660102139011431906551573649754095795982180922611820125361382748222499548782615493249692779387805415194689131113250874558063108098138655730800056665213543721530654349196978241315614750587628744318670081886821062945299924821907903654439592144552481179131705096443905601096740359540914221822044714649171324317975523512905343679621407890151599263119506857646862375151717350021456078521484432937065707191276847500816949188342866822706621792841640238285670971057451477956239102891899897313501795449690875409809080958641995945989222722312153244661355148936396508624493823779812101081645643084885664154407413780474713381084309424998183909077628504206356036872693832725727759775068788872011980166872234608339658915071681260922039383549879652542557872808320598523551717422083447785585853565185944206037495257383714032447699476383704491797918432016314629848270651620109756887567078351831935735162361543730726933390710176304688233710497016651048257227334510795549463281684405282313909888807361020463067857947886731408820455853819956040101916130039616526882510887018970949434695439331133322477039751757294336224935297090796914372688551843122285970086003761019719029992386590147154287606015852965560403588439784514861562231670307891433762573319782497988780900744909855718861667158158746322997138550633742109633817913716757727301740360782276169371795899741460995993670415611223368007357006250267621487550084790750315644851845158338329912934235487732959650437256223905799532832826254326833642223608011755171218588025653176417321750152016253280826194503305029739406573863318734964382324013324132619006327861760549090501068755063296112860171855311463724143067574678450621685505264479596789200697998929684383696910983147929214046625053492880877060095707236711370377778280668406478712652427515486684103296600900736796504370006989045073390832676954537289572460045308114605613464168012254572859737577882872563334467386195792200395112430668211583152781388265149634977785977038125689591380481219782625654587233117310113535707158415408869847725886729790764160033961803035969038974412110154238163258127829425741482634173873104506862627972811743146915813953754527894101392319266974135405260510491927283845470284332625257766812640236032306148812967157926242080224323474026317121217927041235784018620380206369091567891201196218523440224226119130068116461420688709261797273727998625247178469947361514005409458512984961411471190108349989220894461199738508579536916984926471428377752506023269656138513477447664688309942443579149068866694079454660372120793693867552834478685161012992953650874013376788188078861733502148676869044163695831016469731010873188504720653011011638018653430421262723231195984241765743600985499513037437587224107594720440892765213967731427106808128290862359994935709140824176230237742824216488404956920753384350126232932808721118644744974580603556321449256271696273831733773182201292122408211520237845199397622907972508572371099872497785843952421776731877258875130068333086224564916179983143882961852012869166393136973699714208982721967469743911511436855660814085431651298242375633106431952618790453254974167199783853099373380470535693512181824950107661576672569536188217107663821009086171802429094422715447703884953811197956024400624679886851079711497418850740764031946124202723481655981980952541970757241973498349512780357383323944796134050139536828650381820206572736234547624140050308531343953098738590410028294133245670865234079005763866273738314038299369524986459941306677154302459333742086654081003927236201532827426341400087227449750794395326345403267828087372685024066813040442188294290372899893770155008152526497644415073178222298901096573953014913325878047358856317491221290116450131154190897216596710101550696723460702129201473524166794970486523140602253932841464660797153990329001485061839606800673108560008526526239245581349935767675958259996079511066788438552279389876893735306120526727890277314601779715719322860117137100858857923580711277440411959109648231946662735944761864752795096154224835705200431875909614409320311399369035184721148115529333459386707048708870441669591209155718189601898685732268564413917031357675212176711871484375938852654429525116077389697003891700692185511676196165910270497955271141872515771274416082244094646962921841422329341019262437560723692680842048897005027871939668820070261564738691355399614446456580610959942658462172318674767726991224074553535537218443442727230915985508617227463550314983643708978469023961010720633153036015292077525793972996935011741244915895388701921108639606519271076403494090888027454414126925365076357265944885698870903491950807890648241550003085433549823642057263874400585703233452661588712578481604190705219257111292889102514127782283559243791044055185999067546639360423936020824699706611532916384842865193058844674619392127196160182269293555000694145561203690366270330245299635140761232444697252230077646989701177140866599018012525453625165758350472497384580153438931147636610879233927179794365535727822066578890330693083354981557808261993752104456420655595100643722589538447795986978356213954325594938745699232814957038285680284421169096824117701883170585058349903570971767150566123366110899861336724116387484548612999408118271161054099890390693680164583139086646632390514256795150992561931017188961073292388274563334743848190943395036182712729761831249834106266248232879821496139836365115250331034375251606109856460840656096527854398461195640809083695938581711591625448267421854567394783345157773612848272544024631684610864935826875143255775252358639113456613032848354560931826418151901220687175932456587668722093753310306257085608767920818901046768071792173478450185891314555630356933892331094639469396646721055044209491151220995218098118322747229481558298643985297790036016502064495277658044904146960677419957196358826883487098623082808298480320642290553946564035431331176334387179434386191174734310906432328928521815305527719406859227366985194000025452987904536189825548098814316786357280758480812899396063806565250535188013811347094306862462852316560365191507346320838441491604993877224208192165241556095810383600056072257992255758698389464881936733395050920195779531700607270590461414546885622065614184586695023685497200328371898886246971004064369609203929210551249353753153036254776299889969105193896257049015079802571861508229774868244064492707981056292230311709339757732020947315223906510120867044713979511271121807075143595819759494117174651445639076235951270495729152361770324324472113805170556812420088897812500357606079021056085412145763955544315151304067270251332647628929721831096716717790500367984093592209770020968465873075655660440635253882783111341202969104338829674159263287872749476967936215816063640821871779123001166512554750003167978925242986016372339011269040648870852086723119046287959095121740599853373446756295505271861538640288270803490195805660987296912630495400534048306966797498360873900940997320792080230053372766707947290798172106836314646206095526422611911438819584670543278500528897279996174575982711187141518932761457368790771353768474279785286397924195958113157738892431484743413127466415502138394284299293847324685760969726812844914517533207684884663018522729271476456435199138151126910839240114198394108217306085337922252043372555490132651399097654666238543449080722333626991432368028827037141622115717068191032388261278451527189311907614652733567219919704760184917103309423093015470677606810367427669389516542123098345626315797558333638041398782451588881548075251300461242598983126869098885804128554631470372774826607408184864431233441541666893068644284529499156226059107009652541520158034737434862444282289636440941063249805190012309151136656839442046455802279867338503355918068800208129134815125880709079588132734925723019315313368684370886348650429296023812248771091197171104265944417946721357223936549592010616921671173341354937984297257975451332569861012779136026683229205318616439342988306172533575128498525530024317096313170808460401946398883239153511366011766326644071588299010561298213289557457704072457272392329217725398656627198140001510391987004357983526342877841527753967798878976532082416748603998936521255116478267147960742161708293593782042975018142004622823018516618650868714186643243378906285438646975238065482127866534976013786480703609041420890690714850390486495900236661563129652802989448895350330882511571947804915313202216408455362862641054075257508662224301107059157418429395274088699692356803791908098267226205502843271896176739594179404792475813906621942538971257988382751862542819172086577641204956065535303049401789707372151331896833964288255012497751032747334460783874768812552267554068714247516448675082885886724509415532814009601431465295272440997357814226397717099509252576809820056475997978098112297268494289848196718225983339728615112724891416506257123758186924530255229036965789690360374493496438259116403291913728842735676897061865825403373774831152810060666673904231288717651452787808685556898825085146367349306419565730976146308254296852275040647040767567387988127449381154391890616674850644665345955575424824564962906127619518949426055331039816513457003352654234611608042827887854756137557708074888434056989241517545947821892020026177709881529977712221456294447428970509967263732590359887583408780082068655629895347405576761049502714460732773355949613989337875434713252874905810882439319916016230521264147051993919675822929055462932622634469453602870187508064350442920087637635442877959739808357493281343071473823723800222047755075057408744047158557483202417928104314262816585493250643622633815192285778472118921431754197588853710909320771639639165756294730028938512494494028109325842094845320826293334857972517698091660601048115200292976229708805599052197985187545759560733010799125577472377579211663873653699250754402491411720858968118133492329718590520109184858302437228655374917072464698714208494531523118473508624116844166282692293492504575817573374801195963570547703689028774813833679895906108528936629972158634962690609917249052764170899951184855264408119942508070226301755326525190225811336178915554058941578100146966464184610379215811353590685105985274419353013735752575515493454287371692488893562372862868086586954033749746415369392572003902674461678067924057472532502764920724861211333423106753851060319812433523437321950193571913461418812072094880008556894962562870552921933085459470760631908144334337779219088489861439392238191379579942679473517331489321909943619828728645210445882403561680757879801136697279094492900479801303200272141406319195327975223425502250847156576195864020592996007578945545701301585248381884436243829367204256166125479244184549990695239480827613116090832316870115485122666486296720509979377183763693135055065344943143396487096213294152437519003439120572474298649872705969420939455178021775559922080584344269424321441600064320516540818799870549452460384006437993960291757933533871872893308622946395519765546074231527824832598254958537948879232366260273078539340922583668536217373299082911501757076826673848983173953587914559563368749138490373696012099133021448847335209912545711310096385552327830324959660544768269098873488812201940254484178932604195373800447589425779622861740641512094620125824473156099699927845864232463539109843589461588120401887827273225150847763745623400368847519538684358418723987095821607697552900182073577504750084254108686766577687722322941356072892945450297025996127784725357941222560863686025491175701539224030918870853876280241713268428747793051975479192865358874556987171546428831798074853901309712836113185041093837725761131742656278108048997093662385912795689230224475979387843377440401841154320733717493075222977090723018398911693597842709571486974325024909148500919668490491199858020622926014720852907805517360174795535481290723859468177177296836820388246875469408123293883384437589883663035488376175923408131060961808213913514727014816660776342312389929866031146223822397246456705112564822079667064722050616347013391482834628018750882780282142578649249678187041037612352021694534402699548064868612530278635294534075570831146073570099157966665625530160832990042409135251394067095804993818993467760163732488829207721788188590818435534299972882939021191960584232388433305393344309343470596421897839652117364038357885895924718867079754272450349974590994508970669243808082781900504565915297105423461113162969434362260674049688355194692443146799273633819467758039068679185328524800159798679303146361366245000124268689407821825521594765279307224109448053692751667113399614895084043247668786408024182324633373451797654810136736297315443494125682039088322991335063236817718315649755808536407487337103313236192363437173509237391384527567562692554178785559240883616395396894682694526078611839436324146208106000792834135396267952200534759901271300400255959240340616560991119783661782592059099121538659435584192613531075466812671323833857160164184035383060855129967141315946145587240601938651714352093511554863583782203126884263842363068972265618542325929120148034873395413469944988341911246054219552922514300546127646739913524397500368584419134687386666449590295430125957638427698103464173822784160296953558912111806047541528835461927950704656450656775067840000796501257052302509070402255135064274316141556152057883569236527118954642578400621475604497242989139246042326620428201144925018679673196587432785518944820456235885352901475006304518473254514679418933006759001694399151036221378278997018603642985965349542287901926806063607225677421719747552140986164864152019450600339461684223724700826806377651169792743841921875994271245150075922361453983130025040028433933139650223718366567699682853492291406038759650561419610178198209312591281048027220174862436760471260500725026285078049019368112877014792330857143825200734295630455369942885685620388016652533080415987986483549982847898317818908294554466450309742887297638819108467927087661678999458282901625283485423740616708054287042370368177820797925880689078871255497283967581847367318092642616008902106424685197999178150132298772294186607112033638754620624503781154144868147854512440876581083718311763717360467842126371763709242450419977633519879649348240629303884904952681226521284122414539665059854325039717756828452672341723692103704921352434386446334343989949457792401307930758037078168536346166093116835449453352593227895212898961596504327071318055004328926870715750871419899483376274436849411716934628695918049103756060041847965833218779406863361824996932902049533434961232392695900653329711500002329671581029587245314851205404309395369123861329805676999497943608564902775689679870287080817804774201242813377312976623013468950290952653475304923749974247008245818042919566106067299208643409712329913972567527189382513732108691592716035573889758777584651372237089641151460218710374211889434380751392610194211872215342055118056624454505373282675756593840428611212417237840754997436912284560750001697211704308150208013671503760585965350702297680004031442329811419909539374237189807957212370029396312927984691231188309212442755163111267090205641473401540066355002289873103717395833882796177838233072732797723756093978528934484542298368575716914266278788903971992338425385412039480396995136392540036259954269733664460427030755223480829059043123141149026327673888975943671068466778989236673703381277498337180702340022315038310049533552085862282277305710033104321956907937971062404055131304462747750309431163238567482240719745324562086339277603336673455135179624929025854552168690159643560560157031958430703539925764590747840946410200659389647779204125349047288759917784931608578117124809777944192204893964355168308739673257268514246208814086114992900485969707381975182297206088177871358749291033139366308353152149675358382304889023539644709290090926409259616055420335573012071836808514420993561888087818208298903009810085936273838586079206460897891639036417296177557733206168274399301964364285683118420883188572648201611004033641340766321210402620051201649893910212438979007997289406301470120423171128496144610820305111557003728365109804109869778621986425397476440227425553396669907806596100927580926557055499033799474098377642604807929200127102496340111992234255876457670221051063259632834450138187002746340298313085612151757550768486661485747225625046869498511558075003394826882560832436893159313265826055100731815156164463514880203738955554569446391804130752738407082129953150802815847499144862141678955902926249061475576733774365972669062614282075365218711418798805710704824741830234664581411147864391638667978199410069517623244086638893287294437803436622024135398313225161337589305708444585699417189286080139702578918731251423853295187994759758589693380794944736366186269908884394077988842895792430348537727489419783762028194825260648212441325581436619028820219221240597392088828530890628814522893841266495247240726692720285747597476298450618823953624627975385874956763471968675685860686026939322133610444535167092037972887642787948397466787696093676120638388298359143717165501812043901155228404151732643770880588754582856138680453200624528678197972414262757805747991832681294710588251405784313571383339613233815937739194123698789883448192340185719968348337308239253249869534943461540877134712262118478629877282267199076043024702384862845169971798974753247562508254395698489231621424531536381703418022652432729058559795076092208519557244230806736207489882985509403263913455341809156855165516887103102345814131344205497672111658466218664793891813271373812091201612518899822507579970640168265039621928421795385983518570782016929692970967442570489312035192075151636060387221927557897610674521481297420703658162580319196633023994885870046881847701636923286458080982515376759876098779470535811588712057208244033892779741017267932969840125976759261809829509319506299812277031983083734176885698939902968138504772014470618796014664148153578174627320964158053216468337816501430286960326092133534313248913333396889512376448472171026064695531770190980549181886677656837061659469622443099144585945425122138234720358608566963371585519894346178162065214862443203443451021462624096122113280533356994064572881083639597097113048801495826003142873365232912262117979159706320962552163112013014614150287559414297659775430915879516960347464115935626146154980956186693825939290617675901235351851053785361206232210785723758951164272227481447289195112398369129498079937244360230795463456287872820545657743495001648906875070239445233610155724711903116585298364814900107549990165546462247048479165818830682917335956427084012565283449836281701858463897709737693125096986786708673656301497722679141725064591357342475305625764982806031181923103131219143849271590100930507446180502039963930142197294965082789583692046069996165530300484121006620453321353590409337396850232660590401432424844771477398003314410727599127571371196390460382321078937490220741661784995316479256293678869740077091136946275163273995124384808841612664568931542446743342666230704230393854136788980977227403015184390165139275660894357722503825888668331321630282198498981072530939995706321825827462701349389620276685265079865392702978083394710173803379532149267705719692650538809032323391014033251469866829589573627781290261587806825382842107546243673422601160401027246291232208732887764714638041013663468823562249583578471102347665360793566898984619726577258920910277847651066408241865227207965629687891786031363890987894365208142813195719276977722531855869450864814965226801823816190695117900435645220926210616946714905936154240768736643889112107425199005733336817149090573477025468762125508788567429523975634913502755834180730124927763196163316623060059497877379235218216695822143913254076092372414193980977238564744172441116776026209687549808387636385565450683694982486984094103783623053904121603969277109694574820919571229865017886262827916370674350880405535742731775282189341749373855695874739774975012066424657884566042278169536336560738029997542405375077586919343353636197905831924859611090314385043873890936644688890028483154221577544110034751674417485448010740322802526746786360542311728894483858676557751927677443797125891042928445740729750112329351179616234596854177835901969950504081630904760686250608454879060196714583869369412580105508275214412092353943225237965057884202922009285842544699009875117335801285255672442337264536046020125268208963643090593581576253717651212444014651868004647864755811274461950970105839677685883486321438906726940901216882782900805144872749038098073888701676038143885630411011910288276089766878034463630798325195625847358604335862780628921684643585648264136992657104898242962642508728074614762214875093917188190200562740172307256935990737235905029608426750411637161476784057886949044279687099809901456309401978472895023076413542812978402052181189234229701711687031811625785685891781584189484236052996278170827569361961874085118149400679405357795031138106504034355949525010698974452374387489371994902063282276055423702480067379003965200662746578687327704502714403861956912011501338421816063388612226048449213455639359510433153025001580609480432483490119285637443824480997877523759755654747447775146688008071579494833866251556727299417994654017936950459342937025512848453896106875661894789495327747068282232378239226513227775560518637583295031252252040822209027382229268235965174084494534518772512216266571608659829825682915217481906490751509337269103675481924956725733557373858570553899431097732801549812687045543900583286922654592815467444185054456902044892998834738462134491131643697526789535542586902943415436024168431270179831371589833952166103456002497786266582750252659086766483356439129507727285314566389332483903201154365525915127974341160450763961537194289523187098618287226415164361058542320549372753378660975896751903474119025101538457026991743171665606022303683904654637147705308845324796778543764399301005647518384890912946309640380915802212187635861381575676377038441537114898374577975614227499390989810225310309884171463633907120664764091153559418188406529387641302930336455833269482626524462595504629487703296378650682029439085682226195650282016413098349316348154597605855481451617250938002589284000990533582394095036088070755323087273015581247090431314557656434885370511941810517813892963393501874602051822525842276321903719096243241867491761451111666614455048030478594379998444443440056314685920729275147114367544751067616710522688999031260043131666875436772029445280983411734693336517230385062641457084290703055724487544994773678712091633081561854371577168156653265339728087047589575539447271728158032577430210161378011113551930365977087069410686445900287447293264407099790549877333489265570676952548643379990913862287761122244823824238892851610878361966790709919253333542910436144272083133849253555116495988810398088519407983387849784202595807159685290370321906832335424265746047228559730633223012084300484734190259823818649794705341731166732202747458715786043353130513257639754766222541156013937500275583601736073078804532585566842829423245441950385676022974487118179442267061839857363508848069846286699499880088647241645487067697639162188066521965130968611766042675439705494144526170677404074284925320526740248425281348258591442557483198995837878816442705316710565350709674663369411444061691980480585410385421348664819329430427828324765663226172588331181776539227348583520723039370782596342430345335616082639848838480853273177218451004951566849148875445600917352031503890114297596052904129704068787906179540251846586788350167170572697949919821819976728402723767795473451633380495562880618770144917175173538427049880444128825933557898855181766089403416998033284881282067964930011955479596770563924469426605628114094848992443481752472644588813435098753862556517481350595413554135824171978076588744824266369413379307806754877999332134218150217478135847683291376342715242279378947034674927383292759072959058531846101040807718899746832699052238900160670849790739123019924852311810385264931640691010365243863224129910572610362636293862423473490123543764916960667521575347861821542170190423339048802941421621837771328904921848650945793919598398269433584884443728518007732068424641116489505401671199691078336113509054935833760366488741017065759155692674877420343197361158913683236167394142713943471192398520224450315536646247560007568678270739739101407655636723453273486651137994244630593238960413994930606375294678457168582836635594871394128363592548311659546051723504131735075119818279082945095347941531042567127918386942955206234023865066957120804926329074603072277232841812819811527859691642038747810434248265849550893386512893130660836722085343594535845295405885329465620852476711975382021630437827927123114610870869284266924814005115774637526292591749345578716532393131131698313884757979170251294798536181649592366901917825141001491238208518875301699128818435168618704677905960550213833497193274781959950406195706898950780248662676106307101184483303956859709016096923703056233839575663629684905774097198554459244879833690010129724793880946189214467645732065690466329494492241528028732809598387836046313584223912408769061812843169593854009520522891475186800688940513008706762738353171011259355400340229540774208446990440375943848176867183274351962205509716484727050495221475902240397778069405411001157659068002936602717929079796292637435359720946667873295892244684067607017073413750579792566484146509269807813657885077657906023244484402217352773585404371621868151964448934379885717073859083179026096939787450885243966068275317714960643519870307113227069663754407601366584536428314407112274382406238802009785256218799747527027900233628528232244675392665523000574236192744038197391136699859048355399751664905764214913641196743515961037369102299485519953216524075408496963596522469958424274243465821782045513301518930410544884191581797728637264900086316282853556201300430706487767482344263095079589888722790678121485044825103678585208351486698508823250983885064985876660544259156744111101211535893922206174966291664957029160788253053845785842975766153131896087613612756771750987907164815002306283742680675041922521944197500347647288087854791439423261644067461899355275013919406489922112676980602389119161732241546829162574938088855657912726420585857632388530497311034389813140016787075823082764857775771049477645954964100233212261898734348305177138497545642222145880465075930575533092519205133166122030850668285495984708828117844482528934685696606115535849319173053219982486721749900352035510437513303963902818019372842837641023398511722083196633153679936547412572375078385296840841502155827856249527807460489822436169758706656574066243530055398357914197626504692464968651166673879131568205818364812711217070422524160002673599246791344834067368307987524214260676199453752342390164553702115968765738416561319209310005718863536161448442218893263067026917951813097585747516101334661332787094483651142147412914687298051701241027827567223619959365806503187763410175809954211752418176073534959816943316215829369757202566698636059987028870325719254495759731960492521130003120726596112319342404591244816347473131349323707738579790046182481555501549133724207669004909235336599288202889285944119874902931989984491371928640141190073419735068180958775183374741687730845316810227996267218537652166509780277662429405714629759346627271532267610945311522280560164424035432342348084291720990325940060488332579742780177601955183158099405004215869751315900434278666659978023319144406540168012750854727553762526507373541589243849878900022598461469214779629000399803559826308534377835806196170068446386745909026320106494293096454703994663044979414909321952280444566634164973491281078370984464830122548475286207536535253317044299994164962878918088123197487830265678758308638479021201318533087739561579948335922593182439399276163573390278333451633213388609889203004790096901669495189502881073152607788816097510431471748503470457734297869864696928821958126847698746678562159635396495614138920314163918911532123678212998262714150790128354711316249567482808376790541584337872376173434565050668238100204029966329197597431566340862815949497550056662521500483337782522827226654386641251999910203784584105101240228556281597085728620508473495498255487302386179982696813568588898772095193812349956417520845196254395550900518515504341152673267939142254974891084580979932814369501121313368355550149425906621767636019881814076425605056391173866498199314139200664114511492296324097688290079252496716759735954707918462107040278489397495739049494605146856347451390395108870408150582995991704906274791686547498557069558273789359421874212198182131921595587230397963191621214308140417592542833126147482093165090501278103281962306872054255021077211499507816181351425224280665923104881115006751364940102816369121079839871866412207732733379392928045148635090080453748052438480124712164914416677524008876159983883535393395787920763736517861398184539520594894109060458614614585083088707174912088363514156882066633171709535885358252379929463963189922188378551767158032735484203209275337902345486355205746803111849052126610630644476625507176615146948296300244844586611719545776363724814332344773633822998334845230442887980952357754439105356117751365485505717088847968981579146553477958031873660713280269037564764870044894585474129958906977115473253182704503861822509451500110689032171205317107492873192034786984777750568690643863416555645979082719515407188608386369684149853162590336980803057846168159060209657286084836914220435045097120898292658588874186178601851178446861740867202762318939113913962368587138077491120261553554705887400205435540477107666730234927512981368549686319875751678976022293498375136733024451601583134501684731676447867754450988919186570952547819708135355214601949552214670070663483317302678480007009333606662457563468860649500028179761301973388255111941717312508872066314083464164662181462401743065258917424897208808410015882245536661069191710076184285433359046551199402999827872354975573403940666973151021832889374991054390265700661913542218311521310414752147542603165854994407364056482402359189087747135113682643449221787512790556050127940126098043951905595952116853212126972063119599799846481764005809489466600486200495461411688626304406835872048498244695444803900935472106063702044166145878796791441094585576466394758937971065541513618107272560910459980207051019988414102621631329488823720217631770284226233606789814226129588084896875294391829664105965178636450143444071666935963228225526162672010073495515743473071020784014980166783193333615952985457073981775646263766085691763717118112737822027183197002943585120820987736923335808598506758757107951308650005021999437534549765022923384148364787512531543457378424616226002628858637569598272038530546629422358444322828662520850724860237869258128147153199890149106889798390556465489174981326729905755767202138317093212321927419604960006527392264517667023402397253074065763123403973776974611459803315836067988085674476817933757920654658989375964408353020636327037508526077171380820767416693460307390794943528838886651615708797215332773826819550699727062394107751219684825488085491862823656561506373909186488109439955041604267452421871830009125989833558253763209205074914973542176209510506556437149714212419382553213257786757831456429997241896432341282160867108305584699342178297949536173916450135330001495604258260590287697396730652157603611156072916022800738623797057412443927031468046178256432535494579004959886923384397984552273443369449562347358960084253613998024197299361677418387013012642129870239271080250771078388719627224070168986366353529007343248284916616050247343183374798345291517689018562741311181067470510216697478980337767138459340124123489946502060520767312995654907185985742012815028466733839948266985199490844162221731231119161532740825476268451514088557168165008419010376082907623490205626565285550867178748980706418163599468746570334215958575272080873243778684619356003431786534501995390155409239780323773267010292608533157926660087366357016062650088050269761742447450605989572126623249795681977592345815415189596148194979265634232627384006164803000564320559993920407212537342398627614595173283828261196367340627128880245658170897016735647905433974807421601058038102209471411240866681961366194195441428026094002006638630753813185485257399992895011161570023158709338876935301059649713933818615733373172333028229660548475416766265251050072825612866661149537696263868364051758854109113127517906211984035159717612437749165456107125142072799343561672472182894993081709398388715406509383126381388183197587875670541411739914469715711588851070642084911778696412216910337434234678369671265677958018663089983269717247685942321495353578752749709936336785755464335653740798384819176157565812857172502651947642765996358281796926466117867893165924237621400046768928523099327658085484154077435491787235692800080234941056510046113355956682877565073371583692977228821640477155416418873231793544586040341845255148148377861429166435946270383765089817610301854223262797803139438491194235973166600006151543337917522818971774089051312917271138133957208136140604995168049949508276137820340067653643022420102874502141134526401057132696873325960559209595791911517407828170506018649664010128735303118309712913855565489997739477760281807899599917772897439000914139278088549827578495692677225870970837594084682882162662557303233815967812919463044464515782259534657748304246072870284825441204167933914553717817771280550564735037011517478962857129291348962010853870271341918248064924474118831045473458786215156840383605938587267694104608410970544942004454312802720314760986517224989522885498952080440696719695406114979463055449140542161615279013564885085690496987270316877916327902922041622452347601333742421066382870507887189649465633182432754636503376614912810674071285316706218886624591335067252036896979889244404141080003267697973347774586502676881326181657425939382615383372835833066367771810072414074358981733958362680558904026179625487548860252326956833121773843449129412389686910057928792078448381300397948577893809550080150995474157908317230713244556378271974262266092902119223301700424684153729960598990539173024150768959701639732568148546241069882747565096227651643371930194395165430680879045458266480867057788675475731077162552849318970756364931273383035531972171853351943386948547967374888420820660867069158778000506219583008688241359117822304085807317510028455340357255816835964537568549406030347357807368700260247524814621674285208858598313345824450694881671369028652772965811422971466634054078777079162057747073057117807732284005450383769034075755396417613083109765379819657181780790678973403981619250227715944694750000977961815944365609961145941630732362756139385695438364606940355396700549533634772102624440545265339374544917318216720247790136205497725374415396192007224787782993309982356790714759433738887000710013894442857364836788015486188265165092753129746867341717633556696633392630284669892277529128212720151701718248159825186610510076124657546178082148659092380143689123938912015418785993920283032952325411441996719268719885716499813524471389067751375395930073197841249158592183680164665298727203919065202403512320014767181814292525285312300150126703917976572955206969454562352578407120932549498755368142105658198940533494713285546368513546022865165650457103159671804971709481167819499963699501486482857300883538455009308506929130752273075095294397937206117923237132662951306042317688763860936849506424437174198230301629585336154004124342373245279680794577111879152254152964639439139278853328495878583634681622019821786640339174152744394000746562445387165998058268895980064169823220190554111621014908728411977693291667239957439180992253327290125616699653738926145786005298406344490785047559615682716386527709007764905782496760681744970343106941393293763063666152031276057277817162121105813206490702701894375019708955107488487691111524572231545709205795032249133075666942321070644685502418273957707338530863652549405669260559604761525085872584627516982391010888839965996172898357304383059206454069812582710171269629230347156735726738235195510880244683621681195421144958955213006486494998950618367859098572897952957711302078458393196530196187944454213754347288243459360222356106803839715557980455148821630148780648633340846841762688898701098553620143085933961483567678784103741836045709679457413139622552174882881953166114911906854292537179884380596931773183021563795756118174985548012064870046382752460797592339201669989278825668003952305198078841076076653969215354752774359549545526337906733435445843982699190387759157476203441612175595725854127796630624363297665918804248180475833276589781304435901605724655228026941778591242892625157885067963431235658690525952980137378461991923932296714505786938238254697370070658951396617300887443781346144915568441280043882444832305139446686647247504673748806620609414684564322451202693105178094948163059650993923825116506887163394130720187421830840662113505581698940552149947128844411169458128152327533963864385963086449396879201822506642175245503981376342159975660073182708007131477638866852275748462139695413122091916368472440153167284065928505826575016221378512553207230847444649469914167452758493519769102085949739690735464403509135784074869437471907959394433734537922468856418130346662853612620057208138565243697985595998922471116120962380435197301305777021532623360724972206995991470487978260953571471811237484533843867652638474302179577935585191590633516142093761940582456722839604636684372227334998772486090746329784274002548221467654236392724857689869550658442428908921821854841947694048327358184928953347441263224692807054713499646877562284637131260290980700161141590618707524998157815064538283277521332215775497533851191585095722793992869325149388172144355988646603921310952412234853170249295776646677300524042464895139078613396772622686085637195269380895408319070608907869343596856309465042515065320788213377987194846477960825228212711729837037560281489085569756499050926717592758566332581738327559470973038616116189984104020808740982788390954531706966930951648990000330043191944434753704817813772976563117693422572298886731426108888117571142624432980564893683638937952901565567332319112019486710824951496626872341589337016685887587692872324963450363210689691276798251754197963033094646676925345807450135038595465234915655654145659631574232179043681900429224604613902791231617529106181457985117716429735036807551430072151262767700908019729623477311123308001041462586505397280999796904562427793585005132614629477505383936636129796746523125711816791213264711967105148947495268315207180800102382783401413043761179406777018849986141449910346322068421321883623676416203946754513608407876845502752029227191434483176980813807315035395205959761112215523586105018132935162360301141109185285543315867285490951664268331335880527111474156279615689301222769457131744474127978449205679549424893569649094780859933448580069141956627903093917025509224663718790717603123745609896665046417201399447321052745191519788684566989975329117905679658681278650608122257321889741577618924648866858163260614125683514783475872822012844910137498897702233251968589297458500046603220663381969354402832912960499463432405427659285546748016165549909944287049493216722492047605302271228987918686982593578570047026700077637503763989109753706096949968413242502161646190250504404998304321848293723581350212478364090320232202259374811129280210308205252674675848450870983189399927934347442394250147506686051748759115181465855819436364208416162826681290525478148833717115069633791312643572968608800562135040504043462816621135083851066361859563142456278998031437326934827282754515697926408654811764316650621123103936870332026620493029999219825636794798189546056058614104166662229083728684559243666953084394499857393780955063517632492409213482820285855991702251608965336594600084388703020504999077015425161157408798066744845842237552495197617133171184290834249338979340723038562276216724133567199329410776580281153516546672475678493742783967197809288020184154900595133482343250092024918158203510715981663461210369791528569180651715692163312025765673879776439285808385267269676806215468331450483551408625467752481466768088474405983619587278956696361310437535576260907401846767023311647955915777821807859150336243904199488720110325680629667289344365066665755211533572808944986843111864456761456435428549815359798501018139312940391606227804291203373649585027948350335233555490259121972380281496487009237983549179782624661387639975780323095978254734346196805915358576348513986568463330615854474182769667561709658236959572314967921808301598990541987067106818933506588051938018098604973787348852112540452263509176744629339853066463116903162564710651127880570931950014046896426614937349628093499584167582167713130729320504297064225653083912303574872241268882079428353975033058248753288838779703879500857603095989134560642766617105626050875264048317533187511579322478626937145737672801351394765268391676070098272358483772924063895690151008034520114819349471172401171615988230522991538134127454611606591964603934332979304631861570169218270051107264347188639279365876691073630554558485419352559139221258446141946712320076935273157266136987246247478070240908993643979619354635931459419526530471306051788234416248191638310226067120369016667755615222193431564797874335809198170177939651419889724371029523746618240038479971130735664374944782804355138250386749364991885550755444945258332521676397971923765557138414888590536664881908777047363973083960729900943683408886568493767386687653384398983961172234402557086110247360102182023889513776254491523049965658253608034769307965549333804733623722146316191101358926845494243864131561913242210966979656519339722160304456833894608282369648224269867845605906868042186039423399642548566115450846964078732450114554469959654140166878241765043039943992734915497198060843691668247093028899209499664173723853061244111398000974124388410494715315289010254607671665520869883722475352603269136172242126841929649547259135023472687419464528328820124593286919805996317441261025092763385534349243618940370009024559647338964834854418486811316215247943913782271689329644248531149000298208068269673029014384636103317650854310826216415247949630109308927662462122912194980285779411513419219421294326760242293954661461741484024782554131013361709387128224364217713410127764466023463656301024266769595619171230309370777564035906138230667591947947863132580580716720508393219707800518646632913419801146812433261613924289431345715562567494330397228904237454159419630290938334986417163044175010040848208562456487460890535572975443099189454393364688760624530050051321917248564264823814819454927935511838592710745494770081642434543703215781910498398171359056338018848053969096944413404416613967773875732900408139378394998633129746586234281154939732205253379947838722251620828070099623087868436915922823668144048703541052768103478429308858267033288586177409358873257963431830947400290748518229094865858180924788068164112211548647588314652886181409784521870747541088451766612175133379760704143166461636150081002483561670912406214275635201685786887241262169907628622896974771309608766027085376356840881604889195299046968488310326288369294482565915309345036446808114002305839795610776267272284725911895173007280111671743190096802349634426309632000208804268272638595469899827949072286063266079512944458633227098194384303187977046557974106395678722640118317156111678550483857030941447685443856983326299518714887108892729912179372235935923243491731099113450867152280333343445718179604610461582965392622279629228775537385241045848637247271879298149014298822384551446826916931699975355384139488690452489727255118976444314452444165364851496926225849798815062180188375730626443156775795002468057673504470683618080918104292971026642756512221263581362792784260981855241868494412807513269660203091982843619419482447848792881245845592079519559462541967031707403283705456640803904300698419271869607171447204043606171501341574991085362450608160428990256195551764423881062663012382472518990635700287425086309477604190205442367108711795095971809665102962526959597766954155244210834339551806801858030760481773459282770885696934739754187630168645619613782320533017681159418905436744227526609398314971768055648584813235899553176901977066919113397274872769141829660419849974273324175817051337324960266295449303983298984044224998707715584609893739233135854998440085991347462555460306977392553118731088508572455506747064224327842822923272705624127476484061415585097791379460586038202317435365488331756864259880707962441756470201740053478075629721652362773076101691825598942646910458888707615532720983924935252010398224940043359142739691770928825021545480565054798713428504763659714029761388135411078182755183047985022403250207203482473238728114002642352794705751711681261263849948746534127724737689983562815753340722588533886434394275419929562848450652564546253247893696751017584583877106495821224744108758999596330754380371944827650670502085531554236099849208469534454259880870334455852660504893975137555964599972296430224517076348444564621182845213368110706648985213989967722689806795299207198457062666065958922653910504017525439930888599603046826202183566321263454194466891945381039058112906230389505098410965489722444473166754200907800472574352206761248988937911220874332762600718269661576153067215034889694724562952604735014516583475521696309515303663970132143334021112690848819974631377253659724856033326661995105908786945125042032286499668834924770575664630315026703338485773425629850983891947204179356287276936229213743707303686980464095290928573192450610526930961695550336536117336551037452459007652518188022611599638077182327748736680042703602791869220087992011051278722220949325470689075639772054404511930166038164823349483027661023699767961760069374034534244629172339508525692011868730659167819305862985768279962646388577592756519093530257813434830073082006006517304040121310680827405558499981758640439727070089784025943440229242958850510964561977768189357742044065873892366043915085367450536629213289713425597891641561007764110426870131297083952504549083127944082997744273702728510590622448734661214693899416028718863817115835459518846351182408226397456722931515760378577629406795504088818934117144663681045397024884557506667741950024471910083036054893978672763028288976575715707744635640960624153699379739187864991255926865972043305787171221071989955957849105832970905547650175025619409900062902853366908128775147259854479505767429182784274895199604286289563772771204774029967783810925431091890083053294020295191568079276771019574382090278324059072055448736376135474896199933716988921460804637760415970549575746897950369839517184252501673635535452199754920614594249190541372728458863873431596427890378197595175221065879097457358708549998150508064113769916466600095001330694394155548788783017931439519412700589324724583714614944094130933284999460252353799556175451845188187065271760180600590048147123156296527401068995665726597453396482764517599185485569599159825926012703421980109099967432187060718703805660509589134992605007494079556588025620486037680559532124515680618329818583929607315917977839310336667320447194156306065631477025405177205167451813819454367402412421842753631710586078158036036594357238122734553267792861398000693239797765162424017543825069855813325972724058027611363857910213386936354964436809674061926272483930031590912601953556063020324220011392746533406394047066787394011015274718322715854805864577300665443819241620357039149116357956976486187620490953608452430487210024653923947515756334232371458753921479290199787216452323946991969305143035858381563829331559745568664738555011729524015895208002532805108802036278026261305037861978385087840875373322663999663290283415289240634377234931475560808590403476177389534371484621760700395331145430126507120906395894672064486587507073794326175297600822407934828548825976223675785945864976826887611858296531351724461873708920798162581406850412541048614098611418463653121486105107346351579451450285760947487720994253371652710233339145004062046499359484599725316974838701154241705551872731010101690147241453216870002266571639934113733091231329355164235944866392140896446807414389872670726521241568843637225049364112714498669571180471357020209025819039935947466439734577311492261798852666720515933295357346222959839367648237880359057663556174485370469247585224848056328521883094380706129234642396498427777923851253571859597336758947547756149600279257396105485980512020292211573980015382347411738538026730004237324981768002039415824037189395064813851186519866584337592839473678606482837081681655781210817752228778733368943290177679957273100275712480733576012886370511037788886847361238447228718394292281163198027632399909509576007171448876090029468134590454714593060745183126218460418466701625175636610822246475198366847890192666656555315431953792160883616701673206916945944184618883947456482701363681475602640991607264361913413044589652908370817816002040435071128463204444866316392910080298011102040212224520433555855664876787709879073688485565326306804127790810037341722675666625163812704916424713421914694781666932609231267676715263299356532013232536736806318806156835903460659781534567394815711948230298029007631755789072558857346870886417893074020944606001338834044945973487553027143437875953227222925228944138718620856547701870082585673038752478680674535573773948066027877601205487339518379856640177932521283085994197431063436516032175941221806185013047854986651158033420782079295529950085525854481651014319260096031632491410198375929642002366196003394338230710038512716728751071408850711413311365583846813231112284113791810324803778480613162716558572232941187245168819024409404051088877433118453941787972189179163640083082960273493949737160246133824034538774222756225014558363982227765273931655669616918949454858826378167980537652761616172478776635185896823472704397960634687349164009841013690324305328849428352800625297819352032171294001951484932911401956701636192270693226225944059051592539176282812300391765286982918568599468245048262022052552185411496777184774633014022306161212809566514118952995787146896185866557149182174495382441978488111023853086963852766626272193594470600151434707758673357674068851378959439024229837024025653947261699606844143370479116409431054603514390728704980499798253044833570092786877057459817017813542872855602269547338756199457919990991457271161451572026108489310229340703774787539731469268830833725086087107830641979860151908206476418296120693938348608286450001454889514507048277030339928582129040170341799620214390384908555059721519245612947740164775455462597290164648799710559747125979282972607766834873093163955566324723721531378438487521668601637362990981830882947814231772383965842304587248374153816268242123883181887127656701708332735316865349752998825388034778054641076664152185473468494605856959126608494673694148561596590310833446318326575352932093689019552695893470889338622036816223346271534865640904257035214340365775254703954377408608239000652704389170150229722715353169928142811254940207304003287396787597391874660062878503715053148936074903314016895053448919240139664331808015186469153523569203934716289974669704553417699980463989487994425625522414340942799099860492093084452832016598280453980314464094240518427802209679671187852591783963079763540702508060447349232869949598518111797086012468623121096101926536983412056394129258308896905712261808344144703570047994572099215026869997020804826758824416937221882390901404992566621479994951163566770830538613548787218666790477741751583298541843727275906696248077750005981091383047535509205110867859270723106028999841081147933819289862504217318404209242929367607642802907724865407093090652960475773293746408844045330476547792474698437123559906556541313412561528233741195309391286736169547645029764937217632016005371011933267745868436662949704771273168502409065196651567089876783886552176120950636020970545248092173530471578217878442398738139626061726307774411737023866856151801039913039291992799906331875895793586408100983520735317675819413672376169659514289830259618290100288229265381946720294234823310242966112163434191194741184331095302138828739002328440107483571517685328183453601529496466787698902584738272973688248274802466344840682245492517194545111052068060546836953784198354431823654029670056321915713492167316621579419804742468326050057054994026370701260623906741076860138134420572502141591658609763051238758176706730492827595657703757186063382935725622930573158362289646907289124169308343545439662845711916402200164971256384839471365876539636749828232035245295760417923964292731403960344089658119849218790049931660466621699647888901939015378273546825022030856445303863434586665123270474110398794747715331032330652040326585426640083650640120464442154550855921537735659237920620962754010960279909404188131519763218555012104985793940366122186939695999079866407322719513022071866348326191141419546836051026152741749688599347133196686822764677412981498751868861057771602598921645394884015129957136127851178886289357342232325761977732272702328938548644829352819730797894401358742688075371724577279780176426703984928843279476569276944803609976951853850848979889243104467416024352182938400508241650384952012471749169454980249617896439539859543193917876324953153493250171429778469808719471235124442855176895817312559788594475982728491473633583832448936007645258932056468854988982070883551299750693276978012930338562504712731459355265318508949796718849564936522693872275239197456849135510344580753377584254597469323436664406042745705356138756882353983723931692031626778398502817468208117282342612503733113793272224465802803256068285304232814124311372410990875650769005435575342619530376799085595399372552868820943613937288314875943688205969466443239465766974974973180602173302665179084243335941549567034042696752303888417742439556905320268812014995438007425351533480518860611488407876228147874160725668372758917757501882557384056220829621336342596647231498245611606929567714783278607394782375839118149005142404033162004607060076905365293422360323892910112070304687583958995445183771838386244546274955440601993067956117027447396544663236067423744371578349177704134868354996637486170252464489083959263590689316360869828080218891679604363123993688726973944717156960981609278961205715786356718272729091185247976792054087995910875636103954017119457275835177271362140709293350854214986467369695866133387380919451873815440953385215895516589330137503714585165095316944481803713720173023314091743560373751576572768903859227562595182108210020756738528143079968596249203441544534761095748222011767703059070541926704880969055829228376722823236520670468550304804311457079970335445227993813829774389581309189761540186019358185779159758439280433229715394875337363522050030347444411104663429112802845651364451638810466011612808935739844358554678038857984837121243444438586537593989321863560808745455129650586841897902530697116075062718063921710907373570154418063880621037255749567228745197736561619500164125454909782997383179406794667787015966973901172934598901229853219568229269021806198110148892487978341650793697490440878358840885962657751959128043293749773651654441132733208057086681991206529767525102794590143374219849188111332842890117879980568984895666406673953386669386189293173575003105265455137955163981327587380778436018744079059810006583323757248673821206716131914716387380467135885625143304446871810584905882076859675923657373819173171466725786913223094964024515990856571127295079844208420587069252939791821085984106030429053669588962743062967158155906262839836538871934299309717290486283937526000689056385926192766636530658787760850634139114136043875192814411396850251160394588965497540831014177031097350594804913672232622758215959236717551307844678938336765713534253514132380447114576599627606525108026035272122199156770485744519917147820248892855893615381637789854024854968836822894011967502746118828604109469791103063495508624753983512190703247415588554602501690343015659806493830142089497596754585119845856600578178462662346876806517489867432609035253259134584485944549911585754874281603822782502119112172501551892616139634306913683199702678626802892686669669417232664809632772910794891917693171998427110868978863635978147782807451961218935239514208572327877828993642400081571621614485991066618639956416102679454247434095457842498130782537098918376671983522025325856131859084584052960096803032203458198894568467999505886142772008499245179018264259557823051318758190230261125649754003557709447968760938724253866449167270605865600437484476105861326314028140717608537149647918589498797025316422394679606351548684237768098818460205852504606890196672816500973623029586130054929365227874208597261529465827814879839293854792570934117012604357327648655552040458138360785938718480425152021566624555721802330042297563064310678456536094068181750562022037702805763213157162119235655497394697290854608759777632972214189193590461246832508564405778462123335186478905134958125053842237974040606266433994612003076105098992817466996295846662691173912256600273928311506912134802514576412207477255960212675692406175315277353404444768192527897960210893025554528110325870385669590580382685264533038081665066841486564265641793610563147356558612776644898109299407489318132250894080366739800037570561464822416553282180466585749886784165347767949813320809989654445773848651094815888503041464664220702408547389102749943131521502858277577263734796883076376840440279883543117417041412300129084911452656006153141508664529956941222196034234302764976483967399654831938941703484564904532050997803696894993957020651115274151468712433853428719969286204866656037127816103879469050133319343411744065181034643003306314192030715540416812327663162072277350545573428593808576525342462904242570780408330150215892213393863901530014852465264487684336679315677437869462347810901391468569522565896798328808304448527933308357719164573210214623812607005843753816455930087559392946835091616867742532413696730037154898813699042819219305294093768672385282370528153320050408602797835452316394977208052373204145982348929337704485662545065062565533084311910862613188191563904315574182744289111229288634392860972464492894877050446412426776516674615041322846830066850675496318319659197544531370880114028927722245821526237792354470013132818132875160088174070650641166029113461940638088695917200395415221778934787093778370792024903976301265353626444077544823902604169937459407550080077148117266452317324509926763181432608945904344522122765260435348815155944203885406659551076429895902996271840729847332957934001469066556214185154200186980924142008480517261791990265517434802214950331312869255220691518551210699558871688577886700728749457685230655271225908952234140420656703906029651524688381610106204056376775699863644361620112038427306996182484082405562692882792317479006045891904701099361928553286896489466005836466473727907762095771349269388204757121543816338500279262552422886590199313582880798170952026852396936191961704499448080466087926494341595802891467909028525781918949006231004657983177764293075808398370152493914845534461670148746717391883625081037359282298919877974825148556462957794348832409750253077240749189105081975245429715067817382117922923461893116164162942711630504744286312514722933904462413784918708831441765812292693815897732662779973649975721981545838766145472649750895665700503233104453712801033775544774260341476352326948265011088850051523972168538256475264609516478303556538308079592465680941417239285508642442584278814153103400097964162193337452555179963249348012882060180552252537840868585923356435244415610803511969795412582059202666292650797731715083260622480239350823369879688602678604125986781453907417561543878464332184983203013659069558805840362271186865349719720341335448391957855033110043527598278070325999637666510622273217878163838358534940021648118406983399355561596783235368708336738193655218599116796288393117913692914184535496645210275346079090804297964231272069428162730317806452973376476771732557263582188949409046300250162986190852415511347787806360568160854628120086189549997308673208784574994068603276336693037863159996364852170955393420632282156485875198691320250674380751732974999483543502304470948090631601295321470582289280300078524304400204001343158620338567008523292245174309620483211393301285797020527307227389210620481937176024998379383187187812419038478340369701575188405899456224644636437662820338154727423704413718873602469008605689856431985415573634877587622518573390200247978320414216733192878566196726201439258046832617078305656618700590299043445836789942128867610480074954351248666031890138902315685308374124178961941123055304993929419702062767181390775308756031750394701752576775983451273952557547686334667479880374567901826721968281648538340000793930136117235385221849498174269588411031650971056987933764776134133302918718385666375409110358497337071777622883248812250268507616063768982111900656240237601459862785814347076117898202605042790151125492549592805657573759209877569548509465265502182216694461921209581007055143115274265342123312221807834241772066021652177910230898012296052363995577758108415290790653447436339922395186633811222437740717618561795090223549898874626630377355342902762907299437346835778452350163893671083395084551364549630678754354828629047437041305184466119331155843916515989732092154789094236886576716584775313918857656765551342387609020621565047821406980914978056691779115286420893472018733433277759878220147927479652097274730469452948011050880288648002967809291599848666012661610552908138105047031301204666856193356942774584250136008338925297229382304158643577028741152750991866555971705722476818296035687194622778548449124855503350579333540363099355053773673159866045798226531019723318968504690891873285298934830604856838464841745932288201669379495153562787294988773079946680150375520756740959759510258731217375252383475393521042713243567009988610687625428092338390303544082440405776618808036172502237012587294517337417659449305972579618222168377037770444770809592876822893534385730880444355137346591503612660192443777119773455598067893897658640909088673174542694394068742900481100868977984962691606062576933017451115089772000300319767039227885149318878984676708055317152551996430906360636833157158180488719033617495882188449978069129280700602805313304157213152826111002307528837478027901126314888515660939114081541735363330700830440089562301827829234663513030471943856411019545393870723769135155506598929872889560351353010279251539077333008495143251929588903099568711106957297167971138522738115357105481408199260443037237205580538867738289983119954084788957543213941448767992816224739036766895342774368258157809885122605902086976374370109632396328511432603677177270492047361080548844523586378322407084917504577284862358838432182845104801052237449521735189365712360432950412095130804584912588326532584950159408636294002087178480794011043534076885694864627697689408871258240919964466323508216371051530179847031097156140899592015540221887432422866974029819865103204016841551925639279286336402938576185523102586754054751536810268168787583096817419224243262644775362271728549988922934111282644013166467052308958901075165739198874641057180221667748829034098223941518547332979789342372595330465509022320742210627365321114344998652492580984109144379752310860204013910993382590336676753332863839474687976563979626092684823100390234472950328236703038489307309460360959590863456740760124938976642748001331183070911927755392871621853774360912018850132382609750667530835709541299229616174079493523235319687500393490491111104032828369672662273640269888604370157138376809456367085460388924139002915643656325419269881743423343593967445282864770422925366857567117452054493923388906272109780851839299315868111552378305140716552679306499016960525191201181385992396536913836916376305613780596710707430415464636077725990119978449470492428861504323682160205958468410031901937311395274717872616382100824376509281906672995820136336177666785162824283894432137531278331186648398236395570296938813349619350083450094503613401696896701123434899961834314695727726868129762711623460174734183179158798842916839729905545349064080918377715877881062162348005427531732730003988456851871652232745759875189889106684688924616258385225291300446993258656363870614326310423061482501629474697509379316466708167839325791624243816245171459464040010544320789855420618220045509129634566058627061030653641006443787215030164672735539019737885521408264116589021486711478302698874594786541820546454629808034159477521880073091234735374937099849788040678110878729908329602400347172659034653571293418685897633245440821505889820389971600255941476879455294988803924994451903570664851857373569382904010563942016955976277950752968791647983667561766641511514787011570700617375868956793821234458639537774060680158776855194865774454916981876416782216543955124708122939143434412537895762609165358767734442886162637297252304088117395738207880298382434552895869084941644699697587430463978740524685795405505421799129105886954438635808155047067292481271582623846483117575065123452100909301480115515297410482885971071405735840743517957886202475999344581204237637310363791871480904143591818970149745503776427169451014374994822113002124897630575259407726834043417760444805698282147026644290887635996654782026997064975802200005166635643912625735698038640860654508805317962759210157751170306157416947864051767011421372061678236488853799299204657883805398560738407065166592139178969803750800895601195918712853278847640646794506540381894998009723993020373318487420450919657989092426170035385863107575217478437682104526110314638635650557577953023031529249232334615330314416299500102363250138903186198877010907683247918027130801865320771598612817099020734786046449526732178736901524929974710169626966321786817756180677699671306851562206121074274789776082540219253776160792777647678390862919998469125686641359743090639622897931665358461539243495027115212832033882742519459756936609905016149878095060399204288242484799892208524506212448648631431861876917475280130178420132003045106451655140488621813753778754016536324916360596558645674655993135672376101928500484911605798454503376939586593490635891017020079376291285140580487454577684598280738276026614005634629028297847761992201085155419798423875608440201274326871679020391245163727721619679120436584472890164844655797975051898501432386217975661473233608913270988878602803899878991513957839698424114147240808702306112923250171514036086818085867565888718544997097691089857775724397208029146865119332832941640795392791661289890524792683583546500905266630250126569433829416567987667885366629384419275747689012842297656276895968334859063721051527818555704130460998623859189791564254044232503718659853470080432938877142187931216679984544302087767185327775769033445601366457026242164376768126210634525394706563573222775836538549785647852789557735478919546366056761176100203817116912198913150929901783580964433825268078653332571067552930077008852260061696287368358680597384811567365023091221760592844074844700789526180059498625332065526160732234973347346615362973101426422294510759681435614120430311328244072508299000171014631021704647291104801174427327045804101627698674239711374455515453366530304704112463855030466369619711226835084033703053512898337495756823718142259594934937740681596161066591614994714434448870938822445777189288324282723475403708214249951826905389815778832223341015399175349480855930238172301968599630289430518646470315234401131281537345416135117396906246156418771115459884963017835717036691087686467570436292201525061118134536433274279786780814542089936822516250694468383613691130595942236035972420068617180649264325113673706761773769324821412400161499097019120709025520534950979057742215488900348300126944061962291466959460300232621451797637577103011803628591809188248505843821091553973117535478505715228077419306865330607056694105866360449808823660884430665627829011727436007280824606355990695815284293153326787527578544335748104109303747621956439135377241070306396377758265717298115016168742110199132436463300330454879502433497056989926272144000471245326674418117110059439627754542864889484931080618459077677452763861815666033338784620962373781611652524408848260388094616557809924671988649289616906338965761041266007741375731065011496908601216844521045289598493312097412021714630357974014972660797548370776511524567150148120473019540275257010227190025688530090302370137495303378145548789520426257824435829485359923590398360336059581780536958259796944916321687720246615274627414833591375997021334367562263326061747209856517058967452402041261990207886464628861390644856142128833766164097236449178959871454207996386955696496293723989882541138206875608811544547335077679871469753177185511009800744368906464500420448863353370361151979477066123660634128284106075038188418540706461554413433441991259426649216409389732565936612610475156214513173118587662925249216417809483754646041264441311578346591327403826893287170757322592853931299271207591667918225120822117667775370228946507304702191685444340874534991395537291919380170994124026430767271094010213712780880068480206077170854784820549171824630917138368542889102300553297581231167325718654711792576915872687770809700074926157507153118395313576334965085614028215095061435928323458466864930122681355714607399392223394709738157996936494078794759874158239276418809978745578500527063622220809559510563422425502469521854225341228732919534735954550885276108784263905833573601309814208480625831173062116640743898573434564299860617687902847895258022627954608683697297625657556471488481508961974121378035252924663538670714732305725671758912788266786019992098016836241561410821070789596111987322620442317018815362806752588224875637077343698474203382622059237331377003168779019241667900147725029327144514704488826098712856505484263872481297878341493397819322840538743138437158141340479379833082196332007824981975647090886986326781252157845787767629608167174679083970569493300270439428453766853539999402310067735154534103692633579728496322620569596635417440415604437140778294212293830325325952887605029017126748187065505623578310161905843480534055977926176862803308832164952708599882876443309162300244801838269459967193492540905564585529623713084067920916890673370379223000302814877823353195057311607400407010312798230456309820597844630098073279369899749354971873658187092674597476881108510063272711074820621643656916678421287568718625501421473110439337259444881916848018159023203850405664511271861849836819802113893556419275916230585503251074310224634849779435753588762924008491720538523217598270469702672853391921104368178419344160819883321035844648899997499383320217350479385905724490345997462482185519298500276446131690046556713187130367452357211299679525544000598291916104433520179008993412880592543032513992774770778676129768905156547371063563424141928834580560945063158136823921501833130326731539710352305638946574436123911498394464762760313324847181333717099483492884928786209244216467276259756328219107285599130867431554794382670382422682887021274037522833524921487049134189558237527891509886740975811894642185906894460766065514949724057412131634186424390871195837311219610159399515298427840812827697276281466203227320790013657155469931725137119240960812607606864540142318667325370764590741306871297734178066056679394864501049936710683565533271357788591181642311046138192920126429607075926561201836194926328354489320280737859603256923155428990829404028857761028447165156335367670937082657916005960123972950784124808175010876189828128309253108930472492369940588801321000051918371224265245686592069709769653938712379857037194924504045416424831299957725449519570859001264420137770709981330482149331864644428874763360504012133614888773177162521501812044669844707592303108941262470014168453304781971293332650771059476976507342493771691869060560799283219911127783009662843431186138456495885930743892542274226805643490549902090265502494356974695369171733459120908470420762181057237390853253251115306661144357666279849057287904572350033695936929314633482794999627381402698507581318582789411307726523868971556363889866201791145892275494528005835023573403218761177923283767928295991651837823653899945472142048373817232806907606723323844457986898677904173061223469037563524562459878336284715549854139841109482351980332712927788437554794883945187662356909480396812607031198840006103770118906874476535621347527815271746105381007730292466683336697237764700404207601869841720616380697493743690623226105307334522206515098495495787526695466007733654713591909263138867980295751496858530811291107101655218810899258485031442492272827533535717945027695752081181382436437675827186818527307098255873057838141693289145494484729583890791278094266203151880571716820251324099758734246487108408194071172398435575189424244010472661011337513895407695335769725839843788120904383264845375761586702523221054878955642515469087403789215201573561009572857144937903186867356711000711563594538784882140079987944238050241357104132109482181312906027611659285099942346047619652433283151951203476348143421607825763706243838532265580299594230389913973266469674998507950137729312480906237090027784757874584949645390107886460434951500503267822073003221138351081948113315407632985994160229125866943178766727564981779322786139891485261824228560645644765827363379532469861661348579799686835434628218282758760950120109298007376446855638209531982876297597086089352226454607833255801123803799059201765541307004077967363525854371926270229520262392557714848152645897627859284656463434930286044222115423502799496168310997968511257820065549419163915922907767634343095536346768058031822418062399198309725649554039023551932564688693300944394455305536686176159921153648006603800489187771372055371749059801901819534875132511035175600802165084121876730648595511033650527144580949575803287613555929625523564732560782435687097138923088480996393574806993998331117592450253665197726023311300145826744116101122507814711200738468201724567612441088536366044825568834512860748203221782814009335861535513301205005954997730261634162145906497895545676523555432034762859609351951198089931665596453346858300964769818863893661460697735089194445298944472558750140749931414619706466014172714387393744527111187583364290893551581498907124420494368657550583226111639738885152670333307179115763341367892136949365500578300248625352183515553472841473674504832956834806736953977566906851055667432330411994719345475953670677307361579535611482874354471784071487794641273317082082142995080328321880843473248435710492275510377207700274473424353944840585080369935334873277545244053849959091044361074183333086842196665467862488004370014322740242215515801741331499232463530220843501886042818417622590474203869208488271732375443790962553213200400867550939013812467916770567098094792633117452117120486024447547541968960033763389956689613750286483147698978809044801883432628507201339279237119836048930329210344127794529866706481428227132145095620712971716950925970983449537461042151070510845102134123743944966690204130481215086171714302371197547504841333516233898127696609830199890333228046340030189166276805939501286177262877750993441589150051544882623623408451052030069205170153685209444033354307507482456514887657792627276375096793417694797767370986651733955652286505327934716807480950329600101899128497929079702354154092961667065269163148344699092269375727129642345498428277460901451488873443140319009569056265899069214047163557282400565350372675605170091659563495979739661531953816707463548899335917206060254257905269558415715102716423379680481332384685196177222243706372267948153895704354482578357555046566674212793471002192711469453634640875929888144840496760167043347234727199523172034237642431746045543092541865222347180222705372527615336880719952909058084938943680162688126743944446037436715550843985429904813711173854175862053253222391749688499577674161122903081543383962623752622775527838014684254579325443470214838007785697627724623187598172324232500975376769845163227054975943902333054584922619314599083947168518624644159664070307775513924088468911148902989162711703359761331811062347255452643696668358561187572586617222513870529377978807052111994902254822472170458626566762575767790223460006155008185190788424390053890772597468219318608284394877910211412380276859469299064959220706895293211702680508900697584657263963040752316095697167614414423584228817861136526996876146739432135779492357616558602793372999101302111111574307403653921000727334807140570205419302149993819138721784153463339417307594585124839116166639753568419283459981735294007128732795217272624954702973886238706499376872011994053634182028165727966707078493271917473814444035167980207980305218705094195706100364855480890621327937520659976834650153178587345066872160529146417395547260170307110952729306284831953711234442839717558680783117892870931164950121396889169777464347706688526951677228721057697587042023427604172258475133212846493937115598231580060048072871056788621314555468363053562460472630875450851599802337494794015152157040653293102125078207170669566789596742780905101477682383350325338291991424159686293076606284446926049227599673847424261351228725932160229311758409175554829912832362148501355696251454263666589136877954681652369436680431415775580599453187081010925540525624814057509187549218767296549019442790437716562375097879330392012191612292772609010021300342316801242642107008576153183809443220209960400463756113827622070152470901586513709101281241588068219317107652094682137827992752192081050978303280112813059813795360747862231483841756444220871296694039904311541701702671958516007690778972322357355797398322434619309175570420600515811167509589895673141930622212589655708479035773207109940210369103667995923111622306515244803903023898867268803612164791746048524836950377039886495753257616366046409948772518026545467470989464242367458090174558676516251236127637970887099569258296439165624352459217248510675066308027702875855242082555761443041300813234129059450750283350862884257250580990648418616825717975971907884433189856611305134575053008955457302610565219938116133563985776527731892407454658798163223297754014354121043785719178414168821502685029332431206168375708175679710293320899400374251770530712906145669692448685635836323303154132318980085924164089505429194357530970893203307744676756590786267460209456418896017190922582198058338237252867269752613436767944485590674238768434692729797853264182782710285489206579536234954199310260043535361452320958475139645865032294024145394401236543359076849673095915267629740415776057588270791885271457077693211618326832334130925713679607873910452135125889179182143149250479995161188461732680036653784141314875643416777368501053469457563004235067850350137715955099941647099649528474240714423361750209211411115542654224893481110999596411518471494605316143015633183523948995168102763996107411497093808361686465976053619696540280030819884463572788690425950575055585706332620222412240833785756144439190841397399455209674338933169657910928153212913322241173325769238281009025268402996482835779090164910233419586045966321598152449635690532687126025873353666789743795635358514440779677980126118756195283317358796591629926690524303921909333935518967056359028361152617091441387945383208546204861727451339762844236847617765594619753681225799090864932591137985756935917347395535363781339243437345549044220160341638186202844911966034292625486555514969777767294361095242617641365702495947939444176579612605950523178965646381401235791910898300698216459451154048131908102193008674794114507318876026783761837687571938688379846555791378893439047631346328050689223687313130141001689795072332077036750710032375523696939516198688974257090465828591958131477798888648670786273271429574874683859068437755050210082322252269232563814790702785558313982445698112760730388018433145031805157253596929983768642916278685853316308822119115424390330769834896609393267327375888858443289840936806941716910830361595527525162750750074069565560175521890238571519223600516163410656065764490950954665456486588802504472661797340047430353317659310665530334074522136052069974092374240915393455837959199726137061532073479345984760634839830029524094742140793218186337602934504113054343803113865357352868309842775861309459547612489192390402045790039252916508006796066649686536429286819832122572872212573872570390001796454458745933601051156772030449122332593840401273323876683221549801246151837324237561555935307477770042357129498794968912139407516939544912486936286042676022067666459896233614018278679017268370197483366475311727026457742494360814733867738068156716316966839233106033868597661421789072186164690810243206353948047721039862568716161483066116022046738972846611708265845851745172706172648769730052777288432632921571559871478409768809940743782966592001841647572235190765423742180159632648596310359126249647305330530088369975330677314867923651550116015284100287210293086806275421691343415188153968408361611190185052507729412237669745004069375490345194515673279052857714460612314325285170024973794806648852753890086187708198242280180794159042676524877678079193681879379906287197766144833554789457399936564673850440474682651902255331728326260779045823433274475951576184313261775775621262367239667317996166204657660773971196422461758280721046623512307867707201155757779052954127208119560455720345110116537058293675626197388340379908690152102695062222742732150563080704990956011751642786629754984555664575628481176843542481806582676515716264338667979733293116909269866724646510049501105000410276753683084949374200857551348730004521698542849187070268700081392190790987944066766055063387161523369226824925698114895704430966231498155611219185017346393755779258092730582049406552914058504451062405654661020023341141360256429703010222989529578166713436939412778524892360952823445018689085473359101740422241068644198329924631656631775920576087572009044175369725860421313735715637740756941480230690469913225900955146471833089759228591974530562496589176256455839088450914789853410973855967001041817637667879310523948692209725958509583972774024984146967796352455564919141027778906080727978424683329144022911991731760626790971162195761006570040808212631779130921127515399610606479240590997609567502950289163325103484053484759682570481968954768964570880221143660094975740361405892505677060831200841947822069929246818404827035985733014878278287220090077066893204014454753376229628848725099687988925498916067252010447711399289149738515882485851438950717156426492078344631241662363359754940140892767582849715843181085292944740558238233272982863321682533933465656246180782506310251911459574407543826071913420567058015510324139847957084636554142392329098482237510890095247251725381409322521882628726533017254518992753524939912698094605748346481221060893604939134056456137060466728113809294110945886138807265202890608230441116832044884441449461664301288640510524591269522084863101285620067859838194813938888942377085057038574117577627188152772884981064956145474982641534327649812107450551227992474380865815012535961148028773681556125271610632476066118886858477220626215812895308200268916770040990834293087098772813239321037734404757490345627087299807354915498826336419447698662112288890272732393571031670741701681796760604630132917587045831786944184503107956213189864258652002148397325394641199248264784279488943352102213534664909087542199332851058845754494629711493412510372089908815628298556676204742390138608968518502714457887269680849335499792408514807534343875756295487172525330073958642804079259773876696264759532620054285593025546987592332194818254223366734867176442652452793378865126578327355702989986261399644729442116282553505718002764397007948979207973669861462760610920598948304053377008649346425824553967338776478398329120117496255604820965370718218833960748763427663535369508850270644722445024910270185803992284995393072509964145022469869235569839296953424965387040228266165609326925867908729519112220355862994797916434818562649808860773382794538658705241693990403848388466035813056397201062395719860168361010407292014972177833366477439730062329839218320976202922935974191535473796611108446824027735854165158150994833034268957037845820079970276741791451599339040369522020749504200788630358235789429329033909852439087647955270135483647814551446313177614594614277129486374186990570604624565335904177855847508287034070434082045227176275201528304658242611825020245034081925158785371415627045899759034057169662294114468799190729630896805254882536133455893578763420505016051221778086128419946647544850737848743720374770593735691164477345041480763977443216368218232110586198978152262203687068510439231966136810569472289131620863387130407293498392363668632550060093144896277121785386727439583924806593273129550592677435267149322606733835772448567891071815797968164639643794365978133413281160929885823603926334865755131627842472245829749986767994666309126077205660626371105164778753841928738062984481474726427290127475594934616244298367730278083873324939037915853088919971690471811291893513049969183949021080030133525161364568972754048161007474336661544576709318209671135053236431385603845797953438087106762491550116171355157921764447458428587722649712235260426528378832696411687830677727477293398427607943076962894990367658929485853418654750026179230629975372223121901878355442758105290830418445323741055157314907481685482054018281933869263226738693798645184317154704907162771022992299989642565512119667095998188184856735353163755442101013959353573935896622031532676505125920129792506102420901078205149821089607989885810021991914424565659578691363048721328051793139909177698895094877105047152530842374639732480463704334096334806436208109143886918139525995870219730114413617534436677553575801866412298981088739928511608938752843422803744357343184372591327992208404748354995474347895135741025267892186195861253406478033032235232285975440091931797722662636200109627863303744417522500976528553944212693574474663292135369895737036684984878880596170947427543508623378241907201427196392098147454935649372661304659226015819237532190935627739836013996754386618992678507868358500193913617999058590988523228341612809579574648156492584644075953755083135856715247115936123696637596387422158661553001017307475761351408203301622368190728370092257636981732041843629409693162806523551459260775933640115914465461146371253846322543160877198890127460044549329913025873446553260044660175533944399248429039830432387449770047438614662511433026549309849425604405044409614523042751531416598371869840649103615357606636409568953496374368504759295007656433708333495618157597238664570370468222165786629240575350123130769916930078091879554421286099471373851175666546565632676850142521637148997458710401380870075432910826179774162196912616405019845540361267196872531152561334315542064266814738591439486306293827694461596501505736175279470440449523948820370525490253614220159986622147100959354402987378281921564655226558285336321387852826519177557699710645389415302353910618567381073032098153786461138616376539720015326662806137678500468882003096114931830027113428856667319216323077565619090025768198363046112282069794709292124030489286780836286567561197662705140281148866238742396339617818387226788482700314236502022909450523706233828460372808267893190063136584610905448685985159846402275001119629015342725853301284823847357000415015664872938237598208894455760030043699808109354079151594141869891655891129715963092380107305469802061813537754606363503120788786313553665266803021162250930593724687542871420404143991701906695779786308475629153032201420189711917058634923870325183011778863454066971837892412648245842130662091159005104591110118551192563975519558528046784737850250249325830993385151324480556374905132333487797787758767509882813494065953129009090901656403309050137899477225104275190652315612691753125840498175455597994353186053795540300227675797645755902305617069052838741027277467857274454431335039254567453064375949503499106400482250803017284737188622939285056794425523342593067487913702879618437690972849999830692680484798025796390953369997500183890192075278833210414887967790929163801529931677925896890486213520810407530632639669203551719887221657921714533405941107783159262777026168931767200600112650338966400915166586126268825700207505283229526855265806210884715572033106267409381276452934211337555933012603632857442772078304524648072318411920937960162904686657971905417451605815713701133762846926032560934883822531085992355775923195403864811542944990380081658264632242962794504364117713850238914740599811809188360795943969297574971722263631846745665239529133770464392166708434261376483068025353768572990109003129646930330936927993692676292092328697180390618252000094561543872101570937972509380809626488289800078285125386483822099313666165560430835198534539380512946126473576052136915181354874739026642966704832718610067124837960126391054457815615650817847237735006653300931363166470233258456353548189811953476551517002838599989145961333945388774557488286379719896796227872783572361095523692689043308396481250871932441751889548779354730748200375716114941668257409675646523910438366976924566504500287955684904811391407020159552255293908363201660228028253294380339787399518755880577141463973773207496983877645811981799373341843029449323100569031623445016013337759477844290076451357622254881103322104679238862650758757272873203703302212212365496028728828231280499945293103073572224317715435874047312628915925960033617605550318927633365147501414438350305268241031029479698958013903314299151393855962318690176292006147369674142862806104911071146772707786542760349899181933412927291009857666043921105432579662947904237507987899791051253128165024542784130610038202861177401900497944518822190946721017128569997893508946993215958987195089299626798771374332692471789563910708880849971373773695781766842220637940919911976043729050627428976998205660002586067935482069210741962324900163892372454862994222976415078519382217246023953721307793665671241519438716882750319616607162572328241985342607812253700909478587791550076000576728082472619916179936195879647479269063541381783332954670738500778959096699932486889004829446963010076085283334785045645887087025085659969176187084223378393856843111641298182545290179358720769509976632994985058157036556363879363528328532056826622902277080604580055100184979808272912932246302233234888689546679934793165234366563007006379411700131218125225235643985399156859673778564685337127175743401358416476170832343250663285087632255435417575887707109539127520901991949848607016718877693287706404793077329055636409598820941301704945077855534382868614901263119881804529753292097829086258694589885703149169152353164653616538778961423362802228014415185988444995136500613440470077181897744150324221386415590242187079300498876421873428319078653425469974475319636279363011677009931037918718326533251010059583250731082924006822978786402882102724234195497783361944084253953554426534801868085175840093881263281515207121033136491533493282243982401108344128075080959674785196548720490221805909764487777559847443359049705467684896247989389097998564974660977386451090707017465497079606809159575614982666610980928896496139491983846400575508675243370449601429151990128851957511528299683518546882367996766140082725124321857023190312059483035608764459602344643509335640266347228479810365092391847421452645319603336533266053746120039325835859340387876408074519875302473717803856224334441774510656731159694204156072807911241552887862801992976236344440189621441447350799268932248630045116295631479134223053375021445530989644727881963475100533472586565474978238942404241396678701103530488151597493682145570500490742689920150638539472262822010860877632928801209111777476593368182489273743166656716130519960260486065704216725404967124941052993515198890807769221837029993612962335630909795707383182018293611700672767393276389869733094354192843493889280064540264747351801479295209937138652504194513517467783020637954251358908657879020201321191319935570539986664112887074182255324099698952367059100913941957602107149246663354162747243509424643315343819537003252026152547888712717518988834542720024566108133078971480521735506297670702235199226650863907811498187667506101314346084053712038676678327458683138551696310589641748322319389961183068126154314737199763810261441849779467693795113612223752500646357612827630599656048819927254404654281907298650141311327926644205380874919896589462911895050101126864680823283373102305339883946505797456754703646762285957514199495799118413490452031831262779320041038544108045534560459438134194871624285825028387474990048494437849002629789974386233172576858930990532915383011275386767907223440829639675027426226561944240434568376911054429850322191083348933796952740631611635901016647657003839208339538349721264919480370363565208884572743542748279025984014457069856712633172341592825217157953081971946496167269022546953967636846948750450434965003942139678300734453555929516957024217512479605483767936064391638384439460552817956778667356548910880729435026596436991580441276205686532897943503904851124093459382019848773661599187177806086431410017285792985983477243124016955455422855146452981547956288836943007646111597998108060208830105386173800456244619890541656867591069004802808577630184804803871064129234556155847843313057052397787885979023297084446306181885813316508118956980558172747157091666129116905151632019844403331097204070216928226716079677626867387854610945210251892343376395408879362239686765157669328698578489824648978784751033329698084567171929457162156931022549677202782766612513453368720180388548781839041084061148759983788394840878921681738778677460262159215957309807601463699164093576177024678811908992401846428544465362628310689216384626070037813830750044918661889180452100354226113065255681045142580666728902000302895390153217759242820186653580345306949201703550984760385130702457800528175859508117080636525085193106975803591597426010207290538399766744467224805890837633441119414196957885107899397276679937437646943802831884725588239820382391555370924159201852225224834756863336817771124385899806523059635857231152267687308579634796234277716492559958675057133271951611613761835127448364139885473468365637108251439507167827028937816783025075989630925549816035464582309719883902640181501705945023810810995238842569308314301368348266034625737357490387888086582416797675910074190874072731891657492181370252180830997729852269878583970648890891632125130491470864393490058861055493197122392424135864634321413449048397748113386239334044273394159278743843683383084444581981552124367953959637355359850529539160627546856040918319343856940026220448710633005467283598821818997124601875139603836192030989692514514761622100798509885403093435115676626758008992659962007058665666463895427225514514839782276252593938575929407711845035991110490869927841427149146341689941884469452480736608276307402894935390189212129716571893476750873235640565706816071296438110881035291298810940035677841238445920094946211692573851450899550167458247769565093576114145291760968100805452140180253213372039103701940600287294653551169155211438830074355739258209843065386709918437702483587474098116540151010409891419039374481631908364476455547413081497957036833554573226968486889919616015021409300735572480592297781152115312369595629896530639411737488042312548656783538289004853277747676525006282183813540699552426599252235865938399204991987616539947380183717706088804046753417764112518179287205460954741395423736478622314676566577298540203834206466312307968369307577577766726275714191989368498413417081847022122203687116969013148181614271821580927137276666736296039332980537719612982271798782085585880734748968572406376904698183915124738054827632062539413058902458273098615891035375205909840872238265274999743324930580941825186380477205486257560122493951278174530627500831520463118032678414467613764399678598822900657328742622775833370436914293918222605273244052789661471680974853839552756900607942756231805678520854730067215878239521802548376436627591924953798773524991232807783558679781740952969846293769077102854726817452487904056517752109499095474599055320952439650277554899964233546172209067419338627574531919774834151512662016818273153430917732232181186635663420452140114384605902633526009560112095292421388366218246364511907779884469463605037095758257896038000015673874010642614479299099361372315818311469927664274128197539527679925221534688062889551456721122307020484569055474660045231445342075142572475349752461038074613917178892999731978278855505677312685076760357087918857443693384177942383122324848311097720085483735357663716619968157267892401926562654681439783056379014717466710961651539791452791706951328971704265582478361822091846290955073103463280154568316538012757709285786451712989485707582907981584610003027915112744448620247623013778679608168175054691319752780526924111782797123082623880215402681201785199860149034116943818171642311788474299641519828968380228162593354088107114820294968044695022255878449188646480687421083817135365805257419165393095072753261282809121942707804381718830104432577369631661207487225539593777561638500097688053565282529453004358561023220241950447678978879351601393777889937903261500804174675194057336053026831764789286052660903951064013104683490498499480432460342454104019046875106000299462112795932220355711852608020985316099906518003175021081233295148357961537818593244045935685145057520781366562151273709009218574012557209490219241648318067581629772698899120960414594843220387435817102411654199669880380928317648432319529353221745992195281814892390479485775262022151968076279400643088690798105533533010066418589101931990021457449735950888208688600292701382659260777079010215301064235422251336017647461198109373813206870335331074698663277281286064013427000781639931664785410605193775887981481308844473521052398923531100195364731709214450680940397262914745114020128626757523186921285855469951077881687045409381687632763728844587610026525588601558101545849899441871547369580402910962681159722044574234687224775737578522599706164265444594899341764255210610288902972465048958988486310343256189548030497317170434097231884809319588995909892829736021116871558153400575722051533500725417903328949614184014071317766840241374312678584439398312507379407343500284829764877204738200162067792017316155078506241945016634713018248022056328636395440625930160787403312527338406762073461584030149862659000799487290210747935379265954817178145398515390128044648207211552803753396342576833912109099664190174422407537965138911340321537352013946011235364122086896755374547669753300085420550035412054869133537960852675490955664517045239590738616951240612208820392068133833528715108733837937514405764413522192275465349841835645303604840465945677904149483911428506822608544255680551653599902630681709647804115104339872711229952593159325951487145507490156224309063825922742683766108804521079297476440027674950075533478899561543825901739001763575360991076531954856091256170532504646100481223393132883829198575323905943874963747444342895884193842276755336333209642143792805667788832593613520617625451788930793008961111878824456407191324931144334333405218621102238577823038965135149004345181512027421520327077192520566030524381306450108009786371790752698510279340395136298827767373387550947896067784650091491179164287292655999893005535023669545185345141579488720097337976728750682757746867645059208044666440309936841318510116122946985631340472624798508643409866932240476427280096873076665943178646161968328952606839881279561555228309796096114375346293563474617599644144829696645939897777501263522644250188818492609966448261951615465618025400976319312082582748086398222471228963666528985166901306144347566932188918430752404914734388402411259257478949332487896376609314286624380246257727427645718801205026201234462488878369440802647962715271587804761124629417922146350413489119982542064792952139222336657602045497600816171499132242918672390066493296979803545886609596990064298589826078253073111435410600425011354159338287177393625619859703633792372608814127468478461091959274411123399963114595040019868440148259751188992339491579351731258166246651124501726692410686092237711453615433240097414636950726111592938492899146905611860953972954451879402109879972414391270701787552982075762383372869042001128494599615849988286921858466740030307266993270207914661095246235972200852068078782311993197751129944802846505585917274058587338025313220488215624580147827087698195850611306820755634956829136178370033718969871097448657274780665498559575490125435398383839174651059703129309831586316207120723459793589301801819403529628103722292679549692096122162532926302521107047477627642527838399233484242444013704894696242943731526805158121476981517923652178423027197056685250857668044306465555613409485458957813162030447805110575647065887271156002448670149226672396334527549699192615357904633972173599660846076303271366335164944723543615566352187520224353775658747210953492839419812887730271025372998972995612795753979913998445844730644826436320278229098848656567974604018922297359989912847481034426532023189377972600039233153678188767208909760950658774383797563481283708182391065121150302015897078934642206598289532986712118183504964296485675897688406516035878022082224045638218704225712001561616358335968728528486306129258803779974435090043794859138259772527041609106420367040573630380100162993966202593071535985169924724211390113481768022613019972321203803798416330362321319665247483029568451501102941352711319023378590369383680868603065443548628355466138336768425679600008060984685419793544627228184496725650792775375863196660570833168148316780020064793222150999222449393494983870592454522526849243427739901324583937941120683864221602595141278901412997501589974851738611954892610369015338461600536862906142288418607563510985982246032338819035799815147372107475430383385616352088600400770678088470737374816509398494858831574331466959913969588951313931967914181582627122734858588611332008440124479260431610032074148317063868836710283895842994854343145662462677996532153345881411161079524691204436083307664161247513005103846091602951507729987614971790070319693602414736989871137791372803650603372499291036304921465091614246742644278560210352344749141458652000432613001776312748434535291464647141089371540127298461291701656667663609726490784078615331204826829283485378844228813144727020835899305009480524000784402083216339177519490869826768047423783382149528933542155429299274829229017958992611267695663476068904343513738105640917311793036816117900604357589502119132048022903197859681511661259190700631877367208877371141011753506374210302965255954032245319326461409392938958369879854416377274596399480903464198174344211757607197835933286522134307035380508637922728543568443255599773902217531591458311298544527028691851291523297347455343518968542912296101250093119417959559519117838205343548746979134185390140753945653190500297841582178324575707519980167149890816296289792420831847678020697193990023572809652689988347585924545450979427391243872375183821974435609982663850965266949440240003045476910869458807324151597946701842684878714698308849794629350960116179434057946934001995648292146423137169389009526397202350490472513678516083272107313186637715480574407497561829973139529807690825539885318938269441374973746019505690813532496529276329027506077286283155540129950023993160425783866343190877061670502296711552264305736116873380239257124519970003536835678089322546948796144500820716237963141866288980230513370767226315712951246072158065475832166115921216234190461702825566233919585483790420234884357657264118593099954430250940725270860035107043751637600093749884548199395936762305366552765702329004530885072322608874179537954133427146138718741658473207755398584007015046578563873663745791077626557266296386902679233187165160586829799210067782364215024990326719385144578421210400804087024411451634597302933779241579282049395266978730749763866099816821077717542613597104042708518373362964018525989996994521907211456360275712908422977471632470772025352025073465637677999463521867823064407471794687968755564336234467202302117053700452117005855247112889684331054660806127364532332137970679603142092140816428649588811243242378963765478122225464961271549943873595169493780828776523606977356778329909104009670065147802576090466572632071102616877638454609452775787258725595109512477689668936060244803317871167229237310500634587705330251960422146805251121154273322111012938506150076045393093128290401624418812661291914091146656690883117726304805329316180206224617999156793583181260392749775130858216071419020148461512246833838075665097891100812828064005546897589276820852585297331187476748147393059325760522871363387447600488653910012922154647260725882198856525177464707018338293188475654010297846860854161946774214234973685525021082710769545636153190236692895751164054470397176430767500449316116840247773233704828164615169322196937824125807370986900903100526829994799374082604097447533262722346248514375193041792050858980107368877227898897616074882602136302217699487448551260071839226717772868479630697546431897822269239403233088213266263385534758639174513981090251931315669341911298481779142562383419791316126931966583928462346244711765803216496074346388137877802627223564834129152221388340563470379770721252668756212798804907879867989518851350143768673600655172395549104421598172754060725241987622992028079449552940459452172018256312607824835821966751093172977200485611096426068073441613283244771046290567374432661505449012220393487102847747944585964937524486535542397052688655273772396406672676810883330215400880673050479737160063469599309493522614267759116120902145679389171437096755854343886271068213953295741901712950976485066580034659328835479167574583125890896389661959243662334341086728570458566380366353276921940457066424356886902651105955859122652469424449773372080503461189188158630304903768130073893661948642284224016384952441320434509018659887587111770812394401665034110737300451517128172474509596209136569969662680725588219594976112024039386934686314866255154069416159873611478773118678442060836149641706690355948883846653659433593925612831803514924204198554186834983909365282279691646880502001548685336835537855114637965830840288206607918388258111016452833195905090097460038696605651685597068845831453977149404206830784901106939888234415734978137268819203351934251075223313698206434273029931689899029094069309613082392939657858008942372754358366392874036397400693871210289884495288513847009788481629435329221174568611654890332347007895794193129777193870717141812462266150911713939336609970008749855949094249397659019816871352951119320563843605440684327009725066406574612657029785496958608043390186835943434440557461732344668670159210183835085611820341361720141277358003619783385271074871991943628298355705458414621304195375733662281859978388924767400518209866679484622379963752815219199964363442590985973103593785799124216445147558228599977442767710033703545619262195939049369179071518769735988654041024402588758476424784732159681518884347223484281348360612494083426570914183959389075838776839856508847484672355884668759588786871328101776262714611599254096679276390868996081828809467697779030491429629165933865502212791269855913604701164794448885759774551602457035804256370656237066967631267441759294005782522107483426142826945180534852725726146569415676585872285828324937047939358495878185064405043500967814428228361827035789648169369435537385710744606742798040618150895641206771547964464786019873403070071882224958052424053730652060024578707092946892057788702948002193047964334801612807198398410916991460116242794253145277854829186816675072190230634699562263451595598019628364785932688604186161451449222188438128242981803987264595854522869917122935768409858734585487166565500276665890429505287993706768647526352599440092048862694949452008711633848535703362771749290611941970689758878927861617485095760550247255585432125708832243566032294854597598127690942447477326667197621088644799115642216242108767460025002098492949163553688238046652494447892212468887029369781210303915132900470920696594028062562570525984931361992412556607155263528918463948268209983615101344054435025384186784697229746912328397445098876172691044017308084643532928421879062863651153238748507528593892802741110747901613822298549622945336603862596722124174246592478345421529340247762863044966306756694194610417967019872308212971534951050829808585877065138477311654385149043692943135397233826102720923363352220801712261645288839016776755148846139982408380031072061373194777934116517385310599868765089724742543603496328014642666466153991857916035367641918741519804847799503732604591779598271536885425398036916127600774600754418359752221610224312802566413516694125169835811304642625682152453449814558908395144461700988664404734062608921618788097939607345495634306983455944094378825765499651734261541976908826010579278648073342330175289775709991389426466329837934385103889220646499671906052173297836898261798116097592461325050788787831088917043546154314707990589994721611840052699916779626275510561007739899111097862660991830155907134936720209984979662983409938420529412964641333366594979487041597391327647810435601429719278991746842056983949835257731168953596360673164617032798484613641424605344997141813815484551611272045577793725458445667146873407914378811453273702087123283842944809541150699685186855091100441358872175899427791270141861398093522601935988573922618619668955218450214722270063163062947061381550707835740773621733794281585755611454070083226661357867283816924868747696984740275995192606898439608108309464177374698463197410281511434610706591132031817260218256042212899715196392886314755186880711457223286362336365058667679538727632974887431956742222800703885660746363918539256816624884097857277251444645520640816177608666121678237587837553057767861790003961809909169225395698703294185640141351665540459609300047939938456295523498478676593176163997733879388773988283355541219129739554490776609497684368591884277213398048026163668011593632008416733423645759281675705778248226158374484181217055390427170143296463348424213302558893313863508614157526913383116250468117940571172968325977028291542192063788434409873857099893628908831479087914863731720773660013163356906273494949838427502412927884449737237279155680440834791382091997604222945550476263491642774142299488608162461495539028089936301871227196527218105326619389441773049908900613905534667431324765027560206849157070762638200144273521810471995513156350682521690328039486592091265985720091835318420236030552220833576580623881709963065941250596637314889633060609260573155583352067129887633109754445614524662734961979814599900720293596215058167976011760980628703237066797210328375010481499283126326149266033955508868223441152665776642898223762388694328328768513731603907300597988682602342909378401191247769059915224003851096078540966421260793606370070203476407066707593742632228746556778027303318138020009486830845550507930479317472586480756993406070280009404852857182243836541607796683005378950287756189272190090592420764204370385394955638070477037432021259157124150800467973237596243898018597226085424924966545492594760506547907842342415581167216500430879145695252251051701842739343823982509702421904533668140150321876505805943165534034381898864584192451531899915264460547601423692612572837620414612430816681352218795784191222026823838830483976552119858493280877598272435403217068110610975706994973798336776846492011224535494970574761635267393548004237569040319385204527987817402378587098444991530059530482283987044737154461761115834105366867277965392572687813580159125281358474966342423572833749753039361860596572940772355625733741485766053958927158350504947813515799335032691048726929103210699800767056343537608994485026953455748726505755203447803141258392440113722107153038815610136855716476649171366550301357404813824865481945188584950375321037417028721514144722279509131065518914975804741649869627595633389683321513694238738028007656892359739507787060916919164176040457689667939245498020706748210132027332255872375127928468971962981766533810785723150031214641310890337106035279367052957110986110393318181976959526891616598916367882711913697827695972861976252250101912047336530583604805830761030862622547639352468499197349057506168825078507509874425775624077776413310997355380832239617621946860109220822462760499570544893092333838903305747864554627593730567489140351564922781659107969656006457702348244408310480912658182907124481966099880159265668852199145801479539588443061951175931505726285952191365542514025664616654091009038455715738536268944539319524366515086271296890604689017631556221422360707006931602829527069924347083543305845380817463627248948918334140414864770607439830000594267372675981861499376130106602377327709081184623660882436396836084347385644561721892556068659911779872244456718895669444948158416354913710959629303734375306450585038907290307058169271013942192059874874493777035478233021508044207508360814472746470296402226688028768891864690677862760247492144775319799174109191974679781742372163258575861502791316056320324546966834181796386379284430910430962176295546922358495357540969694017650461794947154969304576338721784707738954418562803516544649709492352699599335545701267105483895506043682164186066655711698862975033431632643554026757469897288418992426046206267089120170108756967055669247350277963942568641229699345563932715679941512202268100356790508348001111295637599213839035956774003715131238692798369489331954560369093915828385823357123099836316840570530160404568620591467728394853377005233433137993119768772418934341815805033818252059454682942681721673697179802365678542746589191011713321968996771799300178838185533101550406482471182926129251510955123805636161291140896043582873952309967973596786630837267935666694464825180409931430060523355320847033209143960447910303254849911413811644411322994474694907782880698298747109707326292420297983952113164148799954538428878672202640315532612597465834571028978474984521694035890657969987324826514925011959783722736392909255768550373910993331638157945802008490417284746159719761677035580882675028937836548220522878364794071041996874570031841780782716899678285831516311911968153132218037223501676257290218346695194685152734743588546610513272303787444980945551437142806058512261731750733149324872299499207066248210389690170291349048510159800714338250857939305211526194587512282007146171090887904307578801176969643864663311204843387070401051027497564690904548682184968302700655350860505148261583023197355278301275561687381257347235493969585997077713883948170775608288716845348435339702888483123275174197195101265990668909605756372270098899736102154796168912401674049416044579637335020357181742650717213197374577343161880310092632657844438848871698271096468105578505222589834664372603170804142920142761080962857522160475145413696109410869708719052509539448082840068007130077318942006224874190562491004223280314096983652287801799902306931186431003199332911862759060816865953740370003979698031237625770091791259232813888285451650296559643938832330950570794445594827347597921491402953798277413094652555382595859005414085490191429510757836145311290545730056097666469213812994777670888002503946492978174688336024088928678779431923473243534628104543195997617884451544451376970634393862662674907194383548307911913539842990351113712994309865190584500699197401980960787914695721138447919631864733725749122902199344797842008565374471699918631744415935575770070501855510368752418734002534119613233934013807292820660916907473583442550284244170797343161080509777180082928788336490008144831323110210301617387290732780149366981899821332154938304961450152668584749672953466644108254255181086277895449358286544847243961661482780808109465125629631159186679890497306864317778154101086270227008085610951848979936712547859740738268619200547883023037132050279302557992992912869443967173386472766534788250208266884658477644941645508779252676226659640399897271177552540854893948095729142468627392373001339196510840127721128992082143731177060664698276789240706985967389777087407122449723324690900345880381077228964044607237495699215052036765923296904745743360166093107836290424182740171063355812608788557776715695887792129272701148177648887269849041621378291218531797818318137323935516687417590849291461352728803968807967358942322643126270418328682367089203356380699842564639163746723943835201509690695835702888324592476985364199019265909618060680704111105762776355292643714710786569304542490543768085843693187258566500539786754452448216646613767718270950300594747140552144648366904540331962829784930699388314740173026434159810337943604529233855886557326068351193336109427794828938235424473618336813976439491563181427873677512930254668567618778536194908542139018880494902893595510392624286009365405644941126481319941823590642862427848698827919846813299834733393694744565321116064814474683087412118674165872161720183474479750226271563968597142430602324872717160247885628814846782364023166365612563606956195148292276520695552131356514620765862335979870525604835822975729637440943841204604540808116627428399548082957495462497421258141718335689365333660988258196400510412649796322115377390529145086192594615308217607910698824202441593786678479725331314426387972287732526859990448027991852880545137605774283139226398271866687461566313478587969057932599760140778871389178794206288728843058233502700432394437938782900977354894781068435287692754491569721517460567883379916998266489849092935169296810447179017575785248586366435915561598757933040829874007070226056378062639075125311721644507551211681466838053372356756439091674453648760763435195219687767620370604142493529526840208635125377093738547655101971422616780435725701333604055945327783105485424354291796653489830971459215588119616348145842789355974466286991720351747091406926776975113216434951952537280341767078561914643529661480254750905873453225571618934801699146914158503544403038739413585899726298220519868701452430016205289290062166066754353142549004187444381375984620747852570054293000816853812035236586452445195634580827647204569287538780185650129151641230302464593149157732495014416117323528396021765701539175341968303792779917903896995472292341716193812483708488519168294561843727915078116205457011373167644836569035122141869801954315721395506130276152253130894948188770596948598861368005783267330891192315647571944108556294366189452230959675789539853246010904094865409330449907871113420854681644981757564259114861296837415245464949343781562416648591457260380813846796476645918759681032473346005581223739138740782424766232912801901808784620602460041403531278281597084177686161580544890668214547862506013650637267715501757527643248215756239849952831237686283145837766559882469244191325680248348916082617277214520114600508779530971069681195699859837549250771827233586510977867410042166516184644099771989197914983513191144036926299029347141111109533390076226217556017990065053896771230699790746514234785000143621482722812802001098073844241661033406378319044536682158757720024394632351884996626518301856067919265223017851970108949819126665306533659194683679645295641300234115022110548350055394232240686144751004316262695639877468986359259786738148713626040117729382169506550385863729343416140226392869754213423533032716970799893396089582354884300366802765206452016601107074957971458530459524847225268847338071233017767226465527068183725559880646662687108156849481293589333053792308738880848898073716664344941152520874606485636100767976590821020312525007905222841416609865823341524631540582272673231557704162476755555801351973581375706025605025528246273580922299463600277337103183595900924985378831648632484832853940658166091024265374005577034409299351523506146545392327384519634210374869234558103605798177523426867678722022836047123502709684739980523628039150900100874024640731635937916106491254644495151632510443859761734085788324947561249164515408991315726497125550728100407921777633702660219832643490852410400662403233120806918685732584824223186532930506251076524699604110098757123345982049647764212986763491960146186036145209569458188572732548229860755695328351162462438122840001171365945957272107010302991860377082804619274724454570330703064940261597343124505341460509901649397407582658174249729234067340600248325329582877529841251637312533122942020124010986824801242865263133837596684380013871924051063482234245529710219354836743053830522737474390198285741202064899826528207219163183827848267671765609278342467525961154592649998681022041970337540271609989229174361531487537671276503380526605082172990199106730015534993552337093808699443602831882592796433472249252547771827198475494089712138898157038625060750356909352698541997179785318827257848223094817721952552764933531140700795300431419043762662867500996323139800592234835696431865229986222094419994284180883403134294426617251745011738627191828273839932960200298776326549835038905625637260502725186002597441505677572553996188948557236410266992145303273177606881920698661834716382989485327071534445081792862451144012906340704759864973321159502535379211737332692981664527503643669437843508714428215683030094094405188006993606344029131973653936061581513602878629035404604635105860913753561993689481141232906346149377895372963457539988811975686533337849676632126997470630182879673020057915630684352028829642686521233442497836125133737929702524806088777956430586170443746831716701680816759050493474131871666076211115821539164813869697392176468837691412465580355029544353065628103404777431594464775009120032411085761308321749680653049383264949785350271097416238311218930860704575470728961197989535409084574890006682726576277091246649024989251654476737769507088715586531656237889358642492987901184916555266721041803452717894438859589901650775927556527813892838241717125476157934750963492391176498732122349968455362321356001050548242041641107131572159052720907469526412202431123808295478398471910518416304427720824682926320319840591493806403058400872303463818681166191687910119963476161351209220621397212425347347829820208476654344092829460106115915025190214594061653201934954175489325521917505406171653427926444530664484182402727751668602893293042017817180441286198218120520943656915219371701508232428134006715005962996173272493827792446541658928513414054342961980970169388149492371252368322162651376221262353362963293453010305232797344998186122850298437644997959263058905018692684632680990801979194398363496316498747177427033045311286030620512075656217829161879698838576154103040249815161633515266500898249056792200101557077713559999836773351816943568119428012549321383588501924916364891319603549259158850631429368623580959206451090078388070679087839411871199907310877200731297778662903852105620970621213468644941367676530909367456273788650078257884892918883534463416183727340020636240626165704597587039033562272199290069744513155082887200656259364382408057862493927090458567162442831006706871977623648709738873887827429786528864211666367281633278839522749544496941406334245761062668844432200352027274922249480149683181035957936124832016906752497325869591418247049598707185069123523811278986241033156448688485890412720073727596154620198216658654724536761773656707737544352175692084687075239487835534721953543133614955596711205373391535536235551999401495844351981713806293549701935821161238469927364963064545696240622516443811644748585825526029758015028051415611246015731811476318378299943087736975230814895584503476457821294377070126583989487921479358120186205443537463047653998730670526353059202241014612879492573524714200375585632870750833945754926970300212383516023901488091571771751132681956436668324333518397692998301123695042669614428583976735501299932019019516683988163919611488431269364117544162525042927426686580632565511346882247619304823138361000678656537085020656042584134532143869006377983882899973402421728534682148922187107066492606900154839887324126759129692385520718043324882191643965324821098406461750274333187680220486416105754636895442987897033048714097565774833057956138091934283616458152470893034277830220548980887352755257406022745633023358638578317565385039786985524998074422236284828817837105276565057902509338585961916635477927212839780429779848190386386171248827953423568889317652904573800412894546370480286660525849250440155575398284021316400702493070601428776800438193495930205381602958470029214910206687920417586039065297414531905380148093858000885632003947240752282613257130433223253847911750627992900805294395460098120001454204093634512496998392880883921616325625316838946600109431127407117133449311524448189430878963427323884691637970205137831842206666750300847347812300377100977051062326594780242790235729311299159954706818870375084400586998023461314677957709635434054774888404360140061644000073865333010578876864400994111509233425334534777792336463732785674839141408825771037585769065515588054082015815898331170895517876472249657744679423407998164604395050901350984071528083663072447287859246701729654728500040256610681561506813523334709799085344602126143018221939623212906804450893007445003771591670776671524657504374571485182716929804719008572171084726869928965094211742120248197857205795852435806299462578208563816755664000181395522438262813947449195239633599713774268751018626330013394689828401250482463784137658994141764071160754990181973576010020821440531361625756124493126020975880799266265384529668167903605722379764556846425470035440154565566955599343705604487307227993852574525412713511214487925615528936286498108084213797548608888924538167500886555722821795468715532613430539046281751508114921622645468218636155867156959017731098674811112805520479745759222998627605626902413511575493558439916855010421111069736250319274801521055655742869125535767668643613452857451743830483657089449638003638891581966761361674612081812801696945831178460254793088926993439306475842928391254673939037945516857911934459279876184375982206569503204188966296995779455760826391347958849379717885502423307346376045752372033056536264934016276658045648619405435001377884124872221738273296526932493056219856488936604727040148942752910089178583157092924880769145083859002773355250606154791500170289811480476347782653108973256171127810011094029786188190265300709407272146766165381902145615404158461349787561546223897462341372865540149625015598882663465241013057122680316646566772856925103895484257011461539233556113430927083590359518587519465687051117533648931109429441840576913100663612658197031962598358192891385073281929223679928144916912355357481657914291583747223274228839989135931730746610944398263905219559080040382377972091460767479598990748664092770479641493490437562630086994223161142957913050497557902419566970450901053378713005095906694223936201772033654611400831136830409337235063927399264545332252873939913089571303684450990232609471902246850084940013577068660737517045423135919137550939224966977311239639261157487639579353605527250731438190335066198145881747913229506560169064844190895373878274368605781320955435196649120824997525750760690523241208040649813243410367121399478496057640505856278419572564147812099749936867305338227502931134908268994902571509390218018320052196224388825128091012316138189333322431323792394435066040608165334018566994797601986715240949665715074369504683803589202138701212352183375708442268268305671414997653138440806899121704054159414656819805495800359077655659635693468025739669606865979258859277262270911232691951482775219528893809192782670611533780856309560692898367408604874743548572528493962561223943249879746891038435576178035361031990330322435564918606004888521582550543146978447416694245800306085773925753373382476163434567183029658561351051503941869833255697175036251050974812597071803100226816502950210740215984607923067071649896210590102510545147718405759374217718471032329727039618651031597066701804494790479313837361310971825154440955815565759871764233616121483691888384695885352786237467831548322703482138468457672853654099903085020642177866337662599051574994265863874380317362559572362924745910509177807556233912363265559298317465227282189937891996113196024814743034695208836455503776769452691933935263938755203207966566416899905474921408788808388219016754976275384982461643152742880203858021253466832221418541195304848494124965683765718953865132397248561808211748851045797995943800944119395351761821673163364833180409206862165610958395030829412143246271687189823414260640549011560741686093956317062130606377353597820799006121865323812413069301995910352434610002461291981889190263691747704488970092904557569742762905924963950603238189731972963587579161454069180563259917286333872021461979655454819139098612640239985128787168306937220820693959996638119520987557642089446148467689028101518276026882310070969709324062391200945075310331933633962363687475489900295972685170688404594847014448355889473848875456512969209865610865602479596977421561304277308326697726455664266916254273631627920361798360615728785937154611497126986662681050338849007837816293827208784736548130517619989288891898176903260768243600311316812697033707528690975881020025386782305941784552208639508620560408278819662537056263347314695885501453519297746202371523369333445098453668952644237827573252207936661764626305860206673140680427594189002397498862507209586488690598716633460542053119103131176506120293099896621356605769634557145650756271829263947592640487542913805171867974954779910215857913824956788780222334207924053605246064259972815482731905875644795139761247249652539364909129026723446188726626540426269026031903173971637474944951310784395455853880950321317827025629978905639142254571466224880753563536561026863043703863188712210668962090647913574091912249284223307416328312923819633401856625802701955687179220576717117303600882759226660497853171961833922790788310776279604461278977313654367068618980845833840487100526586785365485642766074465398146421400095282637175848074498207914136008003584599824146477984677477449138418082117615705785709054551809162709395184293918344459650397872092755895064940002003645019732595983496855627860620697509428103216095514475620745031612234678688386858511343565578851536883080338450248122467519566516774306707551008365576746955790709431177077449014468438763649103727305229481787110283970884351723742783666195556272954646257345231885712932522365562451065084562750385457662320078513159465997254963245916288153109460225695847783499035309802252221686852137683223072354737786055511125370530774039386193444280103982009428652981950167161851641808421563011427760445563885767989885682965614064963349404891141795569400009480326174779247934361291213492615038134521302949487737575694377713131582958142273982579002165174269885225404178269734931617643388944093693546046151080287674657402473945284240335621905664715725560654644370487836712979009224185650537698890080662759729517668520401060120353294174076853044216390210413759946043688206791960195241255100433894644528333226487211090824529414118106975500974192583675847329035069165488619902311467194018994431017742249567553562489925542866314716518108567170417664830855005771801343696875901766567835130817436123341433350274642245586025166582256320435899711236568009989092146638351585751476174892064548133187940799880402512190422076458122347313926011961394147718676480468032758716393363222888146541164572470179050762097445112659987277156130128294660146150129690391208158544017900480427527448212501266852515665680318742798388646114689435750083030978932067745097052292665268183282542464950808063252308177245495518509185376346787479253907153115186878116379297191184054229315914255661342023617023633956012550150148649329777411502729565526005628404982834760262571847889839504371518939740600518772308073977685495332389040103071429591142437571619126869094021896202467763180762713399233509584290099795906259384324859973068809254367432566191884212614867483730699263751077532236546128483026621420854329530247341482759996613947997506466533337397697415828333110217221818561900866355094445163369462952858011884684037422735997670475447148461586837314179740817263025192734738091076855197182300130171356138717279080042333018560678172392705981211286056579846707784403176578595393342823491949517200318955532478997002861768301668306451518638402449383648517641252871911963096877587947551444914476230349623703282777323961589376442161375557359666088661058385362213726097135104748998170867786835499174740915860760638448940559396986440812716338637677578274168085146281216761279214335026067341953087453252156054257726480948310811067283061167429458316911428259330299736875111727780945047254102403281477844519294336212264596699719656120566364411203124352712949108928982568697520976415541964183960292925899420417415542093459116927621245825188895456402361166438501633744094526419603036384791269707157610115059015601881226365037549780230083203012194327085083569935349842893183889421047578990870270389351252453088549562767385291798432464772073461187140855261216234118977255830253141069628477728534853648847127126454621524569838936706499702183967651396916714664559857155401916647485325607911368663247415886121938603402616626686869409793701340168173291011610737543875349512355910258036828307087282637453184401695308714517661957958005528873113724819816983198275413395089207825204730653865719389481473876223093813927335572785037265973438453330558958108538779360217467428288609751562445226238331734538084024988736142788255774568128805174413954099330621165242023265326770553672603035419356252232718271122596609905552342265950631750168587017051044013263725278927479413495684761331530441370386950120349233341587790337177620514044014445081085865350466898619944962794673151425944739608342685833113903764683201614895227824544848977399680694768939502214650574842410726047708016232525238683991485187175546493373101335631281072514865401357800772153747653819008216277856051455017346524619184189759560763681477844318699481775433439230702652394610100079239840231354667094906633624374620591734937054072886064504980477717302693415516267358743844614051384189440723370665703601896882316789162393110061187043836578576728356899380099914481784677130602589312567385313115141214667171803505801558024939073415112092357182218812476123128988415178077207196979797607118227198131603034468263803630099361086726688937199457010440634642600086128990494009121131398168143334780784182472574218355717877773584968866701025787158999192677667386447747951864198934946746182425208250620419872932291729053335787384323905182813569591322118535717984508461630812917321265162853136661401444060048183797433308348176681201718611436538873287778645488230723720512890543719419499687560930571181839436112638109058155939631003020246783375545228418990121807975247731732711594133906287394483968186068377210898636172799486183105477180299902770522096460434008887062912164721612793971122873089649411891000682148880318953730752238308355110922573328174910990228031498234482769904336783632745191553681844037205636465604225484969548404861042136198449045217867749087901103381910627843737797903792837534870688325694762535895299464422559001225206696011188391768279139932974358810061871145642291643673182866380591084601859563479106667020440115776440418194263941813651628881630541715026625172572357138376377351574232001340814476658583093707968876545176254353319549536502419025900676353751728424326114111194754477928585341474925298962147516392422789095442169159875539809092557509282705056756680619802278909554193986100344311287298388353593171968972979308598141011388982746516360611797217369193507564686026843214219975187685342450791003802652961367271939846848565990370159219763875876173863057075421490934133699051878564142521475833487492597878770980998688819806964370602804079185116052520030522837112819728066710746704518898512566101640615931181133491731823577260406271694728742510991902995231686517701898213970023894104189301548272855748025780722984490200982651090703077433480866019498045095737137381781831636575009800199216075728603293294382691803718312490828118411188205924858594558483242321910306022547604292869987586133392295519289073331333868714687340613886514113999770062253513820665209050931047552871209828190431948037556908730328856548848151704147780622606369207167570539332137972019503171441585350509169961623471048207261839950064468943651501400075221725871877601371484380306679680510049729052008770518258297369858874950381118462647232824187835784376145375941159500078682560872700565942498236930794904085052280199505537366667947045050859024278351887941450746905521856913002578380141391837775866500394989207559919594134764467302267431301345411633691884818478065289842853619391571868966308679723563810864520237643232024630366962876128503850785492902770048943865967494070232550812191345321394147395192985909753718759159619379570109664848297068192785892405874336460896399036235836677256857236085080924883460696704173706657894914168463630465228150549350667760565579737933637431607019847766387858335387363343639600991349769549500536077134094067275674637097266710718036515449279304793513537222812396235890109173796192485920599461958648510406742858080050137797758188238937340383192397755817090259890886813190614291910476303011077724082394558599130830401994398295217117824521220308827774409695838262550542033508637223262413500487443654554734096603320295849682010331248703521089100798611692100889334738837487516477205643011189821871539182248705561102849514262647405071956968308987191230534519987872121891685384887416541297914869547524836441118761294749712961059695410287400513632024394022065660064256358813538056873021394521435856386486003791393322377860278459546414392385930255015992670582056593122070712770268308927511443870819332221175297844550028831512030976594482954693872776707178861606349724023079136739096316380990110384041106620249567717667255183531903008992262580236505095293157680204419904101480687836069282195465161565385681123856784257639122147687342239990712119288301673214238263518657340206427834205034325601331844147694771957216576662390849182296418912209870931325792418386489187654100334887617335291248713844621264117811103653297257878444720163307747816532691464281972157797371266967079360943502579046888355953503761154231137020549654924221007872677281580520539320082907162523678060708889091917217534930501719377829661491912858499537052641495687574949101423305267198699152063419323270993634538861542871967216591276569609158691822766649167201170318461393396344854579551032573892417398186286103972578882640580136479511619679604687823592406001890974559069476441030301184275355613404684743181054840529536546170083760922125306010336877137331312454002736968636616903220471413106520270989504549827166764195847593203826159373323170560547756809093990743618681639827213955030939325458390452290863317013763975981179956088940086779841080902288889485107967621168016732965836047524827850352371563323864529014765015456960667933387171804117247593054294787806712651497704633962569702863179984188434730725765306754060279560313517235811743764714403454132125305573561981904126005754927460451783728428841037988657239125995808729083597167891656732732725248942947712430741249512116225460914370731241040518731053771740428983350800710965849855201440670649991810656324881468221172703988224907005958926234327589052110668408420824819161658907578857560608029766569209502660990050187860557004150197812030570450701799930342996950781241735892038975231479868569127584404263727466752765992717196439972200825575511190360124212619851521740851861798958154602880067777928509447290412125991813567263853056795467482585445807907349114616920761356842314731017819063470861614356258212282205722032840561613697783278293825535727394626722239682446573590388963251263927923089238464620654391228511241947698736892948799769307737029067322642075409198052587117512124984960807945105448314658017508989810212107770659633343352738722445018171143574913306386416310549468933811393911786510916905535345545577849201830963114077040587597544059084802992482051782423567488714729029421601219471796374813826522764366980872924306926030100664082185472440959319901648978240432054717646975494192839407367437968531416209413174272536855794095746251405896524197215794294519841849658190512996027343037380243751776195453496830012099911924409451412108543082218241024997216347278932306393196681602413211170574273223002857576688010168524525503144225616628230300985318736150541436232844579369725982147796340339036222297498273989261821896144958609264331883052374126691698895777690960127666308828052840688265526186517984645447745300807298696326705222534751791832855266561743913089062492987696748810452974831616754157703888437531378522635663000283036694059338020337755061519052994389068702379904879969711828509891600650488928414171592269254860959404403231513373950392900014489615121185621459477832958917421320435550747629468968430641867286438817049508966072657015855945558759364699282442166796160096652920403701793732260044047679864259307582696832497432815829749274567582740514294582986284083932653365646783595207539806787547514094219511475199354265061044446479858365568750046783029683670908318073221287099510201438352628713571269652351309792602414279981662210042596536504912067301518194853021101439941660883163514441726950779434429566088452330754953948127908608581339862214885805915661711758771756774671123905655526948462432676145928935951759406886430513986673026657882729546148018979790906876072905728689565822706314002317982149327288639428863139349200165632877817957971899829577230829260964572276591150237463431339789450211591462951092140455670162400457883810744733721523345940496229154419155202102918042348064819597894998572843101041647735569322330085754903972692519096624298058423190250283157466790428253663263678123115073734416948776394375036333093046321765977388219010176757126259640458675743130345913598353923646578609825880744553339380179163813402415575973570871915071628377854619047136559619804120638161107811928519150525580665166584056698851683423730131630652493202232514661376848657381144042881193277590260589625680419658678067105062962296438037333567208508697189160003305238595258343007731776627707954930124750705398258607234559592367456788520237374547870314628858947927954723935537626006571397065665981909367008252302215449361297590830205665820587158165262506911556699745746440089893499792895206636204476529481195372449210186560684809262001612969957065144799748989632430115987384386751976073501194233119973694252474350267244866644360927090418594582663694315914390071508323832664054943288475538633238115378531485262605860189021924046982254978512256334860399252067217678423058531934540300661351537513592318431237364054600089360809629782110295355301486760402809364000538740010463236993157767759856270806489418259421401595307111424146806846089172172951632555567657153808769001000328468519617688315556039324787290051449818341572933869562377537270177947938325439375827393685464176302388539911527968686127053502819643179916887853255303794148801084268925790823220857233283104100410389607272410580346186991875979790194175363760708664886997260024357597942013910708528064580081320943582066596548099776069454776166302791007566978402491741283796833321447741682220322352285836154570018825262393041918288492569850658975472112979062604716847295897960053054213526673532772089680249105996864935777224220674527498178648339698655417734323312909825061312040345370004325684866785718785873795741657339962826289220284803891900638698549598260704737891924776822146024173590118140811320569312462367710940038516405118715409871491832264822638572674326369545262779179253318420425205564112813878467592199596236651413341683202922548912527868376488229257512309003993174348787510148377547147938255870360039923632574062993466155075616608453853766705063362806117025953297945051961135272845203193080123309612695448262796610645783837805261159380101597662723277372327091307928638619992009528274013536961016151216422082612240996481574042612146318974317137756401613178737310477226576151944955811971901458107269033121854103753162794692868846511717175960470716040447253098563106128783834801912467652207530346347814576452586426690882544009817641587457712143577624466024387848022752472192203125090545211373737888762478328761183208717696633395933674561157212828280842996037871024428612497089705648993744806451647799135717389934212190030620615356363780116855415832234503081951336619968432343576747824617074358397965498787732960902382767183246127683209068205375916145262699410018603100240688718481985420414579169304410733535607023285714361790825580699249763342632645715459221262181352020778456876320057024987991354860935562839964163497002865189272838260986080933789512149741294128879059085300130125299429271722565589265980381990438735882185508633014934237328995010457967957256112471933720765084997026666835679695386357596561611179564692293806225664213386510155742479712790070340723340109479183204541139748416373813973346749682267655200846336776097074665693191293496252348458488156664000648210921182480102588246219157018846428569230807556686657335200292158422984992111033719756365615190250555472116625007217334742617021662836411780017689037676017534480276649108174275440657849323368489566263940040025937648640463563849053328296505507115012331846658513489278339378677193756911356342250619860586314525243352271760293067396449704282284667635716561177783000419777017460392873470779983292512171573979202193366586247596586494032432981654639684416994780168636179531282285947624545733572071041418681575117173162537591637785406575649308859375790659353673238864639507070175873458966493267723060738586090680182407665439835228583454072342173109145848274626159035466820569396696018182445970349410963206398155557144608978468455981083433275585716254032455213105030379948531702384869247684984952577665214053674770523982738040506521569604607489595020725593025469401956968060499455004595831695103229950961031580683712497122468545878786190616256027003220284491728467103377546881064501423691351609863167323941090489776724801303341298855314104159386408131355675417418222986134015852105352687541458261469249253111825191256859434597480084149836893590210000031342940929569976337854429891451444543665847118581122066520805550016871997488941788119870058834275363954729602700122600751005732327573680809292676833516265513715339012116824860961808262127320218968203831078087784454786580655669430063656888593665640555999674724243250565362175765577622963717877166278410167802373853580298522337742836058950939906666145143281069703986339007332750059863741710484978275902562414084614980639000349922712502966881978475064447250165204693796383983998208064781715178522396018862599559272658018991581176555348729938292749309053371030461943970756204235842943567459301494766458987872017199862574605638304751759387518794961210577051171921442884313173666073153174233834467239715688070143878791625507510153981999071020136541279105071739725610454335877757883481449343655839959575558177439023725070353661044927381402602385235018900980153046961490061224105797427793479558367396743050813578085307631182446411226001085553709649290389356640232652387036673547183728886470535961017506934545498286629562497175769486931579239356018102541600634087000859811171860135433743819300754579167880446460036769393896116565526640284785313927483954199905890760067091481980263698346574162249399666623445697513756369285003446806688769378235822172373486146887471410547229907356219166583951928270837914768989501208603099868270844055251086719697651823014332695653455273748139758974367375271084853755834571794193255994737355884909139767017708723081302176254005528646139240672243196587936498307273282739582169588344406621952182350341227182803839694307663962111101465105506244495670685352368856106511623809016323945202653273341223935798402954541564899754946635320862727022349772137171135122280678026070256970830332580322399940626522728368878948167159240104950978222729789338814535273372993362504473975011930183970322570590077722348598934771027738134502104505113743695962016403552217159238812201792344561916185171302183795371838423160813030485844549139088115263411725636984884111843831000097007442588890681809380964474503995330608217954613660336200402615986162321902481000519562769934495297450118577697757883306065169978823305512831852656814642297669262685670644858351066591986053958634377428054755451527377153323668349391552160183395841247809894990108943246933989895269036916528802416652122767525196565738961413037453118544650149028804794018063559262489645887770008302535516612455185797626427786514249599804548828244368418042316187822148526894314389056359702354006448134942333901148280057238273880476169282084297375677236920267926666689944227803314883859904482635645920284753643439446322214921677548962426330092330246990123624229401044223585133166127522947001368731689516872154804119498413716109355974012470455543773506003514426453959088915536510661005239383438107009593592813654917622994348056326279231440949146138878092450004805767960385919731004154493365045975286820457345646658334878847466481168945508709546338831592712526691943017348944261317707183993587874638866447352836588669668965687487499806742209334361001192142786178016749422056727703934617442598431254519481074544105730010305819510231171171966210962580211525707977134158470561393724488899367913545571237999185467545867869514508700245520767406184500926470897327515894146522908995413408520030268890269818862512717148244092645285027589575783197660306160025479041777793048664291143424311148125924623687942074964503777107441898929949424602967338827567542890242430072161881418769074463512968463320116828776635374724561102799879872171776724004036582676022309184652385297085123902612897130603578149113892158816861709372434977226024708933059511037977524890546620907486203952083061519303113396987339481895086560968338143566550592232779426677749181550034924240461096892683831740373069228343214771542801869880247499281484955452325017659129873566671430610963096083709670391674423979101292223861948132329964828438020359980606025051609891596959893572462538453229530069114141833626406026667969680517364481060159296269088470062907602478230489960807320431497137527190571171497001344687065719998289099785990027555815471071247691252862744534345241277678536812573929630087796514297216098682944650203077603083067068995826912697172831985771860005785904924328657274927165591953713685933551964781203501824380999667700851423372725988928434736720143029681334382470669773832393637449714407310690271266836649890195323844224928667379978124331589987212848896623052879671486216233454757260980448735003633708385474259919572046910849411948679010580811732014027690911237673930895958277518584485636390194903837232245164102416501047782348668490549583767209447205530629673358589213139927967398801303380021085761255370727253446328321909074441341264341625934942843284041878791290559611876460269110483440258381021754154149201102560354195942361047441084561918293591647252443185588701208833804954933306658272836427946951942443029458646685869691993265053292563542532015056825677218825486568836004567738388459587410746879657427241363072437989158293725660358989945194185415611664595049630081151396192849533123227394647068188078548384158323525357987783587817949496742006972184265117234934913248667246961388842482134128352750535610038740911120712309566653001483729805466054893156647826929406566145849929109983276554626006587517452901623656887092962982755035882164336012731181199801004256529408954385078360364740190194274963630898558234543611015196753616825618090801065361123223775693708002086506920620395594224122647934685678001259314887212817899683833205402702179707566223719808325593206687335530862346862426145478629598262374156172362385999259338047053617298424406698025537385872847006896742697490114979885178081074750136035155662359781721689347257244697499522364088234610960828290448265711878029825478970759868081570249895703028463376537854448594547561865368712546105105804971294027059225969244332761753464616414591672766068113047095324578943119221958293157026256732375558361630615318697304686406030486506731176566254889151058919983902696498079097460615922924196206122520898241885108774723253997336347689897460040342196224342639474000119642387142693292313443155889312060774685359075264811653884833898799281283436688005361044904082574093819438967698009367163795733161204438386831070973769834041407727470446226208202606892511573551744101850707044198560651370386454270939078473084642452586074877633100317701382696354825066085635472104428737383586541336061768278835293274107406718356988030674987209225051950970237872218663913368107138706418943394868477717611729298626142851962595123923566644370361564584991739910180090005144016572037470141041621853453009240376245638579185602878243494742702331466642081286150144961683416654463281896348261302924652632907492954544595707950742865417707954551737327016381259988261404048946540895163152717524133609990405318069474673134972208916816972567772505527759771322092414800616910426127372859213143898889425169067475280699073340570195728936227567052975061045131779181501474624506306619559093793796189353233745316927555396383238061510237159455175433262617325584313630895151330041190751819093639284297960202709247418226304713532118599202854587532655982237612748832405385728914323512166101966683525404545555213179888482475597516121892804559445297622500130195320461735686270839583038187363957516719969416717010818447608093405834106686806615952098091496619804789145139836625172096400582620406213568320108718663331734508316823938103968138329188882071223658505785966345004525129113109652639748470128936728693858571332362672790433091154662452858948859846618469226546550855947963886145517172457151750059917882789677868018372979823649920271332688060698433569549081937221887332761173705964039142651757294482511202294500376482199410760324048952185632963937892082565600819906530787599450321378661886678728473694012576010051631179659085325798854141531645271762981722005252772595976616067939471440296556804687299631017227395799796790660654331794759658810911400644358211138450254661049187145601208217105890187808099388730617242860616436847855891400471505697724524616541183745267986121999096769775950988873600699224671891467785988364035611731945657410347077014301033972834978337661218551559568098538349301479790735703639919956885162271246675985294573958990825178477336881138021545796996813879847890086715233710057414416534220373888086122167788753830935795912105686312455797808870137091411407903506436206503255857330415386543296709013257313542578640875955035795170808684246950667118445323937156497871019914602695823343353708324000436135412090078211080736001155071912217419526009350118297141874500203804137454207712250789989809562092020942866194751081320311047596922992646118691885868946767740245259308241533581875999617001354203430543901101970140186528118797169523059304901000547233428132809296306798902312602316920670075752096748214611542616447021493217070685849062619475914267850023921729967882178009315724127005665803146588211032995400528020914694384223268922414421052894911056778867978606658950782231670274687665775695116648141057847713195475809629739909545262819031423777213161880027544147617875796874114403597747044877390118198803653575049648600601004382735736902632004752158050716621855125689970577215075897699263270290276760258997301724588783749862471882438130613378770581383942169783173791191402165279764563330674379388488952339871226865752698473795051596204934895520672474953044031820398466727667329212431977610649275110142778823678074373415653511162777116203612374228725327788728346288256740641516854764525524665086279473477908329877000716068975757837523032337450986711136177047623247121030317329680804463812258282974175111324467879609330657182112428597237128355643283372709335303746289911758328462168137702700056376145664990754436449000082310067031868539346259167174578186620167881823777689434001079589197297847633615569609294071378612087836621978448490766941518789260012094698574340029486937297480411653007867405688285840388632229720872070596759615763068125809323897418609409536170239373944103865052667436643508217049953731577407880477006414090975835075053262145544281576519960206558552165943742277476781920805202343541928847819408753632884440517588794582506547775682833329770760324953871095724315901772198686710390598066170334065593377852271444527504806932459849104966153943431880963625856405810076023813826248354203694930192928882332872154807319367107199551241230657855827007970881914563897427644256898074757698613732393284967930843391578112004811544656835942872971778477874029058041436826287510772583220460549488489978391073949186470340484990668261796692325108611446170881170266165754255678789895668867437420954934928675983055280926660392043332237569202451826665278556650385266043525553420484818452599736067422137866092413529729559269013770862615811991862229669561726970438670340665796278941769024405516258524051328534871557682125749436258046701486754116505983961857458344680373325907040490134708518378047330229402695618676747799038030221344433784088069221988935934411734983752170328256561386229694484942145956395463321842017096138965631408399914510087165643324513045406356364938548024574127848795423590365120673157236756572557048272443898452417637243157286302898074668473660741145483962012549594597719400478259616407619860946688803434589398401489401631649529786344304768248106254660340933104629541381808423180581168800144547911663166378450180754255966694662006170458910955854874483384746611173045954092669185776962117415908124621922936354422945384587672414035444539221012900538619052561947713961894741238143780347821160735523342424728876511920565279578162775445148061754895090731223178956625983400111079874134073054948703211626292240814757175081821928456676118844922034003602876628311668415816707361719043796653216432534501902842093184996790926330940957234117851050807977165653967715272835672506108199940895770955024563860406187390738135788010652662993678604108069514553043622466012425345900003043541286372280919459026401296972921686114821998058492111150550547181800062740307967207109997505037407977705695925440772721081641850145419984239309619792825881856981854195495462737661082349493003820498689106073322307629532315579943735550377050745885706031165156727700156056444973322552370576562082116172986866063502711964549632095742194589394438348085191355166404682066094671512207323417604240613270517406868224559032846757778976402023041757987838233803967574761561876012204028300927843606739733570391837326562808489625448216592482088806989904246269738390981236594663695299378972284049004387763826846879853188938186011207286560527367719045680037543579656668083175431766704870997422161460545987779522419988016882199863781920146260883721680041294215488711985724342588592557388520947154773221906073326335318970819594248971178439750797996306151632440873806996208449256964693519336546473703972815346648057319924913535820857183376998196854419386711587749720850851263093813383548165167194407681287950383794923929859241443790573055414786512525893677582547084425343470561868372261539320648846238608682420333471744589412428983900204232936697892104960677769595376631258860834034315437199742395714772205299097833100144339382836320707724378149132946951993625197930106599871571987366161099655639484473770947949656543394503847588529343621928378948886705375377273647317869546108731523270615085398083861741188718512281138371968723660495215383716643423017233848495881959721521225171618880190333079949574585787412562088801927555290017220795284077982801847790270386824455570578491313476169775696183843155188555199248170780248951390928200989769346274819906375612490638866454067341565179132361254778356007829376959533956672458962064621633867758675071870868999012467159195567208333567595410217211535460715923354678389361406710667001680523751684236328934684860380089525721730672814053199149252900536312961339630893449995983100131327561970210392520477489919196308375564196845586034978736060826229949586670518763770779704596285703603844720807018333698042033318403555456305327082439298188746641358895917864925769797310430241278829258974703818143156338488659169273869583359820770825914718232525262058615034147693116314773006451177844611058917987588512014146691504772849170126969671912042147845760804346621269619878203219565072404981486480438959942294567977812577023454169727119458580969750584952510648629639914922951532435273588820089820354900555128018705597414445719656086480484120012668041822156307684553636270531891679616415054264428078220374812469714433120343991134248066588478910752430519396887068946001338248104843301457693014963499811711037468345752425072897509834774202488136366329945165640135186061244132543612530170407160684475232817921899303128284791222962231736152301581506300093598974821895057981110479317300648958747568270720770968654087497033006700892278077708678452080830260802924967885080550534944833048599979403052327734111661372158350718481718931718768912821240078097682940744729013842278991668737068625756451817528767677733245241206655902858271367315242767447693207322380644296696745112458239039855230723131029482659933411914096897533570812938307718455394794662537744293738330392340941207288417192074470717334134269356303647507027123025901626685995970326115096553372334957339542243622213317482735382690843911099994506363465406563608561150662700960400558719631265258566870915980990390367876036569617512925277133244687060018441423125225766844353387345399094280461433874265655121323750311206329972371844145603389081245194834414622147056989518235158901714475766119802521524688137058094640129468269371863794559898731507601332005104557094504815374923473649334041082271295389575317821199881224459677923738534945378063792512152049633975817283645683977462466640468444206970176966305235983816960047584166905448818263760517295514455954265423665511469341097583160832520201935204677103298166788762533220692984830742003930738471580444994202885442453490440468710481097674796159486308682933986159882423858202729377898815662307619130084442130498139618923731471271613394472038689483193991266619758219971770694959061762240227069152650416205077827790869477000345253366083163823920824108574058926814660739890611833619660545895993724032596824289757351522348287609055876565403293716394407095302812566023871010329185568408703638874495020994907595855128594100342976205572290890705770098236882278774729275497308718035786693333053690060706447002993429140256803937500493549775480475323397592916584149386431991961399518278742864631614328791465191021386309670670122789569331003125666191087010082799831944740778579107637468860599830635689985397466110846513593161580174502513306270652153199373571660456518428155597081348044369521160083679835322447994694098766493491416826202354055610650995232185267645220821338506083517753536557004576720195652775138480216720906005704882853732695289854627500197247513865854219611691112825764184098166334274941269822515498833231213081096280643339192707144101496221850765809446849674038009637744507394280972940791200952314525605750506323834173636031172772468675010567670408410839232558906536047677214463263649751240262710890102260127242745492688120421282436209099852190581995143212408959063953427980098025340115843194078384894105298241395117528600614567716431186899716945824568881364296133224720397358359537908845023904530371008268014825565333850889762454060728684587716867553054885472853947401167778824741465548522381657990210843131790368799311487433255630414389503767048443113801642988485700364559579233761643349086601957054110554866082845234905469313375730480603104417243054038855722374010721904706433180084770871251415719926683213319352553416957643934068809088853425906357194540525873532281879567557449804136250516043596832362474685996333896453753836261142124573530421474451418511516098273918411775571613119576001592664495037177047963381615464216194362904260671090362735813142149264599115766538431719824050943670892427401295754483457219967322420957068752391452565837614982760540318452587131545407532730559838743886148554797907126166212144460155341691457666690769509156166159437573851364904178446421802532116098584128379675992585198321750231804744140960875923979196925655675324686118637878018963064526828841915958247953418686639074005790630960494988822959997823633892762293551244100027207208841790225648257551374287977821565803435855943255101829842594405741280211507502325518197045659018123111406440440039248955334157388355891151308285878798276908450492383640515932818241884699745641555135606609310290307637306935280610114232691795134235001151603605478408620291404531140054522023236576952081044146568599520744538612493674036188311974370176862356819236616980189848793235559541502824657682294769467485302801700143772885137607792349659294005035753892094731272779905752735308831989534662004568294089000988904678949712898332197783648024343364751311409175899635330267541093072658400822316256152461213817743636664360557570225754747258101886037422181064100502464183282309388665622795708675494369428844342644730940052660267938080038966412205235197124020807676633045989527567174100658696649646463073397382371683335984902760710517642851272703476355910241415536349340292847330776141542075939661556960709196593431493789546510753106861955848003094526511299086140995218961875802098226979034904020490568459206083819230231141265957106897290988795593657016813746910748729022789406495391607027271902760971419675848912684482296467481194589631515495793608577218983752239940367087756467439651312792407554688438158008098644222936059286709081744214148622962205287334528348444347352397055270260703547309642513020866948726284958875545163619320776440460261709302393060614762143983743616944348861481238748146543839517874854389445596693139135204293969757242502175221901096854157756682107850832652290664135796644873866093883926250364921610308247704834782062264294777811307408562480360436437790050180838091798653101382973389859644720010763432753659094289992021674039862692474874701476394038699130524627623595426225144404524105273589745613826878030702023211655408918722606187801896696726313456244428998117176432610019344280669895318509554958376814207549280270025774637369931703722547646915335131689273623717330919202584652275600705029166423988534982417234690405933287180882626252449528092290231385398137926178450492615143467328134068805163732489534055475702210748848067282413038945388787987917248147683170703823245758986276568002795891543619773406762180007358870629676487499873460932535945270991499145586004963571329017451579266815093127220803336683074623327130130737858893673887575126959012412155206475151347871062426118165622302976238529850496662877330034843688463551611210718816487409038477717495416838050313713501807932201138173538918305965043728717641355385179731388785658973327276391376200051245836817664332008756444729869989735650801307944552038890605929924810533468110429430287290182312511483954128218579620716368041851599710624067215220447499695943406845823531881937482715846613513810431943385072654289895849543792782154238367657419723370343948250547971313860778968695215993676642344858541902623603763610387616074384189021254766588128184200514714362712806555937492327459396440332245921422217970916812612913045283803789851034697249798018366022878817084038503674977895025187441199529109084302030687884228198151813109123440300760805618256099039011262508843041923912585150624334707369901456618505278620538306920133424105047471887910220505030934770733938851007548602912236910314687171059762215233299151443905185782182482539558611386967259996084895459520839699493869604755065595448772372591835615666113995897076731309708591408918939590541774658592954669239096909385818828947728299327758139698085068567972805192960696438831903513042174822001187426351303145838058290467531977070744513237526196109698093784740615166446311899582218718871477005613975222321650873677002955447513840172335900668179329478235123669097533707490106931121641417442769745974846341342607446220668596331237872276626683159345894332348930999558709176359698542682691629995280580308968322629258367283350452020913057296462662330089334301767937801481243299399250596977371932156624478520960118545208379147516599371539955770915241582586991047144925732763137275136893142868303214877843529726089832033702392521423988249672176039953841603061080065722474878496535786520290869065480266406772791049006825720692454936070674202640689834114445628162011037109062722426093765783610850016362432469762018859515825047096673019229640614609200427418059785668945695425361256756425317721492304414506194818842015955138415177106674010527160761634942161993069196310688349176641993130387296629138761440181334436568139907583061820829567232844108417805136186891447894298721785776889830820629367646535094457485990424047197006614912858070252933057681222484998029560002746235331099350268356790229991180484987683830411892563197320882776476245186647950509686493005424691051442383136865142987258213960874609449470007180435681873786779390931039800271088761364428300786874889302131152870293426163022353831445053416862820952155824816661268032058302684646389032442821209524733930425670338790611809269116655084079898272318703401969156575623722052764053368868851224090811580409457980530332515907374808054146926712922169111021526801858230327135890571547512479350709174104831495924303414884571403369424014492389217829712582022068002808744387048435890004210306920479333173381831383911078381681936771337697522764944965607040551525823579852209288790177636216774185447356823927363421598017050668022737446099446613457824265284779744652736114784269248083674498757599125124334565728650924301909131899424338983843317176280245081484939684937862793171615283596970790201248156546849089174033687826765411481161001191195712092243728054257224256188698134964420999673245418069216659791829147325542035763971978296613714593083223127989746454586211264199397038561332302694391523399602673808173676227068148000756539024039722939937373566598429467865785044787941725406099870144974512510345906994650600278449050164152451342199081696155005301499335616595705178605755008982689511541502585740608054047413578523531723732557540529170199782564001260673905499792396873102131626262615494897128663609490276618462526283573146278080559664402665397050541407344029714686550877456886080557147009466267493273978434506432127393321932985945953338015553499073980707912646734884039194443304956916148786785192476033973328918547008156054612811008176748090294403530792647229760836040993491981386485629173527744142143338547570174563956100916743669970277566955436215511330869187852619243112665453786750363788876337504814294113069265126683994883442309345797654619354357713978607330278960049396144386966113449949560657299639852699754813407596879187158960340315659831352502138519086335033298493299382308705962429841323303762923660778547804751770159592166620989124551068885464077930436119134014109705291976319003097077900744576571031216654995511200675297127396043380141977600530207556181561760427941850082645856455395571562779020772922397884728679833982037771740614615809605290745822377695947631626312212599233520973414517525984468199892557431856413427363268351321426813409266344361633539028075285329222845598232145751169904425641880353753479564171244177061048662070777339508322176881371874360380597843004877031975558854265605790432162518278285556906154818944764962835366359115115691185026122369790982890519999877068052669949509633994052789526229553561204845366701881914815086919316653773766524753150608474712071376766946303639774140721768060165599946185668672088633996025743175229947863498259978563129914198486195372701028007383262573508797497487068721378895508422170082612092907476522429199594996913099287797111638502670711264381414116961597806295118580604678964342286519449312291168595679087540441730818165671947930936717212319928565321682172604825074057214288451405457167146150834944516394339365092607483680223095599960348034823665585778930393678047144920251866992634919323075049932717102546721691669581653822902419315878619229559845045872589972179299609786680965108810735350198306611632892526327234476604006936159640189774647458252157860602516202828192175810653839544217898644183846911918925046359432527228438979578117692490146680842089378806980902586398814637123005050161951376609521631467404637639022093388699097798707493594312053173199598510231386551696088836170737211353851105938401989807446350231220297054135168731839242872838526650405705741102105709585973184194408452887172327424904822651024012377770314032649861741463034180355623296419373383145000577148259585232008402612744675597612585426836016839894143533611365167151316923870556995896966000125196466548405621522718783889538355416269584581375146130278848550129851777024869675025269299611241739643685124545457303297401770005652699336785815749279367367515891262303443046278411041696533289216049498058985629312478298929847031144661814354315622083992015263575082995513651529115633683090119556866534584806540642662616796714088495097322016307661660448207253936932374004609243080863477489251605495056392978313326064667465771629242438844854545909487155357389008813610792688373330711345391804679187929356554763847039955015138790459590212137910769358531283565808172081571142276535764774251245940294435008788979164793512545057121169926373611142402954907672325214718774396867129714662599470297335832306904378633942696446497146319639322503424621551601012267854992778745769377872126662908451412415624848368411517280238805003534094671744661289986744746372956074317338917650772983139734228621890882993000861628564047963808930239757516503523050911167640505129895329726738328455137199553419324058253515003353636623185250924858948947643287992712004659744036990024671725296967705081899492900994665630150099007983659614931527215300724080249305113897133136752301800720035965159870523718430832124280739509000369603184332795721789509178247233856013166462882185031036320627093546995988167092386422388892825504765875233897811343085388079557187823460584042370110276512363436292796597869514194915227575572172062926548825665625576964185399186683206375890674564568058621874080722592810983555836407411292199522532964281841157210279598728311838356527691578752717090566306733323346589782246802339692800350307587043170672843805671748692899277446478474025343436254919047806491507158690333591772252845823897668480161942838073794271214889198386293494341181193738306477999761007128076317514615587920048077721621441455266240998093878145484712372716921424726525719569705726724582007581207024380902283798829186237770402752925320478051461339573575914144790370995810660231707100529584450623001051236839129764774933864162666995285956627753692986071581424460859454338566171514351549878567873462085980681807335720954970345287757707737012495195276693417177097874107612672853219927370780810054827815424247537771623767717643933664888655052217950881774289763446802133880416752351821981354154237297333040263722035465498018441258277708707077011151593043351206891699348350950808687753388723756879954531980544184883605657289430011041307210502741017135279271088527445103074378264893793789146587432604262337638090904981754198979346280584162477957505673131359378923842961194498462007036339796466206880804269990185289055366443484926319148467597392418110386753628430023511173529661089727008900002073768323319933840754297788964633150442166571021003745487230563228437845951165692208086947358918640613663322757815056077995587548942263476850433632362777821304598472535228607280789204844893257988288324910627343599339755278548694377506249539329067651370629545387571477440558884841508369478060808711055835225343903842164442755245893008295319873033728094509798161094949215155087499257393757626611420141086052366184680889965700263594665282475538330854321700845456061214060320653132502280787785671024484139546604149198436646833884509048194736527223436760366022648932844911759976564160398129469762898062318005856763203983653044821576657747562128966222222039729264657275878761875310367268347737276441627570244588809663985431371945482379019332325136883520687629983737103871214127397509749258014383840506830235196780188878919293413327773719006824879487005686258303512141939812424544056343960744469600845491142498754414438916765938423461476846097068953193589878274565986843608882150758778152935728294278613087398521301364655363516610062409943925435520495407611916553953062428241045615188003539099188855915256949262233102864386505985055447839421268520764356717090458945585679096444664050519631349165487271415502301992631983908614385465545980237146983600781136258399093573095951730864754336192612597385385518316082837902382532624440667015644021769597580143825149133088400227275873000218872239698030381736461996090359861092951653254746378588282717032499030165619321650587683012343587266577194174164845034777732321868715677501292875763857404643563626548564710237002966080137988633546305410082775800112692281199488400800248412439871311161067161523463023170063194599958179435059636143508478739412158280234792512113872181509078767139899301304137797456138795510764313976743806290723647654735802891546905943042301469703028205784904564974534568330293826848761433984881159091694957644771705345990649020031440705574695854817126733698535486491621174475521025500756461647275513699300379915121780639947317400430094418218753149943596609955226774765256188018765779898447536992147379424958800581244718259410979860070368355904429093036568521177383835076807717984683619393319671303961534059008899794017021076986414820750034859198692092881201611050282232412739347454803902544505629981871080197736780456147997967259796595244067451401085728305284583601724502574580537039997647639231537361600619435001312899286801564627200766153421938215097346317647955585697978668170851872374696078877249352117989308302704600051070746643083710588513325098476614676038712999252294470869183173802057248696311318025845322367624644749884109885601631577714307244082540542323026539253970912747770541303688683975474660749549821580009005214934609354216581342901192623492412556538330436501623618885581375113519084966772527477449319087646806753892647949309338365040699798423650539733982957917442877252197873222052548323169802470613947946211797130774253372914016784193047896918838621787744044283042875191699155350374059224557510677499940438713593418133202141298466095040716258826803607880841297863769138585581690307790128092524486379094041415730384517941469202962928418965485196697635408096158469099563700264741424917642648120024053664485584945884726597456859140991340382127456643468348129164791891625305784305019430920619887960429748162268355818431345603774366758162170874845603896017254340592301288512368771938126977722990217380309046323789794573396246528699224795357515818027732454436374065331016227612820704352180708817275972336362958184154649852799940349099540982803112819892487948182126430833513302657683379551672533065930090988061282428696845821728443823045272940045149061029674597583413813466981729631551054180332934745061145195234677600502429451556298294074531745239948913101033526344250490249088984183867847063397313771075031678615100212807367552260918164082337249363179452583693776995813371856082795702061054298198381994508511692419520658306226916472033578245370519709323213999719849633637877242451320276012988432992583911026968942397080821238709825454475384572524049066031214885517748389704641477905070273253551853316380179021252703873857963241227748408731798224225456468677434828506085788493956985810062989857054542690637442369498001567393959423754386059554819578445582885691174091840088209916133967204335886824599332637087700690270578600734908019585468749388212156560541037159872134497042044145449537121936813400132785349963131297813729580530357411237201954009011465773696922206527295956661987840961727987021107950830714446906466416098310589672269214129825295098510843419077561352582935772861862352664576627143334922061835775962380582919532978922090760977282535751363031625920285816318321539068678241493848513801202174037027623147358448400762222420130017279395702609407402773222759682636162707324034313918999190121445348408143180959191260192668402120135203304239444288515986453495158343853192791178350623723955389456187928463158971211726587710975371656226610964716612244147078583231487437822943775865020070532755621767167751310932736473414218957639506843930589143797856160006774597373041341394404691564468095740916666580571044158151728397742475894140310501230921088582081899877963777598934063269914129842283363586359596270314509659615471944781034919287592693994456019058327970078120945907467286860213450519087956281838989621412355689631424347974193496969746782396563393381815644753241420880191449353828524743018601287934581509474924492791216732774832912678652173410603300951008552971639317274787412200509232605627743096067622709805941858467752612188878368530428340922123025547947631775831761253821217616843048720935909983569123991437751135103158059774298892134361093314445874138940080325560970441862379426588853833721891927807870505600889243172385632364516795102432638443978994470373947602922210147441871199516989098285658818915987625444431768465612867926915572034315672431806458539192752960653440475428274765612831663032821237755766595844233921718104218452603232392048653744958498084504438629557527097839560096695583328324403937049697191456728280858043559317143979404976999973160929687815646513565653901671354558335375919563438659656358395208497880054124334940089038795578221917172364992086008745609214192045192453227551275806199169743534205342283460980570627613097116830915992811751161509776957278091640610911126498561839403593056232123771429054389563102413541361562488943685837969993224883822332902458995213813241718589142572007796678790716680558268385950273904498260207115355694690949642225232646307155644609715504116433167683975050290313348827886483370837908367171095484976410833442245097099446876973959950260446203939860599468069777276771870762636654297414481909915184866698107740490811011949400190735362630813393463379938176489069729689652421012514380960369163102543455454858454112613455860164726829461128039337347873753341510759810476705551505347571665327778640647474527607171181671473459401681780029038212046555739391296537060299922202796917063111273728443383822157844710858416741120594086187867007617642815772225902062561090815718309808768841698714935537973208594320402543364772821956679408954904651900374700102039817075566807974699693655880987150558802024787145069220047744482147714688220391317768165304113548201502955645305638153983492209583268810076284309994708233902411606179664373060398161990961737440291206608179639136681346114596886825035796649354092509662533623989145613166166263414668707406627063903775211339500903660373576064784376450780128706638096847048136413217599368101124158688479286775760447152115546464173993264846560046472783149409422456104819617804715558736265663120021905541607814868242683422739908516124818847499307128544498600552436661728732369923540371471821515788905742847104553881044708813649575948199235474779852161493040393710913536314967956498861257162792958072367653816870246762390829290317373412103278881383333000370733152847447473448768971438463265804149063600814587054890909794300676062079377172291714343909248271414921387789168415769225963798695675070045045664907069090930465674037490673289559338247624303691036849372997376824655985970944700764039698250190126277645047836204550919637696277968432619957081359978575613775185424267746072055428496837532269490110786249018850013992670137561634928614371372416169193957754144451008472061280798407809519735322262864271782390204129234336849840104004615897006454065393201426886154534791059132199793154663596809578486529527847810179476952036829185037491416303081071920251903539736880744362374512669191121441817704831104564015214785417062355691653176194799059031735846383022338252866002995402242110457024453778965520993269587959601167611094965652517736559397658753597112899551234862195199749758956583981542188167508988784720401347043068866788655478046832601280869455085786526720178174697809962995515499528632666184207983164665466682523979040914647796458529333585703851486857520586279065688857781383684605695151507466980418015496525492392271127893884078949800841163559314981041770076020654723764620547266082269824636435107237122362879983062527836393051800227469772248112068616452770711019781867242400307669508329687805069313879086149674904739906625445498393152283089278458341618429349026070298329166619800793322242646971071695414861070763922695835894434867943025311894333764351288556600501622563824467836450668680071404444585439235705403943865607864754115639043890799769306276825540614624304239941939342781604543845906126775962954245786115584392772899508520461989175769512978662724828641826712167246591262940514454527629626572634921217996016054839478476711092929998124038925270316976334940375355112188335943172152546897291718599087041021888316372674704523168293308533991327755074122266947590760893109990739928067210137961754820397553716882897424964768944461025498739957976462786644775036057289441746110176959023058034601740943766185758482757221979545251283535927250127355778446255208234835760915264628976780024746084129620961373826964412964521601188848992684539957742666792948213891669542754603736570768699436604548054639447105276134714757871524568991333277821857777819799722494387449545625219470949378776455185413823145678973455772291769905163803569861250781318988059378726190238385441081426532090004735781933415555175210893719558140717193127052440330062552972418211221336365950834062739043642784023421554417548066786171767344136988814179784099810682760530873337869024497303639025419983551910375923115116730543206513835450556830206930197189274402998000193328317094145454558279478206630971859549814283008480466644884766843226577588803999738202352493228320444001752060857290380565072916075896124626335805856846175690937672029187155782679845538449220269151274882241604022829114999307898359548084449476790984357408645423187966844332331260137437658597541008442138854095670721087309283228926216243643520162199211636250226442783191341114324991636641919664618228636161140449759492032747251873449385007294571555173755026379914265150108967951055934591522835919553925126789491425687438785552869984635095854877063248436092017482821822855820353161954094084647344878188950533909494937054929917181838333422951522829547768804445393302559433519603752047139055629615879293981071078617324590419211490241363493623985915363672508320418537112019049501891015754206347334031878718385658930900330125597054156046681151135517647214342583860115077887510530833728170110753141083187678522405855850322735582361157630530631160327169978889296823310265645214651049019036062617947024220254357251836905646860907575211341207929286168921584389039663276077600539812904574185276833543168304047856934519821218609280966970829214514008465032721440509312379723585650049997204849921464373510469221214998716470500250996351164246312708339147597922769867983519344546745465571349198589120265756290749555279179550671960129577295868625133373607836152431765984102215048012680318274109413985329631863509781822976623236402597611261020284690293910197760897481233039827685861744174541766682838147070698096179919574706664844362090681879907747315204647407374563820968984088133281587502906148119818521629671234224171266089883316770673234707749992093902652212494200082717986721384950990631589143379796717356980768489620462112245131180793561705354331145350784647258461541098037090437935096870193007131708491858130081158884440155752123993068110128639964229574907467444711129973660198108139727270211625921203218949013821103855109194508154328048885071866705899280654496658502515692678251615379957082698134399303625994590524742637885406690509395239298831820269431672036280986457916086198527076850341901513326774646777004576333303587477480320620457493162450065041071521597203243638113138341993023961816071188748188960314692062284306974344166022737810630211812632765923368398622621746758544342335919926176222479548766355930623034946346051211592719345018602712843835426617540982525931917343356014079995957261931865195140693438410838381003322748230275501630175098998707974763263865736578071194295944793236608688451621275118384143650476856368275212378437237629903474303119739955264133425447217985379611006481337281827583104120854643210487517144478741456615760907369549066996908216071266974097026697225815553182202003403081264006867732406598572269889875953253894904127926190795352095280902494742066966316332918658288683353061649561158785260806006105704185163179894086919788844526360145264912848572885313751212628568785574127112473481096932978477454073642005241412815220424225884677038585934511274643704050229701454149035542360139126938274213020630786282101936187354380831229884762935471095661798345863751858447786816571846503092539649733624442973983748872110788478144538189800214200633761375321066615448404428167209789516905725782735672138036910649050771349222261615328954883886400224191066871311020191380277713890950227721223461848096649998196346779588802770594321115589305993052586131698100130985112559130017494556407646261326413933134136886948889018463954399730431233616711872388627960310417139281283616612649085732389660137608695019846267961673709147019056300160418675499751935198212175745488674227814391823174922381297321009119538915895240422087625344741288725325019676748463393863407026277768990335308346356961555739335317617468673604863896664116656627901778618045286445550644806509998475103214770862225374925504714714907226313219065727642181159428833253113708761376814504838239375203166098558067292851615813493532872274947702030584510984315656665687511648126680975189332279778153453491309225482217881873191796134407873028004900195695206854587565258944318097125438603223268825710728089684715511245164890118322617268971642344402508247373121139343099504524252245153015267287216525911100290741861359956912580358225560019828786441881985274888829147659031998822343606149587013641093650544936350274169216112070832561125186058609504041212269010275155795124040746640849746679860633913995184035982343155239917039152736668779369597895817830417592466009301627976344319216692330742745742496391199838357183981954675819269044843678934417573950162190961398035767691578689376601188839126109766918610081390966640340482441132064213885541436378985150871096304234657300825766404254851833730089070194639662879581938540283711317265560717232531808179245875513858361678250673274263548662434512471172445863179773856015614442541509450763872426984870354363982410280203269016240275117217019619774635718612495211360304099646320602018682348101203998396321817287709304739212137878510054841674574899531249349886437509881845187481778710349512764047175542569225516664792466986405079366135876746065110634524860775265458648840658017864022018239846689623116159596924537358816474252055885738764047052896796826913663404861720166561154952881946484204373726390980014625392111566748970925703714269067014806333735839805539242215980229881605075726350419994736865702748947999695922702906425061765650165710393246795894938294826292370775348803219065076913744366624336475965421524179531849320173882414459917112298534901859175486265839774516856526071526682942199392035117858325703574025763191894262472964911935258135161308774125120845184130955379194826532461728171193822301646222792669797695392035905050856689283891118043527712379199011093845842235873450333609731049464486064796274141278921292816822320971156407500811828085872218160428673076009829940425708168127720443244140881572593959410148957011939018263839569161575649133755665126278352564567237277137201711124914175534709529402041055573459614624081231148861381635626710816834440167373037156913683289065406240016647669836838788141014180424538761105860022256790074920372604151195947754878622718254770507087022280203306555506138066813150183087016544850106382635343573503182510278174667963091346071371074177252797604793794897818667291915451014119211454235651163852541625520926210882141722409791760082321433305625260343454445431778248264996057629297519496132422682676203396300079883964192599932934416280560291492379577867774877172147798116093247831457542675549484198668701475540850770992275802983585710943350911149699466746945165608357379139990369443464502619667677152917295076074991351334494554009035954355801888165697310703333050989681993295132080793333043765646284791791410241580624537650406717371890852820854409447356555158862296894690531528631507503140737226323587010950183079871557895776452385062585659896067186414480579389999385699120706238398949393866036950179143318112478766355402135222707042610043116509978006987780266632125727342524381442666182454385182459570373177883575915840709849053929901662973800517557433949185181923925729569666740300402838477033101077011523711534157692237469809664964232468017724053686726261734298255639700537326071078661383897021844197580142279227146429493903199259456968769870617367290576263151936835220103610816366225602594780928931348342388953017583616423376712947918380608951404751141254724153731238834479088367056053713289689582968044800817433954456794048586087125081368771932854688782967406383432019813209993421718635065508561255442039479293097855409229888643416528450936401929335383864754992052116364728624977949904503022552898785435478673488744775231914762887435821204178327508879968507992508928678167280456507012695603882956780738642228490590824014783535064044125556521688484455469933422528330672521914360103422246428644704571071760429054761337017231696319397261995850067387982906289912708517421485327628766122382311214062352640156323021636757922657768745937880515282890970102684354306559634979056345563461390676828059653796239371883780672394743618092136430695656506132234398118782572839063097243979848309492950449437536745394656969191856596455845285341836214487621233322025386182429560759439149392352481185292325582542611518008689843294576974634025642611837861334073050566395328777731088021896860908439292970929759114901625127268447794140287223403349675422480493603953026782487506355506504785530964211086208297728489288211307250197568539291554333715759626895026025337477024209324044897358257987131100307807982242591002641637454355507431818117003017638838589344541931725768495843777913577768074971019029710642771986631643099453133394113579400660088943466821329667461737383801367721288314088905310058932681317574368167023959967144113006652310868796725168878915310941611377457990685155250406354254812096243284740765005381064418430182360041846974185363293176397884031024985541250494269087099736835783996650771402497021656637328184997027854543627438972586995296019875652999841673062171426206805456686423453911141929035858616795113237719308179938427484562396903045195700435425652622996617012941626443120708911164839934069975989454529138226230462984517119636350400793595011017850199656658533428774848623666372454391925331111373654784327829558105580348518573809923477737133295980274011781831099336549872311742246966458775656420911062157564966968182072186544316794601810216494701137824331323859703322165339829841959050085621766284957800614182239271003473213522494215651158542028474149661860637347677172067882722369433128568462625707537205742411744404723077557595113032671482986324121578282804646963155565449676798718272245307660595351431324207692183236698284862307138948930261182742130782739534549561826151416326965900078657231955015156549822722171168044916087836021990243029054419793613493604948197819471429681752957683791374702259405274437205386462089755913774189357250210110921008581063357765693188930158402069953446212846468387174303436467912980778852737726534494083838990531039100035160161711902347554366176981610730847459241444298623541716871471559988106400005808540097932396285738860893569263887902241452041816889564481478072137849864632748025992283334515751584577237866538969332010832339123859519579887775203288496134644849246582783064759166604612789292932441142680320085645108678942084533345102648823346865854135587404161756412660302378357249239904994813994719762947099672044777952310216540198242215766420975045179937413892947774158846905489905966383026453066895761178629454161213694703252392912868555674746611934916060910869509716539540109437191688025676202488078698424754409953435524269941643132469281276115715130355777400019307735153886822116175451482005622275831419615127223085924179398594072941415654984180095918159933359818180510653362223609772842884942873751575265915059145960183649380806769352295549790776924592216406729119253881181275458119332655182823619094176383875643085452664752750885455624438535366265723872988691898595039526639658045569691792995519103776194482929894085625365382391515911398266960991776367584035784536820875882792663282119299559024637184756808283978114228612203090890753793865320954874879814445645612389825386092880120969417301578557351484418998357476855843108473378496450858165091525204385147804622746255496341466838088211679570917676655222219137477161483894256378155011398945834573407054811621558529847306160631172369452563325317167401004943429622182651787661739790985860457666099822691656341392961745895574658157749567211982405851678484579061940107966692251169574444261219392034704945849603430913716036236281120348992534054033493721031726714131268037498950762884242015699013230021814664124391500609712486891005035397296641540350255925286799815405020244671859816128494486187214661766598190864332946447819415767290647361410841210209959833095821537127863186258983760958704348503317566978859718382408609860204755244640587734429412535511575609513674392156020867964637376491354781570470722657005831330940207586953300689938741792946813405750415223531568716522091481358724887802736203445955758632970385703991201039062405698393180181058368323528280088624936625092969721341876132381125603792121982504992564918903006191511733377164757298146215130211094171947985780948656374306600803656511848679261645807636159476544878127181228714008441000347086010264383606817582038524663206923449134919648305171973241110906299124416696101697294892393057166081803106919357555237036687532780551847262346834904904481636018450814341548871277833327741836610910685317040145514237169970662701289706680978984963774141726883372186183539944778906727074716562441375732705811168283688020750109058030568238216568697270894750501482833316213613958197021731318359934110026492329980694351729302157231768183798847869665286172380703177987076024471529154741840905447260384476654114415351461280498148744336108435477486992196129146478724873281449177987992872281137679084272965875889091103705251445900166255579145228519858438420731535606738412794649486368236604455519489278306718610956443311837651420079435478974022808629536911068934326724315637329378570617024931527516675392845057303788919632159221199046409015129046257041225381879171298334651839642323876684162349312615022170022377714519865653250407303855174907871643596757857346062827395456866918052691170216594325867942472948169380543700540957868550804266394816727758617766857935964861938951473682033990365234527857425862405001926348342197392769595304767371477863162992254620004048602109913548462520894592179674999871397388800826084874437184435455780703739059887171001121292944049586763777671965118678501577466225419937709998669330753146749282868716527023705284570401894709308452093770678713542057889236038865717770742496179830909879111922403280844563460649514548297503783964890813013352982347974990699613662303748838217290339446838374461163802649442734519911802372413995070876134821753827949404261729433226974906333019950938805275803609096505480373901027874960613305622737128495896000288316914964152709304551926706002651315836528844167076142825348677185129719608184483308021689187523614039998191288677673278783900048383933158054919169081982251475425799503949235690573342071021442195512308030959712832750074057995618334763763393851341030633312242819038999635000687442503429556183271166181927821383684890138319087948307436858415106072616963176044475391342930955436394118238250247035250184816465413059373129541094406635665421258534329455832595870764492925230217080900343897822486949938583603969438881174796239858996608999367046766061510207600998989306761629669423439118418236537438127313691132187250910237091176875997506586159134979903054348853865888720270342629044363715868483772636961609099872489455837925465042684481186247668568967484410301712044612904901623683565896766760929275401450274777596588177546465763978738806778388246366386578206243423151164103645047200057297867552203398426709252949780166770160282654409692851812262737669348405467018371381396079961463577439294983994017973511999464994210619832140535535368367150893190228199791457455301759829992363928294827780391757644272115266800960263375437826636423923864096133306609625979830283812804098053553494840533119188059186930929213144910959195936170529819152059338003937069065378250006252752798324486615135519308015500238314676992449654577476585024094524279216513817664243927287811336949348082510074831236347760412358339436972215576099067855787923555927751102265206472344341749536875009634035391216509462710074196592211428234724828613336877544647433474713503988603846659865988207598889363904804466118084961620923911007924345008513333993237833108507607739909488776372568427510686720869239770263841846672168189831089689052225364587441092255540507246969794063121194963890358080294292034797785331175346830627838526889853216107888803278174166258070167081229221033449612863491272509417917016035189172638898037161511658031893965091869229742025097501497687078008681425955129918525292650168946287536355471423537648190022451178457348893818866905877277373211120897984365770262047787323027585994158446627272161548100388315611878470069814747829668508223477978086542025128248284385322493158621630400282595490765355082225419610099431631377763755938215736323230654342346274863945229753301793734212960303183030903726891783822267575588705022820985043951818015366929527384508050169378856734497964486042885223188319582707766259338730149733195147643863362584013543324628599046624000099705028448347268898053001199740256454701789577717863686472660423282798940474273456988403153672225590059992312835736662128580338051223780522850769489188427681604786440958543166125802165794944300956555490756268259221028505887808296801279879046245234253670268814148989240407693555463351055404773472420997242427932508721570460011794552705179926225815334766615921972437300580047384026258424623857253688196480054231712060761544375304345366218953090353607704303296228967665209660888715238218737776927229962710482000499114978421272276188006540159947286428189040817746215649814587930992114550147947735530169341331089871477992489593603165910641194831243757864674008502582585363493111990804373961872296390765346392343207303178062500786497189516208667469544506407018593688481667268459546693536823974419604658625733925350156178520853908697163610330519880676441326867599334275460609842598985704978862524666156602426499083553869098031841112107892662889628228339210770281897872230833844727367135485686124650763501697720579390408156671458846446572145465957812098432767130327214730337235114662376773500869450302063872548507830495833278939167689706041601013306981072047083184340381985192596964043509871802989082646264880479403453556619646418671563370227814056366191272001242150597262334025046324154392572234540074209759882211026795970676616200637542880962716490118593126195354895614103419342867131219878172839685939064209132705984287135503887823960860235091724428102663257909654387699960275055332909103804358276720965018646393129795974713584260132830852259180004509828093707518106629901667750293863602387471319142679441823336098306240454596264410972852997936414854501219816161062403080835734211645670468531218278764918487623937345796513020104930450933136637883938050678344857398628366231931965737061871089762024038990177540723426674970542336984360804761101422373603302596986521805772056257028620552850918006160189371768472348964468575727501075920252725901122582303318612872734909173993312595664294160479032515410052895044252465176230161362651760601723402045097636036235725028870405546129443935859759628064067639235205628871537093186050638184801625146223507672732265798545751828658622251455048416576165955434062340815821231371822510473456626871231215609121871631158682602009902462653099939732162801401913272655835035212824654718641947682321859037973246582294858760878314091706171395867785047205007423031491194053223373339022013265027473395529665167705450651888341196087725287396411703314368093360233070120436265841868781388861822060694353330410953982437437853815856961363691349249526174316581571468758835638976368495814550541118848644145176991673194939753549886345754682677340135728550969090779852387014170321417785237534667304028588104311480570138957713521281715134292649461190324212759721531082935125605508330614670670448236031730396670792776739833368293902572121938383711647697633045906910924890585321941450079506642487953477255790135506779465226801970497283177772459655418915630495000061608465431230728282406839112698480303321444813532658891825815742974049702737450968857647745802028337405456225684809523704323228925130771343556982864078761854564913095800877945227228383474265986411318374528593726009179639047394388660083790812676428583482937441301081452417041499439757188498276045013602821207525115936647017645237387704174240153795006371029636560341925738053021059148483354980487829064699372844389219258537963183495378970582689805394560281576694229835808723955991651479375926866777987013729428596959113014853911886585430419346745033918998343650461545393595064818535083284461029343939195434930280114243052375263673264853026839769235758220515575648326403579319641766285731436524192921625978819574462395832711383781134461542502755845457319797645597937176235399591090548366618113967708412499974438085952535957838323482083477272457518613728387016114163130760884551831318132087226570517629736462871441962695198190710357214596794216170404028284698244237149534353825842705666524360857101606586929127444780376547448914698490778231008690391984091676341693179297569558403499031785754137068505232206064686632740618199456819642330959243955347114702378270894342579263287489054573436760033895748430319518980212504662901557573944813170295556532485762730623094522780341396916462297772225061774572490601851400703072720594166364182707022417418403106815611085686008070735310320032578697126780181812840038853716237665523665841616242241086422074385932279012728326018402372982103294279656234555153253320265921782170554381367457444715342858621483793987771085374568837703032409300559501663087202317017252071420206567293300191016981726301342769425053621468283972136322630759665435159796228650619708628835158326197353172150642020079059141461442880003845948222253304542652558232654794026318510008589506893738667938269753434546886706959350352935550218873770118885994760820160264364411300002402592806431154257289838988351286661272314978273080664182501483420521655508533628775157676845541663904428473969341699895135425195167669607021011432096501159680329383335137100454223391711881980663873526102433146919775109764466567646753635767356881341456697828439271602207192229618781550097863776850870107993422623038340884358842517488545464141583479661659090783749549023269671689283460598971715445834945009086740521585981693071422411491127251927198257545708301614632793997687171421319341941533762115800632823625758998980804967526229401812077004079085487176624510434028300435047241363943939687407424191145932697147262506691552945765643205023234882038850702041386015218677814052667066576733858414293661951588232558087497131888695104353862875140911331430192282121550710387948729816720789300167049287000872792758090570962955854314650972519479604700700170736027288968162649795952770720577762347959850195200402719510667754015933798508565148644107040854212026288713190808662548029970348506126631462229308637285266798577945499019159014439884611328751064947377267686724142527581702216030571744222322658256686519388396062586386149509897396229525405392023928032869517202432979291025065830530348315778752806152616451994293105886960045408675649326483518320312403848382445340277549165036067401209783825661740617128122765748396067937338496424399899961236337253747593289572615065922342060860814688309343864453639018539660611479063362569859037420317174416768569669189816162199833933093763782956201122749037537863503782832274621908837710028416740086876259344343855307857041792193971396705069004415734467911998158000171894496975795829814195192402709848374865083816393065480032680139347838460777101814362051748179624568763490397634739792104379170195914328360931251609101543863279773006546805385168777507748701072371116040262773699371106399264037419201894595511527080731268890214453628440421303384465783987381839581666006398509800054691821328013541214799304482351779527037012275833599073765283265084785650646956532630988278536506611180446758403354262893894338258802991189958571813295019079247954102176367837068279609240480757220890256928583784575284489429810515439204053049219339266085069829675885109942737799204072046181593794162295784049217286875045813602564509208402907867264397010915192106083372713786757994526369828973967974998387890927600496194222883513830369291278493926085423450368892961747830764467811068409658245545768344874700923409358472258859244850918438345750190574579614705593344882126499230409157244072283643158862452898940314288434793343618922057173468018479379099884500348346305841532821566058904951996418102360069213287021581323240373630615647065905479569733441814277669261080551995581222345266658268319611109083873948083939380170844508124585259409628004258695658638788995743673372437661231725019255631668182817173214314382512209292989595507050520236617002120983873298387045531231521518447626191540561583487108256629864076308853689695134836937087154672669955536448877646272902730034183338051005000266629624161289273602800995255879876324884333791623443374049506929859105270444214286574225969446270007720241261299533237551133445620201491171686625843752699010145797749451584554501400571139333307970571306740297644602190467655211419185867560551526689976341116927812279641731430544830810495897141693858632928641264612281613035220108707429136616796724437967523877040359497512614885150850234012742907485111267275424385336115437567776323392374624558971150846738831044266592181006160090848565588482732270561899990664592914451143849648914753862426439677586558346411494627923303797014518557714703920113287647178689936233983319669774083542528915119150503186401168509799559588818926178380921709503437413485396517586278447796019427973806092520137073310059987259651126140117509332963353116459449565692341114727989603771737842761423642070029995315539223543661331994043459960077643349545467964938737534607228027714320830235605246698975526430022928554333286671851061980393680493079403257342931249432853668537070022917802324843324519887992309678555268436923321150085765505729976151926479998645786684987104876171086946567426482261543105122969157603625950592413877506472115112096610743883885215799066697099152306331248321047907395107088037406807153748286714298293144409697471743879149753619743081277474685602565422281972122184431109990601442145154409120775141743654366764404788971758752988961420386805142621555491867005214246264102576316990039210565626844642559651439249806700317409297906784391045150721494215042726509880398324061531838960867189996427132272955990142433106489672182068608517214655013195405582732607250023708834440504940557937691199442960942264628403058746954037977827093387185715517399486063400771270954106738102925497798003153642783973156000174992917242957105807557838144819010964570429603669244950743072960282386898083612992350450489644155643893382146512853652175002916397718993639055859447969721909955189468684073640196736963184864112133888437730748076741323118574874453258884772853585004379266764106323685477858211223155218241491321721026751321794934100015817777749041824896239813865002873293869630856931600137087141171845609113905753990781853668626002012912235984263073272325055696871953639238444071912817261250867849515013220986676500080630781068696181294706540684796143405716931574464141720352719983571703280990178882122578678022877162977203760611353909157694503195231209879016705075269080638953844974760518612213150314255593760065422894264097463935138114245888982193038209956490105014352866178050382644357716878499545899783203499628052020150679486428988298143600816107430749625571084490244545645148360436239364514394490595086592262289199360607610635955465947423470972802987292413566956135367991216527860135582412312309809581831646554537384930783817123877396269962884510108997309605960276138922796711734590489282094493478068933420320929424975499580058321007312835549574338759425535519073621664764473030085453380358452193975157483117752948827513910762236640695832221628663608116375225483660175981763385756642145125532029511680329031801348302258384754073436772746382917657727999614424233856749420983174529314191450428316855640783664802398229917185774583802966872162931386162319128747024892583693818129412080443779982265954975723289821979079122360571562351927544411818653150396085824375643828764740506205486237219937881301203197929685062546717998896836218349949679702433551462830761951256014763705356835828251470161404138533930854934597880716895887205145206549694730495394239387233008527157890652557656618760806360752116196501834546142018043866620235756178592168855815765675200763962679824214914034977689545670327445884692794915820607709599452140839400447034884346196235737576196249331358982613911072271841397304801521111087422637634767611467244984200275316774444566994986992899809285955531639684145289554304969090099286611304463803178105886507902358528178087875553386599490072155610570105034723438058976487213859453465365560120930904059222256795518035268908530618307605131087456710224800109881484149001473525643499780356461348271296048653044891677668685995060360892289910280572140593154436462698453892324830461735464017095905617117664726071537601741493670559514720181494310073573335882971177651274361962928406897115924080180979889763798103483520320302365769550032204575042861239417482435846740054463373010723045942326311018150854950427588679607871553904671367741127735536318419717317303738533354092159952054068102197598392777354178266912593310607011064237806465153762360289631491736426975653609716550432770937539002551408150058265848228750142391315708397552746046338475334151735506052766290695655676820547202934834095649425278154683010597676247887354087571405101949052033652440493853208643058791499577454224610060866565795053144415356988752652373949041653047492629410646386995976328679141172909290698519300534007594295873967809951985381706595844824465267130441980061094219717083347060672577262451686279202830616166339931704561724644802009937173741354739662785560528677357641097169121187204673616679464467061465585870714940650486333984049767191188088233187566530751009255960601342024512124185972349460904106761215808757073316431354422156191772610792251667721185858850249665941525625793659152451869986037658663019960429095263864327652405097182488599486739596874455183740636312937699027429716890343832410715699944494745202096013689669586685273206476854586048912388763944458834958475015534247592845179529665999703280007080817783910725323758108511326719057994013996579646556239604003328540902299763594871070776264381839708497799840716430358029218010330771022660682240387223756610972465985915057114745918481165663640291925741377091615529126769217238408285412065884971677481322685834719970135399219224705028756481669265419402392224374469306353608035025542761526344473604192853221799262174425242267038342908478383415598862264565563852025231069029449508075116597615984428278701051821361866217768483269635558515739133912353459083240124017657453908814455562241748387007370171457613336024400725988109200443865484707713625725674385333519619220708897563186124174086574550873519763656593539730994474317445840959317184117671403674776588170095180335868365855753714474281998632964070877858724108846269430010207275057992582390908291550971108406300549678575289707718403420515232007860789172412450702114446585284590318950950809064474512122124522501009797060365231500565583183759163599239673222684064655320502376712743752845400397420031775875927709509330613063613190767693694157703376378602254301510157081934885287573349600786921978695050093780380725241869256439489870363229247273192768951074601544015725282672595257885607874310614155375152151801093701194784383796004507813702175776859346978076919664453835267513025272911654177629683522994710397161711899124122433008126647279875096133603578236830223912107859941018939565626324270855743856887517650844505588150337788728110563283130265851822467663002245575907543042234334258166688755647425709642958798609564176259343360038746405266740281287195253173359148600289441705408313908819999808151446243092000494036063718533607637602820919407785090180402695512504541820566233775071791263648387815972461161489397609341915356914536230706520440003196671939853246457377990830346989618027854773091686669818540365854243382947754151724611416345937783998607713206446483787571090175602069312703730392393189549890409125837018046441513342433329116165362209978795952496811948815133703066841021133006679195307099397831540904329872893208452321124298572917158442799052806733141697027870832230845606432413441616209576578902305668549459725081160283044353405486938667064439165353449793554243069340087598235114408229706192473558166890421991012860722117996724785801819276340775670162394303632479790273373543204896583437989092937698541687616114155180965672500899854478424655199262398180150730681647838325810733032811504843460043341580427026991991918260188997995289689737393752351631243197478187236838456751824144553908916632892571207126791104946883640635634966001543402929392860388857809001830663338676614879372555011464378257090793356825086700451431925637835910142867086933295314776626391868750105638229459700982740656466445793783096189874077971136581312881093211276131549273504363671933452595068955210803813828317373991416369466316791332961896855615856062697516969508760362464786044962761358172824685854221247790727160127795218860866366570198096865277407278750899409306532384787485807679122075066114403908464653388417686243398898159121974640993232150962698927021102078095482846720232400933055950373999097917086413109120332111986753492978240604687887118252860141316376629115278939807606378329201886071718387791413820691492795931669032598972148277555814133686463528012786493930859879932917008339690827873807874579624449554028286412452053605229169541064182405064640459132419897967367412935360022103519520277371284829292031310768611574550908758226738588600999650321438944831343799739129974711646531810303837324807115793763046401082865932282837859363523405534754874760863515660411048695091115803554626005430481414444702406008923146002810715340645517424801039409871653378802569911370473095133428482138346474128986024853099256516637552505308231590208453907971488748168598055284971824952262010828290604077422002594887537384870235516441685994966935226192563983640862871485543640440528575206143666155924991687124422500923027128333143123776698470467890697895611110261628518245873295805519935383856356633589034334079804369613551153537676411667875569004174995192116184442204102276305363232307877452849139695518383567819184057996498441325041054290638209075185423309911440916786954309180556633617886884689961125598054459325308810338126479334357967162736932272870204193098084444223765282318748693400386672206436207956658910420598011029060849215738144171111708886985641125033750877101886817973481217126966239242110699597151881821356561058492015391444638032889733717262683951723384463146501338231160666917463150647429907485076675931083478034062505113642359408345545689164294516408159643619618793920897744832417151015510669348801545895630543197330785880567474472561523892942622714992165540807970301210540800452825181956069633485038154278181706271029049410213291101628611745854829263753551662836956474345257446430179182212033098826059877786908121303837089251797416460028764320524089674618952969762397492818607302987609377593469543061759347037648843373662366894587720224279468466200568730037802679820961132164916876289399046005936943135027289042030892369674386752035471125998572237548398212884530127151424587809805983591447944067789177289030968408083238516613550872797765793587501622140945206199218530304658200718943213649635060698872650997134769711735558724685337735866788907292278852200652841232026979205706845340682906366285165313762068588122070196926639752615584878516093582917473990847126569234645503482038281470625700256701970246983978605489333166403273585295120699740000681747641331233349386103738946030533220437189592824894674362776015893209197423544079702926731562805370803269000302350431242608820205008683201936548484549760752826025492285704315039700481141105751876897911501362227914416513729313940456330747206709373469576693024067790574179166826137242804593428447641741833280938581476530809498755780579518650080307479304963666443133170705588461142277225011547640613948162363005534256899057136956311758320444731428743813189745300319982342352865422216865410076496645134491388152173180016392705072606284819569417109303953864719646518787644260420561407162919085388069892824493361232093699341419913777837093119672612386180233558371984460505184219890030500184375490446734907046768177567529699768477559200794461601818387411992458626086768507611637905822130859791560400217924937488913740051433636666950609694011126280258101897404033627422423569436435829633229143590533552329692165851013603428493438546340774262874921799466020810943733522173142206426360270910828255550059363990228589920874054640753105889940723066151450901153171457178346284607356450294706184648096024893037259012126045795501321118820608580070825534578955310213146752519992433707454304728821420438744021658884053528854206993169086327469728725411869941647986847552885183644712525432856367330138575165709472344597788529387379269958910156450864406719567208818801722637779577734165133681762641947123690518432698750297216043015822180540347293531835685619658649043262067580918408622643535903178634956945981670188708540034843709183759922181263836617671923921747776562931361681766667780167653794832670826197136390148166720935524032102773895894745688586026516960332964105923515674325519718634348900354910112570973682781761125543278569918386386721943337097815570484482131958686452724173593502591817651588994105111378473868331059593162911270508812343817945567651135590235107637263672325491538484721508942893027433259195109261409459032291639831693220120257317958885175140623673644034241385376952093329004672742652647226433159614370807669889394643575392484978995744120575565644985409781809127677970901439452986431716261990156642830461951034304214247722749936870542187796438911567309945171010907143395463418637232067025997584631419001374076936971734906259122510866729768836486267795622263045834824988520556631056993084943111288907802646752495756850476829571495903945704035407932805627467892055987750792593990507313756699038071977657637241127366081487323273344769512585729650959469820988054475724785324673199872227918608703324774388483618865541165317377198086366131226263521031322690165623784079962014223939017761866107192296164686655242504586378084850139428860792665681389487674243750525017599987225118934489596564326054841265534894365457109385071551398501784292841689238594821249074835554441733517918273732131421707856597071114083364168747154421490983061076877033951008375071111989885917889381539536184153132198420851502144709850084491044828024749721094918078745035819708964805785677186709435856092111544208428286381243751002055949725261320298355461638256178196581024940345042427856496108210756688587474909377338949885334387427925007226426449150986034065172021288246002830769845731918803564870035776039478953686023575321703935838808587571505032857291237287627496213580850921240619819175943748062822961388488215593612225516853521817849053091362556151163995742029636139272085262596282380343596605227013701198126588134705896239577142345878256031747208440773568729235922424572240260394577357382842487637939223680024420025154867291891678202304624469248960175933880750921803259844222143184076933349513670124925804151257316706160166246706775009226956846902459989426750499651383100539696660234456563587732628496955084743428044498296665041705359977382685906348517002645622985576478453190922222301783981305022478728195117204663877407706444708443168777053777548109957560113354037752380122357956966594286119493305874865163835203883618121779791725869320931044917700914341795568022738135370812796750656194953681674580004057686436752999723207722502087436054630500198386957338034033552374284559092243145562377717960347379867076552969422881099940801584247404126683153276675269633657057948482282977951538275741634427431907073167893083881354612297682302039323423093847538339995883006008766744984687222088248157502392731586762841349443853767581541476529023906059975637633585771170571930349561566686435992704167197940280461206734915467015216140711671889069180027063574753948752579212015322528185505838708881181473083932597089293195855395677544375043166957416586517461563139589629100860332545788569745402973471446299729853232353999369224599410030948527841981383590417428575719400724518680034235921094550703305893648874474283756928102735478561912055991074829092918301039920201319248388240163599426820887422497847201089044273266642390116841849556452622041536074567653670959024118114724227186242539171683003566813281470092819388900445735727877622728084146097852710375604612290828729697849331575129180313829626549211367399535767857790937022793889513871918927625902656594292011621123481551459753688786020082404498440217534585068565416600135926561475212075512770420379342909309160561050213820997177943760569854547107430615107435009788337051751350388223247444239693121638559693724192518577529218310949208438890092276782928593619873339470817260826760647241865680159044140437942283989170041668753156826430344273171749001497943480994776741531888139528634026733729939584574462780707596649168129948598942706077971729604438366445613743853283228189742326719073253123825659343987820299443623123408664512776992235055626013547313869377797418991666315830500130787769318242530863695347465407145224975415538682668462653221489870435591023291778864190420920497248643630335183618398127859577025698360102130901231925940715974762695408096210605987151667023517902821103529283454904352195616394355844909773264687616624097910853639783339373332424016209248406166586151474196786498123465044665957672392188598016022462370438149931454979032641409858200997567352619687724405507136438293447930206037570193613087566214646379373959779323204287450150759563945997308346209079258807313640339894164841416451348685135885269800909882056809354075436152553301067422505147748602853600758181266680833322640000608302914720793134099766357272464688892535887638950728735800202520448857320759245806573582680823480092251197099506220871810287762155662412092609518040161505884698992555144835663260254027509914360365601635729109782096149281631392559432457393599920347867708030757631011197970173635237850685426741484603311143685100013832976421807951856829169645920125939136361077562865931743751831274336167477791885405118068755699192390911367720799095957668071256166740308382686323936736523901844739360167860264756155688245542960233548068599169889942262673278203112725627615714643760583410899246927932291197395255949583540530728067117894978361520898230385927824400196777480232369630406164364296163848964318378760302366220996058884773523496912801008983407458237497666191238771103683718368153326853845951747579974344486097471898106614088467114187978925444457021501065689033971227894225966698320488706309986487457938086609527748501108365041697528898897052086146104096659718677012379802758426907177851447349581395628967598573055778260623378170853035036607071113248088575421738603026248986850650331785844388277003264652094519424036715536577298295806215707264307184658038894095903318455245441151067089222746182991030637459244758919784951657374059872643864587063332375995395499438293188808699539442832355118159894082674328706663094337316076099598145694158969868981002115705681071099929042517878667525736926639999599001269025045583558328936230992417579719224253109735424706546137107616353442983554285372147600064913788405670462779375624421664395888453770817962351939870595700587299776402859423438508601141076634876759178079943287387675524667112927822080500746283020669346081250373812278896871999846410704102501056488888820052931114056323595792300426097993244570608766144271393210548662222570068901584663911110483489787133878750022118774355421119842603292302711155528393227502996025265421706822895739896344799889824944058036948896432730031394012585362385844160588062626713693209356404845028368516049273174851204615599427697443300063598968516599078459975254590041190421038162583853339923914527495499734012686932339200658458166974997356281797573508003310392670584019607113287363829731753272594263598760483738709565052731189964951941527260903642114987593553861005676863503971876988659957772754616425470751552649878323417709306791977857685306927603874403077794432754192346147140840985827937315877264899008680680243618710113395438236244207831673115277798896006656054385065508224298921006211277102626810146593487825226154588269874050346976076589357072451312595544708904453315811917326809326740486601344591911040137894305996674774638375442105745244384301991750587540227422443525742327556102841171163435374410231129381624404740297672253125964470480912810481326425929247008581335725503577761949634628122531128918232377797025951738285427597573325661955446623429851842062888588670973033947883415906800672850284691575833775190978177470827854172122472267069659279526598032387274122649088094353531791441752282379891542450074248478961481766995985921271448460599944750002588774886163805374145409172932640386514164493128000015264574847339647355196386048628715275655277161864192394397412939440494090209551141707210057459338659288362713661264669863866040219129648149041651425154545611602236539932121942052279091218092401857530280030219185716538235667389576741209115691438346948451842918203931891880779233420390717647127393336901329246039284235260433152465949699448622387957687010719352712017370512132035732593349637226591952586061890636737066345294712392299155505496700251509133620534331657821852037514672391114027207607602055488665208027757260045223533075725058696666215972952767453443309449721334771371219273121769916164914586110930931158287641908573688777142242839494802673879787979097911012641085358753774596602959187710344001402510227423525178152548478299411652709499841780332394786833884090695142023328212548827346029035630948645710698470252687415783446173723757780680581439704255302814078627958126487664001474203018250440488834492963715468737257329629944898195456429739762113362555800291751143991780169179328355187125265705742675126183562397589105849450888294415602848371194603825436881502328026396897099050535847235715809606349460661698243670940653308753726063439172789423554608811132847914883325743662548904500543249313822287025130089781510026696494315429642476673052165159762719036766808218288115693005268839879481344374872152493028527144881044920965861895386086496615728341742698727291729855149573906276857381397462663861247918926340972750461984442022792709152566095091529987497819411151532679391568784761874256739446184648457761309988527540279960693869563508101824124137688396563231764831531001269038283787192944952704568447643083350785051366753812135977388952467621233865131327216663077330603550577808821043902447286515409849448233739960237179348182258625672924454603416132583040769580689978408356498239636168892100822223795472706881604392536201039288756059903533148178461240208606853183552691171260636777766584052231596696166158842935627934929052337269151829048238524412025478326490428182430903331139384097840950794260851677315559190782074390867798573433247627820581990807868163773634115697272909074603096053555671684851042767621313413122867302511643196542062355533423553201485508870531005431393047959583698175265666089705731364879915950154842693118641194141429269983491877513216715142534556792330979246898997248685822727079347823723798905274719378740768878445228148250668300907221691496636295861897176036904369051705126573779272434244769483533484261884162274075328976979718077707059718100501613477481232075692889030440867484683978907839331351932705728867171842493858796275190391757499352584609404028918619941415482482344843111512209714281287025454901801395113763902538875503694515640752364375650732593555719573848717658595069407085048218716189518154011002549651781422461497346460270019627754120368798808909358437406999992288632177839055180157689562013862766842089751751318008930882723015567416421940193434738567182502321726804080421843785736214004819298008149603932759040947431217294341740318621068179893914178201470552848628554120604146561447746243320388626853053340391604110217069158177591954455116979608367260212243581769423030069273995419714616430999336764129778646337088833002320097672649138617826968994882485358143971243816667079911612595023676830702745592624816718853065099682860944062562293097088612220756123436983365356502350670637673284553513686467951331539289818558341599990177626781653853800968632479288759293003641793726407734861292449440855711998308944522633232049811717226860331795582898908125888180597044811025675352214576499388954457589489873301526994551362115942811630881937644255784201071996409932018388276185987652709717973223411839165460764204137732772671524044118754968280057421792977804144523135698951153666167393398714151239046504094189609710338449701697877546415080872687732448110906209855012836499913252277565822708577663807484405679065813883822366572614072154103535839932237514963128592202904765445475297593958067491957911489727115699839188867201408838924593345403785044615917457376404370675286433826800275425564043948490140127764231943568366597529863416096166112214443569559136150621377425729683208747835807013115612616134360553876283616639579014663423291401504840051423596840721584855711721738831037069149696545508204865863338121113318651314901625083482003022901228396190015819228653521715130492576387813191051265842866711373659931504729732071402990156401318551792182225941127764326115542683902621470267460177647249410559420124627736423894350695556233702142418501430719699254142955871562850053428046410834755503520388104479366987958353908765359767680893177398619022679854963470366992300339371836077012698373869798211519462080823859326657732214401131234853492194285612932343925414976879270816191514164485014930052864302384958324633001319240523548653830686384235872038341676233524396611420971678917438920559780886700821472631467003245744470638944532853822193418370881714871697249305102140996765937155215085687473936139116878237449290380297701225976905081540817049931833124102604437167591193254402162151683709333709657554045256059596515371814753149703721842496010406137707976614366556522103359444417864371664807512656373387746567538187104175716304919076627590002801082118048058110412226557502898053519931479331719096800325850069296014892059235048384682717363540631771584804162637815948316672460644654904249747178865932401071245417707095843060413583277824446418402751556229460122282525032213348859798615458996356103972704735373228752404111942210411521826612578265287961634485369415455220056441675509490111688046841711973286679911569169175977705726846955547507138499479778716354774836713840135611967523100969193877666006501688472413393287986775645592381031043380308275671296892679867247484437052203326644249070870326931050714514275162571643585226536487803285144470193288839532531172940329035315006045373566482339050634867190715263905868891839800542454828358099465120748525332348128072649260244712082328070085135834298377590683755774033969484837720294584636525420261183483653510519388941296253254528327431821430712709024661222831695625122964333282310993365575630716027493844540094041700296656398719535862716405442496443819312840366901438632800057828348109722111732207192384493431074888886708243532411228886701300390107637339970485721186170526157480261097095009038800601498727692802507119902863542535861751372627481766208621195465171149593582532952389860270089655216294573103595327396940147982779821432301371213983851307581611383642747487409000714987423778284753520843267028909699528423633596035970634183214764647019491434307538767788495826803154770837925621341803712860191359552772145577317717665631507698886873773887271881925868677923160708647630633604284597139638290962228093420457654200519988487497366805152680601504043902148406216593057675185094706255688145166800104425001705948091391108420509474871289003385505563727822541216466004384020951883252156454593158861035999711857968803575806692689122970694736752091725626979040405882626705431155566973694160909519425858774590846509172107335674690741080431685637388798264415825750574075206028622329319459486324811460250122391645734222384697272726329067800439442607692769711314930894219687880503782340145073142218376352171962752704610560905259196362821198434598991567632991696001096493052530473008800302545935756014149761175103784921331282494967364006407538320832022003060724725710506497452150549581399083621225721021310067391106066691800816110491085206058722252886250032264101333360070656601987133445856007038599330953264509832372605204456775876738935946081935060057399827348156019287165417315399796978713186898899198555184976085630390199667637498021398566720849958619181012373283031839461768801031667793217155146991601976760481854058202466810225213881787604263819606495036445178389108307829964459279319372119925761171297183261402310046965903338649764895620327266703472202888972194573932320265271623123684740440505095311862382940743272188584678600180536540983223422554341824540934028426009078911637627295594489347095193649907060411881985766995378994835905515429984695070089910576156459707704240906812366703915546667858731510387917849482534604222932114658596777186444748919027526707991220942804629520721509797786617682471951070322193237915122380880459928835468649265727134569551234024755016523786892789004567190114069535623831512526634094957293200687051924822722133087308270887779050150899593820842081432331312690770107830627961088534593800983577752766051014667705864721670925640184674899983475403483322587833945626170009443547529716606353686757214983816405990862478590743855911217456896647348075982022175722579900987971868967501226869240088560272330893531943105639359334093321539170182699139195563889283185863989085763451806004031861698481399530420018731323350499439848219965570027296287186351301278126645375044070909431444384726584689294526057435703977704131291656029141287725134997390091893833264961038575544162864156596935205110962102844665270621108874738760371672828851045295378438164886854725040861992869466634120160299008259724796546214314900081942935489142040555381869303380042988008124977322777873933522188783916161169971075912372808627699810777391690815036444014041402096608512888255508038103008669010834000602098749232245195389247644713404730695096897232977117187857829969945841776001730158849366701312275622266124847239325833165519030616574076108407451364246463022740399632842137584804109732870858897427195901233226101068058819229456097038545124240590866873634480853091832822228190965311682924386586199530165577407939808318697259200003637877714745335008103871061861509518484608952692491496502134652141202149673203078733109806209001433441122428816819079210401503240374439336062564493257137817072075395013693039835728182394073103164640759867359441316587080291911951805088245937538975186945149555196550552449844160731975837183043921952821474361217276548709686526718722103162689473256195678125396649509885182975544769176650602152825118865990920217985987275455427142044515807419944706977596893757171472683273113503931448548032875594017532273214942888768038611510018569458666766033742493825632731394843786553134421426242734760359908555529345840485938855250619417846906858028961281695851471853505059795201260574634608591918145610701312422175976373104414890159839491231283126076504291191735894727387201847023601902335617808468200748893731600642653635823448589012957484466053311217499214310556981071526550827393562216963212738409847663551026698778813846952169111666912334716004225729911140614177019967133606303057128173875710088424914931121635910175267941414055412433715892237172259169463985620472239537102887175260284644730321896203965626373970156723747672365657171668488395110505752237471386978469852349575111615268071370267236215363693350346119387797951299559336127164011206568531165610130592971514346610116622455439502676688066522535060519045381469305267500565696193919199717893155849130366578956927637525166723530952956404934895171157615089029233605968424205008768502689647462373664147643401137806434749535024094385286922195830686635292549257979570546260842771071425755305425633575134507719511723310092694592196007116256819982499507083205615821720533123729230646009991735979439942173663648465586344943253428766763703324347657118355296837696850198040567191727352956765630642110365448224325310441423379152500898329806993636932054120407900472271137392493987976648145713063485336245559638393571507352044863428854929399067102032538086583693594413218505213978121799084640389104046533684476612474618865266829651343730342423725562270721951930417464866100489812189226938758776814604791687148720534186070472690954803130758768783954874719274053653674048899097371063549702311658583397547483219518312046596878107110931601567279787494325814105855232210106977635496942976142744908074536847916868685472331141555145120975585682970640371119500012354055746520328525735954747115990226818377114632257804333643631400838795427590556401462242114007867892810851496874675891512021379474346264203720561607923474531939919819829570027924642280779250058776085838180927951866887266690583742456727139523416854219141410457041252662416597405941148828423085519566877091834716097649831550519821280249365558962112319993112666088615763734825125429617987130383154621040335061643171876215990202098745275713198586830641100261847023149136464277213710257253471114142585370577194662468076843259740220952785672132128941693116970175826351283417783777372215464795272123048011262407334452049575429100183322797011326963040824844524492614406882958852416096149721556716345465939581064223883559649819894990381188345740673812337323242279078445958303440403758426219320662573805393701606570946123450247109187321164088017276961127401556915903077320327541488325657315853340726996864636542058479057367203557526948965594076833672963316645695734184808164962765296521770339170808100284223235706673188320932629600220808062360311661254783952122192977443330238281567391147066260093885968478690996982533779419960809011584326157841382996521670925882915076835534509425571775657289406873042977457313173047089684275337463110640278135340346400314913060893215708625315718758823819316335467378436164522297542368312683108079270646415807825013078565645680066809127274480309291048273851894404247610246605918922798734915540183952638395235372660312554646297273120163735824934452533161785560585572709804006998111888854856899990781908199061356916333702068653407954542627049717768487539735593833473280009769295844535799823742633512684059564503381755336651358276536910236893087215027259223382101096658421002829268788610775523770869596496568614263156311917301251697760720867011556528398271557473730514907476319146240564207182644818108587892818862974236237911497096743139287796218342333995856559563316356051896427989690395102740042828473885437860464533947863890238860502205800533403611940469244028126649766760801906679303241105410147899992869756395831885694434898296094493877206398520248887599505036204520150536346210934921154317388884246216581430377552873973191303311416677003850832803281780284671062843290132180135258457470086991592809389309921056506561237536347309931276547430504730940762330653508034305942310079721929632571195419071454600217278822366769024434095462312139843076085425854382276153223464899951096653994418474230581722396155083930264634447433402293176682105793332055022385707295200856393893588950670076614950714493070191046531316617848525420253858189685334519021177369438030986056713785974838012327855989768595770384515811683868318964962409906122142736727590536792233496107526896061673475291146593056151120794708297840673210877964720957946908924234623023223318714888798957633012153440294066247942175474659910727712060390200373887457085955996723592628933259448537232765918693097941716761696301148704864894335128858975222424962067271061404301143470804907175209618952473327617790477426898059181800007620587462975423891758880272320326753225216095040172689224655051530054467344747821915242087654229312291961861221786944393014634800779312083090445396907292297491606389277150732665383745407551439568791431894429307875989328467665900587984870961529275933725496993316886406492501720043368870384487243969448121242102791486192296494475737969361767982094143891856086574022218226027845305516341411346346406180525869731266422058836332893270886512681756144369355570040489147798252828218455568959166971092952346443541871478416041886996090447885591481736381845587324431546632178419949581376596434059983199557966853812815675337777330325124990410222797897155467582471477203898363013817469135953715852101019423143174313432689125189178101798071282746864450107632476563460735666049838400491071302689950540819061024760041478029456156652661230986007046852263972811473428651288522507453936460052629744181540618227841205949214833247019401968277312794625057763806004769234705199432201460574115530235549957401183057294881592577627112915051853978617927441033305959442494530631909683569312495152577008514897696257632872747125599086345116306045467003287430328677174193617636591118581847995950010647003311066209860240867599923604291785544811873277728053336843886026072048246112019146312269058689969321785102724609892426208035523960301144503066813925935714335218323463200857091298266063025697685171289087140749947351440840388827412884195196356106537880687266859828560385414707422817339681621160663634072605392615133312799401670927860131901148285406386684686956638927696594392679969012595222018116288092727025072169466448526798126808808894446297230167783403775008302497731262041482018885632112104967422970264936590149050701199984051511957390088434704462284005351258861608403547773320453551756324464807533023059636898630964548796091801755782222935868355105201189138426367911688339208061444360183863357986730345755484081342818522028976375911511968573243098690132778699984245219647545159671366577664386276419793804733875746684690385559540327554954713466611758174846558129910385874086097595686374150392016479260988574440258614905489554588591021386335612820491744205261500085929179073315098103227640834959138021333588652876374753909474095168731638452472160238825267601835186713049543729430273405583504370677816888547821047780377008943607077917564076038256843893023935185329051365347464045105310721071716027173353138161475634436500408130761058280053233036602064366556235677152637035404805684612879521226187018703764537979009517263420903683635995679846126530332872844554844807019906948453131984751520029494043019929978532630263765037148420037035354275846628131135154581210335217979936419250538011198152276532746917640374741535876392312125086443449239101072864636261227527670638765409139742553227516923674097329976491841025138887865883998067106769457903984939979908490615170446894089173511654024688580308477077320998255877132082334838780235231547200315928132526149219952510591447317668552382714107158079010864303263557626637720530153739241785314666070755632106675134040803612934298480251242356928088687207851960589261447773009368077788791710842300316489869991975779189991040891633660814519466946254149917552670933889644642706286573665928244500063746121633894488385595302563988005525360717248023719466376485725936843346361316043504421166075172403804060878533567196697082082780448933174376377404828691353601100786042058265309225506384675655197649167285412987208077640584856660911835151078023094448271923644258218172583919888685771035280160071483989254743541896379443259287936844443739526913477817456112720087896526970249470796507935565490578409402529298683573711735174239067360174776256934287645138969623792113402155037903240971841343689635792360875546527081009976028811812685912770357724680063765743817071218597420034680751485502326052735977168210155120266588825843256650229578675115354491485392837162345977729061087165311568719063930028011670362762378059070364846652860711475597478160143803649608510447320175108481437471810638327558310765144066461438222944108815787690324794193444335965918461294825669513491891727382343923397309801650799703613910690094012977040244089538495645356221334338120364104177778362098478199303206142561931260897559060738372106982325877892465535053987708399420797287335201697241743746885258342174173081496685448816037778406418733774602378463753636052419883051886344234742048663030266603154720246878735635785992317884144281092427116506794736169620851746384909178529457387691266364407360365216239287086342957703228415065526756185942398228449410224334641940565268809970208290319763975361573353180241386829219174245868805365139973466164662590102183932150856824912835364321893501928325406515059308545393731285054321863025775722502289527140466638865296427773621223443913414156746723959988995616994772927425226408236756510568361866233522557311783381929343587847933879866661055773519268528171948773437634916496056162703058895512321206291106755634464651560400130414914719279551746558388486585047845167480464634625103662528016442333142128436020051622360708323979056271357097324824150911033241576501411432403631823238803332977390535697105281612645611545180488633702089866830806604229959779101954191570021612286176163606999855850660232149431786553606727308882895713919897612202723358561390461638942469235167514336773370722624674741094848588898937802838521797478159735859363213896390324166852906932870275964888464539870434255216300038499887654025296839010543702844871984719200620801761570011644385958840146304672288181162347000946503752903551076020514288147868570743587815148694493542685481703476588629132214634614947706934520231215532022426518047434827837474712519608292525904360213758453829648300827930855773077013305436216402973687296816130174716735611742955989101529710085783809518459836341188782809731642111305219862962464507457872206141066602627391203489696412368241360913495224999592236293908114290423668263597751114434976964189184354721241521664461194051788203144578973825906009471460611286058124760372836828010534125621331124855757578626278259334512075804976536777912785055939071234345348877532796175612559162989302951216847031511385055210294083226470376583530288551971622629771767860642210137875300408146940575657337771179316902417344731622910642647295129622553934862211453857444101720675525526668931102467559440927209971922794343865549097781666657649309506821567622702840658783601134804578857518301932827067748192623323498493765829415211863663540177690848377538459523522532075332361725288314186749628240323125237377730355038190765096476630316462405632936698226955608694093532064737939608465671790788173990403184295954652763056820310388003919641136197868549503064775489862076311977107077984091678090425809882250729752258875962458145178787193692168219916645431711470319944536598328491424087437830864673257204087076128084130761665555552438269438417082822545008128082287042455574220096898812693305279639142698362093127377166771221373500575088225876715872858389138311645561457903327972248161359783375305170795754637927289869500858127983023238977407517681867907207726977550040245084960482326162343655769381429607535506014337047293846610743534732518993534087360188889596270148431195451658358810812007483228242408291159137174539960027972789457015980157288920559965897635610669536063730890521775850548955495628637106195022153214570732607239785749269483684774791987810081245943559574933524596969342711840391653037794608216711088715217462960007047479970981501421036507837478326398679871094894688011886839313150125735561709206455182692248996671778652319957276249903532464987275344625738340930680017496211547413509621217836104857460467660176859867820443534550231822231498331736376921982379890403749526466194415689790012527503001573426155741330323673859324088611535405737587817224218926974576167514042663003164797377314659278064571576422709447614074152847956974007256541233587419204344244546244791948738935498467260221021763450806169388333807076280086001518678503627916979212703284153149722111769152610971478228439978123710303195994969931343034634568246732366904201962380550084059863517591307299818032404634377505619081495406903058490409859871421023114211780486342735532835147504938195904382364615764296209317601550966731012302377795785562047864916774310331045867464348235196058896717614401868285693409981870623783229019962345085665089600087204520287561028349406725238454401245608960867231839397155378806395732839489555871256043774620731936797451214281687055869948329131776634092941523608292922422333968078118464668037069051876983454017813734196608985749132743250693474734902352654647582567146257603017302358577188561788315540636453721056391178737261278361048319635356678283563476344437477527130993647844915669478663409306070432639714492524991867384482422231224537745782559625579805044490407026451245011247194160293142774999458794421997358448646626111352421345887000564380983353128367570364941982354694432682451293844795541982179893579502597262029988651098975180387659705713699080696791940831012078134653566142579919444987141229886684389679502491282480623365875808956881239006246198380160801028884602057439639806494512337908207074114075535586320813755458406553746112514235988558127654000065936541983757451582602915179049239982632498403307387232043500197984185211357727899213792979733074189216022479626275154041976499854479149592234866675931759572831739949619242895660520266271171312543153368956580693637134126423986548775929660541212511655485660520499203069165373626245733687783601111837741415816400638330957494958849344810039714529317005522598751586824861233026362369414202781315286346082904654308573507246209764237541803321329598699341298167065154195809176964640548038597900689270654342843867117588313865486742156486230049772744285564122408739989194637703664093241439888578754598111469245555002268298998130378560076192696876844243046164686633775669407350728584780111868710953211825973629426020902511906568310622599628940676363051289678633389480637347366266809338830205041964756838772958715649018085911139896121530378186890932524901808685734855042236317630109276056506241163131194375594688087605232621294972210485204854934851965131915816215912120904490941434092082734805804282550567022395443592549812498658013825356732481930032023637494860742619523713635511555026193710619756652141258627368891407013991190675085293286452260545429123001564312215492645349198319408160856421669914068051566727264418129992829301628337927850152185010003271201278639374341533014848681391693442977275550852306080189706260874904092819734578710046198024567431891647955741626984945985273479008487919383217505803245011364956375680100762075439742707242584615198511522489875680077970604238750457612656569484369539696821599910723965987181645550536065880954196031215651415575709984130765965710841360979499390510052896934265533089904733220685673561988559865444253916437966928670546051655060392609912302581842809881081182315711280653765486652804044109400887574768984278246948466273821224136585252905434635056717581156508150376569570829898282815004827991390315115424899798614446203585470317144491611139012643717150100917028104713193005613801108308709526905195281450456656192755196093981546800809195666446909043768502948601388263843338556069326942496618590489601565017112969023183955822095343999560972551027241882519997599179909163594315643961102595096025885691353226925075184681325578178878729200782485248928173065233229193227436656437721170938924237270543087944716143452883721481689906008744830389459388878489242028148864202863917791586015983846604570856075912379120000097522364702229074241486247895202692157388159698629419644384348529393332507500539467039488552518980053731391907592243453413685730691635880804772013727797767184392101553693169662279939170852015257979881906983216570433879673498339285864396860324915986614549696076768481874606991638876469987809108561562260022329691679913051093417011528495496003399835029871459833232563438093360606606296564499991882439163026232360884345622354792384502546973245754593479168393464318443085783447221074159339738061863871217679656145802175566433213934922986896666324559111818238067980191356340095697307770709689838393762122125190292814692707546909536954282487716753248602110365392974536983533370883131767356665383939503520662673163601408295056928187205724995606754365307385332859208183022522006681602005960113387643509134274395217008839227770214654305224392581183716320803941384588444212129859952469882986517305100414387694445686103711054069566839211091037817642496769649051526328369700633179754046354073030975887737953074670529430594168148891540561619909588414271353878871096789153499114451526364722360854718196887025484341793712822564322496913072636415051982946620580891717289973880819332098551530602625109226211172266758820578103320609831958228498995649313291395863000732581469394349061619964957120896244167753569580220457516462132086634786032822113964903919272572020597534782376558159965465181390679245900152538998546059310978123569252082329717966818404468301513409015943817834006856552302844553483646530616548976259256587931718975484301944339533384797019510053038561763656803045512961587285217524406760546898148859809335196091633615931966005837855511513422771226265128989786636524659596505822658272312770230458987154911759239838673997430825617371835920602570449819891117103845173400866038296463042961471524909394031492827014790617813549683347418530821564241559564561327291088062980022361027486648040989333165600974875451612993497402154412740776899392116637641107115845758167435960226711829334508671400771970835172041740334867350484030907255148968875545083167345819980083705895201183721215752377709940465999123272347576536925084277254168548241406080588186815290226752230144451578598510611679297837278924352450359038803769234407617056021998399515949596638407711597097722549916472135521877282599678691533227216695881978589110579999993624618873460163113950573414738576114434882812719017004773577653968632208724827406454811456606756092270452459921123782185519683354078480748371073175302615287830298171291058766811464108040270217025724087679356109192900482801329918205214758593738404620533463670171993674047150983276383548689192772771963361327733452694793519575164939799061980414194195708967230270844903094798093884915428362774815411216892049659557568750092345593333357878939860512984983221527185537391031482329416535603528993416132987267938167014717010785352481737785105472344855845021628382078797780927029909943482591760433772614562827572647949542304017808304884411068827430354901582744309613208772155422796424693377979052094094272095577331974980483088695116178842880697605288348972231465361690815197019209833991117841320609600352670105974414563208884084230711975064491271879441806872419366197182559515850368575904547412669345926159086917822519915555695835470605216513778581572942468692557946448732220235815529091923877332105990107245695284658949405557499810679121094561028473952144440299801031080135139621465361961500227745622573243803007348854489192765606339873887126185722538600444730725744764796703220013728298198205539965096104934009888755830384565791553194163173311340497299438811044215584858499043541285603784709205804541590419428271655020200129786521575541139146322369366098855295450472877578583181787400184400073081437489216608931738873700419762497632549236791899708021910642196757070404157198905005738058190277138075487149118867626454827436569995595652922002199050002316323606671447648569224752228391340144999607587323390612527578723154060458608673759161056521300459528143584376869611969516107309624905671119985176687106098991795231663453947588397829330886729641932074353060149896837061767126107306327337384235359734375312012953111530988396933306649721349239288325697781616614926514493015897185581584688125032180055056175539481101741393163572641291897179735527116917633344600487522061009381918671227631785187723133832085940730091509569885219782037113792526693336942623280590715254955197781335150992713322276781067482485246745119386006051698581134643741017966401856804805353382445134597551167077899326209206326384144428184189943047556497354955905619761827775788968365877917131418411712216195013375713957308228031320604202580810854481674210201309947605967835845235271408728180203633882764591207943305698864143624985590637179041169266369129821667724393567585965842752175905750070179417949961963593929417955701809405308916886817370725081496140275069022981075376826651458214701457978137201237824367225137837865515635398864468829144595665112601809594842476618509627654092223802610867501460786786444656961287127976141987637485422170422021968514514347418977816637182400228418096854221895978372947369897186468425588747745998865005692895055657686689165206006538713996823811301164493164850077891673800590566109138696678857979099146219325103927466711095669154637174163381756032063141321490152613489241454348551049618822777350886364802593873472510668650806026623604832474244991053389552098923542600749368270965451208790771926137798421760161459452093742972866401328079128905387082072834423159071714743186719051964710123757659418258242343053643565053473953224510210050977648025722437588278469662027845534388949706927894902194005938588748100488658796112432471821435069175100454012109662100532304600464512965294023906175223630873511922249202202052743513069772046449383397871810079718045958589617785649562663667790752964099221523458989594992212179230462982262704832701314292805825241854707138756896597675717186707401531380127685286870419027628533492749439095138963082794852133448642514082168973282681754584705644532393699210644339926431598126060610647893529519407694902779344289526343552975427037730563078805859354272522102831599631186572033908189531559354584914496935660422002023416522259065931346655610401258896024820890116045125317537109489636500456996446287769366044260466445466974763672909122023979798908058615698783207981172811091623059932699513202795492717176648288555329407170952360124779115833481037209771538941194728239297224564532151075957607265798173249323945130310315491360044823168478882944786548060226706623473897439207331224597908702210414319246222195282683508717435651515599629514270863300473301881734089952657790808183487787566812943465526107643122454407095952851833735111568861575812801890942405750495042685091483925588240564518657186245273638110236219556269720338966681366969932844540056778380732471450842084773984605774998565775212226166579132073164431475333842777718151393058373075836470892393110055657459927554267277389538715550501460406991137550886018042686715473381517011997464601199501203909384222404809184404431071766325623200404500394290054975542639253079082561597587173038665730539330793754696998472890941228162773287876005492939224894716253630418970906658654950954966890576455082796100832175705596351207028957430007445809494430492996013470626674572627396817129034624804915409040732244590382800820026515690553256029672623464402524292189989711786718577018735266396885721604791886667647505624952248407307031630487502493563198159931626612921704908067811143710345249367917669246847991251538979258068241742333982265477313994256709166666041393049051072874710728955810356079120965492053285834739375531843886547356408580091141151310013866184897131327568111630331164884607941724761506932652777344962247181773588139432959623358253873070661361959575776599802513162221593847815801718121273000297988152111609919347289022261949952229347450959917757855000518565251410770751004275773511384371319737374093399303076935893517290895161022482603169409941557166613545037419705832491486967333699668726237752303936420239274936581997533520119485087989917754384338577925864199921186684105066613254547326722174769529943916079125701391329080916997230153130979074077019266037564152156677270618511503056233490107149265665624910006666277128781625221168734802013732363698356980958612001931799030425549137293874104641967352753006544532769473920454220621217374575691934897906398777791879475186593948291553072471012488672794668061128329244014059967347977664168964313764450071891855399584425150181684775351469546162867440492906979354658215447200025817601423246629020588910769555355569827827602528522173207077237461239193715498644370925053958231623707665121416801692848837184433117073715679225701002144952059240203377068754835022689002460490589448787290822437008792882023582316470197518442599159306590896178310042147715874218864207881658893981841149741864812886700020845960470098593590338063300362324755297158240660934586428142758421971273768827546541655428744040106654466199354035095754718097400228833686425596119154920971003390391942680248534497723824877830998305084963664532804646699967256312117295822960027142240754027796431821168136778204279059279049679610660355847997112543194239865241328135563318692219342928852291091857059339321527705394373182626623341358204674422465078073199163472955692172821809597808036832222354891982046734385984081686048363524412120107202113071908212571856012815876241357069060875179731575488760848928753415069074135507805988805305438421986768990487728372686566429052408696713281525198089276490839115138678389205863892101086966896192357115630116487812299520642287277122683190691654916473290909759762563073913866231785755133021143943273848526301812440610052625785634278024533938672404966733615382682302868336714104169475695664846132428044630519642682194958993464697729444766688433464972359030755480745597458075474707227808773549914739523453033509197696349634009229482990775210719960567784461951183362643458198518644777051093268583745819575546370406988192297015948120920250542859067710813864158261910725612477880285342677202363252836446662606543552552742806666546930251043428478263550178878855207587548447810963553382048541033530469743605757521138097060939936518449640951522480746288778280939052272179291889989888074057592448937769320904643418027069671703164621327940296366754267828989871784720214661351531104970169105540487383059969912777045522460489735430732820129759392907750303038636454784293565724701345923817019630166031423392199069994647785429996512475460720559829565365376588801175193422850764366114308943298762003381821882056313581960578509134751045198364149453160252504279694807765089791162294023237630185857500989154756717520600507945963753769367930854797538074263695101642859706080643538982950877356374670930948250007409224499590629326784171027365870762399086582622943096259465699693436378018398916078768412496340504715204109370712065458039839854967478662498496816488752626843595331864415181540906191222345063421033891599071251091683277630266519297920097626622025169980677556467231155284282155770855867622781924434699314874072204120184924876987734690553190473286340294223360095442938029072216757382042528397851134855046432769450982531601960863228581319221857292681321177756311743846057347654874011230586131840789705288860657515755529060904364491649145153058172047565173824216166004229646935385754309221613060872607126112906406742887872971418965405764030856861097248812845256973995910421316728279003338117592780890054663229859823978828762388154480506706574797499908897070336029194087161237942128782071342324257668296733281483804955249134153215166914344250266735418533729441594835660027659524001110796683620948981014816397205526127016233309572948517181359239183409169048161449003526956254021896586671632252526489933289951329599828668290833768725473629781123472780045840977264447503129164432825330065950481548186534094809004187955929829924512716540633100798391757516550734247954880887065974334004785387193321147393212726776694423461625273733313494864226815112375875492623614886371074780320366789668536838209186932899684351673043402893715473861461394839013058195300732052291049965419148988869878257842189112468503501952260604340455234908077701667087282052676756998104568854660646591596840377443853623091247126123088096028297685604380487530646951479687485467889095143144808326700858402122824767901513940828406753585149180641056688677187715509152288253245428001131533133248318033307434596720837190320942437675835847311723122565198613824130074818231187699674519885039127593681345395320718626974607507643705596676213498091829150068834721164410429947473209912520178011639622916806417887214288442642063955998090487782771644404240687613934887976600661157986855850187256700461721766600289437581852120479615188860490236779269033951790831318920415897512624591992051971582559496074023160990896030371502864113841998321976064126471849900263081509474764894303409574745136497972453295071504873887445776948405294482435723746121074232424501480400907160763567091784036760767252573520703204400253552480795643540432717118833962439370199203770860726344276200356882994663760554652488399532650203917175301975697684472595542308514433549070279880811329312365589118467913920218416890974818820284022287137790010334270173548977488522895537113640093172633105031595972341479988137314457396389460194737378236023370867571690498314647217714339824200799394996888316821478351910168821116893522944544300746098750826753006409019794143098600634372804764978143243323160294543304621555633400131207372822212996995922322935570992618116704160411559943328397447410521509412752330813381334939090534410583093694325730476418638151009163972577161365594329457462767086201138460101265140844888330973313281958189565137226930453575334902675456314486465213943738002741888332731037863553091427124313107140378389177369015704228911720707741467638706941000362223787166371227881529005618212506010886633377216227547565382701625679282291936485062242605405342469233494003575645574243598478991373288690637408738199593974607124480970321633651184039548093833270046172440132665017138830533649889616197221217352989213842438435735804059938407286821033183358049344848324229024491003503992875544761157453228860860573606170389934142861166114095879320456335611412690830584743690275558755190194627640184806156174432872548969233695301732518338343026239440798198318770059312642021052996869638811441747121873177915116611194782406859349045400092435734532696390091452251185162920681731851639809072129792202104391988228850355963585847074639255179439533153307056972017359339741949179068911259073504538535008682810135037814308665128065269112732665173460534759253313894079846178034370819495912149860382438612307529424315343308156906992479884853184392407532759155871868828905950788102285835382441411364529315034074721803250399195972943015509481962980346298479450156127810341278944622500567966057891406053717454093391936444525576606261790637569132578465151701352770482751583704268148102390958684213661953267181580205957440506363749986466431503962177555778839600549268649390880099169709941921446515465844290168553093195254227560942807695158716698082337739893368481503956311099591161874299913868323192274419792620373696318759134269230207589717785250989914855657577611900095446714722339532721966242195168459627410636246689725921041656313474427274954295356959672947772561841092078141073635701180029609187322982998987099526060739492451495567069880431989523634378579257147128079530466025643263276732334988263320335369685057031477823626989782047360746212791923500500164096604402489460339529480894601622414139932574827241589601004730506561537901592343012015408126931217731164374529268106689901162713815820250559499429142568189592042347702515309806041386512517359868262721880589126117253716130517820217957514065455140723852188642988031333557369894418088828318237193000541794613505339649736885247337529430316113788339744028003387390519326149480203652767315442988231223304545826079744270861356313055213274962345659212042055185097315998392803728989237056948589249259439296046712781541365755910931399129260383333806658702209076032186193719197423925417247326478483887330026854660095870310653732552597786862195717027791881882234905748154569912763267850156651415942086136598096081615532703992028477756831049910045892466159317706931086476163763498604540387092767656412727401329854388046336977706681761995967535032118693400135415217991970277010266250131240121254831069535331523336103759662979007786466940383440545201107701293208314067332212273344270015607214611292554058787627702369496929232562078868750133429321655508659801868833052995169520644988770535983125150972846868743939486437634084947656064594422782119862445077157657387265113488084167283823705522486823859821407093192305094536118571639035934349868863883061649966944811096874922332878993830253252449683720941395925315194268462622887229261754817803894370217117371863031966822854032697346595483801459689992184990843084256982891273028214516474657851220948412991248418630957690068018852192139978818096351854733932395385271785405777733451016183636207377085325360386168915509647582721751609086857419247627833087463201892624226192912867159062948983561645449228309283166511957073267126842674266480193327886965032383977216283910771822219954205312820927935826329713120676309885001061389503546418986976971463278472418350066853084304934167020497088682102531397359102116544387680335608539246647247256543893916319788443023385297260191859992585101718354660083540046143452965703411772253737680717310788188122192997894643356906568953884324639289888232306480417651248601915730055921938767489156533676797174875997922616208038063350687293068008480332865632935832312844768286596719583968203501783085689738347651952035182888205513487925789536865547477530649168432678947452931508712989777511848435044752974234573718470316157755365285293006041300265888060486985668375637309348879634001823446757051625154113322803655015751718277689924988227913583560850113665130857413107258695779125334428713817331968591790882496749449344969237663611956383089452248531424824422419854204000383732154467581267393109922876465130663094498230231711766811558687753086301252509837046759963574046382376521809101936387925523994557189620080932122747747602941627900653211211714095996406008920389899441252638020721169727174769337364842775649609365588873386541239861079990018871584753053517967696296097643834838947950074839882011889816998240538286805952659090915236330418205976316899899308968249987552486682985062428885714382909940231929691930816501591665513373478817592478100365378195316607031833012205946197196628300910776819152108379384957409830380381968592506746754209892382515186846286494503043010493028039958320695033581343587498811635555718036311558883035205187593227228264493790176202848672351360805481207280085250053979076652923782540541929940221920827519491865694206030692857847918223766136097388279528047544119066736477156019571481750715333482723247750789417722150500203051193462836031620953548435710564239457779897716136647440229727264108843194717063356136443900873824861168076866501383526044645660725290260317450416276295203327363102774697493589867647717034321511227142005970516196821543923797651373271477731342653013395217807967290283497501450173662504437853616970419488292742114923346553693939833045316940409758538788282040917440430321574115933836358065974411177674839743486083931090210114326395201476198723822008668636577013596744876753184610374642005293404796380787502991549859586472947928450185189066856906012799346615999110281135126709451242729213622439110037431178297678429707581705199361704928381312496231629218520707339818047351554415941140295788335885508476718672594939234883973168239801743707262369440752393867448414842547135184082118048984929465196944573456156180796514380528943268098803634273918027668417095128547494520507878223605593172718487894505274018798457749726304901777167138394949585048425727674881990988516297920965041265707559181448911152722144728919919477778715149034193518456757480892166156206361784942947511692724452012133805839406456808224460289110439019222630478792096535244346356051890111358525517876891707759701704879706399761006735350821173675266495951262839144675980236970463673573355813558678501057690767236443875572246708793667016636687823705873179665612739181545350123199543182094617904238367000749492942072616527526882496256552345001748223524431029855009504011183084735593001761802323528957350977766674990259516527074769256375233821866193024071329107383395520456025078840048303808862181848887657656963070073382601961091529829635542147965333160021911465716726626679141892439079423280230672864768600819480830406848575259983294278360584315796760663624830735716836080751754169850658386692691972093156902084254440461607998898882585310883886550040943830884407180566710869873129579154599620750072485510223192123240968629007949025704177951676525436209785621425658041341583599861069834635971335171315150047893490218899995578785841603935036112059173014857863467862237473118367969207043009701926487204093500312196223025770504741371341545011806935121477446419248442657835640660978986538533560556517350414409221034860593028784881999654059757045577456443133888791585931228261313798126123138269748232883994286698469581342859706680477760519177325685096785701715388684820799117990799176142994767382674907556183468248779581544219763835932450646508535667799448642505644625299874908468694655169183852742761647177192889704618735522885656907549896154113862751592391748635807498979163910750787324920994500089330491734116232979153821924236487249431511000428494290229166170990438138919056454812357051771845362900981596540001116733542170431606136457494992754339364950273543347310947267045937775729943992712958616340966650457241198684125639596023016793114287589571762999012626406303546712718022891809388171122689314603867847373438515851714555746209379691087385801036561804656525204005835547007741883937474944351266515462462988959045104393456222355836026643253569571725690894922114949644409461768461363090458435304658633422912333451065721833371593656311016449204596197738666295860804905215118303818764962720289352525491809002702506535262633209918128749945594349051559208984006716454898884111620637120307599353413225828489258158060568525074663362311926123340599867980749445344882743211183234888672045645715993130224326329043999903720322030357865046446485581722154051597394122646401848480215658447543067776405148553884497242795588116306869036671918022325172017432983923688972875634559247652299590635357096861691442337451219231835562326461569053139747260204900131661688854436836014113000785135426308102215798799295559759798436795290156406284615112671159155109041733709445063119170300286283213189006742729074119306246109813088950294035118906483946078876092432553332765640504210908271143381990719165237361175976001984812194592466363942329039532520861262875284088866543671693634940043189443800466530283512841384041632422388771480663500278088465046899587547659983894790719161415484138398872079839756951507795081178850012268046306173612272039778675384555468159174397576795517259599456712250290050331473400522309467748940664984070559876651503954862269517984014435215232743894058572313665115644508985916322242472883708508337543675675238519555985609796265213564661080304735445579971601166827213083535663480981549043453311585341992516759869367443490904482175425604660061606596090135480949501998392796661862267119909310612476319190120453186557847532188506456244322380391911867616300404229501845736393701933915170524307478715670413384271394060623368228535480776564393185963970274076286917965194738863533161948780788585596458532969665125088356155584248850958636491690903007078595042031698935981065333704191089094616898260715296381336381097122123538713640036854460187520774116261731838393546042351450283364919414600520759027893297060345309270371306479339822544715497264026488064709402035290247467741108125249213267253855077716696669785811820321814151175133697886981352675497351468827231750080222676305512587970185472347884824026055483867391861263729683109325881552418785571496044102549002235819050310653559874944747123500845767079439189503977032293565203618540763153758379121525684210998979948462887670231672967444789943616851738805310892344788761991396931344858602736336541029750294248651637878239089838969976176947625165126176594171858555461382646878667179762064845434137996713655944159904711871555015091291805025221331142449166702583619695776870614025745107987683312720391927830883560132158547469158708796732482436303451940711254895620591147490024894746139235833886853710327028591194819655681261950876161664441186190282817815296641266059654450997432986735604326994469051517920342776268458147172772580572028515280164170774362617699765321723209469254572421076203973628647768654736198602172819398637871782818125484561203601612629268821806495851925400589781006858307367535068872435008356173007722640546376503729840566942762390468117770960003208062424756627663552407532469808685544547242245198824447926514252594674315076095265147248143259852948521860340017350809054857296926857704325547850649289121616104809527822526750545121814275490686681445863275829818370899532385164426427529727449182471991601140482047685848080805244465445897895610156673716668424971201881351431638909938462473423888357671895849336385407143963950073678419109918142772238695225626736797611397606345086109667133620879100871177025555149890661774531519098945331227162351678150722691011929067611622274267056948850789599492577745782760539761744578783768310691794613190817997041589840934370161480823670459110926796735462199200022835509020455023622468724862626339338126813747579886467997356804925350789710955576656026290141334528570974313159039167887402803476298264394231574850353126339409237890987844311501809469227066309779141887247496190352364363974723082875084858165887698982916687291658819337766571786965483622939881721727321745710743868122008969553374656968930695614200414290531989221774162006394312977091388653394575426644443015747110527641562539475289249927208743889488662572681809447625265118520001132470451407334268185159586033706335936865582496931293635509414414909292141331066630742957685268148262143705902483789458223247777961320257962825347294767649314179287281514483027851871701360176448496648053738145230384782890268727180335452474671990411311592912209394082252840292095305752612148701479388712619317949491490609941528457427313578567796317647321274668734070711571631435263649742512978312164535196389277255237978409503985036024821280651515730265280410825736643928021568329378985203016567190890846378048168984320645674686943749242953237116049477108333820934254862772818579970915412041158289346517688344381028022659392523404584431960721552715024244792424108262161488267297359644553785633867891192104756779013245597158027664048593359147143566835334240064060251972771918281220833508050551743003733198828109575939761192019021509206197279402565616372872430960702165481618004652391072187052810936790721792499560004808355675659205826439972421296821444897799379613099540766049333944258352172495077588991070702995802765189853304864567770512183022029124194278897394256057044655708854908851628848746465507952834574791918525040384677578083702575613924811172231083283261953239572442357724494735042593740816637156065920330778258129632296892686634016096247586482428005322015869826864727763634056193175034219719118342120805381093429003070262392862449914906584899230581958908928275493087219418465391942280220240627506789821535708532875862655090427936292776033246110597616153455758287984954858626430061368300733252465815182034505617206010399533007580281861020395578570894787406120692273893006491695458007989472917460913609961145136546338152297570441529515443129698223329168551251027567006414685826492059746594444493263036959089776199145484077546878734355648487332454810119442482630131792943462878690861030101980538493990954781783809794039514713852019206265163672844455259294497291683695723844231668227354015830834113288823713777252043505601909364331893800168533239492820235124748769503444386743750489071163345632513439595276102029600464224967058759184727618488684253065110090842508291746701171920144784295806113203894987377016043516072830630283275938106049811435186305185956139243369831986214925064395415573633713633557464992832236631756518665590664624627988206030178609186669202106155212360119525081968382263518343875320156053431936876112290799386023410305586228799021913024540184615100115010727741901803048881631474611055312123942260352862051951690804825487501207109431525755999273664406270707544510422585599210328507318869326780885799706754370922690463388723296900369699410886440783310223855728866191829296826420577544095007117718777951576252448107903157454702370090203466393011723409974762105168878825302956248705377818212818622034395500599483745847824325991702837265313849571737310868064368664799466103056478962013850433268427552711127734648238571508445451687347043481915093305067481719753121773982774396523017766057858400560873598293383820179454542104418288110925876036134332759226524312560307691731479614056824651227004752567118492948395293930203305479854145011261445659864470182439024789274796517795688137166058048465572814698504394930618657758250117810200669097931641774257956914258747295605274304904828546655364124782013859391657366843676405344470273109186385845911301801746785315303179898265431804451768205882921938009955735794625291863397768518400390430967461869644372460787559948279771551048591241434328738425622841986373936123242939454854233831348061802935109767625821795263658990352845417397390093816149923430306980434442862845223865829319613725981702850328814029560437316541236109700630349943719753197622043469373976996916769540358204447246167839662537447407191079247159372535700791823505257574223523540513902443449634827657135571452571101055771472269924120879400740559880719953975848681280884487920366252113493261195133775391337784455563632242673196648681700586362596730151199858930571057419173729513399660661146005231928530754806686188457692909980701763373732138721533214533312267538695741612804356239285192106974460250763840118716387863054973854590174421295459152165949663320728464463304934221071507378463717283990649593580890142053232258147430139250595184379360869679969821237383300262812545975802710002583430235629237766917398431484199169496754716600396105279350435497037029130986611120653685984019288164664749402708735618090894977117648887264118578083891837093323896396998320684301988237192393750262592686467321329435448939132336047712767300709268747953155284476892480866889173787527152177928907803133541065205937443579420836557156628711086540910286633260417502957286653903766592310274218941667795514730240381457542009284505268796435815617692546524239673355244641081873190916553619526070095759176175803744950427738397370002426247767044559487396452208919434077553529806447596457645158617943385344313413433683371406374060191629250548345926840754361043736551589200107939853694494976629145782270919433876776164467440105933321145885913676914126715256604656605938392638255573749921900180905662632213879163878996124231895800076855638394545724011079097082202248456153901662397414337266095467012720403247573918878762851584325406300474397009350658047136929987915498008005862461186078261598526619169024816548901716696639347652588664876367931952838979158823061711681160220154300876484931935306201804985476927694265722709271169284011043514428783017910825367351342138879866821490052855222661559743974406386775278957010058519881549271739590669098888345718796077077596611584943267814568971993265464876189723071843759876931837222450318332553571243139248058859747354831368921092125631226432434254407396954021793231086657971199308792720769268642789238148607556353569521354484783000592125466743435663990478979306418982145203857905907900353730164688923823411726276206015701520318497305304700034777158915527155032450426487197243397743987208309542035497094317498106533127013132863950695021436285802995859188748856526388505479934070676561372628275049072083852702120696106350381368494935468391166899367274529859887360494749639597321506538678352918892606819606825840388665405761182793710040835717337352090840112492112889609758916202592641578739357586290064214692988661059285868072954886237461218859897349066906759442092792595684410797382640592599661826578383224535692073002167526622824293743587621815801195310682827707883531734708751958541038303894896526045940990667460659145767617714143636384610125746505698542933729030656500207635625459399745726236104239214613697107565306152651661451535112489493133131240566702069042419592640670982132244550996261926531624162439124859835906586350420324670047432193093792520511807186948320141306332516191458404278146604616601544131556327728588344373161814429495545644376445598372252884058296722799677446301106789288438921061904999819359007488160521601198029675211310296286572173130440820125708837014024255234503249159975836637192578213651344898496838901055190522469436216995934045646559064631659933081273950957526272982257088359737990482146343604405487349423470020048033035185217232208009243619586394602812285872080030729705960358370240802144432324904307925727798807352514019514159970766402640218326751670096239894470656886862381702670706884044862375292100204568037991680430528849145162761562985365541767807275943770233702890110496260843515306105183511660002267686706221562272285314632571311443931858758363034103069380252674355878962004050405817745476327886409080800287496168487834033474967944621061628676416701875577246490804326842068423909845473776929942373662585778785028498199355234423996097787097976155534478876490406023630161171868179203539627005264862141789032724945729314762384874781270512068062820325955989210909353542376868722118784442642350959231073652418018187676458157195305165972417555386093909989216394914179919691718610768668376200032224625195642626094559264525429394511555249905899184713600616231454659004509637792985267446180273059520448990791069088054427192422266457987118709185823225945849783442627561525372263331673092056580739199051479628679809035549684644503784065727706601106979576796414217857302696758448955167077627369878429101358943580594399659220157807749700067280616461937560810000148261885713096867606024302776739318553708541441267114272568224623414457501026539220053991966914632509616846910423147156178818645777341243252687652062860405840193614134249732168832619551044760694325656607768884379714557663434484228854855507283773318716762396950673879256213828516653995250808638766175121160872128534070149518008248385914621357292627326485616175910027676700053352862113115327419195951614357023338129624775314947573613642155853706314677699544564213214459130199907038524032984945069155412863755789137634877774435800496019553746466937575918676348666947519662194123626790985481716307549099688434857354276974892930945178978592469802152448462855583221963884003632724489368578263560708285197730442124568021248680641426647270483419352144559541045151006880121029590913613143708683137434018897301134068544257003828274767200443930118688274799682515539629194081909576022178307074430708667898328284660975966110844003211657328626267239569651729867034391799792226948478587182035729213196263709080698959448055456486050801388197771242901646440172380561562081278470180430454859562662680661069674120753753784851845486134819490817036874711412959521850191663016181916226543323816164543937576269916870350957687903334014744951359948513748090236038238967241175469025866413987194402781018507042138423988429509889588113045729645704143092550561660513730489384302285910154586783716155294418213404360995532668196668497533425076221923178323971026699209826287213521184735803049238718857900895994769936657709707660995393602222334345316330929194590808801672084017877991637882023493135206680761293738810161251571077402099703864368108967910265006601862253315960402687689027901862287212171515432363105124221645326400627499071390069482815936037182356828820623862188313562015866454116107710233920524763523733644926945453316475784813636023928234426001413678061374450913577636246056481891887820565530519695203687972770979367768148553981766360260502531624437402349827630135652372117967513324711971499310877997312727068918652891616949844921886948622340728534359608813802964332544446830114624694746794703806345121986877030743645332162107006748244631865518865825772881563104208176775916881030603353551340368960090171871114998702187694779800502071158696969474384732965630787505097993458483685596053454421198368516698682449921240905211968761692092716217529812113038459550377441678587728571616714479294466854472103835221901352575945768563395799681149708164899000920384096693197589664950761438953591181792213034243114119683240322205607976981164727571277286543566174677426842468558247367339062459555967209712867696084658982204265864808241217755447264550290211310147105300809614145404069799722625909247121850135162209871311191293159177001156027857312254084857596562365066960863934986247506568707624805905156149677180849685116063075332473016340169771017047083921229421373067855647785186351490666075346698803270092676373785032542631095909357977378586682486133079298004124311739332996334510509746104036337504933295970674224233788781004843941856976950489969874691752546661396460897092123707582207758542005152254634568978388174389842610191827545866642260288038625931868504684300256912168335477349742239585712215241186127745611735286448733383138543049978056116420270005487635260417386229416708377035018565629768341371969734942996469242953504779117443821071379296767933465319069947440609509734723790393276232618743788079801352325036306468788469165007655951042995546296671709957643740294004162666982025068841821441094634731769968994027930808998689305981259719898509842328893228355688780634995087255086414413295450178461681918914641548597046851773219150281363725148575612128053273987788326474792862310752376180360861723120491183601374437938837993771411088452989795750052616383425599491034101812198401106349336442443690975119660654371571039591969767348248070775725663142633161646620995905420517184031177192486574497012955796770051617007536428737312536717146753627831484293094330279958866625031800604658901101501355173002398237008966331401151702575539796101234470950264416080519254457384609614070901286018870878399725605560118733825225976324957930907356422856726670442838251779041764049605345552616727154618824397980803382832231802339670514050464327196843552884695209483756082374734372933206918548632446336781332106022506567329979432912528908021271782683363822039610790997003660287516172913334637433571487232927497643611951056904908050004907032173989403951124383731268325573010945954596151689901092009433545455101287903641589611471686752279740429150326672649511625249830173789262881390182103821808882734216409456525546555866702503908948511443848205221671447939303452956891662790469924403385515273299094371728754073453989709019010892346648660706847082413871012717155244988191898368786359927429280244881671524542332612365333376029209780172003561225900796248259799953527861650042254081138774211056402843790905137583852016978005207249404927705415736318881247070198715999309751930054166611158296902701671863308805547079183610866002987279773883780542064509554061844663013633173639673678659684015274440323551733668375912463586269372281746210528034072750652942696066785355471642220002334316477652082689037391376061380025863836837094611725423883567151496461188203848136505465556332922784559374589366318644940126075074773513364246749025295293668057077085593028933728263972693497688395547296628763810886084120996849987393209032273714317878946713596708033298292440573216328739735423624359010852635950212255739327986924996277361021235304458275889434627166566687004980513666302579273596384777945362115104736113231990951719026452413590331781123561936112525237673352098242299887211354283996518807166632324434139373073353121272438374303438397558397932700430916194966799916938276306697534474975110240413086988469429986742186729811585911354584445595633599287843993370747787713579805948900222226017013713711657671961515886510771896449439107648840032525995919386529165798635379627808673922848901265169897029529560542063283290134760844529157205261351539750318053308414608872807104316880179560723322474347601553828314223992502663665589505114754850052478897911327779386210895966053989702128657621731126522304781000671186357951596591746145087638035727997971147684475993274436924347095644075388575553443220650846391867902356291995569260805456272524411113934018895253553510924261969186580287673472194517378745038044188581316144635785073391209058362592162278157330914053778060574763520669497417845503451544116423539024075465026969537734259256619867760996923132163385399217728249242928215424200173587885810272230317540859704446527972192606363675935870888696562047156826650972097840589733685393088611057849832637609071483976931670135524894648649048046482213510834932458364305078609374618740921811361156017915599042698846746105490162473487972867026254262478763602448818462230145983554456918859156717303776792245166658528022637347504125195844751216730804916048598444567810465312712029562112353805265329207346861296332263933388158850821080439169062121874553564268102475722312687059966772162470761464256011104954880925622526314750086921493732433430641343342990376510551037995481233569128104513423838190055454555271776218225942664653708609807213852862383316734925118022694848869170386629349061451078922666563609032542795271739638503346680536280645842051900747844281417003653789394401870305522966288110164092436944046569239922271614759150046799540002158083513296636349890010995340176903717290313096148180461270479485682478212682845537541223162739983485259613139746007776002849498303772129229989394138411818704963303511988352828742386954902405688446416169709482671104048707175539789622496961641149937264824921202408795318476968298047514056647699919578615074413462051102376948198687155652099967001294437822393530040025983278984095330604183958188871892823166288888493476068884087104304954363726426207326777106414676779651750741757488052649629959474602078525783290584948750060305054171280163570715664265773829087897580836491309413141315598399156425733275195050511116578511674057420244429926448010445113929159683804737580548623682738776814489197037248360060307974693209944869107654044440891191589157736034035352949493738849650408998555548324427742157910799852048269140017618456607962694106536620645276961405233370853089105154361274659378414330222870418840749263746349090702197631107239279697221024326502844862111760111388808822533994798738765169871722309852796416814499031674323834236706320547550674913620380757074018021943743527612102160551165659849372537492970839435869677060633929453025239336152087180477962084687303126578227485523844669343058447702959035595259277222933630184140907672555915324787717651307563300688170038069363827127754075729646708362530407846301991793294359262308412595525145232004793568306963660517900111504460470737982461846879152874393818737766059844570353939645814371888085922439189811919790357574236372190743241912636335341567864274307641453238462246451313299482702775232938222790845670777246517136455439799697071998541290849618878166078301889927554205034007238193512569669490152059736226688102672284889708671414754445908768380348746171697060929505227985194381609032628481421597347797701574264763618220492849346130564743708845019690289778552158659389146207638487647084011784242418822862999968417117644683718612332346705549481735212135286659234815589306848565145373182026026889270387436448797430976475230553663006373510078208097347112970674376881390519633923393799222506988379110502558532353234777479230814547576782685557615714730777450844999627220100946343852518022155110208799048704364892714928642711864282466768627669978853253294901772094884820270156738794947320692577742096442548573372179315702389879132284507860672444605685161022789980625875020599493952267017968934476481007907429092578295380512812594328396209698706522230725670847146668164620713750845801519321999109824184417222371198304612171531117334451501125074603686845686529360939984519493570124050953729774778315722992373941654898198073452605005116456358053659732843442064417010949799771308680690033146078861937195226112101335167753295005391786655611661519190883509293538045549506717720424057780055131174066037981822227822415324647868701622504509872705624284243614022748762363028804997660322371896867640453598839898244987230007453688048640982055586884354841397563845264722047906309623359478034531883673004041626372052738708888809468917214041779238967305113739670826881778444850439159871618356961206820374077141038308037719031233471026487194983498714722304904034744395512333713151570370116755418434781301691948568302405921522204688022006625824679875749235953200931483718891942205388274144562413133477015852484338077618142090332536270418867245836751841371033477158480260771065640491801538817338576095422500323001424216073111371751035676263364291394262531733571323826433906478841681909553284521376198721961243454626097163240937862712199830824614595202415693810302174252048322742979423297441874702705856075796454045727336106017946292033028326397225890187993000223048669141807823533633431883397947081559218089950919961992362422528249303103319847702272000865191557395813200492956498391258084426964088456319504603751661712586392285069885639122338997733974329875795754214779539412656974498828048544425961624866075698345273641674571821216638890441175128041265297748464545572221002077406726125341009837976138275095422190886157822422114512093950338466754126285408120784335609757603237397547904634074315094137722037721164438548306314283748868270818090671945387131074387284612631597233765217952931532127930913632227909190340129609030044667330200545282127215267632452609967459110877462582157791550301018432827458374519177397952324201920891033819707789654566034862044848503947450047916457103525302247357693619283584296061205535301904300311929313021281977981614043024457491510504715922613668104383823756383832619255472979228090036725223691597260938987476068381476513043787314908934066177667545765369884469854827463370414978983998588009498047866139057261449262316013109175917385067883915078740724464863977355712243663263137115059207373072927684417501240887395196840076830421390756206338148343544094076093612424425531219166577138847737012604112021604936464813265363582247480558956619630575894066143224077030370667797804737051431708905399866674689251782687053704161378024504099465941153737632492364678113106928089684512622468421023647552487197721751768353313410263203714273266429577435800738718868389315513574389697647899766741334967502939254563399627549579869546274271005659192592152925587952962191637700113539125427307198405032485885684903845870678370978400873008475396694944561201368988945014057327359535366731593897294786186452901281134724680811995015483419958722540856378782874770902466565333123377257422503557176117294593553441392126548923994138045119596169433334062366397517423705948658626213339156787521732299360918192534356998665222770437535860239105624764845748681583372699068179909258939838843498788290345410083632717955637395839811028942670335023820628985281311974829890299877196654643831377280810852382630672463935557476587658463602397898041919757403921943988873980625820948104667680487001338150291099372250222250914354559574068347898292674626046174812351327611971518944948587611795771999847626601268893429450612124930941330467164138960612923637835727568697236553707716193455675189042843882385343711108614849387440423039829894205960858915848186681697769395833375069329653932824444266858049082145328125753903536723255894182435233681661731238446503173621834863424646922007400626739585963427933924228266100992955647568572373322526776245498905008996544462639207868588852032416958939786468340627504321159081962688164754650482888049745115204643304098756151199111099986381602665377777623152750787679284793511460549693068624405665562448056245943635251809197212756795265157833893654195077196543240912061162553483423091486102859675430331286958852267688397698789883884118287915204220703196899433771229307121173036546320823419343747086345681188902264543589729979714578052051107407235638632919079207526972866911310862911559410292052728865326449047810361096210979339276556192820563209548975345914273293600743392826599249607317023788783502610829635540553687782935070054480699713810400029264246901776218837656162199150515959137016139182233092988720427183975011224558362482108371894440101990139928333130759282874770700474559926765918497108387432412383670767058359386965709816613348213528063853038713546662390937919595850836011277526701245656846121636961913435184401455785918292303302512978340269026921063574847600630081058015163223782296457935033006256187005789017377145126153572025048622904740097529785768669380105096948078034477172915902733741871952613192761619812932628178611975814032946857901686285312477038422977972499932642249286788876459189351641551535390990400234306927710133754941079014415817400004103994682120334415464592677196320382979835583638978885110887964035026324024342091738781053286878585003445871797528215280390552301959632468344268368423041984976437480201599968106866950101446367092859766153139099731801567527384151355223750789541027309928959098275497369920752694219446739413755678861181711307124265826653274999909353442542379845748093849994572423602387902683541870952100708733875918387270330518498835409662183615556339786612664915142262005238632542243878957436373215417830797871273038705593565216511602678271940773133713712682380696715339661784205078844286435517365990152311625971301010610401692896918039152763529405052686646733873307807824721188351648147506930711845032665269822058599837712202687830296089103279598860952053613509682723046232378991754683947388130470145939822059807443119347012849111329075802937842918498249768166249943758298119520450422246103060073747974304043369895202530837129491041627969913038390032809711515732729182654960474070817861602360562497521072103184711912641400052372134042449784007014678643973380261524152607807825981507150334061184702927228403443924145204465407250510238125605201683657242314485472848475028803328358605160973826116970255036907872753255980831142558698416728810731825682113550259261667861125641689513421711305575945535213845938797088170694338884037557633146930232329243468892381463537212298686171935009820136919529317347285559776451769821815623005631185951288426042499035475492358394995869421616231286018873595071681877314670075931998399834831801072371646893946031394686555905000627214323243079393842517607792517132739926935122439711687168036174921529883128532377281095623176986539936455539722017371290755783475004131909035442394004200192909302867035626485693936819627131771467737848087740840326284714990255419306804562282727950880248473141899635263579943880061198131559484299371970000877448878411736872854909866709934018424931213568378102263122399759959348756393873737614050107824901828345525619668840815346572340092969900309108858748316475731194667070065500490026050134447200590718568320793527212026191632620338639437571981807155345466721642580100316761836342889525231329612884254965759627806030565204082404816443147362503614465185957684038402532291066382258859854672940354983319152311492251948949471274742835056880645231471487547972364003014960899572404959414607072303921715426174522896691552755774357109269478492290246137205436180326613439569707552468014406765660990088967776258773833553236388041312801891988238891575514907683380890063949575290034271669709618402788271741964496188171723039029790977884140516637342855075148043387942059384882623622766544375682701695587858445120035905126066309094336927538215303375908264071980115226602114473596121621149254036912188143353921727270877507784137559628173696639522198191669272625591881337296041587257379464231627461233381832437187643652629063109112276507479673906531702514056004969515115947042553798284933030761581795785172282207915772811454244039687894744061555627248893737739524609845262481455775063195813645457359607416289408825723210001897260270975685962710959456630757326338419996432127198493805600843519539174777604559072238344768935260016238886070441737103167822212675158353876177131023693605327823192995923740567720825486711391265987751296572732053066850813131995810392913532956344362389455434013317207231408649085630782850823747304257394900805443670069615678179288295715284412386181610865436959418735026454023099455533778241682194631523574404808544505695483787407693284200402781463434880463364722673264142917231603260711389259908735261830238559241622742521344916752527296263301792889977324789661161272375029231576857413745363846010051155879660485845909428356741473921363762601051167327008260695490512890780404907612932464382338961418551892834767914252370939021946519130710373952893636318431376254937406044553785812662083784648082769013048070196074236996607370151787527903266047847380234598635152805835754195864759687121406310290711361066209046016686724034635276589834507998275454672583123608641854638648944350004473758952623258942468111084961097815303381730251649238954574234842470687870360349193166419928761576048832682287793677949897173755609649225639049229584530915169357550528808808897589505860007904987770066548044974507732828496141709755060333630297251790603300850474093633692700981903542291326357408104650460391209477745925696057208044223247068709274995872545858552638265920068464043482221096020556492623704770184961132627802572432174694011800050048522142567105073544419028255562824619852941233898105131605014562754342184604075962440285789327665200886678741231186302540051397899260004702041252104387655664493352520676531543163593111424364410877908194798514613955596833988290902778925927913170117374289613716246162419198942935300437562531400411392454720669922453647244902460152589940413955369639832779707840588187950591707489574338380211383739496602851137484176002116053101031830751551644574696204985149037727123390011883005096093864333764614421675449282634652280090470217727245178547105798603394888725368409100578539955265486015373083594361794684559758592338923238695589919972979530435927968454997688161645148043585278652715130728770253912094661586633227044954358289604978046661530528706363793344242139122056434632547892554448915150077808405100537551507067924120542393481100892009630188051116717680912033252839743512646107910607810148673359504208528609952934144797245662582276610584777640255345990201085028089260818167182363906749214445268166142310477604791735327931105715018240252976172327383136433458581115799388801821327264316679338896917540060332180299868788317277369060402725523561799881170532079807000025984542844533054028969472921913920035170104375425867904695716006091312644645701509760657539445322932803886803651932374218901426478497648284626148690865395874181839561465663502886798267713593449165807873653067430083607534857949913101012691938572285457969468637609084290204749783668777477359320806165947089592994386450167454173526774869878396660795824318464461901361595565869203740114281486115050564777765791398053652146876124056043872505873676719320113897956672390336050260217083785732082451160946972312204139823591963733562197053529468235007145429274659138831215778343673963657143981553795307150018985849586997235655877483532327915213847500038739094235600260878617910336451853551627217422227985601113882782797995403869972206100910442992900514842396788412152784091302525702076867981396653012341859053372111276047708498704412167074920950984189150407153288099807249668017777975043840567650256302597576501323970069384419300547519654617925356057539277779802798467812132149554529074712519662709516306518027816550067479901157443546967860954188470173207716212563073652251142363115253468656181650578863289618348507653326599402137352361483043565639095199645141238985782079394266248805665133605253288838951177468208160923036909859289979648118668712108376754050615893800853008408844714464630339061140529495426573922435594161201967653236617318646051902401991745848937286453638998313051107688979763728789963364269415006298391621920520623806632384791947490846833073503201089557318852412843059692318105997149534362364215677458992285580852644101556982489902396687589433674242672384428496206390718299225374177703394802950941266857015261149995904506425474973741916469101975923413260505073958877516972097265499941513135104273878343496853954541081390871376319543075294065058362125470212315884841108016682657718514728621654043408871403331274575219404666415058656283378340073970296323453586597178295759491113505208135991706488452823534564345924499766236261944175631668939689395509790581517616271330512220522403157747474672460347106399996447177226179678563555811697838873105663813957466780759261612034876492416164774122244737276472549764437467205200989223031837358105806630172899623161617790361037846793534678307856961459449148070276781137967195641790260273603690264280146134033510656515196403505702334915173835153015875344626291495409668588451045303926895118625856047709415408456707848896364152982005311435442223375185073672797317410109036560611669996083559186329062255072255207664458062109953681673651189063902269921967357511594636649553926429556511365572567105547518872519484245338676569503215677605000483422446197753338712661374071512253614876374585098937860736707371966650396394486853410414697130782449631451620815511092681298322919944506577026795280000714738720399913220263389332277342323216567602132367695477601603912694306649550112431275820413212066097452518521444837752465160475776713311996222849690151645206253501478327028607338701822312882478691369044084473298372831493706421847394947977803832908973154691711984386714679157484169589122422894083149194741575330159710781308572846554080679982198154451230134955100199416617187282067746546949664296540469925306912777291263305470538412815088967854656879542972386793135417331227651009404710668480191486523807808786160710792964225070356689289862708980198567667735591494975160452715045732797415105808818256476618769113638147987255930044796083481573381201239149724965594701312292244413771354050915409788099786018380782269184785212414106857214769850739286283859044492142797885553354713511493808747901955672891629725667426143775987068353326254515027666104692929604928208813491023559085833479548155444725444736943022504114889913922215582177365514223745205253992320584669415141101810234572596530849006077835021295986837542857792259241264033986619325974863037249999142068602059944427662122038624937764512044032794314899851533216066715104112635539102988892034741863408728235236112134886662027254647003885015991573484683553163578608669582576518112526423548669901034168371400735359913290674073959094881995568773567854358935527738502979918687181570357236239937139748591025080410576592912652698171049420900623887043184530904176296939667546116067256582140177101658906618627575526323158691951416372034286069062137315077448223794931309141999753995212296796627486316350233877883353408459592445290929397668095255771442420284137919418475931239718178284801549927433656519050727162350105485677921161766212464226454384738108640969255330944215643382861183966520893911060218128304934556468285445524737212964783163420864303049294670033871487674776733630374133078704466850001482499350754967993308087002978236966651339784145185109421610448735031226656078030093824691852987655031056360963481387600462395076901006063180832110731869156208475600791738313508527116100066180920866454192522074286608622963314855715044131671067241904740580791706322550261000938558345735290124251732920517640360571388160760802439358784274153194989541858894567485131428626949449947526328202012663433216797253404569714449496717243183777444910988577580668306127033463073551517882885279400325330648433299570930686642637804312092267824326963545354825920584666374419945108424298861461427517092144662877966419586523603748137745281437520214302714437066800357943232817348612786692894460601000377592782824198255555633111333916574482614037281824726425691430718655025196393228810586326791809647257201733166892392915349382700283319839679240451673126981228272799470681110930833845043234467218478244038199146513535925899900349723150751354743825510524093945312788254420876211078574828854560802224423147488601314822378934271137735132642584375795891162338438259481633013883078464892109015066313470405553810935905913173423713487085573508882837332449657622443547078788579728543564420087907945273091225136088147692027715916668985004411912268069363538430909927377349318550203137775440005094289250289700400782098468694005335446093769315921056144676483671738277917874721971709451383820588596097074015609118329988968869583404771159673265846685472664195088617583063626698636141010978368097391156565042546091070842450421070890123190090103048798288989142703694188279349678738233868808875943367342089020012564431842892653123208935384680883473708671282641017904187848886316973145372991349602021744340301839092955629024858983797662713249852662866647930083770792306904206824602463441666987449542379503435723453582836867492721269084806232903465180135824951909380405363192680928967359661008861498093042657214684065699700199952465353308451160825064553409110406607600623544892423070713197292722807000277497678197323053395629372239631295960267443315142210909570552169148561126324826698300759721140541475821297671491399382944717068529173993931792125384362431549568068075693163635882100637806433689515524666236284711632205744168965268555798971828252038761380698563205617528848677600703872026032973973643133330352329366146251886515049296785440808056898497457895349918189803136443215480367641238298053115025604634212927181663556488968003969495758190686322879188742260666085724004638174388353483641608507182518018744703626204241481859428501910884220068622557535367032206452808825100727778680016895631107311011702487442071209415418267076700313993362177630650134765169687620338846785748425243805561409017547173646212448026325460909049188391833713916460730735437423761908313613316182058156639963922036532292284663666548996027965883027802179196386496770169463025096121864190261038142485699130509937137072000503651540635753191888707322974261285161092944170531574805305854652340004569861157033384469969483545884788127014461408836432232205153955730868106726224916094731852049737683175162645002069213027638457803943792144578504426488797803641327798543605538579217040397902568465332263905866986407427741165596420817646945048848136241759389694637328006913793931374273954801099723057850417559696240844362415188837317323235066471130324629168386111494361579540888032008399980416867327087413316302524709020452591855334997486070521767944585219254338561092284823777639975414957559964979682606454407011378427089658719125060963240511010064354220160753955914966022334958691647257963317199573861921680234136920120848542941307085912449272053903576049185498930483918268559181628215326241776875622127015859213897239450059942030538332524745723022603534862962739790790140718985570942270810440889536810177365407320648323591863626152371835708828819954709921218602760926293173946879088521962162840647140112381549349972124207277492764072832667866827902344763482429262714030100716812448991595572611372439492931692423436967447506505869627073557665349066463317922707825851608381589598200710178897886350342459881343122292456274460550385476465749450033088206936632328266816058276922079467697571063286120267037056282751946305135526658377365667873888355691094921894753576729355602967026984897699935663536562726134326312756214254579790572663333128911087477451595908033217960857186424566405516975786788831314455830308667289282478562185417350606822787872516014144674064006616743909218437241168256248076880145210026317578298677617051819056508476309927795160359682647909057926423059714880816628925657427031209300936126650636548627244725592748601712057144517122541417143250352304623682422052104811687558681910731030822713801538278861367497572139798323732569466683754895459987547461914956379403733290036228559053266081561632626243222418948419693422215037985991204399209941666384619663007866115527712027481159759895377781141722578458969396109785873222354106986082394577077579670421812624237658399614341449279999045619523601941659510009585656441200642193866361986931374501143202546548171836839333176619994741729349860686036643881887537075365234813691752302907607561712427104287520632943500121293271905974108708216145381173841095131255508483016191756005898319933498210254128381131418757259715366250777572819815441765629371511939751150684035529163757401831871998955816394395996935222711434854011727787668633569984415347974784414169350554245285189865019775116897726435316245645293932978264232456535891375556839906140526420546311204967198268697862694977407089545505532210450539474378863222556131460852830805240092718524409548451704478968819292197500391050721097189014549549606048747042009401128603503289594160448736625649130816675768530192657963450512039251452954880680586880072741239623026110155298652451547027014769153060614749416507375354627144382964090783701823223080987817254900900174286665732716540827019568743943748223877960573369417713376463189038484140861257967037408032814675150711832285175139034174710769292654720069244887878424584781821622254904199251620225055027732383910415618704368859959682240373079023244282602150114269416105280388847940981983505030030141565328001130414292300215224198259649267461584965794461571813318281278894798456370543505947440628831041764532519065682152415730372508611807426779912322285886190125585697016402017628171557667628107886837023497640941819138260035321864120309967120666096236436155441799186640328272118841419701694600048223710080144115726969060469089677805157496476097932441997634039540067446126305404812915980671547379882796770623838398579034536430888264514481863458278893891767093410565744986159273809858429574040561676028474580686784440361458898437819009180377821493310871913742634940012367014409257240400730647264750086337533541508702548691346468551768408420158064738623714105468115468772946435096899178691039745876378466130048958469329031925368978866166071232092572615311503562598594831382358977848520871999639135472875982443066746302062327036842112776960761904919608945927764508187095838794624322603635172791402908540957503933017519681365950776989133640573700208146416018092255020441286230583830803308378356670192428807660347373944854185711233907490719523100635205484076928912003166855963933028840163682453993263989144364322388161725115137932902502001627322794368461110766549239438081794161534734473937824274676550061696657764754632414609331062245990981170962525411547124714774323020895382465397886642255606645614865151821729571118744695515361015498880765997121021938399345289852305148541074158064872899557353929469407200231557746702597729517813032980341007148270927522253510058000706844883312830336562571356909592535787213956647118170609184759968341634952473092914445711912842184473462335021618211394126697125035158784887910856608099899037849347991322952427807458019575046874154355721314440594751763896107246457701939346169426748211508450057042360537309680947328255339753538119139488578694425950328400951417368493450910645194518298139418353780356378976659582796145958701973999645729708052363292193717258949543802101975943094376056481085909655007581008096918802057629995176739770525590967740484645349860516319793335935219271072721627783831228423043024709402259334455427461507757247592781659114666667385335621435402203868724332831104862249669019582658168965504427000246853047867521062470113017411558833418354201601541853581030108863276647636688801127710051041318126058349996155493541213474509091473643989713590894277493444882070755254212925350638989499726205049593506086759477773027750091152784706441214337319623674680774633671028098325689032267410487640607081232699873094793629781115046416332137495466942231573056000837970078178401494040265181494620489969727087948961101073352943549860954757276232850184015409069346308921185972870397402475007071592241246552409730085228158761349671311244908632491426078258751412985246294654677161753993646874651707339993979347162706364017101630417708330493264862248084591280844261068358329476673966933178052931799135065197730196433034387453374368730445478843080786151482833722298760282874403691996776625005332093430879571688101642309308752545884160049575980529907988415100235781247051239112492332980744738554232446792928727484890084931055437946361312832933238444069353876043085660469449047075931879049198149747993414382952341487201644316576731556483514871107276433415804978908100808280468215331150460428155320088666033464339094169086100243238003156073563755942489925222592954044859780965912459235227399639669108483645334112155649437058050122978528427471913828184207183708919948349202961843019820017739976237514658755711132976186959339703002763989227052532981757704276393750483555980279292463343617416730536366683050768371556867834683137433266468305623784327947657937088881554380574358000622455153689565208861218835071127573900907116070759553816013864018916784463556046085813076901094008475776856074822180921271464267419165697339340694836516822761583146598698170652976492484953245419783111552558917741421916875233393702973607574210141701842504507389480467152505233468397154105966181179120240431908247773880599833691220161064679050932267270687628745865722161821933951564616981863384857123354176990189240835788650372425865467127188255109253968647388917267416463223540024327368749103149916274169343114479073960647225372624062566932290117078018988772820831400329618712798243558390019319260607143058910414153317038484524054942951500775883403102512556120629698404096712081309561063405542970384878555809659259805165361338273967375456091307361519236632487980731918813345960207196388885791468068989240961721874228776091481487437397147864204725648274365674125085990234862723817106599382795889468015899810929465822065624624167279846993757309601508709699197885654807560034721802304409726764355283239732927199514303067264104322380535571594749204710365523451807214169458535667893608239620848836126320987440923973674828860979393026192323908172941844983001832344548059648691412653731159225857745462394391589026032689678536055962234224206724545244284834154246674692409439379730991859156846326803010797496883532112337605411159192150033159723466948694825073476554993932815682672986070499241389225340835069932413718139248823081249563960400419381050270203596424794092441743166062855748711049609389037045145686471708995534786005680215147273754706484063572385074227625451023903745306245664049873994362078195094198126736950195958841961806763201477891527874777090337848514884367449394682829131852492600876517837832832293599615586914577638458033839453936680450534857008129159844344696043322003099882117413302964858229150305625148376800449182001028111213267246437248560977381412561407852821944895926299317479700553991390570002800741284785891561512554099680640593258676298624319006734671732638156928038199547339308453752107688674629400428506919070620368022361305158997701797307532242473955732413606886593565949300458957060056798361263583722579908712699187219891662044871726536474748463819173302088114527827016001271583531367062042818758608392827468365937289044595908346140075946896470856936724697837501776206715299579518371384371671168895619478406000550511513999280018370691607861339171858734634239373967562794142902532546374624440756041612487913253984410397812684333857470789745405000830317896676906137113678446519201806924247822146223385530131925003514368593111844247926916419705078468599931091741752198364726033370766293193960126161984804709848083827186077793549422753532246706502834272178187769499141428007025793295466564138057898508080649020217101788351032862927654189600527457815341412653252918690925067846854796959234576182999839042883127461607901331297940553859274584660474019779097558311665896821316871305945781073689800032584259009131276663214265452116057062292947107616818999550467879608284736898793702970760809091610752095013424324969258248374935482101153397883715320993687749062510096606742098928621518902467226106927999150767451611803368985658430654463551304625088073746501844904710477839032590763503523132228756881364603712748538612862710201371086844825108619867162642829834369413033185970750711146808871640480911090471558760199577547684090727181079596111112648462415616853693618786619632147741662108174052132194139286116678100392902305303103804003009844481865464752936336135897610286100541688469261998319709057113288684676028131078751766722225295188630566741936926130694612023395099738830946786297537229790085153705731446789052714454058851774949953810404215861709360861683836361564958460509192406036071492399304809195065734392193742356415393445915857706970531649136708050043733082407959721676586376138170440453533217015593600565395899789663714097769461539711318413679519502801918801541793946960020536486289592383763802497419893894556869063236096027006601963273974009908983418319607467326547517203422851920869797679391548368905542659368139368428412763165001033311830542479147434861355571473091058899933115442506003032130446478277462591317674317698433718698223643927695950227404254108919684930183464087340368184121881433842813021508306691215566780156820420211267236127289643944250066625309205923345659126390868411620827178485622618019190899122403383290271216427912152468254660200881645775010420987216965167195349991256006892911289032662798856186772035595656075819290253994573763213042257714068805521165769889853759295635766008377470752907580087473843223368917934061068104107562312211146690991397710798027133665010026584254469285660003907988580141455766891759389648208050266884131528550802284572915480073016080460806678711434760254682052976905706160425793023803239901623314331792598418385713367870656422935539548080711834472391921757382677688634637459436982669149794575309785161159048429783463682899767643146476551696151582277950210680432494502256808500990424143683819522797712990195867710097968298602236932172340447059653302642922966469854173960125379156541377535248455509835568048246667412809958897933316327488298621538228824248798410547565762312665928936122888237741063427470612364819642052270782471621561360824747318468337257111916042806419717895406563367935887930914313414369433522747091173619572254314886964524259258410412524659218779912514749552281957007453484869833993110229664319146123728924045268734237409757753273551331338810977050926625000789592128368584880663736920185328285536959886936059954194801816079724451889513259431377461798652233958680788242287354481543936635345807084754276214449605026249822011934801968707972002950049678156567715446283768630610228810635374234877951095204715984375207480207812179900476805788809019053154883537701123687225760291708455442473572817867690605127892623620146688082666930419982571152911355442687208624972102259114730276452800826293139125206462381353314180081466925001894298541642884081630834907095681794702944656454933534490444066636268344891426455265808447434345572991448433139056455008691838740161354607207031943585636423219810272158915759150035287519118160793422708820874961006885810671096761055814678312071095401955905890301499479515065001990813837213433354048293711354714448845012054586725220431944193524917180514353636448672418099136535751687493627223119255229566871215316123090931265103857357363116378820346058081768120052829754932228764405681048118688089754913773947490222917274029447961313543706258280782459080373475319664141339822048122289741703451303120381938071335192190029035991383137043044773115925828505278036684513397079935690181059948156024743870481643313635338397572184077262908354215266466510769987970344656505795994708219816487612944949078585302229210359004454834830465465535826655594926500915613477372761173980567958972913720206887033150743726891573930486625436131883882402472288018531669181469152476378696888060580095950845660850259615911292026650863910751249294642357013812572737609177080231154441410006962941763017948118168271046710720288190856290537670667869146655384877044053094679921835884695173045312215674518580999089350374218401291919520477197973178306655690295745107556100827980006268809017327748806624171679919570629465057641332090226749642450227886504747585035396767295745598727767833579168082508199224314475716352308412191503279357390901730289906854082650319487507592085496963274496747815916098473996023845922311594090819532498182688510506150072231816343244201940669260484893774189747690074217982078557439450819585782484404883555010063883730833499976238441667157306401462402272701528567395002428188737386092922103307844994177035018292168046381869772831058515607664560163864106226859347744053884904247513439738142064121507707509417012078321822047641021370504658996605026884542092182423176782144260316275406910967325481562070783509976100392578315736526743656621891258758995024632467816085413653336930618453877558765525486685421813500459692087549692380539968809660947474261525026335459621729207684176005722355192998010454797662991105490638254034153904456678785688038940993871121961650783902236792259432842029049473536814793579246268488679622869191131725756215840225075621832182253370720665725726166566745923379298632040794869699463619812706130655866813097500192687924194211659661753263035318874878595515698215154475109885674790469733839665354692366977155340717410344128953296312680909778266351315812364505587783087291491654122020561802891292325289672351253707676980647983508396089345433749011241867659506891925779295055883622984195578653459940444200719780523229166199317912597874268105118014193948372200080704273073108637975206735272241898985387822103186812745595429187933759176256690474160979951412381448861609163988482000533632859494948025832516422390521820290972579656725966680145815493711719964919460387751600569003515579297830763134685449706713618695148997475200481499686529735758568866888157579199410896549253108637307150086627459593850989907907362142125078036872202857028497505797224085165064704821332087378472814835065832390370692599640356659289492323585391390219985815435868125207769188205155506372782822926092220927061442484742871345881745588236084747855528159032522001146209327573108157485244424613665538909859341031099376658724162762699466147569074865980136675012350925074416384298316742622857272307802856210986535492788283806800420114512133111641084303966944917849208711890948196954498356878350958236029599314311639007395381393135148795113129517052974765442667762580367661031783870722666453586567312935935329166622390019931792632478066519350669358688007944091180227299515523853907861856827619650511653003797983434734854103998014105466395108306545892681232940382867767470702466797934101132483857149375477845268572747734537302740040581320075200321842485124196643934624633319810079837342782237721112939451752953953151264372262753273963326377843949129910426295843393528933060758736396465767062134832681333973726389750319149214711968250130371571157740200251810061822662391084708078870838518958998246423174913574304878852415150365672412746583372266966426586616727618694060643702048248502509516818714348435133505015695593910827477452585293601807079877278287562807413725624888797379781585970001963693691863262893509008472305412941789937761854916564918927687164811687190041503260429941598214959962674041614979255658216804222052901926103425378754885667204572390109864715844156760864446858203465574614571475551009662361353464561099406064363859412727728841086712758756401714574492262028490596236065249817020337689895426971165936318348921001082497802815416178838806347202122374903842040551492267775671805371272806621543242960422168468065517432506014381974136165934174226263475618455534068339930459391181440825764852724472196744645957094156857865676294156188980465938288913844834021357027362803391036295420195573837869619168151455704988771887337367407816356974922478433095139372990141153838899807203892744722773490723690015132142526582513995135697227510851484976529010929447144960677357395467116693306869565142765489014503295812138336125374652641715566717100149899498385098732456169872407245787809588407032812661035098390783418038385461016893898443220917611090073507128791349655796280279005149740088605509139296032129277392503136947769907674248301967665910583353005915801976480460160833556783696759283821323208013206959250448934299216989348222300308200489994154473901688245850979622393592641058262760386362248780721746260748537381607946261326948358536761884125948605727252343292575327905328676312953359524928119721624636533487248041972978925787733757636292779703278717994583193120012775427235680093168815245215000459020625552514911282273799205948077505143663411467085540347553977535307342104694002987342953557025072327399025917061085599336905115344839525577195459021446188041913360679518596402714410550095110547190615511194945896590777813949394527035845425000729403074383557329073101308765220899773505660642014673372221819024337009521993406715910799004147684972479450416248298913983694527246816448405335722306856490544183452372150304408442206726474636937715245535358267676864574418191806742250597800859804483544350895243052247426521127586311445689491763635248020065837719349658381934509013185040693067466299516276611968667731176492796948277667763378318053307145917285902260424043909946625738277563833259740812037460943793903866345888370602343955342405814812454899626770807525779416688052946811531268882149442156629444943382552502030458585014458649561776609400500351821649746263800695386158922319324117364361337256219198110234813623531360859094284207656052238244177797009322966340362111748846326926466265613309106771718815519010817218888924732303373741585926405256848231083892915910972376140113966802416357546192602027963111300093523753717752981287695178480592470374128890489061949285728400841816835754770631602776813397856171740448914744382829507649526896165612868104154263485940259669763963162261274489345258951865011308086504750594159707661021321187826632551914765523094299040351739671097655177809014380895065071844181189912643373302555835591322231991864766115298600151871950033120604784976623015561570282941014411499230775382246050232636257539435694065399104458594570546071858230846980136128585177928784650798472398068365103753715963107157767059225290694650660879836869589522319893602617122752239415038986539043649569509821026282699861006371202907241215829248747952413861557575506179249394002428335863188429008181430468380682811251138411967263858197791504495692088918687739335898780089021570728918456163580920447861336620655299974760343832974508120960173331231364471845717774799329660055696493162264867485323466859669059457193543040213042315578262121863657429163902867285798531370936575800478371111315176498117887969026296967239372587508827054918091024141507228666934560442550981741933597783906439568200067035672834458739963267349991428247102199689735932132939462833318573033124868864867173112123049729267285345805211541960169820485482820742598604351201276930738742097861511768092386266896326223457907624860106118682817904525997232901171237676885848598654752552300337816532123382619499710496962030908094771650680424726756931757304145832950626101138940439052161004884417758007010577767222846528495317729613051056673454361963761115518792859333887640242816401959470489168711677969652175403446752710573264253426973371820494757196428058460949560256385351073663182767963530296641735495826138877955201151894855653255625574187690109440741619547324350301746665550974636820821509758470050478236067156250499792090548887199623649870806515191583076879357392082245951588841346008695566548284625338990054160596335931686720435700723484190872477982954905497349150249839697840054607345536443084261292113453205798400373228288263706655073469979555496103322001539571498403836869896471290867756246358582417381232049090600412752814924488294462768414889092546372926507753070581925419336800773295179962689679231647775853131808933902561390453213017921676336300373878232845333930383791833169082414057066517911187010999278925511157323906452322420395223236492702937517935259295562554243566849912134981896851173958405117167017400799107282129521204524220836501362292162087372107470571966274834237798736162221014365543354306688279123350513196986961188965828427010554605139147351089930616929790701743542583746868864890281274110258714268281352016674352119164750138729952895033939328547437351991631687241634436367877784361044735311624591473332381559350546252880201834091057411821932490582656609729742163052201094181359856764937615136514260373039431491917401622533530339814738265111211116396878091862151898961512989148600539757044983289026240302026094710676279580105571367774809670549246370694636592144670609691278925724482734412364682790360424130752323141287205334309763513089448304082208118834470095258838436329320174936415000945381378546507684880016400647106366201531097855598131898353003733486265058846701567200972646790319777617254991609332370856806660851886196002071159244845773033011484492646848205461662006475198505735013840218144286494630744074748452028990936515625939228780511756429917408496675584602128600090714506265977508792831633004876295431768177379769868607186468623869835743829031724742693327677014294548096720896472450005182855575338704150891362081317279519820882547086722138268453861098947368219662744263796534323510217480472974730395638454315774374000220196088632315242132140076656048651343163273180074700465903911308725205101275354453111483699618140208363712794937193706820482238152396424971811479757587158419851329381826353496049211840038683748212026117411246725921670819142962605020689206510930056792296191220270940238562853881485051836011728553918135380109770828416560829455436041546763800150200208188320809504702150405688899327730219932569212477952065762318308813345590766139291192513975086469927611230196170859382634462054615785896235030902930140263223965121977615306548598164011863848334653665223127913927342718758122363695714633816645952517487668396356780722117659732675792567027401930893867929670687019502008703119152357572039519814596228999769159156580917977368856193853694560138734083109674347846598588053304569737303107372973688280949448440103177353401072351808930948405964543003921532215127217059386516101732720225759787358003950296852581470107959482074379888638517565800362542612118203833046567380136107048623303519623708533398259932835002847246757048164071559190492468740699617017015653208037380826432661152369162472376680116847632877405735935664509940364094714089471543085398743993171143969059835774114292662261444794459209970998745358183077296857857584974784341374083020915414482839300810532753172453866038880262700806139423133028381279404476086170662562736322754239077488817864698225269444950593763789366324795514736409672117682056733252078608104684347337826348813061565789852839687499339128232216498033176631622241969510956679594505080321084032623045037187511678689990758721961418405571282965930468760232202683040639391123259603820091326148834575632091696417762562387080431483223807545128793276682652547308127073706874558198609360867867308687099237296120747195810103926431845417383469316984144995197051002916080146738482914129943963777728941988360841877528557379713030506881347870811185807051947948970687048703548546733962216675179611563146918345011548429580925248435030703215646396066844504264510785193243361742096806396320399192964644736976519080649269895536790031127226749481074349799774781765957539082739753240905930810135214835241583295872680253261337242738767161578769718619601131779748066092204774005618119007116622802335375348781750356030820098566402772890000369870125741174222402265533953974321563750145781914799201484087918548890148923661363756381041311973280261021945299784513240142278690994888635637509674797504809935651805789803629820301383274572558315650930637061919344908704693504548205952186105715488897453647087500316936626579103601681897125971776033364558987857586078201896788284084122581219745299875662671619160848323831955831357007030428513600657166514507677285914656109667080604394847539060577372703434736746951649653068925881142285653204256828680041920619929371531488971494400171366816112501093973132369962207948529823937450254332066291133533545103636591039667537758456257508439899522767493973161575576161729801240023614843936465994232562587777317876656438946913795473476252464316861340055975249591072140786414081170278799880058957973630702193196088839713537982783983587846596972675627849932251305377510841576585861795396552952812870938299076889858699602780035254496769237627296817167135161199855266630921044393970218831195134881951271116490764342559089787948640161806582453082976896121739598930909446389567591700007611360462091204052942335930734726862498204539494161358039442020949848817527534781329104092083240599166938095550273410928168412078515330641710432128545074973007033987321459876301180396117815222622289127036956182004368372499131514284774701652948897021396318238270885578697692168017051340866323803227854576011719821524497675176268560803655435762770826310803093102495153307455053933723061456543334848028929138424391907797071879406946648380570316453105283519359403901942536608777717241622238143906408683723546775271960768463764487418239991366938852421314616368554314592980600258009341315684701685598735451547901387784701480486754006554952381981709997012812481945143949271441394685707321798755408073542653003401173272968961840942973012720020647047119685491032065795850249492730765968993049802069286368131709025486287451451442879828355322015866646057860817726872395207154485594444364324997130421967312744986582627308828836926316953469004955902366344241711235380772192627673853704130241767925337229982440201247993367912502790575906555317815583300462121724455281839636353141915615733884968821268465996017529013959159109103448922181485660861177756616550439577711062649006271061950742938790518223565158024201019746740690509967950107401443715330775642482096403478232645409046829737190435048754331166464421474405594907831076342816468093831763489617595944473465245217420997337516373547642757507659607889123041659905561048950333055424576774852806193873683458634595148110951712791810434945992270746474870072877272295928628687961110937872501372783853251537564866371657653397836285423143273361872789470996713544967883081264663720351778382413498310622304660350398466661359849212088654048561075017033581885031221687615366037923654046000989085965615350503273728482172062999689438595459596429524051969993704015735843340421390499277851842016555533890678742132135604455233343305828677620265430892398911080673174130498519682388324943135412038900132977083325778853065088260191257961677792227609831365617253851250750202201265965405005884543226776110057491220865604525591171577093528349622367487379488779725590846068525827607990663106644559764295267854701737301715259761847084994049261547370588111101713165483049970406391280388718524465355907835620109422108728696812776510445946339431802923774823254936606486391316769908233026781142474298689080095000218231765596247878889342409324057565573732830812489343375860371506244048579783112142758238483587763852189018296783380171681232418877444523660708538375164316945244524003021894871268908377454496826017715082209395991178230987367755006518291968058165168563243435224845089290083020654674290488148760544203276918251934541242673025773251596009513870114564938405850512076140587118377714719906461397145399983951356141694101193021536729122984101286025325018443759778701280994938269501567816479551520658405032563516117270050634350841468577765960074667360798738778163614656567723047621167285171660452593198501806333426698606723997479949624963881013154094501523300493512333811256129766105327766270911102564590979428801993207393882321902565025588429604185184964738145128768118577846220723910947019408841424975622794648848141560632330940532838549494814643533426200311229333406265388511535030921666929628985574280348723398038905224871943805057675150770089526217714524547138276312754172070558761604409538586897319953730618895678700947251411950390958681980478674183190517098593271717273225775755587467449649471462755458280923013497974027464433672980077622320428998434302621329853412025616943824324652701662168909753910324916910255895641114709231339222271843769880729672257180537393173012334476035298799987244569622974529309747726078116441704023993130132704116659438652971622066554541371682759280434708210284999187491811035818580080131153232966970555370246952063537987358785150406781513333949278218614650046988192099053262560058687078551156007498291537204497380688252088755792473776893433040232279175583676105477887104294947688582353741330319014594747042083882534689270589324216722479658813992680201823837796162067126014151590121478084885986047798978042325451902048163100444951238313973420396976801875210892877727922682134715319485490431161123231288866180179995390883785322372007562075313253155596060608339786059076454043350829123912008471307544902369178594646904397827280231689632947166244302739170577227024557127950674430800484898929851264604162543593715929152223724674509269334137020457908878469689107749859277068953878339471868284033151280320911449012728121144030741395231574510399117200396833766608707979554018607906458885890509375351940000609849379027509040851185188839563237583753279478185326650572747904484609560712801709163020223364886661488482500808458742187010329738668986252858711299951743610609615958010477475666403127382103917719087875026832928932966817910921411087758417913826319367933108642670235481065221607672930743466148809006832414725550358351218724754895526605959234519711704089819102117706304425709570476877825256124425177932916925140876082440467003628051515520258913185162813342446052915685506240143731180755690826337423724194815994599683699524713648993844211600458963304821057385161183504987558514117617458769899990733288464339438495267766725023580271297886547748666770682654862465670239757868838356393837792034502671344098758260046094123240707053482380587970685339054744241486334619051730981922461773355629735738573962774292736956031052660480863933772871545654233088657434436232483580964723399920472909116509104529927224089083170939664897868353702621420118630324298195232777516331238460205683832689788645087922897687908910162338065436820021529763560243962009590778212820980442508702322419156863321013631336466497235408809541380822358713132242519299045844752226027998313245551541251523506778204017685373419624086142148071344523937794142627029374586011204807575257903462671191619168016950595271684619581238694533975807727302264588242430929961890302967446873607232422710959907428206312883416923714110239557896044754489689244841528495640585012773665746052325367669306758021271831445567536750836182931914550437637889623404268414907049684069991802592413055056911029834929834824051985569591109202698769357676242664019918188008235069690927734406882653361899499659388224584639198102167708008538131452889866512672410313006614361297949328913067460261416621317316021957994657212135740463226759303087311792679036933661153239644691420283602883922833535058086146589045398999532928021661356532994283381398804842383636391303311823580528986342751946399626060472582388154792323135153753071148333315521181683455457851198106140984530312974992419106382262313675804289792855006629519257051323164024154264935113644193103566505242736618177940211328904704276700757555496680702487299325355249416602412587045036305362511491675203964593170427430342478230327143561126069868791648173391990597614377370843356114508618894285873924548882284783943264099538764467523269315655850150670037322441506883127810708064176635955885156911588901030510906530720875080357075281569805265146731601029748119664100794374193058121888554908372435823590181472733610187581692103322911162068687210934145798867966246930205019807463467655704510387726687211014666150850057232649943233796110483176141957558172477985777962690130104990848969316525708317962920815752489483866575391019932148713614792003870748099972167898791103097093537648229897101749777129420230761173236785888510814272580401800054769970638458098761034350125053195820212414347118932858653279506006804382033426746367392360921406331622328417638401082288148983352918177187988629090278449025677269019997784843459558726908607852939789129252913516555398293561519973165909128989136126018796544761785632630823222663763447351746465488893436819097111200294995921898080061005655048451464940583151174414796087324184642287744987938215918705022737325047439614336228723489869532261843761408186852063531818640618570285156818568421093934469936681152932176203042188948634871712768269438718132281582817195305796212725600840571619434856910527534021219002015011371204813225685094555029280821147983346432489854907443403609367643485517702906546926422873585481965117610240960411313527249252478520745154083612850667712488647044402127741843427849351450406933391790258270817407461501295515530546520305663872789967443478820326310088258182080883575031529570930157539566635998357130877409319268219400474473660420045527458823955335349878308644190378704938315082753038262780038091578391582288413952920574015160438346257718718148937069063097305441564582329783569573010202466178491591596157206263044112570221766161105843315812933850872628995221337973414936462998132953201534493962858057016123731207465663135975164437121428165451821546306962274134003854145717910898057385154371050114311383927507140164849547579853849175112160531919690164868485517193668990156237577262317970193946117317727598551322293584068130992527404376979467731771785376339854329908079725022838074313121293668660895438407459869967432653154909839472496659372714119331379248808860469401352693440571060920170374538056987917665942212607485262090825317570319908587972460161327802647725316600677129692345797078612042116381135245080840066982277085282239011612968906836527734130152378310747812426388519918901534092532121404631859745394481875403134830875560763683419119848950131573677134488498216734921763478286197119317804745098318387795734518067234806615861207057752311038025413701392207077315525118075707236698582195686035090690925179538111198622020151748150864436365715183893539206727470502166057135044872946413531973478845864977501782920052379576908636588709552136849679237360649511822698043944854215822330662702830855280803125817752445389075429069914037305371466822955075917113119265536173114419863611284483594953140598094896747315714851303550143499649038181708364627398042472613752985516864320416851062139886392307831450838652925869432742512145598466637394775774048590587385488096964915113309863442859617984640286406593956946050929713543162253953243454713653490926440115194336575235833837755988993243230388785157406149753644921150197920689724378612464344746455204483477498008415918682689765518530274375240244054180716030796570498680373686478812936210835973035433226035355899332444125491582126985278697062008687717956041375761606187949440700379681740591843714452630540259667395365387355303224434528907068458546054292738419229610925257630496738540341213431508707357994257686754060898921510934967522838705389668151999610425948707295633570395496753958489160086457659012574724468782485691071759159772703334345371213835372650966810152788741950769123391246589712635277226995117978983157208073489056685702050423698606715579569689593709408643595529390811321117542759105017420756115222738650142716991752337929436674884909437168166161726287084379693054642028095190607183621052915188484314382556941719204823108717293720706619004564353161025169372256024378251554187591143408081466665504707090600845804736854542498857536668655545064837924437081360200415306403023389935721075021674892873087944940372550591842255816218458665318709415849266100627097688454541547638543577279892628672298471896416756763807901331790479654090245275564981834378738258408076546813586724280819562457060943555059061459746235378641287474430975792108551156366711918305354450753195044923453746857873417333437644125364496560578814607254871585302518540051689612778567580166131115079020214761880104970104842474676763824795898770495603778525512920572522690277809661857779819930401011013490506661599594136240752670746076312588273217088974885178610675012194638310898995239949751198473013264771859560889312760145591744751415068051228548048518706170394892238721246975050677270320419068851170060136635036674114031342608375824175845512928120667338848753493827293449979907061533264914545312100673323896632480275555282379509518105534253193337085340809813974899849910144563442527441608619270702238159003980055197955917329103535788434946309196541333749616342454121197714824403107235142543134213035433363849277142377768625477903338260668444918933228071969547434789004379562322491442448144862957348875189969783045404650672704159165121952591971151128241872661901205225211575240424213133073988506431229326205257995483789201270898533212539157331123504354371098782943840334155551056832159690913550544657608499089382282926584580536720456091017613374076145391398306628374491862245266038961519284112323244824054554203563156733374956832013451741598987509486096819289239130566169101684263917957270432228604290968297017722623424668664153675871328904964948601431820846832755597127702564503696025644067153281395347908776796262320929186299034250505449597754218729307539944519931181611691189696281301505056934462521957023736895266808302198690788509353799737321991769254136671790460580086728248119218357958750779154830654778126146514483197207871485690580189456281451814662865370668680242474546641462271446277745555907390045367893360713262128474415135288832950939570039244055186661630512283154995452977203428614363447856811233302100997240715051444654504465473855100322036643200076104577736260712669832801720121324798647682198880348650559870897510733810105857495861028269691932387366091379973815256345640891398110634310562269988088239937698407893108782053985208331517773792978210926335110249813326251063377766015826872598636622812801531328248542513662489299439871836833125540997237036317881272756734317305578098592219403120270046028349744230148589259891633781597693160954670347121352273933998776159649547869942665014257662519494965178838372617713549451252380006627021797050026007019015319179302808284101458218078095728865352164569475121638739834155955477516964784641392896954357445842936052357704810200167605828634393990688270058703270547510757664992202066991398063161715534047113663040837214801950201705617417771095561236181734064515933424987483933954000680288781621123339974708371705947591546901721890873994110141709742608584659460744622387594137305218803702076461079400736789944738515040470095575819249355007930501385834675804561783492134930564628037699313357429929958887768301794161757266228270239161836786213854294795751729346144429952197510441572950290973393733188884588617552045220423141790284213845194818377585101940911318040651782183939500445622341901608132350090960503650028248833637354419278425916761011119923337640055618587292760105241363664187891545413699032728353124523776492248653170285687278603495678623933771440695672948024100947188542522125360614557732034544151719891854214795643095000288342084552120818450129868653909736764788199512741972987416951252485938402670424394038748741213150841441122355960960191102052383958915434813445469410702984210183823455985169528102564866225847033933194509202923956206924632750518113733473423176895041137262057690077602461794292992738676121798969610999367786407961634951595688412580241487614610447389671185125560359765379489656715860392654506128763425633141099633740138001713690313674810447130936369363071317031807144647155280922885336969844150877981779956113821088978262184798581156276843028439159959201208311319397324769820683339242883829521516280125396246692919497042973521069832252500125421887001875152552911347678674993500189219273572394470625758763534814068271749202264539953271665019432570921764484895695092121522200755300234389381092892405570531723931859176381203495745176363490556715210206038046294574709285533711266943873977330239878446936051711130607131501619945770222052002733693238620777641264603150742010001719071096544439194172757686527895289158178752113245953411365228680295029115251116304270396370473569734741805947096077367305771226036188543274390236482847439477457192969745601429155381835967115333506863457427988228648555124794887797287198159113381154394408090386446950042959379328177489812385174791647844391426065631206105291415419501685044342156773793625297564261398073397053645354966131584694153388659531098736348243354517724028203938135718692944731411918533528972000844343606851027126756554043444773751768058443045632588689792108486308039171751451863771642094398079729344337499128453903707121878899103065826934353861165933542332825188315210939647844276794046865205761522265171348251018166583567815092081078235150223200032222027116641666220817306467322325737033507007441986624181484860526603428214407132085898306278854631908438202162781906369640383705887557025025985689259438786916511597808752761798879472595364518459952566257425412770844345950531565582664928457535289659075530079630501769810691303066781117714944576177531916281000071226888873815817493560249810159310473821885104344416137091253445629692214808691467871399932678462980387048707298698282036581972078328934873111382987420393784119809287445206711422244743947405742805859111353373794254210506637372531299748486311222298506803924947481491139407432749163896201441381846615140945302624350745788499205783503272233727744003167940111767422038142828104378757459420768868438229333878021961175954921170577888894233974359691380919941598259666084777340519209619341568535611638011354167524476200940478511180364266676236288155957762048381807714685455566093211893107685321058919154018008862567030837386013316950621845445867682940258218851037470467694588679161355346195548002904927091957727154369117170174547514805232334754748806680617129964517158938616877988291726447311497100049525847889348836832589473848429435293544058075638047940423255911396152297409825955579446504528475317726660839645913244389628991277199240762780160462417263299026556873791593622832248325958170647796518845730180371710713541053918533007320897818886281785506067991969811531447114477183430206697578137941301032019306915911164968717728728841585817911241823486365472011191808102870891617453774183431551796891672290560565645539333270000629833103687819420801288655499766367072808185234878542960281768096525359428940109560867128254954234573280992227836011517049408972040547013603899814520487955440627936520177728843524964449926480706684112225681212944959850189726279247537541097805039459004181952877577741691992753151715911491621317671498949845976134848128554830209196806048568379410420110439854017836015980478211387922145397538716578428015993326006947819225640252096162782166091581114192048265638955361269574969085680686966021575711702053931382473379125309550786565542493603393507722134257062852444065107139016094523111764559277849381236083394569544069411880565904052694892020991832183847063643596614369610699882903619674298775070036760017095623364285624508912479835283472458998261480674137130954596565257658641243711924779315363129188469154781126095796001808943666496924823680390475095788944990725590545496659570364722997435637552085064166005042478185499803683869108427218420777722809958332423856444771945270665277540624338094241047761720040217593393578589870744272170561469857191241483228458875197969580563328251631210551813020745278087227460530274588961029188235179046406419070592824752715045864636001263701534540914110453350643468656384282586619374186810387695922844709209302928468759402649568923469350140044363523468195727902504432197247235110406812690613422269781774106052507993219336906430642343254227996489617720462328931288965464000618275034397055033876492154114311517432906301622092139855609303109074499115176634361155981391613693635053740590492544761711761649528577948498330616692214389782448190601511614601581397545142393453961872926398679422177936811875947297780773035710377963541521563026752335332268001317473029036621120978941924256575641459511575831401188744043475533009931912261044683787461610990306766179239836781687925423390570762374732615128863971437405229275261652246783629223171513267957725924024259214742319788207305125296414096819790019753031963724806470980787036335798292194904859960886290932358786944472723939070464714110273018145781144244093677100571943706095243392719603284598248808242051519697995417601820984215472245526692675033942728325378676500258549754633759906974401680428960490306937252575281097476655883811527643772894124198673365299060532033527363800637125679550069717284171276903183749788348819958018966335391298210485930947092228500503687376206874219035773018961010656988476356432246582964283076358960519483772926693891777168842769880424875167333746715095543454338007310462982631133296567495242657203767024365701056345042444306824570756698537780993284909851528400046241389052297823393522249212447730648051510147262867440663568805728009818340609636825250455074892223768332819912436356250780371993132946101533471737677795477733271878331291787103287103669656473395191999340762376857355667285472658152393702636429383861871250552181678004188693983866543667425269287622165768433665221872934442120294529592741870084638087272697671948117208098409058278127392725153601983791518260372548432387096021812562135181098621643056828023274146797287401407867590249035182144649179112132565839316537600104349055348530611102149015778998115565505351994590618687325321412723791267289999702985444204393244617883916981122603139163837799543345664645449635561398415630771277900300706069817132289484183854821334448655775513391390220115404020278401618219082344299325448858016979732926644395750807892855945836722020972470250934656924083321895312097522073602125441667672906195651168313045294270724028319596479862637299745996663316557179405308404559134106682081754629816637863814643349466942880414041817654478916580134029516751595270693387202770972067206442180551447210719986431176992097734423960118594543954138152265434023307191028517177850125515319531438517867263328069538768028755405418136703799854966954761546943470457941490939704640770626357887915239192880990438108348250058773475089909177108651999724754476072936664392109850213298373425426299010983337920437176229516912806023375269161750779568771376350570372953209996177897839627638342942305632017067931112952462172880977639559438382883066550995271415701129168321236062904416112695524051856398476287343042305776372264971625035591859328091987147728891654792348819986734283584880392910227453515187370038607432874562886085510683807851553857534781724435683910691666300229205638483533552789916350691499112179913006152344367216948664340942057152766095984437738781501280624049060908119673772164196176472819310375695615395662500271322826828186498627001210876076515378153637762091481962648261493141111326464001013680930797497877494689479103927415666669513221817920857775599834691276867178767443451271304153898836379628628998167370786087685471133085480212685438798264155123792330691391244890753036044795837731527900848587112037609810210509491839058229577141874127991896493788991847926159206420454797347312468147811601741587270750437710322806174009202718101390408640867237511512779034093090375781189803071348516187525198306417469301729135179794032761072035915455454986559982355180205704400218911595896458350799061348174944977802896624503366248166564161277310606204957460542764023715463810940454788551239805583597735176573856146689812893380034892813053465237831629744811902698620954664464164812934968863558421217132866392209932158548448563909187810781040136102035355611628694540080883011362809533963014109146633374981638202262224183364790920823704425212054342471565373611472945071205344865989591509077954259926539379228754908411658948659958621266665242948119710868512972551711482519374270727051984086497944369102963083318213020237177104140357497268908610816703351204709628736664073983608048588528350115713931654175642917645831215364574964552324397278510571795347360266940350802038723275343997770726918412391892704833788687667941591227526924625374488307611443856212244111183802850646299392288291194029302613237817736105682338632280034372722611890804766766695442535179803653614856415460893650856771821095336988762065804571255278010315825715266694215628478370612439823982086239710364791217898909113478516731546940218450100546509250862179233896774527786291309219605189512942692411704262947378534445610707125388513767003428537587982251456596696789851259768769611609462048338997768702940780265430602742752755327445419566334696342640287737897253434199349089128994163952950649717777370284221413642411459688420181233511864749447211592454123183203910138339798612994630469418066920625024032723182074966273897899956818343309681929329534366200879667558096385507171284341757583998538083073406350700659824109207874302231100565850459555989484630384013452443636654417420337215581852599340737623136743403236335912479078184483385956976464097955625114620294843559972076597214389908856606584350120311889556880612205969941912599559502985841005651954146955981114635059527706825994527552996043639747806228310401862627969502755043349741227747937924884876367391883335359391403274020320270349259699694474776980062066867541630933631538772738377315997387257757255292477735210091669956289272477375830297033407272036739131466139895517900214565220524766203006056899292239946310281036622025753692210641980453627900709278791506496895377440452815600207628581078099947382611204892594780429500291331161081750555580780210334156547584026833370442985617246966809801020681049874213083934053633863585999429792162254083437358796979132119298728274042902827983399036494550495066844980769410688633301220993242884043503833217808150881470735012194345056838693419528422182625754389190598677095796087814007402396135558488446772170101353022434891697544077018750620428898337760287289799593770680362608156323193642363124255253927518956772161944217191487094313136712353989489252247772928050341030776844974874844706458400980871876658632918846936207586724194366672644143638515162622897115790831353170240598657779023893692591859076704316335737576309904080235140036255826333991471811630068658250911994721374492045041996705688920984460691568631824049935220270852102861233101826751259228662376969919651497375791322738262377621681187489395061815578663074583103798861051229384249739023773638975144926253746565004694667684362180590716134089483548998537349449139912684057813929331984536344094644081714170710323195064093343520006822593445644124195816416621481302006574918959634726974949559524455149714463736283228962445616858492294112946905862734602487235488773821586304749691897154876503903661006239226853677094365642811539091410658087797419782214669207440195057862349831245565271668300735406252539546522694836820424921877251964115090411404252790267094184122511677217197486794137650961694995737693703356145191233506171031765779627735852908257745750686182026166908369684823296052570006028733829586052943631561256115736062108504225329787434507615516342997717691052108809391003296637445985791957708635469314582369238196831283010138617367669519077123427812325124237214904277360747322469862112565554980203840167623423410800779843215600602890770890306887231753404293898303673666961042060386749444490700347199514339012505289166589757409827761453811826449513899055724873513236592813743803597075885131406434173641183863544331759384425219457269155503521991450389412245362773326844720920720672866810225432678925877805197527374995539417831939541305323608088908034564115152960181960147128656333009189285613707496775853006737921070230767740462412635857703483276057462310912221262727722604242958736606195471166030388817677294219962644204348002245605112627953511245202574696409430175184443529159650438746684954771985241948945586271785021224653415428423691863514719713122492936019078371857280734447221034792582634901281639862467189997222678594552914039299323745811562446483925593421211724500714450113755237720213475704133015196797189901340215530317461654504223343611132925709127093287233397091603477153280576965831170054669370955590744236876094082094971927466081325436125123895499668828972052207156683943779145788696385511134365403624381048374068586325411647216571894146133775481563337820508213681796109110819423692192319889686501519125947812244719936622621617575837166031754653937144767226610065218231272629044055328474122221020236274973893200181492919784122536327147320248523494073045083550706894191316473298537879284445917536747699727496244447078279790983470564634575862999080052676224196512926230634038271531912883133907647020362752668544121042927470614722974244263296186040856621700034829033508797787804861018350116591588041112222372613722082231843982289049691943688940465035869918109036389370783558229987159542931500773329314346950952370376292377059063179700149025971463636082640654053113970353201668302163995504158485186544374367300956963057654138761033842789340171768793704397054047388206785804765771198581068019696843729833614670417435737254024738741759923568631927849397579647892028560308776974942933530983498357330971311512095745459366525980634143022982773595380507698910734383734658268667917530122653570912833576197507406826070640563815436102711996409603840781835867792587122308050463204961022083797612144377315489434206752139537357000963420975316729247716675379920343751619889159053362659880475254754055062454266816568043035362383715833989814546248580520940752766331337646874352285617325781829454085740000455781829893906851053267142669021071234739814772409661473994990470020915743924286835334349199977485953478140013298222930381009473789074480654143210616380519537257738243555019403976820177430103131745534384187001488979651915430283037185278544542021919469864964754567229307025181309711507109577067254415790414519657373072628469842458851702534679574464172072152297349360524973673820136378449206749518994578460946515277694620733214326021766076168483492546335273563075973131564769417230324237199070313074343863529567850316837149350615306052601782398595634119222090738135600205194438694960600139345553943411569901380580266782434586078808538515899603396995334645535558494447958892419872972064226323248237149240655268286965779626498470471682209064131916320536840103117428993493400727124698849699227600767973796977575077433097590168944971265333945911262759154167523792715467741819753757589519203572070276180744919244054773351901529924412985494016202751491500262625930578159141271983863792679492315830926074183223522600665768196749437574278278129834365980586857839658346495182489542902148023326752313278776429910893378971874551577850427963070075986543963979781618429634349844311762750160759601968073037682030024562707208363145319348106751551092424111762412716732336990179913813361004522759863287495680346575629139934711009547565208803429216910151179460076513276700784059984126065263780702682690868610420820554678524117746708547495194597207802783816114007323016444117680682931152609837181066189755827652911293041117600223290468476663128050811108472512488781819988901563803640133357239023172545294358642393501377442433069398356050808170000486825240121810174692574330779848522304619335329668321091474896171105410937179279425176467185441980215620570875554454954661285469458201555845161783289055443960478882781387518486689180883416055363932029007377989235313084100932822120666118558573470661354368396565741931319567959784891286887366869374874866604180174797086233182983947913488525586306262405818418944399709674711006690172379808176337057549239217862536701465394141973912480547244994181007456695994597335845947759727218829321495739902993596992827280297112948066357256826091822643571618310271308744489357971005830260401615080605152485420784915525905009303052990450062290122909526762819292919115651086061576639616298367395054010724373061180186195871050613624189681405435841810204162313845099720776516523223438532667350396989001148354758028384037179053823088411050689063965498896389097079329128303270276950139987047072626710295136764467018570912949592878681617418500486759716786140033545817873798190826143126345054637969247766766971006146299621707028315452253478592174195077946538355411095790620631274941976905265935767594892274019705997270429843053143208556285530088554757503872422127035217529952614330933724669593216766518179721325491716990306294078425678546558036367412812749159180365623204736561847730136132011438894175134564049143029208585911515098958204573110501711779093636515724407348765828058858123232908442763054346402396661058240155688210898381091004570287528816522461352420328060813727277726489885847730755091191379037252587423389015735487832158699307503571917825276260501527299319816310973884473433918495902702202259946262188014641537613810661825758520992154437816666892667932523760461790258309530927900912127355196192772079082849860471931289816053128074792748061173575823001460535655794429450619926138195413440192457819946514357633320228253784998038802515227756320826087435555640751436218383895249432749301498054557701497640438221267902847800983053618710067077382745868036379499734261637306278026823941050265770274755225930794137282364759119557371679677457950807040133492073337414417932476945200875905770888460568315754302627219908274567959112430568948785641325918117600221767242325372040801866609804685583718781668522539000633136414255136964292820762241941614789237805740729847879090710131990982263387704948009004859345490617934738223519122493830470621999674631688947819867134880266444410538932799514365675677431810161305632168272102430312643085528963798358714460762414771990603119933112353726086614152288409973194670967042707544013533083971099678102134361591427309936583122608289100196363090407854717580137800444862132512432377366229417321466383043064581277931500833177885505851722621027222232219034161490414538612427029571926583588474677865962507395886014089550242287057385824065312904320331398966531009354761946950617474197262025218500381951769904654217014456969468090745491725863562197459311739750204743833894485567616968064878989920184976687463174294002469293935939082550867398099863499600303180467233769283784592348112131166161695190849097887759657484118312669673058138284437719791142208328581448181243136792214109394435963664050210983336192726475561803065868883210714771926661461481742836944112032743488739430918492237872858611642793432852249875381500181882031815184948625374370882547184189209801502298218499539151678300551309028581651233829474191696707962384799104264384103866643280852210700132929778906060811531327010690973968556074228280212270860095417449674582285226946075366448612066081276941394666079327090597975263303246826218670313793207240241542503922386977999605116141635188906740547632868702990648993377790322098681434580331345052308310559885241375497300165411107431471320038904939570135719603664393102311786126193399223995170214751870865047521346636402463560460630985716013973181088367836801906257328035587165147981955713642488677500718848572483571887453481856386080068957473771389576759225774036735755356611944782642787432173104333500111662643586263544974335837015870901750032124863489747367492797232643664207011120063309157760363869080222485162505735101143693567748927682648493954731593486440280716865720578161266425616708462664743858473354024393172850659977481966370356093944833630257882741459655765502990881116354602412945347821326389212625468795017287169181239046744087288667220338689904328515440675767982081062118420017310556470556536248878491530673103553195014954919236026921629411780595160887821839895712425697426444041712605751822799695222190763010622901437449808576413545488654635700901518115299272611294266192276958953840800482137864438982482071301357376819109821111665823426706838565309085758608899175363700565160036691932409112860424957880359820372582038035400538060944125235961759043354260546960366001648201490767765515627073867751999635879014504566009104588688594977718291008451417257152773698602998053580686358095741424331929498036186054843669952386184587056689170575839539395453912238830815918810320530614326004808615885054168503935786903615534362871120059194554755656085673334097485578614331300246090772251539551998638025960903012909243019769764607227649517452121732331264778601869934879887256365662788243851740952808983241432577512685601571450538148814319570095706819248797831723240555426099646720026883764170300029020576040108244840976279614759368044336951081688100048237818780236391237516725330487000992307885858076675060759623514229261484132568309379784867072996842234544216906246210773855138868502880164288597879453300555667121746362577436634657817317304159650013661847059430853852375443558676899089801443964972866123599666141396275018345909598340884875001391361860449579953055644484004047110419475484076176305081492478997723730376127171677902487755949404923275919316442391716275678060247914656196371531040376179838974618870562581663842446512397740363004303478279277790332945075111199329574079102409044136496030626684610158709643496430383003347953835445796101335734535695451583912786026117706207361958360773681420442746205007485247357461476340191285066754423089095036953106244370034551295703753990284554144193954997906894926711731520577153553009476524863479667292715368523823580205118647198302183794165848027350609263379221836542845328809418199869617952391470704245099316972438273645362254650588347554259650451192492555972469782954832954916625994578362295979174769400521439656838931535036120547040755018501691247814437605070257390659247010670334218942601046582315773289430775430078952274055360227797423003141666010656410306583427151299917926747224671419747121322195879995415071588841620602333062513135017193359223940858746478620062996557237727724512264889733159266562676016505231542197765140661742580104951574560248035717680914675306230537667577796474786621352782531800174080147194776138311514696081374799910590458685175910832142619404306500188878937895692453336479575801068083619390049052606555102911629014431316204263709811576267996933878447605892687191933372143687216624358389513964077554805562100759409699613485275592558356691727449553852708750734314206842152696524127782670566435530501994791426693549081495718848140059769141282846168179804131726570972505502571832085964573406381676445314063721799266008821132051514015972542092525356103797109661464232365241997560621684438815858027803320085626312752358985780372982348317790719428008623332112947805577900672209972159640687590028923077331801326707841202586008443226518885419607206271753961324925138443926632880289861779921555378411934043079252009326810410680496841789005373673233980415668409357131242308828374554618852200724004681214060183405248689885710308778244534602360538950555688815622903588963951695957674502869852993475811628301994876688675675693753261830668876988434611141588221434114512472295626507677696687676461486075854149535650484268978107855269520221082030053208370482548068754459728508839043207149488413965971049885531174424223987288975487590445947139659286752775298657566797645839086736896521240923319706997830307024276622090533093085050062090882513572547144838351223226976203386497529219938902095132514252616742202327163037210987931429591269072604658648685351184989534088032131636668076123197881461741343332513058016098039211519080795496977410050576241211777668415397356177669552796734348413195229018936909904760612984238522770353060032509716744778016916314036265390872497937942835050684758848762199276411656123333993034585398420166532581021214065113565078558067326174643171975077159574747743936006384754288719016952310278975791138452349160550121629404030023482750993415656175335695447124843717941589490157614591152601771713468509578590045253279647431544412908636559904126349717620969838849340402563695304986788274520484028776796717821774816743030233947659898370311723681458112661820329275419179255644263914374558683922758175462237689426273599617199571364054536575037342963087948819600501928509380284229276252572779902890600812747578038692285912731782208017725289635011135698439836225486873155892016583873134740733473995128622127214664089981241897400701152760748868479594434357852423436805176414691059455028929489690185189494950803935188438179176769701344517684197606370393012508645793246730712723849701924392557782706348112371157055871393002777142830985437982206726305511796753468461876701849539100792344739405243795591845095399948263569934350946583272145148415079965880441918623053938061664776197108900444225007396493131481759476471277169256477269024675858455622412734598512485709764535553536003086053532013787924355115788717912170237336734688550573993738887694647192733999428772473157514549453189861253855114059647041239553326167461986072473982668910712016135415755466119943663397632119979016682295011964338332810490553519290390074856971727990125223598867526242188783797474392922930462899632826391840043921936037078774196932025969298657204903760513283923941821294770369326692931118110966379548298896135275920699650303605584195214055768260518810138744056288947034739247254772379533704508823368190682427949415164000301186558106977227877917851990718503983705552082534989970412213717766195932882002718820596972781178838823046342216017468716207445028738522073867159028427915301055568752940821555167766259603171120410883486547802976931677096307369005523997750891818364407895874464963444213947278063304478678805497498082951327996042140056822193170228730358594470126378685239131295958512369335444163647315261925728245920828360705632671066501443160472790174742004920998541481394271576429507135092300483139115767665828770078830561379460793998296457720847414280549094964209739696223531053844194188868175969253130724187639725158611890308737810696665327609426610794474754289879776382561074074587097581159314470728005994878142534667277399945273416479601886230763021826079904270513633003259923539125143524572873026489793148765712017616752973622199231849919857687960423013780372092238207360118756644509495201967105293725718964528688600596920069994249036594265174291340481727876887437434173113773016017838289649476135336234911841653538791340529703809705664892865564318316903251255756982144141605136610029118570914671020320354277504616695224114135798024762081006293162764633066602894686577888241942731316596766146462891276385807256072568861621497381457494696650298845451135653610453692162557123896481370298005440818220870614216509453110830531929944334326577535136879094201048906139497823971479841652467071470571619283838079924662595106161070433248210954195693271158825073161821429776821874557191704116254751600643286966990329661976259474448260626901680566360254137176896931014371910333082487089538680960471604233450635645459265471925101857885632479954870841099276773743997794458226751453680218106138437518343959291707614982602038772301568774199408781097001084581016427415027217101065090207329370979959672643330807186515907768396936354013216437964502170208627755137142464502009616103302489154742697407607615032887945780742545417496584016317351997082454763040005371309870882484419352546549375706760639148719096336004049132672443228834638921724317521283920114103176050707422269209466495491864536848941792772583003023950401996755248934509273903900277936276315109303000347368456909849698221772976718220263696265466267031245822704678627723727575125092594150919102656028470727540659339619020475609882982076209108901680924834205571221721173061418398012921960916589363233161246460241960716936649016916346810823683347828718361253733066988451284574863038907219503029141840667138573931538925635259611798019601884248600177979351082307184542922659251232617628888923669692173583206022837550970624782940337056998533796235443667744707239852592635383194942499546167178869440973090065777511316806327143609916735827997059888490422863942345174861652177450767835862171089892932596721004338561195222572799498952468579684775569723477625324343880228228890555569796699264928169161283836122886863483363635975585690136400658419134709982334283080656930388375889363386145890682130284069789706372826548933051132192763792584376935833037959382761810644922328370460602331669579449125951653477830236788288211868544482661420432128325807185548309525249613247805727274090805099816495262647064975508571308510667886826606065044788823851231683418401052300932788425982606689474316301495872633197807382858200864559877945666545125662580783956375666347979247620178144974759976816374639364594876990349856120122631846471217577483749554707114126826104863665092163482036875382751362783765258581713076770963512094944420627478792422046564848106512081565834624713911280430202910439509521904311830939947547227771267508275430890681072701663464094370077120478716950251408441113782944548026789661552588868549545817033046312749756369619889423670984584461547216698043128545369376824366156331129445212653890131811397421535620984218231441446441750580750486865005181501246313571122173615514626446696073895535518682483267407609552208577059447020153980751426127091081024865495145722105516256343318679897199058414876189172221882646200823646344456676399368137689479346687521074676871700458120495531957938608468167741218175644635378363265983753324633289757312752917066791985952708493764091993209579479308549761751748948728771948597495078085195127984588887247630974333177187860176549733196700338556254138335226794819535586695691702431010214400996961359372306519058473516029637881066049327437241625132676267389532121029250255120395958743621395487824020277621551930895945925257913970831235880607902602023090876681761852100336482496363017470386261871715829391069933923245175296548085765660024271965524091709386706795838501212231752890626406215726590439446436322734190966774458778173758601592066961723138607215442469024514450478881660878833003824176323112946466053174705823034970079179245482992411115187900461614734394516507038736189152629078217460709957311875085213405170434610096136726279866966150436295668180523011198756351359240395432565313253089670560362995498776331461119473209423776375960125589286056342633616208899204937195374437151601315377829546830418978168104038406321973026303936278709320726388152906855606681573209607613232843080158649441720788699793249893524882195607045760819397125722122561014479351634203314283364533551021280022804453060942804518626421219869166782706072847543774444992262179272871044423650700868439416577309265759061070681086027441821911862830290682530489390603713886145093103913789279159778780049422560867500947740147928975383033660377525530592587470226463096953754887866607768383420413324065101041111587021784486251590572490661244766711428261869100640655723605201217803955127076185903291875134892200110222772382036258122556937930912562135968840378998552405415797552206173897972963365451784054373209433935334288233173525803494728226695955156406388571617696054614715334379752937203384743191859631450309443654042699261303853167656808795501102539862240673586052927221177260248925665642602607511928881041673222544739270420399267679449023334076174428384733162640563681443964648732733114632824909191805574507136876027755467176623453261796519604926417257387042300076795176605937018927904345233368172112702097992865485668217147013036153964282789233657617702937019873466814027971348852229568895776644943420016664468324002807984688392326564876301209227457266243939127996674886505676401438272026829602498706744155600150846919901292893724585486684468573164096319839615973582883050827495078753962407236488693760297545346206456513156272755629096924805699106820394595053642887866492011077407490718086477344278826949388033851944554221402304458527760381697486275516901766235857034746929949641570164992032532028641399333911121341052273132819661742547192738001845577927276155568399877709827066781034283046609828750417025177796277920616343845040899349392515738721068029545201074888466907510448927406247646349560455463763831616948804925586522434340506943478770948241161479020911290863375315058238491527505263748619911904594739537934704207773872181372388874172364655325875921612458870251155696859106462454171195992670529666434901268169804787298500543878888024096551314306353164881515483170453098573612692861434071554410600527657534212604242432059595432824796843872042050792201265880325809694974945319074329514395881516694183443701845247981010330167727878806813024145123175023699623126375908103111274861009660061445770372872995024341565150219432142377525907269461157279191826484435621544821912019905885076114700991848847311228058438100777966346944754284998853598938394488811358642998391417572579725872458731614311886858848796841693225885429719145506322301706295117742787662123522049466292121750843726017347530063455189271515835424214662908971935041585234207394349871398646746250463730713067080026920159206599350660604285180965605044159658571715396640394575444038287566438241862633046873377511010928980422114969302358386678952442877043602522285004947909414664039811863388507353122345407568074149243098578401941716059084660268080939322643917631196401432096836972312944654628199959549272169189875403003148401582907479180529863825545846742004843489394517725730087853788951369366200774754142887892319938728581335253657218165916965960899963485502705170342550747981593234260728016431832845112427517960716882895714587276167879105676550861060842695819141015169482046663712721374069341223972974326126771908281577905517572713984239632643370628852992359575620317121344374278561969345915437452823241581386260949384124091118204247589572640593571449845385286344571358952238698422777802817341202697720945689414122238610895798652260901750889486593773090959364816258335940158931374321271041785194246742196099683466482285875680492028660517374934821774684376403074434382362649177808771293953417379550017967153158846936127675069057788040142065101995365013993477422605696509223259546891702465768150383450132400301144531954886504182107163877664568607801204342813079299793049398590464116569441428086082765271584027361002871152905506857148273694872550292993181070943647746109243894176802298961112207972234720689148746711322430277075273939493595021520720878129471013673170771040098116990586057699331409593725647189646665496214954097050244307279768219006468496450268243822813616146350599976127512194435243384773954633110519427571470506222570625105710166104451868456673480229289830247009236242068199882362370715932012297936862587165019873886834316353667337371278805837803130727778538124509824635570189724829610133694530425441685046012383043643417580317477214953733279946159342225130839757115427433798931658336968114826469807464505422464382540046762232969454427034992726476532128652754869751206687665621874357612943849872578673670455614825346308454547846513312480399564972750693062999310923487189870921880364599679224149390970755896670564032047626180602146613453344980369445684228952808957697521456322000266178302376307294861827262624128937367052176322351049327360899185663925210946273795646874730967818113206515203375065303140496067114512508893597754137825188569584186405153503847242970948549586240221837907827439105852562819170024366666697088213665859575921226550588072480213445721693634346494217794549987370559302891812167154312556357312568885020512843414358869964227401261933669555689174384235774071978560303502317947892097842795066707688760178452675973022623155546040172922239946413476111082365048851104576376139059321434246024567203811908125705630269432730382276719915168542977716084498423756987449231183081422973759744668489916450185346288591975432584197990767974979832971059768193913495707581380034922353477698533650217034180080144302894231796162931586573237975663359401934606607573489523024149479967056699304498129228583508950052584364838483923179771073778827987309077710014686362127486881757192268288644770558209402083030699064808265237147819661767424666631772843814121322307237517375941011761815078185151308418339223009744285302911078135027531709720805651040097060650682430232357478204857471581873870736602946321509318115343351991857595300038660036905365649269731157018574455160207076188198645648969687765561513262181577787238058163775182118794172679442573622151805804428856499944705644909329385501487401682298596542027996415148708918391437174283535584314411301412600869676463867477027377788434487633955524604797891493673707285329202270461442371103874147248191323217597510515097787484616947427201364682652435003182286686628139728679043403279977676736064705175384673868860832711185613404212994853173442466133959907076462949816975136237940550928073155494267316442121892677764207008387944994343357496551034493328335617364870700255808883178322244100244220394119770318748514109267607767848646145139456486524327763067753332790988026666321582639990135201133796216054369586319297795583837498725112460842316530666274585150359849001680128034730882711749655524826436345232348112078148864595029478028374309761247979963660456771936790209323576888521771195403546987595711724522371627321858667182745654533218073042042719889197704210547814153799177539906070392326378543967054040494148072388593490130173162246937544405534001254483441208944029024658905353162834378012964680445832010770057120010146165806005117804416527235157942900183732993643853041937969610391249547562793305999733255788993494394055489004584760468408164526685944900746543000621354742712488328993187765423075910087811976725064480095048379309338608652888931946795403628741730775250606367007170158008936799449766586657553049357420456976624786449220508315665963874782143423704503847813838291404840926917425714689022006783722628245063542002808837190597590335226327159064718055595000351286049465320716019504943903249352994624769478045061116507678866625108378001358062719643014309686021254794303771924426840812025683809063595990715558284228195097435222824755091832403751306444482831353058518029584891878332478390945850246359967269700704667793692144252955177855627918669533981356813097356102087882169169393838395906602344566732408593395410944058703617046181060803014926462732562640169703953784445961704874629100582022964612168529753048602612880196453889861329431403527515239521000175924909233720985275318244454833944343333918584284990859255052456984388485689638036911434256710936781402535028152967348405632899678662053334848742951216256265301508315129122385279719445720011675241127381879203465948127285107952643151317194816392208203983265542053617213500918455808143801816480191390394185278108189346607724717079918852685203278308704473756359574895321746536692786534806835879358186325865284860239065033003976904003413447657102435826205985663323253894035496472943205180979226262396772600477756767000024788110638261910623534939273317411833965710104857911648428241831722107039926206419392606742683276973225484450462039553471133953170007998873235986305104559118563370849487088630511994050935144827782646730418025659687863530103322676446535295469388255650207104716281417720037110534579199687669610358388925842892362185161699874946702882102663273248936867259685775093528128267399159353754856880197689557532219221849248793711603080319483675663333922384190373845319885203217985153761413961529069111712977283327648950320559086092769753378065653267372694670087568492301625604456396164913350170874186566507674361725337159309042296637398239623357048763921904493024358575206053814883116860097605073900352633041195878077538034837965801173798845603041069955619082316251872807171139296090898543229658160023583576099221694091029809993302207624837351361572764382266068729137572844595320968156547842980236391464853544873586748802102871838425325508903619984803836920835725782336027252728080931953550833245365044344963452340338848917893798659108025324860817700342261570614324973426878240926593499991543853418317117026140762592387137368557289759782472002090660476690223740780952072914883465333907194796640776552260299942679532041378414502260199347854161992141582889047623806579613342189583730552754911322943190104547092158169046204379156657676807594147305652829842358613805735487260035023165769058041761386389151726804728970697350636642963959917483624744976936262502747816376432213967152695281995015808148245269549808939170275629238411266044520820191195171300329627981751121058310709865199187360391430999170194057352029395949958352463564378341308238120971788650976158364923053785072881946560044387485733530316904960224994144141851597372442902324004898349004696711833990191556252796571723780434197739362781296313675148067826126015750018945767547013043587940211872624878215209129031804699897655675752700616647507906816146140069030556139446770074593533921205564389865179434898346691964016856954143763939480991725937829207544217601133001309845301091100538075619166275287175936763362463462879601050992058149834797098438508010995147853390226498372353865001890168435859199878504673157910497257297347821856681163028156950426276819537169886778973650706272825958817726443997315162141517246071078158489875481476231465711882688739394313730935779213133104549995783450794998768891172659740720062775673844440885886688055521768203029969548848709185220936772551078143276004459851209934792490574560411621970861167194111742330167055430843396092596117933707503430540793813405753109337477964967832242153775002876590462571623736662465062246089439376009399194542334809336273811569302674835547800046220024513760656583269656647110946436555318619133257974989407995741431450439309498014160812874069919127172476274506400044167018252119900656930705461820866966727265202287234963724947373650938053190663877029203915804625186128619400392375287804055965798786056700991392907328959954482356311793933797065004217872863448605263597034718465342599516661680441409080555877691113115885655469659128704580949660748936281915512481918944347597906937470303886563107478485572854799377414807462011615171797643490185374260855145576373099681102719547290623684810177457890990175692572114530715708781058700410386768835682528834386638222185141940133338595840452068390993358562280482104145875538361187649983227565660052244408869012471020449414530007884008723054486738630119862958395553339345601318926860428705016605111448739706135190719183902796432975818614138371713959435126363856543461816256287108900677387854148520521312738698249769647546957854707072749912502775600544042313185810015957405837168378686069077636728169317756140722312588451465309615228443662254044526485476536226935102894234425151201183233418237439894952724282900979077185301501111452626427222408547826875561440787508662479313184371339125002175691288086463219060121281092147710975664534372035497545948312594275582390914414983656061481078675308410183443951828763006342334151199614169300305735734906707294386198806544087457976332084749190760375190504885615122825975417000709441471213824024261653899807364854420188103801344147322794599470917804925217030791117531319243562763967041378223333641738125500682238050409577372804714884266906914540915215518794758802673302644618548448329187134766679679197006670709450173239919213041649281322438915454590273458131779647626450420469266676134253274866094468067873768139374553260530285607047415558248358953366507764275620311357377786496753151887610746708175036993291967125498173432058605158493628935833519954885010235896583294221631324421393438370811381482023751702898063367860352509465961605297498084532658362296946964227873366485273255215688087707556523249687011689869957464396809520589388017779373545814843736203682553707232184568308534361530179300641432611104194309454229014518492345182490590672525344631935953052042186930016024231233115793868646020785297173353679169667178527156624338975167224552353803967401467218623932972729208997016309134255820882859904559506305675816456206235191634669282622533608166841190876099520501663482582725156525020569774689261450207758977961981755668713424967957177737846601494009193977038216675560822881922371232725005897213189941898132624675097348891969674954877200018383435515670158176371282879458274972472030117691387427826552704619411999431475105475952411688276338859139193871009671401012250766649789745209425978703713343766657266044239515807071094594949136110644911138942383777254359905838935296149419498513065825333234724237809054103474441940675606439225861751328737351194659193542801757087817425188682155153611698828893742730488653669020253257816650680224933652654479365962522475005752412209578299173800418607591950628651464305656414465640326641363404926221481429604398331352669040761785074185688802621070822927653887636223754156516240796171081636037977626917123232185290288916225559199611888948453224953716725825346851176630028593820148779576582636040003241919806748733572020099379721419902078841274915702128275757785990609273466610876797738283996679241068355698603904555048532040708392214948459654204055030927284078438341798517239879203066467303645712302025765329438339255064161718240649703163697045763423948681037620872748721756773276655542192535114123150786452740279962673671938410832143192353841996437447267967038615491584167244859574175677706718110065516738638968032179100085100038111172168689571018612147225879995671163510549686085035129131489110835483953022810364548730240093187694963327601830610235464272990343807826929089583212854838456522127800170955598223642256972495551646728987658694372866692447252305131259387390652843258264403855727210765336256791660244037298663044200799389157132941474509623910079325474431211424155030762633393608355146194286664051137508410398104121432203689670700957158703796923141536028672504536358680136929505383760619289732744905934042022577958701518072519548608912245506410613369909562961696000297186376992645159262472492732930295748091047152207413087185152713307505661133330708644022486976948279904730930628705229329500731714475951869744910160057417795717588459338737961961855820383449159290000020755976329105281744319449280958201782516874110968816741059326211985341025040275289865134636054028520055409291418089275284494919148450223059508570342936624662354113706569611340294765130386904942127519078211279603243108366481144377917106891914348109356781125588000655821700088804415855586072059622399150593552266944970057383652839719797234027969457246178256905196594732593847780310955909039130518853274632515598578550081783454757831685207098983972486496085366102209971855970061593370702531185504312406792251070960430971067396991053747273665129653679913430662301013878684393378489330438487951771445576480306582653707297472784112907613925438013528071791356124579957540061893826780206315062682513628876442369228858162345975783299626127029621083439315586947600662455839023414670401429916128430166111780328023102454669133445560496216034777894588390921945018129793711136243830836104561219215721973807642793690733002022696669668370066627208773090294794276621155663851629633941310758536525777383029093950014632561692557221546588067759220639084662181425502293472706989426318798296747783523030398608593612105543637360187303413677992587296858688933037053757826310495798026307787855094297748989990788853254209944630384898360462925861220914240785802163560802328925187455892185929083014786068327652280627953883484534092247712216865088817648847126904793361892674171752115404560819090673035930532157075515912097074085944939414573967128011277709664072797810486717524373359271455569387140116804223443364453538287041636496717275491926229982622681750004414945958206282688316208317653930182621653221437439606586282482731520752833630849132165581682356766369009306614213326123178910471078027917771543790534221827414908322877634572605959682771860764808508207035252041120981590238097368073387791701141733937963135913221198633341754356530728113915284903749910311656043808118126732134430069411784956956184695941541138683462137315486131955771673003612719541568298569897845171490487693032642116409054226413051531303659457609425080170491177496116078219661532474685834068051457342278652532561226208421010519199220240468124899349174947472640638934859804572316424492955237900017028250973269885072493280583962243451147164719869585775726458772662334134188008005541021859781760239511601912923690189471227457540879778584657676059206863356359043487349451057560937422063374234263719807383417820010075791856052967757011272635762102120796664933582223937009744046391917213595706672349895699587531248631202005582182142291433189237484756865798891309896143496159908560086223512204505107221625387338253835514012968507932908987581454676982755694764145565651434187083174167343828463308796688649217340155351285493918826984584612361858740977259042225080824485812301197615050389690355775461205427238244015159920264846962563706035076657844008265287852480469395085260091978176785823305748560644571451546168261148511980770630679351097400387881187697927316925380821681625682460332070662213372996269639671660896687818792469402181259454582018070796588381344083336832602413727818604666870824824835479849864791228159942126263649677427216166211549283865587719400921882203496634974406873108386369023885791451293684597044215887566978673663690640219286465243361979040774967941173374726619048239491175782384667229534308853463922824317435836013715774511353295417551244362600321870383567950831574274966976303643012767803222698586623119510803828299435125789892799697109549435797450419154780135297634768942592253664359734851575341566139710708872334860409277586010927749129516640619485632525455262606428133388565552022217680901463537114169641141856153105334622116897902738837030992322580355545090716346798014002472592996545004166959188181792935119792898671693072117075423637462367646091759470834409992178957743556803427185993727119631700222904492302349128424594576419408032677366958960179950304124492508744232747108713767074846556656378959152930746764323762973226280024347849307739099524439976222184479667964969197105912180188646390528664822459841935813754070050433780275242849665989481805624999281860610543247578849888205378343149056550415680747057233958550869192435061691190024448535477168749404855671485226859531357341663471883760666026230230234614572297900158414404181223264283605003711962744037267919322512765877400384935210732928767982242411260826490904041824822847849180612475596500326530249980350025964381840107233745523568889117166904723323112526457069803418661675462603404172733222988329347123320762808360956348606214728329214701667316170617764746314450011430776927658345063064855225893699490474963428880086216919627158315143694337984185431574291549683657713355673198095348657514031833886522830689344317078045222448369739719692481860798682768830104675216812249814219568403734523195694483470278015304537522396019917943293118276648403745113022353323315099412519476028902671587206868977640602635583590627888911610745040376489742685536780570095269581417043406720580351311905369506273630703986954207603594702795803908036462910783943451640603232380182201681697717994224692212072292462908015263568691073562863522065985034486617637547795998277654376383443426079504490485180719796752184976424348623415124368117860468092935654742893958278825219767344521043661952146380890605144138340159302692886528236425983552097901881920881886408205446276982246805071775047928416742505730994503063951676683105411144748364582065975609679907127878457824825831672991619644510987627305580100463275159629150955838999326798790788432206414247045127681963533888729535790134026667612280362270377781137147502839634955801489714998862029818781912348456475052700472591015404109467223854788120859217945351554135715592059711521364835405873763369406511893516098184856076713451718884923901171802633508959560692841762493759187541666078262937383739205641913037179388886988683001769928887386938161376831366645355804809378487487661522272618138176715243276398810406876746709305941052629796615257949771101366797367954661614072775852024487413128512995837919508681710226860378842847213971605755968401087567504487681342869689102602481478547296485074018518025943210752994355815714384210035325413041137314677486875579860986271329437852546942436004133178334492245899719714386103208863220156028077296781969353200857251149154423263968927099596329256413076946903906990976886870235264654591973016858838220177551250959139983094697223933143811260862063686239319476095263309619931677522823963563302936278350199962384368236078198400054641230926025780731631144745526824383705364633464239474909262456771691968606926489310468020310959491291691810398019594051849516567806984493972757804638819822414063044077229191587178058992695357289614342982169362622034795524396648906063662362330976973776158699317030802627773263289298637799978928292479902431732286770630927121090736115962746061289325615665697869654292486251904314362314801225908636884079710958247107719338862212913895437098639605489985074798822495321983823838154146540907749719752083971337561040569628511175633223169910364864041866392246215353820766991542856112861925179709195847942422680063461557818535068578404173492357409397195939225544572399845436982261544297313113097761118500412763820688373255793791672918664222211396164284850252935557925851447723263888661014966907989933399245520034245102386827847904746349851979612156088026411729179688474725444287318409763323871326099223322656897387264243255282809445237316598662756829932491480989222634196142979545067296565454295249652131574019503220598547568767604110489623746463367045203311387132917836215453639566406950619246370186498797515697509931493477891462070718109554935566393866506921155698959859910764210349436729690323535684995945932193780439433222310905408877457327744682325632482051987657037672706734583120047110717322895392537726706371464961138775601272980521665482236223574761724545721812568661069073585493653822180311049574577740137628009155391355581375025023565447295930957528087956633174420656295911517470427010554007621421675569042427851465081425014282764913550158361282266965405278601695129619537830764472507715942231588445616262306568392221680980502894169815644312340041622290977334923566221096123751667878330590177997294151887890734790564925533717596434955851287023034942602679657600690590360578644483913670421666087891695279198348969260542264412216815470428113621301580145952665044966221337610698202140242450907266770734170851986468614118679239637211567842596638255497524328171792880151648615744122252567053080954933788668592812681349073926829620119628116327424138692520088360917126282674684181534082930885936926315665885489517346079003311767419394915288488894162220360114332655028195208375278502603866714507514462134196866349344720134845530769212719843817330035679697975141290069462006075593092689497727484052269504228700107522002796279180179102910870861242604090715547301713123202173177741152211919394196117427576742798324646694377578486426675898528991729102011156184072861020931572083722297126510634120262040823556964348479693955862307014953376363037796708715725585029501843344588684567898964674113831670428551904185075614564227017774030077031052404214797244806903445062953565554536188818120855578256076785562667192175155929477829274061601999497715974362638828563135440785044076775876345111009224361833168005825633934224296861659985446072695376683162660030723617503090043369304516408329025991043993531437528889467565251536992276344800108506619483040682760183078990030101927720417627972778232398475402617723249599862341477791512860319358003639519846815125146600570268718887992997542444655976941000421390326399875731444624637419102541345013939593601877752081269989355955668586629189332271823735928027426282347305705514025061172223783742148088599418843436528612086693949743210592782642500328872436590367159110267795056734191873739654969554793709774935878825177965282726280410791826961294115481226616525054097355579506189224793620733425129678239104386390101614409305029605872282174694333754415201351472577267049483408973366595651972586641800986938938060621823131562758193967735557886118733641208282803896556877086201016182011517495771506617982649918089582746214774463252785129933353707898465086310209570432660014747957480992365512006956273792014803410736850794240385792062835809990322677127461434916347171313465646239987427277813842765697990873552808303695633684773497128206800318382175425345638362723762412693450573990569882448696804805513368347529659938347028385257078836716776359399831823507823290854166846899816887544200112121868964923290806304608627276128721174027482005450203818801363759043224102759076480968244482075407265925060513874382293175400421094625951411976960615974249768778828987954522685587130274833689865183293081694189557290013059127737180714146438277391786401311403451868514904338739838776471170954791959470124842348552376325815549562524100120742241581392922929263046129325066709929291632396164463363285538035847299007472880486616980251885919204693606496079731661950602948956830727485283612493759212273679170074961649636108936002096257538888057110119773694611509726042340449437784350464538754147324716664495500903585209360268974426985689822965075900674753692210716940153616666903446340238121240803673953440586080825047470798965419281877754330764061635496866428106150871141252258298045658545671490251802513992767841322686421322016624753434903012654429669047526715584536696706762129654149973320205868852082647136571841780821655483962240216618838108407796065092147242958233928661471243281741091477620123302379652601586317801219382577659184201427983787507276180372504647185505910614810536217855752093557591391647365767048674648475727464594555405462248736483740120114345120554113150084646104106044002675775079379045772123526609234033499715596929657597720325445064307378765264954402487749846359067183395238196245298158739566458760204469020708993390791412268105872179475408683796669928436245109685564136401289211156416189361178621849852011153220209830212832586034608812350172759919582970928834969105314626216343957642834780752265051736867825196705980894954288109327937426792874686708842453878323612939570468201533436864527051929709830885040123674726411283883849202369936695584202710143673381028013201014168401245735480511828813372182818552237195252935918181073471864363222268893260098344506587227055724401624908964597924864774710316918460460947043298705936129332697575004986867703192110079978212402013532248918648733815018570392297224165316851123135144589399513185244170764539629392367334945859255859986331958148399356113414605334620668286720551097449707463637157153220754265796854947746695543414542244205195407650418756565773724878839640732140581464842147988374370466814023236541045348643631286021541884264824581311658352028707523996636437820332809462599967865606246820850776089110820390912193539521738266052272460080347479277397379449766596147956425519543141198050512666069090692143511353959098919478493264256502707385887791152011981650430609145229333474802157641549065437388000030887475829655197163465124286493858661924544299698453027622869678277967016428669082399700977749241871063982410132795345500997483794969081564144531675917369265722372177381960041913176085559983432187418204218897754706725493853025579509866732917103041535390082446736109791306480222658628534596223573275254238730077053834430492696670126926226721346250576972542462912128719014240937800901972401226894233053175281806595242103036802902354781078356983052716986936619859539596584040433955892937190023398167877557969168706021173293565749595664451181940210428620372847343141324870280934406600495544028050789104944585494769962857258620237621609313805898309345617219497284585816491899709221391636108431859306348296130599510455665256242876365881658367550061030787257460542110362950162624577500444687416311537014659281866848758058322113697335344895440959760559944691187926489456784095254841107840764766361972039322526533187621159426618721710058854741448843605283628810424161752362101317439629215162287922582705634727916628124042631406035816986959532057738953444444268796272546019874394616521100081444052335821961475438964946029619036767998858384577153798746946816655368861077814719177793866243061296254985246073641391529424683450368099407098283601302794750394488006810928028860921540651688982179436266427567336585798003084250873709617570745026858373930803899476398079141829630262872185954956751511501866963361367918821053731167754970268792382870043280385236667886921493748276686140676335121505802235406489950809360780108040716791683006184459017079741415593212053702119458182184336280233904158709971971616040494232345452583966984736772310942178805456643194325529589320086111855942761773479340696493128457728347985636866746672380083385002771048996549922518833752142083035748544660016047399049070919084551641951854327556504765903601255762364746231395141584726802958904705468930109109778645819296258499760623494845501004994366136266782905606925327422791926673312498442881956497892656956356716443820092785104970838316605705442505932977517028072635463978422967977488737945734380498824261720070379662076975723263615944509063829310105210378878513083861420696355408203985945090501150967993151589723599816560390731755210916219104831061758462963821318545294188082710762024111929073631835885533486660244486393812474508913325849460237951839606185084478103405950328757663792358305503822990411223088637595376738566411936869394002843400737204318492278008199834194328480059431915908847787781178655580017154391361474106752645307011244632684637760583169783400433470203783054344896617915031444398009399566590601508894923370105776508822360607734690906300248254097990049583579118521851203674594454664254860221701350798027806403763988972135000293350342406426460897061026134114759846501736519683502503121155634674613637980603892239543295348478883831912139821232252442950595630957437259177626357851871699930254542733563649563522617751359846089634916518197614394746000111088437787594636303650354586195714117183781858444420013068123305477557905091409750181900438437606982824044006706627050558910415238823606816347152662216875994731722233866143930745423965378655718621100465170145497145007550890068024400756160148982078857900530945968429726646738608670758147327339334846715195979850413873491053035881634104464001621738342386986916167299795362282510427630133243497308390390726425148645449925373930006241168553271266692841938255029281445504729821395511342761771182371918968037879146870627864668138171098004887961107883675289455344610450182823650045582090985440610523739814499401708934646335273216163746788768825414267667637500834781086876232712043323128379609696980729887985440959391424694378655637842261875304813936503103994777945195459818799428943460887544258398338444790784221103138039736651105867905548851339946567544065332253023586577654716182821967683594891268603084162876906014592806592026288191097487987137462752861743209420959241093089167644160026505090917010358737754575687098333479636635142072510292447380926925412184101315380397946154662812894304263889376289631543758324072883473491316329825086536333926634067183407417124362224223005476365540199734368400868330336554178133881398635748402436715047419152850856406461082098691546448092348760969276278124980719997434079040942230444256108057341078258293383883389199645295539115163959675165300647378695682849121661630730637915998221479184026595536363585481693910404009017784896958750289865218778578732186287767671136662035051518873826002873316778381901789957024582306221007548701453598666301335041427242668976916262577304736179234583928704091871656978839812161381543987029830203335055676200531809081722450611182858378896127328713620388913073034214673652969219497425832929786388767439027483750793948875382242332523332609969935097526302840846201010107268685727080286006832800904790355185857804934732502570415168353988856094145365803172747122777058279198678235002014985502719495109245278416119602777625224196736514065372790483283371669819159429686309809911752255114630068357596913199695921049830523849686052596267568404847398745010341689577007944867538451472530294832482139902968316401448190900024412680014456312339553131525733175819209984000774363847086341027792698005673378202661389536896145263546763851403173029382776123747911800546779690319572045994578748999371785214104592153172978759306381122792133586359444469687595634195035532044071069617499040076988437311531400277814860736680270759252878677879195235650694719082765041760175393179896558822617783081118784458096193513844461852440939337709640101158195040278541089480695305967999409345929374689331881496993164061794066894459929415114391041463117523511801852336608096971985556482967211962525568420475547181486040536571556519102759241671495657204444907708873981039859943875718607981132333908943423433841027248023781154996982466392922672271493373830590288172025734915980648061737975493386452631308686144806025230186705334645252629990167310633680296947959607669536693163983009508470603361941949606358314533626090743373416581385012194500218711844128351546064620052903938149683005623018365661574373980675470871373628529994204779689114122416396861196043398231703996274337612619856166541737721572321905425963623224884954257537235656048053788151883045256529159268402220807535421292354929743991117533622889873008666734563146492685090410071443266273907010725909640407017758324306067108719193022316067246934274251999429037117963632022400953278717701345078061145213940105555548656813066622224223522402034412745274513061981539022419969023529535270970590630436825733093684930052505184553112749123260298381714241711999731243036512606149649455771248068581314558783535350890259701798422210589612715448207667678440246057284597887364913007088930417525722797555839242281925281952408101469884736515926690407539538701730384998953707835599921426621863944285622189766536623737289567196206414549933838972133311023123443948403722720983705025456363258194468844314034449191710944941340294613355083996546060743422621956985366901476220126500897492853320324024300648900396875803971320330991490890646770366083079841002932389205301766490023631068488570039274235812027697020651761521472396022701046785394897674839326130307100809153195227609466799230470521884643055887256100727478512429969411026395911772008081267211811291966583529777508244892967335612415720229377082299702124801084556345591296035572927334513220692376212985422902779407857552937274601537498200549950881251813659237422877515508372213599996625331983430440130774148545628495289954453049809016974896261221421792823929303874882071696354065444054736858793348092376255034348023822802483783549913778893651764815389501723080408564430703716474211071510998353944491783099970916345390084471324207565936858448192474893867047878564452538904616976176306441663327291177075682603169890855703422144978379149259159446211153052925534621784910832668795302943887201134372687972752103435952743901385320279769747640211096215940417725753959667404681559204049225451792815173385412183845488634658734527283544074907502968534711797004077003608111114526931398795700278555428236618725803414514931208367147829728495392251330936594095406249631360175575275335588824619271300742492211342152341088030158902586736582933506707060812994703641775474667465576508138581536883878203620893834989945865790037399539814651547676572604485933883565696205564582742725135791708978728496319940278795999766167159788114761351797680339203388256423519391101078421361901773327863852616532287603631244655459415846085254347135948210315611928678872722361378523524408131647055737307125826601944294001439450781768553870444637693661434434685107230750383433295883505696617733211260827321137865529788198566478710210605276462501866453364229153196513181542622215371320252248742626020553353225281871255830074165351058875251737645650294594490397166477039032671705961933908542921395401284577787544251431407688941527558912484551593033698937230882311898933202717920878727969702611914399858456481807502531962889094775401633441291634535560626287552548039707940093623261109133588530566939534506763360001780219729100769417670041669074231747958178280611583351913741063492673809445981059145171717200904361857523425340516639803975873359007697063959115530897804093662635973588068242069578716992896779364059448729024821400038830516576579386886598370504863871803266684357649686003183234915729434679320628967976530978270691943558251284222301084933532874618777070469657261790314527133968820791220841979972535390748777068201201837959386214295920625990144287441739902767048262329374789676237294715074385625071914282289067277161910199936145212114292929920966504960424376331802035153593953144452649541614883966697286798436853381320515628741445657746984308703969906815723150162931975331564230118265684706886220150641383892238025557889475600891980884766385566335205380292847570253933606626287346973908422764221066310137716308600786576029926825270945329163590764142222724232888498196159524103389234324508503158481680579774088959751676199450199364214198135819794747498194332805977903389718910679324454041259806597335220730326070564352880295764579550965380588784506191634272252751974507391646761598614232805068949247870209369381782868385160217298645190324944876290560404861532779632952818781076465651768477837408698987898636273447555961513259125944559168696120390950960393540904014471602778537774191927192832827655753085827256875039936838665754307123092121595998206768616427586082758427564496722714831240609119116451144800604966277480451228946177836414135884274483261006856650374520545970728658228019041233240148889286418549459817664421919288047500332620397028064689884065821648453226629119512638972705053428876463998064472862822914791123665504397256496690829655937313571177910226762630601713803565456276571660647933205533668283993026185431510754153265089834912608843569272858682170902010177779589462355261286271297245282334983517019045929144785271734915529548705535563802579369939020079048779559684202300360993972451234238268885262067704262163951211568619859974507179402221791060404563877621340736865833659815111400773432374035927720222858158088236660538410258292870252009441962585510106229122311331641532843576308053926502409765630608762802619724572511943451734375560133340677370945759416299320285969005118519247109235420384126395636010482369590094835926715558993778140446024692289187518476390714853161803012949048887070329296863840130096212066507099593145530326030910135728874846619583835519866040301578921559737368119119020703706841008970449119644567051864768357974701493252024211683317252439655019458947214820476894101865595325163753413588104951562104882518994463507811243175660162813908783945614728043788664536019259886245445818167269678935523482763604460057886033740986475919193705448072896855738326850607470423107050419868720801872357580947761464824882951802699594917604237439212623893018014463690552713941633787439851149927765887527534924536283634488605861981487494761163993040962461626900994074149856746779690221529891818790944469019143725787122989183093389919348685680452013430412591939856917837612370890181475191491208433903267059004619499679853199112998631808433072396703417281470152372407296793633112139818513963967472888293590825288495389894897457972527378885276387014967946608160855797382039863517312910536205462570111462508908716313180248426854206197937453306502835096476854282566374415436803765369469364012915048981132944829933346840562425326032412484590647282945709980391186818087804527502207045404705265718254259473973775958496605745392061568689322934370631707482991329189083530843253333166265947691057438192804005561677336078573491609692718785566607680634534934392778910208108580198973014072301475251312104060606446679700370788853500495039448442060634760888034994923875526937503961046986179343184088243370207005016759062464181119327278104973506804281175037432378281238781224938060906914655330293464375204036847954113105627555006783196467562214203811352383531345989602032128126181727731757451377740620454697459045355298854817367236546345177558162327291069207797093054759265179588937760549922128798307094099067001852198801584777191659538487181765785162266988305389527136568103751102133867415190246907840094968219378561164452564857342552675007520323650793148018210364311073063909846933431864998844641395927492862045117564861552011351734765670608618639512726718330767060042522028911951174315689684580067942117037299975525826282189709416163666522875800036349260466599293751136831213591041559285378952512078671753033786000346497263732496548183537704741448783183434878291683777091488732866640286152302976804436044483422048918503918191518838783332073520415368642754874024629296699171244558863155222102233399458279274817828703244513476530201839041229702467178532764797286722115745695646093846448066769665181865563249221970061451897638213388739520711350391706523283763679229503742378364554549803554175298205526417497761501178675288246905901398552829786800870415162578457556260021013173734895555668719365205145468988398217908273450650683699555345765137146923989342033301283018890081120162970552250988722513361678440786151387708765834858134132355775134708684731962317194710238568781453604814111829115382580956270169439081541075830676251405102364424181985761292662754616008728071217277054247150404373373741273264671267520623449099693017258797750437845782771190662489906913296756551379274929821593527466922137122108799977401278802984009401286793823061320412326770572288296596577726149052431892266485487473970615580842844004643047910104666570356515696253424765601505299851778357921698165645580464645106006741245771783697056610897369700332352207804545365470101000166793843701491459261465636998389049370871250097570123991055912165261097664787223991985563779051377724823061818726345552946205804689154041793249977977565423555224987797154996099232478482367687724750102614629481544626625421796976372227868955491224432869804323281755522713818271109603954171266910133770170699924138994561549100381710835928057306393984601747060837475707926758098273726018232430103530751169519212193241324709099439011239693263566626895758217785558621798299044233632738890449827478536225513851005629206532133180010287281565296804811541183808518221960701882523267683568911597684986380520556921350561799702110258030644622396002805799827720429463138895574270589644066914835909826720006675605228516183351624602415149373503799300785002833282680634731846758355608842494529000982285035174973383593262880819702444370512452926650504185443699382665665387911277293035982756626622251770314611611931770010548348178705862081132081195289477205789970898736825372933303735790370235865002879279490722719164034244356683223823607348564749974637072247766156520420548762893411648403278106819310960986123017644598670038706942959665129062504540673300751520726839393196668594138916118066078965186434176635665312460224147464074073460934303081668545643073274815896466229307720780206894175103631700342192596294885617144609285968546032340394119428024432757376374645297675625008673087144090130613257876130253894309864373816433906445146352489005085256620973708581270840791153993243620311591431758738253047120222389171881184095148986025253935244436174348857133831901718733828590539020701762553774730382071370562541490888246187656806270973955526998869861574776190642906956321304150904583101813134657227918476221646807743794933039592278070557661527896487380147868814075673209302777150301574227876291265092614870522627309526055951546911108858130921204514984141057729197956243852568797823313152609564262874640431933828610016015038683377275529835125211456890714739284942820192876637936371290126916757275305518531018390990508431881899120891916137422955188724521625356867101239202139041594089205189732245849474690538858433368262856977912069985074170713810448801718810646539534576619783130728447107017764393210049157731935220759492823631962536138187193361506095448110169872215513883032880332476221898967226375392845036567799305004771398821017990175212801623590899565112205251587105523718912520466040133307958643819367941625430318195325187620598324628510423932081540389539942664704685828189564504503396345839346774682567307842320329763654854802819036202119595281815348420790923371847094009466267913234652445992458685693136657629088179462420045287736874865259744307433432497471666465659794005923366478784859399180959640252492040267457143297672283185056278334020715349434376833756792949749537732978573925219389189468460421190938800362002396207257410064624562116163454037222932857954386063361080917074223986162770802615074895658820393316748737635394899116090683164682769711863739070338143116972101046786743530057854312436956352749348077801080232245272864838884182229621810303453747623146564596321932345624522555243621282563508171999652173247370890350972615297425155578897947163114040672051480032249485346927656590157422890203022563362123971275324601305370599319638136496249546510001127357623912757762725997767723853109492779223740382808798024446188560175114307012940220785759576905805942540513952803793789098909014040663729656552917302924690833631104303477010534334191429923078712555571110000589990948692001250003113290096029023512125712648953146295704968181856442806716024159408221474889410497721230989861347778210650498048665221983700421146123928510816423756264978896081559831580931485082022215448880380051289584929358397055123054029924776104378451043570440526823842143326416996476078652725419572384739801987721132591100388819697915687043482094574112848607956586399808308037917301533617776412385277598833826020916222562368622279166316414523653573286047281072965399931112904292689961308022953584854848885491628690178704373786657859335017643098195710007794517657286373139140578744522885376046388970157159401646871870638506015341128825805696500458533382103752818848341549332723212437629887272805469153027274354800963534236823136427005368916854668952435422022558010465996474874986050553398660452165240097862169620701087835550373649912463184029146724104104212029768803232052670185369021597245304334819046210884995088241802994961633199845035958582143004142373100242419781609164486877332256565640767850525131534372807678152322612315353323388176392539646357577905350822742726568142723809715608534145535006610807046512644550467778694688966649666215763421289407059260718348380657092921208741153148688411646592802820421006360332045137770836985688820254977376889034445359853433381433726583622888656395044559071816187770158493637731309530369535929691307636302985255121396230060055558867763275030110336488410513050563856325170493924854812465678082138538495385867308381305153846488810133271143125162692600303495761620273864637114787101297000873061237977412324732025347825004471741884795932401094975782658869779828416498360093636446238378840519414560647648493212712962144822719278784202174087510198891368859062964616719402627533110534652488370534669575143682450563566470489373817507658290510281906671862340957212273613084177627302447729164404550638534356221422316713494921906803597263723669856017830497569544883244558839636244203380781563156607796299550756172808843381783383874809141010273878621257838920045358804603304624278667055246767237699409420937583312673369040623655293649561565362549145817652344417142378741172768454946626720453782650655556566561547879683754118570691434555856086382360054391114668641439228924448607894443631336354173890097422809142520020245072672511825911826525892316960328387860550804223202210874261202006627253356328163634648071228894892883865680532068792138329875459821448786557801238669824356258555429900591578494393680258608636421493131416843292265845174410389624198648280625710800951255797418177507331889401017319788603299824772319785146240126833276924685840134260694090169951762077208216659829694671374987627301835389817415424070530150018664626313282299543534954770561804470492299165221147973770478321920412833376319328518559142593120873355798590953302309588479597184141745651088702530602144569441994522438768918001528730840983494504354239718583222129592897649610396956481486689079527724369581668453919085479607773390825613191239134644017147209605238992139158354574094768745433101194675361999970756635222974176068098234875961562204790415312422215841123463393621781418501056602564870573249965867540097634206573973414439229296364442042325929920903109430445393620154574495548439600312394192280072522783100148291326907040554962510758809537039911602927933347470426909211484384063778825378655341898301225348130141179951311540447157139373949130450183642746266206208498340503915500629528729866176359367839901595408450634077936949130227850673501869748771944038354826538629542970196253866359738713976440087837843504531542856044221946882678773658013438856945280952915185271097576370407987204172932110069325165105275344383548804509604396307773867287884794235884297880337487842106404060167053261309268777310943631267580725222666954918884339992821295959526064175220229882606021315673965761339183030752120548766728447098035655529324292175108471798489109527733216947361202357100212285433490334221608769836614109486251061990311249212363650437240291056877182703852091378348122426315601154717012148726107242567923631325783598720009092926547035148443627444422911645391537700276716319829671721864599823348508193905299878961057722590080688845087267717498210650516379582328658772933255285784921026820461769249041951382230700597517819343591267853950488298679224981384832887865682964804116467680538165078792753203910848655477701450347308058055589238004831942500460683126980631791282261029250414914262478732453088289068119057863324774987614696587503700752984632086078037532778256572895842140984695734734625891684497554648200308917946968863951073957958833346517162529238818460754590621481283775848815080971746758907371617243283703167763823056858956221851106504248657558338831585309665546847649684511992264137385950771691109931803658967370117238446852916596612777959931040274697086557761602584479359209217937653776381614274271321895882925074485531867812726082396093479330277043305477862696273036442757561191117815096385055989924375812469449686828585940745115147436962366113685930389234057706707691563621862350063898886629022237990960532741935575143816896090495731232027713807069829086832030509566266849507621440265702495991580852165683772235341731044552871178587755941236379280666336090011560619354947425425527813066874993890841521611236815588480006277676786617140512183879339178497948346885142367156461524365215328370423066560395243815486880545958050005594136891912464600151276494046376704699531803673985773427856520786467055922061658606456686208855836725926999537361682563270118595240421078501759753792307778545293404987570874995899763087652605974670591219894102891596744125348260960592731909596792265143301434951686654559510048206172070466324534530525814767962298987846405999025729720424498159415234450239455898204718778466516765890785092592904906052115700931192717835800225936815845228231316072345835109393465778283601072527700239114671013210963495037151861123679117725663510691335667105379099606927938971314995471939184757554413356371820532679814590837162305893348224781967328269035963017318366164604667014185733423279071878444996101486105077740489219886329734197991099979188926779759985591255825035302052221655492631251635818182839750190169739000754284121353824994418630233776168247501617044473081138192541235219184460877714133315794635138500357938195112896353476585137039206724617260361912563481908831328466508451466922106027359201245184042856225905999674381414281856555441878480294163611872201447243305745317330940645499787074160086725588773893089954170740662727326416367698723197228140434532672863833502602117038979556853827994519693275092749153221389142739941110507583957520307655600581342521312934890702701490219593583355076330148374074333753286781334957879875892860090255512288456508313413686426618631668679539765454336817548755983612872980272177429990392359306095457373247813877713746942151014930951749596706563777370390080013060489755053153121876221594974364384497392706075317534556438251630526550616470368835398735271059002073512122728912606340865024303905031324137193480768857995826183580315484969145344859682490323174597173144860761302395302117097125084177854492632550867816982359203779625157976559400855121559597870971162058158274529689529931679523648426455917443846578139477495737145284039709650453022572192882243573787012248122693324125223520322822348062906601090384964069685414353703805154201218732207988182634701114594888243139067258507922435793878541677474141914750003078964653158559247717810866873938713713912253764873212092108917550547508565942680776804627496633517700243786340946669008221330640125536905444298992347565744074646223958765302071828754566957025013788398859705215081506453048640197322862616329551661569229153289541363798956470010359564332991065412252787768883531790371362823899355315978953373758016886355022391689323008853461898733406450325572631190835057609625638891391991608966006930129949031891997338606184654879104100851709084992041384036300734567279690133386302834452931758555027045651558621046394318299372291897429681064683776498104481832266832996820259083185846017452955031792441704536558152272411854741281030372504410927182168838186975003839475368473206307827027274126380576970142528503994191280984565495824545155072389751882454573598504130328079889271490892594709108018381824072739448487583717579248343920871497563017651372316507624125249649240758744756336973716042402574128681521156418819645778166174709971630354769548536146034972192005008321078644102329585113989297154651518871455465960947865966091358872334179692185998734313461109360149976145450164045838986036488540391319409596125374325460177215150696606770830305524507452893944462358360061068175700705414959961553199420776946455990671135995856236137878734623648567616360772501551478160898721307816307660222097437303303008245287589377492514952495223774421060939823712386009182618871626409019384423033277626304949416136797217322720071893520676614800852944619430656744274192099037290656034020215286808412568983124669539719214277261683466465757076599236355702807355514697821607611730611963983119777502434448964675899975429298021036179505976743513732664746155667699839511824023604401542626236167518716030819283947230531236960373310339040892051122328366406801993593060478875239993692441475070486762787343689808255477563807431332400890749688508967944614562025980854672426001897382793272412284121807835053359789973523987703290100764652359254698386456043250896884040717198368298143475634893968631594244527094277096617950169060509711491673986656610450614230428656823392117926468924716071483848154752646808263013309621130983143684682005315839836857236698639199798169743706555890879871362623062189340683250739438921537651527156987169300253450006679463895222447953825450581208665790328815621287962951350504552677548618345674413139365847585077088720819069922384993700449810734466608815369655875930726548936134134003125136185370201123031730818484678410922521051219921671745409026065495893322860770697565352608656911167306345951230866044493747238695867279991455146608557432994009119231445853977690208085071791375864864699917399320493601913998249539933436753571152496824928289846176012517251075198885783584776060170783374764846217582869336991791443182864022620645656093692184367354045282062723354332867804196254281591466506224018145389101969618325058872919622529714336463467100419379026046985902348245506631199863442499764528518192952848108601388097328158599913819078710734461408449415154444785832759942860875129157589143165282977912382275399035250149222431738486060140083705873775038722240494118259537404300017315738305770404054175964353955696136041930345031636980779765293867833342311125314241877936376060427860081747928935823804330154938565151286726716038793927660391949039352236557370841433881054337233766391824863536366805685479833080671109506650177014535265263767210990226198461875839943195815213741396915276548669325559062678014614258899736278275732577293473542184049568237589542008459943646955984138966122112874488741694759874287005306162406809831243439430646676874647515441571135394910081769805885825923592803064022872532530311532003116609661077663073897135971457810549338530050438088846362743457587867032388275740367741262003068513982353589616318085540131321435091737747190311687738146683162540701143620980115975897747474549268934807438775930742528351127918371356236272340588759033960365534907506856816654506382264559210317115509143529368347907783803243266149208927685505875093537551040215860938006638599513564197795079875090092801374541919793202514869978105371995343639637255856464980417125617548606781537378277443527980890283714274869920621689923299397214383151874457124533005121289408724872606617467651623477771613538783617541926629054534599952484771540302902920307111541546836745698381612710081349951076858781480258568854923701995778141469465081906641662679276895574145415114985498764337088168168966664590872779459889075843165346857393825688330046239734604657750896527068802082599199373162738129944383788445807764103144764552818308544478521156833409497674824995558637719366707511926148127925565939172693159228078562623145209646903361094660600148118533597464518420978977307181497970530257361639204931025202674410631394740839236608163061499319140353477054237333854969921571659263907326705780238921326893054172655111927128236296304476797843622776677159021691427003266740188587371991441465245406598874102066301589697679101276311921412216655074571684741441358391259093001479947979242171349344453299394898103338638749329117721080888158555517214600789432727398642058925810654365737718714745065485208477413737528741096800470321708500528429924102082359402063478356953552466263065293403628192198235635722416550509325806620398731002996480065234320949688434502806299535468245834678812417993348308785598715126833988557217759152238365080899767257823428776196320577488302229617083499241006167026009700720912184463723213956199301560219186869609100825180047214866152696839521030052967774567815330443378846503742789093984452871720498334732907245209750776931468046036768968127300388277520545349029462608831369046937515298582293527838954799867224978523520412598639623795247023545692042282116886824514386929581972766583395041716065594099424265155410706052061312459686550217377724080621156739042548410115361995163445167608292594201908129171550577424882278011683230235111431655391825393446621935855423737881536322185431555553477087852965268135161674617960693861099531890955770798466693136658770880971631711223822335105469025206214249247611891793859601393034198937259585693739974789082217122818782815042444575079073344182453073276596724999832612603961483614846393888093564241601064646164641994117802826973975388758808429690701625814493631533363027969714926676134938354698960220851105162052650794216276425698953164208840113766051575093901090064795436292542052025936160017280722730513610641817095712918494206967781413979697161233749920701091642094160062094443738911158839048354211974833446962663360297146487253240645938208033289116348456691143497576390270763603569184796604608224205004738884271380215224258282455750005932422808089352333031174702235041696110424274724608467805519709362888468695024876794080740330350261478950944854141091648570296770038964271631743938799105087733919174838997218101218856870643924689835346300414573332589929390036707610231657343502433837649905265203881147929400606766681413814011664013445254111427827264664270971412929723851742925153176122421889270310044436863612184215001117150306919129818018628835683224057552308568160712104065387537242439404540822641786817759516126017069608610739631235233817364358515974098032919026856457059800271959102822184741851353658522572681066987001929645162768636126212871080563894193595445181772217895142978308041857135012482509961652483563680941448658644538768600350418998202784425244740935071013608814709833931006822793153992364926578001094486171082380512369315302979487322269450292382479775857323365409702718266404618894464193755171768809171162094358199449755212278236495822073211242060844290449283296835978632092928535288735293228886873630993691539330751374163538259488141406733736634658518549086361956222296935588582530734373262170693473575772510919159777341375483956873711323953182668144172276577963957823913704067131021095450239340130034113035795633542363834233136799647069894306352776446870334085910368537818528852589493897912910073326038099593475946174174835962978498846651762436883107093699498033809611814510460689782634102609044543101935800426687472065831839142132391273075206275649788865671059592011622057337375869315735069421710008636493105389662668560572807542495293870444952355700076349164686063238782000352199098979662843636981122082523952895210345774587305382166849138080356786640901770952497927911518677102602794200857748365645062222494415985479352672948024361896647657733782755109813796193887414466818227223937446917598933052160944099752143854541185030424251690828573409568434649116135074336126921411980469786180419247114659853049882340110886316598187186832966499551777665545963491182419509621514273037191203182391709804664418347385675185545218549866088614186500373507071307853568927657867955619570263119871987865982371297563154881136439982789535071456821811915160115596430308221210261383191323029191437369626216206422723236732271752691447541337508759857890748771633429231949553892353666243157884049639989513661503641706712742624523159205841115305951983678210636491143029519550680230627088970228678989873133263768292278698670671215147408046183745778548212491702391320449251183065271498645326858585946373648731352560128988648534314397901515319072524569071376946706688366364516378056567872224282213448988460456101038361977982357386816299499955317011724240030978213121548179489815002999805746206616207524155187918660509407274011357816035783198493115338775392850170925157422707216709775817074109249490096331759778704862883025524667159010842694699722617417855799582157341257407926753515402895865205819103746125215717633979694133970695627515963978192576371160010065333274695052831412879269813382061898205866396579920826742563997558554725854494512001526355863566661474570695434585355161260385545942520928462970673792933578710834878230481847791371827660079185801767406638024569157044754480458691001246738306275990310344082583060694243515672227070154495961497379077842952109781774590169537278529671751763241665693179681686776768673533885998442410285423797577140981494524635194495882952296241456869022147799458841046971142628571148017018229712596488798619702613805680754911119509722155948219426308257669397248238382483641980388767874995248055059655498143286337980425111719935694628011811019194126476224938018827526248796801610134772263299950470721783541946328226632620184735241118264836615750343730808637296089655220636722532523101083228992746464600404079942027240262308677294973122555869171496006579643008693936236816401465163623970238461160817839718493079400342232109094950215110394797919070903276803839115753461377640128760299383049351814433091564013660103989805877786029962291632926560505528415448564407745684547486200636027180033082141246996533823227669298602226979451127222116997030978512774587624882840988035413960593450851734057226405783759925924269461986304996094862909970987060065121458698604658483397984837089373554410677518817349979444392540991092660485154281890746857173631510928937762734213163240664342886287200725197336118731706625767774455270940020360170838774449114543113365934409868085665600804378672877639658661971758380042730811623327848743351531613785275598213320616489133377370101161009534683422555150474111296283231798882170667547443164077398472175051536599566602697925825129731909276648372682998794510041600606330604169555743848623016397239807868994981769433965093777315142328746959951761806304099414609131643101271492845075007666604110879863138070484128797845453695716253688648590452832474110269068000280917197878278360429646170055221154958726264853576212417805392152824633291595792454228432654277728497662408563730224548212320679267964848101044256605636572000002013820136399441314041017546893398006699117722264611279739196968878288619586517233557684309424892723164140373785850051259511329482737516103407812254147120362880689116893434080668238656684677411055289988452806993875680380566265020711762648399799324325793934845600348549578212307558453683186323002336985234698171934990053786378575813462169980307090855448060627810918173296059907492651622995605851654610041831717212734100958839697701453481101375464155131343119946904272971022655209158282303503255704391383453846466256944499411220908254302902928015561819271232885316689815203798318921973722317926218388953633192413466322425084786309391647098011020101807707492437971974659019384696942884523152390903728750886607482634063656575241987220936571598484704471926498714758545481486079264585104000966255529389309733633136836085166672807367749125844395845918348717876296506254413363540773213727798666233598137883798466464422286716573155177812956510243104730672267300883912667724309352045354646155548686870411092028408182104764769714034973796820108428466988257160996771566926398016135545201350918171637893704681716049867108644642252534537816745447051354291678657557015732572773978469963229076621424436403231186980508954660695740351007360006449107216922040259207730677721555073850699297065118677213033220700667667343977547302440868085357269816327485580316621356124097312191240238391491350954703669217429458205564089762660891118063630454712471243562014387514899167624157952668622323154722994436414720754496448253223928723118455526650294251205538061715688288474754662856834121731397541202591706158673811429088059960667835402962357222209547967287482289246822251097344431130180363200957822318499168850665590697253812366142509420212617886445791760300284261531725518433557393409168220634926557820094693634765970372099653068307000116564328718987210286297427546775658207234854209869542750181482073564833748176651187902850194097448939031829105547776583770773830601337820079033133103012920026781959697396312092801160656153225379155276171714966897194740293039108437005952128089309210388743913838303171450143798323084037884380761772442578533487448885064576874479496514791519954742401364338154995657327462160452853516901144736959124080587548768545636105511651043544993270006310106302363551109563982238201591184987348280152550195277279974803300862238064628319812910139693592465840817417975183854230479805810646295353565659592937405750374561515680545191657144794425720654096655623339142648497544310281699082747347252236183875087138869848344257876888138528677527185810694120326038164881422731527151474736169474869980418906340537583915320123417976717670219624586794851790142136871669185871939750468351368302401111851368722074020056858952585596270314105445591803597467049572546133886745588933399137118802787952029054762406556946627686829046519461593485882311037927650657152092688581642227797879329773294037532446444928479998847830531997968189940452902364728023627301943136220499870635220578071201929380640028575430992275258330552773527229481269858869026180299935109839693406989494861973476754493499912728287082483670421484278696794274634524306936451128008419783490672248850037928081425440513122541977742045042690670903435165498219629208169774043589979168066937451022661124044420130689483639608792513246727046234554902023175727041940529453570869505818363708056355036830834818532834207494743331116973179836067976502775381720584648158417539666334984464593227751511774119005478335379200854403811303886815733309880040083761779211680048743055528304131793952400508281426754228788286046873664516910189009974880814266858253904865626694493421654964602688745847880589674558077799761390783418200700293651284994611865807010953992710640591460124965224395120482595947090603503667672182145371313969702255638848946629144175754433727704169969743049667279266594170026410873388899151757466677587133230227231703161780090741861968912755831591531016918859526059462076718059715022804585857732700774166424070667781802624568524449076797176760164354392253693648552165973951697497578411024869935334270174345473803030192057204838011798041178634866742461202544142421011821019098345367121848364523162379318909485526243660458948541919304887918913252443978073666010583551779433748066454300494250226201245128300643054158042308702297653038695477738615775782289251660698108327564609566106828023095418293047970068016792126409875134950340187339466901282909942041154906461538398499379673361231500216483185288709701759712408936328584171536463507642892357234113614086387835960264651272396808492507406691019678300199691535951884239879643984158979517153595516551852699176209520475845046514447512618475080100060657410930292411383689044823860583248700611269045971234994589918799404692227659988079372783077880674980128727283364341407188655144198280630793868385980318909910493974793811363899412559689008111359643884242452214084825669190727977373901230527470010492597860787400389650425424649500107186919029408070539810835905944086074009903917964090329163883335278666688649043155426406826369858713768554497474808235155889712866393073453739497647348284314250888547084197086182282000801626969609927106106542019540863460298921730428134664272634035096371731159547989987776830750187592697922385208273351443268511661636560538222438982912624313335070872663486390705068866932993037315137965416458485331815395008066140482124002129398254704473374633477883969706376315905108383719639625584456246112158297617939949006390221824719470752192409444137384337166149664845668997809706468211650478576737634442222070855675646580340772068407986327127400897859004197533436554570143983201372759222555900352811294336814616112213254028530100900043879321793756892034198148741997150399558731482205277779535673370660304856832877981761892647607093837906751012740686007662266762093944025545161924035132056219742428921007377146478682911569873649425513858632998754429058927184891497889155019274033440063933097616614596888286801135100917990049277306541399367054619104223421845671919871051658052330449431581721954436962489665721325958141985710359658229543984739021581936427880787620068459659994455375531442237254189405494566099053062580243718005079591543970771487336802410291675573642625324978824573620234363148161080600176962718279440498000797706048944827474214245978315188908348203802184673524725365457122343455784464030749679711640977579284774879463070830402014479987427802273744885968468720660342306466782018877829257660056932425220968651609053089487112977145393856826111289149139032002646744437395636492247194052932283122439427236575329985510779423785929268148155293287560761840605964088402390106846969531878549845529991341831243746973168409721624990971540835498715829739459739477960720121681167490549124835067435705216086885315380407301522632099842169425219680869067591797711229691457400867686376782861916687634486406386846805600657072063087964241133267353528077064317247954229569976383148919641154508579093132040066557521300435007371252129587353853562810172005490707996487224780899754951435952485872193804623387135164374730513543511911622586571021604198907885799109419535300489279776021893518879350458438044217682884476281107338130296498771896141588285319203126432324358434112232921343797891324921161837235900336466900491640906594828283679274620421105990123744373053927579534463176674287257914911374498444394603212550712239223863717685939659153300349824768263110038661347469728476303026251854411431085084087138828305757641451763479727955820930986986240096242281159696455759870156952127693578199431993752311291080135173836391437303662402235889515110003807305785604891227304173022647082014499488541994261375707923224898637920342312042882846259717183335265018624247373161406684971062883869270479186747974968452979378772975628899694829537310544050821213217351289797468539687121280291232747450357103301259117376759673825041074137833508291604142582982577000805867954205381773828443327455990339008458497117999814774963629684238457801628065423496859185826191890894059585808712041121104308621886921806972839200235518060343895109604610077090004900239872980357204896613504349915973415857622828934614401143782177725282735738928902034415968202449574386005033020685604384295334487940928821400832579845898056309202684683881637506570799049204966989326860137898359964348832609824195618269327536913580240531458640316552776796172679546936513211016979734169377342012338013695241027208380343679880697210989306137165812604833776950007815134051019206758298338834471335143038430455969003165476210755127650833192027778501118046678801235049826744619883153081694975996648912545943315458965474692113113847797388197659850004036796451169436673128964648297323241730480810295291359805864289091423851100475496411454085943954744145668473405738892708461470719707033849136559485529002437665164409929423169895359920959908685487044813863875012638847167095883796588425397671960942403878446991351089949047096863139651387836000280299007617502153591782530845489858851012012480323225388008683942514017361740846305001149148591172993203055302902283794865974419712545062956330435809101105070545830364242392084308909546464174701969954891498455398530832818388763092066615621960239631714982060255576089494636871559388265759377902700860679462840019696287383488131993103363722404575194811299522246724492268619007081750466661496838092633067739408448634424287946341570333453594715876880699240873151264947311484628588235045075207357698922227292490772659863344864279802711972614232362194139429011984313808489027951637779749557659461657572128346781767491306696754185484163504573849269380534112988913949101407608802628468960425268163067468971777524515685603721462580902713005063434114163972337855960907335161903845852029792572979443906255854040472211335945041852871254691086318763392488457636164636584195621416879191421520457651868899955964568173553022613284344034875734877804782444552580884215035117014414479994094646944698081776263978567859797733033537262682555920284770669446391837113433066978638091539032800580277769004141909922346153188976345264801574777520297412577825073839914380717207694860611758979550512476101038211554204247628655024023948774388584412162192609516502033090236568961988025709895016687956016554836273318809730577967435304155801195531775314662216713387885677399756282729687767572877554512192967541603326558335726635274763289134776460426862034368546002871541445172073728368820111989267484600685140547361555600155908794021461504866685853073134698154937649495003018690512497703498307301329333466350760846714160252503881270959584225291101401903238236769707869694421444991784733515987743538940665472398816357310101330113175831443246897451651967984714699199362763421220121236669311297528182799649830712762888943773506388988013819926972924367968365646493319162947797736997983431539827748940316747531907392961895637723349773129040425588089662838165106129212894484125685116452918939968301065926961254794158512667675221679726793611952411651383180303143681025830120516152957056594454346445025495453522975092067943548553308306487555395610598986503036296282894615693181782892881706325792835475089594676562240782198136315262812368189930176097975222768273530516098847174898357507693565848849853830985526352732361286175577329281562214125933889769483905845465478906569102798180090152089489172881311791481774487787056821980426885772147815350185233024550994928869487001448140093288032493001797300523006405917706389577600846698490157537362942461986592141090897468052582076514783252536718920967284805321999581837538594165006334299067686677016781669745201955820849697390906480817298967273814854523927540373916464968012517483127317243734382924991913979686180582021680763305391014982734903819348011474360655059334886088879674756542488206814725200730514056298450648388936670182087167365425532892090099543704029637904219281399828706389002947615568746376148758092387799434298305758664524118198983947155698407094854782918309833621964984247933579637333342111252697320257025481687374530881590626446370475835417195764027939716504271292291169627980590913992339594320212711562904422417139596810166712090194554543443589821049974055139167585221810059634243346946841846466909175046424289944433205695070130593008656378504331393579805801288241480568741000445368021031825421583329837562349607542487002357158281887469372653206285570796320596285761256906981460471725259456934443742584394738901391361758515305971763809083899093725306375725411322178473115219404445224541627090954556690527402376624541458519131649385303582740776855884218463919799382857120604815178440589532899781891554038613242590226653001061696272506236281199398305213307052014491690654552422915238256192588831516138675653672610297026615879820072074787926070955940863178540921462933972808335320329572186682880016871563334114443480051198968882276078286307184740960172257671886129659550643795376246498077924125968361951227186408343002439603868566739140300164889148198642444975188666767373106950642472389534446342081745249617852221094808534962262011595056415774594135652582698454721531712120925439669821581412091296239967617433688564132642188436789465517677467668152515271151112757924130653561315231876067914677990733829370986847456485485828716203581559250608833045001712802676190883739051575782549620195281304618554078715415423944583825807923496884314129628691430272085512408855258525653274849319823362141336692153290303150199383744975730931586361345496995352950460650820187060808831318967685789730999836154869403665681139443472154277613357196567081405625469293830199092391161652682723377198281248718405196666508402773879012963169475869866663578322816257444536754818816325671420521776497935645357588377855784114927095445668443361343236633202063426320412745200470140735951993652593161812184094916148869746540832815364700816618336025168862896422831600061549954303309811050192660350792965301629089450147191536523973515995959186339663970941317494352902607413551746147819961764435151778418509184704595217059944593655249731687092136121941042136024920919194800652193037026287255594731207571448289823464268985755486638075343044632223707102892475852213429113906601807324337033898172979377112240402492124008624809460841202732853398071324472271372495047109493998817529178809542160468198772749660550509902072656559608891401464565420807618085274881993212690471763554271320689887917871492623010449845101758574621490564589758018931023797206021244336171010664279381112500039415725452831065328919644728201416858533516994834277152657880339927357334416749538515233973645384526635282297213440950900832997465949095968308319823523942806864368633136234050061990567104640730669670704667237018271651559815549984956552898064572621483225174163474589913120698352269464897183580100243311214035426795373273118830676255621839263400942439529168216849713334665761223720882993454625611559074792296684981472118768611408440926394275643900458210776783758296032157723689062234613674323515604455308212754361643642054958616478839059315596693846004811157538747861355263088480567042683069344554401315661540431663289454811216247799483653545200960224405248913045218154614121943525324047972464869614389623010300400783343736493894959160626125991431178166118303694844976367701807215993410217862245994212353421112319702351373052864297251646252385414236557376572096950800514528737402989594354544365257346814518633694572538847982017992086054121749165121968013885824656474671495244934311949561741382192001390146998752561922245983044634479695267612459178721314542579057188599491690647811569651974686790331772793295756250753442854348556961941054041870209056827470224120665090264623693519573499385858625503106071808353891440374190747883948706376689198196250736173334751192949338283200266192007948090027000876673237374383006826608424017658382035959549882326563018968220957113154450768301317174008599317012970135577565581752748758912694404939153891076304934119458978570892731351385459199657641504947762833036099058422597311576028977746536645582463693232130372069150039506705079707671260900710089141598253752925805371315991459422115767157140792440265617536581606475279554283084155651148913597283310507130705076428256553788680447998251639934120659853316293668331007287132616087180618981941383533012075237480352246027105092890819585409474172189542067438450169808047320976247889673328210636603674459088204087707868010718926940493666054550774577149762266766190485131191464400245866503503365014429344515755777401531196711867369506076102215097708747259753412604173680680263398379389523405061895178602682022135524010349408334025773920139090709867486259092769635746078853357158625768022755149828742708811432123341794552281783253466154046710368590558742617498400159035077375413564524372048640785631017380023138037011438430906282034084470081157236912673902624999905139292442420351412740950590262217321305771628600279957144554690388878429299772552123231687221401421438909816994361256313841746779294754740440591332692152510889220838257539277543209911118640240465972490931739576563397183119680407433487050255895041923054470222628536592776923588794835928481572234778223766520761681112939314089788912503117578595242899854827095819157973386840002356447023738750601759260305871839427310570385930016200671489945258095732794007813636932620181026575844637908821850210606371579827335272924592153677495017783523671295628645840734230338524052394932942089649852456756294466537729148972277325843842218885799328992832998641329585547526664193353665152469463972940206358059706591713787245073735835052946689604943053599479492932979594938478593572840160370294902769462253675479417654560555675531928034158639567042292824700439301110738120832780568412967330793332119796832875706071849631566965473310599605101308712977802417899332842208982636432205943981876470430081885580210281891018192519210898910288728988214892500888422979351668803582099625242042507481677091573560349668468800275529593929720339874673999879905538460912548008931476828628370830770252748710180004254209629483577037099998643397936580096126429326875903673841582905414287920585495425693060622513582465562142427046751974477835254584246161746530427166320440541771709747902272626279805251544459680296040953283442341314775283892740799489222602814511094352244092048883916569360411107363379256877157022636935159777769534579682553322894436296423401818199163363629620269877708688729039716946763007177783608924532308603400745510522121488649110415977245525365588674873489234127388465261371887560196346126758881532161413590426221841279804267113508851960122986308383361125901747392662867811711199462923978366387008687480399999628446636587217106610806570366931173271203821300042187513070074834262506414671658215582726254399591372241567615585834960103052997478054522021004980774170193451688263661449336380008401889239587601149017970081968198245130435436614993162896873399420887393488008110577681441006771094739580408193329142611397624884864088433036007710658673172902637933335149031921593483438343965838069233325199193419739732743502968520344963279936847564714000753265646266063708094184429856080150992559472969082713813378478996754488110072655567504061420573523274104597099892901542429852423323483854772718915160758328648728507802186716157921725647151765335273743853016308235748641197063453537204748869780749919434715636431212327380570630965231184638050245535170947139609068512224172618127141059670367851585249824786525880014702386488619219307102454853410617232456716033831004632470699321744013018817356418789520578292256389120214884358317889123070951361500320785860991917539596357283639665430526427421173238869846431779538255195636699531761273692418475217842004471551709987553225734253926454623654533241184161495039868318736509660098426236712121857330894612767488160538346322211744859350287216614881715382220075631421047937566162213792988538308370916585627151491834719935214894099673841324556088048929784849987787227241279612535213239203794655922867325187402594682968992563039967197516532377038800191706972959038847339205284262474314117957185336628781373493765801438073762049792412536956747451080242559888529630985702390293466437722603051053164510418279917767197763983941937173675539604356593870565474917514635541400135816151854509336637991602851102951889014333663914152907494362405884508839932101889535304541568494054410615402471852558201104467017373796590738709442513420045316515222496211352644245002626542439610414662910593743083844750633416561751531434972413284625337488810294975041181696061063410400411442772273305805573431335778487533935601429446287588561765527735537425513101315083965775211942855429132973880235557485028590375462993522335449006704020914208875819226124086542678216070441347680430474575326171298731313565485440202380788142977395802022012740227132581251207686727276032621041033948053811583541167483249511305716163041850158043578699624093702690248052370586650184233420077905263178471268662372537680760305610916720908649713017149639673364993767000285932885005073631192114075795697829071247932804219542277031394343209880686185040427539806442935583605587208358831727130807864276196262527861406358271895723891812948570157773159967021651313534348376032107903350352843749555008642068954747590449153507965518822451514111928711481411788045789533412455680967185440865674045282073142142181509636447234485142540195068818602210166126830442244064168057407933072060105160550321483351884858998836697680339775110306570124894844370099698607290871010572137624242431651141997627059838914089682329875786122669295570730287257104586695716298679202054140133389519872778318711261405750021097186108509591843133835548618335918621028718217759439487131051047685242532262575998936287803280243304062702874373536938925154573781865294264955706646319374351333755503530204292971062611584644363226076001551908384377711973067866861664545090500755643737141378401529957376527033263763732273112716285640336180819674783949338047501475270360886814421172103102323062417461818030671480473596391375208199854915619718794208200336019066247633802523027777609950892055820450527709393272654375146098194734627127590364925657593278758853597885013902076162447503335175922780720633847220280584411738972626149044849427229302368891385854768916569460539782409536523089971209924004355397733785348440205952279819206979710624306723912010043264748330875249787972339411942591860578534319219765305711271584098013527199506491950200493111586726784747622672479419297173566446525438542438763849395033500316980841022409482745866265064429402973697852685120469037741228763765483974242378807533752028005357235957837572920766899594147757608570292279889501958271007106996745951417996294086472438877658240252757660058355324157791501332400650037581411276417145552213200455297661308559066377873631369275249098971819414237689843811018915382827749879854476315251327506228229449137416291528514879611821553616523922200123064490967862442796539999460394315708912062446288977002515512003841001076136099346473403755465240068793863860872069149507084590881667613537380304093404174004095197100357638730617741669845537263183464148030138213664295097475566598929963115391976250921753012154902890452123283299272269204308152282839963027576248179987687358637201429946770147326945115615140437797397541003186777538239662323748261654449576116886738922959658633919804217310672011168584495682034613607521064668066870671316317306103521901914705826295778591376608107679029318081341579300229068612309750113602644231594846514725680038231071666035531133497296235970111944185747560642768830930739066935334016849222263707961783594906884083314304216701661939547332141931979807963862069200702063205313640873623565701114724287356460764714421265474602137354096181251460572675560825238096926653495678974961539279846227286521822980065581848759330522407727116346116322869944303293913255008560560355685816601641718135969342151740654147866150870689408395336668722074417516559876717366615466678272852645298830776157964753493883900357741202715045740529355165967692564598415483575394102436614707651589509787838713504710667513258926812167556596258452867283640287733017275010095562337172857185300601719265821066347560137294518372903185795202842468784831186142393378243054427145646061297242468264922332544405058577785327421213866413053163032495611266362225556713119788997675789491378613092368953401463481442797219423273859675112294221344360720818307416074051159522138613297981804381550249908619955868791047966811579302208644943777272114010079758807388800274185896939815123568923183981947779349261328443211102168435708655868067271792215307215094799819608686753167787989883440831382327357551242303002118688709115623789832459912487466124177553142542269926213015023750403998496800389744774234737671522391244776000141601793334592834612550248125234275236783290181920710473221810934927506344376203035652540070223462573591015440745835847179571849367265010740708474050732799187579404469083273738928855116598959475839681079773017105353793216394152026090250663287396487215732026203409822636116635650585644551808298638051351947393985774326373059873278602722668334623007469540528568337263673371640588598358074134264106764859249875542085358192666838596091797622858383172514078270012087668244867659422505186262894174897244827548399969634959497238648475999569978240424500956840423582748850095675421997855863339915960084700698735772656236658486433506637884129477801561700843562219124794354396117221565344066800520020110369325152299852439738338270112128035036906928460523961044144650254902474545830269284723523804139044785900870253243367689196087656008280357572514585164235854511722696105238792471081389034127593260131606696679109519073207837997205037977393739602696608108211170486382564497577208743870980783340519950587837614008511366692862398423322874412861888561877944653188256417012875633243001909224527203201559470628703196089390986895050163952069392920296725077028838343650172907943785307825873751268507386973382773848316820429723828583862226622724390059080791242886916041285180771941684429663203519820701313474028671480658067484708005127712154148097972035661775850544551392789933842158958115507771384848276448520688660383572185449765886017019111330766364107797787094181846678826271637394318523566265096254211001200697721623729983684722380246475934081559115686220248369182538209093213243206100480104803374954246971424926268401713871738693630118717584827062740008795637918500555102574313720315398047985013352462512963655324229677443675899520599936557989892000026151931302456100236354152169086499759633392657661225727813141338528110229656111827267427671474945338455866021732168529558988717104435892159025355190935890757632848651276500995650224582143999041335769494812851182044331304001082669605638330865799158796090608011557620130732479208728726876665018091352907040511337995303206495323496041591408516973346729318989674628144593520327547324310679398758256602204763975221083666954747042352286520351019034049693869217966710811662322547138689409425079285524813907967382951263166599074291206512112402085774257229364945990767087070787322271718024077033027630021204417403939985713563376454569417342184866531199167458706708840153707723400504264897262617641331607479976952673437108572292806029325590871155370079739869593049017506654105946266087738911639232196816377454434063271855900295634555205801427976636324082610512848663296914063126248061422402383621420584768476558316570961138537472558115849014868172708625547024894328274570481400009903744125353753643166740387009391889133387824416439644377768736413345486786921422381217025061686942150194017773554000064414704241476142435341050436594529274061613037567312761712979049304077129533315961633458490038242750356181225077742187489617354274104822986850159038377559530546280780545655730501027932714547693836716366969262349379103504847510971206586896276533610842510002043253586421768365067984452313232600723728828131021430575017316192960372936077025712719706755736747954923254405828772118093479294248731254724126868168706822583852331163530724718559690674812456561091896765698320055080646840783230106829719013502343316372935899530409489374896433245657467763640904423207277075679279732028789903962021271818668010869088157980283199452953173456145792110040793490880782986731709425063128227851416040792991065775262889541824093545193760524811413645055631732771841262172405549812168121285732051210847416104924338598691457852338807732912509462384497440303345860093447948355375882225297653210270380974392971373585423678844739652224703458246415261713006295431966666212431518873301377376480176079862339548497930993911028039948679020186097755722480394964023430713870278911945405588652014012694496507735695611547248655854445691461916002609996261324478189375119509155938995308536502921284190792905040886060581395552352341903950892291313668550076705024003377716139242735843613345273307938788725934565070701737079504336733115869785082876874422819572525264572244268439113773809578379125564612239531621143269496072350983227101870052373985702962539553047179341120530059391620535711820294764192018908967870232917557068978581138122291878584336626039291436902145742431773306303400276786006963016404324020498152950474726950378640752671828659651720032421532561858459988570156910134021756463600847017535870036249135218797881284028097328421232194389777458033536692809865817601733711517363461767851590517804656659930179086791448091328911908532081476970923922768490338467951961488175969081610782295861492155429650123431409608530208671015225559890745120859322032005192094527680339326949400586527732515717651327537499232195095472673243741803908021063191442410548928752221233253663054446102226162268200539049936021766347991128043247766092709672787998295082000309995768863549716187052385015367706230743754745583715852257143252903051472477075344737191934380397729333405136888702924306091367216189906653106432899774385750624058834745906857824177662003696230304106930600846192993688995458343739460312354478318468552104488251196395543857689025367623479241868507276522995716159867635221729276620846703237084067632004247886927548695643723789702635806293261266663318968348079883857453706569240304625962315820155681998682553207135170006675370547488988027281633255847119007401450949774900729377868508516109178125974593769139103800680068977084696196963345637148538853230512177125628520564452445379922883981360241399308946959209647780969416011726836132277926304868232753363238977708950026455707732390308182092760101479419652723731569184966805636720353934223369201878388935640240759770876373139299514610668036282825602545723134513286959066860829039929648856557629024642507085091990752419879686006844907223545930226498218369766206833228453658840805234070288884736589712705042174561036469089079320182351735210812975483571487112959456426573077886307956596543318132530661382122721311836764641405711686144170434019527161517271747529768289284895076108855821737863120460907660809034277867188847230104997619012049357617912938666244515134848930711149341865159567531432442786706362116992807209299282632800150859922169136596500489181976811980150135380730344578697736260200832821175638015439555363677100327259709079385111099226787656381473269434093813412942845199144162668746062504338941553284711954840889109965367854845573664628167538842661254957462345382587716328064516285401991772240767581929122748977619961709892699770589022767007661410270632554189844053249808127998176041132103385527991853370362827770174750182183089905870139106678520972245441946925650112288681773873794662955060429075940244828280298816743606548953532737789495904486331120933217680040850879727274307531569153057409861730328950916373322410132834319769280384832233895576055706569468835143073671060533245424969245397293833554840257450849881483479109239664663251995129469382638990796933853084047692957842854018225838023258214327568757927385797282002530201624093064564039922440366687742802259806545580462513931331461404890903112062276273364097340392561808101724519218850394194311580020925437606292489840938719292660364268212203406095316841429171930475493051496420987677412883655315549045791214867270318480269455225849175529528708933352824074299429497933851308678199265032412510683905298329542938947984315828113736418054514748467954653830884310715347382738240621048985896207665060802757830952541204210736421879432044189995812555660717966646637672209963035315629495469216772783932580328500763257762468384340869087469208673410119134834836216496465161517704261706165400504123398337475653236170755456053117975013029103838400090132022122541073766581603490681385817026528032938918926090701722150713032324828056786610933570871249983036943115278257510769123009928961620868453643246206115857202022353054925845271154794329780161088432728366007099259232232313487165377450897675702670909242304342554850396047479295736171164594920913919980588714048767668353160094211630360234227607670103550799264568386450005883678314363777928598801516327067911620783336109952643147964376617417820462011617448996218466747563294819130724983243793331982396989679470122142811131121640813037567776653215777963423201958105018716577405583546623661345394351733200106822870291229181819527823019464168049109538245088872424631427240023291037058325210011317402587137634164307416970514376875330316146996277972998423667552369966937996623111843851179496498474136129866387296961435309546581562632816157627187524941300466628198768493113551603286073985045973021445916619994641960937677284259431113397391058659949020624273664214458547307059535148064217491711265571613678794188632387210715287950091624000820665944312596597244998496817884654935380936627386476439197493437051029839087050516697598464993664323574671085883123320715316886600152845283332020642570603118212038958409656263887593298302520063386309585643946980005386266820098211602964678363363180888016224230804726135795168937596397846811210276551747817255212538584207893996511038773348635953582491685597124264544575817222310737406574981761915084393141788418247508371027266644331203016650788769116349953878149596542237532496415316758563018317769895532581952197338956334438229856815067224780359536581668011961790380432142384632851930077150291941971615526490768784715364068261943780151401856342705324635390564283806453864105485829302799956869444167868105025621295505315453739014181707449252314660027622868902229990896753909561134908982489821290122671608187598193433983980984357033845754489876335860196671613989030228601356476766062876557869646512233793988322331756326858218784716718758766523693477107183547884826271089754164745063182243290537581259155063367953319407507753211054735477494640304405416785104108075763418502792154357961121630727122474699250582744877075140346231171990257954125006769791229727957186748659389384525129458792103939317720992265393549846911396191483478318470572819155192019030471477985320802386951803448482618131878452010423651357659780953329609021318735323367787572806489133540907168424796689039127016858272277491789250002053964337664872777993095075712147934717691325341773595380135536591208631194771561298241890944348847895043061666114793653997579044330606470216701004296046857020745919639591825798996851820411965141046219400580074721365277112959321734232173131328611891407017658473250085547234562169534314137528816783720227105650689347816737080406272980179238588691900756138767616240709199062463247212410540002577965606393652598016182366175816979833760529199577319257215259205910555418321906684410546979595137463475579842472633409750259752400294715646497197059134203352826161111466911240868612195484138987354005092492922832513258037705204807599524648420346414492182679674245160180589759680108216131933697944298095563695319161787339604840131294869445869660254731787712239112064529307967530701169403820972711529367326160346509334963539256270501050859680135400485799374343424815855981053555184669458453074157573902269885600342640604976078005435841143592724204934786342855225715322413160627942593827671902576816894550649939408424088455634077042068852714910731235823880523105408874170947110507317405808360985986980491444758042606298670830330068542919718234992831750051301946445935485952883125703235111390148607961730279326574838212962735652167950420021573748820975725541152503262216893197719742064782928904296709012014003489628536426444174268421620856345501210707637735713800745923299713765401885120316978915263100737162771090266522746197685015362984819189932853384812397651921841759600076110928293994805557865248147709050633426534884539918312623353444773564486795261568347525873966508552391033497613519702404207334665864108683741059430158577237507314088680762326432003829734391224098934803029374735188602887036981673317351082913825430502325868153408385431813844401047950685625187293352169004401859337033102829687791731797912957416467621369873983586113472975462588377104550456916548192634225565394902798617209509373837375583045671441376253976130541215757667125869480851585668372709624114807736472045988766215884176283621583777105352342743915946425818747858873526048501418720460311799385017878307608285229571125028857980700186009538093534459348927535042744439220137093110216526164127171962722883980694908838602052453232874639106445107286109148703245065601441983160472388234455860778551385316968942972681527769576037525196236374526470864306771626057601260594299483793346151195329187145575955173254355148892873905155308730203401998864689074794105252407526783933931636522458850241300585553820675633563111532825979846548047952483342919416966276309916641123067057555480045029182230469238646042813385349042112828754754758061284794228605682168460785037086527696520020006991876598112993469539315612669442979328063844034280978690859016167962835284168034698471589632888267287145419727258220609066184976387423921766900670908197857998861911265148556331527722011179639738516206226283897499464658036829300348352031555976908888813147458809287805356739686876778242840887497308078536070345356319322664788603274602197874764290635424769384582779001756665226596528567123142275809492584169277627615844799113771039440386747919710145442353507808962467305817002105939039403371197903502889720553564334880277270672358932246888070403565884329692389328361527649342079298588632134495343286776309299080854364805081701480286806245779466933347671200317147390991490827589471569151505182831277987396461654000170495169232216973832808677477118510156782663099415254949344171268002643456965995298769231086251361812696754083574250478274590894950890805930285296076172202259278058525462991004730302302193751062977967068788719767643795608139595510382359357616326920511363958421132480747926436255853493687330357514411054855730989359868366589684633396450712209998581948353870556260376443844753685561083016869859728515875622522219980430133212912514780153727140094118304861800754564017567284697115977151605948354281670041598728926135776535264195711958286342368026581065726080138563971956335888807654246031516546171706933358523321312374123997154224702823423136921278053476277040040235988339987051054961624174766218934842471681360303965286759816175728310812978704817712178488165954378575826026628827648811410081425397330135721049095143625945447295852171887206976543969432537055034338864366601767336520201843110812437835297497780979405856875214414065609359978670686514589958904379756980693466528156423687105949866999799442032597133162538515243684723428276887094775773223352645787621706603915378704701281215836952796288423326931211887025705226658255039030902068347275454168409544731744115017902776816066423851797938507983035706014405566226499534179932929165211321846766841768179990503733794896306377372536299163569046692264043674232292672848781635401867084487801757246002992667852754825045691403876557088769538177699696756582830689646604110421926610550975143557979867736951048660667046284116702164284455537807576002388064055751925415384161221028349090333756417636874843758434010253598523627051630267177952099491585405959446797161007530730627501213645177020500078696345789496746709997313957208257187581418253363101832195308090163999697172354644053740497926099450311510645933090557098085453196774170398446906131893971854195695438962191059768193503853906268388074680596068732351838112804974725204889745083974948855872049307399695993173704017785641356909905893517898673553058380462333173729760771646153537521554466132495627738063642413267800196173926953644664441201084681069171852608397154813849809183039786869940636600820234672220346369645742571944444358622512431308164257799643633663254594248590042948221239438511023441883544451330022694341261241675518548156646228684901780732148300942931411325509977818277346616796685227693542368088921776783102464587883511414701009507879590997658935359030510912628096566843990807157814181811956368191372609899377472045269317647120028806701351449013446195060952215631364223035057665353940282724644842647697569104441779775379049935726551764217194722389377735298182178778263738202501902346868886931095834359385631008043892425304681533990324929940199133355977034972717184855289286478178628274357469945959224294893212142995829089638744994906214621556429274075149541611768852087554384653175842395434502222932477854633444408060726510144056236571966644731574030439020383601880114311291091282943412829369159619722496911366516997696573466055961613741900146339313526130936263421706783871442000225386773203813187682958040434544468826890659956002405372646109601649145029666779183653452279386261500333979080712824515773158726094191205411234714373546093259446542196240090610316534567241666648905768280559303671631266346610111928710754191646237901545036094344875889301382692363761232989452947947290643940221103351296370586141578273540865574241247845229384074906736727571719965190799023226374480766323854933041728376630239812566644801366587355575420484917338807753137238364815950473928818711844011147155804175636840328279229977940824462214176008040793454628095976119551390008238052376585345248464787468888111941628888800213221143708058911467279861828560130196928255975165365036683951823518287505647675712726670460915910343799358471980975178659936326589082815185376548183682720895877226672975011239214857377566470253436386989594736943004046358836778262907278186000339309263569022249646697574218616092318814667925779138377918209844356496887384797965134325659350847088586095434637018362117347113671602896407722617055240905399929734827870732648069038220198916729009641729381898290506142400730993259630058911192713773460242796878499313637190196865473353496537878628550949142887768049380017199899140991734235081840531434436745009719996542415320135324447958451253269873159748329251532282127094856956194379876411543091870727907986517412481186493037728236948098217311465241690393503835765737716706861790360458264522815029968582425775768531049382322494522547919401407090004092509812056915725580733252101794741290440016535613013199795883602460126412122361012757483818142508775714956477030668687752700834001893078734828471899439340491762778206064402588451929570752281716731666021223028370323546040108064039646922107709020412264456908820687163357198214740942360191863290424055433277083705977473337444359695983377631852012592482433291320748069632603674941602344536817625438121828649244712827045600052315383045184763216311483934564261574700595660146966924461315425925201973582322511459459648985306074716589522166746542281290658196956961049792236886587276309856596964761157328286936541232975957709094080423420163052049384488957677522240515430816756289052388459152716103335837386220473080523145563349742554479351730569815870125086266763692563415990331487141295069387749071655152121623816536991994874744193132888644530134834417147978906068062799359874303363798572751448856493298491673772056784923244955783950721216057233474390044861403886377868284263827423302048265884036224614445313029823660022879680243407816664513111827758946322447176692014360162807996994409613646287544144384073763258310995193180840829500757577455732812617928210025583977713558449539915169319321219104576758433171544895693831000829718249069733229812227167105538205766554529143304781670308176663810999750959289542158729975957822608732943299439834634215277550140417557369284785894934313607077025784940986246821814327077309242053583470171824816130241913520157131680730663098363559239571817467555726461592398189859657949343149366882392098561586762047466860898875320291922189565937166730835365650452000235248449254710348156848305079995279939367770720141321349062089577036798596296014799294115899435803378643337915116378237593664951665527195806231807380618944192800448646356388192533373523648300726137985909377599789370662069163025893700023501334219410081052876858356483652579065048610254014611230236342853261275561505482603368590431963121950437780134645720438154298763994791687001206806600959800966018998080325851896369672284354487624065346514578092690385330995550282466220575585414754824590553351253053182165270776032809767802429318939208842764901154148410425203792747666674448364984977245914216607592117804190336997830057545684942907364394623269807857886714179559343564500424021427701571166631000874864447876309116034817324240819863679403890622137684125511600432799851537983620885106192109398519917266489933573454811488556069727476450940757068647042808582596115078955520967443578772124831658007875862509299808802488554934382719047026279591561294938847659456074467802982530686460370195481830708070388665408945016831070306440973117693698764524746877676795148745845990093147106402554462838506178633909032534225494782639852235500543715831830620937291459864585956946080570865109966980297996541383612437569311342240872519360533153373945906580585240800666950539933121483589581169340157721370507476481003283847248436515299287563323791143634470627694669348320312218281280644489792358641364245684734704855569087017200843530167822967413444694183301307669853848090074522013493883762089690383215028619021933336785365733001840302458441122734792287899174735132518592887409893797404277046555000414736403819373375777354692847493686464128258968981521342912238809952100999711918139738547993035203228991142513255058345696888515739338581969976022568746561798456542947860268234454357655670151412859550740994426068758076143859743146634930923724213946918233324460433437735453470236123234746770143456399192867750321655967398881701321356797067030952170297070325349176958333051260741535629854115291170352807144971163541219279739479435264838312182875426088601489617826052479220951871325834721680206270838669320640243347679083578069885871236278288654378682157407453239898691283850086629237659768144566475185954690282303979141641545198150070908376040533989148418105367118776006324324237331072783667810541770584748672544285847092585109482552851855555151215516302038490091526003444725192929645831136690402113845708138667742147921578418680615585579811669620509104467648112015249425077394742598492869685211311177663887958339342544024877867523155322697345813245035802040668529182382038054408869565915171578334643930475668455442296397709504959378666393940424880671539854529857293629766518253434989640191259620326028547945034795786022001470122041804137577400218331129796062200072925144163201916935074616434200820508775094836590126364390500891741492420698779425504214938901931241892493140299067197961532511497968682182965810086504059495750405904059177115076121620204962974810397023387385490477067508871508214741204635357053249071062562520474956770505893439675855863139381041662802062359191118913018716542047171609135509846764880940448189719784954315168761828145637321462541112003287261255877525615628348772513229624508002568322011369507638371427010134904097755593261167075363305743223261650133949203116634655710364519150831745758374584326279817081016968623703029486323720648772587175229184272818128589998841975943454725594688276097278160735823046094571037123697381810014297007905374162621474979452342021304394974675606975285808321069926992106420646019089691570363583767275421628886405939969587524371449071859237624445662983159121809667741680797890055204124482755050214012216304704978493114189142582107119412925671270621714985117250119784699126374448443384881873427220418948052448951435072868396472629018926601562120804999228643560843895044479532292166961868380429583387300350718943832508621053083850535520140200924166604306461327667110538566058377463729585138167304294415667511736949022830627257104883653357806469571785124143512246077927044155562210933305660340916277209428703790656570872379967443836236354852814281350168652196159217047511557137458776144173433528135972055478962277709347165346835623953670699838444113672200388684097992332747575092994826086242258653393671090207566526193779573970378854216823595401784145303175623228837700911872645556612182271906106462255732067804640118872862713987760193242970820968464831238832691258098426464791826607989973654212616628397230882009983998646541489389865722247778280831565462411925868307477074715088998291506198074089868485342273620102082477441589104349014360259776132621182926516265576675717123026062398106929437868227626760272159704070676729246691215840094855310419167832256443807270818627407178340986816176483410208792888867043764156779339602507954828234499958365591120544588536294301953487163920355072927378806468824801457776315947887470216241179022364504926572007457389194661318521667021036080088065104909037626913179080854379928871089472227976715783273045295476426038409309461144169713311009990012986600537724754306068941971700630117830285729073324805553268570336516773244268296875929160248630103469906550971326633882780107343754319038200332870331293789674327892064553974369598747188853500313231623212623641980110122855875845677025608500539859408976930715237611418414599330245863740134971114532308003404705855401250159386571181150050832379083324884751136569995286156208302078413576153741845277861595239947231189704074254051838987195230397252722689162863146961810241542448985079056823728875215160383137498948058411158663188852918762905134255624783909248003428786096811158242716724696816319502949858024471199750011652393821318795676508030321261923896021416695446634019103317649238028313990128314757417975439852468672954151204718998441869065832818957648139138254585002340326341788471554277188864235176182369548633991848841718790139300382872857485902464385067459304991388897550210103247714840545304667406047871202217368627487167269214393334552338225688052920027335218456005937927795599578743821627234045167844418191975656423433706417729746404837791734584493991259835307547824573585812695424404466651646910053110372477515136774794465608422483070175376479077346451108718890870729737909848058408801073448113074732004798729084391862507970527765418009609359386038197183216196883942601129741040359991065310331097443060107792869150288932280782530332009012497620914356954932818707629689856226308083136320623550817814317368919762052339098237898137030004794576758466262301535804894573828047321831054651285987178520841064778154658631169421451700540350734797762321546372260347609810545935999584603995250154241872907749640978770319798053563037451775030280149240635316120758086410224728453205927566484157147884030088305577221264200131154599577867324238364292331209802145592421945225245457760508465165619634101951237512203105662471009777010164443028156348985420337039850678364937588426886195517389518211908521693225249819051297398479096753923885013555427004120474750923815087354759521619077965287926526006150374427207993507618955529927055431289972362369137681386132561014679887130865195666260920581215123963956005572939012372542503726174736603768919499607015185263552307346042833640500370501267158928475131485921440573428890138578810637220490136095349341434258891887124374186820043320425551456910562882329455849622789312431302571444677985941087960682453141966302409436790198506155587240666166689802072452173054838227603456851437566106519257780700701761782718243555898833281249137376733439119635838106719821144518415420949576551050434395193581879451958837378113142722004248843609947104128733118141099077738120323693521284901732135356535900070989373837567728256344182758668006669096010034844176428394827850804395365563247267193892467978316535880449997483993225359978203940842384755632927127955191032919683814860044264841118135199694663128965896743662779203182196610425293390286780962777152185731486750019045914288873056029646225120249332073768277357731409258425972314783328523806201596798793822577493371867606448662742495503942118537400486208606011458961691641835106650775687559666183848841455977440962444223114618768022645249529528732094884188400668901055053549403834564372527877911889417555147971974330701677047347718521387147775869026337369597029078619354476371097282511864084470792905029990062710191568511180758958160558427679400420112235841256516544713508187672370024831425672625174205515859862226793458890853576291193039342839629704891834401194859450689748356953381419176298001732575807001356834959856959561812663776038292790673146819567626918529166102706387988974034519647270276101391709553500300475790907372957993145507830071932088735182006397596527549826688809555959757877091858023271071824944467681326996121429966424709051995332427478120635711145040488677076951175645483946106553313710500561080672638762834180317470256194547204163877166770839836747149886124546393703564622547947335826844727172327263591008603667525837671826680705849684743025924774411496390009026898828601900666960784516123230981331233957659354199354240851413531780869019492970171382234694017253027892297775131266720798677362312806063570807342911318970074728381347974091367754355314243694946529346687576603357440963185099546790245601127171558964640642757513665605633989851264560307403749821494219053122456508204845933325930481700968295444583971705422425508326165365734184527972175463065966206046858717881581710122745217399953206552608261142423566114960690514427947029661451463657912795315698647155721341517389774553738252481239328203829652672023571305311283136765648035064230898960474701914061030824450544500534435596148749380965579527059541453614780063886407046328320123568840668876606237802740487329942057146393831099827081238458231711753498172693015742037061250677900449017396794393215896825372502144659719744856495545424129592777285473266424458560940034424549823829866018611032561280225280480056648591840844076928332688883224455929315178401873850756068472618707978529748588930015920437154436586212538650765086380527866706482456883033140240760285406396214381866384226178729986727126846587009694049293469217645023705746874750774639063952143372021298019074004831155054698399128818254274915447316147799793668865340335853317239356653976727715217658503755332876654026048884526676654492053267028781561058531006104499245933446283387015085070810972450064566714730232523528464116010258027821087659089567426763882858424025880165452168763210967549051265017786263425727194959943005997156879583242185498204849032702504304950199321705203993729422659379920691569771106696282352634554026439486559868183678201315212203167402314550809072606511052311766029098266227506687902736466089401664239812030091659888764699565472243136876087693839803675768950000137504641380113959750912244932057932264113851115847283385871677429263056864126005536434229385957482420621799593233883376411263901582281930225050413541798350673029795587633030393853250456652509729093189134594996745987060129326438631727289557243776777656339700371106742267174800757575316398823012782576281403091329966322449271483458073471568785416532629168530336012686703985279791331281325991388370801374249732634953762218258410187794186680016345467400016015123517722481070792629484753916652705030359912351679234113302932972366716386294564805319642832537697822394814356353396710689807033754543716214624080566459126822731155375561685992926175790604840335055777385046351318718853049712181649622732660899612223576788855854720066288974498149546282684365891675311976589408215093563705792445849608043023098756724523298734900496417664167592675850767058906613348066965509165258500603708290214781688026895856419227804704041783515124800261307859130931141373281896340382677122389313160691789486501758792745252270213761242371319624934005319209325764013696532809562979248098357884349910855804630304458858236639343258648290706033600296203860769613814623089855389509288181629946207587497306668295117624865432887334936371438096660687476736326202097016122425705791427049445675049681513423717629657868410390339213625037753709338098347111750338577796075230283320839453653860569839870498639495329777582754378782654529810731709415207574088495360141941581870356154611001377382089892884242012582821375613943669637806670246906833750299971226997536254976183369607038208177379418342441678917618595444299274553267985856907778299942322257537693308422622336220411610380974952946896158855072937259489960350072467495784058124651600288595768492042818932103030271835652569030382662545522021460571102689817961546734044812057664766230572509832140754672827288165666024754617228472562431732811341375410625798946610992090003803073684925883645396835692928321739174981126234550245774274499398995689901324095966675960858319649143051638189023886993302395771702212397565715783592394200929987648024134258928926346675559576009862125435566598802564070850758983301272080747814689035792662507139423991815834538770109725974203482342205589504615954242360252258748403311862730834376660179489848561592377149563613286685226836270470420177537555289425049399987925947135406074389315644232328563888857230423687461221095775679758821048271127619069673464722772051047166554870695156893392213569792678457139399597501883466828221275836564814243709411516860004443055094681363799070442148985213805821128108566807053759215509841234155248751514430511706374091001438240725551785155248286695071361941771927287123032179087969214644265867493347846809949579349968221188249672594137356494332092098933415582662751478033101932379313103118545180258114399380173984176744570067884467433893625416649460857657425025755966835297088386717445255912670194694087104732768469040688278149588143072834587814029714364224014062154246768428344624552299912801397988030722642493635045310356695661616351673548446471737040164274463513515596390269843771392620214634649620205371565284682162173424129641174163422870345305583431279071444480827260196444663651578969412765111952406003706995234924468021198618059829567998084796534763482324942803044050672723610469618509021359702487528136624404119723181340091097163326532697437864331993107735221925531559569891679960800210404116176105220399062027608574088225115250724681032127154191099164473498826292317695616986042903377075808017697333440883065729362165403418705164001751905938236305485193534626703173916486542005127102036722767718621501053426338217403238337880017718127763615530032415250356425660872233719707830257311815481626137847545974207826892990525508618392690068680339450513690310540116542813467829418031740598824619917370210020675398570909484099868858216017187332021788375850759643299084323277216899593917635251359566381322962117408376285272038635880974519180067142642895588375546070676364704801775794068413023965184644746947593828283711584535180954089652506242730951021264945778409920375429002043365001414638208873419980787398574014085273933947749825753319131388617045608535116742418844376482623595136643487547699353638038216770940849657575532581865398771370277507425227612899759557710174452627693885059905906212302779032242631269689646438302752901122745154440621107103808611737233277322632049405834658597209958132203850234211160681535146739369620381808881924365612186683913252650603194337267539020139006398027415728642963256199238555433404965396462718340067380509873294320340177882348496714032904169478621429200250509484627232857908238849874180464343015306018289910662049925644456946904958855098803396209028946406401375327896246352207371206174827706614332808125110164998639092785946076066243969658727276951591856294510271379280993800070116569821146189486372166233760601715680704669707847430828295092834624167556067415430498633722296879713817103440070548107409908216731923165547585079766722462240159099814624456573695487076574460626186516937110611719363003096492509712312473017407180034482743218343494303973839757734647795117996752785016072565456764243671789001861416521320842181651861170173072886403015176303097267995313891228861698260908358067456320657988129840270347236681264746952496755562576344151797226129483488582513063707291675192550129154461239463757028189420766771533051718061063928244240495909819744519970788619648881400946075793152889061673472563512354276357004446163609789744110664507865923193316996454435314940984684104712790185910756263937041346043968976294338273501138717944588459761266537326631344339076522353661889335811700725158411024996117092882283488498170565647697854668008427924181474562544127905435846302571402505736342609391632371635332378900274899083597866656896531977505424204642978585229191147601061904216460334028236415156826585437128653366214318584898116964042485554081626677303401510115928610679456976615011774646770546886440159936584300149371932142933222359321317002632727575701828188043488711084645891380067798075064460242002953772523358308514579189701016387935227177586101991366240483297617033430712433607402209513988251726123550983903812593333900802775796486237964955807119770041611003053544323694823700035379165464226936050267435803267737577655942513970090039509979211934831387885961734334115384575284736821270519552301307845218260568297496791004473057025899557345855475508092549534151754632689841265668535301186140646105461295409903256971093582859816025704807355385993276168307926254268854153367139298108492235490418401954338420290074327072936716207322656444945968483157077960301656349587842052089010467689090334826823550231639162689241106466468361662764077576338363085921080185524734815831787801213651610271360338941089460513258863755907377145041728958061512352710771095345301509841205611616259371882101441724562076777795578878792352011964694865644099668277087995071782594634421912389466664258065713247873582184198600456484485763539757884595223114817618490058975640732080121141055436760919580213557646208947978476422264085032459914211146991520231883468144937184376026745776069269564390655889499117476001965813806106113193678485232390946509853477978973567184824913069609392370836753997070578196074793420794905285261025377023577524140745098639732233258950223875610227603244921390006635555384534788099663799995339896674000937471753798252691741823029600034436314392095020784243241911349053647672747698187560251416614381287370135714797986686160352318210327397395410404197849660048109603151559595838002135742077326239876735189252018781844718418282357925735858918821411390923053841551526800337879522509300785252671445258908713810534023248820719839866937524591561826930615358521968472648878437217898911113407318045783681485681346004824222168252083112968288991117570274602117323150177703674049702869934316293184421600949395418142727851241257736918397633234292820913186961255539753745976404615933358978100330676058812220172925056025942638482886177808276609095989165341146555385965419587666254931315354409855237559265185796455069739561032915188456086676535379019895070116653091462513780577229676391921292315755327994106606118897508031812862270917645522089308181083681461241792057355248387048079478665706258666495334635134747724072223351179889402333048157439751906247447368967298897236821014230897765308044776888051354459384141684583579421523308727177320366064227846779704839438215942338905442202855898088182403960632411924060231794781635599503288637264330262774448750662048238445907221780690242606167655003446110512707706244148997758206220579608837175037276729243536786053860269953281605179878091309639158436771223258027740307089859246467688809990678063860614643942146922439453331030320300765927974121845577092400320931542744792712055720563153545818132695134739593577121407621840912281221878697114614917646182228084116554233880168439243960899199040502920522428514200932434845872866699746656844349242028642505358668169354609960164088864370336586311677376781127045874283270006112990537465051779358948238402610407802709966856767679098573935643750723774953795670468754947736708523124826390477576859156172873901348307032263342782239231838671658133812778818797826457632906064111657967387008660265693534810759207693526336211867541007031669167236364748669759384555613220024690643224814560438709527554306124875418027855709489990203590227249836362787457990396334882890594950962968642503245235762757824821830458711617661424002257013392113220206557274362159413679324368921343971761533467322850561849709709802588724750741081550045544891620572568065118887675099663084868841219744809765960321320814868226076413120581029909106200623280305895286574251119776627160860508074889116220592972666866071752134731358554509019998555619747228164239439197806697010964419101033095938608194956916826009045990510501270834083195305844319709333646544355198297760069210978541219278750700040169164586793547691632223580007130898912004230667838225290017655649132919498301330556605964490551967943727041733308578763717121492688505216048385989411819640448701659028012749304207644299152406104260054783230519832590035220369371068857568824862874247317939982652497745968822525701811845704536848818319639708399119603394947834194297660341808223164771132211234699818466959292314922056877019753273679183113957755549791703331321208571104181001973984816410125480999478033430562150745298474725928373228292840638399387677809809571580297228236260535727300569370589367197784723825448935109017465904744550562442800008782073169588649831912937658812178306476674398469569424545528284411079830647142252056971046429007719854605847704689096600485315179123074655843101058580895277880294099298565509206029855573157276510837621997203945007844454916389960378813113175592025905966269312460507564277024745663654982318599216539227927148237320791502404476728993338084493693193622186619001750062009842420282886083641604303342031388441163138746172893602813449540063421008802702859193067936141836790981581442467235508529407591010462254237721526146058023432796222075035647416800419653808609834317956825117565216093798496664440741928978200637416670433422515046076365051494495034447546214629554380738147578604756584800855691782061498422162429552250087978645810162577883253011934988562171556903617252721304671940161558389444291336444261815173804333311184266401472181438754912294053077883842265385769841328077475005423276997251755693431889372639455048888668386213694631972209751839862573440821323936765948356072946587018856233572998403104146382602940893076769468072432762761640735204416843777233142361805492857412805520488200027970762871153559508508318335248162877458711952261568997741830506201809242417686744811442288925348667036468940130364972682191963076063509884352902113398361464813157925015135966031981325501412671626230262778205651926567565839757285108699578572075875970791563376663134908702143609000759038522203301596341887974157612802596455582580441298354415253150644910945987843608620459734726564136787205734201114426882310665838086085229342050257009843967866966987544210587261516239912777758584930858372732421127758610256154957331250918338393760058023423067070896691256883826915400466579099719679271162971084934629471936482618295274691219953403533489818190090330944562084866289884898737673588070615671533578298194506049976520805261900013020105446894574007167625420584459226697253942594314311844027798532740569077901894007276784678427161697311286804355975042437180659188187571757982339144983399382411722019165103869729020204016682901523860230370655881069658953081574921768395220937529283685878114743993539099364355021809555484314185413941518143700490591567454261772755103336517664974954984355727030476363938570324667805049877464273005818695154587595399605012277816056344082744170618845698514004562497594269278008662555134947090568520662552171701933853708925533133203335072325829394902702171897039543940106933017288143367696909961170356338250724773932395110610794900401843728145572527418222500059041854360178984305643412532309709004030016381230346155383199986811583482066344952817546723759219330513392334384273538490186302299607935392861450223819634784226233022200114170254430704266874559563986712971168262755420260794891803971267580979510708811891681828634309101240992798428026716642763719912757142489583325003152223273952051481521063223908266675879415465127197134662403285182387506549126187614365087178487273209643065651406824835523533487838074726159805035721361018311437360741285229275444792539060580487873551834965113531342435724015726761430790637119662143277171107034205237567947006101463385574824992857501893138730969898123755845153992988568267112490860862564291297802016239073441522353849074632242212628430208918449684425988613657663321642366539627280484099032715810131467114144160107498345434976609258052986864237924142251402421040197534374508801775075941232349928615577418488139009622064725913894097137261952239895941786131020652327810202144083406307040462365665445390875771318228271225345773955312218027667064312168990327293755298185755306615611515014889383729777598941278940681430486456911147039858463085293362672224735244652723705945767800190987119976958720854841487242839790712939736515661308275097906934600127733998949249368056290054380437868025245616777282805330253025983712464653816455664293462377737220588317419081647213707433006022086567205744437498081698160796420526156112239533731847630846960206746930761223267886454311095429491226757578259343853057637739510930643505466233576632415434178248464446166571799323821529066441454976235665915763179292872136125682342563741636870430402862536680422930117900276266222088775782726129643230815933508243158667688178916086762685354494983483958744244761959522648371482421059389064354148879564183667631530628746603829858876902508516369410474433887634469519138232157309527154741951379748506162752200752266606600424663741722025158340052160781829160452813816002745157102635282022956661307212410694417858740909696928530208927468852952740341397527037948562289206761353312009552965085436968639033960270220808484231018757788868009843661446998807983645694656057435436934529225117803694418704737728753828799893776492233152424247486648696697483585608972726605061637347611799113745997290018909151076488286632803779078767138041496907687423165986528324241471736397562489220626214519518143505242407629028736522844843987320777375551996274165372499830695100274243056721798316936635620938360271601580984551500400850522892975788244765866423137087988630322099690218779696880440825774826268878849770491917605362676967349926921224658489181887221949517910960779926708699283705306902842890511022466733485269786168925638673766538136787077914553377065953836991014269371785493274212598323462119782091700698630166154673504913615295538521092641567047778482776299525255079203591915699010182879363528130831170670926433676753127868998917347677506683728372033995096975962009470153516965370944991572967231074123796581403647734090246498721049086904315969312264015379398893444546345679398155270984417325038055523913555930319200871744656810928806668363096971945793595597951863585426255437006382001558580560811153738283586628003780444695695159660441787727351625226410657279999361752246967940764496100302700414123048523950417722971860119073626048496110744606177283011905280651070453357211077189498501533090875233940192765341009465494340760521666757884570645617537228343037497205710008416257974444262759842003796761459425901568678733323986827989891972005007156414746588997824501834155360151560443891939226150437245280002695351407090338376425866156441287512476626669466874079944459839445845696661595633791916438251763212669981972574977664150677993223817489067428973689101362298640543788453054683101865006623117815525192494610225292078952977074768300062069700529340888535020610375861910045328374263948749946406694523328994365681525413328985316495941736654590444628893934744276623436051433792945831610578663374508267222410074490094924984889762691176987289499187783856683414281360781386769061064765149334484943689339465696821722200504754390580284910020905112163751511153620027803876423114694777513708535527909659156347227760340301455031380164216790064525446159080612435675599083923240413720325329297632953165055785430440181831692629645580380618771136289509351421456645239039283146314531898775851988318092510007504615576859762591814860497202761881580541354389981180277771467430032998254054695991767665594792808857033721757593770691027268550366620734008451266609429800705326871691136845089903385474641407809400161942158048878298817944701737125304216908917247023316432407553105776570924985461934561880811628765595153585088473463984692363633596195951484275765267346059470614017493617726029034366898239384408320102112546186282080577941892423641488453944052608267194696405946709120418154140574958147018596368429617888877654864643100706042925901486212261982520477378355717751107634133178068202723574913797834928329865968248929349439552734920658951734101924747013066033943801507770110323992335895992445766940457040958163915036851966530563999179114456004071394480784530489963562124425525201003328911148335885028938250673769631646869246897686946159918079766876905230428311311368750235117730355610917045533594335112434574634989071343292289466283265879511516966707794305020323986210636426802660003565994818225712051114516375862465963180113567992955102827042118287577738186670246818669882182852187987954311998351788402849924521763909895198723146567627096529686427921065117571958036998820417511848207538490047935405724312977080922169986352495366840558202984416966827261459986929050344168427600893535775018110146719865930062877052838403815276771272881278460632686260593390846680795198047467832489306226219363828210119619404251776990920784232126270002544881016143916360168032747683473402620606455693949732210406000376732882967929722434706991707735456280794278457439852966833564542718748353643534527797242595375087257369076004505673843462731237372028014324409945472415749189128598177152500297164234672822311057138339273880004752481654570906625305340938214678637351208115281656803727960605082108025723367984849243910466660540214002314177614508978411539153689599469227753447676866295039104487100685263159823863821794017732667462839901728191994923277724054378504794900429628283537941603663298156457249341182661791267653117736397266301414254214811159880238545801133517269597023991761493756803293264380437356414751124493344162393973490808641608383733824309646062362956360972393675976864030079288521891809032844493261994898029947892862332033061359547924660181255684766527123253924947051917318101457327581899347708177555558575700557728711373247749894959467565997863220053002472926638361705237195965753776779534987113753292539998953079592969611161617016588033744721372450909892604516192406894301129336332731834530768177452275447700205063936351347057507244038794797279206115437895456500894415027885535476027858312559105432045493528336721031925292875829922570962118972490578979520626414397057781830479854211472537150195614366046547341766219417071582117452772925545411791569284098099849669998401869798665398473553223223372440185034437780173951285164831451867620201632947539407316729335600500565377890316223320472347785529153916936026431677494705647647687208160007829546701417340276215662019943306582058028700523673237861506455869981968386687537074881638628540476424911551743816883918460682929940152063041746938877238895548530008870725558462728964440519238384477841493359904921870753672396299976294089641399149529159221551127691335875416027416569235916150122888590657794183833445795996813617538971047212272037157179934170442371562768652036620534016939730155159839387040656176898995809291968010478214163168065793115257698476871199112681364022573495957078435432969309094711044042511588688821383451164859183057688232440566080941433652261176583784553765546569523879978319914111809985373278830867129483312646542650461181961640346292696829414703611264248816847204733468338827309123789037085015705363319288498780315888963255827535129438074594428135734558624420366225320749906657849878144719603162102318223730526698803266689007774128886454261206797309303117107704060196595654026668823042121544409226543934273670157833544692343321709539162473128112290083520138876758302637931464344248145142241808605826704086232212985518035027359902447949447398791871107285717079686094410260092199942660275961049730224254887949382762903706201406574665291973849523987199313846075486281791607404101053107182468817298646989131541678595094046683316225266763282959439960584809415300486235201628225024441815548902821209957349573850520865928632245421743899952940270060052743023800883928796066851858050959165000333428828329189309938395202221845106853233904665562489055161908896114971138660794962410767235030830877828601215775868417565976040906165464554418568029428879536713794347029884347898525458643890139166078650858665283746016723216568969081482646555363976730331954772888920924660331103297289185872371897739289647782053405459257972250622789482989114115419607065455511908307520170073286697663035025180915804778542431815514851984835674469432424332391430614887058518791964399154931297743999308119716809107995265761206462515619497498996616411877611955333564708867505311118145031377277478682025125258688108754540371050704285081052653349280832331245086631708416484702918477148759368544456078875189317685685478066208977051725765798859684413363978220964287655953811086235642961458801003316326314393823944044460861857741833313122430224099971129894458689171624422456409886905306994993744715462392733335152173308970792403250720061409873185354922918497690567606722220373749563969451987937672500470675720971780416937335740441829159006583585483067006373355172062483462467296894326260699095763683151624212993020825401774189650680738819411132687624052038433742659304854784683808549933202821227506719505507989871044383811915362370905203533031020522024852217461913309643398687920490138928355279898393515461964377584689675646180825808595918944057835753563074517480981058120936955320794583662426082955347792486426809995532296728714331772672039660627029361848610757829692687428152269474149343729400256888180706213638034410111346772201006104884769661069026846654326544743907053717571473333997481008430543475208494012807477882932140128034700483186168482817032390915516018800435167525965276167535284648236402403523173851302844221673385407962131722601202493524557693217629265109446665326870516703501918081660971516571843143283315386163428324864151997921794509538880560907031344861573890593628806156421356746091295743545225099309684575020401054682196632119599595636734612938939157805325382830530039684010978960439144701217734079427590797307846861925319233321059175214130566468202358974669259626328165417909368283890917116005262218673432194170555442288656945853002228807820743741042552584941150759564849256613588424956889479020848215921615413873967224529788109658585585932599907489588583605148026118628318790866118765904639072174354989058234310386196965644556884152275965214060161690028982360723456797165893650303470896108728208369288050299715525364662297651246619023967500623635266545048621914905591377503292780413197802588141117791066963356206455906245124153289337075807355509396173199180767718175471092190155662307465518939934099146586389629910850316042910417059958927606436247824828062492586891625840653713524520911907010857881355794809835470092701329211640745738243045151517050558956449927800838361692751515078524486395062192231813921355783060067005539542333981695157523949909848548498881722846609098893950618862569559891801969962402431876564677391387494373621286960427846186484634993565457205664447162336135072537912255115245665874014668019129888863751021560212149234026983563856869454447831175951900928238401963056189943864259064789054246977958903856065399263440334191614439063221470304933780335182205308589171351089522431259155287735022694134555122597340069212564305865204781563724294122642731665105377041522159075668211879488395168600614516106756148933088304218991664770333681990751901979157956892881034519429631374965764400802817281565688938064091633417848603222128304909685149220005110633027286952384855384015954569295309113425077705382089880903950048192875930222146470575440776196399254053532229572018416078714685561176539083401092357166589234843815629113714399328162718615296807901697370411987279862888552943735678475014568310446248124101451895585706160858704624214455635021040869829560075246496539028799227743649256847745458883293269196600205121149770361810251673279799965723251438143116921701342457088834988584962317617852880400227962474147239880833810293726972301304170176937326665709662098793901391603903032481273702684569515013770384105170912687765726685094814562949911201185457153618181224880635899915483794654168311029767495588249316831583257460398642276568715728770064926683955269140096913118375447160306812836457045071840538971593272257081427337725402220983069610632199270174936426891998228037723652595705711588948236809038593470220071876167096817695049820376902556231452299510321374253515179317053879221475633484859327728762316898019402988193488517039325206048879242713115676574556547425407793022819861859618681907460045876411054018354103427804497865219129213190058730868970487005168226733417559767752791882286702097148197105902960074558379754559078410908915512515941218629558333990064454526523206404760840169226781226870106182392826227837389167180168284652090534118735862012060585997903657731184319592389134692005766561874837084718956257187771790381278772839804485143895545878715460277920452805153100431857430447288944639968689155858847094462123957482874645706140353409520698972318685192451610572059955013294776129561319233882869354347156376250058353219624656159358164717917667468092231650226216640042893489940099866321240887005696216147485722135683663152368069988214002613231151533327165039862389887327677768562456705966765705343097317011654887953315257143770222877805813679406340709313932374293054535112588911318359171350340380952144739469638571134912122445333633293670664452793078700607689597689007518546494006988563160555535134021046983897572992350816661944991525580671814132916579769017596818778293268016257396595437467088318029573946836691389436761787035306576395342826919078000690813873937426238382735052668149300096639744217545243271911378961606873903953165190455701203842045396009525293994023009868892560012974470052760683695883608609908558990959213413808254916246943698793960600079596913474115186638741201753873776397603305073526730606592509682043303536595818993637267234500914964535394648936142839754174428361706370355298405249325815601718802396302293493076195792109939160807852613925648252421274967533460641067370087211139885658968398776960616997939358721749948177747162382823909415987856692862841730425823830448009818252134484548759877178532982822510890157949374189105131060167662909196954961822413865636655005178524036972141114693637340089551134526777947321832242021322964661787695628054651097722944392794699339194001359201001477204670690962453585655114218623863584276953475913921106667891084306884978345967765338090571614217929645554395131868173891277182940941875563103942609207425723227019948054657631660195260258491108323838656605549322277897628858002013085114177875219905405229472153168628841174891210666924108763437451424648656083917024919785209384712058459291929778449943420997934342791589994478065137338230402637138400614967124167979350220239951441584560148175098321007627716778752310168838127622283273276291711387469739506257767785002052730739162210922133480172118787735781427363686933243998757894758304686017770416525942614398248057527693299013679038601878100526591356749184295150354162709527693968835903184454450472111395859400115784967424684264467496192593078261230934803773301305336740453941677538679313780962602362225487863904071573774987999537387524120792988779481643043147006577095042319335322924771254159358765581849682005306183242869020833511685641191078700038901957104584260466021722776650563225120451567682479050656318188253422712503748109636207434509261434910023211899776145776733690210081738682084017507929337929660172152536694039846525889115787927147117536851462744751710168031443323979361941061233466564962002712721365709920911875607731619550347822331842082991998066535537332874655684111243190092656028268092263538512239531927031504512338158273050269135910730148812858870797916511831095596300272466687853505441273868439046455040927369619235313578487302427813590179456421007106453421539555400798687742711436693400543218652288107253290994261870399196113444728655496649666337261966495082206604055414406627196803862717152082969997903518319177561832405365664315096403441494120599666209171109355647938575374452369213782557004988696464423174415435978245248248397182931505620594431347632103574700121143804177248149205405158989139625555947701374381336026027886399421336556308374548833429313946987274337521092840768786880231351650759885579611560759734801694277142571071497239574913164296076663999192023012941312717731541536213392740521570236118284560249049293101272733635214196962217397612477593001219310705148494828173410341043463488486664765429122676914587636321151974887297381855243880681567805228590274499989006762423786171832210190507279304031719721627031504427036999595291319758785298866362078930272649580508902267861992111137730239552520526842196200520308297706893049062569639578177037616055867659065030568644189215457067228791495350894096221466868326281922817796805392793524359253320360409711623554679181856309317252794663500254114416121801285979942663390794466193867696914175973586647377409398709323292600076237172374518090724063137309748112273091712039038953871139773536439727199712799752206632001955348591048444767897715912544755287302262801685949717973861645963336232843933386013994530364478506457749975691925368754616263108161221601428286695712084602813448067306755703961571100793349943763960144181813872134199144293720874621558459089248448632586510379726732483339687023001268032664204829749143091650566146621467970051098955183423715758042615970884583901334316253668227382707200593021697131245632126307075172473804800005410380513386819874779663409872685818655051311266231341867615110375663303721767705634386714039870397458666581915597842942617927826093047391203996023077734098475605395158018491518664185576568408994301960495598845688406696858831192585034914365825098220544065352063072086996528727042668581098993109344278788439801265155976346048592408218070472858094897659780233072405038572150678587094163013776058568764669734314910721775547195029482981946397195327025953495478322243720973591339373732030270059193992068946290918184776033825658840743794187332759114341929528401792401589579230398327672924882919882812353398282980573579876948980804735943844517041951721506467060187915220251907115016789547901211903798399692516311133849957071759228830443423729737404932511166722374244935092676179746062991477304103608091887807747540068337966504712999264187639244698515907180070447381718068273843353990143215614709742904129150972294789925795997359649581424667423160733585579250317040514081085696245753990537203309864759811857501457784323969103081338030395085328259875113239083079513928666911567077042486410297047063453153326660367587596866191983204083075501472853944362727075659737083772728655870695225120830083077067055599157948373004885902427826711938141576295298519161402864976565386629962696740015575767315868899259718935949280396373574969594584481094845250623300532948011101931912457784494250697546749969177147350734676681136708740553542217904808289612630390918787602213920381243002515471343536388787959717563512721755801323151605356908880901167394266327475626401370835247666253285267163787247571346307630222114505522133061257495169817278303695959338084279700349770195857538419823680928953810219487485782838538951384905667331148153951177730878006033081980205639801474300984334057562147186147833044414940925891814710647806867296830200120468972360001293132136820234228105688439696315804593881189957792033933467253894585019192562852370891756350317401724046554457106108715774716010940760729538889851459986600385639205819572681016521016079941202188932496517596466730430275654299742360259656765967390355798876435837685604244966679596713053884445846150388546460635384705584511391057690820187486170771002444033052131085496537426647480556774310989330027055448957558376599736074332961946565620321835197698823507097472545448488116628365973694129532271653434247424136982638550530562739512001047907941657715436409044075203767724557208514048694718848494193207446604520926697800206148809674680847248608448453570096713733683453550377641078357860897784868346809510368881333381577128819952231806612952104861836648411481274758889666922252577825987321659986652838820940988324870395682862731416429672810522530316245591085291331593909826247618939342718375178571950553669211680224023850326914316060498914407807126159963997364430577767430231079208244771659073247591397261586550394670430360765681665987188640544672999075691971456183852917696550034903973941938255676613423090679467681017799610311721106296474973373453086846191608365601344392539522964600395854854422164675551809971342158553913804322299394194907366971625804273985393865042458762091964372573368677600163229022118583680199728885935680323858668737016920719960405428744076511460704268444937145881928449839590793437775423711611633586205672428200109196522732103909770428138379146948949907097997818657146719633122071714482319372018905581259889434724997269209328519177855688456934714613757900162218826246917779534293100063838336865037595825844699069104026501856368708277284732684953497003831667494095619571332105393413938484057181050797879214274266697055329972897275860322348186761938272856139336368597641308359284232572486097314081380363998835975771833596051131414657593262182136902785050247809553960161699351648332879743653038196261014744099176549610664913722388773645310402961354226694911246279795343107923394721021410341036447931532796823891618004602671900115107737278615484106143674862929683283172643013118240165283553817882378471444980546621835373504712543674165646157486864571022142219165359801283491040691561329915298496595488531579770319615085130787741690244286090562527289892455794039674963522904678856729095798230537029777554237714934092438503636613149480239223452691323192962913419141708451024650340529364972307264136042810799859237879117513086101192245978281568195936815661659441555010712417299115802679938148501527329891063919332840472036889222577765316355110870393940929057500737838844900429917130871690355936425398014895875049948461454835984353992583808923237653572367562375385309799479183306718969626107540187384837033902674480234387433545392170216784650964192037337937940275067288944445032819214784426506347859477976456583625844249461234767093627208851906816457807117262247336433344511202706468191959935802658591224809932637625568266392776553275192885312937553874166659258514616002359782898331295086304846126932492560824834761054638379600766379729992344694034648290326177035947776501802907532226995048473476269361544212627094504742059303189193727074672081386856060274242087486568636472615437894714373527736110815542516316495339663277204155345146547908568873574597382342522595916355744155273246381415332398327064841235306838811087915562073280196963415322805453165424651917442064964703821303811738262193935391086758358081444781099194260659021250259233966924830405333407039300491014913533908304493091318633104754364743366171434139702959214893064673477834746046848858543674770684338608477123168731746800225136419794763359045412702298947992003353084100290647104380430673069877116747130706093196252090037501390451753640354765381571194493570462608773122396396702633610974736376673948926739854739794513712634310421005295968686134601016620318698900418996862156913874648574930333929185440552756335901283705931701737551622489013807577761184005498883093720985797606003379664085135420680500576462823681404698756114846152038557450382503681730933766739035575661728126079217367341793605860100018654719585060683518166599107163258201794943165868050267456659250317843617791035160011210306910042638224150899654080453723957392615385720711503155681198233637166472330668796883454937021748180829691289527187033292541321298234897940040900590871693474675366704697461075624928039475930489242406802831430336169788481549167758988694324500877367384167841931824799580936580876248495985321531102588891887264966389830758027592525685691065629159790144357506274907702836880726519764072088138732871237435311617224192945089136094647860423798116244888804203132585808076516261513340644623025750228518301325867202550181988738553737430000539274197703445462620486995056973141220401338844632856710722005921792079972124545769479372094298260257338677204428003434767506852557177718489727359351644770290112655535105223603567999210948378767439964701671829375605425334593646760151991975313450142405981192971736872623201340657635862888839694409646702200993312406482216433725557521419524109649501927774050080974206595944573858778042508362020110508325863934307076853317010711624774999455631822039450271804437492345890232063184607410176768376375339977136390605825908543231683788636343224816493254276722763433364553620796259591678863028689445707973041425627090624705249929069574161521505780279993107109984960670933048199057217645948369378537168224414231307840285307161706233928281048548491802723472652206402754838224088745795569759960729990492121059523801857671397262226185236824935285279673422742158737413742084367258370138018063739828827295166267291793924531097141489533095555778623153539446764792487719927260023412730930361458964546071564916028834175037454071991803669056309440372029461971731830225105302876689112376135376315942204418247021348143112370378039743619429031464862216179382004550245269164444539038357147231135930355161462919687145315928880478959015021132777120027407664661622768913815529231174178259133043032646867786044404514923817631165259969758548296074806978643055525182855498039372727625277171527440821135121850433287369522682760678624432764943835176103975699781567366851403124262553106352276228305383517534913105914849187285972047276230365354521296845017113624910841372154648063119384467740851091519379275812776147026754562898937531647349724880947953713985136351310386385011098850965390331620467618967717075593808448214066415007860180681161015223933301027511419862753948351303704386327355482469195007511199370690330805429111782270602261715979899966903921981947368755110432320193522865762332318298021182063278236626565868074335032773890661892729922822951649792609425383431661972153010390167673560476934153620892746091655131394172129005095965920779948900593916022617813047740322085561895244830281199629036910600928603033960765793354443794580347074621379687284675635616601871413261643514324181524664489211202201260177190144446494936683143270539119435538820228982528652269483678385663627010627722724282644963760119147637619441234316199167712820932276177930202793108217443829423128977371179017101985350210063182241319255854865161899373775662254585786835313427825799728853103321534496440887642879319371172670546559772415920169867293664836908042297826439945597176304657692174464611582712839390523877342260062440766800468563390433321628540297507059041445561154126959284110577245532490275001215667442678166819407346209369074443492677370634747089512562172250163142625895237780799384258130702827323314927841539393318863405302670428600685288013714522926688300120114206628826860259530957607779713594101108553241736864548221088264465190170182432674585909489050782350514823123641879765428317596648575756309788077982914246667034737903404165156995193919537232748329997788270989849027751026528036474503313350393931291444508437733421006193570892888106317472307442956797904077374774743537240713143999270753400601816483579895958737936686459803954048416061862306566947289671378953330661218694790568992954063769354757451432533638477640582745790181000921719070642561174942079919000797074406078969016367452937804450844079280061820370659711699195155112734336055886737942721066785414744063776797783074974499391332052364333514209068405324044791545063857500926593198130836958225920471455282601023180981065874543710512517441526685104422785840059107801228665885847446064550753863197440384743339120987851131076731266946914351357238751101928529866175035816371144812703058530621656992308222649137143192253991819117353069810017420690350836997293768767775730975352569851130320920184148798692503637890622845401799101285287130829097553758841281208122647661114175306850372852832263471193850500737220654685996655375308736968930781906028288929488972132785383312644265820935359283957201280896527659936827750266098608734156091935775945182378877474765711925618942475914975286926072512615699961574125490981642409828988926902714486151832784701081373799275337646520778310146803422518454994761386227787612117523158229770240553843849754283498686300710641733270012121772203739357762449231150839200333682227732213471285426609813536735515217021885988449413937461164553881115400274608618344202716847126468873469136388285392496383019981321604677355272738627896125643475743875847529102489964142131814317515481820215740019725512165869153437060480433727099439419831980199745017497908886896463377213171884234973855905626735855364549707799334976383167628462058201643631045461996168697144995924782450595348296189116871958967993282851163555278945481718558376788902152214346664828914267178620506864961699008359356075992593973982159333964274540633549458338933759285854648166254101549933712934671108573311934100006846579258932523843049143637198524744723251560893985439942096719231313262700400394087537156559567047746376790621494942483577067932662235256275811345176828725161678178676401403891063386370639402985988713552654336994322973719950575176154916332632883975025404326422137275686914931025066492737857471043676295346280927519230712309458367372504580355215493380035966510015474622573368969848251355426293185975747246822501740667525045678647540309682703495563617135301000455631651881077035009735457361794756310324943596502728120799874348904009008854969323917636361285881299699417837677244012549263947739100272361121613148357171112866073995749159946907336801789859223792489646761440503552965527562296566632309259999271162519985821844459583434038873117921844953505907616028140842190044230018400910061851759076580818406101744246289404207900117887197951143251837773377021790195206777255783826713575919096485766419880261988556207568964207757749941275005007456965246528130383847857269913707248202972007649107905236535977431754125617124496843626645816802711570771462717156647309854432813194142218447502151136331204374363291597715181951024799457170074273728349220080755678828485602283293453114386529767179345432194126925854577332588736277607688390338359556978895681626012088476887764492072475802952793240403129696875122007383348652572764852404032677268373718893393991189170257266281112487766045915810849889123978494453202568484477088499567411703482701086396157315341274692057764042333758088090619260823750449569286734027835035245283838157937870936660772919114894157064165293566102667682436608817372453679303287245002533761289811351609253081690042831002339621706183314854166656544013194541177765471895907295135971896068559459345248567508189534351982026824741699761939355630274131867931386686289707708154756730462101888113300464573417247891095435053295842017670290003992492634282542267584317270241719192067765670212563570834664075838385418094869874390867614554230721483790364416306033185934251596706869020267785066766038545889477096683102510423935019464515644027226544232671468591591589060364873133453286809674258241181093283278439702898266548896053294947388616515231564560055033347118630362843732436240520596525762426978472733980786022277333672343464174093237002518194184254178366836465188509633408199710189550258137215428474103125892938627393967270404525057552015421185807318212693877708807452355249804625322948097877873526834789171131338168095091260429165150377998807835621463073134926298302320906479519632685121559080526771271628584819381728878860840285090054089802677817822219349542935361933726637359846043717281358079000887588301336136635492264558005991369845139107644776426964202288528207347753929372471816220916886462346866687350975363253593595490749726512039646348906461377133524028397899875128988621726778661768663193207572512376683478442666336566721630352627111614522425374282833352634941491464344800040276855645939463279878233195478595231097128378816152512390530707289835653905575150060421154614194997384676104354605610226391744387123327429768833260872648136439417752705441666089704517904945432023553214044183494194744309190721446696345912997799737547433907920057948528552132074246864135524656954689198468975723380377985141783020051501110859129581170128264236790145726448684893090397984455415303685965773055669710828691416278924364251765470401097808688252330843400547716419114796280229832069373545112265196486306701120546274181413914428661432998738567233355657585690985647029983377153032281543931435400629542407925011670750744487764869858203483752076058264141963308000608170789550100996591852516859554719494137615652625496767204560382469133686552136632299478704926324864630996409361617288184611682930403093151056633189998572714612812346668403048463067496534398520701623174640141966620800449577903231947912395709263070314870715068783103823600150778850489648594808126323299600382291410124081117636000505060571381101486567376938985851723417690863967040319585563395998687532710552822046380751083963522676406137653218867358234219892261119939197995342840932649892697432836410364109436535952461503125952856556646999705790669840176564629569124909418682363314487135696319272077406173763016900527044234907751830521487936659024902617107793174485623275239539746160912504570189720531403891137619868538842645781124367320130543688914099234784035558009534553538256516410959552829764738745468433610216972565102198398125634136991484394693085667465809561492943494800475824572474132119591361371230617466748177115765227267947640746357910222316458242381094509257054682644423819530977252052205721002768730565647523188145167596351413778353389889660614551904151362413763344247895365720507035979844232620269042481701589458037976561694931287218813692027712381419573529884982043721139588661217473008293963326034823763828626305310875799344006949059697893077887596378274698622550776234021838578087312743471528595330329953625493874280320598371199935793611864970148030680269391981302679713311999534986716893465446224028289699112288671887522989146666079460809718738239839258649071808876996207556297507454722412605940587301247137759697509300533054712882432928989066583513496684353456410487773258544550997227032818545308841144160950388954406466766571321206350007587978650842506166668698725010518328575322138145486852820169639601843261272391196623412917059115158100284464785445553582707876525137514464562108156069102875495104660937384927708484848290519233853538754608217057874966011990317314217051904863086791550152133056119533012966359206775996952013023438308892722230869272714479980192135545084270181165988202396598776852865404907295171528255955741167273902932259563298525542127448163643809418303510337158990827570504175798618908452328089001599206429439974350655499409359087979200293001303108177707703789055832259449975603734343056213921259752823822740459500157026107567879054726632980098380448316446263713786657605090026775456494469194531245898892223784248030463012439630731424211727042740180806079360814830430265044104829372558343432673563291637956191387370390808716274929229444184903608501893163926412782830561163376373934191536190121137630994275413082429900160238912364427581980398993946577417606463499508774020444104502510531221182452060437185132575260291358278492915284615486806127720558818875649836795670996818113743505108522331474582187814677251175890590478023599384017668745702846364108017308323965131221428465477696311924487187294741942729415588783456681163487510099867673566110811549179976269141814723425754598468381584243861047042191701563477266938537021706437031423487755647237051168018033359374305739224863060448968733783162159719274270751625138292609851455851120216371524118031432364076104354796353166776251905671922330802888910858490465510584002880878272403162676106628906549755356840270403003760035407983376687552783083486750148309740420782770241001852909922050070090637627846684487558550414915387284695258767162875257368660408297244582615007350026364337025727118419939320712170639840709059091017119598054388079572515254957704725202602846276979506778460801919266441608516339507748052640955432913874676415003133864413896307657451102710651898284667075043886858658414505856918592636194646002076845506417181610682834870259358618402605074240182905521444159924917423907115154676579296529283913638793099122087935082794423170083317292508363469476309617196101562575541132114738107217138881159432965706515957172898762775955854777422551415148582655125058647367953106426703291051752425062724825464891931998304539369737817504449912571889397425880344499128872206814217740041875115575155553569919207412246469117119643482186042690629649291216081903049978460946765489387887227900529019062661940116089196490414716366791813220447840632899029658911894293327597772771035580952944101968754219699776406836903326893045131203531198340447046145293578740277522528510679034833587085973064560074215755429133951734802398083653241492192174576469604151278880369122045206857375125650889649945602563246925087932477197214735533051135840647528569352587025258804069461606537454033119161948219025792308372074166960150728660228979727645184380962910276003691585708065170067676042002016816887687829438447238559486210711316978927642375818213394640341007567602277522372882257365952291204500910535993768170690466183069149142875241107890505755968080692726283223584569570207071854014014133674426642875422584421315731700079192469239064599909677990299071125350807072762986050136736160042347335719647752944949201198883098472116373572600202891432220653889455451788597435289377233341161016089090047982482590611108509752509213692212654730170667231809456990010065569452862790487488826313248327056329144563416504271474341767249529465613049559209640037102503467132633370031663091562288621962787333825431535767449400136712193487849582517863613217748444877620922501993100597936329631093716843322907159049051178074941177586934996479021040374330263699324047244983595072868920749707280631439394298221603132112976374178574435587432661129417472119551328467534784638132160527075045178406555003818410369166411044744361179054375531654802876225521358999213672049282778078820678264963207447282705144610985683646054796341585882357037066172912347842666010706077419220448404631980760790728097459562564682662313741413610324733440348727216858837305747775516724437464833737862953655288468011199374504504211561676144783476422664069874308006543529416808445666079785315639236462883469009040870658234158723983154838535947069803286298800525726400371755125709831659998053327957771833531820538673486632639733673632815476391617190237395974470997040717874683313556215887368496033722204298532608086921496630218879042595632713271046074631404009735830532907652315250620703118936911599493099061262465500541802957820554616574691771040640223589044044410760385154323936924783126431986671946259820071272701715533941535460423500961039294443948716021649470949601944420134160231717449134544870322837214565330405889338355856279374345552238174656324486601487860512373883240520743662084273824856737987942051285754542514971613130332395877668764711147705760964580406048737446176799094235710947907447013600779699459398669375947079580003129477030894176409850533390826568045446654964662730366818872057646783569622025049822032299774763680306137185536389997621460251827858809836533471776516717728721347904853024683061093914982832980604463123340985216617449517755646238987413368077092362673064999981750509499283585819152153773875444335555614974484574327299099761299896136470907853805447582110970424532670192191934100667286526064096124364811503683613068476007021990408833102372266019791831750995872144430804286199066464288280396899266941421595691745015966058326735643844976726885173575935471950606652826254499572379173131082478628548453251308418353475290099277812424537420081471601694417946459891206338851960345709292257603368270359343254126908116259585687298524630641893033562518857933952471745438268228237930622008602462220835590351140047314461420809323749210258153698054009794771848066949255868507443471600186082210167419103473519108605407596573443256292989289242582757797505036359518263948112067228812997550082182684037949194208224449261237712799095057402086223757708604446927654690997628844304223335300195149834217437186691045523441350847153206637463393759714219236470469893324935626111374229036810318999770109718012907429179089924381902260400336969880804406958367496337557836393039722536811948667741278661028919250329940473259403530286392609722911070954286855414431289722016638588610903482126602711669596642473113559146545094932093984132506965501986112303635076790338357964930291073676494926891044318119876976960585414351600511799989582046753157404019922297143298307562270338299780004704053998948401787050450636499009421651613414222121983519800694525941479735119012983587489960265162716159097155692135587052194730729781384081210913834955831941093032917379811328038236867251866451355107220021285696250152007193548868515270184470957208803364364211277890737527502825239352660027205510121296891338902296749940222634174669850708898742656802316132421847909345588506317964267962841402455018004968828799302806041512957824484402631740501253968587038871471310049868298237463959777688991171388601306229496192027933789145686900727044603377976620687758436098386797198070832657908914647474928489512448363949253622309785494168019367558521254900756966297994433127503177182675223058714538302142016919174881913360132028332136443651188996445146557897778314126833015877272681085563231830762478275838166675844988401190012532595353248739968281427106509994091291864988921082903883898450112493830262068641146500944311493566434090251650813225238880805275849233970431464169158466108044581757121041410368125258615104218085573440533920596479678406722963819975711332135774166134373653818975619213196175737225442005262856848518170971943762529645701956099212778522570003663838115922715023485920468242797585511221832862011338374186778011842680335581207928888363409890678680971434454382273241145754109298158128043707854569100298393093144257446038553195838798510629453381511230944524832433226681980529059960848238193051818492306355601936267685943584806744766918571692473311539817014286637619690677290338070415583686331107694434828599694463437913094806785749740471699401607406600671670052068673756974681888286495123342121061899522561700111641482057628863911775114998699338099415419496584890581190524813206407973173182501857870334156935200297169903797564899507373029485052290075474670061982215907335108452714539974937626279151162913585194765213007069457954357151708359664706842318610900468336332174966328447929950673014943956219554666582154291821898353717820623349938638978274345568833224952118462951105538701328204268382344537946411326222757599299392581243157012551581346213204064826807438935271731680707461942693666933226841858481479460225228237205766283534173489458915255442397578328454586642080457422300041057592016273013253998072108104896727108583971891901363513013286825642086409790324452506768822938912958566064069316459348075322431150592601182123403894698452264274656816912481678948878023236573202913981374613752665542026821494956510716799906016062710797739388719526214474214292113553099106152882889402985274535024154298110373893128399056189673741232969710448302316401711996997490734274240825071715171812060129866996672256757152325555098969697107455609768993932891817485811604499702506992874121120820504194545060154757542037731349356276138604469900019492536031946510831536993168735132145760042429815313865377900802942747661012349711149384130990895872868565621069200630885149410906780752365842689220720000016293068396432009679173882922959826289565929737909248796602370734737244238572281958229496065694055643480460835132589905737833964777548106539820648641230944989353288005162747790453918753051799544448665944862008766302793706290597825411013234184971625907887843907967540281172745418281312858585452925851544223621441430524449580228508819191325639398286852523997941513994378160475812069857065236718840635187935070526334899667916887735838165604919771007116504784747450659734627899033508581190423990063309047270174048621181007706800087342225218236997018227550176090368738086412197592180030217070097233384162861526349645989932616004505139119129138927424452824660555815487912701569299317264149366171568694677968457549059140037272532749655255279745287974936676919745930499766661337518951045245116496316968976701012666129444454765764178692371474235868735970352869023964382414005317902100275870590816733999032316462741611256815069216616527498207485877357095935358310167503086856894112104829057368574477633696230571458372413447456466470772360958867919330610123623150893918208195703043274783944826256492377141972367521111366028385274898099664315209104519864633363301520647858588496337575782624941775792852949447132268992366308195018734561460001702479976534728066264088862009902868051623879972383926956400315852795916496121877589727324587371738962027354201200484189560114162188462164229094674575849059978586594552871124261499340437518572849173793253448839603593770086221777272834534716425285247440331483168768071748164394830311478028519929854139287957221194452106091603715746887028616568489204649886475306772818671980211298726946221597426092545259321278759191731840306448360454444710855911275412460400198695488924366642964393653098002297228652051037124890292463044811714553922242754121406062765332838613805980051136081367169205675975342820954519696584191474651705059577790179045574707890605297370750135497222090209607446917510228654185238062131701049496030661121830088986794912392964036426376949689395660709664669614032464837942000722115994471210569330110320837993774756717356871478330620134552405512418813870491725796362003984913130502930867209058121723565378697904713169868876609445117122901653617205685049946372792999684002045178126229121415963744612595244892452821314788696675719083683949019406582640636756516144718030194662951553610899689212084223248675782580564481353557764006110813779381911260811060337299129789035998798728481604214193441483948505454812405749795513046996614751171802057930639631944419045766170241837771620832939938552428529315887318395547761914340281966245050281474902252852395889763684523058973963710660195431303788378087887337853740808212019836181747544726170840367429904510966712091048685325294902117283899064520883899190849016763989735311458047685053046552422502417588582769575318419862619335312818367263051592573888862264875432734825978320440078661238569823206497072393964703192240206004785847234069907756622073290783284579089752738440052333900249054160680804881678650619161756681327738182158801077408038457355792381820572002437303858565471450296030562105891909175221738131648894011584694473706289019651631732756904048822934138309579236824149268538271644004937702958555863450152209794233538017637157468573395747825979846659651498287405646915691392623239965765975312077972173493538836481330489108605023421435985901239698524050035754309514180430476530724893971786772227778909630548022785040424351376034702127056900294028763226520130103009648608101578639712801166998752214347441502366710955512697956468007689047022915856602360963970698308792181393054971134709383907575553683161231149519920095862280999798196169578519228550269182061348227990848365717216285189368341130960523328631118970907469886388062554909786392250051795426818026482172932308466787768884487793231663242156040579583143228745880993586731495928490531574224839545472529714527110975171249108579467442502374537177853712067605380447331081974496500342082460003097550009357705076336318912514256887673133853809625145668277149433399656767060531365248666421093902226829216979076758367049218047465411376691077975913741515729180762901616377066435210868099064332266336109934396985891356262627389392690642379867082185905362472028560014016235795332678608945362301559583508110964200832347733966799980470648502316832994919956433993183358188021874760159044223444886459806138897541246616102309595340782427983083201145520329760416055955774575988944541725515814040221555826852329125934533066879689146692079989226148543681978743447599656080158957729646799819218261210915720998982574804840095939196189909040610576921557893548692221311481042457359585319934328323640100740393779823559911700460925226840451098259014910253010031587665247463379615879126127542190888649459588414936954527094128395705857197123610586585829459692296215627948877387153306755767867045342731418997469959930431378638803096911721507747731445128772904372362548408331525972862666857085309537079020743021488086150771218489963346055543741813476863310085391882684858328224872846296359975317003666748705383084602188208719169883517617741291179443006170887478986923044916582225215363745483550977089595254946721833410406129601356933984185520276970302957746886878725732873010077043613554151390510236487038642577244710863670115778052898879703837130978759006482125136902201172004296868774097491626067022631345345412035412342991465944705801947876259498712601630442239099685019909651425603867860268370141992533921887624650645653424756238907417693527714589436939486783161232166596992361144555228432875952481370777815310377269904531264633033320219008427279471191227464331009534328996866768775065311480323225156139609457744122707273582573026159308395727739654941392799619539408832408922535583192141129017330677002895685116844117188073366893469443964358339893434493357800169187704552076377832539733219330861081309189978807563799909201928946037620918585675692265815467696265229170531117877723736324204800605455755102129653324903163791651204409993778071175445244664915877152364272442505169304721062402921763301865644878147747885178812799202768002582604944964762658575542144775556873701998417500196489216693367476051628724729879815439302628804693486762954117481703510941227236173916063181259686182350335863002225372764079302909746721652232265641909715690472993521168916490922532754703955087397027208899199551179436524616895155813832422921390780726974353229000386359555692242939869055308867250435926914440345170718578157264798369345926186013883483086058473069681382009965494312032927270100744808112681515439514088500315012974855663614307147835517610455992806221457248382331017890050936368498640956249041841309617584884477194260416386412058068034882548490963257522037951702453516596103262260535337043088659320778610297426903315803499914309390367111574752068095074496661264025291385057243250196678933507754136153619569828034489644564293909826078508539855270284757962556881784098852352679261978950313580126658802336625275699181092358319544857177827225284282162235000144431089129914411675191977038149793190055706092909454735839889980654113360220542080084405303478011302754979189506598675485882800231166947062416296401671995795741144117620441990916445273045979450538178268976135677068963280813842224866737231783371970781906724601894562567745828475336878524632928349586964507823216779483425583622100359449595621742541679618871992749663628284350721098030065211602581748342037561731665337092122642288165441805356206960634778343885582745957884150906911296737506473554715174786148221844523804410369324414016787475295980238991351967317149835680934409686843136019654533315020155821981748850509906710308853429052270895406326187408263807056873533607189665394008988184304336911233408103331441882654368214324980609393728142195709389005866650061098705710292829017817011174414571326158267470618290544997356037263425748111519432632150923605678846107435310322221068161067081578899759674032380316500729440105758290845447143401763661097185787374122564183130573576274381315051232234501005358948294542421331191750791195079878839343139877219292573827322363797724382115058297456885845182686157883382766190562061264917546094569766225364360014641273400205380565674797158618952008431544541247307997026666136757787012745832376599809276299900073558083348521424437303991495694791829279913669086321621956380605721088796376889792680205276231194719764858784736151777799609168750146422390712350995658525269096340119787401059065501892206387951788627780638404097453735681811970673749377177519728513321491478198229998362068649742384206106816939676030620928654014902089198581790263300925644492168659533314783848453033474408990914957143616839670035567062900251346889790315827804830137584834935975632254219396638117193005024507795947059906824111106261640214598637817239336862388241016527203348556920316017108130031607576996353362833414815661636564054160389714293418697945305392843050887459759519662701690699613644093690861680150448933778049368141797367724777394129441011802499615514401070974017073311586919321290425314261627552643055224698321004211025039296391003472534997527333084378183133207550451960399126155312086521503760192690670536058709609498280833612227369764877021450846368655105927713702563267254429378911961485687237896901393539260581045959499278941245861757505803356269179720886905842564890221720273082854828805563948993661629014919064357705761309960798568717387629289807889472812759636003866077810003706975901793409658665129362712764872513875846886156886739643668501537982440091499390829343934601419421499397708696990777755241211876040539684595276182746919709860892970209362625364927815199314210794596976460529530292719311257245153517256987057102985573932050604041665688546689219411935102925791357080696165078101425804510574925225876315116206549060009460633205953199254822954059286697007969724207559817835486554481469302989377751873102625292886812443344068746671316180613356779379668076040656506210995967209321035449328314140334048534299032169385597582999485025991987763893203932709245666726813713228428836016818294536831631069019734599121629277770378688226700291827966359051465532000569898020204494897108817814438643297148027000086624589567425213262949408805734104577278254226212726520847651462698148105372413262052862189423473546583337573510135744462542652854790231429864646991029302395465001529276805559246836718989874229819534448625252561169246023158666505766958661515919074249843060275260265086209571671997393344478626645849045374024586784243419139383633187215119280724706038515900887794294377566384816077366344277648397284662944467025398293021871779771763295773832922603461486487528528145292906100355123061783679273548934866415313307600427391279760902242372809879948893820265228388066518043913705534128035120135068397281838004611845064883274343189887984747056245331868228793374648042404422941144072193436752566046477003526565647106608766196419595572601930138020685386041173903159231690988037418651765672450091943147611195259910254659638096737836520163657157030452481201350531771077890211822551151431589458218111084080965129669545278171047241906231413934621849822037225506725574221625812993460747929990195967333443329656579280539323201312511316416994093041426755537892321548087667202053980620281823823238777914203742855600811891808404774015814719950579417658114950963568543598178461581731912047375511189807190428614658956151717516131041586457689671908615908540316755950442841308357183294135179659942948074151914776213329750180700843363042292984494287515522496862785673941552681625041168017332022986771818672970429938834076489480146563722078781521227983998320162069522909395783343173454212289367802895723363951399076517434597963021501609153849374327185641464185134167479988166730948300744149197530516276981015390475605409778576865619077648354187249900042658209254392343025040999528659810914947936805795118931311898898681158010925239498175531050824582493160507786003471627727929241905274934793714283896944284648204821155573716159088189576667949305211575335435261964394209786749156639579850131443849581878096177107242684060494727854272452599749357667402371524037332513068799965421993597278349835398563557932049882564413206674272647026421404899197599601136723718449697400618725441619804366729503940590635366622456272049363031810482146407535916298588252977356444156338116732538495954278487502980577454251589928755397717794289892019146918332862121894272340787277973194991366892403987091334563979710145530955441688919547909835180386626911901385865758359807897473583902319244856605335591513747208746668173352762751967554935881809462931668462591949039838823758656418192657894130931529226320545112110133835197757455601764200670699133852295175524796257160269386686372242022044323391308297458542326659398023205833036179722818546122297053875871465274447115894401058205487492678747762027932565032081383381729774927129825352658728646644378728029391002573665735791117816949544922399917548419454002888339381615664924939831236154742490744604428644643350455694778962808169560402271704195110155333814537636111804639190260746751085602723491857193793249119108231460137076474880185644613841409320066594975939917142203188974444067448040852758752748242981934909523401004422272684382504149738757390155595541753787006230129760793491148616408678944462634194762978433977249845616720554632138446017279777632810156805164150446087577618036330179154165199188010052316765293344733764472742198943590818551186008375396767174562719879916049280383957525150451771040501948219994025829036893976513717355078481932886814299067631319799665149489778651666703377117189504901984350136227438699619434042438984913117703258353309646312237240704702598370410434381554880853605648143570850231177369911163807354442458293145882767188964094592214340874706379991545957789977631250750791398402723539447118029588651662449592581681515449817214984584887669819553072374999073713804178276699877055529293244673998033588857424404796309576247828550177056463426294430017889666950481418522040139021013184785299808776672780755337799067635514208010107468195488901663889605411702731384219436818668305128623117781987492686679537822218583838509382716142220700329131120255245557140504427958547283383671446941277811066909357584654655159486749722516385398829748689548182893580651605650498971548745599942300357059432018135837631396371701940966079611022054500225495324514590479114990964925605596007072697136244171028569744118417133456887939722129238912445525338600542575191305736468312315480782398957825515866732241922473321317817001574814381461308743295474752992760462670581787399849810103022187730693637992057957586658371911454645951025233970880649989001263837187576115246887456678480788788730863121897350640648843198992709717514941793590769269853276076618465742429087676059931789066736618760401800985077494410205571012159214970858091021541505087327928451831165599356658187524708029333572739981936742273885324340303498912876432860605063298858121533810535834383304877931212985211442895053203755013259686591172894691705090519944818711691250026378361249614509995762874822659147317727508397022264451811195636235368673676065487010904078062613752438832945897797551349818219215087093137780765523117624999842368417250560127160084502912583209565277900404137319543595687912376252475495661521337278979212341016462406991556777147540900631420573018989457146441327994923087187518677597554781053655959753363164542500117083944090189751073078851962150831315975089809003842773395944232496153302435201939407172429318112758982045219948937138912721914266921768398983222347021061340201418631690282293594236195489439700957802201038311907987546533543860996489046488829037158447290430293115862865007444661364302961866261929910883644531899435020106916549466631768512793746957254680530797009931056633179215727173161165536061164796445972435952256009397773844966943227398478067895778868792885582746698464905661242226497701616366197809618752778738065521655032431408346004145807596880820747038610610238930388400808909373629326880046151372819131887309506436419790286551336411645571853173092041889634179503635689190539068026365848616356985683692564042903805369409964685582557936865959395791973605868557487602773601988174788469338508044374298267148432499878661148103000456926658307565947998890172486402953898014261954577917282284176473725383711186620573167302095110817726225720858749473111446507789031771169108599659425685944298785443724946690454663127774417256631695818575030960012084925980864733164379950420686947791095519308363784702411386762688231562442640048648256224479769756036999601152291011878680830224684152845453446171032599057858444040550160308141343870561529930077093588542347167467073955379362880714995904315355849602704901413056858296225490881355936999306206416845349849104933026301301024663644118784774067095155408817137916920177645921131374678835945688901034649941855068098457646845193007904963663619761452869701394340329429654653623185369332987184719564499394521710503123014229231945640393928708277318008050094108851613734983315077922161887684500151966131354995435255717873345118943690861788780518748024634725502174371031235606161909107408104257221642962107224835449689448665637440812253788733808650078179551456047856011245129364808463019823578465290508967724223450341503532488215592403911232501945869670516429596360690345678501087365380586350480565025486925406489961961037343585431058681363978663976717278836186345696703170864229025822210262244524253181180281992851156401332110592270067940564622863877926840463185699552460973408743052112296576739155190283608026197216666188149720042464084554823231529829181911524891606730721334695470547196630326104839652127573238650042735376219988286034935239019334882421804099867458931960124792257518950742020078797473846258189497499295040651290017701790048955770626182529759517082164529676784024477730155025964510840125829737859078243599999956043888823518358313693156926795027096229782237683738158600904598806599153105082635888396030533643394844702581346258901933262753421966527992981578491229548103061046606386297989860686050320860240334741638038357534981310235912496673589657629779293548111550717733921705852541373679929539629210893859361509856607759827104580460377854224768379864949672070401860594483821612851667069649103946296469088256648700683849885444731167485918386680865419712401389201566154551747994524684956169934659456942182160855800326617770440663380729951839721153063158424247716224245418695365805464616743598235150687558230098318822545585649659003491413385854399480067588716263805809852378751686706136490858283024803479925747577003383392136160755243432306421538756909648115468087077637319092176265140867077700512560520544774331546856697243342394864774956059304744483049926683138787272300855169535820888896412362044337452495297935585109066725945548235122053569073078991767378027716999861123803256308939461962429372837269559451804121711635949582501371106788871884097529106085555609856509457039054392628960166250914550909863873168684398634781532482298492195846803015647673588521988642529310819339975184488305693993363151392090296047834424566909606505445286364371581685060473955800702893231787113289195349914504924456239838499840208182039381135986068163833875918341406371561422980861320179256203647920722470557879275845370097022247933986780438115153818570637355063967508103563352629794404458130164512689500602244400698473094209273054722665737211581894536239525896845486665125051923292125564973578800470236797738450340191110550939719351547149095222143019394156366753838202505606673515758664258474971220880059262001000108603829158214685950185684619968587420658947545089956498366040685374563307372720944928062631183008084259027756706693239784533991546270911142610414141872195252250401674970105274756516850151255756540115497446096312177136448786225562043445158293867854079535689586670652044098742872704525501964001924162713628435983331055340648838653718783562278167748410115171523981105378529841162940302859414824767321861073407512943237836778134567966674774006068714379984259279475633296070258390797728017075540835943169759235436228292590204545078151989076020428956523823174026458649294967930422987412698063288670777972126357034282645746042151149726299032429471724505088475101168971748563867617929415892871974068072701313747142311921469590977263224570598791313375769237403702946024907142330581816113721797600197143395309133456295204890254321885002521953824262131548619967575579405681848152050225116522934772856429947774132644704620763687135754780401127335608394695510233847829042329853266442669022430635555783109710056459973287253590610508185347180556833293898243308976661859240562671924098477225107792829142138096198745301088770666544177669838155640241287552796596901437387443512978528670225047024843520896301480202432128067167398094278412378543036349223524862183664780374340427580907745000824586355231858706623760103297205166125631236763871466716455420076823174154072209229751596234531962012762509234149321482271805631758764481274338596316894363060832437489064571679890953813841447099997948802713197564537800585397212050884629637846915048975743053782565146454888648769798778915541261494649998807743715574453980700501633684861042297725909714054150777505510116914408154072189451975362260917073031221381386670439998922832729822410842232823973661938661848872540625911957297397084456946659878432445585960388213388149421730626329341804598420245079387744448668259446965539445686352963528356034521622887622035294668280977285893229422720849131187081880027274441540813756870572093952277291226494385275159127467532416808399306622595039123434574788597242016716727569807835614292326632398193525104818436967179317860329972173673947270767103711528871478178499011041297833797339941683644949015236993699075484352852753138924999300918555581830059085890950304918090991573151401314125794203836635211767750515185278937185960726634598057442669443642159733917191637471065574377467379187371692117132691722556564171701819587516851935660322670366436309149402477683427391631805475419763603402342455264782970308371640168864424525244592413082111213389391287087416594872457612381109371667996692002516017879836421158478866853073254018798878799096493037810169631642086803194356709528712287828464285559336157980495240792817490448046636492287924102928003819367354086897456611983432991646522499697403245883989895872668395905232992146228106638046047451361912949011037131462362702731305456186646549307436974519662910378076287444247889303544927298016344598286085913130996195755777404574155231968159868324649507497526374449996216944536851099797931623690927377106622596437050594069708762285751832557005136655923407197653568777290554296540430665005785543942646253362570076167706693665123561182337810072968582736151227506857269358745962788139945174982167156301695038856157261408490288872397769106881216785225268883000103884644768794368312686521402499772968048555269272587028101200420190836530909940300823431079367457059922218339484934571771048161969552820315092620655429890600365215883533002919165158112282882725456849047876252491295706873365335641026690989716252289540681010874027892768154000605770431538262825285258200487832110547582132800392252218113696479695542193904828298001158967145899830222563811578563943988621092318796647804939340175928390627292730019608131663740160879313511360541445023417238204069661969258510065932031756083827410219907096356743105083673046346326009904374520004841550231769639870452333894979330471590570825129213183635552461361406717914499228964662768350170872133323408727917746033067283680931649357522141363792426283414534061253282149594018745123403478305707723459079376721769677739541526313253878796445692965152641584281913707223080557878423812630646306558669172784719458979573286630675427080535974545870156795269024681925507212106183325740661708460805494915188751864840519787328352658964399631090199785704756688786306937936330412091496842502892546935222218382196351736724039873493535254958284356388111277828158576019950480887546054749305109934126404551951159969106062732341145543001803334041838958441503041346025857501292614097826777425327148548792629197038180548488417626914730076172409306923346703865083519574520450211779118969981307532478055089055930196670753547621593842116160231917980164056361059008735938249824410179840039001863857261242385109279317611678710525757466408975991095132463474385709728262681826019930652930425235567054715126003818114278270885286535641109664854019000672136028601660789821708260552804625994361363615109314608083784768637106446758551715792899238678992887166993382151218812774196057204221437427108777118723128960020168852491923055557442206236928983409260221694335202498992612503067591525975971246508453584013501038397844153508392877606845345107025979633296215741963711600880664481689011632953021500302963119115251553662915816581273565931287724308493303828333228258759964271453065477005102475585184294719041323954932140026826321861126221781420910686939708975786103698537687330793273548156175270664071315921088258578849737401875293065866315152277189220960869215341473348818599396470518039261856632869456963067877990183531746733257803531328013398702735859884451774557998144997824904938287207003466574579895308520267056431442602355017262512107065224110064188138794242964214004527259501784347627600892541585681210925404253580434767542173936615650335842190316952333248058845319374431710360464130591716749221540102917175767087274768641405060989889918274191826240409674609298232087273073428199774903818573426288054364020166697676085614148170634664874721302185430940732368924608033398760112881905333622678682097884336151951627481236504416910834605316025008019658528735778568988293703080580018654594750870253014019783800285055901186543385278941534476718285045963692580193843279655952769023090485071037272211947496267320561785780828752746825837471449783533344497832033415100899690607087642444616852128326671775421420963713646480761358121170970310052951054634194292075432760206920416511116640595137720505742344158476267804811637555448074911474899664471290882418817615105065101182634671630366804588221221302575297394420317212676824569686645462018800506975590066993996756757665459743113232480337041223141136544116660605051173922185155155733297119211356729414816663003049069077885401463020757022013023545392909961902633145795624005425681670449993349899110646183796930594545370001416300247198753789088968450442705228072127878931125431274988054910280337512000249842705457710463046442771879344392285299655223091888708823801414632006416181953476363864635387297211838254704990515824567626136005290405405180341341447073663226245305678730787368618948835401448852354962953593496917498339763522189684238055422742259782007150530528722228394584384932474173237563681177839342802767899251595952752352728220894839294201569073129053655616110507578214981864134366121709210908659173143102682472693518605998305679705097203860699812530866051533408021251114044732969027930648082660247382667305104793979656962276169584920941330103609443630957165671589467436504728057563827631351864470192224805954781870225245940730677825461450330761646170386850244802559052967743350336949517684331117602140098295233019387721921091357295673877226505517217171916793309451108727482389717517614791449408728877966217065652639621648770376050298876930480255270699112495861057638786790987111489656725676247317969415278319099605141923895184501711778451432621611461700454819151874586759420945578626022719921736878764896389245248961850868048832906433072398844426037343600011904097716599664505444908927996435520364995467903873470884039348335496496991030014805797593483428609006501505251207340190572133490586417869456910225578324902177549616569263731014174384882573599014055729595156180837068471757970009826276112850171714395004531895302583914400137526184387287419585497059714157471544743370893766443133644378760244525486965705704179042407753892496807120470186812544088540729351988975531628412891190756800220004248471359651036636712260504059347465529277642426512634251635432827225241601068175982559051506365025043338024393198767661658206597583305956582632010288268257789182366260691080149407462482971235896938448271226208438625042365220076262655409374818894857878679034611711748043656377753530938478786691874640539748028634384438747411101322787835982834546715352881803089391905539659725004882637285241385355553457071221046317318388809113074860530329000977746191113811663551757595587019366624905231639163816959586045166224735659648781670034004206875716637839112381216738395545339336370649839053430881738778087375890219466000669923489458504900823561105413463719317828377950570620139147821480831632143753003436628063107815423850130175505501097651130406655543090579932147934505898975968770381512671425471621460830919254988989261780974520494745716768481848060904386849378415878919116963736327062030861717581766188227549624682393517928277030376033141336872627286095932045630777738339141551755332125686989634629247986388071666375083862170504236237379056106835560154670145738669947521903478046659113567786709956806262859699744013583690880567987289304389894071572899130229403860941983755871083146454937435109289703359405480092646717627144983958060859671720573169068539788889861635922360028032705943851811198207460810764795688006128141282053268101392950178210869544717606319146378506780440173767761983646428889542030769461856183378794100246348034944851056425245177016394215390972549805472076670980476420223524128390585802436631420179925144882974074347414637452857879097162209354559765135524707459551319252928903824093816808191382323797049065906226881347473258281017942355110801225525446755155988344087943416959173813599144130633528284018772451677937962468251843226197900471646122577154712056813309637842924742032312142855661486878153065164178798855224397814130194822373652819358615191356071178215297621262260348019474081031335179130568837002367163768597800373532744382119956144183077256522294907895115777819945424654866201739748364797145419675232082708665400035890188999513497363232077776252409126369205793815663339875727269366084973306737905545160660546568327119781593057086431905000060144894183649333921920115251650191949294561794086186072829613212899474638087179696004856376587144805809880713099063504305708177678608009039775965098562474208219850465333482824979453613013612342560937591278259490873761186868626402964096618553056771907153263498218995004550799902446308508455642206986499972290499537617835877101847355167014960054866252122087154580687446769414682910611506643705133057854432713560638082071814806643070509512386426006701019239261430009049617694016289633472729781337734720993007165652168851755026000599832905038091287470454527561565725287466736377477692275080822634975786138258202282895333915941581748307755644876492248009516439989964356715636858883946169873286335801509228337569197052221028951100470229645144338549715838270784708945460604122786147289797841557544048017953487079929362501643208172017118873159848805031845621942664460884077753039298103327577920922212390200413125852114349173382130773306384396831475059535704644347139436778417805868852321587182024398315519076835801507204015991429660310212614285140022138161459468386933355206280984539047470482011086966812698731107456740507865739721716547621134427206719475498480654148276680350333016870582073936876982516769857218678864714613796688269521480045140422713071076051642989498010679516849714707764582582163079618110996045814379589415018025293828013395565256649264980151915570788332751610522608658499079532116363416537050376770077490187727048128036764762613968534251005688993040032261785624010962292368253607248605522579209255123870533573143668962713227906926238066980276237833415418436256240307918879064179378105862508599983726591711475327737056364812093667789564687201942344701642480944002128830657284284240593494551105798201817960957578511409041049411076103637457069027654230256390159772619030338322330397068666293734041657104222264208400148012007048798382098173238515667197400284600140311230388187386266828605491938538461161613981142121854079882967337203104867763381487248509836550312330995199813459958514469814415503452698882172279873353183319262072900330280558061255445537237952364570562899559260901740691087926086962088387095283531062405949936347876459323217858505891440649706946948258150661160993454440714580938757333843224845917390662567119665074165745661893090916932513942979284806438810477976120128930393301353717956926965661022210328996394878681406178053064660695422493941639499603203656618281249287763657014598861721736170717861659613298806282258885043526562901950090637645357502987607037295651651291563885340612355704387400371914941496715117548099251038565687574453840860532416790124256083696637904724511741242425747536939760949252365154372704027817926732416366874063646445870358697273298165299916104841606656643407701954745491703506230205589255142620350029621622538720832656748750335016340828540298883804224186462343476213697515722110198524344932806037923676322970929278114610015478373169044578984515845310316771761379601498644952111478270191308421805812473001820837121867966779995761625399859072292861988918850226746236158418489987053963799635308011961895896209129290887751177880501940590241107962190855792260495336005816942761550996165759043109200220812042906247776349315387226300280472971357418807773856668395977616571400733013297860753312384433292139348684749191442045737474235605644513337858656335023793429744881225699623530830673985750493687888098982175182026294363024563403578197035373468185164605618567706070435219111094057823155349561756523294252620866452690921930969272235636826450792605086228131281957034947537257206104312116758052906767842510872752677457673688472279943856532877404680507465982746841520926712596958617792307453939493817276515978572301585217760634853250259819744017173567069630726099876133017868999828069484777194356589574749802716100043260456090261874168052857678277464495727241195218706460031815600658135135637293770564671749909884295949934804886208465233229435330463756239095832646520325190033335696957637618016849438287193699902046576787473475143105525086851774675524098173819077583428827845274053009506425755951862893152514142355399534240166898365653070210285796723257763428917653430010132277630421806129565722098850914761231463918523173437591047113819445723755218289854360704132218418930402810230713610957852694533140240942977706903966767534474773007039665780075742730895189844730812102140325957038027057524315389188655170298233845645623709814695892572672435079726378164154233789555355860175940747449837326037724896632451397616199404897279272664832304052821389960368969011944307965850495426989273676957703678459398510023796414657177722935190606019867669949510298395344273987778717171611102927883262069272007778760751910490406555470552113845517232067141782983897585957325856898602836752374542335904853467390707741467802263644804028421322324436825614921524744226693344235212295886154182104600862869596072518559254540965327275394345088169828960505527378331282496976884812561983714346152893553395272739801194167044705938385228259153960458883390671484031463852035698791155295272001920849174692941282425339140033960650805581311422210136345908778252375956516692128420725863496086682344895222365429103409783956881445578547210625633185906559929928830866162205596584752272274604263378337162895954053225575424788050221802695264446516215045118567238996248493551996690632168415748318252450451216051185560643481972140221556819409294442637122791576429256905628344904215619819583374932216398690115050101214505882282397817108523324445610268897512540515572369037737446847599738596814111869678475996300950511384537632612056366029765630145513779953998856440606115381561762723556209886827344265154503521988324913600955027603128103084501406184789675804126428380395337681230614015606334276743591991401010101922389221891762560297077138315081140564331586885945062694066406731852195506173081049683355838611648151371291434722074055752566795558472333941867232060265715911128544488221922350774623597211291759921838029462110768138913477465726586988322962120444946444058772965667517920143018038818912679283656145424328663948427983895241526553544262679594544582285279838591689795970793109342713713560040702202642606375942112729166917556168269155022722801578288062892079072199611911974798899622327043749821625894107902146322872734525749440173441742435119886060280773197654204415124808357339685294610850775211321022099762685217294212025108154442139265763078068253477240888886606101918208127965588029275332285776932369219615016753740651947173835157379525489298046384501446443055511379120932005673671957733481056836116804988658490092777185893497178724852895328574605245327778363919608219560906853581206206327754314757582583293310857397607582288296520649865716412063364942178942524576504785469555112460461541978546777773687594998095586765199755172574334283153159039563989209261094456177788120967689761139835663752383373343021244996215142946576914119899182575363357250985052791408193194548438427079420118023324485125959725737135131340682882801692142877477584909851455010488006426158754039928883106994739611398918855994273551151744409417289672732532611390082048846295225476236070776359513858396832182382582902225159303698574407359012947301923594877003430020198496907651702262604278531962579237883954301192603621273987932850339204691443089167241644372469503042508030541334774042334508512912265011386565624545188558904299402528071173598589939939491535601576666918870912703708282330287422982375525685834815951173065361515927835265896209656101805623091687863554383645940232992384858231982879579728097911112744569252075725521064657056931283692660186865808506092828088736261989946849230920641100451782122434432164926833473152841383987078340654439374092603458439428187028557398282703911674705182710731425757431764538760174909778739499777394545726574432477650743100437239925415782584940720536400388943764942335692707278436499235829555902265328562551396782553597737025720084584845671810969857291276929429919883786559291926260979369849827044691556859344762796309716907260332090225073032200777236430990118261274423578678087234418510055590402496579422515162426923529510883694974546154189108622845843754943897936134900345442097182437168604132719850586615481466488751317076294350549250527711977972798246797282307346415585886310660412105475036829095276510869962686472654427556887112474521995509352586840032649831135958727711864994161122904290799110128430632666799875858658028983725775624511718745712156809579562690133923964248904999915219615590276119801275043196614437771253663296847452214552845426136389950649959336960968411109202287701924082574149996907252969067993674374639053575536744943746560686446312343823404952879834958997857857330983814932283522417543953231585209643879291024981442324825412264862378284049872560009312005318248051109392746155022459217601910377654366820539367720643298047377477694799637740652019749142306097046062907059110389480581044021924810786733062814153344816127654616010382294585883210759796517166572834494723016314964146848459360287764076216597553151620023901415059585753324464393694528215679130648273138640475639119903929612982455550766791799258195372993797252349661352449093289244769707337500746610542615458725093084395244383013091100948953511140326667761858282409807277948488982304759971699387889998953583351397977704779960672424432683711642899023934230841092514047110587499913572899064956501181518417190350830601971547417289914481753365249349119435984224555124595784074520618846484633955586965168009564641494834398422341255472792689755835446449518665128175828224499667278961862846144951085429298707929000565239465892573877380368189705353634247135961883559564880230950909386923630381447314262100059119258794176372370860584970656937408327086289653068565199858611153927867956941655078927907202611481437620398156489041029950908991224208284982523924381014678010011797116546853931138255510839735460451707365917245478018175925458879769090657177881216728768908453693398774963335830968643366967729302799319836981829249096690347114060869376250335949139230287818606719137648575455053823721204139663176509794920155112011154843106885723788947489949215826580086891134030474025436434950145918223322613472427551661573203005615044676382697708000918749748124208101118237046223342975708167291872372311116271600621017368469664372834182782243932580717626986046477971298347098093528737234810865618275727861336278345463777810087445206059451227976643354882928375183847421297051984168431222525443183665505336156653624365007469355092142392667840043832033390706487335547667532969068799963444515085891831020470592975597654185080225403053185417261455557302018631289858013955653515184804770958272685669820712973622477513514157026811919169248635541527805538920898921571504335340713076055063746689238253587805792346442585438287143371952813548055053693429771291787120746049565639598221150488024609861394794701015316734613828350658028108752188856795415523153048348134264036497383662205344777252788515134222228726409192202028898772531813451531771035276937709536573467165927117129980443519834942498942131817340470336238661510570654360958125375702801815296630795978120149548853161398559699601290926381585185405484462125408949078564772865719843921762154410383039653476405459334483036375477905502298174475591482171172793003776243240869026099399880167691375068094761802151780191879267633815317739180403547740433955845489062709000993114833601678737945854786009977299441033827925435115453359130854879094492228653454029030733379187102651168589709293569605903994853293382100912772464808550271982514501918704345001161233031523174249181321641648022511756578450380899574462951622679614937186170182204196647760271553269602327442743240484247294080164038663125898168681681109746836821005772660511210367865928933984220665115877357880758180306527418141032858582164811176934873131837357794125162953589095718512111247266679991755454426718484572267004991384744123461069679309836254708664887150156519641383160189379688665311995145171281237167343737956373403271501501466853551962595475742791656746164588406460896641176616177186225914457269282600495312288604417212977879648527205069531742523861984427154051113734295912377454245178408034732138035455445459470179490014859170467581416410933166970160479157240528407394978660063522011589159739153810627616957074563929734744605782677977100167394845051317350617441214250548102432610557608924356809176992214085876015475717525804839236838792153187243029880756804365755448432973304618074964613931117177043205665183730076368716098048869300707769372426661895606695342279383637430065208331561055174905726843460218516283178287530641758450380548972632117536228130325151322521549138000855439425522407681824162238644894858173976444586011428433247521190946948037560184905240561871889790295739625307737740972541153596826455913357893639570352978088432001937508750264496968752896976371682495244424290862510664435025780629054660168414187241999528888012858134682215021719063178488961032878918392450117957698548043634033699599473713276389341971251225805333393709943817174908245387000040409414544211058309623270960261822227277695867636966597082339283128304450257634655356515486731828456035985469326838647750133577564724155641900949226313616066418135043656410539501571958449879108810139969679659965151851691869109996381132106160905271551387416314094923715014612089734668703173306618787852793039308183424347073931014032067353519333799924892018151757695762219860389033491298978028624343084069983410055011130578683042371956733797022006593945342229799658611007962323105696581715039630901425694292010715400982177728762416435520300727679128200651340937397837222674172823360382524791898590601835566841427399594981874656090666875835085209584539654232400689293040592650952976116905530787247094631776169394893094024986645587205394249026553284262935253329325786566341238530255404621953659797604838143688976959716956180326962556131930005555514941149424228987104975123295635205820842877861880313322745520268011919883664505095195420035172694726218949191115972555780596291478518189751758216206629994404585308140897715694059073824223663193000223332957624550780859179034067121383528477665005813915987103271993419594826243799428115839959722928856187487090512484709641611255264937188197810492415441249020679375479243045738918407513749988078220075209718423871064746849931405812533324054956839174588027613741232880671860547542120800967243153889498698668654625137155193983528056704912443665533287434073007807855173039213959920792592571233808645481588849824790560201862590476935330991723229255142180401779491602033185341476626051429778442212502185063814645952207801202706976747765671425608815316088128108795168519190323073988965038926592623107927858215236762470585988552636725119151277654578802586984983014021567577923125210768789938589369158702956143629202523580628249175810199215713321520943773957846981624453412271542100923623111253170088647681635667780809934128702178061527478712903004620576539527621501078469406672155279630864984897645116182799657338173868196745148015625260095114572499549785277468703616801632199191207717865637980292156110145193950604269190252595606721089808011226532774019632701992670491363653708256522865315860579250404695384622244191277168766315572550598986744375299934670781410289539381571235531691809850175200088333530553148860635754019026351122912878210270870472470797361283090598506617670572146028392603786350128973229914090582931849804545238691749672644223786488057221747157879030845994273194035636432093568204091237823712460880373722671348885089795605010388142379636376722910032405549966610961950717709296121200459117542261192194443478827939447627366725179277189848772673922069634788451117910822430096835219860316649486274006582961500221759685374660789957667401247981510590176067752894468655832437104975063708526594850021797814504346931132590647723494400364386144038961843003672995859623224298675242669453550744532457710520889033894730879359573155023534168014635670376942614939409920105637824295485861581790781322055362470627617794238780950802239239286367981771259988753807760348254813331675982422962431961232733541113563135465367607019104303486017510394806642917046638183281023798917406445087651906282120779870252448494167532351305789537379111502041500723000415602225123696649107022812554977702494950901497091767088483029754850136301099605028263873050368940357345684234791971677962614779643232949366540196550914245827694045565138179302201722135790440901002554412767288718421334533248467819412767056498968073396267732765240524602284919771760181663449576500894456149528849122574869227441270719585562328849474713999901122164056323293679464792029148196305284268553850478381660982665865332416094248617048548369748799726966021569502979613974044858956683645813402407574524615733527345096311016286604840689490933419419623851427048305198466788638621752792729485494089621784562573191510059680962566700992792847882429429812123294712744380860906655332845660387566696277291919028793041857952643107769388822440680910225461230982951692687368500608953640376770865883510355548545509387707243179852919746692193925927247199940982464469845128967333744821890557048904375345536622766066577388115723155005113544210404655424099024861633269172756825140151057942245750520576900628388221557934316120525688915355803829168174048330327893119488233409373294331887188586272452501700165590863060590220463704017412096034141464887540444807028213873769018691219712762707094301093918306491657186821372698192017015202553540881209869655677617357764119379559544017168606323575129913622800405750764636807207532826486592132676102741127866441968425821307511990791688668143592493445293312118241703197385036032617900732870866820958647250255034391012395916749649904153263747380516460592363177924463871795257886115951096198660919371176591449937635366053272725105512347843002495523175658019889143905630908934094346835602822690967252974571343394433928631898178797367508415815683295582870845242108588133285788745100407025698693218626386614857210509438856724218235365690061215291409023598111853036997552474893772309931741797758910205253696589594660742782143633340174549759315063783618432148564882505054296905630166877987612620852871819367321572554021734557601847171703552256095400346866841812187234218491903696481875010226724835796063700759919447657826342467292101278794836847952324710343686869469728989716807653305347654481132938429736543862448361587029907120816013119673391354849738961924316455213765056587001632300883233497621619709366995956542835777506615938717820603948376719158772603513012427103529149796238492962536125611890863832838595304910074595155255358431320892186848805729046143097078780682920276209630665497701347172513601714142640330080190891849129477738867036690091782514178162812495117576199708553959975446520034222605972913855493100926986511038047323085919597473430052286862707008784793402933815005746597754010249213792746799333777907831620100203911249527519641703531627833472536153672487048113338916179700287890590531931563642501080134698482489319497952272995763238946288585107394036810695296345966740322359113307411491743950291343392344762171634352686839479969272201417686238507683795304023970952103941734061389851380192432274498847764110936103296058230025565122878120914665737736716310420695743233887171526203311756292920545337224684296751021475281339488660170029076637362567547014300673808437509390053090229430264562573478092348068821584262146461866758901652929126143127841946916905161701339721791085964103791072375112621373424933871424633346327820052440877777010282547067821654910142312760497745298235327063506166140795927587191579981186850650771388966585368570987588521507880877549146194574318576222949648698862516739163196022766844511840344506209283270826170171117261621976442426244793480032758303047111260307294734099817404731073356734271467357702689672870761965211764355743162141671511445339900168763561372126922752314061985278136348404507966251717505341699369196882646026489286428542956126198064761026825300296973947053005722438566496898355255212418324394335360848890145493157730590925404805516159402397650277586184331813183560707363918032982684890035096313044673050841560105179745084514374055166203854770168832678173255984325621201345945626894918509326383993936476363233665885489836409630293943673828843289503916873196461544643574732795712761690748847887868255691014922993244056667006131270462987998380848199042490639313638434658699390039178185329428763320330442197366976256022871996667337145789473383212233604935022718371745234851788484957533796096204363208805596575381066007237365258920634206300194694968781106697585922663173130834635287027674698400299022865684410344577251588595342027639882934135886713543638214380050515148185162099886719787607380529880291167160646887111784130251215403550585680929443673020972738835706772608269565967419665938440927858501858845679639300433753539235135771123654298498461229339658183420098705022461862048460584499016588359785692431240482874092897066857857879237534514223655437100082816408548663144483140943983398789622568371157415489377442224281288970789426955996815329807701450594899606779005683171061287348444045650185901122112959334925768611190148315726642079641506006730221773531194980929229594937597538425441764687323291146281711156913358416141100995468797759488797220678719752798625578744567700435099760057332631338882982014443886854549897828904513774347778425252987119775082676994255966831481314013175985275622741088492984443586981566689081151689736105360734650649747589539577841082950338882889406817969231834359820191645882197893962806340029113724602882985277988699629268461898928058897557606232330073415566114244965897741300154866675067172512289599073081010578695972718978896021246124184878796497827780782068271721194826197229076162154366622171026137910664270169898526368013689740132129935866318655188644815796797031385305843914049098144135322257116989654047710926017343063615043211367719599197075534221217271380590543607628845671247791941408894625700912921159727218905895524803746209774229961621943268260510118685920858876741605079369969116345996724362695059138593891957977402391417551659609209550830469188401692353224063023323980659563181973415701409121146918512453172816036681192337399962241363814371125988662458454045994153830202376136759714129285999507072979905030081740518316451199738523615807494028367103635365194289796729965670722398589270576573153965583973432226752223071946473248423836092732430723124758867405674871561539196313059594952226604828023187826963714937019050848367824254772208243589417943672515304445362552343089035663958804517896155646526119256723600891786583252906555941996969088530562525643311873359994088827100436045874784222402471437591216057400860547498877252998342924569044453411261480129451387382920392866789248498958297589004662851284923350858236454447234829073181407059586027190727052188411820368794755043043957451676246931344797500486066559776667197174315987090703703897111281809816424440085489348958812916343465130882533641692454697109725554909738449034467528631622908662650925549499682173937851324747595561620907483677163757713217563810577572503588851603687879696441010124394922035175774235535237893231297405829838339259057891643570840506012217969467952884055947786120840216015771648579994506787874521858607995921532895490302441135502740933003356822927518066775312587988559766093285215163853531059363117220113536875144525515481017899568203528261934198919433402974871461330458917130135596911698199983838000925441434011712677297196844162291094782040432108767474059364702983059605985065968794804516324223955790882930553188899891787106401660639741109050731093889942980405875379731531672632154801309493907803857908457777683150917309937051602330518206639497553729994448227662583909495425866643422586111952094154203715735266127519547431543836214164636773339808594362516826817416359209584774721910546339738865428078850309352838895877715926533343636861189743655855868544605587474950108643147366617551969431682909094789540775979089366205445951408581427231029593088647252032844761770088594004233691745912737877540314189405945547356479637297794554197548213490784127201669779071557485759209763164967430494605730115330779462399213653485138305101563252109824309820960112176241205463765453089853992830230081024962802954143176455997649787597982129733191794935124802506868694012398684683043299555190996919943297334618386341648298917152002067439095636927198011527498252787671970906135721449502067514589720255291805236008914185504252782554083379151065786431668724427822299696965428926303811367600305316261901545200741090663671691568099472035939666240785883465767377893616067701061283494115077740629392095260099923573944713604395150157046503208432229800473316513229254965941893007199137853611276007891351922367056545973034518881929133380729414485356832623078841854063601480921458959830058602508138818826600201930807799901103594814508625525660387098456272875127075058179248025116052281065668173611750209851714557989881420272469178534432354363429558559870333683559966184250498368520412476608440910836070631109675856492102837805581669808225575969025043667017105692887866596312072967902081067136168037392223774885732711864865961462388157463531890054531375968730053408284773830842256620078891016533273362090575117159754238163755237078272202880396053114348416305777218140852955278050981187170354479423657082170181552027938583874209825440186094167679802945186902389258374361143460130441257404171359153057120249556073720935131108122141942009732907634830394118376717642574103992522143067583499523873418171534951658616511751165146156951076266914718299918022928898827168208070976454643764979839024374466798660376585777312899287720379069027132758117543012083617513359369512859297252062619014661144531720598752008339481257837018371462520162733161741596973094121831378513150126512868993121885440595789889644807391292612273130827349520831403504752490844220877366249339581767167214814419082778783206406113221170558119783977365607140307394070112596194539551299421537844376063371239926623560738479415566484373689694239462060809445992165152946158232520433292188025852157162122615592576536015366064334716149281004486569238721351740110851170130348488138505018671969986017479371971100873105489178855770291900770551294858198712578495413536027104368597304885144478977209353451264450719939541919606236624775152517145116730213250741456879143822485746499004383180121877769809311173483603590826773596864279965617474954604064513796099582132188282805305076437961337040799171895955704909238243332547505232844886534187714473516189090416462460855511254428806003570363614493493717389412969261173030473922312778631227315526874855784017827571253047293842438789009780529730196752010251794660674291640424370341397414702699242133484638795040546677069508050161712909264041272498449724507233995703164277421600921814139397672338970438679020722786198598632455997234271425711158948256243475287363353912865254484519380542962917691239348800662409338042071752546049747495457772754986882076985343846361985587263753500690609612523375565726875440558625270182809485429405117317589225741594368795819118827964337921929980586410689296309392181115456021303765163981878182254490508816591635155121789611843104185505514516853370067274090045533116798231261044854068186427187954645351781225479465858267334515953356264517434743328341637584618890737658216051773002439758263257883985081770191293959666221308804157989932608652872092605342833698000406340916876723472417399536032453093773698939078181227026855845520882687826053571295560627492946714656088801398159801882694410057487016110141233932337370499866307573494849692903625640464111415120599747169770878338640542815796122489810143911991828749796983941115179838871146822802291803511474069923499466048282292157897105014347488794331990557920876618986320391843246463117497557236394011827424114913081761502149813515909061567306868219687220637665365995113984710997884887433240316663705886602415281010746676818984865158842393349132791479286667406981402370109383208914696990997902428189842048881882684422563066943943148579550057731980484052162726215469008779638138913687921074816361990953497616323495113324787974776275654222859950427302657879514771978454599837369797447926652693277726563993733817534804019687321404320133193488750769636131754729375056847282501737733260435452516153141668543767037187509858597372801459068332809942283796820002753098945128111871395062223237200945319170777759407361393230063391810501665414973680800763828238501236534512222566889017765498012053084832817586781558902755747422314037234928003884517808586167726315273824649798481130385532675411087866371365623868043117886664141916865182583012586257225069112395560092631456929963997081260584165982000606091749693782327475395800380251062960554148689195021064553164282939440037234673204148858140918988133880396774408517772487900064590007909515610411544134623344138441604751521401220631140958549401767323180968765733290450440864797618518210604576835119943129319819109249739537812937754681231079818533306221066745283802992015354841642763864528222416540664022248586316811658284001449138962761971463743408872064077578225785722673435369879184267359729200140297600228339337017207152920748586431218586643469399759533920554462269195587779368487302468850085507657420973746660530290553264330319775041121135222006820310760552304749624665914860611905499425734866180440895339823762058024186321192807417153680294910844836909640619830824714610252418628679525899305902716957137532404176138520711687817729117865760718510470522674937888950468221567174750644030647838395693767694348492964834026013694791410273864721220693898502854210627583246198763604389192963508801182977058662128275993684204336218964617202614624301943715857592519447693203691772332918327212391871541602765709497933030255599857845045156543254876521057472704489823600292169095397810928589973037215140403036362575867367396246572184440195969945312617785079074850830704279093117414795364867717166834771796851814650335760480515977101427889310683271827493184921064415149959204437737120837430104798961231506298173187379700771301249910046759678396311417721083612020087337868130149025078617448426001636739876419082211168654383516963041584534502259793324217640660565106626015815280548709475201803773049923202024889550792011877433366809945085228618382163746628900312024723575765257458203722538072687053714018191000770351639353714146144926245028284351647188016470951719523268361578462465177252820017484163672659644586365968491924196771765185718048932988500462660610636535244826965238360378414987365862356498202525221106582194318703255894040040644749684210001126114977755865066689703553324826254175784231357568407402464723980533855385048960121014455415690327154354234744090519088001523862970709994193327351278980832075654004622454906349564172596708433553860151926299847874295886536612181993340639439953308462949878651057585165187020920389377987236693973577460518034582181232005935722337308109125868913985987332940344752059416725343216531657993054538970622917562272254442834603896871554940571443611856126942829824048168999384151790762010746912329507504723956263505891815267852523033238409361374085265402679101546051765826707678090762923970168691432401313107592179057402779470486760748961883747932773016967209081534971261110052839922369584463099065466328105005582349413840389276656385371001042627849202059567827379398663284275105051234246833436944477017927576638099867979394881644314499721746575408962541088821230964564062939581304044919749132326995787219467410237397683635515660811633278757920117701812827452073763553705188427768481575493062524514443144601390859290901835305737019467914537251575385205667742288837182302139541102532926620201355404993136358228330973395147168946239864977836077277001933751439797342347481044643991480171507589855473269484791973559887512905267212587984192241673244290720289687550728245547099667606650206193287378094061622464271552621176253684457745834463603577370305288779199141413711854120362988661721867249773433938800725884021448360453380376333561966281567646671046871036910970698144250969102543173214052899417372391771695726552388057792309933364848459435922221911248046026586788445388571643855186596373076928668559078950214751794493631898151221154689687996346503427244164946363807133112503032861776125749427078364293848372356363518979275223963458056355273160111077616908814630031365544281786082555583335488064680669516330520670939150540806869349126734384038759205612800370724828782470665030910790112251614041450519719492116351657442043844468824579707865209781786784258830170390712119482380186258209584830067791612520409810528202852428948730948546766195125792386307884625545204319420979871028259416316233697864989048914588877439871780988130675925035456785717215101957016874537692600584029684630891771233014053989965067235204525885229328630914244612585004245602923248923415624375520987687910683888856869803759678324495571329593400738571184936241101131292097699660173531680624548070793885317801979802004841929564055002389717830517528743004280388321501433487254329388987686790254009617666567257635730753080524333013181722474087222979676293805277115700116531981749412216105776953585603129755425354561917290853823258384079134410037297837283634728701033939198672630839279774792126588643808468644441334750072080791289910964171152304941376097289708597861861210448532341845613951578439072725371761188301888937873091284978982182155655260998836825109105986517224386688594054866204000684649072215117391959796456614047610003286342692949787860514928318726737486488900595244513995604312940451131492333283405182917903536347243875528767094490237183270137936863835546832894390355693259830506656211439661409728460227132707377158722509687109802061301116348922825947956255708042543383170775965968836097683607654791082108495425764069704674263201828608658069214781008497526937539900356467589249621372092989061933234762867317192040331952220464211048617587312482168248154398835569275101413444786460379421516980788155775804296758841003731584862770758504268035258196748613930780231675157528444305410943817162559955422425041394271128185606907057017205998784816066548782622422500177691587136394189934082449205459716879550396364127836214671959337445766558608988363683442132340557910427218518695001748296131762370803471569858495130537537071801207379329885424698012906313021709244793393946766197905104138395172924759173009836650331864578708442908991838194960951925561499636548945592163046040038413780659560877346953561004159637182377912459430963086462546958924702712966001573657245870330164561295124759275265070992012528053942939291361060003623339094344927440805593499292349418957099111237788816501954076775356240823341193042838906992725580202087237759803871091342525556165950500175440436662438553823984711500934641064020325811614648465984100375244634486597304395687233432488308042709673561907573980326781634866420642318396781541025809698119088331352901536508584867460495666923273106823150093951689258063081769255603166932126484863203145796356853183178035676449700770098454117546535506598067473483002020327212844829460654829744254092563402096103802510510986402342978733778542754344246496386929698525713501209752826897065500742238230399082712922900613445652912250618175922273356221984969670116630447575757925315554802755898508536800738182634641837730024121160029866755884103196377216864760691448579978483699932778896421203457125193936349334907028102056422237094115851080960641880951151862192638802448338620590604775930744978226466332897893173903841163240551057010948062143428499935570701119821166689352884677622214381212301570493472985414871021605893410465696595051558093736659323287255178276228846856215435946366243016531236559118262225921178485126224019358880751663532520874439520359390955675934468250153088213812493321387323418683220811490335026044377722888970735246084091082901832479987714173266898832750229657708774277599952416118903059883727772104646005488624574995789797027282264582117674457161395170428812699248703409612771288655575579265952965493310131530179597328992376632187191401682037191316180190407681440654799863899741106511903683843467893370137545565055622403640665177526633753017692699360295400247488472030896376022852590551910695176047645204818470539506271537883551135455278903249932890924090200892648756405373337533193218086986689813038218122562559573451275023594555432182345668236247074358635226974590293872233438758262096645105617964315438042085882060205372848321350236641336815613779110008684562459377520708865282855234960742732257904408805395721745045373319216564992707375941373740605425396572839898399694770801660261325503508920442244231608090873238575561552688278669072807177730092670556456407712605660367472766845201139389480460653985383298149362359163818361742717845943344006851877436640962390706755977894740427836919332025957104094264436847182471228562722484267006296304656392622863723076329565463031621807174039346464318609532080860951150102637965145701883515889358139350975192744028908119403346024904720361259147475817416718726377200504031517465236087127104728355357439189545015466615471605375084058330446739926073443944334655865048161135231106777081607977576310482197320368332025980396692688757083633651872274976566990006134059196673095336210860505442188946522235392225569411993694323921633104898099344503077424952044564103868064856029644171534618112018101689100478532001333536806722041804835504503996452472429414821447386440841406259489964387146289839600291321895324709219549499724147304410438806477185446672776937693912685750463807883189864250507199207421220479793063346708176420794150567423372504297510778013095297300327731848461808956428423740259446681273853917396251293056361195601885250449332565690562184823778645340633370411174535823504710353621110385343370396496318777397992584925298939196631529921108546792937686076287947193588165979565002327664205257858149681473231038405855577251214533668906884079027740170130295517927731143608310215481831962388011049217488484893459308073569635313482103988614759868704411124442721445807441016082294611727052276729504266463896801348945071448019388172817747804689056837927872426063327032594457513821188037361377210212301613004472045576623207919014403336597091358199057875734886936488353425969011298451917566936984554440098480763469834843470412093376214829045503716251701190292348289737894434893628977234484600787126455163569224052508234976714760529272144729496698710408334211340994473381227647910427597949275502611243648213733997486784337158226434262120815625941965480285680184790660729008242674587867067389748048635745595709580236638211228669463887983430645819895057926279992186878034092645457460756083859102253871085093982113432361138415699518631028500970029101684590537461967985884748341574276941776808151260213689242722776673347445417841167915716910066027146402392300425585871303659732060264833385596907872591732743284250159205068216526077418051265434750936136488844619113671547990023107322306380874127589931933670027963277959295023436792127967756407509330637593904720449535854903692537892867595245779448710223514492619678706776395564853491516281931735313249844878262125771433512122909985864335516227421733265246810975574739952333281348929238963512525473123749456546616110582366934551820637221738705634406152329814783647053461604516543132607480594170255678240547270028561343632234344526776457788158581832411445192584953708224133579184655765269938606219294358596031610234401652470650851153159353572934175638417386296646261606269753049077640770965981798504448935801675055684237394991362677642127178224637987131919253729044092712910483126825508154623312511971288060338495671493195247362982904881036520345509252191350371462108863951285624732915252172483273319835217251791776991643364900398958109714879259830164812583460302561147567536264120608952030663393293720461763489643294130302710705525654451993878129574812799076323054331311304708700854018254100520782004942507595186650971740624331771083459010822189722471546686481561630015358667643662146331783603598417392597549283842708566312593294039157063736246130055603245918625926220179667661012852462202393200028562573644090102672297534530903953274259197419274043992999046669765284150406267226301161036033622491446487631827152710993998260455173226972545562919604388337708998628729693929243724100267166044506902004155965517468233836023122064752712814573914167907234646594762770251811710066381798046198805280723932441564523573480035119083408645520834840074719511753618759953738598633503310818440714994117281982948449318695834276236592226216674244082111123527073914848955209084968133504147171092257540731695721446126271201667637048380762664877826957072320212327972029620255949397532055769830881534805190246801644385902719329268026126962523682944615470587282732355505743078220252527205415691642967314157423160311750345835844425971261757956153615182963339234458897596620452175032350280573409899390888212139130708785313455519198441430152540110539758033665697509374330750689404443317184233109734408150948669804105729376870578629434532710332460776048289079459966432876741651462308386436222522395535014609331698448430791453208846452780701456503364321714958182319152208353447761470953018607641928899561195425592422073920729557712833611148502465086570986587007411466297121307791799550661038864386280316121726575383309959627724642883582713173167030061509604004663114555667610120658422546098643012994989939227430920758012828932076189410727902912022370978030715552555260243158759810486998488033842070661306849849581595298890258339679992286310929693737806317874053089834449169046243264724344181738912104132382292438698059858928294713498566842355282499047913473439452067048749388343719024089377146994770257645262426024313801305930689859212776344961478406822794239361570518118970896941871072638045736858115079732703461255435707671228353439797215497003182673369284223060719274135204069297473773653051680940197771882788562660978638645209088844057646971462789861132221453625553266987257751530342146106415051344235451429287552567770610112308350136525990560548567958174729843177660840223167639138258910993027726553055888830252749591534696011462710770177575962942692549708115032861491040857911019911722023928032852785498013277024906269309620998294382266980643691589223779341122243115541087656630715887694311880806755313750416235211613090238055950442058810690795650970321888583937745644196830260522168564168285121333608776388784465590097554220917627665968100570781021739236947215178603403475800004563788703992152974178698117204759519046622882348882538329496247697328415712041393725020425931843909712541394128568547444070306021054803295152491766650799780704910099671421834996504420467974744961686005862116944355606109683518059144011098578047407355524082329013268436234138266881075055326912599663303020275829524672817673438714683079826370357337019633684465176972022142010638112455856475981742435933412862355139827293776064387810570771758278808235245524311346363795400979976697954502431341212565541531344802347071876438503211748171744102331426537088287930907307674814375235351049146390303969199384104899200788817457948005600831585886488340153332831703828191902594279208729453696628612191826276841107659773298924418271113343546355838364734014399683287466488681823239321832145609040558079939918655289539798648753567370273958774575994450139982816396620027050766873592968838583503440507352553361689592603426560105992785608371542438275330125454034252033690501535516082285696677703330440593318501854491664847640198661933964360998202403760759346475636588258253805861968127663516658946462759451980651592078434846582619627537984610776654388739141294115237351399202869434924294929687777382269780908439352973673048538594173135068784176726941227661983468815352684996495296372312080177115327228476840201910010488650982313028549040180383685570360963847710977395518353907507305237442873367299955016057425189792608138854854956489883517366793619658372358751972788584497437937635151602638671580613192017657512067549994313147462419038715745565887554162215667333735117662706118023263609253485484732468820350885037549118521545783571163012964631971330636883816833045496366267284984841987803238679911154730103646581466986932616110670970274299328333965188446934953723822874009388596852765350484581704393418415059017298088506545900016114696722909197741004036129648645120650377574869439763562923028130295883739833399450040603822913287009605096967121583232658334730150082498594604631747284234388448151011057108221959921658591129910610951084626429565424260509027422421579731842569955288834238635147964598386523609446303075136633029588661932461541823719236984733671349942581946491418708175308247133049274583657735742265903923585900811612060584510981017578269600430566086640091055113373409287610066568273756391590609826694301522845155557077629601394930379092929286232963993854994300036457510938376222308371202706434897808345384111203456231682698630829203227243603932919319689413974149932249184638594818610292034635943963685462167575023714434769634468503539093564305220224383153154573483944324979582693457485633656542591566854609956144550496104963203431412846241697772199607344001019334722862570997203849678161538504397251169213464950172988731009958994689663092351156891940670786291501825309057402403976891420977146629073888770099737824037844341339222244808842250596289096174383903499039667810880462149727769835210451991667486664800297277653736621133506164043833809537229383114730960494301654309879103420744155632418148105179815885079092997575285728107674149416273089521413824046143028868374089651541379021615357526774343685762459477932846981245204190893217603288782599486393861901445766838379160329801488315901117602409833205062175473349391104549949744545681105760822395998541503965511206229980304871096408302793549123030022937576485999548367242630443205109707923008971278737393114950599077105838358999603170507959956154811055331527235536055561464856187708631118696691959493222387491308562421465066183660685662042654899936195888151047132988371685861884105544467822809384787498367701583448614000561667831306215066628504431633786915381008466220691815095597630901451881018060380228029916392697478960227312283881701861688055829923135874910314458737552227716423497884865419892287969228853737845224188763870634144153073020779006791779967059767629056326613991497610245684545952654690750661834986037934049893502691441360017501652253394611688110723981740087748376854206157830853416448936202940966779916197119242503916401217403057891461225189290384588936915154763426384292916749386967572451787080616549842076317613661665274232287673104755233780557001775658162335287010032209394755094831664461945959849304536955318496035489489174346312803059742255654397024025179049624678650955733227429157942487620218396678577827347840114104693008439057735566486776621988791030038546071132052440391909272825932956345126022936517935355061553784876549458041753763712047559678155539051635407054108421832528989159610549817160201507388777438416801812787638081143136368221187977770865320501098933637630459563592068629749259320013653871866449878646171445566735549475828310365825173617222637345598257554317779382800646543057873285577174672309953393825542734190268617099021390219606908481125444418224029787316752719517459297697493334123248437160393156782653593034583331246615347958117973958754256757022023492042103876975926094364229672253207133936848770700408494097333100266674228304972297244389555209401752695147582686347195406920631178374281118414290290057964075563131514128908794663695920235849089960346773848769638964741254318731060178587416189182132792366901935594812152244230239846430957904507977596343213779044154697899175804070585167430985830122699338469710550692986478263556906485622616430747894839994482754966502104745668517962887486529692947058257413600567870904684464767075666048133054197192966239981549752711804185121666443592026979961845158477857889613205739575446501513405471430908818827190405499640296699116599535555410521187678694558978374760277274804527900351411453590922430858919479025950662414903632025098334990120670851503508251664634126496982117710822672653626946468374791962261594455502736939407207724789664581897859518062404285500275715889555112316147979965141342833332197541110598594733317443589333751430557401526386865918111418350071938201474519776190962786215078836424029555178858965177482705352027399410969566527949589177668780013509614929828140266653654968131544444805677205202942665617763167356676366627895531381803399064649607651459802834281225301280317885696951937153854564926237092408257192324900125240987234593339826946626767961553302663709276922429958146835950992060794174404207159917607178637634817592843350126847204760724211712474253442919433822550210958720618062952346256802799615922660811194622539195917658620470774386392109117095636481987259352224739801862410948062580183263655452900774007115875704459997666438546592697868416569524665524015917339548351473136289973138493499989912003521260549183408802545373920793517512460818393933076724985809083412356287236157480935826836559994591147191824678459987867898675885489140414520629096105913878089129316614381399034618692119441488725025197144925756812463115277409768253149070931695197194895122871617140742151089391286944862274141981085804773656959701991559043017261547279953224874428936570955778190093157294339209823829854210933949425872172306608774966815122176827273564979833539870630214367915805336601518922375870108868917303648576318810054090549325941750647294298595660012884643984396102222458298631871580932434624633145173080962775318202694957679342795698327397209992404249274729898229873143164565822477072442159027035235597125547707666891849103738746661188483467335934777587565173005344847807157626607564733764453553135987679085018386204751340437731500813438827680274632637483374033858673562293559997899496439370630321809754378825060594824633988338623078222715280780927833470959015171760655786048378596636285058720445445971688510661726354779386745945855267640438738056708493496579891844129148490531634437404363289727545098912387945267061390395623754530274242842760355314229818720129532402399116576142400360596062746148019685143310048068982380164608041290830824059975913928445276079224387200763152763245019934750058052168729903384445199664793209029643240767905501724313432443627992958475479127157459354591382532064740556442769775869455483268935730709718270423051002423867161473832284519803293028803007596621531565267884741471140306702912451504154486836789531420239448867334407639348902976999273664701633938755217041714606033854668387369250841584452560344982337836240336877360310296538171785542297941835300067594262364753171093821613693835737797282251498521227881146303674766152055083173408246317126926198823794002132216869866298634351584321265853301519198975381437986700419080250494297218202135227937298338019037358255988556640930625893055900174932183166515748888652306578086052909467940522706276223911385906062016281596272200092885460021840468687944514825779295521190111825692970594223815989135277882699359790786984466423773630869334296548131719134625074762857005913930887299099743048085993010086111655174236549523441180379479202016097743957172767924129245552594086840784298962991776240880080130910345823829391153604798407135969555161959962115081102020938954559957228997911307326494891053623171339779704809000045649403331514309909161701882004800610235161060339119651076545373758075701871073801495238775848617902917659380498936917203265679707642631892532893536591780811110614163642851840809916529527207122223402116356096913195904392588386514503839258655534331973561985198074125670486994098686926430371533146850650805885315906316804515377854028599107251831742639931940035776632232338120402861606511276828297698387805129771484001380582374212432311022687212059894548397784402609361238617413021180965330390257796857943024589111737504251102165150241675950569026365168626950796938795314879274714145181333768602929006625795704473576742881697436123991988944901481522056436330391582969561844089894788880162272889790352146681532677452597009454306886276850828447169088989823867273013071266117668620252956589193190026036491920670708598392262470563201026438628927172157994763379703562551069581123440220893368313065288810042746896576658233428128637995005023798566130370598653435001645052337867817356779006330096616299685115647463848203395949189493747281505208227035679955071824983786998903154440253836997898322875929084421700313622872624095738686636984010551481894579647320413913399152825678670932849424024264820954206481029146142618522963169282269909793392820332472068713897332017502641449089000633032758970887548189496712689673763833256333487283257069518353640366557172281041423130185764679397960344775777383495636175442268987086714211455357492965284327585628602293410754237854279987611989528540977436593124257742735442375266512976721317737007811120819311412680607493631674254578462938735643427122812289102883753567497253661897153345763824926524713108408390959829914700881987582962415280986608264536373013864757317942997015080564389312917188337009021731375996277171259008067469210712266466995460875242582568076279873131129900796104045323573577779537402364067296269037106048149044415751100527995997664032412326094731450804993594898706003929612580648620294773289756722939567153726822792296013904625856302543355934137902790511018077052108101617053257578896215919720483391503419900947797481080908877293808106392347401557659288983916750762904628595222527868913841468634288494671996937153676383358570843763305525899202275975605349547097969024903707212444861241867577266153114352261229271999465391406832850585829243853004454839329551982355602135571817367639371567018971219730972979554091648446763753373109490799892535341188471811383955898050106477898105143503267704322396209721691267743056028916433835865559528284379132025797953430965012245528660631292575279304357792104957891396393490807450030353976054598911922102478689306364394629067190384920379728328376085622196368831555605740580732195713959672438796617124172303156160256090400420024315451722320555489274425156869430772583739714019934449089881221469436988054818069128565116568487210971703108651945070208719107583982024385477328072666585187299771326880965437701011841848863240495714777075233994776066214990970106865011837814527018045933472043662288780845740191247890544218218237685109910202317580405048951300871284276516329560321934123057937535221680537770121624595747699405993837267151891723742048612940112610473184179051147190829442568391693339661263137178485054018573962679820120264597766742096570432535733110920511865056153196893778320072422736836285401976153263439380351483711595792776269085367476866847422689646689513432739452780355364200641786766012385809911254073805600552024785590079616860900517826627508519859442778316389879836204100554810065418136740271925739935243402927108808119997517155992168661572084789076605940346074301462791891254090605166371408579338774633390425614660057198901579770230499123273009026166479524080375447791697131978843495387974807676971911018903139087958749692697738953582786325875445142371291137424871739325454818397248264726983998852216016998653613986023671758318504833826680907723146544259368384351117292517729871014780901167758105042827679753490722543890348196485884015437204302969927114611670241270889153143763222797895026873254674078510634310539177035589811684823316041252385490261883392256811281170570338144323907618816759810816456259458031552850826864693027447894141405433484190129148797917220494731525536052380844534410919568358957870045404303542710822447345610931915645064589494698628960846462961918298265350517496712967028687648497581351486038754440533770316206324497558029827375765692637932966234031220969445378296512656858454031826000875652456601479590187403798399121314499284635538449564338275418073392273507660866095614304096366680401580555393860364601019844818947735415519254485734340891342344105043697724966140331983242708623801218304524131738086018591731406549339578533102183169422771823073772483087628048186743916235270361918142421230807356795260683995714720605238373734032608836781152142031795551739701531039101652571509832689861279098100443655539822259874293462540098017057827371669685886202371195928752292039765715561824331215595679276271380471693234495332970789803199723586490269228086276898865110299917432759232402068234969925313618417654016150704965793170204849538094038271519852041630405667937834431171659878548084562017144833573768517622977514566508274512916201103221043750755887981256263109447000690697478916750134466376662862428637863639327942638617695213755473531838150624642267033363405959966360014106392327805963817494221274116964124837571949517519440663158422919243805571757182867777057023821816788554469046600906785188670678812011361383653201846980168635131066216645335423030966936875071966921617159224557388454682451750589796468008728281061473446407108565185678668898316374381714612277533723025263827504919022335182109684363442340025711227276570947431494831403454323611117966425373790626458842357356174291933866174671800217009464966733863470279211724065203926550845257741127045977781030679297143086257115684827645939588991032180705055623900140173287450679063593889942343050006235362183717576557177650079214828691996320988288767255646070702793519578294076289392461475130061523220877926453269908335232318554087373558630161916419055452402666053281540741822528501363270902659953630287284088176656805416569300380138610437097275035795808519977128966587712197332750766428708348346404140087739925136493905896925532019452413790615597461405513195543355306486658477856017702680216249437469831613330417287729427501143394955343020246560433379455265370005762920722967027916739476618237467188922816218847270409870846052135306706596818908745955755303822939509814653102608212411474460079506680780244675994724593441557909705002182176156008765990656631177522573082440131896737398478020090190249343633944367151623627326616126462455170161619971978709929139444640178513193213269554138959798651564821606108682707663790782978344903480855986115816652256218310719353557005487186472345295737616471487109853472978107793129122177144518292917854090041076370516375017011461710399254106477576297065101995313912366922153002417203772189460552101532857099696859995930809627538206773173318989727145383559428615283262734443165695069589347684579633456810808494234510592136789519563314653123698483228930832130071378975454350207190649412725985207285363613895872158195300467231619749017408404426618949806528568840870532367685456821327747749902750419450426991958793922891084240309261708668565599740660504988821968532642690068662762593167469066043077716852450725775663718875381724445246728156933411046316232086692999413393774256923965008651600604106187142457651141230113262476663536513126684452515141534004764009676410018495802653619956194934444462277078108821418548112180395203177572239863310947451234759504960781173219934094623843521011735495492354053643862091911935401199929591774308586294516281576181120153620172329662814373366853312546229802796709977415175623664261575778295017423665388748975667359923087463529832527890883249104669211555671262161635347967591591814229658599556305639354867739304746982415080306749546324495573159278548815650962034630557707436686299138229366513501434096646364532992042196778471921705152389745425042775971098292033726388326339698956194462510651604318843458076246117636976864666258402847622702999812544381916693502966720433397344391408592281060821085864416673695500923456179422077471360612822882775635507299217572257647967910583271644438123230575418065184845624256908707075662742845601256112398668721064886004310710342776066313091449538625696549516476884086237766964674370282790080459926957257010063657739071169020571428822898812773363330171894104847617495639294773167026820911414561746007328859549980080436030543599327517240249860275132283710142024659991844632320734491180908889683931777351829396612675763065282408584757029698079069634302130072904836904310150733938619741096697195179287840054824356856990579440176954334688179630548710984041133048241609399391094349365130466452067219195139816550811564505233393482584843952619216370930819685908349998023870104674888382740344329708905213679621416549829279703046694405439799915649180440015472028463602831555905127041063395939948214090318728291446663539352571274167202325982136938989912578190053347762041597086039030873250396687396281343397037296533552978015841239758815025798592000365773484979225737304494708902192454221495784481465658613016996842985351385999934285754446562797926354509886708737265216235465032046244201232366387146162101017687313937509135935303103821868009701996427425733363780308720939374735205431493769857100638654877466418054436854976457798854388791906116031404993290161276955217263869725063334253772315128741590240166616395661161655955233766526249636646888486851037130054755588886909381371887304528033596136819906548362850113621694878835150378138144570381215304344028024085418708545596752768299123855409408480756102844220309577297192861541454346733338346574312334977570632177446534814136331466689558227621483886951319825476352739191794660430454451574082079879556641474553095660878509258501966441531108654742994459664646434812655738320923392845766716215856992706738823621993711322318801006174000588422836920329288056585343659714494194814242747966382559011566761321434704045181332275380872464104360780065523013561064664164049337207173197843767308043050587827798921043380146588278870626541362775928987899315668174852513244387273051648805561819866039824591429274517085948732110184476312577571379381425869054567736136931356953781461452761739792276029556527618173008206976671117434892614398892765823128175385146913524226799998147075549392473994813584884438768809400587037138622155791325715125659439616764530620941169651409722879336115038918518753282094799503825878671951415756887706643226999957129494195984317455427842440165004362897127202265203448939053859298213940323418617261511943799443401887599498921913532375062098147703407141208721192996591461337613102278872150353229508804699053051678649344399731774218238507102545950935525824760631117976874560229230238320443040506192839024290427639361156734015647560842838620971848577886193761708831309341190704161908882144017093559779934642366229619715781837102392884340115183265191216006876514710044682448036891270349201655880611809164315424814173183192595614912303138167060758763378191191784377659865547149892240613797808103317346994246049188257079185238140698818173017733909318827656818542910068749459188330699375457157318319397147938420835644985978403298500472399045456044418019875536228375398028287341257054191613332310513553685762268834449270072301145748145259720980827869261818034378711399978502588552965749294262708404163943179692993272684911161219534874315421850521305028500667558658628890466252235735111315355451368307394030741796185199984608332859841129722032085192861629946860135212937343491532993175968302937417268651550388518323914678457775025670362273109679437858744249456583239631735575903873407187936845627090315048443905962001131376851398172648462444488578582108932672303278023885166523247620787811661409507424688646005756734932161668970129502238486262038300347795142224037868576486758843709759716363523083080679351212785322588744786690289299370166905436036455431742446375296497842605958318125679609714542232022633151284704059596845618706478835083402590022468198790385188249265808178343520196229090707893971734135412302348481473734862938082661680589984448740466971116178453705957095396572488630962786759809463741946078328250428316024216858265655848843819758651741224773818115065488858932761001555120770144834278176611338374985049546772552708202256785513254124654716583352773393190970685981826209558783565554206985097454782369728855850937992563824598855453002550579683169739837846884737919229266635102565471191746569112990117328618767562195467290477223502193598782494606161987180896320013972203116544137956904067632525609093671973281603107719837732665658021829102182571861924407027251031846091051757459085568679471370615992504891939598209412412440012268542096634726526559301288509774058164508303417324291537362243501956848817843258696186453015150518300050757553560814865121428490669884419669340135129300686051627821863827218470892838178440952091025264970825986408341445522247147844659947538660425657142146867850145498872090797212108449311491948910974435651528986462108505912565868304576749956737553395167874218252997147358182161804909810371537386650185121202134703277073526697480145828339745540197824966151492195856585113428813182821419234149754989354301695342339536817465423957693943772430439241764549182154542562958332245077261040902298492520102610764838183173510794317159571712363112736965586529055442455151700034933801361366392029294920480215572567997034846423954899263878640506241478261464263811933097340071930389181719764245681990679557213240062937338518704193581993068266049714020818806152480981256263136222070798866229056160925688309596238615171971014530509341419671883921377346330987835099811210006444832291748018755106237925699560596605767610633134607155786163252786875954200446333979307393217821092204188700684936629099019513149830447801783821441031593957907753826269359291976232897825642063421296427633011215354400936053888708781457171857876144293035966253723244768059391517684341770248627814010159726354997613634063230298910881355812574970533197269640188261157361938143716784353517429957687400597221450083447135515558041241608124127842421391427208729593852602098250557604803750158359395554992037388397493123430800495916398567721410928222060003935323395238113997451960213693453852794766633702874905338366707957470767812293501895876516715388900155387228108273441622320725737177478581117958443402829358324229920470467509731080463252857039258671305170936486056742251335944612844592941151505707718705440952852829373467167107745114944050908021800451151161743261603702479974606107051735109538218221801509446524027010332132536849994399781677462466952654172173942326721963108048578040916343162937160968355045516824739752380061286601952269927917925291945814419252478342282023220656416227726233863641075598537678053673605141161568368322735185290569694806066937668638238405580588586115324254135945632831680659881072097710972793077885652738099273841268053814226185207531575817996190595424088261402622099126625191893496513619356339382425594072646249099658068984194635317595357993045079257286113656872067282962306198417472484949419559881039284467586568870004888406487299626624760186927075473927995531848310789513502524190692636164893040019440668141016863397577295603767134194242084240204848353979182434858587152723503999324617142017984049596834546090376838792029695401124155571340192715179181859835362135092876051429792429927875522561225212785653848569811453908775096813941780479552428863314576303572542473804643980233513130273875697409655719674764539741646474286311451386235261769016295780542844819516860302383455601176558450795851108224187441952924179418337502172651593989520740092537974374088850224768329360490975090683789959337954566288788530812417736860132191160103881456947983419243495476564973349252559700432926784939702107517361917413570901537886921709227391504257751994763624143293195721017060438876450083748525636632969579181314243139384415825971442117167915238153814403308101053321745996582585240399466801027441029049014142582836050607052022687656777931396490303893680041314681205579307016702204431003148776572578649354964934981336990325503628731560453272530911400274180060641900288998063485699923457439026966470275132993168087790183119894202461178378559403338523966161079544554865561683825913889504357408405707557530399172871146796955912128083925659659281806479773203122757556759516352296610440652348839414672152833714209095971957429970104227899139300942888996116996286557224901523325362186030064902435262231144872298568536910503303541655826110098225613975262989269447771648623994655674497412794354794477461180669027945824142072657790328395510539099543814534289512636808923189470824962782641003941365311471366130463026657589449504628117954811585657094119594655205846512521165124713769976961856353994909913946849349662951287884055873076543986911099841806154163520098177302383540933430117501736576682879909463606500563868030864576097812434055975659618025783203374929217072873102648944827536480455062471037368689740639273697473990633739625911222572461515021048818268321856057682830407751057607175020656326370128198068233115191898187877709194415122001832745123510864676121591118985723359659784213140855361285925996871510903634695019593011191648476086237567824095008921655689971343587226800475705805790086147944048054235664733542667176707001892248714758996468137908137832887972176094189630315897529278243464724662819266325007761488299451475176065076090506428024150493990031434780309868264773407004769418624791120981881220094576642218030022890172868035234702156998356365133380462698479409936963458697016277701300026566826572525696879544120291487326775830760223042395005835383747172865586642352235838871590095281914864322352969877973588574698445436691599243159993642214321896995654454358098143628516364180287199020844967636817486650991950046213242302622316693222309538100263475748724837957989833954993747697824900269304308564975055675277153058797321253818846394440949330817100768087563374647263304242190956116438627823524291859749082768374415553221655819009628214471546442175997829747528585899997744008804631713878348485299472084912918330410530792789038496617162765087138732500042325553213857452116476720289493456245062431370952601639574646887572922648800360595263761755891249806770858739693809569492641471170193186187101725812068169565858534703649424437887607816198857025962958308332433646093729860062647800428656515753111569498722210111637845705916636654293137308685321647353639312669273261393219012432504521250619844047082718027837022390425539515967303840020788821484386550516587766475699953327899585316221740981355248173843285582451692405948489922556805740246195040083025261971643505925820256787920906921092910915844062802736345943125923660762966279844318234660424898172714089068818142742486973763482102165546396447534956352304752410311013253223531947082034891103389038911069540910388138926098954100376929708634177136627983709611167528715678929943885686280481283615536199437561044021696664880248210678865952205519217840189170940884703538907013725130569175511023618494156280135035497888829275486088044516107235502857254401747627478976382459763016037238795104614491655600559780390968993502292595619977168780229067151668614310224228790404789801912207178837255055561994967098017698230358640468286868352468602603586222087870885550432732066207926779163022331302904252178719496972385017764699738154751495100817400908101379947175915217048945034913711154582323980096335628801281382918885356705139848652967415119103532610783552316175211464029762125424719500976926297262241254161350422449423355193259555234207722800609739912212644682226313680479320093940045274611190012658009274125258608763720177616939169899018729273024643122799728073760607866594709136035984401606609904492111490328476871792744137892154965952093863171422809574022165243280278871613782160643278582131084887111236565125260910511855466073427722797582549258757472504428349453696808596768879912805700361927454597434065404850419168535138420475591183033873099413935900515801054808062876382548466045019020568814827270862735194785246891839888374310412926678528235684241284243804291327976082230178777983332628269256564466927368907769004169371014497117858801566174506037574291020521764256767814943309871249714495352362152953864843557259223219964026103904805554634799869711636379385588931552533117297474872903468748653782472610755325957637344959926699132852769976840565163657720269006107640945615536845926064696729333002734884951785100506296949516933904556955554250404165817187014873318971760440103374470577165635801978673241503516864270145167199214316620712876030344824448975709309208587836106748352675106876345959473914956440443349394554091874403066286556154897801507541439352290417111949471963065751894068242967202339821694533042228646203772323757678896829290603156717634225325145499920028888544874356934057805101376256528075332174683120681848362262688567443931468430701240882244061991255915312758704776703183719349808235734883197789804428179395389416136378583244616207182477801628697974378176762128639006400657152025287659959410323537288151405282339342651148108974085846307583973778125093678777648236866434759356331223276690058949494553707579429031265681720970502873934860512792468334224535480628571520381157073634272491432380374595319694638796475032488976583640771816688370257714158901603934841784281928568922200081049361308772613402759199427158411637654938045508048307349172586260511139040498904760196408900536879418538591304009241723312904368127173657833099008649589612277947822446098110634802684326642000342935964126545343513423980472828132489959554130883327991877698563910145353582187908505608715259841890207586463993263944369931103595381552110709935258432482652568873567777048640128046536569896070592460604423981674282359107914818321945458016836161769809418546437969926330181532855025395691718051471020827552277964384194796000826365061462688704206281790528459225289162612427487479190994629564009957726979132596545775914402038156014671938512584960677491613298146683780491747059921539865753681699042244739153902469744577981825508288009586233735290208814035197591749227943010123193941241513956200736680254809513939135764388481066824941072734782824608945240626477297112141261546544542555867989749516673994132347712299196890873576072425333860253002410180283901251208119600598201529535281307464743135053004413612639410273885574873161683032318533835008519046050477440927094172529980142891825340166786924021092097492867444805451170206810991329944522647069623275346044962505109537393861943116267705495271998631799062039094040667766039363583342555365744179869300081397834967059955391437275382058769220618188339744042652154531870479466063964758594680314970047622192929133449102356914275048616486538618757321167107848962493763763500534777642121845225346069918574247664708593665261141656061904320258508213880376795333617647113283825966937841308502567220461257494226016887509627090487044147113757844670437039895361408501933754523881325452973726655239704107599784344294069164463086822213877048582166095889464185774148606392569696011169289600959200983027339640491679362452682893663523630607578807660263116851612233354010444260144624705191589101533118039132267877313847272908469568888997126831913190622522227481666677263743336435335117795111575931845857000551788437253892969398322741942489821641883139570372357411249224593489935365328228704885156539996233420266948241364177393513986977834275753506543921182731397473669282994927001647621457496719420924110017512723940557520946369699424711452356887379149001041295726602594566386881930914849071685179481369539683216487615039347295834846009907777531175649286722682672513203622445926264299110711912896812220306507093307332601841380910814891146267224057539420122072644959748305242920230135356732137364680434915706054470399793341634015572007710461082018240922279689858953028077150328193155644426346502237963372587288897272975697561997784060724945675073732566726318331263738967423895253187646649532828078556298498644536523366295513280215327123990691440069988039856965034721528639128449606337562195972293485987195280770323379955753065826682769340255892204611985186045090952546471650274191353301444542655019891355126192897833962674636375224449825783725056911718299383569132661701218355456914970590171393033327270055194215617046969365764591514295985404020547328914359461433006391687351786342589870556700950743879433672725997114119360881725531811053655459490644333957689943999115754763721638816711500272680545127980491785558123641401493081672820656713346870856014424387633484132136510965021668242155872202833145076384685426111414950192911172395252529565064062126996637018355707609287612399744891171633712103161601052909761058750105416780018752213795035832808020359834662169008698173124014077041884132331543048739714320455191672252028764298734657450066554119877554684347656399135427339364845654024402289418809812376055935915914850281833697493640901407135443687584730195683336833030966308786201879264995550443261274184236632147470846222583462415421576977440855428810287303367562652239942469329573998507120634841452342305181180548302494788108967618517777491259774681361074786256720632885293570897663556831274452889286960828944903071355287973672829112477464584916900424902179523639389074105554815009517169235559973277867167708137566722792188069493675074032452101938075475092939106065350834853395912855602428069954638477543975341871325098135537601482387868998939956393585643918678892098898697081409063738798892698869267803979186484477881221786904674670353704385013248552598727810537311869544562084095175566586817156939352026800980558007480249294130368371393611475063592078323135789890220452645986554255267194904569968464876524963885884829774516612973468493200323608514410729849801004240134639558175879821697508830410985256392017478203135238912699127057660421207216216425577673698207265890283836315476605788709985814121705144303461285516189050975118227391020273327837154861877480749375175121966419105309135973746365304952416234398676710293154417251205442227992790925168136129856115709109739074017014060811244364020783763350831999361243419182622431371408985539191623714413387137573302037354399446992778208845462418955948240450133428128056666370083753329873701005534793294959306818210887173247021157370684664678706099291259852778471039567796336339899476144506669803947140959294289189540858669214230972511708944447809368834626153666641421480599404584674244357978057860412506373141855216058690736756124050546070971849326151348898654207470353239962698493477641141255458411008793939988907418188987483875902654153232538086407805448430910403990922784947984193851127506171359025721143831977775494914347116476630802040067173696258581154752188622215902747609154530012085465733805342492480724878024651093534433110117781836227282302727790203901661700706467591675621311529207185444607272858561384063178404616759262501530867521600388642289139250747613074306294008150518450896994522048775230037683858050112027409632508431753891442939932975182480275004699216076724595968265099937190027707678106123639750442970409456781344376048579755699811294703106654082603829541651423488340931089313891011729235531972039243478606516229739526458101401146049488952421504803471021822073844319060761080786312978213288113551170846977117231985536210201055968666869298002997469469055503020670934009011964192306940372107197997608426895908743946520832671784435739219953541710902459074135321892839305417362729151128302832437834149685600780782005595288342437543800746505604195962179801391572710719496779980155161047306447666675132983459375194294165527155815609934113438698127870581947566650569811676768901525119655567023536717179809403750264638601166909584371676202035536640842561889322266255311581225535387957363703969577771183414218646532456537258040387345387099294988690691699530408102714810503855069108255075293615813981195512679985936010145131675449061142890653503169412757659783309116310249047537971677568623878619773524941194268575351858975667231379119901372657964871049223475455424281765864002012108023409374160100962816694176076629062589250726635261048095889423006610459204981371418828162728949902490158009143639639616437818435494490609313293978547571849230601950185391583713023491545661621478653465368959232047165138619165167764356903473411853518654206929024938237859879346865068512837816365952141878090061907779323344073407858033043223392373035312834343586015909463072020314073329479145383144171841027486128313445255176226183049223689933970377263785104661031066923314269658482728219025889297717005731467956895606050522764826761954307357659597424524060045972997073405570827165651310688185132698540065531034656957242406640558737921026175051617055200166454256723942415532030122576354452159319693853352301630165312484400272674089353562090323451582979751630628824866228244419635564614831572988382504681775597650701208589909027426787980398714490105051396683954247620917818729175133430459294734094662039019172649753922463781519287391376006236800372478728925402845892684274734021350765074863822600085666544549120993727936691675752942544049397416710293090333022535593732017216835890711290354799456254251708212286356639530871303242499948086044259820536280912331503000853368448088227992331863370671379536004742318973316207113287540701915975411963893014991820860898781146822592222998726350416181137232395143637236049919347491355576513078980263737558732558391766406491023268284304927335945918450225524997998197006446383405456675334065515409741337638938391901234210880415273989759600316664788026343390497678470719939050868745506021357896600190911914406514557767412457442561756218388319471995127104702182139368139906588287941036941051343862282951616162156400932183961003524327948560253254231465577886043733212524489745047532122208040770906358393996451180056634782821191115632444115922308953245888407896535801610350556980345131364017164892835514144739362372697591855942856884062925726181942279710387821895935189299343169348200165722691625624072177911320582088188458496639057869324089178556824179288305462481181201331345239593479249614788865083264097529197139204654525763340015178461806985705534743470577784530001241299156341095315993836340084580689445986807296010519252432921653358074689102613795211209967600621317237476204204053669109958520412250355366339783997407638382507590664401680308316590410054615787574494095977637618815727219210395949413683191341760124999528249059832469144160756182778328933397250841574673067073427079638899997130539350682336910428894535809424704780306522499286049048069547875303317747258822484161810129257755460297748004709170219279150383261826960571449311264588036039470830607473443243010242070848885478386642022077409543158931597791114770846457224472809871465624615336224790783868948960152758372338873126116747162692923595066462999448430630756792005756855342955563890333042177946608434506740274155738544444510393278027471295392981790692770613170743235312273664428171689024744465654665948503063880319650607814519851895166665736735440888654334503844836632046796968651252684233439852083971624374910299314258821427773361801677120928580892474754210875519293788325964276718251034280847825610936353111896923129332152114895787740286108812363111349657445524967627707691473364072907205319507477880696784072028042089828734204943751746909460712866530133914822798962829969417878226808719066711609071632233030348984747740250472736342682876370650077688360564718528056834153933556084264560056676302042474073335411959759288423862444187851808745244089471936057412150655812991711079702219221898330090749163864449208675082108478050020327124601324832459533121742925307384623279747169571473042044819106243666645557705676321541255328515274649031466004439632216959380602875941896782992287445037037509293465070310700298511703239832035026232363226837383708535602729957092612508562305593833677593450679610382893743687968089054037204694775683362302932524795668586617253175065161619156660714241468040351115935649929382621646802103660336178580979865035103829334437028921184061345240223334908901875054200078619160393001824527147512079747625656843703088021669619094416865719248227983671030384771498641282131736519078950712540468565256092556474742306862768763928166120273545502009703242307705159633816385938181506778692945083628185973734035743491405258555394440816305257705656290517756986830826339678216811985087947868496152453527368533647636996681264299450327219252921453524605852976714345372121356549421028998922697475152115240794217336279195969919270421478470877031144481180644784226981944059314613197561740526191828182496800484056029948867175668373682721785139190678785944577939436321573578770513235530956543654018343504675954115987419162026234041746497285920367436752530446998177843383413837626787089126351635061465717120862570889013558334097737386565946770997814277494818713882059634045467780986146869490463890865280473114955602334333755625217372293253544251836100090644599876196783527663531560342758159697577880609740801848317575321576236930335877553582353523827444247786083895452493615573404766477747523166302729850984004424392906922401406608053097629562491282848571151360230481332495689869485790717083676213445638111350933068717399789779314821424890486524040024470016459723284435944002909121137900511265734410841963651774137308350394822980603315853475595169245560976024224162358489188690730237411883190668187331277774778627373555963028355088247938565161235124914817856834494314922077854981710863947010937530148819358516306616549001132718905251275873417009178383435839050667551997241648527287121267087866423293895710940020719889165381709732827638547351499295856522876327923668040138685100451734078286755158999962100588155731650238090207475156692519178064421775404360337413070524384771090416553682148279846080481270351502034555641569456330910406766717437932941905907682984801081191998118512684546589424693750173651486421924580646182467111065182242698451137465152938369295435980862076376685686023608318053521034746832849073735837996473780751972690534998864851689644851788328391818395779174192216682748178809374638372093903521978937817640443137156495570365665929431087296534947856707982575685119684078232377548777149587870834308110714423287442284106664240791314481824197559722534395480058325524801456538027312805461223189492208760340835992614099356932937252475419553418517250075777394068506594036065799579595328915416963975522830555923589950494630256329960624948676561525910001962098318978111100976200800677692245384420066028571087410927814512114251931397998994787906766125650170127987014390489656648340080882558469547119013093267913677414852000480437333295946922209723941496403528642888948976280115086835108789486599752418432332128317382723103434958807871838821826538610334662046747675498030483875586805562702064448950935384225196344761081405540550673347804791614746304754275108461506260955320551003624444764225552448422089541750038265967250325177240901784961180000551312187884314427708872781450631950371099114242633379636530071531887607822780680631943789238589369312241419152359748289181137651068371695893266092248909584258053014131497765416109726727413187993272102254267624803713140733398598619344103987543704541524045114923915674826474930877849465277616934542442510322057423481894224449632501372344964131169547162077423196678715105997389692087967963446821962946722181428070917955281722552212599453056026454392845226077909327551212669884217100864977641299880666209246901964272916106341768796930261263407989857291897231601498586512062274102258831553396430845949076353108661949389294237432985567615331251612524786877154008968597972540652454397980076113367324773435330132845470293602735827422241859962930657798706696508990049977781924001390043545758279165539778300485658045404449302527453813207275135613851540286534198419307032883462254193630340898835461267123500152067739671655536868926540784098597438301192044560719368675016049634490193613392693897776488460755945067050497190919820392925742466209832099385744778560015274414526619048282275946950235433779042198280234380791936361636023275647525524515226037576097010564371101265493249789320766942924550632830036904781610162954698206020788793030111197715614751236347635487259393784047219312045066540396119463479416176568913141777817450702852078520969905144189270170239364156363403488669645385759712860532047990184045960659787107362433020926593094255230731349654611815049353559602139155208563941433121413738067411774463929248824911331913254319665127711984919759692967430053045215956769903237205032038186942241074634793431449929601180892386907432340608318313222883533425722811078273972686748535845826852893628394683962994281026970456943358767771133806620063388623761754468292248644075902394319482965837367326818102964796398450520696754140996356202738394869679325819538914156138980771024548909043480051055728763939161271103871231749281347420621561314136594583069479717463680475317551278816884910289703871568942777965011764477835176170461168466690876191274054871817327234484841800967519709321147806396292453755606522226794563934495064196241845495603220870647117008462513455869258001226912725110791570807873583557019103582290394872698901592460692650194720520021951296576418479008105536404842923909107184544405811889601342813741748956328795937061929176183583301495939811089871882324125473890692548919036071204492253426454176678307416251042388369962935457631747808020720395672421905831571120509706038028244135951649162098379503179990425083992474452850202473852929218355623307511828214046226004656068368540609312539734178479170471164493869007102813831995693029920214590359318160572884472952660737781671014650801890984054720863520167922251576971525044779201053189566234986529991857931858754706550732825874496929802138334209382302033905439639937719693882767903545153866491457651616955347323547973910389207606709734193406301525716314555735000728429287386545130927134513609531113074861629662006715450958569262977158388287391850023935406796309675753732445836824707816080648112243901371333757845123683266491369956851442360452341681640139137856987496502086635529325569966297995377850072517097789837294975698381761313183930919167870094329966518888747340091820820337656327080621864984194231065908691199320424972574016718840742078070971945163021732002708995014344161507488181081223603759996789840006525229986086486766611547955391348134127648205546497950546048500255611191387284391860497273946752096983163357261384794348965908728817135261399011845661309962660125864849376162503747278215191719178820651000118193837346847107237753771177360274992376036672365346120262772695930041929530804660920936423799269705610244004721807263379683217285847338978595044762728036028273978712134170688053526822470374853934118354655844958004897009666291844384914813957187459005581614169265469903930790970085597460618171233732609225932124503880288564643210099399049268673179150914176886202813463657602171078145099277936951570517300879463575761343301915243750683125364419133741386933238960101448785787145223339176499460905514834548158862597269875643946702653190588255811031449647279788562926464318368698849994993834983034576932297187755492272372888402608343223626222166089021548563544530196521568718103890192742533562192057415381075969394815764762087109764625734301741136554103755149532695030709608893135015728171030951938260045876637440473488565906790628195977737013916178443521004331331722588353882310477720625155286019545339108968552916453616242418991354693672215354248283256383895105598492086745853284899858479707318137497873184548929728197068029168731081803820813333267932379612459631361109465181531260994020220746317128928890736550933624588641763555480154163615162831528024437831602049464974002901375347768282660498283050176078466955727265855293311792734023153255129310220376316931506062357208575922637953957014435242589483988458472221366250893123579009454883427102674235090952540507275246404373774799780456544125751140520334220926523116534140444274867095311655972478040959567431456147847452025963137301996015227552664258696073307780813739722156002868872008291892888200877109248145990908341676072145632828204918699666351721192179557486188075789878403894250596283199919459676904406964381344640131497504997135604176861960263637311394536687540043790392086850417096033281246042259088815612092525144310342296845556147841242477117557646913587969665066020792409903314560394182507663669610816719255044608901342234109147197050003568670956959907184642994854989289120641126306129540526816458480851178761702250046240944495893599951728133763399124549710259112868028670581803621662342640995249438582419696046063362117250434897715452083843660485886480776976326922576330255391242551295230295933915840853280834507986924273753577672903056142732203821732345796484796595080228655169008128639541398535437091437943961811042032507201894796127034540652239668751091421763294564961054078518788912652513212904194903117702622003654321973122381169326299051081711888565631850740193788110791367889574083895697056433813727542211915037480690166107837720529500118745565611499198241238811108598515481417272529920645517229056276503270139662278181985627564857793013867122648490210512744672864984209164905836813017258721809075930682103070625934955914760396071442460094810781966212010428801004879192832178728915284463881552433839773084543935054385225115032625727384141302284350188935865289238145205167230135706079537273830487358718215394934612200608224785742781369067904334129054410551403828589575388147813654437622923391280562016968953905911563626576094632147536925844100836316001982926443707655007609890524361793012687738164285778930251116755596036871321149504382290236907560492749299588548629734313591010929035561763821332794825483682351297689292662675208040971941862209004697075882689273024836365865312750274924271578590992506786598171461344174901480071784723480746417371232655802164613302004927893052565958432371539055414142083048454588024398393324189742699484398061292617974113760121666608850623210300207567396634259164334296566656368189671964541843816494765718630421316971110822560764188311623842689203147649890754500686406214620048150859075560309951966838604223707080495829280909398085428630631730684754470461920594209382640005810006664196734339239535922851835019991161622078552290011228532487449836420609198010760824384174584225344488660616841446974176745511771871582637850052862195004190824760815536314267168174345825188221830773406841392258614894023999688867279626482370724602087033022815812611455291459807278077558776028174600611046135183975839560795799781131437508115083371381260703997132940266087899312101446433036060432285720605174155165091917831917855063399423525273694953948908954617804959225618369267650662694142221415823984162992064073029040796035281495810624197188034522350687460500299230994711615780089756494751276498704348978906617340573882614758896929305034547393826260498893415448303433495014776879212701007201613073050909275708170097811207598943075420783122125453049636057023272105394814385960658814367079482938800799684796546944353642962470536316454708372538911686045384275993602112622421844165247412011291986168257123855007074977623448303510526175871615325413607186776805605966177010999538660190966539622105635614537108148428200500227724754565147536564454077533957920909989492997010427722608280898061066947213918627974117327763618878029226136280619039642300261801824884848207643976598365956967123906372921738578671849355667378357164268122322811460722033702809263111143140587093242314091597271789998128643603061561372343659964573908028128127839694314514406403670473154940514351461024636042922525264997399835655114037997499622757589517884373140421211206560682582951869719407580160862068375576451679899702544274383704616759647694470330182444080992900243135686485772111991151422847773976374850655378532346542552044850360147084777288742342372900305686746186655879243133490012062256811800507087074891274989513739452511946408343789673600950668073109430060471085352699141755331591722832799130969421737537969051729802458899379269776990310014579490676347929354348753340840450966990668466698609169281329309787068194622839124509633351302434337819391328425361283413118601068328604737592571575109334243210803933381641371797517150876466843392690951233565005479342913766223000375357043279778162519086914311163279995406897826296880446297733223177275787966976931191749115167270686814994100955264606852005036402257530126754835914200232385807222095218516633516256663258925333675829908882392535056642916669591513759888542037660059625394994596671032638748612382893441704946384292765767894626348987350981979553656177687938129600269307581817803483245900779186571196624521826676143268404294208248698565679132068220955792190925081800603019536389349140051393052511240589510104174556663311293979894343444597435014882466215695637767268047248869511746968891913199058508043610278607308719918730330593195239240754790641948883219853170025200778547812754831027952142115668043969357531433622351431313691864731707322643773023710546098283383893054253850262872405016718943284179214975470039491692714310268060903808516218063053714799021276317221936853170742094891407918065830242693978256325937173261130353603348404808318954259061874274271913747942283849258829397780398324059424974460755232318390662868781930340414790287349296252787123483874723662600584237956640130874081707750387181672652013712028367806023712127878398773910483895514868191772963959241165335069340546335023872744978476176814661871288228370294449121564903911452757712556630070638425398999719756683278847630154873770939788790432877927590025867018409759845488484651109838833112170963373022038070578622804483876539404117402637851507318687043813686214115683025754442760999781933083364547346151878202896920911781871317733451463327993609938457574819581978196608946472597332290535012203830596845307682241629590938930377878609584133360968093825196066976124894367685605794376550251358765901154626993920070317449581584729551334945302496876168117026308368167008938273603349756519934716264369522406421180610537358720692433530593745000903644167912085562996305533551533111747113803950423399014408743429341563109462398521584341373423914329973814810776395207652799130781429179779693464617066869413196086013839485126683964183732898165955243597541070991938582313643712791348774302059462875903442996489431039127351078985053270064443704374444680190841966849225332953208505406852566622361817295348542463484662477706180193001652090433849471554261751810882528618360234667627157329428784857016028411613909330828177236232600387686193128040233043419404964077899948773805629976444594738020125487649750280801442080706872119219107418241761659700430764747555213657862124240510655402358361934413678881769383140170539822989801128732329703577207826423270485489738590611278942726055579462295802305063803760410713640102489014735222529259270218282982405199357480773009993405663106613695936548128239931251048453160627815144162574620489890845713678609148639338178786197337534417743587028868879956621406297413726862424024973947259299423239554412446693296667004469688501060311406023420052550709951076152141867298996319159868598182201548288693672024364681277669089238610683129497293207656231306949254889676559961443585420133392119371122860511976392776721622041778858815044198872028697648832210524719631223895653144745975419569623990684759164449625345522095870563364383246578877328593561284330983141368184459130372231217700929435006603840143613729705874869211975779338966374303100185376577474600024013217201453809280135650464812934504553894495501474297200228840350241871386547040614237791698120230022889713418192774467913754093288425963009868927229322918381074624908223324418286851976112065388369570944913723217711759909273796238561586789545210647170900771933660398251472880551029499070788811591467572623370232371593905062202306323586348767366117355682960062436318034943340074458618248536235492227087798814713746706669285487498821941962396026667272631904409462737813900835925234242419388729226779358487246653190276048402762134898195633393801539171867258296114301027016083192093935484760429416094843864412753580473552607457664343313092235806297546915153219784325819404981237401033811975118876179285757765798424620618857979047767729272729561396442018029217197718917792838951613608403872123359516571774027961695550303997434451729560205752544083702097794041905844168911100490980987145572595549920947904972179093829684565845687349925203758751809265400982139050851115930588202028082003052974798885602641523946477748840883195808452862316123563756705980509160448981780698835304955600822438061929434992027027748364541554716965930032867372496784699093513930862205379141143564627875023477890152412754074648012599630311108253319442219193624279946780638689987752543855480903403782941545026128216089511917673525097958386916110583833686812216895824688088003125466941731955440739082701897529633767915656253394931725028547311616113637440886207968392777904820581712123511881805285041881651983413348983695197548216241039463675167159833714868696019862847369875992844315205129124038890809711978776019962343807453785263935984406042132010571128390123726498798097643725755796151579820727336747419519805858170314427715603667617109188397452769994760235718274172273335717832476709290122139813307422282798176012970821074783742295429839087224359770150022463216006862827636870506707158305799493503614149996733451963354478249026155291549096506212096895908632850518263079661641666247122714265361753436604192761812117371470929700235631047729636921838862209285480364516840598517418222700047478506323270168832136473847225858738959495044046822690959009676689057266382727067570689200504831332245516562708296907175656613070860821825304050002982032833212823770556771148332333609953053649078299395998778641805166225358780173255689486315881267428025467917762406879554546411037273121872759827013906829073228816944552854080954688456040442908534048443869924734467877285485131667023067619491739093577414377447043257679012765291365711766454327224052981419655476285403640359553177620289713297757948781280832610761972734472485323011405864726209914669580505613735660835675070202501872279085722728316640223031378091418674694339759223217077887160915209461551293881300482205892374244418103177025139988433932450540389740636159504538412696744761898201030028847250117021062298345965915019394519183158748219051868905327651419061079848239747706102098813106250008635051532097291500896636387569054334169430312614553404428421658658774581191012144426237871552093280659052110710581496695834561154150238891857568275515904973864233277043440633936839363545666827741929053054459463906743788083962303412638668890374354313288486676453797139729336664596791818650047757472132337986252148702942619810677079649598733311610974658669722862960846281807087270658655668391041338531801405814475909823314306957946148306156000684836867081256412545443866913669919121542140842587949146768367019925571524935752103640987856032298109032434920459508091729922840441066130359495722380348002611871183643768808678306890345551326963862896714732541327711742110375146218709105764871424203198305471146191625964608105749566500132003120408623813813349123432649974179403495369570437219575445846068979712830815122683696791012336510500938826287941663483344797265110352649920997111205419766268944334247228003793007771846054591048757363750247743893048172579660155652252094990594758095389328458962421822792658775926183528938729420658802604393093433678508976100458389746420922105108079647283208354272170944020221512959780984579226713179289535492233464400524104076613467202378690643764981089746743984987048080539298853971490505865078736475645453624465846067038166846560383196832673525144240184238504976804705029420932608576897864485819996771229963260034466972810867251930893503055470963815033953286484340970694191346339898001151278034316394893865143630383238899130566277858191959393047403714767054238723899153335401505762642819769075797053372404744493570483636859570463320108032527073649958547674172139075347388939477211562909103940954315812381310927077529535460931606698512263360224855132863761362083445149885142961645228339807065394888418294529435025823441933039424097403363830969336032236452090100535649779823932529068691936906826309531115337219626253172307213612620311605490440638330209323532291058858369905144502596233801560261295852997743418827029674411148554451207664334920308486942910348190526106852222346508037231440925596930582322994812112980959152429021409136032335040252829903337285855621747235767272335894489066342531503717910828122492258518952326122175660144690699838465033220179987362370464904060570256486225835506449764745126862457673396650463194223075150253061064337937719677916443542588538211326760240631854385207009555270389545447767621367549707683420154737738798922940969935423537379743696101425210027807927393325346227045542451535761445915673841936115808830314553884924295014151468103785965702800587086786229156152774647969739351045686927198873050132027510557297955910230336778484215639608625352976935712833414885986722135138722153802062449364806125034970933972754497404703429784444475946151817271484196940306004918746604568137951924271120824541535874600029026522611386373790984456313995886806234366794132272175548733608592936622092990127060743138544168126730226471891617982001113364407291074563431013183503086105952338972683175783802562444332434247238747043565492046932756711115068817129458883933010044970093940351347767024494333828284016084713138549099945562371366219185859156364689638570776571187891164892539001295169895281470003085666634295716248327648412311328427410754294803511479410804155191115239911763612577786534293432870382864938878867057093662511525938119332651149421527973438241846087838737581551143713472946949363101077168050782924146030911331705265110049451611923469765903466883502790550384276875988434469476046327963267847046144956899731519422483548199167524890371099922355452327658586235481738138083765165338453304340916274306395211705955171532213564477418393271012999396519793733101226312328513689186099355930041147674684113379760295754617012738345053345563707270528834879786616440902612015367948771927937521292523671201266273211087631106514484906203894308159885155397148582058695871906615170147487504503406659966014901548495869750873138219741771807443151248692675097288806519902749219818372839489931846501620081632707880153505388956216262636924454130961591566800703207445424012357008594856975107649610048267028169374838532905946217276814797435999918747116312546640559517967387298548046214335436297108386639600858563331797553332865364836227509280595092576195585755232482212239890402800088585201354339887544051125710100683806627408492554307195012242280054121436155944521417295871707464907669098250481606784088168021438249561935268457460243509446959283795385620154246054945065580035638821709025020611360909704481436530549004780402329721806639624767365347250851527239656641224266709644164946267961370848941255164767354458725524195580116796145443398082026990028621327454757609783206004192447158358941333741149151012162616581821968233514398113834311237888265453533339900691242247805327799546443230361064925115251043265251554205493710092951086881845498304108830809629765265087424601235745525578489151487838687969233420844237645581827413647867538707030419503604251016354998217527354254422195890092008710130230232640381039627179498378432677904870512377241842735960691775399638163714672755126924366357100614045820448185914141928274549683275404103090512021026738405100852941944594889870962160761868650110518591329629170703724957985595186706389456975427437724223059622390842137400804600320587551663477992342303932549022282791890844730945020787976401191612789229413281740046767637979214069337836518851394303008549294555691124288284125822306027034153005407121017757900473563515465788925231366149977170828008914928730642861006542443156720401189489855090488920054153215783570830582735328954250664354364556133102055116497084609015147532754580225272287030892365214600938186133239847475104308580716095366909134248489394757955657910922809861902802504086536009352909412993687311263102454052197620469282863932115249806963853721535900920657020918596560199587561628747802613340305213352516527037472192841025562036452295210588391728417371418198075571413180852867258743401033211608152602894292352333393350425056159822658021175373920497790514041193875221400968008954395170687247415509483674780145462854097677849667037023412653105242170590340324495915419054021595771902071050102242739225845395776392855177289884554743963698790102566823398641972379904086673833985142871501825235627353302252133718678076352617101489852271945731937489153313422367855607269070558477893287477432618179215163591210596590446844260700925130702662054759636694296485651565458529480864605144323551055334688953338777155189556418466887939141396156272774958266939686548757205957025516127156152729529892396384348126850434529451114228106454066624076088425074260858623148636597638391870616527279997900739673361193197491051075550409437902429071107901225146976885101082962428605090346985645020709175412447704830254913677031673791094697379768495749958665236192008012400220547545638587576112067697601309201021748317533023801471447620202523755847246605317050728386522472947289215314646340536689283815571453664602882960803819716154798785288585905322519573897466544538321851215214344057182385139838046807968782534426166376644329052691940670220137011668681820455039197234147310933236732822723455754566799698312334556903476269622972957562421525854291939835892576685031054238809328440790573214460029206263703821284905186689724606155481564992131885093459590539037785236048539113246701443701652554519179697134475752634273669221773468376950443777876876059974257333803951920194588064104964460926674340948884491534806260324142964432658390261474081496846497526138866551692678092405267257367839418362853383833809605815764169482460810891537566913199670920873269914408679111598651628627861246003558095045247322923868188084425338585391333111997529637036539620683919099772680425378808421739366554506180726554477623651816806777174407170802969627759011177389814904332115818092704858843919317403212035589333436848695905659458858256062981580143982489577408614994297865696104976681532455918815941574982992692334378951391727044346892487728605976073816468269057915121563263375808771907791589238041231674237089284537092989837798320574677837456338707555595832293774421694065550438726170813781828197680046913019730572526539740604429354954886829973493014885851224959565653591096962645401520960619642078803396058960037450407936273680679000489397135086682019137263250967396419734742262259816378864215706487943296501104851711964631724616440091480384943128135355993751022107074610457723605015777278977284500520263607959736586823068354533650177807657279107691889970542502908193645559221114259031751459369412854073574363611047927505194587644989509738074933678089084456255160837465437651182165608437113461016210588513996585604887787908792344961323866051621927481728131260882555746961382936195535691765688433591292509976963420996460955804297515987325429689262194310909626210838439306008777770993652755005755410754755855813428867026874613705989499364262980445406510236124025621408476689100324467889875917182972454546548452041239648685734188149775934791385507520767113776373355296571834526223674064399043824304961821475629694406009008112161476482727222138831131600675380450403648366376769425104560841978728465135219110744565145095179184411363901792524594562117269427954927016124899037213241761149098081235823523257893260861520520391455864353861934914203854285160602017414299699109970882626032684971466006902028621394704920694870188381797569727135914771525745062336795417860814045830634134741540032461866969464357992648346345596123266656243966629601419167879042462218740297920065477555808378923661161203657095349283708808216744019691384841755901097041668507304469543773750341700740054966370225678092209633770804767864493677897704243450780072156174601571831279472769065717326868394914699498918925297176584728245474103371835153450339932587423934683871517113690633676746635705222243136557514312456683966513154778278674273185292958761104657972471874336851446487399189512728167295731589666552033881197257104219572239144557072225112464999645517815246527374587477354224238324978442312216286480839867542558551642133748007469125600385101049247736316234089064025503820628993698624170408917143956304739529394282473949914828944141844217242639936395625613219105335058408437161438639000864450453990309792283142523475586705634724848545594135573452370701307829172039215795625936656137027926579751835609918318594860798065965097203466019183079212964804978933863524444214326756907553186252449016642835149335322486536036824500005245371981480927950188590790438963216320799168232417628713345054746626854663177818448971782011645141644187797125793877491979036232835339597113741612292064150961346843596077628818513139479378925984798594672047323108111814896290458869189556021486395729562968579857406941151193451978563711246712500403055067047975810783707728706227666645739334155566744938884179572685375501792840227052274528140023838169714374731899826700833356209645405524514233297383705192146462742950213151080805332655243853198589665043799262128879076509712939210375104413240897076943315321698619571298341626272639187384438775377664743787006793131912530549470238533785578543311662506954897006847064928702747182485998766009587264682606417458833220372867550478996649189282122552722020124572002837348552657784363795741485134122702368650850262679610218977832312085501457963956979882558117578245872966537743622814133092878844912354199419760464199642205382577448668637571033588738666112918896496412997810152042744126723579641179200249535760886307453449787240183405453040638938851479197189871481199861897113153812126828807668574946611765146245733344433524941244256903449700975510433519623680077238480320743128745933604676649479895485009775989108763785099175091212014046700363632458603133977642994589023235021566380112668321414621094560039900662146191464273386428746745424130619191352065530180460313281260631325262345635647210462975821714039475414624113007927380351883709866754159670438137117549639352829907295462310286021761170405014640993258617201291505261189680747399245414780064131201346026696279933809900962437276755399695167747729861478666839862183248181164571502356425916052942458856988216350044419721688879442675607031850582185219476518108352108577195929450186545720964002552682402125396630399305603166915961887967269515145880512111391308050579466854346652378208040901444219857939126874931463158559353724785295509244123095870046840424028867308685388721986823335032605115666637144380517203683301584503421813075542835219276567035690301463267234360944621125196212833376363386160267647878405819369515318435677291269705972317256063747349893218076531011583586653915398516435539393604136127631483762243291978347784590365465158077302133443874889810730124635197060161214899608918462081456353455659877510222439276170219755575989013412880491852008958318603314918032830282467145443332213583055559826435544955311539278577444712767756545509897174543807346039048088996872175883589037308021761394084322053607378944509639222199487879883950123973745669895447077626018925443213271556781325415911074198730401647039945317857025811408575990505302235191470254022864230546160968896784171079754277109535627205192753817599244856703872960223201018715708931198377004182285393664455588957495046398720196498715633389010939620771915294611409312953463414514042543764851242642794527573457997203393495706657467910696386882780439740069781287783665697037098291795005430128857339240889183755160532221389921497015280473704532099285007035556040221589688095925222760179219709725909286587951192036912176895038728268351439335318678153436986815732909747456202334566484715956160163177834410882888003889532898896833653188342643030184513066052745914432778211280090848369600545235443351869228945393783090159346351445079882694966353900320176806699795856253220210720642620358552334238632769381364460358513403883764575056783953168059265838497176455573815313799567371276369731222288787133894073171665875440009446139562739041535964866896619727529851594622850683005370533077261732734877328150663261911598248914310243136378393249872406748179341552781756761317560865582874256078622499098094913373656399329241592629452762998965047149665353713675179721213161813855784827238422006544135375930181641464690523410374712340976480633633604285712014526953695429861400968699752942328409080453962305221030201342662749037196074084421010027272653697709388538660266076301244401954013731696022420905310422074795377169453688770531824668443317061460463254631491072823603928896894676852297455122305936226291015256232669932680047810305149907490534548711800985889540403217331014296155242528595127569221343806001497016718669134982836192739952681463098289546350496656549362500867039656503298476239448809641822956956461435773893959477840671696411686413976019463758417932510965969427678931195948367030074186422288995844753961030971512922156015535277984365528046149446494947243920329846390960534964796561301622667644550239592342451064628658140258826860396937014412162390159448768629540319831068894677720592185150635427723134868517248062507698306202063974872178015515643225187614826103786154423362369909445944348125754156414518714511894264771133312867431862814295239535810582062824312595912324909272968052994366831651708584514893767503700294719197034279320682047686454054803702775106439191349264978374347827404720746321513171242062618450772376610842435569522103692355173994193318367956739905480019816905005381051089269331499870204653565623769305588471888622929300594124372638102350977867135752451483796625394949780966691831968337120151849481078564576784754189016899501706434745783372404173330745968408636402771643529030550947312128694422881307600634800394589193464165747188760720714974030427773765870647368192631106858376081231511728649545210146528932177988878895913372108137310617651998925647904171298883371939793057132963510214155024469979470653307170354460668554856701683810419622638487326843685093814620757481530843586159164812520979696158933749582611347583647550838434794183778689318868226991964209884385038741801218113063853477735832193006884255368152655488448613632869580995954305350107359204284045214517535033369837140307792493457689978076248401863582747551665037049656490268854094083129308795144332451910608072694232684803444491194542021178348800090328670714722183211330852779278366948110376353014294852396730075771568555183663845274151654350451088020209550487152464376750520316013491766330459409503302523392126901599549619795612708036698214425373648637784308615448742272780141085592465107118886693259360895915884718525491315050262412987052356069703545822779033792322348392040473320069822022886436170394915128850117258072606672099011838572160084061824482733474194692836272082741412187124983649886522009387799947508669966819520599047133755803428941430462901536706727198262489486755907790946876197602366091956265944811618942960438153695652068234816456781386795584762148110395096541878100605303047467789731801264552369219766673337216077864818523616836149799001832527893004848983629406351943487225520054457465968963209496612002043600519812953159732188436334133039463210106024656438335755515752821286142926397271929891335517511754305745533369479063621656749088331349797559714107353043344463586633604092951216717377432696297182379501861365886969332013367209158553427584791190243558945312083664260114188469653467834165958579482556160301304565535759773155618916203043366126406873041789263142360844632975824230734778187941724930988924804482172622335237864293101812587207855658183044847198044934955058634706667078657488102493425243643027502411348162502226084917015496383636853647723841543089246570047736614143921941243644766956664873840798750454074859311055614375910177078543489755026758386598784054127612535373077878002014457131006631996252325584753932108556502869072206798324942905470715375213825891382357350344860689491569785440998594374955247053031107974633346876421411391539249830076132215873559427385191052784684230992785315595686228274203648234602214866646698845916646911742739926775392577417635637563452763530023445156439282324725182599044377830973354961406403601789570090126918622472763239385058978614638952625244209952333502171765885918107621270938284930243319273747535127104068386245954530703658699676437360189425314695134652940862312219558898807027763584297890257646863877546203004903012496429351286766275122629255727057467276645881920648937207522036672206113870211503061169237642956153467367921236774082477216022823942871411684532082167724267111729729444417291799003110365776526771762887828810119687937812017153609676258146714289761274630851162080244271959559034332160254710867800572935862380060700879983991332143236434268922965014914549328356567864166737285906355844027912175812409479451771510421097633653155327502054217176929611392352174730762991027334704274590391740120324011882487540644470758708931851724463410871292524639483741928765297827149419802561331823380144553797651187007563950331805962524564780017615779969892699676008524152842588272266815855850927407135134741092353298484311429998435207314252465505741739671577470281734918544280688355910774968155072927655243882486507177562056722738297364724611426624088449021889842237864572524366477526978457364411719341453252552601745555848105616636489161528654274108914071755458570272696509434315731564743721037845394120056845817506720005074420794194325484830935782274885081586619115908272429463136662833232219167995221795860426569845696318601752945171750664588474967071944213924930549145069664983047261935005730739301065560512415474187611829290354946635965033298895966479757210454846754669035358950338410898680935637752535491249819343499565385648454315375146143165857227618883645161553037455515824669047257301182886553372684337812626825922824840993926473899594032353880546557293635051991280553768508967319860627924658783053555357846436051827726596666205931361565989740013656117944512403199492260022608806786908965349595042167751753117941228737946402404782398098299914460603528318884675077198684565696087157897168118890296311164784119886340598083979167346468890724486482863474188012247409964311581379399291245129385410855059064426627192281641610620477653499291318029682279403752564124373090186495869255838822641513096347344682522719805479018163714255934533158190762672778690132957702267316026688313951653606260975135560477464699822776015952563728817651599331448605919879868516952133042358764206024868817113961704543972039905561085305956915308330354587399431472092636774071804401114262072583029962514372363279398184442988587078918320413046187489693399091339957068316365008443091079501858956151213488567690985988968647302761307006139367336034971709064387163080458565642401294224809545901707171613463571981931246649448539926366364210884062262638199286531264424717637795750671980975614655612636311548478878024934823461814685027160581855501710218976443362068531072752337850002215322433209797584258728618920108777940469829074796367171268053909041039291784351991133746039929289378082127309420190831371640238152217158789584050146223188565560633351785981824897025626303213531572584813498633524295607012996127653526036324748640589323029066227292186053006209751632596787486610378889748779341488814302171828025940591139761554144125474194744924099668440760255025033900713864912672075603174446433408702164900514082093983387432020003218779368932221380329524640018596311420398901346014957142082501990374607764412499739039774221296430919141216240753079245253113588240439826878469344168205622922570315625740495716267764026323256434562639067374068850705057642883043471562309784306234198471883536020806284873978011995758940316930975636193532751189187058115593397982048270503250714351263927209735387436318459105391556453684781641023721666117617567667224771654694874944859420994475845105580838030866596797924423581035587478130946800711796642564333529168078640500928405192419222852985292209238047752970289492890106097689303061531245525208021635533359027164298203385737679628676683278382865825218356805202653583235238851192816683157673312173488236193597393061185651375080517387496067937339435407816348092839937257304001491944558716810218022374850564130430550758640330071419166315030561000383690867068157864579887671717314455242353274999145262672961058230438754463952688535135895552646163680581805849930134607211712330799732439762928810398966979137718197570886858884613821955117201472561769078392515523820687417181614335189211160971245603370519797541169115164740136050398333495251208278545168572476698249998518122328764218233424323501894964764489049487272868733491505132609715872345382451043616293372705876981367776954625758254811215743239053641061125514753412599705021652713222453404297120443075646003359415495967589104308726375869191318729759172919544679149498684539177476549001151478708631624885953004246554834339423774642399874099480494554343928799728711831774401331549000180538482735878425224262541773164723859655140023867503394293478500505533015255978445462102726815732040623199170748526856201918780506305307404246044993998947758715697892941230179337691804109738181172845853519796185664118496072455095930861538372257593108903046087009950523791154386532638113738185903629921667958301899241717791353328067834451713204204653891542704942409763089192322302950394218812024811007017470593791490975414240228728963162966198927535525618400458407209751263368656474568657039626383287158964453970857850818650485669037669242902547931842488537287716079407894723705222014725263929250825171251632675372984540363885759937690585017035258175892069285607959296863567891924316225476864936112103340332550505477762307492469758177500865441270520901926467309803673753121002003886410255946810787332182033356499115210563927214397941035548175700783448260581485082019852248495842305441718076478631608643246760275589832975830533520514673633106762280792952842283420601371092435928157751863649485967790707387435895177631018553841631767634291179823293447156854555864346725718927691571045372280285219644831478057294308255893052593369217093017768151499016283147902115011931341691392773474775110241377532816879547151889166232825709255748507895109516389496241265965635416368028866262379611214117823639761982621944147121014807095982888198978744611784361299536963280654625883376514379139846598123524060538125572996409161136916324510319446598454219365358154196142881158344650740330320754087514086654799106394923690837727508117233673553881032180230111893725361163562824612083785058744951888554528725629130584477231389363860788064196831218363692730895720337090856008876978957025667858219976198339712365880253586782873505880372689930639025119384816712653713290813770360350592470866353548853224070995574730594599890625376139887574327136759335708516670489347776032635535842695700996445704378345703015368551389769848684964703287186469306468054947579576953688129222841247492453225735076985412406237608982992136870643005200921801368549560067345530498686893236093520163785815288359310461751922160213335627057041047098065570802437578055451789435379577684863615472663955409044396156718488184806132996676983247129859204242446840278035463617432670632462426120016982074274746677312458999358707121601041552737830453704362811862534319770146832460240769163367764625356592422748632842270359902500836843282837761914878304563611619556944279874432972953643051869622036510748989664092201715891218079240810548939035020868606059710132449971484137745560526217837125497378799056383184354988960362490530772753453260690125073503429359203990947421923514457767474759060285091770621646791692216309193314447169583112509875263471505532228793397526678930258392394748823715648386217250829957947260837387271858828138557052650775014512322793606499669073284936347028705244305076264266173490229820275304897262206507502790688270875737604472182736717321232285721207825358652224707531539438380558031377042705991233351073797752999108990529316140503805260775109827554942733660304080686940961946759105333124984318415757618840580160574523600939268144716124236490994380614553382499042837674095333679839546529889734759867490274446297022369595343456505627239784482897992913707382178059977986874766572336782102758897694091584316052853926675225062569493452782556097999573441267124033054387627526680273677148068383806667920045693367558324587143393580130212768671525131829098258648590186010311739832360224179740356949513110544785957639883464753579881541242944807133899878498708515358201578191765392203091806545326106678278458533464625171492369537194816028826189165838421939113816963809205501518096478696826391337550624276270433017190264761323387732120375421307433602370709297089807523805479064939826698324648404489996014988595898933709748760896795596191109653680057090874214037555933281295620274648738575950872103793731074449704513752567011296740882278924058387577862509356310032487962530950389211406579719299363869934794342374980571594683918156599147415239123305810875289068683647969615860192684198525447710512716809659447638355098422624463513247773745772227772567969806956463835069951210157944972942330822301495784115894326529881842606207098889388670113037958211939947900487513187334342038190072580855590090380599123499042520757338554325213299160321397336747656852589236868639810822148919090387096699841329544413690850460210364398456801210218899668947040632780887515772265096687090290691289921661907852938960826085369486351315190243363588743117137753014904506818482469932431368393929027895015192896008389645930784737242152392742620685885358836451740656063410744885771114253469984128700234772269208438877614528045558758435378772938622704000011539292733367916110355899996573591770428310433806193897629512192198042611096015804659976503532036794572602465125414149545722158901991763269526930901348136602156025051789274001710637782152059674934988032865718395962747357457776172850089008400453418857346887794897228930017093119866488777477302216802209946451759921772186726476804223061565917421459465584749658190601543917094563440590389426014321657459559510387448018058859828675920542481530376139865509865553810850334381905062406908816404789494661341702703089925146212075439972776468164690673337112019823785101050792782009128885632954401361489641275327457120268185684561489019988495864512483626692086072345249541491067933679970591691425428859929438709895833127725390562197242277052047449755909229920001649898753076589701294483826917219096593559838248259819538319627821941613055078710284201252152342776192788314901961886458990078100835120670991719196276263970877755783541208113287560714375983012676634131219420745585852914034825567763116408002119416478103200824259501606329300246670178455566328988856305349583825187905557344533508570331628303634581595978948418838775266046600280229689213410175061938762094274620206885410406988772961131979279822340560904954888385914913176655020200100219833834746441434552182623031115721527731307156271199132663312300633051896620074982695053238577260861807848453320074773836949195669488471845425574010428760839905562179156085897821548845797483964925996283439427824339235990707018355322293521482238849622393702389134147963544867890622934387936067602360151228240968799881614651396604613382839083676054973452372704298376771242872147036685001860779786944086670468842142645196210616951598841553161719144048071645103660784614143941033193843019256234003283034699933945556469387465373493218338503469183681949654434072484465423128492316625519923414181144402378323653933092837002340775921384121990586085365815423719484267601676889083396930964455577416445339618019225621229033647326737255756457515853522961369480100483090488607408206406802052110173790232674191629313561983853920678474283035231873313789035858510434955716244894365775183092727627233023986642324784189296529931304439666129094545331996022512800333802220344462831219156648859862255679740957790228101187818569005985364526820742463534578116450545558977846413973566693541106297598345751111211927931466623070158467746721666440367170824227968800130914453866339507435769375717452723679852539522993084755527608867686456351360534697179475839170133237398778022602495559709823080987070970834360602589104801116522529235390270860970526825895890637325597756521027954993651850861884754599470461313222582016416830139032669736701249456251599420459424607809204650186210744834532973888133096771511473219587359769908189953139728899455670458502782807096003971969572375249910550119462210131301243508370406987950174074322583627909063697878563506164911866988128417454955178078934600422959994689259239607498120906831475719783783380191197393351482137402265879899095514537575272140926846871395885691983484158942294782749571693650022866953582672922622104991810363016755867419363629310569544967000072258198115637483563170534408294329257815370608263037162940268217590323182058264796852971015832066311013830969453916197690993146217793387694880389630505281246315581686374704912477947925089957650141559424300138781598016187709193995413327509196598054720611480486521710105697147828085588716772993934908842540768727933961116279270229621371710072696377753525391213357033414926662764417471225545964004265441881677339585682711456515992309868411224590809184587423304422678309837843312491561456293936099062896480480497216242843481876104522144896951549765664646975244449811222237794044760301231278058772464046046991696848779257633291941329416192534627111968393165552763564609200536203383916345806021916956228657676562955303887791013209840612661584706532487865769015617749176708081184126217362390525094881070886400259058042858368033717732037486991289401644307525240891743599276778835057622019249414324904739778265579738285252111561011910397975754308445901285207822808288621568018792270200680570514183140707417170037547591493634908072568639614337341468659291015844843850894396807198623619303563197585626045018422942282381204461855072341981135239029206399389793937406377419564223881264155200381590178546722704098397063000103455358728520390468958522821165597659723650463137381359684437840252003056581571711683240262450015223759774757063821391519657179945417392524067341782401784793345089049168036334172581121287525245904933584341320993833752505548689491109323754390738906369427214737052006957825762411935216610107208665831219561914128043732922064055055018319111451773837845389963134041279511457477252421486547306713625682539336701835703390239711122809047452680566663858032323780253403686227555954410946672509158422937721945286210292927913225243828954148400255913092174864307265842527259666101866277297808712277102370561366544177366490294009740140119650564940860123822000773156533735784064211345400537007744299443551612294580605380479615240126179468626433038525556151380071662692642747107062410387977093254876676820087976376965792900019879330834117651486746290467310671533100677677507511581443903504302191295982197959143929395018197287059399213878170338197387719052646634639188853656304757782175825070743895202496382699012052056165783765360102771249534928779779294380293520712106925521708058961306312451693223484076516245269152050308386914131611514198207240642376482122816127692392974721555692543553030163056601481344777329567375335976301132905545227220193455771557007226702114223418092928738258431240069097927252552722852108129302790293264342033742151706374564231442014869732427260496943962866292447097732308041541995365484265646869634517450265757962906077219095882360721478878015851065641212217404993240328630487560180093564421161897400225484447158169640430091080620645013426037692419758945306692359494255406980781904769927275825465244374010523573061701359107454971306225159532864711185019015193500145274812489243749369271521573832798739302214920875525545807506228517228900017462785589609589878732244951915350942593878405725909554343069685879196405584259128080738254515140021526457498957377793803639243041457226134245730979405746138875514020194738161189959281650314551910222304414486201645458618646573518343411212413936809450518840221467424469540484780699282303241404251528389256658957466115530406282971774890372749835182404461073621186304518755270150181972599482922765705296571485905962277579955222349851749047850132527635350291677821297190714159776997738202963674080646901831127984029983863034384128440264955258532685214766875242396420585398549095873735749678056250362830951843893232671086126060609913820265426439492002547814707172918169295756910353459912548529105482527747119817098984179088229070409989929756505660086897936335808558777511078659253729936112052294716978883018517172086859901848462684793006714588583810810527049328712141205150456050908907642910852065759723767977615533063563687072333932011008736327478188809361676414567940521521522729143105657135056483232873071699639570928355345250981862179150771004380635421849813873450170998273505818219003863010863648407441762280117139742080889365772211804093282751562397488417399523470227868930852611750518417127363760844659710639549050583879579698862509653359572906250996664557701020176918553815095888532409170502069606842733186304710790185779137127128441283471394989089631898442694497697878740782217528426980400625342466465444089671534402044787106229809325273887592461677349177436829150071884466212060797270944233073803980065695140712118843614567992071523115842277576779129870476497482881802564349792218418153852440158659138948890818776287438097994450686046222692827174896866090010655778778927436950067701070271624510034929968732457551600860539792778659781031769753723221065007004350240981479793090681880090277752907163551180591552411042620839451919639220146002798628180430173498968333618262146763251450974027375569939120960951810795123280036615390818200443375417745515724105040559073164774813541564789902096211972416207728277454349912805430658203498425880757381099831228730474685581583679151261334930012087764559245034715422052301609793456864808728456302592326629913750547823099214639555959847147811462022426589272152915640875801317482330095790243080903516451624167210294451281005681958938555144180819853414248673514537375725288966828248354948683652565503562967720897211999597931345181569862155761495521494918544331223940324894376502219943007132598633523397575445320863039824239274903066826813944160102893957815742323846523944040835627304815965740652750474682326150297122305468048724031794749344981476466470285933783998133426777655051095237625249565353107739308954908424203220186165140814960332696593038323822117702904093392233091875874879955186310396599407657045350460768270629799791051000056240075095565252196192736453776742529747871553854529460387148738401780148893594582181381582126232991648519807834420190904242168122326020818968500086927590112747429425480717599889000010724364115958396566193710242470950414878310056111713068317095752679956048173053499021315276193963056884269627087389176724606837726033055265293927469521930802037796598699177186150461795996543721034742268514615651305974622467661560812352495277382875363946003643650550882312410340294523072621472063723570217028356332266657792115360431391952394062786852431094235851252385592417656041993531236032712292837393431980348672553560309019485335009012461305065712893123159447739967452768170698432712610074912772069025466145188383278826340268038180419937664303253978187120720268714658450982877875391997475776339560896734712552621220877260124250976233515055834296794666233357031257860649247964342139191647938189086111345840058689189779670145102410687888291775842980072570918048521928364893369586997861286143144825288840301414978720740837689467243081384319958118257426816877799113258605770702901061018349527130476063719336451782819537011588181470024556890167411704640093873235432581368858346990155998315374293037597356368487271524637964781557269448643440514150988341313755700030403691954580384577152058160092174940771355607362196627764383468813766784647933439002887024603374548882235308628673857274791846238171852464087599322323800556903005702228744551983604197395333787013218180089639837068255389060201330940174802391840765865025960473028094250326466953443670253115058022206211084901775284039368539015474859374680583187690920299866177160774709558078120109098806746224437169961459272839327913927249548760705772190648911964304193810558207885788808660490110846251735455883554600409770366753433328056136949610246431638214912862120138257264552527112346698407788226628131032909742932769026527919501098194804342555495647599853318265028852439328254030362853664116314853204927028672283029059004750355376720740165768360757016811769944752335304007100498617536948394408774887002113319083444662812168148191298927886974615855464715205176286495674203570704268682534859133126770075555670497106309929958918138170558821854302515243286719070451146856081290895187416692276341452012591907694455790106670812962505371547837651170023481844762711456497184750182781266047733465848301005948738249751325778719347565748567096560749021447914945557613804671266633677379198449128730420807277936609962448009796637292695377951439591396506998105659614518326876630300967622931930202106191525181927879404796583153394350008287153365188600896909803604416401814074113273342527015390664688201393957249787468892605174665497829043861327518208637229235527070639538243996801073730626031301632523750733259820111157813810149204738499903058924165796439515313718040747428825985228577088930579753131803234610394652167270483142080953059572950049071727580212742610534610751206121623840142851858525187769170493495135469721305869160043518418362402254882184296239543910013304166987373521977274728468992918116523308028690352838054000045041640668828009732549012019884802106156628949281525039816811284955018509460084361499838926303385224845081292172805732064498384381063099699055897529892764820714159406135445945471214884916703282048136171373980784449696186517651696276783296232974958939446721450321148672447666792774491316971997440405958779232025996231577836848457340340557006736920992249816494549925455452029665940913028101947070917668620556871232731281986145147850059277664399064603856921652298239152618398092377917040007328071537071312392384410702919921829166823573907920591940344437779907010276793080919635418692143156260945098167583573432988322102720554601405270397798292901265061241556038878663443671351732258932374733823503388482665508891704389969482060412249791042853572561404251806895752702568441016372823073006183403695584057637741727714441394579529988762465705580852686050298973012457534278720760197380984705604193177879370884125324392909380462753956834997685648061824393997105493684743454127053526669826707749462790783189584122474349095602377223308935768285790902018229614019306197706327039230196681194046362355429475417104245116636106083685594331859372973858904715467383413256954261300903015990990361386107515739036253967875725749030810753513935877000365179413283601301961016943421503310185922207859198005297149249257448849077358401957019834093609016391968936880846502686280531436785849813441551055283109722237658548841515196514415303525692114964370054027593759374584625256964866945085756477980820201763734407895543971693469080292271830625355686927172711689309986146816917841734595296997900693512555986692347942819971784499374369388650332361185651786966239914100031370267625897762493306306662286608644942380774235121492989230248680825760787205116797644979107707642756568133036998997383247552841249596829306730676867172335194207320414492316319238591590882466367517829311630744218278934286087664049824752279382207130217223663986949894858325842513963780015861897374116831529368772089092501626521116712763610219552547595446020899545185537298884469834973873190987392225141829797194514413835397762564245644535220766628310465294994549726731761435973222807895063595584049228000368543278587318437526046585283833192541518204258321645093995074384853803189668104365287792127993966905978704706621026060128129651420443383813327576857656866516797138241039553212460232975487694986505903690214612111504499327954464782210427918549827150723437014802966577829259195102842301828256474446504985206176447219208088430501001075298107177387107037309336352515329167352152519315037378218090756621830957357218448754019882746341957806144165839587246865267058676044653994767217425543796006305750707813753096198279774581693210079132620929127021493253660027116032156769263162338533840192137561748838387652704839089862912018888294281588147568751118797942421830260278546659056342174245631395073029180659350754465304031546060259710932384145926829313759096712950967118434831373739464637854398258886800325417606204969961029012175372391440670559744739893049512126996039195230525488365169467791362114182951435044968093080232427247462140647823285186490753260650775716205649317542179901286585656248269748482271296550789770251469718634220955977795073483082965795658261383129978672282624304056905532969757981267184909161313992318777367318530485073937103180285710512599767697136567753862646819088382916156500021855974698066972022054994328720533075420609748900287693259065343827777580500582663332772712686915778872456203276279528680069002126167834731174085071422515032328596020086364085892833455360929194993242932922065330996626882638438529168156346818592116871484573630084455128481342393686171825112884235523297173414606764938679476674995097465549252485841445147471147747725981330451873640533728454014585165176378776882684307796449972305002739714835583232488599323024954782900595114920850242718758935631809899209944226617862921113630688961414171321707588805520832608727453326859316011054934902467139672177921243296412375537640810601126115189207079530958899360421945618296394040045952379323782717165532402777185623828645220285302606502623101732174460467618094463169405278525987006204998055748649335083162553519188164233846343198199409742720390689216240341611776227872587671782339121050208857371089724753913210786336544853174185749062458988076099057322758410750679433797171304446826805467926654859570740614576775516792009693812304838652393466220329250668666531823037062458895527806592314124874821944354027069061731525654519316463539682823425439532967901808623121440428405554143862433492277943167504437419808018447071746170029329229218357648769726850041765258688565241218252997391860405580577574209040505332091197215741008181677877727470863102127161574312716393284339659450645489452704127168506168659270237007684893110175054452567372789735194601810059357129222015333228554123766222892595261978576406447501891994438683460255239833066180383954175777498040221215245350935063394092197555564413857353378937905148382076060845365481556424443446281604625644903433181167928305722765829055013743094845965330488113593924999931494685385982757621144931043922037242086879537579251427036709760210317314617992369989962139600419021491875115604663304205480334971777455336338390597655184436767347185965759303165844313075677780188999305391723140074699905322495167341226392579589318007379615424270470218543204817503983053592080028581229393281355129132119194713052695164825331604553461518519245756700846547041593535364657168737392804601807024823102656624906329399802531429453790500151559647724898203748109712295603531031453031145962625738435134408728102108582226450225108687759229678936448302390207366000474641729329638273433102959602051372018778196459170465131352356936832644233859944907240960281929737334020239216699073481151808288554103298749987575319930356873333969863409788713372379834520042367458390582916963730844314979155947983328003914761058168608487172181359013005858787086793543982894944882178177234843572225876588898773200433624764001374256361058582413336590386663343738850841191463600091143475965475309939004510118764083556858584754151291054050625785537350691900197743087095414174275657689780963537386067899387243632017151549228482353278451098543355210617504615579454021384197767099256179335621178992945093677704493331001949851361737204047031080081634908587221863220293103091525270417445052305739022850957499621435013693170852327373123819637229982692137901180744311081384719130851426968682127582709564130492162834016757163760765569434780522585238872609852449626960015666973985355654035749838217198921693749871113715688800465481602324530247120307277820037599327577433398426855467693934235610637242607373424369932597240570156342055690254532399510796365196410155098106274713506522011676861237042023224712879500924403659124105003611901537062227150797924202414774115818323041460841540132670289117597651299947237947660092193262415030818837110099943421747012730305361757346024137731479750440492782311607118813954432307243313289611880799896430239249192889640919946352906603568497755224313533085360332532977144754795027772680485231319012637083536887139806303274357497879425853729191097624348168176080175880925641803960029928356375585370684734599414178311346781769917224689004484459235070558229306512099734034662168586981897073789905296273066247513094325793353686690040953536304633035187239723290289650708227190355777163070418431235516234949187481261834109628461070572167857288771127055259309269028253439916068278497360275207566470576862784229569829222931327478902541675749616826969464664222824263223012349026508953575349694780332576283447636774765846055982883867497522819683413011575385416619253899355418532711353089959630427086529493862586395892711415172694352233796164268886091405089024949700192784218341104639803463285058022393238250309994887079811021309859703338705631570787790516997577572165979947920255348369923975004067143385913727499912973339557757851049005566200966726128400417223052531274744899796452925120122915941495818997528486540657939645729143444832953417376559375860669736072041937478742347034390111339241354802082080131351569559814790300055627216369758228270086000531868088702921590040882517571382922404578446513024681144517169999951664120568964866288208787492986672002307880260754002796408942703382903254192053882413593073687559705767800101929038292436700806419554951913697345425420823120729912843874134030812207562593876016892531506325915312994558570982627490378520929103267291273227364936659269755657081055827786859068677846703943656150741473757278510951582087034202501086460263755896589335002952813644808325618660017287274781898176785201263209879852644449121940880884272250600647496146107184173069920144494038756625739700879700519831240461359242513399202034899261653543080295337212996373180619827040950077164497752092416903363850602366032553665367754168084850206032334081156154886637920850494570804228747927422074249267979778953873322104732753238634859373614483640533375844425551889396904943726711329357073059324182777449679188299866328551506879544775017508409778250068628408953853774347893455659253019882794210451583717696773841310073145977525890980411914471474227630699824039682312165251740881535537946522097377316075604702230071643559551305197016169337894501987631323959094745243941910613880917819772519986669173167521584779961972883439929754744424494633416314360667363418663084123123608635897972963592735832437029349984476403938436122411982047450514608504813049611185219979809194928224412610794961274797231617190343840809148734308511272616952126051902372689490734020368079077443646420946592178840063270180742046603439877780352106574872390527426719530037813907870816416770106977583733388010891262843747307359908165295584013634504139137498300851868009196633264147297208707511264791005273470066075491402719859403604298577223140964428042079665519190181759370328590701178083314616340686757947097087609670267863009679117458511483600201723030167536320021532791662420944217438604171978639917481119582417323295519587565592303936695667601837582759820468547479031465799696968306615166274829507350362284308587945622333354403953918592919739904555052715791279437890948920013097538216505236614617332310189950417386906516436484783381346475160350039608308734434708580150188169875976035738205346140335546643142470136438182388013222062962487263430687151441369335118282449569798644856206872508937968379071453559392552227997555963571451018300717660225313762098859473458303931962799966355520917852590745041145588874094926563279837161292342527072398168993135725424971160369268258997555301373612410239654683380365546092374129679273828540903897984065400538093890253403766250698923227109815911295681036747309499298217767773523716039092934950013891158881504363714291343563668128898365196089561792512313399266555614894330105355754342004611287367749899280112232731871853499964658918864042017054131732158071522455946372029493677833357063917340237802281805455618892685226638869006677203545735653059059177143253690202066402296551237655874025773281469663074772854314147932281086937429990912827700399875660949529003793343258613409840304260631001663230229242015737490540299715898434713343567136128040315572118944513403284473092829820164036463549595712998901827926012490979384536901460552755286386302033703270755760527498887370559321332785919852492611729906728994539851616005250828580980036415969976590107684599896674656225226256252254686846876261970822913612414950392857932935375943320863174273272532741992358852175710545884534603678758155596033469594905530942661311827868082621724627055744793164913557089426375319652383241241022866249337435651680510377824227268897193575427252854332532105971083903046254403535090537876962724127521809018008387080953115754783319987516830784188008825998963875470550248601751211871945963934941641001292496308478802546166588005007284205400746571929597714994008311959355723267298430400498513362010566017451124912439005858734722632398110524048585630019692565158506363759107375561425985847315643326251970975117308776291660112504356580265951802346801203682144657068567982782559457881185413581011555108743289626608694472591117167527772726010114977944738952451659316708739993889132106940942310937680905640554884984891666663904856258393583183321621160610530437822679811585405000700988062986861336853649653465873624437956770950703598769806380628306947415954361460051477200542406604951969890627339747724647371988854705744888314017602827982442345966930346117721482935691136343799486830439362935958971375767610405017478848599110130671646748847092229240983961054279851113442901392843978294935330830778474998375180038783970283177846874695086296717274425997958859781550704086395708207191287754148108882379140354083908428662572540538668675281441009427749101527599909831943569624705499691434239767677115918569988372569456994790566341799038608181480087229567062169228285280775573863930481134407281722642422639613227884380469864263697194835380590146875185829521848936943120258739458246027115300938040417973702294324013279961026959019639491625374805610633910277143283963245077951563178647223662382869373389756723104887645373607489961510056718281033380805119024795218175972920790583842355081906299101323753118240915786619298604532052442365988869746602807763681635221538749675779078296351312382544071646569830119278759918801608697727340916677724023466784431845278464486863408235048105443178693072091641205520229640877650604921360913349452248899905150636905287870940072585036656201119999071630227909963186824090646520562520368080845030724284585407148054874257863410805462670481538569016735376950809005290616136446051854095003876268361093076226702921319967502897871382806879431082526605878740996855624904393255782129438180782507078731788358833583861781322415896889634050234602997008000220271864725243098869007381413330646891594943295480138269947594035938338479124814006205292859961363269971478529221752473952864412372621004826750328783331004607504396681317663022150869185541118174756921051895244352260943688506470508158383022270180646953368777641674003268355772193827646078246534088206746774677830771143790224514844842153964602169317541529254766044274256602318317391328752039091551220951024458180732397985788331752336907476640101389276101448556815784258995912824622179071504633061401045080394022980439967094617112727467267761774115493029157750561232398751073451729194374479363710378641291061892718021440337757560577541134329903715125851705029755531545159706756900294027019230194021589169676087989578686477451492040789952826608399116356140611973824401008655842488420632655704039507630072760491571889708696669683730786099874280237801248469472096873551598426697393973962232473955334431338344061874527431004446195953638366525997835823056140492616605824749815491039538241498503764226373388108847454610015621340608168797019507073945782305105928565735864627790176092435277352402810350148709537834811204227365684840592382813412009277296089854300273616727945115140683174975572340115896333570761355671793390172570985236635257156259496346097003616272178780195387389161464150360697281677324504769033628914389455083276822688029288065135321701278683513741518170773697139137851769639819284532872069844575751971447410151406319264183136926236683423137195061002918539317480840959825681785911303723822460026791951119191496058359056280467479618905660933429019941207390017566397159162139501711176339870777540539107796931194411995769170429090484332798147139306588577724045855396222451251641451575494265464326431770962719498617937213305064923271985742235166149089349351802724912697250509398214119076601818640263798994289611983441264878162351447005052571828364154429175795693731433005803657220535633079352692353611989784011956664017990798750004788017492235648657672320436294205298369900389934246535280322933508665220272527507255203203656846099045821574281283145608057609465001340106327161371232410950480448015097406027504537201090193960992575637109367193191842645128895354924288796425827650963826121743578154528635728569657365860725364782693068787604639578120654590718672125829379117227654250913676514157658674346910232569282453877071403701717194532649125696680587468143633390558462497855292806346473116779223263954908452280027698110201133825804559664665530090869560885086157677843388045601774521804071386172850136915128102350092178281319010656904145608048490095235150570907398372901633047030244683782463134289071220348625832176930923842574589669403543439840340173425287181170550791608375513056393520734629587090255097060453508580252699965571417590996742323753085622865174952531507607804071380518058764078370930828790318468969334838783546649193667928376629052484929500284844537005969221693093522650962014610122727631088380507043766249281668729992167600827589544959303268558411899250733401739922854114283301915726135035440562662738799005577549940142613264166184501501186484358901058014217349101075428173161942488388446360499505057289553639243010726218137631589898665840912682371321162008288049160396654187503641523539056413961506699141916853215722416062312772899515071003717837174324790011842757008732855615251481738290318612661525069890223155758222598779560639449527721221832441490164209117791480499511880106015686073022480711922532016274954811339261981951945100084351232166801416461485629485156463315599378589179959526855950808527458668507079257714000839335389718376460269187651349588830926859842663201455657599420634774714514386397620640499854577714616376635275902839746146524332095058332848765835436478890367859414054689488093124547303391750204481243143013533836720732907940787081801269899253003149905584930689413247045509904887681285383247439969713855256325527311700889748075230265864789555139551625097875063854299011338666827599575125511668847048184199641261040339152524894029353841380362368174561067474607708847936065120969887514541263784988263926462127956914543695352195565738675996943588521145128837644429278702359965766970844772871186804947554973210593425523355325335217918060323752665363384424144241050875264866511442356820386418244251779424644914143911787317364703032659046870829074220067563604546376936282852377564934936078844109629238823809474693699387106155854008536419105763226949450826996501226306810336764296587627465783493620409165031846295324608533687221819558788321690634446417275192157319933048549315980000463888523128176187252206665995211745392901177532140898568386525384394737545914849038445585976589883682362211964855274183123960918430216152614415102607203017033033089976153909273091961980116955063674166593893179919420745062335552988115659102842059979305939961102431867223480948284428308442552205955036144362103850105783359105216882893865028361380110953902413176754660270488720449810720583843387832070398958177763391446511135743574677768622431073140282524732051828446873177639831441431648680289494881854859774417202159989277326949228530366124085720295734037688494678677041237554491787042994905534397618971047608045614089362831092717136583309157177971402395455470782566317704278431580626620575014709559285388781278800040769879296556415477186875511963538469948703753716463886319989747925600368237155863553799952289478263364270569407460382218508390367546340686188432252179555527941804935925862786284231414453050960479615432507531849403042086137029085484898691993728257153230779596280065571361882170492054385318183510632454282422170367926435285202374625144154746373493980233875708980330122293794941955280072348128848335604904724033538647957573819466362479067871033645692086723548350272635305497711128308546464415747688879366765295544096448329083622459807862412376002939875377251425487095695241490074379599948212964608222672653581137207804672106615812680664895122613620619304468372335995402346634398575856348583329789712098702646411903781631338089383992545340446008981481473815248198767278254645879154727816055242267564056327560639589815174597900570804981840953036139579377477509645435044318091246675642592042088377121605235448667574175322427332894582339208756127665396856088765402192527695938570821106575350649080182991359440689001959490189589010397324227560984028834695905270359534538265088526694251901372374759924912097402497019245279086817570353139658923434403214915053023147766587333031247703374791195616963373057497376039185594011091097270483834970879661458230828065709528565714367999352865116317590965193832495483972674573884277648976123672461207873241451592821278968174532596920594147076215543945227040635238913717858440753498244750614307138885087282907225801540085971975744526383754262632649867001590045018661775145415422834732049038170640277218303876366830447597501346366199112364719195706325232422978750537932438945828565367770520613652409122059550629478727313740088779484158937829197568398256960968112899936201910249453491655502520551312018084538887019775609512491106150927973173149363484088151074879665111799885425349584272160210853602493498363175334492028060276454189587800565898075629105882347283594920689457503597782278812378838658423191928278031739700090624346202244944487042806451181394020920289312196735713844782006549484411299256100122688760442066254283855399967426721052751630135931882043707611413126789698184173874426460547889838411020272343182854904517407693496793070338317326866225762475284726727254346487665347245885272309220464918455727591964506190855829132874412517780023129335261575238674426123691685846732935254263924781332775211613669100138818031094829822655748031934372746970449386887726016836856419390972856004298179289894354555745691596014291985172157256819222144896031335540941473762001614461532773087932415889465721642679207202172237358517944837947954077153065996391763918395786265699156837358658079396810162745521816929415286540177832278005609028722996659353409402630674637463423502667738816330938966898699371069937153407895790523836580701174011532304084657877626257367956884981939904192274716649050714957419617981171367163450465919997287930840153059709800161036298609593958500878533682973104221573077513725784599343888273764594554396689425598695034480245076373111661475463028314037834995425356938258074507632076714327970249390452298792398033421530277019797116891352847491845179547393039199850045885153943357667394717259936380991549215711509860265190935604906760091126690740637244915326801161714418662952232531668402121221159135469490870028927647919880116773961368366756747455465467162034803860064839923155922751658662855347299656758124905877638005473868232675403033234162621060504602697945989430025092937950060065899015824358237915481776393013542066737309873676463704980517804941027108647884877459518205975359938795501999970130232726422256488176993608462007218332809262834489387891594509754234596264399050980956983658026548889466476140953901773128498921150802467805587830625791952127056205515135148048905011275697513053942861231989589955557870232550885573962337349328599161869620827303132853496677929194253328474490589145388069333711946205482866362813684791010955194957017895274765339498722830749272741398309786979752301617629444588774144309528716243576469000008911170493995560353919357195011017785030992137067265113325365578896322042922992622686196919461223349935940644382830511234670151412631441795629026283431176051112829512523988376966234722286680712976112104403210410727115416803974576591870324834483032540193559715907490675478588586221613285637196758933840734484784545273528640316254600269843096731391620656531739066915504257805410159752679370103626920901689134406432555751138616860690073195148008914743905147863355607143630084321429158433249355439460243548124658901809025368223709244352836758009173819311411385437908021235113240103777685864590460034446845107106380635749830113761108797678971819008835681307902083646320759183953869337828636540003278957993915249129025721039285568513658897370854632282304998930597051589930775404777402738520128049853779957937574168508972863548103279538959764155628081764426267950037486854990911770421324426029629221973072653549902968803467499278798227394808131287276324070911977702356948552309997920892457053370020445752623936941345461557452506461894349516191807391385655032469503516845159353646204851557736379229633568789969540287035017835679236963723725882182233673020803054262301217765344556778281508366403892797478600737551238716304567858672211201597398944519479791064075904616440398968377646290096268021763838989876691987200556609431459996207394397859309133599897678692463346861346559031768401632850511952950477436309653458644948676927544443959021706050654657892684473203733653640208369382543743295624035953218687592140296975924375340389997636878378175287500115768595081251953803209630444207972064800224246329702649289178940023522182565523290660435504462428077475277516827895703234503098366527502829546480020813846290467857785700160334150608392782092709552308019388918716341787112348315142824082157929476926087846794607919586752918857643962189039775979614472427709989894795054274775626538847742802318448843893085050587275597555111523895765822749467390565241404946633433291969697193313058493889618906123264301069774807773351506860293158188978106861175275067615870798266882032033921340507922926196407999394480463064405149942965832974494636905645743236273930073640184395273916485498517275749454185878711556615761984737339518666950001664183457744570523072865004096014349246762022132415776431767903400200753166540159646735712013136255184403394068709969588028869779019037300038764941914701059856119412004603642108208981906011300388611707173244381468313084642025929931151623525252231121022846006260296154413853232216031151030729626245861850770929315373078943790412082414518846989596371071381970580399394197524617880438167627423655504006786247001683247298015881429578097184116623962810508953751555937032617663128976641599210168902243182602011486321471574820559583498779123961343011619436572225327873615368109608444196589204832771706071380532434791556880510115020399362898605215442775004702578258035536211502515829085135978312556564135859132292620682220258061764270676065964922699467631840914669091257051762041638790174672861959832016119951733051058344648434006505685210666235505621975991807361185194606162242324082275270367211610091903325286569146836508402985174597610448353695397176328959643786716687111290202524650246264919374010914728686270123215571740666547241236167913843978595868174968865524024194335459360383467402600887446116097395563533598808377191243703867668056217622833758295831328268063122429335423060459625275081736010897953434070953280944372748693252337538254631124390356721243961219852156842305028374539203115379358928118440394328183951412350316536657415390582316611165574462138627696266740283835941123410710458202558314255966392624183302454895760657079627931866232672951878953953737662267986922716344232255948513480663463650026161372865918405725112053856680452242313915312249339811535743814978566809421995946350007573250982649805372199834696294581078316694907456455620228225984675269000374491884440179352034452919226665474078730431397211861722105812332758074789638504003252169231042653206028431787674567484095285163751216213286306575392590644937753085508774316868011758477958926965959296216506076183396229268219043599290876920351608688244280045226115878607315888182814496796120355392917635820518719230805551813420201346334306117451200864989671411332300832139110925535085071217633811324756493098497924773051465866892274564960287100807614210591308701890610769863386109195108558245884375025277530020878649138005032309691191361628261649859923495903623135629911049489460698546852614396608784530259942146122035552318586999744184972488904443775894695397143616982409234841698224528766183311005383364477665702851145284256332553530441693605680710780670259545639875290787268607702136633583369593529255858677079059058894378935602872531268365813916115085393603583324311753777180379790827177615831040253436742147332118866675144782133647404396551258457489929622732145223394083979560261192524513020078073052699285331791086718896441691389995738377372700039917972116098486810896757756890457773811830041613980580139684885814667363220776290782457940431763726924902448435523099330247075905116684021896906113590752151372119394815289677300472566786463517026565690018928716493105499897574499385897304076093052369414478645506685522840432827410672137426103059411239648993994770971288541630932382934194972777356316116946009095774255577650137074950864881441027507765404283280273132885128899590397235614903054065219181926638974703987026110783424024494611185078599417648995454120492390099383006574717876911319797169005900985942209672046097610960445385291005331955565108367144160378204993796604760259434751240320388402700551462275894181734437784013398869076020132513680450616178133461504591979683051656903255383908008097869597118479751085100749563621560466438499248884109993970562520549112820203818255850146816856379857449085110756268624802244577264532449981433797669897569601052956151872284987025875213082761544088090484484879711795243183043087739985568660465770575846524278265588420755434841279761347328245610619906604610480707897610587039901409394131534656370828637487472506881827600951691940705257527867428599637826580737136687113636088168853755016304695267444361174680012096162315652847388897249637061999313852774361380653703254847038617106795797668146233266021243684932304650399769047105781007618649539345448909190344060311469099231700351148998535351707925102862550264103972499007426334162539296735687196999881211314878900237437024074340170631311258647331077108771120140050297835622591563196031698093356859056031906164197484272275764397555922640077462044141606177614875631964150946387738038816376184800232522125457175875184553972320444058325692092839551616713231750649139884669521241956230571204445464103981312943454345675548566735764794985155715158432254652008210667767488675783135904312919303893935303508432681744938040852409561659866964599360020140741293434459951841182867764381837261825265360335050297576824944310846291033480533393632826553713799394758232706105850201084706958227866786192517218366522466600202536266627387641749375649568804810628022006497083317536133361625748088346171874623557788849686122706504587634137251396894832528527784835234037332315374387361220783679227638720418362590489701266575217321530141784180700090951711957463112214464555793952556257948330484331190921941083899819674387426693343571000117813224817127344933516026059993899094273455997459750365883003686804683188336647318297272288744914536402725800728549045541586820594007554170380662142330211786346196520116469085329783878549460779869928012200286796127631878110318439637493095058909915813051593010487936432664834197136081235132214485749003251600243670260182884110841063637609818538943796006893148381034421634824334086675029739356993769940884417330879109573569060599085336926189082617190938144379176930472445384097031372863036360398069491348218321797199510656054647200868057335018265468800544870880408869649166498938772651089055784223762711804468162227352889137404264241104467024165851938834769410423247551273313399328890126375955085588462882823161543578782346837277589643584971420617904824851219496035680168495850921730887144816754874599643640546625329019842868566223707273523800621443953254756110664149385301239549224020092296445425212905075128007411819280977560419553239191946395404505040503810380442676269077334158527206544653405923671615741457486093930851578573279552220444130978225051750871914777934577845481470628197060929176275488254859878370541619186316744125449183269588499496440966579745072630442803531602298251436922108151483147000606950634304310084287516307918863080420756908622517280409091469739361151753601199279945245238024632051800950283709369740387992350195930963494046391275795497468111819949715781326239103196430128268629340979984695329834570668405989054670931486346831092655645767664832756482786856479995393997731581101771479886875085267981233780116600645373910719686711958292391527540237617742112020724851003534707563298235518496166570466038547654931526367266627989900181855535312892318858334617870607021624881054238292961017807335599556840923944011848361057037224652628094894461020434815426249033405589850260890569434393744058479234279992714195413222898936962517408831719906190882786597680344457008925222214550236964399572832282499885900018583231416710643974694647364030463591771439053926525396681193569641763959008348604931260125839078694016318016188816986497208394857112807908790467186229105468040480107864874414552664305663639310414377720461039018312086408826223525618368044038828140306672593607871445733216290312096855141890085028092595016870276191843140042916637080043000314117489717083047965480627599318345901013257436443796171588705137366781226344761614662981144573769511064132385061744974902389226909861532591967569056428015263454008344156519913045167589535232578020895585370522729937935604379546838776355647703625648073958612131068035026269672477380215665042617759219986367625512243214865016454815774736092969806318845215602361656566508791975688364841443946147540779109373966503427861429627616645868813144204399639027983015178097588327649820691316246648150499644321583681706796451473209004920128033909326444776162637062474956273845385232336511581249329238980623005865739064181634948518259144382122837291934286005081711540714108728527794692551987803997629323119658448174952962539930204759419378164033286535541264341201695177154313906578970429930144523257831373495109466888819222565563239524826997949818132669530294247469626260863308285169655777775142796176070996090671245224876916662797032451057243715374657838735785540756538836978599938720016621318723599658723755976535022935219269653730604549353049940745643427718276954415210171581028233131577319379427292368660730412180137770333601195498534195288706700095792075070296323529365492912704580843606066074736353322814507570147543009096789585001581462636890026849945232614823142051262891802905415312141234394463075687451396159982088237662658459514996190171554851597267471242365780448028759395264153817797495101395796034674261103333881288971442989937394263436698857792982823953756162179725606133103852381639688566597614034057399977467794658622225095836858280617153900228716692732864190264106850593824707439565736831744731949428052928548102615892766723640276391176864693210986232017588637478775965098453544060341965861593711298359596214289924128404135165883839850254068254188009194197974968144504357945915864783583851673236236630239947936455958252114608185450693580646347765073723765930637238884338542863924403854088430545847638038387003716930818169388026583531019383520634703522178959573847173430026819261478392871146961861013918685332880409038854403615219140252015817402410688311224961670412714126976909046394792436251871507755725708822679008152016179044388804927142272317453990256261255479524047381874915284834146363475644455874670629645256749086217452332804057773224420110151184798938735139481333768289531764901522362538694879654888946753880754005954358395863341171038095939304142921598479567086536361125264428125583242221012242358789226369921451073382250312600603740054036538680213338092966067812155994172154106217632138922139851291743009664785529172218563162317256575793813671246801108521981562172812486648799406273823871125309780956272425955815490588094507040015262322193538499134632735581250305693556329103702111053988976868540331417659383282380378712257368949851513997950501984634846191731193992043187992929252620506317310552738249715106853948097524067358672994263781120485440026225293225071479093501772561061856956900642028370798932000704139048978600217150465443497604261780884246703406220832902124645573667632409075631134238999558574652378103078395146876631714904412715954086657777587993980318855293118399416558102182299503435370529141732221016236878917360576415961306568591907809838089648335726713135685484545705546742222392476946573119579031490137858614255858424990026590376197599283906378439835184666668000939567246722389314066227075269594030817553593337044207646857836213241386901635522267429319108512463319810848952204324316740119372922556161852875869496203759600355943930624708677850879257263946768511284368919613938262794384523901172514286157661970315604518023142636992360301166664373366959094560817628440244616668521139290483652965220398845752128653589278290456139599767984446801198781584457250916783043358574839050999697060585223935679244112540128844524312123709934422841246864668431853623691846101978724651282512933366133125645943105398690610177869267513507148410648225328022770247770654285408577785284324376774893314579526427486891521005513037999979371532185814400479081453187380524848332992418158921113083880354849506722170436291132289674967973379790798462040730996581833151896095362732395587676816784735569093065650684080594582780331524914834843297198757497070023405245096580189118020249931192831105909021132249383398908304554077018136560757190751936683431767646158377539757589437619587390410379026334811813104554321137893953320672937847190229442574036791780083797978725821671167832087308445546251175981121486132994608655926537281540208160961892234539470498512448644967855734065743667550566278242423605949833627123353084507212199358125480956373384562002824854311300636478407524726988903071515032322003680089358046431092068289425108958569628139614756335035414385102210535459754636088814125265093461137426696591299762381663251736549517447108922859891204267322694291462090460644611116981172647445884989823303302994764046745799130269498698501285168147953138780889835753803026160387575149752007289437383119282149143771152837514593809815277914710000183958635096693388798430637861937495078547354765973674088706170817976362122280696977699950716887717999072057780237051778830305993214817317054438956511762274938624450263617122365811695766137803832971774394742601569243403461759954973550030472516268114436592686430007393761887929300339191938293121509931011176542975396781721288681444618185262319318158276428281310080246105370137554512491338502523870040374236907842495774113126095265270145105324772057110992660155561211380838390698933723463142914369245987503686654588482818145876157250490671343619716918614468435970179428030003966448274554516963055822348849928692805852116311637209182345424735552089232342389637602553695290063688555522368843336126925930951900267939761702617768005623316785696644762356354159174491053688834444835873799586236528190274001158369381549569131140872497644934719595405548678291395315916599549352180545117970230471666924655126435679386860645004852043362475871743167383662516305408073507566764994204420025823235105501359650208984530595023441871402318490593111507613340838374050181669079372317164672696191667103598376932401103767562142620344416163082637246564663994353375069217789130772896170062008352925518238218780534168203421105941383235127123012752339608844687591902916164470875074575147887893093811051418712324556364862743326017765197532389430962118279834010350577190940152504975182497373467622651538599828951159926883710262296809497147495249904750818023795403005941889667418973161305132613440821365394430119986382074764954868152467585838308685992657106081840595357119103063041842439756864284405182459476332455543603480607308325126033250128040551195248319489646431974443785694628266087273171668591783049653338205830353600392207498742854603543701194412695033192202792132303193060114709128526219058316888646230968831547659249428796440161456775548381226540658403225543185986121318543497128236775319842061536816827357663472020251731876923881823435848803723999396231332968954790742465700491085882794114234878783789839497168688017959873861569454868910367017433378048403440988291925314023568931817253163363592280917356433961554374150692451317697209621537907271075358432055397471223324963578134485437793398761959323993561498763114555872490339966892027903662415063486671355742171485307626853205076621573545157252588349562684599121944247574631230652103891080565563477062120633451152425673325413252673991953960980748588826795401868010810264897684513547158782301437262125006448402787471105719083939821857864347057448426044827606901405695028162259044627873236715584643208243118063130683971521866166166455765446153932069068037982263000723000400237473704038437072392951802431070181924516160925207476685151370089172931534813464643386763895898447137528569645982909148575151242153330243563973655085279995403265847708302364842031800043306067539248731144995255209011810501820820005308156624683649148857311390941214066393725272660268862073091366480709544434363086820401200760287467159045130632310475312651968928529977494313126341792293479257426535220892885122933673239265503455153195195878151823926060799877704985575675272672707816011152580970396406383925150428425832437164806145783969470473171783735463606111943170378359474598441317259419477737850309251540353973265093981491727518179013278211352128229688621870316575130354102208205735568147574192018466057564640544140899901724553105671045515585568809249019599484394237312583485082217093987701181920678708966475725508769168047392042058235901816208986061249093553375175209082242603913891712336142666395329961816168611429243253542646418186696524882562119508648309220204270766817172515493061127175445347939222293566350365068910667031466682456782884370987695672689462095197188826282038146610863193923200635160027127651606243925344962690202563983316070277157444712899209973300650673439067710597901754307096158024435191823164688001412163199589294823307662545048661064660063436921306497713699463240878213935558048980047186237823536421385443643171408740147818022814603972562774798240130456595630529467897745741209306190097679618314292023807446921913070220438831255392620853904008595933588314004879951572204040094368441867254346112004461821537106359607059283743187199632498303030542059037927897731004827286765826284872558264090131098197104761583517588737058716565143205263817490357489322811294244916043096858171771912990679276328593385627221213051199742907574805043796850082525386044126314941568524479507377365342191292531637117968595445608458808795919597079148435181380475528551922258214009221252369342475166686655982550271417115264100782751484293377748411227940417058752615477630113380335476611603305153905103236654539911420170026019133972767517953093838820379736912062402767737237759765071172918274416159895565636795311334012740248596499492462608144468611380039817017300379697237287285774549058363185737321491269982049400143138033201514295890318222944416024006772674500881426785196853693056198215995121057184249850143929289358127167239539358574319709323495022593588460186900191466876457044610211778056252304567767786752351099522190856501334525480103575247736469691591118767627594241645625183353037708517272819850772809415479868520660379500964051604358055441014069852066722912925316631096666297111333521666456211111770492008427202838867638687793495291740086763674017225680834266035663612629924614563086990169045725450985666779349443676692102453140853673441405205211310679506657787107343475541536171776303224531890919347751547137840533714042844232011927469097611546796783168637119188874552630396188375489378531612142861178297924219865795301893414088093081696223924202223710191196762225106180155692345249957625366902531154525454187815413204494571895585441650670452023056062188731304283188542875435916189006143101487967930932710746660392740132658094734415739821151479709487989240437663944283326348876196009623499292924056559839057582182877109859468799426343604202191285956357412432173976410345736846204799224045497376329451385066390403333754172474168572438186322196873262741283373974552212014469024027175801206246366729186873505818237706468376949044949871836790782591838026098131028340346775565454595343610108839390590698113506234928977292507425638809967098040548145980095024933921164853600168744819211723191985899719227477691687545885581034012767860916431634469815943792727154981540996624612839221548011930714144014496252805006418968631116821443212381312523399012253995506269237981763445313940974971794008816371099295947641934621646113607753423748589806143640690498458544057929713705181343502597914453249955876894105077458812980954685858551553946071906509975645947561742662344129806427605087659548822428014456518032000195566379946213264394700998481432205511692286514614923239324593862213187395249789211404272108989861624806583966012620596605606518911289537232726230472297102928280847707837435636258679538663394959098196206089619875203317740197313723499354162731884760909685098357855629673951190791905600508764723403421994036127453661729952916675978557988891131663480985427583889051015019584898433329417095114735457636814385942279367435730998962326155327477049013039153201344560188799557978848670823320037956749922170846757479151321468980453583025192933278289662725829221290159630188319305391467336321843060310167812131485841762835874927640154806018483317496075842552219190138544900441537503864831574892356225113704852660958636623244689906844142445839289304941738728393757430168870683051432477186662303708654658232544855115698566343655647455644439847622884845395719462269838380711055340900378833937017267712669543447413833727681072333564833463166500686062609190219284560498169005858495571582394972213000041457145028605283890735871523255643067095907710509762156676215559583039365729270185716364763944974808085406917565037656402495932158237450511995555732092866546138581608150413185376873530168971287799651597481171305742814735632058839859039732065223340315632249962725220414042273754709641033435175696002078777293348460159929431806374925831989935243432626610391436854626206339968161899789488654995745869555682969195085574400650620920436095711764955223551820838979701367337397393155494837857892594904893821356732805233032388881549665989748516058166570442636616882109198260127573357157873660446718369089631794792886467537656590124447265682651958164335901635097454514072523632309782946344536414011994997092371056463884152723031194106530379782250328945038159733464648742186951825618654547429347586849896787987518541638559002445836499946937754648154314878869339740645562241557883195457693493533972423520324780727985584616274688948952882522259100975334237549713176502497171211879937133773918704938579409316511861639621791019235398947480883387371692584436871260470919590249245770547463609473648257930364299861015434778609078614007867163741825249789249900117613887244841768103989187681456718478607478449185048713574563000553063085573496724478641387392651704939240244932646944863173259317968822035345134059819566172811409355024536080945495473113145469826276480340237790365336882043871521192645014102898875529794342881075698186501250970320731469900746123634446800319456361872298154916779972800205014829372248110631770596352241353913811112861966871351375446752487420498528733167368972103594113742358367754938859960809865652596633230446374719092610151193839731769643767999611194545644792410688978483709947490816543173868090502284689789166172319213620236217839789827509204425278308990866887098516977268648719250373657300513877656135995481712153910752747844614613379763770330031971048525954374976328921330583618755520954572384366342915110321561374125857391718512237993847676544929819347015624006982077164659041444890161361015523866537064316854685477933951814861060316153531359666891147050693750041523855344422933666637244184504887016942794875357441766838841103358267519523926870884924898167658530723939410440861554041672120128742311054998785585761223623170867909997246041688414705952115290312225126222820683194469659179438106231154034129180350960468234258556474179662045946142546285546610482174171593679593188885396437705844017672059077972958621393082023584490847707184861586737738185475906283194819155017039637612319338587419794330210900417265292467337603403519004311370036948762781785845343779485395071878792283588598029641711750541365455112523978498958050150355211992699971344498362745989758730053201264583065557462664575365426401045249652915176040120236283279370226883522699859080977128595768298092605421600976325221642478842414174710693307583077236425830081728204502987974166808463784980494055846783905371805383056075312498061027898502426952059527822157273807668115193871457979553404589109128110994010756533603845358171885301766604801397584745959031265195268046044704442893599350907745380584106871650789455945702205282572718198349338707494554200240035102221246639674533778182634787761178694237025521653805746988894322796694779275973792561547683166429555588569741613558727247057700063497544544630037711999987974039632923437085324391788828185909917817117650639975171703716578337356128114083939286672755953627488527116007731793600086961161438896881860900162758969324566649426082273353444828809440377118930786792906824169849284385361443169313109445456345661411318639692711851242070176269681727475731777264294568671121428896885667371096314672086461816805070473618332594796418086407409501931519392060116110551341024558086364540562174508466826022189040865314078735562137973005367777453111758265267784430634760995458055775246202723373084794837671631311297236173722396554680277070763961554494041432551067502789415387472740056968049690904375722088926929276615616392023261549253600607375538461305499452028197387602400199037777106590138344429372707620531726777245551321845908207107589148146470458174197067746131373315044446978533661566133609151897369666270118196752628811356689177508284472707121718223151393101378539636153687414707704112366678339124831994312768753745990036457080040283867580129350629726507193641423366365924680408819947208864563753173027685397079267318492562021288712170487791827791966043704140760707139164536536946838413986628893414764256938190858612678990685602199006956926770090328268001968416443639998632907485909258093812492644794223944778629875533025904808271970325515283800931636628314082173765302391050627363890924431718178177140078205857453653293164785804091979564744826499599158918542643571132995241581945067547955621030082746062761167757336941201960001164734877659774010056969700256130832014819474553898920700637890395416454684474379490488700795756831645761133925913475726509313924747285261476533303096002833159363892280234395239882839966489976637259672851321427625988020680511148321300667904416151139517393297692025287040303492388990057881638680760338105093566575657087347977295988432090786666118346454923734809008040726774410672042848156419966694403495756299555538679308155910137737416607292198164881530055910117371616549592635786048694571887755618823614124415072610008799383983927117646478081323494543826365400751959708400262477133445284915878957315407122243366780386934145173927431102428273050539492615995273093841622140435207795767422771923578332570414260564521350635320018560965736576176595856500844786663485468766252766139420127763311269895165455438062737226559681010633730935166575967621070299436841812781317582253151903267871455764131165214258120334236312125258709886233154054263759476512456595848339721893535433198773806782494434689561041515379314417511406358113691029708435161001697270067953705882049858386639972381513603537105222191014682781074617666064643450965609099027362756236231214431825282902608344387151823854513726540315643747888776436185601639240956061711027691039980082943323958047838894373164846297901193619501753575432197059445659218963437773045764062515471283081856907262753717634649288515413772961541310669465133398852357662024037500344873424357087056070816985253112730155304243400148557574196353320910864330440483670593826588126429489326151122185783317239939450569690436300632726969836119162415703978594168112120480111054946888158555258284144971809265898877927616216940496768802724051359080602482767255125043961441840755402827986146934329097446217556818086363839108576177510750194639336523196833898638735616158421788354516488502451293524383789895677358954798439135291558833426530281623897965334544614298306725661574002541920186000047104895482210615149070969108765022458941552418136809430259903438685502756719409813895854195808862255922141161065865219104646965847850685176795356200811476887707304894612633669052726315894646476019162804444637810172894547668017677805190410578848139327009778628318607551699871593389789123058675187438551528832303265489144636552629547576835611550720872574414540582706315027933384586290918785144084829609422701338112962681058480967165934047693866712044400558173192893314613921680154760375410336501939234101698940749378968633731819151820985844452380500270081483160859546751818273952472384420647927474958377512612945453722001507209495173775023783042840774043811628496676929202651146076242604963460713363293321923786818514736718414599125091247619358912293204861019068237870808072785966683720385124805383627022285880584697493395612421666933102367910989074098790091756201436432028911417350000303615932180479003095946419786985176356043830031202900425940768617125068990777719519980465610115207194807178794889959966854866413559005037547238329522779172048932232953467116262057520228603033205399277171512022071842826213906314670258149711807021357517623727747736398776333094576350110158501450928134253193102451783514870695982287858885331772952095533146876402998700304624865219369883311861541715953010518512075760626120133662391945814386095000543710053835285226406724814152041154866012543174466106706492586392724264821080421134688267659468900814157167380418455924021690799839357663923716868124282981148078659631137500234692533727456075196730151549548149751009291544460555509515043582501850201421199109243306072220209566902960527064259331980285486941857033859651213846035661556726146943925676158657440584957787307562560477148022512714130499072194163346656363334979863452795328051090116322968670209197471077355142641860521119453463458248166183743921584556573381210262723078676878901290075895254770831274801876364026793370774227964163221194014840787925395386323159713277020248510976197735555718771642400713751776565607932567701520232379189110049314724012529745189941465073036186732068768276429686894310023344388665808525304162210880103270295004086010437642949081500183588142945189661254280898559622531547336635587145241192226627532179901040483575697204686603001223732603587227675243214404286327967584313357448055211662572706153063726554053678843306284832942508638428443217962079624319813836326902027893699366539406029561659846177462480149896374743456213194939597657278016863657054810277492009113606718799143301040044943266870280971959300478733856611100290545958072286987798385906666933918840058094973410998466315917213191139642374729222371126171001461151751237622919822981764713926783143563022549373013655237395101998609570099080395448874959283422034697921067235161207990125207557550657017219301996300516594862177935022295696919239276983090922617373250144171324696227266639797435370883042179380932653947176671060515863363320673023684849846788708655040754940303712971154698660219602740221457704600463571553818456444852508862905976104419309735628135783832651397311756707905042384682366361987146796108220487724102244518160880968363160634093649860220164276119130153523205280569086887283353302494151958976388399900996016694005575976347272608801673075819276043135718924089507676027241181381078286432559063391863426757582434699672142007067432733253732409547290057733459906462670394472713662400112579324539237227387506233926613083452640298146438931050381098341988980629059547090582072550979038178746910651915035406713834927628318875956184857499826155322468988618228504067230951732652975377628083368776764859581171761297916174729679526883537172457204535958213259047164792978638235840080130581031850603424009568503925757347672395532119405210673119733143836905691816373994866027513359386602619798144436236255639078732118511482813171018321452755829874647260987057013499183682803381337939415047630567743708508471043472565463067715001841260189862202342668144585862592185684092349049159204780584743451299965391922899496428124376499725449047205079938837395826350850118266082280062596392074167383453986846505513878798272989683742386315556145967253024268280915488305660572108729455955732132451768414243223598616592788058867438807557108857596842609294530480500741056129222230702229226445967632861203753611937441317480763788099423439189693816979938524436081960968170247012648270584490188346854111910374959831489641613589478097219315604530269572255248230798435191488862371955340593038582176890460382980004165968059335942539625428038928397471321362212949404748375297068757793096607350051255667914574893589092455411015362362056348908176301525301724683949801370132497855261524030580004660896965840515844368359494772298697384126299535224286666167852244363097071229751295705365650631811026002572422160359744375571813588853556422370036745867451938974015875700005646385557555619657011410718734367109644226616962033918682067803851248743903507773614117993335698254669433120231159884321267215309611002192850182480154353163812460295841719787108305383694543306959935691980935584773009817414994384374737270014528887111447004809751451757197269528514094447674084941595205743857467902488300503602972267507354500845019275311956381100373630704927248500201503973075151174830612456671426076993113857447935113646240191369193427158240812375000144450875448846633446800622159950255583171157385465864657323549778147212003510867074601353626602055262892852830952082561288123070987270212953003494904657608322815432777429463890073701678407810156867069592536370351127427389685460839458023781330372311738624829446122776056744884501185749339334064161716967668175390082895423134627968838949719391998495806898748597063963199099179993634936418244997491862815055659934235806502574883239584930339922423050214051123652347409652378417654517858434197433028809741838435266274914911610033632056297789997753709760107509916169026953138312893290542772477031106795197422851597452395165506661735537904927738570339060624343397498624704539606196220029553436939838267007969775021418850939279637870111846643458412383829692774178658787392731090703028907615181654969245823425761819340440354897512875166234909138197921364106815189775695890045681065626130719666286244486588558620960395807717016804518024753292704954070310695414814435517280184879360095084440935620848817418553323989070094569536172963084152093148729848295428200822053760957178837151043720922616447289598732285610455760305412475610327612110555920806046115998528780912340881927951480447915740916428202620635415513451589250858522825272789026996996581325250856249057805836607278170176239351425115714807612568962499979661590550677047189406796378499614539032662020141511327826325379722632614111826783048450999635771391904752650461302123730153823458842696409587468284959161076382625917512651710322977695534737788386268100943077176963167600384772260939533738279828075226102659571239315643636171554074530097681986533636287854084537359919906320020225954459174038271349052028576266946134750911333102431442828204537606003757349454781380900525100972998277466817876289163242099720207358655891862257120051165248801930670136547733414281571290500943300214495164596811549758478266267689758722516897677890971987688556462603888720944686826284216406693190435746896267687745322864145954158679635506405265451625615504823682439784285861933642232084159237592373123117639275646269176798085110179512092715687764110743568780986506406529987847705673303480347636280211561416189513535375673170274927912491149031746915084446165896079962877750383012261002680775004775868381036507331317142653312981252810477469014147468492862210902985606922682111785954894545463841392127995821651373826306560791345099642054761313465590341398212960812793578251876346554753988896306606361165461751309202994190533465482419611728943325626791825217969037349249644133344951866984335365981561559161137205227282855282652236230797824669719936998677608661677378348352828303343310568363740348014521574015518694044856381304662235654109299154315896266692037144386148544566238682558621828971965624333226033423815241492243888682912188881935883954655319989992999832654571968470944538650163264518920687997447075536751944240224208187773844966149127375525447582804118966153005948921002325607997029565214145340445723090218498344813292670180970207463103407868565782511749615441397347009372816620733641581329557694896876553530341662123892987770876238193039271161755980319351231073296078597835093156073283768981239575236881084352625102750387122576017941641845485437390417249877442241201422100693259361299551282226187042468275403100682652647634305954589731205980715921611478456879310130976137000278262667780319800770628457424593141971675194709471706688604536000585998107498388193261948532302430879538723105363023668455294960803847944092752791711224469905542874516470567123797512498595008430803161287919412738063343604490720542759281120903958761807607392120134045587853898577813278857096981482908084997849538174048790056081001700778837165186524014738949249693914376524749941189512408942280451054937879015561984460101886166327327597422617653810003779258292694677279625512616777815526806048926989391245035168449771902611905735203132285190527844247119125036884332383651391355332929609064173563133346254877857643083853676875286423207354506140306749350048161138372996370679708832690963292065506055166808872029733928033649647764086756546366849534153646933303771810891878165277395281856452418490236471369168837723658376308144801694612915917335749460107711147923251009758179817915450259293006782751244849070747655909370846925531523924558571409707261242656189552718549758711555626512160761974488366209669482884702546313758170688067733739596350531629865812289208077775200290983615390003550329874068157986454604723616759540757778038582877122636143932847321832770855044839655339642909059818264943213173574569037494746243680485710415978138751813044756548542601291070059112995979243271547236763839668443823332667449245256504118838014367970977033283465504867459774357270537853295536273185950213020922323759107232815389934091766944316117929707680343221265047649665598203147863101882382891213373433211510759894105336111514572598936720823440304913857317440867038411824688546308942715202203447691156480552858007218631213671690659678889896179493817246463338709374012430504597131353489771827532004492827138389416962836816545889418264870578798354539182230534172602273743250346843278297515493094666209563792619987503067342156010137345787235859847198257471651370484045147439399379153132304315776935843260075410964388936947895713559707460512425871321412143067832229288289388694548034727591037488121492486095903772886949240306667571755645762788844361304977439905152232856112333506813005005124666383356296765769519593233911722002449144709883855162577778982022653657780729235688201912451592028950399958118419282841897629504209787887225898838267143975272236634727009877962870544381025411841151224307448093241188316773194971397400199026711968041632828587992633844698031604360048960994545075782218010483466936186760869363163679370658613285125585573375571644500664855330187369717087558580334936079488924919523984976028644971207819095638885504972215750803950590800020348569434474675856104642873593371571626347424026780250808164719388262983765219505071828089297019514595960149269250134430439132621184107438468760314348409226853830446272109594536119612449095826990799777002198669845565352416283647722703711175069087502888931377573627801423086148046774876496475116546535232778177640951214659612578171518758457722930632469953868464473926298570559862016230860062835805398490935809695797399330230377521436754624656718631967984923640649142669536447503754764434679561629702577696855393976206593983607870986896532466467047071478611806497100603174253789730614637950788300219249257229964779931674579592819856914039273029195908716623554097127027802263874611534652505504279574619811248945856046637137946346054387452827790906135144495348569551067921652610487400169518815553419224179807641508342519191155882133992091811832375952035377822931723810812426828235933791592725552114556234795346561185554157155335286593223054497784737838805167445393890779775026878029931194997526086460792661229136236933285219813556789510664792596984062715993718842180007127645966016837488992081276210569044088442996849049555933230549147629632161986141004890603341099098652763926738262467414101042265555513606327264506380361868984290876017988814273169752372208873948082776931521032100602114224719736984144699305626247529558275976075977477669131064438460039959706704324861013300268606435755656016683779599738748709690505637545857925332978588676703715933855584025497850526451733847798119254816988597345236884794482791449609125209594735754099224629511692440200920608984383666651819969380965634036972864017929468843327730256094516060739006275350528670176972161925479134526223205638526594995050764813648410701414256030180639667841443760070483092380733366156608286232802290699139726519257673157317362658711575859066806340364197055694675423673322327013586901721939608677327800150118910642492544302933562107456416030557653823682619756333159038427924438044302200876723646957249464463971240182479410540724077797151896632357046500117334298583320107519551890647115921034876586783815126765109866930994055062382796683862804691302934021220904553542621628743281149166059446614481980317892942171713421413707285942482433611770057445630822588200779530145174599207133246056455619345157537141078522791266396906348630571312149130697246237169519242414318678073182266050427108117585450614572691103436577417864967305407443348988012359222483154230329380308779426575964403786356383416756020556578227138030732029510587005622406581318007784254286605573111634211434030411331501962651054189374464868441908179700498489091859346770807038957518322363706351594286698658608685940869053786442112331861630922689950632467644725092184425090821665398154185784826487761996741895317436354578160867116947378136176626676285376934056087065427000232830780832595751008599626456048397138368065689762202670270005328760404673789289611448557555515120790949504001742260965441895884121376958996342022400003069531660543838167518905841604991324579358806761644408019405389334168569073964883070932216172582770843642172433990764092548852481637268987658481169867363576036804657470803312408070330447177389461301490102322106082956455689783288326334450947204360008921026318261789267018218738211297242091816251919591087933990517849372170302624656639345108557467417238376569126496918995716671513586505130857213215664491402104001569009246915335751534948573730310378773644121198650047878318912093739055265329513446286961977598531469668739779152802749149617773722756684246014643433459313479402276521728030049809094295689033799386985234302937324629792866491384138851944968042356311919466612224480597423462412595080676093262947303134211855892953738946316451594640683194323864587644557290632055874196758137825410834034485731882441012618135535562433367222780217704341465657403299668607673881892888084090627874475621839002039639071552998140820685098329403062620431132545874046088977556237854882051948411587931223791329940652233815355852150965264379478430474177188289672470875346291501226159677661418107787817574673833804108554940251142089745566444211193083784992485812134975990336550998693720079689009046480341667544204705307690561009300300619606157131139540621266612649029711543524668062356832028025119647403636377013448645982177899439783712194101208753134561625129731468633254750406120769130604227038953163246928475793061247910780630781247078718851714803513888001821656674485386606730562949914970457968584718472390655558023586810446572186083228785259755144517262500063067381873856175958117626763460408943235713112987468684154131369992417319258730411160916521221110103567625690482444104426912165910071852650275197763321313250026443956814308325437047720179743731479983757753081943988125630101743647164410677695474465323671619076413872088053654297248574552068391673296151833777910757410443759077041843657005521045505736327349124188560934102977066294731442722683180370658146779533943255603924224246537121852575246652292474781547105152945197582821634101053681399637467724152603991107506569496456350887790263131715542295298487488264516866373787203768799995720967945352406296677003385813321140193365952068606067068138559757810531621209353412797087766089914213838429422408262272850138368056744365361551204655653162248904769836377119329137961185002050433870806365727927092961838772238250958914798521361340045064899101702734583561902932298955763093217597252472347335033870192413001329765462612265747695916285363567476852545223262959654412953033912210741861087683583910362321091738496415729306002131195377734027723197259254976994777921851214568413075913929453431622739023157831641577722119833726543055820634361633367846149533033296618192011421881633872687292475223211527890011980584044810671523028704112490386178348765238716725231714616592974905199928064677412786796427915592567140777915729525363620743738241856963661316414478119160132383255107445089060957497719626026694931538708500632870295603114133976436751553160964143373902762210048190077217484157213585173549563252229154883312043701832916301694540071219750482268294906675680636711627737509579558605335870494411579636941916371852762579998337127142851601887210343402095547631925662080533634871410342517620916015093841790303861492083423071335968244615120236634034963762546545613418977432342912410091480810320294670017295018569175501733012737805147469244445863190003739520747651749343762835399307418966964753353572652461361829268826013231211466222390514421633849398622005383567569048022590255012645232196562045676760849010911274125352961823762172793850335850580274067645049791776249085711150361955692843618814141943810889163402242376906129672109870813846566618650277482169534604023410621376307452187464664098377032289612522313105707010223455401198034882828017974373129278225275511892060626202509205101010700780671274115205942664343781669148381224719283289516898271217097623107734199618462272491865959178020920953883027868854001203360383911113225610546409735114721265609675386420007332889786858627531217335728836953348219628266314821624420267460659161706134636996087969788489147244396626018373708573110977501418028507980625567819388168693274642135194590963183215729552823296281013303336613604867403897663016564030441001951824458191953562893293936038025202478829264460311956157287371029925330651774135873613963714974949882640188773750353351890826639039727761866719809934176880274914918281272345055146895899122202680294470012172099052944693689450198786182874839046514844184233826163639288380483929381058392796768199557925052485451757603832903120816833727212036598971476323288505457969615494123526335909303885880408885865255937517111396293196131251563198358949890263014780528559157131596864929862252986696963529044014835509001252443365304943600269448245390316013673721667737577424287406554133634616078694626793512790204791138428336293752630537371450505790597569680429400748312320496971057313947975556659942740200517492935885227191213335256137310186238064071389278189596675550589862437707451466184912532868558777324026927457910975751783288607097650162315641157581329770809462867404677031178458358897380597679504567466267777439979362360362917745060583378658872421486896001637278042914944541019506406820889807416612213717430897985495681744901469284225222917839380438929084640837202090899559913275811474002314573090462227794908620270647005341970141640015692101068039308999085464256415013516073642528953104547000264278543209871708235048748985058753008101882868139451763663076179232816115744397721512067362847491541239034476676967096016856569210677285658746752623137506452324463656186779792279339029918074232728096503132528956908877193530858844738878764276699676624173279481273084468944276228723814774511050432410543534619935560700210518784223144936313595476782333808495029883126759061109488566150602504841996659625223628308044737315438195146053621492713605027579127071355979787998469059732742950845366852784289549151734463788689470669239557341122241578099245993342458383459667227212470892484278690599981329557558742364768025958214987659860383774964153852162874391089048905853046141229589386007507951585223207534381505675836341806403626150402312752535947761472951656677195407824797441445156164416096726194522944818462549923688569973823405656055532806633727702418838369643282818932339625299361355666949123252157102355116545283659850949299490744333817766594241115442590486139008124276044299547053750492709926458129172563872396448394780262879747584726583807549768873028699315232795997286899196929069309919374778972613867651654621566485784855365736093205479546100451927214413765620214220636870079634264914478721974934124936082984605625029867644237207123414586776099971126459934062179974813071009386171239395687421620652929369823113855438458730451076004194901391692927607079489046228385644481669808391679908510309225283386868207563804987238596712587276143947197055158323252767937298652486016056086288273128258702139258143769047410344138883535133365145406039297589279856946376006004475587099673704756648115096648615178210796473242366709933392922619326813029011484647137014513049102280393616060745710471409507907076900818570887610223986851895048981419386054680245627881047888164311789839700616497224512441431298631109032346961855255846364364693328201693603632752306225431027198785372379201978918694149527400289898855693563282727231816885433148943782326563230374615828617470671270355855719511046245203658098937340154449588603683839000104316831387743425077216795498137042179948920115756798144542293401749977404196624874034896629953342031090087977938916547748714481530965498935274908609100024064976660682625930674894286004644435054159243635065770544700330778312806999193643724468936881401736592206184692891236073020331627901988416206137651363460369400617902678199394475781699266058844393214719010740510605328317570838499393857193787637514600934009477270091024637061500960646926757887272935545828274701176537017939838460294768428864999961858249211472108922229413344814810231624749342738074562611388262453694215120113254420902939173484444547226779636923147797354619810049075612909813103484421033272088199857299715754114801964061057023469481311032576661199756905638000929567996180293170184296122308047639153926692491055932121410233402167045052195179222437857128301009697444867288712533717122544334136876914831460049464140196071821900274533249433705321227672199032663324508829244279522828651760565569060552817217851029560756029423128802941900179312766566762192394225081109892742817487595427753030655258982456892706121690789294937874584188110266060007336610272567163935767386469409636715265143411661282807433051542174273928606070543123376814403486078098239358670943592141778039249161249467678675771734159327008465651526687697355687749998964026097993835041868847836043779193268000635820457013024758445615054395740101054193068803054015052554452608757514057884717927312900794117597968884569204441782373461822864860938741678742963963024443008433154814965957221070137065979771283576258984867988964782550553119745773197750383503261752149178051217548028907581053590758037632049207922969304792955374409122495197616449523764740724029057998674785079942085681069166663623586735108017046872313729726311666095772460733435119640843089506014415082658457860128342306761568876142101961372605616651044048760285488227524219941381542917342251485274120437267791649206161641758995140347410454513911153210594639113188086551666146983517804835000747007143996724378751182946868171676847064807781384879837346510577751349876204243703670641220553428421011502761211711489427910507459678440169211138111102183115433895520024713326728237234261536709223739209741374279243757873163293600559016566820653561812268652894230327427965282168007649889515575719526176248055149946480098491101747828241224863267447103540837540256285493354772036215723754388135408567880563845584988353540483830045114526306717553670829096825053677997103713099142782059082404666528928589426816938633747517923902916686204687080311538705441495363484628126638315188705619377067975124624907497864029832882469927289035068468524870889299796627860821032895917028305590592273645920960292329157740324745008752879296953218195546195989135645078098443882206674122728060854995181488456112470099710708452912780796269344338939507286242369804449731734469655614288247819767709702961065890448358895402015388216559685726725170968574558970349319119050924036259106529346917328615309602856135650040803009926624749783000846984342184709818450993905440601424669950816686771770565725857955621073233020864801300302419547449360420396496489973673496174030538289505891263785978986462523069695215326999538527651140404524836503588427971303788812957729491696759368445939054997938780512244992966069397466946828578400017604562231762291421940063902882683316673417664903168848396187328355668916758667857637222032564001949694823449250791504265396945370084902241347151844911171492586421918016260586345623353583971759933956940905920104294100938055794472898561657709848512377314039178938561823725849119703951591105059951697946050274102538747058474048476745793370843191074044891391537257833513304125328603880374690980981399194700318483852833950884514857221613438224427986192288127771677535170450812692656986734810680360965223077317870470912563527017362752302484735159827792573983037878751497592007355808611628964542348782057118520119534928113485678837916935103381201002345004463662456561737557218983685525385472370057079002478599562099528344533716617585570699091079849456150944568225620080409426920248848912513103028173671688103474931555707727480552813979585897654885368130381998684440081285008315198552328523370835067856674971999915948153146154199123116208598611850156941013768671330660779625579724922460139938538674842949957127297233783051817475795545866201376498729517992267233527346564712301009331016574335063181922352830280337777578522754149429502732838439799973412976912397334981271632147610915006359932096084506584399728455088714439822382519267884695581567168509439090600614246321781452985750165345039502445110420756217839091504946594130683899657622061970827726892695789263043266044512333664520502401965997688311910026081866107518190211266644061723837985575077355919138866165020743693149477173360820394988068470539490249636888266051938631144521336563053016791269213904512814336693477496692105739309157804998698872745296759150203716877401770989694404245904377113225850201184405274661037168633151329361974263193477122422857487772763163938535632033625164585494640083579824258568568560037424996937788221647213914646449470111688336550234809989880285502795643529218515360962857509858901618643250624884664023495968935632877191431174536908230288517449373866888804565765697620229858567134693485288063155027696560474063912170455959728989032709277653780375228963558972659409108837812562400999811257312527272329570614215007419212734237817488444848111911316659956489993961268411221252241528012487903453035155226387501033528455942238225419695571698082921966269669598222257593626734120512615761228566403869069467126826513458545555869028079745863037553713342149548660748929925132643339377979868438423744839661521326577460407178690184236052621185334336114204268232462745135786455101345288297642537047692378575767624546903159615381237581962172664841406381396980860414500058716093662509983251079016314640662123258981724458805674907371374813370251810873366603284455892332952669201422258770320900317203222688463949873873877822703740696308903382985511136626347979702851752352396493712236165685771673642406224124041320059369485500631768811066721109505875267812871329333732764228755551249061275316624767988780080470734422874098079073278674667044808410750181183013948340148614321129871350550895695217470819573360517660405079012533552626318587381235791245410797896071357817348944407433166765075172439057458371116730319595567418084100849407803978477048971434832433633408383460280793291924106177073550957294760704045915963184103304060937978847281129646954206035946365678205928521629030483278357438678811848664322362822665029692558436636378268458579335589058949347701493717312333608419284580344444616430829193013060841146743339915290780282937290103356668142275280092145429914818225267117382510234279980060501885289344599376456247250321353864231375657747876283523689540884276520569131416537356548848208357807359046943255557890567151073705305096750330403540472035051654672882832729204923667981596831692910808157930981316666012073538540802974265110217133500391484191104833815538975003587872235827284303484584910862241938711098631875202074145010640794039125796580913605955314262330765064195916934376451758586166925230998477945944244724291180143782518771394101686681455547916991804799442500740745924880073973507228697169437177919252181965865786645255599308121815184084108534164813245892115651001733628811469003124439842222249797858526974973240747122096824349989201187117260952871110317699181239934678501532827168941888459579038679941567005845420293616422826270357895363080324635310626886494887663013309539074056258660467923293078658069377379121991953947355583245361084639439748364548376563601445174210841372304870090118970614048467665574404565541996429596910896227262250915789013059748838647917680994320582669941095284114003584624036307431038343053108010544325051842328782060718611655433778833946439584123463682674300413948393679539014372614260618986333437284427828655557254212595462657903366101359468515271331903874446368941965118254769665855763607208493143732322794792092576910634859046165484354982963851153251325856012004545971524800766358638484364602979763171462887729907193030187572498285477232182799273393044840974721848737995242367205923836188024849977951745118071464076534050996240025645376045904313815893234264900580121508024616448955347625387077307392763818046332478139294388891048015670997452122808085722508661687615957301551545736944823598361873128929086708705194862731216737691477608350160755474602227933484579261077081003800681757951139049849852379516557191668665192136343001085173132999946568968727423868913252687941752560320609946848962932575192003616496837591388070932503116376861233837882656179328719749107557923474507293775598331677617338008342225771634704064987249847219456730742026404384696255266980317801074768860124937137526503304601937844935595619390891429767519774834437742266679250632634770247893120273303615057889184033878996401997999807800109086813169359470534659089241888406529738261047962247701024711370288522882925216656415759288068771569956626280923934472510549223443161103644272550721781095822027208463835603872663396341941647545350507420694110078624469902793687489173008245834607326839790699442964728296400077235926718312902425259202672259056712658469542076612333655633768665440694393479259787651507229836861326879250078128309398478714987412341304660154590309128031556075290477329388083663499013178783339394906799799344331386678509832418950071329751853743758618836234528132955692316877570416122015462872577680895686302784519497920628859499362410208749588558155129527629052314931707960235830406752537878211537270121068502730125614616556639522157616658505744053152268973107386614350028131388845995599266254926551976419120730082400826199957310034227345431055478536973719499148000515787065947379711012889633972910530658804848614744271856696860119579891746551962416229421669563652922287120001679819468778576195339047421760863276029076999133160513217325630408755766503489827468157920250513718824280009520653495512547984419171969416490269293695766168899404981154538563885566694931778605019512766912504178803915250318774090985232907815758769277456683847922361833839983148423716594418281500948472229565927876104539873626198400938807127625655049804103732074386374115990577646664244303615078305032840565135061200904440278650581372152412157848678252954943349395860916849144644460878985715826469216092394995959689284640979797867905242264929316486110955572993966645020528097970154882697538653103370008445709246142061664085044346911574054313127989221559081598359253115745434446626901425656238747225186515444310512274521419691335668037256703524558799354635121477408232026785737082606267512948937132079349380261075006012826998510189971928692187550416951989924832327780716582973024788211756935694769528846395864033645482099350828954822647752226624421971605464500467614213645897589076256544680265782228300258627912333738545934459219300216126922020907683370267942341548680960240951086481060007804932451914856292029207744465156191742277306010795871038857562517480916813936180952103795863104038815110181568049961500740689322732475395467369541002528359525189386879224071986070639339862753019275145220426158653950364864460169882053862355670781962265611052682167014464101904437626192715532612017164153522822834058470308029687720290868206743530696731946050968235371668763283541292618270509185252836351250577741221688966149292038371515824528676746796991045291936960510266951215924243532043571212370862076275365410470419969506504229575730842490744955399538975092537765043175392022023757187754133706785044817697693229941913556002499109923754330750682517368928611926455819880972230011329385961163607828409592536240526912385348293886791474510232831983171664179193526713721039384387346434644095518818165164901043002612557118643026641390964019920784679287940709020409668583991374518228565947698833854151280411662119734852164062392530504586776884395424377431157332822696256814625139523986454789788491954364521793552748667794776413932369885641872008198754393678550908654165246462175020915292159943736841982915036124327883804133935803284023823624890093051065126077486662241137563919825849249060241453935803876309330721766157318005986824394850846232649186479690326608702167300810359374276996714237871214493031977166598321973429943596804360228630453510367160698825117480582424788771257890106966044043607295119720456898940451964664329671508656239722841203745789685943709651467542222378048369357703466011616246176854189662863579770506274288766871021255980266182114244369606290077643009662131080289444244931545748338586232782756989106087743663540766216495062826358592086630049382382421128990170394380608482235632730004225672913950824317249957456255718941990925118783288808293329968785329767529725968514319798043693510558516720646499375932876540649951736786269228986103764800200400438354628884628856991666565051744496221150982184359145498687618171528054532290987799800979275979495760002930158957125468290812009105730248497623131503388867774756323116499839126545302531019334790239971248126748404472255869016225170397757768990039870182121147118233666933063243948797549534025459270586202025954460914558086206661094620584544683544402730753898020466705179560005096986932492069908157956455508703060055041269452714541582366428078530769116859437793419784297959741455444387301532858622071841117627682356566329817075666394097876811041119898441791180567891262409135108493837748546271313408764473246917214794319335588354421731528075841727931088374649218008163021605205574261805263149168245002945208045706566465296788486889402476675402839274668074558962779551626085679747318926284934378060700454506630020311784910464534867823548067332236957012618885344943953996844974550519908112670860954474432571539610948962555544545045949827398064510206118363229680981749791786371523661787684423940192264801378296722160596653815653825149531794511829529978848210384000985082892546790704579540321812831673933666693852318056968083971426131490513976801749678073841186030721599601210450506080324767241272671485774917401475545401336524996257502827589499136303177910765180958205536904909469911712561955148092966057455791640667326121603941512211237975789014208024533863745418540421450349691551202199684201187852310126117040105135320599024473074417199245262929025924829621279710437305714504989812062830043914990168728076145330852410876465494999869008334496594077497304292358811989105938852899623148250256055157670418030748364955950600067616557922505835184683684746700364880977261065814965175274389222297687309076700640891244944501931928764496968858698176424821168942512562708262555973843440693986165563357745459597433955649334365187421330580806439756573684954621644020424779628690870868371689285393469505082918943750081383762032961588122838420917718746428462580975726055177382805123051201104868788562747321087270325892697187133636276622419302715806723261850367292438452189501261697770163654938079962656859988160053837373871489271104639695729703395556667584450529795489665775733127068734327508540570584680099797129813252285260734639603486786972697491805907446305855680037694273812080277371903810021377100787620548290990193449253270000945204713493899097929232565658524502091344814833119546393220880593182836224059867807478820553366612931218227402931190928639855014954462288015154152440338877899578997265826248709268222084458560975393198150574478213242598103803312662444731672036443711837567919530952238057443688995673979963833189654564804489310735054945784860455804960988846973122640014965258172443217519609526058152168478789838399503464444689690194057898690599568710473516446530270376958019288093466237545964530716210100969956413030063081638093238423026246441709985004500384747008986939880308993771624370790175404536941523856459782546914216952162178931667884506283715648007565772971671238762881223804377240941102474032898156887749863781803009217498455885926572084555245978061214322566918437303637985600423646633621571912973486931899886176714072898171643946866385810331661454761364976946765026675425326711148235498931117958098484629247267452221026595828475910343418983168579215561331333544743879893848844760899546521398248210180669496374240981286454666864018577871571927101782071775764270668541421689621553659026808427063837677470542370992084232307011067577432977672834114067997841814852903472908974576094409867271079938606687206439930772899191492857680148544930782574220761591906267526146304254094066015303976674201278469671083606102334039102174026642230182753433986897449947060321037483753475205720405891829670126677086352536565145206279462865554637311818251667036906497528675179810775968060605084775043201803104682673403020798265780564051046660160048037483482409899846345192909805698980423627494693645599689908552770563652765477354758407526707452706903179003469219181077993491392369186777847841330072636232778131001951086447317791028230635600152123641997219938875878631118087442320203039666157972385997875855953442275283547589581496318444198234638913586449133007391182908591997335227364201659303900439504596411911203883210489288214125374310750629132810424125041883815259933896055947656236651959929794695341758076620478285321442397875830485274846901545653952087046832962553980487796370270783009212365844816765834916705997318999891001398630964855182748071267516025487791058648780706106852500026282306101935094927153879699434241414377488270189105250331382158952383683071208595051269255145116036132507940260170646676730009549404404363603619035053861836117842293269678052054961803616238326326727295977591318952146472985698164138811298683362580852174929920359698234917041262335337058589337064531385738354316766795425655932086307349225379851140272304519571527195253283251918599609309855027528970851201232485391861856226517504704956403413793172161099553374066828226548769532964099912407489495186004508019706782405773483516033051376787543492481733678265872776632755877674346411746350908728589658559476622353581375110936455041536630264398115198673712975986295116426298107239333516224517306075896429081529471682144928043045014197788640666105614221504418162246088634441617805426179158214264617965701856659497490192988435068660477992349654228788442948627558825123848406706626878863025263327393397174123690690713975703059577352413140700187484485911926518832438415237700049501566797881791881981183030512432828572900959867376764969872552952721577735561133410140101864428051295158454967226477640516723876366266515138270045088678377139065703099953484627754503495583376107089518357541264329956234003545591763213076408981226245304040231359390503200600464403324724539879735328813471362665479767198544578603245018677837863964685012790611344718363291521821732430209274702711814256636821648907269056781107510072577565195407769427016357314028894324211811362978084672071009709977371393150529532498332820106258616509017790000335432134995957945138901929125768408181403914775506943328569964336381673429830223339124382223823382136220899207112033715816073428665386553338997147804746216014587936346705735165682249871765244493755528266003032847964788079447101026494467445745415192101696341057295183556197772789229724419328756790442200187322334887698718362457431442209297230421772645931100359403746375840038055281465830465620221661136251381266712244207573756882347790057090422252210614334438920166790739452998705290901879081288042337200821175320575195335783899731729805217562042630814368340728365453303170031629653854629062503739429748693702900266254610780946952577501084251595559014368029764645424637041234559175584559849412503732600526596832726894211354527673632555871935427638588115114728955486599387047097615909769856416466001952096831629828354822885055613667414263391435024537199877434279817339671411003906524661326441616259007509613779374799757292931412296971185507788717729499325146673313573962099133009034785646688745935081900640894548932149049182033803292790303161268137819146273062489782943782125551590894937223582098212684757410576028866069009431618474281901262644558150946743507685522816039313660115413372009317983500132627510638274495567867959707424895601149568701921644484467969678550438668918057647483936276722973978213374891601914214000122320236748811287962480920865509700983991751517406823388127266644433787727732192598694377219368008515371200601337055284494552012336291671207626432267223898250218069241108358428535151481073927496995662554727685807172037682792653197723543647826277804390374671527627421727785859862895063644673417256487208440516533465527993993206444041260715071951280312317513360110843198613868038438883303117391911613249462420138038515674665031473173925434825881164362812194428313885091176571084376139807008871474158505350651218413412293132622922982569480542769558747229610010097412312289632423377789351486569282569674651699919525932271629148364260886549765600852210470270259024111798501827455205132400126620779938708848996151624760743272979898066649652524361663357661605490356524045177075344321428891097485539011849458285030624711082131698805166337823960350591566186235527336294934459599114371811358902225661692393895931909886661283819399676910255708406858172098980366264542596547434068206698672175457685495610691251189386481590986994361355128675924127726074249508205040352214083993978009422353641783942583027792759082673970679509343039058314669992116197172453433072620081686053632988807652053536446484475933090100419984775473795394903122609317026302491960447499043031262291152020582294476129422792984220945453179084778668474327299196474157008616912239688653477339181369684291542626172105801909683356262558277408215692816483526111620673670266493679585116284813025772824874584224018349610644318284223524709980958113792859856081024833905736289634510293342846383501056569405649599076959573045033102110671300460161143648281101674325000035560648644804241568816105226664000380546539148398692241066477734250682161876649067986633023672619075862286358260915114330792412151444959346435201260423574913288349750448893465754007792539910684806804460215859722577410246971726267565682824350217300399807727207995269101284759741691176996666988887823845190278244740943597092877122092619626326917613512350069157388961146042400451564216573876154977162814448389060102658942941656351196618344375084692966684066281294142240251631291568146070096138334473361064109310004862041335511525742340132886182558803409408082908328623220857073674154020594537160744249508873218791653241646818960412022931887526226741076559005239864960631569841114034392243644820117556797787389852604103115743620291439493164612688442304209938374635765088110630627658131354083632920881806548169528488117753351827085674472547476963310566580277709558651687771168906474371402067395792117815765010567779829774393460409089924076799720685627894024434142974888140139801829196152214900782873103402547503042543901767471814431025582150425406818554569721153553811478409338545726871451969732065594060791632771248780062775704102817739419321206618665101609940038798524830322256197751726401854852444243909446054790418265106283962920129435440586109344855341504820301368833276510855192695550462191785181554595293708376877207615667927009981125688598687846898929868322747618484508701419398168967778220762821266665110053718856941602850896730790264828896967746658233717452024199351870936412647375617273592214145306631242310557482521175894116152037952167970593978002274154497499026021469090454039524633921488219593898942042226763529105235452896886339915219163844509047583030830705524043029227764678683922163281202197002285572111440673197957266053269276348132161287791213096162213009464810778703782433579710405076565688639678605883950673358005605821935758381374192917369180816754830942603755569964203999472708706158609714365205259870262524240967723443861194078410137939386569246452281563651725131042489055172510928189747725309065765896587531958138188680322474054341952033879361013140491492303031450007511006909824634569049112426294795107857431174786909294657443342550356325003953102567534933190436037921377231951456555575917028403337480333004948783474716368513628574206359843438931005997151435778237052062633197784289444462989587543053777617373031880370556529738350193536065402202450253888056940586204877885663507221803895312060664025293465660388907967473023108285626811116999100459179732512709181995231184237758641376994617325516217838926770602217643177898976490880493018201369438455885238690310010654639791459741439458730668505316649714581274586168123928775006418726371336000886407117276441664007303802862241444020588062170946277849230120539382792443533221438622088800178499798787923401901522848684842099655046117800773555181887775536540556713386109734835571863469013688844916043906844639663608932537654638369167416623450048337372672220932589385663308631543282344197513416673447612895176321478178105779571972783894913211121462528037880792820244923955113136866927878331838373392829496505033576185661572357239698520697724423493528787912996999917313465626811976960342757790564632400386437878070335416242236422107172646511363533043157993724849276089605915212179955409577635075958830894981231958423756692122814669045204909206026790219370391206579428091739193301372490895639465860881014509643478191784012564388180250732915303594699658588100186368289010782960723338559055232547558079910597499229943835342610381127362073533334459667908928750930534843282590055388321181266943592015052302000227276378252158690530399864752050469272081992649682281326867207302912397141627763052180971347914705949926613230625999449462278484313758098554201158165306146546891300812064767482464214553954547963347708586299499908980855455413887584380727832161315858371248642448639976033563868680013637053297584324953401173691961318294365760364458070485098848988079956043805418826000007937016771567428301716678805804017221016852878398207852055413430990715975181336620653965153148556693425073706333405066715219342161261066989960569423622094025493835714448158232565987167234229924993456631585048026680661412424612268801151076914271829326041290631892294740007027744061008645259297522502452768909541268415013989639525531651599079261437736051590203455436067995772532989024037761462416174274445406070622882883506615379765388021840984159746267625022060522336468139539548955733920672962733427399364928192821652255376203601843891994856607509657803724403587234702082463528524186131386967367222241795379893977540306206315758820592002291252035437188253321362089768238285397992775709196627297947506895744326448305849369551275186184540174018796459650591209917302286064192666366249577803698596975626186043613573501168963111233688122613221408547103171916653744509669394876202181631726101661813522185399315859076802357009072785245417761842554196182565380769123298717650425775779289900325451469487438700113758698708512953723800837107007347059789670127903657108208314530465237863663406125648633278768898059658662603774089825023686435107727079464190014364897261715382932982331123455275417297758092263714028213895940588842303851677298873838524901358731818467576328415266329371406955011994333816459040391678571738012619151374825658911933159360537336052868879490158777562542438620251427844471529961155974078679517681907270894857100375369773792493289729660139157305413107358823450500133909179772425613690866518440540712745854420771482527172205031065039857879038893332535434358604109358878944340593410520387772103767574375512945996841543913536132874054717920434927788500205916055919810140993247899808299837878173215682482417167780140454356715140550279468615780702660706745626034224090629105145967658698293602684248798472433603127201470092587385795896962557774375099068260939546898593386292586474681042801261075597319527558932585632159085516896708230482942462233186509333424577931957926577044505213502312541810906518437784049385948574856039247749847425582221783570813982123787066755956950604828491351525490001550885078685264628084808706314981225760379526036491575834436066154675600118730340773314159396918074742507209201098963625945906342292915722053964672305089932848995417901304532622833644291776946002504219540233073405385378624542676613420661528356650090596182898358374994284562095543342396450850389979880822533443010661477203842843523711937546792256109272654216721097898841486902137317829421367651811747106624640052107792933936915852004936433945622742289628941739029745683085892000742380802188498934195341953858407187500827267871017360984651774666893427296821459797288396691718334726104712288505376723320754708979563924188334148981964979922177609028095538223063245114955101393114962346663288812061084708367205600226148561601388684688739022003787183482256015107830274076339550549450601003938049435328968358510890719820465032922765480880998713165453540679476290411506642282168016518702316897259954630941820681603230111693285059992522085282330707032164261286211008151657650094861385602549278304730673603838455754261640530121004696223868373612034062242585121426690560325809934485466553650914398632454869668270792316397283561713946548485207349912413734833991918084383920556022975869320494732507064442817446166492089195221410849687309262120666340634451522427702741496149774452584857823116441761393175080106575033553446385398632215898337271916529891692216653950833126907640556630046847186197225975329017555171699879641915118140582435570881159895009827147524228328698695636260765678555030711510154762542498416384210717572563610553221127511632599303140023987207751778767127990973848272012558639890563070104345778680550951758704912842274257890879994464501733963359284225160886328352699765573181275433858267050528956689755057066593453949743196198990981439789579362309465354282104611827005954999159579746936650601781123786604690558423878475555012648393378879921764785315266969383494886758204602269848802916241649637795584384256628887791544754588580244404593885664844494981169062272272072823225042738323358912427487067981331916182759469882051696464881690496784349236568133933775868451359088916309431020878248324534839610815014264101627666841108453396585412309693800769324068870082124233033571666448552661800666355686995559859332743147088455675801011657738010257072897991580611812108132188590525297889870515025402756937974974363771838305490966611906443540883618606980673293517616408458097328709658986875535256966173869560373574931153462100805260917575641168010245965978759164818168499126124932367190866563113455828134888912893497902386666683962533852687658066933364531322052072774859326442743688629146422330632552407744133892476126152214086400888963881612463802357958752766663044734022753794478447951999196259379871754770099246107989152597222720758867349638948767201507077337885337407790004384769843009821320163927744843986008712211554205511002546660649671649380210749517248533725159881379404004523366529737620471639784990494247959604259789264192321125229313569351136784386429536211746006277046543709323098266593562036282199232996191049636509539216253801329089570534724414174875770537102796000132263091994307723932976033163124602597272831530766964895248750653266192853476184812680591204878172530528626243902945997153388884633263503923093177234868929358642151937382570147985104584653609094917022466096145739087172604770940237990653068335068304537214843419942755347614431418081389253593961565814019288503806319713618102143221142271432913778462806168674053907183941811098924845074330839210147633916909745684834735216122915481442532484763175077859064676874495705517182039070894954705756908905430062826229462020718453612370946703734017550453025149898401324159840759429363893255872317600652740484103953282300890975630151467567295140933906817166349209278078045459091493159121773481557064970812113794653859947532277258410677540031895499839509778190118524942630836830923240786810466979806334302654583846817783552657303711260829866856573096107962475363029138617479495788856209025679658031943936829900745976508940387966680107223055092822772398754131303969742816252166189755743004331156739707011319250198031394925295669140968620463439483784419435218234503274629396105187637218154827385142047482510467097494894061490657505720096736267592969177117557262095107726297160804861814705167513202284247860271237451616685275496700793809954665120932837199278044105123775094956039989217226350091629690543434659466066916647104816789921475844950377086879229798592911969115952070096791521009539502641824130646557058438063169789454100673156297740504247392364024643641073327326561265951220318360168887380608136024492778854390506633200427075380893049492422058392437685481124115559484372951321551049208418423445748141494840365375059034799874228557415569886929374421932280107835561205284157009528331827920132344338944071454889427668229477733834687733528821705276926778446415287324681717923318807217367908805811794236375569720897782474899663282985550644941775124882911128801399030850757398273491069546549944048239042859544361934848867250821671310717834435726242531360673385294289630477794112497141005253043981837802703596545937976476054893441342366267203966437221819356785981126892360643091814123686155398506604342311347828775254889342853256202391667148869326550292366749999905146350638161980819962855556198060861551660059051844279308205742512213744955885086894845371131099804343022480767612293880029063843477860303489348979574360566648428765440169445084743976207052221722649191229173307623595967261109668545920545295391838995657775883450061353824373693808390952306774966360107341050138678339012407857435003087650344980990955925620046524686026250045778572775458963116797264936167629716691167694898274945323647048559856053969947078731144070216384541812138885171896362536233333432015366023815962157732603176236318184171114577606485637950501540277476870055302345300538247675476671463905462284084365431889215151612352605405049573548744641912713316454696327105141232819865634019640104837949780573078761664757805366434927986349401747187777665002397465218996528163756111619863049607591725428453770451075533974945606874402171064419840713988010540104768855477620209802944907249144251448238349609365017212992210101112820453735581132642292910692561245100660774685326681797022862190867261586405042086925540443674713781770346931390896732219955446218429559469632333822623877573694572690109388309171502398032535765968278511360038999035800420382495426958688346210789598439778322311395375763835858095300493282203559511549071459538993463380208645624100201696249110884600402833737290168942902561789982153559863286878842453743502986661218525391028227467684944279297421292989849985640961832474098150893376941844375436270904563217704590378784733064853483539430477381737856146068235286439050504700900270596018913487563309242033104779812958750642338014447591990005091994078133492039881232933929266120929591568199585552622949681336912140717636049972239797434237327078869533330585927046573651605446017992228646522526934017600185083017664948745256610532013148693467928630518135312856342613462938956489994304651102240574746243440260261574240660547710412665575911490618737648158230363580198641163393005160767139326885968695458642115647813603468696749607428413291070250696046534077084904094435272898721604220197270258880124165688599539618554235953553683064663849436312742674251861578822246901670138990299737035111584457994222038436041596791161329148996576950281379339375199082022666129020290348667132779813502870700085004732894155178138675799568094593191559391310676875563572443369398129576809771522321358470468988436782440997555477417129127025168031696720022267246895362519880298840422535491450829111720020980756079834584356624166356017386645907466489095346408209980047239439866755388069602813515392517030092264072692361089433258553755172150148381981517303515908874714824211082567417599833355362036272430571171127396889634038491548849392921106594483179160008193424299081844132235691255809565459583705438809830835441364028258971062111643616050559258818939708569544068692740891836397921695232159189542782655152493290192542165589878695784815251935535466995410442119073074559866182870653325350220175442276216393036832215866376679714326936819371638081155523069824662909571406214474008126731337378392102074575216841365776113918564119560950907599969372356773697918799702673663843173479388865112902673526768603661846910419677071911862782155229464309225087814510623152444558847677041019260976833063398855497236176747492012549882754975569237001685796064984867015030876597381336645008407368934283729450207155761585944256504129729682003241204555814467315432960999840407715643509976611287725846446931025747542525465341767645579552866457254032696679757251717962141262246899598347521342113005288355606199720932095242283491046816989830288522454727707991564529079760915981112774896068663406974045590380749563913557132716694019449962397984746604238786861724889278326528294283154381113789000668047157979925512970380832220551965842679058955053091006629292682780160688446193361904058814923205940443222671124163090951583032002958961861981414692927034896331217130924226238372202511467667901061224737868723447440885349336096766430112245055976144380056658780019968350987483222444097112347508412414489222358406233003861444419568474237949788167296921466906814948389869431330484753371720496712744836663963269836998471657128681249272284015376621971328062945960879329380246214421120235084994531719425838505202852589990644848329193984804929714903809239546203904549597047096272342281109167495786006323934841667514655235033777697718200786523741457914937482165924153681056837782416724972036458257824448287076898135017384774044031351687704675331435344409772337821041506188766343651279487352015375472463071219187198698109422825458278954612486356750931849494544484499795480039938332607986648801200472539001792460000583666981908495682999692825423688548667445230506265114424635714759875481653206673521859023483981744092166056506808362757639094950812782432648074293054671757548976412125854399020223926222554452854741694415496041626626491355035984836134121510387205785674413697172544736948139364054829727748401937841885934768606631911993920945143217095630502029241998147407824415241061933922851288663999463318198552454340096391413331304004209338160587858933928715801377192592661174861795867599657129608784454518418398545718644256869790387305101355902310531956791497486417661932305131071433278109778872420621979723662398011323384387420000108744023606525601912208108193504192278856459788804859217607028013127981479628871582071069120748001073070585964818184517999121507477709533054412354572841052847058585439672200899809969862973474280572033131475845286588363392161530523542550839104720548846404491696846937912612698191843385865559359141579809047317749228472384777000950415183551936463479881694611161655296257298928425277360267702867491481715859703236845084677376610373136840165587839595418485309656073596531769231197293903233236735734322006123403264615058508867877615539171458481414297685636138339606815123494767699016785201651838851138900066421319328090353211987014099518099610759266443958619656634305726191239891339728431840043683807812214199538336263804237467231301085397917650411345266187322598426564015772768147610367646291764194865290416767378041364640937045071853756389874838614250502724735281957643586346257783763158991552325037598810553704503837957273676063577761309957862544499249768023884317145838270788350633757354748947543387850453126157838070312738438409184716945988584213036240027402401739737670162468589118586449496161499278906825173204753079729464487798550178198689749795431490601960891301162884904755539411640406308723406144563852533996006888080301494102280075287056702729903542147203931089245992347480352784357372298241287726670680316609136093675327568350722650011041684565264915614148061459727252549180230167693788364565908783083627786272207335513041188597710850543215255478622615903491803058667304544939663992763188759729614448944411988753038879167133970428233712312973832161906208541240566608641076200194357338971434026350253056404811754580211492218490675836498110308783511456535953241746456055572878516232663026311313894830305500836636463206171966091830183942114559563365399809055709639095246939622549945590295758159916966054043075117333006291808468107392927476497716846350877359438448259378424545754701378556755682619092878903295657922364441670899966302494831405910486921767387132661685499414159640228855366068242293524537624739869006772201078002913893286295215263433184516027069934373595497172200796840681731511049704330112178517449741103182287540785779042104819693440296107347087143168183201210117808503257411958168447170473210658884496156880895348346180802050846236723935754862696131870441283953386992075806410600604239331786777152149994291542161966140120383568811765847881111959284644442927122525472950051652534716968847684408887766838105647401615240910735472484504039653475984311549978656395709420431802710217351628095628097122606574333017360724240640813062785845983194450039343029220956361440442962780840065018446110822933285382319088098275277425389123680154331750657534544534991602051958458791730547463030979545189680813189337472399592447102614560200663320601164260784007901502349563645355847466320230897199421106295964367107255865194690550695846834683782639832279922474775580677258680428452795401313776571727287271555660063116817256140598040787829550117609053611648268925181727709998516380580063896613589703759611498571792873886294858265957960084231749738996050709159520396606124900859995878643573521899146421422269932921871382568364374475238813059421766647591205206790032816314177837221831251378753672928885745281151538873803889041195710593650710299481342879039245742035727991690752275813603175245161255878777018908163301663376207241464707876120997876847653702546308602834219668865411957043736315153628378576296590820263754534932750436265384505346674119631729961244204550536531264519429814616315168275784198313808506772106067808959522472392751762701344033487134727454059642028100815940670481709975955506515972229049520399725634319647607575558986115767906068875738731209657071184555691611289863609786872087831809299924748873649271520791308432350231202696752000865877203975594018479223222725026550862738882308675574394739387577751799352797370938105612063230629874545629531022869122302770796483966186503277511261494722915402440147136110465866370423098373517893232932370791348803921806802356365489086218923256824440185161706318862894693542288869440480931062576786981012502924785408848380439132568513117814653580343150383392008837939309236745150733860108865062178348993372819854221416444297056215523816816289694241999689275688636005731083425637948055919042970150476776495324020614014767772209694975617528971639779519359333178310732137310719628595519631140457576303425002102064702080447636109162649560030634789350423781347813607083131389759999866259592927502034760731297524110196744370964140845330641222710558958208688963921762166916958465875209393989340668791126142988306489550402291079454253767961987325610347780316927516754256392025658496320205807983270387536056262921478355403992214468673516280876849371025970801517132565659364386340027573283728780130365930512786696590578842373996906119201614241558522928107583131004197044179362183416801308884018857164426430290949950592349235350893430390946444853955792310488345355724802011255531685576266551895207102079894310736911824071352651912628007556813133672835360506866163287413836271830143566137776513188231807437088564257081084334005878735069883610484820045952215347175827016861294494285900998018594590058706634333950466337980335963825658939020082619058886131165272331441763800990557739680768871593260656463470649800232294519269684662416482600866040687142801070854045928398723893964635121967846105688115607016546813610687025221223072675270819639320202083052355995823261960706515992074431568601469677414835242828289492691221093869635368638954996362597579207229220848436908589339140880055359369553525323523907344908633307274991735996946367240001203412146545112861645590766988386282811895368775755784612744683744075367319082843191779740107528853444495245037945470083320279409169771679619483754807198536398408372053328490631121805480942000923804449602741452362881639114075696448660034733350897322407962986836833625612994261741347630546139308580597116221776129588073557664779339911631849560032595369138485338879566174438459942766631115119991625638175698300468931806735687154222625187626873721684149256786643300398832769771186301348381530695034312104323241665137406792815840930648453594546473659248555267788729775774164085801170676708144943188461997727276765270468465448090541084921502334716890070568564314407877892085720874429656642883785496764641155423577746255259417587321340288955315245881222362777344435761350872638022355749716008741991774161513910229916150320349641847733090982141280803970236759959142080335554282067140651959623927214013041706991795724194273245157456076285276200025553370078277639107093830349266390686837296244634145051425847510912872066623602277748778019273669587014285671498201919743378842477198631411056834116264743349092577326639852644701420581955285487970482873474530391521246758844826814927003236148904610909823028893662823890604695306754689513822960140475658349822913448512064838969228585002574279935015596241358627010142332589422823088717393435423137858310777189243477174967622217089694401162831979611630711228060571403176506420650751912961226007441197109223240196582642555374312248980748724782439919044279668400115612384457305523285807657020501882072678269921119309919205896723287706846678055878070056309882117431782397809740944763589683652878846301131666940952922102691161728747593311326836680511691021809782900968679104958793535904981259713062151440210852551090911850838746363259650632107253786209342651684888794597117679835063101488787767472964057563242336048838459575799800471886815573576415307308836691595210546617128024978255513671852801228198697146023517609036171332455991339426800150559013180331272645575778324787528136096965929890304413845086253801465746009986404691172582338700052594543489111406131179084619054652070557241370032243617377636522465254473848657695821525016796963357485273509527954771211418349222615524566808699711485055806588910167959998179073727041845628857762998469497126926103102107537023250520377608031278286819312348019681215522917532942854620362001939191307166477141638824868213900714859632617162851110915395326074860479200809394342104758060462085626972301225990776888388124010104808729050651844159737568292663207496966480115942760992960982714362068774943651597355197355697179510104594334140002191047505052462750025946657131437870989158248354786487117296505744076335542014767518264867512581730799548555141648196707870764510817592797425984002180316902045887943188441573848952717408666377009698492526331405496062103873916286526210149406114414873856655477446586280285005873615851537558708058942293028248700740038652235405503504268187077013185720168774947732979314702833853924196134115739292794712849603315900853491318673121631542860231405574508252541237985588712435709610852846953338370638145453089267100870048836413489498990240577494491221266498894506761084441822240547234593013936190369517475651397271708336990753141233236989472017302144601417662792723123711299202813698236989951806898768438573177086413836044450157778061024761482097624871554093587105194300793320722497719876568532889696968653719494051870612258673422316170595288160889855371792984410225606220282187588067303732469365014333853440455116636995625932818365832224380687602708637824426207427683926307966901316146074716730467691704968248123981959673339072909607100890997123925936867069435974581651464947243677858072408418673309038238513936334493170033392996346391751508994679919455899244343059906494856757351696462620418292097686719620664278263531017084726319867116330400912709940370393214650795316981286947347582356508272374860256154670126295493822908767854327728431438999533600788106229076345240075140315188130112701202961581650661387959812517797776353480668773385251985658971296223170368035602451862328684439819460658750455177257177926723876172813121552957283629275908442968870499871585202489303626553511706692043544265256453342369734074808800935349724007472951434792889522258603722022470700462893240227571349438322738599604274019649635709714622157797570631855123733989572749228896710124657976179359767485133948566446907953328920486878772315431453218417342232094752984555034981769248173662287584284886539908556481919031623570502977611944634836431696394103791377953660233820312678116905310720966522448919689583558380100218480878855678580873310779115058158810495309206879173895734105315335773005999576652894970318144867140965760240188626901830521609833456510854690770829119280219637956012764982289616209356965794559926538349260549151317067666565816153897812220206710788409188288049551367064316202478126777135364395260229702186896063872750790543378918813942942549529568360853767745820354718309486829302207949644792187199506291131187446504999787060364119031743166760091283372745834997228783381395593568732422184457356813874039854076837718736866054355358192089357676627137803655936115188152999190982941970669168370614086546818409710663277914843226592826254033336866060557021206525128269880732618081274160096720748377621421404227675567112026415237974496247815039603453953906958555867390459411877937367885289979199595835777040749892298951260704958652847804422813937441538645168934100811688050747899404615245330419725233802549965346148681864746508590563884900851784954963274330297289810100596644514190467650661968860967633426662215599604465874231985821877312862387399180140038332923620135860385602030371521921501564246732997761157633218384289599853090380368527932552686408019379276820162538716789657746274215334287240189393714758566079983144681468367612964530297000124414838547702386520966184992082573661369533819773830549947953874616929667532466634583903650049978629704593774063780402596326999693914060401479023773180100313306209242070301720933687477310133036225675663913655882853308753826176662945060213616708932929191580401789941883283546090354957793158340410909408092807803224058913311060631661661392958030013493472352825328140500430487763362100746857209268481864216335445603215440022463835830977464850678339052326941169399046571700578673703962825828995605892690856042745025335610975792271324253277010644020363949149696577219093272882995997422584713339077161865104919237096230501949162560066677623516390679248980329673002757372488525955605488327996073200195476431750169192760073908003187912529651791113734053551994238777228717054030790746629344308827120507101343966684870173392080119748067819535818479514630655348722350246802863209000839114856471483159988743126253908640293057969782720611982938091199452837856325216793096290005434694853772086831812909409543238728922149751151605058831565586446428876200705847934259968313734293013403450463477938681246860775917437661111167852667974459985077888378249077160204640561902976376205057364975483316441322133478084041008313190438743328738143417919870539926911957602310766714614116362049710093140017925846660746063995087398721920784542298375418441033239343534456225215682287917461457520221334848688751224684707716252845829194707652504907197230974863694365950298449603204653480064676055379624911642932305620180146121263028638838389496870022780326758121629087077006033789406037927361312253902551312014916824563194278976390816606721573663024584196242493069149837072486298309135559284963466896207782632412333024675806405688114143280143596045372563291370731657939947990849111018888944348164067220844700572920512439957255488931551691389862764140833259654576665449138916179335619579918545143546966701766350553381488079351729468979616522342266715655292781166894924662747581176305801506419906252561743098743381760176683996247492661166880822180548003755106500262323085061620142364114308833359532964707730005426596040556698349450233464629997661378038575454757176698329446939655846819705974045568535309113129699680041484874197774409672041103160331276163835739470239785514094305361901936507153616040195964870812461883542524174422425487227150972805643864050123377886028156774255134547279588468073968940582687003467732238565802747623256301491445426118461611998025524874951282229119344712093608751069204339200858762386489803460595751971184412725006202763211481575591303420550064178938816998762412079370381731199968989322009965454227715307833264402464202419746970823824721266469402628789460741881283967811240506397559791392285549115822537088990497299972593730313298657059186757094821300403145647588587989959683544370886474857386820455031374016833739113666596644333534415279401161781321275264213822291098005753538567110971979564012408362039442047814748023399257857600135357170860614880798399123619425260571672946900017764552847134562034000377028990603610409818594109789770624229330403239686169456986526490782551029556366286735012243869021674544738895012698166751413308748337939964557647760556243085518182162655194029116471172601502024342930235535685984323310022949918537932458092444990782950575431062976544920128999345125207846909944927638307402338658940704999647433337745993034994829463732267043661155489548623535880472895641659270892672082111584095258730632888548635550701589113657701218219882582719129149476935588454589268120229680559887807842931291186221208118424957758009334001465427082168700469839240206034544971731424839229941775251354234771356134195935844648696208449372543966499671252473732176086497602312568736768002842661650484780988522127878469612696540227006351390766092107150005871550497122273569163335949411580198152090796552653702550484804303787232913904012415543398751081244823903285171578563497370916855365588811985946847966907953924420982969869875179045979134868371302519627616755674708991899795362654529374794317585152420661744851080694610670736483669019988794751315714704993295708127782415385679847335087715824376726768159058337785034808755344873099721310324844504485984369397547952929334634602722061593064149783439206986106782785814925996302031100344565618659891784667001285942192793626854975001260516836791753831977582174487251411492682584710640041183901390197930105868864630212052776870610173567404479928114526726234211066556103856683535014107616486465521109731326884704076527308623112130362191350294877180664960095043749116950390652965133523154706721116923939784864616471216349534049682630189131790265979801415362916815570318584264604548882233476271362339041216326055299474206309035979416832515129028634176165066246545559663745136854820640864932191143733649454417012239142336000946430514297042074185253704510801280630824244612110805255663549161601011327782233110611188183321779539025429480523943903900857277346878954838378720603686003445350947395114550218301896687151474328500305746447511616591745205437704955376002088638675323936161994734689021195801847241638037288871492636464377365421518786122917469497022991359371920921972430836545478594711605219722382842300297066660964598715020311287178322900990992418626072402965669473299531121743745816517134526380624847784182115331907078275723911138645348944926295360706880793450204970385085157142219372599250175581246998357322051821469303308149107734482562835288402572740807643977457995507071588079649792120483601580793433845682284938587221517417357818653946228923592885937731951125551835900378197897842855650783770606167758581095796499347800355093547678311012412812729039310225287404685837478919999698674121291352416914313197095064000872799390348609414514585636892654476827873899042903433886134656011114096816873213642383810607508472219359395492635373226963547783935276459851254843218957483305746997278894579829579561788443287743200128414241145615544745018986911730451138327225770995565160929961524726435304325426603726569257938564890633383108923047504135285807834938742206273807342326105871145900673409814489735146813019981952683788135250897795722652115949402672150085861805774264287205670774013815906801393102066834543220785526942331869979168885904702610248517204271664426737930169793187035550187007143511456755540451978847553647746046290919408529606894626822338186053916839116919213839181383631940621224122053989641536261304903790893436236567639861767214158442545504683077180188813987582453854518300509381032449455805415442574297265586204272467365169064677757409637726730018176872523873102100864588452839193119245367594008724179523869713584788216245677745301864860901893015199835943586372760177119207042110503656971716960965997525167283165992246010813594994826300368578754175534274662938875562878444978634563378348301048822300538047841764066173065788581130167710637325516684071585853161269992896998855847476117029917536144655636496511557813876907680933186895232985271854776435111829188003133892804048175774323273991714657369323928404797231572738670315432892294044363979367253047513498688732523142661588757514109315328758454062278469316833975094551678063282896860480667200587313341802895903528910127044008393662211121683330629060631252962268694957466088120913564019522153467178257110454429827313407858192350156334996795807645606372602362185324183193508275668896734373018678752182376885557952124289651692925111894197935876089455946626644407686277844452194300352968826037863723621579261343816730147867357559943773277231156974322521668885030167024788366454132952631048845973412443997476670182605667653520136153530913533802474513212174899046699822317432336861823463857948513856638080774109181507648387277005224889840940660805617610416946111037582766156800653603519569887559269599861057352440394384194487759253609415122032210580859070106978001970564465327489986407157820573553666173059138996902240685339056955748501143958139665639529195108714086436987908334946138931580157329725993645159760132234637508669300636929319451680131161686640845023543103178334531264705331224923888939084314974642287827210095693901622447287981984992552981149276673730188635384740059062967726912256099819683031100528277928659448159860890741155289469026867400247168347947462237163652452454057706956759779527505879609521433309473965491457101743617505065361592712710351982519027125503186663779254162011240383666350767362923080843424366568118893411890127296949818949229057697016209149028823533297519568197626424235461227251367018996996433817222356608750265851412557988479060601005486220737926275578698840844454000766481800679672960663396876815496450454304905341480981494351573583257394991515862501757263937525465198736057556987395140883093509346975917456583793225159384304690984060516752382210615730449039022947178027670716685148896646123523991054326990207859155430061373750191002379945602082408909648205093976466944977440714700143511964278859915161554743584501372679900207009348816935078324548714124685525325395240940721207435692878777385739288308971820301818898920988739655318749485329454082383768366111709526400535167170558568205927267809705472581608124029969184777837788369289177063625251644036827315977736202854345141896067677086138596115322084527567700561380914449961207719943661417319475619440821935704903151415195553962880693246297394139700971139114668703727683603797512331150797897046886762264726653271626626224485929364165420675570458055541328573097819991840006022044549234310812625692984691609377809430691069119372025216755796646845709705535195782251961488071910246569294364714775196629354772824144064761315874719952510895490822812711866067292115284125769664245998016063397347562421567794983077074829047233038939974994887393859075617428502791928641212509909193799745386307751764824108338687208973031923893782371389495097885796586805188047096281552698107360339158502761865855340775492000434964808754154459002855017142621542567976256778381944073337308453320282216726991794987589756930302313849968477651036154451328119451241341639921251287574750363905996562088468600043029866417905476308113091786738976133299957076717551311274913499838301029864420582112443284449142320768764104121195133026145005579520089508946093558613438521098356983559503311159170477412682465081043255576701111637528511848033239570563043359095152375143237572030270350270149668874500834093863081495903978503049326855595217764454777363220282863558038720852209769458792501136107069991394336737145234708499537160891748737475772872241324566594573608261120062024095151112330233051762765891378298905193106785893009563167480163462766598823027182322267049281624054010471061385341589247220780967304845177250910789799850544465512212797956999246782003034284725497643006782779388693252923108907604835401235209648683112714538572237259254808208311026169718108126837670474738458165175820437471591711959473922634000750720734266403487705229731075744055838019774961508779534661779722087373001134438048697755042128783848703638684893905794297263889957429819656477928345411154189755801590088906718368785317037318234864851932782068235620898912855178654621755634923499359694592897653841206953993147345374270164800740759606255586838419875205647711508815834503956548735839243726213171395589584683853935316038354486052079406110866737809515221233792656852877099386974702940911103570183957978684894584259678083824289723825610727186008309409738146301831860552692197181323612087688960617682038289384756739488395532450096701603631353986629465411203108787442713494979763461145441210123029369179359836813003491274370560252751594795471986300851685870946318077458487208826469966788840063141005627055418919662364635659094230592081836441536799649736439893140161350295665812106341533102464616183046701464279438328429412395803687463100235195553730885210017778368430943145256854433515030210152047213190452192013310998690178777912549541405763025773388251924157014552924002518377847625720392069593037292617174900328606241251051477971318117123025312736719742739879687534754733652357898584721371517248574228781824960239102122298802387665061336186947682120147927137195359133793524532901560971549992895367095795912623561506478471040661286078960730925893479787597773563322454341137501846521144180911589170470649274569215072951966391183113320590285245255954952730339957703761982881326239814145815270583187717795755740418578131643344366789938534224359070215673702924784982005276179777941452198611615733597061740002614481067621034570559513051264636451958832304665472623267163020566526558581394042809135991870527663315153196290666448307465259382239144661817682275448872261012654122207340448956115776741134818916226950210712807691414556558538731608359976166068316332942348084016486367011832636070922664605026566515910421370244601708638756123292359050943631004603128378461236513319300971933289903190858720940994377214297807206081551165500112918118812517579887691730949782110165934259508173670493544509775421357398216938504385983532444641058266958875899411424142352038155045656594560650952105193018971276103045962964986185710698592231877981746897850373373288200374370904746965503500454216884650946016974946962370052979590113047915084238607701881868269575475189258333755507427733737855356341216709427906736735604741707712883627079306559801467822557453816943989426416415447523045740999918187245807994106982757327805623343332306331518600058117771321702184129833845445786092566892720282169040595666124012870544933211939541713760980549667063083652563188662405192408602722949192553708258460850417455409588722292370767317216066748326965652915030804132019672408572510096943496317264810340253960552008956038506407966810113765398066677219060940245936578406107059149215803979818223191007591719351553138740888885876863372261894036238299491172926350812353902500553337351716500113231795883175269675086744264901315427210614644900390103507181740123736739578303974059408538941011066369756051236270419850450917511821254081754520196155322593274097009317213277529661755921785920968542485382810783263508182391827632000342052751320800550306267493905698810042676431422789304807862864251774473586337008548463590879743479346131626956269499829630102463662621496814441525782162796531559179910153755108357417927526323271920689657575140688764277220338050481994372175011875864683389411143295084749336047836458801564297383887398739092799659324929447118123706474496236470738883910743562531832662697093517153154150781990045145564261806401181152739280077607702851327025467485976102289960570373446980256586242254976029408782881699950739056130405943632549988636417703086340014175977693553652169064958241103307075275016741316232890043839522094882996765194547179262353839774789136422810668423115382278527721967410897382822902290160901165066591982400698078939312158291639341371836055106613107484611790932849039271995719189967933551422987173650638146953089480116494215281203843772576582550508361776254178734741824826611161196320415192052736108120394948816550337852560115909712098647079457822691408892994596418413519508675684686687060547977616327821626630818291819490532673140583038893590114227439779712180365155346497419432227369694632215503854663627050641014542056364231766794467783520726682975986676225551529231416848551806272141551890493340904160962278125645257305077991142560176592991322922415865592251863267505023620932445617517092088257797176187663388714895799316392382041131835037627737997713550212926706458354525794889039762062936472526253923778867149402137217014652383803463888782869466071669333264427109469159648194927678432310787804126192904338037145711007754825424400457064485501577805877595895278963330968646914266653976832898522219195022255948360527260553134686346669074939819894011401576433845286555646258847671856252491083471962120131811483187793728609792859239594233499340303017650574395851397085564392098888345965858934563560762402067083227377681684791239488365847995452071582396921515665577783662034801974717906598815700361386563405156467465569911646348097575686886831309361855969524929946407443487255832369863702137525488199937642339324112388023264679031984123061780184835513457930786728965306057152436486439190886350099876752927929534080642200888924511595690145903639491124341993997430509215268053617024094137493277667476390913123758739941860464227712673540419400127453931648109741893664908910439923411036139528246315486016584712509113767524245657861867305886601515311904030494302351676580035449369404232455170052079655536623566629834382325745005273408144707529182407457966457895418008537845181190022842101965480566220121856703429158304653359187790061114392594050095905763834909773803269777745297536563363241023290036415917214392317222838361129284615132121875971215395656920420123804620226097568270937821116378307209275342931240560811230059701080071129689146161294056853362370349734690319587690857657129430715760370250973429478385099199387033361586325599582786316210872652111063422625938607887522034637972611329356109984485511591812376634771473329344389020590848021323447241407192519810989169948451893383710899348488315708291739559084930736372994367338488142581620875893707525630408845157424719342354791639024664423764425746043686300964181655054204616636441970650088097975969607630082866600221644680459628645108676597718832671931566467370321072074875503745011777059635221184701814939870897098075414327558149065964251107378321394415684814991117665474554624433281638912160467232882374093827436958609666751082942275388128388690640257526511485846284353138374011103006393280212801742951719115816557176856911981482977519415908837049611717905946303889194427293482684809812151423867229953498351882643099969226878383306589736151991881816681651037796591676150581318163858760999554248388742064563396159274253793074292945255162503337800671095410683655770002075148640041108996791844688070061108327465687967713668072602484480957217394364796469366452941374072450487159712282745898233793176019767990066856140607534741704945937643808349586928528441749666277885510637633196889753590655586649803845947560672772497465331622511242560557057808457661175380930760674901446181558998945271304531139923675163822024269609747807089363077888242911123630633753778674108167027565073667771405028957277719349667755745039019648173029229865645704068888671523516932067787416700134679264725848278093340220219605030079876655517197991202489598285732963181234268825694675824135225500192493316695531439556206012377437172649657537151710178954998401573199390301886283926485367694672941989511083629147556215588549141634840818820571077208804089216300759786776620985857832823392054748920769373387599677051977612082891734687951015455258770981940828377399387336243813852427386337677171405719345434529709176633747902438009607871695425858442657437008259852193107758299348491177486306776551292445769084688015047507602935867382195448165935447022624519149866538695154922829575448200705608332856404205858264645183491550231722996094172668070259045906871024557410505527044614793398139333808545288641042567891892390289138806790899226512588401478607279869068379889148296567991093499292730006087978420463542715029985989068430100737634405292286224759027657344907960824520685480356246162938898372363370823238864958972220652748167803463444738440599063708489873341023660010728600701048368706020245537159478884296923229671337846496077787223470269185030069432097552416756438604449066910945342157063997506971214431733178203972349789154852048933467835606376492646134748430164318334996173951301231724490151216367027981575920451769867526156371605519611634158868131425112282043096502614177720676358758138080966756325591988199794875325643983462523483097925798669075969609160877122176596830320135099822637618299662366101851676279762733217545884086169914549593415828436651340866063008032155468099669589905911832024513199974068814088379956731321107379939450727804278815054529252890337802772849978144679912274283437406873568412057023579242833386291097187854827888923466386968149974385507659614506998625141126106792108870525862109725993406197094869910339532577831381028975146373234732750194075190059495022041290818437151702111204160771468309389554280259554807606745181342411990447513561343691201290589199912275774775004724670256446612228811400046369517390521218738938905255631655235336575826061453163109291849596161074484972637102178375513590720089760542314212021749005046106541660525781277395573558523529578664822892668011082637266954082146868269374852243493297800695526643611819374790746383148753307855928067094796566638561692687827620259653721441139115351240776257251911898355023134202777268173851288239755789462926454802346228868041108503470933028921385692606518023634167475530643485584044164481806004143527132860855815865766678182148371624639218354104165175168862163115642547128832445714798374022851146195340930990612440436653093827496482247445660391773660628867933151526220747441316111594147388394910665821202498118196707679614106955022735340431846315176341195168675203518982022646272542022983236046228230612129821057671024363364804413455457185365168524859756167711937811350627438525094954038614987057224771297226646923938789238325494725192780428684603173047900907318825546222351445945266712923938328691762678067853265443600729672938463186828175413811033925130045492731640106217162361571193060218567759342210535290501884022317711989265639553699119555419454900251815514758326232844889465684509354345798350676300511645024395307581123048029628116643752933218840609815750212004674457423660241633592272315555395341587644322303992109501031663225106369385784134412684278039536168584173196040363593119292373778754768725525976079829700503235717223945429942551340364252263527017378001510962829414749577396978980842282416337029221007585917196745514339489790618797764661849418512131702026481141652569809546122713681678619043661073309931065780163123816159537421839569955603009112157370696364155540821199706180941974443503908914919917632337275616398926074180871600111749981497548079258270802064935450010985788862803009595398977720580504529933115578225969770439677665429110153055123639605471498542942004097802070598772348639776706731492537072525606412705273296958722619792379545337736981759892851449525713586943866454773329383056313086926564358454140933632481611637968419062330127546718825464124522784580175004326368834222049338045128997558819046187230448948608183211693842275071413607326368924368208166252844657622223539939321730261715923385636918324321777061403637830245790717167947074020153084605404164589307679739353268568143728913096434818974457846633421522232148564288051958978296373988640922442458748897021433525010223893113807296558497723708431840624247367668914917347347762936549356199819961200771189607065865450272626009046364746715601070530360061875532473064828401634101983316083074275930925563128295150024285492686949636210571212631818195154264551199459112143325338851971935719705251489805273589081231363075268844529471014698640995971656565120086993566563750670034395089071894410778556615601945485519634318494487431491730652974259131838298131925445625671534906427634525215870561441550019351397620279246574695901642870411983728264984619821974852608411473565904658911464902495303226251502033236924241324672567036184844960482918471519459320060200550442829708420389951835611484104693266430714067420609377159536399863968779219905629205822838182596987878480600528181995803922199060636006868899577787371982410348537023685611418121790432073477953947927198004030344678897922115538461453879638412449146433313075143876989789150175294903353633164120988310529044858136746195322862747689126691042364786293047562836987383307812126525347800632246775443258872381965860837784097320372664992310763723165170342892537417191186519325227832772019788593283376744604551054576761003382669453185719532244390912693545540393952215579399489469721521568244219961741782213531299174184676166213596119946469169666450585809488100553141860119876341653655441014389429370558987192210694729061637571860362011858931324029992716448068275643539980871937237626354884408709222864189855872012700388537894325888533563561296314633321042209938273460731992243783009310451466094925879963452124125374781757908695220750520855612496451699852285248303479424980814734372834231978309914285572093216535204426686028222230626596192945775954319098645005406960202980413818987935428228292398278612119051338542345605852264378162271275365248156328004660221974811185549084866918634654860612422325020353980574579249724224955928014419003011947578326322019765374107857425355387123956993127669111255078037274896263845421571023635166706972303473917352364136627660094662283311172575536181117967073709700054651118737807648180347016775175102442365942197475916785489023689326515898120746816617722202764288697366217946701571834442562869314882945049407601528213215000788617545255627562308986538711677839494317542708474195857083120007591098182795413529679179381308161602449447377008896649255948761838182185345195966485776410817381281902830296908643682945650647028755892477529500276778800552077592645778344535314762294097372487694788348775899265258555924294080549598285779435122762791862656283787101804234110593052347750191644460130261411893907065477390199234932497988956343975261530807000164292759947947848076189353586502095516757058510189037900338512236849232835930869087790933496546579443466817854996314966951021608644558047978299700618851964211840188513662161181662173517267146757794509394930267403800492185124782746906281965907982930422334883504943029278423503268579453237244693777215868759268863385822277409766048842472851827161027734235970417890792228333653886907044170626093561964405355840235940850738813344604354917265085712203942607145370318323582106486174490178626536454592371879801011623667543475441091873934208245209198339173303060466768542565633325956776601070578320615596957675023661456560220372119639719664854748641008719000450372296063263370428369466799210652212113150434260668505062927844932987664317091105512283346565732126879027761552467768533972548319404591826894979157857841391643840091500628477270678580098870209206071914162946311096615917188062401212860988391775896162963262568715818487561244378574647204808182102723373570368782048104120316120125200015699266871198202403909877611045662981225968250469399582529119399949348837224498791051612947458143355485361088328449066746860637092358145715107797729630404937872149826268388951345739552773203038720494264948575699155507030191341608770670137431200171028207879136611173972104282713414097580180709536007613413619425949139709135058665559336670922466084520850234301754609886663543769662916346879513143424244279984291121096453709002103564166440712135673191343023442172218846661339908122937293071726672867402817621837408077760406379667903289292127906138841580371204547131067874309428016379597405764956255003011654299959244164570408382550828901123381794005044412818732286920132336364466218105024942371018584387087233434438161704285368145442214324443882924368377526500475443196699871762444264851225362333062063126195483088743915614227034088275185845258465272769981495457110195752894066937081055917362756181631716808634315524830471714402858694730299708825965519041879215086961757288381285253823191455652702102851515661497886111882604358597176211439828394581224443665305563681683355929916431706157656726001627884824824709923051154755275022459582733177624032779889451247178285070336934678764963068750160125129523038177847644051278566779902476996266648132770218053704307484878303732279427908245156843962974916134917028856503404322176690162108376376811418583797342195925142518213359810836177453517677895355301404792269872881108590244842187741854045651318326633528173415110423983165516115305720720455656610035658100504720055335695996494650444557561178071029941405720808527631792574305737845401914042025771981980736409184651753601050770810329719291905545289675128562188295437416308103766760101394269969669776664829417925474292105167325883300981928732205277003367912507487671430882931456065011096134106605173000492891117340034689945466827514762687593129380048260641330644545486653276912628979524261376484220470393902435742940713823331180136826225847339059128412310368908936264381722475014347731236365196735713892057322499288599152199194181817502819831286557512385114848629156812474795357559458795095041333247581984210312744289033650970534401602827057060351304426707060311251849360477763522877476360642584702088362815441588414026184535787300341383859726241814175966449838278286554733361376701550577083603678846530655499059145724463211244030240446588857739885771243761962674176536139497355961795521845708684982625693857102660352367160735705390540374308875946818516193687322213570777491319013982958174697673364441032172585014839232220633648792616452411818163176450076870609135937847121117631240994543252830877397258157550514034301044071047018477953594235302943938083547108937497783355233784156344324936678125818603800005159626562682180820931674596521426038781991485562266418310562442793046321824256463001660692354550466815532084361601498021166965568228950509496493850345444064270992491906746067852330521878509647424958235908715449027893851908254971600674318346576693139239535621538981675674075762255629295733575854967226285784362730368599487424559070030523640025389235773990461164046909305906024887633117848686081956701027091055638831519995532994533268110057486199030937925406974199994306479094363315546892399033926928270756961775739797339654433717589461067574751064730117801726356459703764961407601657257617049039788966590336844042734043585356496808180301881149588881410400557241310276599642893128981546140383912397493089569506820232048639164798506108882987474372931449856715450240300876721867022425448383035229784058220672958519885863366903418316770385481318681107290278746054351095862446044591730454455932227707696703724574948180137493619250170932669002384126320112873818021312092946947433495371093898905275456651415901490279371438509495926348783783550709340716085600989675631086434455704951050671721342228370821264360691313536401057028203256788833247076685747922172929993404210422922196366348595590525684861887170900655403062067854865021885286883761093270771639416526966491358080950958811104911443025670500297704699853266462902372010507251894723318088883632615890405614438354191699960388930690090994078152119167948922752728734981045675300529030247903679744573541781705840891972621964968935357074348343066391659699083421139361291703071464859229831557164607307460825736558081382694949595004290772837674916548728023299158564367967546390140813631150861760417353940849272214216686346812078985972107153428445586834790783659161972317566186044180973637159384096229830438997236249811697208382275029060230132485394185499217412512628456308321847201985758517072174779421227397804534797760163615888699192983311914366385894625781519828596381097473434563916036267005907413567286849367632691220081786377859393685453587353191876666623733272978155876097631618492557434417171019205850584860763688290357400871435110252291284547907432738035729390177463846023954252991011564508477137156332814260513560507837211604258609715557093675025634408197198299480230421028394856603841090278570189721212618935389543822707809881883700834375083576752463058021135227864381357499763352307976136787537748775888069897451407006139855298631682752582330741392493426032883061639566432194708227594627260724510193266187415839270010335045504226067095155653220084014399039102514047445507910931555374817690890073180403506969957840755817230355251317348319792607790305747431834919272392362464006757608055770236876822035654062574743308511158403528814313460535304723363408651067927694361532385799480304725899464070384514186247153354984236037495095496433858324362153976360511456212258051242204011223680427466552804587400204184111621248109268375889094190310339065799828316957581060763708455601121314715655498588700831881995821188089948585238768138709041752369498066891054922916968095838732859623670304955999872200104623999460621975007210174041581763808424180519829429842311846119799508396022054660870129663240099480946857731267660934449243011477791854535117768936488123102089982420422701802401034355328414514965941557847198574276504955977499946796842428719225771768929766840705332086683485902686738836211562607091402762953332678679490144436418437431779309215902147373863804659888789687641581256621211194425724214020959598989365086717401271579282976013250812711631308106551748711822121448882235744829412951794573695539837465877579485889231647971549349434332402502947193381246302759742224072448927275106064068488872708826080146914425732044618322454163033872623767109168777053558146505556897576876494913102813462572915721870684581257479062784076252943662266743425464308949704146386727083931391688380040332761246138045567592106213221695355672488445428041499105641512151381760501549810641780311357833225157119304507778644151240687382954108548791617173172298276334334291235733640214770564902133448212204043912890680602217546225352095075570978390855444842271084610121662376376738143278344359493112518403582036816520704896024927726518202882741290416168500096151650307787765884009717811533801242584835039068518880548792607027229049226095840877838085148287097363062034750072151400357769794801955131784710595305117712689805054969729279638934225454206446584464802559074216542984360804701721303539937460571106059495101915198477810587408987561671322297186142753996036302806214834103567927500140959700816877267317318759785838130062406902596897994151866846023849316931388729542999173917343548195321365951050759964976970590355159394983634581852074277982306957240985792108351840954740812380145229472992612400604168517331644356755708447342454925718519345880266216301927120548798319965892230125779450173416178187322859407727047836867346288543095610140483789768421319750309057007412567346686134558757317205019870338925319401026438493556952613147371742055285389560412488933250495904512282502767324312637829275467656012490727229249076257039946024340732997152256354986593424124440817156448688832812438600309795954437892636975837471230941632127491710337805306195261800930630786317230162224433220682503713918259080341596505916866509865676651576325044291594515722816816164227807614543645548340623617852299895330116678226167891518118097627922921830448013097019696949687691088602979841976253783320092322031957237244805523150089891876889139803448823851292723750566174123534375669171368953496149156863283373113429500706845132390200433610806338732737367789032613734982366764692971124752939040667147866831028007499718787152983407171524946873615187913223705031935364602949192780538886614554550312984521287898542375605042790503569250502733893337014617475168092486204550678958150032395651686315174296418626444189779767884777586187474189502741140431001609010484676168926975583710238653276828720649828814517150634914986349290230263204350840392268847299191092862461707590315657359684747359110736703697820888337558672745200504329550190295669454638326911948972465735480684200041375728134538745368541229226514274929241472006120162609758432573431002130299016988173130078798931224230613845419007486638901517524468294130665280181803474636486828824443911363455616924900343740379842850794113776882667721866280865875497609197475029122135107844644056257962825751698605993072015385189796127592746081447244084502469228504662897326202350167357098649146686998445299276903188161802334509769763477532092715890192374848151708098134134450353660045053323118781840556885778518824346801725020994320720741754973816974238990934733993013422464083057538887081141854174523947653871626897591035561805970796988651747437823150523158571292126339989462612715168526848010379007240025239561112064845339388259234894331132657677127411724711047124872729765267527722747664905947338323148188745397451658586258017742476075562936470381556303755283503155423096445401276504027234930952594736204595639507674570671762661266617156854371806719348465094750579309248628466151804493056705301736550243592823279797373224305791052109842490056549143592986848444755237153105018078875818440381424047295215323005636864385934575116666389816760186750402476714686347017108370812981206390732872328014636367388077716773486371683834706829642643777223198602933732512934191548341489408052297943704350842150796425453532064565063530138367931855162694141776385605376506340090081763410960916748594703906762944442429274278956837820110804682373543830804317204670027104153154655399101876295408779348411498233228921106431942026924857238667411294495337183590364860983083756493371936002858292133258591360570701456818366586842480972795272625802494633835345980578302964985721582681182102797590876198746887340754838538252967555575024574029516283806721940699359078033446531335705562463243511630784810740861643194923817470107444983889646461519738719186023296413214426305392612593727657113175632644064770317320555367285307104891612223490381697781052010540940013170722797044529337580875146436166973967629696300203972332254165494895292451116584910230487741962011801492787020857973688873807730679242146123834084842001210438632741031817952484060054759248283549476227753362052347721284560855175068288700251765879804819434755318268630097169811059129761516406295753019601293957659212176151665370186135639145890161406562081233851201011072233005507809612227983648023092543063941299085216213559447547607108799007434218232776809862307737077959783789353328144774459060254498917019980429355008665364423615340994083560104425392749929327552311896320120357276509749688984674158320810985295088063694760835636910465979725087448328592623025454204904794043757779129225177124830661942987934811677360050324563935413168142771741224429204637409093824980800076733822546101341720898178709487600400715298856481988767497523898288481529410786334381130008217372881203083372658483486345541115221148023036783406823861286623286458758385161043754055061373622163441730061239553432386996051293452491276344899688165214493627213379254345631433429889620623083851790294695307511646880034476819164377829721931060708731959034230819054105455171630924227698267268508559397446457077931773686480425476208260141577504863075846140331195973698834904805782500317384337686175255466670436002365423855943124823770721142413181494222052720247289434075805604092835845274761691826722805292719218821893565895178608815116298680368564077330443237460974358376427947041128936665442056528327552548487521423234267073735654586252305923563805714528396401028690239303834146763165657085787766029290437383010698283555181957045651059841083250881240607997970274929832582243980421022915010081986905398982241607107568033142015007047064375339800918215704511625487654036525569054960591116385617480235591125619560054839685522646096985499456120281179572521495995929451266167325846100106896933987023931440286019308316745299552540684910757362464534582692775091306751625167883713412264000207922987365444734108704674426826694674179711654334967111023679789063322994300795073213070968942507609330045819036964010565705466312929476899540176179174473378293487758162683945226323796238386557488233063693792034290382480164524285805590289916662885549974161088053151113560826525903017187402967148148740937253064893975583044984613148755157681742407640787859066161853269644416567836796680810817150904042511925425653893977810024737202648715942756993115784304093725948080330745770381844343118461217208128087031844837427669200632616596230448673213155673643652132214242704421349221739236093746910286053660315814588685862581135596403075086632625846368946754410474460744252891115530330364696609440029414219488490777162174849905055701207485128930754274224212041534047424487570681382048482262590092501230588174292364427042417486642318750823682886007613164318673844357651952967428223689298528527966515659481833354585425872413749735966738303226261348602062581284719497478344158216023043796340198983221511489704471588679162056318435758790063444957853194082580543595991869640446764536375905374949797348821395753622854269314198171525893678372770780978605506237697621187193653425554541440464595852854934871819899371180781993289931578606770685674255801568031235939174400330614454011402004147149801106305769211462940686616143179962510086201786157141810328720729250119324882761534530646777524525986944603312857887124735165894660328076451602859048124074625724338513760667319002779056249040820385485593830810022339238345365919263076315449121903402373189932623137190943264248611537532793244000637576395893750770930952944647640515462068063654404051454630319317873438398056142744170126651677823410157853753230971940729818837660027864847065027847782249254685708964405952295683996209602139339730280045093023580173342304003451998535876122403304648999174357354680227463677464367250980519218238722769532992366956697435728614061397669874703491270729468221259191754084514396724489481009342102905379616441410228919639435612420446528158823409942782257304813057680199457084734301823658570094660182982440037369782654962006963608164149972865843702653528035526064797544099444715756488143864721925506037970283194722144506930328530609072542353783757449086103346308929810142930937301471093260715597361246262437562362288435558168519021175514853392693719827820955950267083058600975237796312307883233412096521299657347207610458423915339487992943714000006472574916623895070696417453407143698773141781417138163368021555380923454821235421839286319185852875558293333077401739738975254685760864324559223014754071088047539097730997713117150177566762075147900374679416149341854330837207749578289604459259475302486829355227302533919329695901473305141115941748820932517543948201963262403623033572471570269373781353195394389747425791905793889114394225723050100013593288347943726456388222865797996226204847719403181173793976125720824462082337123376046613485134701496218294726692563906226028409292880974531313664832469724224314511510593285907377191933411042674973869780609115015948875555379469036856089324682251998392414335649948708501726013714420164669592356624311879118955826998545733437833618087554201520918447048959676856454378508636264912741662697761703153013499987239062977045268177996018776822569200177387181446267458044039969532958083238025205814089854132210519082134378441003441359361553414878785848748870416205981148497438618986677021106673833388254713941516928741189732682185874361310601831968805722831821432710795153992246223241035478036986123943089353029907513273381390035906831230942204493346083010679205724619641469028788713905813098497276458437923159032468039064025859357922893488671941931494835230653706428574249977895662587319837983077218249932515236861450233123796612802249493176611008935578082528286757303192782392329657248734166835971633517190557860694841178259150204081458679961073203634378416363796558824563040782335892131519174456868153612528353311559368487921207328985062284386168845791150694520562234091257290658163571881572661479115712480285790581958132880697505707167442390341592028348268708346353321722003274883041375565592927244869159822273454254193583688556202471452437814742151015908109338586768134794582500059141045529322269227520705527430283054131306896217714758699254930518766667549859901500201638107741313891403324392774193414858638552013040346838651348985947687296979543975792055425210547845446829722509789419473242816162082446647703823889658789036115291052077165377020228097449497919616666674903774984493483454519192778808948094677867021647607825391025729684199100866462849211087707725702112874918406868212929853250062854968011922047417534283178599891112417000981075706121047981282399475378236353250802842788505013893399816747482148272850887974648875976288322004138187882166075256736611467709740609183115632655948985764559685017616801221082160804940392161402845264264101366798045816744533351475626730548894502214013033228343139990817583595858919473673875509179371719813375824451696949730479967866899615565672521052590610881999600436596135817777084109198782027326659310716902898519685860117304731207903809075968528690687203827534907777876492769372865484329167596622797163057307841219061018842938305851549407080397126352090102218130916175395819574660978441799251509421199536893016548806764292424611689012550109335753111134447790242385138591740030653803213579702496020501508901095743934729452649289156092078239756684180420472213823987041223293719745297025033528583939987311710490705645134662688256254783871024221188105231879600025226877766905497368881767016494892464510596480282562702211248518185512438147991834785840534439912376059995334251813523678130785885032938630340113505680560640705776005123021990539638512792881104707854992725948628228384592777031403309253536687063966763310962006344376256581243600729519937608652864817229207412860531436319694647768524769072051373922772655957230390167901156639665817996401531611860864509247439485709366783018299291158657840855096430567380555475378479046528701330822758216317236335801550430110921250991374494025199159646723658114967419150726326270329697591279725713370396168856128559433723989683623621393572669238213933120609565342023951136224890602138066257427407349053193607745496378115928482921614076351277279973807049358544911220516756755364336099723886484346454272246507508468034458154128027078076368494115975429312977984382011460472770906479238248139783765326360235281009318223013520948965551281922107162500350530257973480780905476654898845296082789052279941689204000807304315988543618143826309198526672933520779690563895446153721132958198969864479961164756573076198282593286492102297401315855361488401158725605755227088730369481508279488960060818682192669948558121119965314844974885765317993339123814611619477390698106179983807738659929271852014961605115287582058747405160567113911816445576096116413330450664655036009093600310374748425393782310589858841063734274444169359331346807403501855165735690454574660824600472558763326858755894154889716068225157999385690638624853680362609237601743046608071181103045747808648474168911059401169747930292192368564147907903230573517523270101656759330813447618218444128093015500894600345173483732981485294513918352064494245043518104914036424618193492416805034904920143410083480740253119427474054720004978836319094566493985198159102723701917220448138037947239990832593380551397013498714132498707637293462443939919224548222224414808431247181011708816617958023880061993644615309050127945803138379767976615050814879784744073136481937836710456587532079351154833108624771477556905862222552157202826469019701327393561837611037247194845561168385620215846096506253633577737078104013749596558409451662039671097332638610727378156908987325554591694576979044950568660044376305688170613016361654473964726020448668606341661648459125843767894150949443289740887966550061898767190716726774544512475353803443260885416600350102108740134849314430098712443237668678187122687536358040645890679652245604922948663964377403216320240677582736607684593971027797919121121986594599165794965604316377992260995366833025142170489827573321084750292467947640737750809580062870499891055231779765898360951681338280720769188644038935255534765162754068460516451119454936910180436654953833601182850168086880538624957388177447183877765514505807438216586115140881830677311936864194883576026472661796218419702737434888189060703386928271079706735832732766402709714892181699240844657486850839435206594815124788800442826162925154324306160486683548405148944757329680361463082707590830289755940679526397616179781675652139900929595937599757489664948264686418575646214912109444586904361982985685573377137521143205831431323220518271834055805696359412716601927797050380195403496336585813491213286868866105003120188053788620792472975583676661525558448447994359167752968237778710255439280710250530946111771394977413813181213192420161111001115848554964822354336209116470793788189070223645138105093347978278990297527418163502171760487121893898950070359674773217591590928918727551095793545078740101477874424921768658474138524380049845643661237737849109184089708063361415128878263316583508595284550635039009118041822886038123425714459999469822670203134719621936909891550606164126664715295048063389085074958028603219871927169817753132477076549571734719273106819469010895691433524781061070634165906092535421249497903877993055360250584073275966312296262957242687146110690274223980068572983618659194537307157838565002038835808006564031338876584268138709959151874906393450857172512998518471800647748796324217640512553155550905502850867294714701804051725303656613110173263650713276114465710475542945260100852813096523791632002664447185019313721424264972756393162067289931654699916067970617768512261996774496265975417758587743362823972425478652711999373478881655581822164830801530534258052330918168200502003544314273384094590738198370841852601695303147236000979126172814079006975235546230473481197783981738241831575176102683482404580752967664688077865683882492249731411214495140265479385568324571474392893771375786404588849389594389176215269900788700465037025122286376861714445774407035972249864946025034618596714770081017341157931398862810051197397941845823128194607580474722707019621227539064437028136040117415288105789001609351958225787180699156321227593753784815616211114728846100303866571029134621070723915340265231891119453793574042428368329009912596336068239317023104804306779431950863868308082716146498586639894804421606400645397503000373897937667750258187097827374644939821034996018066812314347206375050393894182827326568114536205614076821064938694104107057479374758208614549728213501877049020557997456764659985332202938741739172140715829273853848759010555608346685932559030514092782979280326555274985103965286515504336403935327681677560482222005339242932719103193170431931784189706470663231331029465713838172616120220129488270506522164213903492257271124040181051421241070257300924732005056194198392076254311143884097159645056153028792167630782245510802786258197081574757110494595246111994993499267611440125569261075664460519517544432942625142245003049892979506905707807706076473437636917500409042148269149653845018512245621227949677562860545686325826624696640254284960716574649653122235009126028946270001729317937449085486480911156494573038559945488803693301725447367736547848359817114004382307327872492258761998953612268287988174268301616913550006155018184114150393128206412186046011227977421136990030645605141211286559226475282366443261265833005328805929571471489342960610459308229762950020924320835500475129923909009137276435953824051901864609960235607491231406831401609964645199469183077489566619743807504067232810422221794684283206951386170937963306518912026935587016760070563411217101460867368327278746894080268043989308705309429956939027383390939451711314014286787732945410250909333154818310306043475325972600978478257408579448301168649243006108667173927830751770848825277578171376482120357762660084232680347049236476736788454800956426051636036520819381380460119632821241678845991017908909555568698846197772777976502449877462695167555893241328632262836511260270755753091854960658433598262695076535609929836692426675313283849448828252054272520229601802474797490214674801467209932505008855575402986070671161958501031544403393922970053268677157648711073548607659479760499782853738029321533690907774146781058426008871031757126096646863208199948239189145716576126135923915654588973143362178669487314010755306340343497331610485033113093640513109135206164167112703493744740316468065396847916306381236315261216223039567456397394687251798699580543655298645137400606731684549694638902789788032178623290698720222950697005755223351154315468643866776753914451849146418097837402539201392510028815268894998188766484670442014494495084351693625640788466228032671025506925284870254304108843862795287887287498432591394297002731144543902953818694543119477127619361072854383046532064449936264728090718599008977538534751200138430804505461405019634799973862824852883898247428653150273784274641342783940539067695189704348606124415168003272165817254968401679180313349942152738148856836729129206922906384187053979348872315119800366381914109771609739222442128757686914982305345434678213309436421542611036607066822930155732285774391175077552686879662526518418445361623657486592162963887972715713226563227783409920667103204405243489536515970336143059458876050958663349123110198751367193904509887601750438985422737628057563937753989035202017468783858844363534521206869124787273329844272839092809681111895258539574560960032538860560161128771458038834652328845153054980612464585038566917860383076645238594521124527654078168538734591556427164005262764759244962512881702724590153818744840027098816064835488484855069679675035946280057871487107550779747994342483870787832452352774022081214038682647813479728033584174588639533550644212059532536561091627357002822765249438216961331093538837711992622598554420361769337897588990839181663175828816540481806665589690936097022662772565999648292339207181716813769993332515169573776599844633771788614207420666198435611263009451753426245106997399983229478806171200418813650452650465262636756515053658564504914928591371372470089671470430109318610285342699435835709541886830560420026845687227261753715538688174452048570464892632275926741636963816847738596414057465865416133328018284399908152131164553460218684562027919508736098668373895570443939391251800788098584355026514284005498012959848337533256474774518992867636403533935177583317525460096181762730055841682099086731782419750274006328801069416638856485937781770104002967000010504749546721772072798878624328652220293444660610025486502511636811341503731856110186879491109255696520301016792315575924571328436623340295858469873184123283329453138941244164404420853144929455596938554681017108380386167674592334063438017548332226001735585829603526431918947423644680304330545865605718836470994620609139509981564749640830146242114960401466496305512534895261105032057648400824004180727217632604156094362168878947568785151055564754148697481208646268818321100900685430855857120084037395945213878478565818060040297741650308227159013317637624291168245306054435337708961033827797088967080403689523966799623621373899859188657120890315872502721473778948549877519493137565331780839456915029648610510156583540304993985865965708266224454856622162540438373008793241180820440022675849717517172416032801593166630337722319448746384930499075306938235146621259763204768476575534996901578472323887374289066145143120815266015031540878784033470089810744877943776718866608671139152817369824459933489333278455103123193076263006320790372829107595537274865460584276032209688680226867652475620880771032022950367124809372953830616179070820494972110069412278940750495489672775752000051553561673498169645344492414380214229781035051252001889350187041206954882321647985391359714616631048942497967115772667588951119081305625506856733037719866722266862107277011773889982333195029390200886145069995436057406033161539171160373661194265037405522706597474160950503393244040218792917278780657810240113055305170212911728165761742594129574671980269203278324632770989399718641614593022996882751917851654048600676252716696436239526423927802288518407243054185876387860633544632539405727693413390732913705079230666849528982054408540097026928306346647946203093849498986054452501355208065582321704553849715570278221566489068070564269030678828581339168889110702071283311193454149008370545629761274659619238104082656069077557867182270751878467200286186600268669762256478044978336302483734153905696878460063082187585493467775349860749041105113226175514254410214031871135296046527549607386662222049322463905974447112918819266891750780484465574332046425036403460157785819064868025010442606998356612275777047359751928630745583324830873265590281508282084177187204457398787398639536034650643673717638434745515253749329030538044262141920166666049317680662641442605100353344082568011899709962045429324753356167417920152561304321320785837966503318175612503629431251386335349366853312502396555607809169862450301916167218084892784646927258108387228070149900635841117969187985247153785720060090678723829834777906221444736542254829893829941174848849938552808567350016297564242988500070729793117581171684725419133911508052253143201181853228544375516168852756985260016338305504965138177267048355976917148637764977371423449422036250175976702536842441381005039414783960578927975498992709187614238779621457374788721599729479754072001413890522761387725534726206753260521291984540712067387250362525639472625666655126318700777960576850330577977182917582573113844174788381415751338669296049664234345051929603028473226269572846980388637359451331600969540850735551823916553319198306098167590744119462249994116485795052606327897260745530498622027301033746219760338411110902940615169545398164391307937340516653574509004559083106430182394304364084240888181372732869409648690466039034480039050371342548741071657069076759036636563375747736465798915501319165474340832689723836497855430798468058534672610998882472675135842982626044022286835275800665970400904604568859626309788721862675413688841495247849139765978556991898426224809342707609642139439704844201032562869343840642570066857704660982787797504546922433026894968109901245656095363173689579621889756502829521797007913362048465328111715366855355893152080382581752393377937335283662940083800225820816059344166671654770964508177576810143272360210797552373851751749660781314101456218488334024976141353732540529573219104916059549923542412657503216778270257904330347275736725376173032910323710170591066282077614568885820141714246831897861082602887976686950037745258623474792868543962361648339691528062955154511946822230001556716665405418024102120594675501712421958469786823131383215941607495630062118835118431661820791827573844184424908741923234193457112524825877844580684853737158998723189547787375931842342778744205547587173385912148173425957685042375013964362455590197627176875760832232496407918498611716008872232858995198571503882034705588129516545556435654436828058493658325535752342936673482819155651065341341775178749141660283095172952522881014995205696545319811564417928204036874820596659771727689684228691588044877647556027594313035249549247685607163558991831960729922302492611840796590730406086367908001124149151971075560475118385925301896902241714166216309104277811330745477842382123483628209731965479636966270142775058239653049427696568223161518177915430843754941166818073533190986653764819953496439760738162719642749974302491339373478807246032233868703140297692513147483474040267159350386913843396501639698200705363102435121332537142131155550802719637885356081432361415541629006590208600403019298694378180138689379715337186549522620509572869010178745180065791685925667505003253873963193474050351277458311534197831566387181741509545112583765539866941067528055047908976321860486098713729432236969882857702698082237874586107549502460205292939654958994798822324334597480736516315023971209634758016289030608871583613965885522278735492119219063159951906999217486434033471696859924237218770734134844567163352916011083096878026749486943505538468647458302371831407193047923740965650004819096018542676674217546500636526441258596035318361675440000505137601651881876651460910237042206242524574500666641581498195462628334136023614300530205668648096570727957258992550466876404996867557336693925557197370998128363648494056484066215255439621452640688158825450165714682295908760789984166305835643873350642454347049478050303241748607102669279928398306449148490702526488352246346948406356739650313965360906077007482489298205960012821172728326095132396889401445899915111483043446660533996451188878827939252474242902480314690169038274713561192700590601540888800419354849204263654666332786557732755946929658244429152872534837389236964163688004700686709180744129538716382034549767327026079703752032132942843129103755879147363046286041991045677969626218193721443405437702223754859312455371894313445109427176203225269232528188882681010827181535683466172354671155577549645868065636004420953708447149073177101969793412361088331391631836576569248397064542212008786962583286533219996022965350090536737423337592859992843272511644055994701012465225225589502871180640906326211867194659517520950341127418306291054261907621237674543656860144858560209856112984036722167593714627563318887378598836607431586667220478692295001960096369391672124905706397779288462335234688734506764601153164024405973176884735764671652184266307085137966374388701038023250327720186996620830520757083213121634301550572212917948088241834316392495096410143504268812978444258473419224711780797094318247436541478549639301409982961544523058593740084741143506917442404797023621372943986505151730890639697321810552861137674049229321374914939198808413873811221225460268302262011249027136614697777706358197195639918420870249116975542447612809626849206213808184095499046258787929667493311673207838542745225326242968898559864542849757659303748583452654284820843171126850293590286223140065663360705004337312575618138751690780017714023543236187380199116220030744677360605451924472210150576449119980437240116187583705647956309077720760725455344810199922400622651778889036465344885988873867565145132748159800992432854046206393681156347976002050627276482562989255015132779647259266810748460672773394058361073068745206542824042814853592717819982708757204668650052363763945799415807849318821010837590011003336611603919281890922427396339990035108186388672519687446889177801918592595945293343812669859732609467144483295297745698284427389466103172916462145100514863156110707512294883032674780434573951904374047131433907931710779128069535020912595528455560937460242759342680679705414586411040319240671316008722347021923405064766387498880749724484990659868538442240507862992805828739650964695433910141306226431704283391790735175802424723368699923474878611680537943757356971223784299091104677996418798742328883944430060028800014953775273141795073011732129409916642544150029868204234441850283084807818589718342619757453738811821642298456651473312652030273204739596245490044533867134799102733646079870309376395242596651733378824183258714998772750747680102766412656992058287068662736391142708976705323351447891674480104963761891938007582850885796874254982269580392984593408364109263479611235294814418968080622076676907050500644026183628917997024702511815881929194175384560182759202634703480767155931820594627766786660140162727189608577948925750413517586277490196407075177613952473610079461016890539538071452798137552723400994817546169279747750574008708532446509072593485538636792462441297924771433523924879595466038138737274399431874792205650423890169103208580908428936288077413701472997753047409060987049397349921429430248279905308242250382039912227683829931230934089982921624116882176529812546307588757752156690318948187237516389710680971265807226768112136730960938814550846563574159058881849316626708691448251931851076170938157669637099311485190569903735950042203189684654488887246081685135919806790874982323527513737514735373083868234595702105749160519038961894033317021842854104673268072652838556440921090726287057867065392011697110713449748835731541656477186646325210205686026958962885467810897732777786665101547363978835957378795354146899172952222193728979031628890019521120471446916949236235470029155204276515504661624371356125442338766959634070387469320063740467005182218115897966976300929584645544715542345591951372534931942407002396314503151766178733684645369365939090409805059446448483804437450774701105718715401608531363320474135983490594809055603730254575188777681874995235206053975878802497480377828813801421718551932621873255629864876567515443613274074394831882837908565798233635746760487266503318734898459115400047097153083759425372068276454041127194300689525691549405822937220176337122649661965085498226180947109870673982563744767516191309452465393249571061255798007705744226667097036738519265221121823981030592234883471846126296409260349862831939960882982602272207460683883402426181762335870235935703292331527750670162366711196906103616547451935674223882560323752988592719685392239697645073242684340485965124907396175999636016145394577928118548263849473834476536610236918184107946979260401098085102138121675755414051585639239831195587178959235748423088569295707207301645763150443767552071012740408490628385979905466917132325760655503301313521446418252564706616367618171573411152573469066068328814995088310264017971335481082041056497920374379038459902110934655090488686429178560852454936703681722161724908409425165616334247931519582660330285758201134859007598515859525406560966411711235115864298630161743561778639994437593589120699913791538096272032132560947558793492641452548481193115215475993886210978314051282004698074870564708370179351193272729773065636367032757343529548408603686292981690612369819779808024514051474024865147361456765459106629008872131909744980199445082401297899827377919495983564287899704330013901330329230541951082633503082275679608679770132765749592976038996378557046982463812212910757310245257971606491620401903631551282636189888746875321667404979041320914561898074660468506520280597098472544415890204363820054295906018092531235508764996042966106641353640674299589172417365504182851800733935467677466349399322076929409611338086261583528584645820547184625939831081218395822125244771060785215968629071587608969891398250120980622148611841036987889865830907755850101379494438691693888386592375686129503370022227331227005236758429998595041971106748324501378844453891678912008238472323096564517975464445218264335171935216067420045904647544050919743222944620195583641018610894452773044159989539912642263111200236474652477615359917895807020730558396484219723038543738848752045958769962572454308222419391386868934246297080210168126445472047282092540461426696604959483578801324780933985206330917519644371339490925420917586456957056600487158868470510350561504925916480185588058821788279996526957595181509191653430468076148554557396104493425669642238741887276694932633997605569890739268102212349080583918758189666577040194099267474142850657568272189139303709782754088195567899363912363270052394229289483298383841589255823917848705438273428119385489603218983182230136089994218439192265966089504698066440903654060102770936038637231882708284336870001813318468853589785545798210459553373169413354818913847964311366514532559335840879677127734300510125218023246283836746786485605315385470355960521581139512255689181726224589720698516746835549288538142961810848329274809841156748035594600777381699431700448861904327485043060331156178683100865226790506000023243968813941060265621687788180753774080974040630547068124835230654783291048805350930707970566306508421123166951639487038854034079272080635136811777344296407475896727195924124324048734032863033107233822489579923421423954035154192791581097700255568438509315155141649653611254421298609510570711433434984934770270588623727759653672531383493303750165812724919420066973132969595240514493046086591897048985416348584817708567536290205405430606012739923633749936830055774562786837149888234897502563585635070712514608347907600759691606327545460397521672726551027768255359474920790906818848945728786238175920105358791688160066739055986084816079332379061626552188363481713549625560281341912466333912078106215116108262895261151337483848991595332029328562069020708851885462330143090081348590265503285499386881942118444025709616185090865479967246458603817106204906757507969432224816815621147729197483670543073475455986158142853514462405965842648826143058938543220540004154352962072304355405754230099563238690419464421463988920283121449392536077952205615261545126424212894754319434057897452844801911828584784492478246627134226310019533930347815839537982641565612597135409720615418835722561152084529011938906896561495979951715952939554827604643434402064665125655642782744659277700120625221083942857179507727880029027262726428397749720274979050326469081830057084719400618888343105139526693811934192443539980404098468460734366816236395652252280272988215817804054117563645282810158575007081453210301352093425764852264011354550785128758222474657421812738476007021658482116881218625749409977493412666737090190921838093593565899819025579646967071943686111254404842442484021731447080077786355996985715199087826583030069850509871506862786190746679537312970487623828955136751281694998731692888351496275226543614654271609020266611623454122404817099826186520166131568644404661372992039977948603353884852913111314853884409993423874262243353366832180679591490717688670963996253539139900637056335818141253783440813111623241869380692263252163154439441918768907035438851561845384218327446056924503183767332343821719548173241563748485312163755228550591405726880260228503129580139679047363597494856985548405888108026643942798214263314767398492621985291732066488466659299901357986736161858319369428705445933485726689311683109582415363905321480088105808715878055332006829584739510790648880528276890283883173692427974560051587673383104244364349726481590086990966272744356433796299833796880417690018386772708540452797580184165666139189859594757778933837522761922682712531051909608711763721931573940896233943151152494428198730192274996190084625663285072808870733123156572352323562609725762267093921902022612958718880793325997805392208391691492567622445860806426709917364144075054445924414373482291350953785691241350030140539373416019843385829281731850313980291337944349582716909651199004189863568986847115600353297292780863267084764038519488183089375255566083221042608029757094376030794481105290745510781334485929992003230012934930133544375005094188081239257823917610618722822809363470190224790656813642596295205986642902467480955342949947155277559511335600311373608350752174032592403693277956101285033696751319286723024567109999165229454325170269656111181504314407179689608605945428377218846386428357301694642293177051799837585671384355856998869976961266395167486112709280023195076609540928180446125417684668357306507829645717627524152158003664486514396702661758933888086677810446286168182544021619592818190886229146022798914314832125151213262255775687279993291582410224224727583764520082564325290141444106847770066097338104918516946878016155275287878791479854901711414079465530010354594040551069702053930100398978417947127756237642059847367654429062066906457050553632961715738497692236259458514035392829952298602152465798951980213040834108014063247644626324446215405806719543433807385452937032057938313955924875810821075319742998108474490345838720831574574942155372542617365992271009049302892312334365518998882865951081653321765372746942187968677348149233839005936246710288251045150596654399611854703287443698087775859381531061988361662135631020019609799895407660100506393576509014916960593175033031959732423625254080083330761703290892807376084333355343010986415406548909389824765813628697332190940805950991242048605994751306043732251391922103367746988852659169353921653186595690123801198306051740096720474964582543169859510684347495119848248815010635579408531379197913193040978448838133298151687406869575541405986274953398571774007676677669905100579077811176285223239704590368313673057897558026709879587504786416007152678984571507880199314580689657184264063809624072535465117279765328615815325890874526824088832000504191958060603914556102198466772498339938978074147857541047409324261981813091553110012869230431807237464397420693260398916409990294565248065099889558644306439765541296350775994942819070491017142961343043350254016582704686885139451986837324967032746706694339780914235638174335985041887089968530557067740000648582112359403478930238163982629304611526311064010666472285394080480080603135351202442347028849688714131469578622161334862086815884720512469689263814849529041647228435464134113605572824580137891324230240703408618103221108472748460534529358227177758553117766107721095493602921340531087119706515809583116874667682355249416071083807291647887514887851545049890311690895912687578170079009763564565459131715594628429866411649960417764846733282224890878422633964169831141782475256138150339925574384827833998749628052334030428350972742686010821336269819745618136917509165996963890629343558265896165139818162400743674413740825203904005365238420514645173232719938826311504929884753678479966141243017100330594329763667906291231112233040159121969418992570846608038258891200644735114173774806290523829682628470720630948235297172837737161377487158149422639478013410476202334713672277181903340636800767650390618134248843870231008212340560931837252876212544577137132990926008278236940867461006432884093001550047109658501789892360683788517281119942592971021623321872921323766680809727616964524451823058599895379290681571497566608772381740772380859149012169938307013925940460871170351847927110596686902535992057717942537771227313217034650276202841498786924760360167729882646572721724789994144394981262287666843781207839078343185757534238004908541922898823076474945165558728245011567255927211970658499430189423467252298150583602847844935399724992304023203985244321603000469774953912470881220258122846052039771831772633535784485700597344207996404394972486736727090041400195758892425879881131806242507767272408202792051912425474665125580835143234626200914878032380119094696015268816041781988266042731371432599964739470969645267889082337065852176488898828442792480467798380336782687132518453345199435303992298100439089681842867618547445397412462166599877043062461059532744065883261377251211380337869794529226218234937799277378068440652445523648168334256540207579899614251688275922689619715553230469383417556742470508746756096473238599764575860724733498228948769852212086300471346333826668515163471395124321444226122944829757078973008967839047005691316219581566444550622824750779216542836763732646551213341454346049868927909540146353410106265136273702192933975647439543220689921207183512803470502057530969032504313533991280495492717739099470882916993776210018621242190970718465065886625627651283181036071108587914844958645268236067323901497860871927931416272810965610785511693050048035205344674767974282343424027971908637282248342235128254787923526132155502966748178905317675324005805585977945557293795142301546423367717750162447540875318371992512484277182399933809963970626792409682161680079671019303107486475637542484634210506367953099188534575880523634974778777950121756485165457827613468712793583179809856413915815417345728913043617821866911114812273295334060128167470511126697846561296136545458315047583678900948925731765157621793700454677321463898382822857374699015456026333621707995195275360650695876138198831255630055886188957361390221263013205878789693855655762356722314854500695613572858700314874193728621796071830163232108638538321927454280227512151911164973314231537421763470415521387561125706972773436106795279222665464552806194438541307431844815412743623384161014705326476223705873718148080000765877429804016398193701606028862340262636032442497936569088063278529043160888306122038152751574291850594776199903042874137352942179743060168805601118940780174695028456849824428368979826815333667155842526183507469680735216378559639464722248421312088585302260859951622937680757691966125065497065454438381047323610561877388533060306423110181101163736818784859297657141624325108733545681313518150250594062969696296198722345596167730421455702428943941816028311832337918946913421650259983147856536612646574625193549505094852698115745003269331187872193380113380515877667131804766516608380511359527892657137448722178552776357325175039841303481661350547196831969251171644246268263600060787449943937318801609484273755543480377361015985023632919545325908884117089900298932550220143811552903389028476115044289948741888206610737149022538597069001343466998248751704808751144615154268879923963335273685743704858159496379678770254436356894703106273379425981576945798454764236550208209091287123814501812443380516286224011553597246487578399687640773328425649507730835317958932373548946486346433881645655008253382869470222655794487848848058372197117333623254941032947853027189609909130369558609201467834651745118256163282450186169290640082383035442146040268889885558116500443088085921828239869432461927995337407005484007694907337083373594288944061401078949283481746610759495666077448913834586076709867676757991787822256843211215534732869894626459685116357991416152202314359768095332318824467177172388387957007799980163816868603431943519804691405821195865105437834329419838809402870729177780336095910941469576595892168481607361498600203752576208905619935435013183583163712871654874714268128910842547908382051975565472488749361423966091957699836201746135716251975823238698769161021003350756017554561542578014919891100085185851945493135142825142802490210833124847933309465601417133853739208891599514446645051982383272276775566879921401296568770834576455186654053483101382861639566180771538205218092402044465831969549455623886497037222728810323651861903082107885443838761178272146703406218660246831216388700386397518647736196937187514928712770053495295668377224653291126118467555540997412765557224080821917501285270014825031085471459684921225069384860897447124685353405908846273509048724368703224214221458106657838984097092512596590211213455906698457508664967782241238923083481761167319660652351193590746320874336379734372905445964676608794150023215612114908800668991318124256454994576010694587105243426031852135258704405858260761339150505392136481388053782280463663273712921404767405818210636226943993217165980518650848729696306435908272614560734711580756767572336837369048950206451915042490124480816908412046044672926884800378149859298255199353996215665364360800689798661466282962503632110258546525189079531251434159557911022324767472283554864481680087567472638260827003253269018319806724570453199087141239178049810196721702620216604263259313747073165569897505654286783157621678749925865959305237301668616306864739610523246433971622375960660918359808260833545889965224635400447979491531033666449803872050685371824927546322161965078891598649709525978064536798242232864434054909378736455751360775958769064292690437297927663152507142530561841464083588799944172606539220838209767086198904760382893984141696771786773775631090831949182064279866946120694706719928129708661986749817983847352869700046321866951653159513142709699805003206432529609015756471625593485949768234249109162462018283474471948181603600693035388490805510219250358857483987396615890151549315417367936933161755039817273190941471030662395810042711025856379241226259594188773136301706386846370464422348332216677004880763356076791434121658834567968534949534793892776462842459815615182143642417311012219499344567649658308922367582730153861759858230002004505168261133841420796420642778754075759283708615396599421367889100972659714119709040634963353694923494183490651246586863226663106539090408854316086996427119228769584599670244513306228298078376720629435900281684096693531423119949618643566319214393711651410804175011746556377679027359228790811166753329029294513038686865595669526712698973746306020398384478159295044967650418055001304931876033574983875836701919473988463630798414303204948344314776540785807041990918011173427330933010496501641097694763375020816783463157911927181424436942055362899367021301413520360583437370653929166261520308324966635505674653467743426693639100632229475308453121130876163586156889936185467077092899108770126814871150568759381485907581598412116296311055290235953932534278273393171522064205700324056180923243406288377683074764079618233907399070051256098077360728054399598578604687649153343577138462488899884848211003699509056533341274758660063352681957883375487207659995359206496837724811874337201199404268553803505556480910315655112700604333116476977716928457448506064937367779918476654524446102561565201950814943078106153431005464854110951224920234982323717505364661492662418511106236461854290119142815575050481086291758579758510668037152887220537595066614434516894561208613016615870027217261176985449077254720783085269427116853361951884233197894137170920613604152040508390196137869911125766836389624010072990802638682820505389619011975500075000973307248352589202951345391066223694486951604431658145809017488519385579111800054377605313375412421692099227987394828190116260580031454544537937982757872671400474970750223149487484212055590603048040917925260833692757863655754565185881810217718052949211764730004828359287890141586001874620955154029454478487432141824474565565267625365626609457585475439602767720855034689878498496808171629172241989307113242237247632037495443179539247172423003114295369932406771389563005543602215450006201748968753057662569975143368342567976682353090999893144909755844075325304645488138815505978746506731925196827035146793387493148547473537063354477226490404950115198616983692299556731758891672221384776272266119063343548314583453536699090937643172497332037436945380120784263635361688049691028245869071239968846885734142864782552898337012174417032073609277592140815839597815964124592218961116020595898360572406772326034889805484449278077354957088140119308521686495892434156961114880309955844555593421589161300739084948577574108292617348574567920424511999808299354851994776605401217688724124226101645414043143408975309838830530442076393877251454367892384677844598007032577963043472879428806259910278698026529778831095601713559310186458856609694120024425339806873701444424071744656779557609884733553071392222120743105687450891659187577211889145683781723984185228539115991247538126589647466066620547369308679145772070966254333192710891757509381780405617938370042864952352575505579823279377587411324002435244976595321223195813410654431260405909054630599218572682677555972280106796870184069036990101756198564613131799231953421113190731763592830164959851545327988851017279910283118125389389542967822118009044967282942949189374707815888743836219083136529945873392131588031318578112981737162578038521627427096192237544040206283070128720191802524933613711470216270309606420723383815346587328128742452561208425530425202618623116380283919921867057777944611307102898676362489818286096104962394033031347080116589146158349930593234844111771411040061683071605190867700377844482396270724067344678629940306320274352925737554001625483369484436688615711950358305457959933855834017296135133712659511527485762463605825498876733906979803191408238741427073563734518364284445182462869969896452507295032069480683175406190083111658221130533425346902530234543067830491563570517550863534946522633999104430561562572117652299242319402817706897023169642806823743439988981121831704390896108500228137908692618769785733365861089392187601414042076483803052079453928313217407248355784612883900128851673664888709431761827225940021799105353706291556298010357113918722317736235130099845730817313040994092314749486059981718419486084656666601291403261383890024228381717466419809183761433703542357527494804222264327355490934962062814915570422861878457711897213198450305117330345936977377277017454500062779440777660329955703566697251185564319312407180271584590698633908397323807938945788915583403172965047179579205664468154322047340641742993073145849887889387799858440009362041171323979106828152453755889178874679335387706253808432428386207188115075829170201596656814225071774523717659594444409955566954332394016241224122331230616915634345582734677178663090473128449597156406583812773291624620598972971005713325903000632031788676705220526661836775084904406960584746869786768789297577105279167811834758517996598504244660819891818985998747388707959631739862125952073446036063719127213885976460873758125353672971616282274915614516799279291365022652154250633015356984284066605619191470386808864906266202508836286256837828825147381635438447062346350216128757989386598775206434373669317277015375513229839503895716147658155200518694855044835133246214403997506209734381610841322126580849014865099719978164410002637045604953746288059085626884539732155593359559178378253903782309921921964585078170483906579928049070713615230592071151152972256544392142677593472561988407949579023229920554617303179767946720860973240065225882671686578667847300196780574020051725463055673322220104049737718353289761231739740068583057742837668041747716044992901374076540948802658215564196354059615590916731467750503528270111469733578470651904060516023069488384725668428671957843679404485852788280949789175726135359586803597156214558107804214001750853219328824589097989892296173019351742701550691630604418074748663246147673054878020386829727228914673691939303353147509482410707995366389211209156588642089378442534700783388601013708024352834695036567380401872025275565051739201360559024180280029162085425210212823102466661924317576295105423126079810629702959745666708558488757066854803657025108952893759611157520700559221719369175986312809783807270861135859077212457945301711741661039174728465048010706133899680753127217780367948734971586017238440279632981371003667583094391181316033019413257422489187467856999009459377995216486935472893157816338790929254014552684379277062982192735653692626359572273533041204697146745816612102277548832489016319979659898207784027166024733098794276821582091314621241897989675678856430968762677958914473434756695970340890990618607980396981364584521108939646897119936594099429935812398495195617266811716305968407792952152518074752182412201586815309199888108621735696584342848753562806764305070500312302321345436087226993235693044662523977600873149209876142637049854207743298868721203380601347699374558067009457750383142879235969597137546376827422272589667280701724058690292225202080869261390099313012671261171101103573140978895365291559280058529238982751835746390789535094854937012747825719270811269419241464785720852244889224934796040773848222506117878246721202143949395539772006331338428386426581515166221869313693713265078603170513871355781461138269110811340264099331832802816056206862059984594348318513393031680897333717725107552159564433583476948588308483636706880947955075147698657632209366067334072119694749888315145467847207323051835737221417445283540703583553276051517078950949998918701937535897013987670794210493643223393527227494433878738139341275438246127864310749867508014922029800516767576914439444575145957636424311912046523740133790881405098289927041370079085488076760503857444780938016333033280430557620779036813676123717440063161604508170315038783080127204847645503469647520813564260490060574912512568471951971846082850535737917961294173221396565035564896890433553286150288085230585531895152878285504027979637037084051672153495159103785343286984515944062171196074076949120604454522088288812772371446798772289433379239849453277262011453546471228153672051601519022969370621115340431240146614701520681138719120951539622840838991759197218449326961726549422711007542788476904644352515799499445331716967703490172357055659586767164840924386928393916817944787298976622235844723822620204316229112705327967398315895006170531828348251934152793107239485880772575983767889299830385163558704561127761945255702308022144130166746571044651787583501667884964690273042584263763885618144182750128771071638850860696958855826687136647549197584315759794068891016095150367653173514282137894828267617703844063372891156928506027447884999595044058183382031502996885012781975640092510160996471338347836858687740160795253150253757688789791715064565401728935692045714494389564335954249739094741885895884766503966420377364006635527215557719923556681570753920662842890983802081380732218130674372394928274308303443760757591241613356579700089792109546627876007636506767476900124657565949449024996330623843589145451150796955264658322782993791194226772262904779721406484840756106686588573530224600127123935671240250216106748674453163372128894729896092892703215139813380349019486417394941604040876173500259481527780098214639331141287937010682763466408450618890989497984851743403825548848576833045480869424677416538120376558403536624410864113721182811478220878974993892302896522720979625566942117263381189121443754951945888437312567899717834024131225706785841088709918808338150585626492394441603598574500092347071802477345052985287024814193353886044902872273415121690972046387220535957825395615166896553491631265029660777592122508036561496850687724948897169382731603999038064179922675356176682021627019233821612840142958143854203487144986794075792113160254877656762881080308040560715722715826322067999413777075834619733840486565563105397932853565120532228269239942229382055489370600656015052322096887647364903805466810369012859637696439008656880952556806201036535299461279857822421399364491886164899880222931120510778677028445716020509396829054709458649147876346116352838741230991517479718042380779951292132214273136280856385521569513699660293688493620960127684552817035927987191212655896431797615306698724319063787445735332179795201700614616208238988820464062097113302521561494678192862695250077220589600956957502295835890154148581597283857928789454690155175700993821698116711892047854524459848225627159674824679531155974049452511355744239235462263008404665041436506251848361600407065595738839133353731040209598955260613644701629393715971268369547646748794511841268354736793772640518655375185824540550000084559323870631381404617787682052929159593413360900385365298140222116804715048066413120155101103105881387248090575070114224287269224084707693280713378674496424571934422026974571187305032990316850636276550322949991544699297516189917138741919682365673841125466022256845945468908552878205973511795088813228727238879045129749628067215070387656444477890544716518366012040161447909112277202898249740152588130612076541151223591996606406074061112991753242951766504339065126178165278873184383319239398207527499605619921596035788518244488942491745993629598112367518264705165905227484923080873889844915069209105143586015411584032737280952614619537308501948159363970335161185294535732931480756813453357705259017514810913304135738716420038058497846432208052440610621026615821059951945882340537178601835414006320075713082730538324331876171371416227550849458283553817416099920525204804251946204443334636972430482292470836336171801345427773957242358555829644958689516834898053019995051043290518182766139361154938740760444116976906496770352108127125365279447013976513173198298101697888912586377996274987692132658456395649422998643015174399375147349244527895395460796537428094823799571440401891121161096118220613292266959884294914932521983126024620573327408316766583493499010671706722426971094741947779221222629588678041087053080894650135001694450612718228858006838598111805434209153040090879505659298091742829279578290112860298787346523683067575047858881998859394978340778312525275383032973314153402979567573884750695035655882223713304471458111866185318414868402836942165163644927941576484297519439882923004605581995997798898436592920215921483793311280277399958379378992282240156796822272400540757634168472516472686016374734835404034930351337846592468842747530047223854056168076510358469210935560605329521371756309067415406310326011310647166012490023037394105887398256507674859544298787451647650791985066094241007659321767768469325804823196743828956017095645017829087827552445686689890318931287633665674407386296521010000029117632653918733484437073089496552247696791032926266989774416417761950359197476620402760429941864291498063530505950037164845414769815367254787908536212371463361955060026849732032943735900752121647458979437230388394542926500248927519090345139152873132685199565533358648016894542802590793536331305396843257188455019074579546304449776399774630889308075406548491423709158386052001415564257800012262262749427388131726943299024266135394467404050846881790913413919109604659220957447017954746755485966178931895266034186402121236120078989390151172824846643811727576092046343395634955606795646120781818863395107365003703686269002578283903046796673195322077575995059252301542027543670946597274901776712709800491782670470874660836700751340663493488212673928344966328951330893270265050156704649952411707339966225461025453673419292970191486370969481865939391291827462493766732723466271292593917371480413789721180122725087435819256426576897660770087717789847896791649265329418346622595893784470895779940724994178539952678252831316265292872655204119685167280377747341894092792636300538908958210345704944888019504380978601270901177098077892768976206759190009924236656338308441247915331836489471670462401457082532389478361869803897665445993744198214804232684052889798904835757445580181451030387950728480847375128812365148241572231735490894753399422754896294852815152083192207818120606449595823407009237919371078096656542562608611860168342762043091368564914761512487089604698362621194713437813979706149462185435193662049986864014341020407502973916837563405341925022933457186215287513064801457302545029268557234865165649940706826346718658595360187859873064285884829549686997389952598086780851829306586888281762260003564038206559138283618065133255340261402453234179898230884476980102509048170105062423312277701074368212058104828397386003340343822492633537064754507122887975187217411562470124437072760399082443521963367791004481582237954482571192775723699546152797200591433833728472883174792209794209060718753971677158719173271530035529863951911043720929993639484846367146299381777283148100138707564721353635179945332106565988963427536585123770791406581483455120990037834841145576586007733886005614364865006470390686707338983085172221448002130095456135386008729816767292753228490548802892268642096501756302108346148360416235063118853735499226649938370693666647596927358909106967891036699197059621565583644827466912698667365613150126334976942523529381705826101522973105636506498490527387343551132674945971763699069440432610786869784026381355473188428039959508196175599994297813040376800885643027845502782906933638172845854903248497298334767002031336216812920547924736317040349604890265775632170655174011601516093155022383854364397378330466932742862115055666414356800135168627344866475854604133171004249504499185846949054030692192305605667514644767118532305119496418096540225085015393430620113059509926195827917046990197619455464432620872387217134946086664258605141998243875558719622558934621001722857426430429695720223362428979674180809921570603257978523284603251664026515768607064475268699617292675591574779754589610570063526988854949790428554461562379827273406498043529068700009321960814963887820037935517024976091824294301479932834868186603392061958468241075598226518505172865001061700927881289978743974396255440972320790453980396599541656299762164601859364035715811285781445799230384092783640933680429161692658438958907167219177458370602648280177604127670301503119511053552360237117118080409948602696416108892201276973430546634861965541113528382252456886151921431274629319559306737299257018479058170427921254743890448578672158702343292401728575857166486367101446103521998278261751499061899170005163434051101184305621569663142469106143351526412160831256764655724495685493276765754237594410206489328691954581505700672822685574407926262609663407647160383387603198609229382323701490466290424229946726925759123795251103778354602282582601180907973583547979731555939106417326002324714801011824385439313022662376558069788813406619021771089463351263232118948423694040310153175374836872703524708340579592357453878866988175266956446706338080396752390094881280513831449255274095044173376037148169097379406680124837471887019671709144037098308378569375161882193586942070985790472932139112476627185164358229061200157937923286517272475503623971538693138850355408059865516470200035781142230007272849332024154354403059572786181175712518653315214896853199786900296776793371483885936430360619616246322912708100974217525425556127514084736608574058653984938824820406523747969061158532302790497212021241458273550509346937695192996807499352577120302559101535501173151316729543874062709379929385156416260661938230974993200431711232641981965021482133896441030225326712226293000119007827071155209318650738307924442665911777865034361349856667929154227931083682215147126578208714577676488180932710966533134231677106629448388516929441952651437548041516096033901313929218542162615222916706817804837418123954056496756920175989962982204514048746213009682374289093480071366271969725307758447447217373611686464885410828171304019710598730205155615308815489731824076419770245887871863486845881343169880900616068591119581768465263673173295086551196974509827186679986274170617514969218916529714182820640153962177257472342541100034958266157304367647300233672358928532811982972605236743945432833902356696416486559043522550425199214158460120005848762258799748091716798041526718793658029225356675957065267017735517380993804096682729069850989915849235199998501472360056458885296663393625378890503193655617051190458489295227052554153985205550859790431442724456996012829216758878386824514726827456123429273181570335994572845979423044987575953759185684306524111999099077778276972149977542500318437669637956907473787962343551095839769976712870667646506573589449109512727339926852690261424785462946360696769044269077018123262682263535577587840970627658622658872106873336059772844457911198350158000266199220280947176664063836806398592870155740471556934751851414471805192437371408448606735840656001332958805024747827573311535853731164028837988730006438098951240415566991054606520445183631961333351861056523997163280610548634452999448929063545300489838258673144048942081480878500626550223455125556174890756835303007938242760645214482379768764043108058580714220954973663606224018443294695095970105208465445894488534767064042275854474965908306999413460280302761391264867430489922805958151424831065434988710610319187017560605006292401410386916209611125111789225287200506388918944265935486262776403315476172901797219483612190305113062952708768837762795540944837373772058538041712630502390936081674426149141795911956360651492871668218657092341925036418777926680523022063030580781146312541433987337882557209951072666708582902658490466081844696907053163746707705766251408799022735527789416960822756635880762293358636767651069855086927828608503349432306563111442168513242550825549015261019098082758867099600858712150646932809141953579475454934270741909321700615054278843920897941270901105350208609526826886705273160226764918476101297211812680706161937686904611713509722304466437373648494236500145222696936493199799497468028532719324858346472172891983669664169291463124889777679709860739858285462107175736974246692420595979282409792947826302440301925665749499765552356496718875112348206796738970641637003095190088111268506453939909932812852388659590677245075221694312663222910979461550535486936199066001990628813537368069526076175946283744049404014340233378630947434674765369911331630994850903655397018666396138000403085504387575392949556743828801776210364304195927793647538534485988740464529395956140820628872252292091612706830981523155493769321377684725835112654206830387597149084651213358395144991442460979026597452866570486393780962443856579893853407064344480120341030382339275819185306208832507664432229914283431911511899964400707776168254970121160173948594483292264131430381810273295019630369472776766895080007095294556376954694122913641655173350054268220372893247907076959911388163043122513912796614974064289848446914633467701694699435870556920330895561672957870749709097331041119957875118219386664649243219155208192218558567141265771962193578118233233191861653543595155436056214422183956400495669083252059290576099081905046498599350269316576351997790909669683128777538117625262043197885953490762560347693273787247803513550585723500734561713136556808786996553986438013120333569032355016126452933484685064985240013268181057807545260313537121090983287296441682171097971000032332022637469773484074659432143941499959342071347445460983085032995206188355710940764773259401856019611379824174840774761425062852477867331553766526420600270839480170819358726758561546854594970752383382635941438967348108190595142072658293312728096223596202491799898916290018244018924687892621006499966506257771094463706257799685173802704666528286532397166864078691562765256976607002027667977286234812965596450940127646899268431609067579101517912406443582320181604212127949536211160124608369179557907099342493544637373320952064991312463144647010098882836209725835741738343242746173069436709819910644575705851540557053701338777900980042405178552483597489317073818550155849832687598318022498918802865726509502242582514053674291324437835701829741360790034997980616384082381474426607522784390382552605481134827960912547641391694413076360676421081348284029794143318934958187713538027398516017234174366401557476620391531344099914703596508589296842150754493067445853707792476439627591164439697515964038083462990859417142425846316087723376661755857659072985708398944458433258094086601919837041234342794326917851598962464052966537455003144081967149486077959795170551278431885748622764326415143024557452551784179804633649135358202184297755023439875088762225325154174608775242725039450295335477123238869179390275859762732189266424970625947960436245441017479468427909977942112313600573045217038249508322546998940302284727491101760462114684038229377741026657600339572487088847406126965884631138949597563565627056846132750961080851211916387699647755117712069518965183030472966087215461561910729391342681601622156072605603574764319540121110271781706420273224716661857053352779957314380806609508152848443070801108999849784174385707763195623147798638050296431292137477672277341950472460330031407103909387608839002567522317833579004567824161237433683560884420436864657297772864615794329893703001717880034952987123529056289760594039325684036799254972542246327196336771285042284146392527851698923124837369574376119041202474282094281677682310753877845228536453099467259325549073566533649238204324470541983383048204299771894695938819950326455912380689664936048383799116705985995334305520086576603582204452823985718290924508640002027197878385059343768454719871208646004293722681499195531596008365362644948771624386544037153356901239545583015631876209274423465109237435627171638527865583308091418115688496400310023340935228077960215348261397774555426761020205596004698794989115333702984954511353365342615600130103219363461318377542377333591926995296499790723412833982993077293630280156004298479962959057419413036887505400634891551082103869361747193431852065830008130054546087553306852435118894996297334157146394524550613827807795251475775224983065384680829749033859889953717815778516018747516771285630076361696814385252823525621126489568363040139433748862608237217699073239483077095087192049659749660326642088653614961053689078425915888468930566028326668719389137283214648730027971421511022758748985851572454123736756635867972821726780149128935295352611631007503911357595236967602211228823908510993372104914093095129728473829771964419640734586232721943143995062017556657414311547703412159012760958797508577853649984293020539424699306092373988122214042687935648692558402907010896496171059316911800523774530128348537511408946844208242417715604244189173756836630918261900883713736755886722705521610148038901307015600593404077357062623837688754756523608732837817270118207873559002473593570945717209296168879518452363585265113594065895995039742946186826294802352844213135620571884127204159136661548133675957206432445997930080478583906030574839793884893952741173805860984946857290927831449880533500309919835125898612413448933517288947407722612741794270521188899026864265677158150083386231026430864953764738615700443290369584584219736180858392769017158628183202597586448884374876384671289081004460992970428912313284315962901438484236887125357742172033268245249960329820352878939888417958814896734617548922355554313847657008185582571305290102620611475111189928622447235719271904670181461522245247433336533866295653290368021115511767276222331541182404803492491485959472059777466444161930762393165826032399538440210107366225939020508616542766437071069298913865383716076621497057590171021798638875049220082848357216022998791182041919255419878136104420369769726036805447699843790131249803284724238409478095162618422557628583728927336840645390597381443737962403319136180823056204720383492212756915379048236701934057451518244857972078826136448937053003200313477183694555129718031859398253833900403503067300176714592728414380379089323022340717696013001601709312506607514630218405625786416693438260354678066706826330312029773283095300058597057951720755224376401339895852854912010771275840862354201491576620467988679748856705376238367650432873005486003493986819858306029480855537515859956718248913718054003592014442764834876509673232380241435656755181729858271418668440760459422856035462370349273872939770003064535964113639162982480352449713764656760735285080109018923806395164727293044475773536474657215296455865415144203071607049445397914096458230190224946359864127074158751765949972183317925525316795974978916119186950174310151427838046871728730595978973966329265781164428802390153110780551481159294883716227244969420141149551882241505008836315972377089574718655126090379940184458226503279839003396024191338703404105793059314267528216460483381583819677218153324751996771177836022435785962831754064008070638617265562005891311257286407826680641740694952472488044163059135813334338792512257234451879768148992568223295079800497077044768020078615681689400568216264787588657013263600797837939488113229703434673786320111888167847860790371420703445149906146745287683594699260863950481210699643228766433688962062127167643687005165921245106584246170917640030120297020582490353158843779658757558684798645393963120819262287173118408843236709357556521710851776074372622546351879718162234904979296349669026289054039163515297324674798382221800861943455466430275075776054058151188251400430143187323874202430523634443354655224659324198094475041892669897915851400364891373249370458699830209863935098105768184466667013576328071406135980290187286818679448956037756998137770822775157067026568309593092086537539901366443663648394746735147467960716203172829112933821470174110840422427905794062329385550170796277824431908636965711188802688808303775702965086474824762197139333514630708433577699797825180447467436502684997534198038886985500147628436518152396777242977579561796488152721813991844230104398180591228975932495848816909544207605562116785304988967478430511881490593757446034097137583520432904668842457644255946429437574032756401084004835981441971671035459981880894886785917981728198004616835380862140246201183222765290670705778758983709401470781789340727484184219254914896630895748571090457652090835906629032746715673236085687618941067154630562627662494352195960144222388870929605991867199109892052582292722606967893326179085851533198694730527485487390264763996089185254134536182117565289486767184962734702156297407005289346122749959153853044120713783584743041148085302734514466188812151826076534393919861090398941407469609123382833661320884348117106204791364575214812206940649977306824824557006772994248749915841962355310031154716021101899002624303136803872893719534889749561270324618061320592056890959195646281960665355689720143425234582446909996615250025805927281140259493759750557884570854719565900120265526576147737670195555857636257866919272355740947051357206584244131758825840627064874689717397546938346626750910984952888659117534212959693612647569433426262090520228963601308785688103828741205654608980406380556677430928441067421608298886169743328025626584564007607181183020381644331886988925720610011745855034710080091232945796583574124543365217190702831914826923400271554289262635210990462571608358373703927195677453071578987289451999493186415813351841681798960377494247403843346521827150304059461173987150992432764974947613386015463947877555715855236368868302758481436195004558064272154655637508026264609260938598860407091255468770659296915018798599891565429432517679238864385273057308992498681438823402436263042184582060353469848744398473638287900404644862528396755087069302680512868425427486521149064214066538781292591877578797665517690734231292436288895073231608985851516265119359111336650631986922832814723209499417971694522948357541219794390064058526812860500125075169799457892627210401588864711781490059463013562084249335005803046850547053596662798152627418041609356168560422364607460749909808602041332117779423703262109426256685163770329312347520380051155075979694325913688508776509087210026157559687073622562197192923188198173001108560635044287930567619591453131808763106155446596619403837238895853990489898159091992104419759700379205775814071751363125692777794975634326307620038127169237041157669270633492993822486833369497932667583913614929824601296328911387410383961629453649610531106100782202729038753862343144272119370909726928759272581258691764708183892258399565145953978100806058673380528161738051115200752407467228147375412311998055919085201148218745033056325528059878537229682360258973691824893927218225231278586799197449287033697181417708957319653364958607287729417153959538766914123203580419756573441611422598207547704582195754609715476253476155277412535048900895615427116767537816928226692012775513369746582347295988763959897341304725981818729381140519967012443585176170664292563933935973307742616648716441221123545085026769597737244958502235791642307908111473094568128606414107213352735676760254366928076969006159829377359886669229361067499379682155663042290973003668848562043597450516641510271934328818647313782960314071821664359817730374844711342929950287510464760889034569359322293187700424230697749915594439838683032609640627135522545580069041190586966167668579722421538846580395334126274045318814362682057089682479512906172612800266693663747851663645041888305506106569723772792043642891510902944503182638270526733614817040475403820619391950992359378513598657891499501900150377615072553678595419285181538747657846741305477785385055969719705003297709994306258966936279778344713653138702427577504858127528405064505028504053271034717678210314047813240803487606539397486856494671715926816994221348215482306753839225250210386602610390110125470947594122681819162985486283395042063455453157673731802844227832348720415865596524978870295596534211734280073689600494913416280475081890700765869464394799575172128299191203844893560437432411402836698133679693398533724732467396977608462448695233204195258086099400634343332742831609152064757505132207651740507665972392145840560733057019520222143937908466346666242280972463558443936828226035015963374724459156983131773349403014421334546407497744001369728071826713133180892427272862448483336331539235616145929208637675218493394005086774982628739370053432023417903441923565588041263601257680176668149565318324325189350280143949369665879815125654807863193851455084385814038999369458040973947207542628918640142045252483697437262301861554058451256037490725506821063733477165519583525432917787173077003300917525664792260365054381760775457112147987027356660676792720189931009242328362333375647109924156565956653056240635134215563441872504617479717301778784704961004158673152823279571490648655604959007167843920506918810081372469912708027586416369396766354626157108087921931109143804450490051918878690306288857111258452338116437602592086700007489960778479201233102275956144516665540078561110735886493797462875899617050790361210044755305547598073445650469193844662747558664064715762123190651496917808094973472552534567548382667025834581728098109713839284369722553836881565383498361010304287789449873154005520538468619964465201141430608009924030166967419303531638718996368997612367637911445494759515629145553436227836983475067758154390299233240574205953301358267437259996786825065924377021819838716548709718858574405226751232179813504721663502858536750851728461579694598299276571740278021920843078173570702899957837511764868524633815555398595382726246312259157283786346550748531276356659162333206950466409564789599897585212034474678427955988321076011746204095567907830549457840147134405703461372480401680109153874599280962400789808339313056763909311225767315345972902216740498509373531344955886576703528653989529833861118085865239509823617424131146482621429425413002967535887079779063062110215940981884546655710611359236040763062019631749929044618757616491444464608670052598654344874299128973526493324248302641264079278712205492511098507778677333976792348649335610507605735573623473085665971490866180212673722534070888059709649215156697089100256589374150275079884465225940372364962921933944412873104926241208750048617156650427619719719900691704569072965493291912216514127629732399756310577057068113692389084362964840385364263714761912450480656709143883182754490283777209016128210919493181951576980212252251563741020992488197311340014700184414745895239059403272941124634222518269158418568540154753596543057537938206129374199205820836451602416363717921657887031176695518298605894043721861615134967577496706856572606086414967720729049705330723470283468758535208831999628034237050211568614437611256296389307808145860765564367645172030035738625679219671817690738698509969777579975956159491403662342426136374892599211545448011734230398282579972084532497152015747666725436039545306802482430589666259791636924310743650005823928252032095241671801825039133414103415282187225129350404924840960893946267520517002444614421271485256509020581842075072086953446783644243601479483373845336454025107220797645402552531947098615027327471488765184333239646515887519167808383242483468447295850773577550839454915419331701127615577291163892046079373051221449906992400165345879393260949757026606443406633797440819757574701069894348722213135941635695077118686378849260989608356197210631114013952714414757940670144163635142005342049281667099028595358278290675476846764412416704206113553693324329227953656181070548209499536698549730023050123301852010742059424899087683631799416867641763068564787062060525846485960000845105567361174057281959555029110352044865650589090402799862446477260178196657466930709355308881199309721185994225161606265677416126406190668242772723156712779133707556796105303128205271445817379323438643226465564646802114599495179554669231175151028230070479949071942855649834164191675960804587607112938803203367863831091302371738577313425466259972634330613116723523636600673246009092039129263448970013772337187714642633719730359261185234755139728121256259554007156673013960365159950707837802998047500365326182370347601878319272509240344000020269171036313715969653348831558384323409327357552035929982255079561556096637529839786915820358409402607179017569592506175194745971169620345426916582770819087763077365139888205231384221647689263490043191161534318032482440948287382843185819301496772375718506802129588189471647377993447110033355410052075405883695723192497450853418802392343444402792254584806237887736636272861726496726399418524582699163565663736093263757835902636052479163750107311593320763109591851949420881773157524192752899928688673262257034851340413270095741263921895679293266299838331244601516449543374727510582662727920058483681180406466199169027425019171252686118457349879606692368733681624134518813595001608564871176337193438305490574679580240434631040839666997998179300326037427696479315508149404922068092623875554797811495403405624296886413620060217056207527677840377622464992647076516221439391406999100779673456975442744846430364063829321683393206069633008154686691661577569721205374401332881971670922447002062560734108825081127577225067857011410437735053316402932102714665526871998534968584218582604784472104087054100153017223335895589736139908200028024712593851689573744630662603665993329233379651296830804106398101551140761452799448128178936393001318661152913294279849870546570087142498226826353618995898691961135745693433384559189133352801040002709817119531749915759985639675313191209709273363619230297678899703068070715429562695032541348615118405892480089171302991882016789100561923453059221906518254924210468458474630951850500374297053145134788865156860174974368154795190508598414437426598078036451765795647007624294459870186830258642568006819786534858522439202400482473477713664579020729920240533209870520465190199775194171028440743088335480237332313629568726486650581105712558937171193936671075802644979413438434523792336343100645954425733952079204808333709004715467796727647884180815418260991603686056420591758761184432391111962118065736572836253226751607811409436980082245150091827995541904426076487015061873198678970257569958628455427266201777850810942144695127125787045207172156889713773710925586202061443467161039457497862859267970263736726548218526871094172623780570782589376806804274614988449609933183751401382866486906494451830364684228991011522341310625404106399248584828603697055899382206100008213975525935820452301013155187425813639990421230096092562731889360802095441539686334104675656319090933801401311739991280739856896258284908996986309909641316890675644824837998715994269712990643817466733604199791553384749866468826899007937347259698290316045125384406449499017250130121980918850805326117824641476114607667127917915377462459861237003766807538237089329126063067518222327031198758598582052698434954155241463023734733489144479559704650747890994379912061623722667832555538959316409860114762173308899588278751324366311200592543355431292027964943877306143739316907674685629947564337357099000766232904042400029693772397187114798225643515252463784131053503665326596516563010812131919198191140211480440511714228462817787252559124994219485995828498847750329187241285235829411359950571392753362658852080129348925567862084079924255049660090400606968348459785541713283255645740908245740029114084451744409091594765537169906577210281508196744886333035625212420103859423725711396170503093144402523405361763037278910321999495006404128224642936667468622393801853674025232897373804501271614453859921065467022027566730257603988787454650334418987006071157413424421334161987649972520773859629659945003750295811325312066295828493281245671776409287664149540245356471410734157369410308596564031243653235663699963191665216018383505956760431555958126145147713436083663264634033161203509534055063445134097173726058880478191548752876162142384741908646086415628724713364328923602048687052048013624671400753807506046288896573964202337549114722363322704134023828686732749038464293867896667482933902957732845473085566008094758367425684575135560264858770198405112791464837907262334258198143825100130861937976991543422166410337447415555001950225782316572652834938072446808714767617647186366036584382947425176423325463023888887193904900572576227613776084373583097390273120978426268290222339346077283974181006965913255929185801339828655102797857313384790464297145493585683980861220549544379756811434235561348622835284138019068180992902737804289547724320256510180584344799805091110951916823634097592297272901005226870852207294759687885162261092902327442206727807093419759268147483648544808417847909768005027029502976001690770203629030799324429134953940165522593003079756206050746011452484983069290500992923918342277369093984846222735175344378985069169328998221321849455430572119452616767023746808871870375927194107580433188948332263982168968997749603832788393859644867374014222641155873649324275200411456088612077788890716465481629167618319676022156343725426078730076172466820791296622085106514903124346842558382037364237834730023417598378280774476860624531205087380767732228071164969702632088000301580206507794204977674685255825716503605098028444854098287965428201372653964758132979636745747349393269325238991354608612827048059917415090683856551953767140288410170173049396372509038995439946186052324914368318207296641313503651159259073653067676431945796286356679164345549643577634247310165057805042988385210658328736622376138090897504351781979395337341057068708349962148826798310530828485931160581365752222285251600610972667156066643195114770918816094910842519129228536767207883029710159591293975469075596219503390143256834075733702594131914544397367490905676670089683282789268110898119462999627223808829199920376099642287436373247568140227770304004934963142221220041431979752959383178538731063516871237419538470669923149529209778829168088723668436366810493782513681625573496650838597321998667748038164870791096826168126708699184695152203129277610882646714071160392609712448496028956005955538707695948331538564076322889173050044706854749106660897343256425905827876946065516658790007945750938267099480891893941995709631674615393830661923343893540042421246384908100789395128476817042139257904543082310558807396247261092385923546671039866068730959124833912066960849565755736331932456981266037901800076529768148209961304915844166427585088361703254564417254918175141063979175769325617698794898001856105224742472185488305694129606202100436798672082098172269903792971337805056228594867743986671847923105529532007320585734044130380317891373863749106442940225450465593074352907460384130409090896763054287517206796072561990767364512547199840469559477119880984014260194738307112248282874710313005221994896015208330924146970947326326393251089182258080809067529906183588125119956213076873086293927290212145725606565444912127128548679073328244454159217159125467866742286780985715191596441621185641086945466013152084247375046953957750650287915323131180322655429995658472997881738753201320331567824290276565535915103171016423939762309594663740948632716534800360238216798692391686157072929660720328221036392229857795384382115761550029841774725394309854495296910752922722839757260468585965183154758479115275374838207519144031508565843757295714504187983501120131002251522891621124169520254039887502281360369235990644091996688520639665631207653789117708938757584974619025563367235532305151342492830104588061781012930983004005307534345286054314888391671112115066367848132026882759112204500062798457389450794333507482784815189947741532518846968215774287066358943151123779018260965684562896630872462996993573749671754745130849235882138029248198301972072057740985076472763092005032400802190803108229041945939745530630872069869317497268603680642398413198676102482861838709504276624004552172043627276558082862932514470105467273947101225604645278687416343179611274971075022973515212327128443773160122861699031585840002638583984818285684379234100349348023959623404133041891592785484886590064166843165317466210637996639812833209772581924141713279972218378911140866349899442400929236618337367965492151377579202477618585459723438579753040619396238793760744723190364666948656425247284188704281056241272857993258260737467209798727418516950232834407500950366233016168387060164723899208386577655769816146874370494307714988297376599585814463048123199865653112907939222527967088821072705435194476159979164612286995097383134368648813336718578026554738213021064497605462659873598685604206557276694178102010534448895027799226623071557731386463425134504978437035104544751269329241815829205279457242348165841504303003598051573962070919311167953560254627981045527410680173688865569781529461093425671256686533456431987456574886667716488858194256630629824013781676572571440035903801820330169475117741339380808306117986393861769298529744252482853771363900816879502145474540345378377010871206167126625687356390484331883387166710635918617370441324596420743589137421032602951350431711207904711071913553807497721573495410127023604532196696167844259028706897131290947373135806119274141825084840037573577625393476935790306979118777278716480219401938644367286898018690009122338219768744452368276046511471150664327167534302651153326166812900011450292117456790961327043088164219577319444732282553853883833225135130248699153523939856628372268491091220118988265001113808784938507886948894115085992614001390227893596797502977522592493340881746126545286126053161977386142721108562251685759600479242799575342199137817127133653031466765527478537403963857924557187155282134798476945403059878408496808387542866486391904490301202341509476294283400727096046036470365149695413880243029877330575305524336475399331702450992326310827284364820676582308592125978468086587608011854450863323537593617249648394861293341036830601458111576223077384758079130658503609637905020320028477693460580619833752865554688279161204877740113182438048024966636409658916310634790314028551410654716680972128947930180750884428895174863794125557485819187366479977280931226064689089745297192041939438424928866848875209006330829785823016943780656885171186325529857419233215971258280706032195943040955813096841265132064481810266511254781742217364007423304974020869887572340775905232661798448229737343950542146472951721040440797748204405554153615970815553990388416394550642724304993436541203435337808668742018362044860379180828419291910097027528865163964918068811795736541211999895061763256252160055936335659227884725628472337947121976962790294154677325763963850487200217661572371228017675963950461119991958568053622846721146182924027216190614839810724430551667847327207893838535737469061400145729961619051273657905894691493007049004571018914289897832023720265397930641621923650170608745680678107641294289977099239332040992198900938253137034278926097883790551711653862534172779002808421153192978097515308398882215936537521463605512555118998718083865980605759539031363428071586030124921908096602925136391502288247312542060949067874317991874580052555640071940185080278778027544694354685747802377846895554169999245783810126516467778652927868890858727645960517961350707538336774684411389142909773420596271047067041370281372073855652890648890094710696619244154718713745864914200163746801310563905612849798231732578619459461640486799857105877733188575901188982345385741509647772196041151795998707969608338504344445147038471335023723718219426045482961123226415911262278561517021690762724206262064712004158676544067287767598564274982742742585792481187553875614379005179507046247758006433293923461757633447946485550374663972146998084261692600397803844041856825808159472199341658115068320316567532294190943888783741367352937656991632950965370772181578958036933545142269615533510052360330985109748052515769288137838428371425749377545739496801235321114958807459421273502781062948983524776153847859398661576186833325583267207659288148126903372678843228689227585101743966964280861942171634941114745260403495352924087069151104334959929737828680699048374095753556789965147413399444577121552228304619301942834439017022333472553183442053707330079874043056588318892836761604165496835070315223280172277539275963261761604362053693548314624988417571361995937414574730429540356974559176284092072317775754228518583292837363336290936208806489440104114476711288363468127350055284420321422177736239572680063667260706096668215552346066379281539376754452060440317607728578556934088867296205271885195067385971353487390382216150807059036184037822604492689243634150885992212871808668625324144844956109404136460839008706503552320543546516852569242948964789259874096892420715056150583563840904416649785861195769275559164893399202343173078510873991941219791160642921590501514866117295784142738390410855216390507386104839037644157966215872977184528371944367616886380715505390779022320039433184945136633334467588927415764283933134952060452104072803230743269575890679691616788910548792121061288720708290742049700006186541610307856717897032150720791384513558535319850796941049969906341622203495898849893157571101099982135981566577255484916862382904660970853801540464141379878569884075510971701834525037579050645399387402319686602093776415410901049924931328444099159520258293954884107734677986062209938509963452660743952651655987643097058325232576699229564288082092813528734973049710117707538923013392607573428157557055668340911295335237002739145910262391228897552621727642556618832665975970341347663924090810824032572535971585930957518868793406029092671234891707600958124023870538347074455312246310787715507298429079629064002650452860757781393745878096203967363275600746386583538055561466385525236551323270408186416133254309222587713749488295808080645076887298046291857786965027942642100368185614860159277881418471746896164436397767365125845641536119852182653736529823277829654074954161370797154515992558499707977278357365927643297110369942819662871219824229215637233703167213467798846994795545124007728649610259328400093454789021234573429789390927370183632697322396708900387081192253661454402274389108932246466644291402116957526769627192438661238476171729699768211445214454401810747614482003233718148527524406144561097223213061537178748051440953087855754307059103591814361246972569248662257519114067997023265672004741992088204856994121451414749461635148847281643157719038923063645197123493239374167759909122152754323308080459523082441275685457950432646419827539747686536895815024905710190735340223305025843051436576380818758586411575901074945367786164221242242671206509779130842148614694204470291328242598626190999392270520807655924329856064358415754613735695642786388048764820519487833772115843179445567854152584172246480392064205191081817591965984900239569544694414666637784237757348002337402046249161322909319365007631196997607925690682860591945716431159669188713660858816848926751877973982518631716207811678350135345031086196392187956108466852606371911871419048136224182677509527265993892338181727096085675738584648521130139948058424381849201718273072017229421529142891742350905976423276759517041796319066829328766003136573402798225125102950704746847068481328380636137816178375415965690272970874103702905729157064298885438937265987928971889505770075649327946115390204496022850851048140487073621542624356244626260118138584379605909018560534264431584140335556816723125717345054759232859819198695731414156571509047232268640490030012237753122637435961391248034135020773667245263881750296538805817588927271973430949813768987058707018087833236216861830366766592651803870684462788137289838599141656055283829968003031758699169046101195527368072065760233004045992169229107368350526413437475244980583615507556129073058655057379658311974263481070743905627151785241829460198108537813724270691172510593155059115250069932401577279868313939351689801505616961451160871574941258180263598241130525389840782793603342024966191348472864180592284804361136175883649012146742109818621012717521588777902083253270972981385592050023365659977281548207921044559319656250081404968785434176830976584231158715019500649349850736223051459298553200532773765254549032256216317562700225907249780001078175475306284867530224177237554162200339432402702923450792458059669721696725141323914835203264465699616605294585593058277729864258083424332141457889823885188088127368339543088715844753678923610769157851161087872442705734956768926596346615766704896855584613127615795291524594662565025661875110486438644627397217772347808621871066488574593245983012048321698277408270781059037370510501726902443542256313655644156242726385041692360623084794858194588754893005241268736156219210942810621936803288285284083833156528172584961899781339746126247201805038591366205462043484072591785700931332345303201039004850276422439505780109577606908040473868012392522406930026232309747846466088937206751288642601368903080182895057138322801946404809888959563532233674277728069289739905490162824191251853154610530648694798800668301142558537735012396331131186413917470010591404376039992095437740419065749397696747759832802328034420481525365405260515704599170653714028197634804478298353550039329918311103696010716055905369930667779361559949462915327556276795462413178851852923992460236396565338171261044059561639220887253605522800457940090957292971536082358927219159645482772786956239399294038158099274896473932077203616448869043654197860785095692138632327770436719619241075270738384107419911026112652850241706727669920022848869322639171098755024734756710719904125473544087663273856748316955456269165436270622997696584982591403840162962598882820841969401566349945692580609294375669305183433884509807200551304232084120739846663549532129204451449545902869995148420379576885010373082699701003207864637658512572607536791611218563802362399855441675867325650325944322913329204081781831436269047985407674159389435749960344428744979896112503586347698173908541195822846946174189253866949238877187846486962314322104527793887538944547914501583826568583323370110051314116858358836009039617487317209124367391960694565586952893023529453743871506315197396969736207116809558122052837896450490648212353111628434668089762040408306263863285357617278133698417693809772239013622052430171383708042556873181825685980919364554797063056062315908952979963387834121608199900120971414749742078023447389873305807393579810122563576583261331174513022625787593406245736608161915908624309325393951702033882861206425591373041553145301452587423084412050982386195040069381831665502477546840949605417713846198963979431891885454738168596771438318978256742818621685907461095230901909876025320658269098810047908306452167266152837679801090609211465890391100493622388675014930810746952635155348422614078895744034065318097009955724198934478383115893773825110367681446927464135096635283807540251162478805789145939213159741887268289973060589151138803046405249231676158103490118670628569171061917996541357509794447162345079873427573478836651602915786731496696004206508501574312464994091100874381374751190720628249263502260853722714827121479163439221887466699635006391256024127315608114481970434509544339327059619204071719019731352825693874488805259530246435838714718378812071012521412849044596952391464940240188252839969771898856220074697123614062978031175205964934895155659349845585329767335939961260785323102770581238619802278773048391913024800479333110813589136329931363432443969851583307253493905188441451202844478687260116652193787786616599087842537742198850962016536099798631374750788199678592042446496281995704029530891016363700609279117490485934190787717450066875147902441258797948935879307041946514110081721441107335271108931606271043346470887189249521746273862853791560972387186444458248878780161067781154507320422010226543202896228276508905008308443012249120251368859750815918970580062004937628333594348206258961109645328264097005958284554333415144891758556188884620033631023323270734608150274129938164574276194519395779499053724837938322674448741838053175992376313481896344250243570911047852998671269017733143567921221653318433866883527149817950362213162081180862311096704026694992951640069178333089048406086635174984613291862792821130827416864569769142756597774113795681384645825997662778729346585072568808972099749464117001687083882651297400467969754936982821376551362439396714713351860318823597172446132358622735144160485327377260009750395585626158519264869677904518468586570387521951414778740987269139137571218251713366702261188883710036025464316864794397175152373189754160370404276286881564545286654997089200309523876619870805550822600113249572439904084763274058426390351491215407063426696684518808815580852499700908060212666451020632527139961313627685378552695915076236862526962342966426543930459352997326671695937387091049937462615390744182274502559316188752733655871330309091401578213289043135359907360700960471934880528298075841527153852835254214647695345010809073524251836560393181934774848882959277872287648148906672135065730902035870204624901149279014506034700839226174405859511228610013514373619770403967590262447943653117838259765730149146631815424941504788151427859403034667446129812216985286190951503926724292379859189324137272024828659012037030000490588758610119951838939694666645353744550636764738655274057025101905204671238320391434124471165544847516548192329109020543266382786505047285734314057484397964352462488490968268366111220277444437122188182534114593931999727540182780751412920482506276175173285165854416774903797937485092085896710866125114745095893740381455124687858855615352558249802369113919918196649475423433289045277643684723350440155316947290115428906818162844507235867658388488125614570568449357011763558051931814034328940584024177379193949052792727054247700866312941198743584381433355248449321121448931119998964028892332967814840389180012849912017908908902537567594430065013406620591763496951003880992610296044159847675555865714395281375295206932586857042619357132744771983340048440064941581315593678446179655044623996778062590339362583906203803169738483347661100745949756106118717333168565771362387721228320754026281982802384770552827136899504645050863804460390925255298820588058703881898365447411645180287121772199961144405298350174251027554266704433281725687090442341089829829562261989411236819076507217359700264251802632276866426646909285264926340804825214266046072232838189961441915268952079846118049986076013276276063063516392252203178482684257640922749726030941911188716283713222329194991475624154392990508506722807302774431263101127040692245185797613085238490271593495043743347641723686701039763179973809560559318344937474192383758146980108655412795853363362346246640402843319481621198634931555901409699908163365015768389521249846924785249969344673367337493544061553825000646380457320900322565055734074508551147010869832204392565095362781921534897924787078477430303277514541065266399041480585496936827885092289709817502801459772697598266644820324214541509793510133458583100604356919140995955375069338485880078038570334437178865741157787418592155337579680149421566224822825450394537978214685669819179892167011489299285246384565729964843487494893174890367999115086252504624778728593799258506537028140136001926354585542676924731106476007597274434241894562956377935317714528778450850014652820712128361880188844093300026972544675593960101822534801359385568636352773454571597022837205789775459757375355851930167183913939188249570097031796246486219106799231914390396987383967409256859638196439659684988810133165836369627960888348208996866032916892257373044505944382865996221200102711657391871104218280955923334260684039217524224122595450904825961202689798228174564766855187916623731371135083144696769362963043680787153376849213404496388178774545059192127895843357075591639542904976291114216478894300746534115217587859419469704328926278620442474979488913719324288833510564760405381520665880757042823462349329679292856984955722432190158585922619587180531440058346972774534411999772985992649050030062385347711998987360426732787291957765528153005341766429946447658306382373815204305622263201830164675631050144127032098627824659945657824959639508169302119564105132402643688629185729850987164093169628023318402378455096703703799142271963523087997390025645060861283205156138233381683351397622401453961088545794453608091057006240343432077930789453878915905350264217156455074687789739831759515479300209086888950805078052157180244633832226659022827467340236859697071542799866442163339351834279356058847974588935450463981130183543095163097939960731741950394627274930202100868162035075016192646958442555020526764111347194166250351931375291109743273247559469918323359466118516744405761679302764425280534878511471880858655004435545312070089988553114711521756704213509223700197612396682738714509995772124803344444673950677741588563416096924705399159383582212351444192994802799016912542376254828958002180390124241821413650552966591954395903741605535247162276201703064019502937539125455763196857576998219658280937084181963019674173386169298642572051152435342133340282250559696551803345228861559787828995962558433560732293548085984456842554032332130024255356005454415541287937997383413011066479980562811030562984604502890687974157499214151066027259877216302028682691883727350062485933984051427738658954220304187826370294623548828567738613582523594925016666959686073136888879351382852033201529951396686871053846077880868644338889006032071589718270056282599481080084362024071369723742032879005089740873117801674822849276302601752815911825299618096407990810123327364600384715360226694588567684103524606461726523177265520276227526200910523055983308450131678972365311748636661852587987929767416443832261811196996189265088980561061044795682180443613765050063515915027936884296188560530535872201817878741413285469082348193255967680657426173241387593240746230118145114408644991596875587470968272469487203904343664433417313493070863126761199962922211636680355576707370975972621158154042985216608922598631239230949472218498183542630438385347406612094173494940420132590441595070265365581542947925041346534539783684558289423754145968223460058727673809429837965581912985361858708095662001324796990745334477687039540741755782578373390383997172344155412726829244662689351748813975429408559220849756207330283375992104951159794914550128111325685567490665545952632052205280610070758200779598018209737729491938680642214882827472046774486658792085291025977937540367118733343697965382494079820664968692649055642200497281670183828249356950127157554061890822195268182199649996200760113746319066221291518212695196040171500886800147552906513578425832172243379171096811324332755537631081786857569542148960820322513672045327196837295843314893660724113622037743401173882964470566619545298519481045259155067297933535401424640141209656743994772865563185398921175730796446092132556442415426782273609189190697054499446850006992645527797363264066602264344230044644608371381333298537287947985811724052750435813687219797833999259061545449298734805902414574638326044648331441440776607386980336930459864217999731916133256675412817945079073252450904441863301873636654024830592523197976161898304450793939370495053248610256379356761134835043093562196917140802425212558990828045661431326888111385463770917760776052691784561228821184944977019136164734024801420936228525933137495005264133549826867270634778528567927555223593638734469004510963211110431301349091088992826275152992839167410009274622680369701497895442660100239913598325522178069207133318016597470866448145171757385560206302204267942088702556755950502280052855351860462186092702885543631888653190790439295877017375305205866773929335371835660035853975137066525798857613389869555483389295879437211824616487587524523776738297238560059588782338468239902793875384082643079306661168895802978861393643329394701114003097888351817420322568671298336477670997412860749206524866791554959123413160853650745751982730482030079711488584630131407663088564389330904669237710623210472620167667892592659405330434276549408283548581426076690974304656328563106705943992926330129078709885145830239676764115097113921589964211550285603945709286977974435283826574509991099225442138931243478713475552240620086559459631385648169845511833997091569578435371859382856433980431213529425541408836461414044458628447913740642980001902247151628442397919813220755289415671447480969381260489492700144783623638853993270685710849417908055760813444997941065470415028306977641074539686889583369141142913039449315825312227088668606467305958041194623422137763337310591045090971692921450213799963872953870581384143078440437558807376008541932690735754084708400145223951395856304038959898253725412803123080565201822002314702829838861376104105390707795292171425198269991970265891016929298561637525969691900576613290456794401302412240681294184517381871382445675446960495944084237798804718512413704789346026286090325607874171328293113722950007947579197649276439319539010910161823520399841369387922922339941083676838109969412770405912304370025214086770115141246799532270104393459817477367733407255114962147755597233860648839585646804406290678612047223250880187772252411801633109039277937651261987617412432532227726360090295984786168627489109570508225198616567248934265831056036944217968597236189937756150179303977112952579312551350002599474662376288581645713749105296652140931307319826532646301226143577275116645163831766730940794532681784295942093403660859127092905095450592647218311812671381955020523494261769639830226820084943640619962737617041923819496757211605554117346171790513494265214285374788688911098676639835534596066331882454774144594825642128420455923788914028481134793825798642747680322730023124243351213779326696144012011593434598047933207117427174266977560766552271582819890384324785941013172012968363743130964726888024218831220086254408995374668771574070291629840900225142047144988805074243031634664733730233163538481786743968717333977538654530593690878017908791902466059181455419024283858738057444949089972715555726522885471209931353642937615816239622875983571566135282150573078556076131156261475750717411924744936352179691913946175114764060568750604139420788046404322110733744920991351079293524527772596182409290415952559126466902115577028593372269447494887476594595938622859510426199331635544616845669936987710588203471064492315989478207182539751159422527608611529340740514755887421526224846256403839437178391291645729078548405307138501078778916768537916689053965715228757042584007041150065087251214376686774755698294449653683774531190352455692403041414244866460950007232025837973767255975623044063779004562322107222648913526236909973117728302177951717350157687256025924362934537380255671014963549479169100185142690870862024413184213592993266061916927153516069546364035052735199201640476776861117623967584741139660564004533079892495485288474283779889775134825168756278068122254592841036105905142153161417087181485617588889805617064800859380106601391176489715566527528695547779089067243179046232525498651503202224498711693647114069573993661144968153219170717517866196750185353373577321320550194586777020781904526138558352424030245484301750266110345841856833420536826932976691628799625905385441183495800449553282694310885740759296457938392314273296155243627313088385263599635905830147059765289780177940518973456288949534768768157104884964171110579957242630667475472758559972474442887902880295648854926206327660451405435575934584280523999842612352443777500095288558333495585246395076507599378594001370063146854458301070262005778936244821305432544699495346199068508669693198560709480904263178254982313711669549009453467070752861190309540457253164438031372399437820540968671774685443528190757582298673936965168579037194942845028349732192917120587352899325874751322539434202052523466849643381469635252185075729898340527242746957733973462153267397174953125415552593770670895964329287572688011748332991080216638092595557133422349757345202669570262553204367300842673233011765482476045919113727241150863796505254846818674977638296183842081637349737469027604278451828345024790641571204781383421055789213223490004709903871643452039147692790862028535727792700433389186168882843238320529537461633280991404414069978375706380785167483724516706773529982254738146274849344675938223302589810971235024666931587966551376934482247612263357982237439291909446064011351828460391784220265397155091169865226159001130110731468330381342489028919481735394472780735025305834782374356935879359394963209669285048155796417974743065172193487244078324541268060052246257726023041254472764807684783931566299702266894198547986126943749686400538042402613155935327695741587817528097326894677876566583368863741756033953647598918812424210599182446193907502737147997060124770538756974962303783153141142180990917596359522361114923438602640503256931214638277359234495749803183827867648603292231547312111062438638583524141524472884128165442486424202193556290326850524638988487074672216824846263705841582574910338391399521292100727053752194031444586677020556299355565628534977305077900464841170336631956230529290281060262348276768514673855810852066390811402676510109489490027841934715861826056035939780391093027198134031630622945727838969901418566183916386609780409891446106358940021631766704512161515782884765863697165762989234098338733460608304827183814373096533432596879123566747374143429284819032608106438688646259834025530224316820316061419420549224043913893006454310991289092891716792528717861599235165470168098197266249805583513483956115622796704395894866500247822791437283302995592823111210076276640735342684688386605587650090433002377694894147753864628248119910340797423006159405224189032898865937626701407331984425950809910862056574876604205262758057397965475941103702215552617772451639149740228930511025723977050892895523729002983457822216002105826812886958373087130172438757595123553842114518389481563522196651470430279029455117094041760776434522817218555474294493995170050663833563465237385274605368555502829736074174713380795843959511477818509341645075584726355214874147160747476522628843313402345903836830139641904658882530473935433861875336814408437774343740664165139878754386720872166136498620407493636771029950610433051943947092189937899112326115074746517245782191694523604499660210013415895110049413918174630472320860333448740498208219421553790832705400412105115727807053726871649794477892047071654857474363167579167099944432791064671978534305571952426602609364854398601040668817265819075381381975288281165873557999511868070568814515964529583915806513494046689771211763514062206781199854856981755129634069221571549180506910586559002920526029083620269362615521128424934034185853374259362421271197118161651411712669407158675385430017906385186344224334826537095402648936488795854707579420800573097868640812647853279849268815228103278504464570560116763921668325148886768085185487464701444015736422966169817128001697027421717393395383124393738776120160441568095152730533797263580297018233354313786964089064328239619742734980446503438856522381778638130807913004997999966203784775997284598760904338545694289127694432521266949613290825810727381038052437273608652703355984500347315520739834436340885565473122520393828392793758540436284528763664865961961505536909030613440077373672053126000055126887197216766377572987667580994965570807342010772412469928226427660358057988932402804250551934109922479962294487066405038826919977323342135085715919236078179697351433453625288495538513923790281852970070302779621729780734280848703345157549071889270086779116156531464690583302051494895805412772127884008411856817963656601223176940531429058612810742453120714167100220144288118933985371112965319413771061521994960349294976775925003527468193912148074900066856967263544819639393444252601049723588433762668406715376670064982413837534747290580268001161088166028033038388128686507061693343843540599913873014916756152991878448112245351094466750400797633415341422183383172341374791355596772766717958405981803988081544580779597200303630572269120481451526701078842263882307190530872461148522706261209190182315316836233573897951905152425535327683483140850514229684769580564253923547041624928698613576726589601290425788534336234626491625225863389825859977587120853797358645267958531682058448636156851171651341584755182534616583572513960570782608277394761671210341007520042902009833916601375773132975820292953416594067812122519110335783684806096620619253059588623592977005372262546460346853198262184659786713054481211903974377876953061429494145913696127174124261376909598212494096143963581687341556855270349613178222451083712813420931708931554375285591473154924924458284827364325046748020459002177246257290960821179702146359645666081192043081965677594998731467189494998739378394361514661663466494093526266755292286563347023930168008601814713267592498323121488820281628191723116957151326546040167502029601162177352171868760568803753748533342162224352135423826091273424094093722085740216616817597937782876727150807022453135003641498771003692757003668714732684179881636176269898911779185224273329144063110440176961271652579146976881987736339871827914317789920201086714076125163748078078568834736194972407701676925171815498223322642860649627160675072283715715225909015830247468716681586207144240480248365603209483864894364383580782594277912968825520682889202590778277213641516794332573885705316221157200564213047581869885055234237357259704384075402868419315267382103521001712557796129055944665597375701439999090012576596069088056069551477228517773754940527725924533120408085422248446502962782108948618909140815951336603226456066223511553752735670703057206363466835638859333554586796270362417595009698649206111430223035711795229211198042352371804310314696905723619558456230981766927271538793756814115654692312916806300683415464588518872530892637395148700143220521889495538679669347232832347346118348989572045960402337872075599865565787313220063344826009940465500796697420190742132951819512214693696034526769334104928612419375941920115952636885880731250219729548175539298126470680697448872342920682152179795816438779341998443440882573430318982022830013180684556491928647901490208509436892838852930985987678072647073292473377589311345975895379603125891450454576684893343240382158531963850546792703449662125585677411294871154033678997684693639748510651262155026653244907275394673679675305711128587541152039787472203847372781817661245551708870421804566229741864986826413451095647266668066240352576482688459186998961229209903517738714803844277239178383307397496932927274552599268411916898033069392126431131889439822383745430598734712343432519692108421405125701346409258094866812369919937678320895132852800921820492414409860725117925465050641840036241584281927446488677067851303635223589213447293491159950652494626753876152094537852922096890100801998404078515555584519741746717558098583594073007825140275155307829313765841568483845273249653910534769225744068987357034765474235334993182606634608231064575034043102150429429833424184499665691721426742489950206379305550024400665202935796918221816383080001051361895619246760717056420212328620159880531579026757989726083340890250923075060202879405659174703734836966897103025520532047942583694847084187669831123877529045553359401260272907646201147083842590727894389999576319302981102466991242948238550387866955283048789873683424605064598017039629340250686917591070201189792019193174398139067344229179587121372589103206037768564374415555469959902966865915565998218051295638043081003063079988021106866128508467225196184845864194688760380831100971594121962430068908130391169790362742667000196615458996140045859067667434570484204908811189858348565509761773757313154029882790626674593638847995126856376950981133838138715879865478906064269077250285487705859858587557588940190197848325767607245854183275097449109986315408018297748563923239638706127081797655862277892579510905571374639503613623414038989209720603928254921909368563293850539473428731493362742840020823675318672770373588306136773321105580090483852693453039961981706693869119637112832217746937554222572312160557002125530906137395254322538660640197461123079992120101534382039892840201492792788276220577383937199367747126832633265370725963744710321499207802028747359760972406943089998678053772214772203171475165284000162850272139562431257080212601457958910933004719157062572649524499385277134133169903613538438548963942822830053828049821333459150125571607190981678696056683484917457005299595130576305789859011380830377706097397706541961878774022427613904107978814567987435978059520996969429623356718578007833826893943336293883196853650082427090804531186705973476949861901771367124878042939601962842000751399928402006614567197828912120515520797459562474834588577319933955708952635578169747394669062237543033184157783954045863162409277492564398229072812754161684339160366910572658232588002139620430587651963239801129476395672146219817850910835901085677612017926397611201646040766671426670790789121313874668544866422106932060444950750628739290601104949425591501306715313623142820645857822239550253172713512120723883351596208167874823222050917681671970732695082868651396890083150800362232988369774941770215231020463325757875821120167900318021520015088457970184593306212642027888997901154152675202053645498476298342275926679237210598695344641258507688054998537095324912511542458496327382624186278746910852244554749771209932495155690783042865082049271756970070577550370541729799932612012544148838747072314224246716222763005791241961958368525660703367652117682833767312008493838866837861782473847977098501921881625093196998912925847201748762535269392356759483013466591985524244330777453779824597483483671003677834000281978094756891393154866818172553497992156410928680952841697029020763215230510058778322693437078664873917875832209274816391424483552581136716572302129607833306032498426583210542400284068238499706431773708583308382586698685135861907602012190763582413263819805043938857601969922878106822645314144875974375028621487035006330715753362991977013726737610080411742817681241153750564357969765809619775655084692001793666997197276195615096381448110878578044177913337516129231806200725307183659845223675197843457875066361785007248610087127188553739549626193610951720379712442262503467430373208105723812868368707595708830874679331200343280776455818748942089117791960616662272958307140242292695384955289416571513737916650092460460392261532038200278774059926725577542231772513985130802798991756697656487452969551789636469398458807831923899135400254005826361257236814989255393349697207683465514423374844572415266244032639707206181124475728725751731380555158247321536617571956318604153842447089607976266033718824142306182942612703468926611483326498780893642298869301120025600489790308007698113265646378473803899708964352512494726724772588335594873172159848554089503409391371284081649266534135199592764973068152989687912773571868343448028955694397065109617265544619674367671679230139890802515880694161593381502357292704014687591732887496704455482380141133969999486652312236407631407306912842706231939977726692403257455376467049148662528899089680653965404465202963226950944204199484461397542341234155223880419816636443693317155660326479263798557069982422248446551137035544636510496906350414462445134664816190102257819690016640365878680636334034286542624791855315371685982714375387741105563538490268874460516217998293174777350715628746059610204951944974213660556731365809170444928645233578374926140593995725552313271155770879359503382919299983581584474101448268992711597486066756007135771185823348143445228559512377486265271674355618106239905078277214636422183297932942114190593789379578374987509307157425437766738964583323284465420476901841630903223943365894256442322953412838293777626871137465825706452592673218075921961534912219286934113126982871848989603964474263165523662042968561081041380882215883769406618188812951363792174317085600935542730860359811579545798187845521953732154570154145577174453688399239566354411927069427583741850104606663130248119999179899901951612045021035410449800592377527223153771251080135560334262262660774849375187738816967938431106445229863825585925449722662583211238181185528896833675798952620456208197164939041186754170769798516484726845991443803120955300056428559024070811764470751934675954588957603490764431886229975459895438630692073845842565215381066742018353053781794311026864858715751622448132715167630327561445656460565536267690827914027742879009695453365433005746184742344284748292631380860820138303185437454803949651771556952181926985357885722335661270345690448164256061078215271776595679369267361837363693387404041225547708833630973732700272110824243670034748561308720356880005342047732712925511625661706470436343008489555870221683748237834136006992958808600566602584884392268948470960558157106252553039921113080952331964137463721614636614378515370026229557637181494941310209406881208730026759435174542695059489050624789673463194081378274191332960648752777706394914593951032802357450093954821676818062819070588476968082515224760612625699291507319723807295683685695305545925817630441613160586467695559949544710263811378727514006013707385726601870481563053424946350970829121858686933490354308753083167627085605450036932184755865324991725540815323316523257016917681415047792432494956065175958766128628590500714172504387880254563839214999112741753437186962146607498033663472821710474422283542060419215672697934647892982991963594631051044848737036870268685348637680428695508798342852354740873831531152270357668284239598579179816620721731381629550581750156491790787997004214342975690357284881217036025924045322586890816731710153254209322583077736482034438558065024198867665000323173448650297273671078221781249702214919107566434503260904210648857037511186475247364715986158677712391061873672232180479507517280530485531908553611866958927659421511348752281248987815078275435233876704499509417140342011930900507586690142840944494259474614845424463173492752019301016852639575381957379861193036462767116412036435361104901983846238879717783267421598641371136592883603613122407963227829742076330590299158782146288339873465352138864233829360808594390206983637108103571977106598086205476914564666459708998727417702579183420885027686818535268760491579790894871476131112335497073750607407873396927489840900508896869175059560873240540222061569186511547729289110883753782304079759782386230966465651699215845823082264880589980661459309754528181174854692952559760376062944791128227427119499888437704891399975675668566467165622616388006375689586071730312006596413380781661443424331749236041584284412172935355095909353607046537694249770488557382749808099146995512909326657534456199521511604103432758749807424519995075725135871104815239411957414217022145057342486367475816793208817507882667310069723032808046500079747225484779379267725550305502973484436007536461196430052625698627416040144263272173639357563701139849755823433911230303295667924871994869119204458439955207778042624842650765346438537689545432393376318047794671584642437945714939122246647141530715403467439183052721105278084094972516938209229278185616579927740875515562488498213137894076813331816252501486994421417088392764820399346834441306142230726177211402722042917774230978065959903169453141765986284944179749474111321266626707883702786086340963602847540016543539444088352065364941315806490469030691563583544588359633115242211099329155661886936567934080274603442301898792738439370405865140834196864513406657251643250922152047766952186885372700711522754145588922881113349700235920638709172616047935979092777772666023768380929631017368502652166394384319159373222748491518244650746606749238279186987569123161652625323159629984269594914228680695832098593175998913551127669135189627615451387685342644938258149290590068764176874627041904280914844831116130753720173153647125753423878616549774269979761436117460583805329900602004718607249681232941366688776171963861940149488042701511756548333442073409046596516085229342163716425612343966561247105752952338186499115115013152335586557283186459461420301242080405199814953124015547767190163663703035841159314696864383399262937792021456409093066401039314855497988971384931591177137067634421871059693740307726640690049448645728452693536773921228903329306397032316816277514728808521073401614607694266400421882668866877680787104633620249808864667289699917807717041033697174022063620782447927769715020176706790797701163647292493870518118146262292791927545877247551825379623264104482021762913784233831759570893839367720008086032096148871371033991522006027099620045110072969636204253751698729002601841466280692465024092130089142023577182682884303037238101190893372431548119512547873694911443191075139766751111697454838827644342260819648207970111668648155984000851335075390710515258569785237705808205961418017534570268106399678272081953379940856663424185581320680915546512655288980861512612698147823768364162339655311062869698704699776852087720226398822859030779664939036876294163994160347676640713746909228900747898451759031073320882916355757938606054079226484249542389193673850063860971850422904566861041472643963798540966380909876587659777121872351841367053250893733817265613836243392759238139445931400435226433134114907486934826646751591889918365151612205022194466611107112434044065744621193007420413273407226070757473007955185864432922703346160813255504540845311956454079715914600257298373180901785632752930113963911740327479782471130378686927637286938443222098315991684974070965994524449958400020165369101571240024649277053475682663298312294823123810634982713725306564255663084556069520969168396056344674417530106352069999491158746478189669409936319100454531499106110760111211886673607524500053900630711941112932381139118371352021518336212182092218222945956431832515585219605764099780471003081527462148152664797733743422890059625492001091128793880877853793853389351291387007819066542222531882633671166946236150352678475775336564536569158567440914174348795031937617823594072410518309643499882648365470940715978371644222650139952805575472096875859006339857547278391559721409929827325311169913214850466777568199022500872139367231601340492090090265530882545032269306222503673296611266868455372793347789268117013998651431683685828535052776318502113310609612254911176331140037952984937126176429830791249761373013091760943203162634201122413789801611858846950562538629447706184435483950154026209077715527257044009413396432438669240512640421155556603157908306843974538397614072935234226694143768192811967955812646571562894985024220281795699648371031522867514628870517296147310497425331052399943835017560875505743315375021426909733097331996855127037666399812140367874610179552842423820995071450655397966999299240431164679480445149846232342169505802912717263615902601606765399972851512654761687905344565594162225649314058458673889353684971163495517028649393764261486935339311794227887059332806763056255308143812867022272143171179147542291400041067570141686605181920904712614014270414563863772137102815913376772071965983792018391966386728243601687068710578936341194050225443911831271521143159361645390521094486507073424786117731394619419762057546396285386726542670982087396597451840901111276136660477123560673694883717516631403832930033124511199298241469912917076697090211493961780612357228133539693157905100159360275645701515164910882442483754463231111743044538439464377525573776707046542459417020177863750917780752372450541047215605567172608553772424573837163608674405199373222696841580874590567188872233236972660751104971409656190725146655102787486973205019565315031365019626005633888258671436649381143552172813959773428975979419270376643299892643065428373819000885649275061556269226527744569541119042354024794445221221340040695245749049473590358187040506084602792698757129658259998665650994291923821651073653832958715597303555944366167942227158552686472165807767202802195848299554220466473817793088399609338458195385846344991289723318772430210055280187084479941472606818652255986312450126947335619687354360091559744169204076955971039657559276715992866532469456770465041758260976860477419956879611823274275820890041055484905324550151947461945408068480671376437978427941543151176089128093827762415279166287626522568584278989498770774745607129757215583552932565048970230609657370401502324728479898630236350212683135637011424634609920730807013563280440338194082873788751887072301678956789795084281743093730181089178441370648118829039580081901966207674693012456168792149826688815328235894535302152510709460557014597909309386980160627769423561719014330023242803828635208714770582637444669519136946245363522505418602376475058724792668243321201846590395189087545903294391428978540250367476524532206337064957531583354080624995845692487844481276527207134933960074595032941751763994425900026108232760423918525042286033715411483562659634658171120479361305885628968002751341522114087596334031126279276744862412420475065327519749807440508506567734978098997225865886813270715626116678073651437274517013662637527084207158868617224127525531885068824241798379747012759686185502068219277455768165790587509339947058885940855733491246342866601713622637443968774143895878941186299084953779005100725432859522711182420787702000642083961092314701795872640643167602983489944295353691576975352071578601075058374449223560575384055041879490288950743889101479903486157036022851948008725392929032816036357296870219561346628357502366985030959826564263554216151345447489844391522429626759618858851614373325968013888143395464108146893629903305851061280062444738815647705905506622914726152312159760193429477818019238990190579862146709235375825336308958788683949813493134513611540177094821460577279194127451041440033554161720123297239255339468509511899689247377078522041604400698775755888757167858869235395294571121019567099353187748857374657837259968454199312109597650484851866736179351894824535310835882722068087671521653386515426194185317067168167022284778537971635000879491340046420567457713202406774415813468515235197895320666639861126173861424215398171066399325581018662530333172170272401260891427696619656898243557989108327354450944480774088080687557154576941116030898125017879169536037604183383638584075985311173930553890118563774379691183573494451604263302884822881219606705469882550051635231547175120197250002601583995723153621613906488140422441941772443870826680136100309179791369833520329261921748611122598063607177677752644900790575624469300678297344320706436669041447881856450202144008843524625053643687648070359754823276361509711574338020702522829677967246047493036258084885146741998920178793235522830464323440801571484964707727453111863892059518918439823704391728877320901327781783719470407556558914212678512472173225140800352305764487979815507791182062104257397804821781374330628766788872850952610212315422437494533525195880960092943430540462955045797790261996359164011253124279827181877115660889302312494928398506314006570107474876831435175841178291139734391241504561247763234699139865786614500004473469695880507276859736644509722912116372473450385320304048441131892968601977352820893928647668559421635964682680266041641745167076059562972602240278196877151966950316445467631864000009933457204943645500426610146571313789690072386685465465756317545420123638126791125096069153138236486130644397716588758736757855977598847952046702018156287921264858571457881141868964969558645277471996540859740714585153348155621208547108655869883144232476131080526580254387945833625102876587725966661660759553546954224832514618579322378945020700581483728734270641763517767175463020218906168883919404606513771550969627227004656938170981759633699191015063100641339570960301620139000451965719961554727092272469418299379451075029379369123242324603997286304071395260671372828302663013849102310636945435258336385172851946075879720596673850244666446578011646922472401304802234243899667009283000109782619263675816943785907415684756368003092524607791412636812964587589367814031874808044071147793834094309796892552948705193810535293371338214768875665863649975611455926720013007454242585843804725500382040286291123745810434622372633836347521123893208017023026911679707487745733901349920884892605707665896944969947997305499643545206338129651040342101034620706447524017151745290033501666502010377333234031183175879324394512284014209870371379663515625321034142013244629014361699617066403704415525069141555811322840146540131745685449548493190765308679933979428949296430369996538488206521200260166027915097692712235924338417822732795776380232906361278423041174957274035026253285464665453412350821892959589738110714358524402418841640795201041234275286440661769155852804553120691251621423743840829987869228591913009873490256026917031086748229830639271539965012576774049861490684020205480463878665893391245243165936642831644754729280798123142610116596004568375591461947405269872964191956789533394768209703306985280142607339583201409783992553793193117129762868060496126641222054668033864287862346728204692060500476412988527025072915655862932720596239273389071209198275958859186791235289721548179600594930966916951914885729578399586797494260740870367646559645118946940365478903282493382959954401408247220289271503844600887416628549656990934326459332686198623606765696106943870243232877908128431615247516265845357322250605429274527530966665563149055616205626381960018072396388267484620390336801338730914572531614207652533030967311888173678817435039909383577062034648804031041878680564834051986888070963220870800859777102987640854323431746581513524115428311809012468467664836217706243967080365148139147751166611615437027251445942997504744046250235410411886208415311774050887022455253308817292452087925016505425766914948944045340177507959945910310056301583790036071763245827773356148616682629037552952119235455893203669931447552794600307766928731422706288646583128626510007496013508941024596689520834203573153680481233014778300387317208713227635969997531880823773261763287036123405297135395905756765290234872756127560512244949180270398521780936687867382956770582689990649806551321115606445853530381823576027973655991746285356512642321101949450663956648459075934121889289388547333844500387312577764319113451399171582106915572805809612183075879210617488915992048121295612546013224115739619180783501461503715714446897754907650166320633379299537490354426416280662014681812364925142490540609280539683499208778019699001227052187471538098169349185415982809745735532842038310329267940828453018491717793261704785460438925417998582565410498947557032719991983033922264151647357009418597221963030755465597091244815988266042950266038077635916649382532961401521280815450086596845503073861679712949300319799212588869035472587767800899470133560277531638796612032381224388709439128643399132654853035107665293844801340570686101004443776484926183761454169324600440235451500601634735248489774300283652048220970471380275223978811857480702871628499105190921174279564171576010260422289001448448601540251455485481666287957996929048322153526106699378598281520058852062953598066189074747803235370642133097149606072395159716674528486229380713108692605575923498101352070559008899685118037794963649173680176057882652879898930289496687926901136426463021985269863213936697710190787609933994116952176427117032204764905332283111640431200781566222327709882969684946887422702567640876132859615026801323747375677592003179130443142214612505834547834325055799749183285845217500527610995449181592403000684392445307864099235279185698774385132378746463897717798732152344113883787216335903470387322447472985409089649906849705885337914913918001599786308222337759326338584803795696553629699042210411814037600565381643591030578522491143995549093352879939741017638519217079535019853220951399062056278400187230345419114720576506539106694130837029755846025662690382404301601822489145124678281850565438694839194782692169879982397416884919448536257706954904293059534298087055872796734819662954909289959307163624604853927633457282443086039336917812438340356222448266308929513658473348698831258978803448789990140771978265444008148536122391212919132342847441773402620039623157875664015371233642954265411656326243714681693659922411302049370892678674373797490539525532288526216853373891680006347024424143367079691472779147923637351313638428955710943084299547259433280752053319239410371787225256007437451551860652630357301603299530151367381654552116988143731148557492261439429184736365554572188693181874401189343767233615534705208571902295354613323773393832530415289942835222330131275089777920149955718101198120708662440959017106226101908319074187404821851876837141313138014303384790386286278862925678502214505893422228972998596589500307569125840000578253533214635857171607134702824629672817288783377082110982763648523582930722908461843544173738738718548650050201999575493780303298667826746874484898711011638002837342785008751390644780667439228641185411120213160530344274623442716616179450486175473895950978976737833377339646437727169324146269738026468722300689310733752891619949067330409361645509139851557730945599299024947030207522193574212393903217755153350777100788279883893289563206827143008357206573777340335136865450527570789839919683362968975572068626133400156285216744019696567420129958534637158445320487073892148532519022370797756441449918709295435784993213007092163922038496694480161529705964737747137641178235670553504088504343809655749937773559602817090439829387381812127436770308461432991449417396674851030026982587607894884785163079799339877365396108298456114302528642640189335111657435338472710775820224633485685137304603245866317750128127955227474335716568588680295979856827340544237105407343775518528887129578585276214729373211495035112401738972763490474817842544414056494741872561625011176519151376823399409964380631611597700483017632243138804717841026555184754352057850426529532965876882628069693651601287144665317981860004125219558882482652517246065484043741260723428529451104184558831387322534563468456442446889945864358493155641237335201783711500133481850389620597534653412181764462796874563440391788592897631765633201401608414545479959522526657789984866081806715685808562913862207983071915025462749201069208083015505593809814198847829713692192891696259042258196371149954420900214768599951217654738963696742271755159662846648916994941302128273433701755540044329430327589488257463039829450243571296616256417620077432792871481040197545847846071356409752122529259232077956202991396427341228425102955876481500852978745659814190839568015673662763936201010165284905775974676675543042504109216214317884456020773850620525031342919774018140101368249864752677850143679210712924233641015592636524180418407686846842168565661139123681431588822648568162335931770965691284867550158365238538398795784372201073116616090161793206844039439677067353302784864922087600893289403713710317127933335095408579968643952951504464458324645297960347285403659046624852544140771593742191394724662621758505556819376777296949215085361046987853854481205635074148097890835369332843768896026262193528654425039118617779282412811294967678558099501377650189070346139670478209862833094653294721163122942487416954597460589501805412012785904455102905955544588725995852292025143756271611262127271486524609550474754535208639669568310891494727795301340167516807780905728575576145038992234929788990825739255026758830270119359457549648179080370942536692161582749836060320408810032295654457735158373560968643348740955807309839861121430143946041000279329414453061993526684779630389957831701125770011340194559665264108972161180914310643995435060300353093188163792032430697950624963489003764647091723329976350033009341890080741235513232383661234582987896611731167799778672315606748765157380462457980586187668506999454946732084922725293243312480603098104266159219854582581781755754863062394058242461013047789448906835445283137967854409336619833996755118015072883509004855500953880544499881080859715282752860461598546292248483598836284149586483555334070751739711926542131171698280180902071891883913722376472759959177535383494872230418091662886641971852821061016888584331688025446398037024375788279212064171791324141393130187883835343923734165634137187355041162145827445174265559828726651057620960968158022211543646078734486204960646292436238893890364924582892499472628203187136926338495708646306825926156359874709603567221246860297689468030273535173594338803569035999921323290142093217283440294075762820129700926099589681859369031424037619742371700596385656224528567936444111831197351555491317008784342920830147697034840100558154447865564407012151811018445007918372571090329070718939282466559373867364801006929142394571920479269370895050772019550801072678020180842706761399945058755863081111177759611833022705618464550290113214994415797583451484470897788549187897966491974550111798090223496911375890618464195805870123611878458348509294457939648558861014851459377414300083588155107959836408946083849453724049938744282822001125752037880870720245970932518289079909693630025910021447713204970832642840332923647511728731524026965762720009134912831342028697859893576156866572196072591431100297577893944198722833086194731662568018831221929118935095389893220602635032022712826719759739120536750501686964137105927123620934036796321656943106824991028618233003732482194116589282008615014064393036608846951141970349561755171408012421331686732519301036318851487679462928401415890008139791941554612909591860569735439388292557382795245291530296722600613786754871758244969654433002037092005557236413022373720234440194547940353815084155347028233540074297215305236004159233071836478441572016348126443193248016695512781829235678484193350660433817125858421817230646865367934763117953864171843270712840193389502164836543461459983458092132116884361102446494497809614428392284616316514592703454022175228600999492689100941210405656392711746289104567755320686464633770201510436792035969032979271813823047328684901117839419668347068212463784170778469679301901468522653375377596843411292814979108397704823621074221805132592713207547673410299594634871392240748552582588246687444529286294165646250516296259232017187796426501828391681259123595217904835401201090814481860159645966698208110402746493410104040031193189839167019562921679651484886238409925450340866777926712532009202040008629250400009354358939625614634928702671285552193926584136220722008256564604753039212784761237165400150164614268545648653406818220039690038505532966056518661450450501427952966977450809233824999760430830450301017720192981209115800760170803392918500803679268368469632243524515564990664785444822955450536434426689742297641566755709384753470530920474752543738876000664985992426438066997223576037939657148123680851540731148091767624505076330522512870636163774312759570944038234484627035470088369488608669763037573926417448904226596148816518669044138440501632975667366648338530831646247719593554702634446335175622971835898680593363427209282833136062812040026505482156630831316102923963253477871266495559988183930857354628979151640178458733396332480133076514139009778991789931585790200656320295677394146411034454870735845027446015026523208500931056752729770060679403564768091040455289248887085669962384052047969055236835239856822515954638447242111442983000042344568818599268318158258775144479383634990689448201958699673448919810370319354148987149374630853717526011899294304011406163662026287826387844029032408416378235250322630569882703085754839619817168395286273997832570334274267068898704658945979868068468540549656207009102676968750133891152815985132325189427997142679445078294613235423469243424961770256483697867695342434007607529862480938072677169531247758686376743114162291306982708603584955260509792567060976111928225336517231918206635240891508535608758330773371867960677621484907419416042301191661676360067854656014783494509703603376946037641647882185532321241023995561289044158093829649108903111359147010424170572036235394315981768247737132813057837376868053016009058413320761342851629308532640440847673220288906460147946455060666932210832903961941091010633152493550081543864490102532880839922606214940772101318300739463736407074802516897389857736763112527185849724845244550641264475991803248418955115286592191570333434407683154055779370792032271265891497079061080547164581349573179153952316781845367670096899259287896003226583525132684271976970355485634508059949990633191523153286727957117673099899975820624021258776211165596036317954918718983862769555037411707979307090383531028676060948073212021324196858439417565591545129706814905195199086274964689060063610687274509609007901244357570694535589355973443730285555306642697022694474534095948383321285508246025946208828163723563637293916153387205549756955952119227637410368221733230656755133950921482135518010198607892209828897241060202689039983599719981267733652075306223401163540308151529288223678038345877269451526123933011710111077632100910027949365086243767366486963522136558399501558492870973116504036243962100900550058605768917262428495977137872331592442076559397239627474914397554260294190934230920009712364956008666723407278963178794553113336491312432774656438246949932005864539761183915158044482478642699877284939804210847933711409508584097906809946200868268663852466889116077805244965898281007583183531483095991411289962442664342627693228734187943456451084277211284616350973311609172768194099796507565647370464956188214668308978399006732829797339604426071501755321607693712920180726095628460880036250000703301153487996757700722279011944718609230613660960546248573167229280288324949525151982485699149500678534682114205892068346540438391446912548824779894185906612127201886210379653940373229763204559964828350923831708088477852851079196000641648333237838008857429513004508159805425016712855827145556375979198194261329103460162399362105032204903701736384966745433326080204589348104603419488126293790676371895436499572310848309135436316347434080257433392638152749764524381440885481099392407200763773989308427756308343826020601509214530174781180681294477453713448260998156421316762034105668566747295599834183903956048332922930852922986712276888369260567537761263785818414771465569593513457057306132925803957169134373727811424693519813115931852856386036685573051181676652915824532898883281371608439266638340536634302714489771992558773373222589230742976839674712256960823340985206791909194919524588174557525564680447022206489692569228916042298755733223526635961512200238060343874116529158921899124816190691797663189313617627500243488123567090090135661095807384540734106852680656157411892577574400694312273778136284676707063470175376876049308262643086753915116816580142163733800046991345485116234509099711895135186896084775686812064861765879950726438370600551981793947418965894126728802475786002610125276002002584201600326962648824706388419994589081303693784422969174822859669774345825234592935795541127317610760367139232449192946569164626661626777935645136113733386120393902735387545663781483856764730760242674196928968092492337770249036542340444774896037007629283307040731847372686843028100123206489489021441867920773151723736452524931796629354312126752938730350762962383949071174857800408927261084609786639141726266141549467857769976898923113832756332246646669979992400978948993355309741503956829169020427507818201752223356251549013100195880850760480140182370983767312947957490528321252288392605231923692107368261430550395143506973152693882107454449685070004252417951824085466596350497143796667568893673370032111790782997672108027003519848366386884571207358928550760096936939307001613600039630268731644310385867937247964372938526843228124602323390131269805181001128304153753877500202427896184771610052130450028833363414944209215197223547354145145647680550014468854680706579571747555927436510487743413381249842391870611899089522044876977414363118086086056574555633125237035627623617032350978119149826428015099028310959546142067522183166668332822998742796861116104100148557064481299854683511629824587670252728014290411738381027246255271408336074703585874929217508081090707891772283715702721723129719681678375705248449158683629162364765493527381992066083758355812221654711125137079613080977201785448812757644875228911975878319083117841910145291590592689252016427145618078093290512046932670389026240136525728975271752635548579209296795684872184371842962147715613919617899870084251626660067990425801654898261995916640687711998697787577522532668634288179613764757338846580011315485710531613493957331637543137171794181407475051078797923266303901278344852472450457903991955271197908961088154778975559420089140690938736024330291148101740992185846026358561491911387872719576813375764320047716714490444609595415608954349634685548794106607931075440138933273838009428420491772152874617245693524913120999962510325506343479478147830673765101138621426370954156471885151981852844698150616022812079715317605129345895216194077072854628061850875962109506509033500842926634641796317583953585678733650414918345743890146803558726382893990322959913634883060742882535403376573417182284315645304539242936924721489942292799830818104230935290000501712214694351121080577085775851299960537768450899858623016351518402331733604697116800591315108529362950644982169325898282126543238022398164582893355275790834809882586920009785426775646182570612746837405112386409150807218343978066384950670935706422579465002398378557021282193922017290437320864955359920086326189033480898931309511189139925386392104384995782656291022045288401843069565313960438953213400687412148240928939552832007318426938574305247559832608720709416942044646500623422319530667066383638110883207817490207876702720950979874361950958464645194564383046217511321520482596992924070529503229987705432013067328233205806583899112889716851570387558691812517082012752574379938174123327795889013523361450533095211954997264986035787006201161846473377831402814440652229145077300941646330940811033736423628207757920020938816699692423091457589019696456609968689068052171611526213006511722553438918697640364569366947503825281760130457460324444843012705597770526362112794439385355140565168648721946644184172932817473924878161755726444852912433646616800672303210145958428177239160805555480547563939196005768840296435412987959206772296045023512696205340403346699775212236524739022418769595888439706125274655502217947441411172696832550403855315787603145126437101903926884021897579319837898624645451277333235099081923156111952506152874875742881992195177007892534989598007308284283199472072487483893713816994188966164955618013041437251601701896151105766370875410515148236599394340830840136293952600975919916126628640666381872423909287246683813019899458261105765155632055559699301515329238296618627191089510615006584629153930117778610101474895932571368239866374451857028453805030845530260828195284115483302341298226006743051021230113109274704769473813513505966397385676687961759260910436918785150401089110706186575360780227592630840892629686703254799403430569056941805689006184150045745356159348458983437348945980050327128509951033572751486460122044285098696624436322661998209577979797535231622316770762713763884309693567486811121462242384036080047126607518837210265154910388913121571152474546190489405034630576869771458120015512341171489728834736864529827440756738348830160115647004159919635956039430719920956330362704826183619177985618363712533539501547640157033946091745259912301841312784408722948470267408269268237402811218593651538205130749190207911917407726107595480014787718182024333466833157682033552965550662412613726704302306891453487137687556031191300150242794545958685844748527991193483931508091113299454271688577838499722069579978804792146103790645040619090807417968350406646135524064386517851335687059244981096316857665942226125654364471946193184222263501782323340489988597250895560791588161542184998701377243436368513668414930998991851635635093953141168665173928615316353541753682758642396767371392310312134402730198604718065499118919885478638769625880257316481357265336826674998051636844378515972968761814820425700591715769202851075720711671226180098925729953952889279673834999248985803855769015810153088480474449949251178125677487408592646075090174856847228493602026307299487862187817519607233092389443626766624117743276026028897644263833426071278246371952595041450044418202404813527680100587790403453265973639476470363162825209061222224294889516636867239284882142335168627134465282190588922868760943379904524749221928569869704372518352633885182490719007451599970689178609914103808056167463786559870358264054832550786357086895989721100435376106970053737755285961357217410943295597659615245262325999487850262630464740410248933463019106438867612911505938985300477571566210750954997700276442375225133046081450051024409742796431266665769774147500760784842255077948315691465095112202801433463106974088818849178182235492272069700594053673861564872529986551005545905591257647062072871235478873231384895268328271887550052345503661622760347848454483528504926017741179144748615272287677807342185266106440689754240869432416747044280352752942058804130667297912798089442173304986697277670951281619660788176259141211854370200138846139343064761463867998393424429775661575468129548778326377470716116984967064969914785291862251441115798824902040268209905227006697176834642288481772139273821577192668606729939718313495634701100691009879501645392202787176682049640896216952353410603812567129147247300359123147955513250711871935916727414530189443714017043950304211397695033131549965065045569341635510855069547311114189751526133591887911701225153745088269714033003799375480218311383522324912193263150801096991424084683665425319201720564617267917445205190120215020115653063704063745076533650853895757806688473364050019417739890885454161573234671009686018281324994751852122547241894648726503298104713920418512736592844845588533345488829741648908515015930643680761786329072248493028579151102304514104244276386055146514662274514894272019012237293492041921480339804368922672135936754431860623785160923725645772864275057247771093078916949636031225645505075445940470359896610360897041929337493428602381578379906968087767120252454701021900783917136934018115959256575001427511811253967624757595424078092280738712909975938842841550337698787682448512909439690430564746088959724625578895469554382567540665182067355677001634572537644202365772097754436950659084987755871342269529112359157896238239533355275278482788579709895268249473253932399598878295356129630799901807299806130213136391133664001327271633037505161221136697005321434442852033872208249514515664511474081724015572358952591488800722117943703333638628041437795682153488561767706559068473600769437801880653299304624969025074990376236896227229263607714853569257530466227130481325183028674947666712884017997291870926521696105179381950419797904616561488821921253233454164619077063413104144151910189025119474042594307628843232354342728155137381463727018296204199010915714211259613078966371739858313807876483986541860940151520385215492518220379126499333711219454500369033539358194341521853815775251213635039259869150970541661634420122796617903718804783881839774224592420182340224687398990590723020658644871139041434134517589128824350094052731620941348663107859618948527856454956741307003311019798149739796412198853140667723658066232403305665764592663101706933976455583709267254206094228072481964897713351040084059845808965076903750601741598876918744793297162349307633673061008750093407004316510513512553732603128594465942904929924591660315605502225135569666679235479862077444020103139171021387488458266470714151786802432530790261483360551258127546501177818580439024993284277249526622236720802326476711625670380409203082695509488765690665098655215549202132833551582570954301279154983072286184790745589793172081586356907470291088484848959709858848150065812793899264274949061259182190891215312634384998581171105169853301184141464286923419696123520148324647654420825224989050682001472266373729852905442796307371702941378476920748491305514350683281585002884319107912406545147246008179690678287696696063359885383395929635825787000964792124270529550555055605276765427154767639635471275918767208014516601207462361710502333364515087024418856660706966782183318436066921384150481388705600324965399223542492345172516619093769227427274155289061545598210623704485949004830881091182999022461552270904337231241960019651513596111357048924747420497505767979711317326612428992501537577375349168509664539939703415950581092839973461970036948906563043118494051505984866587203680538241888800959926507337888833687884591503404667591420083999289215403644204858006076035973916649612075381341289769151248833423779236802617252806129887001813523796845100513418871353657016513498574473190541220102338584657953731147387739664628859709867496958421877457850462765656303597446654138185842486236183985546227160065744533752245743211762316943357442715341003973524435492444649612948803084420599035478502809276840261888547962236260462940084581086254519646883324104138582384173163503906054151222014861500177403015654632820176828822505391065022212402948004644080929153173880973889193970497051007010174953659720505401742056518690221969337504722580380089271872011172972670223278921201820538008700205609718202863903077635519273169548766494357590930814650887087772941429409484994298227720460120784074569216374460868963019323822516812507230940827558198593688198270507538565326236474144761734963258129792157517965991366805393621988548585532753887134327838153574045359750310142521962765790442455734898353126178365299159586624167382351817605085443943832382379402109892067730047844132386965741121379321283934563274687581646406892056555843136577604265950455689531414614698714277152732037301181894485312318021858164672692516962754478444869764229507074225115927519233518110349955437547688232782185200958048225236059534340319660200094395822655691081401045767662581259628296200120760177383384105673530387067170567170569204636207840113394247747713530404269499740526238548355437059051778570046745046710133312098704418249843412239799849637257029074497181015218561475628143967940600714572743031823243355935123106223352320446668021186189522892521751049242430456089489794786272470335096256967200641719829452888260468331108661533898475422496061878427847712633583919320779765327953022448802209380599490407061179845916270116594825586896613280460185890395894312135337635242906442318159188468733197122055938627773619246034436167909317093211998025192898603030625025079402023617632179274981180458990012434340232199582714898718150618691963216151854679426236112217958993270837768459543624460527134451743959489001458675208654967223781360349545414030838515585258711436678436535674889856724296124040953187933426109755835053080418992760360204196748188671857619778852612982507968362974374203421846181602149298114731957287433910810359709869049388515351339290743693773929898134239394439533066157676215800925285749804022570914395733401328270563534089402974887285267449075575075347924694423171344565234075015696005311334012571397652869389665556439328435706126308475874938878530636587239871391712175559084810033403889578438909152486749126552570217142191858781469414494722550761143910323415551033908709025652231642950428098812282387157642926858776131552726405248584639224765495324036750983391569528393651125546850904388453102003741437139059808483966516727011689557985169143773254496073076566918658282081703335862825060900038835636020443118355301654752284678456722548254024706349800452392722550990517205060048419752644211045899821977398045826358746086671374481039203857612654568740226044517115253668454280526025663814835151503252513989480082530163077813580583452721980048579652341756478484041042728381570696404679271175727640853500490705476382222155934720441025802849426206557263062707347360698825306952461838390246693679620946192633026495908136951636871121527034489556195562404122223950900551328770677237986074512710252250362226540340510524734629224399828684156171831270512853091986073995697048746907076022273936975794964221115428251864195448424509767147225022910289819763640503501025825456102250625335116548128809966650643767912129842757759953918515609129168452699657172784479999751140596201800569292314784501853623007607092990314059243356514311560004500500132575099797256790369603139292940672232890618472185466083566286851178149292253420931853306385862656826323303428290795044334599705902765687784197127130467892174149737263321815526522267788620888192010097572025795838384796131559929468554954013415886041481268636978246580607010652521187455715792984143006697322939947824192591997234287146344927887763599894746073827655832488619970614449819877659624871807613983241928914969838770960934565089232281446455064560100997313323073660692782495031376442633125931960954439433241562904666836670073721868954457841238105515644949688580627911604546054278064112427774860643995341269464417181270063019278138538685532950247738917803440954878239930567812451793644490486840000808226416833887430182684749643533414541803710428686194542539253286872427443234252634104345994393635827362110276226107987182919546316732717115876744614533238629313741900145409476111710797740100307930534559587809870071191873746341690452931342221454291101144912475317710427749964527019642612207760558163911898075746158260145212103136370272111485715353878039881166267989204755720097824228115364437548348072496385918849879511871683235738733079711546148719440159254442841369704692922144088946827153816703048342413289346799360334006499127300350341912874034711109026237880594090275819777216088782777085556665426229855576137616372447148934531699997445319660016221687562686271850222952147829675570387349617242724310316657124265100721304418904008128181534969989102640003683393011764449525702249332186107102031761041973539901858130081582753928253459828133122330438701752708446921193635535884710260452245224831668601072411155856904463241458982515102200746970086376966677795590390909036541159411801975093351908359537296097364269005534962963581114433659085095097224616224021143021088373817292396471077488311594678037819781695553929827966984886403085807942665544300885083820935090644632831244125948148923551146815060202439065445355208797524286872795575424837266530838302410228857308513283811802174736410026604197133864907141495605404414920444013392549720097314810405271422583486564115712573982905366101071963393764696485122630790333360244467568380719942505794786136854922160450452736401531146791901402944159444924389279366885434769433507805775115232696722723667819341026302537513220057495387860597082819226597958115900249663244382559154205784129627419466951231831266111007966472898194346713283811242287892163464820591369946290840045520369764700231141419143520507681428555503437955925556717123475761356274138261859127842830383367726407944588264456265700822014717848095091616017888459160129854278732659079925153479014255767322698566486927032190686737897605441511612079685425284511943046330043048788325418256266597505489503436263200406964999680603803079461324866791002326790956962701025779233952911256157966611736994815158027800619415359742947147906128332543704424232242536040468757382676081379053516324946792554870074095400561951917436306456266156376047777268144507892488413783456859153730756723595248027629210759528008437670590891108015596937179345738206913752801795786208118527156693729685317297702753241293764381189688674752600968961832817101669132028562417222417891785326002128282156790215608417326200490104865244882070093902626045691848604790778829629598930532919614394463195832953450924342561319417991597223031308382838410997671885166015997401389515526080909809842749631747130877168852035919469368929408391499039748009766981661016241149571552778193730757839070235416969605379588763669526014640551372523002950535932061025197630713737932267671809709278193614518875039897878912114971271966255368093425008259183397433982317896685657719325404693933663864044335458189454207394835578541872075913252553518322511918101893565920582107638809990333242114015488107642739119361387160216111365614452538863203650282840042223314837012897208652603853459657938016375215554438654492948082461879825678409985118873214328320537485409691766612237702042601305170962048788844175546500172335490440297770243150193047987709202264007054599161115260759806302884534004528435772186314622124396059868135105361842941625871226231320895819379678599226157067398346909837922123608551686333755577499856890244520109833725755841493166271950101839681500999781612717052416790339628551129663259261731522448892547800037225916614370495662280522273601963314828848788042445516297371830779973746272022352024693773104925379456519380912684039120078881200567878742429550467490632461940255668602725196310314030131220965929745679956800655105919669565613804158051775553969436468847296075875249593381750362749809303699167010438900406865996780305798939893979632256290638977084978733861397934403451270632121019757453979334576338473696019948466477549710215342876925509525052800413585836392271422398600821183255822803859699816756296475759874618742458887907662828889982376543194399163808491527308171284845960163381513335845059227073597612109740422662363583197160176416879998083321438823031828457201483694939868787933656964012523788699811462967002077248100574449351436104640415410487775957442479149993456625500763581587945581202957945074296747267333696482045987251981546173979295689429282065414745913991834362674349400245354591243118424301816286055857489030934306401450020524597844795738270208185841995770175369886719948479065222903563108663540649452221528931413896494403440891064777847431887966853611033391456390612311872557483672682259676990519678328932169763210112250868222504673595552126548146762714604495495317661921334965553495712317924080091101331468712049886536896121978054718231751112822164431140456570651552130577636075263368189573936351854285679384212111558433201776260583063312049763682164229234519332106911253072083778866773978640941604154302549148346213801506207436067699264186911360789603908745272821407018688169880690769138358853134083266542376100924558891909097827790090342455088605359277212808107084315263365550041557019625991435065265593384472974016096389857914265559934225583977870618298928466937087151020602682960696455357609874586713705429941742216514625968439730031065076706879629295932351944247591507474147134016821367435445501785994673422744397072599626723880542357361601770276914059834158887480960440850534855713328942249665517447695640658693142561088336067326389722290787556488402562712127862765943497664496796007908286334876648749091684199750638301300015766173805061893782152602244577679367562429645144852355063667947624119218195052066162609298170631566022112813559193599604711150207292104726311117574560774590357977164543668406838933164074667739949268019983407814059702361375414914623272331027415289004288655312556622053294676255436838780649601853515981918192126416457986494390665072512665505995071432743955036336453237137509364697272543931448718634949081110557756770313877264160923375063420235662218071545823477221322311484538260884977162879102455031724362874654984127236000162806626306737030766266575086499352984922463600549875965858652807235547567053263612528180396330284607339067381988041976707496223198745861018165360828766959225693774047837599147544763760843850193233387959579210210978507045941188794038710307309461018310165574761815225448887349375414456821605828545812553000801201645053782080810465632984511734847345200722767294062869944845250128963804061667101398831988245778626611019746102450616578827443671498273700438377815405650030179257418003660668869279170688027441914199418215960961808261721338539543081427767471642008923186065191929145927805376472332467733469634227569430051648268483346092492522354566625080617070187120050644623628335968245520446176184848364684907127618459141572837810556918861072400316308948394701342233996836586276494627437616640205566561203303469879752729548091268879882414975597170259404941270538447763993345395366552999183681128564782626825952860150737600566385380612594991324208791369998020745985683805253511310950805010896126035586610369491676944327223078811140548034351843294757745115832825103362927136501942933449559758256498154209555035617532808235101419320521894933594277347231682422217976806200574122433758357099906981789078083648985512702733144611881303445407172796178069003838782332341453412031720735772272556266247747277249027279012645780821585602718177869302349959650266227407394062549167522232305827156839382928028561896551236005594527903720804882164566525092177514728544443104660406956860020008100545411954337500786407049757535509450104229021947329300629381494630190563774579979282750948148562560116071504554529115055642842616686475478937320666074694817014050528233507050144964488802453209843891498411473706788344501399015700950564331892912070679177132127191619579311212317880189131869384186730307366086265977115719691025380532933729220465462502091934881705034220814143576205225367922858503533630085548624774550782117222534349444053233703361821034227090545788479723998459566979076300013864480161438259207936153282828839209062126783577411713855882131783939527478471102262533633858891484957425577089088481153086797726330950164126460649790755751902257504739177554260722986611505872031350806237030983632495880455108180175041158224910628442579324230233688119741007557258555491819560750324771550394624134437843422972080752063689742976430498438034842873558933020826286345481889858099581512183779971834103661808672691059217023677184428985990731720459146433908841924673874640739419592845786162512048735795905209355465774734820746895843749161505534611052346499254010305940562231925695516552016947962424942786464269484590892664424560352846593489520294447910940543164168534595390027081822773514958189132688276087631627635715802460934150353929916031259990467464151265109571980681287719470414342237993906911974399557819166553563687097815995816997950146649628919174365617716795454652811947521035401190291842507612872466223669011565191861329856151413266822617786856601150724997443299307092707761718868643705643274778923179545273873701446302104931755175289461242390605680646003963509369557444887975348371084446061829488837799154444559616588546751543925891011605589298428917758946479172124936802356004308554434781129524043780729074466773567270241863517356752201592780786729288705887206449673563235223629527848667480186866169704886587594493162514023589505085525402534279142126866472857325222113071065618177233522130920678388882335695863466791500789459751631832768296382834331169163721019785853346649302836524657988180427381366365788221059194104166310888703489572599171240127430230992457165325202870634533131735749304827044669703481294625484082869248283332189753132526761332993039799846527532464493528140355345611943928863833507925589793133605133504648534139164799354461648628759254195020690824934898233946674631777825801592626311424765958130256412649255824128081750293716926498974535106221908765093628800610005305203865993381592098601141152703141897957976364761137905120598356049061927497013611608679356357683578049143141390536316135475614118799565831957082868606419634040064597921142619740924610141905263695540119794477748951244702206939994159529297523387723694766550766806375531915641493214951420907552154354084998188146972082544776734472302286025883992978163098695536379630764090569336542657716162241976264243009928302372171410707014595726320705443597162627923427528825808476074963856630547188472806418262570310247239019662767998352599679038765040136642000862058090472468171708849099441099013104479543436729093883966242207342668580414617754459721003745658588686292447090400063872133084268659753225178210007504742993501080887203733222073778124054046561444790287386787476402781490917297308352458136434669017805159281710134113964728190396408390111126012876402075797081478144330346307058923059098111999290858943109893207915636965278611134863199455649516638116780759551598578120952521548346817803677359916991236081431900785300491848530281067084536044335906197421806170725036048077065784139676986153925336421774215525848030021553195718364034613171434196888880256189854279493085366074839259454153666950462502913760232823199509579239695507678179534267798431423173028728321548443888388024684731409073510141392605943175251474711032917987031295235450678742094719476847612854529230841451054229192262465735792239340703285548421258880025894852566129616242421445536161507139316669166534270943592015340614857955204736116035039503790558864008193694591976495559329891465093616974958420162676888547281098183423283304032200128939381193386261283327742051245200612660933944531839630525960973268330821866296175020775385122459183134419696506178104931351549959235834055773963081542940069378256282172638552522819874920588319818709495109375075627100430868706451685290766123457050191847407693158660517727696610360195364685162416770854369718688200014115541466805988496617223848644438586309246225398801243565881893937495510127854148735035166514682255866737383443954068627704660077300860806470593922300216304188937202898044978341925922297831048614068875291262412804170063349715179460907252638546124705821029317455751694749980060229818169605259402810356194987965276267300260957427246531623337313379363648364798790094397230685294803425909265242703289085141817888604352387012687438667329229957052957786490828827111475328107549181527815380258148411228896821132649164313580385473006061754186977056124992098668172122799803270822694601502854337041385228467892444544266456830178310519349861013216701987169109394345021111516247826607344070329802946254812813355847782986156619267593155199822486820630981881574461529522744260422167157911324608271864963377140525277862796257016039944075404383944006023082745142990104852645374316672966814647088308140221001138542508862954729771844065059333772636394363522345517750946580013510908044346177396040099792781298989937348086541546335073324536979905021833304930441542311269369413623299741604139561813298946962836385246465898685806682944473788360356972692713039648261324668271297713741649715789640394293715014246833251984472432703799820598785037686983707112884188520870594861293643568500257861292625790883288903847531687564596897402419203703571073069682271121824997679116656856433611764374773730535295173475552986545914874516976092522167646497944034319220093967744739951259079522186132036798353470195316588496051348966018535324316135674927304078405426906506329537629473665037440853279939506947078080467695031655122695923897796367611731081868380428308776685055592002138820059196050955641167439043155080513099636818178146725113086663952555903983494597776502433812144248579986487956694630172347196953084599439863351687413290333986145882155430973811972901149547272379522280619164661747623728369462089264551164104793935419558264893083707276526868359186262402609400821549014751168946275378263391317548700414160820245430235734401514735991139012776177700127258440594388744780632172499187921986629938206106657943702280863459754747256488723626024877167726298472235256062860837855062145420429091282825407930814215172820781672431665031852648843525395920834989141153310395624311904630206076647276257513922100100185527154317568458638948592627602893105745162946266904871170323038271172250240564515613590672312825785806153072118669738339293615681987032088336412471199296765709075178793741400080977056917443349477940883923480286256341185671282335399408052651953864934028285608218863552287466185053987895101699431024291414787509223996279622910161727586133711034136123521237185373245272125445160428225059310387560481287366083204706163333691041133457107193982473852107068095003401872201598726118996327508086835368740415430397107617603299001665949900125117337141660754382468452105172946774863188875798293641037977040921052505343887893647839650650990621387453301400018028691849353961693256106143688230763918684971892979130416174256386245823485652976263401023544530656456828473364334709077252618117392486707076374983184882509047770146903779691282261988681565836790879471222706616879929965125142827731958873985336712929799171734431197781278466096958166215210961268500551227339025150993511512479294282860909386676511986070013817028265902392383436521557598926690947107576811021698426011917220849362317921735738719190449561704041975406679308803993478843238112842630010594442882277468393538327680377674054326198602456323521302877260682270361768793846724956172510694895316879148933323900062166198574539206482496967865409958291904136489099372761971613245956661932153250581489060593708773350043426321387252368110292240024719784351392153298819565619984289663135398677433361187152054911245595790212355882343743540752877412056986088589747957098249799925145370218629616537725362114494866537526937482464356777259731296181303552189731412539030300993208939333967791961318472130101323027708639108536259970043745392362807213361278455460805257058466362691392985734931138483752749097541337127774840600776692340967003618221764958134517515918388194419305550570589370796318119403366197815263481919939105851386564855630352188785042200690482433462023155411227944374224941195067155365785104005589749148785455328381070236750324957444349892169216134621193578709717034301801592282004332158255816681209311149914012648018264113462169501312648942159234271533922297227300079568183071297215041526543192322312408798496864898535362794874491311958381179642852305708841433811020248598334762910550732425483541569939153559072207743673874928704176407520682461279254244109091872753097930465317694403077360061105787204228191005701925330866650658813627534661248933997749215216574567836976015326587747708601509907025661821003400471406870230431316820773370254738051481216938244661202693715652798622739273830307099198294735361033389553508865687185704626606600839523054067498584171900231744255021418640243688933163173353600284725530810807403361896703343931012898950936443679100878507913226094301284708514520031623149502048944513524908746226486731400708840288616798951915787177548842825875740730509860661501933796966618625330853508941033717268585859644335068605854353738538408785885992023828165732660489861941984225919266518041738055125409327767223341698143142416235219524853220251066530963794699589679832311768209591408208043602538583699757355528371181812855300477220069870795480661840206741111205636238947940193138114432279945732958027983721722388790041983960254776735506894842832304819350202051292973731534983321450157887639897702982256653830902079846467360415546512427792696478260273496802866967886691387737889905686410692118957401666321487709270110788962213427880657549811217240866945720769891084949549946511965597985409658249005226604186997156017038584382291177348259882554280933120916357964936974132769415362195672919901843668054124600548821964216344215527837211224115773341135515681572222744856491841855137766226714429983393582586197444952550874612672950619223200923791816948563574019919228890919324409703268986837872159919688555043408104428001609023407851590680511070705156466636482108028003228556252147561184510153497903636562360355906235886192491564826770106245130106946468037719615621833104309778545158939231618169444492845124944857452144760479913284593499936982840392321571067920621152516075431356556723440063066183946295387160599177912427508754564812185313692093891200610327114929439924015733527097819138752282286666148700214249652102190024524937923556558652266476319215087075249359828971415872012702741501445618046830967330785474164460817366161873489551173095512516568628180416335795436791128638427099030588875840941709464993961077749694494135058813170831295880139608466781600648474103532120518775005818774637186107614332470460299644045128837873388851904388193788774681719925684891439945937154984593136581393698573892388683921971037753038874807299903409585627916842665149497369377378988472800926082894333269644821499811836009556409138828736762840715991477580445669918648906492699077775573761983045655581092018189454713892342468404485241349404882589000841892450302756863006342809097001825404185412818272983104731522232139453454897063082008861804334350146503331579210896286511984538622895850838284291388260296112296014922957682832392353887847451507757588133539386714007963325435135511063630149162581709655874752335086275927518838901206334723105226314913879634529154868139618287202798867244351072481417304622748853164102410246237928564757072795201964261459628846918791157192050108715421749937264842935667550741735608465930879510428650282724406962901616558635848481369140714093199801802453597496410627854360565055092769891717531202768759843115733143006661438465505394887291051790404897912182978337715651150274167842379767268493825068215359982636996552898682735734483224654061511013326350784572823359221388941077153941759177945864729104890023564096536428134628516907711817798329717962248312384070261972343119393519429743581035812906776111973323673913038339036925257578139515586685258358480261624804370311058297662012234714835203588449252788405518682636261713241153002658402656102906885485374388755980660310253830233767569519556344356367147978394785349413969258942317011913711863029551262417424150465291515504990969715801712782309598934475678432588325825505304782527389349331331455865746964964081468413422870933853053970139896416437098787479621031530861680771600397419362527900814612049708868666951825178489355646864256176227980677517392641246294545169326663844465639717248094295090744507270660277521731484828530108319747074988445518367395029543634565313399290502976752253148204108226802363423319899683659035307926686440877814539318972694783605061592375466744625441021982939464494620919151678655307795145719073117852888479204950087517277989419478496128225542311131827066927455364592107175042880714332288260877308830656398565799292686487004988489277718437955191922242247229048507430610584075124957706381702039566463793000408373660330487141830548639082932286620173516343025031456957284953376404736927317388114424759049274123339421021620520837911735792477913972297674396769137677485650452866708100475398890726778188677330646543432688573982478130638532421735754293386926709147953047755992600793147693702447208429157504011301304552691872067192940948842405897663020198146588690355687292121460445145971512208256130503948845632901168186757509459149306837255201845628178441710651513711105889423549189404676754843825482023499117203710228173906630384677645936345327757390844733551696513325326393663277311774817350532284923786164108056342215812410330399235599637545673246505834144325037796473054459585039608382101172389521107315049577535854300590907318885509603799286222353990662539149688027337859357214994812401846490361325815252916151460943467578658116848405875816324228975591050022906973207558203742288422835131180898168362157479120566154199461580751109916745574169315778213246169354673620487419371202774459126236385417881927523319979471496322209664276186772171623577606299150414929964499307229896312384387447723095726292115551458809379644956474089192283036338339067306145733517744289223610950317714235372110731165547252570191095956977235225629241111625642382159959354243824975798936786869550077917297116660897340418935498646642306203058969511217304993479835878784337297135967226371511600997882912060254348026404303720139638116092782184705064631801366155674021831298381897653822040413587540213218154920182750071490597904046558746070538868041861130894634115036890263190788449018612561197556522312163021957885165750320093585117477943004440685293012898355126618901606487628046984079790121445759891563291243041361337696274375829511653426276828649875937119969306339370979197830817011795771762926780205736467443561129872543588875784917986472762390234778560003652248314696109751316173570694626557751837144542815521291392564456455114032890156859141113177139449983537572743322963203244871049167222867183403280792586463066584662092678990256393298852342396508533844157055923013079398157330470888866671803079007601019776088773614564054968440487442404228431221476795425105485404361371323743292799570327279943806457879725395491395131790015333044476808168862069069707783439702132321878739198657287989703097808434942949968861135712027028896592245043695467614269887043527857121627790605762008322124002291535673697628243459939972005501678354027274382936504907540510961641182240524047112214623824220947061154413061370281218074625326059094321021368630632363473884927832059433668562203020780011485505638432769010079148755404256992366062894689640122528624546498619777188444554357349020534385784834860857904112142599971487452270733500851246047012132540181541916952039036031827656596509515170182913821965440526407136401179111038085270341814377270776257610649340648553717468085428425809246266130095282004847735681850154334939274843263062301499872512519571066297065557118400503801992760792985438617677284976894818359568654585505260082060255550405146743428946424558781640477265327212063967477262467059209280701852170155907101985479951708267927463572871799989187304834456805049650161807424170002844177599111568165153878297242595109651630261492168244585368422945262319972951506584378436601168602562373100845478122159222800324778432408302059847920872752213226484844209589276643462761627945889750495063892695748621017317498084384235451897877435063164663615057357930097809379065807897672388197450491827885656522633286046222196935829045604211699893483425135343266187317215359162671691197271395279041400169733062186916551020828152136637462414696803771874748487052007341283305210660102154655425209811214990362860598255939000937104034442173369571051289879622587123978923233127695027397785587562306833592039950352832988409024196045433980601834852973529644138609603738888113392760088632016948658899932258664764371657162992580393802231908425480009280656883775543602848456242593409408734250519433102121347370396388177096632264501534989233805605495077153767285394309013767579730813828117853738468886830082642131445508772041241848997013267879754539007242503819969752495503193520523629896799251825538274682012200477401344127169131759370238901445282933617899398857263893305789626861762678997418327056085175078295878851665724460442014282269708841387011079041995267444758011608442314204352538592853921784298337535576796565629610049168332336191405401084435932765294208420731564161801033884895927828402349677398772402940985959975178547101043623253209195390902226009188092502486157429647285116318054157239083173244288448836237202718712606607322033925493374578365073420718836060087419123257031992832851864603691614802188502038209376631928259148284046857511195234229588529350431867245438508384696916059827128028294837489224434986379321350050136625096482946227927792763448298448185980961246758977301388172093999581474673710119242909024026986869866075110986320493268263218940363214148433922665499298878896252321928331534648562880789580267472047415330920961496882897464866057494381195320931551249642379884794742685672814940702266458138401494655950862944222920286694461634778345449829283321256393302160056512000187582821259540607255853933603285228762526409036282625829251757815488586604158186098936640747457332704741069407278729203859412979538295490113673505046695564945626866749456133384098280165301472371407906148878738131276801915633631045989194257174604917398695126341186226029335376194517877089996071969851880733047628474932090361403971621437806634207305895866196718489589014987783029188563310519698146000612519860120339567308589865827397568262388992106634978146193481613131026644496803413854395050839026744948705810388003459399353275255212526652939021617046685265038099018740635672019747809503418352143704111449997302276945997086473044422289246649599943424253506128303143939033899879555511213037685481071185345272152944403578650118325020049730711465181906735043951331399752618386907954009296844025232921663346939914906588332215682369613185135638359131293518838391043796496518209583560150760795567329845820913938930850117281347921589396709303054120454424266136969307412722157843106853703805542589571766641307845389148227105407452911060650291442747009068692142779603757408514838472125773864166903629023643107538774205739156597733710208278622918199876755297038571913961356687827832475858082866837431631004365168263121011422827029038969096779516757797106240220338318140324229526131921703808874604612325670188315935142566491196098781818105367640995101818686335919468123990530075066417890095315538466501677438567687595699444657517855774778753566731395529869742498537153586803863417392744084496153574484438788475990726780025618768347856788731442111914806247405350721980157094765570444349130651442477486149283375277625427427860881209692068009603696913218367533131029538979737485352328911828699628396412798239582135538578828240936880384082091359757982544583492024156182851667578660567931230055418805840830109652473593106182496885841677795786650832163174952296886788832904958370123256876042419251445738019180730091695071697997577316865673221094896005049208830904447238051449232075668045615313416968059664920550851122299700571941817307873375843449544960371094523304960608480025146665701891873276533351676399780249393514899667324534357907505186227451556554346294250370216656467250329095514320343405297050467855783144180620862896640289619794732063747445847328445673478765541171764369190095274533124687128750924978281148357151306816081597337970593725927598596871116139102610335791291333528861722541500615380868575647495735093762640337346327575828320860351107633810157317400630748738532889645014337155912951259021912758360623586077492095732864029785884565158658579389410044189882909759196844302536670278153397229876468577592961626429711450018387543406360052091723614992006402627970840278188250391923690520091368342216199524858752161326990436974689029969503454476225099487302134589131797896633003948232577316521253677233526137730371995539798021572615795736523627850707872167903919171848282276550310466538386740031802686137059565829658013191108497337750726614330676158743736860521641828883943534560926193987385361499748402050682904882966398610610212846209464125846101634598119032941371198268020095945204145978162242302051986111697224823680512079781094276917189018035487187775028108014936876262919229009471903214389014747626090023858028710065953373445320396687405707995955701686779740061711502525390214128819771429277297735164709570716562583818695516818767522474272711927811918696528339606121423914080503116465819129533914826861512992397022943992934712414177820967774468603660685704629712477169136831408828566124851686164692162159649252632249634386486637848035472026501303643173948131672295251674427731614289959434007234199396221341087140741449655631890047637612978087691038593992371626042133449867744816926709335163489918618514319367478977463633129568463317665928141393513550685120033505156159112046161349558326266094961883551265803255243652948829267546396443613849017080893970513580827043695824771519777504007995513117089163590091167030250307630931010627485007280708236590781112848065767461101675187654532467676075652226481635313014657993862910803821132818052515581643595924517013602782004051974768466324995358680640541569944846041081091937411117847701340640825095689648835569877052505819262879549223539830194878828885970232543992926414235164319632650113537118838517499375313824221239391621845464746730681357005252718776176519956904618207914610956052389260330031470797722512425507723813453709835656862484721912302089888381741888395557259391063319432107132069139898570320045354627046583846798605929388748221641008220045050495230519005716301053532307456293422194125793287559116926520061290515851052133662270944296060823063918829765922662148324300548228891056913706813401649062694843990671684205427762244863898884506293413324749621479372407519042307824909330321755511814909669961433159387428769820782874213759275157067591359486388337716960751290736561042483004397916439490134783180196731671411052497354237143534211391894151960597936850331416058042686871721633060889458949827515580197206094141444054384303642813002194364702830890516853341510066610789853013382318772021447648068707988413617721570861684995491255258365831375472735291816097041899881957908410563077383252226667674854488373797808778107798464445091458010495357467723862445902193346565889739699959252392374315786818099119960763980236840815290703432712376897881014265783429513000917598505199773102610644812361934745864044803463150673915096573988988095267947766223222374998365097025744094860463104794055899729155430409649806572288078068680514771163752022061678713587101914727090571936708883954380796185001833998381947269724268149454456592845446061984490005146118344993544730927999495020059544654136192446701510747231105893790091289235559680630517944896581554954276866995456941044887500939381864197602592954660630567833233282971361407962238570261828827944190680913254523579717091668683190385769634968337142499078708585530575130657383018548912258974036608724725711965562568175092932233479296998241096636378443375763097108223787660249187412651832278582773734461531580379469658645569697366667111871088508100648401808283863120726630839394075355201945702071805015097852657379107877203482058719492590068979380438659078051790305882105152759940219986704139709376437297532014168429931468683190609250409519558267130728623351705419605165243683260753641959584423308692954632417729021099950918520864004094397704544736093125188310649227421484392069829096770500326643108396700363340505915056181600408052625336867718005850122179679467010552698438177602594039159903923507920853259172483133785510761410886578535515130244078187584755340339261394026593848035405650763656231741677694280127315336865199884966922243832576577787544144831747214464680079791531492233109391984115158281942175132911156773440868281514296582859739949959614969891973789719053694516555971605128164074360359151185763260198257379763627849272266785312019430003245579134115159535376718898229365821679665158757417647466476421749085275136295106400302692095393034072530273216828937654262009206002331448158060977438749977225142493286917134404903349344078700747534980908839703376905087229241286876051241906895743793166359597781649178481346010764666847784419563932624288418319428220231581250137172925154595339649262575228518556211392199644809626057886532868160083523776652069360949981317355535995644017545210128953787017091321523567938825125565406920793476726491704277746913201337241802032075113134899148291165858145444053471126159482766142843378154230700344434257554136456139025169506827628972397860497186570418836475267341090483228083034779295848780847298892417203374905589440854033925364769513793253964629072223029619099574787056677926965529229621439200507670937148827863104792752214462018907630252437198886320107444826809405974992656264750351099337222085913680285994589331077818847850880359993146855683520680841212415508910101387604567828152635293904828594005640637086655330244520275523972081550212347834200823197250357319608064970723195570300521093564460831235112481854764328755776321933653927231679652393790456256337428061559882011701257009998531692972616816454337921801409791941246100828033283631691661699826578485522075661911706612265973885525578524180287061968606159264167030721416971439419136081272489353810735998134503365591269139374863819252290515269454049011846289826404316997061004302578670024071283568536236431893318634112443882096298611378549884257512754632051999949047101229980854558868976060565685965345923005271824069169698041196920741549717223655099051268746701370210486901545307960364660841843739046482489227047205920529686985494614430055194720846085055767143424099525697248983796291881818553945738557491444782954122820146703762065480861578308456299826255632040045030459532173690075308449936350817136541860832522665761417480685691335374799392280311405889308131827552167916126477814954872401211539416687384029324192927972677146616534889443258118304584294751444143634594328633262398947354195150772375225935100053461745595696003472856174513747918458170963825304631289040459855411019570134052914257192176306021582447875517083537387681764120632276545812587954163945754784532206737171152847633320532220414410545941039468814673132350737504769637240842499488400714701906481230838997705037497712276250322098323285938804773679257142146659924655855287917182347383430642812638326656846756348576927960634514967932993813879448992769803867652405886183600661740214014171569584815376077711878711628196429958580754567364832055310860244143992550787026632226011719527901727404105547246264209797859628964764411680283547238233022283840409950987536675844180317376967403347590688233577789866643797399677145314656975902442885001522453575543697647241681287304382991566490844691372603216155383662947992571562302587728844518082099913427559936075100688168248846781936121446525632286739932425413551898266870780755346662038030048306847045131063492850181195869615911849550440861892415037372050428822963718161114106311661575726034553693873883855355270339037205457604744020577044520254784313540335022971871592105062127945815295602101936148004997630619847121428080691031728739792988417074327825500168187664645501284884462563018716556863325481178342599727671508503348299250022433735036370769538284091230415056044699280152616818742730825717415705614425810993733652742551297807438789126577198238567723068878574758902937818972726216675978355984114766395442006976632304353130945565765961172743746119711835250438277388050216605111338292661754975373583205060559284704345880658552685414102836183369644310696874071853818258103137548566588983091041516356026365810799886682180892982293014269532638710375348214602767416878507277299877598964408095484096093792518241803704041253000404856312129740377777040004730563341413326816629706828134799892289954901098694554017170440145006909661301801729860528097418431776514771579356936821436144553132868938519276954975199762446520461174840242193782672590324543711478186795024583373941127019187023644158366290120894486969068701512987807801991469380683252228281373997785952941767929741290389874579337718616433704958567911438993049551453252582284702907311556566946738478689189893519147772703689609555401716720353364882503736134352856708344921666126983607863866594739806854380573581054346528287688713886674174670769109299986789666215193033203943139110779022246648342625625182387108856589725051340638909812354745625887454326741211814628886907218851049726175003686272498027212981965996832022410513273971839760862893358919427783813827444940244792493547018470353653862011426345164572955037019701865458242325855048570161683890691081085927182834354877829473741558880569988941075293594498973131750157335626390716081519182166754185361638966316805463576310874291230203296702120833900788844384619912451369699359164345159847260787272956986295832969345918389452584392493266615189267568692697755333989083041155955485472891410869703327788100908394532764587988579707023410748583278900771888840551797894337270862566580101569331857199532250775832523774152106510887190043668090661032449634087101336405141400050119392371187106680512464477508304502246117075064465632442863030372841599496674211249753664771888298440579374391775328146639486465530375197986290855637162470158351809295566282887873780878936967999945914652931685848056464867796119678310539707234999655135625195918423238201155271608781930261202642814506986921489398627560097445349513887916146809639256545558395957599720708801900527873745291099773337307959223378406446687800080945980650492787245592169953411431074943892947920048475957770429981920915737927917899417594056351023007018432080897052657472718355507649588138197496902118484635834808607019620566418524701341479980157293059764210061267325057680904319779326130021066507960223202482306715832048668342438837982464175940580127670053938408779282364629651821206935914381687407330122351689130657090759786797924741235104654950805431549685010931130957737554535572900624147842804305268684687441319891172759592226874527386169040552632823185071791359607892267844131066654489100714901541514599212651900972054795334591338208617942957603439085778229307834375654359031654037674115867675905179096849967736321233475411179946327528143916861917760325233505964617490330828197374454360748292864825353733882388168403110841223607597561814379067011101103428946172710677381111273054284757324069800481179492527084246578035472841215016731520345449233480743951497342706117577613691550415353199434119265542655734919636057493133690752221114923145086193278486090532102087893795531634459888183124515796533950700921416979987913397003738930285878642009835439922280317532510649596420563799179803138377458511930214729518306316809759797762109920932204192059356146721738710397030068004334787601879397234148343757839984561109709992365063432647683164146204346374957969216786245566228022247592598431568429971589950368958583977952944184229717873195768837903597308579774625937439793226031860773891006055736610428055805487103735296722914520334601964107656679859083799058101723185298075927750299076996868383500944544491931267281359246128577015194126315408992016696511096351712242997469107377504163893120590339562837395847423976747915699335819479200681901018289430509265038794066525158960205476451216602975866675657291822934130795774534686239239588334144628522205132352020105477355286242036260148769644575836212474880865465737014849708899221996888275697663700741276923773255552223133851791518705049454291290774625082611493636477931991234784373197701232281181629927618731836621948202564477417695385464871737721020232126066351202629657484457690660008520681251166867676394442768113865614663794644092546830854388733363512064867430135764476560058094136821132269534830504445520114383550202347690352552220114232054244616199163779062314911240501755128378597953442372608700462112538658812662062448856677969845238658544885849774008611019590414565746287251718351525994760894066573936292596473107136680297597560341972226569084028576262971837048317311586314031184838251395350179605779261956313529696349385226420476280957445714667442863532646434484285679024020770714713051170109698756842010909226000494242590066738831766376346152179690508517022536589032656446848333516248155716650633931811944120053169362400341115524273324526855900651210501959427122562708103351107749336038200883683829574593132696411364548495166975961938010850485232560470281161742413059368769620742471054489270067560542706061511306678778001253510888080700792502806084277924579225139122096085824534797704389975718890773145779876153726552626969440662859415445929134515643130742957569306008358499082592811083370495543047420251620472476519265434466012761976325181613009825870341653744327643993325241663970398642044665647171063607460145764144209840594135755886817038858793584887583231681990389397626320829490893082720875102503955909722672577282904582028452813335958858703787359019067500060557195010815547707739318249294292888154249324826571093624862742148292111512953105039515233139809846853780971498800549606192628792685762556952940368144781743896487110335254132790366757566204826570607155906350894541771125423300435224026564320877216026248297058110141626652363372228750339035106692029416983409126692352962534989894435681416790691766183527836436510978969495524962119114188632363471660441433671170564690176166685191810549535243596175420671156927832138378400193169051522344186963880670596737826339343602576456233760197511344221608208941206652743721527218833716400047219902415257695526000748447005927925285971985469344536759035805499128912299462355408164562830688400806932646272229556421683235861035471730078111234136359186952365075000015743798031488109748916740207369913029130211954712456257280960999749815851881471185024767420027219014923905890485618237742679554018647543051439402627899298818694362193320365493350790391253977160411747513484899381771136381193988952491922808549636391090789871542361637819532966674296402461021391912342969476723058097876320494926377161750082362516493942923855379180141127886225935702246460749512370621781554816420810742221596745737493247150929276383932012079710569426386921694457686779898980114043130929088957017043993020816604447182225785034997154913422743531386441061346015769157086032050337348334931363821118736519577663566069461498875073263237826821018098054692388956716522518715781954589970241959920133621508714950721225770353632262873254256735967441194924037460808542983137686295848528462911404058119821960155862712276416237621488667838841031716890075070512586564590849886546241477602031887635445868379356822365179054104557125090003380828300339118586813723658268048915206899155141968373161010842489564973624477854073812121560884016733170635982332649637431625293210293750469572433184365743285494694465188648591045227308330406255229999215960554803924964514332779207929860263670034730426832570553135676280167229401093089656213635203430758650562143673150293985118477825953966847461740827734991497274476700011772729804152605812783593204485048981061622557806237297570635450863674531676673416574691302979372267495857366598237565727154395876453123962026152159337074413084653561302045352074595083660720108343517217209708915705043119187283971671964572194456702375091829598717159362805940618941751827934702113687121679096803676813421506190388609518443353639335592306915780407628804044904536139321789964056565129587392298429566619355560173168096402920195604504234373250723780983386433974910623964409793670494461163059438449308978350477243515005829335459242769810126559768540138899475428789923166206623399757054009450746888233934550059730242078618198330218892534573082704662763185130614836316808397006734876685498718446863503150143556194323747288343281679434941963576349349217407098943573933033837402491877854573113546244274456602430821795465169910293825576540789941976492427343449341025755802363581918578161541749754677197795052744181812028693375737313848322805744160748994461815094415495672551297196294486541298396014783420448101743582104770025665672295419366736061334188205944957287552343408761464539804027841329256772140272906055183127760853343357181021601883185584737106754864883671498530580133801207502263132737534193087136853959638364597100656365620037819785562182805456889510062473106535945651296221390555434269619873910064285232386647611420210610763463945920732659767294148987259997369136643415230582445367544588073337491608883461689943543472454797347849365952669722350609037218787822675944977984828169281847574839284559712922139412819957110799881933553400517950378541995776063751306372084770312291409859395606907393365503263584496888310148770789331635381307126905832174151022533163508050273565541091435318398553670127938923278820466193761126054060712685855122799684215462161249787287439937352685125694784064362732458619275047034718592395594114917829901474476150683941172707527380086514247001886709264716048072895498846485173556571247017531836512671887289506851017807790475873511177636399740610539092526460102900677034579087370152071953913352864258670173660623402894777947137804605820322228670784379120010486836964167384171318853501021958687468870117486197442216004547199446918106000180607652756797390471366401580040663142741651142853904727130867285351368696939827630874000507000811016577298168930670717665147196044832421569342167402195898779530398066753824645251026109955942485081410531677865307600622847145016118120206363824462996280246632672008695402702756005902926587798230081195568516700570921037426266725371351919870741502220725052206887669483447056874912296778292214568165072141898303280877587855301631459503344612127531159271029058368193798948956315507472266590116077011038621299921182383412427957231793916900152138573739313149723119890769584197460071669490288475202100330850071911541388263138950658250569045853423158167075436293676903010400697529877500033220897530329746991964991948070505899480589394340358591446912045041687908921673850917437881046008416905813704406396256276400114078895034993861758796849926981016543944199070776212460814404530260956034222592056269920560289123650648743084612263316148465372392217030727161323215604601651413677148036943410462318040078110708811711926906659209698167970203663581792782513365931903039875747349063010710106986910276572314948273849457490066157921220942594964693180453805203533735287678070841827875402130394637345050029847178466522145138358637723881519553494627525094585553072057180163788014434145482733254148659673311846213556471225808014852268994691112902788561775113126807697464732926839588956343503598243908246529912043781165185428293186796829834667542472869937197510795738825376142622564676555645945810531913578730540055757118287640683902843523561563496225204578375817877528762209374686466864144300627601680721205948193607733391447098212093687337242206444914696297741265142725645345824231567198357776350064114407993755514152205710917426729063169908236799348746769232774527981575126216112704070281998857681018009860069199590802458722217223523206653080820168544646415015208079749365685992597202795768761411361902419006593946244177243513869419522801538731521532500647916030339939255218150794708841028360742519622131095337949561228341251578283880095505461233018029972051191438116372068115979164714530858081894728813989887949208479438717181562639132865762285611448686909674018146084546075447768431479516485045912993791042745300879708480643117901440438010623913822687904503734666960254549798436500125038276909971087364952472248147675754386947016732020853530927048231602948255732461724343364885027438110573266978236519688284430605906652403090467817072758747456489231423099209688535626491834482816422618781891561611805122927604086758650296958003680011553570421922261879746119245920317318672132103412981871366348887838196956099200463408888053091418874086019354963600082723128915145594926618324969780377749293495999680158431950693698296055048845804760548460668651105809533014747222595022948789161898276709792516461421523948097859226954487571819935357731409153195743109298359058707314816331627385334317411427225042334493639501003331831722873672242252135500500814418510512624112111945045063093890515872532956986860133754958076165091102693645426998468285113250912923301247323354527492241521206410258592175407526689584176277805134981400966701604023247695777015395301591051471223686822408078387485353263254484109081001312260362203928972969101828369072199845490136603051051694397445410309825608445580110963936243338763326618131280980145290740374066052535283631083565114381777360415182399864762688322034888315363414607216793007505768970991154810266631988940383254591784899223048612823383162758389886002419652700728438841406110345908202072922304665870484384270097334880929552362369974471951916430830914115513849643256200166659576073964225392550744296317753634148321864273308735685843581391563678036170726802318145104714465318026055433253288770853634951946380465012334676613994550255649177883110810660429248350460219272455846229811569378455628632301129230821099942663627911772666244513588480400986337307017077728698235440448390121159474117296844010700269417385718581788711415038518133236460427538489890835762065501912356803944881706454463936206281464087010648270672124891534031523378832532468620637122267284825860697458837061821235738173060920103898290078845510937114899703664708177747709824205369328216431698735629537180435630291911838665361025508145015360523068934301530425876585810938340813710222909469980553597137845709492142691146138576058196565004563091267604298691016914715969808191804822162110597889666862843113689323337219174397628698022194694333623574982662397012899942339036249426665500753513868036436842455254821910600744662359334219830161763392242719813464942442454177690026195101359538389271603633555196260567470239552794507131606321782130173346712609381515766467110120593780447620094329526055485893131855678697737694357496573324622649169280676529911318020980317475393058642381196267328344639346897364763738504989575188817124152911603082613979885246792435946896866753433218268554955704557860074606895371530595844535594096324966404939128964364188566991167677957507195621964267191502031617827222894444063175136095131648169135281628522562434608810742473303690187799194506923040900576825839671688822263029403519927936691856461397668775803977325331275052868540105868331777874933240160335490556583794042826065450229965504565317749161927627181533902479982908925084554438312710414814249720839498795889592796654736831404302673508400275025473733803193337029128289446957457565591756231755200610756029409342195062796238624677559501967184135571039204190536479561244513140031254335016664577874406907407610112323257651618244391400740277821056733544127315817081505468872106150010718328553150924037654304011188975599742661213264331186581758305280678007219763115223666614492030722884567681155590055950863262133389411043828083547806071522144511292490539177887199049390145879660060455981914211337206591417168983677677387450589834814119755742826780752636749008974671789783737614977258582731839760197154401410675982249082854476804279052635338738481750298629662068114202671935675423207279623288002353947509593450077885897283987945766346225793593153024302110947458136218255487012131706805248406492751019359994940161842987659945083923915726075927950148925440919557511108550258431045307421889631686929852382436422254260313136851922385956419029479425603541609949170814099499755598743193706230176854740300508686793962862500192849662372807027562794415268789849510379056279493936743250740079027640264840315526238908879009005889453238132029784038831945804067519772979839707190926688304981625385651293279888779326137821045631062877689093313762542192783820977079847309271307352168522799205042711497807506778072466061970607858017544902530202033132426357169812797350684435479958637643115568666638122126237825966053072943614998641169655057920203958956558369970743076916258238078432417387085012226728146688785060560784057599636014792037528652797468235027262081185072473187311546191500571276811706659750093301523926051122612177282605458228725203980134432267662819148111039782815630239598037443922390557684411309494049561200057964583264230012556321056464064971679497904054200406559869632708506439822077122461625949329958481742270180955850250075771440805694554804890657754786203339710591733549375159830213860203151398197639818677512714907172281567501944493323893063040081133516057808304938582560944788393315748333123213692922587226283954198078419311148404676651040916816157830759346643148241674199731215752516080132116130654966706063932657324630725135477632277696977193834987560140370471371906409993937109653825363572373790929647458316196566141567830008744327325532590725231427222953622172139762586401096778636583339926599441518419261140011214832182809578510795141147367871615849487713037193033620774333921763950905145049502343395770885863208220365010297709563626328077609807896391481018093486694803034299370783689791023395062297693094462716700885409666117697177662524065646300710106119747842963920218287252523314351578111150002503902721829310733739324666244361285194779358779331196843869356914661004520261276852082751633352499849299825459765101836906678735377480213080711805317707797506442564371268825384706891984098283467075179015217215001085130770792297534826211059734234554765862483201757445002854797125127640425498884377636460013287688116033020521439227014636869146415858657235993041025478651455284398259090484030616304114991482557290222876616608165799410411467912960205198858215951708614472508427735474390302129227732062120511779586737745243028310647779904725403374162813297158403804085031553116708214498457759042904841543517940235245164231141232564912540575607585665140275166963586878819409290569312718516599195300393262496301287960799514173595142703491172252027384351523753193310841153507042458018942112994984389429081640593899903905994314288710703000073338306715157035323318982585482872248981768022604311191650877068290974091962768427937804257118324721676429469743304592287877313144027501708003449693782217345746923757929813827592900296714131605678079703142031763779395634265790908982572142377578607075213018670830641474387654762939813322326213103022752802651734062864881967074207586926730827431017372040156704618094957072363034156523814762619905610293834943227637698073352653669385521044369008203578317124139424540701088277925636137632226045269147212586227795994891337167031250698936181183684049550599599268098666000524753844851973461227338188672144723810224197646455805617735685764096433056193068168703143378352101318024815786034501496722548986995509144376592679407134500821207173620168876629202154949862612818878768201343567427976368025221337414828830085129103417555521984413484809715818685113980221755767827019929481372369524289720360482450575747234379985114485299575050915827919911621066960189195952201183041254014289181708668291930699003320043562070444205173329133060151733962145022249321279024647089049474211402098354338345046874048603760534844030657978647679457762803468928573149688222605919568536451080790991849272252514919844012465005770819241761999035858852933424688421017295061987168726576539600628872922956914253305568826740321362885907559374659245854937896854322995004448838139016626976144783596880008864950779904802875976745026814586035220355333987697977260873383516774474843251811433803352365964710312812385122169032057103357162175533085488467088840079305266217639819082763093455499022311743948312662060434759961789084947729984283714237728128946243988503443897939548023100492124805064353469543283316075053025450077329613192978233679578148145094674829692669143383486731555072793230151526118805166003039498528376024348445658127940281903160135125462773272711132344292223610715653248506673041683839401887938721205390073091718977439139696350524018588319707622457621699798090759478926117133677468538989555104996757257833119443851634561756837225104069171299350913251812334381841046542830214102461336406207519384265879545847418746508917864747479855619847244837117472043268066652885185367126732644746317792048271063313062284759035398071350009767975518560249821608966444139238068404607265201991154024601897734089569619565824743132328490666600183297887353957461920368046940452145706983807067099850309099048854043536665609413153380474207156354235721536856325157532197345547334006069512323537424857487830647633606151037528143272458651646925039656540588970399303466117340665320335237832830603563831452596853727759029550288276473637004722416557930646705215756780462705113803578567822909690333133885853164797830265754082187069508686339161027613081346149597044405667336125265718613912004226962845045424154599088611152462580407306452081074729399535689545067372492588123491878342762505852608413467845023625087145240761060324454132056664420716967915251182710906602814891176095020294790499621521352924018300763630622686555960901880622648257279852628005656795244284782804090549704680836689409725733944249092657154727714115384475020735910152723911592694347701394197659837589896609728226498994106044885372185142536809466947369171522297877271883767103938678511860670741459126230627319320325367304481121492264662345759861809065431928019373896297941042752515479452807833630152113599586015598894602553564461632799442553750840099462174077181041294329592350320948169173904645354336732219032916178839535530749040574852851631245729937420867989302822734549176500820280113596024236669640785250791906740688643442196533163162833708173763449210600974825184706867588537844633687597562750362428670587365956142950630570409996380170667359373775581474147228681214342266667708967958877955953030416346101563453235013235742109870054214278691130080807170604594118642887715116789736616694453183295104413970193578306468847250162846787703243988607014105890790718082663576140951634330719857988309834509420299108197419723131805084740925059245520108439667771561116330522829004021979257293486429430872185145325083840453819376908528243338220216692309326702997427479878424413406235123224216507983389021157414444880873893456397585261895353642640501424620333684727646555374904861934892630064918797589196261327320825021894741395513112624701997388527760981067533578081989900877216533617570098049833155426111122971654165143514370984950850577263758634014531567380300990171167671033995262260367433177535248451219320229157652766101788191144913069788282452732588827638945043881380872823129789662228410157254305560208408254582807926654673806566610872723896063858254913538739345609759798127927288364855943776611107750126142600335049431203885444744789326096392650465925186254155653683100754061627170937402593141695901019263991851760975117682007808978029353565359089610941579235997134087231999214724112778257960540152218449710026757609575015982278482768102884226342782152569275640195322804384365623590036148957302108627518810439414967214186465384369306335079546067448225317813617322521458541122407102896479958357839827367129334665292750911307827921440725695689168185252963256910643006656522964718980562950898458364755802896117193150221694960503920811849816391611839689772563471974668727574311715333979981821577768268243590274037161506345936086730433885576774230707407612002420939470648211057034202210519113899329713682309976945849704085308277255255725210121187429335153814973907702378495865263154515395056761284112823821733550622907179802551198800341999684508896637385241074020486496497804966731856951799276404932779099177780580207969827962546862187854682854709518670922420164208500769490575923732256254107973143567835795159360517964163136691486452863466840800281451197622944297279866556641963014988126170723647314803211364500169288201780071615688185353493281989458715335958006109445978129920974539292971163895205020938436261065765610193060008656783734965411350824064696626367626929614989020630233009495966681132080889000357814955195869269978131707911745387701537086217660975624288038374893523526356377344054712813505637958234450447996187897992234874620361737132198704122873528150796866123942618790711964275753198753658312121382481458363575556270475556306427263847315408332195997693272360393565850387728793405102808805084116451071355173890504654606536030000856473818213226048509071555482471034183418416058342329547099843802715987562783501101505951328105761267739494467819916811114301622148894310107225125722819068820849506489582581016110536015763050622443786980557233253979835372823214667466295007353301727064549672054126563249708323564271952809761902352672392487770388204055352608229918961925963880179237943352158773948074158490142713158933758278282561316411043907345747271392402575074062063771058052855619488236747230378454165909992114758273726274718463205603524898796386752238684242946291273031256104335990628184661342746094391463925510377708959960742701094663946958196714042554427982088353240131302396361566793486934565832199422510519740706776982981507317986806590732553966266028072539955839994965606519255276106836503609612540105018273902218867884179788032536852078442881074380506746703695314284913927846802046614320444331310241857165290489114739391330168780368519021040024929289394054029687804217557011854086342580790230425864776191096474709254793891050552830568059810610201194567166972369387100580990719217398820202166573540311980022252360721929127401228105290055631206949309795086436874046541631465272862081247689793656049599006460344214769045395528160380301423232023632322115745916374031511756381701069218862318796857739900149414473241057183335662678303897334014337843544343237293484087660560830349928531912565481964624845202847877471021925291019262638904144066990110987203692161754006062286670285765708904090359871179020365791775581022424366628135246733525645227799694084355011855422210266299164946611213774849851706111096085194677699559130551103427243583932672938959243799034243264926496697704188434825931298675870055396353387672830920738793896667503407316585218462001901721168433884698599683339718575102244528301782056003124727247486551296497266345028024338686923534739481266136659584053358157740342060898801615966815389397753385204225782191229582745009635820108656093920059068591871277857476514392968485045634496173467672428653535081667293233468185766388058375680516149672634854890740590200464130290263245639065720982192621313536330833019125204900151098328700481060167310163570916854618273936319398468709155819746326762798807473869081601273113846328360828684135252833772736842144184862462697948871921465130155234556400887863537830693786930789662748855176096753722226976604307939298132653351573537478605383713173744540370668401540428524237119514374086517355247225162854385854738485942188594374397861680499843706523274097883819713545816018267110129484540218851465339188548541412526219654644755418275038899451770333303923053907434541489727264408390391660483806851573733740060709727182743732791399335035934143022510181650123640026634249653163480570951414634506908408359122815010543800081859951773127220892102521225390196412728890241601440633395865535250010266016194608572086290223490108351651323062518080649650125891356173892395090633102118923380422741073777254441771669123168228134331935829442917598210538150786764944159580498120170373145957311697863784958495132574881690352600933176142990839614990222806977832092350259623978785800185096376164036798079373689525360537743192155449616528457723091087067313239333688065453723991092255438817403435803709844414177102142817977097406469401243934615480225813583599921896236232708928996652650767322791820127513335840389439594698220507600629955311795837437282366508744282401284034760528126447558689086391601234553257058275693166874724438172438777908867066790706484105599023970430396125441547510787271000776688652519625839517074635786362522415704090727684525749782873394777340229338188067118741610685524763897126523191171338256517382418793982194721504352516858156255393417114819912574137297944831067230381495544757472328578799978554324129840547068373696554626537349553648438207168203617988959836117617347522855820734443114864043538578776051582640037109139211857015661911097330299405435937711380326287298739277099700538372660458658905108704152071460931695117498415255257583339924584202935195188075969147998072428739695695418550789208467516377020092723328534447335574090043570474654527192482372297339634435428203638833639319165367680942787092634087357381499140849401278418200543955801292831231070444589162286263443690215987700860202261226146847848405418441031124674457961184804474106082571138505663928993576855458077854740867903881036619690927330330606976742713488164529657570931338976187549744897435132399927840956025694692542476954678634312928872349004942404357511326478246746336561789066529728426063303243483377964276292424432586372400226441149082666825651787234122977430408783557699111014251879624500775538882935445450459316852497694304422137636441047017314981327641849889913968472282096416917118539910650390739209149251967446589131803494846333120840417883420842608902495648783792380651979194958235569047955202391419971368602181382165900099858786192343968906820800431897660803722412217789926067918492685318673620857640834449287868960777814536569281874577890757910057151896368507906114349717504158415949132713436657791784971802614130510123871358144372453087488796019510963726105863981158890329368156667994795544973652596338616603688394750837846288882001307394043617752243595057360916988565957647919818565744534689362339550887993369405748217640821690253831517184900247409716056048529131340040008663314338401270374045301857995061818046857706617455831248907547207273126245832788284232284978802295491391979752131886777081913342713079404126404677169162581632034233291216644976186770336622282510372452246612109982621610983678082573541628140073403069612175183263820125299246973504908517532365548546112081674355134185610380358512892772500476655861970616274441093818805864732013009091984371528143433816904372168827797038561392836603091521448957122524948510659641545804115895921399671781992827509343696216548309389674693764007939224623532703541271556651133184931484154792808157424202567163977529655473035822877940817381006762553726182125193015446300843416641259789760760540590826017736212750278378580043859009001196976673595197021551578852625675628354197659078997792735128504764808524839346794568779336310108572085821599293026126848840283483185299766903070607757506331474671992976521181189365470985364586946034957407469967347479778748687258161131916048259588766483233156913220991230397878895324452472419494795144549759087874549770585220850323547356765728083197308769656477228175058314012945864623959455292626544099213803504145368541070576813672651278439990244585853582918850200056284252643837271093438275963026272017906075116268926110561932703140582691160466143013113628966822821356055904637431514717108772777507007334286293785014356363756585514329993396103184612944262104133195896533800263283547017769549206617031720391084443532085462425455403324122284015015764896962417127551648354507889596107334946792821896012865699074131281263547159093552544500377233573006363812731808695135835228407844299549437962374768111961877036704417981000562748294464640285742146922751465202654820967099666275792719688855189421622380405561551783307902265235476246516788655627349298572232054185511577380249768029284708761655221806588282763476376408846286981107591073641765647201345307269395916046243285664227113326197450418403788918157976363416260609934275176109464959497311359010179524927255813466359613818228945783532870752368191845048880463239673804816125938846586705560107298123697554416283406000047449479337737321240883859666924191388949431700345449972350361245897919093643147081382334359673052530477819279023093186271435884023768349915356390588239075588720263467835228726973270180850139156081106767987083428689730965681283858400814992756681142418694834675648628855129120970289730243878885640775834029696933095126188046915183644197783011536664331042846625007120789508646431270125349292475643373122674056024977807880796586400901770211183719776027017884099988815952780616906253131205025103165107230109562903264676208077363288547034263949918725571878323286380585126283842751375376228053226782339085204777906044251394034985557545887150330027889585225990176478255144997327873045080588168163953217676164034641226895271785117016428459658120821971516080039240669155564055241118238646066925883689823808668978611803495461792163384467957667674952736552097345298792443703173818226594459276524935403360784857448954006070674867721383865731394258329916617949530126075757819695939574411769262162339516981319666658240290219869799885423465757781632138554161576265692316377019874292693367270112689492382995783188615588669777747429326243142410665541455450373746819747452174603796936454012759842847250614481293785699211272341080696895147194531350797113682324989386650526280912399881868341918498517437246036707525008728171232943286655952679332596035321171329885369251223189622327602525818147305798281813526509559943457168580626735896034252806677973629999058024056021368636135592976044217185037075698875847069951459040342182845311183664679767701911416193897250159258539149189538739085624833946868966528079458789606057331486987298332526059549191198042074474367990258922620323215354463254844307998373439444956649330996491820529615787779028494599155875080569215251614469128999432338621231679002149794789893695735822363357815234328752965878772231480132538334554606890957921362847463931901954378932828311981439202788932577305235083784834182398004314275597099973488351444118790227558521958651225562224802194689091566045200137122521164237570022380513632934657394043606054608954735506130843421816756503911572507780223473192758417604525903635177380925909269490730210633796024447884323130039274361174674143206726274454883960969852745166106454832821855644882479342638028710259926324019913436292679079742049252759531958260006644070207317107205155556324621380379743448581677612962474609204798537145553348632389021919390175720721473270229268068700494154869516834192920564458982688948828394065213721255403711741723003512731326020911251496525226538773035509099393058441278440360893765176485781023433805842970960030830085382991090229045317513662015206299574064861689676984527532935979012975762187057573786905482383083787389272652658090787112447596704573520517471948871082689739461150469708239781044091292629257415732852569165632235076784080812480337291112224975252259239691828913005534697851881657208568745603358032709313900762386868959593221746750364756611715061979916594310523555869539520932546574299566861952647017623069638431164159922959010853834834495145933228157114586877625741771974512188912538082060360509324814246442576347546140377895861147545382238870332655761026158043792276517893026246929772861195771429183642223570645121484531460310537132858183274297445223585708991359183072458507712954731257144075325581055266567994570833334417465705698542552446287377496998856466182568203525386157465233550784793482801173892988880776036108531387569219050578791803828517859144914934439164607813446297029922524193953935785698815037620564999800806566726315313744123077019282602239910078105276247640538320297290699111640454359941823680712740774152310102165579713976727805498307399722847638417758382886454685642930445372476282042184651554900871207016902878997300634959485962718730273135847412464184495555479623778635990469741862887736504481268330242197841562480135357465668974247799658884242657883259391895346114513320486794982317890444873811937996247183089083087645521700304309614700484000905220539370225798256008609399868343757024045648828276951294033367622285395978691524098136260209236428612848538289619607882611510019727986407253085620500986116278957578825123310826224264748989112431463077391679908752471525718094891618456038243787667171788853091370807781289572964153184705170263405617084073983220650713929789318776731485200670311607846446398172717081033973566431770184834371381696778271049516292708638058498330250432839336733733325753418409251809047089280122194282026576494200689660196716350747153885650057899535190144469697058249582156176907553956243268995278384444048003983509464000944328198280503342614119526337520121417220557174514663550394432530447984866979300333902660604208825205717955954697000346515653078243032019914361562525952805046911441671376138413261997622349847088602204990213879588171153305038750504989311422793931266605735629140088992685189723355972632981702280845449943695062027777920280989668117281231796562174412018765545529671258716599482002473831506430766208486680796857365555232606742618476887288989341890879842916966541549633458267462490365253508057255733199947537221994205291872144357545689934729322600783344734880449425135364353401384498210213037696735581028608840625475675447881498076887162285814246521182040616238284183694760931897178759548590980516539805313566817469179893949434666604272936328214761069229056907154209026895597650456408444175355277610710542707391894214120647104862829870629366486075871010322046725381035542121376749095217272509765308537526770023158608386298611808772083970111838524986393188772999916855523018666637872005480906011449612534695713176604172540389391095407027248386278036743315799909965777587754484048358334373442006212652111680068662766155813269527461914026096972244944145772105267523821787742316689621019346467928102644710165882981620623752029124856532077405084678062383409303089870513621473337667799736060746546407042646932761976061569151229750599452628985585385619114597803513854634639977183386702701881142406446078876838418674543666958771861483958915570622466609117470210026466262564111805351646317793228338662359609839487029124602768909570105312064481174021710979454523566420062926437488832218475982990130609042464491302171092522992740418928197370813121202335600513660785615872637206755772423135657682243010039972290168467373429559189545118509326407972441240548483156655518325853013285098355560284942605159221209811087671446763841341872612437140489136506079444101703166583520128514113402238878942081398835804524071411463425246786759737381983372970847692693138909958290545010239468609151656421233739748083366610621586417490070532970559705078763467828892845217767258818727526279252335905873193462166734300021655942843990531348220850508792668226574995888478116202836670820026256617636921113125716474516157476717705488132394640902456667622647554690969710096038070025548744063578059480603755391960280265836947262521320220837978640215287888177273120517635057736839995746846977209564959819385148668426538452443868691622730739645826536546559346373898070437051164934896347119132011229915713044052411908772339912670932036073777721416570068359714766285218668698282384925607854540583796004311804538661501177608693095555316835452438157653195393357596766256600673091040850258121427037819652337881806422729148406320969174776855049172867005625294761764528908209230060581796576920358857843907571167208771219967507628799370258644310109449117174937340698127467959284604286817225038485924124072866981656227875792543701291457567065920453386345148915369706924244445392863547803921077055741440268788428954263375379354726219178890921020881462352049891452911843678115431818851708472629717139800182111409375463171240197215232372864324666428236100243176772257176464146395161458541773985417550702827340612935185753849890784432730083926380446618510498462783596068419799672163165177918284243577889337167793894679520963424687070650917695771746240328601707263887989842632516858527288726746896943047596139131903386582784473989726823381726687075607145844176870793460637535820051072375246223193035478407538317863895406178964772370089326567310603017800929183405422187439319223850890830978114177852408016494299147934756043517084224424892180603334281044522412826030870880970026863024385174930974711716739813075404035773412107876372119361238757936121521020315385678681956388356697986761400549904850733096890608400830743287797704460608317203045005488306910092066578164429660336375585460721838170261795261648171565499999095151396463749532926805291083272908815727709270018052086922971957562387274682232182785340841719175373859390237058270041947251797997257667144617276155506671868495255998620724533151110059457017023455677762280161490626727152361935526558177014759642990442046504829767956721004500465863151689480752955101179337767168764612249424455460401408701679404520878517471393594963885852352587984474986960632804155359699826513599425925255055380326536978536332845242157934344282586630199828143833140222720970610994788704776891591160305262285124407378425336398105306949632324439275816127269102272420172778183981151179676608964452333761519146871080084738241613837053729493459644063667432838987052803946123214650323728881483619715540933748536101146930025385941027060959681554223450284704521913844514801227701397136530014918212730034119650309284901513906402520593324242628955323301202881328313573146041538252611236972103552192384995953213176389215016855196538972512787767180000755023570244599376052025792825311361748776637042884876717849191549720000935108312315765287866962154713447265038956391213936725726386243298896308980598951064280532825623318911905881079638628509998979256211420130854614059684986274483213258728578810254217696346669113371185532816028497301248826947879837243237874778002157691459830794014950714375210471016758612721563057315819002363830684689017339229905120661492718483343880824713365558336120529821617651889277474485006099528667626661594744980593888432752067546228187481388078230716312933938975207097292134207598061175782732867661574943657033576141629027142296280207649629222450523443322469215686719280377711399708445257186196916444551108119954891803798044758995250230379914033804206809708415475647262217917236154496909223742055729726226818520163709508278433414060080411459724860399291856724752148598088339807983897052937284292775771992214958419806133272020619301399641259113851502863418622412651470122676932796229942774177293325481474674263949381433059614676358557566338630811491148360187985527212683294789000917187191692856071911167468621821268393481865827755591438653711824490989892999517189961119732745792019386454676746365661099633997151173035832459991723289151567125856169930666488883472119046671536766980232150110975595102879399631065436196802440795769497342778571378730219518294365232207412967891855228315421065459924441655924126402779012471089337750139624203676832492793136136796331961178099487687674662012544970473959669285121976969552391203651591085123092165867605697784785584977950203662902343562832770968807622690901587843774200553027484717699039155828679159511492027987462904050610316010633136286268778334675110422819726344672553638352313425509060731091542025016162348354331586670894246827012979777513289495918946813560218482982457449861052380929854613191112431906281627712081777120214607219700103988439330511535752224688579557592675074716377244333147998504346057640369127041959656930172200527001177272867902582045099832517631786063297526438275132697575204798557346054324199603723206879538040732278579546290160216048124980673873450268879334264826854619958822194836840585675796373204004021771831818639252968677728350062526235793097984196674059787524052931071786243658969170264983582595362392446546507667746253579217580342884742636968641237498866943439116906216077198280355994165012097532646639857840563842634573808529723643505189391849552447381299993952628418233880262369015595162075737830667378690852050915754664485198360747294619841070647587698855035019511326067786545315303893033102150242520303856880240571432075848987375741359488519606878270828766363655096525513704757930306997100288503515827867382228337610651833862642043438529012499140818846075502720197984120487737872556996555109657587675983640417450932282657460200448720958463862820632947918229999256463152827738693516933793150517068421525924694733540267031579401952018000499844110967934490549099911328816877444675110624730795429312155536021592661437742875240996544853870427564580937218019892616622594670498153728314565818077557412208217567718534707061042148163660099650869676136619075647213026277271516895748716958209126769209320383791081699983847570035090458120617705593933873490705311696591657114011033934361799562698467625757299484659868208515847363977269293534186825893608622887783452276083322598399419342679942050026420661048237586555668259393142772075898121312975893671637325782314900585946963677378385676226707724016816565868661859334948516992120647823237083528906194281312556751271926032199112747534856122039210506943699991735907982816314308139409921048563549324524084249902816015516830741667166581461316910192440141592967430105965411263824083124186541074503339474839656554929384597214566994183185111539951530205994505544020104024557796073615498168200830538607581044496940161294364920637038949087869532084063459605261316889811863958779648590999931888010074953277993573025193884425014104730601537885741226945593719405326333080861843710732157351242341053272501496614047854606302190992526751696654868251458730940002008955180536233460431169883482531075369546230759140538736904076971279082734908801916875591436794940240557981209660809536335545970668422405004356166407121812710809204058156688322746894215360214187914541701257023515575696316676463965011052609741534057253636284173023954245310212422149318342372694986564084682249673945971745210357686881215711149829044843008378366310315833436461352672408275693084822446558757065996528628380902662134050668118346276317169928529446693088193830078392431593357649117796450727412952813273535229942212750301437905318514656887952020746064692296885094473375361573824806408742369955093936393690160670876064638014637275725436949908369041945564621225400156870656109730406251848083082513744986705933072352701707684564817055076746633222664401193362655860883014973326001625998960576152293254032362705628840568038317413214669863980671499248621798389895058298869601992557956842402407589403117071030205733923598430640262474783185937541131203949097837712711738377415911414645223149144024245891847254659233258028047511957124432230289094237568986513610535021917230884746215231882032376985090039845261227524129746353392088885697873636623161140824288618864068416379152788888767238345401997085889215849451576806118052119322039563447236570875129270788326543259809056569089262914884540265085675505519200407230629147776341182177470004078263899109132924221154057954603438133412542314744726081926946143341752014234631227282488942505273605594838503398730622922202820145462992102047168051976652274392682607568824067820772467982317386396566785640789238015633522424431833148538586736690436932254920090758168864795716670772703684813565508999186464531178217811124585801822598217626257344815767593534397955313520672589836821478263652957313575340664619210304591235151576807712194354201093918282849446387762985291426269745821981931290146785776604906596981380163444460524938659706063117588111297654032913673274300899768163375626700057175980650396563912716497307858917145612846185498571462588026869336623611306141547245836498648532974849654363364723329243137620096366097129168728618849541475098379610751456610337724750324024958516600604528672406331295321155848893282270150207531993518910573942274288261190934720351486427500311379752894483773525281433566577335591601948515132410993500272850131283520699831764459043098279281959065912160385930484136715415110760010062916337395345727862543384182899914552822337786536040818347563674025498690253607195156398358135880798251939534472672159902192534753725591419244563035200741398302096358611173125896275911897461707293430823725775390975778148489614941606278412562152077714521439472019839300036234945123550241374961375041019653353528112727224765008385979641638212657881165139123992246845989661147322071164291404996098417711328986335346364248968562801175678473609796624811485196233802992308605235966841184637844127897270684585226468774307648959879032403876641306435177856675861572896821883408852823803041077554815782674670734699118458494058866921606392155313072544334264728114381532209553661173275844755924899353758482001864963799468169678943405531454208823378066450824365583063782995669916244242549361715236182695819103778979110750238017891268677239486571837382748188209137577196974627915987418269701323578061173060257276302200148377969917634366687561732656658866864507014966376474752535755015241081243114331490782560674720633179556532671351795834338445242235368616734391716602340522343222268964024417392157861290367608007475104558211213893097825872005169554485141869704451892875960087865306117548357547341241881444666193989904023662976046692405778563889707673881064539299182216592840753018121808765383105097160003462084109610404872948227029692928274640683181056745550902001678448306954138276157270075234370693785398835131709409350408863617918965347936369297205831766839062292236565867571579917097389513980671896255720056888340096870296080668816797233041606584544423910028810522666692347418894175589882328168643901121612817433249995692340014715334007138434370318608752802767441026246082017823087317631799588231225108696595485145970008258750923754772313665346971434624562356709350351876421652933750930962741504270396994907129002008669775846857235919593635058788586429141236895161028225250737089850315575471119608569643077527188603961833454780293827716541298347284009717425299657324732554659495786535215449861074469616440475868707121667243861621591485384616480288332015549053635067478278982016198480171865828599582033561182480905119826146888816683711745427879808056892877930248460005251900580428419543792759931107188390008537981445136854618318530609580876220379455189579962070007808875315525992624116882070451452425790264225374660024078638305479405130518941644410396420684071768122086810857767588160360403960264374063586487001135877658636037667698930763123646947163319766854435249517156341652226145197243125408676549295635309905550684823597331059404147324232319568977305167599220494899151921669237648595869599459729869075167641401393579895633241896298858473774598696617701818173019785035802926858179209561137094849927112475176141876790922568541861360707498006823926117577565352242172257639011039952569438108859599557152288430319766489090217328814744199173877936995904844234541383047719352435638980039660527202491904512764908617671995661798444560250294670028309419953655375476951333112852353161475717003162394498298804058776906903275351659802659428652493810024371792372453525127123887703403312554535181263565012206541256855950035889692670429851692248076979701288067882660469508162118603426904084816993901027870980571119618652592947029552348935295074504835100182124070068462876101123584817798904522808564567685353822695924763935633499662435452226898070480206894671503901643511126862182778521896657555868016045822388978603869673035636355590761152863502494718511053201853778803146371638991705445343146972510406981750762827823782313431270789290750235229663913360797150524353695655346333983230257768727542776882415742519159588655002081430623188868086153718945738937053793290658788057492749675468475155029298209170798648133354515185835877162994622350708771809264679427964612116112531951836216206373071152357668900976180454851858414194110145917143779222351295483851937355245891406225708488068145812701072140726870065608016115763550089717200979417959486987753435778089222124547808330122585111340672748639057408723172203833969876176069462008377383969314429540327686815684035602402070391009264662218791436876932851169243488910003384393907662508993509487936950703457038317584356786421489626181233564371300219716552337824611103702872606393758241084353194718114683199116026758841882361790365384944511449950003767357395078255369644440139001401697223338293293505693289761435071239291622164747604410120523628660155524249214754855546950077802302373770651308463119505767321511693526299391418886699202717184267781456850165833764814747995826170269954441822529036904150867848550642228454545178282412583303407878571737495636187620357853838155703204399166232832144927483817291998511697391648138898436314504935715015885539381607860107723756907446853639447014624963303657736373553119394361649655474495981537401156084433864536402713609004771500333145861436876790570040394438645685792211064146766248001080648796673640850175458265868280454365663858190384954222729528487971201885549841987770765181259542842845921276700294887223719827115681426897080139530869366348661623906691925417620471655245328178510565146032269379205729734547182727292645435490371121154616103338823868007186117079635882672618390696632278643738120449723337535062838579974017035587215487358603688514646855711300349097129116665611659441959852200671637815467404623705681140758132795512147213420293457384467354718528851669471598106182146465531034178288474129380912107414177462173529646754636742475792314540546443505051443063981770992689321353731510694993258958155955555163617039124571616006614009410361831139257045391304382663697423708181080968196739523682906328939620059476623095805322590203128061821843992274960911795441848636515973370583011738288621040597057608667826496636907793575737682986346950708832548448881584074000828624913399036287869284044340579404642260839220405037781722923482357981523346850242520182769582672297770979929135918256644046563963537857259868860866261927240025679408900995096631420228575742625275316876983371193480283466321916407159065014225573224660075881420061352139705557132355407381481214525088147418851481115832118742212608504453623250526257162483768969992598417724833426292596075405403767993595720548504849046282409726829770260422711622220488637465808199020190780878873249754691999582020764703106726566709190539369811975639388509970023282221149659171605437284507059147317726288685077555777397014103354401440122810660415448218946163180844073998455133483206565045954382699671631753139881501444803204700668579222946480864334967448099761951974825125130446919836675777876897523524160961458304229828626864269203871114343240223499226632551812425611453438980594944708839292552169188875723057836205374517654567757265837081736227149979093362102317896983191135164583806719099637622319543868027033855480034137289654133185810580993182498812656574631367410757076399990522493200987496096048424398965714570533784717257086973460627761348846668973207875186932358629286794869806508735568236358032560417873887334711576008741342710477171142196311203332834522474432428934975218361439826309901622202586508335699338339151277275540313801585193910889483678868211201647952940404886721649049598542937161475061267169051512748398018880889260803667180452587630053565014265717796561291490997231648881170457995090173100034248935977855666433233489446241177613453808323691690375824754749220350166456210302818735228986711207466548964764814217093923197823356592040032221081916430136640557339267337421602379735602386738475218613926906520236091904430646820446674899231938877568672330112776104908919229708383483899756902554074503198348523285543405191417990022565874092798416227133359924940537534991330099151014012697729639989196196633878965247509345677736533906083914505321910858404940780822570196395913059889786410801273064545593228388847110845330862223056595796713596554483608705622897484727415591574903845178519371006996953784061777970094172964563403684250985038188169685458097580686692083657020682632718549735812386438463125392279182242755839144006895911215850088958848877106192079896192198482435460218255774161745628218045786975805937406052208466371563437843749370993217066685787445387045179309912076056262454688997199676945750556879416504373783586374826942825267454316350465884794116363958083197450996446042436812448434795100914851122683541789853331954095316264862463336676710812286714322083346177834543554243685868436097819293744005331172632095746553977819092082205959532325181208866998867534074983218624265559228120750589722789932026253649801351408269459456125646572680385360897207721664392421205334447646846551089125354488440070141639362741864195556710776295908031763043179565736572162639528539932547327471601702234279372573236842526339544118216954912918171992878419822723990157005969534263119629352572776214635436561910746968173122195671695960449043725331469481342410542162856268445854994309695962862969112795669225868147164168674652165530962864474389843637405730142367410401913368196840935340786397212606681870868983936862787504275778865986464299790824262081880077079345308127052950611091244560219981005539811332310555424586566201665732859982376635536203748339704579038619718569195653651563650303588387986076200759074071430804753348799380880798240926963182619395504384462493050875787501690327617102804602546863734620112532357310886654637007368132063427649249663656803588140056386746027774590002632269450014042271897688783559853549540551821732475890044719231062160205874934497607359794134607406048925889493811439716116591068656976652149776682539084219382384960265818923703137354164897976277752241492198664263597827928120349906458601736715704965288605886839717535468621016879712679851916564638929439590806317367534212961446026346004461310380620501271139718704125716026518570162346509905968769292997243805863706946426559733607813881586395514022101543136677701623911384887875285342825783171988385630016811212174694665446166843628476059509955493954961851570840309040437151270825383847548569426145838504188857920973064811764704314120635643827818581620740463659959743288653481326700498361995224965140142914664914054126676869490049625928970521045265035883000440079515541412402897802696878655721322470802522141649109443401964625643490101212242863424099391793761867562120532747243496008831949220892111302086616683451618948912038976809488177998987134979110705584488658293016527756008102752705441073236103494989972783616695183501813726768217401792902679673071749245289754377156387667242054820821977021221704531468165914852703501370005105866618163712953965311358471699309847590779621744200234337288120167332649565240450785593595673230855754866841423609582321078011872151615622637499772567829122817290027858874137577159683706518852973181897490550176022470885015747133060460485054072075762949570769355110374428939650717255914831551076160283505949963385625293204319176757859555769705647428742944334934681338252928493634878430786802826640943711515508103987614733200464528820681955113375683354929519410362109701496856486690899413110016275838716512982958798223938094864244275908845039885011131346859378872648560996397838082478339292631779932936680569980730682918951464893676440311726554397778763400669295207696940296404125187721175601571689812756305316037509839721848245836173365709856437136822828422131958650906409127766635562891938132642327246815307623381454321128572486210843922013460464915055851382220610933718502181109868955451884266541262475222274578563022520170230180527921087721793138304837193198999252967075627751401696809714430304901832547578598234638790076441085471715092487591275712559733041683793225088292806486716657154403521477112330605550266602380771712418285734567498666667267324529347440025106198074413744733184132048951284713449023355215499664508556715049882916430078436260704999183262774770378421216459610162399775086089489183398701763973642222669830395499344420594083530814748538048420637331126123068990771890241413041964291125715703694532320872616294773890365814476446001553579489699892777506649125934504502277100792713948351427931030145629921163450083439287890821114454463946085936514050521795500731645403924941677485901796631723651817680114648533743106441461933088671008409465348941309216703447478457529399206892712309932031348867591035904480950203505733507284500334343747777479453397031638995385121868719185576179747726969742535403934346965471919200982614549318014903451899846657461078696486386073863418393518884488104751433227280538487968590677286554955484846603146002075002962566218360713245811245010554608838488093283700413576900909134131185355563551289716707667992291050622256091931091186379598035211204738880184189584509999258945609852832176424814096935619713867141494175887298512593679158819942243229598684218361397854078182024551177852379414034061419088382903091991380486503860244388493405332974794155605176230704288417341917000728796318703379246179374887601769890388309215315533126585518776482511134048586673955250332167963229603349663006923352004162697807322217476598340874322886185988656784609481128997851965043460690955542498736754223335082588775247127941683281986763173966764801029001294251529851907226279694332812521208242806515187688887390025262937204291881138833965652972768406960495401416448800800704093108006704000886513461824311320729963002858849094091828882685927117860100704981677070562070810370092991260722653438940114128377348183881069404188162190888972583530387462120018005796447014832874164527726036163090924577942763899800359287433616835505375638025780705507325326749713799494317898910104267079971770979653515436647864464882990398714234750299959939997320944106572543349286380439036862168770673180718562203516057909676145878500471257345264987543839917590643914777556730749909102097715719893483695655449930628631966585364415148091355127452854152022275700087883721546080479938287117030702983823476527291907191597807688384437544620459521306506086174982349603484933721180788102846317865579039002557656157685524072598435405341374275124749770418767467750999189810125518412900550850672985651635068972178557149026483844540673897238104414430508615318941248623485433603521653670422739840168240342701229292859079457173105478060171912606407931916591962020015279662908354392186354997809949667191774133965933056185381481125952980254510387591687411796739162518209553296444313796877219572189855810256223228229466864382793515747617254790464287618198272446454404124180145836913018841751420624420907879196139794514241653673975002058625082223599128565173350058346008010384014044140936662135010714672897803142715396001511041745620966482965492854460363223043705902542472826253595148207675939367272275754241692227083804096502940486003028462323345400594849783027484003679618125666032857543041064390556505586240977524803822230990655778433111263145293078829968526058624838159448079808705027464874169512577589052502020768521162379898280999239617162952306440324458444100856657650850393758976074112891011909213995576889582369817842358462880098308583088468813045102188222984452919109319154047627050123253220770019647657742147847240217254240125253024509523918196037412469812871546405189940189066027435220416087475930793166105702391468173731360153528828352693891871709179484193206745141136792680366843744832165579121267970663852699255145865916985405615236628562629447055843540716673412159669444223674301776335870777856910370367467956969790165063456387608955757686651760412065092144062017956351148845914332928554754394883054925104549142540808838338295419779228434676002474794120866538644013962674742124100419399652418025819043437560385914894980413230051521852327470694771311958139996867571953673562886489571531631410810992912233963123357291805305750265285348964424040269746767113161736973840406296482132782812500396051510558659843213703913425180120832556277290259107538503233855841636787944428204508855318246061710595486271883072303662270568346352708589426718180682891419458658077504343135478971578907715687358686136082496087592658382640939814714253928264257170432821126921921910287217155276999780614838334280609347059451271229151216540473247883683227671921971663527896253548917679589915637491582098843748115790468721559480985508475492627676817374834283715434004985724241969060252933890737846954100148403549191464892358186999853304975367828516415538656678623210766476311051786488328983394652851130883875092755251844463766080937168036557233793799115325734434135488662830284381636756073045089110492159506457262003086533257712782634659315385387799382308172563283564781045054799716468863388857159014849051821420849177774950640423861038668157066478141615831842253312880737508679725055913060506004782075721997456617730667527742011312351890011866475712558852672405180068269833827548516416374178446631303555647555553430375671791120515023475932050054082972033875482620297594320545124373704509448025152934739848081540129428407157218828547774223150817043938841670847989279920045784729151966529481514022892053048965687810323272623247935783720433039656263891978652366952900058802110262289376967159854449791661237072740565361785400530715047155765703934781991258137540441276851338854326442623748460046074118706084584669731300374360738289183282980685594604972049752936511984619114671435674536800817500883210374878175472307848462340898159696724382847180491041275615167826267448793791262195568434018900709017860644132179616649216103638592119529194406050493439810752704371747158823950222017236610083002387973193782304511611252003925648141878434739974563138574969295221154671758567005257921452751154446362580536779527036187916868280655525413776418759417913643890347486869752706620945171452951843054264793559635576523722298509058881029434449889061555555235848354467741948085397157923406857700663580209333052867438725291165816858931337188800804820081970733637427750080366299616260816766179306238047217806954568866642834871703095557447805810446027502800635802695305991545010291357198489994459133298698154435382220227364669056787885486717803063966175959043037747399326452138502612996326995446538582389054455927107540385585022356414210675605825481955301456000418548401277853179410954550896745842262115264159680960098302844569104059670615781427042124212418151663553524442792945777058672304992430302446366369716582148503949221781873756679009431677995606325747078209296768902201690344404248741723510812653927647274534267931666392662913261295797464734985925851669321726268367590869463412303791142097998495329239939706080517913795262746429544349291522365138212193371241398573230211472381391714862935965396673586124040442590081832695727721281313812104743971147821439807447884604923961676450278912653101021697314572859486557105489586369383140674019513388249558182737932336938065512004527889873524057953757301940040923024791674350489099182547954725845147762800540945004474507479946601520458204676414024776996335313011464689879346208864096685800417133979482624942534326629444401783345060094224593521348502482066728968778458889922076604192104037503042544959557906407239887814224746891414041184639429424930464725697907677343665183910072320843851246662330514527963542256416850942620431622485302760814976823352216419144403809791243546504645679505245803436922304578076776047475372864237807411068726757111279988264237212423703613613921025839506338933698507272985565561447580198557738457719296982083354248020547644215546106689300250100877121920916310518505872828304225091964876398995068113900060619489944907283075406963208642281975344947844025633843193421936014070530380415240264011724407350708776977699950944025963845618927633979447892631661807447757423920641948086726913770597795935792465283538725028264547321610137494267359572198268278367400744561889116415162769566189881797234723423027506396956946627590071383395006787281561865779257349296134459679295197487226868352278389668314437638076651476854746355902166045684735595442614006781556259914703747754739247891228877718371275275212080175307899564638090305045026265259245303464528783701669951794684835746668042512924753852123369708292483115063280413733521778777598877584156091406438199642119074270854853969240905578463444399522463492088777342678896172047014269996096105245324729856702969498136479143670137858287980297098143118817959273514092046063290220104582330463657776559852020214428499990876812101566631941950235020993280646504863111532970699284418936358800151374296037964621155643289554858476845058602585361290443442831814619531181410790738172785443977629203897221843400256782465753259848032819183083283715462544325187825577634408350589923536899436846094764488653869025629486018774848834491798872041110061296532012670734043206537122321956127017547857243978191617169208323926804478803960220763604435692361108644245779861593697982389329755368628263778352313520277277342551311825864780277055141477973619965547096004033561274732438912233001480083208682442688364194525440123641844322260600438028545269540791697292262020385972777854456900099345517478436079091692270527496815041097036365438956839097792539050982550075727872769847985317880965012858998852781364404101576839779418700703351181193318788972360573752346010141161786665259646628232644073568272463978587909427947555102169789263738838750580409705122490467998562899189358977212921755597229275842185071930474967642470033814099629112882913150639896535319465627466912930053718095391209298670217804591534774068888976342917973907291961083136913638372634940421320133953564625407496103749316952430756874154135275319365874639000956792413200333007978126003221979800756806393812505391177648975973259092422114044702211442229634670870226099267192927217114762542193976218179169139396989960902943057200087757735016681692555795288551066286552653900697875245513167079902467726493488952940136784991924889050102210619313850283205759389877751968007944321025606564551583136860091406664311531663144421070591325436661365407276885291633493626308335044843236113376951635673443292214184698316996119828459047106194360839030008472369150652190979711005153712950656848569187511070835946130699079799906917849787487387296728636179803784228927183373851568021201335413431762751445269541004207564250347736225259649295978375224447348999597423626563446531477867596837796861111089230727957947511137402861965500525004195640013111296874809795710251365971882472212556216732528649521992992680479651175594001356832282173681943364005746014454418482986843960989541145292723478956061207168310190631803871826743176341275529925249703725752931571274248785165303185979077630230868607610002689784417582797622915463324343239691972951898182269238615137877266205593126140378884211587781630818028429477429222688333935529774378979350833122188863393535604182869108026658686427157324725936718620148190450875710057153667837178785699316270862294768442805472966890705722433076358648083662256879843396980249586855410350212268724388684428985894446707902306749117877859755393334797382089125473970724961987189411751633468475610783940632351928780850322379610530812536821898744229974465917523812116211082976177849161473395043792537965346368175472212138659077041718503994141620184479994123303486363160531599827401211628226473266653550892827464047537885397301631433986870525111781188761507859245104892378388114278864417446752040471019021722342669489471734844115773739172139403742594404548640605944516830153487170983089732122876025068104137214566157846774382738501471013536246594308015552172865313532434515953117520143846653230581491019811999877411637392509798103790371256686136985174909553993689659048380222183644712908452007511122546888685033089785104194371888232319321313490106707965725474060204693333386344854060332107983014756099954602625622700894272178952527757622722668097517063127043009883233908921374090685855249833995320151211881885577471000755953219405181139969219039188007937924357860353039744110248348054684490072184517678153231233067027427541077475192746067596002829257026739774358228435513090042820392924402623216641744882048776379980941778829574080473844274178682055142698649867460452823638087466640651338101015682407403061740389201603490822031037786342848292797363672569212494676781321193680246872915279781508530450360308711343647754663438774244407943626736447884866810605857806276845752868719563102393448301925813667816623578303018507561304350815245921230762446581367365835881407256858807850631492510173180446287230076991783493002045539626083934233418815906934654259306482148055493071790034973405447437546294677624288869002513727610698620133567838470048595573761930799421130766677719177131016986186410389638687970395916110547366018538360771768699601429375848431006208244671882398664807544326545158644143129425254763985848900881759726113210491473104878241360388226976288359695597603544523887475470897320148702195938797536584660234838179079717804895533002711161073765930455484385368070074233129236358749934562269246942358314277002729076564718623766516543970143804117825658975989072987951311660669287225376420139119480866025516962559359496367981756224868791265443317824654068320809275655948821039031961642823817529320040513941310550297564255060110496439175042458965444552168829348166319781081339964477512291989664020928021927766238309657907537777127625950991471205695058414176157814398347512407432690008727378118010786435694823195773476153735056574594260265259011671386082783472762232272323386747466760672945390157210653358711008311007721800286802655554547732057394512802650298494091486459309101355782872875786227601140771699613848522557422554219054476871373377359862756303066528715255223805018789056656813783881596093209942110849830639118383777596090936026431506801859824379105235961870284921857393944016587297077607522075032016180229684219329737699723898296363048422474119188792546644842222596022819032770301199819457998122317695378670551695541444790527270832302656382890157369324547620427228067895580226488258133604328424088915613881191443732922242017198796179138790363028977021945177899080076981602948128355212577318362083557565852389120727515384512855085290535804424039638818756505055640396758276385713982606040336326500489406382481398911072756503327327038969690350500987354136606731473755186775976425619152645190604092120209673979106738581602378867001289769479467573397766795371347643530398047797270145474626548620254898445064323337470865850062601710155367645154659633218862160094309332209552595021435697808751160910838289991441931141404720223069542471665103446622852143763624436779938743894909337856759020737665130643169326122546274605267616002789907523483054596844816309356160591865363799411932735322889969531856519752508373193342555631875754722835308149198441273959409861781397486913828743929740254547654093050870812980980838980041835137349150762523038422400409063137667867022540400180440910469383329571492017162221068454359092133344625059725777559324796973929521835611979092953981132387580546878653493357063852511684181805323495803527581549325121929259064786368762133013253149646235319714692356471512385933099786008425116983208582040056808259207521393472274132226776378735691575407553264476127428229791155273188571825390991659994564941601031493710811995112065617425975234854378126121079546371941004520740196397849533422409122732511117354521287259130108925503643512255154638073659635497448502485019419171874257838939018078808317556318469697594843843649012672665915985990394824004086659688233492189372330150197898573342374048371238983242754401394451710259062642665396763903157738342679508030803454925042501028450386561020249820643653970320000973272987649619573439108865087415111277895038754389579109214534726736883681912359153765291632592563796715551387255019382376308038943206851091944427841898219919327375937695682662522211483172509732869911067326260201224960023221633575717554648088459724253242331072400592690853702364747808699986068784359429335081332007396748516475657306641009539529356595545646908874364245648789517568817643207368767657726718850495993789638473745728200406377159125839116885790430730782880037497216767355501592228339150297315187134963612626879425699998220870106146970235070190435294157695789383704834690573986115923195073909919407376886054474939595432751720623033629389121860586716670763140966818509299685436873726847266253213817688625072311413329425364038418282084885320724119774750008223883408164363320885785147665741294528537805691866272950677886457605727692386057489884440645242055679182980811128719660251394427917893799315841335781256375190122617786719580641517332408699228358430449374101245609786836355450105711982084636713551834101170172419542461018699082345762219719334068007511345969807638174544203921661613811111414431539706659267040264065183655887195792100719090081077635879444366409216241226648242843510120818185694420608748226425963940525127944123961708831043218381971116592266009941726079164170430633779375198091667765765566750126995558363914475319780804593731370279433491209321813732328724061623441526640452490091942189826401181141819343171638820008016905812699953488999444781074241705879459689375504373847542828605344393174238045470075295894925032020376162671711768680725949509615909851043263650699037400103927390518571738004505597406165021959336542079462336778920015586726761797446043072078978354120567949056847951934614487426041155536957561827554043540739221664044223107404090891832774251512809254766275334585296687631521807155156724645220038761028989411340532689576789906207967714009098829087032380033237375759506908289431783943591211547659509763303595543090825015258062159094985659876696400605057668202563965703192782488521996530480464377447515989282770651143294790964985838347849072254582069275275553461737218297112065033850909022485629939145226961942878595977233879130031438120441508852453529555724258299038565001700905316789274097764886162561798762551393431659529073600716558557227068091518546794499492538361137469107493118641981055909787159890383061630785512624505419722185533376726249214738984890206852424931728133249670305179220922249102830928306822696135608242481823231183512035119366154262336039783243581526518254784449009439350852214672400772267178581272342674123152495248283063076441992684987458315614136324710224262279677205834693490906626429752697660655154237233954560162015509229031474778049195478456246740805174020615086511586177423155809197992719430407060215595281351174959487833972304034899974052500293191526815808013313976846561273568545834238918856849414874429876622773541280194960422046892455146462668225755224805130319617987198486065062106170219521260764973998622563936563886656985954362214340569345542881966864646058354807670510564743868323602973413176113422004915083089751587336120361220175113713289968512614776367367509319625095123638905807737587380972275914103426406494267644097626454760005555561467642027192769273468300918224609785719182397661637580138131435042991718292850308172980821953807537530984724066594420774318479852737258353021654301721823256094690774011149309455400361063229293295734173883139675309428190655358802821650817683632454557621991816880939653812930471586931543701579829128011265674043949193459166384907092514218840019661908717946397272161375652943220682474707396442048427598662209872196655874766974010007254623998944207722426628674100186443307070453649997213511952260260406152152511107105816262826567842272640419654295572238441739082830871818349134807432550144758696790736398109699551451028296667448327817714144877912591969690776928480564504531619999590938267349846375391040185325186214767371863920892003971877143140922413758365660939144256991204810176063072227517182416579689971022699905309214913690604080203653732611630009861317489366069781985884983531024137254262828739646936227524279391981764634306243616077128268326890879064265922050904462321279628551865410207029015643864293888581620479755120666704394033952333983554693266584974912290894502567696219252122227862554336717879962791939149824807017330403432866200273536641814690460043490722228876247987152132062636991066226307413443976605575466754461712604324697778287528836754296812658578979618325746806783114421689053084968986063885615820300619768252494732507871337466142282535405533469315982966473686049509477893951665291650700501249118199024561275560363807812401299846872182027233546389287975242868299299733993241890984358985286906183657374497422258359421837255554089794342162930346833474900015236584424086993435668802271480632119709026591406435316202544883960087621711031109570350621281703569311095351050685176093364660774761340380788186142369615331851555659341852382763700017416643992557763827738418455937786129015322669660372533049680284307979595340071028991446000713674771696912046553569194400885543486073709220538229061250778610589586702625664175361753181677547279822480578351767373220637128158075146746428886846961224253395235026048227607203520395220955037837946625326026165006010094683373674152489079598261777125132841922072552074559450875384056703141148694497726607199290815226643854886755260795514691330169196284969967189883918260871385860788957762239531655103320770529067632582682875047468067511452570491085613752915131219901318463616350432656851022200619434312624712895136552774171551941596175936407190157193406505802324842810071867475920081977634995199142133954289524258257511817299844182987723968400609162633232469725127143084092735641947391797579337867350779556635200585420597008396337602792926676068182869499942122469364370071358992822516915107198281459493592958001246967671312259571861323427226916112921372491456769363264874085045768011182676759716616903107648309420223468039087665999410102646304388218954098410606899642769126306671100699097015975013798749076022245128932888124497477041066809192053857076566039267055160505973331870650293419802428576498985726305367438197765674820593491144131807748577258567099614264910770832156839337054454808851534069773986359193123523896179432331696177304419660100987241390351787627330044963069908838724600612953506947906697899575445045462500880159148391463799151545677027109171745168102642059725349619223135569872356408434250029563841030701945649735745885444546747814867454556124246766097776494883134079311874235097704654586576505424659435806356868772921561052790562820259668535932224340277554925316122645023836003393691171823182218640560031930418920044532210421477054301908456986252468840676047892134646641546347969334505570681013027159670566659936442679886337769496811437231744289135422498820664055746759397681229990467398651161136824003533169732123800834585679011792515653666460189300278637302481357577650255938505386312389858590439477135080613850509891188000826292121757150299424597924255803969176221117054048248854272212215112586044433376771263290020969848976561298920080425914432435960239448073342812704555361820061724602951557137922384497527567199684919116935541089364004888384000579423047982548409686444364477206742816735268638012551134115318658410516902095748461403054855929051362106998541660839659528911166628945194326857704127297454841006046854976234683298284845715789168855736159339043974080477535473189416560280821993121585260724079142575940906030846412559934266190793297121087921776443607248584675122420755537406618105768436023994826452285518302679317357291753039990605972522157913186169109825602907913321311130169158884928190836930649703425021462974361077521207096193955977824269179499218828877678187483506322157161002267825122133153256193018702409151593800381747315748658104203221417333226513248222735738441618793497257069456460745805673720192174650973986391526255547174418552566103991966628377148640815215494955067172365015999999320139753156198750349671778844980832723373425920500467777414172628339065983416317032230334803769745230420490177650265660416605661767087057619568630393714946725572619527959354054913119416343432520414486112512602353519566255751352300434920595676256902567317132062265187408945538028432048368184478927676994088507804865181353552512599761921791765978887371961289836488571713082011499676370203345675174604907962757228787910950996137440308271234928032307766712333432561826069452729823117663020039887549239184136165350827438081555588211047451481202839018924079370881356893286509559135485478395809626084183314920004929362259573582175703840394577112895945097030800059707168276685079430307033661057737703543567899833741949314622496041862726689180302369768737739021293897673022316965783303265320885699478072367429268045386063409134224311527371292195451272593357401484120866937563501530091571191503226735995432283012473849771542375941371548278505842189070129434500140005278161948764406718063828512350660824629627999138990551073446833805454506887991278783383708751377442087428201422942579541494180359844261103397634960955041941600494954121345570125746213530282507744971129087158080394057295863135838608700520273587040076946104053007958678554239867871059072382332118170929740402723680305029870581709188416194087018893237703203546470740615336555565547772918684116779078358864609493285929237903604514931953917886520981184167446590994822338627937523126073937497259115674158269557455111410954072627852681709037337726525215638383265920964009008451223395092586614422631487077135908944958118286118515154931639590757172954784437358116859846118694738573475650332407937910068168002067208851106471227447574588647964846522975520218133820520262693736917635631749899037717009963816627922623635537323020643664092600572680421843410272995093736377242823885197966022102402548130290438002616995943141008426201195587331794381954415754594893220137121401324689115294435463700294672869845842457797430032392737688492313718492530280112716888274997085026781662533979829255420641743423446346616628458682122530418191126152735237326839486181113476404182425423152852264465918040876544195693443096315705968452038781389752656402615992091682754659178959622273250951195200422729135568295130775920737490967538152569618162152852359001525688057572631602915908526802333358266209285903384856043972495417174239951292063877311953582597750945223329576578977439669842679745270597176400348388066997699427485956629930949225844412403148882610928860661455419093293349916359734571487552246000298866981548921549682434813547190007713018814927532723068610119603967244745492046740491269578081457813059743452632723996588791013544900695319168556250008393978868458543449965704484399462808640036524209061581032361407119449818003523515489011837035740973128511024049268480537309056272387590622444593460600131864359906803434777863968489201960499819855563112683468848507177735997387084711988379441943100134784212958019130839544912961290527266359622505990370024443671399204027124974650295732230868141009168906782420968716699453649176130415861519926312491776994031380813509044387335592073510283927479112594185819053393931959513271575190927593833400692648063512579728115291142794083960468831786960692891412508489877643154014292025592420762106856002564958336477652178319283540530594102173950558653674719109851160700557277372024938147263510771984893134852100147805054486554011082656103559937483664936301749572611333127107082996232263042392468096713489457255316572015154379287115307262947100054965419545879517670115244538922134361483772541642253151726281954930029579448601164317694768779348596668427039675692538058284026445914922717769015850594334719720110115286749504883799168083536864059071970010641909220825120769356713640515834498559286375055918428817317702463448732416404057220734393842478498393559101684610525693082163562088443598124956681786396255218445680983802884130092231849567932512187913657786599110540413926295838421486275525329758484279934846379673060703757370494019176196761562773002567367727675727999756904310946109122734717442723163705596530301169638582933574915801118721602063188601649860266310883012297734543670423411503758472068395606433403411592221955876199342483726441924263753914342169587218668944484214793401962872299190131385040194254876910392074071077267400805524259283241892255022411871176135404181013016298153098908400127581272596939343232549140731295227112039011156824900899406501254108063305965443840383072568286270144770106722394333078184877441317486678499319653025218748451761189378236134090609828818262853939237727098399594807832759283834787227260081826800026819944782061080444101470829937366171194419418355589355615257224144614736815303068925723617279249360083208814851581499759243253691602020088189998523896746912664724593463034293575521557233186682919596472762576791053531178318427527383170430644633898201791639012916758066818201663698445749140274279715986310234655924677827550921752523974035474926109311436292039785804929616134277957885165390302102390179664153067938572374697625621989668555802990509757646109504747710020611667617092789054271810877497643787556615690062411517603508646157689818810818716322470056096891680276140247243475962113292147432079860908708681335453216673476969669260418109291742458530866224470023605430391537223611344637100529912300645640222977767285910832249968125909554946664606347008141932665733288471180314560992208634228588318134222661790122944750103783519680123940809788359265096568258870341907489352246509456025535153740005126532103780976905921738233484352670949401367629460277570853676591940884661875928389218478071852731989215619629416573194131054703978138298412331019354171456444379606862179501551652180244157178927399745405081439486020930596808534620099518117177945938358373525579047870047700090065048395517191239603535815869188592996128982118957912808945216855631735935600922734042548847364424953855180298979772012512505125136255372574598270610545866292224137086057230295186368859626203724855419682299631472963170780153931786180267938135558206870723688103778164480660086732255123976999502140965327843057773083295416138400004170391294296305429062810468355147819558785403491918337076207417362647694753115905695557290080827347151616780085375817911169986018667359628160222901956898174276425287387478947322775563160669695492416198428186631223413544873487174954816317974338311129326298492413385593782331518144974231600448182662338997272713560253887690327603551999559481490758962245237232161631456700010740953747315776910929641189080514840358180565027808195217773471811728853070394190882501732881026088740313134426652508899933756067259799790503402708740563711219083868594993712259693785004368904859703147182174875015291101374912681894353675098591091969625820224875028742867659136678384051632997574965440387766200680091196590956132819484199783094670026521524391859258911782413712116883616987522929556484192655158607721685698951371763968765204533511232220152302528151488356582508363904911381204917225986054371181948979947430723394085505234964366617503813633619065295487082282595555728126471016056730732276812358319123933176072485544204352680457856762950695725742495007641913124376023354588303431129338473823320398277276055177820119937922123273120446636960550040767372765260676375133484913793756591440925213678415855018543570302839223357907954783172017626591052468405800732274929714182269872054666362291509934964113839574004959472609895337560728166983184827352055622132893903752472234993110587809093146366354356140648321246847875179728509142995421958188569046578878967692467006259392699808456974489137844389780397113342255223853126283056902931447943723033839879252471919886759588868827123207694810108373001976728042755210589863677627038575150533922610141196924684666772030311109023425943773333913274009915493791397781133272218258261794417028489466586123431378730683702337811363849159956040308317999230745517962951769160409301716727551630384462958829935275572624101594314051505578933040071352858435848068361527363169456609358675753423962551370933783257883037668857895448348269155296080809547685544818072343175525105822631734108097398517277092856195940431691611850008040797311976905945584557423307876662455520567229036023847742342128598511758691683556460352676070956725238856056822489925290851550500113739120045951062496533867972959673280267092660261345345070291401553835752195949559419866523015081472559999469297329663895185020749322391303296998004216018337066714674790024478961756925683644310993163895997198956575720142084286241731805215275440883273845405661054074224262811980498678577596435230562297563556232272943698429585348327765798404926024809570854021156768682793229232096860038204092038767084529176930875960056037171185823860357909897151977773462050494245529723069237614451755505911367621489198189895087482746157001931196439520688196224666483272503099775820529432122069396347119488156950618595248377041852254058264469124164681414056844663484310837115165909664004159652665135597262900453390127438795371418888616763188545703975308060451264484634693777659659157174782511042270468844168189609704104181759130645789426978645592809910230970578638079545503915437705046430066078687225966255773812693906804457502534795973430464874264349131364633659068248489975349343520868222866352695225926658923183532774570994534844689090915754801959203367945367855008491371304134949140518450852517161994087435736640866338481947420080732147407650005920383631280492092716032542405230885034784905545873135851072151701212039456078448709465600303037217111854243023494478871221885186624495092321224352012827072955866893513262849903886639018135417559417216465352938011757923188498481718769516085646972433698196179093211413328329461812431320258901935411370345431016041011389870853772155900863911824748339118626573680962223571459796729910300227960698632456513945354255267393050133275272662063933624268438799819535728893153715636296105568779969326605850164846100004727591224299628150245562867429063804471800994314566498033637420730100285948166987552038895604234023012508488798940122940858540302578040155709687156043890326401010371519780671554520855964163108837267712288225509949307783842552236549846650023717740967153015291516340360414349559348024949050802670581808432193641012527618596177040694305313862171488045731096675361437386846049008259910890723452892571542779063067774421652161088837964513225060966522155669453982679973785510985074457993317288200976279572402084065422554424223600644664841725017354598183671310621610152413233260643762470570883078850714715905984310097520145525910622707346127735386701319114317006970809396177165057755990602735615645526941278313508667395012873541364554954534370867724667860897713682031759669398683221097653696520117124831747237840993182823520468930496727082617061481121511555875284562950606272846077256596874085696829240584010430677593258570501620590799566947371595278018088127208224501292829154097500566256754184060561394735826895172106581048646394132504164175476620369181623443093077962772958206352997880371190272426960849371660684974467387445333773364093688209840868020426799463067172402443056668067135821974865007142158610266152116736829076769590825290459728052966519371687979339543616062529873036149789739165374165438087989258044387084824042000740965936994930359071570931550410260483559985158871318870178125227231835197207514161337003588123176805260311042311597271683634895208178536083682022415317701654605583762822129220314268612331393430736431737538928371108615211054318346514205732937477632478038016693248856193829010721682709461521054908753715357573592567933998726280930144075032911718921628053368374969124913841316267793142174984194200256185305183869274286515822967664023268282047149700465296947741740065081704471827884888971341410242905122436604568336051695689803638875837302891334996490928222659206186715061266537929971207229828690101896446168706877471121437186318839308360170178944016205704639292332978102416172699305819390314992091058885978184469804953434236129391392020625748168826194140069358730159134383467369867200406808200762964033711720930860587220313867119838104478373466304465388665700702479745377768751083434914529022315451592503858369312949955026261762983970675431276263681228417250894770897565920676644953206196315684492738653812511329881770743850228495329485975240785911165765937553921294212465853300939936568353324609244066900150446855781782121183442000312287448675846855833344006414224767717562438653715480914560540000197570287243893020995170851613479036390373013007236102243378985651820631087796582613311829372447233205993047716340203679731324877417859791992615541087170845032353533735813454046139097326589779333147167813320667773884564731185149432358375461510910823996780871515624202061690815801687432961037599157536568150822923565257134692050128764602015986512641237777303997358882258157029331208233600124835247062423213577801577991316392689035490446477786614891637906492487125021579256446708749195540157789197267306551442872227482068671384742307404308368484121569034223771204394577039713807652604222208580123248609394985946375667779233649699822791847032142783380407331720782399915537974171616110736400902484325517329206865258471065137625037694497418478926961106140687943642847737550480656314204489360515629520177935454596591936107237578881504453647516451930453223239189176809727393746491241161969962046593122964779245215925141112693909309644104669347367336383065004473187147815286202921325921500983361624193660783638803204408264244887405965186727834246174953078202464732968132404482006589757833440104616086331460946831443341860408294414097089513765498324167365190075315474002792828596479140989884055258275244872969160236205444603270466693923391679637141226275862739536592896797372524093768550275624903334552423667978198355322836957848748676400391886707896096487336483576874871596030139089162634354404043005435636299402740426267149837984243181465586976394667426503833075580901096178561205213528121825962330655131648324566938070380823787358446332239165192578540801378194507101447169687773050537651726088330376203347228751480497366949210814885099632839639747641303045284901230837131810716605365701425795051766760726414269818587032898599293069558823298319102655933467033492935419302338421122111888675435656281478053287239093315508125720347358160210546488762450754302746233937218759045658814194905360298872290967330019434085782832852676471210456942112920692950055476760148781190435406436831145032304056814855132656245010846140993190010816486309483188557978437444383708455854482646621514641067068986247630203571387564250737252597421687180264905821840030473492443498901440844456804799281601078007009119047756790159955309943307274653904031676818608287651380766480851407637223248205113021077184098787585199553489834245164755162438452890760546366510493985779825032703412982329283462313460196821421755284772288850149778307910413082887005248264927087026310725612423968439288962667659366914091318039229378734726674605721450684575349437212206788881167997861771127532963737570180595978913373746206667112108596300121086837346490240108829355403653528353726224511331426231361611618536810358939860629668575857206051248671586706234971231098906730750224287558618966972242344397314075491460157978391481360651379502428156270218006731732521868110813999583329608059126254006865273231723260259802180001808080779945045186274292160016586818031344835002533378669111521206447535007372570475930650037165513695983306547599159786580309421629075026117322233517668577194708777835450287304368019530546315137479163488449712494634944187075735377093474449870251943269256699542802625603488061749813182092719484355868825366061260947204410442028861145776858196303381051809849539611793183248630995507250358903207182463425176275378651079247043365082026863650463320412175187778621274177818416298958546679366609089764937972694086087366656284365208704562393399114650473522074341559200345985731769362851350102529878874632414910995449994347855581157969968944622476673277529699694063712627683841608179009988419558713743011520419138741860735594064271164404390933768472959205756629687431502646039685426340007013210327235332708824632160002887577715633871626463813415272343829036818297930181859413056396514168995607319674772683283823668264679635424761248915129337843647798726334743073962558335486054909101548884288482861731265574157869128183760128979157683597445381509876583217705514426266449286754485893160916629200363728156138514893782409432517248677607701855987315771570983965119874708442317279974491147322859493634970791759852933770907121652810061406845105729992370671377829850461060785749146958967733329909890139769386183067740836644868011360716499392336245712620113084215360246139405312588520799537974437286459171505110531876900575794598226406415226143492364663469565383220919440871266246317844314761289663168993958804700209053459906913773516514825029389935398930215307958342979286411021731564006788626758828478948901393586151511824514190793009705411193836677215964843510995674670420403303338625808155679281756219215117335688900309960113227245806199434273243494378872344257103027738132114476166061703591149387024626078597253596979083537671974163253732436108580597675401640319001611189048126445766752471890166136324738013460254102889181924544646153079265700109053307378064435665366711397571649225170981429622883538087969794419734007211492363264294977996206778520840235145596422782474994032224467886341256551640316543545592911579049609132408875613624086970364321937924666554011391807304437365121926843890642457394100007225842869549617778085560994932608648294751562608886386435742733955549494262302076040991760122702404554760021657910631003076806649248616335578425225607114109243688472063509808351992664429768657546876349010193728599680274759345286011693035269996653632759158591662339379834173293134590217885048234754070829024347271243506045484797954914535846602718394804475191765763319531604307391169611970997577291752770504663577966292303204971073794900103151745117158062907161354118589223170235028229484862055724206449828684728493129425435821267554436771743280029458183217877589541241305155859791766316396878776485826095895805585566809232669370697720575406184532279367039001893584149554036969757912053621962218992255402333618801034265956530067805308768509385225772436109234232938350522668168794882212216384161358380469053368379344914909334688562427345958952457751481396824571546266136306560505808212627877588634237820601990929960416315605565799924651984341576249823364388320612499287801563027502431591819418327446902495474320505822247001749917433660081450559804250374971748624870502060203846031881677039965672684120827093630787885310542492056319550504233364810622498961687425494561753880587279212385974579453170620358743931996780508636107345883298902095830258712686490804714240486985902907395743328919271171560309507413292391246726516756020929285575055144499306089744482964394899019699192980830803861174695150644658387349253059708610840478494171456786659839573081900779891694279841322738875114909844656268459788035522438462954818316410758140586581030021725713242960751787837974919837363048399049107769146090757807511895671925537077223622836461258178252185494107357276588923289147267487473639969765137247832234797271652126296837346801670627429776489104700813601858303805360002377439934673104441891764461177586976833588497690841730957007985660762950599099674204334834087942016849729999260587048709981473030943175419288737905679691985742902327465804093815066478478754564181552441401682596001295063862672094779297615500831321877661522262196842837485508565483479247862306323166899260667787029790982365257628695920737191076791444268910559593711362599035220262474357149949115669660431170904257546212437050209376530819249418438393979600948146164726923969483775693115565970807880177469636784645889305248691782564875456736947529435502252467710458076465200117194025054224661169719861393519272127241865016486967985830487712784697935782320761011276416544871090747322368813398678994142260377170686050400881872075029159221411363409921541935943453374847706975186415500963398762756999573934953739386726991202233756262138538152208609341200699669051597937131321948076033190551012875024616528880864696409254810049394041842308553443958789180452229485597936613376813149629266999837368302063936497659279734438726355124935918791576664305057879516463811192816391582077331800776009290802973398524793940019674101082362421420525476600865149183608606416012687119095473727736170774220644084171275110757539784022704698944312722851516659309055372388234420393968394000924965980282911629635426397215862473673729914086921667633499366898087699222665154360189993762211852619045183800139678026842366467541728581271330319542249843624316801701813320594954509895031193977108614580177785138108122776768286705336869868663592675496450907021801963365204823638522311043575541714026884422960102344705259144056545617365205575325896783049934427703078871130126736161617542108404278114223991247444500333538220017528684954094854341328731421714474546175477236986993084902755811838184956109894371767398944814006802440880755930686807421520458595853196833883709843581466878886255219088408162343118959888940981621188329876211647449477713461254823574593410956711138583438794530558319340454809476074042094311885860167553758608123371264928816600428480135319016619905996737648894673821709893494480908942034266487994431625015607746772853854003079134185929081396394017371220929722318027416575861254406711485389048137350368958166561866661955927351771797625002485701736034594110388426204362248568246458122674017164977623296563358423745994552941833443606254717364671466985515800088489780912492936814110123321474832756084018319850996868193463480127102388659040177498627674202172871758467292782438792573335413720190465581901819908469323573713795601605824144673804300223184395819632323797181085891658221139576143292795804986656181231104184628441634638651491215095698676848792340129497630676561001844894314455957001474139788677325250864118639989103708583042289149044950988977481654440113723701139308329053537537564422555455522554900768289222622402463925048647795523158657859362716779979158647302477986801932550605671699086263572377747689779989666827395678462152114553645603914181647131918358669936034900463536346364778230595117673139607820654422066699253298659411676727908538405825776408457343949550901828446218201724757752948599321279447839512417118255790343094051249765666205145371669777378626821181189106944556440164345847047806236579360102474144290988613221262398082944310609740512739505614827440108760091491283720780408649635926932700699444716919440742760037854515616124726971838227983789364197871340952989075897324217566265833640628540181044922885240952834426450626843106961074297722490513431853314143787113039799619627442574044608801447066040624240753994673606436796696108559116680253428422070700273480845897143921272063466479049782909819186121987715033161376744530472470298382830587925624705326424009949181361578529485479800305589840666565654251893520878721608534573819539413893894434672630504059983156079189212301846955998475678805408659205124694852773056454586440010790592783685141171028256063043821535305008594694592142053190241680990531666158904984160097951635484416466601051834528138691940581334684857972726778683472635668023667428791701229091165791140048378669788410194633327248157742186872739187270555758434519228824457027217407028997180473272428732391110048511358279589742595512347688785006986513359613981293088524462256495703426104446861080487818759024415488185808896152831326473271252681311631692899485084134707688229801129909886956792836470229516939389723952688393339787076869001749262956981849526258313734645100387368130897123965798064834257530778697564130503200222894191690502194306281582037060633579446462623747664935020679593063026271567161811069573744772740327906316354220292976085657520178326717076226182102745709396686458568422111899418522100739249395106706865136094423155517250187532982285997780189669434708497227405754809039817931105418566120862588769521585970633310119695453143664610283954171730339634581189824511659759314561042259047289518541864071765661692971896869840198456866890641882664596342675137126157602326692765341846071501822338549576736484329513763205805587751903285930337030280564655375216929009836482541558921500693388070996887440281397971269291859683185130959577739879879719056119940882787216886986273889439641732364284098977359718491639992929135410132734338696190453060670049579190226217166168068569733015862095528150494458896849320511518497797888963671709300374037835366188438817471323616821329627755753827006285378183008586620345879910211372523510549656859138675769561845824765022094663027979489114662024957553028096055415782964162993064679539341382593682797255903576378120113656846202066469435665483424698264577275101613853940218186978446332456400220791238620884684935128208389657366017134926295690644894315483276135176035764945508088521223335343099478841503048098845147164862521597408414961282001295709752362623758218872418182106683996789170438093020155068130567239838665088033705341454959824900899802643885071891527219964075484656184618335003914608744038656558428645952525456264988995017729089618119559730123622929424433961614976608903996190350047545476991022904420634137918669717507441956095469297593918434818049257640478868383875984320891049760582000336362115539381325985115342012001947015164689927969162209306596783797440510345543162009045742142385089688581378887217861851719804398811130892526734377625721296683942768590526075574428590485921570413996907408433686816007045927701419404914393368446385369079848017485424406592830466622298793356338443843081361201966420757834319643296087955440725439054712217995258406936891590799939105956945931442781786062217432475488890883030478331105130780911243755617875792063358847721296895685915086964803830593651325128964134140980071335023387434983426033899098136201207731607837078367110778115989669560597304689131190950180659062095957245300847857207069661399291868443028667016756969729806231502176361931176139077503749594371698128436906683467471605661371418441622086482874304310238390005896187520366011303373381259456496296196678830458523848967663639658194774698002417858806860566704146938531315849997227310632756067926037811212413887125759179056314651509724000734062428486958370318184968384408333669520378572451809740514844481865343541014611072438971367760098044868208694134339284385499125165812931482643809278505587612670756261990505073115377996839424686625084206089967922940357199649500816069082818029579066215930129831171227001279019888446672828851493577935683100596915407265071792237604678943358373468479522207942932297930203414424526710619038090129153356460151815380187662549692727678884303110745444978687749305094177393482856300894165749463752816773150659959539259222146069866957113223866609799168312147180408633101295937501490217364229015131217509590148152109588375451880203019084512331965208412967694794374683924997435172641005772659059447107726680290367703234802855136237117486451086705118736374585767975268015796175118334939832369490421834479589359931417238386389696846956304834332550543653525699212956653490868098606644260214070116328325040100789838220495765250271962471904317595454391468449355245507846563033613262555220642663656965551578965623431871621403817496153723903194164883663771414184038217667463887700908861812308249212675409561524406547287320544608720278368169559612362427332852846616372601029613803310796299726486744945756683885620413107910956577816132074962855397434410591871771471467619447821451308836148905858833119692454046857538563405797494906790867712789661000998209210475830714102172540374419057174331920383651011127609833520847511770988793873219028028608051655250063070697223617708318230170575056281428217443863083082572506601118728034019677105230135423887088588666974853582603540425701098192025076662872828869590553911409163892475140054522044541393253224123601662850378910262881500971373771015701969449492644302098078836926460238563130069699872632197435693308471500805371212239755569672786672727689343379919013556772782805061931202034185995299016207262619427352654465321529526251870363636330438832743473335467035379443809952615656334790050849368462894234192575418871344709349985849437267195221801467459636682119469420629079869191959799203609265676412934924449629438813781212390641840015025398889546873281079305199286474410272038641766728840019994717762012836657077198999642810961186167169916046998235919732747892572502790967871952909339595158138877617252194820135630348924096044603948459052701064174206535390882485974482278343538666841299105896762256897119197938681582328781218879293891083061822786019934540446371767757803103379159631185579403454636379060363110849542937553058389590403487371079261570104273802193504030453072715505556815767914489602608825378083899038981194756344886352945712686193448878159359639156453281693105808462796197762916298495737708990070448003268609597876306044609031017837149440425318594659216276494477773872124703321002016705191303678365739936096383585817835814915359403502476648747216517045016884543045642781458647081630312930732376433556447778498561371823241429075864964140685529324984695886859744431933290180846933200725739234870853891477808710132664684558666381705109045795902718373972791059448318411789236883508026626764811584200672653659320031687895016948095348471067067763737731912548585039712531004037957485375527350330747633874599961944400204683837001597321101269852882977088736998104569047733838046256099703748281333707316811566226864754175001635617174530957886100752107497739671324216790801315865539104215911631546582658331811691503526771255712016620972873674988920639223539697746376219987433996750225412955109381366238436078379585597614022125059314919980359710178290503382393928451729886465817350937558054792543574297066791271068478313492690448467914008310332237967341857412754392731645263388754645266601543965417045453552078743923243959830712571138128278884677181200848187227432053766903505697549314935978527205409084470023418895486366377066664778218317191354446158285688591949485436970632416459253498634578579184592272500201895975411118424066418670293678547574267557859094469903381088029184115732120118187583323619853554180867997641868334692533665327644152166291966172042525264212483442906412916277695531848842298031178261482231412413413855650017949164568127995099848694414651210092763379520780263277039024040066879559908537819736868663272823570889843892369956821888298303519062907325041932126466120134677507288643508272540735535145189265846326441312564488127598581336879130443778680455201072667551162464124320359286242805344737903879152010445547913443345419649463171283840167872157275238967321669571330601705642492829499958621726055767534932232244721475974529348813527839621874165510607411157779593461027117256017483080477024080033256114273402568591557670129396162900701247468715079227607388558130512120198192423380305988433147727512845073102269200028209795312149839255333328201293828264286785834843026371584132224644203602905728252636183174143145350955804878702912947643824969447401712031495377617120424967345937531187802330912526946520668663437300152492732035535889500510260195819669576084983316235111438878665853331314448253371514275272635525684465623727111376617096294013896836614657497395025317676322633868783594374638916064692286699750704145925738765210479194481744146774302821820440860308403808778761094675568884854073955357862916843218396776529514461673852602496865990780319413566780681996307403082493509353606127503268907436638844825598377600841715502817621421076456984436091061172517935864012253529793479074786167071288753755086555598791563130953334762551587053191351277388586499845931164529828102969785999134233542416059013990044858406118863247375732726352952064943590389948882088642154327641602558749052828414677081245021705545231433290150847198337239976026577733152839238031350070645193268220641101320779610539629495791474225235354896214601153790318820324551797862426864778509824145139973081403325836026178678636080016899644682615912050753100410059070946588606390160282229604846224325868163170137269750817506605701655451349185952492786225273323941156338336338902911208103280284214513582150734657053547379680830539210599800393606141341497287486734894582653067985393303540044640487258521283615714742226917371525063454251413017196944991127513931671141776934432609640372041418124226308685605643266314047602342191045626359926918593440528075065131133904435512337335244818539049897712600958122701346998387664310057971643808235160324705382153127547051636025201779404546588938551156842016559174086562203047807437668144106831416004333609625930730437123180700475553664578184588496519359644340472928275781363518266565921336007440727351978784015703539262702709805596459578770439053249395476281719012948073122861549468077022328292874497131718772748789664620339203630356539372224769580846545924393387417402212234930536942252096834322452030820510071523097920980602557231284799257556553228262549009827901225473336829790364698359597538171948280019307990019903395333741859030573280376542451661587540500393096662512376264134182800263457433340766987818634493756583775450467702179145368763543751116122003261085281761259855977032222464864401797509839945789030057947620413462879654973629989768757860487051202940861573138683232650274931230942331284036647266310038902700366086894858437374721125456571754181189594636021601714424114433568577051780198273254204498322065053733315251113105990157170026681947075683804255139937587614056988873872640915276185675491943765535585376064162180886309340756795554344883991385621968427608316235819042507458320666478534263794205822929333867030390873437288309211105909813703146398433027294531967917117591473660340211541552476056836830671170330484696363014483147239736295908033483148096311555200387857585854680992337624963324281218321752321023753726165342702636727530481986064176105172571912724152263931506017829119490329849452414186228368214387303464391508037262329571924809272486700229177800797531547768796908787618992379691816783770492478596647644010473247270176647673279275203966487180203930210518989581098739400344038679519030937617005994539708107169270041789000371328246601645117277368517304472822232530704634351107634270216477595230708533688530050863190285985694424506173465304223198107940410671990705534557127273148516945910974630441123440850934239544007061380076412617426633336609477233966450697546863132690519844120205308499741154958212900964597099300946180525173729019362603663445601158257550154663192006095171424763187043162302526212208353719625556048937985177633437091642382114043032493266205587168383056382957966506339603085824601399461432359058454527197663909651296200027219347860634658219343149339922565986011992632479628305696150225493437224447019896333118436814923422759717549518512360764565842980318044417459647764086198101129575407521023551854865390658598247927868019144473155499454150630871629864630910234569555063124420661539223338493844638411388433476977937629923680225223388783669056426092753903127697664311043534339486061890431662958248120620292908252191468791656654295255706980670650002020634613945618332997718839154489421004777235962063503592034588814346431764587118990961071277662784484050191066451903957741784158923721392887983441381871976463950797622401613867021608165950092118158002372023178740264544366449803540266933459394283770823710730528907415665924274800199523456036890506439081780714665282637683898422368230592791760239752567544051530590252190284916975666388674238107333047803505794628235304501703788439400759723599384902158223612839771986829507244835970583832181681549912750922746084564106203871734181731915293745087763082899148627842070951446457716726835193337920123436288393943035457803067992648551655741984988832062844089850615490360513085343413278716724829862219588947724838737638599600158369132345558010982147470676360671963223228038282148269443692536370357159549878547731110101166265706222513953513217051218695433260603926196748004615361672070136872071178609131237488936204265132818526869796461313884487737958106147767867304249196010931164953062754326424396660987671784060337589742984070703469761026273829776646674222035370989428309905919707460557342232987689545258272317600643982506582556228521300153452928133973565340379385710179167707426363708863304418321649554734510391017446478194648976422213730830962179947661851012156704170019595982719446519533282298563060555885384555239668482998335169503213953263452717870912849544993547176666096254812011494060434654758284501160794684085321396240775793380155824952482323525883260252513543360064120854447927893130727046583903714026075529756317147370142652041459147938280288623507046035922075888994838475741700970372667437862885453439824166251677267519288438372168308838732711094701827284182228313529123597416323445488177753136522347812890827237173708162669609406834551807879441210392470819307020069144163419627020561378700608513743647223357087973533212725455337150015517905198849612043916833048286599814755094780752981479877511168540174613311318012653155815537009433954637920776929415915873782378901009366281444000464040328562745131308384677469482633026996691934808321842919185689805608695328837940413611276467024611437256529687824281471570924786563130056427771563496925421103937918803502030755799149191344331467557502766605892753570022910915858436610262380500402137848736134353302871290832414018259792462792100352542126393201845769482250207545147009886486450014443988187066800369931295980572336852192189917329008796307832018662105125274054149203462369513598754596661725718460517475668760438735670024178277408374381897840779092755551473560210591423611515784501282281936709803878616532236694764148365779414926537840742780820856656587108146643581223801283327977505584401811011133918880760020179542638894455557095483380151835220560640554926817223050030501999594108611785920826168293967701407156884090335337622494693200088778625429028174834221986704669549841338045677656507162845982729105608846097366404457553158058620580847767576450226735015125555311161654805868705622209468387237986039621809306561848956352185065361958748510011729073566414699982450360921896746576438897564660279731156761349926376531945348143382420983160180898093184611120011008393316082189074726984069213797467311951092837889634152862800564434178781309854833570461156066755585854796473179109246277578815971058592868508108562613888606915975035808248848790136277925039678626589041729457702044705084310625715007911191155592586200690944803859364720061143468647155118588285298462298259883212413532068699939877369301265871387043610305063541863473362256802751106407475050528569747802463009863898593942137913634221613536269598022858868625317634473457625087446080313205596145478944262416516797129742686872121900784836764572987034591008224868269782178497302885884395397654955901036517472425900052863684624638374454796511544713302978337540443765768239279479398626842187964867793705338866400825520052885673274837429129972943084706350109694192715804509458656282665840924896332972576925008165834934591296763339295882280759784490407558638688954402677275315213200862496656580796218342692854584171203117299163832021494611917764184001210346670966791508622514024893893051936456458954366815259494463120645703904970494051327120613303529633415066544805255512914150904261134439214934857271006070302013135383864223514051563515167194035027301667524498153990044050818426547180378407766954599548201494046897088132171627744730375664843083863702753356573814147854447811295567358682059681823706680791790905984551525923618442338167350839093690718698206456790561620641247966115835006988379079378388321116908038143078370952077163420324177636932651644130330380722713056819580876216309537306439409585384429838030549268917895603008175499930694913991004066591043708450783172454316638930319415249192201945399107468994474778368390957937846593246792389369099237825074404192189017338466770306209924353303215497551452682841215722298549468238651358826278655702818298365804277187346551782043161742729274647628969397899849374197334036920762990745900109040688836303838023739075479177195834256231628231969868222109398585166607377088540671031243359596052078859808790414661637105245493757256640294748086468898410877032106300119986877485116930542868608055190868800790117939927473206991817565902818730705920816957665370225209798094340235988196200040397564061287355719369563230226301331479414674439552866716409893834744070638230742105012818705153899343352670420194640538757467665900242774253831552163974818555836031056486273405540660406861686426450507430827117846384680569229887954991524600581324552006937973863657582236110095639518797609208986236108640425701581300976076240441628779954874962752974383436885176896647721404993308291775029208270759669012199817999584972784959214880059106769769523702742824106071174733104372402119412970678943593839987964490030555505099690162562912071109708131877336094039276499864696833496527143765740036473674814347049971224031323941846045668360884468074019648904470531717726403398107709059596136009509189381600022967058538642229786861649790189851376923831109175322571129751715430381295804911158426536347307257906779431386536701667928783183495231741742301621917965958078965391737239778826906707661132464206883194994783409801257643711592272425922194914200728223309331535725651938434776775090340254733021075901781858601624886139236984573639030518813135860148011125141697902935478644284246693757814659300654741430148595775644614850754879356900146507773962387633562705761088395491000697914668130618104721095080025539735883570796844140163775979715296008897053691418238242976008628975736165307037346777418504550295146431105439631848063267447571843519129158138256232916924623052910062740981110296388908083069632822522570975169510363729745755783973861571680514063616955974763611765528805802975339648319332923298997003267562071286870994905720102376066784915332953463077332786867640430576473422819783429447928641427040949938829011146541331431645590674717114800189641144064052032164272321537766367140703701239054066226442624104873997815565219280608859896344882572015278569299225083264278842113257007655089100030695711825840116640884350789135631545469002973110450466287807984108552690651220692520664372255294101993220619724232629375555977289597503197683715341027187453903691000942373455441823268124465629630183961638009555714072234673265207556543036480041837327520239615024070367343916861437210428378563181934780599578648410626598154849045605791285768312737028117078328802970811513237611347086046182444487343433318789509387902790146989721088861443002531260361293988120840232527174749990766118179989735274277376989878953146057962117611365073424651283485619794558486111978029252475564960817072424862239279858618989084119286628451363130227062877693397676301414763298105438572344512522821527670173220083138665227794902683339990229373405936607484609255941145432779158143393328845954202638995885509881094738460315317792012988039001743882242619170873650441228293080599221543630389155622823964944116373104812576914036927300759957351842657228985950359909579572374117050901327839486627139539798450295919813479187896987992166967659521864394757161138682364337053935946334839346443488389974938207464151026772426782280668656529777585183436204747625505877735359805056793082725583254031144188115623230472454653914388556563598103918091860051906108504181595626296209311242934567638990752438830390354531435771191962355327596049906432335411041898677189810613807329322400073168419165476603369541885491662722775770727810837601420967600982112982265572130399048599529986497923205794047659941874493934551259706499351896528130859288007986740078073404631221236899028894618280786468433075652390340243902176383746783616860837599302869546558187708615137852005543838136458165370377095506423256730769598686097638275376725493599284332240289505562106036532672973035121911757957774186228036591724790321021394647781863612287117433791501266860365780894271703723633757043887932376948690833838982026845489406204327769315211487482581107260541628906674027641459526631439850208760745925975183658909791639904959706210261999770180370608546748279081162052877108710647856867444568317344925524142682823510319025576339213121202176970510544280286365666135139857390333037842041294803283213744772085190712044748647482235570577250572618796718243078641498354775016666747052095514267192840469072845709267589522451394364019560128342296489524891916889854097457940142564874750344033704887104678187979567455575501212720295120489083892554045292458202109549460633266023262700210588004387302148993107118913316962499564887362786639723415673645258254405198261250081316946476971399506921133784806375042568746745096533046756408222655221706148541660022866162852439708123873823574058167322447940568173299668477861309959316485147044451431482972565463714319060128056422917055620449913212588187385675820061048795883189731782125283011640721962095842701878175718305944742728602033273955582464245657005343107659704120952161444487716121560334271353025121023733028635123556249264795968793045982359511862511244317204444843147515385487339146541115590885545044758717853546968400664058720602640874782550946991799757745585424772352512365764367900286491882215674419487822872512601979077454779778843512832282386903964368848744661652535172632516860302423189843456792014756110322531694776303588467421830742710063462418013155504961281378415614617368562481590288719990711426352021529831504374662477134844964256623737072043912378833619267151993951666737629445025346582328366492375059865040478579857998576160054986054577323883230727498047458143581870407033449147359412593686158150952243930558898662510288487351044059580973620969158168672806077025480581885843735820319276560356329758734415438017044206746762472424908438367187766419510485219644774968747143760666794754995715841798675796595765479160594753162494857418505189417016451664794692230569247461352186860433778287037433851748141731264510373704974340698747826093772660469423652089427618746808876456086452891737109632389788871526094414241082936460340351320973830141541452629018265793252335789193471967887445706094430121498010964997624813152360454945855652984793300508812108560683718303923429287714840180616951382887732060360983641894956850578793368219355624533871327332790866921050901244002873020174341429817868745884250955453858897478722969400952526270347189430450353557874410021124536964580020583877132321842908400243422970713484406930264482319278044677332510643345161426001398979003611331343528809638672100102381384315509700604018600090656417246321023789302782375243254820031981862689552484374289945258966571670412487690190565939119026932646686802680651432477281089243974246396726195535901264558612756831257935545234573401019990655251378135881086193606815752160818613122041902322190472942455347999756292489869335139878317989428941524579814103355742146264710422814498341910901429040554274300556709628348847665154607041937982633700449802453011895552405102995047152693622288050646516854405865996520690543368480752976134577919055963971402082498837840297026680110363509053438034019586697716980394741947844947986329284944802338231370111485337057087756026408363503452052828488023960418247274613339636629862525410339591725012460963858078832936126567631377579137245011522967738095256959697714157324547770133161866178381911539891457403970240038887477645792857059342174289275290570469689385487001151296690415683236945348490796681064936343091851918867821952394642297727888473123423427330216574018019026268822454077252514330420357529454956728854874099424614234912582360748962013599800323234065723207148148834393940652118345277897176299651113273982943727157614150490620487242278406087071490746489828724464714020796096181226598320334625074372385310969836306407723238701313347576084408454255856623994757686614447637830131367068232461391253780690643041855239870546513152086913204493308132635543937069698302276151766786384625799315538967456751348096776618037716352615409255562270241951745352067067037458117226532722600625409823153314529555782933887497380270191681870865844499322487881401710498341278025367207640970682284967735654498500646771406324967179117236873598651919789246948242026175839479023167847036154531225628716434375220459993681966355829279478373196290474818853714287777630011056231127830858875593442360134876416233829812888537753037993224432828104443939282494878728446294626827707191941148986370229256219862050904332751980099009575910543239847945282385004408570572600574950004223414528945638216684610978576498519873050911122306087878019212969760221627641865891682651260241427047030292138647332215736700199661794141478474061592015888174775020424101039554140141132246596351103476500643804830123146487714435631389187886593283684858522933386414263706486488663824776261632373362816566006689624078812749655671956195592720134499850995314956812748816257469001951780182590907893688592728474520986012015626301214542140956359781240586592883835128738174471654660459377065463431862057608384258481085768674252111008628617759053451986832452341568222571800857389808386406502239390930384103990518198637519799412062834046915629071365873603985249302041411759444219430493321205526442952034665778414762228139185734499907507844761054377260929993322632034804667418828680579415973260713308212584152412649558405761360719604451351490682597755214188530860530757676730335455790045715050300855217971911707035994321409088581921650752792981458300584151453094479902139273437810996110369515865914829386094234146950325271808224081071847749419666713555934633658834152227637320336317662741154459823405811411278338911572117054881742455471564326064434054207098451568630710366444350256390800570658190699449628640860376412769826570063172651165292796658468473975880298061875997252305309522737725474119724023187343463244188751030990357904232259522619744669635755638325420225768469005101591267795934733459187206711764137946592521599768526379440375898529774942191259173528012510152262626260031947476317250455705266572339906316222320063301008060798614310442406536824006426431162951308013294314831277505765482035723926294010821777088498282046195056199837994717408642429975552576571998226019883956302172315417457505348283005236197995818380086333478229500060864599405112354971821159364813709123076416696138383174580681285168823205004729821078149543991253957632228027496589155597204631897746501218113587873808380068790037541085589530738668157471512688052470344580450285021801947963220531207671555900739965347848798576122082661445202909454583495809541572030108670823619177915556121911545247967882858116320737698985918842704450157948777196879819265238120532740514199141702107777769456753948231727949413591076871910465519565869354089573963833020776245596143024134603828180706830122200034525848360042468463795206507789555417105290224419687996253782572800889828355539152438794402163748416007486858041925240087783562328524015159414603566755104329851317540100173078653944786830010834439851233920705199056211757795606945484457255194342222318256806981113382239647230227967266498333361512924765424248214038466951008566663977134996403883835763823806946153344922362903575464715664065468844611266269376061242735339060141650059040602352018636458059539094592979676490165978608838285955408729378058511155331280027557036486238959718052192827180237539777984399108007407936508514900778001783156560709053975600542564854405675549832789669091899259588600241579475493908187154969462755738671996266220058656952019059463952241479750587954695621767788931733643508720541157609306437321325719116420477979106250336718935333393816967686637194162791029321044970547286584511804548920399953250511833971878452384979128433486995088809119444226782995563979039235222488253042000652572029478130471416656675566784579530812865044604724850416442747904171909067915575858191684550648990489525268044882817949937025667660345322648502190091920142190397182972825532261798189545227065347115360263990757766839569968654765400134745521541967900028821439968834001437171607603668311728373100595158242153259140622878864621432841428547759611424221070315156782072565572867388832397954962675671018060541298212211942559634743722853603969487918814001748530985916253387094626999490800492774391224493380871472934872969666536070508232931459914659931495498022436861858499681064233052994305886702099388459789875106835975740174611003494682915436513763520963195859310639025250995596945474843087999766472097253609452483090519414323239216799696570542911943661281054206806129322755517471774115857932803724536081014008706024822200777073227770716841168674389663653910264477383994903182514380196734988355787640883247148281145607997622904388867050499543264005865427823021572001683564877969311895753996782748322184527286233691996195009158526727334697795818979979866349615971230694425520148461307859146605519969551756519991085621202081917895997521681246217655955765656830934399792738252147823001735491218642058571977955325660610923092896347090936291230732615698500134197478662858608396113198765863056633522819345551768071921149154083319958423478192202571809478872698832682421589951762444228136133202184025645029973531218434120411883836654068874823195032222757485185064744994407191340884473018541055687192771911219969647973887994416624551817804235771658365964105983760106421875683657771805302381713652205910927045307031625849548838017252939662776547079796521290977222410941884000752645709668824293123259858612525412030145491591327713977057314985412434357909790284489280370032397636728765711578482113158471564551601662198460334540332508635248801232051147332582878760485672942764323940526061203690327187102603303188042866233825137810652896104325968960988176069584153320981301808928996498530982021478799329466295486402864488256686505068454294488254797606607865136655031714208250349404593941241985226970493915497543377100700404805821311036521646897707173656110368392338844578065710603985178550335050280082478254444159793601822486760128586648048670706141494110889587020276417458683545350432469836339072149249550242613348861903230683264970712407659591008119266489183519919001544025473403159360405486487690182660703342731180560661273569753262341702481281526613435182129995020141228157040681953437949548132943129983114137964866917680291998204127187548592355893411061932267288859190184794119078262816877136242635265421400433921201074648417392083355999722572470323723652388826771835579204814004798028658064987027780364294410069581477365638391558016204933843725647398459397974013406323405220893037266584068105791682113664783162101668529593454375529696464594613790425009963835664432829090484524906755301678548353459319688490536370798002771509216541191796384706455164811869024555712065300353127884354273909889252928158616712387771855723198690276724283126221627558286296361054815359967573609953930115561608637372890523856271685022087652738963285866634743515915014782729521468527588476521488751621488198820260343265905162316941654898089664232080793072072157280630877883761225744686867937351883470338801516073428303849212092496611690981879845163798266451571276259098400247755954061756658774034418434204832067216995981343138428631436995665711837625161670030552846056713373381081782733408546923209771847869242502391026349195881300128774403296161101596504897553732533822341346157492188657483172261644549938086800231437009414285551439244133689398155081959414457499909722594275597559362822679500061085540665728428820730372317664601448421396930078973799026341045727140802558602155232588380557595543074156626735788260635231134481335613365424987638550649334378211741481461425496243977094494151504454371064202006323120030222888720017921563031858655141949259762930907971456625640515927066459012146124435078768955794604131051015896566157571885700447622667280232703866241822689628361064396593576130777766377959045388276273397527849152821983922069479204843317291842176313275479765341810136609072864969902924500216115114266985249909935201527747711823564444883926588945255485169621988018795000389068474265675596145647652194686330063018096384773244419258348042954389626139182759790750836549019536978200256036222955799592508491631670406540520885665474789589244867737434871235774627583283806443839759941470580241073346079655552988602750045018098211479195395364587688514106385089802547282346274931194900298368820148300523852193187163490653453984886058161306054319911298980260718708989933430395005590671328424977170473391567168603755065279544951025165077126895964339528755365294646025576256355902628113166860336544977359931148016957104881460274136079350956092224106485138044827906183205200578661705901068854008408781470991074730754404861446317653338796864481380002136492729696785372771685307785842739709178802212528660437737990952082861079536499240165782027570246572243322723078231391316040046383881476462172550395051679306292230077848964923697449773354774066715293934786866982037311998640912971915213658332820376995767270690696141623277919823677255228886489253538344408742822088530770626213124553502345544516095637115931052648487776374353601082127046323645459481271635341680419946346016997562072469385899102398515672858410829614204178602678742346122597671197178761223216488187248483070145191849205255688532990156823730429309034746457750525212864694660382355671717922595129580664155784241253739282924050988468871159185558541701145619846181578102968004611312389328104205443464757159255676735482798713539005561757639745636774926733184149835884304300162649677438068581066492824176975215480578537112760294887570851091515016147791809458593137292486642665603268959957211319185728882201907696358747267920957363114209389559905491878348315585322047257190702819960017463467630534088218006611458350303160255589740212483665752959408740036100107204688218488354488105827407835443332900658042064825447549762229669783534609035172025469985625467077880857826157415740666034447868539200835763166183626792304597804561009917756765142156951887049676233341267671976950205110156164032851707881690072537331325780552358723262505598722204384078440556371361774564388844942326472394280768421366889537583049001143754058984570557517176481915227142714819259088552985993683429013939319909962962386183093539547743046193551226587797323109381914119551113409662046013390787221844597256672258232245267857185876963432185355739998189420500763216978823334638482093561319600133453091874410777173310091403095071863678209738074911684243259998836875874817584109412240968657813736387961670092348932657370495787811128719160118667072690908147213128126100616346295664522884355370761095680800065417216933501518396703163789483987491944268859885801346614759804872093181079378743542604306301914267316571882085477538159596235287362439981880196614592097889199176558781113320347161508562254582716166593720544461264457954392586091720079933791653604988509379521091783326943232325137316737847709678938834219286238538423390259803504124290738975356480428126184844638552751857841107150745301841662254377041502201121737394907528234239974761811815038663301581418232231593481466632001533312688947789746272532600724767793915793752921082799746651462245583061871769693904252045298340654850338427778043096789849074219952348512035571471843390618927135930766364072168657831726642557717883031125649950756682706598121943010239647949219106755321343591984086124602939219693212239629405382066109757542880379509454590349990345465404184739839445808569066642690746418819503245532400054899591793591708135376689929733044315746266150724502972464126413636490674005900399225395414512873822185655315697509581658153105650120152725809684340930961329519162519004667275573897510585726019215471801861089826113722630820589373953415917760045463795251294752000177244731282888905547020709654101890204278338082611864118551557891378467958293538682217262163162069114437114871669387080690698574805580541346735303816512843516320666450392804412236926197495772405688413310712390095032182320641698375787405778794366058371673244360335719897271114028921615626561962714024779103949689817181210983202948964113865387742982416246548616846272609674966694913931205250702901169958050454206935816879988225016941454973809121785486364599911952557620525079890202771270205117391902513939360337053187346788311468323300901602524385246823772631295049526675233276041679119316691211898909706042354409536100559846766136443444774853915868180499887112205502667751463603976919312162286622735812143637023166401385935173279387557967883669108139217569030050651147913457415159545181941849216958348940859686439121633631031790096684958560744267395791941661009487677902387252064133145185272628285179064325560438752805393123596584038991416138624360345451122386826697947770682160017488304053470646161318876252261354013950170182485178803897196074757008062038310417189813914089200462562142341438691291917831172069426706317264001359534330740090370317705418137998103366714518542076441892407272963741342913907229801579881878063798239575406960370124366887293696724289115601528731157964458165757150808636562135818223287571533624875712169403659943476159241287166110144549119798967978357854414303309629395840970954961816236131781495205619712492423614155625308491017658314223975049337512750898716064330565097314548536750136122740918463966452909312506179558348034957718076276335483299335096083901749562953938766157559614527198795108868514852432880092744983093315446190107932248719383282651909606132474781875686540843317342447183261308370801527235567271487963072739437604983825424171798275528565092760858375428575678598499638290262208924096522401490829607800334881220566308860042170138880688234951582640951714942932632737088699966852044270241522267341620340023936046086785893450988014818270610812065991997778009278170572279155808560504402539043937433615628941970458721384931592630887858586152433802399487983810349634928520863337296183839109985609670523257095741477123260653196607120333384099096640958153085571387205369783689263598476744442770631137178260480336930762337408767014054328448384384186905037474857790107339164556883706293673247010054100429738203161776401074861662165138304232873075621996010437676308436016608300629659632745063187233872093467274587034207245884984319280006302780345867201557484601440078437115243413351664294063650633695081233378919325909887602283301115708076259491777337910462924398810639409187094922463810785094418359273130934090753652508100911705950056723887375668824233970453945230647027336113445179294470704703523962532362268479498274532802765393773385954825274271859131600776158771549985785030172435086321174418819867365871387437417192274583360218336243381985578689683214542708728012353223655553728010951046390305460036162286441367287375741542368724459221313571361683320436912610750990169163307673376693358088220681119013195765345548456381747130017674093441066204140461249789517220862428809105331244522243932166180902683176722844566666798450232579815041090001575288125983400643452067409659004028282992329110675800709984222596913996505731663924850669970472329730935969200441989105451438320104525756602643115155988028271398314539159625378131156480384631506337052734936061051165337886475741458646965856934499467966418059229045655354637237643850333563087624670063603188868279837257667872578249915703961631785932430617285393985389824978684769196981083998644105546235905169744499919763167546556740370743510998808702680239729278571542245843606666764918014281047003764367093253141349372723434431315680364071552619873478670173876655270975445002595279595149807607573414485693970703257403989870618822370502619525498058510533582570533904780979612716488333292697552495024597964278837751566606028662639809833990338006497775208243135411144905909142357813008511801200427372586078648176704740995854371420362799876170219868098593727729959184635625067188884348366373794809157629353487978738486565475073846690192193027240678251530002511328610695106845440317824062069143270492757166035534994920431139521580447886465085168635594452523714886967912557084941765977122689398168705589492295727161117842427420005634113347961679820591823254414277007897195186215925017577632503026937918676826086453413708284391203719996987369152052209308989363622261216285399829822363375205355842887514521181847852382792314863295058285505686159718080942953594660703503431286566158929331427439045546956045552829615794173118248316539274005564272263314873034507924570120424324936612730631473061063174416892847760843785686720345158571989295874722787135058599354978945520624730565243298507936840168415885696522948202195236304404421453463007433662111940358282102526016954514017352190159292102828032321184771100613827403047562612212900694391153450243879709347582636991870322797408010811538725481175417955519045893261284636116911633314843893112424653839816927101725739329992986054520570072967419169391797481996944258232899076164457551081196867946421383177806587007186383142722076578323520940909897284389231490896427806574844358109930505736341944294922638395533626321670190207201648796854454010503237602957738739522880222408265154004235208965144884437350268489049563095075886014747651571658484410593835203239701506475471298638244669986474620971570455797831907562628459570492852334709460382607350645358277176264420641470970377705432479742150618399323448390198639669119264930274932977284882455632452427310509095131859218441547708982144537328393837676660521566696201430798221465376948110264830417246542246931784093681197989714757333863500937164283991607106018882348388300159757806125425437852803430616967605642351954550097451036009340983969226800366192867150469420052979696491451186745934496250685223036707878659652529917280253863632485306575151335336468961010736323298116404371011099939098416231864148680470250460774491997972617882934949174541973227373993190186563222675145446305682791368118245884643309753026537559026700579360897092930709583855631326878336209579608508407080230424119543221525161027723950025740101817322209843342691673763561077037940895164609624537573892754853899839262769711905809901521581945906665926401334927480716625439244545160448674464662691305635559151574651750353076759015209930006557644626326186779688121759994550349371000435236872810611533825822655179849062564290966606841247473638594302898358780845830151523374985308854895470717595411179650102022553832438640613829284108108623055147478692414988165494071812981917436715768054490430405277233747530551321556660819525956064759278150165348325587112813329199472826543201946599769861336758697190833762602766773181400251290687098530278119258153543118346816615155871065450771263339018586028634917386076690764181322869424150986286216519303489132541334301609349472243232412798652520560456315828114872269680863273709381795609829032336244742531724336779616584254340786478118780902816025773521223694250547156778513757925996771801741467611961171248262385936458556228818999043881610134026733826936118058026749728740648419593369348553809813438948775829810117852298565270947464140094123075538444502014765362677998170879113937008974846890118301815751176358448251379901511209990892650247614188478878763198978355143057808452656624647883384550835166832833226823722632982068763919460591221204790344072837542682629071350246468841452111271290568020380742611102809782134375349577587406807678965370154436693959708692526724772372981394350566847016876554035304971583777382591430599893359541258823513187693371886972410480978821794644000761652377050753224482275583849557293529757358936246049686224347240183731821847377111037799030804495096767487474642068688258237039864810658861156599018168746238721980572835447773279683212909019553721181286836610169227388591812837282610060108428570587214013766397433466340748985590619086389147820953050847862743009392280043432935162678498989285028130181730590660376577298849942445994319545591161495354308898243760686511216798191369990195275403612237072659996731229048461544974945601868651207420383567592493216100241032996078162541540029365242848513999805389209283128866168180000692449330962113717661293519978398483586361817659198536471808105015369760337590395229020369584921543453824737011519900626971209925579505275620541944812041730038907425826801571216499806026374421070354166743947452632325784605037180893594563093103226033912806909984658907632469456335149212533554184746624680754335422472430477681030285966302640606490073373691531957705885696455120408543432741296879148119010740084524837242193131660543613466009267648462768651699983616756826957101364660875517153991558162091751006060864900732892474588246490822693367570322384224636125067575626817988268310461554627553354135744349509758210862125352931867789904100702950013847600677325458645573258849048197929189978295823758573682526825063434008033380111575230186932294624161794451008056597162175752137761132265606448036161440207440886007484185735475430867495224195353015414256197333679501718391246036445721995682890456174250567478250357486760305936683782805165712224490527303634679406190747088115943920290481907250882238581197955721331599729401962444047055955153207500820553853215030836672628119358978720080442418355459654454104991021229707155439654247530650957355682597745508399499057148980851192838702446386076618802646837737760224745381215396555951397603347126995390079844006539550654111181935278429632026996763467761209720245126637883036934565543001027263812144662856328545978838300943923236242253426777636540981516781071460861873533479551120795499073080786999930917388177213357138790801189729205295879178249789792764789665331000926824888791183178850935167693528210545877432455080541153408860763992369588383104286467495686811877439237800171843784712983658953925011060550160978879444378632465386342519884868605102730533008798299800407902018969111731171998813867313421818981134420342810444288865423431409528295859002242293861566968015976037981069668964701513031870394911505759344818395427688629054964604180582881351720407486842079082103847891948218822500249649709063896688200129409210511287707699311344624000174165412437781175580859608164504430479181775130891842670827912691116242133466233421870638814968014973677194823773719386325528945290206588239147010768602076674710531875860169498605312192666994045534747920182131926015829583604293227132312713115702346484050503450807970266630198915027266332481673396966007615242209817730857343370796864683423160664412155645853480089016568577751687807158765719119815744644612515683002513423967016551406145629978354376086404947096720499719992077289563826605848748363105531292222032734212113675512485942963374935104623890336577494307356657807177316867584941466393201409709302644172710302782258115874672770869511540191905893187518744147303846707468304504534215537255118437037297911776451987317222354733829796836903093180085477483271028019958029443658813189056042538647941577471585139246488269365446055356997520571271262244527634130924775022686420142787285458983177774802771873094721620256965492847460873860184473912195499916672702973421202958589586304233306398998718065570250009463763564730162146775574357310990007137324968262478734582203193974172521844851791227302694326992935685028737080884337309692590101443636058290925053832220329402040405668662164174673022534832251332882934265456520027225174452297932422529723822043038383102878658475394497553201067997381439398515144538829367609171952243802308445425206967268187854606463570733754803268846246502836065927427824081610479561422098326562815278631169109822904186690160534139189447655366636048180950702000699744653081423217675614195252191757787845691606667915484776823736642330359670095880743229713455802025617179852692932620360081760006934749016696414803142115935921410661488314339417275782547741352723828598290126133688165379870080289134501119008112444956612904440826843929175913124625513209191300992952500629495422827137861277024157294897906794810623729752539983889644309856690862744659499786933917971412702095731936646376898545647826841176233698830039436184794614138037344214185483844823965977839387531356208762082652740022347330269855438646436402373356246502301898623815117593397891943115603279541187315385743840281727464398911242696237982198203209820285660613913206000147247032057120240607664336252281120022789394194202104146111569656064661056753479776557625374838185034990564584214925247003174581756149752339973273345459931056341690814781383880514073758031426653424869008358812547806074743425230308110958734106950798435590281618548216185008126436931343668238420162707643209551716485691372175681292053701244098128497578345908721060042965354387638162580232169009948160964218647965405708660589302529538816900317190973922853422055489788067603177116107778022601232299808072414173939528073239565508225011329920554952085723465079966167720143117518696894797490391019471029224335125634091503257187462792090476185916510190907070015882162437258090494303905294583401713707833026241232800867832233384670160549004880417947822368107950214867723169971743167998044159124431356013256893115299279764930757097014866756488639933925160847595199082905421245593570937274634082770388086571365490869219207390241572704461579691551154005840670247975705728990042137974674195341842712664463421068631888024677360327681567417579266725555704319959076727967797924004651325565804450097113786557296798831443278739151949310605906014830621123737629348916756842877282738962466803194815435698795049834793891792609148026549151780239706892659863440754198073864253700690048898984173521771509220793114991673747090960404877655554160457550188737104891687863805108799255238662802607702395083616368439361894821078441110172279156931495176767104244719410611803909183223451738877106979890485120391517811005358384634988132577734707391055246033658986786532975986171950661803416019269023912278806203084853035978162673184382897404846044918763455196844711920761860724754934283399079932957984974706650383413256550084931594278589209925067485649537646628204178064578498200215220522962778348572282353479358494227886105804667633060936040184053831646457271455115710620759958923469785868654381942168738930869953719565834167670355285879611617815134229931502121562655966072425615328755858943693932930052562709468854273466384187130430578099124674507569077699537003925863715470569571720641943234003017891882471905968285158244328634260831797959999484072912408488995276791654015194489261764678561786452651250354850051651240659084264060544685254271034747714492703438265282925241505787270631011630457373623937408894246531414833568796263748008429556816492304996171393633815564147729775378647973011171107381408287170162396964353492364505342779950785383998544408525266250496248547548760647060049244149243844932747586185034996675152593725915158203340667231596376478209744507843332177221188450515170088293278447695289564630792015687836597405424589427190142551237985256108070443880257030155292600927850740712455674862147064229509682408076716594184053412233400329411232388399355656803417904541874182439350120707433060766757471758242676756424624636553358954386836860488286639309116508138922380559247939211258264037719128302349699860366115054892620899821534126234438323140486175948764846483607326319192285882043534844777240075584565843695803611399534252509278968096604930963546175687792153046276022893143616686463012172116984126342391681944672127236842107127159889947218561222795422066882207760024145880260725924958677051185587529066720214652946795412567012203889239989946396127855398320869692408181772770238430436589916301611357768238298647971918782947585670661199338873156814248592011740587467726199834754061035891114624234474039553908751690647277752864395827240365831497454569974486590932693003891816795147824771335140173203598012173540197942501339704746839726674968751598685796048471024362444650076328784905194669191743460964979208886591029388254459163525814588786089604343328333635070051331106038666375193863104704430102620423168841275035240293757812113671891412892385803073388412856902038125276976928725155171583422985490799120881739736919454971129796608840448149239420654096571729711299063767934683716728782844464203927392625460468977479021183717496510136698530222202216920017405749996728542819034630882710335630731650111592083762474552845693997123144545784704825208372074182867958848131958843638463360230915737743118436644984387511160765651811064621385117930748199293876679559174631093277347463682705856144636045025534124537827302716619107829558715515238767375191438556108713016259474761018026705726401149066226448308988371086812586355675711545359790381502138243692272353020309957113615510812566376904637989832201960122806092466107640561168291234613017912003937543199159692583831874114856411509006689200686391939608664363433588350320361365722504892244873371981663615050144156631054822820059363503971831150129250846827149268353820618491342399323402873649558365280840040027976406129472695556738524936579775912550931210992388914161293141713699726762925232738633092739050264745537908111896007410221306851002352215549519679303246615216947869690868469743049860297895344684790779867183443706817826456155351526152766316080952937890193882771607386575501452908511852449744083663583568636269609667849686458981705011409421249669936876473421845607351234674564554341761434117064234687639729508029163873883740431305937580200294420083419161216169527236014686333765329517315997733735248654951332315299519487832455769680875497656243159759188206543512321360100686711076998127182913064528659517961537280790031056990556038793672730164912465899981516841289848136104699558256991054872491544461377467013729702837407994818921665707890390969204956720195611552112804887511445594145501293628425657234118348616284368260439242500452298555170500011573425145021915117102146210810834088216583937202798627937081195273399804302710108023175557090378664350593578016471354749291398987569048453479267741137699992323207097314638408503537844123972326687335452196658459419760769102751977523882583653692718583681947335228131167196897000032645430811148463067745724503557560155953254766522068395570709364516696472002041056022119897769452577130612592429108985550377838865093569935280536223148433166620397357927983022126951994403287069205250667688643448869508910166477783484550810091288219295333514092144834711863811792908533800345334374850177700329469681533944967911633586490505033869002175525523663437544180060848508499198383761531002015340668232143997017161897766007378468199684243483969627679951419244028183955524999266091634176944189640939404104355684014340564293943014365214993306290358973964057770662851620211457783016206803545731099137527691400174341257139713626305022939811581132065054177801112495043132793374569171330235420575444250975318967171898939642121051832843661942679856588110966978497014834186854937161306526912891131744780637002909794254971125389578887379528725702665779138898272909867905735784602380783289464900189021803354819746792759113689884913388956962195233767890684493816864083590655217010843612427914213711885542711289858117779055044487398194385715743000550633061749446804120356968524331391079019736562144600237126001963440946041787747477302415831966261402131012875622770549259420594236935111243480329180908575964519388470276463661153102354033334358909371738668059259191268785348341854309962385637628588960545866550981538296497754083353042537037558291970124174121002217947733083577049703874260057762843279822134446526544064339222729968428676924718867545686626491829403409105160532316118695022531781474742085918172491129279090261981309413178335270809525584045026044380978141882535803185012367969595595627486116476305156004805954409760271839366335275555347757849759180237810017132167012834720516611130682575485152872074287091811908413943366965104340172148759041748539696814680274076800160730319275057587362730243999909695192230707822909270348617472231843007413845848736291384596210579079939169368878127471575022385073800967767186322220490412893824847141740977743240118459311199461135196025774648258064080693397693867715039218432650594166276094325541156497957272514867185948472126309356542122632643186860778923674509663890109669315224222007093446089236578908272455756314456882108362307654532719699616815040637748781042262486256665866299314184796012365421537877681819383490249098997770575387476401179273249920539303704118519990737192859831252096193226468034236436228376778396547222402646915079042320367709227662355438924745834880696940554128252351777295527732921168083559841177084796298124498477257299530337741732351928260701169482439124232692891984968822182847344895910996109067545973439097499561840153973190477818212696092453766369525038065259969668626517440016304115864712897505576928669110560077018482167304653585217304101673263878098545252174538040273517249104121794505369999257065571386984553786344939683510670381486505434422935223414705901344477468602265587907460677459965011538795539813251081403278370902050296864771780941603489400687549068804180616625210101489629126925012848658314207181697163928873048309976045027366297646940318608402296664972233928624252900527561425737034590651795869115642682405000486838198500739057069544872884405080581274306771081376148665052092112961158745341804038400486588400261969493282861227254853436392648967496691155185973937499849691958599181749357509334546906325740681840361316931024122926937323411498597401688030426605873962055554198587967320207500256265984752849451763561116929327844865531998909772403868783929950093527588623637851539044793708820329818697494674539516014216609530424262525049269571291374575347179562407813951920180754842799382303729340866986663118007734456375141649658178319466437569764337673499299319223297651680109702506237270537141688503004151033743067862258733510137314697801861904730876299370489045899886923337594707631933250462893550346505915710623445385509573288245062092503568634153209594835338203862472526395708098135798763670965007358195918961383170418734416853287551633081803218719488642451150195770728330264713447697119123936963268869476437899725398441692195809829230362642701216405432700698151866481396517623170918467113507640954196837619960618793192862139455605863950107500386106888717114956940898048824994231745473807507270761706437599896470973035718406413956514231396473981390900482017756232212636032605272486278875016995683592211192792972801318783631172324556257759859453705526778462515778021718888401301668565808605241308008771261394064822758482829660505509687463327647269353125924079097151727249252041789287590626549767783566451901868137202038549240354639757607047505663152060150189522569106555888877434561098533307420731941617816644659670418523313410525749529021006574141125658430026197382443205695454261358822232874413875765843932722263084521420892101743857533694208423508307989888405026520909067166624201271377749467726165554089271002019918333445769951268218224057475076655657707910121197496731652263258984091629325839766128964881096459192470326601356031159277824481950997164192072910416700458572503102147271854250199622167051431106415392251063168614759675748267955513509813806245133020838945737343826654141563623908677067962096501610580293310375961005822819266334771943498738598091412353235266014472073000761367187020375426548887745296174443163867235341517624027065734658626382206907532941239708216310604658596691742559002501047095432106018350970201470968541738626235264636319235618682955125330875775404597923892725789143636715334325869928749938629864802148309775911545400802621459944941332575753032908594000521927209668373540685169368566517184291227253630197775633499060036076303408572583856300603148249011572001602297026955838050784134791620372123924335987543901197972256481991956870054541555355499394896187558646480370866146581178066053382390011391933601187049446690275489301764586195762570527170148729333039515521352871726275400712856873755446169440447765940300262676817524081473995239653142338471163328947262768945880809543102232014800635550894110617482123223966475253695877320169734783382515330673730200380814056900128884125317054989063010548922359651857655673521373807284350032591383645569449024703026406491197976394786572937226496630410081583138363641207350921854630386944469604009109372346413746542734564156089865179804017415316072188413179726818795289001470890672195390578705686838744261981628941060429776117874525690480059284344625212335245494920005190040832581889167902114183967681193561280247637265335177567523916692420775471028215690687525929863295054946059498151277834308191141671973495308178605637383643621315009964729613202518252368017810795427813966980173426484305444596325933611263337940985389236029396455138180200993705299911020130503899520760199683346637515226690025341023117644213992147709856626067193049041410989851640861960396956905440690022794277084620016435855597430051876830093793952617750097516558570567490206871359693775333349261501012782840256127218455443579357059072497905224876258520334436083262694874790155722168980066431982615832172464669299695393260310110979632120051188493399815308797007684499872254461233882257696062436621897882204004628377748161323472172456224948024000140144198508119407431483193464123146702418298013398804103663656351707753535250673323419318223442471589674109147945344149844242185054083413897052896538198342877933799262448137086365249322866340450916417005223721265541792128122934977376003964267381045071519755133165801659108289218264787226751523298948003456800423796404381673271146834025757738460841583362366423744052345603695163843302896073390171577791805401134929388994807865275397172287963729092494252754287376418115127083544393911478279600306045021521511213475042745602115767411025217136241890350524971254896722560235265833033087623734937404788542394241538923813819957984426233153256064877913178941949196068584423661030473832271206174507628495835388860222290502833348991060709014493839265242057152000517456818520037073193720663147038586113373223831731175491068098825900531667784772333793882067538709594234961299507353332403513765213686691948835867966999447974828795532673490076471818430787493819956187179867874034173412292166252002564349816910653262076620762323933511141721776274682632219089598606431434375854958896888784985894931706981023050114337341945923176756870252256626900335331251165930398371457263419916027660689822037606832472326559400167486644197887618929705409566977695742508477851116991775114200477603674239170013048749103149181710496988108291969145701209988319817641459065394435091921834114271682013608356855130731365768215350784677892665564586737274784113133474372835434494241407259651246682264538132291034886737738046902097181116029049387484746345549469212548106510794267264691081298650155993533182177228731284349560507318524445853692262397505153744399553273986381145064319138369791933203321894629136034137027436952534264716757759871351337663597661790176540915362133551398159128924730713345082505288267913331185467572600550181071475970469875729361571084535848081384945063392242075298732672055935107083738694180479557219984937491267484432099146673782670221278549264029714799835399327912745756760747803978051439534279843599960025216960916386622386442116818422294957620562284346748977970607038647189931935829834413934294709436200143882435186077880442370423957451425097816106924876271374479344306524041329694171651312380165954691513914432226840560323534977061084102314041298099500795101044469223035972589384044653939909349458814504682218221702668045165831485651786428365860681328790081252221855224977475189552956214630613063943720926972087796806182017561453635655289395615129066890492550210425100310297242870942856174867346329251099613372969373600750789564273851314654189980939246162427898407412510021040743509207894980264001415226736731891555239352153165533987873080627328402786285969523307048766641397329650752354223616705348233169627817317976349220136260809879165568550278115033706685553673982884465507796143373215493539964225038025572798388496010936469685295894959139463141529730193948919900438540060051344037517015614922984431949239135258321311023966393978144067700643071068995889763791120633002177929290460941806637419809815947063797696003190282815285067674508458641615784005435690223054599096484775363818412673672969007510470323581757931467829321470634306503398341043508314921792393302023835163298835328604050427537306788026765746672736922317624959816997287202944136283350320449633176493075934606190681219651481105794906819471215178627110257008073323363216050258380262126820685680768111095169991641933938637906934124930943568536874688083682371756923474292528971277329826696494596266548559183563150708690651992098903085643999969761505001010943968955371584949607706851646084598842022847157172007861049278892655794621080346084360519173894955736826624526876432453666014179429376067304708081175340598735503128723110636550017430474915481254186465168673938675025140331637251835949196557950804439423331000148618443403353474138801774033145328226722652575614266112668807585149609778044796613460873121360365680437326376540484139510281068223575413227741854750467992409413710987513256033063016074080750444712474550081358367993211385305169530669435157848437631489105913285171842395139013146308408531506998344383213657295861581067895598844613762703893462947160143205203246941362939836422931060902268330196417900956047472246954352749644350964076637911406191538922898785258793696179080378813813405572471527140755073516730751756364936852895550388265270178396650297540790465491874863980584656210396362998856310637628898553977398312308775016985168519373384129902640143568888730014227869549319523835579787204792396846975191735362814800474038480792490435450977983847623558775009735442299321908397514191347893808965177103262987134408264151886727020151585025175738738700274079867903618094949381541573216665695375808456962545114312965765957169202587701657018834047047427412456037023336703620084557028007330266949139704926523162196324652707775448203504602700319727912152948989506831250349740805791463784544285826425023911644410565947669307342667194145997120651829602169234534884656455334041635636292663349531035263366906109858270956575014559065494333739647337170979893402009966680569502211821754126741429543493047837400484386893195023460813095670030670559241025581244200756945998349440539709907030975880672462425487095682984870970813392190761126819820045695717745552712257078187609222595162422528897887848766939003610346187115774823604626420727877068810852609808862868124531372054147538479669598193814864505947885424906888051343415936414371431148757995299523625708329053312647201448797750924026989026490998549516389160901611673132279916827002914829834991209246301460088455567443009140175551968869746649065742746620141702581015219769397388298365807039901042229163275017535755751611433165197092837241026478176497209279184774976100881407892346487190074006326204302350168180444705921275109779478140843262502435460363017918936980228761320545620889961202554806781159037639259231021997685520121703091716011827005129311809439822417749676636550141568615942422659493206499558433543456569197628439163066578567885982732389252835152723427957502355575873545035988630235665504393372953801796605896320751589232533646370890424676784548258807983434069782241198603138766113787540327329559592978508267608523896191981015668201357120324267899541775830896496503414220865341337350649366241618356165439082276470718046529343243830044578202649909396615375055962520596441104916501844106934225532600337035522433895017385037496232375955119881878658465897866555034039977023409610144975579815455616983904705920023682979949955539631353218624509095270921573157291597313636901420618731380454721507829179981235100326458935159079420502220490671953177701496443981916029412735318039999946083764994497112005025933453629480206983622785551963406304886380882480584803503243572098109095421662923658064761702595640284281089152215450838801949718213638040377443006042020523858891614632095586815344253675721569459319558280795232727663276352498370057190166040168301322013605236735217964865391516307646378510586352538660764344042437233071852317458100525169086072222096854275292167520482245442012492774766713392281327176417687900528821714247493027240202878111380088834423511071562211370263525641834097153600133810223285423811957408239558376227282964766806603140973738888966490379950665808680298728956643929050029404621262436358147574958797268659773118308656600704031168612384106820861211646942194112878674425485705150589385826839155818610068561751577021069233188656458662828078447802339628595314106362264265957561484387714798033722506208343402361108585570980363778134563736363544378804838139952180756626304733346631383856541429427079809338927251480282647776400528955595098677084395064514012177217269995345245834889581283791552966958766598952011716302386687618060280914567395527947357526661776802013782685511483217411097886815504197710725124077607038809939900911372859188012395259117788325356026909320570508255894068165101080614164609894941403969830536305243168421010106771342656376693511830125719736094088810124528963157419355689640760724316734355921918177999891707821812751316769238218614216501948137904576073710669769852391084241433351202675934116461815620264264037119034089327948169472306120859779259986102015728972093699067859147833889090097227362434025119340009963238274446492673817948612934579203994530237618633225061582317384339446047603544198817721106866908878493079273152413253338779653954080894968146024264158628295522047448342751994202511790104712321042674651019395917169110802361297048324320602264369657449317024889944786577695943334817901653910400288889037986493403666820957904716499483568227363052386410822636956555826383866031222628561064556778534673439495205980365964392574441759660024265266067176214586909727001322886656126837071596863522070562027219444649059474070692836467461570761168356263996990582184073076227174605288046240372282856962668262873993855822851318771101089440779343562569488092914807413371885203428333768776910513424981114052953092827846087565370579771849916193611831470282030704569110492259523822029990491412971467432965224838493497428425646119197738802334322828287226883089297338770599788287540348682241990947360458661426282122924443964202226057312923499321866942785370135805294399784581689212679386452108260382098361062346928374272189802653903546244497378804354954755241003079652705678589340632578974659165368658768689684178510076071107280836748772817176909286478654542647619343712689462704834903938261812046014185506854306712800542955878387993915404252324869536343950930580263930122291260848478283912520940765901225692548456751269904273319059414199514070686004509790292145629451695808465962011340886545924328742487189518438241933573269958696123045612480107964978568033862589963613257067036115943929137144556840800432647560334640601170875701716933523458272137509609297114239284465812283984982206200490890372286531197851335651786567676286719640818058982426757010111400784810829082402687657803088114962706470269869326305904736783380791668835201973592140855523036900970054986746602886477861656135524535559164641163610538041645668562596860578646048296961165221934567793595177917849192487908128246545682167939328986707229462668730936608354811639126970141141066070208155672937746839781594155349466489126831648660247766438423114147752992799126573489118352862085087148526062097127806928628429736158353482518099126151699294542613992630495299747543833799901449964402764499696040190640362385112028059415167698418610390020905746699571543465769083708544992495954445832307607973935829623403905338698355417020661057268597773675562090800508997881696520343298453666354045951930488814811770805765663867160643524048184729599941680006379145460686730557733500334170372138349157177767768907506636551238063296120859288756554382995134980414836529577793488429742040826596796611455737544595609493613377359369721101762673255712156332870117288234995218960780297398903376472932101611072432069415595096073771559156503556395869175580051076776131254891576227578300368054817924201895873272419298330064454534189953692498641126335507454180737577333632261579264462879458795167139890691921171098156028410177540816017348610897167563285420482379067622298728559326450872451815346553240130664584441740119480555904021612580913708811677056501484244842820460011557236162994537593695049603133736540814015841789614767121630731289429319272068794216757055781238674012102749103810496900675030951448854803440835058344606624742204149594873796297435821817885702763470786986004537683756582322765928653894513534959572508340921187594601724165966813653939034462993084949376049546340671751206733484791662739257050924540338033063732371456712690499793363403998480267701719867966353956580689728014375594065345582997711516220091046116723149750277823278810870100549245243652843036969909624284539860323389094292542852145499732577081306936850394256528999570202530041664535916633253124758025865740813980176785663407001477468938115956017314962751905424439972354328836090719538050310574830590418956740708533143647735874143122039771732933261726143321747428366493670536550112882207657424552331296402485752636848562398568147686727804193325897248170928834353111039174812698341101363732389659437706783401075703976933707115348536881113356932463615979383689585099624416258812252013366297409980782855556623613767127370276056026967764650156506305318424945352160101371511189376012938776847061271690030805624067055744636568932310384881343410337583684515900577013462680911309608037049000849951988375811609328599414250630150806437183306523603910367689872186649466829860400141917374573941277259424394815749731535817712696810439107483919981938349784143031541193399628413421734159916129184087963287500998511372422906796155949182770439431061537696934816976985049386152569482282288168294994072136008952170495029865169082172296734332876387826986559477690435885750752708274673197791065718942676077549803178802077859139075850918485977282038343573157061386143012629478154097123656392090731326351068760515926222521774763955694893150383367498996683562995418321833895681537955588130958572048532874802437010587512429055727544803819803238861123631768746702941737712488035306209820871218743088235156616408833847509381446105937444320274613148021252791945263095940840242531736888156104637388965298265506872910750556299874923986757166489615582761140254532231372689251797348873512019746222100946861913769861364469027387300863799709611197451866228109612328046786167283167615479453007008057916398301099691967510840779583576202531860592331745527519186530951418562233623803143650971471680548399312193162896361343978472245415947255822906584186279003116863892870305651617961583630020078362187800774118547113121000979793373856808994386291859520371864937025053708929137757353279187521980462517125637049125266924956409724171879553056204858745159535014577345085103715183172536613627602259588888533885436994514586030845829517972542401762734679204709581259427389065587744710680713684337445139030398791653128661736628434934363588925901397575171488692777436722060603267120018514166023498838411819958648853893739375018243515902788066269284352207249826342242300602426278028894783746556201496549091630113563655257695842807487712824298020165091365506838419187240340901501113088504148032066447412893538896573947377879324138860550341355748740407659348097328565903222077467673649765473575036460549179515322212068987165238568803039570971997006082937197178221116413468009826529212063674306344069427595248511059713640245396589704709012656495431072656310375978789322754763189603691813460834543792750310409855372514911216971391166852277281843447029136416936754902612600993175356827199187082584723365014161432295380300678644257893658859459542757014239810390100316785423445873557304048063281693060560450252385800759038107591748773626866093127504665346311548354939829911620476823647576832537823513348604490542448753313015751804830405971912050913974606383885402927536841342290755844499744536303384739787237812778127943439976071377294908489918953416191855322344711153901607420560063905063045348676433636136280878362775680762682760785730032011543438255669762036220053226205708890895671177441553080468049512343819766430105801452814058940042588628549165681704232807588582966466498795156282691499886203403389816629336399777741710494826980921563226007107514742625864061259642835067500367465366132358791401768787434487075365310476135839029540575571533780949298101405601212673576330338014093809212318828457894909262907902030247544355731334303249204734525202050940978198331371360222365184647336978638395546998785269304228773421330705118058493204156094535233349122714880275470332977506659167930634109181459497542123384935474966245833238676409529348770178148067217793597215337276014501441000803860526485145084083217552717843181767368624687822106182324843790423684280074892788779580292719545677088264469705426124281206003926329648643071750203976358488599635176951411667736044859509779272123403612358348536152519471779207671236867585058869016572846158975474021402316868668981065185264709437892030875276771961206931417540961535352693199887225015190594561129489041394262533692948602070723387189894692875884899838849628551429018423068187651828813212905195984217005431391037028929827414958463785481486148953694568525952785027328339507501112055566839379338267149095650502944497318573175756968627444083749028824050037898050735974030706492347891038178013107788308654201868065539991800552496949080252436617918097558256680915023576237701237272221457189531898407852548008580077707668947964163034256343817350295668576208376944663026994267171353950116224893075048995925570738607516219345684214488455440018756864727681922726114093420644010362191409413531669688172137354500403583931362724525770383104725232125952952004178029125299307767333144584111518015157960498449808764211747115493308608670894694232252180216018721216961419663074709765554108704240633677746964562141443128290418952864043874330070618355691450695266834145576541788114128892869554141624120846407401874228753976407097109837217946137041628881754467050811171830668960479007606885618563234094531663314733061416727465687832160477545822242675753103176516626559920779651435249689973283981685532172117719246650504857399330785026912263139406300253172675382787220523627824162053200370571900795566486725785845678068195255656286755791149472716328339014592373739642266022566771214177911709162256614370691577310370663984566912675616390797670287767171695093929062102552269777248301625225870159378332041476997057282987279653996551389526379674086600883254913819173654666796585858246568594735327250197153964707376577021408950777937837201344017229508842887305595715291023228000781088404245763827499511655901996823942343398308327414265318922278557457172755436958567238452695835872716695679274558728064647233009082410666640549353635930221890866064770348033436643722106106728846251980184371940111176054406566241900624921545886098070648777703632581689465485952527611355964559996355621588428900945744401494563855654583797315979392551226230718990400601487689714287859582740278242119639584411009541182600423896818074473018509972204634340543428958803420119743428048435294999183129632480744919851806329409256656414934189428794541827716462196700729366986417724232153731265957976685088117221619548480414823304577827349194540837613407996034397980377773493267398816698710416700786588457498810003174351198449708660339776488787518161227885414572076762340506480731499170407083283130096251265919697817691329807601388385457843175038691763011987679568930228138639889162704594940451487539898658815173047570885750438463151987686838785439209175942972848641708631913677499801770148976192097624996240589643224108150860559328675671913498740845626443431886376074579831827934902784786012237507362444980877700445467478587928474927393302139442512776364585412161158307709169884201757460587513436848781413662914805020475356607132027786541061267716922847189683238388714340540250272084466946163930792548735678491807658580783293700865303023399792301198979287585516744970404810176057962330302851283595606832901540357156522120546452724834585831819405334945602818081340691592295272430793456324467064793798461621213711560522124982776425947148149064463934025355160206420197348239793700057292605348375183904012085755275662608491985067546290706684033452392730314034776267119124491098552065946555934409679802773075484781498293578684936181629287041982002498213064359069304282887713671792159216141973207181101063835583036151474355246883013311299161471537658550095824462083115596763165708842099898275334623693098610042407170189967742930638888925582396640006321116959234967892229930837735048904512946763252729423540293832820710753529766946912410983340511962212059513604604511028391381734387347000464558679344900208534918584789822274011702400612416232643417548057355086549707874391127517818089068808329146743690096472687415327445891573211495163197689463432440774009193981078536118526181366153322523699777395990323122297764862760654530120411961358418251532190271016059168332896996648284436756156592504139277756428634926851369836505138003483279182564486246321562576409551322534715245517843930103812497899189807254963988491417889635065137406111939916384824983094698501258580568982037569267334002568684744380734776487356959787935431937212530342340204233503675812759201177848584824261961865570252432488276305027917625597360748052630618175909753934315227918740675296700825385866658215298950411814600246734810683218806429054959286659814393670110878336746854258329371271722501917598810174489495990037896915046276628947192608602378492962938978814126062404958659003213027327498145784085512673543254265798263772654258701618696269944793616453512210714830487317060839033461881908499749542180150680802150219696229693498486212019420901457598049919506030995276967006631719277366016114976625840627874540236470375846198458668646095788461827409274053786748754770675702974204037943889198604241681122038753066938491865982676887244970976573199878749808807432952356343312109653254197181383349592107898495504205146981224098411399843252608867000258373229870369716223540507635262851311307242988926359490707851204208062162199814130198329169493107143782846217496493888135794224188033819686529925143426077906903175156294230508008670702901019700247091799502692936054472891402305766504456228316040980256298839637291882296845186698267176614899092642596970274137198619886816928968792497663271701096705252088649958811169823682283093568726520367985965980083559902664905173913905098043383003942468752364317797165425791983415543926021082874336431420096769421758601321909053126500663052239358112385082900515638373325767989311986119521125125828236791911149566596393110229576190561220024528560960743371408203697955506447615739317085829802515577805587204812764432897746227358320739175311204885653625968504835259338273165642384753484445172526887892205402280375016662685867032552915231441497800400477399329544239726035596673929513327356719657298885515075567494260140946977107749713206551303986036479506069698543918056625094036730771725729857293446265371178281134826320902442924221671570169134077426836146400371564791517873509705406920965919168028230332851097925295596623411420315658659663097698951421151638872964880274720040506427330408104714776297725751222476410622988718577514992446073625631169174182550231293876540800884507360850082438524391676198935230264234285456600490619896315828160822313447725027921877321909303728347571630999536096779570208705717664812419890067202781717041047290379239807755902052232604355134621440246761368667972871738361229452213150118939182558530740714109883812563242388383962658246371459709632903934839150944877681264106716447861451003074826112130100168430999529557233675642764444163017439807682881699011260258749743167271628505161771432297314846101047876776158539839516446437511897931406810976847603610696275408978526789884344059929530584330710768242657639969228518189298315726930437778741186349183144547147384031164133385864174448236029917799691904121374885073353407117695976019635457647621573855280195471373839250453031116887313807633021793809039261648944161992841286979887956124647758997938869491229085791953569633522159097590351954187838184071074150659426929723659673502911378962431095500690818107260136298433736431286747362821168029857314219452186537554352865781022742668872023360198405041834705390217354278803495157562138416536542965575051473012846461308742948777615379335279606071984165569126440517778007352361342989287260578465659974407677113806568943174635751191637256148963065391884056759403107918991365642734991403034536240661091344666674268636999502795593900258178292787609725767652417887636522536869070671120226082053940467246646312950314198063593202266310582760341262943449701431767677258808543234440379142826991626408208476617722818741317122412148379048414426924180016077392708273457149318662505128542484666873210183017564934309696824321625977442484212777494768903592745116274963215122902441969701702975490728903388206147369771299417303920777166706343801812802851919043724448528627398753261601700037073998644902908370506684070251915552662309222920406941942895710762676115969327482328613798355352606620230129031266501661814135836527601457792722070360243813974456711644111809716150378171924760819962494591832181737075490763537741336743441996520010860269687583072384581722415247395040834719652446655847195300547636300391740901921109729063663656958295732425705441794316567333972722745398793649457689889280118006485766867391884948211270299389370307936441598284312464529093545154067660188039691030492637089009442594498214678625176569447075599962513860212786189623905544943013823482797854534254357118305759561114926620820867724216854084481211739664374111203771859710451562357904271871596516064177055626676570122910112365648286764598542116872417663216531071531646277337038265382169627061675712564839437274113994591050051402857661854327956993764259159749860795346425376694089428955587659476132399955127366678854757467373184707817264790893492753348515923245152529500415173780995883359325528418238322296644035375598584336312789566061925888194063735841742089473823429651354218497930271371935435034935081953543778469323828252793928577665888165322668744143678849099041551788159007260020663904173390400961750663387897128389773387751645864938292678974918626363192201448710974462543440171739966446552691442796735996469297356250795597454509539882855290745146075006715875205166842894407456803671893196812259323102281308068317791938765009593116217408607355268737297356037551817149247305380368255024520533281376751692429080997464890211387801867767690092425690700043548050352218728538560154972515806441588223491827536217677956267635389550185308802139100144235910451411767543017093277458590474020897753659800441402449721074502604799244134613335829826657709703803273570557475521805992912084949554659391758821331634300150764257590272802796369927625787694199644298199213419095673201324561452921238836658206871400857258497687215966022442678468539638310009778822675519582094324976726319617028310736721534285162518288838599151925224302969709631020092769599509701323784291598163383915986964604082437180979382927006740791995093249395372588632751143236921195542114010150922483782450649358270828204683911446785041307673070281735076294110460401871643696715699202887804044245572447387193075935877743722949583591825542241241246335343365791055015707117969238896719373392780014678894163343852184605706617413110578312196375266627390900676307666334238625801563271578420654163241237691511135381651747996516608440980940767764750473529027945547416300289148896446750654227987345556001955288134231012248314408890038634617918070600790606204086189036235894953467961098927217180491679450948641124159104369519498135133627217767289862622001875205358434307651690731632604971923772428367328002183312360440630730550099182062588556629792005013914866724435587870184205349399014538892094710831057099472055833696140874034197163156889545054671724536849968394885900747851630711918935629697023124363555344452548658383529620998249096472354819479538409524178170138588900997489696886538583363836068272189247338363407774684193431852457886154025850850342211743147954683732174095408315526612029414667747985242538840548820310454955549987085772684042402999297774732243511989253802856093887062255058333526345979024205666322184227359100257702322396682095629862825004462675091618771043996306015707239026937302766259393680702787143722119555895893750895875557628954919369560917336645547467355225291433341479859833166386825811532416250229494959590141840803962679296411794077414478172878974676848852137997028113741954078849467759939134628670675163667577013455307713946281890703373726073105984530590589447378451826329802328680367156818425570890143992775970177666666270330408734175981175886531247137818824266527112107919454883153268041396449708825439672132748612432266451872198307019172465722307403998763684317638960551790561465713037671644823015451194296184222757465670487606025233072812808744022430500420835685329828029839730584651121100727075437826723557623701767718697112588366297607390946967324149479951464622729852614610371267683366132441932775692988973168041088221751658924183711449950910797480765046705647643514221951014963271482042950268964461860022897793656186475276335719389954465017486490759577855726674146193466652718464440101257780171137275753643338081179294134590562689791610403113498364855040674963063561941080364849701775422042194622425750252921444384335260187264147365134124391043444736523463099319466202701285154523841595539808105155356011569987002897310660511377083500804161543282876800089015145444401056358061903695075611799213460443366011236344862419670299722130338935723613582797196107810500041094889627761558431932825962194327584272958761887522209064077118542036768438410516706812670696786077807311043827728176468887155929704380764611329038528504085538395156966938008419719624440420183289650310962274253776597485672032263525385042038117974889349814758610554696964416581959332865402266806473105512059581123091274294221622548176262519623008575906865984208384411073604558287135694248334925000333074951638021436505454970595786247340974453955274783793087470307030426403013141191012851026273514051826881073133963782047702715978258875827697460934830325867185919070429435130684903065463712120373929191739043090186892907640151951044024718071070537970969552015737086922550876402541596380474785764725548427054168009228993035454289371774971857003036873403471813478012374702856441801489881644403915236505898902476438253032662796529528022605942806475205210510805186561407279863446176191108902850447276975914536526482948468539133885959108153108692735059582892782678288257167104544085870079497169978168476891155605453641690158906883872842291065250550700502762067896788290590091598386739014737287268019565468335048104552477487724468280670193502101305219729860103048909078464569425326773981980066076938969611759012831277466238341350088960275569841660503271902569779845011509634552227501196432375838681250550849835940600620096497752849096505259079578453143414749085782333720794568728205591013219556797200626079872794546474999168822430704486684859149029666901195575946761642979716304362420676275112013711291356632909864993977063425924335639525844223017866867707250435529431985182150158248494413997088310573603440310934536871372767527986290671761691228702259786582865194364549528698364720700473482055707248196902077250836688447534365195069478109753907576463256351553501637265659485141215160151166526337946378697660050785290025350330594505877266452944977378766098508771998461362325861161814736747774194024846557732693973794142206950633743395432283630083297735729279851707527329257999478862257604439032630893397870896506582050811089437012951687582060666278842361099222321957025375146052106641653942776362472174062348155121279128995143776382220950000918221942061232263843762971220957481241892858675943066090679212107661287012540048748536954004834216487822998098796419032080413967370427690113085422507132724739219320249097072272004052035499488014797538467718524134040137941548026589647071899095391605309663387782028049173285882629168130627117309790608004546532461830859966742185378125800738907131176148437118107379124482228128739584719480314094620072033798419326137790366864759866409335752943379043673075871135241875050502883107704633453365341889260306739671987512732789125968179360556176496521386229258935150219862650008601942647700688474504992259924631889504851795941648656995222102770900929179084867552110172458526365565401736726522275097964325723246606675853061641650770376918392091378223939565131359050404309046575857096849693688946304432380796064245639037995026583719624291103236661229919710202697620039729048004166761580628978315233791078392618802142413061238138551590871867563038760294914851849000721586307905896645067615377220737494439864983365413837592014896854760354948814613420154683044770379061896292473460190022778323897727266237784749657954295311376562698572642747103944625334383219832217836362429566317297847183575436605560625890662449140310031371421730327965381539576989863723269646630702916733104242122298527402018713526445804116526778884177758263234038728793728261141604583681008471555544199300182833519893968902317010587841761479328128280281343620931778665905104251511597633166893560326976379111960051544311661896343552844066886856791889499871933250347218538183103028635816753882166925845765128449546915338240077184977325259449825593128673824951272458258162454796436188428468896777341514913554573390180296286271492395949297383775954926796886094829745901749120660445023341473451076927027359902334652472543481043538948706623679588073127345580117063648091571187088888598631015370392181086199398470579460155221731107438212348226788017142202667069374493850572750897003300887220899224081278676670358210401698628229088435741317088185544733034094609601262484760609090914757163288285928526943286261188555717787884866504437231629300137965034724825358843391572165279653853012226730481633064588192537662283188956884436002080501314442159788969883841081303679339659011066051249620797949588510926086926506903655804977297267442698059182419978738119993179482307187860133495474184436937546504425729237649888895401057778941939378606710913148424972235264975933355215042438180943376379028980486236116000641098193824766853158211641667511648003184548466182555187524293859337715216690461725897317769393475929358267135981061556935093913366418062556429121932184924956145427127527107090072318230909955394160521829321578941586464778532799999489537916079342497998897231562760635747144503401742687895451701764392862428724595837289494685745359779237482328659411858243212388902346809499422364813770518441728345309799843719404148855824225152381349420784615051184330593035646471999991521773683083553816467029669516183514894294550292173374137714203347654084143663418253881525973324046418253908367212170604522932563949118535478780316249428186698594225478012512962160642032256749116122360393295757250690332258835738285182868044854221068884203159401208265963734591391991938850951904121687658355423106554492487536388070754899677315762090572384087081051631208819350077933591238892226150418880171505452533033428371301875174985439415243297203824584563493382120667696764416888503429382467413746065779213818061147325754868164815285831411971089096903131471056625305920378285334558560004322650793868203593678122852890706754323844257869597205595040841956392520479372843550315692239388262140892194533759123244882818893819754925600895398749774815726740054348055992294843428397568800446905088688465584351086484450904857944201179501134452155690812674416707701791419551203874202116441094908829136401769060019420963301823998929683243153938256473568898957395545920231996570266954900867495285301945599735051479412924259688450791076929836156326065234202860948968841048490951870795124907462010777194179368384200521037038425597285654413322778446774216493503606206357977673130073039186523391889431359979506330455383617963518433646406103514022340869335472770065384634035954526555176559445211357424586743159928666329004031224847756083967343498535911801487811061230748474013828131972249134000753585973636678369836673381370145547019836569046957213396788092199693207284299326394457853668233757886778008727678000440372193858097458636418699898458099367839182065016299402001665850723817754146531298058985179453675857740462119622767451767827413430878095774758775520811363252664151082135391592167429955235050532639356038389302063361408973009678542786960548573207779544019324320163736944005154474114829872571735869786406718062137298510739934119132838948947685793652679218280486449589673490030586916950750776391716645231392297406482174477930413031494250378692433188795583346025646137579295750348850577790364997047228852795281983206227618028257637335853106462600712852239345282387594092837214591342889606158720662832039604335073617407880509250817489303877501986710835021985693384662146339902172335106695949502879904662651228316296609693301333823307054450298624475990231375722017145066698537890653281383906900037809478223391561626584885950319164537363628869124098790870543461475526151594809952327119901116482553612170700710889220001422777457708562532174979297804829131177477846356090618470069465712100141957910296042692081141751156820908638400638710410986523475391673028081615696504167383026447201689739015712819875990559673172972499662993948669434694710854948694454834738791744812709202828914416500593547760985644051089445949918033527662563918059002627926609553558551610695643999050394946789056424351131494422292905196299155955548004315719289732096012361695151711883024654229957917134464700046892718571849066284175201839644192007329178320227412194755343515637513531335782515242120339069735458906349094869427680051544228050619103352053815480787430098392853823228561064740433755122426833758801893764290579855480252928937971534065805611559583687161174204282835632172706209845916958867451714372612109949943174213629689008599907185109472075357274697227665172969838230337230561507898996032726413369843283466228478056585304322147713377294334087140252615933773847803769772232598146432735986721930937129340341395718060220231595696031743608996778518745101194310181288060585078872253710377793327414433780499473523924852418669762816775944628726183739092392961596600313054788915271360648873771241813980516822447441249860173245156228032519891888749094705958737065047319893712414931250308510552915204987918273827186638011530836023609847538008285371154362621030604265030958550844094283615554555220665379521621691415447187306717015243909262336599736786840978245658215825005316886918295007474658736316787214364691186729023148638753335745842530017883299637607204985988510906268675799258068331962993150784518888286456461491995401616579241440351194905333859870782422499813654208619210233913977943448270408167522962963095608071173730260179151317951527487239440965746097426002434311477771179134368618490776296635629391138250189355162594508019938792632572483484612718247742091268938460714773103153348582323765231001698190117975728182930942667415341147763560027525504548364040252031511851253058928261621485857262724160388071278042490290459685756159305845906495747680499530055104238149953788444518389163876103523452269141602110059505092507551919344952685417644798055754859424211324984249051862857122665003803787910971464757399880051785805983709873918834251243288282467511490410970909463337520940425450474309858570860636398612184616424576259232654315369376946015462614655000064758786617694625386641111845869672763375310719698569311283513372386001147495986632363552383983416251816291387239883655966327248858151044117182043147708173822255435509088835841736344136054559952047238584147860344163134420082789838994958078135097504566239803241239714650176226922387323666481847158206690711469720085731545052713350120333498878363232451884962024370097101069481313906524373193819298446850733796765314332223084054290475877726456907400419243310761907244656384175971147052365042367815199117405149681320316465383727469437579322341436256671072967235704045927667993650979663799146091066770957683565207461914393819798676731895183263835410535383733687557370877506173836850213348456069260740053777935191212936402243284595796095848563946119485833185005109548328802280393393541798116286041316164282354377834389175072662511181668803524780227049965448402118427974089870682631436399642859425388187884188048713004336658567941369106065246562419358912013141148400547390706331444436796162898314800962433863479839458391619137838439939302628701024612921803540549450795465217688719175228979224910806369213491903514163236088197757665328671652275050015252530614705036243712623908139177306904520285149561527300058016299771560207405122387800888883191258990329747643153328944451821068801638922458631657714919652458526465651653903251351163516311938996004577439629577015077206217933182877341852496802290160160251349233600167133965861141012485585253393943581867890899811489406539701552977695733683642734273985622450872528017188243151253977651031720535099260938791114294646317912281578792915033945755536144302759238688480131121178732958762454934414890429655199817140293999695072872284349205231886179103417423429101022224351827294780233710942616860049694071139704191953252348806574189039884991631699710730860342774361592332984340391688901622570096450001779756723546442106773019933204024308335715762904465275476664232214205525974094294261786245494433810610846393108519811445048368732646011839536071207487798065855360644162685779500371494958449591430090757189627992523287378423136480225972195988385999700478797423881501497972073001713039961406074983066724671804284093149324158390683129398879804319253710592764487843626722518994563642994051049761034066552366777912822982572343120403756420055736848530312541406226972492526250236465032439654521775168820246283823881106880330893917596057783756941858770731776961841729009831831947761333892876158441708116729050985504288792294525900556125587748803052735736708619150566620655241789436824853516127350529541907435216533393337835302638579541927218305809082519200090354058892101317214672350245011510774938729354162026620860919242338754641851349391124646598016544546266205007685994633330924877900540382300375648708587390871420734099979744927582831923531164400617214831690755438829418171371047578115298141995935657360726987062729562065734752432321064623291553844372975515988170987677679463771335155316500925553200251583953011762078175412581516546938317555334843042823012394413790867625218382121115737871939194873701580929785399264330252443624509388821549100626213010636976251475400348408112855977517804207320400083342991519883448262709684185953829293057369483878211260546145793346650113245917858398771168974488300959037339261707669012741874046668285850337606410930523836796675718964540552064533302944068987178904616365629901643387131330912458923952266246040657668902653885213309061831674725015969594430213891400953817845130259730409880198260370138705327778654532356552173419731911959956021184166440691135486671483188946101749352891030306670722178340726339304513180197858072344817411223973369859670439194770060750079988462674721033415758394976905326057019965981086507318216508551930227637535188053297072188435653491264549774312216776111021017698125463096050624994746672001343900723894875424291444026190778476212744614531965135881641877729738452965545432571664268823023512274384286426681130783164363283401344980429340080956975973611729737050436548628464535550574640598923250259574383358085433858764347337223444024234294155781681379156346443840648954658519018369394984105935272799026569297242548173892340672668038504539674478224064645762762129449307617314842421345731002180522099215442706159779910285375442101332611668216475810097621491049917542657123469156403414694161486316587404513770651590753032177780858453135930992830395983845983030839340204233934312471903816437934033099748773614389035625365160099922989576914197114325545323046320554446305682182469748249834703840817617960015874484449831849670979693908388785548879072342896900189233393043126310114573011131728596518191640833102739507234325115404821694527798075249153974510483255828348828585005414973764523164803030704928306684182901873909136853171928403601979765910832645248969106216482491254492674360472789837500121627806439221899723431811053903731626504625146869364629097707817018587784670906647814863092895248838508062934045656449247014183958151234029338847032870832539578404261826414118249169958590666110950812096750923256950891140126476785219908753072880910387655407505315230633703552099820016591252544474273367789934363428753427662670315077019531689437331637781916842184234759860800258022595417818277088949791446011129651295357812443095485023119105528870366855258926936018426133690746921618629123587959485016929040595102898395376959694819926582114707172480462064503634415798917472834538491048146532417847859670364410038333651805290328170040976843753720832597249672802395394076967015221765105871831612249372398736953775942438541339885882952742093593031678525846195370207501534522691554086226909744181181191459226724130031221450400083684591387314497072580676526295079472020287867025295014892022846473496346395540982663158129112147433609092804120021353234045019076632500202332137871644558586599986115672058898959144665442005038706002798866370385500421224874826554188918298104951979189709979281852187894415418312661844252656459562781946057421596543526092351049119328049693061933021645395041635408790356886002007803766739392622023030638090312923759339686200148619917997540994751508913640844454561829341886670305020814222968500271870157537421130333468854330946346106230616858568186915620474776471474440640699120336037380502901554268295915194865511530419833270116628249233986158996163378641062774152134299354766354428391872695880844812757927323877244629767286298767201579891913086061187095765963808245959655597248594393888122639601152087303460687272305607591687012615160563225775510157535545660976614111482424786774034632915106390625302107312917243781069216850243251755133459008551431914812933946670564440657703309209240138929100954011737899960409899782942241644220034282161116463240895487558638157608009643224737666781120946183377138198654398572918948409764518720430590531320964514379060163567038616855336391563515901741496629508296104304861905169711710252404200216614204300221466971460204339082683108462775843117031424462112321724555050557669456924702652351705821264476609330863690804559146733147897713409131280125142101162828659263780008849868319588756008309627809926300044379321532043340541493114685732422041093922176955316975386189144793884630298964732447447333944255437819140359341294705603431764234633511356089101492572331698741294283603573382029539145244481075904312763766031140720822323358227127080872057323629490183382950958773758181772627246595508653649621282565128730479414894496822431552196203995410278226918859137577985036402869844332445358480616316785580377887276195209732615413528118356862864786240529237264706448446012746826451914220563629093014291467024426094101841728099883298333114690403873171873291829336668756672933322205952073974150299349859489382115212899054328112981264014637635406450764360649904948634564215139798992876630698301148129142764744486269015388357733852125572590516227920274525645597456196265227756139873253038189016985903853743757154125187904104585605302063320287815060053609739523849124102648212419437092642734004770501697045480266814958090138719156930406178459146855970358459354546728087281278266210290652459226205624635235563819044827533996637413887402442743758582517414060499134763373886230437713202725178249970933459787717959150615843111997134586018478122880095706870165142677914582928361405730262224658815538186256421793750561014011331635394894829271759701238302378310631289573232032305584502779415797402602793141396127506420436066422234696788968745558303387150942995700197498258817638441221953468582880097030756246813535567129190518858158366236017164079164268532311929476403661020432355104180711917670579845098095751842568234895056289628713810210880545686735371945216232313232577181789351129031832215074101088822387878467786993976690082673050414680517533485371048679562906228937363305626418088928137590492394253465077225905251513289247839124909560721729808537826808551055555895329496131501294706639049634062364960847710246503046087331989813949477673451737595534055140817193216480702781515329410360113067519570932362993335052702153070135397227412745943438944970241122528532627476899721472731385629973097688262839105409829574128660805607795902071899391068854778994302996454177548463009493682283777097229570048449681018254707006038991958566076706926661157030761371688146638607756958118642539448469923076251084065641605630856645174698006198773405226380424851347023943607904151034746870965235580261640839073439060507122601342678605427987388330717844278289689419813145713892270167148921312287732523554550647737758579454893398253903410427111622051685831186745514349128148929110853129649985493287571321310287286078303818867081942305936758769873189978754961350601739143110750160274008781064212156034578522852570273347490808755849659910613411285278994491528180362177634255361291398612328596320033268784258362097012984241096988432521329751853947465826696169990685086555792484395908142775252611463690451257195641717249749380114094609972544381185063890228800552710402663445810801341380480016008243943548776413067728547682712158943842567682192275410615620650293813439217909978448571891123990899238397555359834124383546445735862605617679483963745900401893390291140655517121404308155872485851090508835072238933572882603826989402056729765652308202773853417716629767424094371987794616094953577734847600457160102820533898182934546042884820414019015743059640759369145366932084703108816335249673773988201261179344050471910219381436614255116347489330029774423755063508471474130230544821350473584168030199296722424931623305444857393435301527940126815386962681071633980240712956114637059207332579811197775474232403327208644141837736731259866589527881703286375671515876032294979322186162291949761516370084286400537807787563128850071875484905976265861417257231179069941066057790905911146998824202082619276319673645033267527779817374490958857279132086047488458663183931452328414452471272142366471764910978463226679005371739960008747280578758777727970137682725870714427181360359253892141724409897168233126163898757622525198991582103773861870205327224566141403597882582854321408645157302882064799311657260245128497936764196217978614326481073326730767513372321375929058395067731932977852361202382636544469327301541455331343141251913492890840203000364280576772271044562587127850379941520888549067638695941973921810168156889075914456024735350114299849180897109223499069501329804894756264674420419880169413012323338504685835304176492211375737171677553891016025462471646793470399673199823141179229516150369902690536858650860792925083265092821414512180879064729353414316370131148955864957751669557054637076487874770325847286118677094132639551099480642562381604979243511863341872648245286772496223523517939910959232588474607686219623984545467609154627337783608565220480829227560692553788670896992125717915233201220834970636799107937038743995595741468523298932390987605912338828320958413194002470705575193611187089015175190847900100762511769844754965175182888873526682745868954425275563653903338791604516873571223668376133455597913487358121050084805700848184098254784048851473801080886290558243656106362853628705891235464891999033220483878463564588075220342042029060551298074985843063930354145039299055138367911816342255332046278940489150111340117500620012192772011718976366293214084049296445836635613667364846616019298229268130121806235338578164933849277747194181767822630390795382786623856408998083219286662485874123312907726660124713299964413893539206097375874833017854518886046068360141334700889101155311037608974299383365820478354615459938754565940205254456002810406319211868222471599099467194102137430670196441333124684471351587297832196484772719943511722995712853836202331998456680839508064887916413354123016190282517387972975102414241646381062289480967276963273195244710827963488075823127462977024394372915110606675834264488758222312461987815629419288400085108180024920447575542672546875405499544302571116865593013000099734915359067531699490983382772164745419567148147847438983223464919523258924646191375164914647868124194609180501434354993355297053273078637147011481343676267859125222276645990284535988994731022604110811960115639370048323832581972940756016246963560504628571154086060820830304154967714013835149712263658968205857107952832021513073255905297976401552304658110923381477021379300201721832274013192602680872109006691338072917303466946534235822447600830687351355193511485306490288486488134506936034853587754620461089562450779147646549009096930421950857375238309984848344782637714668205705108138803910631188814960576205841983744960420634708104308260976798359564798509649460285349819588568246642210922232586466082988204394858768192603022297493930460551203678292821526693274978117796575948591423906085525199340116670245396075896178083952799684322438229932303530413626213584361873508178659411133284674624517875837596424018888756497260876719014737901002900742787908994949171538804473923572358148098437007012491578957638078222948686086512747333306385677960132925117831396160821928903875234122306077106556599622902382082415887009016704253546371677870782524921645817538540512534962889303713646473255803672638285962147608012703453521513675405662452557999586120648328280299890622303356856636201370476563189439442459670387621816883750807638323911572981979886304345358093368864146136150604139581052225170426490140873630192167593402968383251479752285019366596417272163229318913142871760871908739570279799853688147257949808472484224103188787541338037397309461385881029570672304262741392235628430121412010217677409908767742516263476356363507712277271654469191182742208434156790181338108515178294219791776981536644870084114340113389131000122181718960564531575025883473278977207421797175525355048689202246042245912483262416836246170257992279471426044829965187265670349630751571045811117018135322772358844662641062752976521344855826728214880093324510999644839315957208856529990948875045356867125610529460536872888496160273291956644570088565841352704382365542602923920887138905468693442959244782213979220466811778769559345272356846480516763091656010157909667598605771328282080747555971054064713061323326195897070793018563817083902828487612371388348004849078646217279174713453752860769954367656257111570954282687372636000575122502046158141813094394143630513758380728553562644337768402791651344381463523173722037725196192958606918578943220345139098082195531282380527818331965582582867197347870657262667701934803178744724531647704455714772595304373155713759025494682643414965845944163051017823987312563473574384929685690939393476926479991751442203695297734856542008809282050937165842767864289117583086689487868694615291223132272157758988979085210371746689985354796455070181893615662110574128305412036621485991118195507615822144934780556991459969319183770529037426044962551960554802296082381513295243882173834966709645507183278061190935758093025563438142671779133229028384657469442035752477021860214680482468734406591941880521476394745043620669536946194269705234683189402490220436162029130132542712620396893528819522913362069247435876280190129976353663682319151047886551968376914972444234093762741461111991233100871350339774150083437212928147140214817417547939307261106446324373997289395584066551952262917580992466131680806563816756310910303572307306213951023198157562357003407823102446129282536775701305496635565355157648652108933234378883090038051213964392925220075377505252330171895682916509227739797385453834615829054668315004249500184070015199030933943088425601667157887379406421553490812379313647067738317132230428485377373480240923801998012446360176370302570783561266804879069421601146282728981905324585255658884188763578296450173730813434535675223551695525500706661633349058695028001456031306503178408767613328286869957696868703339915366927820938080348106637210742606221794637651823295447115407888816684454734661763834308348847743694857685938578034406107959230210267926985360489670136508015213374998456614933477779912840152074857144725496584770677359555461659088263633203113047175606330083982592795319604066924704530606718336548121357425533333781597350016019954015836085107264569191040612361529741838323398498280676769752178324678545863857624184573205920282559256227437977369990831008473335733504178966643024978963298828484862234527851609162430965290077984594703556589733689670405318549194914769907863024720801760765856784698431988928221567522630647352698270922541769869973801387886158697378309818782467179076050379576088077603498555959500532232121667294189896339221888484126009125057758622830468243696869873674180643351036579378837844367789899961379597607258916297327349504547520381198201813362609791945903733133122177757065508657403392151818378953345023936855653520761059583497136893583235988121803496439998059129743285785134215650767362252987389860270716393318456053596293784148936406391003484481455660630731473953983697143383712211526797858359824372573715824270980428719085084912402205189762136512983221751037748569804483037586575625740965661183612523417000694466988925811875426391423851490510482068105764421615955074345992593358885137310586056511161736608060077343426700325793465822457778676438780276986375433421823074084609726463514087149328085102225459411821333244345620888592764525870212142757641746079033480178865203400833952283130531063868861439781293741598414076213936011885719998337118223269630743956380763521020659728562257990651228367505361755776644381293297111588575573546813192401691234192396961667861121517936394385761167606480727704609503806198000634429147859307099961647822426564785046118477910402412608127839647174089589909842262747351436492634227847854729981329080034876246231475799372750119175431359100133052598368328327705170562096447583967243905288945646324570967703025780338492931346308463649407765371302277532149261875857139333760592613754083383679866734574595684762234338177047502453821994785957463436896640116468904780320309633507188836048288974768625386933570493249077716184887904870901516215930005929362070663177673624184111102435052922266368693538907639718270650195295393628946758641526195586226846281160235514434040665035300093277521836892077908263468962825389169386242252833432290785395874264256259929354755418967599673387589627148273666500960822545126213058886200052279457555015094423906920453130028193278046449383202062077965134913250032605779857870709505954867141297749492736731994954698915193460235568223899710708970289940019810431659026438705840052300228673000909011268493463370985445393765691109173721783888330529991575841509788105037228931882568238284641565816603473901969663525049082582288846094472785157325843912747584911836316604595951778091837077926026810086615410575172256930689106984386671058761769311533255344571346615887203705532189606776276070910901627446546102429364446856154616744795948178803515741777391342967484425578268935388286243459401752836019412294402654990154790749175243360090875782267166328751132023485249435478575529267913526515079350578776737636672942453152831110876422929374073985414561836589176002878815094693034491557968500866579002675762355987921573284306561184344940290452196008375806028649981437608750952489084091746300927165352857602339798154158474370715686688847272051533884328865986340235283473332189055174452024616185090639647495463142625060211128086207368991078262786923719544475192013173150611725439569002514142961468574501788675522351586026293612043385285872597982311363763301439850067004787177655618565240335062980720686079979390039323361050388410123934590556231838308877768781322887792456522947314042623896533257102502864329295390135258532533629429931988987584982467527993846898851589532416704042458367898100289583883011770023508754944093152850995393547942026350537467397865073797332238686734551405396653376844629121224995245264267228710514884374112093249541575991922156143688588454800800949747671252501355825341041889003495533601822517538707832245022259281903954069551813970016666163103866423155838650368865595360846899322396461921247383657710998398001598390469898804348317521852258938209479005274764611070208341982404727885922113787998798887238137856046007195250251840950623474831340146513002511322861528847319914644169678239373403878407754554360768817927167342996084302633735718234752095964858310635371704088567668117919861067314010299955469681392944719584716199440295757081264469345992128293465476119524370318867882454312127585423528453684122613255798419916788569296371354854170133353071939202933846179121967609144616371770713283009112128560824105516282522889672359902537489400587449904366903165940144561252219078054532407377414560224582379056974383704785773066022873298545699362620512993098439700195638769715504597192974746310837411659573591927345380601949877615064630110059535480372350491130891514949370089758451369719928535357192691408019434265904786350744946683149428757595805463107984476457073195672563562261224457758469687801597980444699032232576971446556863425020103029827468718493261034572429536215524829326486169866586126584623310766036378566822393569529569831193348740020554427809487108708611655885421143478754575284558079261303931579754985774661539224245734523226533422902488255220193723138801051128353307236857108210655860276365070643129047012003518241211142832041421620497738014734420271263410349705141102434153210231504560946973852886783020855113555032259320119389396672486954905339418517000260870233163010267288608776180294418749203887632963148668548753352052059893221653410158625582744406821522467511860356074092897073706345118102422477976571947542135454351641786111855547403897784579842467303891098404113663808222857028503151483055468268625215820597706385224895731695104421754694058926610223497474967545391964455966358500727426557278447146836392426830472050904845450567253148169330574062983026170930396399137178967418633818049954274598203854897442703718494956600547100255360817921388800089452164998358139247900847499214547246541626553914282770217968116914819426139856851036227833152910737378876877859275801641390124044704534718487082456775066090783460196341483842665798426999284670480289204863533071419526906558030042678992469364679103372187930914056402990931288429816827867499904246812356680729840245935740116112193536737773893898700335888397581273934388274473371713278609464399163512434930382270697654706950583834685626098373556881931197521923489502339214306508754073316887319890246380141352580581664743768039308857978709248629962647193685650482072749652917467843694074397956822389020947623185700521696145150328558998536543514166231163364840027784287212473524699220353581736344239647036867740568234595426173102105046288844296294660860534344212242731397705333612966213806438427260934468812045371557638157289811779560470665011280185610300405671737907785339747585258646254601275680644931610577202895478233985677818053927829753986029360984477106372310858830016256538915652972804063772286642600415394442751551508855216579999183646236097348694531764285496460914567036393122132553789704017478825878913927711183360819077516922913868768678517599656067846456550773700924581104536720272620792283159506976240124958911343779867042292187531372491535126645941366891133745391269904718626127967341182685027069118805168437829001249216729502655432620806647375747349426684936972223320448150824115970266166423962903404545579026186721082058074907467489762900057652110461064119287481715544146857176857692945832949286259500102538402232178247915330867516690311134890872885525545886402149846855543692438245087701640361471457972073653788902838959966414915784657221532702432944219348429553360572181622134672734047613759004276937348915234361598164613808409431745837658370634650665327674535485939513546895235858599881505245983736365968754625022884605233600928351015293367703227877175215281753815219632031699770046783597466212188167255560363608217897946258868960582174113283720785301668144470202747013141926987674808760520516379515565601802538007504508839047372357275480085605787644237698153341950411197530395981912115612422084061021428621486843265857764144172291916213238827191657824224594465258269093417450150380264052503394500015246249307178473128937539122089866038909559889203284833757491450128530107695787200189778502569126854042618133786962591539069743423193086724039440996245265768944051702265698035039271514754291493495540148752032828093656514909390510627299671919638408058967592301000261850162592538351719925572856285292406268932148422283381029199703730044785855161084801127024953463490983364979014965003368245402960759397667712307465989747691964342173100887457818922808952483866620487739705014065716895482441074937450011444294028262062570290997459627520778577161673949353000672740156528753868167334565769421655872642532643451949747360509820673656681864432446570404897277299320610157564536380427196219817113858578595757019919608064512148835445576632311226225428535491453571558758027574941911328600578005922850936705113591497942968809817350328754006101038930539928875299800184492456621040011437119830002582421219926509406310556971103087453113467409664475981450790046745342755547334310319557848937587744937783965219637631905346206555124063952996636108721228239372003887404214939853836099122407854455557596887393086295830297044499695474257859825794678565889131104680030867591166747468244816122625103372027301187660748735481597660397650482152242250886060993529245148594490964687895476216444757609035970645754790429746958960353609771066758276802585069484730117162026758599659746214388586097158728136306459176648451981020403777186939354331420656677664788903534121939424453549284383617932274549217158232517177776725124537098539812431558208467111277559310397747321099772088310331789738805404294440681430848689973555941183791727358643294898283060464911225719994675975057074961442070123536802509854814124196519672700652523773313554908204213587212246810170283751654359073354986857042786663029249815716516525872629761754398110752303194095416610081551058317659577795754482928513675644888762703651815485318668310937660073897542530876054566884989875079575831032044057039805677005321550995217204960465559129684240604113541259945656127638501796592147497398112704321684712872416426923282109274086265848304037785117600110977674135538420463700714702217201743274291034433044454063066900257052730206408356643793778960270625716532823174900274506881631471979513793102587277248464231539170919121321875231351224590617627961040586474557054010507268397443421245362644772035766945346624316266508872310629281408003280819111406869489471077592508202293666629392993008360053027274865598906426560101751801200550084673683320052422861781672130893668286813577302108701227988372435293273590989983214140831534818648603196640477039258944199981293775739653608433282639820101274931926133336527453689956144732071796833573774230497372462880572718405924017950395491884189296429334693798013060692255179284484271773131381686111830965268871288444308749615703986267234040406599137745899504938325720781980015946692677797955461476181480554556617531850020420830888706079112491235700008044238562817878945708725356250976751167918159263497241726516137406736877396734525430830377628777320549511702493547030884834904394251829386979312511973461077208376478002381820880620263566006480931659138024846690458680725823642983830198145684174079112750059959225382447449866307634417793067076653712036779264919398151324699359911023327353457063770258984783871306918478225235970832754611457808532514861076093028928296719038880319894031936230232864446118124249132157480911168704395973566571181571236663270531861973902380479889917204519597814533607056333230959222449855627806275756736912799163653039710480330591825063678926265758197662334658398688217440186972957836672608070046178630822004050212653915967574162667197554796071115751853182100688034609076203314215989417530635756677203364013903216082903101384669958224483859914850689478076763655178084921247960839849319942924223102075181433984828527894991151735197161451060521083982081240392360562397036722551369713915818949292990915148372074099025798868944790355976150288089982482895997518587645205782254355385933101239527476156026515780814250122064200850287417815975661605752052399783257421323815671902002601472160394248141904338238793406108053911324450690227092118892361467057925728372386223911942976316390360253819708524582505651868977843674474849374019156372328613700873244576846389133664266217982064097954060011281572570855285797640317838674565601140380604996237673391514704547504947867333447585922278757008723519161586692750178780952948602162271443560495165438649994720150899189429028035991287652167246194963570402864083488802407661911412293402117490450211069645499133413691620768546563821744273348693002513446444825627492829236389004455345085114656919249316630875724517031645958853651295177456303423883673446675479018542708091482131805441504385166805486847757656305330642164769741779158115774735229306256175174042563418250234382081993902033406211158625671389128998796125694445877399523430604603164309124869508481247839146995364146803936602340297946526429070986000112170324496431039948820175385199304621223367341605267937062440281275440204463989766590103278665463264260774895291911715728670621637675818404076427033607803747631740648986703643902932968232186033503074756588268176210886289116449749942511609750445376046556718189464278751762205912217832944243863484642728282385274193606651781000112697854422577024117817540925762088318247014657798297465933412652157005052694210373652697110300329011175666330897349551404239383015177639755502557815123501162912060547992265426130489853614051859258874648605805288888500186461335560306004820559955339446742323876085341523948500475706786345087738354502968164992107980529316674230079588282454583098959050709603620205475389309941364164555902552470702380596180466433115889560481260743514243175369890057750420910890347466614842301970391742242560498147415725490805682891208197332927257713957554443195936024920105265932080583343628407870444611039424393843930812173163613601139530350699442711088272001106400686521568024049302573798782895639071640140016004047022225241170444043922123752097931488320097189247697543237151862011815010592619972200691412892173772687019177374400912117492379730769183942338398647753695788421788442239624009414449659778728126577701055277307223259866182266246215911073330449579701897245808029533336259996277183097424524367750495632172436785613105477975369112083775963819457331402684148668674653498813846984730067666150494705826834584565004823378059296442794959216696613811546461570571569341861488573385232909544395412234233999319202625398414056501667080965958859099480784894114338923788295396161972942047891889887255946477825521392002414929896528526277625970929465552768280151330984270172617271210176034710044367594550306842560534961326552900582686323865373309049303300035429447032234402402294096749820175172270242620448693276486700054799037194431574347679270345536892346257564503759672214522790266657920768958647770136919863984074942928068768409229661934250753124565262371574251857681541546818722361918920887223293280206365581317782644172092249771917528187388185268056587223277888879709543667601876395246495862344451365495727650872707536919857723795356048632281919639074284354153441422698039700521091089480399056578172928870521935928074241102500981282112322037237002503398052639076078812175787078397635999968631126834121255802840546052699323567364142096890494194125413371427273599646401322717733014504163759874774627975769386217771560240592815149363417952002307857481306979367069666925867997442745338938905829537175117065985195964955731735313977065518817697956183862969191417821368829012379876102356314429549022890030827159938125168949841949399759321859786099240498874019799506682448446467144093079950924063238524624379032642067193386294220521799968476474478991706804076581988276489798921314180753745939477662899005115022962451756868849587677859413329302257374380885541154953966959992986659769274606838657996576670175632455022196380729975940077836087022458761911929437422539424337777195480848450920465815889947956506735639025697469387515708843093821948272610205419311512267397458925712715056659755296133301734280589152526589095202348698418923565385731394244167218080246600760900132913384347813042341299001272417075306009193063778329976076016592333893417543630602549130508289618649188054537472880223787801223038517821885545605119943987441660689716423892187956117688282882968560755009280013186713658642240688319716576877562214664489446637239546907339780710763447358007204560238789933241652073410193360100847092719902749492535466293764425797580306957786787599884595184645090527771962935366724865782218611577024179666725309278617146209605574501741736674665695808980684693009792599472712573645604759663672725256710334135265505381910214201992346428887186414230142221252951252237725404532845184637661667600541535211933796410271179051501715445524690161796513819100119192489377517220662978535858168494653894818438506910845408620191030744701425419663290323692087475869124864674355246011160127964017945184607927060509068601718217669520129901034728654073683235164830584943956837695832724054281036217472663290934314232508590188343112550689475593534095381758480057713333274545155797947147968929560307658209410794924081595358167321398145789906107679934343513230816237557318997979396181156826193933973063146621461134516375598195477139626081754961083260254084429162270852464526840181954394404258029419874799345798510097391270680480147566630936929280429385245762452854165553492759942521875646399510186021788927764581337483424905905004476187353247054187695849323127644436738126019391500113403911942089891574247409417099301942711731425747320886866762251443470797822565769823502790625776698518567644525874648276849972216882733715608401996550761457696882034759248451878742692755985586628970639998688090242398667132001595462506080553328161735686930328197283718725117817831628388075271257493368936193688516824408079414518365919517347529080917553723803193661058541905542426559377221116132518576862753435175649910855936162325490026872417343996691522559696167331474007162586692726668446486531165411799713693293037796614048118815880615663169974018576382652745474497077603760336630324944928977924352115545873700300609938503112125139620482641115411097912223531569834003065491372485672355973328123423107933281063118433955729801015255305730908962168571518534203638648047291232216111745595908583373992210876647662994927703516075631091468276473577741665985791331672240990927909644673484936099822539008320645987039060149653107536180549912430055747126290641424294278133244298757540632114987262627645642190546399433213152543151072976026726505434907636927621917898521922881086857845463060734677649749775814099627248125384048661654159001135973787833186861727377227288551676402849021746905449335740533758997458093204277155962192228373639423240721237124977771301282793482405121323955914643063302945961330647156653051773337450989784922355007372889719728694902316378871290967282347625808831763980081500845090142320183024504793934342716309989605939388636303671559322490530126029794008935794575551144334304753651486613389217273876144474929472229862971942209864875004084997073388835543892374296518741295744089915919861959161450689691112555346865808668956319057895431045996220673503808240683858143710753935053525677003868214160238270083288440779022102717154258434555002322357027577327234873042021459094306008999873628639270787421181349206351066448135336720727084031473771825038335592684777222216169887994097861762629928747092350295569055953420181520177274394809900482152360467581408437266598058882146469402456997852460988024645764423801540649847960662577931687155096256763052938971845587639206443158327648443852388609304304865691382386912807202440937205913534411816065837144573506085978632839504187279563247022895651515358236531325600411877484557341361451674250348375682611532348718464901386937978707143624223003094431182563914669374404562126136800790800883819264166768039775264478396449865402884932745286539536719754990679719588664323403182342532093692893026544460362583066826396508989443366457077100968780916860877095817691584143578971017400972400366542818311250791996485172557335227034269305544074312507802993567073760352279352338667031478126292827510369115516884660585718343097357106817481450841961939133339680343624799818065803922187821286462634707282684107849493272396605337768780527229961185019534578158462214787384381872023946251994977991955868389326955260866165218444458367270539197184428122205792091747865665723000986861891765361727950586687983617723195828780571888299848721051060639524198865541848280562876023884332769887252311097675152910324634315576700851587250430717811701941306666385475437145671767929690806528203450661960549149069083378588283919499778967342764517383220243531714441530134090368995879275165019501474429748686004396406757602439508312960391177841943698283085048835356755025883066178804145027449400301187090044161314355812541476901598029023892392513768282977710843488555721162497091637721131155575227242831657917903744583634155043820712164489559158423671936169360515346879895697905859459317859214733020845127054214575900450884681607561880726928745463746387693196910336416588049776843713160792771192971340772178413374388991641613214922698624875274850192973579015310754380996337696435819682452699020504280591730678047380032358404876432735648184345476981923623655282100842371871550483181387402519004523150009920050910817907202425313189007729414529758634278016020307742159817226361499402120152733756634933272971528644007911970913176249524657252404927649792699528913139908130515515414004341812357800460661797460926183194885365061116906312734144708873071537598001413888528451099795762740472579427857118617971694843916130775821520616649051344454957594636090816822187039613304597586032687230923261509965787314060257981429458224235610096585345097591318487654704008089666214917716793216934976105633235401259758939967397383719226382653012141337038685546874623554114734218602237361342539844559667322774772743890518961216984523408446115780427058007349662529896269826413402324417507711456445019484142833384371725132657847838960365296626095569164433199496901335549276168297024904750689949346809508557043755983220335327065721066092812277065035073079868185023227355702657396236468178426380969384987216793836043526949039398007995221314248966128067453496508833922619768106234645246602512439671583305025869380139966996366091773243888636905888930456133902714166298210533504259285785398405757894219897180238791685701890352561730742952924044248759713333772268533699495200935341998771957513333827893698705913742064774121904925663604953961740978750212570313993167779927210722622289555537124968172128758946940666326496248516787388608928847337790995607749775490717864898333265776413184736838392866972885089060139090149674427308556796390823832755635564924603888561344388297916211556424590959670166920649267112378826109428008310226502952794522360088964182763658400622693552419348087255155176281404885751806128759120297386277556468476188294559093357970374541569478461647180521674534466754869747968470131670588122189051090630087580559425457228209099885273686187261674307660992977556360845382802033836632218803127640944835794554706138347261278392424612822782215946147801503458373045031600568353719216963634460389703519590432061611508883344175525662426976407273894360024564961292990130761654089104465578442771832866400896660020495784757975601875935979567745613296888885864205417857665036358179766490935631653410547803355617141471609774885418404157002405315970941892706814429836720376624473557535937935280798669596248676826266000070014446551792758963863581827213902247119528359826464259932323714748593629712011666866360300277877594060748264002384768591761730102994186389314114066680224725355669503058818145584096279366616257274803669590069479232702304752598783165165453563751756899576301411100055067862267225982927324799785690378628511824253027427508735114983317689239823506061530962732568479970969737835454782123542946832048090600862794006222097171302582468688449446094288337837385783760543220265785599015054525432937076864296015641226378435946222919699814897098467281532687660397284632318502318050118694544066131882693648921638035744405059930668487497641372180170150734518213385480086687170586671450421506752567887377605183225587248653083674973094605025188626847659079974337901913037727504859630478549687827887440330594555335475852244856714974241674489420759968229062931647280858121019875641924423216179529064839822585072832166048755531726789854161630419507875199094507012514241405416164256610647704135326159185317244094758909892807116715134330598974624810415759508165974004871562362579209381375551484599021208639195658406252658393221115872202967888626944867471463220271318898542376654027403314099284383748692381404820385966820304363553052841294088667032502253502591386767345321217604791196418452394366543445617134301038924769675870565020776312095739856248813868181448915224120984313603218784484301521212792439059634637460958525885513864735799849458434902046615462502449735305114618548721569715406058854691659264447829968058545922009146076634850320603606312778203450699089948031150892435762501329320361614929038573089289252405427887881065161649661289289088543889969712878425554369269565106455013187230755563571461214423057696227101833948446683274211050775126228406130848782537413825717823812241117470727897390852595786708035608850202477660640391051371097557799798582760166714279104233596919557148587515743873347599677686969456432549684005939561793042126576153006467592462806415111979202650130494983205680048680623899348034425689627793174385730569518052751387495260573617105038541448128637370131990168335846538735127477528558892998559553415475596982898654055332352956966898077345905173616670202578154967812899294384759063425303720113354504897962536283649879789073174242319827789223983682431246013004590756078764408411691040565768812778986849733750737663484340280099073768324285734422583596853549461281946945075939997102089692511613825823199937190198564031620922564124910955160526904447563595314113341193092027254667168481462451923690566174166728532175772598228056521996577645961979983464362199093046127195482048608956516563980188386067605032890289464213737098132914589468140226107054168858556088938949752021259448413850259524802108528850574828900552037212770548113641831097735594702978828389812239097670022703064956277173037169956421657894848393625970836555143884064013434044263000835192833586942366670112589115467072433095424758717618951664762029208869915760922192290067358474616994860838381560585396590761875074347150553573002737710152395253699082046647442774581600398033617232667003780392910209899927614338156323837982755822625809143704358612367549112787271264361451860355257260240260194163273112555029851392066278447071037240372001949445381112966527351560291412723989716713762686961718766284244494661286175351003798161922422206880456867337871983088319968138823115701996713541289576309583739804809645427765210876098532499467832270140044679663116519857030830552300727213003223125574370074366311078454919582699714437018571017940580875324088975354678721740403585749138317527253540596658108012476421942663985671528489888352593805485154455276589011728332720411631912075697865254144030945399208086095460566346870563661823186131281665932445222511454732508841639427401055086990191215889543142105575689789274626916218294724468276515572094251695942230203870146865931143258513337881881810586914450922937139472246787378069086329234975439107948167629771758269908945423444026632782091426382012606356372577207471306946055176932133199648423329166136175335381804305822659686143263452777992015504604527451315542414928941327537924200637690119239366637900302361139669199611519194424928773151476740310391665482677411112649421888176040214132004525431144327492171765884293786501659254686340102626568714105411177256906734263987910747904160050545054298363566896816741783638424133646010906132408834003315861215102161954202827452727340993704234951325440154036419403718630776276794747630344463811778653482682330178314715972996739058517899779333133613485759413810294015183525730267693726304102337152421482891322523638126129182565141344594070684467455773801301172215766982581997952494511857608890147491777075359957990112226512860495034671059241421709724925366046702308139758977515441966657972587046662611421839824926514924002328991934935715640128496431999477947972910931546904687193903117880721061885310731641411920705622154441161644549006491891640753889119155640836912566118628250288909064179844572741031219075987213491227558713338476955503085561244999575783494158470818756312408556983646022409701817083956652620596920908329311838845355484424899172315984652763295704134744140561913314362338006540300165062644879685052776495189968125149534632505199449711457435825843316107206299786046351402874240239555640395522832998746395629005948698429545971285655571039274904704605661805505161052787936521954599660869547624371898514029551068409828797078189417531366896681411942321357784124838601121185376018290216777847397778381869537235511957832167235811117794687119947751672920918919937055499110830377932333656239501486671639876745394329933194997746970195866361764227215874003505630128009961522542010414560045079330450112003166705383214784919197609873201679314456248555172048621694190794447127666350413222209452177099985717574552817497973494984923904411777353600786720197510714102734483953768700359087622412790877891444117371440971251554431190610577723162615900794173221538601547562229985100907315979740201847384202536472681108302210733613591822874904432022364049959145588990097973778663852056600442580224574624051463046937146283483456259948338671168150542215069206814815686765094613330069497107540523850038906571264038796835702151566000301633487432388822502502617718542422561403443958369933579495540108112195808306782679576723783597123911999506392132790709374445835928955651207868429629333822509954135682169270995356994696888378340308566665503690142506709398497148757783728459182716749775036660290607916577026411096727081263753052631097221457422401330254938179071345989726831718610480075722535720501034762677298420609576669908275176804678283683280835094346470983863678870522767937771282799012839511395978261090181378868167805933864760792253189950524848074259731103534018605235559197142012136087418165413170234851237692816994218691530556341945118472099829269693811690545652480580264600338042115859336681935273850477604115268496336881499080944073274991336179130787956002172733054269771065755109401613006273969185795605699885738087639487076211971189623902954104463343459387202648416375275081998035827417111646089717223387154959650007239028470011529394752561369108425358153143608180946118565227150040368535670523681678918638196154836688799304977506366696138273376633109884520829416254640406634083095913917096481902165302810943187590252865057590540540035423489905191036098659212751287168069947034280973222855774169011597717509273785219927580366748224070677629970125595256673521923618835372716170833403785786436298020168633222997554882452574334141816521024882612112128760514400191397384111123019397645384754893841599963139745117908381529198040157521704571257303533882256571948493604449153521139018451730762509086737938741254018628278327502614478546050752064258465265858395104677821092750954165683868186301814680626550224575760267943787030982310223528156714484503361100178798522695008188946469850558864858020950407879506346072501798447469907638662052330699997481371685480225112177637100584045288158420118214656645554591193998755064043940542941691710453056574095139828707460868882767201340460104341966257032585344970634249558127150788127915044097184508037967878768987528555466013746408804747763772880162480265385110732089632860937429900685708551450683826797309479636100349344572465946227440418439447511852461470691847716659904206889486808039623952864701145575392641256703941604990913451263636937333700151381229142123785312174542682127639353884544591479248468079600597843827896073198329349546366919156221612687820686403144626507583085364901691444430457289986947929828589335869094617647641274274025985126633452885302177890833822504712838782792515212524565078664802762213836600300757552105062228328995611478773536491501910572620337410460341141051789201453895279986985694816774369181859674854213538386320052922621257413068291232594291864176231024678943695393531014840321900984075672217206522894704337612148932205006274663316141906548757979011441266067297936748631805542695340386578017223104428443122761457992846717360447350937292693723090015200579637032463168846056177888806696822696186612960936434875367482728695016789108574774215053224622266266227275386034945867393068243527667787857207238386229893551509638673568958879125537908026967749766616123042928049137046181007620991796309761132564196664813786201563490632762644308232885082883555989015670807768538486024689893694935339787515703590434626263868719793043794912808659930811727092777131175367724659583189550601623539258392537522015609837704474672306805514442013967427223091944413093873785396541021397335639659345324834554111467940637547254883094072952118231824574695204353139959882022721588138280552087799639752414333336615034169384974595058439574414388197888750443545017659365649210299839650327447965374735446718607675723658365784076172280392333790909159398395281432144541188342574731645509214676558295321456293738736908811685436545613257385516889377642672832090816813706061011040878561053477643462996555053812300349390351968941708000866905030601126532043754948544346525024166620435378559036435181434172157906869798825120892095391079375304384830415863968060738618471504834231582007933421837342985814040362847403791340765089525499645182052452844700409585548760010162156849513742954847819806326612498378178207235362061798402139769640132600339995637601462172174231391090718858892571965654509885404515139016833499334630911432594350418446416874469128012244039937280453220279347141012177804512835495557864436523897287632346383860558090372698863498126441964352957399273450782111060963877191197252666070370565292271776861952098602368524188256809660239593394972919384068184957092045325209879559090347350683271887010402734569016831440516943219857896581525806342893254690679078184459759119276471298133105468803429810702387683676359309068733726810526107487535617140756263912525727635609956383744708846026836216207401495053589317666060274258569612806519350354708087142818627024339083976801856015469107991921014685688993956104663859890895145174739652235716434812719101366317609551385154062022088991105240483331873573338665436199504298887411047001958852012278882847372446016645432401169522595833331144593429885158571730878803095468357288104825616011662603139248586173785003252463195228985865197896115914040474861697284131779785034011802484290814562608902530191540301158190886862462065276931333700690205367058386279336304797626383257882784405754241930030408977820660459683831593111945050548141365932972776983407868261536749627212285318494505406990433943523570760857967537241237485809517020260574714946986961618467493348816626371384851416233028632671709504297558233281756441988283043811320248136209944793412924609904064061410418573171105579281316315691525397595875941993136271637996830499605559594277965547792895506512865255773898727674136478316431427674655625904024904090847982435128864431202149342261036048745473795107162514505649360261912906993059743633151827008505865241550906432762035893113196134119380881840086147704545476140341816959510789841888900568775486034211923433686791164232980815876838650712277974600247560134395240068342846273458910637242908610170281582543345615091284883674011616727789574149586591724235479286548758408364412005403168133232470284553627569564543092456720476687501863430349896507262888318423564106000558713205832687287659272868322281648179221367217579609346493606698190043411646216663741762157984805908760626088685754224851085908264800010715218811882485007050235613076308128346310737614729640010252446875398617882032312144506107166383374052707280748863756267437692548024217642989674264981671764992065168329066711410938884338781689610268850565980855511128557130449926350751074344483460382805276688464377974170912491454878325460520611080437705594273839900545130018250507107196619276508104900826419907950267360794809949186746995130378428452879834693318873773047951024598600938526711316396283304531365805658374786209571452415935295122824968714645388408967238155957305118178971144790257353159064754805151626107664046802900221140511756917247349904974001637847309071854053785756342059037473555607254769782206909615624225488765492578833279246094913899627490512182655254859567309691849955750517670708053636458647575847614001883013029086308876974724004960698181565965120483427651218370900796652793751406378373188492650148505406847270827940087264680547252598194179335992944151128111184279764494276443653448770962343564493655890545183058902794176750763087598176755964131087208869296459226330412681967440622403506120605433567704198481749144482034269300537286847247169746638305684463576486843920155073418767122886725643872758816575571871177018781272353573685598936192748341562308141968152642683891966971688754461004121372615030268168720210023167241759543411581723823014956955453444798476303917097106484874994859079788501379291514355157941276515379092759210448520824248427627239749531439635413841584326733991726112823750095991419084421663582269399064295096660703253981160534175005967909461684526005692120215595151404200981838430023718811020206367268574620542900726785433360827822105206056706488629573466983297653066548573963594541181677478997677482282635417581173589606870844415394066921917767874014301787340311082064207600960315075722304511172434300851507753498938097088368051020703434006123081559180534477174278637552814847164577163816200289270075407128061198629336377588913459410282961444558888367920294547042690413913476817655081533589797578333190036146663762028424459500885985737528877106360859639259116272381129936981152611347112868730568065216735190279149071041149725265049444973452001325205529275835499253992205721985521597714747235252566879179826305455177494032374549804454253175667029967012147934681412316083606360837499709350478404023632141868539151642846622538930572905068903329510745078997140079565416277292782370113914618642491620631297474144785549080166839030954611995757236659854789496463875639662003905913300211444444722816336906879319854508673950247945181326599861698164692248915226551984685599387023497596939205263082734346387892504087181562949521507974929336850814160639489202106884298157331135648457302885932540939472652858330524539090026830208409792942753327306248690239996975051093292000271372366496798561220757871512285735694435236504742780177440802739608158705802295229423296927937678408582651459265325262286200987264609801876584295325936786635064834958240934212134330593863466890961975531621373406138838109659056136629178192364646156597174764217786510702690129621890420002230394623195626647870841556690774599637851552760458942706625779008837508635743806920157807642608092830920819256535113379134218812325377198005163348977825502783316039482416467931499469679028318938557806582795328217535995862693651450952909940087682889095538878259148658737167258664493220777048097092543021237012058294805639620292370986953129673625979933960713540667212317318276631233357035463986918673901047854733872765718070831959568591507627532677056565604487596755893146781577809212227949158519487310393104528157760696129328180078956344995703826767732318737856008895328390714133332334061960256249476280120247429977392695408818180970772415136916728464745154414938536777838143572412146155148571797782644155347295567362963399951969015042908017468990019146752201883198189959037189945843653423546608375205201622501482854723473646072916080383543014557469415126079670651083924064003677139856658550477073416878298013090093306323521039561435105217380582884621011485579197397587280062663387495795757977929065453650369625250558478576743857831091001017135326947230743170164251335206381326576272373183838760121884405820605335243210266175555438270359423775786770660632770018661773949363773716507578036428648095295530602747895225815357098366714661799125070195441965295023119684121694198548548677655425781523214481978601079572773694261450473440429172669759203496781998195141210186026568177385577553035775741379405050917631155153409770423539837019967787457902320796380533939775398778744400887462542834887314151720145038110978890511965521656352811795711586506990281168621662285353934886735806099400233715220638644625708819192217949824729704805834628701746345764940772298680654881317649723548714383694768852964878634038155763097510750436177507597769338381434336603887901920766557907284066481951159191396652717014348769324315822908322481031499839419947493360793260224060401881683191342930625393517759235190062860074100481255158402136849005204486003890467518100385115665730541033233290685077114459367375973180227702609340967848484222012130913330426402996914143591729796894665506432388483271910597615561128159473105360405913527303529324458689022251035566930060673623425985745076357731758679164397605339334064601442544384050089661084292984456614318448337464301474130436631309843628999197889985058629507592351431987452904265307784380839517291000232115723970349458898543235934310073494725413781130182473455990105017348427810513120777387300592942004434404482751779510043312722842697848424113196660643547000795235017377576847124079067998169324616082422725606754083227631624458281756982342850060002822589133399859611390161080360450456400817860617214617850772075883076308664522911946918288388803337389486997527435583505967171589768251562666431434795232531322471397980175884968659875433727378671672027655603007615916455162929169905547659173857729374877368017078583510260464625327883891865140703558514781309737782314790710489483466636643071690498741659495177330311304705323348440971662457012690348286927788882410997246071259151027126774461538189802715888925232689550078139098304080140439685635492064584876913682820720002133416220129486075875966643768784151129298001971242986090075097131849541675066287306976810552527255260819369960865949484611217056817846011242514184375142724944016984187746970973744098248361283231973926466271944560111798583281390999463121023903490474171339886861632503413217614158051050418706997613952391720897029593767353752983876230531189789765075961386420796140676446645619382278897313954872391436549447678271474378755688977512712039829760728481287650788990346441467001758326163862645416483729092676373099538713163741952687536954402795367369723270238852681743861180425962589579703646129453668760450655660579981396899187023786102921781227887747520714036048859619235903807427120972824454756632930531935513464290468262885591083111964776210934937862607327169581913978771588735786051352788730566969531042806225132670062158237701500282839210533816922087325894016631170259550605315079609655122087410882886398749922268091407804429087561792421668662276184145939054109383263729893151367827950513513373742051696160531340230685266093290281870036171127380827149877013437342835273035635235633942667362925548563850939995236733937138372143106145936110385562284489955816174248909266283859111434072415388939945192897306621093559612481690268066609290499453213903727281826767092573817784523622022329443737875966210795599247245487094070607051772016080779833856784944773725987977937983425702632337209549483502232592299133243074922418315608283866904750095857332386747262790351752243048534053487672833487821931921859140542246806451040101137317363498057048309347474597898932684763408143355867744669987405017865306760032843245035224581479799051806642714109438747506942528143585548800411973364025713767439255606207079831242044312773170214367727874609472792398974580798007718243928594310999291644080082643546815259430109536908976576654061598746428839735281020052970074491982392976462533043025851636304533915440226629391152602023764280517666978354652271998089189182026448039840033589352865044467558671379783716095008820659702512806009637380085168694668204517569580922641810734914819677239286488709272333064290689351503915823732709004000867548737683004920698864430763348031905551449115249037364562109198902470895952237633096471176705175085055501976892296826690128892085384589802561018622520837430160333208813660223471956860358136016909262167222548207065960285243180396736251075810801693468364662826687623698195679424366767753130065672836527339424469747373571433601689869403529925590571184014872418435115550020341792709090157327348901376144164660740911137899739100783563412835665180545100310793952064663391373111819128270067830179943660245635619235944025783950114404552356416416555127195330633264075014838448946012331800908308406731403606332203680567213066528280196353261581772148290254443375650984043727898961637535780849734076971281782139174710461862845175482395445211657430755623866251814620434741441783055382279285205100058147948200062429954713553498624789129877460644855913388998296623322652603692113421415377285773804800178103019539728959736390614388672590201556093532907527631833038458691238705700846508405092790092039427840904263189554817992598604558844800594278580112414050793675750430545349261800105905301762512096177921381545268784450383594602255162989761420290751064111408124458260875797665915230013806646607359999067051719919432252185834176477063994529473240440570164907182807694603631866339714406422515892776414601947492737740892103876625734230739748667477564864644313014070220628267302305460282088259436606484336804098452763470895469347265353359596845383315598439180271289605571691742578512750592804157823175333529338191745101301063713322237237237343176725705939486844362475325916280390096213285579632062814628376650157590616415091314738531885753543386852220868109007924882561496187274322483373819191377143854742894276190546700155353311390449752580651159594100821679661118310992671057708298561535226603608396277633406683528507398984061520015398555549463628596736123862028812751831875831537339304155311609985789758941834787410429890145898632275607464779077449539827485817808536330339470709029151894309393303388389722647544514693775216614078213492504551953406337354579980974837597622601094611333910135884080492923174059311076118367687951147356307148041720652119025764522858189967297892753143834020153787115901460456133991549222786113711352519740117598021323580971973155541751250902351662831693241710928849994732126246409357649000572831502099321174079403474710396129741580676704360166835690731351258565029108657605629036477452057378697215863191964845430004708136610607766614125395977897647794107024795479528383764421005331146049767434458657977160188699165410182871290384443592896701154627616066919601055726064769003272494667813558614478027964788175355472170587819410791135031032645188173802047496030842897868427700822516725576940971345561831071047972526924224481651395275507771902884855013325144837323330780903453224821955035508823145415573484215436287705129931752953688006779944564854458205509599427828636154393723871495855204935128749028209016096872216632303168971144945830714819315451259375979893505164760230625951829948480289559868667469306508797821972848255493238969776021217268332213857976108965355547478189253470609295605052777101168525704907893044830164277904652520377588864440683907100931467713075666972414667839453398872061341390065820234771052312504255531364023626661252310024610183314656492392798529393414604318340538597960486253654332851777633191044584654363367208680198803268734295302384366559676158172548357155367977003335761854602092567783813237100896597456909302049958736069018369375556822041943726707398165058970376613511314655948128184665148007371900647195153729834508039076023661634037207973505420933267021550464334748233022739180839376425598146345765988269781013042075965533208067388960364001514462952074460315607154027894258168394538492498229421969531996123940574010849589436972705923438815120809961056328851481775854165618566756258217304905993690311205367815269725260522582740395863204119327137806482141562014260289130399635101400886020587143117320369702653512552907143451926174570797667612644785362016769726639941280941999149878479581277976385130619693913785568069424263538229422194868933602597461104756524062541868003223775699124588063353412551792769489759410195801820330934419079595311674954663535880144920628799457334134679276276706482808616729558870649145645321681228097917408184723351299682682156206694598759807336631972442935845540303148345944109783976407103305816680455813735303048517697788245794863307293813855534598717739391720871985423935311471250112469807981495955567395942903603587328622146373213272860346460079406946013734379045349693428778278593498089111119800171760748235844443150342136306559061646730795853273183089440953005726180077611610922719594260020874946095187082014888699718071220384236003059646678410311459219872749318112193176344698261580083958461745513240365846977634361649473336171263556825383637340282002075076375388458212729552677737419005323103913991836862842456705957964328173088462471394059312605206720544316386061731329647626363302744138661637993776747262575794829743099830028966458924039883033082706721529750391110877228854493668559278440075360762239178479490810494816056194101341959497445909619863106409625126023009083447466310437292608066551843528857277699951699562568996119582910379532404870634373141056137786096467615538979218029907881796317152118569859868930656219282358165834076661527408544321970688961443372356837259636043765240915664704740153586502258137282896148926849850340841953034226472814626539348390947070619093955255676946760781308430729519494522665970126173438825655875298505286747201802435708292131176975352224605522531079403059003133392639974741689445200243781557530364548457386922845450849550794040303496445660623978733453149372756684016992668844358389652406892074592271306291191222460144364635451127752829816977845575709114280492260748386271303183616836162185828866827066937393103204476583597752829602934713250021535924203904625149865126964424903919911714665908349340517606809235606370257062627819916595497362816147740289861213358421155179894615911005416780247638239078106866301828896234637824826379191050492230926122408095468551891670998767624735449869190010522638772337032672003071894634387134866613647505481875904596300917007454783972997700834979743645039707511827979592409065404061739099032689034790450933825973909463116469319859940866271094254009759726913535398516489306260938000274986897594188383486124822400936729425396617321697543733364439644784603047063880333276332864184067350001393817087392574636663814047691525535074386754546489413707316970286269940359475921474321288843093798939856649770157337640885964531373077669094678415209672106069890567191729420336434806660785513784161996530673830305443924266756388616216002806704632780357369714931986267339462851895364261922299407758463740543304663310777933891942221720820837988222235625028521160750399832904613377637621938700063103033052644873843823557064119519164649114628801775501852390970441957442953859064703596175302254147723561530284866805938984397379744576244190494441784235105661129267024084820791950656246814918929961950833180435696987885700808699920793130814100216637442158954115776330297767812662112310605788084527816021699498248146645994035554788785536483685615936985011695700796424447910753915194755476960930784585400366277321147767055021805005618141527509611625751584553303665510226060111661309024229943250485485071437003530232390642296486576771408833265399210462339301005372935365328265596406734279101801632615132120163969575989275721244533970734183203592032312946680031283167846339462461727752511188653568668349123529268242462826602014538065705874835210393914543215768437741551857888493384587168534048596472578335378970926685851487690800744726124745508491320950858614816369674752356778664768647581712663661181805488909679667216827012477944097606838187228307971674576069051292295935495198299005397418275494144693513934390318685448247210512216458194119523291215801342438255659342863250378917275074327059043091109480735415938753213277850667863291421625239756594085161881770537940229692664569738327581223350754680625140743426489490017159968966261150822868659878028433740954485739625003045981908259037533854549429255356898483907406279104892491901195316725795046291588152874393880523452816252081097918134039830219996759724828576991157677868180699061941741957495249598339131955013945161413060580068133777741207550086171470602689678037618351622384431163887907971967163118110761111425304457871982452233575675623875808424730802094074766840047046651626944223383751611318016917519175331665130883389782559333410529447507881076897366453594528537944643594811798859284949793922629003705678983301012203523643516942019106754206560340053451140365363849595667424003251579031828084372534869134565655645594861482374530224507517941651524082991830689131547770446994739797059655622047503303567118681215626793784341118291421559286255358736628358246859725735634758069489185185509525463948166732096658544725931860955257958754323096613872762966203208117232399687964222670670149425502398857409261758197663412723922527709715812608435658855563486736655220736697696977815636362154486000353192851738510949516901975756658921699961304297851057185092402563919045590842944838519195204003614173411866465783320413578323811464468062725656126458353756476521386494857081990447130316761685054633026689563717441920220653873883927602825296994176981074117563573664627336768615255380070296420788391337624535255067343546488053005286418219849566222795537639111499657087560988685498710852826381453455670276134847134299475220096739901944542040391886369888336965353160465342147794974709027363678085946708979419443955808665434644004550702134214098890601784469190160856307245488232543446417819741389791026605141640893357090854892352307715110417305557913095118216561585546528318857469633224678439552772503896728957922268522434845363749946620022108542165138957115315784776102731640923373888357755436034612734299401318443310055367863898043722874206340270247925254434825267102043301644498646954503775949882567739292936731206237339794225135841744322834343080816103969024085696004106728271478559895466617086411122014232695314504046575491884261628010557254187948080020924399670413411427176630901109409065100803509803064504181428355757415008559331431166105463150054908682166932924252944322930351820798161770138275255733493681588378649357735229559478570103150037384327914442606441441084926284639958584391935980450685357322298018876220913972218535990070114708775903746651718704278904299072740152362818986009269616465002632808361182776245202419968371132846087870911209400791824077903364313102526565178373825903271891300657436029735306869900728560257197072771407043219982519856411726198334787411824992528955285634122546551813732658564338514043109260915317233235236490439934021374716144154947169196425247749517080122493253311659639781607427482690238847404390983543978411771494400840196143004155220688999719292962940663111216368655713056709439963969054797445761198484966691312533845051902749464821123036475760727293420610718596683347933615919353234604623940790410800755378730980807659888241485656911413890420295453500509124383220848043883695841649481461983658259590146951451016742389070873547784229453878611162853258583657415209793532097290562306337537851231300886211791909688742138236274979408374522120309693530151559777203682863341733832229092401804335503026536751482761683696390747106385649459099267405775660502996524976743262016277476644188106503279873822045856061775588631024062088901932817795499690632371937370907017164364883602107416384399109461068571248517703963439799599820597268813358042690537993274680909824526547636780279044854758098811844659986463498245083702900470337999865536544734170740493283425334781453114194382156146144307950887998222711264738826061228630968971023450151390534204937197149956669968168667145447009851496103402271987745095391905502231614194217635071780277976260758234190956405836547377915114598405938022901316024783605409576039799609833391908151818024816417956149599239220068440315993966047971872349385243935503794595593492864439260131690138863345985377725894049914064266718315197494786283965559877886633065528923046046748857522533781377456407389700910542044662993912838849677366802891722886275628301618627381574410783514135433047240331786923233297878408538074066040305422363194537802066876820911727390078834854153415443304453286963889819206944883659886497923291312205421435697627234663367232518400065610171287773390758046260199038131555562053868764339867649844090283546243057989327307444552590552606908149255814238950645408677016567731991603320301489018894729691740983344410961941912767842852454675683122030403728824660791779782069018411034062274748918996043288775121872664407548526182261608187775137187790472772366500831136395814061910295365893748113093112067504461581593883681371533343024871623723153968971136422308095915509498055065634147506257724634224210732041646717088869668495241243745386058668424092026424159307002126137553745449640893957712160959047083762204802172195207257982370734345272453379121026553310639833906386408284117618263507888527006415775467026921016945283440674178700898896378903350883983954526711731071934907320560689244155551749080520016200236220831248998231761690678021569388664703770605441874366389426075925447700693805786357573030796727590162473181520217972805272353710060128210114284374271485938619678740823534078404304993612779554287734221250643313155003015633577381786432349538129112868778983652376598738524637495699188541450710337833625962418629367353257130831292414408700675170024079926222221325100816525101034131196543463882049146194048745330819689825436299213905875772194705913507778533074244144768622096716066680887650585372088106257500159639112947286112820121451562652610223806854129891053179369978655960540704685244484163576397710786777327964330334165055638579213889206266868275170379226331140224387355303448317982634283501879658419179010771419266694192505401019775763355878055086442555247813552231835891483214376850191453472519123327767912735881319991585769347981564272400253186943248959707049559119003428601424836834562585704829362467956921530137774982733212715749972639497728532072074653315673240507009547833977205957972455091114843197844784943205205294183217593764368416996639725000615823654220865798647915022124054965337344398557619184099266725579342584978082290963367202847161590951049932435543467508240017242342774842131010507916885155627269415331594526294179425158914198225955091651601497110241235650266301828024135776854936636664069552724106504693314854006788374115796035267881996646497595322031108396775414561235301749163964528987626539408608434782496867990943873373014355860920405246053943272805870418806586276166098127961754774488845153698104543536843924906438693978662637170254512822593815854857926655741249912645263721149521949339524230739548974461461331216458569415537996027160605849118103204711399318859698381137390050121368233920541518099406928417478224469558981329996981122180071048990611759540860169962143620852828832451787488627042048705748429119885519464735858603184454223615542422802942951634827553200601069497233241069441391791105506450627195449357735903151164580261570737525005102120543380952624923676886683184526135900431042720227457597055636974496235501935525370627088725168562754058335353532818391436399426857227768677275443362007332570756983289966955692152913909027201643008153012443534596568107909882239422865226611597783331309201073476200760570601834163696116854224901916083228395748341217588908443911422570986864983823521043891753106713058364068618301807769211515693981883300123043427963815842456419282805686870198470220843048233924496345850361392726659925829583144450824246827394432152557076100351874644407472893327191047947480833799801508990690420827712899091126400400288245034102528357551382625170198478096800822674093129217854477426842374760967048934386100193545636218198834965789493395362317557367244738148604614499104027673856337164515470084155869153482166892258635903651871070620521966699646388823670088980667763417029271309120125486953407860662764326282678858818228086952763212291861758490228539950767226025725534916774458001052962521049047802087778657781466354919081235342415965206124639473669870736455584943057156393413009338914081732894501323678650061108554077337822441478315166101267670842021620732573407953619788636681009739012639167866158703055659872799778877462225678172773148908258008863643456794078417969132314676518396972233346630826033060757316815368361463606836726958654858659721999094776724654700384366150854701328801783696296443050298741771262248281422441328838417725494112255613864523139266787301007734463741297592222978381400760249069544178792941259126519694457587195674346458789590970991810607188444107669444877491828644100930997625898500960681228806202354359591334500189708519514015570595042050357736350449733628626839027233840956379574031585904295498709237636136549975935693558192707891918221414001898002407983844134840666427626774616398955869201540840209158745906664863845679782659200663305559970603307289452804157819298910577368104523468459499835598104118284020940657891138002219242340422101562097617876372903831598337866477494727160079330087630971448064987968349642574429575846993236545694266896935356322016910656847878194465331316443580867952125573290910794573684406366170048379229721991496693005346528704758447767585366202610125450379153972872614967250646687200335479921231476992197682030051032372876139855623706876901170784946475385316214921481028486807446019717967793710143361276975983289850583440953072622349524619012764968717947927786860284226795349988061147889456832766133972652720617557297888764288516534622194026280062725766585107119827559282443158086286480550978327335408181827504501747853213219375069369436969007971311625577963068667445287320662246355109720571069567917981875514116962984775459834748294484763201616751020233970235345850085354559449695878810486174348250358741601115115474571354076541508215197316674789182482110980114199844990214662833057130880395516428083930740238794223458011102350109031111089005861974787429080128787911381457605546488120000197547394422226308899067845853075000731229323319059735347364488543969447102855951548305290007362427901851911559712994769715687593740617230288473599856406773807107706209559907726947927005220626908701735762976999013127520808785809694545956796454709221617563368204067867342166365144141906797346065520231732262260291843919668590453174450090270291853918567614422537794416655704242060671013509552927387680852290790189802641202129426466382169452580641396530221402138948662286158008441021397260041555225201662085292447421913044170700054006646090357584331126823573833832527221672400232160599913052529696320494770594988075387894098215273851563232201710528978843119228744058207395783615398785295753145308612461001081107048660412364436623957509507443411851564291596316254023141877456703102229823008190998717014570398393805352411850020351786891826897985848367027961887711879886895900940069500686126275874490807293333769282148157865253210084271258020000055491289502179807778331905916292700516263822801411464231917655174758842952881125725704700812142829464420753519357375189602681610957777705158956768345863979109150287624068453133413512232405839569043490098160543568013454190002444254945969311007587953471619798308494839279094656923364586055637842214231048215369479959833913196011155671767267134623649626777665569668330163349891198421262927311527534976058462704031241836501896970608841302749369245428341145624683673522101885614577035025374684899916193226698150721069902263214699702120424774370204426947505267776037898287750410840206002311448750696947981761485221135776014128264698226106890965234915461252594765147071564998249093132270458722149014523746630774675813035830523387319770775022735849123744236156313110441810756384646486049069474678303715525758525809491030649385272297033150514963113709090452593008800682242716302260553724433282443388305898317124519462679202333170861302158046496932347951858285959326055164152611782075365140034412156797082348012902107332624428999209098573643007678199957058449173593312824630559912941641165674592202116243669578547300510818786341605912987942562195112228746542545951284625590127070695190475640915481839487527130442970957860769030383924354828064923775472253918506373951842465916821832391800547011303690837570149488324319921019236833265926487160016410586838215773295258660621542205431455273581924774671585628828143851455587079948735893954280500673750637413708199934628693748325570307354285358255733558797269270330725369292875118337000526155793327025339345687565033274866961102007934391567492938522771962220363413620539276794349975272419187807222654597190144699523679253054946546005392719825574242842004486147920114390681382200506707107737992153043112649437181617448929627476212481165051103370684422593394373918301965545323526787256103787869167192594379765141935041742063315415004642893072585763681141551420979492072351425615558564454008647671338951975779791110994535620424484822680537103361586480496101583444132754234279084698965371179294674578869947415812661331235113415094212093559943440138916616185875398221506166641254366077617683518583540897467818949718434874144962231741797423317258341065484063531452552747436688634531003918632805887136726872552274868062826330824058321606900761010321863199465622014514392040529931309939546207697581075691701968979094019229785204825916755461423949311432555187917310815577908105754181595421267190365330433282764782191548401694060556174822177746211666524710239064946401593685327861524657098647260463243083572516126229398402983644241222169810424049231027352256846073768603442468285004637379928396439133125809671288994067156845906040344857679335065424529385572530049797432812283253417816407488976079842607792235976505910767145016487383467178971771157521936025489047816869603678185605927590889935671508583729472062300192714261219853058180865437876502648811650912536736202122889266136572717320376824532314447862637167273225360039679840174807257569778157228784134578154685767185967777933979764620119761899685461818515159243707910453336333232951208266155067032754550158578654446904781699371184760126207886539856352857998587742715314810178538005092167801572180894451715090462912582731799329451322132442875995771342488176506567156973927539303259600214063903895735117014963141724402605993293642512697762803748402010232863347849962276278710049876536545744041965690820256279630920415347645440751579887764106939701382836593012461372246354201727802546626772218720198347238798311394052346014071025258767694936479059468974814462993193035695136790186101582138972581402037015146724155118403781004900902952039218071244804167747459481179917768949269444687548853678553091309483584757378874359821392528210082285839731026212148978187979180893938208907921034067375415336985999087157801569773086552562774771615212066475731992649187613066958394784904430884781449500920483370437233907610241031603620655436497484572544642051522064029946947324887663908908749551778294596700484011404487008965627225728693541854410371305486349743282189678926485061638870319171319701850652228982492856354865461644303390822188897951433935551270148920033664273399104430951955036323241497051410404938454575526843580162386842111833257502954089959747446860684340417802923197258241535051769705273962755369033372028123543491738562734888757270170528648001699207277305103754633900274497005903470911066267438242609000995370898885174419326179454689478459616789538218700589876804833575361959913043328982501561437754656992759982670791109077150883040251059222021238506844909664611006173933486443063042351055991517524378322789180673846443692896996989873273790442799633318453568535463826791940248738731550600742996721480420284971668931851281614149123411175075025683134714632027750092575712859300918055383776486169993201053506706196155747712744928565390520681749939911995208927058461894313931518319134640483813184296274689481252940033612573654114274893353291191251709874429351395013466785714128858738332536411679461455595771744319801948620940412197151493915223502679890579175888870038059025660697515151264909922020056853663853224705782164362143813582550951468986227877303332517935120099766554632729995897738771995995167826368962938870487439326582180404159851514254081798968478941037065984776622782797292824185348300746857872136498422691115351279500574598880762179415358176066836915179353486987934440254922755441509679957369922918760499342249222487237735949804661758993181211045481318246172475896747234406363430199061760666836852796608579426868271142492550344801342786190769138480043588244926372937985166078884322523968918057105750593634958090932009539616277596515323190166335899674680379882185490920758956495950705668869324373155933736160333641070859614318001136432846095433247358593368278181905939704214273277632160255400017168989994787243079464311652672696256312185555781151333858776242341157848204448861649458139443303129683384554149937011570460899860757602769449530976191697010026888436511681502104202466862073332672164767628721833663939073458942633203011122239376316036074550776023617006617906454849599613696062450085347987372393490110355815790316589212210746518929091263577940558130182601126832175270283598090845019395631154025305382446359196416768424576136945110767485175694582085227635502113100389587519771316901416538225546501353141039475002574909484803477181704604992019210117554276521873361944412995293515643329246660522474521571324841729324543078864991074465055914599963020518540353524054012311820046533946544055949277354474682546721290210078888950626292889211594907387055900447230895977309364940729436368874620777865257913113791689221043556542618933876541050767603736274086139752130375090741054817563641470306674188942869411788113610472855311851923560961585149973132457036044972367035973316779523457585429163842317853267967550323435513940673473598878062190934455954791306266592635138209255838928857014687783086637039361878500602953180087207167824527633765167892915161150329074697801566231940206367360884850904748212644309402151235699477664238662304242626062552818422200208486006550658142058684838785023713843178911690585029705317720735843341961144765155764198856273925451471718731362827293779270486402015426543629200099488601584025488667575369069873628728782371959936159112348351901029778410755305199293318419237836473127874396819454512743735800680946530318921560288906555178639208010040875493086731801794902629817603508459491244840727987758087998993537121956254189801679418118450054126430920830664107040576555926869700077137480707433081338926236188130898971246131091835526063330368846233158647230374497257422908854356803527961162027173391936657755296275547642719903691281625940094560712950096916670098887419741080682441393332983132629853291716855968668099316794399447497937530392841725979013085826585589273523386434539607516620883911075662047637617432071661200132343251951502317091410187207342911037891974111897066303587105495555156603510870356303134504759302693094113340803234499549114926437338017414882143702907344686534447135886372702956937887760116206480256929884619516509799355042931700378817333796046064876171082286811820586995715877749710609250913079763440229862839108545943817736995337235069249622985395761051404638063546799666618939094976211613811759981889353021108540979691058647041832505769966668587350443158894743794963684454800585878062174332157519519090786164996882934318862678982577019632305846656122564900919458538186722807006702310390651683186569299332510009702317452783270257329221662158075347893748619831294784765162240223804452320382378432314232069930666029001829747538914969550133169175774622382953062910656039008550475237035695831407842673948752733432397900191048605697226795171131939429296604483139648777948694785967036420773571221153405277295323423748614865835026941404853294405458075444374192758222370875791488205033137445507321538598977019655234574366364343663401643497433125766204696540373664961808236683672946076334465689133529119486922176179577552344980015030268424240100762418870725515265383510351787360927167970177651080355990274118466913490966102441521239969830200204496279421028294676901294346898024642186864371664694247326802706193909285786056696546812289736215480690828109294801284223512627188551964456039465946974741559903457278593538892095252420386843220689814559531576346605490867205241784701645676085735039820666343441812055342908520835394672474843482179091442327838589234329081418433508030289149193465987260040946179793436984854103666258547622977699777503851362736880807294640115840476503555372823267922204509157715951230571243861592903683696366759509891552302908731493672639314363658727897112237832825785482654255080969454505771028524303401172854108999196132339074755266469887432026475427792152552971189396662833607290785894375376219156971048135697327804767480662218941646910823912162817738181249910176052682790137154516748536662538884871737647404128780515351057017208097897871410352241244358271776165330833177108980516246462733951943096287144043083240496977996539550950321619685315138447095977594542876157382719837598704784368688694799604447632433274006876160678182615620820026828285169095767856932861138317435420657515668949244754178324202283126246288718593159442215163448302717481370976476832552801672600895922254322844068783350195601414518351446729655489762815972925026216843168443013022813227265009831740475208674933682309122293427504074940410654810672178219499128061868270283558264465352761383005305359247356567349108797905502673320707839896949153587411294024375614287382331552296582294666500128175160608357314976823740625471552382907031162451562287384700814717837998292969887526451641762754510070412124971435853033312469171277316933774362162592482651745014578649080389876789694385724464339345484445231788363356387234428290542379396046395862074361074863240578175539686465749471741218895609247700009411020462698769193971770103023556304381533628479300154250517998319211210019985037563596382930730603822678217149803213868314774320881463460410224812905887937150085161218887124848525972316643768292672947463558821741126991520979377081332729885787891713990450566457071708315663431785310003174025531489946367862832771947027514500720944836153030602739505145555379854443228566749716985634523356984880568920371772515880674045497763035056030373123947625894331625147717293087970429173844701981856766307485752985751348242859300205755877116527700025778404669789652664312708718898702289273398409501815706767710594012465419101010611655655147520249977817198477549735034293295667243277830848552631891783329520977254041296950180454942465363644398543956633369508782336244386988495137082590893485267816649972412815422434067540028894460701555262691812703681358884925094747206302264313458303708421090319741482880054244011688398323224175954483074786788940357051759853120980595993689644775304272966284518877759434107828382828689008112387764750168898312622649438800597502451055602975317659183253024630728352487659857225535540741829603119808662285945913618118328529507931818369932714276922431491954475723847639414364966102008882354813354903020508356556738233857470261005833932142025439320868567359729704746021916198855658339879802130599767757122983638344629373600188143879556272939801825951646148260458032173703129457720959970713628076883723920250187914943512531528282857419200838641574811019692577674447273934285905872159988571090678692929375562731523525451362156056852911971895797252748195067124652746548081850494432649725909644115005749086824314825569895645892310890739377874952140455491166816190444800444515835272222749971777887540523395929075564924757305974152986273165640261978405003060475020077578979291671840684060438985493472167631347122724217990080835902492403895825696152574151344307372060138416246145205219817954902265674283677395402431232589533693648201801304637885704733984997593662927574080855826863183806021717518399268606842885240942388958368809624471934339770292348257452427262591534721590445051738737400813226269067333302058590459373058043027940738964128704716010060631205060108566993549243152600063235786323605071492015147300347217898423919181386021756246130840610459601749639879891531499104110969741252396549000084666839739697652616510536063612415715914114081233776879696581850279656732314251964328318191835952674758824230104708638620985992511268876427950048379424047477087256028352949448764104964426082776645456115334290896542561683608605430254728391518611565249129292742629868757312565825416396466740719946217044074170478381342336492287709972918332052173762179577156623386310043714545465284546189898828600930793026953029137748031451680735524584081025612609141120289312867227637482536905846743097946994985654942466861226374437179540070066994832735193475853882770470685967357041873323988977976447690172799026853321370930757391624167274706285025858531973302099767044207592152405060455302959873863793144924808247827742493254437027209500175913278473506083839966864452736577384726071381121513602829599479612572427414885330069970122745858950382935509684340733710174859965430370627129156819812337071683411455512334444514829678977102971364368039753554914834876359211921458239601107347980093558979634686466121007786648225715855134736947598676977113828344516571375295552486907791087833055901383061842993734917971534881794091846665436474633077505481166608141677274596421184988661835185492720293610628948144226858766939634916854750452671481538090042350380480992545725654913428323425853412945995731628475336937387683424794497932951022545649227248917831866485072389791204967788791516750526875805889193984170471732521114527967691855962476482833172153630304366161491562664385417297615988768227910548287801883172692732678631942897020344704211163353513921851106270503034330947130370627471150036999832837393320401096963199530212403760928578920261556474075807348057317820096034202265800494420603456832032994175488397747676427002037448826159281936416600436920869538159100383035168154495786258289586741730178307329313160674679911190136628276759132613808576432364260257176167587958754362633417251488145131457669241271338042547146430789846368301061547767997914657154007300228584868170790768759861837987174143566159752706949766176328286515663697407454271876627218198287169571956615372362494815045188754270168397994501011356228424617333345237839570714680294546606481338576634748122713760838865715420683311752861343433653207381949334107441403132506261018509099027269395158538797687453490073637496539363437329854270188450603761910512555842379697833199699783733880847501829276996559428708306579199620611708936344360747156664104745300310629772583694817158230352085197589960002256075115686358895813971775019963615877241543762110548853887792856063888609271014206358146385414954878140780545213213958094939715991661748332026797849380562963152067634315435790379755313437509028438095603373552010215512297766908321017601339373260053250869386831862347259636574906366994853896346928590958585247882603604736117466315165316589429749495403630653795114903863066101112617074291177135210400499113346426548816531145936833869126725181638766387723577038574691527817634780386723640062455716103902052341988482743784916215510133973146944999674787979172744901679979906615084015028570792337552735596641981827293617301856668544935500995916237867352751263834949962083814832281604283396258304991106552948779280213027749166004830776084894281052372420601568261150139846989662335313721873289927713928568912970344772297290624001564605360213765166470566953647657803481946625578007451737835843975369464748063151909114582192550936728056043823792313775623837210335154814094486399308587090680392630684276670715992139499388151640090311866525292525527385516122817676574505110396963234660754914721629210512538609827323611026635600049872427358719192245045414677487363249528909947732650212927519055795381028545336389461305775767808800995396311979200612427135200654646628173755034890011236694175404141875421491504917239725887118616680626942929227848519565838312598223832312291932721310535733539563966627022150464430021659714993511328935818753134811361424053192446738037911294015711105178250702486937376101367395018757876675468676532057884222817029265682248349019734175366877413596409102819444449253332631535496835895815559504352955842159508582897025688493044629902490048005530190288974886900809991784328197341827030219893065164915825744144394668302988242966025446309582772573469397824020373882445402356469738410410123931736388604346355495088565258713396483753203775486679430326848203003978989372427211229503331836160565744173958828297624851349798372851433471699493291703244943452715661526119870849262148404331142891749614286519455573000572250785690505934812863520403275722432487029606150235705920588955616540449955618773829726797884879181055257427810921001508862459573137130589663076586166669623732341549305850831274859244827984680581333215528382426513052162686464845419412919029137273044768758291198969037857186545780692652860237848901370478232838596951412211588636452625327375527325089673818134570623942215406083879687622344129448933982392087532211225307461501904930194245701333307488162505730007669854840881759182198023406489889942482600547165540012666408077274123318128814817322831511310772183539769925943700865685118474985698922406527258443627189363173409672037136596357031160681128204127101194090220773758667063140544246635992523897236658253522760790169448373149053240268769379827631041323523316841494356416355769362352477516882688108813862977729588791603185466649185361991706565326672183525791198022576393346026857594386175124002564962248548342119291347974335085614734444537059131298013844999902743531608274643222183446509982348876865857646145942436921266926918890530111490074805609154466927124437495650500568364767895226871456208649940679160690783460131503000175010529239297659674501883455599888753062710183898946309709239782951291431511402848936827797212802444425371439765421655461343580902905282699815196525596563952311809021430655165795415059220032306173260814066934297472047382110021041129532135804097045166821889896428650639297825354275854001598883754267524195754300736234658087131564680461132175330407917433295145244138231366579505031151253544930963935935309281110781882499272390494112643809779318204706076730184201665972687762611181542138273018633794325006286649785390586407951335036632466001865751594236395478441595442962102830003252292778956668396922396347898937179993755293455665545877489799048159841387699800535556496877847752351775492965551157395479728329614945191039393724984176232989529821570901030426721240306320587419240480398508302178221123150898899960441907822156311267145855591621990262617752869506654509985756047626283885994624342202737271451189589157048288156361286538405195899712892907750436518285812815709645008129000451889152693378087153680331957439668772569403193976482400576377561654295210087908761098622225174762656711445097252390363750840791907759605439693419770286095127402631213688815816325979459904639045164931657959280940323479427376974223288801445926083831202974396559157296787531057544859296485071490736535326365557606527442057647145948657037953096453729414622765417658440385425805373671786471381629458406988779178337302848108188669947467724446892676617197090161644570869422601848492885999321123089538626412606141222425864964602097435041026538686716066140738120934977356637773980449182311547405343941359738744815109807196322478267623065029770739700764527365866078438447116234556586414897556513163531853518866442619392278158161121201260148662781656178575839991915029443735322652719673733567382046865802480042144623439776058812576934815464471550483410378661974160323158731642083128440417714060107640705659727290399762997769875856690709619464980522899223363406232942537290880464070391484645220696196613276865823787972978496486582739151969308848331986548186993166872440917701982283884599503779726471516739626818079674160274688112909775467626077718358198083652389690671979616560500942947176417938418572569524801072627051674634096046084304517799167992974827542384924443170636770039399166507438197291681497446435354266414235694730659528244876356871218566068785134706158026184582074690078504564810553470831984959138252107239924046049976814804767965674011764318747297593471817820829411868329226375713127980987375355424716894255723221762189480876933466934855304430701665633766439598215383665351825204618242819715528608311186014544278883589075101947240230027438411837401117922963553610823528987239251267379969380072281460147495342582846339979597428518279534137045660881279594954642882788574828982766839623634951416479376332182741176394278258759624239057749247457832949149747923593533212598551573305005010517239519079077464825746517877605870829905560865919519959391116079720833485337363068242573128665672904090008083867242885980733256149440031817767513790711056278778595980516038407468874976654928476616438735097198248455030426324327904614492933116958538996945044603789963877362488681677002736745413264531775156338587652217930790035549148446376606143382902527574448866613467174264016162129180368129113207197763299519408144833660831013941682071414288699267563129995248014098402015755518116887773187329032892765253628871552770999288726876001582067427733842255127091492832590795819469065698962988932105617644703591415525461022846896103744611350667406367143949915043732219328525377022299295539515071820585481252816541856308801118945641556205907216187255290673040781952409760478973744041941953905865666199995414363296952810821750237608204033695666580537749380594326227028529588487245928903420759313040333459435032212487862838839753195412069157428031627503688054126699858263522058606039486050452468889125846627257066275182738325957559333476546758365941549273187691239291738295269904184064210047657777878046449721110373530208445757140421627323807283015964972110441760340851395990211299680297151733785243522059924512866885588853374030104414467152901393604048099866350081811619259935313823329085885975206200271779772897942261151235695633595873694199791535982829120005326055478575824399081802872002071401179103212508502784988642010152934539176755762790036618418827619834960256736940058512819362202768112604872806685693093688715468168891084583478661504388551564634668155991570256169098708606586950697140890815673067666484357858389033494022782663765164289149968941227273935606631828335587959059066451585251971667218347414933258727463893578276488626875626457573919920704055437016094109397487694391334712249431326513056549954981094155696255955257453367856773397822591280979221212760595886828950373293511806281260906869400651928702929395073470963834760239035673653744750403930367206032685038456641438118053588721583973850851690212147800449581844202343926413004906127235024272619276055837607188996353909278940519773558362097341532635516896212170961708761041702930608677705811792417923868565701311145835972776341703658871331842328560043001605096582002543385215111922152287095556902499886492071196893553650118844368453124512087386539398240582835294514263583987316322443952218008786538161996304758109413735949247927503119881285231049043512036424088647753840881948412376717981656917112190563500271683067931730303973483097892730280636172148767040117140173395373504765426492751995071644822923654258087628431078803296189862057389310408565888135932008877095461190619919981086867453125026621480036469181759847475263618468585899370714917647773718439007892016307570444748383539513005161676326564405399959313602636839193504342622971227836912425823826884652192325187888022599859476049856046777296461239538496966139476550602465928071245907128312397803401376812434514459930703930022761150207885337954082313943985667115077686192862375211789095717336181886638611743634766217100614685038288608189965289852369289144257696360128348172515969522100267511934987454628174098127999585795702547604703128936799931037969894399418238456323151499048899291575776872520427843968155554868841831996292462855680313760196916586315366332037263310815134385542525565273731884591901532545327114652506321321964981790273608905310625225489275284151155769991879396973511407402021498457287982637834843516550938512762911588404497552647526470748242222702331822580850166637855752125454906975785022574527940301235371139643464409270417658757203995626425981961817638673910424337234899513778250615314615088687144905005680038394376899330909174048868120758248949609805536048589037926012718302242193368917363222851105521362000419061308764510859102791767431908924835695995944421763815860573434710172614119885478710608481333544958474785862135660704776189195319162507159661131569101451780212848129016286728526794430099509776067754505152714318891084890431134835983046150668268522727820357872416250778301590233612296804136811760869082605409750820987887467896773409847442530278608055648851913504817143997278630208828455292916964420980084369336320658925640970601381446249003838759932911815731664445346369484034278423102199702564938512479080487380741039592770635229704529500167477133457698973075427559070317475690002786082310667555565541077873902378379825547912697566577359342160289383568181351558264128022570853854691615286347135540716978942322738318027185400868835981627333145840436036882745246384719429177341941987264531271384354126422346352023718077415149717545504211951822680870089463280325211855914909224573449511244735757948630029978642372611906675524940869207832624092976663109800950302829724477830567260638171662601739873356625092276900252020746956435514062993532062887789570577525749626608617950623149487017957323961105631942211405055490368552259032774289226449377086360926818811496182220127742242243031412383221415018026716813644723420909458680935787358481126355737057583070921368862908528914952818468007879549752244907740433129084749821786896161681089151466119889497685831014003862137004474559095397129309909671724902525794377011688781822056606167686508912087489644524321815330082375016980896826415414363255134698294506978494057217498428212516245920887272282431066648345323855115253562734086104474350819822246925724113556539655409274764614176359049507579502965880126292846317988858397175410913763871344551148792267219042872817563739519089688360234561325265743908115079347751940547630786615606798271445033271322560751409257901561970146461828010698854547209110611655827432675278877799440527150204163143882965485570235699851372213253893249034006204893945057999130532606222335918657407129207360228429901888605022393563707499388633760011987747019715600751698874986540082428560370651175510656812360712576995375675672895210742277132890883006094999793593003951480895658733913614814117300865198478932048406413458838862029904826255950982298389298805776961125585591121525717234904621390767829581175964869297423889455076119306892239283227690617207886094507597833072787667758728528832285010973187691719951025504192110826852817325253405133608059078329387228748600079581453220476978491553875246775525201473344998727250837577876754655043546731546832197654076230771842556502875532382918331834266686955018818479789065373368264918626278428286009219175107873305623100729420430764751363650151824339624676522639445289244251578208076229514419369801029243682316200869547075712516128556413240720636960965679035330256174613607431851022916346522360683133235442767848740464119330159178449315895205413909153515279919053932470201458272198078330370642492983106994950945666788319539956829158150448257961573423500612310791676277813160285532408736008643291071083670546576333381237407187175048378306743671707046462907921195819418629262934213165661899952320628702413225674167491041417864816740442428035464479127285145433050510649995543460725845675889237734811493198172209924243244204295760586897243317505734865487462998364201283285588128772854940225690584154343074423143283602916171682875043865580499239880198425154353823039338336770485152168915088237944545220613446794272934452632953984575432724387541361413847057764740179692991942545920096999311573590003131236183201032476008800621585715261741994584871256886026750129683834421061701639343838361758759898183993229554169263730801247449707026441248844837963113990657968321810433862492537085211814821720042443042378395847969044855053903677745875671726220481848617774011308409632001882740577869439185969612183666617559188587630006419851490693205427779400988261888513608243494417526889424172350444890844140711385293335542417601340916624963343298090853514326775068377560705149915231788772926134442691623226532058009574044772429036979802816745395792711442455990971037848376226657709621099768396304710109297218585906190741956585897326971504316679786565202674638284076641864715032114817823187321551796638671129999072820555013347488823851899060220127696044711409630277360345132973598410191847986369123535429852840660646209133374933277555767444384890434898853423959150447505627977385237162068285969884589141764102281914427255603030513723182810969974652030903809697101649280731064760549561980855406362953341880004781442181775419749319073996781273308846067003062582491169314962450477597289296378241493255817121770396023966338689425556621535351916097270794293559891518349098931352746950383674755187687397655481780431608875393937554816098268240425269891573064649577924787727427504320222519682419215379758084197547259259047494183744663723317654450258587653581300878180096515622987030028738949510077474411958957964523079416510893427629350130156874101136056727734155285982514845032886786151024770358309087911638874629541174439121508482132709508358114944591089590742165920563106658158243007319252394758457880817349882844383603151388262439443504365369442842303344155216368099413735658895604090208740018273045976508428612428425773626359909309012747261576423582410043158589795268048433304882257295815574816064250575540172395811070550229636738639597544630121024406481267147196753558181638053935812477534641645899718622921484742841485437120780755895052283116512243257276828444344328740262752850688001001048397383643695816412722446133933420627141718096398912089887017128014480872514538645908963323281121471566260931861587234875013271284254270383089421234006824366168211888068061987126923605217930137935030752922817955414759964114721755731087315761325540074329687461937764200329851076454075761879528551541119002657053643656391557808943169121441830017498675143825645188051275277060279914185230289088174813963479888400165027040073841489516123273418825062846743867230484972167033815798443856450471113208449822678704156409570301585800640360147365482763667723504660079648662958656246299816246105443151553891516311660852034782657616872788081421544411462569888248559969737063013040059840529688205104264561692305104279540728296503164649902681772854973459809495433324820246577017061783774676142797669888912185373438271952323556493153928507894402307232733500389715657523297131766239634734726899677951096508633697817571079494912902811794049974001728286356149810470203170484034960838087010822747057140085587235523781552227663808190520032490521518988989421684898505890903487279392185071458376698400553630257489169611916043700964194935564576696218191847909070643297934489142045645769902605565740199962846394817858427019836371112938057966320056115696017621898351826404201257142541962587264784366290037002829679671418763252294439051738041782039398248869295086103440125829547035212787304889214667576159344670500450343035056813335488121642958106076518271719655328488381206236694831400820877530457998173366999874174810020442618462008093689926322613778106560804829203669948669662358860205273668122705192497557066695156657019137165103218585190914108833463950046114689105609336261224155787986221028277281221411170717129752841395202805006936846156672176070168277883120365751290035399914671397769208466813546669675429855812542876742008433664853329554924574084244001121752376711946598027253224181393334098051275778187854027622746265189331591283822438912379979915258810770162066261891414216479462888001144289356877698839394513276647167489751550796027726545336949785385531141253251234440942491582463721129868367611361509730476640783379856165422026662476849387916132389065671475385828944140550665647177383203006348077552686235106633822079692128615000797020863744061309471712692828338108430019933860587143399799412949140268993698896218738285715308684366358602553134538706889158155873898892852262769473380676097820768911734158933399273279424090442417155691338763014519365539965764189463343373339101028405770757916830231185747257692090541426287932784266390124742141261423265697446793281244754332088396824125451689640180156687830525863395520595995043120394129003584483092122744342768615814205533538097876790062686438359794386709306914532128509575165904818657084434376994728422413989133382002082821704845949708813347527436591558431265811925450941554247767194984038738544658458963356390965450176469967272145010606554990440839746566022918584081919766037187892327331307181583328676267364247538399295203362585868224038570551499277542796536135889142581441081673242737351375099843686333981547887964877203661863473119815527381833110440956620019584645494754604260415206325660065649850517273390487672467539877758189333562975611333672571965532533481772217667250352537306312183316926849744719560254927811585534577152116011552241818470611229751250820640523007692940445499014562982963344723897963488602703755492437713814657118730181817434084160387141080884370713654019815913309866298560964137806053715974627073419878976463647983813001202229836458108843382086083251973069707254466124073243441244595809358556532256275295021450830029239516588492121646699498037867277708783516985495573870897582974181051573513330225087222510620717852785911214757099398192625090700995797791193409875975073940279373807124590076681157122883233674593933887408818697200579917363265411797084070101707698831892064957429147249305916486624653146647754035052394899405484871013135065788732148194601115010166138976536499318437727184688126807504898294338417209460614017710239891711113358597400942187705002375640750333133244791981424919811340532987238067312472855004025759386814714269799935803692269918525858713793510903644589545906798229943029960246455861014217610648881511374080782328160854590587730952981067687776171280011914525981843976271923107007671279174091642699149093132128915282174671027138859279500645484051072089936446919774655487514720463197210779406068862047315578620643435477785589877352031217844543202484718128395941029121095554429841681580273593591604076052132373208791330052290034348912022168755347880338962508667747790264583727173099119285579250328008664948726928711573331347357393706042492441217035404904347794211390041945927671991795441125958640781884241178101582391697653194168503188917695206647176857481400522999624075996529419358754819991794859986016065148835458751505214256663199851934733117606287669293536962221184854837714247064642452730519069636259286710237804999168845875778767621813372635922816814336343067106981356532990736213423644651927042912709767622917544403310636292804617953330176341274099898513871333485434320945718572894647778331498449112177541008031810438147613802188510800469824875286526256282584818030866147182458157569423935288829184533026151100203016374487764314540249096276988464541416981846968936550760342446347832154735454258628749612050036370205931100374253801848062339364675737419234353312578478107302976115759333501080471508692421642903652423911845251029244319210004510649471462633723853704541568319022506385211656228961809120202423458679849216771754942775585009328221548182912337385503961443974829288917218959347582853190962827618226458412863897617697584384059880625738816145451252564423381871714916660455406249199506187451409354793842086209717597176759197523555596224837085889062288427427020794004768474995015560839196247302628612086214683669840135653265729197166381648836873513038081840879868557252811460345611447514738928465862552417951068168744010025581469391042219337256355199759173471436275690801282307031918555318387402643418158785219206170020924028698977132753511468622349783978272447349496421704924909871437846907084753076832590078640402088846300830930250350873724409524875718553947850867037360341626913962451122640245258487273550744492259868667595954770783395968150296889812503495572785129110005445456240210545103267290613189008041840580687792436502373290726330450622251368442182853433242064949266925121290554575215043308721614074495550783094497563709982282351991797234089437518177563564974413469731720943153284907539115546376138664036647909577144574211371208431471289082541357113188658875483963610636067158667079521532673973725936544891391527645878599768880874900028947218458138307561655667304945231014734059691619399090744452084578311026191494713692324130275378498204958430591025909000398224325480644135187507557002326061324536893927699753958240344773694734844669945270118264676081339107064281354920133706158616923558477817888571868760427269612116206033871662712216179477715859801134055572177403573452100816689373223940228894223206923533643862612765711128985094634072223513174997291032973571575015286093618376901509054612985480046268659695540047260027942934494574502006610337490440174614733196005817284736235264762657182837016960019563748038876642495955496556745897808051392057416415576604018052290157578908550507528249744669065186864187494712195702370983926845091629513551428348261351688602693992969234842510292550963714498846911060157260729062549066519775891542496098770177405018837853958331887855792606750511771545872072236534340100873593524612436565951891578546101798338039440793897647845606310307697865871549080836929163638140379122953928446923977681102786125068420897588140382787209919323900220839628102980723850460981893240892660915467416564666698031331968922914338839109485702056983700395562200720964434864504353028674177447295843459442716851456630826691193287498123873787472392851486764774847095978774503054986323786345608399642435775406134667427370023280780096330433356143879141652908131338334186975398539872121763747056618160913820146869639076374443818983319392270698072618017272801090680214208226885479303136167755637595561036671662364800178198932393478543686006397776194780656681267633833134187547036869641807548253646932486993912900214231178309922623309723760931575422206221416300152600243391634546518378582996555162926431842812112511194490882528056044697072932617879304544047067407269279161735130440180652531356180538363429479280519582136028550737138005931698507362873776050985847994960745884436000092611768267913956911073229546079507900135743110897338437862958443770348798170576494579698074899350854548617809969257711820767668711060280387271837172599816115932147014790454033026998523113873429748224016548831123666717499084396395412976365715216890885599886562790126194111290587686759636361754207717396650984348367105307254359774693864540257155124270293424893967448189849388746008146699923563429726910184956480737018131309556536487930323034810126204711191077459455356835960901267592219191262608738299796609765069884548724403213992126767594060010795054834288618476097249283271682148709102804168759217181654043156848858979963714897450569812672544184144868029252178827866939222797101671377513037104664806216084330286205083248097241293540347672583713180912642253289710510564994051523291215668785643704077451175711441166412466318474450837042786384772653425036080394209421760811026523485966226481449635456255253744240968687284065549729012029914157883683120241731420018015302651775268707966776439720358896178099121083301767973496720866783422568229778715334899738926922939521880155223714767325160234343440201225675350178827957138691113334797236388923477933802242128394626584478929727911607680196265364718977566502299478341865747061500224485858036308004944096955505623458191237613930948575884065812974010453891393264201865639680048056615871022216020132408623880341420897524122056760083595291486034571088876994111455128338951774798158853621693421300631946104039065048245023089832303019249930069206617217154935443745474392291804226995691538549615767837785696938124065072110096503923571023062180028326933869020086903129091242107278050120949360045800432960271141698308382417579827424459586152009009303958582924008540502225249113518792949422260825856683025855869194780486964997305853734204563412572319189327702893258546997206853809718954097984913119174967462847963892848430906790328781586750308786936707693409241098799395361218664389105762503329746460635265141431667987603203886661491562655040777894436635692543708455090972858002570418436668128785430330752160374112912987566017427253179441960166563001963305029895255345946066052926310680896666914274944956482317102736938609236818088710170315185714822840604933502329305954155172000470490773876265908409227241639787925379212446039591711848940143143032819601190947703284817122175842923106169816176026663025647977329465114435654226425742636017118150838519603548868048259427871647110638195096263546708870367535062400389286478322318248440971278138360622919190353721100751460605646480598332269504307351820067247580774367154251736789268563942351027395787951873390169930503939909948911712664935221522223906308189445665159267449838395009352852134106197417390890162808601526089092771384749058541916231208179366694589690818332007756871108687212855073407020652885209090826935130856456466549867809967393225770679601921373262111935689009611288175787106450963946365092487297151865303048902220447578280818680995549127249943331672836351184195397510432904300357130073739286587427291602562379657652848042483394173629895875253759932037060068721033114515301673707152893900186586820624192004950503110081473686674612210267402222546597639389731268737597319053739004591573841892762457116293343821284253306645938253584812594253779534597328051557650873579789453735830886751412145965341264378986919245893225964508929216295118365828338132586506490714909081554891164080580501675130898234092774721790993633930579273095935787061188252656078633149864363921926121745394950541929988060851666124969842044090007601341713377285703246061195373750256769218331388696106468683343667765929466277574359977816042009221578838869914574740207269681885131130508670758189640372376917414465566390278945053446487208957393116502023172940584407324039953089212901398358086782313258900269630620444140488350086195114303984496689744654017236452564544588119931324942025443098258150478327081403034027910670161888324783071975959678347926830003059667242393931038946905955523809389412969652047844752164781756262374112991112426776537418366662937804231820302448811585598598000310308308892428223734931023132659574380185116439303742729434230510272124717914655782034905716291790359818129135187096258495926868574298604409435473021712520918631508754687262192274521087248660737423409309440835572748848990382819627539355122186218781287699394084350571641581483533108319938975909058635177344849088322220178940727621303288274828820099066297139307708521160608199676726172721476257723271850017583287118438019122639687954105428796815324440568965880636803617275937090554771121678174303028365796231669734413795595389160658613850916595588098529271226898937156733875455239541342971050249185336756288141176374282635801140997847032107916852365240735373569072982125632502841647060111826256091636577465610652560585551292973936601249610491356268919792680584243615825938913234059086434921885996086707970780474804028523832353050668079800271910283040670373751266589730178978046583004172793938664430651794217465923275829597751003673674897961694755227825882402514264082989252964394737441289692566836041751181627974012792217268522153560721926092248555968226559243255689286519663887514677701305003653392837090229783547111741587207119824380152438677917517833991133982884768222128328994409381263156583850069855615685149366242509653234940110557211895500758278188515593601964487388847640530319422421259146074144938971795469076850293376727512254816151220583006319378587858584130304976565819178480376019755349291282164446606469905642965084546989837923500966307999469521612359014691431190501644320217573242894614094928883597531764485358832241209352937494614715642666314553272668374391993389913163195984624679708144447683481920390161314375708904697774918285946009104921216796646697063276992116435032977701751993132039097783665085367044971795045338799122641012477304268289495225422180323077342578038769526426324671499703078068935229702107363243880874178789665078565810104127888115160132562884513408787000770886129003137604753822885027299454614234835935561608208165925090861375248773580780673396082106552036310205626682034298209441504879481432917174321026476013595989613076853179535916004375008067945265538531754562384472013185542102935985769860561726386345947863295518030417362027030792452736941440325292836702623944138555391490240719281440016107537706816928541354269534664501464659046483280791241823690670703394777340994333765389281917962696534407820747760488939751481440383104977921628263013138871466537063307237609984278986119737955467389541665584353690609730210614231971173548196201919248126797762158679701937090900718623769440323032359656674305578861339652364171295381818292167086391656302594066071967060560514561264636595185203184778248761010263377741160759824068376300921514034244117009575665184853208937574516772674782080141364273088113425315726241288253589442042803688034239967305923407365080746976405205427915224364410175801000145260338428669489236050660071681608803944426275943110304641111222285180513271901762048236148111565371545913959282431841284377584282871665382963436433852640990727100030105573425481091207015515413970439770974318017559981162163407208239890600605656144392805810330254354601637595204902964248753884017788022148396666963122044202647788989307190389979613488041407934987504475509355279641567887362600008357925003959177578960118482082775901543721209853109799275681137460213558240462925287887738120549291688758263826791316273399991732871764923420008276239345200104835371676325093204627978007705028974574218442494331395723123696982091285671927759875968313632368871268409196059625322944363403858430916539080571260424579017406647775945644730135490843522606400790557070863350900568959447600917830838560806888649005365823686601225806600440728749326917865592586527789781263150285223128893679699958842678180812635133051411078576693580626911332020009546886731548923023157965113962836815169480138470250484032702876704057431230884418680006392744807038428404164290357773491709972652189733923468922429045177225944800410657207861711341049717334932036036631355526772439051616996491601403028035908568410190825935465498148971207255059025858210201968775065061113409755383802695273380556519964334957434102747702036844236607592070937777060396733594400545533856552892613778359773570000296906775428144251938867256430195879444188339605490474396429547628920726251264466881806568072191808748270805453275950192212645319854558723730088496848742269521355168250129654603962465442093212058572067105846834928483906248929927602303797748029662327692549675703903336187081993145319899088019433376877166180126211225547712000354322342292954531722451894182893123264991396151891814655756944545191133384144986626487957622970319717804770457333604270031819784679821957291519032606775472585750345137202267686929416822442001488073397722160509570234554994102967350694057096842732695936396407159764267971258774352147121305902783955004298964307192334244496362443320021500927669618219609802353868128787652281209189825558703145006352561716197388780178912654800021406895912325227481795763916382257570815688758494347971750472601325142709708436588328393094326929059148042326901644226405330300464244295527498663041710866476178758142369893543385789328862913861308307264296513986246120477968462569073416764748202573163676096325933618757959318087504737948885816006669838379101971574194223878648810701347690001887152015662847325631440036480836368576109875356420609961622019857012602420703843204511046178714366808634244936439956886177114801369483456612124729342026149197480663681335282618411347933255179627384529423091504218570337118826765762953916055354247267042287632032082396667891885008392962155666002534153207371483410674735926804390308084868300529454298058915581441716527116924263175601807217587885053054881205413833718174276494261598126664209282258734616609289896277047672078186232322884305981607659607164945220619944019300372811388876373494654488190042556326086305956785425044046416561766498589250295975636389938562295008703560931246534530592046953465558137551454738554529594248901356060658571250745533816873457244656851114446693488712343792293878813270788839422649294809086200090301786940259788181412223359174342691969832305103418297667454426900049190549485278443338356723453685353245459281237573469158388339373233625989255742623001565380749480159305612811331835222098021064074652681473876580002400925778686467005728004802430904409188310180773219711216175762332191749215254580518709857289799400216516180081494659606620619935377935909803112218906329616128542484033072673189197072043442156694497990356559940798983394802797878447149486093461847499623051458433164600076152325676764392959784957572763428603681899286664900238274282355918164902710707538668705740094537868267885615005950411854042381762118181162284485025308935588950629309053119722136658798091340923428785529776690941813596036573939211348880853399285881117233311778925127995606529289780099684153073898155065606481187728273031969928161403239125108344831946626077775664780511405592532875521797131685347576395195983708561927565437840511290611366598468532931870741031072272656334544476298343013153632599534775078556404751457074321751452790161231833610465646656289768690930984014189867701464315994207802393385778704104821081440815411800004318520142675696887874658262803227499387884906966791013868710780379059520832170497524381268267499440926789471172005259890292925552891258578678809325391461120661459976535309654142439217640014848289249611070739927601494742578239823725042121073266744908656002657746464826618035239305374112404787959895395197471217228870559529410053153143860482206742036554849011419648856839064929194333772204131217251701752359140292492669653363572067319160271883750075836960553635720911712988848303558974870436352637856910018999396602566402592951714005490234950821045442566785313045197156711078125076403829429274078228671671590229370793762299018620829602625077554416841866139748235785961992317565019514174215096907113991015739387839822012236638912500528801486137443181047303572549197908589731511522930176725287017627507142477736706310431304936047821382887193912791431965228295004616713709526642191288967407966984721013416933494743787075233563950312671625527751903189536665753918834712579466845702747376643112236856140682113340903617599883486970943900358349691085107563141990117891954205147308758416322435514780626738334100825811288462740838100013197909519728073650445594462466166453658864884662133507541945500837895838148876265108281567675168322335859948191020879783190499345920769823142787245385818772473296937636220616079813227360736853023511326506136767280714563058238733142816407273316684564143497018582587976859149103400178784791108432972716639980884310561515989519510050644701477022183268546880836105980634565705102370772984603172483671070604189660722074208782308378093765503327109386429887033483215793695500440100730693743844697841587802299290751911117126064119819639592528076006251177085982920448033500259410254377761433010375539250081479164127709018456322670461757045226352486734476354169619829912503383094882200297077947382858038436295638426019580706735071979848535261489594128672021758766990052133846228991833521881940299267301411125256956318291747979644498676880057649515370187216776048354194247745894756040086628335366047001856494819882398147213816858638826669881077034333694197108952103642901927304343983943305607315776792814079123015804467760628998702388068965519174260965783251508926803103539933551975456721172626495758678541137632391165625192612167413171080552062909426709616509642285571331732327954790578719452071746558192897728691779454504737034373589487117123254142539105093248091075145631229178024436952315215303702320967225752259752032048711269395721098086636309985856001534255407454835711122981240816886835776206281567606326840869740676932262780103089253019646691811461670523358774804256335965901837100646786636033609620371041023238765631945836459112733138058562617826645244142982980246841710439570442976193450378220077074490885109951176360798479296621812494602418935092248574358573690018896012305135742428311372726206090454377050428376380052567080706272302897140039657203764306027616461260325570376426274724854216916997773567942587895399501597167936528873944318099245513870071716504604044310223819239541707884659618150331684339476213877249665373589966689489090141237133738094427802755946283916384131484055520770624146596918060514114440509718429349355627152612869479995506209313524311362117711365957062833665846244935799269512478420691688883476324371497159072556522161244931862979386361447756316073403308108016721197649884764076342376876755325847908496863886142352882733762913191672814151717305392986514378702206178419071545810015178119099837521898946730870512367219880999559593491341424834453799410785638843440432335790220241614354881744040372642449165391043963374940138487576915860021223043770692940151248120546359066367591523160425242501398198804709267606051041125050675322472432559497355803445755922514278354970146935245205954770158371332114263609585360950441853621178514619395357732226555838545074265480178244516513567543740441024409460390024398037339100765653442176892091481144926273926948269198101665205973048419271046261851275943397897005476497913721072589458106252452904650352029639994600533908463070704751981758075718811125521514162925229002498093824493061491287441141343253098838955630222584281177523172728219744708032462271457157360600293939977316439612629379957924033006640285496384749132599539401234054446925841109417669262214957780613870285089675212282012114813662336993283676529291709213298036787085650646561150870371260812424917481192421523333782190996345918433707985559621930188717243534894713381934507249822999093070711069175523507473823409890438207199818653745125874444016435495367537552782773351150028502961632401377179159486632245940480125120213515365744315506165208992869630836393892923778846574404640546393184246188500774101563782907795245822424219749168731038583702688260833704035863833428815750223546647996014954729151415111680207557130313761180382531264003318668498573611472488605123645698011709858788806604605075185064705479651603635530238477140069714782685199033022529346520087224466948817578774588863739257635593195287637986741052652100713824800728216314684493734794758081913849845896922164465311703004054713426881746781626358227335984704842508951143387803761911881577083009417745358979499317397174857531355897435456472422222501623943647278597245765542336299493935748775573491229791679795667868296566947269247087213019871326093212926657008374099080247621318638552699816983621741598048571366733033772494755651776815747819933444760525771814446112198846964541227148793126358883968339694948918679449792587210136102021631153966213808856810292233642275933254283463031266747862773492325984476325769771455261377338487566309247334080811357218861458591383781750135593821056986418165751267161745049792035486881564680169435284462286840797416748375029547758994878623132477356184813406858616308557989173581068858599570902808811242561926316283503980418211322963777099324592826010980671015269361011017841448627561333668943294815414555866640601720685034153937609961080831602510120265647859919641734637938099050326904681110599413355460881065331136096144998241213629790072364450532424888422889398509538559547419035016353120393239254547883425641033386696523908967759536504234477897338360698636317336862923721168467267835535523888164280689483204837354548369575168736293965619495708666277948755709749234400119638905966412349572230782440326615265069215679104497686440326552572145131558625555320665756572676762590447588852286385122931584014441879248044466519967827891982118845793527872602564031317885796316496357920048110843959189424292862562335779328118856891356480283373302461676063376250933643533736439016007277793117150268363384407118041509721617781475980578996186650748939527124865334911392641928376430414785170806205260031151158660626411983839973451105464791098471172422142838489193063946823297932035750137777607134729158751279826592251780197612238113399171763662362758913130483588721725423812028505798366627683789130561242343543219338904549058417478448157850858509917865234802445808495160031218127345174991751088395961943282842020483989740766208066715691611832115669059889950703646376805287232114774542128192071564873590813010368861850763926556269786823364157390341382388004991311112677626614849634950567636583447065451547557410989608820543436825427908682532049474391958904802728744804816385480889700251513385589895612998953527587374048954344686556824812710370910910528771729628192078583940025048793890881773580422190518240541038408039871969033524213699555090587595176717255868489493949093544854766259530763630174169376249909425355553227861831226102967356929361082386634433049429522210820765317696323069976360721339042538707144556168025766556674788740045484664009510046156667694915731792758498845352080403263544880990043515834933348378281778653214498285895952086265263970482086373651037136936154979596085227433820656873326174613431991487353846559966951810824727258235501509742967457596141534275712904148920178106517069173120429235183231181578527983785058041176537899432449359205842877036974373448218970396317032897050699737322772972839118868939937877630488272949853044182925506101248074580682756695576222169666501836155795600607005806078009146423413045953896350840156552441437994236379223947618599851462588740086877923518208885345832676526543823199551211950585867928674432604423736888099488987985144430879362399768485739518224014265859305962134484308718925257581444651685541566482374696815814612406086030945972442445116311241623657678119830583802650959269466435401365715418832046441143017526156071509218683223097911230242569466233293447425424986518559467532801546214729670985114820479886553986922645458097107158569292945716215325922846859679212268201177939751037046362419673581747286869742179639729449340019042195136252884149449628685747018157421510216580823985813603632131448563931314869799682035227104613907999871423571671386698049728236284616889475655995528919651847592695714452545502453624083227265731652088381953845392049307604661871452117413985901001343329112467279493196635361642113856731847824730185707671186153455401733407233295383885894110994592660096317868148092332519133682236551703356518562971238342237501035853902664623007728131509297320442286071930369521583173184356662402974906909157347662147166597532552148990085851983304502806736098270743448346560382407047511106333242538122802167105855686101777149808655529788678752037119736441309805021956570850930219207997518249307007693870946440356622697840274831354886443750939387277482871102049291067523680270153602184858310973091834737093014266570063806112619856520069479965621167267479728839872770624708947327165865625476961661087684723284912783109253422276206780678209900056778412563399870359878280867905740211864748525040859541057963068155990512756061799873829397338634864057835439360925951840844477569637328154664235511836014931677547054491108572439885386441727426301487829962564714451288342729514969323269551149013344866605520916613141436766056117464848838996791172722787917484120968040717906441000244643071950008029360245415765609243631474204250568732247502147264898099081725556115264428266151071254446270898265804134800537871721663860525857240919983694808654966249037295410865118825131445336971804118937157999753699477442681101271220542728050908139123636579646463478788193568644708883222182972652532982760322074265171532473024199215868110692603140008052487916515238800736021162603996251623594244780163730209263203783266123665522086318412729253700871769606858060282591445833466451010143613828987559342777345530464514758452125769187183648792094180050208405115359562353697421398346203449337570034308721534126757327163207531258922771659345049037801228676606839144400433780415992318756473706502491392177099622476460817472561425853519698171479428289985156900242158734942202112818247975631376933578896897687490004751855207159277738470534524376169552190786677602242353956188368265985856173160613287603795866965490809359053373195973721134558341962380129167142731116840890545344374075364028426995176363747553996366572064287962697244236554600676805417334558244597115846786643584836193962830934898316350287294632871037096865733745444362197957851789220384819184393166990243800345870548143564231696509624578483118253284462179352218841089685077138367500398088724537817103184082545471086641190404603615711396206263337063464815731815528374031609314962582395627093095703190032465303078505383113836065246092795242725441868032379074650312141058916709220581935209941531490770520803663259879196020651510176421625004188513217277385671046030584447788191712411068846423021894118293813240934944545966810372777263741342239835539320696291838748837740287975145058284938816272186994288760828407097318426579553828371311705908953859354177961121567660885795404208679297325565583278529299969417717935639000267708692650786092730599624243868118131992357880292181426936529589708281984670883126506160827679526384604598222003316807510463683498638356678621033083114911767068967442874288405384910287614679745260465788585045845742715307486220789247967389325048502502344689894057393996764569982411289615979838665778650415918846413622915183951540426762584604806661939974650250802695246285911081567226388438187458884072292197272950843589124243434351592069657983589712789066319405970515658988225199540137047276232871671444716958088091013956185102997701473206994563805866526566978422197575389857418422112161417613756219119473838822427197644572485587748623618941359036721574148667341592518804134676454406734381854959852904923867812299141081278433542733991246500322209780647504219881744590331695471868450991086191930692209859181902314100051049616903532109220045767431206674989974664888253451183702364962659257994864965488502048111824035469701213471377219379005489986191938012781299867895859760278666850850893796283737207964092771771535092177405728618754225843591367948133832819317093798366828390518996880022782812777927308785567947662055846490824555721411517828366351233543131562519037930508195517922984732396441154256222804515881332472878633014060109344026207909883295137870219370874559214736864565647124080636512426188878347508089853694433979168353095191670124837707657376137274268506776659539468041529293004687466093464628905304636781837197104505173785572237511053346392402972254867508466253132583164016090903961277176017531126317404200334430844221389537957110622282231407377014569251717701510870701483563153014638814967281313719022559539677417313288304669024915800492551543337139494671945066916967962712364649694717760107593951321431665490892802880329719813561706701149774129611125746708936064045898549007766751709858944305142812132319729084028627388888862448034689596782337819844476482495398723225739656209838783883484760471038697748557561506693110104241995002521887751109653563148707247134732795935118593773141485118314109225495718040978935263759387324614345216390386110274981275525030953870545283926485573896847379965969482288884871542706565278280295118755195588896478366374890156798804499318506100914412775636904591904901927919801727321640719174209965273894675288079473576637113830057887823633744162178165072265006177461578823635890558766721378933396940186298046303289446621532743562452522426218402735744070155692193906506165738355378750336956455609085818260563731582801400274446368758656016400664347811841934412143523966244681519678805479171077732351071893085705077776402370290999715404598213573137827284449315958601298905359628520612467563428619606375054100850745467225230930175183545808550311733019620514579845917886178137353007498087003560681285971534149952906660995818307020943216238892292940624752652900311491678518524091038817603671478729860602775487550259580470031177323036095147312245962358453259047093515154902280726744569989275222257783719138295572716783336340839412310207041139061767968658385882792682372571603435268086094679569839702553605563982654100164406149762053457564545865803223025645810637010078108889489703811219805480399082100320902191649345493963140423645518570737068235583547567797469204728155095243985252516601235724491393813851500860928139113771191393662797172752235212982854600121447417746053643788299848345153946784745832063834875608662372506832811411350966490310723127789965191806286153868733634334808962129490038037290821523891359811997130634217558096456390363683104110553804720019467289889689333028765610212681831359126161915360819290160036440693360509292957690121940324694794103606179867531308189032415570994011815509287678241575527464695931038025516434579830400308846725183039245849735055825868250288298158918161582179038013444061715304006772572565588680314608213571208029324265844920129253509356119978996371511160388837783482422416968698023833177716366857659082026424098636709488533773533221697040104678159320360848640125050052650610968514058480538307434168692754467452863428115361154984706019657854057381638612675174537308597322232097424447855281331519151072693393485537585975384389380602580919305494542633602343844642414964169301311254402995823057249883647167890302762588633298973431476378444512680369933770920558758731307329715934342930971707815343445263073416608128253480838419639673372199857580739668968687246039013434816049094233059563178248810563340150419712711764147221483658136184581839571883863827900510283530600917728924395511461465255515367048172429939927394981403418724495334033576103566150541408627634556589351253117635030144247292112694895654315771022921104811234700232808602320620172109834293099658952972789101025550494679510549469398046422007783629226035894002811837228500115041770842676868564204678857681375710421464137497292784994635049012205651659442043043746617595794527534425919422171162583326406247187565484250224722616014400378375363843153882250468483166847754218702873430364788644145646703223936992098061541407281264024316092652887323769677158546404357962730352876374957166797215892474690329290884728465842687935802531956494530026290910216580930765486024103535189893543784630131143827064206274856778173081856954986947441775480434810572766736907657406758816603032257608383010218221656251564813839675272093618890756217568862694254558194987298556494437267957669265402128719073769430987114347917435572991014435612803487488092075280677534140423459062157298897904798148186642689336380823937876483712535867444754263185217442313873835515920589298915228661089321034543387050113777207609057821255424592163291353228197407100422780877955132003686651755818939380833657911607339306333135839808141343375492954412637191749117089897995276178735766642182053477252436410640709973389982042438105625475617496755740325596749881067679917338435292012677418041530157631630124011014824411128976287903345754468199633842542542991787176881167691073448759213536427530548915536930316225357195836361468536233531417090149392019127781292876628744391616805348120210651905732388976875684747580316518824117921582901612701581242881555809110677980107492080313036999103994327363968912387060748842300340597950131101770269892158834256008978265888024673962412849313470450879440795200456455075438069078742539868516483524879540630764239941709329545470753821172914273168860397145000622982668684855535243878011810046145012198712217805286715664148989825699057555472087403525308222745306762106614148609721528513269247504161584550248129302344428057178418990345055783021877600395330714683196152414337642363041475005782715063931371545160765563416400732970663916857864580314554615690639708888663878544672591203530417707018624024080722451037656239887880212196910145735563312572713450962828383888070255627219050379527309147195227433700359208681851679251423133265548587316632008280056916060259286652498676915836428159839656723420602525013547701366206052766529243011359177440146398467476841722159782232689609483341914945102239097028213587023540117377395672767509874940430747090995673717970462730140770455722071127759571350441671507356657928229227725612628733005062385556057987167448399993379167391348342662356535568307094909664301085745298388143042832168548666428861541486060156368559905892646633359079410440296983682284342847191101735559904356763423069913991301690964809819761880644569884592133283533544250826449638650787102296628000502805643441974329150663867662140771618572115526943993393021971489882035805583344041630956677134122209147739003908016084398570726757315035471124414275407129036714660106353240914675735698975282894303739783181178929766636808356737847707529165726359520930641253186822667024907572268611318835178972243825552627075000253395254758683816816949972489989618909099886224411502001593884638553626891912544987155080179578727829633696802825962153962372286609943388695441973844128362882379467800061940457056297920792072449800418276044508846543846218014858982972602652036087169452170864905150477094734020642579249137105441989501531030992921722772902479477849323320772466520869285176271904235091148672158836073732426633628182532620698723472038293619311790037807198852795538965591661384588029435381581387797270024064512846565340958535378244664298991227788536639643354595445146457452686956743177617634178707205939287081778999068172259519149350994370269679873179362294584611215686859604926656691995998149862065776627104389855471900427010843521689163212722045792022750683185783703266590683389629237820211133425694523093589079447491381423335536939749478072576990135152413876756399520852522994970311836886796618689983393086519665344116310203087125725986987953961080347116368066356419586076135497829651963839933056612592051764046543787053731427918844050899689542984799191212509450993381875329961916408031471833224994705908476402585685380293478575527626664998027894293903250000113292204551713127711899244292286705093863952064863111454142742225658288186445344102677839765866896407151884063339422202707926169813723528120910377163962462890185642413315868946867945912762313023261477666217058305065801988313797666503640725186340997828015170100692145548678591043671020427156876198204862772406372570441826565670174806321039454708739385837934214607853665484559498492820093991563692064858079489600680104911665724256415184024652904797309798758115011500132200516128971950652249419850295380561131362334988964829806165822215444428740726715172678957074851459933746651837392630479881593048267192260264504974434035684626704982122106339112671162986141226894190490165330376544595392031265056007952904378231271027454209135678608122029518114236264176369420880108981503010587578244300393324343025829391219047820257540521213351562099716252696417699310392627300315798814720347385240224094401613974566399839805051567383101409598172011976956260380664192442705510427856992198308560143758344884667136209865966991451037899376320171232449602223502519859171284369506876437749577004360881312176456161369643606797968729617586069098927855372297638986411295909142305868983845131352699855124458080670563828802345001111991627206382435647135920407263138759254159821392951636234387201131629617808477030492750437513067587759158724018553152119904648632588046821339390901741819436595076682176827265172332426862059021763280471488617251331723987879634694488249601941167645998583218993170654186814809004674268637291700917619040470232332050343576210493198132449302527661929530304224010446590248117429962799176795162840407528144068470910620419866651562264415531275526242343840431565548683773226539345854635403143453541474450848445590489664212333868360172933923698486988642255353320720081529279960977341499837282684322600147026646141019456077920794564340738396954589203951916503125237406722572112693791600231619170568553024708812981865613039789788229665036606852262443869570320246312572000124972203997441128095944288044023758081892469934620581765234461767935487484004654739969074800851783431546419455055113360084727372147272496135065342819200374616775132296374927411058549535301365335192320681975497785207911219055576058255119934287207003494716851269898167219010339888655944259543091175351436848198551814434348768068723730136837089193011773766445376806256602586302499935947677252534303434268246552585486694822092583669274059049924094510427189053480809720696656128607116696755413284485234568242824155149845284981769179297535025673560853752597173088742416017958639047350001981841258810436695093610653950777938118245868915543269811997497853258980994824944945415757951241095213063280528731823658166266712781537717417493375267090828716823710572573761230080675951408822208898206935268038874603259321658491516488700854305148580602514717602203398228341843674476665235670530896863541492068474794333308611402440028172717168261080583567228777091805053833041093290172184579520276086003669967928604240624555110027039419491914864265021019882707489499612588139426403456779229052907229726431001945394921794481527918259280460975039412700034001392824577339671560378324738700717398636017790051882166221981027890883377409418529086549386344352427839192294927696271163581209503082020171991431854271252182335138478973846051852771480568219374248831019079170359624871728960509163764555938137556816656720658638096237026967285774170910261244533877193866330818831866145966086543930892915349436239839145853550242480318993846320385662342728380444186178653457889967108819592744011197385196548560423885943363181640290354821126326731030060837859665437165492237253233884831179764559866962768102208048130512095233577624263494502129114880367699071312021002375671307213433751688445827924061910032412579701839762121260784253102782510488125650847887959436839702430263833127352992129933190839728416758040280918522578564607275836827744227466221034533525073076641860384705543252811448506345813248391332036008552835356735001773323604885720693948361335827440165594908963515949745245554258234743374659265923702120276620521688135907866425012273469636824547386009360804053450975593618202601312049984705343402083967193549903466153949096603423709704527517307016518455968618887069474647095610873828900725293477802730589320499723121328345781512592972423393214247811895662033894553620619494437956126182560763992970118741435086290901313017046185906897900584568918258023303323576813674275018237136581633395635530650083812717915508527244552446698806450422855536153490838799230549991764587101830399022846353400693062824788859476305643062740140847644917910289482198483579473709262873295459799259840697865921307226695104192223389907984123104340894635019111714154262225270900042736765376756777109045926152521179878780685352881157450547633234913949734545905491248493369603611938583968018946736974447892879971137946341648990857087019190620439015784242747471588391500790336938304549301001034025405341403885796417135448367586979529575156046427164424546352553750600395366669890972451938189921169186126895113195931583464384940142346518389609045594613006588089713366533067573468990946383029480464613538701982523788913096658907452722711408971886071552382567956472436031652196023760884949457228425531784201718877769258747382914380164252623879238065732120615531978619079178926843725316511714038552314963195293451317003083594169973697710122669589493148256448986772731933538687979371550142032325716963588901858037596513518835425187676428850719578253553139467151943141110351300589065098708761414700277472179283911103345166538502420934182577609672719738627884583561191296213024718267991165217837508893066293056083524696507384448389386738012888495789503005028025707690626867693814765257888859108077884422570362163547771882108834451343577836598774609339239416948067749887495320996424533515684605255293326620604856951196542092609066637420432222246707539355799806556710350642525776046154610103754340668828997601842207527385360844885925543431186599215750090291566401065738982308099782327620133206584038400321083771724560345552552000844760469362619541409173283395830157999051232177979016827468386752423088876176290345100777275445807558024907493892503361007662698202235945452196411976579306829909086720255178171173911826121040948558673627192092979633794533334187479200943718210990649893876480273454910930188434651142631677552651871634619649671151317788624700167860194362591784814795413329952783633723201629331460061349781449032227828233946667135483977020935588604646544546461506476936899810703827368685325279664050616605654028439144968840003453792571840924215209417534202382296022758118731277767277561001403336298952043209650627372819594845786781359738692615911372122067384648248867485344168614148361055630370198421119379051023601867707808333555174540704843234225407927843362536201870582224459404198387925046247900575590634147366301600458886846488551095812481558621407780816409033600064499366724037894440230832383302848876478865768347108945118771520361462240318659480304120911451890983377780238678276979201093376665397341771461765134410378660381706673084012967636856110703964211887264829638331268802826825642649218142705603776798236129500774368559476538839504674294960591127909404128256103393817397991001042186468703921747131109600779883885110308209620670897985872080152278619146457533671257576301751581908192133054160938326529331041272043593173359790183136880264557418937450648159406094393782400344596051778080289203449464976344686636863229769949523121271459541388282054964715044401460894000696871528718629391322818400452654338220565813285487924437631761393407469991442658936671743400012043915542058647463612378288136341959246042024670378752650249592232124993627060041098007451334398601718103785046089902642914176200996740743647159111453553791620406772690292944800415198790322753340079716160122114707871873334913419500249571673438867224264244389898443478963523458165890138237163626434449956893548099845289660157374718606088226269442655026153843668475741808350144458153282448450060347705181627156912358242928871673402319169045901048804988562506860876563294010396695081724915794372845213296774546282719719548181418845615485078074117181834427254539732540099216253072065559707023918554262769175365465323568096169358336925331545625278960491295681368030079165391944487945670916141267602271979640420498552507893630031466193685560093692149281541086671719652280649446324159515120783327802791590103022662990770592266486483592068264885745598998877332576722223371291435666311222457267840183687973232737002499121588890284956404460841593419872518916672037052312540360722806409582940541324765857457065496353222350290543723598548524460438468855350692887737150747692857629384960927584985505241139747853791661132032389007535831221253206232678719911076594476169808056922860605211145743454989687599076121260536383075567832381267534286709946845582381224788601542889574920468090537365745414662385470871487679180295200573985647417260466290769466562577699772085011553851743708811884649648150705560836395242909730788470185256668746291944804863933958810591930340458566223157160290988936449991141082309676944692569239574463563512698281807191388703910484423768642439491235127171184616699318312708680818216658751333298107113237173115782086565298418361515176370952057457069474918046699853949549288052463556029602308286410275595355544399483551760017334461349705740211413333939080720819874520175634242265951537446848717679454307226658886986925308263262836657125814993110854446101289476502382084502627429918338128525952967913999534572681393890739111689160837397709844357969678987908230695856046006616854997547895822275145327891512449657096280547263945292137963837681183531835226046091019603715596788890188979220310292023175063643536220631398538351534646429626108512752015014702934524595741190297790321930325560789664391557700008106506875097326515215377691049427135675380105824103913535870880481009910767504929419303568498313925257710667666353550789715808773109537316500853835569272538801003031783030797938246755974592991421309844931345258244199610627925547423087558438807204558750257086191105352940564133564894150986498930044608726232523059773325736797068982604583695980980234889598499448182196716884105499246568290960775387235430418351452320975819121507421921760204575434347967783259010921334247786947917230359675324389121605630278023263688647212553157748188514812349082064699961512841712193119447306846497581475656758514512210739061447238031050762706260171779313549786097099135082119227475616829377866603543767353922207919569793276427101635777118882214088027340751681944197659243094995622517591344859755384051224136795022807498144717776348823660185279148917734825568940479138793190251645565031098058298836639616240216216974349460091792578820468681341136493981537754859292793349373340713075425113252803690465276681157568568945508735731413946327579837956495809729600615202178101442069134060040147711547401992075989541791540310893441060535227798150864081048511236351541365546925518793011016900886392591500560847359048202840011580568721773484256055240462288133304650280572554704915328500545627654048773880496516887738975224736421331330889199903013501151387734957873777809318215763017787866616957000351844151431792786051123531164180496643916860577822203439202373906719511564137736550847345078249796862514209066605327396454413688426557712564516612195887528594205083005342634360258087293852414590913319236271030414318709098968247615907807950598620622971257717151289414135734869875272300265900119275141853790976167228874921871945375181821670967144103460207301390145834610708736941884957485376706909808488227773772270564117290042546091115938426350715776491981153482872839964835743804878085150323528124249296519692288798378094981425991500661455022639762503228155632380667332155973470930224028595956803244101875790617798897311612939185932945768167326537994639337493384351825292262316655536882628876101029842682157846183360408387837161447181300472015492598145280201168683099395945805144654212969100183016469870992743078973635765964605165560239820280807158945844241964533826990483232154065263132838027835510602899354325775770501009894947800283598003659720688940142558534764703228633144935803280388366548752651334573938046840616334110259104612069202440637243742715627198140837201643236261455283419502690749244878440407383268215376535118457756862694261975402063094307353472163836022084641581911894139436120010696648265157073913024344796347437866519492747745053199115812584976839379919505392912078014269653589757754641133975421688341386199922164028725824929647226642422099366927253510984894105622725872362549516251461736588118228817148006409517912342189951343853429304842242589687341379444279112528026657387493842796364411295434953534200454063388397341625538650698279458569133169608306198766112419668436943728117123776698084664073157878400182481902393365751350819777659610920227715641054178366531569922896227964786898319798496067629185537938495539909616714072259780328674971889153697286529887844258899748784902958416734437956239288219789188479345298212783807874145739255619539535668014335171031490022367272272111429124875802790057625036654669127995956293945157353192119418435701748123737299820889698045207041607767324805170575941615084174605604225437909657697281329352266425515763186915557865446373982259093193706107934256876512170652046074969738082456240781852127068869666181284377329676760798502783581398262179185721405044297585803418917778176468328487376645082652893620692972885193894765379349660965347397486293238164598758313061816605373195126500024828652959250604900654103820319006911989948577421672377880036722901578927953029895694814808199686429575058483766583602908889637891160400319507326889423081352630253646182376958774408267759458844456220987121288766088611441903884277846802530404064221010976288382555125103884546212829928257233003536064190962029146226203439831419108929010342782553811213929457782348527526287165507549985313406213835578146003275201232502430587750189432691793480781704708584839916847342547207415204923277292409955444283699861680194561111820991686903854412083697931123280406548683191651027147312840628785139263140305452809490417773992947895918616468722192277884178284250886037036018695425888807591771875420324546798339589991809878091591796463535937857727428778632611318859812036927056908929847954331404159246979195785178006725834731815956790108636511126239861383725268781817322021192268276200700326541221006180236417118709193966898057326657773627512331910096753842866554125074403352008786503244149131480225375886506274170979713146734536278100011568969455836702852828914500740645171858834401942639947113240641097477709722189209260036438348510718459649474505563792080979711082140456305310294287217313143493228666017732976979700582991444729828128874729800427294276361277734044438086649031291920500742645147452686556125817369468362499481728193688953430819636601857867916204325601832332588933894591111626605746385930694473190272517351454546212321102430098771562911683120448548805815790712604923770480858191029665364100342806969892034153262194482607314392765453877837627218167990342515825831125319437276171735515100564785783000130826193948509717762862185399708908702335675115602439132071346919794726980474409867773292167031984608224476782003521143613895650570448344831302372032519842620265642315640935961384033664888658545768904434904175211715183748777154320742639656010393722375639662192079373446234450274339756429114460202676105454284499743870325302079628156377118954222728339630573432328462287916135023124566273762586510134213044623870669825106351280982104142619736497449890976079921208486694120774828375730133541580017338076608685564580828054120711160625265167050381322047579341114964598420567906721121449375219021648772183279298902733404569769186784105662812243581408012946992196407857340125150855467107500948996154055453538778782724230722047153179588317482443418805552695731554517949743960639210172900506710149104726192787244174511618171264116573460191989532775540676702859511984915894433939361924467363491725214409369077032579006838202450301592577129318381962625604088758977756698214431628548506856808455654653244378774506635953950098646497372553500573619698622098922911007294612396911633607953342577413094604839262121022737348083211424788708550792703402849774689738528011768869986947983683001491960928116687392846050991468245843091111449462315012926215069958107256364479484951264140346323408417529305181945879816873268483587230421122528941895147282328736794421084766828128862493691633954940838165017464382911583860792019919801162832621268758799159043097681218729732071814736366360513350014564784361488485281302999888288204790411655777803634479821779969442086244870023538995704339818923607736387649217143576323168723111715133392727416785866016325967786428267907293008541436836218723261000246842526352085359669396627655470472394327259775954615980913719980614070145129663047601523617953900418663602763935555762614821586607526440447768921687119081794650393062204693634519893679608826105293497673054008321433641312807374010627050457822977892253735295411298661747722139745155062568284041522219342345104701706178446843547720485405395588760502238370165636148354109809156396778632259676958566870087588651812173748998437464667165197909030173645803244626075385715638479929016429889186291775138991953675858865742655676573401792733720591237994566746351865702362487336024856408668016382244913142919744106908955152648379464428841397846716793052702629771182858340524940580385076116317509233601562958941708622552290022034553219130549038476940176986900615232404576297506890378427009260657488038246344744078965797851027220392466607605833629316458468969593556376397548756376690224196409517011499039182538107625829797129239713619950676148554737606742456929403214875297183154707695718008488905666536170370689244828768865525088331681644309264537845082236239046564040553740656700882409259316753244533110697503016744312843058919508858079167035582744732666425355877799023759757588501265718562041690647147492795567610506252948158750240252336381295895969849864066607464367187641002773207545237616017304286701470149536801878991648599171343882870070539047651518992130236428366421323913175247670369568856531916217466227485082550747628004546812743076773944414717476745366075532368924895174642230800399988127797832232607745060726238474967072426770081532190962945106193097281031592424183604557247273288363239203970470498219433107470692606531866135034422953878840503894767385604792591587563331270531638578335334850955729657910014817519982252110110238483077451563155233736528176625452829222891444436040706979177182178601427570534128766206738076152361981046799571765968142781063334123975220583798412013091030871965785341682318034618678185414360564351540259788138599042698074283294179401607701382410519964049625305620084021618297092274000464075753895915091678773081937391215296090941196206013847549764662892880603472019229209221719604788820940830662424368096415243806352893359630075580356844937673851765889364568339886417117665781059528129443614492846943688513396813923918189930323215625314101200314429116019828603615816019650451282007726999750938633156129887361463271865888068478633238010830270722804417128508960694113668591953021022887565857933238747330579964986010571115609384349923913748597758298580082828831735910129235682268494179981117673725668016934500446194575560579138867779037525152984604472320653955589127037971144049079588843937878956459773057318310618889797076579530773872966978272387801952661577104087561830620492097167049197393463000623100206601088375596975503126199893078934108878382485790858621300083811081256837773142426841710910983972214480761932448167109541130768803360785769194100025216303280097188662069755214360953240669025428126682477768727683707184389535228804717428645982874210581703849382622422917089058014922064007029015057453408380252835567631074675471165969561590438563567061104324319734866470442697144653157762687790529443966093057075898676996044868444241768431984496649826034568722335874409063930873765816739022791416141662482226758078650682465802070531027350162453811541842677123443504668015538567865684794742987109934753172109745311200689428079379061203814878668481032606064029933317410908409056674821225966310667150220567549291322949102401924176730093508721672182721297831720722049468798260375956608021965892038881200993758801022587573627883455002740584141279853688416969290713572749263860680153869877047442041070063409411908531616719252007334384971675712384774201421942434230085248928671790982218490750194201768101396367654005812298786050883139659704465304247498178856376857195273710306889525834398863833028344710391118975191513175015232729927656612431844732927074501894967220156214269958439446861667275434904798400848007427544735323404619837722129678930743597226411246016758426634895115309555980658193603938707395083283384108547875751517187927764268805729166915552281572260170657761343263601947487092548722300061059891237655102635212899769119067438031066624486128147644762457452558290091361695066264053745404623673171078854293592817727605120150605395149008562024101134766167370314659481555358092941647827185336726955537263379461354860699599818095704650674994352312124414839027055243909376509099877249603766119646132213104792546477947908622051466882952702375175601288129956018695567010400615984723095873452624113997467396396911357553699132372344241965405596673851987026196171223887813289886831408553038280638769036162081869945462411511819805290566796736068566532318660136114288613875380899382069946094093091431289499078213156504845699876813436084750537042869482375506210969541159521603498220294876155070987006456878197976743507679981345518993335607743227839858215890447765707784821177163116310322677707986801550905426734639196206503233155037390747238451136856700404811346362530124284290045897359269573712291821433734662937835107340611982636030438218161857826846431961934404417207488302877356210370413864799285147451892457047216954396463699439382927883745189955719673554570369764492109619728046044067511727169713736306195124158383007117813316595894393116664750574760934269638472435307571918642813832073859221019997000083603570316704314285710444310790568064516204728903247374418592699119131763839471729712235447701273948424676088961786627856952700140354974495303482471917303134571046986244801242961061833091790672646057253599031580542552239270494899891789175497209447685409921102267503019601580034019064586969013600960977180215797686637405316876313849981306835257648506889042168892982210848235380364793218759803354367632200976295476064581405362506241274726297275135862764603611420967976744752670865190264196056841702648494922995480679613650918051088614988629436543304909487063894333019571477542143802630051370558501681114985677569982858497297740857194588368296288483088407351638088558931791057529182875498329675104354709063951697065827562349231267839735363139967262962327386193949393391357438695950447016911442849035980942969854619245141011326712653670381075066977762664297120490503384231864399739415821286943789098584079574914265633530244896294497470003132862849099523837095141726010431978570636826122303995237729840486189980579946771216031821401169324619336626604032049756955656382299270211729159058437657945728788810114212741350271285265060052192139527063356081201085427785730997436770023661549452276362873220724202187083540717065487522890104558248923874406111218819587388450156144759021367847822370345438946208709519008668420711837696591571663152066521954352410363970967589915462854345013145171997581130193732494285002699069057320703925330126909448251917563377160863796574120858626347884368383562095358487710153531594881603013516955768544690606904160211426073582324087933189732423574836505519951303233578226046385260088943813936772304026214042391882109471212920473987968010228289636570402619111719796821762139759138759958864683713601122661553609701366899434512060205838928361132705684274746964774071808486824611286745280053490175606010480760929232354669441102582752512498375071203829209369737382184749118459702136309923410015721488978548718871005232773300145246748262316377991914442557583011807577392787381247290711429686278258282808318959474180304965482368090493766886848201756135819074555442045943370638265147258547488811724379385485540889828889233515653179664011447061259618725568881547586136910566760778813283052083922494472663437303640655081796087286427293835394191432344023183959928718724193262913412000906295268446775257230590942615474571149809427870651759445685854675986981189472358406308599998289692152669181471368868726932788730416452718746740908566605510471896060846824685067420747572264730262402855791197298710642082660798778517894653099199668731913067394233608065484160403056974659890709933877712496055932540620470067838770478653080167782401147318525052965782970760732368848497724992447482852919648695476530317998311884861391170997915360141809597442941791518804751427752393786229815438488575121162842445105522281604085885905082160166851782542490379557753881570524880462363307509612161385429225234132843128922351951926346895598657445969435013949077638650558521617849869926831556586386683097179159806147993347137278416677083983327221621329650694346465777808653940732196354030308108950750120415538376008906039813851735076747005325885189763884872930990963228942546997505402358339487756929849332172041097694963863591906762787195000548418343358577607303534190963966168872341912615402895473398397166498857462458158533746896202518712174909530102505214593113312239040306466135597004427724558704773008100957714443885304376807050166552969966410421342866680362722970075296853942479715202365275299370010427012552066608624163842277100403835371750596499722165918576871238758320909772464211223812259473496598811767875483318605255921280397452264391084204102830025024195439695368084281698116910192702001891750874964477737989133665355533704668910210415772751933287619096403462240182314216106260839057097836385544037858807048201039437638248618997484030400557652967101984579512187805118277607455726367615855462777515661774912844853699895443567487565409656888939570453994556756482208849819116791712372232334233018447970411441753083274061734659065422697042079767285546680333080323859654812106660850430547339559168250725830948136491840394264655935794522068702280272393706580451668642245388244788973210612109139957679637027250145613767527280955276752599506903150090531275869292303565457565373023222035780843808860557269608019276587056954696130704112898397582435324163943734876613764143674780034197811094432444062847388015326194373004398744893314921982667528325932266365059167558633812676888245566185793024972138063911441233582437809622428217900240284452732449409819174645176399473397084894190682388720156988690819582268497168363200922339607863842971515586888505228842717418131390851866166046361180753966093346708512655190216848462387702200876696737818695855256380654798534931613901831657378926270848127957289343298553529690310459352880570585602723274988179137299846340322004284846207432828968461564933277199417622526900558734306729900599782909122707356304134650249760695132671748663702347911340987155249315964418001639513322083260849436743668941451730694340725739990831430886668639844326471095059607388602518656185258016277650567205919079344759116389195240542783636673473094065761225709417984390304634522010329014352437659617778955406648330329390735289202091094443219330486590301498570297079301439195986938513045704822589755083926676202466861582996345922664277975675429838874789036094302145136009962805557211362015057272121819208662097557477978287792100352701340528558212855243261573470668938695831563778996763198459444549222162167981336116737878803344477755707865173603436076396121415335433082491727369489123728510826586590301634589309841057446728877336026960651867845287263233855855968238773627110040803343590864951278223870656094238288691344413744053944810179040531863857838345179401757385900086267048956428535078919718328031035804776217602736976589689591587702146105737111141531474014508727491054932077449081754409383763558496128599023545027931442935832645491286143361398329558608478091859474015912695729805974645918782142181431522979334493331154508032413253196558982522067915537850674494230976520279610967269217096783737086276667336208021711669066168736654394993110660872259208824554918682713819931375218100830881551647783515372518068123602707572042702916876520473877212919492671969489242617369981052932562957803405331752051443836950220650656491342234689767021036963557963898509504271358463067602383463533594737233272476675804085634567335595129097037002711564106503437287978271593518377258469694932088696420424039609279318385738330326551921483329422846852249626695933304361733975726182361800401724443818338876087769878821409347674622169648161986943202609564063014107772932642285837165324683638606936942952515562016022159900700378632964611514623931176958138316078499707874860355139254259728060946442466553206573797874473222023544543855160025939184077604506468226199189957611464802447287633296680831463940146337055508494492361539960453994995634726391502865271428529498094572755142504776724935609564738846597346400201687005926538718576169115270605334728261626457433185808099868975235843459552492995367435722903403961107698971893498296324550486868933265923616749305040358506811596165361159813627567143666766996189572600956499080259614904091605099053451529822425083132802213390327371975569049944571618237722824585545356409628487238369348571690534256022763679799770055311686433059425021977826063700936073757663067724301462509417888316318760385681407301215720305205988846402025739361429688405232801863099257588386921399588763561255232611422160639409042865662233244515750971701106703749663384039083823337471705345458786929961127662631151699382009315986225997960404883726739470625802455247052324848736310008368040170221918781969617456479115412817581437210150441220201489313061693561992602120879833954011216408327285331830561022146472055992233274882452762463013318078515634391720452572234803104542215394856876896406589846975437999914655622902766445868741002357517414090772845985040348246127567755628123891144213071690248082909537245333130240988035040923981337071623643249984316085359988078819827378671452081828799843823853317931662779665969877387481987609418065222598658845214192270068987848318456837520906893498677504724165001013409873392205340520780170001474974928501905839168165873460323282053057827156695314506475638537682210068819545876367666852786731156314730068127300739597006338666561743015783137432578478438846145825532366091646809879292691607952835909722959083131767316159457363720795838119485289516621768735968058445851765164855823068254107932536515317814553522350129614789117714316259872381863280933256188729880186402664185833879564208423109807258726811994544529769769585536516421537799646191783319272411551466920703663213053515729434226434876635038562555085946827419406213801295408295013949137831741963286890134541289320484766311090309620499070270700790571998829820010149059101920592423844788868734452531445502582931548715446930918884623609871157540184440565120367394733216336601777502917030065344847744752250591360872172275680079862525239864285839561385787119739397628503162544237686628052798695587838043249233139819452065799506709166630783038674433442226035275058062800412622554713917115355191543660599860366070663451118304689671512455288258590873863308172429503494698742201431285647115147320338310400291016598712141646120421072652090268437011925849101651397402887743753232599831422750525160850539309004300991125297763584289054051468111418550960188539145555408169740532964810422416686419505894925960956779505879679721217500579883463774515410851949818940552550971218723962314870192941709400479138020792457428450851802583829918872786679833412592449930814397686440756348316900132334276376900198660722309102399949959203767115965011637589068865274103085922977425239125364820025183117106652568908814745446408354425585070877856147524313907188925785948117620776391408147831742288473940888836405894863719087697896660325590492487842216173546694660459940933341472990571819322774424046409558131891731760435096087029700965262279923272411469528153922309779627432602566295956444325004791462883126226721458948347415918232131736454522839391407161078063290338370632622987176984443376275288124388159937297125820097985223277589493341476339791898600416078028089023295199193078131690384352621890060787630552118088992401267582172487434804187493291720090117902502639363540967703720427887445351476894898944276305060048494533680485791595332983112368412982862880487866498855340564395376411190748630036493142557573127317009874368947707225334514498666687486115900557365361885754468663519063461431663364619948455021788922455814714330974785729861108140133891519600017825643858512532245500567087953665187445369962625565181405874133399562953807070299518189007602346680262382230976418557889631180974410293104121415143361319342879955030422134408349341651685850180388406063192864304984395911182377529479308714444354906190787711976125299927861015391055575515924832775773116648351077854635494419214792996548081480929851127454879672448349667553622593099755760887398191128787293666200502896366668857683241596944120602337590540896574763087589491179935919481421049050431374310440484457454496227870350632251406203351361062707003606055081176338413073161951594853582064609737492547555570600052396948269697621568679437783177871453066855302450524415010430413655361318163284794554446290355260408122328428362959060795732796050544499914836703652803570358937035585803095414747640784680134550031863773329674470659425011144668928784844968631393782247667978706605155407117941340544361792569960258116147350293126529738617143838233191756113962219960396791994620407504643270205864354098634927313053029624144418345843262527476705637267274893356117484545993717104452011123803966407582469174011244711011146705277651826155358375512530842762653432346554358769711443486020348589502200092298444795835974608377187299172387352086973655746314260416873025926679988667171748385191729292110787565146414146026590016295805998869612410204633297591856698904034452960263650754605984098068888406209071997839545249374554290066825333798978447271507375287856826968265956924956969996936279834946701232840311455078019156472249017455676667033925516600039364027816140889525154893987447109832709631662911440890668584914103803883567955408602486448876160173773663588911164058694216976277779584754633585008488123819716681191069214781394574361348774600937811553154418533339817399294449829067442730622777976936449384463746740000419001729926645615748353868592245672849731317210026813274297623256166161199610242524614660745160284326804892789669168076737422627390709839025109674243618993008520304041721686449150713797697675380772349873807974710308675916174517694916195674472007330746418064380927251207270644346195408009752840671048972865145248390220992197810081000601729043968030360049840089387975331927321612942222048387494701283454683137057000955771421312663397727011685129486255947246261910895664140282924316002859856089466903842402860814293420365973334649748409935008836214218272748025737328926900877168694498983624897269184780778157097005695870250526082941914477545253501286092642920632744911636630915923836639003789161893771229231531643193869408165049838238637244401210356917062405119386515819762786031924510956324695005229924890169969965502940895805634163221690899178287525705067415735964837047385331673906299893256222719017074639461630652669466160494272436714896973962453979509628182586719191296483277575334226426072744401192468842510317667966113872620709769532520599069920243186528219750079620337105986447849233810285199452535209367545161767504587993526712137066777253064405965920632896038139391399146314316789302341531271564934648997152216661540188130874712002151855751638018635595425062061292064093743517985504464872874609339941174134747114112664403714139829842513845062856356987032537185218685149565924703788038713501780854581065430205114663360589100506890159421456600966545232237088922339901515471417658655718198023753161104457940267901722825957164784164733969698765679263640476887418697271700622341260299766909261485077863346320655722903987471723952048696036765312065515664858456099259125601543534091328851245094555760208013639204297922800823922601008499019956391408476687539933194496070906567619677435770790895617606051377877499261233182226445016857333864678551106741997922872674976981447908898844247990286333587659781279138985511626269331568291884463032509905471585056839439579194007685439400441016325905859873090128098947041646010443419569246214597766011248760936496736093986289112519805009834185539250975607710708240782625613809144705737327080894622879553532454299749419897721133454686945950339077291279341065954774313655123513225188738116688172578469402415508507916196507929516513650739673984819947016316223502799474906031178795405186071174733958357699546176181153109463740883048733072972277177287270648507324205801491945678468953275162298078392268868497657375987258950628324787130990290916895665322650052771330287283059418379817555742525472076729107415386428745676218590505266725539406560889525582829315315278629254216596170423254672953934442970386624787911167635965058518706089173911057486089404627933039415295899166620504802759561113184757217335568624629311716788145759421102198718746595721451046888026790645754098919068746197427226101160823767793676444005653999709195228857036241982750452962859621925607428619146464493608545350423035579659229557084947343510407838341204744391939279356323264892560607029806130386497486365085761987151739654132357168885920419482795460133102815908337410743347570804789378194865600559801265802436879598478321309518230059366200684339745236118607326009296321702942324427822866025966547827166354214622114155083223489421130751242775500143231613985666195139644723285234369431085221619358954298712327791624123810400891523783113542874312026039100445317845672925931596552443505314005620223446760635205323073919945788545772705164182105317450711401456674498998605226873661494543772149445225182289816260509014553667861713982892255666738387194710195550453580171810681086883183428936436353516844420084558269039624379330458723616195327792135676967528803339731937535864894152984058349144052028169598049390344158143730642937662445942253292293710213594298925352601089926465346823006268614537434013823403432287173883741897986461476945737766843189313064495017741308665925028064875739388649816455413674826930713622252901534443121850437921139066373436370065028013531424293271208056797385488166698238013261657026315674441916995519520513058884392681158141753303577313063275822855156258626628801131021178454115217004660523028724373769126695365964558987252200090595637195284770048886632967787134435449258102468274379422897233492129126934440599000170818262262715915513145619182282901556683674875873865203312928321093469390136088089326004866646920087703619203332571338589188925781869630830431339869895488053309524222563316877995882923769487780371694588566915049342689108795234548908467513491397619813554779464942248747315409791358131797370463810059433393641150419956084403053468437063630374823037949785571691395134017735632309301458398582284874555286474355513684053489185170729759102755731456953475593581776091171938594599969628035762051238480049652554323041618269939368935541176207271787473718196443663516119028155144856235373199368829795285403721776216904729806412858575948221534339423975916714808749445853234526912244261209209512030023184860547570453718747970114857540573670717560979159880265311097282449618847146194238230771127774656483405693732356486528116243082020969488191937617062548408495190515518398349261826079428674313359192381776182403802404381673756299808223618771389509038541329304878754558271777317492484908398996706524329241201579793626649273256276876716559943186591158551753430502800772683950954617161910285079516035555175890062496832970666834774572286138624454112571434312574448468887850239711567451074283675628905470507398149669453681615896648300164097355598672219470251565074231112543492490224356054813934522389508951838110541841019704732006742387488563772699086616144407532547296908939183179213684885115443424258441105659238351609534692003394999050205059997579129432712941285882071536148849123172542106936677277402371353784335846662374491939607675750143049820203351089440113318975754398130466507022559763991093174956428541924436932750837189061936482680944436833907707859668519666028403631621371487262744380889778837989846544954523003943222560557345316639691529868853727945227506387231957608051955940179253715498946505323563858356516566242900685388313321504158180945906073892782540835472286091323419752022110600189566768120217729462863661837301638027216149447058070548715907448107575505967636671730412391911562668721965197298367839095611755745824576783028358055896193909053986603476604523819435470840920243244030560134512825756739349347863249672737417629763209156943527125503696261684882220438624974855054164820792709108748058240222289655367036781591273987229471316157410027195810530904386698549516593108747480480126528545574634271232914036226727339164293742472304606755527906396488852107849450968224151429001091547049320706525861083586990974073389324193379457452756158043061413418994666582514819151675953298382612342785801478648395290304711093305121673125548029850905837737139646150159556702898668192499306514247314093409402366174083455016432332054613865011699622903796689888006152550377393663237568302894815878485661848422229782695657327076979897549961601197244880018977980897329561397357070280046152756202011691906776431878885881085642778576615790375433348574965665428441171636582425537409212774238256522234837261010342572311282935105854178854248107842044019066191305483205826852235413033990746323932614480431557766649851229546711729679699933566764959039891989225761758852061233631881264025519071052017455912327501737724385828198045458795166318060476118257165775549643089459681081293631992969355386274864031946388993839530557337559759338297135785088893587785705670617075899436081117362677998517647017917288796325263822422387312222438675936587795801229265061942874938546721298974695016516300126052095438093011389318926766738640174481684297474051645793805593576301213200412334409802790509941298001938771063935137704716097555880762576193076976754201740993998634554584040289718467923640475247198170454106165816057861284057384705906472849928246074423475911413753519496757235433097026859713923822744635986173193002707797632805336878874748143254572595337197095859821920900523083135828702329830099652986900630212618962449758453089347247234238621167777043862293339092156537770296907919020142869467410360577276831980472780403113781346807315077590972163476079877331957005750024590131329181858117543333024280581204569720327599484993372821694388030535061811340893892670216514558445449968131965754962151434909814881211658496557404815002039594659901542246472608628339280848476190359156864905748599574640418524786937625189124721876253671155863300258792332573856627022579764280873497288412153471347886016771430989065657466136069135902636980157699871579853497720780650111694126754839579064132504858608361474206824473964192403917389905076237439278146490002913497040139441002830231683648939811975333708270901251822506596885625372093375468875770904785275658213322788971528430786135173498865646797315845707419487778796302747562201245197004004563735775449158397865568844320246244043849696365341315907473897265601913874001081794880129520745311830253382261684963204853354833050471732283129615362152051894153994691366557673510709825728201393380933031445349469972915200746276671608858595118460438529442112896556552985429682680907749380462802689943685546393046041355539695825241305125575468893617898726335749707208023680773473575793468965315507381463890532560117999247645260382111933087684552071689162510278869704359994095396909642009934251329265709020420758957151899483362364996215963080322349710305393441840134050083272473858141750717843861417833662517034735821686791428197640902693836482971320779216073813932510661619306383753454879435978899709681342937556400044075012840423252688987697706024982420241655879737366851710619999586664829682140810315506029843631984912710536637123549316548371935717216622803835784608041049050311103365910814975951664883569347713825849473656634292003307986185572840361923890163927379104790282815335154341892558990091244903133759662347621861647537256694171974139433093663253788086839064887068322714898853852059493835959945201889434110469919949026253640150682966648724831859207004334817959570595343834246689323504354658660964527455322746565746746324530889248434184726517929044284086073663883359022261710464276112795842769963840358044052982579377211165586105943137105504742770888758726981523839231631546430422102606189196147891101613294103549577733219652566971760628284645697625375194284649663015573157996575015351949652851367765088740204611411732887854588976639807830780050515992049991920629491260859866910609493797400028229465882105670356015399085647524139877837395760367265145450670110889210902955759211084933722768200542585203571321040953212647419392013587626543599964438539330975611194221232321860890089764589546121157243705371051842484079484639174345106521094988024496469360945533079996435920475965660091332829503529711191709908198209061959119432470561283787477212254964895108771355408762034236361352505375683550430739072154263411849464184016488296372031030594108692679758405852027938100490769585558573273742838799456573296904358194445140117779242536161776182548827407636205793824518890327066525847820777228952281073219763218705149983316236731698637439721877677232400085857759285322502087735362915023164384197563273856126786431040788399098309800643165715788237520727535376250632647568785145018104129085237991478061746406972192765896036651937804513118954018875755628745850932182402786622909746162546420419639549614126601132520365292098951988702431851194578189070338599084237152629638576740856366096329150870698656348981708825245020275948678325363357727986426423906338643489246526595757893134922645371902512740058130210647069589398581062726196951110938400142868184429267153267993076922238179167520712217413361375832268263179318629374326647940473875098770848420339382477995482369283729430802387859187366798821496182535051164811373867996177657776338925453452565217803927767945159700180307648362901702503988773640995685445675455430379792146669505756244696631881585593133371377156396126624815063368712602331432060813101123807200218096359929957427161231116072448607536503631346824463652355594627233189407328388462549667280369484975197375499187587905904540231212640926167495848553511986289474621907141634847458588503062523685924052147360860707743687205111659662091039187833669910407039248752128447772840664552651194902816771194720142452008015962350999878407154910276942871427703766819511090557661557046452721318666105872757361680166390626934116478763461138134078883352900292255500783520665672692974354624012778018858481681647016220620491925263991984300575718020267993911970990494517657508561768746513223034873837062936546321378706271895815914151233148782291489737872564722405626555645804520547140501621269027735704420161298786767290737099469596282169010539106338110656137776058089203666564493486568112881517731396020328191830679953383786253030885952469579126777991737745459020188886773470511383260973479546568303910504075279296937651390632088853334711753581817113963345076648067462673055271499392783429271180019318686603732807379909850797978623201992229694169222640762853013151967470127222653447544653360629525792120180623641794066946393665961824658543281355866202931923175631691518788323014300937579031713210451583223904267389487268080715860018978751239581318213686629122088673924566996567572546274268665310968721110791617828596966050800154098736022857297281654965014433130725048927122663823043123506943197153818304807052589864800063952318249619702207076912344804097048618248804601248343521240894664844328527491712303463978289081061282466871619415915825389993110997423986144554676111215428753584553979290658491047370326714149332635141554988682970360039047330838965843058652905306019868331987195889684152518560232229721889761702318807384431939592696228974342941788100918794225840227581469048134624836810428535644562546311333725205062095469888638666028133211580541546722498606549518871283767434273610907721925603153814014921093301464920875227526054112539759822873271057359394193596117140113965927812214449013672442388472289769114390590131948178276065021025539872144110736051574731246754197918811853055844323583053076036611038065206284320760694093487937691958252013973960371027306470248328167444524969362386538122439090143150841735414615370069418894657445680259312751446613526094199673987920223332108146591578224658968569500232524685002599052461265778377630568087577967644489676823562856197689367708781544670987376244707644684347956911290270106991828480401138742851145229453288611119860814173072285622792788937347023275115846139899117302645444569401322809374075490844521825157467620693509309966396274523431056631007424315218724307797810158106596398521916110345067159343461826554365306620633541825657716777539221141270535527481007406043166313730819295570217399418607018484084382357976710089581603559604310367792376586229120172419406756544926311999618249437851432440994473120489777362439873310083012509967263339542560075253848767627970507954333260557761084806458009304113265547411483295500868581400063621700118865270005672266648738222911703128265351099027726852180756650827422280091879932491108583073332841357851333996956503576979364024900100717898151963728369313239246930604227591323850760343347846200879428136313246622415772438169207544424921619374655218010565250089876201474863453331671901089845935172556632224800217331566019730662053378234533812437428804144615275311967772531076835277336288886004466983913337257604135027078797420292564155233692706321832932910828522811502175048765878893118865529203073294007080365268847009794040576990793949044917110813507391653294041149689381136507689231702307767292052668045139129731402414521739367000746651195893830764950504224970610577397053958479629328054567217162753479260993087747868597119220889522446785748497916789421484788646756800274035918025835787811451157662038891515318700244871362031352869197263843387088357090425413188231293596876398951350414410415879992959166994625858893025946339463532510411082947104248594414203991608111745411066878996722580313294425028055539166932749833568170396228743178559453222518998806472565724877576811723171523582307095496550979255254478117102362531076524410369987731256328959446243165083961281346275634970038994446598931379044944149410561063307183197490659591060159885345686243973482400899643676316759940382660886534970413382241218126180481424963864624244586708621220178366650562394744811848973657379040663070672870584284612448452923914841549742916853407841410913064080426452264161130735775005943524513836279042064597614536704442417225126488930869778009387112241612697301064395452810088619680047758092087942260784441388337412315362515776107869897213060134379517875189060245720670367842543811032906963041066020225392858597682149205980102866253706744208632798554929955062385337747633519925364407156824463330350675138532575046466959823504435388490873949934715821018618309417315923694617301851571346243164926558134514214975988120594296388292293055835195623671917139783646873925790586138585537117910958651048769995956013953416594529798126107066105291681988152722525603773806328575615554715395232530228954755920432889501976988371813515001628294746677552141377132076573611156763182692663455680887773050019710433319228475425713005337467282639955698169663130676682582698220613416969449750383525279838476833008361753057956668891969174978373541326442656337183499195168926119921155165367028109506354294616629866893747758664058051344284594060712323444901272815579678323589709854509761154495880215953067413469571414430161799970518080960643019826063934585275061655480484698140632128434528708053449116036363701138708315169277992201400482786492153076147105187636716842092383172026897288364375368819997908169770319192238791295081671387965246526619291126911429087913408740645837114979752232781710998905671944894882066482884333626206702553125176858986740329620283743534039198581109619577294463227883541974404433784011354883553720773396391949167746199762841392665130528885475609289810170196915930712952404049704188489358178124381476607909908510282198131353400579058970869529610003696664099370576903604208520550289355751629857391235008173002737614608879478148279492754571909729377651937099324491828654704114751315430210479041709626741263561601507720914105719395936213942148779028328697804890293210815124222317577072468375641588062894563232814307448181007742310164678297135515198086062547280565924450095390925100865873159604261224315589095272837675248127832582136987252922126022199450863723670139838636948319401734609429777470267601486477130488671869386318956020226806923316674328755235862694293420691215588229852101152619983574280771362378181947336971856023002125165956512844287825340475926654162001880378000124187021221719487134884982340662312943433842972885669612054011112808680489775389625679932179263451852209356048475115652264346707356493433092785999947306608742614106857569642251225154372926474042897089532443569460613296311266363955835818778652520128898995062657264794980007653837127808645176024857652769041308603386910762665495278335860169688127425342809068022034115726594791437891806550942993642781428358371780028755579034621724664796010700787112812622582304878595784538125043765360742346309325140655125555046273769007179373228659215762545851043386276763414616686288060333635824192767045615875722267676837959604209685908596624205435148490321572856691327508953175363355390654504856318385250637133906898980947307822501000029300675599496426956738660835006149498581070597280592035696595945973764897184800543101462766391530729140461761869711721917873898040246392927930039386633972081972935835399754063576412901929655074449846309068912203471943925327468036580347190259635304090010723306107714016585186387226928926300638106489846503797004411562724464146715723323650487456864604409974360939077087321090610284125030768715461226992452134373535511503865741088990501008094259846551105615793322949847630221799616775623653856912547692108446863922559181299167669668733929873266392284359471887601327618948987521604074473661327637334958461601929930684943208191636375940538573365261359705214807930476624712004473720524405571822653028756604129465843611048220032510102590358675328649341421945400723476875058665939959940854917739037513874186117524287306830439818335304279797849169103849958223334731425185608979820480211495022983858228871470187388698221599952257174417365555547541564760922958440101589778900442268436103932128912268702429793429856343086733529534092561486937427884979007182356419132399949612273159686642398402043628090738696339354305089566652403943916984339797023186708889202394450565103584314231355407605050591278214506800510931674595730032674651059530252304283926549688286282431569521674004824729584274882392626611265845417213968786744855586086104197138822614797647378583258970769469482950402373073609533874312313035608234346045935782970413425525758351339305030876037363450390445861398149022915189028482583415763283905631394118822901930670846667918294725283775321501344851214803766158933582104473811035518608678495195763640663864614204589766791620058208108894045235598145576365171779002920743961075638043867614959209140967220401051063905513782217598266945070338609979465220608892328779432700115007430174521121908392436734498198579108492127856192535030923225053715786219705321935772433290959560886274741183564803241560348190457180294012297415750866596899350053874579042154801186574303493051937697243952933672449516349558723802828553187909389920007762772430273672942696541902289562209814174619684423168916704594784445877497619220737839872946680037198092346497310527874926388004244059465574754815560883404020102995037436037751569988667473557362835265559669095584146824616313855054118733404371719402369929761931718412734102393111290551568413711106621245786261198667895338487280705061053953480164564075322595104865976469478844463611367861670081778196426662692879735218962626009306113932156108028407831423116033040085643835717397869837676349271633543919989630000513106637470004135634634188686088522573342089604855562235254776680657842614353952323044018156610385556296584368129750938744027761897192925448296379122812757888479658866742135074994154467043822230519128517214512051512859909058221761636090093652131605229637438939187628786711625563981433405696758557262956042630353774558604866330215694753763033162408166189699083114294141545538883172140319086191509106068548103161274498075252127792736858143076876750082755240817896672527276284584228043116355146930716941037078551152473578625642733061819791262005018559141145975995052932654489527118916433394291066170930935039694670899542924936124951907210312242267914193848079681602082432569119351907697054045518987411509334700750678200321594478966303127471088110866627457510108784352639635247323159280810564378135366405421290921583471783395561383037357982612138486665146263881414706184594156112324606862723954533539083668482293924826982034726750318863194119377174458209688780658405445895674215907570986164329855740490239658967805408270866854476690325281738647289737322317430647551798653830358204117824520287109082507276334939173626486900415078831299199173721054349562681895784257385651105069646589295701843186241950203431316155834416035380834436014606740239811253072998721105340535404779224290231718144281598984423106033548549388131414279873565298392428194760579049969190571077740437007050813314556581499252220183314871852440881274024005580186587118274802275712190059995727723197913589620947219836995792419392941539405852184269920515939045550297142435625988616231713891903885755572871320337377239938714324557085913979561337563242765975110747314705471291751067614203139710036624540669976961984274351028460337498260809037988017352428783273014245648349471389245112018044059657059641509478698652593152769274202655265698894970731987228805117186871244085254905483324485937789074166413517314955967691685646054978917740431923219980082411594246049500814764514898929698293267683701046286053578565567473258212649409214342800475895497328438519073244798814479974840439112337763403847175858706712263821459908288250886857591750529911656514522707495767362539062673507707441007382702749281157472338092982077868064895046566596306021283764801784686715658405508015876872662731190726276863010047431273044898975633472243253109545350638625419525643984575590784547407684387741471291276253854579789586167631650154273071912163162069090409968864003029445312615220364282575106988536702268265062196983980545746331625358910972303701088264122135183633199848262938063447025882098014765089532048430447600590270225226204987780696152187347531832232822510782788277312623247166905357041867854669070928960677835438532009798840074514896547888355476602166157816572655532097653456343679018221109176098677712002004625758963875475380602393491320611721847161959318125272016598494664769064751032920485972681269109045209265658149834537374401900559616380259559824367375309762390474679545846300464912172238352389192395147377246586850207891358295639160961705687614557732977052323001986853716834968031025593980675141947365809446012879567226384834304742583912212259993241772737510108934197526125811824416469833025693330831259162980893266653596204961259598433031901787727859087886489253206379966892200588802565517948627908177779089063195527887328841148871457187877883398853683821965837298132014478355317347711792663611485216593678440941800211372219353416301857987293837088845337127914749506069799423103985761850830701645601276240087295426552705364277329252749634420285613789385059823920012449739910957783546242566993524422130910077711995161413365221168906443189672369541872925932205111953241436867772862499103524164099538457455737548478505586777731116272745929961367084366098835399504592214719871088992452475165580189136447283860382591754499699332879029241861020896802255775492714906507872652420593203241723411770723061871099778888173627689382147315455989901779519192102305765253065094383491764361767486913364484125173556930203091501417448607637675770035090015621932549058341679601351137786701728776109773008347695649811785388698608759750884421113766327941980756417788704750551146886341668019503803601542651000856721328440292760773930251799979429581866851798076824019518392731678636001598555382850354133627943058879717966694613119304517250235405404335621241108164155615519226855964171135880444702306819771514494720400146034658555674438679572649080181667083854980469968551092975495332651276932218804061506452942257418044311683392586077974975937121022294932785087784057583780313484528318718927999691532239946233823178247316577831958511154981741616306419692997053310447845595449091709546202234617416469962064962632787538690429043947109868787033123867805499557957082805886175386091314586319782137263415989995278615506623057557318666009946217696897417989617048468254273934949716264677698867442429611094931997200396457344953383069751636913829835425549413884343035475075026710916178383853139788535205132725950953579720479834427868904150273964197858805413997291025227980889043035070357042517509340920609751565512010371485347140138837546733236722669767688049005569268989946112589286290606744456917857795559585331501301390627386124355645038322509820019679534320798967304399615035601217621394680716499684729360446911721625964782475519003283064270208952672378032562817188610235096674183008883923451010308978809264856425785179128742414436371473361940643361192010236587487476836604451103030753023718944453824635980859755526433516733583464723491541505955633048267760239003059768430680379844709039464332015557842979011184456510291224849159506498549904511242594795104087675287766656030470315332397950355143988402498495819291498784425478096304143303038120674191448570350522994308951809693574769142343141586876692955245342190816576838961113102101384572389994549639442589841474733044681375540148050856197920372487067155991934085270526720577489041692960982424185626241169972441329409778723084247083164847203059713743645378646120431530250982226928871965700315663818629976580740677725838807103249996599231499362307447097524313032360908996944783780394504916506416518963148621666188576070513962192806157998396420106254007433948396852985373167185316475188241611003813248687633846324711487800022613592689333312826551663598650825960802234747365468214413586950903460364641994447945150730174780666624999821564394602032605120484655359115537027056889971178110418174866469480922249682688071577572878444444367839517195691329982914091546311985597075368265342640590227329680645794921781855235532583703598693907225743678979894897004524712563685892774449970876550091109831722779873125287056028811163804935209906952704636483522042743470866949627218570353570432635314984046681257314088907313876057079141901279937157506519697562604892966085926261075797149606605369610732190219547160943657375412568596815754609397555453908060690844210951624901082888632011334022348818006307344883407597667087163392139091113220797833854676796756610510341575688874025623485716550816854761886210778370650615047432143527027502530832265098315863032572969155064260233352351124746467104989415952531545388397607498790730433538335069676671382894592139527324682864705745608211481965264173308446263924338900288855005163444211899037781248440877486587446234648201598536233417305107033663459753676886572360151404124898237966446495146853454637036993597760572840990644661710574294478868182577769339040821774562646122044003269723814590415477827075362086505249268004961029232986838437634706492062149011040085677076394396380661300235543398873147847708885901649577137425940488028151296808766714692187997813212399588426328776555929133301407377473458435121513453448382087281358719719634477545104808362177022886711736562400127893266992068125944062166020119133750685903342354233941324161627044343212412809365458247946315612100061237670321253603104440873784481818647407104303968174040956049621575406021472157737018495443590235346923946534003286698073571833893006790134322689874521345367373659277440395306639808795806303405273246290879683803487585416317228723866426412043695069838879882829710302767444995296523205029809839552896579706406081600368882476732328670191572303679224499494684678921805179395403527819556548450720408528798752325756835772347190843352988351829665012141337668245316346857194527732801882726919862817606275370696923132449311694660122398785421189821584212329956586608536922315981030091842189071116454908667300770869920045708768303396357263075947560848245608403173178212867945993602338345854038334203695305758180577676710636313210160474653107764649186310508568662382754751867650146186128265219484209282499012012814821106903551211147162501849120975682665089738751503462558064696943168261949879549736547597183928687404327183709929852295116651966615538878691638576290964213574316229904722297065867472798873323573448760076055407573473531072488769422503058826955631006910358870095173150826969330178216228311323901868402333505963815958789382233391219548238080483687514300103875713686919225920019295820500011690242345188688630153533882881796406493640847171164123528750040848459064075764317947352919299594316933034429613213671660280181404484254364611373912557747995542199945713109132829007566517732604468703409224635442495376346120853612899872777427370073578730232799712468756033685248002796738316832219083259475762079639270217623628645607587799013564444461487193250289470957443680440543549765263759317066710026275303368564591437239609130400884533948621750470538136121646856804322185336860197027587883273964542604363350023985913940479622078964180220665235042980478413793207403386037577395842687167123766387153018282422562021645644401159196833478310189234449317330287228297952750365582012066808483705486856676381606648740483457663690109509853265324648043870908599194042386488878128122306028494829797815195437907966221588025607705871687662534545093932034009411289927368982912284231782481798489774975707889407203742850207607100147294404963551129273059643486468427991040288888815752711742980813785181644275465709393693152310500375152004306363566742343567146697811355860952740623718991296231682738546608648683642271358058280970794422569684529735080325998519553405342602128133395450772311158639575274216495950793061481227927132173046110179415298961332145983062435403978110986493521177998505423673117990148188176144944436200165744785506316236410763789903809257307299238709179630516987768479389542630953442898590768696335165779817931702672588775719272829843810245453395213279355314394612721695520116359005665875964570071371130675811755355650768564001643288802065572575022232993313549739387164452273004566533685586611635511100344599743072776001549108476153817873642046468583224295757728661650266317019616859162474231376250469570525859154900393237940252081159863857731852685634931828281902069202756299263481968501387317536114119753938405754362541901942473663468728770076826352062123408322224403913888451555221245215970133338528390337072061719812324048242277242145588153264336656054200193379141229762065708233400446848566740705065720835262744480647769290039122184882728695135940837497750618140983089248017517792079793967507053543317980311160295162736340333584156277438274613139220795694632097229614597175605017648121912668711502544313731968282293542873032197933337104774812378119867010191130182209419190114288844085623772128841399242687830087826630967901265883019984480370116149309794295421348275870424497803357848039440674987984068850529946431032461727806073792085639158497911217855803894454531545903875310987993794918245803520896611913671633020716639299971522705452294962922499875133748065959221572486036467034198100441520645852028996657561956030042860748346615976096180810425238879548987034716033012896167886128093242778411529744074841071076790980439393801264481291586789824616405459927070260248550553051951498217518540282119948007688966021343663687361599529581901967011186247862530514762347659302018407894002874228726123564784725171182151223060546331094520757338793573822593870490063547762608780641642232924448246947538140483978245674756124722026196838768512565357879090652097355678769157647287971179260949956802322414169743671079134126048257026833913591872613331595720706365205651292796363142686228205671381631154301317468045310790456994877687926472552620746792097317300118232739144196709962258636978293795992223587470067856404968876680583192893475176237745682929302880737139365589205682232310847153769564482880602577424783831411650464993807007155213646092152094674239798068923544297534992505248216754650751427604250931326416244672141292609689697962914665231714824261491559329279974189466480510029568021596287344656101144283427853781107446187865584657597567162973013444171227356064854216254969614886008366694685486286755113843832793029719726411093576958355835853645039510635963170911719799253625456166580268493972338484231166430747727334681137783607764526461171161841479566009610651506965712664191072574860307922169460569909620102205730161988160996969984953135890977991165457706472418299198020586234782032555601609665023953078081103105041900906034885238032701593251119451169458280165338790488830575857804702155449298249470616771623317632821586246885682816705542830098110470509773935338304667298702168946813183391328588139399306294447882075105107676277895329799616234801721337428577559074497781516241775478869606122621132981302009912625916634431372424547179016530242017651205830490809308076776257141445737381585629318306310335150670315177473828461313272488167577361017447782564414483102735091438867332299674413140542745510450744016503417210259994668885911412854727014925194898219599909924386161192511148744176101656470256400881394325036523213551086656934327563180499047081185123709781856234169013293581867229287239437725872728951129264614719675162340365837067493087891602067091949142476171568574828815104820618261396779661041007803483105894429916585925967518250517135849127308478143591095358238212059717613891014712716587699336631897628835990380111096305430330403580630144615407954888616224443619765015863129145348065573563374783814433978299534897196340011205677747092803106615918848659857255239620979060533593746704420392931934587947191104927700092223959691282010362680900339614717648380669688211499213576599755762975616011615123851697742867240806398698080232846335679293388230690142925094994324773623648740660975957643688272279030815310038624528766249982774033336003573777265982574646434029597240585143771451121091202123874011086808965151686245861138450568408645266954677850942278020532355871329898601643572655629667218711061431482498084504062829393283861471714050210113485380146217747834069669750295835896024006382107157708703050263435797528866598492737865189044283133597390711141591069458112583703732885952342080043024426690526635079702060895423458547129917090930974743937912725359547011063305556896927072626402963151628409573145105259386549070329862155044946291851560614272808013879262098050647008486152218404642957236324770376279023367364694174472155749003017153240668203173164797760498001028129748770566571060049685159042782654095182542234008193478875786531234059755719620596735890980077041147918324331148497961221890826442971347270726558320908715573711092686046022840777095875493899860603663866606651131819042341416917138259119202405764319623041913241203878483027974890446081534895314722587841869763546744399380362740834206502168625496771860329307602406721815164904472790701674493303911319577059000559749694272669484752788361781879783310630637075170894115032144865008653431646292584884072579873828229082568427931374305940357292777644838854479639178394654307641686951881121618561208559599336431943480452750465228761884083554675776824907446388859971461090187108551335130190058451287112778774886309636125462359309736825983425415043265782505855369473654728588363859475552518234537671921983687701170661494762554027512342066487361733119950525119051250266727270814601508420225695019681435504137843432970632256416832659021761442050872504984893721478149916593521663284272746887825980489044148270786818361157539495754729964950280242768458651135966300740113336995780528271834279316545964956976783220964988077595837145644682615507260099026630488790003523218308551792092611299608021517616887278070709246852783792551225452622950120336421874119249273768743023622793928605303601169457962636350701837944119448716966484624820654409957796256670565479545766962948193170919865705162282546634192645082514910290712835257735053728782757351009493066979543164273657801259380483041802428750450070094302939522405281980154610904101030392221744021261101666789788289998075743870482347887197913958832257840945053149673303658893394228897547511944262566634957551661115803785638776150155482096336553822709558580091371016912637143210137417275008736570703293226124562534883663023016060699322547028068038196118654933116140537090515471752243503302953305576079003129072258147716181248532152755468597474296765494793245594518809254427938077989509229230434072077291600543940885924006661379979928940884902374342198975294124436518905398296189340528002242014334429754671818700645576980259257518784276818712035595235334265564156044467582876583097362477135153634927179034131801879582089059403510636640636918814823653844740823737041668198120997343433698387595211947403112006339399154561245532538570652239224406025542634955107409085787930364028569169556661763387342687976350766497543330140530784317109302016580388833785013818891437952199258705600774304168786284168088419740337913059896367298047720272997559046946262052340565547341954112959902953687350503112110058529011651172268062935208775422172525161466143425447914312260193986443159493171518213198335569956291185812495837661009927938148221353359662046014499231262599089831881124539670816264818942634623305563708304366909108298853647241088478231840347353580045710462625799623472481510238936956576468479257899654780664567696093419144352220837921677727626781408848492286456870466784467985888207025750867355951519690598493647698324970157957757652743900593192777247476447064190504352423586616002414727599733543272402925771657650196723465741014899166484177014217727768473222967653925008957488740592153093363331002150729302278683616334375766008204596537275585580602422357407911413727081768509478553005092581606007026520124736403041348133665003487349258688293160328305949744234003590195839168070288746676003730425422325543828803355515817946476525014420358749908400482101696298141868997759955819289540602405703155861531848835337337625831308061388994720482510657448303923846063386634259841538716202108630373366937481695633554482479934139203047927323136286792384520312148754032702401984273733186383243550881376624537364699782971637498760231780784732122052642866654977288032821866543364885889699642143384245526029000792915129025792390737149774656668900517523078500053315895127615420359980173264424143533660790105237416628492468875004730931702955762748294915597143243807590790860786327917131243833184106439300040493255696934565952568528796643501668153198264004339311018514293697912305753101378452986059307538598144087050973213592967891842002925479546486015404966078192021317383520209678977720751756861025431399203545100753579581625450564701361276615358365219560653651244679408864501579063069197907843025941941932454736933624665914717294566193722986877602789172042357401518436316695131314871924361460057991216920660323581748722976282505435390657816884773519972252820333096624616490569682022960778432054830577053906987972250258345914869464875904043609780196210055240933461924260098907909828044508463475948003952123187219386424517348915803747419332831935981784692978188404692492811661318074355736179398937363802374567157893262150220696686259616864103390311602333063803962271211306004256450657893319800438488113276776815665843717657597663061239246482874384519938921701623220114433780204917530906226616872441505947365233125723944726243902910932632343955175464385419761107372509704773138908391426576699703321958091968521979131220367419118575836238001597480504874779691727669232799879333742447175610724334171465202046486238996850568649190532735049945504996466549876179751279223950896092832099407280553500309255383809680388171340234463185161861295412094606075261819708602168148406151619923039581533754967215346805966056473184038635212439887478726908286859120497281713943838815776680809007915150373061927519187164042591271502098331205212568016732014949842537399661973476095347904815631429692063954001037093384967318506767165029200878443703815919279429734148997548483831769966730491294641506388862358700554353347482282556222411796550051519170735771325312398901123102028502704854948063062962505512807859991396439037912497354525118362901739754175969168640559964114325086620389178751221003940044087138245052039974884929915872981265291316580943887172965523062575015610603665416046577106607017146034919253529257934098351384878637324960376806372542552499477790418038431884697665671841306493830833718205288425619669255553714990734213216073678225701867589137527073943767919964307971662602125076330548649814744731534756043553630857172005325351019515655880544838611933711896188364875649269767660178223023363121339930909544568752354887032636640170343139898221375935536636208388714298648744020894167753204982829423800235865207913833204918633842971284526903014689409215667870484161262730828915730389096505381165524402663814473552361106996900197291609267688314157994708405652129403922059133551178322559153124120941724457016922156860641240437102541923718146100170096097006406378504343005653832443968323872769976806669856920519279261398853546918761692185525140667697161002085239174417157398378301951492338832659730497089829491409824413842416833998306720998005997465117800484491390737453016699000270214866494954597674124173303118756076964429600434574511843500547614396364980283461618380970323447966575091522678034558697455220951312281798047045280971012794388432588652493012106273495194026202153473982367394810791440798121905213238576434111160011591990454085664811007039657978139295337316658211929177779850953529617596053636496571656112265543346406397381735768094810666982832404912935465516293621372511289103154333352748166569134777790232665405541967343534690767392255276907642932666144502822450108759611925584217243561256498121831182603750607872779869937805094591028555291155336788106322782731697367994175659268482242199117250839821076497855499879428021359799304534320126612260864707729872976009105010155800575430294489976660060883001243548791198704246901818145103569743544454863010750928310526419328498152900759119479805247585339448375656206226140811451087532594658147979286156668344275619410675377658316386247656507203722858443979116773985479146725517325668974058947459351813686131771105569590178938710783524593611329595260909623421966846875616057251342005906885814438862133606725463770706482970365251284664233435806044362233917588506509474840142900828562237689797012751855112011530508131374957762450671252574345936808561213154359479283961062589780747069484627824797896039079027602257121161291708096397238377878822808844678709726552392196606835934123514638256529218137611418842022275328502625790733870077975028876511065674079655033373059380409310849971859591566945897180616117224445340681329447316632473735524501305217389971858259303308916843230342056584563366720289572811564772708097449195672068502085859145422649527393616511418751703257736031850756880786360924824393990164630602701598851151152453349866967040479343109257156174813942437472112838303490227887584416584998874620298542865594736195462971034711921894144013454960390300042968978383458185854053557842906731901737672275327522293985415968657652836378205102311932080787256408307291739079378093415140085494211093320046788918754324486899040370690770229956233884523463446795357142817825693266834569677006472052713202634172396233252115885380184514543214148982916127730095558268905186509927357416887239999612838989110411240756735094396876071051067302287683873723119288666077503295867500090092179215117127940373100265844870530357410309767045227759963180845742317738495943648897152968266307807024468778680828829480872317361657341071846086556945557689589901776171841383197096820866927027538076271324794381816712138252559008580340133651132532460026741505662989814423612520731217369963789756100946772660764268576728096072116253682925544965326795979506246761906843651747979738949751576923862299565387226883787232661412493325017339243360942730593663683801550567938711938523325156392483447993462732710734646082977510877371057928829924872404716228852545956010392379886771758748656073758886690486004455269454325245101002990690803430996055655918084792932099211010905455570978430227619747576267470511483380080504521982382415426572329075920470603756741199784031322646235729496790292979556406497392632120457127447610000161603487106739811022161477417879727494228293407742995272673587884695802200416724956438688720903770632360907763079192112927574175686971871768097517973801289742025019311648574492531049235043530336968298031348807292390283770541803330332231601534826543619932107171460283184349311792663061776675920160535266646037082929038620510955461219535476844448511389715606031505427867072173301878932143816033065696176728706835745906002551454521233468077059848672297603534474892278613893643435457509610368654272593488828538240756988484851373425829014098404823290790792704396670235955520495623601040399619061781332309962789181080361630475341730528340965995312835041610813376848853844470300538731959831573033945727464517425956526612957577407384367247380854502452462462213736469327583372325202071251226681402856084218026209654302030176117467474462171928436205891198953471867702021433555974563126139933650877049751893470136174887882666175787594383617660107225520854391006601297728030873178545166662800548689070900038655923893747649855182132080377965467856756736777289303539813798854801117173251094811040595360300663471785186870862637359711106560277750459279553208129359090058155472713180071971346794777373538744564307424715287969447078106060188052397103756672082638690308885714786396556574716404013207372091285179721597733239098773332296203892615141935201066923753161275215882504280470595904278079863814479391636720160283258570668815751560132489469262787417767271027365082585020407559196688203278206591278234698781331778850293792222755349436835987299799521456900287985292987170591149465320705956375452344967245487306671346917584894236377083700255066117009350959492264230802545900444576032647641259408636586644061531623114696335460054889911104797954190399817119030718852123907047918353650836727364830281590210089459461908334555932850865518366171951728768850751812490398542484159031987166371250939828458534473326486714365815073619906721058789870492170551866422222588811958541386039135343269449768445540589478295746123780571422641493108662526066268592443482538391109773724158605126790998096143698533418105465470095053907711093578691708524755530364311206540824953318717017094537212785283211778673690102738712857097480394839779592923201594311613383876512370860575618590268213010777150714353047370230343059206758003546776962528034317305445980532741169987430736374633768805235583772843177189659307139974856713260031679911435525878488418152140137923892253360687043955702284115850630478340683291730248586979351891223976543097324893944961995594014166635372318777643011439507452042830343132309898170263501262697154408624734569118614219256993575395225662572107167210108097790071264354906789573261996115453911153808141180981015326505117513086001269735673793110360498368019374766447323732742729525578959991285826959906153019868695279100998362234976938232970905190113508263066986009603863681990440004429178512994682267167891182052225329015204323969831699519977127864433211001076318208673236471669360282241194987246238813670024140254971127181236596215860530401851663053283938399834815254968284897139608023407037648536327533775040255063279685018989656262449730057419251901456801020882942561004612596632425239320578423244472975841199205324542653273863482336647270487875156607926994278794379168915440575637190824103055576742322369552841134515817175699928521760092965642990409513651436755082879610073569837183134120193603623729547557830005382708268134114900171221213036792680139114225227850943547162835417494858198583055611481816367545170348493344545600557592328130390497463587815046008073742082782667436068470712030659866392012519505402794202796743550014024591376886500532884431699256143912260178834840044503420016887806090885701075787686557646232242081867274843850918669977129543691946667067507620860313282120436165338661411301933231024794894794274244902051818326447716621812152445620950392983248698736873201806460741148150315365899610450170482841895489768490245968419247699606677610572830417355949777099238559605029540496268993501677969993497391238242077928679324378064228333813578596230489246614743988185008608047532790566720768602945395375594127250972222512727248471781407992331405823368702977514492206002522639907414518676920962832956862327330690591324458213222135579515344925297618170600515722919580918174023483023445557308458358318002389431231763051001055724112748168913545498766471481112526217440592355327855979066721583654670192121228001157572835567163242886207248105100718061727616151846762224152468677187655841291632739130525826825559415653548975687223542691602576398013537176158532582220471923767935497807157824054127537661851051788355668779943922825835153580737163085200873884646022028437738663283310641337217894940533748637949918933797530181684531490715616893159681476716726252826233909578510769804121516953666755120849727112787466271301004955809458868801650494418572008979003824014308094611621119356704223672741524822613208967113278853383305666624710278915790785567754361195828671754215830087113754068641695767538579919962812846243622187638625567107770630691304568972982328294937941235266453166256424685921618372685391755093378466319166472861821039188380750389081587750916034856043048906410079369780817895612674653916542071180847875544415862472938477807163816300949057617333041109117659203959424510985164942378802133261583287068583872743867866268705301750020563713521497371501771428900823035623458238206800345917588506875929553749665136029248615101946476197849191604087952917716813745594370920472799857319506782422023298673189868422395768740535202691270252316432134748279616396849002635390060099755682655585949585086732363904147171696481628108083744087599804172398613155620069280233496529702044528386066443827095440247848018835459861791615073400728543274867273875268994181850398209676036178288179507902838236865283818349717148285936663396158877595127131033667550937013545912548970821252356679220720963863190358924904634709214860637954890689149660961548429874432628199525588931950173725301074824960342938488341336606915908857079476443232700015807774507103778263639844742534950124011220099216236575154174620649652892975074861896807586834719878933427673987581163348669762190941808360101524320385578012813838226085803155344381680042763019729608921005152396452153263278468011379963324128906820993254323212302749535209494474169490159922159934815960379525758077403445922380358174571142779709321154870740442850637050351534596091173632342625838220551126486451519385985705052896970290470843394319103957689863078785278124144027548062174209881555985723574291975097727634180937127699220343266359281205935051106285459484523690214751115645827157075343461469720044471612099782106825712532786563277703675840478906234230664999757408782280642430277079856522629671982611862365680451628141370014365468453138270356017945094906932303081112671784006077659711136055797709640671686385272149259599295647880248698022005579847183478300063817505044201454192114369475668471195866558449761527012976334946778318155194089596702885545228542446086151584249321304065452774738992877365510056365047307301883859370167174532315945932599249655480990091364201429579347669964726315083783001577443439545992309143050538427213680646118873415577419479232641711068381348422829538650697396679286410850312462582416694988299706519102464505048169510903633669400288278947134725956990362882190613517378326578137435181855609179397171983417180293069395174445540057379890247741993630311623295422581165299687658605169071475725926024618003557588290351109601177039343575932933956865541052411312699249657082786929813814922206969866437248685144894562289394370239443569226544055100163056056011159605995447847055640767037477570737938543463103715592482316714430336234207278665490900604010865080511563892985480223924194294111569339625213531295829870860079066759451608750695330021457608712728000666086798820122860732025072646361784147733905882107723368437253988177967735713790716911558396038385100660753577414821630928476781458538135703432843356245160765779703883564525147798080811702580661738535642615633019055258754989236786757219266521503720214774396482015218137708607625573592557987172457482676367121751649576248274938216802977570048167185945369194592959896546362471880746990496881137783058239483361582936032316425771957256562272136343057370652881952269100691777743102901706336601721361577310283849515560699348342088963195453059576822523234299381359571374527557297634109180811160650222081857328156154097952899697841848804058838742878385779295585589673059667405121425863820780202925827702381863086598250583663172714187442419878265609560516458405317485758839966790475464761448436764540487964449412976308494968260027782824221930239680505024788668140851984693678424815864190247650116322250251304728467124839646220003001643199855070567624716502031580099464220325653303324023181322386234792078445551266713459105348263800630472072576762992838739862033522362624378841945320384685672215877025162703503512207425908255110663961846531954582992958985724108861157676600121735967617845191018892219504581535156826793022990912334023736981309494311576610528322328857406810670175167893349764475278163607832165897622520923061256971429458857540323425261389602723696485169973639411983893979635803777176805322174863000996513290061158070157366294054986786238035888498308043891930330212251027871318033471401546781255124531199157185530237699758105768904446792984426793988660183949254601230987879061435150456728181020943605653100534023283871167422648261178921823643198907725457867958914282827465587879104698853676738284915791936782024957602764269801093748054288396101064078313782402556008179475905076695583827369934895612572552362225107072026468540637999469428964302160156152811156969096508086114482590756317093168234037140147887184928407561138532474742313286213592640931789133977093118096033030909800481494425308967827909940317536582682899228196870090261937221672797095287926311176326933233364127324925381049754624548191731806749789871935454128950351124494615337950943440216633604585729513396887078955583031380864926302844077223404645822920268031726215830229477478246011034873826911185101357778482113849384710173826355825350024724350895974578512318258910605591016150908443881244585834041365446840637079747893963572232428569526813397027537100855358342399077609498539759105875200811393571735668550028238941364650285081498926305703835050136558212698322682206146685404596922655128263495150193139448823073632186665642374414101916176848861230100632753062806020062750492577778346991646572746413748761621390514327159585672848207730581958898224180105152355060742063418428191425648318796213985793436867296481235019692372240909760908055285230283305138394669559689501455428404204008445397954666527554457549818846195688564569751276229734631265721771547552525072354363423609575844570674251162998098202561858006740365728201596917007740505002363387332265281215481875190572480203263268179439120021333149636396710118347817185147329415740618177116347533331038951860273144035226348981682830540540035987367598726597681858015949467501257777734330439621713465803072353087870289231216277277008315414178868007360883912566079736190925145382781727244819731444618791130086694015872812163313251872164892949508730716895385661774808440721159707532415688186113672873902619121457437384078270969987473320057405700898156432275807766899088338949513029326221961492777557812271597497982627710338188255914252194646697823378213250791049693949812779532878182827551408571804232169801481512112371386536099161830646889703342616786781084803728743751730826497779015827520663257685499537044871827947740459047447913929219551523000580864437994172993645329675974185472220356779697688377138144098499979059381933084924794229121908543043595620235561619253802770129449889546910925147463028216767783124808692619838631399100569652972000058516264082376872230771347069548253767983337986989412788948774279922460535221309318414584418133276790409822652063504501692038169113479632549415008135869753276321631995865067345426122757692234121104648949840951461882967044172830189687671758728900592809051285778707231764001249088503158923463829657006783992204548245247587054147747182063927632943248655258305761667277608787267970214848629381761036808144890557820285080653002679105120292333288386048357315274426601196458937529494211259968803422105860256229661334799779858134279881338202786995933161802116502078981236648636611207650521762130329018499717622312983006566229973610230517193765927460534454754334443332252491007610712263136669070442779791210312551087054073465933947930061670371860494339840663698835538825895958764349845147709875727983419151337903568279543292946898708521960765037377757855042417707891978875973647444451035422881202527692018111044007992645724024190323105816972333189415452861401533938184444953055048101181376139391355435894652974849718518125129057545614668982885882095261811953794495821416558578625934621600141418020906387864290861507606757340113924385124926096595477986808573163026656976768271710057862604434196745768386119000704593156721853409335520323005122786745851837518160007932228100420124225479871207350844177328541408415200393055319640900324874679739702773243705585385694591680990586194178036460252948379361980052920337458331149206824922915278951559194414004364492149125473916492913038843533062004768308061397802651789127472339970661380962802515521637733506168889564595109574055346311439311022521316910487516874318049369358391271003522719215539596020814109606636140904505117164129986274544687636555163254434355126749041100034920662785163030763507400818672761384006528856940803128823701794718337381534429885996557073164494100102956804922236688367868058223830592078912900289304095782717154461855679425115695735761949281089136771994122508265229325998667566636656332156316852330884459560300514208401098078624876097639740245059476341529816684148552843266715112006863217898641618224410995215086491140418068475419449823870434047036062951687332965210496551865161029945253990237030987978985650402395005396901152955621074053574402258860966248631134100719995051668856831207409582049034355768242387769644458699855693477420226882694640655239123725806466856370406930160932001598011789349413026764324742183479277438858690569142903911534055277153868254447334749342866898763476140712595897834547279566530244319507810622201125409838516728031362316671322742667803146792891318005967837111562696127144194895171061342949166685959918657785113609910028747538642907204048040973000022466229351976959376108870321989458206066456824090448124284774555512049505280684788587190384615712381447069730196486573365913216752638792456368784065025119499201705389496682401191341965172269488817436343104222430706260324165859007992845129508993720634438060485559732583678121187459038165176834050401838549730138389911264432253316541059149719671893231465257766005341816829949311131660130940899569996965119553900969952996784402791572616477764615060750724865884548542618526446591914610044319009573598406031814423280946601332555978386493857964537453063658565083740554867601684607905565147307625761855269183236532747822496794116385139550873868930019825726833360869563063430937986823336526132813578389146588383634340164818242251320101218744685072819184529610881479624562344359077845152698644389317489392469088412487981969751882672820654140612980725098400328986096692832192609535427994735422747912786227579869757554833035423356020147410414099684230563956095999276523362203939671591356481256298320707849792294346611347701239398274522451186108926500184935653601201496161121071317137396464109663830225417723714075004169137275794745034812029258195909650127788375873673183734176742031497248127223876959591129890458970288640492765944748206176287074669723260211105191248963803264461313021082221996033506186200879890659449391863165091542461835665419155605601913111241446498166786955195379292429329551939630243436963925360056622737619793299518817827414853001366654741958949956645985547841199808713547688104696506730861701634582906999588222780008096161403044721677142714163658835687986237491535948613033765498328819400096494856603307080502521242604396281542344390572177131379663903991276058296461395147096870807885250598620638220875758380434059922907603112399626022347214375196030050422371211933820852694549843345949190636613929534097364163146806817425670793147314142657338308518543292587031030512185079089239701478987947921624891021484558478305918967879101425494135740063058339394577878775512014927011729717274029174500850689858769322397349475255156139390337664214019193992017306991745001374879565070908067544833007997832559872957798378714923011742275051101542657455347824376371721405274244571338187650569041982211358622950413947880168947905702687627589536214461230274331475233963433858376452481150603877059884868645403023925082069043151105578878126020484637980227294128392246154520400275289266678139606783088402056017677446921919079699853793991488816911823537955472640074180112678992422336717070499264408552634174764653715341367036508653845568637167387698283011713237171430516107320394291273070011785235891931534951620091121636904079994404372328504427564849974868275199649652534288378742780177576901611725597039211963846490949418971141034398223055973420789957017566801910112573266804644974531573611869617313033443474249194603941192585745774089026214242885853065393921327968178246737700171075342354137489768945326339072469405467829963688209402059764322688082136076566184060939549464721208953181989815153197430731979864784326421025250156143552337004056783576473755674330827453788778375630072146644462209595079671637339805790999319678297994558513002102898360834607210189377685013256369717202332330434187482642540645457359001709507437616699093017888438692988713861688606158574461478153284422215634868011745166863685337165313713517019735882298461850990871739376117536235326046823904623084712577611725723390347312554875507983594250379660228394785740678833343515129657218037443894284196567716030761818344366369405156329930998708385791808759254335680947339693341431813608115127524864318339226506158944431351688963091372466458500437159088070679159800463171670516255093566169025776745912485983203895054755092165238075550955029159022677382311078848949503592310534416285357093742899800424271419078616918045809172038400121048230200165376590534938132778127274206539209484300674953036138092182591198631212977455437776399325660416440981382822061721375718807525734673147746178387646496797683961711343411041068608591822739514440133983370543574486879939010445788188208924653995254856396458804700011861659896776016176336555421804376648949734532829971263835871822464470464896878274005353826445440067198971237307510642807805821221606219170748445513412995224007346415587624006988343063880120128664240141527005470517659400921949678590227042134653432941163899368137962787430258808177788874281237411594623834622390268132833484515573597608507322637933099746443034511064249159291278572537008497000953332654246523723358807237083692918614315798236541314027834655882609816944707756867673929041590131293325232917688003369371512176492446955166792834785405482851221420367573630883611962777307613839174630165835920365375184421116345737177387305996481142736245553046751371308422652580569736544281258258942604102275848340007819472765327199914973106716755088912111640892560613412984563286256978022357626111206065031050925803007363346491196359346681556877825401891654113549886099659708291808421941646464341993142374673381755975513583317170560195948927414525732072807637270396562989528291421444336411874325095861474700758078257689877053804494201763722946224832141086145116803693264243855539193969260686675418536175207675041682467128243888715848994100365147657938982477050707329724393526956584373016189465542935036919478524667812567577469177583593769592998710292521820843629926747159208902009412775963405529755392019892603453911927715403587946818733156409132466522684214420344434521512786919135822412858365656902207967114119135969688854587694540823777376924084178872447120798469932920423188284858198636778052701328375749718021979448607088909447107724672267017179711041627959745773590357042368860091369753413501061090069678401951309969797218998519519617674171524242121679212495833990300549851873793212305591498680947225167629881851863900566646158521407880388018061537550441758275479279460935329726919663268943002097590001083628431827905577496710462569576818728450860269073698311701683271111003362736195661319615807264105288153910346832206079567640733960448195114588788549134686942042549926447095800479250366837117092165382864297639535624387168359000386551683758759418989661183837109620146909394620843257409069476371819857012081477123710627488143982119457468862713617311248631588146111950534118147432828916294698891429251974761190822862345557022929797753797641796291877921992654125312650109095617522765833408571923707144766392954453271459061783250044603852801535802828336893081006557512964475233218325395128431389953126079997790871930316303004431112657905674856357679446523320942660281125619448803633631511978057705370517211436230751238261362647322529478301451182510211729823762060883985190693161662912857272598911068656487966059475264640913238024689440566857517241474838130382445374440320909122639868833816952669179308897588400977698395299636142666176029149777206417951552823004311853499431555145598337659858155918289617362805239523373195325475889507737010687719983342453157787312401195862492816797619722855194039449002868306017250806983803438919346732435372413597731179059762491377923896108140125358489100181953993534201950703606036759103327694141779793856814654860343033323604334303138133520273584043696466994997878625595993783101953901592540017224125919396431628230751276225460456123485831688766209270520113001997691170292444486934423327803464191199994980767904114774213981664448292008637797967653514788913079336275688919556431442051522856381939638942737337141221431482361616537390269105082915904557673779122280904223863667295390760577784950462291381958653923643242269504738123902386869456216987766161226178114755193783416483727504560689087016668996738404565876175561434498169869599501668135604925079679234482213346740324385802988107499879991201254138069437282401246507897678632053173315532462281788318448163877425826892135176443749851723847442677065947943498934092076496598340240186842128164086112213061412493479294658818889978515577497980073727772422884021067439454465781081723546514318630853584079544208668144671584681273779195689396123494514290779350441375583649017955527050181950615299932990465376702919521625191171102538976253750460079566540308223715259664065824704193764525830059396562419967792906640874487940987815100485905465877097493462228960989256278404876345040655834482754498690148828725299815348533917684738165092301057648852258590884090845664998880681061030183841059078844949525679631465505768802206149322517210537635653924158273515809728354213103774621985752469102031423717896462985592679804458190290533497190015137691602178748214527586048029894704958698815752990692034195661357480377936777706907478114377190290830945412921684975667326319396391887472002100706836202526737828620359400812366047812177305616922153249922560827288365627777660635445749965654629039734671417029745706134555243215211840258535454359314831142773385734952742295463409359111991312997647163813081898157629973850042788929368723825588409478494112788290512313465228554498290522867331379165946055468237307267338973788728477230235702398685912482019145149885542164613865456447001917683070034718614262914792194317829568138733973142270240144201483844739534435102280162489318307080667190051378969788846746436804010889328931516248561140499840129095392720060017629499677521668921409012556449430678448322360491610263697860454344287927711220877987183673562192505035686861596917802288033207274124138586199780871736486937994383824615982117846591899717775349155242959628234781333162409681436896857015026724535410327884534576716739371963087556593696120841591392519033423669383166619407604339885341866776053562594383620071493374531956916622406138658211985669325207757259470364132071758113708009308680648521786617449154771574183182970184220120817980629604416854265602365827697358271137180989961082018638060744829282079152756737886619766958950309801189437634530251921053216925138218730230082527153501741944106650682569322849918571483077163574669784796014937710772201713317061126962475522428594404494508460243582676371179642171705164657362540015013335597494942959504367749477201243362245023962386062290678093573593206733011239578388759722025162635569650032593094003164620527595683701311656377071966387446411929858631473863866118572822257539506839375496167340332706846888358681924474103795524605824020283774512865157135562182815398314376834437838109860387332266526754061233878311066405136704188054675728256994587158591354021326852571796542216020829259740548812856815910185270756881233743373821451505782060051920615058496293545902872757416153103805743797424682000252312696253583058070301091669290738569887879738364716638791932668627966998330453909669025641384769875552324582954097407917744993275303083758641221584675056541977437638963303490937881572653089455018865512147425800181989967237601413861873687255274897772170776622652071862858593119990221141746452269094979813512312173646916660121807083123304121605003538521565093595805122664804477425266724844694211072842627907278651097426138915185529550279135814200898334638875064136762453208016603848632500407711461721064750698617464369880897623481760486201039129506015843962126335535930118742130379023057408390776890645660234929427018738730803468548905184298735598475417396027254794348710611772384240764390499976169331715494275438230707453334672235979143230982066004606433690552976150066213334577251389065034750721051786580596588569423753455072598494004817861067237262968238229274875300922125960057061036571258623757824564324161087331100779999691150377115243771488441986939059882425663676626213795887211789410737906099394147781446922737945910736355872095089011066202247822117559297401583579096052513754576380494368310024828480273956968137251306495470976268256640538548823351509423338591632942557983404214245785487075401657478775081111562620440825281414855611067915673314489668968509339636774129513735559962574682766857304842568282467000500058884120384008209647305496865993379629978381075606226699477835557267525035987060492314026275455341017070680593036147554946476266045488952601268528051075709206740946963337504459744828264845164720726296965353332684271398346158954054377077675843565601880655900986987845026358252539126134810239063443270277407221930151038034897055795697768752005858976313755017065606689171494866203211672608203676592183218500828692514724430649253111790160184408107276720119617581944844719819597201343417020351620871441651083454221100599043214077247457040132661686987131103362003505231674303058749789950042900518439827676293687901452603577303346718203489180672869820519753160923196752533468867088841158299198188004354233292482077862889659973414447064139673774418520169549779140732556687020653420081939072266321377866454820748754974666755005487998024238144923501708012032157486421908983666632626474988007129452666486274651354405376698215462498265226418488379915524789682063770453612263002881766558226192951951687742774711238366796686261647974670407765962233413217339738843194023216458726351423315930843850737036459518172128243380385116926922988571913334891123926094035490873977284471272975330032244533254627987905674374915593852421380243978006559728401028110798140282910242498156842330974238345282748533210008390258524318157556110282059826098544120550512840884769397273338721579776782918327182808438037622069442371878921492777508053004989868723894173388884460106069731093383180513972477472429785863488731292708472391523964447135280988578260480241453728125760912073092101961597161248853166232953043873679672478583097266957216429850678429179729197990210291607990513145103654023943448866910942356565387566767739006846759456917666177482397209865749519362526275785213215988097080301343093800149717281243960614514365011714158165085310584369467559215285745498151556858670299291962112038223643510342392169253078980458762063459484805032008620412455416725419937940676343221535343263219541865934128617578657620056062914975792469359079644569925683270071176168569223142790025526132189646881572584487217736711595631374755814507127216727556647290457642557923173325744074441291886310193165518606459993687326012888523092005735917445774437481086637750732891130816375221514463549638215405587534575729334531336088846973110156321856353581483915082692646098028256391212813955864353435285335217016108246451497147421615071936155800284485804200378343136008873424862748428706533736488738142983623422309023800684042948785526890857227105344612203267768845566030089828503867867667360960045875304657316786504249997315631300951571102469512396566703004846665866492661296811747861503362845595021725417449290253718802019444321173490649921765722116177679196735106413852559569794901092518299343366460860621740773875420179547560494932610157071699570295373766349663432475023868660630687642984961955302075336840385834018930411902575946030510176812457835498707720812376982367922811830451313129088042748518586064228462389615290608574148004037858892654527509157295940581387599430101757635940183835360513662753915116939274206482389946379459107407782545673576913206964933110572507787216760270460161353929953311497533733860068422790692420203144502775298784297516100432149690974457875418565270772716413809684379514348862477222554186374187689245371533923700100674447094940099072615545771072081031010700371182104202099561255368843969911941212834479210532765668990933510332774874018306821482295045518424747025974310908783013536665301058913063353428541860438896029377076429053528646646722912861839628822775263334607996567533386178798387277794177521658581426364848806065205887673140538837940756655151644295274420396387968753989779408243922762670732914488165498763787262442554506888955635817532345870269026333414798908014556527193274987010823927112518191894982068662508298486552167904432601646849279365537251173897409213707514935450316395650570716108727099779840080017928601928624189145478225565374980508465456431644877823714672634888284344082756057400020020010584177902848944226729589459843931097177052570178253740621107103268615409147050516608043730146536921829942639199375074833752008271863277983404104266364490068337810429306909316723815158114010546264470026059489431229714360060143866877540151487343011140562568383577410239737643618309359419752017388594383410095250155738667116738577675146984844822796616098233217307606421810924840485850959617331219704197085407391096822249276732300182851314683477125984206548040517902982548648964517593396509508183098806748075136492992227420590826212134109600927610845989853106832265776331222595497572929078931147274297226272653158926719078233064682419037807404827359811759701439514566322840278242757926774462211200099950264115552673916912511872927180451613427459215035261329765003265757645981921757215643968665749433991891174114680974034932447558135713787674665231516329407252699382330339126159521523919893552315902069071199885417282664153685965498731817227648914456327486150884404293754016831281824319434338744018480673910444120569244735889504498079234047613712838022031713675378181045927958538167529222970520497469978496355569093004264444307101268948957926628692329224790469844727569465119588328728948942862275684960693126245719982196947951099350534322305371172909251534446472245221536847928109437164166725516824538325707856577357235830973784942339748450866738499443784212477673314713165981384165086070639982826415704989744833524146644923024273405750053066206580147404051415608594676053493958042362397652717915026845581281857845911585940393361628757967257732052947563198593891691669248885163167355474583350186317523465664144694883504062572293010570097019176332842988392207970717847785917179072715666704671927553673105516878993822848029884410941134851539084430954774530184359723673590146138587704542253336111868035135171127292402269101864020399365623907161680157055492563488882208974312905768938862013138788437014052469678837243992703773353810723190258017111860775011963201470675253924466277096586452678304086834088433487327166329723215208036264549043774149598311646053418564415084031409463299917111978948520793115534818083660012229514948031235676684764315468434146214113660218613818918245488159061376379910130192537922633274029956679000190392150742581243969366407634062352063267234248031351068075769048247194742518841489748410332178040797148911735227276296386805049920072386655923078539066057146841676598253831494544565750538243731284359319853800096027866214832827638445246643613605397694680278433407661387066091250513692908489140907071767366562985968275591832427025491481272134157012918331516586753538590310011758022803476682985643106775714110114811253820283174826670641922765626245020248480056757074923632192500907365449976266606906145877046688163669693742464297159766857381802675188708639718739333759851900093938193817381921851244641983602549450156315924809679474831150948084458223079466974022090927221851847908316999059813808255219560114174342195237030243463253731901293870857663114174874066052352212649153557484121772495371321207837157940994406198274612571821507750732508458036237420786150371696691863087809726490985269146323581635098379227297135700277049185966866440807173960546792644061641607165126969602938910593965887197371512885379700532576031416332865489897998280410267612858203630446768872361756088901173457343135832124247733514479942925563598458205876693390992593995519340047610183326660505816041926710993446660169256490968584293437872049640656448634370799650924890053647380140695916854027378870214250176773259130568398561273256002155567722589765217579335297187140721448714036536895591111190651874747357544261812410350005930482779411345675314428378582511251080646368439390988851720069838123814325007643272489392817315583116281538372204745966636779002648043386615434447425724140941077757038163426477583589195586302777745501479185451716374773157774111126730475029268680716053646987415470017996634272591392461215412440350647052029096774870615239826360393784322746254520904989031322568606046265342582027742224915095064113885401833391006176389889248082804333185723984397576575147167738926572291677312888234126067527896873233556805468270211972946107254477314756032726138824514926352035668056028915108311722118191012804071296136166687789416910231203174600390888611774030379674152113405483301512162952755502315952459534793088060996293509447343780338931698788031194567222089943608102291464819460911689150828188262374090784973177618818877921200553046775990811426603327580098811689273430488914072276705002002033459084190896085915593889990684680901949919979705626462172462875755519739331432778854136484955207470402346112281593406836220233347655679419563769177134855555828819728516033038513142449512757164349579459967269686365489830755629005311019413835682599765581791380512166762691114239906042425945674242561176466900997793340423095868811115775067568858479743353197973322792103934667127236458042139031050298885309518538890845754503570559185457560149016842542900282802049761033665221601788717232479535430504236499196797343089569519387099264168595674952595640706275795950417564374362587572338819322905257817435483921438084516396348090767948415383382015654814433518554491213722021511469392318055128175108592208323906798772282152435684782132390919577211272847708918714804488081357790171080762145571718876175045902937558059577499329279863780602323684424194378398144811609715203201592949696689774114261311194093392225911766310230316708752631483198251046447670384535151738500626881741733729584195183158385267761359358464488232035891191275792960099453377348625870964547348725765797444468646984763606240722201631877588983341319297696215643286919251376011055621325456792444543431392188789639330746220101835297925410986338343979558835985915888495302420321871083248907163380475669864525421619163630053923885417007537177550869416609371156560650495475859415527634170921968544881562142784683029347377555161109920995070575282772396574458219522816599214837796985984204531419439753605524608508909781881500468438682304013113236205931701032863679810620411428670194126934391053714760873345588760919778584325172710283724983214232222910107630950700026724334860293771275863533055852089767859754396495041220947431645835783936285636995267877973064571999401947901695009483844228577867510939547528071750551766227920562829260758949905031058593238820765261362521288080109969986987088232276359521539024082425909482382391479837578195427293744376075339295416699894180683346192545360824622904765525221466943817094174713076932493151235414885676970044998019737254643016857288142178883865754201533603972440502031277485068480543135290826203080733184285336202862006645944764452790877447313657428632724343130259806675744710049130610970290035669082447919491870996715095875489225010904713695133356935266503047539206463690704143397349387793688128780691577385228020438192732745195668097375573405378946466651127501399776809326985382392295259494429877323323583784510096041942322061890396883854144891947303972486803438711946423329850897660427360494491482295620257401701919867485675174841686540996219882058326490702509859636111554593640900034838909780521692891359865429260979501579000863254375472127496287350181173278154237071960845680792491316500962585205230636878399429291725502724675049286706385083141411272046578755328561882310349719808696919840079126833883986654292116268695780970758870239111730502070598503205941012786309359854117148355281933840057038875839547035522434786036141701878189351792764240925485844275533738187050029951949569738602843688836464440619376537447839072908989938683876475310795579820476564063593087534651623351754870946656125413119220519979666441352131890582960917546799030394276776267012326031690003172579322972962122880311961679342927500205415529125793511032384134231178694270267650233085069692718166763908508428390645343749606970015593974913649343607535070693127463202214145244446583435734326426868220029185324187326602481403278243046176762508522851675375806495958111717290577843906474139426531463474630644208200197803786043271484126248571495868837253394663354557128050447162963059042207053175387049099703400305652049122533774084193905413762377460189359275867082930413259989995773269229683570482005144585367919225639088205229585388382697893379276239924916677452704687651798844501201411967117017231076312110605496310435607619011033129071281367877568113493376228047331294946260345369205284115878442480533447117555307153342987167080297909374921661746792528676409812512700875336644618708599021354174134353280892787074795182378761604449476693722767629274212225363034943906828767009178969125946414906981842100969305841274680373961444839424552059779663487498299609739676157590616160380131369991890699432136360667739985891140591804252136441555338295331372051401981917183281273436284992149689563942348345530220979151934614046036983358027559800521414729938532028336845754117167443917672505013113810144718437165951976662494974265927941275537321580899743700112442072345603853019370017059971426504436299937232711658973883997958437519395910943973812077252891314317134230952022138163564989470506451700775718992029022272367370820774734007509249900499369984362682143241561350541978615994065028164977371106815932916663399122188790116156218483962666618784712701974539860073037788824274245310350861428248358361163085442976341228054277454206327407619337165613276552856676878072617216209137288625267976062877398163267265454648695278153015546985786727294815799383130631084291622304542440727973585488888751374046241522235086754000562674445795543450133725303605302573463653684303794989155519820155525589181701172011530160204785167089874800103911026641151670427424531422403178772322327711861252131941643532415317412226916767010113258562049472777753228658528573264326544013348070462332820753226249955580819880495875063412451036793728034054360088478789607591917494038212632189270616420207748658326327719027267272089474217314774395045695856021177389388185282932788705809171227617373307813382399027116488815696335213651855643482318943187197059048439614481021912364897860412918373242194703646218433711800389652804547542942414414300697424807729298562310675224565826922633932474213632626989193213496964653246352243263878916342490263365393426141001702986101620731490850257938343095835201273027742043023168335355879133589465667961126033246902256224501817325257467987094443890273386686059324127945119240127468750296631033002645709372954606504838641033834397579140605275507904429385207486524191009876965170963214880925197742737045563893170077876291719534503380347760919993484156609841309905491032466960341694394440040007202922852855874267414625898251215227874826483084369072607494758679367640298777434027846615192995097586058731815685408136071761213792312191237265618714818900359297989452087068580159463204406583690349584311216984287844538000884503112609978955346868739352041733105523983856828927268889372487442562007498450404101970621803221069349798242902411950068361313801885852001924707878619335194698278902832608108676198289953969158488569365871296446603712672533710824395204215316122767305406963737888760391065195107153250581538333599534495511776520358672833510473677504678579560934861075429959968260501636236076904819520545581945491356327490382692436390478456087559527365927380011728481337142615910801957151315073884594927235918340234877142800137286297907311355201804915703524513644826258250976712936087247101789012496819667172333325847704394035187789045535621203965161183564418692521686471649157035037101987859417202230992606156547892052911826138356661829952313436492670433007498269256438330167340945425730058542524274288160263219175191368187805803278870356651142777950605194153289712886347474701457511448229777076453957926343472507992782212943364132966275510595100855463127395292595594132762224899613640458138178641668754501398086400321012239183252424834912322646197641216761397123734078040291360430473414203661145408582441704610124977216104890577690443260394397962231180415962781818616394220526314152410425848065981577911552868039025346877244649581584220362535047543885747205921166362266700646274127993441083869782906788715643936894169080856038815887710873726516111143240126354058987225263168264312800904100888556237106583720826261464226827040539507883967924085511985067414151527689084916626347298437252080543428267484040900936887576522633534138841209299440359055324714680330108030646635722886344335410599456672490214704576425880884982756142468283439006015356552768730189154897083993182690326632109110908868098341752541533539550009271294230255576503230359619451092570106849866699508602066279682220108707247727628452416029250616547454522015999531477797965589207446809075964684504971075833491785907215531239481498109277606937338514154789168806995912914324525827706294274222189551165075058721852062865319635930514848273162136023240141478468422894522013871957316328360053522659123946603027202703667356105657888674189764611507646736935616089309218218661566229332413019348251135858809442527326919298770903771306393848603544158547413823324040211901952760796325425843242376842161056264412047416781275100695273461500413255493549830227427921016912837542448302898148827605102866706651125653704304348127630413839900087332798211406265342607544881242929788458062474566899347542324087282247531168871005762528197381844582055606770024830346740809460774194733982097900746630249283586484892031413320297628493485816529043632450852842381974328444165840399799534473683109726159182500463034814063402566888670023785787599931304155004601965603009366325469438366090965993738538410620579016852669851264462339175555198580956481561574972186708744261803183184745699177887062586361055332517467565432889027498544463849370437989557158130422398854844494505405066820283755882429564296392586087901550314569035468633499865743059602079342887392327774230981720405472205342097707376265149828642998044329267289674272847512313270461953921037897335329181162314872855250402907476453627189493969638281600049024873196944633549464564674568938116853319198714490044551322688188373150267174022849084144021827449601285625459386595120367131593818898757453234923350125678224576435402301195889003389777422686308226520145191096449836652141523899176909988662782477447643940839997214184725811806089288132103690528309204064811720332902291334389356873788238084378623599886956127206658006400486165842717522754451516915311141443936525792891320524312498355370920065684873740747864946093475787032059109438311632254844614261950662062640273270266565020374747669024884778947862202687392640017491546123659222687152512374168678870210375670309877760967172301576172181733627015065534257438137985776232843619694979606623502453967266945803732472841543591478969759851984074998867541043541762412487305473992808101810725003006787664007521214165742948985858547346568339850837458922308133800089461650996323825757756863775144997748930577747520383371827952996662977732761047606219176405543957228175002534728467210727522735795923762236379611708247669677615876060150949478516744337242741548253505431078974263848999294035884278373605505753498021996492741603005487742806641528715468484089218173837745662235485908135505999558155905183294173900829509127195116584020966310169517801968644097009963823427210191209478789910820839275994011576363777181217204734421392279344476672590965263855370873197371165100363459020313076315593976653055689120523949753159906469602239491047976728323313909887154220231156696123502666718440285132396756299478527444975283502373962572325000864493676756742747677622823247949319006965387994025627967068141727931279167658145860315203870724031268824576748101822358345941945605266627553937358261546398736072287764874144265843920592753075475383125078342619472800503414802772773464021586803896693682034138062721529532688058059210457725702842998913130981113358797151440461055201157115466841678576883989502454758164130441116686870669463945023830153566619681869458948457550871152941303161019119592372477907272524478494337800954745790619917698541705134784947116737175915501220385916814654588679383790247797929352875644466253416589333961109480551590675914501686013635758174930877342187258374835465338310534597845784557399586155800484087283049929254977958817372813618848222046847464397136939652162751864177956270815624639719091595499658418519860111922419363593465906164335470547889460963220455258472013792711721841774018074971134817785716942348268169882989499032959821505353346073172481004633869579852447224570909884751102206707036344544635852507276554945097169660134012211745399279769411719352154708159473186311469391759190621398221427619276217813974762039918096317534437119629357550580909867608986159807449093278202169533380226308517686566937415004946485699429619936136785254127243426469754519485712084803686280777741514346080197669356238954287890266619795332495563090456898526337283942533934092048831687922890378476513762801351654382386338570998133625050314235159590294986962531687795861303736546535017585616574905075739303581996854473084485995054658459367611473159482328634688356203293419204721395539324445608453817711033015522193243445594688480562373535633560018691080656810015611961459115948502880186428267150046060640387437731224742122272835349136099501148763547609202886319348005924339673190111899909132257698975355333826801026573340570887005833996416512578925715786629355153701073402588694358842386068473629947598138983222283018851684312388649462679597721113152207005547585599472890376595956383764329293882390058639594191406862477094738838140572631174585505165736783715184739694862780052338188134493506773081559112352801742771641703311409929326138972947274437773318004918085158262679681774227994093776371973819265124252321955109370834578012276773105805748688736298621880663507422422130886950250817982620726655685127380321777423402239212797173968110604005274547293774235889629550474795478821076573953429803107830991126103529592044978846752288149505425338264521913525712948587434805723350873236173128987509632777950417045828088954041165620517077390279972159923188732521031526655104943812403144193787089916029961121344152043541001185374397740107288672977472500686924486105462940774455838743170908587096284944998898609820231575266239364436257311414113064458600711115628055316930465545735580939256522378630007777362937203658944535372509409467149981034044066353168099225834705741144311346752704733471868885826833509703635861393762332907305992744303296185767453878901189421728828228263421703592417386072607851622279430634289280878183149144825716539243317105413898226983215232113521799136024361540390358615674283104166883583850747701330775020395094482789305638645672250232337068761176961362505633929014972352714455282714397412385392018554720881563454351196250528404328692229658367615333610260631999433455526611584865037628539227272649869399244134404358598491069348050947364420551275114468842199075685016133928576323346072733822782624434779382355773975474323661069728684521334133139116061632858372272926437071242957049141795770650709677061959590554807599830684922354277482771766449063083658339033659758417819592810257230533340003860005138980277832149866472668368365920751369804883479039643861614120028227322751452236073966401399865779290456411304382828227447998834117254277998110474475523359233150401149974579474316372152590941099333588400458513308773794700801952145859578130511389469368228344108783589744861575737101062251357805381298616401179747099733655658566611033324605082343697772512656854877836585466669960785583135452484867665966213564634440667883358005165410901743057243514594964308301953183226164389651477718611339419085828519997456453919271232897538605437784450752865721329527645396796954967124491030093273485058626869579108645377607275988804864657959767058234518039540063097744081698133548097501170842437252449683162477423714070712442946440389076232737622448567802824207372453058119681011000956370184061168944877197411754570188283146775382779223037199440297285604374150468413122098309375256866284552308675501525507886131102931837049762969943018829568572463365888683078001303363430219782323898152646540326927246361698522118147866914733764837047891318430932787938169029191118560639331746168193207865019711997234010128422721967050612176203599510110115242273666758767412971182897947770804597766982540587786588083634503798026761348310025567707381397264511928120553752259723403218724787780293714404697109916615070909004880289965422481162592507771338828445434526042216719687624873963327605703312785674603143474389818113123242757356693019765090209019319142882592681600896774716285971099335250746930920567213470270853996765367623714370475751549367803812317005850668342511332995264245118389183967631869258514924365930862704633434804713467068584218060118331860969852895383491127705893394865411431422467761002151542625341854646763606483047564383352748202590582042026833220015314506990983969827189116122255228062791028176807726148871796276341187632771243453026269732468037398607705034796015026920484005326476255699292334666569845536282009944559656416825002811082143969430372275619098707973910862406760579217609317305297862292521183261985198105226105462135671307636564009959898167965447536337952925324384958121126738675066483537156079772942253825697099747186951477751894264633569976777933629280010735326991590404562816713167104121493203425979536856961200704538649980756347924501616869714881257258697587527113791783444164071578979245541033013849024251748818963921344729649621048773100473644903478915148606632953835728656587330600957355071757582279287550236008081492199347569380535283548703000631724170466586160158184143666370548733516252568373924046283074733301193871681262904620374409390019583492688284341307654423581959617850895052863111030935474907321860530013078941604319703313786731760057468747877089664856291908384273348980549756960939319147368797059688103026637608306423780873936713827495186701387840949057972252010110461196673613924570882736731511296788694526806798826879237150900034638531622321519874445859972075615402120183572319672908457978219816852705573223288424479097135808679752808958782050854497983357898967364645831287234766142821798786760903987130509587409738788623038755246469795728838257276525427720373042763974960209719440175566417439419049178254656483369290268004265633114559772785761255531049447505280088843312865211027681647306765083520254287583927329824553811256687212365201595948551012806492386432635512227822374810561838702432031436644690058515171185092730320166867290461487697457742064352292509845075574354229248820351435373058097079798457913347603872790038300288193367222265258205518423533705416151858901034697288079838024933637126028086659515830857867533731617660162906812301522187274106826582618975757018388470047468073219103916845910016580613204766636468119464612137522324166079847241310706734377493407926554072170276262689692620460337207911747225822322574287313217344622297834566621168388775439790030216507662807471291678706281065172864495235558960021338774030719563544686683110818011900909345263440767091512245659210101896182625838761318395501099120654801222751525758340384347068550810470772897004819611594540306943097338729668290600541580179983333099431720000895379373459189435905289908193121343433446181219903148285580244654993609591910715769139801391560764158114023577616210973251374822916541000456558197165778054701088000777008943240877162230036194600217166940180622472403071297316171252071219991694602115279742503736591032549715051412018493240515611080679902240822687179890887479105687459587814082858592852254543464639088111513742007466440869084417442951422626926225210464889599739279900867514856981788138454628884280186251180792942831994110563363525091069253361056018101222462194683269753781841781600629798919748582118885716706454611190178052158518649740005717860860900861350788305492166357978191295906853610908169618967338014270224072749392156794062191783658095974090587621389200999276329429503793422316175265645523484439566207084174712729590186836761263724241800610451148765316172539547708753043210052101652802624793085523144333734384544401620473693675905939469175526951222366518942632684943240312760173804622535566861785328900598876177723905050768937667762197905372045011746127483698472801308979614289622799135001336526142535020259353477568193058575366598077713820542478160645132411068271004519301432017175002945743378464406160765812028218353007656864796236344663859555088075549243547363014431942281836615220026381381728776469557955653891598265760015639919612226469306772607997398982403679028413032633524041191666768458234356803140598060394215071712409914297696419475865783674628401802804734223620652483390181451972049972819666288050114758699491264484747095762200410804968364097226824010518990678857877278084855771711415834451219531075485202066055741753776046063362894843454913206647101136527924575796574416555075935637528313855900089089074736223270375912737309320880196504628371726445375818027417544425196941101133742194299771528141067413179359134419222213837024639963290463859968032546481270736940149010957023860737294266551524261749620471953968414464372804289087296507927614250208722819637394541408097763843871178140953804347277055512880428719072982444815316320995056885585945824125686198522157104956302931832013136642131087302452541530647443337218130305630898114177232377497669225443523524141372321153838484048753334523060021002668039112976242017702116624953969089485570858367322795726971675340261988368393486158764435576054456521143855192490932314067971270509676947223402466543254492442747811576315531328430418503058854635106577160995206368335124158887135864572667702139832059277849846385481692675180182467406130635604253084129392424712780153253678924170140234434478559492596040546881143107772641030310445900868053575684979231593073521512970334335210914595059098351675529620011314004339445302261748345327839349778735738323300286250788440391288796231087477606953893036157376429796521735254970031400118607131035734433913355909698849932157847759417142942654063752495494324668406791024671383334027728364163163405303347921667587000531872191390694497272795821882140884865233715856598208006270198581849213353861304704117476258484490292980290349781543918868091976407089799500745175474441627561503041994694726452041953426620625660983301179269011798226852086609176472270591885640339306794712890563090395526091693991375502233572106216075056317665264964193352624732662330393326219195434001186340264590954373757001559007467148834578123984742505866165759338375967036856813123437871621381586762518603128717295080109120646820461353887839492446755027100315037502801728944769067208384708063135673814656187234343495876585078908580373129462056924792618832754958744681070980941698358041948974875155532359484846669985995978311571647376866451354497930425283044136458358728443589123258083606245308066037161471360946725898686789994932656684318405100224500020062362728783447724837561806359970930298160549195584155744021827247734163097420026148096959246238959352619893708784707566001925771737092811914103822956793334606257202724456188060492743856056641917411321988352951053852923957496040468525468341009340817406400679079074810631290082040662120439563203260413616308838649217018998883223626981482640538092499021160590895137179106619622535682673861052591867023353998729673540437393049888525664433281371260753422840907986701376504943615464318388635320909347637015934933768626788185202425316280896581570649903656464744111257732641267556999180726791747077559724071898337267397798601802144601549882242626681028582400835105274622898664867372931958521833589415703130171966545770192995923952527187371713020592729780162117185181440497333334910515124234262194763226873504772439740175523750853775948286636538613611022663814999998964370423458061503161187804378530421631024395280163708194631966744961544418235022354007278347720006184363086364389861549510099317612128491678651204384815725802476153881370204908848019226154729678012106202262248078042561887589031228685016779018007170982400566583937533173365564505657331643731514551105032338283683352333885939999927204205674522807749356179079333672772901610202530896026810792188032373433070305454642854857187746700661149860328289160342361210218199367864012150612043395693826241436349768708848475235649023108579666728346673994028808740229390483283480925516239067806911483045059573436333479198373560806484519413584780326070575312064476538286278579772484485652835044543309192690858482955972044390916515975053640151264932116765603201072241297539678284964870459605783522328167868743423992030122314951728649391392785188244952620788456537378897575005657498620783877688903451148624732650884367607311264833644013559453690995026868982161481775104287966636886144151153486828300156049453278563727463619006374007604397128948780728410186499730021511369553937259708759222407370027010645471851679300573559620532624778869307050139093600147547323224838816201528322498256201312719635136472965609588505399578507398609868024044124157520766447770349306570214451729528809074554743203665446715809188700294044301709401536183814078871230122995468737268789764245587149613928332382614115305717930353588747830212561221027769191693560552374322783025902119298407708387999179783946105321071141410566948746515019763500169604479928940723286297607147434038701768339327081414893723488756353872849739238377090812611478232857126065934743323489611179095313181650452806064739789206597247808803656167819045809232255904111024998080914460328170169576611754614786285590111500111536077506901588066077937387190313483681446982104910890372429879603577962032468237123147471739038787934093952152299083890446945226321955225217663497922779386696202081535719622632857175996125600708398197200002271577108235511170138451789677783318735364678353006357975025358800669260773735484359767922478125894584478649208202947259251390099036063253564217594325412209031193925198617556738084697878599034730314923179207882370830465305040746891324863312014835367687650826495969835707411708828525384584330604773647021511914633210334189773651649179556256897348783224524312004297808797890311918245477022144959345859497842996822825394761531741186516024194617461533150417837586049158864119568962125457931104586264606820428938079352586243218312188193324036047134900600809706527525541312083727168202577164022439855533586898116990731322098290345309710803937354815054153599769456747122154125877958685690117445472844879291914717388779333621463623760236402101598148698545241279335013113690361539247140864835157695304500781466360461237249234852800845761406730246213257008997605008800056175860680953021626853393381868114808956575463955849320389187507525853145130194220911851064727059230786726432209756345200229724183867562008702962022533005375552623551117694844316837811326757106354380408718794601761425618617909287375299078599136957771589093668704292897145831084981835635618410381549558369248183689952034842125552797557451119439265342859126279962067426706288386085371429149372111711439874189342449536281904672912318237845504603291205545269197125551191202786069498387054278884042717507327714805659817292361619774245895337014232050030839632165720004189063696219456929372618079056420214891182424886438893955524436670450319331128037874548660509701959037845610721014844306749722712627225038195604769417877467517905596567043644776055439854450026663030372012600583280789368837607424028062915898560683437469112246555903897906009418865209553025427293592155624173477282600244970797245305320818841053091634467167267036329964403363547673907282613209382283731940135664414084028609785139544037596706571022046152415404093095584907816261115994573895539271423643196763883344030111015487345233334298663361033575093056370214652551710021320759877903702580227382543708293982685683488483965661647999705240507675372967162898655775400006229715704757376402765365170387181343168564625399819191897393458906825152486084943483210680642310620589533159626773493483490955650989415452637608721012937526792252769318612368396158386711342818560513253038069089670042908229636546672587887050196111170231188433441316176082263212934894615995612360301396086693893048198734984386648136098767094388375446848029810858784334152382964711281650400407100211096587114757332571778108798748510924135420308389078479192757452100717710118785374271612108921356104399982072144840375580102227671331740527210565633484486300319806691550131807208359623975385837874822742434086387297982839072993393273417084996601101510458020258856608422449012905197574079876023490141228461053333978117273939423327214909356262595447377271362702569017753118941464935675332129488659335080337360664371014020743719284868465115921540759428674862121379205532489559639019450090446197101871105226721627785407174771296222884202578816678015201857801856211776682510482802989829907853240353148916256575755198636979549330146678369706920028052120423709879661305873308583771096086222517724916650182771959983712916732407096484925608306823054466405238390468114499984779875198461222819846223336173134192763905307509553821323348070152930134969688628786469692807203755926644977261646341386561976597064698113224536060531710866479531550296164765231502371692320200718459350372504210805928646893359877206910895156700204895967998503692865148787637181260038214010319978076915636403744489777019219457148206433873128010853955704092631456897138091667246180903793513466373775141069951526750397914834176239263919923345116101104971914555438619051149802207592122926152059376117061727869558587817256224487195922603403611574150304758106479731077848294024792138340864905653699277003564980238780581791136528287587914496426274094513092662872276415247064312307305456322683431565620697249952132732347119498717140652760737757795069047495899533677494111335504051868651479295840080971396691774573372435709125032293341064239035781639168851928958208244103129958380027463427587448120800087077062149209877044205748964361364289312481768320313682382638853342306913180763309024159239164149193432699671850853617307196085381860637079072690951516488764340362141862475998866913044167945066941325531615263763325026100263643519304188944299676649412569615579687743773578852939684561186321303657398435524971232258904056895826563966565472253667527814052127227179034692166432082460001524653768883076283494863821301889794050191246257824791125142084311403330808540818885189498146767633392135484680763700101241358338415543876095866848460513751693846176830760791409881303599640393412223536572523857944798331793289013628655022827385743318356353220673716389162412527876481484824282660095525759781038214860083168840138497672000637586370497841460899064776791157004768655184726299704859985275633383612035986751619390289815127042126561102795396351822097944203979761093236279761760936395121217056596942590844283246099162207966678889781882954288879182514499879840702345047673810331607573649588051966612524073682098494541335446579568071586803678365854462392595484857747198423704720100111603136652463180715442926840512571965798820768588375398787194282074134288772404407442880791995532430469273558879611653180613678422866469136224558429492373061612183811008257346885125461990444862251591757906539139757764575388445115144878498965503488188401402029293818491796025503993675164442134820665773084524067789443733063096168121618378109349742008135590529147140064916633386361351887182966133797522455106061336710597901535998207612957071906273114564369982438642323346893328746213169951309239068294813036224902983353567987076645191615673317044561676064928695617573517041041137615306168024590547147756533312365595850213654259813698740032125490329127715968414292109552374379806952605155152692470798120528668342023504630542365245510594748770844745971043347524072206428751330509325879076094056453938451465502670904281904044791006637399667037899762834036886694093245498788560423681928447258789350720988317381685928430920292450060796102948514579092844733326770538997307803980869347606900675976781750953992651548522696947347611813750236243826554985760888807230025342237995291114979622236840241743388584947622570079958698062974531330152010197604658506075438807066956173944009143536574976363448057858660585435395781566914433444744588206415612321244401433604897889712467442316795174020058512539563203564536099839979157399627132783219766785933991055376380598399196453514577798570212197404612964984813665951528247715198012812315277045862040392301593967858842693437031377744070268157916908893459786919681989577720383385046199373876133152441879644642530581204374640650606947510363213203737457099111321375277321584663711268744474070172693275513983283294294551116787851572675718541582011883384914956908569311845551725692043883992894649876865554061732525687320578042381825524577183192325764422174945850616934982747254456920827304092129305808710118940098782971938713379420704258428984467794397226379168920941352566033071904015334896889714746461212709683044627713925441405122116900689610974837561112348860158726787630176260072919917688899984513327219943443285783240663828291857494913608046277782945924857436296599033081019124209131618182883311932761811365813976832168409203487772652543531362682254887395894859365820820972644145392632991847324881157925018046572447875268333062886575686374025802915098993593171424517653891585530076275301788708392031296475276727318650634440741933822116988894904058574486098408227739092020680571704377114548198345059379582757677489424479422725071950411419610351792155128836585055808542801846723145918813775100538258748360063194007049512725480937751277134530297011958218313094539020371685287152296711307265682398053385721534192143361433053709775089771116033841658220708717117109562150180482436013766430127694088648405378797677142982741864759214228373736183227861879991737586060947385354295863057726122866220296756842506779168401393045554583717106032874643701496406768013071631135207518466962395430818804103192370638369661560512076782329716851202673081608122308980974698898085851207392389481765035436882892264325914323534429165231173850517546610482313684225448194196140377682948114443108336230861465534078450807187010529888213976972686130998696164415378867892520923456439770787249737895267296918186051648314772638553993858277893982553419917624942179197685019422121617721397630561450327315102726877242205009412030727344405635930486022086112374344569085246302888745714676240855504289980570041152630515873559644849460875788797493282721108477040212137815325857067498486869633576014652197083160527488233413852128372279803354649850309486401220220502704241776281716406549763702992878265153485394673112495909539827069274807347363761898119583348528120780523533712462856836750332450834939120304002146588193727935507416944702590957785771895713465357474442705451827876054617997692387353716888318108598000160216992572269364181348762333122675222737825048491786362555845485979313320254020318951953697730404983837479093129135687310043485643806828225249164920661163896910344274585473009806792944422470628582051306327295408940994563203904422473772480998585596583265018212831682829842253820740747104951207217500434215976892462260076612532450843401686292141097417691449615423490698413139731537723302355291682226891902018494686179880917226984840066942707059786416287049026000659161310325171780146696522743229586074927149704595501921614367787249638007166382375975942093648255763505708768856310484063433684365713697061131114126732218259905335324120981793468235770525057489913350794884327374705358668626207068691249378778314326991873539559279792984508086165704664505337033708139383409699719818122820612434900233546328427980152570671428685725527273204089331831550121970447827424394840544741490089205977901358336268304977762232743523909376141003591578055352795055083835745062327954347496401817392970302338862045493924796119312057020617964899563735967711767084837582439376137524001917547404044842132332434022474602731649197346329936805824438012623011860013427073171064474494473022152195363249639574797460622155818578216374472680006635128349383656985251144590009180939085512190260513655917687749316800044594426915610987430412634679242208274874287051595223096819393340949832450761357895795342581101430086523519631523090496951780643036648666501259849519201260723007721550336029583537708228132220323390360704178980071714093451441580313953049399702467180409426268692220337436995092984325841369760001322477232393359796302046279738014100392758329275423203528279874324996348513152233840666981015721665724036646083581314868025582614635626849238722993180408875229004130239769221848820375370298454756459358290567162682896019103567643497128925083171106491330184089811728634122625620209824405501666761194720960144525456936254672262949228900147412148463207509987311650311265006399209081967817849922232937260490231939039511820711238874724348189529838952239134233701768544204415223432333855427683950201800020575604746218929517440376425957562113269426558048636371240205267074668421109553095030636522145129733792784659008378008266356335855160869027776153760838908664594646078165346021385119096820244119828972207075564707066346975502912495761893551279162434776002510484239986465935731811805256482765126875276329122250366675860975949332916035494964099125463910091100592270204619182111119430945767317711143789668526358302922944738565569252380810273152546323817945469227931883235782426804524956153501224843660526296388104477820012277364411511863573518648817933765417559844824881106667004039904762360394130424313942843098455661000283784351669705927668034362389471280442032555898653651735116646494663407523845787162103344922179977489166546461369542837928821269612570967288822925540298033607871874431904552011911829774611825235476784277930743580316741836363666842328753456404000763185774078867848559555362467472608735931885774435552223664778140822824375441605546346113061567576168683671747351036424508551454462448920752060421588912554791519358508541936873491084959182011991842251729728711488000027278594456017382710505300882061603048703343149071339102753365000686284893979430478076350553569072142537737607483061860965922772712800938320675633122312288611866589912400424432141032410612051500103948455552498325457967807512280075906449132320863007879813775503161509328998160983591016074360418968456705447926338483015530782176674212265055126070934789965502773769493227050065881252167941619647069249511398231520155085633622345689218567163079100955792499801514043867585594633832037895742947779389004962963405502412653415562580632712526827111334452126140873181204128067878883096615092524804081020815084317293895575106670995164053235792805527458550336195545458788494484202569467168531357158896071969305250783479504670261915139049851056100318674090939232386609865834328058527801381187696770785629559401980231350313704465676286223483720428907765001545840669499423829289841715927875144925223273676341919718316084378918350754216758562881467958897942654391252537158011375299587156522192779893040844745931285082097876321193068226833936596144133956954704618645417260846529246045688543464912797069801804974019512430189853016504701514636993465889235552932166557411029771515052950392350593746684202502551597974915183424376176309493783928474073708087211479064925293341242773909973209119554029810449284714707332593633012586785623509670259337542137020678536692611703826984231759630141361875617429520940868931627376359600949684174372279585619578298733542820877320496542411883608129703169666736021269596047452509547171685934662899164935172988978564805305052280832509890253437719174616955747954362551771463251403090915986440555139730079390870575648782105929530567525597765467252605396425876276098499030953009373603754351691439386376652843493792023626159914922768532745323645933249610851736267227130015455494581700727059626362243127008241351851463601876641717596107329238718864297723655909137850798002428552588288967938697089714624608347424404153357940138601913671261264893153758722452571649854376250465884662417681319291097903223138882583400530254883801667029182019908643381216066483036070656994169312606491074698615157155781468866601403793725334256672790702777117394193394459453163605312636198798004746829555493656692715057223971411716907802320814556743246364792473183751304263792969837155489904162585444597685154364542089165976886537295189302210508763662856554951978754042711522279322568653563437496964753474072124407056377179433448791766543446002495555844696564621685939325060681530634774113319195635095241367814468209312713178361561649903160690281996612514646143325569619264155201144896525280098098001293989057272280384463216850527772243391308395887436872977144887046222744538839190191088114321657492338613709202569060423321362529329969014735456697825038015372476511295607679949277237494266370786681391932544493754415788988270097917219084011022455360599557523725530255666963277323161788396505601869992033915456314313484027440224333704299111482942020214667225178038207251587667737280743858329827472745550348379136784066976424519647591186119303531284281808375796919005953501012399416440282707154112961220353440295570980815974985004659011738345159259280788419779604206216121130312620750140142748401296863823521118901317298123195702757815672719389990066030903479574660849306665052373646549236704237904508872519850999743733335225027633453023502275859467608893259051925485392868804821745686223552096664093382179921965475917605526794635922981497345039869562382734392631152066732737590523221467713086816568645284014292128466154876216201114146583432045574070040592526861192078275725435599375867537664508926267329196126045245939931501058058131089545346413678761190652099788988820472192539173967305489059629526492628191641279439780567249071976146447708612572823011548951541114279777577102625467882390005500831870544327816875115458515130827690984300108274286930015029073373757857245918750262380620769088854837653744077296978581181479312451491331059940110250572121983760066466636535528019969570414095621231109989384125400172858633758001609433004332110621435033841225833929048876752843648277596270777321678118442111466317164189995523046851912066761310767384027740355734313626664597358330929429320491225122793644994952891692628947063974254759006527220559735245609026074248504668242816660201729351783693339844100646635526010851717213236670246867606974121207238206074640692107190577202282380236208292180286547586416862566491535861831539422888897663738329376673604876164258512954621761530375383404873811520486333903802637481277560478442577232204221127864803632813529066398935689026806220370846721232018076873466651028227553181873540491609803056243364634544849403975936095898568182283416504328724103190923173674786996551862827701929271255765666519286940353982938480170474110799738316141162847481046055231455469493644360889838700113913053535833210416940157808641670370161314441935890534218338575855841844308384653634356494137959889498983654773914988450238036526967029732469100535537875882920279930155137819973307043730367479803461911398524596261084532380608902141703091753401221793170225342763949065422852573968214439438020552870119779539901445362369611156245404612653348124252152846709712882597574933872715334698176680386036063388963778791783425335433634565145069645706228762821674375426460189452313152265148176762268461778428180722885309933201133024489472279489062737135503872748207880928412212039443349717214320108492199463797240863056751695902870527824145185006973214763306393713784494685329146528536107657884734931906503307381556839564504399020680147260952662384312709133432817134907967851177379876370991063967769472183525601136054765828421482453566948727022385880669563715807959326021009019192355248300068700381766191273472273491272478517652022013638502101975272939373816586337407078379663379549439851774929052050853597322058672922271737828178725013050241114831525761332810646030050615496490974061393655100295908954800105634187217015136926630702808389799922557038558662135547705765783379171937519346305944282534343957608787428884114948527359793720327218186470305931971008486221448287984490636411936760410016652661656172635343976438623347864741541415724274112644724738643499873718224529683405195659721005931683843791648020416883503324799345897254479007106923033568269448511831699369071580425059301066348170545913408812636967009906464123642061255898398526181448826841771548476643922770292494515050733213568620953688625439160979957340767731371041180118420558952655384104355210758765239741542500748325842279784558459908807411650022456913746689167107150930191338088329524565808582288492751982487202311130185449779299867925971618779321726339166856939819168068339747508005358827453717458259185212652374272593956222485978759765432731614218021451177616114836041405183181995868736100787447035177269994277683738663836007296066836433027763744228667465820794000905549553135208846912157204868350293921652007689284678996016200718033112469542900890246223631089736825591758031890194191858723384200508493978583936111613282059796507125321632119974195003737440711566531579513015585546249780715580784134795046829239180647390957776388404442184765129491873005902136478166728718386972056568442809056367214464896263597072040561388027815889956261318352292976087399505150202149027177822437411014514833868240264397299013237941874012307397066950754235752619746515916128385421520907431818556871297246293529761086207012392190803971491968235665582515736570006927707946018337066097038850480898848489255173055651797551371089342217420646329582080005744088897276574056237110800628459017834543062113077527244027510353245231007945593107157062791616761880825418555993913227442175675516486179897665510372300067453967738911185940206292874527640111153873215052872753122334768856531776176855549364593940212676954049267901096137259756088254646444398681930189418405577069212929222791976208060369747982525570989507498674058864391655579249252327930863984790709707523291870003648810162907126765379394542120472075452206626123859451086891478007312588738498593215181149149619440879975964355533584760313554747138468748026362401648247405334679032069632415120387811725032216012992698260804080192956821453952690244146876286054336953621133872503067475778700983770778136569211178454747813978517369361160554245119421114896454012335991011990959636618896304029935846769313572791769305834906500342328351934419810139339871573796603042449710682657664090182466206912806809973450912039035563071702045145133442363262953471957998615666883719582165193858424734568994475189403398613047238906959622279244106118211840093253594345899329806604738916270829833513558605718455697698975762665933791067479203605031358013453546697236611117291845947802276715348499734538642451754432830333014215486598531908311516475776535168664745447425953626653770561866761234829379293521751379012259406060901156458790132843132113657259718000687775465172054860516513736972420447420853340081087174500110517269958272786255528347615465752596684119760044922591494895244615756153963556985323957665118310617034270969401709750315077628276159305766816199448392816498295486402570726593927597489039618466724508189673244079484173978784682222982107808466416852063663265013501357485623176172467335404002211213636241754439447204652890806656659814454582400382085015982640748328239019468199242607989838410761122156681826448874633373080499019083616172770250755381006905163702234086587375333851105474678708853090327387942479777187687269637028550366323900348634270748741770130116871807738757768919220928064960339709007575836016630253277514299961301752863000948446308438264867259584894944328828852094235790576865129707803563022603984325315273297970858950406060197903931615809483604236361072656014425364286976794227107354220467319969199505540966734906154945713620241625217682344504908669734936701733167750322397278783970101255931317677652674200518610278030948128205857695787828880179383022893981015751578003320377639179226954232722231206649831111294193719740190775540690861121873068292303224558962388834560051298715913370168018068043463822015015367965694852898709334388375711390114740304453929278899434357875085956231985124962265956356971572577401802002870172078470393341929520661633890931363823418481209423728367503225486744321621338120232322050687104209174616935905086958197350557238484719369013139092964137526876720567004711388391826598009099210831960575000772369268860525681499134510344529904277138988562136923243896088520070996417069296855820642055938793382891414657808732367212584124722654291175419819111817598597985292553188114289720182941261689731365549974739725552880446561016449585632462152110951511283824620107943266827174562487326392931818933414445409600362692463823226820450481894536802523056589276762108939866762199503241970216847744623681234446796273100516864624552356485200168913706485854920437469831581743509949491781639803311614377318369677901218769459759888658557139314699456143326819610467790402007646761511292053767683516835288786147682479201428476556151925454889444851414496112703437921466247279630486056833597716308388792075446028869421979085199038196831121200970632909299674900198062467725508871738760571863783384399121092874956865258553129327631482132195458615786204239706461982064645566126506007463263076265542643764329200296042670553807300772554985758531225851739116429451852617174633093312466457677122572867114523008930713833553390450520044417123651637509769044471505668945872522196837995247862258163230052814310841146067672610584963166873272596594917396883603038282748294239923714659146229297340447683694212098273156914068880825995515006463455764113610254366695413734498905745515324808324735225786857421983848874620387512624607251179069350020665629448922773736979373077250513647527823369190686385406904060897763059737172171010046061039982079242282045406104180033176539574679947872798416459981591575114540379332685644269988050830356054550362080049545450463607607689413160710281908995639882622306746809363974218741950862244237699706704218927290804930568106539222203690133709259340547579690525054084201291995963690020058672001204823372285282205800460729469802019070063181189414264628845088715904828306929088821672574191868886566554654175016986769373790254163522833890858040741458195460912894499289827799243068121082361669418309410854513133315249156499972426395421407054249341499636850320904323505149116753077997765268018521988136432106200602005737421578225045881005180877044663558339649060451639947430922874997508539639330980912666012376267038459331489760407509548604083860273191417740062381324710853405656355234843089081807499686113158109913464353477433916196604190190650628591222375564876161429682091263497792114864461307172269844381153044228967525902988100038830897623458597677148998041285428216331270324626422221085812099514751115648579541329269702678437158863889418871800750214273032094452734300351621340080606800965341454744227950627817332959250413184380294911570355641738469131034465015380384887446578267764020613129904467525499453077491545980202473404323922454488363294359657282113887610449163183725502101257628661641096478459317436382070195560663355955984710371285858379152791967420243166370790734216917958127171069772863335423229201203922164726446626642058453473040986231088539510689101187326408427247752747647525053928595927666435661732116394162065093796113579974871343065934017067325564712444617251662282146879950502912351861230904825729309165787205993410164543997185505973157593888482960006384751357601613665347908056491251517476895893269091565652623787612320762337424711895504731619347125378192796539242761599741735672881768954595429610667993015679780086998267405676061011054771591365046774981873774626318448606060769742179191943808857248736379218240689546474001579041695593433896388038319064576784354220233581483801218611994749535440430499202244509330498716224392291167077555251759606246825742691427454606185352576444912532871895203847021407176834538639797993816223465978390875348438669950735367161173480465650804037896117959978702300535737122524302922038653277527212720669794790586049320632134148238041800242936885338312531880961823649075627417951107454969640199344517861104591956517570616887580509183722448685050286242547894045563175782885588022508218418070535172758678872993156692911402044973366675860151365385727981918155028211996073697156922133314343691663843482098319143433170347757549580028460527519785672829562661194057755665474608038571231625787760594751364468713549458088593174034287500437208262604647330566957742966966150702467491669057649161999025997584322369056548611520983405995046725924442541597522032225902842439670270919124818784702984927776449516090024027228724900885931638377636352764529628639899846818087594525528286112429597572641644367566382778490921535562939166099667975175441343179780746728506394364053206249352879339707085549754857196152270301925380311315678522478603248000165728906559148121504626639545004485681219300168533313154884829260877443908223870138497414840325937650853104988040630690336013803096843182523128928607288930784514453996465402397181501638627709772911007298383767796768869978790227580313772906697876706541023733521759078802544181118152236363540349574476177888364953395298620725680146111090597495583048435234025184452702000239681114512375842823465460976593370568128109189844216179594269995162733452108932901056091613311668784664512086107772179244170541811712036874084574852252686488771687581467663732322937981113316916241915873820091915517659877173340839784049207425551616475577855159885569488613065582029119983499556547051014226087969534477753814297118849528799219898298623253719474389855482630337970609373566667202051499359517696088722144590541431389474060762076516127234903556789540854592521311907589133692518710739200216592524365532900389405974038189061174062214569426932235912617073830944514885635704629640672615910719587613254440289959625220569283548104442043743594989280963504334887110406039698226872552819494653948383717624404688798052024942097457242709810961517854678422982886255472427535323910254321941106874092604477101329880168077334979413558577114159606131942952525250324571413056959985701943091574947140113081601741232206289514956868954511032510896622814711412534091006557014261140523702041588124248912467516876591940975048852440396760238781381809639343865440491725809206489705697607472219468905057743606405596052301270595983783357233207614016247662315424563778944282611390452987307729143734476074089440145297321033997126173605273777667607288005470504583431466974726477122219529528439122784980606724155451024239983755096123158546700496979015244646163902920648259742817975994084471117081838341411415432393783821517403098449052757456984189795271692957938072084203234904200066241432932640868663056071065151022733535110811359796888971986393773401594801355391262291105239304466462028146200412715734405522698720902840710597634596208260261427156731053192676260138537170769738644156271840254061813761878718012528771147410060692433717396902473369707119965760789599493156876559770862186348657129501783362727432561861331091423080865968634172998962727771472180595901004905697264664583643078855015514967226870236192076032446212762326132069668042386767965045853819592904514102407180093089648898221010543894124345418030214210602138198370844024251838682636974609503139934455216902033776619600797370834145476446635484385019753355759275827535020698852539393318284471836403324133869390289505454605659974276883010086498887001153773051703287649949618072434314660909123050972212803059096081473628768559436719389691984614865831036596226309907865010907381968935997611444115406051621933928482559850644139024665303556101050621306990213607919078960423689621294283135818789988306811524398314139750514317962368851700165099065059302566398420930851126247176482074695317530489614741682837307883109799396928996970814548293938388415979837439440971710205059840754714323128399047774586653623770449085325496455322268836056407607082310407965813170386978325892557504082472591961861479088570121999712085008318055941386484177858725145807753638522938769481695380825976126576389708601042730173613934932068369891798628580765918032319426802806478843761015195945900157098434126385839171758750692181623442745239128997735994572374156299742810274128563620771986680349712320375815835960452711662431458703263430737668678329630485412245604927344630985366533376172104773939083262153021718933232138010183209016353777476932636187301438397377687077903989508395025679505211477894511606960851208961394794225142018237261952893646099016014544789621845587308610752447541048322059844143031779908884040077519117600040402496387844354884546585937104501430684107245781298315203310741016723821614792119874656136972127756304513744380781904341199213377563545939660978459107986585451010444487162822235516577937875998799800698333808395603192152139019863959993842488631626924326791244531923751624460050278019100846686947681499222017507533810040743532221276243324815669201916641811522982006759359308314397883674672511556072284626775630561351622471975285980672292033251057674980585507318979790958441735837511792925734105788086357545870108220872347180152619766266721676906544505687318602529912492533288442936969445682334818583355246610600049908274127618860458067825598441840584239934531880470883121923519147960855119822073471937927610609910841851421245308763862610961590143419955298397463969769777764856513690736166020348005235360942659888559287940776313921005685361026642933060542127007311328707481940401373871365393149838118538842933388315081951417259902319369910918762207652733000701757135437283085816001505988364924887021510161689986769844047271626769593287395970047640927606239380865196205595276108275879225364285736344480485977463762077124939647155572320230491906061004484688610971608864169071393109196943494794371952295620198668614488124457436238644268219136437646639237986154152066407634510233824617373797496017255934224725908402260976956778887814091222181949743976774889019934201077112565507113397364355289107275984192874266921959619153839802675425672897561595254029504346089074017772008557299310164365071840850462465417293775763568535274115554769486154708162759593626638053114581886005156708568014592901731536058469306339759332338234166177307965485186862636740795070961933047112574812222797279194881131531641130417394708034301557115868266959441390025481308686890335569667543319798646601887209095560708085369761017358636795125439592628743201652033004853273139454962736050149722096120840895305803408071351313887055868085176574465468765470550042860042155465496444740022409729025074069608993182746766144594888768335404485421800965560431993485695775616461960351177403661537231400296065309317814845976301040278559047951909309148683170118928925565403333868252548661911003249048009639459683265796874560720553023336423221297721118262599464244137202445553937094042734561091283660709453144650721622957205035974619236193199317428279754659025386469834465473595282969788036002386855432721499959267870434319412122454579770911105544079358497890285415530659131646050849462106263987519640274799930795993591724074975293770885313500645561596844691325025862056107422410748514843066337933534995092326696149803189194211713877252739270479217903158016080958869753011899616793910156339772643335783943749515914407514174882568339823134445417175813247438052830244874124076657308021039535332592356149111372711727199978124985868936724034116047783874531121340394222693175306474247581210279434346394506498675057037791640605228992791600214272085263825618247106770135334380759667818485042274883753996159498776323198988803945445804654521670356002582544694933488101002722818884493462457441406851120184105035514627450445653820066910346381014781076624335205295392069911277028258793709703291980784777554951136588887938125372131095144459820638597775513135097454956939959474222182142122822304463234756663045511173815345296734808548701601545125716534817450143424316053052355672981486596151207612409296443676137059694604868021718116694210784429099056673972262332550272077484826743283416241070920566712786434738741667247733369978983784113005064038811436540701998332129510451721153303925400772857969413724412392930811594470601759437401445595827252324585578346525932542997162706947381861756660650647703135669788245788027753719728083592955091810532410679658062617209220453928784703084873055679940485936372109162781797243303411504327852050224312232411199610517363274094284858443234086911079913507642986225140418410701265744963860101743494138559833727785087924972207204633609823880059986162675189881456761541320594594460335780618972343731268093530119846202885236902655960767099013452988703714996670499768766390536623873950796950546832191267432890560139354933242668703287158535192355970155617706810046601449229787068557377572193910250692540040056842170707943559600932927783912707625099573434900727132261629409714321628532826673283515371601802782957916183422389899188806997442823527551983287343037942766199463834213020059508175985342507894489554377165550066121045400078195873966435443812857128533781507527176449629729396711576832619987796263368846573180868787656216793438919066749790633361543764148002605317479621112346628918315890963600499115599051723520446457321223035718302012149871048261237185827290711113673545623565177137186042617792532728860620450696627747269569689999036369102647284541119494590315372751303340028011813875902900342517881468321750557435995814931724487186858581648992971581569823256208431479133005104688064444649190988952640777561344938812404835051845316056736528228265929600582563856998022117949532816014785341855102663400656350652457775339940039348931777643447608698733373415923604462477835090654820321705114667110513358527922423554604126725569874983878951452221760351970282660729614435687072001207100736296333862383727552685550022216164058119584179577677861848932359124570693506165191788919450176530540178367165014005555925694615140548279040490783692493826635190262641890283882678426551518134994662353521844225797650817428044825324206898924340893405105706121182592818977590090930734632566014254178442774355122853749164055041396942060809570457290242426367236145227577577761673429992863219329891736102220589170661093257678495291986373925806208625698740217257987481666870395636922421746465778412621462110590970617137146177881684499147412144285924545019170071128849171849160546671342469243875050158621760250882802856099705986974513481005326407257177308080239278371325330557283247396630149972015293974313019451931157717653550042865924664283843096864583116482894820534145152236306327276861922050743403597002466328738426053641124647555188372303475948188835291696262417277504339765940818123451439109225228278745546164174431813221035395790574815628853094239339054068238226423118561116791358599467728419473386276058942167019408423639856293654492565946102225409930614145598558843715581461972523740266226639441581376241585272950881667865961016339172903522049904153771844982646292815919184451885380453925254971504416488983016656407762604400725752005926870891363414981779076552174196502359368888380503804895421117402043480004840544391702971300222103616361167399845472597816871611799375887743877230487842857199789899550776600421766130272455382837888779946391360332304171522558260569466749744307445976128899595844033163581717995725704663412237472388249394455702767612747031862803489433378968631371379686954769490200981252755976058927870284348248929944924046285241474115964945177331018959118439343636537333023055372744821199432446227941334920250022664779317891078046708401326066357447760491519915100105883775607955873329890460105343417729525110619343365539312470377072720304606968889877465952219494419685241860318814922625456836963961624930492879509362740696572299054894003371060937700290482273212791856523450035706677474987024150162378253552690159864284295277365797920583460415538144856258583368793224139783922652550500221746406909846948576730576390479611549354483647362130018063164742834341904751973256111414655486955207390925014856887516979000510065566108897330524989160585963159668091895484606736928954592814850207664438802565679261313264884644828162540498363044186661375990726514512568404950478799281386954358622776153876608425853036882417602347734535799234552576320640026183695927302930449077131857969157363582597670074324496216901991689859022000923379174245696174247540677965884286928653594188159851594172352833381288019945573957727034261627163182639237900752518345280292623660307382959923751215010647504337438699330711197387235512664511918130952455763021883800224517738508172584603814924508720020221314863923815686904466746874098702565650950800817375262490012776164393788071969771177860718064397899246201965237913064861514238714217871723739437520115798813346154071608420004092613813544042364865952951631970388795471444170384208438056966549555546965623937344342207189355178804164862717079358458741972273106904504165048124620611202338398832630053024372009111130882280518127668964552526637375213306606630198090802356924599116767644936745002296970475344400624578787296809890678764715786340406372386955911265682240103025701426140939976628463636687987666964653996223959733713521510986681649116506881456968691557159828045078598440454559824935467654253144082116362934559537233906124742390246373854616137784418601169525347550435332053555242370927576412851556294493371344838508391749225140885954529590158989481953539664002259562324176847968751209308413541203647370859080807280836227359044006123362656992885729015164010108609471409980668259103576184875241267532553129938885565216949220306699578055534309052917602550076464770078556445950429006478587867889101044013406295795729178121102273485736646470530389777512619663281541447988474312351296292636006700751941772253700624317473318566885961416252496587146631880547563361260283047100735626451077405716062004493455631365292693929590907378448419628516449617696558108350516178250385282668839977109337763147099164994819594010384992626140537743008549839298837213841951295085567382073645635750923103395704717140668278138024607436996480668619184821680321698365984322338189945530208518413243662910253258029396914395582454751334387123217288981410551095389113904082794756951967064058291811572759204900674891347862347295232713283974177283030004938982771766891029177201006442599800039524528625337665391085863111853413229701300106231341972715957386146901661734112576811652948595497254724957811703983803967261128210987747234250247913972947086665012969148937962273582480677897608897402374922289673357899183124270001213886386595565336442644577667621442132740697642904907151528606250576611751928587827258982990282096704046809213015283234403594249894404471981069651778946058931132498751927862059292538163719049564889388032898465618273308595067401538525865824371504649924116584687439829172393567943680597191575943712720685511822294653457405094087883705587653000186026575412204068579626859748295035209406694384912982311219250354523551448988394701679161814528700793074622565833690638407461537760109950995283967611191018466520972551678155721972992730860662576543107790531979723016795565265682246946284740422846760870326638325530451647403105812323160138318773540194816052035312158333049724357859337131987189913306175160428127423952111071861361653456514923204338025584681549874321515155932120234816761960239528209919927191584248724983045711285163676135680535223836134549187982031185106950327973592406776142611131047228410996857866719235456152071208598169806557437277319914446779479672306678109228729005582235374032254188882274985581123294168862530171186976522300315901171346388035610477024206717743548042412455292975969767796990549918694754058918769696691819131037847797554406108892418575010891390619992717837834669507324064809520937087584374147695323432784140600188350430781555844939544027885379892360125732675625089478894132520207023840265015177020834797460548590196038461761733721834145456010615510887289589762539782878303580532023967062827100143326343258772171683462010768730097376121883707597294812987967402530476962034635662513020799093256172492127849522842804360605417723594207038062539394912221350488755004584007916914551786103630120769592031703992718964649551883623907551810894457213284647697643278612479368244633532092350049722226359702585882109220199831549997302931509225425136740457984976711601372594274213993068234093265466054475679481442208436526495626018122682341574989167873772506876478789245538134268403344573878771888660286598251880745588009887015689907804502336910987615368678066253889598001816391975489833383572504767198033210067634748930700787667909279332611517018212457427138079926687932538073616548058257559273231350815565919710011545645743225993505974288902516600026371852736211248624861453077124780638115649110178628585760211828966109220014389979216640002580612732452099867323405491427555722209727787633377996607115968062738385086750610370678056737941842682358964275461665535120001018204823212040313959733100197534205891915129278220627638465577947078756235371743167240981364214601015724180124576146829220931120589448752578175690599444362023639644923326048539538271963568793437219048874754020499399448302348825408533538770067691992379616532841272123602629500580678289767689158157442799055840064343317799229108504736201092085797965656967801573768338492360605702899621662473136359896166920516860514625896822931634694740540968200053882170335803880932195331085456182147503985219579306884736718193886567189375873158361340075181788057267079758196093387419831249513744772306129425117337439365368362935946868296193426116284343867106772763034782995265497282434846986279095561932082661888913129178573442870242639877591117465878726609939320780793914137923740943878957027227069958948663793419126511014496825784451542099215494542688193670788574346816758677053383910812408507994125471360374286581893749975754842517348560402489425458526809629670554786870745577611326080837269022046957172805801364384338440936057539427331715151410770939830391642281058533846448163168057895977882739450374364156581845596760781494419544316628512211471445483211397677218075726966519075288922728611602061356124820994746735509938852465700066814156205102094560587926881781627325303344048136107889128195989204285894658692810305542669447785006556415517719363403526506621565746192449331292002689810073046985188487827462346378989481040433471074684193419178885892634681222018618393167279186871648893885266357433488817982149667145189817327939759660727900952729605027745745461615607119311411330063403174051091606683734044430148123487685421090888747155441440734164139153379898200140534653408387991722445127342633471790112156149904035093582663262940823337634448736003033496640632099027010515916156384081289012884892678739144296799835774827930507494336474828635766812520107544659815632186804355905464767706980092523535138306540281029655505106137392108880339559072173341180960885820467372579157140408415785706582001583104534899365569624772425970908388098765073466555161624705407773331197653520799695777188669531759946893316050001508651507377180287193079550267383820553369710439837562602876749459346854693375459093752823017574277163351157715494738637779424783329946972887411404607695508252265220296714904015945649324899523264631322605419838776071495797586240525338963379252357198002203132934842407032207936048292624663980245166695014770862795849290991132727820347021460788818111387930968802460887229665994725625829867392309703356583763747581608691641571638983542917709080025678141593472119894718673690167647940677159146684223716231106773858924246366739176676956784788003033821202966627931980436822389578831613443168767102515574307760189691074998611918184733946796813669979933481122504495327869406619834306473981410905200799781941158516883727677439541679304125545684152670921925833443395775416744816846647692060525712127713440455942692612917270127433332830018626462267741996484250753628406522969225480668497553378982252230137937843050801384500267058689754049566876572821424073935965992272762638899030727473568225955243037089219487149673212531987261943419381437734943520577648453405856942972127583753256955797408112489683843515638208660476889837041726449595346110966108303269687695551587702934878527575880238602292464963010489622920097085041225618086495216018035995818631058582164988771793803383481022523607017137792254962988973929815267308501040931050574968297196742473717885430942069113800848839875442164925038499870423732814689793973979566981889268226188599281619864827433038099246515589240013114016459062609154591426869545204842482021733447570338935814094299503220101768657907685809227800107428152008928861620699751003912780861897073139791687335937693024012930237719097019678362012309801465396592226225533154755744101854750823178306717697523331726071511595637159604961271882963907986572529146108220019929774863827877670001136560605452505845107204769619132708469867854729789440006660273398552231413620802022433179974674626058388366364969077884707632178432643287754731137223446074170839191112043825514420903894457020087205238825260377847176962772278366868704167128871771620858287258456604596569867091265199793620730992006342679321806516304898304695886813382385475244533907174681630510841123432454252599568204082778103709513468444376147246682401793417325728490673495502557636990927812861890328572437339194365283657358770973125445437930527381844442560849470186281758835526166515010714353039974430281045277619005731966898117061269848134785786679254586967480289697736590080828844580553760701080176783082888163028052588555607824420613981662589085428994994393979197462425638658098603558213735179044243274748955359956025946577047439260882119815623154874588316798408046281529940302197727834943002202583994004410106804857611980530010569488651528482885502970211673522755107856993578442252567602626861920584868348817852927242554030874182206761514255974001491804797102453586898266002885970415621959327792756859152969579614400500795017466684449843030949811192867018878394569032566251659381943384001589490955733773224755045608793429967708571457221613839559655355411187086214895357818397524169475233787627359958046088363370104883188857864103066728416808310187757951627339260126050771604257382398119808634612015088701514061618057287693617741485707243592769116538682576454085371631439969036422154903187904135834195128957762633757978176911093220125011310620121401016130212943171276947476538602434259101788905639587218388922801413616576884681168495993167029004877374093890909933576195018412047121676891120269792662604532183961229639118684259483342031903345221728393440945842836905028129518286431883914023255393592923523306005999964950874502969399471000654835137456854199214950939290309497545609649185599162899987775942659550748969884062962953455071722600714171359009963873949631577296233396450116402508688707143343988407750055214072901657926827703290242802915492133183274049584921966267444089674787724342827461190420831790839439842375544301342445859784570081228457955019828131080117258866721814964679317196582181119403445169345059771211257829612892994805851922083427827094128081282160331038177141117306546920434123422948110677510826055203360902640240996783811211277407762943673688824345939965431177887177338998709462902089135152615969829783908799784928576296050044941915568288908196593342902021715109320697006928299456130282487660335431876157054514543511147827458243774488271469446952095161644762286042871393117650873558596528095681522766528488392673031928052839539475030814127439798392092893534901603322379452984269317797832645340259240194571450973483339443156308177494448515586277369935846313082100623494799069850281728203291419599905111944285209576319584352412949851728867491285843851005389036511539935130718800665337156985589834141404246142158741607556185900253701484358654068888734452018722055741791506734760570620250918557899022956233190722293296605948522710265441460924100683134871433564228321811375898358828549413935966779320219374131201273375374670096998538687410341790165700694297411255688375768357074959125852741252531026572701475638429194650934994080454592462413643411543835674349867982432184851702174896819355638663398574205668800904314600086289639105122684159110911320901903943470155189250139060877933264084433063126367538772510654436750441911554544115112527405266287920154576935330675827864419897279525193766207387793814859848438317510533686700022102632755201265242676905075014116442199434374847551827097315965254818797647343727950674600262630543246458567097623572318471164649675730973490610015989825248257604152033801208040978072581284380752141852966139682333521759968992443618049173384577114534328675448167705402293113581787372263542859411239671796536394323103227779581383814942692272663914056714104604766243720117285661987417094234227344119105331710960597753613457274916528946286112805340361670445198251775924182943946950954446152639389380726084473094365239264006806079454477478265739865180956864933153062246246046274437338581969631386594269590753612311659735728241449699801984315400229910681344404793052891507507212899716128036759352584275433978518169032883555903872826019428592234358645646388678938865538165897120352531803811191858230765776795907538649027484700158728984547109133601700146043116262179206162894046178021410294687622251800691890511424986190064410803338941662514159469306689966090180670597545865811189348351730187955600200407481026768006522283992012101122430750172599307401433937677643240912668761330780675747502826245147205483074934634824869763196414553525969177928062597042723288171058189314916194046752043032215279845122524942600711118184501789465584070263018667710980023160860656147116910363145404526830993365933211112132736300047228858301304980233178351450389205538775665391278778805570680640965169689392261866630100710126120127143887546188663383820301293323774486380089307719959859737032987402583864866144371828687030543951320732278472620390833651334319558877340100219219322159176527273976295373113070043478979910754878728281637035900739105242590883362830133020958683974025068788724356945181441490209176590125024956405576078082124519881403447501302720881047135046664696867836894254325786180127571320787026946405468546511321101067999845634482692054434252353429771875302963258839037240807032095847727201268336718561618980464404270442826377260495042031618426336149157162578122778710493017203858121217901500026684478859258045832927184995314997994373327572132724275588482859613695746134011076755940302946209412784518790212055646453120833602396484196849600397792371387496894509193736278180862340408106874724522327605509053884897178154555849537812707539237011099762914072145272946805783952005707670691995484740433161973420926191214817974141804172682874247247061009764547307743804594551358011048296527618644897821739183209668250878772741849032259063586624311936957641495426612991366499272184385067853483607128184782371230808717121658644102384336669254670558537518315543241992493151570371760985011999037273861903290262339824008065981364681198742136296908725942792020854542169770661359768004117691761016585735167744548861590463154621674853125574628879710863161875090686756443188860070540047408655683142060782002954534255226997020893828562029210032774954299405411323598870779789652021763871440342100978168784993803271017204632295626257704960717087000329870525823836532273190316391943472678330448813961645179101915144380017460931700789268982619063674205638638516539158384481884257058758141387073313750114829267477546334025597312021863129677432359852217971156426715466406132990392694667486875022487968891888312824446098255197550950411201888014013990308828870186988324175101642890394595568368324222691515895063086024727614771674401424420786862918526878214396501922685273095685683247623774122287440145935224201123841948403917717370542454844485978624357720482524895001453633933244417049808968194963348095892850443724878794063913366214335617972752579054038580173783304342063672483784035449944588629961740853313006318094280992970282178196513342611825832223913465186447102010192909180423926280969541763228540225782093225813495977503479187046215550915034131131603395072875997296470327240389095297356515806835174963232378512438688334563381382082816843529126938439782375634346259802242733271088121897241269006795360583458311677133124585714893539947097883723821113414990860858595519126363385520418786239025198577502898931120069794575541675854453958565547434953416614752157520974490270241400605283045695082234858422971597488079104954110561806598440490819382002394827408560195176342525870358891512090141198229150738638839312592047888020930547636136283002914171928191173202397045935067787927201339996205845787445163757306126190307393916013993895604683042018791744616007723191408578544821765791383711293307332390858968671899236725132565759634269285823004665402474726734203888622812096529891257483736975343615389351698047569180391058684797506525161112418385977362412556312019008539942362676785959030157713349111094498530403340440050574816064714241420715213264932669134287358851246369028097896307283236809713488099760050258207959792321088000635453050766167306667577244224700508435238643772053759071991040448785789831306809645817547124829369411689993335960577637986239275238314781010880100586228187293967088869439092275633520835478488806417423655541318025742286576887609906646532236102841383508607917840133422364984446845400786962097903521916235889303201361739537549350546408970809639033217426416017821117696502758946701043788907472877452751287256089980204900894535288739676217625420679660003376739689315977465415753904098559744908648760996633506583312761131280691760204181767781181503465745109194660711675954424261701414878917057416260902961802694320561547009112214742410750862555340362777259471365673694531690819185802761859128411003917498754549602284424178129704728184239450598276621753751124815215581506076715469577289250812662611529663813647852874728304595251256090398021848061698460339768557618681440590206183940782859474183320367197630996303026429295130666299079077416325514867835528007559951824279343514510613482953520672805198173905730572856558628793665873443832149661507966139935517431778924957729405081149711173534214114017032925517290620016504694631278050508050396507923859903446848818743230538593142053243895158347394346375891063867589467984623740247626542600200292191021334979192920809967776104720813179086967866055688135642993543224202998945458209937666840934244445470940345407217137028486409132280169644590799128563252634351775357891577128971319869511955380552805119702888065942086175343827458776863992898092289568962030716980880570844386341045189272939361853784174639182430493428819492532360942384729909556702868784033831815284024739905270288198126653697249197781160030222012782093482761404543302573734262701161572413364055820731843389272887308929406796159998238105263604805222772906940986595417690248777826824567165829827774540341717447261313038443250014808404456962377460996628080274327506208362617182668852534927038934878467305824606212601905293839999245592392632346921476220480666625792277579506147725981774635293461899564052025177887249852536702265264374455484732678715808698900211743517301725351677337776928549504259145986160261724223373244458082638723957954760081558474306741598314679828842322962574603332751073626369112923083952755442229553846334110278375293541606092488721354877560024691961704179123133703918783977772217848577160786947505612195686516024149445365268099983006014456413493690537139987838009590013428403475846321937188593876994756033148462812017134878076893848647137281603466536085391295818869821211581371257513738033396975855860054920278101354088964173505415337110921739820697574612217167216628324253173454750957958841387526017081568783392234481591601811611011530626285565618552000949254889302351259804142510421436866997779497882384876371838614021500110402753169398148902695794422947200983552639209201603353698199375718979117781983643690841388346449048268047157422317576263226248649600547668597432681142445233610594832276782982995814618910691209442500814973776280232883178730082692284557013767130004764496546685895836992309988539142203272222210148337805399137340100324768721704341083340551273602252271666578121307111881435202124881940313247568989423150103980387890650774646140155852883127476048099459657219060763857432893787700012961690744054454725986664158174645549298949226063491996641962947005719266207685182306882626629038105788716252323355115752596543869075184642471141908210151229536460951212567368508100062534819526471871384214251731128114685499851083213054775220348557411888835395863350784694394005187032763389980854777761814052342743506643585052012898741270029653933170031729959954999557106881313132524374917796627083837189093514880756295578835815416817388610752977988776623970125834921455221189859924905019414381670835623180770584343092242739589250750237346518768723947183816911509791317376663394526541626079585772618080208112656783789582618002254489184675702766999340949413928868431022632766584184383607678463660041105511496230355041270407775124312445243589554302689839315597889263517529966573860549771282458802604443085443311942684049578289010043888881584976209119093042496014927861056414736157865035537538199660142055674216714950937010715357826202692592169291356201460962709405517850315431555272758875519961237486741315589149526984983292490781579342354349672303393630772678755847458126766635672070509405929500397719812162510672157860814802826568200012131487495045869568821801598063420463754324489012822634663313564380804405276835468911943392026263650613727882826664845078850605200152368629030351682580227752635897428718832277984085407394283030233363792876483498710723529514790868826284775467837367662711002682035500250231164506134349513601155623919524481710792554449612292711206133303821163566879702691450812946310308639486758826875250043435060637286520367413890682922413804824800097005914715911046090619978752686440225473353413359226958761331134530460742548876913986002464753440213861428404014348259793408341667422550230586163674073976007355858964134419851363659667644488205165913213995280695707084794293314044818919285494732880119760973771151561630116570240896876254557497870602309999171596923958581663419903258445905590871061883396281421734167773106934992821188941728072326758123854470003421370076431098581988109477424363561771561506068554243594487548558260959859363455816328547755743807807504632546237545434702111159335259601295231978770834187281872291163619874823170925019408708158078673992522785457611120454547193817441799498216234332718348395859757842876844279006873282512584401328825400417378193048256418198896567376811811172195697230076270418613315539188052203579964176943715665610459857028801490494461841246065220012674044727885209335555619110800047867354116906370155855285542558704172715182057293051966988772321370877211700830864343438964058986637969759599655198394735433678916741748913906005363083113800588861313684066055158390579666218827803110096419278492598038411646310164537913607725015190450583543321641238601949101855708408151587602089760655156199189911731211341074964644469295168246838308698860610733999297398163188553535866288755009271044648486279396501528950799953638871734901927041749614688817875226301794285643316962757512399332939105536616141994984448157235477623984987456849033291843594833852663407144819991309750756342958573719814069683914829236912657053344468370151730708702830361503584579277284102433995080575237644766696529474756940400361091957204616152236991559646052406188847583516298861137454100557433925331758503987821984999923892480383382183115945028511897513278956604558729363477474316901868544072083162868332019293717293821731594845951753430784906375624427632251255090482010319144731354416118654836984692346417395032410042127526294881718662697622804146430648392598128587268550579987464902956835692696847100051781486045306798044046984020983751238838751926214802321364288638552426801533252928171782847627909483792587544447982643361802805921833058105535423366678268807055427195382695820869505366694892513460946442160612288462637145264054515782042172900433705163832314803878956387627626902968522247673662826011796724063840832344406763544009984934074652149087717325816064950705038753612738696336904786486289809945425645533823555894521127289725296259124681050779071835471329636553006935142388036411635449197237855978474933428386737061675453312914966022764672823656517946268034437132338524436667208999267837946690233415587026421907987005836962951204828391298757336168187697175103513914693430469327460304099150636596028094390776965161900150253755399200018966268375923667231720627966213599530105692614323418334873356450178197701567478946356941952984957252642538451506159451892328710541419982433826211734381248105639127389093325131502371912984768531318683189539625837741407683252410339560707201320372200491236550534484242244228762791073242500002385136555912963235561221942326743796061314343292274647390783793688617588694322034860829385637142993061165619828573066681623423804454860477731163929328708084687797499004818132641455063646676839624007986991295340317389744056900080820127322353231190025837322907519856179182377397049523387684737208363116256230499846260401482600858225382129988482248169849240483662933148734784713246789090135492117224749736949375803222029021655693068134314016755931485185898808379470175723823711806682314325436585559309232899062591623606427489668670870630126320045284401413241236749894753348361391441031273281482502143164441861102138866524340761190071156256268695630098515436032995504881209853214028142486987217853820147955410134458377766194001748282224069699854796781127831552900916053352748369460829050772463052257333226239231985156776005566975132325142965118190597355526469360132996222881532521684175873406461471564418569211363330342314255497689617736391315517952767037660731531143712181265635222522099753370943618909137650445808269844345748243116782321617615424419678110752255031600478399095522086718379182275543372872685851906537872381102437352042120745615529829894750366065019372967179793524321406467704454413071401717035381112533811185638940028834059331448973768680236625612750382487607654353376645324892509783534478310367536687868137806673921699172230112954944900650710376756470282486338473300250396807636286336904208158407570366468177099274634112914085740594230941872243792660769087870293111576075147253824934665471431503539412437054926040872123036577995956404221801362335109851720570071293117359227868795395656754532875891266565702778571924380941311741002971430923251963017120928427089397073824384083319015193059464287881881240538252814083048565593316694277113389245455199368329392702076794707470682499288827722959764501527586800293821693514708196490199273365741003642174713945635899247665937300170532068925188161632913368163775097529604283607604937977144780337326309524765543401297750404702477952531115566742144107205902579403000465452605838383273231513873696138095210304790663044481979508360345046004132416666989092790815668329787958521016409767280179215287249512970611225443947458804852085434437239042458362025882437802064172901576429158752614760196524465070262695509890436371416237992723255441657516567272088853634056105226078184539149156563538791389844385941488764676614322222935562401125104668143614310846398001981888664358631473035085235077063775069999747212091855637380105316978983499853107186061368013404936357730514041413697008618130352267683915787203650217900249265137496406746468578640173968644995367581829895634510002728421746116253099068624740551643885723678587922079551761431370640025203536093534154472242296279619299993913449154444547808917510259633559375742411177714596284134559558984616478485195605695533786978192602222107240045551500917982372904761615946938443111390820435999633874841251477687038912696772308811223258461651358552508103874386041421111839392261850351510012615019721713349333814199151376297358267682525899896909642780394049611068588589338910394877742986181023701051645060656544963862959203466370418998386657264249829402905754821469746556402501714150227889566695463245369079011951128203222539959624310815136739875607112140555033888638914225433168119716456089699636981789191081500566051589505963795612339532816624238337277120777278412438330640331409238024149063708121596655309945192234058294367029664286704096947575426982038077384015089817257963405845620615643475949618116276461369050995255416388377702377720293889814437243796660581860713516673505522182542626453190488979971898917030158366203167600989265972685279842336434565069538344123767602198994498542385485303352235801307562753039898813258026910526343739607896581707437710227619993942863791664894260581050562832541220120176405959925850803221698038761352695653610408810580255829362624382161348883419663798858711823344996919454306124559450729584123377887251650331966081299933624254325436937589048618067287416749136319726084785874306143251149727274828826457079485941427166168889055333111768522321523619226676209751015678667005591021019680323877951648989880744845605977294281355526521853520902103196542715257096500151503243638989262933857401167695663036114567435599417720204662159997841404333325383048502897775360492946714988545120883559686269478008728750092760408960775210657651617578335494659664776697495423421525267971365635083377240401325955441681381064487701976854145605176802021458257147515103012327322684734798479658682412286872107127645728245409582779939468298433248052470430166174874795049162511296573746240646506447322751246188312277110387388456965260404179522017472929929744413646254973490146277141008372720061000942412754741439887129425163986354101353239363769483342025390128409784366244595227038609764555252312453585056986338970492309681846210438218109713826340432070324551477102310303208256949250221918675186047616034023831978865216364044959227625451276726520391292233734793694327888817329348974921574169436501264377596432420486174038057535465493334505603820397075008914601511180372373985593659556742934945353389110472477857825127670360689736593851155109819079594477106905114880293875917726702978036326379393723204740279316347449567861040550589671303852692917542407579671253455830037287033091643765939161816240845585974984831161352387058494048688107858748410935735119517142164802265912792897970580247288216759547972526418276850145059402452945350839619204252754215518082110616474357697616792976560726845589159466777801467483077600249949261127252438248766004055085572078950937736118866075070682386712670173488486987355776981297345119356060800325099469315606757126248733121842549868904864291408798070171532285889779595088880336540277908601829828300183306073243109070618454934356845084987391351035486600260860856465803900308089427481946729134166840645433735051722250881512525002201099336145554729531809536980739045661387279263555671986538864197377815143494082973267268585003000277900143093810763670485452733194459928451108902027703997933247830669608958239287740246101630629375268489062926986854749745103571654091136044148846676861580632125221914434032959488703230682654185594753414504126951407726885018520532759326567114393413787354861889167690077280521935821908633449146968260456290364850384180993669494339977213461734569839647742837922425671917881904568527940522802060910947894279212958989971794521659113312984447358390477478819624052209782875964159824025346251895988241440970929124873927555356002798072213428267157142468417808694274707094781059052280454345414483186593464388426967640629624579162761138485853297802848196953067817570241997337123189274171051683961474238388642983641132814952385011975207798325994036005379436771465330343014688598135101702491578537291079655663716326579757257348087162165566483660490931369584222435524001893956394439957538001207238139884688899376553312638014153067901497027974069035886839677661686193152363828814284743221223681158671220229854535267120516035500949906355039768180295096219247194980921714111854067064544990531973113881889806419427798928704109713937432726726037328169476798377020389963052801807767431922277266926558116360602431582230698798883775960212384420608780213116726412823605547346735244281898844626129756148181778427972607859504313936263317829655840432502298249837170064222158927709532926000968082222784724494342149104851633863428368807747066202449594646021031337775364943745102556631965158730893175896990761066624624923577439628362159159117602642599072518785009090706615300219274435090129246851814775362129119550027510517007240264485753666205440060178164420431622564620549838201988475680402793099825372365208216241551257594669300223596274212463507415397915029206636990364987191983688054309197798343879057391671623153313423256585174042179169668460886646720160485452940401635214035760562481539733997870260173227993975374776305256202399915372792486165382534476793416336632198986134882473639262829453917552291802705448428087062997377073396594185064589060099993360490912074265616715094565578869507377671971801918924202658505708764641826007986081343535939589206187217029567840840144032902739439776175110487856713242898338482250865081752689711427613297010154598234561857299142887648453321487369873915864028908659468543030092435721201442161384310684412561266558552017980134969330757087368269278901442405720311793964745758661055606566242461223447603434345447626591184933831056907923469027723789035599266693076520138039882824605037371839320506241976654039671221138180719271744486703660217006821677153016612432783184780459125607992027374363981731342753938831954630453335033792365589531020057743432845921907583364637096625514431969620880014143820957390325512337574435429293357308247228806267289400755272796824952746527891245892049973650117434658309590847571260822085722554566488012821450536558727706628243008844637598600090094989817860865859682808675392611562833855528330094031237850452692636377675963487227823874391649089309870181813761986402978157821658741611137014513132006727933837686732039853264934481166750535800213542259962009428462961780773402905071774376060620276929277216644392895301140558670139409207689265031909578093821103208918229468140982871566415131197263744198003642527699870244000099863053776545261254587051964524311446958239592666537420020633077887475492450723755013403016018662188005009700932900787331423764601638426873222847378650825648398209416478595225677138618373041268090576453323733296720641664434424199003738230580805766373067097995139781509573397624836467930942107798480249661765054135505735430464042099917715551296565775530525367314595846229265425152358283562356510518458843124070804991407870020862935692155222558924670938351895487882469183873969042646939634276986879576193353838888640077837238810725111236723900273148495665760991512913810062072196945129700344645443672071288735090320718481526763291562603840706704334834410630697518449396695790231265303311973056602660482713657233539331333155048054393150227056773143688413216200883640126659511982786620779753826392148033864044890661209998256248967053936295502130150966548132306183054165331005720648991203326118024386111218747014183665074725888007753264835380706287791768069630050099218835171913827634646316749360142162593967703581133779053775883521683849551506598560504629960416744927799394217815309591242071953576060853020939648223666459982245639249104818035425857500875136756946929542572674536292893870562937327754494728901410118418044491376824463974198053603788131044087056495158566632813264228214398619376824830906856762481317076052736618545881731906909215098530331838934738494759170229146008125614911958707879411778375252896993127431217720520183350393931435908358976260785480902606823056544756989793986688115741183599196922802905811410794705842652556683535139368254526713150107721363810410063439538112700483259305380052505321689427032668680520542349628744359401141862065462973809042000645148234584258130743333800166027016247575713071306184666168940847355358355999244521684432214103489954459915800821194221398553579912250669617236790353718309497698067092670594751513399945751742703368597845287692424956384804553638328543461341653140995432598516540347455089221172215086020899583162592477987634954373362292422772047214379044224726293081781011957126075129253196554060566292437581621915321679707354104859242747451984747090515180969238936175355536743522070767288768381770214789258953122823889230422259152239678411614346999631624972647907177825042617088579504268346173987016738660205026717981984576358877566634074519243318905096181772458348680311674612772865750271396553861139742781725682854665863275847805131160476643303675631406913629789450161863138143539181423316783173374469172542508233811549197179781743205643722542756024280827319283576791737138222468823035694134365842008379170491600947389118107348872606399440616794902961680644414469090105453213180137863018968847242662987456991316385179667429335729734508752037326664581087358157420278973675127433950200091782749975181070179178753528788703790748255143293804069414361823829216227752959715955381338064782569837690148421212917494383803621151627797034542053110352497657806930322527061915067370837360191546131651379212672769682095398135921254628748520945483673781629565107271726533868173751740581402572469616018271041315650525731277764991470869853653008357437831952953411251359418801947541327596289433894640905774002313266456866447569256024544765629866522242955287302454071771448159222108939175081975490158512839435717521060445161644048608972298930434544459778055432943432885639328403202725113702003576468945493852402615089825152809897522912028510385256322742169908903587766661382695478703023622000621995445367441100033595315209165212853797947474801271890316692638228669505561239706618544361911726466002926633637076774336377330898780326380194535804593671561047699124028615880981087317408893940889472357713201732410991528332740285942374561540204976560881179514093400094094795930895422680301638262553981846154608028238534910099103817981405621677798639154749462878971785160210374769837993942132077655932029057694734127825093761156027871346851884895975783901718626849784702246948225359380965539185553551219868610766236151743973506752721694231979056474834723155730525555355379478736103493291778365003125009687758394213190315629775495825827719443596832252876596585766295679084745910229621572310435322906889650909834726707922911238816011680062638749960256706604725931896513053714327768556595515635275248313426290765415013747435701080604634179112010778688153994354854237344343365977102092645912144147761815827127251065987098413213298465496666917398328779048409632015343397132135178132838637995054904114289133750971256121693685248173991102448359676193745317568772514553835769383043964013660948687825621572089700262750531153023693309591047174742700250428778612204583628150624625010439024683753350133192136384338429284243507195308307225984618427874368648173189267396989349007920723372727459739348113351562123690025863932114866691598178532113762822700957277660436154010117287894305106729546206228475139930680395747754287601893795345128454800018415137781553527083044203218396876237671470067103877112521215505393826999527479512883441436042643690204190923888306348769766033930393381953769138109234477483717622236659673529064681784791696401316136080233371719020894424056935450714926201413675528425017355238520578552131493375546000122092068033752036891495587400956932052992401084903310507402415007020526376752749088739647905884453459270922312214154543577075016386262982607356324077254792476140003998135706192019856801789039079308577164283630413818835919892161059497497037118734407847554749363308108913620265575224761311259685083112901561736606491673406270644367143879576166591182589159097818291570824668935663729122886939263334385460397787168730763592257925870606772473326861167499123988720481439443403746528035355832512767414360062391464147466876668681888181947075925069479317077520681948674505050656061224198073600903459267573954438038403289701575482809021525822689755527143226136374039919924712485322861004370562945502394662062730704803720564734353427169073363342055706605106765842654800194875460103415388145420934660979132141766830194021473023172126498111144926685988156692373122697050532332637280311829352976343520192247540717338189456283175012496339161984703525180603603587376846292814494756157018090211478920633433568164656645764545655503150582702190517242987657502848980048537452790919863362363551423621681394692680448565697924465517218783037139362066908221845885981926991221639019332154191061777076361525485477245304054757102827744855527894718515500915922373323671808297828283008179655981407894106237958788449854120174676393620767141229048788293064847818816480802242911284297869512430267506448688149306716357112170959581612537050408684841975318006545357878626572340834336206088613641426933833819890743282466443827428349956120384992345521298324245904556596593064466056160423254267841540613032572650831891472244764402654770514338061115251713356554383267734233151572038920074693592178267065543035411927556178450951302767589309132787013413957464294936229188009555498343482658077783098832279725224290940554159749716706709561463194333125020618078843158361791813876595479374127906389491149008321984487554659352510893249479507827814940925816984793985103159280514324732220111326725716742267765933536055086563833635288220930449545958691066973575964969317409709417704936698101312971714651055596170457726183104044556725118130698043298557350381394997561640451841639051100759436073212113998342447063870491173378542495267323469125309925045997635543307195761155545274843718000969144779898630487138865738493151940101919039253444200570556912098213303969124170241452828831737719555273702079947438498139933142355471912320761257201713743037440492971793007477175461086826651078622708620961250728781199424449454815259670065127735837136015791946806731963713225417562165991687573091032440728013072864830533037470072426326133078734219117325720120139685148336245407552244380856200626075687127137424398198675007521889296538342384682437789526524606816607018481698110912001361977915964440776903008912146209701755011003545171625243055668694835106991194086821249585806807532906058553398940023698790847345795583829293686848215740172375305487812261297266185612490856775604009078181087701700499777758482195168766616662102434200676714323053805791460892038563957293940505508891524432351169097303425488829267561154367855240711853943077515889639980826619584677799620513898682437455885920495955558445329101038276982322486390519997567459170868717820936905322303920554072610579374007700610282622334966888930347054165172843154055824834077339256145570284204632855993333594279990183156730715504849391474819089287753793763871637794305584557714462250409745318766166550921871318756693157658146192723294077676714875526821458659634817222589874708186416968120537167397766447747305517330051061701368641158242284877291900049025444711699062877472810207802015827032159223842067566472439204805513793414085173155989598216118336162159942152006331761790140132485485847902542901096453494239647681679037251371613433735654378535174041299256618524892239674919313269659648972352590718380546003655687518739626340899356952961571507404121067600248653994318038838743587989806218359599144315501005079917870456970147019759373462167129282201658692401679173635538731873785550193003003803359361003987431478272299465211993430181551929002107704890869319325184867443803914175203535823588241820563386291546152325323227950930144788083565709192888972311078074549629239549849696808268650804063091302464574463149342763484368216157179395909528548758380334841696283757678653486922218556972676015881850367059969564874626074540269364956722491520104410468172656318658944461225467348970935377336194305102341550651897142623530264553517992761637104618740279259639424032629291352493097608323005887268656825359159164395824711412345354328732230936671210715187812908689870542437555950534540828697105046468879790967590007426863828040861402424060655017086999196055939556376195517357274435604839633510368109075613490326526005726883203223159603192431083517573434047464133043102744411516976575243805122580629591649524924189819407244925631546705056309813906918937826337098889871839799741124266523538627896283270905661007343991361322911191350360095609319235126718572862826445652803003911867647117501373853581432976720468076392357170594522419862256305313453537353711986557212290073744073778411668455500372748727106782254764628250519679594252564398485862117525768377913655192776284465665210157961996258000682341415894211070503884431605952526889883073279106703926540571891376729833951206035702223129112184332151201474671850958332768466165390951837212519602061270898014598689308488856750855673873930102938845639492815018113440874774699501622584641964763752001673517285087400416493713452816440654599510631007700705767144404833128156958056791637248331893008850965750612136233573910232764199148405382052958885502207923041212230865375047393946844092293183342065791399014008671210052930890080961840155695704119806119284989402310427764460667581725841719761343149429318580787713204500682898653894139022661940912049678006870951678890766184043093204747194803154058276699066655296270143243574871131061986582782722164447427337836609992251939172227033043088931832386126027666837573565336161918233908302205699169237272601964640149913849421476578287672963570563488474915617106251923730396360613200121093812111642142130691053352249890190970589411690286457957129687111953858688180881119436782346928544461694557861212070239857231067120762382638122440628359218276894972122126087812975043946537975884846656997803449923704689490189728006039244226805439854161977524723789890223530290363011521873276341562293971911647766316100271052205326027489362921591208370590476754676271650220529824448899033159328202395607706831634748795688712324696543393057086264184815475297685646661142479417322788106787416368851028208483146215501648110368598482205963343521488180831644956232735619121177651226281192509110963422352858075614357874369932061147532138904993483242164991081819311917218960744760444916487182628648349315739266407478075984975410675349739454813873655460154414832112129328559397374888339033791357798082410732880517847265758247932322828613089363141126574288821910334875675969084801113496696470232747812963752446443584830203164574847685093866293101130575090191176710198852263900680735643480982859635619615777431452929085365064116196212853636853124178968922210321516437818991275505471930946363786392297812233074590285044342581012811788951224096844571470147868585731381596692330959351411908455754502751750997014065995737963131874097891267996193592788778336957436401852361690337747402044782507503968915788549997335125477885099705855890226028825520220336670186279187953572261943908844278204473581463576868712718228921132735959318807172542172944887403826249653755306507445083729215392318461263933161127716057671297737568733062191921542397906952743128140965916533830457914561624263891332488546235723178653008072737704750126955381797418898662316308031126881955992193729784000630087401565331744221925442546984906684164416952448390950275080951586524630438911432462095819269666980185617923583532990430778305586964563852119668304020392214348102210579132743237244408651152591945092274808591715465866209491535006179149424598049090951735738184113563348464955975755425986878988893952467955894856121023206897967923418307891370081342681884944278833638373000223297681540358956135395841582129188060869190133324566621856964223294304925499409396705582168992747591380666628857447171239647894641185498575717306162164754312563944384043424776439661819294782473989370846153957544248126416126935645349568021292360799766417080547780303663305146419891993762583432564554491881882732869897038997582527065022247041366760345600366675909478846239139827557298122469343515563123318692914711015337847285214009688305579766683326457240441737511081881818926583200879986432628266304986326812956842244487395085580198777476546620539886450962839568289118452204953040735881747046859556115469568647520436024038142193171121854212183785769925992861066554111541209926029827593062927649393846557152537021141902685184765460248641442057899339253244032485008821205557711397133127896300510476140681982382032941317452869751854208118515497593891447883021132821171527721211742107032540054766230490946954707090776152208181482639009402598266058062555282498225431659165961365336156357257827947009310912476480598993329726027190893584700294711023998679752145284133603684373532491011664968119510025232684152937969791799936843331285323997298348094328453009600971562424945272163031038638453893924611251394090443778850089369489718723626700622826153196290703371181578168640975184538337834316662166041725776431946898602117166529927221340550097657918247879616940649932601211144240590417519469501558115118001860916788957448741136357211328437217466367393890491253562736972489863059510055146275887256958258676230608788738335399892894704882788940719630425097451448501681159838649585579429780242684680266232124679637125878279192420270135609331993639261950411684649930409319640138057190853564840403542510756032241601676165560327673194180392272898909743704984279253704164341660917713415399877800398382274284175210332992505764897778341042832279470307517597795579641211835898489797804633048407224393270981607241900963289421335549561707526798973511612382196896131562468747221434175354314419062986052930852870832990809556838337052301008846000362132905648788827678802499607536333032974814511300165619123393575161535209596633527007181410273325458190196352834786855631912939901372297592368686787794263236899291537619137307162822881524040170947341919698078508867007644349520791286413196310145648750807368855148274120119674874854345550095198366250444634221959681730142372748835919144640835433811203368208039921315874349339461719307924073128593999333814465002109020662557344639522635686887022024598587321562464986093782864901159154300740338942890557147878133012045423754195172561646036226633285294214806122594456166023707420165125122001342682755704669358769554471011539244786337635278470002884801052805202083756384876134105901876002680184650592010516528095820870021091678366662799440106719143508235609422805185070568898894441073101137472337243454942354097279048756590130222277481864187807634975713226693806306347679070712896153047443340512067749949110889497951441491997242690212211932535160649871195655836821353119401058684212267974066445790150540474272603359695695887830400938841263789052625196386384321872814609595521799540866331762717095340697602332519752925233053386026351573739889462825849673481418754033466213247666343249669503040702369308989775881365917463591308756643608625495958196724342781598075708652790084526171735343894597292469231352927461245313487972456063184427773610208615472723061128883826229021509712582659264277613352136905115216160235317090196991790006416142563400415122377698017094354550621433193309849641509392826777436517184196704054485891579009592189223570587561167041598486524259620612930186745283844422858996443522128329222052139352693550129562377667357099736000634354577194978265565247330872794360514552037194673038819067652138163439218064770048247605703344234853139329493176139506015393141289867773533193272494891748495537833387815776665585896641804483860760497050473560239088746040028671915536416283556853786231238373241158274558778001756344329060415121417219281126846581176132962577116869662964457839258285859790827172673190529571400728165811041279850403454004673430297785935903615148400657616934577127696925817679920557518048636629441984514734437176802639365583225895969197855115093161947821283094569865786995342016863363163255840834974999443756135831483125546763518620546252278243516020645197379865471017210295302603893378880318072754230955820427727790268517574348460672050454175170769071031063847329902652469043311476927397645599769437784760493240931667910362020050349447392751537800827389995575792482877745253651117040918468538737601821752388827463912240616500481660072673128706391825252091429706231077517039170920315097071365612920996233652021100776529195528037894798322083252019034445045397329442816398280884887826922069627331986192495631109029575369874308336692151466973656308162073924651463175869817079190141830944679922346544912612298376767180545268376875786002018456530201649699814812017872123022688239014663879359599476925785412181293043981874153578931687770325770172230816759133127186373323643451668210947150957167602919531929578254272032867540642027178477786617045221772206395450968315618829592658823981811854236299580514841979195635245750718488787229868867423672304174885857199552554760399815161852377234876941108047070319417576001398729552813597146495488475645536337847878455894671918732997831249404415174380150208971678011508803732869401271311406726115379808721577596163772110593338272825842426123473401029846690112026005617727686322240650576489389952524561159316472651776521510011492071534011393443103283402747679953482551403823292704208163100084978765017429535818863802557722770512438212353990245432878742207901742322835975769895037788759832047005208857745479407732084971150534631889174978957256463497230351222112192322471946021924957103694619304164871221985336834509006452805862086567577593851534162739226784750025054500510509646158577123155882689568683157636869724104077973295915699933149258098734384172465556656958661259329635583718072313611776868416560575357642458828665425431583069754088106540172236726539425536531674893778903965837121821167717208735242814997959883164649673883391024009506876081778022448718999431964584468014894712530744702634721356696603048753039638688408340019715526667655681448801286791599317347279209900297984714973730843495395462886144875632072818257464198511612205603363374946944762120997884159229793284326138317141000957655979263931359828866027652358209857121730614681504583866301511923971007225192282852890942355666722477280831927769045195554820405841062920947339434872126107657931733133751598793515778416807846745887643071443966724547583898604112195531923818447352204846663042695802669478661077908473807716466043435283492499979686080642960927830404295360363302071754140466972151259832229110629464001847499063459438990514366899262385863811854114842131914864773928090267487490516047783652865854331390784456098055675226445437000601867413091316742128354403835223854330667092143093254212563820902281963342579857279072789273603116178428117113682748100379958627957951644113209482346145946531670956874957292201040469773289127055224079945333952230595786162813795917204909565561663854308483775840375610955838609796217957237976172173250266316677915905225256588551113076918673974580705437733613478441577873213180890154326172919986573715327233252239672511661966100481445431733795023096434000640993281367659391272121816025408686301836952024406585580749470978806158343866111626763295698838648103129083925391821428244212347049127208445379601293904549318437541245638604823950285483137610372804874211021140625459008519678621080333182333257991924626361023467611391187364499913930681819112972966571091720168555376393195803272187215747403350052136015447363410720051240500439805818583469231431818575791146794321865596501204092445121147876646484588841614646621841514695901929008937074121807884243725500843726921628201660005620676759517085399647308996567265490233983382028236302358536267655950995243605452506773901711881312165219818025318234874495774014004173062239503392738749933397509245100570712670940748844034671312103269228384067726444114798193976529425425968642617202486797619113283506403945591356798273465251398954168398715776012080600015535849950880654901575429536729843528110419587860841578590643376809826733423712383253012869000224288114330948441603177836613779913933376516275697179916044414176063496549547212747089043940839237663943046025182308737770550787949972622142874352220937104643072813931267437602482933732651163829776009683763196542316795501538052710175227371569325203387150283897635912510688961387845174723337921790928465244319939833650829325588571446717933635558166480609295218540182435545715354534834156833351584722343267010432456613403780748510893776098333711837232513941008809702657598118457479178540565442517328202605271610861789386516491776109644826931603545029529684100580105837332010571107908665717256769816069229599509836741609902622906890434259727292992290276760047523731929404941174347682428157343164488140808938393407846825004805596977124081659576630122950008198927684443903682614679542797272727681516103523633260391370148602501509278767197094926972106176826908008185337069005725001886520204691656756029699681951789066713772118883578210521979839079790584410774166044550733347194390980734086028823803756372235645982839647637806830922977894320042107163268899676475716088728810120337123648264719519085410067151403812443821449852175241642494716924491786665692725006058129860484524579453229379855898058395716161075557763186600441937449304245178898497812305810218043575749777136305815640540470009677442639479846160287545444281924349063801943253541767755841501238167047270085533463848373181755310040017757392576259883589400503293684718485640070338844643112503753013282379886738437088574280053505464273362648805497513832175519788505519153204041770357742315840061605254138466798006374617749421158349458713495291658703843083809013964883017560723460664558389304654685303661965419625645418023148947614904791771658722550974216730460239737924863431032060446490380683407195499871222716461527623909075784869864422408792137752921925449657543622069205815232493877937755347705745566244418069862746861406144095392872502349616965131084884634635856921256100165343884597471595777220633563757213575277471431903773145073343176467681757306688850041104442621074080267605102081442854537957004755472350765490729665627127610336398416244904701687711277457881689267803607682546446991868359319616853545857147489032012010062898793365146048874480689790599744067815601935492521519423092418942329616888437118134782666632714729346446744889123070648397529072881212495118384230511318063252379254490257392558371205492387735255333993101147405757898056594819342655515179408357146957144494183234996614830893336427615283605349755850573128899754480338694098773730065886527460183901655054895074576184347933033137059232475365966253942337745847034346677328134353823329858113520016772976179890499895875457760666410534492947973893275265154367220822249545935005543667211945033053279866692672093498738998280759047374982765127278706858816781077657748098164877352878789917795616652528983480689660351905728335319430103006480871396844100892762556462361131493961281630828197230034041723997936376502034213868929964812190271509367438549196010473491325893872243935054699813143886649069736880271855014532507604815556811749857185998546560402369320579779495703995499281829973233975101800965339484055557429627045007275600852370200724146053763298985925767297516391907106673465110932329415235286724524463597711147264094301097750377965271400981029531118394192173452547697042407637528457805985157005988312786608884648995871579618093868812516262066452004406867619589076275726111355933655039838304738905473464874287762622367542712527768953568756198483216383380208972992533614404089368235608644191327830042564396466753394929737091937851844578424296998269078490639329514774503185333778742348810795388067303587939592413604685952606727117211225173957118667147588293315674483649826995753403133472955928951940881655068578086396050851712523676456767092490346856434227170059882878125823402836282211009230436090131506083931670999829891728881165402633442820013922049374454856000912730704231349373725887937802269447997926514740791105714703727584555664736032104357469754542334933308987003014388658789664612276177511648658943351500585596097746569582150971382454640326288472070663562301039527625624663399965776673541049404230868623163713691737311281322991658270740173772499420884083449776289903824125901256479390122996478275138321753146994894041011647582102174549603544830071867042561670301708301357876307901752720403448316176567522349217209193748911564203789033522372391826977436912504758441069393496962538293710725551973155194087440113957261173184449221772216620885630418555821874794904323429413068875703773827106661735426177871572032461649899163316725804167130133985994843394247370401739075950828866186629279566296535380914568184737105756194400917298628303163054599776824891925866834042929763811514562104624962649915140160299267160638057519472781625177909568454975947452785072575470501511681698890298949174852099952121166878105865050296917590084321309807080373058042340398618964657391150565942219918304712243281453041384125384634158041784439021350892978242153380517926982530402399897575780828768861330405396942992869803748809361680702892594787841755529529807771083436742999820340977930218097057467902425514729619112068865607751326995510896549299296657833001227669094128688324439459903350776542775739921052750394595705169873623335576312419861821713635042076668639280681533816819317659069245786512478207683240658734893623530268105605526918462286970158582196109637032769380134096254472822334428361484017507612444961925406467978070093233575280122542397865450503795595239256379377609012911471843361233310747862607346641093457283790232491984170220902979846481337167038073775302515986361357550063134559079459716104575741770770613863326689679467690054293904198306696889524155143211271583462774480882789543890515214097762484599060090247129970019729799189436342834298677889294592926375980691179223924833332823475397519450375116593982894019474982775063871370219068772591295202671320118955140358045885343639568470873225595821363527452862081256428234921250130303564638875700324329612868285203880157784052294500122037265378489161456743886074075514116670488860204482250822760922302917723143648949604865165915200039012778083837466510673156588055580620978492506102692655217661749871967346824070810862444443492777920573045027867673117609152247879113710865497169194172328134643554395389932379667821652691186305436824716260354814142529181369644449559292091721687089743928554536334776902256691633819777207238415692117111501023169997421024619600367674005369449512344455095882570807583420264854818357813286646902700886275723356951212764003137540202402687212090245099404513181510225257506158626381350160939378479579263891546971973868796862418446887998466095184311858599973106120361842490517124352973294594288302814802102128694871171517344709904326693304789973229790294717507019583219471959658566372724435538968408278391766870606561176549019876232023235959961016570475153285229146512686975887941311234965059989421008944398123442088657680472040391787520636074348250286596351927080907631224184618779557110864850237799898109699005117922165252388151500197209209422576449152702506012756741950741290485175915396928006681085833222505385885318685141494762925084137301392977446898859298347402663589630180311107325951724097393324570541284190589491874604109977376731119143975043804264815824554008779520308463842135985050107044592468223436291684378438086890968117725554011613916951932867462179496814055087424992807893991492079185489052241919870187500965663570068545198909246456596493141087610206125987786675690785503504123686131390343787867264334794915759126761576184172551981939720327504022103574518010319475048656257641229821215680179722069002980385523331985708112985086758554055833362785854041499679902095005837899593040857566765020618626331650530184142060700954477863653325799745282292893360467960112370681921439389155376700014303060796657212879234552239696847719673121755136620338000171418604930348408815580090668801419180514728928512827828129746148565207686570150300263022926767930474008976723340651167174367939617982416719298157021093553012550207997953411379858893900007891735399074397282492333889323440100823934292784922678905010441783703837880900836044318188208543740463256865039928845696656132418473562036713094996545780525832446685162387734093384677570167497511779929306467255155682976016536102618425659982359376685277712795563302877437499672784659632388804410795343678198101042223068372083551649496715863646331460788991231782171561652230456341285556577792376562591756031768901545694088334867177591946175019821199524292869517808345689559122711157142453495899902527764243971495933696084089035061564391273565401086227865382873763051522099624305796726836688705411235084723987091539012386543450793691733319191745862083781500092662078237160129618820194850439219757062593895828003396981757525769982226944481617236376396075104541486376682229228949128713051450748063411766582422299146885054007626936754091311653985217900875673134455744320669079040940384246695365361949080925220232133269152241874023985199203132889150734143427359426963276350258124795961653686989615671872382450486756736786045270259406517064703113643828483978944271853619253841208014808483323125499321692616388103412700631126999500638864341276957331759810879559202042650325680092189892561500537937851166783759519641457350514969692021458686556564867073373606374822913793088972692812399054834424824249532722545301405826931345236705824421407180536133272920154092260523639500097959408344338113264707507715091530289278859427228084657996881613838472159692886435948217878957453041060042491141958859397168375924198080809595950969835803586912241061162189545008597219812640494815975322774273953942333933663468549748766540167143793588032251168613641717610623218445376066632476290155850643474994168493855144553297134241667067110188242883969116446440129564499377800259294149728341746435262101770040267774524681176493461067726636937730696454298886245739433915507750288018813110206841545401101973531299471911342906329431357949588119702110069264148896953598472756436458411605915726004928174388064231732571167708400648816910417390981125947079682711674453515168073740250293710648422120781640538768409391869564497502453770829793951678454312138040660620090972949587271109826270588109108757836356712869603967384017124935094015905964044319113914438959748972224795917140455461847121303017999311653955793969634836551236677547414762726359940982866905104703710813638540456239489255348768583842762705249723980415454787683251689455784330496575878939105177787708092981817408659651578309722155513225531706320348850405054406498472933837591543202163470288293941004849212727430456977954350149582956501785190674218389866558152229873293518258719124873211859329665614634346878287133307814274264302590816582260140055353751935143028082102714162955515940161829560091950484711119149318000532013392344836626499902937543624668692891575541559573547187271046203508446617281887304547138399566800494824486225205283883584210673709379259882621036353592137294337728897431703313975486873037292496188988641325235137377529410955390113405454956791879146444369774036748303480469302617883834951012706956347915949203424869075622601460968493750914348641379811032314634288345584275459163810245694370775247975129609471897737174833803362129227956679420766745169778610335790849517493584827729151224342852355377340260605484378750997738092524040906726127810892591902142737318737955978440128366774814094632975716303870346566159589939432412109799868302753452209071111024611673141117752001290431133978887685727278911870531347545170783501637796410911851922330159951676819508467481178509572058295880530925053215281977419959483247781636694731480528765189423668693469215333328773001078075478859555123332015844192790745175062042687865226210198303564440497853199702951316973070189213244752738190579446594019475572289030547328572027010420395902994450958068861122499053285292640555327666517282918453169205038062462578195276814604950429775295171008599229457762956454927644964544023014566024468313344085769848410742362597105399934034924080329531684576342698276136990184927604270100803129006415658647719577020929478138962959108695360259058711584758217362511771958496948121223962686196901950233462015223744281705115078877569687081191401692152799294137616077158607807076903785132977367190658910753527058490355841119299500230315873247212139265475056361282813681358185318876266699739827323881030223743042836289208371357321421556298921896276986871723399688973422172490510089286138124756043449459996100655979726667068475237542096322756553874037670622639082697117446140220937247469329426400694913330613293802790208211118466807933405050709476284311712729316722932552992839244431051006896523778141687938401262701740844255030291731006607873225646894781787903655517519509740013844934703072205659224415062112270435785237652627415252222594416517285157369907831702669324780799741850331790240757835844790139402600756747400632954021076359484122325972040939933359730147770506289865859613524601688628833734321346010486838603943699187498724070750195039664728249905264238509498455890274158151976299712226672759455567258740914633739587865445011802812483756354441530189236335935154104370162873154525184139039438797184309910655201441426202676639013664236787393791222144969448897359825601143834053094567039518396941006612789972227602186789997363118182626648103210862186162184373695647209358240071753343610230709437167109132924433745089340614258765557995788258794784862031543692794549662893620176592090919883727653463099760633387999844764577718547392851318629861583170478642028433842024057181210863939809409171344928521286014739426836361529610898246122153756542220748897397552160139681587345540486885429739089060493048627747879399626134429722041303772138265688237106071955883060654268877278877813506005000248570490641998911551313619216514128064432572971746512178769331404759407965420689849285622746961859148979376722757915975925950594970331814561255050205613524382521590592895245066257097124381084637978794728023771049810659897318083658992653098120433870882323416792988507609937376445379954021721807686380917101296176425284786337154941263974655325391724761707746595725622971671444940081021129404678960298086353696724385367256376412009341842763777932120629128835157154138310834997707687647061328965330144237720059486529514673285748630488010971121095260645339280066820560055504835435393325175884463622731645528318468388339196899999763747960560258529136133382957395904727894781359026473574182092586833009616611794268247855439190900855520194546690522045115846601915455908075277822905466278300495986984712762211230963978369031342507320141120826647485904983789919886575540391283975638613621627855136243517510502208737158101291388624986408693235218897186443584709301651528591601926465024734582499647141466282638687059696385190384273992641047941988216378340161434917643230296481218260604156685216134372574241373924421476943908371480676707633342923147834547174770232480462456513636705803535536899285159042389614269664152914551619023379145142265076423485969056316344473183692843187289041799342495602826355177750290399333358653505613189146304670868528220483196350646056935036146899599816682159065339057314558725209832586447778789150923215889978683671573597589606584535869404982847294577396058778134879792708622598430503593720751317273735955766729424713446891315897044051469477358333819362929210570539472552476876875765478441154491494148631229882418429739059595065988811679867170605305259676530123376723362951824190237249641188237136413578342477246597762400566962998996082220155791042353824420541339000606891531627756740090632180112448037623740016994060785890043431832332114185161124563664210893912405525921081407320952780287553478563583027054853937388364322657421385103605902744490640430373601131204799449746262512996060996287841164511226883492267245912639046082270624289663207844808332549599613899932695485819431795005348433124538709508733478940969241067407627398258238901925768613491195657767651730437203581594536960517097531989317877269688721462139306534091175867176257081040402548314781427667255536319046687911703042205912971714410016673384848423269684058291832996433518836121490034289368550873885843635687773302424930334080313425713493239718253988476105256216961370029066761723769941526161592199903198504244620569915618811170304381086203161908232860458285387272808732869398564811007760568418441007282007559456578361339636156668563248313095934076229082932797977956626117862968283393512212106612521040194063060143002509420892507075939799625377870235344126936757735802890926371252041401884658448930689819560518690091582965537670347163757438521423520049321322846463050807968718437041831208863549678751936277720296398419693602863732004658883378546979069136641381687288792789875454813279368152140991085698292073913400702242128184672061845772149981283622817216404739307120067912812336474862252835896916241683731284797048729250078407790171796449207251175278900413904847527815314571955830933974752110898960637981462264292184838352969677184749070094842585083888258777285853090906010720227408448603530131962073690194745822773794937054373383526211496045213205334321913194558374623457057394859731436599621708611045501884290935484946858910023691559984303680416811057473836909216190514112257346327364787451159661341261357012534652156011296730275108509731617224584328903106614641002789462168675564816180587093951899819601398442271223038282744686131350457404509178091703265027130500992142923156925882135489089404062474321694140785914213885792740893506603420517126232387363104632723311431718221016831821243287462881763735026481533247391356867557772445955741489144791439542977673916321751401315754205722892755502844082546090450027389005891002400646937985651518904735058439893095933279651467294348094322534158430986745944320127276336578652649819338958419977287351920929311398355584758707810610562519597707170801041011366523639229422373160020025473232580735545079602801538585486833786789416305183975251948998807013898965224672454130948472369924518891471307795976583037647067831588327968646200293780381949071980548311305318009423807180991338622413153104339983997716011063372942289091470274694725209393886631128064074537866008155222801002150654882799826154278582629991155161916591972238494618893458602292769148112424201635964525239547595889220481222814245618674999114975901409907845864565618435802288054067342678427969739814715940003007892887389337082732852113113617413537790679353921383823220320689483815701032875061502371118044855628361272764980930863246349041598208087701331582336622124922756590475008708028965220562730704183370410571532020484269825427765004027339793447839437374289372197545133773925452963077493825727408872275028979094609838821925895498465171290675169972981191152524774859228634671763394310781121034387304853600959120966899277764046199560083185681300189538943089861715914292400762759341805650153223550904730113792259215322983403752719217117201737128685001114652571069561780993685043770395428785680166295389554696597915428239191103605122709867566151270410274200069480509796978663168314404867644050549024290684832017191515359218769027907946398876125109556413382183351212582961793407051280890146033790504323339620769018441361690057028210937039817698900117040153290599692778733102076222767935678434952380559008779206085287190079709261716489930309845012465820556706224546815886543708349908450595837433130791472937668292317967833806976922102121301881955594870393685636760486068564395577960766916738923669897184046392515977071068822646070318556470084087800624223231041736829624721496985573243882046609414946578503750472197061134469792517659320725723764430512184356634543872111752095290861340931926513128848415861091228373523260367948648501398762707501102726182290047628120587764837031327316949887141185064727320658856787867191415302022171772086710117901523102561733621229457754582987121004731080882155313161781280022631416005030756105607227694635317554393488121963676252112792089876672325316091098876379374332759371045537773591616917164991600450774238701344636832027364158514610896402281592526698942527712690725053606943841556575946837696503161350346572519914804937806202196044225538872345864871641986653210190785320107088240832368425784061107595263253689696503062496615202672603264707124868638445232584660380170060236385647867129921277356064697722604808601728176301723405358221082732005057258596731153956281238325843414429675312253174374363599937294693851996631886144966231692193228538915712093620140311125917483015915111183063025454118576351302962841311526465912009314945475495361746292734918982388081324268286913051273683904421506336582352778682588742934340420834531296997791823861967056805531940756548640315700298038954982485333752815175026935843022661426045308918692138219867675126226784483734929260952075271767681734022067955253261347199555578027552148326570011075097645588740095484190069561901691599902451976622305109840896223225124037946931292493143755077238850812771342587499323072132538315224850373556968825052752000848317609948965214497000720978899452722260366475454326305955498564953120756331901875957918465124507481214289990368160838240181870875095911112787523644992549831695471838715545848580518674102603870203982645264548300867709196847478973524562429255928302624174577241833237751960928898632926946678372234360589180462594092276992361961140354606525507149665501179360310992153901537149765431162519795092658373641722960300066350229745311974994166218950536935755046168766263898000349721869358417207725918739970697385327399172994573393952980572781769334013947467905652509966492076282485473214080899615156345508045006403035772717251984692014724826861838429157391439093555366310922307566384069686950242506845080581027302385602796070407930515913680127834082393402913327472185062730651159612063106136470345496986151379401425357447214313072397810207185148786055327527930276078667026853482359489369737306323782524839922866298273814197099738695966066843391685041515631452878440874545444836944000230069842898487568703260257250946818933587362507793390586721881712373245419237645791782759449764043721680014421499939106768814522438097371947302314099563060361972232124358821655773718063387970643387539859389672911074636498826941902067760093035189630783987810108857153348767086462889534010466618413983000123842843795348750575633526602900462819773373108013778784674819953717549869671026864780457238951196685458515358225336031024921538577869031148909579109771406592413106826581633392460357926706120857850713623414365741983348223058584706494950001774016781345028521664625656948284009001568149052404918127845292739512321520827458395869711184957476475816029045061185123796954106009023933724255615476372835429243931893896110389655264767593372470454119572753187516650258307740472892628367010674774867772453594318889286755638427121036352862068986723627542481726611654612093553628401713406699668812783159349522856619259998262199284063346703072549011389090769164505739447042779084163161758960119559677206656947347833892421546881277474083603009413998787183645473651273678115846200319143772046533178484101576778615561465864926607137123664384111019151267033215473469354637133166850612154042004737328750571302768274586648939063452445202755924677711404013771161987691860792339399587456860937851401300856783777095703178756533079503150554655662976322497959497907550143210094663393131319929391043219696461647111858225120706100609015603315874260310032821149437197709117733698627253787757792514092390398365179993951660563594786000974434074057128739175511918970966042352092021659518850867771692498331329247604312647709909993407206493190413924495861040238903600452130089201403131286543474876228536907024244813382699534121249336559885118134948141770161551909229811190025108121575122320779139778379787066178526465785384884747028272918115561256608803037538309967760821592697342445780191806485449674952880814549059959548527020328326730104259313785609273923540785943072327962932095105717503219057335224535268498807252900139422231348374486612607481766216552884692983705194314169157596761808949179793831524590042423688927726599697973661247190892341338834405366675037735251295413496865075363470083765661504147652638416109423343154665345571891604097733508020186403936667548787941451371433869382104015653702043926754448238532054047056694224310538960214032155531379185876240871214635067216423037654051124044479698423800955097160027418101280284143887995315988215583408675230607423349522622089071750564895612049609693626847443258935132972422350837294574677166249168992263624802579736496755913967342447540719277892041879476839684028030303087861517762136452464378730671707431029915632366516577526414771746971931056726464297653636103454410733955232222940834503424067817527113744195872684542924588705207043397123852070169484740013927606827339699375030383743174448031923396079120885653739176331812894670127813526324600703983584009312783118908327324429062769996097253489515356588111114847211179654140556539532394245720224945351316603365658995741903617764690275117539181398968194913576624041034094042167565899269225251870576096722335642847367409916026826363132848325617794231367424883653336833064191569148776801418211943361817633271560320914874474347491787367094294599667273461916011072678132181714851916311570423776804240237172074280828359101062594190234538546899236893452491920414292736494344312094314611850080542262484034037641005717789181218414706171805680054078031986680017291140392750360193514677547858868310282150137591270209258367603083066510713552320822072242895578667277274228021924689882134379945558778458536685879991872218663423047657250535044190528162405326063288241366704865083384716246316416359522090097467783215854689538552710313662450381297923030643575175745820629743990263123288833914302740919688599697048673325922449000544804182206850786697013904271764990193157907636031261310690340712855582919343650551117582194704708402653293125728420561618450281826079201104367754580164347359563614541844516424989030054680049301604514095148324877805996800828598881574414685852445307102551884042995905830143118955466157102251084959472670671584082478869828684445237779783716132958340321214383834045444202739732421301783275013990306832174259298735966570445511281563156437357799830349281451647178338706408105289623671677429875748706886468412101710685376884363133994179830074156332482815633033097865806501544825484565368453687652182888464233474437127745352551858812242005338301290402771048326748481490441615888525235136043239758663723729209003615446329809408925184076597800929122933345065384622341220264375747578381304217543469402662799878421942444174514637661373842918157552427562260038292023137678122644031414977291033508643719431237668060026962082615709038856476626788400304689009896395287672206481555705865975006522944989105736698194774583314331718648482426213880549895925668308141463158725461654988164448704033027170541396535018739783503897494097615915526678372114861169499245087985631294976619338827530815147508973275159087566900331558273180715078609501093248542166961106144510466620991191765087083467722537198980450450694966688788222816153091456133814243100395148042037076336235415042346807792303638915262297335613305619024256203454064542831984985101885402824423415669717901203408371833454349536971332108127022031827511336187174103440046460273932992728199680489748428750233096100894862351826245755026756241358270687781009790664669734249988857500421377624116468567853542768760492096347212179609029925299510631819308267017319661278693006294273433374614195309278764507804902048389822584971851561697952230088291791933820238036324757123513827082089853088179331133875009667384532490289497133442871647538808785542091900270163232335344853542453447725952584698414357590246401023216146928708207699344151494220358633752909642632647734784584582490797994422188120269228849578730019434320800435972755998090585231735639430781781226843187930566451863304538797304803507358878430351487423145694283860158256490800460176279710640179319553887171745242609998671091675610655695738949233259855635921518364009702226256204004880124870339784532807023326016930095116883912562614177719375191975909664058274326415247547641303054715398792349403152479566563444709009043129218531315340394065957068529779000436078711971848665342000752763311063710530957784715709987438380183523958969703228739904283405614647331808745038587520262062987735535494486121253176547205476747029436914733868190835162258233147015783370504894093229902722940883591605313944587395755181296000311136869228518496032238789455230262545714459062790916823309149926187709596511217305117155098021580898984799315416383455904857285566718636831035008900432741715349232983617588807550000536140017524247807002747910684059641951070317714730207684537692781226437732928574306043737248845512622871377553953406846366866852118015540587060421449797345474166342811598926863623194565360244328303456428409376027369752900214493246255861217963910098002437658326674347587469981691594153847797426102740431654941512017790677322286873309489184249930667488298983956291370722356196900765415557178149475723304550203921788640125648916315682403664899158837357828730666506075336845406391169650474115840791800497535153776965469333807482202680397166645005645151456677465974388320562722546901871600710667768607185966502466172077635712505499654922616856220911557280700140219370878428466041515927297102891387955948931539735964533643589256390360691271254516171286535176222300356749911780749341349073881618952329755019868675987685716728336808612676205709791133630100797114909090941332204181040625404195273279308499408872378447365870501910493240542243997387511638356310105291813146322008648020084645018205260821313699579829854374639412074888235902420758158411380756877335699805012772740027396775254678074428150127075556350754604044654736865747868153250680015273468944962909589293011700926224538292968928679813521993054698940160591411242129148178658457169489875023224391936494014429342184732146547183914014488698226254879831208687889949064843315413344460379350883193646116738864968963973899978074266038603562676088419123760109491094678955836741550564938633584150914357729859575882817386691088896526873449236009889732566731542922425774986634095501930929681034941584698702615049439797209222140907363826868164241003227230154442560532604497783060556364776902078368869987597117179072306614784824743381649403957897694188592271944849230078595404985637544804564600201476131403573642064609789466167658466361441050489086856776501757300027046019662357494313444434154890552365061733612323489314612762803563826293886126988178525675366994955065111096857081789702571956771802014712904104672253475048585283411311766126706537911136497003077382957784028907937823030360413446118687288915920308812565944771356554350700222834731712241729788784634986735330805381596256889683908324339937831797447041307287812910893566053311523556156147587219635695715878894318597427401032889199639949198364481231761641182134435690318313878199802980152596627218738871530769891539158561088333305928470864517056625658598877698416195133880624568652371856155674011093462004812457488591866014322830507083651471031575255300778970144883392663512479698244080552204961980471363697183039328168461967230473078870249842407688969983575389565637233966446297324561277520972924215538146508278526861701091957042619692603680810032058116597405520719408501147816582034570526336531830569301469134093487390331008513788086723387023268147459996619431963869448447027976442231767363603096296513925781359372506582430245940371274564387090272448702854389796444003346493454903294806083336302200526154035829134113981940395444339076359107266347510122197223565202291303497135057903888159195943339698782130782012216228990138266192851694546608800375992364138322195622367021269418156975812594779746581554124884000914387491691956491678032062365575249618254752482802179016207317589492469790703893378390873990475998924527933423323540679642719690197691424407951393996434156701724312739983891228454667795987885025578007831327833028666100261986397036982260901542017099387684285059794370208351902506743169010583415465678517322413414171425582652009026027457111362640555253594470367289941148708540081927577651973963012852701297710672302244980029001807521716038026146075490820891636265268543568560677239710363352581129133447675705798020360287311686239656210748564051904714466753774141391331168170546675637993212879633842741787834019528143469080532931728867357836255271692466765278223342832470038603006808186135367813029712656643571066230048498880484386066747345736866264537059283203812909569402202855192956103299763377569059151166570447051094747942402648534526899304490742760855445298112051618422969099565719901817909721625163060639627961268769098675614252685152672471116242377135398807892080832186483637111855042215378720190785058283466820015324014695951429812412586025290963496065731653454992916967033537512160177133055966843466990800962696463805171849710686362556064865838837994414264804940430565232315492845191158971944085264532354271893024745232373171277965590563077619443861853078373525350947488813254006305021411571211138479204360110025670142168601240572263782029760206108739631628182075685898726878468168268697250662007103018709559313188048121517611502226762373198456180294332086649623424269493369788566870527099335380545554222141642120013714994594787735740927084680642220124363373263673344208338997921323531310196317486489831552712084398338130294145663656549634474799303658731268811717025273490088411315775540668107390820033705560657671353791936991094914620106412951035137235658137500864922528745939725043656246782586121035917840915823213068822672494375511774186068156676044749291598107167882174951607352011320445451445522890931677004712967581237349150053405920825290044382450807046517091361193485256933809279963164607243478751123399307938030471597643318200181589137335185843505556560262224041706070554834924097459846039735281538420119142573680612989567071753531200694590433652880186924229184462056694655853965702316962328001972641733783968399155191371941664659969360799321960948174928330226327775083056107672037043606511444930074634952811405337540958573532414029871297351421535908952009603086864362056195600871000452866207393740880996979599479652527183236039854386118253963444533040834423209075955969833427682925258772363010687516756219537410460808784971233062944438353810319152990663738449129628611889677767923010622418094400811150290357871973702190219522057513332659840362098047881927467592151652027683869674926382565225193715737685577370900668530141075157035021728600111142892238421510308061729805312223674475013790773245987741100432823587450080786879081910642334189892082360835221079281957414751622062925339574311450647398744571371664674765704483979406895251572781982491530992560558576777263843698097224020337437644841116776642712204090897032141269512357567165184129253431090367192555558582534054678503782947783088301018809101089010726099154612757377916153447619854034557051802707340413117972513631221173073751137011433427700361673482717844535133097150484659025033332769986940593476755184572892753352624970062017965020305486993554076136808396941967795326166873812441551000770029590792988408383682580966576300246431072252265926026559265974538499879538471371544263601839343886944042787408295904959782019571864166095060987731295201542553923850854694673075651747571765783719621229076639259950063636045662250245676154567050486189407047032751076523548816779162504931002388184538918162568539751785167480058364005937821701006596447126723847042285914645076819788746590002487731436686508067950473064788776631963724908195246846158826939814971635193321989581484138674105688889021359343929864175505820099573367140785894138406053228102891619744654397929886602809456931776812038953703075184141590282977491223742084268920704217467454309160508873162004787067462811856578065095212062913723705603777935221087619151737975313760801744720103136502425529583052471736221726514986523712975435253400530574716678170002357893216584493145576352203730528279860152872197563008970929577415019842181350892263044796505655274161498873087120307414024585328736362232306360757941240290410864060019229721961255030948739916917420472019705081999683910325725294858412968199791124262454348302542911778973301039354699351945881855361417735008754654537338168807874335961515020555678657331566501032152348617104221699242254457446366888821969313925653196201368419264261632935735652466772926742130572356529184272501649535282074695400039958549431730387854808441931815900874692745282751445593769307109165650130362690642827224327320593020890476897459505093546083593639447148948577309437765528898733934600329549230219510802324909726602336740897144573168435235223056908691775343557531716338955039059608734546907497256784356793267286982632268877503775270210115795310730977450275912344946399285213983829162646856243609759166820570574440419016258822292425663233706375197211217608813561138117367478089182580025554967958138331501650965044086931076526163379271193613508934526981529333149986227423908337517855521507221123747966764980488246130153019897188688224983630929202032863587344818976217088685194681214253047076813905123666130558134986255802269525601782660918622572606810895713025009177289016785503678842026721838670650616593841550424814572197941775026567500280334952731572007904376194414926701395204563204734868821955328679444767260900264050175789007943808829508460069779108688432162744709315787474328982952376165924110215392281249749811768489538153959370566551219148636868743277359354199222836046955984025996021462441670221803989673865147863305235140420778769764223423633735458780444518087215415918395808887260912378182802704141393189709872573591783489413163052327155904317202085376302163782151209424255646724423161236921590654888706605106994758457569171249373208175512549744651171251402750252955446178203651934509876115186865560703906043067328948310144310219376937066894408383550095139449767413478103497620999903116686028457710074607520826338548663388348520642072065631308836063738853961491675288883362422574360701739300930726108615191507651807588306036916129665694797449249587369774358541020856455892364177406522316701862590188929769640258746943988987245489701494160127233783418318548552723898001752801654674359726778125810280697171774526357240069192239095420005932679741231699321546445963180323597655681687263106236873822126104390228284661089573313166573003920801158250015509237330777080235488412434214007861791999049324049064970006225119355246111206128166336782031944408461076219286851323873228075178051387675090288371235652818090697127169802822711552266906384555285431734574441947534270214948645718517808813388378898700373691966146902081241006429549800497095259543289504439044749900765397658504757489056894543593986191463873158213169471290418419379132420155442225539882103580695604643875460609289482846404700102065395124294298997450884209911978661924849832192178244829990906295744030347525600772432274699805228474424531304334797506190854164754014719736594663287557711164743492322881687143718583092791170242956983348724053167206143564134032769648247016686431664035327461742284498569884209286834709335916535917689272371916465205418306316406314067572423518806736150363101743142861206990478847688148265432409208139933860366457271134926786633876201830937210288525500822083034828416107273420806932802470704050110789449678564589832656385813906021607422778028846628134736408107870355641858047604707154749486456858030697907096769282976667717223547938581253819147981570184966385844541985023428811591900580346077665351894152314203421036302417236046109445869415835648801979070395800449992365607390489845185578467934160072820142294501419038654532275609521475645755480912737936534835882825054667760580675217806086724684294899914181624488261475708378710623490268547580747689041174160243680296703940469974424801060757137901632386466155012451994127644780969266925717482406266460581944822773551431854260101820504379630713230443897583532733090048133132981280471248990528202858128166946899766793977511258656443843744147996636081909822076922560074391614084056756907385351016981060347929634030778583937031188399538117526848895025003424180417092840086662909847493970505934611946904622476457876410699674883521994407165717470260878340560533950443197444725413781908253911913205297870889871948432956261846034992653392078572967411497710095179434834254049241805995642581027950401048726045836820803495887940760848486980956031700283812845005872765126425927774518967665723854600463129261161392925867043967833171529022497197727930049409050035254170740120911750520136835957972522315460727240252279425078530632102156238846080566916244940798009175309310727075925997361764929782094761140368612232825294908193781099591822583492975943659315753207733404786930222335741180672090091298685351353824523753877772845894306295829912266435392473600274282067931102015572412641146228281626111018570706490608498455764867258692059167965275503879345339950893698586466277416855831140935318710855629848013510118734961109000022645729722244430638749226362975983065670188591860137042761554428845530782645738054793913284860986119754559863366324391467386901115685886394365994740500140759680203197177642217798862727799023741538678520659322372361500307215300276937488332055654002597896633896886201960421690080556976332228420068352966689592364936008521522171234478323260184530615054021414141404803463766205326838315022708580550545945250702089897152369811816372263073734602287358628408282998076558629616081223257585410804326416779989143859753954023988395558716062515085905916698975277270912773963041149079763055979050555143487241182836757056489674267429211498863740823513194322171043536322339110064903416907158340436985086314988245644645101861017051831096221742566681829229796852975810335593765703749315167251266225858050800542917411792673243012879469378355461413755205888168330448622020267086944464836344498612446160658996379680106024289278631586450343585218844170653258502821534884810701344139054284809303333882194015921853422784568563241362228943533939297958449563966290938178241717092153335172367210513592441828083443281350608798640582312874257582919763280081218556677578286716400891740476878020890865934028300143497072490663775010692906468776536585400701227317787482497544187503669547102379984557139989465641696337261017928411959915652859582355552208260695361307459903130161498579732145028862767238395285041700019017129286435506415099020945016330511019914446438571626224450547103749896716605374481278801449976203963405815673820922155381870339379428134979809813095310198786393406668397771118690897913325907967440553107093836418678829331759005438148058437151723953467736007018037763458036941266120612431894520036392095947823737187053058037592434188491574768724210128212979904940936210247853716103930573651092323956732112201908502511028667302331150213519422319711522279659432436983697601902106282757053418178034792491437677756259139836375617678684151267341904413875815858990735648676203737894185177185177457359830207699104899445267444481281216066404941616471778150966279560998861595025728650212848299522160621156112672964996169112742995883086844096255305443985213096351847806432843411667383256148080279757043744090986463563604611625863486044627629520200158828239963825964764721696779465097716246543805046101849017803339504279714336622561612044968469862068067872104083075901235576473820361441000506236337315547785266575440435091916743160609232370808900823337368358618584606464182858439167585167267845452168047279008730878802094835336904331286221032184205453359676203907315799395719664279576827823076311630923172019212492933917281497498673033325080148747093381435686274605744729540340623783695364754187988031882636797382793561921659631366386639814166330792858224951315626494367946912612542728899419583547093680863891521697440218436389227351273714247131488416883222647244937269590869004811580647530946547923519594772389307857517383859352045860435334507567860178379225168757782148937326582013196667374215501534556450895314929731926985596908738084895229209316241941957954963544406705670344660842314529786594951781818105740851722155447622634035894100886415470718855221736618389390146397803643834016721449193640240687979725872700768451021989692840694476545084879253034782533582085450518924982727685849844688019713990425666943447814860647487987566934334330866959455961643793509699577130316567145124468756190582211844668494742881999732458648630603269543561921269606228181832844171743157309592747333863140205605349828553001659580755858615403915046514467978525124077154173901019981822021166645722022365075981641482522119933850933080726278035093166133079026186364040200118520509571374197156892632987025229588379794428800419940993871397936834928787953762905630912375148295903316007600192118780101779217783124979018944083625789656798954204943520759823967560466097618784457308585458415035322343245494370326961214384495971244814226365581435424626875076666702786948251159162719826957212607412595632352631967419884687571339917868440126371375241730460511687461969231584252108576836966124285053659826972862602634013337732867887096446771651783651827263233259269601397429924111002856264394829161520403641431197763462224674978759489862407110591090265935348564257163784492154312068682702850910627269508490452362861162072778842656319193283003046046753681628902274408058026765321122182520114290293063131967052047689148095883928912437987923355377086826599316383381974083162246388540411780945525882888692884718383781287618775604304595777689838252951725061754754116782813103570773159558758717231491537125644855768767493962795530331281162464194403701765033257253935515784882261811866696505579054648594993648523353525828356141940980898652739545762627576038709830555352250499856575755478107365279008296447351743510035900231600761633398382970252294362159747797551912728833323765872927729080670149355443303049816241976451545511454186510685944472487811110059287076969370388340730797768736353685441859094946816769710339003112843520365788270795698837958349347419998552337056930397800254854592665577622618191409045772722377547497643128710831960250062296264089016409233067005651601064395097165541194971833511611228331570345268636100702947409089656825371304251150519045945124926147565760985218817873075903645013423145531542558096503447297870856116122566585819905116208986560392924239158243417954611932884635741636838221748376920320047640108990258997077738615202745053364390900460978413804169769446702205987556259646340970671322840242065393490830434403621039423951049778553660438306354060012294748575592955247870423313762937949196170721345863583729270536319469027954810891993332105109791208937344428181221715555201765398992094390839188705060273533767460178733894427065590278892547677097830754213742817634551202052873712182447941302482333572062106949648812096232914237441029944129244641166794076341122806623970147375564175131342429612431252832357578553649494805927982805835436307716370202778834483825476716621508681124383225382966642935693421587114048012566230009853158107588422653495589099850637552243992954683486581560176829506661692866237680036657337561089353994586000526867281327250164713916200692760067925629656948292818002014239463550544442646072354227031584174626581083064653259688512414768809198088233166776801466613760800187127702385763531723439976561066650858145653268647400026307140121948693775518140467293823612452598482001174736774716939498967225874923583598073865013135434092389627137950054001026619886005215804225840305173949901223812165034534150831480857838928451166978122246058526857262890048182158131537538685333238615632329954921925466910418557997525513143992544666732154506610268703604808431095990375425808996159881105475172346585737572590440668857803703450961257003933799701234349692614866549416803708794102208307843750437900084351512845721767372976050192868116991091017797087715902672081053403737082549670101843575414049775964182530031402651045675959948265631043002198341514574698037678515066101585623248239899399548088185573442986464549086333469219264828574710488925914433726189850400524635026683982454670634826185793143201417794800428547317018127227816785182235901485339883061598254758048670942488121014772276003352367331299194037562677943282200749482271035918791753415758406585842429881934045461758977743473668150268120082670631471633924867998212864419867868164839212751547326049465356807852555738469592081745961283688820641603265879982714281145220949411569931140527765874659623988836436566768241973188992567416328282786909379218945849364610804994424152491399656062114931710137234799746978275203809378977721821789584186636276322192384980534274863860130097463195785683613282330960024432232515057282121159085493665761817029071716849120345550960241907639514119640345163684409486124494060392489906197413118355326355582391856050851507813443567136148511300545913789256111571829139035543191120719434793976590562923338817056167405716509531233999680255308265030458424992571866145518990510922007382413214627875927553721549606418456723002434202684572006058499660115360563924429091831867088415047246510032417106876500862031375758219712719019693778075690170567417778065521917036059559750883225345666866042013281987614327259373354192114015791204221023544226365528928020367260062516369989848328649377275794965042997274849691091387388634535053546988896605351723690855887163898066205335794957185117507702456086638990050607003732233190080967246130444055335921788637370416869268734585431104090755791868554062311673604136421648070394205048747358522313823406139132363646576973760811185140132562857485313734659141286046315306567302149074135772721275809519688334639133132629320072557517654304112564504928643117785640178337883632018519309482401448928157792003957680391059363460526726824059198617105731790603987828646552663610446431099411461649371815588388941983824299333266237480023496718510005716211259239604368190251652108230168699594451287288906755148043333711228462980121551175496319867416520305575667844131359884968015054335296097497462447515487169646185436352747583215657011099069584920317300003119017164133689828768919706894130410958617784989225262274364421584656758195365655434902839070382226917089150693885654064740419312081413539032904661339395657450408931725533078975067342028952024740272782202926718882106313458065716233892040560598746163610643950734235060882324180461070169087516482300158972908535884377997326489584967759575200062526467044024761113717444711544281233166926303599783248093592593213463095239805509382767202870387814530313592812611988064811742484773155610623129806375879150083844201271052843252224761573548193972659935409430814128762944725514339517334764174593820395027309653335292077492847500948866157350630154221827525911909105941344958021337459977485886495569648653064585551565454461861203999393279985234159563444153735379009066857116260169140228399299641251838833984048112171751391787139838844600990500799077209770099433246296667979856080735836597861638698664598092006438213298632704151111671477006197046880309657812571997084834483157977164295574051982785535771349343762185096323979977702238412691542431691356014213513154955850651847029322876302134861302296098650451449055587566936351219604382580208851928188679242470615416362793879578522110450036939860652472165370917567513175196241013833940315378102421174495390232302184624936694471542147088699909618146957928403511140062436674528705522335227708372355653957467767792259685201867839016839448423971698138897301808512400660774496265998780531486451387466897032710199240479123044425164855516509809258551923181302424589300863710899551671574202151615780690739137975289840300750529134764482263037789468159967330252230543093064168076555647606730707924892651799566765898165634248620138049065453316413257879792975198157334865075829956100068652016383536846556288317823169407807764552935119873964666277569090511233580213226668813211598848090035859198969486969851768101545396247692194857912595197414237430403653822651772933977837415674309957923153387209394105639719771508743156990333400864953516450307646307442427799481516267725444554256623979755650416646613621362165967893003631536168038062687906267071581240829639378304338507191508470782777280682804781060512546179752410365818254461713957593754759969733589092139644030875609529550197353825614865277205874213946100780127511187282593389720659333599504226300135799923022503288683241177138784702674752781567102808985535490496621978708325770901976353250062979090039893757725997467055888430469683402466941982796590808842892833673913111261073094589904866692273950026327307793826615085334032214302548186461599573195467630487137722169530799165133596718321891678912605286366283289461312773939848903802882745496779157812053355163250087469753469467372669147806334410463979494418346212652293535905970311115517254810460428493110235243662494515698266637538767384935321523020124019008405651644565600315605926085457028532537169655081825300120548109848681243389036395197388405977967172343408020725810835504558379970089370254454002480559966779220661699666253965662692149834417599355355247880162514197127417680915881048051605761966173960715296928015561431268276627444060868909600580840699884575794582484433998453716006939577255628826203487044851591709833845726913121555953216815988000354969906945098824421412227260363511912871246272539054914828202678220086489612950061785145677483880385720790708218738408915385690857277129686859866099317963082642139349654179102168330748011361855008497526370928898296093152461123123697067291191691982399348540786129653391146983641807766339076015441715775256379575644135514085953391057129101328652448308130046134564771407486425527947336639072125226060462177187250444471147932034555571038841582180932221421690132549158377485182298133613209303067683632321133192966063379060875483254918626389738907258306216869500527168880638039252700008679908709965875535582083689095488866254600448902964377225169175995349421697172012300705367448392116441878103046508613076107206523160965165777962819440717214906595102606975889230021184518144834846014839266853689771383911044787085770894019601135544139931338641271649955984006707172208983558987299463492260275545087665213917672505698446655758404282123662098605522154091845316263372787334900472466212493340927593238185356947649199990290104721546731513305784668672629534754486290765097816728846769478091946548290813553125861272988908233058587399969221519763349395373598946912390134867364604251696282017192396643696876313704671239753175433509985364446839370415112287445436216625283836815843578831000638549837943269029753180022767540269851339655102107392015376380509960908189239706653004209681460112427970532745308911529783502316043727776362894745104444501094975651493843271120715436775152452440991485704778000870547681053850460011670935001842730098533918643678014617600313258332139404715179973459020413149129279113617513415350370230701190684455209417465630510130009699455924916392385566945919617008320479142989415037897387568394447928090039518240900287680996618055883965995918572924564032238840823322894655676833748002191125672785093754816099736035163181022599501275607587583033478307270622510371457261880326232450579432668244689092895610119351808094781322022732556230568647721234791498389842188437523256120509959463806103464523975338169917674506640474954293333612646738375329870838532035647565854097280576224738210413040104737835494603204691553293444986190183617231033041251359667103849794462856194598141906045130002891170165081316806519305285957782648237414717304028624935677262416533962804891561098316500658564206771734539385522276748942189957885822813269005955004662803395341273600161845177746391958847989510963395979044703433176290326630147082141717168897340519227979468944590356298390400684664599530626584966530708895719147233247719103082090315395366220121579680790681349498868947825351463674574499802938630418711211323661888617641836354408846436356527767197304082370925967203546830249125159646062382015417052494617243652825725499452792020903195655080257181714950094033889136346816264658767630322491960553447551308559223235835736649880433171532972467320858606808085116317146524144225073032486358889103733235629810616984627463141388421102730022860356695016926403626667969450561677865182601257431575267410358094589014150495393081267046348560545528992223201192535459396798394978411005400838209863664977861067544659505834752870019886276526052307795466261921274084014447951732260462803470739971528515056868932632121509912175931653338619262600097878778578054162575504049195594140915856076758828980539321053797723704862646466104665163155014447146958771686817795017687564848343144272585326390270437978505032911062072774667417028069746689556075284298359425769136774162495440977861862736125208816430663104014816957792492939423351744163216513555212060583180997719593450780970291178659842349922799541698085146749816537883484886114961413118266884024772098293369417239662940069992113939945179023722469149591667664941029129391318419700898634012378905317256919480445100872945436030889967755095545174491622940971273342377682600003572107189233055288837286602953318321734703636201786447360049582491427545479751412112668548284198642124297188577346032771150337190943601791840870004554061102046427463184000450386194761965221233599443377511131559144805759809344803999878571156376022908975149606058801966905803734789612334519189868026819463206889924210763695539293608625254117292201810176223543042983953768858365316708304695556797820285973483162081044309568401757693686818198770521607724660033269165495103801611772657426138176229282660327820773059306295488641616725513458004881559648288024319674092943380905437934991128744571502454148536115715824950897747913736905397831398772316422337364075091341753087903756700775486278484346892104669232962251271800627275822693665144944184959526495757864419070274095465111139829210867189202855646733527896264668186954684252768408986204712372301047307489333274608208000650108294777332494773595658867022810892962195668092039588164784338939180875404050276244308808680003031757718179274495935552784036370493846254718466463093607747820436742197902997674153261779604460430564569847361624130248720304273661114098964050805755794751593031650770170567287816283426745614330695825669044980212473450644127697245340948540640369451060321903031038693496666696320997808556164782845286506596560644636392162300509038203001113050181167288799363181144639855049776103337596969224918888235776460068558952383302679934282545556454573021632680237724114974844258260725720881444439538825178910941307362692941192853905136700217970741306412289416704394605832538529046868842219159820962660309998830012235250655210031803341654491074749052841836024014321572277112199523301219772225145995659163551268672975149394169988320053369026784625635409858916368714030359854688244222683161321612759998113089639477771971434784656286858110197384804114149786631768882601135008650340022315395797559589678128317337046760486524943955299471301170268529682561808913341512918333420871461938814739409299898453521154097547099060908433958803684373912931095444416587359983635260218558301057303601760596090710379312573053232728835777517717699913042771081630875510508971831742945156943064741613818127480610217248935635539829444665566870023413112774987537751255039720675543164465063608767256350924451028060719844756688547916066390948330971523812499089694922203084307104925354387529376485211920411451373941539467672722390744253620495517165676256363483748585521946894774061898257074313904075720028883737599880716302786209141434215069037293313200977160763802471021654935758320684380822242803392313729071362760348965129922462326023598423823617406935127548708770276914303501206885487532874249424266868270690610933628271610314188527722621525296999231152772985544221358839878656113120989198078558019255621221071836285228146516942949798896431736203040434757605887606009965286258963341902279676955323913521522934564052084096057789485914872787556658845360015907881686362381764960595624457428034836499531690839464105981821122287710224027273212944005785525817203184698423575556042733110262345388477339188933899001379791712298158257367022798175168692146272886864981174549234845141428593239952483581255356216110300166499710122789699193540882581530355994943198248726879800280480798200784254479848185515909232993251256748347069251264128153048188713608099021250785933609412966122757613531646958384647701618495402262894062470999074782992123580723253916287184804718195212440692480897072512893763411022160933489199800945306178195531803577369705084319278793999318335689062728865982983285724234912927959429425656964422588347393215587067440994796180758022534243288675797451311959115248350190183538387604483990689516990459855613725651667085001880185768071805485112897387387622745790485440086696139558788238590517173845382393722900848546412747492518242134443562317870835806436597563730439156514642680402573615078315657996217679289228125270874108010839049293889562701586732482843363706671240108309458791009575760713735201028910567852540574310715707113334809352552477064519415520768427374923512077377979991757482707674836282447882712963966237686919474799270459088247006476132982283255915357388670243543089952742962530528263667894014414816226235550953476442616934276902319087115755693979396900313289922254010389945344533896718104583533653500299063920806004582090855795353418077208914985822068864379437258667495775686570576908790867431634509233603315939130980252215550124033633908812047480818589017800648964910191165706408666384705622673702505192898840441591914091236716933650739853907142452754872630376141879153503397833516355607012147605042542223730863839897037349546341823263062426266707270228813835159801734018876783693543126032246545247408588316721908791558419290637218748440660475659983564466209644901790002201319466117492539967207213001684197325659796757910425355968510360331154726710527976634377093463031821690200595782624530272594482295439059284995223990072894488742969466536944570628492187539351966597383360253358023262113359747762725330618101273015949951786653886200084344192751725921347902768358718117372460479919244962354286624561939681507754525050353467493437412067702009926777862400454807601923876158113456941788681658329108669815598410943714593423218118707113851038260162047971613473306082532946997053019240648289334558923322508904689915573161093514016084882351532073245344917009325189140955019575667565364722356473361219662961263545228063907865550980573920502287469330701371487135701362750206227534968633317667912507197705941041503279130469286245260879872368329155791140794321224688902213012803607276144931779955259769488400388385653842007224898801786613624102590875932812558618100002245606503765406666166124695516931371200775559346990015786112331779447194935633575719872971793140955456714888184821014116533528079595502767545397812707547835153752222288673403103851371918042401763505568846447904167051700192588031324077909980801866884994774148879242513040128521449146551141189563138520177789461188043797890061672193563715607815375162474887923689420729087172381047025328545622415129396552763807924441723783168887063169936701178826638862025962355565502169987693584327164792718466370730374763532452222627799727867195150051317367057920936975625069761706107047796909120078677818121332512468624923059005904561317778753746365325775723627428839202244708885506598459850934310995859286522927932218274629009323519454023315586499460955236550627696245954549652139521205267882601339979283357231912378419289022607137272860071284942865594005632266903336735852711653538460411706065662730915089771074990205184679933953777211230422785095653842698128169253420036993859291097225932027902203672407408090009384155289591965016976799829719882323199612476246959552996375390297721326019274041035329648045096290737725581293832718847238831918115397639528065475980009384548081518989578539165680388241131693623084367141388601126132504034983570220308948649257779164426215955483822457298625559095094794862004471987199243959277286401641874995041266756941201387131808360133745232136520447024159777389072944518364895277249368358924603322745294809091684284638671082537330946950020271294160805151383056033451754117038970770584205855823557605992966940909616184294185458669532615490437665535782563246694328072782824207174989718393300925286882422268434056043652932284559481371975009523421883281060033492994795672840244394487531777112262231178828054041049860209852200829950021118735668808821308899581106061174594410665933106066493586756415642122250756987105213701942579131447957577763015628142242642022863705815340937209088622750307506738090438532794305154020157266431613286756579087097008037835815935188506933816235266930396624682971295713151810028918496736253720139066003766520552207816800927550353051424331415583745947320546569331596088674245476969638216398574945093933104657771920762965995315159584418211596947590510431257656561273873082259016419833017830759925297464660359881888841739331633812167397159599753921593098224133329728358788672193245032272033989700921310963877817599122716800408331847998160885562102554064614225908599203220755612502826618862582078543628172519250662976123850870410234841561883721925286190340221508420632362389203609913055010573422864309870413884662532763901741706855005129242836715150301590913014304114393365747096158851431706255131640845683165472568411986831873326615135695361556449491951717543286446892692282000557970713082771363370964784905889338385631662369173874981946704640826214792793975258243797785769225840816047976504252160108248181269413021687585497269434687053956651607443287217645488258806346583517363240436782436419577434631625914799470357039123723111569343696484935002859504740387332015600018581748989145451485834716292351541742070000052071593996694820837652985994255589814635292589465503525119300402980662311786125908479659157316748122608927899494952197135849168861488204869680819377855965880479343021845990969824502794701267004254432804371874430732534362612835677534941512873425651617104893328836312070479110376276241531260673069145055922062937841555745876478116039176095123746252012137643725035538162276973081653860997342104306967084594787628104674995821751110844780194857900085155838618763287932120404357462187379196099316560303906533122475520947669101999774150679390162295979866997744338696173850858979901067554771815598904988123839316153500445837870392816303911440988269264676427137619269900040766139579934601287110369864624657781718743588543988550157638966250853672032168989742242763621951667199158590432169653951709284620357100349186069221361283423432253246160866331925238790678895558264396053122620372462605529590902380863211857611594760233851855716633075259883348136045507702165669771129695639344097975067691291717076105696199028098723319110388508673778450490080033798841076367891440308601101651691166491048162428425959257064604651806411440554354829667108324139740664631299299220476487995870132658302280808118337312853202531312051857543051898811609516200831618488252233968687526860644595456619951035140090412554380374661214237764616727096395328864855074328717846265150737170185001351314936818901899869631483497516273215190918528948671618556830217319323353704625218111081224155591584523471792907494325677316784751838696433620792309182582565588115594064243968589967586640745585756062912568578129275433797548341303893078584573660425682439491302178122423158826814669001231696143433851720060753514846220348028722508864909280995102051845200805812831715851982409420416104377335874319596844862738649505873364574688577245919320455526661305044812343931320521843136095782634399238242248865675618133814575838702961645546850286175523448497909046268086310384681567758101089152392154662463722352802968967065337356826663875283573045410306674542797131053312167189553405221608691214284834180550753541574282644768577194402874266831714017928837706434588638516209357088857877108190185900465812782044856523640721920667121003072316043849290183787904057608883410577182907183787948017883227780753241077357851004452606831392673752327615568563908869082157999841637878293852107055463671999804421445954979823131668205930293617542213503895057034734382464211120832874048506939815042608940553562202998914942563863797915578935011213022767660856170118229370011058740887968111502918687452140655986145037836743383866335506314842134228595821632814753093186685922643839078177239878625481739330394427191231287095915741041965847569420267662419960885547410709661917866444520516205149185555217630157898761941201879090896366525350348955395820906940931555039861154571779728928840122352701226713930112498771680571238289419807429494430547460365346145435660876851907697253795841500306287734809772120644745669360294055550237403536604328692853210326544448508135714696676784758676392067031284719948203669708305399535214001450985399618661553307964381564272133912579286784605168257790374031136788967925278985412104632226315469689799139689581116520528867677473902899883188358961120237780916204776631968137366292885855771686995449377494377335222016414159365104930926195523639565702198108993027273918546042206944613275097524369725303443354217402687940957936535009350178626915959455076908290199588478363962454704191370155372212581125402274619883276767978519519507319997245819077667022216992101873595614620271239157695971968093890671013703449103486531398591081678761358589402753660391343223314384496072950618293221699269565593667377865623259731123149030122371298992444426446243305963165141469447012745844055805544696496261009792426899761943174248808304718278474102831223205281996791366230894058373079337094583815967118018938048548322314575119687892348896031161154801353493066175743453830677529707109719742502325853996792965247694104855610759075803300232944302116928611217618039914417895939353203851209102807239746877613086044168662523606811438675348438398914187040646182671576779170200415614005774473362209670681162702220604611471151271802361518284913439718486577223416562200204315753184990090381520825850819744273920093416101655338519340359995705470166236920400375977075213757468349202027169620510560606042503660119036489758753806381746678673314136760578095775167117614781326588724394233164531298070953864072113144179612784049485748586680770111949541836157113077935072822717740372925091043459336659331975262833853985461311580025283215372097725174314071019322836421727755234884090608736459375890318156674553468010737210647555389699656730102340351182710718962314536013924562764774805849056069644775542197286417199722323233024601044370408764750484852509348218452053873126865161348141801080437821241667461742035812279319635819584891300395337972336764911814748380171547326593729769956155417638975585920942913921373165730604912064284946735971591981865617684435560472731196248325947048743578820023045927684001221567703247878270636710587846563968841901850386233890418316484229638746233571974485916356527277472859244142917978966136919464644816855982456127581000220738509820356336042778237641187244165333234567045827699097176991131860892887192827584901290377736578006849411863084827142435231151396957922214726917108821201793099529343518087737800050931488603527707602485057750363655920178534111209475474948311721844608086963308347329597284428860389918459678347723301749906488786597549212557335891298010858974465017173365848464358618554226841788633794578317659196052021781212048428152491256997235515416985624557620536947676688580819269145207080452089101259857904583343414761621150414606153608766618286681561546766199556563586782894563596626724383028923911275762741706440776739283059101432660294832643638720060377060798457098199338990678775915078459109574601597173298460860250512689713748940351908029799305597944688729308753593856765294202101139286952751601374306134943686175025196474836371900938382529221559523649159575316885077640833626744054868897428722611854360310921568003174925428069838745823171431101176763682891352341612788417370985652623340354446071445533545389090198195957490424520976799339145867192587756546374343265623437861400814787421859616368605767825759793007224907677302061224935038796350813329342501217329492096823192230649925640172830243051146218860568785501358947464402626918214551154148681286460866313965309686357165551663639805298873672599820272660086383235960240686074663407647949261469622928711415485736510560625968055617850698200090930568112218715907064853827856564818226447679292151790831467962503940630013212149685772272495078000337475831606882978707647899791647560778358121846989940284428873494110122758091959580955893588578757626974379300599520786221212557366320565217375013560882205502472229538246171169595507236981139612919187095154466043767757967746105245954640127547211721923297207892332219758287406018820666025077828208048508591953217433438363186696453974128274640782208714236405934921888173789484361234107782375425305197994627995212330440653553508356455053107518078384072637555075430098628677745738694579718517847469602084103794415972617291233628790954368900287090165266887444144061415935443158148107503735242585382926879243685070640843188635150332898299771164630230055075424637080864631139760815211619893064411624998435423912213483160176734431959981063971787149429228841004953463252333620985840967792418425758773252699902426687877770516265379059544350807879365304625500717238271296012772942971791016725865162734458373806989772174407678264383290737906174651560748476985936632146254308935922004421604399796024603655037660879376494982860310416119106282167637633058869068816584352513445686865841226120476267148993929750626442898460962673365879395740940664955747682585232265478427661842671756655317497939605965876767629659844890372130016319487502901652894386306273419171515824074477943462063610513129142490052051466246648285976334105479913164077021501473301911873297130890365459746012595315099323193806573634865595051289445353635803332554765962139012442196740675866393408695827232371133892369325868220395639271677745794795809663779960991901863945207461985946285075640785815072957262600750797707016833099284549288527322645572948559923565128393199585009131114904442559343056945292511138741465859232043500594523985123592367110186957982808071161296473306201728234593680708471184909930945240123402513752596175291340381456052486230715329558622949677279513389492138653152291648459320597316216706227042585930125367696416128398835282961990500704704359003206916261838407577959983004312322383540461760471972551342728483315086666329361104034290286105478743379321866266110645046818590340508176910919456538611291430311867155256856412522863575098889412702843048419617102737995800173301283721092731076185965258864565708377368518127287721438290542345422517576485868232586706274652822196982841692675797954221572344713266429927219315164482435093416683734431823693823776686327818553151621293905991229708501739749203929646111175632003856173219119385649026655128810396014751659405404310737870485671165217721341243225437375064774932409843141733612509272313256549871113382894183970245423081628183125683940542803593168591149694935696520835321456642607105892585084200570994530617037073777934801337674510731340785760540439604782218464398823883240449918475955863511639639621227060431200535628535944960665431982329525629348529783501470339617413863309759046345310971447658708791204761034689498874737948235720876029621548387418108153671090917554017711595436763578741780041997186269786685571098421119829965512433844349200703581003644034225186289448761493114870864965649471951494849494545555107373432055709645434838351573901992580982677407688344928985868113196250801042458324392842608143128443388961935221866672749393348131948361738945900296515226922533213241446517597695138201963682147836455631166664977883158876256583877902289484019521738908357224573964992906786764352007291003686119748727789369165988553903468245554997085941355220733285287497831214021513876981347107608760905343429799536523703380773737470950346337238265994125928854629152747555198830042648217920562432931090007567108379307437448297085855138611465207119151584959506557980611460108550024170579314948066287586266160019654008882237423739805001289797673315429502090805307130149517013234245023796671070516549861591731853257134960159592229608070973589537713992414104451560802413368191224128532213714904958515350393622116771886619227286509573398254803946002468790074742096226273625962433803174150229740190296423913345760515907584005783588644265778446216499869418770586487843588020544077192687046044785747413152372792979502251997498693999118933804982758128542855580380857797393214473759645388599824947056455970803656716963964651790555515551760395441826183292956143906817384185066181360154851519713712018905538723745890452474611370614278880489361994206824275212934780620031495139996539920465891999954728451667719504615110398107681734596348666043227308966520291633080810050789781794170740205116626814735880971586112954378711648906669339903558289933867810060724079007330915389292133371216570258007919527205075460330296370594568660959184665276927195375968263134517760050568584063350413342451955035533494912329241003300405894826931127081586950785187256905889561690836297323947745843313818130410763050533430077146535526581236261899889744432985858957498667588878393055148959429225402075218731057433044670558137223718777297432633078334262327954975518439358654685480647722758640572207425727396857494445303581148282122865679656536753443086979132739069394792631686089134355351028742111418894609583892695209780166731525998657894316673744590620815988336870657041967227340806406319615954224888579837990441949786335250235924236205998556980988858561668189435430383977975965497893836013639280628154181586965855970477500001509175407011869344947587852076973568970797824852884820131952240782692970466514799012078644672705505043608934857130501338839426149661608268130351628479709626680055744218300586694084461407903087682397915325904560277647563656368083518646892477598035231923480425400121879081843164749524043907060657621915925698701748896793686603346252515964787825552414365063761319733147094841016971748088729450514230356247865086772989816513912706421961782213855800902306952784145070231385981180163595531352659055101452212242156052032704859917863708719011923336467075851198007466193993862450508141695704884559114309308825954830373505827066987922116019046413823315200673987388419284191110084367047368514989608481275979509937373906944378023223721091536054457769006846931077514823049360692285991111827472512771611783019997819286786551924366116262694281734405586628240474262843793092943146095936821575854108955716185331816376721161505980013094144570274041776001266495779744994604123184577739986451323015634052553976152444628792612367293058742105357709793563777196392991253544084682732169318337184141543236519292693744265946821386702772397980252036182027065071416306703262658145572586922914326314727834543624159179033854465978318029000834731371626755041038032086269301211856927775773230421040261346848780939321631286820677273854891027977948168027240278419666076459825283823984275478280908115356443772452856192953633121792310683151829098331985522633978109061294977646897279796881033304408210500889398355056064541182021255893327268950970464724242605023242956090925467374679343589495593451478957245829719894749945853977522134670243964946245583013178363570063923335061350427412641131611566289932430729295230490463569185041682136835896329687013607705062639403502701450120174792456098663534275402736379970745613853647518934112180367703099770719213713607182348139810141782770953430995829479765974525171344100362352683491407999580646188424384560572534866675729407565329985402302036757634289350986043942655278280172598044748659994195256912907148342604883729714353495314276556198066251258682491079123026607627508917440746664465627023094420420261094250243193934896846078901075903573264163694334341584787138139088692171244307611555302743441113349511158620939587027439373177082387545354841229163402801871801118794000057825711530748056967599794096454680024408984740310865770637593313832012065774031429100321884837948646415797461061103566906259198257303511795352943358756933442495888584642509518001009500282940119430244105708826744573408002980649841524356148121477260556640853222671552523337959600327815859899575641238188220554054200519212937505599119582689348880803955298860202063332405702625841198523411166953201438585990964336516216155861965352968128472719218809340340285659784002236130766084427461308089194831471288932773915279843346348261182152196092952847078255777589429999584885066925706079657621424430771339241577923522887368078210979492891730404605884023936022660142480810317817713742851375509022188717163990876904172927560626841694178914687325667806400520838953956994933683330384284547068805820492195278297760594242915652892254583766347929539536092736012443168311804483595993943884647074714217072591241787739718063607865840598631215383107055291911560996063453147770831823894279363865580030952906361729403153196374507370336424677931905367889254745131628559774155199082034295015947940617560614523983107689792927738370294923226838578815476840446920857712059444766087727418819712629319428150914049960115964211108631557767287561854220858988401249082854124527172760498915977930615360777894797724929279652912394820263718224588894642895470009318429614783626658635089287171668833365821038915233082749608184784745531171320224283801307561474952322126864336680576623006269665975182006433692072877474601325136827569761728595807447655772142408592849700129251357274254889924938738805801192859888407028664817949052503694119490516593084448448930666604159106685310518267155831969296166881194949593856818452045059845273445505316814133558002572523159321139344572651311667545793899977551398983936611692739235346681585200309921703745987895608246523895081182707264642264980488512935139201116921096006626815284838080723008299608836957943864823206669814050533202495726677325905020278331129356769997655139867696689502307410286030888488880802794953283141057530628721491402757388534423649837236598549056277018399769615440720084783702838866919845844657368011731566216384073223696649504473571701624951784712317122642583651981990739992956958332718326921918745921424307357848841360509604014620602515634556269483606208813183824308041900235934726707863700216322060005515110852920381291538254053906874991600608124238383007824788028104172854418964286312087355364796380517501114221905426353398161340533507350717663667914570946162268480646910674147041077158104445709939822707747500460957363019466049909052384235100526599425900464611031996154353453850257156730428108144595344887880973948671723869507022084569322983187950721577346787941091340879305481282613315442696528267279109097649947107448205513970442243857935829785152705107214132586905427552962831546974812800968321193569715128367030176150806375386753055981899193538056823623340723352068438503064219973875436582739158687630249792968010023726766933073883938844154921936661026141449774761521078672875167711019350412642271989587082823914441943040124356768498541201311799262961212615665337595975874260569261958247958373956566038429784690368822458680341658692445190693612049949093090344826841335182603497889946833317242999947952521558083236251269447953977236346405817770220264968668509563210297336245126836433751298165969030909208651203636132606746759419668721099694074157224901609687746822808628515857870945972262572142083713042120606415495552214529418915039914293395725011999149753471075243442606897880571348648320860584824190200877284511829272453667278186209570740839705421483824805325474493636844902105796180620217181931141514686428806969103394405117900787958412335980521859152454353201254613799009127232339339139366360954759169358920839203914555460777293923227291138070680297973191282747112748183586873988814746148224381656910932867843593252515032989991556890847269351576320690061292197018579902268840393605896872316653174265862409232730116445377256488215999414833212546258312196270778564572891244881899319202219099042113726666243251275011779656530268932149554158969886305205728197867888696174231816725412138310975160008425762708844896950146265321659857430301395102408257229064124890973044154108347424825474555642381906294032444124199410994489404434711167052171010456530021232405878264082437787408534946404841644156445878246651408116717623235376439546823155552707870432038381834148900788687822103659046883313554860564679116376336995080469324942124689866772269170678786098151044919104504029350746530271601757037343508739759133790391540662631428015769499134288006557863759186681916905213304323700883386894751517121669773749877547106404334045015764432723947902810858512835814913401984688935475951890665948536883232355817926691858814979782187025807352688560571917907482099760556402867134325072718954650597958729164228558917174111268867903509593992336624334210044847454539290714775497082155637835037358883585525617190491335354057517187496287439882409150356592235046440583940857695158743345682867230194255478290072032970860808787842248493356620771711131430478348561133617046470517487037131119688678181242201932434499764220304958192025406176351621480118551242066180591436469273019576504606467956254460081728016905952813762835387393977594679505186008462223707452842180097140120034078479127733786421884303252753956204808593484734847484333075752514073587635589746864277980066401982307963884913131404325772531963265820734836076350852567901948885722842892357057447571854912986566966380071670758232541064675613213823114749593745154686818928455617198562532852676099882300573355729862644395322239500628799463944946238321253784695983598103570411013084128021171656405672389706837655683070631605732111128520573837227030909427472196589609227539964351141128414406146746686943277875895159049151626088108874768292488942672675800284704134431063332616961076116995670274414986240142389283841255559358582361795666808668352020773773881052839281329720851815950870758243512518402683329780658371603330327544431799222603567518249063970861830145668304544063482290258711301750229944472725638827193308082042472376094447791774841539600289697177205894929157122454825578466312613387926234975557730750412106184445182631044240377821643881445015324390397808444505118949622342958732833504353141202330176936065639832742561230669871181184590373404243171010441641531741024194813687802756100611439433671517134446538543122708353744859338412149322697175907553366466819834561387304923215046816601063957741796998148978408893114200224531619471686071801977973721174183212861761443958985004813113799233468283403837908195003100670385354704961225329891585424334323592853826166703355038802654033060171583220379177195169387939470001878769993623035161905744394341983499443770565616563724575722969244555069207237260937942306249668151579639796227264551802685466368971092635307847052650084015960042766628655598034928431261774512568011522344898481407297760840682570896259355625547406012398263212742577143541144817696204084667864874069130925106415477171144225274286119267309374455068402031268319434906216703842051653843464080409560602345822586446323118133693821800480155855248272606572905932798057638231154648140891510663911086239921683616566823708988828735794824093252983052902773216563468731940384822339637908412944943900443497340077309803270467469872614156515724393900624292688460149857959292625641409610151129956963236442788874439904173259333140225106922199828483709471012546554508629285382538489141669486987171762154307714454324520689576862581537338174469499638242016019783963123091305911210560079016872557530079408482289712106038630100709703810830071529397882486249842974689552651221529734945536303415172814255758464339732772196346217574545957193092643164814217585113106812688080336493640124451472806430639662149464535380893030165544711325539408349200950079199309941445002640278005425793257485493846548823728242454237329059464622483477958866585431080985335841044566455460852952843461587842199926096645170938852579208164090934489065406759745097231203928701584011040795857706333404581834127705893065577016571019768858826203368676646656460328207119879484326318685131168747121190628218423811916551095194312542912607020945296239308608926256112814501889634161135428476200345837910041163969569572635350656507955906840644348951817214474300042684121040245473576178211820951548307618772939183124246851884604593498174428155355810541672663517797842532192988741070453237792191990613176279557517426975114352658331736855564827954181657962315716388765436691510879791714877106765495169336801787274812925338874371684258918352117940388692835761649811348131202502571309719041853409737526145901082834454006756080679991423850865070578421147662583699827840972589439483446188058159851597923713608300043102746593932853339881784352593137202999617695004618352877334781927258924783845842366740308070361298823040505835499410846614428820295551817624539235622247330628237056236376997195917670867794095210854363109210297607960198041537583474423609713714972305062900892018736401878496102089470363254936758173625536459735289568883220091648259447976017996312127279158453550064138899191223059609647562274752232859102006095425857059760844911412387275733615102462465507796163133350231505050844278855889448566687370420941751844534526839821824118150228352753156950484421297124902471005964826291898769553433779148186525990051187696401955462594614838994739919459938105451178974385612185246096644823063602226360260059040742636273003356442966351814350495901506203787525681239572948974607931339490806398473120050842609345928090966146581518384024740819828663228242982326674154319061264790888931144954541107074935380907578352818249155986074276562840398668304591196806505470980468445203228281330708131555760993984912065159045518948866590159255083245799306699286847798012380427601121906508284412924074907593017856707455711636688180522411030310048855486629119951945509806434131483606246221226823485363406020438038310092657356819116832731892243165276938248142605708153821279743241965900519995866189317828828935760089558410175278411097284224355337925691576488515937735732460002854979541660089339739645432815008329946350418204944688722517579461716948626912032353567266418220815262263911333486319845539460130808179468613123459292405192505003472910441640730947701017771497828292816780984185161519052639918160165170521747623397254166441367368062667626574195922905865839434586266150344820484974223704736068770219531060556766256838593251019633059727173600837830562831866959763697409322536663432471829674324115273116949483677894668052949309966571302037003422359229339354964957189458919379230717441225755159989256151712635489680486155363099850336690399916057339776884525968329010726087190353236643301982546261451714555286736839071740689862991641150140706292757067424473599278023378535618211613309754731563473468244808377637082244289426640593691480377688297812044825262062081751157198572382290486253359445154703120566572025256139057585847449517981224981915904493110210519470745750018017049600583052892959749044448364442203505814707571602637763852783199936089532835030881642815361796708717337116701184796291084872025961783561087806649709786824776277821267865105620265334458361958062888093405060635980540567093087282513930676466213749680984911796963403713117196669261265917400972518227419891222069943926538122059094690610679112779772643924921865192341459522232484665308265305804000997269492514521495485722643627004664945164920047968647001317680015750743948471551237907828879882154003981921698124304560374699226606075968160478724288350911801133527276876943043718561624395458572032458450089343869462245057516584699024896873652408594767645200276383827515366914322910388479911382315605705253018639908154269878506464938174700758989077276363711379305306262992225067115783762030402643053520292313376243684951855770078031061039917990112315514259158850477470941370215681820431631677658705336450882389771777934103784305531950712875574722120424308719647598681718452198925531065817285463209450164186499962537732578811793369925533974282700185010854910187682702679640075851621640020356834999223128034405961480813624668937420023706824092994033284942861290568544032888080766557837525036602671240288144338064634839663450794093933785884688751708361661532352992483288661259825357885286962553615561215515647796872737270587922894692765202193015891844597656956107464201673509088347262214938702908421850090538070716417353040226747034286580369850329277464981013803733063492099286476272262834548423975278699028396024283904068595081045742571077531069772606632296477829964535353368336020682897058291633916107111208607350284201630554341657336587366131393065253182238693429726852884147395491207705936593911610985168752305043066881293553751636816733712211789350867171109470342024843832571054727773605585016920396861613260926390385219413547635132835415492748732410297122813014208228319910671987915509021587500789635465943195630773862468762185488036076656305911683860831258731851500268562294509624105928739366206783970719353590669460585995208048431809783931142865708761068348954540759876934258452278291365003570840531321716435414181284633616993410094494512901309257447421479761958543468698926350346419216189984838803359918640285779599377376137313620053898365683054404550689681676939027763442279885482473875260263580017984814803885658011476348825519105028404093241123413838962492523033966746428260511426258778644294725742125036086942701922926727329446997955230334875373670593475757709892518307874272908136416550625930052280105922460970616670227749168144423866104507648419880329784375065663826002408684679128040441945694939670068688941701090209364462559037323513944637907061093841948632941578011589955911382206233327991845138201722266754928158180742064566564089036867418403272759943727960980760305076881506835829570016352555621984543353273791822190265482046816244443818978765233629665397205028359837536699592494337233961606037414402609305289876717413363977916204146166088181814471376837336056547928979929303126637365597209080142412530725619759334110747334245831395858080461251468730271834109391119841028292242075416683724648339797420232062056562881826687362051817969909050957699067939654324829988350993522545487264182966546570273677960352811171241568895173923996311699078713337650570244340923974677825845807073242989617549141534790207647243608340285809242273296061453875855271519363982740329316424218011912496334881672902362816579046964917533329538188622327175745226502592168519431688390897646784838404628529228579844560201725843379208397393086598155320340338445462119399933591507431622161769239890071658921748254228297967585464237994883508457696437931818877989367379125262403975746791590793090725839821293499561871009998103211115429122700659680898189109444226778422433092604796322069336234037927265180884721574838536653067731762423148888006872439227622673763797119405608380763186041016323505336968336159697700108097119604057599445595752749149226320641830483286922849834124105702369342183000205008429632985088510105597269318795215332558621134599550217076641906060106170618407219258670886563146821787457071077665416187176508683919464920313562788827207639255058562468780701245557468124908421008226771839663644930664984937700630525140411312964520256394474341614151253136740641469822819661368493765448248710560155864911718450757380859350828421145468204947134491762216758934860604007658561451884008213182826574685376236859537855370649684641142059806610047846163212864540106593444274974871941692131263686736511150580445825481518919000527363087257790535597146735950379581652411614573806203157193581424259863768732095608874364141469126685393084249031211414024713412095727527401253083201589685659804007395584675825324947999495712986678227022043707169612158351031975541777733722135291645865744250299566486560778870817770980593480512258470564728660339068373611254508472551411702002735274768186725592336548492531556607304889983629560811981061910289788569182408616672567152315413340510594012334313476942403646992837626085250228746253451085340740889285998447571095713315280110680358322681667870544441332844973264470480261761342927271829027529247323781251251521877546197867670386291909684077034299463928261590347349526305879424498221435352639501458330676991715612422376664552062734207126012514463615078229317371419946886341806094385869107513958031143539585720150496280117655948961695791969250793774613236144033303603317249600096507456528812006833338326845810134574888906215990548593299153909365531403661540122115711459382655304864330876208212683173482422157310726745318623578217868237660895096665529300060034522722927391125702372963217281669506018840386882668166829012485184161881795590266709335996531857776839639793019114748275366287579363314573359753563278030492479854728141999687824800919974113152716400109404990720150529798209208460547739856874188428220476054674748708896741973703507685210796065535025810839010032098780422533039475068982259009636099764098800694213873885670235452662691941758296480180803667955078594543273931485238811310847603135322295241715456404032704446359314328729080751480608969890113919913505464022599109183023100017628752318116173524844663515137484148408258266788673655514174625028186880257106178996574840560439863910166411198958535911877563370000341845238665577988887443000330185992166923852763560147843441139237123490835546522859294528597469523885081364433136150081840496409555305113064582316847834732330989561830140056803650616401915671824144168782457161607632614532374512946452619047823742614710276012329303064230979948326400878478642937846475445170429777212361085412949729328813499854943916743064156607883959914815183712562576713457006190050013916990710368338293088171142385080887639591905916147063289741911035760228452975795125033045850294392797016442797076643496241773614771746143027001718439738492892551076628140257795613503441215159499848174362120714642459827183680812814892114688663601517749497552507508400221920982454865256328058934630749605306073087895453485226430996274695070934126447552534379188246255767803495558308851719538192597773999927781046161485037532562625480253583686708523307809993299290903820841771498615083026496819544595465658428667604955212132763959106471307265062296608135769513390810208327496034934477396434523884698157468756836700075938579207352492050037148545372779649411731300369112051916152773452242384522882961802575826233293965401590921345795650728256748285891842400913781722413260827126633116298287935970490012784976900486529189231594662760217164249935362793424706932174642451005327078579650215872783923792285181334221508128302449137422178332759720697224292339431336179696781086645870046714296540894669188631444599104701436167486077008263305813038595278829034339034807441073062656079812798904123833133029436386584634041250565383863634875333208508720832475550682130983164242283146520909142215175099942651402610793338101499603585904018553038441249202272133193626680836320561911366928580162489647624951062099523792790188955707383457004943151127332149990602466945230719691901637069738611452272381316945068518182303106091739049832486937272123900938211675827266654986419057864570000386342645990802339543134909416955064067503381052355204203867263318464698047904587826190355042003804802605937203003452954617084135296691893158261183254769129991352704502652155735642250497336532128974749337734690919391025060072594078977465017201632155151565434194124825045752632758040656318674973426663051857719597148320588183950866284646841726259037916955101778854881991631575027956605155270771038247290342107044670406935179085381054174040918765576548943831677354308734271554554935313953242110893302468118988244117493356792009506194485627292974414902421919155332301577736818961155010727686072748342597411639277362971412051164206516133322419091800861251452694862733670322577293235897861556308428697442097772558900978386676108022956154406957253214826588633584033073674423709970822073451625739472916648110891264172875765567179730405712987657177562084916681870932026171266653337978641051222041287187258583210046200750882807311300429535523151611516181265580764684749004692782477234151860665035971262875431147006467486268218634371333202440316718442948611829476012057046999527128879253617586480544287039993629901843248866314794270771285877330126534555690789458274745523773998084999499395174391378260632284140828266465617279550644328202471112426185116240574230527982790559230328131947644662178080422704937614908974810972124444348046531082459612762421742877784457753081617060637172722343439101668591305501250218032027603659225828744641126401997167051617500582360449633755384623638110624217080930591245368181847517501603793356631805237621227630953757717197601089205681751069912987143902785208891590894009350881324905924970825890303690742320456099227103463945423846561918592997723576049598941783096445015508426100208022394764698736702067492740103278519769890830919783582009729654844850032582100912633789536698680054530104507379658776691194005307284012148161612439721203698367725906813396966433459356189651237915160835434224833027340171655056024005280629202884892406110339029375282743023791173985448753114162719506438113537649875170372796856714401076910920220406905153302314226089759589353973372343467273458150700738567712163269203337080646162156333811170284834523556867456217198675104105221087547318569317543487931939719615436209919706773283942304947158358494164799591485146124132520673467067809372107008829730490622729039967525010706689223765848094587504153636421429259090385879484531878888995835171876481657330962440778822993536606877702866146604117193306116952466964363007495739256953288466121164617720500660797198405238222263141930446411503405693231175290377836981310930138651765633926238929264403037462423756533467808728700210150967096645101248712590179174371366637747659370346846488737136693077100978367766132252415421948587023374453604535721888760649000191076712953250064000580567638394937991486853354416495315849848976073431022537013594681790326560824115980288873222885203491898421805441684673151441710238400207255201438028026249934420233594109362222788928913001975307125120521841876796178876302902897398147053603315904730666369426239958338039502407457791163572908373405251366918467423358470734877007157715028021865217932741511127187047198201930673760182922407726025547049875824701191738877565338891981322947693306878284141385901707284891759315047654170837359174662624676406253221978811154781734625850463090684285729452020649808247804260647726517168212255333704424485962607782603654753487027406919789230189285028911074472217576745405777815240648424621730192496191531087731110820446023426940754328830540080046237364223006293969210671297359923367618695388821199910908691917773222635493006799976075533211970047726055479598120140381819056125256364798377650940217866097652742081562770174025017636906145618769931894447597617162208308947012806635082536728787407646770465802100662909803539768554176490595257027946198882303236544356093067115076328662449629479912328177912307272885616106755030931040030421695544711420797066421891482815524344296366504446342782102057217082242938406109591430343831852277299831252296281954611061141180562023243787317149754908963125713567124864672126438817379083940625583467696829254629744510576298651160771908740033498197561162423376101717686950397490058377999185766923589539923751487177694419441394033952926464312204365521732383898817635624385595231665144367697402083012275382249735838218249418806572501417582153925406366507745277863738801356064757235736444042331115921294604745903548988661407799808198634411530439972529624442442361571033663417753582400130908196798448090696193758924056639836707848422662273091091755806810005210762350229631786774355780669214799222280341475499610022664763927708145641331132261248770379373349836422260708944941430395079119460045653201604259699577986362074342010723559173258845649091092186721980537211603301890991793975466828776190514998540273948623478447678932482614471426199052021706689328848917893749105710818184654357474312855427229348652511325960225542256297783989826026952214336976109538451318544115340178517387527286736028779669520866995155399306955270719416613799228032766747104194789765646691810309855702357493625283153801864082808102673589041353114958613100551586089607672775051640904222127379440659682722219916710051236400558470993748617832752453571830670908963874016450962374781135188365039138983992226516116524001557783303877091543762439273151241512988882481633281477943264849278630311716891684773859981191768614712950667596355140797554960348557090841044811099522744329775423818622081486699568087317818009808643886522117177909259921192271145034969457558542036200783733357173795757422186682811036329046979935818773758537395547552353356064209880377548849164810522855567846055130695209968409905161808678388490994756890365058329915167674067496663385410789031093544599709226052785032014541251804204054032225299242922632183369927215875886153249307522402305506355240437196337405619521450401080036080518413764583646962200126087678476793611188667581536996081104905487358573571180729286030173031259491807919731716666413824192813350949633029543017243169591668451504774408640556548688208025585776854836743891403257000355212483946177447156185315079197653985273939755483894365836492821208170284210615011861311455521465517414939573346670942293269424407183481940022124632681372737413753354772360264567875023008582297930933590371631281664523607783854123388411888931859147292939921516815188315983980282547903673366239834120370861892814481845492430963808657390507280026026636692485862715760051232432491984313419582505660449041446123559541458974791165324551035187821966555748660561393933622933089636466568915445960079648690536141528584179605975833066863336962250126922871308317592666090505331677624498621019984763788215143584301244605050549270126848939136290219032173377043702078483632702937953336310496022475125657963355026537392943445833465537083214783789569996446018812415680981636195725776532069853567529731832809378559419881476408551578075419061143943668144184954213016078638403586689665496840219819870927947261085326970114089055752250047228497254564672152314357867026914143030221412025272418237154664213222795445224053949459091387661149832262622070651686101821725556313219549836119506892830575947183873830317007567580853810854631367921796466789569851644199022741952963649450000943006546093469847735583093927200845195346458881728922139400645943844850613096985177757614733430345371939194972552307362451367195962874823953950410631726559370655981031121536695050284736267967859893249351310617817063127974797656509071620841330378322837198705377838467121830436373429954935158217177415634061301435441793447714381413523072500446149726763621388013031139693756336614888398164989525119726167441431136128040385297173344545694091334074062424773156976244628167904711154413937388854922597871317181479199015081259551592872214578010920669157500702027567085997602550694191265226047949457893567712886095446657136472848665107915443935782952685659649416397481519096583975248664267703382592335846869439106898892937355272359307059385698578018415607928490293897941524505807592625451349703676004505398935172340807596478913077256552756616719132455867092011065023759011263535512776100963374212286521867165387279355210979604903975106967717885110394247012008831458728571409540666284945625865368693614529213554813669760933662265495575028119642017720421842239226267949938453103136210809687076304384177379491462343864926712530375707280146651753096457655940755559135874578872331194969767150076468866166510146429652925596705949387594930747287379068814460775571208777239293187429678312817030131469453980199401715588880535387284101691098747485874221272147529194334981149749823875593587424215282166462353681179736181463806314273550893890865904336238132729013481847648974608893936816349473710467652742256760123223543962792529512110914212779571096979401411280685687350447267858474911684479083077344507670064732685874824265017774914126925437366419927110438786290395736305841671265019806515554803401378949746343666820391275774288003511344159714436358018438940598580682368562094649976997467797344913048552963048511353518039205257214009514619878547107757083252434861049504526393796634024618953779689662213343308560572269725307925513649176340160548056276013557470208451692065513515185052648257354835694615332678725776080740722568604367701456612995748003258329777357296036772899720582929238604131826762983405105625111274010168609846324448969777059776461595654687759654593682695543429107531114118738623947290122817649951843073021411169179185962938882607774837263679363431187122301892817866033275163261352221986823221727555184279305014138847206117456540948035008229991965720213028829601580821270370093551017683141693114879574688454308280234490126142614512572786650081231305315651072144339671905667199657713974450103212216454949341250440324700281615769089651879750839737449438719181525071853569470677126139217094154615782395497521918997182900281077620408502658424555055461388790776095086938215444814286352939130295022829613115194999183882828745498775514185866157836498376468852341418525014956658091239717610070368605466336439646268519536570023401088916543397912680767978662452901130608470859230319277500209618405355547027182922644646807814406298911738528486263446439534701791447056326671546248426123023149717158170515925784225986224060995461675222564520511297853501625095741315738951269469138038873966126613187746012116121201479999274541629772954809943670857233316428656869392979389712201034105355260431751231773269935966370200374211557494939112088155856767072828752551657613490110465792395952663920622430671602413661490213176828777238234710518794286028929219656803823612766884183737666916706791999928037454771426449758394764232371782955540854080976635654779082916702389287373363320442844906499929043838714811225246416689060680359051120654533832808682249783104583151740744530151871361531074166890054649638857316173152063317026593735333421983088582139488452800419813102047977775564770577039943605087247606270055488605382541157103062923560042156716673579477439416252137244444668066662659582473735071696325126799081510532372061247396236284042684500473496535667231619358066107050295985775646960261692900720414399995531985094805763249059666178362977033325053362841474197928348876957746613737925505410824759697989818787667946712025401822217402352482706111195406716821009585419117411460108497330148200554530138671881459188143256378550454386688784342458795769271709405361311752597214498259105542470421986471300330081226134026138253924901875388871931618540769477133421620384872165278509397583055079477785686241340842765664904861627227417118638492086147758239794063592362846238746479066272045525295236474416738535612948871645111263568984817410639382255437035262110760090628660444243813449214700614242253268326276294257278133632700568296661399473955217964675398584525963616031562906214227804973660788859355103982138677605576097508873579565176470434326444183228541381227654015561286158936203793918360034698220808656753972662432378046678910690811400206390308483621558581494435319446155755129232533758233099873200126147792026191607448385096639554676375598326268306922864668628829039420743877803396104960852370963257215542509833185310540999717664420922071541230884793837083739834870162308875722977745671902516762798023868127552326170281290688557840501364118260477230057876990202169513942578894850441876864437944421525949831951658939216147814360286305943074686790502966814550683764538407227602467166220804906216294745326477432644041103386149630438057056841010285244362511739977062618002653699133201943866977719266944580185445694872896327710649336706877838352427843118428814987121670775501075843464291688883242557958364209221253143456757434216757129533912162848255716010701152066721958144408403919030409893282513148512674757730163766478785393166857593651447307686072999265049466947141734057715049096607135900359001709486806882956115528855818334168646887872281737532877893336765355276293712996893536294438768490117318060406693571637132043828875235702001366200643292603052517651676617124308855555192800309212545305151174740826881594804964338176883797151959132548985444389576745222492961601765068162960274682105052871896956079655790736416821566722678609673718491048224496142897951807661605116547661169447422092523975914579954504184283381844701424603972454693248505533195566920103608762884695532168519525392111691416415961417077393775194687728401465261750945746834771887067035007907727613035711348991777415642177001679730056273307409869196350361133364343766650869524237956197341389247752020423425458265962624956361907866372246986327255319317124057238240796119493316200401406789112278649491316816134601580459535774380553802930754907906061758829521122320123199786314617257092671074200882263981852781200976640859053401979798301742814106679647021126873699868981944493546713821101952637589317162339664925871199559246114326141519482294544724701370523831575646426603726850312111361215067460179790417950664984861103043080128469341686989121801028569977937656814624240694117004901038021838922235861756865415906287219782374497022179076677285454255919091610295698865432070263622018761554588046738544294066511365530318996066900192663561342257304374423755383442950647868566999868917698507267088075006475369724480195993725175672402862584297751896135808599121246548142329728596701897044740755234777465574735194271054617891373265996077441153680090307706405944872445130606911573980575376780761771515080156535232679410732562692352477406488118101463905423257430797404129902447210237482040718442242711638177603872586993926961454938522657891790513099999412332289234696694892679958536748241664661728918215343489987917879407791699203380856700388396174579584630871417394257178003159620479443058204460374081629526476286458241927084096674235071983113846433626420995789715035034641165117671724832549876105806670630034807784568458319012575506584676886613428103449739247773292611390906753082327758901923169909040752316833779996535468040385156837295322896475258604858742092867561866281183682843955479138326087034737272065736077735381449513865366655381086605988807422296090429121021802481835967148241528683108679692576402121163173710530926424464899401867934968358619189850129663750452272223669314861636565298786832354477696791513329015739032196013775889672065433217730470018312507544291890687563802374754351531972427091655444746352913539112172404764490384378740697802593513137807604764036165082905070980897762268686056772839381915810117751239994754491549724872083241070319477245068252736847235474404437099423015404274673664772146994772768966218541191485464060186387805452864058572946740013553711568461048325806664470866841955320446469180337274295080779476257908469575608308920356706822407710624489746051412602868420923902463856665002211507182051661999718807548455637170464718067022128989901249801110849118833670473570423785528004476286167637713896258010710226086670220531785771474332992941702623575812036882841483251109186388145459136967649073682420674594061127892710957600773825389794671155746544857974098113875397330111343947773139327400315000248765124559294233836386043225406907568990665970476647046642397702102869834195448298328501278372176529519300018666215223686518617939409146360200167382601211471389885555905407842128933665625784509976618857180955718768801695002970241225725426787923912126121054392934587051818083061930775376471339667611742310086505688410903914063490886643367485111192457635956320517862627265973448654637164434706593978211466258826799413733017992274382822481853325347724884696653970958138957260375709403221579618394213266430836811448110620722948294347975278521018538104517239027494989235819386175968277138645266304901478107758279232072779560122157857531245465355649432319345877556445408874203695491721464238792641341351149586798966692238417821035697074723922353700979031716863265394319757588421112673715236912356818815966013969780980579164404125998424127205287617853421854497580239780365282761093352154888685931239523212813692369200204353310601984630015946148737603153556520355539020961454761452090287978781153906296196708926971154046598544113445306767989660705956561384854530773170218575825785811724466380599802385294861013525340901496821093519146777325390141420217746581404711828351890892416459060817500065257750640148676691335773069935407799008443458156082364870118080085087019375648052540572461472035202269280083992967637079486502636140488036760332803415465261375702848349705399112998391983272715130484254124654991298717068928538201870991740072793925148183222996191138624808438557152833974482890489030157040548658458237743396751713104176401898458162748950378015606802417375596553373967131787584699159188341240036284536364732754134800954388356410790818973876169657643349911701939741826965637866512063610894806793695018319873529256787629900384025846137991125387505612751776196874948930906290623677733496784278243304844805482128231708489767277175897755818126823225680888068839083786362546755236613693614368676705714487371610380091934144354412727521809586938325757347231102694828237767237379909137310345794396279087139646708537286832094542098391432287189397977824216244671632170191177631071088773792678317036960874472716641292227285557636434507928783336061315860903291563785103247018939729553471130949819556751567356013780083698198510404578504029762089008586472608707362045029635621250542544793889792308943320246892091451722731455363350852562923258275501334596924835206625870519272461686017164016863853326356749622482744947245309532035008157741963994287498582250373203267449696303885062824731838921180121216192384740476749952417180418306414932925319549860225125356341520242875926426158957388174963110691902273081097417255528330083780967220838962466445775519442478099770155109110303083434984732543504681051847901756366371740893899214591934333472206174739731310534309908142886660070275679599174428668408828814983510669073222808550017335006828311093433061866513127792454705163030421795991902115801844071248364483782280980465615085975219789540136255070571388944700247317857931806191818446234652141331392306719963085217386113094127696108964243722850928107487584149508872626918348313890184903283522729236299370046803891979649179201216498628401934098887161093647889389504287511037686405993230531391125246136930322425230274904237072150678743704541857275577905037523556207515710310056725460026556327863649713490251496704794326804747494454339043948085838513621259482477372681142138599115643139773966050713858875329187324197348375546846260603463230506843069625778671868462761195797817352220125645886141247551489865570686716077848661898714890202541143363095511411622816004471516896443857940265084888660518035233645320294575256147406657137269424907251253833293828657390507266451265482235682954755726694395986960828894693004391451929725980431647763782118668904378538600623481568650089507619355105622665447971043655107153135727075446765420043619962604647003974735488475626018867872124633149534623249683769080459621710799716947834309596689169630645184534273403820858047625725156579568224923982268708100078565860453499064441598354960075162628616033552830371987855977704476874466514468357668388306944180164598659548302167430173946308917055154569082796241441991166410082728904568006508362554714636758521185742377909679123099856522668226100968346641465418915397224795542502592175715408626498026325987332262213305144258896307278954537708454642746351628935946971836615725645482477329858781640992585871057930143788979432800808957372865515349385004615183823668285538865664051792661911623096662159328694907802819952489967160151880358261693817832608193232143301942323059722466443148674372655219509541988940559641130960473983069226397420060573316312130890027881124807354365693023029058147610544323853377713318111765655395837747021125020947184828981355921739317452762635475315687878406563784321791567216534641920873979293811115805937067163319823368383859900126060701067979957159914289965646063823157827751659978076241982076994675761521382760281407454722134995621716358041826164389926568142319532359849514225192128347473792651665340871946993663824314980342163427422232991314111965987561566053204044390086446825256698135997802056306905137459056633474901561938985777137055728058451594478194779560044749016086308869374816010266058761748715972759126096919172241428145779799989948325050262776137483376880424466185738368168953022949390585575987395211048553343144086381792907175377094240143682745492565909135859410999544179054023686616863198226401365634358330042966302898114318863946613952607054116317911541663667628760362269427026387244468235795731169989816222228511128522890274361317560683437865070234463226039974699975612582607714871019515949116039425553504548701249373819115920923749257617155023297998183014586436848943487243153853787311318399790416795887410426038751235720756703966266387587861498919995852025372693607733691651666011254774492176211791248913102018111698045134142426751155790371351338473973991890330201107322237615821304093710807872469764810416734605878359859277404089933208756301631310785967348830465514033697107583836668107031191190632819869359686175151111184349820393844525618126992875788800423728861702081145290817046107500202732806314394083721891836602104950290501959741196381808774744328825436671594740295554930743938918880821049084234812570280810151051566999898339141372059453298175740773078998395855674752566277981491454021955002298873553461501078516632620255448268335197989208560697066525326926149744404085819505885098581527244228583326252939576072976028733336141073110534754153591580876667751806802279698342635272793546787303859511070548736409551699837640533780202834409926462144154688239675717001007659429687751717176736308940835776360505271970879893175426333904606658907486645291546511982974320324332907888075100248234289623549594222291120447347957792496168407082607596989479787652677569023846757301169357368407762613319260452938961190238693886794741757697640937826276534734525821104242064554857072782645738018530499741561469444099897889213537784947090095524544264530178951321582046040888537747721182583933898768942756313860992572603251292959587535625353192314157705615782245273334153911808659676080269354964158075169538214773124695252103989812318261537415082981483804462506855085635288011286799669893658025730792959394857969013730475034040891161056408419223233878528304557261255545764561159139278717886975500564105481420352698692229485066802300375465954927104062665677999643224663169592232607578683685253009299125647426986585124217955005540076858475749779980526540834535762701038021327189530406380415634099973401085293939426032404697746804886392379684657567271634391386699842105157931555525568657398645046399686644420720734859762862036591450250809042677678162402169230491136701930890754899981532233504889894576508532382303251130194720510405420567481506851551240956810916188075813782487143152675238947317418730317819738044899676283001074646861949329438162788321174895701666732799374566410642916520263723741655043801286243422926416045275629977837380086146571293629080931816051182280337608005519105585347192632209182549162407418652102616067190709745236782062528276923154484174061647366573598461309893310014460821633062046666002170752481972164168819970836767429677887425844948386064448823487594228511025427490313819181884972245910376189684650823224008640534072386569283024658949233976127236719784011181130728405286427741991488778726431204012662237753286291433340803971028406283286206167803479149262980910344566100993145837096662719174127981415338615000274736272551463639758417358235991850769578947090091449849206120332390715267028880103630301514416889058124149648790998517540332874092565522568089602269378094567886221428222306776339464479288361988520614945860406024291625379635025347371682039518121967847053915011091884405104219711879743016184012800948561275653114333597502317725218111445966137456902759913647983963766559276786151841210284843840961437694901378982674513015501414526764349703862461971390254092139537166288126607679217747038750261768448864521069456384572357231458099993338241272098567658333842564088493551379152094015563373531292764507605980723079554197895518243907478862452204503668753897610874323629791741142494071379446079597986733979123487530147888482657938766468584168258486033042029269797579971125255317015082269058072062286185939296921698456112142091661011732196510244255918704927819868939385225437314883040224466288725933500610904418749025461260715131184840551791735619254305075906816418274335847467033141583932415983421562046078444390187341424772594436382905416529173232900796905460462504681279112073910138144017488943602838833267883819409144848902938880734221799670557341447370228996432767907328795780102348113253780562915714475972361890895415863178107295566946996111186734788720743401200589439643783788083343468984964385803705512699533910235613730565950191609074580456104138182253913644979635775157387196457385533454462054874655518444932566077386911812907393759214021711005169531910462802512263407716809106163918830419683323877567797617717061449146323723457772590581151819731051140024272825972353251467738951036118987368700914380820438016103350946461639833460417783532818596235901387391948313512497006197088786231676204983621489915107186885740005733428578351359214373040083993007881920576729934345473902061875367725931117578519343396576701450709271460562907348256149518402100700150985736410194722668816089714969100742544174908735500492991730882678154264054078710195626952220298135609342248259395048095283142475880623411412832127728650294312918178824102161465801317412309568375400432196108792724773668757643365831514343836171556044096444330954797011956492983787626751508067178803087807470318458628526672276476944045983353571041111501456510402192163679258546423214134901766257365670102950014667715681470297395163509008529181447635374697014194741983384220964507714297203426475507610466661869492857388296431314991094699147620591193269115143423862111139297497768022067248524451851095247170840471443445847696507407956894675329699170704682555901370003516700819859126751164130555163252128050200020469886559109216759874027420084553232571022010676880087209672705254239137798565730599460689539999689820565546139501354213922872107208780676210136787813959999698535280485686893793749075939733334711134455266069682443182999651697789427645151059267333433142904064226065370176045598843595958352104550763841273461607370651646529267848118429377994300083869373284072662275196675633749808134027009670747121829930952213897921884572024803311891501654326011540632362830932331759275469263414434668893330957124155273312259192608425987316866058001612346608534768026388253230447870532210468643818486925608856012645554712999834574785460467374151987885486614375506845727595207188241277110536550260279935894367103131965204126325316936106197885269886200271982344837126337625616562051629639613494159753232710796741303782071663090166374254252765255532210800403247811246764197237135404566663155187715115117222986477346605183001264645012994079381637352583858928543626673510608196522785536683499536480020565769034581847629173503589998929360432077785490886050300951889745767137891220479613034929650313017445063203284447793271896889599631427148247778261939331456896603692800995344922385750258045894326151495753765711043089568808649109416609285960162358044476026450185277250657209530993577323604939281918892860702852500939450128058971076953858945388282655887375465610952301004361175034544242138634772106523438111680828289544591946618285204018796720570453720052828738942537072697824847752963214626574641401855652218869529196282055296372247888306522976152783235810889984393797371266245547124945993985022505096596379867729657010014637033357687113757111078519465528077734821226660859776061579012171018631889802322827377233459875509093239509202276232707054864314008036669898873772233345424634655096097386564668758001987310452131911838145126585292419461038374501298058491662566560423843951827848551450451765728061488627605464726169649942527603387673157940563009248575805483779423948351786165216640278106250825600937145653895338601557613991404448826324911490713750220288967366998866732329052774293998472060212941541988329277468293756742354600752653862536624395300701677767049645852635730270113740893763126503470200140434709072053741062539134905128207722151349852926591607189299731088650306164606816076812663079139108847586954770869103459467026651886064068348647761749494994267448461270309870826408473207954699798211960444219844144654768350648010107939517965172724094438916314273822259293341245932355016411637913804076415691022025272120888686712414297536297657269650913696001066781418878383710357506513424904558905913625437352034882097172632763854113285148869786801755538917434976122648088376576087285084645761023135031135511328072570071810301909799917948082512240566034143874610215082771278851783200422413256341470414387137143904732956777054829314671676970997347202332079842269192757621127852703649654618533313268369555534297542406631604695005788738421837572236997044644380998571245220364529993187491118128343347787962370158673730121960560242165978756696941339720587873147005367395579400515464415414197105581838702749159669851194664973258974454326685808658795204152982725400559018694536792894819553956242636413237170027995130642184035908322721484808870976559231505249594980845343335238590509401564542733763730995203720384065677402034313118956014541837711971394703218592953113242302091674747219705868768186325035992727975123716140924985847071589524129056093479650109334892448966755532878065654155678041947344967451532260755657915211218927635857013859523604512905678907741706667438038196046378302132854569366696646935512544779097860987883119405711060641190918071865138335495530393301418444957322945640929545692221320444381529050045869370741108884744816858703310679515490697341768599305671973790967911855674614593579434585551009469661142726882163040829128153598671979736847895340875506880205925748592275880424078511648632146631825980391776475991242655203618733854253455710107491383229977796972864823943883217697644111314842598992634402545343502418346114452920302497001876265437931821453572795182316666370620001296240233839947129347193326339582204498972369777128659499863606135685415254328074896334262335982533777729834919670755656041185642203356871014094431179034769631420509797486734784753091093367164868710093823445823833227303122888193534649152336325741743200740157742087538257196476807615069458014772823489016496041328180829554874723482782231845914892703992296501894780945408206949594465713666433188808014341326895389878571001750478297779113400664489669008960014248721071810926391157866228872613298650059553688957949329821280999492360183931456376352289454023626136000169017206966595068483945562232759524506003275617797370190265400544387538430684139097160320015734688517199462493873174183267852927891249042735221103321508087908551526536976662431115308958494499459030654671997063603299373135040538298617313128081153574406069707304528817362991549990842850867715002548494768507802179692120730141195912464675920367536578338735749586075818377647707734254626464393613906397089632644909495555703190776203393394117974274731626324870015027551126251927407636238789652542200636496191407922776410104699799590863506628132729178777041769137306351685280868838064026883740904356104104571308320454184582950390451469524374175779741081313560756069234284597916324444705280402612574484476545027370921518256617739444437325527057395683704104988491681455567814036103688001615644195079534118619530656337941734851577148190469488876703312652750019892924228475289813047878472582920519685508560544053903589402080184769797447479986301655289641252974325281211123435054144184715717004123506182855866610249181042598203508113949134513474649654060168444184380200056884948210990958064483293549524911844913602095674193691592353172370206539501133251906520020191607470443188085374829589166005541080568613369146317677850419892479381613109598232698054570917733216309292455414929250059464269468627785190154928137761294526585237787935268653490920080376395000800413549544482070118902903609590079118059804899982434373692107829991562711491453052709711635109869752666230710846129674700330266094916115403511283164010942328846868970641236107269493407293188894616724638112125818287715145458154426321391908975970149928829984306833032047419621298087916758388629993960371376078608414014048194086390170368365236946997860233359949561889590770274320562718456235214931527432928428812287572433598540243611353276934093421960206258872213441608332431557501635821269007192967089229354945707812883492780374678489300694690898320964693327575732952602203567248549504647033377863724730024114692538905422371756057986336393655444477872917501947579408665468759700832205491987363251254539406657088011945349187989640499010430372249204314455528021610589456634613505338333255955831815089680779229590990934845256247888762494904714316558049581142295460152064313094891903991120908409013206823111553196718846358149512694809731264292022248223036062004066410575109140892258488954572659908958548259631812084268194348562257488952434026413645063184148194912625502054083087748367029400885861579753055541245161915744085608197378790653206381706859631018512421435288601533681796668579417851024944901196497730470321949357933171048967767263068096404931888227493330879958230079740742719037891586140986146202520998154020320389849565050477667774117691395389744792115655682992696678450226683574039548889153640329514140554665163197601094845481236863590807020995662059430453354682411002280461342129448048834157946264036810259125474590445190432095049277140459070019754395985741373105660300035825069244036947681219458153076846355283336996867245114804314445369221390108009671380259123374456767094890582583471496753050957784607839170735323008209613350408101730659723957465833343493207976936697682964722506004414649606589169715795495883078901639555596512576925032792269875289165766980504232262830927599218628584741815756590070936360532060380816536231963405683632359315967918409729948891007646387539244479429016598152680138021793060957178252651191158470453205724451034425980479203343435962827523090829104210150760549029777125737642788608261752371632972511396173243410790842370540018653808103851936871319109145753958921778553569080462988346051940050834404380922009479085314757158094292255847634769953769552423408933835122699081361963879151032289164567872797597525501392799547950002579572617205941608788579261154587503388004126591136521933345820038225241894176435514638870143454069885547373901432586713721708848395234765616326109857082626935164952690592666271139379043641246986609285303048020253090157590528029561748296292400623228499035820775879985494118457276053064746485532652909073442496359743940521961154654155508916090288651075308925708579905481509010969479378918625270133698011443283907020014515313204761194916299075197986233932624334076040787339205343291344140211939322717643746355672008967689676705675972119079280301011083810771511343651401875224995814953529613951792644383040983006689810521457736308971845887778963193609510526350980301142659211811560073226771844316176638272750351366094597024138742026844581537444718982826766819439286081473560167562887081861541603876007939292380140454412516683336694717062713108448915573981492365968215111235286305651994185101064693661149411155976370194343350277440964462695870776281853644583276009995819854069610151664728990363643262497158443370021928216772978595936279201040451839581703353402840218594997643459257073450513243718098446934232976777518179271305567739037137457293369414027510313824333202557501416444554745178866017172223374978868380794332461702647244581717297702461668861337189620075597786100525970878573550046501867869228604949904713527373889935732042811619819416757562103971050911380339590175606949893492234139876040657290155305042836007576039439219716743580013683115276366061362548559546751944159430126195626295620828190475793197674622502475403710541233744690117471048274473688379441611176739872170827106334067979404595510090266063305721281160624534550684969742992157578180128364373369894172287017617702534277285722442969656021919614009156374293737424068463130737652339829379451247612662156871940642481516594269903687709364647332441360400239097704639562362962836051303422492178766544747865553863871074546100959584760640791768536478229260626646060118724372899180305407376313389160441561885414036991042103243329958895427797209220765121130567478442991367693860034953967237849773457143375275013384787240872470912516865669312876201349388923183439865086975581742691110870887092585632694475796195789426741421680045283101391228841761842284309719194578000950268861912911368726484613179297782756425845295182518250569942317958904744288016075985816771464797350584361879363743382232659072761482070108082544421254918881744567447885425151999510289935359783268821156918088841174808785544628720456847975453941315538187430016814134768646918392873833661192483098535964111510744085142379586191545694937387275644668576252154130731874356792867698810184634964006561149837307138194830517918195983781025554084676829055194592693626857574832965715053920605425265102781135625255341881469532371904658039978367893875617716772290210974978997913337512236187600369105656739493799863437881961131324597127349049048910608573083493180549683092938603417643827635994295993707606946990644900822515002679968367574480617062050931539011253341277716324713591207212850523654553912368186637218110269979070485556358046489258551798446647986768005051768406694129398513132882283264888259192474458457011397655859958902849270366114135615781591617547718522231402580316937017664146851197298369314410268563914922162809007895684793765792027036833719335508052340463718698902437734212115551731628883725930745399355764110574476564650744558131073348678272553033300271890946995636221091188848278105832454640120481430069736305121094822099703563410659447575472695074826616469357494295783433618868603384512535819016992546636128952779536780393132567201700487228313179427539171883146802576980560031863612813383260290595141429698177762444895557836878752753481342391656949912653933550377433971594155593560194701868250942849350780537885306027316585045049393276048427491596012302342274694318673009414319942631526929978183087794160759313356414932638817353622375147972643917934254716261517825349521375608209168457296212183189445370165302903990958544216089859553573375977574135797673457227608152250277613648707926333454725553070231637258036258301423396091525053861974776529101232300431604265700120856290172489112664466679102691645830976410079523257166789716539126233127382555275461766934472281033791612448540835633456097931071522053263879810997224660347566206082062357089332290003036912726148190966677437983019651667396955227676234486296505563761554146960491031057861096043877401017911583943203550045474556238670424397409627461400178899670936045312147498192164950071140779806955701220351236355369453668630106193028629656745140578311856375636771249301762464736523956388993743132163329735012668298374351742120528812151962447248244835401261362423838518398377471502367409537138058373024021505481961086158100301237936796788206994336800583104123314738807657658865634822823756510491508294099302962673624515615629685895787127630788212412340690578603032674576487688262723492362088940939544089159113495748336971497871428319857989977392760254821143345579848994456448667914176465753214650296300326083772509105878246008496639622340016666048188154976373996045093858819911932227112183475676618294304739536535629838719915014354749663496535416830855916530968306043814419939993860352360750687008667880787685383652125339388259104943205105257338230152976309463995529810351843260653742266386225019968514749939409760992415089193211309515357810301358597427901381574743301222506993533690591274970028143426232898135238313567095174800366890789845722552405296200214630261762443723292592821624331811885640172784351349530017678027146386770078283468799272735784784356428496653455720884903352441191895140944854275175785830354841257465722010460095119024933600646541859339176215213836018221899784808245795164933354652572870262307849454729914912249975756810349314277258366830583876236213571836438331277011913052540104659143794938609536390379174275805564670404458477786566772975989546442278819892906772150141974774015674916729893358427411005960572279453916557450590443050496126420675344928724833510834702698325149361244165197083554015709313791845598058187652683285547790574696833955711014470255912458364181978979158428422421564893266894265683453816193374771814912267515246047883262494443857527057264670128421944239958551598424132191972615739129706924360320444632837207185356946359426092234441137849697592780050637685229936486171941685946500597996212463145326955342904874313122556100036784676259906558752223487311963876743572284574809019026289656091783836279582831302538512604995766172877162911201547201764050919919333107456380255828602611363674122810089320027954975105193800084497338835957726137258539953467401443341321117923939937571242417895296270931566244261789743327225035948696232978960408179417947212185899527743743906740360425991577609383117917170756728676817593308182083190503590972201307066790833170525214547698595757018944126667408739772821702992763330717787588516297081435008730367503355102313105595450352723854881425618787605559125639555097436653878541859263100800482956257841510437801042352552233160940278881364115913147000451858724800861383269155317624909819180304977338445743745512987826544376385452775952114281740987256488333703831605661769980649260725576044495718146898597337910286368830936301406773476780608878139925871186914717674293971937339559617818453861472047554949811614202610014237449184099199849014560465238667562092802519002712267452686551506100653663049528679316115955824926625667787986162915671047342092109934778588255180362763606818438838821941240842480753322815993383817271385758096679951443114043973615386682925798872247123111012888828790478159985187062207932954505846901232361157695895094794588453317241768248212198986890315884285640927003701965555210377181817040955694480075102442268574405610660406602429561861034900640214439773531974541562054926307975128798500668760919065380722945634247915645737049684694400101811279962900178092733595629157641590207437895190128211649005155918854075579000138663853040086647182066905743643380122553584428735339613011264080318698021129392051667582924550744640970164661973081540798842488081943007210808755458370065857178029318380324812504842444300036133477396249040150160371016141529769917659781141622655943377990810741887007387495550179446665327519337179239988226859258609828773364680320804347640699921389058285830108096673717653151048056563665851855827135418530212049274521917293141160424552188743854655289578613268798766525690199748103501498783091502449418075166423904992896324580971420178010846758034149554108832965653552513088128893895356238436349605963779557608845026289329201362947915715391913202407278280187471156513887244139202991068687742118557976228324425166632544702265599785457063915217830816590538178426521636298494339266076814475603094448394423679315917817936905354878610217647042361568400634735140761635246908013644532633413771716671684427522058019707647260427905809218225525036635611744186752190194878278796757978645348817174158170903479550323046067632436549371032323316568052545818849989419203903299130640523529068694454484145654224132750208690655046533144809798475461409661587285740029486528325797603951575944389446177373195877777393059803947362090159024950644756341908682719297872171551566949550663771086057570361670143759453113784690184140059571435690348984714961267359071169347540371814139849428018886641555065281604559523722836518746156908823551410756670686898689075165684396500452205263061279199227113202816905991682746137554176336670010860499361625479251528327677178770517695138745139344443730696797795951715905249680133846683194600422374444794909749351660391361529899214070914157745808295099968570024590382475704891545475990319143428095658206297243292941184329821860912539816074231463863507890600920920943800954439607384594155356450932874046617489070635976503490933957396649948996237976767071881722270468956201534584224210738555075242758702248884350437725504883846739775890855932839057828735882556233863426833052598303276591869240843444535421087664267499890504352205433841443300661302611619356027675579146093038393380079413734306524440648427489246412953569718433564794700457109191677502927389815735615565982385420630847369723384863344308671742973132494336582888402404252634155200447921247629498462924933250637809829096709282709769201437449255066788839221367902520417829798884054870706119459102031504580586101692547534172472985247198246149076424144980476070979105989792937294860700457624195235054021713188425422435524079114696349562693321521084288523697312246923134185471687604513825391195198023785140250226173588420380690387963810796153776414481575775746934539462532045027367066720120141558320325511831030386413928176871259685356749919301177028561369205038962270764457553935159500445449832231910542616497496033666713406806590409023589869812605434591836317812164311944557234927391141633560849357986183325502075626912210939005533467015904354078623306742748890763688398833549177202508314005873963480455407796085486308938532137914240141404874801328593529467483974900800442535916188355511233493878193720084451686245261741268645847000731738609715431904906447189721490757072773121004036009251657760218139405929344771943584034584886291861203874320835861150940999441378509535664744635165226172914717963801060356019067419906439982744944617077977592437035413542170626323703263335829325704183831727263860804391653045015195583382089168687318894467264116037002785411525376676111198060041465832868397194672227667304312500073145349875143433069456406355136205465800327935740865650121614495634189395470430181465751656220976948448580201735328836319428348231748788590408494928942398629641770244442694453341534840894293224282838993651712036396301892526514907261486326594630197187767286498152684332456638549967384247926348650209285899293421411549507357112597654518632460211926157892930400267181192430613088525507824531297416573988004112477800771985514362385002521540847836184360385099837497444141502646440512009475551481897447464701756395941729066070304937068731823735589005044332620867420802343012002529205577735031327781825027313042149543137513964359174489395256071850761211565485229280130856888020827379963460318247650363362163750775979078843243870678639315637292929751318243424070374084655552985401416037998679609350791973643983015917323130345734434841295357613672676475575280324138917544956387452535921592352600093781366747762696594469028157285356711613128402759574478468600479243145295932280999960933614067130409810449142374115767166577434438066780844863864019357843759229410907148662459904673852198545008482692451750454180180127970177775024903617468676450972077960164937894410649282088347490571925867241121370864624905279836719040266303605990296641983873773266547516567428136803733733297496238102486080843882851368479748064798890472536021175045121219309366477164009188942476556506286627845571487880927100957892659308085267660144934285620395287342019262965505607646383248888355777268852131260827943569747602102924990124535059925212408057100259853042626531844743350890191557111215510296136324672314189710332072080263644983781361746893529303918902772843288401761746089072041487582097060911456039157527932230674043162886726572812705652334313893593338733347092351902380074871875954263909775383574776200945645893477466173586946210116497926008176330465306552275038194345325868986188482266658314634494505823021606255933825481416567800273943207910300994489860059295434443426618594313911490505164938074074202436560884665941415075405757456689626098749058912542646882333050230429207264873135941165903447380266474963828149280058953863388692305582264084141021685334518400804444480522933388921474322862115449561531857827040477827420119915630493290011935136116995178430708384079014675405110990960573065951308329228938434438318322764250638485276074905363247946228993719738687094363376230187968602831501533566248351124808981656491757534692145111214739889243209986425835781203093296897153056170610783345987242736979898812893697816795956432551308942291287986868943217115010413589782340229346076054968825912778183572082690184564680732960400098310945262821698421979858905283243233363036486856952286162658244118788223804263165156048488282233870068925704164468406469681739648770229508748651621647121771472764015875402746684282976614684240138677493644121705377010452566523661455448284914901360476831433329261955272863904822060232486408334140589548583381697885354891443266101686035587307231716942604163073133999298436057837920656853641207653734920815241471111383127005835196446246148307839436025379175373307167267033484675358099560842605044381305571089470362385897297062317785238954819123846096947207067739778634734878714782337236458493731669545057674618078780523178429213069360238794938156179137272366297840215444239431227677626945453418735476083785770226361125250201264875497889404828632325242936954795846005686953432554346927415879395627405740679643666703217948759364473751666829260510543135961947832146605002826711771139105137497576956191341125055233015577611748104559588913342123265036544802538313589602682382273550435854108236020505154724849812824969192653734461548256410984700562690885028728045454568805292253282022399602989461708307102179728163766798201596141505109288731789929232190402797080888564060642542258095062205013982377554160404258273142470157287351827950989899064117754538664262570272853576811498300367491095050178566669603752419317913710142366408493112447488813423739966101997859091708723968996175962472261069352825473440227046083007876930599349754865899095532966408826418134157120637729748214455876259719517129583673669313941595340338332687062107732373843074432244243643030084023378885626428666175716819569652096248857963649542583432164773543222938164150303844144353430445998112619076724954438552540624527155987570908382903379281718677554071734101034504548794367528425930849632552825044178515464951236291022463657690968293043518103546758039543406193740977320960945188670446368729416834562278799565923184339704553872575108240941729090374704312875808761463078707406431755187626786951088087795888315136920580372393593190668712902930618195695354897832584364942770542079112726790539609176541735221680087891570359629637986341512449853121929788688606037731310816013008764597298245604477371092035241000700554884570930650439155301559192696827092423206336214172341184948762058018649623104748746433423398446356633908264642606881656975326455732970301889091633281479349212468021443004029209418469675429904378009316711437039235709492216468126728344042340081444462225845838387849609605910007530592629028491427388136445364574990442391753437611557349637866719066115890037720173110878419977782613286693776750354075069168964013255614927424567722252876049615860567166753921369628691074311559556497378049418667177048056859984117740710147125225569740576247769760562402635800740615515205498795823552635327151025010295027215642135015420452005923054394903262183453894861706583425358392305724449921309081210921483383974005224711691555727575344673729263160366759159337126693170720563309193579696036204200184747409591047916392953561019437289172681514163311007377366123984571288751982504689591252624102221613517674239547777108536060316194500574613819043260741722396485752084176178802151870026336921989781658697669536345106751143606236661465172614302961843464816469823889393156718643922754306501070609173887158853693384395329656902672478959130317494320579062025767439635799462092028220152591562728171036770255663087798452494814205994612029489339455580860282912378519504014377683227017937946352388263275513949549121178446150441067058992551063329491772921888672637753900668076967239604615172375804771859330355990271886404229005328121183387048126193411188584874841549711916963796762439311534369975879122919867259962819416998649750079373334863474366642331468269714777652034863403129942501698695793389972272927989405234686134762251548887291740479886952117842492464510436761209067783268214569827144767163476545846530955285675408758660400896857037720578716632596930289741165489314550139003303744187318921637306922422286584162850926757787820008931055492677608111422834860226746023572634691891842270822052459610922092214498700608669045544347571879565448154567602511293671881000323189689277143780349995041485229391419991655958682736240372527534614354053465493590050919529864078419321992003956450917583779754696633261885560998156061905726093586528876602093193673064144669787083934219564773808812900619501200348205809327316103553964175679440426501564405856411420582934918194308015280749581047557861778521520330834399721087997953905081704361828672442859005179489492570901480290159520217109493341567623733067223877852224660136277745263094800705361631350899732493972263433972154097715542556423620569670319855183369225425847305584534668280720061400615404024693879963132393087061388681042659335987434544502321761524144420987096172203702629042520689508034903386001541865375141788099799422252551611625617342132546049231657503094658818703226050730352257289568215966006241750579555414851524468261011926969975426031353948491847277571124008115471401409419686160371373929764487983916057856034687171175576648033258561401326003702465748067137361644261495824185042026952902161285286665720544785399109870438660856332673707327774641408437451400714370791755516265902353881480375721729185149111747588205884751552557280807774812492761539588402693390890333213347903587006064561335610180723890787802970410552250794028971800674325112096106414666993382090566082536161089797329553278410458716324870807607645022798489819886812875476162667460591427866958715051754792584411641275836920548997897748504545425585296280334167433939002220471375495573310302331782693851733967332151842371923773343950314716771565477881941889190304774892667303533484851664583994427033181789444030418809614239592508435305155589741087974412659451412498011913032976251399306926317505155775813527699977295702600396897258269628696766460644582958273406700489493595137058980389902067444588759819825004249036279733087659451253137651863160546845236856307098280046845758650789943114532654346646003870861977017701326444862497486510503675982946569368069898886998470618926397930887747045144318161151336355580241679870324833813795661009382494634115209026702239290519841831848656456901995897514062445681059049536927410126666275423571584680155854568465795347263602860031695900459540097738763451932215391597617893018754574674070030250363552623535801417815559001867892679879597903150479826374588061902138887581978839258943852978308721003216600471280825262572883832218849830842718079777221354933852760990879358078088922989194716087564616828190645864410152702484087767131320317885129852476334948854072525527518502710793374992617925261481540436560600298076251087942590317407628758559176223657748873457854230562699839075503317371238269103170305299282823174869735280837950352117176170854722702932944632962838089153036532383573037188332967612605461607752870744121925153672676593307475380032769457087673477784654526847858300112289337730791993208556044261303610114274031706541850081037050118776492779268503279651440316957933890962978392910823910264122619898852249470401357764583311808331116263963682450110809962339110634608534683194566305420476060532577638368869203347944271999622726567996277195017634854886279000940741841517949706866292731195084394043839003889588102490073008375069198364226008390780179084645560083151359278969374389023338558905005738519638975156740511494415686561912979823775379884056819621687091878567314459564717475101639579625325822742532779646554784689042402803966379312354248391977729575209847162727358009039252296785773470900225885169749334596184668923088060427490168218471882133709907694199631213011698592641140518302757167808115200617405534962254312803395764330662828483966991115954359865971627857408056224516344896187927703137942651539343401146998758264738778665052493379559264138030733673592410194869070059518062258602662929439426029067895508261743206250222004312641273073229066247914677916732875395146619418895647395621913778957470257034675988608102247323485178626200549866462401642610526991665868294463670373677764406202708664623275354866274290973999905998340577127924654413837163534295463350138089956373600584197729373767192528237438336172298535381582617452283179357758846436796306600142425265556728685783244093066454248490664865518050729861269166114083715302088956462876292019836375176504503282220201207561042558696749884694573614534459109402364459731951273937244211473163625023419344927712587768634990514487016324724386703869621273636185422345196597388066112421265060115379505358070458735141761710473068340416425785895348805253662588852053885108489133825504889512955084818483316649632966767780429503970620546098130709405776277440316667670846021869766951313770971881915784087044717113997189867903180689205636811772199239410798614154868440880620114854318459038330007922783362295284240436489239061225703397659791934968895081070631139784603346090645904675491030965062350248951123518070856828113838141301019525688049011793067562229777998154059417409052305652124038058779081206736024948300810591256065430597805954899833028270104440391203892871529511891779944834662230749892932020954067437172834719698542306504060081464615190242508703969393339467599973391071285890861644161759580263927942282725805764442548208660769473716111180963824016325920381695126823976633379105657122277146647233703266881420575691217439609454909459254520139817555158369315000798782793555624000206216283102516055053942961620216991806520007280366555889769261753992073455031886257145283030471902005964806220653735022052498052809257358085408814138383334645121588398811596781023592184175965198407314868622284292202020760318640026265276575129654546405533990894606060228753973803239563509740315455507846131154575803853473714596463599909932768933923067502779906044505119879915471954034249399416561609201287994417873402926183931774363237652917222710369820957385537688040284063382738392703509976052052992926528536993872808819934581619364475017274341214795374817751160590810951453093363328534449644220341084081885983948090857178956430815746727825676905291080082267004563199710289283608602884212472335177765239790024996932169732124584955031808853280362385015536276175501857234505879751992594376904170645356744644333709887060250004494051891554235496488015613029814050838688563446427463045918278652951047390170044450185354094597422765789980813454707719471244709001542122910877819704034215456079800892391113176444097344992031927788393804412796826911065041907897463957047505787469272815703936765140053262415388187316051857334489091462461460439720722634470549577343246466488527279123621701591428250224506999162834417642069832459815123517717675057521536603740057294548301748657587097586262384550658026282386737093062632279807605285452007345287135717934503609078961943502647083961239266934753068782764743327917024842243862220283202542511626212414263381751601492008895545221530803793153415405988123307346958398287054568293524274911326718151290414177830167185237544315040455109425663573471788602678235487281322236596705661249641283437087656375183109141344907718835174833593484495149204160940099146258318687069662558300020265688635386973909933663948477616139411742356004031689479384859064274849518414364582947895667815420160849010499905496041401427490589931659094463547582606150264389112194902393208200861519126539157148027069983386560806065812287350010300360526348456398844507317803335307912844395992062324698853544357961428558734897620728388301473560514718991769868332206974162726136679965720323287784762240503060523850232499287591347799822031918882777754478950123380394496522220520618645319633275084091105180681529696323666693843658409481574947419756701157512898419949493035071976034095754814758761506182880302266976327857183699235588025811372936075169969167822771217517553323644969924886105960136514444617763744324261435517827158191368858031597902315562368159149421911588860297353327469239321355129901295364456136942073453229347250048202191364827100487964689893044594657804986392423973367497716361366454916336042143890247114854622426983333260943361387236209717624540262332680882088234247255648370339508581840840184148033462351993690306323261073236665533596061742617820844653481867487893205931020529004952953949572046373815815566831311398696832985299943661426966907435293180717610401796921659120187339412821291110720649938765472012473524554218267064032182475116930941766677016165507451659115219418611560795614730916762228636010906036866851071908064274356497041526190827505489414272717370592482263240106052246385082638216449144958859447798263985740905832119711322731746800592531393435618219091968892353196333950704867528631281381018377132134374645877062925138190044575255246500638459302801132682382795452917028134333794201993182714523350661262000078667869197771895270481548690698257107314936712246823671201113394463030656310610865843773880228755593666525420972120946300748157902699378156472493997224984706429053307640059166484901951542807727581765726010331072085403922162207836256090143158735291682390956352982855486775400614726998587127317123901472912222775849398760200704264500180582295736137882548433453727464286500252412678663699993332215431314504721804775091981173034193683099304136703139058560870036136485633963559228961317048920450191297010727746927361418329177014919189144497013207652586907556631783762624338720795493721597624767871325411873736922435717414338811216473121265302663880301546596728608748790642927575268000166006363343914102264299291123680425583930705012476053619279573751785706159362553779384605255414746494594669365950867761501039236250724758778706540532952975526028391415380105497638462225169334322230838740077963222870801608054695185130300609994669228921268726494883407856526963646270819411035906421256875880659284937409910076669461233747730771086212380788466856362030418546962363755462761096777733002572060917174239822661618094509076633082104579061708061098354144283137569995722491416984660743469541609753658294769485383346011220857759787657267933966104837971315451056408404596813711443050031081951075139615826118018659082469033793605993624123243237843618676984430303262350700302503499460815048327860250861701804566910263384977135830945522715311678207329418018774979879769629816172750680656245073536870387435283711710575988161122165630224298061938111712566916806996701502410537439716012981635859073514263821753391893854724227516524199041815882096582895474869595788507162699490928406023709262499131868773067948532777063218451781576932858504153660506689061930051864642448705540666383217672063875642958746570789041802724977993897910851476892380958185676139285166342679380266316231532925348536412442511691350688842998458261494697505748015915356473323506516938535247960239340838191507481390197788074244063676390930845063389326896151693319972887516241458275555889069729605911996892178276856054711056564290607137035299387484033011855808327590027968853406780431390034174875595045710555532439612344492441095161825271836907901195723511546113414151791584355705121168943082136876022390566385295417288379738066471397007286771477469653469738487905623074466512469539946843357439229345839647704634460500457961316532261412629895258531577835589356903821143323461859463391407787414647737406011547718919753687330776493528051011450100818257373628680748221645507445552626102419528783805845895410667361361147366321397353924137216137178368275920690536511642440814915782050553331755951441052414587018828790984266814130243439252726030364874719141716857332852547065665647775728173289201379221580500985130739116306524838134589270457541508671863623659556823087616538209904197034343931061870176368256840273881799388600564259932699927590846434613135039425165735082801433235389779595882578041847532372600947319494615457856668389782026193353126503039291543187133457325263384547799562391455618168839807299674821057591276035349142542669861025518416801009963363587887722293724270751057044102155978179640792066269049032893904322180277007933175337387039995433826002684849462015519502936723943658403659952227811320201986979539643484609372117250663800423742642168486593064596587037190866132063760330929107993421981571859417471994084695172490295391926596265583290930868877446897666931779654412599942799329427310250274626037351634446012246109806569194903583726445190825449522264485233900282563346774876026873377129059244970388565586427105778210784143540574124173445741309307946275417128115862491778270354058696598891507162178223112439145620781126572996348244137543575454747601413377593754994946686351737349077704450741693730125294207300859811658765915745776458228941761605176723039900716976344361048883279469257428088340939259425266858102724061336621522965383747486147858909995126090935944217418372777165805701638497841217624913577943948414090999328051067886622225278008101145041752615419409203755038911577077505607541064744071887671481194336792115363312002100296790060140670249446164299248963510019400855706569106633416112644191167647904739144935947709571438143833267158574884742209033541403514432034636771518768706558348764594335178719553493483144513251256732808491311913806931600967013850971607736797412007756314012910812175960107458888306904063483264367183990422184559342382311076397827552381414039557104717724741984420166386666212291137286856119981611683812259453607912675271623776315297873352271784797376376255836637633750405320458444694608926315336752546303588465184947076030099039636167191948622341150418543827260545063853972922858606065955618797693255186161716282422199490458492389953320744093506561841659411713740203299959439472949226442801874843687675239722974399087710695453485386889832962892486750417195903955269290022040984993263539289174882795540084608172980026503420201071601953395083892798320482766152442384887454783980939109631884609062546189651962328520275421271223690089951641013866263148114151510166601049460898124907825163342028716546193518337694497442967026433360090494430892308960770655182776619772902917727917053929553604897520621061593758126935643806557531927154111945706735057106095810046764818185600512837192527297943434204986848562392979522107177374433247811104793849275554898362617361487063652688526165076711610906823199982590961852684670487033411275639668803435128628926317667362640749880012312736700246263126009481081218674483506672086958871936413139248907369088447790731691306893201201394873554236758193245087658981351340722388766730963814171916226578374819043496852489153515115159218618271231363036192592662288253599809525221352143284397221952027884111725967772622641392298793771333353979050466949042376316749357762132888901064416764623640094797836142091984091358585274013838170185477624934819565791045263289484345881346382331348148928065083338478413121403299377616948076127098184792547662111962703181022139934186316781529753472305190941921525243613655044335021221500815899046221630072208968319535268618954234003156472768359069769647858684810034387445309216113325613916285083060771586589319837325101456546901515741452128360369537588724086587550965177691709208105549344150220922359173794820771741315487425231312711178860625539992839678749810763922375637372111525192362706274063133482351361595561727086018323644930148991322348202479799552932652785571406297294667350452143704362237476794809122888550811909861142998853620015723893215672423416410340476587409136463326463558094999171896594541574830592848503761844979654561719467759571702983740721354960493839637667061140494198584001123176286695682005594746250020560720503407491346322815302075817118429114371554413443543851236803540718727220937276341949222346990168555542694019882294535111802781991743905132490168802200688135680495466134904048333421322271608292200298674443478260664662320117643947148686235725340224960210466280956552916315948592495142467649009981744690161080970958570861957131233995815455231844746251402238774289917632810035620788003051456453983375481686671257422939183681168662910282673235061717467703930354254017908061608717016223046170755409565497498935365248889431694057114340999467068166570161479912185066345855804886596644544110721319076556722912827360488220143543814851401968271126121044005754982721606392107923973748653138077124151220467373963333834328316431624055623011569028891222379246430858491050091549433725090351219553232044412665766716275266640754941474440904135480370009980321411073444145844577047941248557119698636273016223734990998115511579713344717973576241051914603736874163889182899364704201590123917906043780713920578401602104870922670961327868501252454875018447097695474913797059018648961567285550704705372073671921269917980498175897482644868104827093180713136695048601566137515735419721969207984782858841375248382430796476561878697364359127670961854620539826833945650146427396753003860273588880446394040314111045480715483377298632082950553904719034572244913036092139926640431529388484731895455593585312489508108787051545810308022890478611093100277189628341724930113460382720668238773501273911258428757094763928583771327559544134620364448008426409669427752499206123078633297656120322381425967135452731364944233335709845529068408943500890003172241878746856045241847477337256025675507641884587472501453513697399550901577433558248363667171982542875240229890678004172050977926062753773858675378134720960312646435025347546203360211826796774126390225172512001847958623508563660290342640482100642487728821038819050627394256315519016171587389368000497691733976066105886934654838414199791690538311805883033653379825339937352351532765830108508673343954491340815273055468768238485506936891824959104523427501534243390530308001273055510291328904707729814912812687379508225686079204814197482446424509987677916709947177569562559340181827935503013261443540558757628132067169932593288596361252514164316607751463571682963399691256626224514060707261813066691637898514093362920347127506271363811418128551107241868494629027221697877846200069586268394054307160995864601829216312304239890447984320225324280447900365113554041315905077826617706812623851080046901919084711066572242120695356969406114901478853065057366311434645303053875661410701305237667900491762608427089890742995920275017013919387881339722385067385992774657552836842316184939056155405343246461388379525580625952821909504985502967478543052325618391306509431912833965513155024396981050642126436510011272590255761454320972129106594229831761532503794630499424731736065273359432054399255363611184190197411780317833958175791069512463292912412989562401419656827185061790712541411739089767385513805842443888104370538063053914602490976253022554796117524517656292478281742419629886693983049017849803223380855636106155594960162532665343254781894323489570058340882395802029369788867199299924375525662070860264771526443913230985181264671633914254182912934821403328272335520534780856789105431285718256340852299866484010234390064470069838099578040294749313951976599675151461684224969198418432937329712437538750816637404863314383907066721313220309055092372800094384088602195206191620701220593565098278286448851611872362048653214176723465334788916210150542168364050808375638794725847216312886163925174060653124476616759036463085522383829154226756748662037079327537327442353148870847025816242214742590261883815516107948781550338676575700612547023444572979259231815047036585159085731404374414563942945302821454218879021253138964950925951770553780936672342391786331250191879962376543025895843479540558152367517535255292674755536220915009899636965240138447945551881774733846335386774811610278234482679697543652747051091262279862356323552748011368206080123657099307809340617852213252440596235764423361562396281264359478755226500987943300994781615585353897814219160958228795165624426641769050987833901475262986426883716591781131540639309707403044263054796257455072961728011620625491642830279211321345172503149965947381583149167480780029386707906840772501790068162056071610783142453925811171178244516262572257699165924426816244479426916210571292324909894519618869537527654505747652074672086141193100781116004653679060131478555294455702003172610531138192474195173811836915297611465239589106345497089956960334762640698836374317084278049100087505557367741893881118362679871187157425440095268795804326653174227799223609501343035528651171148382821517780380821351696573430015147518847803475329713474169409596487905732025706418778742671790599762175991762420262235163360061849577139173887690224952471213399935914371947385792153136710132620501142754859503232056338592026244895506864402131169446228277205512687481659216071765327514203235656092195586641582240388411069681505890568847781356483517130385001139033903683571974409895622170764933930169533125844790954739574751029740503960867323798525202379469224008031708802423405294505961352073704448131835416206880732340484528311158683205667746127037662339093900939156084847904302796795701567630814692275017130534897542651171077899885064564059878519964290119191616288317044191451876417236946955634270923618064275515375152860191779381415263073908726169330146487972208454595045857193245685456426982369197346020238912462774751052032415595437348121034486732618101114778461538398258076314763939751843952002507053703424993540361594223062247814098492050911544064848495302309994345520805620924526424456549830168318253433579970472398779435811777088111041422512243477138139926870357672264749673501067967425248853205530052274321277380960464419608581618256850151185680380980641094311935129130167154902691771865811899630865714205922491117692731048849100761633754620520169905850897466331492234792086379087113471946968171886195577052870228328007653507567454523751619471820177479260041797067134672681057427800266523297417017009643919416281811013085440357749781373388090650818662034455738141168279909769819465847644830076680888191843770847116255363734372149133051694939797975027485912794939945379546344504990363909035295885749121024030268493847754285843936450308968987679735708809962804327747552393737745029145048060228442477224918063516072474186646557100644002488027222593280389753288370977005656303161404036069283961709026132401662852999883168249661282845348310503369665493487845842415909480613782846676683677659380204473000515727350026120026568863288415988046636744343283154917647239049979608171475108315973105131500636140749130945363737633117146195853222843246792846894329071169921092877573982265547157909530032184368938502436582571361930465103735058277289578057032926261544643480930548238302062496296742141555190432033485038894018908266271959454449781117529184088404649841153769902518545491428173365893641545022855523189565390865828094110634437677506937417209025996723399652814956533483460839071859076744817735571072678711832187663607034041110057251075196505335889125865883833094443375605233939592329168801785637956750622493686637743917354814990069364712203536005336856936098925500970991662300503263514167693244587862490086932739836213166293220603861341964942113780856858960750614777504283946816998060662722391727653590076125351801940640900638543954315051452027176647873971833542297436697352961756233827015619160958021511245592382710176501419430194100322666823796250970310260251750084916617007487952994058099439448570864790417757626614240202058731321147141490076338237184993448455377348440439874012358595808616439910458399291969921480649918603900944453729171034618942567917888766686592835808885900824617086956231676563200145228684528739206854373022454854380125916527947370168186653356669683094064301926670639790917312785282131397612531533364489301206756782719356661241207209130288707953994116148920881479947228707253650425871961168620242056433567600401246713573077061984621976676212703152813365563488349118997245135389689185722645907724061675893766652876144948595639385528945641704839096988755149192407857728884674558253025770097983161077735384080952567782114166979481816588236246170391921761379158647008020349654604245568853971128990453164656946396141484750283487279363712115439811069783631373044458932213147086429593051843707362850726657042916883217958156667718998373084682405041010686799548029289657585515337821249407701549834177891039634287205454575076157051852955245697168582166904611686674680514822878928212318216319773303944688750144754050386758306317071145834594015445500767888836245055684178004788218590767550758443973747561606043492283194125425891837816174073862078421054895193922413226079494807787023369254901896182975814394749916342739464040340407158923962192039233482047230148810516320418532254811707439040231602352991432990162401987708367571885746981900381930464535487342640655046720991952181926448685525272100642423390011693674456014759385983124983161173346127157903864636443100426020911536181438742343446932680803663633670052611363168384788285597516232593204450716580272929698465112963206002122191295700640500928288273113540443055448616632102024182866216179131229971285467372034991454873756593433869396471843081236742301079801420369005756140802337903418819270908708398428650769880445242509029614130373550186060691077127017040907360361705978698344979410377886692893724569505798312405864324682586689865848891532993809854518283540095794278071536635908228533162176963330764211882677710846411487912769832305416366493368967183767944912566906687024243124611904881839670488187271680022482999891809131224462489205813472002824312979888009087291194875065036535564288656911311376863328120623888559915548588767651526094966891467460979870235754166643047910207705181523691267614668026842836733463654869311230637087334211444090174610576987116889527127402707842893277718070717835807942653902206062466497872420452041364451414453605557872357657950199858771135608103607345066947336793333998299406997318095091467309412305056006306867849575389447693935275945492906291653854401497966618343363768385751801403377798781532741202863703128564413158874836947648940066327555623802195996486839804883320307150558584285009270687766718023730943104038866186904066007154288767079329313135674072055906099385025945480683165395576516229096469525243374443855182540633334629597949021152298865553060727784911794404276078457235509384377974709276786863220586161199674921097883496620574343382634809355503491177582255275245997099108719619023941446195141931708567018598777795600677473990427817831132659186214803733898110673502810239803261524116322064667612008927787431763217333174686255184271863584800437841362236308685834216665615682842066138039907309691087451310865721790950764085372113683326153513686099091465390547830887587260398111038681928581654365769332954898091133134205611842928159715605212097019712715690801454492753044966572501279411166502684434105754423699492969966969172064816566994208462292039251919739436700705713105989160688450316519698158755406843939144357763373409686087651012318525304928594427570184389933736936374768261620631938221303668482231015293593523741694170497061792037184381160180906037977503308379668202655252459685383963652731974506604715702978993681381445879475501238905532614906720254602220381845537483981541687282610630104551445123043199565350666044569280431095865766522278916789570004254503685753599914255475944104493428133995640213664618635240623881063491103125227442571531652178057568657598210814565620603278839794369057425986862581302683640866227786792577892297472713129134584323378283437706188411494626974088928133010961211323656887715257838271618745832791832940004954768834417405813479660374373295595090509051041158907770396808714495848538435964707948982391369798217849425431057230208710249018470945989749421913675967832180135052665800178339099750714940135573597174068334577915393857949769825692835018366835345246643312447966682007675877884902691036878088435495201362197394068483749342264014267051412415678262809872836367401292095776948529348231587760149558653586419586720157240972036516301267761786840424856336411604968203251911307880659652144036536371786328336838503288390725991077699192040081242256997715161956420378733726376652949485066239858565283398918573149432006393463497192745848138329266875666757893547928783829814644565995021848638198755352235139257967205260654483991664741462406506790111175760725393386535177135448648123158563592247675687933597522159888696989855553289519724214601063368702765606940165514504413893447536379829762845387680970811478853103696770317412026707697481660519005423452105227592621943755660391617933271570549442997758972046992175524357614992299559718111600968601120235239876524106790361459047745903121554145803202702132951228985377086991787888103300295176803371134065048760900014508016454590693797275752669075703972553461173500786695834859526241208490372866944447652247290302432844025389110778549903989286327011347814411724843413956843933399685952144318148646037686715063959219495796218758068563033404552445813194381513712051127709984391025888243400691084603148365039451083369148465576873870460386322220184433230207176543398036669632007644085325634200510826568707341494566305941819119757662690724399940848744899871910825407378226705681650303087067974516955200516956624316387036480296089153947000131923540423256980597302018329524830961268534600692496178543113332419260692852519353142646916759622187600859148206674247617969742440288432926730511942312470569754036906182285649335875017635859413974624330713352030924852824355127385806365861753507250775300714951644262143533011846250044346997703293101419047564832144444822897854542317731803759870554995249764908903081772193795335581932718434116079157693749276586265160318206997614694906193789799341887702068607105127805257553296161962548758402983531686013263912364711537555478368197721058785984197161895662495495846954459088077646780645652233163236646549520418241002484868852286961425131260117845940215371574375690367461530193812484901472782536040394742499246498847689394356286088374546733802758402103456297024177325351041345994679729704264282818144230767252572525309414995454069862646878182322742323450013613348253296552408700452402513406164753887088908145510462315697853552400326703347270983674710506130071289967301617472017932754361973743271782044339917094916588909110086531366355989875102672437951937576312590991690399783160266512792613275098380613850625515994279392213700038778030094986012987881890225940775098000389275673127660757470841003305845216874484451102168758900200584790968627607968800077961276652553026823624189682305646639009382560632772957595089226388340087799293997063476199254846276018264784901620284811638280241452532786595357982125769656809013490082743180394451698075439095182599328434124277564276164766526842213287008809548266379018625092057880245648420271335599460023430622216678249153026017540769748955600014586925617727178675212379023141028997860286163640545896499892861266443950809487058016806097808138042910897529262813040785891759307787412168924191093982916876443866118238386456451095174998114222625815829348504185054840563439393092445092131119441263754039919496936173302616177708680106482409506038807864754208586799157355362301645666076358480847378114808564756394522861713173905471186750166246885490386627463901419320847123807197595614573988645987492222703073130612793937206510148974237136886721951720550187484812741087714427608141672495972541249770092930050089816977676031939489129535177733662288881580963458272491645815869262638144717485083832371522943321898094711578581093507076087442386653307679510053716248466219579769107442000110540930561625940933623524292762760084872057114074083236464532027518692620340445656783585172170173572672058837726970975813626991558586301775908334140782886626516636627495672983975345241425849201783795847066553511265133209507935572020566251449211506569092567432533369475163045391171726905213864357431260098317490418028207669046524243648655744995524284865539425354867183920996763917585691091878966660988152329719517011589774366884155664654074095231662296506313399733623610064619223894072966081273421840250578586669573821288767240598630532789890869198420591933497361159136984911806534493810427671842705250612813446691040625315556417654522907422457580819112440263242415799524119648809856952334270719301749774153715768177604561547561371391257484180800808950665010673709562383386755754259945599851290315748120616912295388981960654787474931197816033858951524681111826717288979248336010003928703551822886012477322326284188591348484422655012928945256869125816495255052827285578217221553124285355231928192551459906320875928081089493410586790286345581786743065469963921633403157768191857303329510277453402478822136637505824891411331305090949483598994492034135094968962392454089800160757223877998607812469022572599430449414455983457578421238772882053028812169590880551077468682102733367672782229005618187357436696021822351329986510588863333319114884163104670367778235808251181337712524961896598056236860609108664145868667195874355256511806406729568559761869222009545617023211095764152501466000732844005584054081188288288637913784899670372461351286810332866651727806119386052874908414723357665659387578646192131364746316967998382505832703136708448927368045537190782162964827123612968315724893366102276697855110816366463573896930452890573829620618914912942357377551014121852552154198647791966671237723809747467702762608371235490480792869087854073468903365029490957980068129590987339225824693843466343383696035935162038496000685073232972398204998332630468377030280181083044899828182960087915082032811414799016004008198290222068092477569871448059578469715976877931729656172253684309412435302824886746487364620147367404627398981963860149217559638838532910121750801704389918859794604699074422469452276773848191243398513050359503577976537167306481431748283929991706413394117379457618214085725658146004789089778437403329223373061911040246057045541869084430776395390498999082495908908641470363875077769931246873489609540191224976112683340245106011344173783638395794469506546544127833288756375985884271588618604466422090648705845650260735727332695604367497496906083130932030264144463417452849339685154857405537495646768638314471121249338079161805470083242363191785682935416644202941481525863448666089721704265950900104394332535249503041243952969351928344079465059432850358227775420986988511217377847331709513426415798480583261522871775870084054403442456224392522493680449825314610128898121882663909374811349506857946282153126978292947767808276249166672108077621575762965392326241052835189644719472775540127845750939486052421014327835580779957527502265584790328239022990122161979560367434446110583259268956100710810835489295805083219112305532052453586353599491825991780008952321049531469456763197667064961363603741406341796359428441372386860680051710580652393606348665997948217821006805773216788523842331552833995118856918222303497975589425527233964720421632733377885971040396216880538978760240096803525514926685894005176602395855066895240826372361559205361483694682647748680610316047052697896946019226070000159004396965954660809306505680164913670650641081985635092880379066837551487727122154695589707571183441936723357125290844087412365785858334464845599527261106688283431258076303950637637521989533380642382797433959201791224628916696530187117780178388038447534614003027513685621482848662551153009208394366306074042999013614307782964422554166984186338889871180352020849007045508801460006179890064061062717473900990260782554764505899145370796883958741923476111678300817033111071869922140458440706720179613873260967145301652583564347473213215988301346225026707413225255812203199874582864770073165259058728635440110500207717984216860988794510894984628481125895490844631202226582193606590949897488636530143705308564663308170072520236282896959517221476873542043305536499943932269953720331151212310983050575776730935451921611102423744814760213131978784977792657164560463464202259103494190449320096069682548514985411253900560363993132840531789641154293303663780433005204552655178134981305873178384908254244706089413504563211031240404568893166380926362468613784430646307826631832013981853340763583504601985288649951022350277222184638224215689404010996731754737046171722825051656160254573009785562703314802796846531432831578515287623474907481749026748401670418013578846922727543767771441933023521114505707847342167562013516794212859580904670027997676665647428647513289216404391063648444699177127598467402959377471495852835188810520597152227986804324362907287307499804063140336031263237971610104343755696868540895076610424630584522925862087473920033383951042759630341280630703880149561170203590010302090502547943931945896462812007282170121894860384355774738700643337093923855965562693153731601839453052490245059924910958485426087937292126256257994489327735949104998250431367036565893560656589881324222532073275238026638822086291969790906569361275038090898494203175226908875893216691267254346712255302654627622734724291350545540176624931514956342690832562866614342740477480166374837806780217035260160810350629729555574741589841222334246660199992250934344031189268658280432424812605168157584491761168196500956564027163523386686341692342233989217494211365135987595127568113771306967803820347454034265415991620269719677226892113368524533069575281911160615104148378825755250407087297233245462429841515044201871462740446234938361929434791554273176147312094656265661994004565908350111521559324233293349063019125904601332330323946727624907421859463954469647870824864230872661726324995801145159477690052576605236980735734549596913470338858425059636769359619383528119381327837295721998404752210942042520860219831421755147414720287406559589967092173746400470679457318364274567444854126668886074114913428519385425426191537462609442351349718359831356381314908068305757225851820726159953047689311253407564204984155960633531061697433670985825777346188578758004854032395696162878933117168892315673920077792597676697254985914954178963204327124757644805924992819118300741546288308958634106065691703023091101401459446519986744168033782444513068838794739184069842936236083698204678395838120312181901521723386795241858719986508927065507837801794005180307955229176794667564002015031273464291209732514423155095571095755487324307287144254881871609671198121482934283411911205077446763429852256639936204738216022037036193444062641385822367545916284106303445001001094721548018911544609078002396640559200025698704985419129959631051574704377071183802893336081082611585564421031115324029117637905224777943899295245465174050816040476851707711636946483784821730007180806155721567292490488822701143312404633516286272012134573926088392116899869243474731176464502520711465390549004750531503374353619136445374634938493607449157040851773674191874605505646373944556003144437034397388500760893030220810721866110304091362871806607166506820487385358511227446845316725176649251047657190712450048225814451099727551434418516734750400510407423663060762888767887220286960702997484113909160912188540592819365391932086152832847111858228762847045193886211974673445301702965172099463939245815246470449159898548937619899272251434767558906955668979841045469317478303760405941321098147824151062877219153735451428411642267610048560423993287111542611918386694534251626661077850014379183517228291676573533694794075737938658713893360277547685232622570936215411487190169754456764605503271466341064088421519869243810111309181109189662089933563996861359726673769804294448458644925715029979338340845805933178924387935908473361767714717141573785359915149539492904259824828474169835618403639634449191624326522241750056668598063597231551648780938314636056235761411205141939042840632911481936742681557789760971387325027847800682100871542871931535892730662950674956460781573170771383616672035683135102074298617136692895629530803868281524599872897357077117947509510499515322614560488049726609668924351886526087897013596542263129203999772775720956061585081678807940639786739354962850539508435998512750117885345017492806931491244654374745139752975520092146547741053036988318503537916242291957321211361221879694498019344034894750015387158434532064572049450456111146465896976472157302709807756994298375015428206103497361105459973871624528699088565246229086339483885912730225805025702650662245167856247370402872883429717412985771284812201599188491464933918419414741158746918153426114242157777649730333603360569295256255786213836428030561328344171976845107483335678435871057899280244572503080153633857530133383607846433655774040071805581941027888820998895398026335330112119157974609551752085827737194400349849233849988665558033750455027657905916522209783542135758795061404652729684609576529213359192596118381801557242950786980807440274339728208938611723521176276075495129394656513649943770960279957968945083239557268632017895536993775444915891228431546467599737789957813817431084003189724849366548975991745985947852798668344236672367565409211562278062885917262443507385784353832353790967064419005820611449715537841002519368778590310580189585333322883184917296628987139226197010710571193457072360804681029297875813221296103187710314691231970588853281673730471512363443103636042344411506747816588906306645718749994445387533441564227411700864672283942106444774331717532480690674356481189235642914652135578045728348916842937198025977315083283439715616656041494471477028925360747600540782550962847672075057962076405541944230009619816176630407869661699368231516939600384966586395005094713744417465934620929412602378316285023531144393181588957712124495202475711967766735582138196355804948050402525071744418247770129911293941630133704197842007913770481622334641313609310255856029416492706511162678726124431725709409745200721690594676894119143437437963752924918444141133157529927759861259788727933046970474438210503363028561666434200904192630697506235631909911425516623579512982423051033806246872008612984979478389351862232333335910724830932512294291057758751354052912910378563891353477378391188496457619286148177261731755987250433080775608085512386201884268897831589855397923698244421097172960572098633474159650083784727473867191806617393481680304988666507369108657880562926318367043496857882350158412067434520245373831108940736161031316648164272389201914274522827585746920412070145273405964325904438054381072929533023654017584204933544741335562606899609960317837892451401408683983609163747011686765231315100945689207976749886931158987172927428387152186613946014211422360760348603716042217893937949529537428033148200404573463750570946136909178179896371458070310329289234616822212199273589376241945924014093719535549394839148921415327360059266314375859028242500944982984273533215843154204189850628089892408686492987911179892130158931593811878130313398608924451228640603653350718057282595593236125531155714359764460248851725044623181727404728058608590312687045480623730578716986257174530046979901226138516763316220249779540448432298775090022197587880452231983095996737561225084964094192882989040035207444141423110569189048254817470106056958772133980386072686828818568721122152695766476837918727468556035547329128302433497599272553276226291968830871524545478690549061029566104794492360666887003186803249584849924622091789910847905240173004543347413850592517071000638613787833535885381921117975623057262268202008520115557690867410140597531839291709452998981468051616972368516587343006380059707500771771265820489175859362337098908200547088503558050085320123020044509271090437171956653331635310713938985726565811554664082147277648230957057018817207823913667513610483714439524132478962057729063699244201258048452274876346655682001271535389511145567309190583466002813033307212117553816512530366118950976017518303268676700841440695189818642319190680917797061190923010750752647894783570140481519717587866957391674298805741876316589316443924191543174300979879657886472111057973024153183101223075827214895802221604796379552838403546056281053844862412332755496840954123333197775229858283553484586120271091011770495463576864085064951525375063060690727825559372952000771778029250728080014598840021289658217371731492304596954326970551102675337400579482911797193691249851887130072742550522527713492412611352436780802744539434730757889162128404437339678825621443274130975574801892110999036420707244641711850553540842544929515660204306464709198524475790229737709898866347895332700098801375361323514464287986633495637062980026701558829634375739713915610043432555298094471832235669727330150770473221070163223370408496156963557477717289091741678346981460426187970304200854714225527815421042341863440775639904912378426641540582575021228344274539183790221881749604530225143169273735984066895404880298016250240207133246414703309072202956643528324862192590001028205197240477810659190610554007135421448527323818600130993671672477228678865047702923626115337593901452858981581257224763809349781765392700855717874629803349083613805502655281903573423915527562520234342688389351537153090521117209946838181018284391162329126221189977477041493438021323413574876993930801155631636173184486826230045655860473443983422419012103504812746731424716102870318590635394492907209745302342775512915608036287490189925680903892625949843156840881272531645915503723101204441750118385303575873507353678104679845659442589059611410927372275246036810563784474597726895995448097311421486241362832837485588739440135287131042220513591715158726727878379436534778646236324473085432505593005389816663191207171651567515210663935085794589963618675463434867096818390698402748504513260148064034399114351354909633690367349926327071602012107472762340222296054063125134422998939973158032932372381441909480696737435096889102093733326905472418337098022194801210395592422801383060524751195130284884651362622727977857573292068074592654247800554870817480146996605719341278128236656152541082377242488646597128023618509964332736077893744648547286014168267586215877696813510548320825835953454861482164331742703392619427301875542618739460086330366030867482759541769227982691055607969487324027731253082942757259655327653005478782162728906116107410249442263817778635454828237877530635417196347230437232759303439399070966263672823833027808584872114595848082742910463351261591183422742373871568615033222502773091844437352033041413028535569306488411380095832011341659544561190900423147684873338980846815005594500316898965018044611380636888561089352232106283026589344004503120996317493836033866195367260379520324078488906204437520573350991662564351801337721771815001118209715204542071392825684888643918130483722378453678468634843143494584229825355428750250295863477563389585687387195712870800757610499526090521066773654145592291586828905748145843088924029866295988732462126868753515429738658854448558006496057495126849817640913732134851412008790152941739090171977773123483164620419331256876720633670769242557276649495963750980697925441026569519715343974940788153297535257270200514750076936098039653762310776290375136826146909959637374023123468341822595354058828367210361548292253827513577451393246280047091294072272223146789789568284273832234057878970688520288590926786404148520195769978296986696773147539870293870398111332070457327344758966361215025422952029615441609681222971460427033951907185146546166147210928437009369886629468950854220107342872043531161265003952838428561117164057318454157557368135775832955856031840260142275793770782842983671367658555220392993577583572456159281144717833047060696106864015258349546093592528155801644801629212424223456067360959112829404042524995003412730630651095314778666884617654304559359049399632495892098997408537758420588987078273949417875385942732295325956891761188632678677755260606342297497697725817768367798288904086292962004117175428113564969490556763669982505449131876132726554526346090176554355179712722466040841995941885814088219542218951088258020046500096768664657331043516100902471808858032632223075720592610001344950438495110343498414433384210172509043013994007165800314494726863211265394275795219864908673542061658658549857772807513660953687282682042853023960049897400961725968397082591068209810687012043227514100897711280267379336387135946429603410403009299695327469618812661495047799897667023180118141555338140292209992667428780698849984581850416524249343215542499564960840959780565414704615899163582622500453289662889808507562499471481902407459316492794985150235164808985147169860429885593074876669865475818870968916178133613121894476264606254611617936365415053242025828325973730929882163583547750120233011703810749963768827703459843291440416058662222770030557949276677171840569024696393016595516091906810048809806487032704709169134010264937663076007087418671443966036480401094302134648173342578394852812925837446173298522796240286841783015154637683019205875067006094146870439351565833833952269182843827474165889848208060839892807086240658610439103158697482932289334606904613317990963045763640193032558557975426016888626900207149352448927225486152019407526621817823255613678369845211983025093391351340744864334737555646214739445583446739951052038743057910825109432063870531285333338613043906431333307617186718715651163693312912838035526465231689018436033138579503359953431433832102368394997801472144504335990611315147726169749766567702069598784647653895416475442199916269267516200700253199525905955470584821276684740234916481184435648072896599492611834077299506489914830904281133909278680511446852707415920592746167203926560941483955755890285275574466703245215931941906960900119646802655587612743936088794240605293674191402241686867703022126427249090667856292135076033686287947506554338407082764540994655478070846410158732875975000676379538803772107969717955934969362019080331411242263952755285517083780629960616992544050847155087858601178715477859938541771906160261490382695622660921949795587085698760522412357836670154096563769863888910253715073828293194176289771837415863359476813888525703435981372293058002210143360533973344668691059684774870032838455066674038734488055838558204387333271218621420304771043538524982726008639638678886056369987692422709121981850223257628661534619441267620341156881843145027340832273374271870414242016024918931687357683254452554425772177712227697067554345414765187590943056172959724847368371613370114225288520749106857903042644614534641300432586395107863913006264164800301886956137650757163317624394817143867105416667236163893336727589241179554874101825609987755608344441393718477337808257908088400901920194933045464991553903770772824889429408402689349413508743812111881380087696612656533353063104023000415147086208989326888986372365921371994663124448360760966058944284056853974848882434838865387821245304597433783879076026912877395351257712193326047173032640946055811808690980580842522321001038517841168228086003725426926013354238609445234739477056679842855678233269956159446530634796666319811961793654678319974765746704145044158208646169757259001296894449562294603720360089494176442485527606388070623164589538011998533967258423336783781688638373449804740319365788194429956246947486971197506632419442556729890432684667182265006197367368596330253093189039054795548464714228724592353221608995872713516510099987688317508855333614734045220755328602139055791923959756302446974532510383780921344075512577846977103530517509197290522591694359360724248087881955916675002573874893248319776441652441072688227480545548410864310475632689994214070623226978322821782537820907219104194136721719412084345258554931287115226568206749110547488884432760967521885446926327484769179955321278673112595967399364994865215987682679680220657114623573046933616001723874567409977653186440201503900218040006750945169785768269255572697587646571942330012645153583464451171707775431294614564602419121251149968683649625539709141678766528209699615239576417603144403188428706804677546294418260289078280598640652074921305044209122115439147107312915513387821949636758993934408166968424832748022924609085808084396827297674073371115607363592028434587866501524195931183111840460921063881204083488211099685120864410974732167290622575160833475987809038015825663064915832949977086469854217210636262028183538686462306785621709984042814420504938272389056435954705302376784417743485544356850647360138686470874241497116751040189406484279545000560609050858500010471304838432632076362511020120755727412497367779991159404828710087899311947437937956733838475073743891940295613867945282185721196171468475987162061521407510809846219248206123282625498026728614347040156840517631844330705413003961490855834455491450572715783960871966109906397529484006813040515708088899276097034582511530850733550768508123168831330499653722821584256041278408488286028107377979837645641157751378892496332661468362457266714764824820516701130654419500051891999187070355159428262352783666405366129269693248549895656613260305768371979086528022151893603559674044625248534558771831625458892401380980289090685146027871282097322956086211776820303909650716639331938499810971878844817306666042016265422954464211219856809918679875750255611922518337774942223337900021334218944155766520545027729815421126581934364137201939172924100663334991129474353562981871652860918978291046775257026519385714263293947204010335680010800690884216351045687537940258614832144395301608174678926102541852444503323921036042528913718145889024002530506514661756565690814047329571360258552998135782892944932191431500251033813863464323481694450484212416135503015724539074365543545679150396094006035551800353141574547459438573482413807700555207958766235062593841628104436985008189154462468119223767244671036735887546581453144533343720350315871782279378773140331944497639626993461801546484421031816855231213310826864472336356933494822269252824421743599206789519445617684002622277802122421265919039485338940308932913310289347821290080589729595779651478582110361278849316183365339783612306712834598008516014842391518491085503139245780417987392758389320568969772939572926076943447035691642138184862993612427785671790212739819170392672535260749572596107918425369099761300218142138801195252642949494398129221437294033703830830180824297305484034631952308259658094580097173174106349518693011316400384555408810048091391192610080930254883978278845242164240273844307639129390034098398832618303500040918450397582309215406700048141949000916797387460634044720591809071432032396185361662325979559421791200118054090450053831842366636237430094971261581514464778552790292796462339705976034089698472582697362109562757279999914941794789686861095256948622980387492929059918986722333515706409981879852815702481712041245133513016770608535977598055122303873275754283929229743575783081190584303934864568791474439680250652242356565441934645311615071928210152205723605247630030175384696430243156030206880036688989261333942533424280563381207508615021194209567776419677073238529364276684668378990619581144445252114035368156057874520157384539285427316822701108902591335046329082555533643597968365662242026283479935834865278975770091988542543833729437694735646534186967733475962681499884236569825540939255987474707081737132298447306518883928106730092177587176371289839198718239014499809060105542115831972906706031388164530103812469990597457926388432294550983446442177183458864644996103883141951107629053057854373720149664331561522480544297624401923809762441717492120972308081323089345368816462124841220167288446029867188820722304490949090853064127416019237560362516678109065104574114475264783479063997721353888457180922698446123010012687395935635442915826750879753421931933376810878764848551793890161808617002254139740724172192059664313871652839095609366184618150721036669822270409377205731557141824714425223419333490852753730479873064513987259672257425316002544435923909599175178612693904972526229035136235473729793420184445856297672005189146536617101620730053864245687867401159363683686195372783847061018738471829410248066410090865324176817530430728978627571708721114571435250258742885770151408987588617801924264041185645595947731480593309596059707478779736866227963333952622795751236930810428468385985863439034451092115486175702454206006666734512983052024346180684912816447124905532547016338999224479334758401669538768295560195498205279308630771893698263646204237233478325026445069767597076110708397918178086122657258094230789619893623484184239075246301567477042961276955163328304361424324062080398806371069569855157619980967861627916637061289443376197422434345479164365480945212863943243786953184811697711547866644093793081591302393090523861974790292052420483027284108190481672515416363979364002706514866082876568354961055591976768710642288121750858865690346417594637773667578017387437067831798905691777788246306451070764959777529884587759644221242958643513729025804474730266564651920722745523464988636712788324019382697245515687835127357398414736507459688979210284803946532974592647786223202668879298184103976555436361739988999568240320622226646138858301779398461004605854993840267987568110986388387355279485274737743394288549199132736942042517645176062757837281410012556056616198064283172543812503087338910606197210460819906265217882350803015416953643986850562072511466410564588580414564795302999058458846708150819845431196939983140016148273115613943027607750041148415010003938129102874073490215628380707184720243274205160544200522774384879952191629542749804897983217237470932837648368051472564169887751224787896478853187949964972081481316589334837342445565114643142352497191875501098172677432987919172589696592307583410197698560934459525532088507177285626651103814873169558784263630626928180579567871602520051716727021465812495594523555047349897043128657729490796035514362716264100937401719403356775394080271098055648879915060185612783193741290194438135666403033494024511491953048856371774923048857392031826228821284178747422431519932455177781431236801303761520444896933772871029635227779842425708764863390930500555852900080517727398929514178175685438711310577982195550184431021425587678004971179432527714784287206513333366540798923286950443761485420430135062995203231507458671046253725630035503933849844387637038366550366858673493757934571404378633064277263258253968781517637236426124679922059186763513672382698717880429317284992842275990273996501813128010958820712315261362022075221567150088303132371423988918730380254660075020640708813925930130666084587798213197161907675183738142884274526428598203496250948533146197843202494197457565661967498372755919793389839662308015823710532482957393882295196821952697650259402685563929886908138609466883380571934271155171139735254171706911381476758476692542702311018445203693611463370696259045167325761476040309300963323684005967703013295858394390878038478474221008603494469406089163016881177211577096858971564829461397950224333605853489750621878959042553251764673376823754229417595547568778307222979660649836151387177967077026619699469647278577411978915705640748418053520691165822735906353187856687887833278656372653161040275734061495474573935535142536226967632286614622616183844780556378704790935798079199041765416147571922400250420693462808685601378507634459501254561957925378156452388417703627972467998776125401754610326671231449276386546441769057576976666420231270189265984198788564836407499873773113864359973604919070727641580391021037155539068579494067220087401815728037700851124154841250620141462266280500516474470557420240319984229044610699858269010110394006587184902988037095478536154738293662903004634298057403999424712008581968418368787156512223458633610885571454590603499767699208824922710138225449552140054107827774614775935418061348760596994901535916315396735450983555895804657222197607580853693347259292932555577401217387255982438699922043393374393724516332400510018228478977744030669023793288139442444007064802504966638817983151453653601650916338020221081045408913224075447712475448739404635629883058703673727549376430553849597538581714393630793479770206475298005316819312426760301750749789943054465252006458389491096696062949515532854349099586455492822941014303311642618164757696457180039076742863437855988312216656420080321397338690296306086607554097850973020177136079263968388008048565580538738103490794160162508572168736758136606968213194575040857848782391877652069765006350383211471234002093495435984789489354710219589835101359685926877264414575388165168201188734102704377152521803475573009625108724366468114996652321850324895643492208442730729600164256792096508935997582301769651390591684154395663592513628869381472920285025244319043897331832003919592299642842397701982594978655880720004897517535251901656231694333181196970403852429559537511758612018116070898761558183979276463596168456087300453885479573266158318931747679020428411387206825272221159666580294360151888514338080959067044203771059350083287523039735137840390267730341815446990082726431573049408357743602724332226474502187008032265286828918617243455468245257141970184411520861778335140923297591436134094913188172142564053949692591052343882382410631107981565384481928329805341087892952510850163983304964864027872889966124441747545334167042874134626451951521194942473568962816786209658289566666884771043670673408269403309581296755395957474364434168518479953263206536664990692494498561344349066867828068640491490919385012890288814016167816737631598801033683256009199688483244099044450400500821162655795010574340179249667350613657622278768158492269729771616416400788855555234462700020503320794021460599558785872824752500321340542636850853404912934636173538717666835708974136908166408424318822182510567253460425557806130738969167752394299870822420847308269794007630875163115602807261284067334364968996088067210080853646633047417657906199270673522297839267864304911624022144785670526778038041606883839384978458617235195317503302468397071374748117544466949944042390284813858434588093951411965354426047449708828838563184185120525879517274846328373377821812297982029903039702804928908412637038344483657634266800981681189718128769247195075437670991802356867027726838713218381793714347965957056878192757155977012558114675514046252168515100750547620133861485653818385531792657024344450559838906775174954249912610798661532132979076649252112642829068905299944673558502703293202041605329549129099693193917549775054916311594167569914778738734361544595259809523735348122709956890643532295747228837421589978709718317341025861793222431649385385025981650320018055642676152161947304485793351334510978673253706039544465544664039794252504909918916042095696004080219576477902537628174791872230370499504139124185289441048536070530984398275007727201761278662966470455097673020961476786813369401447020674768535313769205110659056391331150404438615115932677877816660042807842811494749634456944213649418564394760442566892712674739036463048035226104032388827866638788633984597254249683338144382835813318872133075399773995458252340393292971131029840898464630859293191443822228376809829129673411406395290254559944238593550106619035436382303416779768965555186004517764106557629469081529628843019393338575758931777872210676692757057519832489779300935400905953563656505012033565421308879041506433640642880586637780772324791306606242714406801344799780934056365719883422869045948030109350394772682298858096162133763880230632590122115717179650076212948131891226134781194216020062154399888270949519272789172801695358617837415053585750239172003538442127814232944995326680949224247917992565276477135722977310527719948447227834828991937805861985817821888354424354643373505523487205258789169472531599755457735005832558970116253863269890311230060392596687300509194123207415964502297545687629971853509267882974784872571607640405476731187153870684293641962622333731776867663340038553877263811040815996037641771373358032346870766005525437057080554950597743435961704308190907220823862698590142242267074131217262447332685740473697149674182043111654227993506967603524212250357167976174887664460406285059638653936570557425329457015558947840206348225858246513751643489135767209177450920219710786688924157093483346855144925183613230547799321506067836423036719381346593255991286904570959488295799220449325286618289191763756040257554443668400344008083764689347920256249038044186719935113460139206100283548057611384062103617022274378993244239156760618927438244019344421992480055964395427879029738946130777320821670477618683441948906473188096144812773160894931845961718807252544023607317426224006845813230991454938737044226083711685557665024438981058450406004389374039707985960247940242714523003154707366869986418073274012584257152229153788423471045005426619706364484946868711378036814648154203889845997945221892116193926653937407267282710415202332686307174249492943053580756484429274701136017679713427354636939012063618281201380216423511183644791643475229627091911528248857022019432217007788243645001900810696310525727274681495373676609281137502285915247919897205462956226164639747350562982907250527926031638651047253249297700664099116481476751899504375005527395488818535015044001525218557951132416900388803320532209817474658848594634696884282642261447031392560593912443576298821290667350414818245327269229017664404065397447448526350379978653979552395856897498972232177648234714776172782399286628923573393793502670288202781452709515179521882259964528470616470217555888391054571413289244497747094756114144141661039937913387818490648905294718766019415499558622604709825347189477938590019925310980507861301160680568305111597520615632011818952179850109354153277138567334442167876544158091365744259248085355246093242855789854792666067542665265980326477394149693585131782118095762028306890760141584362778494862592024767552586701709454225350407193275730767513724297477295735051547467070438945011569023744796173805752207485635819906567818991247139930014456362366667264502794235741526510707389162439719303475305512071598523375707236717873149852889626059816786202160352897999274973425250056788786898820730387287177157147850006235535412950027574173099837906861162916622265210537666653342244302998080713517770239035720741010194410169119375721095483522799350941196053385508673012647218765098999808743313473672808663760137450334935252943786774173872879145699268565896031405453766109038329974625400822748983999770218021596018625147181689299815651273346515632348808836527993818104358847621712123546926153459536978149522958248183406019649469381031770283171562528558545819762606118881579772325985328987790168685187524008611442170179163002501830096610513951045865575111657652753835499662844395269942046162467426716111227980703129249647074581347344965766436656084716223525545040682522789460105771388179951889340888025218389387105773467510219522730974443946223781431353166336479143761572361046790551459887008434460061701286685543683273070569478711444391691548273634437133004140011435506600637286238688942812969517956474653261708692578928737422180013328101449941572602305512582175573240634924039214892226296893374789066893093775502691499622182131643711129498149428981588612258539323783726741708752889028295853206302933984639526086300895013924455586027064338334581434327904403819634973147650171501706623660548662769748224016749242061178718737910594772475705872233349226398600785651081016472586260379161997983287857829223834980609703631775651888158699332127668624370635997219084647334674187945063559678036042697364519179502139834044778436504742308241093946923218019976067927084791156767918349444455721534470903278743148699988668786319332326881641096293194722176725368860736038243977519142289525482829965678365812417756348867665189631380175741914163351257064705131851816430985392166519674315848552342773826780216856137677886746144323312043750104816595053623580299353704383751368770352847359352820106766494907831621905718582852410534834324423069723810888164917582197406987325719036046434130842531224116367150305449586612181435329054085908939315176484996935140557266469776976646093929677528425300432919160233119827991871804398458645356278414720738072545725640408501309482202153104470585155689082641982348803442058107900213695893333117096784729653640023490999231585284213874183732225783475099621592368040870838698492611539320693290440962177494672511286819834513475696112624478464317257397495947463062509462285255166839078450337720074349651819346930808680485091066292411040297797721019781251438947269098547807285786786959199530134507758023042710741517161484973940064495284368851036559120211668101348375949668988486651531383218869150479625835480149783037787501691915802662754464184053329325349370733002389200518482281127666957198315414372296138740988133556380825208728272428255177879186919023635567050300270632438678767555386148998771798934915275201294238027012700904247235797415590221883295953129225062363542235195571664598656813340542241842986384165528128771494437597437640508071593883097960413834399838982570120781293421573165375398294524769150798046259647016218836539904107931630011750976182221425696540892180607428459244684027812992584790715406154931468493656579263456159919879813179298700699990159762684164532726247609611469608146091294981335650940410851695900495297592925315658090528625582740926985095378394800863029428988456427967434160343079319612413832363026124895075948005616347186598887501017088648734737587666081516544819938579955019291749981671152104053090088130452640558769312316147698153954024350001346368478891897717766390385322832934413059214653327722401852617566688906102512343404577051991587267969225253833715269097491024226927456900262441790562381229881599464334420068595881707250417063771207434507400515524513407832154586564199616956931817911390449183410805696474530691748999788509315960967332289241555050662923049174332632137111091375123230042888540770068018389162390218249375111900201342926741701630172957982766375688230575672730379813607172781695426395266398184032259516489375057867406706954854501069341343968242317747888287712825332411378636888695995241103929657621434539940779721717652538949370352916356353920094408698897850030808226848116938038949944181201381221447390269232208539781891758501118257270847528713752713390429422805690043786678364829191090310770122898462660491042788178364820866837554119614898034639202242002570590693754611795291570098321871657174224794989697171257856270084039772267508118104344487845317750087996094484770628190394121883583146457138870797451495412604317595942029571841137150248387692405893903467654586468980219457879867269504627031872088068840987972326564138888651728180843978323201392296129622316454995260813991481869582203539596933163371564659536599336092081227471983119001526448122132555277385639895110619928442616314297378706276161641189297158989889763520097666589889387186373767026498596542799343338199528155706021354039890538020987786738033083043002763602392003844516714694830780473964655177316968737199261152301256644748289034682217151482006701041176390130012897642167860461421974266052115958433954655898425123705429861313345941060659782036120824167600372164863944032134449799295449258900981268182513455075560107745644820198375901673775142569222749538830466944246028932399310109757318568628771791755974254447788968206781613783362931774746345347790060523301214237246655184011619522359372715487259058139983398184050204982464211705525648617985866251650922405068387880123711572355642553602219402499350140296791758526401915088904852391640106741465634503491360956235492174699882932359194159255535334171648008103040871614397039327119610569209323892326935129130200631712867779900008177598990992130583836510526929456935748887808147088419314442274408258533111284844643481721142007531247137096283232276960534425760000834494965709147602782494571865268198632261904355131505373696564294684151254037391351136155119621438729569935259246549758022737163245767915376295177400620421838637749163611567279867483634695096463575354161700938674834702303014481357657161092809022176811411829007450873901599198803498740899964750752219126089364455092410713443393838687995138586572544084868351645055797128563240095697045473885123518287885030551013317994964469653692926571169398524858101683496219267237022121607300201118914792615742207658703936148206197808289920021909424490317684764268288623917829800063521404039252310517222550013345325481328582948754719348129118744416602464954209159321027182085755586590021248097079604276235176791290602102935358435719273754503547618041529061275196552528720129241197276631959315036897070785542293366449100361790775876732529005234909465146977329989721917235549426387942112926565244373281621301073571430859895296180246164565774219668699426094607783792538362288890464971846874284537752487866459254895694606991906130952039251692626427438558271717235389215038983276110534389598626634281984997459943339321155111675676834534335862675966941554189730391347527297560814562336856662435095570136181900531618292931000611929023015210110049267049970097663138147636528135156320882630744693375353643217007108083629167640312679754717575999060272150391618068666678793878263618626658986539417218757687929708743829554275148931538824306700966084994367146666639499436247369698268027768651013915817693272445844986021380351193604598253712219710392058211970857641630636391244950770558304628525420513440371132961849806460851570665479701020143710922129969746132595788775219144508993747806528215749902495465528424048573823923992771423897815992095915749566734761988353150674417194364524423644600553405172759245207463162019171993410748373425353865384410713964706483379872449112752087650926611808707217824029699398455324477037172953149065523398080840881360654186446028431805218921476779172530440480455963509396794578918611102939076037095555762776509006090874384846778754513124566774628154674461735043030496240588668792021120227519671479588481689078948473491774924034361393263618166293595982347203211977112148043828048147394051248734032351912853240461120002651708893050107849225809221502896616451113813323122270160842673261173559822868468063426953671685105479451880852382690168377328344381891531629936557401653525019492690705192512129670120373496351166461999973683442757735764060726711948373532624429035149639600668237634755079674706664271554926840852305538707595773239969051203719340669232853416641185436322003762196454219298878901325528640331352840099191809501771863584825233821220926540435506554769885910982789588745895993664705377715151633664665585289091215175755673407065042657015221685652971552324702956054493269892347138614253822231204869195422832434592227597077893550290054333405333397292470052504914134287777755977840591417002269891930053918589966608020885238756841243259966341229734994792561510357916727815389818491363171022263597165894107024841449887939787113807109111578459399820930704161889374368200540148229362112475432412436685832505065793879286761642698819269525365771541231833333490659196682685348759020268956282416563897366706219014553395719423170602174570402816282693641630645965007360856276836099899189676827640324468553800403852516444493619601921489326862889467841216078659259168781975568834721888938621265439374042902715835116269986902063052517445623661833167440785089778145526276577615773453827890066271694380586188127687458087739738774497878302756782596213668151577591263573806383630634360977097526073921996377341881109359086696893345609566690349790549194045068975318941563000531339550886827558188855191386666059630405667300403507742207750913636088167870570395600165504498421843536051584377514183151578415098753010576546230869621937056565865065584060670249632030074223560381872444485394470462725490499980959224296661758356506818625258024168426192784341514538161199065903476938119559965096776212645176256312818756736185463060058999961737574058583663673373762269020012659284119013518032627627628234117361119403409790956210059719363945052154542091825425344010986841077571782916303179848924667203959558148190091909049030401024107955518261318208388323820921475446213197268692349366775585119846488897813629153018850548179464866140384799150010733018229118766400208724945434469018898448047868486082547789584816048546369008173904991220241839622095113300748607157272194766488994181305283924598257709173750045925916671411174005068848232604589913592506835257034677880836060080537953495750353903796072900973087066300470824541892709690837180898409970944740914552288449195284037206714404815404090742014661778522129231697357399751702528396084265850130261566554450033245807342403970554719033728733611598727063555491291705474433382209962891566909915273098334481480021364938204375799940185878318693832919638948070352226512614359251731371916066477890697786017115008351604001006493673309916884315494234431262319282212468214576861314897620179090315050724041331231087661249895237799785678837966604297839050856987143913167430735867112942081078753110319486006839289342439416288698541402488878013360798209130563223099997856900379226047980340514329745945403836082075613861802089075160645931933261157992066124392881161690872060087257856625135285798875639238228763852457247320669430590799768256016652642736254450453291180008381102586766961555431308112954638996500704380402580173340671429078707329201113114271244672518850947563446843284601691813698419608730405128812988289186764771052870211258910540978830109430652473353468671660058444674050205140969598129684871461163880484806349654453291032075135358399931937425745394594460989943290320697515049158286272560102321479969898697182647732813312401591320035935795042250236823867707894792897815274848140270684148932339288999953513369796708232367924802951781929011798294055959722473839001833507348150512526080894601216479997973780171262793779397105762343329774559835935146111384391858573201269134345368477865216039266144386751439574221309842527933456922605940178554290947300310359946010281503209543535579365941428895724690973454399545503682597657924576404977265137847847890637617576547102076002316445970664975222943513700308338293733076024959797789778981651219047603358904063089401213195209998202914217344135882963452932183548677488891105295392123931921839038839743948701884397102752214463051340757308650103817073056040666239838590650026079745842445616327991877130428470723653769011794334993681581901045760337398805261234106423311881358070054874948792639886307631994474544642124448706582990579958690092117413507638642223513971772934072075927094006691226240947796101478422080213595378084708840359622231663589861900257230809992004774610634052805814390280959184728325132386797668133626783119360323041702061276293851974804461443014136645464476160188887592928778538894694145542247681201612776763072702171926941947791839200145447548759321868885628962447880495648843276276621285857661730148938355688859192046323891086098652849990054526532637532191281233705658979454977729590878498010979134193034113172263643314892018667598773038026687476933282926216078731056049066957862533464840983676532670132145498203589392213210486043416375819116355678106341673676034314425861474498495008847949638108500320285255894038056230700944385088585632348679974385520124428635317936528323784165232577166179238915771051079236023256703414549168679418874936554778691791484796254192938734534170797351672927495701370388159363687407906365353885961378507837818032766196934612187439981574448161730177064368020726627808819088983151327928596923745674452235730256520678745657918801216514979987178470386287427908587038510292478981454346607967318827021592347911728617280483515948491514613236647724962971819465059516789020686647165411920872162548314538640546958415818922832544881644191657101818361105423306964273446823511911497489335330762278217230527961913179994929607727986520205716455834661259293572876431320587013841601432530394095124898120453636098640206250488324818823957610091592620949998110793958884068766254837617864267769948555289127644653138593443422421166702633860042854182258058526707460192422819409333169300477253878396178880663638500590905711007750715774188299174169114907535853339119922489313958831790318603704470901740273714313219770672474364869468042943958393372589152603827133180826415537780070361498603687583147387060222709494126380986826426375584504760952520020168491966818790634706157714825710134159925447807002643745944065198096295134754801826967618440954863070612922725626605203914606763044193375837983819884416658066516005269703528048434364482313357655525641304174476616579080859471069228519228950196982105400351305019422936672573815794756352504042622027103059630966917591487145042324716683086338566120243339787708058530082006878523733256322706124110004536835464069455465879121663414849123076744078319685805746454660921789217490983007685611587204468165473387800959725121700726155157457658644640150452130084672546072183333095083035646408293213339089223123707195202251738914064528828608802826210476302750249315847735491018151711216416339836370301131588927620371861926802317518285824537766261513602504332320410633389282307583967113927323118681288596600575802479581178600486368327880204134669137350776041283341933790690079573191526598889664457361675392988074563105774011099671816520797076155541729053810057046116245908781601848416559340376386034019387342561157559038874198745313021360355113337330339941249174979525499212789089693096639539012607370736172477357123359311851811019837936775973093379116474881710351647140617919567219787743974611551629702341785370798730539604400047788916690341858368753420952278189920003265608647948775187420666608348729979124874800419357416550123247564514816612835415264795882990166631895892435477146108810667044539488849436308496033365663131261909796606553194703285700792066377919753000225829580827347505175571186892612950118338788127120236208440285928393051319364077699720976322654855628334485160553668275671227602303140482596302025802636208382664446429181518821653803344983770684928716426361830482294106315207879028893784831279080790934258653781491854990863296646353580165451678893627058524502195024132013926931375630439308849810775419190988964718207680694508832210525466805214645715873721890324496250324091960714612206244981856170497079589928337563082709802428679634798587678271753342571841745593027302033913499658670550620689281776485014463762756112044725328833216144050075689001854059965881464049456948841019351888359170167164897966732928859114941161361371772609923333815057285446004028390545632096424838025655227719351925551861905527985367293957939734387937959245478416648262437555534368828699439904000739507601673449400132528731727379891078458929813287256886402462491457918095852730045554549018622854930958571503833910646782978011149015993185029782964895612376743092775243769731420724879042188684325710530420557038299646256218280498908207496254220092759551172832394367075655809639711316688315453050325798290982769965073673172253109894323203718752697370631547173994332648007100903633846973871917012125190187464762952838256951412808873664514662763990483414649944467147519397270186313722021507610447338432981401001431182730100278420360236330961840285730829004932306600751223066462463075853848160104187237663787778305466606331697154168552925215131069453737231212636895355465694803786767200033924751179086153825858807958335446480286751766723523247072404544952958384709557548250904618695284707448217136656987302655196148926553333589923152215845628909313346968264501899819384234997527341235882606460034103732384211153594581593932771605800267911654805691352455470374933066504794550849629749745330693547249985394271395726593934925066798123279022724357258048518751993236186414919303714983064465944680962501724905367562252306674220041079327364144442684118499661764359349258849572482945312639368244063991188027424081181864755610715156605201438304385763923259724266879960385703712761956194945694893954938920700487074446410435721228224051652567349349384081640149154043304997783156836441814984872899818100285036912830248882268284335568650871514697784247864050895323834332732606036819593185643296061676742731860156367846576603468681892911378370355782017480294474215409466391193201326661349278210024540556954991092445740082876803524050613567740379066959132016830497580107404349403358119442927375129807245347959319353821378310421608253665400962841043290226335043880187910175326590113096841790202869257850399552592021476269068923699712590313503800395069390452157093023458198147944820455848149558575958030483517122143825903702808159179324157013107545462062160988111803566252469886886767313368750501761930304060906894329626344840252936351576307386932619427325791553303824091550912947265501695945087861339752062885903009755905460491727466618669268751892962098151299934763735238503504595805941387230541905889173309737416594341178199034141667560622393847343910124066514636183758687792625106845865565842024222046043159377464219902772792292698443767670875860397345178601072830835763663027166707214645015843677396965874024315022066445441314161104314088373835773745770502693041595823140663720884549754441694456916734874196781605174748499988492295695910441585374620356855373281336184694071263053495683244313671441585407393410660035976997549895180067230904953883541078420594740241707722275405074164126239583189810824864495914752425770147809667553538435582009889943406199867390497322040286559369684217173612259785258891420575572551807372669798342394872308896589302411645774337471432021108119523886806781412237612072727922278921051350255002815966712558983772204021802399516331554142155740484320351095241050577131691377939821067731888167842402023564525555188024932196120029212143146339435059902208322016413327910758853161182183737050904460599740556350779054755605241613258197642861324939602971593155192974887861132780340820842695895716115962090733301501729993911943132558143407262450134044568935774309053505672682056835816005210683591095564433645843557334726150464796509651843508010096803628794739658749175117336176301147699395787149046553316448434230454469738310098520118438850992194833790052578415657809159653463913301912802530180539524529471693677306018897579320333829312889547488066242345252303271216470797971996949874524181574156554412892655177519511430787861166210797954013524012283821917020673319618233031931648257362322359993024716575507337458589502427815252246872379807837762278780870436803553816796752223977820855126903240604844484566730136641119869764917743329280159181400931131262780087141704824054481797667748910191580404160415965220653302819682355228269688459489942820802547448810512415617835964807875445997036687865516093984414675149378648620141168123107183151331010344469875456280165709740107379778345766715891150900368320990863320037086016691412272442674739233507129590975212376137369894753534372529341218833268483027599489556031201903064707863505811810623728729411469095884549531650390867948600753984761797981399167724356778944737875200252641254932120037014355528922807338601351516524504087746436003390979978754214148669923852466380778673660530756594019502863046152288113021723377567924688469079284302779718205415495975578074186132366428219574319744721597478489786278789596818624852438754828517357996154049877218928339049964888045508041370671223604765452918884703179431521504096315037185433271451139189571559703661337305976082520752338154580600856036933922940269831174348524508703745976666694146583074722184264171485126567682811395143868670932827851744710687980222332402413459595768673977650086583026765930248272183423787185447169804549708983593242472784496902181613298192497991782187230644031137344363409436329419437340327899769674077404053136173649928304341624787456938925461561474011205658182222727761480937955856466359644804547178401127998873833254926678122082797315679069802482975672123930424214447205700646200112244038655136693754484599683851710815191309872579668293072839875083647144035601074704558821352058546777569647239840523237843794972414055346990934120247486122433904380903648207741625853788703752989415929477136911099277084047933040507012219384467562177317359275594551151219304671555344350909094338543611336718565172314957813357676644905793576810162246705015372531820773256283633696787010060528272118249745091129692552381220107512426281707047894436146350885996257417434638902147201666579579835664924203397513532374117358111729666550242942286966165384891403426658119066640054040457081466671039685261192872529135499539922119453827546432051817792025153817936469095859735009042431087245588319909344199587929803952279423482293552744954813525554415583782360863112611886857779770574223426507598210850423350516222110193406013789975733018007980450179178267017820507298636692160621251012863252461372074360092413854295679797524048798905256217941066901918626775323595375636485838843583054765678335853140920737603944401019560956625908485892638751596718339722929367794651429021811880369230296905555483387928384098266150314088572226625276765067168804054164057784953423634194190792791875509628715382732800847821079394440537165317672565261094414794087431282216054999114806075300023098076587023356243826004938759358979083880337053200727530740117308176760264780579296246721474443877134208347371694895766908216487196518281569993155960379505282732478843308306650261121097765009773916013493090432042856386132512675771907675120495181347535638057498153678930445362088725483779454865539553478545472880830046437312294601694473252182281630955381923627882755543431733778279376189241814896075243749292377154714917036495477176347340056721993660728721493419246587885315984987918597602340450875955474394856746069040216614908142053582735120730154057836453619739328062042122045406664089261502762702261781189554013565875961354772220074207753052241213961280525791106848445434384985194868263421679612824025133888554273774277963286398916892643985389800763153701347541361695362050830622146507166310133595439071143288537224535513917804503446966739790247500770604843347108957698138610291999766233570444035196686952478253533634370063956636099869475053549242992808649521822414899714579197287341584501035062398320660224901091636470423836690311980596477945514712793440730801861340574955674132790054139492428517164687557671185789822291036660898245909333691630347092329009356346247730744789727082441864297604329751931488220466255105596484630033730193949311765824042926479778831425397159842135092045516676527791095744009820447270392195297985835946604354841327670656543579062907799265668399543216781479453232612809293613755263287805958451862462066476866673670821486153806612973911507665400689737079135655570995294010873911581039563893366309426956775659617907493645087321974518122430652310467205052075338959447853858370320538058812451278638387409119378175641554810111101388460432673425177597039256480077127814856322662165834399611659098125909688580376457895182804821307155998522301477726411369731311977014578145970095995559500283660592474641115656068784001301429434243756962282992130069805917986013746389520108436973672348985313913474120161335275913558271933060922002733337765110096878382020257008055477236165258446852049771940194764709845591990456078793634522554192099117330386656679407009878998738296955552523247510248766492710805426222633482286720074662638094071625991200067876366456422723068631946130542477938337538084725897698006039321706418247654551772770635838903344543012771546609861046227967053627172563672787315451034899781962505727936357308032718061340060811633121682190115519857208079164172308703757187996640703379567140414745202710889675792203815427859521764715056008756937161444854410772955506084155286814268511300309342297949268362615204093457415186269478529330465315447786246547555778823362020481401121049377656157102877078533901631670222170414913233518391529942369686678074442838591144567951850245190210893449561056536221737126574880063419784896381784549179040071543491971136786687618761498461327525976945166123527124618860252320262838068638783375304806020076755230944701960982035899635005444830451607869236730038195072041441621629271735802420372261872113634701100053168979168924136391922236878193094263770927774938382250043412225426792300862895468882381999508048380588653335571612713880522115498927913761951103841113244499356666391178568427547082710384669913609624598877034058895655199764644252548962765915313048140064585022392718245131175588980934606023900786559560780385839097514381320392130133093243330750559500598957948705007967989443211421660227404176822304715235159901378340067767856484071330753145457711221181609030132308604799656235067564601621937850026280725821440209374641587800158111281907277449498209971575594407790306877045863543541629539070106948691082022194842869550479911169044208683129662080242381978025918202818918118524473035004627865940947419098646402248715258937830592034433909785245455657755211510288416524866508382650838115069965520967332176683804037998754472167148425621627648904055068435333216668743724588967563760797572212147998844686701585080420002270377555813119527700026966698396216887774511503304948825303994261394734465469921533705983552315693430521435754736037036817363162109761051635252226394258207196048245484835264330276021489734933018079627223691690548085568526745452657010154780286732790982672217986921578429544625081082432115302124064098983234254851481191112620519871527104349836791651919537342871709470355422687567953337415259098700295368111013449151553568304029221955209114140748299670929335662004285157315640670856317962322726262695028761770624299699357984272545328763987505772737994157591992272638963159117676207799647425450047521995503163725957083129118921214476302767440050083929570472281892352544886568409376631404362284836056154148493873297721488324100854706727506693387618714682807614424652223251595258477248450259739331669313401743468355726843317169498820750042349733025372496953585726878586371138368882015468177216403919384041405678025245099591540451429585324443668195447873594816902900768180274804330093136382967199419909081631362368058941216413718340863202622440618306454945137761013445899796847016311611442806569838515499446513079821963736095563907851399274347262762692681127431931786772897235505578474808676186524447256858478400633684159981567470255432126965078702406935477391495885212388466223185307282961415074695267967312915839412045400340454170070563682505701982826619143481793221179042835671060856930658355866904763257787280312520530310169180423323154135560282302532442544450766850904331774268740593414624505435312630764638481373226292272077989685129126799102588942503047201142105093894735705156718621896555255741481574733637410737499999847316541907443103348205977815562540687398888435410090812758513557992659750926620059341502014272602358900479829199197683431903630150114793019088095730793091172222492907596701612982286494103819827217812041396345838095527286563988556307760330069045506190613602450859357882542788335730605333294032501187502200877230679530301446009257348539181395087478542307454581563715117725331114304644275976960650972151096282288632462336674718898534626825805761392952286716266767449296318356867299577886228653089304604774798464298010931070176834462116275334048831284718650116141228719014645930714543564145650545108627804334009944439945938816527179102443510079808232490591268466723489606186476153555959337386111266114449458343276639565367778722167591626839531263284604239539961998170355303545487881996568749137766372015388458902248027172661715099613648825207993167158957897061750259147811083545617639374313087948689513617533645838993642153176161538507021618323702157689222795387616227927320959884855951859212891369630354696304354355782506374188374153949627961133513503363597260173169557588155654399667666555093581650311731668173401348967723414308748987125647144618718498511980478378254066514857379462671588084270646516175509960668159468618331853576158625786536166470187031586602610708672850129210109080548333761771429389770126198778768921929703653324996794167159709758673628480224387380406566235572208974851676202101586375598918937660056126681416301583642509971041130418102364233579196066947816293792392122564329536170877707318780848699955268716378212944578927584495594293908523468547766249988999242725215707961502523921437198284239152729655036396952796850066829744753568732332048168800478750885961077975123694801546331023229566100634664876556275512101691103361721325474385059947379554764046630009961488357495752075066944411096519287671079577054891674934333781115208107518730559632837859465523042679503555071567553596968558921759115421104690147024225019410658037873391332430195598406044293215132455075386313618150987673189915721446692616675014971410495213264126449424504195163753152463302867281759717697147596069243160342855675936852447652136492484971929017233247570743933616384490608981606293839558677629856299730594410597266750730029782339196857510720723196414158556865338202472279308878687124520986963665222668453879570991717127586391105767294221707595910975464677520372620751865711604106847248688402492248614190968398133351360461916050188153392867949859415856038975396691628417622928460783018170876406645833316955799720988749337897283297588968424591998524013283178743529034919019483750194100701400373444062786022399965064819332535880897330653782200109593852492284263064390520656842338472033827362012219830186384117581829987102301312609649163123625894016886333136928170771921197141928722870779802434456622886319938414136285220753888969161881980766284285373279876908968822151333911577285156784047943305312076699967164046822517053006656348506281641896227418296359885525785235738390312974783676470965400766670840138111485007670690725806063884868011131688051572882065674711203335578083008966434074157345443884326952143940007863554206703319078557359775959470859220325352965504848784555772719178553974780213694250024902706376159939477625790898342306647039713445478096366443508794521555025879163651088875785714856429376800390056149848916036659666682214281589755881160639958035940569789586621941232216697129479339554850659149640026810955775893964326734819386821647620454586173792295805637932668241544069680789507108397801863637178493101233310254388234190555405570487398704836076022868459088674227848877541922538552344351143999780541453564752955950666859895484930921552340678799099260844297115511792015497923583718255565394864373658435298010581614767432345570468381960296123393621550526379714987361922918642630640213607257309351592657893327095893336505860256417397846479092926785496429746065128628986199826314095785601174840675551874172721812913448478404419209733131743908785090830120792460417678881666696345982850432821092136952518291852869933017966940837473412834397038274750090554017944801370985055450381448108872606904457773440279388868541520754452238180595292181975265427336003997162178623055077981047244802342183001959925401362493803894516106853045200104039234037986921053549058376166151133070222169368633674904267747916291890212985871672718353063892171992145110806131216127128706513065161555214480566943909717163795932857651807870980573724065585127155664667572790915891536572869940572507197788641849741442895584410449449764353914818015041306097290353227468435726752962113452536113311288410199678307747594042469965718187585522910773323334664989985029616857972933595435645336881256854938813913860136724312481303451936805408598655403812038699325761998462233478450646198481033314727633085406780839661071290898593341299076390321475070229248827224545629198058030201650976715566228306823779566758709359040970495685018355083473589762261901986208352481169692069099947663230964188378320711466080882086443384367674073661897665159274508222863251765456104082792059239548812508451237474976115047239487196756244441237139760976526939863922909968661371836373439276554542542320243263428616538259068878412523366234155703574584468475009285314869610664138927841513293032894117137985275221778415095118009118062715079439979208075598298046197485543691683918338089661351754304690990234874614731689158657041687662729986679344697328854045229207122018342645565812400236740674485458990902035729105666966670783086165258050363843266028823762708948900223610527531728827267855545766884691603476823691922673875434835974967478806632706707792374544535385949782046002714155993945947018568633985371068885263009501861346270139805237976018116133927078869861831927789904232714496331042705353839505553072953555542860612913221055926458702275238783062824898013228487079441762641356124327238114724075911059318370820022889546676445120845586645371970950331601523206732296584655775454704205555810444043648324954462065713819165851107969545355939647375568629052269271557362084785069279746906079139624171791420754336227605747858258250244225696619367927122005932025241306924140174518087773485437312233635885628017533024053132295679492171140940691389222318381606945808585615721629236512503650745368928188661811093956524350774514775334944097145670687974673168764324463902447790902442031230953128105350498189796993024227203477432378161481702010752618184838814598737209386200836901622273114930977981103447817183929736416450105465495513590922853213857910476910909678355102132558387341354227012595060268121084251434427214760936716687062168907925013198750682591940584396474186959662672162931823770647124411469185575145198566196689772506616895525645937598019378201571842993996891696274389854661113236524400627476299027527163820589117108111136246095384767355663352568347825293293107260030959587734193008945066311575573653032976323863644717559471188009208895223406107217366909588204793255340418349299713633663770210274189425025179602643592295751879477688693480891800784132549334356690110317784530391674640464409266341420552129830732988546045001717327367981158011221739970686853138757325043740447440466769252899572055907256057922258989955507979559434028682633310217546721472634323907287588315600313966368500883354460133921436434066476632769207325210984402656814692554979248988724513333181655345088320332329840548699643621897840364143351533200875853100479375086342137086882141335196472209290888643371646061663097472729985944843462812234777916668335900747927997454788712379522174033338751076555625943689917037011079575279472174886978496874283214968713247055089274081436663795036669765191486068027516345152875049122629314806189768681661996036569664685719089553256311370229361610699447279624233933848149623401123642311333565908025545279486088791908750660037777312610000866776966883273181339469831285404451215954743885724860218741921714386685993176483975517211835890239672951974050082745174390982085638468833036253871584096683495585764757135511386474318671760357201508110962303697954565052697874735929058974361144896374968081504603201223249159261001401217858954314441748964303958060913321220425885338764178206737818254668171044531159214106955279064720973512742250146212733546258856594914812025385300111289752765643661353680972644767673988135421548033418221231616374307515751383459195498772548458075262631387113195644941913736796033069030347960616047924533309829343653551421510631718368615792739587517067549627041292626968449710220292996871362528438739953165249079723410443971086168542841068379653338873754926779673638609743115106312016636771524535444597049024455559610119283596556578070331985522505045483122840979438275556272871136314562848608857730702142709275573509083262313012654122722569581915116048603026297644986171703470140350852543419170737307681171074687973531943715422555592757792923815156638985241287288884903791700414166774232317511551868030394146706971971872841575733755777177227163398357185388510233843995657702077077751614817794098752317273848741062635649423419685101111420862885605134005192738500518181675082245851767717991685270055015191187364005330947299177723313255724437176268863241030222804869613587031752825485135936214299141824330875697470631712122996664033628137079688649684208521512673641362537453476321598948100501378629069227718789172568962967739090605120904531654947320159471234817295434496285460156602958406811651332544848327351747615702576686727104134475106855849153059673172963937125003219658245887724466917912240289478739797421010508772519816018529088979550465194895151525484839754507943872507974645228143953270809548734983230765766765448962505793915360743979869064258762960176737012349612852789496656332626663122974098010016161641039523997486485634257042731410467023156428300970361602266442333183404910165708880979150295116519864281926458702420113650935786186514324177902132463649936459114094077596459784452311627862063624977670755224753952607534070903326191054722107790304438133090559161528527531781685746015419620915930571883165582259322718248744362102679354467909811727427969148530340683654614395536961442824967668648819466708293442395013175757753411967232763752459329578298277857854678791674011576277753540301785775179710787882047225324253645826524666737769833631813784561915024824981682961692705236009440537542591439897089669416433326487429422452580409802076116147956757739055925139623302099002672087310524756679059759582153965003596941142684842547945770459937546811334623216992945173448199850683973366790643505368220292956717514056539109672501299709563339356775117061392672097316714762134234263973939390439512455164502760929786483959345437752831451720168594623539667816858657232801922565319657032543992015519704557965227021880663303163739898757142453659044250849989252057795638591438442930146195725870379747749096078870789302049489571613598902955500873301853904001417531043292635411339836512510731970483011296256530184080260662638666870999401564583530217997539067324841040125917064590917420962520274334548133191809192294412048357766735513039530422664295871925379913096844519647704244057376317306489453954872258924147423436773784731330423729092726286326269478735273253990388908706961954318811661823851710927161950945521616943128346150055494163460633516536231340344790271515504959953646101224774734258154869393845845116251781750557856394350436729466184499060406704020710791225259207825204118762760042761012850289364634606730994784775464552019839430363525533364812567011535779029581570385312575380859292403068504392839524896294672683781526338032905198234729277970544108837462528453005280577118537695257937157812815876105963568571052789665662107388497347710816892512787996262494996239922514464149835675083686443769072138053827905564042339013371569271015107639471723066129158558998084955673113349904005307517458063898659276167633172571681073350596641534505866234327948914479722370105036976183877468769540071796312604049122428364918863715506913545110254253485217327604649322518495878485045199548966294490102309369949660624810624638459418635855820158231477496296520455894286378016179152178572473277239673975287619107263605217052329965036217959816606052968273477407354526589911681320729805724745985305827509274948508939556171072670097732379337409855394793895024848931974511961344780291254995685409522394189546874753265707393166090545602778280206892900275180784076514631955516931253534374461966271542447391363310955187590458485536407757926287723683970343249941668620100643993525534227509255366801684107255935759504346511760621402314282857298851741083342600732217464829099191635742457666880337990393069963804590139044854945191628048082990423994481536169445022347167040224939010760609238209747710234233280121537380078125305336974409860499926400732239969961659048833031170849500367435318808030136472856290369773209948155425171390929571697183568794447223182250361901729870806325679127904729568513121371779766904784776529464767942689894113241971766927217931618658620640320064177748022935456276857370104724860579459717505983270730935783936288661714882615725040242090383440867086642670897264616845824578144984385923177725713044705306990760053579105698867361460357500147368303387667610800406998184330563382933715734387378635511943491640717422307505914730238316370581138659926859028244329301491378858104687429522211476936019123390036682375654895578143906824185972796697957148421103755102614960036712293735697464119992394482258342499804961287350927053439860663755119713803621680163612100303178371929384104157382449170592797497154236609475029063176977216380598853691482217444481438577066738072726573280907165108337601099073203849488912351582038838915736116140023181558057656352894379808605737768140936283796207425176416233970139765075354532056952303801968082688920310636558879420080717611542165586606585608524646088868464459317565321528712041832678310605924729929656200403525142817922283227728095960798127896383860764585154577114265210843189632585642416845864683653874833565428332500973053335487332382664032659516723933387604260117599885346667892528492632260768093038320432790060288068709556537863860681977504249342262165995312714838529311577934141335594039491215486109848887110421453160225605989582474315819883823745802364376341951994890980966806079987913940160536925378884305839317276846759590620677489239682565979650452620783924183871978640986051315127938573070010627367303034177441727229362369062991313593108073659218891096173454877947922301652497537432589306670353858521080509601040552150338256762386186253136284675872487629869004290127774689176235532652786179455083987405121573395010016948731234107210602928603434673871585417575620232148169549951594091244569510478675666643522719919022737924209427888562866098990181887975271678172741363954142337449697057461431988769914178262360936718315181482123602977462582983842717556854208035910796474166801424982793138054245502675518140136867863921635032862203724981556828553247770148024866822228593271325159721618021049632579582672622249859498231071799703121372536168781439207531208855558555570256406099079342356005883829831489004016924552578263012001972852482761233471998145338985996437671177902704654464775346559411470802763562713758188432534261188845298446102108916079542947557300098466497169082035747180273623549754744728045263293173923369964383683022121113652866730093495554263144771142955955504897816761625718999361477393222999891116711018893957629855938814147550611828546787863378822678136328867605037270903055492740597103282662886627756995708399852201780516753868210873632472508001918690314445886892501701554574851869063893323650034515238174059499533212232415393466563880222174474820166375299034242918508951109621592888922343770205425189795298075232739698684823813275313252173540195056067755990198482025951270637353509794032875625005744707852545811203437157307323930472766912020718642076168296426799868981112643990239511672489480636111832597267442449189777907214417072444048138332217824025430612256518435226270801232072916924198035464536651706986858518195870779396573636401813179700273466618413361805731633577664500723493015464812534349848091989187401738536461756187528300928625242724116882748870924042011246405101867371776461898443558968500438744558824774416722310156083277467745645617107970981164412826369530267649601035832548793654393246583088245935016609122039124639533228203256256811681743574694643270315129656831977152822557381045362461525143642823562453127360715191526988886619342870096976851238771170938100768228567000672048951468236609781769977960249192621771280963681955406644143668511415880702721371554688048494553755981219837704230589952797341050455516416254482845256668358720968591815017453400641696693481539300911888585885003619330240147018990073338092933730370139708641495856609803831582216255925206025246393760571204523668640656047407513005522911264874779498292872121969157598474582086536508506872839809168082705892616284705898017935646224225479109187507086063331965650541787310285391212633730457714333133348629163609119053684289160069625425604134439579316968893215218689421610892882314016191745225806940011682887570402763432056456761491898157030444322476506820090136550186899562687305034625346928017240727764493693324271172540729436128975621296935636918722052557502183219745961987149728848572782097152358347120641695175189452920898530513834415894417199701234233847569810942216689798427475559105548614437067574934365006024124976175723032616608624087520600932984007390840634378103575575432289688104352320595809219027029568496303409590340398068301449353958865876963185867017831013524224066378262034108354532315631871624724509378766536459242668961586410294596762879557359512614291455747060380822346205769908465831712305668727782256686403861386495388073262858579011290303355958548138011461417502774984967993827681325972945488715422305561211096977487672304888225549570449538164434595717472158294109468907855375137320111261455366303247487488248662999057756330093134653792617671678368107877411787564486487279581351745997507670379053654223391114561963623444438841027670430424849793414109893056943992458039881861517847139565622894022138291988473512595614910002591395185819582906032701729206706060924479384083052659246849419877282771739294142371785537609117303070024812261480083766153055422021616365428631590184217010274170516841865984248152842082862871476358619860789982365147016580108837740159429524531822116771915190471470432000137606181572282658214340184442714680503072236887164723257029416668558302718649307281144225537367375964210765990465896972637042271128531804004997396212789371678479784421644544580191740659007073884734390284133297197332684649619855677728141390061325652132458728947486021780250094519414702053353954213259314482415549898530145188979992985258889158635587309706717406470963360031718702009948917735782323826754196997004247286725883180241610220003044434580106184897574578545780704342387572102442163085484414625200696547682830885105736518984556527986537486028429852289204790531327052715349414624993984519405096770263146535098715184004536263112334858476841483409755456213484105404717379719051054342595328460279417156344631537514126891932011317356611105535214328300114378149059857222147479980601641746235769973261719728647527171827685226975070303787163237339951581245041675226225692467714861491236730885071747712752653824309536945354852523645337276948152674000112666446549019827377356571252976677932750862416803404289276959817850524035324282692948935892484952418488817619181559032306421322096032978058601331311825499771716020486022034487268470646454862560942323342338926636138566416148939922483861664266718537727424667551297221446854884696646815164108353282601159641909462114786734304282060611206503642235368286632390562362165954141740397613041369075181294305746626869717830136779329479934171506420737942144761591774820231379467405865828241567741074204879180238783702007377890455880385260155656364573948100276691827004938723306312298420873964681331217291594855167676681477881870352700814308313856848698966315420371814335943298550397122340796948551145365033277257289955983052002110611246232120042502159177321497063367236597666067367510715839685067684551274742880810508344416309476313720889831590277360065266223436061904146050951950165423694737011528235490048011474848673919284264500899538000511931495179191958205284785592833039076419965279651909922627611777761060599931517145443078403240126671092305333705125067653912844339056332131105649766711620719459371913163185655315253224081284396322267052147636196467857661082220649002014620591872521998371950175947652521311021757450632146682696310997694374513905388694350685274642172549392353210313171400592826586005409900117190134719787309173702595898886193285067978933324999347893428216823789129536740379254289447672570672103483814796865702018711990519368001074662270091299574288738244070293256253427844819857306736022675305214988171534400353344302709038920253692697295664182584635277358240963697272786151654560083883302205598807950376179932665279497210488339388788162122584193347241295219956353651163412624281180308967070989602680805864368192556493395761108358295215179462297423642229606327120838442284413543501235709487222944427095932692100134969782437958801878482983437082780697034573591623516397644496700106098374373093297051199965280871806350320698217989862917145731089728059157345576383886811563649687356466670349471143867994236934149972294672415103516731691122854698760935235369392923660736568654121390718445862523033358229596943284649009231794443023678082045738324794719327866678811155728824347581977979971877581798440417446301907814914419521696649004200766486495356520659889923042376481435397730612148430597920455006760880439946051710875627529441456699071954406485645422789588660885785592051874655340118347527648094009229520960344937323267187716119010688087199689989085688530836277986257990396207816480455437397787058962790647117029091339020113688968041407313831392867017025006913838306327116099452857628037577196624303477817634559597569207755568276971721649975748309199819947003071853542543893504020973937762496078886782764514181641338201462218693055064215474080277179890470993371877541116184370965887463037727480560516767605740541185834559296232635899119653959282365707225396187405457750548723266145472778989200680084535857846816477436874130588738095800134499042838496549068610270099582043979758994651504551044250565461745290399349134983745332804020059000057812265108055457960996438971567211220029054761672325660120661583541791018503605847129787821541938822755272848377720388795737888822199764235914318429261527983032849050800574268942331014402413452079711978795147631693708142668038389175449872718780650043420330788210182307313423105367725567061623677780527220476653714293372944717132238220406683471000206084616622269930600723622323599421067096894749125973233134967448630053621783445595954250373496858980810354479147223388388003601258158229028179230448897004385018992830318216755653783381017631193933262035347160961780494898780509680589328710250378818823867178678945256299760117063599672363463962255330781442524585304000528295750207784654304533787194216832103849660728443525243251628693282751216984341531836306749374900955807382589021874595490339388027268954849812060489703828265334088816116331670066585819265133346351082864855305524339833778987209577449619483065260849194352935695153472413736098788174200867071237962218474939521521666726135752447511599187358148710399783543974968641439301804157940840045298047338889366537504389185588104649017066485145755484430684857569880403721109365416028298021406254898111609192584169949152605263270342926799586412674413170031276562245590680940384896594391100835143171983152351576741072649684075590127934437288889864599382800386025469078713072868126895758437576421912789198090053786078062295670944592440399612231914068327756390333326293605677806239756827186016767748234061888269165099008560401012170983630244914726161499288055371207620899328013249667603986953983298671615090704719199824750756469773792438656046788981925326958519957543982669786295545722997323089071886487370882590704587867072306494135869423655507924639072826137226847273887505400146930751477104729612196140851175468377801292604677431285940426345136267339480231189664415596679721908876442319214640933098617188105023426714430641019153212468495381339601428274348901576301434965676544304338180777391615652577945278895094918051012056529657851478976034970380879662556621816201930195325460888032007507137348810054270023934930724198207910044146191600049987415066390276400925423283779983484081093128453025408118048552370806502679760638011020661206434522304000785956636691548089899998608980227794722045845441012544065183534439961741764230103890099259840309940139331406491773762912165626939984966494014842241845938623968629525038149690215188017539770691673808959856489773764109886277287124259397305412378172989422412194238961572809185162975822385199874793402979708851527523512074261150104596904345104934985780680689905955218790409478861716200117626567481630048971077675230585760113736709737330086234458577592472030029679681123143212726375642840241669350205603049428352789364084535256523619331259772752819991598362990115329548836209211814578024445121371451822103977488325189942013169194621045588064327877789420755794985748316117377341494672527277313525887900198637337943175365989058503330157262120234869187126686668688852162253045023906669778950420411762520048427781646390105290150138073112795133760895923166382115217892468556311562029554166999191293612281545079960881897132246703649841508488881042047526144337871596875975238061860706369118709242465076776223506105853141867333365726999605543644711976970839983446836320638436110386270748808634925513657941660979099093144608729878511636824196533244703126039818144677411152481712528024905172146228344359175131215549229337241671238673723006529131863224271019243726905192653370460883763893500899178590336441803908314210715764004397129904414644914268787652929333216621580515946530674966977648214387228941037920999056230287007511918516256974492524222555175307090776417502249305004613793427486655281025048455528129984667545437525755610356464945207989944393431579067414428754826458801459362767803324772557177459336909799075704475461550631691507116569579115473457611794370118435498930883587395311783354389314522934452573497673904425884149238412154464206084758154047257984922628399995335587319115068241618764612620373603069915533823952770180168150022221381187884863873517013617100807019202111477867316375090788098713158070006460076814029957597649970193426765184173177342226087103190785481407335772436601195382020670709882098045735096705283652463965471039227584949697911924928366895105259606440558722414138322946909809043258909257459184597453024282449542769119214847500780378639930000668634757915068480993979781165970333544326635304252408804775013076223316563432776893687240977329471762098650040871884963802683766416687145919863105318243108087940584098818058515154744614399426699901171245025646014534686058999726218180704592367603944844784378611464833363960145498289077640149752613069256864494998063074956250060073629601269558410782025661524273454487606014741610882942520380093349449104955856349548076951630450967659417072394435126479884914103999589434912032866754834796362148664748927671824219934207882706914445180927260011127845348346398415384508973937985215502777909876233392809279585915981145986117651346877123707856246901800546388029829482138705553098144904193102857679669755516949608652511365476078480583554056027127744758501089313915314157593545892997280408641087424324610732054615635140531774213898411423964182917831773985917150521929972952477303798138650257751165824147575706835989667695454620303669302585958374733541982198817811510786482262894873862718027855994622432186721320986501517676877530068806378831885964535745802704512672579292665963208587539222718277151408053974444096428865205923732806006116911069619840773875340471870417483201686134059248789547474702164363052100956473114876667263879536971455921359112406809958154671089668289445578365432993709130451721944812507220860222743489152729889569689171657151259073914149048989175355610097977940198099955149620113979104384981289597885848789304575105670503842550066959195556586101504634023900873374704821816633669771550317827926999787320721439322862371944616959209249620978800732525105491937920678699080045782284920538622172373627464476730895567882084566333453044284822810778573603690692128853122334745611603052956674057102399565526563064103149422332090061711213083810013284647690316224272955121805100342292179059726897241335137149057561666433685342549354340713245268166052325703685000287832084380370439241633552265658409666873918630872217312689433996590224781599904260008446877651315477897462217473523958999804394555424710674584889768688956840588820756352981799117888701437745364066925508940873376439200838298551317660795125878579865786221078598857335245048873568330785469815652959067460428800240584511092031422918178959235642591516968985254253886061733895472898988214876505365089861830916770520499168706714291558024479166658633653321124728006326024385053327198990622722738720834395395623407072674906243134873786911839649310660648097804064119039097760213190570661568019119986630743888368532086087213065393036867289892730785272895640496669652427241918611118285074942546055706519115055352582327925393643844711000007160255564210458853445793566707392320684303117212147344462132197605725154162601444893460906754007003630885848769840553517937266129144993071805318215952274761522049097654204507504676285135396987550453173125722367274998146995472578761070737679739638161521452717176499966751955368218082310753637585429145621832183109783966516371938586225003762607916699758662298923565177758556052156785431921516444848520782872858626839763788049066735312764462048827847369605884748966570153547784307206235132060670280897925071549841276838674115857962438923890585060986329407484913331890819710845424649849795823658872913159742581025927627007039394486634633567338360817829460937809500208168828482236506512361632612563740949125124633725647070447194104361943739632025870074252878011539073292217719906752426419559278926675062207117880086600928099013838405440190699146430588636808012787216258116454797673239528956238663978175582997129149207117664886136726130579738058463692308135131952563363568144867265888197319890200817919865889696150556648901672119604850265102765812455074180467137576582476480211323720068140900790273902087947249130338110242666066736083332449329408688803586205176526441294535135155180902773687055223820141852292083495629509490375368163750267037790939496491866196371739390617285393772331701962318333723022208522114235304596786389931837020990498189038835613554722348798808929228916266463141876472290977414935374725434085642657000694993760132809555572885405300191292603203638774926737254162128811629318033918563668390469092613821429894750350998333072204639363758697161030663466660738968096414094241049268182075973085448573967977413868996523039057084430908502590539165079834256231508478761567027893782465242511787248800720811025635389716461679763174154498737354401022722890064787770620143121998128895225526620022379358216297315578613931791694641245149135845071299223885548212606598978004704844569641801237927385745061664856486820010795277120963365149482696482763709503839900533852780948562318286753053808244902447374092902851828153764349726848877198694687018446436394059603728347212224894098918714433860294557081333514568990533658163915383746057526305142999685077126422930648547502278882067323660959635945366108532464657611537251472494938526705973118850219362831346323328258770095102401235603442734618266765665253474279457181385579667536669858833828521406347695867342489923147653782685752821463339035602296074772321144449835523344216460186196346880553950082178121238029871034627523984333322286113023190805658786556134345491641359525162790443511849210032488799380052229818091740716020199261151012770544720729013809407724675675092891051165628405462548594700423632692354080705018859018895495602709830165910322392545670511660522227983986377325809763043331056574127603770351104224813298028293112803747181813847996442800325700657702100960072644916012946391402387641465544907319946030568140989056840790881597091256914693859971473943599743235914191804639704924574759318018169693588822127984661505186793820815916445862340046772480071700727065800955441323626055548508007926876055819098881670701898073845263952043282294701524705018883804566281919227557388908299521844763214325405117172314721909520827480451329112262140253623812410892797036912324746429212551726984038063837456531328829437775910216863639701104986072814741731789964078234149653534719830727266810239785981089509685396402815890438133892438686586327711258000648273247888003128456998182464038081976263695284916422795058318421098060248454635317342318064668966788735387667064112325304149553196715078666382916020514662601541282766368070576515188695132079723961023676189032932591368970816625333273680119313731000930147905301613791640670741174074948245304918850831546767731525752461219763513834394765883338858710242287573602818977871105652244764490054135437403237594782047695047789460007410824529245742129213747178606853774560259625006425004272136523524117309698424237030616531923408686118314055013643344845755830027796493319895144949748421425623136622550477398408740848727677377431450250992068483317016232859529687341649987608983761228001511728575832203280180151155209962871915993558237844043653992819820973792715497155689533425075701135792904377111119054569048223488229656804697852707811615165187052758818523655798511412816614015174658530156417002871474848197604246236250385126783690087157356474215376139080048398659305093536366963602974045081363104633661133643085820218721736624366760698493826429069234573465726303532514203830547515101419530112485315027383236949746458783442658815980683976950998397051574390150508937337185070012708822638625481571197947772256500965979906620557489047911211817643540347295410546605910439790234649062616002242942990592306412557812116203175080867921700120602033423735886457509916199902622894178680092686173102391325782005643278037401643773165662041386767373191063600922612833162048610798565469853958254242139813212184312251001539915118330535461123895128592993741411535911600181400101592290679327777396128221287495200926644811910869101513727076362392448158402913812513564476142229749861489843323846401146725023657325951532587363617537859193855558224990536085220590343225843766281971065502016574505003026659888804542800043012094639176291552901043427566719763859672310157831409877138591885943957587711728362528585838118812885796338547517995002951183835453164459186211646033918919564287129405114582973387252785892153031196265977341914018406509904089288931834435872839508255692279149490626822580374881674775485893483400126013130591529075534175245864925718250982050074422329332690841470303344857165841345633736791057056125205418561192176091991692004904568629252863329035418767989702211068199305561083970583087185698912205731264773329878637854688543941486793039001693903637410844174457622287518524679028486052169148053380344518203848818577932266748079329972300896920608964469523136787044600014323236205487542087516707422459015292472306526521817539669748664643661372584538050719398939868823374577133470455615152109260094039762055431923916114283862511921169246963016380468317021640438880486710534193082292600038701490278637574375686307427210052042807403641638097250028100444257695340993041481824887820372058469613191462906970613272587788368074264505221759023935207748453253152212589297410002700531363063090462003424424771069210219246888937147957749209401917774475919002592871698654865045466092528755773989966142848548733980352329312575060737618167028480606973914979458861858335147532711965695846132951097159337910201593181196520425828840369217366864609388626016262021999649704599213969853147914795830619970718050314203293956294687733774416863265967536087861677232182345678237809949916901175104951436961151616582654431529080437024889869946853188375946024960250029679743523031539282870204593350074624031323962831365919799511431759426341610333665259014885084837704467867797270572269602515236013605126833416815874270937680896506839130021308636362126706492463163206859844182293126734528768641630509298298502450792134119570541265203247546964685097977145550442399296967720822583495030796245438775027157213103315363050985066885488026936442704812541736260232681952170733596208848972971219879898003980486447033267809097531554772457272420963159284447971038688412662487114807276990137473495592381411431578866247744623943902700416154702844784560287575148811764680131294851918170570273318333011803357764759878449146681422037282272361966945810547390804165045350425942453785455671878801731125758632815403718854254281350586003247084940607343580517687452054431582349272743919839794254478801782557018590967139776151289052447208397204415700315364669821400440673270488121625796155784420478066800421577338122331039578244251227483461734489395797544950501650965487391089814524137725929084446589639927082664219028114810394942214716493124899729954391813501634470026150972311265256464712602600766146709545617490654257241846683080905338877284720582478763624638441207168016544278870667245976799467338921606401587718468085661147018616406202540275178838217363915217411603371128518828329555403443650271268496624255262707185335217976072179426463058111420832334769058367557780647328777444910636070716288944653458500285027666193381801839908910925619323126087538386877946111753302385726832039057239970946016310891097538710961532119037133057466544122175088109522336213680117786952516710614738399320475940933330142848753400095529469619092652375059217941450684071023741435534277101103109789340223839485638831449442645833730418119494481142290522437424115524172919643371309656016801959319505371004463214884733044243112240821208742245429106912505556855273810750553749983071390860236817388171359239758663232488372902904086142401526740004307690333285681480486438062320571967187265625976522658621705023566252132333575083230113249172422675632668067209214694437834863184011053773037464837729356196437905531231524021947846078691405547046090552199134991198062751360214748738046540515982272901629805327591676517199745420371281687934018322190143767524280528992908798895230174389483194052378126070920029519529223625451464823169262355556831343600928056614430479717249767821459878338713173133253852155590170097881300638817532672075548103094110171110174155157507870097728936496975972518831000788347550670074100391035267088353218788289886639338761430650135277585947705065011783580580253316938573703710713258226987317283375600897305782981565106575851212310328583682247104325555596998876733004723653732419537784163287369036804569323507053234657554972169602609187278219453306270032926845794854605679620438745956094279052051079898491513577752317253843953747303803550448579805759436877548010759655745709991655476432743989778855959033025343239159995429806453025629783557904857217919798608845681864399065556578541445562776338970038136421169193995823804968039674024404453808137115463231569508713175629057905271816961424021085535466846222057223126914236309270354985294668950457865843627003474460079163993834390673379483397463406879100163019523602059417448628373040999518069611082074436108256121252186537470614977053311958503854179640207362721349492624305280978816077303850890583312231289005777410037483959647805172819754087134733372591408845733035766984863247674550335193215059559318842602130135908744739982823687939806608526500575894358226555795848332631796689651320850268796058546406186742789761093756617097060583334095211582833641833318503952254415372858484733106465726498715963863768510398332856583977493172515662093427041107023638869649879424409302407839706520413533104169458821002688995940437049648171448893491250809233329700347906051616008601767390849250552520222585087683709612947596632341009652757327272592383843185616110823133032315877210011819694903434958312551835310422739499473652149059864294687400757026540666130580753777623654348225228826729203321699791562656646833401319889555413366094719931255792500027115918209177537475778568789094406530744565320821952219843943652886563786235843886687721630051118907250678306770797200324197096234059504867607974113939912641446854876120170255357577308503627494117398951673879569971667395995937499970943468013576017368855864451906270455992009456604616657925548849980760926427620896677285937589440418245505440756019467218312960179923701454596255490183203481563229579482892550937554633942397170946586235578446466533197891663363595783042685459819044670760308887625998725794732140064998066567375546139669090269092085710964877150286109373709501495320694378944092514487283707267103412070421120157918933747202690365656305985536795369632652773678494700863437282982816221300962269706305988669645915158313344152628803442019904388618249826134096142110580984724137554807162883059278468759557893326512640074936068405759298629778786862957484406249942155811426331936481303710448715054298208152526393286859548201414947739547492310622219324787545875788557324817409228428653512886407162855229248777266966119430126177345133323323573735102471634270274321785104314939904496104732543779854578028160217578682447134231030477974210609267157304409192439622819307449246259891560471900587424046334372397624622654206202154834327765977268691703137187032434695648539247185823343287513712194103529094026717231784348524542017385430031082059186252219002002606291662182668087914483031932765952166308974560331987242376049219869895590543323847644952363484450874057114336574583618987250833790321083413415216585297457597886381330369791757457337768205887931949853947481722288071406626023534329563491509678524160320061405768473712557180555969849690114209040632511719927759107401479735761232873335853713071022185700606042461702725908716978760879142857955666763206362369395604523577276053580604722837295846360568339216152632267641267072624215257937077573986402004382287996136499925522029707090454407336444646352470180924091272531391978937432327675432674981400817726454426216133132076776521822570745370123085063617811751689701475366393082425589747344668216577219384917946383351891372144198303918548201089531917138323917730923173985917498927373347672384004671007420718068717937583695673964112999777974469872744443808786473155144673572176197051406602147391409457400206659776028625087171973993028943761850952280145299212331213004866094282857462041404469614909423929510395962333520654778399216587814765166670190395685036320983864147465702843405329469460452770426199499955442544683687240130826625285408158323028305511467226430826206362868628234075179028033578132223153268992458611252785245120905216651503926441277769671107611151952756646714774810502687684081663906677590501141728697259569766065327630237309225401951867571882691126537579251438553534441693351372795847035459847429573845703033492860418232177436495213311874405304490670911450170239876115270987476163927457772154208358871137027984060001087790405602176836919463339305859725454032596637834875135960280475452197725390451288529477890579498092304835602590108493917761384868579475059913272829064389871911858935731379104272290185063811999507736030860454220449451919597564332696560146687332994296453878456163063071843532927540148507695381370558695128800839485392781956312476566446272593845160776699818250115960399254437815816167508886818611117339201749573682032078640795639837029711769091653371086321158686264077267565723250003178143477864168251908036376615886370352419904434068192300499695514164012802161503987233396752194016466524100127672297641065027987840666214644023690874598922012301822403882801959657681475164061054942172042702978443252998075303706393154373385601434250116318066409757416981332232823989052588428932819557603185521608437918085150877508527971795321447624773339096157133590954350956123740399722059308440639943240167206771345010573581581311033561738520402524166976756812143357395141159148893680869329793936358084490687616089697644013164856935768500616290657443504774022214204714622534009990962433618109358362877023062293449383204831296632654793260345954479917806295297545593685581222370759602831601605497543582746240596644808550576999087332610352175251663855927706437428515753871023594412003284192575714153357976746317572327345281729549848402957008133182039527569316028271963709084655715439732625907540583791280554629807762384688763588410102757376232247738576870707157196176828256833419754513158896820985171883999469179369766187863867804352411513030437304622597946679437520022721378557032860149203692606035019533632960477989436086535683411341841701045736138951622468917014244425743346163757018517941136438629285780314896681492978201370155560477141681555090892452335593160181230672004855326347545575165023878266756492191735154491954542730675660701730777072746939405864955286308914767039524676744691870051316268329757144753534976382299375363372605366735087775101018887376407625228790378333921640934685617831121884073889443413494376402354733069537053453747443782045885367969057419834528259408197273086638021582180948286528726631235907054327977060376845056917589524790968089987070853645592192101655816498051607695819684342387031276993405874948908511549285315060070534052638554968381802545917865186422299719076477006314472032009372348568971765817810667176276801845528827999963588383554674572684970058246033295223822638255162355818896614080514001712401295072508804858890872030652624770433547444016911266467411956716386199598209441814856128723835628408576647383146346110053703426244700581081295334798641894745200787510562981206739785998944017292394998988641365822605288379243159470094039307500956252069163876278603587513450992664408557719898402674863443802477023029964232424907108610784531647834508808301081016736901683338732714423985094130733052982680666381131869023618308192225973417034162496518924102688947518130746492210147344621590490712107691947053436832118768507341922354249562296892406056818510995509542097047607490584222766053319402486177640893558984571308197638370944598276340234780864721041217825489993967243181373505783303825494436571189944343083890722474481039705655361676491932926462679512455638150461707642744983764434696513136575687379493165972874167774739216018184110025704278735389728439847587987714516157214465516869935377522499327563082308400609666440242383187613964676221162082820045722295214812340990828300032965368029046914113219828266392282342120920785664206261209221472623048498054219004094043693700738910427384081612169550951105946145381558569098763811726899425417510652194356926387956243081976764281118985699428000759541163509195348594457717220450533990607395626819542286566120796123293731576229580442965597878538538301332826683251231262622114100545640883897838111850460507591825701935137320067916341984351342841964240759555263846723180988828088959721543020327238226550859083712735712004930771595608866569203637506287027474868052941177880607562109403624890339386648064040407638761740931421144436643907017307559077462024361778112705459145340681382345841951018050238062987198189049551313688250558179885560980022763407681604654904993602580248386740271398040336341596621196206692964411254268538259975419666318455656629183562651436768320313060234545588323238366176507511037869738628971539099253399020276448273352725227247998886951058545424175836024183312241197762965721178045003613242746724478629630417492954806031181058109595285785894622996576075380328419607471899213643040319486348683008925341141751722795518794636181365101388330619344203075558427217438535777641383622583455270595885171730199137657565280268931442258205350107994268002238730514606323883390788830608955637620770316809464468656109909725608054389954000280258917058631222164532497003053630261702263316814987045453385575945940709172383362825518780078500183344496751606724786536744059104483916357587383543064559095336398653095240871609165772726514286659411202678140624818429429364176929496383672250466933471438829657890694340145521097112701823074798212102237014832364772378136515530832333365736386272677224264991281804550764616425634818385441262589173383178021774924423890680032577208454810190202042365894927320024418509207610644584842518545890649222710472121658115611525514715324732774080989085946651785593586485052782699128277105207935003051500512227569589333989274729948924765113602505310662483788538231934522650664339595935443383747738035559253735020358546790534056112650420215253742734212246293345764406597140971076739922746820888090135294070455157488974715517970793127626839522327227794512891455571926009847872844730875420849060279001367536969293612028776644691966872380956490825794252164824673210957286512405654565544622354775555937409522789703174670540522381344549093226086367090161272043012817627396478198984338482538063422762554884371985492500631999720586599418073034490897221962964945832838341214303801118789817030805742581676356039751235249174014305971931672882596770609227101620622278411447108686524380307357554629822889082503354620582005545349826834913566293312365839664221164879001087759430201922363340067740413200553382586503545812270111448695678001569456655356895711794703096734478425300931038245242587059126298362658298311347362207433591564911171783778670210955753129355068039571282677057914670707310051150367977632685451874401853283161764288695419499347987592429151130721382038979323576847826486158095821054377983990928623503403056722381644679797278937103121521110906231734855444979829734446721864295338349243207510482877242262783730526625007179321629130338445138226962817372827874758118105425179485165343790934304726317184929225863414744416468659103578004556379012169744383738788504177435068076759351710256584501116128447256671540515769669922251015019123294817237796848260641977409486747362960420511952406973071108830637576251245298895247659314089379034324734780165676108599096656755692319558900421427734127096082756530196600389452444839583197076898617768651421476681043810020009391025394452525469995090770714433034745228051903967446796390725731090179359973325042943244171760549013857824385603634036021652394339135082116128661166683298079319850237658349787515862083918103704705117695687733279277406883489020355565954736639638405427426343602508007746118797298547617573130530931662762860681623470199433650941801892752300196409517656459396394353289756939857564034219147565818595102277380643629474862482376845724686452483157168467595324613487014758232881714910372696934296997206117735894561510493651686656282069215442246167816397381543060725800386735183222048957247459120778229693874411570889854491892273566610802817351686999173734532009217572990467052368182899269925474078350452303311009655529805030912807813471433117988968292152453224147017192488083503134658325474499818727816710743776082775239909580736659884767262580589683069393901790878226286341209973418875041417238645518258755103329400688562559162355456884050736097769515100781600481695827308246465088938632080933276832744313861099440817760853568782423960481066313511835762011525893441281256619686079952425979084634460802885868834501895134149827087198014093096808162576349459927193968219310134983029002206024376265911787088333027836758684461568694846682343819297241078366352669275047758610887103508967876109018943597963922587932360933763419321153331963402488173254555324676549999082815217747762551745118621181845776304852648779822210719778875411389867441941787912372276971673547195846434128939758909412689575668664239900260860757488617237289143648735303546973135665730962671374309428633140759363690474140805908092029858615414822040558568593074861829469651375610464525087781838848240837870070329440331747197459108414691081479832212940149085842022711863777188767930392446669546526692259702656418307367379176956611412139304167808894521223175161973459277688144554652016370093969950961605159640736611800471337322330596157745419194188682039077297838283030405220475506938261445531574477686393416676304582221278399572274255966850488025760203211017856390650067866764873531869287368198305184715735644532556621190680965136941209601752570684823573170330718857091997062732585963875115856467012880391936070726804502453966302132317627311810178490065633805838498345135965900877196448141556914577161089886706304189159771942683449463270035909794274092236713758065303813870976551687243233835550284636485478571492717718612454621804937348854922448969682535180776136126303513638722454294307548382033294028160041668176669819883788161249774981245961765303081205300538873203839430983571136747292273788589725051654147011158668924450093983374672452793450443071416382638173461819933370081437136944345932350959448329892688379183235731721415611009944932868964391210207071970806543706234627755180101378229003956986465327979619887822183783491214938949825388833754157920460897061024346200697966985266420614494464457940357399611258795032160077397521912235594723853329271035984335683221271735273314427275443320605521769966261797166851547731991644062221449995374398031309061996456324632347147967846818761152588758350989101706692631138412293694772539129170843119102186866703217699647585254579175854523662100097354246894663550921318550405261772738711222687906048757960349825799306204708777563771041958494983831764187410217638728259096180498110733279361264097068614445012315677809932962349177993948120587548182509009442477979542657263200460440457550673523842392481192219603412447938587960593079745584568173851127341438694148918818784876065336989830831382156926312979421186092622827693887364178651391667580879070645187795049574279609152350526243538449607209452453902222877151670829754863944728089854317326388551097181345465375336505124242759271608116929233954057722217271215608911075027496983493650406305854110363217865651876279449395483243098221423733637142225141186510015640575946955599817176810333904518349839696178183067770393218307313282626574541613009040933817520514867192155944591906572318370841360635747071077491709927905939799218240689155258002681956248715562327558404440748996943650334275891775776839546348048865914176004349686033902566830454640546095690786356081916947309776500067129974803236362516629998304519264622178180486809253500077081177245882240573676103263810854485254287763120976289551363049951103520327249124537960522337599065686066287787549050277591461826062639471442320614494990913861755067822133373105294153218264403806052811498232284547709733445708125435678645134602232275455941506527943595556255201641507229671406814228223948105240694287432005918336375334214044143179242538030185524365394177662874401305335207320801578508049439069199282317472402730786216218847448031084109047010855568146002878571962108405030370961479390434643996698482011890233402447963092220827987587720800312441249504734079057548634589226951151716765691035102067424369666484341904428924551207565835554783663076619076364421679827731267894903049741027258363658213109299311369773919961121579423068628978347799912795954073303422834738207065154463236396373859916556536615058134589120856746124949146750289942513888574214867553732826309397947252122174064093000750311166303303662398569575890828757413490406648371469516190008878125075689667806582808888093752377139980357522708472969108377098974325729612481129543461601079896492864051578980250530777092529472925589456931913787982809666701093529028984760006123781106534405370117190663850844193613835821419348197108196596707045066809061723919044634165367701834092137047440607224978885406228294919540015459376080534337904043761316867230728640026758600799274702261406667576048871771077241684337192611814721073106818213956727839632937101019119872756976320371426928180566675019818667563904064318563364077676743406814123848801870605084477201403398224829155609968996141993116710137382043962581597271738661377943308875988602189876708680965833211227816927990118090195701594401712170156379986968549283921929274089456017308127570170336903821797959783921874862150365651664549506919145779135704692394542278425765484715965543226690784103511288462364341724118532469449952111358256594249844938578140757168877268352517121536914303042057338526985670984331859302238949849494670880120309765740106654291425237043153095754122108373131934769815448093674520140259653071303111464258713528961631454838462348765019018081431491434839737880505367937365699370265769434464917355354071415299583086710951600365733550179043003803766361525833178034345827833692902789264091015486603654860253788714830765383907231578563632946231623566478117570369595336479280189659225689125905680193149421402648108632342011794372738060329811394818765244725761084109348527382891299433458227965591231442916549497877366494649804717486749745703592041379888013165954712601259454291387641529342180011568378396702548206363002767732105175297127024868021193798641661868972905564508029448899466561966432567786675408916356875326051381520167739958030982006670745568959255994151903627491279845718919422035160595875330442829053661378322392707476926882753248014225172578814690281137077767584177999469528823755360577724257857498689949409686844142091767083770542122922630796327713242126037932020041686465913167019475120944358690538102471455582313540337451143473738852790016560429896919387071217106142838950527128659042364677773243989976442845117240903751858617837346739431282180012891349252270306082739632558156625348349140562701413036943916275359184970197964788940114767381012054677148915626740164318307498729834789710590378202392821892174100363327136710305563749042568087050048371245909977879582474446528234696754053996893585277664509004138473858181371521346010155471736107295129116606100769489735493209574673147760865871034317591204643126639703295430245054687897087667436901032912823041684833292512337214124109687805599711336321057445274721226991533872241531022649819212537979650972584954942305239000359342267123651306522633998243355201156231137213214103895270278014494577532020466735305014844654269840459447052561660100412366179828607860730256624415594619192433047347581208517689800009088772141113544354688385143182903073351365617056274801939052607030982696098651587510288230891313903484299582587860569129388970342134679788804433701842690032524753314538589888006413381666195186242277163841164470663708092295365554778904884806332330256670519459701912098279776728051459377119077251551032853060774451780997286830827027405501278688618988737069608664804868307330243225875247274134584149263948263394561040128886657788041108560928250816403516627263108254689921546185947290267562424250865017467532006434404020616031952907781957713867054096596569467188731821165797936259376649638588540666763609834194225793038881222349494251305109114965631707259753000552433941985731272281972573404149113629977208561307651776065844557700577040821237105171808973653260686967041232368148754947115115958158237140340494398107000581357251739599082688995179786235538889214229504650313753801737889039178414951758128046283985911670942279852974339295081945500672962610494537635997085305028961462874891842227655872145419458213633742211689627543727576847639685216050344396168643790829643651281117040360992057943962504246789830106869602862620557675639688626433089323784070566914483828089128979884368657122362001711119936428721606355358064660369648171323700580762870452874136677267429558537768820617696382845896748517836658697418413355508892895802721040253709026567900605892366257171250097940162775071391042569640199168323981419325787621263098071070090207431285851034361107575527895542666160418406332175918501140297544612801613132556170929824200874986231323287450759942451799687780612535701172994927254501478700577887599965044200381113034690047580216679091941068513789773984221851618055444349453819577943600122014190480180738996833508209812795661881951689554717018921523877611903926764777395843892240904603910313801975679804796595255554758847142561297824367792979183722488134742155703947198786930524603645177373645204633442856181734581208639106578762271661792354072743497755167356725997001808916689149062429808095743922979642602597232570115092822324817857475370975456656088492638477420959552210623389834022049279406282959363850426045305799195783959191409762511657670279250096293861229813832419271589888365923859228585668406736262245253574297737689107313688962461614282606040447179662107647327923392415426725264288550204702610254924252554760914834324415219201756703466872736324476581725942476160466038228981747912592890470311693316134141678768894286557477526682823544975608789799231603327958404369735883542353296179681505383485741253252402512386029224726490613403183490875070615316064576839007593164767067404102601566576739652849281174805837984936843988305463949060180774793785742306683058435718738232994366105918860315922347037866099248479035844192831152064057946679876652469587822916568355048035672602003370357487120071365167453508182559024974091131267478938928399706948380477501288091908469169990952775457056288436813304529641801766087576274151562384982488404422758015819039201227062128821668396866650795020623592871384169224524302643789298594968953147261476448774028004935335619457366124667270527441219838607808679129358853227259238514844366520160219485045434949369706863887869261375922003760709167490952287705671754972047106993091926268928452406592520152581070072423797172748010535311000654348911754119142954637036585049643907710303633486845886700679823044752756221578844919148701322045498387130417814826319514622567239000810629166792472740277507509545817649174423910227665034466734005240100146159485055704442392044304491503024812864328232243357366033397286371942858855889499774996331985435894502345887366058191315771570001149323237864261246798480317570960776944278886345951206875418157875513188785417890181448021151576725494101601747649385608357315311098725137901883247436213700864826703689206397473543568516708026531310328963051805913923318495213581857193882452242157858487574758411679322899908525231469077416942655661324372595373459152638458565651060900764295667387919662056348383509382217619527910562744117128233236519693356206578680428192719873750238522095756626183015348631744992312561463091498581721145095219772869620764172384825696265309158099905638419529190829929116359518226784831598946014256832461849851905987537075815049672494900488396509340636568041943036258370253360883036755299691451603305948741084389796143829532517518761095538742741303387745085900578188167733506661486765274266954794963190368025532942925493533973849531119881741270690694155607671667019634573689025378846170830607973522770046225191212266661866755702921386294476892688737616856624643105700130401985300320201027465727996847511827290880123899416189119031662272138323581411138577669848836621073334368620522601513564712179920713856650281415172801036432455411196944562712338333587237875103590131808046030575939058477979272528705878224527542503824672775581297247089540000532654536078902530894723209272027345047732519622437635279523365486565198495082289347745915469831102308216000292344938068222029284365259810190900033320689546662198735269925417451209603675699711640081058813077583073703412865143175596670838802318906034802304134487532086970631392224559753515752326990740679373054740905860445997682509115136152065414559170220335087286595308345697144818515738096955911870713519152062136362472492291937096689142977449293334708233756514396226442931710211351500448397502868754072819662893902336464976074619442986852850141938769646837369642539927577453530327175584261280476092254326041500377687242415144134596535849484858658719975819210343517540083222141514581633359595187378553042647431732572431363543057142964563520383121734107901549976938548565248448396920235150808322330364378105559875187344068924253877342135258252133693190941911575064532353480400916264305768217225557115467924048282081243024723642434184527608890566359819023307249380160903734329600752241165546102469025413845346452436239206061714710786268695495757154227024875828685950960702473727612444067308316513316352475896270717393442718902995640125135601899117845599157400708766919305967807596185139553013408211148750417818455851401373691614058102918073165268123426999736935121813010529131883535473909192596726821835555433086927033736318413842251935595372288105494076696700341211457948269377021440282380294280527140556260533063750714916142554813540746572596874574389634251997466543185882994653591354019178169063545242547113755227247292024183265808099272572163646576402005862647053275950430934312780569350616486684595375891232318247600954501939206317822378614475954873444864155585844950957773100642567608384078711972549534678582403053865575443234166071944058495449854208786846925040557685646099776837202485110479557115998193903349014894787019105668238938581432365133287302196908102441148072698445303323623605728118972071299041631862782772434964360705106597865398807958475566582389157847231948356050108341645105881001406515001341850632235204075584647253218725121477676477855593251847640300394122987616444762002915694572455303747138415044471156751081435211745031825639336345332864420752709934355394656564303066714925978662724108439081251878089786559722128935754955202950514934524950863429903105396300157423925843805781103689022978631407223580199290318687433079188038343284960475015242349307890950733708700104852072805863317756203389416304525897767471578574258981473240117308104147617511633588362461768934724903320370978993136414225037071287352909802859773899666868786836941599676920086603977614355060607085147646596866233527058720317686435076617421845397370990900958638524457054326495095751908656256015630629840987917412291464020454484625179297383046797827876403890340374917428747953860392703420245549596249033056284039545500142346023255249452586206589843443333759868767370125315846028080824252514321907997145256173450539385015468991963546019782865314474645224016098016679306258397860103480638489273305341378015457642893786104039221077938551294972946002360478874607629926813704978503312912315857959404988604386902075831854139737460219600811827939886050575875474197393678129989388858238454847065016947553890585962460669500125358308795249707707468823696541587140856124629129348639714043841796770955936025572067903064214290599530147689108201103195717175712133888241197670989324974432478288866254511038692109049632167055425025304148311061063383479828997689697263691776933810178524817400960695193328523533165030716938693861760566121432658700879841846573199071742169315999944990737512531242148045229144206547968588937867201204174639628819240713930537492947589006142242979320582861590922726479367081511860013137845206741432998502738296344020103363651516044307573957972908712294726419975085425827938581893616319775740382048021546386030103210571489121152039641271184099748907116267508869609096926347492328701614084178172950881082516764520473564884739844625763940097812560483785943730404404757901544880157616269941496398499876716832022541016369456180703170286863296854211665137697084849641131044883535448214403498282847116751454910389255456067620681760923389785471448737591633721244014520421801684594624051063387641687828578024935132937522060623320844536300377532393265474384065364087023922683070363689035664403180984168072547072847851128336384892430044323268206594026650262999921188822492200179196299857545672883110395021991760892714182841158192623476791139812783043472008349447226354645071246306758407339643798521475819037751964278357427672686710554089357373865341036334221666491661332357186423123531452922333388886779268450685839578735041499953886126613072524681164131791451762189213013851273606929573577909193798867795498002578837818450564806886903657108280814422686996069372838640123392668489173861795453504417299895955756610045924705413236882806827117752176967139491721299785437627402850606406227261774934099256315834546654690017125891651837678517140532508977722269553839625053414726179524106792421679557736055723393618639886280086930041541802238450341114140028313887419487432358054297268794272751480166953133409079622561970883318998216187544084419334899225620323510768775307700735286622538806164297894914751291427581355408561457551867381523617157714946250015187202172822699317038120179432615054053454073148631925466481968018172978069769172693258733873318196336129734331456332279144198018692840388894864660241615617787750634243485601010408335698688010613673080784251860289959729469786001212027324829301533692617532985377125591971924230081303981635716264474945182871644926603949380355272759614438207148098498542836293665585356790090260305846120136731669132930163722416092247803675045685756127946528195138106365589991918488046193940510352979164108280507417406844527166517191231091247847929907803322930599671781566505696591857043503288087773232377152469539066391212326394343217797738641071196678668095935705110459759008098781615344530446065560705233291953661396603220888327872578328071070752387786409229336237114604234627882418299155346051079544307098792910930701514287732803107476371065996539624639162905173206255644063577673222744332611957782836254981111856448605345594046429163884960962492728541004356806155673732927870225468474323381663157610779678839495660762247303053586226287259287765415600851121281091509360980601993504758762582308309458609146011176596957820247772315899901281458754575130225374638648288931232769974573501940916612506308499961211172481321000825828869717367873073971453521938918726265045460903410820779088816744096309035407523071624435805185434413478853424110658488336699004176293639577598608419982585894045455229051104080496304974834601591308493926533483575001360087871170933025129885395849558147435294440805077586594539368499059541086363743068888665020273102742257957395816426987207407871074272216961247909639807047620869207488640242703316139491359908131267036644303220892661934120950282115537680360442865622721655683419609895654119544443068045543894785438236753812595576335055550350059013536119896976151162258645656260286274118759194349238049894285331625798131788363656348576891604750528832977783288539095640183298263599109552824550181897297540728754035709019971420357468534627643229559711968765170776952336077721766163776219237417707666227321960037256483379126285891643549591525409310050467241694197874099676583066367137390364159870904687657482589887651187685686441884066848961298783779817714794962576630977871573261423920655283548072394395356899998212290015749114821148215673787658778310491640860201031808901324767864998104975995269343695930817521012346234580323721356209057039049032510525174357388590526545720306485122936105899273536713984694873761363275606371698666794347673311097932111041458656610361999433837414637980577974207200334788848029448267382431358758017246012302193255417937045113473301900839349010879995847500336979319874719974641802547880511495536950154365724456239019884023859897266315868340079187239323557113561906000683616132651956496269058954850482971036069589307253955501343059190327110692345951136761916009199698578835422417101573060841605878940626856270886090112582820344182980925431878507684786265146982956033544549626665166410697579574786567395504816427509758140156191163504900992419088395574450147634462010922422771779519885681351408236284980471727780037730423680949051116950388951067322162788767915902361196205147720905453826537787783780893267985071810763312095787869651614577571993265424956675710058293736682470053160766597680904603721834932850620174400606552450848806745085911564798097191948181995983871206545821071816772097014851189224682252177257190025682680459847216136740491819810388887146756172489972817889882033148953012424349356775744550580615971042307095519919144762386132027002984258992951813171356975742419117733658275353216338901110216375955676133318674374569026172795928752102180205397318297609847063125050268257183437452201545687944278105194536712015324122058376863812745155003732075548083333059869854416275168860734155012499569724509055678051711124707956922867210676591547889279317876523526191417174173288600944722107733823907428586349256037372978566523875664279124425028284897223829813870023757061722635636633694906381252261306805837579277922300048320192161236142925062992870423324418915102915227047818338483774285121433414646500660839720906953180045469551644313511232683035356789161721133089818694155572319586260377806078227310632319637652817651919590452489532907017318413195713524515997076083906256314772072164479666480964380124922353247658388317997547754763252307805585592049545088166955213584811828983592983436894773315465017613972288711515061413068322300728178699494463470320046994881306397208746565014359824185333322027136263654716752542317458764860321590421518499909304945198039470321088619511947127520861023273954700437517015847438184426654841314511817474128033842646934942078554719921471214139628372956204856099610423581496971440958649242465803173843867846282499581358495963120891006819529219883353373620022418416454743866983742672571450945155433673265803509490764423449070259271577575918208087038073827493937778139161932900450853214801340392780568147524657218664670607829872349583179879441519430280834216942127538591458487767891574901236823058664777606734756000602619263062762010011850190077267348903392286919152754094031332285870371000853075120169816597411391672388899516942674929760834203565334174018033883049497980369066012125469030317474136843564671544566552579133271801890918988252050405839157397849657367812923960714665970399517802288609155228979014449850956959210020027105837596833134356825684082890860599728612749658475195458035511649731778695990842595774933347567125566906576856980185867041219008337536901869338737417143546743411146599207004238019168456431354656118282882195232407204826838475658005941539769967571597224326274113990572839943261045687129856747746124243098738578401230271875744526952130317276529621719306368791602797984118542827272584513244170946051195225562194202337829811973197628085186178326636847256612474354414533786134002367238873379141523006308081598298230316199781412448887349869168298037853928758979583190651910401986431603591240302968228145819221079802689168676685609290218065053923829024663585138247086241055965435961656878815862411011814393933409726976773501223738398870548113015949115531843154873918003375016508432772689280433843522977517318388335036710667154244593702551982847823018559595259639262165214212916501626477900422057001845473526564155561604834968511044650475695327080757646667319297328961528271022149320467721046648253931666909387341933659321418575202983861098229777570986204893094275045985351219784470667905549050594477455656271631525786613980173500541777364671222130252414670972061285316899896521782215723815725005936872338652780069231660355482878458651774457462321685414978408602595306671566511836024265286446640800638818751366110475231602120433809783742718990527016387101995042564854576847456893930232889779803962621791608042374438865093091763205471230817516161856262607381151727645816110495353761890761505150158020546630953361861047289404291212970236254804869744740783456552465604890394161128947335517635654009084548388104511352857472286562285685805281270019900014460968842241556867141997693297298845707284481017492007761997346032595366692788431569532541884045905977971575149680638031131492044394959875812567935321818972434900827751053325330870041801494984321726800951599385188733363416844254099936633237901496665274894964944823398742756481851374088990601526569076517364408066709926189844561795778740891990356928451362658952196632432622667858500553787802564432028137296782756498337038462483769838417381880138656597103433888537404508352577439261943771471129631898340938153970500560441956851746643819373356848113032643415866539150863539586432553355071985441468841338766592293182937341111491207358220350653492730705063285236222691547207149425181628048093292695749690394846829909415058898865184536073838283960833909887343804386367454553762882006342346388864223642594958933142812764314322813080544171480184242309061188251071739434894454030691864610732396342624017830462618168622093693423219674527784121570457581581346585560097853901373343762195216665025341691473795141071458052401896818474976764215123538007861911528676463408388112020522253688536378658673825830218084557135898123010690578118703685540046710311937614192153014485921449696942763049774294558478326884558924854905179502219695264347370582052560289164618366584919205609072542441891501492730613785682711269972205258794110886507983247240339602755155541477397897841812704358630645611004608832608154713135545885009864441208057020702152148236659591519228078209188794872248210090936889231343525891009241173521510731075117073362073504629185435061828108258538135849509733247810908009170404251706926597318772783177767086753589054456321998343618227116277566513941121971796896014175069429958302615645536943901480744783369070628342377334581427452224106831732965511683099499726210671651661847833043275069107450831080244828862033311542876592756190763370012583233023338732279026406763146634483105936747045177139025826260314859073025913119819053368177641984636649847562645560860610530038066948096750826391507658865642099598605290747079780106174603262948293495483151811530322936127603142452614701568764282312827627797306192343304969848062626789105069536294104867418650572251658686079728994231515423287635137759022784846912316797718828828138815188694715132889844614469344168721530295957700697661170614766301369752643384032322185976826578234862811045697106470979542323313274611724174304988219133555689618221653587017251103491656646753857244488648235293752288418983331314841544433066630572674032211257709826685132380624187096667222349013464232117297158733190313980355822238114097880600142821524439926341856047637564065379509271354768306633538155391024051223815196316500142894320442797009833874016934160906512679752010378775586230816605795472079782499475349584535720410431112221898704275976226752779566332168377201618140787256361553222691415677320783853231593002208608744342391479041832707440661760956339176902645841389571380646150325569922122235675013834896599642387021159101459280182659462492439753401774973476714948328313142183376607007385398099011404818533785982805053936234593892092956338304785537588473518921823292635260740510445388800805708915565590603976844685696056366126188516333341966077275602691848179987446481415577515821286174790623777485598582694715454137681040486958814071092342356550405183113222575910986826240162440422943760936759633851574152266422009985116080265327479070550129949908990244490095343732176344083660307845425757616137471854819221452981106028720996627372609546797258979879479860812984913157962031609792378042930019343976041454699390636398868478315961559297211030788568585484995537225394659281016876006253044806868339952364206882012800755991714024461977433483863654138322589162192516472871597360554882954838956900509126523615342810717248604172704910359086530764200536156224308889461563655566926212213046380857184793307088564686941782805232401651871388382958967574545350877407226940884118982456467222171555164760746289136984005228911221460062343878457979627233699184265741373383877176228150891945850411466498419792131828955373063142334892074296809805319914929734099240289018954049991359375386103749732133624603660688720160814841374448766440359702072462540441295710657526716700009028787735552281285947984039432995746453218168878831225402369169628125243743300870141659529226758635697758426741803276275136359621083010200879099715414487108571956520149674652620707024301756307025190126202293163467610204063461412998929294811083116607306394583104893469157817425302636362808751669449740019749181597658176915501364627711288952495364510838142972388072626912660658317686306345392000341492951196611345046478236979483292677866616082183712445030684746645169944499241253391008420063721553360060642117355754439876864216867613190275106954233139264188900734291376173215764897655773975298092982987954117677390190486931221740893608672011010798190086745543845838338667146887355840449135321932255690381662142694712095595989707802800303525187250012092827118572072103984446440457035549973068253100849578311414615488481194391591059051720282574524312899136514517144663732434270196612000064331853501206705494266964105772375405499382798136719757940663316969424168791073589840045110525141168612120326490832558475750258837543530031121500432616415680558940275544644932418776447575862995994972610805800767561780025787230220521336457515898939089025478639495166371039974624187574997471713200235395031202563178736451308699413379762373997908630523779206211323198784266145186461063879757568625500044237401296544541854523820185610330897473931736205445737653979613422225276393641922939970057521294587015547114658199885781970122682911045142209084756333648189012899485519401770401117594868918969152603235008450721922624064656674507104768129612227179251381373562879559231421679659819080834487024429579674226900355921609306643076049102993062106552987298829263792333386815834441289015380546646641166014964927267891551471776911585125278977122486503293034276218343095965620336497863238348473231554722202805564500589552705479875515531069939098259931657438605167347688341467897102174383709526743270159555163150638415017630080434686679898715863841344656401343199384758537752131804114443627514962991397539455407941034158703988040849900944857334489379819312879986709999453645238657666951328940477665116735774091162617454436684750007880383439373180229405087158011797034808866624826485053428925871902869601914311105442383431015312973401944916698225306097596306322591046586092093565735517846435072539644851839067017310945985149158494083716426729014932494861211976748662503312736853001105633603655126280090946779948206276826659229662109375685719932194894596009095303193121191375801823241524118671057087001747753445550847907622285475422896013965709456843741700037771651407012191423402177322806060076258168136084418905981676414729053851916838989307374651075075451525147548036051655762600094632802946016518714971297342090349167604190256298800639742245420759251656588863743508568238842807286658291379230495170085628429565710916353067823712440813370620586950962405814700043147851480251290125751776849162498801068187185698992656355466964686834666574121215001131566929151112956353234053723975568529472863378512070718261853321765810672328569081373147178261479369702977493990293047635706014162512190289439099526232877285865873539274511444271242038711012609816343430627470031056834658430127567474732366805121494977306565562148447540974659785461186304040172598823570756966690949909651493232363000287723953144322846032178965185615904422594273798785055980587784755636475911980855091080576458323563466760193676220541216306341014522206222045032788333523208878534845957850822042873133229297068943204727789085487619324367696623933901174249461694715073638830063870128355244282998347402788689221656168475489420835849955011136165775471446719694867315469741858153735511462646809034097847821484008056598350993047630189404728232675669697865849533610134271603620432495435188622413613376951716499253237062931703703774409673504758417407092199277146368817552301681101075562241809794014557503689222040064323052242481323200345283324148648208936306011789015970093382550836245278407581302330316858141063419806138484781407450345564398616373049910217180274621828089361014393265305320095067664422787081865085288174730018806386465812476802834425784736356122106442945620002883803823613671797794371205259023447750435159660744062639946776469092480229241902621247061633993734956348537637812268797630101407584153927516346241758564142786039019372307918645710183679940059397563795413805331369959379155235495470164212995050581124235106403856267097163268283011521039782116658037817646242665664043529458438978179823532300039517411515385258063987465332652974340796363361408297832318801140398932356395898252395211852962449964824323354729824106695191707311467507552221586699410594201037649641768829684889419252713025425246619978877458732067502410134211630071174652288021117453869028600115526000791904538718351028500079134193395110349332482183771351568164424744240502500361531087485182695263210303955521934919377628819190434403888627296676935459856003844246426938007039642398113191689448186951281230871890374505383981942724300996095395526682197040548491530852446756482711287946902034640267934579717365991391309412454907890044948000071000964324906785927859875360684321062416861312701729839394559311590268775100978926802937959290165259099792649026266008303270109188898881439215798622072085552216920048966216070779207482375794474780404971313202345865578956550771243677672916349578007868472683097074228334367935575891606603786821490959162718487465356429626314276237156032206540814043407363206173943156896048488254935063669681873027910615567952818611419349220806216375163083003312673120972397154234720069540323715801629626949735560858459206015704695835713661463025261701170561471955706598804982107280405694875992940197479656270118433732993639686116099387545717939562139959615931957470986092130005996077187442922325784993871932981873810742116633274120911514967410332085178177359622988024114501373521219586434045753671861409176126760399920782369189837016977737954605078023317081835430702000401388104417973321518306690831991453957923565974881469568492463346026889390900274590088488734299840779980583589095000975868426368311803718877455874384953752387356621549167937550825059306252680054881526135020163035991616307557993560034560422256066888914694526832088385328625892129107503422908464973724436490002828118252164268110786846276899097961824597012260492253555951649423608743835507410730968402952031528046519046685719700419728634433511068626804143894567490248610065466369872192102929545931664696938590148341283550060951165212032201645811813980249114558099433278595298294578285944911926336259053949610222892574924624981591350462328340083175105454585795234074882055731211692081494204284310800934970754816534607848551765293579747698245187640152528733958225408275737162953572340874466236038193620588974099652927850575294041770666760336226140692036367767876827175935581962762663251758654601096100411187768612944913751501408465877336701139358087104515625040433084555193957248296111778947221291852852043724358482659666670911721081496397388728488525685430121009504252759149472341895882374566706424731676585119427945683010536907262415768457669378818451115247788276293895382651683825467485513359355830420354804109744985280107971249401209852540456832911131253888519663907906734573514562928113267160291596975481575509274548519786945836372084516888943226451039878418815492666777261275313603362796426898417883708640622394441616775567518699529372764602683689564188212964224298239671730895770838698701333707965714943788742593720215571906912842870675853853103997993405303780633718110076744078593127712503573859830828758395306584083516183331480692507659441630317812644976405082963909695622147837793266105894989544743391602019732360647000165659920752068145311426436980029332978433524646436445859355845577977074386999944886309284992358702696984070553716294487295021262061234504967989580508572488686548615577487821902891730483037909536240110508047291662834373702226018499418583329107986527003476486720704809539480252124391303577358139525671345923782096223175498845348640162285042970458769325554765097279583515495388018797404426471846933627705837142897191977490439712129230257517243361755531806574032780831744166038335869154037547119821074027647820545508358137631617780004597179063242427226578164071844476106505896684750841481994004686265248606468220560524311429755433239492638124457962819865599806690512599326356269364416994890575639735562462252128348457070963832050282611409029565866259778556547412647830254027767071419439196214260721660429654109112024722479707260870183319611372154183193693909031240318320816361637393620715098313273426064920778232465559190924059487287360057461284483824669246444888655864890710737324546008019414033891613473304575419996697017287260599065650697762007718182181792407527064609775855443447185265497079563285741158789272605665995408084544747464213542000543832316303396207948159225518754372821683012723774961413074664054893319820992987747763080088971842083667568613957453278116266203093051445727676227086387723198152606232916249619187864510692813053031233060282231090496697772239936596826296557604613043324504850007142076218664553220558244040025878365176464865067904120619022688302065043641618312950446909466633530664310338410295002008245987034452150837202802177286932064280964854788986240712241811242855539905527590875814528382397498725025714207428472383754059814651240134615300346225269930232403093688566758650061380482025002075026878363810729270729157478616740572153321563559993108748022180438145769671722943585999253621307320630331111286353070642836188406469770911222849276768845336000485250369551886888049976106845390094107235870618341023884657437242818787322825628201444377047179410433264327527328642417540233428801486448758617913361694043544863632848212008805922780418723128748388030003390166184001675779632530905037468150558873401483149230694848053097781024455857344227313885781146811817146237864327562547655872329223985094522670277512996274257770774702160861376033243266237160034597452490257784040225112339010834048788641601639191292744722112419018793558098352902509303072565391326839449043592943889738712599625547479478162337741087072785864793685585476581752762680289353855822602648093202592071220071156471466199750702903062272994448523649252059398604699430366179797991310864602531980120148757378879512043514434353183615889939624638846668456802511819206507520129678006132167989065328796355017695357902824495605230140321690730817414633141269443069247820913769698215445112211622156886466231188235349373084656584052516756932784743482889019767500649779872301415601207935922345070321255861268251018980192371694962669231142702855826108794547885987344816618842161299340228716245969455041967574112215386727717431898530884810057421649539621833538352437341066930197990603556818257289830577319249692649406271052994013199340856815727930280058885479830214790252223515827848224932018381512280527720506747329016733235180069672574419885177437822079753469245949509522158057529762436376063966175982569113884601936167040506605330965270977361411236683916908478094375267093243658376397258310158119092371732124036322885367550229700730148488458695289233587295282043282259192852532765412128911742375019388828415755664546606202716760221400403320124866037135259329594385168184210801995658457994090929204351637791800075559792098485724103802911213853113945342491340664862916323120679210246957514065707507387810150232711126432560041643737881168095066919800345986142407603691757537099846682318649212647011647616847162924874252420175789280276375823009608115149996128614041237282877622640221220398534379634833731109848203004685606815291228565145690957874358635045280915924296775389862415486569645700107507606955813536493230163234032784305143877711902034104393270156604288383593167992594771658098122477720931666172966736935571552803039516363544489807669947706162456333664696501321897188954861604707722019744350610511557128146594230848173510815796500683202038337708395483270098748770161185516654718815797768740355900376149121966647395995015976786968140218358572094933286308697077811076164788007712424144157939381950028103168509173287159971282462020887674539383398027752897407382376634507607006200507798071531489529609012160143957941068763962549187941478922148167881376810080622947877310331723890374007999758469573275987563495017390549052457187513215985411904043334364633143747420842869605392336613103455645996006889932181292872322087332927456752138523716083486334474093419407766329922249456654180979990470740074647381686280826313049350910312517266171709870681347992676731861038870293281989410610105376388041052047891679735848388278508046505598677068189165689102572176058659314236350375773149410887908480710935674533323952006152748443879459474020824196217298977741615154379483822168390541451448503798551845620552743956679102521145649573698295890925013675169443980811361400669717326884414376703586721439405910599524433490355809984679897652301484787241300766382265221190277079169371324971651583044433025722229609480575568039259535535462333859485669616639077025020452537436722267469404258342860925997026806503063098218063815772144773887210325374416514830303332625609005313132854575736952792351966158576630812049701570341048873856366509815032280451120005131252336809265787294793955932524356403273035384715300756087398780834129673893300604121726830411505507423028475444706012082423821824541858134341791811309014414689234489556194536006574641837983660185276713154172306168624241759140635879028996186967299124645319688875530076546255515419771981848653360467258938137818752424591340396864397945716610814531148281972934574911030368532884090168920844803071864455607701664355904895959019187100620374066650433797872620060433920553015736312100414480188839505237204979745850782170364722999184535308091473671916762728065951424257807471395607604673999139401222831007050479780592323652135689468393582975858972298365595590375137039649363923376384580087496113481855934047018186177636917137033104682381788629929638366119107051928532970629863620009146714518353875596133075401242576084885767658071256650901900143372117424638667265167849994114317978416370872999184315107988122138309426659799092588564883094043302388512777822434253785939180868489410496296110873954719925709181336163223643403235852546991202940167992929106211901300380111703836078442996247633175223369025909464322978703737286669149187422075771391794077795378766168028494528458886134442445338256888912476263602779639262103683084508125746988998021970399719582492344326123692182186699256498660448701581077551481859999410684287580138490719335494405366838492184629297417610960428795795728665979612832752484219889832200749197280707709229586780288302458462238557207585057968723699307359525062014460631714318933870276846566368677221282127586767527150030938157848696826887867980659895523328477335204216541086576379861082269847120533904852720388187635777371566161277617949418809042264830035548855103084917516642850062093403228577084249563637141505946664316793034670778022357035486288044818317337209181517534532835917105884379791924626520127022700799025972005052182005864024597673990476927699827732650157930914443010452227119001651773553909529713473307571183148893874765065708906317521175241574436809800011238388074422233500314338629823040575617315138639026671239558720812266417656557891691736229730908249795605627419503272202040536829623827024707772383830481995334918595199998517195298180977881314225373753539936849914912744727043026507158377786004467960236498442394600105997393014106008161575283595004328109339151949747774788343614547739483948659424052434877968527477354689861635371769794001474869295008810942299771589352827591809100126317345633353224208653324602840093083075553168404726841074231257267413109278665289862106112352762342990664117798468244253084958562000182421138682901477901165101059557211486216266354160787413727596948686470633145292978410456472641511174380040326510272773568776886325070567279230950716084954702470483993573684676621500448519018893410318713364030866316035961560932169765134944525106739301377614096961996759388698968294649805819058584574861167167805419630779875130855688580565883889038319157340288824989055092518302677131321817072292225753640093430729605160189762257488494436210296805591976961001708857138776611755479450277285043131139297215737298034222075175454924722181575020965921647735715102226897220750148051366059101849664695166172483846014273554680503996556999970225463754338855683507276071180118361235076115194595785814249010900262525278939484461685115979898804294751763360225422542940400294948025979669906936332990360879022932734378496765840306032568080333891383034791014861471006724309143844755189637480125582912859013352397190664895472985018750929351088644372361190244010072400253086785271268494809845029173003956226934412992613416101118220461798657504231464169997879839050773493719427318836185601841278045648292192801468704062687201188121756113941579086164438994192275568171812175177345899304877829589825428326813666608256299136732304740156700240576656044574380030456010188756653008439261860924500783605624583940139387899275481737715647196645083142740643906515351479594982631386974448241364959590070375628181999840122706425114163041377126941705079010674436377650552967392949102558690767557650072112935461944124445307765584354291903488370681005688533626359171335042213581735298194578643199141548952860873519646015943896294884592530621224902362303592917165532940623005632533714527925555950647204786765814053341606104953610573365962645470521836398312957296810945992725481207005639419819743928055335565410379992211142540988631522154737792921890192688802064288750880357337668865787925772598513626535289710038689988620939632810670680183169556954315429260784365186993435267389437064451435536093268949105576112678220864398067786538415880241216821229102580550364854988379555438351391520386702784333340419257581301623256819276803808706680188850545357588345176676300370433447505179274298927570459072361083353767338872402890169961757138177933547884917297675232306143137503111367508063717529866317215334140017972654478402042430846699851108120086109801128904073782881941012426762579790927683142812283101143606548799579731682554029813131502643525472822025613689327826394401385203107859483111159947113372206578699707477406581104941365182659180263571978094389114114211007413970780166733408163824745101516559040854256468106174139121436590017800944549696275765718521053103505322446913064439080553655148019331814153042502017264977796822623721023680300654230751570463263806307280662352210155214023309675157123727726141913363182736574635016084972497556920133306001244685579782057535168122135497453185020958960828251411520777376121989364513371672498727059361966666123745390323543464892745005187809128986003948515870089466244637689208698831518692430856362575355160510865329028910837653797804594698964665797077324632843695753353695239762716484791247324072093567751606597346011143008472408125531221778895474531271236125120570320536427516130535549212043412791830500735323015684302464402311084606458547101597560192611250835935057649295072677747423155034440704776220952659183490829048591516699828258732686572606996036657782721177438993859146438098180650904562938681053616593560596360098598592887260666248475630061408616117120624115445753928385275963754508598046423592218447230607806805590245244096041663090334880295947396788148405462474945618477923668981223282125376824393658904576439498281818448248090467675454817835225399046313366854251906650498652558800386690654151103440771513289423864755218969854201026363539706668027355307282411232825427465388278534315242999823938572404467727431162887727051835631604318937025820438378147186430222241441848016533647112682984163896682045239803441598785816280325683831170496922616830267241891360861409484872765341174158851921924759501257082609690026362890542311123343317231823227280161908138539624866883122414260240548471134919604409750455225308750345716833025333142063084026668440200117755542283322618942818207549642387351515365192035997296709626950463028622778980489152265892880944442714769774847632743727856751643515584310935802676377330297138641017994868273052158987265439409895774673256525661027157673277160415880462025071175131151816904776111396372749293821701008147911345460992265261271204255588294211917343637736940042523973838105058496701879332725145111411543200125233050817042467954127513821578275612614284427721276594149355044989778307191718114156892339335038670260947719787682384086569437067309665256064139996771123641082867341989435455353382500111382839451923381404365182834031701549984783741182551607717872770647753346277238274292469599211440257217729834440082116549074712522141145002700770419899668869687272777650244406657038936085559367391599385505925149885629887546146141547566037101725410073859556655020942236596517750138204452177151396328990884984347402768704373367023923677162936549203375918443616630408519022120509772522728540849901170206967015680320234510657304590911273272027738803248087351515481460695815933230300944747095816068165453883766977267824366456460161844440473646659878300976113891874295298908049134793398790058925902387195896732031491870628265487240471801624977114582179218230945709859865818347912859552161471286386046641299398489289893201849973659388775668428274134290287965939517455858676206543789066202522161162298977500151894108564669875733365582289951424600996022787495241579039281436647378490191365294430547120299151390450519302511183441161938890604148879013948585769118616625245131417852740240844122040787040127760471498200079101936382258086522021055103569300236067040084525209210631761752091022746143332436249190547077181801326233070528034533450134908422148204906156731039487559512899860692243111754884148897500967230218695836343901967431779963696835165458596684691300941699332391378231959474312910839349395260243442318894808685127930163432887300454927831744600797433460485807683428392095430557276783726365153154994680016633518439589537669845495105181049235506548879839561397806117002791021255288357238536205623661897523655805633784955717575295846317781758858824523017211298882618441708064517816547702507717339326701148516499663578880080896714331121277503396556235943737349487575216689713689719442490540222923126040071061332649637537445587708991965579610731803727495077061407835373009886990491861956913843062283035180687935516944822864508623975445798218557914214867031632832604438912023559305364137741869032835674286383901019927525034088181653634561735345094413378277157228825597484779635980394403406103426812092667217959689271984231464143690269010224815049348428345503458091221948721412725949306526493236094005471146881804521176083335801591899537147796315108306862339225278579660313504019109296733944760064268210568042252995887008719438546270010236846006954540476742130129866203296800631876217638149640671961938027933919262578946601640401247692623872100470337232360446399829452931030199987116965790838646825834933598388719705284099205927472679149650228593697844150321959512447252894328723335572982161421274638376739477979877999317694694005982447295468449361348414371626904711513420712184983743353657714636885350767028578082879818137945522685421763742403273064674983180963857685203834190419482711494146012844238177783664173469412016928647850562710935065508669378303057534657410837097874618970771069521493893176347657404704982809412679043352805386358592411636475278726121739794139354742596808654751026121643347822840570421381791733223976429769348563036082142594715304622045317746114215223863725545809577761375950190258453587823892173780897409395824494871250714679777074017924551818057768163069615641157131639755415833366623516572261027143642334906193004771449992513817621417328855488218804531287902423184005019399652265561940865200013443588638485924828891361020388049099267013872898830060659560023717516703876737819771723115177725822043988449111361577944630306211046199699090603151653523672931292424241903383205612161876457974814832538224247726020009078242370685108424814184274082999184386411361178919569187789792821262090858389937949157067493107217278141714732932033904177297421736889839562354090601759427998705077296474792718254482762223452188565234116826513256425958100274043108787442714613972402914320253622180361149420846124494257045020342724131362894596895563774620976253792381242436520917084278092729076689607788148822039602378898394068113745758957985040575718098210513576036426219820710201124162193110812635612708986027657267470998765968148608780083866673107415920741925599994421523398966033457699515697554940421137422450127384887098339459786537309707573573188232920532483300008712034760225539081003542771613668201040654346047928420238033339819124051988240625204724180334891491835825141697328960727445386934173741476240842757289015209930765599074056642606960032772427916018164175248158323402179831406721134208530609700409996829533763306310628789198010486855174374974302522338587880901080159649345481589631108328415620972321596944046848758477104553881856438822002744448565901326576409396933352403803525331055336393596590800580547770419308498577977400639247092508750599716745927532865357918220059902274366968254691180599268900945597301383801728524943475419427063686096757719312548903287118217069679576793170494158654159505885116806552170662338893791174861246873702642946607951695148414551194180044849247059752443205145495511274498345871887090066816534108866619969931040361789382240408883526597343170948811857667973002194934215440280314296949046041679318518404222777912821687820083986541664265354359607220546857804449332207230858277429710903274218938970588311885481562337765394918967641843895460639075325272204035327280838889197881365683387724414294666598082040913879875565948275205164184128048302149145417520719435593090528599520747702306141539727913382563603648433522124232604054164586494968202867510652620021970704847303872519366253240323702705472719506546595852673887482435456462619149538914581370781566438228208614224986526962999818565109115349681526371520610862629819361865129883588957034925289871235213958381405011014292833886137983007673611622103068945647561543562434982759181018687246943554585567509625353571054946937057994145410181250876947982290018930165830869504327194625713510220432397406068167530472708937410216319011461824446536782461310964587932383144750314943852613777352989614221181772738519571422113848016566763229257845360313070425659478257870498386546962497286603050077674104135273145743735756394192369156407239363932825628922347458700990246100285128797183017068818667219419662734516562023539475005909231635958685937109000034726383365510068435403113786754244492963421632755198772253572155333740924693132615852418253503167629998013304417712330573200440612604162861894598749615939993033574715315732580349055867835496362098824652699587681213362443192680727403838500030030854479751466694988267453669164029148007012286585353507145926448691991936566625359725764776874687070465473988531329221626958412746259988892406904069728795322863243325400520810393579029532845126754651666978900296130469282095918037814324675478800499426324760523205286023996674147955795121331689299649559370091096463083382874665112456564261485866359434537298081278704948394396631773026733136893929934013774767777802150215698110085252970609680741058290063459951942639831709328946023137275748291038311692699158561493519271440374496699827715443698674778447096979557516595455002392306083286180136759586614926109251368705704059031222181469532159068914667614871048196973960922186422198193289568039328981410299892921052135046065051340748240824989235820115509497702171331827655246511019867969420637513431527306902743509137935548211569272862838703780862883099825978866819295432944784298316549725897657283154949614757138765029108398326592201222463531113168590334963848180741588050132567180217489618562942267211096916768808851286056399531936712843206275475378897454617700658863303364861877477450645678963934470433217848419632357383213821964500794444776186633118050232147358533427271837795301569591513987728204063590026849160749893351756362844770895428422262616368610095503077393899706726347230324633512865388543973554195219256241428445640803238388490220450141461256962377815762685994671165964366938549463251970011181520197602099759428068230511320725877470228768329117164913777273372219202155844036175256681251963737670308810641748254534884503277031227686927787042374010874327162041699622870820238679838261094288947352330266874861078492230469307835096337396319261988515025803111480446420741952421010421646844054501536088710277354294298454132516795642192994690698201524471334627668717207700580999225772230476634959773657017887777613327007152174702994005072123520019096738826178870038721749431059722830954952222806586001626620102140554071566425545440584946316782536679064776703615603189223687225490357768596691749557689612115244678332319066568883622755267702801143094319385560053252767914898849982771074716448681676127902289888137038643037511908332712347779390595474910388936198543974222636681410725485599093849847872285528725643864933887858261089607603361976704904012756152265566967587407667929955312344625228483742170822705984183100811672616829156150298182443222123058820500947418594404302457322782240584659248619768641647473065227347233448022058608362776946781429437587406431352256280474424814861443542406248596536874237067418142381421313825911470698231101919098245705538286530414865751450387269534305960344898561727869675981336950333357611512372313360090192070508929576302709696952732085996787113147105904857532216457404165025583790998433848724463706758332067720214118898155204622118051282091704491453741684988129828575822774169544178582759655741505064628180629086172603209359066408027069755960326406659128697774173128678976794846809540166365967096551615664734076136802272583787092482932139494260493657095231823007903784727429292237493843480619964759628275320506401195907811559164962110597870028006564867041365185166915784996462638550215110420088322553242810371525968201096469333117772994182929043074138310488454756032346871041508637510068264011867670130923205964762950640329812397202107678520970885174973042592035179734253726138328459646461046529780295070550252839499626005887872155878230906407911101821928264304589606458963858945380512433883607922319066457018936012704797333848384483026450068374330582305030188566546934865306539616592827416352550509998177225035433705188667492823535367726545947407502387862310974812220898358876205239398350730270380604309941861454797213034603750999224838822464050072955312829643479205723030805895349379689416672086525186804401218047746355194401367428582489142261678343683797415569053082236011400205861325826728317876724826150083432515216053179722766233543887433321573557499357921426034283121254672022657720924151483885728743884649762018179317586916816836518471788110823289184365201161322816401531217934455269529838311017141959345147971641182915600404020399952722514749804849307590968057927254680996158932367994655558781893503285826065041544920345663400194191043192108558535723788462551357509853974177660893094180323850785169190873389971578466943733629188640954174607251648018551658076011020984396862205138486004980249383684398419734748796412347161937445370113914394705897805708298013579586104171355997740745853477321538602709761876905124729146591931579305589789176375553858154792587476261288924617769424537233230925229027214040347759375145293998807446250483081449309702753058551874185501715803026152778137127341765568894065835047995114982843716819575553422369232918868150327737740260268624496796237261610850403355914117531978865997085218712342085790558905525265796355359874727423389097530090581416606219800725047975911158887793291241268370974311434162411242276568710638837887946691773442071519156835197804769670447868872987986383061097533726897393722836188907588558290793695169094000924216708800265434674793734060604174505333297040141994472135173746455363749068877705074896620185862959347310808646762144169652887154307324194231323122119781087258306365030761705009426141912113616619701138790574081550459075396879624404220228641505535965385658108196793580072923930272514886194695151492459644227796639015740170741207209529974815264551965880330404470183978029778151263355503758382827595103245400317258867523162321764382816533196791729249159097523675499254306014546944582376505502086651094344608563201336997284722489282679337342438396374816180547596126028242271523661973894629524557909159448207947717916523624099902898621325227052956785842728175450726561379322664399499365780759031148410915508190207625531579044900636980634834343481365573935589754287990968339364584345377605724172093283526717955663815024614877300368920373289233305236542677009600458888634773179420024730306203649735137600017166969924337743271285899155189207117793927826258853436987221955980274376830194020939370338300526550346504674574002191842376664261548063689101406860529494813061705932338163497037129604336335872770694491198309811007903883619004607078787296783707749397976825227977207103008526375532867461249626839076106468994168752217578969162316020314898543542134405868981908609330631870134520707776535998079529253715304751444869788328532820513283538000286981685508966781538048490503568875443386203172434899129904897842593276200886105174128271268957824398479570366166015820271164415028486025531111176741538364082295648387989855584141898794882818906494475678517528667761345404405804740140728316712027954292651837587966737415968417181443517323738584546672512033545453670780156351743751065338784096988816147989348793255335461517101806097059464194725888904100074151238350701243398687611934091349254782854713291350307726596940471636258483723448797962718580774624956678358034489013771078625023408841403257072568571529345200830067866198551932217489347674376086330550223019220352218544557481475154482144658384054432607068207623002275201876364705449102895197944929152446708070122859136249965662789352893756401242192338285307237017455291757394920399141011794714897551642777915445425217790424759708036718408450154227229650322991768680816468915560545560743385917729498650551499676689471072524417786920957932031277828671420984749914074876047874879621453266048887003030950133037359076216682507513268916873696950208348313843440622521145647290219416389213260499363343851423955126504441609778696832237645432362451704262104860071437529699476511383621785181284202733251405124689849575667596767373879814452054599041116167257677405596076183745418694159416667763874658708071760726055101187420875641460658249823766103801833262137675597298154549573287488774858647794495692284315266934073106838477163216014216622560710482749490345139832897926395401434503279998640921412124321309919141648191744924983792361244077650114034293214568236126584406614611846422083014185786589861592372991888157629138619052461898983718128688533029901765061149443176183442520064709619984803954612547593825844759194700430209548996402282575300674887989501652586272805726953385742153824092942382813143676261147972532463589585075345128694404963177182813672095219891492034561709242371290963546047760034693484123682748728278240482525174697138862775456453189627290380744634455678360277731488567101227492941887312435729978336046344673524300270248280477437455306017842580081132739591652105819932260249827540221962234258186641822417546310122690486238636467815296908696340983906119720990868653383951358777067489808497308689965032541186399028285703558479371415791167932972653246648567446006685791085416455916155007538306534606715973508397015877638042850041974153419221177008156876967636665686871129200283543972419794101131722339401886750691557304483589783001721735787807167070056505501962931489555203354709519847679927269224625864058594365543435741272086572747268714539769823698540826940067921368045827887038103878912263019717457514587415284152193747645138500191792053581702125779628191008919111753028244280093641719276744115519204924358184957584947318779029176126767962642634361489930655824827375693580437105485289910034931409573872675772072332435822603333201128855048979142820078234840030327826156505952322813548229551025249992026487755790214805615470120088010573536723530065883407765265090616774261674699311357516242636189346159188129493075262387868674459752186360509199204186510643705233014147230140425827151126576716421787574394555159384711652951853002724882292585019137017280080643822791403814799940336865376413827811606030073237805019267603795379956208797860358470690420922401600606125837205410734467945191074862120418963397956076757270850343336255322526455772400478991691379435639935176360051920869375342536595393860055864267567603145927208537865571170391033787180981659476273437191975106385052658416712323582948067918461604827163673429947073825243604652387281034298261905683838921657188071741670146042787219326738738623798929917973800660385102984497503891135377061131394924671287485314974159725220437852096763063217377112389927733798334333524604905858385234050449542050986114798203365162555646476586164056131685208220329409558836695685410024171587004086152392751833848683646482420205821809773093136599611055490912339444483281916149950267248364349620950200359949172693432992801099013116436686526323393875613954751913626162635382247428944252152140210497395732113818763288111893735719676318132404575766264700410206081633230849961153208991117158243682599002694212946667898612145163741865975016302964352754869163129438226781660699900118873542407773312930801124828087194654090381107648559217021838159356434144341103592522532429846231974600806276968096675202736397497914000504795424119844284135510648799055533098081320067465645966350972382174227177679200605413457804094508317809017148661317351475980779117631674200231357549455591967109232665461214084899464866696083461085510184326239248532558821338671616733341119988215928254167395676237349289019247574882423344599843216825646395648967128625232765933402878023034490048558644521069025912468322054915192071370313417161461790635929491864876468293297332016923872273788710360810683097750631181368442139417617692857645916200949308132904979570346592104268567924728206136830687536202571531498182998925572222940279715004093412738406433180226425902683374188757476474244950734340400367899374936276074141847310152414864873648808464343819618629872039005341282873105040776850627600135802656579037371714788130548703437614958018111867738435633626750975865214552525496659606050491027467160213035129297229400615463885731419658286208172392514726692793264090062741146503446574182827367049937554834593602743035410528050146942257807440432566558360152630597656291732168473798408598621713350146545494062893650022743642355607223951491076107546395003846296493366759473790100773367217914818673483138355586160405836758148415209939864310579528297566160830753214811228216986284668337844351794314443275531801149279606135581344961479894885566403228998207352456326154031514785111591686276184738945850623650257030737548411248326252859539078428209699605360955070816196949465754475028675771031782616355875148319252664040288041703701142232987314299798848643084226250420620481281581578460359306892441880681828621690211690222774618543685011452519323093656208701758168565211502270173059737958750882648132491825165426789760536580968835979419383400009300445067175801826225116492967373823111015913155793512719905933770061692675604022477736979769746903827683324334993085029439627555467787067534366511846976136509043364799289819378006656569701686703921266080229017593703430778711497359552236087802763121673619567180023614868133531237228982956714163208895335646223631736669849006711304412110058451236428615053098325181725693934804307984651941394775531434676100984731423084272992869301563024438185224953614126223907199683524667856442953096627193014019108780055884074576063944541240922978910687063600620547249469637062920393335358646190109993983160008029285311833009917230463698335886921370464659289129989836673074651512108536111701105530965162780091565936564136511939706085578102408942944636334336976154311440269656217329367299672046581637292852219107673710996732960918638328261766279579551025885583670011428944078881070680629325104197645740384178025059312365474542597707398565126382523830011673075344529092079648410601097546520227634514988442450639193895019095591917185397342009873713711770576476905252097579576491126399522105576602941723845440156174665745679111390052147133375194543373768977086214129637373188605721506523660099404151613532487454371849069487907357997933687085181851697760442905704498056661138638875338784952111397878306439976317041181376685589981534446255434566917245931799543632577371767107728718150947745260465194856180156277600218018996343353608556102471875342924720221122885107287794203673490913300141379679411931236622249896328759381920216293003762219247555209368731461115135787812976607702948768692605585390889566979278668246591982655688132278259194835389778821440361722649419526912170234058784137120879412342824230243532926810431623453357695658818392477038206083663828457114666534344129005103713067737372053924858768869899963035221256396699864439309867339783812822164203415621973822317367215028316079263179730190814957759564884725931792133214132073391851342783013199819256076120671433677503345603574878423857972548990822417400106960113264388010152843855734404609305791458581151400418167608345072726892705985180653610313376095279100240934145556135765912869602814121701019891738683501315732327353647463740473726089900023460241004471697587494993362381465101600810847258606544274195591698667740162777120555058365531546599329295727708522941779467450101743497926434863667109652689621422357287419431600929999837491598462307118370710714829903069232105226152460488573649024208442227439109644148869753556306940355489883622264116648396159849236792396913644559153812274273357524723343851868181479895268354041037538765406479455953316442148777308013204311958290563831287103457923443422838643354240079499289806368520797243640716667839019311009348035380818415114782377034654772522117729798315840183792158590400632549691945548712968321574588226827174485773182766773174345850275468687784338042919258830613912503716692787641236095146563913543663728635351694390664082783695871290444405048131287206647618471662113170798752560612235359218490619608291191804077784527838145969477243486700855606034491670982438369441151723627275906622108121386141199829313557394611739005977896658063272738445546383416308990769172188712652828373444752984050403188471987028050193730128173781258333859125377454530075660313358070948807397971331563274866284017692450050952127902844388834468068350613359410217604517602998569386343522700234737658047441284353530634763112647167007677038554369477284004010018808982616512485181409303508650469614969717877455453285648068648348521301030450697873310279815826906535421535645174222980154979445033159152569587663749435172358841657198563878035650946267095893283737340611086643879901780020153872505387684278483935518395752608230518387905028551656124783192843659818682984659201552856157634862528225676305529805991407410501266249233099056045403272926699845351551753098486053462020654197762700973832660358337006483215179687520142811108139546642926542080521391999715977489770242865666366938360721094128575608077930237203617655792648746749010556804773601121869536659579543413187984049670606118736316430998139280442961898188449882970918629955210815097811060226766858380657085952999207103509305866700959559066924996798280353857326397535919564580871810504377983055438589074141025208188639161005294784126870671865398295662101740818563445781461577822971694263410198296468946991445879377221264211993001856185066761405742471117926353467155610042279267412819048407911247587837666946640175491485527147133274825164227519921042187530176514639026932574627525606093489394913174483546856605324214353571282136123403581798788155982705825184465497134969711599706014477999841821237996289428958653935244885480822071082232165414591508446211839028973082399731391448916479095435712864699178556568167191241110119469933569663308795068755479886120981718092278817570232021645974973010817642937028383327348157870806622105359189735524537054286054054267324300716371196539261555214106833301203969034275404441340454258909859591137020946493788060816181256833815775720323936247559221318651369203871146576318540806521316255774233210478637517187520531800821820021486397140436029121942771756749071357285457629969110802977968689688243062372354166404131499229712776134009995975282205958836106389765926112249860515595505452094005448845018035839195843724461737378628133713563895868863811589066119257067417124537223040032975020548851695978296847922982984913440051993650963777444158128098441375801139715930554060122168365628421888326479751196638943161129619824027653771217941380870395658691502926915443923172408348099125741806447378348243495681102900245760274851630582351407447873717135116875751381615225951790634775257757237993781694275702346258853035268556654974143939540051501336289424103634343750967545337665203759734773565869675612782594431206815156187294625250235802163754401809279955160044860880731935837120197241511300085515916269226395335688277622192631614871713602821219042820145556947131955739175296716739133819811283810562311331239793366465691832532419081040579376388364957671215679058031230365515448543385022687902178547737420611538116111527064390181993239974841227774246127203313238656493382945392826862804207787801203371761436069997982006875528482043379104279913444649353905249147531998084306500616242785116192850291834037582024607199627213335236092758361183055087376564714406199720293936049603592233466641806379769110313148721818634999679258061537781735716178959862087272778988672850443603305747138004744412157408094023451276531508826996760496813976193296871628669203103786078339235944394585810520450120720929238411999219847509185035628070646553226012978690701630995880488047281686448386191900350689302405910351621112457656208629948493896766430884365920271102245807710449768948125411603274244351402568339397414504059732003589734164386957391276065814386864778223468600883846741495695797906091337042785214746768765724830571596083820082061305179350725209902393529321947802570145725188325046146133116163056764736822577190741687157151231299858935542229714705159246596234369097123578956361035770219025979360172061653449966255746928018008104822896712395580964169723605737783116585357600037512115050992639855990685785097302769698103359168205486695686300710628958211591977593739545363020851428297733854162959047140967091762689101797293442598855003533444621892074438887004487608157089613157289228076011690195078204871908906198170961271933199884087135140513014672908236052836777947302172464535487470213928606799200823474354042015220622859178479121171786825741568037879258619901320021187775685526502469582611895229331981238238639373083990270208762381254724937321659060670569898737732274857216696840222155383961062189225649415001203037999734865307117554833924439099512628153207651404703624972408939792787213203532661545730358430351648622691826549636943343503431170223799107236443721116501904289055352139971959930527728873828768562403086219253861799488696269491422336528939992665660999804515650436508006410809116679116378039103666254719248284311375326254817387934778128775612710039222922677527302285413120624279140248683340082576047274998500004461312556665185528930705267360885644953085621110191512424170335079546923473187085378019099663477061493471822727922043856916368506334584135760377518523995042112220973538897029711605889095604229069918388814852550031841209979388857685305857525442285391500882438106827844399611587570343913930955888672387434739738133243001343879794801477423213231232400223045008387927717694861446785524463305491781802807991787144536386779645114054368723369716537127925633032582562852130509579607388812507698199064616474955509540349460359321028325958875001582660874411537481011562091666254230799347091354473209345579326781572535998092722358081852442170719125865653125012784688916193012756324685676820833573240456199661992297655565303038821762325225222708862973775176260190171677383382790621432158342438491702253564338639801036297963474872382692499175623070666749321967961508893413457802742856441416179207112972728615215016374043812175920816923777965170168874977948876701869472488435625757705966972245619280516851778558783231786760021979121845699600467845394360660699133292839958460676486209119121187931675985866301582637471176110921136419200960400985952861616171451603400644503898252567009444368945390771416064977633270352564271432951167573743105417967238774928230967689877106317309530991614120240539280537937105535961192787322921837309306002242836843812127693470325214654338102171300815508471219655434568321720802726742257062502732894000987853015261454845320167903712133572758378512272643684840389470377909157358403845968772138603989370617227749648464557192575729053935442145754592369944172636661840313773049040764831799446097540238621230515695755650016444826014832379483034051142528873668049277384377439237113806153411849681959222096284605671891346188056573769377999183695732634044773561710629414711243580885916170402244134620581306325053172182534327767452130407339659773937594883835760975969837642045800664346050657909351817679327770211221715367849924825666187759773190475875494296862416905832499455039946051891138823815084997614024042833284155077139784197652055876249947811326593619973349799414790992393029784046886506767215306846125191600628586667733403662514535412119379216476588723402643566974672116597418332476769942819022424185807810410367221880447893231931695625218416430868777309297144914034585115428369753408082301623240159141180437995688086691654131904611627495424622684877172180370693639600756950665960322055168131306528072013331727034657745755056959729978195832211220621045373603011392346158043013544097440453503218873720513219288691926927318514524807277673677135765783063638962934799866023745181482265896541039816030216430750767437504127140372723599449065019970839621338038222200801131166919331947816387035354024786069309549649583617801479831455899216227150806854447796807762960128538496133043305012942702556928406161775033758913648695779838229571565242834231706985190444682541415605476102120969227274779311988385633332975547602232350700367277406163903302213127225139814551891319706736397252495309054945962310438546687013246191351307630314118553353104180425215704208429430807302421383751659131792374851868888965550030250578830166193478306372305438922869190507919494352152378476912311549776735388654307991533730818144828819411033187915403567200775958518712588250328018726349857575533089506124033988313334138796548398133735962849740299450882186732074300003779638506702436832375884421467114962889451401710042873640601912637885611991399731542545085962206642772558293838072989692650800912668785166033335397590929622363808960083298298404486664718024862488586377854937258943921002814808671339532335364525788909697108833410527471552881195962632714503678437997429612605063225279070857156378238755955025575386497978808564243022274905171766921284943874955701955421355199454223038237428067827625440391008455629500704709447066847188145927516139115737617901755737039042956817474324355033850050522319697085459552911793988208099187925341388970897019431444415793054432119560155506141690671351584248258074774310464278935595602456178595151628331920381551448519884605230412667185662103770303004152607411362579858172849113950014044608943702147035908475900785997274290162859193339873406269783244118814925999150348480864627526065358775590839514067513702638000196977953223774516799989872325785698219523806404844370741283536934338264583658257929693114247177309311034943136459622699504419902891695370532650484131896771510503910369248644461584977962690846260298515938148456689402937505621124052262556250294134526959920386557852887341015504234161791159951142855376471604135188249589261918498429903913144655800724888818633128959297431176778891535489449886890254514332842992865793383474673124923551431728483796952909417480180031891776978257665963505357249076991035498140050695713426848145142305971066039488144820325853046670595595223749094346481457137060284091296689589023679985287487727244669755380246734227339192139904726465587501213076188231045587419850951756107097786555732988158438602942634861235338924015528033637429591158052008759127980350302844814618750372032974874318623431375949009018460994490932057295350376054295294170012882446990912993030717694373739522211055059704645595088856913934687630380938992705277174368188624516323042973387442903902857972956042582540422588045213404506106047187869224757484433948985288558692695709359614403222250576215480472773798705348614032404434524672724716027000272046720552694201587702703030326183706445926546584571190875948436041600259543944764077305260186169744655181029531566886634325874499030354487919846273421246279896771344167038395524204640484067142231128215340711804314221470097979885701268894893017137807138594736911344013369164619664107622217788588474660824940946852471992558760337635733505823607871949793053947898800954528556354962204366245709176123371544785228221827060343601663692939080204058200876983364904239767743207275818978638678823598653813647636134276489502151717426976605831291310643712837582387173138359295411231081684110108913943483964989951150215812444772671626983084201759045497042622035696769356272543944639746920158637005307843505646860194543929934954504902720754563923762869445896829867427238747618103167403868295684522139051077317047902420639510235008954751711950371236246054988422477454235139255111137904193648664041692615917899182376480355386873931980870054776512011926653383121516832335263570777482124815920257003894196182410206322475080144267005587584452085837999224258778277506481204648699688859837962697085887799925716451189176814520925827526002288865541538847007103960314036301433676826017331647466785390982897928852123703022951778529499438540620181134885575187310029202304601469190272299612372287100966999286662001424447339366402889571799420487389048654158556740961064875399421531182222448202645013494175494345730660463721067970856412355914920073550132372199421694467247934815086882881203061693279666847610969866662469385736754028697410903645582244359783534064419528906325877210510851586587168176169039686234961801613607065875536050839694873219423014088152025678763098094458462832019239657688369230248578813828515605785874513158144902351057771254377731627597010052039755835451916268289450715815999770383906026570498725974779706039968087972064819312364642369298886876871023116974622546861914658270204053074350323287399771149642757037008674016788491148532842588440671462157558887603457860654590498156887807041602965586257525597642292964255875812851724895886867313756495425881106486162235401048035329104215683649713693113443666656256255902542699785716939689274721886180900821628505409325440346559959526071275791612510994380674771430178875337465040723577118688527140721306443897681214211495854970420819500414667142635304605037917297835355853510563283262954085295652064717904193949525649909110301462394412330739220875185428855153523805435714734042074653608972078915823380914262297265878921325856925806645573607284451141448655797361399615640161447257742083845373860885115634019670265909281546213977214398050889028510821488279193949011268444995514681668177705595579881565785058228349642867827508583262030470820485341891021452550853541486051114388968835569073823748459035107726235362388645905105776992596187698413781201726445505813710959795044997996788881632552571356055236252002734073319212490961766067021614852166880265365512449693779375095146880402529013398454729912012697039760439789153123689748274873542113969558268003823473563425003926668848624355670463704596034779184823511838163835421964137715392428956785203504386522458552432925240019418387670016909151660288195732672945837669260053024645916258215108358464486788461214830768907384305122853912179682870958767924283126010982400306764577651093577448573071221374689316030927946970733463786587747058182381584687490594902854989256873110144560764397253769839781918153961172676378829587038117420776041785947145709593440406687532602018741897534134611761051107788811070545268445337312393319163667360658955372128221256272036226373071665284097442780976505926464046228544383481100260511382983153354406373078447905175840390921505718175463045060490783176386595322520993514124620220475950915207937727405900420084970939876745881723593409680788003020551640671421275832670540420134683219583240073569983589182834020409533372659847195592339194555022313907162589910833362393238814796289460885640820531526001381826627813812260115859061025735856286917021856328881536499489636019314964339208293126781487297744678034378508965739808919657805589901018002411300439121209660068935365012333394900806509307529124704017061144328478280288961841849094646804321676171411070859397105373240150075228268423498489631643900448356148228729671798448831478491399586241359809388067589847365474747412429746576232454859833785242240844670041423360688493709307270721218065828300647047722501074547303607055470421339470969022881030451444018727594771166124445693964140262039173830827901373027068833105769652332772427590608756482546737814884474888265658380588861215730772941802383355691893427486725467714315982854511156376237089063474988868715859108070492330235313074400093626500414942405976556979930763321575349842199533913485956240840196369561836726676492575561047178940805081461544809460422549322305782144478630301294436312330911506734587815228520550643263153450832790988786758533490489853839382325192877181412014224807096704217869052450318077127196997982997265204719611602231802172650258724390276031101772951595266939342882305745273610716731874058475074511796614789408671373065587596186971140170072427054070937533532318293795725346069013725514384224716044261261729544963979165378249491961381517361307163105845186648101162319670712591665206675455098726046410746169089043360156166876618410005292645999832635565779444739968928827299709538684844736836455890056128266826711075878276523131931689332659716406465895526462001768964452805811927536879450569372631480732719257320491881717871326731433282223023585378767390113633036462678920184301363125779047302213696510463794197288672656676144979695703769889994030412499432459562640780772767709615552082354882288195787934636572171273551480419032414138295925826278725803373643092293292276692089129558412264528999214790086269676951594982838835074474548792729037268422698270153357038012012390618091299599310310470192861935517570824064262846834071334900352480587730416050582023972696620690340715875224459424058279063457810878616449131688650983513396661695970786211991648565808010664264477443819706146958709295714617992625786848780246171463428857262736323993654080674786373414669697348298805850688598899591426515856318739453943331886648326138768316471110994587993383558122536859654064379627282212310309830508170261600528854689238075260452604764019649360812603634177501065570923336819398310044305233491954655964429257562606192607221170240838457166984036645374502349276536648511555931853642716801315735872359241269504117806381152944500240719783799903848330784883839188973278510940590633052022566063234393794250069280875530893695315617316933822061538316285024232406409366752534330716262590953547314314812974081951145770442434442693456967288960334272990789205745359372479953850762135007563532878366782115129036869257888431248090796088288246944713932437416883591880736581367524926619413860767845978883010643680074227135873739446218972267187577404496045587390404981208466034754560338596819928116667936390995633088981411273187657776817207222102808765669263807268464095591026989102028090320943196412630267140519441220791660760281379420730932622639450517305229162132733002791605126075295314474619293610684699014133960669786930978919955798584940239682371543568406817581530404191136682422839562420942222903909361922518503079371850894612470561730840916809180185515537464213347882657227730616313015287728120884026979423714473565548268128257449425885954158690283362387043653089333284055462195294082723725206834401655719527910991493633343986670288257839531877037393697215564613926987106422478941895998081986380535558859845000361697866304335248052287514626120783408355638597646993328807132416279770380841959030512276739762146944852476496705280202128560313359144090745315733808151673129890646204188778548109314850917259926829901495166055685921092877210908781122451503055881927412340319807440515475254953284446846525684469366014771962081729556184566671236603751088755058145848530934067525824055208443205752417651019720752456846245639070756454501356123842075637827055110075301970911792614314031915516295831005455898322729075747065517417118921586942378294420193940804009043807282533262230334384645936239167483091843102642858983070620010083693825549456946426554847636456445872963566446544950993343253147787921683737493380361571029323953814300388684187914392188553849361348305094697766607199524025442456943925092434522702625424674579483107118724319139302352449998683589295273188038666114531235195766453162964279331984553392665709859814250742767642193027151893713342926415356459326353070377166217292571435539128603915464305229952977228356656609061732321781766485563771042119129182814827955101814239845885789247277121833071175015895892705689043184932684074896118611642240088639045888889689312263285764811071324600922118892458034241257189494092491396546183196141333179985586869567225634067858362074837788945992457379332457017028937095709854880130935292124800187739614996168809837151092906831118487986964701060440594704438099804517687258252297822109088074933610880163809967454234146097537041652973449816498982433288509167382044333700092901110589635793161078790316056326144935851142988002176629322846706602308615482339254031903100640716766959888687724543541897271045150190642842711395356720871442980226254915845368384036072428036907881251473091111469049245594800072789134761248667207391334326355963506565673212328217562783625516788810590967265301929713366339828608440894672871788443340567516638726341999293622703181740678740887237346560066525430329480147267306226682189006843315556298936825226242272926604259825411715048217527901087968650156238146457132689011081020265746489978685634661185766504452577927317221760451697629389063661159162824049467337330657748214291535446429902523534797552560565089776242521626388298724679547702986243057561906034938118735960347999484702467966457616332566070846534408190436172147476079014718688213647773122515959634496950619040235473802726724860029378111428037375963670953183459695640618443758778267901947642762486269468653273363814515831241298740801173345116907241735165150183806135140456708164792636194637815523966101274353874212264129548261015121788205920896682398226663093947189603051063658984216946956610427139026882831871740767788269304294343473416998498953249147826831858927322874365442634780424433654784963170619626024954376351521206024906793713669378781029824897637211117445396157277823887324507064189737720832458426458715323013801938961159494592253366420294830911617357124315644007338435643196821759015967779435375346237605942182702500282176277302996388475312828599045308412925390558029417656070249911374233224885595705925320966816547582165376049192230424907056311454515994982639693597166792901539761334543848928082857503226855662435825662195651740533777994097149679184138855405769452581072400542464264760721981790244819274622546672219402359503754089812213907504984431534829223089432074588528378724433401932826910662900429033264928933095892386035301397359779574140962539921909321272637312051209102942096442737317920245149788307811197766755876224206075684278566467174344112053217890950727581087563192587726270249329959525124424494833015135407316344754198650878683624901104207190261918933462498494489648003745315638237855873807135495789540124053645315223724482922079156933020643420814527955778251920805676999830676207466457772973880434985631577551500340735969581388699131437944513188967385413666647005764353299765231824085687511897090544679190479380396321572703973604000429931774925426211883028226834141228160663614042120185923183198228249517177244591306493587146127051132159667185824578105575870933285229634085688038258581858100302005521341950445160147083115796128156920652135357824164458764020415777563445498584470432828717932717559912642569480353487698692640239693117351518132301362796221265175513303743846772952485676345621954746388842879879001792052127994852048263125845935570732310703428132852949517729738405191334463215947068581054468795075588897183699242867526810780564169747615534316631571672075805538455866086187407072591000796335263240972054498157987389628406055414058429292811351699244410136734875807594071487417330386749408490915484457411885683914868362675933617191937192581686469989250305435389774894884898231233391211038965970976661566738583369244706697304168240421060642234135191746097939193621789746225938225955711471028877344628733996731721003746117394770581178631073287910399369630895010068995867217988899909779855153656978749714739831254105613654355515320256642971121177723245862681419287399745753426840739555676802080125850953303971849534004245070941074959723851484720520045972323275621802307321123171910475939371752773946959736667946626904688572474267066906606760672279474786418863129344944609857028000343191853089951442667479004897714434128154022057338200918252473025964108681494121902495261928468536513055726802752907057120886884526439260459980654832904440032430022649090383937263625882143841320769546412934931196631565831279147634737686207762891623931799249082790121870938194367680405189566721892265070116516049707161007024007006885886204964867417474686448529747748379125057765669128600118101810171428122117788108485416929302551275752702262509121716400649867086080699801701312569746590952974356006292571365645365262486849173113401662693175424867049303595746037962890998563034598359716407054287942158871263808279252285982548892395106993246053759521520776843209490188556134952360194436236912260161855353999877676509297417594077575129917170475377629912004079819797785399351299277295029746507937161338745180490413616842053047565953300866648328801317138875502997781502555413647459177870657086833665086705825393386631477364356515612713499768785966116161725493455624053974790346683729259839282249619768201122214667079622523141632583517849049372658358547173740585561669184264933877381539080346562754183946866188660386546187272485392500440887196603394863977537541236286329788831723547784161005738883751679845393605891318317381643181666907980842441073194077780091641396169884995576150084593697507455158483099410869141937206480461810376252690811755447067749615348814311366320835958527967998356606332739077573794691349020736440037255829398025798745658238123717363989446201305967815914365858987470034396859607385955994215352445878976642439244875608162768629423895202784118173540642476757949593098976198788470980514028704883520864069966174202700062889712500394581401800635130519878499880135265334508919122006855192915757861698969038715621318701939911096957625216245270663500367234148756133647176324704821184280096319090333930118015784903053199158478717666640955485402969703811881849771141270688638957038560043418902809615645612064184313641041486117728863931748820076314721393826794577186688334950427459898749441787437077753638741916848871804878373887646661068367820736076194849876058778060644783163798653011606545474404383898683397852420746427416312887074854358761385424404712622718344231027943477173553391556258035088260019511454952194903381471984667631432101575646551211031207719321298964640498954821301233731721917545464964207189946132509906091295406088030508427555685727397956189890125137185886597048195293259119271527369108345201106705515276561643219474491294493249708822441780523344086630222563358857555660270217725006227524560975292108359842480910252945340348698950064964292058811059192060485773050307694196499796018641788088995413527388716980983938976586943031861952601788511767857933892044559987835513105177481251388885682026206368983530528224058254636825597480460330335678037935991621073858843302796836584549046768444968109678578709786428167516729337812575441774512013468843741314701418486476809829746220789954635027658511580635161192269687541670286922504068120286337889948495613513230920624925046437665923987983835341909980347880230429851048205231519811168811326859078094992569387403099170428107594290298805186809135345003992956470694652822375853950604759494514342767340047493870478211915350407134068793045166651800794782425001469212432749060300574140372584181427781340516993219743359186658880825287721983165423133507203419486912880828165596659198755862515196477203943527034163841505125350294087624062055008508884060954358792439457776373279136286843345320780988883138826329047721151914630498800184404162102161126812065771772234861701284544067998804696180502189008549694001379337059805890978965469784252579364744724256881732617373033106374660165011816124583303342732264092859840352709198471394358172036068719923527116948346991729061543749436664164595382871369803512855825771889208929088684600787007905533423002229456666467598502220319028068079561197004527311551635520010355496604993865305053524196212529526257338631245159312847003557144084391418977335431359847151060846494386061023109589213067226614171123726776557799990980580481598206361269475023192979823546549809961444727928999178736053366532076908149808415007664469613612496437393977904131702638258613925813135397147797593740461590454899097431811994611612968369963709942222752887331183201480249935611566996610132393991799752039861066147520963031916066661234377323396122283359314974236370808878002745386630487321995396801104310153761588506987432947981504971510848881990123187282410977986642026671833078810618763728797807704461682271016653690441587875056987978407616049810176559948068194567696864043355812102106276927789365969465971874510387760403360479299369421778039145010035891353873498488778266607449381008322715995170223337405650703120604177234796233963972679906045260000970751528305207278401445457311271889926910684428636973073183395766020453457182751643944143930199091806305322197688735603910592743387437225637764702292362766244411804148541923114585597997860268247801509131415619120703129604300385243858078098211391452798046037104327489866442548127249238375244309655924846937624522926602307429424935420995170675623442949921617301072796507294816902844403411250327156491953124636231075795965238505364916797382737620385024941590802567885717917362534487296590243183634471961422709646498252865883141777226823482138538910288888136433802438486000537202400028093007557648109950031716938364118848475190062138915340081679177810870364484121975106562246548063893163552333752686309658753970161137043749679519074123139184845980074027163003773881824643061811173143184129980326081691741019329297830704819152855366735753289625067040686980212676242411193031596021747578638390596694704852426499897203517286620140050806532254975921346049554590225802435073775253851094596376877979818311675024189411820554957712261744259828743316552097043197174066458519029508753364488430377709516977162445210292414999839577036822718439870176833752214486554125678182858845097817796076857054634181078664356476362587611374752333904804447471481872177567050454635245843960807215757437615910018213447802174894283755094527707968040243722083612757931453079928656600296086267183747962410297818441906969234522385178441495822594490267323194096384896136074105094329575030815018589089763269421380920586434028630868416606507894201626258084714181892559247796729613431647122629856481816623291093418632427926658451335990944373696199385079856376178336581774533767809492895919387580329528201015383094421933116199143114311099540841686707702642181497656225813848936321955745549517459707580045409159777345879962424509290412940042766748057184765928669231965164640850525476970517930338459384216174822174739919177311670371319859335423459259200167998699969714108365337104095752813114463044862359084005056126287511240856286218049687986512377508523775281305448561187650523294946119774240526891565149945740515873706874621019660517197939049499159531907770455366725474264926629088656999641353613906919880002650515432057772166639664586891184954934876003454041750602456819887184261423092542112094290353063450550850624828054896798236592230724949486593892753977546130589786986008886193671726756108398650001142695703649969012462097131846402650828959857007065511216396440463607518552742397945468591257587159105337580692383182897071357836185014786796908101852794606309749514379729654353923918344669993954384953532719354053575018352046789717577235696126249924712034799454336251357616963769143632036147846566775541147832771976691058556664184132281831576237240322718541544902361670767493411392417663895629680524652175785030001108970992498500101444179465642269774959492752532462403571906400693552864075359410614794426968446007264875447525254136454339434688396824368395436469755085823572813681160953523611497635634119349034366165085548926631961424152299627225865639723221420942034839872766599386950031705111563187563722959959264195398855448143362180173640183334033099567545038297604950694337781098941198860391103525505320701659276471911267838315874286212025355438653329521943607509350672723286025038857538365119831661138592495998505090445184437600349442822551448696686420702564418811446894832106402047151406832968295073371343750925746179783420854723091360378638377693662515351959562909354425100930137423035126369805290451209517359172288133210323003828393931035739660640601160466847297929920981970167761260939261280117358455460090745119236063482917324396324813014893989778870207957234294608272665457727612991328638253826236270859740449452563519004549143661519065274650637391422665642992961528891571169599095102470663031655222651233353130200726303901929297094160835783777493480911301253700412616725832503531253647108879396823781531551312750926815248950936737626924051590505352156176381159671560844196721230115310160486054811804907040852821960179724533129566025302172852170198362370906926628656691093602432831368869574466924656916395880063039644329217000156217189916743895901644674978430798279349236349141290679120061572282531355824114046004973063509084531367401126799198777845979374957440297133363095466291396550419629776770444146759546842815709472171886045665937800730164241381220729347799050733234756505966417954719475980388207878222439794097274364724842993239058511899336144062143166628087489586968155570256581821691048746565743819731224320326822312795315206334785338400325784957966719359742124625007443482490660813151601652648183012650106660743556384086285879919959363464177597028248446720002531746809712221903575860209810860952088182865941771707449122588883680264737997056905344109037538455123536485468218075025681883832471323898708610900366090764479431718305064999518768698416035087489271046619012541699832050732822239580079066082818024909336458502095045016831695984615836368222483839300893964665869638346036484049664029012889705261347475129408013756009824113974532459720076843125059833421164384226097524419836929545697343256334206712682899480608614198561392469434118719424218520218538130301922483978961855920386445966403083399339757957453578829506862871794171971342065584561753435975505759004018486657929793249981749969233466654617327970194643999177873775137063326300594553414461867899151935892085413261529038320716818373071985752880767199363316778889608876599468475321458276302647703366421520748607269149092758772300062342807968397075998267521100183489474900358267619724007163382467039350652281004289634503972996475483490088452160710930521994051476060742719690642030623179125140107007363022652203689238998130192995836942661323877615902550883901229981631692593002967369338646316044419552826131299366618446919395976910902132535285498350782759917291711984773626678663693059890539478681612201470080575220790870863125725492617430892004943547903385200110781436405085579022262957750104557958481011027153847288052138619143360134003688106330968611588503990608829684355613487634154573285445163456123848128814373971309928240656300460393405407246023642030127211928901911476785608960745847045597889035504744018066195419678682662695321406398726688291634238463328132747016434706063335084366855707058147829217156557925589933894213835412092134849009845001005492342175075515189822014534014286701794291508251960095752288687415662127545323975366678456262959304586415333859169632008975549833267439675363864844350946747608760043626770873923319596711613156716898505245280274328879687357808664728076677572341467965917047821939529099316345970697738205881571492573598284050729007285123316289993883105821146814938834604497118353505425535095761710142884649770353601064190712879433199521865269969292911154339971292629412287740303172963880834532662026919769655207954433345633555588689664822455880923312466804013823630609145190542029208953958606235837901322594523319980253386155781307605425364360436110300625798791057825685236167642758873771794189341813966925896439577295197595336646523549906382864954573011339889194293991059390449262286097599483416118180746141923821450320276322872948908812048001569725240709959480384222600969579144139660509901410457344115989816972593744227926579071274209511610093611478278390478957434777842569033181562882799130170663847518283575683323929718810633282373964948744895701308718414992681520616335124865017952908873392082188385457146557899661538676159857983869780956525063131972094963007469282023055993357092217193455028862218666240118824685972550824600618033047731861158772334860639743393060407985129813000914184323807940264592764340134670886467614666225694872545357139485093258633993332869540116776308568100675028973456655379481719052897095076404580706134697778204883094458132767052862386192623544944673238205176127967217325988626814560503063222797000603278253153434803412416884263960849907100339996123786877067106767996198074821263194780024419080563504517654035122190237899341720852046525154775174246933241787416649587251683770209697076046426268915583717023509137437317049529295720915467107556974352579819160704456286084400181696390168268151250276596199268639817144836437351344869504245289963054654894654527009123407863647518447569992958733491517114888402874506614700867303228710201864615684030836747542113089339787950979862744995283269579021076825162796358531773152232599637161231102705313111677627642426051352235163897454344251283181313152511619994410912579823482137696311104605082364620774655056557831901735327799931361388988971023276405357544952463522573720659544689437333142463442244151928028102321384686193902616760913610106153450578437682554290928643209716882278277001058632647228106777075343846788899067028535332673357419969053582863245214273805325099053447808345013911885753408924304798462233652107156867621127726961862874414232612327238305329279615666380417988173506027748332673640963872486241293245225554288163103275264321594765990103019141201284236232074922462905532088425463509813373158311290485794364535207611226631818708181822313779408210817315465913459467560778284494699723869873141065290322338625459115494833789468988062275989647330991517881275238072955364408225768387681582027255899497573585689541657797241519303879709213772939460629773435902974534601937886245944231185993995554365677591164455598151641815053094398639610077011042207925435280996349411206693044761947182591976462569179371454984017433314506932821186063135416350237019752313747009518179845276217210875439917314807285036378998810957682802279186195481463149036706277148223579844913348927166314190100096305702511884958117382253147089064579581177002565649858052870290829841599134968945618253143559207299269486662912149473134546966296414879507843758143753402731868219593014586514366319132701453156016031314195564636571521706025341949035449491922445939853522772025970568986474039065789062248474004130076016686320793514310632431275538922173381533246902511867439353218348634575052274878743430411409963990268599988080501867632826935469951610148050911246816350019571753706036050743580865416437825587873377269616274314070496699093649835584989489344712739512638881463646550576445389346982309746321579993053971402236502446067950105163460828584513717125825985467670535280338019261016903562062714385868452425060666453321113816012118764654059830999190616315029780237802838078526266816663496499066981732135141343537344095167216893400988700926265509413857657529068832406702430323885896940539592800209189683228651904581209971616869860962134241217976516523975659876810233706264992368344656572906069214882420530185572032416102913713488866386581356618499713842940839066817358554536703863770928237015860603765635655761092927512372049875599557028418277814657329129009474683290276868422197886096909560993200879630514359505494040847024843904229109147158978810904063021525525359844160608786851985209962494033994104410222221785809547120764063361014725546051410432947425344634735622420623777200912926412142594230519758611501821109993165618586529522050866020592654477125568477878947057857485739076283139743836459225134534048868316439026119890180085006999947343080366605399736322912749753559050819959181958835171464261640937558646516240412864172209543483985077301337975276797459262811633779263068830954017404135901309498311388940848235337912908264632516473220071522876332419703698790715200849787097172049173332390477662854292818793757075997589547406793502156873374829106097007339821795010570778570865101435858750618991959372852000335568427150559630042022836908620679433851930900467723070634380631475340316214804093090451021099447320668332007607653618949439911484910394749554751000079655205814015649811234945287705977015959259461409433801013306951744233751927112922960702427114911013427702307121592660851113608590847637488536178364367994829861002723577148069845163984657943391917972932427648037554961077179118589969840862943842383048744818603774625194297348411222290106942187920877624940587596193855486439205117378955240960612807019657582058602113785135137582472876878698711276119740363446962924866416325634389557836171675927952426238021407989028032017050386874940416929837382995823477871097444342993309196557027346040770289877542817932213883377414762702057637774266778231304818775055528963629653821876452730468866793499758417316137286845261046470053314059284207335911316411663250580174793009414344024003509270034501357361995921736559285822408615129767379549391867730612928176403671697413134471476770039565073328931886165184359494867289221315784348662679088380617560927071597945636033288357709941940163522696861506889568110039571298014573452264167395601279057933059798990833535010334673495837815702851378894877392612979702973299615029413939468415136897396183070124651894246004792646074080463091567746096086082705970243536053410398158844239806576079627460000248974366823053283899527080275770592440398365677082008272048065238291921135385620884058500353469169346046368103516997273990921986193170678853077511934562305908658314297293813102725992126698625582955671301350099938670475485278856499731012985940316154756728037520356087177275032907901304114936369583965230899431087099014030843923529293550259765275135938651405786627094816306044156144899100255016067149022046716597175629612154932924883544894279945758860551347596796144147508467008946903788892406990213639809315062719274351904253810378550460690005236867465678475269857384011273522960478927138348351461812662242798583074089174838017145301365306655098699460846521369932200652224116080976998164032304132397598970877067514993442349325227881264778559174918024915146225603060049228934510055587311226144340142215029814633107760904541733175402887359958594094885892427699676449740750366678553884941709401452344679696521726340408225525311053682190514286642314243960852363181068876191988008118902305422922031148049452436836076424628144394656968816456627523852551757256368350693734431781861752276262221329730230878754424813873507865620632338594940313441526387331052214536586121603101891726973166131821807724803733409467099842690407545305096874862915126235596180003578861562156595467248550802260567766670473994720713942063075254551850016955972211684714283354199816341996040772788550624165697944506517975946053082599851118131806869929969236189297741270473000659674550637609086988572053532484634712372744020352243962473842318873883491750154160554299189144631505942211862514450122364983616888199509648039279901888139162097791575205038400120995294006949065529707245956500708716399847702972290834585405285235686985299808950885136419470851838337866884282822309326206918228323018621489724906782937370198947465249035642147588860786056538337150856766928044408278904180128179678057081472034124679765699897993861854853440437566176984579373341507884349484207496285891517301709017757715081904989915712911449614964142333872663907747827252733396873421575214654351579909632757464752285052470670836681897900131196596704392333323772261700957969324537127718485188687423179577229086228353441023220306254563638873307469910923702977137146894529521341684535260777275787442154989429044298918017489336735575841630585156687928907580746304032517889934847098846931955542762474097087661498492724391275535500868364710340341389592580754909642875261676605989652695728108314759561075692870096877906555195112146202033866792046646741908000180743905077011681014853692368030322789569985316836349949478628658886884646015476377481273057020208245441123917187499345710111903808056712190264249991782230421738066335764589429551840492225406855512554118248042253461786219728652528969962058365910445148045281266971754849101992263322866061518060672821095368775428323617238556319365578252709383509808499322965020995432208679370555813222911106808293395872144312666770801742218271159550221870358931430620936424841523156350484452690749649076754220693860716929559107103468602614925475154275557119274602964983459808491400200820488252341562254877176972472944797475840732212667096449869325112746248168351525813349516264650057800798393662403325146078515085629418311472458467546068311483963643037924145250130699976250123161417575238794543265569838912265788845346132022559460840262800529028101348563230646439305690101107505716983462944971277028661502629440870601811662969762360845873423174373341905820531191970371238806336001294041144131237584148977497382785034262535028458978760793619069435302770210126486059269482801594361467934477445737862430434278559782720711904715706435371801285703190777753601315555520924589561508110549834305308552391070920438807177341874899713414383299035740196523369278041174706472131047556373438053025618237899125838111870971035151483754155760304363958310280852659052870242069268203436958521229299699026103897823535102128009901596054479912552472488777458292729527900689640860399596873507532951725881800907745011062770612802545446313636620861811742360400196819967231546632573215376577725421254642375024537456601517911770447077097323910003764304018025593770811918690569144746415196357393367691416920644642233835406783537598583666962164471543271683967616703675818171307982948181782310835442497118663684023590808303642949176768816138412448421852420283444140850626379233294844091185554260746621675645062509796920291688627101289967835942011692764521859281954216254391236644807030436790377035678276098719580162724037249090174132697170477847821695359789203341815286597139536390426086291766103233801371150661712159218911403200732019168671682126389564826932758320724559042794258670084536215878955984126720061500261372878273102317454049342771453922884837148209686247056258438139730094773417933277513997079318956527264304293040772780016527362710913425930332807213600709852672800241697099246637608794947556260861301955056475275312917784638795621267167314457296126747680093957455450320370763796010216667491255260015306027057962813033864596836463629534225306749186155418484492457511047326316924162827664346255635902946493312625929375834646828269438333921762650402258434823296914172482787899461277496897240940081307790585913152196970584800523661953985382768290349379683117426736285854180460592859171086981369488014553147290948362020698772400879076087958706629981364845388306369692699599196576639802909095019866466469055245334186797691682955836130235581535114685651605167811748466436202451887429880902217230502037927377547552246759354580215999947473698592439636459897298704567796510389607197123559648765945727298691145886655080137354352116336645899891801463940153385700652908226753048996892802733167924698057953295952710640200116235111511276563128529915750915442388051449000723968805736263711400034846487917854504698836235435035447252920789600887231500442298177343244949190055994488510528742072808358180473336241770878191192229600329235851767276866586715301181698081179391464659214792220779844925856457362019859116766806740781134041947279081519145511748724934414541560718185181049892178484309973318773901904907044332989083093252181493000601918452072012031589317179415200278815137254608873262764185671922903172489943146057102413457437255666527822159633307864471171246782014838041482447404882621460829960858510055732435556251955807636875485281420362977822526132457670237072084925509093473756523201578349505610060746213719771913822731096891465915226671737001906332642144091421049967320318352292565348412045983463934171066086965330585423770087243764615852242380240976890805391672174148216145128027685076692128770603706742556576978079789086847991555941528783094949355009099635124117002157356648958962782719370428683436907576523702486133956733746923548075753987332015241423942051020925735698025918000925657339816596403800211985696195900413232565647666561293077675282421172648368817587587187258963769312431459857831474091467793670506451989415807957436450569410093234951844676034629049894737716139346705907419271629722128572865442818025183613187710539535754932703901225743261506340002785995220608921063742403216894361053692836972431373090478796391616748742608632808141012636115169040220750322943240972991007780308648353841332817226047459739450706284552713490679746712984801382896493210801518083888765112983051122323857101841748007855777717450344301098227167296982889222412900806681933415701682572913138477172120410378170612202253475446708409780124497468339359087975216080356392826594612075390151126958861434956913810897812677207927301426850161031163354754990503856583523129125571690478446567656002351882358052267885438079576569819923326437097021714642500641987092174710379094021852515535537450175798723974257164843390252617679712400318967121079176476525835305097083627365210209060399102899254553649779923969608715624793329170240823191507421193946564654094485411963158895515883354965079853411787061305363143949385087068065520208186252124179656964481668819599676645171736522927780527193269587427354674960002206366357591276893549712553237216303637077413915899113283191578613624713369573341290117606984558262774401527354145245160518262633835549420576276319357681550945318826474992703020601809824123282885898244234145959522123853778339322883962483085917260831841910275193813957368007716488697287714067270779638321458884666772338541561397733105040417509963362665044579985780264896249716003734854750067845466394388485860850133301712063237630891200409949959971683134486909864347862458202855741152795099316915309547048775803543602068455426574533452366457192127346411057616511325748052897355372980660976723214604851512834933520921001561945084344710676745435347754309773820376441668781675115869197689238184635350828903348863859624686450467816293156708038599158114385983855729001061052912130164089107497236582786313559983707833469124708803796409104768091941255141875100458070472303857988927331501854325049295161542750424517693000737890962243917041888796952501910813987043995573299831519135894757583475013963770065161640546500622418645429119800826832354954059188119088641296025015032582120519735976945912198854661199495147879136316501403199635507516136851462972966153611362912378236103133335564815214651808203628846907249775055251612173075454687664826067006272516253077794445276721476060306557445729531529318424388270612117464406757169338509968769110234117355332269673419564165149430712648568983530062396849742486806576060733101394078366882193745291037070267822971650212040860676092958932885540657900713166094970096977922147265405444335060331579837616730428071023002471298356097016264574291186376121581535747859327351790704375979515105483062066770539702677036231623058841426084755286894199828878499816786787779873960630351790868596895460636760870760272526518128803844925800786476913045932620758651714892678702888230056116924420926306135687519080026203751820721587708521859781021987668423513560218475599619125179278392987298753127401408020889885880466585563957575968562091803814145930440042824312457880757664091441939333689367263527975324843858824253095617416226178470988590903857458955629518232204328517218332387145337843404015846236452933222718964777123343170961162526040639618796323053851283286962498762602253192719909462699393462697148484571328233207409877464169401588077324014542223408062103198062231678777137248847134872336951722757540242274197770372031813572701994506639503180407051582122996417724849489538322235374832059595068950955563625278878607206464325190751902748912130333208543522655469584248786601669940774047188611368113075118435576124347744025370319156000327828534131091031133446283575564120571883735668105494540790786856209474340129540629055576620348141305188913184886754097623445831506351283034976694515474632793830980459371745300611507520098200729650113371969222474756411164962800529717298840712922405950272821193338966355644165564815920901062937964277870075915433496869083986044860014212021966525884968674082776397724337464290849128450926376494742430879612674960828108886133817831957380944375563694560928053597567275197820435941054401607141261762550129946130407132533567634762813929513536336121969560486411813288854529527257286290203014309035467146472341659724530994820655047277460377603866576102409238982742507614561297198956638389825418655194520325950389192087458780581219679288554838598325670889940846491936085040206557808069253804275069167356279549219486076242184367985404493965890990435685650969323840371048946055254243679432615539090141696637088676337071604212750140636338831384216340804853491826846978032146030315099054253667269839983862691987869910634376511184057787120681179900166312977274983913825831358316249442926932750358969504778032126451070591958959800749233738463726243528536840906924330336104406486090350956391606361752022049025419973396588235293374713375783967279219523412449466342412563867168256531900121620570312435315956683866339070444987564164646174524729277579118725311450280733497815540569066983799997231656183090905986027145352069238682506354234854881319486479052461221355992566889087954235918126460156042799872149978280127726652343009858581848879735004945936848913907920910493561251576555813668969963253709291498221699038612343157523394896119474197256736156357145976679057671380312937724785755956241542880342477933958999169710783331344338209864485599296121178031135315106429829475849281372020059056235002626153845934775496485045148411322348067780885595470553728677138588662199883369348322835344878801070017572263429946898996097439102999014496119380606078792951379539669082719487201090142901681217866789846381049606624938413142120293946621538033519856998259858705593531159387574285329133411267098381680349212328261844351928802506861660474011545371926167901113640638018584579777062046802095043289957954690847834289929736728169030376585753991510338736832471587731472536977238565955859849657563002112303886151149640364346606677962481986690113955138188460791476049332008471973216299693178690826484959506648459320935950268610109591813888342413300935147551716849367155584840032407990411883974432835804917111673954519966974023716450844330213469648366246861478512401418466913617711183442410581160608627031378375525311287542712185327296019256606160991272706581432195047095322820701825772496198318521264687881069043892363387823689002036171146817154202723383250906376522283001906176511958743445880449478865064571823883586360168570568932927642439332723274178654184862546743471913952846861412443121295996766427546774761060953838137991065754259032580807891455725391210634881856119499559559640879955003643697231133325075812365183622664203350317499026641814823363880658000269945603109949358486799589804343947772224628097910432395783453244420704560109909998235223436837218716671209926703361041733521340711502888604929348588166965482357290950119539302487734689405361379878012989818126739526799945765108249477615540169086999630793461936674693062798965240503217204711490112538221444331251873669024970999506372644081896518002099072819411841260315221709101856934698720768402618545007293868125077036721006772309335411888221084151418362637659339101180902027697278066947511656510396433718525047274073163165698214271619538894927394933395411732913225884399283962782958234894229633181711492335102318989773558486485632409177505210699959353293578870923987233402422546105782777613065673556521200902764806381953696060709020322339554556000815255691538253081565083404809192234952163884190628704957252734259552140430555730914267678998661772645921346364014515512787458644295949989304608968145363747386923851316354458703769794575150279225128089533745624299053384788425313824609564668401551158810926974700414986792023744802545063032679614807712981726213018996907168020830290117889241220100111391631787503260304346407781035117062520817950529674155695950616399620669980619275212794681560468940628770753247916395429717102125347594042775125224328773480313394554306275112681266850812059543581022413673212334736461087359145823395231860835963355184877471012099031530943177192409619763225351165799168169467022583860005595688969313562295683310288351043405375370175083401192073689917934208533624905171298349582322580469823907054639127751652961063544895941013314714626075048413652763247227290622237159463242384404942992107460496888055480227496379082479280359166180330102628815000421942820570997380661979339360813798818282978663180804671107286924931338438733119171616786520634828132200667372055340998118963323241424815867366282137989252273387133919669656266074546406126386873137249756861149862830246499990583479240935892975110431422803904498392192851670387691134976182761109164173687771267805365409951731275524485072825195131405310975531965772453377531276697160712555710700245535971556132630563537551068609214436477256298941714783904059218429645168419830205381191882835018095059435652052955218056179465631764691888084085960322447182377704925557104107471722011970361637966362551920951374377376226445795890869325824814293230288782924932221305000809353990979956418725914141694036817581163738694732760174733326998596177276962319808264006593861049995070935948704643336884742491584137302167440647821529501346755637545323614316753963156272635081924216454885114160126921430427774180373672212184973247347005200756987641687948149298250710147989914311602206984851329148185510549248176579127716794066528701557475334476199999713134619873552164981866988110888227350086615465286345451770504588933446918243291574528967029010718118472516635509888554166620256155763248008536912729904562587614604681802931244991217901983387743329590755540169152131928320376683737866344716265798066004940604611714177788256692721447914092164844261027529830118662829613051328404177982026162818006042941986036735540216732277427473153962196066446914535484730628203340076218308350986764064051800795595151186620172661373343509351853761520751259259672094596859036732317127513463754467245610701441768171552242180258166380672827814143586271806950716209131654739799389232138967987195953600002636430797349961965822866656350151013242107683824902807282434820410374106532953295593124689621515533768013698430733310205915048483171311196428903401961999408848124290850328753875533856736847126296493623080181114259987558777960085417139927173357328429880299389618415343392397225379610893650256351472284330300290823093789685950898039950202961324694221755287896628472390789512687121217045034744566382461900932592966285887159938388638778297708364426236415277632003277128732207434279687601846623083857185069537234314850109332904503207513262536270597217510704683480818377754687857384932110655087683381907679361845001602027552344104206477770529646286845053463086849526008840408181734538732769543103490807646476687668406842202061324263542831775945053455303051106378667701173187378898268025116618438345624137351880022492466777760123607207493226429933622240783640247054301795428584301699101606661488643734179691793248919162040422066724178575950929739846502187320043537912170477117955743361894842204116147422171706297457962663345002347509595307290653826394988095661169738688798462760021522700803470409061384385969294933467551251563223190785510050355192543406863126427120596033140297146795677753165159445918135641922748310127362745146981548230032489226325818272231342381518557335524449933724668962756495993435556177624149723786366571511434981409557973147995700793538520357365087003966348644368175415803918983688126031608700194875774726305638328383225961452540218399518992622023964098675507205416516414155745037778404814985806471230446477850192789441035531039219239262023568533963213773212787223358331807430821242591981556722986822011219312285186553415324227817439646878865634743877925200423246945256795289982953552674614927727839548356443805325528457398675305433947083418859140023437674107695905196269652960143768462354506511783503325237505161927385136903881281747332710285745788549238748950339875728861773426631280973172490718900993212422400137043123710604339590200123931800761057215279538016675811443131324475167442458557925263546359108576041988834237831945585986058155823806270567852979256147337741959492033208123520901811726106889285059819530416861851677293165707797439892655375266190837892514907097548180002079201049064156520238613378016573737394493100881180559054686190399208955692153356844825597063450665268715128340675290474169841687779112540879529283797198297911390699324478455607216530227212595068236140505691237918840700842857922643185111224471166038661306506569625787532162709333930415728850959423195344967291584540181183060139158228968800414710682667716981572226660943304304673859555670426763883241431169184024273477820421443670037913868779999885774870311753312452924438129591609924410546371089042042800896595541379416317501997167516652393790853853870033359553873160198812542059153305338738872672468377621294091155056205904275787323165021593164123869176950776056280376203856122418780176899130013592290107717437892411414018772065532911098013501873705813181847265401427173709250857448803664972494184846873635137077396003068202335880751750715532340879150154304674554727952896829102653070942727660662572782554121000854331850895446855266505826681906861900208810081122168412158763504578814005041734890911337140314110604867561207438380537624959941573256887768154372737802418738152728299556512163316496093227699905367744717755008741725589151322590658432392453623373013657881738586645820402689910741514335655303529172249073646885918990703266677455718694793951844650229368584074581599092297955534962703840937206833073380241791370715847045058319356817020991610847119479010462348633929883540905329045781845248375377505218656507042096431986523470384397079025571307339223399494626614744901643679242630750532731282283532505790973741979872026364744047363999774823635084613143282544781735170566896772787254818278681065913361080362043916299354855827451827300347562995504104765382611180225296305361651648884284173289467284176864710422570116896696450780897594070277279294651917585876374096620993373433553990729874803913489768743797422692040984170270193906323841826038501729921478743406994937098541857370122482707219929137058450318646603237450625572038358851637354054484220392935727185906212786443259372680260650057721988069192860477661481670916197532791380044287000422470706292895814948535796859263200130618738345458385140082870989468667041291658260518915553729417864284362068272206623760532304285594978738877305731469734333784025564412761996167101522761692766847298052777296070514007715218352367133471658853013716443832583577734910304087563271422244255284630695364962185981835600158158483721684431609653290845390194057658353573915317252293051951844234415514310737069758928644711055159491788513843734441641224481656976044943622621653162949489303777345120064621583770095715055226111536508893845269188276587691987360388386507300346449866747506954764669343975546519854249441698253102144368342616648304782232588910091948688251771581485922697042126146398236012885923123723139987753908594241188102727728351125607202650044087326350448661219543358468157316786747337857691030370263498271073128510776032655649739055532645622990232622770029040584512850748948991659690170304303388872467891075971834593736149379910282785970738935122875058394629763182406955307119774390751995194205350218601433689597422016680452682122929252788068606505704100844761651241180895222683137483270703636210211518630427626915318679874011338708222152087681204632148217967189747406578873281748782925399636068109219937112153304661886986288860938722252700661836329290455799279767120685127381240586656664020456195908591897075865718347446773782522862733950360960600420178173477788031161083753792218660194574976821432247643556293921548291165315022502112087919281709803812539840978579282853456284794926447192334723511157790709134856549363792945236459337136891502533252226861052982315323556553671583226825703663540793269808311683009642123327450495401691993873608482873256054466295536076303318780436528298912309569496359679361042693334709766151367333558799145871903599667350206735499306117570461266338869287129656364198707032653159562713549063401040973864205630811913245727613078538679564741570170674990913967362803209924484504748864800114623833842892672282737855000630809802737904203737933611215114102096205188583803716541250689847401174515313062601710082663466974597517005633969894427354143362247452176338692182567651208157347237190141237907246637486336244094473317600746933671965735479706902233788395698211818785798203132591415728024734668030865641661402922581929694961147688194924835003339955143736836796827686689772565389881218576900775682749627083829998943880757803226595977229357500099895158967383948924656654177291142395821761681331607009180916602042094878907043071451237184653300919665818663658921788535038630600435353969408093475736987588273304105162949151027928310130343390964812862183493464450640964062543240763832515132722424585940185242611989457721602085698585500269768090030369186192889504545786174694676429456544416016530654721890546496059169665679480535325578462459353479845103881466880685951421309577728461715397456293685664725767014621484657078860452163629612901353701264243586501991825571794957680521939131297691732610782763114655515578120441511269533261473398066611777736717020642747686186248087694517381866010290977629945337424598119263235503315504004970751037532675525088132627552777010544618420823278602076468342106318000832842030504232840550018945784988157178231299521055854741358692546823446211084866623294334363367339367025685626859738196881677802294061160717104108417148305495292016791330841103324033012894971482898510661906359822637268401008035901418508244154158634329857031952215021877311223366488498180223056897574843444004761933708746093828456670901463650462247142478695515379889817988336235875060596238355853063729190935878711344781799164545969306322167397623767963329358277170305213042084936604520239924024282073364754556495776001999360060631792370104436265549031369036423517971540998676642021685792977241320495604392226927113486173472315140053581222634589357793484817814545124987484663394234250956296532980671270487795407422900528482309821423906367242807063415627420734974948264264303972976441396497271328259339782480696324224593977564806043026488675527545582515107147074869543462435111058841677727837367151619372915932012664928860051152896760211993208145761507894098665288770997297149399113342167600547427420220674449154401064148440937806363592765283289923970231392694629724435135663538928526588948515632426943029504043311304874339452637624409341901226398021272857328665965063574836716020831276066462805189348471926473246881894064127309158936228305829186096784674189959640686763333959957462669721677740311949976953840966953814567461848676026053398938334875374647213377279142206667810911986992064648020672207118124554474880662988272359132389317633667341293089895074391219937245253053902541672622204736587509584264872975892888277526473625093233639344122402131274109617149619500034682969532586216318143777325130090679728431996849776647967361388611025547223070007099067448352570089466421706587269629756397204527774139511338832103654681003422452283357224487660707272501221599956174694343209622519070040425303951117752203766702822844320700317492142903968507986481182696489646664888342010542077400852862461671671875944014608046834278180251473449559536057675545624904341652919922498446474501983684263477590614864540577436957733673769485295098415111171964281306524820893919553963677652414430547053282375569300959702713190757959352025877221962666283143746534445284895263564094571524673480528764270783610382040790798890900198081604684263116169108932116860152880526505401078611796029007503608343549631430064735162558144681297251222692982881243850691782727723613382423825175581689694388266467178222967840335503535185343974643641046887928071938575220229250364619593029587016148270142595280138075821847907472361300467384778230087362805482868189013987509294917040973375057168620324146403794620655977360003689010029019210243104403949133749343251445647586508334879715474642357929208483119549422528889517889385700605382144419984401361016282203624511523015134085904225180659268166696126318453611234234254549950314383080565308719335354670643747757656479562089449734534482036387923443906465614669113334678553883365959744938833662702993252081554309792389160392133089435060674467354912877217814786877334400266119797639822999551788914731867140641325534103222226105307717470191878606687601196546313018870290405466248740603771371692146387289028604389731138807351722196540439232601997889061039571221126355866146481912544000847560753928533879933474134763771142892593147400121983905675494257158532723977310217558761876209743780299575662471578194792884420240670013288479127243324128820256937955668352420661607091563882545708019039308279447201428110884388896197355184681069497317138032224171086586670391104477081172407907793837370562603998203539356623469304882060650541084212019749836143133559349264524727417320855449022359366598910337354080070900461900094932394231272897887716219759129137605491774759356195480596402371636732374052552072411896146706562630336379607375168625528303516452692297031757227598121682047203856268654550760296538595484503243481680293172310969578653188615899484209639819642825510391075659033236647687746258040028628495204490463591200786337459013754783308117531800833024178031991124983766110330372558602984893288497279667958056022082074472920864824246498936460738978311798057528381631677751323651887806072013223392289458756269829300069690486869888050189867138588330902215027039542719042997258963828861196048291080916373666053009045004182101324580867144764991853659806907287834936636947703415489947766447510827135653901497078810311900692619556705812059265019669169190996052434240981754212512194174973270772264267846346724902144928799654601389007263310796451800007121809328221609111339350390984735995223302002803143748188327950740003280261129345914280098579850485602618452408731970469180468827137954220218335892604907913106910075635251398124280577269010331266659710678401857912296873730474947446189009142316816443711213209593679638385541149516755698793785948501693620632261794078127048056592738157069603929085960795107445589526895835761710422492081784507793957930325715390310185415118330835821709478728836193929875567138431250519075144284760322574949125716132698262588182333690793407651898784332464226089282939501404798266503856767363219155959366612909474444333999186609648135910212402743797829170370595603519749355464869644309717682447596135441868043331707824371488720800473989403584091297966207544517455257771128970617032155326427079917472156018485554266728312495810457426528824692258341708506586877456709768978436913878624981399198284805802108122938055154012045788991956014026335723521134006946623013686580778209745430585864879276279493000751878907154162002084713102893840033490984198708956914246655867933858329724721427845312512695825618518421236837519084234100772118657659980622563200052032674123193251464265582745301065591075134365245103503666112882968762765202782613287695913917910041607161436942102979783706739258447495468385886826747209405104046495006406447779725952627404942479436569973166687352786657286769967643960295071672320025977988697716910488322734892195660966188755349838853872856063519173327990549178840791064090610544191850597497663107698286402517989643078532802072934415365926016377717777456087305473710511182938992807820206468257092469218509420877855479600739115702805983027083491267584864895178369457043924623935612702597814006769004980153800850807394662644548888228506680187461990076297465725381546943448767219833183186740584541901903112435356332928440417626802197108666735944543889638693809800425202190493627145361705436927516531173353564056419430893325785183995201974022257807470683757869712453428925311355903485365186841351494404450613572855883413390272864596551056394052157793908359870546991454773935138545254996935986034657810154334498085931875722623181489577603280657868147212415945295569784660379099653796487338829890965327580707842240815113883605372697813682577462108537391530401932539480418208794890667832567748060767494390362986329334855673995348780575803238092244900252861120005491821925660765416093920692529537580687647217619024617859080911969603740122902588282523814821141735181025374856479668962861170183499861141814901026325426574227851107899338825249137120420866534045364909026189176002845036008066655119657290590927533380409204438869385834976869999864682138623125924780207764481247226700065132291242928272943208994620567998229936632592225993826180098978815250096251889977526898937382593671936218951481331024595788184500106727423680673055172341042196208140461313156069639989039320049057189494904730967184282209043923823772257867829310677876977091111123886029286571480376595332424705383451673523766418271239211419435187658441804553613159393679061252746273597842085009726563429016942335733170537939413537518164257933925236755200880542118225829182139968756006695907715823117415898430345381698270095246620805611459129721220030060465997540166383052095354049521313914480452356585058479262032581800348488718757276419869829596103219223950085612601417537046322629272214333775547670475745650768090964482070751269394494945820550016372042984498299583730557985207834540878521793586211831134821551055780597378951066831526766821073599916476184381173972643379999801743773240519375924589402469749948301627130694150078508119459681944335337956300717701790486351875375600462173638146051412388530054838943723473320411766067957893037867681675672104404710805894588952657655822873833102825875743833455172022861134964820695955413517290448764760090406709273715435968547407091301416149088390597826118034198368889554819321280705474865755003558413502480293917955847364568933223762795614219240891379952992960897610494112951604335406394646542216354577427097153180832638124562558489608011771164310185042634758824462139160960851145676936229304376705549657411255058760612588826525352743480098266457679456425862417634579410175831726647256068215484907438265023783993238217579662427626604248572713066004994831081095030079806172868261851162539449233220433416582900460034728844709835196963097589357576525786359017568813805741249234409401129363659029214737183006533579375659480232873044916206160405858824088614725086097644571603094991686661685006876608754079912647611703140334508317774249411454814063218008503170710519705745922683928301267111314858207530108854036089567597035658070296992383694995230729173533094979562908436178080697228067944131218575691896429187051133208845035759330233351227885865223604254394833886242106139375568058145426459767149520003220613295368172802035028897750568986431854227173824634631551429106493630164375411215021163284212639883964729032761961757002527680813106555789048556274186006577612618517556876031092692867310417089639638575210670272656964489849955603864107469363802079492393412048191025392436909221600536567515936610325893236458750720845124017831907635013804001583147815950473871252266422912147952999477754283240082893322307429960814758939607665200327390568189524076151836113869744885694855288376722574025915163124038608237121607567510251066401323042376136987183612582648566838431582392789453264544289863565273953493947017502111188668512371185130927775960256160196156329679410644578522534338836271865821421938837010427762944261252143611608053098249252997142253766808560071389907494754020481051298239611049124051276908209960699345363210645813043281033305356443400205935681198750907843883754720299078631518893329050653773915369941203762566390875314127799721271665792049126688928732334187856199524273328261632568136451405776047510031690616122423061109616352705698702465337501206449055387781506775053375590710235651644387549684259247515844885707170847325679757188024686681655130682029179913093470390445525566853284190999527074415315929773346222154945902020173834206577733844534194789393897217762607606200745167813607224763782727806934419938351995072845393671329972860680937099399670101245983360136204341137002250985844745057533016720376111806415651014972422011462818711722889004606632288749615409895491695759300993515003691941624203772538001509239251941477933016219485525410563430076402476156309761913839081287213146519648430457607421111131791946195153742428695896573838326412501414848144569221052225887348672884968576603148794788088306927245014153006076494249461859587042403477954036704965034676299695334969718926486118434796784026098393105818907367856929007157060277029094256886749376358824425683239349148525449805343434003410239072822570170537060257945742297881477976145672789953937568620211509443265624257482488753401009444522794601187788700026911467195375734793636523323016214338350680404483731588813495629900450115659912797500076969192956690572535713551121841174473775231279841699389439271053816767650207997606922143851195185221902949506642633597628387856154063346557206097978411408284184616785481846227801474157994412894030501099115806141816919042003644492001679730341883372541317902472137791715275967658605804673889601580806394705329560625696625832641886720257907331626123790221666059559821838150345066269399970418551721913018516314968301650228827255841194634573454510310087718531908624630214841722563146496753567066250175260832155464855239280841618569856191256807525207664474864474586628412361809316479071897384887222186673373118672135911791875589700566474645168668158018443813722778367331876875179206047426362093439908354883207228305498268171498543041842484296037725780803238404075860794458012216219040184670114535407953226154672061941566105567640872031464427436740856215621623773060571128086210881303564260778446903091254467190240858391405199397883267941464737336861403810310152941767958877507531104535626720206008627650505426327086931947282418784008569051481174254973161537711829568276345722939556305248983748510217744427598312165667192084004247999358323954790827870634339257220180740808255542392840825573530848656806421151000878038922294349461104545690423220706588938673426748311436753604523820444900574180698646778341208574298011150578220795756936992173186805140079616830579292041038813839478630495079381763815195135281121043944140520898644172319041517822306979930547679963416162276247572796065546147746906182559422219705020911732262791393200972541887903717180530111495690737393421242221121120612030409174257615303567655765031112362813966492562151554513784287795888394739705477696372066206120692845997182977411564098236160529356369900487616485508908854157218024053434001614288998477695981510323702023287450886923262556868403832071393766262142161645285908101189567328316863260834930465353764611579970235743607818118654899088796303635697556522334627038106730996478976591832339224825802669554817699985374897726153447942029882474223137622072072113431246762047823713731054859682280694820318611137365877598014963916380275530267888746739068314125410220430368214263607152073862763567984386838038931571681739288337128679718788656558439554932187308148117163794405577904845012226103428482072792348837484534060129534808555072759758233843275369884350701774073987789771723637043984043709319793665601001948723263926572155132268302873962261399769377345803657129919288801923009375680313535148343652165676768577544066318943837205574735832761998215702262558540136827761274455255249783202991796617971096361615281756265901988607971665435619126573788851456527053283303535053403919363725695038113752378240286975000880968516172741405448371276713634639966209595636820519892146160401874443960368738864944770130506577856753866230415693958788696554551653682149102872337912212161030808392708170188146186425468531807782871193076645681231547559659941384754257575455469700409358332358020337599365342163197034378536059607720715835761736961321714459797977166173746049476116592897134984588752441812391646116649181177796031479806692107313129681986096457341474939214053968682457596248770382561915471180569148041012910609235156777483604222893070428267066235228243656347244836150069584683159171424721321290484369417130733970265239410415572155406308607420836879678722112787473995920607329736563029453714745192517833364709107895197775897745588565265677318420917694989432518552481882363031447737409089683765649674618871935173298466122512209720460134945492518701754586911998636104661474159686289456496763954896170683865430996233738882281964428536687369705586424868184131012273005199818653667886894159873639991344251177632468931144662809803802619374418830356030782691111590409667119883879996583667430776667062409746654993290432742919100164019891832250191620605699706355607579788494090445494891007046080011386003738331735645893327514581216793361245365427160990806709794852181423472777004990217774471594491704800435799765549449496674639269417268624927790442670869316925987158035963044237912971295880639221108455031506797134947083634325719704646078528868899486590377879609161710679633453280119887345188313566581306735192633929721719100766573260336104081604525576707704898442092871696071886366432580777204907134576542278051940006410329813594207470845252641068540192330328416158400702505807359799660884619994237423742859889246483927967405661038575212497941252856138216111172288334143681844149228897856343234120644056915481999101709105834112509956822332903640468273965120559762846777537226503903123788730560481084039821022797955750935555409542510750650985390144873437228256178319582834787418612664204709363257918490383408197203053784542713949128971932069283233083123384405148278392160714292658734204403202298840915708873098440079373602537278003071504504437035676855472992538646443988291136332352843117704018271075152661953710094623510021687810822778759191950599935269211053093891083247510212753180057554591152955738145999032508208978898365705859215546515477429843553999987457636320453658422246118998560582337476679792029311358424839694600921357017081616962739879377176686253359096916648155024536643799567787521283121470221307216149723729432121491712309791001092571220677174764175606352817385324125747825852155747415912376433012904898652220120936391373679087715519015858909687509361935221419425579669035872376291815411402692287519762474923954848772356744438670145142631999775774286166376640897558341898419305090283080992090078975592333447077678662523576075693283354856911407433952314707857159242689750329757490999406002958482785316392125586415713799750088533343922144012968109323074033727889057132460425336295995008157023104981065002213876363980700282334201161439647028486294740340240937144009159231044716459536471130616635078869934847259462893161821309183348559219421471154712510398983256986231977176852346077990285321543970108619940934671388416680128063467188797585880028751302478299750817968261438305670717332166367900324579070814127747651514671570388157709120335180793575517027768774444303285248064398718017279273378624259483199821019126622901061863842493773559725918902280164805149854204837700855955820925153829301193148323912678163556595767951772978779613740194917918040351722334151964472550051709924561446804044718235604915380637391469869323189107463957985013628239511117274852957687668876563634238190595754490671114609937378294487140712462304399821757074448058206987108953002676931065044311079248214164056050013469747338637881363158302554417054326079882986216671880784406897858035683991319992514974861061433665284669756813357016435681854752143274046309080655596800502843912383296830000835945922488732716674534333789050182829160587271918254074878726964339029748337677195131202390914220044538773222586794752217854790484951330899224503726539115134884514434072515932677769749686117856876904519242078017856174917583687420233649367653900564048213309895080435441278845095608209167902012765699443131879838385517213314103299832862047593926051011009999569311395162529664468795069323399361947862665017746330894685856953870191681951651502541593483627289264800343063025908934987863406001316284191388151777324227066033536321265084925843028007001076199815775759009052991257453815231894089980072106768579635279486437426686808924314768289013726467334514656263248537941355089712777452191370073017501521842021807605698357290552500907790128194307747514224275081544689647474482810506645516624487964771149202006398297353280160103241056484280346964092988275983349497532743349305354116801513887868514879569103396390552039130852177948688100392442212725745756360134519349560152558604660569630415556585334010001720114196129856474807628747841134106085734566126239402560099103428362758063736424061004809869054893504014811162283468107879896268656375017028333145743422194449892136082813476203441576702422422553676716373953467269228185078381441094699610820943425380870852978517380169635260734141981401654147528132174881494751396369993345075687654784422931799007925859556148645879702803863637710850031471195670248096682712568980418391292986533073935473150819327967516301744849500639306209066711493310362980234174841081486429463400749189816734877809447934667542432598579112247594587561033566155225026842085577340654094184909955144753067720480515060603667221171508179829431095113595693687815707670439679483465011952471115598434990948472177870342498267429813499787574596109080836884839480011529228353846814016524484554199784309092992774557382116589341234129551072827815705742872964018576418646550470435668258889451336944429929356662007180376245795051564857388048282371842393776155602840795580199444842028650487430297526867743255204797906483757085912270676545360518215193722001400973440061294545788976145017613455498958771588047674883081037237743929133242470455974179564416068774614916886007585121425413915511363442708819376602055401154895002837163328288721566626382680900884534480136252751653013344054711738199183613412839290572974613923171638367829935134429269249900314749083109854175228548041642320436832710841796657282408857507862303207446072510753864986202883894754898396132053943902296479066445810227641972922408680671518005532704653672007200928621857649243343934770248144023768631295705191990259527356137141749989873418451211904241609913011561556351908130813462481357723286131458146642126272882381058513492528612854008663181014780559836165646341736370264402890279930639601152685862884586038887383659683395837551689706302800112489804963080283334415123432308623207180349523904646559487724380678522000252794591404014865443109355595905096952432953425129506675915674766687479976764795189102477336351510169464699265115327102338621868321203111898602718704212006132001070034730184090347889363733680441920874529042466644963411117126571595554569548225792406498781343024842898059972521902329702784745784406215499679233612970337842630700831123800515451808998617729568324039842512352164244893671728701250587502818365817942151472857730683782216005165849915774838863432360813574698901520108674699963896191093840376373302572314206982217023855548966494903938234316609674589780820657446928003315734723609089322142389303453025206732792734707685953503096988785711707879405289562764871181358226042543514553523301713789778171367250413617842296232641948231282696284613640445031086240289228516870896573651178099704232602246807910926129397699182298422827642499121437093974939205875377496339257936463707478073723918595733102525106463995866936291254325932145015798786016960076226389621898448929035851245521511947514375535002284500231650771845298972059648598879980216139906895742902450634222422825571436433917735676650205503145531160133036100136587551781182652832895013696444292523407125938838704052341074908453509339605820613078855289811502775136444111330229943979834314482801765091698929635762724768748246104836602823974968347979904711106925605697455309377540549590449324265711017832169019132127425501744097525445436247437128311695127753399566809692643924671448367938606033200303756837059266932001245153727061112938365339588663990861489154584257727772105210983469698625683511179539776381541025578168673114607384504879020954190889000294943439921233596316724882192810200655854574234243544323594607415508516354777934518494604001877151967825135455329912479974962011789360191536967339141243728948241871480587820255223771806465047430622609091657745321703025916856467218916328154674431394198364471625799991652816692374431150473508463577591913327698701210758630920345893612585022760696298747500892434690819842830262936935966342935685334845790780582916437060555998100539332670388506643086363015342371908574995717030040152717037754337531028946939649988244700120196517282989411243300305474912027148853885404514137155794608523561283327365001019382077284014239405742995880204676826085075798924516390038489491279504332252503931702867799676579726700463490688260263879168496053678488825743053385339411491649590531553624230146950325398636206223146862725400392325641506307333046660512952297666180893222515842273778191695642982001038922392162490166772035901966430038137119812188806633427129127294089010047964871803698207831721253535008721148098919393970286940178175698579059922363205820550703641025471042163751845091642873023594674752818970390767054150798565944829294601110340099603656756362633041681108017927105303481739931890452066356538795802333842291144029467802449264209627828717098089901922370344295444043887150271274272155437815708796388970272264869802642068791896275834166308365209304414361005969198161924365180304409484034964354172652591642292241031642891680246685452128434175452663399236550151677997563894762600901018849077566826122228933694000306975582605852130925537937225797888975581266003260459715945952098324551952987836681668765363146356236731743434602873449844236850262121359227598250295510077762417608980753340670150649135870689684644720116612150158501006047550522586245500286283880712331546707522422380783710671793193024864439699372134236381251291833551324530017395775386173619884545691990632925422488768239572584982412787283464790838563250666837164935309803188379721458339820599081885364149421317966583428873058581134093522674568497022887521665474813977715438209628722030079981708572702360534746418886850281002317959254905763539897027980521930302492982259395912286661056356299708089651156211349480710812075582859947250984573592714538531429614929500223843023821949497713749378071235199337874702675895060338269297040792228973488906726061541685585185828681544425660701972084503780095110851666998553211527040177252860356248914661155140134434998538545270365085349574212855462791496466990986342849842366278839548007207738135380453426289504051281944376338151693994666662900770465207116696713907420723661674181593756997539512341389271600613631503463329633724858026855771452638121554730341102013052007612819534236228025936889426895912684094088018993806977900116830686775269570917648443161731863225705918311690661606795574311893325225117023496430519241591039177439423421034789873721562573517306393675167262819266344599135980237159735469757717752653129897595705336325212237874779663435230859796913346521252406228282349693393751141278826618257405694184008305400438434607707131264070254995445389214688383287495202536637805320501271551505355279477143260459754173708312725431276333379834802540883966930520771130304776285800493527400629925104396251860925966954351953358789203156096536334526070702724027787812248291503931924928734578250957049998323497313102308839710593306035369576376641495426991313835818219909028313422064198276743994349532934440268143431413836948124271646984308888810397525446444039030989686733577898129845360148366781040310884779161207018096848941095575660680102506179141752390551337662352544063632635507320678196477615056295094073634467823516222442560548701810616966706353508328734766720337465341811330029199231246798459285651817958319200760250472120572439436225715474525742286590132622782041569710871628558964217837012181983325660118415381813063088124068552271499599469841244776885539008985721612796655657920668442054731155025689774790262028336154506121080167894108234980064709187719018510840787308045429809648152674233155402410277257458241605515165411815578224057544631933387995077990665182807436435289763774550260998552374910630824234655112782312971295178439106643138499951939786697147619837281207036132899823294474532525963257370162232410816336395823549027614489639468255972017269679742256098352705986373711249457821011170662571926367062707717041745640212118786035813600117764097770811096536750872805121907917522398819301377544225540582780979777167404847204071180942363110705571985337508144907714705552629954187709764945505635146756690660938083529961207426656005834729520261003176872541391979739520212318553316943720105517445970100668955150042524958898399170295677329752434536939156937644703922577084723861623642322245577805891665231184637602655151010014245307075217699409347257468500574880183303380200086975407408936180472851382503135827433401438067911523996354173287018454885325838669040187935570717813724240145225838849905383390967204456148281848843932542118643518815763443391540390750867235910733745188296929554188454328201232450555368468276540797349000397503888186286278539644930275605396881895835010420389893376881758984036117176617415321254397916357280098381258313659373917402621874202251128475028468901557139168409124675304638046798309706406496939573860846918410059698107553408613324037013502623891606319090516739833607938569786557662989520713528943097111639058280258227254163198370925352048493386929529202295786378811209299249493931292152752644147633581799000723617412084801210607256064414717568755774797802411385070213270477074181117398583256546162711029236429772962794350542473847107605547782553921114604433450791676742942124972865130739739141904139564811036783267391963759873729085433485932293164084348663352561172210654833712947120707244633839316260508000296809949446057389601119441596090023741181261252498885762691445908653544779635935823682271805622937347665787434879538288832508810523641882515759532211666856883907332477289288729061558519722629508325393809477404415545596279757828948113636459676517092995847105561015097273133830811063183829184336602692150697894739609070467935706317781864757903260393671154902944708386733513775092969436210538383572686507392845165997131830074857009040896491694395700357190229369617217212418896411898741128149228663241572324279099389662342887492698507611171354407481484768793041899496936100456218536512047702598671000853080073450815012563097771763985073206802689085981575810798413044199088628696539384258401397384753535523009709483063650860205598806052069511375968347915646597392382717281810053028044571549723260801596628765056817317528400321226558765518708427414935730956965362042777654507983090552099571745530826520142331366780537974107612176107593134091046012063431643822798814520472904405587092578982367864859527429057505194028072210083312103706272067191933345908732843957975674622431031317122897323638680179699518583454350300786891738918616702341188627509724970013489915963702241277649538992372310639054265570375833154730425176744778595940978587024188934315004253466137939271296214030231470149271790882171004150577073824034387071708150242542188367931162477577004448972443274415104635920357176386058605321129704707421347431385937673047576717136661413434304666478870446687473332737617332737333869367083540961849423321274491802461972214430650582117912315259623526587826650402780075763161690636042498490390380649765305391429139742462768869057268692584419007451068220453170206762139355534004806245407620384142836522381811593303952917141471866728962779930985598071753396653888068247136567932153861373279791100776937778883846743158766309611899834630641636563541969412385430410265816251565989061874585947673877215588608558854290469182966036902310957691232298811485362075386680230213945541438087419408821492397068577429946970044206286565274102674189030546204024795944638238508298920412521033721716196035212446323445820283572519187254108283376153575984528336837440832978962845869145369386267345749328533635564117210303266092559533467556421383364807480472476540411190308019494505483103216528185732349089330362893747597234189933586680968608144819289088138692369178478222456510293630873455032488632457263527567450710050804973601305568254947908738669094863705068486744131476990137995548432879035893374007795837650661859990378951116619151631384209754811445376275328372617790679174041365599360678266548930583199593203975915179015384304232811546730056801865846390566156578381665685700203674173214180051585694287879660900853440399701640674997382418629421699863710664444372141942177331855358185447459820270039367578535579481509136691543008452850426239110301463632262525934410382240442387215329285650953123760605001012585555736774770346156674678036502955903023586316023248499568346813913140411745752317472344699035693045358318696318544130302827437814110328825852368263729478089426923366785719809907735630031703722092561628927348227349342522507860181542643476330294720660199379394339852354885241766054318692323795514474420965230173949067269224406787508297778167034431170855982225201701053463023809745098765631323990694709822148114560591380425587725071536260326760687809731251773253350984613974055830934324968174436535832911012577257404415960773306804224907978616536113827629424041532994516439480242225515004530668586334133500577442969125051257991414660491265624063645248585907928474320307243521234064691323221410456950980466493318486514008661116198485628640567530019600982621108523643494788319062862219818085728166439594978854056858005613788455151972880484745386496537046643093160370733538124833244306831614799822136694610808437623655632445739737024040364129194537182410731095679117205877288555316920679557817757159139590112680885645552906763875601036884460484870257353366910952213524482555851237728647950432846640761998418076339435770784305725886212519196009997156419695522591964352308156057830863115195858295498011700826960051703743096445218805485906492617250396481021541922719485630983168108358497627170899935445468422920206048700395621868850908003625788412404610728026020278686004111714870015619926633010800602417383179291490570602825909898148615842773575007115868027808704268721887696451451745903098769352818588271444115296636959677584692343728206216314668000918705353933453750665091268905195038272054158188235111437767726972150676858790311836917991832750096413336052369479504638727367809734648635545793402004901717333638450815507840198205510070647920484392885965223180069307863353941195368129752107586354433952446848672377369888681862934420114641185606187733796822087570145507286490270675106170510467523251236464962057727485086134280990728848058623716449369822126552270587449527079855092189587209571301940953011912759350041715033480782454740505835561402925107236756836855113536320757016233792143188785997653974838718629524392487495723801562858724659069993915006842872820369011032728528917457437583019216085427128352103405344694375352898900886704357805925363523530705608045619739284596360381910777260776036333753810497354064768865518303712483964324126289947009698393392385855857127874301228518058615050233118501910772967982331494203239775008691146008773929313609645397485057744094017699568211292246141625726437357319675477307762653655290142746759684576540278153127454272351069778319381078524110724225480160721737915449462328426046425687742940241048870496005680515294756314583127753508622614175061073254842521508059090675503194421191011051308738993417766218083690425834253230244957880892440392117649127737691841022093956116700518912681440469127216777790633852113768787790113077538889768279205139547599410578763555259019190288432191738651480128051861632096707893111620301962189149065835339018098853259428413615193256082172643136355458962411845735207240771104871897668708114069986400499214122949748066377206363536700176604215736310146579807955117888677248561102974885021902704020477124106162140920928001874804324344511812185803100889437917873019978645769382023719701771562882892203984035284036520071189992308517146320015095891865383168887434286086955676343308043479987854556998399091208234927160776242894474870202246874419520073571473337678651918269478632375125074778353047495271218399387294945122364494530794132148133120449871644000339412469428715999259438015986955599775639086975241189758811964004533017281080226513906553661966206531563349331378611159013578317737361022165933677491521673530228528613777868001678698432407831224322529003722840291782215007383319819931560682555513546264656273735951072424361865320643009706286095986608682954947277372710196415113736575592347630240999961613303375614066454410138411146423917715008419189531873933284556131192756876483174820849349111958157118274901671436309336749015986166372324036433094483611132071955604161369419231985072848793919575366818130960958074688437289594277251376159427128039130956556424086509402743353346272746994513136345176177584374932398858106499714898337586037300644867418440714414605717010581893212846978034619202904676877493976238525375279132948091555863065208226194802666862600135678673994203635463972387004511182561932910942394986707727455400663185777469351042037311929459283358604796423126895473066023279456492196706285276499516681733828229075797345082294992571882159021702424583860001220794575388047669275588481701055181086030301410550529924691106313404179833041719018255392951195848587522998031336027907622219605962690237696106190595839366254227142832627790023257857379514053810697123187365386023505470871744469426702966464092606787346513935955575975900384390613815850686066151761125216868592895838959535650106870070567381660239097585581305785610260527133751504424364468967343385704593791967350054077831223888642500326132064169909572759331012613350959066559892521034880824837824209506659397224745955913231527128679299149686353433039522438075654357013298946837067398273564318765921819054814599135221516825284808291502366091745378539147527752267735574905496324989645071510067252040461366217438220322764556386554820439584315262288738462893093246921768500585716623268403282483292323903937792728190187739642157044185491042465721078949756652900895915436527267905124254282589877944702525422918075806437976665938502468487807090445905520486792527938620338490977029903410458296602065509829155054104118370406582049912329880843620659098595546890007796072440989002476266153718955376940268632098422903317726031481480776654701816862620784182698105110872572286482671183471396329374061246488309389695912080305631885270072713556628665663112386506737644369532252991238782314648371420035409047607335765981605704964130634978980471177853470395937315491831852964160538768972778006338609043536500003121394381654189877735325770634298237284410515319289632431430678681389688676538232083502206953029975956582740038206580620283463660595109315700177327397583424660428072297610755772951574287805297938984630712141412121042178784419647047420096496977369853476676996957396585990712738882462014282855852777555725391818594622412687740480177926161112107535494520955581054532580959677619586551059639703748784634017560112252159921047806851219624708513942246787745282688671683458385410252514406791100197865086132229486284417316636608791210752971561484749053941273113304625797180878446017739585007561695403164878631477407240783439055636987032948628419773977669307128835323095026130176604610729080194630034334283748959056171475456232629876268833732606247259946480187607446831589409523565919278966420257815516545544018746877127461486828980389802517969427427944983252781776093808576220419819567572459406594542655044818758467917321404738709217149290175379095282489895872152676259555141845610081826888642331076559543258551089062003526063946105274941446091877532196882311611354623085667259442523270750823727088124503586970270504640915149873300708576845597714534882621463494506442329980394082738510457060428681277404794842948955218802977477747733526610081128396506602285739216253009885005057261154409637188322153013460778612797794024118935194707144472305609153406748662178349594807182148286619719721784698299487533339059101708949633391614652818175714677632063236339015323172184314260340438463612860390326118775788552078464057666259335237493736357292664107984183621715695174252599164929891351860869826487170979356125234009196993522051265329625425244357555318278262472647256877889747923985367011112002344965661618021346284377805939815973738995500179331158512452166726195621520309992245987452026983162688117560994174865945461102445389760543812382704063674244360818854096462115321023320470642420636212622303057859330535681308547753944878054367155555429092611445238799650616287941553251091743053857945673610361329427185512034836237285510841752317820424636336886451639668768635688123567627425863206932536808183164507168365159600819870909871846573265922188440938182264712515273037303022563624238396784511680949838155180714267202344087508926901107116001339780752568037803819015761425195762594459872713992679595923622936112459442183400561726775039025035284788053054321073933544297946445398580795037370492591322051854416924591715726922491472818309019716874918867916080601994468279334418206905380039522176861494372716962618458105799139464713855219565152524927123928797370800445682326884529227322484848092317169495544523410466278811841682701460921269802628095242681882947862319355760400961495500760143815802197955131050670022731637397835447922956834373669122302873600776087885643946403424986875157962977601945637527713851467281168851303466183484598456798355674741527227015852853475077310460464512366990228081507263236312226286942360260367326222661979020207676589782693939371805784713075507236234260293724506176228265746783546658589666887508426894557866590222467187949167581117611074093266346306218228411042535055485999247550229292024130820308410775902238556501390472794617036881810411189703276560905046433834319100499928115518349741875668168260857460368039104104828350419179078828172143895150881021216031060971138073290507653651854052868957197837169177582587183320562383533026595178763216571103446947819379419275597384861018286478445879490478647729277916429855828533268755396278147427757771662034058101827518956217652675493571424278710561514831811217558662674985536476858043042603725220185540751132512878371000550794998315376341528316772940078821009488954461622801891923377100278489066686115953732402289074128789553291360315294693035555605249219842659118404209696856406771302671131415124165586978130475452647130420752350341750457234453837905103047135898444446202172724307064355072986375450920251257718897901427931163350968832364367581468464025483884959995275113789514324704660529511231419854771699985402925215138277736176663226136959282984936198920299718406762151869348674564626528526560758111105985783021365853337358198679232639215094457833909082110798891360172629170783311929396476101539338278161512635603712520897969092160119150769517043665612650635087533498623008060682644722672428137048598419535302405990217897035649475787049304646604928972217506819137203606712195816466219987770964311498073309528884004048334407067870080813610090364552024188480152378768015461541454456424199260015471956557525063564743527688996561251866957859587704511337761927667547759408753606935252126845935776535916844585774853500730602634278470435133402817487821114674023805058470328656136671922384818988515477782535392924757379717825411939600537069127111858129005416494825902167479688105628109389904471681588676711819847680974992095891761905484733312496295737733977556437617401634609859464726979088626984744937501803303661430838466238556204178512086491912139776327505352585232613073837814159337665920437731986141917911119649468031215475650412411246498905219024572085182553394672363864942620810105692547521295270553369357134766158061105694682587740568764378580493630226777256423017690793724240781041841180708548509309072825478982783082736561374459331196441808888430206054855968998755598246857492650321986862746049133883525007317746184974747369575316348032825630779979097085483936321439848884653151388688219499558923980099437203021667247471611095235268182068150685326084216461939585640933933715956826910508147510991525278951262940737517556823415968600793814859535784004800670156529833782926360009238470926116033476995950293560818073566501467597745040290384270922771259757733565285548665115714225952959416607061548891099734950299296610898264480213513060626733827584212268136717664368662352512587413972687873854116367331129718388773523910838694733361345473015272853521520301679062750095446058184638936824731239325728694312869650027904026484338670260051264125196002231521173824697525770450287993669643335244269476716537115745449947529028807387880722426803790266693373275701392123531985522606984925277052760308097217963920760055873038527721411717520444460664240996245759067348214814932081521866056787166906328295043025251903010914689383135653000773162436664802098446956177628753049567024616537758618091521025242074140682905773388480727931365804820759844590173225769239691837975985878493305882887785405549019099170018334395810453092835336501821586912001547759604881847662431156523467600252275000728221780152647778308663361195796317072172255546572252456732743910724007833367891143404741746902975577987479994343992810846034694048552427444924832452372698507503352573200772533469932652080346917098431738456303759634431403530361402580847592800768296095787165808389896294141755162157108858328370070023157570197843373481188021618711585938270339388237009217637937015674669829874029356221021416124384010883266303177268211103845170860175211216200894276638209670495562101538298882082866178854789468707520925552351405828700217032195383404763345143482697516240317316905723315188884314581691530175606614205418095104656536169335633510639974994558978878640199729062760812421858395350879667746509913408380624757704578749850801443285912947607102657604923660450015553385180436082318009837195233271342979156116745433783407363188705067076804225450371170145134874507955540511017037486770021808343879714016334666087166860911661994488864887865176236215630982387208693812088389357736497353902167151998424845341369622950668375880022836379618754261914899698471134119471264644655249869991249287013360822117315396876985563517227927999404194567398779274876080323090218624671916227613737189598432209084293158371363392316695334166187700278783190535918321373323108578900809370110727922265614043892351439266447470131065208120023836349578898165484664081916096092925077035603141796219791627305971464139738846300377193349214654700386540157948448273027664359231546331928525245833052920092264362676569754360899826606899859310609626926306803336502879066034076404659590192224239807634204249750103532223278891642181447008667925680949046821210795734905778553088425943695888570229169442232996200734613120645433511830061095396259910020122148347753313247267522004748659959740140514389190204264420630078734080221366149496975993330281333162913710728488886956805841462888660882258721017836142857532117837374015252678664708258781346078694295806099712626130115510985035106232664620573617961297924482071276529765001041574836724731396304550448711223955574126480394223673934444064303795216184012654970920850229541986579745789757362108213279568744162218598247712354185036232756060224600456939784982251508711534110920553146370665416320363034897936188615920986808427924704557226692415251387244485226518497072902226197266845144903820609806061564577710981282541648704809614552853533091104126730220951551766270290242498432992640673817470479540468696452654594052313608628710335475066097758124446456509588129241392480660362218176612502238216706800277325093477467658829309252429861148096290427743240401938136658887710388113533788672832130546677949589339835864970467065085969277608211227897361333423839565476335794809857474529982023745679613848731201933248793837904686557247817222873839971648003641520338884207111314322413885275380600160519184223946496139878560149100413502477333374733188076227564197986116330800760529440586016353589175793988982703647104181625119602317250534352999240390305672189052338423156498524781710109378533412988500979946151580793175360255097471780939551199924817466606964542286628179840890614320860439226818524748486048390624316437321897988539197264772755398074348262590937710414964032462420034750281879535205206097537289750548116437884816143226425281209269546664907360892843010349321382188309280193141407434756460691216343062512918931979042259158100225317774254249580074938244426674390558217391831237414951243372031089176672715793106588595957427964236607817772933534208226691312266083133937808162503633010916836632709485152089936657949678626780340342616006640349577097577540546005572114159283884131664224331825082760547619957440325973487028749343607890182305313466300465653925269202861670003299741023631499751444135883042053331731506593428102144294083020867002204484380236496367722039181137970634540349182817607223622211257909290519558702385112578519127839998171801056595594702942072686300386689373082563923174294919675585816745568098277258219563465890295893253554218610409072280201983580545390677641130905089335817284709241647074723164873017970826623222466776433329030177769572168283710537786920817911197916099149177171563028961606432696449691964893190764259693364816325327885838768819482433366893946713176427610585373277984897305877097828193515832783032352975180318043965866298324181354763032564745643319512197847935514699899529969537656261692808799463558338380333304072790180008917012241943763474225820211465952491964322526458660493052721967593055522897719841730030539608970012632983066241497815733874957597534676865960797123253809301418082745659187732641204770904095034911945155421001137222991565530051617093698558574768278203554346053131040448455515690233156923336839303712809042191839542647139223903375665801500922927107541332292159284108523307013212344307587647984097228603778730263324396579226211135284058418866053342210627249533794813113092131898334419042983437557411365367731137279244726512350491020373669993450021421936464747637890798884574654143840654105288990101794921229901424425198914045948045958558684812135631223211617632052739393631461779671332501631992323238851710590088147833831273909429729075741583825344081503581671343420656121405001788378264051696428905318814608349302417155196701441941872785410445840410413154426513239100603856279397219715812707653971366614889086964461898623620819994025560285563779382614758401048378318988004721769178014422270704485289104024904796982821130455951866302957952095929344745131301669258597670102988437758655953710481925577780075928476512158409099217794556400277432818180890296719224637486734859569674019262260564541500299077199793632857319301060901594082844593125738100472707797126493860196956085392963060093094214250247764530070795393976650795304459293910066815217922232327446926670542317653980824730332012817053039010715114913445373739323053332489731534498062813545070676978430526247500665352905865007872125302976115263154326188161117033779848432785821147999166323293040974376262534609643600953862769857183219464804044013704725907767760475262970769444531449618553847612442580192660475547545901880349456861198061843843823287343077322898160545313079525555151571715651087087239455418371590745748460366135133814383515837945404840851209697034424468109766718785206098920223487702451717518833399410982480202069332389067378981429438179250308604058724987506005243833178216231717194024798476540437561307380438948069743249675901293201521784351717942913994227184508503547103422885026483257142559131592021793041902629291379911473412787965057620874887289595164843416565686299912256097989768245439794662339476298125996164335517459391738395286732393758164183969383270872417727213054504633952984434228180217177177055715437726354548921513380679299606074508998642447528029093793180978778531894514732668352404421381883952412869754622968765765610364910096717628200262435282362726755565418880613459329547805332561567384307290529500630271546526075940469502681121371428181403103835518946732922288460034441050063137684326081279946127656632711089744690523494658489439224999970681116063496372451243819332051632593723390182192382684775726350877001650733195679635774917721011268616433611547309885179664787980051091145052853989827888478225215078737432113604363648252877711579225088075331838388933242729320951281354769530924580956007090190922313651074433566471899404957856017391369725457555594352619526819232528353316686407098236019445086321370002959921451229575727183569065050467104918266519598227663517892338267151355302988885463398233921125992494651609440729668703149862765778616349986246435771797053172940209969593681473783281503569017893466703326750415741272697386734313338600534743210233341006275449711670692369617183992335528693479747242413393927787989223769458079753430098424625811160005794426439668604133551682274489629366654699732360682716764509113891720750201245863352763634786393365765785165974747781125968363780990738323328255438166798612377034498656249773658366177647232936823807588526499979725118273930551745877602635574341915766762819159556604271387303262374519853714877849054950556749120945602254404860254640561630875215085443432142207598001137281230327888126784191292229220061597859494574386200012584676064949414321852061730710447780386848973166545230018455265624265708677614108124300964073611363834867430632958509207656431195168058215986446361846029988838781640601595871572327306187208148152799836291629077879719272406424685141051288861215698381001605667683951823662751938906045963408841385745822015573039934949530135200372573231405082190415403004825884078900056549577923616298839341001058721149463337463227781209860328339726355805375019235320407455292588819548134231494357919186505005089234728242775946912732979907163761413253254000945503633062528052866512285737373708863995362308569720986804312414856135729454813501914632192562569600591180418536327247240936161750321184424110117648340878568491413655168872030361098392063171790976644639517176758283064016053909396464851010915010973452556669813144954822832107440968666218465989433427532929610435418206805402173707205059317417631151265285920024631226596541379291841004300272885293773007020933403726133840962330409680572535639372598549087517961472337069488769052818835833085090357234082101305844992068631906664428583399165584470715891044618895456913680342557709402011226916013941892545012010422251044023283137692113067453595203636794016402415804820349285046499494220445872328443796054627800403728306865976401627282452943305735204400355403523740738329636066104112609588239594664695303636305910423793257265358843923382739669139741911001882459029196079807085887817630252042753209580171866567585020360437224109272207041139205593179328818053364645359954150089728555136095709572553547612554565657614607712512267937178310432296966846640421594559909599620039968690279246115432397329499202298219454897260647097002074217172826463334520972995645912046079285337167622306440415737201648274463035473630500471126205982474080093359072781560211213781606562499880659289906706526686171170042149014498786989241970610324856285205871568426462032777439343116461562063984528407913714699815112522074629111748708827987730963816008513792503101814282443077367648316220343501811012450104314711438302443050965181892044816170628683734312589647435129873434484205960554431114594574864779368826238130518304638661544438652751109032954123463555043304294714397244651108239357782859193908841390262321410444543185533831670158637540195553198039165766329256334939762504798188162492851317705618859670387113342307488478728314080198942433213672718017224000921232300685951317600801082442594496019930960344748932785842395331554875773475025979070931931787033116979076170092280604723681889432938812078564127887491497771703243708468768289613448972462964361412320230553742030162870652530113024529074198917223129587294111361103943033333995156925690374621675671366790248884696487096083084243284297524211615901140570406938358734981901752348200696152484184776360533357004173335158622468898137619950100036162828839537589394098020561561310653057366354585981471136758749010618370064593610100237659196725136359053515647221035003886198538933681519235478252215521814032801210365430639721956363477065184153188288611505163903800522845273049905489815193589246004433038966666759243676015470075669961883317273266952289521073824885477153618931156151246793088298273973418214043149461425436329755340696974805146114118760964022721482898785929529651346450604982669797368386653359661657174396132015473945210390158503126963892069928411241921841348696971839201120714096827305291661981576271685685709237299105941360430184714039461065153006120849203834769004426474903590623803407117066404082233454754728365909973682828787028734418452052252391118702995133247819005969858906255651415470885568631722422574751404404871783489129213054356770520058289227298349084288483959461841620597159903846994814608314976187857310073605193382186580151934545741658552160528493755245849342526386900941481227250801838882876034637131087035906728679162128718524255851500812049314848911296508066543322115357774109934313624009993735258453576492512963409555028671935682826336347791951503737398041170478826596360309944690778811616686200640153943495957182795324736814153260782927640918696784864284805135974206732937492332829162938634749679906101443992093504107671829190366426425048647002570069131795681820812882995857323798698916425424306651484573501193412247269673275778419742477830500890755063475982592619457174305615414466052590576567886106364972979831025105158789748533749413330917703611280769504532591319683452702620122744589643232462898126776640905682908508067716543655168846420624949592975926664945171763475905956108801498634466746238524399348800914917275220413043020490617128129858089164290033422939093431279233620533682745262810303910025602441200246924765697679860156747936115364056761798717242244951439246055715859928232059415613969561635251537635396151545427556009147834690969520609376735686588920973865712410523256237848762302377970613582619788276063040741689791477965414854194132152947240390393788545673502178151385467880223979700828595342138640774838298919794852752944262732241375812605337396006699127889301062865694299236041960494048072123953906379778321494683692283449369555040841473546354915278422341158057495361272585298459821929284306059232990110262050888202508090961785816615215053869854666246074719319226454549256844484031534390858366142912485346193956222830079800591617680621025049437313831197431615987714276841506817725733054514685367705844369279266619875737457019953066547048150542779792141698156891355212570982494051310367526450852436067503110561204148097172519622456852132245105399543289649985831276131793968481774588401571498974250334332965187292423098350919692942965973339033294299113417394735483163659910819026225038887075692505137679638971035468558008009769703579982212824831234126239028480728092556588340288206571413674798867156476875012281614648798583123745573578019437326246450538034577013568813345509066622633125232066704326991917739793646990257449547055383484643763143035980909747656447819066674178682805047520630225189989141642382219064228474575629572704654064296440754116791186123621886705916442290339532198333689975636134580607623486260481262994467371727509978316073319737755158364222059088264133956175520695064536745447007751485307748983013259864392409270947314034166339281647347120028310746743320629995420048633783891543718733243703659624959978277720541419769415143078519243375253869835330329631851217097114718656314138971202069126679151459920521425995631023017957255728414232239030504872857962534373067324480219915737829778998966435975373393297844156295860797317387937698910877537182157799203167237862896384200747151867004839771100362226655430029834779569224057593899367339576724263662010708405993478722708759835770613106581026861687146582797053938398632023922469910545986253763262883085101403678053814725082590338705027812543694708895635166797712998888208064271632349407801100947195657043055604160843550009243149780915123802009233593644594497267890930901262781070859399712563454050778268187510227455437157151536875471021316482170226330749609357603316289415455687713494278489008994134964782424692553110530810245445989233033217733053977135891459562090353335391420752280280983493476793957545955209507796790224471242461525251116210299426398986251416541702180938582077027610190060917604238253544349660050573932554877474897190377709278873780438691307072080966866334109815843232185337556219025667042292181253241430268734641960791666286451464451953888324509708840032999434270998733674356127225532555141526194370527975674111197103960198378788460048204694956798074668880604321674954219277449752625309466135059843607771738257710794009159541307969406518256821247861081066398546187105534883348467276386610018403944139906221508065522808316955571199816050037222502396508063547299661179849241063394204965402415458287982510652662200333234918807210360488045906997333986967935888703894092651323979298882807120278819673466959922375689714580076756472655197713547290316397728915415220933024993802357183228898129996863153797797889521744000405838331795334510212442270355204896691194227268687104902424387584613263066365518926211429825938371892948612668965882406420654538165602801373682033690755496575921227699203923163690037742711463032778305877853706040502786165231802793433817437293714898954610076579145378801690951809993214665893278132916010372128470972698778936590284195417449798415995384155352618344279179614010336589814809049335709453781684452466306738882995063478363484279981818846774272668413824871849148968751111966134324291422642843966338928243387467886635305920268107655932961497242932487829475047111481660223688457306617584508867273186535150171326421586615219246080940090593307782354458130446207464954831097003686300233632351654682534953020662642272605880589139098887849896668823937911502878907657379989941542444947768504734553859537648012686594222921758157548444485614650375008438822542001696601503960004766737899376280434442902054976931753070992571781459760435189990802040660333125722445508052797096385970247677447822611850640587311961492272874383615350532272584889548368014438483022857059828704934862566636024081182940286101786294664540919132689561952871155566878091808080411208930463266951855176249314209949871419921211355746981707109921647375765630717154131138999409835308102170075903758292162727444011684139963643071134304529833560760672615763478844730722218828568175256626969590158474510513151526000216977184801092676140019539188540748562524035485941686324970153054594563692232033430651506863122103570340888835845907178432938241820661078336757892524363886805084535484979078367228588731395472510465403805087346066316175656409436870501220743192914645411298683657712398998005549179895488447842790581840133338761700623710891436578982899536448075500389827722599490304245738353359862517597102641410772615017973598724983169508799143943702506192134234852084081773242313862906545964011958641263446385432130484606436114588819070182372621364925193535382367059164482360546690447720541522286372730235634892994293783380417204274222425378921573534688219530017874995230082632206497016470172582581603583702394942547740695836019114927970802730204009352271913454693552945622668987122154361789930510438123680847132256343938641575773608540018831267818427871254416832719753923633469108569224963444896476900775640425235981079938349697483696794085985112244849474076458797035042125391624551671593169785282003357120261346323152093787235383941152087391616381402427263690647653049954968664359947741436130983033857716416000344318882350453935086542435738974936323867231047220015609061533153826477616009115300611684737173624317794719656194119364116160680753749040487743429200905912810520270595751793722161088487898857360636532408124511407495064671701955814462578133349991571730194588923971904615722138709082946361204271204470359119464299238966811810289021108047070813328083066198846428064160406721398538930930993688536137090835327027631556017334206909275161905782230200925585481558697674477025213499121598985486036136718086927505368508883674019917460767894897314154120137339939030693192226305044571221722797942726824528916527589491265394278672593156927279805999257211627019408694259593554220380226170810405002959188861287318667246437554629761012855513330358359818859511130824846883632878752593982014318097825972941440231897379617783714249959631359951076704790050599730495728019594889613273905857939852689703095056978492583056798721220632056612908120972527837276387866357767534193694171753067689220648385779043987517211728518309828246411609196126861548276337117270804426251852601708730553219168473458811453699975766763256658039561830237648088442358198186308475097939636750713451818906372416507811441144291996921226293717053471613360020031795344691367085277235852096299445915895046277365465813843918280582034600012834502637394618597197054835504708708920911329241496012741751344453085539829358139000464761223788494742664510639297018728505342761065185997671922340782995821096210220567990345815168656054497252337048069926575127122794986727467230687167679508831802245096360540846191421072054499693739931033119644268355758622373631095216910765591547691808318376173065882090743160395517157617914856773003387538370355417477625558450871561335471417420152485059666518380801710381342533057049315427193828375231198350907401122368796123350136589845617749240154840754572580798820892306227608768577485227873200509218664501770229909793535778670464283501271264724261301259156999558551880831519188548548833072585206021710169140652421117068599473665864043061033095176427622030787881948019736935443392425741246003557551125035463725096683904204560842384446684092753013839138725512853628899728005051803391103602333815309903214654039713487116335289492382596515312755158918794828360116105800867303470485823542959887200552398198112685440160257448753822036310083309847527189338601255698405625963223295791537767042259818799929627545706510255833679885248202944860449859987558399783055090218104923550686099901617494669042765557533406241059107258542960105377802568192836093051347570285878308447164442081530487314131149976205001276790075637519016071738591960253392551768610616051501855454039106061106306553455537196462198815460653334821327951559311855879552850708665570526632316881095036066086596591247729376981952267681926710281808952909629211369095315607561984748370415809366519118546338609367334010482052781957798745598425050681498140314896911313781976386296592038925686234684239811255471580123054948820908862131213235958373642188126711807682103538755512182501866345147671082705345017257660119613486426684747403472923864266177540272648003357836707468345946718533493490823430512615980541495625734788643914117017934469669804970548245562986196329347765320579842630989795881326654122665719792276020188892962854453225572474446553750686765311322316173805989639132852860600545580262650524821346969383326488343541275513883175939050227773588992339060992831126103412273712305176456069123268991407144587323969596906880019197236626017845838867335300289521997575530773050649262451685090947723023452234842800011144613165257340453192319234303023122213433244122369779797601070087799087335408078379955892038493426350622219481834097270190848652071345124364279351361953855291976580816487761083248556136841656344252912398659750635998335483161064045080478418812326623680660740559959061254356422523863943405924569343049571568637328356948381629168628510487607105080524885935054332647769971393584803410457035932638357744899459117941459772570950382693322927047218958658786019601980330044566236699088816738781905494078148927472803666032352024484841212660374782713730240509970202765384108320392956283578298925065247236567508951158490816070987967502563928472131242356832021101344987056980537641844539097256537495267585487774757628111786776621821834575269202786484639058719344496367360275162776223113176214852651221174592082940240476212546598064627466194631686827447269135989236639722469887726651623796257156559795678595111231079047295048096689444313538854299076060520531173712823259267734937636019487864213160390089282584967382400064803213810314205448548237152426087313618721341789694063589781630814553076394979580196965145652956670051603921912892854713546881899096523612488097317591005671031505103918415605681074328740220442881246583903850021238302163675223540029719171217905322504983874326485048215994103276328227004902545181832158081427599432251686166543769040640603790341215973225007596143829853359407232747338567536455409119449144609078086482971699675927582757755945081359008331966873918683085436469126453856471103045452001888776348753606891509701771448436992788032333041306082390309163579729190011245590339312260433986293900904060468330802930236014881141025609902663109281953769804049133006114430197956695367441985499134401351144920248230946799815009647750315431831492102405289327967195347029582678695713951389189786848622622781922006900787489871524092827038438683759711516486527958354840439046740127577997386495873082492914855461033832771980195969045603327881862151404597023165732020875098435218254711716071647794817252304268988504651591792418569499811159131858718150451002350570639544544341385259723649834518080777365441322089607032721525448179951006235815217569436740140301066750802801357956975090452724873048285946220031585215121353142352457882008182563319013031700161093054526765405159279239876973541784546392864362058085001062859926655902759448452426157594384417889752491618968272587378439728732583369933739328851775191023672513957406974747042252605107485080334693059167956083210201849903646273315747298613317958042166771197302379267021735546759412648114324508137161502708521334980754242492971369148745576845671745955240908097625546104176708884708749428950426811459008412821708789531860865270290032382454079734330549833391217890551111939872212889842182525783683744311609735975774184171202645587100649881136555234529614298242606476224088997260280962988979397052470064110545072369852997029578576239114786792780245313421594743919742958365482010723031802811240819575407122141422088842291672532134589353817142303798260885839435361099089543994151244746478903538907603758951288632878979216223259526449440124493087925018033942670895835813695130129678191519055326333099280594925564496013563536201961319292660049109138033263785779138420594884410989999593028271377431860251720624397678015363762279461561092322955655533158560217791919983915141872328426372490614848129809941615501969441378966537706485325960784831664738125878681525711591681882674319002190330690698359443902876200458045897235508150520612615997538322427433446365643411345897745880538551511188350731987899588973099900967286342242238914306284646715692631165506272792369159401178854317328843399744249850124529556042573911539188131137746701224356050787222799992907193355787370346272653250110191870395489690446117575293812224656744000902913793839515916821245021508954992389138146736495755707518999551725076284097593729810439084089046088418318398198745433270444177021364005342016703350356709405774801860627760915885909777560011211905302795295726449608519145959463820580411157724450951791757331141775724996540472902157793252183081425491354410369839873849242847175972736912549917402788122464405885889048665014255900018574213731647445289265720118861244473135512977038977126831138231394796500585167123830952801679698920037421469842443858679978452797055745559685848591453931902863408254266006683693296772195540012916615799672597088064227559249342991041952158137578679782055827119819661605993681325222852298389109001525985106871806507906241921640239779204403465598700978746391158750590767961216023746432782774425070525561686573887483683362179044058304183999513918033600362372114976815103175654869179435616815513862673808249122175453592021052608469451075035426892082787478183984208608063910071434995628949293018826446405883551663826630333394920898227390683720625244146527512109157649209960720798123681781112817581677007217561087493840992083290879617045975869749281383552326749676658182311098872963187042557566644834764373431351571308898259754230350673395258812939548167507334888116871015180727654673563284117563773378412864811625021190828985569408530153496149945927342013860836649597795778929982721406955253837685572452584601048913294876495249688163983137922110600999226682817532187443717301076154496273134190385225112213102845479553354239776591929521111836459270774725997929369996852604249184268598520253009589165969964674412391170726350381016421725489351786061908314020875481622730824856233907210867688663520737901681058259565897102847411995117755503408899747050836404791443701601994251643618696942955343981732291646013491009122475122528523061752795984070634172861155728710117064630463132072984545111750670577580874093193632861443588697737603649703327381245576944019361630683819215138826102734535804389459854793385466102626527081932621232444077894234561413825717680763526476087409651030002431358651043404905422627537479008289342332479774367440020381695147321612199065650807708653594711258188898193497343808523081290546876245786861027122653388566376754825429179334714555886312152291967958177267103951402553164429334765732885253135728131880416383581255117185622359122927175630949393218695705703481540088905367996207049941008315674733934974813930170142439790066649201629184641546894021347472370273223155658970416300276817191082640522164322267711539207005201045678768142274919127907467732772732743579465428201169677922102013561665577112465588155705706052022473855356140964257550135526371284715900338519955799043454453209333065291160018344876510244743630270610752292975904266722205261779114008358511307081555785534489697073349967617613504926388662293031625194345463471707348164630830139053786262464184822450715460125188511162058991463845791781302692421418904041647751762622818981751404563691867998623681132413553322876963463560190279417214495099663162691733353779156468571713069115155677710271979054885970186958425175399946834257294235558902681507832644718078431767029158220378428427356680525394403485394743265503575758583530426620005686543472811226422478701745514769638584390379171044998267067439613687666841813577191911481715418971146881495940727891912836927058992117677864733847891617832287273867394627404587885702756674383665834282292073718040435424591143236224283077055562612048621112497554858079183264631149581673124974817688625535714624023835695568827585577483822650924603219125559065097359655562983724307918226841742114395822601271576530792563568171189198631779853031201780272474978973468798830390854282935638792310693376122990737972429922577514866813302072622319995130747189717335070782078015424982003622284670073559511627605422598006993781401976745722844900761513670159365355662001064176791829675854073515315760390600460154860650190269153829042448401355929334704291897580049144497441894644969283497832583978354777148860838189431212571479294772661377306192573059242075114776885380439857441406146287935330807809232022322487043617654290042860086524190861046460461517881830070406387692856402106336958774106539213086859207104818539487174276777203470461875751917930809108802695778235536598412148062001595713818294686477248142056205550594753682446687149791334723838064757676862268983410981208872515836181090523507302200094867456327275022755462741524773894380092604192999435232459070670457362859169163465095132997586475828797527947418860250859029115548549858342783391487884727376695233872382831759874438700146548919500067606642475881899012814358750814978972692139205595311478270769859114551012714519260087927088007667094120859953560263090229294737135225944033167109268393376335446233013391072897743661747046012050924918175613285632820118194623308733918440332525894501014588641653393453382407651389890340895004651513643163156368506792792877185244524921273971011746389261738208278581552858068792012678275735002673791713756786060384664779813640877718818393902996425556201232941310540604851087571823917461625091199421249691470632382216158186896335283821798578660654104507528976424114656195942510687375037776645274020632468388131023741843314938109684694677184661750756099738228019933031555278900421169674427978614636802112075363108839739967018707914661872996721041950418537380988862200185657757171884126370497512108755556271143403767062147221891771139929979390193831054166795314849167694667043316475908205765810263780217181156343751843664829464620203910051158319113906859131814140697904382006803496533449558440926498131045582403132133272049503359739376624037281008745891703285850643238109749027911141005597216172619727404212863617072802176851828732454959942300286550593511436337981414873153493146487536720887931467038044513202867581192651732440127763424845567756410173001041292990781663562415727359083930756531635585038582125192314401342154829375008702272885942084978839863465516390444050646522040217740673907935213060813275691211588888563115503184160978383068048863672383707863757047800055149879157129950971989831240932642852959247800728788475580948731633980777869531802548338457660207959797752150624014721941227270777856979650475683011794646924636239149468571581044946884356917077695926071672868747047292138276992447919779673258375859514041331310224116825955749458310138444714543201044196088928612662155872634368572529617917157041286802488731504474039625188101413515433212642407977976843960450544582314029113721025367001837664347109624281925506937352482735750324302678724524201540019005536049919562305859879805288384429019938651413088266226496456703326706156855183096135347577984287183458180491261148539263568001655310856314619997040635049274224628861345143111599587440357082553887110889725992871220801653574439087998416259273291441210453618738757262403659763939105394994998510179740473692399412963562215691401592631268009271508050497875404113984134023053763685491345981994869763076285209782803990851229671728873065249573925791014649647273743360560036107242950047380401438893888272670904095586457260310405277092773437657479585855979982022718825908341680749923577191433243071189920619333423404897756117727259347004721043740187464566478386657175059855859303977664042683877577180312342605095572842500043432205478595705304193356029256264757269688865071152568534119413591368223679515425041536173142182253280962743927780331616801612387918608254670475319864860934856771736556528972513330036233758682344057411009576308925460769372987214433046466413654113663807224457094521641895631117482484408103800183898007527744379106067955786576089574558340384013748740453923978953630891046393505715097465256599199736707641524930949780962920172693931683519082127178191868930313549390558160527189701438791253437099550489174580451595701844213487936149924766857531790100491664916566865503892196486168622201915612386037023450468217416815694118999563218267009169332477451530336191671253985418239973492566994251915800086598053352139781701221322125084949253449484337740661515891014876185487556760668275946739869652473706057630146035182732900097204525217127625919435975109908108109389540273945974156167232178357655116744065010370072640417543292093780295920570688220035460329206182588290142128222147352362533234677029055469165424416939892710549660879591284714609608524031741198404457944996116148715885008428140968780150765803928948720427181686634901194286320477267727991352712479864822569832323491855029300097906388262666652162043440996523989997467444863948087393132598242131906780953945987602189202064550282708212691804400740802054217911187837438157836269376047351469015744156896603587333508857253719448949627692169384681831176793272792075338673643243031853399662955324139496485667756923729022601302471327100029527187847074261498057691675150839122546631760896407351116640453837039453153740642524511534133697251880559009881359019993258959665852191871062658934500587415963664500121903695703381889309552231572109116890885393612957619860499811742470004557255172601356931639269646790924171064458908377721776808890118710029074633475035010379371446857521470779056809226294248712249051043613409656188751455422444839790189401089076088950824599273433717237855498505299085356998131872437341895307302558949651734756189871711973954631121788741979264762099224400905954654718742196651197869084035577416852010018602218761995963310619502536484241157667641237446364834920430202054680169620402177331622710986151543620766840441464800985220929095633104204567138344494703416203056236471995660534443542965650875137378184027443455823037841725310545400338959844259945416499101373662937365155093739540301973550768474589154163687593932708444605909959712340447008915699609779138309393829846123739856744870626221952328030539542940617704799931140311793987480121586856427241369594843471785425347110796000666757502593563579775384580080688038462701511362206699291634236777769576187053708158557756031538053010987974533941392605408663644852078534855179882171520267806761038937980568003565219480943567815211402225401836614075150340300707562082428285572858717943398094753149466869058940864545838226797238827094049477759217187651394068791319026434140025437858938310350735498146618193926814708222402583476020727776638635660210374585592416846657340586436233339449980896002385548819180256504256159990908317250911289339243536365277728800980767269492098312922299178443057790977863207761826898165382392875085180313951161270791366009604591816903169655588230493731018714870093401778570585355380294406771485566494271107527802650100148760477326510762996828288467992654809914610383163298980319756392029111012998865577428185145818736707538420573048095430142695260733618041607269211245174288423197597709095592104605233793490806829203434348089717184800247031707716866571102183076062653412186462313921354507395153862576683747873847755579393830825492180923891462035277812166705582148303450580268181577897545787813016162168590125106049157452314723080046613759359873834984327702611699230387155730298874962575668769808355354164850002962099281013656104327945270772768214071025626317040629746629897001221067465988190366103501129335413083632035057671649729162446933826088795230783787301852164525137886471134781677369589526304771066141396078458805161466073369571736100949607380504092878228379242264703738958905288298855508020431943942722551938796992736756684504062330934723346013734463885044690811882052390558572689052742051985261340310659859648447551823137952306780592247396387049377336925211792663862054261969193911631137877404571404707953941309398167733483933125570354737081240074351688291729256707150052392699944182598178071038826775923287273585050813662930139806398092132895415042494510916776504300087028709991246698069004291693511700875588593424854079457940536801209009787430122626630819045413534551935578122586325311830918046020142213747037822631063403727649773596080749637739576190429088537575800750694566901455568522754561795713913338961163631765016891754092248688093348552835745116230186771754029961724472286531635432427780407546793141517639062669260277102712752214425120337954308632742590996769486528245197185112654631771336330815838605514396758343863446200214181525532810521514559083242991118729113252107889135472906511080013656985172957089572097700691353987309717248518938428970671554274569996956793083025819749793464549420677638093305120038223196010245855221456210849623716055249347893997870132817816918981681820636723819051064699758228298566454641012690438440861089691059621399104692788693225210160662089821163076233950608571148850276388270771014172097296351664180657087409726682396524345097630160288065013340887628881380117356197885522395834783674811003258248751749836359626877929066249268548093224375533836208087513405033458437568269037174636623831208151221034042283968496466377032264017532088173632975913753838845374314123468251158211181513171135295471915015472103970295565616847110601153192909155515707420351685255729081370842121967405587290129806448237931237750995187561323449875973443282959188874836161026794584405386436019779992268015817567172284302100245965894260436104691372162324669640628927127098409348988004907816646818941171047961948929243904441566927732346521372300160975818462702925138975429312497482361241964996566112337715444550332260589659829828338551567120025326828414232336883757383904912956422670265674015627384148842605394656749500803542910081407206007540763205327431771312882915180090541020995099230712478324837837999731117475412196155973812927146692103722182578876813744527384240862108890149539857853607715801646761909163010883375356841036503186353491944954830541329387353386490788550012581265371053807203529245421073684475083418813127928418679366264153222091537575205072653215647603495721911991610768743472406059355628557983000603466573026135948459283082193280015717872415147699474146556684016752443768035229970189715514137934444754837895871736688315938799059362612469283238968783386693893932439462297542565879819163322714883145929496415758014596475596729529346167007926134348392004333898552249556084378613311922715813808542419476557153936307047464113783042321109224431264951709238473010743691194084149871637082207439450225797777646741096314716170337531558739431194238023708832469840823131990382377235363365809491709710278906674112989132431289706438778763965893090759842204799883487565165936063621985169357513991421025879069092654485937162476663860832555240693224936118403210650248907096317172477353081358531184587493877216345045431522000902941790581874127519238623208550357430854680756318871653172073003842344426670543036065849910472848040498644255171799641609497440849173581945010265824970668284300145591467231603306367517310922492822760007320442295613369229060157142545037507903812046668021536730197471334580490950403934113655721389515383221560688234375503054399487544570970658380079160977002721925128628391327072085945586922345050999067231429416122282633589693350842239293504309647006560936480003720357331899435704987914865851851623836234830925268409935923026602523149453089314556076408053490755389695933961555819841315194006329357570596412141701166432226657091920167137554984715485900050359424372441814602526116592186105319566274429960659604080518055515975125911733129157964967943047211906171684322150200239968704317258618009670039742089181438441079518182712577216328882063245159701006011654308342074793441435620022344326829719687334201496877519653486180401064038719579521578029574784189484653978613399753533140622935945585401739999369861017757015140190066929632240089790776302282856565658029150720738366782004680850080400432514006496711854308047684196421002084623107771239915661718109743035578512012607019283874729492553785911436149804844436605545833584085573983723531621235861835593616729277913986518267728570248301211086050468158336414652510057156546061324340352354254836531474525893809683488468597122777641975945158455534743129137940825006912841835128138553151220201175089153600844597961671934445400718671202980731609994894030598264515943475689220472933254153271329660618424208560003167554960632059124643590634508975864168493601435249523949247988842389214697391822602466864218075754781837506021448465864976944939082201783159733744709523848374242625667824882411864504022181501106743988118426421458907273980529299685247648606448790650905960094033828404154650521348001830872870750512512631965921234255806426099405170577235864547627201591970412378798794609023282472342945732040134959658212945799509897433799689044101324206813647282654595926572442174583244056643862960192619391408635939361141308710116364689492041762734797263307676022515851745060799532147628363612773797053742648163091261804752916099029769766914507037220538010015837202303506136006100925446859889939726746703325119657906259869452997476614426373291713242326709013773289307277866416244634337086981252169602832403928773000573112693219050086491381762583765657699929030063636717868413823281673576729573326621507833487340249058747601701850787850116834722611575175440576977414461135652030541578090831486426594919838770211935917824289368804723526064537721084691418620300975493339674731832544829465210893462683971224326582858503938661647827988600514677223731167819363158140690136303844135527902978031912425202916578510122941127873245526355575663326509865464603981418449944108153612346213263556116027797090034837593676080867069306890817220065590894978860139666560786713362458958735483906844092522549861402707706250333495099182224141088609010157324620696165159293735217354146586051861870657534314691547581783804398488095604499054487954813105699720433733458789808788853371825941130143418778152306303082415828386431616421929943691022752931780876255220781257340249229378530813730714805898991339838452621585954972305709645233586037677158853841538946165078112910635311881919996903792093624558380305475307168078393537716811600534713091621710146354899953282103140332933176704297739021754981593066930391643035158298816023597545170614768032746621938129185625716185192468386695056110713090462026861608108765510490650453575465149455114720995892610134257972771968227674506633405723745083762469295905509517762240618930617922249264952119793429834756191071973877241839576340819425627031304370489047571184114363365889056280436184239849486220063799905889299370945557550048913830886986182669203807216052436758786660541985983322058431378873228890205191732900406806952221170442925324866096859203168058015803810407603034758023799584344149831403492816074675573083021941905897651605213854492818922468987121780913726899192976263780720781478856730026608747864965313530132628334078040210225370879529857186391519778232562350545145414267895300566446804516779514589628400744572478953752597464084413832538925471453979624140629512342641984549178580796335714729577750082581856340653141059888071602206356736677179005250261978231741077533240304091218427586743029048545471001032163504206805594049994716047860029699906038756485245969764242660626905184880039076372948810810981372900262646213967750877545330127049369147143703791884960719524665048635285253915005112151272477733885933307986653249943957367715482287563262264796666749203095401576976888415662560648563577816852014914761371307765466952259236771738858947235479226486199429842347255912454634877327227273056015293598144583613219727736937319302530659867713074275355408293024007909010696902102771966753668055983505722231057078457599989479450466543722085430823894031649729134974898431356367728248069389607368449799737666228430540518568116821787806067845132034421385546380868937098827681428404601208325005328624898118764805007657004670524281443066338169598092572566227970478603938913957966089077891725100502890333688415364746282064032988447116110543044728404039421039123549907678315815623462125620849360678938214784972118410896921502137346335146937369478572166698346318123959878132602188717276378368389080106006762383443032121256047466165472634988999646869609127070903024568549539806131344854606437325079711815013259705502421743068817278883211837811006842883084103266518735865130660355606174359285418411539493067763949274696053241310495374382736492516746776681499654641029965585538213108370262703123002139083562248652224212571404680261103021022342668884587812703332356667397444112889830580838264337576584989683343478362107220390576776479425664085739902982373848594497095867201328593627962689784280825277115074467069923555829443874304277889759070915299708609690137608782383046265835107392036206924427180435733139509929114483613195999779950486222433523082022363467763194656303968385988118726317244353591431190358368797631504528356659219107135766398931940534956733430958044419617252757416342205874399454952763831954751109684211000828862417922700982238550197054567364628633907547746338234053275808908634536088486280686662404796251571979192560314045315934520430622458895789985473444281113510353234837075373471633313254169834980170621466322583322151438288774861542399218643071609964847374506258695711790993640887222794261351655350795121038096967400202528865415345064534479279417374563528232825578067972108059602731530348669172375935629463022622519754097037699796315347426537055064140308498276978443066571362313491726380588677919488311331015334179002401219343119911845585203325666126017912801479617991017375270899292219668223532571266905503401377382291793229233622261693627408057805693997935287311760285278388918075779214995850387444349738487666460793488704779756281266070154481131616931482306540783729259533224150350362111866126398709173791372384724034885121899142131872964823182751904434819770755187594148319125374319277912232936536106825287828513628504256824922351269532878715191363941710411717797235234667309539197253879416112410842588535644813288319189290105247711456032344772258162946187656007624760680028365923217227373731942156309639196009272838417630136666274298185853070617682993699998764435854611119935357526491938192779437505318531545386761809959983766821942856889501245891927085180443244011914268614673752147378084848557387046463120857869407756374249287663563456700216399271717582817847756590484804075726987471782029156372544022042540552133050146878553378326986196904071535290979708911431161451493086701269634119924590171910140537618803858001501509940808783157790175372830680591681416569239252663804054992697523732412348587721963247954306896441046387176040497330298300926851892359217453785971552653031974004937468984246488222554349539178746919859409285348185269528555875881227911626575702335632919991946339407886005760470368204023309541773968805817675838746945637006903056916967338825038897733078044633521426780807060456498415656778136372054162609041058018266123428792919550951675907663117597873320284212866272584538152749172209387343804320754588598830381071889628962717895223652364494802507332002385672815945246069712554752434326799101484701803066192267156461876236567653897376927648507896263547952538987483783424582239266316274304924887801490136408602287334910212660147433278387437398055076962236311676040079425358628739910755905115361053084477491703630484563741859076885124585556239977225361168973223643971030424901984619274074369891941059759538456142295335967564914724980368632324900932236566420622160644378098401030044397843047833332858689650493818782624509521681573702170899778218014516769106738866653288167975725797700727753255529567642378847242153330648807215732729725331398845273357904219934860263574797037500216778694901698324816987031241963387968474327915754220161734677194661463274383430257849523083008861646085526647487255119457622183948479421644449184682056496390096577604510134804147431410549322664088010268534594827884928445851072512426879287833969050958323249625368159547969230939386490981799406835537790779302037304792519200549082381920397681780680835005079532170223426273943763525431322795215263999706809594998024194035544878002650206341271075145273704615393082392214592941904091342297347780767319109032981939839523913090273926484855833202937464137571176897042925735277737999871300991408498614940511507083174482995121891896287567175070430575775911817196315052614262309570742499891923402464341558286723162651231972820123270349274131931224059057083958673851810240148096067498236095988813285909735705175603558238597659463839709590388254353850781882525868453417558878790755004848198132271658558341978993895411803731845878375825765548852704996364068138204022029880005261304036735027333826854322189789580959241386662399920953671047032688325865047414656416469770936401411058358605867774580713277080124649088636230219879917881597644604411751855509400943929843870619715463682453761579780536883985565275613634998846913202123685057740189772853356811546517834568383730005032413681952671676293290794816054134668185458274890704226433669316306934267480682564947145393795759455221324681371083673946594002955956716356775542280467485231281228397310365467226705191968192797355555835583369676844810691794397998803861479882377949670230030988250175666234643775672654157064017744226245006087202979367756529081026674448096380311914727146916401491939327711793475243164702065674598599663481055544147624717151744040792521318367891326056185339069290425104109979020416317796718890487060147490684897913933762785819318702341145518871479701067833315752138262021460815601487874172256843715777597617924392230378141268431288367634042580522767224729153192603967679325200328160993091918470515545530118646003045900357728706865193808620850284522932350474370960127836779852454390929812786248076984465268814440670643459158884329993099584845989493014370164382999410324387873064110767766469524217952138222379399197481354148369807805013271871828224891108350564726331715708196512287873014356315916953159288558996020172516392942067507790139179230198215151747523164251358883240169425451617084411598340795062351347038870970893874945977536316558611121228114077488977710173150675942020836975935055368467729278985766223647771613087839396983715175127720651613419703769381595488138040207899736756517805149459018546577639040724742797196416686973237792716279844818536342803799274419802995601254060587838085954854377870413070955562653247420795861651205274028542075112520968523482801980722397117517549506986592881092708445979299072883973354989325131661444840993079790447977006252035624999005974331131172604533530104208589289145231355180486229540248920210854786708229923526222202318966985460988284265828419647245957346358669313248782770906452155973904694687178967397408104174784538583032801039654850317729752001665668349566471777527813909324384429199463793730303840263405798381701255590754162085058338351359008821602665150908502410808836510736193466567624506838006827676434583400692659999210909165531298713109812589147571628878418258098130092854045254364462556850865269091683016870367341448178499461599437079211893089193456666140042787164106692884429058250147575639384445674540307539242296099793596171633884121795538231686981878349330669898383275636260131908642122832395877978276618973728429508146540580904222135124154953204505940512073158572441798048047308503432141009453257422409674470379461111123148128579578615896129982911128493764566898577613509935078519208663763886923841345416925279325527036053793436074373695102859559284522681616839038539752832030490692983284137183573623437941034508407207376975602130283968038514765782102302719353502886706107893576377429319157192807562470724710933344230372135730150698860009382579268827990075090742636477323547261954472439698690225349065490279946215377358159020094140294671272374239478662606358270149488061877526482594773369860665008600750326660277502635754175255050771297808019725186001050668408826177099413840088158712146470917471449191153999085671327475049040792944186093731231385127100989183579850145916056323355113686931465131643172440401432633943772749770760877952006475757786260681191507268242495088704687948325360941240556911505760423534568904961341284776326207215457389275310500319956731186527982419510596400117126558967054796288339822907927570482311290719605733519339574792904849303452191111759852486552128280147097808835328228152163769107939965533328243968057621511750025698184763508130255190075758988761836134768542502157039339789171361787957887719413271632321833496869787265959623849281422786009775288102162461590107379834133131523140978865878351101341849876547352581838417906956520873468052858906997755310110612119529278636809445438151482603580253440374895647500302107088145423012333667173743111621651632191630249391243881906657865933044776858257402715878700575267308828537924916665291617260895322437753888795148542873778735925666477208903639916651634509107435604586583025469795594933298286490000979514198267727152488238239198590117883603155556436574050454613388120386810028541431486052645316988623214820042362541613739000616626500825070662965570706964604393952621477279162018191003893747364609234564612599010312793277208317416211804377543819001323411635205574783938883587418647776739420154547999992094236227825683881181438282545769596409910116473697885867807034622186062424267540471776565702906419277362776403637352092861426739584167246354926728764790227783898433930571799399823247793044491630925483758742010264155273682648600211303290320650622931634827418787127865233917425530574073919806312927386421080470200743329596888006180416359471935609561892524126482088909209724022363327911741650803290009186725856419219112938022508719650108312045029493433983577229360148396793224755934844938826694649745070428536481114513686311377872232716406480317662508284962013154711975448877484373764417414904570684296010117890881019327272835388643259464926351387090969688117434232793282370503548458886340003303152164541443020561148559978733596284740292190736623751439903954068252996424047690415795764291697476215133457693949191210130115264640611574670670893224447619876686866301190608260700749753618915256037507646286364004995558354540753228383471935847215218005837224596788734326720755332809128719781607671931485576045448631536657494293529349248993369344119376766625226929581207055171536398917811892705908944613872859450876335606041217614792083197133114230486779604224840518306600595087413840927242328863173946420984715049040596487393029261703921871193947667213943801028351862568090517067228225021267374498371208701961843155514914062461659255831833616279788106783347203143208262106879326066108506867689048448264975124248654595795635875014361101199529418612929828888657461116429700265083074516354056423711515862593971981393246434731977406198601969627785936881715247742711232877940662836634609836661378538285590526876915862232978838002512435156992273747625781039617506805874147180779128081998272411283321066357768839761048352600552233575380227190832715961142251153165039093537919892102407074577522125800719951527581002474812571353713192698777770479414567220511730059317400354340124187851060561589407144599477801332451023182992300889930702789003546415609741230477756653345320110423774759870902760044401622609293253245717089478816636495302435887362520218784181391780444807788580370720804273309607892998152472818165794236322866306254969117683600456675930542605536778317980946621277373302379202569147311562106692575252378832309662518678016123440166117372831928427885498994585474461549012404838865303189841157034904839975029942053723029335937548092107621493537524923585841480901813145067123763616224616791320562638325601668746848241272477493696184986518192302558824544672360174872066498690448243075382124690505490060583137876739635432930099356446205473217194301808966932099213872138842005453919488488168479774873691797318215898725067621260669453269646947817144958875633499934552724011534280135369823690334984005138143743053240758086254432787865370223780778058447940436644826292135124601126913307090143191959149336315347663417677915267917230066549390988540954111798133495658007610417162510873664705320881586497633872176044567881545456207098550077333415171562856183020297328102381689067595131454834056850241614983855484772272988893668789021970838334796654067515894464002317600830797315327987410280723171544423425776897151559485306169652116070711071872886379846557417191220143548628429075259533524289922647504685428654031291149172619486862829020263796669694988934361965499011398972218355091114497665898637910924744816128080572732588789023569645960178467823577722761491268834460728808006588229305761282239868447341487845019861323904293153313859554674336152720353358384900799253788677044393912842792735217703700908653822359491336172772938893373040406285755975681389643721788153372210888254029405013982042540500100611638038878605422013698469822702243438859924747343481796308824945036253018333353413143050478193463217623535707571785731778217701057987733252943997886611124463322899784685527190071862847722338853418739720879007328010453492540269919792735796029048020246105405406550668696659013118984541497660961440226854310295970146843436863182666364267069886096119384101146609857309419231332734371321148998613684406788894195972899468899938220033391823924438880048996411483572122775870227773719017122882485693155605746130684516568570327916969461460536730610060437412356777813722045094378433677236769798028164813154282585812630783384268744392512025594923511246067537448828603325127676436302704998977568747956552034129922891025780831570424145397377731965254465126116228820444906573782248990938752725275991166187360205178512497735103167014434693993762418431190981199521664014010861120932171336954747378280329761103598043409942312079157495187546951381630733718321349124518239750100810493850883336821331523079876877948450688140770474246256693511635771285738186081241905096966971615326117243843833871453313930344031241377726159383350041858168911138660651352139944647155881342707021666313684777860809876211724537792067994118260963147858120329124284440830667893030544544905571236506584753658616284607642566225218190828453999885923596072789166367057455594944470350672844715359584655813982510265793787011702604564278484170137415395940972346839177314808496226404821860991925160433773439158375956056936869728376397360614768218933877236868709883258016132152497897623043930813238154073750871311962747593272283211014521737041079632912350612176832769401528309354257712878644800124005196003244594855365782014373097169406539293440519404490482767040787985421774043333709969621135101879065640612513981851200918702483094888754168286288031866207620925565612800186839409627455494270539811084616583410300921341497886929606349194768199549455544969564323543248521836286655266425577030150755103706594425157900717281621226566320967291947690809797422312713884081507362077819450791778192251025599910720598171150964193326963634577081824991542951300910038306034638911895834987376654416372793732752327736101664672216576798946053725568103590996069252066455678399997489234318005031247438924187297263982158274287531816839652305900678486642377421183261489532438638860356129969734208403135303809890547328996860039899072156452495034653048280472132389036955704739299381923387602733694944849113721462357809768039454786718608554817273491493340372312917032753785663543803639606662108090892768409873981016414789391419381307103753558080657185021843882457735284394064068239888588316286020537648954427376407416272223991234893398538593426110498947354849244968604007642889854011385560279333902993051412450596617317544247384576945680945188854146230832898187956224121304643887587632341292019795861752794024978928470798705282570530553220862999310795944874745877035558042218858852083875223042309231106315007381227321537745977152071702884360688395934547743283731312503858224598452714825243369267516041153507254349412406659325743441996997335637800899615835190058141056187995198157073141168958638304414416564984115251874344500639062780112037286941879496856312108176675595931121716259146212953678313215220008156972686933773927554299532157524360117213189222246406064836836463011664183398765513492092543693376645458431877657000589405252779886091534510918219428004054244651655800690132173869360458413344700211994966706842311563178008122029666606614751933840577766638564586076252472131672466574336674543425226591921980726152422759265693966138664454071144513666490217369970730556262950558317890777164488061188784268891990018308332707529109167434769338947100611262748845773146542910594647104463808845266461013926917793495777027697424640868778004153364634193360269438229172365093673683518961468945785247359224016166163210737226003112926342217692027715180269493267303942980492687769433635180796590967597120868673158774226510432333256122139118393482484549560893742309234941891598516075791069142533951652860964422425101847983934344224008757469734961446945464539668990155481759364131297585476997367254679954273401237388331767942460079028728317854985081857076047287214505188182188147477288913302141042669694677505518292756721337602587618189894249537723877905441214707039194756446348637768468285747627758570864380394940328630629088702069283007648411756083881470714976462816638629611181486723018474283114481318006950824324401418982790945407682111239162423646036686641395783492597401290905573036428943142980146710045339899491020264323892752391341926546395840032210636495612595060306816667757425682828385691466169295181107812722503339218717690560377863787612390312013472583143398420086922322595377925974076998343914006308996279279341209068124568801617738431716646076669587396610189129634748047989338085411214999981980183646558919961969743918396878542437690211502369011871032794237915430244235459926129771569059928866981681026138317787237187551159844233239243785825301893383984308746574110396614865307037447140468891205160703748618286613516592821822609316533023716175838384848247933005764063062314367468367861364061969704905172846078732278690868220478952414458707251168300069510523284466482578183609515492618223973837033284037799215819946019842400411995400395488389115569749613924224387273304893564104765615462409757409739589159671125567325932267746853682818197015621100172815781658959973841425556746183259236532352204968444597515850587544481373575440321765475166011364583608532862577441783147659427056460211637077751521381245729666527305689182799727816086516978927249822606084372829555999264133506832662252077933482596869507433238464148000106380609276338751511345959627191012506184543863248452888761548553921428047764465871516019528305559328155580036447332719930285003996511259203717457459607521060600508768937335818573501768179146386136931181307920990657410843492261227329407845564896516821416050501446482311332806397835336498276952252369444935201305046080049474816010553484572079663980251390904723864649288652763199613611583026657561299694532328096152815323127957024632581576104362163932357337629283998820703851847582928270639078844006570306503116532696942761644472905040410107902329499224466488199251702978559683338990005442374798436551970939456599265100775288710224695926758027057895778831304964385590755570960697436549117437221640544122188443779620740123770687129171655667064974615810229340596226972506302671948741288119917532677223144951762473779228234244451320149246514666675729439646775657437876602959497334042373349271470974336102881707867191903397064973765249722255868333278463060045647445150794116324480753522467613181952811722401597289209952995176494126507219422835017444046835843780974875840361217553856722559226837867757050683713241105657056947491637975828961014430102110449999030519749280002246921025474841763355557011487592953309072185504878842937470962814618973021449131271314675509853530390098434814142797160158964273684045411673978160991468122991527028392098564512112779157273003118366470445979420645210136072676918393662766237817169932337218122099612017022492366651132081382339160464158742815042706524586032824328347035578358983963207315541302304238582025670622181057859651515439273642633674590767161754171859607591479589023804950611274712874688767910624908018887841899742980738122633719902892236227489054092124431473519782736760276160282515063511538262461537365017041326114727683192334803450162686492241041522227964804768128474215709331866375417758336150231688209669684847660678050888764491457775152859304877020958728894835435661333196146011017062655000481359575611415221285950714788130665489819125241648593765873670293089632251564940863487746425576473348779059733741269358273838255777621574404849966766424821421213054186082124985225254803261862143952529438727682700664296113482388209694108894047037116937454551577200494870936663712233047531529392366749644085890817257639405164128609941684724631792145304502754460908841278435107139265909015218784159904721010874229630479463343259064392334520115407199801737176287582751346362082930669846371593478041150105807445341623487806016193176615048537456722751835845748539001662630044193671578182940272504581696298555411895181831196379042141991478988277507582380719246680383017203304142987982199906778602486740481208665137401753255521631010532104866264938312108346117975028822960400510298616755252360778566924472323992606562199793847723461497462218749759411556055760376923761603709475117913948235437008130698618465628958452269671176332342675645793607178623007392003121231595739021320999255124081044870779227312842725927540988625527424689531794798121735233941695446259461978142955863165647576790795711104530023729670329408964925735481088906301430653442203039961168608004113062450074214613822372529263532756055957555640902034034903985441427263672011739827830209496013115252709487128501410230923056389598028510930543388710197366856586394491238954453690642064383568753500949048197452713054749961790940427355245965529943879305967517545803554581338535595695664750479614925251370161831582029608135854450803883341720978832233545047472838104050145699131020779600672843314294787553039003367691543772165563148152354812608714631710785365608852484906238390917685296727211784318040679644702345918474786526096531923463942504516888194807804675201807892824960640306089334526345552244192520767838535309920508039014109407884187246311054234479877917812872046955582360037944102898442260841657161308795204508372115179146188604877648684234375645693148538918219609640985211593638816879113658377054695001152878411138594322134094462789754582303673629688060378403146167141473975411786950683976313335562359909619338985336916358148953367687604205786545501687185675618774972416426729865325295820550337443757937112013299318413397766806404558108461307462021624146474994733094224837407225666756538984672274225570594431702170375535139825020030461098950770804574445577659994363954561306841059578071795313976723393384529670127685269037462261227673594949698675935642838984345312580126235663602165690582416903556366091831082436718330971833120251336533273797443883859323709104986579938989265538164082289502436985557580799203184169198266381087066558003719588794429807624987610376198886534524562953843107283344083236400197897001012545975139134255039015382906350748319393241295056673774775053831002713462551973888634053583345402311557533768820935697228851682678476632012844214563037059413472658139493168374322459655997024868115531203990679749078094917694733335916364591880150178674289153580889100106456705721963333938519935426190426510971246130699027616946393938514670434939688838626122081189202194943531627823996216182164221813874034765409523990236011321278504277278436559119342310269988928036340008191762649887105273660751381418997140455122232113556135097900692500727509931271972581477659022920532484994208065327079450647040903863877037527678693163366920583606622748011822463863028140750256185697863362696095063125504474754685204166707721738041140516576751075836234543112596178662675863928877819845516278454978975501551304288116118135540040734445300895641110104739666777368109964828535604380898346431745623567986604141414515747164552886940772253209211691967902406364459251353686539099758325525320069977285224043974594514229043430048020579132937946867574458800326305014280131371021839041776810976817207690067433325504430612103830516759424348447605404496992789116403086226927576018885729944691019775875724855265966987630967018229262074782632194060743434612606353686519110118810606598138645977093289788947421358372908290621420697521063306439876279835503518320470822957628785961607544452833405024011043257538417304125678748089266372926229248260815484100698181887632407633875484853973915502952047680043266522091503619504832062607706058718084035914255675538452032645058670225623014413608666552394196001708150592283421842871514690447425543307298425664852265645153036819923028343909552238659558155290718269212558392022695454846983431921578774140546265144499681485087459878997580920755408005583243346833004324423551685685437294493110757379544595760884751619536476267911887205685205961315634190902415467025561445890850385738758869794136075482524457702261690839286481989239421752703273641950946419478787689634532631375519223313964915778201053062947986043651037629289570564649777991966397452702792533992323923866501253275742701971165330287015916074000268310824376451269313943130893831996807900641350684833210480019470375588616012484419432798562556372828989870143847884172730056366203593576943447514972972758601768138809603347253709278115135827371538132551820165070544875766889542610183276005094731723371618153330563483418270471291585104102050249002766133052904917665647359005743907244766049184172696311975866379989292463403521305016642386190064048869868032389151824283647573754938194181026772012043752429079873724633843606959743842837107502701116732527931225485141006956966910208605146394829600473280347442681321227932476404727103520463406956365285141528200194695190859161851260974762413646662144049445835211637185981289108465397632390219912132535984932387304605818846182793520435642820114021631363386769022700472916335322520449965302804357262784518821933864991893685134231958196563352809857619495456283388047313544397421787332248170859724978672499262542804011474351883210225123085997268043141019445700667150789148985467842259537141682809076452167493022948937124830707052376127408879168273139586749111626597642971601012630438151382817696538883675020629363222503174649470341526664939377605303903658219302478550458654161357100005126635166689391571928159561342761973784739966372733579612700796032985282875000339951406099190506867788969566332706251247416818103187543875624105036393087096549653156612174876235982274173382808526071852800167419105739293238539480132475955263628507974170852934593507743720203792616565679532065114235234848532306542692423923711518535760256784465292824751859069103966730764082025943460599850620626374581919233388604877193727701805206960430310356055294397790478879127678455371631637983410561916080505317802294796663330065429906901932726224283530418834672275520097297695432515158537826862976249096592157243376776121375097808968131470121631988871369410046731140015100486452820763657879257173334209185185714508258648703339296770548943818006058438371563787609238155181279582334833649597457805150091372305050426878245698473657457565199090040917870953857232150088479831505678197564260553740544254420032130366677362786666924050969408404727619252328900981047898884291047326184148875652959816695929490118249421884716430652166815610231975839269815522674159636681350730570118372372461308507180959175030800406428942144112170230114352597227414590518586873558602480930078910109006930838727131218912552956240239127118980849736359326878691062737605193431522792611554997401510070312923453227535196102416240649203928077334516175887279901395925679385679539737561512022814227445776433470801705819298920024119033854023828523102444413738366504060833222936096050688560604514481598981336280942690236627943843147810274729997887351597828412009302243703143677753752681162120818394782139753659955023872290683645581511626913633564633098953319982912145147543730887133831773299371463457457356989758711019335146646443197693377429855620442630072962910736780270024960037578378697121989124360827575561028807615109619144313321924364586069639133768795206583288316409892960351761201622256408100594466657189112750878272783976721983421339447785076935266356885283095093306345901803170375394508393470550321231974111163590957684278185352749518621660517276120178837301365694793582864190491642911266862281067143663830010073223940391430536537158755215765760054018699810972829599816755848156882455914460471586533775092000850228969278347634909267078913919457500545648194746717396941761643631531071410929884783073393451066393221276010131548357344680209211187922469876058961312281608200090313226076630446449925791855123571859617131236114094318612215710919173462025995690876324224966149789088979599216942422325687111660288275998894585411704035116166104421208829892743439095447913581995098547537607119635915692702172757762339064411399460123209971588840129406044163870082353421370434901913770167569474296520990121504371145377813453797615399130800304774569449443341112021390179515788973014040038002335675803707139165292338167508444945340386581568192491231165838476491627762589906006522818622909844522191088288914221800354170166912786285671999501825515709896653656267093518655674763204664979327063887452553043540563922874646894628380329485350841914023899540002491243875237135261103074543186337255612750454122438162418402665565475922045087643813552636518337119653369841803914769620710423850441064886153396063703818011849170269800210472999870478093738679761639082885382626450521025273422947445635068864433675168146757611166538672463879836333481074877374617991241614324525620334954717434967058363386613704534636160454547536421553542123500287215369364740406810212918380600796954441414575447294422763213030427285514746897766799033502242245502348626450210811530674479143474482303922566040994835781960629292961407224727961655569025610987461745873785643083591901639966032194189837672045297566615393730548441131807033015166609202728410020513151683622731675793857334316540196905089950982055694635679770728626396974307206548072393529662663105554976102155487104962609172197328321492493823574956741922884132249833297765680379227193536954012632282875709163596445473138597688828836429883823830773658440836373782865207659503459473756275227968893950006676173333089420102699127629834882264889076307582872212677053638116156866486420138952521764036625941181055313362131126417749486633426656079855196398810824798343301827356359550706870561682401250788458687513657379981608771368301481211910374839285695968595695036731689059881423671320512155596169962765080416513551979220251527111014444166928778428588162212351552739629940615895068677836859083270409194621139996577946437271910957882232070155865799217994075771531052755154808950257765387108417632353129655726512635434879740572992133030786515133101647028975108655241879293205935918866082672969156432498155829373768614993981684177210127716317808665907019339873733894353051424911712014302168445692851627046103758228093258245435288884962061920970229306861944951063839424400618968325801665306999639460943515129197342290818998589821800620824028408614030512405251488720172586681928556497646893485130073523469338900878062438587828660287950167080461535271726510306404703436278923986006053527052595833071911234369960903458508124745749151685266214576195620733583970727872039859226677138355471099718635037465367733966390090169199579511212573695689599689509692201730956406546964581426804626923610806009033238704265302321379303255895425451039645330111037673793911657854942246611947990812570235174790871346502146984325939668515168718703089999306502228712037463811247173603425617439861011663411564693108053709185162217361555872280914793961930277151472813085254040289856661124845137644642788438254100836335934416605743845162767552748185047150184682900634323201720785909651754138862648338929200833901177545324869629419217365622298698108937201750894435219813632438269544184110356307611007684373076854228960298123365385119550133825952564965621056710544984380976266287692677320849490865051242442074799305998834200493428349094811020359130318337664292132801056881851621417985460137508632357161194471233233941058674687013500901404643478446246780973804393692308541012618900348133029815686413153068054781686721876709431378768565777778668932714744291603708358417341933301624195815200368144705794223821568210555358170227291255465043719685867928405333502902460583728621305734831943806577137546622123855527708530723115648699688551735461641569146828909725013177508525584779035939871452266563950654662825496092992396486137394281618402431717524398313101768171903431338447203215318735441068898032739945128248420922247529196815392534408792028339610834376492088498158418622669199786343708900911980069103323401412785034528449790175196408705693445392152924490474203824072908476060673121975725634786069334828642147438511519819826517189124767760129600838495068331544728971929551198220664944741063655965572684871834884516649465497473405970174790614705391419778918714046613195435015696003221163117691213070154173991255351786662155374404980456682844589017070343260706493085472574446780950250937890577021338428695622047468049122892738150763461575609897782753207542407474694722377230348067519275845866900715337435939583811866665530408529575468611450873641923938287200522142505622907631076138733982307570504611884861253891056382116586312363659087422589389211661811558794567034139759365162680361856713381128706691238196420986416441218255570442648866100100431020471079042774498572468104845545215811281564186210768107847562544793209707027674080970345907962977372640285579510057302447341935629979767104868828110496588009086271364601522968603571335228181567662331502415956946689168999936888940667358839114256182058836122234903803192946655274486260666235812236825011751291220301555558305318685575170401969475940348614647213257709247990876835631295593149973677003491357731588384308386305680495734329286483018719954555610642875692673200790653247876551029976852957969297807383677991316719995417818677290408084361453347350425713681977378206936275183616495716849459928124337151351199213889438039157713982756512261242747276597413107441754825141093520751076786133259524920499801496326446525476826213424432159918091410906841269209203436025407951140418077921974933250779223519552653877708125841873847246267372245823787881507523951742324848616823937404825504911891714793868671124838682431878360609296191408463657701974056281311434826179699311167471472171016530138532352738687570477316447775892935377058428468394689419907253054495227125030223033490806955366401693496984089285842810967055486451013579022930724541595064578165512033536644258220200685760331779741288378389568290950961991960430383207037795618156378405414560706330831288798508240202334759424869349912470853372513662229320931402785594470462984652053736379686767391424943106029833706551245477386145065796184504105582660841622586366430790190710779237780565609955529790546969073846309212362596090503024284621273202757003457245508052025459908145603122592989803358941127546190903099872311243008705541427229280650061641735888765374367301669487810945525479071253442354834486486243292211785851772111486559697958441750320640514951708756609236663676212315156230605009702286739666970328439722128503147921349358837346275570931321970390204385447425215020340632474525714341564887581429605275132738393402475830852647502602739573095023012762879596421181515377739434066314870392242922123578227439218057417672008912088734918202774497184163289508557683795571680409133737352017346175191682913994928585955012773659976588663621127645841786021798715824887537389057003357860148354474290464907007384271796789703667475544386099057899996571573288450489962346739263749767136918536245142033565883360197805931802700074002745539059428624525988028327711002857575627619414278643880155231201703520614571448999107643471934346725787949765985719631698377265530824750068429236031586284471066647586266627245584782704626887513050179617630964639224354517409890465619394250189576866255748337877396424779637660534680369335482466949143940253873000322218274198189246421696601816611269107978959899177433284001956352266197103066478863802300555055005429769004976303785974955057399699691979381327805586300408816392400961094459168917401904014819690008197920631193261998221634107528569504309594567036006885566559810783133757503563748825046880263053796760323102866569557056988067126643526207110440258019600333314215770386417972771282250838750529877021356867132221387034747131866107301522729876920772270201393509769540978404377022092537041203539596635122865208272349698293152446037962331079184102313642854446367103847338144012199378348915282379356694456628809865629946523625044012894903602825730601704309507307032389700322004718831037373831394293474263022244579679122468562055282668418156118104748044562340070015929358440617603289677583686122429825805834375024570784440435541999979677249851577662957123020045265623072786008835862418140065015306531159069863521921962793693741453615085902829379569041756953786041578096120803674746973497470867436619584640767410445732796483711078232653074585231394576240134890340275334434737353056397829020036601552656982610493649051905227590646613211816433174120033040758775677444176814485416156538897006609327943688442136100651130148798587892561610498024770208587006678990763763300423446906787228373090935793231246919461788117339728869246550115259893101969179653584656585475593947427192391064056323960453917256680156232759687313074805460552537960692781365321648137527743523362999891397890365476533124096068479767043614618368669241320328183336887154780064301298143821814446132624240598365574165192242184924320115000515564872575336267710481710966927401940498452799856949073099198510193698432314181035461465460937396959131451750991461420392589377926209182126312663241867972741435362129920399501192006271283179486958697795849728358628479032682778252720534439914842836452022556334313291563499535330892248080534817861566813375071944018878143348674985359639523559655307791375339088984691240464708043372477554555381101241192130619966977120653978840535498391095288233469145743542072983792349687085264987297940557344726039032125281698116153464475688766736053505839397440651573363623565009589816999646073579428249333846037762556463669099005875321242239253739055177605566939642541241703961440129753411225675426123899551698620974119144752618900599022779135304342950653722090073941592997905770919552684115643520909608235856052800867297170150928109878825983384083690138590559729272177354836443717302366739557771737068800980051153734223773227627690825108200662234535028052138116487930203000245754441479286525050327170394835085319442459545281319715470142802119165148607597201920019472013780849859616322049769806522687730096627288154460185030812441066134970004306293159361667050430068394029982080823168923509683253592612592630153199494140978924425449110585740429580626850457724228597135150809430433335307931604586174501707422827051944001729440353521801687572549122255597135016889783499898448943157751621788384258331153100656204693990399546623968600106011828791233896954938554564060731826095896961818101738811520347272859799097230653428722618719490023575406707461701967241424934363015387001280484735032023616605142896300502485860840215816847460186446962680871717396405586305158468138039456166593568005938398566720759587726993306623975270486291801733989164242709394908183566644706483955115464617952831401748523287934271165513400912997230940558192529040117293124271860987250988878638752292131472112911846258730713569056648831879933452635160549527083319626540025332131446585767615541853538402307285502337099071549618776122454931797037360206251666443679190063712412425926577805177928766400134810553643360554730203688849322595808465074965291059090100785688796837553386295839972007665458930567537624660711346168033004282519701188050209928259453482597767989940760601055748808825236965367163260392845676555434470720861276685274904749077277125021362935388215278313930358221662783820078957870311507706226683838541999369513291835940709041042899283756390958182626937154369612513199508689386768556360516031238275970152364587054049503493599920804922351383424619568815697673198239685089596329325582822060028598329379408506510542007311269601761159823070189480429733040387767876141825475195154236478323319633348302313183613901794665904832723168513965793589405030941898038821633744909652741087679187155959042582931857529013100300080350348304530560431479542542987425692908453001825641029129655911208986466498325971459332689086347043439346633689311330858900520019292504506184488898808792656485925433086458445829561899196897832581475292465519105074488450222069759566803563561040753627517144930680113993944108185990816979627354597727908247450970257107132359868899540792943234456636362316847712066377848783748828852200671324014095593975078334765088324522620190941473837447722449054604348862346252047934260919386840367000537087629396948451849067500268739251392659514753531484198624557459611943104780915035411174482299223210688155207872631537314648447240619311742923243064961537172975905686251587055191415152430504059856438059347842726119242648832708328362674189172673799867426489971774198852672513231114869935922135600479523480238784635176487157826900295700696306676151971137324778607214123412065956601511113270944750810347178152964502729037293265404844183320007421696358269538247266809769634278548874664056958187830891750608576367811908045053167321877086006250475756123397351658148396310512581795576721962951050940572329122589308828695528599142979359069412647792980901084428928427243638439659646136712886546246471703411246499582266378192768150353368229893380161693675127630363432018248585464913709446924548496892932275925378318458427442565045321979314048805001841642173503593534285175469217214854924232470814213043907537877581875954058330727089539577579291181157428465255208498581420380358059051886056382482049084002964839767761466929309055621918386856232671964454090657546055154942902881611017898995868741268376313145044317742705294440528724412937710592188462023882641685312293137878107458850037515028879079348124243322273332950669732673067354821353550895641918853703860071066532733612837824867402192719442483509217952078819790202602531883080389763322606043971137784816330120155197635013106993452521181626553950577974779793804415426205371752353943474860282431346475450036844483180427419753083029685725732666444978838359571779543834905226704665150283214819037265860392423372841768677076893698187613805697484043782593073672244853783618654845483116858373169599020822983979121525676968095481098678510200068204435654430387432063221526457834208335230700116158559756859392963338339757744436906374975380748843949733851310300261977302610410920927337396966069040082344195830095311133181478994279715736937371912277959656717665088735913522367724391454564673908832257689302543906469487744197814916201599827055775255546335038357613640579754709630068182355427131051340961064208923319136047249012892950195790546023667310277585947549828611711415524976540540096715166075577813315523034849936315727126144905042174517988555421375202913400980948949892722206670527124048508406768696551729389404101214800985362482739853343894518450957369783370952520142543688920740680052860466467416138645178268104588902110397723670714520982701361481129286135342146941438053914467183155034448188397157329910555111813321279694949028824543910572747302441832590327527351198594561095386644390462985977656315168575630911494585833065626505312855830302646833122307232111117813702525951715967315188202997074898817446824563649808469446595271475753507769874161114090142279122794964128276368322516953081469801661522136115763340189203303604591746240438701156923344111974791356438631400345184643976724244991306364799797918508575623971247940438959869438440673420720191833350598526015376589379669025102184339350005441782185907872681664686414078244674317166801149649712723887168705021656555420689105445325348837485399476425742081690271082132879288099384332912503205399839911865268431325053480817520046588041504259970635905742755264022916999522721262108187517228492722369134789149252090739931177597575039747477060957603816897508055929294805878713057188039352240883652549123667075668149468984785184222896894713095810007962342795354570762132732261708147675440606419486088543539984295645335177252403103929834940062860915970074182052223185130151175947141115414676871925099615930402379095470575958684742347021197293186390207260135946905586186287546993301053799270157768824526408922768730916632936085624245700466207002515905169391190869476426272941018818803410172528446013334511719567230768918262267133563186382633860427784085001800577669942327753216984264464242052096343124121967141934284939215552748367531546234107272367264673550703753079521310640114087424786337333728410887896952438211281454730298108782316326893666578483138993228704036512263408963994372483271328559873083140728035561534923595782550392109461035585496904766600296990803734358727718555016228697219222524255406546085204513611786840255297821005222091446755832337816872503535971145459404963912355133243590622587773405344881626393613762118823868403677596410876831211708359939897673072862685691363404884838780946413747446189661498074129020756482063629399554474982223374101702544067024681876524647603093513129676998897924549912725862838510021796405563135477131074190429297078729843045874745432214632904521985170473268138896169085798127712277033188939302551084682706188205160030354727349751019456546381921470749908196189194374198225842396600351846318241519919114881202580384558074254020018654274583209514529970403800675043321372804899715759798011800393138229182295799292586886759056245853646042869852892345734523137296290725630257251880229546352382068760876642452584327225001494218295705013872480608517744521853951157498156555293391165519535117767495262782483549173237874570667550389136979937621868698314873484632471774975837576784923043321755376680675382088205531168131691916738564409271887347166198923118619278629897817897931786169915496633904151314954238893103499902258145499781808469186236711540821809025857902180982592233761881538300797428266026842294446186293697499829950543174681739657536448346568826582039028214483575178835591252582620952672958667189821826320159476840657291197796217600718530747890191496054689209132363336948412962567226706507685052222230987375013787330320958089424475469479303556070367478460706067417432328662827450458152566858954009384520024561758064698782677312090937037465743120021851134386273444460548474477693392696832795713624468778884910032256164642536867628604095107387598147038107495191635284279260341392331672472750287368285448950154922608106354991681939745267738637930383073564076613405874996775502412512406292196647485234671464234014824166297995286158492565797979374608174143236363455936699540756141946914400930342888401549955184362457340263761927490439897017693757403765872759939937525525167858246518821782338379779086418392762271485532052716068752961067254434514782227207112691255834190532698251413214634567007877053756450474522672350501933059609025906278337458834351567781997915115957680431264013268203435678691749290279013947674297748871863700413386442584865308458748429170537051233607879787519342955287170218903584529499715024586889730782352468529105648505385342820633596873188949289857042025306251655607294354312805058517550345020331387573588306501634959956304796906390003622310724616313160764469875101641341423705115014118340052850499846504330210790460653393734458440535141027737074868547875712833277870980069663527584716628129816817265726692102573624399485276230328402730698075332453004576451603427361242114109401443000069079513543801947165183347880972336492662606191920644882139310828209416928994986982259707986908306151771332909429971582802562890153427375971130065256055749593720578735226347569898573075066632419803130752171476782789049926563218952930699610878099234937747522742067795685936530783279396783562145374295845536842139786829638192103253435948323511526412576900334923669697036945072318152326106631130911994137978978435411874612055892186514069634313449724684875151592953370873049870358842439086494036580912039550353199821581023880260485285918492641774921895825595257694567438200546779748290692669254643993392475102601758067731654990458407103344827400401940881055407595636128477849880766648554073367043881106161357373512727424993678220372699685094165508938496682172987946289834244293223670586942205033279319064708339172372189421359332494227857483629274831919945706855491546284876633519612456735214255253591171769049296178148107718815737669618274054524089513900097373436857653956535084042506062400750310240319580990024946787052696219247605540952667219922755149985389058217332017854119957770213861910078766224277718329569992101217483639495747334774599224771129941106790465111055586203860106099727673132629380243929146135489664388405774035375000956562551408378575613575367362019731214015115589169097032449825108981595181216177116670901905240409029460303814407238095518536186599443657154036596604324219304519645208991984993756069615844101556215837884839980534941019885943363619619920085535318095092386137448702892495446143405003730153282172248915290402282745889429875604351190735423072412927738658849077322243553025833060017688746002196189791599090883177066740121872822067275747319171464531537735979495689759666148061399877189492682607241940442634397273837970934081684132404369828314427312827069025154156412169421713968444077473988307988649451776409283824427774891946800512074736511714374705610637585018665035053059565310407014708243628468521318782932132166560079129848390667929947176859308197548601781161249805636681200786427967289726245682774391260955230056370371747429967311166056510932150465262113013668730575675003770338945654089071044501611356011814946309727028528382929266768163452756628440018589415807787432189805230452812179076094415740669360984403858021797870843085688400225765155325461223374408685941732770932431424996699844684198708361685597613164821967783707119122046858286133988561041369619178595713734626386908552043172463176437305472913315227791800436097277191367939993135326278449622031140412170848826314868307298673882232315161898941286042712328299032478467154700770768616234493974117661355658057980509393264191203523594499012877068545358737418313914048149304970440286701675640416013046099596100057806469218002127580958626550779094211679838356125406300234727769966084355236105180785443774117557386105884285081476610468105852045704311449774392461948820541745361654520805537311436043305264848749337536356458480048271266674703483550792743341884974549264654116319807269142738960167515593981709772241024891165423964141690280603792085009625934273041594201154554893828254559693213607980413823815448306654207069080628652592358750221512477379584323692963555558753670450161999884062076596923412539348242999777618871494766570337549774216070905053948772793277942089375761432644863249410627645967825265547830592642473441503591466354012274981637228753430341859870424378142023082634778971761699765287007736761428323735301346992633123387066757214920005420714677691761520484057224454795969519606278412035190459064538993550657204385294438125431465124696758991774550623782678011421134526841757611150482173863788126259535244107152776127699309973801236950327701851586037178364785514729358887221589011396674253228536107063740019449673129411682433840305344468824485267088093048601876107786270668279348698465219479353829581418072492521154644628689553251327311025018382547877102523603064189649150613490439252197095818452106873218789132750460626422957856360533067702889080751025508233319874863044818127400702015118249307077776757586852826371249659737889780858288071821064435101784010801699631775197087535742234992582934414545037653000874400199484182253775268821420628884358569108387355628554597328212912672096950522688374506635581100369559494413004031107282033546709828700389692494814815545845553102901962051688407665455234749760647359098200344276840474692905303311424262118402017878980152860923479311043094073273697707825708959900694581164168996375149139936910040766995338289126975855337491592460719618704733881448967409176754382042998140724172411724142344702442071469032381378009318115682023254830522129029207745335611936498153443023279704240417652814476409070885996733521956466179842680606931962668455959851805332045188612715913663536806028625862834126123307351341002873033577635652993346931208107570659477437016935386738049804709010845738307136688424853255148827795212782305930066326188555819630271629457597161385917423359421592623091243022274523514909198262097920631800270519239714966710962912904561368561985050622039600133315771082989018536237439544060201775765338235061107213691729440395830029754600134551572449955603107658853507971846127440234983928171001362959948218264125556741462611304216246434420982812171585968504512698155897840782672014377878782754184574209914465252844119948418400481568835983177305506413081959782197753415050755900869940569682665578142662433182980187180686131876737598281314890040716912386668272758751250750980074799813302745335262284516257389635768739400195368217422164033105126926477328009011219158233114792051898501163336055357716881209280245193887444519136940979646420171810326161674462691861385873890521987367527322063490953127235947303938770998648790760799405452139587317640461401389866677509571890647630919385291716158394133398897016774202291923858329380509818259932819788222244228944737991435189001418410667141789670487634077307628135710828916134327798693243723806670682568309472955607710090278368314137237683277716232985883734269682040062101611230311743269371729649751611780059771768255496078227876364304704492742625270072907660680340373533269891263853592900411617603608177322273800200089108191463791551154409901679176697164095919400453680401562429539053428589920605978722089415661791348399254148787927849007203631496991682356110577257539347692806165827759739520312058845499040255997362774526900395469304272032305639668437701398247432055303786991920348006879040071620764625748655761352742842080079883018522891315316997731715559667421643665255324723450546573242793491480875143021181622145566579905899119365711495441143981472025138850508246529637776722750779337906255897002946279326827705279924216940006626555300533637007149260921534951165572644792296878266444791214183983166777029914157511869560607057764687354025695201730191032241083541896188670301110686555529106207083130502249573929929640967453395737185891704237602783570234059236837740717914154860571374990828837980962182795231486184131896064530556711055248618261878496425688125768164515162142303946540463203958699840502799604459268323802665014161253386898332460790068130922316555551989341161409697980677174039103315783257220347312006955214580042693920688670521600528890821239662337836588236463828713102417122252150693764026655211306043150025407801573459373720132334257922224448581880391150002637815947812678372417312158510759191262208140436354907253374312908657450010923887504119728820512966086215136840183180094794463169654045838303555848143037085621530574866014227564743886254914201485238688530650399746377810161691988462075824853747621136624308714833548216271616221562650399808256148836239510899949853096080134355739168642963793061247924526634705420818394425477325158137732449594543730754159168008423235538387777720400418354691926227600747498965093195149759286537370276858090948934476759501316642164370295683964321867261514329578968876758770871854895482418963056804674802114956371264239954054659922398014448754046671298704380181750529696507277441210540291211017366464056700828683040748047924798398517383382538176560841127785621509357213489922767469818915291292995501216951519967639644525844770878953295590876243988828573600313350633959364867327420028489714707943325082094898366272367053423859855107795747422077959086210645250479217726911793797837294146841802688742249677993854307360643585099427068558683699218204187140989192871391659654010406746911824159072297501127370035176222383544345733212805733529330493789374147450809881807692396359542728273822190294734588231989797889725282401005255963089065214139796884831702946638196980399060386110879746816214454893301549391908783859192280269546338393840428335744078000209472405712605815887739876162810370908045352841748680099933845617841694732846709202142993007876939637019849874239885021125697277512139665424253644703462227592628591353728366404463990265114786557613707830973628240441011138602259285011686319904365308246827915264944774652232848642765516303513202111929545150386456534361521006705640579470284262010639043642690560061802475695476703144070693988856502748133967559675266093569890526874718666954175606105972541708764952926463652283174126300737280512204569002290682286679119128580931199944504478489768123397334951356559660482421387328970285200758367949713647064377794874573412014028335919646022335214451295177608369681289791003628008553595680625824329905916521237425039941743185488995651923291000898670691430294244207364514888787435471029124985462987783350477608515409191575651355669031498939775563233798346257562032400229061119195817853368032842155150088216000183990763264641759143939859006113017823851025229537126358789782294333679898048925349885466158733739250890982587691425157084567671929685560284887017576632954245745072192668723004683483473829516482449618127318705498974503221759889081213866612697911773167463060896818620810545106350155387422182790180423372908517570984515343524237251609689935078956671154158295347095536882918608346754564433815977710300999145544298882848605232530250422862055257321894892841026968258915645110390881189662386255466277841213679855740295839127818500719455285329891245514054790115303768465218729014372395122334982937735574467472310249128351594789880073597088627373697190678277918285683431920782246270421844879494325192587064915898829383166389204973292860640361518860874904365594877898409651875715572099257817699631382895702351282486356565157545521873517580544971929034763810270064117825009740243865438823018604731991807947140521119243277665918787644828936385152109107365905483670352521659098077726875189644222193579576089907096167958422654746197314712913237006932271210969049135454148609863218455334837826757898771975340133743973062843263664324182231004398592653207200151385879697715763243944540826803126461298509622764505466912939317075730509378675830778776226870638721934843919784799870259649789743688453695022811248607659668398755308348212737266793482931188480249714050658377282698510126536765714905541109240893608088415832880022548315569368408196929776859566286515497840119560223649793079498231873757207272394314969077877287821091099788515952177634223818875516925517434223147596658492952636788803467987824098492325393388140235314902606300217991599724103845242162832908631123393295836374615447626755344240354432371410027604814585125176761754162521417614210183639348894151399083890392551049825017883709609876445246405480294361427261744468053341873041011423170307621894399170496418825492797908687951836622023132231811711377258973010962596250286862749085915230730436565327719770693062511751086620325493904886042328526525698359762188622437557158182647161638339366295040693505492434163705906256552083233896102417405506759627535053613867003379706552613590281877056369852125955344830878967225911890692383125147708513918920796866179568628425985458227012097795444694534508631395531308112583343503343860727454709653078170914509184855713465438724198687555404413532086847948799341142357062577439321645483289909374814901385200098804645205459345686507714330932158773338979527718327484378430299450302097024647978342566836179257362332111444645958237880787974023003006531776739308518314620161090690570310618314221087453841466704097453083260389256721180547703113658937435016772837616399302958722205795287756899731525174919533078294355065230277071163840774826144067469835343812189468482617974510833980047453142885553101778135608778095076209374656152996729431748913311529107976370820649739285192593796676026450278018278644582978242626625299879082047416524991860530873323960326308851989153255280624332404240421032134215068610920730354653668156560537522069887842192025592247937828342685740958610086741889849212414656495923587578355171980174461874648827677011401286128559203882286396803761323884201551557415065380648820419311110100670652012167602257016907719651277749446770943358222836620009222846452723887032116910723217337396674928515567160549406463600969984155756678920299439267190952873213939452709645514314611027343070388811399534570362572172407709976179372115018263204513129485061628504227382264712694133780992425910441417198325617376601722184650664114363640696236430462497017947482994834967210331152077079475478419947383129607856015515806365289762660265913227974684326604706366298079746234305254770456715684875949195800003392978622797814162648603206136547889174917485889157377474806079882225771804253160143390326956905516117563574925321824305246012947998841736749115624611435574561055639952440637798043934839775953940708807789060892816699361554911929736194627328586571751500884297301390919915832112354380141928660570436206007316912116510853261034268226178654613520348799257436105130622470875805910464882323243437609381975018709762082183747339249504168685899312503310113445822077456619074215659913050531434518643440385510187893704398467704223192756996308622816645177926046997078239121826406674216724450022824638316368451955388482707521952395926253811013368779438865346516913578736048958474907960243296463864844810281230343810045302889567591351421716015733082390350025946674822184932243779742684661306321755154960777677696082261001519819835375170960159467461522714628070983747618095492713936902367906513934313659728608764539857216661393257130904278983787137860854624661432457134107484611271044170546704329529550702122941054198309682390950397919093108428765682665814464980754359202078809457503093231411558466277220575426555815473592254090543792510128357538750161630445545080243566782355927637647932469158376541268113058674582368043832212840398131346327019013644760461550689590349935468847631410033538199079818668342311560478679822953021294993874651450832838352511091591152158123514767217813965459229540563315356360272931977097757634088301539713950538328478379900087846682012013856342392742487090583382904351421556107340767032271352718270020965091997225457508019169801597980317501459190834160602630494379944585889969844174735977516350345830919827898432824330225388538947445514058529211088122437751318618598045672645395198098953301045830776178158959733336663453019850515252087369122495157887894519219889222052597368075520409787996180950336830278937086145397372172778357399584827846627249092840015129415076374827521510848941487199372001579617399923770301375024367890248729782201365280401060759316453878736499388499411389508596064771887687032768448729341481501866152340499982823616269642251238052460727320047242473892544602797416066047043290574370655946148988035851577118248227567535192681711425818089078619856332258118332580462494201666725887684937846550181069649777853191910519170078182454525404742356490876065329314518124938494016753754857813843791106376759460334977592693066615377215270850733788652958155222625690663135372426404530527641307965850388038994449676087623044754951326100728160246042186553901485311616874414751608103247480573955533327713749632770535324351245892159994987362900190173039576903224988344903668089725207764501806342829865017605224140072471839971062409143771253352565510159196569961742731877891740586988660677837003140529083620331354473852315657464357908183037694915297031345872753647435126997391938347206331162505620444387374685727659712814094859288734615542175710875255523550986511611557055942945496682384391293891512424084347277562923724154247080297755770446203657628335073287600146156219563016786853845588790223942920649826306331160624762695264440694805215213247971470101589442495171998262933949967354033117419124294034552416705992421154203925067560944436326334113598736807211470149741670864047470249278462933213607525698288142547002981619689792052747524262487137835292228699361679697398638637243147123513430072832412507946259167294341304938340902224175613546448623366398291130490465446769662900302182733086930566384096436888330509237252749332415390833783983841469410149510454289912712268460247340404280730746200010411077903936275020689326320994555357603750516812493623450385545969836661292759715573100592486741648147333622046328865294973796050560587629903143092785982125607850060405805707844313105883798206035037135194688341392505343726362655990421807358144642831282220118425217458525988834542189724573175303190898476327511259923967035635737562460582834208401907253626182076989677672551800682775815880045524154646542801877156138728617314186697651630805790262255431900421993475539180421884299378385689706469779198982179906997032439667390888224935046687898308473414824514466339366794437307754387361659001685878494950260260506544577708017992390182782268256355083624261653027553708540399825944294059630872345559330763636154625760247559212727474809622443550482288329295880679368628526087187590270600473743722366742254968514886054647680713670179226001128025699856197896924147292917170417772629512410670691942528532049202684258974244810772590384586548708807000525142510989004969036182889972906166255502097997929618376303663647948810825523696531614868018630513390106921062079176026943962627909625552357758058857222295098634796917622337033322730741989619498723407065022489999151273563224461613290140762065783298402983456733233502111684131042968908476212393395256539650346635512092056908124415677254094508639560486413958130277491943240489261377932720145749309341860672510587272029337253888987231720179567391420628751514037556939742581202189355331268310396473537306506286471758351061920422038789931735077212600507076981571932790152809281340171286292346535729619829123535137004057335397690177365080800557325733452847052306002985719525755043185241776204781826728623443736156876039203473834237743857780942561933950541766140622759971329275734911764254886720551736507042294123192809766925770861667528461028515447150047907248795706461607222698417291121454010893700353827336530736905472913951718260454573450718087344145099756348929932740588404632782524724323504439300749332851198386808227901253526098908896385364120569842183060029601212642260031007114580609449126453934106611517677671543314045056104853049073067281907894200912845103930305665581762909759075860628676278466625961600145137759158161985077352619301936018810831112147535236476467110735564067735371298098591672252907746630515669029760878423822524819288224093691790135048571332636917609377345952031058129229660124894256517575741956638454580664254827529130009890847090011483569256591829183483016543259489195729515887213125679149417349063605182405046477570827950460545691432259061045674605451070021523823995942226162889289764373197470025371794174214563173374268238943758155498517292190093732518924183825917468903851309424610438771218007719999056567455680391472131605190702794860564270173589974575553971291995146776560516415891930880237679604112829102331591087211262521132214076801558701330283088640080873068571659644251319294036971368099372195187967664435833329915712353924467180698350895333066016704081249375660820875013176567148368675158100566528662793841626513914757636465092796971122886737315812557912054077172737080977193900945789457738455067669570674401150863649979596560051197047866342945146196788845941267827345798716445925755047081489589532487738811259730381234614423182292553757388201943280681728525018424048920683307223993070320580140217664073144878101115088649617689079478069731303396562997810748466673266475900290854505194700135794798217307398125611851147240414253185075009380705524498033116489334517149196348066541831231883871514329844431085790334510227817791899181990235992755569608396246911228197961130225359073317702230926747614309466236276419080666207164082352475205553746073362973927039185315480290254163944815569514142635960683935227446898965874466656027713485883105225137234885049047788787912412889293568463528010615562134921791089154685530223751775568283840943557161118097824296367479969847428429503956497315710137118558141593556770846528335832225184795564483720495146099220514813829661240233285935213649649930668741532407027680500349851139678671084575860839963236133835331376339084400707518859605684595987278014553516282746393458929556617647318759098703678902291698435399142874164515654339366833578264423592046246106943894942464718220894679240492800965586297238894040003468741536620931709603894393966822063898166947293579082761251922213044125390536606668960278536297123604041118035855252275162523302333809789058673413348434644369219189091385811457442954963764080305067491298313968912322566440999301875915633914062414321578823109806877707148642761236146193536818506692035413131545256730487310578642158053395563243882271750819837897314188753366249917932766235173027242583419556570035160365365587637230543157752449015247752483531757379211596176843581017472148614764082721506427593958719817394275397773027191178316776530103082622734426608568189866016409564381253896877893949844916507430120800046651035537192462590934407424394382617060707417156512994090311161297906596528335013576779709285338120730218573124838887605814721819800483709970052503277651475051000924692658198703155766743081626085972807178388649650602015878148934694747985745530879725548339252912084641101515963832394902730429011013067892918163340157621994617761025230281259166834456473866203116593720074121573538015848328957890849580102709571940619716349684168441109342862449684452893048566120704260389105005562142230575818119803417245934026170911278667692143858455202121874882387713707258379307043742455953438818818353249730835100858127464864901117188891771144020193998476941460573129695238137239261141119243362052605846859177925290069655321491734278266686757928572276149085323322168371561540655133223806616887545646303467387720447614690393225103340652404894280364273050788041741838768802336209813983512651297719376704515145157470704127227332896644109371605827457818758380228067949938765044109916843303996191454518603807734600945015974879576462742570434488127793639624750217768149849735657750479704660590852606119572732803853280497274769777780900116749786697445112400737334363083070696024287516639428860233604042808790032710752087013197187958692379112309629892505417326868944900902109595596552654824382524113588440420690498369989100244310185747398887331799236114828462913956758241761260379553640027910453739651560885003244701768262266953440244478301928912242434597400845656274414429449005041016908693947995230652800068470425233196931996999174034230577537711835325193137907391866348571699065207461111911863061717684853846881844593643599765444511053084176779337426585010738161314956491768154970823775360809685531199119417804366600993950693768488825938773937454482341375897389981477438802360496664998489439352274383584266409043042577732532547438837017219828906614602995238016743324295064448519639432080646450565222735049730119638570918876032413422595146682573978591661791806732417081511266722551834491079575259402054536958771380130916177599377212276093142268608805202681834150227276732946568686259575617942146636701945369582309142973521672305788386282235817634277905614382534041123854542827506177385341916301309855045993674928834464007020327301348588943348366623752377233770160957085929167611127364061259923196934845871611973651117677889317412072741519868077732400083859459506222669272960205014284808105608986985988515416212199845918672947491600239759340229480960292669746405791265754540466964312246054208854785405084341401800173152769816922947394621212369530785884367385424065584262080379764721029929810567917604875350475447014257309235385450021151031622928035895961817276923329886430151392175421589236130964661302903321908354152202843152123905881890450697277935387456750213834464234465389077772046045177902873563929677558522981205977121213939858761775851468740514457376477179020760858238480304369136515146272703012842829514458958394996711095304296545312737007252307908339738642642212482468564755199951684415614300563565584448083653755325434021875374244134002721128341135947687312392114461950485222195396674181495148903863236079156428847940930987076439975134354557176272755563118241648101227568225108083587058214081258191855356619341748451465062400581264375924913412736050225543124416969938377087146090759345111690438481831108727861393478972137941125854781787131485362930824800578368839860705464990018201300813315833432503686813002198654996847200590835686549714289318224555568286208032654321961287094527049388522658217161738532695669671639764709704874858018518840239791229411801400797986218827895402345146711705550792094495628280243164356602690444715881101296538421770509009066496884083332438509015871173989683221114914961744275346523142113391555390356201591544659790540164608978153620133264039399758135237936735714761215307702204495016369721681750189370984117566826049794320117189372807404855523445891762957715955108073926016688927395942674305943951004746499841429425894497276475868768435142660897611174307401867004775013231455019869103059746174900581911815392355325897268873648530271815503471829651012128599158522492332567874164127393554233724687018069932438747721313119189636292689253259953706532089261628171710402881231454455020240044054305700834161993547983873473910695437319624154753200886991264516127920323560794600372913858905746753789981757794155840201687927384645044023410111772124166301552850242983162968403691454316178582220279496876018036912192877846976839486226469556198820089505347608840062189754324599866139349593914495013922084087111313470127187072494575238963224219655392092175936817575025970629392139460146413169224519284777029038736273932969417702313653404650339482331585670432348536543063207446264288734246235706020904297479503714571060788062854628033621415986128693140537403382324031858284744741900995319311465447543555337211283222118775804954867401587592895273079122103204747070919061386397298937929620271549826699329647846098580381348288822815558304687489109924812383413486105457217673127888801664342932761636510013909421196411215383257711277087466608274119218607426382375417248444328111115869850147609884354606769945207220304913060581874816138638401725259829934691670622059449904297489390786463883543309052673524659630201706039412708372803723999604454532430931328988015835107341268125587670563532886766635339201911071016018743466539837789963909433764190589164804479177434914691031868795129765682476256548090599651348911190310959833703716204967306818919111187906616491344102585749107950374710342384521785581406181562610556311222510790028881672375783699251768619301067728907774068429896425422866852147374097170722562329325569933404913535060513996501763976290882011790508268397318937392517292775059637205402861685442807503993613600047500941883294604915684093964971251862481081599813615114250199971096017102484663386746524915815352381413567612929160551694553106929729103573898197796795980650039247113485317439016504813547312414034960246407381158053107905239716416699114978808223337444826662937820923716394679919784951590207264961620472473264626582745867760900913376538978426742190072125527316146903887900827789939205983169538855674897831499311123758678385608244304429513561563075681386782010036296862793625974925751944534149912280636300478787889270524825304426558594410062237894037898655645735639997559376759277432858500276923248079787180358872809075126398730874817962488160777311200885444397901357334549941709024623322158618862567622757489198070678185420377113298417347287010232554322085878763205451866042830859646554207413445220991105006765697539761541825306834856472860741785216612259473573712344544927531312403689624299742433462235106074505615743332399544143262233205679310301024044893469809301727203743888351242554615551775787225015435710233562234701420965509895906063272267523670563181112102512643987949355622258705615473044810084592686301988469954727307144074018346864969845965530759468234357963109141038042745728842612801619331592089649439517162860297624223047643196839822801196392141414354857111461411821604845998706374026686307771399709260666536421850055432390211681546828455631197971648886755542041801362063665977168753085584652847630837370595460986149576822548095884413803806611275935954416718025684672129105662789173145210198610275746869318323507186481711943490905205996227331700590737754851897823900724630497464736556552451644814995398463383964684614722270719321894395704311676459171120133158352392849494555281710608856558575259164306902602358317256231656346640370323238582173946969348041035441249247782131357474999532576979532818543565227644955816497540129356153757320622403611307920562160389860077841979638707532546315524320630592462682936878257505735270653793316434598372151113715773998413091684506407737891257307429261978534448946870832742348219499591032825977321918296246414241615662100016774646803214981232440873752899893924969436473076306961165471111762941996811536890461787175199723323415599822712440853052079775311500535176157277540421424655511213382083213310149582095660152853567915032049609049656473050606004658128669806448654445089659129764406247348048091421367230019480404558911549657096060708225412019336451708843468050300175437690751945249790665633593947267426087549494796431455761600857158409491963220662967865641927316320012009851108322706928467031779109853370514338935272771361671559531065777809746685341301424831556686231892863843998600175747745124330981776728144494766814832131057353837150038480758153511331168714939446474092265241764918862588087165684560993066825179720888785547679977610101565866981945684341879181523330583392038170277850421660892772854745852413311003365404368204788489131813364430949269440834467769802280439519036234044623273943977743085007743582490309689610656307873248958503646484671037940990101985281292916482097403797749520246226108728665332762806346798553662341944871758016189055552126941483196591888036415231724876645652836641637709065477058356662084811333460551345797178480745802008611741602541104977700305597641022761390541639204891184057033959334797569470085993182475463145331625901549512096158886505773595294704807255253881905279451292073542237739997255211160202762552577010143959567088817551031396244660543694214975185359470110978009424444541785753935194523368923929847535202035317744299996148285261063963703897870469170413401389828436268665677057251520432240515644756057050252669044676394606646283279051982214178275217833141075649447427185147176948201923499774985204615268900773801007143984322358515320111734884111284434095947390790279162591728119115528189981071886183714676433798336807391913284903864548261880502695808641957783263298984163919249358431295751146420316893894031836814494530746898462107213693179421654281735254230333097759103393017973348467482419662469024248586027368710506147587654757861768427301296237093377701579289660044188156928748064414845194246296208805295133810735360766714391752170197577565305905771116457026733631056265451211442068283716964522929701237244214446481860646383673168952454258409346727936761514538014912884665402406337926324935537819860196056463989671187477859832773236099922101208077298576553620222960203087136060430917972108012272677253122548594650037568873025051577125222838336498340037782899186398543270826605408703704197376520466462505325836283603666582955386658481919008440045534459147619483758823380327310858728815737259849005040141027585762740668259126057626495720500344444441001501650766282385402140899974999075616973046584386009396162443175954999223690660035545702035433195691641873918188397360989502930292813751953616221925270892250790529152691084459439704430760905954368109957951326986446714053885755504210019993165705586971789597587376434733320972956586667727178875504593416568575274800774071929115680620404039391149679363960680047280339690452096907816666210541899320686156541366290532504429541707645068227568137490971066567716811858113491918862093857573488231454266718041837824045485696885142301778661491627830500900916194021854454203840238280508130849686061126161951784383908959474610849951126929906450648391579997161263188757639341696930231048509333669780541094049451158808239183158207866803674763680584122423078928132934070889518005955458912712728123773822364823126302205677807415848194542023698220053721399594786328148434722915782490246033327194387213809866816166917042855874778114380792825131069825241770584986228581116519029476055057374604914867289504828750423766335379516421110421698961148138361351853826742886619602151593600512636905163455263629542189676863468864005253422030218680132641086839877011535876033363526488667434760363061084300592892158009345461935554440091465401789481427273531654613330808915900651178242465163241721995411063787051050366565165335396282166154113797939849035158875835103949659423526613087839727889776461773486817173109818797649416289602439969780794665377580234168774006701034051551557419867559910550697178559742384975549843159836613960750471475099534750657592348418496807535687501053204898582439845366855096623491117237167706993485188247912891278150179415316127181141738136439340032605745827398503574923625018176771473719848115558180871540161293662507874024031420238472113285550487011415882796197489063540624935194478236351979703848641930830044570463812318020929685054202767076560038258556752554546000036032128045333554979780584999230387825001369551553260327008877984151818070069892224987525698166393159140661301786111609530125228646188997347007371464341709373161828998982276258967751370787811192813497606735858998871728292031214374883883634516925770200852216175226874166805032626814640859199434701728219609671348717380897632388679174840618855443906725516354089564228632493959601440099915133914772372146528695848109246441365967224706298009668004951886767569131630971175474892615343157338349297441932550317574936372309346168149396140718345884285538433112978600499577545469498132150239363844366068660607186363484311617002445683845158786601640728653647984689511273247496562409042990501499943716927054156013548308975588607884284404408848194281462794046319478312522118663758125880058850401605357323289693163619776498349489805284058121770911952753108374808396010295106683762454308720234355501093616356673181651454100384774273162916166101265993787585702867687626761059773451208881197774301057155234126136117553813167277677737992690454282225701671892256800698970592669776596540634492071748081121177922450750706613680135747238931957984824039505206830398454639972640337119647302781942588222584677311912347334610784242652450916863653302408784442019611422818040942552710378668369014322101412796636468716049895832645060343793199935351119853527681758577532247550662360411119981950655927945234798966360168382911089765779230617154087656730737141254728110895975503326377562005459244820948425001101596011326453111818307777838926771661974843997908007724172107220733199432433569675980962567653298391251611922068670484648121831419441941615555152257206388917666633733982633565736358395132030985062037269083616597832380383344391998360065069033437375273302250012746127129051217346307042933809091168083883158001810814109088334781270985224003240407702994077058912360990584278429090697376709903053472300513271021212246904276785906879087420540474302746525358273254092958437074239478388764826828405362758676780617919167236327429874387289126605543926726755535552822233881282120281766609459365472335963719169754011345426770970411087182340352677892260870019930978566531207506542961913642437920305344166977875755100361380512415020882103150108972856969140879963391238144539670204983732283092483168385466861595892091089113460683072929009725050416670489144223600191820579520807851549584790150676581424086813461433075117089102447327004304289014534759072452207499390735847610946033936236823973731543089953891757974245130347834106986997416235990084580886115153968894558973848271936895525700256848657072781554310687484752096516424491761493296874051841249562112288303250331106293763416991695951589212609604068382087482975774365011047632433263282374713806179102421206211612692505265861167316091249280165730946588066813853641226093489410614320580279056177073531594049263552625659155699360368392566584381794369508007354257920867182665758033685528230340725795665594413369913996203258807982296001787519012567094942029916102835519081154067212052588997323165835751093571284586190085573523342861510180962502783137513158765418649416282909680569911402748150991636891204110739088559168199489702214299957638910894664759911141877879960359429940260372692032112905719266008777113177563110745414431172230907783404632397096108024582880208950739502415491024055593380618185391632928241601958021819374457293619417192829953036977155706043229407082872690246768767594618386515281879519859431844108546165996990901531792941575976091910769971294006071289728043797748552474416287030965406240709040058445990563539974569906993287234663950021820621657348737589221311254225799177323837298288528534813810409337215875295113465264934773606213716638437375103599152282209343857512332770248753993956218819169635418911090763672749212229652802033163795370986111817399336966486881986486301147649926808826774893597906294709425522046366463132556502467124766605160005331253495643357675592658213195322789363181199947545291753501181932740272574717508167861847075888377380617148464554028559558551661099393745788312348628313603133125663954783942378457742967235180539151985770597185351161567961224733336954219927708467848603691791072096791959731870406138579122672630063517733180447884120066922018358088619504380903768727232984127731882469555812631430583387183435556239558561826470276552431703518296476226174162750717134890205124190730649265412549345308791970484202382796503437069712074197525566069492742187836146868816614196763220894638971148094489381627181494685084887502108985707808445627266554502529448608434092381181894918630882831793609371425450719537815270798342972943514683950702424913912190214375343042101625676363052354684597933534644334077880788193542771851186914102569621557236264734045575146462057410494751930792243013693146457813988574753943678830244801555378230622186048702706088760850928854342852353112527183266460159847717661566573511625777155875968617129703413960215676329594521340841086829963737225189784103200999171310992884063507485069793166825325297318602333399043681793800272641891685045519785728176927464593321683907664108754659135252659553610312103558823031825918414530083495435910862092075464769699675835701831594983659378475109808454991685573315192574284780976515984270541150614434349711890167288596124978216000519673718934437217477386494215264855454224677093493349870377221558080898329087926580075438041135777808765044386547807581341729096905157575487012489885209734052355880288369652461464406009588346031202086659681186536613455381452976757147194391217898040289339149225983631847110113712415595236429578422698902127574041200465449205108592337114665447891182600534362568084414987036808499861811914652343111359861032790472151587541015703042331568113867494560678636418158367880641404296461639548373285737924258148689282261467802335684045209143152168832269220365628684740137870393258122769863149260735042861225293260396612242776830658883451122779306748328921744043332705419873172212549591951180812769627755933824194649843977637782787733153938647891660960041704845318476713870351091918255955451347854008284317199232706572438804821071500283301729541115541010161887655921684175180066299947723505997009945041135887750266124081284260496535632349925306504596285943669423337564783984107515503018102154585041723357097275323721566568621433362018260237034093287732795694952614675165258350888208655000857552998102140062645521328227927018221344937136355991980103051651435040826475729887980990962697675350274749270136018900195315001182645151730576785598775782592225225737071884247478070022486480623509300844892585804333242863768471270544163593593059971491361815119508756051380095738347672773273630421369107605796086992110335521457081270905176208368077365295872534373371674569968988828975853436148116749884072493716261344354692424627132236081279048748117785986769505802954571388708203391009206366962450154872012296061100900013124467873921883155131299028025467171363982963618623101474503028963108101854624163887159997788072422925902043916337097408082956236486970126760710833973998689170143513121502969976228794625731563649062085258683144789995528490369127554345530272360575752526263498800891990629469826048764245479102548395851347596424855173698433607614035165423651452892248549115979624468586682921117075755529661727799485205625988593955614959606721929076686224503764750235633126732890806839495700847164973159871156308170349860339891147387657306406865532710084358541935936963991387212615764568071750607512266669748670679357264694214264174271410530547284453866072589596539898576176565645839701025835066246727543272176032389937755637021281290061047056209764525316080910574062497350214302113571983529359154915161911208241708093520068245293275445995163634556904833864579759845519432059751873471601502836412038910220112621533958681535863711481328263741747848293623533125351424331536267389105788703174648536125734362683436327889519960026952181843651754213320959419834344382452125880352196853652416613209444366888013265925781032941751016806291914414493415344228596873312397862028852054242033397518259044887080921679304035223602031110558664606741467835457313993431884168931665579204956688274672524671294415050717801827175706391089942011263789679552503037522620185920926280709201240239212189590500374263137762755899369944510643904828438067376001429028289718516036386065044534627826613014297754484845300306122751242199970793769791233507931927751513166756048454995870595370881973070967074673598000922835581484878934830385738162137547896268415357159379165658694234848686714881195618450632890631392004674957740164695982152517543807704750812358795888212349560107020299774211355435879774974085722364198563605925631866378733650711537460596573757418930436210566638110189025782431339851501982215937803764832675824977006475204225056391341467112409381117220042707841783230890219631138279774002490655509380636973613062556452283383104048791748577676189421738949547196897962367551016008908584448244415266937064866369585498614137632182131760503487636904771234847851891810431242388420207552179116475553377083170825019952271843466740011768783343307789081549966024897763699699117904694071621965623359942421973222199101532465984642103967456127866220658324043848829442305958219760842130179394857947142160748683025258170596346526072524832146336444906609425546377434705520646178609822364063238858807275064154968634472823978633752481622704405319421574816553889002562020086506412707914391564804534369968141568692987267632186537090504276194066212664744753610173382830644651606021432465816736784845714673170013344986345017742084832658409157458037233907106690032407263013545567047695054053295985013102211028909060558505495033920417636154316021993247990433044364258456593935223247613769263262666757900681850630997618641553416957533584268430291161364632371903592733875225515438859622871899825108016996881617026682976768107121834681428575835352759789569749953647289439742216155798631148893198677313021511806788942874780720590770433111137511875936831724641721530559638304510032454702453192466680734166836359482485531482165881364915383050211732351243046722685031829755450446346002716333817671678621899917493887266807049325112917117645145904434340368761312417292056476354522631112492401441269833209588253435935213246899740887908813872254437852078096005282958982336548460721274374610194665896669756819438468991910664356277421669755126495531372913723248460554062925200674058983750892128115409386533018657217246530350242845323892126649040009139314520249763298917228411337182297363569042222444705131069466111263201469945752922888182604283974726867001350102756619491436048780056560165594412800575300463460878264179166869966660634234245588498922353297038878287605632868574140567511894427464585364928076958252621791718512486888986190889390212895342295337486300218489182954073029027754585767458238154750706652008962679591006088559582676411847096883042729870542058781159403601964472098554389511638499213162020659153692120602175433381476008457182945370612779038755016196480770314801762710257577078081906366788883981506170167551342736008619667699722094083231357847232882002212901389999272109077627610558232422617742073240204540792844757333492296080197848479098721623990781520598205536868136973355548891490971555178383085905735212374378480056549387779035582803666532397203439380094836264186967294640377890403583661010911528344792361043581403574021693224282821750683894158425262881352275590892577845391208152217415186798578597698486845293727703747183490232803164033699283451148133234519787360359633854164573253378032663746415994106705707127992289427830943287963240793839324453750109857486585369519228767885101596602592702114140343804634799251110799339942520686608569797862873515796750865593864721198937733843995152313985503279625031949513706487655939990985036123741607875742740160054666852329977730444272841850640201256482980567064678525430777616563508764803280431806326253987643327129188821823343123056723209889853351545736610198835982021828024845820859967647097728662879549329777853260468866347312849379602413217568733373101360342988235238867168961133344996122784381200548128233584896585000811914660615236224727982887197975613068901239704017853842245635542966770529041868528124374148727506814576629632808071823114455652303197313129800469022474752685222501109895166864466641290996898113245157718793880442772300535674859783320476251197133140772498524247214804065474215500439066798115183969558114977343249384690119952119170329513250934146598442269475523120516076068676025629796722957672108430824251306056527471139826200270293939780193039557185460252546328024295963848645381662599659261664948071675785037091001233429886798661407446934510793176827198298108931095713200147145646989869495741316990200315373849764748038526894353519426312063122685490225297637272602448679955839030341856987806746117228828050425723706557482062701047353208322493714081127652431208762560557939252788616409571174030320345338609457126993397683172661323971539073926814632223631022542858305369858127482310315660792547542217963854772107181484563111770928459777681934553141691151923183770561279247684396988860153368686020009178660732547525004783378452649339059389155807444019813532561224862255505496264628566076139773064792868867896922906308354373103563784192550910944244551685741880818159711918741863064980251564928464526763330453089392250291053851852071198270271048098391744549486809913918253567957716297480214671510286684235761011469926076369736797405119330577155420947447466744750050542453633444693002413092206478229262322612350840586711000746023189751562049224678000935371088043251399372840170570488675169252443997958575694329027223279892861617517395212290202162249727447629522480981165991145080621012753720480651039529340056190770191829161897606767320728502899509940529330507491789051355300129982627011511330617899353241831029466739899559785480691805489092783680652579257649028136889437012433242148640486047134956851958937963058927902969833516697434933971144219253288061219808923948675373186497697728720802901692660793700837649022155561824682035725043685010902854506642626143682842407132665143303539845492891353094525314059510378033216576248975373363867333763992385073444041151963117784973302735192099702349610151034682431520680147538836741740480773772370264167551108576820087033483515756738646556241657086277281573188757367979644071179382806482797349866224901372704809243260981652503523370523754601027216314304567732703681726794307036394060220691674743714607432406625394309966282458737149647900278727928700805786092118410642366319527904639892743443875656002564132144308809806027718923554799108418224751822289825964867846904046328665136034193615361451511779995372399278575017944276357958529274609573387470534144186633994410084703158894868553693986422658073217283603071770540968469081019678113308178676643038204928471491230577410003409196654801971817165103680972803808911292893903575774162698557651475815110022141373087944460476428650401324832805324977110573835946730194583016274680020117675040249060607840481526072431331075290378478628715857061495257539014472392427451750493422226990407643559780073092260118920362288068694432095265549271486602881829512422671395179878213256457380218482556689869483433739103738083483156519055732150354831744135761390745662123915015779562958337873125846080669655442857137809573300890891080973533538485294152204196658480819369119423529430588743079029554790104625823750755608105456857080686066628988697910015711548895423942130840965295807195873107892560067499698148689085199234841966290778726914401409597752711113362649192338707083082984706603776461556419899831024618621095970165241651762546392622272845112842900791835233036260101129016727675939544761455847968024505386369559470642501393468071080801550884743118948424652564686175561160621522563174082002771090772623656821368767759843021323241482981026625341476978427385777722461458327538502891565587111180233839759697564548447013676859757144115249824430051022498931339568565347973485594311631973637906341400987744550675898909416085995756140248931629840916666669921475203564171322444142158887213960354875278154292974577178822228173411734875583887755374183891796551368544059755645796357396456417539271992936294166466985663454301998601714284993016104061968189682788017091465764293893172684141273322256207223085351271454188392754403467066294901027590093797228256986387463365193223549917746197575390524368212986237887748456317793149053406110217778140148490746771129903020677369606409867541829428054773880654398444526823582877138211449849303963349723075112796822815501312667501562366100818262548636995268690943932644152323512548537971784622393468508127383034128527193253853718159278940155840943854136948400478501379095772331790853335561672462758451442048186069196707973145028048072896799108585636330415100102092046640872943769969241306661258039649659833947186608766769490908055409779277715491262636312885197814172111794970574597180699984194206708045026724853168494044587007310595636679095530938998351924020458164120377747559641890212736664315642581555676395269262584520643818683670808129015135921222630784951799381374667506544761668670394670475650004831015227046044541913979867862453294136836192276467968764026769253107926596050018017176687538498936738212883033028106254536189900498119984422951351704845463893010008809423888635783127325372551585540821012790392243850573774890168115448707913817792324946263945371115287917838797330863078233266080777047464616571155831288753412777037780504723317281923073908473361491837977124803466053303438433135544105692388706386787540703323368996892006804334741861062742943242414502127699526868402071543470899738153098659680514735374357129521567295520554730979674524974479790495247776974992410133365420030090067361321498644005220558114933940317659654507454343402989099963646586291932338644134418584231422624920244194007875365800279603256587992332827901898162032081517098621440996512918363092950121567300551651044554682175858294178446678299041933824896910271298339540792161806233293759260110835120787515083796911305326728025747293904420752717230574547500135929551427454012423856569143114587848847459481595415472466193801961525392441484335346176936761870677417248125985536808584473149606399271835640611593307154875874987041603516060423158239329008430853610360594013736074366523770236060018574103616604754823421958810171020935096606588420712704337173099563793120627203035693346814447600571232078203329592187038703329308440901863680002244864699538057201665743193242638123601504073475631871350795630974249987907644420329023839709841246254277337575010390282464848073100446426187182597942191194368672039858085274852392046884786276389845837903383115712001709069616974552344932903991490757253266289605474107314872544815464382065433107358030333885957079817690167744854430372490162780059934222664745389274869811174678909812095819278922065184809290339727028968837394007712751517280238697944661659888668729971696699669314941293902382175821246706357314301212090011937620036469700629074341660294900168639109643787254575887181199662482392458159187962448445253220293787400004430255816180041043662577541665797932595450911624297993054547779358426083572226629650988848186782184982113700579298977564213079898840994132663505330977848889667370013750893844864555637781375890704486333984811486639121669925763885232625755818144196933305665749014430923702926696653734578890644553741485746716073091642495217199276944641886155008629042886941629873537333846804942045640614634403038855147931232245348506513931842350693440724609247198867067585524301528707892866695347396642907167546675238385641686818089360141799685177172239261295870743615068120620981331642803033701001081382141834836397612693288791661871720337501701370475705512300599977080180973534783242777029076128515553531887684423905187031494413471271550847229174025715892404259712612042240886665859755709618844627181867080138708269070442088596955973106649650809410742449567551108023821659492923006238601059047687886328605893349154516264789726886802803386121544961631124146921646587527733051754775339747369895119132579695088458998108255497115887527507536943109995365960085147750391619478836149808440801799035219675729936104439697224852628634587042125094704206035079555990819713324356670794256558953959254249053622959829634981899366836751420789740704994250556054930045112119942035851473317683833548705145118742806122000019977979765083891990505801673500338838387396821468806964773112127230679469800907719806535267029818626096289499097671117405885387140448692424668013607874126840278774211290451318168133900549438875181624998508275963402122879569400580880251503598990534743017842599927556969160006580328728229792915432206243159030957228456602800158531076742407432995745622800163231572614877257714865533654987135662379103736460583268429870499995814542582243496322959063002472003693682273275831652993740321301397287836525318778858592760550123778512007231331294700321189196106473942715292195521497794868209479052769364270714613501571273114499561064502107534439214669710220049037721155876916681600604048985540314494040004153818663886281768604179815012822457065152105238421078146524913274087221698156649749631560081981584009492725283470831728052579942837022035375570482432052125805949168001164368277196796248859502433052411565610109357970896082790165983281671755841908242624637931052627457044235523907292908368824456342909293891048754285125013158900036577284773024620686809136418949329264456463079094123902473620562201273769255647326353256015841839132933386944902982462315297492842973956064676660632303353889414457426233005538341886198759757640089060312063573464821952254671515839392534853812123507578489230659530354256637322450731232537906900363948543537777136276921010149141440271782253033365456906567990367172741233355494653011215775106834412688954165418039908952549590604172591575501560577343131160504559801161324950261595728172956114454523804835136003340994965914492244823876379321199474624533206937322712911283281128479725047829356091162767877032939382136099798328683816610444748632093486459428223052024556864918605382824445216851699565898095840678801127814554672974717444823007098412695191870960372280851784057323296599136364528601939436206885627347262734220536621820851052478818497949522636819532242662498331882553096368243566572942080451597282429209714610465025635515541613402469480635435616846544739886180367627762286113965879787294160559082021879043607185047290574125719575100246038994789584628888178540038267808267407823869226335057142251172758591696143715945645500716162330858144576796435730852577916715010441560915636887953140698937086145480172600124660076841013755132691408634359781111381984122022339797727399154718275609658578610897925106273460243327084540469763163646360638663997240930543782892080018762173334744330610460239667668262200417745225882958318262131190552737514605120278027304304142559987593101215813166114242812782711384183495837302921588140195340622438422202016231852732466763265375137263014183676954219739136151923535547684786337929521086335682117968223333315342835381464415928404218240299194409026833336461896701072521735618028197597367087641330974500086966477844181842219493864494218602647280813180664271410287421385827919486087436170073255575013202115502340500656252499573685108806102987925881551787715347315136632388713310420457303429532002224988590359452337271748467383125196607907523578260620870943387389940290056271291804421951851166207841127488854603048312883582559183451815488376314549162515961578121738135899431156983980447426627262132058039702717298294426158679798890448462807508379002327809939920837189905492379917889282012768296217811092797754419674734996631386316500554673967310543115654235437467193540361589876202293868526558927826653180876476084280429608831623657647975222653667179962356610253967641640219774342757019117631615742236660390422516002968726453473969672634272748217643111779269834695544562884100506189389818176623807726312913101583310778596855852099340411724358999321653619667681105966099655868875956815362978131139780700589469776731195190279900853208340984111541154950124127500908224961030089445949615822300195991368431390723888446217734862656646310135084471699185633986855227053270379623723288757249950003305731248251519448524275517207678740570589340592820016821897355020206803995901780721330474689157036968683968133284541639602658573462875974612187476502590039752093208002654552889858233029635437512512312011660749403845696790153553970780728399251368248703768448852891748993254485388244489453607884711312363053339859739440889579844845439466246126415317389572360345911253448608685989683054409382943175175897195083889434004357437547753109365846763553755799218491247308244942124174287199542151914882538283160104193051665206557093168250201300907562681117547115698125481018444152957765073158838106785767402106903380993167292059274876742662662822926675039734902099389554342087229393520564575268414012663350452146418785329871424052801814250778333824234607430142198794329411272874858715116430530409155736942345864525909676098248539957119063161361018358847665236114337896433843755580458686126227569995944747340296746981774347258624191660779703809677708795349219448135032439342967427501153945738362577595330173209314581921372543507060533846993039853778341795550222675361448855047090600513776657464617791490526392570104070677625165877280905005023562279822344419130410899985925526746650174868435792496783497439011563257519814367819477385478794074117235420115513420541108627963906625799650001851628125044959670385427655365719925127604324801929374960586597623650284605228966420519995830118011403836926791790064141545010168339534211325909968229917377716133021523341911775187775873431762050402257398065035193979661543307309743520228912221671347915447997449248259225786334354016867998507651527394179604935768865564808054217484157822137106590689576108444867324531311464296882490491353913751893279274360307977448007481231366992239190479143319938200786568845484697593666595009582349903264339879527244775130007715707981646055996385138694510511032892964971563235501775760452360734299039907043498812272693526992969233205479365647323131581072709586545388208671465193987678421796486318635767977354209952819446744579677528938945606812522085826277974488631850677116163807783457958321638784787549360808587494619824563872441981540412277674765372076512053189651869730043343898474179611960527936431657344333462197638274516431257010916282011697749100316857255644176199450817535383742744265238302577619556718750965038326185305889862631220786928982101052483461794544483055013260199447070633079288836950924290624553828212974791539937494873049261227922945248113292984772688224516079842740319972273176429595261506168684762255377168274778582031210251793172873722281506420447985908080259832698376444951142967634960505522731106705439016569451185678433436227410309655334878256562200703835430192501011942731096099734555764780165921506357910953126221318442749410800694083377417957387731483422639692282352348768938578084842346366137559429323393129028883996925467767376228436727166310915975305146869380847365521066341198112578536191108233500028468729935430120960136422820909846968549184779411319692818663692590866737935515280875766002594718888246361687852429200229415814660620394693543476911988700459244339281914673897877526630093167359341746703890771157636393980043064796123529295508866546530826683925421496774109396861155350237386382776779400900681233946746879280743125159733556163704779025715862742214364754053068082342157382431541338076446065626266963577526715647918674792177882998472042039791782315679602864294559906243968688439925255111057356199998194568530447755766637542087667563782631717844882401654089379502755547800578895441489331902804090248029232404853518034860210929534293688855423098435998519811080970943781814018361832634884163489777813023859528822739248683361552284359962340958988088560630946689403753319645430509541114936816582370061258543978158079106131715706231513994614877550693702790846516182718026866168890919381760509981443326410473610667690644282217340788514913503205513596497219317995239713557542868078556077262057287716960503803889284466176014398872594953195670597214024929078316756241961411322495224457076732083209307821220394715716489959191188620040438087289922360919249681279868411633752693353852280807998574548039667618844728024363970357866846758777047787741144621911456540171462789877955832321036347716867843538705237285870833862259074625469475535828525076147733986194173524528082345313326175868070742748024631305340548861258957823584660519784464525481636018602741655551922630000534550766084063656657981555909031477144921556432313503762045801146002609972461460793141313618963873215342662138766898987299581506304153279486266850680027689679885153170496544689708230078714283448601131218720395442947272737687814013174831854989757561889245900309315371881706678951893846161339243914835057022554115273192410531185937259651095597786209443904457286501456263245589767923057742839239926880877857924616069586836000762226339410414587499077685952562889032768431564002774645511319198020337129724142362039639909902938916667141297272174320090663921815089923804262441263106895431345454881619410379890293086796459912176810277729791226291337991333332636270447815284454594936143382645259629460947205472411591893262621147732632451822426715995683803951382255424390756721682800406302819819241022383705010856657458717908227868882285545159147700348592467734591687460310287680874142715480019721169582121127605337726502707186015901951387359077315928370107310070840721187630401477043128212032408169167472155699959594933376365048571494840816622286813706210381509970679272322940743808498864839965591629322953058056559508269811056864672941815565693168635806380280319526480622120003021771454454696637963743988036597018261102341511470970394523767561222934892562364205107333646408849904139922930587452373413243863320521492258922239183019519099072528712572307613872404773471830034527841142085631047195885523623041081663219622798667681751349191600448970129682802452105336096962588042613100789243137367436809086537778875753831650440682124427556358773096632689301563875469670526628243437748163341934155075831934587545374995177133208973091009810540333696655991338270261559320761774556144916881026886274235493622467680786464730813072758488317367334212857422165935082066424804113428893314534387251901068106977695993825219041725760749022352071196526288700530491879864535161962912353647853763724824566576795903622101389554296268248824195705377407514422040186911589055636405397272961599200154002510367907466708523839912317192827543209483634501136985233276915914046444864686979187722301774946758457219059328353963855546579948085066560379882345124954423917957449103941345765561579922740732362427129135153350431760527683694418198248428292543038833590449497205055191943455626508402213099860732998117095460911627677061911578814238616168720317597250343007432627091962236088479084993683489017265967382164018625917170413597606104531464593963287455350841806758083612380201047394912310137997295578259431611654482953008933845322085809284990312216192531033798874242373193161313922049420127326635190283073155607935528908420752156285498689493974874661609212775422050289555180473030701467586786554694270273401149272153935380334258808136642717655952919144334651852959356295954832830509142188866177621258394673996728797761158108748881025371154789978456678790131660282767041796014979442311739142324678844182553641431056116589502008673345715818839094953160298801752308950839954475116734427122838418916808277686359918552160325273813177468454003531833534877180670457863876038051969010103760663100415433365772559746902859943482966860929037810963671194605316109231339678359710301094224976546906296346554121135969530978323861280355614684910741700763063689717189134112749809061399269333315537743305285538163276804021443923644927110502006447919166883533316436510973658017506187098309103851381421730966482485496069442178151727897648411983125534255339549695823426695255540460840921908472951830088036428240565753281461481740212299177653033465000480646181839862968427411141135370990958888305904452071835295271501069415757192276458499879016106557994694035930207671101387641203815938733931440199790845299627063893840628601067382673133099717179606671080861954856406611953753661334654037465627334788803955224866854738228617600276169335824074322040838938559989383971410711599331405042416742408503717227474533639304815107102123701254230692266867786873531521678399960296859012598174358614524342676712789563365903213189192572314971091085805471142670205182431138825968097922923784074842097219410900480756950040639445073788214946217332019512457220264277184598961296542021217216230812270941947383213404409757552004728531493759324147879612351725544453467025808155960569147082410488302029831925417774618896896504378968813366240917010497211178942990999232698141907778805410043705156535694525662786130138486053337160837107216794723789282819689235479755133588358194675381527357070357030065409089243164503557003192156359626274333816221985024305526606337818055008796028596202568598316223257592686084394622846860746253219765935062226085439495447363958875953503476137514476467980735690131124199796608429354759215366486571648868201895920320277858933616268150272957680005822190956294632210474009505966855428120034105221288591595931987021930816640005183987165017756649086052796420365834348740134940760449525130436715572772529411002285219148203081325819775611184285389263139416457837787665588293773802892440299408628162209051006028109013870187927673841595016768511611701627436852242356697083610358594642666222696359256730160116253242784512284050950360981163285664211155754487838432665830387002697039243829197187008315227163911566753275654102967580223108832168990676734983860278101686812320725556982722602626722030701116636537511018267326132059125245803469814887159998325243138468792272595828157767770271696696742404790772437109694757917120176242197824884049937693130391440757552606165594279048480443418374348528630037397822160599942946877659165694227487393024117253258514518490680760233530967933771174314593613013708890575164035102516476504560629312778657344957074705314542723791640447557895352056394590405932641375435385849526935910554775464468760698559310797510472787622228746606048455618210231079682189520744306657090714249779193696160816005278079508195840362532889812620424852008225445811072623714549037659855919902568727385912202790035619306127985510528678162727860053221458663109050770192249205898961875616444566365589535156631155964869866939518113635380583121631753596169281509347615146849183265549369847512736192926740338766803060615794752494177303959455838240700819293426535327083972869864387208600994240350064087899443319187686649671751955951557679608466700273279406739315259363729485015881825683947935188407128746256810289397509989839650600510304614523223200286182748625976560143829357696148891400187887269456496978735034096712463384438652179292913143964972920852180500807455460929090725058404226745921198109812268321116672310463707511391443843683183180022807783708141370701259127229413498447883800600932584587056993525946211068075973334985772655726819746478977412307544129671003470125597359158553157461271186970405787445014555125758347591386925874685214562097787637557426483260378993613214583769809984613694585259521831309386731019005643792079079472137267944073993463206890967195627228397883708170987394166999887452310547727234297331948056009805508195449965110103321245459444340331860488158501756957605965693561127644957718170137237622713027145390585167415482528458686329985523430444587749520313659029216195641944893029766753693778136330597314741995375210427028279160736922853086599657407777929263921704255178626895604873005471392651401766805211659255995362530690933854995405350410961589129845623364315244685041474444264176403558692389015831131993123674202914964705893100309861141482552581634950021779130619359740220841985066485061115650214831648225462973755342925350872390018895103995593987133875110696555161013856501097525012894408452077129493343103358855558115590589234059030249235343506887907707345802709527486983425313950959094666755937538228697727255619585630026526654922044000318651337435309154669027471425080435713099299827284640027232226505501990430963083933943219425086970809301860877326370267356406207850023519985654928317309083659120919121011822054316014460571462649178055272979110924589993591278935501445080697003350425281525124256458409160334838341734070933347531255128265409974708392364375009260288850791725687259611481491034206374514756056968701483001921893638226765509080940791203819409109901149785172780597755133893298446892754877930781428362161398430754242234267113617027858237752670135890308165565602980040508593120313016944106884421661026860800969239358232715299798629752221699122065160666733395563422636000605850656983868521655568482303423408518526719700900278475096431171620189856272339028935451242025121401159718290158859979973055681550405271237643368820302126103235924693741753939873978712076216451642664909261197460885409322594180340593593309955989784972877215572997259174329571271052450777971213363751978469851747807950342441306118615790970122990853506951000306555606499032005601385168169165171487288077205354746720270371163744888486836802547217148646642150030318637606703727667908409269297357234005298528588754526634909431647992166427471435846046589944865113849060516296431753020609405446039211764287175276816026707758287751806145272055761137968870015762793285831042531971117675314703069323114642441656361952873667606548469661427418696901401623709364844566873857529878580859070316573926937996075629036686769238656270118110250634804397471748936255894838416420943269751096739258476513502119002194685470713246733266284514924202982361508472642050749679050957683072650282385948030094206067173009893974990054291269305977533296708568832556465057417329258498649536984186329270902050421015809685337313763866759905529003309559814280434568925356339962714010690911358468389657109863588588072188453502086938004569825307607040138004805601073149113541834213827170048604866083521822689224265932363029266072185396710306075787810213519890027521459980620261704591960796522095433520569422427089038059575564533386956501141673166153336968902719976236970675708970255926653318150825430930680451906180796000435331485228562487501384570250531967695306138170011515752483545943756362455092496225368332018538143038560127450256212229933195044987234876570962897670749957410508253890062832334053474012526090326421036732206432581634447809818107490773691532657864643094620399946693931837760889236098750740458777116455807632972876526218143058580811018178440442457107017506407999350850382870752180915854906169847676898693749909142714626030200829828388452105078554111401609393499218249242531919897926499029880131343257700049753654024525916060243768168436481037898427102222395229298072010780121087936192843369587730783706768288386524489988494064926752316695900339068877909121545601362179975470613677010137987224000388368753829952147961843915027859573035357971906748774231167081747482653020619459765378220483046535381163949854926905042277746438436216152025054255789093391272272560691941222238592114099016623706132279828507094617712024532136107883104111943050379286043300198996593352698801065718310594202519219506133426236160438725595917581265890788386190042018630591550531668503199631306919452608636518370791864285671404950659057090860493517474233688679220312857315433482678408971739098822695821208306332780400269851588968125586570023320509055532746989706013292546400628962729742340597630226695747547589704361971232964480575600228569599509904079324257029949130784190116838370933266228169476123513724939518983504413177704002800673536335863764374317194065209970366199471855413201714141257166420100522598559125083240899596065354860615181739807010071856531660808479509581740805234236619759362252007266476593190612535165514518003310463661376488452865598432919103965962163910921172489744238995559171370855310930596365420091142922343188376737892965864328914344629658786803403136859707316993613223846535972286979517937714652396267198282072642369088773433096344644044100449588227498859775664418121354962833988198086266777801400145401276687428988541179561472447268447958493619448337589289467631987012690973225884563879224670409608827270746646707968596761662883196183525508763880886291625368991183693498608865909067573729443905845944207511911545932815084281084065600415364503008614854507602452397326795759216221153382058759883797576968905321596514931067189774435495729684710533774878132694425791480695296810221342472940280801298355847640730634798803924083910218941371108273443471145928996062181719354873495041433763068296725015440028789601315290893455559767979409522655421781962065878453253104509860302426914547282107133756869620467049846955201685427705228445527941940785713293149353101920601933826357668344845457085549540147514251385213984752851500420010633663420423610584280676476914416654518476671473875196697644177491834074769283502865742738574942495259733375681176691165009650716248847688233951575236452106664078377914516665515090020471145503600573032388811800074827960633678513023904536394366534472967718975892766639188193318620157175405428267240324456329565937473429415497328562477260809253276896707093990863901862341808928384950968023586799583540374173193056443515027379408468250076712994095597815350265230846987599856643353265944918004608430578211401824454711657992282491346403252259414514702724519859518556374591136799963595962966013202731136845571704900216075748983164573007090425424301027053571750047147720891187135744346666678843123171769063100982673511978674283192424358690669437320605179350262493290463646964144501202109799775308924321743264675862957784866679393562033662702086792471640589981063864249291674491645604894601974926770787587519443842707747566393388735476372314825564512762572221536913062848787701046978158177205514357620803844860694706551461799787921387889659864672433276989104139873183280350190015041810487071862660473320662821200132913341162299617563175243206102595991193487545717128421562303073742414737181546561018246832861422371969522311688697604978629340145969910692544172301021026906431739079919414693822633047217049487669296109402163464689788807828435105284762852232867797070730976490118780876708198094750856229985464338621408286388766266808877679840181021094477187465775840213368240369954400263022368345929970870592757460671687792965219873136815551342344619017811772945609747842619297556794446013580580121586832943446782070452259783059827474226123167721903067990542885655972775073015577978125621147728547161245423696941031705740976676908281757287239916231095902545870299931649513172144878151853694282510524799936951115226462371365671001691225982036518056370639991307228896275701608959348463423437841290094742375934046056051481842728428629385220587908519507497041477624024702250461995020886670782968640089362132940173360362752431926273398111188421055984844046552789002490448968561901297478860784578546697146761291603791903973972486773634540337868325306991805586762104155232715905666093577494051738886486656931618665035662096761469443360255898449448199426328104276529175646271828238321098325225599012121811269856524101738679203880032256797537130503297221436268407004952759021004466554437309790036392851181859269592962203760766470408058475658584881127236594348434098968044410587404771964198544683531623747765494721606312386406516957134240451964096886630260587931602307126267300078595797736179449658401560021639623954186531305154332603592362787686103669184720799843015117918235999278924254415531682454497662758471487487954114956013316805686209098615235615649231749488749367995936620825341632483674269954655789123193399701078271554642872730563876196044880291336689236098641240271662009218697054840146466834871407084779954587291478696487975977632826620339309571464328208946494982363873122671435774955059280485887948517690762606341204687314450245727887042894379637854088766049964745728132263962021320616280721638365213181439329084616455826883210173320009555344303090151924742372829033465235281002750002342352843243364105619518805265428568511190731405083813471904162159925801944757963923796610452255149469752458815553703019306026665808112999197193472611912631381308726305351986221500293134861487451320392931486778827379304312400568184483268517143202910461609114999067402094628615759055806066767640422014451076305449516887187025053874640882417983732692207419840913313185461014487796106571020717389777929950971550711828036422219830773867778354318976394702083039812345250973247625553591313994763904182104697576660789752138536718280521277086524383620357156872554727852663940491568717786418136394022798916633275441506540868845671671960558441034431698344535189362774730655958296361798878502563664546354014464557459291024075337288738858516605831677100002836293316666481728266374799666795847570498712859309061836050720431836193902973444291757731255651475731499976069736576927811174074662455534408729766899151916626067831615734570737233715880502236388168703767905340376510083467527771373459802385757159571617715106021452924260710959037406481990404637177627310754427989486850140405807139038173352595989241829093285670428571155070626469776055849828012792440686158917015666369113122953746911368980781161430548536331969278882822792901315702721018620942903944650037380232473260707132336787114459781981435183915861803321758452521511097703145365760058796522898264225042148212006024066648543588047625435396143646486253641479508382891765883442405349520454688935907785934183475589855876843099651524415336091729261162191838929769526117933667838832026643000543541761188176231216708752758609006618467048123116233797459730234576389147940387913348542805913095389618564014086171417406967005541281840333239382374369341378784519516621268650463036397808334237709746926882686301878520278337090494489006328634915821544963444463537187293000190805725355672208859285335259929051270790875790996473760040883053503724331388931914841532204708625941051617854755674377366878453399130879312132703319716082198570070244698108184411675225399311313786334655325144559778819194587902006618136891247993984306907677174865261360603997565178267031515579314348932173176989887555762497452752321864293403672555524192264427544570320443495285101153168502274181305385061676613933768872829358404033477523970621467609202666530661433414115377772919116222077728677564697150805713243205749760306230694446545555157725056459651949446998421877167701385507491941173357919776376667146012198246207394927206961890813475234246853215334495854761521618111173690561314004078051671679147038869231245909431491541598185615223004495107020627123941273290919849627636218014253697683282296431627359926158701641909302574336486194470042985258918910707696191622771529413996510152533480704132598935934921434140083234098435936200351856534947528656430969778817671619671446937337404439460247222406494485188485563243640430132661150744567585198457104249648671386784775360464170351037136290649374180292429146532998085357638126359001956669058362829027106731082103435045931821365455061395214542199491159833257447180188531796251561596622286255410347680332557357698717291980853623372751089587333203498757888539248622640576494552686151946884710069574802036075069710154430448159761996412336020708398285135204433736907280099030030167160662699350213265814588846661508383344871294485472948460456777748257516595292260587785423369404581174792921827221782117100841080321513038300709291621502353522331718431286469242351989069924641272309404486077555370647964008016328425783475728183619201487696399890334463532586350591679171473096527083469862439068967490965728380898416031009984006324683765406562308050943884488830699484067111452243384687720993279031848176232475295792396686278576223633833737787872634079064635915715955215926665823595296842944505954547535212419969454007705747727516818703103738653856639582790206204997978580282548209277022467638460450909211122285251975642932371571932780653225527701042254390607737715664932060880549720927629817883888899660755033688881407051490497119123373857932952434658467664171722908480027716263628901587936095894121740850058155400358848397436420043243994077401581373213804101531821391880109937058224335947146155252482130829693772450865553039073190682179265497202813679169931966713380089654447863734120067257266137383594415077946484348361600083789857606578691053916947309406138958178924128814048044436813455354546678404813882269048547282811798507195288869347673660024202242473585524223131744698047665375430020485497073414760634249984292381297406868059664023374476689282584521911535770448491578356000814834492798865341868816813691622754880284608905453104986955874728622047799515339755373314243443083702417038868493585119255564932209534748700731450699290991585859831934080600226353618041925342240369699804172940397592416871993506391155924275832438113463975237353738339041668003085621778861672151626808444357636466282917201219224821154739810187500301634306300571783191763426694301934258717794179289316747079298489128841077331508910337569980109892149033014821628092618217037040319512505310263478921155205326569994854215992223855677884013047561102657519525530560849553151103455500481870470938882811659795036422996576230659702403222514516035630480640882672326984310185135987976871108978422446271963587331669129376478960983134361717382959108075254654303666672996725533861053247958975757018291308254509675897981124139541672853246398163595963032074742187556964749838169305541144037131224869768550733685550381057146592905492292751005249928773508765014747424380100812502583521285513685110977566115943348753683541978875196321356567023235810850425558741087014273234805024749997478961676883224776881959978122552664584217213223628342948527157594097055721325854808119251394415485557615265869925855403588740727179268988786391257553564671218988331022219647101174202018860722275014040077145564675122843347082621112081461059417552475383989099024780370586736059092183692938405737602965371244593841190463293605792746276837877025721930200734033040677158006616829992426257162422597343943701486592949333428986873046347334544058205328169156187014999872437700423246621063491376533936164848518899942019155458937048047846814718463947743561632811531321393171516926849197382224706241624209297044647622177723215580188583804859797853467552614898758198534081689957297395513521270815955148360135084160365055166811796074984627624103237804570052817446533433568654463327839421283877295329893475024914950366779475992601350540769247728217177110905131957899721978263397195832996137575130476412282277726229249109262202899021497901952672975557694678849752441406553310909704787012159611089636943289930301540238478855262822952383368371461048935847770061397877095879284007541009403745656569545252759850660695041928546332427669871075260761214528874344051750665158973631966410161570177049810537390565473636345063897026841641371540128845471052358907802809631074279528766464054840277130649708846690816174973539321750934826031133566461589751607614103198061598051841182026767911357320684558467640076489955056900746485508872160404211886141813913811027768975319290573714028126663217731527317776241227390192387653385764817569424991810466317652125922350637095273393509413146998385159190972049235115684646517933945269260152033697540336660248831849565674050446242505764110267917287231702257993676267828657203859190278485719173135028682974832680266486667676426493951934491055803830897474686967185253314051534967940878326800385972713949131101639393561747021343558752305622449430624090902657768374633825580921442093484121558189862713427995087789089325892141792520458962404622562445899857468217241846543507742207290436995521342428402172796836233730836086630038826303323408743046577194966457589776673810249362856584588945091556471598884497428378212298945099706274756049235129349719667929484015079441967057500048929465532255662594049139825497115580692849547400311961983638688975217253730021731276553181468261887400571477760336817066741634300832254171399596781703214820866101793007680619424944360381135667383832696987799051958946466172161487529603197306847689748484366767649558437540212074793314380719792977852393246250822341343741694941811796347728107166742750717934165240305329634308776977330279212811703023591426184444552074455399096240958145911920616726592749242198289720631417066045179029393477955135723334518455591523990222713505475598155104665446583680571128863054544844824420216510592214675506492302851837064375619633255983398421832895302039089623751512216288094905635051847769881114581801908676342095648966951309933423700689213154215222326241080121279914401365935792891444472426534561335201701143397013495826269722645026482728742259993073165521963662426440196763593855750418284136144865032605475333210351056940092588865350141043685886337238951422632430800142165593794284566713232220214269409786567854945249202276867250316525362361519475335986487737663486485666533808672184985231450508286548969432250206734334154130715667613289698998188941617086951339348425566877846656534117110881813762353080112416974618281097661205125782122914451468155608877672951747610114775811494267612006732943827965127072479498344487046138339166520840469846990230657829512279889974369707964287964055115727514912901391304425684374773990029241597570982642563283532228948967529376833039952460729343764610235468328639203463835521437107359756788215382653704029162572264832135091625187647437930856507060659492916444774671344894993757477442757196124226648979084311135356324782739094556806728297440453910358514220493005618767675371916291945689932102893483036637662913048764781412723629338787234616525505779197164625920179344145933587961657511120324662263865076700183785800660148673303469167129526567438939217770454988207116136973302456462587479426302355802428369268574199195716116987384029997271664836153609125991638427468649547283740062608173194198993133860367053118778411203101006607019402586756640245760592945715691791263053317761473359680549202502138987887586049933277113766028661846886623040448352014157488628167220599688966966218448558283958135448111794875185330930464116821620949151746141642833038122312147346924456597431610949271576900228977063468485648614975057464850466888464655781668847286449624346289111510489293668679016361120056433605739455811732079162730228795773392629968800628384379230729224256480053801840853442738302308101725187933365207554877345545310557155959909098827804375209851242174236737392281649474822737929657494307667977695979831481270423316156151103809335689103382532487768911916392917634988569412328522601666629156720114640016968242951212111000765780020385857153886833439929091128650570480058684786435194964171458140698294709263051316647201259912297289909240226351953451881352699277618268144492522860756911716702470225254022692612881546442266656850194151250591490663687576515690447622114528076478475086192357658722614840715745949334423717076830366286043794227798096434321372298350043948716727142153622657078735555133238727678854143104802240473819416355574193261822893219782563954195874968745823702726084211308669240326005326652695907993747547391124067449766141234796763886720133055288514851671294794811478278570763434688520737997139733561645670895094832219386628835190388294760889316666817234598470553042977947377514248440119386415359307502432081681672888988448820793002842529645435749200966964431413896112108826267416926007821568252499715880830890366385308985295478025089103244781110849656392665394244705383264602402926161442580072989871735472182443463503998040823777636020072037999005988560700661893017880018589628805758249702464470964880151810326312080162581192152040696544878504057591206311702409092365521387173579698364165520379410981880813709427782770146587013339366807387971426871420520502332777432137451257059034496024066850061525631567362795435750900854774361303365001267991457379743782137859761577904846065192701615454585511494667130085453724769309218254413453367144633614608634500625117945702573738204902931762022689455620296565432541332942099535628788042259764875804374743344972516413929009119081795921309397262353778103490345626760107168871209652910093475742645221768518378606706696164715151017198244210568775070596659957049408001513117601123451129824800382353965049864495401658003958418042963923618926420108834904513315869314009900855750020259118815470532241685968237077727868138794838464690868584462924738433321152546050638777859136801194597036939320559787723578721409986930208617719384247419690993123466247360061017745316466639141265300628340744754444932570815538077970199434568080644760091781927798444603625702496560298800690338411747151543950367647856251257547375994100088181356082850371868047744147719572761187552266184963417850208431704992531121728200280439563478096126872116845054166154256002992903239228462285104903280566267017072323020365618743954175952429891116537151160079014307014449520184844191974833639331990944003629514951746884870391904922041320457529823178505892820574631997238318661386874820005264735624695089497265511213408582549620590097357733050463558505882160645036565420296550194603485573371665238012715030509578062225251359881605928575338878951358829319872698417370946709368386429463861885811609946553718026930486491318281647547201460169943277098076438503579548170376852266689816415813066189149540576307321042824941219497482245069919711628198939811324402123346297941352525033843008422859751422155329495393548547657257667352517568049540365601875363108766481963537600758485967125540191598897095877567685770541185478559812860872046217334905665364792701866991663776094240400979546023964371872658048010307230313986885497384600668156189190001948978367323093983161601742568816748081143261899264398283646433956579871750681630720382840970095410308632934461975641850179457139411435535427005652823047207021472528491530374991976109841792275919887833130424936931235960842611185546020419849268702397738970299468013148819804084231818453949110095660301343224294438843635605430547621987996821877969275301391912402236920207299682661226916427701904704929224507232664464936991805525759951468480344303395399355247542454133443916305810981748768207791957433360396686676696254229720373144787605720797989324888946228232271105576765410804945836994876752822847294102587492607308728447436328819187475787642529074981681597216044510884219824283033492167988387925428696588668080717789080875366248110529235253451800243452778768483203555838295420940744201140474831159360907885692863565553963150698568054229407928075717798070067025932496878857608206955490798930968079111690928189634728149731714682632509096199146985464711398703991536558143498942393794331668238881963271188268348586700278284182646476799621633196702816466423077039310646930830009852206265379916335979513494702740175358585101513316799251024946469846538416241398237470345455332214296647776899199236615542499324331246985044313420216872060401515005542640542753600426123994779226103347728721413426666342964232890890410028701156142326314527524150390001174419363490360321241994672505503034120825859740758718828439936999836568905476995638635886875860909252670765921892878061618952819417090059664004390414092747021659622328999294885933524527446071022193765935833000511592121291383706873608030157207354043852345275207162049853415576677749172413029854967902421305147796997957362113668454407281982860387866913998371993627793063864528488469970954594200279942706675236351047175719697467550466225155027177707054437157982695232902446744761151537202988382961860987930951780949705959640834552387781858758121852973543274037825130471878905497393917813494156870156678782293341765568446454102508522364693213074084957226085805530435136023301614231384002352871442591490661096428971810059408951750097328505076284086689997423276332401294573911652263819806525719271007923978910629515719782363175270146968225133783622456402502767023807725889084444798000921067110149487859905259152208137291022731814207254351955017963000054487742912448806933652219309758141058191112550264483209968897261668990038536565414196738435957343213899934952466913121725332376306288616324734510903903664372456102258709698000736652314575419464239549245960084025866501455358504678194909174749316569634354872755312723361505204754353527076696470234141025836526994191110936006623037876314129214217656986888493828515881898330515267257815890677204410986836893027942225371812654363017775670536323684793935886295920655461950245127349264794091377507851997772463829163080723784766627429924437170871932249612488204743649105790269080278347007605885927852584534623521867161243318911961357756480745278064858425589877135082504372438220123992639712845762634886867713925200022020130418909401261488221514764462398438559773999535134113911879888124134720183580211993962319350658891131034637369715477599902224625170714102278049655437131207244019433804285983052973428527433588128376637125986374680194698733186725541325726710701231938079016466573724140357607547290341399206913695945606915011430229875961463504376649317619189665422060230686018046857244418105874419589240147465322267231491476633920759519890711099229009866097346584072998610495141875137551381044900221155808207893561082216059168863484435638368752519916413700859266181578894143917127306888000890829694023761465364366445139847719471858316038207761033401214400465242804820055440840708727025945065542349604325726797372710739931971861488370678693437100102564439743464633399454587161018909457719996428010008450236163182773783648488383937840140935565087373783647904861596291567991435052079234736615288493487655797916326712583852096522499638405554820772138064960665581862632823281792888667794105147287667364365669244036812400648578570436820957541777678883468603435941327969443013876129205413334556767322220639957242367939618608664796832675182714418868147771202547991031798790573494071139645276483552017282501760935833307555427693449410974950710234011871930559709297329853651983453846386610532975464678899885183927715485850754362810993150658934425630076711404212220153543490816571267980770958255097254481668162757529679612644110558339410251077060834941242932088584586748129097273165263570302069870307070718085956310394964888144608480659658999898443328258263385343681877936970384488220216430638623926882976216260033804883817990611703206559112363546703349083541649120543531282452213042591709351667850146150692417720579101771549058025412310662339012195824079834508449583819546022821409123217542031991320501401161865184230408714740986130285076466729572868118550712013322365603131952401065201892760560178412142122425165561845360809238763558051520817573002115965318856949433651944958614418025248399977970319345424099242684555938912314276715758049390304678438668812324674452384588381239047770455138863825853045416653696765861113290651343174537530838448374961085716888569230112622984741335727523006725427912771531059774856213477010720358082184288882536341845864326983765738511207814498775846243096951289093293414233256828926460142551563566722037726309715813467592997739832455683969982272737515415619977281225758329845904427467886877824986900854381890026004753827953774230164878708642170995567844581721572140577640486067295997411850779882755000594506510568030733126336412498990679395497615366881125287046670623975467110051517197421046458619559713943761669264874867790820405365266563984350472890700853123704173724893056186672369251798330831364488684393724398047217956422195092363424540750535072786956756452669217273044393001755427937177159029923868723897744257384704346973044097274099223193456428870919487163879810239894101931421658872488583062027711561186470984355813146068379911780403068529238941738419417705131772738410612393148070848283517306618879988931192577195245603390312399259028454427790721612668675892281344300968602515459460703757416366959921634850561025602078543131634999348546235457979698000021942148784754965351512341110670621185763295069431143243326082284252651166083904290132277834920250321670421918927208870190761912842849855349024170212514681461017601229167196102953060077878687565588848012368057230739640322953141013983919757861629817504748467679843903017343761242026073016349514594380823532662825599736332417083428034699160013421792565788260376756095010977998969169992690542944521709178481759881933939209944233354204223458289379175175217430664191837924623618635794742884197561493813564046636097152460801158893730596627387727727223707366400667026407553847038016787973063087761979022231154069642438324861641266247017982155681094196344635526393512130890157115074066104959319766551419970942868683679848367722823735862590607014995913631886517491493173836697302512722771336155656008823205909059178484643843231491675345419758150068962266507040183599314155367511004052212056060740962347896405872237999849299388600269838449547018722707999459393699050846922743222386652968499615541826382389562554178019758412630118607862455379504918739108159578232480044955016706980254238283010626055747709153334814307611979868142661012813253664675799714862445745105138248662167396520460422061170552277630491784423588153256506285142402645475618111245890527342864635200032828967629012137599929973462040555210310173082595797325698465961904505632603278937988482333200521539477077353574647421912433084655500824165974324076719834036357454698474001728471729207571705702003472730236011384022645875166135235613033184711031745272484161575291545683151153510871537868554636036805709817987293346238864031290517446296102098782319288584957121158099562613703822700605292301452572270397394049870956209771795841879350803799612670866094137521988977334570940600743307562063391518634450146585028906767898740396308424881103551781393741665589803542215647452981628093569231837959930511270933811079764833608196808866669965414842306891873617369894925503189661540932114087150475626470725766934897624680451376116178370495059337708879373020415776791761185726185821410567050860252174171269098821740685839744627333340387952829036607484908047671154479200359349148349026592282591231444407943954325740514840406262596588612886575854744802947241216326175362471639970513838956745484426666516179751665871317998318915554928494535431426716362633074644506109138636381208941570099217903347202440720098991037116799439324874856311784584009362059027863563055376690155799769961473898767512938038961860119598716756074873570543806444997465136585646537806168365907891649670706669683614003657438636132881756707509120058435521068336634740863736985445549775147924969405054727686231451228899326807441391595031638270127023955110391894668456742196659534404437754625521258799655376150780812662471029819387844054721038601502263170085642442643993251525097830056182053387602263666742614617383839232856046392672635919703487429459835806640740284850199611971746512758512940574623992059812353792277295387666626370338962816028006889892936634396986812744367160262952729574110500256877591244002556254345773801477086686188098059312713445575263371979433582434902933484054889871924809435189603356594645234426978541733330166344250761122480617100969790177575552600912368585289175128797924092221471089544126494517606131175108284539166279830025749026939458458927052800443752876938678915281901654500927443922300242613367474303560684625471823258971005366242987955234819237552709858613896132182611447386301612816088340307646534917079881372809780100032567256594616077153667286014509210548319441835798822693854693470718647381112021215916984629939606193446197500929862888354353415099677117423282215386824416954951327516200291207655243451140123322173940902761089292561792441823403452918537775203690897675807457923818546870430820080836023380119820318333135996697106017455755910860868132222748185569835363118364248705231986910673563299123046802723871504060600791157074517841799229666381966933371586141677819872563904553279460411307810166606502700665393314124201425433386049238808519313474035936574803401111209252668970127207050833529348518088378871824811674128364361048846138141632540306922757559938289938568594038911165637725261872576539008487540176548115711496022971383119786290454951756528200503969024235756180875180650156234801986316523078896662700519813044278267447752850456203285838468177036308394516142347070691882098193322129532013255648787939562341192347687070404152652095814403324769454158241260018450384879347587634853818815341356834938761738012718556059602008743174222197167841382398030519430525851248557412930092652424631660888993189171856501071578364884206908837219233532749268448403919139079154393287474909742983233608779984033845028157739393380676312726581430766316956762923563284199942858373943163058912782295344463408203135602322026442384733653954991721030796909338676765935975531821716926078760679707975706415576653970009866999134883254902564143319642407572233592566957539030439717626400406169168555217752298727413948786861307744893940320781421103527207734238750149900984286457122468260753470278153257615917237641065054699612189535237883168998141304592829173902653279136547748660974429783646180561493904330827485153729475424582521717945914529768641594462468107839103334417491197074467492214500534674790370819653239344235444935954530751715089738117418153078926947149007077485221580905796846656914467959814528107845804229880726257086177831763399843268529275795164818279426401018809053675400219209554827093624629433155468989735515736380296063332746871436621642699507139343325998526557442342891951550670149341392569657494415269849995223182174122050343358871447968060101414221072700313946331314884036845006207555660035430770220511441661514839542959075930038866927428158642671239027304723228483764530799369370186478056312616162268871750582470870305160250202565460573159484883267391757804861585142677219715161800744820940103769842285753108952032217335846861804522360901177932854745309029610804810740014871357598021426997062348499180998622342585577970177338837407002370296553272259643442792443299859824120851572391488558386814037514570627342774945061711583097856556542084766354117019728994550176074037319095223636977085444316623447071372058011405823495335500453252354935206343734461012619767929358562335748937724320256133708785120364119072740920967195796789704454387251170399997421996059830645205504172598214015786620549053751944737842938834511952953213213158246542816148134630370671632331480680894846648590745734344332301847221239239618082284064715944535058796197974953658843365093703073472285123906833748014445183740217634629902811794602219201511725432073096028186106970084499677597771539009059214543207331947566305556876652128414719340775349073613858621114044948127847799138541575742562504310501102893828658581876195667898421269518070776158761235327712910915248026088498099896398946003013409501683640079636735763804221590963779297767524253714558206173999355083804221558155059791519990139897281678063661023804049925027500345465681350570140141988048352960422547621832037866986685954738171854130032744636860181178442913692113128416899157518203252294035770773426280353000522886025442074160955753233306975926842435482723782266497952800343808754129235043104701693415615820352928216842820371593731638481590574897139813063170134911560648896148853695582031012734455772276295033467940551420421532987039155204069326263610745794695343517755920998312662940254194023630878064525457253090724805987605167406773573545282484098511168703475081763528352016226581653430228598019543515135484218759567899197425280830129651116343615389030176221031407340648404617685463587704906721885716524219727356999557610026998112821490350511953799819143706266443125120915732459957012608180348567874536058995639603367713174293603532289753122132854250043062589914683796142035723444148877953394417811909326725379294584734120695123506148425957524341866083232877557626396991682675011163445910979946213176286914476367839357286973294619587894408372050044668480104526978474363920028179300837462951254699547778600302920120163663962797056180878574746490580792397785491149121913326972424443378966882234874081653778135664880521187389981581662509575603064513312819951211883639538468173327051069427138571240565789047057594372380485281727171116841204531921265992386673507364079518995458499860853249898503731155777702308412105581363004214308537608436399752535530060577162912252305275836618173258159075459513223293467255606913673099217032103610457768240904008820557171222776309671341663246095821192806719647306983563137769850972387133640551490320799871163302560426883609489411189662905968850100135185625841352671101018112534638964273419932191706804397890310852098637639046652911419315575594521845072707698002989428031002934157401406481879229124530460134976497037314566549240131950999655497243577736334168768867676129206015994830152126908751970615743220682957040592695238640187180628522342770315667620816758796863211144672016164649972606537012609167361907100258311219364246393190964265676631840170942371634742368027347143894463312317077160886204537168751159477466700477361012513739191123258236836390255519952581997493114063395764742193394561039285394504065390028082641150287954545425971824570162766662380237264296466259448427800350921584124507223024731054003448340443173867232626439778250162282742072428319348288588634630029036999387428941967764882680352220570617957561789714426964746157013214681251122468103648422848139127159761541416146581841791026297054563562551692763334969918298245866943405433274306854122824767178682008415819334044301543072710697049026116816305177346277106017038388304309656211893762757104847894420316227898683127852286388380747998175448033047244783324196470745818020666929723603051548806488040711608633899008702149231771254233453926465702147398249882436479374605558785936487345623829478538819412249324022863808561815394323170570796297155047617003965538902140860370767874232550388262821575590376743976280267385472025742155263675214942575352980735157626592103833937965218029312970880065168886630859479273114024621111759317998623399404021254324905791413421565425804388600066295408191855032150581439270765048738205176037437368319163712644761329651587214796825886986718784004150711855576001254056437585740932124068512718757749894341848698876587323501474257909085148328795784456492780678830075139714089787254031959020150392971122346655383267241961473103404521917952276878889913393423162440215943685653824710237841770404368275609532482024821066952736910614463687166464562954456349596856971691344055577309492410036548090430636834329623899414651408112216613024382278552228844974404388694969840389495778873958118964826805502745842486164703044221415665555742997130398302450272305000719332778866757998268828876292000560404632662587927299464882411742555264160481326512933016256038761116254210752682446522115273268655321292409685128611040670769691695165404170195589120291837536338607286501566090023318280325943376743187263621724243011265328036427061516816928345790218982634081214701162551168081615703362546803464559279310344826491921895195729164215602293472085591523910348495049782914623677059487322604544696372028057046806639616742249379139899829227953697360934464069581635935660001619920820995065454675158236461744835047944369302744167837999879266381199583445076167327019706894988119437682991683621199761433004487947782757253242786561643810533010278824550296628540311397392769841071541585312057264144028853050950338891345782635704729237424040572137015561753030721631840486285728966522870046234764173984957441165443363706509967009253894107609795396765184552047283996035520155290887161141201686916268409649148568966883751061459987424214834751896049523245848637003410873494865473273630514698663757745042071614036056562337460645925696337881275163019982963488991474045314216100065180892257043471789030818523741692547455492648989826130150183325901622303237665542804514991574623291393583529320165640566375940782167429553262686467037338610724909409905264556123078289160483797343816444024990442260303951270822677663952768012021419212497670612399563397943565787935121652315065068383966115584270109075895122780306853979867347828701937588901632611125790627995524637213350960733598402462523138543274876322254682852708999577888908014284980191241637562258964470672832799001779156959314882825430723611773328124834551987602406281836492429908983549849635361685409702269928618381912615493556886477231047499430466640638432713516708652969950977655041337841410792815929481885815398888562752300518466738185577846673062040648523238097217382204231937830645340275726605493735229690194498858282991197736897776987173345300960381537399678605161767447810879678860023549085000337184706300768569682713750384476925618545192908524440142511758394686809354193436829936862305626224620459297941481484960032799851122235782827158589245707235569083409796447290282701386839549291037486085536191773275859401152018329444648767446905276514963804408565220418334846682620719499790791345339022404955998676920857031367775284237149076206548746823320167484143844576825498728974302510944894887085238680897383191363001915508476860355313621872157147002204042961058639129143548912705548406346992337432851362530326840317488797532572771225497657148484512709345787118533102743545443160900598050534030830713219579021110226145695501686393188637624475535096216683009106133470917415429092779884898828075065327693152208784415831264894045685619103654077382658860156000233549695006712035512700202645378951926927694390945509599507520526506826070583746710530067346300001816633502358657871752462712415308902222669055297309075572892127642553702567715314575867707461464092601790516485900148282921676064637712930911012424192041117544016784620486040133768155483607197912431784721603431443385480864348539165594518076898478963896097591045702805896765612711019895261566467191413994722090982803350220082321859268405015420496787852431257151743184219450368447426671016626180307721600779067211134551243598964752217127835494440927449036759682786300025192917543926235941417133119089795385519967588097954422374072540500588655825497762850885495851504081179586836544359838754066944746456213007014274999582726019146754904741523655131213803784247649881965115701054589495457194411879653927333266284236837867262624164732928218725226271862085040432242516956525683893176355379840048748151941067283930664711239063680843996320022563348990129511305224645924082262534600501817959156646408226406887551768608715695456962482286462624926549404248145426863690659551382770442895571901874953886939620724032303622097992211378064753699696807209083273894256084195611961885697874228111464249813844160950777716067091334308553396527358329601827351619295587701767987412357661718192757271477289353997297400947930146307767034897323098306876447204836865706505968174115796027850614113460233947874078791117892645977930520419410399385332661703206944310506879732541476680554825289619502679502911320367685816970289991215349762820697214433844429858968043347701196017850704310290457841538313064989754272628118776678292720142545660159592809992173966109356289962425268481210932418674665037593235767517956605937796207087702749066734209146079700718633280813826982156651617771157518243351097629824746189880734969338991461639080717559335218763725707025691979837517450685895264193131122420099536643960193658134128419744461408119073907008070722918331929472399234614874861863064825286648795598527674242800646512026496780584038522904187474858815966369012914695243353048932856178725405238895675971152625222204808482907283822287775489071347617385322896185615963151204752077541199368992226320216576358221296621397594772835306051427824641031611378770383046443603008890560402308315183333661783192938861092322553421215421801936284412396901102478244445982061912482280556585959238603829396209666864149222796752418297372916557453356224109200767417528816617731624436213498973727306676894637814873025078615031712345101822371445347793116490956944361490588009893929886328806901040304443240867653534184978671427916427382219486350596297461850333840403697756583826868565013911507200911372636327743716799012672164504643590613044348776861373883740079416014104563650731065935630375731032598590994725257926819329328139369428260327550867928732207574490807722280073463943965088749239765421901277597770594157800502042103592273059156805628533271128415309468340101392071355690029143623486774630184826464302616351041368136986336357468776589165619689053046993030212231346196117952991395946843266151030966956250186272471352011296634852388339189132579218508166081170034010802407347057283703750613151217811076551983458556439829165690277706874456744980466379982193103822809599958458243499678989794801033294982929417779006601838979098196410050661236566036664295855322072889234477818865383068446582302623029728880643748036502254420491719158794960052601584225896536163733334787203659501169215853243762875553678000903690522811057392577481156797848606448608176091315597809671749443539518252766099661375269209836707314625287413486526882648353771168181947782971836348136718367179697218604010372011113180194044515724496984061103522331450800624944420463369192664357214506347710297864512965804684944734955072993338850293205665736797498858211099976348738091659002430386927638536496267649519712459079504270723102330541936268127635373533670949630715723008364839718928913717586734313653130111144328877674659395081484425163618780559369842822155363577150554777108117498374315617713838838058942613954992448589508928446838021725590591881594669455236968436446173887593737821212907260616984042605342291926053858362002864288313817397398569093606441464698774471796815031989165683730714219150881397400450726560490911400186171235002855084702754947857887920111141080886313227396584651682747615688968805929746292170266465396622621195475455378273698461692840491752599317096542673020178709023882800310843962150987410586798723954283718717336231450063083454886295105699763438457316930022871912712501809366767944917957274299166544343288630273979924057629371691358245126504510658393169955130244546600784590826586829065006710259935626494983136303197487420048084471232936075965709436697219808162327279370696566561025166692039555293684314266329038489877077209974346259772823851571644494882287567422779739470433332468217659835760595282091006459549881959885506949213829070478068426484426205589359516065704340951175078422068404692607541531384140323426635801778027438695203823735750470777163337671781990016262076167944564018066122410008508009982321620622430519766862961222906878516439490921679088078995512698639508703458461791305888621503543509508046381748230580670392336140715002435424693454851068538370560828262322281755644053660621186789159433729161052923308746227122493075121241764008559872791706721510636493177958023457748754359373983902946499773563485230144653258829823547517125916834240277587004886591503051360505979791961729717800761164623433897503249285765163650738929246005031047789383065581584801789307867745609637024874122241584654178999115811251364934029818603600243039761724337034630673289510992260578583498191972570087899981787802280443148285486961921567993446771747381611833011086722426094508953771103457800660494926379253546595809488267049293893582849520223920692575241891125884484146701523471129961318163212533947262371672655137054057348267842636242325593736909014134395234801815731481187543557428347441648064976076138374694873312120676614376003897084596582659182351071137968019218908419783765115840219467494541202224417207126284262908332324066883861192646637342106612558646119502095492202232153425525659674431773389388151808147013877949166161440434543930366781057419026320164616895257624736680680911027326622608588481800162461924091456490622796358592310598371501429108307381230322617457229267920677013599408230267898824288822099917562474656115888231561542205645520067432103502845839080520164823011658895975079826893372006407377929266417078804592420531711933206275928748841232013384461848586068955840342094181924514009881333915751474356122835897674083024902045210750190268776354988885394304184769849187698581065269839874725467941026018862741634566044863709019590275740740032019485731417348492034955564465896817482297606600403744176392886146766820702915984575486675441772549789128452166414026971968926083123136130684013266885329592940269134570619150324656041041216915621749267205076253674367940824702353124872569784299328168115443191748462937631103234381863327330373390552548561400871521940147051352304426396328205555830819686100458914262749532829614931504554598646469100076472477880285928677326100815622001988481755708217039851454561143611069911029461522629119751134786305309091108130807701786398601091233515976062049816168558548326555578819341234580173223458698728132240213960471401928766238958630100772970842298729884222606346338196835090652025347133663826269530276070879235978059107298992285566895812211666599238758635518140737285860043222875205949136151710377771120832141053396041242326833042141693283189106245743265540006934677398682654886249851508662928021117168114083379949508981483895792049059479092557896616748971669912668127880369918571176343161820329995562528296100047269842901434941489962183392204503883115043800305289500706706842930212149121434688914847727176833899500426344578344835192121333436725070737478784134831691955046576222211784344271322331947713112844557684457446141051023924220527194130158223227479706586350841971360821948389881606388101477369578733645650116504870483798685528460399988231660410384051698502823102870885367487556031958708983169615283308732111782212900440188857620104726416508062454401154008653655777199045596699294564713167038180631058112864906660338208622773055817824112634696767325566646124191987848762409364038545514395805501767538498712925682843896467893595830724291755625432180237961528050760586435199251591694627691567691292495040697372690953185227962390800818639486724025896636890499517686728491295743499237795602892435380104905045888792490024236247154648524585870787286547585801503776719106163111940965323868845436702491079817402148676171154725394456808730450686614047971458466613066538933824515887713967799241099928549387389859263853531954288387563138074323143167511709848013586666174310736523848965233332009774454378168226925792822836850459278597404171176796226327191748640701306405354068405434709740223160882696942252155462722612188637160777531229158238442946618783805951868741361226241385424251581413535489045916154397457049903745721025254160984486085332853353411653860973700487660036521322534005645355058060309746133150142312372972238685581270488067352616988977521293275335446895942192363953376905255056792072296530504659999674491182196811239322218630882718875223516323953123775261819157315696464356291059826974489894769962664441309178360572073749863920174643714252699382018187948849460382339063600756374734147775160031684097916992754609245677144649568189204549092980000261279158411381407757150718830943693650668930849127384395421192105602509078039270899378444546905862843024619308885891462639834122916829859525199565751331114814996572457749442297317931165417194529443047661190328825725839494833928254567518285129694349195945168968966621602731253351916074872781745356096291172992572502651814208439677454999946428535250133456848193321434678814597582476131067622213291925564384309178704130888633040402615562610625459749567706820652119208638592140539149971163925785833357966624731344795862947566687339751556270160456512018411793957935582684281509325844422256834265615824192390261541178381012424090230975784386347468340087898562890083679985079654781371951608777035385283106586635124496280837635433779638394802940080424999196373037840524202342723966176317158347035718486075603807876287442050578391256959897955530117210905092424494931003910466306706175717018506524654274178873705363768366041208115919305009153594941872650454071338360018546007239926864154803171709064029478427508263342154458377522004842115878063940718636448071802816164793120094866317011411328928881277136492739804319906717766600443734536476002623322137805169210451929357323018171322320209684598834444733458638080803559682530588804663357069934475210389706386710072569936693128302441453330476654602522085845344209790952401329634732370546099278885954801115422283016126600166857769738314860984302862787132311964415495076443964050539580693896020119634720280916301429465077490626350450445162139068626655804460998884305206223416739191554567079631154997943123706803877744401197361805725752076966641247387364627981454700600319441193278205864223544159503405366033928911659758787510680072887471488238696361051839969056120395235329121616928812475604207475704628839765669750653471762670743783652632107089625787857957419854389907720807475012575917783389388981670240881185651431506732800287730699704765975887183809803070099018608341268863471603099457090182038693272864347929152823639091920906766588130607525264645600194679915107954154026438368888165765896477104399467268082643410340307423055085011388630720285738948146411854017984789181236205178113493043222067044650413932078330728431784296433435405684430019751505963494044535673976972532562520192404002745420800565629395250220102569476541978078348120964334685484638169787885597071813412838871234272179329274690249879546493382928772071898418550367809740949731396144343875985961775965699170486147097359770805006338171519963160844566265278892164228758595737143442044935374942272091837400449561409626437939519216895521358528011764164721793236953295917151928355578565254734457814718723583763550660274653792267647742301023003846508212482796148821792752753253533601845244461759702821703788057483731194982830271035949063949681289869834905800035084073411761673896642579214501734773998128254625090382858329218753460539962656448634114970635935471671125064450070399560966111630798165590095391275959368629743124828062736002810077275873451534588524812530204976339610062139310265168753927401832549284754887427800281117196692392496178718889980745950383372674152357394845717787459618327534412789189208158286669587425606360860519858483262106998399839671618202524987132893961575160782383408552514005328543570583522774187211865641017149593374161863019702480188128865999911873712624142534425037151367672062890010527239747219863693331691715556597610531497082447093883368850306396686805136168103507088743559238805256817801772725211499429713114412758608328703981167741359653282667528959630083510423110342114899002650220882765674015374363044745841728579094899839281339022745431573738719567049888653307699197321464417409349307017992035639723398864196297551658393673019463930539625434880523972213766600458314297067471930661501869585173998484320872935167218062776582218664658952741146547615409425681955415700801861773361730423956842776439013694863046826804803624209222768643505103025711569536556968504636809406408618290918325118650187857746303645262962038737036767845373038495943331230528946850097578665368691442225176796197054312956641373213167887117663819356540108675835561375954380885070450949396078488011887748375020373504976326573341336424977470872830271771067607302814283466545805766676243510148191220318539103951691685246398241300525923889260551378657722010316483992877234251084312185654880132773057649560569360536649775903670408774699153286247805854432266288660028604684225178531007622677291360016900105977686202954920683275358940611763099728300978807811177212381492478353426713376685458506243653793903753375248419317289670309355721724121794201867380782149055129519059976960323237476722798961012745552354788765311304145335026397338543583161998286284258539218513179206104175533604194921732066408545011936024629409877370599798964337369109566757113725345753445253918902023918425036617954442008945516277666883487031210683594914023380277720310453830908759198993704466702862806037407979310834355869038121530941767875914380765512097008285157864592750619259212112074800877854528545475687219375720077123137546844658497054952798680752547415810281337984868609369837236232276461471614492311868260869049508414401610239209234990645504262758229825709239099336099020254943680068408964226143319260922062556178856850054389212612826924774517825434137609336930751375625928220538426085066020781036295634204954103182090798481392361148519302284721207069505781730435016630460017200019733709124141884006718552662193370559902083729721720720429870017031468866067596966199441354071441097654979064241019789804207743069884135835766085016984527432738218811562510934975520854686794196712755794424906262584953045292089922033320494541008338024225303479466522226766872594178512204221500850423115999736568093426820272962058652317803423645810693163935090057233427922792878152074379054684785297912258440933049405096185626714837424010634384704675839550693613121900904846426911251182109700539030830050622397047698772151602426180389533763641990929271927330585129098097724955400727523756818432473599307932480622871277976498753318875616089736786569530041584969323463839363830769705320276473076422622009762385479892283599207873642258907444131951143557791086065245139222288215781048286746948584286844185546506565036929208143383546453969804022800582065573644785139929277002215489432619336286254944672326503245695676467630754679132866631678994875447324336572205424153762122030278244311560461014720665569685834002104309376643540728639817307926003140464602180885214320743273874758719241146979398569688397227647569485423067986789751442953152791367217973489448261089606826746216832954458953163219167056252492343744549286383327602030570098901002618754875813942257775760449822095619031772788594126019460142794585685328658540470371506735948844151137153149967342034668512378073481122252033142400318515240278100167676163827150165221090133710377480375817851557537708862709437809854382553720278121676854257899672455313544517307796718924769470718406391656073551216001532731798221747873941198437570954590099441205093729524969643818478105897432565825471598818081430618278947417589412519978876045623998189439122943771276002573156411981718245639116981893511345299548523434555762892864771319085424142267589541558967547183700672086120683060856952260736729470915117763409518421548875490802675970247519752579792121708048418651113946911450910150429973999951353932139648482156949230130653744311314377839830110202641008274964817497050048391534991272860711033235857579642444020136988341974123307377728146928556553972619026295921654528674310541484904868304597152331264421663686807761773722884031452047499886745848801499551113911457037708889029371173940831799804925296849233493085275301991804930169750660513708207540246110931065142821220339229586455062074488974725858323103411213704122414708480798975642554481960960789320184670480310919914943416263339367696916389096552867256264483833818637109770999484694628491475327548971704208910604924355667180689338970981857427908218709827782900107674405205130320411742298480510688137072208105109019436577320511957800017242570662258684278368054939545047005315152060840319603760572470164611176945150535051922702753310193153069369367362341376479192801768843797463326539277027373293964389655986003350577721269030875300224277872491823513176945744016501460449262282950268333983119728120389489278603028769069735965323768968246983434437947373013706706923693285640073686923005108742141300253917234479257473255306062031848063756835673923374203295729660980201534849073428232727687409000009617935625247842983887741135354007873223993673989770805245799146929605479786376803535586435771207986455838882141449507248492907279491057320776638375486972530455081787895180244096912673179873176870100369979785107144205318334138660919297187831196410500244467910278835459601336710783263813303547051947544820552377601645352449557474069309538717698316159066822469052597108147167121963445130488635441831390607838184657869710068027219316866445340963989538425719628103633867612906009674005527702507677970395560027920424842165988416540267579329689163068754830304412455788268725496960509241248800385465369483892816472337145628867134177914012845669469901527114597854866099952341884845175919293738936551981378988153314726239614850921005129596258959953559344305174496852735327080209055718174302976394221446099975397772316627777486954675952536474675205103359733344064906220959969688525054558751825818587560526598104557984739599192574242802997164137573296357007732019802668140335307114667724593527917392302924097985169900792295547308783902258625126655624012861511184535159074117829010426467718121514399224629121318924037083712437002100874644652260267866664989529751497832994938430010741674588069296341326916636955135087899622763635094507807034662612131403013367436205110132950284285380293427347491769907715422508986156335728449696231601550165610022163726652089665681300888472491542432426532996346045429962666090790663954936905274601531051203408188908887818305930232602288408378242902914232468573789041204780997177872859442551452894780223697454709071463404631865089081771543397676955947253802279665820499391144392418705433811291136906136751982391015783877704549613393584575015201838072694473021452747790775084844840298526067582855422801269076677049221664234305344285274840933417738129411722361479903957234265201647643980951366777014834369227354963323157728510184190491176732118184210641274336634395622150118070016573858002509960209072617078107809736449877031245293657628901428095132900616211250919583909509866670027785298377699834669921805056928181993523535515920970802231050536358774860488444088033866270129828782563089021660750069874860822911416061660018976280374058018964618192137074869320472299099759828421090402356499945781836934302184751031278665994567883800985661964011621128474047803608238916939311370100796700705657166836573606173092147099613918245862209512364476404352685363298103612215546624991391046956887642536535608298548282015826973551574816916914681828056635922246796076650800992235895337104520704775700639401250101347580038238104812346931993506447003001291651524578375198092769855700561199690371837494147881827701586523220818010664018900956766196158457572736502549801047321055944511145156649168527166586094069650708718174409552768949098821964540034092107015767170236593011887803160488832606871854593544662984246391359949762749381698817117471968797333058479987422713945834282066033423215059377409540031374493628760330243111001853818026290839302672185201095684315571634559921095220142275571074378430068742743907221205206323303819017391081641265189685011394656219346904760418348979597748357922635037934644596771547401604677597028282120002791483354452103158542335969481302505017453023077523489318863580105085486476642662388932889304478449072922716621676431098323202271052682309778562459377216473546013647484278400587174693279023631393112913571407810459201214084682109828150867436065026744520293112509912063526611019758551364227545892115950294001204510785015690785013448206258543984163019878772043075195090838070328869528372009632744972454029285184629224689689569268297025058616937953762939568502445848281311205450982989612761501981483448478407142242498029019997875941669688865463205665309535691246396165677796122070371439691424930620427418477436212951258922216487295177468166939126934457632045711099184628369243131965417525658720142045725547498644044324854896358439280268348735302917111426256419133611680157415095257966114756070426103659257607375004945574783857839021697914905362063832881929458813726170364276781016625873933652817394475650120214202917095651575969614615045490294302926602896358509281079377946834468507636273219044438206140755438708795708960870361545846649526796274960310042225800290469620256554946310748582997383721809738980503860143223054172280272188506667819761496274913561560019529960516546484550533331802492346637328298346494384145739541483970258506417733757105091801778306377509195331258967791295158674810667093582587589872683308672290567026392625962807166549491801288547530778884686356602345284812305635237577971129098234841127249294664498329883360086347351740295221127189838484193950392768204041743720278316883965131683878926109231295726331710424845091578003240530903014819093514694714794661702656988483662689888568558169950679386169836342722658758354841611771897805131671313522193336282800544408894989410201056111530026731515639630713186353423307013011852273563229554064058819584916004517315461400529690589359356715107094431538851026165326639360469559186299246983251953720632720751181732948919557961230337531346225071923657332346076559983612923818646954461613632582937719956948572985135255630674901251942083496144846319256806023200412116761676208518904232505229724671960264735082680178968764682765935646646009649066454455852408125400250030947999267893210540973398954151059419653936255688284482883249381777034191029629717914805861737626625934277797786377405556660924095720877790825044355551775353088557814984841245591717385160517637857742924683607290635891273421524255632430023227167535063560871649616091402468689712408177224505065292439188619852454712652407731904741670542375024172849846256355037284911974732022362037366787355322493917925342380112515845337521198249164950575023085041341155093152459115770408889186071492357026477066563940296994289300308989494542039756693489257225974166406398139369398573513615578155596933978434181456283903943446541935078561364509767046431757131405021986601621323953435767419592048225687476326203965547734941503664602685968800013813423602210300645448497801187034064586252975081714456579300023673331119164099231257266899558942070319288854756673488990481179736006483145962306084019365558075460667597032476492313084719916833449281227167081690400448789817904884995611141420749565571996552910361900953056496385349664537113204853882777529358504917627399445055022998776981746103125129001650791949197252741635112202773136253015652955200651196073879841085572745452226181984668584266765926528884314950498223294173427813111158212969816910992951702019588566117018016107739505870989989849623014948474408663133641197521070229741420164139964692098763949878060900611759666245837021713304656097616430979125412108367677910791567916559846655392150778456442791736675143196928048327248988422752679350619387572716151112296294196149290870021818069178363582489678815099111141263421293619041393494169615575670347477137956971801469099584864950678675661709695414115178168575014910451193175021307836390107199643952007108222898510986883174804908399343916344829929764608979277769872558585284401675666512730116364366515964692003617132157543050739133786331452273824908374657415875432739099351071623483707080789495930710862959634083688085307260539684161621334015208865920803593294064231652257677819454887405837492733032764111008855744346980532406922581149797605996605431259325082324085306330256029944733422748506040241944388802657937315828535719711842259861335781320491705119924395379509688458835507032173739330202822955972718778538042224559000963641207973027104381294186263028319318349181150981852624283856196868991348480501917296408837406247564542469247855181488009952213592273843390023868062091828104840398523322615042413019953275886304677287144030370567432859308516994013337867880754303077616126944415028640502314561956304813588085784923313985462885385866381253173153263959486075622076148339870693655107732009333562261455198305501385311502355338229805182553643683332834330309623698326231319383096040126067664830545209342057653329787572971592335032182447423444013697795117356645916111730719047775830268111882791052027231720779084039108415070079421174574215144688192356678948894601255455332161258141852666195437627202524261905015969564214026166268020118847191146268602382913182738232012897712986648030339903490189529237093964494765354837964910617670003307900093658089137164879111699811570361140957761756018775192212914121312684079566096995685460333975169709387310280078283773283545765114904229818837251077348662144265929467748839540750136248550152525426570074489994096586260820219086743840120775322608365158476296005263963287634155914816177013244877496112065066688106872218735215557045471766102838872836099801861928358325257933973499107458349254000846975103753582781390794246916108821044375365191706916736087326199990719954835989238638095364950209438530140585106500692388738454645927358859130450401700736417157459932521387552212791713636738834094034300573630053096986345996450473001413233222512088365781637935006839799666185289253405026953024879270343370925487727815380918672155396043476946520983341872400403117552425115385926135764515553368782911493552671287244316086827385001648776823142244607482972488157661187485016764570371884526516467863103418055715503225417988815656031743266679755158496553354482272305794058117647840226145249696070733179347814473535351056699913646012518133108344768066405380134415113890602615945339654298718157686077959119433777506202164969875986165570591104130072732098570233234402624676709978694588254781424498483651845104719613595992620723905566409226969558493076742893702272723310477262949304377889259563658818820910174623083902665119118829961977282449200992244495577258279732712701852588899085410046625177643728954434284756296586504978927586078457168447978821343189879193253505185143128964111051097002000650419873666646999777688729022877427667338562674942230907772696739546829926207865733269405730042179098435590179712839025773902154898831037218175328432326529534150009867855062899308056725195934410201390627479932058911614341530706428433360438008265149872719272681186973468587329514076815952068992532893350315441884128242961290158780717967984054132703627850481296108077722584991048940294879599328895707015933472671005308133364103264154722034090027712370145051800526404945067182594895589048138852958072605410685034784770405100799678965438454693606097683453446748449023455663588632051109386130881363783031231381163576805151099953768045998035935144280883943601277459878019882071984479488169869958425768696834428529698317645206443118237074057112493315198691444701072543643249472878202914575815862808113187303351760850337672237580937293929125226152005939577086976107024422534892303763438175972971147895419393101990716565665689412993779581498616599196852106489085544530010141630207429286625901703679037521763488769316928427609961055805091245213092934896761513754638661131905357762192207202103475531814211014407892809033512886873843390737190111665938375019628537860674229800835359878207380210315797740775127336821523465128159260582258137091049015420957807199847078065672396384502505869452928240960834585775197306208845294960108183623647285181574135151009515943766197122326635061548577953592445257147386451015853995163228492817577680620323490211893560434859545288937612888794936311665449134943164585463498344473796457592602107936082295092084880602410059345438216451428242204818812560110913776394340704482889507753074909513718688550348650210426784462317381527891810918868564380405052485944634413110475446379945402328161171117950552432853575259491144725186771964065040201598374295163154909440302786181424221014122296034392249223239434296328372404464630317424411763197430576775044012372747779098300971759901539885536815044369533659366521938008036453636356599207113898271504981674399022521177298897097131036343166385268886393738560843029430798680739234939712500980475275766818076692749771205469572904825006246094672518350858684323359046404854188247278986316793986423945491090620551253725121373539489393404301786755898864592104667150067101566230429942088988834912731223317695454699993207288460218330526183529165987373328300145779521035419484836419784685561265239370940967534538703499909319008248684975860500738294589480920449041006270644330540628226656978816439172404509789632320159251983833478751506430655997767870103507982964514522290838133060697863202839678159483441929137022623284415855873754348377581342222591647881618510755392685595355531386558081703457848400254884585988915274194342621746883457114023188801376578159741480510907160908710616608730281311643508287323588248130418368032649789089988489706089307524554326665632079882205150268441911589068946639191436690052462926779985862056322636913625869351006311070399497779986841640841376086029836847954312033940810790891572425046578612493193917543134813563250914603685026275957601670779747330329782473287083925210674457953595873861291797960105952166306440202086416578354885685796869410493493312021865604011040721710511211663636325058741676011373283448669466672173070883352094298813805840660718494607041740333262779349547063841465782245836182416867809811566211448166539583659439655941929602827415833026952028494836014387290989551841077670594123030572132785079450367498708617173481392331370931384919070309420895110617492311060481655006269349633014111377437494482283340581059912427815505175243374687348983762358789228795597831389169245157123427407931352100841495490605790657930289081131091031663653180385962022422707818180118357771241004376359986175759564410669519040816693923547796679996388721111068802919867308525096138843530932160977342200067389737880280706987436356234426587744619276857222870469163308664171471789236657684607252000517488403245151908679835525682570317879298941074524215589969896235018668511353062844737990836639455925708321839582464614062513044514018616821887233725443718926055854625545407569675064662391955156678339616382703702377816332560928818438927782432041739192712872165724622736215268996442171989625764118331895157324468203313730540480088214335040170138935182716024030320255583750317399140250312857354115401895192405766608672384907228086851241714729807244659659938487576891366256397907885976859875021998830190422657573676246473567262483759956348889064874469685829702626715125831426435864471067187083727346855434843280484854861567601947715287420479364783275767801696579556434093166635576507785784898217321737874720921024122472832602851035422511728084048472450230175306559760589135233132688068552313559738885151971007678380620323640024411508259151405682189369068639010393968124092327620767836605999905770876240529866222349382973669798099681244378693421783850738633060857820660642020447970791103717241219730409975341870183507095564966295753158643372286618666139861009313095242368153368950806544947260364828957417474835479004726973327632551556596705176178534297853160168633113883352756225335982218345505993748588096042844315399977682098168171901523295432353795467406402766919223055212720814553969777457667735884456597182526809484567073561804124650732607605527075935203048283927066809422324920137127812253105172392234288704309864250504419665762671929599196904699991190576384022647719487531093511082892549193501622487941240738343870986146004032185639328758538868065376484623077611422220722367438276627618279527933757367294165468736302836671638979064856774203553739151617496393107379489821938496998819968026713108967383992106087214989102307578866142862260610980333983011097742268390859509523942388564630648426143511663102215226780719665570907684153232337398031320535973482889348385013223244554190445466261977665634561602731832706419786155722961252756514852717303720130261291244626104802979035724861532749469793698292407027092025345740768428251773499143434595677819480198894120324931437481975804841873550777304950174657047751800608498779336439293349906645193860810237771488781591923522894629774192243887321663249247708261771352913945710511340394510753691444010334319650884217855275986967316866195044854863566210359638364806979406272978076628116699091738441419858600335757871349995955917640861442099960824212865705489949443162720392969863614290128636884887837093901727136041227864364887590832866008151105649670969770602487364827615571390456784866143857199036542852560308978791580220577987536996884711758519577528695187392128719828643202202012393341216938181047661334956657049187668002733731986772768368566031413881874344416340866815986873767695709581157133651443324048428550175863152939813382747272354736802598887338563262835724781532452292796761560257684643287714514914073526905990880893680385512331713090632234426311339523872054993451059633872294637465803819477459773403643966364767732494712455415787740245695196991750281563599799889960144893237503193350370165967609134686230282179999770158602751309155197241362558684319004186237365715686792795852785280296756133367063808992677990633438558953364304413262207939075580910996480278836905395518345619647506631768655661632665463674356546719595637280118036233771257335696874987460658805880745734860173378031889213628791452606779882251915176004941758699965658615806142682263589283136496482542388103782777388095997798302964697267174514039183210652736955646169115470475843037712695601154911807846244145151085531991539200298714334204135037102678860548297568174669320639297500131279564259871631966783638296948567511550957745459617915681672760849764071442132489479195078824051305822181633065008270445605813225227090920197387501914310449751031381405334068663768041540321474750832865777925345963810403082372030961164731922763907683330626624022412860874092736111921374095279433119857165532846601493640224376616207279928871972092118075936552552791159306050724813777242948227199860228589748795254238919912658724414449133987818054038967542833140849597122264656926254286471363325523273667397693777370147039496051069463576260997608087733415153584035147428042683992264757724487258648669182246495003260511582659474033533868582834317517521927413239549113760933555897458093716576836643034294144975369997855458453506978916708267831278317036733040382411814300380306970357081996798275174197609917417605368926383782309833264865110115703052319838365694890716389633150167028349565614833281570042599907418686986880818515550956973528749892965958489884392014837922573273725865263016250201970769215306395800331224847974168091014698366312029509716634663768833359247647622822342179012196877670870689255838082569027296717900795859870753076469693411760940942311815001937662952461722956188142694036957041702039106340169392517565225023366518549144539852653752593600414754780434119595182780764820374618050535178648683087516476514395343121618081308909835409917362239182022470057854000188794660978570842017509270105561818304061700620501086283632101960487605253041092406023341105533118031327694744716183241720492016047851836755377198420710110782003214774135563478314938431070743484070640566533380972223788476222688569342508701514055376252290028384553270496391633656001886763389051310506944668868044663011990351814621308086706243901057521605974033806419594459423864541395188436814744446997763937799184729250754264740448145109241192647478493459090293340426020296834408275724666557799350517162842151638588836647692145055492042235951140846853056231609112316949854222097197268319400480699878524327808903908389210619838427079639765363583515870771321553248750197729723011722363075753693660261680587346831168957749671602401333395941401395097230801604816417993997235440605239459946324204391719510417231999898413128779639144674734580227814894040135943580270341463105980905180860484351275427901271905518155394921767129887289409519940570988381604577150228842991226236937846836313270526157453334196827501532799280239343715092055820304064861598289695514324934766647283549473677806587451405128538753789054176936232462151281068275680908665235822189716165602530465373210620039006252566400054246137391980942922914090760773069820760021424377715917108938786747226004855390434087769705112643461284392120037076702376266328540495504970245167754088595876782301595464364630870330230679124330634301621792062263948373894769564494541533509663250659931758851421542099854654078485784933927660249566352533633209456117426409315257441962333295599898285520622806611208215472223071838585817954932149702939672481433235835233090388663151461487361752635587017605066635885576511764986698169471807901343037591264035552165534995978006548071923438330132930460728532878087325181170396812404417070429665033938996489905513010552275535949644386748959230447422285853005509904075507598955623459562762217482723542768953107304056077738387943520058460975150329655013989028505450031343005924141485579046684909755880844701370806111938631036983810548892088092579176950694862605267001993589104100434415599448032640760588251131987790126354841942323614988039522092991856450437154443120141417629086810043028783651443737132742955078349574938972362065632868783230135466963472890198586025477683090468022627425158412178230906772078762033916866819959022536161408129090132944562491204791875843645980012640411644820605675033192900509568029097768530811952953167948090978524916425908643461619741976875456928729282333085000363524926194529894580110180625158031838689617196015605388728820754374504595864718044562548879988114152908507274099101007415695626241645595201812533780708916706317638157646380832314673556788381886099814175620713785123941288189603543514116254885733483673472024015762434993246385258737638806305158791777826956596048986236602122351030489504821136637829168539797076491537404309727646180632576034400433979824418495839706332299345333364412956506718687916432643063731110554189310467088422596716878768670454461556925672563724936188413523132593582411328415227229863515465477136362986651527230712800853180924879678844679275693233437130882280204972985666859617472512794493518306277706864758248591653674188736684940828616614895294813924981761000404315372845284342376669804898912663948043680281600669601095211767359558599987013389889758529733293019005604146228459190169177845751804975171176365328141538463963012312520036948132963662162187890496707740901891102736310432385947634855875315948625198969733283575072107050097818141894248023583958457546664929663226341916615126431700344365104065093293438752957774344860594578874607221750702217048559402496684510103708980318617114415996049902589486836869882934448147735213409118384491405188478824637712589827100415067195324163399199639407829352289249786143566706334613957230399915592346600780482218582997669079554974509343624517196720543738759965558054827830919054997227328250549069028427213545763159567018838007589569657262616554536342459445347366270708980527676170386328637379503020943122429495146201609860762254918176737724300397197258288115454497259655972280202767421009134633285713289328423028804685659800541419325709886140832747953634013088225805799699400516564054226364454578574749737328755840401555250937277813999193559380674106819694833740850017909906100442339775628754107692971399414362492129946574016969119430722905459028208590452296616470906848763308342665870158959610418370840352185876097946261885638368394063045448252857029810911364389390160713113103631748705021977983160889236353349745305308987282763781352170600640006584521930876208805233849643874965556996669541794429512652086259318540500321999282098032415507963301455184773723251808587837515207022688896293352122948055582445530067604452470990353562500546957110509421383116433711182472951618934193195053248592344031694081036942692503048423132081653385990793021709914161090683667762338382617801844983416825859850772453871406510577002553022237432257633500887398823202653965465820233823687902234100138121116446417749381537408548334379674533134069220155089638794285490365126839096340304363386878927411284673402507406236213623123845025884977500750276967443696939791648021839826126202930390652179918476043704541359366832586373869927783095845082526179240388031954747961559344315463007308325361846958617993467167678599704348494226084420304103283987084543004883453673080886968586458009479473208629418599408256203242658460590780640562378438768211956353487032914615421747424512428127239891116909087005114467621094037858117810064621063963551520022492358031922616436198348603911145348799060415873015428799686051517522796144005895057953366349796082898027927634269561670927160872252868505942538869288854293106169127850943220114079761263458509250229698082290258755584000675372202054410469464983577133748250644411173288787558001071356194935991653785845684190116830621101378790100723058896769809611050373985095944319247496752633700178674525921814072610583208929659482252530076094664334203192083113295559349113544896777516852142223363094466026057860408907680648614706432031689318009349279888865626465404795038244764252719883255624587089486402841241233613843166930797156069242256926468051112372047097713600995135090784151642785889234467245189647645665439617809347176641093856108504890923201967510045697390236551320028259929941926740146998808358257158817921974800486466502936143267358383033555933748557624981165394371441714747297809520200369957049923441464689229774725527727335004849968613990652087735362965824936830153529120810975941084805651336831650702157977297155246807357672646746797449691865380418254836053703628554744914524882697300777585635318400334011769628034061799796677710040530057040572935183804203110869895312220474027967201872306177920351145471717898210615612028206606467962859309614286733335647070640561712220458377039701248267973433342845234490153516020315894461289257739610960358295120876376497224325580558701434339984778069270506973857417138752003358586015153340097205947911171308526738726160324726991443713099309576397615874532460838607941421339452049206857980936299988720605004936799169851259490603203328684879652239793893074917260702741207506475836789582477707038360378398735218041143307065337786975859753867876803827342429028706111358787776912317607440672935925988067208186765311506259256854686928953169937836674865374047016294338687713425987070875559752741569336652392390276769283396377484248689664561395059618648042856707470934690532938653268191774761691365145001456475043511441719542425504528927286441507714799031294437622141890369813470080760718241580945103528667568379750024618987559219135015439580244279237179158708376560493018797542087792020851623380010403261433198776770171665599123420578374551232639924819036083917198419770546707598746576296106479120931089630314215696594278496084179642291033252587339960314406355258668148411104108371405463607559286721971180771465605382712608282381945683533862444645829539323129143429415633928820661062611059916846534245327089939125128828317440683812977177811777597414187045490511898917821961476410066352080317036094637658431987320427879285436874399589277269043775563602384077495226546199980879582112389940967094393328387839859346934547472643608866493475866352784316278178554374614927177867585982443167550107513372799543999856387687898905591701525398838364379931338807644269233639926394723801457943032355323857163234578223173605019799522300026443788204272114041258988185985901125307417211289827851013519587916615335528965109979183774707341603198529570368066629383797837887943925832744914680416545422387066873856101513030783411333711736382840580842142186433455872930031325738452248980629586474807739637191033427238593065498065539177343130621220059632739259824305601628710282328544969378687960088682115708883293277488207760845658388196612683320560642592294938164017815929596784778811804617723424995814545282457476790582478864318723177811892810135749824251447635558846853046281609210222733553146365530581506564397088065174098920159759346902595932220044270338543365766944541364396296805178890306961196248615471552869060732492461169118152591783687327264168548678087824154901330418125150174660931749541049266092275782362123198810931537239788572957460694678564973955448534396308959386462272046196945568102982504797184625409155107032608271405972159939792718807607630239578623276727397157661014409493581026854329093256036756654083044383577144187601342186581575914019191864096533012013379926165241829558390816091933454567632182114556285570609643774638498205833873882862951812488539144661788172493258679467668472993935484311075944229664366786363832166481306752630204993957092704699470459902877451181402574296566441455713017418117483692163779389793615019151657514045128772401315765938630864983278513902309164119613505928048329420476362422001978207718651877707519381928002677491754856658689850852477109038843918077635108179417068119152990462235102348573245526594554420282560309195193017735512741730106850015653762137256804014741096480921612444697645852775075517067279550628598463434379745821467580326786650562861158417433294182879935707449074414446540516522809676826988102912729354056408079757517634945484883458222794402437995771073588529108277787347263945219860057693986424112261107636386986201024372551184870856558442801384711895315589649733984395979412777976517072267171693723431158309565964451423367987038292180202241224767426639492673340108894996703748436247503195896597375296602896606309757189975879043682925367912511804351556817534000438722492811624057975279816797050437716349118125611430299344769349127512638202286186257865944954312973768362906603160304196480988481049873065096057576330066379372912450733996430549832753149767942471053120665221262661987497775187223255209947330494208420914639178563544533397084180020420472474537304257704356326848808219518237010807398760408640129584056761235928195483908851208545544762636130845603227344892711346696829748841833279164306492240104675959041043749885644673042502095621993470247191331472983902716288847262921924966045629420588160968400353332223283327657175321555764631447990339210440634795323992414065242761963014805214247863689969917287068093264561296616212501798405662095559978028327611911462472965271889353953294023014714293882835241010030074524050425907227096409798780915100422737568480528845751766587734813705637354126275034650427052365959494103686259203410538109665975604729716317975574337873469637004110440685848328589269946380374459161363373192311727260340364538474495835484651331290543720285742961479439243824869790750304816047300291714596202044816966567758996665659677441352883369953330664462943252407686272873290026679980958514463829700211087262997401332931390420028430693747816264186122021266890419777844014792371919347765555507793113380127346951610676054323733883694645483836354774026410535413349032849422318414511840762300698043568301724652673505049852398841342407473500971341154217511471400440862439343140512137855177358614287094906728106681167615299812834122517980887128204472982613358392977720874127795678785393624981007926554338754970265562683487217285127147954710378492022288984875956396282148082849260782169730174821266839076542651929466582344061565515572555924492695950523992914067401619516399327422853975142247347767623720689033960890842155898221638088421744785478813856174440161343353666815639726731519489731580532451792912080132278395329305996078209529406730383157799858522675031894412229328813595580619901130120676013157828528234679397944284951254357476237743943030942830858167301530298398976561352791335080269212720271960050132321139466700344365504894332675185168479039180867058743766582767692810178755002366153734066151973969987306302102870016649765809481478424367362743032728460938995684256626069076262779732221540193962240316103991309388832304688921645809579153546419071957734822427099864053837796610555527426096213761286741575607168522768538348564857053569024622471947069363945461149808489049133519345362585387540715352352529591598901906977773278566960886774649073737736559428178373091008946384274517040808343621682709065301992999482035447011119460448132265848687568414159703987670944797959597458990275988025107446582863718666482539741776566400764575521313047133618756575966388132160206673891511693461362851055035404215515758481809179619849389955072566139292852956382280562828360501063974659001201831355939271617803067938511877621634380772756275085283005068760943057456341193864389798627484036903346771249122615726566475489827290530932546807231061994180444681887068233277361649361257218986151453395018338000868432609803674252893807959799777386253219291391265637909011164348802842043076375551945299610176584256911107244882903000258456726722233402476122471654011240310386437840573869409494129903814344951054378973468320093954493255919601318921477876923510338050506862726604433804041197966815105681535929803296858969511653209439318561374631589188751102428335637122732145401323744145508090648132014305901599659730558509251820790266016951401794511622837234328094611631829809318034039886146521761530097304211446701854875421592822742916694107208936544605821773649108905869677820801013950730925691925691487614758907150888087824244921307613980757443584272663240702445399166042857868762646215785498392746152128706316755570962102840432990709447658147822937441797310841182926687325321089081937638687415059767712200098761960576498850408166484492925102634911344061412262907477145625462493732418070608537367620553224697668597127177415064436653109522223473797792538628700778962275985434519370018314635262913839444454352509974139544586681498746130412389787510361164399896752395432406955438012556272391335335910043004164544675829499136420787461376909514529368096662370187854853889542086215171479342947136121125069472629017146974562346708585935896774829403812055271586620324248225070410504190350242591291993254894438851929849878186456776694776395384337405311908356782225254244781902443521570238283346454789570429386004740515938339645432594133570892133382256016682023074702163720986180745334693738025725805900483262033030954583524363995483186852666700534382898254711720217508027354243544656809762816300205390736248471261478452828941433750778207688449401266736105493503471686683212536705155717884244840384150828655987270273422825763807436063675111913583455070287087703011164712240673397130082589776991549208288870923477953466244977045806730228947425447960646697926993993988029308409040381906881201219482206092666352769535910062599412011070332597889705730076964076276116948288864945597940205904593483306282607964991443265453720364070982546535273601652523945908633358811725362275672995022300575099366975147975880863213581125863271849814253508007905419824093593650654429140325992848339579173439406479816299587911395504270857496526237290952068078522016333684107023317608585601255910251116106010554122620069310772489292368719948570425165402315768648961898526103296111341924302687325185704298662463439729954316830105674494808075019607386672216334947456826682209808632254944539733988701412082216104178018331446127365869037278576929899155183959130757167070605473620158417449940817678430113654988690058888266191653261780057031359525912839273077696605438304374890881983030358803377459328044477997802065462124761981921264085018617132200941731291760467670489474037171749585638480384845717493751851357005833978717138585155379461424104660619148048744846609074669932794334231875262893411662090553035850105763698786845271321414983940705568333248288523188034694658914080882233237274818531059158746477787781413300550776955005152880738348930861338583529695275190871792495671100385992251669373228791785794240017191010005284112349178101095100702327312082238587526659856101802512020695045031231544807246154162610610582319708754386159130946238393960132724224572361101506269265327327606890385921990499874953441045817965496818913577635171773607729106779174669791059555680593452625350048278614169426586744184464591864862113558467158545712076532575835768407516547747890459989502466461092009028342250920971269163815285888927993834861481868257825502428644842114682962673437772263695609821198228089211993064820251931061344349607185708458732531867888645295044504834592220653393950218564437735673329058544585762344739093459063596968203510168001380642287559332245129976133611291471254029570329875356062191708056598568302047804766056304019639510350915720317084473470035747820854261589005887143355278449098119132969398113988734035352702405601547551424222886405160384430439947940338815896358977091565215791694898172990194569183686367474803919826609023550780671965926587622099005562790200184354210619316285664663649595068620338880080718107594198788634125490581633472799195833494826641967491267404883701165913317568201149234072623485309302830684109359254339469715205133819369019969243085189221412269345916927235983829934891330934474789113389069109993278074984524593216683440989581129853807331504474126319274860109919033983367969238261060077301926884299075286967516359899634139333091067855994442577404902074444730820247809443339722083937862545218970622304104398364706154379426605288410936252092529253159890302566789369253724120719751102191665807669170234469990143253005933722783389870415254222914228701534381381893780392120942970183020769260189891192314269647391674443648631454778553024727506215598241777577075702761038069563086303515309317914783430144374209453818391760146397557202285233834821004319399971947978479003375090433415135048275831782447347864339882482338924891146875718038689295461350769318927308579945953289010843223360132666124955381723361213710299864565765461709982222819587811760849089477299400208761801857664763670202957081072296395810188224758031969340934371098157907227525124822620086634772033921564821591813239162309160153972599929038876816811035128048355833929245453369365393672628162503230258446934158830842602065277325038689221353367535327531470409138307385467919010815321991384398979016356347303164547649362430846605930462190942836573932557910003280301575336208744363555514521650897154014084246960405248676986064481534567680462294396653308994844492111014455923406628144154654613155790304626981453012207423906973974479685555598841694206600418451208472761205705529460024817990556468328319090962249975783948585040035060416708841555826547708393086424327644299493801271441592240428026558807035614443286480898037928181179290960615475823740352477360911444366513436008968793826982328380089585816083850889221684491458374458035606072532702034975062618476857220484030986420014368522145495376534632650176156958301301847844530604872971166858825063574752227756815415080622641338357572332822491621477714140018966695807734803868080197121946066165034498335622456662625352941187537693339065602556743883763790989943378511311636491610762621862346659305920043881438751786140766466155458374636005487827614456985546409625268975435733165504245227799471877135433260708357958529791432177636007572370385481713926967577605905985503831101872767300360777353879677473055692799675123267778839257184115726563493964221541397378737083642559775562433537634172386916502921786969787531194598462250155231883822018496163311567105692263981185800282705697365179691801847750285831733839284388608916124149203009572553404412792875906377024121844670157989463980439248766447472198388029536830992044167104788287631793617336955529724782028930287150466218475369773073756085477032879965220669199851838067314942713899460004577982255566664379296892262007529405568686668993296056291451385448591737032093233929427991020180684487910139897267586446200347613891402099077288452931545378448661756830543575949693054237112576463244154055240782519073974845991003358798006409234717387653811860180710756439246932156582973370689349138799392988629598376842216055861380791405061150642372070692172191489412066375133765342969189660774672782200662126199918819002324239350731675509853913855999167716013813487505706152821711530668363041830203728231858428631971478998973719907464451658923289413789139539371691117070828820606714579383206645275602530701942754633482614685182741662075027873840753277493946291875082528009656546740831724718256965466512444616166867201019548148455364779389895018115056699727905829680160098646372713808836782837668590639707092780047394626412828495818150616237850495499742598505416032789367961558601511461354516072982657007804565687357367409298135673532663107399815447299129553748432442449634495993386402753982380645481320570750926612465363038691062463760479209141620847193516507718777675930097832998106460433109609134975506862632440403858105026340550001643268685418048777525871629944723637447211944090786211003527234664024232560613134216638378358168673578623457236205895015065142071908206846673397042749442418108990874957788151067554667327465337870350772346988863418417510708404514474674777571338803654350487860096907828326689974318766913707277490033043932830784236220785402951117020499358256939412602375537868931238006211044497274603618397368439483889558082876794300743859858076706354711307903896591645549793843954293223744394972606162057816795070149398768425905944087596780209475375200716697472749438782819458367615462028578459373897302260122998145108193275660254576471770381309317779883165303130360983493900121543618702318544968339157060957530628551869400976104717055798651227909072823415151357044378096153686517775541375906472275472644804247283565235312003183746199620199939670155157907120813355430236344217422163692644773968828678280263336369203136824863200249564468458993690121592245908626381491659919256449345538517408738038672560443255575147186319998331071853366783974970157017932592923992792253697107954777285855143543505364423257648891861801833366630169803835054571364202910400721959536907374313205355112487447451143679055841728674227114326856097614344183307318987994755034777184065596554380829217712992630652316413396268799493177940697885546185605592346172335977598055015042118802920429732490102150215376958784692700244262258422831768728144942679932297999670413339927254934167383631541584452947646671817206297188169326268446039967973479178008853389300617633273655311147698121015538007322472476370792276237040879514334829942102452298579623511099791771130684623806325563236109473188795638880399937116319211968481563301248433745724622699693102278213781105201710668102479135608687515456330847125494846602232672833985160380191973546992868217653838208481650367963406767562439083436636167159068720290938930989753538615972738616089857436535443354949683447308837301098057344664178614483065721366109758222394434005456257295349673448680559868270576298190854182565198182230675499277964954528326899998200001336682986560438462946989150683658154431844920640865706402874478667962770518186348977450548468828311378579166180779461492205464371049155191531968118924091668924303577761135949975450902630242231314875803651881514492627653411252422863116165291142480461779343880766749729421003742249871445889036284187197714054583454123075075650126452498863485362720846215531267021033860824902861034126231872818600559159385610842735571690575530032626861130671890867243873652441950849239329380160392477202812132615980266288429320786533292304376181667348435883915453343213915318935077783175226220672675048486864627266364276124310820943130698720594712847825347269672513953836062144702266295143342519589537045435230158293191788842797582379331576830066828524434609848323355372047060811327538638497026473073452809533806579425009416216254703115435724437889067998148265335860263907643005290769768960790962243389654679061516147700163396754590037159097757121973012758396966346894449168977828822464547631373443462840566312806009768198377981282041952094334684441935921014542827063424484924516540562689985982940237423585966086358921543636992197803749116356208434042150343810746798972683505130363778294264028682859838588716938230346891628820235266550402483221225005209266696738741921726507845021800340099620016630250184430383821424577284537264553630921954647359494957466663043655189180813555591303079263618594697356896894462663532110459678537934108914898027887153949618212757132738335508409873550277313702108324034011876276864434204446499496232747401320170797688159479132223400587674347921103264447270010349583148884951256785279466940454505805429677084244239155087676548836866653309802707948161380065850440858085451337654019254905207368676319789584422171636575815996688242292009840411331474902868910730890835649731481913966693114125545398390919379799622880173563401817764418006777001824883455850800363242106652679786674958649438753318925738773629688574211944205927114138379445198161927370685279217212096094150652440920767662579685960081269161178470713173496167656134458073628088997622577168561511895272344630602081058974147426759459064562044740720078045920771040404545187656917430994327503560054061463157634804236303161450393706919288077560170540597471033220058402071736432851593796650861188908219298508067377147209765042877234389595575020885338611243824336443140720161469693172905278527696300763716971180792283725487643360719751128702927029145546711859782568524254487696715926594348040048681192521617008341540165737598957283127905662134070754238300920500543685079148622456046974230235944092077347952317880760727895620776907809863096518152403828237444768396350839651557290638985889676220397199484058918240654340157729845053206448110308363905755471951311206547424386301285807594954754503255425830997137631338475625880170985528271610919432345340527733622096068600884454150989523737071622528504750965856685367802896022757236849498705864930870545210685006457760304978221564170504127418865277955662214809006674993993083093255222834116930940668420414070651924721268714748998584947454054237026368912836430772485000247562903476160260502150801241449215269965191816281474880004103248060902152182445833355185905570537839807191220673930632027207750550210777861396179645550267788266660256501050129676739432462789227851724353215662003660828713317196630402890109700001913375214473752455042335955602536927628418616427574874782571411601294166994864078376401152862102073059105545574047374237963271638500912871091094899145112426453956879840305968031396880919699992646890275411228159597333447200351467721748992398478696468782614522625907529186399598200188962023314640987437890188989007625966043331574712761728684634108422612844381531146193195054110005543983204628997962406463751804927467733113311872041664419722157523515184434631167087175520070819070145557078158806452492661903413672052748620928432636176231941929791659460810378946682226796035504300609438127720368455871811600011128969005940087188393850655898549365224301865028125236095722945502227480734767082862815360814374918266741393492503966220252094240963430219429877312980596657946707252942173685703097007353800293769414896167410394514340067444211483060624142419762392432399638921763790476932101005184889357206451301268004264146489347703285008268070002568255389934581317344554310686649062535213681029097911359793294950833726206202255698779829698474578547876551591796291651479812763763859933766560135609676004981600307855748173491645258578331106791297544022252224161587048257517438200401505054049943461250030911995326091515360423273668288072579793520773199548439103474272372132888601791638712997792437799638480219912693478469313608545394017647868871296653181599356640795286076113713474326727093526528109937777998193936784130477090558851892472941146971469447482031378173490714056126763459384885484287541867559537875688448244179343995880410727876376479432292041562482661320246085053493963038081606113349101748489594787038017644203279996966852208864870196493972489082111679371165226820883482521332493768471752903664864883918013614583191246074567745599599595220220971746168732283663507164926892824005488854683779514719623945077122976595973290628132554477315103582526592260566328230039922664064806075438281287691800554925844348273158710907024096314919359497897803597740294028668748571813388054580805886392043071264574302738214869260085665466202843267613107537427146764978636970369099768834624770036270475244957639387358891349188049658732151468178172366536897349032980787677660693187648272771262045068605927803449853945496337820235227896826471049760079418557779357968176437598595025073011258470360072636583605150903933833337885984102973828237101358797013561350424283574336731287193104973247339851608918523536066539646214900166799808085187473071503521975527199079682660504986800656685204375488564041286215634207335055382061293203095170928068442172374351845313364743634798594764392997961908747375078449599193253403161719491009606789690791046106749213282265265474821462388207602510389166944721407014493369236453410899259134627442236394192263400367324232854096990280312331669214366644032305363999384281802268005014194242547907094521214691947708361677939561717860599922756312424244353187211872334401755810655359754504182157684973022038176262685096360336504369093278790938749871282035479021510094755436287728997423399060800805564865623136797152873538108596925767246708236120500191489128878531498696789581358571711935238214926133942425023219404492191324776505294327964616592816801979237130054799047593519262582796601254774737617575658568682626250088342695488201172573396903107064001100047301306293439572062897815673271809499107701180645737492444820386336929587231282114895118338658377959195110055882787408562437800583524511490996537106100905348395412881157163125797036425700000159701436152651522345471756146002808574451422590444500449368921957926177938724126412230610190663475611945358292930299731521344364452629809094009477858168816166740741772938396712361352006049180757663383844966353036584426697084490850765048856210066043991939254993094507390293669356440669236161346679324801431117378411634831906506574432219561183393247638759691907352880950216716518343795116366943567720157815028685058945563943077337788956148576674667779010879498316489561527668152721321448475720859916316592095284613478312838739624107257296818601283417178227356258445805666652033396900932224732372406618360616333055188127594823087814559813437528905166534364763134537177554601456005789855815053518612126280281335542230770257740315245702358759034072347316788668849320388225990988531869351546967861772217007287369889293531790970042283898349289121639223514586356698995284341531802770306229545772903646685935423954079997465719362959648894578756059688924777068750390816280316196253753655394109639110257737583968447283637782394719159395995597557316849059849747857965929976541726373720805873482745728489730270146655091615642433538531701759517849230158193573863346690478707726272823564205422051857329412919836170207938671019845970136878841201402679030900619598013815321135751618818105525885689387199573181032862322494040122916163115677757160035032302663192159717767909808554875921827352151482031998380693732850768225019170085028841475727879366320913254663620809552545614677649502402943983053968778053595134132263623763361435583957257814520078360863596164260703712179210110595287359580996194360297485066063247074040456470248775544675708745828356709836628714278553783350154319573886021146738189798440777051693146296133898856354179942771500108124202628100741370163822769600654905718670465547419893745596265099548343504157875369619281764446431738547119689786468582622707803442685826159646337645973692720453497439975831952015038997891676372436761421892371984566136229714326958203705809751430328786986877534287658189267235971320768336783743835531195303160955182844899963098005254752006343409949427957156725079690386913812319933317995931504268110381375889317545394350459693530898519219748454384064009750860038320389467689240811061980385644355660014535094157771323321205341175441645303367659666789317962391753359037640905273348514316017473282566413992792560308698768095406663445650630809167839008186054353205727871169167009940284547685509736611974306063461167051471918856231041860865289607287999904356644068811382478252102751318473581037183615348909039924846135728370580788571907926599877005819301156403251229835726601981402439928818817359883349617578033102844107659809435451129812097257010563076331884896038185387973766609074887484172324495123933726078774558902690866514686355626162296976899708505982384699448116406810394434943771839297595791658035348620927345034860805364644734439766434066461831340939587802499044020767747034752581564535192337046971104251627807142251043964263317106453663032697907640381738123105542134568532710221908622552974220434850102527725024353579393517869629517518140167519005459304964625179130217351648147961348551534160365933975382304817332409801277399105584806774497801114195402148937442043626003698414100985922718872042677403713127216902210278598197354775337703663977316941021635515690157066304048027431109592715027550501222952948630024181602048009465871682161868757443008999410032501093783359596743932270191508493091154156511414407085096199550675739258502894935695245920789002766355061928197517471137458593744126103393733442297894921185076642377447979637477459139556126262317623530832293372518064372454129389636642561422337104463672399070779407744380989337962473311260723175588455944578704151828966559026011156867188919595592081861588259095709223645924504379096309068535438324358467231736311589811495280924938092906874492649819761813874357262611743837555570478540829664928184966123880962915469094278888343486706358619436961590135117043628143052651780607008108346028271618041101646225377782959864733843619720434424937002922627649721344049323805547466461216796200224111557031055425405395965289174352504555409248217197417640226425478523597080382998066484727845658851789858410912522032339948273036382316048309019475219881857502520853792266420466308642017764675120550359644958078627957677728653518361423184656439605395254953477370308707912276610534100382585894303962974165015892004867260418113737221695846991926684555958707335473407950375678903096845501812238839212831632179566816503061672234738462729967085125027614731262662250414780481748338638543600823798190668915732749935704091947239612147301345288978379096587527607956009213738915891316829177782316286316459447953768892651832121526319979599858707826891292807364944915105494014727042182708887485030545183788169443516031242608078008860472013653428377188697546542409367460157917171292076292035522842935922682049221862926922641998162007251380569427197618397539175376442719819574929721178954779416415441812509879639381785432540160484992162015277397220038522018498975013509899552537608495805104563763165690613496404770140646757705412506146289656893800832209346219934049684910072997602340042624819758509732551231872437854985229159895971318968083932706452996783842562274209622476062532500349422458819337318343959457357316791003178250440043774989088411928254710684759839950738641572616203200753258442675114954594857462254733924708945590712748418545399597842569751738040793264181647848985116822462937143396672801407852574697148438732028243358756638095810685657939927343339447314510531292422459852239502229332905984013463767645008215124415649010227399641174504186576883029562715986503605503234111520656358320794052531527893408665149668120571466726320018330764899909085253862234626936883247798937021974243507544097666405725628704879605341173384033663691514421471599506119047016744290258877169353551963044323053413023253134399976598240216387905405678178852270771716174019884539892235932860338351390887921930788800751210831992538054048474356692839280496443029203112642736572750261617392050992721101750226396861573342144929377017931993166707882189973078971472052645509980321034764060092183906970082166186502683651189064086378181644329341465085662573343570876523248094456198601453997702521977409873403580560385992649291913198778185937837888927883218641214958308578959721798583723994900365812902511528384894951801471003554680507695842253625414154141884145857620976228534689241719752937237602333393903418937405733871031207698581119594488488853439524138062608974639603499471921954963396463063452296866099630585522391107061252749371457757268103527667246615406515288303383353552579649239873010846527783951119159324027307750940358265617622453924589186447820678805909566571470110191859726624320788025434588981369318646856286889686803872595604207156172667370650067945213593979077056349702177413915814839296144441542601013347854722949779966645009491156079852597093233489736516265666052815610377599879092326532697627387958703687097130511511061161701662129570765157228955683373040402781277391973910762465602136908748973030539745210656669484848165838631676540356160487431307203600809916425211298776322528180838981069463545282794073592113042334582642892037016387333021989838367196724385256464759990190891327004596097771921786647042702824858884300373659618444205790952449278390058259056359662624005337332857777481078738758643664047593862365524920834221759745093177263927158360399459973459216452073490803835298581796849822023859358954736784987227066108042334257861618033519783497995430493597999730918077598580724092040052502602831501523936970991995222048097860301363445828939224365460135913099585240974315128660087800025865603862047332673706960327982846030962837187583783970256250637527813637615826074078620758534455845050851164574910906026998967747852567406157745341412105519606598148592814171312206888236073385630228194555336968803922997015387845298843873356172424001918217404150558724062067082631430133532871920202917055145518435708395230410121818958973793155147074776202714476179167181673005649313730817768969445315040753254893448327568814702847242208024956773880375878025324833013707741016119460206452601306471972496585427122908462621844625734643374267627509470276316156872513949263932313315078595837583245809191996775739311141975719705672662932011506422099221914314980277247934934482868265927111535493253735507247692574756407096292152114360780403767193867080941900760320400061507550709526260267609982875810050621180146915523531818467443430993874058315018211516006406074148184097981291088197767650178298837231994673325707421441218816457961749094838475690342775784532643958539062056166214172735597850460452173256845717358761517129155218234092824071063823096766308238514676178711688295280581527033518124366580856091982468288074968807333738196102991678597806288546560130616222825822515445655320972909738982032440478085952354828673217575379855878492683096847154828298669817081891844217234691297933334682176546941939129603080492992363399300428584135489069414470929244796136202956762259437310864297178716843891251286464457801444623780137742553157267663831596495279490717126500822017453647245559668433362299156524539609966024224311580439699629043698060702738166227938214798907498817088969322791310170221925315759551328147453119675324859278929571490689798131465334956122364473655988237868311672065402792026058668066741136737219022089389286230089534363012217336149533797828125265776388382788057798179336077943910518555195997154910643320433742594522690794760402327635776102039344817726166498525799274017714919709663148260983736709864341991301702831601601886102804630233417425880076333922954971484308970203456959595703287340177245770297407846929233437966394160427030646347211428051241962420296174109916602866242242451770571329015571734692349327405622647017417082538824480669720372994050545609515231984175480515820941795684497546977249041206084693615556312695918158050456418625727092246019568971975349861043648490386960014753605667048993767118841296697679032965086808533861213417231472584141311896310516655263344526501329327757663983324518053361111456070831627268576893653848066279206730266420737280126431071894435371836454753277543107299448566130224238665812625422551675590735622046451178300298364291641537403650589831858388956791299378695617034337584714595949901358942757336590478634766498122177903316229762539175422465240080693906898534618439309294526506614947956501590189676011048149405754727456085716126088460320803899286808627980432954572756411752138502668404922319414384220353979783642393966795043835471646493554852135241689162141038656771837278942231821314953529760836712095180032483302856725872631906661375820071844205101610026895945621934109565195731826208595478038891580824752807610957290226363372672737208219319586447142051700743550199997647390138307233098344871977913813989703097927229564416729960299399735056262894189016882723421732293434302968334109606750663724676722795857166469538026970017940662531714573037567804135674735215681286226668903834710618425494596684566279739498017186856167390504604093335479886785076791344264889858532821334118192006130537031069290949042844062730553955489825980053869789997187336633949088018269257768926464126692031758655742627851708045325860338220719687141547296019957225875056254288711868545403522545131596087682470375041690752211683015779362926240333635092925042244722352366766861714010364884033695011287426411390097935273867044161779338153944018472458858245017886336652417934925335580823963223727136447755979197369171885399932809047345806659573514170538239963494784510859050784290329082024969680965777763090426068277011665069065010290963952690098652295395947145792743112663522826927471094373352579622694020652302971178748275727778638438782214970274613160504503342609304410727728557672300497922060842778310867335454357774779038833160675743751519442492328989260791369618321441743899193823854998007897977838412693951155104807917866875455751729757056656462837576156617418794309622670730963351779378778865724382840210818877688197237446435575780299114985063398594407614685960704062169501547534295806886183885676875319680460494554413093863489603391095867350919594905110007672421493217815199069093253209053731298832632971971669454299349696410268801603808234243861812977828806354808346874485217490215135455484608177774274118830985027402132915176314849813226597098602338704272190175816851481390474204612402402803786930073972155636202830223654839824444541258204397040059052129366690700824625699344408092382219895844187259061223689353611992692224822436548155061497711263991926215600131204824819401297385690199808818032530186430808439617122001030887561833330387581465562551664949264642976168147305008413368895719992411131068828355110924684357142237919573145505166099778817555488435436807615194221930847592151332022863545294271499773297263676721838415436016134579461098217116936360433606199856171939027611729196363252739592805440751108268190883355127393268484419085933734156762087383421190244222753628230611681834640111933420443462872196471126094154396651093335896199766739996271995871436598531656621133350602052969703507545447641543028517422977354895676841842327215377356834654795980314654632721668059077835061902420148954253932717546593196112444576245496121352190318679392083989525519888151545494334355221518764306687541505243404053239218997133819289871553575861034557469108308287957651261997193144251822864326226568082800542875186415512081510638621687641953771817633695629605743625729174948627827836140292123873670081213531133537556196732264109373930402325757066686009039510848049270524206875140030762885716001554236531793267851251632416155200129016899447850118896514133971218752270219804574863989184541091336140060471295443721897452364806739082112573542806842447412454529517962061842525442184846326572623451475281715532116621238819148213396589040968702624331072351287220749822527402582240364302644518163990319720313283918669735044255813740233949567844020495668091287713328322230315845424262910267595367147423900862792503608946858234281914114645662877158467419289992654897542142915052563480325144489009583486266444701160987744644135881982826450822858295195001184262335965173330766643521624463793397226039140938337295690360164647332635876545077037829001758378542528599377051560906682174443779217667840216064382612416058714262725660794133037287583860013126419756529941266756177294002283614030758321097250732165440523884568141591965749584389857016801808251081541939070952029061213022900904490600668720622460677802094269934205393845551176018187734855231627129537315191590148857377272174067790032789001377530565530250623658269577568602488279723262643109360516784755443843596550785064336361415837518054048056459695055979461277293806384898344351071157725306563222359977795271077952795480792243401840196041029205370822335975498628228195531644871907703678840106385609127452436047962835290360897028238564075240986193581662363561605154671019900982387688989970785202163000530793034644055136265901914692765291540014865912017237681489889866641082269268384010925378510864869049387174769636660501125237652250991173154933591421911514220444001205809002402116269982881486702361237168019099766184567861483073420498020007150742547686454354373721164994612389846272669455673632785812806606124456903644723897600189423415774790835212071704181344667220912616731567992162101807487376950964531343373813232729212972262481554862654284792850941657962570066928148301413651642797605138011396725916132551414781249061363003183604172912730856110486776975112101952211638277814698363061548595621315402222578485839546830997106201166763329750016374906100309755630710623177515638943202469323178749593659003958304228844213781312242806496496129788293357417100135932642939622870384014100475453427159742089563166267295513895056243931638890268825643347063148980190869877661173005371004680230854466156802644694591942847493679642650056564368036289239852120065687697114936406383873704510414157371823806512822893500565937836258791905301363943743060904051428667599000208149201729779366856583708088462455113568586606468019426160848572549168999602758352607107467551931505114925736544268497914603447756116329803365753060973191724279084584347434324685489601068367532724083420834392234153465343792084039471682060973993231754933333620214416773774286753665841440674263265069654166569453172281635769665267876705961425762910714351020075128061613623143596979718084249086972826514145292435182905961580974235886571946467627255804719190274606505662021877229145421763019068732537133844341767107277039371925246619668608025827578285868618896659965237097988056164370673831987763202807490016603608359811889370725637701490172081808940680133163512769672817360766250234517381571895610561236938901223008545114421180152339200589481066610378563408122232068521233654177464061191453181511124030176824934993176771916526814692711585373931059084895925006521083645887654575025390199168033381910261965713531826239877434449305536759011446932737973353469502304978127653967436336518511143073648841800543040554590393821626167422223166722140606289795927973275197769874731930540440798915448106439907215601031202593579473124709508877800702338165678761592100808223977857155703153383806698475699311649022854772623717109922762834219438018111476115801658870496000169873789735413056214099709240533721142650320033217712411202578042260897678851177739265475171377101853106273134617478245925672538981071395748832750707540752708860206790125683371466141601366597290043520293964353622807385038118963654263261285348156859145035032757065339932136328716964972014313402283321067597982758167907173155032524232659372280565552423423530239573232969617489092944458481883762549060375824952341768046370505354367321890897116417724411849213490910819615853662952857957842256125432227583797391787990336967838909739819734851449701862588908802215084340016015875082391219888713963237580336017321129019182034492304178992422793732533077857261385804130716599196168262368886148399154874760087624716229963881014678307656977696721669405163058968887889530750458173299578372708679572027318277257454789596021094405597544637297786620780636198964888683630996914393638534971978582817197194685613180844404153608802290057595685464596112369378908812903341326123458425227689859262767284461753693133473649324461867282371420515474576655451027836286878128404175880971745481358098803731488083311451250756811428381503535148846627139504993049385465851390690933667090249793417689167306114525455393969897951675566845270494793504504607095395915437833743831286992762647962767779997212004602061523662067318284135124442678897420598437771163343776534485964778677875925609822957060214719185808083189251070427570424890402400679987075177554335870171393022185750359313735576690846068595142368828408079646382141461479307647952473009126665510698697981861144284646664791960512876054044547900636494531175684783576042034356874094937240175663006612997852345430953544135762904304088084326809676060565618539777959999681725649821279127365632228343161989270815260695196986803394368886510170352358660606473798505875684274386642142491153804215207793506771191547564257112809090093389221811589318936983930949072344203939760953078602898351436734733421388123019785710386815386253944351256412974351345937428528275001780057562881104351643476171656832667525218429366140843321577783639620375989685955118288267685652878322865422294572179046341255509263187102532506690395915555962415989032381995814707187470032730828448092392621037147437831570902921100623015763203273930883631902549690576734438420897262042739960731773202465325113812302845122388034428268945354908894036172736161052288299486401178964190503615762914240069173809066852902198172924372252159161419023009024934810935351998906257977461966178306269211856639689219180921340543632696419498027501468831192549622053976285830419157245114613596460807131328777234938651447419796172397335806878426055982939676536927226550680217551599732220368938001286914148665982042708520338213465533250486048217640426417732658705771224997933508879833233388602279545083958842837383198867406508358081643519469447676964329128618511719633839030107610886712977849382975935689430124067058913587670582503852269847448217028767631292751499411586752928456661107804556504159688477367817705080593931112655290522136688613384038639199126653618855355552499616068764404529122984079339258643199353833686326482837703707350007564203766758990440721224707345000089520675805296818913144785745238255979052524020263551065434990743434538323665628560680074006813837599788611683134763211772546685047336670467125226694610596209716973422039517354177665512243296864539572943560182288933174118699593096673518622855325720167722480283790995448438107568116004987519764751303034410121206445462810658205304474105000442953597819023568180740183525521330949091275433029714959323728600317033179821854697911814619370392591314097326576954293438498939769824371633693766056701329563908734312846248573195291934532611590900326763899666059949383725576961547438341809250426418386472155345533817720968651066435904696854541354007870935730212980564134273426256288714751996710249667137136996382541079967088481924969426032477514524054620805474134914490991333337662129185006139520912430801426617390939266263151987377122756945491241168748929579511392296259840345220799249452625999759806726801100473957252079747511650518443610258759283240576093971249462810363889510765600186953601302657043338225313236824948896270080356981133314369327649054286678737459659082621594471306016069592497455689535968882227646524727124697957313296104461368772687673325612523915432878744471689032012054452794428810040283585978241176915869413311810483850158928790586548651892796947965284761865335852215883909544078325814829339522820636290129769862895248526634673132785929289976986279280208045433186940968242121993128040120147157412797103472420203128422903666498774342159285968293944718463287901066890190959987630318782901026978167262122749253556411530154737556106410615296715867847692188851710410037242634866645756889454711400974883097790684698517406272874060155887513734494570677061879009796027015392817040025123764085738136219153187469803483286259045511540328497171170925500769214331535693921916551377395480723489148293543679551339383044123418861685305388627425658215241947983001957799006925051411109439176030810132387098418739261408849825443168534448887267276605106871921542785042580789531195253743553910426807309348786333106630507250192205311482050793257995971987434263669141555651451949513347105284000659036769281800911043094445430335271604522897862318112786962863711986293623783369523038074137446147620702495398829681567904308980012045781195614704281579137081964919397918699948693126366622095516156648738476896907338930012748422750503991734329906807639357526666168536301334993679073058967160973618943279960127682601501306124252864395359271426002531441114621642584039585264335326233307356028503359054658452822377483438602366516861105894062687820233451164580280305518763682593711493791455450444696605637059031310164852801875638560537919511740903547530077016336054335130150797997972973898518503566945881024436075717662926019694313577806815368311561903958406363016706881157067535137380110082720441863882907336631968437026386245837478110440719025428621498524315100362106425529922040655636335132759408235358593515988929340762089088508014682672659241217705481148159928375129388967527143408780123181205608848410922711333582266911841233280661114995377460202085590741180696530802689469189094221046335472376664330987424336819071334580483828936635802423635804636497842332370025256280689825110172300781424714283163577116528559778600807702755326053616535826731377336943553583091174029335689597398652395104631794594316449444060932446160753866166743327167695418842884270973845523830168476559018700030430488815534581796159485241231515702435645550567181996520163475341035181936364169536463829272978370145483416633440385708266339245754062537882629220461388268401480378133304189778516767593214631708222417155821081092771197192481994607813573140345501679009621255798093366823019336633234093581152649622200696069761894854029551145061160003567642156022757200496106996709467998553452954112223292026446966632248053023707283158290469431707505398735725434356306580887367266709006864902442148759543477493072250901114180741550076420519697771043559631403612094656023784458174819052352103006200129067373711450152220211717260696565483152801616023329990772418767280460235410767489167768322020253863634538941085424135038200353600291572659748748154554878597073465790654613377831028834402255873560693342984786516406096869144451839812236624913015422397558977002427787352482453028118030576270004821779320239510299819772565729960985408450601654566864770796846383674901008008241540457173545368223942737287945916139919830591135735997494732754292477595279368869456391549866476480138797438854254150315059813165073648762578036531615870467780094241371794612386129607679951415243772767003190544315274607661068902102054682665899616839894724107840300311737532292507650223634148938154891830258428208301051963579288520387128683670231527368428399809455272852572013763822616543131633432117018660236922149531576696590031301871698896652123015795150345999907594064386531933262278399429519524204731613222128957442857225847913838838000861412261977286886706542926444965090879543798890040630016029438159004468644028741917495686785993412670454235319188012470577546482684546379092344229412089320204958281129181049303819212316562238630342510717876443492612273481138685979299130192922784802144308532257831155049892537893787587483730061409642690621400526399183776512656205545462462698312037928183298120408048157689039586769672522062047666138789005937645289785921808012933110322484243907588360946385741089498554839474988753822964834664100081546056877785629682909177710547193632191905930600336034392061688682007192450101925120075453966855155850862227546729301833249937634465089881920462190884259808920349978536805680932858829166064774527665156443805938580544452846102990526099052849396880890624120024655947235600614119205091501084798389762673001709961499926291814770381181797836701968802029827707378178305222251894137867323022282622859952743928837662038020317964843345722421425673688377390404449879988009885864519675327616487760375925472526869459364473882202984272051101268247139860548715953818650041819421601473594526032009446590944168332392227914395517600220782613672669707946160814834555650984879931652502162441030317971134911823714408948723633862317353270966709540049622060582866829733495216717110674588978709391242304459026290109525316211761769041945530970945415611481298207882260775310456009173763844042646654964230410051668872376941556478151432715858367989568901427844949762047027071060704742766114516028299423507634630004632175172008573859283845646422633463996931354518898937627212547668723258847727355546992865638412880168415158055406565867804679046406477153966556599276113820430272353331497692272982873934465491321118448186736294697614681935655148501452121221189066017160394783820884590860295149863434160585536988769464370137050306259880136033639805629676983364649837747215730566021294965967296600202191494854975417492078671545387666320943065039060111727522396550033007596125196381387897091469103132738637449461670879304215726070991934684157623465097812935142120628834123243344212819841808087685451912326598211947522505808823187006134422606042724482143571524644122879670080199928278949292401919208762822269651435465277945847465715826533981295685005553964971865117170667379368586630343204032904515568971515701598615612233093839332905951037244889155514023159836561108749512735922764978203455687564436463320696241315022282952152877604247686841606762828795559835558455689815075927707921282510463242824850150651257573267065991772920742697477525917541989257026458314475755778701801229604524541886876650757277151213966450549931540979014467980995865155240385487944004510373183588417686605794216769510522475405517704028674779288749529064341225506943253888199457194660382954725278464176350177397803931756011635277642979406654589253331959329460934060200241269361604423435025798957835541043222790967596701994194192068827720981313644535954426018770999960642307559462881976269939209418794912530115059788627849316013681755717919119482023371612071366335306856181410923977971473711733685745622034992484561730777163953535248487109074170368457015765969453061680843865335778234262785091357135186214889033711499381191181508028754267193302795708624248292928370992372485988161921497993594486538626201112249920336330260391195456938005288995039983292692391067725004193721332149491291873729890281165819423516851701419085498417562074823818814648803906507048615638631291454165674023543495401452004356728350588892386032661818676610224960372538618334343211648538912531133416737286464092037731554191179704420478672629181437217422220212642275425110645999624759995802022071690893887690104957153631698636164863110065833648826176477175484406400786506709808113345075541214089832874608187438250635432904104723984014143554092249329347535728468243854200334619939433843853763923457906356329365211255053336106547972410923465982538038349469958199151647788576074770914738633729985147258501302056687304522188895129698915734036874483256385833880196955286974163696099182263123129982356156591473106779044213081402029484885196342552705325394048303188266237107144805924718249036028663766622826479154975561176074053934096512416314466675910762825856307587951558958852860005068242921820628288253333154240417963141253520949307855990361667608734067199408064292654313844831091760191655680678038233637477737790591532344170202449971841152875772477132264764502200827389660500296935894333234877000510306583967352773092846083418317565166240191590198767330779251449200221949962658579746413424208750263887614185186439846968102801926710278253083729586659172310046459194891092187407361396010144734635693338765304141851113445299276908102583838887808841397161662965421058580442991406107753106787198802707474677300750010969247283308170394084978067117665748294436190571716219318383069643045446080067150238928322014218130492049694212651908344206266775181503089853051065278805376345982477548900533150949836311372367550005259098412051605457896119238379488900201580045786862021732123357315120620270161180643121962109958798862309110410334093713912239371747629153532181452395148395767107787175972421033298548559822354354569044750684630054750474387362111078894171015346103312979266726226872685357320704144947785942941784715320831245023692942701723306845159103117433259441961912707169955987390532403952084360285858019694582321100249379379908658530352825322630572031607983318476404792286009225368792108549686415602994148998977007882083217812157385158648102048267519355204678066189024852840603620234080237132654734038658663854181418589047676004822990948541644846858997300786237360772484780915246257686763312510174027001540760836816898870061061797389699724803495540653769864240807701395029302029526257019465652980897848130911415176588766991465417686659561353640004059758093956436110916862797374673672449713728113578003980445754268854055419489086032419464537276936476420113244684263557720904825296274189840219545453342993200604772302875925326828395259650237103639702913010894643824800439746364148210226094214194618364326079530155049029709908724268366995112425573661255884909979562384165130017940882289832307455976605819607547787404371364597795390702397471732845774972464931825524716297600980277778855624375330109582990424619096196391813214959315435682296881628089850743601169151071704913824452091787361518213482330924957833210468343508180294146910870327458078494026557615497058712377058892585137601608399920790943558313621890772155404578365639296712807360388168741043597287962296517085526537312115587539769417047538556268924262132236098860222954469856766413034509182116979178371790683995002614665813094935093418666314140335852295352280306935468871059909778955515540057741222569068902061980459737226319920153914347709992335331623499794460358835277474506489287182018874857650658121649185300861191185855006997580873765045235634013938298600050719075168210731978355350569124076723611724398906851095003530536401455353274675492154338159988000792187102004243062891589523199475028140813855727984550432737956029991964603278067901969715626052917654499515581027548160666360372220763234174686946143132486438326043279024865250206898900309177535904689373789104583774942697613589587170473745157353109431932280705279213151774654220178647417507098859574000753455130702349891174562697362989612066879886257240252520911393842500563020018121400477230356672174778292501681622464353552152670689288750604109627567023821197862986237612724834331268874832348077404907113164533015149263369534309010222621938103851631572466377791237773886179076478744871253765812513059911964924431857310742480733434991633578786439040304659027757250979113584614132181542553809936905495678451908175165981499113025233203534623886849491680719278635051504160096617962940050729913890514768571592586747304685997412559956400056184260773778693412659212415854186685634222061728181609663270579842556202706294045554361323375080156257003033219183179243848995303710520427156682290363394504132735213158413339500224908777287160655579955300402007136368076369704906007206934052659811344556580759301801208073319373354359776021379759376829503552875455517592267127746574764250252090600579413784974827512842348856870813473811600881460532499193745558653056288437229740192844890956181819559403183651735309930361694531205090088401490369447552156974958131569970425424270721321232670928501980473034156092396871244438408461623929296622535555690621567045428267058357723672053767442331782779005307002794084010528389557303208329862268250212976068217506375052198614500375943120398576031381560422917479347493512993875630488350636474745707290419033595597642370768683450862756067902507642191444149002579924970968800691447391958342511373018073395508297545714578259941299564128304411388215553255215050762308391344385919738235381762460472414611931784328367480647982917323934606801511664543153109419311040105405360448344062366585271342439242505337030293805838872974926328895963055513837652942616510409268818527315726030196698037179287217304215225794187290153540200792420071201646753556955552682495647379052623638691491510299799982666683130556710443863417751595423372604372529061190861436020407546048485938179001741589228348393603839516587222922505453976188898421100430161787429970316249717329544489919915102985970048655995394794943073742986725240394360559527974700407400810670200144721733429365013952686247352649192847480644999571671516852537851585337283438049297014645999042644315965941766878322057259821866732435937744392944066278911325015829537746925536808812896803122679774963567175937330625980491791493120147036933439789787170830907887019016897817752811243315665618255055354197079710607290627670584828970942287318018797779263028356996780548045126639630450535384452842387197270270484160376855646055896486481036246778280779116513261659764852180255546284477051860712611553560303207815757375246060935235718532304956684341755285912339352893662489766702756010167025626574399982355468258641959773752866683973042706246552470526033381736649433787070116837774229752947337493122445125441615499744630730477547710174393730523819265169814737111369598909854398036364330908829600982569804996593448924071026804835914897158113970514314222126868125203434370836274869043746050663569859810763316399155216398300556908904699356197542250433428506294493155541089260381921971319959574404348129521476677642180572762779768164476585188822914367552294846580971378971984112423657401697825567126360911043985646606052804280601497982313945027262334023709763007346432765237344470910091894618749255588723208041703532885881948322811874187044541396941651942803409359244351179611846971124336890453035588810820990899542130172134766364616442988428406951752547581403377105675468032236033899127454355452464379019372072535586638646828908152614176189265356005435265079955747375929790276272972282455120816172345703412791150104599410028249268072698139922408235150192133244575734608635895827650023616753040930396395008958725165305924127694906822588339684252063174090592956242700402607256184963800765481557793854199433600033198069070906729475521020285034285547807700557732501305444445122928159412105815623138327540319322370550380783006380656773820712423326522617856578889947639191308190695748078569684195436528213740759875182308800593779053627098175115796125474188599970530032804690685334698706897057394496335488439296965084363212221809669996754954923033519182381132809788803731649450420575768720212764323475719598241848424198740947464176613305561729367484404315769483676384146165832553873592158217399197069441978447789753551193895379839353129479127258665145347518129728435655295967499754881507941331038736734372094921862156475405595857208285947141408964245272483623063486143462458997108910150807999150645444173220187301068132962496721573383431456302814279753364561266791706073569244883964784325961539974417357750208640264682164265810975554541753174070959161297387297000021574855340623959079888533026413450226787528299418156488810142978234524762608725509304184895987221765609657186809405893954855567135865421552571110998268693972773288946387897329842417144480315477076713222435165793511924581352978607495293197971303886551077216859605862201408314333587215673311916242156100533409921903756251953384195933927886295317841111554100509359768186733793416069388735606698808779756406314320611792636935393417449087163673006123610695578460977658801254460507879567129369866977953479868621731430028180542250797093103754444057420064852965157773593800167440970215007905202045350972337217180105547034954020625289291808208363725166987430716459912175105805474935175126932165537536332905180890184636710696104507054008606465312212966243580648981825162626672272460954043996340037767103585419467132131224732530082461184629680337200223074050791618493094338438202312100284702721696984523363924313734794035841423843774829402793914547555759156486352025866060180818249987478585502075727789635259026908729728011255082248503369682309268222602795789633615608115675245122161362190637268178216197525434761872355313093901775825731618337035820674723116139153084579491802973093016524249593443779593717122423774393847421330759771001036907928129067977645365996221853589395274364201556844658326072027318718170979693147398120969606230716319287839103909425132810364186264253812079762258151363550361005863951458195586949033851879433268599896836404605341953373766241102780952718662109959301825367440675454777008339511083241500689591513631299120700063696846192031077708762176571647635000241010224512687407059018429457221930623382402370718994360784027558309149198196724018270671014256676610605242259538526957233875808954571102027007784391848391432950997208925925662898020927235572460827960342032501480722524843457926305153504677364920224358674198794203143487127914552563659695288445348579184155568807188735939120545401315756794176045639759698104676523094457521209951177627135078023308547600039655322450370498758153431417154246451044042366534832567804004305427730193941700956060154816938416138628286381281286984770067547565581994067871568940477317681181611453743234125821830292024731817809168226278567849528857214185317075389308550982845463031819411334369856664338735038862835746299282193412944223969555161166554681191388397175453928629981445009347921131879300634382847736695410839681313150441333086429769804423086698992488642408011827978950421173761627093189549985312202214338655276803188343644807461572152798499889079635371879934144902512337073566760748740866595416994844837429685200133340867644060468077648086545460624822336482119647571702033278483307460342396526787426029302645679086270882135954895708781434486504894840435052126771011224575343384177857691217244552043830974733011968339875321116869297161554566433383924622461351362464497689592100888822976252968456881663850124283514630567475341369839311420661035995099068585457215183746364753609532421995494965400272164908148212936924950373190593041512200015032209443004444713899007216997171986094364802323147072445776347267486950214285158423972177345550784436522728280682463899787555581164237694441157164394152317130067591524100660853265578550387711976969602158996998630248436148564476877600864748695321735564054623696737139509854670182110676848897393530842818521404326981972495980976658436035709252647483075606044767882168890260200456086785271123538298000898280637694790226191304665466211945824893186757625236942344632603856318470373295642467555456938727388597985755716824006840690514669609853717193609680850081199930579140480930314150516734770689045679082958343535863567088494088391211585971019098271249658189382838697599854698049311827454740801709686340703626225385327897569137993489955018429890991779195177402169133894385435515458653072181807817054959603210444029680151830526406233888107627265058310794649919577114434611876316474669940762360839769981609079656477795509775458748324501567599574951491321936528387842739084972214992735975710229343615964917664289323965464753238144088166372022532650711673468910969996280883865685741162202881788794739241946894528774062759382687572442460737489321345667924156562894766657617602667220785025035684493822884009260352556568473683694396951797669197319780028468067147970401423232530692677541981770854116157164328190554364434160766998717490672961448374209945583112772993289212028844931023576119301427703253305359212956854738021100274848861901091955667604511826280055275754489482764813090023718407381493789694604213244183629865264737151537289014899476020331216879223201779280046270648468509333476721147122608829206611072757953621326320826001379965311808887735411258201938651968225267225538226187486867336142968857338086870030452654678121019791221521410799982319764105740984264815952117674983988301689729437004954362519364916917423227992447868535843717999084039936978388839256443767234191073419702130584460079546477253937221269949435333672242274602533027178101262545370786454594891502436154795132138028366087708661992055983493375299840573029960625778598930326351249972017917832566467070503552567241335504122395581706304976121052796688639737660530248078613462592439394456471563779105409537650271546155935747823869750495012636459631346930200445241039233820129800267350360668771026926333111962259949441493490085609039617074171813102762440276859747823066710188290718068379903847706264321921664342358593138108437935980020895322892462102165427251160388516487472212771853040644397634573656506240735489311276496031936734534386934582643652255850369498438156026953868833720713730383208110032277316130627735982656202156994406985029449898993032740948271372014407862178575768980035064404916931050651059711414100352916911856210743643789092585811425946589225549423266995136732961082784802473427460485988196873501244548533384880004487564277459206897920574166928013960826763534618551600861579943833577086361027094223144800796077107223320680857619322966687822574503168805360145436611976561638900459631706186354264356065913971627709326526311461241278180612578072811105795419743882855413416060111594068106218235744781822428211401518230347445481023956941596708657100427947132602315607064993636543801711699807439737978302456280529910074689154421100416810864531201484489045826841827174647768325042923791744222031865801877809392896840093527175589633289094089605159850089841249718064159396296097131184591689088374791359258213734745525228317524680128544922072172876113183973683342913396702840654359935147102173705806414575562260632648496610958588025170017492226275577594865252724490578543748911950583294809052996173913283934114342370935352514249998163099282840985414334753119405060039160176754253167883318409285182430620177696317419559887674280059751102884371392682760881270496437246144709823326958301402844352418304049208764401075612973050380985099016799359080362529512929214233538748524887088957176346088918065123558864953546401861772770056117659041512815944067678116747986345727185992892517439217902690246794128934173048321030221113531815161431435583347269935946187105650593738065269220654238279572106364683900568439498658002500030853880511916933286756532265352603247038801384723631540563367978459117745500834815978489600777121934602936645114748745758836231366742312771638963761040980326967762209256218941459028730644648460274985132122829635492991317906073340329807414159597491407936521970382992928271196156947509156640921311414322349367134786126433173392990846126447757378777100198534279291680065800153883727490555632340638903978496182681580290963191056131579716657865666711907845211189473785662525146637795162707056100676978246425891044701860079956000748932427810273578255947924551222079576596778158524625116952024556457848198069132019361850890578889581043946452289803536677907891929527183074879801548432102841433502255913148690314690873744888465090824379177942361816796902200111196103533815328267255818458961486772022499119810095354772631703571766252615339459698170922251895844616056249308021468282693033839379221755967669554540538873939963061782849012767519061536633144028926515307609181496347251224953147420244212497723109574319048030030036664317478199267222136795965197584574104150672517269937407951050417596153198223523051978175127019717173430380478320505633071266500096980574541413587378611252824943020039235855628639656798891572792905177499665280935607572038276313691962609799642627235977266150340531322275141769695865365790357632681756643655801635163341092312930089495564083329662484860520554093168844055718685846345685159644815184177771244877048996880948754483583615342052335297261992835517713135291221061293042449295665148945143988194093943737590178594229768705782969258749473272609099332702823444959659870768106098296277935027874208049254219073010143875314738884942363940762707978500064074548610741277308756905079975240162635359050202663001989413304998086447765677538991095319410772720312972736793662370859703219398799861377936083053271857375684892870796379994141145355498066405056410076449920826536029355746955864231731047760315071750094537400708403770346167704909648631338950957183392921203394205047882705765141073090261472445843135466882031305662031737375303007886131686733875411403401114250337749553436194817783912923729792455288098976709058263571044717423365048746871144903791151363736527448205559181417073090869466241536570299315566435775124077813681238349760741832713261900974795321309541069003479301142517317007866926267811810635439047082588463807782266869824580700955969259732456935509910300457239079311649682768431443126606757961653695752059001736026572759928377925200052675396813038359612522331824943561011265587074040699008864316440992949210970905845619614712689110241339826477176154497368677501700421648761784866295039204260941741875619800731987803984674541526206437178763988532365991981937510624524272153188300210608144245023198721568596561066641760536163900284823957595602956471440991663443978673992218894089700673963966721468746664240269394632292691218221805768971053950347965796034105237851679868085569924025017599680000732288368707581098648577521641003082461515834198289059815264893575658968757359816259855971566561251355062993324228621088952372513661539011389923676374869490795039231080668708676894446546013394800763376124111264890332568486578190415011380751882506860455686878454590789538289827953234973154467715077459292505528591173241802633727624060173894412483388490535972802820596397471885979514653198954837607491606288616399506991282944488737364931160548532285275136155602892895614401488223587905890697723814493628005147367162738667940938526286633717730281421248286339866042073551717051175536243786134847194591880919716082225970985134067743887465799371618576910499998203078400581991647498031689526427426556111696492651400776102904473890378311862451740709172259065633428968979938136558603200518542095681053619553116891794247992618220159579242633295753511069884623840235266081277082855629270644216543470936623924233368173782077957932684546979401811223369668133792769234648049248164510854877435849251321644035048585990056520410993338402422784856730170435993089583836059749773277741951310742037410451470620008070361407259283925435122142352813912087463064724873163800071952572061761158534585268933144959027123481025666851753101490023527415288366429144636848028913811429311029912202914670378686404420007547302369196638544836705499432947653726943562623471278443080253319933786942129253569556004260310766965708087304095317706477049722881869302615264711155724917769958921861122546653972310343362367634001359552069040845989339002228818496871717705880333475575456659847407667914669851110404995953296696463708272545031290787835978599619834443179070527674210404690860134239087987735821214980756041169107040897445776003085583143020143350062553565456914087431917368746430964566648595761425105059309241934956582960652440170380914741351009825160779561310868890589753459840410182985028533090922245932929014843470259673257467972491441749541406075876427534991435236108365770310174514735321888069881338285181886903873355988915985748586817232669366899240005878788281319534916497166353691337178174944890273678996156075400835102873293782462544617857539901726253339368101874894731603645647698681505812952692921762162355881564096596078930774489726067258964488640201131013145540396272777791550191868729291520323229788612465501243295389636755211178155836597583766276329556328534503157430940171956788735474738387418967107857201715233668207597999423354260431660423468685213666725535676984242686805273056248005316135155431433819898899828971827433473727520897079294155413213986810901555820254130704081637953846347835563886311084087253089713441408470266741817123674312969217154983026004251901336568688961605203050159845318093586168105864498578594700598000989960457314765662520606761504639655162193274784651871461880864318306568733193275568267511425402305800265226697731297914127776348876396251737273703528503045595606571147542230824081161368359269787501837532120233798330109676732876317873006314722566123667813876827968868638540611491063915794151229655496821685920251539712731640119912872750151486994924396957183507023861918875287306416428974902716924005524828413972724023964668252846569089620055368295247412571433185411646072631703673202029121463736681916234938668406127589771317661985141682012602977474318701788644556991983284664729077903098784560824851779716119698767755250654249748609161195626761614724702302252673144841237243011773313553992833395107209995885532680475396170769021870840338156319782436581568735559149679297811961145904980919393164381841794402360662718878102891676776335300607182811256419144613981141095261850349518936516311525020877218521831076010958467659753706620072306340682500904314383784784974050810474766312851805784453688992768188223515749834250057788581145883976117348113376193597527568280842493802061850612484259064501944494713504616325549357675468381072483003494868145789148775359522828427209354141371588212593139214193476592875425002718293660241815746249945800158975765649475914899137966068863455063776301171274345319899555719609959474588042912091615629161711241494937641859472422454916936685303214360565156380740381035975039855075632924463020484629006631173586418893104893877001371383022751079202006362609783563372038218240502842116274628743552190475782348762332398674348880877256347564916978716936349020994267135771639152352658943006988005247974702735069543527839887778255820697063770204838413125995494458409607554378418868222945233459702109467226180412210717942172010217906554720300546126640559142645864230495986243939620007709302731625467163049321967972174236494503895674031153685586977092462109915201731168814566556413061057890885599421281428132515648958512376369522525895859783831467764570913783900564102961154348610975197761336256480182853120323894375407805662349668979451552083495740893876949971704355165420931536772459490299318226518278204840753964423552917463297381534651416300692217147243106647546203812729086913946684509741459391183109043613901319261095503713513577557899043231239443852068053507389070997743075187316974328813950455522563363865592991134613027648621531813794154664851331552136034569635066680428203539163114202234839518918019525652101561765753364710858388572577416345145506271164112295470103368589749172724699009072943614287343701564907461904143582833332870694790613471140532934944203919992788553512472426156566942121436298406286128638155812829476241557579716067789495256482737667050490230131651267566213798710131276464646649728660164682199785556731961633045844599163864493632836639410294391556940946576704230236202715088660896604418278589833938798654206000510202299421097033281287607402797834746967171742459743158637841993128547667217991011884077537741413918743249676045729039548994531656672308847942494381728308454056622998704168941878063731909104896963096420544692002672344619640202586083334620187572048875589369739083873101433445593608582191579880805020041112792947477965101373187296102155363542326411649589247356583236613232377452069161387688651812354775673166842662161981456351297242430387265125643099195540929982197229651271127288741818669800193631263098573315188697790839904437732069133381515712168431258043581256876177179087653106189431007856908669311485460805257600185486162736570780177682541916112173449372279092453420455350197898014765825241723624469506186812665395605584314480460385384189218456376399937540904432373448803426179124343153321682163050089070099719606646201808967545734866341001923014085597420227220798541551178106930280273705975724563470602044135290384251320534629311041116696975013853851581890870311733805917507978821967947565918763722320736418728471290537206584809466842082443649907706628422187735061105271330808846885240271090482485851554660152920630598662304813986237927609375692496277240466650232838771354477076957164694146436092786377986093967472519271116663822082092506101449470251687208736247106666688083638001705725753510931132604967034234795855752698455873081787597521735454216131888307128130367968302425249769557210348750884548998952314570166500616168144594011680227721778825022695643033992186834344226680745508070619310995115951070804099363856890491352903709119853822726083183575475028832351576093059409911209273431537180941833150966815071905703890117969424533247487240251057104377584771864339788890199206878672202264455396327027397052192530404489041704103197780909280664181400019291194412001040558384516888797662561101189748142185529159048064513478313297798918985895758098478226136443800337505426511227944075106606256127207231048948834969459746358254043499990134659704544424788019103896766063427134465682975958624508871590631287062933138331149990442229629562137322661539609429682263234080184828905203036931403895364539790364618568444688681168504273037261482406415569159322092032131221466852926989904065860306207914037328793041718112480088957486233200958201582452674039236102570308086251962020704433236322146347710473993458960476997846067120073366329657180541660505577079416879738080584532440983438535514884176905373498447750993507273687566941266631209123295191798615195025864048246692793657596633589481917769587274078168041374282794443226570364215746229969113229452589503816093885763279310237290538747744468656881440072376132281899123232482883936325681183727136938167618438713857486026667894904182141188392301708530140932278565291651594486090120462234255439405907021760091203136708737280420492905560896781788582201926598813395431325741672782205395887329669007089719177551008790485150428854375938923826924906118667508707369756596964248250299988339911064289939515546694973479974683812575372825773013435614122154539704816606970593912357226850815343748234727098528338083578461661743729734994732661594458052384342642311706406660316703605479459806324594724511116925900852033906607539161846080894743682757757870270074682035567830272395443743186027247740839564820141013913569229530974115134142018510955717541146854649760873133744355110694413656270969295670309247659500324920031747028270319847893977309782393314010992590781827372488763028423822581021352707396519071309605945852576807870808337929137584015423706081067301507612786614445361673677294926909226653074801206725096116613437857409846783441525244881885053865692940223252811727942727230557256432827543292976933250214057324987237353184772094119847839754034653152656202780178263024473007809804056723221192924118732481630000125710166843805701712459462160619302542995457122094366871656608969873041607699669306185560394529054328862094754001440994455302867768845241788281511062126652148935822723759731047110658783250849632078543692161705673848142502179329834739715160348358255672653245082951841347077739436026590972370014686084022388004753757911730262379584091418659528394977492563145630492357133711361826434070173328940201737318471230104746245095224004387388909659991879446145745725390804481830836661733926871123448850521766781517650555653608993269330041610154370404435523383299185838086868332513810008823019190828325655398051145281358409367076759839166497166188289463150204326313971405674509128891890448253357958270582196662447702101212767301387677573744013184350439632683879787082313893906300880609223292967908268628616015282102945428814487509411876206975741467774893232005455548742331130423562753178035974379866424445952198567937878569500083346310272404898727821281110758478113699827546000964218652251400420373424259678416224408082528831561073783501135381280296917082155686202067259256178739481683991870843944998377718596377594376629953041395024874007271506717735842252151139234838265121474282719538289218728860089496757366068721234515454634887520506706066104719095917390401114164893950739998324603299228619221196311591090773935229801622435167497041695482423598110390045889335472157013850002052278050920954208898284441932186925339977861578781682419234654077313471970346689392442774065050118015319577025561661028377462957184926370092511055452560687412227429529557014450564334332746082858924778920546725025697218923795765823158219100587214276016433645955866223742534055683222427484461087039090171884094289526072944474357046314695324030852014216736645930779649017060781043348535515873691343948129173329425066860175297409123433047799698804798032608266733629339188996495341537906659963035053085334196352311410594004642355714014378624352610997137824478517547780445414501666742520386981198933824925010464191466190577930838613498104919399874488016950414009768371848879846385898916993725365214546731385832460619185989429606417531726391719426845711388928998125125015860662997357465053603685175507957243715553369972216841925640838014193005388609063334093578590975202669972118874030290360913662065343445167470645014836990430329285902549838057883433823967543031201052252415727947636933368124043016912260768925209343230868370104990906652582697704058490583219420175080946978978968296144735589587159917872167391558582088738845709857927307194923224566922950957826922110099474447325678735124148395989128855397478376483971977468479080976215751019786026438522671289539187960154813777062526492843769765079614915601979668492639237295005225847067438929455148468875479814747670653285432839823787730826986871229329477356311504425085473241650278682240269267172691142092693553747260403779080797411595856268227168019159267687447066968683933880613349067572043933708469246131784862544455299546026511433963199622260604537823457349725826717097845113828500500902570858914889442763361055755922354506152085221041539174933382155866836600328573067497570234958223330672637498129164798547073713470370226789779694631816314286736932667991949974342745766742943978143121430828939606398126680838318520804756446418285180974203280863204979569040679299703908462159856316893797641447276318448269810202841337777061645116681168555575229284107337153266402002694163425773048361277650484291023247276613985034879310270353675394900820495789391439411059374509786701399633108741203837410194759688186645607637691881447861808106529861186312121598525281987446310051573448796774223551955593824071310768494041517184339491953711884433671324372010807960728658881302921786927575006003443800727880399933112312049191562246810153927712539485178120634720547108516394538258475988919345502691302766645650145421583966472180662784520895655813491112930567078746263821450697417528092331283404607522542883626274530695527795437333416641645149649215338275128474371513993255439042087738444141677765875502912790272072870437699256994853964095161481070201129021466446809564240069108665468332992486964451727586235534088890950609869710007889665886354107844292306684877410151859586401571878643050145061073731948774132853694853275039921876241538111174175742074667282559121219437476376526439088142266676740070185222090249929588959872207148559102171899519438919797786617246224257606043861714969864679990201755831478717638879132122751711648821651392851982987962223358553856784517888328588462557953636327093120410353049031311008646938460078287120908783669952336155524650369655800377139255892794759744861079091041614692915067159798337651654273800517854000332315895709663790030211281294581732812248772383983482176346614574947477107033029150223690408671376852337243629729412748238436401922312548721328537889161735494064691849473376744601429426798873021535996832790727548289316794529304122106157773692217350289179388069164072017971334913274520587839021210886056440875243705442667960976695122552662411510340013470386336747672725777148449598822864840948383699039544928513899351908364779457645294588725114157044188352544094400869270701939666317103149222337926740792927080460078611498534303950071566883348380963225022545915460904564548794474725200760471827502437730098744521147176029665212927827232790650310098048654347903646474062765844497738258750021814034849310407943971125871958264230510053984315611155067329242302010801470994299160624837302841333871226039958439158498425186316263019412339349177420396044401902174175934024583498360211710715561505493795853315096767689990306886660044720799465483690554160720592163051554397319930029629714587533293511478317067853060075055503124967793615091641685037027727752690343353831258537385485837476662393248148116704178950245834668174935609344894919058267243947974011017338531384765549663588958644855981103496981707424379168396201711679581476127788431304195275476489197095755151420098795491668815154536354742607481851537864264390462088184714193810865022903525080812603767798999180224416052765740292636820763355013775529901896374029421003110492048752358996291827810189663617591053232957559565214867263068329631003585910021010915508050466085591199275078045677897965007349853924017053857660956944724535272482225984420315886964699243931694403712441117453541751387341864659808237502673135627480941942220805566681523041508110019063535307169552570621480152840016317324043449660081538306332539946274365055859255761242776629957250187637469011545688968119732085332505769769694240569418218873835965531041878438250810214947063245842747992917107424781115155559205747150141580822508076702024553211184757685133102190383700975937225755389271385031769974503746926181898535853002876791365708030039852911087780952199444390820916259103872178749644497187534845184827513644529982826763794260444318440917756683395916645369732377666533550171976922095502437670138542271226539489506776192800327209063223339363693399902762409942140056660887052131813580849834446645984096788036700481629197629297917772995114783308644275364606153104178361779218409433666659612583612537029149164823981818616431719719769263291892904021513237498580161617760553396665169754386547652281422797492666073232025459123736314398031960966871040462885423386816435173167924146135351471858332692091353276018501417466519464108769647428143866274724775143618678583602110183139347718624600073037997084674976932443907756913477934116566478752390498415480571357080561792196607317276858997898064538397534476518892610970887779521967781413105302975330842196611529073901813800087384720140654440944446121351154844109938128042755316423034306437470546765438343926285446748696035552355767525528771339917565456590575546280002836950949753124163029875468216964356486268991704738945042672920421014024870152988437317140421050327689493456278313561984585510431007276420683570452787682846822543905037708664321928999910030624406897962394890338475983159581093155416163141365594073607225215483557382107063706304753197266204850640651415806478448453813888190165441862530901762456523960596345168470447031705499987452957001286183702168236752353639485808670276754860577985644610345949980654014116852060661282728176733999349910820615754580592852763610820854546325558147052237622839206414257675346950397462682050994038288832292767882254547247062221073337022115849195087225757389117346541592745775635800580587047192875241802980333159687924011628993310733126441763397336053619560085881520504253845949528689318676210849757846868355368705479916701748843089550677641005666705262159482621652828775322377500936285013138240464737125170927895904391831457677478767147568320017213845170025330111938518572567140811651623494274283099623496624042431461412092288072601262967231034709246994108679206882904053181784330040178464074651710731575432641630271753117481005639181439712880969789004848249729785570532267086181959539624635110546397098905401270958053078674402311891406474937228817753000878396700874085110393223767476161207191939363795522719457248583415214236672759329028452784520134841463287803602137660149762841913194737917101897349606535049488159352214951406061853769658529966444222612008040686673755063484820016773061459631618499510554449244701664637510592880527680300346132124392824493649612318187020269206366134040545719564630163733123314576005785874775392201895078993153636553527656805468826229649518175977605668125380604913229818188839961209133035446743935946114156158959594247916487318681720323256668003269095732818564964926467991303373636540021546797117667690949529416600426920322441050117332293654609757805509756121095581744634107147398621110378329456987450492109440726924731447230761120601438470242305752616104516708308207654163806104384498350625155738927375979286903983198507586805854456490725820460390045821913831268211116768242267286401477689541741090995399796899160847132948751167029419626000253458006850466908761500103203341921675442764894914384139515473113398472705999271889852117830465600311731841326227042505916108525995348649229969734318608071716007072144266016528801774872906778472634790423437475467188077742948914518452906764059727122614497250208817681447346466022186841377026177406804638685255745028668004080811022866483899743608175750067099196014715388903869923796125065660022118316353681201334131507463764791438774208976466227498948287895555990020958473751821209366022130119330212923885189754903753287761115530801013122587848800814347350435364761900234386005161666131414574845160451989345526261298690963517567401501091374796348716788086169021432343598525393140483894422049404865232130269174341419038825080213405914637204340697018449536605159286895730714337901218847745364882279211885323652099070569426251254338938180953145164224216565218635589524687550050248801403374218104997634375542676899898216093175164151953635141953176889758599457884805042064552245752944282091652159645098258592862259907344464189374222718938196266676676846651414258731973355030432010038621363558438570818681674095800691844678313678246137915902636809241334917058952293581182307009341661306036511302105771473935413674244331737796188865903066247465864782986130701165306495901072603661074531299735506300155253064549050413969429084746613892153768120944645389269236443252013672488783058327630690075200884138489814531287304788351026437136987692064978781988243743194094104216676454222984194041114647225334387542669463144505444106167138000166201812717952823694838799111997106992664923772648577824985936547631016429386428025511632153866230998815959687582255002579167343064533777670616414281362594432616851294900906006413850660934570174204034924681500289534851828389733002480271341872669085574483037335655308920575843349869898489473692857120696434866980419248380531083483338575515825217139553137096069060730057372789004616863743397005714384386085814740482002897236779975479972739256085268314616604217998150846517816763757191276861185593620453005057780078953733476906619749801921169851168984839110906551784082146666887586649217984973394479380422996431493666170538997708352777569242922051948332188418688862300984743539808511478473463695779470485631172351895395044178444931333700978504122452747114289022602171225345741503221536627790483786243769370970035570047166659575611872628958650309870814182595589978139247741279640956201868180293608943195381659198362468410657584247582906209080670575545339379789465873623366778205515421819016387408360967078974960789439121444030034383895483526709670666404015845230945597119679816738869712013068048073874676149834703898594889812670590675517518795113783727314402901986773484913019445772980078497683488938787295814666638652457869035783207390520769318031748443609352498499152279526598580967608367907650093832252211554145872150847048369980148928586636283593910837400296816749850805139424298848195110584657159955575045376119128511639891805207947451488450466249678735702821118189645731132859857133976260698532729076481139322375342749485000681348720952511483965592000493240591767346218326493285096296848040208622533318274366770343633173128576382458846565757657713096739032647389532161590320097168346355583774995831525859744115045270383362130692574227679307670388854753592165458598212451018679861607873319587423170207426158033773114670188468253889353942735818919878703088591013556611960560495431647940753823180821287977569668482768101120522549838274311614210581923931266171914191318613238210974814742917329650849764287716097724954475071227521501663520393746253947986210765436141918857131463943825975157565915689308234046674109722934250225557661571579442523065336141582701950215320005107999808338614472297527041544954242179319450950061727836854520698449400385166006754204311406623276621683322119495343109172125315888734251912047466216889640984895291131040662582113342688196895247334140308931797164994753686115263989886631359005555554650788433864053876804001654469825183728359165792180384825880037395040798277778009008225201715529720951930450934558302032486982012197507848303056715492645350121420706591613244055198419929237809001108693512235514724190440843028359265597830421303804049654370827424138586043104217460187985100995652132834336830393112842500281349731468819416541278708294852217640911753246104557776660470110269521618529895758899873903568838840434374523244082747321720843997279094420578466541698365208625039674185715903423570354119534176771265732077212951642908594343665618745383336439374980685806540424922710526886263210177386736797443344536482598624771144605904926086311441903972371321543451591896771760884618628743876274180892702973061195959703849258309460795297800266592045456642998303770981373209561390582644917512058232906708119720528841632288192891067758614679620526241624162073418300111677886991423703791052966163805656450687882710471229351268095287220594876679529682393812940060404557954463399439886344839917133153180342829921155611324166088316157807916665666145710260747264308784516297787859203158674378763828781498907260849867501619934816066852293008966739159136315871561682158416907413226822092235395852227890942729145245022216996991293886840491962861418188063316968280902253130850681285424922232642445247766472626113119895883044391797155011805097992450563944302180004792449354436782067565243326744511941235256191931039255797359619165951765476200109601619122665397109666844489098801235278697556646589915001359166110141998367201772247586907111820339913199011303509288902097788214216659270612468023250639550314878601341379649022495245803415344806192878004146572111073360609047683570568108387039731716420171459474722851050528181151882306167312349421892762949418423182052991312320241178262819929551349728449155846594104511759448206141140278402476368999261892350764649375165808580515825193855310362155758106290636439798454100714196245694165531739315425605129900114936090262875315764551238680227390344731191642817787348583944289898583028548649103992029026634102892023163180365243092269595517947977991368444775188668604334003045236253005259127737542979559696260218176298818413488343076423776285085224640034278015382842293537924655482107554531031204795233558941806846182932405613302041727276402408013028085696363032841707746693833707351025153215778233515783283024107338027298217454483970083895052786572233408124500097391710327854327035893778167630012254967497488546440987523264387180117167523651397509169400455418849031566920965053753434903026186783997287227136534922469784616635198223735376204621585346038644662645924130223800298316163212028066287744934964332731490186982736581831811343429999671693838024057890956834744263838989954711719521010326788107847965660256264048202191356087348863796922620192231626210447216001504109647977458779089284972384136536645375359575456803760776516967580384501299833945931712431032953855782148675072935185508857874404209705509042995848713176673912639809246692669149718367228863150907323302067493137765938891523248036673770450567385048277161127323757459314810470616063256092216402469358932017834454120050829159369809643681533423749783476767652833013885815614426750826024786132590455145524067792241229759774974848250510220327142334256566775708672231080375670806224283268423482085732957433361061216163787973368588632964986789205123714709049554943216371042658031024373341753352051013602381535987795982903313365743058048476521557610863867971890666170146562727434113109252736708681216279319017916973324280863778660988482170684559704163323507015443020615067436710563124723415958251089843620689928924613271258222522106121060139313384773194305364696053380999756851357447991432405162449781658377126419088476638473109078200019852234403745612024960012978393124001427336298048355174371299399121518440030237174161400745382156969436206684155947170632354298202922538345760270113042622155347771450458136938988548297222060560226431309966866470704953370967737875561071608954571052307779162326746021235588923298860527312089505500484486010417243489278089826166556170009220755219959625429789279066461168787527372625621855314021535183273061098897336961056776604996333615261478615240198572542670591866752427761014405060678794839803098463844917441533105924392958757094814251921593748321354807087572053026602290954235566633355799845783830430347575752757771054057836175639133685388635629483405855230099698862053901526244043432811767712010611531995989176219871255410783321890301665882571539562061488997155809818590806295397525642655731137091204050695160895874792358946137924171300505644447210382233437881319749782180744927824245906097928219631206951211642340423571719762338450290493966702935168355287842484876321031033654599175084788134542605328403782036823504998294709625073735148082710146057166070267770587204375052663218566207989491385991207466086583636200003132284159330577607854739682812148202007755199965648622781307029774846269846158203123745051590931419616146806816087968214371809094006007928505883902258385057177349801598821840077838772219373226250614730002615014012095438232226686374776082262993428615477201704249451515363035881827328895028216208585310400043620932522232289198664514104236676766312977165209234709187088120670583435581018271848356884658445508500765538491746868975228340436023260187797515566966121388856213653011331215152113162878002734270628778842817684716750630305580526893084258762138244327713937267744986429222521998649964121496062001866829009563536058394250340969356721442126129632618053079330455945715920836530252453892153427942048205711483362521189058035020104902214067416135437003021810804109252097629432368890376617279886262215644392000482846256543366032915089438678696638082503373507787279947934513990736314235044772512365884280230988834783511158614952332725856413889231677054765514511500679647026831761411004485294438257836238103934939817743003189837852298325076854683707628761163376862001048024205509131308766365438632886973090290751308406754267669983337999547141057330014240989942588731241827958718788172563254234511486069442686469612894922627086173561600586202715464733228408966998560992438349515980529327265159985754781122337378893468990455728285047472573618128422113583454950332653550508686009201629166518480954026210805857543680006314407317234946436982112551765522068614831886597796797091300288494205043638787730203371942609235353698428321044055248000433650772881257484087325720151731672301094379650593185566012717769728043759765004297967592793190234571084941292051288340786698741318772054891640741135601396853510574358877146339096811490427683501319279552477403309456433638212290290921418928882675810978671425763172887400171860429060159119020454996152492811870588301235799462933529041242595564757555584245781771734723464788010792343962973865709240895006672475747281979770641823871312418172346798139458878717165634000168893377753136528268914708461086676822632259409776504322305675145181987367017538841309346358149102501322398174217709853638789100457728020273931917788794142477115449718382301750608491657946664286900797579928545619888580957163124574938911468076286856835903758665824514078445121914337263724678979875667749880984028664701189242198709600018487538489049006963016095100184993874885813083858772685405926679824546656988746829025334370079930721752466172243385190101342312425061350363564509851028851190105148863293350236623018686998536533853608526867720070791199093356080811653465513591791139321101520090778022824483696794130190462785505557865089879352571117061542417830005141733889309615677203138741940690896889427661388182572312967820613878313316391945291969129064363548129769056733460245829473971408438621720766703776135541309615139792156245796025555316556813863917184358752832990461133205024324613105803227395833595310050901030490355493267239986348992068872031025289425659930880929278817765311407415439046575300093919620595427143925170604032923665697795724340318549665250801880194840558205198153961290944586083920468139680424250003127532539708970809194578585283035205641100304301698893506588663269621626299690347871015482099574012585907538620015418558585108697699742519695008616227894335795547082250018813141386097821111453875270986561009051972055238014549337261527352111893694818276840307773411113238689494005009126651273000935008482880226806218107209924341488035918171213411406759680836527274192591238127564430252508498850741181716251521640185316046113718659166185726598322902102779825840905964322909749017098258014712317437719218818066781562226505866951541046812840991325763169235894802813318241391859747957784564099058188376873432632263472090647340035562975511736655687914842452601899302194769302834447110506246629125047021734200060916200843894532963049698011859687295070425392024225740403881541226837852421513297879821872347330878728914381385889634731216157375677226679879910200726221355031454818850006396303434972499441095995030316534225295720556585745996532378777778702337422098699283965319761923976884381404267678859267763139898970957674321557608312847795159340100808983865825524001520195799695558255268929293793383352306179821835248092267064631875851704844643643633710134091753889997262752225183117531095360906180631191786364421959281696372283303785086249934868098700191674566438323360913922658632595597596942914774495642721440936372628340934916554242091069161398136016757299251934948710221322555181710827442915603396270941601216176970612690654138085924477713977976668536756027589265053656199244243238644764158271050968989147635079136474864171555496916665910952379548473748541046460023181845535812370108286223746660292695322507481827806826701490107528989103240054420635084613666271967667303186188841443515090013265273555834393533545731010815479079249494234133509480975628049650492301379126696820395603644561475660584664400379708142009886360473124688786617476608000447903052601893690533342301751480596563146704999637347707686651332537323510171813116999656657647556255726194603930670589447174662935921175325715734808066785459285056347402027505584493321170674270611833465006056047228384004791658815492296463902552605674300794386666243858304908286343020901409849270770170127980616862626327491142039518843400076114541720910416386665940040896840857872424148019325942871660341054340232530078836004006250231529162775849540637443738723549763815212373322171417709301689303458628793054642428319441341825081630610613378785523104797899220611058764011913324505193933106250581706738853198611930271080314133132225207340108775186310003337239663760915324414031994389011565984823242190913695727010174097902963136563199211457261609115159846834876298060251187371533528538392960436046324107608245205133497563839594780917067201356109859009604553002067231325573520764598743372878556474441281832179471989860007319375783483032205811009483672254238233856097106527470467869635055142468046269442729427955372528183385495234387453979567008149722079775715856184072613441118180227467367541303912095136942899433535882109569358088187636291644419888922578567890200952339883502394740273007898343874387137965266265472187030702802076709234548307451003355026855493083761540214120933815049294962715599703780599962292369999648911702196399236994643120381015060354294873494742984232490278197003892474780641858853409265540157209493266068351787640844058204002556511739511753417867244632708235849176835705948535576232311233381244576838872586573204916877357910155879932487850290880065351159786764107054382742272130152056688896415876048718807216688207523198690982778584984555186507933972045745233079817684643921106606233377723909619875436527734313844704586222584965882783930455484985403094063254938426862251751356041073122875306237622261797836489291227543083282026441047314830474664126839854038900964328469305989390501092478358798681318999612807413309005744137076307078017659766052059479375224613464924585717665621839610751638963920734705834917110525012351560696694363370494753954574410572265507372005732304267893889583677719367458116913048036883347914414519295897884626235468322502421124798176265432137906338728113278562407780175163217994904770805994722091482135039501114680214047445696656429185171581526272715352262297446932217849663435161303492648124505580161901424959654968887671549367387461803899995024697526391974903277997599504702273724749405527432024932750481089527679919981989527818392895785620920369341683946695765710561966764436772215447901300954450615819196395771140507285232326007098131709964908216097882678445159742075884062934850428559231292123408263974406375532788899596848364461711339501743847780825371391283821034679250671070002736862432921086739700659592699725900436697739772566050700649320817665584438194800249228033817816019276680534824195941883367122505469554907508777375532391726977749356533010362241826255602557041189465747502568846608481363504182076461648335304515128877157053763206507396047143953767271192909667138295865772541987256575261175813368471978772660620069446932845784572339910085740496590530636201717517678494398580531941667379597084594478095803554326372522468015555838119316250348975592107307339635475411592686384161687567916902407063395122670681439547184414606077709022510149257408626264499736622028112191992438019680882780140178024085771999567095434704142949139725978466698977968967207168049448149874748896605740007946076503637939163382384758754491429992220281651414419965928027391127168449809594445294806920619495474139681428807982592318373552147776166345883511351841117097551176112065846479208110016399023632023500297630534179746950903048694291814418309077161965373597544999045098279829117898363253556062477305827390693223972716310016960263008184945233148093106649686656366616618834249717258879142164013625115982214119056888213496810294093914162299421072255596699778676939920015271975925218203937656520380782679307016365437591103472513463061887187506588275046360061164914141165049325303167140729721637813678917696340674787835506225558793730935243155688563608736465877751310049449330051584827588195599535922566171353834513559745862387824836533905622623613798530434136288159613295594668499363648181112235481947494388666828602328636724159270272872481089260887364169309675420238661141496615769816606339430071735196324331165739687810790609036362901215652683758239116722144154361291380034870215261465889158285216650461546729156521928247272972875176181120950258562486288540462881518062772634319698998478593888194153661241287460653793489268527426731316826959249870604351827082265388438005583594093910823056291858290233398903730310918744636421930981786461578398275832855551727082439255460228322074458469650648208102376242320430623748783757052022606401427083524562825641508124382773262270476572139505014472599017281506698250268539618029241742494278370839183983771016815679930406253615755842983779449777659574919458547078844168676053005785896230510833840274189222488618160324245465898322425466357894606858120193858197255479251128917629710668898126095941425466745859723217106472993546392884979761693603149744291961086194371948785171972096738892176631444152342947632010604112995377406733647572897475160836908178533827312996909458183981624807441438331329444188936421127090049248643899853652120093452032696948003967915253838777140275467371978213170004184081107548122007544649584982258630919241826021883533169719679009532300135997402772063629959996598893060087149374888014089409645280732050899685076074330958556624927422902350787891581305631211446001518618049285103682699695720828463934030922050555180647277988998886255239016732774372948710416961118582871515331526115148968789274914311408274512387621875040288809130410593718844432501072716159340229916257083647245557509324237670854867478447022734514444445199455721427121143717243137303645047014083043881563764998244558664018418991455641113171806996491115133599371130679351140899002345832390152423431308485559831844993798932092249008626468226425383314498186067446515117921293099102835496866275977335505040670106020245596894604014581051279578893843792866640925469191848670066212919544271466734948438100670322598440657329934945878240988677174535424466272022244183505369174509568557834479796442049172158394008637254625321857106111214895289920645053356220719001981318066032762210304706474836638548095533779151096933109891902853071885418245425317718680089176253884018314786909195260115446311644189338866863289334634425307016170187807365224830918217844325112625220858870773176988048199958560852544876011399897247285968239196719210587681729425097329684702636797098814549626795490401339116737953428773949158512243053328772302662232226902175452154558144301603321608550133950976691754992293033087418705741308626988123167286094579976889881199851623666594972848028742970842964886658278758144525333320143327595521229862447812432667734039347298052589587676988982528621418900876420808509398094730686913563443600031840454452523086105839988426739430693525101679983454816050563825192977890035554519930822146633577827123915380473262026128876250816882160197084164194786549597414494339705176807099559427764497870563773779720651669400765156370394110050662462262723023961620258482231176809294463577750176895690640213336172805281123460549121730966933443585389095608659798043712104981192053740697552039094107617744642948368212501454199789356692584071610929129550328315938938646253821959138523012303391406364867369605681863730659926591062579167195761300933318823364938213691474593194808154189792235182059539086251050319275765740740484479090890809616792319995370292661790247787459766329265649368941989132612358500271806616513424251745822230037128810970269274093762735655970828908167296170982796232527462202344752433528218669977366871420473987884262177672133241607266769684196344836253717067728408204821732272576006313807594405535850724147911516783856165975492792449866455592928440562580778985205269463177775508431956992037770119576632379718129729260983478870009025141300880429972380529316561812305415564772888023572153120165604817523455726066583058411943080144879392630008996868249356550679826124806243083195146513204920065341320413012576690275929908456503273434701642079777765929929231892837098428927921019422303203055697715566398013096791756964712042584286630235675322376327889481250538544565941383066207801022267140438953865156692832125821776982779195299755100204363841718310852607232513609686760594671369086586345234731919406089518061690393846799003123341771231366215162635851739650032153206699664126987280681957278171716662771268822875291611977031785912609344083985937439676981996787063807728981689435460196912537709666790682485622289241662842759144256387267986007428538561562524995596693075515325406551110678012099879796689509929919345858912328256671230483153122036824430045530645073148412320720439402789869675355687451293145925853332634919783601945796029730985053693705566100877968089015190723271321905482552242539085753280199443705678095457117865777401156684473654810976949007545038584510863235316566802701123301796331519350627603135030009555183445468741308888970491079087650020139578312816527382986149948577247699146499279941458838115006495722508313367699854282518487726184749892414214083535197144578634454992385802396335645175227864636966369718914925374546834549982965304879674755957902764921097869782131479552673777234972268325379606983132662899612171251216927646916990539270707917175537992044334692865915953083590635319238516259230586214441699152967553883145313805120940029470633005410021500305615556937984185676685286952922967465677673660591253480526832144637043843620248488947969693541677685814908424337248116760768142075099302172882917616230406894183013985377451165150793041667124814631230816157740265628791484620411310181890101331573039194651811277722916821166965424228343355114567930124759907139430434999336434413029420383326766315321577751278075066254487451700729143656085054059134972347015909299577214234137250889084643164556165594541188052149425116972964134987507406760926560044739129757986764824726946317436141234344349304393246932770657415371987619240580530813343669078491247898866739295358015253419500449232594997317253625809566113160995912059803896822957978062577771088388014970784765771963844570791772437212515900635743512427376711685621521957239057347424312273929523757831738665985687983736889723067368876975478520814635262563218143584317407449319300571097673502247856943315683474722522928362509814829265456597838279178450833323060390582902939634797096235087615116132155055357953754076974671984409565410435046324616795209855903899067568543334860065206916359277252348140936571219301574258852412017376807513360278244780196534946031788179594269418906216873491159802064866364476337567136491066220863514528580971727132254505723715852281504676315466309535823755008715080191438836247063152216839644295371567682373377377999754149712963309890476039702479833147924844919780425961105765998183797395621594476544375433947632776742960666969800534465356601996159864946287587907340425623859330236316338196467789766521903051609070917260910678015644759588687059010521605465269571149002335039808886032475253071674131298894925428650226332819966724761851695841850274809523572103296451367465661628083357981663912021784528111233190959495206391289968226299799081543071399323421064842796844871240417523564470417166141636845312625060671244142137057799098089686674389142550786976923163010904196817682876086982178229857429115022482703034518553415734965594251397497751925211746541371527908726915050427926496570698152347564730359594112922303908401106855956079984552680577335092057288132152841454795434530454853847800009233245797336228461152526568331217392917481434415605078319168480550599807269203760036412622119253601976832297454807108423159113125586447772797365430364881558346510615452826631639478601653956323796649419299261602030750029267298867004712957795824359506474662445726329038164767179594124577047046950537240782748241136115227642891961425284077634581322803487337238904401052620966981546074676658832298712484980668337430387040652849556916412073209844734443055426922114884197520859982654411486706081104110946975497216411272532356489457001775047656949143295577734519401736585350794752882286303114517330685306869638918012164567823346189949830679079069435179256617909129530872708969485872779546148637875652265111462372611528512756834271937172814454537897000842936880644730750763223674431625515807257037983324376154278810874327968924225427311900197808654165714379453393784468291135508141433331732952256356272546194894319526914298322434385658473703203226039626511537720942992793635145222745810823965227358510631198887286253634211729758510291009353728150056050552817408165078383496471634581484714366456864400081319911069916551183145127655918193827661040246505638141798230760778148130317477273366396694399605583852284457902113027268712986722234948199620496221121021675448622294904584746974092805592737063431350767243856061410535468909265714641483180370068199759478993312700794911610609305608686125390625592830282456879807003191639755362504248602776751557033972954141758892838117792539369026618846523818700492593846028571257025609233221720488047088647741777756755008505662835922160170900166440693615655638996597850888307151585107621033999025689571749147491642830834244507613872253443887160301582830215108431005107174298494958339656751812989948134042446229821083549721768165147307122882533721367597589728851951261489667660148736779558163484253496575174214004961525841236762103692341064497807077696389572369417713830086658117776616895040418447165332820213456276385955443731757854632155945038445761998092887538587543156136333015472227537500316214343903261635059472009786967196351871512324834896296410788762875562718714028608166694813392000489216722936460890572859523459437822062857175253667669125845602718411447736726689086344066061552177814731969331113693480199751160678977547217648449957498361587308014691727657439901031117107316789153923297641827889754971588885584229678960030125005170782162515630772848662319083014384623015581481760242988053227023825945260022700367215507333865785916877668879145806265171264779671732381741936442429695735512798642766534218739390928273563104739773399587818246000859467022132127695078124290515982583707146686539527650118481383947093815343204955670792345317477113066231833243883020753073404711613188032498331028885794530549546172152875175601380910469163550576393902133557718954956495510605083788091533244556575210465858201325014886081253619055704066925278198728589945892115631765216091657688133616627751134147799641927261631172001059130603632692225776742799902566075377798622630667137014185695815057822410271541244864615230551394837335351874252942239672693538357881065830787815399738260503456984978657284472213769289622629429057712147400184321105585823856176875429706018530659559810074409983104040624410864776592873499132285904419152826450171250009953055664411188766553560183173154351229148654543150044554484315330399535302430984534718309977744746445571055095098190373116598291955104423172720381299223872434645401722474559246902326827221611575178733133191309636144097111208510990060464720472078538463159817687281690672101595855799242009651718433452321447139348521775873791337069323118348183241611958568563145193514323036780698481939436180178880562482027999909293328726025756384999599601414961238951703129785558248797822709288678284343341079470137542796243878541123443813344711615217106668771974170718613669851490387702782355606345229484187383135135942736941473121171462117793562930965977797573350823624224356366764141894813491952186690359120584190114701403556441680589109772488690668714230655682038446975802896411539787264842770920117233607935929059512547701153713653445848877522569548491367925592888063248849213159704798511516084988921693931198986396762649035487444684426943543613052890724896777439627366147842212732383301579333832655447877709514316256027984943753691316677822095187994575491856402341651151399698986145979426094224647651225021491234011182613161935351851190514983983274919776468277451800782945641690073876103143585293214287612917546001251613625980842427280347267797915412314432216632882390956380487985563936040470101572812815915764846961466615240477954206013819082015773714275492597534919317022242407158724642772196768832531205831668870531531978636780567184156473194270461103340818356216609028338118961562282329041174110462700098395024582847603308920330923743767961823601702076612277055148212491430068416954119816826576616554830485576977642760092643956891369757768863799288556851822917961573611155957131609621363952966647533479998568560590494580816583909342702068789026556013950586430161175084825924804457923948684347757316628109431467654290228844768303333921655512691132184208298450122458669135720303663155726124736458534909054801632268541310105027466830722719985480695825671085323561680658894616425586571647303385948173058744344014302462478801560034209482447862213492705843201729713338763653195475719178932149373068169821118907276003464968932779406588203166717750265984236664851395210706565272916988877042910028469351278526069345304636258228184733397712699993945972271507357335758431317574706555487940348624988506346605813286945792666127964579633217595662861089178853989078814531567694589400913424878769339721055894667883830573065645978870072886118390707434381911898749796140328184009602046477204952679318453218258642374708255360190378864493414252177949329578477123040288634581402990347427651979668328633066672812905365702279115534508605131387108886877145723059702794952738003027258333987598975346385265919316871343908635392472784969295819619734334580315305100423806450015137209807806477651901707215195917605718493439982044319204497905930920957533675941021283255988558721567683560118469611441523969097076025452226291282979389196948858038555599492030851941403822835120302714608724366247260052235143563287576964225366323709223480081435668336081009883485354979521562218636895393912115774718187285040159551329878490570347482234802659378471625766435641515632288083937798340276211740571332745408318072732735374171878000264726760084377559201732780026174835729069341178322215940849827923429001405182005087791379332142834597589091070388921815970741431096310464550348229427412844350823637918712771043448761314946202465123913776175627008794594227445179900501514870455923871415713564760898494551483317608378175722275981361482785672886008457666456316694696033785490106295839919516505110842672663388441777921573754084755173987480285470118277865019934772080256304094624201306388117298372665988947177923772011250317374123499420176396104576777897384235293029679885404019450397494825882911193949681342982079241072276654220509693680397856456842382027390567326200974863404484103228000948679471498826840242503628951781310411591758161753843984352672034891371630333895536931976615852601058180655450990799283884063387596725587286754492143604649419603658000175039906329251323499628987301988847803374377727370988708562868864271082133681682974828733378349964839525073374059819618818548963250636283372209253802542962022792551029391547209503548961349297361062035962602387533673177260667593237207165168832127937040305389689215592174855061912039397960663838153238446463002602527729968527497293973119012487756271648721442015779707914194279100212745625134682508490964916113911130941618437635274252611704053338878841736117730371320101180686957455227207178023349638903855674668656721124503545835142560669686679750479592647869001547892126552854654389838156499359289314423553692958841542177091885177311568391036321914301252428474315057181576662217985607025217274807194619636950186880550397990858772983571173124584723362906398179491351084419460852717883921799138005262229553277490932015241982557030289118408195680072709637250609347295741845728831778696457263919973839475696729175518439051740023573223392387430679937270538433901640788687172380208446967969895139171641612544514053825185578571343046953669883837568265254618336017679489443637964726460490524162647673738070567385938628675752635738049301804898790531327654850355108783963895799491949508420472391101947252616128330379268138068743356124209425572763124903172500816492576099313335274070795591578658451271589058027980356807329358059223095555418431284933868012488162395792325167578010974646228011770841739899424522860722682489822505211787203258651933649560935980972374761824870024454771037124200846230514839268679258990061422118690165488696586522886657834870409886870642597002591478055098428851152398212164818782219034738579903775181325024232824904367905603145101074811974374185681308450611921537554227969536229414112021350199589360525505991963973131943201035026402187490848337156032456654973458055582351656669017453106776301676599021438672183936915881545833809703908588670074653456403157932458193867448158068263980662591997910658486232613346876155111578623751180193509112946836812323088159331979623302849264965880948043646342157741335567558482794286121573801427953011143574452765169261884430199995041267704670118389866891751112117469717351696334175093276255274669958502343060500785689420630567760025533036244004738973281126094985209040970111049481602970301513197822163527284505018641396189204874749414028244427978487582335230113997333806337503999723972634807510312669822611109356382891176244651673163025746854998248224456435995196237989770328357360025723577089062190234935836076382704019781893426385077013663077201186678580957023155584787543367118984900191880949360059822389339165888235370302952133109297642417020298112056695453593748966657447119447258999732316177461559016880894915029469650126258393980890896268832741711121793833398614702526809163975806265344199554967902361542694912277911418512359486984770641178295763489475602778727621498749223660991857257111039916387369938546367673883960043161727922642961284821622489219949340573591025467273877814679673811618927641758221288887186655786997366223716343723746459391177039788871581438767038635607211480378939370737959343682073772056481804466679293929141583777917977485302834422049971316541413844729968661495331334573432760767402827626717854726083903807963673273126294545311437658304470888523810908506187851006950059905738490993436789113564522285296726384554231083052244893284396728522715167323090036118243346576722225686205271130520925910826036546429325923122409735311690288401918556355815488231254292771580768872402842320392532075026746207989998918798550299277217561452612864336798811416183730472020766755519572067367028543805624630220138173772763006631981263972206892801485676615361091146868517170322948041393309938298715431600233181016660059047816662129040269549752741336727349774698223201645158684427621944618059405489781097809020414856239460306689391015639349586010992477968665585630257270781523935454349923181408849358991003301054529397762648794880526283796898743043438941773490334860341366508623347839720198634696574200648139852361098430157422068544823846782510895172576499464661533766360401697908835225255344935125524063558995597344668261363726750928943467997650520741822978354906293509759686677696791243202539413992736970084309157959209348217925234736899894398753039261685542864924774318340817907551585506341351879914607502414843372587138300633109586763481646510329085885881437952149528392247073354239668462864304076064430170330728073033898060539356968562825332523264577476886215007344581374543810541165822811455529174827235470475713450684118276192881981914326141282625759152058876321137380236271299603101341133308137484681230792737668683706736189741218943452452129377916440683870099338990769278661126872589133059394444936493790080269284494743622059651503995740572214178863862075185818601280748897195257252722016276283746029915255822802752464323247921728715506696627628062568521002901717352201459861447113639650287926887755504620654653677476594985439907128600812766393947264947104552802100695742544393356140135556755943931432632803023532839191741251982668348634841123108602712281245891224222563924110208280508184624458965992917996830834977831290571978608788928676843063657227014381320863110113493154267520439302393814116744425772674288664404977020875305396384807147603868233782864704424234127159971130004434135203949407669571917465632305321536088636139832219995659237626277486017913135259041020982693547902833144795475827936061467448294228801875499280677555538937705167893426411225278597732481218617559749806472823768068755325668193511815218160801610792519729441192581158579770918851212124440151034252565514021277619623485315032740321627601626298370295029428904313540741259178946330943376977526277337162690743807973984350805438425595543608344837526153377137629594326230541967825184589637158075050896283959595967273704023952698173988103157089666725341596568587885029130834648627236560264679590766326179257705103876640637181734360721322451466623713319139695259326697609311205163589825336574235555342650800105135399679825499362281804783263257443552643592569794120116576159657564677586433491303583246033663312805246329265302130324690776278471200908797786337330388007540803019313763637741968375429213639311520051383288338495304595063757594250652253025876862643928198827515535797731131689861599946491496477300381710892697590873864253266874224042456568057198704927081678174843605787104610281365087632425121086467574147832714478876228005455418033908066389650842519432722076993236114516257465330681008654754658362134906365467879307118340120189477581588492950742853322733755509215463715116433189891809937641643546327409153240667346338072130939656047461948885126417807467823618762123958479234461460495149568259613477938552711683131007234404885360687046584011905027843833298865268985436241684996221710410605528939528471837353031204421384790455009664259030500013175338862569612109265100843522072064395946878582639582211452742981169509097659710126472162802901667716413727163756409149695917650247047816134202785014050243328350137395567813171974424792104852534452576955327360457211120716694735371062053921786237309944859605148432674027769215390676711554404260506821785750527468228597929440436562302873294982691527895214892858944716307509420931259290370163633885270274088118335102113920260784750686081703744023865845076655285666654913046689891332963377033785399425088298137419158255561822481463601122775500079908296067374322914597619751267640713574386263143923389362928922868009563606088789019266840887319224497385241970171728624078125859800918558640094422652939131453431202279931656391030883883472873318443816524879178038270593159442775236679443926833110333689230701146530459964217689762735996321445353218679178088534128126866026211029534246976375981776220457327680598167552185823480111365305698942865106803378150828778110743191138881219774866499305180880267905803851881676591295332428471325929344357186274960953750505816933760717202076900225520647114944114322544727249006768950425394797847788505838042683979470544121609992265665811104516117183456026632646102191681619161834343082881617138777756247745217797470697998285196216889250507550888688621144458175342790471727703733679762118484424704867618864792704277220799521723801962479633667377789221307236357198240878086051269290534485195026623604900549958264928846168002430209578875443820777902348581922124633484580048699228370517971982400825403972397498903447437544670110134696946588172662957722541820269076644979778909849689292231802526086730313039206883798579528751943200297079067062589118989097892413453063733660105768536565817903020001249046663946685361612401760382662679140445602441489294303120467697683350854440214827750418520253539058261443102432584298120179698738160313359573561931845888878413452617046764860038373651485966543055675747541828173980145163327515609837010219705197401847235631356054746495169373453135391554533555065464415280978741729973747247873737082212457018190423062600137476341752087957754101042256360479852307391236306057086813605989055678203432189057707950079295828254338925976924915347122007132916504120548127026248843974516776986791555678527197000269691628449073981274535880604319745581847510677926599684000272105315052624202669267341218854853483824047920340329020859293743216306945572045046238394909272736377967892329158755823526150540678396511206545564129265412839485643674192633726013114094795683122785265712557163598990919550254432789335295874657288424404745792485604522493966924880522304937842359270443483178947001244293860236914261943351562077786108036334513447834575343489389371782041913067922394424532582475866915711205855035857974991228888323342004438459891783156830758698379350034184156280137349289248460949131715829228625725912804802389268904286366210789901379432246132649029487023677586259186561357706459609877102800066587262637961911226311347810282530550992574687861826453761182932876720646466866234834527500875274587280782011984975897640115858491249600922944115757675799904255636786944387718283643561472664574401622170389416342381847273010534845490646877531987734161554871021707628153572784074031853982975520976122164853385055406484106852729529920730389877441987071767084722522867723012814329612508303286312977665863072849634043590809666463266228915593485837590763685556547375073063744505330141708363255340421014351122104475014317133107712258564648365011396510614394611360652790606382696622556125724501371476621130319121327857090316462642428035080799948455446417084238561045673439256860811894957745684061116852511300735047882385403289207374235573564121085231235914751470707551708632736307235179479397750467599847110588472167441932816947609142428017159995550950417389722711534074702103345640365856837559032690804826300591736829612886660129715028857087921247072426731174390559197002438499127571019215216621537478657638917918709426777376300067323837029089829456078229019706832622107630899723452384938001461412312258367409967086560168659626974857309036086193855672536043815063787195347651162871296487127418979251045714822048900964011425386420896886807300427221326792381643995615124571208991606301027660858863176520643571912631381374353420212346084020538876501982631987820087822771273698830998880626636561357483256497371770465178669944372778390316549247829495862585617408893145664102829645021325633292706798030921476696905801375094182460806982857267408489521532109890520758768127801534261856148310064196048691831430024417374241943929335780282231936858648950291446493110093598491599305335315638906603296696966480371646994271363939352001495261465061151962058464514832022053625664986102109936980384504827034902409766305463687157995956593742878047216287565453982438787141556096805756410090758184830895084778232450691144142241520862135001633000703954731554816187777323665663091160925985228287898923648420818773009923696894512245832269390653435969200897269954999331802070978816413126479384795378972494851494134596033972326657997050266713054679376401941249817020372429360877646952703704278452074677743470792774159611529662439255815166097839929980246398470934907039214081438378447781127117122912020604852928130644215269317979290057595087753095913798180799909126868437704093248337125237152782579117555854359350352211103220609096556617306673188202788306308278183550911004741281772387981232811304817488960352883236716664237963127984548706105648696668495507523335459302538506534438670565763375990125952574788566533205423822955307461700405733699324492952516473326185064178755033857627976480142028465818620174948749206506645268137509939941495391579237721332403178777326329877956012359037521394908202928469572546248988183168426876741870841200834464776542820464194359279787053442524768891107707533288744931418645720246889159322450356989143731019913637214636730692439036664464189284495214727402430921981365000338029901443453478940104598137200274612129040588703356407063430577506141093871447124769686633524889893212928130012313289316953599790583348715724813649598682516780071331390976415751606289225241546293105322642330495132967641565413134026835160289343946850712878484396639870686556555356876674384693562793902742796850376166312060160425423047772634027001978287317809009293348581837479054978962163712344544163584355925620040829426677288020549479057326871592242371237846698287628124507946607807243198792900610316974015698423241696117633469249897633243031722028352444802971797613452708779925314827843946310978243225833208330394019274324673801367642574848358041120187248010587307404074440734218923568933927357251870100514087730026622172358923862689402961155433526036298707859722835731288949692728437333899576901121755543619205636801415962548376409527470539536119639091657569768824842908292174360047992165701058766319375050077521087406981379848735856678698132207467655968924390284131893088287629092098781678922548038219105929444104095974678632300095040370597645832325401023047305331363927475847373201980921559633016227926774648898541344460485016180421347292552064081192949574321189528864078669079075453730081667761033506501180189794600785162183083178844184918609324413667538921204570133261138922690042090802729579934041673368342391399796994559568935980507159165130881079173307275476905513851942123683306698066600264423758828393161195064561853884281921355923686345284789841303106081913676082255239397590800688196518107676546270943052716067663499878777301065463040246908580757043815645416509816000394348555756650541088560146243123626962963969256096039798032129540801863388391233300185249574166295611437911853523434942844907018667996566584518703395842422178722626276998153740976697289104037723077512061344492702942394309403905310366509036674938278160963998183365785586622219662000390842297072269245731597122594604494317702708178147044913514088037039752811609876187680255941687081100290507000424769955030677877554842485630018415809713600793690246269126650043551758063273563569763713197039922387008568734392416737023093548038140176603172045688460382037878907182284212610464646311274392560564406709088472071897583444347223800551872583462161297339160179952387989184221215971676050460886103742600950956792564790319077155567326897488744866354446108163995051385482134146832895656614310934804494513773001612185374517852486842447036032751017602574890526838572591714079836595773503276570838888748270233862048845379003412777823148870907471899964173641320359292065321019504971151709045067724996953659874300304216994566089655882241795210679292081722590203965403354612627732156289467234060829357421602780090856641462678846693552305885543144339512422706321224735300824538827565100915807768314858044478365155586000972977067112860849810767691012287376619782149866888789878408898461311909073904650145601375521309639692432924315123252986359168732439522412706664922111316401492237269202875115130687499837049141081233871358293928470454088330247774669804702511551318403123136898223275898404014089035794275255687887041868174969818436636512819924700156965546711355390450357791561602971601574754546480976494213680545594435098708685479732401441613230451105252420008060340495005517202049581341839427467641334982494166552787665834166824697641942482794346861951529894334492755465293955838578629808371346846800408462597148579406797728114189939442735382091128037713709133661901706806407963412027300996601813084215404022749158917698224566036913746268939424870277310026903213170507034078729393040746148695709582519233397026711313372283770059813501192933622427781983713013198482842075142664703002745835508723858298677094817669258990414455882274755920987445694465412022579875016968188676241691950810344160773303317015273195380269362896945621274390572389492033304519186896977591766632881089995547799371247752983606149244404293291023059311277047047062284470290628638800383377092196433870344472010196749060995312054189906593435665841324602302644113343265108650836726415875404897800820500204105119718759099878419512052986446140519240595269021201236461407627281016833721242291138261039878075064058067193822375104845147260753860840715997754431875060911450986452748552746470862158831691735322133251693749644833091134348828941921460713630259040610767847867637687839192786154297779642685294896122584059584435465620734128243542929218775873074657104305226638450624691455987588973142840819903083474193372891030664015195595179369251587219646545218090740307577464173017213603012463249175431211453674403048662456033758239150985461161991234243295059266532071600809582149241534048458258273112051673986292781100035250039151166183433118723444830715777986416618368257304098009114223845624425868946900736482429595858688676587050625178709769163043789687935387281055735325071263043287003500481970402006207565941707685064723746779642642082993070702613152412977594730168370584476319690069115556789617059001585492218825544887608861073983778294174355182827469171480781308411016633878172966762595498284839697206559673143578968421135582053471114804037507672641525834821904794491212687530352404473316556092624834625688885149663512116608770138569063191424134689432055944767586217819425874893853232001754766822067842297473645428760604871211597797203559024686234089646696592700801516557453573084469339551203568038599083751447033037986064918867836029320304587100270561629161666282825050102672744204337761751073099732237905976059150420982167989720154515573060044292280988627947930308384068665892351035378007711305321550793594686213493911683131780802414932479386412555426988391475589539350432351476697706769070093502112635690593528741401354057716511002710308755980912974104294060116519322956801863361200545172335348282162086217395890202488101575002063270002188285384875175990921734109494731434745323364445050476052173543630298759683871307238934235468423441717807889207780678594308571836304560077642037736231242837281761773882249202662127250906732801200110491173170360919098866635863304420018002817586480619378901917326019425155814279300702652210300502291965990331181846770914644153471478133411583235641888274702625855620577954906196819948355843000966796035393576929022304649646493990219605461334282804861286300848855074582755014088469424358358768880055296097804431424135882301638649705929438876741056325910732530117621539180718888795119607347295226325730241704759711788331982714897591187774939303737400542053272744770015764202368345358204153648112676655745975775534842430388511395327283580376033261187896087482762756724199605113159448974267487773133168651937988976626761498307756555879887223474620990079716656114985118911771619613085604548732305413471198459459020912234244477204514336550866479142910496097274935442680391377867278512194458990712064911571183197090753714746810774802442518584762633666690483486361572365912317793874178679431657741407841016997308145547883331497268210428441684847492388589270889016045733064009513427792409396832788285393079227915390398186759772303049393629373703791090497737003210118615994385826700106092567901166732163498565578225400707271783197900718908508676136592028719818927639787378339847568044278907425004717095567168063922139929651901754875437242839427936818860169815676428557885947201704008452400320255014754465498704238725674233120085159117768672012484451606825584796922160154959943586038909150625372572590686138398476152897321762831866841503519679868870927803013412051891717849594345455823601739227485838034538022897361738924072384085057003435958075417359487116640207323417198126092054197081341507951660031624647403571258045654035840223674097230976673817878951927628155820538358746117734724044435795022950079625940546379844148165193907109451324655102236312435735203143141837691520395520470673459027089916923082188059633474213111775330857987057304055678968430456311945796968805291026749798693969119519978678911034296788341985967343640913817225208124243784600400363174974635107583431975571724434805030712201887917469773990472252522740507522702914431557798194442856557860028766436969473843206596525507129360082301599048314404688999248821365485470983811784248022015696131639026330885572609967575593224598730915635108546258541575294896208636784048710440544537602880857365549344894619142251269646740093223453826329680718715499459046834559179134225880012651778603357972781407960833483231156194138804833752901231029595881101898029575882140514142264809970977581077997602660708603409004726970111858268328861670228121533607485813227241754285716028439749366301925533939787296043820778924785079690826790237617015810840557935700341791193728436633170581185800013517628797906676311300526047673187952121144324140459100400081039807599494271923750339913301208238497725232317973186480563203474120012099404678737517369720266977876667911338306419509051939997078959602167246336704288049013281418133738464055013044571926151327169765615323976838145574251637132017039659226444380689749085462798242839085655456678937133514191374829158886161758777001447483785055117729510177585015829660925180936630641900353057273387059077102501355957302234467897737748560650260706635528442748531884864352920604617205050087476563825811826185195175287652727285888181043974433101065654100548740462803730712941018431854642223433226261400664481388615579725000298193908093906426878280976252545805902043382183665906902547843007581563626792203002982530516631604723178099710504567886510712949917889815290663678425521845857353753617719648329776877333636026174719827984154340612194072146145463203360394891627626927515618989028672683025504871207274964074476710345828975624710596165198014100957533896197869459064709202616520916895399697409978673207776357130844455162693792821243466441286752904909342008711160927721521197526227387127369170637816095096889094045005468478924137232240842849037118074918320232072713557209653253188102767588012083124700195589530168594564757681958611712330121950452471994003945186825494673561465636068967671075838755767845420365069772823483989993400762955796196479960022881421438645852440813591403215119841083934680183371247459112268846355983059643033072992449452906188002945340651061257195279785289658214974653209484280235897514914098027026694771138676956399287724817655760797874350643689308557797277511619892849318656466072468593003495288294617609095062614747617989021018431282834421604524833733533516338419744049950542423839002390556016565460173423967811430770549303303285726877265303686383524438913019121625223821546549066953128845246714884244343290927559358585603640976771914738014586557252526630086033749442838067779634898206633314383217156322541104649689887418972228517910155998543778411968727995225316321143344360151949247433730184794090773553226830774099506157326930127959121128594976757177544555528030366625573178825048300354597340970865992840282712525058305134018321060498892952915024311416027813407163994207314608771535494243178349921035011348177822348750262814574942791873128694917096974285684370438959604933944746109162888529166207349998743808758034399777490121987256770510311540798308721862355113439025125840641345342860944521945558326358076238946818372916090635433171897921402540521198678907316960240809434380196998815971978355343495391359127489048490142754478181109957529421920341828837140307412666150418423834576360112745162115283248631713826527528820454644811235126803008528731506014887310912355829571769675617371387718668350096807534892907610930028384012266296143624784557946042746783133276211303117435030191772757134673669848302338969736893160760828981535509342296946620796942350315422072341383866223427110854258032961926211809379107316573115376761139570488880132585755994420087083252581529092351316970715865964683308434786834860494035449198467511281312853818400213723176018854088509599410356456985725308262333577706272296337947504236358719338232266410553210210955023252366731174160610742968451961441500643865059471217907305521691325996995589282436239099638922132875697576968843651237660850126279408467808546390595904475050551050106382772088574958746659611974636634646092248923673202409037912626577560787661120037166084176046427557909368175095073323074295148057124612587024327531741421283378265072038707768770700768181520933099515514115999548107908110973653874036103050816564145222783917112584976258065188784537836938829578561169364123475459097431902064458133958495618187392384204567857203037080793753794238014057369617671118698459557390622962645538058705414448833258545009134309043699712852816496491520706607529984337941411674825265453943089084324165552005745184536268610675934539261902785942739177700468395818348504569081950272802572148736417376150110845087409961342411419117853782996144399437218560082443015067172060892308331101874986236790255869877198661896057360203203069069684455248553660817345073484732315649250037977796507196066808225984458258616694112994891162522328871460075805115842804667219406978905880340798784675284154358906546148871331647480796545570199195982618145322181057590365005522792415456725871679166939355494533079144285932975127139253570168902014755243852105436607785069820199539472365949520756968376569751465853862376731005081464727765200128469282122045870790472761566029667717975614551517281877134827783108039082477892114861778776960966305699804866954677622028044038150760119241832336348857723782361334939793525157109527889415857046452695921391887903706293613446132633906678556790179073094471685556408405886022140170823802934023195760722072476979923804900287389531203542749063364269703368919820473029372638261508408000564543931314481864222441773069502906409544697665807631227639132924227174603493461320018382527980246458048266852807557859053158896811477319875973300289772764146177191361053410688840591385311304990752720590232821466036932914286892053787345009194670488219959624155756339138715400895269364742410946205993832548760427755515829252116283159135979606610518025846543698417909936064867548125449840000170710119306402353966673178148688814863194209219040981549890649480549943013553175785546944764517660433291305005764896709543962296287930464083532441979908813121502059877617720074879387318868040450755103278032582670191503174825834932372093822003136050659750040914288227325406526408642218113180093367888165865925531871427173442616939735437833810361769394957873575281165619614887262325777553868754527624604276091178995065454842546862500769085994249858890979860521639061404207338834121852231207719958726743501254816465059359835593892955528310363360913941757544517930485230152461683445104364266181267642810206219621859435797400256856922184603643612302547980831581844949620668062761701523453145319910555348455057366600139446162908003541120409447495376487874597147600241851697990990149342535330737666968347421237473004480932782970956466088956690119164196705358668568832161284796730180441845824523449357191983040432815209824414165196408120794792295776019969789376762641098346578964290713545534212299848460194505413713701173366215938805597196646766798691070370487750917713566575102505284921351085172988108610445513558758995178135024686474542196446371817104598094370643746521113204902415255625485533356023152651165198988074991846130433121691831004892736068863135722936861785904707860497717323514686188275037047915893962587182467467711154198904053998888564642415866642915033000155833776254229306378339241704760978791101730395217480113265264930496306361469390443293693760801269665218665451337343021011053536365006134992974384455063898259203491896907242024757325018261638864210311764233044780853668026587626853453635252815388918559401285258177909475342002354686667770981484639726420375465286858921635019122821878904403965727421974159131192850301103689243856105871238938477779561909931773804282065141042101400450619125719133200086226730259891410526667263076392673122953707125803696473182668773593539521438656202596044967433606459607383348081364412251318045531681701285374350888346387006694404570887296596786609647981373335142385322887027401571977108593098046882983815248352336673003661952918188007094418867808327007126784040098848950879564730094936371692065021876086866000770257726394342370583315945501077717403153483882651547443121575140389869129529848249421211133974942830038806390278603903678440863669179442592895677119806296295255947166992870859166711413247454294066261533788850573755687451105047005717659509954620851049506024959310230929758273468664852879043595497833683379997059030206188890827248211994587921705438572889370861825540115675302461200232404347028180991512189628262617284412955276460045395371485525181553295664851293294902787748676289172853399072618055259673305140233992521368514186673515108863751404707539785849973491028144419676913591281310109541716289754990051871727808420815706608706425715114316132339532200582968373309007497126938967059336754707714330366709957465352239634687438407247911312707582175567447001388611469868345648835568075223685446174243757351383133416106591783040220541249780448847566504748657884912652883112572497356655220349833613942378960359318940649407042202986413763380354613105070307749578942347987341031058547285656130235781218298642441156758706348475991738442589345927226578436335475220038052603172483032447207023181301921691483544724048311544692346743586717387369848044312604300478298183740034232617359067366866206581127997772866852091736050309465879675677384371613769848689111365661944967634830515645440282575270235261905194424505180271261723377247597482198891199619060009484196817271078272431384735519092850100587980481931626434503614887836579133295284001402366920317894668248684103002991281978417599851501084106579476151386972583888401976213253570115965032290249333528780238794939090371640570780353901936352801768817778508846904907005419586252684424084737202368774071179423146454300854233746279002035145883924506682947640918081871612992181806794249471821401241268046859518509365617893735843106146780294129185396164912202630996872636421298437926252259636787146114373589105290286282449005159982698553070095450155422280443099777005615450376228384644039136425305788503739982824864181760065912192476021998370107959514127406487322349802971405874574899772260591619434169408491791206005375486284029757381509784184065699147154557014117660669272113864099320398381058847063944416614867201139622978151557615329400355293328544306900533174297870526157489747083594058077583581996194891104957296242175629901792022994302243513875151887381670614278266228867576293108814873558703142149134610057920343625350509768408162939701879015301420478303059879501445377587164523825189718968401238941251452146700906859303711460278506113645792675561677459117617194297767289148675896483258355475851657203115501919337355168741117283932890131260343796650628027799666415938311771667108862044222904200907435396490738362106157552585523257799466372767636153418925164751291201054297399585127298320888518876799626312659141035319529448684461556250184070352494164007634754416460907302059195600610866164865388455941190239431126146113915708633836922292802182985600135456807764822582008088126984546017425859088525537758256234762399464255602157248786698670263714467162055706815470647379682044040810651716685622639852910595875101610082844180373111995699058660526060412988721327011285304080553093079001932994068646684340359932308771693606535188207748893719707318404182513474619361717754324122283740812179746472027608497036480036472080300676911842146866526249871366771123605873442830436646216462886988728001388818749049548646771554268139180001237313677182739688855687110704587419687225381663095526669941300823028860472107827772395742343807340524323999711997864424911249992302810224053963032453641958723119574872461313231576542091805836750333983460214171584282357804551305983376160606908530281147693769053439357853698971307752173249583807140644647808309720133140258979514452001398145353488442104120516966120865944202877846194040500675235807607831510870981568715006040959816077142185439459361147435843851285963340224214212375281414895095035007259819075879692645915206231100361118959488058132416189284321267825596049056001882633213949243475223167595475283887733003639986593498558496696736653921836246975433175950984632068945894386730243920243322362794672976550324221318392855534061966546590237777667792871371458363087226173469773221899988737337267906655118622121087749637347308412233116899691520582323603072169304344940364877580962604323015063599658301623327345945851057336975577625208826189524690215631422752365117135318488997576823275891476313460164757012735138454030640385639890600209962870601275813021317403248654848995200999356458343165099221961228912792373534687066550756506860856089102607826829626417800838395673953473688062804053492746585989609420465741134553743840109837171046210175848801425186632358018057961221492992157530264725473496344314417026172879892833388779085821203308891859899677374444716212645018054874702858627990426836698684747660585912820897535512423978353262664649445809589639611298979510816938803601504542885429798730991980532759687467739791082835706981230049183312786854019615899138853492230615580137735348583317973439837177712913324552654510767259381075038945864175282104384501831052882767447494348186370962069148705765957212318310524144531465693135313831288732169502273392998324974310958675835445044844142672960446255364870403286314626737570244375717336577348328539248875314176454944733831734893274556540695814178819528914996009641451223810948031123645905558600991598589120755020194144876476203278056405591667960733743003114570923138571810909691310212686734755302325602219350490532611974470685613525028885315648524922380818870744391520744449366787073788896012768469119147481270741389046759176502799314347155890190447976981423950738282654229859520396405475226978116605408609100441947438041441226395731475192542964170374727451025131440603159759584394374722363634840273659008929887454656738603201189030688051752120496887841399301146902206067550036147970693565726977422323007508731160909565222639913530257160206000910820618723994185440456381129217800203252344241982767781356136147685648768065136430311546109416153540865470360867320670929715373278285472497449872407174945262139168634667723017378274317256706940507105723145124839806349111931211157283204280027021318000465936772669309879169110174863586506926897500753915631087695972738175718562866360077773212388343601703456281292093222659140550825964203879150406655461316159491346076325666255175936502967481148194287542133363977768442870679086001421534549544501655775875295503944557036300899815211633094749659442623630557488556815746739740455474112222865197361230142815648920898252832964332471694541780085760900149052746614243687680834759317673557501886920679894237514120585249635614346010135662524387759531772346830829323098943729812808251224640098485281791649587650433402497793626063307542461222225270754273521242806285737465362549888075463298561334959957580827411626547570113457787005320870975801118141936171776465435684342259825178804949034416882026164733244540175012775319266753961987474417509918287391435606849711036625522872378913380047818118492873367146805388910090172113157585295810656332019524076828150120107489674050282737512476455427528407917116599525294772053829488874103067160629401644444697426022762823840088885135136671740642176116312880845952415301160879313034252111971365623086777716755223006281148309777307613831706577851663965303884490257905467288014675720630572056272269752841678465659881821741165368982841824071734474936655222825072315634522516499763773135848139193347475311784714186966289050453270111263999171172701447333536233249197375097586884827556444230045379445349139025681258713097421359259106128784150318410121298791858092335186202146557561067735923852108640852964532654097867459228779143410965028966629461771441141048843727038861939797480797648568105864439322860661786499327955779696538229010789712560928312808765904576264639831566085917608137734878012711064457105652370878075303986409821634166989644239360399192551691802865425655767227831560825950041879562754313131729633631502716586851418600602680391614775040380927383861183459866809394875861640468119827390452619244958128520949449284707550756758543266556343889867699932958176696044646152105469906257489744956242226330994784121856101655992747092989618375883836260255263491076956746595363783265382214274501334594132046258867080025837714638203308808399629870561284122403288370345457250827255762625586744132663657831703440448981549533067669680774740859291909123995525028704777327918361567593243234065129455607535065962823548937751879196813555018992439900484642905144455752837143428441869639466113099102142560658810864351282498543400275176976363853292136927909076790886648212726931555334475876147606345384521589333370360259492694270169468334052304108636587637312798950109985528220439124407316516428776214163863046940003752755500335399821194172526243143675936870149015917888130871698867563115587142916567201183380669486650819063705212227149856966157975333986663298132556735637204248899191920138435341569288210903229707975247199537842494859066548265570764275556391663094986384436795844456906443227965468631420337300362951116009626971241654253605557006544904808259732789379981365186601418600786791857191912873715367809280482413592344384620922811779765211621550614127870692471162313636853679641294248745664054220994746723435516280246491340881003858420250073558830411046615810971580207490074141404353374986950405071086294270435332225708279677324473845268716635027179530881809930290396500680737986057031129204838774865952942167038628025806125387603279208571987741290503581411449672432523260953661723954158911955429284761564327364453939068539923437401695718607555377239430064774822809565000877681528051770895157844712293349403901283018956580753249414626238749165528006650078186540640238381641001086977202699314244486999068229909464890298295366157973681557717331779648508296419936037450846204169863670614973759524807558847155000149984923798807153506797006056756799124521754499271389372920524764421643765483926007607868845275138771085778598883788859017792092918349313299199270359248336613889452813479927476714327017457027365040055916557445008918874417347206765671003020403286021576112234610445116609793068191357021526411713509761156862327053647265292986122987540787463394024269284250485096120976167668271601179582133569183599686792050788921531889527382694963086516176332081191151828123358603935424956677105242557899610461117864775446558546209138443091774935333123396848222393623990148037055772576126393496050436207133837689899360326722207395507121637663379605914434083328141025911835852562896591485311354457429245270288035393909917366207878649248702522647124612006201026110432716878618737302439139783710392043283343785861344998221353467796864582216386478033787273558739521628519941041770774093341035502235156792594374773021330493725483045326785489568532782136167324044963453298195170751480005720884222298450528414449728924787220497579597886402859558668282735223511521678783153983909761197201335604691205491862306337855103664164913425432986666495324858169596687630069984553161247647309922633559714563999354798587723236072243170647109855077839247624199153045860528840134914980431263493518581044357060757824479634670630067077676533024314636706652380035024948987967983938710538436481451214764961639420634640530599921715044934831959061039402677461604182864476313245417848271249758948262048648166859687745220791969431840562007084874412757660930036660248746324877888144471656484875173943414017619115170394640310972620756827962435434025335460382547063983674939226688527251345356038086682593689448126790349736478542251656186761880796324380128380985106649028495095895396713239851555730047448790363620461629426532519127973785596872981075916347781391536175607241499689778241797674059566274134497891583496128585855657609627902384151558279969017008735198145361329487039227765164735894076849101939762125861566115876955731044342274366485501627145687829531600293973265592299634262332569893343306201073972224069864272086474776104319933502385861617272298279038184435554208915987047357734905764408609824840169524082712237206680789932116543458761280188711363883166918182781927385543576220395712632899134358633390526826029499464503352180631924095632724251878478923567434828504470576588802973635761196026359673602597158441421760478324101381284312784577054743588357458335987773871386940646501286732062330926464820771289569477974541355535824549102599663815320343298526843491830043245324293199312634560977208687884785060628806410726633217789172191214964829232989247793673830895728115624698858179497881817186854387722145535173608038314596948143033908209790594845510394045556609597611677961645820535917442464004784607705795015429381897158209833533482351183744987436485929695704436468729823386381919034256841318729278982595915170961194870166657028914364272296538462146797993657903804798736614259193264002510274570110529740077848606330228417533737048994179697171241860453964929845576001658826525746171642684773685187996579035159979259704474190288431700321404436871988934706632708973253403277053208717611619174897585996646676162606992763270506838187537774028912550262109375871458449839753317200203919236178660058568010156031320699532111574848956526502970871854053783161206419778739834922213968834077900580559475267590568632334756620613156779780334066893650152515743107914616731364161162878043901866936479512833208631379266476043357338290292905029004798404627413135476909440403520424805365078271868337395840426183515201232700378678312402451138674245016568617275468455527472831022222416982471807885693454422375797136051173541188261515635498906821463801716483992300852680398304899525284838772007309204024825278825996802473917177923944408058596124603662859712118587988189761032846504587205184206254519023617948277105351301959600713568665690036597916149036136629528829220597629414266526200135758466957307041288117231460512297927357538716534802579355573747225043167179461613812985900325891475855742887100740546782300167517762360206555916495819307219460845873760128674664416432156296881916306965072222178397688110592927017997608501497691543963524575563698874802840166211518426008118566485380222052412961988384013008265950931527270411541003903606265782141566431853751194555596237843308132560780612495555879700084606103482026037747622558741539364351683842708232274507957630312277872614079962154008857948348354928794519847475240068654151999090498206370263594509826533719147070212807116547328356955020768547728535752666783270762979441368848509768097760731977278546714538546054579656291786838559189907948658592272684326210986809022739056641623564746082217898290016921844988281465278215992367775038288080057216645730591692191549557351005563935923582281704324573883138547570146723101670520440273766200657216085459367133393522056071033880076098861696831357137327678453583210999860044541902027371585758705167053925413541986261632135376919114124187853264367914304871806181513898832585827230125285801085534286899139182942521993929833624042901691712972299643444816852331531970126977566445335220882536513872269072025076419087797923599293078479751559169908367980788322986334887842325504230575551859614468415687220717748951653345462809978790481879836685468296170746002401199764125972145843236877131079861717629454753832740495003860994674456682681980470332420993354783986103446413362869751548556387446749790110271815881701998524495818593639723777707947318748506755892231670276189938816115390918309843870895591983922624815840087743841326179266204114767747486369120178348112990512020974828944116935910893130945512836783418331505373214133064728663760577551107968298196432457931469626678623992018747825195810079530637474383222316204127765554570316215343778508370065983956569911299555103041158529811302372386932721743957603673495436264788474833127741086647024655430675236621063978110758870993239863030428181633781919714425556005560085771953462954054021291035796190561964512164586095525608017744425880919404852150751450685914867716151273739375368844093016545473567268999980759677206732501904377143106946223655412029035588756344423737283013762785498343424567318951956916026429703763264480552270931570905707023861907377373817139708968144414175083750814764730270737900875182496849140495010202305449955577754630240878381127416740704112727986418060235430854260098119245624296968746248578999467548670881114777697423522220259042650246750105328269464623694808263234060982194989013235339368769054437917853844783279021412222220360252772027928572021235780156656310508801371793623068926465951333704756583178525797444355308342733042625281318836983779921776449066639325671075521339812460331113669684855201274368342516604229533537746327457225399651072368476916590065857882502474247003195471124124051288646747026308393966810235666668435452167398393116367123031454376482792453746730860155357203289337716807876525134308932211977161334868680644770444950559203874414994731925104281579465640747366509674429400932593572741064052800455757066148452884571760106538730165981285616109243592605739936882924912391424677519115814766393979054278981736714127822921530092126966329409894013488142493873421412211119151545330217477829121819631716927790451439036349022835611865389108208887992696582314636928346726024983178600498531401404389536467266535378972132314655276438847524051346995331390525930270926355482023362311171705612830736917817542712431574413977970650474218480864566478760096867477471756671319237067273086302724566926624563109828207648209546565331896064256763409282507710414758365440126735947736238186346335317441017241903596040409779297130116226584128605480079188311249954928667960509393881043638248475668654048726442717140055638732593583821116304698361873351997197239536474914423996554880427548440614902093500465783243071599052059566820031134405862953337408965401617584819385087065186382540060180369130269614907447282809421571323899839487449866588538494704553585029336977580579656702648148686351946057182519480277150176123895255529066822606830666025381385510324313583248114380659672139087785611128082070786972609029879956394992458672767354531336753824234893588594918499235982191234290326943832589277957680381963711135983871675687449280997658817164287519696536602302658474360687452539233610124020813593762910533640521666793346072615725287734460073893821874844753495668127425162389064509791413573499656874818948455993059816681665791257886150122430707940823363004013415460215236154053520945333108752261546489859239819573881328032132013670956245166143054828556441981179577923987851163116498015620248908469003549955877084894843138392943998982979098878319909661801989590891892673788430854028914323151525735900604616827824230481699537982843414680024569928258746440207266231038421322876943425999276025858682921525077410954788127403923744607782291169360906644907305450431558639510087745466615248663057299863421278893287754030761367544863021597479650978659259136203839461145774748365983317228597164161398562354586358806420627992716107813733781823001619018248319149618872602206231674703725736333932352267623049335774065762947958680988145338963125936109876176916431445269625390324659289780431455873520989003905471407538031574576147576684265816904767745705524767693914638123409513845778149439587796209985360121280664160073220927874553710461869408254537221896881900694608907477850506330243723527167606870556550435416735222034503887340989160685215511423170805695245700255686807795493119747295407358663942457321934204598138477515960459166291170510802856204373102203609937942188828320490422110159863659107219101035754026430011571626123067991201985473755001466081707636064011692424500679576064461079233571560236246835576119255823487117430034233954755252101129803192872582605482622702555662987553449039283806902027830478323528265806184071634417900781073625195890882259820465826885669827403995088321096641837226071103496444122540141302158537094220824458116385060904017910693608330418677209846681564048304669242404862730616915672210105772136615342507813062474122298613960871068596758764498511629080484589463620845615345322670200147659927673448254069787991246468235100084565138983035904310422077731551716616241684384720160486672501431449705797547455193752753784907113671132991860686885711194918725970187625340129791534367301123413913578288636191960317226511035990779632571846761825289032215849209785233502277730693035162660638120636920321625843572779819678307606811776527069252114840792553484582726506442908734118079919641683659787645401647071456555596720435588508673751440874595409658610896137932476511529681842365198602516493792329721294067225424771628227844838120489836981720871182006861865639631639912188068042720844428457418120505748324584913817015074899686265882409765123433626266220186768378354841248408198716110364140387360807761311246270685643620957422112513177729529947844605359237996103553740386743082072974303465739303976791118558330580104531049825545170425982512677833007833832989342984895348143661129799762790144354620274478123703250518721524429785421792895348257039853606153118405676813713525820174528978067929557375826098278598298710890959389663829486917990178250735929115498790524605167664000272349047794506403328881099440910537098805046855821323798778939767879857883918249098341452693166531980670106188576465540304429306556034130352206245549083196528501100013413592931511430488581812130880485157966814762442023451846038964399377091387230870969069159310830930942083868435733579942225129325596045190029848339825539813400664160490717520533545674227343065760773466303614612503115255249177766589921882596803704293366224354631940489424240972854902202874300329013118148067115589691528809272466386508725450332942564714325985231855767281443664917360893059749142011762869332273752040168624191226294401071878080948135737593854703353130521696005550481488746770900852677249787023014014016131300960731786346526090631957685452791637593948514148940953097209354598475929649108949740064035173927349423083770204407873309532778878442593347681075222516695390086220458557375203787709714795615995682762446613436562939837342260512457927037770912995927805509734925658577689055118795740279099906632100659630252996287089120304194905897739329411981067913681556128176459155449217414198000323066671761237455714692981265608081190040534557041296592015916400811720793086242355931223821475043588094648897888863123327320781902451914588245605834433151719549162404640104860128425561617232867346826455486060455849014330160142280380190492500135873970776060974544640897770741883074498637823750642388616218990705560737978116171789230807993027118060779795941071111210250269725835406054230710528690718962005495406647393509176277841477191858753216017317779470971348453828961961777247177969356626435882494207324938958969408312760959915042838972523493576030471584888314029058622975248590729500149462684829568215553759534952618108716774950051770185269753869028535933376916646507574559205392185200047441064903795778063956882241006277941047456553058609411510293340608034472259141540225328917637863682201572477242338196465823494587575434145565579486594086985858930570404111762682183034914548088566192071760633616603289598254575863910406324688304053344947620519516591051195573755338677577965364141342589952628335165081939234238318155405015155621323441194433554904039170399689248219737626959747501980871197522586542121300684315304177624169869511463777370187454044214907113889040067639679598817137478729006586543350858249343669730599557371856781980942110728729588927033348418429790295081147972425383293890171190153556766399326689111786989943371698023416361734625171403147147261914339667577874719334120249355037679908259928255932139890399135103938641929135382323109116783182992721455220764774167708052918699179911380225513509495703436230791762401885553044197667992567222919981790858103856825367831750755745203426261995638160147286163203363816108637360525836847710792813490666220497596707949262631831925854264284811258034483557506812642552172310509056654542111511339158426366919991994870524758072740788166768847551981510020625737752462538432505101389552419226412895169250270615307287490897262729364722031492437629877549672398138426536356803790403391072211903975750003726344096620953705316131443179571517049909243859932040685018688605259436354478647233870798229157813901907780496734837585654594897799256644842681088485730145470834872996602288108725597109511705000877782895797967319232192984131097860143896823367211397073318825445369757368795708262931712853545690878435046784977323755206559826548552037414488987224192157658090630956288753308390613208714245546357084787969901689359987811913603071513887312840194266852737883572254978800894002900623756082597298308722305262436852252301065747737840666750152210479022044955769423830405723468924641376430510923104508859407550230647305578920589578388410463596078579852767716913152503800560916222142599580606680826067543786499550559684584223197923343778235560853108161937309973606858244571909444155120303210525415026746909060125100195177175266567586974738460640991656442191133383124668623552741408412566635187452012298884778807404830606662005202049172378576322010605470675165958193168139150624229422115742011355315915954343030035400466248284798283980336922243563072599124372298414470662749665674430205635330786705620896889978222876497522182233594095956002803237438443228089944695338092602954488284686158066518383957645050104719033176834847887399180101752921031463169558966537588162233258317446613809865309250019386465710944772371463944442382482601743481544064277857196235413079044898229807584080708616007854160089968048963443074048830758724029761339562408557151057229714845344946628939179799592705482326628358854197975842385324482791581939966774650410408468898066766151892857113375193700319827444740459266520829701273347114182796439893350678687715893200433740056077183464346224059912800771295729592376479291876508421166573105564162723072191319090361927044374143040983912549980603649745442115699526396811344670868732389012065077019051019326521863575386442289151478679350704069080407235317007181307199710541937079193180686460828027941420851935275009367748567143929889689468753979401323640634813831898982332333801211031786519493662179672784398435890026948764630965111599849582289195059366004711389071288384234518608780330763707652883684807831475830799831207686927178430212793177974986331257178373358551587863594610283767998940720842528285429657358625146145535305415438247447277856486776044657425985812959853212645634742395386048049052452459245219381172801844949536254051956643328774008034102095171163703263283331788087514852268088449860832489952444132473663704479875991678387058311246665336149681912942555379663922375992168786017537948676533963638622741664569763738583834141949434116871171265878044724439469449297867641940769475277630742208847120314826877534054330293260461978999129365243161918898168924475534219638989223051795859847743384183356217343226025201170801264085355377476987740594271731143843169005467696794830021028436891665289898840447995467196707528098739225103270380030161439037750271613059460354784243278144213183412353513619172521142653250246080391981117473390050246359128442516875744964484975573898986712051682434938681974339980900833586129672585373149420853766084700755682434944164121971343823499434999167218883050089682035791850760896569675080852234708571633366560239006935009143018288029542397154232195470079230559905691726841443174207649774655343626098261429785507560423517184290326181259349982787172587469965775190043571145809257190623769138211312496855541886694814791122813634650991609295140894227116826444511921180318254446404018697932805653692320682122552990321131972283084766007304624977809564212106250443877117723633763813805213313156085555441811416423552759106033319885987285675028715391811108875394628506516369403909812480950014332247301240496253464678414777382165248662613630400714901169532694577011365670219078644676850486762189165462667434248534854900770093487780725058964294733234230215190792645147500442199121898935857990522666051185758627993825722541330020762176760456370689836516335912722315222131985869283453316785548870632791160245747709629270357376318106206559834824948638749445915234790264147848935006435017245774948693532010766966547750703584658371940308692985600000091969954490164489595717240900765065477653821800598359291235470688663845985325034654381475777189691789291832261285653574744822024821371683336495940411674624945850551783878178603646584655454771193945882071842226457913583023582483394297529284082924784092847010300994112170157986942615551905414957622376666321706607386681592235276159065402769206288541128051175022601196971540159491184854413590687471652507473977988038280466522256654322557355916127034197674180445683432901442111119564263579417178696911593027983521457029735134971966796982020153411121922586368255646504726348339839154500819057423333146566588151665228527671427325000117840438324897275415104144073914677840432048101764352344165575507513610290684132628590328542426432189086613336241588281680193681731579898779176063457659425849904720381607276690009757411738790480814972918356371004767933136513210455786849128413357920341252194506152735304164766968423687062835079900732479874059868873386857393632722919654848962988552791060474429514547815932099511910138093950479923675819577299698936131679508857921349596760571973645789280068223465401584982889039118575048233100118394507914158589542526433901286734613049792288686647574624325761694564979391502269001240793789866474230740357220802146031845890063351016015339502032014265968202696939202449410019005688852074100781862089251158498797280226167190531569896297989645495633605787160023998323974533631670491354591952361144264721936785060000405116367203474273342517371323259251444354403891349353277962598280911841405850198903317901871839440860006737287963365042454448661811769404824627781453729217872323142618742953257016818737151717898641525822378364888571885346281388232063690675080203445182505333682555493649652957273299100841131822610301588685579577260407447535974510176085733458921828412090065341478731806523662241587900547261876867681635732263941083151372880147029826502709897733289441508607167019367957515728340338326196491803260781344413607138453191072155667346450695817188693198525963836801620907889645655569091966833702955395599314646791358116365033635555461813626982671841674575527182817759698763016205227207370201720382951433196813087693492387701854615419886595716570973033651094402334095861709550675758015079098039692543187603650170226034154143029059547270073109417872577051009883691634194625576847404718955864391366547238558484897346269509533706329837077744709715101862263279576463434128451161788898212080033838015884851649889675560504220791712602970334762486113193200257024836166907738751307211136771750726442985054972828608626349161043481891534743200715522203130511034928553958175907596273800561354528369434957346884678686382398416847652542039193908809474580637948350126029893416135551551469305510163196729206929703204546881362042120892025595555231795104414706205918921996483276108583021471748514741029539850361185417677820949370781712208790947828558894960653026236774537419420691758294854224142303509336320308222293807700813268225375019891128100990883132120799073828876625738944875099033251197669557685816775286190154861361629604864122546857142596836599600050188916497956014176207328604334522719617970422472885206699002278078065553729041424434758213337805217791619668201789833782994198205316506817908032966992000516227765525250780466843704907115442786595892724033187816010971030786380764777674967348009678680138208326483379355631815493508860272967252825062977396879669184401641439342330747799667683249246214336853180293964821740117643863211458802741746990097126353687483053696383866229462908805347053120424449028582081102275361439203641967572274369866954405263204125637563997345788883111642488032092464279055856035438012206583312027177126287750110274985240509487172781593025783181360774443447354631961175310908213022163529214785458449964275092289577992668672409370346356465025536119294115398476860132560488510255755695266006657554354669464531790751614494072873455958999559158178631942829991033545661965675254845620173208681735622473641651191647782125235031146585213576099431693386465737232370823641148758814114399449186560562834056403615224273955394748410819323598707441933946017819078977245170147591530899479211040077183705537493863801928844203046086750068929274097484989532908475734202707529515604288253661983507827133140003352539339079396246861439538310583674397461380773111812512006569233285524874276982480568030791155469092236891350553116882815513521879199600207248820239413694675898968478202957272853976140866057747209128709491616038978309822666327317306610363393487849669493904741502473898620404609472951103978496834973880833292723907959090577499796587520029541449656108380830500410349560408861095148797770427098287107246102430352118750115934689350590245991657466970376431853761543858878683307986525946053176443172804648547521925120703213544078080704377887043569815175408149474691751248567454886986874174794365302354204900217541545723287659933491152789870926264163908292511548947070493450230769459110969135585999130357689825041672340361957230116909894199209535843018682206571930611622022848432663526918412264684755522317016007791518189363407718343271377946338382130021713515712552518703585238388742229883573097121188422980804601042275382848967209054005462685616530544596356889869220748459993517932182611682930849499467787526758298412682349738413247042257425566799375322071923223353616092710324402481056982853516445097355065151803271217016852228805363892419784009376887070582559450099688281649664813521578729985217075729867546857610425601934459970147152772385792041246409836668619029878372267886649478360078698802605872303593369683330108626925314409629136348076825597488631428116115006101885659136850946959952655617765835153085845550183675589156729155420469927225437870814630502760784683179713852807806304086602810026166806795033432344708754158538865310756538434128097428296308586661011968608199703421496046940768340225713723015480329889201986674085307755509537181842045028481245667341895056961406553877519178043738608013141779073548865825023386524003199078005047256650742112737789718475695333198384239545702109791082466718482865226518379400008236895430521694243388062022503228470365177446563819994758766254341339288891447735687255742674806770996102361304146651634577428782628440213366451827609190289329610512665207444872558173858196988361300751255468380667004127976691700290090652398354824041071767089603590547423673952313465109827816751240921291789136189117801609866134240793349931104057237757298759551198932280876138495129113585036433701311641939455817945148357331244551391123841179782094016883972403735870230837108578361305481746406162623627977297130265611016986288036846873326363393390478070856708503460298169413055460295059200138552394647028534593078089866310383713512668835277596692099839102792824424728816014426743332985697169827379937456337498410937999968963584170178212952558748805727935985503557116756955761116867090589796664253378321412049641442508781658179677931543236928193591292034059909559615627854799020896912342728043346201086101578142097781171608121394538633555035006580512603509617354823158020368647723602470255158421502748477962504132038855562893593160946591572816312811347084916912895329382648639223665582114110407941842403314864301334136004949087847598771726253094646137744215858110161829548509440802523479503289998538856010196632844044008133872149806606929259583395628711662074734753265316745781375127579937929591124014424938052368351819999144769079552984997345050459507268797388862948917599087157366722785092398532765886172564800645861367273525010384787500592537688237157417203266026521926625164723258917986010837256131475386571656890384650941206311170241497634247499841184648897182736252938724528486720007576446274641618764553586351908517538824374888473209073443313260043949399198448812050481420923423627543925495495474823389099079976844424679961109692374321703111626166567136950346697819796217291223725028383533230463951208212411836786605561432722050922405354449097629366617861934141893349747757561919426344944156373255356234520994217142288216325554411460755246452524655143775323259374148160634890867351970862064079430846455235121356319940192015746670418044492075671449459199139102011852755437057340619360062814295355725919192843491161969784806505265505173266828441841194742693678035767617605222253976113907598498317007734469767870656782065309011294830701368642473052797506525820001533203170026945647591905463754609088755721111272060106687967526296775198263008732492132150089055801578595964478948950917569026841129311248326523491432257997606129441793156031845772332903324986525992361842579926279162986383617685925321252631019764356728131672128244659168106737925272093331889855852103648773520422498353889350585045872136814489728497195914690632525311612464306899220615525576952014255040844002897241183406275727573157468239010543698443685251016480316083116012627585095737478256942662975731604295454161179788238945341795288488463024474219112882974440237796481729131911070879967372199581208336776788122979647176837416193768298463438075097732279145795239249945350573330047912912311773422699169037352822469862787662866757496883600543069702780981100530574456557735676413483770754805076352111136233770480832897460482735165387442710431707546816696959867253761145616829344038067456218731805023771750758039808025802539545447542286666128105273469018442360422348424189000697767583037658035128624469031130281101759276702288024155687897692924357096698228188972238169584825444212077341831444103776536774339347322042521386059300520577473560611299792607425280190689628865182054449728041312436542216204132477010655798846345631963791265993961166181096680510045912928392984140699469581021852438998658660390414921752643571278267242800792995861447411757471551639945490109826852322256818053183377017926373925290273731868340402939928247134054513026100885123000453653648623505634594210720586314775320225821540887833473139648082691967060761404626465714512776746445334883683260162799611214264824422139823993157308279246793281652112236841049080574189289116010106472517888910939587938075855780659957170451946355460203101340022795626127747858332316895717088603568982372328587247207590869598466719470194368702481271250646513518725440179198459813086181634897941943218998954143539630509227625456377477149153910401461765137143835138743354423960513404250970132456069436404898599346679437290040737325701072712728451270022898795640947428148123480197304968632622866850823535393399255473867944816157810840702499404427129978165735176605318809781007147093583728957857215655502184265001883621042207032703034408888189687400678475819026392459351398867608389674247803323168858599578237991172939332761796017856919391172017404265378074966881975028101768958173608459727577985693830276226289358547575560525184948081574159646723292334026448800056979341161787229895755185568664197740693073290514402643480607488451790110105583966531488261624148072463749543279263184835543462341171408212353152484792742408440299741400055959780760873041411282287190317553156386528415486021089809264625795414910391742667768940183354659113646594138220235280194111602150182967796235744552211444431105486914905594242741255671735060532778887367816573907492191288265037659240704885457717265875481852801876124582631848654758637938862416907666887160040602858957122193172788752801810740789740399556470091589039025993162267728715943202491969283139883153182511229132634150255870249281185313271425296135584880070254424722037881148374015404678179458139809942146395307908470762285131038409979756089833752405110201988619183057193737237227999277910464372952026753607318630718877426868372359260147193114819581919578397588139670550741701295091855067348174976356172936898653283299903788182596948359104541582769114844089889283396561251376197197917611360287161073062155013049521389229964669497489521762636608206105265170294292875816672478176138057649569230090250129942687040884760847425657591881486078400211665917818942514707600444941277253757120360540231341960385004223351117982618962360443070383551975286813072739639808630090320367703139885626819725587474997776335836398959290248833578682472594860088440786398074231901191377687725863041049486018980729138362365877987869859111297961325230027863598035345187006451633916047455688688435937715753278723490554985372263516361363983645407926774743100913903110134528628756418855006906671693894972743504800828173672015949730812016665493626870609966200700249491602496727757748735690507260292655571729004403122803057226482625286428810968847072085569303330401028597244258084264838785753382710357732225016398428047628553190161208470765077469581406471493577181906688731802430732286284011324358946737512079471715831855713945999300518328401206137275022782029198583553812589782252364702045357436082843715565640097865883276317343914648841698476512807380720690373020658630027987194626201217760840787940591687672675252996826378665256675347488276922426103854510026164146365841296359522638089907643867545310349857703356380110624037732334154146364788001895399895084278489614905921464098109800762144642677234240623519494017355469837794889769039309650090857264652127177377949817942731050189768419762200772044569443583768312880128815271638460439646255979899085866547224018019236638361095549697297891433519201618293158974001079557028557958065093254236709042978721383424263496545195992681135416330861164113617772620529472954320964138458981865790108786212093239357133007941839074210445946727906424316854079796003161274968955656875973293854750071736604550125943165948677081814713421304266281257797960536192589836871513246167543119143744556581552661048579744405968501338751834826900927729621015279410035594716395530690508645989695542223688058948413256583059639840316314798256010836587506109241219092533425254388360608425362637367083983225388576753072516495657130590207787854413363850715535053894155371004446496843292154551326321375307742264359966807230362557497941233144660140101184675079518525076527556040325607999827656011235740416715753533049128288628058828609779033217426963058159628733685068818648209107161426988848047413824923419279194206340066244652446490171078523361478725005682211265033743986712166495328797928804760284333965042593211807422079315459839783591534092123322765433321821950167571270616258515493683070555656948570577274091765818480425188535551470442300442098431278655274934007803715981297424789297634075056072628748215439819523028214039752993477937660321361904728148102383056707709507816041283292976754122285546250558724014790671405900263093470778959948881695460152141899207302153408470122925644235293505007285557088248811101142348401113109485105532052505414676110919477735971921800791491456977973979921530417180970186220385724393680606878419768474122515635743357426639703409707318213886582045876261689063645961108738958944654204894682312576823227751577761595716937357966320245612437050910652965023302128287789323701168681536168457975735720193950717906727149084953520741136996122997395641230483712540058584722154398752890662959590542989351348954965600301905362864418439884295751929551572819368461485487950326994225155296555095123336719353042340816139657290434411819224029700615846289864098659706713356172793346314972225871615934544640891638637517014685954001233271762826255450002674793821662465349455634395173210382448600732108953396290327530721866571800589583655479924628199411329394387967270885278835422590563973543416853787574625526311472379305246725559372866799710205970428905007754591656360624526661348797429848768108444569846684600656959684461135343676236956811351143124238386080004173849772665314396562010605417241892578339141279547029546537453382447732643592969941230119188627966180490245090320358717969243250961804159304766844233350274554144880513930250049449592621467248233474279986620912648381540558997186799523427045977624045388095376352569372658258385409796538533435512611412688393044001721161736114191384311206557033449182114038016381763393696857913707704736708936574296942987690786707437275421464174407356284343246196036316930166380848673854170643656784896983631671467752388778459416542440059375574851131775601931764723542658120618054962080161006250129594151397470487014805238699292639781662556783818030293983729403507717455470938173388748057901708347092637825978258860123070913363750306235751954434405045295993481095238776389938481818101850883079877883656814586731523994306319889380686839425219252884946235487463690404046977539799642975469116085809300998476166497037223323361018352941808389796301689584473581212319400492775380683162084063967246906322487521980566979716018293010110416515716223199467081899279287049383797894028480286901690691578719377870156364086325596275807474435508103721887039139705702605715799235430500334807668695230841309421779715317750098408073811371789877593708184672208816038562026277743887504075844010951442305394237575998306456219653167602250007885735043112100940640827083324108144457562864306140149833173151402784462620344014933259015290458448961114116128761601880832611959883678516915807989595560011363318509870529597482145436542765213286621172764845993186577606898997671518940160846981251727567035442564912010981039043182483229660295297550624052870812940552210851852218356017568115861975422522487469239204871445653139158814824431527891381100987711207281179897619195285329922232381259459652460096446059693598463276071133642138842898806805098376728598633928247201331758734205064244377997246835425079295538318887047785670435700712113235455268746429681648263493507337486187593568129653352382825685166471011125428519768631654477437446617531959962230909455016912339422254578626318838188226368547986135948469250349855917190963900867493389298058458997134162419986888170149047853813899505544960377278451836225649013090700721939835183027398291159216434813938053236249342258613103749324567133471955762090711127268281377910098174471660043811250097010379323294390802813436443283902450124471869396248755118223290516839487057119628451682291591213103076171384197921327068674072059193157256324608549378656126313781585847743374162568042102829596659251895506194134388180745777618378020678774145937975057706745868120109915320395848815936013674293154322902959136863041926501840540521065554617474188577973477551028811597911584639952076155427638738092556826350252241856286580829293602970321486059712252577615566790868380487707327342212243838162179317242928739985677596478652591447387143585507670476548004738288867413595058545306854371237554310789714214408390041724336295631175059099576749910183664386961949860580561767026344930010454528700813583048076530843202895808440952082751396678235168379116699259385564473690762654397044695893282892930063661376949993106134541224262891599811385060842542826787500591604513245332883806029572791127950290821068514635342048340290469452155849980415654459269517017783086049628411027665454242970714017254050775925463999281115792781664638752770746839814543933210874517320008380747878190719984629101725213994682316968244024489975937605966692511619862719396679883281928579418139668638205010970813775840964587657398424871124361602900573677551778609069454287747711339204800609772163180910435181809565609509074009168108307902683329239151795590569692325154594652953685605318830719186967212841224318087866032518123763811700736587514507124311089377653187163633202796688897812762339431168061812535132753920296194076593979000795579638479622643012766115115066671193325485632112475136814831881906186383026816359612826257659876902254821785345372385604697869141662570432965471647229614857016418749791310248220652960530892317727875746455957695601137530178645664497200283309132582387736443592553030551045881637641937046835147585647357333344684944486373509935360903413172980614476950265441220575199223199802555673267031174750077224093035290259682680406928065077598542754283568508378142673852084012033247171005073833472838550111527387577929653445450237959888472750661530247286586421240438016357880589192444858336460413152767060888643432290080039664154227260610692902051705718329395161024722163692020336580990626271493085340717291623954647778838921666860515316731828862984266958455301568568539922769431651419251894423701163334073330748597243615584087976776296128313605063440948103466375785262133591184743949294271270873688422391657588130523758085026164106773446844372657762052059486077550387152651560398914490347476581566945551202819368170598616715807190427222310111689137799526780870148085758532050668955734575657106220555753120725355324014032752806255052236538400633226425148836119358900738162689634099446166248784667089012130664333996755030729358862381956961372372061408532616603664942290261662425805699179402073551152752458025521085358879295284504054709522600151123847700377977385847635089727062716904105132308831679314410230823226746001131411612779194620406767563765708256845105070909797519959423297706599281332165461058072798285687147378662314094122744265233333330180323107380447381959660290789152634965966568140250389391788234965774720835096998428913767504875461642217117245600816813498609593337241605672089376080123513740380366613903144679301889712673248295383393014305809613666067664090557026783729160273541865409019620045070985002513958053395912337996192669588879674152245527331679059513844515581788755988073866124584232816325890909432427827044393811100676038343990395447859368847218280965428641086849839517342577437577160252928368895445510105344728788145631782677054475832668444702429328158991569040088960745551101139539823200672921456563751232452583535802380616032268322835044919145304251783927980956078833543960388215829966624562555032661657578541791680917934765197470777736926237187949069528605425133706971724842087683890535971192901225278746198514149791424299030672174363126552440669440271569869220677239466160652974839613793164215906821224015783901051406802031587693391948282498988162370667020312752263924046004719462772136487076091451468135740613806795388545517435620595846954850412968281300058304445401357010010742974863837105937091746101905039753401163334383727132311434542007213115794876068145766759696252870518915027648177215870504255438022777979754510652415598842957598082122360568058420338372489451513643957144250898697765550301999845255337859937258223681993988161971118915331323232949795759407401574178161174313799816649655691467558849441301873982743454132994743945165245517306272852704351136163109280326576039497927373997381231559526222788936775293692095415885097604546509395572278268287176371255910918421136897352157927115552175543018284405731829733935741145721878304267495616905444304574643404001744129221749014018353265121348180179223260093210592696900892374704889166849364527438525861629758119925291761347074345567905766520607525924108568990750456272467177756580144904053227909674446187787989963667826124533735386394735064060442529664247260384787608646245892750940355011689741822600735754660487706288196543223692043085463501338371797645020962533624343019306941030994602313940383881846261086610455340038304783241549174752609696300372129427203481197145881897369355807438257951765182145431436738310728739363969033980879687862074045099167635475844470900501301820847536443372768866899924011095736801592494320848763264736905745659274444457826750483213288310628150753682496651427193590440020708924837788936286005653496740919318260334327238070844231112816327358238103375851112749371494745964496541441807401597397927132994274510886350858210907651044280555328845883490346027436674130775965417408097036734804984402550286874361867217833548323208654198999613514093852944976338451412374383036738362274721217762725249992540893351797056917879325492051366228639164406086122040358620699449538080907517399635805352895393293917786962462707465457221553815159801262354797395106673794793583885512652790276597911536898170289568855359909169315817780103132865125020926036099689662451539712297972078540711598108686965963622074914715816137566758878749371837594923908252665158173454533728152024553598092838973170545651158137161712901663429047061359310390032056568522864225439649332783932645880321030819769368659612235278201164506457029910112194002459852468704830733692347288430316664720983490566301207410841738413415699637754852175338085684033511182520912731288287175365885791148893432811100756987062592198364183040306911735989291627174628705213369546013135164530725512421639630697513028806755772098333335534383241152027013938042643894218616698673450775405811017307853100257291824318026741349370112525293677840821435811519599239132763928980391221031195132614434575891948202803613753217622685609502979055261376656977532777624125033221468598743796296180959252003055115754216550420926468015815379049725039319701080811525731805334681488734653894664364433655726518732040969472268262447394597870270659742489651471478097803803849681323147882314926184161637470070986051152848453300985660080340969055363607071943445441932768163711465424911740718544930760991800714592724486582393163918406128311013257798161424091876274089173230883001791617258199581759136792515945174447433806526030323227579318063509768664818510662489405372917424891709032076525347720167080100266535458049084365461445559491434521042225070811744152930098522854886252134770824210913324718861372987847600881084184081511268255518746009573572399359862488666051385372177608587362421312385607022642105365048279856407117224636415058696266622972395395858757620522925904016029873290918373632746658638903929263083897738209454195936049526957830512302348799933138069268982000377940300006806251194148083041624545885338069669455426196262345602691318048787716035518388173258465555897124788231959443234858990162271244418639565205218539542082855148378906168511308053423794969368409625227865461695943769720856465384029830404483002494459305727936217113936945223961048570021961828178834635429119989947874483468444530139911947052020202407358139716891771988267830148416425303187155871589246047640784206607096546202406568078800515632715799313864742403514597499348735142736084191246114100429172197410828116242488012431766870357591972310267002782808769653534008278039166888525992929069422397880492835096815998910129928155737167975440446531585298131320113580522525290851244057245831243384275797742729968989863385966496649741429871401059075737742510912604104497737383015097322716393900329398102687967712213768106089462233845786502969564635818701334623074767441303756376974313340822384490365050514179963303149420529861649480380051506743819242928792774085966898575218709407278050048489947592136910901482995730824407261112588190330962390070834631825802366514718614841841892626494684197640982477962771765772676809885126426818141249655962892893472796506791154485243320728128436041996951269283093185241930946134638308125781729308817749245497181845737735899666748133781122976329251785432974905113958421764621651508423139143565955365973289883226619769773490995670623797007902356761213266972653478094768023343127087023049052024824275004948647812689205458929927814046974454741053452473842147229430503237602133363550053323999186510276978744123018145518922622491987153767265263466726204806571099638449773336457049919624324616153677635322024272390968815513423001232604536957770764527804462048795403543204000169626740723694981126844620997663650737595623669915562652309368277438161852222135638301171026121122974144731570524073229183055822139728254128658538834746737243135576954648933674966583014286706365420579313658615822011817071724821971514391454710668044380402517809090855449355405413177435220817125523792803097565130680452502989536565453777180002901314253236973278604145093683419101007388624032628116478627101873019747738766935920073012725246875798999421828365592539543646911460472571815622094703436937365678546868807207074060093625647342991799693419600875493971128735726361673527798723658081892556735483907509403002588927471845187534162266776693432786661248279408389732689259409569819960912239785582485776655452130651621263476684209922112546988801506266540244526569787149404455777423151587184013115562884860382567259064835811096440370701536597534326477633327622143814067274698152345690263884309910271807508402154162200499169962284397580167413323672634992644337162619334195976768492672421296670287087406554526987613254754504587227479355525181504981484609961195210192583303127403245273828575758652376411698578140673676686410846650616599678361766122119237908397873139954068837241851799817854476419047359498165140278881506848349470767587471607989680253531472485961708491857583899072092293016194208370494302511843231246106683208539516050517421089207763075957480931124277871691967198487024756501915564717109285918016171565007277964628627839348048262613529688938222378349245473738719237448749750012198209965924014956295090564185878540558808403470731029713373211336931747465202944675596027711430537062494524755640628099567111274044446557231769927477457387207237171981208994543288400654302690267657165375947912655303752981316711217978613834867732770502223170621164317778033458384531676611358314282244044270039700653857864131277121284409859639637223921670552461143120480031083638623526439958699989392280783665394319392338999062803374269708128437028842956690570493292462807448509314246824549414496972797323319133317656166763773508421299527637255057647148083500720631389443337188650495364836638904698757928984728210324929431242249779815135392001733800389646254529750978107863785699348369293768908876943527417891670994566225462975901738197103150630795227979294632045178743733306683376163392594577413440249370115576481851375233947768993941906322134512376297659081982368083217388273574822148675205081736994174953750221150062312528315364929693621384287925632768869441664579110084155698095579060526811930730669443424616269735103560112709525932240235919065943234347117361213506877379932634860367804064486091859965992078409233879648050393945408659449054326152995873612578917196411514287914813027902739052110702594685429621528752331026037869793871090837373703071095698567679486060378935221906688225177362773805200316487460177412294780533054875863224807396345975697631504073438749737489078919898813363902552353713006692364238930307411799753862331088787397124415171152341061903974591065370278405286576078269154081614838299148031906458761798426969337269371799856745026736558651622173589636954875985001358817706072885068808481056666871138145444693933502064125680135990883810565147755823385793771109190373809326659420977143736911011610378807037219380075014619952132421643309961669517430428671055410409940543886868718380266140701998505565214475516460127757976603652198678993959142465538791842195106251536864528434507265861866091336473064980395813580502687582469401274862072431010738888004690251743558720956709787296966301180592554052718766156527624179867027939830717229446611919183279404981976634076066757271315493992524247829802393450925854940541776094973844915688107654940359699704866982928765951827893063157364885333346522726232163582867033321628609190460257314463740615735431616641930437153500599123874741594037035764678735408575316957720002057353987966571472050103753157468586808212514725328132743321530071293898741687346291035074799729458299787254140163964682272350368716865534822135924958378622422964699758001414000573106146140723719381109275378058827167959039552993472879333764067334272849998389019708694441888897107066495719189962150104960517298450220187849764933336146766218444386147393126767824713890205229076432715547863974642906059003446890413490211879149076026123929862163676426825622895813951370856156470754192780718815999547685442970307156276566680530829781890161373203266271236680261319675104496937361692295836662520734534709316144018230814877706983030724822751447295634415916533161061137035853340596585962217237560773340307813338390506902426620578184547624535234450970548966023195560558989895909051510635947591334784578255646079386301667489733650923752698620646595881688172577730732300144029334964865504744559218826487449761842901179633627570420533171522433065248730960379660856270909647960587682225707156744707226193980181653884121877163163171489321934932198915370533230288420252339293603057651561381942211833995596037257237482580355469847156769616564724806584477680250595547604712865343137144778836034051116687152022841634464003141655803496509521477948653424799604472025435483793107709394136746280598050485627752923533486678719371504812503547240563714508892435485335857824735937421372325779450087789990022037643753870857028619096943012311885338620257256520870809809218525520495079304093453561052267457088387573717710974396266137165097034331047851124447403879348566455704679246434038083235837193450691444134844097364978876925790654560074979658456193381143511788408285886515831096858368568735442857208804793822303424814911362849570682984144321765233385744859483575997805576573083794049568890449164708423732529272472256029020484119531646470932575775276785913467370277592711882294905331450274638682942420372407986337480209510355734628798935143989930813894758114141348412828358127601298586530294591303148229555648784131607508704446157646059023922191869771849172152532857558910884021808486758365577289940384310503280687393128161376937481194960929367363649932235721509097757997940141187477871628483467624415720479699313392172607360304548017177397204992585758513296713765290151506505004404410562675397502204978943779809353341953494490284547090042830530355956715715707181758740836463901520783493101246209019943729355753254211398141118065251991364110455273988375193497529525788056007588602828094030926955004009904519948874267766271868959634682494853714027638908567612568476867457069023499620560287208936006294203217250442879800173054569216192927618798831826416344009518030381489555143595236327818084415388728426775451301893123058069901158253473510796168096275172970336071410691854791372971763807722529054762865999944758563008723522115275622352634304963356901663809885728065185334872593592442204784633452892408665866644781188323718155900951282024463968083551601094824169599461577666862772613441794757941463593262934853181223575962010013362511497120167797400397682306735600884137591411947410435832860590981271834318716907714559533218341557608054682183260094527595873582148071309368645335194370013737123607315218070352241877978085232281804376635928386085860291237085758039914171536072118456010583596372628620200662976945149130805492092387449138415517659719923299780218307826497997681847228572587742785621465539439404582297178849674292646129786048377252227532750374464593377386355514588624067086495994807364210951580100011343457296656865224177506714780628607894718872634465382710879198201601118437345392081656051464188414438167174174049248467018157510482569202274289739328109764344110119904289053913826916387500773191180333476429385302043013970667669065628938861724288902526729242571696245704033666921028688413152604094031232836182528918459976501144766024316475895850718502227868780801283611231711302701426546980415382434473061224300545989745804598893835760685106070412381456851790461792372052403773267972152464803750453638905327772928008150038950684153441603537281481419321858337431702650873017191668170128613959017386878020531258690889833595248124635567631555533910376354674020111163663865314571851998666386630655568744606930415441957111703550956342241955682606436170270596931416239638642273863809077314972164612701150823745435203194664458642428608718606345216598684243164848673589056103739199389358635676881556482228705896880181015038208071266074051240067171038596754792669930382879337174476104381601406275898832929102154515480155279424762207497431235535330094112049667850263006128291798266500014060762739803947168110668735987254189619926471842503183941563378921080046323939132601483574694427109595614371823557332116834991556344823245055659242091997023546044418884797673245709811662563115917567584347328699828583836645702436855146158404710493063558581112277613345585494867131555054857800617483601904205408814679647464465235357444278228014995355371220324499654009213662164416579468932143794760495034442211651457196870542586361502730283224573565484884003173090176004389257915964320414353310342283494116270953150796562367922571278402622902259887264525920028242644362849327122937262289924698006693184080899238249924746448533251385119029293724427333021495242466907290366796417236135406583253189931347235647417421110322319052167413105836497971772878399011490734562724228038078536521319044990467764292405087672801026003096209727300330128459346833012625521657666357824310353068207510941909396411622274813958990052668424543802562291853431424811536861654188691859156006055821432772675336723005217301670715315643203293250830730345693907364542202162615067905621914046898491615191807318783897432935160304044561766457937814858398870963115667437234309660739001030561262350347005704749396280480537334696017616426649824120234341364640413785351206435171999023489005090073108219747162774351282351495219305417852646497660250178981341868411866686958395906801685944646111803620717930518802214668226370118763066569830301852656116861885194277982819047938870245628519314140284731090562660813944214144211389151914801755008012853501801862270903651152814438210132383040661921328459597098282438165092585044146073593405573667032134912713216747949442462042754773323608152991842117992809307432287419568346805421031042973309961398187473487640518309812535049493799140498892783027242200459809009274027752253726754190499257248673152464682125085808007361361639228835580913011805632298509391178064301285161012012491501908644584795173613304462673535361910810890361598430168727062089533105730178355391231482376144062381757225750895987065195897427760441843803938986009931982219200214714383171177704264356827709916737776872895456596484031765798487566997273726604069224735260812130948661976463488994622523217021526973412589570400750979071466714738716832938057524681634976299518657333517327619508752883356675343583915090814820481606413665751861907561918312312720228396020967510942224005478426460848971953344626796472287836805454877069995384465295612563260757403739198548460858050844316120948496401117629883013201529861283292631614834763634188071928464193515750081474775744890800722917148322147744467763077987439363843450483722490210454181524993427406230779091887244307374873334870407890586895333243051187124813896180819230896788982850196856638685159139483661520418003342730005206256161683630103324305541717406647514825935167169843216759408300559605397258217558009087637109373986111661073430522035466094956463240101547900993121453812216666545672028597522334671996519060216412426962508219465002892970498765654443729056793393935358373476108945782406351561130678644974731794695141240155040807457686378395560892127434621567149943331325207858210554561958710135719042925212698228123830418567903176987386719975255838599087386654395158107930617718577050977851204522136491233833653069229553897912444089956349266847673549832383036489455699701031187498188292739530127876734648778395469107942960855583346958137946228204049499880636529261610993320021221170527680878163988908036184274022916106058264722634680433119842489628390015926268955355114616349711547505165302332692339466118499205806799854306381983965889385626863917758387319976119295906625865219430354921311485812476403795848388157054787664743187083699535226086885752136184292476660011814358233431331865588005518126506021936463011322361452445732372948678655467295670147061488039220855093716901199358421942272782666443268986483498123452338105273898249516815672910395245926329307356507597746280999861191143446167323472511297627074419474586273649212265557078124678729862346220377668675630154171484573529786239215118549984896483405113971536751768302034681384634005521137060691565572121510970182982017683205337492638224690003080542076131726954289550239426977471876836893129375113420004908582142876543138896209468162607204252721500457057576434255185044673751473203473863137032929324638894128624434624544324844785747826250149747363280412844017984803225588158772142969368807689710282051155365829232328226850760190209327578455293601182106556819415102506546361089569565510979176172124181347224626987509583039204678241454992784718362463650542402034890792574851140851527093079896056555548502422194364565209174652087953957907302796088820997091897710716776930133576907880903758475535411359853253119238317945398313636934799941058096930719791873174730198908009209234308715660772522553135315960250017098003619816389847069687873368432493129815475416705254907753701015761510175661950030326677159114660744954250272262116078804089265338921872009782613588099615141680807553442338341806548927908141851243995243749291284642789392537343760264356495663671496742287151081275556521489633160444829304235603213573695576263685112892201716648746351406108220372765292301430839082449177487292178651623145443194571568100440200841536698240842233373053528744563769020890122992182433786323727829177792590916629134892338065306314345791038034582529012978043568754726377351411582311202579927132762562963576932582275122560587970503605802961311618858965297120267440068092167032466836129175123497100039119341815050901100037640195717478076189328463446120275872727553872812065896244961438940736639895636724745806952532002880758994479809304408500566116477511801584132698855828124183286479616624946763208918129201002774336275935929633930194715048808937825709795794138063288353802048067972080070452305522143855709809764855797809018114775884454997580972209817691182319863559685147804103416671044199417619412336652133575012016917766216285145804971061389263765384029035191107303138181723680336686231415639015722267914610880468852172904894820222559682698552180908649297294322174616359615789122797911529793788419683934050481434003076945852964471336276533425517339311524892097663385048461442087456289334258065946827524818957037405315306100921409668859151762937532263080336526268409408431133356869789078067857972420122396507830821680632958925973716542844273647331626253756749860830238050746342467512236436372136744289346190659766495691435638603286930015332386042103548863896945546475482173463464533010891659605868558086333755384580407563437574220448045594229542657201125668660163728678473895268866532870634298446411917476402526809714871774881357720539339012588932405573088726011847649373118380378194520231068969449377526283596387311906108230853682520438475130537397388694976939423542888137382745725858195467083325451419673078935122492043819586940152463721251784522211023137197339777175493465955697804824574767363141144303278866076677668802720791910660772059889956243890449196704922909631945630771671605873085276298753534710730622855360883641754974536525160047033678025790700623973281024713849378763896815908179654352679882791009792227525328129004374781809839710622930688523464610309882236721791413466911325001786887210322796330569528093450897352642108320737465438944270204879933920720305899980365550243611281110736197594933528918864499151057638912291965415564823542317277800330739583036037968428163353255342099828357688050352330011774516958336046493909218230747684618283114698309524247391874617214202679836391364163749981584941007734909856478846746767684330405266172308168080120573141325353873842006673485297142843676077525371073303596504905031582212048516131993891078526030059023939444434138226682625202150879570471207188124189920835104884121870128506851302950065696656699052385167397550430114820121360124585173782934449139169638656207020889379573596065102401074717862648460692723434115602196058016385395459682018919049822344675648455456119424174969832463169931473730700659810423283493918219171322047337872178861239505302581589383299290081663389762364935662786223620720915781154817746939448889160458149983882437371286608970302493588492010611613796427968443510805702382049302929386891425578490847631776396074776331755604083119795344180670415713521845277557043820503587539326872535788623780601584032329449840392979831549993770006671379746316800568136187168966451980662092949067518151959021025617018178852792389968631850382794569375481960045496724076881177563486504792965887635694280535526137061394027751806029987339013764993704606808864598190880989463576388173142191671849190674692100048787610218381267971402006947204714132513523805932946716517388396882491572170317405812317951583047994429112944424701026671028488484887726149357293234692313941628062465425190106620480720545400647289924370446167950719895401609922958017517446445726358515882669915668169884588732729443348241470986204540939708673868523366431551333359178932613271845407197999685772534968464686464565801558118104717040182618841626359698341439369646580039748740301347124485555391887144702210581127579374571667600907356581417555664509232849481807846826455819136302566630468426609602014023869201845034909291023468504567798900037417978544317974436021512973608844829611788055311801887149294187902551395526098018135996065766065917590772561576022891467419745247996976103025068999844099691631482554553334355968260028297681892638780487591077721029384539911621837144387080987969410333451112757124656273854114096500128048211558738343775796567088646068916620164494776647491643461036663875261213080170936433906131189581809438522127944522614127016636410646773121485922102859064237065281560876389208033470630596483883788321171784471059185790816158012473461649686313231537520481576510800675980370500708015682526253443258016405836277089466420590876758532906281565412170660390481637164182273277949820672857735942840496032274051835728521529496496997704531851996677345860073640253560635685533044411089099111405506321797332541848533172821568464166149194866050414725098042011393939096251142362840629870465513725911874079077059643139638971003146001901743849293849113732338282582055616193163063197733844602890813422301024509776702139870380685747275832437749901236538653076929791565163334583877489853011972502788319881523349924802619148754502812418868044151177139371454907441173814093233448387150877533905026737797036501446186532021300049718666652324353245231419751376166813491635540187857544259677870157050864045571363104277916577737347763840154166654888174184292036706658210932877184076548674615346626302573703477988542734719063070703081024954741953163954508525468391389659179653346839428092005815380851261306020581024542181648480804897413375173536072299114066053376058320717370125156279322100848693813008061713768568678407410187434331573061135663095820586232782141675945125797749247361420668260393098941076319711513077159567837608986382903511943822787537575400279173301563287333889619140726003995672871084442409532501507917348806620302944460275729412383979018277827552122369838929842638993880580397256070792288249612016785278304432264857815197796847318072169080810777922285800220080574914673735307557411364121862332730702573699145801445774838231080190603298201080830957197748415716529679444726343127993379005716264773660986252878556310081647523786647199889626594698375076851838605801011781331435937053836804003446705812512363240779521910251656983843608524926172332698363135388907436495994487719230366132341420556673618390954237330130186924807051819614017891597681221907198108199200331991927755723561238939233174352950702481763819962638340537930781431906851987561646951781577007574591778297948283488709167780958830782784655941263382978348428972628600806936330384447721439254517267695961477501157755796581002736345024041567946152263699507126448176395338975530777063849223085991642113547206490285494395766976844183149425214894452454832694789090293912171034916268440134888334905163300237907804719645697430021082098884616715035954146185319527231843390252265169181405322182327685363887149493105503795066964670815176828195610487342338341636809890539893793253201834603473322230676673554193408504806274145966270363521029171838450197890670283022535272019706104425145934993736849654204666205688775289060665434952520513817513321451182631070536918529927858216058848638896784884233772721318871431276552508181394690612091326020530910876926488092951445150500547052561821792355478365701575393605123475230522904999030934401497043923487562186802061320277613835431803119971471876888736807568081073178085369648760052830962425731953281316303368039343507165041452115323980870984590451277005730404888388366911271967911651921837900831824435587520916701862480208859361323238653735777076430072793943419803282728623525800925275628413300559637867004680186958284485525930809482274907322957119216054001714683955297511124783264767019910581882554030066633869998361782165133702886655583270751839349723977400747071805021152839764420790659648663094411831571518446084334756208481878026110214028471318334258880650331510225689955565905256682304318006996447976042205759018110646207277262461998727749879842125155215275983029375576750045315161036000227796546556839373698208114183408102904028775286983876296635171938922462129135967080748496049135114715357703664399471518804829360013798295440748738829675319188001475886457013909154737606630318256047313206434877814314490720482585025125069691694428800497009359936763892305489982312542850718594288438891777321443753012471400293026303344353331400965598310918203160303729784161853571708666008107925270893822578070566117342744325792873886605416651321254271788926591450688174492509462666837123258943411280105501575357695108222744452019642365983733271530216111006386049585608043157880641037663150519417739884489151299829680794095958963109175628070594058486762835523958203794798699066474136746541500086823057311698844498733898565115223702937775812772715765844480709811959862145579122633382720068632456254648970440836278954368306683402199859759890295136120011970029952788772185295238061619165931329882020749504010852165142635500493890087214695345295811123158257239223969919041018656596321383186284336275840210129090721368956371229689393492102813717426195934970645323898070625119560652195932630755260334629800560316095635204352561759007258007662844342184788677150331381933067998032893295221993465427717106758102835049995616578154472081016047844623006865195906718221816752932298299468337648455952804414798081139348544929284645632472904423976421973370529479635202256411635520355412278244246067683753829201471953407271180016811892451937598873796496454890526495472741220228023941178237569757028505373981256599530465400606393972738117047784595894234949107666749325666424488532995412312181068045268087168381151113878394470453535195720564842555707803586100824321518390227032709249273427723032341285757049655712671476026288580068703001678786817420766067766490601161239720630494749292055959833015122864552314597316550803068360795519849170189223451495624868302595142366361764191487072308111965918060693948625757537337500579893416218160957767705554190595701563328706597286104986629129391292704147344697893832801947940256177216083245398112350485274087120298178366443322206834136129584740271613462650920656208349862483915572997181821876579143861193558808000477694556873160785054239721512934752884352836169485809396012198777094612526276980985018598020381103538635306634342604290421905508871305503261916155566071000560785972007633747544651829106599251802710249572296687353841574844604963461401729139422821485679886320231633450460752332280382976680531015350924701640423169324002090328362940354666766161775695886699810560838035535671366873089341632845962035709923480061493440977951461231920826540979985059292024139606017524634606139545496694059316819224980449323249373809172622428357396639533472717412903811858679297992193835845402324519165170318680387265812571577480778977376906350894546156956811577587635156736467621875187304382483147814100836302156248975330248480629144193407227839540225455738375643349969282454576531780290385947139537497030786715257885018317368307630772734407013311457242900534967861461041843303206371231791056160087872401307995163441187303343307917781743397157896453953133137749705013026686072920704762561768834420124110256548098165687087544781370147863054994918868443119028386522399169958794978438793868251685891388196123466696243158154347814050092886896882554098788707971991729817168585411310260889241070988672139350044289335109110151831134422571235784620050335537555633025829481401364149691193592905588056277092046660598301508021645120586825687889117138033704325644845807215169163857383882478917058995882681831379738076992305620859791816658856619056997680940768752252958149419260153387535052971434552700808824300741721032106029257863214947630012903999748249805172236775564008787058876401186572217900491120694275052749980063478748495811002906377266931188672589603258264420598665622173871866263327281896505006969086276733957239846145809308621004682266714231019332768115635644544544993366987558557757726745239784331051591331358747061555015771257594452351748443656841377926622102083559785374166551567876852020237735357394313999252639633626790920432775625034405182974372469749271089251592998928737644245458005879359458491506623122014630791526975606241733372595606835795149829341677753349627253638035303462439830181880350770380359675843795191607594003946418093581246789571754244439294912692018938338673434381856093129312637025904701265569773557352790215945526626688300941841743571058155506645937114921680767124556356512514944304462079592182849100846672812720556126481395260787280217008966501698226868048092610666253311194395577517122118710668567800871246644025374577098237135746330210133248630597004434102186631184854947335058460208272712243365012140089682466286405234612048352727414736639273269489963594538603075915338454872948267527768404174829554109289229363779769824535857384248847870233271897353775066804859933933417661753306732531037918883884536841421447048729083906441303221642114522845274287709786598307307017384395368359206915826857957532009709841301301663840327134210450570024872407289697060168294559359996686611181688757432308976938901139461810725701977886040124395593277417327423870449266466072415647725341458788816507943995452817837273476138503308053590111371254767318974657182260774054753622871428421353588902563822490593229651297292584938059259262862602585888780708959024047778300813122148704286193477646592127211544645712363492927128689101968754417238777705837143632207068021708525997509642156484621967058339771706209779024759881189165752650895759067251537650806431367487040440396644491311612867368088501796301121227821970940516969770561577379493256931450689412648709849520175171064417261182108966657962717390047299080631150707323956413606473168048715627065353237903143325351574716654276263177046387902457707294332363335831753446412908821318172919701030764661283994784533786183522257721209216848289459884075327645718727995086640257930774645651164518218097260463830055111808887875810711725648048511749443804995752947420234906492412392378422639536142622175554072240712921333484101795530346336948485060315550733008136312046379825673601927982667904447677935894498971160353670367266212905153725390250647852529061652183501662192753554955761779599458369693152590541883238854112386750127360919489604315507884744425071524226746207176913600390240223024734489588957940915112633503257221133483726207888678801772903278143550134741079544461389302110028065038008168737171824074906476808339606368810328807103045860848324068235384717162569312440784183817076143922900017797578145822116102978225012221545457965632106859626096620295286979927734512998167137569354146036124187099977030902358413627272133722915116932550562296719875493139087289744704110310249234308247689907399008446209982210002095946084497460132919441759254795797451043768884343961996700477620049897517618775673204196231125224516689183026475161865640806789495392642047012570315543715250462191251961800066670738671662201145148495078625637347567846702032608784669928455747277108077858965993367919170136227777452710217725985303544136631746606285871960010526651363711198846875971707142220523221278885197098976453039251345846369435793585686249908863068971976960659531431858713049757650422070395863945710029177949907760644780401168860185211735814461652879426978462102842566029183033655387169412319589653225399778565128749417973059024230096748803762399540151156893090827884416659345561056769634791780152035106334670449374003320222695568861704704007375385549135652751622975797143001276614745661054722969459144536340195735354057866838330147521293564853649718694899864290957056625566184392198013767891159021713025620901031018820148752302863379325463553323264396873359173196651367636875099322842733183181685857663782712495993585582412508182879035463019871332632537047954566845186635446108908420186114757463071221508216213140008793997326440598065159679142923301895172142852809502696599907052787940083256552923596555382985579832905666978096634936025084720403922800362185597249630317914174965851129891229933286748922395930506877447673983353608662113874773630941397730951625851018228081863640369423948362656911779555841485515625422926404620154130455800793468997245963327040603019195754684428195799765298756675865522316751302538342638809286796728988433065774287826609556886804161786399375874557100341773561265127299227457484693678899176528922581650799713208463530440027983529022816129874325030889267285196475396880878077766103861888161212798952202899836660504825348157262150670879071268734349661075371223785131769577577996530389219517035014444541586662553603299915916165996115850719978964599888409015471356029625985877067211411306426647434296691695429945048852266371248370459744987812054219103449359236165149080982064879477426452537112891868566937867292336590659984518065977352040535829533435371697050826189117694138293581558774508634716728426521999252430934669522539752141293180657904570850618888449891015277632631031551168725844771430565675132924415932267033114781298275073939098141359975219975933438093826943870691471294074610004709534104400147135780797059509431454456856165077059461727269210835529333868542831367709657166248409802511990711429704577366273337619225274647740444996243026841763161386454548481806314820236916161263545906228361940909834900553975028385335981388015232504001668575857476695504804576868771763759763112721319914081507879634099521292967198264915089358239737243510144673847157095040601248441441996349063426346504494812748214340053429588996744511058585842320413493017450359671896434304899404302807321492187575568087533754282843968656274240369769862439582885165250558785144879506567325285915789151558465626954576149399447404410820707634326192901395681041878531800643714090762574366522922895572773219992108175932909213349475089542270432631796111603349003817001826417150383730286678525190163071684043668440958491602054788185727128868779460025127908436889327121864151331771398327905178436531793752312342038782182117979658207469421792358694255120483668276244882577357339560201162030312421823554587063625341800970484446675762284545013813738596053505750720505054725794447759455418845221084712228722641435238106116010843407337482222059662495571942865923723105164420413580045048219789495679927027465683364508731513775908905140846051124240296891156952967788354359569652260533464987614316377323026500319707884660388302737584326674415799276308795403092447410775650842969806271159145075153873447921446540023439287770423505619621368773303204870796806263507302628240650926039592194863443937559282480477037064701527306570644476770295918914774320164976661212737131594076052407909850287041464758021300643964662960644746269304690743398837891089551447278969622871990793306664736927343782991848575670224836457706504305652902333180289816001846747548710604014704538200934411233080985973746219393456296778022613938588190505814930995658124431876587666109341987665091288428262245159368146159423588502469313634079505046610734053485649135090262568026310611883935812774584572331131842608930504957910983451086490722022097042033661859495145840761175498642353493237184015381354796526087645625646045202083711952780621398054323660183464817772609274249331294793145937175699124122843577526342520545841662889714660901717329574341333115679819174762774826662258861544728732790149397010350103228428842166726699150879844883460720507437869939831837943587750302062431417884925296233995637491620230244627394085742182038647006601311169143565205607189147705801038155476198319528565500819120051746927146304322300845532779888727235128668027263550292173306640457744793600570910112714468185304738660114395681709866458071322971647350075850073804918538575583625035134822437720418426066027177637751654366581513338574061577828098515889229122199310771272153246924930652472927978564252480014500184353431767638810953756996193621504312583207768757859577793527580006512554268571431634932332248318255168482608171845092868655461704759648477316734434773971160178136822895988404464418630825705957469128974615320958108389129118666459749310552164600637562079849875362835240572120912149972469306919781282984724330896385991412133818762097296644326244360954883503498423753908148094023636646188340395828804980054002358384450012665742269966030753963273869381418492826958692755373454443703738356063181793672158506192035774775573565721236004630688587511884157440866655659164194755037840128017855006162582179257576057107955323061588921645385318841306497712759118635121969992009127156731406554612815666054261322643095675027444949213387535155256735676160905603516890309187530867209578767842409890370232504982901155911840344233637214323117072007054354053900784421852355440287293192280224477528843946537289039992414915288062355672023345977603253550030511072686072915946323472732472697332693856236234392840809953049641229184377502108397031182766031204676385379803964395718617278217070816476497928553955223709381342989176663355527047395446622065578149782183979420663570739136039073232971541319262938135903637692048729736029871924127635179058721039971346800122514502731139215557132666961349788035401506370169252023046940122599035594986548206006164119163616421312345555878029951491220080754513880100989495127928680270280804035741527336405213905657013601406604529052896209921879183119020874811274015320098616411425936536384216026384771920230995457362489791405703379419925195847375662525354611114383138489638976585190744487631806439846684262754173013856014351008074845526783265135065506901707087066802573780209189605725087292472799443611161916742672164572850123516220120705635520797439982084684193223116420808929008898925948600512708833985745321593135423324785466334887164142891116959155103984027853815632976707351599818171303776941690540278568686093646457540010370220074849357937438253981715933053802018726284757232749986464445826342564861154547082021735922772280398991130388538083803754881513027673436090916639383656329969654543512506249300194962483749317510493978874162747001066078883681975029383923136000606750582218736867209347095355992916804855005011793532752344711896763440652394965988166887529240010338488788183534865821580157925542256811162826578169993997150715924753148776791700680158987509894912718443422166944739049157006367320999598049045456593494449564196698231327319967823938496227908929450022544021744319731214691206915421616225574819234980207593810500958104931445574329535563836113836406207390991978145733967434625730052131517422970243425124146634876084033868107081072664630052732493175042116065240549260433664719382227682965171527339000045865979479621282941483459368613512951234643386902259075760786392143047280970668144550746726349990116003888305326261120098336535961343444488525033342076294100217233007190297209398637890960411754884422909695367818924091823146186863143433938755936956082537044753056704325486752522230760769017790869230135655408538101824781495401120035996267288003262629435904065256763225592827139646247207930820050669412825485550559958391053907939728477977769223915757999062524292951057763752190204225178674451344085251428831048912208377615364907611888448916324040023329711188381694614222774093625387923885354765345293717741156410759251466324587021621511231357539990283314401345184811366303310335828194547907571272851413539414327871419626308137599216289215376464344984964528520605006315347741560848378405422282033972701928148045881707732352805605965159341607861107257141055520802231883636295178483665600831767213634772630786328616611387116469593577788394315335741992976507709536967581041602273460655110079589020948555298265186188925807669425965031699527101109005448705723103806630023348495461025662523323880660375155816755785092629527800044461658392725967865039807766183398474517663084212602708156887427841510978102739630079964295813503559474503900531085994244378925931201901565909238330546668993079358968102464295968398727785547053076504199708187757116531597527940728774482531215661918204862317056586845135598077721331993846678444319170818077869890832153403784732621871960887196745460155800755741880212758792412246427353141307630611725176939323378264840719432828499253561598162974790921403797257171336083171659397627919408300241545566800834688526079570826959246746134278302556498723410989350423739065698763782383652423019607039208192965541086103307730019465134490826907929066167867220051293606140837463985415749381289911825419183737247958956842254722196681681867849728370216831272365556217632449205748787141314743745785500380851121649221528927647316820956707251893405216429475007213525080312283575364517324924834934204398109673271908481213355980816815566173887420560962467525483247527469756152468033967450683490670144769016684657642413318216847725272990337863354975117266907202811924857448991521464342152719165886006507804335572830654956270303693356823231969543621563031477850257115303827170484814440800426419579862066021378310162592166629026980282933620667683305288712614311362327424093917595179882961386320715820399322168899804533857478456237867156627941985993578959309789490879825885313546630097222819926525067295782126043572627052283800769913638458463313598877328240760454999172121076394684831201575630775431961001686772514250096865118635099901296240858497949382985755448842904459308756985759953922218774945606473381988056093436223059082470894163228171520275555090797334348742850167226586829378441762498603883030073633040155070270503126651025671724397700670331319925265949071868355302707169688946942500044801381585600713508827519890752090852194794307068202714212509627489788310586355564905061732429091754010728126521941556260732196354539330782165535657132889208248568164240708708750246415043843260560287186689832893835860185806193911185701948405765933236851270114784099752382191035572186283722632564760682672654398472357299655546119555222663048440359471108795232549073416886544912488656458979184267998240079088854123560711766665496243107806770416453207484887437336704053884247980884681153802294538515687551960685878380515946146355141309003337177132288865060329609386695586444178894161348699710761604247092265498582596728879763126035275188881337804030755736282660040203800954760275768212566212138087005102538326402328512547614425508557175879866431135314969843192825807159066014840227632047230335813121982586011380944339224466214889585437777498219476061504510363267166539484655488766992780462385691109620536505533526361701012289738520618304309588116069157571655160819452946055855510710953438210934234630680576984569435251140718211257493765845012564237641284990314377966398818083574524197007539612821162573609059241151121675412286777431370688617848271696876487184273738754303240917353440347716891714228211462987040857163042123228612983508778093140297571171726493867676695795459697573685072924322119525669296346782498844754782186027174021480338526197282893902912442288159778265457224629032334133524536341737218755054268341439283591338472289165727281740014610073088307712616864718779168941283979696667328968708325254846198042773470354078225789885739535143534832704143574702568261447150528906646670974400808967900835569929052768833016411630989206412526510776397057722388857263184751416832972823582016034774301658295142307526038972320473325376969227062349874537578907416256345530928790581103528934536150956427766518864366256300481525687483389717949566492004002151071463658509044766334458637327801687278447760192749486248030831566535976435980621224074690159762545245337568855985554898844162003160030669545645207293504522599689441596478953004976069135933801510254414120617824387420767567068271862146367528534967816894815494370591228426782723997386313200331552868947215783264432280284151083484747442669776788426233153984974240107468013527380724957917258230106125098252542073125566029853265932800842475164378438046326437242170714780257777615282094846813781528458899241495689731728256709191256528996666321542614787634331755780002605461328976725198560856114243039775627067176116530997290340875193409015720822311938956026515654821600849606570114868046696920114438262370189597206730335056283295023192510611686456657252918175599390572369909933818532188937608680252330041771806776047242704499305962390253502986399184776245369270225700820693696755700400376523525060752853762172579876139388432589015195498387826626694487198257101926103086841546032878482156700656070574032458454071020374487078858962658644620903183020126338731139284986698456967894752746894337336237201911537439290138665769833598863666861420027468722226346952364546416111923791539495146575794741825395608840358423502813344064078092183511438458183105934936594279476308404716291451148334829927051896992037146292065693378785602952660166285394062303732240855905059625994721334388250035384690027217894842213966339655928293147809699053690860413083601403655550218403245087948307020571559273982588637361558953583440799761955227588547654861269290088169775059523456954449052178196432838528490264647692251754945344214195049434026996241129533205521047005803556812969999530261202907384003477208144680702542523518812906410978711323327440806253363944412216619314329534077067306135541291304842806851695151072982339601522716688543706003245557178071376422093364784744093393429227290726723384855279133125450239294934038840332999002602499141196610280588057453556696481141243842656005731000467242378057809106784553286586259923547088112702784662198659379749254912682387284998582524101993422453195421812370781119451134392551169327251183490258305812860923446844748829390826587663082728857557536941687993019078904354206282665920146882493568631639919103906843972009057801673705715220480983310936962970429766383825595741712244011041977284808144203029313975613350156334880093440843268951140365687311834063616805117055147249790116410337176668976607783630152264144104913050068901885965370379468463334372452812751539842481267147583068748537502998154928957784349117594372362630299365959402577891838175139240706050392134667044983114625020558823872940822171398632443726329536022001015960244897323965391797054805080958598131014935912255005914035732513999854230900175839747652414010427128280200394278299572819274533112323602675469915717032978440493339988488707539568284323893921697241803279703751093149711914664222019487302029688665844435826827817407888303794882221750785220630152600969536589326785544179818835744673814086004028491977275293371920074144754651567411675628299210140126705510999007661798674544234412822423713313038659222144129788845881521874590190438829731898926512519864810623200635127688301559833185234712206511214544361922009393249955297953870443590330649004717794291023661750538294874058354438991998213774807837806713665200546093990412028248238832651290158059043485673176238161483346317560714626962903040042755893275052379842957834008737500296851721305690531259084694521132113281156579967744443302801868180562128715540885830061357916988874873946812388803153279525553415852412152195162983362368685969201285092862986415040735113448551732859300083139470339442328205342729102242388803388825430294133367431581562976197485104748963621069036789114862533185219344353161076526918933553921476695024804922525568846519093643288695358168688848807718214456988453498767981101152746207768786375635225757390476343750251890081239401721362585215767360707674540261034102502198940314574385703366526679742621856836647440920048152342638775359658863955979216866211137212792857475258438833000001950769785056081053672226655813834083520422991050480656070180186399194688398952320177248047528781282187198957510612254170594329750470178789933329871002293293818774166466601641551531882493710987559935652564182747264403586024058341798840418112659650473286566021745837396111325803965140087412453197541723750888797978447230601762482078542600647307906800180672875947355922803263616218896241293965424693327359875594190381239629940861188004874742926570446766062984008659498303705873513952253053733767598235837966183098557252597481034558487406420274201792145077489175523541128945815823161641476793531335554824163151406349979595941798238778781902852431529232457058411151787328846691017527211438091461076331884955664491917765402375504215287613465250033779956808707591171176470607128183463070009134420672591299482162898847439522242977247388838384789155470473763787234168923354552169456290524621585040080053126509612556642447114271365499851209632158741371783107466007049300979144345893539490685921017247730458192164580253519095584871822611804841519324489386843854252732630365340031821684453857235692501450054843614413302770748400905803458662608782813961533377901139301762328628859762014459756728719927755147021185827078758851918029841522086417097068276767270130714271502564015054726172943377276609382840910515074773320901086475735530651865446360937210214103927792577961212123722543141701733671955318235612933488352113579522415580895967216963656332448823438857963658965417680462795871928272819015493715321333069640239886686359905620182904746377096062971509616828911434047329221601582158833441437472093135356018570777624113240235238710645038116608632275859904933730544809626039586561139069700043838727455290716097922359048465275206225763966166413443677997029552410735609992191500508030325032508863183762974589546364264272544958821588661632927845539560549622172425856056207527998152641979125464481210623479654053663947353979048360216901879862954561750423418990221598727957903967960312193357062629990946550208291731192865210524490813681092122097010147029933278476900405901648740313679200248497382326349956172926885206905382096746886766838802896107162103023491035134227110209002226397087658629987895213884678085322936596688234142770834103748291418411196072665367510055804826807458944469386883693904368642094826538985903676384077238381032130028563208018406272792355383746400138372155124890393721329838052872939776627645897237664058340273057323585749671399574238310252343973526660035066112614176632820949346343092610058274542133669098732378043621539888200259913736701544479438045676277837768212612325111919162208518225159405409596684633167230795837495856635556139827916363218831369051796731350444499207787812090343925857523033265828016381100249846707097941000397873318469810157140233412322449660233143223238962159572970073750939027001472532978504649276433502802906331377499234816804185135608381119285358123608769011630373556322118778028571974409383367338699841155863605824451496388566376027926820294163598011955322041754354037942715728169966973766306792014832981402062970224074248308649217106201528503917245928866290954570751662815876972604200205767564191155697671786140840599480525308670489132378657150515210127686650047355440178200450749701965156629769171928990435657433828368499981351465832327985238897591818085003880705044203704071385640002990944807203814260319673430531148190257303732543986994017951964924262131839144298645084975807176869722064179551761759854307424635292568791114537038853383310901840517120061431871572079113306470340947690495485356288549145654784557675533832463370277193077740139542180956212057382196902617113852514864860831495777373068504786699287612449262754048928185307725752065406350156894771571638895059482539478034858670969905836056351737966813898606499032437995389583623662098861739269460516140136625624636611870674991843534895237188194883492011617061303996136130423478497941102756836803826675458742446474187698062280479152431429336618203914034013963018957434437039141111598488092981257621098316012570673073800849480673841392420524603147301458226843997616155329329108392914119560554497453499894751396371042857246343884653768293559691991881339759845394195552477723316092404044968968363436008628677807579720501664072047570302010448293612964018547317856935951945061936022233129720528399023048198293323613057617541796134389491331102646214502823213899717753706289400150226480924371080894275816700905897081683436099515616721447624277568329302265029370461451872142736834649694769671455724893215316043042219411504656733941846106568834810195299635486184469057398745502626433267039809827652797994624906489362912119349034761041432450687408973493566897936225048055715485535991757235872546845295382919860611521800706506603510597542497803444963532587006183273706943324409309401298686768565815224369281834566900975034629552448900058832088953239874260053572473516828176735346434134377641440297780138098181309606882578679459316906299348572939268310469545051652478433055511303836470854954027734075647369079891857443045595290746434984872492900147038161069965054419040795740285074286597623600245502460044627991223900318930640454167531426001669555311854550042938175003681593153350382071822465791935556414886431836692360573134999635620085302751436207525162053265598595412554511968628382375425111760696437122557425342983011132365174362305032753853851822259620977108283313224434599892988679923107450843972906203536054302667908998916010590105375065673486415166751175260791485960340960730303285043526146179165186362936379832935745499849018752367819365384884826027757623740880014281441790887177406017758869469139609496189403942435590548923983655524592451111108085456235220338621230427704428298078293047327844543132932543714602886450974908487595618075879831298943442042461469803696399223753480713369244797740636213010441268809580230057762430732995481686283722832613259892636037559253243653932469807424784724390478794381446797777696939041946585966520765319883068064602140869630197175742282949292581482001627330973553877915394176052291527339583649156631363324131694307524266635388380907008841116552011526676862108190883128428363895909784956850512452207346021590329904477505961667432626165600648098422961802387594684113928213424431995251414244724286028669489178557399475618734364478967023677053227100068840889197060457894666120400454120964393318060306987119899563477498941142858546037596657761435264272064052496458747994582009260105254599571190815760873420114279474205620421123198152185047497870019119726221644920840028993965422062679948479759305549512692186687677871755603891606676704656679269326197216439988012192850925557173904767748213473747936870860799994797784537570529486368388848846431383104862491806173835359622707569168473866847093985847371601612599367817185439254174156395667875275250975702603213191266298214264950545859271662405310066292733437512590221316484552032186742171981286337034108917388535934454697830706179709603414370122534069688335658441872596666014771707078009861535597604610255329026645299022524340831881985457100053093919004015556116739624743133613080847674035455650531857495426822371507787578191715380466838162650158504098744949589242061457846437332070209377757572348252862420459086207719649227867183920266915644582741565134404989476814356854511667460405359198094294835221680097596332632732789119375661729391446893640046448814284081266097024767795981120676892214346441506038473457470510472910256810057304103525534416615671120559128940243284137850654706297122657808682247679747469417119207669174270386500395987775267984048302014169277612088418549388420856502852206695800600898985796942481288694719610370963479313352940446130073401521543819776866504038224356233147753339001437785939683789186997767557206605627543432973919560715633837534790243711253904835706022917333033811605874606535172389928436948907265110401979667679864306071105182463243481428254955984913259257463512810771938094822088848260872165710057171766836134434309493071689646942220785987787308525565906955508370509264832462328094984073437794818274982222624335188697620338085468955947939668716365378165607267963327716695525243592614835947910767873832846566100021688679218999539022695510342903495072520733079018393184873285182512571062459547017288796384347487368083862530054718205176390345340018493522737725461431157476507802860332434465577590786634994786816926195036182567165827167066595528267929737448238755654857654805904330337207686999303287557407182920567475720098718501333840881279136274233692393510465004604253297234208063880316489563891063550619226802950276612200158361771116144761428396536927106327501924440460116229132679670100900085560157675100624524248818049323468850283628739290463655558159225048045792861442971370305377256468587560373708705417616063107184052940942892753833720752657162217713786700352856657721670636233852773090284637552877305645681802561611446048657944812281920331322516069099356835611840298728987490264880153271535845505497187891404784969801715954315191414030481858366221930650663505880649645801978633552436657686300772478496967417175260006789680837266358801856903026874321995040348012262471495192141232015773322992682529830829408397161950529950878057432063291279903098432696809430650194237098075286424107958342971184040337173598887838766194834690958448275872305696728094049556798361915666059730938927901265593059612560112415219295134404944806255733896630373591120426595880581262988526325888946582661938747935316094714145851664975047330938723402672561908846710409054387000934776517417376663693886914892534658071090784324701290787397573609513296471982133135977559770980378152009931736944870949224167667584506291789240972338575420452723814958330418770101844464634917883584156771224401950880459671370593413661628001903866329202569080526609916283116106855335591233003881962276094977828797959545874837676291497944059343291091725251328032497924356764691717314877580229061406190677590686105706581509104655022689150547005385507955749060651863348239957037574687077865043297368008472109134921566058417248710567670055036109566567261173780178861755989844054282081854544009729129892794103345492529582617633126466824000308736925035220584675230168777256394023818907549475017577521105648940270458035065836304446982894411792790220481588946656699934132233807665794954239314208337527367995537105053282283642489435850899666347486375934494111445916323117897319232312984226093939749766520437028881492601416662932862414537660989890933296962087439892356189563224545482096081376409052341910269428283109934234131888337265954483059022071809683952639280255769903405520861943337492160812070876081982813026157709066205517214400761978645405329057633106215996263704082927713069515010830185099219615552040287285000019152610904221750671061017652562594672589075289014491034964836567136335879209680139081440662201141729023651958361773361378349948457153370576570753700159189100687144809502966427715210285423407283711829447572641067808539526775507994937619352741322573352453224340398811912370719763288430838608121790667179643166536526736407429817897413872966935313311564018061742643036625518252797364440449316584270880344580827595280529726279067832219117205737592255666105519229209044100932439653850698888873479395321758887183363286187063011267590084962658280576852600941684507473175953652290946760707007303310014859357706298253278726791340565393109331313480611813259129545668455064728420998199894336803630003567804696434467679270246102439370724376335564691835670814281452715740514629218553891892505274651967278951772953506774121593552921846982895551663073286880406147149507967244773924342493850528337309789519655528670006021795198614908963940610002715891798480654299191583588702263840098198720141671282802302650229149121574083774248247639231660655737422751019055489310207487020496528294986245238622583940783987511083228795223677050063382861052463115164635224436210117083744256513558359269509658410748540169662739463003044396169684682260424289760187860217468273553308093796650941117498119978608747706458584623175364581317496729674441086094280752804418833606739482596126181943241392274648681939425646715301421717225095116456231470911388775263179801495309613378027380582254291038703263869775689482707882701277881055389427436850153598910441196980252632317831397089289980320875675400092928122196007132857337684997646459432718213916479420097224817754513322697944331148966155061847385567896484691158324001155040228524049484468572541532237429980965200113986719039891307685539470555699118085481173102586909974995006793907601183994221978293568060766148961632786497243080943878088692346800342130079234580832881456557782331088117339022497562213316293184156802041733540137302257561251836521095846180163474065421852731621687410653693434848736624362620263291712689843158744237823759296539488790518309972311323469204857152329612382727059230925292224718879254263735540284692019072719717927867625674540978396353760557349312078319767693372109654845313171956980287449606297130282940433077555327991647154504448482236254436754870404471912406307820551657765374174915914090054308069562244446478835542928615015059904034928070015397546895593864230156667008874667526023442781298445352664080839280398780482122892145764047690902102223529281138121538895353585645262575353650629716314833684712002849959111438292373141634327147980858089915876806057024978084700636426208057632102056863833966767913808588217430326275151756445050014902827096909156077636951699826444389423046821490737033727242367367745123043528555500109328967730982671637956756781283642252300987153959241879025151486004675439093384390157738737351539950613806589210251217278557760663722589396947460138160705440093340416985595887649389773771310023708360179860967982078137226699087978078392993738164098049444620120062586024023472945912823615138634813275706817179328469897425509445465713293837654318084004666967147247385943677295612020957163112351711863984081147962276794953815892696403037946004297094232356316695081433414224878279786820133369201066037141241555563426687032630319810754305782022447271753911882542674012308238729210313701139921270704568539098814122941492508470805487336108540806379736530024506725115856728970504118766892803502483099683967635622861168038989150800714239388831794115637954497702010385716550129550251475827734168946505326504442020559774878584804742557255659594492042890440984682528777866341916490749111209108020084469332887635595423368512382468302456086310297583749073745527715973632417813834299382696595388713370868855150729503052857930592038156091856192369717063306152791126006540413873355666786370203824169766576126405722954688232715452876028873812247156591793813657966756401079196274948782315080582777054425856292294960494457486607228660510009133343516095980474280758067396049234520882617769896048423106200909710232979848529757943969540789609560163060712430863790518449127727248440694546962316940997191932111073486641950629177372000025534485654107476706004347585079418065809079059047030772500455967359134070593367032131270773296244547964345473967236199522632822999681193409247600017312621610140695072246354340392399163098789691484726319917535960647766280779820339518862282793795721727996653255033529840349144914242175951808823930185020230405417674954805102307841509769264931867806790029002530622099869160243709674491882157096142464178935757189205513405630463246609049909672868713445084185887985875938501236079359787180566243092988922514957035415789041786622793447037386782472364841645396222987136182989846572513471655121166967791788452724954674217546850799855949272293329703035318918365033566395474694877138714855180449448531939614293783996469143749917017150756364588509063901941288941064805667570233238732840049812318000129723148749161042654140214496366013749859166371993378801544798299131768930422896200016294499873648454303045812930456071031722030612098412139275713524146086539308416084975499682870998657119917160245129976249919117241210422725840889279492294112855503384049301431096311962599609814358215929292890563908036851931610791837459170410523459827978083518922436192782008627396139437210658924540510530658241476813633048900339379375787690251974193879422352613947916472907219688752391816007110113897400621816493715304145743146844312307344460655568205677789540236266262943215752256281569967180434481149012959623902303023073758441866163657041241528052724301967336797756873718282049989016579166690951580251962878411969840224787488929578842742735807313684871024136186637532273507425292799068600907562587669841008942853678275366065292349101400497302153159965886741556138089392971034308809972264021758277807426672109309338222778971096067615033385826431327535770918306913330601900347300752837562312447001100704750959700430860594563540920011397375398999219698422905890474865419659139928166414521496845015355192967079072251586171923569920049691955459232200821386636157347716541897627905521291171143758174914836092212345326135903668242980918195980653668746399989126983587687611193425909493254467337137825051162778226072815754907659480299124103348429144283210703829329849599596920256132412240893663862021748247764569561383307122688414605555398735015837035611467773395880225121700550710448549728474992503988788804589568749793227076857795005852375908555649421599183443562059385869472678013055779930938093806937395830187194210388784793909475500316617868282656162077910056340384614348122063387364774539016634290585690182099666772036284070676958575903446694113242717374619268588284696935149701673288786211589318229667251637894640251595743044994425019755751983923252805976742935780494464928437900190188521161856902996600613853111157133872564598577815558151528628266146783145132364081869554640311042494575727201714649956775503933493335157698484604021079216847973091375846294218402010265890427747651203482985473016124442633803098923333819308873687760512001241064538013288678129672466711428379553410751447083834012797585562405090819316952325897680887807491309724281406657482019111289983624849658757819940428004338541655389950147211750130652027519747664407185392507792677381745080509603154036129745562876007550011810390209280873129147512108645976330250704009314492694171204506468592555314029408262141227692218327581519680478944863803997349796210176854612002931901683544063315701835152355951062602991940316512191990611657130368984457162419829801942850662475520974028352197688998634454974653131905710431669497945688294734959741566791973135856157584584217418225913667628632657123616586727373704083508090589961385573742545460084532107737301547130978822598379207928053507497782577337177279562020958397200575636974176907847277176258063564185685825079697782632737826584606584563325687143258135878171182263791035183036904901898346763894227847344733060312533590470444229386269765981934384989710247225396314319703203744704416660384440993675409565215650180940996098127780919009996063759690933915503766775544183994556620557439868335743182861785076473761236672427924775714357085696156220502463986621066760927779345950724224330993539393645266070353179273757927403168086028194237272831681114427246428642837923643817513511614759570728115473137510386396316643874419312496874944018274661241695349543648192231877632978213782624570369364934513227381691108813648246713745232341567590324355923149058426205901409507652616651906286673079127773537824762233016798715563490627800914544716919377787800562364171888328961086340250645584938751061884946319117194075615131044683826282087427321416380569018592499044105771821277619076724018700335116314039650797563030360267574582382896575799715318661406073658995901271730275165115513944029107423073460079918734115611391439308007785072361215513572270001084122452899436022698641392391730066668958203323715193376324618861763535778967883447872495077430815725777296098641191151463502707750094444098877942978901755078011768312536799764958980730260419076413871909284155636823429759338082914848974359848480775856735172938789473424993261526060427643063153849630102471837079123900038286835075602754544837250289435180595571459996381942010558043380618569479348327501254738360893557241285723038598882482074742111506948464532278186499565066161656819433342547172143974599504248870856498857299402028417003451376246305222474321248068710532395236135288778818227193278476889336760902235640721769347775582707869845910280344749610912175509126014380911998781858488323757560005471883944943254746148361357313370741499678996126953042419022011332644944903159837334227428133272314888549677254976147599530952334010251534351786792389943206639231280973875591545025524414456065322125427633330576783770900932532229670695141094838086674138350904854710797396391141015556935675989284033552353883273317758407899472530416256019401592300040453749218682743385099615883389782222655774893770526171393321975786025814586645928123969818836996029818955780830175255010349203040763108357975432017106112156415173456957680800175268504251514395469188151402714134894802628577589975034687728523748226517560998806072715420051401551051277683589387231493429740310399258970905523674951654266926963837681838665640873459196652682897207382508822866808420639967130530537826549764529223260658454222427709882673098163201678052775941410460097520773080874210967514994193684999170265877482200000692160224516488771273183864931055199759510139327985699459971169804180297370299396793628254748560722812247173832293863917208342553249394188901842852939147063202808039639414586484891601071865465645990551698624832792982363462423972028366884388593993954248630537539570432553400097424239073980291566424892692128362018199503782558708688603762889998994024556183444330712530059302946361919592202647551690753999559473338957322256900328303787148377774085439323714705167307892277174835479830930036068201004009813148071236058860977039419487429391793504077608294664367402919509684039289984527785091735893590875395502243259214453449247639092959654364566557264097043924249858520617155577432569704149568532410852017175965055599516613843963422194860712470806810966814746674059653858991217123727861557294098094563218035296455375593997172951817641469547726711619950192580694986907504388152804457651634685331499714791609083247316537556530554343003810892083519126811791302994096282545412363685646316069383198371647730886100481666352736766816285121158094910212029567116691966927248606366183170620666686613936069515191202016620219998813721613017235952465116405483808134020987494075143938676257059208342174213362242146307973972370401936710204575118349582273294608770683760440925193507510317303837375891848994032648507173266832418293130477709466084749677733905948512716592734721048333706564001070551467161443283933654537624482421783850589115949714645393226028589264315087002415340259238373713694893152565054426005589952522010352886385995666617190987590626710247510573305167697418977611318388470180455682176033016386130801023685198861538842377185606744667798288780207687531930191863804417029328027712839584223928781710001807997278487665665219741004263621399207496467396039177526478448255552770345610041313220678229694659636351142349479400919827311279986175102419679324345126217630477796986333712673383968226577397817594952396789789359572388356903206031073695531924000019916676239607853403087212073103013874521539365985513307340303877642118823797589175126960494011326497074973579111793477107121815122072767590088255743433294943328347105627498862676297600141481919723568959180417206848049100756238392761405292436340105335403185542977313925172898874039104796728269056220656289182522540334614538455865996435816003763514662255815622622066907319612617665726795292100804625883161182317936364544039691054127019121269168838416950692461356883075151416042324201579119952165855382429435703331034883127353971322047885938139571259758934794064214104485184675575203311856667296779752878292655944791453627254764151479327934078320076947265229477530797819937255472406692649396075005914933124308090314831485970394162377259906998814556855559505300354900283294733157156125534451644321049260506069388444519915352522027674146192693562955543067172784556190031667303009681140140635571942361284523164811591611852855543909081174864974325574818723944794081024726496045871192714690323577136556019295155220153670963588230920311817434765438168163539725509928872735015660890375910887023985473654806183005325995781179927223493764610654681341799975857515523146900356509562109501445313635705393470083470063569665259233613038213194369600181809514218682125467378740796906818543858711393922265435124870476597485436808623157829975117428968034412841729428350285688563257355296304529218266010403727017808192899013239372194799031213174309987680386893566146290976377264008951412265185970728256635104795021001094946467210517926085376205275359032762345478962661534602819207357120570778318089647028559752388217212907134079861728416059809982880525795046157270610390664464607734179360755548685254170537040767820288850251758318814971178741940414891149678254921886079182550329830504006847573909382326363656278410420502415416950192021678697139273816047977517694934465959863165536309988213164000767259407636372302667123798976851047348123839817918244841105587539137058569216271372292019402954400059199835323097683270442423000579113960484730941273178664446002817640584860427104715858435118085366272964838315914192241782855199664694976057800534909245685197607852513298226335730336159180437063176098942069688688729963371270061996565627851306404460550794336901493461825055940642146032185809852118943312342999033789625075587720625292494163753998379501347802659380062710562537550463160139876809054302469924445244749485041621000385838783895559898456420928675121562971102890733530846322060801893978476874727192974428757953443178840546045645861306285361043176193127641021629876851354200446986026181551525472243501261454663592299851723473588980846722242427900846293044153331179326435733176370960681926908829827113130249816604587083974403859524961818803857292904841742398977838870907439085727959330975328080647976156144947701431264121463326640155254603238495496987303715537597188036747676928994780751867805540919695457232012667942570608495666213711412741047760234763225722622757039442681742260601631149917836950482659623166854354470267257865297423407779195971047266174589650431796240655453166482836721912075532313002998764118080402098233316660520844075647448258618454061537193429002688297732870503987206320515906487304694416050496492771892193428965653971265532763665640474876115128456098281202507065796097594101348399739118305814814270405532417342404051890120240467561114174301726821758862012861847974457419012876578390274667743970355197545727499149538499250784759061146670232392091796427488770808944159395575814419411685226958104965282099499042387744763190957603125995698204414808367011235733844876212441850023012934144654247864400517030848560711886373702407339580597397210835967185133075490712011797478723247881756328670957587960046744809461170748087343019062910284611979139887693473967228473135670271227313288435919461739428949342578457525893454155223084304024713581858854410001426950809775588501287366795233512882231892194096242825433495748261810498909539664677831977661569202678681705707924379717027119513922259477714234178536784701286241512282349595969981157441842510366395885049721129293875671362913334442965448453733490904486527648126837852854651562266701000175587574908342385015595179190266735632145390842758023711024689466521881810873912147588995752089172587533086987506137763566594596816770617597003505395317097822154359650381937184602429868729162822729141386903027414461132602150110415200603020699371635016115700588716499678512044294005208577573704402374916969643728060925365320426950701552880665297617898436566421159457155353204890954299044792858043713010043802569612995913612068075214935878267398847631901396644230704799027576653821636809846020332500999847848178940371003079561318403838757457438766544141228670019719895997152778805553257528558921247374282580952342801728010158789623113048650320411216022985840140201447424636929966242217578453893197981727444011965380459619788902995268344473124819740298768337325150185401058910208173688535959419809826594665858711803009764484532897347635939026109396986453908241740031171745872867883491250497198243019749967870803097453794413260009048185383652189223749344578739812079976782502165995601534662125880702017596390892530706095830489846641025591897559727073563356867772488676930368764103631067225345938764648475787916442428181926923098931103367794898902498892773526293871241923929739544429326760176633081749469113518786236583201576381021942022565667762685230626926428403752045462949900858267657911784847426290909507198557129433554172735928120142135265052771640463435858759907277385643241301413362926567395885015245391879806746163077701662126935463738178107724715527380264061379387606746083970375138446334867092614877994731046681969380225708021487157110975862888232994940238172929882387331702940584037403482873813002559714105239118888946443025238421753746467040609076764682663964416981424506901509181459086188071536629687027015052879032123520909817491252637629116269775486401662693002174747884034949122106762244053318701352708951720565646859281687323039666678454376388213844071679623956665272169145498208058058719389545162840616369616297161902961231839041676394844743334783407032998865661642376297208714995064231450383018003535675657075426679319974493066928545250526431859174918771882889445941759608660000516258575313588799581502357122506835800284768649755774765443831271444699861058453220518535256775793194947166382153143932250521555031578487424176025927006034302737381272700312096717183470129349593166261740083571329076269882159716160511061577993156138556579942999096553127360074466246954973784462434843297099418582190849985203089612462432582498829261491036575258718687977209363439675154772973151492035644414293603577879550856807294599449282380372070095127718220800394598578810468604231627626439038792932913838963942228384698758775910864156662472766240562910254884049281432630832614178450255731769929703949577408501799013033726291651681062843538187350231508503292486688462428842036662098397986650571052747007346135806969378295993202902529709760395315793983946972318313382167512288195625432783208297599036589019160570349323170922702474087616398767973704526053626501169257156676183670257227182805399817744795286525288628246941470433148975950481361093121151220504447161863471022074938184030321911062557777719801489979580056619437129999293322938460110225767314998005475185698104260720554742245415589773632917753773844232990863614546180978806765417340576241980279982393041007213445108883399401038265134153457927485923407365574181286988368874965474104345603355031132850787005813227143622881410812928891215980282152783548141305894139047155803663974128538002160966552542811984657357161645879275002696955813695548464932359744375774438991007773049611709519155888559439715524834311363922348726527210453546892023913819805876291507120645430785636701906120211709667170191432928835624437879449089478337554371941085676388434217999502098568322422002740836356414792517515010945331172364856631609301961109359220715034508733107846583850082847340698187521299608738126251406353301771481060241895574785555390117831014435577189984350327435277240344857040345527400719241041117660826954270793696170163346774497138536998387355373440675532464588723922359670843862032317032843971344913304091451363577153608186576368196897591638691102062242614220065845591911481725919528580436150368919893103542580091502271787716464227098549794174705394492620400145506582062288862659353025759130476472592856106211644195126833480189537616397195729570785803228099442859834666978857147750869272355739551193709462280573886689136196178126920039290096002509970574310387234433556948646998106389810346924223772545025140646735839852698059602129321375446586142252758048747123493082807270907134875658862911618919170920145612452245100071551275229545241709224442509334465714234753324065926689551405613016717922557316568409676937940775788531645449199134895194019613031325810911208045937625739992644094216665425558434428633219146157155732359233243690050359531271612654380247509353124761810902880715775440321462290085693432462843731937853485594099335411600886390489275688587247009357475659142466767335875948271322471637866194592250969531410725186287283995321229045781857070761016528243347762638875778985074873797111798487481240748461767413779844790512411795357504673085177846491996205286358282359178522139540262388219832136186157342052853693380009542937669851510646862343805761414425052145259435067506287654496039550927878594134718870650171920499446136807626492932679189806814173283887322264317238627695999545901976764538999678032177292107590722928558241158837537722099899831028092643843535027419739539476023429241296211149090542856398282420185376208609782548098146328200191428959228584865370293708925911157433852144643768920972335726810241972803967369740971951127436611374721297991906603033056569918824306656579120161044822081284661444100945608907300396864304950601731972529162673555638710171558211598677596531784592758375832714157942522707269023269556976643329038081134698792145675034384968719906489169870817421027547777391211196560191890013622836531906863368414470287947326346328490250520237242961994493431957961797594463008821215343915635868377512525250406845639880016325240467368703288963448547432728020931194219745231616543960712518816562861014019682225146303486323431610946931590070061889344511935213273263697861909391696059280927207121599860991853393359658938881737657239882360863452230672136133716249729672780395542134370227164572786165485110578673887718045408180310696060871671259035232997730407525706226991924869773762394038571375756528189153488109541640182327676514086586259423288032288958510037296675878835203897702758945397445748730249826942267260670088834518040037224563326879426139423582721210764509876877629163022418797723293545639269667374581741268946096547169378354597108071100541808587302600661792760195436726309373074403633823513540344375256950509392105742195605749241819718247562895980302272330213939044032623938789512575568400201019065607322376384742664001765380086585055741719169318474394220257580216779675740993834498472650200289581987209569063173554910583257724681655747088126392617571225536288119000923126308809283703752100678726686925924754571789461122654599634617773996201537561435562674033422547907553394649163264230562374325735257899054754928365918839922994750295620506960908516089193747278071418099375610839406293453182385857074177083526152303524083738321256898013117188184237510681362373790007589824130450562840851948909983223466050437466893424856823160252512969432832491443029349192486066731859262170330955622903572802771347171146742825837395676674128683461591866765716366463336047195099610611782569187229253342506639315771868252376452052360357675130615922942434218801088195158381053264734196231455822520283400724785548752425505200830014925304234248458170606830195043693178448459013396636431873530911766004624208665463980549264110502181652690194524779574790472912850479024395711306173273481121310160295909079595821977547621658830576801660816280159559726253264080725224896392358964555198781403111027899367478996107472954159703856683944274315275715442396574400084975611361861782535025446775796119976432732792667518201376650311344881095978056167342871567206611557154207492520389447520486936056359568348385070088913730576325251033540368308194560598452425796577213614233338190700439572438764130661776782786032532676371337808413281501601171337938313945527356019411882124193548079598179524306562010148723280827326999310628958065365173711725860278728157084926220727709278319086600072581727104951477857742736813545617604652510846539810286396828106323827657360438718680092800716201291560970172335067799613145909432564321989745697557778222688335128260190367208653644155261848734004317179891565473114613086641131951186610362688563888653789390189854378838813888331347567237611873936830307728118905978734703240075739099349689844852290195972775006207053609994681064687570310195836173392395640556488059469933766939165933241805588910434436548247525757184208215569523342912675057815233986086000391395005545224888999886914385995565286827393369816966377392584002336612132366735301829285563151983606858216616581116821240149039802695341747370296264341204960911850383065598536947485538211732974184932257134757255198986330449644065125253910844020892195192747239256056824449827756261202335301783007172996870554088977495012683788311176713428300455846569609800268291661673872237528071007782794737655317695507807587701735649317945213178337907749985904238719087015981336327708641392636960985161674733616780917341432658141328439519308139764353039751694540381934915017494349899105120817706398164096601601941254468358372661795187516864947886890617653591422411127897953082383495850101326944849844390477943994222561839507622932469215579409747087646266147589434602260608236047353329591435666046920834307725423977400168638027325860247228638307540138199966084463455316603838415658199988594020582654337035773469882522067536240016778284172741406470473891900589660670356987610159979220102653412288724354756081599072650407599835094510643902858215606421572205565846307448661219010054185144342648676082627520229408519318864931197710051401461589035509661110689325026752982622594110698957350557454029343111777872263108612771862875610444686795111583530408163542373666739456483437724887249545049481037490972817202541169123955055069629166822225784520534637244644506024004268805613019600277438163004717503584382395073159236736656505455364040811909438563831229242887151501198277468620497128692683417314538036944931850525528510574654022200765797277550455694871350975659279679262968575258396571176762252140163877177937046478994966799930273099258655260404400354323583200944981172296773022810901893246052474736992111988489474600388501202998383694340030191841606243506601588090685866458097243840048419544981420901354660996126981582694225659855084216219114648142723531687554079603609196967361829885600995849521443641405282524319556926226267923822514414450203468404023281974216860468024520299250702991888585926060057908866311776751905320506607589504240714807679834518303075201310465691181371110803251855321260937615587181727887621526106686598479700160100697871677521906840928951517957669882838132942777012796820864384302542855503893896400218229825493464625050759157997732838740449506975016899513339954892404548915154925902727269735122346767111232101159573667152038248230850295985334002480818323364104570435399739011983885125403548416856803720623032749110196410006140568701212271396598368508810135691237617682271516201178467074715983373183168868181797666105745286099088097968361599005104536266127798437400181447717381753184584556105922632876346567673963665787313347864578365119127764746656979221245113964248256008277611751100526850439396151988681964291707737502879153785286702510864707821235151367394547031318431848079477640157410930667519998478176861517873721800684040592895970348641867009079988861812827430648377095521151821823310290285905898251422394558383023430883990786060101878134480263288401498838220456627884288711648485986934327137819702910032072607786231610887773365624392218130091158825144981437282592605935479248840484524173522620198756687425792872314065451485335515263299853769672615963321574658939105149201487467920447101838899829474137861937695553399322569132108129885862325555692758161514477133880701182128542206417790536427916072624636390591886248370665986538626844186184135987196095556351172214474086140944124508505106839988037447480406152977241284790687129283560266042457408629288213634861648277548548580696671911915439704874655914771457892048017788614433006984087506867436203840825264813247342200020592617374967046632185932772288540683209259109753815096968491930955073529542899652062704992216914635084711106607620975681738562147477838600839917711549985777231042975464868432228268007234203324811434375989838342728927318753886166495242949471986625932320322856442646195134492197308151953896218269434688741162135604858970822303356909505893736821928005934602037998230556591252128836104906546922774031556157161445127571652486196749625569127413787985233254168885622293555553047489313586754019876354546820493781751017159296738584223078342805343917897639625101762412494643529660131297232194254067080745629362452744310310512919458783092005404324230755967081888921453887499197514991318786735057956320426274557061239216849994654291232932967048150326117177344829909068151797543936968375162180651251194574095938966934078085625578600632128280217164511642007811100770422274643559460212188895684473954259770696140041545795385857080157197675213352236185049470682879172955031285529024100273895137211288098428836078132239450655771658028410230734635085127425538232143594247466344169904732205061369930093542176674913430879039077313214188835100283691913261693069698812513210914031308091501311688126943235946613100304496292594008686534955309497963958150954824972178132785405318817337888716521310105543855311207651517362414566725705231808634210769007862436742003114237901708474737240862952712154056834574649438667678878546597722763840229597426318237339287527973884504829731618680520785353462729504402974408654733083438496652739377084666924245087074408180770667319308152713988246389608728052344770874122940753009288782915060668215127350701094260562362735959396393403945536051699370139411769318290191229746426297278822069602427475674670597822451775739013028923323740978963952554874402825936075189910839456087298185400596647145398833815905244082071793268865000086965373367272553529572293180275598641069033589249431365457536355477934016332936258789274565446496875510065551122122649492223813433216768050938919968383195862326190414374162467965333111555677171150964957103070349832051797223233755715280675735385323950544201624659730245912402698285504118088216619451336017979467287873290883600484468975324491081440347093144288009510440741834130358984897738770241957056160705629800067135931464430262735865568814249663196451415058044935022233001865921840986329917137559694504009910530439685815570545915392682050195902486375039150802088562208187672641361321370251076783892993411156765682164780433112449921112516763463713426243424295886768678009349630562724519708715325977082489496016479277368185461626971273176822061043623992070880947205018023075228365319360397048282733142756029029477020341007067288095444966382167140084646243482616662232389689479661240319396632398838512751633517974057026953032079251125154331085189775336553857592309425267571894018786449861410075264500246104546320845680288833222180527537137649673505602204794990099309832622281927748148636758916421109611875353654947407914615553979574322205370611670653336442245754964361764343261182301033366248802071290588309670732045620108732735863939009852704752336033348109153070971532408192445597171232927227833660507011422316263233581645887065082583402059103810023712797872994408823055074452411296310696797349534298412888090338172375125545308459135991704523637211873834661490388177220487822878226116273407416565007188436504011215977194848177706134969696490164826305097582659158538659431293201741907319411131309061546115699029524486080663538910035957625526484992348647650315396866542762566117074709094746674712879396186420028694048141466006049056875036053628731258244753251120584024636780671920375423610257073314763811107793623622683824322602114593941785414598780118097864607950010385924165694913809547706207244332602860527651274691658244436971613011990202850151002514734139140216819453037982587813436775540296454763655566974201162367382722051656751657160516999828422855309744685231717102615426752122128870116955935464423504430400901538014021807919790787792176717860701940484799875611152582998111857823990625888957796638813101834441205224077293118342261968760672755298732975869945969554613729761929590343232115534172426165285096213304548416918288583595658489105950027384216035774549901193945766725249912485879963068430051708615282046223851687823675413840662861817269445726887914016943178061347073999775060535285315123500945180187807847552192786703193883382783001280482453583572204418994568156223284278708799172127883060230289243970257430780993906619359910771373685599357203898055081018563330780258987772041344713770590845040815277599048306275021535977550335737855169534539537116020378915694027484932261501855499219541919287597307719089228271382912851758755811496801422553360781741967573580563429373748899390457355253881292285628684563363618842728841159230210705070828758841145756702331751456839327048379515624416439505551682633964242769929433704026640995291346970485301745095151256396717096411601988972955326764663768775791888867540949977950435974844614070995269593242719556679186447029366879530391476925120914565097383868218695108729377263256153344777925680954876664100338796942850220113835399697427896455162550384130732186939161710486176344997559710897371260673397643841734487308582785067271577453197704102076932011010186367496206331193615722265878326268529349562998683906108543302174145828997026010778305782490422212145936280243013408779358237397246558358957735234139711579763822691271496923573896009986203838547141972981994967181939305146833858712351216207527520221260225933821476568268788796571502991128937468729570369619690194770883822482986947219335198445007498752169667347405829641623130110993193639552754067339642380549113503315894853525345727649803338952539856358937740479276386285906170624486614253353141135942239151144136823507522179039862862541732881683781262456802337508457674952419177594946215249764051757272975175188378422018006965701978592960503837476862878152889456685169301879679096076093743614648188775444847547849832290898253900929321342652547293499969506572775091931839086104165650059004247020582792413560368704753884592576444577146523784879475773385898617736386996227045427315176032334653078055512267124481795828314039336150666062322549615693007567008376886145199252733820585472296053528052135381766194406457069380035645669979313121843210518140998808738697538580541270368986074533541240763220232075399972513224796301615357157924937046369443269366325241797500451744588816356802110919475390204760658516182305071016143340942567987072850988148194835667230714415788011808583374775058093439050034114332725980257311108916060689888068789704587818248679047686803239858852623227743356710124299820525773725254489241384102747581334955971738016807010804264127623622432040027929083775545981234923641632593825367860370033152333822456024852317595353892099272943619378030047446383807494513882143003594063860030820811810472880986624690751458056393439140976906394963146475697509600229431526254431386897057133833538312109164962317147486507693490054577954000341680307726518488977102882125066488404311869331327774119926382910820846028731178644201441632851493165644420968108414447929399708392838158240066287854276550305311545797502321499902951586110131619534439622773839883645105463968622038221124909200832225052022451563233151409019048622387018080638223762009596138837435924585783500048246588011318248334194810773542368212091089562319520643569320032779465149160806598456710925404080088417977323282055689820326620445760886623784097936362520104060415265227016824701126474228817310916751134930143144363233656040797188593322376312056005314859631999744398717898111516954952551193165072854020490652744675194430584483919395784856007251203149590404909316849641853666475598997568767339730903157679249076253981683694187291782287142326399207873168269435262968388082741812890212935958154116320565655386062481947116552575738715380100538016050369207040919040427475225720800387157697449695840023174903273721583998327602173064872303754057830663571611254944945632910993064374693378417351790572367232020374280478806191964463192027078249944081319124272195488051802932549913343013786119794197478487937463281995275560256560271895039818268671124588093274725814458215792540169089074206940834272271250071043426637511141080952836269571916574074415714854675543565319372812960180028479994517019793947200316506837577382554440269308654258967411417587607055823212624157202179238606839492778895985491790952094207566719819273385834914070016310393202507140585176481575369040722180535910614723641322999744418006256299825814961813654340219022042229754127385597672107860613949872487251757921094856568416095012968729525653507255924938824776860011182926084440063989390804578727554502869577753802120910910051415941990800832882387846605913017799710712825504523529846673669326696469867134719477004053805031028628531615605535725302582522937203007600322117175125885616781749736033268183886682701218296815407307174888113528902759814380837592062688515254127470241114379785639422017447813783734799730662653548239807321613666358351303210612234915621599826785972065833939065332239042492653324372030216867900612302816752979280080210523776440531781760274797140577585411326129040792554569966505689061827512187093728056057148340326030650385559625223436457641858224740622855347006735695304044275642816383648651562585704601118608016824788489983382035697944698471082431452544456381993818024267636735602170882417657245269810090920273673699328489538098151075559516981370712718137288829784593413002179020601159777140964732001039444527199007939761724170833939793966374491800320820253760723606626515456640862413433367327384091753493367203363800580950756719700285620762654621356306288451476267435591977186907236533380655104461369214893803087600082720527546125295200893779384725432295943008876355656232806302188577775032952749591378915252594644581576268352356891401269081349173033593368980854946681074019274935524135276867018854052498795712249231459390011009600589058289995249620020797538335084711998880101936783254896051886429468079321547000670983229641379916068610372563379867578815362166043401278708519553434477520520740918169483597611007548535777860411885109617424225300049559041874942970257374302390876928231977004788951694687652131921177053040300108690872341409159791949964768316114702985061814170466491270179530935812008519637383264493788866440845142431147834345867122890536165137946121784370919895797900843259217414499004760959425881302418419522336536229343024732706461073382318228404061936575125830721450813098292101450898984626869866906619898523948300494916902179732865159645895935102849909609576766341033568827344575885543322000685844603059525119916447185633529678364271788665940859430040403329271722900884821109759048468024700682786252668380935739691215070972157139809261529314944909404711120495865723408271941588335233322668964456278589705869511930494750951055617680907593405218183956326391767179136283464680773738844967885461309094955016638163272789819638203410652636287837533166082063914675501359323057814445174435788136466032322203823102769367012776190944247714407653619489837551342161104858708295981633278770233080243284877333943673059336744375212943596704828750695250095282932964933277049069980673075859846993601371151255778871326493057151538716374230345561383360318458089532846424649680284678207772422045374595320928357224473210270414648195603429320097406777347064530937859594517146615096908403865584733695478670970637837954264037050493647838822272868953853341437969926275393127037007755953774369529515140928694291553849347727444631562721121321977878643751454845776888140460646180431637138562391073190037421284274651121001519975616765098467725754391078473714356955988804199919357428087071444113747504550260904041087417985334191302715276799226134470523705372978054940508736333749287217054002650302504949313840311340235886936787575897589050488546868928199724918341509374525188139649635177587020448694110993294152438520717559459448232024258053666194042565056356192916697714266298847690741902264278762429939024069606917451505159465494337769424246631194437858049810421972235474089922997064271463077765930744690906838459838583220698088299072158598672248515459824713569731709620443348550333981131462057993196311150613398728255725191983154722759668841509970128497146594484258075539684422381804039119978757019822217745126348600844439096629330307131037327513317929920665685214616663989977796849198100037434160806796039812692410099565041651658677132832277182324951295572150383460291024365995470361401595531996820246998519236471850104884851317387183790488537884921032022655317913998249167382778136188323285008226338429885450090617122025365624240287735515032889892799027685073526344387111423881807715706204278261259859930571955392945203795714041480124389538495471133710676029765622131947659862386973028853206239569460887824195652934273021111810735412245493924005244628291378850035600374908622833196560991576034876773636893556485396150771108472949388134400674483716973534386040898742073247394051037577369958389945087265727156908854804225886876866288779739413496957687455098671908258466912993343715228567695322029640569462877439165573223420296172801436870572071379727840093416970844607319880088781802673909380090602349920249048639228814961268984120320288692614781334694822273091398609072369888630187708338901451818989507505054278942573873712063047581909020031649034496563709930393889744670363621978402254162487061907025921855064039504979493834838068480444544524442880270047791811003228277442098125912754935785746425248832932926961802308781018985369728294005105690644312714595063215850935321948271056185193710640738651930959096082457941986367207005839119230884733590724710474518603757093261965273041384618450836749333747962461168343057886699653802941787611692648522326140471580855292308380432289292950002474506610088246569996575749203996708013609805835690599122460358445112445750139708706064550356055053512339683438800298917688938177356000305901841536587413742211636392229364496612073038861206634660435980287594399798770021804141927752114490975544765208459670961331762370433531417481115024118411474458641996031967326808384526177632704006277453465829962103226118904101197412094348899398467010777719918511500344077945055543899394874319343319824127908958777410589636005529981716683650110154520836555483708982057369275536541296971515643946218651067590068500338199895917901008671805651995899066778729700127431884707734407290746986315795748025428567372774352377852064815796726325514216858671390331114337914109339386143745221820865626122289761899679109920391978293560243118680418659874757208033539201123200356536643538064646908766716267998541939511002968451391314681891351315298434674327610831472397994031901373766153614267723860589796107852553049238645394885318151426126799091900878343278174619838246892537863278301807732352676323305071316528424689560142543018111172254639659250305424305907481622801714790545527493099782827698933181247428409057971110511734974295996298552938262452073046430117371156123256869726702602838156691175100542634773098725375069233132858622188371079771752230452305264679328861734897330493093503363065234995025521479450445938712226656902408116722889255038282850871641259134400536086442516926089389312878447741166990165332628192484664264214953987394040911820276980846193859977226792290584758429083691953986413514958698028242179922496554148026633077821971155443885832505367481258070871307748591620994348893141862618914728157164063815991859281096193390738582981606013990483825232508977788930845602753942185542747431475449529158690638643429975418274610613278457210311557537685259480824513937184015663226594480149242839515114275073922646774395685943177942167185471445114661101472255800523961104210180618520548626314083433052389764563396756354724701483522420574385456894576977204820735566306179152259000542832276152848833159883743391631960303559271840635087545878284175641177000954789079455515160044178919704837458044372102218115518139919515897968603634677235618146328582344035091710528688584524821765286112582262229470311907514966760102938576963786144107960162987670343559425807000167122787244211792493963211857488298705576367069735940548418676788222858634511458699651167137144459773518965818836034118854595431282442166497288088087012303491472524784060564980232730982318608985308329242149068984403351294029905944346809404324010043426089312694506025784210466323141402677970102462999591449010324964291557415262177497164897673963693879987031706127558413876514906833719305181496767916325417107606001203762654697786576995671778367925906795800248914127883425946467087453761365860553360200234580780705217373916698327928551606665264989203274637559117017143736856520073776778595842535841719779602507142676907475382064922438668752717571738737485008908048532126378240007231185919261795593170339860451439303215968949183955850238196783819975637666618545058199212012140504399042147931080462921339044533719808519747697265224467236214925951211340522647385523273587655740364592949964610706331926802910561160056233724992659119060016486137669363338225370796837016901316813668355186553234363820431517435674207473077074723584855743257035299092439208146699860728106979184575574483264862947880944566458862865281994027616943611999458716740441762113187742566195826649687407742172203886235555665222657425702978624835019752890414819305578407939184372286976365037261124490959208100061094452851457984154520520922534836063187723636643931765817331658612217276487729973147875040362844373826979507702439022208149090938547646444303611025230634843144965768507146471013899641270076145050668167110434902096578972048421979082525487544431422075284301339316473888144049254487778347079563318295779999532615257728985546474844466566019712891049368278473013868652640719379494332358004727241712975579600837749536379114282410461148435027057741615224749936465231589346867588346829204395484799334807755029193772815504501204206755522168621449256456087811000967008256238321275803385805686262013794787202573803901048593846051960659020608222250047713927514150797315589708344644354197262014068516619447918574058157005043253102924636750968106821847216626718891023741724159594223069076403418507048248394862679239653190980348195230763521914441063427178848892957705664862902051942585925675682780620035187160482860437794406363198985427230170328914855749278468029833321253138695828449045832268186201889971243001932656166766274988709096414048150192340109677900138899297013167564918873107540292631756736543898092906551397882496496064831271551103457833797751886537308313622271986659545292772124704143997279131216637043450757253987893425380794264464168133848299999609185327601483672933050312929547945205029735775885695955122301522681124279189621476654113482601855591949292184599562129611920050299005668267497109959764232148551773671268493915202426920994838236381230780586391363113641652476907295604387445428202530586102586580682541608235975153120130178918199903254515027785967385923142509077592642401076364667773561409085246703420136747562731822833779759860125547604617487555253856482929004041497485763315131876031221900042635137795321793659095625477133226994116019004027027522216857727266632654729079343873786096025996837218924974661868509216154641656526479262624338772065752642696414357555763131835571994308957008604131675138790426854430212465076240509692527944691662087462511464012813434872780088515756112564742175832257343147652792219886188935646086535860749056150887921960089774787948391899105566346480132702093879055013148474101009019154371106867445246826203973187595155842706100412020848501507384257463066603680352119723072941576081830381718181889598486839850086996635835473805058981222640714045801427571903562855701378907105769188540131236846349215663037073572216088529220260317089623019054597751310032794426705064705987492265605902312934747506660926238166885592412586306133303586822220766244515448692720762330880224208727278682752903363845756852256729569904885907748826431225525375583441191035992643112147221546006819030481049224665380796075272148667872176566498439190939793697957254091835597175287301731876032998544585383425309845432616339942838188701341917445321640816692105607725783818851005383798204340967334735040466686468344167442708041341966178983165124357336828843679700418068157142193725562351219388272485114874648811687884013524969906742856547715722302416510839975873978306723290691464181485791007898763037892133748084663451212804410727944247198725340188522313525907195155946850745325995518717829771091963565363919724241434634672497345940564338671545577635888289290296209808947973650406219698279886308568205503930523987169636526282798068678945450590121761734140903882176916611618810230123222693424949408991553360782209110480604573327025406310984256855066849629054765148310333109680048135429735010117876205970598549455626367251226861014395670110599374199867420163796279305942206829521766896892519430147692241226284111234167238999578875127933307105057386480497529070676184819353535248293660787005377671709897025799755683101989527269412618252291487309412944823136787917242111704711485346872282028580550442559983406465003915030956285972889794918749658306495735241590475375428522671119674918708500341664263685298067330218655152185986695976660463279899354669412759469968079488279285034385763252626200956526946503356656598377118894833506348127739202271828679438599112603581834682298098117867828454451649729805721618238130720931469523930461320345974125563372403681584436227348809710417380620876632892125728425934344083524012749287683629317428423842360849308036210646574078950245702121970970311328115572358159046708964117319903570900412307442712939502901196960515500016305752021215304726408647393792036190972654081216711526759687515036478667266040242144546138917454773655569516715952938247032734247152856865732588190642633820632538117743751672196746784119177324761405686307941327854577640164371785114399154868869113480895182690140278321677483595965336193551612756306054005983135342198242971684744040562398173769531442592119163729548318626259588698762075937198473985122426335996396663668629315117208515879630617584915926499519775805362328449563767965809530196031651542768398501179566873265078715882065639210701440621416361517473809148671586566069959311533958444363425214924534791257007619927024950123499390136827991527733034193652558495928653992502285099859282159904955726155913259202784695891265577041949251008824053399208624237692491783380554808329272226628210061471230733349249928696448858684232030022943991137760196660183555845700395287912085106105818867889129249865475008314029169447226973462660340619211815995657198680587078773359295363192081850870033137526490593752270966688371194541682412423367817850546669097353245652580169574652398825411757884075981602556570363164982934465227369533998636586932674402620556838473845895921342522738680232809655343497835647864644294553677161380464639560448102859498857564924554768674106134013620097454405834898244284424958524172888028859502316346061638414186192088327584202270551564629346508332422469360810362989639039396347354005708061853729609047931436556199464468517068759000628280284774399741573998825942528260810118894067664043585481971178701786681386543795367492090361426989919913257685425268779419786715256720204950911865069073707953315684502434124241078468737327322292017310752987088543646912047346897451819692765830408953639454202280917066479103357576195087596111057266486996419015934358597060242519917678807029554422755809770370861030574035049982891644622777621909500763927166390598027759254403891315264174209403506241084093496112289367575476276887689687498348120558234614633896994442038904895128866892346166671730532606536794556732868649025099844546208918134797768861721705469856831348172978523385482084429340974073264581455128511206030894067298873302314681302094246357057954914447868934995609916250234425368086403294782306567883644301649616217289516407669181896486055576153910624226334177218121440296859060640396644441385347544156248445543196592499308174080739507861551417918359944927443423243601348051869360377051977521963625069062046147720454390902894210024225626387650389480170441842853775090063130513404484628626351368347001537771774562587003427732962403276921013216032663910305567860427047649027356332434643099594681279569139100219964063449727109059786087609038536600851157926249788664262695667718441756657123945867710248933528117608091735063869657345479730817758778167913728668606527194492903666794460460014505141038728141313472069617091131103554127159103378712684319892600418435141461381548703478268075469740476468339145786017866324453904283440791786268348777033062045862639333127059564022655088327399926500735007433909800243431965139489828624389734818318931340240941002169436713856123238461609548815016910555701732842630150856431338514596402131666406991263154790546381608733981201627838290923359398300908720461549818119135300327022118204563316082582726981260136643004889436159041477677380299205521447416288564758969768525291537383738674707577349790616452579695912357788471502997991251122659730448685068215453421717778163578746008662658011049640846651664899084303454131238708939698740400621758684532954076743779118717527936232571480380171390046502785432235983980765519615211321229548941686481721103180106482995531625956731502339108822485121240498721279038300013221500333071217730415624758991103184964691728279593300525916472472194657602873944625373065797272276045780588734368859221575684331141578581088035694969326055899432840091722402392716825588313534092170884975489232650378167065202394796590605565705029494512878906618554826368579267066111149691195695909650862418805427987678907160197021293312898768940939801319762397500797440701197778557270622038636360428782697235206693502816529757076872314248366203269268343061651679412822823057627814045479141989769259581166587066628071933696360526622286231751652790073278796612881499213993867187575445786892091063073614853650766852068533320699748258125047622558798355810399875112590982104848623747071906047220610447371109901979850861609821705445101262895774120109336535519927901791751717647626257698058847802365643522452401091943224041906214900339342278100746715136236584607414745978700379899611125221504585167031249479742758394606335374758963546826744861960977067554466636150574793738248107114569751538651630247487946561627925893711205007232975032967005777478239095865380822703240615922234087571856906709020370578590484532777576763868123240335777953309987701788680403409725391200005932504148214576367602883368359038711410055562806949484207943790808506042892007979052982797627124642216533932435325885318211955013886201792317915630659743596320940179778917671967035571218896063786421264763995378305792374744066607526996687122595458708756523859690046040444287322697311969872803560504988154173996618379702216707318390320521318028552499052241574064912620545962165831822361771304602361786131282453208153069357350558366252857358076779666705912047417601435171532183017570155345590575398990898350098711591022557859721039967716741335403191682154489251852295340179480069196563408677336366669394863574997166368364155994219218756794116711363559344855567717689501508873157381275583878425278090196202898019698045728577020297948181149006202876356193495118294068691333328846850828324688786540551434580755794479518213535494835390040622539219709605939314346731236282711394502031712345765204188511283518184930761244328329899738043934186314690211928274550436687252747205750857142295806628807539725639302920702360984808143219684543304796095060600088898514773109599434689539345168058173254215745192843345249336977562426401518126694010795044929213044939941131158427056507961739338230156955633107217315755624273130555385606632672661753757004820758279600673216131069147739683449052811385878749843228562865128076687490317348681798211850485824360728135700729762705206907133753900972707414151534337019645997422713849242365294202095848753336753203075949671947185886261828002696431997913604382886508341561956041583114271010523602239907913935617279000112186183363956058307712547456983210163315060890288911583650359793920376000132111508507872271222653039758926766721427708197072938192230276664664998189135295562898806389887225232095582796638707469778553746757452481972113843614962073905406866057315303703223036062756569256741447894257133709316554412805780841757512281857277770074184629153154759946087599364107174323099674110433885059472561010883332695523629302823756354813864331057585395976130821485761556833339271880018763995182217007359828248813021559715431620541358544308622951364970938028233579091167685272324333282794672190099356427522696219007824894184847538661639085724420684747550412718286914058157723120393529136450277004818701629717477843587227911834118085049269422847516578685029197824362906814413153982438712350528827234109028700579219944893441802559252211113140029963256060156364477916484222268215473026255397959094615890323603891892929436426886103228823396539125132133954565005243318118658524168443658176280835290120303810339589581739133535390953212269961745468243019358689064726007939602678613058396027839346024937932715044901130518543051178696359583145800908353733894268757310033326332440637261664437746943981782559337677553131091207329420376230482600483110349162042120246606587997241550523822072967151774959913195228240852590202727952364543423069074003380839923903129798391968459093975020583799388373833728051002779254991634397494855193139910940865983225387989467170369799606841325325627818275488114226476563644216823073998171845839994907384034338475917272267840468581432804440070655132990357530721090476677085986139562659639907239403007268256478791355418014799199912416362647466020405641422530254978975477217823299848080798411841398615056195094219696545805579561463594951791185999237241289196929271401986514903940122327789740706232029905391415572371853659692531370500269188343074583397383073661288740565209962251590166449202533660643937858794370423155861903017932860850268094566857284876783579251009992313875360909809656898850647477796643049013405953531630653882596759248651415719103554180809242426632211138601854307280644663548845713161882644005020956648995510465787372275870079980693083388203249484952015028756636995248736422231074997016625756382723335164833714954604948413487223629195465063427105641669883901988927471785586666673428875706343706218044287843497031259362396706851870469908021397602806017650377511103632885452799105274199425795297941265764237370834907775274052810575743221193055914960568998114607267843228153624608725254376470880421399831405792070365720368231370766680709069353632742849559172631894095377728054996798585616197896227193418302685126477932744513864391882532815773445014089732622770085730666160905316745155388615702668770432540964446019867678975679053672680875094675841030089172207200120829727459245791822557789503410718797485024882970491648594157241506025487764031841485795175544096747436365051630248646454442857480489826371337670010957899148210421895522932891755163608324833531279834263175264186713219864969291558974555378274296190542231270991999166291587991786004614828828162900728398559803536646530682835708769277556408636314177175022224570933626568002443951465622287727985715309051053132320827336616073183535853621905929595147155364104036137517930776585418650811019273942314303190496901081507279902510465034176901027828370385947542997735549556678965167930920566927098780547888409871404526958441765934299324525804285768419354735960568894063989767714469608657772208695737214442995836146913261944434583807562974336271808205830359522751679259917123463476273242627432985256513208051053981380426689066382237045829229969779626305067135853187129395071090074705204638815169640265498454386082493664818768107245738272358491111234987164017090845362741719355430861619064258185985998848090948185301522392167848709357693289583443644080459934971306339456826060705270912502393721419044718644411632923014344011608225467807929894631540719860518268965443458506677646808369936247975427283523979286529944882264933030736523955498704189684476889371374853851505911649734710158504883440347015401924960873835337168895338754652043231992936822090734684002271506942031716417031000558857820102134034285268230037316468872912590941244166378072919523633697276569865453660504028226050513686323529095088377596696845988164083885733322495789908782475168213962527131242841087649126171041069334792590178852027332591410807120975967827326404289403247353152529978634501500399795689582863986437374011401492760398520644755312501348272927493763124903063134830299116815242441380255958491235533493330996164937626085504682437230781213743878989951691179637781704523664572958023302886425178650160936699283661176208505469484930682609817964873807416875121463932768833327105871805958167457447435625920010091694254364977572516844414593608367462878293383430938591122272149958507267538801501119250741690139485500346780110346523105505810406110703524723082098984449028666072045072726096478201174163573972574545370589743132736875807364320955284208180795734076643636140708611359671993469220982001320771187020310451898109796216600410260045096905200613211629360933453887591069402265574023028201117856106005865485200044673445307557884972307638009981159691062843147829072553238735142895779891899862120495482856898955993255610504861190802134647835615007937667054800982183997189670605948054301663432263146684946748582568943650574942787506367159013279874892728536111997083801696750277469288822019020901615189389634150460128841656175798752926850317759111361505271481821256683457580944296562880625284009601440459053996046870363662011781461303430574616605519030363256039947985757638452951834172813914566296635954772388975388585769350932570822456706763366362109274719092771695034948198741948626368966152860332689080704809878898317147858185666918662416423863475942164260745005688178852305340004254461955849271592595293135432417166228212002753719335019083712036949735088137696657452652751507040008298102370012162143210917049527615086076738624806697693341687722826835025523107532437494037797887326944539531354059723367924140510630396500505583409094420780045046099984241174780901519997372149886051628901092081251010337006923825686449011946245583710659590303450619033427482814570084729257600066040990670606753405360324483577532317972536941250370133301393477284998326522634543519130372080180797542272365147858548180960980972276077131733393080019754778211537118410684520080121805334010854286805527385945789149922307967572794253338511631318286150386774512380312163825509951685980107614548409447683285446329986897781560612494013569921769803885677752691733183037946302358676578036899926235951320590404629148873157325957793237064480511118035834892261606118304148952646261253247661117457996453654535730844077084810032144638833600664061468817458328310303758718573855555880028114925782507009606424990439561071270117508263699227040370113967053718022073375145533971970286393056878664779906471916759839562620544955172822794699652969180228360068466307440380849083358364413420239157472211461390277003348059443714480227200491383832928195450901093286430038148548298917088517212611559166215341878249624245682104043444213621905075906708594290078802297277151809361082157677117448569745747175137139233205728096758512988814634789858608915660643566770238473777237236236114887965793059966165449142203611673182434181438020654819217858799886992197084669252215378997621915811040507582912251323161242572926816744588902437217159286459650034115805726353189987347536426629098992202356904768524628238833549191721193026854501818849121140044914916097232148799197345383703838452159142877765800982230230513569217558827368243029204466307369259523561129096045874071171097822425371091531068872880303402669590915345552051585166764626936751498095920577179267869782607343139737850270869878666711373617945195088491437805016478664683849007914621247041417191873648934672930055334985455292173717986250035389806643610459851112833177475847697275837370408747215299274371007678124412205839148957441708433157596866214444000716810410184840570404433169848249946494756256758118127845696063065031752057927038114036020860607391485958249156898127369131397432603180126964179186339215593167499088597747406749334288326544269156143102693960139577726678919779983997986590666830192762311872987100904680219247932665621563607485050294030800890369527617839750496744052500806453609897898785785305460750303312463003353828116733409477506137111078199902293602945405975409789622053554829155792516818454496737153331919948967139128722081797181823155832815809523677234614298227737786645424266455412822544954544836976974432090456767068272503272138564870317324270533172402743876366772572906681092228150666342707424505149776166118189818258357482108571928371315056459738872816137307400469030256867936118065680978096838011459327094691171258490228054931846253858646361397662836252316280859382579468643940435721095413802169177528407217415897411735471604695677881616760098301436759167729627932724608600743083881107091362735038694746847207148905865666177023583102682654957013331077717476682575865929166633324788293331164644430349621251123359856728773759602915035974126670193195325659517039570424316384053265686692687403056226655001833005993644336094947834270166376642154008172414641625402177682815882964433080745732473099180638873052244813818221161206077712968294451150260640811046865680324855698847214047259167494908832618868255554734578156511842018103436630228374558907174852678096173565158971275971988408168853080246388226240820592004094943908757107962920251946582004865648128314059860660573227363406399187950257498649268032474320123934554769279152757969638655859078304701667408378440634756586339591302078126116447290186389874179282948503310373059434421901933198472510517695117985277238038570524325728006244210001973175366625973055187574477082849044721099127216798113815394827874374792301190734572382471791848747431362497714241057548135655526121626187487502952095223920472016516788755096309889928747254877310708770721561165734553579412645027677990263927645843538898090214910210761915766863748808537528725568164378215863321346976698053220200977139344808393490319737996881996817502887394827435437465570557839923087598272257358775632360921231673433943763755231895399885921370942909297727937612591870247318044237760834267093751819280454115866849590364045134463643293053085654553629392348986758090800845943082014891062846922802715067826571580689724236617782771662858771202186526813606995625272716669907627195537853959492112562392220916042872678004373215152941829455243389601170463543597211083691526886318509820819989752719015943574103262419635530704668287372472068207127811272633780365555040356330792852472409067173133859372613228971978577401155111263731387325115045892197535096072981448168606962843956644379508183836878295255802232971085195968225172495988662464151288406864096035779474318526735068818578887920330036343046601307340710389445216885241451645783594207019115626072904101889243579716773146483426942731977650530744183863589546987400271332875238499026611898397283717284621874430343362536967600587129226184683118017661632429591054804697511615156889692366356893371516763732554413335496274136806542887058432675112215816283127038371737848180731417756482194353596269539493660615877850754805165081390850268890646533551422454707342504918894672554618508184469406477602235244157486478145291937774199762775122718826616926887059274690395805079118522604189431882709221741697620758674443340471150277889687888098223492826960502624878258547806211605766614780461325044567690487823825248507704075508062520483799263051128789114914141157795916988425137546783942849348587080558225113649927544978560839344470851554252628863584314333006662813164951266269940532901051651085181209138671741837438032042122137556497337564164099889094567959930765452484605255985856778191567572168385324184924611200249231074505552173575866670847847888543844528522373258923474730172177186812506827614445986409686879541404938465827029095162150485277074239096668405579676050535833758520831493854779945866112195494851940575676377790306875430995645591069086557277502203939316817665190983573409678671906578499858285640450403859589967189691768073867300168930995932577379164030471522324865116782561350028611146126251078733575680578837272188956880022422137137935572456928660880369347990048980507814537837986313266499884281126220640110431373364874029327945390787766640814985886166335686911622783138800542712711830487791399742342240175022201131665041039782960817110703530733099437387070619075988112948799483644837987475249477329796436859612347043855606893600728369030166409261354187037610736586636432735345416642430867703362280342727105821703988562030841519596103253133761522580878153387936508391938347778721242815939311389954262801543169786169446437812218100419111438748212788594525950058133637228238408428688979795605381295018095954727889627876269507916525226329722761396956515866475273678228358302366599697691210877611765890892179297697134216564290079956103476470340645469037637088555029706878105737112962677994454318045853451113683746035601215413905803224118139823345774509127468198404723062925676781665226199191991032336377912865723182673965433259848508569518007003650634794670568830287040034576476043745766355878961214295947497867031476705036102526262253925085399250062331937684273994944876785029976858728561233328978199817406417516795658011812878728598231354621587732744237453858744219155521787786566517057099622115378782815695287596283737777654734502097616481306215369149257981873128309584772956546113064962310510195218223816063610439296647250224684814912744085394751360895742262385041995467032482954826147730034523669982805962796416956521979587186240683142945035876883472988791939408495705755853842613506477657177031567585237228586236428791869542771469015664153281786719566135821650130922495914099067005467822002075231129916793675031064403008878172126410376710263784668943616123530751067235461397206938794025803092773879181907248443479281275453730108986089340900964631982664469495104829213740448567624412914881781288831604194034842156417052002925162053751837551155139412695352507766635298247665739142412854513051276714357235796272334821635509324725725119092646825492372442860557122260532676775588988536857876964670444092597457305381729581618992562323013324854029564734025929565722036751778931638461900833624793984727400445717648257245912540039388129601631764423844992567280637354905667733014512533514469728377427366738045939488669268751005064867034207832820150702672430659785412526549193143209335690885382518412721522032842768182742848754900107080266108977124503385636846536352967831541671443841863655947123148647289492056966456626545825384037008672945746860501485953197009826512732079711816549560456214585810547936526425184632028290430788340463821539760181338641735000132407715409552135941500570074353944214737584188796288324143260309009098541247414970090744069930424571145771915160473711194514499122736125956328512260327328312502814124480364326111633232310875812351523328068930750768669669768147564911683057137683676335723412693993220281256802122674795933653206450406010861029736525180823999676629745162728802365149681056063160924759777798645970434725946090855574743009785957705244786380503988221422262920774701187606261484561492330967687756169998854716981607726505919483010948688967561003198776929530528422473911186212918630330745007646163407294297811989683347367136442743882767070510501046281955395513319306789393431203553071512366140256093573188162421851054199862529175049002594844662977488120516152753821636624127923103942631691476431721695036559264500468456407790898685750802513567133093275080453081970229194411536775081350800470221261474672230428101997719349343564004319252110245589486873530398714628684917818916795434223442363106137377197290935876935700431979459241735102665783618084774815053535480704900260487329122210388346691905218788220960907324204467299617735338705303252685664064832347602955193771544681136655255322461837604628457429772724261207108631756303279352868783908193418543921799931277286641262986082135670956738429663251251588593994629544200796512010623833006895647354245351258274922023692839965111448518961006570805574941469457699464017466334076621574047719332400938820583381557887663933199877870161656671811271967801386713969565190604279791913844931985102808998790997409997464167578410306310909076323848171460377604909699215899666354368819253709352977817140635915602757124215640337765535418855892520479474488444172014008930007203700836261096770530765072438511542657232250911478893713194538353731962302087695058756837905130792947289533946101780829696511735878726005073289375316197697656014884965834445950210327991036571075481819357373531001267015154876382434580940494619619696106737346514434910414558444239822990732563203113933401762243146011674621396851732398850237707213245641018862778286713022793857868419588687967630941901028909741042048638346846200263808996848493562818639011751196655917689513643043313560241260711197275362027843355086545016061372571401698707433760618216802215819036481934685653493063923451227248397171664591057343003918490376173355219019170630897981380762130323002233529681635260129911193650507744040332690880112552829215275908244382628426584491656914422603147308274471482082251095607263743109215080114632549688851659543809664536609955565297464785706212923867004077144357550744855872337677794241973644417875059865397766555396121916273964484140470440890406118113120616234903133799722078355495818624582321480894166069458655907675141944013540081602418176463227835194676175128438356657185318321047694699433940530321972240965119696048397099744036615910993187339599875571218549021719150294144489694366635752870730441512120157646900931565827010684754888848597753788963108806971905362710484858861723497683173923211032131675000804962154437327160707927200463725517688277601041194235723893844599977802989923120929621852038522916493666805502528511258398351076700276565945186635698079676697324631929332837599845835150016240504525816758306182604382293140808562721762622247669505445004671176764991893109593893809434359808965177702171545425690620447376874065431285120762692021562120110100668612183601448931572222429855120136283926460354357063050127566585634235348023528984827459104641342163761380207353563797082699548035833688047170691374237642820525366744167784210450543564914611681482755078022549918375732906778053805539424284998576381412504256118961627614877909499050177763739821099587833435416023192483157300632515984255923152448249565890813267640572133778385019873600125445828497717370735926119427620402554829608565862017580819525863096315496784542438999646960517032357034078698485326721359714109694945508624161826282406351968898533118299115249130700436628705711106005457947380535052544221595929685244027447426124581846489006338685380833499509752782832498986673135798102185542059698985643429815717667025482497390874125879588056575267357250115639134237952191028469311280293340561134079801756121619008792149185744119970070869085709801798573433424329932096784110365262660451657427643125753155117976507054975398621533329265725338790275264718787078516619615740093063114431878501730128975895308346670140715726401984549217015596277869705359551907740674551293016964134709978925035847490497385015861251657105638503051337303819087076770997847042228384907910739897602683875090186177810130026608170779717359365811482647304388110312670933145908712698023058505753306618011871307953291519601985104251870537134677092503878275708236284889015956682764413803770549818419169551780573469412168768945308060004496639891987182778388719041812463892738649894829016625860676804344947564370760508227290506083373503050325934996787083606156761385460585686787297382560369212396776689704372319471745318009995213989052119418954508908559555758424887774542627406859698562933916615539393244481977820299281732625429417756849868137633916888479267381573135312543384902356495525323565182799379433225939755435807694894702961688547625548727918153483417810385788486073993356425289558325302430396526882928667804074426416381110575149032117126355207378343023019466428103225486418029447866424696855873785855851529550400599021603796025428639298058134946650154742813606606835303450465290325370195741414420101938145214385427715841426821232485978829719169692960904502985324553440470461603479573597069533719923522148498403926396325920515823279101209660024495821279748540814056100666402810465339805576129765792334585753435277964240440396328066339306001038100981968271623169192120134122520729157561375648365248274762270777323544555935463961190941154096892136045702776512117033462356697053094576344192139192778496941086399265819281575858933409794478544698516430378264775364347037227653267037935963201600976175458973060385896354392415534589915274558998715043786600851245497298420098753034601077555929061241874909503024626449771974737703530472302004428673837635157010059913423996811750228280942001211970205296079042160398235617471985024216156487646033220411398416764575799945431463198292980999759845635253627432852411180684268532274076760142283229047235751126343843516493592405456670292467812133736145088918528806192589186626614530920609950195012016569302295948713894786429592913895731253719725108936049190028944345159999613790524663358758989424178054154902999594006987096144438534166761066471958937205299945888440688374381362428240378166685810323499228655388957322039173262327431954911712741949074170866162287495639807980432526366711384620187399606507541906217633564605459020930233442950074795109386938704890705129172119552007988565264604623188242464826126522378103347808382933752227167577828823700992036833947000417656354102790233672011647377177221355883132010389066589233730464540096752674709317295126848239053209811068191207600525242724589268346270629804380918280265162939055806529923256460017424510150834080831552979757010539457950729200104361949655622818669400197144107247398441976644061582817850533557643772864409566215919700284260294090710195671915656636909803017717738768637017525954581544947402177327975938982806140911860657020255926563916645826193153609465357681932229693389751183826614492915317079212405124428672908438582030445013862407939154632075681263515047789022573713128451628783931091870443784860595878160060219120653562000170439891115411995723183736884112575367031307304650510484562346510727443207839981389260330504564529039149482323613643142103881391594406779697483430515557756505360533510389838644776060989791324818216263306145224522080951938454585853083949543817488178274072957224643281573027694703867664067640447181492021458773192491731748783129635602140715902587541602846970259134867965355232979633681418218756806327293232875578523701899442319264661916512566223892156772704912416332968422723617678524495142318832356897367580594529464100038355742571970101132101545132139655627008864814356573030246945729898710147835870623471706320414221026556642876676784091546088348893978681925266977356403551867397266340809077977333415508196139078533347171395814424106883798034565005694426218469068522423303212830688617915114534797912371989503058354199368079464085320944352961707117449722765286578070366229462850076559369703199680189735672128833732773678814366162008739028146384927712234571081903348704309698288558419615735223605941810942260992051985049112437855400808413471514704124253868338624735759648600965729519000370416807241599459899821675637253348198126473463402909992932649774295589000832497591279652974857140712672955333574775084376785599630723323050426906998859365446586714347892965189773689991605877358529730972892147351052861294225935683243266384251718969664521072210063568994193813158507828921021157628550093773183884882831034152605324240794639244691906649691727574813646457140161142405014215637889450995889168043363198318872918887766112818943193369122544302859309925627523579653335784588242979001594428282032033450699172552514124842474130145909250626948970274471416922472302891026180130516115140530784325490617683803325739552981034508996786968902678358419093366026862026978472933473666571092536555496926017884532504655215226061950129168436535779766224223518191961446246054642502600390814401148753627366824866973699810424955473395014169441416310965740123054718388622734652903472830587545403094328846953218064323542353832274925462998040407624149690541173940509368647572831706781459703830385003798131057083810161294329992423447973695042218745097166519126470934824198585447598326096038475635975362654630396240164564373060909024539401488659022959366316331841897448060027852766193586862304158943551028340599146751338984277100600513533975385479186044167663126592506642276073180125457484104184653619684581244279565292517489536106154257122104089181397417484924922137392306502083694774733150849858735812480306230154523835001618277438895155135016504035862029019308056660049275712016286983542234017975415220209067823468772500482178812559012386458302421833111122008146981302558674982511950593801622895378470579648106870170400172778891945026488076860426370211631393457053243940874688629958070604193639445953872866866720015537947148556241468136053453979933914801947918525024685392405998071462436355039551028077751340096406733668376417789013434598252741670762535289570755483682213016890681685822309241422804650593252425188060002045696831018134208001599873427523823540520352668794422038232586952154893779672900341297377587215280337858644295180897598297991045757718701796195997834486523867937050378607287410793464372001082605133029768858901244085934791594510841637081679832503654542485207259036554071995989830520276448558801213517292409671689032374587608185808729157095034626489771414322285935153629715609149733977915907063293626672966434784332274649067507969009122282824123269523959169689460342416227148836707062391378577951139379621309059258802093534992416761195360720334934377574222573608028901231086610862004605025838370544972042929350121323867141759389948688439956686754005805137343186147904665669156959981897342756704472101481545128268494923010726485148742933056753522460436970688816078141331165485914802327492747623126302737022703040947194995004520731614618361286289275223148102886379050703118454454385061960473973870006079765727193846172456882301027154715652651432162734113003021576868051790744341999202839948358670879989915512017930755317803109260154078632402827125805284451297099447167193723619026416228887483546595762499157031687183552604737856647301842575967398210853086303580377645504338333074854795619853218036626272991542134836706184048489462601921947637115279021931125893035169537604860993182933288478033537893755169900864388862539193353596049191562715773863836935579206686678193937105267917879301465230786265549014994442359388447385674915338749675348375803601194336574625638129379256373182193853923501951613059088549374672426102971605404202059599651165030679823558928246340713029647754038994071340993056207892190900906685138526545665179197608318372797112610344500156182836901035258732187780639911887157022766371059808167148768614057243638326619393536703147455567354925217933979506966285527661023612653595486150218700639314727966816909039001776298810239289018937683029562278751293478592153271716314411527643740330125979451925451976740100999347991502914409820016445620223823258162525709022886631818125617829778756948002418990737178899787160012145916537587222373728708764511464111812003943633774023950646076619849872816172106923151685313334247371111167749469576425812152955524189900138376901312193637608562193337584401992608618697307029763188428804676437262771432946004472486597813243193046713468065253333015226443141826760421614785690164011779659487398234344294284006565588166662982025325243887011114973865643867591667273696786096907880823526222469787012507558628532083352185774605126970386019890528552795969716594476573259349550264661264384151174021883640428128364705093068937433834470107686423178596857485224076737531617139953392410621647313014864436786096943991419130099302877996883258784421981640142323370157298274567989923161333759969855326862206287195067323340435065744658766255377640607967173878054441943480784620455964641523641983507161231916261358538778450819427307547480186481591475548226249075997482615252368746093300575257536262384803288212306239248548021805336771225486456257577325551582462539988174066690432950386859515644073478343376198669081860510514816832295865232442143591807397578117918288668505280303832441856698848468541116774232921266227007552268074464446493422035045675401825790622460221104870926438860928892169272953471083090821296289080411953412276040465488928550725465152267016012071489749523704243399346630741834849365341448968509217784569847013101037868169741979398008205030724331593195668160111820194396298393912880305217433426430355253402892082001436012594145261490084488715869659524639370059610513481247930085894059427557885542712040853505966406760562945626937052393945138002105090117759042336468854446332431874416457275379406206973552322346538240319374533302234618662368862749265054218984018340593738780536731893555858691170425771171526355893803884909878400485568884316977886548809899057547096696395510618929970371475101144832301870236194174626516600504183696630446974289272538761710231772925785874800891497598214543880348670801855930760644036673369406023960254112487757192065748545399995754798832483734818657352294833669327381520812273924110852885624138044796075125495869375318942445987657523144694469865979946671065242259907009642464483222919671336541794820813033457653021709597116543894788906577108567438887807982236991105482847828038218695349563849880147576127866033266435402589237938603827491687848889245181103455314573215450500400628765684260230505979798517493233335567821884763557636680396505353812314817461778614107121933096966284626574463673758652668940684703326302712648376447143088111835484371860902282110320346732406652545451325578119170350145260100053987991992820338090099060159500590392183570405453018165937224349082862779914471785660523739220171943672136358565926490756768308077289407792506640254093036243865061936010286138640005143580613822307396863283408372188971662083374830957386405945262338079047631528374473482947440564880131451785458926582990754241173823677108892021080824198946414094811301699017737752828711550186355823320768583432836871950318772185046621368638387434352010095891044336381284608524988843418771246347613647226948726958393938653297649380731034659801557886451208421621050693407586975125252869338894725738055480228703435318071906828785704469688862422413800781669341424431683330605162873414497976114338163995608174787114870989112260747713970925541517389168845634687980942560900955378532859180408678757898519254601845276041871084756113529668657435949133014878068523880409459775758664010337156436621196233070082549475137100849807006299431992426998392694362107572452407621681855557526084552845777834826617848602902043103332982120515388660558522497826477545210632596105639971576591614150882781845295760206216946595375157999297243119128652311243778961822609799023366015148618243014880177238442982242974377545311829231752168657477652614873540314011473264034382333931813984285128610808447290840895837073926987800038732609064720604952445903163563349431817191180722417371446872705827541474184878815982569121602184647367422243245223789260174320386013333627036206795906693783988016118533257558093780839248252326430832464290558473991372119776766793332298156648394561696155527546150892358856430200162909275550000552489937308210461304959983118153640561615441187590644014903618821481615660679162470503037797869074640752529603709052683908490241177456871922937701969694182040913810387997957478934613005117090195564724634892890682933493464229186144180654631459516835123634061370527571984780256888184623310184242659108814069266630090134277457865533539617077549529967275322263778514476004570225528300488419525758309666352116275119474016945990802141319868814474764138136151824958084599065976467372208215276038410377324063367606043316694181112300028605661171525124359919878847460223391466345406347414321253628041303533444394178878048440022898744454467498636288594982457236125293646421738768293437069407744073546982988160176088761845330673983043351668728479126256378920068738630194831860548627783088713644444569709608744167767697388391049408325796542392799377673589468299871738615165718005747223020591213466565445442099168403918589486922290733151918571540723969763851441020305471675679215296406842602944113100460278647614918581204963739370247212533085184779834185537261883768774885778161607548787199271074109254217423315787515699617523438890558147880006069474817907033754823423253888837705735021307819810532281303462392798854025460357099093629706472339311411354510071024474836943609907488587686350810877039575389125324603977956789607643173274748272621899051587436511624353185394278846570157715609550833847009623128987928451283085095820386489807369545347199367791251234022052892203830759769888337635808462267752464126899688860311913645992180103571125356922378057103995456579956033213907631288259507786274651334516858036081658271358102455781783960855950187988346864152728553856921333398164211707395394273953664984936443387544645111099189584297636783096722962592514061491480176800687655027973320853535723856943133549673562193930528876654310199837168301644695886246936247633248731283974221717149195756781761776709424739494619054125733241189370016512058867712436608275664724840968550015468722745546057896531285060107629937865622804401713663213197410051715108016776519789988236040041311754008233913038846711434226242323063949879201268524672724294719544398320107430120603342723870018411503980298826050217888170097845206486570613948679934878976091545998261794213766734550416720342781533702348920974997937598735457885969159093719975350220026511494102144558391632501159161410135899423551214220629162054881282281108548689263077941198991330006477457636537747324377444211395569335451099333421970631421952674204020811784889311484685837827798707214786068882859564866729935903898175179527624768076907150769699259944022474197831452155912828959234607842213056152421922709985661869222526052258807316158445457475885458671087569199908696900912194037445189491212430226937484445633889850697759910491874605616390147275161867195290328529585525924260455502582569514381051067856868332216646264707718147299620793639126969509624253463757680890825116199644599920222407241288317417996622404259275944320741894377688906973146898552653298627356489204988839458239091763076082128311611665884023665042100769659010441032270547896964460533327509408709003451367945206509846262111559205553546040786904477882216566467023340949526842860059350297602497712456760077800380512113436397659885306369106492281500027208399687879266725590133023767343038062137954119628019456079905613257021936914221552117843488761936161387296563363933064779037668727515622150847077728476753315335153011690383380456736576679385910140849406191632244628929739352299406126570665740362558564725080566356304549974723224653378808952471736955586410753830679870323836730624247213738677359052962557536623226726516602527651814289065678346943467785836937211878057186696961890183909325128586560595837292559781963070195268254572797258634978329006711963210982244692613753761669001026801478946450004912175078003966230762007266315605903081235096181020568279941648952620327723933278369612486457412962656442391015223326809924345119919682686125380473927639203649223877388566298962038247084599090767194597131161767612013026507118213745217101309573495196404585165886885533357143356510342734436372937963979218538546591512385758827281065603326709278584732902476774599445131113341842751510416009581020351248111410528564645182518049349958147689194125902086846291977826880505797091871898450349469836738969427323856604119574833964542435113797401108498591857995086942906168436506597322727913756610014214634517904090853471341740525111159977469862180179313038177146775491477679895523180500019404431316091477128900026901996300077685621450816115778775810507997116306525485413525590695170967581204508428948054603797812637416272876396161834783029847733553575376675430542285777359834749090383063943505375532220172807527059016369830483331970369992116007137195565115702194641016017073712268479618604966620973389152883903721460699411462344958405296509692795351175601563702384576848758858120927054536681454096937077264932787954934518560968647343565607913234628696205268574804613801648889128548613469685711402953422025564361755763610343103751263990356000648277437393080127810694387514688256118878124852767869433026091672991866778823971250737028596847866473117938260180142710110369999813016133878016420066052679748340258245159782683032273807458471444808884055980284248138138255236718805500385622239526530523239614893012389102545660981889771939238043490634525750002200317336340530570629382672332932904822315493311477373875248162467470840335435617976486565413496381116736994597131577822073987978518893732896810100217382817903400742040880000993429080114493578549132635465798952515118572623294574960441726177727345207524713043938008950668887732675678134250345468966168934648147166853388340146712365844604624885384967565892131052565904320685253852964743786447584973919665940803615058952825519859741716408067350069698490128354020299996116647326347187177894036085637980344689233566807276761422354270593426200136790048072342066153153253141147478054907712090664047138192514972782200471046414195916466559464227442846160282538133548573238177828884891506994966173147764164510970666895297192373962202695455181644310435766303107980907042058314147417549242595688262707945342294027049252107184624432790295795298522812701923942969434782728077979490051587313516518492925785053539381636609612806204127227191454022823592303662640274006630827487009023916732268628685683131248535739713074833432073980716884924239060676836793868409521901084168523818287558092861662573950637012390289790876539480937074588287485539005621827707456649275699146276580430398939283594016300251740374443522924096526346302443962369155539835369996103975072665377921717232909764385982910915165498050597141317262775418309755314716575196630279026223947151641755705348430907983889616100327775750495758185633898007385745239990682994558018120302390783907759696386762698772172403519189875933017641158319318207494603242212286954447141387987435436713850456023921922393135299388028523435958148800911571769018847795522694043450818193930734724812003590904329854398353492907345725648192875681123565506989218818626524064858303193226805932959983793989401034568408660470766051682979221666393469809385843611966352910917344484394479874549034528237918749038108315869192674504950520187072490660841876990250538261190675406124940834971318657261780533492409345482938359326499198864842443014258611227468733692060621295594330721097503912664104164524499637906754803041163614010440907374939316639333968673217978713800186190200099666522353589826176793101484829210475209873966210812342853913360231842386398334748115304462703131497957805205369230045072382599736999300628193505327699248826856355021486968118939605884208058911458640277619440528563968229662136677900799110574312088118429140041323584528604316409606257786908813407785952329234047337355755435520034513240137416839097074802212974384287072915262827660197857379857328642585232249205518722732681283602493366912197167855741276640358348870810364636898670842512719885368878594678414318305083879734915201606634110665691920496506922323211773977365517628067231132705857107275018125559603406705391004751452054447617441439042524247098119452373209111254742007184602366307077901890315530563716155578857126017039774645487106058709364444801494297534602993196143041771078533413138848600283755337596868034857488881249794572925253893690645552916206375863338484659650755812211902021392891771296264620546432518264080693343635098029314016856492046321322190624322947663940210992318238057300309135013213232080905147291923423086172836466524825195500993295129069493405335441587694471662400495845610163088440987394906676183736739522174131840206623464580810186487401668849552855080578904894130610497032098122749844459293850011716893165627987305935790183493865747693948552486591371835560452135691378227899980284148017702350364753955701112589991208203759659704229450491387202836805284181382502204860967440925661714009254817586566217197222396582930804617365951183970093803405961972203118902186701569430963068630845242361417922588927620016309913862992620303924354401621603262846640522390357479034022365437112177257824374669623630321888670947125781667848740994895038049766033538868807326867991294332758711914164992177593677231927512152030988124724463172994043207469798839074967627310473688264897628720847615042885073642235767321071484802700228687209560594707648116655605693209465371198714926639391042819495992902465102166744144096611279066705190149893723142736450845200789592493468666803277233645453248269266386846362916370751852342075089392666572776143894988857918056951442896189314613154649997561763619085793933367819373373794219452938357434511513485027241547504177223492296874404872218714929216004828820803746581034116404332522121750102823410297328920710600664851199784974874441397157277911136557391745749040018102407180721761450193726000693909403093717750670388380183885922809615462643590689967091727124949387438518423697938588986148777178482581509530403921126598988384174462243898491621991408182597258803517913748771008960541704128643350302158900050500248348374871357613151343911138107330768138822162163180823691158908938452170035583773759751027726877817512381132899224054409957090689145982703838481654819171309395951163572942399957189039745875944054100196206914582179703618703629584221526533248549835492125055840351309151299818869916251822052378293774824336671061495035734913014257582795716860370993089881852765192861424366230964073929625118387087031491531847409555229878226195940901727377328430089882415328485372508897597508376587234030766649728680691014866229973702068197657534031449017897690591117023036280888034345428697836326600683019667230878022518233300835971658757447309455991842827606448275942682688572237019477425233265220454465306914667702315693621760419148970111236116971815754600645719863242742021643125445557196416716230433673125527001479973379854681554435713672702816548185413705804320854466667854745029581786503849005252076365251165961144097921550988058004209825608972877692273676114829605972191996376812847266862598639230349953988103636466287409565151089950303318932768571289968143026708527526100551974947662762886406015666026373533137726146220349882733085737964518083921330087658219232807970687605758350386552797616806496901551522874405094121048160559536789400164902480796702657850569854296708307970250486749943572259670488617651174977351866898699116691043527702243781372481232531804501421469660757304993566560012147932789649117146490737119550053892116899562933686335666974042340796819106203729026596989670327851229750186544250877994552358274301109999605572246206064450318437218111269109730573012425434159139323688690743468446594120000548162769349617755637765096869973307938592987691717345908691799106827064667687407396403567778723742108322669464291179705536439713752426894218144472929425776419321547857337675334375017734119485104936229716085628168148575679060783555916679529941188053468368148232450682538451967982062229850716223049938067601681504141159462090311574832136784425842811111799121710720134346331441771774108508432542243630898036698040101057320878190714486047135545477376855038764822569856882651373327855805752411021870703901686588258591894248809938248515513907174407627951296133230676161486018394278189221742572868776288489308880925797150941763201713508246980819898379600700717556888281514685049522956774527126236513110470292652504652808038284473543541928246842177694841554569843028289512094665838388685331997241742947289491430022163288933673278830017292013953223678627254463316006160273875632884752316283365927141354114283409586403588825322387369806544350712141935019122759072271802760352519555284286914287704420026179245310062283830307165968769390642734362488298075350771539543021727292421923187697933270652463342715660532949138320821831529029152882638181309458069122073356974529804559768110609808034028929494259749042121277446398205871931624967539254116786040436043960083462547909573077874501719159058615753533803041239245356128419659345445663361119448034462155610785201631805636975926626583071252914896638357305352233540285884766286753286285596647065556977916183825427447311491690748146655694083280086749117971102642797242606321459959697594305191155610209998583230775782157482546862710734228243663614627923676030009294673355945900552167953809437969186926661243361129423307509038404238999107971438840278855558182129295484094513217570308856506452275680669998836597520821877597936098973179042585438013909203812160821980173364297955897906416284598932587093930828302520721876503336687445712573345845392086998735928676779129045565160938237428357834395305447377551697302149732145914881494760523858702033935436367336833028746948920106229120610368080649769276486054713224930576944755122122738249672086950084469729420858492886426707141044865293252564621267362297898870987549559412779769490298122435112411089243330520238750212994567689087313920968991811235963442942805356772331191259499537816145014531490805532001939750497375247882796018812402694202501160470199932808435858238099203847148018350606163651709286205721544589918041572796834561151171736707081007867501504785101463926515436651766842899474364781231424228845331736678008784603653101718709112010640070863107955949638732076669523447560510374206175138217057896602378954686095390357340854993056757139366583232168952203375106986703971269629071943861372326588613638493656050511099570841746818899620776251845771877162136406202439563692858280114938007235337150144787329976351740073639518883528801481399792377145865294368785001121643505311621051846444143190554569304074108101283218435893391326338039625659635757356583570912607322540909957162214372951868306962359910933110254047869836599092951481470167745646825647890101081293828439142453351289308013584807438961471755668061909533812569674873966700808239119732206173295331415455864876254363839188438058830052232622956078800645392027861075146617680232332416923064404198711034503690244546175374409078558253687649336149342662084213208724186789212945667515544380984996465177514513582888677220195254625419976640085503342420523215938120930152539804732077395720991759017397371179052681595130902459624980831499541475821227037309149178296824688883581547976987331641313066492460509855545928067096247542166734716267821785611253163906885721111965731245104038513371673886997149610614149047530416398575870372752558717076708527816707211808202260197041096569019520396287391931078110604641894776173390379459700661682217761281713129122305574897907944799403723971311624537640342472724988398826651983020535154553477828233424199633129311979903821962467579615326632555890017352103612290648864271133905056600606344747912252417591249599308897928740242627239953062579446934577640231810606044818329413724948206289577567238456371239694534564111341701876023663424358831032682424888659533009239103666135871677912595194105265825918791674793543257120623170235415917049606252218840361397567773029521783958098379220464945190513330130158062427218567983093337690878653453658994169504030032434225132909363075158945615727717043406595905269954603059807859172033922343108015148245395011526971108028332818596330647831380910024574218448719602784287887746766031835055796762591937784283990208642135776990579401733392575163215200581273618446480330130136468533232626872217679388507085264651200236492291252570783051265884709775864668581561577321395251178996713777278177238309623167475639863116981635435128067245539000772729491645563652846745244919957449610301580854891135289864693590540842519716405090124669035292102318827389283373555552547559302064140543970860124291523236631323781521080017638994251250137862215465716665818169296558503534136173327848156716399890509606976498772537819673580058650217009343168330390734921285663141476585383337240908741519409764522250726360719919187042857614067402205091153454232085777225617702965161962184025964504962984078603126527093427831941356370618124021102756025088788187201106210020351886801607057249478815779872465606066906009678625637283617332524559016401618799502567149713763608396954080152244279053468770466460420498757174799413762868581618666449990015623664276519215866915187067358447257292151098734414209003426137147057499443644304144974261180428283256093884539441740223812255798994269048564859379168798738988553923677576611474064437659836296880863895353273737767702754994595971044027081363838768931892947522273804190956679603710051713349447868356971265370894075957841320926957017567797274109545565368604243451997891348456176720519157626148059600272969862922481428546641372177675401374777065503833833313037878337837373075309469761450425057501032982241365298072630775556687513862180890491572814546460836630639691102491426531687604134364925136946856741212584190559153778076096871251932338238151762369838311178113222037161671344778453617061241035462058674420262489686013287178735641576444275950335145991021530577292431984473284151597543075335620795170166010661617225087525682814811422499412777773848868994104391922533391198949709147720375630900211149109770717907011988522756718134414787960232778660977258411828206453508268126033734258794811919972385287892801615533457468142416559498943260162127782119541085693577061614483574698226822665262793638375291892490443481537127229055832231547156692575101718813912691371406393614839968665614068282609028346827139201477833831252423537517445385528659815705915404873321159251157108400117228688473639489902240305445990843991714998073321704215132001777911940079693118976709146983319540066371864636215323107552434580369673487395612629371998998006686542724521687503766736637740572892303394554057920677689661868753628940254481488996704131749878932639754312893957885970230798173808254410740864206616470783324814885779837728070204118341382455062910526924369995957050323362642021029998540365425190441140389074879407047942690283022936933314655779693210719199669954026737279723618251527721207822457171685671166770537758903687291639963912297847213379600493992712940976637964277053388824481103613016828955843289760203703660931992392928326019133662051579499937664444394639663371085979655581128480105331653185902474528824458846647973108673106180045492656572286610514237778582416363246691228150336772766811596200858956316868142234688201212144004275490170244184901190870008509511168758954874982369527166606153984716224766269060667058269189253198085888868447676644962474794501575731074158751082976492474844171524939306072952377682144551558963901780592253509559645842030570667148212352525114505657843784879907680789571176521606700549899057830674536985098797851919656992072922357465121293293732572017885759207990044634767069817321723449976919342472013143872472919049538726497270812463354499016325275349810009561849471178764360522700246942619090187532145610619821558205203267017714574640277588123621026348901816272510718429618544080339008758491170382892777534145358516309375308405400685406846332459051503471421335862348709695573768361270601765910764768647579941240714567380709270490030882074711445602477606130241974994828418164871271353188145645525543659684383568509886349834595205056945859868872684156975188886720798687997010950122157926700102257698224044491477666568052225757838117172081598930604848198214317028178429921009952050911347436082761576484580530283513875379600878280897695165162753561844202748326096037052909719607189723772673305019297332076396123070161762746766505163096517262296586625123901061242590942598075625180220332894363343775789124644157723345510045040595096599886610725265430384996065040518899247525036683075226553538645564219445043424380578724169362941302123435963127003360688553117524360109162813535556039002312990998021386981621076223609743302873461136688451714443543176666620787840685658784138041565577253436410976274717598881332193162962601797861879762087436085367744190891563935532666253827960824269585229186872382761334516998750042286775931979073092905394725060818187106554327313917185958171649995516331499385555624210758436276284684060609434952337549676660483650835634477549402083991512982014375463682437898991087036441697849009990760814193773588268394168806594208356829298685059601646337607634293591125716161392010961537166807448812531067966466693299595015571352947682211748767240539534372158416410936278480841461191844069868278483737949226676615706211045163899362720905979605272544560435684536228844941768255657107678989342038646953111620499345858768067174080415270453861669109126724444608646003159546191322086212041950841941360070779779148111485060469786930043816684235708028817421728662830859483911133849612585163528770855569295781856288359663526202619878254661701473811466633321474025404233185058828992776758472892503536177242331244537108223602976138881882809906958202956197538566848795607756429401175053222701885688867022510224656066953152305389809960224259582270415262709638794705271809649116065761411250397733541993345809923142013855396070417903638973749165826301077197812944786741350639192277394498221052452086336267385228167672775184025074304022048921613023333490893309610978271964892769396028944203748760701704111074373642653735693380050760712870106363273844166951930455535684044373533220152727232374931365880332778643076120550918043890212919202667493021999390009414836272917719124345518860114349882125443909853530293293394321508550244445936980903935710762116974883368908353019674160251178423826393790680869451258701624280849395616759913391602055148677186739542487242037442161003679599950390928280374877921358735378135543103828905781399193309729726025737734587892381014604314852562093278416811773113910495125317213642499926326943846746401531820098948790587752538782114781155399398140188672829306050722506088197325428504167163664591554577641218433208249341487645333840728705999003888434426140431454868756778081120131096796602291087394785488017527125875812495874439412778758226879059472237488777419874092656950021928912281271870186733548371632502108082685911612129918849091988317677371927658788309869855137395063706070313918415575445354790664723872146663399100174079313033930619202752587085127436835948937569164937568655534907876947116312690628140550523544458804327902909997268543272142373524152715266220038065563103580964639452752089083991316351169617195465695973383849818862618722163625301600607560830102999851001984546325133185294213586458088539288362853046319536410610279056705474778743525017992560511151044720072852038603081157590899559092238204909956409344637789288878888040673231186344257809394664710876683705712068441221091059613614627858576266137093562697975956213361118503543361760288869596928602497331587669278815692781787011206460372888403671547476560563423186340741999781963689566129232898974386419985365330364569632331039314972814020300742224046968556647947476715025410319697986330919952605563107757539966474415199310348560177173922483765197134644074680943900902346023535026614872510976538564363228690702454084560219259521204614539715036601723075882757292144630054499740621388241686391668781982747635334361000314742083283639857286576864047540432941810674581093702440432856136561043462113355146102684754573857086221762334938154788866061787752446766924625139171729247937268666119078667028201048622627433817378381611871196901223789350831529774244046809379688562874447042683742441663213902925366548535256389487151274818036434272680209462506331417835956177122952117911729958524181267486065176002812067579185247265481050794390283191172294833247617060501794237769180183001895417787401266190608603019874846957152444887433092353842537778454501520138692349243163058975115646641236075507252121386008599289557175665519994899596795297136152430809545272703709062556921015477681395162407440981161298920723864062990748380444151413319184181271945965415431261353657193653634285423242221759648757973311098609635391234599993472560243124800169226281082702651165300225712386906822877836931631826772904172549076809140939207512046175392554597944295947626295461069834159970580459125161072591559440648221988873937473893463090364539333726594743856572181561844690949902985876597654156012718654400651050542488517413152744972205800072323930767024373458219463187455959188801230076991402997756347196652848194906402274564688682369730615497367459846401406908046196117934129863709142045048388613727494706451383584916671125693323961424967753587858589205783463966776046692995271318270567869955680071845802317419293101887657887386282265389850725193787418533727670128046553863252532116357248555838538691811528137369535030037057282826282589294602057668149775970984869541552057161310448726424153686675480184772486771640524093473151233999626477758905892316725867164302818367453339215661688244797756856198371018800428617290469311543430203198730697553345126546492100165386475800863196231137500952961407109373078550982067994576076425481442444984539735029185352867500692745008582280762287460251905319675191704011635038997971205680429806782049777608359243167466514831355296485124367254605230996598801108445238293005346599475683650531163229289042860197044714879216821253047831396972991552590342953941720784312518592111872090755252834902265921875389829357549690464702654765324726345464269995362509380622970248136231901465940280243951162507105275275407885704810912032848569651193507153878639524865292153579460385106289076950326758499111008585195592438530772452140672392929240890662420560349100863876562494696190711066460606849842987740485342037336283377803740929157961687070905840162266910369443813591656286882776098238766865657257489807888208104045678373876142109539919082580768130174087094692384424080686493272334217851304114528049700407890678972290976939561599042384516452605745615947565306506400627608482379412247722621533747953051050738584344360757076426281493549764022998709470179328405693976375215461614213641975754764971923409018026803759097518748344722007894625959814396876487535346444747682299575601264616325930934185724013268913321127477182819233184780231776208293759181223470205813378819540661630710555667574606640815529994706061450533673681193636643441690158352003724528096897810688417491353659471019756895026712229588798846176854455180425292963794143092880269541354914299351653684299311657583438997034362725627891392573776099302879250307558655890321923649154511225312592686160591808284822146342174239405195627409889861757268123701310082072273125185812698921940016104498796172917261725977267023742816356072620102182764567909892082286056897282834109067089924492376596967422991176537074260870621334376145450355354546120556159230015660009004603720335313832942475867783718767689699066034252311001197503988272728062053167197938219863330168228742732589982092716649969988629533088502886947525776442192754654642016989445671207775648544468851005436619515566142440783640481604616261218421569865641071795251608258412167356847828404471279139226440230814974174951131835412490466718476881555014187460232348867394314516887981437781638154048767395379436778186274215111103283497105336425759127585267175061176824030032789610108159423096660383683056252045539274868259079086422977940653770870307396224634136559145041654838338124104825419596663979992245274351356576631196011468057403333720257192329062918274397347511882903483258178192443578641602512561243394531534172919676590240765929373626594895922473791244967125337874516470435290520217851662879643921010384736752556370875002345899045688148637811616605772312006819095011530971664747346917390278809441719374107272346313041611508083397743381883427577307459002789098032496556268031936915536598183875277125838534184332671299738815290832310072936484176463314663512190473253526792531111003247036182486849361594476414371279817211358810088924399192561781460693076651061814007227646913148723855509781141847119999972503782655323163938716853522763966492454085649732562412664752725796491310359951997104841601744153702173903841043431185266366225693626314984021671919483909888922059171740239120649375685246281271966572346295135903859778446712904665382481755038190448005666059255545271603039684226486417701371511441127344819783111132241370362092531214128694770402839852208185809312080087255421054505962146356464349482427882155937928530439572157239665831162313070566070857356713334807526661873678252152904816480714468593276135424918336670202659475046480323871464519682991326960399768543806758523325173104564782947127880234348178553711031656781739323827895656318318394777388683583985468574095437605101169249908821479596362965055251478603804553762790837181947373042854935244504909754532054291820675195495017330333880801693826858028993539793830908282961321824437079672979256799809388785174007685302267517754612688481429972827131939238589644601034296085187378952603172527489831860729315670051364996128500899054263322113535514206879711378307348346677487384860771886821302941192406725265531686682814712120138407498438619886347922316021095944434512025217773991492648755213347780169598797876799845427273563751208688272448704900000197484103415096078175924434281539556643530126283504963095210746666077416709271799909843393258277050823476495276757609930756102052102866356599464329217637746849332760523015287305505989869552661592731466484054853526956886575469960173814971108211469538340465040798711791411527106242625912444922626981440872016168520775242820659573489054418200481504204771971491553443115076857156505344846097215801579239611299446812951522169498821278636002904039264310510157504129626507923215483000199020965244342934481276473870149794691420469711535557181775669358513025399856385911558023655108948057631268094815770373643846121821914212390289150517654379503232157354662303072382143076426580363391672691686461642136091289849188232259547115047830690385632143265928018811717712075205943553659342056817812957932380905411072629863320542666408176711840022602882508502350357318925641133834737101989797818508552617321834174374237839937000727407435516526515103714533570201203222793882698792207345605440167405170116794799088621440174144133940474581284048845362906790433922662045074098289323604594952970350787878006470174702548675367376418177766675025672905461194982675243042508643169572352287608212444524173281290230860944928138412714919043178368834792583068585620538536052467853136066381502264144704168032289103874127641709990945892415392434271917816235188496572709928850076246501108967524521329034155576590515114206215743075425633380996861912170140735003939987642621097673634739021320986358775165523305651613467128845946686633988226496811007467566533230316344511086669471812471337488064213302944817987107584138739516986143540978782348953393153070643366092893613875269541836319555417167368135408398817533113536176462946988797145252736803998784027493493257954491702213888464722358154740727105047263326017751525725554582973171419801131247230192309578337550416473571700444265749743125054122503172842474504152071766255318169253338949120716963086677678339286356409397380873659776229061786941447384156244144823115825891782603509137404872548172496918160113984064857721194939269842287328309550943296651634657296325761467045557168095550891916061299680240218562976829318304205080563805963330236933347286213378676558997871041212728684437583831600761270609497536545228864679465732985617975985541524579061567488041631112078772323826932727236970093426674188001720971626710335873410947614988184555870078168756067075073156798576842212489622841924050144183541196217407806097159932196349757924255253477078310907361265088807640750213210739142061891624531092088113214598108408601275689484135553038531173482965265497151638077475210686295503818487723555372930607077933427116339026815734916121694811637946532398390401986783532676735176799191756957000193848867558919638567493844236986299578399776823249309596491034569446865268292074729844960583978184177645505739876793516161904237318822226155251861194522483286448118539163245611108738515857257363115128237877684361984921154325471718600883832744880799859453678589224072012941527974876315733808792587081725180653474221845862326269058269863496643769779999236428333213481286128734654660590814945790045347178079263013756307245443639434879706203711412185688606835147205220436320899656604481079535533607475274430692570481039835157529506852971834056044859251543426999061005712744023635647587406386599797833710346671148993128731148485384541335925810614830417352636604333381598106868063223526171322428500211012777699309952310272531331489427442825474477877339330448399804358089807584992961799042972254358724899677077793350200032639301667150331362073764672058692456614623183100766077356305145561085928106356814736039929556743759733796847680893758238875611840876397825182769555582195037974928213657338444865916710703094307007050219253823403493093511837232602163569980335478533793116678586065977526598706499636121525763936107072945020256483710268554100556545522751631046060235315527793560631728908435644969171827455570926394542371025097257712689676516134520573036511656726534854314566025267208634643029486000074941981873749920564715074459795797421404864586210474555581441376398852081650150485145758928155699948376171342029063560608507905940334200098889495083334848536622020394207667844938772751486066305372571031271992366804261055779255686317838870925936079951304653092313746123496978311220450177326713492942146662157356448278816161485478956710155879135598578149680344540097465639019735404178617068917849369898838897937335267632780814849231104333500358226894347574737622805443250893119490386972675823339999784993628665672529268343475565329967588146727522839152036944249521251194609735339767928049112357423592144412484923366730959223228432539639917729103907738274252511038645046685012014090795703933710986585375204297821564956422383900250005617620571152525836496744956541661511083814522135151527965540770481255085937337749452661508396993183754349557005021799100785186312770867761273255375247854055417876574741447581778683521273934631514296340086995029672509035524510781805907761666715008364864441439544940078259273351691176358387106620261549730683689372972092658630198535780198544863748808211828924474395743816699740631029949517817792235427328082505040415345578686387798768291861994741728090612146373477249003596877833909424567334460790825851562047137111668790134445994665735587639837138515731529618864019620971049257365024551459332836236878672570485047038368712810931946494956846087382104994863163368872091810203047906908496224702397320953419682020548230828375157255061079892361514708367268881971925461788803436956328478766798236233520363345745296223927356210921648300359932210594149506235138896598161782287559073704202555059181203312666484257329497434031586523996439456750004297136667598155122303598516792291827831673944847190891600079764502587890503240868377945236653198455577183665839267627244530824061056746608738909573136556556432134281315973279509873902194444130120894704310434664047623545750218579410321147010659734715628982727775822646406707577635382756625674558665884361183084477050451914688675101791874440385052031851799523092806741657108370090660386815554890769951254472887857208619750915146052487949018397226287319946527910556324128223772475768014827016547418233325417718075195833087669451249335149201985267810554663236764995862490443995886813140902250311577367635787506770071616917954646280983720811696579781089885728535436877877773609261985114122055054667683782677831246122624207410801316013011871249339411945471976940939647310438997806251492510974693949903351577827885323022550577795365973429667977184245862265195066841295420206094954254910929744340118124189518454617252422559798965825160291998851555130079968120007459541331011790354001768230340215882876512763408253383455948561690048693738404732834753636489567541594080743344798612514843806502844093761849451532261994102754037667620346998209275016821439275886029704802624995313293804738722997020128461580467815092491151117488636241085065679260758719805782160632740567324124801698182420567318826894620194225298075807484161863612554767073074164889735578246182099379780720337347028052066267566154188695038874481910785935593699783758815303747904304034142965635241054887427949088659934958142154272220881514565314756622980365245891747061202672717113353915675659622814002682677182656550108164396854306510949074584503971487033795702165349049737802626606895165520415439960268972558278789041709670772726711161841060282886867870483306327043777648695947468745027462277978030477539675387366386100012720980753234329437667152448384910793253513460439699168534546640922155732623394449633473496409196811526236234924541291555255374575583138114739024311084629499837247217167990632037922398378372273308007616498003534634844487127346692710294416963768119825306833534178344658176559186353530192002819958877078044693164079828280599510268291740075848741782391006618445416595066048388182536287768222126281007440553478921310734204020258826268369147147063139267917020834763665804558389932797022035395625467511209762575058745701374085126284718382523696345773477644319242905030655889209171108143091029125582780333439656186019341743430761813669918854951031150487967498370901959443384980301863175880002436999989754502247767291865483329357738036174925698038670675401494507709315689765914891388873545694415552614541272151082054725631700719588557964885333344704472902906953315470391912227728291105433919704248085944118212729060085250385025483889869690589152942616308042786401701191129987778383810451026815907450841981242954196929906463070413925051565420393164600375550684243016178046573713304269913222646387815663493205525907019560684873229683108179032939769493804343868590392470050855003018248482469410644267675564554839464028024917320286194227039199585453022346546553880547068902149826199809238376869580100149015424416138081116550459793665344733560771983752747973707036577402159230379489169695097895401543023415683747777680391509395620962840760709584034628860041244552005148658487793176257102419640225549785259064423237555840799189744722002491639157187185062514264834237212897024951154790405615888862800064054733245730896628506578635480705725600611526771253019206390430460016985705254604731068800555080916996463219928511229851703637846997906445775227839133507575067452223696420596038602573685877888776798229122489598113044280366083368311464576200082407124672608602281242529670756936709514280090127493276832029978512026124212040703041739780031926312638400268512904699994269264410933815875934140338695471477929916055009170081941661314989278314628567926793364294859472579766760479024796211865126018214027799885717008468610102390241254949512894009618885094534610887265486868873400859678107548703189332726554032082645429686002611057909673119654658128461850806547321449645832853267271129214746928323770959564899818861325262726512244508051620430195769619276602309635378745538850618638740447697694450010683658746912378267172621347371686868629374841975110365565311114171997329362125356804798169439380272062389091211604087099240588813524028557036866712784922734851801929289190480825555519895339702862109313036301483699081877804741782769964765764383769564610239090294922501475169067058023336163737486693275523291375878189891658410982247519341593395737999383716844806892518750766275650732400419390732167792145813894581964449463393205211724843998836194186566187761268342482770310099948301767196628008174222519412729915085047471237173928423994080692456349404725534475640599565843578342456182781296795008815337057219920535392376008235780192433461947625245449094105927576846444008228799267971941087706249920784553132359105427173784836728980873974719108011977977908546242337488061432386704842788920063826121259995880601263048879519124280984659293418892604246188658310456394999465872696451701767517684114051477497284440320114305077792506507592778938810356779992656895544730412975401578564748831823179821627190350761119895000011155479492411169178082075801518999743844413071258002500996836555539172290488507388250458848071781805438087966590198778642784358876353356274926045097097093672131965415722249339078491009632203090650271852623828177978349043395132281154504041100485727229871581144451038638702519150475301025418901501544045634324306733672413490536468507107769179962416222608155979209297002364368914833408419533176085399830875534642431210956334200910173750110768082347956799969427733512744004751580847705562530002352122911863246829929565691391294217676853125202565570882764806855820628318359284570185197180988058883373659517627415713103130318421395889409340989390624034839767594395063343278474339888855245951527776000676572312592946421945515194285730340715339352719558682254850698671732921700571060337229794626474113203647352665159587788409374278204053400460098878847135066572523481865488737618653846749973720678617502438894083183651412203495009739202583568308631491531575794551401038804045701158685374574119045809455966665760049683825782535927801903218101906600031433452311382836640391898003386523726594812148049017713135892174904676022408468993720328215069761610500102698969915709704832604580309365168745443131113589830265025001580431022731490665559891088539295645838203592142432870567476445070673030204551019724321351281667055711236639857742149001439522205398631367078027455070182771459743068145262873918314713526168832288054743815446069595678559869487888433857383612010592751098486835646890233162030835852462154516157735997752212101240011398373907006572474149921794115498379738317356097459262191616459198986586474838552574206414103741089692236995852073425043371901908850836657510394569331781521740173302566813715481384355916244197678290975266762108130131030625262695519492838304560652681471985394977574043520417769402655562743395190812050177307905711684874137730479808730188804189110379799755696526127917498961672765364646468005519048419266598357493681693588262458710630264995687789152983282473840913100013509893978462331926040907623479183409636958836881020088393823426369130486825825548602243121548966146896656597825368309595116901594041338589540103039634178669181536328728931371925733992624011178535022568644263590425338229902144224382497524562869594895516277481036110319150812511860817768353060916192376208310487592909082900593077869079253946909051165461906808341895611878771415629876935387422664467545380652076714612888326962277631388767989473508954706011737966014025276992513509218391748052530414302802567062039793129655732720844902737681340408467639781215838398798221139460936668801776555721849163233397869047470077752469479566800105192590214090043479189760884921347134405619560541975005672534262363249299940054213126667139484413680560035040924622821536635831172750794713309052664142367344821529789199687091485575074443282362504977368999832025662793769456225635986390936111375670533561910540848544069928291700698914130602199666337049512685375852410527103128150916528724996238585632448929872606384142398606531017968589428115447019173214503552790715559713720684578314859267878172013898710327749601481815243306335679691239259569159736793110989183425825789663337030258608798262979239720660164486685627580881125200900326214012278498909596128323968448273975923644933264258807115642928125396991675896004964550215131927571210026651853327758986277011899242850532833818650525182820798145549009140849338256174821296323203889667922344403409618486330094192142427768145564658717510375375155360438980126932491182868680771055000468595097051605101349506771499288784482000972750019854595741703279737660151846544679256480417898559192430386545835694586688112940579675428496088354572439253128066977989286906905069467919754070197593196124901444120289668905309801980475672294685184776028392837338847386548799314883019181714388043157322033537726468679483389783136965932517773972698183549647670301081995202218261980337578721662192259767667332578284575997870929615640218891851318376389069119486620387861593318834010267564527259681394245282971966159590939215022192644777957211600507069509640556205928949794848350500960711211193496167671624763814887007426247912065152833457382662277757221369825469799531480299563364966755751886496908169443424305371847643207570339099718321506996618151985052694777359551463219325243163844014682920964574698690323457960171491287807824085645144302930674219433567148059140289825316064560249783920790642813522533086926302059631764814149613285558837125815440480484406646606519101547458621130325184487164678586086324598995550960920037747582143273736484460319916085282448397377398295681124743674010020986261128502933801942733353415144360015407217875414333429776146919063269103901705184025894744289183342263606633548248921251467886403021908749422711446840309393050856486815748519767793401014884266240195413913117006732502787180568774949136119710506962294558831712379887825324870367975314324697201153125119252316369959914078541136535235948124084701172975358867430193647725177928902956892751988956341118193631205613549031584529031168161059301542769414513481100418826499523731486492956383515842989565894334287305338247043105735359925306868884588549823062552496889210219312142839353879137119071751168089565028260369911704233858653666122311358318320885704294099455970651185199083037195809516536209291644330307281500795534437289115313756814015799355138360414642342740628839803048078161286152890075543031699089310886493185955792442523877841365494581615724431038098588859403588822481882908482503334065173783553900312725825675723649120725637797424298502430620045696276163064585056935929988417744288363511684908030416461809671042657349363134525171825874566483264180659983577025961526241769517960993931722656497716884706175991987162646400161002469897612145857112256480372376070902811120826327370243809877389409498609938532265457749023491413263275592484927281047802866884226311791149975249240031775615542674345205683892211939693504569772274208554278557282716137335446757089359593292182240592189306793453745790504178092267999241170364029747018684436583512660481291317912099587302988308549243899476973966814988077833255375725830831624254204931899039323824700481700752804972586771735139033246069140378744860809053694093411496573559979054513914780245080572713021416667880145752800488585282532363766859145139096221096741669607224218788511539443522804030592799996628276693408484601595313715520697066268929500526414256032829560867763622181211449758618896289861778973325112318817758196495360779700969353918504038091299520556462962120952253957619660070569034231487646856526186855021277617319416842295882508665916451328677163053111014129245232038767779540479278765429342715561395852974578764389981016128526577782145410102930588018594281254010947510386223720501637720912468803416045296185688067965974992208798288121771306316282935375028678622875877522922841279714490633487285444959737139928138067435800396034223726835731819947634238139439465421584489931872410300282047676346295479173171316957658964858233712565291906026409569825442728481292922790199434791935767887511741732540208021947799064745699268456402868924890963884334824887422643635412960777471339165106541651984365795488401080038355551945342316722591696576484646598416247855530571713785391733776453809214919701574850738217936389808063290798107434837371383708532045423751415842912143420927542110807353539153435210934581370071854229427306835959518318897405383104699861108413487079411622204941627341440434927848907982799854285280956336143775705090195061169713938852503119337233272139041472735251230609472881829236246129177181319568537548348554496499904423080768355643684805220514537464563830065783302687351338148530104905759628842640210610798976195164147814606148462782315563256510351330001817970225873899529099208797024188645280328694956796904911146434060411306005823718652105304674316016015059596865705096374536796028199496267782276679648055348751261324211282990689229021288369533230641630479981775756482875904546624496504920212415203201267454684842332744299918088139573003179522547299602561827416437729200227450299153474614318269025059790421316721258813950516981909806946686955486681707224551990674548020935370582759638939895169856514781696073401923687601241217516031392549903951357349006476682526733900514092828399996993529023887076011628581957911125515993233815986271880457237662325761317145715329385673316380446310051769519707466092770028143539106961980520912876065336115206934194869247634330273457048605048898887433502944934493507331009389453910099131108683104263578218100006798178915716541663130840356734167199566587566675529817689643566246239804050276906418670693052529334764980624757196780603694745454377384119202918582356207308382806203758139800021548620732159766906345401169474483086649510546814198511618843503084128208381176400442859937205997071486356628361485810500575885772252173765438972813626840857946797283693325394077335326899589325517215174087791690153323625602234147036536935268568944797030938069835583945791270481041910398749880893578698936507920440049397599577785542642209047551122135953199498703996319348699927512143657275264632219800028246333821863970832900149538360145697975217631202167214425916574429117716999565186297001942953738705372801465176717874934311205888401534564875625617438534273997472938180889931962786254280337018552742024596204266101506319403037030793661154986212054505682648365121792713084721902109524167431633450577005247626026069753424045651541510688818053413527932159638396846700914299582758920363103877611855870169793308663351496118868729012470599460754439527711845348327524322307523893584093915747254464597556770596869911753727926171168563840150066859181935880808755845985619287294180342413543551207867400484958919245257209983296006431741666114495761455405380848147118313061988892022063514816723686307404120759157010604630038894768373436870178240537362769583659426343084699307973828311180431017816637422976244694153770521544768940187010105814201894947948515557519075140274023781128323999374817401024435690762960207975534396629008442542980083919221538411297358383757685591355243318440035483875327083652299942483216124883745582541773471900004480700723422129711325008458844796621317472320936438105926980892245488031458578523615074004424112378074492289222011952970879533126888731667032479947684653011976337418699046406282191160540163901718596609486426898219139662651856541607102140058124165821127615215518504333024847715752726041239882496199286670064083986623210856605254106590406295599969310304583143634823267914704917665369737771241157688772492446090250578118319815765943055877276938123349569315153280952709206064960073261582067085683754675935305315663801946525888018763644953058297281895552646291051944035364009646290548328380991642580091622483547448801092666846170053089684835857383035158298031152340185562049032673013618002540984613537622378368365024803074123733549215501580091466892372437965567676058026571570962487351853559265818703560608526265625666235179128143816751395273416445092818340178674284708592662561441176109670499691316479394568701293217324279778348134695075681010126579734276590238621543358883203725897599564494197757227399755946556827571458875569099612582392053231812203223066912486840117687840748505353325959389693469987037333649511366602940906787329674871389196571214528446822336421475488159882085731831416331149482616947357375341087422066116109903758534729049822575279323203548974890425460921353440083750247887630212891010291729833216726318657749686192622637850550724668708133457692276536369217775047883154859791522310110904974011349204509505351390144613108785237207481161201075293599820774615920605988339006553564091777332450318097867622419916387010729813710038912722924884039974747185838345664181352788858887103865814213424798473056156633064296839781747799389412129081063444324441791691896682074894481842326420578686616707266939155225243012466208281520787702187537365734029736926928182675113573451783033848263051537382852062192226096323424311954911217951791589859305909439807016339507600205778697175537384897893022881308317899525602546928216631354986137026740253272529763602046082756227680286537534031733153524351814893398553490570772030084434095926404212874442563115137726365140910446429199975872000550911030395547932548369306303392472192133876008404885731285608393405269124737228520938520367650314695839992958368206884401372311799467987470223551335550775747060696261376385049272387865490703878594503648778122912233195373039398622169165155658819778222385871441965891091823851483577171212987040891911467747048165932399017485951430178234792536380741019656436143039104791890589524884381180521019585316459098410596213741761007740494097000236661311765077748697271622789510063165433854868078575873060908112627818819772144250119977315613169502365286550816238398641213512850331238329386162758944880305999456137319829681724286763830011609697462586822589672406456247385154394134980005579546708877423968036537840874840258507285228752408061255777914049361632484228905017440298613051735996752346522892298805042910043888071940914685395203164018927878299856700693459331636309695359751176017843894361647736662895584723910680173405316696168783032973449401831407251736207496064195938338856083359748885955847836451368388495137122547162439333642287938059706725074080031604856752586879183914808024844884477862812034158420492442425787378308506641849554529645745875012873096475393873974258393117522868735280310355982439955366525300954372078934470063046894299994644097827394331080844934375476829176911817543614647575395087288943069260048403987993920862966153458812845594347097417171142405555541249082981595308320072395863444340878098639911668702646940310942045063424348794305324015251483189717820525936404913928464063680044937896129259538397099346274956944319148487772640587730107275276897653780117809717115188790712978193223369074494279765673245116108973638635243885526972456023915593860138800898368277865931917467342480282909171653726229484593901220823313000859259753416856224131625278133248278317475271924651398005188559729774235555119859706279799382964038415475883185004612977028290817949219695824210545884704480742082143150673746705008638638583931269884193892687673153707103792095390942075643001221061405352068639775326821048351670973195129743302438839162846305624173378904438488798973075223324074500446198370522306171596116767454771912431265031027205005672478327851873766102987483442185233486226004395219919999379685857231189218384640799711221940150305742770625711913923934863748750572434677558235140469845993899802174415488783474244065515785486135399117976726066304969217243063699446181268616172924808988075295222421293761352480463998322844749586639489838980524559542092264373615928185736894969794740965433711724943899778791517737007301333126892668685560028146029626907468670820902184278162949053924379470535539420483440344821797882058854259881107860784272636937365740121157536724103234716762573102654186716188864733750348869639842242919713515331617996025600463176694574379101359956577262829825195654468297273394975726059188733831317642149573672969237663535708253723551003117764997818781054410188896198272843221708765326735711345948165164092534133155368305901847235770482809273531187380213474658966238908841789331687650455518715906192315437534499178332424104378829568398001676231690026363102065348053584166992519740944390985562387225143075274404176031911126223482330793794121167005743843649947353901669398740118880242620962561371950643171347419122220657667847978048141124876876745177558357791001214396879985927059833653098859948261176886276464247414949511140814641154539337309780662358037550183305605996902911083881978998550964961139900702903332082454988158696057588357257185964809836776059796512237408008293584965679629626802554396609453902505776349017343899906011586258250078306678659400683915183395458877443556731531778673947295022832792857141663978503864008297123321071903474428238289136503586045814064223658842591549911610139459117060154626237625501522701134646429221134397598142571350389759547951042280963732803727143615193117172858665740668250538155834041116364513687404115763881389810999322162507241049861507003323608993697058457550764015192117477857003276657139274293535274550006951865589401995396224012003361626579963536319675724044217203178657314110428132150194265373278302828431622098129756401681078837819587953602140640284269727014943284220021644805082166989492957894233573971910619405695874631191353709847915242683499581439686268843920073424685342415388094825818460963506440089081888228485737817896967720158458273214989765099234704349366584507212165771260303072781440333385585998793184046842879564315038084582070229969544998387928323611583157270692760675797709816005255582358078407183575021953730791668889812223122772692695570462522134321951044573529793343963220132286071954937169748211142882657614798075225058282228144745749440350223359913718150318006326588121056568778213185398146542004605918787431105995156838623637052526628710031298235793709007747320169998922212476203606131583052411196595842274438799923004186115432377762453282317047131268424505193683633015257240305709890747393181798523573854958752903613253252909958203478167008324891924328716557162116273174030599570352389137488903101514314151884286744053225437390553591282817149982137042041917336664355581324897029335125540568231754201359437276750221666777765473410533352444527657315441681974116877487049093550013649774834695019172005398482748570324587318434113567313325189182797692646403255847261695806174896563649030799967644147293560188691474896116259521412539365009107685910938138914750770533828917065233423677923432942899594241266075186701363226983597833436836444554822267624109612524855827811327535879932900506093881173428832474750984424198627283455781202589125937073342543847192134899520521462332281450379350047686715053887135660099875293449995756611543953432171175792459985813077652189542743343914827296606437765505673851519101884903707014319303445024964009173761322168317476995057755784621860322512867851418486149152735104251670074214718362104897982070110283466621026581331034031974717402522591693609445234223132024950206471310757017270403485012488196817581140981432713880087105260811758937088618761952908172489693740204761686544992028697263607210864962218963896390997029886318047197597410986518985840389025702778670331684684547401093866936749034591119403653201654833773847898677985704191081710963547159330553367493541355882456831465845801215934378385164276391459631712340645250433651000038303226458339374731772807654930059487914276689713560580259741465050547124213113806899238212026725960728246691380948347341406325736638815622269608676991221324780307655264015673147095648311323233703824601111123517053174184371233753526766743475059462240650442632712614301228607205057286577471103979755936484624706930933909669532595780025881111135485333690149473841650996663358465953743543327140112078079034378391204674101893850174623269547918518782541117155379749656923955624535465656963544861221233844669158536497158151503230885807235807241695110529667538896749385387946963900253540503412148115811022900156021513351213112826059298260879582408568611562229871242235527237824529414222833712488207902341623564724007789255314331903283930727258000014827054183547449272838645743769391171420373831641829084958881812470969575563456427344755941334198228394378642494712043138536078628298640509693456013132511986138038671558099839111071830580676066318214613363784025934257703306822269923282934698132414829577819165794080597101604343491094203931824227169960525057074814066867960964838629364789887255757680764741295752324210496550512443814189778508655773787550035770121518583782250086489133979616508231865820827115374251647258131394343778263782451061158118037516471713710665199391952263077460371620485200067372353132528970141974270579230184025960095767048721485320038858478661794620850658343159528908363289012193347961271027655161890425471763280549579933187319911166897078547990833263070959522725809489629202340277987311212037352157897957273828677636917153005908863787034661985282770925273164181070855533363069318664777075756735818463819446432724655018950787670114586833992233221862106130673602136862613036643685146464614075669104191773433450109196570276287027691888746068509191353329857078892680073881226991973173837656316944641794991406457204966849431846936269207931205054362010140662844398027385136642593698805897254714271887960151968406584638946202179230471056343524479918954535097302963969855841951400351990551292804407992922551095194660991379320649528331875846175117335652604115678846849027243710008063316971642197814072305588474681451336773220405444477266007377297359382485892749164473478680906744927659710320331633450920670985165295286835152415662949304787351164122447604235974903477415914322353725377969208298448519639110893898035260285669838131785142458692942013925117427660593031794735717382312064067295516965210417932093226537519109933136959169653876310722491658049264241226379286779206045746978627769809818771346792357675783587544919286658870113333906417110436883970427133191741939916043071737435631400582318180955080367439651855024434062461425446057057806797343865309129119949086270770959884250342386629087384154034845980905410353877648521250019735385123574148736711440577384237404681241771097650126488046459552205162080916328473041346253041491080328307244552300330446284643484923326202492124252637928571849358604047538629002849983036615964070861664217449398571438813317713971330803273371354879484757643494539950201608109607885778863653101102211769887446365924592079746324324674634471827629145839073848856744167281353702304271348745177295569353012150553542013344726608690394971427876154013459890870417429322088619410542696292478185528988764517864213837602154446428293636113736169641800487946294329370570491500359650164159422431036209718921617737456130470970711062345649624408510345196105941046489331163073879792616333688159771398304541119514960098414519383243620612691683087032799899031296984273910806469569151002923234397821433786430245003211365132143487702960198199886189407502460517401166818725147536630447499121363203310285977924771376373935556091741282205913152395299541854687785228813682027421722783707037981018272153713411408119246561691190436809428892635594086103432757104061741340994299317671247894177566944545682728060479708509082727223145100939914422233632425137323017108166321886434777732632656302312709036412577314501603883003833861452890768264799645872366555725755748969000151921188758460974173179916192032484619882073928093794201993375511376006818411716951328916386121246275067681124481700727118722183137691546040837858205219679283517622044807841939862706202961516267897372257339937302381801952465682123691433198787753941571821433957878668908102535878343989419517671556498406635296043786032950908528585860652381090508747253288357433878158898520034163983507796882149932992324697748067984848798089355941605168001894640687751406345567808243863414487694502763508923437059386808008879692783177579088644919212661307404465687595359651007567206034514400184506322200398273483452463283767063374574967927016376923903943907519540349844608905402556649968040553862515973301115501940969953939512669958883696626318988092048137496792034018813105682328489871221814238108270478578146114263287510340853988303189028626316036165463229335492637303146836702795807938825186418049836880892006873283157368373440328706378502074064194300832840312080791332550149144484162514751334143130300018753123852823683604193198525075257475986180698782226651641382980954095347918149138786029084003303564286849498029877190409132319923132429611631507918123316194712244936497703418211565217100782132345286559820036341388856704138944356513542501948045061343838088495290267674960656567308388303270805562979468661420938246090338845577675809465300593995402469466262453491873814591360562274461787025787905948321948426016199552314706061243133868481207173261793218291198296233261909487196792195695303674126918267362747016424621172071557140504007123539801002504236712903068531515070669239494454773042032292085490146410615433659814486849412624764346435526956162290819105048647716373690057774498221737295783415532940162671856253582029858979331417111859691565239308632497854237330527575112035572664565884435541955981192768906791379280945357135272128401034402839907169869133974208180301225965980414240869453463437798829781470957354170175221836430531282644066261798744414159424107906288354148956765203216433920375553188316881636823991661498477014343884955740000749745489072544076017660630817132832013380669964106395597558025740500431367977827211387629059286298583228216135218615877273615527111228792635987218351828032997236498032928344108571144506308500784593263837291598651398709963323279807089507308803166928426875600350621719675130024669583426151236224476789048706218597048233663380214014848496175992179293600682258132377342845788442433568071329299939674841039767156922657031612029024084022153610505360499151788093653122020890196772940948140802406432317843272949338595817431064720166849292537427301663036287629279879096740053094106850982568374145748342740295767933751390761111369543290568370048641330585806921023590512398224217545377023108711399666023959745341459840665935445061443087469821201005817680497216788320800098111140330789816659749111666955581639000071305182225241839641200703902645166234101823998605690614631034331551799243105009720950631649371775130001655594334976327608285372290906558092965615207589910199770736403170500543495370889529663715011645248681985973981116464089308986044662367348456145492803126029136627785946835372950451732336294476293382602731136898335360076458280939974650187189889890710108465235442169139266836168371804088037433890008341802765630242046230499535740482202951060180608459772993868094520454423225083851913946063266014761593177376351292278483881213733599276159337130816380944889258141913456475314314116065521338311937721271929192045558740623794441486778071176140837402748215818962648489800323762150690559897013174113134004077080376399291172253001246197745281727530239906057503230322715825773160448556825656095129190506472279774412464195710441738607632163608665996452387055330510037321958753669117527450809795851151494777697053012358923597939486842047100312315826456423211394880539590883117601650295732849700100363204817735553348520996272048537305992139596073508180543704960659144242799656176182813871435135199244161004776545494782094852693012891126491653570879222714346268329974893717323363088569893426070384126722817634029761734898950445393384799815704025160903021722208879131926260880309492468514444081427174576078324540169104477663231886750625683026283139340530465702544557497504557838456906335983075582424700092889807163172024661015654078610511018723562633506949808662884740201322863508238860879095289184764481374510490392136042195341533726135083672461331460740707890255767626604328143563141216119431102212464295074283052893904844226328760420272357223914501051756997273368479761890652410039564376027201799875320248858584660073327381069137759720291434987998782667995867025377092794050181834478284447441187593148176253688338037169978492592291841623901509724725431758134996011559406535147990367794460520402690879772528733308707871977049828196411451904251343137696946350577370107528700528425385697133332512522195924633163921576528499153352636154183300052845354028156141579573333274926658215261002970748306391280666678659507464277678472642223625923111308276142495006452859916325424363125153161791844617984986586506690587305216220606668229858847393690559634175484016552641584507673147262889869551143963544178502007926811698264306552199211598533437875734469722901501286016475209480682532104213065107688930228733423201400149971545347160661569861806353383314688485540489707458135935266225504912061047867763745872851453631253833031267016501441188440098085414346817612182980238210051277052076500571013476856863213610551150022936715737963858415569750786395272241281849275721035693865306479968953114022629727202451693377034456861832270220659474863180093868892555407593285553392244107381742419255950602326354664850043673548215265032146915220410642048196254422861975018109909504474344477537812656003752715714876639188647760298178748062353236171489187793181406497754267705807505603882118406874980312022104749002579297456594012064265631940783184666060465232485556971732727135442541748901908523977988337764481486660978840932474076010703007332591041941180385937849209646559401295685117168311275195184668577233400977646504095149755362584130556847625525784350310284014020926029766331879427524954201777376218154168815816354907955134900304339212597456339237184230645340791882133916792020940162444610929421756705554799707190225152588027191110795987601364574050470007122757633672535649063170957776417139173794598315083621931213992899414243706071447006302817024627482834528077189851879817905443338675843473412120479071869732836501789844822562306794049576047939512181698376317052717370880398908119825657698579129742632750694191440897914526196567872146038021764162263043138730807585063500463686588813996036180138116853177651996127557510922209983989913413962665924525065409915482281631084314825203749802747063515833438905451538660581799966822446830165467378247544611264878794757259232128643127278014886446569869963491432988231422473533662323786076815523820964458315062920735446581965612673414390057020581739744921023958678974906201028547033735809512247962976957854196047466742727493614230420661617908298320750773845738071717121257541915385144517323785729426684015731824579662174319494764705845297563752885732422014459414255382353242025983615231310655499933808519354485060633092060973915806032147539739026178696848572465779701604900471050327411378675749945145499433338544197799000065461843280031605478748269346451721859001360066304446846928836905323213246510609408462826789914468127272200496379539994201404902912142526941530319864406076033313051240924616523156802701963527529904168742364591909366620945789130899560348470802115844860860489896674788984215214865906694337436899601292818753659851192581567790609154852739187774760595670541840488006530124233381486734529945335272917018200181535839657413806071586560624123990687825462751210514226628664027297906119103567753384753218923415116346563369390038775903532047049054662797235605468297118787020258620907539699768936091720874746130754556858916775224595953393741261788808070094297044015573792220888752712035370422908761885375212490175066974323153973304109055187345870029946214936259994262295482499833087985296325488229600553818893778602796846321989933183754760505010633076069409633476605393893941194964651392046154578601902140089725633897119103033048463151677717567336129542739296741038689956190564705292510393440357077382173200176793484422829746540915610368244186564974071331480044933491561695352153872917131279409947102716386602847525178153776255790792644714868622207269286224869766218694770570789720572125362172291807045127434084499678048153215289019385237627102751999533190633982968183542205635623325577339127011233380812650014900676898834031554621720791751627466746905280160220354051878819066441211020369198435521295426065740548382635571965979569106694158547159057791159052612831105615510602078540255859498006821047944142198070743707147313664608506364055866126024380054161184979308505293972814313349338869615314292074001695537134694476442803063942767928087428711511707914993409824185078412340051287859067028086645076189438197941138748842358130302595777699475880358174535529758803799767283641220451747760256722023542342878924219278099690567121988257405829718185061477641336683364088532437328699619259373823960855967882517420815548006393143689373983387066663330232606393441773899566518223169494518092541549906488703622605647535276640070186510102495925012710325353349067215975110435673834308204907113169209808879346612271623386135901121514588027995892256393512601726181887826969714973732882551224006756197583012151352028564822537577346840921102260418050805658846693426466654578698722996937030010944174432092749356299406528377833210659750954457190496143076413434926239545061456125793557564424373389235111103452469424122126820935333510906201587482114015247615729996013616172764578649778114379103371231959698088539366637387292138674190443013202138706711346494114104503627126963810400848592022241537550541216127163981573442993811203314780102705996889954871220762223769635629113840183881510118058615477035601817724948055971110792256078770932487130283171015432246966154351398643756469871345573284329578433067615474715767237554311800755845125053379248390794981629997015114269984844672948189721962283684410959815236418028733127415770929033562665858795942104931974997599937672133395304923859920599473477104171484280789467284989228123989897511077271310402570441425326178646833544220057197589874860473312904168889378399279521207670448417150754190845221073053644618428234720709416979712595055001309327758288402368905909632006442207994061826229680452472720070006906905450765254550542868869943278988269903043951954856701320362448548435495692428661359426315912536656341140795862971035508153816621321357482854603466493089371392368737537544529249153923640769595349140170078869739540050529041734017258368232654488387296555821568778391571676653459275565318045502522038918392342683319558584113783285577478631843320998804513216480022750817364086636244586249884856454428243437592088936395110699511233615195674384188760080260254249172147573387946623852893406860627016507331165880038424170286635334553509686499491777260824058851612358316076723221611230096103176302679839495005854172995783844075832008372300580685207493136208692872568934939050846475594188480132296488276799320061976570120934912336564415697774970960664050833002938543063240119941934501802922337428212601637821720516310978931458602653293562532051080492982643724177853335908719673940168586590855908052949865256914558699516889708408658992955497258166886442434285093996404623694167213014374791780946687578496737338520258269493788108116262113251016617103986068988986747009702355699319851034139830515372872050841006915105188021449223210010949271313485159746971168919386215525948892605027404300225557726403866400776330017171847496168139536147221128388909666517834068015143990389027688166492143954924420795784999148609143438334098495856208702438550752585909833236529186473893591882130292765197384173909669902751040143969959945893424796479099219937106838354021379604106948716411845697547081221060173369313801325518387427349292689752838102657542369400272032848195977853853540871916952332916417159468937037061578601504760890764853099179002028748005010327098516613021314683604876842320400864420137104227194209196352719040271092009730968676275990010087662420366194295753295710468435640376094197649825611530229150527843588141067406411452655197398742919125417817418396503128638307615076888013223197320133701244350448539884504168789831431310597289134370248480121809410514313561282658138431843236687691246913981847884002720282834419502087143221522552420222876689314477412731642209361814430612368377456048678451747487248353342100194635774887760591247174053390536913847523267336848813746365525970290689861195443280483107462112852217889809535974368180764026786697357734916271968168784097237236541657862371993113631476733123313928346846017327677251855247249813462300368041539808106224643809746169259990252807492376180879334016702943341535046455572990871333828416534483047682493724397412458952209313992366838356935930617849372913690442381916306679602226084114124729699804675167910659427933917386558714629777113548022071054006850092434279573451983960644144254611779561321155540496175727313081195272039748887795678337806498941154221550772946187529675908830435640308151464190886229205368504740593580417409124775683759266722091731270855060430873291332119791864799558448037935393487807810504931993326043361934476915373028111375619352918726449125174151857496337806828315125901205076711391216953775652868454475436520503674622453056929869709752682175548205760233325475326913217609438776844230462646357579210308668153113781572078162008193516496371380987674752376742443717839958334887228898108634978430487445353200818493573703953048773778676796513836325763014941764047101014006402920787065383903447305247123584090334838768832073171129719045667717340197248757338754913098506285803797036518175231308004169300759712523882823031242915630518616220418910711342715513197857269206725642524313177092868566746907804818118484499794159563788869286922397246188815006859798243785498154658333398485508514202626227796357722705813967957245888431187162349588116077254159021814388349312697726345949150490010117377312576036251132824464675255646372388389732097302544917829207564960467570480194107243582787622171915608967164417012453452408029686729088626657521257489347220658649636419045567874522029733502303155417068372893151942625377781315896943884727457102936153520340868787029118964284289421387379974709587813856209544002483691031951499540977438529893294062341934948236764666478981809032663432953785370572445002626559889643715111119025982081004969239004551204294341398710559417705425454404140994595853484468801364958797597710902191703066125782641822677775533071817375212835054129335350583461505996957327488908896005817156154314570903043614055124776011390220063750404337255042740099561605378361726306361540083771580828888470987630579692772433393208402241415468473530765631765707087075277449689961975758861441282374492824844762508279635848810441748690520999419288734224139709910103929200699346339116099038846541706184096376908013075973791515333537081436947993068461035933055283312284177920616253220588273583808900302246005382974837427065756238299654365956389551655023141932063641687587403051836376417204070603041892620276704210777273895501919576091429101839456446422413162972482527628798086871761205211186943604218238984117837343967070431790411837363489646055528861219483808738541537372812954639536469142982499069385541206903911615763174748720219602837158388670719974546487380320874933945791239871974569273277438967462401774112300497204302855445458254084136160532836989567692495261753808617499205019647164649311605422880142329114765235187754593387497885798378260153677332789498789102740565351534520338952171131461116967282888657679770110356618629217762659208370843134704229310196059604263296899016407197937609529615316822738047675429269640056544276433080575380144158906304068561736748382891620713349634712031558077859932738115326181794573790345092973798209057873029568405017788836350209009526352851278815036112123162710795346506875560344042974031950973787515886959742998172852910744553619906316244593934533292309889359075731224170932318294986408117371457034485256119922771132762354008646630561943814832611759077176398172936593996211528713319303187149134129465490375712400520157539323084095106121002707122799184058365515670573564719422489169094202753238923304943064702278573400423513941533915622315549084565564609632048219576865410034780203077610744869607184854237938742059554082962627441325224527655462255751255085064589929895200099524493705478347107977888444993461828697009502702362319016109364635425817431909570450962358643808066746495859023731634402670830859587869779109418663506001956516481439565940588424744929124229563591077747462322952894722904334289970793868775231734734974635853308822630951697957482047265092583860225099442950773456469932311267137440310161649497628164936867033932939477366910731798888653473933934202278634080084518576723260380722704907509623626317768798171799211303634236897749730115574840407627256801484078701921797428400594074309501599506900342334518398410077215730967866927253261061964670621529653947054837624861625134601845236646519834868839807536322008693940382115475974199276654778087432992556249399390093560979573779900571401846052308248134720494170925444176797295405429637074521827213031290226262530257544224776905285850318724083107762230820054535957817957521826890769482227829234989985773953015346293187160972918256326152908736155471332144812254873325134688868558049587569189201106724114322203848717615115415747725099479019608338446198408052117228390316963912798114146454728542715764255220560340685208143456363134073970406464569843477020071501851883047254872161902256707296198997105106427830548646691060397578179528464707908832200411852848546831345621253099468457774048555997913160259936959182802780877219760106877970786268800725584696204478492315128447010949175628629413844738619932134564995262734337206980114038844295642607886262258466999345003531192058811539684391199527174405037750015110519888888905507603780001611524248469538163307919555881500075192524442997842124075685563993324635071520041562955226380188651155959985061687829701259059169232766146792893797334037510608453606534502381782128777776142102454864713197515583340455026683854608009402820963925089779708957481333787758983124125348931936483515607184597319143643232484492066718999122724767176599434730136888936663880007148536035303901803858357958747889063992403481903559431198177011342136583703203400860490453583182113988599163070479837166712329124643528040883077970196259855934008085291497108174680294439038504037611065258195685318718669459134058277689528396723874432454984927062051677909933043215821380624287863501467536459061271684022054854215661547320444676268161368053681071110096449007973285550424093399762952350204411051249354542613081227267274622892800065985417796786609508420276567255976711060909221545350878848767470224818139842710615688692702965719644810237829661887037762457915954084159327602452160989504658666823526951729153854404365907623009066450512429109886042404804879841246808762248244876775256663517272596952557491397426978068858700448790951954797811565679728886622728868787365305271213175990887344432691515326903483395867347498884739053882155705936278379405903138781049257261348684137625394035397395231648049470929949806162175037089619195741758796440845865916993855156522182132413353375868033547814754823865130309508425675401181925264472339105054609776432541249763876048841432494913555887921796669656038667461735715748083084554227606421230998043236479506003358425615617111761764970109532663981647898661838201720827534104513145368365535365110542073037942751245421129668037331060421417384839799060282807418109037570559233448797693984489416677922576636148853494296466323868221018775378971465563531238473728207412122115889560445963914740484815414561542172219207600240613339277385968184148795600910132294837363992910985805872978683029399728636890462329841769252860168501439043953592450935295409792374564118618564427681024245886472015088253702410289304933625203603749967323374493421964794648866350133053356164882644029107404754138091826957991048966498373208432940313082541659430248502020414761659903939502517075942538785438571140287598929904136075380053808277519899138120494391854373242963040736626659859168227626695485572795956941707317608869757106297677226914846997913784073414983089678395977111602436854400401711641310814025525406072083689424168234167871570710074000902357426332273326780603084450985549215327050160848066294523990871446342865110964393045612394533151430585314712810117352882444612819612857683733984836070155223089568399003926432574682648725358393756569728666784900284429703010854813476432293797543054204113203681670806942354066461455077007518507110638411519377674791798615706039216729421575551926281171003501395087316471400704354032633074322227405422353882220893779337504591852251942591557522845769177173692932754523259718712042337596817213219312660392570745917375541882461240284100175354019088910983806822793062980440336329423823816810013781058239462833100322981775967372040229570562912317610667662925543857913737260332086149656872063203620725077983056276209673342234985863557023983726900140735883919544669500582811626067810426337092617653241292004468939050140501300322458484273769459630845480176054690930159896516441270170167895648443121175462717564404961935645403050465026319113913709385872199869020068663930083889385306181702373016174601053831177341707712796400966939856957898689708017913516049597379384308370241051587662171825192001886811304625045872839649417075658736435590006209466288744410137632020340482705227833824185080946296659328994839659145795795078267553575279690875981290015714700826411537933860295317943040268523551609003915819272450249156693130131700999106556805314613759724901533323747242531684631672497637741940053277253478674966436445136358996601127806253822083189699553732137374449649410874508007662223573585993133246943981355171319147267339430647268514585544576326077422270341184199171594300200803644658802153737795318501407246365953962587880728067848269993433249809649121546079372132164138205642554638215683517962645464865928378005679810941543373178156218288690157655294835233686452384321736926310445344438273052848273533990020890969116704168069712200113149878266564474500069405717616515586443577989560382514024981104893287738939472055672663258118159365598112412981790272489618036468436966464985780261647368334932170476693193698023793654951205984315892183797396681668084553535813031558116024814405294713146590201572200421126669014580334143644939437251694966566668437147591038373180414168458037061065508119975501864797718591939857455090887403029773537754996839258443062758967301561784589839655996645939640297682781837024212003636463073293603264364109204443906112759465545653828367043950637394101115655918095502211206015148679497922545871911509139020350490083990559335918279099379440167569809666736132123887936464173886243680442110718950716417011687662642297948677072961273626951291959876358987303695320889836755402305179911094532003594613399757755036795833725365140494391575737272176203964538877502785971360266515442242463437137041423389706774080669883334525005580212752657474838008662680546668690554867482706133960833158863139358744227734398561284294292436174696338688892656781934195994651021904844088716806429285203023960044423254787672882114356020168015036189968131447264663983201445130956968035561191737303207948818112979250269257718954624757886155955506416888793137450459126799176605995337551811604859549229674440989617193768066092254864829664797703979545834720091949397921139555335767663438207232190707723872857577232704588127326104419805532343736197820816905860590995524525206341114380149271113727930246103991423374439079164441200212973693461588736360046657727687208369362992683455411444768407985049307064647013153915153258948730010992691555025711063565467911545606199618714798479506626111759163641531703851296606109056867226395484760880802120175833709364672449796802539785869319418433967284199437838203301293786348032040045287156266454532331067967892928498777104083950503005585255841069225481333861313366719570226771458757153168665940161984565423324584999586304603068347569426470243049121753896586541665054177652505180434527811446466697644915894393566537865226605049611526522113929515804358810234097992519328951307552745670480695766609998535764463005082941816386744272504392320441597956140587256770460643240267346828104318997521546240244783010076140566466191056249744834987935878844801082509619101860636697717220508190464831484161796816388657419650164617794007410362573653658529729165218174449974992790374187086543168808102021997389649694089527581480491482611463007190849221839968590637225761847595923752743649860656355396007664545861488303523846492719443670074471237935559512779754971825721053667087844048559412788590082095262304098397751552518165182739328198279506462018047479027523637958842434557273687325664053494845971334425080159072317444382028654005017155169200939140983848122335400736918145036607283252235136393514922766286774389522960365413100574897012006372016493404381769172698445630171287626441165875830479164646751191100451401560724699846652389967800161241444068290010941916434937688335000626317833212104800435038053706311209264528009032260215286592630321574510923362526212356238897684940841406580653534460960484596858229302838303580118828875708225121793481860744529090091142485560089568104349822905483813370232409966870847665188661719303557044340143959106494579342590959870867651519047793081196955599257104681328462142258969512364729430482582440898509099131457964218907424132148748864745987648580889881702181954514419377223263531370938042267597595809652706507275831375393632854033339905992956947969639278540832972867082508625409520106690072351294681349419618922275060896508407987346737478198245069158940903511519102068982892618956181463536227533931553658917723394280701791580771140876694036950637969960618814731639425443852678843842395951919388679769171727363118211825431516351991601492455462212654845610486622265814703930974872279296144696467521318468467652138346330751103118350238407347447627559891207295873773170638305935219655729051597026262433663486420913576121394034988580569759598197992272288294838078602886084825214337595300036157862492321205890686785220190592626860981180408779825489593434897290324038242142144802446299753631522090688409043901277372448550946328047547050851679742091883594110472483940237876314152300921894181217209089241603159362713794264223156906284388783069512198468699519527754209045831905194069887009281356852386783032352180127456939318997947914949747835211668407731918677256803944207047090685552111911476088816363596485313027388978417961953352010289202985570540813773569302966248827726283183872066280321228386621216603932299909196278487533708617207884179053104898709271934661751672799803787612863455062128294897938940797917050788975225164297722954679615293872556857759846283303989467568733703661391801463798444503072667881829553775694344109685658113894699558988878933515838198439074323712466871492158186241769364752507222722835883407483962318509698583522716748315214360335026916764912411016663897590699281303668677980987438227203617230825521346156926628773166262031095520457426296009047011710961074058739175652256394880253163510631609027140943522531511614955435079535560495742592328965877720442562548701966466481211845022166615051998280538820246037163272760989806587821289579663652976758453745245507066960029906703624284169234046025716740280418610894829694733498091017188773393316288523217024913090391546568331231851492374465398512353936060215234196258148680213133019999233024850161468029273722111421938995093335685683953131114165508013679754773879361789812103217629779470470980665994548470968586241313762173383137822820269269560598422746158169259948087937743570500562028504679557033938750863008905455750785725780505782054992152787094649851937625975666056965527963583351230562151693543344594949161925096725056203787408360974182409365157513609579982378908319444097060185558300382102898910584070945944363304929197802909671757061165315517675052174802316915849636021896830476847015817411932794732490610209920787497893838309340088268227756309004215327717100416116981003241805649156047452559690395858943792533635645535513448670778383454509216794172548318384494595128408084693870605183807505267505765885007295876553515867271509323232748109352882105346131712638564490848993475185297449968580570598854269788544834588555657195449475093543292078695807103179506228924887729470379223892200249978733316077899747504524112078238347923159754502107565924351187747568327409439361869290148987783246742475352292775289389990467479336519566199879523899028417591353820044195622799507885248679853938047138697852268911577137737159177625277040270913756025259070221073587758299925330813674105366761331809456171197235253618241738970376553311350959196112298058193564025278876377479561002298255583728354822833022983432517519087135522423357189818816136410984441969447616948387651090005423821948222408686936983723539028069792435874267267145907811270635148434839755319453121897292251642273406067860360994251327541308338899142924280518862030703628960295946977194120184401295501622684789975880969635837688820836651546382227882896163648219109532404450514953992673184861969334931313937031320101309650120669485344967557729444834126399801509792953395142667983563014275949166450534961040215200961964614348286129189118806505922358966077587083236461080285602740333283609446306840050816867352934272307414471681976086961878970302074337086325086363197799090450696096200923671068375537815773443754421960167246397682398996827505256674011566390490780990317219811399718596481827297786921876544067574183188887004190720081468066541821788373516448951815773319036255251536533626436429320279728968248332992804162371111158137602376688902638423110460386692928602281662567037682324676835806506745423181458140457183831769497175105403031302951770428307364282012694545139627221033965095929413994292150196881248651243216142583866310452969130324477385297703270596150099391638650527032610580022175394094222203837355540025107916367639185455180148296352836628478406734501313623217511026901128872987963864218654752522851556358575044661146090692365975370189508444191810959164698736637522548823259651296973074174718864474002665491987844637729771596133741159914662682394945263661721424135599449824992019812935418086633321254386108358277637534918988597802625656451057065980541289753071576932856127492910239933097159224998824501695431547859038149426762216949643345760902723548759027267429238915916218550856402882331615705571292096746142702578680706990426656326005811205522189917213456386093599221197397262160404817236230748544502688453272278576033188219930418086080943733707136702656546768847660359510683217683067437078071172980800906175569871356637483100664892227919731609131668376284758376780734358883580531095812746153885465216110221815003181844874578422300464073354555108332936082570593291197958196386337049198350050239430956733365539758910908625632101941917499624267472457727748371453024652222144026701753538559257516397527142135906145436716041722607932948850274624590808608693840999733136147025960595005247028838121414108698449238410683140877991598726402463951034818897924498430359955012110006125015848319793162556441035732767410031498188677857144176276208515867011115768742305819307953561555032302258487513721257995033250075357070967733269741901494619196753421760282683805426868231066972870700826359919605698363066878873000659451452871720948267465287312401801079361366416109786963630167793456790048472947699143307983701744237176638328552926840831440753427673199061972074718426662141008336173636541684321251669032988411123445583732692228636155325227167102329922580899697587340666096249357876735466347625657723794648662993026361879031593335832021052689798920458599980070830464506744662943921009599929244706676395921638845776666118328271534105615945092696652668569802182807097071843365024317681780659594975313924463508704971471262104492920498132855139717079632374421730972770439807245754932628977505247536132213733328068433427788231222026041671272613055906545229482733140810116808180301118255581679014279668112378988066573161117005398793753392167802041254439219284784435256173594050066589456222458771060910787782220013856355686710054692442843917055552823861446793975458301701304235115786960878681991065711359388920023924872336442718322169614407055913517345747433983170506963056655844183025835892970025019035294184501899163188882589665878650614014507396860964879024222541331477241567757056566780336102286876275879976293168552365007701085952981265424319916160877783275616578197254892586366297611373936188711396594762805326896247537182432230749866146165216673325678489776315265519081470670864432868252165505256635401579613762695728013252712127385826415786306801063437893252897968222743812236159846354553795541832355372694840466906485386522788658839668342045867143231935949423634375503880829018837743464789146618825448167099417141171359390955531348999587699683561067480296261958398167383797083411516642220032250174299166862334679186591768705023200168232796880579990391168571042771575490677273118109429674893061475380325819884633416137230220193215491505935090620282983464054381896998140192387822102757181512542853210053481031089143241148937571057693330537658473355497737478584493224729254848916359321817070207879638299998809692854192367456895578735413738135572343510252954731818413467341222277914445064853184212774559259592954059460055548660805690316429911385998537817802291264470861917828817765669364882562796623546270068099993511001489459803499650098058898997842224048502926174670061577564461627899560047984554758101044582428665788144828036318806151540596064756610449577305156285441137543975985184032391193931345347183255406987391144068562829701301679284967452629989097840651612200820090179748672558775548573759897842697923875617499633455223963578542338583780237434163241788658977149585273750893474486397654405205965691044161792068667813275184666187643833137245816129475926878139002001103437996279305709522790481655215169227627417966393109586149500357186626107727973041794566161958731928585544439116467628371642447076289836663285391290944877752615383026320362690621826041189727882953045122849803164050321567836028469541129254593546103185537868560338639087767235532296265426699293612849694647667146809198063017624792347702757446581424950946019997750398488887987808792228186139369522048761297623403210024098704113646909784465497619234712607549773004955054284798491129417332387538236980671319347288140429884183426566537549440202818957945319401890032684778114244474642815845336338181467273267511408176505782844944020011354396531217237549562430402693309516094759713638794364938145353200639530061144248700636504669337188889053919045958187795039208317324235112696733973616651297722595834591398645712028572496102670374799775086345047409624147193823126820369497394952668510252822153772711720079301518620939287463151496640348688262458048657957157644186347765868636036264562340085516785018728029953820587065464959774888843628567307226935351995525477033163916723640941346665300670264157112545557351933825391953645903555979201003443482605858163271752172253426897622114067121921764419073560123176779544899911243155090755229195830521766448601430553735082397460470535404403216540919237688045963666508041184723769229439631115388450439206057619478577879476222983969808657717959351655884428343033935534362618758584043754041647310859031489810909103362101378122674812886224178966806037802898370891236377082706808679748220462295152053833263235003681994493393543881781702092383205239217307017735277602839010287965653880682712538085732426006330619698427036337885083693149933302590106253789022664367876418921204286325546807682152697194994632745769964457581419943833817960478148668169033411581682286277099144201936302009659926572054605477374292426425135355391841561953458018230523613111157355258306413014543219819785789313548967566724603658336611012958029312210186557150750533454997850543248536176803943456066443811468961397671667776922187169027651367196177967344393115767045756093105480254912718549851838165734521870119993089793677098441491215258231730595177659512418429873499266024335300952849905616742519160247016073775467286599046974553774059889737440250600260419396337301019111590887734167701019864811253073168320060442084620340058315234599545630389242732277336168016889176049953117858888905978760970762876424002876266854705575541606479468375324840578583006509751214314391761207693165507588792703701727239595703601456818156416079493219856137163855330937773574050122527676172991436254544037593956528466800355997341913151979547253483202067995461105095512210148120931735544657863456050214129993120901376963281637947588953895733505742139139149465514490474778794407818534289517484919847375249855530902250926882071453949827929813585977716587175613855303240700561270928603235798278184350812812889177540075794674140391926794331930266720090615363397496133417255016773971444564201266395956491774503593424481912454083217671441457968425524863819349651322267036381411540346708862563903795352627085018516934627977036099030554558886639158377097441710973101151811015951147344585778099448663483383526392253213454681906521412011012769985777602319727428529492098263324275970046417130104293208055508591368738107146470860227594117286245886096235763395147141724564875687629480013267660633838465935690186360669074068331756302042354137822630039856539665066855585219916975419214897046100871520672042730486793746911153090531271083550775879095702113883179228014237890930500276601692500637675760789832715549593602921569835800557586823314600697472894410114827808352513940049288424313361277946497132798537244366276118381255989134678020784060826544074570855316854325362284222650446131822383630313059896415612321948521160532776970911525547359477292057398536664681771789003389654470492582401990123791252249790951084068590446122230682298385318556613048219309992532113636276556239478066678335757149975407787757668861142508369403541096336680938145328789853129344370675956046865903457207695228923086794952636978474459247568514188169494937385946740988633687830110653785764821224440179057862280838589522059688598141156024464379057732357022823731876309032463509063828586191731949447121039965782092579272407697283279199100383947006859761518378941792241543693170997467190808979795743207979768355055539327672300486002456978997674886896658565522392400478420353008531365441113490387373693191856740322097102349267497213352460074834638877767676180281000437607298054914241257310551814261854911021068884105816426732902348626960846438392368091367585849786017522591336104232919072484873785265299924291190487092579220121945850429148520245150179356965721901722275514327245598176186013619093701741060079550118804541122053507935532154518360168316800732497234115743008965404918394403920042849793922563497041281092570232173410008772538673501993618447215604340712937779109640927354343087649717539373610984123740420067012784477651004441671827869071885569787451524296605223188618354459237654814539467910578825142578967963792302796835040153314219472024473025136951582303018559593598220841916542640945959011367311031398728346649015241782203547241418178665737120706834981959370736169315989332876031982391335660315916166465736362381150038168375812352377274163512271909919006430343286623213404053490160480269994060648939477622354978523036119241068576058851637653774009799329846473189583073804740820228481934988026116824002641398283363515310754762741787291372373172911421690608970809739010057448860123615628337455064790796581236916834937254541569472649446156318486784566738755291734614539354092024773162694501568387533446161150000491524072671550766902937825523108818482218911103413867089334753310909281865090832908090726813343834357974558861014733714627399235210209463357853010112241552287019230427054404617879169559814587237254912495237559961469093903184728985931498982528493890152112484615102180832359118449160270723741863123894167418215763401384282792093247709530910838999857127770113086344760494341996266849777258824516510106584231381548866148388384498322138001987831048374624223044949809878319682014594804599575666590786935730164052255133182342481951972335815222013142259511777890948344982145948712378584270526307383671772737582667046266911733670680615984396524610687337633445492637456213559736446538444162545404106656611838876290448126917146545642853429234377630472157468713897125069781089141264072407066880844941292384421710033973883869130555565527469221985131859774836028856485912508815910711366940152247956881945487643191910002285894783569620170942635315056192636033141940089474447555641875879798495109452748082337346745395612046225276525270182034287627097068433269791098594298038532000941773815984960983975558368498239906079347294995944805693548822211279167603683703579263464336223915519445941755924839858365341857314306109873941825682721980500752352821723235367407108903857599385969037498284350129600730983912153172961694691111386694071580474493502424898935112314319883732420031072287615066270284448415773055953686090828552226801286627766409313845141092468695227065349595060582680937659549531545794037729182039485245760391209151067128197129970134270670998996687032256746835473593111589770928077170002561112369859533309008249884373198346402964677856205920952652267710960849750174010953686031976576072607726000813798030539566163624710505045597923461491315425822188206728695139117430082457670056373268769930700317509628589627197621090973288625021502651949803318859175619573631552087742108659520849833462302378159539474243842220006168866117631061408007803288238327871250242993775263833094780945832735684212335700449009791616730378626546668837665533633647617937371039752993425011819439004073242582286542675163821622055321388347234974039735240562478317929750387865928655118990815019852779828621155188088992297618296168282278446856633777032722670175147994359136459641935828742940850133099710221350346424507832004321716512140205152489475373892861324714073381293555285423620689113326800324364538172537671418847651553181612335035484403616332524371732411287029856189581090777395116983546275202657031378450050894027495555121021790820195585260981978868892193133647511531221614709448519879257313880073610891272152444742064873965125929918114273403499060179469376353448316426027893812286679851243510681211925241015532133123077774569251693676902228013326475095381522788533522429459837912875078839021217688575484552440294400987078541613280118071047148111471896263061990595511445227341420533385357051621822509310328581632173735376890186109929693211084165658670364640649775398230134270898596305972345161067980545082120251539315349228207811720791408628761386897735178888906915000942763874119627264741615614214301320268767783990784080883478273589578182483737573922614878171298385399906178684752423247330462313277674447178370723803344077846266080071280317234095277775014648220265805830451943566596085659284168306078143119243377651705970785796548077634541051048724854295980822259903161402530597892821030150405129900951373546637331628845454647465857555022647586893676837536293411249035979636765430435026455419852858999925458392680533702269278422696594411031678778816588244871481888104238949670579051725460674105805734490466250522045411754010407675237960694505239609508132070176562755278224869874288373159319491401023667115545311858457732131492001431019016700418907830779698361290981474348589993157866658786076315587318327153076151860984295946049756165530840677635877090919588277289870961479840835801598434934677161950373035565202988546048810218979678692150750175602996657734152206693477726565197717771522587721444789820836349193999531816086454519541130224181311272074599406411651651296501538519879430641467559526636294860828248311180417479459565648909349031939196253927241095065708562936922214726775044245407535658880041652007059749287325279260862082863537236744954719691679327171178575031053162265672367280911099895259080468870830464898623153040491404014329600228672481745232913222244254162644621276854993619216011046964186531012390269802080570054015631498939376278625680570285513203148114413736688642969222856646618733771834690210119926380385389697752822412313212128731346846106783555782004820708184469025737005017033983610611577968136530946263894936035647222394509073619006450003961422881066744488014832205868735380054132627380034359554047523085648038930017544861732182352505780992713008687360396450915104131486315562377781278214896714544073420560611320045835969117436364847438090591346583777499544122319183747204022558907212619666500164732042812437687418694263283899064247806996667982455634210520625949016844512258318900898593072398102833346076424382055919068306517848963524996850793940476564945649669171731885157294404449912435796178396182056954052944485183955739997730920737458520159532586695721224894350047478011498294675141915338220468911715075860394342817585669018276776920510874653101296025608081329552371350477040283413901243683758571935461017219817735298768960566531757735473390693898073833237344190051408711916665650545111385453129941567692751289886995624379058434966587060546960556759949470266620604371722008324411612480318326449517040072669806678327683556036964454573058209384719821485753012190318216114735452012164950990385824654456000295432312582477454701341138381273266050605495316403818713465115580901885134609116906412276608345553662188019570460662295463366124271588755500326243250802538786933634949404901442926653524768423246399712353037736687791322727186048672910731373621575581964692582691957181436015095148295513022478182153358615294697997558874276269016654731314954899517753179110398470374196351606332558431784712408670773895828050369838049854544459459467010607096399633341022864475033509297669199298867645873176350935314354961041963544552694235809784236962819780039192794910726122473261267989070669021958877505456281946264948818577778945426557330969966548607712576455165841335327065584830287407208571907848544835076690084258203488777226949440745871611508835643163440621587390014783581139545821358382983308349290637522303477686258925942004011720446826252165461570182471183700501463726421524893684084424109665995198815228393944100445730759088749351476902000868495478819321479417484744390375714732010823156176302702324812325807243155672126515372908902617736379321240678409736668615222436242340416443069410301276390488661959667834589762899891016924792243825794484708345985709831439037055416372632233269200442251765463455829049436229534780829618920397367917220089852497975595680925983713115576846526105779344058429285196108405173122268080711153985142118347382994637570282721226551337412990324283118146308571345831691474999236152456335435924011585524279305626038818170725145163744514605976783726733766924386034584219523084257675704872539652228279474989364601844609392396208838639325118226464472621495146484216301851940780639881584822554973103030241383472987430517307828909751546512516730698486778417445092818849496826055273492398266192322147879572119609059722531503365508327977267273859911745013475171348225682316486842998028780380407895989822066952138842455807572861525197165159510653016154536518797511859517034881594708977337893622768828263358597942666312208039589210778270534798662218759224790179266144401054692524426308823487468646646460253232360284895813668229728718529207043992835369823792800237327781231770814070591127560270449503023109229144259467880792139234311774769646763645416687381987286186661664580834005161080391361458839903757011873903360573683977055598575512014041329445600686430330652223149178128444684854946331192743644860390354845548827959052012760429002659013165573003439651181596991885919388473411713632289627866092985042143457071050501409329633115751739988917566585467173776911930401019248498462748341456555874969295204994207552756998511059036820165051921305663645802633460028444448512950686768411490544615345254321972620789761151371059955680018772061321759426922935056067151839567010151642925193858625541054438667642201477616353232423001375333247397617809187772955870196990919362919996139195985588736759473882292704450294939957424550844296661007031724374336892572718443689857965548738667374018700582270517402552506678911010940771934177524824010330173459840110292216360292716533879121622349891077709452655091751603897107565802315018930462226826899505522636809032788429250862304142553329172283692156107718078478816610842763286694604787817560527134558608621770293317935136090810358451799418576544544810985962833024619335526941383407884305536269026240731286555677949694044966754460372649303649991619997011759655719817562719782333509818818129702770569726759253354582522628788557023571772989305728820241760084952921548660425083812643021034756864023723783557105141891516307193016599337754632263412064596583759614237962021383871285532674990818110177052353122339318558168849895375208754050728949407891854489741023384121092071389606457677966199874036713880288814200492675921751850821895958321636469331396496632779399987107685151273462063829629541074720095413906148733195752397295524347686567001395418434974568544312890688166023000025110638184246591243792702824106562201576108164148701122677126966476208160589630368072660087375699362828344403115127089326594369249929975299064750691614439592138831557697699159494009605575312107654181957026008522947901515586548250073667887674650388651406841953906382347743938031046196407558202749734966903490954890413953820658697891315820421170149019751998349966148743961213014481883915263339803188476287922358127580421031987205098869888318019844238726479618317583999648691013526458661567200025126450712701512895342030659891718663215096291355523602159299621767460520722241885723885138878126704382903374437667045556401372121902782791163241825160857253150079891218528716271034558613403231285472792362780049271447693385347169726376232954444202116942081019915218516985313098469679513059419926450228518120459073169677949573328686422547014447386710891093511378506241177794986627926056179876439173968880431798017938431366989124988318885568168668690982370662233945876523085451664344781168267185855986504452091666160008151030040677659587602315394514304584135152372887536834612192654687432858988771942560247028635681029424655903732020779034050799816687101066082830569182111650774278529050678407331321782116128123446830837170689713755408294914060207064897126765694060642105842006158043621026255603726461229852334626653083714002030446811381860890992953409022203544125861796102837030937595886389624450410427609019554160279733124600915854655402951249115332358325380355132840226688307790182615886681396489108781948941361975991483483895722186991856119474495195366516648312407764854671640422573168528857882226902675338069732179901778446242762126821302419485780013517213708196630098448523725409158081779355923828074200526162864752843701926071650388265583397510471490159194870654036166673864883931897021109955214540438158146686525184580547549691366690192472449287050462560922117907925111040521216482854920342356704182813308838599849676666942773175429067890745493073825859059772984743428847141530251072476954546276444921554140366417772595351378373137065925096577887730711860913280533520711192960842014328416192762467323181518880068648907964508763986632515374021218512668260974764331333861499264169997662726771967504765289150705847275038566257518094249417490773196820756140267349329099485259491209623373593100528504414619142292568103060612790054788011437773792168812829409104707178356967912798271046917511326055317335643345649437644406376025374457248891437604828072621784766416809778646246555484587495644933472469157164386505282929317979310095360580278675391984649060128497048638051893103557373895101376666445659204331028956773973221847744153006421926399959334197277466950730480956692241748127190115737151682448988783721142219077884840364726870753648422031900723401417550522571772802614079143930168224949008024211283238383605983074431251984780256469887088185149599911684397978722254257890851360498292493035166639424381181411657537509264163888501776510821651252520173205550033266089085150667831600817720558934161978369870459668693678068533744201050657524066932826406662986501983701017278706159504619133069907803807523833579494284737930633643678842122091141911123183609019843099263086341336807816911920046369764790035243722861357758571125771952392572069631982433355019167166951551399869751382667707193028602150530112182370665171020918544165727159221892916530486784969110074949220030906916220913896975003610768195909248020473292005717545582937210910290963746009523017253373887135852655569481799594126208163328992569400973669959147780890510326497143277861621514716337057211584154819181000084409370102372809029448391618996729819556976042287016163281956774363345447388784747958302228924346804773568935485002632226506747388777961917370024228543895400047347284673441788029244864603950816643364441648053677117090393448759255331578210871620018478679405533035846717308822016128573561485393535244235514197075739582364702904830087653774940103525739933878823216489909598846178995546132250832392028572133330969505407224726430656415097958680752778387212278160405501218087713379334738873192342744520536325704818913144787313293134039887541308895190136901885990657537580173328446151030893290059194875805308435236302205204117467596919238855992783467425867266633967486600349840778523554097251805930559952546779823047780398707725865717422063227883459495239185918468416467560559927344553262957463412030218543222774116406706679815974282448036104407176594450592349685782375288236614689424667901708542252150622485263604382639081754306007563583463109823923835360992775672583457002853816890810376469735161410994572089467079756206114856527767577146907450319732437251762447318357219143016770218600775242876738380481622300914547866116472717514161247305814927898792829001783566955451129406832802357175278217859200675997190750864629848363860408051455361175147481778790803397727637561710248757510721624669684620725304546356330347275011128758977895133389429943266203170131757450369421717008608772981201926003912210620889296311941899145680415994674936423710905911181073270670690032479407452754204251216717446532493297352908470806300844316454225463254247202355990029116659801955556574337303530606760551963918348594358313309786698852379304562157833583598260384867077436573522145884660127815169769828290072405551868081102171164064211011090039934278396416411331697560310041909547401053084089964571511801574691311928990398913406608579791068092929705649503701704582635155940693911859001030670991697139509312910362435113136164193746911852052121285787818078812257321048597293837989994110805119485409293209221769668727169527906995958909640159330206591413153942758839176528502807979699543698366295753497748139240021773713847390584995289144286131470073634307133524369539773809650658069542827833717515531395422231466899350797995409826933947578787652403443712595184078798424685689563182655142060931128340868464423065244045476161895480228461062630193386586730520541791310616456981710446400547134145099614183716178950281236671290277102324212035510828927655990411815275909604185655162076718539086665977887127907144044776667583934736282591162462561963548668870584617412200829971926283962110571769937859637093611164987662807435538419671557074246767044371643095949572319398524318696085892024566592521482693110895779487812213048156806546801997682902576685537141556831781012007582023245049815433354038021543656643425091151343657983377598337410050106996733059540624761821700046354697547154637397492684933704242670677849492593824945457890843966123884614258533342624067149583224250559760241511107389722744742421016629260286663564851971342935445688650275484005562092886299971396982652195240076793423427340159704517579445055173350795899167766430879451629012094398500546492846790952611777907602885824096017775394714879496274493743273192789812234966605301027891912352572129790539277153135772237013751070278905905883389320616136191042680555965482310362205076061039042041457724990980226966689230372620966766912822864150248471848783238431445869468995092665824579290624126171207209101299502900716256282970572369790794981867474203123852571487212193241902004042560312111476879381699105327273627726440510630685691152569010941380464093654004040603709335712481785556756586375833753763707300836304513758285160113240053444812674978543460751611169152851611007155415084874940631487233869186749966770316699367468639379290453678352036957147950077513130317773621431528630827268291073122728857248753767450744883420985059481765148848085971151256699514633683336211874509842421340975100977710128715587300191092707119903419351608278128129089289581699747617739282802304774737415832062204049135105338215800371881871421738908517481757552349402228240324150686364725543239318855018702390121791239549402925715955757004103518515107785304666629883046310022069802171171352277921024792133799546597277096927801503588658125668165224524425592733005998754828718518582348025257596136332807530516768140059491211913627203234315577252294402820943693570663907142087503176341452481067542181748419683362473340345397103722929766991655738867719219822232415951215422346311692080556999866813316269482482685154518009327117010430874351594233166152577258457935228661322546966498196879823087569419157635449605111354597289783874022636456657690107698326788476480803487232772845980562441550793333131370813385140020102008492659759921545762278130138088984914186518621258233799198072750311910590113122657768575606568627668061329652464959396278793635435248967291624437063662873764252506682560405999670340814039592819685925993802691608328762744514269979346144940498075679126922242161944885972800104020268504439667477175820554025096026333528910749514328071703708396246853038275369813556869554027107494771097634056891135184141163451998978572581881257080551682921942900987259944716741199481359785125000628114168889027450632365173773046232321090098714065080296604168383552516956648278167160199782641462560192296296862191298175034878531907766260714157506518589767381469044787295410509220836890893915210208811610207807316402900126688800986938344096084121984118892737402669832832480075189659399244561380383290945511592327662911620662790904313877737906270121695906118889520303751686827461013462082869544376376752724411946682663239637171053603338393247355083647290284191178164415258109842178706600003380770047294119570590090869293982531795401782574673876813775449247874817888076682179269559029037828325234663320100031552083007690595967898447290189969502416691443939341717752436586328080740540555441076399178620598990335155431288271970832919865050567842162383551599199095632129693665216170101015756952180890885200199906999157077458579291982650937326086360310536226352308053958888190601241290770996449921941724127695339113416035735102539446850959771525913613664434578685908758461814388454763286210838907250604452012679939527206388825377971997245036601590059170643973502788788324238294210683875225556560031118592887445879719698575458006944490238016463078975176237723543537134707592127001731570010950115544523985339481057388483252109224287984109052949414740118345542527617571903273814993898208562693362581623720539685265811258681200908255264775539656937930336753408534564334379468006473169220214359886826184165423569118332083894165905620877572577666674970411071136260604385574603449081841017793321749074011423368657447295300127585306017903452147417201490967905705234177327218053058168721019016349396571421501723271074043709259547480126849014477809037106753296818105291844631606444931532720760385944709890982541759208289351529855451560632514763513163668062274369945222466887706537611124251702907852390784974489557403870852572712859316497555824254487688580246198807158436097365908357670886583472885969189674194478334876013351289561008916950396760849001078824446090836564901265633453264924245944630385428242874198075717430168393113339452289960968964968329455277134028664795905580036316892471220159283549005099675169089173949530435138542463221373278375573447911758722909404152083426738437912797125106701543486106558403780911175433477877815164135308068443402836720117554277047416130865249128505620100513545884355862653599142091210750187963156918600943341610996352951441501240947456115846902903597545890367801671392442063485991362288807096225596894845852748475404492032094386349100265886272193055607887388783189938136992438924934324923378161932419810097581793065129429507548124135930295689891142129052455207530982079786114025990542593101919773723331668717874982685029976093025578138310754800283245578847465187284483904222862391523171704190263116086393406055286101225333228763501778811632145477918865405100537662065099367952803896320130746685306438854989668364531440507441409509083649894623823266767081689723823776723869384024884844652241737421506138175117339315708429801938228143945496912856175782693909758367579201629283288070819947894997826919430557951915382381303272737915559188143701362173335926907674841997347153124395812369930074198839473084181156588709861555315686967930946362195918734316419474857571108853835858103739649914637266883966785491502866634030663824646554242278997965587672388544544267820109228212884552246099788731324984237680525071323749486601052561155881903684579882458503833078823143484442638754012344201079312112217179629510212983080197535264046070419321508054251147722384502703156010552083725000158970927986033146805628948909651575852125598242060710555460485791966668240404128321906562477859416464459354238868709878107748077117753174043283781761260465044093924862799880461822867408288380692068218656339706611811544074055058352125272874519140936139468446779096185836926950367037817058024697193821944894327259625715535671877841052576610903068422189734483166320724985948923143666849571635402596699664286238143248942937597584184253756220020445958122516366492218827146035560912048541889268122622933519416287068144546193151426839500153370138658057698262042401029890707904860008548614145429148467151954170915706000117579270015835818413414677930827252682093214553649780793240467151758346547825730010873259802492303403803752022065584897846160791465962885092942473513097170497757324783894322955693742435917503516756714017687081260301389122045756442211716702304897491068083267623264804779207320986684174989549658254118210028887614745932140742425152401086457750849540366544759679512425462670935797008990710044016775489620752971819786038179347344626382037560837772308771066711169137887838378569620692599722168475825369206346619765143972664547975970352332650926729387788167129008673105818176439793148334049764327084059170421757011490096203742877336013074886468851015007806596216539989517310483346299024274986746073876085851867199377980404806596074401312595248267599231038350160015320599599932757683156978895575890879273053797688737457471382532575368659674798244402109712953984813842082514240557703944632111172611566234102364717337820072851648338173369427425085741416350481641069769484765675575651337206626983631949345233441048947686648906020974615653739121151809018569149537838979400748623704705124640424143379771194109454128004385877765424507549833144901501922695702963774173797036030129142258668636665727850809939269749217307506231259514085886078602470635708316133626642695045760221122671061822242340082757321523899620316970418470305252079336713425339053184206822221365587591974530700979130239633547942013799019659446968595255762887578466861275522937680784194461902284767068037782628094419596601591150925595165532832520889007441847904450729735721198349578933271946448836022534685352349861801867681172777880209754080692061870700485799373720698490024885183413101939518203372522894535708599009781967485837480307197176619516056333733484325721832370744928388821088849930190120498182660263060588432143330082967879789789767556129804000125827951920130557219627194007422275111621541840293554941978124151588252296284102795300948420739046535345341912193510292778633718128283197072060506176032066704107307103826469884307653623865372107908109428040281878713796960747721917300856249572040598696646276144349282485324030486240908135442370127024461239081361363471200140372616504423622656808615376386403119947888065484568865569529876884801009697505397162994612332081948969718144989052891085396607416517775841851748588956114623904317052681604593446974945443975311961991617698115306747590865190896419673374456520696979663774955859786119743654963620543708343415056148012729734610961847350487439917551039959652825022201224855017983348767794899409091363623779632382117514784019028414290800153292044602088946384608692827933197656865635693610383696943023606299560488563362432370986361241104693777124322958402054275865899231347637907977725913832489873325306053421800744765761388031007253216428094583023961367394860975107840029253088938097090560559187100185138533318828320539375777882434796511236844331809921092739954310614126596886001005745390532642135392717727353237831352645260851354900615475932510796664869321274374050947865920933072467526029867680516986987116010516976977518681170236020440520713762480806333867193187283605723015379710508323187568006145450228900525706504645512527515060109534016570188400153267917348197920437059555904370522401480583187545039582923809848983424407649377262968711294449773457689280404460120391938464880499833729691553587699973742571186948878886134203291224798557967387408328119399993229976593189349091806843214212178232135840513365178616614132809179532406214785968919795637014867079598064323796709620642971233699817616739382992861425451785827863251144708656808515223530166955907250732088508687069182080914753830380852300436958230587640699175218595913171759625068368244087964296945252307956586632382374158502441154166577343849855752450782525714524693007974059877259076671933138345683163437156300254918679777826709810730847031013131031628051396549267998841394610776706003563454464704733817587882020827267641382419395856884066572362882515168128091591963078493723611073014980416280062408849480759796221662339380861775222534258402159165996433723403707237740466745782129675253429389177807751824956486747144699495436720788302633712241391106745472168795136362488416508575153513640107723821667832579918114374380237726248117145327296607550052105427242122345016264629007899774115512330033763027481413040853545697700057620271636804379712956401660933982333849807463152973892764057400157128243136406346501510679601835369139046038369587635087436699531485849592412739921449678662805807615763242029105470332354913939309635271872008152299952826634579142938318722007038569794591881649301124641652709308019422948175811057175654183456804733416698537747945059671191068384178298009493957672573817746860120050660696815487415764101470466987386746433918190375605430739876415272009483587394648654972879318831098867561317147331527243650190323429639403991083276783347899099950001421289784951819801667046993695757917092997388150743127533426331073121689443730544042137629091227889185389233638638963131166785482636895350874690079195817513410666816754362612297667729155840205201176627095588158988002408999403477395537674261530112191665473398177277384034062607852258864593830563003811524089239951286151993131105409979104985626221795155693956489630227593800271570346987840213034890562615560454517130668239214638058119261482023495659225194807187735395153788776598333518566436021315328141478614084601632910141978501968110183119729399045291583510470488361460458675613146241270439518697309866974238169890110143826175029392201864491600301687994819843808686418104264747489674044611669457048073758401681193505477962479485558707626587051338562877627801587495687357278770127593222321979001847933869088418291645337415271275438780158274809169811293340903762245465890502194027801894034608698064184671985615189411392269557719365773230737881800893837539065244528628394393257360084575761525549812978961042139990534730189174582381950128337023209365047496208475867447438294787070920063481547230209974341205604511615625501609577430106486979747295386305691720789369050173613312452320178164179261814956860007262522549482950264630983667048848089671719100783635131816457696066032887098320135129828914157549090704948024278145702153275756403581495865087207472990592640463823440553261167884520593804530942452839501918720858543630744733480674136591350236679531815340311394385345906492691838896156992513543966297407733990603383351174345174631274136674829404559400979303927750359469568739503208958172484960802305165584984072874848997988330014761034395058484035157783204370848605019831756862446260275760198345095230772874732478332182006773004853970359147794806938495529932988110769994367805229879518740467843322645930426967869797743212748911653562224334845802818917297691438208098339501358640179899350712110597844858341471465839281294464537831834826916779911486937266437397768587657186320068654884243928582204095789600121340579791879040008144710787949792423502739474145488399402707916062179055298158026807497667757376058167563666161323408507794444659448760596286521908496346567513935372122465133423780145548364358756488503461428606868228183579795169662663284012072979917114882823847524554760620993616618042283655911374964745951214839115027827802822465872743889057380214863151171078810555758038613419951974643168418547547128440481151606466027830998969424566102604990079065631096286408907061311106910636984207400137713327450978553510723909196409742891222495310567228594343744844070327080951036683180063276958511212375424986894813124275976153298692223639915360164185100812526566663142600332805774306608283154849065661662096451388887674686099109472230351900740484180708745467630905026514424080898890620277599382220977522468459089348145392393024083545189007699809116207957518843950701313597774173444303269165521704293008129363152956880216771709012776649334943470061089076352193026470874041643150100689774782410858061170481093123402243877645173814713797659565058789163904804669330933315335573732308540952370514706892410646528089567283905883243535037369762152926630997322176722246418879561181592337360409588346300071779379940690833840727918618536249358943256666453366922641401754929342112454725955281402948760113235311212824170335386568757090415263277792915005363303060223340255924410899531699611363971075861195410748325295322531924023919725022776060887485118229497849446275741908261085711892505531915124523181145249536616510220360229371664005301779352349544269066591331101688520587290505611448624046674078473076753228273730907927815535049959002792294633393612301528583204308721271294287386043641823372533091144283095165594949567697769370011099723520862492156407720225118088805916359795498097193270540302050651328472351721487295389978515933807501839438244714356371457031971172083124544660028044192163182531104110807837665423699181159304566838509509483342001783913664492389591352083450180719897563572643167190340218806394969900819822499901171898432710448677638232248229322928635658412844355956690924686356730470045007585311811894686411275387968564350886019547424569408978002953601106044116273146444836300565546525666979450118222891261011599289507373382397470051660656490320266887224631507446184425421917473176946075871181460819919205194680819128589840734439160370197103367785900283174595623425414838912785860724324578554437226523569474951651667380339179284000126444029313346910709273054036172822975165171375715664339409978280088803854580566524570385080601566636857930913605738578660261262988394107794624938263148441449067597663406285217829926091840494449236607842700610014846877574343285357056715620545998256366433979894686009253911068419322272142985235990187862214720143367416996174149611574448086541366742874054401209015728736729159446818343325603879302910832585155802668347595417233518732827717989732907119489019778655454107022811843640066598880568772043336862089249285475400962568162136662381348138760089137281430328356721430267836422620974880469493481371405123894254485992566983235455650109848660627822832423881106957974397795305461149109910918458994713433043500578275958019789194059718981404252634721966429025065100970668485675062417540229176740615474551099420929480362139830837909470005967880779219354635866881580279740343299192876179285066630888346002004479045901083090275717383083383602899718564301696988356448850657977163521613943162484319962292728756875287468752505417505528246308188456649582243876370934122629462863951635305739459303329827813062553918470007781972865714615845173627531100291411317697052848652288583963806807475042056162910345540114501568676561882069952411600262735581888110445196011478546663147623182064880634073244930283985523815747567668080407382587747300241453295366707938860138342748701811406326842777717771494418842719965951419892652309437819658193187258000438168045489878145091580047516703575744705878849789505023594280221078644320347207155656174603844225981604249470814941180149162586777044584422955733969602569124221596315289195364891331459274521085763011425733859677627539873726969040692156933819776930518689874313374405934885335423476163321271614700266591606347445272911852547921203434865906542939434872170013067543865479953138308388326869034497533511886284808984267938389157750778769223807353258571329255489839053441327894159547139469206911521373671968420256735247023628186634608632032004271002088724370216761660236673476408665096740109110972867159542720199224958158150671133190153681832745282849048743614910062382671729166202612987567496395967271551468544126816851533378469784699879713997156809488480315062126522488053502071185616750403167484968840328293154890624485450345917426039853765846576030027137527240216662837770207332900768806168658499093260267892816746079181606893310164634128041591732578539665144322853654482302396307078114718047293836235154367296683664230464165845743244970602522620569583562681156040501011244003446900103079078479925543709416015850467571505959466515864068828049652126191188006143485998081648620391488095951588673560467373282722526150630388669126451189860651567659404670259943636623685490187808593243442082480803458770951173771408578923783508059529644644284339550255948442946833615047719690362892895890685167685962167437312505802483466097621619017065002441848625996227788813796168614856212715624813186764555852178695415910722100396281174190036623016850532701284833960331163755342255953021810507940271958188239827485548230962617892051097061899469629632673104395124997406375053209387391450887008834076379108658686709544808671996464028231302509794415696982160857289680781166135565947562534627462760570118730201932356390106484327801224649928102332804600631717995205079958529395184197350473480641674629145333690440798954574092873753196497570250836396404179193847084719272807295290207343543207804853043919953149686758026859301982088423220188397152804287758915560422706008699664686545391024751563236072813238701426309555213621491927025237657006131601643951665314245079491405099327340259142292458443328412045604821047624275728609559275667312698750697425023599823917839470401157323510304681424632685598409519732003538440959994397419457411146655118006609998806207151283706913096282282283797865151490586318718292572321972310893519549241162475490450496326013357546673176206637264857834470618497614642873454054539640326556121490441105539464521289546396999169854342667063193264596227038021197622533493980379724354810916571909151584483526268001291903009846884701789927846215139062644760152156365629824230524557490643383202861761765826401275219694099933572233587550855678670418670043234664530568785888057534963327856064260941132760986585854660896586848986288701687067153979552693389482412432360743900656362141001902607328623603888182741030586565195082425773422392433015267786832707503704827628988717026852759304983192470872889355506675194340969978720604794596986041245420111675091852581000564828472692500399805598913419787870596807033663868908198775524041686190066985567079513856626331343609812110064647438500912509044144039017369748445108852321006124060105984620884182279910557206405115136655945711114710126926481896820044733193046852173522072170614569795747611046960146290873041688242075670420655271584627594836677331624506245127179832727755833837155632454324469214941099741707785055833798056878382583051437248507613162077820482271570344371704450931509163413028243143205463597846360120117878462545435228219086086554071891979445476854937513218798216732896009713830321469324145090604879309248180567546624161573220963069804550538880954275018564117442727308714798566359289356473093997093094494345972522859584273011664999476391154184299181134049435123853337362031740711448242281240846097811128060962939320880638173082083616321744713742415184512906175752106446658723811956914720570860979221992102945945186020443542728022326569443215902286052566944089124575860733648482125482244753640344887737983798666097574948054265378473908382068279964130264003298839106614253753695259963325124089316174957892973168981400483552087117272865268195316132391540763491611044463784204063438626384956519877408254615971177910415147987644756795201850903083999148465754220606001567586199445391474059814305843413881991395760972940293815355069892000228524514649101491444175367108871909181976906729549314080702279202148686924825733453851783964968957397054168942037298189408009797154258499752989587415320140287576408345793303413688346863312573082521249535579423000396183483844968262413103038505224710598898386343274251567229455505587671283141180133021615368381328875525411069814344275514938452183495407809414706129963522809766055020177915976378039850126272290360229358864149342636601779441253060084844096030144073326942225820290457763548129340249868573724797115256743011382664483408300587391232399905139580412632814513885288972036201659770267110314944292952599787260368659265053446265301113843559286106157202470364762621245920443553574348583111113306391013170419613756631254843449798736519387579921793978430297274277480753955416509294383439605859207870465571645663451179197578163545156593537535303028704023677592026385298473160877198980840959077081556543224540660908167016433908257927407540750333256316991291607208883157400087179801545362794868665899558547653354168931953894082137774113121008586671607653655836557535505015533875639743437703599562690228755666682997086287557082799768050198242867020043055184328605396074292392370235141057149087017980485852494476186887859627740852012268513725851133715876192746506016097862514969570205396730131220250126988405660758279973587222375462667571667559382518967816356710225818296826252925961791404793457853703470477840592602779875984270074818807715521827396021390537772146031457469385224241918038958633524642110842812158559813938440254264257702138524507544368655538495727083385358621194418828097465831702653430144068709083554215939414522194950125832947378595004613098845703384769487665531672396405163238011170801856332939043974641256730080670243367804428188688068919248321792172806063469569770266626805871582078399528301272793396580670043335567402278913709004896664436792370252824644677046746626602896489630930040946886597787671949003653651875391893186574234408149328088749383075977136757767434755267523199582490976704480540288871667828561822165642949673687870623868358562589704114633168284258558519936355562747413857538299766795063857255430626343008791397533373833749954162706769321825568694202678100761634209245848376680724531973892345819451827495785047500700885101316970950827774216061665488914788093667159179716339919055479712180616346507623966779902291598624013599410808261490551907233327919140583005004479614979025158188478916595536211699836561995307751999409648451394101233445342518831911792190422829488293786577044385035350156539198072178392260074615094254472541837403848010967865863109295427348193049435975374886086969355074919181840413908154814213147331078406528720443059208184114711613102441171346731417421112369694166095959933103108422334599171366314779390824745717005401961378829683348325826590538598246989761951513752153226954310620829736236247738726764504564054305382279321581765659963792632585852788736835715099822780660496119748093279045997828834451119531465204233133657397137870502182674368636675226390130192420496438349778539552339202566236091294176800581082121667923021041430251676967561451912920030175541333655641181732867056625582989417934104267521502212205119367516305944585215472558167400701024190095370423822600554734173298155098381692443437135541887840196233765669642846207937526969068634277715449039893830812675143032720968680529730654714307507102602565495569374942704935360530093678431995844061254657707844243208943289024017951452122684055899041050013506979344246939070427845762494825710654223742289705909452164360290344148165939901370592794551619050489633746534781746943203731167201159176821499921835677190615726160938481397416106817896638233431419603096822585403510022769182980928863701633984381453673730499548982633826278930332644734279942270581732997052041314100416638872159561168252556046826344917262609681938569222339773955917590017906638181851720152557784674729393997367506645118005880703770157680737233641043129448861220131776393478891037640683075545896782416474711102985310560621497630544827850786099581957408372905120231220598514152785812811021315572430237239872669085175828600956585748050687836572056747574088434931121286024642699401713227231091373500340162427811960423461769134130227247563816284860976587728329991808194305573173194103983595567227150178934008343907250176611196300716728252153420941711115070630061040539376952051701253642835019161962766131616530395099552571798534804838701237280684934343917348197820122422741455950912846325101406749816940946207169750809915082827856829982275499203852446536936730182050454598976538825050197323081635725331702799753320898852328993518938630077825029250515096675827908708731508144060087316287407481665088811665189671833548508425287687306586301662799609674410686555851772287330711342893574260882975403976627818406035709261594645713917653894299880725831779007920444872205088988527051496413105724565934201026423906113079702012827246121908715911243161377018316644610885252601883140137690245106088824170887955151540644878560222445877403021129828191730991063193493059055086514184723293758066869459415453910778255213278962909865585303935722208836577938201417273076927185828053955264592111567361930863220416647381382475368868242281133372693137703548357536903204607779402598650618252067478917536667477251280626868807327890094579528425849998075517216154171486730430078467749708475445436758877785857948081465961551293068060599103092098323453454909363222619239661237488789742852564326574952494332353610308620194305303725915767725317505835946326942171578532877658607026735742052538089585336407056344350678167640132207611210191631501657014184547589229232695885180545943354436118883104954612960623970843290654949085512779469662027206525610143219371863667245811577516009073390232948561671566379813452472992199071597384280057147388093705737926702865498279695825044513727475621763039617357572401564859396891069151871046378114722342061085069952452411535004425413154831769953207373255625833043578343333148480624632274322173323392702982731055460627274695475695748896006957829884329220330988246882714106826854037201919803927618858642809260382313912100593983790491407829688636829301279731348773618560591522946000000994040804518861867623864946763996366346251676853315860924489966604197898254991811195361762321860190983174941455979790001823437224248842618362896360868409007042245313798974191386540820765446538480954136966820866991863339462032330666125682124809684375829730243243934860000199800833313644877278658447269114025960024149374046112554293414518983989770195614060806463299206432669835050673232350646699979150155344921421535613110068298254321715928112788200882372204866732637271029012701740202644286139368053251072460708028759720180076258502572664768004046509883100297472759136051410756841494667596858197604931548222675409289376753073460648885356990579517906556799518364707334241242539161881636109993393077150608580810016682363925251943547576514638276334533919118086146363349823226761526148822614349876735882749904455062532676511889250727334565025714373097943610244556393747633793955714219830897697692022007242877552055401535335177115992009461740734259064810200136403419795234002201136247660881612651246114212014949749717642689484288768359800308542623484549594339293366174965687211213583257904051699657761297899077220174628330443844561402459807295521603386451528742996713651714061896807937739320328653425449519137716520295256794530421578972290336706399293954901797000658484665168341809124560036985414066136116134657992459697674255335301879555940164172307157849806354320601986744572831174964308380682841400294418044729436725713397884989602409745747813288926702323866786844854947341468733961942506693124125716173069715233067673381098680823825535267627619162973371640960167545652532059142770948816965186172660108170639129045781929198951700198681655408047479696047545397224377560847205610647474373489293155120726735050159480930154825636621522701880462456033384919101027692009298644839190637482367065747027292989905451690475217237758286840147822094265266365797532418834399669587385819044718028217185463725608570028806424120313985081733759519005789190120862032281331724728665450451510058248619829805785614249042282631843480404505111997529139613772166070744425441868413772956183907172374410789178638770361676395422823983298921238003834284266278207094733763252438741476393512289755836201157447376716143397266249055452151548182933953624362651729984273589640996160699011844412239372188149902141761880438012095063864457933583893983782407924078802166554312898794852879713583947182922724122645419647624377135658936720744097749221314423916851643126780507817538174636989014427505318894883718267783334586306020171871903777348460715399607616592629650262317082693517651035246516171748320237547144681192205938291274359998240068842728250908533163659349603929136761591989456672496571754001456721998349903621071786306619562059613465373303440586621795416159764023129764083146023439561407909305649653887425182709071796818876856162254307904589612927703236547806227350047351255699153366657625988939053090414919368637994243484115392715507608515601081942633023633448712740337894769195059065051374354514044842134088473967340788152785348692659758887158317140401868759384409252220111499568301711198208989130663296656322190164976173358660976955936835807996245930773258310062573110715265305577188147162192459778943607797492654259166745506861934684401849769219308025578693665723012079333400498458078876261733978982625231694333692101332275570620782172866952281416759118890151944009146044221009789573620814424339523367831922978210569482759838458977272502920183949537092222532332946995363126666568531710963377323477391495706053878939591951956127129440294828842741318041860688887738664541101908382557560479408780330478653189758424442713526041370785478853745028179406079077424365240207511980228870057171370964654582976864520217633978107965555153917276829212873713662223463426773118736936671195770998008516825396617044921307881250005923683054217647508997895408822287506178372756096380829725648193556103870749097668717683512437621357720141278966219670874380551848109631715681780025181168251712504333494988270709833576336509610860319501139406437367352523354446837922468332175977074551631083943999047644648994217430456671998466889967192692757751232015300249458562518964000163304336096612193828308674808393525323836017540190775026251085784316899713646283927367840003621375536502083373431455204715281628768641404452406582045735270300655445585601424842201206539578328026197821793375185288510669353975136729638047806418642875940926374788404431895817438174263757501297684096695701522080947487203365724806407625262353320156912999841520722471376902602252071248628535025294131933461930144704044439374504031840533837488031685511584700424230476144670913835574937561579678910744460591410582412205317879895140064654000950546323885465603848697430236160927880421754677643028700778025256659915635759488856955802397903127862980951983971442098391195585117711591251058018698897114777667558172792500368711477447630768982189884914435778923538441757560239065868132189669684724152110154277756551775711300629639579416222993139206473025189619374518862078599274312415885526838913477836958877335061795027219367393133887928973831979845935372296275955230868636226155428428983485973187219793709139774688959169980340324466047402993445628448710384506582003534366570592282940732648560490211989871900025058701919356933987878622735495198560504767330986467247897287150937261882155050007712492637990848187927617665655008199860898824605062950075420012232188558643808353988051395921413456932307519546626117950328469376405815486686744107200407865676378386057624178236823365162921636190668517193511410820577922402806702487910352158766573833237924016440324183306429581816203526970638411962245660649111591806738118908182820771852157232722454509747128417738676674139804573210833146948149854033902467207570945503775493532534908303087450294949471087525988211742558735930494705327014111567696862300514050617998593232571267156165675628584755589670780473649428608286178136178650499632722795153465878027635978362148765034745402513820340269025373907553269343026957791649833762660024042046642115632905874405390099764494225112596670938626590689279388586171911663022425850308543864568219477057685047468795982341142003999426090829175238547506163670736700712668781865384286967509045697202519128344617413451345107267195121065712402730135504598482070968347848828255744459814217575149410356947747014509531956452504860180093159302869821658495820492649371054394688883191001644588529132319911493109326793608572668257036087524595481688918507700358556122675915488007373139299851754346007223707069568464204862778303565931395461402715069816037345492070561144807355870187872531758929417957301913482438593915966881761155610899777862924724638423889793716937849618661295858331294682485975087371637103774629978026906580019921311485239764791297937472472518986892890769161453914090651504441799527188848240288534057614262161330509341330445557725267567635993840019866244715736457409138024340407515522603497667782234610250639488629180731555135522728595338180684154040322550885208390348263820348707924741651625582014914991825168928379645424832764319385563575107102651064609817758305904464487568989557569797437082458232165463224891317690791215046759624273846769787182721840236503044594727527496544558551679444062529938340695572415058556422613024261279983555766847428168216484060141507333867545381907998474694233826243305640426794864513948411677191364239588135648675279427497532023680268980229262606165715106646638170364699165289282990665517060802419592418030408671298442410226556683229862346220052420934604980616878332261434103786133932056728901305500933051334599423050251756356536137342849930285205244664474928971589642149156771065560991495494848244900737191445249895442688825220737033440382039110404137219795975354520378909663783105405805973995498970749548753949418004939589648195990212454977244270041349096229514837671653915905581082107392828629444079228143555292533320541003264347169754863180225375083978562836431466355271762958345161376573627380417625698252023176912828645460845697871905770766991803551538876081224436942926706325682993635262458560001922501113340794835380876750064159663678581899146102421098220424609482767193336897078104712421692437661792187542096695838153273266594801624881596080843176783784111708319015553449827434332226041382252133257297331623076195589953030426254305162559466868254223515105279613108450834573787020188351336501073705719962085107703993374671777982386472279754225059106370882515300125374923951093871411020530404184921317629821028054349172646483292395457034440016590396317953080951291519610060285966686589462323827182133959575135108764993511407424294908910504126193826745971241355665287957159947208016183678253441336126374876776377235095284044680849792746526890708701190226351869850992876528507467662576910267334367553785950249360778596979525648579920417507569386782544286720431710853582043187862105958064079065152163470690109404628387700392029798228826060313851959355744798748638466501855183267403905661219800307521466830900253473771829396134118945713447279330563703918171859810908882215548722377507520864495187575840070027209220983110264965631246891315945944652582620491817184887477993962934708999103410185735042019395811223791407898984240163302382257208342513610803689130505063888195961964848471792910364869160256509900037123119863148295550532899664966350575731058598018393512973711584975066677817571532241719008984854647358024556224626792953846028318163943710116859225746926812123694214015749634172168813635723661934951344289955995263704756538485577829405843600269693913997844764217859666957752810288626867714354698803811221301612129582494303688244480588380993351798677810182806016236573124873288793736756654065163800853475413997288950549356496827361922086579025865097779648533908920435041180421331867650456321372971510109241076799324712523958770948932875177043247920909770641676681500345646110876385805661111622087657646148430162582933095495238302883201958923960429368491673402811879861495350088137787362665560653250321091505196220694270101807224247482970512845713516663755573781083840494924168003219045952632655790449759942613919270099098131660579352519233090268640235688180160247476052104519520676082107399373297368792412943783662189922522462482146315219671872844681198849133513288963849856404963729404857240630231239325639377546121935489024788842034599501953869465770572101719154084686702438845505790406436897591147459068709977319121506163765561268961202761726780519908199883475868845166278914622375802374758981460691092532127259334140603728411105798895125807180875191967006401570835001807399631293344623679377410705788754691541281173700092284145420657668410162332276977925611692226571499702944202075325543220119696660351522126097104407913626119734230433995031311995962507925132372036650439616152109394691921501930713506942147207027521372126506051755835858320359946173895806132718720380109886757891311903687620504783017230951038670384894672781380469875022056025641879546669326506744432609394402274408269969167886422898323549477210442084626179641217361362843459133133830096470976330277915738453571218403112401896698644536191835512067624968174757155376551280782416538081205212765018431662986726498165466924993065110973913974380613216017766883188856588570689408874433461538558092296990680312734183163754603583399973632696560956224476014088314766511552650102050003171653733491460382284220668023580707591095916186409959830629628591279883173113542308456305979130234768126589489592926464389084895782393325158969363729083590586046411184327852515667055538176399644572266971210386839631214942794425018975459519842214993244620886765590938097795659852942920322926717903046174878500014094373451814002569610589827660357066851040950917881400291753996875815443518936653192997447926079629474310284474955880800506773168642690538283061536575752432756136537509945644958064322715861444411672352470461972040307342242516488275732959241837849389388267286487208030320380277665866674806345764467228072855914070109528410045880620924984965293194476305303501512807231027593486050462482997123599711296741092225907403624723747858853510312808914934380296131810968316353264320166890203203284900332858294399020169764453937206642754643693513981651933364378896521037525277481758947483675525813417663335030782264194885639331208936472187462989418433115542330205473015454819336346313521446413481664622931147731721626611137877715363561111302859772709246270515485424179013387200457048558584901611847349726895823415902903791832985709185253371261917628022117393397806551689366955245798419380022223719828843101411893775389982183720880508536867485449023242215333953890377546655758745691402933218466227948588110024911554623501675632381145700388015545492475909019482133612511583817047580434942881224278722192190577582744638570224753074928052505751352990040753339628075538834417397262295272716788762118153508009453502149154416403020116636029202091171514340843323019162449114832783910024616192303665201850569173667478856973165602401496093071143689147001917429890181965994891760948927018194554473818580599768552742056894386631136811957815577025417192751429719659582308547025786454350776350546771860164249686341486802552249903492109345882834605681260194001122327271606532172636037588462460170024030165508862720496881695302794029739243017763520355071539157529553044973606950414872310644303870127552829397158700284542228601263567954544179201673480148182848528444562928414986349946809317964669189132479894018661785910679349798094233488328270599933115856509756538653306670380287503905200246839768538252763579935119692905657433399620280841542152398458171412129547589003048616563923830137535358536433707312794018341759826022097397361199472050052352276422060002992834598759079121196603533768358076125794558423727578898655587907598830160999383011497231445121230703472784446302222944100821043488781226655625490948637373255878995834096312950979021733189613197304890029701286982805582386775403147794352677214250414708582023372967537766540368633688653534936488127046029833683397587002546077956754325358953853639864540428241799341319596917131655853894150548244723121410170051362886571473795042626990704329537672168200403344784052718418078428693407587206229498018895525684634153632535135214947177599385523646399305394367104479294655214417529241097123460243891349807006373966692535392556398921373373606475196959762583707770596219303743924661537640553197770799942257855090661037262148428239347446171576432417453816073643175057479415118049764383581026280708361857713379358505396136624575560262237321788256406515510144844574601700597172897787077007348353683275176156761141353420962261243378412184049363460940088693261056788169837239397271980639994190947632014175168221746926937392875760116262063058822951219865970456632427377864779472967711781252814059211147406426546111237402500701276569575072738565986582406962085851238285377916468097104536299773581822774278586857458682560442181361892273177031024238078218219242489955224699558714841687285016153485729321810912582559220878350033568503527994784544664396948203105164604911891056030348888064078462898465195821314542898752079970586710321747393242105657733146652712521575357908065659754140124646039111342011602894420626948923384316671837311114745391712018427010692695022997359727355361860385408620517145795359601303631573084110585020272558154523960663218146962505537826207725962547103511946451238879758567312200900267440981437442277068347133726924762470215811579106312084077610161920653015480841293757079633817573529516514871537337889903954796816125982124462345613401564720363253445484141846861091438134582320994746330147522103699736981932373078949859412448215764100831017857530839153775780417320139779687600784679719885894691281955152798433491308722599515014866491932820367854797265355009288633199244714131021643349025177586645086575567236310184424702900644473666298091744089554997459707262754976856290816625595093214834328172617403325974581701916445626430539316788538552797018708845672706183635745167259691372986350998022900668363728093240588488900997289752381700061477881085296198693395155950807138793433007839177494921190000526775232156604431845216127272443262760607495867196036651698625605053558729111357605923668702470801253270808309123108887894192177879278081323106474245174807506055779550745751164258702591845781331378472230784445902379176928448663379242511852539188048409692229384230155136062219912127407532754859443105000649978037300616359160037810288968643203160621945343933151179147655449016168171252279674526687819609608300173983120025096168758386172561456364036208343049434844159612849611872608513954555418666419887427365343710218123871812005180501972968573518161878167218454258642487068386201132036173345497829879740762787084918539010301319369267394425138936938469713535724955388474785835752879500337456815057552334881573955580755227283380749662697879742803240194314145639580939719872753859737967444345842972745727887147738839250396531661925713702144946986280759120104618085308415441190596313344274182480209808322379523313181769125850527552087684492804832894348427841248569066539773783545431170926510421285494629481868448986671641494975344079478186443951235686475971365208087154172306522510890577561174095863012894617511523982848935356338210259274995010073189252937281982539356458125855241038812084840977404474028339385523694608715611159166919124439763974457654478804492865850460795277597519618968370220409070546429008170980584512235083403776697835880657753944468887418777847193284822383338856571221970535061820544374237066691864573309701197835841971062326091014490439837021835450788020276240289622401088097003692826317311468301493295508743108804496951416259922581897723915034744969608706273795757304893666676087577352317872588207799974671364106797951978192596477010724887595642795056886721801537679977027861712894561551585809450322148569817165361553956955782678269743146902368847835314916905351802122121339982133791984164416946893041525666283140614600034471364613731407108197817607893551203829447711037631759764978577707543903503281952157444638637663216645697249142184849578270507342477966129916743247228077138109053776432712408744933496538875205329713178860044769057115753197788491932087746098930591035828062036452328605889679761006770576439751092268037229124725390523533444982443829045738798785866749429057918398849039099699335431549294591344267079608697728820245106596487813242670805333230740067205014557912375074415345399828975917868759711407407963042083994118509723229550120447202634336324659172319176457131262518399899238704472760166280643472131463713020611662653451035619275592436286888652418842580750297932560732519489612954356835655103235133886201769481889257910610693808112815102520816010402471070163166818311491079902001474065300674059554101074009277749734318120849367408667974955228368950954477875590254843916179357978780985807058087113373115991782612168226294277842161388472590701781025653065566318616233777120922948755835255887692719325887625558837852948557542140281129395126903584893901309542648612872153837433207019134501394316649312817608547636509086737259976803100452153065703249148305344510676741753380331575770392507158411476604128019856218586766639429201447859739300991979259675839123516444850954032518981770009148905154352793893840877178998926417562793757384464182994321050917844608442541363061361280404760807943492643601338114342438763130292248567359565047907748042602018378414537405881251586084655407216784199753259144025334434061002207108963860260537634074339214518289319259884438941736333656663753577878706241382262020227021797752596248737628298483145532261309224969850467758507600804372218300124046454035135814343616095221449536750013912808238731405719550892079458205581993591777178637231310947152914441999518607429772904770216244725648127024495019015711654878410194400357823127913717292380629586876934913504273856763916084678157741189377894402177163185120741661548275857830878870578633170901169874447462534338920042097481940877525760638290184222597167467134384283599113202542698318067384714169851767568131979534639808164998534372388748754428638522482793893614732117130769543252606841538814993456559025813598078896829288993143184697737413658465678322158903460894502036024569965197107206488872188018142058833394402865734562238750009476517335062479542949101787432448779757312611606510799799272807719969486625966476211519057121794486905447369837496799605640913783944946435407011976233330239309795737997107277798362355888917267353684650060903352932970829733038135810999495192701505458273759461526723958713049574622139593125508349032721730706032942677063815436868169592387737723255452194508115442627785404957523752849456645913558036219522858513012035906146047012397339985716572781732872968791091437670601991242683379340231617913411301361740785106679476421563084209689913568448738864434898738450630168082496868701879641015408402643249181937688096547407760482571779951263383888001119902853162108024588370696076353653443657561344729458626717747233035664054660068860169564548111940374159262852991815430362044763673691314942844122518083295332060543062806508091337165705238179540047906112982081230464879039933451175317135357012287209643834830501153308307447625510784601762693324937520665289681718832939156836262734712875142929002979721070408386999875345861006987802432516826898831563068638124590010969898875788717891084264926304606214338136962002881653857544882751681526177444911482413018866813584520521495305963244040848301050088798623765411745360375451282442154713175862628524400603994417558962633492583588599865406788265977815905587849521973757273239804488350824322682580849260711403784698401606233034664046526300330485441491658927584415842929688823515594628543792522693103183449339197933711131220654241159846767486936160597391597388368771567111577680414802560753123774473280346267697318777120318362846405065453585431426557872119984191242038421157630151723408386886686687200380755162847763997515017510323266724785780450503992635365331639337731493416435072862352290866003294438412935378631686751876936464029509900446339128359180957152155808996698134049763333186864937593981387074739212709867769820274256912371099753628128386441051724878663277279032960517756911123902546415999503777695853655028049994253933994964200660152494476239927120399944972255664919231492680875773287978267543652341815105410501983535913120328306130898337368161370228015341795780142021224299698945171174910438631715035486247793595923199785148497996262710069127661350835040257793984029060734308938308210767380977796902140152502062572600886960820980016552083380851453573098772695488686315957022354359761103240140890275126903517429985100950181922490218028947069685469507134100185354583890487659258621226772511011723875158249420398445687816153972829981045036342171729942582221699615899027337866630555935597920271025788023637574125083863949663103550332609233419751339203005702022586925566210605362133163042384273386751375916372771893582412068087349921161459537468075641845121139275653883346173363956482420652456298287072470711645543093500664812852429966236012479944902233394476526113560742518321319081892900936514641017828104103696802955928133157627312697420700829775308063125021028623552535322385324456653040076986268583295792551419010505542493236197652998480310831027097286493720100180207585004780749373887396105243353603851092090844730438987111273368895265931002808940913760442318893146951439595454645303493166757514895503874062446203240696728293959864854953245881934738062192900941782753053429756950242044870897335592881102990301644046883214183331931400649465178576824904645503200877719771520389565001504432001703333929962652074464764971530202408044330148019578784006800971283323826399510829395537372301514754198028064894841098413318912570770699047823265349728261850871494738789435808636118867087201012320377549064181200858990180857337073350244125143391038709684986315255303136784629822344186968525670221739553713341766128695597541505811677686155353650871937234461619245383687902020024492587430853362866399915273241309015971435716903285470699930532539405624748320817708407038736584979417750496807096534498945616247258676324795023027783892563507685541429430606515676656321280080822634757281852824452609025878353234270320153366683483382132903712324744352324710258638563914163666120245395915422140253988523484975619413959005269535437989669367498522011121691980302495506186613053607421475339567255346139003159977174552142439678565458193357126566780874811198009097495726076100075760482097910129735812092229859223474087517723606289478316455230246262893729535838815019544669748903129310901330976253567057397875446716590931766198613045690328990067119532519173831764293619462038666156381832379889660338498175034760044368485936915451499584206005233981611006634175590040594876272783534357636163946346455083881557243695778759288660214796661999483482606941654665267747033908390273589027393522619154505788108246557282567018373964197768121652051439114018358841685048035719641173744632881518411253963501943209046230587712007649529821219756421003639269696160187402984114970424555276049544273730906748311501840951671231350282583087287211108324942270544045023592744734893599091698692104311759020141656723178069748515642329529903479638634658140047777545821520301868355132982376562824335106743955845652273681695902266976694605483239842872430883388314016498228118789835088449932098216872493451745022752279716103436576893337296700676043172536810401519584013765338015617421243795791530020908992973853532034869474664474181333522595793929933924623611435694760293308968673245899146457672018935714890023943995682864920738552309753974493598343585960858631194983556268483943897435176836480734134284266644678412084578359608322718568146140001545645414849154467169974506035917647634128819226585548941333852044717721988196234577025422502648461923991953210608213612146469745156289130086222077965810153440592347851961273224955569447132484320534721396973589051130079950642059527233199282637386964454872294008448381863819637271541665989957966947909304560614748922211763423051563114131344243244538201667175279269784025997502856470060037748932694914686742388906373501295676878806411506703249057762085137196404486534711333671165594214552598105486393917198717613427373363837314247357106414792371944257654693066073205566543344370600874160673043251965020183780084899470645119223773341007126722792049148764406463510311156147410152627045557355361944333022723026036015177979423177035733159363386487384108830449828139869307677238990438261653846929992895187966420596101412120036117185667660290270929965002122235817547739335065379878578475879246400113418082532997918849592443124813499669946678476295206693115066859214764311837782534107781443131484484625618296874654360884740341946614153123064454990279289325599739904059952255498307951263707099995585760513277706515089034319014977056761528004097680389785358043618687661009878959189482156470960994456743877140928332481816285437661322513926119429934077931648630521570909720751537498236813447032707180850875422708718324042371303071393884167129087134675587047559514311961434733502072087792067289715019525353358981977871730706345179494199688705714118338635908393772110945753067958417567846515741760855812137634589107542462084874830210401995612101765212933341350117889059218723699014644136624956480223348527378713843077788622518807525865349745643381672156291367903777814839955019801873035084637678515054190503754830933066635826690687665119842246264233135601958639704345696573109219240306911324260179418261682868850726706220270647980066923919260320797283879238332602007729294911198372115330969851543415263759171079758417041224933342669419403547114762211969034090207170576057111378914785459187466433496367137946041692922775850545642827049069259850954820403257681303836277481156562253524844650766326792004766876195500886731253719128791799199004689596592285622420602361560048505532106417855924544696574615088851601772000218895977882337107367654814368486855361097734685215774615647784601305807678587739428304115619402726112644796469649036871542947598773556165886457313357071544156932487668349629652878534145834632799031498802709864976926559936306159555896881373669407041271234172957185905226146447075859057914967439826466374338780334108769976127265349601411933978941917627035599294793771261404919900596244473222903270410941646176974231839200321383226230890760236770369646453535837224283800748921933259753106700896686153838676107103743168712821147990983628749755091994781297516541901293075653374909763303851845400772014208452218470921788925769736282481671145717382511007370460101592602447451016608130196536742718504272733101150411955666405031684717258326133656938739933594997591944550331542036604798871629404722892287132902850066057429932277594786314437021655797936991448033609700980414526745614676914892894893137753588397169621472651756386594444795894927935545281778119788734714214503024402683918568349190371098988285961565496279129210678470859997385277491655897355992474372664506344970418740999146401431223493448197163383099981852166388946972405640564874389798321621779457629053120942982209087810028551771311382267563129022080553921676192109789910972223832440018540315338478012268772702592086753892477419479230076378710125197146973370713645996825347258969543267692726240375094960055309589191158076329646080168284473029599301663627110916256324659192115139820047386481409863442851954598203790673810065349354718446836687088503132382959400137711580069820281259218553342850433607983617576540929837063329718068541686429505914497939668136053912609293187538918652475052521518392727332466732700641992276004195003868475335737493232695545170720611754743719381434269817583245111928819587946284409667973442993004847594789513773350654870918240605892248451305255662100169124365583367201093923945126727675714762756800658240948087843211787493341770232869630819684543589379830332158704579790695980473571117085903231767276212917527725124745045091199687334605773720083847804207930484149502282600152530260817224494097200452808161297065203559378350286859565313129849289620761096920771183856250060548874201676824875440003735221265664175128392381393303532503225804355138743214259881778416154092307610382079190693653134144670890329009652227840237390954776035022976599998449224986287679559094354874662357444937474967402107463042834220578814217914432798576140720845383752302761920942862714448644341770878913584050552186251561981578666011067813615234468727412270935588929973584601905041007862130455405338033298680875708474141929685831337852829027804651002930068019763662610629402872583738058579553629599727456944106636954306762736745764614706269434521552968640470906056680735726305229192468421072476324111856223652918556657235804192573989993699390994782250797104088888559358229991751430886030449182967605076585181617260556460429482918447403624213090020029598595423154720303328141276081496140977228679506070756654916462058964514195654537849329383983757089720096156727983377560661919976811402561959917569524221024842167287288084150868191261831477671704810589231623700472422035537140896837295132817123286215209755809022758785947831252365746980753761181338869922544261376910611950865419829440298223795012467100836707605595692331757515216251926376054261624060816500412397936987246642861507770535170746584845078692627874705332931615498801581627695145563774186570371891714455594198447504074155809117351876982581859644042246934837295521389811982707978910271197618458536777983197346864713277596734156243691235414173795739723916125452555894295869927964641636378853612866176622077555951315724321127801452217924778492573831988210019812282379426427194116207207586097990681888040394482270804253905981875421999844015892804196092951808296468884548584112913176610354475463425287553119372821140804263766272297947141548759770042510660342842430211239703576177621351736677039725062355220734568250429982462176571342343301676336840348389216863037179147601093726944698161758311538845567509718306590786195388165528795305560142713710700614824671782887819945791549670096091689004306094498188042168229818070546335641322274367379922880815874907673469535799137017542901234900566938387228914432794574790786706253221274924354691994295015286614089823800231646047967478135194822414208282140861007190616033720904964883186943000738841597374108489484733094966918674956351232677112556991332612928816067985191501359463450594217916947206706528861051621233666045843928359519465184820631356465206412029006115781041605872785815884561077402023699299936787311208461007550577557838035941664112230890904121738558886005627406865104213230218548989955951670712325333673240028980830455632048497433875407927370407538616275052537594475969853910348575548409033461876211808116070638534299564856989639592872694835966420062775524840912669057204292044053426359614957021420468655218546889008203228545576293664868010783747456882711257429682106397540958408412121129652396956229612976039328167585581853653248480162002462271603500796900253286689637119396939579027977415639053375195387707354719124927743351387110141493207081455777682856910945739074354456483211171470328305206334149470314035962737799109862668775968949940589042160632334953645319157172851531855119404860967676007629123665330689957693518822521904394119581570581929497034299410393688740163740582459845552106843703793594034366519431032636670854578304472739762892883376491352015510679748810642762321611216127816822717703158749946038720298794538663791143581959473459444082629891725228902451047941038187717177876213503426877015294394742028472252351356084844187067000224945998645947573910891897843793834036624028430285925620040725881973406750140120241823566115904428509069790877006227873141192444632629998504471768103367502961148502671648724354949756581667647393881358400771269995595071183629944271506897482356713490698495209976113483112611678336742875762317239407419899842456520095523417182217811978294240280899117650203366623254278034593043613109886766909658360648402955200448936133946777461711697478552765393000062189057576593834490722816498880514084119325088833120576250681877324575009044714973178023644916905606284815857814466996039853221621211179714477992241670467333966063992962013245196390408855501257179079770426374099048489720456418789110027482567239393614432346898576377946509789818332862824428033421385215534748140469720689261992797586038865989976958891908164467286543387402705872394665786391065648105592948591516881105650329873778449066642954357608458754926018680920565892567720440035386497776736515708640903534950002732865639386326246118740940952302158569983682911023694854333902702784352474042076191226821387710091558541579834492849839300108576687826586501214743094301423490438964473385486316727782964761879799174979160411894806296489491826764370778348963680219324884813483422904119761597821451193091680278798846053968575842671192022942629073766945061358428087050578059277244867015186920634506865740250962712209130451362969538759900293672237079839513028717244321626155018723836317680423798916652184466105716516249377169618651483622264610891902374461686274927822260840539985413658393633875475019740474413876264856639271200638083247689476939401071549611140337132621448233878640041732155796791686362530767901030613324893119756487111498496197046305625610521918636182969808655755466792559862169176390215178577237995172228178359416699592361822787749086776876268896679080051511440469797369329203792187788908671816802756152097306987515170177121029261684306733456500892235297557291940485428092253963278527062061540069237678950105964722143537498751510566984727775096014226241496744022819043722793868339309412479303694751641066068867701806516548307577514668699507128780733683539125685850545013588122643563077591247422633354631097182554069141521119804020706016982964707240200129398987272628202032052203258210441437957295465739348075547430934004565062724760477962201684719659121490306155457463143940044392768813978130157595144180807499912858888158692030457998600796308840957829923330742395224228850815738290527475094516630017408467974538600607550965043653663017073536593737008296671223283594406152831243290179834700311553122473763483457004793768780266470734236394472335996716889275940764908933642275298618437592477444608438847410006547842355594958553166351332723356356214343577871099415625509999584249415162153047325128781228891996921953702704314636134118574064651954656249432429788680731688678921478862264372305962426577533457757405700732211063671846834487120427236519581694118595735263506498047902297703991261438605918352619929454348227063476406690673985651611103330401316352230908711477587835472245748711183996559605222253340527099743686740346054984636120753726701111112089310981459217248405478060868623615331413519162544962391328168913101049605317753193903429883322212171025972167148413998749621886322012346314685233572498219400627706430718755248712613403384399756094331870076587835530002851608656520299808378147053067509868655683491706107031588743708537886014958366737292862553542044468449663601732806785144884146815355936477099167550203459506541879378021485299672606513196727736965639168185355442220132412521199935287033225008881365264970304229390546647678613354855899447932287926316356860585794001643753718118452121990255963682373313436619791144836962824015390866528278222315738290756814169425312820990271592335821628624340379536344715933086358983718416719812937324333560125706438909833342263530150023003661654223026779628261931577299561104297983813003498045106602072370654614686164093447509391243986707935143876128292969922852447943126929311875215576027002863632541660411428053212349934562529068628639568655314680548849921217904985908278509845456709348921113397885614677365488679073469629451809866562500122898871727845594123941581147216601186938195857835280731052916524857872571437478892325393006338328181210065019344906434438691225392446687324688219730342542199796825424771360245603252546363114901214235043448364488202846451815942859625329663926120934894558512804281875567653453045058897204198009858390748491830014262997237588538478507812119688918031645522102955099086591367293412030034252057390079782292850425893254175919107489774409846352763784476313282032481842486622452856863783057751902448041382625337203435383043756851107435085521626873950220890981439762883578812848676638856860144030652299502038722868245747825174930501005403844733179923546027965412516856503192658814556315308013293195288872784028732926120879496637272146951206663229338620770256331436610527134941848861404318253838657019697380620328820391025791063783494119820094177363682767390660777784683194956401714841785329395872299271070365657885011720993503409814209625985985676560351854589176906531250787606214395300237198977913666277385765212121050383023434602008563265848566523336667289731902069733384970293558627693096995616874523796913108067779628422178143892109919189290953680335204751755523469698968348684089736697409215523021175767993838785249213452090612843045343686196664098592941121413528369126920995026616912481513169646111925747485973036432110849402782695544762961167673890673083518736853598130442067204143977065054788319001247503665435521427261592522286306180219560263371449983127155500664478521557618237325303262315356069558315454039269140201321479701089359440285970623638501851809933433120268494494762794351682434983451419660181661560944089030389713036979850167740130999081807855741190652684510483542745298743667163675391151432327448152607973030383490669241389412386989697443009490592005270337493026862987729532170973298144166537061606972095702873670990559127404247788496394511200997265504384684239972641447323763339089509670484264442005703534462152251768436195803058338531468713105390335565867045846254343253164844686440020382386452252554063988591051827525251747814751711688767957861746941302324561020543123949039098475429766838220895732303526440541490430903236316449039196391066636649788136947319269890942454471058723802477794245782889407846232102321726197907939905674166313463392534502560070591669783197746631892544879702801435764649858095647124495028534622122228282139414192603125562833216031360364624262636150005662643974598509123824026624996648199785521373771096371158648819700212769884285776590873165681495681805347787489321678598984757318776786146687244801225501718049654167362559315179808771284802930189214404910256363005955353223807799677343333506461519244493746336118602141688089092500995304316062589712070650448092359606997008452818774973781811173260454907452302006906504319964916614040863543699088145839820947191075964574836398275896538483281954567619205479749553121305263770190772174444723372184415904390083668800727161941169837206353699879233501321655836906879738604511191765245848719603840456179788714219115677747359167275582314060241003172387809360479158780368023820994468767000363655131251258319998246545886031011762699330222861267268628912902855352301438978480803223545853371687905470643524668058210562347190691736913525418372426418893815878047022460996355772039730590270584654751890482900668050899493789084407505396106134077150765004079825487245617571851075220025470133510525381810278762173360562740713730640686005311461997085874840536839100732466267635310819099708027820471560784126079876898630380024125920716282416645078764018877586630806554342279496241057222581249738370277292253386869161150762461546194275862464983377603085522252469179831776794453860342523572070357224501600796281660203499157453152991939476386524016256298758592631258972658018182682809905894986689126418508778413482946281478875539205618205931760799710409989550036905025213179965085932400312481513047730973008118186880781977607765153073277916036125479800160847930228350814457387165957645000184379792877728605429135712916912788801787282558885024584752871071002995133532723343316553983665571009407825580140554836540186087827287905820641726609862644540515444979034982889766615848291358868867952673227605918124126930224414218280795466039561404232833028909060030128017877143691671150644504989679963518055902968005765763473990377463400029492577699376327107908625390162977293400767939606815860053697139268153674851007429694108264651185634987953069394342302029788031185631833158652057199943138322800277030994779110953781498365628360856565346027438750231720584268047453711425356942524578730703282717829460700257812014659507464477106231301959721211949900070116815302307672644619107377348081490874555405405106000787350703046096151083582126085601475055257237437290770411231103860306188985184833186897183195948940487982211653849675411232375622982305319591686276134186464569824967092558424759973443383601792723271441280829771965491533099624819162802158802827604494795781103224326127302387183390492164153710069927263154403411856150414125254099245501669136484281893100128287618107595564174907876056186032485701606532212146064107247716888789160279709767529430272982971782085169848495105924038792067806577359611042331895301768698033782296929813687806019786767054665192892356815807624565487548758793781146536636042237990396610025141958409176094464471899105777207917231495786870938475117236533818778277441943012855170029069829974575805597639640692520736000079332714142909517587139629024515616199124683699982382258309904657736938405605005159398607771794596403552747838396128694552567691904496523136767781097884142788361091140991309626820448045462223626890979213697283413462569643393275750380631774384020153089690185934005526892702418313330146041706014801673575676304896086145597164702977991337224032073607617069019852848114447364347989641711932339738362816988931557760183733906494986772987633406567161068279154185607907331472984473524409543058579759650329674213277268540079974612343780236821853649516563427621531641088555438373337367290081489082298734050286275447153807161484175292489334083957811862527500650085138847683202697982387051274813135213197934216163714019433896206176180144697610225551540988998272436593063006160944287416962579427268305609463771034899119822443129944918535652931174228824708272488679668308759661119211380413705715477339764017600516827997865442410778781269966760706890463468603158529778874992692000109858432332475306657341994646685698231739319257324188823189686412019128904772916837692584305688189466033317394120088254473819366188288577798377700003547627214202306568915690502877023595205894322565012807716638138729229611890040770200521043880403528314909304219872969830848196032171690761151253199444422548491214449312214715131043926112734834166527681171602620972263301835334053369711956107341725226887577407091125514424650532310536823831522343564510728037253147143409535682089270139944860094137463262270876424294254647580307333165114440891386101642357283894740981467921507370140888466696592858874225961599200661685343614846880754141868581711781169844596216980275668584406057667118411078649186020747533933078050163151615666601796992159338730060147470922017566982038564874079071411884779697970198642838566267162271740453178483549201348519894232334925270871646714958317327027555269609743557985982139215975597631205298824433371627769102834195087105619801236583208869302880316615174546994819542585257637984383328035429183616861723207318582399559390474413631117030008370866845146843521218566663257763524903654489854610749533943969734196307084579568354049009598516445903918580540798654866442902255654572323720338074019332979611855938251737153217667512894714137203130943679576738067556418277525879165361480898335716978893602233916960162358675616940197405422504515398364713786150866065853036340816227339634318314054317015668476585981891402866527912176992897203522930159664890757590510775307501590964432976223189286892646448961797204742102974256312647273655109634899953277170812749196582561899278939762336291812728148840346926379321908329265269942349996955633828067186047481998089716928403378310849171535304118049058667079177445472200333501107258921197413880442140965341195788062495584891108602273126337922183857741654966224824624711580048507096977869645458525106754293803652179431415779751828459065486749531029814479319116248925439718079719955301372646753607249749719187458077426299392240016646169319999596554260593493173277444884112424491921347028621275047516018229355597899826090518240708324557626413017896401000645834720098437460520102561306882591133270360582569182757328480151547087888734905612945703894335012404306679359295589873817065925744991336429463552439548267244059331389827433578376932498988505753157984750907252229429408176981501799024128724268425673877578835624073803405389391758489107990912883550566274877372750945516482990953963199140531114454817621878390118191250709850521011752611699984407624197338326706257819533868723609719111607665566615083975005280340407161592650099056306370045097517484297347494901337326006976894712353508656863469253551378635840007937587802047697064608718753948924827843425983251729501975135925010713787027112366290134523988430739170773996367588547730549626070974353150548734009742388349993926461270822720172113423579284001674537620529901369096199984576891631681628008019603224111123449089117169715537185243452041516636477353932793019748590817911584584113882499507625907349129684347216606020189463495157568239869255558473441656892236805253257371088193164443672241245392865855909558233037810859074960496611808095391672638154854006316110102283126298914574230164181693556501445591244462613212825401531572204369931190771861066329629490364515855345118927958922877143331932522658146830972100823439985359374269785865269030266764582444312213254106808852747853817668141751872715954422011434789886327831376946948282932307199461434780637863057397739655631421646663328260706414810746091276316882310228898560714647719566484647392821648770301277424308720802799936675792009674512741942791965105974150505776008779860404501414752173971401474038477301635367242726986742965268040704244567535922501972672892630517074517443143131814953572957538655225922004667054957026900209416875203693031582311694478648036696759645850198066443412579900455170376868681081484611236547650808187089366857453306334752301984206137623642880518649188595267085576846329002087447551390241101689149971255982402017308276876174103439306063841318420811162968813153343134481954978344751902294670779824566515348792635850723364029552144348147115318627980708451391011423820154950375738698605142280455659094492862197584336907406373818406216027112387980309440729176706648057407807375904636137809176101496953980558838222765242415051142909059044657438690153105424574237546593614252602266116717282002140027530612717238986006653518129483819238156358887145546594907914181650270770337322775632085821443579820289708671199202150051946029902493075273825527084220708470780837536819558261167849974027643699655404525648428316194541179525045012933669127304922106449627150825886564265641317375244722011338662512638935582043633515204986501102982723898543865752854892381541437284798562473995193642780269207207947827250039927168564809558607225845538189599670648121591287789234536102789798350956407605293746337721765731652929428100375142022329253638648599550971943434166562494418765713967460810964486721837974194294730159116283760070272206588171106476656461618666880860039914820677545344654940142931501640954846604451632837773346012554444203318286729408023069836990593375844658353749088239526186355496519865192405251651587328395544226857361985351598352263422213675685004915338728869393488414159165453105136567620719841349256996231412694524920730084799597295490617521452236702583411054247740859199124004886743126863259599405902278765938010597418456602332074974747061025624843436781939031388230113084859308066529765194415755640661879068706461222736206179338658160622761135291628292885306265283022233920665403772040398048026499639744070465140942742147903855382749621781219393271547161133900985254176469464418831493169824261482515423530066951125263724070586843245064668344911373729365184328881999936413503201833812269290792683532835230793884673533914734596690240182455506201204586905095091417844584158568722458687653423557103651342933518543258951568573322237280339248874567188267523095920275306120985067962837458789822070707383572595342385105583348916653520808329946088805388150650365368660901261691606590780152427848827425317027765139128913639172050941244235409072586066665240672621910791192337238888392718999765881683852788641285038245804950540087536238078907911397168114705155337004936503416621259936403364055105044395041269003946847457045007609703104676070323578022308871831503992552432374729201595349104299626044310332454581748832364647146742298184415910274740655441304022504774220737940810586356278802910071308796915032858389177818073139823286909142919606343787602916559081529003554563451391179874518641650315105746023232385210190925922888281965958904356831165191722968519664133116920252093033400021601285273211503735698828244248633540850478435624201181266930147453798813996035308312635993237003285329974714613618154235858107396252226842727804052849565153622530627673690037724540853744177867714836116740791411382268597850593854558298524262388749529363799952150664631172645783584855613488478337531303355191317747809857594249835589669506751356389416507702292008990121879289119358944169868976485220386434281942064712479563657566859884906208248022210075459155965715472734132677512916109897210944497597991430395882344043947546492736196121174873543970740176186351754842426736523180522808654455686843868140597339784799456986876000813403075531878458492352024044336619072512647568428653800836798819959057880796362259307901378849298053928170929881778127053444324702433645906079497317017486017729082132614236931529217737108340682687089426194824034349265345715834169561460540594365872431481454884370083401497051590506048169742026628581989832380663165981671842357805618639189457208988487183790535886951735325710302053620756252350319365592531182954636144632495163050553945843638470556440882423085888611541106237214631333034782304748074466248049970648478397091783835753697850392413820706352944595607780471093633191114733908671394477621116162545278204092727927780818086614459470831538076227207643083652208622301441627183417566195369246285753273071911322009245831276981068657876524404902570116594339294897265775982845752638608883879294250764248722613205644142095073526300404492445604917608717761508459348818586823226192863339434652477118021010934389759166930420321103503375369485023112660575789907499833292549750000150007222358351419669602749038010462637307063714852324681517044162630740986415868558375527671428822363034701420258980663072988306630152278779924291494105613921233958544484887987651745550247754248448115762395645487606413405875030044165557805861041446641541321751909014821690494171577277320750408167209390734669949323765189305432542042138153857284462185189438602459464611911505038473690061159117716406892674159716925826292034617437061572728834804601673187992837834225731397874518178307170238560864008821699442781768681605303290982923311574284617988139025878121102917277739100237953130718227877718584512459084520953798010441406570416873649711299911326061094976491201255011292491432385035021883200177529343548114542033782921639378223223085702874649528335887147683082622143655552701051274312334631831098473338218053267055101402500192657672323448971090809953154295011632251802849056197834134025453980901340559008433668575915305583787935352350051456663766999416361368855437754149757591226493070181003618323398157338639725632097883398857022028168248191836745908139919285747161586245510313858842547377056719861111365612932340138002031657753288845505206534062896802317012833015532311033385064529626710806860528650884229714273978038191307130940547941018573446046899445149951222278267462754716966835821794630073287976274466116307782006219069791138876058333752810381820023605528805483547142452561397269411181214219456055083015361259152648511553196927121318208920112622848535736559092416767911340974539784266505636435968499866108939775132262568412301359918440150449251705311758558386612936251304356566465160021933748735231329874534254982398896163032412740959839909119550092482098835445523300942028611272168090207423020858392106849347145560664512368621336382589569104248940537613000290137665010096896682106676660087975242672380140041217311517749385990791467565302456988853574314079015483858032054511437537202542424870893909381193251009919847852792693404764354750449490052876214963744401711362812923725472407096062621885808355753782831641417347929651479874561264909166000811574530708091262743489882030762476688767962103821166647397939447787413040340664445857186076688229920133513463874252092878907074443948046809544063812069530483553051162781010924547427920708496685330532496773105416605994717008617353846925353978525164029934676730038352538123306507737370115754454389140895783189634871822928342407611292928011537158438272590726850071592279428189357478352386558139988246900878907035284502471713753342437276950255689012736690043000201584648537607967177096791254750106488476660259848053272947764069823088562662250799116583467290642451152194715770873705883843702133806877748386452578432129571071895640918142751047206499653506680843362873406093318722338072416760136299537582843536003675695588450126703686915576158733852403964027097382491379967033430448351714304568278351619450021815963104396769848153337995851834244585778575232399944886280609137708704890809269693301351838704392235041076586369495845783290183086123836928920223827466884692722889571519945882952094371112736626096771581178071025907927421634154617347592129413087314035066333921288894864550585346174081076076274665026045773692694804805405469026450618552889310989664188660335751209526926276847211811976157977466201754645701087325270742032507307116133015779741584402148668667486124881809757118533586990348584475292072136567292411366101177487966837356985059624924662979396362836977683635688105971112596774959465658928010836515364827896961670458532267412381845845066644933490409415093058018968721624716918925163437319600665757783706411220483777709494965706769046248371548920678038324169091366740680720879601866389821790920888181254157051000511899050612116685691239938470723810311658004728543254413342151463525449100499225047792130082387221323990660954278962472128860541922011599144842224026487583699407335815004571953309453990727897132479618186552799422034445978886173139911720469009025973518485140461737437113796703201513575345328925560149089645521836481526998011980061890780072027413628569663012740949080700496566512312807596239674071940239476324853934464757905205338803166117308481558317146086323449010426332539575215720273848522948812254876443244526756640072611110368385044234036136887524471560578169479297381728419790813099455463830696841018955035760867479844129122278763417616984591918595729754498013703595616683233325695309547689666747452349747428907435612071675164624090529873196426661401078595373356065111738257070914348911822414815085396241387375311874707172616865191220502719973266734640579393906078190496815323749400407995573356015749499602683216346997658764819651622848112646999222249249035805299673219701380153470258959455623694991636123181268577277700339128792743344147721517827771870287558184515149328397495655515070822674326741825830091127800102655071840257195961354208579374934345071367091101659921524284347166557765758217507579186475191466231768578703683269976467469808472889924164463790797920653636652499231431871350710457345630056668309699226779635556940530237797277856581763772099234684893493546009165738588472269725728266751993712611478034983904252944594981503791081588404858619593155068151845628069315927500495172182426819709188227808940955701836559933266336103737563168308779981723592702355782638072833676467409015553852901301596647034310210590786639406380120498840142428892758898812252575454439577970030672318120346123715191528525732094445506186387324945015286176251184057811236160986684727851875656208414812296922375057267351875425944133232217965397144893893093218748238281649001338294170185665720273521687574970676785589493109088129626434021610741527029178008438535117554513584719289886176320974250708988582758537805053751092343523799821590847300125204522128462312838695338323336599108372198844091371392725496168273620356957504423801023277058233113279234569462297738090729393307625137359810757824038642596960088620589171134589501380915081524648755767013672311286014412115456112230161976434204968573581065506999474141149102201147727217293971178643981184019835912665083911174458893828787999920038362234664880953854568241286557256812615088954170879707190798791236996624101021211651139760262537860461322445379985156082586917656512745248599295488052545608110874983775232601180735293769459644082429236633112502514131090106680476309162463771828913422428585575148316147108830641811635621127672396279580001028046233643352421532624615995454129000380387135735310694184896225965421965698981889978319312469378691241032769868003842518371966447925112637504852639734047437846975496829779034477167392456945467900821628056255132231545454976639545128216995150539292311906463239761355485272351401524287132114221874418283613422155710448252713339000846228243409176712073603964414379666745356744154888048944094785047393733069050273339675939431685690070066431592482344171884928590884696247404356252376556162063241859204235625211848276601854702472677285184982446628132494806201421842369284913887578697528007234112494402537501139424090764417456801733393081411186271338564806508948578022747389650657428391058554392549055745806667077161965764430023563778388289251490711609439833851741199570534283978890819029013309156598296173758370782592257443569818118264961035775512888636207015029077831339542519217823251042160357824785639695467145065599077809254874810592085354671317318446334204189170883668253771621504216473352464670246139024964918311755552190074819287811238448352895963763239862539761971568990988971786507211253680512700037058492120552325042116214498045866784382431016022929862694237346629042117778647049887402617358134840325219212174864167553306654057782103024825289466630615365253730277291578532628997914637276509414140178394536395167918620863808419362280542060758851299468898867193707571823026648488594770637219990426061057538972683093651639289099972555003922840081296558385320241132173921669998803511125177339067934285364408899865665645614108237452220700130078233269926972483397220212996062344733714254434897052327896574265491874886565219605970310752022172166767027377278228990388628807231282688961201831381885576441178910777048326075657314047601554407145294553986302836431381407184580815007297773031989843389416647120151932562099055707215456413990884378350648029564477599252061138578394493191148885253816577681623124749259858183808637217000168785787988898251218476432233800708208498434999776215382529493764280242297831579099324469095629965162142856182189451281702299010986686240742505733231785547402122554342676930021807442355886005540714756477197675074776647986460894258672532499586486470487721185748165563132225319137571657487289283070673325867147032240051106759041553902738245253683175450843536824234951964622509955091576754263224300704134181232394824563050765104160439775441124651662200289961516155056194007730742040756998460800128397769529801344974347050082729146164232610239028072256712055089105097800411592051955119268412533790975005840230751686366871135599389453926341666983704065568415334666826305534972038115396089988855870011983067778949235235138933352989654271198557326209138500474795987120798907453151801675301660482777558056226653209204137903242809246517222902624565607607390688612094896312165629440588047172797223449203301611756566570228724002768580735897490889481437171476125425552396471427498877140602663108487653785776285139729829065006572808460589496826315898755310946802553904698220592339964285539564831957823145761874219726408819821513024653204647900749694160904333083196276646049254713697576137553582829427736654212005266856837453340002974709257230067434442374969444176717924048202064698816341389746342275599006336017443546371658482330258254640512431981838341688336738862529158911640676128824228414561116410373241568907529315247461394048096565880340047310093156577571848580217742230289776268350972386958361728226916942399616878652138638609349979030607143053240620465359080693387252515808275095485163319105660618507866288701931193472400451354534236078238115055137586399851342349884540420445919573819455405524953033612865796619936913625927300941807935739799362412070080384194679199460695648048503860807648250233599491723166023866617397944687013613719244035271661464110520786024727297363370995861241874250334199839770573342877662112641028919950095585179868148610859488193286507584878656185970913094806467306611373542963090158573890375231849699350047979130283601568737680712046621778169066313441407144603050532646428265683218397984574218558901126952071974417422402976079400378153921846448730220886458603344905312718317462504750028682615558141232971556992699354574699303841459385523330125699985957555244192207660853389331070935052929453541109322929339883221696171263369769363794573548065592053665958701350040046182908921335300415167918968858923685588340460718447054897331614745719822229243699244161596953483342249599092752096673588015694680039429752146524342966458610404643484940686777031197961881543354308060914920578138548200754927811676146911543328952932466700757984496207012160426629921242991044908545750681877798887491710758576084112158586739362171296656128489529483100390088899893502153308016449483725062394993988538538480814258244921827912874283927503898818139796866494018316172198860238827981837198812012323032441332664917142639586304225562537612542264602265525400430392877615798403736744446794117831652892672279694324570058304989022836125919460286842349815367463187603756087652173226954100966362576965899918965273362518169905622067568618207780630046126492639639590089175325619099572146548518108173263156121886264859264237146840060067493844617797815847125352793240296614844424157557510935639515270837709187406613154640746676157245431434577406192362988889599534595099827662380790924914912942033016343017487401817482744475601721401627522432171330894419423489595425091680646984279151107152737594023055474338166922659186348064914951222708796539837549526874175931125083693761227734852497137269517925560631281560411462802830170949853374748738755376305334044252397559570263478149436484322054610125134677640369887568356863442047939357492854480536246523078141062141497978216913658448613118288549880875797907970225242788771799180079079475535271780895303440741500719124673302827081017264805110278700964179319412520505485161707069269834509207923463494713437049883952428292484681223486491570645636771334397710463208754084497713587588210406268178856532452277530994640382198064966779061527867017590937033149554658278082900187454741462683747044244820758264380952194499546063046019333591555971765590273402469240199496921466740127601999004538713813142984664658746428558441194435147335461302291586760862729080608421073707743867171993347459704140187090662477156946984890661242368099249949226534192016691397983335352788216616468696091867829801017466239953480163824402224381864205762136602855458632529163273873474140602208332253771274136413601564848698338366246407291760242813021680165187738706211099212380604122544461570849894365675607599058465277760838324656228844806899498455177730045375187448299669992386195488307963460790274101899241708459194073231610819233757948310837592117138736563525523319916004403421850010641428692151746285905141810737723831288073944281877717555003293599826488381957162074698770968358455694877501022657605431730623116849425556270436660820732078125634314512605642170281695519496997562217074096265661225491247647744040365097683785238583358289051465907979627245237336953695210120652250008007776434273413392336091995461138300808505217244904424024155910476174733153937328705937506953771818333321450941114219458164993083742542601146169233738155343572740604629254610353114562552956272629022876576780168094176223371427022212349854100375262886429199592498697092868461614818571416224882717112556976666944041051358269113974532594045687538972807395606581062076279892873292470554876990918019277272959031220807637391295668303361559456290692155469345311792564238583623530038544515370346009058134162421288852370069224869764193287885981215059630076030066213528350434761630954545400036742716010517373343355419640526466708443342259148680193643051507358001272816333039533250358479070979196389740595565097956907877710766452499077457766188602523790323652362153146520978948406533531356463129491217106823206202994351553137658333215925116204235991744009845418892438941484702978027175974528936987593038229796176063272177776589043407224397986443220127907047460307161733591181446779068159809218350771929523182332410958395977429399629511804224381044924004920903457922292022029558772884317770931461530003457728228741387188535419904092512154220692893355089493564509788221545826105793037404982454669489814920870493393267334513919355901982906790351336828024941086333641207781933876671968670496905679375096484692488516722616362533748193666295944770663935809430507372363737515493246878757489633958581293492126576124683168662668435980624477808583700588472321651995740064445908449955569878548824121742699849797112778254795891594725671216086722380888286310842546886938765581022712415583306940081643019380077428246164552958415421259738150864215515223777193116386787452236838063292097268147604580530604433859607223074258262099619139416873235340914542505837031761218186410253425896305217687793753185367179747512259762807802670112131245385345653653621495759358603056362211650152773711516192195106055990288092312159875829053805732306280273273193997396504042563783059018577732594254699487589632556100520815004856285937501165106468405833161990729005022834368462668844467460961526390587948655479377365332522069179747747829385781427795242822115594788273263088032874029184820087706961345083492497118911148317387495511040108276619621397288707878466002210559851465408542904255879610121363127561681014458865589031004300953409802800038136472925395632591425311804928177787504744832305911387913308840883274694564324940676040695109632156890730024205400676884759674894563895365805726492301208581306873831763581337403938250962750782498204832535909633743515997092483497198130868765746658402909713679249741914913048745290246083176097717603368833065782479176632424239307097379736353094425925136643283982764097038336103022588123074665851636600726642545415517655542750353246435371934254965074988730532616331461647948995268602122153962703133777103784721350288491592994147713297105769140568411897356208974814374990530524240277016162835686606025971829404196381463079339200470132938761799312253901736911946357140567261831710113418371742664205706709992208128338404673044335547638253884491928289213154348223226922999739347135972620396127131588119777173406364380957197309470336143644730173909781471367176661110123669727506732858659232695878535051463095542445166079328248127003927657995606115699966131017795784928724859621575920671086633927776788786149842046496983330018309130910664166157432445663897760407653336441459096637892528285496916369304654002193223512503918365366176055803497244859831526714660902695546192074684252702672623098442654362705152355384528889604946431178249258392266440420322718873146920849862502522377905502113048531158004486355088542959282241124190139517762520626756399158383296365750154558880431125995487012443029388295438275642127332356620854326881411213642552927273967706063967248921475565017546327150595085403747784312391113161256236135132912883223065860158337221596689527072577425390036279001515425679632545216371878471939929252335223503914527507600207043576363901667501499074349740594672575950544121432130177959985907334166001199477274910168999202792632321001648166925885342889840799007267812886789508870375833324566155835739301304186771576628074538649765385857466815590978650345073540167035097536856404505369630987723509983568180254117596918986406509353598284333900155113366342640418825326213657510715927380644878875427150561142381307830055469153431684725973830745639932355903375837757847126439464528922983599114203506924013059542581881262580138298318571248082838848737174941700643178398782293681684518343743814343280512826161094971410647059109261405301055812358058996304083725033398676471931304350640152957054371567896807676855304508230179776049289172423200002187214045046027334150833134320943077184446570174825467930232852851157280725412795556784601643794609099393718068331886243067956228543479223577217317633828405279981038954885662572337802940130517651664815606122873939235717407300675374954963712874087542458734211113149166142080726461291648877447590461515936019142433425809655051732763664723522493129623632923397462872606207199018119031301472721122053270745361328920079178768359147058650257106434940492113235170766329275518268709091495117471985928576628132996211340347131863867017619949124041389341780014287257575003490190792510649824408393705323612192028059138650790210961948885917354325469883206498885912167299479724382113803838358385127306582613196512387657565155766880983525258690584080981218316807908677214564117420686454622034216541488666360076722768601677338581314785263137324059019087378072815433566553040867914344091318716184023426560460367494386011203879075997164190396594318119389998993386583297746819332028750410293008021576176899227231014326501769949621408949646317022113070276847550694160744746765239210183453814339671581177120628692083232208227884156744182151846688200547473852572708353065382566819908022954413220826735880474900573673333693100310321145305816925292246866767642543970228618995273896084361644935750243603110481566460517576505248482302027200362152199501883860594378404415131378139831161348182908891524100176955876126486341673838208990975105477070826225005145952664380853719260466999955342545395981108216645060044312961550830673455803590690990896713811927630589866426807464370738964239922700869789852193523188094994639351938593718402488556677274421584846197036372255490906657548693324579240947623845178026776488767405270425465816264775304052510842498811682477139607721433908137567993785026856075931279716416422034854898093912829671267074310242422700316117587940213140385368511501646837597177909818825146081336166949061955670279620246005896299697569668275937389011924248231719537068321298588261632260737376709333463022904543073648047761333800165915450554030200561445161332268550258477696858411620426145919664448864214634252697971858126349386962831882875040670843796637637818150382203015150099641523501343909321644479561915585775571406513463377565175240641372785893388301124193113020599456610797725455172189187639828319311657438879911905206581394379540714079091268481357588121673465163702792300409271035291943990938263230659677269807180715654156122811964042814440187360684226999870526437234394658358317706027199314350713718588642526117286946012983737931496388359204415954328760355276371866720752316907579703849173832308119198461065129708264665995924483994703378666071511480790658615372264390008052389300109566565037997625063995304928792356911959930273248050835551977662466474864045965892935042614687923532228130785684596968679520334247880641006865632433235366028369879329875622278515036370969765510969321591417415631870523347286082170310308894263567091830724904045764276818903706567552473843019101926264540694857427583484699560019372503493884611967159732823252362963833403820829590358107452830384285243416523166656734492871637237211906204346403670873632092061005957148362833846468310580480109946232462298079935632591709377878117550776809222201064928071186301006288842353711997275208470177207004596576552218134034079149720552372295084109811455858515233500595415222944487293940263952554368425511557865745491408007527411089761281431482434645718939813073441172771936889929534316837723339129807666762906450420400759905679099358452272073109101579768556468649415824094946447063688331316918315700563772894683602584701813405135391037876359526371722325878979384723416793827303281378404065654873548890908414067570810330735106296981582219455023338535062822825050027215905709415922133873091260667588296475875542651031339970257427038035085933007932487301155722554767793797207017731528395563785956872587318973794926720409590116028172822626959523347575749425683798875316890621557327084952258292727984975786251047589249017281789994478443498499018620716449515314265416226532506476179705753423503246777521677655558224074305565371588720740545961932167638229850610664707086573026655680704011562414631824829570693044247589866045375325334368986844657904752023955875146865340781063618006397059750285709348691206071976793426038729243293505315250874545082288833587504401456622423895217531344419931155573696687618952930776682683043162491847318514618167212872590886602726266058013270401963912484128354720741285307039174530428806007512757875200084323607968051145356467687723518632200250150505414925015223198312298093604387939453746821063214629750067095772758887259155752811657653779238054013366503362971061736128997682523328901089965926635967871217060942659332253934225977563703245455393005828918859205470560300798095055239491466213921701902734958609710696329572836575448946049187152541984168851868912910194066939288571419540596596388806542826609753814901767965134208527749278865495310544652222038706515925033768559970859979113827388178610564682662171461515584296630836872615496854038300633710474978617677422322385059753870180101007794306937192918020858406938188708130805626240811554681782716629590097012784144348696498170458182953798494501002074151719102606050559477649051844437296957019911182629874753604232281280969712454602726076469880533270460195841887685217429334020366991774146240531331557406696170314171021394186196585206187525487956105916663828442042594223746051007404264898457297367460676077469070256367842827949749720634682881305472419237923126124337778645397825105447033803747880723000111596905062956253998890110465452995670175416904519510583821176038361059338374205361117314973083062725809539235956747953952428302710898478450243275533950642350593565832502533009916626051677714555410941697707833928651181330456991416667421252881933769011739057005113102297217461973845322832004250902444007600809906707500348704875072514269280209090998215737374473082559231900073676468515591481843018628568550049019933149210871751669370498407074669718479238804651236314592513507987034248025382150004962148285653762417812758777199594887161060992265910995053804116807455798440870531819782731833093670004200850399267959820024591094769588140874487115972222829985592181814160460501660131721956858727043291656033018148854372673470953265758956669793651229344764406304961060892189988896221607693396060101621942355925305938021028988262887191277653408212114837617277040646463032333825041881350859285062169027459223470061466512639963100788694433350301477366675886289300283719557699216176708596023961852102758325661027030369544692667291884247884118394341959297675876606988804687494528060196522653839608016561454396519552267686378855029897939453381500969962455540077023752062686181678894725965388631246181334245826797382903841562305276770566552393893300604035378645527442343389374288923881948495153079829184750550683623785963244649713361655121903995268947747560137487178837368027754869133856156136467518079022838734392187840242297913127930222064479382388804485617753998338613175296735343440111965910298095171077467113177741120919948340896639096992063423763006333537938899530082367100730090350680673294193686449068097066315425997738351509776884403550598771860218956063925771273776417149298830005798381811248013956890544561829134010483274872977702666415119787209976457076170209022673506650537908976681587446271690751598605246637935358748918525445845998418875581180088335327005690879614905206969838957699782588672585287393831032550889385407888035645684634953136719639562755329628442326363098274351188001051528689515173144339093729132651277264973998577246104643362880301446523517940023552311279702793211932982807164331784908483785485677916546332809409970170389217371988759499428306189324287478176106754240794089445763382379850152339402310384832726062760503474892613998047873034417767220350392077437275471699077440579911821829929046277280326895626891772843172790223162123772066579726486747918571387807092244170141590622426838586386174145191194387683750961571227432748509798556081989069205634892008073910854913784671684187715399664442371944632762586303867126903384706285949025719940617417172498589896633044916345967171700967189488392811262284435193934875541952855491612589075776793104978656553480290472071716396653857012745575849915944051222073437194765019380259161849238503645187278606010785282688301060054641172768124680711178743111075849017931228230382752745191133041114666274070956029758010192638637385860197631879210921706872201050457343528708364013630394983288306971772823240109022226264512538573176399616724798236273143564918639788605941641090785040864453516728179317666957881964843766009109979922419224080724975200804249159430474638735126549055126330142066244464877306916443198513524915990248035376575974426237348378325517708888316124462674612094252612764089735853818053617833246247607663255554552519090363987295372082613216614283492076323084558471372510677862072481359282337464970084845277021781590930038529041338851378631723364280898069184797018299172042407914000361496083916193852535802722776910652304225054001024010635070148866143708361518879486886156419178835253128416299231935894575988376006307213135342741758073087939263016358676479693440794716233119868060043940068130428548049296781730280088416885161664179673487093037664575736418204683154723458319634835222428538174398337359510137143342136350531420801547246445355422636022699108703440591423184582047614104365702818370074562294530615585321960187626442436024529643225663758602792110311773493646149331415757133119144355900301554759450725716262616345781819572858743845461939131502591386334743447733133398167646072533303871923495890104934017822576102915699408496089202489588726027976733196577418994456419572482407253262864625922852699823450972175837084732459712007143641112854955521283680791362233205950058573463934021480376347334908293847215833608475106744562541747742203131258712501765197121744633890949612652077518225493510023053876242608043760567039387967184798817962722734304078931059976864579348677267812007130770655052202995358508340080366445166463540910019244893272982411131896428318949083042809840548977642871851944921844422712319700971546159296033300606187868634987246859048727876297005315217465518168898192877146428592817433347988050989414559722221637238880535138485169841963769784746039404477643280597640930012942857912952962442009511961536914929960733656138726501770870901517481744720535528484653865669306205550570419890303902891169710818410937673809593762991173189362227655805339636482620290674429621885948803723166779574283224612490894606433677836654894867359149367084599023536859618008506819007237955729073864386603100450909570051229985641701882562827635493437912888862711347795950051424318322161435969619082027340701278937106176481353105532250861011187529711164488229046285383777816051765975773677470604439851421636512039280164989593654201663329687396494285616390512361410761845481628785762681243839332110045651634897923843785524788865075435186766252674286255314224181006374245679463895509110213518222452277045780826362550953465021493375385941942969959689483115999950786734670856627206588817990629584124455944650729557496684385836493205803565672020147043655190897561015493693367692745120248736532389764924149947144907795740240222611614741818047036267538759828444631087716228378298039176445320417917875872926221001814589365063480234700397230855632270182291440374848233525947373162640347457636507768922267925356035820357608705967131138915602403681665493034413905350318473694730263887960681069050676599689643178395778253385570972842686202127326967648174363780931845233661021535389399859676485816554906708534989706777089152443231364484520460522045615611245441225310956775361211642633576391480841101577640033143931273627454205662921635309669624629257807812717686633764217753074447445279538976916423169796219094413719124349726865000480052561859837042068407952713364275949591145665019948791444570691919072798553976273542683047813111626156171852013348634398987635173924123739666500889503171870101346070022969964973215714325303294249518157462607508665359104891554049362301411371966355670644233395097919814513452266031596994311587263849135568541168034148994598140630877324384556799299329582381389437510667380105518797994325915110181764514091726156820253890811244701576389294516272296432305425511200881000970315014135271676631900805650523309459552107241378442840508955419699392518728817866706846764330286489471955981393518962273945009535765322361143020099715464287033156976088877363641682758238978852885254163609222556589795857911548663447315311173656245385443611766604769239541333634992084404227090412083367395468596052145266447266042727252171428408946739865130532092255779691044047822466615732869051280776289192761814376765426666685561158569117155938745519728793728997288923240745245233756217862115706672514189525084104719117097981147879881975212169719019004180031426061050572898134179327873012073412933686837995847167377737250162157851753715709076986645916538890798495087867464315648341912881476684325426617160406013592221057336402665775911559882769820749948505628409940683381369135174767918024248106139714553094058025380205138100801917172869054101188814042434942010546143100530891891992466175296854072966310517426411210741916057287227892502224468782923066745482325761889537438794677148404581904655233173910210662572853389219505498408493191355379962966967530384553209965401192242520130366357823931886507565227430720042316677280277350637582894121141475717027776082691307925390131726433463444120775868144836607359295760917090738402163144397331079543296512875607870913453032518105370973892047928235283738304214689883608836962545538178374156876887653920258878683020492813507339768223216578264840007741925589817578869745630792331591727836174475333105129930918255154273638890417415753562130305592277194474166332564068744773395163055099900083304149357125382235718817606300763294147811517305744337680324048932525093301978619755967092701145060133069031660646756476814867026250427571815704683705216267683916331162253962330649568793054264660001420193265371539254702916821877881046081868648830441213137571643952760948792828467894573949223501370046608053927499202784722583701790080145896136976079645021020121281484216192293981316083477364297165009631019360663504281413530754423356282080650890576116229258820539510941180087697706942550646107756637706840930024106884373459331575991102139425593811678460637325796568243573771362643574502101995823496108612654569321427274143784697943471581862617429591470514610285237092655015491460607711166897634156218024537884190195367795839634777149729595657067060573292974610201475861251702480846336830498067326197488687223780093828092512086683014894183134929739012395846169912367538911868574450542757276628649256983848121030449490731079272016997726687558742921626495652648946847621587570464417997721081302429894117263867282279659029787161468062909962479733032876049069374458006840065106788898500876495908038406644557985749333821666622075369675745856332768248455564964083560137075600850643385396948190972747595627391869647938971451375413016080607968932832685875189317779309986277360026312661505832642131488151879457186608163553960635390229157204423480469749697582476507167646854591141441367380211488786683830669747511063924767417640607966001520750157051339709339334718611988133297674853136518358379422178857632531910597167558881027007512737418243149941736064431086089503150225079553508130415296253026215874510985525877484536066480265575070076054623868656141373019079631216896604292738174216853879420540821127688501555985002755997187383714944308539922690043761018379425151612482610879569270588116698519058033772943542402421237208183534946068183261346686269637176178809500683316495466362504824063245931147552300962089424486592818401078970192914700632368326099862003207992167594666694920558466980845632048115337181990113376768777212418753784268871057930422790123329745895985121650116219637682664907214283047223535464012132841121340369635694290095263815115472416227905528823019023972486945998456026902768233910615812457949703542280235946165931183753170684628537363036744593276749202383876461277189360013554581037031147343153786186990099967662869677187501615185070756256988695933617810128147608510153050994241044398561829116132533933669046422568771637540693080194176730720132523925294965737759470645872360141474890593640318059311753195893512694342925256814918762638094554364302940104515724293379599710464923845457369313855326347937874915376664208895371901981847958324677636190874148066481504308768276810912037334349955434533785688389979359607239193485147996488018543236843421490956606056785849655709936015272995600978958912852599244103228253858113702172315483316054486597952167212835963541051729355245907804417902168483319011656544446899661740171593869318025884461821639715065000616484131499167938973192260446795539956286422896824546121047459732436859139088538928532643710076185319815266321106587427403929128329053312600511175095113758466669680231159137149999092512800749738366776250219704716955727830931180360149361511946772939746666048556271311327066134183737228451516976253797095747215237512204003799199434371031541784511149072056597615989204566805481516379737683171864283116964984757156206040757033354599375403182646123725905829212202416614735589519524461046181085909472712886681503750619155805671791802236517278437477369178952247473906704859992409260258169624019964875473224872290430620957202142174071530632634516589165357554745701041643383363485410139591197403001803936636044490836991281993682314293969372512033847920958008894680639533628180308952890524512916324171146982303808996137744790686537779552684913579374213774670770206613323798438381821927462884009325614333163500571616999662608740918851959355504106451141270866635281120228499367675020799806538480469865418554138547167837110752237591096091567378571564849847144543246156839435540755124104282237605518309288536987352663361508542662291662645456557193805326402231700893331325188671424711472369799662852404417013838578815577675473733453194609129778975507650550955456905310082200223823431956072430075192830399320055822762421258102293371587125971798878918225344927229115025799159069005244579817232664904897589956155337943823750093070489911471723530744128210825784462406105131743038273452348432921313611641614737765939681764093885359444228833349231345239838742843638422994144856479862862717494764269761517322744065664722831034476729010537264226183514892869705123922610066994838152009223347124871251111615464209740226150036927133388132615637841908073532826616495461757624690142881709295625263347635217418970745225102750458505154566774338233575810763891445216513500774325299417401523375489150582019386875667007208152101520849010615879432844199110010882409303186843504711004101495614765027356442170845574747409093387740968535400445079751235288208202746340612676038860376265407357416939745160564790911125855580445662732080827062955747020641397063471127066553854340393375730529305364827226461801273985299570373730515124791938818985691547176432224526442403126889907545404919241122099703660658574915908406936341280716602782938773095364970402946086716476033458562615380928634728513832355238575985821746814171677297362732250900944726151861128859336873957972793096444005739500995766935345745961362961426754314009360939479658942398868989001489748309327221298316806792634342337505261361248853211676984243281505199594675127181513094329995532271253219119655861235024199610174149458009692503990737648174128944932181263517965298636247578209603967903597506063070219109604022760145799480069400290551646288736920168248572213466113915485687571832241458116225622765050348288290749361607413883321615962182585566104376621109877378902939042859216401759223308747934794522468058101866589112448204733037458761621711297199102151166280379278793429071898817618038315091230846458940411392306327867006567142357154224618850926151908565081131228562685700199755432062993318342070733497623192122984570943082727909588941914168706545467302373480126110165744051727412681702882381580599640901886593348620067648149181272501761133732804797553517049304483746907910846840253670483874831114099213518987095670972869512844707369309292975823204483235498515408539255937927555385502485035190101917955108294450150330017071298321278933624945367297331912793020561289521070835487326878179824369999268045880123309286971926492023557755682135618993165517881659551783407581381493612938726406484892100731771844366531850632266939724133196088854012304569889236617486225751814913935483732185442667826975170061792691537942890233076126560231824454514731503706843006882689071215513770431231970478561411807796768419014899198079889605055472447099152304015150035288334155986630027302212277109490811427601176920888466187887546891430991127740375001476697255673222986354071746717560790325024412702587845681923648876385305410385339453343117533263098854669839272694138163924963256859299949772033803409426028464810528137175768641905057560518566812209163979118497910318259118415582098244752280004215223159350817650654508611877849219702130337531809010870122837955879104229163172977285695670503468782051584997660745921424158609459094680695837443816543794228483373219533071450800750277638081203711765042923291993101073354095206922543799854515366224668479006793669946107423384403368770567622264862369088329720378350114305570795729601230695977434804050329770140087072399600469086369081978945992069382445156536925671378882695779988393943543987203866012281181611400993732225283030967028236561424596200521654752239432355263592946308140252242575809412124503022008933439170022430697286439977914154907218371725123742453215714895934329078437502548370407050457109062466979664034520678858008810939689379323875775609246639404497247873942169685265424180410509723402980725316740832404440532996848109502985101404027111292279668274166777699823062874734173828933581626552912856908735084280313315604944801431843503695400162247391470923969440481603825184930788894543311872291785184209429017848710332704262178126062403599327600457319173943153522259320106126615795228530541282761571607021361541751830972884433868522998188245719072025329434170695173784819714704567456421249083639473588238326964114984364233160005072314453407788343174011556401184260862535407906506304178532341322778150493121941184846726757741037047537921774417518159443117889967419587846005351385192069458948888910578431114109453041525168030165798144259931331346868284230263636083179650937002587197406907574604818434315879797626982121881447745884769597556575885444586147373449021810933229483434219725490063737971904067579368930169331293394565887216959408748843135865887817827472026323594092446055762858128968125172083680565140070110383779427002912876200822350097316308766068816189560633162597802165930811776120137425301810485757479948839820396003426760130339235394545479267883654478879160606543773404475070049889902920214944709741976332113833848929637263703406091253800755099560743991170197636118985166593318194111147908393602236919994260576070105392178220004722234353986992970357590158209550221121195045984645534182093399742020456975204458347399968969820664459663558723507443909621926770743857100181592936856006918426056524172399229240855120453854746357299036810347333006169303092273130664381735359315894185022664142120448792347880020321358556392425158077541266260838869046799687195800997551555251991721496020617572250832135695974243172918199051589141678775817461276744713087767523447781670405840809467949218539172189016983817794910515295743287068524300182105701269767907464987439573842296480949757856501184573803619013559683037655345557298179703169339921131787309154617669267639633420171506066904524098999942716722064421384825733835016295264724552710664577736738494878284353865782654145896270347611051534220051994252439055883579640479044669454632487172689401134184206444155403216772211014632735529662942924193109859892478445749571253904443954208523374146823580975729381004282121638864053943697960857207552475718035372033553652777902085633212946911012575365898659490446170571658293760076141563894438947175434904728250461325192737589897958804763818393436077151317276296624261059220685009975508412481136494336416124019894016804987374577814477384759112502905764411624056751171724952815689054499303381016405501257978576335289688997805660103720016855742214663781460598528683140630106191836514381901483136618739711946395947394363811765191345530597346800084728318082478189285728553098641936066365727960432255303523061611350554457081207103023409679759277667487149653705121885711949599911369965744131010204436689242766709107511492710765251596190205281513372012755273677462325188861966088440899306219920986876545782417955941187428142055980478142424886002765478367651507954277733756371795556582365553240049110458221880397878456907330021571059422619347385475132623888248373532680700785325618246925526778533283573444338441077296944196025709387221731217691089612022449453927535891578886132556864179517908887370453816324588778467063528271532891527646560247921722972741593106532819125268543010379301776519388511604092633424697851466167205818082959762451328910010065059891464864958552594115884416684239375918845680874509454848472305084644150192521380188094479329703666336525950618660273321722534510839228640731626962817955342515497943300905748496987151558596176546451080522595656648825005501155748145600519081497432340538580763190194278645490979503398027076186693415538504546045488929911292520024950199537974763336880014864993206040059644118622436891096600175205456205185360470211790133776296123943043856883979465976041839293290484114122639702471915751690172779816679266092921441771274927390710763927477407158160137542326918505002766921082667019721786815675744255577839024622141849581672701804435859954065162775174829774050987714044385461603358689252269515207701958440875539584103576674634910727039301481485640171131874255971041235662329734204022812232359434707919511696655949079812509547908764214822144792585797909999724487832440580373835387608718648885149987168471542897632456334885320796190727921481837399942177033516378407243433768129453337751637090879115364531529754051314233252962042157606385103082269342760231247410101809670010804390819764130289112397284927398995871786309777507761041952467765573453121773711359703299232477137694372934071675500155546457161616514007569663756710559306500326095806859402124955167836200113261052460934693902103858398478955674096507585591621246677862473782613556530463038209635380266204269213070535641703065246050878183620936355269405629134611416843683705764016875288327301654581653230675741607108564093314022188987583263566404001293981802288064395669669183229639559934617069554993691671734456536520018383146853094627771512637757186158146608346021342699620340195838681288844098891897134019770080521838122158466549282297792952760983210718843714350676855242039628082616231290279041017690886840344611227396176523632938062022624665520973981600832504603048509828251402626464311561241459058997786718354995037215876314963260391497857548747400151128521537697804215753584826492858747510639324388222611900929555219300767313496908406756396247033875096387635770240196774781407465862606666950426694925292544726923308679725183104742909380027119003729722033585687005629861094296142695562517068939625847285602604509795272839016690729642123911461476985693514473231002997817321619383918216238887402756962787269471458894504265175910082912925105577617538290113582296842829904349201107387039530093665956846102929313507350138547625488355117764500195142155099289259277707203551924650574524478946523487908872779822453710018441010142569336992822758750766730548414490192357587565123501329151386260779650172855149302457571068320207602888893881234226565054327859494352571395989341649509470389253210747720318415326512242505246394966052974750475894777023165100130888413267696039298935422275841829626253047517156141871938836551323645468578360781912180275727720692396035663395544109550979097594051563895672880432981141071810167588343565925927215973299404279634301555432423520609212481011251025592083996059996234751445020610481916317739514942100136637676565968459060658790291230952982969895138830892711409305467933735146439447328728802965936564015093739859333634465541440675939625470582554613638971384326279873827593741461836924879921695242741247283767336589555618849140153483351470333399394883245704356437650896795957009721805120183041254749123439379563672047481460195997674575686359115066050132438049056037545926494564874276538849181957673060280024552208211825793495264865654234419627248449442895459747727824314860083327702510921239309225702685778792044507207634027749742103397061053966828442397335632871376549003397220029691089515598022479416197288584837825805155597877905545983685751468476176957792218565260188953420046401291006381683989495791798461490017195152207487929518044392123314099436206149026831720630195034386259150444977617803808191025260598059778867140597558456763300496485541229167816625871146135142241221040196571784842648798725584760656707220504435265143030433595359613681548816633736940126428853891811027728314464401168069259323493643250860089306202770921360815004372683670549709199686386873328870783141169738833530804660239513814592665653753238031442051335911207460960725287476740946443698144527991547598308063390179724467321462314186323805272913264683683105621820228347448486804730884170091475158601473076596082390967848007905422880764567726030304415236546867889579929262732253273038371406271907835941090883470326136437855217920413558811025723326023621127290089659027452202593708478516235950030958271963983981221762034099602582150663857336530478789139989267680305799268648365126997599664518227856532234231045615314122672738619495231376204528180668272245045947562774320927719808048880307098268839306829486891621064499852165330453940122842876190680457059634532267624610344790264448512156183859111673297804126861090720345971889340752911391018877106508493269668015137934073476229553188153452691648589118419096617006468474011679759356623884893885595491752382018186565200244100757690183847452345469473351655487381552382532168015057420538374341617746325756371886742571869597148884874965833053497735866364236308368706506901307083624313503422590933790472697485046668999762760214963901946479375591752757796227165413314382812074775685145313930475622049297480766643121330298506969218357080974106638113213005963379661042823199489957884490218742879201136447742075440769557242508011540611825596679504737479903515178893657216486291532824628234957360639360374203947566831742488066686813744138129047549441908620266798562719169828161106795243208639723770572271912376645527998429094917796586376919285500787000870055056373667222343136902478159105975375021588369633924488705106261995240860305746311381311009945530026849279240841269175996417846513472818481141337295671403144470188335855981099990647707858539417078165616765084509637659820656444369884984791119205014051083946498646450710725922671594689399820790410854100596298635928530644585659288020904741224160689487358778571379426151844197917600896552089469952535447146816657811216878911823341261962626364821960582925626340456698663189199174646418270540568286942143444124314840783526972839962021334590015803857066565484849939254640902624218615578430465914824493859955815182889544139155262252211519227017212330471234631562214751680612900759659788487948620525075008389660959011985737031218281269399961170589615124756943531703358624593017123618170310581531208442822141587043431545036398965164744498160828472095191718461461052363781639537457998521529780202336562213140393869998315968996661818695791721809138630284826863989734568000393813190779325763153830693909026001210665937272105179851650483436204966260226991553939183219382922142305956131843915648924658404599296537789980542151835801994504344197737797269780663513006414139202377411901493668623224170373049008572044713743505534793024372783571887525582194735910150557915807319953187477039586056674451446123972478332552200186850382021837932350015288124917769686028328424219596257561165613385139414084479494791430493096361949330717051557232192290342772851935623228280062476179844094355937436540759911652650719205513442746836622868314913548732983377096835045440462258745137624347204512429031619299394179798962505221829590026420428131742905592638937987776798314880086378869805200902517807416187066747511823417518121763303672830036159042299921275599940834550918081802624811646492993080057688022184133941130756926763214226268517185435487107875870478930725004580705809013709600981675253998652899184865856937293567832110044394052716124272979340170895252237305380920490105024055399940152950195455799916323496581844515581148702681595977694413652423080719620018726130869289372870230205295572277161403853024233264001649388857243427933057133345555870908666062439715755408447073366400379502171188748791377610594305645028152326079617584066683582519989913324572985482800385212834195653044918753020093280859656175593974242167795719184847721855232019403716225775640305077034506346000069766509185347653167761599860355449926746918437625349790027528548913611484862459661012713529837889553349650992329857081770147494610638069196059422159019852974050154374829242863953854055254133103965340603040984670411324613935865029581922927634155223784123307601143449999666729270270496698937586152699525656310279652622974166042533586890608454358173426361663690907316703770216229836086910587570001763729192312389414284626236834727793659187129423553117799927296577838119990121755393375135872497055092674096961885128638536351223567758722290756675593623448539512390407745637062011920492137031103342398804321893825407364929606570811601486295628495947852171509433038695163004230190634178519787720954118324379246777537459148314154386440112507165923750745398569653863190427866686425989012758575208367382992030499497755067791358640702835724805063254000839083605248513925480727637530456142876365443066579052078437634602360471209366250097992245909178448285420843065818643914228065733346004033695176269624646793621854423684839842708241237345421557740243472748136021389238260660759934264435144747365049773270732383192360587101509235236526054343234867822303548752381492377214402059017420198050531191602423136480826077326384217449691936334630152378579538370952092483352461723091315401102072801305902766224526952896111380276672724960791535145921901719532221322092104266973394364326797937700355204122311716809599752433230565828566647596161387948615364573286318759618573689639833540544867481543015723259792373317572881292889781505451433962958821565389629566554533296392581088582883543218181281733043308493921013475437959000296617343143545250717875137651602934000546041134530415581999097762162648562434200830516692845243330504758841537454791502707211679159480330863042312313447049665952605990975383957321820555134854728373261279769338470384649720284178918286741474319203869301410519476145555756314832707367995941807252409134478013317485855092294747979669707630480466055757993146582277534451867641941639975118725477060014791566271072870844236566759533314208014067791122094892170753397538584196890459211605100913837064929412907367564873258821976667820887091642439698381074575840404499808245196949713799125057354201335273787326974220884929288799212365860450070085437785379262898850474089638570795725940868069627162487177270009966950283873431684347684397614318081616565103060638613638741439214215964632394138405911949183452975520338971523406365977347244817978423019591186537030044825627358756431722907519148892616205718950808558472940765021235351452974596494566280470743355057953658936384295575680929216191871697510112205954900256847701771347897921655079368258102329023808562932476358083017997341489682123914518174972759146993073553894412546730807258637400196454574400082365082227524928106234033017171938036934675543364436273554671025225496324160256614562680244870084897416409848001816192818963605154601639609696705141265828777243856064660789327338240925966275682998621029287431130194175327806651444918056974964473416905549888500906244386348734362219889976684349883014048037703238697132784172304266752842710511353902116808504219002664588099305884030687587491337661652632850416504498268084023155354962429527972996859864139482980501507286744000278946730246309021445282257594185546551027931229728498926872754761643303743551092164484439550788088551214889965031727399977820296209757705025196051786064711008946360930400390996873857187843500562510056352335425670561554043978716366581494575755042653374915795372948294068567787950802599608291051626092281899143365565444064031246045630582917974525226577613278617353619113699174360439511044666926627413992763813980787933171919282773808391076345335068853341956547948737630917467935022902788423521990810921294610317743388714269809405114799944147488058812717392150006394389483049506348391245498682522890632575668748142404310097977332622953600781008943964412653578911248472563488813215003035030452054406656547564998074989917094764817428692001158521794472405043768183046831590524702148188021294626068395450778212721121351632221294869156986574019265393923533871408953992323749100997211080495743244543025616789811909246769378547659819682964924530690356764860453221022980906430664953476034919537366477750220635985152619170242409802664474198988071710673496386940222753065580671029550153854302845600056728426939739475176509983726357594008942786454004553592661911237864613762096515947958037244244873096330489088364618184569907047800394002831549752822087854265496463390675486525727349333046303008304282157304392654677944408171471228399924929304411232443559558183068910034011719601675688287181980445921338807961353531142134150472209280091520025120549556022230415388397776656571039960199415279619085937325408426764653974657279944570384298302029926464619568939244915223283991600303622040341100173946980855910901917711707548785833887166924841995683455557524130303519033570167845532797900624504200059356216933563775808917584136688804399711388593297928929652361728148935968710211355749595506820776626713711225940740683084202133113949777472205255096327830611755311882942534042688967091085542170122077152064383405167955506011922413078587894018188472832502841403625440535209997049154858597098685423089853723538725921654847454270772390490263239151450905300983291687018909186975859719765585289888488399444769316583962796079382121349562607486419907124183348223735660764179757891769333477340422265444135988293995118837899037082592791225752517020671926028477915567046981722737901153233647496579474029447334228975700419559986346339692412731358508723983137443600610215809927897014271835296011445813730269496332853950559248155928188643187694418724492743739578498231408564724096880199924035068028791369640455278047536200782110013209687979459234338872400091336171839048599755138256252444921612034660258849273802979146358996704075969645383287482823182072927088002484971940033036339770659467093775203125135080899215107376329505115430924304499630269278400032983514583235371435348574115293078548919132977303832087069815490944688322435178132517890735362660700015964310861385496517741473855260136048364231568442398197361247532345408613516651285692563759763713194715080459522187989931596945410818403200972982833638663934803723112544897415225880082944756282860752968364790882932326554174312423813590270882606114676912362569646690505799586128520253793384383992409714383703924077678776049351076902058771727205898707726600888282531067952613745364430609077836485097158164830914352923103479688214325435978064905650943862838310065727014501975487858941165919882975871208223334175803481213187009695881957474591031493470072477732253771438988174764085081501167097225951581404433554837517569173248132587535340249823910232468800647990120750056233583159072965275508661790920652824013517951643099693280374374885793257627928204465730777282262057636237394851477323841407624270832544917025648746642176485569179826559559819878248029035200638369593911113835499346563997520524552861579973383869158767639162493853854910753072606814798837344616625488855803193569647549021823768856515308297285303805401277689970217522546545740908170991421570670847604877650001311622699347503418071050283940522708282836401204756699035392045056994446056146693371045473909099820601778971447791782893698809626832264520944413718274640297684855452465971988914325996000233692562269640019090194418554165316159636549716982794988077420491857481330889427657981456946313543223345960888766376717196695067800107183541804569748004027488045350411838167939384209646261067694395073458991542924348989966146335565768240625637542479057528001721393259510152284720305397695937416180554865408074948081574823857116572064819909719939049403336664727425905781439232231478837997096908486618169020911765452284032585626012190119752227723356023190925383772818356957969879940951496378832830297229799328474576054543669894228350048676087260937923883559739078557623741893632696429744959941513154958235005605157818961710576135659378045267071931854398532516757131847774338080484153327454077327569745782291777230720416986972066155169000680566848807689224261579452019893796349645106113323860823356384763564615373503564528159896334739738062019668510950500406442303695750170733165836490128116881853380114911569950824740728966873541609296830989130920368272268179199754086383685947658778410293413409287319624533957012395615268280546941454298812485205377388009359471049807046341491325782962045721786359877629527062849511402520254959917531438884569303633400318611865087142473879207531764203646396758016523193649578722362566220686544488784245613369356764905769391837044996224653888548287276294278926851059900383594455881734778423858994645045625261490898425598981210315322004650194812936790643163221922135739132898314881533903985668729533381355895057070142189679233053550986948414136508288315489704904019001315728860862065563334951855715699998736086715538575442363692773550569360091941419506631517704428442410496009627867941887973174800294393223201068622737559153396463679158964100576436017873122890516206515745022236793741771040208839419721108994360870515342632523744427198184256335792177911918897244274056670958739871945555043528074436072054438485080930133174934672642184117664501209201099001810516953432411147449716769523901970488188883950585668939009226599695023434887795283279879909221286308560659374415284122155971136724321714296295637153385211595301188160766583817234982348090464298934675067566484366588132956979473875929874080093642001990651607737526829347482731909688890022248508461779565293843208254946626777121858500933929320107087620128061377650803204122650745815552275259610757904366644601309044566742202155899164484636154669179773334026086940048883748330100007411673364303976482211193764689595292308154832255006493504791199212227081826175644398817959669140578563131647760860360633477031671156048320953336769473460748735020892704707650826026784844906138379570538547836593681669976813775933519305622439245045570079001951289062578294791697613176803302422589327328473813521008685403999491331662020580634187687765541941466134990811438886783230114844028239218971978017077319423261864552403869270673318391900505531420828169627521838976114761820686196215876797069553127113183611536894265411296867947284755543459112698750568540759959933518020155931756369844563985468078496488728076813957850976460757899932732013613469331142352721334988733144465017712610713869225146782199801505715624685566588589248982979051055800832042945410228505244754817811756885196935203036662296573653818972987533965159071104027191378290506376446919012307693012055720008845949421308512128693040493282974829279923711743793903231125181038759021353700342562906125671017860967960794127813242905743528445997550949718657991157481887456623296995281097588947558335547928352892238242160094665183478846545841883437795064272503035078038219042366606396757452267855432883131707233489415872731035532954591094701976810603435038335517116599631423126197318547513609819176151221030820133661217834948845578511046539188491232300866141211201242903058906716740615658094873437342795982065393854314995321625505165709407996109017971076775434975176825139931608837212036429391947787839147829968017735302997615160354431543246247679039941034559165761015065675512975497688682099746418334126102376104416064701621783362224099604289312119438611040418370704390357122242373768101555947283051159512898640460786427743417306022718952535325110829037909976049332385833798422704242784419149162966384181913736590848672986271607180427764538709132424412991309449243691280726543827790527251092489072304429640096385110834247045680108483406337912653612717835375429058485370539914829514633571706418509673518251320676056393330654339417409723028751355979316299454153295368945164439281045407751515132887386001374333249087567973980950697148952988120937276560283885373869066968361824550106422438134168222568798603171075864044874257555761419814717849358920320989851400185237235553707874351198071667025538235129121373898657332650191494051558050723798295997555644264464381022712930991666249481143249938180291000300364940291678900008194772609113718768204575590158944560499768982194938774937415777847646199181743261442561924040146840735121162457085672721672656471055837085852738131648441301709469139056353343950039048323824160690775175858541822399008431130922198175103462881436052927825810383297278425610136184088545415798529208226518113077783860886690242801806216240178134337905547014800921661643555393246946078285419417950437398376273857803736217375129414598790374374599764457618603387387638421667068329100483675128692733917240821990517995127291622427250252205651744878224000773986804780319559755212401821349648877080496769814000682154324760555232266416973758293354609096570945820448801978395495281152448386281073964012177626129149417578501157449434740835979929164788823093544813950057182049830921361472353699721132080247813351801634045845632337106100334274378814716251968287943363429255967157389597525961215811013817840804767698374947600871933352075133743489245526850497390312595316435868403040566849183656789802455463601905097254906602296079593546010456792861504157868785193942445244422200053687078335772192517609161744143724688463389344921771486708277879580842551024692221892891076454407008906593053686040193625131643063482913276973152597280191345105971851141803079312690933031070871080486632456753593017547511018140830861102649473752839319693315731465557768074146286577773767281046180232844546797658241498787494137469600683199677104907033930784096845095085800830431018712433621666827859000389656186448757508578224234521066726093560270543236620547639288974403194899633362665951266552956070801315183265013049504049239582982310353975332031138346986435374612311486156548468289909673029018719381603708930667493934436934167417242489441135294371604862022100361058979504224846032052905933720499322475664180335587931748716319185966104416035447910761136929678561347985735666259451101509968137037951506563465888255718944955529537676719839686668912560691892777107088068080351687652474309487486738587379385429868205339820615994560006495169742964937993697187342877261158387251249633239454337145912089106385368490445796791170493649859808960300859934870821691480497002069739734282382314897425478204314893950949955999460864083540057019468477004688582224944808579134875840344336249262416678472530707072520621534714446050864558937389928352033486411855531506825172038313791896556692611789292078518864976332364126097924920060088990865474794223641190447103987026616263637124272368280861252772033937917265513495189609902867162028627854594866367790255772722250917227690767060237332798814513272917794367574690016163395950018278700863227980941182178036736270074940584845209090711413404045347341055841209745163766475301467692328514107110537667075301143505241262313179059742015169934023486121081622206615381598403896913081039034299696654138524127037346876093064135943687887954181097601617952784565463764599030327199093442378893421317601376480014508749958216966678591342994146591548597852895818756137884270867947578663427714125880404112668269392144848624866224987141475814220746776176087565559378470187159801082487115925196973387041175546661422052257579483300146451797705924421931986706763182169524484784851657114717593622989890867991889679096588938988567638902416677201331470158412065338690308582574016210777611579650956210734589832449154234047297616315713780983276234143683464564237143895170699972454272507083293369719726571908333376280056624777392929044357076193752493067867659770036117611399194893987142705173071734725994663967141504530095995350457170161458604674437634609870499172676124815059322798266730821754841871162321134533110300604790853466390812988209555703288891283040778526793703388283652568612221008500275473590051272844426857918006546153492744019940523268529364128264825506831622272579219879498584057520620878529220967192999621725134835363148469679662798491493970554512488420388492152809220374829950448898571024787732267362296136696154684874009754804946187182668301355855918272883452743630901490494033238733515086702960416170691121481937137558475005690387083234520550551934764731576309483653001899465761546108250510015416185345328885409330285549356501494666529472687742935190172602505528611731136187662692436548257718855461059175888625113521144830546789387963589527629834255675222651478858841176942846776704283460722669246045875794568427170873291234008511189248036493736404846489948330571731724512022598833901700510650962732998014091681178413302275828143808708294153828924794646503944167709425846756466910038145642012583981259283945884186952477096674286261971426037048215766731605516842290369193631976243979883233234532745965653310310031043781519320539117570217458368248973819320320361372212609098388582491848714215561492078382854780822796179928807907032273742080352321548619913074138803011847884058013779387227084211616887612491364817272882725644640481197450099789950674559372144168260303010799832528475459311309086327607136237254467638098637915445976064032453840034800160268198861784318035787390192996844454090554311145176480772028937939728535494421375103492257621098794218643630623405933762546081203265613901284996897548888745027956637743702493381551379573041218133313588193612124920818823424444835420166897859281185943277417715578056083325300380883790723071607918572853136795120822734867808024434933472919008821609888161525614264647265599145322129068495723783378256358651237443563183122377187294156292473438234416824799461774913906757314694109951938229747399753958929426102278877124938531595106309340008746698907682223628179939609276041811811876918727885335565169156972676042114105058900619226894936829328419239298993923790390116406528475086898703509821923427741517134416678075121079989074238545137746357612878553436290916692010522191306881636778417608774272545130667216200029144849527470956139990408297290461108146127365675331094396139260943905801954251012185076656728804611305935101873899917581144533635488869177142513554901756475766323027950630547796271966844473836830151337154637950985644509858581739406594276744653096075053364217361583492882266479927513022100383111571368122357776968509202942248368987810158620833790277085764994329697108307996917669876064517870883749955920815004668779861363196012395444874000262423540477307593780395828400454932747903676523042921536607208307592186659609623116627150599536668276296107836785166045860977749649171250237909634746239980233085938732795868528973755746010786648153791400440364948614711923569971250799299552654738753824862243850377596865286077495994534740723137992884297258466412095179290476734117468071973910465565747066502359652445300059634761178118134179790601701862901207651643139740291998422581633300727442324708618758425901835915891155752046794903771281127503158045666484161648107011003862782839994119189627322581809976668913595755701350449508169707087817786174490841114401826694809092632418170661041232007738131199255716300308639158071734291310134391230855969558259641621483412965643533584060402924645097384122815671755002377105306921224378777074404329583684911173436761499823329261920515048079061429252440900662630578882042699634998722664084649140878916405862440742132931158234643276006419795658183811898468534068314906968771033553820188600966884185452938757862149123900650290666359495447984538666980429661688611148339861991830390106539145336414866856796606614855403253272213649009815172394666187553430838744615478413732489296295748763934632435471943327824862200823870426757284544905196118956164665538655726849862972942868178517656923179163535230734403979236359975126641923782271260721496568148623053668889280798165813393937867695998801785241555864072484752680160553611215440790835508859104374063274843269312053881363032955092260447716867578384590376133994346661938617091146730728193367575165410459503249659411128864925649772787303420504470696128453982297695548904821683193706805075234668877749089348501732421223943586761689172240903239656701992668449467328814477112224344462902683816898658267895482387670242201265812793923046430509269261355125411855453342933127981731014479549704600685188839554800562412551332409603737801127002361499377315399870217464284962242623167223605098393832597708816329809943980156275775273266850616796731872988914303636333673180049794475786910701949142329725331882584529349673925245295080952156325470903529629628867062742094856672613858649147927195173834569012348276598671490596962654148920660862489895412749522265798908107714674205413757825477694007676993183651569332624682632048665400498282452507528048724209744194537692454505858211158074018299728457578475656629500213362200086015694024623679679275715444491084257010842714478886704722604103300259283795962701583725190620068613714951266828292861990849889970947013592391575383821414552568906245643495204260965366453647719832180933839841904780045913794326744203876092265104802230947916020246908150316736395910281778342220002542400034708830829114369306102653036898896561688991936949112388982175943771539356197393402310596832093477311292215225290534338304805351732699400837843961135852575091397390276762104739755316861299134375258495660550048047251620175128405492537460573145200223524742405186809544753628736797985213594064494291825981522386794431534700711964217216747227494910354208602117388329209076848282029547458210733868212945576126408340442887711860284054271725356219027883230088084433810628281513191399976285863154310826424782612134920964859240080777917058412807999876913992056252880423969900793603910980958448348499255927010484289759297724828208922708129005852838154070304870004123281244595873149909091422116467953766745589970909708347996606062261960475244136692085264870436410328889376889561152392711023990789693644804484834553354339258530545129192874245255779617741765599419585471804779660582902440711391153733777422618960896668678783173837151301082101757427666603864919410797269859523409586161750506656660488608802146492923729318747789891368959977732322737163396551462055725563406417928221776342347303169976305419173598817674337390561840921815162546036544233472309433687584335166701752202281267941780522463976442891146095835086514957073317986556281624659175739708385358070964152028495155489742861035432892139120795761178928540289552309782844759158699077415315660208607442679514774512506282907356884497179095275273620560948269344604730966160028128803441419070262698599687824808407637871084237829154841483013885269808115574794314872485288144252347578906907761571219399472723112735936697035298068526092106001021604238895453466801986410361482220769373703386466068658037680083489729690372501817654932378530669050756946103523658819650446835969309205457548643000747559672941715500041373073295996610034936196935810969753591803583583035057998493676018521146815240677168751175671193950966222880527748810084707494481556828951872474795764260128824201951792557923333422497380619192372685592589945809713768038692340357066740850234647984405413860610074480194192983965748133595731148183046474315405519231112050631601163332921816290357829515304624924324631122627982348245473469478653725340465399627230394645546621424118755665828391392515165601923584003378973406596465720576780844797631418751401781545161078747226022768768408906336666357953604714709455169749365227679004922587076269977636786722239814512445816632562086002644665041748189089111112705712532608195492659064534861551733613826075387913550077150921622240582981158315475362625489820794027729138912228956815815697912175123366588989677853178439903789665967237741470048974264549668600042351417521234079303817728338685565097588616154925689719900953601452300993628894327076965194079882264382926094740391752517212891560360036702540747420455870927236775049596921118606852901022417102422554515033272461440343765515414532440034261862080049387532015051625956587787204818861737904918226807473410371101668890657034772748270178177775249551679133114058339336968131066745501189860979316621879088329901331573846835803518343855955961312169657192848627054644181045781677498319070994213890642074544408173345799214412583166463866665554815370010470366244271269485791995551616013964776533048699723486778833167517711972705888568554049403798722982837924861203284215731193448734113704097925354578012126522550538799706932728101124764258763013403064161557028393127147415290271832554288775643031974108519634240877169654081146893099596177983118850127041742568569262443037151128689646199412552994196386705514638260045220613016992740640931891682182599468341174891616591033443172916501860675422519646836287878015677189440814416294548400201780626465429142976843282042654042878161173907304060450738106948750523567120518820695396410876596091757610488604044554730773511687402997592953330559651056500782879327267179248918176878801886427127736858723887189011685286178086396461402885348962810169863200263032571759069955024244653124699350889310176708890580262757207709630926712130319585262747463467608251033690940416675276473097617125392723232211472294697888544787256225418127867192392599152773730635936927112301468775431286911115424250024815895797366209961458682571119930451338623582820173106143497445544302948643579618943517024086224016101303708418175749414225222236058728050007146279967078849456364344925715541013365563092799251335218451288510023170986092541722916518876365550838863906943434752417136450916505810220648633116123683160241128176481101771763837158183094028628101718881120586974268879700810637802018937661577609857892044979453998318062053152034537464087514684404924340182739961584572889781883730112928697362647504346203592972568584785232272757688947179700616812651343161226099053171338597861832763551895724695804627622153808866418467071494091456729003639852350305184954148989717060124175089705815638519783683858575223423219370979508021805630238706549502465525997967154128155911916982499859641098922234401371494158198819442157015389207867639503949390698631478454422745423259916668254157845601550677632040693205525710683755486278815736011781350776942232598717049091268444414906929937798996279097743990328851526450600282689309850114767863587345513127279400339871876144112982744597004696576254785575379769554999160498445882673118305779870923999682530225128110262531474257392887340866376071582212958795152799121333278043221601891187847574118111256329058159231133591027363760621124688935085266616084002035127121028189044787695437528951719656451865976293277880564465626290349229316207440667484850173198528254369663357665525513320432607602256234287843323188443710951459937101433949228127367809670115668060447140488924455141484894154424361674406224057025639913411499338801574616123256011910153350068871336785627781562749195612654938204812757931945481562809133094647203066284907628217320057910671691137643157393467864477590882714701512853498815841435876540239050895173872281434106865967034019645886511773846422753793756979928864149011521180795555093592876995450385668995580084986885699706010412619948819039508737077979705574587004989524668629711976772712554052185873464985563504308948058127962137673430727786233048175995386168602980802533401038931411167806646546661461767729980939455764226346238481307083533222052008540963331968632112724473186122321595854259585362932362338684499010413136762176388235033731471663827492196079423167096035230298180684262891760437835553846087170300546142388041866612274019084965036530318921704599349129327552574172390030080983933521218709187820559289075793991410074826177218394774373489919405556341759770567861915676419996251028768600034291479490063756927579805383235057969559145767436913950133373066811210810389455995273364535724379108928841341705562431842664333559998427133301211250538972798826672256286135025611207791151581495465989284419379889389026567339538448528765656810427899406846883290377944225184168292153627106978380919863687839376064219589320521018400561735111092123446892544816711139000393728713059587168311586650866906715513172589201254116634057284752897454161431622540806312289214306426885080162664618653810469636730455674412608835627643466532007987912132016750249399595784663289950820376109893449378720831862271359452112474102332280313134113432955642266549836129598638398891866951547024779180672558997210805074365088359338919588431900568439083842986992167250719088211492180981515102309907466831829470425721769293519086894323709535738310641890248328871862763985614673249763072228635785555571180893450405846559445871286636552690373501325637355939073893702440819799090067190383574349380921178890477190069145009755418014126116106153144302689451852893917812513230271037899605861382731146924389180913126117324102919062084705295673872483790913490719535888479827788917858367948577327009176561483884121159901378161070809439568221201550014423911775033548066481057422052468527256655368923040284698643561048925905314034538035474401886807771441438351512101237596777599575079250094619598548364420698780370550415120110276038734004954259881990857322233457798569688191995130554711770797733424164391768836677107678584759827902649859191806097091365937042881296770069228407171781517642784557497519921760834914978756573138893084790668339479476083788825812399206585276871016039487109172388402493069741814359231396180367060111407107252840775602249795106370641934573849753126580032674625246515903734472327665254228685938442804619614160060667794997255825108367166125727438896658910869278037443005960447595330998877833945118750583137062817527273363035101418866804145423867996549655340140493896843918428724529737365004663167126956525402437835438632242898194036447178356022187117328691961731046976241701431401486347579052227227050212042199530605830529812407743706911928724270941670656618789445061433422103673422835820597843931193585378206288708867975997868082408050324737767246785343756700920995134057615860906563579628784461891426234127150705657830879928716132313977754436601947034398791111945410067756383658227618473373315268890153084948264508689553232004151632077897967341216792191255657306359987841989022574159296541136958916553270385120357634022965050348469726364569627813796013534218327439788515297976719596056626437110926979046746750371175661411493022526197600667433829900672712970170262249937547169314109139889154119752201791040504238400273516910943690976621456887806270453622421993840025322536268938973446646372601947157634667224909811654341459310212283713598987712544208514056377885459031943592293232525945355085977459757602614215704092401840276720783151418504340000107960013968480829316672997238746208624123071474937872474775614069347286273114788223863563851432249099368928254323713564553662575852740345513881560465601522506944755287374305660303452103138604044445176624594831618812803141174280935161365384541944362862813862880674307320785229166911596190648416574778810892755118145895574514582114148156162855595488708362685783380641768588327442830841333736920781524778595715119850289912478350640504603619006972759957277472775726803461279625436997316265869679434952462510873592169559225097806799724287917188163085629016876932311763977733312336642489977857235020277105856190406396990645144765921503671267687123766252210770302595233874393972131834171971895456503305349162060883991007435150409505299580113789289763977959793345716306673618394450937189311304146340781161668339242798958361354609518148309278031945537169269750431461902893410216004402922621737712298806478000964733532823391589899262288645019743214119629372517649667134896569863769257142798890135179140511621814266384423084035698321554878962770448150058354856817616904566483726823297863974033796945067601869381736937122979078363271401898453853423199778630924129081908876634349005559392118097753227269692826252110138273214634448334296458485397377430012751954704220039310596990560771718320826319282935530847652843682950823202118984089894219555449919267255585038923643323937324035601267480609957470001459513959191136996941175846138126198701257586112177835147998089313218231461106815040242957154626324465074643315761930787146371432252699425478658576868622792690633583198839829422965933863424745174017935655105730259528428363753052046042776972904345541951035783138548253434003912950177423353806402999687339166583335033220661545372779467077163428880831033209501272304653447503271614652361205411198999242419955106693059732477728776782807681446141218040509841374394203112839979670555367068485643096962153099626888827524037986803518815855682897155442882065416131549857534301998312558107368170172834253914941343864086764478453500408996506063731036356147885849870271875892945681226428167586370636467973669395543324790339890825765787356679457415993113768740187572733631048287216596613462652958517197630561391601260652432862266937616633909419032278104298808952768933735973310875288524862909575509846881204179996850487141862234502070702543856438740465089241978318895061645508674233422037027728323149488101662571989747426268663506416860582426180983561188935419766042558832356391168995788699977798622055219400439547143959345076127765997203659203880032726218210036599459538952185192832001390635608354203570734750523762194287384835405600389959475820144858625904599448539922392580265790181441998888642681928835753695049209593206769941584509852676412111291654800589220869617861248860311060504665444300827818646883053633549045352058514180204075484064913027094903078979481856522536226587820500015502871790861875203071033404786055419254918061858632200792920397368813794191292888477281358339455315870206966800059835701456007203002524845124579617496873295483684749649166878021774229336033262926910994525229828129653422962238960274702210545978945503390919167454408860452212749991768575671501144608574490483964419792183927581903795325536740017838605619009466438938907586274289604590722875501484329257895760537257857576635450160443309453282313740443999534419031923620324397922776748998984539938677772857174498677520999116177790107019635178775868667469817279316537412875004759214333421603181991074494215877186832953582522212955397950367735639301509605995475909850475942249273212685729509360555180709953590522853623910691703293656118184442228196427173093899016908147874113050127419204676866349844414380750654275837004934346949219307942409755464569124017354406352606469378764722345798361081408224727802597992573289684385576515793094715318395489309087638372432939475531919462107840041441642485744068933071165699290225472330361308354932973269794274493575046115457825837720587244250655718649751844519090537411996286923919993621325050343749755826874448198629898910516155476293035912116426010453353553303005143641429290283464541049624202123148249867577115981653761805726805103992396563648334684786221640344690598791649254881877994894250530014627592762369061475889315998217472062503072718499595612503607564951427480432804009687538755728698912482321027784140829210084745071835194782315003318764237710864731036961148436068281298200431349722233334639906283145903287542891156910975902343041552627360156099084949346073819008651957503578928453893367510277674023660094472238822951180027659863179280158578480552003366181641370953855015276390181330922951785264512360619654713753934001280273392801830202130819380862756334612625719230549757394105206830460463940988201481894623436330256999035725721414210680993617552435940614821819744701693945130599314352782539002248351040013360954427229481221756579490622769064038260088757960972321662729338778943395433927731542845473016118029955945154854622144975886236488122571380634487665703966477685604588526529202177549611563995300004618590467588402768571692556948140027968923812983086076196993664255119854665960233234854961364208125461893898475816989530764891584015943325707446298101437478922046180697038471517055609957307992097346142704919889183957483152229473054151129129524638874161474363126785656181333531219240777648122545353986755352408951733041278817934082857148471383692416004680581257761397474106323770144856435486884134984929118731651652936431662129599808649305210129671842104715124606170907787513298671570520898123304443548955116363050860296474546195868780215313250694506684934560196330572894331402962885973780614037631568333803889421004308145417738594591950229455631891411196053863961545997053072363014084338990841162539658422299918847128891270233542202517265916452529230739543944693338230422078893381215706811737548344018103873026447684679678770684741180306677291593235693365536510322518858531958582165057946666858864602977587747019471386003331877398477022103153736366827506713204778418007674908192643622054419193978505029456444464101703857061837720097786627546253436345783172870089232031653765507967293535230714142397275029581799684036466946958576691061756361414785443030526726470772732628722330337961456343160630884291174630569081760359516701223345663503340669530530373706723914117049799048158177200594270575232089202701800637132268030687411886955681899205344048069574261229050148118451358432615920854986734653328899703352079464946182502880836060157582361857199195419354681544154135548962180382017600336465305054580719804514582727974239934472593346992393577630871643648732508044409604803382033632790940170557814821887754795716953604470631166105767869142148800090633878698037621409353614109445129285316723573565119339722475376179474852114013326662685340779575107130904890477633448128263763392336027529816704097068512426480722523366321697712469185636111461593613039015349576305895163222817057518012583959339363058686407668568197390429075034424055186528183437524638127355651072132159098872336540849956305676182844207919725570338055136714396422794403212713115664273580388751871818805529381010367881780233673127142222588515946137920786619918886313111618285092277220921689917623109500156672313792465996968843261517895623509287372628353330551186170243496909458329384091990911508965491423576682086772684429104213307206344527026320571463650457342862346826519807898715590809550877877578055250282309947736767974918539186674793517810064271599155746119886037031803778592878629797367862952241653890392720743972496702587754596971068773854165901834314526855637515907410212720999398293693507656176092647455657574278799221237021594586874091446837489862437896024387324173322805343356020113098630654869777337796567999248623834580544811260454912447803217580299361685942740057425186316594099485027171469931721064777484116732033472535758693837900939935458325452960688446615336690559516629774264915778618640780123093274427656859104980764006276596787698057354489633794001119714497216434462459043103917361757739897483336229956161879949372983975660076285907106288993706877267941779507131548125255708373922352893864510845652136125482641140999037083563293355196273936801655900589365577523798068737653878399545692925434485108435683722450890803612682818646889787159531522274946674324932926537762396932911215693565677094446884833050836527603803037456546410850565758318798245633040505508406404423739662905951312380953213953933954733968761126148351811402199895494179711227033190365426630343235636316816542387572545582011490369716941059322018523658751882184095395725308728925103434203405635692662586307912734962619450837714608631911164064346887316222775609259515293682060719125729841444245536949229025844217256588856802820362678043808946549484963394064914191605750818578925633822453934354705697505471742909133426217678728565506153675143837989577786667365954425786905721259933883429988896551650510188154941988755094056058520166317247615732218042225266284456913115017374190465148126754648369260974405890044363212825900686013397399325077317380977186087911901447881299511057207774147106592615842093553696690440082231982071807099967282953609157998370312571245891384958974118565804471574662616582248063773234425837229301791738266835942895421238746072493461914979553301699846075357060973837910460392283918079760428930195884794162862573868405982780554137089680639501459225631203742459585797378472404437230913035675996452058855069817604345239892498588314125403621070215562736732522511160372217187900004583679489862651063507711175763388164697761926944034372923492964234819611453109107537340533281921670272220897047394708180024028798169375838305661843783628839683825293568658760649832379236931815342568512157863245680436289999131348741352558071538871418112533181192643987003392449108025978285195454897324910033435793613692582452821712581429976732139689408645100773534580887144189573620479284290506730393801972143939366853439389702904591835409991294053747524042805843756078962517584114581236324722366324741293526015931646243616977978535026947179242800830647691743522909653790538392026574204105000211753935745859094699142397184304998826274530605856555074777736468398217865310541430090224530421114550155762570937310260436443091281017789267598662685035289277885078312887293843309013836198263706483912309915453966187464866179275403751437123725893837942503736726656747442757552136736487010201556467581628628647899145693662460592005740803421675166873518712433979252867534401361453477333189797090072345835351658155181810464336688746830259138254277841468851585398550476671018824015012100428817160400455264163605475287980043219381769951705915491198279354152955608432641750207445083753025193556938571898729795771678052595699843417952628170182855774434839444254234742335330639307041691858696176718176247294505895132447055333963393651722604252838761452248061945766898848680295017374223294571708987025014371518617326403059155125186598243206262954125092724510068366148589938337344739742797798268884130823243407211770949871209020619406771707195599381012014415160472711566343665852366869327624238283169222910883708318753064459581714230517633713498271195777083847827785873493162047313261418827433329400683490017722876216545121401672180297892838774544947011537519981750281195088532565281598462713686397973458447945652602807302587665205025615409575914901194640082390671242037621460237306555687577880494711717260752459728509471857812861098793963160640033600790979494959910112067269665570807467265865013904481471322057448265240904720757380751308164689396564156298349513863441174356072464260278317393012608186930368147523844916557053029114453795069270151563558527269701175044522610579347434927221500984362212388586181631272418484151329456768567116281555217763813336772471268106363037172167589458331998488071417313505195345879988376162862713337282763669273101873205788984719744842070283091310282030105293521195951579039092997586273723672238199131666309610707096996316274663345453307219647425195382838519425990274611749913405075469865306221987482769282898867503175154927171522107698109649100305800408347326833284913517160689759964945612292618128830570906380298655592024181576113088284033159792498735868771821931433642526802079743508618405276533845356856490378372400982510152940488561673362222599328412261717004740646776351408260758460802981130140830309689322531804080658215969231819532483451405664298772756827632494231828989015674939147726212774723909639359759487711597117563736023327208991235556261463552065808546719210828010725659537160847860513799565666552540775107889098618495254284713488634882718841789038864303968957755958973148637743628184901350221105907227647178685373766071805091629490860223996757396085588985982203219670891576701943199174741779922104600348253321164545851589760409628379148531401599125522132312308259883562050547588911707025783092865449818759483983891947017678186522391524959702650582009853877082483816932003425607847430764424105297290283893807868700917269540454457962921212175951095366645607641301140271559273491647121906679047011537117914997356510732958346970275984187318648126873701942899994419704024563056018747676894325886014630193226901653721354691776163780856708429835243824003402354028537174451699030434660062883277584158089084419158728847138087800215279209786902093339632924056152161081144650610459128162136771822695554036162377669209531212440544037295956304627801918074071854135023972623471132328608957861946927325566533546126173922337295717440208100846259466137657953990860348063677037327518416941255628743801302325857414799370979212924459993541354037543799735650204283271586959010585898930261641920257082292323501333126214353726062231838776088960480223970462123221503125981013279474871642338685134750162473726584033707022130061113165923724595372577858980487731322874393831057086658106149159054936082251493192042865711000558141256513884362238168082530902001201542782612259553810916650365601095158979808484993979349796951316178706725260561829739444029837787299041589379097895563132400846440512035141927453267140817268116083255703255114151213391426461594546776324192454565120133179348468673670684733954471703185597751574412224046296533402222123108375866635223101514027154818717492759048230960219186059054663201810410825837441714281059468965196440123598291554321811364808238024071423055648200805376574648890545898886273586507848433957317269986898590776615959146680955450690436276730952452070360993282032379407303172571449891234952837545880283075023672233684215339060469777703794629537163260908263210457543479871262557096938719539081147826744195003994880381934158381671811911297679835026010920104506774309882903549201904980535132324017289671539370713313821381136515136776107516115708753766406047479479055585413158013239690650885553028710396845676512633498631022854248504381760369773770759255727449762454737545607721166084294118955318621175642736358245757595912647917222218282696285598118210993352935240057930492491038228604479900801920255023496085491779085966919058499430710497653365958772999573909448356594561341560001316844287743888655959914530848923335459523189619185586103726487282739617469561641498298859817554295821623885054196936125659425814127240890006402824618762166486260532057454614233811656904099412710276789629197803189619469491003045194151320238446042043620614138097193693771017916010819650106873714687443870281034432925856440834661620805430950157574644820182699420583030072468154699447767421775924618916364903956624752151224726980506799415851661165688487847774683389848082714100143266940805087332104892194202032320765441979419459927833030999894682599468465061270792591355903301042169410829886592524029319166425639262046931231099744380884940614777089352881358331068344790589451334692860930892712980874203226880671745230077532479181866018782360360686595422053256871261000174457642782100513692371905111102799755170203761635535386305643473617387983443197672221527740136288648770315431592476387640753871585773703756564779149782815236177128568182824860667760457587436415450977712801839233014405367149448456241361105296846844765041958356154244817095365680302003785636515407103222893063684217162903882824267174940455945909135794944587811627736896256647679587255082817609421377040824548596046017749191650568405781326582070255988177840911564082967153294495792770891558597126983791049913566202968541986404233234422583563706177343170974820657081196453909810547915923614494546799998202146718761938373630281570723461671035031236282061948838265034615583116704398852671507209865486286027824424038347810649158106456923786955150156790944524880664124985720608716667769675340377188998480735082622199570106225682622692367644839639774526281464452736149356445632483769472365099561512330233748611610475467989553842380691167643202092884064111905553862827587960137738665840065327358454709223948819773746603162688393372565844461963540844019952732148990255873807009408744011130151085462095137550128396164356466814429190170788752562526555572191269081860691203964951254987967937758355638398857618916337858345716904210901625464131303097468471625776598697016633660737892745869982310962062679515599322221586171706952137036344876271520719468042482318226725289174963849514857079090207876488046569866667963423629208936719169421035088957089504974286396397224937165844627868217521384335199278883510302801122713115971563157517096189463768603914411070305050484732379916425335515452805336802597387495627567066090358608387919055826646480029467165908684182546197949681643552801679766034611884142900078164996447430272277674357674868548140540504692014251898948454217723701909476058419895519117883963005503151461057493288051503335092350962417560340390710035184324205479575869472933065081187627264127897225365296390752252922875068484731720491182806702342786852630647865592670159639507072554725929041018306717706355168087977654326118522211805057035043298672175858478888848954503136861235919335038759638846694808632909705516183659100246567825959250452145480639201833747825325891687884891350392383173168301630138702761303600730639511304376092155920560782823159185535593037322580485524420530683742834040115572168513003124578217984701547580656065616187802696630063611025952378418045380812102469176207256873006773533288226123359779719477831465486131982888800399126956039488011199881503442473640257347109759805330088979672352298489306131601598133767366682821087971520747969972397843309391543644557126422690230737211129278082772403239638717907356728325174305401250113346678525252711795024168930290708749935693557851722211329056157928374133060925156929481415348465010131338389853278514482483630098482296004176288856256263831465386187694482850839765011560282782916559323277440127534651132744192337060498048183316835983942668294718213220466850450816985761219182414607648508924722215703494771688133680204607606495553232845001495487163262348757239844601168248177258409876285196791654801121856423671946459842492739971102862492770222962095596912647319731294248866021827855497328467351586255509671987474824017887706742887530635897389683733264771121837753714959397729928600197544692718855926916227663968337376600008994811143110829138511251293901320349887657359391113507839339474372049037377086188167087926274804302343142740416659242595453462238211006434800268091726377259690713246449381873678945249217196530920361430903879384460714008616267316816396707635602680342191486446342616968379430949304750772827432193372981048738958644873603513441330107129117900162063872235134513433142211102107579401126003374935936478570861835279237495776756955783342135155424553241812795185771467936127123792747358656855825822784876560820801575682675483992957096761543018402616824791485283807110196915877225579966336840874353020574300777815771938318406336619686383988972554520835087751484242626153830975573888872950431902132128984364978995333695443272576856436007687663801600681892882856187799641140486799307914196414148786413677888839308452958105271675263950307842405604395819911241649199507605450640124796935524511975781010290926960087497852226769303001396198646033173287709390822545815375158475087621505963879061722557021131697381958965171980991771359604908781679996068866781160505179743390285998572853448013596865928713739734103606789274782635042551883025512353610811053378551561889526840532765463567755644593940719131936648986273240370033141733918841807360538429886106061072338863669123612832245345746751524595312848926793469485129389076500793308443596000791474238541030242751285469560047269147254230410613151382189442064888984506282454157052836733539765080571964130247458111839481202294064437465407382383115224638200952362030154651129184078275465368093230886558155547414968448115622763687382113382463021958947915270049904359168844356076225778922576247175049940520786571861316172790081988977510407881417103804744159408652732221260857441290371697224083628054082182486542202187463336010781756412658414063285755022238524249081478385042520949499682015400722959818404195202508077443361134141282809852275154196133504289356239062732349406746230866307457433221689013176733795776097256072123653083813437270552942566408894708780561292844833603144902257685160369458932216189820221226423626944625822340138575373757917492802789133938087976864349865589784081671119135810211873320805467333238880464677581746250910484362451228599069615522843623201378322673298555263098630003490281876922909015813728372655830721679571026229709643467298168015502933260609672441613136102995271469130379299427983903029778567087119015411340035602730682328696623592113318702146062123048958794017979469097852395077574702028565783162830388304004759528933011490790931379487027467868663815306514586329873163374201884100648835579253366778869199354851863305496386974822615173721137517998786067543161889052780660040349725636609560546776058615962428811641858153740096061872882713002247298880515001261312331315234705233796219946644147492245617639859874906508591383576038866322350304023246837632581336561924789788255368486337558850265659803824631589904325179150638716238226676140158977362393899360102237761339852898758874056064924348929317680188840187701860719569751302873686074449029418372024867040946880687676306297104306207895112996545537607602814812573424231600181893784405815544290330512339208406650987936092416826943219841166231190939020872123422129339865831698647415446748869061712454799057021417291046368251464199712557406374875830538356974248784843434112926847332109540116488084510876526902076251315532978317649400664454222049100313090427444656250667634139927880458250168385157033433538640674691544048395525295510671263729548601832630088575881719158642182934607812122219769655052216940485832839574657083916140431631657097825093305490771460246376094969110801072648533580058920557838512773061320003015051321585108035013101426510445702486744816982729433535098260411203347059991809924718885257371485880413611676382218459418121235380509797758652221522749258786301046527728364772418735250092987052802855004960285706001108838019872025866585611672795990753949885160925030220251340543723680310028394394450661489280438532207051686790406671710898579926645332787154233514892430256650624992434804622455928679402827470558129871317492382520650765842244979105869720408108116094440145590134351739376302280523910174597113525983463843137153512182198852930541184249615171799271364176434168080105693267607018558299172006610024420031297342105702989718880824554198226716902626899921039363178432466969499528899812449100230962143115284531410267189130250582622676533131115743691901600998651304494259691600629511319797956744156496825691575286140077129965011560489750992598391122298304773916039565618146240090295773832037854912297472917816473864569201398066926327892173482632293861229739253134416772564676164856008602321476254541951528402322328231840814392485542311034564143843728601090122873059557851461205497062008383045198677267985028210595055905329692105001134613603995402079784736576585435904480622464579847232541966388905627127338909585686590390852615885698612780368006574481684485263125253066240129289368914335282798721216548301997152714956731888635831114467615037731794334997592273594478466129271932706705906182338033900903627215887342609835148851399186570691154023635162622935680536198778471963147186036445837268666790993923937049483168078369040527741012711095994334039048608622373587878004615816858090629947979921478309116374120053495312860638718186991325450960449904999238725593907370055050909363837084353271806604977347929218558944197641328322367319830330230800047146379447179896682782882179552888529822416800990383771525959477979390385408808122854194650832627151134686485773396719190276133668361240171199755785515213507706059098964196807878080554057922145015399868575333495762135057113808250752714988527286964538245633863462250261403408561827510432972454269910195725108019830224184229729891799714446111029903237717056147111214567762832875368821463754741577348207506084714386992036183857324402784384095887994226936741868893196416547791015236961505312181520437283749938489411117551166606874275654146868497657212884210850934863482128918121843262975022599211208105900584946478896052293374437160850203904337403629423846227752616303608621536245002753297193287184993835513144323564756266507022323091172758595388637180418026333318673745775149590773844932896442191432104248522733011369260449442426037623203711597636370062227974995945450270966506719973369310450026956357367315274612340443032863533119486497841208562040871837705848646962059437684256156050192971877311108456111950849463672234280832000335604189787091900162467384677436430723121742000387642069069672586214869815808684087612496566452929571481524502670021043466291344539404269513238459341627977917468485887199063913246028540801799331158903124660389989464639454336308302231163330786253198345007235816997549716452607150798232554025039161857288503060020174818416973840146770830418699646862170341541192479970494837665109990303767306419199890023868043510651432231474920149268388164007595674510382491319613488324658622583480615265870181361901887642621067638342197782251001211715471024329666077848565830535540953844555325847455942792318892475100176922030505562208515647612804591992569205515692613767024259469011206455955703976449169786069248088120852117079763058872356383121063181948455420678724345206387348581245815186241994995671910777190574933196427656100579849645864094244083119278496934923359538746171140554857841739023055729099838497903046278592998644180523486479445422564756222843839834225328581372524598678346528631047907405743664210302990544544595132728772785640095514689197474001955822868108317266119443490588314463452703076504018687005573848209408222988589170625200923219650304760105227081226014360270549969919554363412934218411394628012694856738642370570413004098127021353658019735923956050135377265240754132298792400087820445510178213991908238467312093268103378350908218390830249999909383352235378487093092373286868079094000714801368129885537862937297821967931996190159980419832163083460881787755258480393176868360109069395124611272256869666613978221523076348712083836595724254630622484424483055150164231033540759318791509455669816105615093876128330872734336237368593170511382106556099760306646203075522712506553583520176824162477772798322823660862766006981942643799432170972314046880211594300149699441990724149798671494299279053325694117379631058843245815284027384475586760940375192269797395347158830100393578713419841484366976641422276768617902248901135769946012510204984847873444675076917559186769684832660532525934886264060679246423373873013206330045312835611067134761892288250044362350827900365159037805699112713470388858422598811383660778394657408523033573330438470549065932229338889289645551159257908155938309550249238568311093703849737150891238265686681210814816081558597504251803507488121564000915993091145283086683722802548672289406308548373032277094893605826006954256806370650162741944203868643039668990653883502553149236738536859506660681680598112004761444542576927523292340646333598519826901582502453321553933341915055891041714390422824459014205310033995487674826205346833182340018995246640311199954951914550748309809808717593605351559647498428538094610170117894212399481658936280699888814506209161123359446891539265695742362982388428666079525637708346262649933807076705859827440879997416079113119203120339487941862215096007475214259899176027996367939047208291327747242707467838690603062232317647774204879927019408340058039696104479168939386631870794271582587400592869460350916712577697520525159357359172250268952489024970406962251185557254465846645756638702986561594285417288016375149519489541853592258248962054933467116715637423538199440634333255636982067066343080467218008992213846157466024739889437935011119595467304749961978904346123981830650041726926364825525271729166954362547921713518927550779886828845969909626097607987838450598278475976719591656961092084385041536856739312109656495952408809784040703411517888330906953346529100120609066532161213142680757954170968655738479614533297155369656055889346353375830242083521210315840996979257236798314028002045991140565185469914482850134990531690134386834552331357192699332112959047673761190618402040959681891926437437219708328974727799796446773673542988830106252600897304811900159585915422572566847423516726598775014955553817080361148832062433903387446961039445483352118242637803253850485089979204137952728475694196753658647943925592502406407617294794716337668059679204543764051601447025112000892018917261422501099725947532779381097245687031330442617707419135923377686332930047067401596504550237932702488455556558395353420575036324344293325624991750834453042626575385776089332404356181303899008873577711524698718376941298894779315209735999822687029708671995014069674380796854192160361674356339725646039311459121066589811806560017376969962681373878578801749630882658155038352383147146595015311482999863297178382734598831232580678090380275785646643058926194494822746201576400477200108516609810884984488075438529646872961437365590296602148413407666682547435323170983871205070842499375272281949643483957914622346214816793936532744528283119079780780852197584056446285865258233152028899515021332997650784728847354529651255393295890149029785693259345452377618906779064527187142021384096247332275504507802115593347498139176851652778090538113428094003629262515930927365870827882669878150456215683289538796960932867188664172903031426868401951377535374070492352626806674563172471866354135102640415983652954156160626443649001207280908924400556458536225293034183167137069624208479134227683856869568608951976034197655179274512006809592129434282875738353963386310026300716196429604481777554613655974792328933993389348927500713203347928962482033073910723298766400069342778495918512272357275337369002874323590253839813130792467025908677755537676498924588900334752743255011276855810651480722440323404716429179376840922309170663398072330093845283115882035555511198624287341144556764390651831321247954612855927156450413857339826889616351162197113032640553532841144306624824168528986505252303710397682004417317035253438824802512200889210584156911347438801323415397853957549918705609942000338123583092367976839073469512131376836920196004176082132929173708367360609708642624087484684038684026169884517628008806815978238963688978551506864579783711437769066094409414533515373932680715183423294533543082221695461661815090755003235801902847475666510658359739646832239058728448264815839999853308787709794862856727225651732511560400548343027048622617174137266593576302763993017989485588085274013788276497919683711817606213079164401718504813455733796391036385453668580713796300027692498435665275901960113207658131456227683942302248135846549646675043156981299421584483814010393084194382141268859594149653313464120262302545820077395460420376029097421295201861111912660057613609624745474353546892056393804272571998623744628782457573422136300612913263778373165972771926593242169280143993818316696967945189007882746086063501438254154653249627192096895869041545857313093168484494587305239424400140231982513298915864099018928851262148843107107756286733009976219596181964999186737577351466026773930524482037891471106772836717633329593193208794775996081746952081789648748172511843928194016746504289229308276471437050366093704142743268770819796943033059316519079259042480162752619591019733734988283642305050307211552448316119151892758805313013871675066279798229731227311947503740992002956101696373394794122317401405458907473734027544151701006483575798594737777593063256535195547724834550276587389797997285410589930439707946120013367329615191439009824262133236542894172609413538841109654533023511937410468008962843638412946221484169672514903205920369055372713039988432760686201183985204699589556091014022179898629358659012857247046610520555535617749221600049283218106568359348612492492096039099846302627033795577614806404678291959308781931827045318306499524499444288969190283991250018521364391740136520636430555433611704224476294475593427723580804751298229289924818396996969311654389283129100163388731630892053263819754831068094968698354831284034725208197649710714777330270324558204972740639821521711503524243861231107435355071421567895066114284555507400555132587767764841005389947454732207882770783232940563074672535461964842777105530233582718494986767151953401483531804780597066360014882901539238009119462516236999143098283420658082630923313943085114404339886639634593626833338835309758903940072789543512552275983467730966706473860209767419011714095333016607104766918000186951191596303142761384978159326503701905050939084740015878437126752311616281022731701281869706484982247547649428238186233443375479020877853447836649919599451604939047375171795267830185579761073639696231925177545292275464305209047622027858229946723725669927289005312334209297252830162569889021521494874437060076372921544703017045606548373058516553124620387973061097154842248522055455753908326732668348019863325360114424398739336110812723262663149514835511829120467637754132995447827663258577470532787226534217188359214049342990251128138617240392648108938072894846114735600712232375034464372133205819721154327788718420687686018483624183350206326232259047737459207156939423740631825630098842026894261508655396463516178784432364471100008475100860002219874828424021279958705683579695278355806079195942471993183714426547699939410793498122542726776716394917564659078226302830417946676797085005467408272190952024621565159027712657443775340646104861688937609586403033677566651857963192660040154299411744620323784147662914978493673703322420617628413125208526100266333280695287948647898454569731873812599953408491924414041603734172281109935049712349125306313976987886566698363227693891271266254027940281973097463423215021506306338516169428895230060543681573322645311912201430291979080717524817618308575598482243945958971569475741633787551335467949607783389804132535920228529285255475257416252347549085114505421992475483189674153074323037442786102843992217833248030646046563748113835506442401363806497379101172684268963469562261245456849069175432451805633829687821079008739355573627853202329919050565427916125434368510701645246158663724016326765074840208133275381628885419607563891144320761103550528882333449169250411983566066055914445145829788983332377673622123645936054369236744115215306057335229571045537645025378404733193252060930308470897268230104874374836399771823833761356353085029011514359656624288110364837559938077581050413075830440972790396372302983486506010561787868951521654305745260577670750570932423285897586628475732859739707422822608722865254762064144444460988115799044129830447478207591094012662131021412366181745044380310534838815712334155204476411051531994045415696853012236328767499798173454395027988841165003301682215419777834038449590852936034019411684963016729180211995917114003739578435586018521510119409478832427386251822406972174122232820731385909254540172479554834857087472106034270450401570116382727122622900860426018415573038951541864515871430820262867566021434088401007963138433377161266038498405788885948020929634366250727799789869166771107639984312369790602074390704972676479792053096503196394229659265018356668280786370805510463158366907173412734443550816389879002746355944263396907014306026065734071888876662904678921534624984120412476693973619753484110512997445547093712205041866136602493773721284514587654226106113452703691387373153840268935916325342574674410995454965168021722922035186494706144223858945460829292714889125813646730059250599828848396791906691430380292342043094488481783649494277583857098946816599606026784819469949836025211668206225327507526056221986431397716684015081702418894170305834543858910691285386068438217088943064720549074812146277644635253322089166628683334348936225184415365319954725537067984973207225994271347493778633475947206455876622957256158839301530871160554831342332486690084672523862652537126441409077029461333083266760478738954229881637694106839006653014495740150234854711531756359075708442038087226731699496471895498002249613632352373278966194857340910956000516610293234071134316046532918945878828818524219428125440937044708126999059866467960975553368728593169072489904012378689849212499568410281663917962883512537784401705225920760872364725055153732147368031980645921941082995628655503401594991972594704897526918826099310950418295751323249931144936504806470033709034699044798998330640226127973258471275172261936787652572584650007123311571301541714884475780091069054350706506469134319783114817874171009893340540830761009681589612394626550374996575570666557650234914698554456216588230506246128407351610192728212519663331085345849520401391483364716123099405617522762377747141176222186768274919360840467973366304132735889363061964610039621266369404177758830952016843008087792331998756424390384847013482299364629751081257199468963134567877978092161405437732825625251013120200216560990972152252605899737421964036574177912846327706156673702714060781374316692253404795754229832731799099032393908944220455731074330868720904553250400995381614493120440248568167639710015753175027997300829626739908496166995184057066687924115263071705740398158925681603012666168159074474305456677696593425884230200667593295193889095465729565442103988611830290921025027141808237090194594129109178908869908654600621468588416924859212350199389737536572300994042977357275668482900953036424862559320428265071662443487678088207554912232409842318285283004474841897629255462803770228901617964148449262884322951964990834619352519035294506338889256487774745428669157058107485219762131525311182916008901821924570649790531308215754571520172244464004036081033606828082084456616373807862422014071088996261144253051369547106165171152458714898234525146658618196930738917295970291183348683983972994260977623939717622977604528639937181327171674845492620174806350420962967821432369211264863674407600030069508603873287235908921837205010529183053968784707347994438172015453589056675154991291253998364743734755900648732750122716309462425094776269636761728170305551234042408452847651803893764889479383078056377224299234373875930851749414842556597433780882496417159377885935656958805501341613971401019794353063998480669114453055480514295386583666017689185403195408386457495819730824086791603694254673227377828903642785987688397980742283960536554153097436670340092941975492815000109519070253838701635123022958007381244139647957956694541411172822783369925462071867348890125584140001038079203208670758510012822756744364778760335727694650489579489736113283637979057275184759127154407301291123749034788710635072862611939111943331297487416643964448796912853604277927870314065993797252062361800217916269906199491547191218110733453687528668612709565877955154374114118143398908523116759701336783768635302993646267877033319827966283573506936121211649756740948080686185147388435904871021242305733424907270634335910513771689669674039336029961615561318553582076386055132427846079702119070288623716344477671683234318361932749604106813053764973227987294204758891557253042892896660624972475423163427046388902758928214795269902209108014944312684639931078547041089624319129330858967293011068043735307811347468672747336720293172613788898357469486463149471823734767315909460844520212945407063210568218931709427308654855710094999921133987548109568937780171025069677365233017203108879194418329814134243567950174982336871724315551613328464802611346941472150782034013757733613977714032556727858285126362250533217773165766786752327483448519884075457988689134309798694744139921181498335328685385978337364755247065370804139696613520258960106666219769759312643463756172509009720433702527765741686181786863915511164159928787426254585094555362959951653393961391015223047723337583567074917653043457580869057052379916640200354110727455652652036068692521002858471967504425249077300671946546490384540386364236637906582188387494892296539512313725448912845604651928300396729941383240269737550180725080570527707751744149230299050416077129563451263649557237581385297243332276697792062240046081582214592934268730645125693390005274428187318112893146982949657840426380968849415563648252807829846729385265245355261865166298864465099505708919190590165978781172593538170466948785584177472984939161804476910484134954826312122759617780974642666277528115247673804069411305166917861133805764315883474818694807004259416576665999551384338550983962728717725157413727608110408116243121567570883450388532946138972358169878099491397945272016144850793727876577464180990727093324716353821718904342761635233168344435766905236766759618985949227118187331341773963451006680585808708309529967807414020865298102219346088661749139096462023681143364539521961733451170794367800660634495543705946214775590785529683112994665681247049669039484896988334616466695231296320049176921513555524636302533431191711915206957920066640002403657692736069823406948514716200271715831724628768265385716132673699949927847851411596397307193566222016455913020793185984859607592589829458486014738645108921328119756806873143980814395041964622622592821251090462670319191352421635729812706615760174091014421159599896222200660492558407055400095880929072878788160278239284881387353831448206708443875176580107706632227627281204882869931637482381976884932906653569044622717328105959351558740469321485249666571575330763828585552563546983845388241041295446994128384761370887646299718554010829499285264984192784558657239232077379873781433039151445140024823327147292240679061155023944874005768369648067086221913775641577650484247802091411279412508960242408285740247502786821244948889062837384838218414019097964356427147444840714962637086144197039119898006786113899760760700585167059876767115950571767171443358287957437454836690718048780623771233889281735072783712413673689559387450237660101737450535897112136978736691580788952757154707068683103640966985259200206500481475140885648490109418305944246044656135868884741794117703070766876890745805857417514729143551283542154458891572621692021520768230673777611225387989711640792647113431383223560688552043564475443071756244805021030370398120528208583414251908191247824593455581286173496569755718398216929449794161378109494126511921784856081167830804617831527353175667336545648872012036153287391085093271212153964378090461078186291108397830329781834414812342223020089234119240849884895949074013692001681677264906066276526436292096087252456268604232271237381457873376610750408555659527359007364394906445465343313696274956433558490972291313951314637252116976319163577418010637182270466182657946388823051148610291203220077277269984842594665243005830623533976055803671219469413003245620130621336848535223027942560697762412846006102365628974956824441136752602715766751931141710673064647272670391648781715389858448554701308238976844315617706095422352452725436001118431993207940379086167837998501891939165358815596567175451786022481517892320701839832411624253157468398387002129492377611346270535035258189726814010386306739502971053245858189495010115337973675357468869090528949396558617285255590224407216469536780432689228489190698264640200479696083968862365884831891130775964814356931782233176469847986500004173022609822457134447076069100328419572941819472640802837260550899850896175754021406257662635748961381650067903336647587136564826332955081943412091505479897065970282648119700936272798881066924970603234299611970399225740431674430673877429277055428363371352572305031781650996075035905552191856131056953511097558796599471683875112201905948834669739595091250457574687865915766036633315523697394604019220752030461384774938745844403737103612767542305959327295500699749420142651061983868395341020701488599851109494961777250652772322283856980265027489337322702961388512353904385927054377229992059456756771505190088256047386553155648403244128406816207820356409174509693451368179396978255739454071308519548935107678368371458984930691648996664776473022109689127682150741877798805354200919028636555139525941471030873772868746675273293450797977948545132585175336909414940146955269451124044229984986604488215357571582845696269951638980257662090574496484180896028665159024823333547302858364730941649923792020344142941371569351679056973423428919823403725324981485980960816615845086053434609347113986186144604747254863323096721489262971295962131393114369543512450281434893337788015341154428405054944618387530561279285121710808555030210445040509169931123733675856163337627885062001104970827945052023640373724135253034307418601607412147688031911091048738641815239534533697052629935838848544642682301804817632673166664290614859484436736904521819973604448905950040060168978347325614825597448723826841850617591548590273502325648999847923326332589657474108978897093257525766366158065324271277543568870064615887443069987937109359252711247862129527921114392136141941774379882621799139118582737867829376279384583863180021362133320187274894071950324268724844644881257690649903505240505040946958211246150794567603171472285638152594132098327414939815459680109128845664325270898525066122557172050905299348106350192934314353361124628694102500982747190158574618025919869412869209062553776878276522699384984632041306262041608654285043169296889734527225537935054822843021375493680559527162972659192474945978433343589197944890952614498827483036489641261531801956146104234038978152448778091329712872607064244394400524441628442489434874010796030453593094842743901712379872404055150449880558666473085858068851057252105381705434155505583599080116545005041274379893016253264996885481879148536269556703206446198269569838807391587494603091560221302054831365643909472843691053895266881774789654870684149648432322123991412640042698815853123845960976207364911531873149605494600746082432841893554132485534862783421669219984074775224822906089836650403642283639965588542402619245425907636593363425148128885071524224792917777398233753848388741790469818309416741885530636135026001238592424906410749563662548983831068631276184135741444620827875796747428470376295694770050063489098201245178543081016097877215448308541280060654394671449391230502270913710864397721339648804456424189477117218935202688627921535474926863812352126743967377759666999231775973966630475440233663336404240653820568378766825330839549375328773868463363631535854425554951620491602657443776172810963649401749595410961617375576427721412782001602856504119248846156204105599410337511726052740407032670963945392081271255904329950672821931117488481677412672015036778548876428065309492864219967407378599214882754536345012622555156200625246084607926662680913267968455943629331110985171804235921515196009626007841339841293261346068073883476073903186341860778531728679429264640555873691250495204589130577342758109452439190376772755371292520317571278560554897153391539108720674874908492904371134849911449533121171986302819407692143209383891409791510155320042174600527260614843412275287320864828716353427588994329029399453580445193515292790791723167492150555416836099245359005656915759213963559806444979937221607284969052460285881859369232743898377978656599093836369119229568588668712953066514477182803456228873283294570050435709198308340506844031255635416331880514720608085706817757438338098299734599176967653851228487214833665637473843562679966905288002612620609145543164683317773687516674776936980168616922926724413530538854783946778776421275149576417282944076078671051249098997837546015596713807551827798795710810097431410005444387212373904084916051498275742818409336521367851460633203460323949887963728676992398011386774607595514140222900480344045453066725902733369330408980014191795583224340401134829370949845268706292836638435875206683975881832559148133686548928880532872949214930665382888595287624222077391071883366836463353925385902746540703972189318191452026016802414065145515134441977707095222867429016604724288097686443952865289477887215892247149003636756748207311217305733740107768898181762567729489619565575087119073320063004147550953399103252434830311915311912060605926177298485723993993798579092760947015451571992712957969747589372554095580479021206926489819192011077468516887444638851775376285304961177339915643928758601042302906317653467304666753075046828690821377246919532093435401283788009615338101790552703175454030039557717809142055405811750542574734400973617164343381567580948583124051688012719740584401785440576593794113785187500846228745873010628760029469713401078921176138897542028256090608735840971026768088229761086948724667435981101144369332539936942623181213635047168620717637662464342382937027234355318481330824085398763099865112148468340692788346934869429395679120145282175300990980181557924072345346777661979578915818058480398118252138273936267455038034637315783861817965480609999216861240116142897830452360396110091438470722355962981289871587632650307469280021937598871309105062663842363419674986273502486098378906829898907306131359438921742837067020498160363217147180109823435249553451906460388854497041756300668343339436853929950095008293503660736555685126144927815305483034894933094800283717859512433632816438528615173945026388474581548232225714288568197273180761449289424389584270498996067559681069504027281079096658091935361212409313199702339292299759340990380144294148643765539764771550019172309658527011086658347367496906856551719758638289740120602577053759045876148974867176552626433715157548333857663035048514243642315324314634271712299204951697445002921084610085352890754964212805317808952828277243912865011167868339977461991802889167973523007918604722382475109215622326997854272268586661097462680323103300738086592187944676324562707760734560529842630356483983386298197446423842616234299827734473753178062115945856196470405649688236866081526269644753158715868865277895097876186647451253828182594788453637364131835550159044388132658109794994980816488751563801313830911003874614674898337061155063968140044056040146173432191346038079954781955009412083434316028324853236936862065199469000030699578900120537235597718514553627054980478058471382987080466609985235898481744675200957780067302063386343225783779656646318315137381127084746107971334123911338272340315330649276857519516870360165437225794370671038338188685357398372940274797958788789417298469265073709877553379788533136596404666666673660094672867022572146585259281205709521972142652458599653085027464617294104340372491270298526254294384446676686847236436380141498509836214477644751685684847995231507228474173123256437620681930238882909800667489324852796372953560218829868998344100599072383201944543259208883235858264490305042422734662626360166712164241589042854866891918456032576011222215229874783234981720520765872989105335581943302835949832275411852133955412315418267972876137788075910306329388787884713321752941301445522641410505300428113271348589908240415177479443831937486249909137000835542176767882967146978191985771589173430119013729262844368723549720058859964079746646148456223635418342426207481932100639695352110342872653271499490569599587732753856360133921055796770825268905056032482024862017612208875672750637734744119183190301108204169251449584849026509889044845702622971504656096303343059183533225467277153274034360674960726995477159937425227484180447118045563469941714028278994767441243209778432043526880778111541054724041945660121111172082784151774590503108194250670483568851245939823269530172806332617168087755184145958554313814852140402954300190865041208837971718550452533913515534529820686864241433600096344523825486757221433977785284898533748147844601621295595307094415544342513708953879124130006079665425571309306878275171998697112710778842371484332838810627800285021467330564030731811532799554949295839043052101510885439180977118594077660455736318083755272817883983483618389411707647451478498278809509486280013810723594314302000153254828926618685735995876439353881910917859552962017819115721360270188128367715527462904572181789675720041707715407454573900757947169753775043225360960767348619542652099209269971462700928967494439099976988172696326332554420250826177254521202834233462063324339945266493430923576293984279477600778315365978643254662156597290934724885251183386094058125812754831929658972630356230034723496059474790227905008839827877020754138833460160712202454917358315153578096457556788375045478698695393456650635447189043001441945286793604496577212505697559824056496806120405628656272331515698443547397457257502870362844324405166494180671587594000274285167595892875337632236710150995524185304201944760060648071629719233549157076268091273238519387741552329821737747078292903928527446973208936046827943807588449452666173540961161961554358609210314027130952145556598012968617943068979389029587031740348808786818264098431463413415865937306884053492869223584007120296817550796690671908272294349769133740989440644084555139772102976726649492781991269500051401511872987961878024244877932989132495818197887860926496573197704647408124605104090402833907956933931736693636075078555484038748965890996238053370158774378228748540595793882859618239131625200408532147070255442100298789777727501983278054439558407118480193431951652741659532814492445395563477843148434260424776595714417742363459703103638396735884476146132271961032102985469188386275836167657233836476013543283241673831318341360109254589602132259844540680174001967702706356601821276782739413668863894395176279878959898649641342321455637702641039245712427737911625001003730861334482289527898353632350818452097298752263147600155355805571209319096511360525792163816618840458137509396375078881043996499319624796710965827559446223987413811776339470083367672065850692836838367843859439206032134680795765790678087015121789754105868600621968344686661139168160686804260053247461177143853115813365674942706641308556323148339646147532805955801662465203742294129567461707261509135443641593689681383988827838886549481295286565912181780174963814969284444750785623914282181266308893986883476233644244582878328003553749633822898758924035193943144166152944460474157900640876587135339770520538480980063429384210113110040278339837411083895990729195378395128786152033117664854065198679477191786572908029874617440205217889586211767114111471583346819142041019570476576295526842894999074035397467186631816741411200820700018338894950311367709735017263596745795383052428857721854742847761873062582043191633043376737963662510768808954346455312198655349124974415899058505098649682894239458674312499827706325497603581105300892141744844092575205755996690103757466058943247263305080480317873745518559759088783785930772165015264091723609299209866392955938792718112193788429979619254009301357665091207349619015719955415515856914340444241482019362440307008966604246785717392459227910864588412530365164417264001390547732682609487511171259029814638250441837101301666060348918580054987062085134313651739343961115885244223293590842546784427247368671471814556985160264705573679468813350450052459838438046735014862905493982661254607104759392737471135887129721301936012757900211520463963897800829993582285750653940455353641985065850666307665113020988236649029733657106386762489751345999107064578609347773359484013746721861242779051968729415308847531995915632131298690293519311670715578275386475713131633883142518466177895408379207306136667322056793714948888289716205520343276967311708719171318548289948012048634498735550301373221705857126545943629602541901111639074495932419178092309038233002253511425777800011053698924345027048224887052982373187570042650980385169510442037626945778756577045439574189656966833602527274837019220667330527002960385653684895026429744732505159358870451587435660135780538892475464822603470364548478984602089446842738025613103110524779708374415363042816745235524783016766009005659381742472272882260577439709353265751906832879160817472768054323260714431765656500119628183562762399917429137499922269659439792955015805516215669690098675573565616447565453453922315477051016001706207949208217007479525291030884035029109160480098392716212071450966044447534809257978928800191445450443815108483868492295459241481769159660389129104171632968214696708699525844012460619235108424940923282476138028113226109981076171885548323417378191763277835879096378270421198633480970493565134449429109100766816424374872099279434652667105165332364810620836234905590166096817539421958036677190550954144613802071975252955720101877907512460981813052144715437220146490066639845874478810622751911117535963598439122869296461450034214766027907821041044019223098842212647373769319576932614519890662617359205086812477801425188520876675451060637532057034426109738111690870934791944671843640879899764047132311240246592357033978843788973452040878735919950682277518568379059105456117683265575763689640712192263619795012639386203290860810487035770457349674101152637069697358519194682892306736699018132403566406694001992492227225218734207347130417181086800857685548695318754413640209821420412216533681015940435075129688066971144003060067557355587810227155371544341865424212383615988924293932049685598727438336801659828856317986537306757878598754453316725377896610885706440206426442157605906433184191390518994762033517724945085146835320407623616488272811961802551658714526101617306621460927759500813791413697699237580632516638538601166421177123590069111205886867849046417091448659366761777884889150963295016215220502398706767696624564147340925617687919363248630124436588569143833513607752649310027154433466694164814802060695759509798920604755024485793709108047498729706120156509253064780138965938741775478896401105364879706777256863833716606845973500043850142086613076224894640992471324708226826310979980266875262181503441671994762222675447432695680917856790005876412217774057547656838634178337863869718605461023573069253590337678841252209151288691350045166630475057300174873872167827490003630501515845595979657715615093638749395937317304420823735738638182448029477068079497930862245673291339286915641057619232840555033648316274893247694489342800595883150258839084256663071811695159023656353563539199896684476769978192767190242862781932864659419997383751377740816493555346390513200539340295158242977844695701139085144760541593835928571810727888342109031189547284679838509050372135977682691555079449275556439749498533313932288543295944466907772736132309301579808707987504940901014206406011790297667807221633160836309986630955737568974623928463701315403807699630809454495658557225471178770790644827092071833853285634858595362648744882139341666910909469636055192703272051294550717943587237921598700512695136763262240496525598337919852448820757648623304196731584021546902501058118664837563274916366349534404661541165934062105494658146054152183718955477863205952892438806421542368940367076119711142544338796179693646038311405163074064749868805989980691526491392790141406483735471111742375865243580862835751047474770596040532203302046929733800900069446729777115450152469136407896098597735469462385154667293549257908661935006444104678246324874316939163940621788566001370819428493081930426594770654467006188718818222273496919395864115594693502874163693456855975237323139207884899544692846079771772074075434982766962439305487497969128741360488479249511277801401479163956314624371966486127115669512812184144668099410619958512814577656957811799203008036367780633810358747894566765781654869943063289912234369863580806599000052033235390433225445143375374989280671458002448317136380272069664823029721741240455779476839881926537504015012417659731542365940196690799033029687724997077322105660625161265122546440428134290749106902561449569428026126184324889425753371733062517729215868015693406008924058633541761077767005208984278987350728261953384699099844568282105858797575118634577822596162191657838220883992497389314145388427934257279639023554916854135435267278260291364791211810868187152970258769616898405107388056650940835542563631200157717041690105035319667588927854927641854610707491417005732306816840514542366604659534424626767694919746681805861653238119646763677234414092478664817934428819920617557308798513875728018210474151534082860949750442492248775077735797658655189408383907492548896049192860931710794459317343420709293541438323885953731600991648194269674130978506922534558234061151569690191708667291455517113749823197430752797699575088852618324395283446771125946956132660591132974820615889569955474860948349663073186860765044263779297306653835275291083013572136974798198932552049739714802296544058668535306708085832701190725975300776580879757508396055731180844221970114911627688297872528422282054187670810860933952694359962452745216363527274650381706496739916747423910640632337552694098679747390816487168197551145902351124507250348654790626370001981150622869840186032917820717938723024917408430315140512643765878863475613005050061382568694676047916745781744674630060262202972639719869941800372807557240656004064072748089679173604854429633994891672646073907395063643627740375933332661497517237911481704290111803098752737357692968427704682701464756087829231911602154426887165570948803304170472082997382956221561340265597232019160986660821364991768835986424114844396223896305507865350382474075803025268401728198203525036098968653287255194554138114540508690249362090802531193911340738387296920599538242593130865468082227511107898308534652491672710353761023917276452187647202489157949268664754278727108142711784723242806976563258864973353163153780062024253851221055976527026888224640088022244483518960251467333056858634805775094967325191959917492653824935917975391556201433573434365793328345993013998691717476870289061765925409120114477756530686175578396804437792409364584079917761906014676978110619364141538267453466067684267602858287930911169024105833723217085508431557041234265129540481190326477074715253265696229642386268772318290546468476124006635088654730274608026242545940377064150907724192392588080785076779834656754288144460907599052159382695449454564425367340019221021220404509794832433476082447199792913108287660032067655906130208676913614882137659436328976130516122386472786517456041936016192890913934267120237659646208423535727816321493251244962470923269437000952033984197819736517284259999314319113160443792827426814887598800268783448927718452682114903734414319589033202633310805451581890780024468037078155592091789159574595063851486510175392039484112835246760073869533672297602256292577936843444481578225387260234631073070243110285024155703715649746756662131842714425579825907801841810873460299092871434984898794821768334482451337302683557004441329791720230399363979533989580632019885398659954856805541833025101352729059959182996227531553238391664855774876700819470573854289029551644056535713959602828022915347710995279052649675432234513138016303485535025306563517755571335878146377695164124452455672624463528884801001114577247081203298665142265070166478878691790532732883938460113102150287193774192471684356853158543142760809879642427490840409067830556610686711075453960266150498708182515958023663501981570216930304717320299724826791186087408414916486858110486000071539417403770312635952870218593025041299217835677256098949357577701687273103817527434443907936806220973950138459223094148369177714532665424432584786776878118045501687853456813135051271386738884123856993253974064316517570999920345612751373228817322484971207234478844457305274739758247986962335224762064560073342814612570054755943402513811925369939581961274753671861390926127224547027070765652902796459500619424638580981999136591365543320000498666038273285793377091522690632864073133390564533055020692886219868838930419883040174900794864271535886119163111504747763186015173238291798178632097769273604102992626271837612559559863651842484585240100312106382498909205210580597265411183573182786097800588049881147723869440663773344002243880064597115753817610607159508981843644177148769249639341066891427239537166351558972555524735446632223118704425247565870021767452486895861601762482053112804334089233903132923191957885085171054750276550430708281094287345813390211538070362627191956344592766509477904049697098782939185496533715899532000842778462848866103543154669526544380499302566522364789277158215673255942220014610329759153201638397777445109211871041113079763683669109302093384283317430731830665682822481824222328718434135188261894223566339707276987450529754882165558789409380708710378711790850907994120003730347975851926026958409121028873841601450012265580808320435765473005423894702962715369496724784884017024194708063394960550505431227232730089076663012996064544922980101743016829404631901335712983488347954481958932414376230648989505932853522065461486823181255291253945608218152374280653452415788909962781365496468632446010771052078281988883851043324150634424451631475428761463281505628750260998889461928551911619648168632400345415391482788218351850111484580863324201107646352398674914262586648251685228737204810757508233570314509427970233959268953715954722277623719758786045226556789902923175728909385701183203350693567352966249884024927039894652476793329220210950574773128710053598134988264264325235356758162531215077520317700535571656358391341971034084061654538991699461896007935549775972101169874561113676966438702081785773827490821531741114543028789505660059784700313070175993143667260015199677379748659167834128920077935544059882946875034530664960190548908393641411439277938859923908578887816081092306173344254104859096854258286512048169238599745450252622308362052193523866029773574748800442122303049142272115152039763321012453872994784618660439023193077475513167209946542909616387506739855479630586426394787732329247784219032778206508735788803359475522779031352798232906908274806186938155854506078869172119886400383190328051333754468133451734158080768020095821289894456104694480271829573400972026250414295414600317618704425237117569819993946626995562503966312713136087059577374970864863061217756429476184384175771087641392295404046955653840447289441677930343047094503207833512894124154944265623725926284557768499900396758173424729866453340230999442798865704376199778421332743859360793252655309638535042444832197127490352898172838096167278505864728205635598002964745606170122516014694369364444865064628313975370709218917780077158588468614582907145242317720787619482024951829143471314228803894294505586821233705988180673452930071035598518968530322792753598537518689118044468220009258135622410843942898278110255055363665827270473610243639469670683089690468542645057922182654189571738186214165271083702290609057291679871382203214982806431767957299079595277096851162559357148566682505192043819010688640439498051642930634142322589370678043606721183680630116025717010184820239097488263911248630288207795218247791001513373621386117769082086223519481630152664663220507793296889738080986393216686655252861547975842104546952245981129143036077754078106033038619400044635655391815591422859421722821464309659513151317088669923017570744259995316749258621994607954542321643129824806522301871854077068176211125529892442558056810183319849769296835715344537899893687822190280409049726945023588803859145314703557748430633660059618815398404179056625898972955144001912278959240428881557835959054934022653658411432208987057514221894426696041941582056558392261636875615436873610528727592637674182054885814488273466260921257055067095072749740374045025936264498061272040878158191389077495528280338349021278535140803022318000240383701994674873387552100282429178563541135042045766049701298935656166079766569037148359547900947143344970433713139445877513854132456842992765410752747935082211288084992677296858667034340485633541586943926541643368649690982498909145494095551122005076859589840546054729103243018382727394654206844472482728828311520569360004957344740114862461920154870784429431575438911320826030438533306905338671163699339289185535479809016220786422559276404631676864901186952640840346604193252154880534280363014675180031740711733502015733997263631760114016337343408579139072005709632261374781506951711634479313418830579270284567243136214011424058013507060544087928861733962355453781068800857735761536031220926419738694781472567520990861466616660793449605183457343993707948692449409950856487752216476091643177512394460363374796872318012053719466852946060998633177001362287676613780216365030236467676078204944392589326512322051253788142513997829283360759155805347747167244376125080830320707912974097381698873544163662355520253317119704379151692350484370305030947929845093261899963273817686539542867073952675165451707257884964613292146368294232844122182533750225961485088749399075173244211071956592210928245385911031966222225808057257851947204766016678356931012826782789082188998812199105415594290290612929230081907295193993108872494722252551589313395372353041680843343835363890530429554757915886238935154246551974184750801112825780619262075171230493329556522722177149028307173792171207579088650670355420673228459168964919003039601769315170419124593422890993863798905693981930681435900713353358936279966681469966223324656540026728538077261459089446550746470755112763699203257161082342807552312578950647527969988353784921686967382299511582952416258872774470317518013889547406867845865823653201145796283015927922285063145947897451418223712843509999774204915810701211909312572471133612340326523638511853941003919627202654557890296303159192031792306241605621171139087667924939139445337065858118733780288026002798035749269517849024692115468831116757552675429766572346572773379558286047087481114173539218328922674790053918409891895609833354774515801205255762246614109903615245150528490905606495674376844096440471414601456953887871793697431650785239533208427303041345056901151669807430037318826844073495270224550523920249311234538363906282649079803424016495983530107080450699828380513720176875719157984576085326372889339418312698474250370589260597295942602000694392927226542426399169284341883129131674661025954086590033965748643760171351764509013323570675755835990199842954596217135292162249062052132558131863845173222592148323064930459338736523598219879633571116006799824630859940953317651930418159469930323072069831008471904804546914262340414490401345174262145178247037913544007720073331646881118791506612191659862133073954288497092311552021610496788468209827158253015746207654775333868470627787098313741464670289962502814760849806664884988410273451365452026452420761202687321127159741283177640288491114053550714174857118370548933322683792513315905854984180896901069333605795073842037499738900628832500999310583267060510081848461027522887764929661111911531702466175110509862405983160655775928887727706020182979303597825812365874427282001478821365067897262932988994534839982737335984177352450598770785370589384422105065979804760019781182320426021161559735041642996753577627931823124667989995165997952483746851948683455861138401838827681968936784893174674331731572241968764688986197703630704842492421854938738172336233166223758379680071089382992203949656608440049632729992289231643539333226871862111019217051294941327997477634111659578075192806930915072805460830733002529936548059638857749440033528539224267167143851549826682621164305914464721155562067109583015927547229969050029294104991551367709553290554935509120390554080064859859147590638052425795353928755520886166989588135143589937045082206832689038030992018689591039956095558204103524365557430020413788021211252352446948587124258588373078520421335099304186328065857860849169682785645499793543487339355593571169308280849114792998163613795126427140588481304712530045968282628876478600713303611322830140122106660608185572610539908093645386486231346135471781151166868069747889358826939475110502989995965752337193810872961459595336857392420849952554886771183505111916167507868973037440509224062983103383939196813973124941601533061344542479076031541653311706654993361233404743589220385814671517626634795415991096732737662355394832551272223818293619585285027924007572909770697746112861360281326950216180337805615670108642469583051793474907605636332054733155142525630135705383952902555960608129244498288424404271207687278027341491458581747929569036488770271767543759851067461000679731762669810194944093571335108449806339181476817996348746342856170665304952151854773517715447254136081132100339477235590171677587777736772760235811752994482022871077246557643999800642758573430564292991277623078036712041709745004635693536306216757553674674240145705396678621648371921784769844145406044791361235173987592501733897082208930345792704936136581606893373701987905634360548510080997364179039199341458857846000263059007615133905735193536385933084711653781079785133873344168431367625884786907868691953881937350769761257961156481819083344150386543636772339689673579241305568631001252016866868835316604416707079601977880800646576762963988643140351989129514342490075153165253212644234142098785777511342035867399002861990466264549576841068157090297975232121723160152307106347925230776058995669282131395585213776833296607792907581437504544009059186831256538829921573946812230448763546799646976165581906532944770215482949170690423509067657944737705670230425672956474427263908198914531588330218427805405220866820527559652731908148139748537232022717719276730677795641592264195274865935713197145052919247355692122919292911045480350177316226700336874884695368336259447703115154071544843684759778512306585328040620976039321704623730810550193344658699410425853866049235446046715155818421282149487349782289783407239269055588461684401449646613573488279379945276997364359565068997134345354663773031566873442478265984311197522750810566558296389577694751230924412634734498349271229240782951516386403469449624980390204073174949688162588263551565783139983022424419500907568282785894108911837206829396627134211899314593466055439058033479979513883903153874367204396427828121882574912160624522434144350401140750754238275925397388989580770638425247177269330746097617369310291479239960362698301547189309278492441397262030320984537477845880319505390123919729467538894877420615635120920596751396855763062371584042010425391744177909842225792033140255372071355614406230736361917629565410471769769089718741495424920714184387236373499181856016023461899215620681257347193240496324590071727405431251644442487577955583313295728268984728006335320550247493300084649249254197153848025456669300735846758664669600472536395424334783293720943332456228322749303580238329176912909455696741441740649918855945038501789294055743823091877136248007600655260156789739107612110203824696312262841727986742553741817039480786751390255636525518862394623329544806175606131705424439298062542070736378563597748185375100576671456196975099516203416490617189974005076510915307793305348101064892676030320722157707288873535638225724267725371951457055043807235349563459378837524224576444485412938729611126096847755684906375762491903213506262237304601424485726906325527055716780620449438927887117462456357530074232524176098218255114165798213876479709415632207179891218107821094437018711399741839891070285611547922948165748423040458336649100037031047295930718652556718532613370554624739538918335073077026383468374944802593822311722039924672895502575541633744431503461642329744850467759069309403909682942932458238220283648086995430385406974552913135260468493226788484851581757015392330074368640460566297667938657607151286986101086923263217967598331083714820713311987912136043977728778602917944729695352001180675825543016056511206825076219156237901536722156592520545459946153237958380289440411449851334207499377429257346564055711804028263178416670480301742052405270705223642512848436310639754978841104880404246674047031922509489750711142000596334148949390205744385916801920958513505855933465505523895361953284903707504107024808481163936630671765887824846913826023504133432747515012418648844186901991917151014263730744271531821979382315434226321920302196229574780989160772226589699355278023505474560333744067321328841338446127512652075212191545909109477727796693021587631232882199965154683803137173615453737652378750703196555514789503140119297617029219492435855146317296427649977921333416951806572580432674290475892352286797576746743086354440878975455511767888882312396654287432003386910912168308366511790259400210388468367324655348851296974068262455390045119463029173539073729555810814018121830939038094404437956642263812490586855209913228993878300931262446300377938427171137315972021926176247001038648633225477304717320209968147817795968137794599850050781577419885007615777579678617465826254598836990969089532012202845233058979786787301536024041134519699804267377953480852649593439715671224572362675232644627707047446755668309880705854505250545722258134858936027612972066023827496531924231163043858835583913092357069820178113750795415465299129962740795181007932635801999310140935892700838445957455759021580793208528305355448630072656683992407462419316480246901122312876523511890371667854671774723359185276961685294924144977035953749776984125361714682840813501065082612610362314572048849191754005709940113405273363027180406752278370176919163119866224188687336724169843549391088148387532557415010488220267224070996505465325187566402855673272174068011779995603963019809823802644964733269249938570027954441163753973167011811161670523504050286905712490826466969445407843838857749620937518122488583673408533253362283806610290026589463593808699302466700941846201577406773492555834974998723368506926348618860705511195806232819569402795658153020433965558683478685509412607960516415291235466172742790737328036701641699664554809719731455951923708976833667542277825599083038289116533712354129567517712128076285012061432125542040702362240503824504215167992112344042703692343033904085742089866584447775600132734896456964695513164519892668410661014147106558243187348246921482338792000776640853524157455082834354015443890640234675177407401543318706941009006373897074166574916112462255459120340009530338464143565315060572699262147241876087567993836069404275906435176272370983792981849708435439930115826024410465697294333892568875012084971657205486088454353192174105756475903749291310947510295618284186867758864431186661218577853484130837735304930466594119446670369397068746693925477034337104643367697641561055288651731365753967862155419080858170931115156878326391539790605656585345288982056994892210057310899977377024973985915361830429872811614350002958867544043241418923906552705229904011690543551720494256523971164852157943574425394037273223261145874463979466171028045465532603536838600438538125253158074393775159737435661301293873813355231520112134793397199350657962965579765197786338520027044416723809765938268665623618320136004648573044946966262516509747614809283656026370301220551281697544780740326028342763118185281180642365987084183568825982404694608456114705870432983327063729061402902454259668679949688809243496194591261183681698303108658009426215041303358837122125559996555264195410235025464627714965111795499892371111337297947818988793787923384628266350968731927305502279980990292221817553642522128879536673073807728553490023650126195101057330826053876160369628206033272767475701671119658641998978621066540141210232161925523936968460419537694820562547013288667878775522751065452163328873016078619299808605956300389277916085508284382993111712165811771443191763720005469010491497983049733330209758254218892730182165518437118961715202922613254572959601792990519650018822316114956855495722657312315376812361847347273735070037579492560492477703978306619002899207255381232092263692123411431607848597408648479922166696060469408568779397456648984222173998665266257652006399018055473858805366740647526362540864327342970654312927972307778178509434028002738346464684829539764663247225429715516891785213201415327415464855600926246273152661937266398827126352828229554342112382293343274512753579712167329004333460230909207782105232537563369786633538295635389139663036281668378939517138415082418633899786324507038915177105845674704793514392686150049772749763792377867361148499886884033074585646837051703151194157488291007630041062547996083695070550606854738121354348647452642962497627729860770441789787157293500894897098608609444442690600049672836870861446317089975757228896988013831173678921904793739729314920864217709802757704762046037021613370830688153457080915173674816056141698175155938830359284713764157238129824535653113800454378563383518382766345340180312510306792258266897017204784669583407060748822262320326479212496469332932365182524185316814274559232523384111715172706657721706015401929410455867937672629929011408251112670227297881053293352101340690779932453788333194562567159412681271044772329850954291961454949361019419024258838088133050353684175373432502571643756403108654920419777791849875164265474667645621695386789477020282803540438148384773248372524341446211171255397475046883147098970305006587767174222493290894057451260848458531547392356767846217904821128276147388080762496467200677394449640208270461883034597964146544600931673172813529147068205924499823940426982355833914488215085275156147327256651038096966790761505032161439407255090755535613945942852998490509708782158004237775104696670933863026054581351597909789589257660892441963496590792536078425596765425346239557174223015641302239052537342945661305338420769002825050829719000463322664786868402724980391968957717934094779947123332530970701432148777137071765834139184626058577288328997671057708697055955264237802087022162757265846827025192003876039070157867333283137877672732371776968170267699184785822745377924201146407314478759859681220867184677536284411668487257231935381423737996774749693764074553198054702699035575641202996433622634029054998666938809956090060208495661888282327702811634649724570054178285178544778840401111741877663009049949598504267739548250454964324798675787907661426719255022724842973832629827624281558989694063565425890850250514357726560965939617963159956414324344854426781144996310921207284449743099527486958240133273548926488553609328108435702858722107741487463558931821360752208801501325559513884291820735100837425286840894277483204905283116199008585043061136193207434147757297618406882093035937616922854492914328476720647878405382696217574732764269767062370341558985616609421315570482654417606354198678842911078755784850570170101820552059164779302641652881538205455859275397317325603925175018435055066509546135236583763997753030370955101402549413808014158713975576515864922510463460468148149716656053973185845410686916346043201715682632435175630735366010756427946210775841523982771174141945763256025721539371862473696426217525690912212548195624601075813674145823600155230163167798252733780397779369930086644459614443170228705151848072217159964193241939674918008415326445546481928686448901814468592276093327413246003703918169755788240963725515356873997928339981444085910872682562152770425333566560714042974800737984686300065481643129884292907550388114998482622861281452866165904478879705842412609300941768326192543885838497381478204137421620332998722722267391789800221847815984072303837342329282472752818827836987083123059158022587064347942750650248485555126799654316080496849849774246134053942263045516519487853666158221642674968966103007136433357940211606405770170524683921615819430568038527205442030132900345209704323833711362700639704280006299478023946884074837518480367942191353768045161646174918504557014477178242662107029746970550659122084338363120873254251136701190731593389500096684949957118620547762152340233063331338345686264750887319682164924803720321702920799704245874163319212695440553091652470216116890038120051575141403868890036924901821084514008854521941624314337503695084793229656120151921125912785805731439464798307203494362195246360311383861591059945666670947189875645609935854207028673866484676163306553417393600323466794139255970008555463226508074025998343640003001091520781760103689793938360684575866673274868943471673930346309667802122054485633194271537088384788482700038601283719517346331921680609699958794620789723335860987746547755372359622461508488934903931015107366820330567688683796387374336454268101533467649345045586432478489219471180884790925918025040591778281244868451467053722158104842199461164953420990002584033187257654561450962591220732952195408586926062785864242655071495353387767520584573584046835041987558820989047387997249379985233930815018785733836839440428921969786265003780334936678362550532652733615795858673140297211583021231584529261575133035875583685285596236825072623569431847447417088969345451882019233829157873256831077560814977756424865252843701654570362475517639986606079611098203924791624866554252750000204165664056143245287565392098172410357043870816504708593981205085066864710140979074147191880605390085176635112327250543518622714803239678148093490865481620300221938386653646075832725569938888318818956492520210301295085668259711801318148292976864526490550858744435633970667374414758147445605070973155008001503991897261910307285341046826817684888988479556982515524756959837125931642254995323644533726547357623139085044829174245402313425977714515492102722717217538684184467216348940422667196474909301150084617512948079422294932196374997259671120822679731621456129619583308650693912924563009461577296187003291982097299591762869763885556959095192580770851853707452888370981217155026349230647037859818630887994688865574063067874931790429995315136718236720952014716627259208921417261971875540152233048066994608841569207873908887800761298791623558410707619109196258304217700570358154625101450204048581873338987863494408919518041153629619402182533046796515608222090652775227412406768420697738478486241209152404203198843851403338113234903348003428138362328598666246182224462366178120861441957917290033862768989546115845441069886014615718842856048626702898809868481914269472728534271745605621974174174278774687434909727374224260698576544044700113415559384346627719483163025542102491057844539904428513889431180731117666633633407346878847982900507990894223070222483215493036294003626491837630527385664191624606705632979882056238700216301612310308282709792955927691850540299135010571657005388113074140621122529562307250482186429778362816701719087786405694452779602466465351081989613010245068839886429687250800724756372472754073951631894673319731307496842194400065981944404514066038144965232131254133318275342275817626016098062669112338104142279430885108614819587810133614046891567968092906589882875939356325765538717700850374759250496855859031368558150517457546475738646212951489745465648508912167481091392709921231050129287866037406600577192684806860030599672814054801881158986048597122433302660888499990242118389193146179868838487206400974237470942020498161764322638910705502922121857871264378844910127675856080075712730364608928776772325451141370555654834462898091751417216544765566708989172450542401009260545692871979750597720322070310271550769993700868737275024399772206028232967547055819741313523680555475204807511233587493695222453090786232089312602465660887664052318621460592996577837332245352905675642784518723168776991321689677585596185889266840541465257649378824794186654668787554860465809011126601024434933982449758781793288161611031712060726327033498799422141239219259559872332958605035351925193883078143890761028614912940041636342858057579473711245482625197934478516366125709741954251536712444211388642277375216664106933318973251549706320685920605691490636124061463841164801213723503865219933126407456888326489324689844307104083342935000997642938748632615196066273373110445556432599360234157892115490453036256153040906585814871431787271365880052354775881391403805346334779233223500614127219981427598265127243587344351437649961150976301707899994483881253694473966850979490965909226863746714014568026589732902741838870526307858448298223413617393505014786746106255924576665671452852995236385655008063845951916613586358194570332892374458282856776330378897037414731504413600602812770467581182799996635375165411076799533946858884715024090422662106344520959240421546352551024279532944289916635490876420132979324238514092753020159426062363977047772065533666226429908213109786066756333618934651137829203294588637540992279288507285055689391337276553538497845974344042770277653728382348175006895556742676700494127069902036614180839160528265500573058747583116713057775834632007434665817205089984597091476760621076059523365940843396265962522277723238838135650285486209012564164110493900561498465993307181109999266213008584823977738786564907148048078305381060304993923348446617228316759702692131596141806508175867689323266721556864805274359085833997447345005337205915922216771626555404463193982559516737759587774460790949341415485302268397618892482128167074422956915328991820734685711391127146058708069905064695462977570754230500431959893472634967115270108564549471153521575684330613369864653822961364576455991022808117394755808304657805417032266054044884885967095318749522187624299920111518874532630602875666283412509362655612276769107955200932397175216171694159751811019647170391803496213138350466690386665653625252072836065165276332084343463953817431680831550801106329622496395622271548791406504677662657590117541378139906681853472937348194419515285915411463572535005402830442517261704210107130656232373364907439307854444574213569836399112660862889324532023565426761986465981148394870410874540986453072803393859730795568821167767165168261999590468085236268750147025592204183977177759487676724146511053700901252277902868135798749858515786762513191164637966089377088138431674694917824112611259716002521056775010935700621866016388042282927920498198219499810582054125496930916329462176211327849163142361929368979502074823654704189671125755224141750784865074587610503785134426027940899239709759248230657105901464265468026857646681859504165234558284589932721483440594878307898251948852286087190875288178837523499556111344664117838693961925758471800764922446565921407669605650064341995531585751830909257911750266818919298000856313463490654275666241489864472780301404489958746716335740091431391485158763273238522394121568836646812954822345535117998461355353453188642859885246742834735771502619335049452981978188231184941120258028700955884670808011752937556631659623844538173182763229956748734444997983480786972145766528368567442340851168217703379081504581076349744344943518787983958007793454413112188914260892661185683800651683806260163892900767494549831706245314418949345113733952628727692298517462436815459741943445511886981676706916236406741027069245044142324687735472027207684973162974318384566915090035755977093494286110792567115991146550277469767016433577003910173985827350241044161944175581881833357272882872001155090218038773439037680070117677208905729734900039859514069932605138498356764469309317694688933755142688911331113979033408915617689986900522534827488097501282559389433306300254010712480357684574456917406364630084267599932436162072797732594847219453692063923980546080590571867896004021929480894901796833581367241257725590998908442925568598161878593652294630339692523168907130616903375141833149780204648222647011595225023621444561671051875215191324888602270759351918708418536506741457755459953299902871050757099210205111455252714296537856202301578610425100565134514571214984992112515810736882427393654203536896247439829449496710994199789425904970020291772905862088126185808309177136834905229068084628034809786501075585670675373675311597373092388473687136890286393683691722614486978013882945034679754423821593829735675047746831715066507472136012402943667560804878681485621070613211571560535271259219547128909645626001104120912185705270451648634495870835949068755434058711700918506775635700108273014265633333585915461529250031329407922519747246577712418434658732577954800461096675450886441018810543458572525220907370137539722467172462255778726646397433493315662530374488507773842781408815599992978797386233637837837738766986886778177242639604321306878763699036664142209386863798750464072181188783771110854132755118929891691269412544889787422468417350282090739704627511402191120262116515555782493305915325652735683523124918371170103780504989074477881959464442249262709660544699538330847410879533224216766688070957363397883060757822515575157721591021511939713510500313158068423227719603286004924807409643540197130466448015645349388759497187540898132994985534996544378406186925271328186347217840755523767437227799549328650181472791687330491644706064811198184874095286937201344272398165791423436577328112196354671411568009734341981564397158934166175936777357554689562968389491395975631164918428839368270121028920492443656975335034700959047968426011060413928141557658047793780107764698008226283913555998667101719272559515324006535687202846506291403113736089894141503430736116934592990313844778813836058996003481651750609836036378676478527378923203534173766190869834843391213641847979609770772450960087342388136027957322964319693108771112088668958722384831480162754463639532062879876029287840109499733325595005173023343516939485908179799844335784529004098944696123176020354970541872086798377489358614702280807968796753186780653378811950418052565820010765541325728986370799804084510894365732580359809740532822303228080137277229108058756279189024520079322022239991426153991143673439196986796849216787759742433365001042309813542746020019129500595759801797449337201262754567236466836197956990468826927576904415478842647309020613888853313905917992129439846114893096031378780978761245146074819983348524226578092919197984151475367663656463120933720114092283025504867157433280708797101556864979923714153918295497743592916181856976535282438612771339071023821238759457163521999852230951193254627468860424216970433266324026056362368964139450495596194965102083007189152494607286712180768186106917863434763966958900017479901620922754479053507861160055722835069599783997106576738221098984934131340515044824685881285040034884654398784520726656805960206104962783655532636266784513334795879139661446115610694174094938464061322644922850861322160743271611568487565706168162395156106767690002289869197442425469319528612826149873257265258476980385355492739554270596766998997358255475380309991747558142769500517858355500600099878088673477673064807705882240937093724477675978141711468542836079944298096386852276059127788134474254286877649447019085792095342140103462232483126665332089486110533812907460034333580375503069555950170202960504226705452600566168618188468921171018798233263736700801351420901936114824797711761118698331813110959020670951165868136322958360194922232791654338955149255545836381046749615254756587585003027388478746527485951192588251388309694607088292646886376493896552520225111943225115170640592804849080556297517021237165089736586142296177931492245001244582770395781724458876974321933370973687732761872859482826494212048304266610874511040453371106050974854164594004300973035328694586531562235024911327831419270904200883668471305426469608845842639929699245039556601309482652472199319799277181795971498053909309947938524307693675012019834800624083761223258733258748572026627374442057179974758186902494013099933039631865283954362058080551296180251990365204948302062795558517648196968862042117637410048810131701604121790469108179918507840854533700041093943134656398855758662535003800345173799305672311893039584368096439719826511781006352941541567070545594059511247132132649514353121259396101130790390657793041848858520352982706832246686159492542302485476433769742827953426195032551709412733951139146120309566244949176945609815321071111665619531226297553987886673617049342420347620478433548870085201139881808371772623531848027099554833656029125424390070304615202250766881279833500095300413653969051409199442977821321491699165680016225373056112474759596913886039416986135962454614466059069112733452406053384523071288956694106174961932495111631758660392550290087871543990784777738431518541164583701531184924962951182850257284950516674969477006683534250731316698288151236997380362156867920162095521049882289937595737790671144882831977471595691859370353948857508327246952247547209011495839473359448337035465795649510868315439650184390371532104462662099130528246749306648165210123972842000304720379317650276277883155672599675918381333959400453838983467200109294862245033951379784542909747657033997354279704849578551587466141089699998484442045869794265290566950436418453578715912417209563012577791882200962695246038292192752347628429107887055733736074031871850484962145762187460128930450769970651206937554729521444511891292428971428381686906136101397260292761313802062146180368608427344385895203836252007773301656153445552039421161115747668183725572194503705941571426673831617599985712313577073659948527625096098954652409620104807983937431827956733503710279379067129241059565783770949421571205531083957222376387282113376111952618572367848640079405187292456991121216543884353195045434691989537377840051025909865861182917634704743617119926216226605837003496882610039468930536334889076756581011130480257734597722388310757019524307895988073840403253470583478139111266734287178085412514281823437294438925323190872832610129954556458860579624540198760906255175802003409879507574907606857782719515828668598034386875757652433185442036187518291295039888047047389063551789790852703937386446971626991079691794163816975280060551620011005821238353110729724255039916562078623089650882559641723484508480832503765931010505823056797388475580493309416624784913811393251389860003683246933167705917267674051720068285206797827206307051856175086234314193433966287592549184108556371949745360697193685764173717756657172745921822034592389418715569860676879989660159441689829093790409217001867500797053627295875794393724893201878840015788193946272195611139671276937625684853145963699380674418732673058605983711218914232445905169773234554608401791640012110499062252732519978402285370486904247499378367913911512091189725540351577161647280638057803668827678978577411340280199794353303673788525862033249461839748023722289245754922648761363238561579731029359740937759611878666744824604851905856022444946125725778959590318975220281687968619587787489842325141103099425159997391926461404642318643372242450980521756744579856226502546032009807510521544165451406693932698148438741657357012497714700727452039163895762941497042388651647694626462196349105881740396104841562928827263443918983324925598016909825449427533445111725188656449792812190315950736427167484696818373373399213938960134135634388408175646268044543781862420200991560640536938689868307432211069047885341963855660949217721578717246633447387830002523168893526228489404118727031624391853157754438285394274580960111862815772652888394929082658444145275529293115876102705503733630522188456107402283784217769593492003021611150982448599888114482948486903114917230053092596118349454848305764107080852363496220998465364972237663122669215260798163630684231207216172460155883968824714606842491813924294451237886393041137829328564306945104313889053016573900642788343064234555025275892120408124875080962593867699096610492749973873091866697144464988136095623848973965335425693924139255981621275004722076650856953308557177602391469458912436971857427218200753757969815711208439459193490657571318279346943383462012345358723887656813989755974687116555758346399492473145993893352501934768659411600421045178208178621346111963190031387844620136167832558669617872499654573373166090884414106140186189220963540797587364899524913623630734606666697660374248593470857636019671441172225223340035272422211225419715467606405165246543745054652414750689243681648154983780190174783171205455847464279514002113939769915292385564695355575861222910567890512708040842011341951322818170191990250899961358160275493312420443696442131113881176615563294039339585234950493399746254315742368939558298717687543411199343791695606305509147840893927456143527637107315701030416981170852703463295675677316423231810300351112160361535783334995234452104326486918681357897183307409131765782622903775304903862198099359329231686030440547697899725766457083061096976674366665629905454806151674224342386987090830120735645683836001051106569772063684973176587063408399089144351782907112087714746096169949622185361444683927259453585695100721012513383383476310635866883557678052732029198821823296448342828136423937364633025391419681391578289116731153477639530407393890707255074469756842885904476925075853692880222606902017072956731125802742865944508338910459429163320035165175302539866805035598421481281391164177636539531616389058329841385924584768507604492596215775044898445361796628233320980039477440646490094877093388185920386749538804993472578927391492830345643621164622890430450719217283757518932547875493653161177466911416100009326226985079729348133129631788330079089455910917966944969066411137363942375439301389872261830511269561180212853316994113241569290340356941107884475440913739692284886080447748570557780028753731249851743202981063932435537471702397864372852527679724257477575447850138727157990934461600706838175967275165443178181403958446294570806490783328886883181153662762115394978257281567901172481081449440088707272739848831613199398905188388463533766891297938126091156457145310604512918676443505973013243008298420628933766429608362659103068254830129860201348963981838780956572988828991761810885678332756294517956134846267774054654162341426637629461868137310011369018767189744239176378793548946625540648850466026790220132026868275739525610871194633024160894053755985282272467833174239347188076738428403107608354741979601844659948550413302439961826393365961632332732131212243574116189831974508883483733346431000551595428452132737242559161814807640923007394522745244163808882046054336580077704928057970948863360488586095970317906426250240372105834571409651148634732732351146929509613144430291672890349751781496747002991682341377977264037481208811338682864168380831881699369714137045933716755107667205597488852150880480061212093589152980964113534419090654386028064219543755666969988072508788010757324338322467030142968798666364699322534519715374178579373324421747398395868116671742726282141825967003025076342811425243581178425081281151565666454560493098286187790114341262326975555360002710689640366476958323761858265012148391947533974032238151147834159240943213322209837298173122641451797412670076679591099901670652245226171127279137780948914912670532056942782699224329692414949793473962928836615851263115683965849536549952920729155284442915826841693896801324490596176896854390036746156580340244782689170380748898787709911739778869604558644235824997000701378164486486744294149819089227141559935542805343686562649784866784119682616752959220763222668218310824727673580820951231564692396086370070437162319639189710587959030605149802300832230473568684866555177163967147290413060961879688000943760232181700586116095020416907324943087365990806094139093180324081282364396574709621733922257745602565440795423637726957179325216143533191349113171317606956702714257111565215146756381481085423165647175732033825773771971981106770075184956980135734039532444645062649560574205886963622599153329177115234951519398213812033069771534584413879689803033047882337712694988094683545346120062968952406455154925460434412780389333899843391411268152401053830714536555755128082692414244253381819575222429065020276130918005975360521382839305175435344761138931024939149977812672260505446961221586667603715924672993421970451764469371302260449912116939362966244852800183521596175642588904393669787116085525046684664462404275000017459184740781104519791470515153907685307284781617683995633732441253664265245784882414140784991721391989111934457740302448769216692108970206043701026958269891391910890499765813347563239361893553113026535087065654035531602725874484371196266632232680055034559135938765326121361677813012003860352266876237913650179740511200134433459484300906993212453629292577385832932367427430178412039675610107489136474121472573516264220664299267682453287924150260217626293166773462498791658114508903604748544337548843002587960534561860074994459998287626830391815497524571082050489066957603678239888430086945373335453569637275891487109860552180390968535948123957024557073555378040225310197780844818179233680883630696620243418606381159004977959428347344441691956724492312376038760820920205011243708698859367904768155598285987613628571664260264563455421205339822018428281015012527807862237828792788526613221284918129991883476661364518608229764472994096979697737284090228441557359216737038852009313202381981005230396013481275748516915082148081458726098158636656464102006515428125349420287480436964659411494203010815468333469944173426165057276440930016332365145827318160596843666586527311654023561284124250092260123180492397672768911948631229978524564746325775400764848600314864130425884274604347859574699670925341374032354137970268668299224509193015359493215890239892721941382271395990315639224824955923038488555419325808155202393329961085937728928594369677070469691107382383520070739835387227717848874681123634626605864532510521352911262655400430966324281523318587347554998362158214163678928961156003932612416479575463651410344070663661107263561801400735237743162461517013541741395024176282651177922734786381731214156274457349633030738832179267252908337238759695984998281496552866857437427645452347351825483022843915166663054136073286341243186200432787506596960151073862245840705951969646041458271665787578563684313569375567744596932055740172846876068712049765369939901292049137457452265468567284668379709419229977819216919371338742077293759884376996076719537917651752331680319875148816201151215579137518164272591457976978094052164461569363107684316037094521842792517681515709099256242283411212287813670677013551038313308840846734177533450728986416056119032117616351655386223428442997811419528376867892560226934124323416435443190570653858072276297932332555531903841216883513712754832036304081540036984924039010747493641590044138597255802587763741939547549630964445826466012788627171908336465567112189448381844869321877919170628876782217436426569894581386791884777676427460685605443769638352305022278665772876053658410463185289458987801840718399302756223853188567090783910727320463111754534041466730695853261375908704740124296038759962079396633125682003736141480097584488341708997468745047139897899414418545170447166827420593750825344920271796485345429205726556046952564112673017278931465058386721901152260442661643889506042486909393472201267680573656926976612802191556796734104075011772277777024296011194244996764259953833634983105366314175387904360406763279112249504508805253695237159436115861103752672894083535357385916688170157129637175785014661292243967688558740323345866824273534473924037595566378276870717119279603407374621788374806324122070215682343594191745614104972010620312972100116905468592521335072611117757845785698743260421707985215291218016072382047205886885592015395639070912474804950876796870692872781847077737560579840250673266265381352239754637481073919221107936723718411663419327015529101989004516506169710791511605965224468061485557446375732843962903956658921717548898647417315587037788004251871007486703457916265228287018078836537736913638699522646026892166473979018717524104840186288388254783799106784838104402688290692920740528248151006539464944614204311326083410185892220986508539766853394263101529772932905203579916909699774231504631126962267625669212516054499706876759298797602614751411799793742456361770993327413233496788186959251392056374962890850812982580995634362090078054394173877380008741380804277389597777483782238262313203436737925187246158694596940379496884055159158993218084524217469468844922760548496235375312176627151709567021660545885232009049477545569744054067605295194477371378617239942189315670419975894180212029030746040743763926562081947246370308547350041924393341338052978196695921191336754451826121967780131108268888946998835707958161696430334242610923845138596212159430654369976056168739458839291422774904914292912692260937814501277766268618117135453237785573747162605311506028386876617304839224413933240759422305690051081247051158689001740761557527754029583054967713610772289724272321524092158587837062090208743270957221831174425877954856696999696567616095391291566114403464325819152400795628056213907154033991947210551935963041817374057698203731517350481496703908012970967384084634126587813522322254601177636517739202804373922611894333074970586271749109289452553650124293264992023361215396162362461175329019917794953781803380456182162249212642029138549861734464858869584152023770418384344232437692998723296125203872930789748780681446956412425090109252935013768905869391618859199943392511839832349071339892022580196063244675810325496350467255169989809719551346164122122036416109430387622428614919986905646538411434836943682159847391666301363942786042851399006324039572587675649697853368092229054442912805918170340596101821758632138463430094037836933801732368249395147287051058702032040608684257090846676819873117953965642418003167752626231839575925691255958472788604067190163263270929726347736454451493574593233163524755525703861693555809019657778463477633199029427604807599266867372325287114361398354854132343387175253408019220542587482274333355165870790389678838010052565942637453513886286207989130382363353441225480904824371915793355122381980552799546928825991070653698084575058393276143675253176261376086011543689846003166340268309870666979855162727273506015534446510849565983429546986052688948233282066120486084711324190398924519953200729087305075528162593279478348631962497369292683399759453935490663392497450952939423076986736091882311165295398417975549161196961922170585346595395942350647351480483497857076024504481004868041985317327563374929538714351307052702297527453588459346780254447658626210202901567141419764785060052535122557985246539762696333619498634716392460886534893385590164931517173950050151964011444703042855329180975068887955363568625861035854722958444998585019250864493936176398212784149232847949887005712512574668662703336446571211032291245103438132264260587207819609650462791365204678536342292546124386188983466015108958019769177510040260652351267976207981104202161870659869413516009753159836069797757605508407438263926150314960815553806934495218996633385268806485268227683967935151364212644118864972094744568443238217706826079094017210254997949239354279361990624403424559865027947562224234125064366775362681544280660764007903733801410548178586326203169301631130943351869216916154798668107740784927335193464496336304502723743158283201449422743293814126907386696528317260532954421232501929841604959736588250543197955305787187430297802986473671873339893043223792948206699820818197063986997999738836509822685775278002568978542665354503708091551846906550392739864950401585689157578645918220389634238671682613546273272328037333143118945685854954006422346959748350856840068988689556885835647344888076351660567788876674203191594084681441792997334481869864302790913877187916707841694940063219955517206449974099862212009637678898773000944894113304647326817808109735036218249554656948469720475546832643105292662681115172315202156790022988966690824397874436391414183703597852120326433934546696199672607672973309825624643731695258656503119652074684580887535867965708698513286872747142388166028892584704971772217713410823065588410907745933104099630191369797822841568748410256651418751016551008545633630132548768947890586083237633252377531885873206323880870638188281426996199867303836047761854429227114082629147554424892275160838673587506462498993311659460793655682111037954419885577782450444594265525662060692772067834958774886219566471330550442915521120768732070640808319021051625965747347344938210012805016490001606662528592483881468136890045483632624318403308243064905853527754953673874834211761373027043370160864719238642260489517424641891751718138451302807659978862311247861790445847450859346176181396939588242606760469693655316811365061612244473369815149860197824926325005110471934310301383500272962787036275849998363808040825561582949834601242431378320323189720267841170522942241503116131574911057129188251598110564338075693805384948804489355323997197332684984688069755020566748635665700170988438904568636701516176985429137142601215374616415638417799250300148533019127587118951821844188729190849835053350700737108419264041216866638928058562881504595050648388692435832059980534666129461368659069426095091209720332870821194919265112176200165666799216512706232356679615529856614269532952104986680509198080260158380808301187962724464044736153933463517081700849983304300843395642439481175637010949065955064051862991158073240602359404596650019819567588509760085487949827798578507102248125185746315952900601396672759759950319137179816715653255952977330945358194831753024938344582110962442272132050875958474765518500559190244160892785179740599442258843425299129830556233961211551668607447523558507791030674742840411635576971117907087443834583446366555006143508015943656309238485898052875369305980478188471249970263216641307449883352118671059059172801898434995178994276116285887683197226111149167761094861851135881082328752303111649409722466656079097909505608858619755988775539658941926958495909544782715912214652345323661390816384749658175933422956649438583603561283719109684929996044801801259808050279028598912318658147284271791390036354275066629573231100218104250226033994730519854757272183919599874035671477710862415509274952487236436117708026278229010087194728840641792296494960665016101089711238412596039848582847779422148920667169511084796446304737027021350906787981275461401307461334837170287183180574559293334179159281138021487447797657908111589628444927034627313071587480777953852234919307036545831030772204689551734554621600517973629014265208300393648248860221415236034357877556493835511247209078925589081962204521734793485982220622880135662872521968081284555178654897254009853006289339110052851884031374858500096951330470541579642247560846931322549034183287329664524249954132598386959015865253997168453103888437668094709396486475154864505343051697047558039129411786182836878108079292233779265533953673271733382395375516247275498929375811461977624614586575590682151552725092856697473187959592867478032234055701683890843359645675436597924976980115394466389399109144976221069569101940561366140476604419838166087327767861346070296100770228846112977930875274090992794302276533507473481952931795378667601486641516674910778623636352283872106698644812792742971584437120225617837376914934932095320924397860233409232051019759286382449015455018488308517938531841286632467838445701461037229435957100102160857847416348674741789373378949163428963330994130208033331340136083974562718973110020549783268476339939968225095803535390593798233845568152619825512375346727020903761745046989755264086060880042129695950776993377524038225796352107826900034187242826268208451395047233970324513494844606166127625536724783295193292100370295444968866990039598410492767410533137599623980714730628571009141365535179917213470667521481739222960230832343914061839878529406427237127079950339119082792907388009857707462850182256032725964236432087454478896949361692888457118952360706103045455819065070339237092960220633274490955198729941218653963819811830297223410391557071929613085268139184200162511217121136572860395600629646282427113276234532473911780613612306860526487326541301761100836904427366855103701710710682828366263062575775933304887380340661076483369476990846778381222531703640985339566551892773118021965297657682300917254951336272868897631085599671908974632346180518982185019455198377667652732352394925463785476948084119776788645455115833423703032742063342502820838221384271228367509509631242018447974929957605839887500927965170605590492066827636947894555470768597043932777365024418693635256843900815843489655512865857708855727329206816710401037560237737127173304040255041977827043692165460125077826287461691831310279121349310463694456421424784808890979949562564057952966984459467360610115445524406595974433889757426339775668856132140598028997022323552685007331821243121882238814689118203663933517749052728599429679578780122753263056965022027825828618345133892310986969476512154682879892038659999186022277687914696291146577954567964596768294619960614193118721527070692191748416853688108720482015430450871021958769858935104523730361523662511241364431911959533426671385607190530382960794884930056475616891354040846383329165278832143094703284994097492489718609512191634804910886054958720774094557318783515583626631949871815664364422846913143731720073691068700645545524701478110443864881069950314780194575086759004796638060410768189928514853293046157575929977782595274121436731402785837011929382729391875411526032301359965105542681421402615135421729086427348790320895546696915318174120732218691595579457053564260144482053057433101822180698316770798183881163672521719908307277306949163682109272271459409284854133484743785808935279637584574426288934158514728424388869154448531269700187823911384725486275410427244650067290183834676034118098310485545791486937310672582538494427947048191348648350475570137989620696357403853822923273707083437328948017269243655217600945193488284472059896167300351180567062100811813416543723423654337963029818489957799185259325751140205273630303842618957045607223453854450608720536359946157977633464607041354869563210968868861274480633304778206204065866634098509943252703081578540384276884010855974785889498913639468886047447855309864588344823657604532072251095803549456728329107460092569637975774008259435514185864625167831457436718485279780506200214893426914561155021205904038234104921110278579757391444790202864562034571368604751255802871436906512245089728212385279128071384261924487280221674112840120440670892008193464113296515556342842186802989286132914103541987926455854368669219139104410054748153629580236741434824544437870473529098219527770194604957426618570009438717104297542375785425217123846898970899521973326016391316794931174575910083835343357756867362442158797336954833786181323494218995271680595215595893422492715381132336136228863945656774611008868556962943663935727846632424427392879377246463414060719499336565239715220393352994060328035038594229392892324325155239534194503201271197846994490359144882190235413550089629265775866954563378690626327211560879436331287623159285205289690916762596252515659319999550949645289480354064857327881776392216660601026003983414715832538564782067548089543381537291948070567287232310790219686039327899628709864710158669668440646970256323112028095359968981383177208877701142919004425189526402197284977534598106426924477698807454100356504737957813590855194775201100094318097107469211678009485126630847811617326346985886769929683485164051838062383540115028572666779861833535627836406321781898079714370584751665830616763853881650883215902524980403487244758429830803022094442848958697416894352582827384385562249162308455304951635109005341144551071396040208891404485842200656981825694555598347031310792583692909848257985009033387587248970322616311309403332803019956138705414617964505631491035935880568013192791105398851029743936035028078395966409687278489153815350710309489613903749114901419311563241645552785505379712265507616037432616397154259556164206944860504014548717294333167623438790146023873508914672665661966886832962332527066533359937099363955820685549936811445776288530939845546118275668265202532920176879597182998403660340318163206059850615959954184270021484692633262879045884960068950199532989218157939848975572162003897307873799144035367885702099589082655574532122061316172213918496663079513340860254843268077514123483982692563878269671220014668197853922202725682488282796540452664257754406699978471769484597382428711197746384613360146338755709152861327787292962619910524542225242575470232651538757631469413703747721586123751578571897273437573472043359828186008658207342143393413410692439360073964344613300199681373054414584591336528661456635531874031875597659143677068113428432610934042253260768574791768980054574303921974418704064299670595436709511495068505187098163950668193738296503220537737630245529081991941362044061826282528198857961003840200959465564690125529821528583519469844924659901440300119685132264962697522912141721109767442438430973836633563435804233639478854406536108518645227446520180028663145822264286045051989619272923384208128134619852734888064706368392690773576057926639207805199048690722406738388486366578783292511324300883747909580326290120005907266313524651624138649223467393895329738984134062944701959655579515416537977994613459126561151302053228144154594576455621593054440734237817596407888464841608588417625567349751669169385182638398130567936946931661826748664049227485121233889341865701714171879279067721084159430750260520024852040288765754253626671707616976377118560218166000365727131550369963088972414234511510316487804587189498315384243666170308380854556833479739304896969153741446296438848812139318355971949455791867213574032825042828815807606903227678093496632965703854439674732589434846091523223317476410281846086514527931293432935470055400477976604829002201352110404449546103887384615881624014838604386982655480342736304140696676199252704098748328262507734893091873440980679657911644491472546921880941664959214259883242912278585548190927138853790111783099285601979022797242858002365738571775555113176056578400924905880606729607064148995753023259160400147350708723841183548011847350084232950900961711529958741159844257363159930484116686307564368836333203970072368252478497492599507404401962078815776968824268297638420231281696290856717449254191525233478527594017261166452536617878136385438535843920764777045963354361953558072426454118339141366809025109611642224960082455913612794918817734445147231336518809307174857293636417248285102209680932481225452197351427160289860954381046564568060761971316042631237809979485311433218091793694154442332350501886100603112830891175869931892192346502228222080955795294175328877868099394431131270288079976762507735755028170024602676673235459120866253887348294940459859064273708311268948247537755099817450330762521715124253619331974980243367921816340387801393766235197674965940483435068787056639710559799611927526340543082265184957842499767506828166961766863928685640988904948097627877403383716199506729295627201423344825338036481267343886469539781616038671186662297724515109470043860071139888802789917087115205570117041677395337616772358010001125364808219211709576829031406267056400228668148906419104429879299555923785418670520447322269100723470589443249991848331450995487191119760037316682504336927638566059057407043932017125532443965261159678323674888698357014419746543395316113983745074336236145132861381458487697424728512468297032898624570696576707317417812867737094092217056999626860561388088887541270276216133377117259606922197995957393485945900842007887892391369024517822253778652773298566330762416708333638509755794990255291836077100924963218315797941193141260900977044854372927584001888670184942434024222186751546361584022540028617578126352479079048009326568701297613385820408591004854012452818055149375225356032909678147195783178187480332618823427014569097662696523140602369010556925578478762040606911984118170972776575638707830883189365143323189833974269986935710465754959326017459033976077491382120186610572184358500987178033749505621089968629178255701980106196976240203294748655888325627553233112427864700015741598786406876760143651972936424609132107788940934197721213902727455733699867370244575323883365590670728158583996027949785671444104295542012713668689819585872101436884534458499901041670167062845981157374157902924866067482582927655821416933114629414435933437861562068070104262384935387007934772015893397556862466873545231631992703325813053175741913905255015290648438298253457881842742884171388739873817225702091660497834920979762312944050241369792363106096360136014388192749942657059535096190797021578237870126748327268040819548842655540952389972473833616643234718527157644171316689461746907137866252180459578383587822346059216839769404439083654919747711846148818104632434323004263391793739498319278957273336906739021598785041015129066287509710095930947468006160068231855165598307854767885845492059797546410236432288346429848260875957852666653413337430171975355605985326962468386503660341661305394620814774870996076358863778367750407761393654980891480624269607256093496099075242538792911196263046916246114954323837166324472759214283267064349989345812053916524616163988391944207176931666342168884622061723427408578543647070868168875056566381996510310803189915065281103163645167696894872986456408269434532560318829860049500924622796856282081440227124626728894014174615009306181154671542068652237402123970475183080114731320202314248792863504430333554117432525476010580732459402144371233735277349690853858607057583823098516672819196504188155629316233531984542315250539728827506014638097110826331367941113215298329095438236250705266533956085997695898128730226594883286583440743800453294670450282510057274318745350504657335616681929197611747866923113574157259164763919849163532741304672484398220415717445000727040472522957425872801197067596044939266839003816049928135262928512887674152710748860377136738912184349916823277815435394122892421346043088347687423266863045626910735763470272275806185855680354570775467415533644368669353718673199757567499565099566391130221999494086663565586679143095785239443521215457640400776527851164742530690247586756522043739936915549826936884382913287075941572027995412898630102384082640219798177668177817372937427834969269213725604640368025882011862997676417832058930801325871941162633551303382719676866620616615220784857291446437092889340621145103485578620453760672992335117955049770649977887869422341497295710991294411735599486108910813185458505563546614589884417390678856921504813526987614530178823621565539155817124369863433450555859469934179963634123032989417159806116404666608961539282011224934923980391507641687300356383986238617966591693658304707377586013420140455862924247175130804918777094866549757708765583089447264932185333686823636784048076640079710565727165694601053810788388854644994642599464466185915443462032283014330704312873922492297606671133006325499703503013215683121305536841390171024343146877996007838839626553374594395958143786108100361618699027803496537165365779849733478769156916800297017546248167039944053589698285031639717371985851184579424510394231012795235543677265272718239992908950181869420030232603441460480013796875694161560789916335387740766617385068565201305319108095136893224939047168027676356410625603854920596786329264043963137580739059619055683606140263088346785882572064572865909263541712657198816457134881632326763315870965939751060973781638040852631820570348939650614120586574553475512115105813681656259775374524708319651644948035474023249295741858540553573776372088797377485942430255022402675533776776969026581508072196039821909710454227169294907675459963778467178081293346052432040760048883474042862566503381145371165723195902091048723075041506272229222500092287485097597487099100502324318737551049769084123492754399013612970361599037888670122297276588002048618595089671787937688713307898708431592321837014098914096334691105568135615331751905416158826357021604149057972013300166547251667199494761555372971428256852313802431843105184483392776241812890725329417914303239284634400535221439474316408273551088602745069447466814177405476385140732391870392278743398215851252497170158201281454298850750701820459337011239873270089424865721475813216334844334354697197956383729026189292924891519993715933495181263935871856206316643760696536371571901388914628290190583157750047248820008385972989326271859890481059251035552982611257502996614849812461274114063976508671020881462754687988960757684695462666310598604547038605231118202849587716828589072406931610315278812379081116146307687906347124028002961756672872215320576145863370408167458021563978107153134428477065151926453675751595037491064049177367464565871519608661963060254704863996066469886479539249360341330636018025252499290182214192045227287918951188675547154117341958063980817800437848285185017479346377473404003570703290831824382262139340847843687221333513968119740927896856267903260353581629485461297937188260533428860177046465410193546576783558278251463622535547110649397777026150945976953300166951633682739867456105338497567517630684393446152324101955504118492412187763728356962592597984246086145677413096299843282175708667572795230716391517214037000597103833495497199207753010665446657608593594474548545835756298135340111042142216478267498211655814014671350321092884678789518994685663685752690902413807741750021455810352902399611713957889048907374037937055719285004368387764932042783862141046932533372697777618644843016764809747406187669312725284012040474124126441518739000239853312537106100448742419459952895923073979470232226367810835216749154299832030111525669815843856616726508003078650000349740590031589757422946545312874499993703145717710045736898749536483560024807497264248630422622175687322599866973391860537654879942626543251331167800431111489148733122745841860560254560275531712315462601829801946297031864654788289080810232635720998324146714594401556562016018006885989358314994903039672906042928269126221134402720916951204070188783283725539842832515824068681122447313905030918068046324444000003655346422179919855634431112875861795842783639057195980240371602217704317263799092260344865941810541558185108856458294358766353772819381035048660974746815849704702729972331915978410719347942609522315564826737879780851661957828120435928491945909662721123247052033329448347439834729984873383768492854594016396821299216392019726166917044919687793152975807282883450586600800394968506246840768293083889478689137089358191509791918297599989510807143951291370525684736670506218625041383051067985060775107092964599033966808934552270145156623683404273732544624025744901035498905860121364484559540665734539847043898196187374571194479124336418055176412156607836714853624352615988163703949024725509012478115054877460847179002893817392607531136409378502937443681147098937583905032462242301950987854634835679828831562374908741813945517001966783279268504093977880641413503241039217878571092198948050206629789926923695134104305316763877846885513996403792190967565389346927355764730501986054653971170297839192422674252931788841825632816301487982210015389367959108897204147093380770449320289309300316099953328538188267397840454070126499021617612950895165416219216010544503283347706658048313492602846536716289678812057626904005563357599491633804611609744413402479630914816535659872734043868524476238951348951430918442109257209892521943754979236965988727603221736544080720067693434041321163573510501342254436566781879668503588081144921941547449122845596951617533088853291668108563723911285889623051735116836958664317589631083154196571080904338096556573533832629859669339599714901000542915953327429255131831717843983677533777987846830513597994872106009326925854527160783076995336255262608833222086597893140638939162340800585214166915106249163064119955786726846845155919606061358330190770386164490745638343600084402355518578560560158988313248665364471077543375545950027147280127564628270105637449831952509004269030679991908184994403428078456199128667873806622226243398715984055565149816673060850091633153298838417638792835848995125238777822644686194964371259547639464666958022014720604605517529738987473176320657563176588079341487656424765414361772523765673705306920394890375699902924399912130070719555064608395669092278447498084747212879416667673203164226492545037904808430501440011398251252850909112993583359954133567125731305658634575562901614456716974580156613026260798821552483422794573561326224870771199748548842419331902541531103495517906224772734615692693355055507256258749260177740514448212988122231874241503746308762235457078775856165094070207060265228874840377951843398446579528034616023006891111494336897337845092964751661447084116686037412829011173659668353611487061484753417424284741397687822908363742470057195184835468225051140693152154484271454253480377807724985753756269003251229178496754135212354922122504185313916820889763038291644355532563811951170595231891118679439504971900176911811117206678951187775799847812009756127760500985025286841544767044170846528232809470296870566218978544901592754665428498745219802681249620033216638741095602773665116704056573177997081939531492253208304649936244912426631438547230859522729065587119677807329039626617494997824212124771709725058665298872755284801245564362400651268778974402090684497326221359139051073566733368439731979117535458901084308743632343266050011001155620420743532846155637683326395556315968186468006385057821825208559421654001985699569533731246470854140051789427839263012324358472890593653803596362580220277013793936713397084163749656903386106248092654362784947160871206723728525202123745228798505389591000725861226549115571939633262609971017297002409322718125394403812133500507482160824247480197166336623512190928041226963128381206977110249261436209547909034285196939786039765167378917622949998465123690716073273371857726599557775229318827106267803740001355876284383536181683242349250092304367712034240755187184512175219877865350751171635079847774349541238145957008793188828200110300916996631507954836106992607500266342072421113467068386095738582932070504024053684824708519602464497326138110210199420492377699164581177097683797172374652363803171305091406457721954673991401322677277918846911463177568053312232118567324232379761430454227628079699019401211444744995417634338161865722516395045187196971530087968804259209083904533924507128418761610492872295628873050291221753539705346438932126545768535246243729465729921172051170444640291406065015070794994900353378048684545130216377050880422073462146763330311473676541128832801955585947811952278539828931725326847706415944630422904523759761090175146081766082050364023468941074290628714741990038644731637665084362503353865641031839926258170807017485941771714179630002428545790636829304233847115278120047715075507184552449589083199449140409379578995575932966106491956721069071079626128402005467311798340523251958716813803535056450717809188982898386657186765418073016294244995452579666756541035077580230427524370709961198485409636775375062639477329898681752977157805495034498173675586011946739043186643687716394318424437137576421603590629412184155670984942439837206219407985958718409518233936849580570974754894949253730210040223776398731751813362460894998971388286826741525070962603772864298970600444167325809453949775430997472823183706474140604570727837285301321693780093899007779022458594313828020607329563606560577665726921688970089846878125968170351463018135875398993715381744388839267330180988530496779589415520675527308950640847702007188620905431887107108578491716802270218165066916076540268280363897990639776030424265649089005507427652970668627613486170776123466362650761986085304351212716112327295981154564625220270919267301012733435560084201544226707772153414897653121339314343429041581372241696594175906786667231268102593272107295995124740276680693336564285372593355002937597622811001925178194122432355043011840424892047124243725791623698437858588048218955352825164744090520474252845015664125642518929919278550697308807732279780893282449316880268051199742955262435209046772506148326082742205217194134339443875535751820389011010259331454208301265320693627189491843622196349017747733843693604731024012221799545086574439504754008379511139952281952080784806852321671245212267326964211998333829162566291297845969277413884046491640615518243615955071968784133702004644160851103217162524675133740007554173419663076109642518702227584596467529354576180499072081385022003026648077987657774457150433959750205013766338019234699033095952275907260777863814296420164138431734098399615582924575992993088994707256032822578539592546340867601420332913528826478622748956870402142968499244994303787136295247546453794856946772596598781613149189708353889464061785329567134616666764695707975198515091937419714630808289660908030142105425696255369603976650086878800577236349461857129653368763731103230909019721591580585718949499519731773379588307807081952631318118959474187200977019731774467830309902068949610685390986700490146325750823604029513332666401102278495164768545086966678955701499439620003854315341448624315692482472117045386811673497736964463745617572516796413910772826784206154382195298305821990644990772432630575664379642525660475321926747804865490383919167340650230759042291837477432330563549479319248737919660648413996156223730060743839887378687533474221720510898452277977562738023775244908676293226391054745082431862646019105878605903740443963233805067468156161508470959651181034227395635159615169643468008112072560232522261876476886806570768535747428377968408216003087048164148123216346541169788846375638498547431433080062387023304234550596367777929414373012042733711046162328605871315810866925981308769703900370811419374833102279037123095482437782547617912875207273932792276391983355636943105259326434412994519624801559297920460415418022649019864732480265167677621309031237085063237075542178084947074208955183025272852622925569635881155001777795665484755513373126094472948571306410408792384317775877240835920109477353111100783632791922522527859468037912167933892014624123053534697224619910991306806731304106064975334282243711893458068325908430936053970530407919812518542781815936007288037705194258539285591403838315063776842403843240659944565304072664259208112745563184447250574005269934914232515396241840255385493487854269366907887035344661356915346827198198950805608646303515342252413090188982395721301607849711694738867458848593365950665714482443571102405066435610353793981244452100732809070401415390090037396039227676042808982366641309845666117633958135889689675885905385667969611821514202342457947245264472217011967623191982533467010905648863182377941988431992759512690947876103584980709639796684423417831238196044733851255998941574441922800735882594092100451477020118615375785509815388025780669151081224398970813842189706580114664486413706025120303695585121921780216307423882216632823795030316445817466392857877253532927863559348584190369755282968763221847649027074157912946495337308419456848964025309827883484979228772798567516920662794975982914208456735707530681932954326313491535492357977372896812799920377933111198618187197334838241650172349633502500527597464225385733713812047249498060692131163685955141200877911825317678232896700964487988055508837636200017038799529176192286011178423562847081975600144647261963501883084054868262562600417565434402788800194112539271145491204199842785157982613923573993034803828438534698192462758863236029979664983346782994054096816308191285634738219467700390118802372683040251179235025299525443806272514491882740376117165207559559091338261377830890726468180145543720916235482285560736700974339695701419675848098002936176722381416502977245667885199375473890884503818457585799271100125872187603162436284702138722948188265365517586519138516778318155951099069986359035082949980072202066943716074983169478403529861456871925998328110875782368469288951769615338216001373836191609485110512099093366396683622445716018161061810467959151425255050203987425879152118817959842526750479487493826234113534048654054773771718488934294182168333477312638691022092464037653761976728103733637530689897489521348142809317922793572463984156918664766192793317702092015141365130324904318080488893863958586280883597643774370746319093717857482999951422870856902697073876741606964785535048379734906500033494466593737190238160551364784144020545563633855064715974521558864027118348180608002251502353820053978505098033790408957201968049007532734698932404285360564168300923377958217441601763720428012801021980301106536114255233131419035407542907337496626084132052480330122469545873263344769068840093959442834269330644846173222096542114728147401904165849229805327626048029224068783037203451411572750935015990822388409987875930384047341923660911506089852502239164443886333829524021615902578223203475000248607317281630210470467538254389768790924828795654336887192305507712258201409437508140325252358700173112983935904215063147871015737926374592764814059177704660427440610155396500368314630676691712219606404235224063202608337951487927678724938448242919900068387640330444170976882014213410713728222555838985187435188496460357204439029660255855629023572512984501671587362869598433209697381216051216790982374350098100090009147225832154320017041034660492837147284974617206798234338379736186685285105159932228056976371793699852520019026622778193330049763614728252936789248307294892934407234258350056937358125957903338666959450456031210660776619829311961706998069315579355490087425688405813592459925282677281771606764023626241949526902617799754649288217030278866103280036183221021570898400311579472533758399061550857950290817122938695792156765854052847765401481469963955857134898809436104303021839044390760479404509792413888537446646418237373934526684214181840055935464340302815269826104495438065368069438226176908338309582703898423932456549088042808724882154421841858934926789987471758228530997077030731898385496283629776579005290409087042714108194133552578558868286080601151473178199730480183885089523003330461843109616342582427513124399076045706124304323758948402684178411193510840289670185466671682068558698586823804868615813716064877738168012354294095135313394962825327950077241550951688656113848905027166658117614240967352837607287087143237691118537423475686644225104244794243916294840474238533386891436297511732685783298187533052720655208175891666135584982366934638421669649595042645433193651566292535473351356734866353510579618684883116607415250716403661261149962633300703291705871065879129733028251216883824403572437112316466115390595934928325159251366214756931961098277901266212969904896234558549170150243582180398809898138818862398979469190522407448277864935905023903890735026781839254148064241147556502157309513321816357665613164601259313219200961494685247510428491266854116749053932430681166879079439587685051222699944358222779625249759950278609074533961518125178768348589213195171118644947883796336782428783815265680560146983851831752531679231743476642650694516062533469325807636588757589706802936865473624647921082970166168290875323131084206435664042935595694353024655646905354485302039142685519644680389912154703626558804094035372067512381027848524207391614772361751770379157350714556509410883273552576881575174795059117388318111492203483176556949024747432564885923731534230825872329168076648227270267189127607367608818005328693476041859340630807759923223086585184635766652087306672522768423113374352808341620579706952938147764615018260462760670688346168093388241501712293894749446043305718208794661281195212820373841357011827845110888856929946730599108868391458277406778162021575920877708406270235869197122846399813463532965293924528896468358676655740761750650774257350380042011875563878801456441024045770072598605569362797902656672334591530454061569811567268643254823533165824558763607145712900212581532149564249457021794045139457332492713602671469760403722925343258155928124426765521528660755699652788468504736052780661435683076858270088869353154593931094717890204641345837493807918050368186539004149170602701384971770664262245184069170862153164407995246390764643809983420613610269018722778490917385468361452405369145594070194812281306996677734280605536811661082287410352654632712756104743486105334122495108821015175157829264333662729452330025451481892898670149796002216579874504487455264996244203942980242353716004577607556641951472602695721371671772340378477455831516825029031631383045509093291074278775549437275092692514573669021487732396759002885586226626518802564257566554181511516731047776698122375393866829967459942894494685996937683191491924245189874635878581694129803603463120099555860010781294517864536020309129189204425684836151159700628381872373079673887026690969324309750641759022438988857011045413868214816810873849595101183077986168242308376550680960756392921728231337530222849561624289291490231052877614129853083611575085468560029036351706302465535418955451420590428846742602606753635132691073658032389491991450048009713984251541757749401228624091628247626704623186656426076007829589950654077416150310096848280226472170777868680196273243542357627080354935538864542437200789252130641964451925530383600666424119304646461722978128735745797702043007023684550108628020727076147509260066323252739512031843998742126235024654253560216301969719993446475140958114782912240804664874666562621383088166942526188335302471115580149673484552908600180466725813416678783485403006363000365448765145405164577306230048936538814432938612646314473252195102702536381693349911189017950284733794799378944461494899062904290840939148506721759115830025384649743907939192324711093247184462820023108102169559242166487240551670341189122710573300319586543916489120161966203575136064118415081741816627054644580350973970981555778305215725333156322519386659610108899150140078807926207523579026613076599711417422004450424829840978201614663448253977167983825265911235246910135465123897433496371020312734486800142976599440434939674368849307044560088076643102261601129155661225342678745000304286261976609183251168109694647440534032724077985922933415245495797630581693932671609574432205237966183684429558219455611768461668722944971694425333138836606473841518903018949193296009912692036829623905786710660276830267239044339972360901902994939384470531142120705522675602968684653506345597012521063553806808934989946131231122470382585030138748185603791638446241573402944731155227726848702336587706116073503751466452004852145754527631668173455128860658548993319012676652411488821295565169737329763998241634014584549282971822599898660460836605868525713432525746333305098871050605031362521134750937455248165994949465187578577807053023585395274591562391528174587432104362441938043302339168916426508254349437064909055400053215282688207829354380766375819944832219507789819129516693806278909021292911634382019762013959853430421133565732387227521841835771830151399975962434436115659623384431493842583659843563199686320500077987773143449645755973054072685344242268474276187165435782328524921048053187487537429800376255268127338168918909482699316122861613137277283354415785848760409367232683316527446778727666608511463088775005473673516051621867471416389223774363044931409493932385638278837384843814205737614155602232878306993225595940468151161349728255465882308209099025803278195617061118606760964027514111999996870569234420041685878502145979916480716752369236385103481236601743298618009618825642007893957222025158774228654424589990074262627173461618729877647444981607964972583139694579966876291747070411757949298634748131739168295359479833691299402296916496566567844779530692007936038164553928774089900219489178877697134767510294962071657262228212360013709035597857226856986426642089539523802490264768321474296510733995939944442380701290867584814300948742368571172300978057950784885121699187874364215986709226883744182433487096411812669156998636699532424835040097378252498056790541802604056499612305172835290640637980000786833358376550889625312595613292069606209893912106315210350443660331281152130538050397227459692643697592234493630054822544861983446506064895642191889199406376424889098739371535759797638623683164571004373373589325435226333430439285745189392826040273430101749194094615549210718594713654201876811625448270179152148023176207182942268311116187902395144862306026635391825668159997886797152909622837077248344550103700046548833554723095589121309855379390694796472863994509538953059751510919040277360758365078728924563547615993659324748824300359142186092615716191644155442677153404347664347165039457325167031197499302887501593027098598686158189951479110435371323621402007330404832121723432064722948332604224024836858530672666258159311618097137223991637970089021298130974397802278694398426313493848856270973383900901077028184477997420928923476610982695289109637349071466269770577226097297902332315408448605023767402521348839872740186913881741264823952022367291367816233216954677600461696099197073965577101235367723417314642553853685276618310461482218219112289083670276628268722465174596428030550192745926925035706652033394035700364825948796720079610841093002739993087484079782807045897331160718285614170073892972425422364700026866599099833806873243736908476509936513451685779415554638615605286749204247165973796848378240096376986553573619986680591026900066553556169653732934215526988274959845348179015437623331293912997448684398825347657898352261521099109788205608822086055262107325583618257229680984559772936516075770465950891550051522131143368976238351969754501758196516301812403006092182657634672451418741164962744365717390200129323187191302696085215915082838014057716762810128978287388263742427900772248481245658928445363822866874983801745924528384374949138373465120015541421667474691279032781443124849758670122842233443480614642475464800431748502370207869856791546641988348016910020539686669728519002108711763255017272356657866220244533629726091506130522011473353201963003037773363158984533405709447443894653136443476563670623093873376417231830278726731763423379154736139302506815832149523286411329203870930130284556573891235616108223493725665464594257224493405440568349737050552426240041566106818314627487242979331684912713077837313927422169100083330611215365634873937677132787349931717007455251047852515794865039102932138794279585033427571584723995738223793551217150764814994884317871539344349105261983424519464901480505980606725961786614056281548919205247799887552720993481619272812158946253506268367822545124578539589778002324311497572782434463075438735900248305392762924192703775426954114080171961795158493996781979096746160014352641302923066432271890321907791994377985958875354925721351661545001211984295771575331548420298064396183306930936221699992072098492333513533131755921705387385704452202065483297536043261882879612916794964750142889576682577552788219566328172355966430967952338005430330991507791092652414380066293337108080217466373733921345781643053298675838561877245349798819049308539510550541346603549831446531851960199744487884447165660334003111620157382746835682068194108471404959053736324183386163329018715279765490315961503178624477195466902719474167495785250246299668764135924722388337778349168720742825466411865826816181114830736220491401702243617116187510338996851481832091775843182830469881779541875071688703602780931336128868459658448927856597632079709366413962131197803243669456761165825130871843947128398337588331897194319962982876900413138955751244001616268797619241395186047509260154863655068857320940310019698580528596662610355416197514121851624968636243279329645695807951291311153007250752231108629090765080214038215661347272093038026696933908420039413436979116312507338066841413736908979315211475569795517728795315530917380141939255321686023505004377861003904634132140941483855691117630946127145704304052825831073547768813260020995067206523265640242741527761826123044475352880764499853681110706797439086232172476812847926139363973078726683187930779183907029420141490207673468068512497259886276671569346664134557767588471942382801706001717109525604607707327274100053018126792917152878988776079880468841841337695262971402659421534698989198774615358636285884881662426741611777792537987608360888199610724838038913145001952592043105210608518640883891422951637853059296945479221817075725931739427128024007566928683145034319746624973587065245114783795839817873677921770662575884172368405874103491129037435838384641895663511731798784933466571830681322022750779880314860732293770083739637457864711662270111839534199096747420831772739162358666768000789602334494076631048047627210283268452724017330208313230456306869593779095343149870448675847157846053355393467317507964541150738582304894752583147117799860753325568486174661030450721058009484760237207608444426903595930740143512694330782939431110518247063449832128398148627050107456666746568003038160917736308735398455706001290641550041611007596419038923270565719569570910565410895952002864386362981795794275912667701809720886892214863076723001400356182082096422286992187256304668648760860033614803346517104923573683871690614845343732399815645322921999552972635186579567537206604470420150665449320069513572960407436618983434759396073558328729876843063192075269342436538072086391913846886655911150573988201200324860821000300528722248790968811860055447794558464405695997305505194660075919992801755221588132743742999330651578551838844331893691046338900854849454414218994119311177899852727118925784757373035950273252513526054050552701275945387738549101880801332470620132801640152092701762509406809308512157378728718478668793003981184316288208980643202104090131388786117397779733651388441059725868324856190923290396375255698595685035631960193086817219151641492970520496386097109276167650665398703343949924640441741693950083663875768363085175545812102254385193678360636838140716957478024601240711083356000921770992085930996814210811087571423561984312580666362272403459044525662489309671861180452488435214023389137899981241010872445232139294876966366016141755114293579540486114187405667630058299190566796312307425436179071905424383516023137997906929409624987382836541487860534248777218611433332894782532954166918762748500230863133926152591974069056448686039601202303604728922826946869365978457851593247301650748879897472215741959814670979690853488906565343893584763399645192236289727568417092904366908450592317919009168534247598654674833626072576140688878185971500979754811388945910442398711637868719172125896740657481388942637818812862960743080589427184046702459334914725855340309679239258371747403072118691034975042081121119654853281260616994134189449395878259624867953385476414498248599351949989231106866974537597092430008132255348485743945069224036876263866466911088065094676773684881773063188909876380913983149682724443717281643561507405607165425704857606337417795645364461651716443131883915341733181114624801518831643945986061358564353953347951473367717418702847949242557727716802184970536874421385192736331406439135259742535533124282937324792827782578888444519660768313265008562233901798652895062970695392066687166721331741419686966002940404759009857969322118596057759543820658977151116836320518500015495411363703914585306433461518605395527272493005275334820776167426861650908781824922697936932198950246207724697462374771247110120360335479543960183639787880679050585997118788608676114211768906702294008763992014415318226393075806228358399039374173160832361880478152121947245637200335403382124007407914088068282301484974411947238238219978176056533297631420295154240943939592524799361374719494778800714030275275830812048344360657606894947830211634772483477947245036082908627699269363083128626098969340684594823024099314101813532468275951149276825994708631426787024110127422839001944074863849511985386509994699133009059613810727841437693990417889582609832730755138570321358345565971733490165492810834492114882172898629664534493586067955179171378860640755833129468566552150396896677601794441114491708356838519726191517551820753805549369567559997413507132938289293622957038087509786799282670296785648731909381211218863467276637194508149713217909621969660781633013326345167968240366288547802511502038459825669384610474914568512130589629879701295923730993398445737153573134141782759096968469125220578467712929302059535739652625177540562919862024304381392133709743728223043256533784148319368956003643126480709510909850438219912091554610657857086141298730128510726589582934024597868608452036610364861440641903028011943582977472464862557262759713212756564888078274414337754560506404217207232656040676335347359845157903364068757048118470641734657930132519809918773191462494740914535455122973679833119520161597904651634692317151538655690966428872026085101251189056465958862052581366302108281185199522722081428211257890690994658027387383751217038203210467727297913605033240377662034037853172307552664550258176292627182400884169644728482383809908217962851469675130167541563704967738025907454828830695988365383743102132094449707014249135850724922257905128590292448427296218629516826974822466648268623397315502512082417008636314908113953638896923552900186407971044284774538981861804529242379317625993220575645335673894009179443919476983270569820394450877104694714950547432570094699774498112543860952309597922521755626155226728059194966107600633554665612359040922985056189344329249783863007600767538486473170499672742770841452851600537758074965657693955518044671730000090372239959912657781262090373208721423410694705346194069163493219852828030388208013821832861205980873236047114958539446991484783673458961272398308488891288159192249361185533225408461649990690261863882874129174020465463928413714167778550518134368555640322089910864222843644541303985243835933982210932413054362134394919730831527206006051932928216213983774539380173824738168310305345164740626732872073580996789290543483435959745012303612645652855186866650544456295562697333899297341121005688383427602156140137774693370673307563817450423275284729905874773680050830003477380437330535204442317930084700203983741708533649281212720686702196473887861789865584581074791496308545205869813267866349063348775644587260700903940599084873361026437995163823317737644893959602844286857607349044873088018404066695210576348133556284433950733799348852253372114443379106811770850091159936444079300297159474149690428905596919722769380445200996958431001764177135889692205862196128824710194088776388908502749503303157878814487428949601216690170627189249869856545839042809083474388279225644906086807814669509823179988267632510979711489117366684287801345171266363811684775637920947170469488932948875376646970427562415821972658100314294933574164109850834430396305767199754756227133331961104528237135841906489661988992385092505792512731141975866836199197597493516794356745129559852509244609731899665355223788096449538829256965400231814503027404770206499799347192607555252764245697659751713254823515490710713949772927037589840650672200138102066819361358575776078352826469599277898478608000553591235166200599833910814464949278296918849527085179707891772754274737150444328990965003911171968347577855721971425092123082147992651800454787439873281071242805878145964058549215249128820730231986685947711680790648089363634351283229107490523416856812388803591954499789321430105818078453981746483117194267719423414914790011511666119674407082361329493650690225046869930097668545521218556078558545035985976653445009498481776780955590419451668445547094675448013160013922409460827986053365502191741819137966835615841077261576666068597310447183600360896659832304641600436097850615827487981098942553246343101229466784356376925057710882673804241024958162955397374770349130314556105801236769082532447572448621094166000120200034281139136319103032422061004683611161712319358241994996864308869319798290649727445337407698314850093444102104073269788088666296399643874878226245279266921215799458372509688748441736660254927780355019118564262741431916500814031264034645087323474972993313971697170097205748832836197666195823901087982129783914686066926150167429717089268000429537576319931025878301513407466423513771725958265099578465069384820578268414568824647527770852898896166129316925632785414322698330673266910608983908453575862492773619877101618235211781119968751866128370378813507016792971297699391093045396537804237924576621523984758876912396782737809631338655415340247041468325279213575127394351142491924025044804621872040812266878838162243459847473425772966364542869544242148531592101101838177487388839737642194277147559690267790563364848044155780337401538116843361505254693910194965933741903715502833091186935658275021976238926582448692063977914279013221800428343433350913944931121249460679728524757616944570816621611718145579296173089058519007888848976424440710643659245531603602329128164605020882174287258981734838840160088094176717673982306672480937567504594792743940726631014332199445994271380892489779219916554308578308888928016980971173369069989467863909398494912154701779181992962763708816342810324259498209909731940625219126574373856343608921990042033413690820466731457930755102879397110004552359618347759813344525829145244986305844535195282764100428161328735880509825656973963871049312277027568532059679576859575237512221600478876036301534291619865185773685076833514285632019275262032367017068777465103694983193445046274425107089612532092374854283841922538495892654812784456333544160919620612293886398275152674788179287451251367537045867648909875525830363345647552765077755884649281626504954170743095513288776971651882497109239467398736588857473067150547686041719360767656491953254119397246720926548098541016477203890852019706031596166690117708958558440660867530470008837965556432502648420964128542441535512322715804359365824466090661160982444800099792544097023064452116719095191074847281817255531259956608768190591486496866361099927842297252043688848326662988958993741148294671934504625276181800649985850094901160039294174093355680534692445689927812991599287565463766604975206475099057349677898394485426339361578593824302484112786970548715219633299422801033329126915440037849849648615415514951110684779086028045445551741434270170139826067026913447997862249961279437610295938535727906387989526668352914686483408087449973478770677457243645883496967973564844573672589286833997081728299387143980929770137887670470001262974356317441364668640570434188039377465385807694111330519710416081797673920522033144795066489271634447056169480136054519164863932192971367603406218067555515228813369139022368486654228464584038248055258583882531296833529471745998344723688457112482757970997101489207891350004515232539823863748215275493341979187502261330278503962663341465366873349645784879446850283338462348759514549161392239137143383787688460506334052423169981904493638460113503028366095504237263006987042262250312840296787792608309543413225562419573367415796277300350338562001702769619310333898523036443561122694944263623489342654176286844801691934776225083678780413984649846864134786159939993184480238876853933467481113827579967012431932791466914018351591901783958139909228463761116105047609333912374412932112559303765463159703234184933055235667522235406497345213609390859490439516546861859094078492493323842904839922780851716926688779744093818258270814602924595041480860409628395571162626282952334637517533448431032432562718389844926369709844497914412872076131729675369525004286931315489970471232328738052588824056546046175428621711893651222897573726825350022545283037783921702567513458638997652782233378280867227648746187694003199764814784118942030393673850612756380186495679957000030395272951950551380354344547058103451696257187800673880777055913559892207464587151945911587416724946047920843851423532946425718056230948144080569643251419005107490999012663653178670786164074694173127451261230670081229840636953160545213567672014670534701977671431091816302330356551332805350042745364164026898118961900536915580332265793381144860021310509050605432000494841731954036094747879351663341226642407956900580985130289630524336593686154371392681119103676522898825086987216289022587284986869003958662763873845462356720942264584326844353928285588855989085342800675393079754818596009468072573494033903173702985056774601487801101774931668413162145357270491062280073677300103880396345037973307739916534163435067540372202727411546438952810059323025150778484222490404494650334009195525364843953013659274746658166997694462010767762667212385105954506902430461765607610892182677001788392031386085590916145883508912266998222184247764608158872695024818756516260798876149826495683132079484207857688573087277822835706623057381769787021754378658899925030668999417570534572007061254211230545763989654132088893208865011355724713772729890112595388217512199778094725856920018480139751525281957553833304170153474364825938562129281130394283060846842204918973624636670460274862848764574154720505674531278840763550182175565558549319254276642185872452585678490239651539333309803391444776723224540740130844101217733240713225958267412686579119420113712375113400103939867726092322212170052934488762679168162216202753816854036550260903140877794392779632738152888042685953354491636861532353470221406676810279610882846022647006451611142875561228793531558938820347144447246299175326169367982873371339915036663045707632933092378214311504407600475778137833833644564120239697351813455457735769670439000603277534449077659899832981198016727182171494824544012315664279051848773501092003300818021745434546281282516445411909987263066115510968700714263022776239092539492466633421348140565096096202333562582346817764845898868953907682930858460244575702257438037561599910092577204832092435043953283553619144210828181721509190703849008360529649864074041033133056250313974845316262223428015631165478567393091267323458393210947319124368494346143276418086209117228928640824274547878961996656560180623898097373993698117043797253079364381624029101857759617252002150809948375797741076616156930565626695079774053497490709870038575291426613772220851053624463456183113581830294011867110729028053837944714493290500581825241732603747896607380881970738559421612311355182045138289710285517095969278075081920106529280939903679629341920064339696112712031507434602043722119026602768839092093845765014122689506156600873335579621413643764589315201027130718545154083479629261744959161507248024698685521928013834142708503291105316644000354913898301419174058334251803933557233392686682322397354374189308730854402198971394152193538367055393927871259684704339687920771397805549256298641957012673722815162558597480323835210943404089740770280364002931950294769567072414301308992386375439909063606514460110343887110645456572532191359282933040603866781982844828402798668649021209193501653696540077177265107723316623820647716703378356528181833392682999311716063640273997070775099470697500912566479650465368547012934799816696889790381925072453848409813702134937686500969828289458989736323398894281889415400571879359272176603274681372413472049427702860605388946977668695683626539225535212838617172991622117488626367838913318253938683810164578774653854240253358142344439155925627954506290836065978111983607783588861289507638577796969290062218092233822438656430028329723263061222190166043709747774096423962720367298592643763183934730637286132649454086862712234785575583269347532866892249970243791899094754818581696587573994960351615764267956345434509218313689653604743211576950787435510655814539030308729314679181951499219268897310953520358980266371057591769751520684433058496523819263408258112865198350288418522930449698557206237074615696707778273402477906947375472698767306460808087465759651384218604866593700091460270967502358080104769604959720843759219429605858156833563881144284224446007986005511567325074494289757731165182978448219737418522813781242558774324644481032835773358027080704082899437087731387054936395149668089673327894484659660002769668318570530731032152311853839717871938446249213533062573029424684335808314063719244864869400206975143984594132036487442908016501652734040303951886695981114578968144156675408096679539389043352425412667736387555023663553088131213615395513538183325884947972551673133751283000648994694329556801729843362233903996517504186478479107044515120293945159730416100431859923494568297728775001886250040963381611450973078232254188185240475438608085784293292557475318854466360031482418026490623513172349015574673445122533675306676371830047397467795382510615726382657973622013463354417680705005758708128836751792291908082254644741825781438369130514557039997658541686149322701775143597021336603591935568954431089914110502090832220841643082773331424220925864847929923028122146364855227056447187848483913337413468152975641088761698357360574208026833161410829764144738652659982816060630914450992268011475625085381695943545305613466373212163388476943892089797431580419464682311576854880391912669251377580827986785090574829866563222332781709519784914460217790635798219269577474461107905542189119731229277478001691055158210504464143882592403094094700832295089680967067311589533032076895621560486060151121839567768685679702726417974830157968589143352296021157667290736351826169325276604537097931439558536355777561584604945872926131234165207594047919640496332206251215889236935564200785862788668468227699815538257508584398117129950909971032875453726246929175587942220688857639767591430309309102557268270689586513177465983719106019795178714242486372195739213944817762689647513729417769945420275599162926618457221140027420602248729506935631254951018155522401596927409161171230483633885722457629841429908995309422963152301246614737990579865772605691746473139356880551678250833873670308511744877351418807781472922295052425472636501900291189459774463861057292811331215954872398887847181931793753159275663151124441011545079086829361156450058029490756296426907655859275680180653858077832083263311189214283249003251392224570524438376896964299208111694694989814947989625360849101314258487147337806670161143520114392582959985534780091712447289054093186334405989590856524414719277989205267015633863997863562918544682519469811797487717732048266090447525718894624286113911820223955146846982955396523849672708494737815591374800181678423312648313483732504696953201469680783538343173482628427204674257582341916789896151917715822673060951772857663576900809391783184178592433698638851274315953256037238024217959024849694042750523353318961838727190305091531376445987018891409926240678397199629349192834139425217211439383696747819436846415283860562233623025710798253725827930418990016811472651027100583913919787734173965385664544091744159595934876349734456183155537503268863828177800654378501425210592138021929983859277283204990370198957255824846323313054573945861313077986402236382005448909080806493042565450458796411583041131492338817006413375352480175454283445790230155351202442905457599982172702746243207948063715694185991056731800707258895043588234727508234947698813345163733170984578574119182379551025722387886824935399657355883777139646111465825573130086564772310129597405251509773242830320606219983959514686252791029071321942606595952594582683336411950238563289646322817946039150894226755233759512881204598035893484034169453237168029868357447004278497485902086520898330230234508380689375578403490216262894515146108231649122659772474174584478073898408713075749859199095489063084183087529913591938810930989971955554038779138240161588259553185492515119155398152733978910468979873143979298740275614371956917757909763766786682407844867524039793745814042816165093574735520858085765723501561125095820172620006236147266907353302046612292290010995305655682116030302247330276332779588624071023610600772911044470862302272027534015824691034315077938223981482862509169189248845309540443169804471850483608319720847945190452508173249267391756967335744458895741321553636877065754702247168337532960424182022495889398737158800484840990773066729725104684428962778248560544224330511503549583814076102125115801496183587732439054149349132298049984587454511791747393500963774595670546460045721468313803131524524428992644130368755212464750944315624592762579089597303669611840263072740496229862158615059038160260689565225278287377795544030375377910701545103911435859879942880964425609441523960847301355050169436070579163189084091409101847190825248517899509107842451624347235459990882420189845822547682365073098938624058849499296012148924910085051840664448469321869948608904377880612909337036104877956562059339938144421334257574598349326264672985566699894387756125917404153909165814614947153110995017165163318402279470702673022350839133371347470016991341637925411951171065260726475402463496980146882364636172699798850955475406398213474312792081359442689073328298984658048045070680024599457329041213698077115470246528091929664277705288437306028741722454992458204208871531482852349970871332613103025402112303823842344062849959543613435605660581733247293422760115725517775381016524728486327242278370892205731135570198952646765128877487139534127472033436103266206001699853035904525297336332396346474024447501476332919499043829460151516099723237829641341375632521818246079859382486178490686029682913753237398709595783511765397185922664513182090608193703775374298412882424262498911677920689486551558141628182516369887209154683725128462064099765463573512714328285143008687442793376744962049522914556339788778770801372561760976351438016986897309146456302086123585405734904773284465689056000390995745228780431983287070471759203671547424441960676292675494636929319986740546722706915141128546846900445984054842109156414502878922080791756268599427513581120306214950096661577415262049252485982842281302948076550639707890981743358694286310243359540868713002873623392052158946551549277174558368075437990602753881063639620020059247546610864701914423818888331461228028683424714400005249259298358126519064812656378152183500054896891023647287437699800442207434818944070147444180598177732013338400130188339752500634199679649096271269042293113287646723687176671516690621220081593917755938376405119603022737721716724418010907616708766906290595611657856252186519051497841834529712956083839038575057971801210113445611613254816672632770111467952595039977793736479032892846932915955440742903967387504559675139980458330803416491748858586658543114040042743692699850751658784600603076056936446715451562785207632115690442998939565390842906630332348466303818352312265968773213765753946305942064678876827287461148181292094394000467257301325517130958353205334342712759999047529774881486583898510808755530794848646157359299530135732559429739747458425329521238918032427442785016022685230469970190889550154543614727147624571613414556359327573482286720218620704014025110116865313021486643596638458490678184178510310718267412523721236895208789426323349378810720989025997889739314997609236213018217794931446802646033279344056183334538154844910171507644798198066953241795153975848348975738649633940058439412721861160006007819815565186298344632178927636535021615327562537120795511269813647964636244929644881885267735615011251887793554070582190064829163325297658717501603305948818013926881762043065572193322691338110281078440308481503736490318067239418573309333561889462549917435530189624799483077396004651326493517495095605251995766146006176244444214217862334397091705970041251267887281628359947009560057405368472721310507915461159998093935771702969359305983245706030358789655021179132619193129548423041041657401829807505295071952432589644996009348248792896385444013452669782664704945483710418052458988230115665501241302032939936286431247276898449138872545714716859600334732041463864377582275368292155312225856116729523800249285576572713127932348255609415920596838713186321534066637563424944029876846131756588054592569740518474605101771730213040160041045059157425286540520815801937783852259743744879357462750273934714714264169139749062624650685398803190117047115156592388998028660577223323343168568556480717914511829582742299609032722766407869158935074138824889320748658504248258445418346877148494255551807137821208467667720064451319540471949272978766792095026554877397241962115277523023099809893418161422389696255498181304876874893038578731809330839999486502805966748319072030436181165900492771402161851873119641454066707666610201875887345420155351949460159684273651176482722631563256371991454670300277829560705684084639539688591394495566250841549955402543985418031729272290653348473245656801120502636677382365597573255587957321584877128043954739987071599919190926279693353867137155169350737259547344167171257878108333454005015373544932554131398820821789995518094422192962084494668953880532431106053452916132360538445724985072068644005528465988443684272205879738792433493987094207994177722975569797040255220118970594813570273250645491251226450791095285329491730077001844484482444658066062766802780332992129297355161124420407201939869788991327405280370718304533656748478289655429277889343162181391065485892696831385716181564779891969414862133229816075366558332508378187040260624334673574942277528594891631199821168384625386609481477492937929168403274288594259387192768379249708037024396142576604468250573509317153449484350337642901161323069950314887214110823911392641345826140150214581271804287446531965117415734770696441074120567027607249156464752254605587377151171767396328415575183038694494160345238113638111753348470299321393950868283596447250625056616731082400560063203697988491829179737074840957376907068698442619593301212794892045586183081215227695627596100587349027286404508767226744912314159795084577109622283661691777322488020346860557270771730866985989364743526798079040366363041005272786617051267462630722706289773819733710773199964316737872144774846474192367311283226053898335100554325998363431221958798769792365293840963230290923208250616414278210201155210674133337608059056064076866369101650328630416510859348663614088758551846659712289119990008263831847333986897855449721268040863249864757816343789015587296499278475058357693165677530459279056267831239689932221491974662363224502100903080260901649562627829043171921827800875019306963200898595773839622604221549983426084317770999922904117420686662235507467448044862980625173894485616044218093717282144684519767825298940662602890467723588003967387116604635537646269400669951800434962640304317601378997732823138089887616277048389217715206914450785355823280457623566034225652152149680759305334135577301494314663430512327407458820577637797201810422931726164224163738158759647413853449255950467998107652835571709636252960328939290493236901961628809373588757269458463135919849336202194736255050706768142655910887431571938787357090465724320322576786913104168760812834387670962608373346318741594203286045308138324911451300944342141391094608093679226391345847525647394845330717593855974374196015325118628410873091056631711555180588322435996475238659295437307253660046701670958222078119135975271622823405968144813154110632333042770812457343429391268905928343913107049108357933442920295346901825443138282218069667742946447190791698642004952088926980121306267122596227708678139455394719718404006772870959573071450036287683716371710587771470523633673341045861208350030322497412552278368527413018562789340193838634397267762690604381945363349008700961983632338473193947309833467981159671705643483578364418323284109122368886841755358941138727633904083168946603784096816650302792365387530119393273416432704164008503665429793175340778003127869017091869455817974931060171394023829085186957409263397737225580759815679002117751105564901779896535133564016847831791564183691746566527855310919014290470250871860004263219393506330985281154816660075735137272141798103214903009721541800150751554955616200858921097706194390810910791538537108953385178466831294916010768859656189289711650675348991214108144641784126221786162925934668240599671443997871733054522379883349002347459399791582940205435595261455200191934405502563900971020143147525628757505200976987602544399998821332772796505998992177852222942958704212499915657559208882425427139380042848510765983263120746262299534594670370087218984299826968652947889367260430839686262797614775052436270800897782177434980227424007607653933522090093909539957842830061966981753887342155394155564879340342031306066181365073886365451516120996793147236573096512326578600306876296293412783600606828512434315314647165401276520596165538071870948753986310526045772791564456766096234624821993671048026525613812147914452567364570190270329402406566091491805996513468300873362278307178004051738447242032783246733691194656441544682189410379585258229620348028057721196415957875971538192858110963589817603649572383379057250833460953238173166141977632647970257309939584979039476302499049542690754059291940762751904953123322732872591219423212625962397490322078697715617130268005591036063570088729782579661738657356081623803266482363507558713666783172496392374731837019000429755129512461114675264453476846513686984047574933720944330482550480548828619978978483142362917256512315815472283302697869639158617097804641122822125289299415781455646384097295816899331969024169254449530977373367068046432288129741495289242414491749123290942553354967957493891104756474852366021086840095167161861212800123228141499547161570067526359480424363457558067188350527596685173259924452218813202842575070157010082747073968268132875742146858961142299824607776797655993956481137785170215487153399480970315853444348662351996607866561857889995573719080769715630616249395643390340203689377503977880135508279275903497278902196034561052240578686045642408415208850230390735178390320261148486074010814796563853975702966089326451660060788062452860279575053831898915664527017941467536341658773942401980966025164741860961260918559976191485425476014641007015677663328005083679560295157741077587963330040347865983263405142035403076828848581308477349687727418135949468652807896861572530727330263939036516702957914901195146664488179603556690081256906750987895118315368389497963787359180277426232163017492489824650600823423796272123833809087901184261525050887233046307955175804495786830477086138061865814878538118564470108734140864727372156509225971556878077674413765063424793268800853555309070213411533190206663332593497539200310278868507599155860175581549085582573172264385895587664329049837596620146305834331221863861566336340387867907194565193609523338668475620422977034146569485650432223142319293669105669167310104460980103713298586078381426075066134558309316756913547931969312291214332247545607018174818937198766617487535625178434739480398140666673396115546098887497786010899445646541457803382087573134837208293452878114234120089966756032221992671286445363282830749759602299543773470143991351775466275134483280393805674600293913399283340436319405085317637885892586958103892149750536077260825842104640301338033012807318507685644089079470317589617596762636940603660973039849922882494577496581027919039363467329261073860132513278833196817791638051413422185386922399829605243497344200979927979609378899617251593487299575127408179274809939846090527293693479833848525638747528246833871397995599615265488580884990239707193546574622294188449362659074950886694499034551418584440357909287730774662494070351455417709715897268079239126906026657834400846463103176962269708522129823921278074721341381699986368028528973915896269155388274370114469713087064957325807430294074191939837796176550025435638156075546201996920016068404133758888424146965684093618139286408872891174137939484156591733677759290231968142990327112053960451801844007232492930200289767322472613361460214959434492555113803349013226948551818542415207855080151568516708992980274351802398853104550725518886882890979532142590523977651199247314280891668117985279854686911698682788168154746546648791404460382268463397656525492345412691904420968721253019516085708287197331796950898762726515329467268900391339402489799451714631690529324523924469078540164308572087204990548979725934480298186680723432504997338671980469735073883601318634542376966540488146799190565011904501806771816694646404852623528614410387148311341004913248982159072165380770643757980037493963191510818685529284001725274922035990145313841126731363704465104692407150491944074761632127789867388119857845756516161623053112344748484139461072452128176767645112693785407506381991673499542698577660802900999440595159129485731576342815288041856901343079491020237358472438859104438220841516246790011315533916938148886770539172309791391623887044227309870520031131876430202602134884724788787083485575107849023446195808457309264516067202576639067253857170372701807708356330702410679427800561652587472234954030720180139343715230750710533567132607966190591329022413519786041692189166078971824991237325541359104892681366070261269026922408988570338130175519211023844327858272096058114352394807483840968643530030935145079876379284522490452153483019669439600382174735443121951664346822629039739588759100335715016213208592450702632313863721065388256369466365183710585861879031419302037471071973613826680154582861808735606310840668461093880998806913683313507910636475603973237494802846877993635813034696055833704429994371037346404796739635106762199043722972767451038642805219525395185995763066587469680597997435989920985832987704301730912164152240307151926339647738955434385611664918042110574834487586249923850402259450651738020517539960710886917994864482219475969287280953377514868806293165098937163832086378262896069402592703107242096603359462523414328556928923451715803001320057775026217646142299269201139898316052575861366022009005407005104490292291531099369629780715270405337406316844339463744597095513552943462953813325320297726856898724213434645130486113222845768872555203231263732767368237201443407710646560833902971841235044829392920322534779659937298078663600209511061131118776556443509612933872445462588916472414028664707350406621071869071523237516450008793970184451172707765044462313364794021133194912781765871532182337138242382242632012365984644372375168733867832205133301389649126876475706035733688763460090638156604634393685393487244254016572775886676792895602108918361230187375158046167082132104140300327403831274627587468972880267574155370239815887810644793739183243418432577581898710348236423192791076768697314181769506576595079701033936496925747271591555081603616143105283636179714318094003948053966970638949539632348806222619873134465417586228395768048722681835798931482831152520975017370412683785754514284544662038101631872233815983288231005979053968342959085680162230452851342282482207849610139781118373436780290349851811349129645208223880087281295202829871502654322964072093761859360269885058514255356020761304046007764038124823486448526293180214277234060104604384055610852238150226706577909268165040831300476563237125677628784922654980066689318255337733524016489144451576078519665250316116786985518605330264440350018628655858908804326948628124253141676199721429360253428646311823057400908777126583303228560352598889877071432603441288764843776447812353300130021941125070853140356001993263799892997839264199784359135834312725237722043937696709530571407866821385828642566883676383716835846104813705872739894962475122768047370942308404936596273447988078323935878100449479686675125769430311178015878731249478310257688546920208419216731200934774412352054430651234170403787959948859013220401972152573679051894913481232446686293355233634714722702250272199073538431906756472069010078587396986924500949461597243998337530622505514551868661121877473743200951425531939686007778409569510018720356340844145910729247175769011990902309660805720560496613754900901770481721837323816219276084370911898683910380627411474370300074369601324654910436676347003071546234425665013552252383606790651905684371612374871917276069589752526451166567611044223051231536249439994578183670853375043962318294222582644632561543712305791522928145191980257574942453723004732563457048470207810793593651797947673165418885431822245670538769311934796244777772343341655119962160416530031763128704983210285909445487078731504207594515353325812381223954549198879564217954862546395430121126866446745210972859814250038648535890248816720391031225822684089415433687939234032574057106980567096557064394577438850900369581749319131724897523213453479152575461061947737459516286839955809231959210514419125250835096775872202551196253481168303523688490395662906589960052510966536128272517538045370310976520672009214777332212173503754380700467181189533022133972072256895913240852485812133161507358492415612606153468433712824761272383892934232432532699634782815503291368136904666602467912561254525065134857158597737092830505873127340135632146129672066276979509955357372107307298393268012705654843019623979730441447928248353957474750806364942400062486575891752849401762195236365344393945862620639944068842173631478257884893401343464574329502477588786897116308741826708662892100884815680101068998486312736866364583549192441262242949968234944632539521400544968845527311197937382215378719315124546841612515027305049893573136179973663416320779697749942259400417265006992254798876270588218001196984161660488106148311684934918579455526682450168081877878522243285720262184259637950750482467396780309795756948067781484132055211821366236374586888608034712544341152726695632433436990664155593080055403824295245678435970372819814070633640691069078932776036751049959530844724391933566389657921019769695763070960851005362980111116844917983103271166925889226470042639851281134020628312738129674489091128140701246656581381047279051283246627072737584055726441372232232388203863051025741686163977116412343378921517538325062274656876900837209321104918863907489728922563298941544106603663966781156020441809007404932578945685006406486065786338811702645299758671606107263760532917713505181165504247641906675730494666483528852711129098282764583150166143822113595285574600990366508090495671817948524091232946150538375618223553512199756822072067112694329839841412209136501558426956653368036705259412635152702954828556663524169528028978573477884500664542729751182180726290904489903209767285904329137462049825704997320429838212453466613177915067807904391723945645955109243452355204073789482166400305499312288717666093524731634271261975011529300683280975977803942020298471237690431524373515046486463825231622422680255046213978441627097991068293198610091506330112174941822985734892853513629710478799117194053381157601295696906538609068661222611094336930991884906056161249888746399012986885079094835545102249496171991541939000860923544513283956495534804124066567090874994491746719004182319675565446259161395903780485514849008229351189668174236691345028376006097375224387473401673331185464214667328803824831609866000594266596432764278123863035882044106879177633696667008335079521874467075338987759896698505538655716121366384952973356779411456842201229311360204913110789897101922260488162405022852275930355401898362061014980728450397540099356340391101820234887214962510855333252629383969592817682810791533838583171428191683424959278834959477817225598968096021545218881867215965884695854290003889124456644425910806777410731178132669501211204220053404485305298675357704060021939807186244100058599226895648734709165101636046498202387648499508340918025165053566073178185898489995370662569374620712897636630423858419664097905096626321463063818013392557326342739179587630059670777284917421034672974018452040180014857161177813137138071474669845391182206344459099189655656028563813846989640446154952618737108887849690874151713631072065493542307745547548882078096009264506989829957858987346905905217688060959434629153086318766115798699979729451079564128045121748900151364089169223712705930590311092939490500285780747314259312781359892568472029956549895653763473704447167565996878862988897448336572642538159802394088117175615473727468413737065538969489004436168431386869339682373061615609794174809629780131666165179406034784388080536221838494378790293008529437832390346547748861797384657822275397732491500498027235439343720506074644526961001334200331814492795329392818592722819810184275584737241392969926396200253676521140836276210688739823885194688632229520550754917463837410436183561433972013589023133283363126432307897379976532640664659287252308319682317585764222076464458554808535394227195340957675374643742169697704264950771020397158413019582477946467160860701814930442416468051351066817291937327205672747520338609898027509922413889304811886354051982272226540944015442798608373938148400555016574274256982976154931530626738412047132271494925179944009937894997280408409804430122036301754871480901568822127141029824093048494894000283456404100696531372186643861412214573262805549896138989625382753246495794740677165778848073032407049736128402878315249396572150386046324206730698281501499608033782690007869688218576093265644026433176619696090355460011852545931324219986079404380593140375147490168857051155646087995929653248524186517951459834788080565172008654450359346482352003577363005743271176849406412814624430084864613261465767222875625807453512840347054204893828135147230084958764268251257564318852994262325943402936587676876880042845025754508512215498752713440826544612674111221140593062870681686778972926180523652240659335890828807124126686620621829409043054837755575586839221433569379852613993097601816658659585983877047163154130881427892702419566008836890102541890127499694384911436002404974582432141939046046672204673900595008999264176384902275041541651033835180394203588667398404481493557073111139099745290779550785351625763805822878341469817115391609211341558379196564804013037594555078462437950194830977351257400246984068636654369126619044847327496595430010130355128969057299289478854000200103492549747029609929823844957987679387335971020559716009794532920674871475991489641202359599417281560288486631475769108138042402794352718625047749607421259780817193539903587898729608415809452287565438522945744942917050413231114051634457019082036751816604678376231619597024488915272359533087565204159453523702538524127171937272915970249977817987991496622525678514715040275910213473567009119846191076153973613102648421560803071197056987857228966820255387552098214311230065111412463606098384492447122578707799745216734509418550555537914464954966102932918848489072722680317302085962899980074978905663524539939472323864611027857241765344865853867487086063994191903512886878201245879522493814391514812174062665181965992627278211985484137427838396677755638626626592303863217010523606537666946691752772271578290774087195667244385925542931157581974107402399676252107418799937768818200406028550423536556811755440368750110725895302360199445139027717627561091948407260954522620597055924896376952036465417281623502692884213482756326661409426400550074316275137018909766567757415289008485335296715667505638610511354605043788973679169997161299969393026358153876922996230770896706026897732653455784137748231550469971964482899036615423718741363603115921030311668300764948521171935400490915282530433789517059611055996507161646668347801475498679414030097540510267577882364250809980862322307541605138268224020808073636704497081712824469237045316250779557211503553893546590235674607897878648931209263249290879386599444369340366456962776672286637864788271338477898919284480392498131632795922912932025185450976854568368664182397532981356221686845706447316171231740551952686252640662672634709513105601010542145844888967640587884004350499188215658790844495700698113291782375458925870298845445513722885998555012884161514596866145453167336285041257726055080552685242698395286942013418354420884894752535660185719839118724012620998944676076850025393022733308443920379582339397060132298182207581655306629044515486845787805824640093908840421358048175696510693833904357133319902203133917941195405240166269881142658135751556633072675426864461946405197077929314730419072329440082105223653182525850217539957340559642408343524672047034653292412266626475948449295629825085698069792392394167980689083645016782052096906816329671033523835030479840246305443392559705364651321323662268503530994756449488814498389561746966983339568052686674945092657862675014358220379400486920509831943971232398119853001937045781434219831737648490505184292168873138079065361298129716172621951407797295135390988012252524113798749320922511869568941951164516571051549838775908211652256818612957112497342630811144819249672232450612931351598621982752666422870506907207575095347452758512051983622073745790835731962063901210554778007261588552953380534107424308109596613294428706317265053539478329187355159344424986484846244390406190247303400383559814815761550521654175709510854092126807049540033017054449105989884819386496207061468437128885123505266536747685590033960155425960629300462841102745494867981849962648736274890853036849116821415718246970666892842289133441629619546746084217327064091943199624832683907846364670073366164944066364671704745549480803750157849975255288158845272813640908284375756398721062420069968089527987489672339076980090635519226509324128204753335918520454698919068294541648681158148946006071819500223069403875336824202528834627061664791804674133138412257885287882879826285103666853558504164854381115474860497551497982685025540553114971349276965822906316546220425206326965686863344369377358155332655884234273049246337783536809079082464688868874200461904844716480271015244154374855480612511418689058741423250556141448554368271131214338721209899439671365882710432943649482958901181451615348994795392731268589286789734278483042935335055339223032584425816018118373713458022810105883390039964579198575715580683506620514834055233715262606263093653445917735742629806387904307227510593342803322468900771607793415157205812219571823785602930687361918933763398976799867596051982279073718764045575930396933572759942190146187052000425243474185260942979012797257049075734723593595004778845003808780825303295657754670837846940081634015270018222306594161228694655364167911046521338230952158138017016933866996918958367464902914648593106292115717649463958316435796827020110223808495585615832307032020281694445359417293416282855067664369928057508439556535878023967430822483627289516164719193055937074422873694197403402203110391407669389837246696491457198846160269893247296692779069471312077826404382609163897378415995945847731187938974765086639716592520924564067893341979901727650749796832424294538781041420992271816920246808510493294011199448044220985368672537862056716841494921950746187782379812804277285241900846723846130299364151203994070127798493276829977780538350335075144864355256992640029255056473976334378208844595355075437802241378462275159074897156989563551342130965403230507390905079413108224682453903516746551616291521210520763905330566376992764946547578562469707164245927338346596919551318591023667919978659403291126507796170247203431308115982697133308151361027782801666243421626335115411718497936894016104225602261952565515510812206557058908804647550624149131236691569287408705429228767370590121829578796166854047441140428769414238413460212375460645701896521511467868800109331585664670994831846322201559883878033883474230368292718973443952132543446434510690634632316383025692604824034231865217313248421105532000254020404020839347811529036226084661447209675489285852461636163742853891603874653240623914738076120178785777079224189334320398567389576785733928774645178440403113052724544553341287909150526962391385581063257104224691675561471073690833989225342807477994472620242564213299382211456377909299860136057608170697352623144824770975263517822926039140796493263507798921172291874680036685886256764112999393454633240526524984993385697898124742675085734751407138632609047201768089358140605086391055346469374916669494716826499115627708443881370633410043818992838524285852203653875124107000812396488582210987581341298792721087371423523297728060711827278248793194952654190187628864506297062096612486901148377058261982255208258004225021354996856275575527684726291329721140957257750863204104900692611152459276194937187871966736899503355445028163126671545459742393940171658870122849227778794774998238867995203443801093244839387579311148906006593760679639329593766070306591498977874305323818804148668952585279966592848648300079135207284962274096329406679944891319296217585389440758032605997277928007881933141652885221256438485147171149551521465479111434297218012469525312863952044006151205540087790752709942938951070275924041149013535979634652403366312512879988803749422248887205830934192440546940490687499768690341155144309244290350259932988728435113361043871300707971471052195671626978857847712962015898364418921808913591235365055832313601639437580292127246393119648534278667612845478777992072210083076344594442612747385974734234281272004829368780237144497126561216871448992099253392647529949873498499056912516433637255302082241018300182615559154520620269147565441957187814411017696790397469237887759856123256028655047064917488232758299686765138906810831254112115462822932746006199481349822346949692020790701677455971232349755381391254128380645692514456274712910589132710223269035408644497677775333050352262246964547891978241896168462891595133498981663153234206683536473720336390586062240625365231929852218547638407558358906627433977776110884043075855775567638455070595116233714798192989226270805963887518824321859713721200459523937804815216919902284933107133924686310164405991857680826145179428634134926299161936146925545238476123928624682420365979801661410059104939501906351099208871137385510422453450442587310495401747092378480436141622926631878959321928445751974210579577976329026855893789633313041540009348675220558750844065721748436218604050465531902472142055437838760670277363358422713806062398602744935458782304438416614415080746427003331041658863251242060456740874380309985525675661401624358656590275675218542754483972254957808504971012030955102313565085288699636579522375096241850512701888623563468321036906718652136948698360858974101490541347533734617499532521430225471506071797025172755442116048324193483674164969361779690041709828764739049618088900882689469419195281011909735376736718623482560045974964030229506913247024798102710393356834379949722517337314140891804915867372548722647863819313951677865043482076439811913725487751531144844580382302030709643391715022648903389109726128230843989327564494791458838530584378792596614659094820429225338545464293964016382556383466508721916389336503283486674348874593184605094932569914568882221938644593621981195581341571752322756525345800342976502197890651745213501081893304186803265475200971043017652552443964531845504096323439738751412096239943313761874506476053429039277448338201882978325408036325044123712175106919624846583044892043374060595062782231394078779619603792514815920521857924426406459614806197026547403141669299750884164706924304301877883127917325931057815851367255605209137729580665635662235208199606213118134160629649197135174349005355026569274307951921234388206489964830105766108696112207844396772436933639191809272059756413452964649815182381236878459347395516984891336026994091610727272096825272645410653595266340780187971013027179652392266119759313184139705220673586253684153519297732822620755858613707776338637902599106945414403598465360685017536215126642001030390553533476380786528759533262316264816580486537026044937939209194725955294681117413391003296265151628687059769906702303852912030270449446292262198958976051243321150213714179896314216545277899707831405150145453370996568586705494721515746895135638623901878270373480104552845258491934924509841643250290634531032625058151098829464018908154979236103976001548742581192606556392248796068256051158889055027915665483748434626942092894842712464102255879035152351190070171360947174186510267971754182268582344160690873139248107102167247504857664259221249070737638748317980084449957173923026542253236967090674111049518176603678499842233091495237217780087643242738367236977228395271529959191841617241245525470300906870135761619110084689787720712212582309872737260507485473054397069943973619252025461435192604600474722955613958865646400058011994210511504485728009914492295196741530368368804927676940957180991992207333136634727578257123738696911423073105018713895485880736565804141027418872737961540369916978030616098477114490640465014813205780089452563542374569044456499394107719785496895534792021695603523355291549446954594078884153178276452156136667314283702773203266847833074097465853336295896288245656328081851437905549808839324307206840698874542489267054126768520194004954849174883020815817122948784971583605770781326587103292423823332033588743218350532374139803714484543143914930484333753965470457221595385073633869301698460718169325318780238109901354069531604717767264632425357744857637063717273220242456609038782546963745324885928967306113003442165938364604872601551295174548902910401791010164192770953190563149163252772016042021491386256131126106288307276860835863131484728556578182247064956659886423787291672329116338510724427681901971120455252499012122710437421918747667148686317294532536084000509347381325672374781395017187126437566374886941239538457073157065484465425150995540994977851757897068137494234326859552810095618155221340719357061288169389880706200734128375833663285405691341981673884264691028406183957228403851804351491387568172441353203645071170012803673380734119341156448562771679328771907633610552775712760289617117423942827360469150346987484875516421225685783558164326166907760031306654082245391844886895981118323110458934786095052985313554788594568934195674779406660239843667914833505187766133771939003551908227136009642135330089674668202461426976557946467628178223619793015462009924644025196079713250148073856363643592629244519537147044959290108438269112763249066258985202898835850808572501818472962242800498023203361378422897432467260344370345913564736432738263924504018427264222299588488260282962095749076856456545961856548109678330869258467206796250134926500608047713987466680836263646309608658927975231913207177865387107104775558435086264385848121771184641931030810362053074243694369109035430002123770572419085804507225938114619869852383350226462417118151969743715070051703495440092098926822026220486661231503814923828272186424144578726800398728002094564986691532875288349411146131120953162020153555643901863567700020248524821083065020932415784370759319621668313048093027287454378509642810050789368857446875187984208529941032292190036345223666801933410616357067838313106410544434760529088844704770587825130812783036058846115364766568742255564012007984796665703995650333166582669728274121221112807647099663587097310298488732007272985940016464250198501975769646398573124163970552124483554128235432910279164094655608152730798163495398327506214821730212307396452729828415959795906239946907399272614183126485666772407372170701230143203041763001803101794292651450440596021027488080399152668225802340209491252575632390111877618044363166572408128413003824295921186072928086667569220920029287947447372301495153372258006759077526746092093492428896510118779921072513020281006665281433548093428631624362638737924746919537293336837624252987512778281770066116981746205062764115498956548152138448557585453128247332641680547859810088222495198221067594777284560420953280458252993550739042865942800995629998791405637111363349188854483698577816320141071702584933098618658979634257777301959728794901064970482410923030574582767855468018195744187826941465161204581838019428459120587090209966465846272305714049561550453054231165939444029911435993728055930566176492581373536272229246393758107384423992963391457118309882354544864765141027076401134617973699743604992299804835666639264962204274555237059205691829105615137941089543555925510108746374432673790096850711984641750730628487105201924975116058490730907849444875856282355010052682796644083132469313534393721594428751044618280708322707851467778582180876510483588048794376514920828784457183199343521747949376981654450266350915104942504076819649277016400727121513488429014205289097686052227899901291485640731418418668380719728200406018004848676614341233776003546798796064165606955113292209897486237517693743389910732733352676434563400054378653929494934431164589307325954199221996896968582776397056291109500776586160278100253063720680907334209351497799317615766734956808059422703144832811770567197870374108272454774436163467432725676797339397124058000859384111400860030740189658134869455507954428709609100365001823278042631061238319960329107701774855380860714483003476227739107056372627887375199722701773862810036379603605796574802347826643925754755476710171211363020125021927456282039826907978688724482180277148396307828905787672628328233788671332178293965066375171488686694502467357899999115208406423741501061497063685196225112847151136102875624797873933694707526095339596508805321429083332249888494424085689226937430322784985938413967524113120875730710095680591076342744272491102646691322484968196129134168489990178148497894662939667643918026089302492435427270043985144813862152934941919397074257217139234155433670119472164790768215026714578224442517430628666145765842982123895816562320548336924204123255474637461905250104495175234135891020063457018771521237131946980495537593291745339908144353341570834885331850276820264247542737436823361221264639329504534527971046463070820970172063516751547073745043206591735690064674052493117100315116161162639102064519452383699906255590306423091718406396400796618423604019449443870091694476420423624688005568216538920143475318650092654937892546491131497392713300340532179834397245876462644227645878136902836215908587267614787832018208763863430380883182679841600945647431245994824345652422203180524914053362157244599915778037256864054113442617268408007528653463581804933314632845403567589187480064030777298236897837294104454829870366583050487555811583728590048625357067873287858246696436682363719936763006391957755278333383308692947424474362013882372486245214922628964867309248970277993035578650692680507149828409949378258184768644130388577490546020104836592172407443150317941049365293322981130828270713043274365527261495162546252849448320072533628570234730054005755210612284328899881203188029130898359100757029150839953967930840719601251254092664723425427355840158495550028819896165041302633757526962989719343824495922559951380125726531759241189138551070574992185724774854004347825509048992117554975235128604702819508313191243252540208612574565393212536966617415420569567517507869009793886174744844932507662283522718683741011137743150682997887152833787593553225056244123991902650541135050420176929859732019786921204351396526052335573921285273378653977612020907608247001441298508452837099642180155989144732647163664304226005600013605920923560908863740812209908015318377606562655810807021678994815805899075607024846658921559765626708352020781043703674974743785733341902115523202341755738688521971177568607739315194823340527872825787031025513374636353415726114764442184180798792561797467936629808417464011156522064441497651887082345265180135978895829411638213464354708782794237376929594287113843121238950882982690705872213417187574350680977562433307045252159052613911070483910589622396310522430045763051773256373634374581946237224891190505272385363762420202848185848696672292818181783314852083598800876359682337844621837071481252545148363912834198892541484033634180782370700434112930435772454853500801617995044934142004873699640869293124388526379342146270052182553934278355625438838063223639465294461342942458860656292020493168623015130392500471139846772775979179800871428434856781433054552118365884259522424677694178306910893848009782637301787466457379397206779981968416766543251330178347262680019686487245428688194493952996994893812234768706235032163010918206658636413182660118318258384120240282399432077340389498192476937894015240992634697957337022224425249492527129901061788774495863532768436970486011984021500853617654426664622141288258116871146627004978365920014811833996767568715135909824531574275561817985187544145623583869551233235397204602108030456220686747119200042441146401326544257369462302061797900172545108076124326144145978323412886084091238867629814196739140636186833236337930994422460440409686443163670548766713156062043364354851946590946333250779448872236602063521982776996194369103363376728508833919038455730763664513631734126735646036807099945395546461893724370995620812640199590313182910744221008863633082989383474934653948380326639447514720078360446713572152561996473037078780517312703623695728342337469385798502590715389246174359921293199695934896971511600895315500369159545926885746673686171788311802023084020288696992714510493025932223294875160786098557026098814646004733825703551511653622156535687067883858281649916779677939852441180851929623961285880687410668700605336883970827428491879133228894375366532585825396980736918505408412240334150731820346993800537125946047645568761224108705586105244815607065759576254225345644478889341121437513638904339567019208976284386694716341756323366227363207188915137604730987129769988722849124549165406725609808895697596261455139011340003839792974013178198811843348356401660075386106268543664451335871920776914822704338694031629161023233045074103344028821332284741892052685050334540650465329374255429763881060878569119909894971107676045757544730639813738639574183591235175595692967075435476241242680606078653177486723398739663687450813088546609761266864741644135687035026442644659654828476690516738474197709350396374672938488641417643502905039134506246671121079640346775158422973263649566344558691246897110139930575304247019667917463935711355280954561512251810174142153841974142699715908045880687636762542836103620846139246648184807247089410095288271968076646665302696710974930286835343589404465246706076298046289028027615509708542365300846628579111318513836946651797196346558864269048368472897033050372261380520906148497401238092175881479980933879487799385541345312898518402692622456465744141846702002499714729696696518892461665588240816458580417597047782922213692100687583565663837238365566287087154021084079648118175302578259713492702205206275506517289215101858318538947377083925576497377429340768437073795344993344438346035897549199292183983290669129327547289986522415879918996182192062300456913374811742276432407390105574664595979110505230731581470698244737554013898920453301031955375869085053308149260276886546433190356229438929953838222760113450851314600384169349007447138035769247945635727936678913135535103093090219891888269303141696274319951589641094391139542493584417424129168093856520173306085123088457700126802870952961355719054813496155716524282869547563774571051902784577650015360932901595057074053826095115142349519779392594265886870685891467317187877186698609428923862309512277006237324652704231455470334662267247953003242360165070274598720904591299764268379936396362157583586896326529741631517005166978348752923399286282736770805960715860053262123966120802158381007894760363332400977192531368709731651642031713577435545771769019867163030448946450513364752054581556291308494118923541403410275378066882375531241398580912631882056493935770023497687956142214344828546380442104756638070308086655794672514939672080097077641087626164207952484191482487655372461646618904413434313200288828891267999727385754100641265454455675201421315265177043963353089269336476141811589542735104951199506568819330929973567276097963969670439186316397385921656920049142547738578187453872144203292579920552596903732129018436732073888830561255794758999365181455795717558174986474823915677282844816971121331925896338523115009028578309039687120475318273841302858515665558884437737136414358091905795877864778125979589985147136914092296019803070977040324208105601476884756699612854888606645478645868317812474775146523068385966672553268583857159649932297733938420685695538037953469899290509876652976191887219448722969525353468573160408676034388889189738763534314581850272807361788518870660226796667845494140906611589717572764082876177425410265287757990868306535222160355272002008191142009621441290175901579241458968012334345261243231714667451308582091800759381234427619238454221525131563677914883481096879554925432025643448834382179812327253850578088057209966648078005298057138664277115805794552750112033376213108829264258215239471755001135494314828484458211038255756593932354255884096002713435817187555807637537625023556837385626796983121157596493462377841358710554428748773924946971598125185652822026944894514478264519932905084279131841367727108560038062079441752758106955682399848691068788602646017398772322199140001277937046960700009935837519305706229126222450610076621176624948995210551523868081087302085223307183445435451296650778595925832066618465594073436262237057967833272052438716665721576522055843061359349782504701923732074234390471387283498906243533654635811795253466415169090475194595880166420987150733416530227810875556528507295902737070028456101719123816622047530638641287507791500905493947488759844340503949847608669422041385156085866168255526991338083248207625496461717134345189964406562874468090026341191477057963626033159423056354632350941654918611082586759125242660073913313594050992124462706416090877979307086327437142072937715626554990034616215382072633495306948995198879095036294525546711888853003990146212865585928402140574562901453027154551603738950620317750012347445464198881896746440003240313547727876092974204275876655076783528796259449214742665332905449923631691824141749724034659679578207750143097973522755783509815959931696616568985877698136324882415504640076984356093184143963470413141066055824299027019014283609900014607798636032072025216145017466882604301725737602726140630853276049347211407450875351484984285958834417029601330502456881771896246599091132253971898433473911251331891684328081613283324850571675132371176597253230496278248270816503376609992231582532102661679934776134332765254744616709393495741961898450326820764087899397567191387124635441639767798271288562564212014721291597646304008377681469756136580202859084900508711604179560751088262396566525457346335652327026889128022375091280445518250027729958042032144685331342805810004130268660810230956805171262751512278765370592623610179256760521345260663318837868600360449020280109135872054218465973161731550502574507245664560852351509782550845785563746979921674495732967080238259691928833549344952479100173095717006179600897804957554997072779106230867907860809375114145726814804995044801761342670475092986835540747455131150118175549011012632306451065377896599334855772347784393055548870090430282269141260652982946610648207259047466601340985722231685244389989214869856533140629424977196877213571807714208977913219989054238855955895948993791093866895991768522398799315830566442870200222428989769788798992963483796965925000695347484698476950533498335496709196185120540287953597923407596315957453273192357397713576891211382232112837578399006691164555186220535817507477439160693038103625968399397220387354667224276080991420124994390359726962485563869179023085824917653516525966120120122349222565328002043658028244729826942566143213342497774181787584541015046994600117846661801070178991046300294669175655187776022873242572010765076747663346264145349609221288208153883202662043504234700828850173975443733611916558283342426417429638445138556461276998922239697116907239306314663016672259327702201045127435034549083023875271818531904250524147205111153021630119465664621079237297088241688380187434921636822012149397005400048081571845966972024925698836275600452512123540799254305287770394202004641906175563529048821712470965227697379253547401613733514611901051138282756825756459539283552294189043351804260429593063845159589825951320319242421797125797769763697977977577430159363689302405441071208279071503125616265585642933472182568979651956373581816004889056390894298799689431775930831334685002827257270030062039446145881854960710436365687748458137412012674233501849723498884615720735706154542598989387155192868393828777728512122950427948202508449689417447396490916248069348534629799800137398099585212693583679924372607930356175301916495647387955449069441704580972322004445849071276862545521729864308525313267662056921298460078708721131343864392625311443359693698048709894999109615054081529222574547699565766186961591125437627251239482876236605092799308548514826376055755926453603076350129314904505577152332244227117996406381168946105940884993951301137221257007546726458290062490910463741394913012585304884626930575799448393371720995937955766772468198256672559492593468489764211238416848939377320699979038775059159018082732391666113082618088352949426376037309681592144464412840524504219686467573511741107147378046005607383968082521185725696607296007860795664924984815077438239608182496240975995459582360793300831855077148189274516990927418690955001400966983624347745795446062907787600449596721603189526751185153378771377521372727280436062431067078191238457241986613483251939502653297309105656845692188372260102970868469997189216229552508905431956700987874144730623539257173930739475582217856115875802603311005828581713254970106242302249004636088467038118731730124826552516301275680551134976927341848854406011134967898048633182255275895233498732920573386743469321800194301386951324643200994987398362799087958086920618416872143939572549300068466429924179938072718357945647433043034410149607536017787555991840147272853932215518799018594143754767175839348605616227992637693171468688942871830662485088978174877120667971744368218499393489645354421438219315021416325820878430667591600260030082075760575438164402114114653628291192480947118273040470030668717926888055369964555296906114842745579009210237983129795574299645068351685521559381804608248667189498290396900122978578908487542691606613855289574210308395799486840165790575673823119143185171269907735994394546347633687637487915193550353097083380402021944655083565051659406134282664908894604924038068849237789845697212784860649500616669429138183908558819580534243269956075224627688065436348272704146427440029856756414226364119053111640254543556691632097176105592561880887407691526560881720627970715273362602300233235538020888682926474210286201874089553998069021108219741559044377732433421211162184599793421953795718557176614673955797237443494284187355882984861370252273815357858563046873106542700263660919272293958463799779448313831067900980849499281161187710614967815202196898770332204211740044347182213886160973233834355219312955012333076151292934198160161854883868498973041938522228837889942321622780252315349446407684424457830850985391166660498866635429754163246314399309837410925242346647947694005625774984613549276122661932436292459816110287327135357643382070988858846444683247147164691530687113501216476694793385138161030817424494849828922671224994992705975763839246874458604294100045582558387663318795844328874538944312173081357082829487326737882335168169068418627671786606644410140219316426918700733406454622578930950963981833287078664251138380949013804525613959237299953810224567308104267605234834132935530822334562027888024918341133109655982553826545239736153725474737750004239001832487990634906623567413539044190418302663290676440916458158913503326205780217615189279482078118646616675005800884108864759632276890166548370237675590842883171219122374843419475805999994804945873006609412302843658676044401709618433120956535981751830682066689138762753858011958210775130671282921959228484549854859007163143354264838162142354182441174881348483943242556149462756522172949015036674289670489992345603566476360855170232174465408975312948108892092889111427648609640719069149833666256538514379160353404770841815698228576473968153061561448957104382445132996369053610128751366962186707789050082074702142971194060448423872314918448236063850199760944436151400246134041219137720478665483387967993180607938415676280649026927694158937862054924629816800863945106276993123218512007251266335720175184498436288719436072165327998889945044959879690455732008246147038296034403362474075637355240963531799793595920768660831731028906267575785401831011557070647656200711863969859675421943984590573296849530834736446151666096756761967895461457553774856930276971355845167607193156196327947866260954104984323068348149917371035217928460546486684376911471206491243551775529344064165769475063159096711352060962172696309826620345300798040766293941510155356344640657333988335517965459998296386664728550373644200746620850066478058246304544312357991007900018549254040575044718347076314437188004293524616097188971069913874131495923060212814848090934728739690785553718186631110434597236479610278003979716460928784691056180433923649811507599067692014285528173698794624911002740542605641619661218427510453983923904504012863209372095145540334858011604503624167609867360374166552654667024306028509977510859123048973600661724371824278981135368275094866950602613688519933057221270026394916034560302233255624121488862698033987818504877123244358831398268988416997977013428876091112824937859931088677835226573681741165376411771197429280711693078574197254697679803742903863956761492049430781385164323657691245874815625674936082933681253983446656100872292974662608546383826700870857369489710392706717788083059891616972227780152144332432698330825849757723351768183566344930155145309967061333842465954825152384824147704404084713437624910863953305114759472561366258733344772373578629509094480461929735415742204728068142843607416464031743851749532488754114538703926120411133608414885306804638799218869803980374044400177926764572049469283305049742716080714194710895683777714093942596628952543029376938714331279790823336003698723804089048446155687901261318150569710561050068767799509244719707344629810163834280630150134351353989877432858979371536539877611545579021026517296468950996767429837148450980837562648024494131336337563350188591446538367509238231831097864342044889320217711795411895824178986913846112920179150013761134533748502467024967111694095502438293197671329736158505735933714662405424693910986331361773492103390599815822477613209327608109673239612886453603298878098768842062938334757925381935903156670189386681000746534706350401701065681451390624542113521925944645173112652411902825899361763465382562930270414124407859393749812634044937984177555175191531795369895776138415151625733818115108176816147326904534219787569340820390804409460995756915036919817246421848441863312154180234422780183930890681480737592012356777064856132246037781308186726486283099828767584238859774667345594614045424391510412242685636029530154523407269390668755925760258837492915493439080364934106055972619913598142100420981667374234549356823464754999211276640023089744286796630754951785972772779272780697885663237719450631531486822508211430391408643783060775003387780221014408973344673588663335419986005122062899998243226546676835244068086656981121126242966732285686237960254581830941753048111809161581419495182491715300537188335956697376630489639708075343123598594566790134969912771439773108789620160131799359206915425129184366945730042982280554303954186190762024377956521313968599735387786083709124263554651162356798079518267581393938867108666131309889476484327146591986185237528737787105026449617208144162063410629900132503046448015656178412403337983624860441891931721278208642196774398766494522229748518032205407300226985539220101252593447746621348261602762304829500160270673923747388063510329605708864963577960998620627468784888250535238204551812973039101472498469925415939762340134182332830032226229142266223613611086496075564936394774423832936260127726763694138140381553785951002100663802213318930230547046549620116884161964684114614096429439709338042065241161028349582229644889682593862858057112186105724977287255717821161230325744004656363439573751218564291931094342972283275708870742256756327218675709799141160803207902447142521860845632870972939772068463613401446030140371501970309742638676749827062267379371784742707616548352781069589477905009319316049645834325090078546893939950987884199512326616843196744814007420058943620320691567189720985299767549697015316422022026103537695199343900585607094043952316742981145317888820348744277777056274390080314328740284695865333954626846382974251105630837393157996380502757456836522534083856172305274110256764644601731836890607832549112226219153864107850788741533425179125267074208975861254131284644503213650047613989526879727694353532465345911653698343191630192392071445840169254860427244365190298202788751930441646672781314766985110791571187635065808576417717071479081380958791164233143634401559960316078745041377983360683700977658200695302673575699098503466231281048656649534469964798532704151307485761848241568848294298988810044838784044249664096151526264593430433977834285179453272744264677838917543766779016905704256983154889510283506542464525745286949023274962649455793205306029061080444869635952879656014635243084227561326460939790445784789509634639328203199563675966127892032669845635409735064161312666316934815522874724189296035003298350816427905495883286604460776976077440767883946372955093319454460682177170552637522280493344827921100749151755434296897986289135723966509377349603044409730213872614888044533388884023092394549153486192741377047242565945792273388376043244507401487513989777273450943464457508831794627789933721229761245427368358126036785276378911600521735020121984635924303261558154549421055946020003373891858803823226320539037320192023725273529656703103894362314803176106104300278852731996827501056263927241848851086022572956883303983915763563250051354793869499546947116681159795423126046661713933521466279999705625238199243787065553004680794629934536001654632062587203397636650116157985862793581855370146543895854525703499154533500831334941274997844313408960470544606056084716269861539536442339419307610561784072894434922072698667543960416959869030911534522104321772428265708840391647711882925960160608455309271208986328061475921139783255851562113203378617760585924103156192734507994555225488837286464906151966663668189158606905946586687470890657948283258294907071415500580966247145467327130698921916899704372634926457207195340628955955774167956018679395629322352569931089216794722867756802192204971181567309805622139977085754347084756927816971643077739554083352979934722475028171616654204216760381811611591043311459625067884259847391951020530726088460469951810269480354882200902695719954447151218976119250846030912378693473550481410917359314092869589918382745877645617958471045188069619650357209037609271183038219662843441301459746803224998799965454368405361223407530027075730384387194892163844324825785528839497076582400481681793305153162849994717803915327832412136096460613611061192743614936110527288717657334523455893573683433056647693321483809092497835754685009745410883146606175079890213394640769001764506202347685461237712656521595509900221346969349151563596466102663411820493901029139001681128516862883103311742374585525127531050702603431570133022518430828847303420568495611126009096383105099349054657096427415433914079297227833614126941730324190295339256559834066141534375496063662543153619835500278134304155855206399268979864137144224200721053970406766330487942993716199296888145461514743852310776964635894637008120105043076212095564934565152159847774457913137437984619921056291581016452777216881665949422402093714306987246621518572256422959864123361955857540343346330356070706838894400225560083307559562877159142575804941916766495230790215743711159320092827568443284647163919646484531397313315739272117291645019217514991536783762567238638542687752886121310642428044590244506154328151580795980711472850670116679733823355421906944022265090452903353767281081687454478320863192438790783559976335179439747524109210713365268260004009086406321958784938783319967178369450083612639631420254582042595945481568176406427695345389941641537218337187326204827786784620155596152032454215351540748721419605741084942039407845305440151674012602650024083413105785989508921763279226372995985458092351951323038969668022354808090062891315448958203455145669913253961881998596203500712606971508235249641591174798607630799028854740051372303269793051628498852386753441169068889147498794993412640130328253440709373079025433373402503416966113997500613328344447439636433790809337482750829700677417256612273368318458319544237062088086914019075637111280964501645687149655280931217016468478029706538916990024337694424938740002212813097661855274333158819115928444065227940266210608905608512736071214437352242597172730025209629528973755073559959091169131604086211901225321643363384081849057549243407727639465226500484721200057451442736212769596202567528796137002035285567078159877799885099924225320002468592523492529769849794084215915258743120536693253133232647016908116376892277583680729010523572233334540170252310229949409048638162281607603699020246358703126659284170170685143292914068301319023407096186253470639261955633077795637079904389920750174442675231544836615849962311475397572119353686170795911187043281959958422695050672103017998200452956029917958358414390948152979198613688054278926954667494552288925706262554125156725256871838356196359338191585102108411301480308946179299023869407169235209539045402955782911802607252647614988460030793043376026657281521579623571651512480722551925818018186575857162607672169521345657295955705474666583019049370323001922585701962916635555282063713049764722741746256324215062686475672339814580518609604995237484292538744657648504324847109900705071360882655079963755766488689540269011545090547130275969970104687670582425632272795533763881570468351728237645686680260600805807162251809371140651184364855671535942968399699389912932928323902835320578703167018796966619852907190039876103979780371057181579255336666224024010539848039190635364967241565243955383585965426073125731791608528204477472816578155673350653147416569207771938270231808666105224507524264015267449659911151356212986101120904575121237315988445421384578802527952769848989126282928358190176952270625265357879036638333768701584344667520038177917562701008603912999261089780683578581910872565443984664493029765431410930381154426487716088979311575326172776462230024595105538732431795056405854724702473970730041211633700098485258770878944341793824421341295194750269478530254631674966505540612580863329484882537011511483755856453991685702130339687559673119668601604376691491935611498121143866606959008331071883936696275146303550757375169255525904867925137147023878674951746335404964942080208155569701213162376551311658642807208993661806411809245747198419762166213953502764850506233652957202900133673051782350852097711648296648450584321001402958115222976009396939033713489483704895390737026403727047364780102993288336535581741733417757365192058517535130469547197374684368322981312466953125872224597985069683337547739037204124143432340208142701314810644854630968245768669991219710595739142602457607640250745638085245671094062519581614511277506014802923886799145039084360609007735854203736032902544445272804397284181217605242343186827818780875040010182264700453052935194134955079239615022605982655251168394081792419643305874261573042443588475220155088313204441292663596184378483065732730243199044396060214358083173530635125696932099044137556372945409637362704897919480481456190001802141914267170590148247197986440666286584573902500070454812093493280904545267794034020635903089577217334448579227380151885986740188619787245650735642582232507578729528843648086754392286213289821337037592152562711914197171988268925607424610083893984867026932795229135217309845923247285202097344874484608001311210922785336126032452895383406243217279274791162162896092928319263063214771683589405080941243970554763546195357162802996885188890491258199608523609071808028110766426943711385098713343254211025989252590564112202627245764822450951883897046404445489337503412924573850801558417945401111499018500311997106672880969119687866543517788125739292280461271256103371960614720222864459743237726262741183301137957075318190255316515900514904268834786407639750234479779460338517873647581387889919948637589137473441674971519692969305609588612385831806694539681457059503469760836368443816399464397850581713669606734070057660325599125975395087759567740003858450427273571752028463608407036542908254569321614851700124596732739573108200016525309534760573336026499195346589528544908070383280165160170984525000038893229499568797578269861781740589989317733647202135099804349791837688976059428420505756493524729166488992568455152711588705157777696108001325038290530204853646095789151528906340260945167563771314465347476675426206816498718633059982564842417168966042077708418048224419372448317657640580109279587174980923462325794902420075657162273716674667473864475492235898516026383648361364680261406949617276595370334625905351536582833167105293023175731306583115981116021634208999764070538644950047586196104108547415454994538872602494426029440526333250833756810875546264124738530203714948335061332451634945414169400288429431833344312922629498146244970726703915682441945941490656503792812118903802865237617081477131973375281200100302801283967363463879573039159597185884808122897655337978797110091667989456964746316017984519413390283097341033248504097219284354964938435878576741488705669579508208220773205967725362946722923194345579654349204276218134510218176074363061549533303340313462353128606757457076331369797629514151896533053236986143454026768708092389907868045511305292368564885139920789870523780778993091300174848463997802257831037132956643957549766482705399003232515771541241506368289207361165052612366457166623681508369201658379595246395646253186432256240913409241754484380963753155904386152766961350282894004987492768049102835190129156052299725860423247809458784606038893102410214728462151961020145040022196414091536372297849599853311607727746758259188905706035619790705054760863925904067664555097644527764299405110693366636811139010242209286809604390967187364948620743138944208687310774601284925179931609112556716138015774639245766264421733836060672981038494695279666391553448039833818752825142350707791255593556765429375876750266063418699394363090535324815054839409887741261565717845970913118856980210086286707110386696151842081786838574430936351083929861581922305226214919082321848236201254014434526192015780923359298260653253063152191570384086962666672857136888893656232920886119534700571641004071398935726136780461867288737472278115364866523053877377772749052416712189874727665381108992388261650007599937046172594018331028490602647143443311259786285211261221096446244116148115289205697474236890152849073298060990305646042729425190510807329094581010506047463218094855148087687392054708218581208353453398684683158796082153460141804743570276024773781831681994174806872436380095147342644702465241089130593754319008625702345080431268436926432285558822138751629544139009486413908926248820099212138738929748717005965596816974893522851005377040870166939262632571432507899456542172363212496494702795252945215072538218867867254260719813722498571743178706277301119894286173519383504321098185186086066946215013949582647006047463873369329056745843388244242731461410704326995462427734179131529540862279234250988829549644721709039888314678260007536611832144126361795635533766329820297882008022422734502661701000309184861476250803789129025185243724630220653467887511264457018745344510996282237498273196668212176240361266833148592432377857965737742771519110418015709177460121248489069692410098179036057288970510666826302639624086665173175551427974404737444648379624066551100817386284751278432386203031797226547220128748812157309045250005400890503485727951252497948762273128123290992614477836086810077657270566885751995212078868701609726062346199412794815679913537795271346964646115467266306492989809537990187773449226326723750561602294473386354631505597548332763620781919005166892069890926159741751701777736240307851663439842370960904493553352929383562610998863658108677344812253655186321996821723636580785466539768221456348668283838256204467148443725715186039611027851962815849180251589086278901338928081437205025513120066941992533789863572527082364231220447811919760203508901232004335381137502230503411702052835624018881278020605917214599399605740768595047748789514151903872965329366187714504648882883495939889507787263453807390086565077645021684865077929129277600770192026155430632032654251427221441250923652146394721883480464270162591120842662833395919857560481403699853585527695828673799975060595050182107417816432540239498575545031147280261562982557644044931054965556287983367804775568833047137234827487211324941989511992127104834111901078316881696964800252219346961826427257296542679563394061916458920031674649955326093974176416674945025653917325406187946482177439607019550543419683596219332209338736893058769555684175752657617307615138704215906408400601297331905916555164625206346816636496750281125316879452733802155788255458628751466970105370598328201866305084953070192894107941297966724614591310306240408534544325346023816773213291878832096665884660952793033309756222127481826129506890887824355532973452388451051607462688496348943636726797884979172793921925789379308022535749456112130932788736166662209815558809925692016517221287962262754251147000158555503057835335128293446704992558903478529933205089802388623705256862338747103538075904467477121847751344637293430687131470547359218544299754083319314357968521245422173992503378165421283104624723905711267610207912165350057229879946700631557856804801700172448390735851739616489376758971921898194180830089483006919258140949432213019581234501250422125695018641041705817361192529210374477098518229086264662508478939607474467989997974966974739578943153788972693277172257790800361477493203428712433276494898038007856974784033456750052379214224486810215798778263523537670069223744374514818280292817030163567186050367125474922597095118661249345327980858274668240461906001400513714844762039789714488428037109202263848244116116657084996409617777465296923472157664324254041167683253935792392756810505600141802014042307505663937708100906406789154543341354762935474784083556050681191845261375687230351171848246586320637428532899033804377833301254701133737777450003075374730090421333846031783594837583373704421576563238723476118171869867839433716557613331857552514437970594387921065329934218365908265749871344241755111509206338560177603141755239217324852309627936702395738439223334521500670030500332224250467719264020995337170441969383076995938468667617097579541327864396192649261939850170951794937148751474804707960888253546563915561163064782037731104894098676934489860664474359632586445705263353372933596647873681472819036922790877054924362180939807929395954556408125449131118229129364692898520693389880551770091004161995615682764487349447179278019094404648360195538782371188131395385077833046875096548283027557292841360240171185233375280751057239459046312115970619222507187308562186909781756991838078437217238333848179929239161216480051241831920602807312277578281613570227438419700737859106798584128901742521869961578788333707928727175534315948333762957126406778690719118869645648716857587675864927305175979923252742207862276549024145348434052710424157937421190713457146548204209141855581902475781130675003187368785986259630158834588902524715684074466344769247342692722611474278814830399658481031767052668978967403858614700759526062073609248026142345563703900386175900017149185524977267231107456747036047174530187457895813661355971849094152066832859767260520979044339483998682322218996612592114842824723692686366643529189846941902491037031454386926518517135504370379968681421815116843232921512735334810025236720204049020347034931494448865582480477420837409018660756636986855600719800775549564238526615126601849145858804604271969930125531388873048900705568396911079646584657266277213890684617858378260467145637647848368159667610044129142458363510180137683350048841821430628378286299784130364435535455345801901383271836457373450026680209033764915650355864758399627180937567038171729884413896742207806274740298050654619361719664627790677854342416169223317368462590479146423213901293761555230472710908927221782535746912078803243776678771801689211958976594285322666768750019484808720373619952138822322717676210697194747649098531943415104548732347943901447958628394186360713674999104400172467762868040974806081783484855678199328198169341285796030451185218135540265261913020980674729573542938237862859261417165496323088168368689916625316912393745610446613305493116535617091586924804304549135588804626969447819806379475184111544989215540794856633556413401527993653910712212924852052437474107122093879212439640877134687733885568398777120914002057263211872905334325623679374340448491179375690574390457185060015769687679018859769914892836221900909344473216107270614410780032823970822896910284315605690762103119528531586136618389005972756184172303006013998964501998512400193605718826958803389947721478396582471445083827690689518563517869123628498255884935881153247369554112702983231148499193546215449353441247884077268632623945514004377181799843657802763742508884065275610231758270719004173340347648345445003953303415825952877813326127010219962324630540515270725692465322471248644947549100511349785977311441158338219267735111243231429291326831347704388452728077232167491151809053713498075419852807081727922510190053855742814486884567525950304888097315277723363147929943732648186477722133332982800483608862876546926907210395439045572363599041762934016154322742781879050418120761779063539187423185226786889901938031657103374102045383730521839514083365514853789149674219914831694616220450982250936624664332744326807228778016779086526890095975151216699622746962149093519994077081664584782354951081852379501086744960412351950092433080484401513731463635780048859979438359266226626767641607663815750817724787467022047154029282560930757032396833961514987828509801115859210533803326046704790961859938121401700211855021711853864527141794192344130531178745891015834886863726480836807716798218030697803000003942009782957290852617912304470647828814169035077313254383380960111505981732421520139634086467488938711833641568723579282654168799232494033112616773211517566131133405795418607821765886541956657887758482653149455090727783932912350088364543946224797675726450271211305967385556768869483821917594374928093768436707130825353084347514051282028805005013104538647087015325767944758720570624784663129913623822726329003331125121044978584325050078011493902074834013744842083589301003835211423624152979104933644978241347942249537062786251438391323480796207447008265236256312398186052440287691622491012314832513263161737919879533745751064094776262173347689624723456891044311022572566883594512831391638898763993479969121735926166449949387633139839154003133159771681254421196548718335750922695351865681880575806330422710408847817865945311600204855888550441016604432327061662259630577436143520364643747078011447810900857329834038864421015295239493640413048190993284270218199431724470965626608574392655696616404349395592508350722348065093389274183612192515233168344603439745118529785976791459765795464907006952935088078386659084948700131545005102828015749012965101629140401791471237080544012461413182700308297369956351127441542479375224810334646498785335274208760810659688584960629473621707418154982440754713677774441448874252914686663776044703005509570618983017378543732528868911321591666213448703649032291826358711746851822316592290197899274398009048692823870252371775917127305281610811252031135920608535824291239259907226414450992006683274456405593862132960107983090564446115845124255506364030429964145299609137165256906687819591484170826781512902710598712851476894706571374990509736647255522504824800626976056055341108248260435146004418773590331556172968808578426563092912507518274557641519040575456624287250073845504948586751125795919747768015611106993569695053855385834225993414103382085869911129383117753544152039345492033869983489689266231796866453009743689331120911885980614034868049143931653080992188708476085063208768046268876765207093584404805438131403490163408530126307097877603969064030520750632663536972841990564067213305290299704879888035801107682032745203162912504298387656264619347311748078344100179344519630289316560980402557108287834773828087905491884330654223823535691549408122372864681561732425911558714081108728228064418466777865010371505723302333479128696469489472606901852091733098919600969348408257989245558906901639046436443256454292352758967971268942833907985548094403115956256587915441008357264793782644901908910181592970363793739075434938847499515351865688800797029755778366643133476774728132336829746354575631490872959930450977868337013226363276232125595293223454236078975488795850176646369532939436876339460601524385304722024983482264357280885398372513373667253154885534163632359571269378678914301496889798873918973243945817463921660695120718050400311383927632236283775531752222360630406277328591250712527040557191952178789031903570046235520852223474573953914180819016419774407784972830408296774377456421353100156819330518112955246444012891951019943352297559812928125403930996306765989983340691835883359386016818108028354907308822102923738811034982977131923947941265662137956423338426610043424906476204825595403538723837501459920634616278763505716201038195868371595802274989230562306100807720877516363414343695223583660883179710187105293278596656412247612711412379819783417028833410178053636981084300775024558712627381059173971629566701214811207875771334346720559634730827084280766607807301258460623490712092407058391653046542224552536706065836562947333748036968123350906766743365287687649074695142672288401125532346567117555042160605158662146293053924747862022350425073313949385642704141988648421212276795644992378691858522115265809414655566299276949528520378844398149455800635965799622239126811234180540422518257046006319195747859733789033342983613740406795401383753867305824580477416907726142590865244724864410172289239799179197695229868564105188623956058013516977113796540203583393315777395384153843324942459994575333055067803674830449410947639617105603362722493642114863090860731628100212849886573803982907016341917253497180166057074338095999921379333567845512977696730148440155228718178155353073943945238622901446617617144579531842571297376755991826246816196726806266071506142410997071840751611917550838194676724418770740166799309263447453088309288699241247526681042999314629719715510327093177066464052042367902682435261703269531150023463168461842969923011028118527013948915674305848526649904198392017035598219923678540554923164436367922050484755879834478220578564872342115623677554182627469759931483484562749353656346677787122007959390241732080833177800771566639457854679566865976832477090208340773607187612410662759017335983597309424075335647266580580315210286939670050865804483057985452863967950922856119051436250447343003145277541819198531458303002978530270356666092511825252921625383976393419096344081965788632060729261519663175840163696708059248930263602622642135715976003129934223512782432854992281421975104563684828804417319911054839580757311734603296985684523442402645664547721359776199221200514791262618839169402717937272853559211405838957993599725165710582036600979197049907566865511262856663058905832851996224935709549222234559166837991895442659221570449364617328889357623186690411276622039052654004866962951066797372351505394409445580824775363834138800683388196483122854415401815083296395115861845965765325334294696686032649176460187003217600179578695591248401059467254484953197800648176082994431171447634853174627861390250566964612863332759533245418846553841503261173734874061563800827809195659157042045659175390474601026740667960893772444401307101751270189278107675202169396769405521306253668542816035917225625184239894444771006087167604313876625918854947327150788025375512165300696792908141915976801762073205003791739034488370735732803875854653851689548004863837636314132443504260696813557072613189578874064867607815510327538884232953736360948801736620272289306794233146295402699712914922897229076231288932585082003685047650628621787087480331859313887355184724778247729451624788404754685802721675013646166408510089680828350765895043368996796577266248671233482274057043989917750541089421104280721941590897096635332046544269419908389066850084086125470036513845579274254818811088920144284925139335679779281677273391081862435079241305873379705496418694531663574005647708859439707841809926848446487784165945186560429007401101221391098967436175698992939567342352180834403911852966268733542020953401815720954383141925943907294455899824013748892451508159747399999892731751377327767879433472201139353078114188227476425734683762033061987471889520100896072199650949006361963301777470285532231353717436439773659364723660311337123570674743877905399281485086781590861906921699234486114074250225992462425887807177365078771011048219814734001451476199996328970405479935720357141720674133303459855796301642280058228558493656673239516159413853905420768923216959810020819352921326199285476531883921721196737467064758915540051302175583360285204043459006652477071080870166928378710469108521888117474134978720377274554528510311883753530934335104775052462496983014600360038982313172518621319146131210874519062423508293216840870646834013675643859882696409765829751492495223662471921848452073228618651659100018039304624275340020621407381560798011423448483763234632025291100397657411339481227399815251635927995892993329967592844255184353956993887150747518949212475332934287676514435296814832069547464138156914971719183756168154406502914670375505662458335693232597003454239884509902811379079330173937839098521203147517309966690316838358597712341393509864077111958341731280923127627622835137736722142910318703065820084729120464802162932392610357149951473275901300422133480702288249174168270553855035265087746728801405209705117558063571882634487163358865800081388026456635529882420338386997665460708646297240137689048116250359503500085086672064012692401090813294853826426550697060806250969103998292383822953514012590892136413848488287045562046997219535112543582526994643791724167230462219248450975474105793040116204548300297461843998401051184080069366050855872156409977907445473621788161064060327900530866129097621157292867486338433554306089066797065304436361214787781934609751009787423927321480757171660016184500161477722219221354846757681524156278367218157524392703983493708278515211645654391961830410056485804534492296116333527384038491641528510301647432975286890648402412143882311984601115352826479422579109911511459127463211107000988669863254860984728525959591010635721775083933878439091870462927771491479249349416092731293876138809230544879767449596161265560660548950688198835762842758778089794212327497315585471744054095409381206212080087547784030248490034772566323487620122574908598416876949119380843834388157012957093929885279460299460857035197578585297504586027294407308664447236889866811021049813675882996283851310410188372567729261506189985924609159730222984295416643144904561994134565452399225620137801484922337707825129659949620131350614768233554579795513189914025691585898129374809329408372347589924168001550982849590384144139436314650727877512625565913257006415857732958597315306554623510054865097906064478010649240275960060041028659137611935646418411307156477861471278734253539955396022048065414682481744685749736445174629329514406283745389522394746441123419425328798560226873680083889884941483569657984880895747626287821708234456621497023014249189167208314985809963927257635424010350966130316082507428138991955980341292248221424023977491159745874139754718932857624097116867224094186776958317087792139752386772532090746731178511831166869203301645784266353343961660615813775761824625003839018841545630069989690434938710428704066409275422249774802037032171662782848240886879214516365367613007323588576716572302241600202778714699305889267569595805400623892282493030097889593738997046446559337801387897468500431322685401540125428379989637461686054506247083826499131256154254762593021929895652168072116186036154768226975435523952136894247399670832113306487594884299008334445911681458020984478098606666702157031420205423609680396996803724436503372083428442269568653449779761159065800645077416088546252312073806826471945338601484616354534324479409691868328155491542214735514623758988506517215056507475609879530532774109564248219576630140205635387265473787998777301700404691084287229934790733752786620755252723219739848129087111516696342431512856676310135268957193142212120492948821623371095259905989881759840777181190367382650463780466231706843659229327832636490156385440241958730769036203485677526621088630422982359369269659168137496741053306327271705274441017547007829320352058385502976625561498080840954152571371897268407930941032058774163576764658424442713275323394476306551999983254640829499867520838905462590348254258117922189026401315603682877619200982448055818945893429363338248987693069448335586260269099177096286926777030682296415201291537370727357997604527450182611952372621575651745345739905051936600625609345830192905183954029014537258932595814224843091258672067988740679344399686174905887228497601736843114865931218140899425389600750413046625544468226781605529442715812761462273129989950699149052572344849300791814327097026732782323382708193538870673572299160311041537399871096442431954826671723808307156828460462195365356092736126229381514987256060899807890916749721006050643947919030331464469558670048401857097579721681886016579309160615963762573490861023808636633688974836598493212545897154969719142331158030997146399983910156984492077762703231802487628362687663102393125319215449930463925417011912017148671137791725255276709934056689960723959658970586940733992955871095636497680977117352466685194080291417177058483003634488275980587346054297183697432529764056104203116424313110564180767393371127419800797780028826231790320781571939232738782367722746101677091820819689604405143829631900237888046030360300410133212330998736219885272535157887874190740813054125925511219458743148290464839751331163856422819080732737085211431554875391208437688623148765111223783077123184025655628214793144480379018529965285268768440385123194432655454181999193748003342464315507574742769968073677939043403940943791704123892598332231137016839979722554128040584489692355782341971828856361605674668631020909671709522349045638534449805267758655077597764331299373457818743420079390839317606810712307976781666797303203150990044762741625840912678526604013835696916771808839602217246992413044141070241724621843687596244251906469209007822589403141223827052930884739294209259014307686494628250362052012327075388799982923053390632259810714509509905777344040420843891323474635748123935575371072774845484139957325127723598780358905320250207270521208005972114040313873017668134085229776820131858086768086618033400506854107439652184105055118540456899719650086248284246496732361879630026887586385482997356391052118526882500976347932986722286670677300212218025442640521194722338837321380235103877558354039919732028459197721687115869584207625070630835543588211669905762205388492344414030732134006612126193964518015204779203590449588570053793090146005146136300675325165316063557641218049498343558179128138419556070595593700259672303977972908022602135811832079116610567088670034914037512825080983414223716269191472655662312082707771794987513846285307349640334395287947367675815230386784534625416607795065159523558754405243423354269101247343467593794899304804056830017248285654354209034092765349499018599933983698172672292579298711381047705791894181562263113255063068254712645684637687954474762143597109656165762902573321591390798862868673528602737984657404439651339718975832219566308016736694048201290954818524998341899634384484129638530351836467118463571413920097295082825828179904755836329930072541037507909465944956910678986523235674564747809956373008580631158308234721196731745311624430721021784984267169829409995840099074544318040848613791083103373504120816219452578785454661905411591433191963273422361136482163302752168198399434085085214890780712575802913595642251821862871467270802935970224391822785230760651055140626102938363476484022936433371370316633967572758899551179973570329735884333370334243103941386026304529123409627206891057626044871577821793018021719721444258311830315082025644830803768607950579687532892615975892164694651511732394238715696619677289698080072880404124701715346891439922431918617845171725834379605521974581434461384007779361711088824054780216295071281950036324118786887231928401246225154590146108782487672963697714030961862787144085258506938189779317139774084254188473766077039169119276295170543484437563766015242273417127151832027383088356833846159132120985644345023864354409786354592045090148453804836823054640038842653972931198394455139972177078057887315984317324669582648681709031805635810503701048318627650346306247505212569655229920335924971302974318296763225134184292532068431527485828301536550197540145495342667770955258362408016750379278433257743497897609107455636619560770689572711978255893341918157532225289097536937318075281302296447961360935867177250013789001020314747300356099246562805620009936835738918224209950164968212157182255903926400769994546531883747524616054280317911867264296519028490123038371857672985954570982821334510813867407311287842496099451552061446880309414500769502364545230927539278241789658814514906226605019933290379574660185516718780497055887950341931077506580675001980202312270466794300787797126285443137826539294609505047232923588871580426971704551105996323620459239998207364031102672644778418847612990580027489316871990387896906561781619128729103696678096236462879592585561591210320772592378241166013034703613811720678560743539590803337010097236736922213179481582595817062500012040243549718088043714422284716993233232909576142718291543310014195366844617109538823524106443056222360402731291856696547900798850234828623001616750879962563159879844866785719868960698164030804623505473894632031630824503930307743060873208711751465203682200825028901161352631911099608925978086962300835585532307492260412351633586790153649542738097995311464073836134450467228136464202188769982787892359873278687118068030735339061036003196165211210190639999016731226868487259676460305876202539426070128129021865679292179505962433858385041115666811314415925290032522867577061718499044701421368851878167036296162552327010023982968706025936946006073708994934033399975775153690829008309832483903079561098205597988089613481493073117475067612144369467290410601026121938221926847419112250252126525026028328083447448427322985888655768248687908670625088957454766443087575376079844759640663902689849349906447767187481860008770943806689835562911374875294604413481509521427752944115286341943768007849864127765714898492479041870253424357079398914168968353714985640223683280785741797484212449037367489630901936662734525631872476570295982518728369158504688289630151147907164751304710968282273264174683421488074949161305163610127253062739043736046860755194265981009510918616443844348196820852904584964394716423599252164486843868282774647770124667410880717748522952674589958234045915870870703039646404937604597716901632508283528478011677506596371606781496434888042595895313442778787011154569367086620884241073323771529964586288195062431750228931159076520211013130820803639383303997734227251540176628799618910495114128811689583134963394236328496227378536681381141313298591580272523873298285791945221354410356534613153996891837716052900602811968851267476209561582354861687954906987912929857705030570617363922136004608496515035920239831044269021734960970040602620026776080998902289803703802085159481325978431996826453932993015108485047045291103850942220649364824381019745041631680935477416455324399552452527407947934016487431296945246122281545156523400930466980643857250001708148357919013901334077597726884327153510675365748305746940538964854925119926601346838048647952739025982526013856621969740311219956235211712534624326317080144995345835159493518514900141620778870973845622497194527808876225035414494418808280235517184017608843318702422334028297578341167442603489209019825865056394096223471041470911282246821108366743110232306381335056281527939661150997871709334416839774866255745866988447120244597380063396559418683123709429693235345714708761512956892072397506538348373971422877023369016144379510164238800275698926001923250572491402776924838386902684737616373938936444786320404987835068059396117324616265441566696635202481908474737963951587925953666704653754930395666162534001214315028050344336462518254604439723448515223601365612928343483438596410379311954288934440080361471221613660791718424739318391027800355780820276794320260444670131516964676964821064646561680639878378027684054222746041550078632083997863946819586649986710987989557725438842455577446406039776795226957606209028165915738787423247483027323854897764486897961422473912942829637732847893498621503177005266915478773217532550251572788515555451144079187548689007120440297794234361690329711112481894193812113156811388202038513056581409286757780759020838670577997141048478196536217338297188635694265646020783644751366462767604296233776583442043406569985435101980515560343135574403626934191203258826327805921851496005035648362258047445655375063656478676582789446009397273620786106120751065329393912470826788058418329081049872382309463889002178267517673395128485163121715616449249428794767163225063421188594758779428722832024491684406014363070792735516447293052688532913213425173082754261656196725971583121930694458825863602718126514106598065707117907172986940084665188229195321278634753182830518020663721667109008963639318513798283960245208246663827963099353126039269860965773366988125792109908383379158154490641335350167367421848031383804406844801709325977040309303297704104664337344286142950432397325725660651993329589465947837459395674398455747893191537938980223278890104232305375253091739460979969290270861661050169354712779056460786837470417590474820741956141085568272672953439244755091918966774148033901411674320518750661564270887668702323135088064281184943971624959295514574795975474347036047924035651830641496155627846262732155047190869946859076775366522780064809622421875129727068886435543639228527199570234565662193604558478677128980201613493653893734361107173594228200934160264438163990315579092547502047115526885205041680759283997505128507416643041307588520118060165898582684215719961551262611648100392519961265693349118894882048569178290431190340398020471158880866304110179769729025788197029973744659713621396382891999495550866516263552336843569543910239691718832160060273947819000180199487507866424733945695004481175046706844290431899913349227348961350809656599058886332090099319963127541203632890965279754904738496684135678802855453049428839763967620928538501963802486409689707084270810135458267568928401713471641893025804298646897024151693764169783004590119923415859138833751156595514109497512568430474417172379575442088090290999410558476883329841946935802025634963106426325528888700501364804753348359319154723835571503727266962265456267140700746660678578906522937847405156276220012588902068715074395580715455239438807201478721094079847398051419204689649114482898066768118736866630113294988043270723469250070333454127128059431346950471777101604223883975509923657012031904547727434731046282429207471499529259193166784442249912242964732392097474731982783263818693694609840521403042386513374344431215537249706602914479924505917838923609460680280103062614133933627030189819145634753982892989201154819481931914907651410683115385667939572593626251958850285471144160352839105946298531976419709111062778302443515973842574758665121928559966910583163125896151952396468955183451206981560997706680760292577792511120722044584720586608757451145005622863536052577714298674537005850526077739583969182258046630221755700425480611614960309751398298126342966345020272876661042001571343958951020226797713831701169103399972318519238474463724956873374770964075620008227093230707581210422951034202108680496194187167302350682432942066805121542548030186629246744072811598968899797384514651383992419528667991583875738516183833449623946810803325730995487270530427602309883977594561207478523007686030153971178200538740068549206879169354472793922766376990120886183356572380951260306181140246600089835975612824084920513971376738411381721092084282155069867017536486398413206864249419765375618156242190759097173902212438671073607502747298975618360381815101852839321540121004004979949026836551043274133376013777936826044208178031345720844665801115615562525292308168550640203291634994748657767876169922926778570473227888908357658275576571612850341404311271927901356523266974228641632129085623185967608939698470772263658785047632863634551157192046722946848196935649066646649468926101735261575745895573890013808355200550597061293693983597471575461988371966670462332778935886555778134953840767981124464695880200442470925538305300895710891506508863684594145320149135920201466935530893842126216195289134285673021722842750571537821140386349684946332979916004509421175508383015917858321971454630911549076756866824804472538419661744123338577168944356893476946847442209883565836767569097456117262100792450621957747921688428079874603278670680415646893271187349043036610151170126795311172294235943826806130716118872841321013609474709719684460668993950352608059320732254598642901075925530660511822316103398101830008961658470232443802838447820891469705889873332609104168967424391630830665209731774654599359916582828383225022752188555270388555940967213479242098622848935769061988509891960743452523999385661876613075470668639789110547633710644344315225310624718192393425844296024240887675316067112189620008817138884823860513899087313337365944423358117161024050315780141676121324974423960777173787979731366103083261908776876605483648651163803396765920761723925225602482272785319859660200885494912564881768609160521428913908417205873838299207427139289091663534716229524033497097943373519579426849167536474190463398562392190879604614061209188754220104186996850358940929262229729484336230064152071370691557261896948983826573155738114454213880843460906475178337066798133254514966083496872302927088434465740929069918126980093198507817205482253402922898587776887561032292572637492420787858889535183879131655259799896561125207593443146701162041070265710072721575329745919260293701004369188919277131477950344876066701187550665870609701507616234084333948575335312421730316274563259958298437151909138430025429525564348987238464746022534598462208892155700421525138093223120297661354389031365931538951790372801607467414058343966865102573067413274596497839264927474554318109668391339246454996350254187384058131232857157943987341496950061998981412783102236915912430204381868849629603240932579509939803731129104002501289645213955967505111599264294867407220340705317527184770951194220225024154877999012974062660615434628413952112593070213372678711998781912685289571184145134410841804774284065583128260615965841941810644120901023777678321041965232703999337156678290938085011086393315220541703712441543067570957177702496586465888348601219993497963231508063174476693381734091405617245557324016484842589006392282279844234740365003054893510898971975563236228979512266262660351955997759919042447957394854548149883849558373292458889687251038533914444595709647890167656612614324740627713600609578116398168837455832680530961240624932183482491286009077404528957263132042965821131326791221321800794894873060967290352920638499296227204788280197243458069999000830698567336361170817044804002090949146582960865427831351287544250359475890483586151932024818179056320921426456723406405422211309907179645929818228520612163706276346168541838645940590959014929749339936581073942562143284367071584760489871372655327785184727563104746721299143527663328429991698945891404402342586019051083838417318908431819931179788588323289587533033368409088740904567377781548238043804969872422674761769304220953509194617966739510752179377293738221180479505481196398114906368709878189102662911325635783726117589187012399660018891714297627071624439978430668912972139951207905696590104703483812002620278201848430952551859754147208876774214409246418388481075162135140210384586041814213206458556194330805734855471810188765893362086797255995978181240020387186903965177894909434150629680410654965392367218959105183857808128113332206096081647254702437686105571677268695698368838580389561371474315646594340412785292212615583444290659620941638002894312315271627073910608551200600907662936337194400438785394751818164746027989470025426752065035911226396913184289347065766318980908510014085519453125375180955390013689172756053978653313158470456697581830494647385297497867929083104457950318046413740945670220063705097547780483440649049631385393293382607895625414069748884687519904351501917703107393440436496519565955873092640748177914820608368043764206904072502744729123903907843668648062353523862301201622362436778929340097581694549367553022194540293891043170356052308185356078125518361163136297272515494021379899299095140802981424775218219743246804901037151813525058339855537862692877458644638008868670562213684314403636807326324250624228584416538003688372789960613618634252930329913095260288200566967410304075363554559048157407922492658976534660971868082704699155383616208354358352982476575356447528196527043616662712367874558667508855272728290145055435932344691446133598840468353058605881226174291747683138474086637449493442110074671257539822515542780875830224503888882737679244425460798451328411668027284586434785039752202001237654641465686036882424093835176431305583251625775016076341384997636245561470164123611699647620375663804592178649852010975255634111394298179129087364605410432023825308474137251574357638022176101827302990228215945536839166779923830462020773335550455809445285961035705769943659197891514103141992784270000788518968286544696501749293238090931720106103218522259278483792722915513264436905266122264440514624915509439751217943016918727053414868857973807817631109301591288263375790723725760631726379423331892334718288740596619765949264146922541337701346234043732525522198947495508222297347480781713694528252715482299501101860223929909754775850845578693391979123120068102603724776649061309943548850816069856597795222369745860255038895410760853549413380044296910146776538908604354333039337251846529093339466761287467467398445146891368586200730305711640130844744028926964232270477172903049359741395757026077043594282146042923550885877262323195534376640701156663279921856618565400500852116186546576859408227544642778230916540584839807794989813272911214207120577763641041748216920101089779592422566410615322247011268006472111709007634393287611701710838423314670063812611079628844117329471153904182953252988540802675350511206907950253557793881323223000226499071791683130761127536226822723559673814734881255022418656810090512770872612819918595084045705360067611153740678329052105170295196568284484949967944145424593239555628294498159237858928860588799841841852710606726224101285328493363784517702721440108973928666499643082150974827007058992837610340195402335627887085488861029737339598641677524500228568732633465747149016739423970419439349063459031766947243419990121652019049149431890165827855967780973521829004890851286195242594271796165352903761044122436493663852377634234842674608686827174753887123636845092772637884410611009039668987578039055892806995309624474403727483516300417295482471321004443041435367927248969205153397293485533742259852680830569534196422002542453515101188188259180810428419482587366964946825633532633096872735952725545668029903180196376733898386865918574472295548213444908988652218483127175988964477166299963419394924846335013680294207451506937947285280432472583900594251836943847825509224423405253006322099541393499805604941355169229045503651987293502138995295455167088947083788134518410939885960765095710704580550518836627644490037882801043046947072780259316817830765512017888904017998245629427396203466555674499073826163592656102555216595153729953082492344351363250218159868247862677623080115186907325147897461010412055966395456260504546153204202799594624361408110423874340495226128033766270033642242648545093073521676521838724686132229787892358894395632253496902137177848131591412892488162090470450863854718520540492854326736579344539238342774836775678610149706776910065745692365572072889815372477271037988182018738758109392218816393042940508961543983466964902039932423273538013562093845577986781843491992295045198635772437516783798197099704121846190784763098210840095529739059947066160241831347866582613700381367573543637368215764452130326327359142186580852065445727726871089898468589636445466450868396457161742136978321051771716572254252125564353754477371483379252851701531320630263803859087680195426006353218832001963794415114751917591707229572841346870155391554806628617022749363964061981525299131940217858034238621688586951935322438548633935087776921876452366062724657606337170983459020884683839225210078688976301044679880046349219382445838908888320935655238746551537858042263664723277009382377118748516751042120962258501536190006398484238673192165268063504323760722507264251965328974069963418613622076169945361910640472668236710899689895897342691089162078394540436839652319060167083892931763685615559322780816674820258301848845976093806410231961892283219012167726529632826460029790884347740727347458131787481776555803900792928972545849252131726370181731568686453552788346640285612360389698678376078558061510027438850337253915663134434662633239381532901165994453189527420541888447506088709924616768464307075579261598385503602656915987865110176030254234575868007551650121930728724650390969482619990752733253393970684913005169792914861586899516950508487437769280490523460755876812284509588455375387984583971533682197267341314782996380209299860277451673106715621266905949669640027296776249190585525917588817336075053773036033569028688472024590214971384022682541551057247086014156861704521977454853606615383607305642172800769403284750755955850389168129153734652864886489970637572766126236501964601087184946191495086485001475749444456252941887621205452245854672421904062267957033193202341653966075529790658609963358555386509228924895061206386993309852813795412252152566156918187312634262744889234894523429141048871166716161658488108374521157168130437242297834443738955798126727504039549412453232670724189268466261367409301606329175300390862511367463251798550921712371133068201914189809685000460502657969611046957946873045394015406648788456383634536513941226074191008163324276769402095835491788704165184874166990534951352783937939694309122503115424419391173925788326635932771810466318693234708547268668478005606328523676895666794509506345616374385418215887166039037886305904390617739122414308365847600527644635215413803964560716334296929436424773298692554156007195056492664289221236752227740008312261904466715503116341575799625640499203866344232863038415527489353967535511560117625696894252921457407179499831742826236949820152729854403298789325591408611433258696903640853813127051690838179968374413725335525634436367891086566891448382236680449936367594411811323591628577167697226889949427219101923191550009837910161056185433592447116427072674928641005679599455594142726827987091201118703954338122080824394850072882570632721615706607330561132751378505298822484840066811287586914620781445234554578903045460939765497869141928057092589792696009117838406414162786522094765975421722594483915590998926556572471949796641584364638742875690927018158091626605122200934450692588826058652938008538536029960297107050806793203086347982682430309899474134838287739889016633420391786846121757188238474630293348978387905551696280767776800506774164094766524021562197739523711609053428343233619628543401833869562114750132015443837175670857471988180742513626325383309969277483273605137407645562852106672128933070132864847573488973051289209112082013841475105208124651829176251466683659238720024111047084061304249809104342706613115634680976059668563164305039915814157355300058659410934838252859657581386687504337825552972139781273288200327831090462792123111803793983346499282981048010591666673365576775625583625843183803408574264138033261787143063000701049289574102305263699916206573779845809608665174085803482227847586540931375271758379592027659054174087512143115003049091766417206884448385069599940168336588124721682731384490651997944960781498288504563875821130573862631898064872074606358675406106477131539987181365099029192798845206252404406672847141445341614715503449770927387420308958320275842827982797800022128144700644562078147148333468386796066273930536948776354560764703598029137622134780998671951852270018868349954646348194282173674402287197541739200199312731273164660486645432231163088241587237154867434789869813702948132426127350386033115575794730681636118784599848277379406823778872908214616943433272918956063307938303008508725644683638947038897983572338081699428044715457084498739401672061281522660221211488718407321247977099738215603580252357350296492223948572958118219895476628880265606918206819003142718508240110389867860208351634185880778522424804202205005105271231005927539673448620952943915027491321445248026276258144877788120459646879967439048948744904167989841431623510045621026679631136079723242404036124856835101828442897501447541551502722188564781484939818638757060918149013091910968753834685989010247465689408489757198025648740935273849332256546241400845028112977888010757010317048873093573294561468700703015895048225416696300397193720588874266840178379366896078091331011584529158364225117238189460196324325889135149070834373801417517296624339702055879346064454113172765032938074054453538339781932418038786653617628748020566847611463337133444596348803199999861429614057618681157096162022689131521544130169759238858633585137076748156515931155721393392709303695248470876261409286344596469183147609333234779818366292217323540283523551856421074490718832656916966939793192879068095900661538713859006935758992590317058894951195057784866653115613130151382605825205967771880195200201669220513280570469696927439847064355015621014800325893833494193507489529259904465145276553830528368117297868259894977359386338209530234774434199960222319329068591904560132439491796974412864601092372110490201674031995600322673031967580226278445698985852488631550690654519471771543228512500258331914575187013188246216123433264555249857802095038885426980672076436822700147514441732900268213103486057889833795385076368088560432827171395153351514848663287826305981765899303115316978447292311045423456905333044252566710380122437838905962301996293889826513698956310606898116445606267934387141473119691156857838616016545382694762123657019812658314743996509872898541828665045736436008994998679642050629098004574321894625321083179143110274374594045730477442642877367185022231190889805263751013867712490456669010474276190626415199808357672731522125420646298722882132010123073045387054311709653982899863601642823931786715691080986779859674008630407937555437898287957644911478227223648375242885706333869747652563305861060604438844599833121980115099590532085517924007598116383784398488083164484612803107069550771223119726520916452606006961452439342804972457277129169032034395928159745402508754751591515746762301017788834882371108763415281593449160118737344438758152998848559116777962913962221180481725967620169298892334975622137659752150691105093119634455688079365147492268092376894930871260182805096391525784455567035927190132697109215680271003188126077189550847154143203392026251158022192735914515552209016977270168955785171024078311803825839021441113832258615760548286815958336258571540496681703675709274446364315978555236222065415493367199533551093791000088013133691551627679156143933477833399534421760967729244506341193446258338531866081807920474084627623277592479021923019464562761822728644275580615744727375289837507540903715710251271353986194304246963795294296396541694075169402937051613040270163622847245534668921082154590218022067873916102060228132070818628241238543111222103572933293186774644573274786776393285725567510307125119463095543420483841586008883249572171501043874718599106701525399214050022717602388779281220152713933064468962548805246707215413064484216142096499090517743566695108979503128670477768457295819280896982530010519524728859599215500400739702240009297040538809176894662339962194956421586402942809235118816240484576890327137130522036976985675816268414921810966472812553614600315038386940386075050067516676346248398976792806724610545750879638552890758175149730616011085695702848126225714411540745899344658897542549814049297789645965392645413272166317036297269244838619882520816113399110712704991010314791737533344118411305534983714933874614681499581713983679712581305931425502983065491159102857555844014157496951285111979181201411093477434316707663025416820241094352607859763836254807001483923262250180024195833797680847994637300551836148180050415779748312638701986080798477459127655835341216548704623682018422843862733036561200576712227015242395497387096716237312108999896074590025035203946940063658520610800632108469682532223644850155836914483597292429194449093938260943472056354542525784148189861526384489568086815168488630916432440901704700301849869647982713840054487444346685173170374369442371215499645996042484787260766584503409518173213168569964587760631128263536144271940261093808357473911888739879412485919642166477682755425688241365873092894809744012152827585024055754175704092479563554284501706606147024113335325583990000079964933688108753034997150164490832547584928055489829846820518204877965956765636360941654527655913258882284139908357740445806193069036877785623883162117999918193742868710900877485101586355969453182413534110713569945307825158705702112898463364348072395944961784220422723180758108913305789709829928017359295642649437129941613367762896286733856773639901480963857264950657864791114077227617524271387721524842056060392688705553622827952059641907049416050666302554677227086700662056495990096843833704016321812139816709906075428847332698105877992166014751317919123837972821760705368237691823038012035660875599237414645812255980926989201736542579510955510350133057985460062022887786644837642659822340760005049703095525668642636548082246845245638754253500265963184578050126198341513023011419600817076725606729201410568537166442563571265590700621125702134152393444495015160152807185798244869278502836100569002955825740634391697473671698455153617402416660232157433594763140868331595997274901765235637390614478550989284002839344872348513539161218269502945460725854065889645788406823610270410231649712031425974076115923218496542166813808631617175691645994015470243912479162611117897929699631978721980083298255653090517105573020274549114941048608598198788733990455655460917363976719707129452996304705926281093581984589513020683060172049315633035717175787733605532565335975155881990002540619804961278161102282623121087893213625286110736930758631795212184463238544577297784527394229343815060709450053781791379831199014017443156478979240504433417864793036815391707817547510211059599821504492312392325690224529759319050393496160773082474341808672762592482875164425958995936890694443985492647356069454781808004339706192074456905982978101183778572647722747464302532323668448272796634432852681584031108713191089076669335308297103234674602317805565782951280368625314360938254440249795381770439177405083983589692189322150170575237332112916208905331317194348463159916978975437773238422907889156808158755701472908403780716670780257884884905877226063287365698897685467259350304969885506316834490656986605290314134173577071569882568703531712736971889300290891503142658794363004451957115877443755871452060114562559568921012156199443994439803858665916909051765944296751493459746674429548522530290875454376869588994067236521670671900333680297551098581626164009221452924001725817114664872632708811482285175206145392470841971976314308004212006568835921430723971720077736468219109359560057110124130339629930754038364748849227222088556468838916240848103751790937020952020125287842187054821544892115611224862944802305922391510417804072374006516566860707994668146555373619919002701712908197046640687230410364218737411788751061843780652379894091719664096461308616059308026189970812554496349860780053286047507374864008193398587064146426417398091460262485342672112639979441903810284534032878322032940436457453966782671088224210296139629821903107430927149440265355978549513461387161126734750119095956021026121016696924349362877148395599302349429717836545862838692762592203895797026246198934663572972644121531157959277232046815143788951519646468939406488179933591706518511568396165269524638885709343860053133297179290788253423999456714870237883594976466031073568159419449603400297385422498608890182673878140598217827814257796201004599532910701137289410826790539990184234882649555490601814623084317717972201527117811162960286656702055228587479365937192434501422461067598930479832366934996637886273557973457748786646900382196231320420484901139821491521580585381288034304557198708298584411699211857063339489065027926240070943189016555440173162932980623702672780183886438429398416968837255921623336384238293903012581237492830856186532156726418662595066353044709276998088021134668626019052893029532094405146796457691276983703689115437541135831044425315195872971849538328990875691440847148021019410079793346471122472646434677281708418293098713204746157511093446945590258807762897389688649486236410234586073470903444727445611510877929827041196071946537181125313539243378482095128057006883832515465189271819862172849589306356661782488905471875453276473452306979058018202092160269887193934483122777038348306216282012143581446130426958827156008997821698922876205459637788875413980371073100491227841359382684795299918213891252843009580668817077713983277365344347130749592085639815588755665900429675025278548341943272814178928155624732740772558248286131929177685065795592843797258809753861675677544387336815054600893006388306241950276676926330332243647964865072041428815036012459777121926532649609745711617339005946735023819481685956596454439376962396824365516681511873154971164896013309432073378325119580810661598446411627263378282770146846785856268662015733300487159906942410772233379147353207999472716264460204096504724524493435512472013179269812631383431335500686373349375506380310218260786931518836542043982350152346618587878607213680332409454374288454451002304958548170182124803556919677098681720494682157253639492191322711213974670271246743203064253789727228442590838792797757548122791979092300428458737625366851018121776874283363155330670396976318510323872537763301555138550862580163828452362635186045111571126093877942598565240116252761735463487689487384781588406062392425733454183373462069159603589992635691614937858307342975698671389205906947704911847983769177850264185954006237120224372238291767335999015943909031897516732318450586437735802821442074717109269350426497112569652115418909626823804676194702957355139801153527184745775039380340781436235358320582411805419517579929559043776264055106984573585617812891605563602357687716701664460064737376322804190620641810049443611834936035072054508610526912536086601360717399108043229995648253175722017182812630844932984276203368857724008883236687672442345608750403407576176066111937055269574950219362108798297923386941147199423875803296474888061173335399245945371325443584459280661217434428348696204997991744571323934456454842117616977191953799176844162400834479997347638630524000233982585077936228309937666719602916556252509687339961977248528103781997701129850877146093979446693274985508824124715110767297530730435780883016449603428955011169971807685089638582732715879211779776612168567995427975035493632825996251926655434494519011748121879147197064705544442529554332810406365636421185647273611023396143978485040408393360089458781594145607608937481084683541976491717795083002205791586548513670492164108688855632730325820435131587036215778890555875846486468236949860209505411853260963107181351034644128485680693902216483724638870510222803283865063609941519635126426903703407621249120852387497037749522717313511205973494744535792949807359505983730831233243247185165364493471853283066519444125683891090910157001878037617973296464847051859840358017332902922978704337854683809652980210909999328485882824835417648667466267470227825699189558878875763792177550193083453601704864658314688123900891831745770157454438978224286203541315960739254644438535690806483444988196584708466562483269114918289648078852540463758880910999386003482004933242941571496675457974262223286711442058501427248073259978419352484638981972774343048050419135092240684372411642018815203682204106040732274742902174657819479133317564514892453886632007465950858013881423895073657853111706528110636189524191202998030269433239525011808352514371325463433687750474325727158512254380789192980445827267446490049146735310586464999301360223610162868378571237316462079862047089701673871138392531403684375502087528583851454491811520746905734376998898297477909515906685067743117886160214469002255075362035772970539350831384096677399103050146351055931192933255509146901429155331404153519379873003106174455588371415234849827478878707677784293646790306546833332866780510282289954437613857578656722289919360072204125530021816298217977441666753621636497230754298473116991065820090930992451122496079340805264260778718551800630712593485964505954628516564975598409879121497774038083876984018258463864727301089058242340914042697786626374389457045340143770002883638275136792010064395536460727333343852552097147524611560839446355770651731019961923992237931897808895116198431276376942401382586448332878015960232681505408603479871031223005065033694213567806519407144217094733513069764931917823679838201831048896701635407567262807705276042902174486905274127375558300800698021692432994419198180934560593865898958826198759767435698772858224753905913776737221760627561135814882327227055520237123017488250700199593665630494206506499628934586306165700270702375827519160612072501897222876493564462360477396168035797862001660617015964518109757333737231938837510718371578343286650605288336068936556849219459028042317764220458052601724589132263836849533110167958809930717518427875631575421716675841576273307506297721991234085205388424597925652544596528735523948306471580127812736038826800633478872422410700020185782704452766490693139525655970164030188967166635932446217334415591144800504428120141396942027135880747707673135954167115264016070360011793717287813267218012052444378953926185557234715140696290643394025853596131273442777899822843238838309254091290346955963733044249380736245323088605548472797750701233397603575078696609415273535964141347893448083409231538761921333506584034461723550701303906365186732298022943846376293283851203400074245192387725426085737709674097144530294765149722061669610563266478550796585650267249509618101571638723984530687948431856814143885992828587283293706235713112946366152954662348883699325877659938236470863187025120376027051249695285960875602939138513475925084407517034201569480376469117844247628204772742799397143359017341594972091567183564171103838361232786394299613816158892518204218158147494670337386494699962527602452105138435404574119241598161428259313766978644767999241011191858918489176342561782631029722101046977624591982771232896570237480858764731339223962703200783594866546970473714298163138451121513401710476226128624104083502681449842118249746279157522782416857326148355876023822211571530115768262049812763679910869909360980623836110703593231648078729992587997253916804664525792719284381353323423333408911172349375516409059616434213796479562372847314526381469951118460020592121436284370974527048399919016562172235894674856058394917105719421077637023587748415928323929999566855992322815991704506157452491328550548868036384236438159622312609355354470822991717729230666103343320205252983163836137869632298525832832021738382419840493961771302067044854996418860867343949437255853335123217914667367523984606833506326521234100526458707875499600910028697591908205249986140245764200832937710967560759782023539460335281855891547028939149370746520373771442915693589640621436635216115892105573391991880637968128962996687117964236267378515850714260661419943111698171553841977719188549013984683453802794970491263254184279346632869186125798623323165835997295566861349494910087816122923825332918241013157623872639144512401595544749188085610096616596045830913692513468304694537416236147358650529080970046941205372344955084408802313402160819288946737747429210909344143810642034847645106601353633274210947413108657501602041171904110871725467873221631566509462129365648285282123354006341966325933909796653846508513502961552413124087313241032940005774568450169340787164737246628584180834600681043938039541438006757518988688668027783068372210115139699360496288388683668037583286421490660212796551987008118129700351694936740618705975340500224193655845903244440132928769894919105690936466256247189675695287659753605370930385577529396096726590476635235891588688557387150637297184138583411883337609444336336794938123051925009386102473399197890009762220711680884311819763025095018087225331278996272245061206615394768507073328191894979127383768529309880875521513976529395966681815946148630471865169721230574391460700815213921202562457609010677204834623449856899076535464099678647114360151494064304212787810953268230638751502525513901973033954268124147971057935685349728429081087652758718133645152707841334750739842092360072119248421082483564451218173019753268048811217487661077426453837087864594208163023233521308207316291510940644964770211318887017476708172710456521977806572862265560411775711226969535525691385297607378746598553813249781262671655385415694232893002873524554322335220746973276111304629938307917609030196077060748457749563497771497195374358150337807348494778301734420816676802687569906249457183766465864614007491673812001850719839829199131136191975860292860321917525071003071563837155126336261190372966553937045597479291635998403217969320710346108278294576484449018148574053201993541146948830064327850499206389902552169067268762656437576033605883967116650706593539112408032217265448913720876217547176714920245786237141431273974151241851921821298392633151714519761241445835813064189712798813274247225535500632635472131263242015553115206900639398010180368512512956374135844131808110162548380553446601720470567722010048586589113890656004282022479416626674040470666339833292305616153458385097512074194985559683144160023711781475147816854495663888547385387721180398011545024308116886670860525330395956593321925751738033612657406008145243402155547906026784003284966218359279777749502269634710743368416383949276368462993630689505939092104624869704535093325005759891395988850350281865106646705542763428734546408114950537926657207300936135003482464871785807915634153698923624412108181351236044194231251220316769861594272003543270372237437010605171884017819456200306776638024217160810723720519484751771854471181989759973353388666776594886020383929875757109306335832040269081917158461421708166553452837730584768360683720664646693989893019972408590408962392881159563962139886111132329985302022692911196281578166674263093951275405867208045442220628949743758516287794672018156727188008748925973995519279067350849712776037513735526653397836988125526364877933358444775837177983797962510537808314990865988053027900857226248370569179978078145354025108819875968975501208452432880566984179416980544272449007547865529909446224826108439575364021958739575602362727096471182013904156986429434155178549794920296808898305382267709564084380115830836146741133243198685261511820256410078647038954507411406638926664069358822249791193625499942562143084738199242108494245510763090685970097675135019544224382298074046489340566049832338215579739262715150716460091254764366473614874143931920986191999445357811113553024159598575741555511966693966399932357632112731588517261354086049460039222597483922732897584974668158154214413561523932520190793002890168856671638150446837329164156932000607960387031078806060851977521855445578684817082818408651550231722818358378734946648985560415101655870921001385928423469776756802022173198877037634673430182666488511638752781750498991345991071506023047920415840346868707919500669827112793350696340660450140885547244027448652310610505728156218912591532112476579119964076487035522920949084426790054935423473554481283349199789056164898101540585052071812841840121347970862281623379831132849618001546649066495992066300221369136989956468859768845109793200738708649818853879969405822356778651141562926286516931472741456539218545369615640124688541968797534633042410253208931927952635599539053797888661871377719649425363965703588595071011352512984007459348840073711778507478599625963020016632931812371326937960673747313798994564965159082171542033167358687095251083078930674468686401624023727240826876581646754322568185402628978363631470269998721926489594125293123820403069245399098783274263490070250472632264294049489623489801657645224373455378373973540895595042883081608914346597055013269225351376840717162412900540831310968058556998452104524143457099614799309936256506382008459852447987034364973658044206706801557111395476989426474259483914196889824609767108912785040901327054515036033077145602383986099548672744913113708863435790629725573681701866389514123140678255706279294025181878142978490489968244025112783111251335714411962178284453238142850655274744179557586503307038519819675557880797208662801816813367663465568239074405268940740929813417980573675035594960055528386845060841283979340930046734633703863542970687589131445138645911613137197095702617571036292251289522525397366955209842339306288518238053097204999693988979364480229951952116700137521805605113680433373211240104616853425535551998321801592806196078948392484048086079173141389600248680629061416994099464026360178950551248482790501877633232042894940975344319214320606793000098957380691819338707184343888331733832622340523825499383400301065824443499027006285972261251694734067315001903360083321047960345860175616702337684286036413929839301429971705190058701316089073703816686922635905308411254419972025410437957993943267144821910775941857365799447671422667567080602307673804402309420702543011968395734926142290577544668623809715656075190791899670268755344990093023995242164594263915777282215895339387028837747000937601327525103025946557075731347070327307413305302771097178441876255873891279595304569778714543351178677644057141908504053811937292202945177797620543507969346020359175718028558579496839524598898038185029751015395811619350752400564084577135624449703434883206184292577714230266579866024458390652994630692652455650235385534289213014986352264715996253147396302183812090135145811651461128980848117189794112264255399257058053519052019142957882403594243656383910423742486797428460759019657770329781797446173586080251909898985331106396375229388704012753838644270041081339967160873426542233588770928277070579969286755260757628154862436262626816299770466572993327707432016229004543342552648792838435394368723908164865154230303372915622900719091026030448108481060595562360369933540725982306245611018012963431841020395271727290603696758333875625617777015424044467647358689839777236796505196879677336107730262587736391482186267705047064953305565073578325913895065275595173522252376753642773844005215672818380479711312042263210100198880607647500417409891074914473609627710294643476050393921021254531261850275351784228994273339795052722447676012883327639009117464055420348487102903127611978488747779538394154873771685374197180324088529457121906029413468090749755634254526339866343433192051793171531147114180880087094434186959760606125592097693621964616368268358576878448888852840190793052911061485538522328961467803619407000009678170830543400418341156459840504161906433782987981999652726471372904091602907116320536111031428209407357653857196019400481057150382736928558565070101975372788867894517324706104905316908913388114698412547709584811389721088862944024980914254341018278000074773372773566552336073177562154345913356394928406172771780897281590602573482449298538026230472473966204345038268769800971552408227956905703071998570132625440058978506199091525574420638023138899538131048004991664847211887265245704799650735807729399203021823059757173462332133650038930430649641010311694830496060377286713580116056893932959410253447264694833988957864563962316557212430855827567871412774094166256351312089286324977376043989867361848253317768940004408759345722532602334925595216010575978689036084034489653014317619048281394818408382848693816386106749702783755766696010874059966077508953209544523610278281567702979160916404832741456436733677591960713117130720784940771111546660572540328032824694787129502108703743406160670879883923144986215298687456674135559650524806638529688875915417556487837618258100800184129003309888665749610485430941197149549536110300756693861040421303469536019851560422428037040762793920971792506021675500557138247022428461401898786263851288399160368850231982952353580809787064569518971912092747586309046315281582764944957914115193510602598473443609156791605039671724062054235957254560508995415207489086924373663235283998391873142731325980625084268001859434511707438542745553269418243603210599765436471156197500556187649309294335470506787535341672786891883154944972801830816436313121903215074466003824904260602292545498656489667441903354684624164647901397744555077317909449594936531598208001204341934498285289233624171332341747901541354017555380199456250531991909318412769933095465871946167642067451985895359208498205659742765045719891607022907384012995601084956227797001908828613895399246786650378200370268495500499789175394939051122114478299081022969574710811754869425243000562638296608604981622290703000449983616611202305319424060593144281909588591537003831194285326094285402921340784841213885468276705105161620400382429699957500739524692155509897460634511220354076290079174268208898736212770418016979371329129791203114243319181441787839863249208678203299254365773676440586985436367146038091706127763899726349121800105563378144329504527025972879089140638795156273413276505178267361375853050178909881616335238635594535891617140583387889109444695485211483726150171795692617132954410833105074401790976339078299048324819553717604804613211730926133133576798238506708639870149562404360721395898577995648949157118590135773539618289058122951939082541638333443394493960634872670675245769036877836249471891443429026060586597292843323824689142667204256440851902333024968483463388599409794600895963845525010746935034769241923956512129556666832300491914058627540196050604330078541821203003378914856423451421987234433221479840111718593891566139657139185717387478755095089383744354544552390333451302299901218956946566865549190707325224797834388506624172718262145309750155867947796820189855075174945398070917005500024697340048330417846982380431937151005512380101710028816009058964911091785245086431526277632560506292173023255762778776591954494779357995327215047446196455065660383183440509642701592322149626687856936126004368328727891547420556391992696946183405536062418132048775539173029150653974251480386299019665823293588984502115303591304815169642096241044652151219656739817591248638497847573502067789578815947046260839380943781444655864767359031671684116385509485661720958326017882508830714491879627285757848478063404675373872617688079584667030554199246833742887129360033564174420515986086206257475528677145219692122479832755989969051182690881529567600619490210412562885132435849982346451649100088116341009077669152671118846460935905872666046472380545119750018437667106599700973452986385637108989733915960098856478709529162214646302544529401009979199068315089092743652725951995613133418096944056423089665468953399465103035584655615300456262415847335555336874537733220786261066700515473728666057298198198821496058424530321623536106762224826786529855928481757960598055922453836479060620261005991546853989776092103164019298764603821371277597825005750001636752828610590028039331247487210900860065420874722869699969758424980548290046402459452747312098712849633098599613719933066744389381838264355655054808741988749173932836312731156796712131967494925061226366493448473440151759855516210763507931409648241871627514739716272674298336530816533224324987057484907673270334296853918411017600505894781288632498512442045310023809701141245162951137995931432594374339443336073975508508055222483566946178752179971376961388265538341544139770370888098684930693428026215083622308353857290993523427337509342053732456322532274138475998531108124421574064788494182332808390754107472709664302223684489596621314582178256006187165241379217359975361663979431727674567613578323251365949532100781458527758054663947704809838556378067289893947843761245987604756569588811501434215358573648520896975719661797651270549944298015732371806881187561280767389896081313720893267129114035144839247285249743617278043279377122536815946668832571068573707420147724232992876381024909521208826629846075747390901836561372943917438979661934027468265017018624040194785371240192358181709857294967773823172746231592266789897666538054431480890030400907570054473931125964427495199766416840828596119966200721478577674353906488843532791604638893582011965252854216941414552059776830062892953091341177916521665874250012665215692015645823308136562960505865664529767878188203672668319062435711792745521944379896670393425522507614755410023292326721850676247899272955407011980980726077724573211674701104727814835966830252456802402648760603497193616159542492429125949642519429560870398977987260213096466488819067656729744503683596590794576229188069119567545300634073399391736579879286082991652916943067114240463576365465464197308807437546524266558851587388339022228021814088228455253975491722396966987530143438385563720872651413801545255111796804040115796557467599562057144685933612536943979743991903528246977167260757151829822987244819163917232138810595162080578820662852191360987400535204211805942317031420773591626421025151304494025994545555316475704245361398534678605257224851992331795163295168984269501927710793488053004883935262947974972913502432618103584461999831845453174792984167136000645933070800170565020378378356593376116293377427842507944421574093354591335549420528911644589065610802120730526759146226187945707640043848273881731116916757294369239476685525364450799110068413236765818161699835906242451334276843093473034040275096350206147642700066058972599624132381132040663898822191914435721439284740314031893995702362236079687427334936839698072063916584195245349690557653049269671323558753246264715732213686770724912384726034702709148738353651118347809999237588824828037317463258091607760358580608166257564872814158697497252520650845847579979929845135948079701333174329601337566829895464250705508233253253989544473178096956557053669960451707563427080632816835272961240356531750053321256843236515007875640954867452355718582181045497692956296036814885624972054139906888838513126253114473924402313454990136478243645597327166506336261469181749235918921460107574517081891593542053525040519508261595863137343904250567486723765547960673493930339001116584002020008973169525663236482371665861436630893281020468161067144745861234500696358841941150645165692723797889176084854494107359000835590560743144647701373242750180113683527147976444397762539616857001877503675750891600034067383864435460607759384537142973388630427355905686092819079446515544878477882824074117141716980299565365758355235264423549003238197787166581744231049367038928798982318861182339786793706809761247668443617418701645763478683557930682004801041111795417444557373853600889857998061159295798819475127871582360104089155755487660038784405167697130306811665864461429497804464123054436373552202266315478059135240967748647187569591976689461940893213249186065940527071779318122160803506186842141499984903197529527330603018707753886711116737382622704805505938374006207243850420643389293346269654517511247473189511189947421551091654718150449216845017152800623040017539265502758021972073767883486258678141998185331613605278691956391721592641640953505893430186676571346910680951211867768454538755252321940076820336790715450698455756478355521941831727129880917387701786417494461960967085986572484728191401334092767803766669752230162285972471583590996295791677437269702288458213556825252011522164887221079932169422087623733827690319071994229796162199925967635744559523302363880429491526848146160103746612627030170851155588312571168190256929325215643157549074480705995910682837160496355245448601812288006206592091025399793686829960460726250833433276627760959226716677051818685485533276803388959331141773869144565521100031784178100243021032855128544458748933697360298745072974605654781525089866572364370439178167561497540944633005411860104821303947550315277840229890202489223361966939198650155724679008139019409881557624825971449071695437999315265987289350325192643863278569429237102514350974432032941873030497628054229413020732513341300341955851535569785950717680689313541710390412917244121108662205107532135773700731905111805210133197559544058970563477638052551209335459482541018722117790549596913347001396574778766042466224984316179372595900497599562264720086402995748344190460636933954689248807025695605883442975619682396484394237974059261020681730409101836523496263824877670191873927122534634289131753668438845607088322187390492166221385525535302467302765939736353264523275140504081337630520487783245258477586250832251723191397445122563507320479072573259285945245494789531637417013757020675484666487631338798199346813160677216956241009895469032664641453798729951889136138935403183253412122521892603707433852855542141098359889507227943315357434969161662089657859945610837995456612114580004177887353533220447458313658395988965210583520529576515879723561937413700560837929733960486281300168498076429010234544466556695131411112294814532327099066894187647808271092408384429566556625867168525025689413004261288622788749656235677268170625120464075300339727811509653111896168356634315948419521270154293176131487733612546119030990505560381820543393529705890595595272850028264549922937628244707693234320524322808712333005726328637730893426383946458081747993953726199895086937352648212020417387997824935052346230152493033416733484435550351870486789897684101001812114824818630595576856335632848650039526946590492226993711420126391504204014642880759224873069427357409842807788456251235854980893548408637206481812116990141362029458990121371972216464421131861273343906134737866601544725229284612025498154776649797667198950011749939060838986997931713567092659099695097289516333915907341569730519537144477545810280289836577818359250796580288535878453335477031926463760520969934061908837646507251427952410729887168945628294686681685695449709047264784610963717781279923352710782747024661626009998299662261419328905837770860743732337630810585996037024594575721593418150886361782810011226129139807249809966001301028231120728585353115014081185925845781230403433374757408157415884834180062617023004344770923710994479138352721765071485301024752663247232117065421088779454092896088452305455352043980312569543373648104710545926177842408175539636464341191672207610463773224862800640555431123246333408410051165903772830247235081386150597712047401382912791465878764549298612880590625346533244677687299160133275947401200769642837112093231105187630296750538117035255090387198474963390297910563905235516846423252429272205359947128354060341540212871375236905062355653758496677127937524760729383805710516399836198715703697129358846099050825747002820555145321576870250825289744399430995608394778386693449278747589916530600993997801379308482461171107916363846486844229179858727674141728487241451103428198021712003319734670665238170118575602187219216820750664647716439304567298914309554169428117739198418498184277601344292420737461970133948268758096177083147898732652047470608697332709399558530310681638700047906266238569140013184824030570917016603712714925147586655844344146560774553950129136587765256900510592907193886593526898283124227244128549640091388458712112574190237707919607280065352544947220625287175426173240410419419160229488493623222887027837137656558462847897485573433477798499743576045646462860206184325713206836786028034756363853913175598563816928230138871175134317027516204165577914333625824993448302780052541466226707716902927764763289390092831626702540585789639604268734470755001021605237786983612300140332938405064235009127198512171395178099150636265268357817892593400521589543453521234040433515996457403339700618053844467925216023175471123242541785621724328645176524377488913043993423940238720577038302897505610867669432320407300429695667282686014285378995956170747692534053882427690720965889512546385982500761262365657921377322261169477496764850036182171222492029013576505323411895964484268127857472888771729920554476526430446167371735644874632486907914485679578903227015000734993235194452281610659575185987716613075163653224078518946554654000575174210499817219940617496897708286288486288475484147636017863917043945077202965593480669759762844807395736784085391781981612937071740581817455361800063572813296711953433385799748293806297890410250996002373122171353245016321748667386034222429670246957981618490321784907194952902926168924809472175199449810769534652017969278202967012760028934596677331131303762120425457853894035522737879365567061534070007569462934623897708596416881131334367593474250662266652560153971203143403972667530994941650687587398080714624007040483817928633434353395236616506704661908096613181885941001506539862828511307115603560385637737633057111607666724759478025445367940046269914901772504898578979360988305338822001553602883938939332549770711920677353290558042581965868533316944655260889112118534511016722945664148543307161876953673470360378316555082134964333621742337604577694027338019060695180484828321874737146774942506238590528486744968991658739500804973041846626124422183918842957029546124611745797788060808333517927146784637685285059086096381373423944807963586644303963355964491516362063527911114819632862294562508031793547704987273253930525978621161977016164709632345511425255153463203178551811308678126442137881555660833294320866282113397800379150428665395290691054731972964740020704298942318668221505400289183422060503301151582831392060142161424965915119493065332008829445374933667725206433086560897964234509716300217523837427351558760495958809062422548472073480915746588663575854868441673532711164444117350214736935956090602632352754591911320911363079906552900918297738624860093114201044423398023852565982316913081617460329160667674318508180828317795470133694226290203868653286866625545226900843423173472986235282430426029794307970511482016606390233214974877868270734855819860791941274907007513022260795457614148766285472692796957527479980265227334738954979463216731518821528116017844356460212768964258407650218143370431286623362087728088858750185043932317399975057799553497729447229512671407620531658084075799875917223199781297329420641599472401816703152284148876505796947943552446289031720894139180099187927054295749328223067432141373777649809597564710971406240618602405869432067079033377770206925074744604782046827335057473647079114578991497823391408850695068638897884502351452753815992035907098489109438553912353812946491406126630349013028628021072411658789908867725730255672707016360327022357576920320739450179949989458084741721204392869113161823941185884846477173099967887159483179504318356746976650169069192588935525605315767172259518069649445299999886319150219912301447191880223867873031346870814881682981684232474451210432073483628886775212897040824330663347329453785376717380197237805416104962255702591521798529318203541617339370319208448662774356644654836330869141180976989813604689489672887732603951582125121757234398268512242757140026286170032644745252754998893752718039789724353317868062712859408939236870334032657810932631027143425752331982994649285261283383462497528549974767025137636936493803934013721900609528460439932557315954675930751566898808982004562810774527717324192079213744801287024295922351609343979592220105637800794725767333614937249447195083118893524981703631789387123210990381127627899053607587968429823816994341042618746167921966943137843193967717998480504254892780146000709574451435071335343394148252332605602034087513808331881444122224411739025353011535862058109849670251861966914259824115985050654814261940450524170350440818946355963748521504797751442768967959825366877893806111823271461893022030728084072503737902398475855806291360811211758551596794214652723536368782464687264997343135854882990854900314062807376841847857677856600982327021162543515608174161674469639951305188995583787665487138284923536674966607353455337675560978154360903371143011253068340851955162511266279828769411151237904302528330886009480640892865790013896664064118233402339402724918136033945615500897122616369532529528074426637169125978226920717719454007612443341581752850377411401893808954581892988280416138088481974992294703543198446275847403079240867306522695235227719586092392837094889394228036595441196172275953328849095172960011229577070927103220015626950852627077852644188262122536888086947946866071057050261572523330198669414884763868122406128665791622094234054594751998116369054697905451540011926728738428582950882704520507484817739713139625777188748031892465113004772593224254183502579125898980969175217452410102335792022853361340117068500904270714326460524300099945196366831162341722703071609118567543301872665592852795074720312012568706768292492238142277153043176509183950328883795457805312299664955590468285154224635112398512078218914352081696461658678375921383385022299073657720841727271222468612517267122740736244133529639998813692663866893512750613159668835246879786661519043088895098917124120473347733130144149107348523778051585645877211701301027464552070156174574791994654816168849018700951203764056402159885852278498108717428798388312652476547811473907502455820326207807116170332984677058085225484284131277577789382706852319742337719988102339904282633116448994612413289381166603211360498689983032798982212564705074006667788823837769663128870062034265766618527935069172313773022294879509263077485514799276686667747083029530760801666190873562140939759698776079638966937922042359922641874098585936114886153497299219654438670796811183254423529030711867973696424187439007726363375132853388935466279265628868343304218530710074910826929372285441742755118408389376488890587488005199792587808534646562041783222144921976590156053031560942033371606626607213628532790881157671537428572021890679981990362933647315229943707387580805256970160878264658955112328865844762184777653747579143170004246685460586624920866117837069552064741758222579265164376414984051180068170282082825091978982564658045644100820969634509615373067175754998514326776512094936292956341062798126425346233737726416736103303604114475533155431136410067704926261278564944227426200056448955122921628891647304969164042756293449766595553836418212703140270989623890466695439443662458280953800218048810435214547777047790960280265837945147750240742282045541565074464938938256089427289825632927480740609041980037254354571920142933009716742321127852632309282585315638580509753718091924404313657037656979333267670377580636144999960941570548963090357715415503352683196211403443078996877663103569672880358568479249343940080676084295166339876488521397821136924479383152443347313061739997172464039564900502458268063782003102070431408408141989362241535688556262555192419671546420233808285999729060905860693522442893779136347826377174604895615295137473180084162155595943953238333156980339070711860453276645905533347515182603968983431528258925884652474173876383232514532658417762847148847907823638342360635612940755772422818422122634056215111251408766562437553532409084594250304157710142640287484822024824779390527295795369327443680022570579015107938030060077869646211145658416714415178584490189148715163173690019294634530094154686805033096142314111728402442398937787541245536904877185936155078354119336656783537040479671708094049074748296252875083814902868888902679621337479073429506616117169850865633627757352341115298332059675594559888294039419680187656132029110675369719053386607527907711270777760565578343695149157615860252965481887012172418758359984137945560962886871102799046436105766146262088621339291220660103597315541217356112809091076910466354026553129854734455137868390361147954541814556388368061234198948108117533956321639179877385759058299036219616237662066927877520301556886555653696519132744452708852512032080873999179881589945962837326506730940755965606572833724414698667279001001605107995239321906014974217583871596009319518016302033858920755145571705963683584481426768498500273467754957143063699277443524216811556540133865199230303159104097438923627016464791010212418828355840833995400108463801161621504058572448929334795150611442892364467300835096860675797190011682322441103766663928597639772446795043021445175630322147464375467328992982704590626892541190195339314564412835797695474391540289711932111705590109535472424866141452266183640156894772078908994883177701168386417810177098081836022183948637559217954013669311711792898061759738435733542999279358124516777582562496531206418742382811343698215562354771672400028303689903735020439896662716379544173956230955013627345396454240474268460705842080884537231488192512654932701980139104818443623358406091781650289785116993455332509030328203193493297702987946017193866370922489067103464950741762978763128001618199123857047368371684403122728020807549026899705155359036531003464106609160623262460877380882783489654258971282063458048028122209767582302840397404122738351252210055794784778249533860235385938695544873117756747855471859822273038442912479294489014403663341414506616880775616516088904257350686165374618129605591948226095078871541032285611572663939837224293505869169902861069908786491328774460047782375842157157169323025049218862603435685925045156523025866736749893902481984868898244045710329188996568076380266150758342843069778722103704076396340569717300285464040927641110507112959084735105842335469449203320281408036168376849296267443835943988316544229289821787633009228342626382848284978869258020729278122558099661484820686832048776676083710858519809609082622212524907574733137262950057800190110557173027225778518984025903778126183439696612764259699983532474200971782281080108188657720800750285462380528400002213177018642372898343677748270721027725121808144897133894791518820678636144981457082883498073101269481694642542187445348823022975556219075749307479150452816953323656041217086740414320597820914753126239051971324501063172531316552014525577334089253898192347704493492349788984874637401762930873937865024391470996362567320117590250767328091212369013761026353222598203252743468862077947813056421310202374030212344458795485354799523501775079988787920108460582621094228534954555836453769552972714335083752479999058865813761896798519859191839622654860372012330355416602008506351689936084293776147139126935705930945851371775397388193846651462677713251721415794042070487538396431198109103366224013565536781847819682198981408725351122887438937573083974193948162682030713286072750777933567352605991418498250058720125564075890305347423732495545759903537536916930046979581284618606950173413038896414933153067990755248724452222756392846745755840664088400580847930503308526931008727684101009857133822425683251184338394021000067953425381938655818789737786377966222575094132411674961501203831137561247150242354357991380979599481411592089237299033770617100407359455405478199908763419502304676758271980051524818796384696160190675517085260906664086272100542252790695798361717134316005542290281836261913841707460884434812031242205180470713878343406581122219759642761152891974887196948148128997952677356923560964893718881679968569494932499866682708405978038488063543885233047995285955601594175373567657152577694320122522423120961747538025679834892397005492798851519463407036693833268067720412419243739222702375072033669393465343233475321701794970666598864914322550719918178477530526795265797307054234514831067654929428999972186263839526870672802882485830172416058086156349455745268872340540873725220139106806908289021881407517538443427301298066011103700916350154139764732968208605696848461251401110604975984873870969046645302732434803589246142619275160958078612740820393441254507831268842248710245242848436510236745165363924515462828440049224645385882378065994380003930575749756359478766230806323842336875556830980550801309655773531670615728965654974866870395403566310227587467556261109121795404834405496019142442294778182891021336498099938255829419041806408306321107188711889677770175506531962687637787029817794415974414524052381084048508616395140297661154875429068324023627703792041080315127505149600491060243204927592398509806502496895821814006301892607085532496100751728270086549574873537812488465080076552680247103313467714919400003471000149451888816588287479226749997367552364597266059098200424776749919237171382875109796123342523737371006378962461863380980067570475732500751852554641677970022361823411315292280568862811509846837585121852707170898386075139646076501634724522775664218216867304739256354080617105435739008827926264556732189225208595213667865986662849939353655378058140957049997028484052602010886254518368905017948840838216886943642604999324517167460288401050346907210796545201387703778568896239810555844025137273747015065669237823707641191913609482093232723659546774579977365786998212724979534104414854909540503479959248733664436731749532816501831852126927453672526971759099248941028399041208707074689693653826874686118316321487932594488965184102524735118921156489015478608817472577586332192616923895057259052035322099193909121818569485803716196521882070701930090907347841158934492095576543933347583608817962469305645754033394560974929678236907885524843779073469974042961657282031904374885203587831412815842311984210886634502736357793425178146286336857828880617834785166352315592631467219959505641222974042263666405348297647620897651550441468192345449952756514200486529780659796507072923591969896852121749659608079335105966291727157349355448035782116198637429383215412328670065906246360200098992596645990588580553744661081372859369320642804526926180772268965910486187615394108083707067542410965416393515505825538157108694400958594617821694699277713010877291412669093664281931099321665066217909588593737148706171964876723224019866665091475232722327847361355041386956285518962111500279976005605289899106479357332975747358421357238763656964833794388401318925051360456528752336410340735478758290045070690090807093031872725378464120665275862371960601856992792788534206245612014979187377045065958923489900008581108657632306556732455411911716825969647126956637282861826776224221100561344250740755666492998148350406945810756245588668929895142559871215400972056078543778387725577700243971607352492783490016676359558079757926457347442918348983502034837381080794742435929428083703683902741578883141962510729661324832263681547080054247530610727913035951899619490618127665246441771233237371069268008876697863414006179011740052419295004745374573106237552002466239165650985845639107118935256270363845289073170968615353354647156877786423518949164644297475449345632886282564274709761580938936568300435538518905358976390684024684362394032961561665880947672125493785799024068931754921460424695241118865842623500569805417062558978031845501000114106116122451737253606078009272029295209894307984269510381822748573298643029750068917529313243547539166305657612999767855068112207173198437491237373786044840586307911544647272985315926202941622996147140953429046314868069631564442889735567714809381849083268615082460445275177266166162901321837655845408375065607773247598795594858563100097358480626465020555227182567377652471595061297796203397188433777595604652456522967958391947365749215590600803621155388463765884228723136729250003383246836836623100911531253230713956858722680713771659482925957430724823680489639362092583228382174041108858472266880391471050148508538411569368966291503784431072095186238195704221192449855609060910601757616359460214084060493089442889242934913461794903021156998926143688153878562431482586549874507680841661536020005254047919364640619104715823006697960793409347219864206361397958309888850784397519815739676485667330057985333587510100327910498707947662083868539577676707752456656491334230104993749094321063926886381059957370485066721051952647588252445908287223849014313757218271857730381670164460546693104713316718852841937888711104244940030692586088416236057045026612249231554748175191128043076159401082632011073032126572873083959179500908844514475184030062434804620055962419909837587073039524722506490957279994743564512635145100696286682757375655512866026834007111069271194618225075648673901374755771107296861079807323254382529039780366991138653549595663393725186442003237978809323418095776233185235989088272547441724392832560997230309410606668835118843928392481181057706759106376311517945180245283851720155030255709438421837004324571433460778513225058094938040019199258753369745331240842959629420474536344163966999951291119981174708758952598821154713655049286179162763188055648525954242062698674184703478058391287278352876778477321634485701309318583332572871791163155467051221144391556234819086202052384431104954956859075356715288095056516542360398934720580149223246819218172178681813253024026020567079735220293234641889250919107442080691330976017271111408353602631896342347935317798682104677828570121597014266589840005759157551981395351834062599267332491422483224177890371228126803142874599122287679138119165887541389311520948997563311086353986043579321783504950039200901645960933467297592718027491895720103234092218429829550998207137241106666806420354802015459895669113973604900938932376396526166136164732354514795598067046635070254856176021573226560355789828072065949451137532162783702344602554057019812656149792096404523768580795710634883589335920193440830402716321698257279014932660319698905351056161186723898824247881357968953660609239035763173401757776064784580886133847956794349270960932801598506527783662406159973144729223075888654680650720633027090401189909249729090357062130660320501602535770522988688674773049925285628637688554645340206255551596947193430700596760466188374546004420328385478078799612335158157479826612990439321705644216363525669952221311403503456005372961152332139292026277114270823095855179150732218324992330251739532091138523150763490556802125041437982307925684549756284737409221545671897267044534932281211967374718536391683290894097387833163156924130754092272998222037055075543046332151365877242414422527223757367324291789450363580818709725799538708895783062415568371464008053002135931713120717259675763532783813481322947261183592225696055619942566477472034393265431269262905771609947773235781231886992272709893319846661736384154221049365226180909833441709241724528508682037920142478712655815984071005547871894530711517223437739067417691615442220077498883796621175674331645078291754726786200686073710298482041377640509120704300101378850284682098775747403185284205254947982809034900507963028300646143186009877436650282920123289996353370906897007069659634898398444042514543143138780975949432957736610265643582827619925719194730457569533225072946186840323290090413519957596246481243082282554818908635084016932331158632189388454925031937632803192143217252331173919649070901320104681632442986329179109223496502787348067758640012127685553001414614048661896642763284898801484242464884872541880865679778683918395932543260561578130512075761777270704382706983010212636081610302418008504861682990627378667609409000032756823457964368309851164842461111603729597835630253331094916303772663769099652132015984667556752324254441447551375087129967778655982594579799537388818054803647418505304325709553995896721462525294040968816497244564101748379614009432907164413956089407675356135065602220871731800070800353957300434243519323241067087920138923185229077938989277626126474748710818912070660471215345301702648340298817069808710183804704852602687912379864708482045633015002249286142075218229640899454925419582552248230546247550995836705000316781842031345585633579017613428674757910059024128088072572083732657854382602979223955228415854693254845895767116045344371743049000188443230733425211846202363413385966011061618299353176419782308630297710582560919706866354243026788350585065405427542180855143982680927028541259955088603042709370191285985990944433967872534404266322016193172457856172162179279853641700207917451380284773590669475975399066567040809825936995295803906941537433250526187926497811378840065995602346562551109628700533035599759112929095796152406094618944485182460327039141541975573425546121163664141214519109210512686308923428570219008958462488972880087005038689061834860189014065860968725484001164835227303217906240747139103779842731664530070924124872260646561171463197517719481168802865879762666342096107840779331540714745951022516907026022595935203141254688283976449228100413646057306084904123899551209840803786694951438529039108874942943188834076403471083105509411070335115508930989486705437616099599055469568305494542478199557884069993483784772434519580237207409750499530349463986541746234519803403046307844508667694982201477652286406534298361121374782245430624521903582282203568132953500614726994968251846758467942271667247573535980391092858989678747238245135972551028171826198435950731461758091184520476186893519290750605395699224453826628037079294119532658986553074706077535202935748935507813728094489778633748268760887428256066456221327043270022721850205396140229865077951451594296009608805640548724694470995375108903147878589855651614643598011990016735053231934657195075715066442305386387907659213493573811168142179789260344676053061544733665113396711486126856066768212609620168289399297561370183306831622660772166070332567810683150529372570673969846532955306872267650483290337444384283597570691959156508468302205060700926113821812875241585517777728705625615923372085716558154586658036142243304181127287016904385923234933319599034617943446605012983985128785569769970707548872339004432575649503435953649170480677748317202456938116121918416938133241080705236296043320699355220530012774086135648763558058088666538095838658734996456264279793335161947868082838179937951297634702040200373745778772874414867595732840220406227418128985370463076148934630650228645353903939582198168008499438138746526233456495991394045224662721766349255276765180754696935084301975110992011828522861517697386066708097161614519283321021511448966700001575477331822101446933145983891089531321912777230277122353718291166449863744570201286223780169166397090476452850629675815536372045110402924811686451970346670082902643806124214302126088186708682894056135735346215418670047889429121867168507155713539139228936980649615217545911394435099316784803416288393097968338684746985309500668626128936532097953653171627115286201447009327567671792135832745951744698704287560046118937382042785936010363692067632113213197665671767031515043488887764961164813510756481935551098838482709694529050910690251130700976888740502750054307495122321028765323240981699608184097684707353169785577307163165076988819419547147477273278558489257152483811799119328541243852081110999985974853836277336628186580376162458101673406756918827289308103447848449410663308343952606598657249782934580010367534708425087346017029279968345759461457140236872407838988599034580685445745476720285598905177787826309901054229701222243579448251105136155150813624627392247218957077772629129719915221489336010043864845217387078429327862520110224958432196218977122872748112015522132243971367023420479611627569083683136528968636874987061616755091072139777452289217222673129464123601528080631818420635381795606494324836828742231013709378147595393186031739193289629666047176986938905227415552024970781253796438551516640085124273029306931763549166056851073053837850476641916931132454562606324048008426201937415455540655883130368500246910211825798371773669074334106438269404701496404369064170494055731985132262253918561082089298235618640004250476379248692925790865754616873855497300294791854926170330658845554399522290030343892506931574999897658887435677510598288508801423288329279368684696576532381810590726470219670736772415186742766300023798598564750787917731673563699707599154189409179493607859241044192157436300265792722014794247648294359053590370477232284265574788979803543522469031523552844028095631181724759070682416982713980160416872871702112092001573878105807349644045275995252796349253825931407667611638971762127762300610070600817094134249268513722300558134456851908478661314761640950170821014227335701670266791451499441287325731626907094917482691641180069311778692152154572574191541588633505191504607222751126574740837234362549761109429391795240205182837588156907721519968826730561757549579376993658090714228153924719229082604232754145903464085923825114735991493715542891870498365552931748135680411486649058876077687425953502690049859347516999445953632232752377210283383998451960533260632722614232434936684558067312082178292278479540824196939398474625476088837280412954700539104313520054503306142759288397756251982293562158164850139263365234290613435758297327444003183943605162009043219154770491452203009103841229390792937321705980282685285792281846269118276946059007353866261484807124745263143547671648263102619766205613356594481217676392530731513425770741038762057609733470489212245654524776930448887948978635098459552050284729461963760375742802630306735349242667927196655322886952024765711043413578820722276499178689524555644082491280146817561625275801122130834989659155556341282236006111254586145169935189927604662798355009530950412504524622968311790753225797540447611400686667368546018581125714204470813019456042177840904510948830622745850668226312743230885597475207119995418342438634871753297048054916348002269649036924930434060295570611515022771167950115789769145843680867743458401908126619843494862723002818637005565391259963787010541979904045358887217533257269575342859394357023364876934938464917235691781940981542516272953799201886757072453018595113746892958473061527597543317906577089493493805522357602989557017540692870080375899721470758542317461324868142357460154100880933197344473114595189331920440561683323268659276628189447347567874414112323011465500607635948784192588829606643219498246149648616149093636603786300701212723097927324214243893603137496535486920344141654590841189589853876716001955844176908063599927210965218774261340528263237414213387681378419909439780962170537137423414771778095920857222834007809716029197602949058582992902291474904762182979133706470141716677386484671486405823528204025012096756690094828541662530059778782245263354215540892118331972206948546540847212952619670871332790621695157528022403474800264104523327350091705026326786047456947492350920179208884272202279055167409667933385361986644814373216342898480678804277194575983798339380794056371023001475766234889408892425166472043407802395639520270753072962637668588827866597471890441193069492782786327606325478946272600250615530902625714685200526246621177433533941967527007232848791443441271996578108833068083747489966696898044137054306939824082395597647038287882249867385152154659285907477821021725437600209451037328385949673030904050030528637849484834477115576805489898763994625354865199460238804259046345970260979921781881097108055395917371052393884299882138343301396160599067316230708010259836480587284556744541251377714869994711624569339599957764984043351049030253252281055359903468728607041827754554969840015494426572562344967045563536246899731036636277458364976986756584046501341358820479768472157255735172627876241307300549261195219608045405262460097716165113667398804570571700154328014872147312856223839114952871303265651814560120769339138725238436571567481229723592132664147327228213739063134120391002505462536996956407874495610463528294794796558440801731145333507557719075594916408519366967270249840603914354620896442798814400261771016502639052835023318636708188269504429077430415387921308248785562097197171056922048444058250562727041551107936311502298062824004429034626308145531487846326355420822085708282666544957242921726636957089252826398954336159185229544157176531638892490254216052819387756756421129671428750390902596164376596014880131064906676834797184009652755620913557998094485302964948424154512304843859792460390904899862216512304899593237539687797826734174833921938979670720457305559162053646918680189947038576801012806699263048388673236761905270771185592733674154578579961730230001498510707982120582761005039376336666949371157371105058356561640991251039850374398212224432892206093557599241775975134890591916403328009145785814504203601579932445100282580311099116056621094278354009602837881951582886332492733399916875938922864023621122946946924781479254329310343728489169834946189516148439315614886146757827961754204447271229887545301084081964259826943123619726448754580040823101050913214612586889357160312599163814833995917265839373137472355123637854814821181570458438491601630515045322558265596674082998984935512103869048074243519725601927694196019943288648649838709567376018360875197449737056387278198561098274790449884244750515919692526578469838461998006452390290951980080094371735931919805314799286159705579422503365321752507261919641266117711798604400728569847796575191066149811741230237445695444220438179334923135669150857810326929413764723672153739518772950297492523594369949284719898572826136549427318697607385568003885688057155100379252475156438753885481335560823468841664994744796168282459709820942180152782446265872573989967048884838615472468572909427067815889867851188794432747098796777040010412992450891435308694286470767271284581407499267040356031630285469026427682986932463230707607131696928258681227712209776693334793668512663011578028830643483149200332356254065193860094006909406017725459847239615413391721060663741611002862678194302914965832859067767357892936905693325234417330440540740628748009339113716225295559182353509791062298345709623470256182876674970473524927247413257938307986329776284631036237380501060425856179535951567291202564193709854624126589653447875612359843839915588709710507607137480649591531929914853698667052648355322569112031991368130380672701549783326915980525558233573939064177030754293693155311976834854091102794208307061244152591902852861066576725154878519236199418299978685319506482196332229715768037791315768457747000784821139813437980208287430079126426589113734117831139624647241185579031596730265954728947785543631368965757091946600474971838083489924917944109866318458555633683739967836778515354551468005606057086594929454967784639195224381303038115465566985792438745655890837025871112178928360617465313504278165044903155057408452039364177159503491565504284039633448421004247903142806958393700011861300490946791292870622780242096977003393718423807144036669027735305845737522061352172364956894440025212522725391367295023164537795570552067333794456046829832302878401338469591637847718213009198958104317108680355588640807920328322241347233947213884349019348610314483438851424150846623424233898026982078559518916472051825016896704443377459248303125599371842324251970697557067925276796205899487786952510183953009499707654748662799130599390614374651802681083893748458704903830353717963291510133788926700223862254791111043387246763123249883944696253045817320978270702738658667656580163969448749884676412142303715268176424191085362068453009596332441811961909060669028060984117342161091101955931350419746552945486515202784085395554872879103523791754672047621262940629701494689542950823503525693691794603835030208326682377945268272117124028144291699340751238227556310126513359648127829494107201071773048568786504901232648501787839227217465659065080232880039905146042809144456842578294172813466420898823362505287065167663666598323927582454103350868543070695326444677553736192329944375863696056991635035763566932880672128274435961315440828756618802590512579735154425719613328405960324329809447930032335173544920136131147527747678084505656021830425316768765726548048197746545056011439158306508991071081690068678083511538322376286836950462974962488066695039071754550678688554193990544758905206964410566196258658991524423613272164284060957962991745486169225966917044516201589329493139728202815080399444886464986956317296319667401011582058596832973361824836137895061607130197170669551936184125943488399949776967302700387020123295868807925035362828137178273369611350766537114765326126222823929392029252367461902860953253828322293920167399900172099105911258818760441297396213681732886771990939249287536973868353133174119168905469358082259399418038508248633869567527609586064229160469397607762687892037346554970371783685225399883326854450367898865310410437481859893625639307827256994535757320194889639420301046285613082353662798846341980599836647707439834748383190075470974718279634217404111784787286767218990027340771079352261167127285596727580402698276254861330545354595203541109912717747189633424808710087343413701844310339358080345436127969105474532858633475373275107593817997385936049125187712804984441365714970421996813532799093220219256309738549350295568325507113639235337304454071486837143132891801572723129983570043322040816730328827918082845081982743557040297971575385686179593495884536177446708177569046866332618431972603066332927061869383864109330395333096282729046001670297053943477459631579562596545391213838827324371401844729132432925867069819904585354437134875682178853158575148032443254118529761843691133931229276764781649610848156989231476953385732903936993725291661834253778346358744083398904324138364595306985483917161288961846978059666018460709384587593340133032271837924640862421404070312537912051808771195543696541865652827811373353882207488284051650157104701273204769167849840534583492094503841060136480381837766862779254618020570288037799928525660636528710923094521281328235260644016951493173156283036953203839541097255213461411027037298967323029177903561133589885885080159088890699392570860453774729191155253713649054317606112185973086840553479807556805339559726425811133367728337986642918579616547990562952634570194076826955149365194530867665791185536687519452779903389829462405505473501299490788530459154115486336422720661083459268767857973766132389189320387403862714452186017593557081906979255016621142922841302680672227745774399571740854300429590848334574819913654834277725446553892620361614295599351667750299235400669308652722108077003381139825950996545614176213542211410504955540645384124065044966612324520113094258041702995276255243013901313129648785591402533573601776599841521362566929267015083716458606950928581885385207763386827874383208631717359879368519304466553582368754353592864444408502495184320097358343060835291842542920620894870503403045944600533857107850086457595774241717526725780104994803241198340799606177413750851758160711421913477176055125129878205937438957413864275422889165084783961497060611169112304136932766825287824241166016760580302570073786708013880558846414693168933574361705984489232413654399213757374593594663754057108299116158331510503035539598236190043736444738526749024171754473306699223599092491970111305835655760918137715136663776684299625583828664973975133550766990429535184865728147418618308012510405375533454436468584782099666443901722483804110176387091111228015129281082386954508894872914726191400392619053167319771901128625925694165230254642775832573469509197332939009668828004528077483553981547265374561968535310165055363799359287016027868616282710121271960719206672031498038196922734995745553167719416866551235154625038213620246608794154142143969925639537507390717472137093976457867587073589392953617051788919976869423095740032896727792726306107553903919534460728743950570645162982262611326855270408855795126080676906293321820095938678331893697877843865251306962457464026409303643193898701535375138346071475560899195089144482847967951587307799067223018635850347169905749414692815644142204390261493993876248668697298514057173545515266965673057538729010407911720010361657930386502882499989259996005127976586399514460399929312642207570807424268862147247941857502442415181721238476497145089527244209688449452553164131187421950177343870988838016912209742005426801769333077805257603619375118585883897416499728504244560133715557814716019893834009855472665689450891354337554162719364160034035932223373531527598570253884289933374672146678730869271866525663828336228808865285685687879801349283216948683828453127451505541047189866876115402391737522296037601693174018230156106177504801239001559144122607133812451309560462981957373926870947399129434139274354080518320036405106361118720432135860147023304660111223079942173643427293484851816533361724324591183265004678594254016758181707425507665924781925748635007729725258043313501302682467288447594971022323626185398086526452537666656271386697026340858106424737236271719669005904742169871099692330147100253189553130734851335097490567609999123903201366677759639037907114356437934967187559437547594148367365943800140500206466306126522943791663256093187530582751263897416312265909738237989750177259595957363771581779490191109919595070419863448556226555191001147294176308004035935659281353742089810101355997858357933599713438162438906063863104000439954551521496202742147435712290571803392627277116527640141575658069566322270325242191982606204683383435868009023423098036054014191489061251467706008444096683116023890036293964389835559754994147055324125189495342959622987112090376389230101816536458738143799778236696763736486886843311522348249076144699383419778759529047079453554580936553271284751538090676129297906697853408351400777878630378993678551572260159302254929611936076335248724284491138236733491028844327303145822377960909208174169201243754587925271078549970435299311054286568015850431731342993895463441142843500603528002355148945081400745451973251641063316368699446773793672883076951710111579520966463504270585860036744042067740749535012937941399506848966353419274717831525395155933651483131249790349683302716322703731690305014482193912462262408876705989656727303355279515657557864655704757554303440263204955460010790005300497134776888495886689106109177915362477271633336570551104824348377890585321443412694718024417265036846781776744200302366505964538529035459113668381740858145066763787382042976299274480219801562961473051874958545326202701286501351816006991818673966608259495882808139730168001883949018572219111387152309800375680545490288521602283032279186679340686432670458816654046100832883170564655760728417121424981877266201037167457119471117462517679990534957883091882122339043044037117055624180861551986377685486238592007167075815170801132587042065521425986266521766427436356310766217625343341313901720962107513762902108403162200547881972532189191828060068765591692702614910464744791602850104288340297045658238828957197222682993408984584730440701777238928129778095342173551887727450023658936557002462982184078733202415549021545955930551457976868469122465700648388063304938293002088177575636345805868434923077332848945535364316614012914662810146051200228584820898511745529918067006709089725276446531496758747791828341644722459063339744107891268487529608687876068461542128544938282706057057260477756189708774062069562453100421541591333941118632603507399199727946495259800286741110146922393724253283626039423419074366407809539542313392599574188875079024137991590757765402912627847749019592090149454521149376470333282089343355385758139431700515354519196661472360751761724029937580151201052453271372079417206100864564406728810581979787494422717944061927999690245956779344650982689915772475160704815292505011322780686412548577312170032569896358986385376930914621997276156879287682468676952802131866241547180907965341050814589738072000021733626135010545956602440951783409256823029353763542279889167679957547578021887322159829790889857787225194763342917573259174158098903363816271970213940105357820541683839436777004475288649106558102608280267437106750893034042577285017692834872193369277804436681967227874416675878339926438819539696051021037696824009666359013064701054833288880065375405584448321248617604572788908334676411644147699440975081951872825436327339270631712373750585180765778814843322511441391533712835399588455024707373577394120229097075825155366553001086389703591322506153008449858996944964812132474301211610875139214865150445264149179424439591822913174100586348325995734722940177765769447912393522115905448760641267516938607053380270695911677712876341121808495450305955915249879815955505309471273270143441526195557392461754831842464378780410268629809492063559002326894645738325953785374547278827066555785975170642073083120671165529472636472679457369845196545142645262230865777374870073507685967870791350731005082584948349750714351305650864911040239144563465230595953427474823181476367870287289817419765761113822834863397301496466852016516634278352669059037508438374546074465240543100564491865518975212174763568287949725611849963302163948931579401856273827739136104647873553353641503263540521682446095225119968071400638591212836389864379017801487688759931594545774006447281912723777444846522156724767040938216077427784003261052821611165206477473855251048778497795840883762071672372995775768255118233814496171576922702997350329606679982196145220005643286650289676605232272135038857091282249478009993510389836636797192159443120690311745115692317427454546504687086064636693593054094156988969721890731923902146217697582896533795051859677235910166667764687517489014882355725678951921497520333059223350625507748645727988663442846806508130539446400043747328781617652912322648405505718679801030317378844503350649758604807223465413318467504145653508480101531838837504178387747309274336319347559798852531861889388730517526186063690765339631864328744271707481874694727161363399895673351871054195778649218255680062003988796419330128609789634383986987613629857131352168819496563015049517212197122986476037046195625453540954072086721793593053158735075267179319946887588908468105453835628872441116153867968271728870065982702090656148987208378717145414543178255875657178370488426263181836655595915233611809910690960286664265341613064428310941719711625092019778743319069102035177716255689249470704036040336293492665822067544645553149596307644360933210433085513655481805058300118914640621205653870051196161271498472007065946642223887073586125133666183676090680994596321466424038327057918453989814033693460075434261453747078266054974467007759974509674727525422643933881712976437024434143971365335322902156621948667605839923982487242748971816309602828243539226762065576974902309600458450845432463353357041537384604389514166008698944009192444135135794544516985234826830387461506219764959608120748716420906761435173658528253763214908657764604482133119334954685877547011808859801375247951560782612187004984808743868054819121112945901401221581762453863367205720342427524415433535806327876582503946371934789679528892108300575411943531088871436363055264545234029064227583913711397949229574102135189123672117977901703589792873717798412656787203533558798394590612969547396941099111842624108951103604245672635823191010157817824798540191477363745169019987414705788909946562097653989572010183781087940623593348216296849235918601867248012284998260225658810981183530616322835662202549506519941812097273328490163627217980938838580241011486460294807319303861631340408826809155171528895400417574454172882782086516348096300262647918834028309593673850631149194499327755521314666046224930418446742294139943087793892693564713218788074260256681968906517921419270451028793638934502518998059198019100598277518932732202884387933283949807337718102776491659710708954080026557564143527114496382388488472797913391985502087991526755989691036337978661324088998511307122399681030824491631260531895363534815470549868309912387975567442855311038792852796745260974474851281600891501021041896799770134782742329022484244153398869074438243236138256026683575692212891800664927115755319242908864411590409197491958989679356536503611012028487346691293382438452747772511598589021571171831961051643445356999475824660441663129358865266093413186026174066920695534318717278191229466642135243653303456886143210443981819383973846876870433581246723186598853673374424873792293563204247830955288950851455284189116722091817442982412054760376017126851414572206000604343661411940018295223168445467599519219429874216733957450698440708618857125208957568119998495730978584938340119224296854820765984328878966322958127309166519834907977991704312476967711620984057077444115073707233024081751048331824940850750493484037768716922422902483918070004803641267605200642421971193211006814012985501580126483553436339120798851078200767723861461176269293627848771409835123631539676942901191204159570679863115316496322000177186697632399437807773706326071077633127317832136302580633628047317142493123489360024219844016213551851827577021225017778643350067092514066802733278902366768199642106692070282984493301872419277178557968132181629473691821426562985141298598678496841635003325903342118924323899262862756344311923314601970501105324633449913565099808564540927358560961345111564544490703426740637027080929608904369698161387961279556542825126428223652575364326582069935456996307757580367380498987553920633458268745950157898620440561692462098843165072544111014714061696802794652682041923472571407524574151354390479991159349741577455877688395533881313176189794784624606996416918839629928687593516858434148540782824299585351831613299127640143686368867319233453011610900985861268049221848711984030726845101057981374322268833595407646208728679911245264521736414112759346211723627832669317410841347044097925792981921870357575436754059524618784987858898360565126268714509230471771845071734689788730215935200458747311582487780459062378843326177410588997557992139107867673152052984659161761013667424485275356673941997354949184858089721306512477111217819811929862231363532275739302368579724640117804390129798782542046666163782863646317581396210482498334315953900346850326209978281483934471541714919393679722607593784080154638983407183427036371568659313468318546153777413507364036388192688860156675815287165505906074639874533193280486684271040171342006384642888456960292110538928684700998932105594736345909796869841655769349138295750566878282326071902264541469899822285048250745903955199382629701375717600810750830710278803858538247041937080824011066649232589389532324208434841843792030892800313869299283822886894853741838101133708895668892700320692060739149042552326082816160864655766411003685263087684660004647858224310603423603923534265429443087857789352415069091033326238059795000829462206061962345108391097322776640260000567591070688981940007189637451423851775490088714293870304058373815213219412048763748079668574578287004974683878086240204043704013960228791973426757298717439235029861360528856568477947631545122099382173878650002151089214799656410645392503806405944967966079310929986939241767988072303765462128950182300734984703148372122224291051076281570338627999199664661592952039533327564084747976170043730355615618000726602704514845308631448977530598092041503485584207649564400551378307547544589379281366669712584011870169546086431353420225311082696190397078812097891499808685559703547427981099138569869913961874161717359337057810387302523730167926071797834816831621221316679429778965556951099321019414927806679821712790136269567724458928518513715037739918444313199771315647802386870523676199755347322078922736754135881043499488094633976082186711470124443508386550904347923138504498448438660369092516413332729677422679946115458744631283279477896946126306554345985912596529539000434669744310137615051582340483868675452613538877738554503726384707025330729431699287701741169596167882320001296799184603417572987108917029915400732905489071767888943535591422962671311847904864395491603342720848106157745684262927748099385378153984404992203708174187083709316226526736269631669283728819586184598064013073141285098266850042208093744633557779336779814476859471362353178577832956678472638712442995015416437885567712977845004175596834595857230233931371484430696185800216382945275565412841857800671398514073869920885966225925898974246648479621144763640404247506405032080722066289916322373676507094180698937943388246131962853730404648091676832414462828997187548179552562348185315349525767018157401093126489741836226367460284876890111497191682281813289705891836499796568355185522313798470096906375420307027231653269196612909964905457745684629917526976661561805628571023779524190625488151838258611551420753603190880652826633122654953121603142761050504151077872490388743956348899239933164409434843579109749933693567357879396410977978227711288867197606130558346395597692812200585676906056434279580471376842278145142637618457106330199899358651396799716939480982606657491697667477816541865750985269757878551461534596954221981673009721674482159095377126338953018707102236230515363051010994581189954439416474499421546484637489041009636414208537810649579942683372313653306305935573468997252842216633479027064928560300919629176555314157961407043277588376753587268601676850472915685971264332399828589258808423822007117318830095420898336019880278252039538450803266797126401794909362014115993536937359901746426912941497301102678272947087102541661751501293072764042871237557559826518029861268033168995173058377457207926908407397278416770627398797097691779347790788521257580233710131903042309788291684694544939181004363373002935649045514026248633800888415362691457492132079233339619803832975419954164324655799620115263043883671903914129260815531133338194384188699195675566592909771485423394592888570301365008413216680012432131153052566426764523353593252541827629386884455042061306726628806680130071221300778791686823135899508054529667799343749199442452135595699016103045633946305612673718955266346382001843635330360532625778568731095023882242368076107707668727138692898197597091874624974505546889507306142082436575446746492725159358791211877877648486989489423224742170177046952670205991798131837219519312819135524808444020921804721290718208972775738702168346066108535366749791428266355367265932423506509560950677670350482347483132688734200279450374486665486888937430606815207331697664813179832132849821706339821635122444558694031269518724735963853617107887048037963607134856238211550815372514500687958265326216890194066725138339123586723887232551513901794073217171943443142799774077243540386977801886842833580298354447594351737809301575768517558927837743536942392755333129133960889176576248132649077226119701454899429535994085159746113163092683445098147312798977451825913529010378288275466678421348742750949245281284413727801667103174605682295930484652735232545744494594158352333477931299940518278640218391193794820002441568207011767197200769165357780046766016090548317315691475286586938382092136714074389888832551765487761364217326642153015499523902139952763586956315907601516302507918817890547639756570120958178334952542068221631518156099216336239520284256797351785060291570976713754472667432169552232478061687659669722376585097317799711733502393205763957931210099206254781253786337340186627055846621398035343282757570631776469309232257630745093427314458353210351610273962227953058110896189307680171270736385216687211962749390587971420592948470327400796465605711543577207817997683938520601036411876298077058497381848281682984781113593198244407631193204267586647818156868252399715380053077942430856225719139376766059472759336436897743398879292479916013233043264794237703204631152607074611775552697911998033550986802858675906331491087325795778824143761540807949357959087859536652612025493165803984735481662688771059979228281031069626446270626283066627721353672920306007758810715819728416541716429085972691635685360090158648702923881313191045195581912530074590701595703451881327318859141002736749939052623012720457008961704706982597156828278083219514214079666487502990537812275610283735861947464677925700114999445066413819785366847857627292474205363101731715965715865644369148439031755157756896830383173259858587153685568930465470647110422107094714253673702374757389146952646899024626498418532491350705714969479640117043880089646165516674948803693065235404484176274192386738249831630389422139356043315634852506319671802633295950916081815238401978889614808353254558282364720351526185311281437301195516287588768432258866307907403326506348764051564129763003992150921393176354571219078684248279626679203283969267455675473787555061458305660017425029944330705328915408334016051330313313862904833952708442484517953795510584565050866488895607109084597240727955506419750957900825787382970237979394062630756831024068797155866927694406260419565475461251714864011377340331119315547595608956022059594900366508274798623179974241328709180326345657965634633505058319145159510545847927017683843265424458168824004640369596643327717103976395852467831878780583990523717949871671288148972180623973255874779697716675865380928835904498888876916494364199273304132020543202134281782665434525356698645810703862368994384298191657231190652168973115354222735546423894630865838671007064504131760135605801048130310807813666256453270731884802610455248091950216026255138426486766116625378359776229663308349244307504478434535627880596320509732375153095777187763118012562163953738869504061151652534915992948554071357986513466734022147624225172733739798278026190359859801227235152438253412703432096933344646192226192767356854897383193616154345649295451712838231302782818349200608261040590148947048136446759151870946942251592375552616935220114184775314584262101416419781906156506503224784858891523292520518753471267707627792568740525233923698084321615558427370373896604638037317690225764239992362069836772682987527733298743913620770465957050371341676920747884787902805129716785762748805579216660027803470692474078308036267270878232964447675268437146184569756070088309535060471870049586983132335690333037811512826333759213263500294275133193326245216767684874332830300580903519680376964015850859667528753963492092804660814666267452516263331210256818882259233846171780266532846770827979404402266632720750003514363474775224757696464594101087878032489620160296770397299405395409594383409128418551735808506471149268603693140931809439251150127059179840347817342339648607394700359421954978892307840900532528859296805356192255470981022115646235865986815855653932716410779886610350935491069708383286314615646558241667979486588645977598160248955657677674159617534075107088471459413244503705593939419625714346320119987448077984510517917202716906480243443037884234794008046474234807732994626459776129795508307593267061880399878856645277764617975485717168968382500858445239966020104365568165957237166551776770586855292314394982186056236540952320146003221433220526038600721087279584148965324315456414243632427896734734840320401278506147714232448807005491037108548766018685349817835618675849749291395127813551600902146975484192890506822332346098006366648605183710585599365213666342118300130937132124016122775286965303048807115808156984073176975089656321437400883131378625290323958783815144119025244535756489825581349978124412566020970556305404439607163736922962534186197999222727648316225427242139865999583243555383141714600316103396209449958215344578158527605671526220393752062807365851259832410977705670118058866133220965303374491727793166629568717300163929096506758891131182907862270914544019309622376539989110245729636904042728129866619016138183306716742317362890599799956838891813614219917163149798903560620022328582222357914761944297032775210602647607102250721234995216920108924280287937940631808663499261259103471396271793884568342806339071471752488130167492515253263800872760750420429024389091991465259937127426128700833607413996202985932718155716058188489096620884256334303494568180842654158028411799079639329727341814440443219462630024701374014077679359838768845244050067538209917269227939689608597751975413809898619202517531179908313103254702022362583583911131027346266201048449438637259466913141908790907462569359287229908593392121545470247418402746119303474853978265944178307704860511079848212106800253686123075982021993798571005347628264498627624575002816465654498114619819200251499144557619789163981816560098572946601027146359948853708971191804976429592832071929770061230824285117928171040311912697689858092876756431504472805253700280087582497019616461365380270442965303159963462186822736362970217917166843203115749508330130247049175591614027674556492088564230206785603637747434402857478376939972982355561100434891307612249614992644164306413576298022420152815589966187159083702163200166076816635525254707576678928231754349719997807967024549108879835672405706244120249591830501223403549291345448759189569716545879836841636491709215242695839686192131843009551809154877373189812980292341206510002269827161021651364534287205244170823883058836925536789254436572368136432441608763041203196932557819926633581781457767137821301081920656270976444027553363326288927637833864534350303817708650548777033205128740351446416189787216165479863177507102412826492004443751801860956685702213516737241917819529618967460630240142556262931082412857504816547254909688564548871040861361986123282307145206588612962509962128360684137609584748213684718348607280317823603798727030799046075972378319638217877003478393056996229517981668867627532882114019835980595292366670768722527077511543375175897779522099682635010604199212245075220915339179086871298764688368442004419961696341893814096147757585534578706267160963238881567036059800173685304853023381953135949394460896954582098281794408854195009703874029262948782212081862238004794990145302075558968469119892919319047182762077189017581739660585303897742686339487779389723251916325800509176771210135805042910564319457598018002363728784686879158718493201850163255553657654181186359082937068144887693443428690459434551340897806476745312044413696688966740795427687993640686165400923913974375688049007080210781451755547926163926554802417002807204847226779273019837568326614615212599036949541351852964278285086274948535009343122206217011433937187398360907290315531373325855470634205935912073464371039849813471547192255271716606193926913910726851486037148563155295604053689632138370281189758528295341112875032171056699315378152893187167380490440797349399539413322161464422668989538656485598694636834959133878348796495039314804431142017005812433174329850581162829981942746130769240559238510968885396806822137509367417622464738092824512216076855698716124805424147107179924975608298520857285127120275171545600504879898255624301396843382148332942749002374995583796819784025326488175821152418840365020590322780187044992738923554680342814149999212348484525453500511930086396934780740834200501945610091021271372265294565640948952716352888512265848293801314217547926662145409329050961718770888462303242257104063275318113594585639718103472846893144563901933227322599941899037371509200096292889556111240881870370866559985994013754172712299738580026929931019375944762878260171341019859938989082780199366445795661566772979709019430613682268582243810812725186036844612088824607340369205760551535684647948112807022781185772996115435281850336591130834643926749786127461028951161001669181471299770650951759879631981755559888465602987262646418820630251967204110842929590057221883242466053548146853461639212459850784474822215253101248996153765167418489001345524011244542159595821961747921223860634350045086662212057488490171105587484800400256239958719272716936743968180935647413889514100368387757765432826833678618580232853400350252379175491764281985696446215551829107795285100186709761238384656468672258990667300682639074869834479388338982450049857336014647652674494987893726537376089079980817777212580674582792102216895362937567108932235164139515147921873080592978863409289021863302193806267830800458196017230647619991022061312412788954360708021987074518465463347068200980382485229771325158506066928324495906514853974251068496862170505605292252155554787657250465214872036990409569418203261407401117032245524022459228914747100697495418439497990735829641826564833273911221417590530599804830463394660568737607653794833207076425050612686263437374941356642333765885800762409060975499040709508181508188362179248856680611536656189497191769536382622980022274045675642451127968191719469474030382564336575366751534362184817696685445567488689123289598265431719593572300502246886300367808121870403443999869071492864048984345002710883290704557736582912994673843871193457917953602491478212549688095408705485595999382674226217099497455435446430692201396981729882304737622358138051297490668623450997607844890409795432966026323020330544727760594607234372701367247415888999454435012940309847637309406956124309261139051296166497229694287855569567882143327290351964379631808807871647429028459349963019671149297811868763553217124915188660523219271523819933611941160726277135481238942879133178780699340053041562208198752771184619094072936106757033030531318692958232004108112406400285797896423036548534025121861271090156666441984641188228329598233939373914765374506433781881511040097066176485531052477426223734548194223747297141703429535364547061634226038886439801070831775073378848834666652472263867155427224677100124815578657319148474965645071147549655771134335279603442329431379245816340499028070910541844254881634274568765915857091163920987998384238411463540298410131864651318319438299846852191283274346842809830994408522881052454302877845690082195661327663615563079376943161621387550282140831573888809167518832071187570409351735000424535141254124158400388537152469857788537234372069593874072015605974269701625719444197904049138266488083057239116347126803943476232972356080908441842470165726478526417605538869368036210252593826925206417125777546607859253573476470653994504258431559577740972543980747519200342353405282690468323093382200244967441965038735881843840918118933816267690255875219662203147548159073706687025368323209935756992405309765457602974152870335781421962161490896223896788880972778097824720888996934776433722420429016780726073988898194703278876394256107299852426519111978407839259549719664556573499960364850764735518935618278630151100353496592257635429912024773316770712922129822701601547767203173962069254003762767704303978220471634287813762998131011084947757687301910250703043996929700455581550002735448839265333685652688967346971815564268754827094396054788190570318170002422716242472894532942513382785332680238467564330437043027397639358835549558665678555504441114161906617677043171419549968022981163307571574891911313246243871248646684468185763237097884812640689841293254641100426452351243198666328361064066632353137201664109638924823444951242420099588707250730845443688959901473921481343621444190428604812679150344085714117251752175127720769627040661998718395592503094250800806778603082398623857095467868650049330866720664740232870188080450111882004896946598419181895666549082229423040863480904238578892150005171354465061274533561137151240142850614634730107733041949534846654561865857544659351675753024557762139619989353569028031289771191462228896141532643662335760743418507146442707264352780909576857482946294296249873744711729994073436344480158356772677088963103107739425298106282946400132400315871833146708464669219238100674173931172962506357598255727345561441647677997942973185290288879282434507035088347724371913736314686667237268388516011450007245297500224841394296445678209044766735023801902889402851102038484614713033271279470794136417317323547072628577073226274231288809244081333153930323570038730763318822201241648307451244922941753404901389761818062295558496926921668118712910944630284452810500658765096277081933793256374342545891204132552379137624229546428520495950620608337635022480432716831260902718188993991353790377930280137160048481454378687630356527026345153578334547704735556385395071930040575355445940552356092127639663070407285513150084238334283050177572256832919704091113206973450618963817190159263036140267087623497136033612976298411438750210776733225529429487184128087738579423917067822342448877054151315072866385252711368523007845992714060585022342315550011293110270827142757509163728824045011052658454928006101899309395473634074937982813467109992708299197843598819816844019956083722725550692457051455776405565936648633848471922624123115786168470221749698797257035734641006392883842224115293052433003774302408708070921124431075329225993361420832507246667702618119895614799176151133603057112878888121476853633396721503935997702139889855024286597501538578319767436994614460447082835094222805514191738535327812293432986917702680363541847590148772226272798934445370644091886711695419141127810879363086525904452248249966069982099783988703924604236132740761562723803198460896819019980825721742676620377590786223296181228967428691052971083165922139566774720153891294111244490969886063542240398011654717654073844447977517167302007956475547283819733051803521048000020563786101679731420490696673198602564274197569501656157745273935098523531880994781301885792176781793157341505921177485261464546723852042335961405423132408528693974513418978064573834439224174131059879655172830010118682667520811877663139925070893343542329469478083406517109740841288740380828159794443241369216952955922398774334587064494928264572944775875620235444091821272470810452445197916278981184892436889610883049649304284058242881392884490029910270210445467217749034436581230344045152761075316419183470810244035333131112473436368657747303285919884943026258940517882588561955242018766446965452296276552578987877880853372053318512975971097041509795395901267662659873454261585836716894512925676057235553179763369868107712821490255816126640285327154134745752271082501479937896395347545814115527920103210325655088912422146652466215836874628607488182730351654046860502038750975034642616337708045539543888243314625681859791025754012350265301180917732156586487844581323451740875329451944900330459760743479538370660293760678078887002488059499161654131627877819894046690817627755139498491386394804127690506850865172164865577433436476889573104518827774867446530857133642810202886239228339947973087252047893034165380763762121463715790543159735171526421090945022597799071901215459874177534033373522310178103036045086892209330704264620864043600032549021249849765496837023161798639831924762998130761796924184951963816085482492705610012429901315317796447015155393310552599353189624438494879871420160802457684555220547321062362314939848232864688125243662016195546212221346588720121485986523228657642978999035999276671539023696407013544307711091730018818633826353010618632239192124476625497364827301325600398312942164225805433589749719585772089420467037720162618331977752710790147787662099846017320939252266818191684726292034496735234644661343145497128889556198193050357128331512348462691851655741179393831733883013426847045147957363093438333537934926745080590589396986427965329210288940531873380178507805037279678059894589990579451652859233387794672059077840337900984490282302924244517799225284796449218283502663240998915797998239484924552701659324576091426076193518673522748560069108164589880039121844797446305761423370651585347133985669019324920103847319416156767467403877885832166769178894932980680392495788786401167809526388284552152947675535463132042459261257697653576614877853820863575515452746679869066166733583795955473307006661029951957101337118070580731251482272084995271319822959363263742665623001678549880130294207346619777174165285226585001734134536722498698348344273353313597862300440173418283162273440585758981266637444836958906299532291672813892963084659826647301819423804825193823724265992929415077579187205358191476998260203928419922744815764737011985331533959260721868011247198451782438473852219132895353140172313766413257529616262810342738789461417424640059416799982614577672352318102201913084916006982607399663102546070096946488220727441109492144765681600358441592190494534150188015019953937737573031963170785042564710478206243230165043387045806505436252537653284109707022151790726451278437528178244699125091744008109835753636101855235665870282026676926218066006366251904382953676003885613247204882045875064961383247598762603558065755297688252747917190375738625126643408218184146452849800252561907119616142829735976583837120114703764003814370389697299035065670272471297227768532045223717986314109365618547766154994725287618466420306814591086266528253519560507297361563373930989042804640411790398181868914895926875099254543762251207920608427929298554908975936503603190079024121941280692585827905025251107365880062207344159662083736863117563864910658665540105578057191792511474465445582847008124136156271805696110185429492107911014329653988392041253142397469281929607052581378969289967629709849169074453207525051320153001862896219954020042436956164679678231503285132590700548428475518960447623907736966544588054106646289793174118555321896644135669329272697022502997997982154799449262088275783199818146068390578080874410038643686374907368994721964911880770494750020542966715746461955222882547124371220413608179549641951460142760333915084279241145065860233397346813297520254854332779890692861167771937005874327008092606746471279011882768919040855378377865449832850166724057507449822960110915551294327872536923756184446040792002462951325508408441885211898228378099956942003932928695774662731017464002513867877482373153092908787839015558158351004736528683324569854138924744582531949454747515701799868956365316889018685720656057187704925782250826636832935174886424400856132390019345030433989808732230935997827054024056293779784276439909275947712065186400138667778126616270367533704068098545953428045361378507019199180856610713863493495531550987870763395606051632858083816342608628107911570129719091014827693876607666452570282244463351340586745255623708185480484234340499234365526792888880974816804641094224067863356643935644123997242747750265903182931924272602681676878606782199901085590971471567350540827846971398512484436666632563538183039951400323974379403480999994310296041218278223704619593091094372817497038950983064914626762800109306146439503957091755190844502591335747210356424005448491743640954107823622087107720379637343211548681071821126625665180735562179534398621548626471350311502330793080515727476417537907188291737268539629277237393187476003425273743481148498955259320644950129620221173542430403314586901847962682141733294939341687151348085146355471022110771118417456251345620402142682786355628207720701486215205315183450541391274316154349394679190692402764188392592187502243839756997197848022700742364404447068681021764281236648038746094063562066230466045942680181515801794052324888328658288750929001706577453127887950519282931145600905307651941456677184701959001459362807116718245463420184492800252921141136563933225272468053209129340241413129005328970060453741416093850282942130764801716514293997765958215404062206798747328410293661994523520882575045420298294761689987559285941143379415535627006672297718195308012013120512138868618921069831234887638978813612958724827845887745553358237961883802110567202174605233536165833970813559674396394535544006047826771049904168092304646360044766285190079315551439447457054474910683650057189179946760272432699656383782336032018109707814584492845700501323403652837131230144365515006854334025280600782465566284921810447213148043650885160556936113849502904694505777087369115695454932279203042281616298499655647719671143070005424222458023826402492459908753178131002914803296518609798980702993522002505705743849378234260365690916881352762883849010837981784414410730166343477826143221298686529024417362533317886957414052426622602938677831162291221785749304699808592425098279338475251289812863551254873431503944493518949448582238500111716146119118327935446169814073779803553258720382065603386809338537492521398999944141920896402020358862308242600935553488525050654641889484551170293001573061108621399318837844691278720026980892962248934089391129187783938924950799732136423861927919399592768511937387466067416041063973658666478579139173419396080782093562568892439743810491959098835785776680399329189038985643353451322178327665539571505994831043451792767351470200829480768960239557433340784998358574281403716418543884044348788064810208466380982029276249099096307985458317951619709467732931170488700696875089728883512677341085158381886007802999833924859992542233731878616526211549989759753002938660510663010089374332052440601582691256025722445946502806096054276950077469436636359211357706691647593651808360194993565223194521555174632979660488787023128779955415566136777601248075612058400179658769051203367030265359499407418198832472193826031057351057488080862344655216388364461483033396982521910760330252770639233433949102102782345163234210398602577840866660007626507189457938380035622509430214266748193931008555816941633912530564146255273383045634290359104305330055326399638751549611491970692199783107798534900184944932477418470134657164006333462602275373074001782667536829393853809238880789161913168949479418014278157635087936658072295964270983353955159437568557498978453773548519003458725528712670309725607060967511220041758879459248647442672205344382737811116685626096737145992102599691584055368869342831674532545331191363304334448948945847589858390832950756470053752912101428076382149581449802606412275525477177969971204100711793996913073318204456724534316679131252302922787673791253174501420054892235836823895339207542614091128862089332891750457780276268075552028299992489033679209167397415510169311889855994033992935334554634337185752070898091537752796815247610344177219477756396895817503070968179069655359577883757261405880245863633285634453729791540605727369584642547599924806005779675583270671111750901593063177074102934977861482696749698400529655285213725339457413233952837238855174434384774032285628308908338406497215083160158515308898059504425518204901776987144946860127735467845379309134726033081382097667891354352580077362519899956178075566510450041601362895352500871821695601042573775877105935875172439728232595608147784175694715488420226785366006522170807794098874048523748003621681865062214437438699621072975220517061541099655412643308725131629376825195700720845474148963206447781382893242991513022121936323934526614335974748893851255618288568683710894454037261606645692329033783034908688469456096674778677483000320874091177690416425725546094645517811818131279748603638450862184731766200931680661485918000293477986100999621926633117685188935896599726305798995237866788927767139438087754728420379595384277232619147233382605075117861312712081068667528462413989034229176160443009431246220435411547714140404878633948264359646080990384328420195997023314189184542800371417548844121785407741948860936697348197890563250337948619333156897100951757623955164603011190249346516558904726165912022164932363890766495686199544253217530868046819713699632339746868570457506958532708476527786155148165060396150151079005523802442972745642028290152747677631223966672800621884356667692508599146154351451842542743091775015824001319878581722211165983471423910087089624325774329790196237515578669928037184803303662200846789178327178023036257483990388921235514298372573483755129521767859522129429128277320723977072595170873938421383253184571140347590057177967163875498411044587379402176458725172822209010818380537588037287982069180995669211852469206171447601855021806002153578048006771385478384710644770412586015787458377102368619331194029951290100812405842972051853080707699338796861934583772117431477835261457304994049519147748746467326374800490905647440426050779514392477994477976861884637357814525377750269220950113676361410748511620007491565932697989744767591493028523778232879700132489652011189237720522289721542566450864862279993137995290226146987584977560607158534094609760012971339694368898721885769603418511149211859874467219666858421129605187027178598837649666221509249946725560975015976242957687596648515818809701438686845561912058664600588987236530187077015555035672623023689526336125333271698445467038794436754703580994605723820416401954504479078666784289574742128905353616062398854148919257955653194654718840828221009479128079709475259285535438947509611600701698696184115292721972931746578066374301038507489035722371715222914845221619724497867821577753202471864226224538489142675359141018600588248296856087315876334128084886683860998839435786072503463267824208489148496966963606839508522274939491482514937640149267907098235614069778771132124858672735125165778112576265816708679102092716044656202510646837681535965882063086335909184836577230933852961214135662707963248116731025779419515359818181682553414276583704032692787328671862511239956329224732777637913467941667561666570696438496270957469362801744103364457155535362358853289430513297046719037854893249071917109643672806239485543885311839192056961651040066849585899787285612175622284714344873805916113387248364230817998558186946098107104933741040084638654450319140700539722235855866507607465039479349503977325217615008501801178388005588966758238045835526309931305216640095201241226331595043516641566746140371957531196105362754740754408750212018121912421300953359749650450495302476958448045930409930956824184113507410194196908224521312457902960900538898110964654638314781019564199414407243314447989776665896568625894985344375625213846696532101766400947611351128804335585115547013651860558914433998640434364543672342112829546629013177653011011213993570934831477444705932873061006659683659663640002803686713054312306993491561896391085941798684712220599743119424866538662801951991400133621246702615850914056203666544689519308818401084656910257098074584999369721084727508579074261408052027636719318906395359673561527882659641873646264472435594922473264073647271536645987685199775769632278305315100588925072217974631729243124334791739464729484760875037162866740352029908640767407453743991465967107724513732061826512406908063810701239141310155328244485704365354953873880758932128584535318320472692769183039983617521335604772893436073519022099349305726809951688289940460579744143969702512925857736432415723733495025574666551655794380319950328755929853965636438823777450032342846787616119049943559572850997282734573610362477136607141010012022345453166774884107165404257078685224775106488987833817511774762770820892324706346669237290694626511194407962374058535551325663734344055095093059181535401736170070806634506002287022468979771791985281561973935343989150451435026107143601186999809767165835665801140139697848166448525803163205859938834046401938500411513311637359209731111725907495783883921242057066301359928201003789160498210097581123503870501288565706206627451115895539668999482670468857411881159616096421015613374816286197079798976038156104840092137207360262925389659746174345441433654169153030482947179815288076665448267110221299073481599074897121732051171859822182214262952151565264815785280780183794737192186321885890476514191951675673937526322242886044172424528655372884565094368512393139922814724099329542773006722472470969079448159191474095318107853083079490034858875658835482466795555456056061715184312149041458896045967405936992289183946700198916583697107960792994610852058753738296350276333649055896151715741399312125868857762229460589149675235669650695749624564220752340407740985089889619535260687729787856761704243986003039916576116022066439905004801233538386021916320493975234429606633840201905721983494075319800584612900620837118585510628907171751570096273402426440895588576423406596574926496726631325815073564187654081316846636349773030085338688639503386622320892461338526233278503500834587308513029655497104985611992668088424762757769389082610751601418957688108266777985373911634469000275278945092238664013867285921519838513603003502145227747609271801259491401535110151669985094510504145124139620021257888422606343290531475122385952663966743569316057040158726955860627363833272526319132491640647731562045765673442621606631192016557935431846290111412852753473686263349387586015992928442533733944498945826716339952346137597946333723856551422608619169149702999318080373417408044667444698556143242587818955378058784156343293244753714071395998864740723297105340026462339803001707636498189937950013674828948838115109780773189072803485010805021453210134871175844875844139787756097265365957298348542729367328651278200520560167648611620582262653168657229584986742710667739680587454606447897111563482270999256245841369697292471456672615397762616269767620015535033337299148485331332029152481824690329656630069382810396924555343887040359937315169611439740411144062173745382992212615171448728398282753256053938415808106417036236406935954235566644474758529191335013855578503052108546444769750254602032333252813040488796319692997236914802393767494487792020535145295911947158107061892105409333903884429628070086054076651789631643108375216036754576494226249304488088502514514947480729054056631051619358018679362177115848250683437805079960313761407501251935798569246341072770971402148262023906702975768378566134118725852523402367689229756788656706098641278681532324829938736438037747554595366192277168428054634346484852501383080450999959454858891416017725773998056085617617234679725285027553388543555781403145107071501241762882087135374614423809932466399082691194159710379971691597097528141428693861107834638415369670917541247194857961657316390890545880410117113067194173547526851910562635270173072747720837775271635807877425348186659998780639746342668233680955872274326588748013109368560735770787115444419065580579288393067817735877497393625845961706625054546300698025742997567363393455365553917541290909377184479643897252608806074108690838341285637498406520530396036951256860396956154852055952163278000577693800573452180560795505910061613354728915593568571679509409927551619862746507160944783913287678296302134227972478983438449443964089131378194513626123330445315107145773824766213399456645539490755044459964774870122281499770834508849961527418445829940392290791595073598601137938023455444052128137063965332029057644249111044368574654536962702335375706916426708865293082746715231067577757027273402790244161231601530844588232591194145824291426609486707488449872083315955802135998317448130807054694781717266754452129010995893805026682553477251697895386994107862160987428281376152789408601674967933620643298471815848905235993847206460174497759200924329837023237953212624962061464622140830688889275065233253083469079564198558524691882847345968895704017341649342489445170176635330716695747928123186161806633666769511285954772043225097794409987927723370181674304130680784016330957083469448522779643844164582953523107212537250083139418268186317529092740276006309788193117565046443272361218666539866405863536723914855290927816206683927188244556992833288968783260153380177401183622388604779208123280082442891141065649164442030422364062856892765875120163164705226178099557837281305127675426523961330705516191966086844070197126096767932238853545531086741687426418405379921215024777014367579153045933320551100110366703747720880923410402350614637432237718702551382988046533793034392943599693454928179834448575938487218196008031935259730145916386272878588596094976150196822020028994119472426368248858616566822048993212027968014590225883596242009972167497611604184697131503851317445592964979474456610857019520416754231565443627989462210228746810944807808891690349423056977588422237537150331439710165435939001257505331841521721077317742201075790848342741029094557845448163784427196765474931492828343625052921331183284451721201865133667947861399683466902001257932201147638436430861459265837010775985887052978356748893091248499287906839719687490741210329661801638653327279762545274105919373854656338070667063559332951558747217603397452248754483655719895515943902795199141929516533151083253591961952277899030676730193338685398055297052195311474588646675795065224618738962749855074963638007671469498792146976383765053360882253990704419616645707609221489323106267932673660443610015672252522075830229380153393748274856785402681156536016010652481270817732082410242296058159097914981110150424999475568636111565264147809475638270895989104141769324070319771609843936170596186968378456648063288877613926408028832254861131281040816800094048595422083848119599735457387400314667320867260928648242948432381030999124535175960407041247107172075356073557572705181647101966541322526572032537826399000142605733294665833760177718924328257366272233179737951008403093703582088992920010895919989068532772916937955555769799467504463479978281543917153951317217372066528840938423354043751082819513371106155456501224817374507591653422342499949315557565768533967848125969011585173341269267730507413167878004207562937530876466107216797643710677312042730580063845581930610312252529107732170344221142078461100186042443832612900986041891567209072519001773761632480549548251189778110439574461798894935554999116161245371710688017582655358112743858788019102998991294436432593250273570744224867464469413137623392535620312647133582175857168742600144014349464934392701669778125150316365089968959093133962504278671164052539697076218766816775364049493346415257760278076673205340280570030575220183123797249877727872564561396812176325448918878021023255625825040283267073031617979494247643691433899193220934082193113400008726261608464200612985199931566181161090305819522058722645945125637290509281697273567379160595278098733506742118954920563414401011352920328277843668419177818849689866253626588207723332860738466576697720140813865752241325417615003158130226986913468717587759849960526195845161854064545256135208449107356398405933669400395918190848202123453157174466223201872701930133017692242234805175874164030598346428309157088851202977559037345479707891971947341036312594906490933011461660307930820799554836671980191307992329807998012824490538466735988915763010521048982353572687704597901569883378275964533635747696348336781174148636910746564510546188523922185137806569181291939428571815656085600414293764443330624884331265807613737054835076717333913639238417136673332295265592762827040020949662023834020926644894590013997043467946806615016684665130905463726443524407619207686975033333459667398629475175757747972026545559585601195259696559193637557232591287393486282140637389924953189181224778619020201296349083664106231941428065035966481266758465208797161420031108367169661993374785060348051447660156127088985563489231108807757711809359914828666357975240080014193396284385690765563324930598943574312418922028204218534025484891843542877961800893915218893186776353095957854079912664524057656582219322941704008484119192134740480136998472940981110436983670805207509221030632973644305805606953536617223663697055755980442146650612273903115052058593301533341542478839700846786252586961609846111527010622493235585534920874529115475709539101062198997878081329211031134191840935355675924064966205836198288683438669552202175859264116875407906490636224500715198100122320743498005084860996021070700984182518886454424479153399605844758846472520365246726429336103167699222068237001740289462044124799492697827287275545852293006983019723578566031512551547100036138325161136540636774359698219856720233783681781064092066101443769867565749161782043518882074329165485024084596471719193393294396030860173747015066642720067435092954164888728324394875466426108773023340193587514976892366348246050647366287387679134549871984353867801782269167937223978950625047619777908140526905365129737987987343563021470823062120101838083331902078159798421939735610123419899613970240954730898594650000559412599929136988293128220892870361939331611414982681696513356484225492992661410510202764378100652632200063218315110046692935879267418470296878074657402644911838586325721719884974368328712353208096804309629183516641361240455040753052279048973529430292072150402139039976315955202390971352358378285623253738070397597652798527058592885475122091933973104358369126686551656350528449376274134778270069321694932145950024308674104759522907598375565661978693534131730939689812187029900226002424956062457729243568379439616522861719259205221800066938696499080338727350722925475198287102727978352138822082894788093261602006891782290999841582051089339257304934342433791624011742864562984658625803510116546408786336812124536180047456059602844422797882375885293659658762102506062521150217202919243862448782740462567805742349467847472443908624497009893492361245167091454700683027167962110399055707347345817546611437966034253585147648037151912357667591830729509554344876646112267859716826983404778716263679773226781778768306523757738479249324910358497738223717519644082579662680454768697624014619888388692045466169954858047567250885852385416654118425224286488431762583320146920246722734280244038834528308852558876007460382411811764783856945129373804938057695510639684698454577163829383781037606044430373843551803768595857207671212630977064534619806711591564103896957131655123908350786818156487308975632992387755995237818012962038855310930682199595404721468814827398794980126184257389792991542077938913029965809901337293086065348862570524857638349524366949776734379384739526247023031444212946801803794066386356841122809765892190330866181915947975825497349056716519585927940239484215801978315544993044901017366156400862817224139236446999136861448111689861025392637481110833501822834877305630193053366154469807852309606279889097584956466610776972493420824120682175368752045641543496978057444596890620087295294384423496742182917393590202672012412649907807852229873120064189587020317628528280682384378029125735990788710211802849719505706445906334873639884896195763014865297549517275308845791564225434241986640835931936231017120092611053878144569007535366019684779900653230160185588081555286805894580311131265240950601421299585597361597970126399287293517518464416320615211669118787626125821558223548415425598666691717417098248316654169498505091887243369373232546254001049676884321643855981021907322192731056508339643696388076009444884549600368353277130837712991335943335427943944728235607977569318864459827505667489202130367114760761975273588303912640320858552808493428451813420898609930246499253920239982225084130582405768297850447925123482415409405787097746205628586119891181722177785455471529699750496302819286414744292628148244849744148743439658864325180089848322475609057670620631739495593102128181874385738090881202525084114538553838673504642434134007176643250731747393256497349038615322038917813472005386410206053292019371651470222580057080324312867785413050274337505921769182839862493313847667393667487864069496891956787089369776067331931907672404483957837992518489541156556486257337715325770588478936538438031424730581608290349612922961264724463732083574054311993054719831348229856297880190698017602370004791847933384132103893710781677414073237280252297577283727773362144588902413150912390526856500754763272099074136847321285430239789132709807552583515692087079745443549836326367158189617398185663803989499232061974375133081357775124978217904980805032788156864310713115466528122308511036097119628043124566815583379401876849926401716841463188562519776863169436177998090877211122548805612276122926128314357516696954221259904807673672215264678948827259587072140579082714317557528883185640054135528267415450870756041437319479119381340666091236645693701762804297898045439495201962350055539130619107514720277197462559475272102396191319245489010607743278648881563858420235388476577725984133275797247019729451711581953215283861665878570449302217338744415784890588715103241982354535775028969334238723384465144760172705244933441897615385485552285739430464642281329595499595119423573484253623524251531629923378724139513165001510549223138350718888919645118214332870737402120339356863877295402205235183233519583314584004239365456643438419824482819949151341452750960530194963917922505923218085513269068530881880972774261162833822424357985006909505092185375045377382497476517981373488120303948404723740305060298538700367958809589342565975797205303869685894537524005499968885162891234988871476333697146002262743287305776186184139215080882168462671072930354690753809739342271956249684813239378079459340582364792453748492446147069106360495621992264970337585887746719206334310278708965953624668509988629372658339020129342822530801831192128355004322552506239245949358477881049419522081425447756853352735417987786518816472784742214677735735224864008169266376867653536905821173200396564048872308050548617959156647241184466924606497817769717447398715524424990301884138612834225158697292965793814192540519815542220710746926465729539394746309789597454979501353809664493427509159972853613379827447709228890426741229099376222321620661722195250471056858709279050214670160666957520108852190669172852003442354009556664893966657207846489940153793230171341158854902893164182882403788540864266203788693572337422915907011487077368734791434186260896533934476800850081306586694958671784745656952227023163777879058703822587118147095763186844182390118600233548682973265978102943735723313988541228574986258127286164121856649829034676713789967804284155266993163856425716421131731592584034711000658330098489441215460088159088132092686373717254546127593943869027869613138014570295824879448510070069317710024658998754850709621917545191120528401320060415257811878939688389207379870266752676951062884919668855127561611944028057991664770579524970150961711275914664163667560539856397236836268633241041527794907675596544810114796738395176758191131393523940951976962730619345333390308470775006360302337729685278780316676794249883476617394169682847585616907161774186750985605500828561143292390474095277910634777430649548298578398186407040060974983573526442856605053754017342615436439679761532212754471359517761523066742113722082047939791397774768400824068535708071601510896142944794438265001857153205708014489902449504693889049397138353826416568491697506934958799461789802059938539187054092576334085587180940076047160629129369390412277737898438583732429728855579460459572240680581993348252094191282567414957002818565726441226149860491421379239020802764432196914384016875361120191235523038318666127133191012050313018764210525262015463845823809295517409547452004081854976693647747740895610820721851852241116554326832928853591171724372761847666940975311423597041994106858977921792123993370786914845627599583709352852652856724162500930204495907821672849603227257409599426914897560867493103179159976425437011451585683783204069269879109294146555791758560415818060093478888253740209567567144749341953975009988171677631287824342711224520751400670048084106546424589740556479345154969006170438905522747273633955420894602841431302276591634077588749027548394423288685512306198173138948794208241185227046384948010082642430990550764251992801639191169638781556466209256134551316318356930583761377243631695988701576045112713290454014934976851204589673427095052760255597323563871131824719150750932256491838215989403533756860834054588327170263803142428055491285285001912043246135943604847750520422604990568998779180772741519453877670876016401024856286332696413908947621160558112689115100232940351754667737990241552944026672119480127287126636887372663762589718418622132930886327128960843483017367319439315842372546536460948186019304295293014203871333551936502766984604771379945704807232050742152316746479705115804123098047166222603009020131727688726612615541909013197344533124352348935258166622138327664363633420169516080882001358449391302316660478756210164348809714777073017986481493719953997301441121253273535919612796049294948523935762321117960665463879917924051009168104047691385660719247186577993799173179022095419292088860472255807419773904488321465481127371252623877204640757625885895785903790413752891634871066435255893472435653453704490486099121203490279070707134963424912335433047179544147280601494254494185783745255213234000465243953679057946308223416305594040719228370548969292497140221672279936899093100270562855086484704744072424514800291641664049939572787397704903596161822548710131943912670024522522541737576386491702584283469328967114355577325009357086887637438507113004585636780568760042518534446352316035488822912757508360664609965495940826695733783180687955685535188908350792957491939337291852022201619026101403414419843552203881674108160009053773883995118577368136055449665936277919350437881945119979832871782891330323217706527167526314719260333454775562177132789429510964337785567824548238645056273359243628257762429309222622701087066999631727100872446920226637744065820039393996453856862836577639482860606879277994572767375951684917272440966264797645227900386081767289728087650568575593600497378356773838210266776370084758803938487859589894632670471489005132890491509607604312451999186935594399719784097752505378073084181657238886218437769909000146402984978428210773898428353944961147460763840199116075575475474309164556052389155347176980786289711661575067325681926805475800364542654652328013489256899586701523980731567704700655777949370934893439759740314401053338802910632667242897754947853839456620463837819443950199125774760024633865586571651168513140475019923201733978194291515747464303677452322974451611337557673838214859703011661285430285245703840290264109983634491062503198496976079236802440861118624867737725177913073906240338083797249075393015882032514928485308995215697246001907766572764875529334485906794956235777261120918521048952554431342705719172465217027461773079509739140022148872632228508471060731002988647983868585872253064574225217442507468788492152494714065019455460757465508183709850955316911687188056912159252901256132288319660341134581161264666312291404001554217854987107763866949510610135953193721257645660745026408343071143294402242403982269802112273198182928483150008835709238372429899718770867190759730840086184489790553220796528048554090962759152729082859016506679198318204175067120809898686187861011546164890793872649856326057800984028304037154182708998492604311927984468384933265280720207683436261027228217760956751638894656551914026382031260640447069493588310626816045463004212413717283151418316893944361162570486541784069216029765233689742570159015659307203749233215697561021503513593331523788223579889731414018182108817906406232939454735846282180251164372397391984522840153635339948356127461540571517430907273315053353426553120345884391657250881720502068778071955552319099737280532577409834424450266467257929735958304723512597988254743282761097281685667407160937480222645466696643098187925913191160694992880625269959469789966075872878962506508907975839240045122390029893050060131275114131917268295061740013432653767025276452235591799429103178433031944597540923773406660596111883126318600948820327150494501731919287999686920741753327981748010048947419019275948027593301151232855309411467241844021061051818503717459583611676027249161036211543072511825621638744457647968124438899640150205603109162739264905386368559521539695506850625221312026252530161560000757956549610965292511110375454204862040681757909541079607012078497416450715516255797488349795686492528142493576685897427670860749156236899352458133588212890272794338526163417773536126095372236852581756587613460170886790453899986743308704805512595995448478147283452554616189885649958674503309728204152455845824645045704593194043471894167707796110925253396529011499139484255792422604961013324780614944121480301643177372265194688149282268077581641821612604473849161438150092148100114100204566842088416950616717385973235149182802797709994109488262174848828625469203663564273659007178529892027745254388462073224272464343940428011154747702875961256249261506332052327572202644902120526240087382092982521785170916630440802690672859637792989516728446712022431574368772011266837387665067128467825742705198982683064902520365974688501433820729097442111620384247398391117655582689495835958687076126438930204377741963851049565316574974757892907031104213541980091211473828983911403909767327626083855749756416257175393261662894078677771306828061332026027802226916990667455024168920467274310811280315649542963720928245702045885391888840063951029496874516619539737944155923444465264922827099437291186701860159055391747715479503352906560292363462119777762507143795551495939029057875929252494999561667139952020475032435857332778884756697589884306620284128255901247933067038344751147239924608630858088419685903644345072233072757517125537441873933721909236574588017575597274514311028998830831403609143153550871265241150090525097956049138153980582481293047126738695751625567420221170682519375545595863915260410689510183913076818720445547423457180404642875139747565835140546773689186910383278662432874155386267164427285236854109843049747698696044148937783126831236343831531661542215369574810946313339767909541316345426896902345482640231079740333632919553068881916123340802433461259133836698237613400682339566451125235899384858067454793041724443045707130621371114244636248642700033522124127239865869320379931495849405642742159816908594127900980770279569915547398092625290662446731333956032088048740541938351466597194762635102741649336023217108668881671700869223126991771248428408649478123465729212620190278236325303006763743214991101344741027409192835363019875347346261013788494881834896576252793435108194380097246824708273172883951048098016135226089992258184967612601432663502865694199417490100546179170740332221050877343624803750017948590947588322338561123416998407765509968842746864451864801345396415304574279068477619429128915707497642385841300268818418279235993378890842618656259020042917441958230167958580579891496876682025163946642744584917949105625766070734178840040127501930325784444593375525814139372923989406875444309068417162019487123532914646574695346533919729591527717796449230023746564751039832478361742170512582199331439760005331853575873135974154927547123888462380310544746348538449895098441028043358393147623257451204063279407609155951054896636573127426447273496712184291824086985109631020807975381285524824898746873215580970270783826124018233950082792723548848666514235728197107852910280814233909951950424440785602827328956203802239135232493258922771660904004313737101945430777362583759787268292335837274820444900079653244158501664070484481522315075104193457110024321335402446293268721608623924948979072530471897630289084262966968323796739787542855016589339464842296874736856320859192040680227121857389314171757463745172447682135048320572367570635347718507387754519092654351834280143128936343443738382315981622102763159770442040514344871346289912464304486533148773674435373553912963040498677718995212947740330339576608652790524008642170975714072892156946986671040760428598179873240563903007328673491308883926204619432153331877561509756203154329171610280859369177361312806527594773865150427726538244375051970686394408631630133587438068803448400361391984462516268793844954544891972507122375636365967479269950126260542873000834766477839374405781847438613204658388482842554970401213018116170413297201976528647804558456935726849775304777588452450461025853099245746190714884876371455239171971546565345579350622675273859922574465520053996435707665368702019885217773887846589155053573866456953677229541712253664704313870184946508035165097870154903469135173500107611600825325560015195810902742220866488796135090977784005900639182825783009624337978938148161403115428497168150029372163137680253307345143914355686719580387077126128285638543799635920701051073799777075956402368831312353475619939248648680396628685522202796539256656412334482620464484342298554526839871866205565636291111562881456842399743675525762805727464264406515442308845718828403133806020587839996052133529672839777672727579929189704548611655323078110580771861279739848904864241613332859070940810964302741299120882875116499913313768526234627367192121350209572919690170342471177896214313305249872127507169188482816802442820017755508459494816498503071117905587633570451749272488307900257737746119494053742868852542902427518866893815903164579316043627751573035981157987581270626761120127604235507219829190271065877431769113921215114116418216032662056824551146054976805282092402705836198226591254048099298694985938261461393888223996677985556262783161609990472629750058007622056291435574672297563581581357607511469255611265044655725729024425704515057717865505372941990914264391330534728904644492774459398098452390684342326685310318628044598980424854706527486993053509450045567555922721964532241845260415900855666486674758573330768762696902926685659142481201216775478220850575474188335801771560852627217719406862939505040768361238421680159044242860496485492801617452035491389143823999430582903469329247428670787309730836967743167011297737594393209497614161329786345366527676005169296164424689373687775204137850621383499920320431124269914263831985254694680719455738496923261845679113312993911629209869200610255768275181249995785009529295840678419464092847246666071911585109908989326126565752389059428420617290162109949804799971164784494526646733663800458412013299928158442200120153130337798286336597843167099039358105844612502422567535647985964701423736903893703577453365662059479514700996068191358848204288928790553259368509958217143630891951904212056530593817121477435639442226445377407314046475915564127624516265140419567999766018318415994690066501055674394241953687956570739431577486830216361713240868859554404688483844799700242298349325137926937330265073921514897777960922012037780975099820216157514490085577521687612330082367165074313713742997450121971243995456758384944530186622341225962063411898723767686721223245747377999310235259435593820830944228947160107944701823523054348179633033125591642560112709502533777058367997996726300089881654228185957697381722789707108817167713830976036890592885661270765329394638550952350399394461823691444860066749821102199761278395102400914581381526846389815694297460557116891617625122829275402825540876987862667340347327584223395722507439671745933152718387114053164514195548701683056153633147945090501421221593550006068577931044494818347753174404625222363639231667344586514425340312248903002437954581365218924112954347825748790667205201048577017135534421410068234207124627448039617393820798499608387816063621308583760614349444304900922633168247706682274873915875252700298219917050593746662513756344421880640104002408562457305438182692529026421153255771142037598644206366943698968752697815702472861904912231118386382252423464646028963526146092265003631173996491847257442968653381791873785951587238290856727047151986195695321951784048560605408999773726192292858902392338119601876518533199725145673339682563554212496007549030190930329472646488459619468916300312765539502668683970841279279739522308438131606085732154332018512054998758447893838158700889434871846597525840867930464301888022585024758599438301124762296703631969392797785038332125578226024631061286688838473634446137009874748026068801451856610328845012745677632108099311427875087371820871399513716850516150513019957230292086020880672786172493975671880727688655255209758393324822898514807498332367769878693361532112110842233480137273023944715179170511255390568286189164654783703822812818081855399212770978793269634779122598032421942099023536434383009259360815728635424391617163133482509252260691242040057841228963535635632812076425596273311731204763683080503084186983858040301130278039692447685659867380078035992442501202546690889887108791140975190246225333304751996232125134151531037755811100019896398084262691674485359786543183962957312089298822039442559236409678693405337340712541776776665220382233248194923353048530647389394241718949640568168578888748655280312838042986649001621435908497860961271592024002864572889366932629637725048335593620153498879556995067190112773223102964919428047027268303606481295413152201912152961455956718140606238261808542388205118720405439479369346502860768321760470717759517359404914486940781056184184403962721036288063831873055122631046945943980041845150313500191427311134088892347052936422260456478469137454914622210585274815717693534192639670731881387889750755429534821099274000273370143531626843174812288416684961977590307060743878199765204956807283829087343068127262674937489371663825360430677506059710188232976338097769604298231636950348974617030472316958126517531074228046527726384540056642384918174467446019000521838454855430719392639318949682510867028437762887699352242678955701682700205138842191279836960057818679026694460047388172246293935198003375519871326606929783891425589108048780455879227245717005225213949247493059407859484092248991747383338686693816780161890074545188546143934118393389363865644959607165682915343769280320343589980334828307248978188798061369461803306320190318744191048876827192132044198424223514294318612452071487437570776252158963882732573841286425723493553754149223133758967460620629445519660150776444431025722048678380747917921546732866169833079375837203249791824259613006335114655282679423799267316640464418169516727325598158976488531520529578352669121991702844198851595913020593911413714881198967592557785705407128270380900595823368133903717974890888729889034423490839560913783500544534553481760975853861676003397187014071456424394468318021853008510554720893934452331536911360939717417662294780586441581848598890468253160838908655780354106805922679799811997393863114687620393055903333928129634412328564279739509823529255989910638914058194643917573635083259215273339435955887457435528784679680279791653688429052386773944330531939503631151721534493060494733375231278945957652726087119794483400652805524804241158893905757449666862233373692258532393674635999148998704029163292104730665254039692456974696144615566955884939809606589913117430112275863206829006014592734502269842889117765704762594538178360593870605152185909238811977597943412876424101846552539178567411075533026506157032449091786877257559827476569718606077339779963228552893245910985945165649965166493121082872318557913975388524373247448384001472643090125040940172396979660777077102938494386964325181376839151453553778106175636301807583468462022303604170002164445935726448508718746707880342710282168466888443381779033374554721320475590527852172822767389429720519775514831924084063014883351280593541663766575287643925390925263606539785223114541049054182390714317875811675270084995791677898509063115416142537317924991476783767662745194499290933721804120238560867691460273370907403253236413849087376375519170431463338877621676369519516076417016909814927342605339949821961422277633434686269445930126218868881848018024478371704392203299323538634100226909025669408132070491361189263804088319716975472048830732468839097038206255609773019307330259916830082561850380500518480521740158237314938376443898706334577996638361119147179888851135603998686236145559896863579377729567630311995770760614668809769877026383484996947492983788908638847617761879595301133852634196441653427654789603038664070531184854288414149383261448921755814032087168269243226333243177412718172354097062181051531629590067608129655336858209046384732164740486239049003045087736711916006150816052590800264110701639350138615154562243175085987207373804176131614692875442362091181510237466430174104752373633338941908156346187248313723861796068987189813210779968664439598031093685373267024529437834504553348494339716291628608239730566836815428214358533519344734790738841227316177155360366736795490302248679664498009703201254428430821805296087194313301794761779169843589047545796269402657626455421856316196777457296517331597521445074465342942436871400589859893057782391504555345057769934849541406891513906140765127957309753644348703920474532697814082771382090414027752846618679745696372036741340032617210124901091126613204707768389675754719602192550538079051244232465637206390285923280793338145917681533278165973261783785146888842667838137979118264346747480064801660329747825913493336620069706865704880176595564574598342294242258659102786398474824199256671347261065183217239514329038223683116395379620934277901292553652377145537870773816080110047484655945774707121051474556195889470504556689051504205949391871984218676510293110532633871285114186036833707566704992510416668820641314092031727548467164949029285916569594599244921176093005867981360173454252088107873080574688724561810529231822227659484742447086360796970312127533011379182978169544908233979035877671795752652949024907565879230800970674642147687621296914830933492760219457178403473630591133508685251038513428029432432733948773459268754352519504768049087466764893644338746709205934887522396297604541682835783942602700291715064842071151096535733686225067331256744394417091708882353797865198392861484631463890584885020946951078210111514147063799250487369786978611633071856445555261993976342709812066090965651056110865947419637730335024486053902954715892849295684933224856286301979592911638949940803765521134580927363421513851447875492742495957075017155789676353238119665806460906759078247955592444036596464602794260711137699601954049324887131606887405252295835155817199724952941478995423785700012851558426284906986457445270928420572876954655015951395308497721313949871348041970039846229671303922346950575255561252872057445233204706950171335080369493850906284252563335664916209497279845663532130505436640589600734106228693047388729235969328382144072382313713064403230914895033015224357718608818945218303609333728266431054450776381581966978421330158843338395837753557543351106473399766722167084837576736639286719734605489815653999901844464807568060518798862708923800043101914320041750618917385572933839769870772896827141623440606534304318290975481213219611573244627706736961432406137989218043848061582563209618083482566540528766272087528374832198309495671774367489670994565051570005363514104415997656616593393957979708087681068136366089361618004385905527811874885278233141085175837081809158786848314321138825636579734096868721657631506361099192715975789189828044161179880802076972028105349734472809031663963193491227200848433609099122382914338229857053909739392141592986279753684557903570564658507399510923679337687346976681430341993631169675634280278749199104977175377466809330495583941007398300712361089638335752337738285850510755346807570237061892940760967960937792604039600316751649757030794524082344629613641790117892669501101021025344681185474893689292856168561930661487618390532797087735538863689298912179793628072094095350427637311594004023641218148622168281343440947785676933759698805938897110268705220749845500049379797691279009358167906918516719192402943526938265363455646555098327726916912986143950742668863024103731275164363831343706283352737400574279125995225344396018725551377347634410865187352273033883026986238458386189898202411582098365504668272371176708522947857942713456786200893723717312191168165596423389370847176324740203481004177055572144125871171032897505747538592454142206437997892413769757630511475091250268029857981088345737505370334778190855224069719366567248827383152815728737441390394843403006252089081032218647856579228008083593097637069084047925947123330838449880107241944236981030758647104660971074456303564682434266662831658512940622493606071196702375602181594097585773967033105834470328899669265319420280205869210662333946705504867949402729649416818979278222971487980233333428462280574793697617061513534755208707719606602817471733196607155031317026753203151262520268292192150855193926524626942368979606576367037409850712869279670502132719781005547492611729423281343864731708225488256257023875297366428558096760067242536684417584027475924653536249459136794571386557771671442770602578400047015686919326996722349235446272381838077221311462861990346827934823258138906689748780208368682205295083679339931660214006431106704301066442558038513600387309894652143784013718095624114559402502070697874400004646091241832346825850189677498546659529160635602094974892143496532943958422556257055077292473072535950571874327894817736268848310203046289147205713563343853289353031118265959639845972101419543378944746126529729124591445540621285559193814189908865657372378270794466379598843547951865121035771821668296192579726661224750605675504841252275908351642175751146075122056889667808407274630960128372502958575058284446512702349859554749870635980301013286566349307763187544560416899237545038688237621136743811525448355865586226466693837354376870401943239250604255418324477131801022299944584654708935881685636056786406588915446001339489803694701861610199964118794777996965439947126978927025368977901128901212601123869433829242999645277371077442470828569294643778933110437639878825368287585272755476773637340984881688550856296568815033038836654624669117003784298566471940750675092021493781788503627887815398076165266567229414083437910236732407264985325287716453354574245009415808396013247828219737519033534433321976889311632497190898493074700411254719734586059182208918977003850951376238590006733708518858774290074273368017528692063047874857375828092359210417601526868954915472710210984604649348600047780773455673451029326526029061375422303315155290422832899708519310058614276185140025642402949405012339056195643015683960368671895763548514996304582177672993814506500656044290683035108978347691649569475038440606839182226017937646942972458952836624959214650931372010050763409765067596092311749510995235251636316992438837172860373407619070892677645022275451712059756140806114574065743615330458766657720019843320430488354978031146058954708813100787405207114506488768420255929912874505710033420472912927058674229993336989307192969878526577221312378676774062807187793794292868952933793302893891182333424354409184647306170728676968082742807013414304329693629903536873556219024106807124669384514551038741884391444677162915620805325701942879192693750775988176293851481119792176158975317681743790594940410760358522786836024853044421107407597927918218407502078293274959942464352699356361995289431963625900926959768055924031684975546211046982081629325907837881232628286769036079387466337123896667996065086886142287856475402918067015399823147521754470670916495741336199930611219704109046354849561998475086024466286702412256232142303325281159253655955625899495279878772455241701801505152618674031455586291828329551490638634192485800011122967610672399079620909447297714195372031111614620276795910896318261926496347769822804960143537149578647767658649035387567807298833934206663897225398292999880708113853887883798889164223788279700440273966450321009389275811210999799832959614945960308200821611241695883931065311878921892628265720756248718484499868280557052969797141081986122748643484112846356566087321570234199427555509549453383388561381568339530698227579615015473153019511698140684483028581817872413553517159807911951095658946767738862607307061450590836444860669582750811711609657602055132477061307182229543892699785980241027504966476894331280004214566424584887307279336464716461573726586565739278009275842478346847879511648373163212253980430413073149382071353642996425491228344504550454460222636015473054831432876138619301759055765507269575619203549740422885590594239679102835568151091121976365532238645514448284323599460246912590517519253752489253336897673639270151963588868374924923423996585290903916755895219607522548703245059047505937255820860629705020214243274806795816970317426519682713990206660040584174755494437930291751373576074452168880363773823589859955694143987985333450354705915901984467512801194367691767220075647358348126305620090493477053609266272263600268182939932043255094678781917686258211485530208432691011303032307472022652957087167283299343403744401525684410022193665551681900939283036209487961364331907178407615630341903599537262590738241758360727511697258502542588456569405366976042578730654434710944121556425656770891789449957129780874814084347631021354978140217331750701548146453600829083372804463840970505575456868988434058930467816772679785887620554350982224392498106609135773276136244368628554832764541178019003948227073014493068440469037267364441784624015305140196236675496653594546205247596204147283865454350373778980432419857595101106625271639624242833089270537010280455775659177051723396302491816008978521047634860832780284751228229763469583342474246843895056840478651343059102381232670594732861203383463274564723348775508461526001490165906083022509457784072594288716922432183786070672409897870308128244946392271454441054179918131705652695910672413672780982372835766225289835839356067631339746437820682504955657226929908668556446397310952781252754036497739656721448968067206860618565900870632018311914622742064244706344342761891535714133725456531775363441601571078715813552918391579397002360790169460339080634486222860320246631854636822810673279769332807013261458567712046683800515851853428739028341989540521173433957528528789640407688301358025102752742026197954007019736675465439569530548101580180559278417196545554194333989337615290241335180014990412412613484554242660197135505662380951204540443649766234076822222260512482857063530326418584791037470339593112120324767366171687934406034957126243170675765776403113854326614296165725090376408066023689308389750473637875944884978658499246480774620545127203196442671159194689209148164364490037975592446077383326239431494954571418838811984872743081360920617621507831682619263762480161497558942763224463998813531067196457859009186790620441001481767136061710421110334584208282119467180745175766652955024980813526390649858240318668985128141298938646779761254596717482207414509730469504431788368302645179563192180754637062172369386123357857526199193695779316193956516433400081952820402416837895329670977193855423707961254810690429728832590510646376358643818957567479231758165762160739734758761084020024217097346901222511312028979867165388036627637028415742811082403643145604360697639511829606109046041226588212602593195436544935393806259031806471465054213262781745946045275813602844095651792482750656145489342959294235303904246817080347174313094014313599424598385613896331326961520328469645163073877331061922960982306745835167440255011864250196919188673670912087324845898935567850403514387727236311391944664723112154879101827967108610783649788184310947871370091811295601268986594239039840362842884684331745766817624462008102003468862195271408943307512198778604714223085769332221442000563045035302946118770011049872367007520393690251518213981037709499258131153855969063303154961468882426027956120171736957420440979716982885873188712312288322481535649808108335808123846015968584983328030888229479234902628548150670858599032229802404431432805420009628657314808409740057674185825172839497661994941934444240104927803522463571818119369637039011529965753881166975609300252051925768599242445841450314567837297928352739342837854393602987096618822893690891650205488701806985296322216753178530011352694065601391612818805509961715360752275088727446968374579457900667593043058310190226801467184779607373514634097581596766232945684673288421880398998914710875630345826440075102332161641131599944530973209339687972873585276024408940856087091237095700078855956913630702167318393874096947603466843282839847374505523439330084917929156678783786480503341233835078164366021448417385152414453486241670516212683781479174750935953203827669572883347280347304715664322787912782966307115998835637009005952253473981780024838508722253011279787573618130241558466038505661596482323068909404979506596537800302347767344999205743139075089444558531933998216193705825882423645897061143216336428886438132984602217217714217556408191486107544227077367700949953018781863062482088522576380586453080441080648933447537553965774762323103281526780915606238839956811449026307894344122575164965635220344007020965243783698971890466264153332497129305599823193345574184934403501883444231783270427522736891850801728545433728507155409266813151007513655140489853303720999243723305025930473112738072756914006184859145483387107045278611823834298237793326404499657470537654913134868818769307655827765172992064904124192089583749026641145477377247112527279365599682424045616874045871817019191436674420747790281147905039787044574136214310272434250856906543079560832916497662210518291946414303888640481653394360638141603999779502221693171185876270367806984595418547455775277077116026333889817011285880532479433508026249876291340267592706824668762334362287781744958783728376983955248396272269578401700502812895105484828786605356574599848936770470448542345853866808582006962044398123827690614217129042606952732024782365963170315339104859263589260442865901541901798087482771124239838745864399834377055639105387915238344852245491832876038309154575135653539143503055575280728463752899416535385101254977550169109579158956929395476735501973024393842294980364539718072507640446806035066068791614690533147193250670980603798979325002344245304476293487374912871839817182056211624713177128989744385457574008141174758169434787906605303222253980128346246895077343883515287851073841132711223771991053636726327291755924660050107877177527562287897429470234156505906822652627127988270610239528511440962615534390664956243868274250738507955022437947117657089261151352496490981145218823371938635463128594220126578921832452222319585646001306335826917912007031477680128278051100114091805752981921085223983280153305721326764437113953714876684484955181235728732406922868054027261913404117669822423261915592257742164933540661509689839359848462715673507922369730645357570177869185307878654877116829174959750697909827472486632692508702377301461845909345360401595237407568932734633717953966327768242907989659865446127859425515630929979078391346450321873001307743552241994751498273295952104281818328883575020840574607124101157461690787610972673342369914432739616786370379541604087343330758727944170872947368789144859143816839056413088235781716726449210752660453221853087661063533966094578217468358277004876581981997412726686384384059701774614513517060349342230963691220354384817495540018298890711218118645079357977721455237255795982156121359574627490103984848790753428784845641436056471719666060238608149091659247076874073939891657424508253626756222900267451034579366492300722338394943379653047000427145510034737602627337744776300341904764225711508678778996686770858851502565904153302948136914824081893921345190375462043228202165259119803187490710292629911880586816085408939811994072532297974035458639538887916541350649256079518802361175737564459219328245394699298950642895307605689923969552039540837517070793455547122869702888895853599202777782519122625761507479054096003554908821042260714662713639087711257315088026497715146080675749454141091629313592753813938803562682412431314243053084592065793528346281873731762509675550297368368521166127589722749388013014134070638181467550698954794726914931562219341576442895230634108650081842606639416950040640856882908207441089373781451038028849199969702253657645851694943319549765853574318302351024450974237308422874347068124580208984162273996101180170589981982985256089000622511283212952499621586101332079839618737894637224574398597874985565045659341454674967933375474525072904237739861765436332046791043379799390476267632366340747267792644472126294119587512394466733510533189437058302128423687269116520483698467757088257958407524481005050747903059061360089765325464843196350279393798188233307650159659322758186503905600600164830121573887382373431473573449946892919402427975270810603715779394302040147859148708416412938690234971765981207101499632947534822196591513417475892418617058530382438535929784902821510324129046439082270669681236816687294771000422493082408765357800719200532090336674292520624993830799943833516680637593685585757299154806533455588168414839164497920080418978602754660709315336332444111642779826607345847820941621113803020100966709045270524686478035650919815389130243322321995349605077616148403820676416819244632334259997217937227810947580563030662404143824064213652952614123982940337551564435485019904187827295755999169371459902259517272735104174451715018150876545284424202267795499115580400255453643869693155017867432264365409202558609853573706916895882440428978589306308773555337515838503857871955922104627836915752519405946984137371369086109807911919452516536506184865761498920556191430002187803470750706111453628971870611169783008501373563744067729789243251185555521037439484447003639895588090586090965992151005382312265726684848714329996414278115011478313576217598674925012537485740569069294540305693240665516062951343442683007443452111741524555674283728201395969875118212903334974693791182809350032495471040736180797218760813863270547108254141409456665721595280038380767308798343793587399988409922001443921820507118111646586461706973872257390641049501282613742831283511449032448850895995665517976576058915412929934130437866479660137535885493698252416455034012029409766049095515707176251570612438360877257871911049749495103265594476513749471128330404869593319292888236890858405355744801789906373566886602173204806181771707593164324456655198900156802423361711998422226279387224997464101259572160156528382960394814130107837664834936072139483770738995867809564118421225664743767126598075423622158676934010244693215989941515981228175788461516649680753749932597767958808494001139641303016460832885133782490586351386814177180161387679572363396156740478787575359225961622810670810976176635525435064689222957299350276705411760808824821037413336407791315232473975645253240006434886543361957605788446901660554698197059045070882125427001887951073079638129188950492320630651979458816759294405721373936283815045105184296100711250914162784991617397206279867579929942660243380130970918938423357190414711153435710376998105603211300836343073096699364835749599795997879294394340542376386705677005000483878222762952257257354405587398829775451736485772760419423267683095015686414847499623604265343857084529157525848818635243857608159486154234788719105525744648629476907069595703550497037419086618955812381600547235928903526212826678638706639987936830050663309825864151243761707435967041480330672932776064903795932656902955454681543737813717075654001189119642610037776698004635474531116058215511514030600429284710891245845666232921123805927260462204265901324337545910092547293230752756077175828546639172055109739547545809925862197410224365631852973051804970432907431003215487255289656655952678725020897592743253216304984579986295614855014208143438580148545540276956050727035578011995477754235214168237992428223164409975702569803800709662822397452410681050217406057851020732036338873745913542064399783624551448407392520446935365807900343477408436492085110975640631398574386275087214216868001705856604833885744656764636278061304145381309615565038749937172465960971667677021033779006305304065987108537426460331066138626021097098213915426615486630300201404267456366422490461037641256111106840796251315810624925990982875074848518547313622734281371214586311202936566958141098623337671706736377979950860151478914670443085736448142543857529377100822780437596924714107879771805017280261643016836717804948166907674668336787740667047455035537681293263107315695603430380861950204640651406479773840060389143890292815527969768121780345470389060089964349819607799699302380477902213545727877894349585724173327424586534245159368900051886788654318090328219085138235607735837171418679749380788114786718569724703713500019630657427530155620034459779753025491740788688043921764118949139564684000905189274771470866651143122710389606989164754638403623691836511796666993552252293017336206703264025896183121161024905281494433090008996281734673719754637423888820963968085732720871701914273737981409272050967655252713868799874768344860154453860625563208543349780129012846146781507118715796393527549039835074039787439849651601213676702102153945090854009595232142901326747091250727904027634929357019389752517181355510980163848406875997463922250253830464447034681210511029062525327695964367035084771989541481727233167936233279560685155162536616393773511519568516856568556348105610012955505657901633022672657928969150893980441909054346238994077246130370311113752729619880515461198436057774469220600065563022029581977434796904973976045048381892304420369496625570760234391735194852732987185420445006391668500772535545610837766206417443079275913900498888942744055088924531517227949432529811162123150113910473716416842651583494611611939264165578165333833443374332098603968326941112365507158950339727540350450343992809939314527746619997282987174050951790176361033568576972543652373711234880696616671751807296432870977252964929564214862507228099971451098948248994481315028308741061800612091387554856275227694502307117726570801217302451275941545250678725889343065549167507016075702446510687947675772408088283720772062442922983693180967238252318554528333597495621451476575519935704858537326012582984744100376351244382517163237869933613293179143536481711313197521886490240065198142568079317411805066765534214968644209349313704519629821106967947533256898934236663712586357337645191947960554573806548529017916511652323670901395461319426742693727207812883142625329957321676006151512503532504678745953664398493261159612483740196973210219374228523917892278548007671876613266553867811325618533454115416558292885843645147285390997381746727545152499679277724235879569739061400985794174637710029668033696173647414173416870702938755986689546986457633665989666769764892022478197936469139300333919265781946709547195714275272755245904100237487911098213870314735556106447115764647663393085668735537836934416231239322891711813474758637785305005431710362813714971681960600668916191933201719488049878124021366801251271233712280991880899412755600840471079957259932138684574955207840242800515770079475014762058376182873103006187238237374240789822205689002928060259589928202199569689852572045315520875487498442064552095089774965479564588600792399462431319713114195178743851641724904979102283836178961935937839713609135644622001656411268521471574942305045686417342142358451736363383970104347592731855188932639638030770899816666129859033075460246717293698260861068915556836581728798169935186732622758663663726384084571498784214645803233501331564877951409365350718728279234637843297304386067754819272746345198454857745351113972096677918294830579274208926211283836467318257732647192081447398416300679489598680582106209152718219329793006848140850516281078639385702611698157381596388758298549445649931528667052283001757828754158459185639282329724823074141786515230426651550622262030014362107928904200755661245495058572246034688968611574769746100582352256919210273044768715054969695873278096670387086706547188460921436882366430734593913541952799254780543377649973229188515834668144446492101616293693305164566822034540471942489368488323072209297456247054278240364765527854179661714211502294919588064000685618533945607894593538577911761999113165694143460798354540222368722560158226900680316687494057804942578129765801584538719585257269578246020585685331406917386920460321850102146109361839508352721200586351233502261672869867461285867221361275976323572278348913027966184717324057088083411515044392572469626645506340838662604236041629803384790536933629403458975723381248213553322019133191457951186956325626651335006925809713994014748265574130339190764383094914742674763363200998543844250858028376552898120428314354496838141335729413663323251087064373644681765547064904788382156270199854928558286028650337763503919489516938984816958141529930615338526435534919240442340362211836985318136092909054288944903460956977819313567137129510258109996870157567984205701041851108536172711818219210298331266788836870251583707698164841156815527605148938783313882410465932438500174734357687912462536546195925162020246037830923895368290290490541867743022212081440446566876596772245230487030189369651328890621730571420675720638152024980783673531021176986537113534995636084511782584561413170278029890459952697655346162900783232278779579609549780132904674009500066303052603344161384523124599702866721306848474722366153604238612994244540117077102400722634895008699060847197245753155235003815209073110303120619126657028082576794221786131546569590197768269104359645912208691287174227664019897108012782398223809383816974197457446464749943252061946991309515628386498113577863238559065213679850969845986836134286918354204376513079262671135783569490381000842062830450162356421739268458178908305737702999897588777837797699131780847038704148925438942277459155819696993745426987017173528432930446189729216452882690777563617060532720711671879955805685850902715907996249202055829321476143977339430376007132779660823762904539121472498288261270061971286258493538692652936026108991087182027367487271590739078465283529029984167890017702440996885335598678310392820256875059524373989434476965166637381201696800136530249309244748937123803077481599872009680603721032496889981731679463707758785523277699690932431045457507813642104116996381104192583803926861596540367421454267578366051971213977791945956581761356231504656194749935776487130653334946228887138375502496332706592619822137259736938995016907779290551589405036569213216710320561896581380067351308000582133590873835884977401597860472557742047799409718914878905333085305414245225828265866746590375017409211451563173711953522987058731733680288295904678636584472968433041167909860312979005640469336807766764059793596939921304240999513007841170731325660401777830196864043529954703890275233323845397611787718682900609971647675869399085031668869843792272717075488194403461203801577525052301684049843755176100265117085932561629053277048343938742375330895053397743141571522303555760719703866285349445294506170580523002785218423980506085841088061479851858120374512274436840515441860689782094225275768550488208862077844461194670350700054823744623390611069450026005232667403192861528054616514059708189831518510058079942326042871922299305781945354951351896229765133743973771615360479491562265774150248536895433296711425390393253165569343468935207301646682226884241711301214566796323571315262765050874938995171706412145926814176029246089828998317513715771135368431778113815264031636939948884531681639666801857914080326568361326545290713896989126552677062338084300402805495639912333058224575171290901229095467980359482986592556622977761540768741471143270914639485671071238700379023651832152474804189143424801924497067976181484651589271643244121964395084744503575964856532346001236009366726172080398409600942298561025687885298419593192287603403726815326596599456716620790266771336156228081295586863486016753713253084066886737701804251391820828526099923396355000423559227416629062249561894104696539435780962566575975413924369223945315710925445673462363465147357003593610004719703350768332853606924552451920808029721829510238832830976023986674517271974415284785400786748155549835735771379847389033105831403464883048853276466966588467365195627555150069488938166062480472979173157978342609428660160988799615209962467850728247083023424142093776914924206050803762877262697962838797497725633409472642674037983561681985710707306508644727972041110805978565246284477647773466056668976751891778780494514519887062483814913274172279413341456670696799581706039185981347487634426439182467021940931888209195176761014222249310215824604583482056976191473624049736350345012695581098692896645511456949697046235727506974208426373039895625234556354866327671582515671369812092472951885279135575251798903245476035341875729763972126947907417370843498856291443170610959026940815800800417429203924718017918300893066340426892682446018539477072111300910475216167334791568129339692320346950945432466147117978506791254882049032857453257496663424865564996729907306481201605249574462073008858011375273260399063968282065871816117836258426732058508321025172253097538825148340566708688719763096482851251839154702578032218205584272686224987300991937038131558359107166487891737441363267939950552375946192088071411019633845274191526836370556127126037977986162896902819527140017860927336827660014868497659135026694445492135202464125203940572285271443400027830572428610128508653131282027214810523487271469951180843548890356207669172389218672425855308083210884500690570084679157305439833324613419362121723008461975880759001891897856266070444404547571573840025816751767790527006316169269113388179375063075620990734698324552323392296280816397865739784812851682507746890681035893304379380358335043275947152102939634453412098770107897201703927745266778649231102477236658105668076429942949940492732665945159845825186382209995597615100792277764595615738137024413165553156315770173606880604091536013344200783661327557048859063055769058785401120088529904957305176043913312478032706741770686852414192240037355508533391447584536653812176585055545296303400819850567223004180258565551131200893128363344230150750236590916666604420312061775087868632119284130116294635977390076412291768197505029454078114434276673904154440744632409252813557204191200679139713954392949001010990885928784731178987671020930442773463372739770863691194786571647432673176599231267612414946229602237293655610286331104463188452040184933677036677434873787922720370892254044300231470677904572697415518209587893791685904399174162129201383788597043642905586340864170274633475506191465322081946881308513424194931028223399427345948569852398326398159407283113203406903213103854812454901029837184349795395972231303746341698363418083272017999248265835448213309218839244321125395736892461635804560642628699439850563108989139962535735770510970054325344304805128458773950139012785447923343837435425312458223379942353605525395733123696934843827249546881205475962157197609962379244225017761235611975716331354256812347945401563037041576718483171746640973991943733487841829262811362086952396884979269933574264366829261014409231999761658373756301674857437334730551784867742610156440427332837344975089198795384444566562977480671280461129124972858689337091697516903588241779385485367416093753262964231368192807809611335057184094440398827446060527275847235608399151101088596740359546123491382883318936021003480637156047943277620143999874415492648719982464337952917289072923186130901235012577024503229226253435909934917184417616780708129644969471447500409461961983374964824126343192936662873643391010051945589009664922752013269924459053678589891603990864377460465847583837028238207740720092676835422663683798389663819097839436053661093187066549362006560746634125572538916854093897055536740410969597851559697303649703795211444044257669135796658818453734916283142732795937534014354135474418188191233455358716382333096658716989018270085157316798523518707799388066723347987963672357623522327344495288530184547137452333324990727260291710561716627686859107683093894614178557260266643022403901627383516979943226995651356327481924547081655013748003055095360980044608943296056443067500354657313018034480411065710094092856628945793871785659442400526843177956202248050087225722853629988344797802975835250573087853325999523591335181823120238714018168274576480662480524849641508861790757201124764481350449246956755459974693149963032005900440867799147301253970656828833633075631568680216818747938754886719388396169094946723771909837862997221825116870869215742437138882916319833490800276858930255265246596339517238376115317608864115104741396396600976682086818444913159901706662149137852951176622226661410603568369278175906433244499390076950193763749591038552907431642288452162733902081722765712449346850894958469712483745799735412739519523506228608800162764295911274134715991450472742907779224306246001396941439274615346180385345240492852704644519152528079641687400441815438569990058987554024612129612371460776002485151190949611843663692531064730083962122410016317083411916695604108115626932568903435832096766209842047825579047215552911527889021641942918904619256911935528710857243041276167767012441313916383040305461484081495494141901307882080425913986079947999197245970695986938804328047011647463834952227048717473975890148604079542827992003104347108137982685853960656201174986159059095663264156198779417940386646538586844240851524690263939213805394596136909516495692985256492743178261928160374701093116819053732111083375159822796677294873638717696822022546151932086668188247596505376513716613294305635898587699306475454574614323780106917873574926893622595141470015103175167377643275563480327002189847242703927905916443565431102224077812644812232944480673664103647745524424359575135716543230661427880418239572988507369301239372555749173722853085709260888525438852437073284957201532087472075133393882204643708515090126001148267506118692277637584769619063754150058322429248093310475067825693993262500875737084253651061315372949245424074040186939730894622476438385959848254250854756966432095931413743570412047836939193061219214380071044738706492641889546746627121002702355092940061253976427255275041920084494896995356278225400911406179560812902589517597208432985923676117838943322507597474390393103471983617247552118020186543256489038724087326446996358808636188593513879502889581654782890834038076286012834459991029432741931805601407604095705005972013015615749892360329762756432017258157112907444861109768738207930890617433313368855419824938759236479921298354352980388885809426577458409981132794847118238054902134184978410514462606823535081136443384325029183298588350205525881129735749256816532311838114590016651886105219167650378529410849067159732301628778358202125195311038958984991050119267456660573515521244952770423376636962579631474479932078493595670945830596184699141490372672662040554052903498497846044124402428969497289785015014109354345337797906573666096019925633631232434052631301822184969519499644704177518940087216266845001909768256749857564345634870455642126772346010658408003167769738385084264954762851051574632447535961902678899031546880244377955291913697890552683067450561472064256168564115686949043354909417103757416297746659155168845259648685238260621239300143986028189553126267752832426631289473056581580336729511728620154914725734277854711172817300987983168603142450543644391470662189960416889963232518606840518012306610722795354279293298945886039677505983692093731001023232161485801502340847923355967794105173283959264076979422016792957842577093090401622292573723566178975171394711443901756793821153105405318570716905615564833696533348383040583393334597602784936274413121835026521066399375232985332301503403815454428059267781822881520741541219291809482955032238411044283920204200068446645221459241674372797671262857798034953627783397600382172646064227970556023131420020163939590920364281126144315354059450433221809868670372733786626331001487596138492953267974589871415018230976017505922109811065487143373214396768671494934153457559066248972792567575089272231380306647502186940884220710737291285629712365498439076596594688876107021960336508876058778349217468375456419692330089554853298483244596703501757198625755876837094899601869950352721641630749740424245301819097578878237681298759868142765981912024808236987402019611348994068572858347381175024296700489037389624195005852827893674614737452920596007190785365969746575698371544519618647303542544797922310865380977027167691433087928227907669144825171414240019087722318902970910885366331975999232793132726832219458831656538393083517208794728916714700601669976691940011011159460818032870418935077716936255472851910681489083164477932571184597865837614320480135308693351604740845186711714582852882236155770565275582741514370056296417006283022482458747744334207159368784105575775032267299970117300295580114953829831187685680414153746307400386147660304045988251231127705297659772576974186043604401002195626706833342337003523760673300443991204356981255368846647369535584249870082168126120051307745637602232690263071354225570871847669958152347586881039984806791132655233197027983945591691151729698634157547174302609775008381156091135012127263740030028077600048333432700150406103660032429022002900783784370848259657766773912509231310052127580455452569655674221761566474740950834118386498984335230608800488166760947494378510941612722877751394220818818674027817329838209970340101040798377309164246461306198265869190926019342226049100395441959856055131296417838186753307595286768574765417960201706109471218105767988493959777693445023672592133006705420053830099079094027124529305646594383981472257652073561157882905657522822682023465683253036489703913575815296838891471695020235238414305629112282455974823128221310579428583407442819927337526047750847317522615772368238229120656948275672094786546591540297796361506792610283510108146065678192308782765362259668684838012462924991026425946582643117884397027566146034697143600004324735490769223002158821845260861485961323490833233521730592754081928937163990332164009525341841428584271990387990639876843603463227165605247091767725186709640093488009697419700954304288598581984456214862258379028441574465227495541225266748455906867652377313841892430522945239162117387234617144138897543656048984541728332507879426210090312498654323194923221270014181221943422088992412179158311044504291883205499164844709066996471641242157543464556419790494774670836716210949694742002568253719439172785326635101541711197902341531170515692752863711960726428443067798231588648720129372100193359076764559775801479470145060628702905744947386950271214863946658584195071908367548827184777101115263426533973521286473073781308624183115432988801191362926639301846655968647498092164883851877570108935134296153631829511609496351688138021675781914088640778162977640939435426054931306769960697323317869380992782336851198943484876922648168319359627990370495858748763701997702999434655256295633702951255929245088093386573638186841144985250641553266494716294484409767261682692736323745009522456185739166456470319387826141155006470367112797419844148004669872306474241625479025691989271176256648621478070781410802870013166058328269807825616599243138533570930283894139368699572213838078747913715128481311102721991149431458377585161243293576557381068567120688401070860130673077104540455282412576002696924495127913533942535019323230386488340166715551666805652967679647495023307232149689674651942009326356655335199633677059633972535205906384421863781441200859886492210465625509168901861579800117374597058266467855361180191209366244589441303108684950532270305571150842884290382433398205044687996666008099163595908604843326985755023774878042088616076679850696521684028636325862701826116136483923261384153537293084899962459125039140894508543856332026698334476221932752369739312280059698262238056071782658360424218449140243991047551970408577029014713447917825885709091993904498824671003227166874624441554966019603878413059890569131266664138702321603492317819076118226326978809765000237113261008585492161297540965855934321760893729225915279819264164891810905245945436475129309243086652246348850691898997521575208553538712067869134148357801823986703741242975549434054181128716077918260979148094454426261683316739202271526512072981074474359321604517285564780062205387559784925293306001186396863228963514170048766991650731254551070251749962597141664704012509285491415016464598879567618343092520262573366863976782065687996405525739395702353842812372024042780916415178145147370606352865423912584468288384108855094609981939088670342535930579188547555218134529402696381674367507188599574545684910198882422737386063073934366407523699489510729158473808506744727127843831362321878374349052081834158218990035734783311352938281578542371755946836518952573687989031841016721340911261104428047708991417668648954887052003732226079533178369079825662426279664222427180709701182094403419364395706335894717759970181934127292713586348100840605873059896021136841163207838619404115656518976578427765676974906517570929233999868548703677249731714200273771917735703512229935312903307766877188826472617051990404338348115528476332102593774703856171511858556030595571425998110753728792564508157352550934697011108616153221725805661844950831684639168799142492592689705185506182370284500511872844872732421052402299073867149930073120466255481904466306916143416846315414640998776649117944891303095923260097003693911597438894309387458618614656112003006524157325906983667012234475247304977469037729858263069943215256027235992290247318990292152782873473879794798427678433760652428987994837632582295439492859241185414860308842505350424063993383817864358774054096370084078482870211875092349918073239133805546107603042333371148172238130470543757956771229407361856931316722132086030693759368363724847399469109601664283461278814043039508987924906272332451574039610108371338895125864386025164591411703218053517029951352256777940772124308360491614224765553072743699761014777949734972494674329217694313933686533688783482668627667092698521515032721672072395992005844913435109522157102154480564764803752749111097907501338629876141587034683629916575403476178867210533189092705892603076878233506845430269632390994765905008264774551347490453213907638979026481118171317490069406254179986985078773729272555969401673636958416752775628128005688194919112806405423766165742919916058224976852998042640967080576926733684980971927761409768034275205456733530456350165370543591175940654993461530266844303943839407869451159406542686335278218248321237357193074421632062756585966410443153500978795014015321022857646997773974509133798799026776692470026360121928829084276426524287941140403225772655047721989311450743671425637732833357088190962967285725014219902552800609186190835518353116796888238258631205853207930017886555465413873365370722959917313849213863501134482717129915954907269410674970740480098967987692685203177398109125647483659494359006647717478615033314788710025282961488069408375754801027323651849841558939683803598719607896597648508142521496867298976037698306039098537317184862958101257534935436506323570913236862493747846114197013281085007215296349847760638326375703392470798795925144735551605654518784306363929294918850171137371596399229903155242389885015246663862784359555039279391668554564012385354550240446398983550298421758235387209977888213362184479942404501506898012712540752128372746228998843125043637592128535466933686982999794098898024974836251339411356464702000886658688933892250240763796788777804521230263317848214620994585247774074655719988998276368861971075170241459793773357164102745162511370925826293915342071915598804606607816926050517175745085278321541228662370349725057553523421748951355457221494898564022748926942313767241230614627011332170325844826096596636549532907368886337441373455245329346441363881592023071512218661169375101921029933864342201575254105746904545946224805518579932075343488102979047633687426354859426986798174777363708923752502820926332551598716350943771014328093764687821228255004394300493352094082768496503201106299491379502655885451190107771988971776709219155772631957505695022681870081965524266006455174811645808380548287098420931145164913136225111655856953027950495451068656873433403034874833554394808486988938629071088364670427624179527291966770849677886872698137360840081687368515414693223588659189015068488455101082366506001587564687477894977850314939690564558572667594316809718815224393702645831221122042321010881166862838553781584226517525534663992438941818160067410930915169628922363672665679401096540419097546241769106866583592630537965968699285186446546371776557931008665359318745359898371205656949750139114201688572418552397270665505777276398783911494885659661748824441697177286345431922557327622661631405813732849424819304172793447216131493903280995535941606171515706869687252753777034050565210544587893129194503691946982843194743185729195675482943424595309861536878796340017983462034294897417234047837476921509125250371724917479233946837758983979141722685447546526139794932137954232106905119011675010033804794466714540360508119384734700367554490937167712879856379431436464802070985601111526077036010718986080843326940956306719774761075034083957693432061516554508884134766912057003964341818158100934810194708547692403735299581429175932600481782983798426308297014495871105218192574632333573589613931486549711711781277465324051007592493066374507407996588149857086437520189027569050290663152911610524700311957710075862386080161236919206808876767768442014541465282279555503380558845891833538353311942526054502179854026659083035860945522496331923235438849112464260004717534757804828525569101338540461601416687842039260194411925955185017335411930877638980465946253982199885501830714537614780643958422640121590262597335794138935632215017471832209696490482355012177720862151570739151740876738570315127988461398303851884068772846725497058854582911491092572775274257740443475688115689601093699112472242647494754919798868480207317629555426295862431888185405362289687558876843255743525759922375335186546466520781155799093879240367000381828747861700925459421344542524918140683004587847115133262185965070439431196205096234968383331974759273717792474550811248785629016730214953999970209579864395513505466530070371982753246426619919910625983443997405025976516848856409984241368069806692983633877516206593490034171544075734299281959520839482214441383164205507387993851227527197479546297910167548003145402292371597461813557752290305685522817425305952771787143874707834923171921916923226628685588213183249772812276059791445335015127190075146109586193567301343806188356861269400504438215687785162060124283627196018703143309085443682489551864543280734716318005142839162272555037452988155588912529398603818289035246601669975618937230797759434323489601437771248605850019434047168703543426351505544422915908490285510837651401954847033041326567897317567245713973293691572271457470850272999392923735507973822279872322046370599130023835620501701737454504215110115114476286079542767520912375122071715884803441006466681770138260236923150291313803356575702704350036142832642817012452470370785856795491793510180272779781665118495105832051250111506499651470825649421104414510467875899095762700617996055547633445615029482837544477607730393008481764577094338230309999712024272377517381013243025261429141734672404557305109518389655663634494507403336942214948988528405365093332258848817367418927989883760188266461004965211260975122814387536455858074540865554864074068780096128197526080208361792193357540851468105592235531851518124161031051026735808329256605826393592156191585765213156378845511162817541632746716155393515530813207239848873826504467623554162808092931045043003732538759090621972464034309481029544811855976146122097223043311060429016341936920543470657439961615898390572720712117029119055225701016002522101294641723800063906777540841103181657211318604883260493735779502264079844627437855373048049873046129570874204750248866556885498035396480003808485371401146312507888949373229409785497949102375433848025586646331395056387556775085879508917417244019391875577686260971742123207329444160548297161097432443601762940852137043914628781902176460244124521634274540162779493076736812713172663760065318221043795394638005235891421619371650016806960202070413130216428087057815202899751455054875072386361747195520666013459207870714099919962092971414186304707341849892033296341333733212988223366716362361612809975276124786665088920849410382475647979168072569708669834337360229564894099264644991730625172228126254115093948708016723774119965014114797067827036159051397505216383690079743002491211792169383781836570498725950647413910688032030733360515235754118050103204521921928024417450765858989724957406971508582423619992918703269071857121185109018697335927023346103617285911121198847931268822569227538777386688711482352047609882834208276512155145331723323704808610337179589753624483244007563086217190268708395518068315317991796931357356002768351078219769320685505780231433517858364158909819765432997362423668099032844714040811962551742692538391486665001332355380880118113604035422666003622693996660684845023738378920560706736778288148013394348660323818594393410548747203646526893474499700104986257472691119856358967714470070937859383862909953884160011006032529194107091453013982568523081870767780779829380523793309622033158942320781133039060364715524206188048743669014076607181634627303739152787741840921672399121436455657316485822721138105772405791138547879807540747478271213039154782388243680492528363821250512142735907576767861254358971107598534179686108021555265279640898848857932660789038426455604650120370672995709742387632473497412165639320404657235169666053167668446304817911220827029694313832176806901545123007542285284425340052672487464464214191598767356201627123391783650333073463824693932852899242345528353889321303016351815533182046010540213446526310321695817187950024773987232831367728046039554978201295833788254735698591669845036123553934562837940543759670109981437465878736356065329763958287429320656366490406349520161089542148124616477218892174701698193330554768542415104444243614297770924314917502517544859863261377110955804294413048817688766141885336150102064750709949876180651419212106275793502530528585985105742725229151325326421030916682987664329428058007195361874321301016027821899021296759429864905604231337281345176028587731681259850229764669704412857273052639431522876859502253522869832325355417856889140076423363812849509762338263578540581368154036414852835521687775286741673344242749926522756333215366746409592119195548815054168179035836161526932209015746049557150258037658557301945370223930508517492553170449770543307512674137301918893479794864129070653199339494932633490242864830780024461913315461844662067166422791736470184493922237110733633919725766069122318504552227908849206224657890464839037987569540961527323074526163505493045876145169758995059438029686709045217481821951428910474598407556292567251201640539692411331581856468729637964768035567830849055914881938038765098447953333798855225226957702906121905335261139187118874701086473963936550753977289098604695266279566862125095906034105408621742792031397046362660808840794822018748188520095749862746484577563835125907500852321177546606888770611759660609673294078399322711420780039197278004899142996398051462176675604380473615712355442188391739613317750987073591302653141628986796047769366991083152922628617829650801380068797493474315138914894771814809221161164380230821451785429249982579201295933567419307904886178943911726043308458116455927397101135523139255247586526411811756680093761806545070072801468277860964573885851338544368394507692239721092527158544863697895694619161917830120972922583918293882895127402937514254719610266222689088515108402068497360425311697054954926903073105908441709586712684783247210201785802082981540248922493899171618090633600868852229470604077966473296585110726158157574878785946988590757601979776507053135916737154229564587571554526309025027591154940242570405944374154447397902895755781020309603283097597378334936333738297765007910754324538327144802330906634736120223746180286520033715495073907037391931416913053250461703537854532322537386125299261367208177571595882077640860979545072029702492538329993983988448573487319915083226397132005960301380505128798300845127324647462370972872999724112623658294718486651667802077434974204263597691906018009691307670068498204113324663424304562897159869759064553518123834638477284496987102037176141434652977934568186094076585785809531050950114549925090840828026151352596443838451911353871722864621390340121265085324734882647744857393509637700534835733473497130911238485814308642815953391582643905022808910994370034898949684930250760999823464622999923021697718693635475549489028512180859023382624511065105715139052816039301733807410859369722247984225258744468317879965184363815975603241410445178247701478257008675782578641353571738060507944610538980128472577877231287911596931632020755871019675598441988164914608414398989205439962154490015177137936059238934370326149286008762683329215632834937752993249453575083693131145797147631134982160369267703572543557041797446115050886265493854958743258498707563000437474964696169187772088864101579030545081540903583205356353098430208308336620725648276857373895014279079135986371641933916057636219654341632938091145636579006232796628853011589277376802682135524454448943005668670230376136489885863568504422771879904140514359915302870548492213597540196195686291377767085772733419381894388359422307601078552946876195073298957085653532810759688109526187230208012549245639459360495232913348642153794840897771918852665215244527398796509289928394022760685981352718038837718816675853164297953376662582460940816078875534367679254911614206332454216856140789833218349782700494047543638516501537673176316536527148087109976398194237983730896551009642644219579216372530920266950980329922976844360280164421521462106828816526608226080554694685065060577673890610743152764693463427317735260766649001458165347629294491304220338928314904319755758070790045266201323965325069798793225198418583470223460126455295730155635422590671507117262466721251336914399890490965354348210850846683106348041696845424981422291208936630976783210618712499724151150700412403997091829918674823993682755904503744761720087209159242061810610375408630891803396489962966668092362176997142602453328693358993574012073629681276690645213040526142329161993010935151850711436304017907698926103770240632158302286084149563814294671854689435120807929264298640544603843270617482511701459780037341087374556821013746113531469192014482056768007855446589045765908307904064161005799621376712214747676091177723643901825550769239046508018261412468138535664650309513433733895718828246088977547869043615589236884991926944140782169743144540588644297457211498296976595846458293694400471232760789819730670943451930188740587665862412152527155632765381365048876931522143986398581075734200413619030483690731235416441482525793313092380946364668614069989721832566113979541420306415966147447595082312807930047227031553140507798913364678821187040107047497888781242591873280101205426013497087015927364425999227883710464193605376413028008782603659755717865732612962174385380821798636250990421870372950971079514797221855126366121950914784816947720189825128362987614636605360299440179445217525044971634806032965135137597042237127682391240396289290051707288813993036473373171939597006903398881944548498178474822007060429047225107565386491799616671602360899132407729624965249224630008522545556297541256807513702655029005261295181267033513584494180792616939380718445683979295957176702910153591481947087331929320548629935494938860526509636281187509582897705851562869429142320290728880561274163532453242764548836554514643346427447943157507364881394569083719294015837934394049182487795843661530946483860846473190224086049801602493978927781262259557880888578439849910247486826907297287783402642838568393376524151507660252683517510998260554333865911692059573403670816322663041043199324278842801420061143491471666091775315987589094197507650664576513208945525833757269714815754691060363631512318055360989310347404046016978793898461053797349155034415360388430243756494551611581537169759076990120229243485568175527354717683077658611994982748761554619444897759471484434281275503115207170810731644636157678144750826601776199465484525645035339596391094413982490119403717650225019900054151052802180705384365650982037274335834836347879556363116997333021809976936056383973001486444900997646383087577987487731091515346431752169524459267160196302289872180373908381231365663467854225654850033634342281815589367941999699536412987496005541634566194900538917697875377822674444146820771108575152177060762308373219456079755628394803729013732386824897201270386406491937508646961610879105081649687551197161881031075439526514857985410455758220967378125868797738706620315223076081991027885353625983389424746953552314724658885951524212740551743782460567770687353742673849081952546970484191264257009314912061693655736864668619610956357153830440794416188848807076911764356299270223510431286001428494545115085296615861991675928125628236155209636282917385120618563538018776747620691729379477260075681988543430026744676322064575577260489430271314659425071229639643814518748514312799123568565804653659960680174997208205608140557207723526143874240523787980095720844140797930908896476883634186272017435361044406468779237922556332657959915436052941571429562593441322114130664105007479579788073596336998272971200440359058437272550100075386815818619915858135893241229740207209638541309349289537975130040026671539643133985863131547380096009211011674138501861050813817679540519444892539223916418819524875778865748446512513977446775679379739940031248576986417401562775660087509833293580779866469419395432055994745598922502442332049689321573661583926692899279453750695662487094808422648896169307187646282611771753339377624727954356371268316207545556662388339502504829133502704860153530303752498497529811347222071139741582615464043348745270773388031033254453671934905095045496301788431414490214254545500396290763595717218950966272109737268060639813097552784369963248444266456481143207912356280733601767146064913824775204016471489869193080202613492924931652299935118129289185741905157630226212533481945431865084655323026982723811981714564513310214618001033658029441024626870779953900829351520667500295464386427152666298613254720254300725018944067798235027918514652036369863499020875207174953947995344498066273467786225205864804776456556217358912193607848189467878403199807104741105563636282316677840536860869624448992601000655495752284926180885982627318763121219203655410997291759299019788918714600674305045441179004321142183614293496299604573802972780019385572026491549237638109384477292428906137959504595749434265132271965239092655149464130556332447500612914899431174670782402977706823117961071631026198133495832131523410291080382896499242905237570133343729399122086423437038447190099969358170628737321169840216860603935245218777045196916296383669938248304518099487245424273893951405018578932457594852747484418288442611015919239990240258446923591345872534697345788782515858429110364081057590447714524589802312772276189387402054622546882340065048613796178159943997048913506327757931264507472596902937192987062248388380232104239364377161611615153689358153492817930711495741094497450683436174516201549739421399969746690610742020100292235345442393220147808475532312182455004834118507659229688023034192473084658296575041918501306905832652260860148609432828693734932480481314330680717526754423685041197735185175682987482238642098125820411660272269146214620840731025925916453249521213552349449078044126163596832913943857524729066469951745208161166559236062722631739412348125214875958248051683062370877404667086686432535519673408978640301169507674614363456248372312563879081805045502024912321063006574133573011983540549328722487401650643933863866299921257272067410920612153819760076010240088593970748574399639058289270742467170687267100737288995331276605369994020489260057440236603605336955825922887508801563336126669313616314669912959924713540100340753034756002411481271050255832267959691444305898159162319874213138205340571464453579937780767614639958578516577465071494427043113441854310995327319175465256853840486033779586090524726706654108262629275020882323608626828051858428847591008621679338183907026454769414364794554640273594500696506476366218067973826742415372504628917220798996965005750165534939231193170442625804888444274131297867202799256881511447864113725767968739770272976282635619531073829840192461048102505406062111830791022652141060296025358679625664603293229457813747116828772765587589958860933368750530094046811242330039226873510750523743674020719376400415508301891761385361120433048945746145308704159015207881861959920116849428617749677972056447724431884449442376775110268656661918136643379704120392063960837654343928180788965880850550529465820098724867334379178325785904725508132514508587363304181134411484714170888282154825559216073708821161318904666229236374951847917944349135001547613653275833377700889181541050231108821955482275958098838757196094113518756881274881501824610060254151057610732651482852154075851906408723857217099320898147082922882813100215107440858683494020651617429128766174040817873112449978669292785880525885700004924112032497114224987745167140855815634685238041827568490405431075094556700105899569610154541762919617092195027066792347241667240550259485588950013328752379853280161489340528096640174248141169859404375538484521091853840285235742853487122652846457406932874511335648849748306953540295507673362751030351672850916783369259952133933159306693124836890273896319027081381861070765709484407577029611983579160411768773811280481124958277568379457896969245133992251490002813776929710232129688000240718234620487320577440114097996411037906419194769386589476554567330806938308902104892284132775456607478956319759380368127811012132252257687929376903502349830571990294340298051520382821524100370894180813137088538797452934001884509050317145056151889680915239452083203514465006084391013956167855950261747050515340258409343464715720844590961475938350001484689706149120131866771909395533546329710904311409432037890694155054734156001605349224775165007460995476660466903032775834197824826656803023606229271925921224668156236318438027767308115214744834023923456076526747269974926946924368211829410243579496889962182552166002653971862738216565126208666086298125688769392513529755580592764861722567857858976518026359307926087377583838344516475452615243692320033752851837599952207023621426995490920772194614903202342559490083524591430012179685100405905647511845692339858154961661151200151174898904052301758068444060368647608457662698375275492541870913174609406146727723769464256277601830238683339989982018824913695819614209077998928549173312734133411512552532182309684090442118390957792369223962590721836220705327928973227197330955685751736116671001835418434073157346462860476149822533746676431037116562080058566134899066012864467106603770134794785724423408821228003844636809945646396796334214425110413166749326557420114485231633414180848090611748542632063758762432837776160598995682860175591928709813118814650180299833250644018320922484512265743518965466152078556713613960930204431304204527528373712432615284340689664811742546499780149117390610910233570527443651242029596589011758509693079344960744249699701489563349269476592125335879707843697171936235535343465957961179386425725024449899907436120077503490015439247689102048555407391980321477610728744637851364457233893307678213589808194325846493206941230888614618917855679420312524089360953401949317194426245263730025748866717373178244223249907438184172481820390158935954883338001563441498253641070288648763391786228322486270500076612365705341012702420621914848090959180249216647276984519444993192033723046387130062786524491229935271721347782235700199023747008524037542507480076557389145317904853351867753362236043224686041175133867758581275672339840764029246642682837773014920610319308770771913595875802722954262275772885936545712165253749376514093948919064894023641887703348815867227875263891113933959605756180495231513145295437510141146996189598451349100241824022827840137361095304508703504358319079951288732041925673736536249722538984028176745292712212105759034885691529969566352110959428450223206637963626145065795369052975195053923318655644971334098237859137246684457734908835445396852311257461287353773373662156978944712532604542140272063890818588007313857410923169743072407963042839381334284254965926449419448510236901384677064566126943301673592495583534566289016585641293707658399477834848544885123048465547117965643827390292306788479559436027824330628949497554453468215493847210824425038649851197186998216350438390066915590215244490778622535932832746571363186941339075717194818470798982092526670140998640457499301688455529370245011198059745656515571234554994712415751563650059246952650399198623762354146162007665446075857185045716381907148412073606141923948905270545941241876750137759807576090795094909756783563525107641510627099739624001758674849822945629246739273157917586697857527402433918361339666994471921039487128521212117633366736934157505897834011861054454169515355398585520398908921242922381220016478986791693476989993976348718766266298781752448653813438730952927350479133694520392871581089658073151702506678163957735979254202541105898459597772069387862051637526872163204132640087212131590628565264752033391291395431389720544030445919026632292416136356268445698585030685249507796661787792237564542537484245733976341535336519785003700934271447149122727748099966229137310158991562554762762185685249717507692352388969834453223846150904344139697213608937537542313129848108081073918620736782128535185412309276329037390425336918383618091915177765571310801495450794838988610646798897643821547052408106515213852044748973130627919052891509153857024324210267782583173425926001157413542052680063675616810480949406590523387529374445552620031686635826615244139947462509574420428873766266673281332656189152067059487022019781171537129863568755543488661882720683163561260563115612396574432470672557498569440206900915833273888060572029575284634543660445658334278259045110372109022454481040285758541651045470263254777148618858343967389646148622942651465162000928738766461882880380137213393296119231218557847008586786555957537926797770095200493565872328759810795450501306560522911615179126480567239325743288650177077071934811233955469383758698215293172131580598487075203554165174267343228610151674906196112888861897447543399462275351977163089788489506416055705490093259749118266899507304368620825056521686161303751536657232841330229611371101525027489112538488566592638399529755245746832548803991641656775809272693505226149192553638738499230286099167740484063087406391946118368098715434851073328847588812177643573937691426147569610024273860276552031527586040155116030566693726542477456637225650423539014302120253935578228763568237999517965657403281605218211200562282435440365292565769427759848457173318494211649748039550215778873931641162534839065061747681549628757626096419357720817194143216828579438033713699075169789658496131014559430793405310703357107792978206329764919642181131301158488089420263239069111452932381797519179618830133038963057171889396509806185290729100992392411479799619862108044853094539754832906535990589275864839041422070891794980717193964739902570649213232801574221183505032400813806193955238631158382825446509677099668621186230625003879541226367101440686645584863464831931740982552380264397550090490564230209161167695587364300424215691912108355170872590480153047415962802352714314959458899432675902460872277057071857982215094983933978931023555247306940662235618916704946448717863927413555034093085177863586416668427214976410813269003395307817888216708731606786210171705259429861594533911361612014061093930726569398741765197849674882082539122380783561210272688985540743602414566520950095345767673667543198265487121556199696232863119044421882471009426089619842910343746366157652785517551531353858320925562117744885079369579546553687905753921751886890503123476146694977322450076443304644096991380817706076236289998355009496643371260018547534364349719792295805962949539897421822848340741022691055684146249331978175010600870336980392273036568325311067753814822245404734183702837891755662543408071732693519632030851330469266259377413023176504881305461284155797598879497547278835336404710582732894553837148418954757291301608369395494979720439360949635254465819908749792659116343178395897270497033026013601365537919834237434279322697004307927489567574662455837166362405773547572580650414823761005459319360504308311907246499708631354643071850884733529675191928868936929885170448841996544312176492518389410957854796774781156480546360034799301870604766497438055921424668313920302844577640088967627765478728325059792593682195356126821818300518648213272728610423039937491019048801355653632488405108423483699203848727749978110353774332796641666246710161830262797138418700604378426256845434168797556031845317734907745986348445008065509194414559688616401566571404402962193287377918676703276359038428353028862071126094937994369977972393740206765015082448623648118274013323445373020029915383534677851923900052735453922090454051203423807109807614989011134430404395766292411814576391280084280113962719599595796952244837801825015310169070435435524906700136736992925717859236995045619639025507820074575462643480709445250370176293885403518135606184216011655966041532504138319823905319839071836458048206794012780302535120610183701725459808458791213314604588483785373531189346401871850714357767147021058378171031342932432560357652658036899694511818405103282910151225169423327158602089838976766551191715009504774927786308364561445952698417010820130625518993950863128009244436762023880325607377058915114104993424796939782719446268450775120595989173968733187215719905679748097499572139559668122852450068413834807747205348462331478091295753199166398616030105506068328383471325578868021376563852266874233782652940492397032656352992350659036719036455611251534243821630552628854757105210284446021657519610678428630341217576661674127092047156647973535169165388098004319100808752971439702530330440455137706555983431678135353312360063477325815155130006515110200437466943750620986889323285802904362575808415650467495132217462870131002807714421060278183287760618347700918432094863726510884246283917245983752658214739764910837160256444859991905579522014875915527528645861050956951043950911466226577286490924624586314194758011617537809917460276416488205544911527050645870579686275904373657465716386627646567155905375380658844250582081461120825909134909992823015536763914078152396149744603456220619513013013517106302994846086382888049766680094384091245198194951854675919365851263315130950756220621640763349266769615133664799290128591968961530530898113047313630127212189855491401244399192638916611403239105144006024927151399354197155626470811323645895167508730935866881572018733837193525773744452148793824653016247312880331391136188404076109346645244284891356268736848935911411754722310549310138601850978323812728922347284786941196714059210748488578083539797239147537592684663171763287104201774153583489642490796501677691215526398622192821119339791357632019329442983164912179860157950580596219923143516704957415169701891518521427460465708985101889680574672871771309704474197140932421391271594357542063438507902363488496027517521250836838356106526888307393246617718586760456306906201500881495071192974926682825673606606822751484027397590979490010072801745656587460345313728371179854548505620917153010874942483649517164440014993748675558847785829278579620883506469843418602876002215339798507268742102093925125000317230262788767396175640387148208022265534271309344647109138257607415187033892650458344399534860269103354987915726568725005429669809122179033856947503131671997562327068088968043305059072623111478990492231654276574276521576812984665868077715897250943210110824722056623033474950081694487622178924273479896377765206326415877412141035836567865429730185791038723501555394850943453587169001338723648354310862504728665415543151562823091322666535867314391747501353917679399058876558577085347112432435784127359883617827045082665680448909830181363367239471511183973222937484859769264642577125457597110029959414676537490321704532109350365486365318636093434847007572956474305704169739492500814053677499315813135398533219415120730926792644396466308639093758598399913620079412284914221868867694044333520639387764177320187142874503949581858128426541908860612292404897255927117328150825918647106011634668806550196593313862964444334822383174126650204484309712885935064513752267905985188428111476202012428619254138133982880362385057208460396339075658427877227528343099094917281769226589460873219004453155473972793729528448553304633936255225639892911989267389446179917444541638935862742352409700882640772329303005600249024957801974963728454397426782420690093411489201322855289749904753444723243799362402636713944517726308975986302962813552940448792655252535705916422859777481884579617059918891291903725530574886540929778396103753007760473858902850216677827752501228566006124206527674485506841024622378456872330909884044793588024087554965362796844288525465053804573695832331444644806339256739964305749585549018598886757204282175753574304564901404226942406691268744031729791664641808629920129569976344529912187105810241645751672387896943839338494376696433111809383246570283460198746347039483035509577456506446917401247057132164515226549591977397902877860382762935008911665077697415197066850583652922252427094290692652655515388384190387451508668775196005074672987745868589780506796675416270678649739129834654279262310190426565168238972988343562102329102195299496449233057866894848206947133411625588026723948229095208555953374777761821262455138667775859571744758794847460480916776135115854368423069261995104078953076445386464387996569644664890669628159596401966128197554708010541418440839447400026954177907492161916259932644941645719718092110407022182612704144064040792589876235788293924042316033835826623460551991630510518781750417763053248997614992965912337642085457190533306924080837720613412547471305693350625078243106499193097427948785683832801248782255860055656903651120064596629544327268141120665276852072641549307641083749771458529279187808749933202877406131254326539530056874211633256999805428524178563060385809214844925696216251535461125773136040006789055339828446676846272811719798788082932350709087956145257550804632552758216452703385963489284066882440541843021586334764193809814805385054639160198774310904881555603353255022450783195080728968199842712923689678072279306082788014351197674507547277263593922849365200589476977200102690880577062620294830651426394924000446572012467383149646035334143209128237497155118408370187700719846084173675709170346252812048986476994138586412927828066792067529296460166357844192037073770081445117275831441737758205189395490095583698477398873725768154377381811450443637914455458521824860420575894097256457432922606967598957708366794244305657552037399536567726599081150323278539467304754011467990279994895903769683716439036414700102864162460043144111981538329184499660485251381772737324259169227560046468748599154784690436754660703609179458870116511626643474720916367686055045647872319778306741026661812379607326114470533088105426939425117867672111712446919445164897755454014846916528330991908961762434607983894813176653262254293636866900344339883657425600832085019594256139663600956309264820139773651808474330996396608791578165438641746519951764782974147411384545566257931441256707449877929970332954268439196454017806612880415941818558915562247277395093130130660371973761687094583107322188773884793349862855196310215768281640134769415548861667936326088953593060148726581903799840270691115989062123972484419166638929590171415085614001238107747893910717790623119576588394393450399003253011161025373116479808329551674055876649688780761565189985572034685488524519892098013016527381039182348155005656319038153325708129372385756612290869028010914857511208747152179069362609437988335272052278219322449693909239917551613419935211044007700840938821734598698902064983068258643800005249504521112742112108281196973242524503064525640743548351007162283383524694361120244430279443692890466340777982860452045108086019340145763868404097439011522932053648105228061120881084972558615600661245303920425894474622054469194069868766715396648668592533401205949873075140926556825371481089319373537464572717407632312577463517661491697884573356326674662202756960739467629521392390872391271454459925267016661592658471547814709532946832192898375229170154749419226240704968867744741155208529783114199398714650090403022484479761706333650035020875913725610151731530433783925584146909900703987903322624670346163056476144537384624314200656953591566825410286894558990999761212052299616047468438424384245035143885367227873022166041148351997502889240453131048435089826550789695539974597823434048032843569598873605357703571206398575650352237799909810535609448961030805254108234480917479305428410481981214232244058437477176797283965951254210369759201114633011356557341978442210018994562607739935975493468781636378283082911305545017339040496647009564219609934536471152321929718223248215594470697085821904477941032473060873440472296949156351908650375078419439682015294082080833645665516759118336570731807995810470189305651580353913598943441484049510961804091884822408602465859198515810240023890594295815416841935129714252929437579389650565123334085810647763378652809256921297650542178928171177177885141667260939975602678149744083631925210761559436589773671730833236829439070282119144409078399004687919317615939248645805387561747017942659057897196057682826869005916788639512126667316614911605312433189504266244974280311641891991946072171193282320592834074901151642612331218263475496573915156398960874534339773904630338436510373700906404586633140488092117341726037605647192793683398055615668602608959503605621169842205130694229021420764318534450782801227688208458011324916622414606781364985971690752777024062142774436618708132354270407217262083348347155839537232372005701080506440718526051070347344020555777137369029506341099211007694248551596982125939142469469796119512482889548077818559996160061685441789193953957388104805269444953991187731240704417012019009149034075694873103027446870815232304471207888465513853744457817206402219547233374873075681479199675272978915484419324642537257541902638873722205760741562308560082360370789230726872786651192943857550861926867720942735325097780480148547704110370045833688197265593121771356548026985582934413719281217552179090836293369623615868068496257840408744631924997046602197959474318279725225099656200052968057340386701541843052878965749780225566135481826121858842042026675665924921824749855421610191217603363138352092487262371768380243838845275634275736450613181939263818221603698315091202013438774405306689785259328627553821055363686017507308525401598359421802565768863907219031547100983764944609046038895244515027149880754797260337684262042533867457869873314609060304056268534908796585769522528469428847695891375814440764908251935779288793707329933363641461044802539925250956871289859385470814747550676973782598005882118300584368276689384202040655216786449188147701072044536224049075096749877119651283505667616049218258061820800831122185749609227682502966163932357968823093757334067996716255120066159745454931465835695573628456419548336946095793315960044046288126362370058016589944744830101516367989381061895320759284510220521454107836066351245546994580573870708328215435572804907615074090364531918005822813101568498356358975362746313002973554940036320730551878127313240799533060949499993826796453764629149641758409076413298858149956243270045853998118486389535416162381846822385453163954131631942403603390375266334547465885963605830083542921560989601953158331226798723652749617810689353724491735014910582875976869621812767176620794737974906501943893414335251154875013753147782028412369548402005810859069892877430073540810768166404296332456815730132445706913584554773624809411716589094558982844860131128587135328546989230125537228147950499098787603204222090141814194969175549379975382569141409474754550398854738812648264172996343341397696407659444333154775659849974628237711631587820285237663791493991058154205338195505001484246302880843526908824148887571183163307974892373149199187640815458084915321361694859381083666606188500011874429994360010908438176170763103516976240903128815391083393570508780694576644161074339627146238123475603608835456368537563521080034290499956886240064261030528548128346084358213511835848872042407018731387868657070395016901765640941347952602028502480431502558407552558142923124201125647526323666827287962491785081542955252250053361565994192967718021988635114268696687004755935676135772880497542383660816617334575680283124833545482431160391547881381833069467426492032641002463083750281164404393201856018522052478975051061770168872182937353449042588544324180299031339737831190295604398847303211207130618849673109752791613055470697176594546201464968544863537182180961118827082819848359746453551383181182228676701401710263887456769566953372396657143187745361367063307168804077656175085056919894995931039379993943018883011661105525153980067396685190507196786150383919852648863713659293968920975104978314619126777812745214102453259865798848177259809213906417205263990910876127970110281122813139484440512217448021313843379600317852647793267838089385609482491750520792834286074025001536047342763771932212322491255597940610622446348286198536573451871540196701099947847888149092275651595512073584299042446165691693213238364942038056665553472610033228201621756218240467615076376994888095628354320470657700901892677300306042171400888871037731026714439339255415664815395562167133870635295229316173304738422669341078575661658723063952750330029916715840875985341749098137030157702735911068634783979367186285125529941075286331064575776337361670753559613456492143134717630106568503080030005741458642780957807607888153135775717351385472004295283642891974521110965275125467795148930377942243918691492944854400761789073033012593890358308561895541353812716336577059094879042933891403667324855984656720002664511990906729289988561504204014702927835423072201345114138156769279807528621458204386170699144801723528207066984335438442352325072588692451277779975927184843438813879063886090991608114716710432742663463916790586339276335980246077210492413620036277468666880139872845144502827091608505315775905348511629581350266020866971092282519524934029065669652425398689538999487000836639877028063498733883902600285933939859132832658085599352715678416183800565534103364940045474473517930426021332498022368122191057495082894232871457259581986234703014451508472533998658135910776956138688114980908801699822859546779838852026315174672521557024472751619305605427776143068393259439513726029491159031667697217205155330423918923759016745234248126319487198593502961616066652065577259790080598963055473060787497334765188818799891037917437426324136137763297230885144720708956668280455658010668218624304142641335151786957694037126680012423295409413497030366266201281368478417725206686839816534599667942793578009756139398562716814160665479322652973873474422292338751871368985767598917511292031447725670980891441794743705186021561487875116021684253549232794824334691457599054465105219460293541355063313995463342802528428849243418924051267897854876756601977008531455455418093641148372377364139289053459389086886145531083382611164317037581035005415850474767944254827565831442944375589998724519846996120540869852488262853038658501646457227036742483965819754734060786577553264004384244803458848584250004493935291723873985444441260171022532532377962001387777362427320813204982638148128132646529406200742236448001055616129771419931437845437271531246402426900355837368715874064554276328365664637935519364391139831571387061439224994196024041930168243428210855369502971224191027181385630790972364508552698211683271906674086665452436797070323814336709588704046882613533961880421393162808248339397553012284354374420630674571857870821114474643778385104657238678011643364535730578655248782480195802950206686128465261516507737023655272237055125864822086328329688648502390383507910052960809810206318398113948130364976622889178981351567388941979970026045327475582493260138657331694127800774534812856798505038616550314869920406543280886164883192335827551907891781407711614825941488657870500980494590391866394430434833924376138671570751920534258811113199628342433234928290766551112472345637366595745273026064673876916694598032729135862596968807341599003263223997992436417944332127359490630496526547437837665780626294683918047821442595501970812267277003825480280582012173726546063195392687922442419014901484333405761601656189998823840549842735711791444810114610537115089831986595994757920550847210441374794420421866497417061926125324547879874358287906700088125682934275204608321689898607284727557294726663261649041998529558406969501026579574025013799813158135004544002946527521728779979706611973083337927975061638574943451023760678056515103638959469068377053945900990895222905000307418467721862864087951225498068001230107432561704848793116958767507301110996072118842732801880346218617339320220721135989103516605458086371250665898678723259558941137460512543043854400920653923854697522716251851170434346084338107289089446325618820009066087059540393351385289936591918946099020912394031180066727772770492547389607532962817974537846871567705109158044806138016385729886080512476096437330909308147387882229282350947280471467668312329460343619661991381744245295604502236368054223652221460286601203596433142427578058966781327360984031296096374512471065995245525485488748792897231513181197989072586931204552223568448173125960183658301533429499224347348336140243231331340451538951976750620621847698771828315763213833619939538638161817105446168483221346792866280221648998196409722819381528559308980749563697118740061618194416509404353212544843371894661624378689553212555344765474575685268057522125598198416552977828872173693960747709475334472813241816449642502547583068332587815357597497407702998760609064937232722581844208043500146322383879865873989572747824584269720214376253173574233794351719813663111482834833145980904513800369811977102751765286585064261806353247804052010878108423914222888418513122714628769156373276481593178087444824315039506287374757149098329991502203534842980395313769597222209005895380000553737124569849404580278599982650466935029693237347424007611366530625627315151106935083745570103499477388990985612796896825222219128413988559588883899807264063471186353898873110687611796805828385959192064270828150414583009882008314283209438440648508565634894492917656446939642115460146964393649508988742539035381818563265818934011340226429205947790552239302282786966724189186162586762707386195475715565222109645940849276918207316862437955825364863073961297464555089875456805178163148856269704405452474090591595043562287821699018340051450262229996690209197439392329110548039267589623480385922465273494395807958809937387415489060017754623789770769317722786149564453887503059069315619089068823497792721427186050548433869287942267914368243294274002162803114700923238218298856127140148772036688355186708888813941418725413980220519870735777659720289661829727789432591469608965719553592991469263260693999493661335940895763290029424035407253369734606551557225183692778836905509900520829467805037250134454126868079970551299209755665819519284122777651712802580484487441255732871507236760503864733944280400374119062904780380656688301915264843025834556476668210348021591819354118888541361208536399147304683676731611560955668953637397065214258900525904159761734260179937036049775710788848013613143165329151063463399712552172914316725324265073614422731602121504065675810119819160589679784605982934155770050294209369305825484050791798574055820212805655754467814026937340787201510031360458220883888793830632165890014346544107723863069339206912899239230951375227340672425108848540391561508229775690222835247807796174286460218272083633746895800974012046529896016379588437024147133804309334639745500941448348491995389560652105143384720062023798453537589898663948385486769666344481107112663352730554430953746668584799017217208453142609839134788368167318052605216510787544097320653819952900485054087213817077813176575371916633459129139596918741414748240104769504364218657810649460034931664476472354987435905579763051610276863704609958510374315143250703391099037878366390323837135294682685959398251560464172920371442625841990482783086967010423553574425963098749999843619775864229856288768876063349844298110301935031836571090105534011683948108531471924251819395533437372656773056654969707825849525237591569102717746976620252296562848189320920172551381207235402005540480298711751367773264892194973413142135117659810413213138890956208390871633777803281589618824403401657819190022871911501810558471943046251085986562991875506425237245828203177443021479483046923525970054325653844555589206020800237784677556461223447157876932950857295738385189695055568596722996750939644241363243792618745468668992808474187697320892474160545089613048292795209615345981854696924320185947257847272862464712173297280261764632990064204757904867013264688796857421120324456845292588659033832699939183914399287705497972043468301315345990436272450153463381337417643154847131996241484444424614171703331303436916540036631589637055316569271187737012498687413031174052652334250212277808130018742095582040317060952138071331038683412949674870137060240626581355864214625429332068098555531813712683853053968106944451070212553485125804038292139322100393453889672649572705261195405755223212270763399831761990049043237922532749976673433433064703034814508564858970906335962006569245519036732500436576129082096971708071960189755677664270210948246488172920558184583747018424581872893939114132376764190185490411784311120644429550705202183507753815366830134341133245632704553808870884475359583258816016704235294623184454811722565855744805090266999337893930474789374161887940466706977758923427105220060540518045411883915681309070072422673266385738903652522437594627484951837952594598619934615728710482617105939090038415248195596822840137487683817090607771899233903990385843611788109328955373239313605890504227636359985728067571008542529189283129986937657314854487912984285208994054138775686661301037710714938079745671424342373522957831617044106260820152258460137391450862800655072913487043099966121723771195265029912183165827630782719368147495052154520290620699595332819596105578424015310403216403747484242902549391589473357275694748092353362244688496836672902778939040742268489673448022098892054044834787632864116569215884479667443115134117504330397923650573614156639472764386077822765817733311331009021206254277120703321591605905144211300781506911577161825091079523730436469172542036066232029393908245713061749669142990757708360765151364473737613603646519710352959448489555572947022368728483282619627337007551824811432020788271185829384249252021314171964505698545297743786244031019595599802392704070448206672507203820580820450123667736288212928640968473336094709102350075967476183361967123436776611718584662211568474274146535344565293119156782428530000635805339539710910572999057465070248590492441078004814147270809319688949375303481994884484262732970006846503282962581780391384634207142060470528826864638362626756577417368220010234687761519917329785092040743923849854042009098767738469607324937401116004818348635637062734584288177260931654646696780063855286204271827909375799808785854929435684072494672383170869463302791760798027827957471061893199624739410431140060589110498060579578045587114631091770384131799746674426709094417587452506667916180220731339293667154079418436909261559416418415686063699076973644794819913202564589719431204447696461529917986307242644905166931395093216895126908455403917801002124908471565701571015448281259116085460549749892525808845039545092093344535945651254127643685458583801002505474461297910072078459194079624019709907887049490469333138200197562684198516883118449162638100636010785107885202511753833730614169627149451944879638019611059750719133813132920558769849343329047132552251171573742914113350738283466184669286942557789275107899056262583538977477974827092868753441994218995349628061956735829541593326812075692429441156643318012305238727917749312720985211473538777044625473151371135130407139426933021522568819708574445979318801532082924798451531058046389306269365607732987381347849585374938828253574800677045021876575017665458483337765540492812467616233777149825710901796097645630043911710510476896459930647637501785494393804232997723946110618308589361891869047363527354835595157015598099104122345658598965264753067443305826419963363673027394781650981532443156816765455711669311113679301341513561514345628700946997419323386521111286363076640349337425677926749765312700440436628794622713789587383118451356439244106915087949252546692926673273706649128753253931385569464641435098550661862144742561159972444846322204854030124050094255767450013581914747367636546321720165931199009172617278109065240482577623159484007656779892582862871294678440262276656159589907128472895255366787926251587289526780338879303644678916687596941409859741648080881657362096348052218828173879134632021750581718477900742360368859781593195993414075554971690585879594975517318141958447271247956553081625098009277957475511508684072894909163958660910793324466700832934711687399971416314694527934285038079136027641268114482922509666430398385766953251407117378535590432882160658946287059190818039933990965604499272776850307239444451463049667946048992547731666665198710424142579401789116950731386924589233991721866471271136855993475500385381224355082074361620791144249034076088200834834280050064176497373280430169345825553375803550893963592680166248907476418949376094563844579197193919150533122137796174402673800462452051342997135424824353334629098256603936112141161048099057386662187357041334824224620105341302590579846343742697400779283554098707234681252493815934919943743080979125851180251815820530081789293395908459988450998074532009693832123232077518484268533211616846208292381187742651041004385835992655777750436620751889925580508908189041925624487706546406802559993394633518418714392324430385119784027122211139482695048957432268247117816069324758845697756012770987153457720622136542423926062680749248520527744037779070252518510102415632830323972986340652201888908041050735541699480772505085950103260139959072749568763697153344370973550895589384203302680681077927368746687306551387802661831132198223700307470008976796866146753539862184292440906998755356518367805418780551819230730944802034226734839688741148174638703250829384290903025863909983396765987301728578045737174500195319643259374946682607151446755140408289796898169065212963910131590873064803382129507702456222453990059458656304622894531110628098318961411451838021216854013750310496050599909552933932294450701055066911213170867630450142660795316082282214485246453347476054172570162994167310982415748465003226571850045985559957467176913874028409936937305537683453914792157602026059656438060974353522877428671731922167811471956951971518553528104521495540755311104398757180828982223432333146971342208878641108053984307852217310314394194762725416570738591079973041543855450964439980477268805387370182446276046474186060324778001345527839459691988652330359799564702033349175539415299503667596189020114572487516593194002437579224345004808717286460496208938052973048505379551583081402879213485943559428331728956504275473304215013540493472831617839607945617295027024638822494587275777284373060194718916808444488193439798634567218108440747004257086021603633696447717049326283002840031219430808207927788596141420896110183413370991318843311626303117362840274827142156151746505846928369044074458785022086432278220073444211609874619692989921382444335661892914394222990039823756962664643419775715553150273192464028850771987522883318463717172536398910198238657349792015103621929685351750994511048873214847722829071400214417382720193996200287959439433935622582137394054330166441958547626513067926304540193183333014075541554558755865223126300175722892546788937525100641065119363895638588745460526364621393843628335401855057102761239294512689580071446761224287634116241554201565205574349622277991415719771009667466768833145999291266705881022397825419838083547032361326644145746058160545617657217270980493589761947950049784656601212587429470011934139174717396952989906007581326447038347804481504553628543656829422567869794193983232084431230331889485834104075792113717385206489704352191315876642110505770559282653944351612533526020810554478424489998972945204804992491147455783379155673700564442483936955965078698253945596759232157052214971791587119465858434552259506118611245440186976119213246965012831043623268228930806466084023134090387987749878807002143858928516513236108435101524820418254456858926111462006885879710793645481271174149638453540197340891353105700626784108668499783895882357842695621135532073525794098289270017140873863205833257465613636853305567077626654637985460138241030633608269222890390421426616216946090428082619512342148521556846209761417003354353428929821637118437602553781610568070020921729324198201784767967071361883905386190688308133160349462710291019935911876410460111560996285144875120408636479102579494490753562188438362467086892506073571572425844443040048132960580140151861888346319057484526952914742573265828175603025661695893328898798722820964625466133289161744897380548921736599255466595959829230490772568307252390368431606334317279446852910117188542974495342436858436056045126258873938083379774594295221643540219836628025009876250505838625376075214210025113985357306168643710622253673419158455542518663360532944169663472357349461684893393359426441715876669298392725620703344233536950540859382423531524060725965079296841286846090478199999680627045656534307516925830885652772221645879192292610826514958227746010460686642957666647729128887988678114265922764835066405414091072445534191826406499972447948932313273205741076355828205763041781987073478802408986541141004617254552590363966829839786056565422528326673139129122287197055867450457187905509514253505990682857687292870023786409231181232501904833736940983529661969362109037695806894194967916462819873797964030372831407225650846127784510679329770602044656378367589272886296541150346449814536497848537583097438331705412620021671949661920825908285898922780942790780567670648522442860959307112629810093975185845633452767865957432074305534875322239711591036849729864608539453899117298473094750699277158228902272850931499082255337983512456615139593781313944124334737692578086854231884136088129034421357884628696516898297017218205538223662550550819729837084587658039549449273084570835263108468386016194711874191447693447601094630980820273123290685687208322241771791185357301382752075519617962342074226501243403200457927112712115608965955443995490549179664959013797794709681733174774203167309884583737361488692937725152087980714837892334145383442745935146921066139000457345080520431410890763372937692184320051095185567395161591338600175656971234026759599711325517121145959359929514941504635068092277554747999513509676692897861533432336428117588211275906710943196874442039448829025849600766290876442294360605994396833330569249056500614433140653027343152525820018155170815018401117871965301518316209949137343129899121923294003973072004482786810278262306265580725169656134388812581139586592762369815823011155992129861778734730054804822761952696099778672283918538020692910611633391651604843115958353170907392860734292006919282001684419892043176609349540455514031159799825783228003793452390906070322067149710464245149103383253434671063549584045943792570248586592424716088141507385149645314445490381900608106570625034488660343360489267855153215556625817902475299723503790930226693903991551849913393472695089626247359354429869358789640285882250371110283391500909569699252790935958854168700129925841921004379836361311603081085829862420090191197006258118876156434045153777155671859890798054499310560187074818716889586480086256633408935327800854383341037988925474932286253112587779862158972296775898534216725506013185674230805217346101256962659001256973692280743210827359536776864458118691910591711814171952669066447062794088082902848590614776199217251734893274997667326728536551904011603520597888700868972850433559114924762897083830941603332787065440546018622117516954422321067907898006841224958758711725250819180628433040447229366258812457688408346525984239384902570299014041322598047850012536543691483538600704798923697818560349387344857752512211393825646729522430469996746050205403369854663796038531451137681277018926650198089032769158367167784978148609620407568607127391948679170746348262962130050761736798504580746195743365401206780946815331465549725972840512121066369864496762092367708489194826377625698585569479151934847837535666932776338887742507249090604492748080385387441218522347390475556065671381455964504696864163331089853003390539989376356909810878060524635830707646878060118753147483854137747693849895308872385554117918141784664542076397362892375241153515837450769769260950036620236169799486483969452770674723222259304450801386750683301477076886444617224362054743786980289612621648036092316429650199338971124960111351835913220703242865118215168838830765763536320824415677768715404804082673161909587173489494095868815706762838522529969490156772576583924672565335878925115806725397214716781236387094186174996115751444656806253160083185291890246293584583062299286777309371950457833383822688873368673011706557474192329974156614656831623961875465893362482552452968186241836861943979241092883042101415016329018716131942750162606729360588634253191028900337944415348922843839926386394164129056780031643687581964147953560888390808988254107672036566754685512933145824359822746282893805179417010904330244076502386116133285996318182713269301661908469819920850960884339044140346018812538413888162305105116131166058001957655379426564297632372338413300765419838817454986538435145056818944477829275321313681939000807832742958838276997430039935838399788693952606417317784204676039478893078454795317549753727319724846742256877233680456209999284811473899185578900206760745985322775422644506943399138238268093293911291778218764475868687456440294668336977606100474480266445833027353379819534410906254608340295754614108881537145416081179783977833263118862714585354751213377107357135884023223703352987458922752081662308390695167933053268295417315659485294019729937813186633780540385385525129219069566648271046087017533973319262246049060863360503944156996614236102963668579409255322309066760568846657412243791498597294014641600116467382530989563969378197509631996171949751446515021056523791505900576365263620517085245747476518546102253875579689894838150920498445093471783953799268919691787914115247697489716106039292724826982806254202757557625071713336059652369842088208377139867365952837647175197857711840142226290643202332880276498061713360987078870782851862782344208981552886413066750268847253321113969911138917215916884129538775887925909363871913662475668998560514910941358364973803252988111954115147005779291890552143169769495481514099520503268541148702672034617035336824509205878080178950236497877472519785819565590705586230094681925075637873558743748161646523091157711085102236886327143337508446732867891305656227916660258563601031421625868029537845916507694013465817366486864035709210428744867798078949419253118670303404419125190959458497496468092021230366582695687723626013341144772914543456689141606104875365514321012319220947050932444717233337272056526134306959384293909546115491405406778230684743898853557703421584674188986293839339693037591782189808688698877035725241531046328260029104232957359815452016530680608133097422403522941482686346819738362085561250022176159314133953474050616765047759274948606937942589180300203430218209523319918853552369735134135441572254935086204472605255380909111088492546805046533264892133984101538816182305863685993495610777047096258470839031349502468017994668430113910555229049275125749632728539710610437087742634538294175496595313053233841892013167083757803973431083057558161680757605929680347692624924923689299154020384840008347415691546503852952846726691928047683458089578794585003475083317566232566564937135409346417728758362116972545958595115300378252216070381856813603750630791242862631718446564285971778013910004414792298395547147291195152458546978868110352677870757378964085824752449643533415677165263935838346313552328393279084773542136303255062870626772926656078141920870755856999823747888497583633149718099257552077295144470237472264165964196587580580184349668849742367026015700579996378962245859349352692338061949430403277702024678055581263661203906568769073405337683911816383806878375099140643468899851228884891413480003570549040616369794997989105433333332284783670009356255120908864765672928798023085708202092718561885703051643303094551664568630811131759506514696548047197661861188433958282833190993397384285092924495851054747673187140043156081089710153263434867395695470942046743355021025845112205613377680622093024254532724475525301861635338419481493004542384007490103573485422930946549958032680338201180917051386984506304009167112379929874904192742030045009227096032175962411289934128296965448677634569213142140230752749508578703053350456748071390189377429978667488086330314425656874075622921268124643301729712710441878511940264983536846451347477745719487655048838442573055337079968851464205528534153532517188012529322593982220824375232979219282841205424321527082061376474589798770837974836742222448388567202134338834045289544689704917545480278165827487022043234566407874947022058206737474601575650979256040021257721482200729362602841868588934659044490727123810417576671157600615420982014490907339226845943405037739411362106993060254686786480508509400154794553915399159811316931135016537833169667774328835039049511576476309369019766833227354005815933742061684240542336231882132376868004473436132520409382597028245605226682976154474137506124525567061436022838052427997198809700500038731462068001870816090238091474005638216859374632906120706561632084856642381217091478831752145533209736169018883168720576000581995251999001406588797592158386188098905957780300669011225968672612076437487501026989353399640420317052243524978182627207370648960468990576404574227862664589840119436301299584784480441224418751683551638941309842349508539352899720197801412805347550079187119373815638041191474339992876465772002854938967345862619726085228892863817468599679268163761011058425208982824395348153347740420090055168744827883971889372003256190875597684786736744540218118759140739266251857428967754942824130860536564638369184963552855278389865868259790860163988314450208156807517430428751033156244674666079323435018070941914012393900172001829786116703035786055816930105243028719877028425744941432340597597808758465786704482916193201510576404709522103240988414409129137213141219927779763224826559413298766399390557334873158016414537944132678644089452206962653959456001932183052038833051573542675148828261143021442439641141743221884620286971520401897840168278237228768780059259868606264898016658799462080107229266659044965506620989912747826801150814704684004011168473823765820416612098763762648592011991705390046226100297008005724861440881211190431246919923389864984743344837212805548979074975605228396442164162156913394406100681835056598932224426191872273963334296379553274509863015516403772054237761134046858672720434000873294636503759366782705264685867192163877613847153048513742016288499090586747797201921786128650898909683700833189923207971734136999946426049561890935331507778295298200065041440950033132284664104254510680458243362288282493511596223713593744084127546741189585916173775474040039075436480585518938921287298226418142272878454088937169814345650840349308549813469661272840282978737387277399156506730511037692684622810011096311470918454325781908660418306559166331216289942717212077331484599622951374795522151840805903703679755571109651726805821842311586167405135823485495455610646736380930009490558364654087499077989566749334744417939495093039183258205635238727264772030662586583875802650262605446603499317873863897537487793702442607189160930634839798046882038112810281051002996335000107506509229345218169934787003663060920471203189685886972004377018054470815368549640573165684090263327666707202361145699860020946670469570124753088008479227688495055713826663420394322131751001236647699404929070327026283151816477361174704883484356548428048276282123257805374095431526540155996093513556413151405546565019642507202094829572115655354527596496779062394702473496729009935656154672899711440816147812221122858119422424364271783626779804910817373475204633290872485701891245648667656414964156283055295460813696219743946874320272141883714134358633247495529353506898331381719206463369750494694254676255354973065899063574174214514944037842582939684928135804155322244885542980356854435569992907196097434234656023495033657611188301680546035256891714458023895993814469318873933274822129551858966346417137764968758496027578165406406312158576574078375996853825269157507844319524879990701613037557148516146702961747807654970560624985086656189083882747936635844494311554365981647866316042463071143188892696562761513645218728094252765075082312321348747942104391903906054439060730088068939786664459823940633141024608969174164928958081074503098128945943678374692280791535362103833091739757753989266422571518551916658088969788197185409374804347385191803795542422576411139139359356720985963382847743661989753864121425653719951215364766278188011050291000195939943975037434181127094967950306105887167691629162717884458245596478016903954589327977918893250646140999181916913991031969295443511425476052352768139777208598300182605368023020422467105206640263066977588786033116867849500386600884018039759794299352241934538052599458876742164205462879997210838276129722748900114108793095247508040341928760092845914573715988239260109304588611769208543767202107702774990031705324773256165066306152593861912573237018801096687337124660629660830559186332438135751525762845720450438050761564135193562466279966868489617127530486142202525054628987280077873552013919646277656902832727873610635911352484621023066598621410984348461074156425946788946282487959484745938066385067837849361140136524544964693204521984814153053023670678775733662592676445291151422017715314637397837367815845767476394166148830357317700819437363760286034325818167529859417781688905945721460817727005648979632457480411105623800733098373002401339119786709040948278347537928155773100313137747125475588055349601688276952007284909947273965232303809871825484401010418693811848912365726651456198536604100183551205919875925902539126576150409618030075534474093059375490095101082739587685398735999556002600771127663817528951937286327601311994297285080981419128896875853364916932605735770771856089754415784587820153769505448115378317599380594096678191198478604256235914665563856920178895717211488431051586859405802667155417570568109254994429164651314143609923820900070562131167841369800417291435925798244847265557849339091362333635372873429753699744997544863014922416448852790769727372860629331859996320815715963175760548925270564018379568283686396796052107265747522916251731906411676956451776905017417638564187624070042702145354432222493251083147673234963679793987074827196107752446481859979041217211371808966282504349049625820825712081132097764501106902798568652472800706184852622153744219420117226527378384233707019986102672101770128458942288210437615488994190975111694338169279117364066265038589900700427265672118574501989808409088471624234418333263620022049216599554707172086386423979393996193099745230468175628063763928249871708745620700604957276193146308037763225075232522388751301810163144410220118040782965187269541242704389585717070234024830918153221752781279930140646778758961752515147634714824246047617717556223051444419864057038173065627784267223686705585573952478684816555289455593048513992436579199320503077888210141084580472232757511151106094130608890583508297990943251003065901017721852946228371504146022691684620432093509460343386900704010804303013864882203835450727370395437948515522846425555873825217366287059997136168456325415249417555406157825118315616647360095815221038997083293186983012690303808702956543844922665033902241328501492052302837389685846287056175779162371369353288431513956830172205403155665682396806260199210540890087633580154987351768309234568509112514702534630198864812924158996019616901682777131451641027715691032576936069370448839800366946909798851308315002226012228206058678884626698667507886628000747534853180712953968013192851627002768233142913308046195376582607952946195900119283560746897880319900468235383304039631451197861432303294523602141851203843000575676527950223232279493762704729690889927442608176901492024201442125736481511831481979237422223664768675825211082540700648150522708626068559601997246758561093482554497380282626492470991183966485471269130387493549995453868044505158088776646808958169115657607627539284849400033757119093137111580121302272695548958315823815906857529777249598598378644616616254841531172912826380664089994794649582586237064138875270205072539745533386185426850284339346907999870991269118164355947648536456001177816046170330435513521561078748712374235892204502669306051545246691259256815487193651189185975992233456543493547680760767302214918652538891302812508537924898593282449093883368014777883998428945488824263615951180723994643551320887515260258929348414103447270437981965021194152360106102600792711467110717116496681438131130488841151143544975030503125053379620971833946073090789238007682461606506670670111576930198540556344120250263489190382555362774752117171240232436255172912029192543280163165256366523769478560527467280566105639630137340386493020859017044808988127198044179186860595699452994963105162403315850508282557373323724194335847999742000895724015106900947669960066676875901805263554304374574361630805920388891650387490332912273208971301015842737120308227309183094482054291842925565029137450240503870161824805520122536393271555812784264527103416899779505615497508266871539764931956880343915776227908646705528604565766009223889752127921465463282655986203917542966512087761420166383906891893904578041529924275042503839679356212122857107537310850154422361650026856127506368644410214826636415686305965002805233509389378156911358236506519437559990916830813176520668366933620601901380350934947055580199687694158899381473807776055423627285366999249617182232067743573081759115170582179571058002163013657226036415676494442429263684150922235385099363395968015473519984836161829012912860666380289974793907321374854067692175513747348481010335798718726403152335302956790153730057701563332392272707403149243283304391417404887969689844850006906851894805021933490029369597501134272787315893805779560679962489129820205879861291338648250973915241525012657515480742460449593300250707108906819695761518812902344877822947018856679683320563199683266166424650032546387160264640093773722601234150533555415123811921723126613379886527118949676318030539909842120427392840138583266462918735262886448983107616763155679094036282318532328546837242877819137507688873194328043814535570444817958106961728113678521890570312941493920032354913817834997134954850369405502852807071620428936525274225297198668052327314086397379858906603393146019834249335409796699689545683234951908895569273385526957087937012880746848727165811577311123106628821394459682751009980600391813165161843530902683575753130156134406947674924999277350226996078902643844405839611481005084425951956093020891773607549783305180555679015512017247251105321964837646218422365247010414408118834744688413070027210180703404717578551725459079807808195100259887247549218233412833864455805069708992792237833493883579347902807974084664542059085224241068834197026005829664517015648288386577449708464570387133173963589241356721243458361100163790162447586782527049748499469988711322711318581633819620337237891173360902787300948166353421882055664412182280300417096405468978460866246298495010977009246868832352133836544289676660238392596941325415978105816661981300407409400757520270714241599679721085225480876137413196847338363205207557025758032410548856761067639632329026381729168535939159143598821706877070979035976119605553782373792231506998876110566643783867276213266763244282669889401965149072589200781006294723628832332236107976720368958062603175892591079114548038359046549958584910587071706034775425474792969927857311356289221955432323349864552567681360830922779394968346880326144626151537610158684945105405033169959247314196804298426590992096340709032492517063939432252668805684889264289834606972674490971801461879486010403699755646797760057060324069302298412023939678225215881516972817978232212577737987779170087245224639216541344063193592702582817430528608322461965153477503194387140224682349282441470123061313164656487912137555693649557845346819621307357631721356212143549489683596525064843138276045834914361257558339580011647793775340247126216117919746746558793706297104379982313173004411538097388972244877506646140407812668150445410865556986372062931367378523948464349646926068027696251965154103824180426984113707413067991309191341296552376104105945805719416695543696867494774374190536296160107548469255787097398657270210078714450783482061279472080005289876657474572230200916695045071325946707580747385380156648129925545968030373381478026539456967115542679602227708977331902683686769033267572917767450029814284167948992478038761475939578610675750755527192554045197412368037527233182870702018553695718023041394268917471292010649955134003525677808946105980309184261904098486081221164131581600267254307483390134448676218124118339964309022536818778306573749516588413456489389238025838346072169513902535879033370569294843301563049340345088129729611684948113440361860100182089889855709038653196843805852788827612664717056214924279325099449833027642616607710666167110959362413197970516571670591059821594704789377366690351962466254799066107062161257373391516021219218729082381243454201502851115776028946463013633151639884364189969890645065478371474713776096026889453132371997887960850845852535868031436875836200462093045647935218742372038813434028332926439849827843371716656483888913096759701279894500134768297076946964052940666685778855621578450414937728085004716130810890544331872422498972499990842027434784632470318193616582899255050482184668062661869379102502346214732254299267251485806414274254119791930396568452369881938646896377770458603635234496032794767261170020976821929779900539727833002853076872071028263217879137446969001588955519734113553048424489880037170084903997812731307121023438205237121759513901195288791774359090348616172943741014597312537365633031169812546669689777651000750275873804303960937219623829575763903720937383975009598053306862127721615145280819495575088797790869140191434250739085825964528732990396379766878759431395751377305420882360670014092536014206067759083932247366322086013677904009177419075950714439246388129279680188006690792319887096596932564911942162628932177423793821999207219047218952345908113534092077249504363106373389279746768142232665433308886453870992383759579133407547063465972737132346707108247142215678362037889642519005448929618627099660513643577626784986750317365388136162822106897261891557197767846549001837790418086376072565419477102319354678989471124964650142540109382413320631344773818591253661926006372397580317173771995827086674024203458102485224165958962961665233420758456098611955512653391406962657554177379072790088760401811948364603937925720279025299734566311786390665081495039503140033816009258096187711566220117669885877649713261008059438057874352762374407195137901041319955365263504362397582158477034765840910876223421135619299723382213111479137228118168532539142000307860631103828701001757349098713463518143575685182801716373405455304601793925292609997488627312328133169518501884346566805670836015501547008284945506403894677996924743439979657753138358161911016884184228426776488721303277293648936848288643565961834188382860227613024690376567559879802538567738476384196187326525154130643006704242348156155263778604501894415095151449614746564985411100273937627094821025400561594692782305901868928287509346110997848213994227588604123285769522346372792730288757934853236161350531386385391085361063386761757512471916079632869283952628678002740846083881014557415850893167150065142172127103075899286644774681080291562779919281265528847608466655544893126576232685347164487513244020432753078964526258355320870000755977033557384948325371543625155538925681847080954363873814292972912573741717173608121898376900859756521820486522277380789504936090796905129580940139980563806579431662448098341170501631782421992205976793843849245334545405129679844558706603651278016313200786512753827594720741849171900618120735221133299010536229571525902083579195955509130726897168118034556980362883069955553631836824153384102385282680480377558050777865267074637946106766921282461684947290191189654363806779134677973962943382036279948050341733092740845669818775932048591605265637373338898574292992708944741274043805938178664245300013867349449294391406998514403625468612281144260452517398759897229992379450784078749844812805282069613045271054755616223094880957440437049375119281888639725860753329432121401862054859495541654248969387639942962200461297992457284189178293178591814025213511515055336311819748567769560838948848904373969668878991673350097202403762225857483924756519124754533513949462041649640480297148116317769740375369029577993882604927725422365381603537645985187306341293083190611516033515668430039875029990507214118273239716948917771511868518989731828556366858891919523462935456424458181238062990173105188166766038916116797532933416521616758071776712651655244762045101187619527147705942660814315990956039818761658566907701594279398549631903516943870341559633994917018254030062546006729060629256649774895573704781642479961012947968491959545347162533700267809641776823925566773473376612636581580252112581724430085214549464013618129064284232428831089865442023959923432539781847195509866971935858685461521267379174519342811846326561776996791202024277072391346010312964293073291732146015127093657389936057899702896713109972435688263532381413527434177411349668423292627240265808928436021851397046929269802147931195654679012392972544258467500706059907940945347252810987502749058531162660193799404804308235070908312614608617984050305510173501757474485857818798162392783111796280149868336094539642941188991427369619189553946863578699281674640423305091319766311616979353104082667206908551654385392589381741962915220971545450880361596516942291384171126042707395209052494857051952011677314427367818728759213476436387627428951393708560945056584074216319478830378278205903009801502340728004805806032036700318741541215710940917028579660296991367401344558838906863180445982947992140730079350621044383140106630528343694659001755996431628998102611300386022307153208999886106224324043092076689093748650568447107877047577614434355598955776507452822278177199593308465540875647031702122778643275680427837588542610464351761477226542036260371658667670628870169652236817380591818683678208371533525674036361943733966896743801687903013994471940796083171637866691558377673407450397910461646672513391618084690996210341985417351982976079538588347737437276327179774530697986146174454725739698963320917102560533591533419087684640381612876642103364129559390847296354150324411333623521985070045708195308915275341567705011092843087192659039581042252610265835908246195113348263243391757975025443582854719147108280990401404676860806153226527787330966026113094223522640659536906011672368458901186686316497181006378518243453917382272999946290018071711086328576132767257001402156797531760901910485964250975030919359798124511018538850709066136519233239918795142677135554224247757647384136710593931431468235154474558669579632530837232622430121170885482399749936323452601713237984005728453964995369193024673034033971361031455835565235763078351675783147920774145266930460798512994572380083961227784742504542365270562480669181395930223805149445964260411464728036944011414574140951851018837097845742987274359158759928451985759865169435964341224128846126510810394814163279028408865088149346305095783956079687738146286713647748340619363297262090720182194375703791889665823078889125887558445598598552474587201301939730054460055670584143178367657571971785428769638401452698947537273948528743848647721168966434213470333992459687572772940860292790759468680380279808592940764044596985600162375419204394541889094674137597419462984083704454759211495410161896155820614867707116167293102863904596249594550724483421848714190696100741838256471745251782366858589379862844218518910922578972490257517560324371166085556874290871494449779597831039133362867945342897957157042478214194957705732788243167765196720350747941379294520507780724165440958270547793873599669234863362120182585090121545501360467349948421225330485764748257019113104236830391750854642285199566201751309833283755043810385662567830421379235313439420873783115652583727805785592005388487160573181275441961960256858481081702553464995169307208852989892328186706195605158324016118707469834807470764314068288333530632852767376226547065420393122793340480893549005475535854817776862246597750109701237121294195954702072228861204325314308919133838814550106765779710882404831029072329922197028164937231664408601640629644362295336219328341607201250700584001566902491170706065301093441596863883775481849944728945897527803626739255910741473740485441407868729301263950672356457768904504942625772476442193349533681872977323663364727489904693900937817401194096910261578451269860532700553938729891367616741926350807064741997626895340457203289646538736790420474272516004845887826428053321982682890159961202666680810730498412962583134333909086284135118987691063820560146288845549943373512454179264439817486555523318765547869102112340913036399602912704131547032812227713252102713749178725301564341806748414613032432627291036650313041592213916294770119009007862963386222894471703371925689890224455077545753343879059991097715401479651900359319089501862048419808590708372554491290389140092884892103185694749894271764121750581473898413500221125719976171842638196448756801116972566302633085338178360375679046211817994843930066314734839055045744425441943944205081094646231433011806674116707967597732068090964337672176066016328897829730001661919115335612183165715245626913972875962854933270240251829948029853818450214555659562552291089032038620215295127339811241815532981194347199915964224174313811291453824129533402332212172209641545559181728744150218326278579769434202203109373345160927275971098438787829061073224238938181476436269565811608029165930520576224435878037728321103619650569107058686608940441617212583640496264463185693632262248991351301972434108271130643233903046596400792418453667241066645299407681290196120560899748686148569048503755376655783228627639687580497076597176851477933521337920415975690397717377251297619106551501006628158815207777944667332809974166068791507628640214250460490999538764816454171331695853006275813637705433599961543038605737987082101433094417469329312137113212148670288510369568260066021388537441437412024977706110322172806556397493832780718462051484471165697338067037023185160994653322144253046580724329051175415470588319868134447880886213982273512721043549367547608023970533619139349248050921530010361698352322236104296015447175214328716375622558969791498648794729787092285426347620184058846957317717056103090303259367943083905726708812242927799023382067657972353337955228932865220234253521668855408582796120733358240789280997806339571328578621916281926365247498546312819238247073527236924620048932413797079343703593680075179286428002610009328048809332489576863236849439892111138053400074039630135526365938303315901224573560814183146339662425851035502560670351623521762979804089979653264386680609484096734316796425940056739117575358027288432012247378482785601093060586626839156277161541879054812196279499768441714294722184015842295269120443801885590683546601031802248820404962923441703395047633411827793857296314387869508466894652966342132142638925525083045731087236913632277566270734193659996613081358250768841910927207262195252157468484387463422966577414609432399095802808500209130504313536926985289133222407836792189396906313983859031940539095238085625589709534395715381583072255270257378322945185594283273113712564276907290746595299632997125049009435487619556095973795991274641182207913964468735942864170225577730053207051026133872208320436417010243907818974181810773986100755154696969876622288015863791146636546405203578127607979783434758617016796285008696300830907708125011782659652391680112808524634970564960656459191888821963443278516950303356342063458933179105724731737066169507662026135867016490109229513991266131561583976836091937315551114204993494895269249784116211553967337943119239620379833136952909516227398273297156709049830341778938467656269191984909660993934106430664146208512868104431670568796166379170419869600341057353531394718270780636590235751836397830580746427150578033060768678566806502536645356980691699227758018571099131419520956400372984410728534527589986123712029309052455710942064369677019353627143699124056510281938861929892909226925429629558349372393493484554224971410262785076654124069759598743616734779476477680359984200060965671702060677965811932205438332130875136732219510511652145646833983242437299992195687707679562968948645055956648592654428500752183956117312959530529341356069926136170095648736171799282288298141296687726554106499137717062142264687832437505992040434495454983084190078304070499289661737735252272060395682265596981372793423963708152232688081036081732824946961173065539400151936035725763916235251433114088215936959874284788564153254336001601460977126367333758113940262788288643269413324818167542062679024889983586426788592750034847811817058265626345012146338153230206205889372785673774068823994668988143496056994608085865179518807944355365459645044216260176319654268780297162123444574884116420741956935157268486409118350213226497911784651036952418117610891994639981443417079100762609039480598182521387302548949754212846784046889982355082434922467518076481862792009180514983592060480723058907430620223909854172343965952321106466004275802294761145823766649465512120867937973525080410552803660202080971972821814390688640596622897408847707926800479502745279060673048801260542526665526347237321570150354491139428836966343098038135684114722832356924238982268617537772102961716433080476229482331453230762167862986306643203087284013090564303024045831578625052509654637651268430692232683561280116064379451999532914777393753874789299832837065690185072045103994879975944216931036681325439684287590122913237295927507628332602926233975323737710507092605952805400099663501319367576108442246467526809878392981108914952720450047251747413170857009106114682815164181614444129982009000019732161806566698494724512209394239224893991834622748864375423434176811024721992488279159415575177156665227449914519333435214431358951184067553907974127985571931712619608344693523122905745510321283977703895245233583612144037272282574859327347513834184419615230964457167573324808350304836735854507866691213044935280054658831309206342568099077811026179820186840952051929640542795888239625931632524295175676391916067027812357775609468275686453635097754242193313898603303455116709632164544353182962598385501833100687527212595590796535851557275281325728502757835278508717717786575107458505616168970174831990275876421406971065495686330239653718287147509048514172402617594930059486149439409473976240898171508581105468313100049232698628670309080854352971146980700813923797282828474345947687346523174302873534971283114956007317402215399725769472752795289611839704683439719708176044054987343266564841594537420718141540169287855790973988557905645342339866375727338857053946866059353338871492146128743767733082644320192016395463244499079195492927365217760677091406221476056238698564190734476691278453608151687307462334317434285628181651329025827254836874579824512757189307027951674857576239737554118566442064585027075234461750687598960398147121841978665557303790143298613342273377127999633920349473009147034047060471518481560797128365717967090881471833623803038669134375951466151672082619406378667367025105146127580951411270307008276441803816557358050421461199529108456983392953857258139463258401590291945182444192669659788657610203404087024722827341667499316208484795948908929279939420919655763209880402387572815792875698980942960090814698080494235620766307892795775387284611224634105249892821609366915697753110722090396133551771708584168847650778329354066315204318203941155706715811011565916374859840818081441740160977374876759704655035809535185728731462802582976599239359842427688465654703713563815568059798386940436813178251270727043136284330945006094003335762338712649809841669402275147549774382618871152804993650927279962104381074452937217537850081409668009512693836723446811116360463039223736170228779927817721138117158953010932449246395333736158351351287912310485639214269454442602930823804687994633470228291071946432754395471424671268102843544249255951819338012368708301282494364994911567935485117364476750565487826884712308502748454800859837647893953545310781418443642009776106211291316857027606957782801643262513716499426907742427886593990227454945109933230586180107982383207384995504884179718963010779679944980821900101996294437129981697398024876265356010356373369250235335617127336794311722034059920132384604056143649033430559381154565531051013166023911538320723169192954543607923829496920833763065459562914280348619381119386103113633202569060495589359847714411799744833037136401440781951447616048094549710412911093220584962693712687592992920352533219944180743081176884766324069451234991014035031268742541120946043571913638012428956371706448862297593020998624813854938802378168413564018322430062707020657016985774143397783002439259350653522543755438639378394520016529857651487634416950003175957707909864708956094969311458951890215695492790406662580880507494484742251396815682305738130788805372683838763866822759532377714108423435786370416848545776800694794051833598635269228839395559650518478232849978078014860827061167148740275177730061598146518346525354846677133074638438757772675696277768873318031035355713596951233764864072439961411294819090646817595797236015010160754300260262409293967750934872307375796815584189790007110770790774047343909805021289702900203667260660520897645621267256380019364015859704587187734920199241692419577419397530428370211767715728910818262540521632807395855064012557665711435981542777995934612538621023818397041548622526602268852678443616945205609340179200896781259944714024517321518583892005172070536178633609931932756004392974189318325371299308829865622614906513657987352112381980240925518596442671681676666442521411457595450903162097529162905829962559326953333597296449953561125290763795672861183201824847467782705093276129983465071446372948683135689935712956822843548605927119297015299332821759600069769796715415405706398141028933589244181984091598595939160389986446907364379344735820955982859207233315625520990896733641707171607945995203365278877868968525732387167752438683008998808442078473466261022242194569676439281098968527482468007563981407576611312489180559295629842308771710189922668618434274814719649719376060033090515828909538186180355563726523453212714155981830337724830860462501073949956573447267225576477576044880855667162386331838285168342596275886203338057500582619024759295273071061578994384656149472170100681433400759408887854421985871456445465783752343124696593453364961354789246796964285515857706113672988180592758389573586325428601286114321887165382733494997520850158097501578102958131756940035245154704291612405482681604933986587106908574569012371932967789651317655169308431099637452508571152984277276614101983145380453916764570065353041127194759740637591305036452882959953774489273116917837286373957103832829110310432659282046300975280170980832439242474585874200069699310207515407777431109300691772541583919657807184185819829884303248757400386597767318657797897703794644356444515943455303313592105095279657823354634315546746885488171013452045699591318540369806909294109527955721353792052490306253213893217398676178539910712882931174795245911382041491880635356585683076468089954537568649237656499794059570546179199015172241736169936355252502116844144297780377182807173492352145344621861722176199783305837989614230254006361612417220539978434374149693995553409640066716997587681236878840216732158546885715748695375410443736669172357031857513460247223606196021239724230583139573960689720416387208709796961688597618527412346928599777763733759568467328466752179352534829771489513062710929125170087235553549741660070893090128554862148895917512288659695916007902048145949987578178764600455687894093371519547634675243895468728221963558871816906280402937011734348302515034359707630609969643366595168714680162660337519782286366866381689657980216944428720250120181919114133833409312154059665039008955917540553509009048863565703193528382230116559417930901595227920081269853565041877576176004777242256871000149929848302066543137427171420505461614356805526675818687626436402505271280561439463549245604577127787237886519885252659108915033393123874969697335464934019904735787746972505144252637732698903692509532315118147834721774342986970929037223201906262354737254620906067506012040605777065639376823647162529629470939327525968830038361915056953891356317810746249064702411785903187022184487900554105835362628600260597766172929914691170998863914163039473150175562872418664511731771710683275058380245479506339933778570306733794477668503273931084135348955481991933591533398838463288082002879690600385741061836542265756045265957932601592704117484088335993286892346310104575279975804142817547851401355911153649703851448817829069599957687934581075632912670693327000687137721801368526159789973771468895806461713202212481422794710468845193966086935713521305860331162297525311985827571561010292149142325989664891072605749337935853774021266930389876571119198649943263074045232376615393974965065435659772587919147241974285514948145482920909896203525325973896020440026747884621392635680720089957660345427067124242264407710867296191606400747052232701703705982310645294296054326097860692194866406112167760870796026952305706698845067916499261026112521253128775045991975972805423629945338129530990995083219824179372194917489158122927413468112161560126578315337561665190795640852331394316485991801237676330675008738643544277773159660214436962527929057977524147935023802054031066004248019045763921707491759890940783727653202692205550359598242972080104179456511623276087565162746916673453572581521921866853570001842641976343594219255190918622574270453762778157305884588009069160590699206202567707185105736683399992342467794564063026446996377976418956050500160843674688715449312862511470200565207326774995902718726996507138932064960941848868504975337805160707441235499579483758845852670742411735009412157992504057449278187718257526198744500916729831795142186961672046482307700218876811926275302043698501527418802330423839305489642105694689058465003612814215630614140700671621658770122123413729738867183110157474324162214341716319928838707239097883471863082738551662080221823399568786941664544286551533323834826495628600676165491257089176952273452081722927566536708110682475162969289619890457757086741632076546543032950276242381527526244021241358113362969162221228349098527066241040571056097311716009484262857322768323782039560930175494641484859880779561516838196222640191983899604535958646761803681611674698173492589644912369316543680746986285682089397404691697410278072201397295542091632784925552613562670104711572027181266574039572965754446592019138961679216958946595025345521039290767195847670885931941148194171783588340431071498901470288779632427617335480695754899157383448165707614433436145432892948022469575472141886853338044556446827340602443008977634643354112577119393119249764428610815103325583902488033762771120844082518065646183862778167083621080877882949753705084383025251344336425162090998201470312687876736031761638658384228674530048455147012516317941759405113085567157725829181248821481039003321499072927700206271020933022416514831048113048718918977295874716043202528426706490266420770276333672891758153953324537300944959251147243814341669702344235531481121448859081904024685885617771032187531162344756740872819712825055016502671717094483590877000452993051756910342378377112144930428160963563588324738571958816757390368331566056726728925562105200626067026313610096815818065876578317570541187998718622491218162948618767759703870178269727423937061198193034470058877610090955618772734690154143611353060777342788151484144736767726541391703843278523518628910668536292191472741160226694364985580687028045629500695146815764354362441843464213424359591166182862375258885305870350504638333900787502000512826584101515043791382150138924226747642101184353658122156176400450549934369352265793210753485497139048076773519523885521979887819479830315300615375451981628795778976678768107450932704037479409867868991168098168111936536256606510488941878896041818944533560682735508908063789878390813721044242680083910687800928978647982129446585978881965313912682688098510358402003026854536475519288930545994992897819876884103908522268393375853323856029710849192752660291727594584962503603165443335354531245141240554481349015182842799981982898086225890505845469714074758130507610928364742735354892099479182632513029961948479839506852583533663552734252894518752008980282225167397238011941557653793947130635667948384856998630495896272598359219177496510178762478682036446274915458400149585986119391401275679140128187618438728640413204613967632051132995561706873673347338109632671579900588867505436405530369113307508819288454155018962097613513916006280290642362025825253328387112273946299676486673307497712301692656953269147068775045521172878459150188933719957883554166615988730767455467539932714826886679063738273239853643356675089869159197976982843069543972670028955463863859931941648000011221887858144187492590081158926583673662564894146124970807543771174746819406998931533243027229774129338555456676025106496533149385953385714409214142497470871756897736321586342081218811005060000898462401485825658164128013093746552522957848410052292695405208949074338664324169030736200880768959641781831348443323366341187803535731327522299942149388268389605015140904464074286346913383512361560175169387325901896688395637088177192584497272955899529438490005998506110279810676649426949522028280978244801281014887216882560145761278205031977452742670398354803277491245286338582439666242112927472439346580585074014831913472998913783614788134958608932374640787877616740628111248368637174840105162341669541819844293604888791056106824754705683362804173732664299198722873511505316240028505443832221535346458094039419249220484331119457837077821476031916080023654955226265468332827903954237724021910788592311094503115651347216202581930658647714991279679817985920409734826738675788463528654254251366045652854095160236292161304560990473071442003484233361384904110088387199231391228720986716403743827672644134203096470080711715170478276855315615132422326514833120421495229193191342397008661906349022253112280143082969947968693891942209267427506013571764700086101565585991695743318405493899435796805414031176210765026235011683100690384968871313419172335130213313259479759086300551461270676025753929661710150402654278327111123027735230116755827735969971517501229516375670579673284808424689552799613329583640763546288887922669021554167546055496205332432824740704809565679637884572185621291739416637375869659889351590011755152470276126688737502913678143118706355745597493682689694297051600105645751610892696017602284128463721000393556256179303808376193640084444340783999827264202599029118839209088989630635497029968563812060063848462079839750183037842601378671298362689483884799559379988168386157534239102936670637655008253380818453992420591359284828932317502344077415235640477014192433413920357591829423971211476513934088046243663830710790416226663357181738982336312105647604742906537315307827671177944881167254921873094279904989756951559620822956386360741042151422691094444840557486804701296407494305499188821010590981260064855689699514826893921186284983361979495484162706911896804100445009726042507180448487322043902454534310989028449281229916227277826957197032591690094493281937740556277049679978361833278541619219510101814553797943756302843712640265464370959552395413566683759241964889836294215339482799872594104628122939672306881627497984036697446035780975124707445377975664593397673630519403230347916355937991408634096929025420735727179040385323764021595888661102091428679504708058393020128261786580286117196928422432394536140350689354208618877432635276946921455425416690259231262098699299965147875966154201558370382655514576612948867354615951969001435721568431608443500053653446406391756995311323576460878458469521178064810280959110337897546825564462886328990094080033833791082085526479165747069689734861384858153965426103860410390920851536906884730258346123850408206893962903635421301922319899862166541989136020481066196841583951058987760923471255970145113940151120141360087702908972996573910495269226110464516393034119465814544280607516758701767564656786340065624601606013900978421959848185661346376884914214871724081784917388741524618280457089596115772037604370931661710185842590467513412128124979017759897933799798270758672140914944500993589674627139157156947599241490334735129387153709315569180880703582419115322420182353974603716955475529445790506335844519427385566512882030466769335523919372882826641333021907632375660341360036847424609317937675925859210768897893697545761867960409594620206388629514244870339121294329649794016258624063582194737608426071939311831594515353839709165933243276702930477696434843337917229240578060211635204030189887561748275664889091438986222153240903293042290606056715791067879778174786075940827183318660126263896645343574168777430967813628760711154921247273687456531357176813260091584342789413013068227812173650526604742956597745523073216477427627429399343910120011256194013965559490864336981991824151308678357646699926537673744525007326387452458518643248079590783914078679966457106801548230437647103578514626341726476892471280130199533806958289274511484086887138397908519060583819353716012538233839826858948524717821315470510083730030707543581764193070179701857974894078997971205796652778151627492349284601928111267721417979046021461098162801127258815454146293439138563037207087299402191214169218438130313265073969620419403115233612056306756899272542951131500586676410763684414966890977477126402543117826914135796728969184992649812320481111868338551405243972051280727835789884963886563953561887473218931233361038750392347353533013763707017362911789049481487224436237372390718641198121015342377925442206589658329718771367449975869026201931386555260466591972060743622887718892060613719275972587321541393591205318999743300104874880727317675244938545341104717051359877808754729741257300664610844860808276293543740335210145650371085913936356045984082026714490927039173899337357665867612336226901166577148514265112794420734820486751232701515736881696536740925120313154192566484748755443225138273237060729360971005849239449082703357330525434052039803711780938639338748230178915352148390188180393005984250689692709455405851634193011627315917118863768690405534704780828093837054460574345439547834912909054716915240058967039632841644536280187953907152692967436092618501119403389103475592140963566761716952555986442863998401169398675986292395586308452730675451287402161288839193800724464197899390641630469094176858018052017381837041696263966152420537588243346235140460614462072595218125360291372281825158519985429197110322673709183910214802819883355494950631269751381726973209692321820426978314914239017201426162170618556112131744973216760663424936827617061577784691130275797637832759659138515576904207128731503645497280924435343829733946255450170290991784788696108675508107034611891822236459286668998010186386361124000817202583869291101227311787477033235564760985818962264471216745248040581357344104356698074677252648593100811515392998750725848128954362849144452948883013372583468912245293402111672104840987232823398199958326091044916251909997516174972240798885412013857192817659276670724846537961737304295825588047094871690689893921359503274830102445471733716357853733100255733587002298548159402129111463089977730535254148675933813750896462871154835450200345141637554603208724596600310689425529500002999088701715427754832865270012937404654969136290191660447875972251445517887561389860365842479849800746424452683309896284497808226431171513730320553181908781177666229124205618651468090316028494831376492980407686928481889867053879166095516738005386187748441665141690555774641929485208148015879929884525377670763147745081821879211711874829946644321374464353838741922537037357651637183669561233063285380728752513307539340270066550952079573187889938508197544393125513290576555376290935138031657197757244288783516676698174653975899650233734875616444617025386956616479298486682942620326040685108742288429987394979662215883325076736605526970821894824666266514795028050749875667578513322725521587919845248872494436426992372117232670881085599155916334325977366987142984159792663658541690254582422404171103499736539473633085388587681308613822201216630062365464298348958654968510619783838509183190915016651004613076461618002610471504696242015094743683938531889879134864087375875358472033108776774673158706887328241490482591564146025683469553173616113401004436114270186909729348920917788170824602443270510446580306332698389914100240607128554009062198947363974566174515260893433615207035286540850630146412454835664516528333544256967388668498806044788984899965102066395405341999918858552209531395839526546972312849155850890871285703130901363931563482478798716430444526040203206675372301098776319373159362609067578252579695803341722215721637112333182637248774227169327092514213190132561160807021595360474785566244637865438718915612362763063192300537345703130977647971355002674854370690243227191204163243796687726261578649502433840585473111745899726173098118998142605335125758080630391698422721620847263295346588868372459851858125095725653509953833072342629335071448334860312461194322608700683926091352162617590052694114379073531505510573059711521840902449137141531267407898015054248432278999122008835450054634081491265965665999675391857399624244737624276234732525086999374983412488613023217955201288167263110351566648262584807310428371348422481729382571675360078386822597942101272059066553941497611705737189939795587719396413831531796293600889990400704491042710511731203511335445875569906385530971668902706134693013751308101936753192605334209307650802499663283345749947029472373640515804340375068555182323362004203587596078418155737900235670380554352329656728976155062481817443173398594541502373153478969409274668607824598626345442815522250043853258769201248199170726338289524981897473953094154618964886591507180451455190503962705207233708717784722947403931621978412660929142481932080615395262078650462373408089741313166829047812583425901331869598286527571625985441904918564837395468461801144210489130983585155288135239997998992628400670751075230085541628557597286003032705818581027546471383907538629485899896119826474176775979977489437081481840369553251589631084641100714409489774046428364138231130483332031847744128545424310598410648844363982977494453509648243502159248892973013809997372219232421430486612940862623180061414332187373157475414470233670195900107613075020730388584342524122122002380319200564376106410549627145929102198630109112667908106159913873137769442039551100558882267406353399275100548494125893092323239360937473683354721756606209737614330002500020482494155869297382745734233985395111588598647501490998345376421783611025660038533414256720702527342625600081948260717228519314765341746989862234066111693607253156251738428023726622743292842043660856619662721046256463136602864584633644687132004949375039199779501169040231789690887485599563501561197574797717757796785029964755544080925707668745290429155252874660758952452449625756636856971609873478192157885630813428150551486147010953846810785921863657049083404248330867937921266502359663952484185967395759771673781183964347846056691239619968782575330021496328771746400815332389324140141371316334116862804993559943334012906975678556434736534894021007904197793143336679720380769786589004214576772887397119646521947558426580040683996196909326375716316550835177938278939319103837339506408317667385197619559895968340583976528846089729348985979952849553116650040299356030733521401566428967419429702182408498341535994458295903046821376393813810676975359692284620646585575075901411655989229543003825913109146878265726586572635760844777804501329179061259676271784023783116359920302291460486166957806320022030211973590555395565702231083668034266380655567005268536731854853354706906798038744508486713328798001676441809756722996223671343261878446859539250509303546963940771142632987081402530653706685025466479423761574333962505951142806809649610673596684623361147369820386272899279118332537058860557429103378903021627439673193893388677513462986659293818626414612841628480521240991483947329660168851089083296450083046346754736331616127480013876968945562334494096162555556975755680849455470231836692953088336614266338250470660186488485029318884942574590315794698527310544626959625439984831730445846421945114569476297151971578705775300565234975300138217094090481337266881446513740305037265644234895363384836717880270783873791733736885244719214283048769010267124201875703011069495074252154935880576252704311513629399065524476121221841790095109698166628583097332265858723787974440283222622789131453126070389703985648725563348908205903670863375264544024407872678962468741977820939925446273864509599074138688079104131529898294394385191810016311952577596188055177101279907263032139537822901347992457987657173282264305553345290749762031001981388331761762245994785929880749450456675591533604787382152733959147643462065209959216954950459921114103417647252433514924457374706768784332542954637228343565440408758138218076853983520730433746857085233342632711358987371166663858280178239183393992090511668081413022624766411756868619060706039449085300591360206026828516253318764578566105171857666242000041351893525088415301870983610735408011393813714640176244444612418740039473605113686236347247457677205239463988434580765893924815405406730136927061507729705894320429466091107836298416880635280301155774205964042292691044892867749348390422646790395512217553667433516707642747306111866809498502416852431167056183899975395962084907974430740419989421926318439991908428066726769087637871449399419710713169275490696760619327182769841037474817918164621930063767170144484052474832737137258780182360838972564223957276763191216122572639233003193609935651047588591691889301717747673719261480510554705483725872473318147560993533918914451417063274030491296791472882474406766000311974386943923695712696030539051080962770129643244279569707801363006813880915138154617005566007408044512058054870208600806763218769898379178107924124345677011294596933113151895527647046734267507703012595873549677037749497840151674524009895900259349398126450494696385818412664792052430054430569762957272755338327378242431970823293176414585417816421095106864237199080824384986043304506102935915543217898726797496594252723036830842217467515945746407327675368182513254351655143407791744472185162572989622340986714283390237698425976278334206816170966671158777599853358409803905727404554754855839558214769801242782847619728475326196013483055853576207324024779640607755802264021436036185336401936011477351194175258866013457697529631895139105331592236868979608622241054042213931856146106044219041729521078246218728399384491270765277736725225112161889903282435336421659284041096304260686424577375199381778500248501607779292494235420092953491733910310423470509813041552640630271660082871243261088311734117449799132707995570052231583527775167107871242662070678346773799953305928357829467865562236803878075130099891582477989619998611156091719378942260870476440593096035720452099347033667673342668014544670985900076161918714607716929712710055469554666994437382586114776086998773955848939231941544570983878221106422850836375759310796601916742082751153013178214636258430994711571445116218364640390652867105476907249589652889441394502486393002702716017747321144497565870992299243628523621401064290011979442372336143319545310124501827543098491953353645325971511903198661638309420056049963876980597561177898419508057607642186094340544488731541834386206475393817200645395129271382566558050688478995706135920165759882800395428903916515023964558475931908144731930568225443921848795810383107690748098099243479377219718018720208997640294436155045508990983716197164532069390709668466643656370220325592226344578057491365391804315573391526662147165281345486380664721254028114628077590337378001533124564128362227402761972022875911731188045971127241005252475845914389020105110711447038908240915283249017525331984370800487430957318898562926963367948624359860130218918040290395552342537373160491457552125664677662255867343437612745916474907795431054028722637684428057629914337124769778466985956539337004432905068599013869864596118252870677220672912215602060893160855317793917034905037238293674031592792707122537834940034614381473079705431066487038683402840132604812788089932001812527796068882130318865097202417405556840540083275309176639636511768579403757771226202872633266151269553563901027681485476342727991494519909419885917894971081973227849200519287884789419754264344182440306793959463783941228518406884520033564334515245456845956791105001619719706487321206454146180550931250965546822137330460776397709795595076327898161135659133304619532480728272283429283337552547857581786184756973037162690792406411595937287815132987414050986624309191063734620006772169549652838123106123106897121127851734486474614599788039674419020179858092782314486845247362726709794729570211065420271062505980212172691091540848630768245794747343090046474349805410425498099135745896090657565486180953746779147236978115200485497055349314892025155297802975590725741681290747962146878538323830877682445552947613686010521449721939304942381505258970991995003746695108486395597935005301851299430770982939160345612043979876022575339014176364857851295369552235146012183278569428971832374416881401738448092719421341629209155769936689076947369311292272138366395140479329404670481101398446494986144893628894908193499877209151401407029318239147429631703326355313011352262014464852650387909519218680333489930410737809453402550687010782526708439777399297621906996935766135286381155224630762552622767170922182206926665124873357451853110308222560887868209813083315757026145675932725448678182427668705323855836332025619041055546682007464324129756717810864704183562066934942285841831766286275339967831381385264909234666980551196896552969008002600012379673922520383417489144217519486990235977326019028824685872357885647107092580975721695929611496999235996393222061516640100196276021691443330420006759513199910718500715359024728883674976186896314989347286676937230286736279135054042068842298881904731011262315568530828185507407924274250309763132136395293218783987607369932325828735574107137382260247162561506369806053431243327855721433166085123865300677267893259098586637293115952099107580856245079803352791209169830812674860534831351124740931078790222132913189566494013414593660513157088429677777236401391601613310005219764428134887729407939251593761515586916488809576455576571099213926961728473424282932104728010325105699398772211849593566283795212023870608057246287040186934706033175039908729536252910737860766284949861663680326916822479917673421006574542419650558170377477359754165106751332512944233736534170762717551884290411227817699591170090606150935535560457292062353491525433472882371837535721351400636924106553009737210147358549303142988867789685622378745824142847427960289024250749081285423757188544228931206503623086634169706093221482307267158191760888524528823460746236932174630869747358333313681042280414552763153827110250123019007945661028206404166166166866486641595698230544630308571032334247184985101273351950766644147810850091592076828692977015292743200095330491188076128058424273818843104374918779161030635944031618094231209792774324520877825561654251491862786108764367306824223747295760851980618569472031938631216497027878358723606452007573078565102003682132166392110220346882913181616395271987927231737571113522695032259741347300883832329955663297630711452578766423508112258430312151419734956980478478011304874231579206153767396374071159544661428079814763530608925814378472643334664849443360597233917772111373348336333271114147644500523441404378401658145265946295591568196241566211259169639286484068288393934428947604347125554399991342811319519507776519710975437538815547546921670026952602323853329862845034401807027023130153291286205388071557820543131255646052071424047226204104098168984810634009958491620630788425536891589757229113379353235036891588557998138047827162242875487750241306296478342740668016104382189009844894489478455435632334049373976303419159057305439464665378301630752135586259644729891097156114526880107044286932259228377373427038888670944480086338567724214362905437260444363431904272716013266188160852858829374962404642310659631351495821651324076578592059968128166671017036645460271974564369552510949713537339360732285040880562287001940356731178249512117839219484961537625274945587533735293730019727844149854718836460502234342763096518987830668330537366345943880313410731304410254204589457611934030406559692094200183509414938435926647977960366746790687903348763428561155509341461496458395174630200967679448119045159753170746286558226724223536220095540552638667399362517789321597112220347137685273872314457867136462746739473873427720584884145691770394107993678205369232352491388548547025253591655849662572603477044416782901510287682587960440686794527635704061349855765724840352230634342316110134391615094860484740552850006927908813956426677669077480118919573824869134651465270448444559656984604419808656154645182433793508814008383300596652862747900874781256820400150274807251085732365966037445354547840466738507998182252400301089519666080033982816436390060710319558967644609407916870967585330766843898026284668844256661313920593941065029491627933209783173167967694132948784030624075271421126597122213772824588402922048653915331320029401956443569344328416970219413586079694615090458738150220704696562814993527349659234172086256393999604122637960857657085135298057746607311755614296752494880918052289256167401078954759749196315345812850156434385654468210669681368002430295379370327660493747093165640292891964049512005282121501078233097173744885689840365641246039783582530875975878105005642936585203687708037886033709825203568429350061561729776163977739664046459457830063459333054940244167510317148293977311315015026676887412963646023250935305091589877261560760093276669107828085992241061404932184181120165070156173378983893646930088507334416184669909100072597557651178862817642041767783180928203790615682744488889559417956347195392814572585791088133646594035194951987684026746347439194626058779835377075405715888087264061572557739518336772817724316625772427046440932024091345285135924346089153655224602882909267553727721652870307688791899167479825002236532372869418910577069745691467218198879364058684715776852895897456981877623736063100341098541184094442439052367980138690413777033673918986207694384671477509579376373922906594751545062650377805709411962153021182980676035949099183100838407816458212120017731547405260647530600170946076797614947362829337620975531813489731594382639742491172127057606068817351390303255849311892659437492341248295583610113615714341727317384681523751593082518950163613945304225726006829457325252837488333191720117756118012165302040384777964735973325488349142359828025793984727903023796383068845299636907086899508882941883728863062577728877947644008510176917351168085025369898790388385137567499430550696251930941695318350042117069363249239005198849723805173705807834369744766974994604857678450992609510616055106050278353097403180113034636365421585775562419719619400605770737275331409287307637320369270719923614013680347925248760066588612830745162658736075869520243575440438870820000667158541268670078122971202268767319448468372512123121914566977209000836693014328029539447195053151721497006588661183826671371201058677547923139743766826158461643855773799056130572416034512493563879501365911739336644594383250855879478046092097200551987041319424893218696581011474140702420133657079753714464772191313300763109819054657871216313708137566849245360425113765608810600908611844215098513286255605166930289075779994428681639115974183075878571023216455868476736185198983757848875689856880014811716054355735519053668189488209872115940659304090100228643391187779634006544372577034386369280908405677518722570625030945221543280499534509501537768363718387517930252707740706271911559932252562018868714044315258096209471850219688609099280973107270167722610354277061254660248343199512111107352051264861188054092867352780137060561116803930596326932845761586672352116799115198063991665305242908453358152179569175541291873074415553328178961909537820845910088193767254817418167833919900780948737232349321618634385028536888932677030743862884313995371267336922041244108178203570720504225024463882272117222260718556297641657928829037074310075921445244642718667959002988059381442583452120716737425156550259666410857325757130162528687591570163056841651394008016983874566778129029394633345996753751184801643810935685590010483960369791354858590909686664736655758526598686248968709090130988256572955890262688378447105415916308013618091583159633051359238997757324354300138967440312367185834905020200658127553205201013038833682437301079092095216221456379353099688868984852755254841377922238775462070495393067134764728436046658568050398965713263441959794174270106071853887989911672350124941874515168012995389090823575010590804845362208986514393696987841782074307165383344405422955731417483505514174712218669907475813381779205343933574808165726499478754742604456011515155040408562676623637008939652726460450874135038943928984431228131213452170099655636760460482170814522064851935934312903056320295494434691854994284406964370440964283894958513635317103867931190280050321808774703794072295257101772255644160563574845093561633377250629250714824358493503010454692778138939472927292351910634530588663627075880271763917737515346953737937319306929410854952837836799014251713593005014681094727692191439680989211327355114316702775478600134532993017791805485588950335927766731523426266880795400086188866643955007849468929311647423266662795661240910235611998258206303220723250478026399730090599380512346671757235117595492396724170210515880316150971589002095882034674590525071909001141673446114137953837849621591670745598473626262313928528672597685290321053201057399141343751853895594935491505475781600103369433503770629973219783952318298715328438963554461180043416710063657039241535085196260042658077489104373169523929344650740972047146629723077206857059286875255361387192377329769808498407428986154359617691950909008974917278175965101386491530533275016875472146752376896740602233728660652849058986398371678726031416149671311247237567159028312697146454593751207771921845896245769777311889540518126521900096221013452187338415324835896972227360697968139983615647706634588642054486578794226558882820614406064251198146873832101950372545864338283413086106285576605302890499606763545141832067332823793978103673318238325188403392581939167728789399200350838115285298350585795488752035009320387349541011482878997478965593282220413276508385979928750228163239303708693753352889577806720539023239199574685713182573479853465218675906364368942965386742489802346767328325654498659870836520454214258850237717922172494601787277234400863006357062139002441157633130197464197651461947428543805320214354193517364094347063979329566092870588744427332242741159241815163610306209329829517810758387947580499162930456924293808000079471263019687422651746866623225049233880262575924559434400999346815747284953086626501826906292962866044156346480721446069013529096987542878837645060097793327887516463614085392447020015210264672852857881074969403606438619798690679892607977941340625691821177748745215351919117295895845022690946325283648725671082284318673604810431140756979718870100014267043969966983705552142816308356173062220756563052987798228395253184426334185876908743774577125957519949730981832736643446372645176265000765896936269892666354726778978909100004794527959754909046369735432211227177667311961721622451802194294869986986787227391434665839667331792304263370555996330046858088600792351407021817414296149968804604097433875505029872077532853679282484904133244680679408682487740287864081610982053718159737402372761976568067448652589849557341280767572083236613009937520123714013078787403129917394561782952640979676742400837397890292819164406429355010390439614470788790694324997018973043770893063356965540771923148175945819642355640879624634860197289675731968652741683305660071309307830817900255877588425450752253105557915195993360390071350984346838183523482091214793977560483609783681830209821543865742181131252540261831124124560181227843883383602527753597474891791859473078608327331585071447547516889256948623908219281272177643221601010894146437911982803427387960044145687396628245315528421501143985128228044352446537225092801078939534660770713774635709494066617210675164997487832869166476181213207780799814153720809078345757275918736286999165126194858550797370016561112061270085604014243931900880666790278906455900444944692779464148041974928168802068681985987480064699602964844190355437531183429213859343162887830680769010428963126211791890516800782107820982641724742232358395204442030510707190609833491928179250238747289854897050194882295824239137101569628752253167154264485617999975406567951580805279322132973114605673546417837438208890777323514787132960256115973212312414762879055531093526103128487266625128855411702320889156053675966654415947072343995159405393661016961486058827518073580024516978999456534034133107777704991644153344956072132516346776590634991248420367258885305468300056058375365190944955582187946824343662855363558932279013548735759193742646893276865656075566313855486745054441983434597242761430516721646978156192661649199900212389318729177681441932189193734314638152580847970568426064839843085500654268120716461530293718600999156426696918793693205834508501442602123205740800721552970876702730582648273270912952272687303600059994652833527952008689877484780421839040210249274860517753684459227598401049568905761109747031439664441702782577107932332119478950114622628835888505093593000345379736856299452946531022405035099521517548869714957103559231533043088003236950104467924049090090565700966321802646541202171909998277212455139939335535724902287958109942728812412189629643965183712698963740563174295438676592676182850729912298617642744787287389606710196811815601099477678019153824249132935153852096708576517370515877339521273738492990908621244816417531711538672851851974657872147402112161015751685788894454968956317683418269814894989168153592160159888417465778137165784614319282273785353558126128013758230233114688332662420748723822387086026507504021551679148688433487065573935898460758260918531297521375506307690622874862797259395677083196348963564029326033694892944817392330926298620363876999040825168985397516105951694107953898429905845113706952047355358131396266330019454253421413690127471509848720272360987555592038614227617371661555835475950994279001606895591470117104527180401610573500442743268087870863950338560739944644720206573835443216685403579440846239486592338391350561532811439747525859628696952465588407473766043204330570564466620414917302804959232036316732986511558510984655794647552436943285687410656837744112308570721799954574850300490233392688104071301938887119512520953958161395419481017055578561877168390609063065754661934572499366993264474034617334259160575960729112225938463079456272344019467852548157438070309218693601421390585674715750144317888976359810795079721016643582980203924769560373142198152343314155926000711732052732634519448000147724344463833770091878694595449321411338905004745420924893734169801618079818832137863497751457194130381483662191457777899151150236415203262740887694259772107103672726956086472106018431197869106987377208529021834878448475804021404559650674157703807754151724266802382068201946588485559232359563876870518868372196585764792892074083443329874156505251588313678236757748977156495013170143482395189609978829831601245061351701870072344684007700176942342019789142426926723827368001494349436552089834024663071531055141756553169546907532612174286803021685195541720340359675832412024530176629395955664660608403896490400630451167250126918461939061535073574831995935487043260410141210938069309072528011552670715999465192717180711707341862378539223232355930140170304620213644381538445076715515869631276536343569764860069490203692447357832169251516651153578808200833515161990082581893285827148367662592072555653507200939226175252683835229801460450748403528998624556239716042288796329415660649726714739327520349550832297128493695920826683107747417710312030715458502536886913381820544751524443033606600689489917143052339504490657597501583089596932810449026285638626030644701412740889372075528182764375089052694102668624315982840196201991046945682098424126122351173024121908644157561766307341481091606140185128375309705526634540307577106963608342177128770356756805167055072412751220636487163001221994876394731376090077448605521596440921760807367498014485582525050157329087351232505374871510141958532331908090246923667907653508134395780540996737139445790625725878688045604554694733519829337461860971665188489802608893897343639203606787896147514784099204561111433519738689756666944400064081099310832187113248861827542480791649335421575453973369575602653590698166644812516516552571676975708776794648635746180683050758869359818678393411118606055251297809054729277656421663472646306677412797118455452545945500587800299010127075530341655658089278652033758565299862829035366574437748642756569398628629309883962933018429673613998884798385071575713778201223931191399085888534548060341377832452716318926479393858264491113495988805011208400597447884821712861244608197811302634238805362043532752314925464939445116849804003870073390991396614664696068097559215954585174168102087313740093234276486667759955540254608895668304566259655004801241325703732502444198761930562623042547364240844054531380755441375866082103397749908300614111780666305670339249668484915562547606465631727522952649035319534049829085505727251514369597153790083796117586473021558213846152408345817260799872507384822243216063428310723084528528252891668872929218915673932489168780016246843631297345120733582445379094779423092328834124199785549501192570187052364569891163459173854688930558297843904909254913113455265768511300923120156475835925381965712500526545732191022525248932415544158873530988246333543995735873929122782422202371846594838032054268470927727478521094442995727498162676666368881999736564408831980030847282364409153495536266286220387746686956449085840686116728385179482445847849660299566462556245072837444728672572401469449839300232291960650797876704545866076565523523909280055696928929598147113017645357581848578425680733142115674588367533011805605793178407826137882343817458914303681545997469081984600368161370646483263676634715244146385964494000606643027172247622669469113015244385245236962122219492006242157519582965282691726447961264100345859703155743828297912101442944532958458080422537771736908760717792784664940050756727524730572729689715889583278643293230058288831073642623215981128969578663867915440402853255096461721287627014895319131299298075890797380239877169271306615001983308299195017886110815769983509024713477916492597235727380149296722219019722222931005539963413546732556073946854976923879366131106188057481685691822387646022687945966073988031714971748410182696010626528263087850385222414095666667201027061767274973871084797717239213935476287356484595571479671223874758142248969807514764253210210277789238145601362148478003546246962330829010506569050059188894585203469828857369558911123680470340974823093227643214763914494231521342651355794042661844849519574579945478268179463008346646993350087651668581661665777654875068610400374005009346751372020861019804221874175108071194151809557897863390628333651247623295354391546134778341799056957540882716906138054389107337150537506982956071341655063834480373909532431279198122349294151078229774099410650401599810881607306563210149309888362405456323002580515604387205433509841873960575685836408015327417270189732867096823660366753065116196675598843917113178330482369537768546490423266268670168443694918192600560064289435942208913277304718245114745067758390389402635148337028507460968547495872222762420420308541337335905798634988743876363987549827612475235490604619048039133217620453467904050292583967724336203389589242367166359584242035213304910462500723717821466283171479566299587988171238144791088771468620708557296885949211486144629571703491657127290750025991853325612888489422601297381751499150299924762225170283999340996057496525795145370020220856277862402136231446496823967891479189343775709780269783324934737161190824609446799252696722658923497185462684124769892918487495721132174008110054866817906455447308705823677075889081877633569553588752767625434176892147601377020136095493324229634293336656600554321691938405384979859038005415918304602563172032071893085156571343787448190823762941571051776912081561506186302642987909233338223422564843185328072032777681098933214453576782333635670351059151905253101024669173110496246049135555452320449202431682633339084621275141058135512084620512874363030528603733597358029449869218265131292827383277665703246857713693914157626020468058925297963874934915595316050822877676263913025599711128997167436983694531130390500469045230179816404634494682121153407834837848557871947945418167205391636045545588484153761991633119799624434764410793242424984855113928176931671352647559717338363260305320541680325174536779269975628176841033427964395228287381002050080358182308427390260673044383714324696611180710981843767070225694618168153588205691432981586996267329711840008124837311593393259158609370748421526143645884095162104303792833895294986456597551392016546232416158439178532873563410961812260325410292245090369430356154244113361812354615793077939062508222897449832282005053617785057381231006611378486049064088135447597269895321906972892472460318739148206281752795808324501471582428399779226498974806985882229133857317309693647844928083731394421024667999553615564093889537432516730070329205980641262752115551737172206517107798175442106409068113268161058756221798175383583070259328015728063830515577238784954027012955949636365350283786581619068122083202566969171909544031040384579578441956585467033819365870001326144659711589495954523332075201140119480467709830144159510148751645065729549378322163759588004947318176744987686404443302006601371407721726267687000126504835209445701577473967635276087328112988043240959668866161479347377583751006279958573249643853414557368847699488310710081120099854336529760727351021696441005804336973357844220156266512327706793783143548756134468757764935165039603848150692644844547248362710046320055006357527549784532789619379888053250399394714421437665016786698622111065993508728126587499026635375990718159859451178426530606486353252267719995350845399716509941141737300242844665725922936670640407607793939787804045644588586212715760884440485318833956706216438682089384611097541477507567336235084604599365097101755793472122207164935732630899970217776936617355669868547902329722874277732327993601626332076846732672260583088220733531444553404975470688078886141505721614148576925682560424483259936627012697749079397142518932870619678252526068448037310087584411156514966060219953502604834790576016009476516011088415999784821874151075065703185759150752262367559438356365987667925379237505751873310610177304540636026567205370818093126198210994650353772549298407923541711795099152903405241153469714378175131916015272934821651364066871322290267721672606924135772420795875572396692789674572526439407846548522635151425159372671077618495262931100802428011852061935793978165404204832736266984518285144431696874625113310667066549586503569377611874714859073364516683234007606367761786097680152326356397509622782668417226223416121387910120280424975979741091534445978304221728622784317793030740433218368768048674548052142813465062390195451635446645520914740278983052890375869956102321625496229895043311739847245884083343845104766236275397119969491920601434839809071894892563079048154334008659313310278463880127874256265473601923329793262291270566477944201024422479347423196291144988226969599968344091925241351218501428707374878941229444046969079032270714346630740885795762373811353557692232198080871204973958993200915705411664392412522029922762436985966176361263566666860719497388748367585979528521165141622821296389745132932373584554329927250427189387130387696452918559577474479421126895866981429501128782727360648549963503523288516148794320181621479057961275751642936817363094128520538070591689502428056133194563587093783152337554430695339685330090082130713873637373862886219228103932345223692807748654830258148816379277349485621525264262957485432124582124206020738934355427486092590617449395415951255941788153236547162234326639700173874720156413422004924793344686787830528650453467857735718219936823422317221107863825958287776210978861896686798613992324703551256228172903492646456553533319195566544437872786213876462612376520724717602366652587727878423061126010951140529211054524277255159762059474754219831912090942453421412740816312239623183150043389565473829388469194507970721567605757641166210887458293561725411930883829963024473243862828954642528491480741695783754350161570854868609789886051260296689357421450166283149497433394089102690969500627869476752845286614507485942433276006516444377273685926829127972473002407259671957871461703701564158441681780164412484632809738853510533837978081730183887562109344849096076388991668933336372709005203196281937491188397518727827503807476627632486499924800235451025856510554339582334017370787573353324953457278895147214576128351676662914017093435114479984110109193179807983952817155610482738084657339546301830085241410661612731517158743517223014630556567765377217316248609304049974446046690343260567423048476639872523186148591258356699449780062495075890808083757789952538873670793344127984463320973917721952383549147234942929847789552259629751738573392682360320727933970123199974489994803640238038653371097630311748369192722562072139174487153250802631600618640375303019841303937071339346432151791989404298049871359701924490419570979631215368126879528152627534751791207583467371237782464000942050147569134164129729031253657485831283268720371770454929023293381660302248929904736471153498829311351521837845210453388327737690571357087628438595594073913323476180625958615211670813635760213925891519741173683340909737619207261325346197219355573459259731695680717398513475222140938512117414827118716691002912867051929642748162445406365973346636780261917386792969440198314850492344653805959021900283975698359569594250544105155824800802231238596826661205226829628648250262775357518151450536914247071285617166611724631650456169683238184924480892612456045652531306371672312925235159874051233181163217617218606744882640401301262052196472575359748159520600073814116548196271194364596624667428826559204265691129916916801507177643117072290818564586382774975233060410149183371230158103857922343392334039828482223320853626459082925168036744642290000620654712718624458359259638118676924020635517982250034630858172834777444176861455233481519104650571269403576775362419764338848178412939782926480808418384968633698057906017816749123801807965665209251192019840068599382957076561088157722365348840606375851956045677800220372915208138642170233289827012839323700684851863548744926076391875056482656145334711622906189864951831359521281994923625263342557383689506457222744358389792910125683181677995881462404869390446909013205110863413999549203081524919811812673277204455058740657058039424332961967384073041702941862461584427828502737864568226189503188619484937675344229835780290166893144871899085586579854464450606235031075789972501060866193355107393344006191794576275206807947335211217423990471297829336597951042064343443088438443202995637511773272544311366532269409239515870823198787089758398517461421994483716825037490873131627886665558974020091803993059196632983521245976674032971988825701427878289472394146434050180005058369699294688449064037894271170888004761472613380782198489962464245438319988815454841861617015476393879731743966867255447058548205911574556575104102381983686652376237973977112133091840876235716279322768064482004932814399616512851114627007936630681623712708015337429787652915628426252036468924573851018519895104241588952218098954205898740573815763385628885618430996709502157979073925842100592578545676244756713683164409014702692448847961866377534119342433816232220598516397447720701510738487947643148338097887254666092228423561789880968359274450654372718862901264405700804055032162730581050110262295664356181529350684050629183356634089722642659253438954911663374268245913214650877770872262759666062336351815044059319855700411676434291474523385426697132201700929048571026597859382569466783988189897932471176346016070397552306244161249293563162843530140889408290035425283768929704560788191368141806361525808139568644211464306433124426386759483034644020265599647031311445364505684246546989941306046996680617272855523986451467214350115213830876128550441621313301076210431114945773925642082452438553872388103869153162984205172224743619450014553413744608158723988614056540835593502076231471172027695072711974081625366688386473649819114928097035087132459136182773666461196685723665957567654451645011588193960037147229388807865555318058413567039901423446539469807589164356290459788070397220923039342609012155912603322487817792337122852794093238617721096721657988681725691005550179962998040092229840215116537126798422026810664337264852915185183540325308409637808122359625670421449513889455594791698838770366289866291310291257138685542276356231502650020159571076179223825283980480492029277140493046096159588167902287976561858890972344996196915188598859722920974945709349467580981360439294558538117891068733869764396065268091461764136734679816706916815314570956657041284252042698792213711513677856264533883218546684173092917366527105537143553529738696809512274297669704761363918414877555331327688238355217011101000121194609897718408563036716970356360329914613055429205335010241820040624412103205375845898035030581381171140821328976953243394137304291779792370525924652328704338865693388101592407945086709440169440553698727966651124079748576275454896325464728404528404811419560737724225843970055125389050378377414310892968955282964327773939685718411730411402830956184204221118899014817005013300703019380713996968048946282268916041621594631580237842761142812738201978707051374607480005372103560394736131413934733357412694227745716169955280591737910606062386877370583541291542753617570859148483228247252171044669446411955347220368368583911079329846804367024678828074789152972799405361620398884146042021581756567968339660927783625402782462379150944703592974924061188662881723330443203380792573618411403228266627726976271290536945812984538986204395943864007363147780965928248882149572357129826207107360688976171105217798693837975831572578519260073476910533383760647875288552308454596551521750560787484166486336906048756803152356947752954182766228933276508092794072490146780007849133196141622395922013745359965721372914048658265635419895517697532464363742792082411613804601387841863996633407921175359957783000985778891125108221341021107704677343003489564317536971164857305022841527670405143366315184651130690773328486672387460166511927913175782887972347646629776748826884459660069121559221043465049619357533079073354810372229159870036160304292827787060675014585609657931542674328919476961853484690308089277003988880718100737233832572214112668300984637615328404309947241817303280493228417019937562776847712508348677973157964039236103656632306220309482542783180838019327012335857072092588796793216529529145729261930238074356474286587674875739485218655774495437188475810543136606680852307167834186337959180688267664903987736104477407987935858870079454609352720673074443586382608140714217336408596545344231745199207006904262548151614336251432115072612377730925768770771344755524982672703334445301480788266319608224403572073632003984771155160622657513767547376297039562507474249016080817790265029250465868096260999370086061899378031975733099592577212142205367291511725156964036470330115728331282531699778599859657823636460507308837030829442755278021960754683813292577754607686941903849202116369011542565685029383672452262393013884058583511072071580727107329955233385193392982066826998448261570133481351407755477215158917826627119993935709778643441904577967982429896028887224003993585877961935900718153588676804001879587250238603431383027639824927734509929029330071620830256958709564306645677400751284012923615078935690344580110249625148694702337230569630856147975293873463487932462762276340704261747193214192614522418975510559647796873639804035881952500892760123498653666270369301770967667032691518984038321176423374635509189447491577021352968168862510092654962180920377320987763066668661896056152095010245160092211174599952462201694249438879723158324629322087298916883236025393948520220441664682199552840722293394109195706716172216909440019562694633765879630701707459383569622834622296914441054261050133033622481760627257910540198460061653559364309300495025521405615752351169712331827029193063785214398095769190242981162891056348156813557041391211764139079877870084738092952342699166320879840717582129811346870645963957180219153750743560133320125847304480861545587316226393100714167270200758755122641778337833835049122098981885080643095159559910670897043354662816784448982703464012772727416998840110524814835274276521849956251929659135611597821720867279300656379904509845400536754687507179556745633187122950964574407923207634269180959725703439351492438801355007004523099246601687081833217645234653179861955867490464696416216065393301700107175411173246036213983190588870985338915342748965895094232605238426352219852004076164551140966470916795036888820783100774572904918643849361658462471915550170190938055949389255921607387037148567816512281995407856270543757142434932891691813085136187703845923973583036164743050223519480395716815038594187218104028595086546894793462642251621204031448642187445909704577241329110635021202606888988897766808386020931143735114745319307203576198776270924353398770182542743823404873199680641645839023572640785698670827887376114099962906265591370709528026074781267911152970265768488364653814217302802141640322701518465292536025312397071854279647991741704243336215808845678560991771371642023520821703827082145475159896630368261559286599294312475824684902797494445741985588317697536586027153725483904743470306524423295085324099221341862492771290582605581402148706737957824299621684138774583285677756508780293791820228259314286900769978221846073745748246808350259362437077758584450014136108783322485945660209325850952468855922876473548854577497003510502113247988422978714446294072836212333395993577783728316689221003018649034443022067657880777572170397995649626053608547193191662329875675116175841250778450360212757891211959783199795731740029472256702833981917273820498417350894944176237541999793340480519591704165992493625833617891872179185997269207811160681489386504176230115381566171716123512662673041578919051133233204817811530380909907697099984343471918754041998346963574039412488449450435126812335415007819394113009492984807248053728798176118863418427814280515378098136159004298009824447961498018374084706431823934194528688304280681762996990717129906721730971628966488275139900244762762625290275356169151439242424608457399640190249693669114641792359359802454709831090911741529291972819911973714731392467919226511436103430461580746570717539502077719547074781738157407821073761290145385147007964501880903095888746718679795238843994826369066033659483877026166078908328457483092839698585429913339245037484557899431035747616939311641663713574763335762142820025756601110004515350977158077429402851744186993190405967640027647311629897770447339339104921376702955851438559631167264998740787274406657623164702601080820121043524195443888843214546354205081033858716847358003305693685489590931129986329748503069371776467113201000539077277171824348508961052283425047785285802971565215897174337976957616159617679097215489816319765007408215837470465930253585846325526035937598673484931536360726597515314616440238457198978142832086536565279258999549308740697537274759456711877974112820825681927513700918495260631245306232658745814387484586237193193618547495746406999490415983104062646706260246695029328927467520845416040531704466334447914154854255627972551903209222916107497426665068281128385702621128546362064076338299560413542092271756065166530680910596500872798702002126731799400522974753010723422332459139313537992336643584923918592335164577151358930336273471512210165075757842884091160175407233491082105894917664062948672097427443434463110784064705456017584846145594500372705892578955120199655972286792446215102042399928640811396702307515258394392765008226950591714290870539116669455493213750316359209779280739625768094262546015528979936555543271968767729537625673201512505242148450386543328807646191717311839614349537870609183003006353504785180450515313510545985966518017876454958434141486561926676766901062059640051625972979539339278753519387501115147598022140571826853619394704668527397148848046098780703339516933475650823128932771982435928080383726393387888830167967628549634286962318272445131588346066165824206925871166941736379777427362879895426933860847038703530177937687906736189676052862756401242349195341157366489741783194476609366250832199520493554561078843643577465890223681589900843285326751914746590661837481533309648521817740433815448311531912226820151033094953887615101152237576518881643212486211663049121956839327424487280316633060320699154699682367477602015817664814084697889541267193139816109175679538879146070774869212132481421693055705807747281795174045571319758195706269119006538854474397730984553757275613732288619848464164944683591850565512658469157788467672028901202349583604856575087760458980695879291629917700396373690635057235839709097757237607857746481127805435734610010624805193601734031724263594700989411114022789996833038095820836661057298610536613605860522769006975841559980241708813153567547381476749360236962658873098434646419951732228699259796429958817419375403647358040314309302055638971013781715438928271912361002874223361783556475725412275206623066138561764625839714863099436622161600629091188205343315760955781173055961468142784948471225310895592902857198156871046342834577032909332062251155493081769447891791112503830157613644283260439332482069878250440560372707138498888807490410420725151875686722083199715021454938100700271540085030287310778192398897411394376848159383353528272185670810238379299922885230985460725550127707606757349340178786622472759167117658210834389700581845982195196248793849630048634135353622715926034042512521266978154648767915909822272675813641067429310985665024777168783271484920560238032462818905221067249372567630024079615613024890456660747041082975111083936037974048801008655210931386315235321120070914377878639952756387259952760024959841236186438066106096650657779699372454326655639019978564132167560495497415015212470680506875889113796048675347129780152228879672956721437896638927538802969995498105181276960314334330131845594629622073261134561474627191758334045799863386597011590811081900993118586929184891995878892996905592240404106897841269759646900417538614409746456092816221333814049398679162731652223264330761167366422369452014901245684698055850687187207003915433804900384676224165895581357059565581851079892629845004683468733913051142696523021151657891816787142789850775962612755537687501420714527339542400634712780691633600626552691126251369148865733503947215392139265017541580949422050453270983415405967971911758140295357858753615975053053196351662913786496050384108847876119022676132046250568948807475665621176332577340948155995257168010427826359040558165414726896604935680880437673157839396561225622272683777501784496347099647873516618550359792060222936165070216801208626270158069485594933892159683119680798394170385083481337288870694070609993603122650793281337533085199329326275391564166025212024794561907510285403542942163350718067489106187011717894840622650705129986129143622191026232066525755291971279960979599869188781898925238608874281275886921221633345944144123188096799888606727482492276573387758806122844506942681609455565658368767146301297020188416709041878613669502693884306889252907901228445078249367305986390204624300896718768516281482205786855980577911178221081652909493531434711398407139396842950704558823225828683183278235140488703021761139349399337891800671796709808168318845222470231955839131528560511826507532995124887743220090744614810519778973149165947817803431394860914277335534742945158493622230057361045615669024539149159995577698889222184201312308298363404135802250277496665519889795134629883268397388221940550236687015514366461849044096500901186175153592891580407480292670634629373967382936753690936286906372069612827848255235900950595060085279803949592301549060562095964061283682641829324408669762160594298135857468538125749294389708637225670947535716145044877197581748052049751942981877282167362389095167895778607340288121100839864698526564189198961791914293707725026263083646175611801591641966048943606268778707609466584846885507059337985291192464068109720362768718130003735733950778691469632185473664587778406736933033392775436159477978367794718722649571214200327238704809385387264274197206962748288241371867484263361910918407688439382442973193817961401517950233708065852380979187450192959746650375447683776451734030307885415611194283713369297647042186458149190803938784485718513619730022736377061234371359366113886164503760481281951816335221977701417506829956465939288355687124603894522462493825280776278958968685602732171322291874359396480695945819236305072279685137627932882019716300950851915618264761056865031582137581556444847262848649471118406621729190152341411459842395626071193079881526781232445380847711175959064420937279086167833584176217964542660675477984749640028758856239045929043365823953849771074113893660904287334776638321556770398183623691079611854904679040856246215578426335102930417745810890715606969506879408330424496903387585206638036359486102876051510788634156588033027736896620785776900546066071370634564777678997848758360315258063866943020550313160626534174314680863653289996972417193779973711112082933765760732410960436867824390794900951718485444735874359689060781465427088735240251762859378819937841691425000236396256216699364792855800158199749415942149799874339956650161171702720536169416658223655462654319896808749504201249017978680484796832260494054480231651147339952446545447266169636164066459513965992664670176025086987432452419252532018504023618839848835370692935017337443092826793977139533671670899428146193684127168962873019425485899701954777353809162574379009417713461101019744239710605165797121364987938910359417986726427916123295172458000771088511321540588216762041755358210849701606584004518775736998175100045212755719950828344751629307668019577652708351422124900595146774442554026462359465883821528263830131338373958945011596407186771279723904894432102692639113651308248543045716965874316970265811786414458564707113596091058108016346509308077206701648555486832703637047234757140572921045331609808708307227231404981470504115321987746102677705966856368765297987746775815894723906289714740926930228164561253835431678134874324753547368424855243681213091588932671906292279039258493816274783316277702247447013706394479103343129596861592852916825823126235129409391279256242174104166798263047930806650288561562264894411060017741691719054000254052039292910630161337460132491097315178818782807537456861771179466529664020053882054641749846936217490253254144689877448975744695341862759185246183968361709396598242166445558556984405456298662952687373653004343984303541582498876771638023704601386353628793945154160277578409603175913892338196558740644553129068888520883606179962330162106126451327555834966047114044123469114215207101226906489170174230446294511572994928654711469585457523841732176189649706920694192093155204507185698712706149505937522201053838508527332380233222539256050127319180667624325212102244964782658561440207816697393640159759381842642687332662710814392507118501472988644420915259718235929759974200581354032646527383780616244317670082466526237992859073055786204781844040484883037129653029586256027767880586383953442849280834018991105855096152266654399388332204778329777832512829811286152723688479889412701379245660826032313417772648400162450915300582150428340030558518626772947962820403507504055643668120372553849790396348037803797405465041616502590795378696776338617816375710509360691057884470377799776079463134293517022770949455848602158184445902686263312218300921870363544270097301203497396364102724658867278305417492166985962110581478349008566360917224915714624768497133259240691016253262279627838499486298126303194355150709900990597736010419422145595156585869289053229393337401022672276735035637232325667005037969895241276314667859823461179412865511058896219605212883616263283787957373840876166554882165783904665120944955232243350190092836275585852548300008668682843825752550145233440459366091642806089140281829148626459394472662997456978927574117394571293558626601181485663612864529323049499645443388246989725397808292770818298248564231125985992818567238022490230697874979820664959769459954313601892685405929947017441517576484130637644869491535181901915434987418321223495083394499104202522454055397615016976847156947325983945696082861474284362094636284896087332670269292134738574386939875656699798819225123990997413537494471577064632236868843530748455066390223042164226849484707363983577977059296874835888232296487931660584245725819265772595544258099278587975492168817671386575051612786764232297519686103951903911113090164489948821116798490393267040496645555425716219018360145582340728339145519219872100432674589458349746067979630246744471150872826873972540454909596180395290325922597545234958103429917605893906675390810397015056518283041736762756409525400731090185254700510532423424819283979982413507977115279683165159108722039455298859929325400903764471544249845026876966845928756866873114084332175241829078213361389238300956149094773114998149012592058047361660413200781518142380832612674465665824884758401416549050621896138700349529815429123922014577241141107722998402891841869586135466816035433033204234922029818931639424732386867311654607538279712011934020547575884568781865205071377661626823105404885277330034991477926896386846197072598731489376920082387870182990073553984743378893245485499085041658364543177830205647553315166872877928415583446837122924577440404255764776471372018310261855087489259163105963587069621459925064900822879415034674330114696466452288819901916943512021771938602118314774436556329619692208375608075812695634166594872479176624936822459962501841286666003550915864564351845774313807735044382484757208045586037713245459037885985718504706134119337504762389318461700604737181018285756732865095627239554268644704670602256801059351407116043827758738952001659166982192465666325111741896437238330199278786535028285898423824124142910028313184663172540239503724359187959981432523538993761338780058185295886528399793654445862410930831285540160203079337079710245688482357791993588845075477641732684983760348592842416391948347984045469031531927995757832161962810561564759279657870906590067995836198825745326006930834007760007346376768658804715585212768179006422363835213708223971695355562089116250534823696494735285486668870688191365909446807089084527886667130137467316956565469416153658995586376944098858680340185392786585725316595501717005789120446752803974754636146882400287929157198808989446028598135477568986320147216173783978402666539925060646243936932859829708089253345439473136803113284839507977097551642282195732421792452271916310677978411813212826014640166141700843136034388884636509023380272174267044432974132826018508676539245914397804075375750272440758770714842079997834637007251531405897295720970235991858509847153352245091682664455197048811341968310086346565194702050844210553159408576152148890758464722583836642856679213487983828236468403240528172388630988843262268945562899196409027475427671946888666186860072089948637239709691481558671328318187535678294088981004617690139615588817116649544959552491883960122350159498921285059627045358862350085607046293691530486813744574252327296999532891957095349749038885123705953918164738262907420987252102018567440684074389756135292271149051933730585313340292831552446616855771144125458127714331882985391334125550694367574506304785073624116691201023057359426939839823610823989359514552919943598577046690642507428068845030083578197790442529458700891930614736717412450839792950954957092971551612145722356160812654621580146243404953106430627044319898523251102509373152911407394778814992314548668445901834377810377934150241220127205912909844132091048899003060239726268889943302547256693259870679492854694695587299194375739758945703466924621728070181520947694213674171021466213448537549263361387625972391052217719409935296053606670721300707950027617381066590650663900559423569734107904800424395927105781961512056266408582509317277800611550175567894886507923531002518865852461305183607983975439247333454094107287121974935646043189362320844242016803871275833530924090523557573900274389911943046103694314751596143357969468514833611916731119656119346355112344230473252425096091802487196749890489782975604055251740132067739748887900147291785942627926249639435457889803809859944799546618011685822620272505708835559350577359120697811320944533772718127129002880867807091144185141214573268880575334493314252366500835109992416125967493226197223483208115272817926001448591887997124214452715638735686897054765453969354081649323516942276924893056822046604328623217056737829757425607251113581206738099773572038359615053616896656482576597807655982772738988061911592597174104360168221926417007335474605873559803849008393277084821863987402294366167351809846367031953419347076631725292886312367557112007889429080393426985199087148963557894110395416592464189320782311199131472781467922039084809646555751369785854455897995675879875214914665275240346045640021313724987498726241223272105151167304021293663606874500095827109356903797158955743039683526545135823879015080747091364362170612403683836564542870531705750691815429236811932356518185701722192125229171244824938466433488705059311422084043352493748987480242973053662066724000460862084624043845187430139239592827436093451917378760043098892970619988674207328315938527310328165269322473238598939012851219331008053800302038691898801155641847321004853033911238380588639048659658347124156403512482672210637659402906689265622777990036660962135926456196747207212338453131789571648733009284806365840557795039101603649605485995301400919489568545811183521259312812126143218618748543979883192854570976774773015033492119977104551494612351918516453830815359694314798216731198797740238374189983520849544340436246185320541532474482094554625016824038421611616324372260828715630436687106418435467348550971550165182470790204623186238912628667921502779149947728840878850063135973580971062357077712224270252278242536576566722580241738806800615062408111693130216277605182667089540357688100574022958644167179536514443376582861022596727722296420401010390851208254520455311168242892332636285986767031548159600069940546553698766835129250245661501810188296346400551666300872720108698766876361368820331037683090909858221134103289982193538049271158549237285429401347954675100240609906353982665539627655793648942215734009190699742034130762818705792006684535026899143564006141718049938315564743762924783155608754105602665147857129769147354754010643658407149808932031602186055838701565718778165399623425440945160338878448728336702656112660013288000634681001013538521396730881567184154838635451406645542320910822017166720643194014678137069858192523715186598086651585279821418326663841803221897418121210029792543998531577827561323942036190110248428773124264949127054896036544326548349748626744212417119072376836493633769720006287754152571775425145898691162097086680846707127689895519974730582183435104849954471179674296189925945145009404672769226731749464437980911720816533953678237712112514076351515416293855151483327971458985281302339436107860083541082674959283651976065146202978972205348068824049854330569207261591277555356939392995035436914599303431541923353170425639913849487266539935622469528274519744570261233746325414013176056496133403717949360503683391114590806889868904188663501481493553987043741859063336329514738937043817598004337830324177324851196192525258576884747309364015279091975039798202249589377230373776138793462987108099588616602567222501053362143767151044048110723506040882595564461542714334823084213370505133090101195575898385032185534898882460717556161083684171002914208391967496955109915804645145728285411197948252077488732742031105711285998848153115408096115417891852218956039504342578578222600840155612166535029272965817839870757525804001475535106033308003224001069271713327371214447419218324701095568751616002198570390781963604188432615000823738291219971989715128776200676960493135119832070085431693272955049733239278578900279146760308994093154940187740640878822706929253516859186246118626946134553216248004469290576164069243687044985250853510201809163708535268609839703884413006184471900751787488458097983988273810993638988676653251437719389519946188711303867172947776048302350546573636684685295222132699052126719930634425269753894224170891545629114606838338991939065230933044321799179562028317240915670009782690243588307710756351445595262893196347094124851209779659672913968051624537714476288334616136335044271969333348759826127402202233519794283633316429027797915926735083743211273991892278659690958676887588519515402140293413222820116770266654168973616425363461377935290411622643521866309121685929476440858571698516304372543143161606892030948765191476605543478227392717741850992089293767803745760134552603373406639567139803780045104771721492452675746115263392362429631088343769519238378823447783386515318279199562918523384407716784962167260372855252201095269668914554290418065341162732885231295565036076874968850572901804130798381822159805233761876128138259351958303117740483483179409451957782892345655319726385389002347884690065395747112227538186195478065238468920242417567284764779223466627369815384130410590596512361070581285564170208718346894091951096030289919099156977701838560251105415486316773802319015523578980146837416590435159956549519150073873912565137567634908111142610879006914846145149684856132149900033231585186122984359062820869840674042711600812547840278000828303119435501805939759541384643146666628983199000194913344641855310827462216321512358737014113535710510118477621012818767719246948271570985304877808047832009887841224559141366249289180431063561441873616950630614001701012818537355251903360944767966582193349335467737089204684259111276362611293414251767134325140872589481105937732705362142628308812752535423580557492785488769166720558192096106932024776287277032481759695346789390390007900498069810953035410859251005378465548162681287259357246809884721317933909319459355743841036559495610400621106026409521240967481205641214530102654285935850883830595584629513809636221135257331605357500827466040415776680843702000447076374977429589406503307576027491405541885215454358230604874326373971305876413921585805969080652871827060860735922292989142403297374102446406444604985158361731439153100829842484834988076653544841372201145303294074849722526858289239741696461396544901503813039936661378527962202799386136453760965173085268287559723696543405195812423292339641439346612278285060639579579568348404412254401906752935974110222339810219482414387693650866122236602006125052675767590009019890499920615912718367006823154329930061069939337504094572478001752076757776101868025874008981244029919390751718084129336231340307070270652880887183530584078477743153352702532159903263776765528766865906677187066246810849073259178105256101289388474958742582929396888419414882695172123731768892030532859921026303048566986437502281599053421873424548514195479056548252334984735765211086199595010313539919550189268770451371920225696183143215186004969555613518717366826332963214656879065908478802546953455732909413625051101639124763792676051722145782606142484238694392329753165012467713501962121504927765498973068373410687400438762847261651390824132670229950071631284144862934909456821923290980327647802411088124105273173886303829447525626920890207767558270546549243165354745472771770420663525031555750691677586982259530512536217741338711992152899602203421269301708737721261790928317241282097683559791217714135966795301900813855440141544419896211068546561506240891681675146907944518513647662377649780167354499548944046377222315896165180425184221349558033568461596697398680703549419317665715985372156271251843536847698697348704859140210326697041830856546776048230510656966992733030534696454255518567719929184845119114997102110769251927816357046340858026008241271666247141987089188919447755412078985989065099726705313962733792360258893079479714874540927255808942295389780127616210330280941625094587916786739920757852958869565207753840080497469505949221364165173146859056401188096879173121240703799601140557340340575719760310011157789048662352099187137402055096671443550079646676062186647488154659322813114168178673809710672798413268793456627866816591510673713224906482820010541154980360622377960742240601023616934901015902345943997542987764816639727378167677040787493526595061256397610341952158540009265335198714290107428304490524154719072302909032310386968745805929150604452493335474783519325033640984076370756053994740541683926921244135856574815494154269140519270883456251342009599844909063309258471214543781698378981781039710476265041847799248700230601143647378886039710892492489977390759603703328747409805323037303322968049210088313508274911168325976886818289259986565705273636139737018940696231013091236117511300198910986672792497947535852468731791845092259204312659596094189099176425433334583245001905642799348385499071338735982764334050261894824099603229454722178356147103001097092497994428615836284443985440025398095020062285611879277573289853177541010635220149056192198061326252063026483997077256724440474782849872416028330228481261502934306337533883063943588254889428714764295190335852447202212808879797826508504158392423174052111699511155761226412497811523958122061753757610967951521195928613822618623549801581991234125345700643082864169549786474984304427391688085325290456319399007810260974687916480440695718797203120597303173758767023313185727905318801416155701408279861889519713512776956925154830089657252004930341480031028390496711493250103849295331213108995989166661664889307090364933728746929146773630552441267308755485801594589252682365842652255437665876101424784348166894232960837923516896434891967996534206452183466179770834275516462428276156545341945664368577477341426667084839519333235893453016569668698156427477262103209973939085669566494909763170437856337846414505345453183232490835684616005604424531605312981245173303945033679400554545397499061861399456545971502796017923788681858832979077224513763071897747826030544975452039573302395055116351832413927250466077426172941376551508766623878493694487450553787775775292244067718527422198456991163377217749285868370326032053871394254269115806904764406417729087025826013288096884138699542038658115069566874962044649365040969938313460312102700562349409129794978491865332833007140814889407977720552919518292095479598696655811679046439004564269504985866986971158783692466475685476452653746761771826224229917801649978961652136644595950771463768728688567485174576991931543825809908142089722948709079145552754610947322353417114881057589959261751723207072454708165229572281526918868578275107538107520911846685114667421288034039294227158772601874519468443780598362459990407416336788774869545880429902000149908973565907979745418322840349284805155778624226009640955123490894374824204817594515560675383689510661577600768233321462195029655186750770497403858754095885493612865831981500148070223619186578030001990016526267088439967332061084529629506512692249968031395034258871110815948652687936256344567570125184950975791035584365272275181335641422102598461258678787754231890061684513582231876831855740667563957804079113067435142471467476595636586168704320074250635440613817823087483032559764256550151311314715692575335765151528615849465548532825062685935849907860456369548725965883285606716922720165488753172094626261825318015325454229862317148527053332081153408070228076630381610408025958801626117953335390294299714202988758383064747502695643120988245325075990083945009692001776446808124971846025453801033120023545516393452181035395663900633559696289614936371662296261507828669655701919503853245148985308831374381344967124144020237804974082148658849487131780371331319976125199421178678916401747410208733064508664068606395773546676097658305831118031516816714402017392193113634772669203454575974420264176047053208912105976544040579092989895136595217719160076697726611513789554328703775818180076971217322810112441242530187613910494138371292562402606417127031158918148868540379176222288621304918653032256223255543104603487083887853963971647224011697545480689009324780659701722667878309174658892674103396697294188573559005037165883641495458182505013456049700457991435347096841352725588122830556233597533667098287322498574239220470710862595003599784631840547775371271224087063370232016824972265705168492784858643125407746807811809575821818133342960629291971011568839704991090489080009384154590380473127355250889379746100894906549620627065558772233232020924942506405025490493247870744472507921165360941711302506557137461879239616858396891609016533823483691961142346404888777227514855621783590690781414977104202378772223872915409438247619070824940049459493901924272792937211631048584622397088322608022042204966725023133706841055880711479734624563927575532164514890969460191718287420253794516253759494037620547186900639474280908254649638979599294573554173776010257425140981904720374508892935527436660885817773198990921995189308097084758558135366286175064300400934628722267488410917444393551235969177446439214058332863582452592947799535100162148783353077717843687930975744173063025776515345744987299992210479796897740984895590630813568769956159613935904520865422163997871594454018525854847611767650821710693430727192409512890832794477482420247459541023368131280271990794770552405564430105442916987654631432477746300925791384478780062274674469411611402854219693838118519126922847189733612276481802941919650121385026529914634752771991728071954765283609243544398551459597901983538412521256979046968613929131617381031669309002972445660337794783029522353364564296792664964112268600227966925335667055301267030300742023847751457545258380208628540956422147973273679316929827827335568673621990626729475009798132501566553684381149947228354665483698614958698941989368777873668191012595862097014344145592080946970170048084997798132465622715243423469224291623847168037766187413445620795032248476243022420310111118412138554967792339504758903726837708459818654705433491608994809367082586952268621468295307634254417756919658065845083694423310229087218809380646612013025041325433943695312946034661451857973537074178601193251916636653822056829622073444088866996893686012621159614253184432053376984084170426586303685404259161742637006104032131183205108385848767241763659715624734749391888131947806578304780671074529880769349991605483517435572386256815621469173015414243350623219123994385938742236426133644822153675714597952724945465526673669241769890774786981322559758838002681714509319860387115957646911478979058671186847217997737485670832032136782820792232112672392753959155639371112610173433256442515069652915008822768996327402282568562640859274190455170690554833328581611376495645382165369121317688921157574629881127401536521869887583396177181901631383156117780181969608463032072583364439757948387087253451925893088198040020911611539951009147572138512018142758652946036279912599447306299033452674256951716677881067647202287110013258408485716895711338385313478236118815757898147153554705828055055474316865747658771010351671396639062011944779507295513617528371789943217029842338566642830547201866223664018739673931590734865609389291532112383398329005929909271429073960500990975143060698431146926745561057972026526284839653789478562938830408304457820617726826475421449811686857842669979249984716920269824326366987864871296397299518883836633140015657289202536177099470906252061949622200299731328017804811125578239137598663674811034101498894720258860816501242982518906519552777027255158576210049633492995140476156233623232346387194747855013806870292124540727349871411302954053866340902088757048075004232883596177948833298370572310127019743152672452833453089369321055215860198767155043747920070439973772367743923135009166435463528238082418047007789161781247355995202371682778068725077956471445468665467539901775954558821201654999313234448099966110125983632206625059632608664238793858517412945251373952807491563949436330673540582373203549883037638123632370019249645814170924750406897838681359233454328858618124424859130839998367786236346998688726287454440231830301635624049319730308950142097478675064063583264681788424236038943567375176109962438542186854869863783478147025256753011538149684580919743339916623912612205260132856964666789466482338202012092276559071614430869319822989171411863338108561732681233911929449102562283010876375756785857525721620193222025141045263365136242215382163499925813628260299488982386521689396786108225124317167840353067807138600382494255442938871252168230112095813259173790972886323329439196160761242178318410292625587254711689465571953248455227800396320350061280293032217987878293298008207658116142931164931239831348400416306682967959825301474447409088318429400701855166430635887393818669761326579253723768048024960155692812910199754282952584913201077649564492209559012834280614550719702527864349118126908390702862155854563446866570467430945092074944674321592447330405239941828683257832793475052762246707964138776617380963123081755430093620905067900098797887785184525616514331954560195887310763001207091578792056378252717108770078947259395510834737218302862243353832556817618003767395374341840539188852487756292958962028928275388634934770541217507632191758924439800828263350513440561673551893159585409661755363171869234685453408733294054641820806916263859226051817393524878437348145023691060059033174288474550652021441057030998389860287924663579547886264784885495054152397302415542071182246405805762331596132167173741326752260473865386565147790126606300058575798924659410335171756923993191732080062200488586405839447886829772875489565285169151424301129417815254310713071937199174192785907812010466856419803619435122120849524026491169242616526779649529297711133309994789378207200133776712660069925315766914999538511885060397551288019164145426691004482145759358834937138538483363618571731674980507817727708643285275960752380537899131192888135470227737295547116877685508267749118810520406831783018455902730323738169670986055883104503730333589324426521526880527795755228352010179493738982556133168586831296386209036115722019111094761442616690652465854404865566206468821515291612909420480515961351422985888496939262693635466840825409950006641404780323761887271623903488663251088838121976527957895131247901506450296649160390802501712362283759761550282380359774035780693006398966114489397627121888496686591579304480469325195998377664011098574774372405416041822139800422220151967950396217071100588476835499180203145988760800369034914483780368798030425264375128947244722865544973198146391242116194196070837813257613258052178980887903321027895425556505266295983543974234711013594223095531779746306799192757801629974922454949188884064294878204143258394518992942204094629827387586717070479866025137960441035106514877498855578907348863568168131916970956408068569516345619137547829317842644913834317315522763217590322894476107448541252616083392948637827563547447069269623095453998106469235616892071867402109879501461429544601670984309907357432625578385224660903214216192207591766740435286342282992860044462401183722348891412785636352731574872657785915073428403611815576168293297408863057909405241401997945833516734990756299839145891578880374146551288159621609794451573393006853896667888677069443012345821692006521418390865824186575243631872316133911602578494029656343119666079084916993343368155644457505126127958783389795332617310947943242887618390673721483329206892952490239359097358955212605014872696681496671903565701925304515203509178149561100380128845655406897107916918821700089250006166039057874976540030195111385346664676583341503976404896165671209233267197409062347165356310124510644271858778889801253572214608171423037870358789792506187548809730095124844004056263059652751505097674663726486090205192778588983482918797581430802613944786629560946504503304570928774284069787287935758238760109866863434359912282909269719304612452727139433366986640378698031753297672442782178092189224350838568326681033547492557864077228673238810883583648332629518694313205716760876798253369739284238171150962007451136220389427459877870270310566115574448644704360165107855556766383479948162728015121719829540189671903093055765016616243304755145786487543513971377808638940951188133932551897023626177283850095471585229696381617884456623422589827484586756565586886749148992278641661056014486730037246877873087889367447424611873030178100635356354890378183101050716865501429637873234821975070394282099906302915866620278951473603618421733148400707079546648075410321631326701246532594267357718833838611285751316075225360330934400056002370223838668680958532410086941567555486526755976316196722252314194678464639565208484332153662027699115495929433332132185537579493636856757691564256905745944843231496573434201330473794041258176920176769519148113215141814799013792814952696845822068671486817079527172407156028341718459888051346788552076808864731687210222707856825477391584226485304033934014842120648301196843401420197537403158879051528697013635169759787695287950582250081082469274010276428552987015650938920725166444320311093280915284389293815467610937151976915207264785831778628182486942553525527824548501131454188643233745728026586563112298270549101649150118962756340198263861647131944942786444666122593473620096864264751405825810115412605871316983964579842660646976949904932787678650099062647569532523832451636308271693538616660314925162187787725520622651471936133036726781326088462563049156167939026675163151353090792606940364990317194669838169529501571146592306372164140933358554526733739742069314394428015605223866802680752212820422406154650668606594963132030619681462525047079860512206167337334907392164531433183029488097282022595957985956008428091696766054516599585190031896312672676804445430523262876723800551979459667995585269027570776029239815457336735330918063698027696595098663974878605600136299389171753045638750240773024017352273741965505814785481857347603750261146779997398937964441136331767001546209335417913275105285373640456130926598773446477390504709925106776421239026408732413834245994564273814833290308837262268316149986686133917918624027856052841928650362650993109333000191438233915821217504788896164279052307372898614123537154801655291268510910864154139757807024653697097648422029224816337918947722514581122836618845899968633899887158712749685149476425826694253441206247170219011505823869578287222390543059711459138148389858538227485611043449872482777250141571222295705517744858677451097470562561260450326769544775866372136506577294654107503524971364858864068202632631731376885179024537853311414074775144674299775334860506158807431561296388753303319054784981203933866555625543417450931361837906626628457525444495425423290283020187530019301435258370954491881659339575619957204761469169029176607161565372054012907577628278704948672341479392380310357100990367301329901701332910829928200554409859848264356807991880982616652275880602063126163971058091674869141141181628330930308448225462895508761001615014474703559090526190186034837799323104604195557004532944826613479307708759973230822962803022304835342382941829867197638838517450992297858053076899128367167519112755162262012099119386520872323336770540006229930239087288978674808296773183829194939693640488791677707704364223719832223781234168189239025597144026613190754016346055495699423051944061423420336712903963517842072558717704696695475112688282560413581983963981570451252779026972367327225766807382487196561532920023369995007074495860335481891290994062864911057386959720957564502827652655812590652445313230130362980123170068002143365886515399170240569279006476781268917823733346441175839272664673065489456634821143128524408930622289858066882692111521929058617260973267322151827192249636989782820760225887620258687430739654640168927965799083965493584395597124941159250012790920813506522931095092128446009282650348853361061742810620594848844929589609694956474322137858476123424238380303784413377505260573076868348237811503896840868037033800468810582054271043422900341923229568540503871147966005630046763856505573351855481061042472214537851872916643678216794044383558252099618246845991504121545436217459294663542208805238407244195409578824754465124459330729598613705299447661178342765294434951666830755448287945987402639089634931245565578605353584165874743090877343617155975840106137385266302869326447230681702294520553049869763925983023044531985341170858154017814933163160306722342976516726236861757369376224124866348782041695541136865008844691423861215821108439995790206083577743735882658048183037972524749701356708533633854926407890568462065871797916498575321968525042960961688733120346905228736855356341473094853723090293189389191732029186086218681052634685488029712223390178331742705296996238259528325609432083296570203528124222275706872811379067257951856257837507480116115032180658898220195520275174883181630577413580327132223536402975898900516308311142481845917815009463626307158149383121622732450091347667242094135170943191044168853446822441484388497624339822758751842372793086843031376667986726569647416842398850657532142112214638285669019322981949156725969241368463001029291124609163800877793368738515224541290722829447070361189755547191620017325701420060496722049807817563878483719934355601361804757143991663775109918972512016384742516470794147133237579508529554018313424329072998721434879526330832854935322726596215971663621783297216107994780954513211195344190907473345835632785754504598707895453350477461512648393077308041560306392704983089745465079592295180226687878177389425194780710113238191006031232367358683967462784334212245920213542735740847618797542319357018520381789442958626831042279172940256132609239802535230260103793053443633142113166796586767821625664959485373754348442954476931776825211796053200521268671206371294142060267368576929263096966133809307331572009671516162343762832167026315826888668209798397450627442797111126840926109703962852567555625889011618188698074388944431779301191090679841396369606942522650758705272630020119356010322835852342947675495355446165603525135059764467158378474817121169509741305657504615326599520124109828887061567793724582903125131016274459095608088362280953114205586183066561277864749752434615947471833620495644838057931566896625545201311503874849992173888797189048114351099970634459905918304425330103913671421165451625530513373742488044081301945310562077354006506253034487510754125603624284192877387314603236487974229573201440458952854889661230720545629492430463716132689239895999035881740122220485881248539839917732928284139761190507727974930836591062132538666944821182877690480511745902021503545176161379242163277928250091071936865436551149680781397640836349197111359878621039242231636904432463516078187459798583662914802782525373080856539918353199463662128877226617100308150082406928345271932471712107270617198946800979259885028895641824818863841967880537695379640920695784081035127140943811225958314125030117782907978909279223453508977114282691699393775904679115877369761156054488767606531622881220733184585323545760638728649489341623231637743764351003881078840897197961816982607541411697003127725132321523128892878081750656281886752778129227695945237587842210396944037971196195810390574719858157918260054299218969868131812407347960159204918519587611692717104650912819024041827090319336370191296327887044687116066052984415657716500650589919336933125664707553401018420916608508841424938712603077241167984182146704120283263910493512684116984934285416238172292635813832295719029005538992537205917314910544601404982363795323338938056409185041672923954129364454396288830333385925065572682764646771130871497219312795599994987230466576683272073323841528576957834128707065258774944255443166571073112006211208492320513939011369928530406662514027479917539525934004012354435870011891932104908409375368199039068541651292321836338324534789304744181082276628150911245670971983439261089077630183408320485191937847307576105965469680896671492827012950973524428678120676150061770175530303643553107435679783647241781859829818401447459681165091943526444369447132403831599456958273442558042020763036858156989731553479376022758155052410075759148910903457844519887384697196290362894910499957774145426428079702197209644549255258098057171365855211631728385338852389842983318180111370004912104292224861274446623613395680209645750295072605342521653310685420544667880380366029274499494445068382685450553109123735036307196257482612695165928242796487300700392897526215280061055350969085162511493362581201819127804967140371024017546615192394638730842231691145917440290050027806228511206744836824029108843912158929001352501782368137327259370289260930487873547699660217073736095731196403585403732004131831953225470355307029268909652047593351119734988629756330180535875816818466407211205077077570215784000919350150303099545517027587109453937384925264147721295836075089366346858067056701974749275368347238242551217528023471182104083640531022371450656033113696879127361431844665746146943815583079824890324182340314033721270585010850140413063981297626966386198221389129306433109281513730152741145789364529711891884769437426281788709043777012673885950265537553501591402535612647617632125917182944890242096357263401568700319686978554861269999513817596868685316065283510881695715982958257515114565723532588565953918499465552105466105637102437176761043437222659968329462353190156135202893831234840756343664736032887819509446216991880361887972553863131877192314510877938441704670554413059120894673620760075814634645012044205851929890613471026144839690198472957241020173870401275662563862702271436245762648084334049073715728754215252337640427702228881243074859996054404302725277042850064631947855187458386162850504727489303271904620746536699532767110225437898973180758512508380773603753317499284953279812430382951571812030701722470273421074262385736692576867728771779110573786637571829772347606144742979880004108423458305592215659110310692810044329599329985199848174476956014187566173791233638983920254626388596677401597914336614859123933605229188872961972849363932277362648854655499385399415967312327514483646967116123183439753361511046489413433298178119262485925226171279072583935632099164755910241686108987415224044291357372050234128975975004663850065757379386338549835718231247648674250693453976381599752900044948546327591147512498229885665426958463825274291639007295828885694283737020343561265839993360603172540420265690523536969003149879506911778783263541086444274855100808536430299784373799850664679622353011845009586439803328146152649293841326927491649054605765210974247853126978997084760128349326000498983902693196855796540147551237198286476942143415341680494023923840061670451876176099065593081184835667200359326141956558698994182317108923461825061810699088425171268239060894136679254638320605874800494696040187838480510708337259838119339002619739532860514602005953846238499242407826891845295489981510243559613769014256150175238181820825228319609306947296447516062958458428372637314467272290601290074148214014552163724974356983439659600730422134859651838845360878927346288859783643232007525621308964661169147236474956032908322346132379358133172393223118178136393156863906972407070728292147087852035250139328764914546925002151211594144607826171984151340889547222188771858069758569314640457878546072725935633974091070189306310616116166310937579755279563780907228042420738660908645047870994880201195389550673353960924781411933969738141052764162997128601519567630611992166547238336281027209136914620146168615003374305619170607604083345129485977740156183612122248964894539772686670842216548232041604944909499422742950067936453719706035373802747959242132744307939337035315445476794394109692909931218604718101155217732977651929399102910650358002081794244988720026953215478175587352825892548757032429569891715590601240319304170550704287279636887220871626089950173336967335659490104456468426212012964736190634476537493144884641091311893736874801007590404901823829693216651785293581765388900052001950907010051998055548824815088741651181418405571191208957049360189165381266792601419007237776072144992244920412307015015258520069104566873717449745469192790398881872304237804064272893526990812732439441603397343936322856164524571707696694843570737769144678509695321880962907610492815356907340549246742828589860077650769130590515379755159874024758222330498799041826274591924940056326044067508783677838855031655601229021031332934119634467399731940876780305260665554174387124081860153249118195975428657819874977977309018092211720433731535049825133598285552151003355926570193366079542819160089921464090893025926255621992908002980939644288551776352404009547341626974593073472205779949694569335769418374851825048272895319418280082487819667093314806705964296013765574643573396891431039447881962229100930603852001599226959329859599947979313648410407936281993852185067375419096624949517981028376323840180519291956218988243638396223504213786254563391457618539497461989635845602660314913072685552828025163170161492719668501051075140746940950448622692255953122050117180701028251442311076505377657097170290668018418349244246065052041450033554971232888545637107283856517858106239466964731840758946367858701982659267527355199424155937043562699996818203683368932139680669107030137917480595551885699910781477692310102117322010678384894152855874595697583235004053755253666502746763879151036540829304638245616490255170496114653464386462021495305837034407266117222976712954503593037299760182705687973720416935808901984252607771355574759430783544579195871934023163398194525096411715272657775039093841101069383733447959754184208259219839449134823773976112570388619128604306232501184887012544433122604196227365464532127777941668351047738427220816301854325037060999278113729168510155119916332110735728621330709525356650013993399890010843831980569263469692784075354344030999363204148465195059344317539159163985467960664775072603864593545589539036483275335095244683898790483717919428445500141581593624383087765292453941133449868568347326526660622771222881359226544187070525701107421868393954257065639294219424883469906992752144830193613616115838440358357613458379379164381287238571462028750518525311968332601208645756593980873729102130320186946555969023750290345689182390242790689532239256959122698757533620361389765804813905319318250387781051079659413014688800325992851151035565747267394221940202082507318676717223241699408477171741033548648775531651368877304080251247392739814786497312611683674366055238443633943731285368403214393721196798325789902259773936664570040412592499413972816939689347315968988476720176824501255669947358592035567696624611165523880184768142294579847699794022587586013306467492684438847494400317722561766689617634482490335099672501704626101210452017534017191055449943204294167102687474996315532878608110868111188166546059241424850761210955009586756989886058616156037443318509392503180200592528239875009940938151821210182317899285455187380886739372992339708881249166400425268903299392064841849271006578234914741370404149396086108368807995367754972818578984627236629842478546043772803706133632959336100457323614125833027103380898631344795280712144520199809550487152724212334666948776967034901986758139805654844271342966440872416446598662773922833562926741764045431606950666619546084392400082739366621025552155285321744383761422679003537752552899058740439875298430121012871159490264086961726164314500406851247644176890784451138671262349195468373970943429909075848329841361848091259759007548189623985632942805873606310094377927855277952905393196382652812999253738202648555114520540417224413361229484953750158358966740973083244596018163389004743444274152319172435418216059097112175507312653064237238995426283947773142907364788775551565871474475148088531512228845646175397822248673796246693239829025477559704550976239019186258167366927218090053267256377555468220732081543828826802541133245645295523387524179044180846107171594885626381736261981159423482780203641765030032750214387004499345700904232029804090943595018920851015015418154240164740314999940267161207472945711613519842899041866938114200135322080265065424088910889094139627326381986496150943193529295731738949503915479823154402108229298997972439606036507050268696080181883629449595651257711035051418411470614192821190202121623428147178644069380290966737571502027877791065854657403027800207811578213881728840318106751261657883448180034457518754540348666593320083979946574913520072848134742712816135210420449995393325885379775906053217313065984124309692381325426284188060329909621123112625206234971187242297601052502082697352391346958598960221681929147517675484789114325001801088524193972004404614104985394822705096442928208535366532210112843611170640153134635792927183906234550918126964738501909045793050390834863863402899665923161555138456396232510877466943619731625860971561999953249277790497418723414172548300353023434463404731978274509178601106415366504431073402003763163606579831818051123246408577568299365239993637050419929999553213828715414124732208174021794213833784934961112875760314284914682101843596237178397376974996221223006743326020893608557839155077617598675708982387372903710838830472550029554451398493517255909503819163205144493845863264637305225063104527620721003747171574505448426056925390106669709886071599022206799712135458383264930727499108667531206341406168073745939786077755485322399677515524696978988774859642165790100646529129437734992745082417871180837971368903275823584030447348545628991899057492827994507568647462766083753924074825828481563031184743998511178149700419264041042854236173423700021192742483475640662758427037191408828883690704977610474400056680381790937992909983340248941974249452718851565165226812460057527169471022567745738120561364013823538263389557917914240085259800954807834431119230953367806782273108275272469553306792390247638997681508718370404409198050364210574439570342881338429138359332761077736849217124233530366231875882042502193790046797850827648156677812965282431956711282577839787234761713031113011651782668625822267268185525357406870470949813087754890979798138354076953219768290586596218040560699309392103738677484209371125337302334211067305916635197960575482254355606755422043634756301759736583437009911168270051997563223322023265919526357534169609843481578172524498435630187603831630638338709091908913503293941777451015665981653957715720360508248649739063437966396840321810401895110411140884993988388924443781396309590961406963513655478328514956671108009426089967916222739494600337630337125733749927609636873727621920462582684547463944035073696783422204310827635927007476226187619803778830857265777469846459546385412381639792157775941793947805475432169293547925286184292614607781965729078993165439006676159986303419515695915077848646032425631674398973953164516541884611949071866410621369756665417250698399651378066565170949562749674165407592107890506783373007731863954127987860606845250442598061086721136983413770065787822515133198100437693403786792191598631734339600581412009550144189158680091880821502106034829515606505445460167994825771119389527026094175571202650475556157514925996359921567998508988531464295588623201343042808513875526076591918444825809178102169337042369958576521625263895506968829502233976544508263328913668538937633771641627076651198250751091546444966650658445321135807855170540364034859128541311828588813472018086977314879688813648797740358435381281630608312549439417830002740565843229047568226682821530450946890884199811973540936878991764464733119045695516352960224739958546893052395318084042570951572490861993848265873404970252201406615743360926798394233585251820662608822839809889388370177124424599164581224788098725471067670604798603889793944927166113548747863582899705850696516933041415506132122650444376289636290031841675579111734296645717850109894687297469596726255250831656283056606843842240062919995269140942680386414258722709997654383264835275626511524025623727963595756507877230544788971465936391296135408811369807296762811367897686965549051766215847738908486057056030295046079658843015407988550704424919580316309868465184383689080461968285239086310126343869909920671136219276634342830048346020514676084435196524724502210150761770038303914468369807886207538560274986553969367430250664253722541276270514404645733513761155642024215864875524005340841404099894596576961760332354910883351078798156676963148208320251267125333606449085030024814220634728314262503314245514773581571864337845847697049603727963006835855771393150375060021199422455380824424760639013610920231338332595920246031036953913062065660192972763277456596775012950894677274846632384777777447991940869337254387333068340797726568672561701218658515669603458604713499211886999941908452832690533978620422781922428715153778264865588117970662188108865664699453122905225616022024332560240700542550988010762198220857905257963612788735510365436622674963074156894379655669651960028075406575102895286684301212960079827335429915231573934502588923556661009463909138844487679457091941660898506969414095336017601872752828327675977454950805602949767121943290892147833761389842202008622260703418093387670989816856067362485396098553550081274435939975512737008036400044243002906923685561285614536766431591693817257500131666274911711926855076521955979512440106239455610292870685551622378847529744415806517987206713013602331519302898722951515423892701226222216886845047619859343149003326604535098677324087315329980516326179335825157819164473458858505340712975984499384908892838679905580624561870769044941623071460356061756623128285583018605430739473589037764812992521218594255998802304703827000474553573350730039736651549144358933289926817480481617641994771828617853629614264208576032474414986335137909726413079490814275524579984221975871331996136733960648180817943253798658460983809938689800441993224252097076245843522282020172830477103306379415600374578125119407730799315966583930947300453558356711564320465815813929557927746823637430113148336873230279838193961011450905464969182572251954528302252541625941257884272092159617661458473783520437244918215866035580018920013365066070793517808051470097952750976784525458684505592025992725562209206358992779075461956784375551019141066657589204215187065269846848652362820707090707372354197168108030429010763791851969316582623600044069418286064101576989353758392635240758394222988241053179536845971956065332966181887617025748071432969337122699394099422377105322594967521733510716559982904416129766750548218139166566018906029917416685289128353366358002245285973615191420760458697130023280764123067906455990309503363058687989396978249237460555984370308187958061647579525107389704196111476597848159430827766360122910841852652641941743123938733865593653581764716278814318161427571434450360945422053182900998972919355053751122706374464690923705149997877058650955205949976305784233909290456939023003059670559393237586200399210033759595453336545691123693369621953043342605598999243566474110549263950511582641863324740414920213143803909425220429697041662329570264356353728480690044562989001489571835462727163802919373351815441287079788412838658796041274430615888827441074297851922423170235673540368845785881815128589553253162309793859313797076874070239718621372346492295307419307320294274510431133015253442753475756175355360415290013979476994848661973572552572309339240365135672629726223322109757359785015433275832647770643050777177821639477276287452795062548673140363996884766068739851219760690245166409730501185841251999001099275145649371904931994912189028589200203601012867567932586466820037474696594970589720969384802721175937191413329457110672848117537699942642796806509267054891333302288508067697484271517260302490094068546287753555162283742798041945436752477533457249418927235918015680617754960067922740894398504460919655137105249717845678318592803845782590560731685684696162942107050086737410247356166351608197682002589702886698246844901155029757092524258773098937734423239201147667115841759437414423153767106512870208557870063569085301895185980921614274254049181937537303793199823357842422592856526562413501026881355696840215716847436208110922247987674658019652676138559930441116704380294748107029705589372638328744469698549315194429366156066790490866997235657790081509188680710057124095320514411856208662160726430816640923961695654174477632219246728877554963056456600529216334792304824200805658364898265288570250554877459007772118362933167295952597653822204964134116837084412900359415567262485239807824926352745067115288276683342700749048889891371720851164107868925907140462314421960872282522632232099312659411153514787814447783860226073282120367556434116218282538455644807522623768618567669018033227327172181660318390348663304050496297879489992318226388500654496064414560460873617912760662039434925159352824546397943875064898811645425246955934114905115345538381551381855716307933186209080755717125174667461321581492860823210392199154271202893389775812683128808229694425590953496925732724791403794764142317174716814054439855688296002306894511533153493353953740002467732880113290536020094664156281057356555815784425564107612059351525642757175139010541207400968317931169773874468520577700864072565083237510650455366435221448260503141710807921736904529896039988145128956750423419694226390006791893278654862918519360804747256706265688284689105810414641054698480284242568385603671422906724539521038966396594007971566149335398542581783103580264493208070041002558077639739913934821830494997749943657160399308560768302934532311598687282176651694386639235200820411162263700136863111596058024621674766301563383256604470941741820844991263857820589112804719824617452686896765921696890636005639871623694607891673138533881415937580322520497684524054602209614544687553871658392241877585117263373169408669917473945663645719178622166281196725599551585488207913351922442119850046605900018039081147074085712288976466955881400117135216717494091377437702844599168605416600662689956837848609151991274946432196015059540524629809000347775722680461206341112205761740481832765902634420531771220770431051171088010243662341569122447969854441796987711557129204630696948120616000486627384311853441554996871157632701248242153169552757464039801402955203498275448941514817657530037619739593189378209944917649630534332445154499437608285048367705170019556585658369321552779550971657540623243218016122791542081914109413178237875754020667249552454823070468313291196219264886538741292112880213980552705265571577188685300564780899241974967143632836793600401982371291563890677439403677598441730419490886943790426742007350464124653403736204403565565499088252728798551430301048527198871530336450541510879557700726850924100451657845019172949932678638184428420106716377353835415057054992546952154726172946536355596469143302512643391251836399511045800977628381909944371007577477749775494530401126681729719820996628266327694132776063482409541133929580744981163916811757632710465923295794784810103083918525096411624808094267434683918046211263893201922478327001550579687235884730270819852245222009987938744583875162663058738665270033240522166217631676903565437898455402325920134488794342643511652593417952999424980302009968778049130469231261064896332237330012526390805231729703061367206814906101474084244766810850127140975476730995298765262902147969135333770492560804304103157412176277224356638245200308827917964951000412154833406465569120851151117433878358352177340386961670777105608281552274698732843411053042400458590881958679730792760738764821146366602066165762620976963463420017032565570452601535043958295352748782813551347585748381432474280553326800208104081319374152225534652566229862185889300697521456724283917487936367546473830859255478952987767104048950233936624728457648964625716673728360876964064203269032750654627729561765959648541853433130660963904826990483097771846680973147474360948024375568142767502745736046901381485388271350038889402583660510484053411589378552991230183869320808202871765759834081063882111781337212761203461079618411995223994466552817746492758575888154347786159974660069363689432289925284005988420492398590595167918697736868888590729708940295130347215051493763183356632571645656095027943773658477682227792979700199541670096145297360879272315438109874098372393027722007360517049779586178263936113357807642719919302604567364815339436276554525299270532157840204358622366061096016657299277180399959138369117635327383109836392188151557367290698038388319944936629227358824823801565649479529824300941227814895095661134554355576622778028039569936686736089192059493072855229036989960302667952333492980706768858191478151606839138592601288864894300332460823416007653286695219850268695297517656762957348802824680989091411390057456062359124889188078262825779313334576664053826049941777760245204355551768769761032431227675034942930663795582392920506080367254662568628452171576873793766938193004430038774536911958200280779741162256241869607455423868581505302905738626888122035972174124472898792615433653806901131595137494032053389219148120836403335289715154474393845372605931700903238360519674161651877270633960201880055831765533222466681129311993204480735492813142827383452962351018848647268668262320334159554271443934781568900086069157489498686900495859218716528025936924413284943942170848102326904017651751928582457419223575595772288917405262397716505280252459819300148192186027294291952932183824401230785245750506011916618987740385747792380243685179596684908161414645049902040038269391103695367392883145743504025608301509045488773855136170846851310473672016895226957112202687716447479729734965267939190956783824772268077656620774550955616359601751179438755273491278108113652041979186813343941329653314206543994149460711083290161944411589208719027048450122100309534220607050882124394837774481087619800916464427704951602133065652390699188294650210934741965500666785535316809134687129468450411890291723746916914903927947360661812608634696616539846792635965732138974670528066263002183104059104953389704506194400729468618663123041332045221310000041380734593298377683665941363758963826277411187776162826415179267651778174367595001091876888326760618752507855278165338812586019668193346145296568009197819744892488209053621106897655862760678930611617253330147309650628542905987560304046714016862382165070346081570403501882383524651122741359423143381441825573528559611781413101935467272614841525100227693173865096641628340562480576051467765567920393307256217670122680709802326713390143941355997171836126447850865769223159321735647876354252210235345948737900480525274586667173483062201948495237109597861386153926539587976077148379494322552039417737412818234277680234232818894773265696687030484771892948569183725033173423522300942760785418854778249238787869301588525488375528505171420392886430879798016650917301115670000703281887915127168947681156535143088704248841622912754095218055446516453464291119035991197821951166489862358616451714886634535045297061951596194623983254591859713978796335320467656978882845470328936276207759335586404639195235832480245794411307292322206566986060627080266201035728299184824591961671826252039064918800791013953890502295672843565947335977287334909257316287488239843486758374076845658859331761486295153221590718554266958769216466139304974992967415346603195061527757011835247729081611347844052388510924715172332959383163029746503452712057378102366189670343548415579635497048525007760414930156076021245387776549713098415303122058440956816119676079174471933588304501715032166792304914558653049180922533304490758417433085147959280484672424842497223091985538430850864458515438172080286097175224713416210522346372396699641105860393425813403178266237699704546552692635491873483303352083365641645724238705147904976046062942514238214646741756834033878636563618447075578490202035756428844646465996647055143203106750530655936409354433251290487318781310319536840465830963026034874974831362453404312842049533584053526002392378736507675700716587195853153977750458840082492945114858811796967976887798260615087547599287606531308970965697157144909423009950916837879614861519098715611060286151147819386367612774452479262709938918054252007423156411138591793220879675718437004668636305978032037264754343814335081388248204480413695859929278438868119145060575114400187360651867879972644113344329912721006019251886973449487340588593036416680263077307300832132413428495050564971449660998481208816757833668109384716094404578885819611687125088399702252794261825430263254152282240580124303236528823602679196623353100732199461001771110569319662986655272795068081992096092313439774652456309621436287511748144537203429878224502823648271841129028827977677217947780513592672474196982901462092568051193515790419097051656600911472751096041157977123989428284091299040640215844004392978337024929305191860341512780902738312992941327201990536697811860832383061401394100976126358077891112498964818585425402923251595815741538856133587799861770029989424562155682371665547975861444041855995927923790900272940366938872226809390662793653998463622101496524710415617586035103651873667700591281432650115687108623555254834909149989775723869831483314712259182787718192373475689551266362821604470830217858577572696160389035978954452695715455932862843900070933609709398746675209040433198928690039537784026891492887033605134928302569909349084543656699282064224302518744551271672419028707594811076188438219011003150653846972839698775738421633350250174851753602791037189706091025176650566504573490550504305096705968632349491436819301107375374832192567456145742804801416248513772521788792475342770201689966827561071698478568026393080688791263955785429016312808903751340990827876872580107844750959267150756143930803828582222255597149695799501199780792264594540052226417664617689460406359747363027797742210584154192352285252233960313872151738082542549264613782627186372843240147491787326339840100028240066608807284915678513907601465164296031081136704728089858276301942189798738884192341390802337288426100046496856282157303012514629521403700325822091293534444134907153210464356158100113618039072597606456899525133645362164163476533836113456502468751286874783928823569489703511734821346073103371735324496104248767883538450917056599706602097088683187957472777127133258918225060269294914138495654986870412525158177357282735702965987540746463989683962010259712472716596941387961641769847840491597243783050292865271735472062203723659017039501179060669542246615790553436737011249382056356002119922626326545716444981557892738423331401862106971011161496302300462278540773317710095219815252122554542293001812476271682933461134087633766952645055843286036875859193783055403941377671858493060471081746486107115876500521730254010263192225590647956848996046326013480723644646382020732574407965259476256916845340069032756637488711629432717791025927790275668867703992222718522302602135260996080446781610224487922853381108984522061103062252350705023736849609235544874937638588653709436691160861260490203477271157888658162580543588217236636861720267859722096588543304703511247879051149400672799723405983487285820250993295632426861758452583561005892955881643044308033150669974201053088913491100943262358898746872790372891352679785241099932828565544063308516782921209934787401775205880184396912667758808955382528711557381659277405629246456560523073273655852268980238406488632144431310340863437602459096170964842566614083608257297685307308203089397370937486473582999356130743598934816247764888835115355745097038365868771860841407037087732453883399922424309099278324342792743772011974998961880829207412061389015496242185785240154466644091759294774436648762836516610648613447119462930129993032518495892772331248349823374974106887759781831922038593588243086345558458576388075323712189832150886649721787770847756152383502969162187395682995946250594681534225113472600840968163524855288706237716815815887225725650660860749875763508583457723896131016551875186513730749008123069729755156514222318967876975597596266278055958939994036529374206172872452474733903684067992185424383790127569745957523796990708001184746505117167080781370067815053065210070559085486082949805486209760423338249603966912795749013439540520959149677396328781974022180239854735195052005261512205030787975143768794622857968875881231372545701523954783768916643442196377024358117010451044688674554506134529113262741217282045773753025923389940368557443999224156629778792079959121691669038897088799338196400106210246332390128141613993694410949438756445522711738622161432033886879961111393277945459577090501331446522344885768674087057236367342968312627388622409601327426400721389412750469082123442336465589877228297944410138395552994721553732320779990431328337505258734271697119611037254901461901224517337182735367793681383426178758762736008274005189039522784853395670216944812799998798416862717330107878087131241164447385855746921086721631184712354868652727579640343284517437768691433815608180181966675155239475593109911580729466937473456645183620075968404303169269455554186231932138795052823052116368352869850163582130777421483193228189249758092609304910172773410022041044333565039399160390474127439486822878449243362871796330776317026273558724900547374729585522361045584589527684754117195495911368759244941592668783213430772865657441250599571103527042248162918361757110039014675632878602605549708575502286717467809323915222577073811111949661143324682527563281385409262718934969557930568718673207088081211446588013568004161533794173207553475646386565238913150116657918978521055531011682648294431940834781944356862067655054448783176836717915365819878494198054341171766635511830509904833387215016392124505655397669489679231481395775572863683801366058476284818750379042147572072475836789639081295968985578082192092811529687779104463854480081007636513326597379589017536072908516792301650065025384868734649576091066523819220167969599294632093069991495000866146150234982740948060451184773733943667214940541919971201345069311802501023432708832367074135924503223050550751657049317296964715558229765003647925419244435560515895250735411000440711912033650280769824405917007006176691620627748905342295786576745326853010403625303499123874242310561273428835935072302529032393450951350717231119231578796882283974147484572475470525357501474930388909803981969149438030465602660860006458412276561093113203224505055281933895680891785069818453777730664173228522242837603380288214778655613080033440593109970305535238246029594632619764483990473565216805128213139005884622517208372789728238236938923726025333852598124312598930591004593472225468240404454588896782167864534235138347054423612838261771479310788058978095941878138696617140563099587311641851231963289423234305444106021441420596727712010561513373258628224321028367284621376000906443701874903630531563212626261112211122931505804380191001656737627715342969320596629881609031261005249371632698042429488943521100327741821307127456226269342241607523560118719376879380383693731790666589337419219461256995328048105822468546829513559642895561673501924907172382770513934743247209163994198431704957040205970883782090661555658104588836382820985845438891634297771263833678575291910391822086341736206760502321024145016805358784924778828544120018013031665951355285136871158432649875589322038458674962173772696336398963884864970469246225437526289587140141540434544570320986736973441727510901945647127026069174231872059809182499450953885560145207256221669532051846053900259034248938148004391281367481414135759549467880903884598641629189623112251628771425982854288263028431305797691684699580916944180737483100296037473600139866026239786600083392822271379394401984611179852819625394022066715372043982033533981340572101412341710718511096712390391923735143838922336800064147822252781816776695470855126443303362362864076153859057760320619151354423198336756876814935668595903647573521562683436335688942577741075704783277095521926937315792020149155376289572249779051002168907504889735594373611582302423924001392849896052339884850839308242118019943408328124316451502652422628365401176721943296600064640885777188610931410656939299083244789680366136961035243653735049431868323486897268495092762220692655205584739365455488498616912715958518401380749741432643605684138329883086379459447287039447733250091289971536336969695758372745896829498008181246831472972566438974138247318241247619217710360441067172526950201084828426899257359834610552927277704322977185529734145233281031532302383681675746629220551854909706812462342922445257419224746679825445847326129377219823789530419853713771893460047671254255182314674022700985552244435499035230493910876388194205673879061322009799650882932753551849438459172911419998044719381774194388267758871398130948483287621593967342058660528179809518559555331906662118971974418084348359018467397471870948093028478115793698484838983515956655623527222161069747433315152523862905301068955002335072720046275160338663349431810554464049893960346768498189407422364536315814829249180859560110610988166705771425849103904524901440715980527589772654623505005110931841724456806941995967800038563994357469873540689874787406073444004950161588803201928661800285925104091747262441877233236789022892071630207455616812369786460387411118270521429597072246986184826561901946428858980603761855216583563173651421965481828801627201456801827084699772389969347163656938452818348069752644752427893090252427673107276308342032734880476890747603744431702272082610308991125244513265141311064555600946213707617067487413880597693099125868887401194238703549952405695112159681641372221005986617561697455752475048995091330646921242239281992411952635410673880050789613812788263464122370158534431373020131775675459344772834675979641676560096719003944053945689698133468213414491997232100174170706659411978831211594309457871002173771728843603207370693309578138812735474121780093016372419617234656360544135041585626239624625657456238552727941528485702991013195837199502990448371409591303894446435630908772237451694110184939716134494926506038018394802254976244953327475169692243085320681280817755738154119916590659657600652885684872115618441118251784013161370673104393996354115465661587555895402791657706900748137932784893403470437654077774254975023214928660249019883596068188407758467042561472194515468537727764471887949120235086355973524225978600235165789259079271135215562289791086189489452640837051451886873552575567028024442654239132660687791184402214514084341391527806164933266206921411468982362844067365343750612875801547820976700153452118790931099194126986229648488082347323670969025662882084152691876486052171289255133355829881460755984035791531673551800398376221412127896275713183734959656710019838658845489094643175076959464043597403888196789665797413429370321167421198261614634114551731844942305229104897397525505693617322635273412153815477056150609492993484459961841040890611230014814164782588667431046823848640881842442306248977552131415373617414197758877153130928117535187834222312710874632605911601297008367028624742167402115438393019919129507608228036415656973404727307719749944605251576567523341704567460765484196958304138399569113284874161181939239730356983122168870432011936225177323148119890495837217866495323300129648761007344531233012985862993978199709750533267232959299643790538434135088415075067655633760706286360678670338037303414148764248695169544496555149816632030966867057993353316521245505794148361122911999160373120918379397688605418003472108659297999890827480727180352370397674905678580665058020692021762734417996550401914609619957926682119415165385747548208276675481668090301593782692889413571821012941326310545451837783826222022088829185457502095720360381227085492801140251971367758777030803917722158955585745993568648070637889070991848154355242452353082560195189874862955485433103802922687945476528186650934578154928503287417340966554969166333032180898004406492887911922636392356941079185924475424754901956668232344691128207287149821830765956034971823178707735611575615250699300249925301423406671092956201154980437085283663557412722454602549644220709820203751537874008957934383278688014040484862694253625012038199452661830607741801713292097396808059295131958808094076327378237572455880315906606216232757604220034639694107602500137895049787393289056076227462735651992918497440575095743030524323681799779144333905039163970828986389019593137420436988271589923811759530022922753734136588656767082175505045153264029778115938181857100461558068877655529237246844806089339054242618073983815935575077528674790983662635251632116666493609373661097489664825829043576440603050168916974838052591363300344420138470451280916481317930006906716911653167607605670562137602627510718604201417082855442743561079943341078317835714463694824487776316581324666062501574673349377436965527980155959985709991492483322468632510376566310909289151322156098814950626688025253897945263970129281876492937404967356490474584850707000922056072877257395678899256727959218965173225529685959488760346692326731704925608917199228133973811148259013684164206216122600135400391552075649958582654204574816814682897525423586688922028048639933996632732533568004835319252075520096936248150734693983544112987467494976883720585589243446525462924043747182854734607673609314617035361443818054164517056833265541296639457846372174520126558280572459096808135734974297810832503170618215323937072418668791663120857432198485217973875804062260090732379219568090249893035625600175059241732370573667511670411954864896750556939068166345770186187775154857280815591524346064702728840221910466340949134608813230951704915508391948436076669663892886582831518717101543048502735514786230666788587557253747709508220265114378770591463751130436940794654972557022443995433558655217080147123914482609700937140657021788191519073707336380602192332774101477717670626865404228289818146087023560669919197431802378183284677055639520505132642290904607921887600646849585520555564915377183205173410476651807778035834612457637869989841045421946466784246580454799285855297564728012332760409129790989380583211903140227723213089051188601918706457176914799835130028196157230546171876847849326243524520302130112134930595917924828826655214125043441121265659240660917959600984293753656334246127367821987710072289649442785768881813864902512543065573336356309930958806449323057581428734198256251734876761046328151096709777998708356111090344354404548124788656222054888298313425762362021587504190223468210562936817043088064509729969171750440839895724873812404558058899128163196859082277224168873362835927186279677540130134224149301939090462995987681527857060195743920380845690784767954875699621241056597429903687073492740056725374646358125873996439960280826739318070747486405755813709046362401586285336551398119474648380351762105672089943343026631183379435694089371438293858221971816381101052414607491262384098114233110546322610665656769677085832848624086641566675539698356823583222696996017972253628206531678513656938314393686296813267031580151791951583866871251940982266179924714064667489994451599924010458572344892482349771278037184595148302199020147405345893695118086768246837339067895717550976455602397914121503610543716812982208282391496596110738741928941852559533685079778939314936613896450025592055634622105960049974972901180519454073681774152399580344168035385529979228927314211839116422340345241608061318264990981660116936602298642420780145868049803668253352347071407464472148704742384931030204739569518289972466010396472982669621634316087883780785084889261411090301840523007437759667007206960796219173944021779636971323074075212147174525044182398384741417021788555581595871248803659998724181504603428595481716163757277397615925458230784891675173384823341368982309092115915678204244407366346620043404464622381019228338716966716236502809692767855837409505655789016177547131316157838134812545864659176438787186618112583057092151044479384066517519570109789868549789216816559496225982338977273753437233155102134944612767399820638673877408245301983111514792926511559822356060082134868071497024151590959887149778834346407094535419066186574861037178673536202996176690305336742655105743652811158035928056242366489720190371639995504243689752324743143315278439142416867627795220144531870477681249456129070973392437082291856328653769987534805001317075814463595491574286357927011772999302093268032051180485703872726494617501225125062316661342295389646726734486983628597823918824996157439810840400686927970924056901975896199892979301044784588809624129785076217423163097167884656478618350638770733232706503420004352881622735288108129279172964267470247157400741086553847245512403907110942467470825931201707849359394880784477574546513618097502653108440199392680548748780333762610413832414269551566008735725154680131482915553862634293425938570698669338632542047009901777658918501375228887273189088731840322797356970828642875495288633054405496539595292602403573540027910343198093774352854547800039580242871940163752106249841983593672132228695245270765662516497586349472061264844462979709094189162739254854083640209344025375958948724832075420966542279228829646049981102540217186185500177620236396289072909065969185946617751424943052789068840297818298043507438199595732604462092705411504188272402605096889383326948083159843694615048366547597365382326947924930342811412902341697049271677062608799260848697121139425434786359997540465926241436841534337484388409308814124909331388726754968801588906216559481253015926467493473931444682012125611407495454001912947149944086821107509116407920499229316659859388836040143692224442393744116827386341307915221342981819548608834286385452908961317337039235769399619713737648980665342895964517642495802190002130861658228353827513880493819566979968410327467694588377645523886912279481966370575710385991951051041760547271901496375041809999478500016585163234073034963774005654706804758797682689710301957427997465144754517879044967446159200638925936090535396104898622078528424510498033026639093330637055835776753572353669577730086698323465456441899452459662127333448433585892303343190897161677017680777290196378860142256767626959394351634888725174112591508677839682550559498705651151090473725771071543782163531217941766044286785906746172966871514719901171762344297189626316158777378126977096353749140206386891046371427716942868757597586357379548530214392935363670771826602254317739560836081871800045258913423890434700117081006101296754996448077663277083890469579710300424714733787685327928037998317722805786491475668502212094953465268020972859977749127605412450187450672630765133910756778968372676559693596840952640525018157595003922822795832707400945317705368528551050019097580638343843136577542827010053956305110614820775133508259214661548258059762189506045822476080224618247346234530365707201711783802018985813789944607985600445669874977313225521564146968608506553610354409201874418647104681870092861844340123115900923785007307939318008448957720268090001404618713063208853560479588971182697770360147336148767244197526213510689995777856015611926080501720486096139801810418371858181020309166095043279549597955809745047988622770751426311989635581896248436731562910825603481212988396788673902080608103294446631640283697537086747761825979922615944601423372081125822147577221426387100702450046514023490454453536737848089960946802531478898342534811158877748424268380740552053609588695106773888061806259316765784379302253370678583798400601378175913088834391379350274293771398669746815911306088647711320316745035852569793814607758976195697635769349127590906681769715569281127466133334830076051790628320463846979099771181174650270164820381218681097058324347781203415739768855153336249564602494666945889164495897830480582991452161856619345653926692238792165061103843037056192338531353750613638285167918115430837070381002499665471804745056326207164397002302350536800489932887476034479206023912328908703281816693858102463845499117343199866769156799876055733606193272336979189586248781245828590393215294215014429074737890194391021405677357478409333769770880495399439980512306550733101736048173924211350031117400990849319167088036047036860591000916430738823056104228914778760456587168604960176841183221795800753689136989897284123591595674734312351784503739336876602582690735642309708626325746062063731831238309517565557222751553279300505566250924894589329986097095467785624317240761055219459724359723362181578029509016627867673262362908246217192555192661300566016830239236099922597602649360392597035166978480144563840984572047283003161940325962120532833147092043582159263153756559693161062293393718215111079016445890329282988482902910847940173971688132865354684799966017734924081694574617887073364519517953347736429120659102302912353244862472186248132285939823451439804502677984903663375229981539013396786034459584033170021875816013439911344463766920183174520129593379066705652722667336848519264163423101731002445478905048213993553486549316244988936870444580667291225582187175429268787962857868639166621198915690144100837205640702289522415439740585404678540487413004493873695326874703413814557099333214752151325979402186096611374069935795898169310051098875544677938097519398858819018127487524246650650896494934591972505336294633450450370686920900994888793981338291014097141690917830494300851500631292383277917008966150062230474907464348382960435585789633616720196910091888317025348868627998057219889436479905492076310743323198034635744903205719445999805698532142693808101754386644110982195354578428474868226390621759663410842512921174588515091331891374669666051325571132495891834964866966156190128771608144837979177404779553161186365679909744262978303655271712404481208614459105969351300085488110493762016598111242754313354384520557899870267504712125537248427386904862373139714994532441915955707777345544841229462874817406889921297978787404886210765920093041767586664053944190572065889791664384470572277961315265299236910222000176161987361236784881114844499528950756814157714514900396089936138469923946041599142796604857836540135435803752538523745217686716749219860898462218092436904132853660607599489510507212572662549444584921060338339769150732153844715042447652334490124497824893286454461581550205487269941241360868307974037086088835472456685726612065836238477751255270319060020464139816962700725086682519267842746342368340902468678309402490697783978082278772656615256986958907445607112438861577532225740632433431467772021253114580262381524947054164473088152536549542630644964172051521301022421479723228513533104156844495237400722431871610428732288120841562462519347103052724086370944697347138189150630626181408866537452952085328713371977911863706616046079899203150908205285795757532407020555231462594916641778955534335500783595017252512878887951096976461647731893432700290600295822831411474258477141287441702087063602304548848740048964486134051354602225532273388437546011489707038455875624606722637642161789690509367682807512399711434795325860661258073783240558655160239329857880042734590451490680341884559552075049553302899330246833328392868183677769076703433804359828915777389514544861643124088890565162569693930936345270701833213169709454406501849504613044692861512345498330800281021492206219518790546406931674147455652827091219537402422206805804772895378702683777900698064784249495729631755143871829997741382938931870620473493693137359934138221143060634987540427282946191888788302796630466690127066493791441620517847687975616722201119570874535468132503582699870687562499477959481305355899335418652829564297755769416933766172544779629345236594403448854693900319287520142753755925743882187912257269197125726578090344414158572283273956957252606206233627134843667025365516671125420810581843306558996596135056005732783354376528008571179127443083527973339169746423069474090059976430338963139404952299005160497990300543939276220111868493588066642886940813912893288793796075919584470384709457794069135753828901145818854662243514400058547188018186147887408796919885390375043800873231795625332431454899106940791091364006542254537270532520109314908821164166219030091151626800357448153828244440957899977540377422332009223713888394682616577333958481431082642147647385734716334011004653576067907349206568667438363358533666034378478318762629344391933701047796561155417853383142596788576377547546376137668743732867193774768825482512901722369115027641229748300655819698571829495430408815996217813288033506445197228914769149055036153926745315440714234348645464513437316107615544189821175671221913371329427171573205498371411487329656749287044285221833998011796033309906847335888090579714140321230391119782263567499290339381865784780939094216367667857516672975413019424046125560696802898263067119399521759492406206020846487541994368214951171297174009498482984067031621391949268922008526018567924030468596920095611642263147646662581826517675695810546380077803192663972814994514797982988682969625009746467757232700407437236703786353564774259050049164589178568244296898428194559128777833180144930021308520368254085027480463227717481696624562834776748499789138984694714457048272134860915350995164481670251559013943372065132012004515413149096820613043659687040369744132009429490479081778931594466555356366033717939003598560631982374677296885709165200201492901729905906156753013570572309657047591176459984710509836555674768504773211629535325454922758773468398935337903703591762665907793789193750033520051701626235122723007630495893925825810242269643139370379847993484010547294509641364924212594169096411394293850469368569806292871929754586595646347312644935720050325604636631051944008696932567488380490105327849510643822113663964574868005222653417686956509318877357376796389205486302953585728546711615571240166344321275646636872942959111571657363809880186697781444048904908322631343422177584179018631433177690954230412324292125950191261930379095202057211130892160617914689567785136956759669235814350930984122253838406853391415274401572453465164151372302649445245965286398355102421845591155239361903180558990149162508043866847940816891836688665860333454720103454166799390247843116877291740273388157715845740759557328428163669703791530439936558302887433892668451573102188108388264417059093211752994752690060436856072595716828947355433075730116856059098951860249038014722595442420119685412912497345829212193406340172487078821668286576725912514708370563028708926264319073041711757614415431682934629432464900354254685493584527534871341228082780871759029597419957085057184549476731806118271660881722959787957420792925531234185796125855138793086234343299781788559094842728209545193966812081138244720973822978617235743638274188932748813695757188992305035414854072466574394911384580091131122600792157003044943631002994062361927002621973796820108060912595319950486810615433033823770623544393447112996416055341004632479575087062959198725495238127253904769778882183847161017342128954145527976625099016559989315974078983107040189349587807061078577320094899613419921695853000734624703290098290158457114001928702705623345221165202453076033462168276250337725204424449606485324221370647884513482974344840859342586217441015832412104498002329704252582638233493869364850554747838608598419945068586156781026100232526696173195401598145701222877487562310174761737142190548382425918082505220805427628241626602430301848330491875950925993983935275838423540561163690209857425092467283952438970429695802499646605194905738810937057153251681107730851639973672483175030993010895797327474984681779475314486778366056422278421472024258943129051176917323200585460407603446378214791917743449731305025616076416018462133641666418381073298322680634043377537706150196395238769579126539430155155361178087778824841344081781617015811653269290124681919875859875998783965630426222713718887735484463647495718572600449086856303971713949726664855024374523368998865855930713722158037890595244874253140182582457883973915895472197074806004261089526744949371129687758983677428224496301768349143256630879692364203295143814902636590093240835505225993015961620439077911558305241262695919835887252892694659646600946760347594865129853267450150901233677491812392247660185975808482445725402540374148145327559579079210593401946467978218273507342817280509612384983683229110721970227841982099973494802671093005402740707471892796727449019964307281632359702332247795858330855307497217508990699744041333290839209813028779403803226752068533338718659399204267500986812130206539370039913356152886362019046201979515092329785394345977294197910993311021667643684514173338156605057091308160121590641621048782615220889077176009874837069089383122057031966548252918862327545019385606880124603894806943428645487771745152308939356010450076990092307778446217984185119224700946603145819440293805481832630515484354722095360812818151286982296162802798644746010980165881958115669049831490317561159730443804294356825703698808559626261145124816622473745915197397222198027298893500172074339296922690226996370524107141784262799017780155613227382824980496548268238545574977627016986752313407183822231265325431839946574072344139510184672945841137964727696321443150284903421474480901860640384312698848924885469361356983461279307014822252290002550512319111077780724445651007063179010742497323238307487135456417254517142485752327041568944259243031138773174043182461369646062113974419089226802680270891567188586309068297464635777494636881065667743435557367903510796750746112426165713030668861324480509868910417189173076583704759151030381837291749404595886890415929396794633654695390847501369501860641115674232835958559402253176575354508318647368911523441781937157983505738229020143190992868492335589710504029789060140772001249229181759507328626486382406916136382171104839620877746629588072487587791716705207532840928907900473361535926148201829052192842661184212601151949280819826670723607029368746215662003351917394688269398808482941992808822730891170531615664267280143453424633904507250479626521764906656540781937149056015158653871176749656668654686008597308151153915155878169552689209831797630720089861247626914459539100248714602943720320436455055177943942337383392438674642428430652734664116842232984719304870124331767691987526426706786043112197200976259647044990659156091634076941895710364494932104222872794770219343228370640562862163969434260842856315295787228529929596072561144409562342307881771448976440116012771577905166709309850186180636010069434647554632764750859299830873022962126252097730865761644848351457912558116591989141373689230967950164072224797872122952325487911567422374930013875596078332507446738384180838911398011601029802520982427679013125438876391811653070484874930021438996274361113605744877281785127440689508229749790399550042120945120344309491010414836155496876524194207344314255139484317133537534621186489242729537067797082520295591347366862442368087868486918382923114442208149867728512562645569811848229532831195507722933603977169788029362115790189976062228778202731185614355016495703296296625667272887508369151275976748437664304088297121311316155317272285097771105367477135643102794561846862938336062043742626245928183667590027311063046090177573737567350130829496638275182933349484221826956792290678908263443308729355070674017900176739551915384796516277197062486013797948359388945364514127031817164155199826935228861218013735693994230025350845902463835085697113553377028999006668208564673943376935298015106817756550947060314787568749427297910232728341647898852620987982326418748240360267848439255326063754894751194603560482875093629908083303994249309304816760710089554410998774962401315834702160138277634732586501288466148623910526232171669875159983418788886970118154552718231519580736146871023273907780498094730864585087174430928744195249843683706893125538258533436407917072530414340011414922201676772963353980724937263700618051232481842427836830067936260800985596935934589856804291858696478855810098590036558965190113277042071377283619899584306879162012829884780318175960742297216775681593967581159048838569914099485716931756442529583841869833531847293238431694251584537078730618961772512007969145139576311386755323116418903880474050266284707887132671155854276208323926061013069881354407354539016627968485495840820761288089591695844755038785221920187759569048438550969922206939233445463749924435376910982519927038575833537062858914239955560209505346793431104306184104406167279762736428744325218137283020546887953518873767617469596942286246521982095639948372795941829722794277124391673034056311550595635108025487676465211833338970854210124696261147143886777421855979402741015814459222589699094102875835616469118315774158060495863447905602603112782081822495220404219540623166423515258582308608695923715262595708749717040985272745839598573576195824798264332000712613295850278487055023653156929657726008968144345302062447242491785406804367143117546668671940381575982213271377544816177533226701566829567161607210374462414786163154354825656913332852175740743884771259905290449093745091080278989883084269455970391388664993541023866993408456040556272590036551840565570761003146397588097489030410493609547368178579894996259940458046617099295906283861015991052353432148433711174505885719061427148205812828053707874322402540611069151165249519702368157797828239927094987937833866377264585361489221112865134518641699289763756272001960302332431401517873074444843824541370216391959677496881496152036940864183047056004761284594890080244765855763877602002556976971334044208672080589351862799420829873429589833946695042495440535836820794580323606753052472001447052269565747372273511222199420397494307001824685049427694897508875745090458090726485675699339353337637587178131938328402094456789844857943991953381953294126450412048639379573273431946904210076698119148772268850392793574358749005106207906429828666927144967385187397485689076992400286159627907313527422484261652679123517671658561951578391322477785324406763130536194111822900411826170376361840845438343391946579028059081114434806674104335678310028641708358471977680998765790685865947658242295694144384923296699168114917897986885186027207680574845216019835355189595237237923455030569633028392637028347737371009326269536329994233306434126483956248786698923189662239932798382422124947702618656472819691319404444635803137660484016674164813260967207255760710499899620926199199273220395958653760880759689929964831060134184033123289920810637429664665865131918903361201602976307717097635142566046966460962216252058101868727899934295375212265140881449479695495540070201553156879033785461636002947946389487874734477390827437358743198394286551201536787404787554725595427256110475170099697235250777368128712292571574426880844787237180647581440268846557233504637220232206992770412725994270171291306751954711986996870635440689713303771071765867655798986175028710480242384818446409458007715367095695873767150489644794337004377431676884612832280644563383975752098974469694234445168137779775143625237847701403053373485245001671121742335018745714552818746577214602973570869586809110946565372292699978336916782386492685177360221714415579186759157715851563860908550030387392808709842896715908978742704502900614872031805794308631884949132181905045103247315006663480294929470000666034246447063809452021320417575072379141555574252734897261632394419226899473877031900935293249654789957237085557592745168591163701194053612228343870221493123030470014847147954006470219858683571150744779771815692557360988529290498129856382546032958892498770163110854242053204310676948845756720655251284524955913719579434342577163608737145179925918238051746142670431881010109929127171545235546439886516951510197059091565008443200641745340341085365389397723873106405638285835572874892659131275669027912426069000225779416092442384257912570621142878334131622422768687807002957490788072178067008306703181911999997050742573191379850177888062291219096580481158605308467324166674005035189632258839588954371278102807980572316382577822192444312456674284122609498244993966956016331600645617830829993899263146453269865037585485175232709179923758373166258128188719656420929458391179487939428628487248432322982666841937888438637297143447205962206182514591324278157345708652905165210751965830400498116018285897413330486897307466496961820288973251825310568122759949150970337330802232731475848640382358241818345851079278376428502962585814900040326278051333350956501733790828712328399545612330303865336276898834932034484616976260508903268603163074316028866989391854119885520735116645182254372525061852286823997308320229725207293689016963529863163965014030594184791277981740395393666624015116867676797964988815206481468446621379578035704620444983354506361127711565442163305759821568014745518914059663135941877487901971476117583710300466867184162302472072607453304996529919762679820836582101152804212794945205829595175060965084324880805763266832422769446548157520400106613976406364230636821275233692293629211297447064661162077476362502805066174511054327675849680037586680420654008829782992368832082767315008848376769142901430910748196570880607372526934502774397695189293237882214140493855325154481157506468115042034154663811239591075170850067326488608372717420363528720713610074661470562859809713073560313220404193322853107128382489038064763827874709713950391298338792592110413714276822050100490030379148252177426094345138379549746986952140376794882690065251513923364326838194376743557676241286933414723608514072075369686804264426342524296310740901898088975570781460877686755401100621279793561626020432458053876860181265916664175265354153130763589313116427176740120953352874597056877458286794153547516426016231383980683992843955574775815137750138654376818484933154212285238712393927085541054627691522248277648296251967564550951502495820691155809168208194317942148424848982934245400037615462977996203676369219082341269393354492343137711814571654584019604832245890727873973483446047050402249432501705071821273540326043658928454859554134840739441079304387230250018449525951541569755324701920565537177035170702590294534616395209333575352021322517609111223979649296642885842233631147115323534942715408609368388437674833490407796892052074404625784429429451336790955041060240305893115063445267243380136071489878026481799564511433368061976066979032735353034086877753362351047908529496959888918868924457208143260090196551524141859897100753434414051849629352357069150335062858068052027956219846412492769141988733172258060774480610837619489543780507696908791378828285225342871311124014461794252509165358099932057308322246333195772371140033351268557903272047026651676978529686572631889878761171244530321686049373037273608768638348281117906024666727771927231517530741731800906395823852759870621249272126989565492347034567193481362986486410836105336257772008129066891040874538417765237690228214310402987097445292035825105032495793545416286287954570191090583790280318635662898040687003304167999446579962381699943302633721737453288286477345030768008279197306484586955990791015814440662616308790352186511785688227994396556893885935985491999669043941336533752649762821687639194972634665629135256908105021131813240215292395770308020686333041176724034834234648745526450005042704079730798221430484527731240454628835250977473332539619547215990997978455488575662954012938287724644936244159216702852333109733684820719782670657723271937206752569520246052548456374297980913521645937940975173420081898715850366132171180955548461119536464022467455571202176329736845715677437466057973742897640140552477909347393071357293424612773180797181481388267106015118034147066432383736502542716123641393287870339454878877189366712063702764534613952893390031558885393599888074648041381318300985516707365919064603567343769414223567367415571233628868935319737874920754802072004300855267214263500144317492300685260528727525510492364842602726030558969281552863401048572143637380270982439468346466471099227599416805915996525280550769916004210101074027126532792162265258749878970116985572026832334253553344276471287185937898799751553965799839127444213895168354584131490939942133270996844070990316688632112472742478373515284976605701533139369963121088599961929882984154699609952100228009057795805554218148665565611302320489099572918558885071935817480994243732295611342348771309916444410327982070729321253433769066283543438947168210306815186519057698592283310230152101403630428636879759711979740847451779022862942499179828831691376837377288712309390945114248393074849633046038729214146876484064389054943085497048194433147485506099781179647981582624662880843696690916803196564241259835782058172885651075093397960552695860541953101751472043946891035525788927511395887715579756572968296107502439556470425555353517993247199010634571496729452590325737878194649377548428519916285370822519989066850285199010869616570841618530422942118015895796433054197953145759473589488964703467501041029643260054797112170632625470955189293956454182761822477064105297962635387227683940518318430052447139206589644438981563940572937037161093005966214800138684076766718911715367487693943831324206327593379697658547608060580239503105241877400293636306037708919286672089699374430379983136036390316228011914491576364371053836764955134768859959372956050113073505681337469382016350099696386006720211428043770797220415966424638828741515525436953403153330292749984082771834409795582814103498272397021537776254366062638138981437132766198025030081459173789324192839030716854819354794486045684125868775014900481580707171929677413044955481019905696216322716578409339265019017478353099424914896975043342315612903996148421275041626909052476936281433163720354959239058318978043263172142832406053667326056517904439114458922184842491751234412181063346183190973770103237116958472124502936812550456415685047244122248054047651882024971938375841422429702619276061135944111342978192976541258245347221654663550759411951856931909649918388794118097474387783708937014659190134966278671463689780544100394074285517958475599169607900318133606682291691850535462007831515310797730242139405115874230797851813825394962512220990064870878481911467644656744758973134396955098152062482775346646743606626040536168578575265835509295699779087679850604068488623382810509394751373790593758307841949850269729583213857040709548162954379966914624612995721268528272445106111002296052589064592005150907170687504722847623502317163308174556505726203883833974683650484831479334850672170884046009118634507839603459464084583560768647546102430868349284808154986640591148204870696310642730933271371215486534363804202095032722808783506497331586322580793808149673723439941673593481656291088460706976154503157553274429134671202097039206761348597329672242424978954165346349175638486957113813713929626076147644648461233261722093582470057690237988379585104280590245355938385305918518888668210211349122726458547531108664342995937985144559625892936310166527972694529024018201213858594370840879955595647971329501676817651031782582433503166171929172087242553134428973120418357354887777203679155702739831075920333863865161931131621448237759466891880305797834892034574239517956042451432942464521813374012506684430697323636042135399553432333765644279980250935010214388397756814251701909610243789185910717267069475901154351688414756304323391945904610622145629959981311046238331574069230191968417323366376691447102624901357850785525822284258742182260419328043914391987329842215568266193005104409109851511701735124562656742443904057893664627413623302435490844942486944969548334982317994026135927100427806684149061104209094515855334450787563636071482986037650389137585245626950999325905672156435919073851249067608502610068337130233728990693602313708527537200703327472272327829234723847149012645277185943236247135054141320467815296044957007181952821512840834381218573315828531138783348244579863195878215292367920322743851189034025456655576107880182778686780727817900629260693831788891164588350094256676453482496535836224566696991966052956221764314677742362868874516995420711284858766861922575165891438258591437418859040648901956410239024314417960479150385673296380414944455528278354244578507723820988559607612099507350592334913202280770635771412194410583072428280338808125258668847153802063278379478248222493751739944320279068845986314232804393437481223779597226816137064902080244969656722948343734380015642519949059225484512740511569698612653488803109839398301546944206020677613034857019191199324296481524148573029338714661289031209586486226676128763049254511369618138821009382269018199714786406163468644508590691055057134582244522760291143685313403401035021213104474699799368898115242693100815983018526439261439747074569232615966750120100027174280855234494812812585718654152532481215559228188029733807579349183981348312956751988367832382301412638947818700617582393050787597966997900399396033301083765865877806598224742749826626355957670811052435807009566186109071460327902666707316706380502816798603391857637478256201382943225248917042206584030678018047717804278389527961145333014398427702539939634553521148787182421243473425794780325917689528975371732703464824207884374299778935086246899093132763930269434573949760780573564727945260198872713891771924372947525132070769396618245545906832967032613440929172047079652864906454613822129743317611488781050612749046989162598333457720752494913038632251817164880364050606954687169750272646669347771693606411902061493795313161393960384277240770931254190860870821589485670652661659011191171267231799823164978677239457318345068516401087375683012086756767073443135385821652964134800605634531084799330579526530350456031445360820845180216072245901209160446873750697879592785422334662200987499977849108464726689028627997986157832786542625271033436858213309641415243921345680702934043092808327477201297701778749474625566149370365513541042516994644853542413313754112805370616869772989028434561121288197388089673893802916475607735133359677190776553289114336894841913691968788970482280431511790385503139600695404932676834318893869260217296436329669710246678605891186773833122524962451819628004674329804648978151270973588066168425551747226174248275221196696672453428419921727980498743989696968310908234389462125526264354977506888459450239061782384734645671529627319750443284765229856991486863639007014675984025788946430440783704431160592124520094437112933042519079303981436704523412800232703757623538465976962915471251370929046928624488019105739640344725306425445410121140176370973711814686655999454461625855275474493624519739609521473282438521416386465121696103592147731568952931515019858851838287369678048706420376983384138233558024912145494055152363209085156386871771859938558756347366297849511542630909911968986843423289825210976136115927747483179321227122162198719453438960916813485142407612107984990512043959239589930079468869144240348767482847489469550132623402779070467406363621673993293546613592969368437465581069552377304719673457852794159639201324170387104474826255239788596632765715792867505326743387116012871088911872581012529336691121753568807799068534926568658181255874443408065342356336484626238780440704168135811391736469747352569732769361393947095989196954583770057970348603291133352794133178522701326452146392382227558541920724417569158983369432643787843614747557571725617707568550862322265008672304417580234388097701653552400118470129465011051866292867695076400340989233942387847536630395237220729260325760781118184456471520524124365107929635303040315489754251992082008542736818164970871217322274522255080342883350598544973578819236039619800958747422182947527973301274054669550436627808358675532666411146175470562069678613497967908001980064786785013036444759079889675961190652183264313833829462098286344289526898178796061210253524329134832960330017027716889352300461734163468740852087451350669020291381601551143243676228417094156007422385369599502507973067620960938016843965240729288887655895249469958469632796249176758324134422851835759730837580608864999857806028409083519308256641142015113358648986912811451810640367369257604611331841101247022869102376010827419256988221710086592985907174037559366231028841720260157738403403983837346508753677913200043623046497709524632864552764763272864517000355447798391089274151641559925762552544857403153166779215835369451024298702863763587873555441719128286755183052819942002066854031592451899606838180804530910547030527389282593136797709049657155275438211291527915796395836321671547041373680196632931053974565597173158518900110305650279113591210944531387951274556245139711585219078351592813342810750816900588675891378102519600495456180762150076521771882813916242859268430287846523920395543179275459441918042417051690457401444604601540897098936379005408258243982462928030949527895811639254610632152502170410791364489674660005102636517830853255785253007231112804413373777365565125944039681767799178129342961881385935562909255265019470582223759493747506905395599631074039778418444808022547491035706343341697449435294401234461402414273647329251922630260993965912764203870982369552683656477459101552043399797733449020896136440669316970073317499835234125958233750680688180600486833523008604396116455422712459396228019146371765988208128088683974987365810663647349265010988743350273648707127478262030325947777743752616032542056682131657114215200301268134963388027943096562040781273827214809833133703351301049111363876492676222487591858702682265026366067317547149445255395663092167478507633124727298392234048086937840357106970401394102104045857672524953769434883873801698383699273665089288514772807706936735894176275386633002736212759111796477194788876171725006652071285891332119601201908237258130744371125678965472287286085433886809172778892273244749155473513695978929191368698219943683751791668384117434723918107566425346026098873986761669429089295329989355185647416072169285904456850730196314289366908917941136670160991422612534551752891485078770818268442993285498948341814356513773630478928919083343796062563337644043224607493192505990109269487483602780939484481080311396907513493754176382260516181129674996932301117814910761065298781466660331855967727314530087350237691270392539915762979099438197375110922435693478705876142737131867268544538099336147200918385961460751872452680272830263369258098940978378347561783239188312147355841430270859000437432491762011976663050909908512791269299106435930699099430964504213579981175094253903361464626389568601252815491632889464826074734757385850941263613424786237525531041453148245769077035597287165505860823842115820244246607753520760134452282758239452277638918229766021270061028809856255002138539950686667856696090405399891477339043275038895838142414811751571137718337829859260524073899235454546368836577598415284658431093234646060942800349035962304767758625631036711709783818894204716907546166595759865926527915363870744317173822997904957015875586761488888554633201266552828936391087041021632145591311801986494871603877492699661991321538593270023696343214433642535950143586350481252587076659650518826524000482515269342488509164267392844818123820405319750442859594319238985482756070394941312881036120087751670036874337385234042531409188281771314535596109725322775856166168964379477683239805385283885066204165619425517742774200679893534013709483722170311086036413284789457250744381459782449300688623385592257540965600915789988935484994507086083998055471751613273877217526251702606090617385063013307895169847150989767256515862967683334808979009137730141501575350064986138924313306138990305696763883207009269488607941793365267299606723012747854438242392957471701023668516925555674757953457720157437205678093125145709105948901710484060053891436003944165500151745365254975409822780902944232377296982871954704939949706814920482173453394802494176240207113569336918494463653202767591672382855401119985792611302992827464653276595258338406785921545387114665684471435235998783096737331991097046084700815931590728359981828937605540990522179048534288656051019525047054125021063583961689400402716202954985207204080682273199544366179027556103095134702743483237597175988178176826351516249964287955342292076761541962593472383759913475701777743474781621909856056869859252032987940598513566050491174310186214606927743474056270072710735087876270651892589772873120434779591114600431781039569775281935837884349387364455125728731899910180582409750810575796700375349611739813020576805773814187159321367813785070373795178761047723046505988721170201558622786926736123932518748150709615680628005429473486463153211394848329188530644040169069122834099148437746056731306568439648501605611562795909058158015464954270547785094891855909985864775736115121846522558739981322994864314196518502017404788233409109992276189353370166276369508231313155312857343945381187272108058143110678792738937033386519291016154609914923437561517345075382885723694448680318379220515129275661645875273176610153030784083346745238972319272189340035652386138381823573542129026751076878772108742443293833370079719942818519900941643190635902818222663161186110247679551893745706429384364494576105444902555058226152565592740728208880766922287220014976909658989326115437026190113994443870247952764659456932093104819676073419938682565342765278702585160094513701386559294216965375253789788778090734629636874285208486537454230460703854036969350349101212251368384657467520851623489227151373141365972762431480689544762417743102418756173827422731972249173176330648865150931843261840914761191858765482271076466164431905464401977855272184488003693721379716200337049394153157640279750512670899561378281444793038186572206140913274342678934964111159973959638038202093327549939641341818328100274789702834833013667031013351546226708393312662838190891362245232946642901171032031244251471948942392717754650020387170206972161451450618047839386713131711367712104699901577572147373692434439644320188190263075481494752705396492077528568621410783973011447572878954973798556806596689247453934474484194148816148932737874449185256055663500785293749399527962444554999259414106184664061436134671782119836826267174422762513053778439534779335975332809977935028805518658665626447629477787647995646896798672261028519783313469382389005936717606690165293378374768768714209510198473777302119357425261404743517265521807223713769528718961176763791459357043502323922864182780226425727659699817408451158566727174252636157582748255221494645642020078536997348834666287268674354359772681674258353622724519992775972649669113032331344087995672407652061552155390124725196924180136803854534703394737769339018207130057206667484609097200107640905432966638908436857848398770868245877623279746579638639951712381513918707345276453885596395306280648661712499494825871648097751530625170421850620287707117780614176483869117149777109184704893138969598434045560681292542690706394933671089499759800385035648371650055397798708806699311068954466965845439223732381417721098887351277014752747246725865834362985922418519825744484089868057773983525606708558918175604616415667604430507953043646651829829597497930229166452099334208824453640990109077831168272443368869348816307350459556536029776673706676467679886092383762878679336482175033076730559800702305886222628927205321053562554137482882796936804263943727923491769828388707624116502068098535520129645305349320791245163690678282289669134117319737233182320241349711614665704471522832700847645878585186252727723295965005702504313182998163150391464988003038223549230991556776457123656730129540356748857879439007213734249018167648708967184754705650041735214294943472673204189965079382460198876451031099943094632653729732968753950067711388716723520228331221551678557440122872149345702965811127185770577635598924226155682126504805780400068147380413463183371212940537473767446948189816009750477714016169299367236953795706200705436613368441488574937485348047623006613367120647745823172075439236497485567240421622763771277130943993182457385039862147431482049842627862184126230419545371352420144975697158265074597215131061328485795916711665312979132502232356340649727327422263035737195438298674659319360909204065299867851095478993896602412837004441758733010214560020492588197199964849280785363798169298396414940258037373525596603363507980931729369408947008170608936226059599810420552523049085898570154959457752677980956660752692316753053576345325338088685145497462235820212262427784309189851414102685302046504102864505611184984147958640066791096499804379384922488303856370319634894389692795763627194280946336266012402556386446757478473225374769791495248614696737402742186071022184880531992140659112764979171083011100115138188591945798364879713146585053078210631220371569623802179876865779600650924948757301216179475348952967964831776300928825068639599113670336721649820948914220602993351915416151698908958880468166976793468863727200921782084560793234635953414877022698035935404941680492201273750198923269571156599473784769581544713240921523525012297576709796833563676815692817343613294555946005389887169997653573108128515898287579765006752908672755785683819202387831935080043422073815399682922405637391255215336003281940640383315954536327248165130125998546180266748198313353318355045433649695186888006567005629888460332187789257748519468738922937886827471228297724643503420279647197515352458222634384233549706167613014574401912236545430221144953633557084055127154039398951527521262698150380740058830004681690983558679431493739529669510636321854228883315078401833203351189369648575481553003499258212003260959571310212187929456738686093408299894161372396325385599287590078797264687515998829989138979990440726491079563735736053465204744412783848704659097636162554712346427818176979846196981723802254824088352357939530746354420155668795170564506880726417360784660114111768927065378380762803782804932107436385527446413698670470523879289835340423356987185915758698706780869560922740483442779887612236179509068330616029326592851581913425857413330742985543963424545788751088440835755555649826970711852370882680040737628430149044329042065484026490490224802723591840726787564761107630143856143118150670795055657724317898905104124319257948431223122759623955180495190380602235282502912423711768483603509702322758803860577446736422152548212562924963702508243628281586454173669758795972939921195645519254264573725307278617393642949526311613643822407931756494391822327036048348078808583101331178953155322073101760320130201580333598906460712058355365938727484322100156959590763526213380202593183270434845441994293268024317355140546670749509201512028924873671719184391469969443458676444968354474779837710458114893600739899959671733505313931761904395798355752129404852145725953862876322093851513078462208902773783235614317693398037838211151789865034655058684613917409032800607087041958132928021751414258506422575703781678748277191939254005768658091741991430291501862527925303112460712457579362887001347478303265799160705914909865224757185626970506767426531864531886484863447900356047274772229380456515650966909115412233084727661269100603847746965085468569616312321517577258858575284147228255194187738676986126043655226539296761862437404225588771974774365797028819721483650474514896585219963480998446826468546376168172024833518438899146195492428898806488344759932499428152274410091769846329154381028179339217463855080229600640450500975192940382837702141376949705684173967478468766810811336197556034542806645846167304190755509721481718739627148269039419941030961857389017728455690541125867884579340435957517185652655441234723390224607087553248848520388077653021735073139329009180074138859699750507358732277196636205317034766968922079324539563163698230883460421772540493473599442644023775808069248772777691958001981623248548339763781459423392732800918719746341497471217462211868317696984363823170265596324170884296539710208199394150431674014504418206781283944254578672601267282284869592696267381669954067900198443634976743477808639928468841020800451048695005286016858530503884469001993958429145194653060149494272733324661094483006046960864704954801563027453692022390577006708180425923707518812110592121416349416915176312062965059157537276250844830656553641265438908638495773579988778689579342086807169622937706463136378074182557401745669836809059942239145569935640688741638698570256331670236944881959643899851086878374807979525941472470731890319205152907501305799468621811658443962650262386221696204915284340227701102416716858615318601215010468092585791357799576020108647167353217777727735950964562056093831426442605325538734283640049211411771847144617818603843612702056230403413080533762556976669315683561139472306358054511448875794673122136454838902410575931849158466253684124755535567186473066351525428379212860128095819958674988080826177774313969183416533847980634837622560844236071376538719649048026158953132809512053348525571565717486752305483825903922484888789377501517174519629332768263474156295020825880405957125403473994284027821550478430339001016013888821917923616610989881147592158705558323073587169890624193196199171891710824586501991330505031022651296883473758816438336815119214128500754043143092544908598459516483190356555558434866590516100015749571733164546201037482598197730679732324579256490435303962006546781387380855787605414948064732021894550123577505217165974814855892032553591792680664573293963468635225224842434038021355868887761378401812093956132676538418056226686595552429993268412218660613106889737519856360080478516444610663799370898827106813697564345501307476677682132860424079327908897511196783451067533672149477030359585456570228210509226235807399651882855850017694265762364067551022516684098897491130187624331724245955096138932208780780156090488969617174755163581575772162023425967003034659127266963140175905068760560029977701944883042073149159045450262778094349272084352459748243749740775019224692357668490054412332309898327440956710637198456783695455996892301003916287650176792088820451908703451452871725786554520330396906462188113888460155499438830567102397040009496925126287549414226777019223785285767554481164533309579562366300637666190596339999848791604536432282901550498974299424092347929564916010985709318848236074473658886139432993095132962045334965295657388603609098690349108475119337603067555124274609624743909893727636834167609175082644787344063886239684196179539651792943720231134235022128185939338813585132706003239790653248699707325448195506507201181559626123113733319177750406788734912887894221749722033395115603795824896269123360714407911661921645366306852477131217432396976216363819589418551879753126989379690580344172408731126268515905375035995846065091960276293946446571605173794307254724454236484856476087934898167808697134582960659092938209538809389121329940317898942044667329540155178568938949441213899430322365377946678004776225189399046263834227076479596300517687463423416638703508545627078033770772058265676866603654240628542180180609157071617649603103318112972876691033991054902952751230246712768358223800090172782001235086312309050733951037008368313081152649821449404727362120603273405512564894479823625184774275728159067064884344344245826227761760522015044549894508690166676064406917307406517695962672617752731994844697277147899833638112840787320505899050493237156312216163124513093887357202229298978167436097984459504966182993672881795123141997190616608056244920757903015688270730893713354110971352299968439417995793071343513923625828386158071265157583437134339698554698597676134799980251453019058829636572126061279088718990141951988926770267342303863534632899086951678271975476207367710773622604978452268196836295282075700430986151280615883587371388880795869730807795667870336155692167250018081547521177555751894520122681781929182200244158674720654496399387995379576575850601518865059252432263462727054341987028634139226999938446734655067356196396390416053989577351121680852146481942368766198655355918340036052406002661734675833693026114971200554461166036719517369280755401435369843518911535241541692204642173179978290174124935738378196279253049076006576165937059026503417888943891392367272989529320343980221289925454966960669166533393904661029440072118774466370722442919465504699618492114802024352916822707225168535038153410735736877036163257365609105220405097308923374684209602072107302517329416002618927078172215405024916182515451967685870534825288641237127330879818611519555787354281119765312654284370131552560401571115197335623733726432379018293516989151977119182328607853125046041653227539344483200994710625140872170701401189639621395366945773488637376150095134349328458097100717067188563081196265762517564344505464641442164925255162510695484904536008530377616179292043518981619395998281711429207537199322588221220759324049388002110756328074605850188911566165331608739350352944031104331070164641677438991099903546315533438336589578850125557124133872222353213807121583318053149903351570469020750917473788065777905210712111665793884586926477588916480455683663797688621773864951707878671090342153922739926453670760152479068972350555453333962148708440643200452280486016749667038642366168868806470346530561220734365293895858326399373252512192368190236169477669401479662017623050649883147735960678369509524943822151696587660785972851538761376631978842879877353992386245467219628429833994554771396902597535550780103996793633149361261308276027830377281868876159346839106464787099269746415381601832547233159650965459494616117494023392389994546364215388963641971748052929707905943378804990813617022602724148083021483976062696799872841366563901016185247761607809517908606164100517045823812549670305096992684795663305005923779731623883180908791079687550093065262796402824512661815806827063173165737398689070792061804701787809127123172686608556201960321852378408777916659465088072717511073338793126139048081017564269879525777555009105996211864939395582793798009833586583034963467652254534092487381232786505708549754654297420455912061492209125801079424417131372045645364178252227397273016859101568923294451675460099568940847255610544992757295481873256966412208432161389879664742718780742443488235547100319353203902907130259999923840236524979667761970350513332104683324577233866689502800401982552426916487879062029845711144666971632201134380861774385460244692993952027592607442992340956084424551959403809830587146796579062607838452215444004497704773891708750477591037150606850814747350234064427451111136387170772379485010302863478704110334530185851850247289415757911580510956131822589446665022995459982365659315505591999904413613460276966853289520265724122195475298921840799519275618682769234125494236832037028601333611708824145784534495502619436765687130226250851398706078114269221330039726814487706011186470401733679393562702768585047205704819480016599282311110680292751016263315116714356781721228456227776682198253977959524616471367297441021660419337931392207247659234841182125261083848693978036065578154369160320757108962138269677657699002726185694893567361844020955951470790433469772726030958586040814761878562790782218971324106536075775453425494438180289069246427428099959916884771995911723359980339782389712462205101546761893677956359199116979870131678068665596613432329674186637659955310132002945858038233042423499810852917316333919047517216534503572768303771725355357248146775308533828740971391866737980731023512888858423321707181788904897590111506041509657056691804067522406338309702624397817354102969881084078703084023201496942081380369797426539752870752107734575380591270523367364364364892861553909823716368964680024922113825864134446192862507987772145998699869732072674299573333889316338039850922405448703291548711280046567781310941193024891452339328728508889445569467252388285021917714054234382215522138218728917112637262024878017958721602636492565282239544209738890464870809139272194256554979262583474324421744504455018497209355471069335893130481869181780307214427622412873873675922928641660452907820649406923254158094741395180654695896684433272716372980313910062011888903798745363039512255997967248355316883785248026764588806396927301215106252501020047446062805976265086966384489377289317504542521164994164342723400640371050379775633544208306001837909582288091279813833130468608400467476920073162779452514288985112151531362706002755316426797140049244875528521140777707154869222787172160380591106218463966401861872630092651703551977550184157772995569789507496684948175978988020454240671139259334455850374978414234671975537162627002033942516556399662002877861875258191585556740920783734921763633246055477713240763967460362670601277138280469708543224619435597188016175958299991490609892121323669410020581123640412563838448121249328878554880627150759822025019588534928192468876884561923212611805880153206760721316303976523928957236953702182666490968187221929087391628554313745753058158056926720928119322188878848235527124815396512089020857092092584395932176704142304209838703044096046100532124529690097548255836077674926050065313974381262924125718555108275425401505768518129368030566427799532579317734335882058224823471655996316397610881715913450894533143782569540910270643625804024404652147343713354108372668318794001446328536739702492965536787237082494628287221997037783757437814702555523015303590797228172329649546129782774613565487482220093622909453582850513100729462800081340116141727358870414336448767454011154914009952756896734692164143395784334684072590254957414165740904395172248207276139225571431885413706644024400738522150897649729633307062796119280539435447227319873642469734872247705179538750054743381560862657043408565932139283514713797472993119053102160519686049989332613428648963500304053446874024038406986594523311791208121789310452975514915277672468251284301418061946169643645420815030343884993445497124611327293730345197095574978468239272104216133982148678366131314979792007085797168679566420243704218321049538824920689631985928996888158577538039866862586541163939522362543694430204951493782895125241336281031516066549973556448985287910911222091872595897647978990003773213889643309064137089478690543648540045585722013470461951634491873346943971222669449106365777158639969940706245628691065268824375732179382018716246233532020332136136611735377808388159961866924226357582513084130476347858867923448565497401374564431310091928384796471980172777967205955963393045275031328723319734976456952784307519113316397847805798352794424939601506601210889139553386708782203613979708289584758448106178310253014246309093356988894459008486270957918622701323557621454312043286789604585789615367657998343598220520314066436213573876867055876457515034740979717571308022600503225331643533004478972508365910872125183163890837942052877255240625366484498796263586624901377819305832087441118173547855327397110860710786375401487071796652825782008517071565817297841174844359065437025945082866700592788409545845952039374060644613875750684076511612459605260052264979304045164033929165832127412620551051829787426817793356841606096173953636594747038036043161153862589994731794323505533913041215945493968660015910500585273924964153838915075729152527724549499319941450314591563499239824383887427120700295354630047713844189724872214456926959356935067047138872506074831596662431878375359339491098214148370100783581782577716252257732565355891844469383720724297239923674107020046798598623036905544318238458239904087859415368205932127603938873134737301850810142975094204934422538768003121356669384022933661166967055942819749232275891893845611181952770855885921024935533801234558890601216402100697398744208116415981139689260815472102206755036305619827423990860451089714515653557437662903307303458418153099418510712012260591470388193342315035403006245446900131021256672826800404156087838560070839986403855195904338792016154751561714458762525289224451263645988708392764795663264762462947017915859365783971382317922592867144006533356625414414994013869942331068217214104021663914361570668665804314947040111605106512957685734723766736032151242233463025349160799527450614003344979887545994769407127993156402720573027071987138590635202665849522559782368683561210951497370076744318539858789112605425894898605944576499647044718817754333419909874175629874029740445031412645331919395728772075803039348909281938403930522610994486502854383858780553136733663159610811104040174864132185332319449480199306523390096551438674660383144725501211465836055799965127527479952293464259751680275708268836667903528624745188847754596156411983958900826553131530369253531060675412965379043779532528191817965840070136938803625490392015656206767882156603926539723954577282434671390933640462470904062380016940359648151665573310709394006087335877579416103123703210497947415377577543940956342855723606105537262720216778087360706146552609771422672671194542542742499895600953538170328025749347239749532373348091399415163183073257461440694196991409197682120836623979061658402308970032159986126245768097521173018145163911861033944355987723400780828918801621140042975727202874554756157564648378054943806478083087453664193474940836326749575388298795905970855518056473149628771181295013289295129012929131028981624037218795989858712176645510162761565511001358109875934977947678349278893605620515365957166401763534263419001511033179569758374000123833558060605055054430097891856058429283065699258560844873728769782097428809985972905874110761728874605893268282037329334297444235554440805189279733667764997361128302935236078844921332660933959108115039451716571309931663901050783993524955085141838598923924338391678693926964375393122010906205143948853324409549978352462741941118081603766090559889290980097488336355596178012877016472711586693121416048303430288126080588570851513932756244253108940352580014908719367349837515812433670438820269053325582380275976075540878864806162828064472287135273144211776898767535836170255706440615501056110438568151011956453117359828732371834540114931635076617563534149820362833589283092991935142419625916013486307792988636704615231573523621024693197756969092642243070104046125327606900402151191019098986396069085617682162954235663786241533328961337383713566394863567431848876557106406409058302705734067264981818174308408419053285104162165387830436211069328759179868090120555988330786620928414443522820793029935933537098953476061843602545149512880995569984883128595298492826752206659178518199150190735256237034298008884079246723699403886795163926555286557182965804428684814497425746801541059735448894506158808172396080394383492996879307689713475535389204462374922675195397300835126364980477812957062758323067049508071324477428997149667613464468528239071522564596319941396381417515666004866048594832649972333171772900896319354287616492957910122710951923171938486122036929134614816003301838305487401859141298764523404726592306356320683834695213669932187694792006101489757263148493005858586082667499219235171344131930787681097198314226406100392021964653391574539095802297098820644504899893789200794931404605498726305914560878949175980196198707981246954444872606329089040681200868386932499266449320624165876301434595407496493974687781067096844363653490321399548376440619135063366476812891884483662608415479687708148733241253890496574954151368584555390565800427490839494011080269301847713438847476142313576168143641941543957307916125823696948514375742341576267202073834582612095163633029613320190062525521597887419540509960723412980191142906828525579168822168214357119850727748451651017361125065173295570772206129966448912914145500210535667819850263186207354869947474301574209188656880741214283472077487839038149637496748366949716082874249880644036257120439922089640182756487598643270983896188604623909428834024919590882726872046771321394357234181738714880697550281644999397781804597727992838430439904980547112331232692241852948176260282314837694443709282691749953509870921883267523415669350035427695531863417109907264927336811451857306761561766671284866182502595582881388927236041227205328723591568811518847169028389020323037792907792627466828098180165483431722229745606397435379454616713425986739522529814338516256535965448052638180421813280096333792965488466185295009728372211594907863350807390887686043355225288442627478250854272338417955135809928229484048696185870990445534868406241568933430979783540555303384132320436974445895618105335114548434968510880019723563545155604886696661345461737977870006520242449020395369650989268778222679053461144437254573612823725817254404757943147307343714681348429397305552614593553818408427816612530374811240970122358271793470387297412642801819932683358219317699636113706916491749803731877800144163806373884028145850932904068114348389123733785971698242082945577173831980637085951140583282514344622603921452773480573568340640741152874756480415504356065427687437694252309843353453216831161665811404699208774881358786982728153978816324222748385772263188133487306942282218226547009232974017744662727982372240125210847159806492471908162565393990593972460103696051497865393377792075009398363053955054888011107624003076951032724079042012007475524839025764087182054274653978688282154425961199165625789856433921526296192784134420730349163655169333013123558152056054596323338442465472197414047743875521998973526916308612170800937468826210788739450572922199338077578595402376426662731289852512245629089211751201418368295489593203004083490636822907896957387304490973602655618039075786768974145783245283965695005906761167819646692962842150781211330110287262763245551755709002028082561885681909455594027378831234051678945054644053235458583408374249925405747597560811759677021334802820359375719999134631930937682703702270852658196405123263706905474141889920870790130366645127770687646713761416425490288527730238055737867204482492253224400019870828088840425250210788804717076826083019770380841545827656057050240255807234333151879628417758471374973040402714215174979698296819435815227526179565866759228445313068831983963990724336139240776069898817520912583312872449507259900214096116624969872852522484511434457912499186124594327313285382389008816452064902464496577547548285482968800042764839366979710906297894249361998450770874993784434264257921550438780905129557345286907606150626420901788251056750320726851061019734905751039929957703724097338278641402459844209608953381528316943587002681563648567219583586662005771461258431040626715704895078542687566796689811612976973617445453533230203359210209465918720725421986494507558719186455061259499324279198892161098971877038711976860313947418153340407015851719028033959117814922576383976490396854643382232983573140013907592490526778221693040581751877561040269669289003961154114888263148084716774294976513264217482295561270288757329458544386557568350145188480226287048387212823830210830233706537317321717846514402564364608003715785120060801026856675599231462384624297466838941749994402167055942503591351048681171109196312881339957588796160482724159223900200255625337083343806027048012435485297288394422312459261638494637501771925063963427986498244175245458329151847174969492261179325399823696486391903319623274298855030268087280654972038043325947336644101413340837329749223822216263150436583781089034027831737710881786739502086518049282257619088896594224942290308063005573451351642077304424451618693317472500881069303559638037675971533076692300941232436643427194928064301692758347225670501173441315426407579607531884300515516105042555317486236219088444137714621757523548892891144262205110975849820728026507120365142827586417756421903103623395016565370263727814918433130238227584132274567986166588972808090578144771895551092290341667922853532392234001954835826914960870409464243821425988985420920057422718294775156681592596302420571989760606283343975140094145075859866280640670167853396743726637773830978158913046903175302117941265805331869507916146898180810442264208286654758132553308197331505975643381117510817417288423672281440851319673761174605462837344547527495465584353321139713530370000879627762011180246959346022819969602115769641259845360098864555473815935827491308599455767918945866108617293895427593091470668219061292382923968623294375316937144340582700725859752889264017446969983082460160699015912523090991227342314838340689823891458090003265384088984403933065473555286052378050986880281491919376390512790421665196371926696091408165992003721393785907094731254470653371055738251759957893820767708388774762226179328414279372620048320512131347481910359225911161180890922501276590512928507028961928640224637933423753877368878634188072453243981319600423595727253903579140506685671568481448068912364304679549357999286746811073868189764829122028672873446655120761907164666747144351459166379059251726007972006349099093124896552199952444796677839790799411582822028593978494549011105359192288583603948744886140633177065032844085081945931246906764512296861647307612350012384809733014483513362851574656359210113529617566916425722731713323538291053505897960840140540154551958065812353200564086794978835380282007646602977899414191078558060114266720164342069134104363215149045305432965418171242051778036508455791282631799049370998928772360333749600179624918603880358825062743595757151645107172805511557144675725295281421472696673787172211462510677618135103828237751013304934562970489431604192374129321734605086149623396187802657797994765163732957991641891505683993631093299141694295514266985972682142477098393330886864144297512268548500010540288054067725489702871352689894160701110656606805816311024018368646445439225184598293795284943247851354073202771400644908611827911202073865324702175051196237623306689402287647669117685722677099441683018691477191362562194161388334377658967421711363707757716560297464363339278350548839384183566755397349090185989585680258738548366297686957728220996552494843159712115314256552210084947567342937698457168107977095939925696151589704531902746354982184013741559763512496463140888542273527187723967858339306758584204666786154210540393170654277459946117593124121710644589656970171528952453186832946342600005116344695087758049022228181488388633895075945680815058601564887851045627705346882425502521869852554986325145567853521164684377055447831412633183802380256902230188648239816425699908703835722951604293599744940910766344389068199403237465091384301637923372067751475699049798990802633462708844295358013858509137989193829438637793277812067238433335887956671501930143897120124783093350923801326203347467823597477045366382414676235554545625172869165389476092752333808593629414994232352701664354044056307857916669166180948416895785344619010495238212549042141157671826094928040890555914919149511104966218949742477179274118661601027667466151386923993275481743246020143340530863392956981760925352767512699717354457889115211000347450709548468319233062325288169545055346307967064185826086187341414036435492416657144793022009974179863464322454487237190441609650168269774104968795092154553102896220797734205458207751440815728908739247311363569720096776037282765080470802179589460787555215760373346375985202625292562424055911397137820986947407351226988072796411007750688346023322135733861266004031173789527509425303365291642226482555210284808139027064970597960524434740518743958943694818745619451558254674131127537579333224641650393015859930097894880460617772495997242400850815042514237317416680248831106208337869574060490593815618233343170560079407264509631697367092010229813359985807858366217056732843238339369853194996798030063080031572795550256785428470131075534455119570040000215737312352354061026387228251736370795937815087507575877959467458297777058573000541588295116331017615009807489872784295005631505574831969509567247459713021914840760101661541563427725370812683807582938678649774904767898745561535866454958133668489474209039020978702219815805101469064503048258591288464206876084031038364421234676755602355250660320521740836734241828204376788982077224275175844748382207047898430409149227361320062083051073150784496602566998762537645845031899421282372962182538090414370961401790093447180137872622730089249719937158441364914677593296341551296581504542909483795016036269970756531064445372596544537391358864507475487419026187108260200075020948180558030476954402529484833687872855739461523557398804609548878045144970159807623141046195349633552263510136493814279157808676426623615885329337257766018850682586563470235560030471813620111723140801551967961240711116374791075457010647288359951193935481819237827496031360551675113354655387734613790467016218938725780408595288359503424726645294979411916348474353365482155984782381490595142857459336793096197074821640565627825058268099727321595192567155072035570866214944359256343803297530799031184315196265069573876836943731078607497761260494525845171728513403607266326964885069831575000849891741080587850873122159446054554429225633995391706223871687622871901413017255764226065700158473303197543854794330169546462279475834450163274990991438657383763303473720618852553809205682390363125423522275287837234515763255842604201935871738426601689780241172897491879508860274375253298093201390116891773497641401933082537578682887976475501361408547615949196483649341890679662591320665102181240538815170130177082193133073485643337748193025481683857022317608608460541056939781986066783282554314809588212173528025503650047937329415394487475115512844465220290401640132407890994011528863217408577071071829226397987727422365498448000000773330181283656605181279735751672398948145347283913517227000622434999034384683229072795709570268050497456643242895467433526736821878847638460258412108129788300103393307359413514499316672792910503412249785336565156833578614593107070964213268990992012183139768855960954574137137433030242625274299107417021124882620907713631739242436943122984603405653365068226033761656873698155213618495805250131419387447770458949343123455409016801530557863382910780769529653667745175516648774404225065020921345366206750320486373905661151526906918248494958528929129447640845900264638225195940329874046040182838636245149653713387812246016127077627947931377335502406704349461102459828167469417438870294192098874045334519914623988356604151213809502492229923605565255473038301131782189853398582273466099678271610307267638112719567443193505704810195624010826236021240012392067341703526634827466058700080309192617423617784026871051397462190244781610251979659161551743753843805163440127737069754517821354109918579262678780420703574751805348875800692394780054098513233804417816441125647093471314885941243821877037125520840576008992501462581801685631981454417723229669457028288259425201093498348225026291983965751373086809581127869013420030916669588717335556255008646321869955623120120762048906499290409495106979370302572340652578084958887683834714731002713223381806824293441653280209705821625529850528396438908233072105922979175085792483477345449521022357084170551363945728877155880292335442978937390341136721211353591606563728718796129605576579533344178125998404916331061086309228749265593060435920618147951898667367370269829015042316561153840622056396190266149726617095180509803604336237622539383133864622694344942573852197745427055527677285873587382297980366564495627253119822120021282178496124223255568432290365757434361558030813161198275005090965886149216572831460409407885167410199862600668171869258039498076815751767453111356222013008493336482244049312135044453836961963150343379247373828587896908435100032472983352090836938656301972951742611082320954505613619616528953664091147862159281319658355840270298736681450159645293339378356065427060807614830970836820571535446430282770468536352684997340342423670780565570610323504495062154049730539473267792205443139670147513246908743715506526364085868919664604265081061779817440575840607286876156040026056718055393969596946445602884447519798813612157689674190800077757419061489177030683278268855090720768412878041610542979994916699096307842822071595103029272201739689005116844919416807555872088545113643291470840218389440668864541017322170172513417738333182561120963117522223290551706764803565447482332783546247862443355409840768064675082698697820509351194889787556445666175208046570974282715726434387062728288212366693668534857356377066288044595506313345795648504148831478510472512890015413466240601225056816326689362851439627504569378674081438799821180263934903569651266663495276636641853764039205790650171362675300280212528188096923009138489195288352275299980732127864658582997755552034704621803378962188015081126530551809243768000372599494125572443540815206645548092578419504476658958678714699883257255469334038266517461539898038211230699830560734095393295352518980206946511120979988664213110782867920276486847133216628201790690461483590504262311738075163329092829762745503060165683440789488205382541218805952259084680639267542194037912608686800402730821776567273994714038047608477791762101145018672277115396912868382692959278484280803277311379515394240474794582027698313673978823584326105116197924692549126940453609189472927478392288170617783882864157053819373277961399971977347005875126541987335526437411132164317246091482761875874141019773416655524915573458827972456160136763115325023284061524521314334859392964530431467713446462539233646310498860709194753258351419920095152752974365891849488872469464451128927655505075666136057366840305124497361532013853972817655120552384847223811330257637899405194090643450075838487207518743350008981008293010110409436271588967530304825182703998716677324727972273919734316131440259118174039041564924907359436469654272793370249919750419977203723358506825712423076356117608431930666726087749237054870887686489904322119618074459375104578203228088548115600583582803526061594280893223850305994792980684418085794893644633159421278066268597210493048550886705932858346403491438766987882564603220329772612889642661138122227158523601322494943571780898492714895673383655746709767271008158564273717620218712588309946189679673283265326498522246050003118408251019993873268853957605934833488256625662881025578370302167369114241177288512957910616985336432088766046022719511726900263590112371813364778845534103139216547858969866242974111477478514653105015825718363294972598575171156825956604536490153164385976264532846686084619061786453470605815302350316643240869840093716306430704803963273370888822748904895346631773115194217245606800842567772901346295893097295956567666749891822040807841208558357599535329345378225234803776268608571966247150689907365736339230958977386754882592745959550377318534306984363262795190624305588792516811931065919797636487889161508183954647219701580884921386716437666423735805125268659003231672265640196308971843724906947516272229834162487176278537001210987794365880978228790512419805201604609663205646167275950883542365629203346682356052870783923593989980226886328228588867916237189057531842760727862478411066985652780607098317174789699019230164058669178972516833783957658319974043812748168245589985217227290945905911853838504006926249457092760849468619254573666854205599358191774522970718992809922558082923451146274989904734827791859167868328718751733414680800030523007953556275544646415669456670749882177313596148134455209014787829565646447309686956312436286636950180364501257762897158886729767723421651542609081365565775216284429071552341396804775046773952378176002845630741636023114594893117855342308682286692527346650218538803119985274890484876117860057195481875674845086642316686341687362636009540095562943731643663655426621097446141811063881056823233310296008174196546752915296376287472010723011312817727852974380078358776142628375232459152600216203262979599889327295384841902653011552164730137806723572825471784339851423590003237463497050377682246697488912539286009527048537057557154177299063823631664517611864358181262659726602735369362355777772111538704158083661193509886658119330438007229647185275076899607685844041908140768520374855769177081941449106485862827022203999313096719290891060372562282977287069388386250426699386274289109581776648790506076974760635637698245555782859257625924104189485436284646545245933814817512756926761871958548542869800807688405775092537075997956976264620994320805089425163911393278455750290043722651767825014863836930833869184501078677298278774769541452245039406249977617597373895901212947496100891038615394073843586940843080251693616875106771653195583156037441564285427527242410467432848028377657976647243299192342636549650490592759583070457153664945756563962557911259461057755189839403571916720061786749020970565689625500424136352345591092476544270198878680801964621211363280197703829565727954380082534444323844567260039913173545807876823266101739917351921260170575272809852872316533630783745519927524510815330543520426430532450958710481908547528500889156387082797541953501020341421787040959371191744714899081163579497282311103662516588659030759853738624923572517507004638424234974244869164125021519512038242972178032187159489401427110907005567389135279805321585551311758401690899434967518337207880730481027760854216889977871281085586594109512334442913384883465205028965917232629333419208261569288539286912981794889607009209005846721604845268439805266478420384139038937494397715948968521017547182715346360276867996591346112300864683746811860382428560238591293301520577520200864296953222065148903641636242393733440859374845098976230114880457309197988007959330807896742006822161860524892243502637089868419904255625819278065403342296014927862790827352676504986364049557383415815516895578693424989710410386321266433741369165351397592361269149239266433655408684765664156057637816490258629306942399938072236454259935154482482893136940119379887415942855931147647789933548118825344604913581987039548937949125205333200348701796248756629041630444519475529595547812113991380660435491328088049568538215100732338163721578598092249044005963511490108218239234411638020622110567637889170537504014485132973392387798253389708921510251734665016080023770276526964041428232943454373226327116424593885794813645571456272151841119771626630298682663833476305648980446387506058889790959999862108556587245497472056227315794269222942310530668552548237734443352658565182094958752599373144280899690862516592639929957858718512413774122278398156224494438465788197465701140813324590813889481912702283120928151594459445745768647540788705032194187564502571941643194698038757073745875576897649915030239629812746609261778515080220642822493282212030085515390071062174139136527405284608633658267651019361353606516512094807483776410572877455107526773969192295941709563070317098603568445790540352077071929134100426826763625457714304418544280801642394002237236280238112794447411367077826007809934710695911693270199100213547815377677780014132751204933049872816673588889875442098698499544664769626799978019427193869102055167432337478076042772986772104593359425865360393755768510707614343531326093171671455301955547388954096967176614296858119376343235192415522927483045155409173726139102678762576047060345940265163048238632255376533598452970596768889167527286697897670518097575117544168258952491345997821031483004531391294466294915654860885002505179644152586970634323766721663246316148517106503657124866062172481748616978188519457830701615549794398914123202910959671640521990161124600697310583318056191204308153462520851696648396627861594349567311557625765618263384365746310855113703790630872038867902940005808817662964500414045065482179052159241734755517786996695421233401764383497611395120262757767663832755776088224392224486094047580039910303570461716366688641604755211884446009446651858844676832494767470654971518919252015016692347883607637648582817571258009026146760363872600476729424304551731704761098278807461619033638001866789895020577040882778489936025195199027746608456103173300847776773106219403277129373630443040788665102812007277740252295547031178520894665801374118667826488466736899053840274293683710335439717952763131541387294749388652030912247782279552075534442272560899011720032018174958460532623915191262567013692516078271924431588411698670648637506815928502183063820856044279534138215151915965885475500011240810298370017978876637139797336942140413274306933831366596320010569715462154473775859610154753117606905060672003925329704866830880854774372466166859790364555341264135332551760739191820163265722601095138227483552069023278762733675199600142505161306321104600526574803474533478955741684140133778941824342949765665003840598147714051701637290541159798090945054656126352028768709552458399552576939936670034158359236162751347512197691556461645146270034056251772048600978755554409359659435499650360917701795203836024501784301376947794854267988534163213801812289671721937714891563956162117177660078809354251491377795110046748103085771284567262642022442984467777188380100266816617527402457203400320101012819715820677416592738877109833319645026417653426761004622894278331180044085582433749789977889391116654150224713375417201799186112009896455960870792792947279570561201064266954809885032400309856555310795694964061504396559487844187087168946069931916327309776413724792061391525358948280760974936994082800820947510246758699594021325143130618812065943761529684612079644415803157080656514732438789852804020484041309984263977256865214797721728672741128216680732249251213319920305911985778592817514647005852815278241249409459437909619590820566291908639099049997552582919614616195122107914933939135914778875595858329574173039178163293843364149547621795868084191374125383156173283569447194917485317996480243159742987875345141655618118825510063989804469159143164026691882203880538329639077780752963830409713174887709369693289667783392421587680013936649918906791626259581275092661556401594722753320877853694654641884806722351735713154981698659192198976504817486362273605405721329081040079437569223015133856729599718775853504271709383250206923300105225369452066065771883599946852168249256180364161560590450819173962946856771340266832163810787926920846884077428148599799821185342765362687330093149795956315805778523744052262344795540357730545153465582059980807888923772100268178869945765578596146803982982195955651545265592219840013575714734710303283517941954624923695627494538092914513433182445372570612876621610237385415706753521489855441213459609168216982163186187129545687807618509564341524829907775042143246589716494502769711465760229710365454306997358354101274103801770400024343355575893530169859913074193580004251693795550599128084824035086844420365430428468970230817761046512649317833639590102695807931399776324912547798614964483080189161131062942727909779423547756330813755313360532081420814039559376337932320678539936097195744720054345933167393672732337521315902920418736782325159571434451098971947687802698745143275743854915259086704937084750493196201917268495606106636843281914164377848292185981772833571780390145005170894855833733992203209292036984982568880450670072587143568277623457130458401136026007571116554043425261788371640874075058491481317248411578411860061277786170963189654788668445952255189710135062513391749148421973644125509974190356737349354917778266838318508075619878472626306705323682529314119693723495711812691580181399831497668196648154926732680398701780999516148508346073456512853498407616473772879505547559810967436892347312854067165363239266866237339709169776177523740668062703208584365724984060668974692743220030787298938289661321400251553938957321349072033081082939426009524118634636961701852817826481262744675184603606511747191616603059708129092221276338996978374234511883811456690333960185292036030826096081286396436671774582170257945352735438748789051538046430827312530724463302062716879031860561780827385387351487632132190726073466375343531962164572089606457423094949762201355516259174246544708945786599753986880333173932062067079745394650812981783038352899204538791346742757860041343694434535226923902563219882641885413977169285724660833309084715753209568013981087417506430149639463532698972291728596196054729954649263754243593053610331908039068883220735640075645729474206664797645031345312150130732157309792347458882403742100311896253304842223972120301333188231231196843257184396120062400658024329961470230882767143674216857033391372566273248235817082798085440313812064133303240059378796569612417754001048357541685116638643085611636888970089108621480756759981782446030959534426297821122763536559790923680643454064135867643296895629426365563286356386160518428030052891111677615209122089821036985782238711158019052278540942459821307122219429732454923409987179547132191879703110412180702423810555318289682521312556944559198073536006959337351822502130442582877879130168471376338371868632566666789462219746771589786529204759693905473578670724393949362539028462977707021715809065627513772750238008230099932260400247201901905118544390905791361329012661287851032906483558048311091841601093974996909672483459187802144857382227375673212223963421556276321868776918039823492080078814900717127426854990275518317879847037135227681075123755529011923556964559499769537443163608986043796014206733550921911694106606035207538815482951484974927495274101988751799674234701722816777808937128945698321580165776160738369039795288176475796003756339933963675932431423547303260897085000009658772146696308064670868353134799824864178895793056882061409920748762854391185819228508236989110003715769759410570995916872087898232082831154602974371298127294478706135614319958051318789759750438387327319721756166670478206043901278757383632351554303783848591707351005753036297108658054851407339928487918989719712348729685530237693975740481188167931565634766976524418398488489118534846989366150561103165112149112676561293956426040429969094728623467172964328401616809729302829732366188030872215640269693245295989427920222716659335462733418842045479306987553811750637975620744616306390246952640301676839368146624051516615028501915652442830809454642405990206922321554486416349882931216732513313292242823442549624418822644060939114849554652497059334080918642236089106981652717273862541730033638944434222720776772785782918897740713148289464814694135715233564848138996949316640534492862618732335419586246578642326148312447230551032512148991690109486354602443306276108058782908167437929070644950013454731192081538185873922385940751211756903905920233269544864250741079571886988967168621102691390484666420031844100354303221862934919238102402485082725393104772319338805844373548121717289228638651665382234097909895559065164677218734970081470671348591870719710934036135950760068009736501947473266155693991879246712285097267498268028908640260166803380263559434724962670180803234075179379300998986134684248074001656762103269857207836491555530192222829854861478838678706525974203780936653329326085081218505497076684527998600647916595542997780285221925283032032705307743206438129202711507622127499277492782657384796939164317447680801685411492976322672661298213616548993182177978801512407155643801373712664399313338431405898274372471834127979440480460105948965486833399036123066543788341507488440420954524870845440918825019760460920678143710139392234515895688398000661857332075040930985121438317023501222770644804191591709258373716660550950235132367461602060372822758901784585744674670367886902076614831438471961413406825792311865524926348220606231961492741090273687315149092056619044624321003986824718465488436602840911213097303854537477691942207230199127899640372944480482669873517983041085212880215002618154627891036326372478417501094102007957639772768406738709603486286257427578225136528566147793354973376528022178798542396137177469485713045480938323794678299485519460586885501448953887672166404647855237150830244828368063137149953828725902254861175107481985693140424596264232274359558657068209826066848658829224375785531513409268999844217722471612288937997330140672156617254079588516624361185569999896460123159091901119032646487551501210604761239673690749144181934476159226218226376487527012663163670493999620904365622808154141357152551577365191181833593527156141306517480809402075258659431315470208401198920299550704090951788713406681577277234387205673963126134664012070923623401325719988730311336650219860890787374410814986376459661789024739245791255140409756922765703279265381236069289789139843151270693139477029733125847301395827905900739479549319800880780818091364038863912447200736408763493754147394774256918896326434511773633578177678599969530670355181953698863278563595639566481988095157633502909804340506442675552465284814871868885837749916884780212306754788675901797388787436067989609611293827712807761138119648410638462892668081160560388601770166334860320512285730931039698776925713526999696843977859322060786044018655170285799061438070621458566470415966576613680199219397273123684859651726226135803284921142783437686151147980288364276344372960556802164023839249557762930641143209850287009619408727712815859303309751993081347088205131057570166832081935483969973972535215902595606928889583416880946563330188303921696347499037955793935858713881640595104269463750629023392470568172824727972985213377360308421349190082135219814666287731186185674396078123778300002705993165545000430821310227692796876384382029379464168404562993344831575059534651222764389974940223489051421169933903273760692869517047560701048676281573757914563154171671072176632778470203863687269951945577080923424586611370429566891091038331316371946732284034643900360985108131577173172799546224525490596957806847949452365009590019046284785901281984175193266899789771011787150139122171292994296600279539264984312300158359688887148411841365622664201166449813793811463031667636760804291051747607307713940867370616418699470228903482039770003267098406137346095826480146322446443640639138136436305063545080957597294043937498772745236194531466675103491958461303321809776718638078734086566864907327286637280454844665227830322928769663920267436369491822822498174016274353579210196367280072064219778334614282180586379621810577759390682095026608224792359017328301107219888529187899140594256453947355051603018207805544383432945375786605631370151816018255145303457976474346944005501905216157711915700134231131432412166320937107956738680766303206417601178578602803582011784799945825272614683640955889278165013628712770015022354673880702419773166296290410145208248666290710620805006269402633542220971042627756325561078178229821108063524493514698067480950603823100365675131100911737422158565334221277670243928561060613795097506491587033071400603964278654054837824613684505647672727142956057726066615558030952735004683771812679188095184347119038637733361061143434847549703151676182194486921177301282787975577623694730600234958408108501028678888754180758517087218233842498434260144323224325919969085919989475393281294128851464069299969371408936641025073840964953983786771665909292956550672113484170841164577050982668207461173675293202324326652524144559798451588564317484461503159221832634129105277951302513604412240758037582722277364758683413050211389024989781892333529978222565252113580268197543779505033168941467766618104625129644851468809717531467505770260978229436556408305514251298540330663898635257502776619795900625045387248400468287251316380455377136071501331277818612958210688822607045530218542715963400565966116736911752092128680921405871687240715751533005782317885105739134819229366965313047356066087082835661884299822104978417431191021854946108763169301613015995871593363272231361589694068079711409513415401620996380837111717893280466015732893679838779763267908076438567983220894596581211609724149687674031965691948730927150779245947752235611242294826416968770638505800881998317329741556168203883943312968257923570627854122847826459930984005226597672740466486955189107285900786789593164995408287233561848160146490367467722174325037755884386700924052330272881385127073342308349143228029617483753476448685630958611046958531550354170425501282021904960488410029382513705266652574094340909225004146515816817568607957021664401450855246758997456066684033705830192556655830649799212029369677925741081393286618191974326898287265825472449205895789150602938089906104689205113864547154545128126606461281583862868261879094446025947240844949227694341074267459648227970820011019946167315159982428508339238410899596100327616440129450799688862729456098945299884862313990133708401541536413711360030966916258982620875672695101642082676886245139835536017908469152117494980012339181349438550890829403487308278966202339524528357900651681689584548574942740433779769505447174929631029171380248649887967091382450472339827199699682425237266614859235991104333295937603552807717703143670275123525723422528918994965387171806439979528080204636744158717877730892871769569637721209052745493329963299495657915631054861557868609519354708258676744263009568382249028686366981761756790344326975110113609594905249098515965020108887235844277820299287573395816966195865447985632949513928302504700013880872715856717286905819011318884558531582229830074847691437221206008194904088757753806429063845088830757951932800753216276738940638262051425898474143144622642534212467553679927622444180571008584080206891225099610678538500832846968018758921141392597020596315275241694223961264650706339396380489263799852520466206915325161113905360246078663935524592472447350084709485844307110797998272586189559352003286810960018605956166513843623359899260907860768865933620606189121123897170253537282758378362729880955692560716751777337148122117333239463664331297893164257416340325659750856390145374610368957674783231694194968799305891956560088599547697618892411824378281444394561689902363447379329630454259777900035266955795687703585642773988226994602120855611541964663227941155521766199365430477091698035314008845101248518904657827903560628802829061113771946711960693242884849447121391449152161887901743459405273373189963196758851107444862384727484520681053540346260123317826998881072228937662515266550958091197772998498596370554248410426371631498923441986034046415784346021375590077737168903290053099234761062050838259509092878289297277716977283834051595751506264133142655665974359979535695599313620160326474551189112989570372824304230506838148141024978860643722602213407375886493206443820937192588766150669774262468066351004267718061364761378579377870984171467242991499959352081146211707708730633824445242293566796877309280704075982559404803209289139160625230874430905153268384435688621256716319138724190546932323616852524332167453277432780036165050123654427063582901574117522205334409070776485773663545775121866521288676924425676571806513961451404270577355980489329966127156882349186418259832805979640345960565190563368510280607235466027132278739695045715680939784240033108769927022803918504873652623864984985933299358891785928315630599747708667093484357320929846580083095148330898361648713129377540006463564863741344666933974105432357233076844698535958908512669681440418428122097256526727936615455041964140155834254885135167883595567144158895064327236123379165161977538628812199669926931298039855623221820110415683482398825020850126223962844546994044712377582196443065667222883584484655702647082880010029641150052796457363950541593725301221354136130237779242669064348019428075271821164505930003753766454315829037137850139077108535745131162520350336101994449691253464281028038023976605672520047974914315719861859083997473633619180380596346852285595393845700887463648440907263095816804826402543068848804524511491780234419510399161486398752371165890512585575440516471763441195169589866068774246730353853102057531336473232756682900351462438039847503243570651599165469149460314833104618310845800060092212617555248805597054838587988667675243222954851398262092945648272893429875893589303283864646471772701762305825938415597464447552906594715732815371613908699809175138098653284419390303320958714901059698661969104867306274270266553774653811353536613238496939377824226727685156734182407959201531258303953285795237663447168068198590185847401913872179699060152748454633502904558189001506309200206197461249859511765448470575299318482720658724470424528827130448424888765696360936517009094790875419510588593322448438697517190918341325875836129731841078337083778116200166223405050997133515474131773849972233068112836663101954313019648566142691305899269402121510723995514270593053960044103430055423502184730307179685236049427157075715618054490297308865638759718630582812274632465481171470526084172920698159254890319032582984750311174148757908211715784145807486940720619891937776759514407991172723255231664948601221635048766937676889274104723087855252143798197494069844113952131418703770939191370792600080942513677419028146015762133205972330413201366006130118025510558046116255619558446043993103662309645093116199212221109052835770665660607023154617143149948907599431854137939915122658346751641556174125046362299641615206870604744425394520091956197753450502762863780691198530221510989624330706605984998071760331261602818836819162921064857382724875300802477686753691953964314175780651349551070420621417450997757311447059765395059658662981078030182276580385896497835372150183205899157401063889856384279278162703333222092056705711620642672683819241737808296631124938181442990888937576823300687827306499850855097607542456693800721383900514286372813375942173099771474994257261472279233966623817911980181936930994657072772845916215947630077431851937643244320191332899993371667318572842539789071469756963643000099507148695896527391961148253577717973108235523941399094999874777266563301030003592429783104104984034436586919717168968023189307888254771309255212276343483406320477625329473120444431349059133348406991110669205654035976145246249994708031786537689540351762572707920466627289820382428157878628797808063278932221628345093150811427774035928961085765393003672911143624129005886000851404019861891186051928139100342803889156718489504092081079848527131661084429043761905980329410521761698466605668816961156070579755578910316302250204354106570136474702080941571948625381483890042516041447731883424890033251540149830345007409593072619316148250018256739100101073566849068516657225202107097421340473662093974963000695862346727055656362600399790988401166812420267663525473164098202419067604681543009942570158130856929058655991567903329119176608276460691184241120328118805531792914342215570203345746421610729266259044935909473413096972317611105363192958718911215601423898209117528891133021762019010915344751080312203187714647201571361771869569600534962070580001740674879631939800317267252437132668772841123551912502710009972975407581950566714447557562380735576530348310677901585219643727393383957986648919313969074790640102813834095433717801422291382402461644379531214651667052285855133681111433794717761607450818239668853312293304135142214043019716436666915864419297874851518956819307832279580727939082866780033788202696304967754123627955388029723644420522812484556123146626218563008435616649424540555170559267310518921575986322274049956068461824176818481804486718241303018931074906029210333215799129610833525901255537286705992985407811557256604516225650067059864743513968740578875973568944839107427060628873078540338626223839225899576337761597028866724977395972060167474108047543082220385729535943152333210824178837554743004428000971867015375195885054347844951826903899524310265797025795708339778196943590740024489369335527327356001376358067299404428766372466761611894048595727775924075805263337731893201073086662513222811780867332402393834083045722796661836023227978538531523593665654416333846324578156531200543759820771779706597093744912697009639103744092099690031741980035869112547719135745252291571232786588858071295626686568748029373431953550631565012213245410998624031649908945459473938363471663034409273327028325547815439326607965886487688245100758231618039405893191053981742108270288789188879202543601161584726597483551894588546872411070474157426998386163494137382219763206665495637833761930157813768835151043774372080964102419932828284453655378647417597062605113428772359166262664383806124125371385725847707217959131057568524496588724157415242142204326191685128276273175115119445370995837900606271149058895077840498768419178118274129191621276004497640488880584076202460660368593504203409792858545964812381220888030653101169926464230012287616860880445669502573089950140955632258808597101939634338439481275931298115820192238144036973858180491381842155077311580566286812188201600565057234300736140285131761022153288504577242755030089487514013081708961714171621708405244025772611680840603316109052060098996358393825899221570760895581535702054933648794053942888214095878941527343637686867688055167033686369865002780048959728725410392887347821829965340712134299481848148238274868124167567101810862728747322497844036274669290316277708739835416383444383247139414114663426018585949977940535173222827251896792257747567737237744027605048536670224609225400866496853065914650690007216943282518519390869207942951065572447127315358797919864382672031848131355130957213747376488566256321831419733873948457416005705994951418413883455490173954821682520787345367316173834224346939431142288669312317587197488159677638772530723130753925410465179526008951998866222108840464087375031282367133898906885257272408774881113709535717105012208429443641778684264240999421423163288600375163268759443407748622264637366916743598778334901618033999933788611342877391855330897859342115727850033222659845912427967795251912518973100700643685533328077770971963880429376745481996427071440407369160431969049263071744572246310857530378336196776487088695590620286401467437139115341477770087431801054367208983657165979701346488528985102287850114595337667041175511084935712476511747748597047447416235925031816858218911893085063837344185424145076094383246825906244977457009498269244458469239419643858510738302554614868327199400444003159970424873416059108287242211041648765444474754246509136415484536462463671779972485479430826306219646863886746371751470438164654906822401820989320917918406349746356112156000291711559457653174360662004951487029678954310245123620409832447596250018913770658918725502698456707659566149520819053980072525663806571787651439109493945679722865769795556647629843606752452805467362979194132881440995409981729524066950429641121536340138936764636774113031617994544898120296456513171925048061863757507770040428212702973504520852581275173862975688141544718416442981839204039727319578796366754118546172381692879244458322992432273165895843507675263526854513161404020181051860073449098114113022587889464804239282986289543481770961630484350184470948593250933225641961109683106592881829926361590807444951875842967240492481430969596711600584396848643245650709873014014705682983930499883612793966793546295169620306987784961129044862252791655389024817776835068673890535167680834763538611126971590316000866039407560904714472600075248386978827220837776137070805893035551705217749219701963007334980570385727272852873989238459757609621682177636133737688689037824974258900787572488772488157060865443549816240029616258375308876548022565137265624473071070078252728288181457710317774542016319708409928395986249940318274606393099986302327979675017064477122704019267598916112347784032356845970930835912759477868494722851931278320616648092290192538080296916392493880321865121042768509670598223183333078051376948745072102343673320404096109995383661253875471901406132809146651643257664322356704952202795275564338223740594300427527791144399579392074667621058833781285006344269014397709384076311685620712580601524026175112546769618737515982890736282484384358369510738895938097368473565728928340504873608927835028646871657924926020962081737631299254318287426434991225317691665241993170450269548243063707153606010191777372966654987690408273069090325413274020481463974570721922150312403160509418566904954940753304905813791667085258516093841590371584766037762024333322099427281425349230071488347274955971362086755105727325082588063322650036383691226994470502154254207963173564115477191307735193099957867855828518232532584372291049391799534080874560787471625047127048527453033347406211733155596263379928650839240597523099888208059333792627188231888093579112262921387449657176724001531985870821346934165998204119797810083722435933862748264450593934142452402908503854728824029832292493326779942005526176930911259592360724822236028716044847856667630246540283612327989992360146480388416537592337133247838139524688017662710606798579225180467430938491128444557515386265936245747236869941197325406925646653850621387242848041348285028804039065296521059387989343228893621018256483313186632085969586036699206259014475617030678812540971425639519479321395304328675693192013141108304121561063467220194612257261370124564027418344192642441003311575529491881451015665886551113463697484497841112777639407405781471458929265580818898817029474003779403961444385146337979889415068556954581080309317975259609996495107031593737002030118614720234326974846277783003395398361371719099518386664367980120435046219397271791325325789583732277631320413493489743133700875053497923407156452409967862416226724983797523338401250090378682999488288319713682095258785923129212735278490193101561786462518253468936675754886267502252729328039006444810834614296974018377346862432988908377853863259788393371270729748346565999916260555183149627733569751617126778240549695811450393806878720988617094189195484831481681477142699484747156944023822986486993128878214207842343624007880663950303011696012472440046851277537025458536774032420567102108943231829449808835183170899330511454788212645388022865249113314692144585140432263114916640836692487916916453108041731369556882233780586336695425062131793180598504167429816700536525763422800415908717306687961760105540948366479513033329841597768613299413766905694746633130572309035199421010140076216422600480397854024695286836229826377326824293906821108769808833712594644832827592429710011803784554256418807932041475677473251104153230024222116571610626594884706500747973934294640950730615565061572722485823903750108285129035438682522383401890723364985608452321439095593760733839824144530238394856851225218581816316548521895198571497299075369459731453497801487808632546841440682899871091846188765680529117870046264841653275343047420086102884143398292292908076905379603123362013340685163655749874839363357092871327061019955520071398568179204423601893028802032253013796766387499406165820302102084602977146676957599174759319700331885920071591341809202412362804634329115627685120263285897430486104142171331336491081283554601899487360988667304186906547248745226196558944119858712417376559717853980534757263428102611470684859312581351870914367276444782206934941349654915971582401353864745259450172608558468653680658359377465592035886564520992450469487147800986642822622321027163070100424784548490932510154733641760576578518304132924400581829696736029308092715939295694870566969543908917759219393118545248573489456047593774539492821011723577931115746209526462327647646444455663897966516865174922627990955830386691563369314926844511501065491563962017061881068871315461165093514472317744962883047520182313758588150081812019606697075363200638410917087451179117262360123507309760665300208975551732187327287212820809767681139213412341118470077235590172517612704617059381343076955323683146594436602647289551125997261789070117843462259517156552963957291995983539485104269532898259833762629389619487000967355211902532632004156457609837136605352426893060267272123520807939539968435353566870562637473207580019054083379323155677420896732123187983206861125659605368481814197825424036576698746132943972401572173376955076543510890438418872954807791726214648232071349385473243601890403951233487428191877875606086324707929429772235739931044411951074254804974042355273792117427014055014902039917136197133533062593589118313627270908001592953937463774543881294449129600976492381974448921303496821633417660697369556763024249344450065913540421487754962219938271418603483533350604863698736009313747503819645555871699897672326856840947949712788943852117204684977853638541531429762741216781054868064692767915376506918663114013712648793405668711469701643690497865216037230453552848947041091994729060878171880856861086580927253311744030909798550073762163266787498828380498059906115880676024475653159958498850564896667203011173295821432218597507995138696899775280716278487531881863533895070005377304299478494884720081945997497429192238852685640634107666438558359182136006178775919352861742287615702263262846187307168196680354760078421979010157391731970139370476562449368595269454885352665316332668154126144700686326618674914176371257265903944253146220295496559416918466297476588552892155300625070444718031470723848612146346323808395096793693821799791750038531152714084302367816022513527316458639322761726136643980231559689005408459404672332220000480146346770986457848586585480027593881506569653613171167738212247719260520175728099039585997136002553897468957857697781741437413061611459463534181038890055040610383099203049711570763985497672420017879182751359114683080816038743427493785670051250330381635316050220115432194510348130579792774866038202299811469114131450392607048929506233807291233245570312249929224070071503810607605760010849958235214672174214880359349995432370873410268930312002656112726445761477951994070128702197939440791663027480350737330585503587652448832750697895251066822515276650209981678609427484257802257641698264623935181901281425067379459048903967923720964702585642908472382748004707201494995108532470545580634259487283426447758493139882361427295436002185257279395084570050084952445243485927336918786879842528222456835305976209581961911527441417298317061192393841113676899156450030798132178392448970737581998392849701511717593213148130177889367925064144723153039479627199911514038852451471119130512337496020547785608159278594645343074843327510438207923429060252147992310754185767676988886635120955785826567912809350673018049314608771758149684574038297607620749874385172601365208706724607700620259313672854541133756835642170471451648892914756661833493346133738633283843799882350638374963418586815908189351103461214463607791302009657623234711218468699936237977521218007160103836183162196475055112575866423978830130026271506171642815100145795225852387144803552022814119449434809089951680084802205367050660231252134813755488499600958449848135888009995048761895497181764059527935032680262441496072501021755912921265735739825410297707429827359636147993517985765819112646010677933516548875629987471572694389248391917948769260438692392064030379827080252928348131588530072884493373081581342579041486851619568464515995165548347418912916956779016455453041731616879900806213534554115351523151107014942519461498220479511115426377680046037027964262851366928328601703381525722206430307513648648438838116228749022939062733559151610511252526619206707214247839304654204259938455012962320258618124543383999015781819085209689840025567924537414514065349752260077483932527074035388133317856732777623596252418709395724239810367136152649351482350432856990120900849899448961326026443347775036044759248087004556619212868921211011499853234896547837257197566700031790147371868062538619443447302758748194650696778040241914156592308481881345634345845289770790206981235122464569000001695235753960963585887124023740508423177559316602177538151561890250325481509171759429584454305638883146957672910913626886852091378348867613230382233430093148966951688982814213407313801802154218825466591025308368727765189057472248818899263075336284050041369217311274878795043065833689155570174918088259806495390356624172151814424704539407300851954454898919292431788830811222791867973431112321335975276026688212133277469182282844916449077166380827240093844964209785090015693813853510007959769801710490523462422436247729321611830077321408863606675393248023685613633100496972241336685313506427035146613128036486766867639844135579283500669327928306120986526293876019157284256111861216879738015913085595883950259842026660916704862852787834699170300779356727450458608729623291390645196920593670189183599454193394538503187036177144534496354159806983033313174919589965212700870767304566091915932500486353123324445631191997398281824600867992989969574592877609737689416297068077243316452297741245772428347621796380419573669903102282045260909052094908389281943143111770013799641972880568601105160150290776943999166911817098833988698374028158385010468428646203316345225878958307243277086238998005950649322556773805447129107319651249639878140017361783220921216269750723667122951383267767777532728456203428835305574664532986672798517413021083325475220399538154717526731269071722894971781574987517184686316340025964951238665133584707443352762219559921563209474003544939988191518199584393139790473391355272131992709308150165022553732823516777082168305217635870376995070529598449340016645372543751451687614581678465305773184579435877113833225791676504852435599037788074859835435739623764116456125263598075851443295455998924131705376752163622881487075374145721174028243727107681756438264845375836532139179529813435350478388578386312362051270286988283603795457546136500525899487550927395807829098637369264684636722419804770452139412627027121803820376360721575898734047134955605580338205047875803683797454289526861754223101447255909512921713575602533674832979157888682799574283299621347850108517597574809854779562841238775681438144240732586433160116770156308442483765778840024628300539232601513281539358084337999790012393191764458219665904350369853733854706955543872462448119119756691641443921709285039832247737263033034265574971037019028902996622308634486993072374665601692833307516903333648922396029808046827221660227320528838421565237642280851429602288264398859117045163003357684555758505970315741875071850470272495047800825815138308268755353699961313250973404458493142470690080867005935225980020937930837203715676479839439684385312274482132650099799814910421098191246769498277183979676538520751801809359406056284941195449307045779869635318130668490338772371148945409042256133829156895846757007962943932729399885256135146341805727047407481662913333614939450978376828777666788350727805132021738391666257010093554082481361300770210397890596503627642482716098470630250528960244480226910347403131188893060478448268335928221608329221147964790246970562035720931901713574805486058982046432324695610108014187097289675576872585016831772788972592253426700422172684511205305827943327120674124731389232774916784158524524526256194905161236939954871337065426951576980227761157804430305356742315825593107966489363069180225899459841184252185401729405246831531081782081673997360760880076752873628375503204393533036983337909199225792011740026165134751346809751679060249746646917988146672168792794779199190589020984561429239701232664910895518310143982055290753573496954547648332140559466772617345305765590436448361891667534316904699482901345854598003856503865871505891174608201593966822562758333314128053474006500878102353595943859669481130438975562680567385782549982643670633067030386985221556249520950487904997795483936048885148804063641535121923712858704687925503180449505139479866977005127043840827342210762126118883044550737191214686728633837628835775834565800177108004556694802814424718046223238115168055341190453294236322992692306528937289102478760588352252546334449120031201681231869692647690426845381776365739710936865826314952479347952227915728318661825532242324919633405512146302097071501633861830472221339396175652193509086747900483638912610909846321557057344777480452980581186745663505661822745357379998332240280740474768638963350472402100462360704904989084061524614527596203428042190581610977939099648704986930492467186138571836434580948124944527889756395206925303247969275597145756854168286967723095143403764759472659353451047229486727325702035935117788962623379150389319512219306805834467765697762604560710108684075158154470926195013366783766642723106985409679910430529748828017614499057590869101585943680030473438807354215198691491741473015171719260440386711857742496897960180572835172933467145910354029228162887532836526902539103350398301789686475271362784677426923758066836858339568378936977335208767489696008486582377371127560423608298593425480984611205668114835171346563168478676128623306721681375014151989991943121489219584250431665610448385472589242117203936860366266349405506030781850608885335761598347492114721277525764877153671001440719653102763937032189459595653097060160848292731661818461232163100114237470044697822253332769966480292088449920956940194077706172553624475665730767246352197522487669963783413622584949368564003807731122421852768732417470407607209988369282600569904176975710651363519979123308502942117547095748203911892123230080761899051012105246483126643119769898964323711944483295390294518584556908691842371750648606114605340623200121403049398411905576167783007984051639243514422847865100747909957614432303814145660313956593597717539975392684067325283041692350303128386712144667118011431514268444159602457999010513141022575122674422462272883106330323605360409997289557082189375903110834359813249609676442840706067096312824312787225323195287500522639534628833081905432115895777005013112101769759568383175522641855515062075708501879962025127317407820827094827322714821416614689281265021056524382594018978782549323477495524748839612127024610792096597106487504953805019314366409148520847155103386723255863201512829935630604937949580384873691465851711591761082230057611551786634156134839914760420686234210245457926001323313453790006870925057872705203045046336783980335884224712122202618556939455652143405841217899202729932017821895212728312404980920512027529348391237553020564387741511053728658594437761938770641291521929633443053097270787594363583035185725216803199312163650573686086071273202354073659964109225876520650781036086140055953341060583183654799367865198301457701346688902700758274008123647836310987466168317963469818548457677604851075066781618266748009641659969067470177928926337188326453607103096145487853697237135276537061313713327089536637333752081190580031176560162267905401744271974129632768408407662045386758339158253517607932075237501556180300150164685773861967688348669291243575173914258436980272583959975454728098416615782853985942684132655769008546097462410126966111945898077377534107429542409959681098192621172796772990038610640908465185893307452613026160896377857632544668588056698752915365198614438652577958458993870296049432682068369878097027299573277111712425898941858560586151952041444184557431229684473716913167575847485533110936420670167774822537847265138753636789574882130098900881079240800852617599331821431356838021801987922253815452528270855769046819721498514900346624260662618186157198414630883798558545188306793971810012112591123066287888353685864400882976110703038879427896302590097090748876526718161325787116049333226168243371836985282818034431024245806003852962729496793589884659890253564430012019760701735797190968393212283926613746208087752279079441896096802113408907630144906601042070849590911193773526195744780738418618229804517812104626107174784080905459090274028274350454804852976240398770312018795037199160270197127157623906693689468955751025315486799407765419445648566236474189869255361814503648143787819737234275612212573879379924981887302375307548559744559897224751504027323864385311307965776870452051992872892096701469078096402082364002301659684667000924908434031725878540713800906697011797313465346473703223967769538361493234849773619052235547699400180721953287130822723546180941914795622780994370319299955116962862520861491371906121102356203985979854360177702000901895206227397864596708205315272348958310293398003926961628176533572927339534941970586676715746610381834366993884094201647956911863905728052167461954906693180727636996959893265397322305619419576780624626897749271922688822293720037689231110545168040287732888404301587378949827079380598396438601934250422626204314185438622022413039091276550434703239765353956286792144743691772972854232923419269163733350640885342802702279331749241586598173570204581745001752592607087080711103371961155940605630355128219500454008940316752876123816747508319594049838824443556408625378829702782592074241336167506588567468136249321082807194107437885878662457592733149511761065056056254860611362687913365989621172296276964380789262153435512267960638983742918050499105961438450477834950561248867275601452842888445326317077967599794526603916700194419118186448973945308987289606874850301722712269875046865652139700323272602363740267154298932949934875721605034127529134092743267447175123701751348613514100315219523615663696345745607604499581895539500568825212372997640003381722329331755194849311119775793646465489528876115404769429632167106108632858064766666455496726344936351066195443507542434273999201130453235206565883530124971626267483916672513764320483145563456973971014470646946091952790194795689534363205251627463216991916947171380877895085910764339998195966367192814370922873761460467090767554390519874205012734666933068481366401991339316208251583090523060852608591251136925875871886300813183854436709862471236424637615754806582256411362068111369304884178739076210534980722086624369957882898792643310140780759375677753092775131013766784081739766304361723553152989196312802302877955261620925676762311577807529637759830654734669012865307620397575439339790541301298298241371831872069478256834287290658075947482759393616564183370962634607462659788541699729290778453034456204339115504814759731819625178780962933155569694621303572136604118842256315103496890212545897956131621744616156170163791471844520721297076124560716238771846447641565322076199804117308019626105014493656714780163484879273492635884784473272988674431347582086576166079394939296386949965371085728353401512555961711544100846094813641426537903965269241267636709495585695127479196960594780408467192786723406069127951712488447116564302149789399758648529784385771230139719055352918533964809244051065328481953084541199142603982787870759005606253066603842550543616484439722286171697365676810155920106202515279460236914468610991657781594279775217622776209320404027023446040913530283899721903065911538124263049357662969260957261535338755665244545724275976311713730412646888018812512129297167983385542913181508700990132014485960570423045400242614338421848518384978666009794298098692783084298182815816602267866273435845464038681088176837583472526256113980824716050890493986129820808757836257616674297633981410693757295427004307136407421643892225798722085734116974412708381673711149221142507564214784551232216144211925999858201868815389744349502543014510344104465509608187892540468565410632424086865799462300966185830806505097229917563695335690826724386229770057529768224931953011355235410324859943856536297673862616115653262064902873208935522570106808495551715028266352700099917247633493549927229575675861193175444925553637746668671852721770906914561858568956653527167380181444064531782251668855543888413927455985064370256725704166495361718766397508904355652747453441174733745137412731206155519808882147735373057130841234759293486406328182591769525544439583219841807518687120254549422640045032207946394365935607990407533121395365708159052117349950887183095224334603309420790357382590240644356485612381059258878331363436217667204969599789355220575968238556204413762514326897003139488617900636866259886110890674723293978615062177667540298888837102487128639808372245161095075154840284212164996899190368286199839138114493162846195237570386145388234037228764187703832567856792414801840719233901376732348020862244785780459559803437332625371102203491685710639011003700494194080850378305955640680651832547676422525893934905599231108962410032915502320984851333606936197007099089704737672023383510806015692237824753458306398433521930558611817630200561335430471012660843688722451911933961816484249158453699122730567236357374281269523962107219429952293753030670016932876498148525433371891170716295483628527314144925635410601629256143915843411952214113796426309228523508662269148694760821744483693922077920762731884262845781677167312832213820862454248616785553221209462034759837265249055309208898619862611069553359161519771952047278963828461576004290496468248567900118651540819308541807869652904076803350007375552955554450538563505089522688454227418347172481502909249341968430721580783573552124974408548237365240100382558205212150736028298523571706349353879858791487122198171556620635560339011085695903354888914149433916004097704903363632559771880443271689342591420282364298263052056324763259933519644477182754797418792540477116409106228898022407471691176647011144873505375902727918175461777625359579388582723985343860762600382210665111324207997335740504627288473363870685995671825828723006548538062348695770310449937130967701147612995218856177385404900289463459478472840414472951848987722693426348738054553215936400249532102402135621045626902243694712695870352451611920416218378189052437422321680986486445995707978577707212877999797213353589142502042531653771259031030281691309592973196271821063993850317002846346412627629697102683780632043535731526960599417321610964309556664413787017612822871181313609170926993782590529329891879302643244040958901371360644597336601283452260877726603104874506425962517458525143945514633843794951106335573928250449527463560071062976871624963427011678881376596718478508409764166981842418292010217132662072806650948181276999641041589707528628393391437248924327458103834315830291109843101873271762332281977556362493889443016112814991956499653453832050021150573413202107401095547582384367960049285328032602919163610432000435231110625249236448564510710119832437587705739167571755470044634633286938321219918361773542973670202945924443106612856505026761315671471835791242070203488125129024200163789879661903784567464534613389626900613069240503677378280948510796754737099039310624363854789983238969573698666119212893904358822885944386997394359336913747093649054872837155557474712293120726541709582564095119905413720920120584186599600982725530279974592365297353482265043591785359242053750451844322340906934387559274499558309247901088656930437600107449916961779858185926759144482071560599540528668972526297164720025017573063810280313455393112923860244521379071623699158415401066475704824800676938438098873614403884087690711672280927739327221107383444214578509823801841852734524518872342336915939758698176862654060872188384966295595720527782161553259981429424592942346949328151614684097999393507544954377850657071383790156993513871668953217792177530951924999987883573257004143267986813671032191043218870985687653856537666478873719489636176002734920022928006047629424291775391140215411855951202613820288865303189102666397173527376840866752824275017923277380119830093613944302067618862980088916041109697697398646737961507001791590407698988822375592837517646558000467820082135338806565400406429755500222505793378311549670583000038890184866350206011654260592595656022917083754441240824015077224642906755480338739212148606461477228464931892010379941743908609659764255568319419904508857667165604370219480360288017587890393094805512694694812010268715891553651684983661538330861082975555261772130301369016918402375387385199741735131809159115176417314799864033987095117743116008535523987537498844132562651159611861210109427825753950549090335209487303359226953503833844154787756562255762197983820672360719072478283454077735339744662146152486278437098409902973770632386977947825020547079069377942763711196559105606113535048851431004813242725895779241603420162949271923006157560764569115124319306835010371358191948179846213147023360061920032957247299195663069407578992006591090754377656691033003148225150259111702319403027218205579002767869690242771622606947675621072685891369753516714690601302303893241264687800514826717766857220046339309688839021884836267318233923112896830540610606321167069925869234542066906982139673430383164806408284695160180980378000813566191532318545359536092115242876277594555853051544399274362498825543696538174666216546228116256017343750917404982921455994958874285653204972389726932212942038881745550379655300413961507588951565948001191647665336973974100539756140488087106654728350723019325519323095398386752792246558404390288089604566108401499030839228385042372453185357768790713286124710698887025772548356050655361803117635592352745098427681895688606509119565740658279137694281811578338163511838301248605840766885559727498026112636211742544557869649596451799992734021461743630451409561787566655568461029769954509963442323590177750192304093429922936516901097602832244804674547261937066633941395897251823783782582710611405860255944663867072513185353640883826319214657960127948789866507714715773201096188167343775879320284274107982466543567407731813680993916383069185473942970968207441277205218962990654731723678177365090684175072011847589120961461470231489882768793965804962397884189804422118520805985521026592233425484739300463660305713019673712758449183219754803865509018101728697928168414387476195296636165047625172476073941465423920863402727739007286584043516922079285820408842781695268390689453477710246689926067610120938023283480553903977750375697421344127187063868607353360599854963585524660655537384016308360204174429471803466373630452630100776339142135904298393335973106007780587138057446151470385698920987524004693013846158554622911298732599665277779682577801377642774284049199916949246395009648964157002593530986759437694196209232207702466117733873323195829212877631160732544938947720375949092902945652019225862391807415621299557196236614380498566782798366601807947298341557540970157810577634683422993620984790504746955106628492749452090693401030244057597415694580327197391851305616863317718929569105197298192306972410747561906201791744799180924486008717564480776159036675638262006033573218501785048816828099901306819097301022334997410826015648926151925550814636257231981316204766914824345191635979521941542553708315573649055494959375045411100912019618625370588988236074342830316202088686518155158532834222755233944568832583173456547784583354475075179493338619506648450315444772451741178417401264940797001032193668255817115456560621841233284968352562311408910518491273376601479382247055491687848894425321541143812925423196041458402466881168083981419458684766711118691297059439159629100398932329043782590169942832145717655648966871833174181865090094688763678683495786573019976282044472881254454903143431733852193165533059098021220296307688043272330964568216679508346609968702249194532934812249058745459304188372275259259501140636930849854302896230772052525173340182529212410577535794822148270457367857899155302980663177256179078728049250029648361509756913208762911382067177744930943102672084830769970384600644471292252265703523187547989173171464450475536998290847393461244408184552944423270856926393502022643230448320185111034089819877970463832026347083441028886249861215835622610625797625444011777393585541981231374921412673119088728778731606046601526277817834817864741749374173789570937148560928679448529519370093199586083684493228667042732119002900513510072441483793056868862953740716670044578743712608194000450482876396655501964238065466341114798136223650617431711387090358456465729157533584942646524936512758407644562806440886235507149735071396067996472668334164462266727853635401269593826364493631596285299413802035027140295081629179950543904132200862910271808186055175882326384421978539175926282290193318000504088035258180260854967238803881186457815040638297686611720513088057404408211854422721317486454648227850431987299694229526310173009379392859840015783689453112969076160962409850920902755389284127409817060881485717569612306427611910969167206850424343975872686331227097624617089610642817841563970811861355211406318504124666739826419647808706788173424815622168889824555909508570491974554224983516921942855533991758646349747541205055525335620585848156060693540452709080422338648860020789207296179626855622644321275295350155309161923076150268749988554039864376223908658400130178432418758886094510274061785310906630868966906281529269361858483958104566876470426562089052605638454273379954352406020144662874083664183883716991776646164667937400075706121226677811253487904913558510443924920698339507033172004711788900559753871673159415637248296011180240737390564366940833436239021370900018287334157245305547230054431027592823385405709957589047762854522802240182521522649992354850780989084423086142554700661476441119347776022133025362646117416389813434018054351663868283316243509570878561453310222379952567876398802073083410020412770383394950994534902063003837558409454402027628104222489509445813322428946624027648338264840916259448662294002377380163063426829715447785493566639554482309665356734463926868874569915669647906140112764905648536336878871318780549658992042364396535300453284386671979099976955586724760679011260588253100150877014083720406914957137180447862965560165838833290343919531559978119266022148604071525810420459573247580532687039944058945707499498371741484938860679245712324538674217718087641605698285390199825329440141192507831976399351551927960700573881050273095920751324242815107209386524213565687451422100155350484144709250434399672324059208404218915000286210088122733492813562931069140258246358883953020545914643402874841692204739273895812223936042204046067805573410774335565007172285017964612693275173196425978993624288126182750459256634128217141721512014886296436088711584714731589219268819281118080638386523011493849037737219756421283185385730225038342557914516831007148264011316818122346351752698155948287564023724159742950575492733138679423039413319786428910385166487336173537871756811812918589593716615275613009162935231265042697258949011246935678265046438293207295347720200249365511183320503194923047236647967170618021112594191608499459910494529827339851668497882351622530706381412364576972475072101467311194738140922384011915848519239060717590055020784632755472224964437163658686159095453714914567691402728797507566287435782460072418559461417328455931856752999563381511871059473510345082361868077430761393237535171495320319780863905991471115289492786855809025828618979352742353044240669265914460677159831391798657909669797319920905057226815645337666001310984525574778844924523336900370981560396669311900438970351734106185080580714435972265615472251065355266219677741018092652300213030784972058419020220802558983272055440194090903266770176229740480925104977892573806142993676610051115888144530919989109115638771028571708211784288336643117309851594529686417985876918980629262844743396388637024404044689732536653524147204213993420755961144713951077305811605784322107336488326268298062692105376783912462910984331689929958503297462354793968720234543844501261415096467993029867525655544647573250077245534707582271019122996802717730244385131893494529527974535589191028787008999063805814831432930610531363697834626325512460330825788737688828689760982525770067921818635038339724890850738382177510731963988451814918923132221857197940250186404238178205872086945650495028831812466428009178765280070599822943717233376477731686179352542379603623736865176459838719695803870734405662588856480903166512053240922792113691297119001997178027298952954441757189237946049402759698062006531901592207411653309725476655785263226903486025711418176729324809787617640252085014311156962175220496427803125461776658642474885572001023781608038878308385862382753928150250699059822457475962053486422316136948533873490129496465777245811617211743860216532284044281121327984469159023071545610247383941225313544044787494998308779566793485778823195686407217141977262103160130195009325451758924301875231030865859693980664175707600162600438555324731733332303113513340728215265555149565319655543737449922829948782250000923330614829427523505796882262043593193286092220108884908120806871644294797274404359125624205308582789217309115929476228833882952052362266723970089017610974511266353169264393787317031869809674847720315375539026186430515670783660493218728611859515887080940707051852024524322689379687562159771852611552811188356821498446776436741514022378144342291757838292708210219054742062663561591415715132425125428520314487767447454882107492541487812343058182977055067893744637209474441460433262011286091575803767509029579361900229918330452167778366491472812074341708384105412491057759729332999083186165263789352188679183050723358331854113413655481235455383080366047789422362745189354149186874443255197224829099349130479307223982083486950038575386376743334805725049964062101556858896545265856777181940060853355234771871469201631543196167700081488478673429106572108571404416138195001348729860303621584549970184931328689697037472530151448154242487409377975947332845253130802991151557069056558530219135784511718337631870063870258723049921998262676256359308060612555478601709870827801754356707937896032462342206217810665017499664789393167859213637282415143437955240731571374010748462046567599984765837823317558807818908176014599286786365267583024369022822008873000157853150905219841665137579762843576636235981120673630314067918869990125313079272171669605667024737815643883182333556552854040553214107748359661209948590027986343263862035906653081881591220371488431745326190879229134204469987065079390211062002138984625799950658307195620512769432731016722263852657547642311871522573997185758598729635162266185354363139707651927877444611652476973707554800761963711723159090339544923323672178091731101964413118571131475981685700298891329675302485089909701986816292419777487014713042243475152910221657038778033097736992073699849971788986882528693354693489667462854711891217116465693836231447610770232319608559095623275960068564300307333736533766397074815050914848166601254482946275042583532654939187051827386717822605741562428921321345082176943878914580400336853709039181113446471738855073026169570716261357356628546978492460620008179295142586161049168113623511467558459172837210574256831817572835887024527024792660678495972411954159600342381050373707064938783522879783382527790993265624591511749675493395473879265675041478790302612854112894239209600557151908547963154658370965609276134843549972664440001125643749370125390204657968155042900799141956646352036759989627204220850948870939199707211168612146668446597625781122306818727650422232993045597055281077929907679933886870093952714401749289984322617942243818640998225158852247381177519807710351828158314677332181014838018069935901572453679835953172053785266611111730561610263764393938382064614797042194239800647511739206462578836052364944742954264752593814383191547719477135887847587184476500873439727111000869089767336315048687417663216558158758386333011417112585373822878235801111411280810959240667571285669848378592186884843929431592122812415511870789780298448738971560768349037855936033274251892670177007478529676925185238180856718766281375771883397636142781471702556845899591121718901048354832342711873671447029755017041806737668401562804161680007645937396653256849062909390468018069890253392071519251221067821458529057547193465103634089810964906207903285693379153037199253860214192330302353663743802942604346015146682068156811860544855003372087951846388250849329073415484212255963240666181729235243094103181585501082221459293675186627308203980532995217091514590551129240619682022956693568170205592034912364637089685547450271560680119107990882277422003909522263694423528141735585557394277613868642555793587858086357773234060980745990632529768532545463129558271317980444058204125619685261835986408207551948575351071596205869956006820011498954027243754136937914478061689889557284330315052427893658381730283470778910141829991757299687699263953178651409946520783802696572000139538846877300688141238853086295993362065682139342520931028781429285520484898611471939748345818926164501482277136258768332248073919373300946055308846288940372995944718238153182489707620512922900631945804663064414020367032545355570990687428185816181050731079496556951020012220737024103269407811897992068674112626825887475161840903860306202958649324458690470908555392888703580490256806589556534268209741951880640321722681462166751563120533987224317037408460431271198827978012197346768857523095781610466621292062752325514239295421836306640451301288677697423470444797926600762206166937819171225360162819753275291225103955914368904684880651727554342671094661723184109266625202160835951359927322771099606693757881230348447635803854923874038706672175713755572301494792191519607114858746868413709324095502376559707985833747069893274230372158982234859926785957008243774464144720672278618960500950020133744103074359137679866250374602499566355470717016029713407244395980279805929655510809319537369224733853360598761356644095714830192860796327161651684186777306538711857646478535223776529189745618413514927343525907348542283248220607389671748399136189090854000858764643084702899017023698963226159566482527777110426123104001056571366757318007042826228052404644451308536294415621334166433087858203134394650452250586418764328223498461976997090642553010933260256974950336895462283101216540517913258315871242906333411474313049899317209423555005595775702890834057346059208750265727393961490505018019464282581098312491061111109167224490064267878606907330722702300179369271683107071830052829112916032231505561982883625996680759842426308972821749120693953141706089463029668504291389723473685156365663507740005938313979680411856441339300283973288501178833175064330831884183395050103220182288003091237262493049505100551181654058677919762264382770940025639556824462539540329413101799521282297695660445846066027970826347095135183381957418323318099084846936838715625519751243879747901038599368542744135189928128630195494729670516558432501044039385267532700593751714010142948053500041530362463060563555724488999476003774423815589867306202726789750722610807448311203201538396824936236544660675735483210722514101434091037738548825506989306416931405178732106809469715562347911172939354455354465556029671639953065658070891573775800468601585041552187207172392909786282594952268660496674168232695146982765415264259732646026004536668120749896464478272192942901746902151141839431028964334561473734283273101552344900514110199787188287859614415021064362315358123741761383818821572488538969474520954963197568300517262795810361628667357465125911490330275590806105915140015296721570785984265671207613264835542565755068009089395226223277632847501523619056930165314512508680306005223229378027950331843112553894780410979403744427496108705049918820234018666153529632216866902783402032168066467724155449271920769051207620428322297102294819366062350376190526091774951698481015607803755156133931503284601693853934103812839338796863783661829596914035758303455120373339829137728779341834264998114398493832624470898490738313162188972143096338106541067500049870689366450834522986074380846807498621043270616990160409891973889522579629325318018329137918036864694145788284973412374473053547926874736213217388886680191229494452657033197655618472370646750151941282300723509360109388036452464686565259952076576777118402000584135808029402892382728995100777139304141205426352040584448488925048040087472022464668184199863319609115390032505438412290360224689169234253794237213177515294513124997393055660346404921241144154834314929218152741760598726654111292747008044890040182567704617678991047760650293456941162541637606894300421329701551725911904365195224575678513298938855302722437821276560992125051726196092221613009130719226179795411628416364613303292684448269230161796862727171558893759348679476059944443317934949819591837249039558607555533535834872360821723896819946964499326986026207119087421603013299017545008616411753625519959369119495343523188174834482911279384338876352987123192797556557131658077247494916115946396879699522212123769267223586918727910629155687420029721747565943173734451508251770614826363051226498906144022779758229372216444902423125332682740919152078278771643427007937206495446809463360824826705186197124378455215408321757634028346714819593857792625160364289075325056670514835802411650713306275553983160498067878051765272302273530578808920354214692250053080847326259816118400879296574339688667117965791839764735138379952827943581756207889211986033501034064654444643930412567004052495497939470172915623503750441933684106280065454587426226990811588069408747648100877944235832771117462927756537235833927764415896533726967422363760261218244931343891207041284754471332770266312349066521184071998883784791167369695938173506359992942760643723893615262620973580714096824930831818846652468305798470686841267257980367020138940568395620914549212464747038135352656097805897454914642528455238733499491074369755209459860055347601144205055477810510245268052846552446873464080567680602923259399131663712207748612577821815898727499720193298131331326457606731301955178037499488375097204730829346948004570995834050997935015783288315346205097004970259717009162143581714833089643692780200266467137259408586129142649969406598768024392905840824771837867868522456358761747589532123208294131350103487932639312217872082009394500005566878589700602751209245805870843535327406672439664575875002432142633514353143852857775908680964994489104903625954067372473313203336776042255924838300880523302619789167103879495659558892287028119898604506620914184651502678920229293516236414857281951090920730908561143419690084632661498751696020969894324491130164676518486194225214737877129236931171968520664974657096703725211240653104521860512589764202673286677142378334715639832265320291053040004459526267289789055728990703209674094520187494682067797249767984852968136137597903663189278383656610383974580717565767520476946864246080647583636019484324445073883313277685355061794801577619434682083335536027047855511824652507779098603335030315420753400915544892870714921828328229424332654173598981862002522520232919740857661812288440716880774191959533911075549217608441244637780865893117887378046634451138416738345303499574374537251644480189620086878368817235666289206408311609873712975690063500278120649984435025148238527394308124153545896864480020736877968005956549002354275260600490663683691100926203496121787469577330840728356717052830407199109845329329004370709500414569939124827353925761018723326760709314178528196752429745218781020105796579173525029565463738504953744583073270891748560393786607154579212983167705104988806303909744623052866613268071061317827620229588887838310005240602522487730005087446235145446561950311156249850938992830778311203456991459511922413004151216458139302912924093802879187967654792203691339176030026270217032792595134107679753246907709449565247123462307628023749034727608543547106099309254076607227473225824386870882446329728666724441279526718578138997279711182481950767525684874873051341622976580870323824989353822263292749817205000857981163702408205608615216613921380109679132936952730099592345545269042436439366029376389708187586395965072973462341874425156853655862500630126762431410856312558447700688370954123113813565973589806667635393384908403511538345312637382482678586913774153778833850504351415879596161155128477645752242250345422594083619355845652203370416769570875522717043689097631171447109626983120610898508027539453552678470486961321138524163210400066855536120470011280163421228424743226433173045772157647052236267797340209601803903893386254824668521622016718844997767890875003263953877995745300211104297326110128899489465162794580087061974281761215682919416307339822715295912586206076568790459457056317812367894820724083135042104469651637536872268279582807528779897997939090926156158592745796053948276080383527971985285246881314310035836403205029970603350921575684447432499700145892142958409426745291644586612929346830358259667309277867994309766584188999383315784480849460645922714351337313077789082499240288757942153189267458726855461477719218979541859518097621583945988502645099332215747413876459227568255028580025657537732810831627439562468295551883241284617279562788995687329451219279406085871137712298416485141755628718558045035668729071733689452735216672691524612185576037867785948986250896416332762664411760758267719517853270744146722137135262796525713167903950818023753963417521726452285862278682598676175708741610340617332812510556981723770456705957490058086539210348699830172115500109964538798687574043393368310866092912079418633215687993333205856181194924758288273937129917658272247320224895999219221153846952383393082134572452132090159542175397404272267964228893911576129241636529991925040375100837431605909277378765490544240905677034889429919174136114949258339536852030565143075494816042228679929526840028201550849532560399627867540576609585885984347090457775137031474943637804178785806965548837989502764657509911660101936331280360695103765512200510426115936966420691916478485925154745864122090486657219323964170841265451946691981205438417188275404598362597391166642454415948796451821126512962488122975311104735393350290910168609001255903601915676537915114046862633549140886698995620611363525563949530575326473839852378989959151892822573887546206779264548186569614067495629836106174869608280602462449107896925491043390041640015734014281636281987807010170410694628677576173744993533534001726175748421363946412380019299389064385022729973992991037720041725336055916467671459571893748121420462251064784330802007393142830119437891084476935059532555767917364422404112761717483521710328025719512478933258085610953580279023591098522533145960543632095597546413888889578587634452745119907886801184350307536164435751398475300056514970110234090369496583125930612027811259413454430458593862122512289442637157886174037036424229243714716649995762835301772306681753147098902113832075961024798259394855488396437088239561292202118727141204112936552343415394639257524425258651866945575583968369270806704641556483204842427091550650119388056159598347055143120635549294929494591534887277738779694815013340769567789408929614029085752002412357449495065266733648998433718795842585217212439801658054444576194780201313461794479944158493266442453905606376732135213132329545541612843038558555165328346721839474417386790920012849591917225436743601931043739483734273185672276138815748624452968547701160088690691258809702374245565016197409644540475622309571071914313233641839961728382988014944065073721630534812260222413252995056733487193570092547631835988578483284955149316603406859733649983704412189307115369197204433168207786698137272587793818872738373443244726565796463143587518912088756442982846945457457539730099303295250709170703423028931953277052033254484443393347233866860087506496830226923979499866548106908965115426291888257878968872201366386769480317216881369046070867834721326084509349429061687634219508931860068637326350287296300643962500803945573876070618512155352739595804093268027384014577623966436183441826325690554955478808672263831494219615837471500771312265153953431947486946907550095477915539786603034415914765495670339692007486997215740387167213268884420906630828879518596729689962005700581550661932427284421893986840740020090400563685727072909778031187217114192579529675263939106429033876898412917931475606516150775188087700114542440250959939051919692398634603320609984293167467915997944894772200693214090716566051972351388213328661832542586447801507224352525014082794194822524821876947823053704956708658694589617445679051333534391121106892410783933628324061770780452911921085336942329217481350241890872938440475740426777834959960034457276273072364857031066983617668015952986393115631679096001042717010127392518416268637841909665525504778241607091282792022280674687282664188986812853632602355312935206511856839927667505826663185357520769115386845239367803995071113522174590447735217417372347503272995890145650910827029487990534327558977557792483218532282508631561556660206046683148647998937249707897349399564780545895648421080255042208135749327799170534134200921244549081548623643731818568909571685524089187237161176129651650845449665864790930817883598916691617350105867420252105202068338955008956718519783169681626655615715331712844702446072644077144893823003570405673173375356938719381690335035028816353894277261084250245891389093997589790876423581625897525421527670471109247584322107913550278108010295087766426774796751070126400759097670576221321158881252200903697180232358394562870058393221401177617893152690686936409068231899475563550323573533750255974962475689713017670257113663808374662508215312746207631972149174819420404842028073769168832715616471685749903198239362402121578890718054346967841517169753154259724395395958506925765874687426802312968551231424459861858360285238418259906153771103430552498789085868522717325030052299350406507040944229151689067899540624079122880878777056152396074683215457892892697972613959875644202921587517155896108078013460538528935553049696789444908925536338429001676919384895756672591666524240665105566741936690519932820913955944938793855494447243932368630963521410254170760213688822157021929785960156607149989337165236050858190572334189214697349612170428921025893620116347161356877756093784346282451334291278505039961511076467446736397911397528389032551090802796838550908643813502136583121794064830346696654680673997906961173006432604957792720089272440261307985875182616925837203277502244458088363043466153129856528061743209293001784058603551766301626206676865812175479399646928374132232084323026941674739236317606581759138417581643095734916966459684976542560821473177580505314073621990045262465868347974263909462617671496699154675081488273225972661213759369766761750086332816454283604884887149930648468343127508291203879261399065140637438081795466442125657925843075151794672071312335171595530500019508738568199290785083826825290673692454608416490680259753217721813942460463095289564808073589580372393950565535728834724166932307742830223750139945354880194990065706676678635024725418342309966473210040195368932169307485355063747639884453980022948336014918356722791132423863767892399685623844305558003122030057712866346902062327358969231235564605879124052072189603951578933383433565951303208552139773377736158552189180441029409649817268345939217725884207710772093009247634232508287407970546209976866613524149762626655202732637850096465030734376138494036555354816479980676440812920664696492721319277784518330115698900416696891775339198976795137366742025191732340621416954029114908632683143772935093558209431273999459957266351790368170260912060082743690497168712467083627977575407106185391674573808809846810271195618572441523838142864246104769028589648267555621264320237055777125561436024671784057312237881551202221526183826458891339197836114800079957622305402020743234152224884105218693205791555390111431852055775050140370851279132339241846021165159982931842489174314403708860217114152002054118600595756598319590608317262168007236946333262931988103556322251769943395751531967439169065088080945621646660649468793346844760672863895312261782756057509624698213630282733562779675652108315479115473378089713416434167065037484760166657770658627003553096619707175943448762189810452807778992053386311335544253172047351715063153216149402713406012010806826808562444240726136160024124129919173673316398064141000896778247049314972687148272259606839494778368750616507420757036864438164579258351300925018246306897118112286854844080831834462647038866357397925662117669366679397585178443917161365300820355645787889708623445347134595155511871785320605188983479475069926350170042448031373647070937146514311817413536026984490555415772494336048573143508136636614215322718787294750115944595004123753466481900721074018596529975274525785638867658484039588000006021914730689041682222717606500543560576998864862602567607173609251974633296052569394282842079254521846788536739883837092731354332580506101348077263215953163144597172229828519493112079029948751536736811694022515639583883354476959547544606578694592704980830229629921102168746308996808614806486356175059931728342249302727997053139208105069005987106965881975071823499078050674803430997257709346527838610321749557220037462393234813588376813838768714633001620037002368445780905813874258494415117396322159234109160587696763601222458228824359783992819346362389845660367231872841951416923429665088856157427180984084286011735830439659470537226234579657843446498409169331346847237386285100141311889309279264149037664862384467103439001290183096557938161138704986693673152007717253762853328323510070604563983706669895733282434243879768766379191981351608535172762133697834517613148855401506862258266551856283397703446339883016496497298083844769824625600618063113737968918771027596460067041932529763620312041612178956804939928915824528881153618112112628343426631214122969955864369742870398083320053646265228361362656279210815553282980119419409284960654860740541288024190462289268769159345765341217317465532555272418609919594046349766949546893026297505252711367176190016024408985282255050123874186906571967684045184656882167659588744780783916320035380972973418868503582639379551726714299143455417132305721617172553908307835729502366537628630667746216707059453889488655243936233196403426947944632747028836376824506545502702879310959257258388255565315512031686909265374304319474629657403571699976680962661275149899284817854003410920725868450183101287039894184188592218714666450669856660159264144840602834830601372643513904486788324744231322040078388422348605813099830645804516482487180992160421712523166144108805757112097481844264907520875468860102328045081826572289403850748753639362627706942621452075610258471852575010806927066000686119863957803335022464522746931611148487898173067630362394088940782873541526227362032012190626526910819270746295749688143101518252994566401746159709105897152833354396578422666445070797257345955300263059621964369592095861799809899984488408814823830175899304690071162752334639432559998295095076453867401631825970888536551590938031510292327099867870100419729109753395850624940896494279732433717735343975334003771663815260337454524907526382141709364827412981348833956673415650971398071532983239649694430983763614119475420202018088252042359206183460465373401207526558284615675638828981385304705660520790659050580540133013897838192667469744587632261118024266770683952158555581145328550988524145652532003795598542096042063922684359457063799550877381108767879182144274471030480862715970965881085822277093337577684857674023782005400088497234905320454779363168441719210757096207434621900977815552549361150827228761133564994920451726150419769673370505894087837216830462025620758830874879812263650219292678000918760441327510238295042992966803185348035039837352226176375478534305007767440375627172785206370511163046193615888021199448830557654433414854396996961561495000822841561703767992109564557570029664257817796473840220589175542170699191355329518891172800980810189455520101280659351948529776463079175301124377508562228908995446302807661965507885519641820251829761785294002058865272416644100836090250522411146597318092821314957416968188260062174575996103256018315305140221460658749318544637093660443664671213038935307558876223548693819740948068398566140386129398769730022494530751912558665125697727978991336159528018569140849175799094011655280332380268089119960100333004047435346210438636544242259534377217076714149435102258943446261647619273368338977108758322904124758866905252013387944848553052933959285693776404143429551861629689667441990627463913400206748216909872365761341760889204365683690984062122271560076658729493191265521569498791377330141342626343895045451170582056451994505632999812791332916371172835775314628450441950927014255773511784725581803228375127043756788030149608745156556100352699472533578997028451675842942695808933507104554661693456833482214002683092675246850662537414998287840025170129179243102176466460938615649566478884140217960468685804179247659638382617450490519151120672696313256376051073429173431227445820779958069488904101359219408915905833499221139394717934614804593264735295481844034494736935131812474337820384574678404654151012239269136320727260955253407575623117074755402523267424079612326845344826553397587061947581568740225389547921137962488330061507320174273540475646114672517585875635023821928567427094915499225280644340769882597827696876893828400982334361582743676618190422800562254152126114616495033913860578400776449047483395511796748791074126280332098797903353909342174385121002525473296068277076902158428655943203265111019477952384549827950933703717166412863936172217700988828976754572889422730071612483241856768252997029087763459962300153029264925390491619601807980688157111225445448639722991428448298559252344768442826412905617081852858333422815374370242567005956733502484666992521617077971760917527478610528594406968196408823067848765736778692701167698964638587521584821977592981647716752521391974215294632353086949536400421014184107844015999162960826023219715356026711613544396142025746993068999284166483352578773372280993426600388444379784219848901887511557806300059410172633057360664666568648752757500067138377533855546570919268345824146354664338258793205183276479585240760914766940615081247684739467217058416208491114349469710839356442588514439083849621582035778359861465117594132903765404060294109600574534204045943683499851651077176861006431147058004736670061595445137696051170333033929555156735969005578652527047368585099427825886491607002204439944390486134996349764797220942817127808469035373654520917030418596135850040126180289792228025733320406788451119486597998222141873762696398130764508748628449201595017913312829529858116064020784692814845177201103465832999917723361171765489814331483259691720179344061645977630182037087050829879428826758190938614522785373529787256534421900161337516279977754314028115190018778400997199510833192730226342401622752153534130501980014089543172324271738227216005837181857737669607689112474721178640406361325698328195599048503491801549356320340759560686463792154769552515213403470626677129371133109310077658979948461583745238558848225183444056117953205145467561857632223784010265874326128418740616293932407517542338973876056773821932513719206667657052719063485940627520918166686647224504886096295950677385528268937561701178946669741072371813796949515272041545589634870259974655436275283543451210875676591833603128436671361463890154349783260880065695351385354614945980939330621895955773087434603051581351943077021275645472572081911093395131616382456777147038196010912028082947094796788712128681495886115048222114925666666829290458088703366676328514377487501242196297035011497324823525926550196688716375862454744669534012529671358235145369518518032017414822925377669419823226313029784271975328880106944538515913378366878044985396168691302822422986250008250718464781801918269033226995405142873641239367809580087445418441582362607197220949353507039222896114436715012560018967097298986987324064657522393080365533179369837051257212842432487439060503661330334174768041211193146597461475634194664768244029438674036009847609886369821859279760112876235616952462488664596735143186063682911317986667802648122895354051996805571495451110210948977198941910554958789222835170110696317360924871721261193684500736410819840197313116041618492969069102109725329399760161682441621925142083795383100112268043653409414440485704321308844301665387019603838216514810562594652226075445238898977504075405750144681911760737147277740348915835815221888722961122331945165618813532865327132086778156647655034369888965392243842735918835529299734945080462709788766708212846163963676395958352034708561768701493639636622115118313722184644460696726860392031505564203652394452193009937678919515414094197659947046446168357284157053994382263831982139555619396610485622903162258363969448533975925037082676276542575066594900632803053637899516468773018002541577896710973887110580613148486792734741089601570647470666924907298360320141368115748578686146497319536977107500966450407780530520273393751942618780952661292787931286016051364792375053105511169953089833493992026130566228559010326396303264863544370069428215760876232845178526141583320241796267859797234651292869173599818299826249184208274077707287071872211606732233633940532328008848873996347250907063028639457832941508127619568535629228917264395845982855001388247409005649122295252867459647930318439899161057841455477968158678628063309443699300920597031211188386892036249439408195851957883637073507047563233781666573699940732807783204501227793875135667413848286488106301340645195437190780701935685295493227981254959824244600948402643670267873250065460833717343901320997199812139523742266958982585997211680730556546502258963482503445006220097965654187763853714079842791173294566989086195777510407748635764308492352791122870042904817307783925478855460845366903339904674152989418922592894856517429064655924471624545849516127702454075455407365602767505683800803914064600687491843523862559105312502154753314234257111319005100181941181643485089106995465346962000941994756675951565601294696924177437013420945742145886922730428258831482159051641373410804761210257048667938968530048574584629275679250607839443263120703819267174286561557322757559513175911342880667677688793479089278056748646114878650898308095190840268985474672037279363638075620823865302453602395290038034521814663573161488521294168959683837267152425270511492225914313030546279295381373702773325800565977669167048469593397726197497549603725350507679096995850236205864762063563838467071882491055295154572568321617152247334810745015027587148961857998921839362487598863187168812064685705980243820849841897219620595146229350774939757943502056307524603525323520739493329195184559639520741533656043444888570076058444588526144971410502140161277171547984877249393383250307421090416686389214201981025076111531165014294034650399594829682854874791356697680584479225771220576573790987672229499414272232471733223407863428717543868631585094759503391866671504791123373159106372646761876946853532802460045096017674706081355640118801156411939673766090497841709161870242871381679623312411617805582108547192310276908000407193431057615113499057509557558598532132611440093591660182903424426353072384057950564185140604872051871374061376337482812188512066677904424185791931402100118118072100591290807963859755569575773215158664134912010762048764646960053061651178732137392098609571477920480066931612698394712523532229239347935491758822461835047382578776901458154955049232016987625769831409982152912266629883595442752200506962658290101432077765896593364565405149477842965050121414761937705303193606391593498810409834310996365665661197291413692728609243204723681262665317040731657130158439698296660501020822601787292072839092237035419294932495335889875032869940414286385752257712514094680665785968449266277438808658650935978895903231701388740570775714098325321043216141977184942401775131827623486901831973456954005874558730236810866195183490163113550801898063104157436513078068680360132371834126717924351962595314213175413652822358891960933363342487635136023421106686787530504594313612470855282134031446186402343724541974984153829056828309683730783576907954573289976960119906400304008746081717796372848165789453120631633783479004838877170581785274009882237124061450337215736080686012834528946128842109119532985476796773528523174896800535110087964492559891542927834763534394503474309740124719199207763840866462576816794022734730273576645149702708395898013223686439817058702492430866527158355960038124929374112755554829741549879170474540151461961430207910441091997062038054377622394789580681451556824847169609898983544823615133143133539300855172183429630637459626369456046162530372408762966753744630079074220581844245308102816457760112396175040437394414611071033871028493426481017537985647894399158775347116139067948235510467488274759325990045434017373664397209105987931271303550091149591455160881353650559152486570915422483162523837991786367572311682500831622499486935077864067774891598754469666507607095945889753929081027058889015552004843091959960004342210456716603973302388945344116582451480254854667763221942876352637958263876258658146109383168263313088878782579375904034650520650111950768168793891527046197901561534851663430943949994760498152054537751188295243264519712899525479141863854927717662795274071304527536582775806265873433198632590250503233770070504502749855253587890681885954240388694144470611454297454281900925877726107403390801630458395157116306995203534523772612427438836390157372686695596295951287808821149344052748523026331626712655890442478219181535248434386206707275311368807270206017426970075946223869506292431657903742322797835303627042509094027815556797562606038413467702086878674453329967650063565108944064955021941633769919265646799957467234024133031422906118947678077685665005559498849654180877327620360226207244066799411597191452682968361929078453136493495345799961548079751943782628655831766959466821969697573174826611735514570836187349288773288380001734022318625116992380752183637097780988586758832802470434521493476582053165800164858394722385830195804992051507405662502899977323059623492549020625496363455718941758270469062581038809155372874624523683480490437603525491502835301511581464823765821597249462645768948364408940875917721434254146138816475589649070810055505693997293623271673700318715431761147220140408860620963145612886985995573674344722897208168734684180840392956893630335218250934603662023483281634564889116078539457897305923214429363785617691197008263047232369128474640110491946216276363362025489996793931704111215772142784791563390996728868230955526526728950706184626734332361199704214038816826494971583732719331988180086411870200412090824867909441708038697574387616544920009696177108181765817932384735476938114044553403016755993013126953229583791566263691508660245339019540868681684377930537370170488421392748802928390355373554336625626705809838885182871620512833373315793591649850920911115457634360578516097834710527108333453981066255762381418557959412728812120265569217286745476824617112554227024390010940217408481443758385027430438452407576869315365320097861976897333958194886608597642040975705570125443835730405663440798226659685645688610469908201740974700259375221556402251553098452422400980629546194286297877806558401508114725024483236068408170593063042620090567943697596795577467946056756917957103663535034573354500546114036286529922673396664685370617191974947596362178723677134018031345589781800323130752968875793175899343860475838755857544213900934013986416597420996627605159774754640345568827502399542915924003158014443674452115083305828005925891595969604896332071130523611774995566200397793454607778344341785367550303911817687827605974486736376571363687019264065718017369061732676689148466365615826974383081615229062970020681731993613210394988464311029777583140426538603054682477589754485366227955226991016671780303417377299269572843419497936919831945616649629406080058894848864913775397000670807469024963511391443887311976512403913295548726363326878164426094164924265323671842762395444306588864638000655024361255098084780011379176812993120260751428324136462376887925615725214064922818602424399766163824700840394623445603387779683704643438617020712535694414880389929297495564378265907981323233573983438864832079089499125386604775440461039754451400184996062218038474719336847049482554005199280910978819418410636044068194533196666458218660128322139889190485936766829155658671567753586793723013297668604612143799604882214662681699708616323590302205504682892543028320194606803724445022379281767634169957689194405413664032862428132766585151207089343285254238039930106560473685860497295354289123468559468175182465312300350408433977886095966082202222485732139818131306396946596014577185820907039816500099917641705379043157342928148579179654175978865722409083006612650515084732219651012332779935712743990876218929068899699318682748696346361914605293173551831910881433087093782950833341515758980672303192613156825729713205980022700788750251083975034311328609411622513690631953119279910323509991204244655635517460143224559826732295922843138956536085322653640323955226601211969841235682686619862662155620622888095052579688769977797926630970610306741147392369193701846685668804795957709928986801133093508630202549286342372903163063553523367209120887117697617019082104295708423301405632603708575341282688138966708189174795654966262387857937836198464085511030189056418259110252350244349780644812540344716528098294739543076123774171460125997698731532827828116965522297159325654990787230266279480106230366724759605179210559308370380712038340976121329516347248318602140281282403291752521554927180835885546065426502817669159666038798826233475721825653563052267677262249601964780553257480919372323202861148849997203364335800286894898099446449622547718840489876590968971139840175594582725274859937237234742368216084572012865440675691182304250743408052570709667813769264451017767030893346513008564567084841062471474081037554957056463155241687450388033310078230208243689822253332609499000805151340446423933365852398897791333325376812001579357672054256540472896051391076798910024017479100011639709946931530833707926032727835154740980508465473267906105084240775340073241877803021996013593687189675014971667394791363322481940906893042746020094914516236002484907832985588312053118351256291251476111501720021173492610674016646501895307389534049588489204442574678975291937601000505784930145934687611316025853876964787599746250356457830997160221894493760308481989567957248415882340289238308165333512839895734325269957119663615965589699726712336162281054983421524714081709338874376989392772282182537932210964119673886181096694835531415511174729477309424748198536349753276631195319509163368439605675498323671680253006302046556340393149915455286001770220970551608243424275260892504243476328582675657555882920095263274016777242511395800084433626801260134045875774674178238476237168225269063505162169872080588313491457680606004023543743422984178701410500543617652175966729743949765790221523223015173018313790273820113192837237691939346421300800401488557558149068482275534509511378989391774137841259321525247316817987141820231564956109286233125839844596314097998235936772677429828917875520943606805475917666027191083028876547290907602775215266422053177368682774399716284142504692052912928043810023786205200845224827482744440055969338438645319545699962609300057645269174842553694043462301742156144871963649160682401111724516096453254488081847803744487980160094047106011979568044904322411423479335693243282922320430839045083671805766575008037133026771952572910644299500237066239191657832583450420518528872206957694658258349578395536960117193817160855375677630395007428066355901748780743832895970431314943977269747849384566676995119879417659122167392418408984800187304890116721358627949705089287332985560305525620311468469622535133342911190159505240616212266539806885634094860795253261147784866333887937276760160757688758068424439905371614711579631440273865010252506183830501485150505710003816899850670923727070338097105751530107646006041918139939742532073644923917263498860093882234270328532117622788912917448815185645330054152469032054713527626701368476376128967780051209852468444479911171817886955543273527730317029270774076110104364839286703642028775828192892485982669928537072020353520980607408186916600363808672546759122346807709560819075811438933922078833680600022539706109260424352954383275406699238132888960003066270121410257347175776600341443628632845523207354336559131171800257404282518046443467316546003719456826629356030015918128616919605515578976815079646299329130114366080297423093893809499493007552166334615024282110148986399577099500486205440379606473660912643293896527781114915772024240088706786179241108141516178972138439132931461528039070169687584648133723289943355920573237140481488070209203434001581958785810149202478496149998553222521863078036562100524273855155810282908494528498188101873459301539814631416906369255713160795875313589199301548687520402021717180960143523631441043404614392791970740850119008630470338740145461912931160632250152936331927794602912512161598858567987865272406681363241758001449470235477193005972670915285252868054046077193018626497094274729508127032833724673674007476187542216992214228177489827129571133182202287885905887561265591532897811247881763530129433497259394142901428469356081777473398116058254398485609696300056221629323490740648388417258700037942308709483427839385072156348734606309457932497459197674369563993300399973754914163687537004389685158101052957716076836585335414978962804889004830947800837898517111772218323177210555531323725316156498680081513930420389156794485855599169218788962901172809283306403988271102065363642917835593964436169042365661063736242130438394182201084904123443474537141827304899033494457717212410932901972175019612782990227684398769459044432344069788424797236416004880551943155204792004486400355342836264360597987081524717309845300082345198692599759976941579385135490089732230798739439279780111565659771741843174855343021448694784863073314381666086566436587053277777306891555949069105232596159624592497452801778380346084423410544053653697841701303481231727559877488317916188850412504483696002313094843765581074584875411116822885619866058949876467031117256365702423218152614079654398929521182884551413783459811149049951277193741877148297284853595599171214040039619342142023050753239547828497085425362020160936157441852992552656385093543464532550859316765364280858807966846032340530903620645112170463212631438756626629436692134258480097647002989632888050959779041428625053538063549248937799113594360167267215311084869042257089634734187179505769957375814555889411428813783418597437715281696932275505109549969017057250468104173874918513241584760350026591948869972258507481484376802002252878610538662300170566813186134056039260721599405037040694857597142562710270752259457292450866530158359440315102583495732584749494039023584060496510158690179171889932258368368099936798256632825995590090388880213287196074775094604788863273572427035675560156877121485616690455318074859360274203919321232565835792585962175293887951051800748786132352357291873590775814333049386643382346008253697317359482777938544986903194868269192841328397312042852965681276570321330511903513007381084530440557492809000457246618578617999651097727372527695265468030693079625349651467583157549250036237957716831233691429720354337886749695752366512847675599470926438167343347045184412146309581741651305563256173179361196370799282568147895064036044705201263428252585182472384651468068108276540511541171806579652867126214198460804915406176425341081324550283762339936492673956109262132511362363471213098147086068112238770340344826808306015875860813886648955140735896714972519952207400400770673607146852964435014481144659542114773687472660339810018504609819893379286514180627586122928562413264765503502919675569282643126921196667665674277366715407736060336458935852869937215999186493427090567606171903042393633697657137121503666700489548084459634211565863167733424481430461801241761885874755906909851334565361530101981398928802460830810153960770604275219032713861151564765917432179360136297807703463097095666984362983110631050880953572516251240204426146483868208658374970898327317789916916596365752884936709205776029801567802030764169080367611234813992737068730564319937160125391882904803297627592832175949203755301785369233817661545285461888746043464130108863790419069651631615126186484385330909761246929435662936451283962653689083744838128465718600195474886208921392050579270841406338725460017066586303080727631300977234762900549831085692097636276584015809392194105761979261327472950609744019336623974589175432659006648224597663565691413703033166973967377408215653884469552594818409971170109528039032717878888752802482878964385431664504758507465687984129279313934258389749115273985249741391455099411310456712646390413334209636265328604068364009684182285967511620165373454170375375641923178585899156624365978766221201555388720750855010156548939668574287587032165744424039852920322275444501816280974529297510852679472691283035313381988454524663079266026273849283139592088103804574155854761675455863652966048796160349919223411334682864468776645131105726754845734367628379976815333496340055818252914059567718745039068283471407104644121881723175185171185250163927830452080434233455142518506694138743751884726801945131057983011433572640839426588646919724960238879264193733440158930313319776751524071022823584962312047039164525545642471041331589690760312072589081177611628681044256244739126005481393736428964257446095205293049551178226810130339054801553578337917336177740096788412553520102486937210632293810975370843037372571314548477535884130570776258468646740316567743044372132774943685599675677775102044842782310729928658007937093222240071957749416831637274380606877843846778152613232203215982526362329838480294670118165809867333606269193653577876539534956399060362577092946355420353707031886692934488247056158253775729302540499703806737061468545150067828437686668942298422342576228003144829622391678462806594826105223109797689345251230030180038514234928192277825647502292504899049225327242657145981994764741288122240524001216166193021389337412828959509611825269018311906100935778888989022078308311528906348512604160145335890505179377895738816093824342699806837472776601652182606731755389729858460953231823451246510217508079423945368942217834636440233976321437523545467657284360449943527592668840918564767186203911552790122111131598451088330945895199862487844723048932762862152327474294115811702646792711141707557798006873649151039025478519230947819803473977150568466037818077022876444977766159458591707167637156418279476514694842395285633965956354289359713265377831531230170722247009941354956644063542786685802367735619297468768529515621323453631493625359309571317182588211976603052539841307110342586833744005034433921596498893239486712993636274384723282407822001038308319205023099820791254341800626947015386836501905788569959255993750647053332159000947216662376338623860431371129769814117071948426656374823332461641816659510831775116646341498740781181322278955956828084756501129447040262512534672390124608849029770908369473023572095209758169284072490198652388894196271119120079823602653153781442629973443611639980168099284302390646852767970766157210948882797158851627431976704391674905677780658802600730692201559719766508093138585983603709010563101779583137323496371686809406924157369986577860771133976671338619715771454561775881363750782635508388094398541033492001635426414276084835523811702679047211172896470315523039716910312687100935724312487358044236919883655468828626049298333419118890189634847668455191784887303303469478597872048221471405463369495926780661379202421819935472305272573758318820204208560960959401009643059242800978121049474564429597624841562601656351039816003672599378859899709232780265559402366238319178599089174077184842382486766345322804657259070625299634832569965388538175369502029841348932690983419628204008213674994272466709771410413317246078686702630190504392167000502758157464291752283287289301211411019445445088890602627504692238855562771007599769918040167390259786387315741437398347765726639929501955902909682518492652224350400615300500227481450423373514566605967710114779548008595842672210413005043234912997333336662425985315977019716656566800933840589987907477131616777961323813795533753145439888873805430070917925755096034521577026213969058552190588465310673585931164017084762799253270227416127874896653013589131728683346140963077734654010648577045287720832230019240122762602195044429476579983263610822628550812451369165292317633303262161367513493865667049360006323025297675167787851548982427612894882998093108537838626762789041195476741080881558683646157491518713808368502062173304082134416292434067999610542245614631921849264591183299106488727541976352873664846846846734053396558247004102586652541023424115073114534529184533709900101394862804403875976173799458207409922002394863387551415624691188880750917372067915617437505261946883315870508780497125627847059674182076733634340859739533608274727889671381278101431977906734479236026385455683666960893236805436293595509032074405074955942646739473750608918697653584094555154660024287682139038838533609738254321383315251701186807221594693552204083716182919030935085706987041016292477631085162760556272832973231163639142081063919208546022782149034973487930619484690295772195299130384702295745325781310211095497263509023865393986380363433558075834010332320753085905049371280392360056845139157857738890994417320330166493841021876679632532325699227025198346793018145924355575118916153139892097772959794558302408634553816240656844971344499273317298931396613198539884100021338312602784705497529491447395529374507391712183749435405697546823737957657921350703505948809705756203144906658335247745882710686851541608688162491399795791928567445126149756692445169103573188840005654356178489443222721896469244320171817145937405338812657499615268176093324868157463180732187080659428383273422788869070264467307133920460371743027631198535824693951140754215286882319635952790343816737858404767819676153884922130056862549878643954724951760820199017433123808846152378041755234797368262716811990902970450392588832796497191640259765801607415212417236932107680848204733368152649171022436182736180826398149169903293598543367555186000618175712435128294092991691635045185873988145393359582916400826081185964803064196438266809049183801030037777383623553508302600583461895120435304975499853793625426483886993452581939375704721698537832849988815043862440609949383130324078587294872867925348196485105642258327311247843399633059532719804539764884233529339507683142703047663627808378473389454931939506919253388709390497222738556659866314263016638542433912245536032374678497526313734611007449306935226844391661300886763996418440716796962208567460476720901905686890433193140097781940155886327095599553457250067519570222896461781110547113309684696753714795276359748110068775913186129115559221447536026449414837812371058814935164631915292927246407634475639358392953500069009759068756551230789230426897817284047153427599465380462242489471661280797929654151349603564757000600055182828934655344261151020592746420456037424948002589494904322760941659433728314181829853560850910499001440869564157960932142437798868652933485350816142201880734691058455170953888216454446245203305790970111255955599624122762202319399386771286674852744563203743300697660672525726392630375263486347133729320071315640053948880908389983099461184786012173451492024669758714405352941294623832573384310761586179670687929699933329417754344690747015368484107429832809158770566272967929038910229641883394622642951962795570915328644671015871059834055479376474628230281608813248481500480116199077319816645789115198463910070976665294201107606278975938323046403605017244307083992023986287938717710405886165101469104825707025776227320136213697801968120286979354577361092658077028131778980863702963929347840751922633186891104783480993385798406248856628009509064668465132047323437796580038840496733490297388601396836805574267878542682245447755922301810949440482149677504032501554631091184194590609887999345177183192890256949225064080918433286213744861003831005882632947703956161610688400809375251027266337240561763451059014612259982491188396603210415791866260826007193424139035012926557379139976688823058403402418998916283040510227850567672539834932286750075153041903371490979811971364338137776849744320702012686332015770036061064125678813511769975716445716042978834586569842243871173890187835067934275118428376479492667086522273864551443173675494711276838639218839747137289872205899286399819904724425096066068034356203378614482352991890765883512015279832074642539219898363714174897043468252907837943076729971052105750712122550683882586246556914094004134596356881431052979634090456869661199232591187116271792197212000881001450739121625648248800212992989853609299373678668415458148712554391736962638133878615443481802548045546155777428865182510357382657726228006669498006297403433391717190140889628561643861683916798525857667559634914848349579562149957163364607317227155272167817968653090904526319885607619514240269555896394898771534760786808577048381189013340847316026610315095213431216852050568080406109548737518815306483117919718228870827968296083802480290376200265764130010983126467597485617464170938788207714246651788448700222706219141981203428535529238022636324379277331935154102238796927107755665331857385343408476950871025703364739953724386336885479377968190823630591054328180684974388926104869199454720198051171162318869883913287067016714100224064485230249681016865684522962772016389220217843111658175484769256718398878065573078700922297889345637560807657635845601843688942402183859288467173664010545655663600671685763629638313194626645164660030999153763187215584593996276064710131533089135597894533312547331043310245983169868683803754331896007307116015019119520738642632850103956977777033848149559564440059743568802766428908835291786895272020828640029064058438614120536589273450924873726073589152593011710124463482253657904255133268402182650075942286370222065517781306437714369790792913010274652423337059266447657759905269277105376009255180573259099317902133274828906673098168838004086627838642069176633523726183041060601592377504634156455836166480022192434247746890236867829746822814975745838568390076611451525617811632757083207653740417640665587387935275342223458109047907450802548274538093656212211750438609261871578684638214591684245825674559815323025719954948548794242326384623532988311202743212053526944658079024343351827006196358907054359545224867598249517883985728653600840727792634506919266284723054510855574139021524135804745135781977765009554418426860101518130289095685807944140191045031565239709335526218442861065708020677887269120780859558632721941675721378117758144574787981521566084180104111430101400822268412776357647065437785002779184286956959437575052249025823122166296477567832954901425509877009973001766805837470210639720007305961109575793344529322008269574325361182759909430696031001004277736222584459100783888633398685902237503895698225148224203624604228507185236816896475455096111889053421860527711911352745297184324839013916079008124972992770348714286421961180992681681391915369076420777213486198637765362268161178367506857723037683713199540905148208130824259701135066025296955103681406590228593878233046744836677886870907167717216629894779059686090913424676860253206852244718246902109629653806401264970402219842978431175606346667806638308142846458302576233497153160520664512753094020936907613895741659046238895692084312385356141329711305460816691867086158516059788044811814377049676790203390379635117084587159562893875806166831300027459834051000495644254139623177425302379384110680339438906513780715641407554543520139699595041134917002063911898688544736066605525883912431263765499453488883132657437287789599388781246742690585605120447075896319576589107734466558432310039133370480697342032935957229998583965030373122039396982297021787889808272881580298858580999032755554977455431857353820639551136571209750729832693322647456449240849148890469971414325533140416684021608585470603777860626287869057660609137396890397974568850848564547939871736162609173182035504259766598667401206838352239451984308574604347402754933908835367854233391847787167470791853285195220254918124095730501471041075154826605527621971615942175532787411176257031936157171382447989383721158910807477876175687268891443946354835412266651344185708193124405713075700117510030299991808096354727346276219976674523802440908792089320595519285436963021322958758631756780704390291466517063234635954275675786014516982381163922483485098539341363191060383662623436633174757946377667531238334600582279633442242979792777956247081038093418592265855515413572814152182150987264688349841003124118015560615358305439101171896768230603752174196389120625156233352553863316773450038364821284694252335462200976942189892099974985538642113584788287257492186106427680865383092424085665287654245244330064577122689840750164955610584553106882496201583215668985202533662671115191458715813852379153225765187936334959811899181358314118008650187010101710243483318697788459532282959623663908250933990143956714663531066142699908962091397262912167046911769865339066003856818609838540820781085025472485869344438499963201181486717104453550705783203745230432202689233386150702265910999729780646487740959507665292831463356199447681546497092009742855826764506168657995865570248343894774909331749196971666749566685526483586978444873236331207775623044686496194054044319043955701849812466628425813017927961960124247951172018704379494920372974396629304498017036697440150048226423689698169937812060074303522238474631349972240216632826532572585717191372794805854822700022688164848766508908418086900751538806176928430315061650184351994820165521336067767599108302311381539187443654788952461114532599430283234589616949076055559138732388521001278197020886974778227562496030002979272026691547294591825018812849243060271176267039394147552835821359794167139261818390019671587830155579435864764301253854518185827114557158128922309871610826335017871913651406563446914151040206896364669599313328992436711909528149086184364409459464424520773227592035329534719111796243603789246812760150237672183251771323903440454052310909813965589681837618442234191406755359049456841564108356817262797593616263970429203711378109358806338446479265901592937876584817733648345964054067654582767280489136128557123921600260264080686593047144355334188894242894352718310879689188061306440179408546091568834889244112382890701565509363907053152914347867206218185491120765194622443601482517546679489657933151319025413195978461018573411774907678971024297516624439728908097576765280320440033226550412719303769672657272476254874617174403106676303876359826087866657024434374195138614045972654325217359765555964553102471449364521496237576303966867162103104585523588767663801834311081926678763449817325095989500275531372057484512602702600787148298468353794492847564165065936052425431796954001305456218271013853211366849844684075061799853152226209985460324645090274904769922984722236689401440699120333785038587940492896785483024168274201519572692308629021980504603913187964433229258729331487203429583681030136269376792956966663307718685807789029784884577187678100163360892945160990276430175558539399731757978529894354631426515397990861114709860466711106791878973200381183283328892696007306623587170867616684462100875978443705531327639934013301947917291477083549693597891860151234166858028332476561742600459730654887425552908306000750584160422338123851627287385847151279193853427663945009879452518048932369856984699052584450075278450715813833574095121460250104021043227836472300199817810065096403532148280693640062257743995700103106642421198902948857554658373364405022577329727783904920621281021255318850446144098477441565628729938576043922945076133389756417573142723776415132270405582709801419844032236934091945155728993967142394395707407192462010645940427745163808602748040719110202123971613439166671787781441768544199731537868399134484922426040964398035583160771079837570459659672060863813638326557383905718386784974060222296581944224454746651108960546608679045044594229535303173608033723424729488882514115749928810493430051798987837875188654436802179794238303629516470020111879092843196446411731510542605548825067354047316379274823181773779218305753349398966222574562354029075629060121954895128762749992999609988413703515839994514663323270524022733368320898375189525388447586466743839017679996641205087708091904758720457720572235600988140745065956191057948619801360325061493226171947042595298653478270360633819954522454095472429418314545308620040122949125062188426853240041183406532787125381366453232985428048744896359034041592233672626379249399276373411963936113813729218112193232199216317141475443705450543095784049083335124116137870846004398046386166239881819001512142218097234710770604624049199238301127583282828529612465396735440804231961359274066890556120230765564477841398200458917907873964351513785361255791618408952201886110757067403984737202829397895947354414871065345092851065780067945290395715644573951941765564311070365991608079260748404127171142737864591427556780097415614425594596224815522719112044831262788721794924669409139535800006607857567481594597013276903740741829710469697121815466080393413018107743044831181707743957908098222841464314407417780548950605247127462892273898478050036054721983344659691758616443025455224584036906404804749968723403284933571492665053227100667956608529968538064985618308814254023415542626831898097681479932376581591854775515801390809687616804639811687937586815747748390036103879687646824663813463073639158805048021745708605144357947131182801594674971159662894553515505334932669255064324322708099222678311586146374146752627964721856072411539477037880214966314011078796178223406186524898705498921849184271917545724978992617360295872295940329642258527557503446484541469301236240702366400358299696748140587830249728726900980136136983297365989299028973508608928608889434374529667070129441296411352396929894562346261625163386660052042617618701288836885825135190552557351574110623958254240889034567929827059726956466278636465758477254715649123591362380487639361925750708923139651045139725361113551571234072666696054080907883190692547309541748778096049181218588412704711652630560371466631484365272783349661397016004818795230313548391127272745652600174648620556791773506251548971872197943276762562404216558281350845068945946929506234632223297407371978372705294737809712456981771310037893143262227811286794595759913929889789326457942794702838317800911833580817626764217234285843424306471711005577458402612231354792130618091085184463028923480788349829706221884817236172136520778928191049835576612584367703401194953427608650293412963852591834673175097479549796850138548143501427896405755630571484252762426243283279558300011203687135727057674984310412224246990709880105985339069017837759414638206279472267930711900351077980462442745320098064725258252725629170034246239899373675100140468616965967830812628789734599336341449822415919512550031042509549956577034842960875044330610237998342533765379794567136988164187962411982422657091237764530844891500709589785459909659425335171687173742943507901770866380888018955167367651983750048517127472111672722180670397417757974488575088899729549244200987427645611778935195555567202730390887301647578788646448578641601016568785633528301953502241984809924153203028742803140245243564818516368381383737932909509581151626969466039182422034853251710548532924641413263909395002426169148897411348300328906287641588922106099232881966643354501591798343087335679138442390075792325367097239685482310101786844564929222630275656974452994349517021263884125867447424136099521809774812251902303957484462303399697517232765793831560634660928430646508201304248281469435159342484022781470827283988016774237326815421047769361029113347195696667382961550041782968310746217262293266329247244430070065258597933577431322381934583072505948941375372853150138682650088608499614104135307479864777585195226111322057460693103326882605904211554479658801129778900307792582528134918773394414541714471550748247491194044206910472455786328404519268577990022528936126786755125603995150850250259306005337355550299272773185835468122364833686410945165850355198459298750413007083706749088445857713897120201231304407904591227671566726142536395749588127609387387896505375906320799993913975045559335104372057910889854933648250756802199159681525615124760087072298424856785886078220167533043971127633656736616936722623755063776784005136094050233316453542304458713166541313238532180698149895722363378074910353315437394369802494673403741823308150465627874669863638467188779026590270222111813433739142376307190934360473504611318237360826593652016187405939333615783682890813928373813920066442498148528566067258081680435508790041128084045902190713600869221922348472013843492334973162619227186906149583112672108402731657286689091690432922405838645691092765190167342857101827383765963388255699982949901969939105225461051595795590657577742138003375718726445806872867649553710006535301014431971354512288908639716373328725395515921243155409628271063189704051913639980625863666969052632605398267418805579967813069384170945162302075898968976142154384903323476743395068751611825411337817488206090978622516349840750339604188452928416212280739298193649322735803778429571453801913367382959052334371539142501930172219855662982658975572302195945087943341545752747481164190702686676121690777426446324475653433300110147104562776455924619205764455952149808580343526475443475982979321267617132666873271566764305875408119739162669578329045722777049396058023882932948533108699465286573557586297927982135653468325727333247602207590604728930508917006459579672538214017789472870642010666521877608995754258981004111745017020641590395695933374087013692517310944014682080666677877365235324003208709402798249401882201127857928527495368254750230161681845606801142636155004413922840165435288032340616355009881291418108835956369327395397942953399098779011480165998681369268161682625761149328685448123966484871766140577931447515040244209367587654992681679033430395114834673611058312762619586846099714301656943670763464552858460517213728369151495148921934522040420540446005889633666364143289469332981307479179638901035943428149145945344356409804265648276964982055806393729998476878472973455779967476309773455775876723072577036778604383449428049530967612895400820876100831670967242585754905931368733469708824870009734843778469872684089287608254931776871044588073764545135407820410759683503931659364575756940550984023110120842326978361420067842287074072791654574612151135090560894202666627394737775455048604554267205274565136064518826130436504936580311765026396792472520606997310682548439098852325556136240840756974878946383113625806753370706875450817429336128640409965960841897659087599171811337808164111691754218916944411577786879690618907153862946796638604073987820791070198088799531181688966770354974872962470458706648634672811106102687440442646355683590561495898628014988443730104817255162299140457277369039921720488561366622458988671574696962706139287839812858876123887307370826966737225144546568312696191611289151725202778541308648416301238089517727454871757605682507098600796042159572714989064107348975749850576042433076913523607852225586207083790283397259638847369073556727112789658059432152236147993132331159225452147504029649203719874042380905436358344709572439333306370586991985058380784604785411890421610433044766043616656472537303711345617205945779105402735521220617380930666028362105867815805890131283507815034612193703088277941173032922989030334736263297690223739014610731950917462316319112640672863755393513418472903440487919251548200093904347236440967260764000389262099813751828581923314948336211792272127628149086919630281497222297025098504172854262286787922978548865767262857728792839476039389303826246510759051713374898904585220084480036639146807058230763520004334079614192530925429470486080888366721772249761190651903906432138749032427989952414893199553759485059911728099525361604657978147823453541602414478561254899568308504036394772817723884431018878392999494521445206010454851055632958259584085874985970781990091273453976849073780259270110706023496019732294521354278442956271550436873131695587152573785051990672515714854172208119778847567509768134870273243460923065790604977823911316315214571794861788556943765087380423521371494969747987571836623439817663688803576443689745632403691172385032143078895011342118838342565429244429228932977439888980576561343898960160294222057399839609117302452317436595644484602879181059970978087973269979519928613435951795952274703044154589277852619428860097773787107911014942064181360780884814780638677122567637910423285449795158204550127118397556251429534349178302923843358171717188697555276798975945946375672263413781177848025454176758943406876523251444872971461274283561240186094244453548485218233873263859322452192537501618392726071626902742501390735621395677840174695026486094404169082274017398966502161038403970817831041112178576244827279124611511182666676157678796009829810027341105739902570231434548806616392035351474306146578704270367019069549641049469166683716238694324686987553034507172990941994614995801347521524388468526845290457840982091328263232507777428831677413447762939670399279336081142910461053514220530670424126952146440089945298949137896242917560103313434040444321565166311509671949087400880144055033568416397610869229826013652046644902319072274210430008558701568897272775547611201821936819040099000098926608578772226664324148736949990387990563260300232928824201006655827956372966279571010095687517177917088094771347420288967454388803687660687332152377987362801040111140879080358289670723785738873898391009869109140985193826622114034975707198205129471193690794203986875725007046287415660988291356351706318645296824983676869442125715381937737220863038476612884660035858294442265559916325568659986332742794119819007370355656502874888351829080125976177480641119989408708808940848209138604845684182468017436152964269515816818301440590352725540465219653797972784932324774568637004281578131368361066811098167561591308251675139410013875681829716926297366788531071300460513208272868721858019301970768105622927254275757520728235930671975393624829106504864064476722586671646467718217697036558953783341631257728576354480700169071152866384799903441707677580504735075443912170537888387208413791937274715396464534608650505555284975523021326112888274429925286341945154351471676423143673289899257520805892895358478357742377150147772456572451312886267899067708273169242743472031730507663525115812242279855238829262396388010240440044721128593623544298387735230395725680921624445223598961229835015477581617162287995186190572433310273944270394868011758316252369636811926413827737614577683052926056413011875339850157555693671064013124910124744897574523949986985967874365613508040255494045254321526350763886944059417692999676828599594547425915570029607496311308429158224030125824862736684655908146678875686819762627373522890004834706384270479252405707791801247116454069383429417467550852387709381554324622214351726669489584374375062216733848917096210260859577194451233659973800809593422148172891404526782981055756856175762201826380599052032749719129808158831146003064800327747552047951197857542334784730526214951237878128821901682684294205260443346813955496949617851080350293087786858792594754192184187825589301022105237443895248896113344816676318884820817791528943928950270034421564181076027145802554183165942961856554352683372951069228290484744729391374350907332264681802400177505840209049510008852735180729620859737036750880862462165919267404037921861998625635218020969777959768506081480375877669385371236250797694064581253488590036277443444883429148079071974131404773973667956640341730397988442390618919440325707677668073885623993982283465823461246144260814678910987191452042547493222946631911699428504233302175752166623691662036828349075541288532561559236119079392019271740646833614420508241411725788070103812097929492074193421617454813120587027341229337181339030996307493825081836109843588846925750813880302413859657920619111494673357518842581309514639012618816032180142898479712474367253872864209783289127909243559440904309678883490676046453770468698491441639654796723156454114763048407002250985220271684796730923246428502141897123819306634180832921323091622943010739839441160127582538547794359068308142365444227031594484350614552069865795290024387987795021785406783410987688449975858869012542540075267581484399054767818160176075858244112274003712187139292590408217638426719635290102517503597228892689112433398644594187810730035421617199146316800521987088311263485257102955500196672210392719049106502736021206793809618522813480544772322233872849909061348109170737271491492898456271776937936993916654233320346349590042713321885552873147640967645267686074799708153887323885608175154718627514365648077029799571705600777945154442278004977873143263176830444223220941782658679577120426478666771628442627473980413586770665664505479063635955745594392818589742915490509030426255326063089957766365219941317037405066794682349871743629170752192664848821671349004733721452348873962644085061286020704710888089518333077921906259332618381970087437167689833120967531023446198401200995438091193645236339021536635558592371299465250164385520918871219302345661123578211922158943025789171808009726674147321379777706739910879633268882923295688273499610749229606269459931903211203057651715663332165710489408898146114159304278493313758539368838983068644989583680256759984299930140687201739227685455112771532686958623843877662375801657670236247056358352387714787642271652263656518747571531798221325119434716005116406339413969746388845528324762751579251781541177656807407091499249102368245490765512293551091266043896010612823130437928675863197398491057578219771674618613417300947561547358433231256895402369579012519150082388036501694800875001986840904527568626015734925076868012676710035399999770691154094019382118514704108297854250759556296893294874975083386532546828149769448665635653679687077285901402008041861991446735084473820766597477596841181743949983245509119249819609302082194536200675031727288442429497943774076395903859076610613459754911278601741915471409383899000905938783692361166727867243625071738344682323178579987738809099833159855364861323799593508043381261262005032999027381098496619496488014001853469403164079975957124529074082399837325235167098903453487052156810538679321519055253911753800727635656421489205540181451016978779247433337806465943725178133947469412310092469241428577566205862399864884342043295342600489054449863203970170930817348993119937620394749742699256454943771771041285112383968908969946229729973441683963279465764143158713129378836414552671741923406292640683061941556087681812434205823567288502803380282481220925301878616713715662107954262580571446447486373463571419197992159355954892552137396338673284671029746759239638236202269395467071098974849300080448631617098533749152383346384247009108332003307434294670171131509440501473634941832315876740707096955339255906993732432926711806962131566166398878581670928063979690013668869945853764921399950784561161995369680185628284566483451384448945573499074259145604341005595497613254477911370887246680464763218872560416041056807370849061046890403745935357285294536163347660023882227495720562959834687058552397740833842446371203689200572299535860579926024872795138866565431852261068572560256528427456636506262914094625771782417366885966705486068942214614903229530287649082943000804284878628056854726742597228498116956381477388378289234767342435789385378984937337874277756775215113743933705493510736938975679432186915208921478964609596998260905233680225999274846770920052042612824079619007100908688212769874518334186846535322067521753235048272112439062167947148833549378804098968578497503348943659421343649922130857924849882686293041865235233573318823824261638324862331878785797301622783317464069109097959959024456307470646411242343367087584160031243932910516063599957226466442364045627233422500255862443261168223441076702696240697368304647402200061133746212673650997955878012305967451602276418240451654576387775999011270635785972173332800397210341441437005329474341956503487104969425333270313924853291049005756336777246981385553427086857302025423085006323425392893639989844897254981193442111877253353781332014194349190274426123677912115405845684640385601185669479438857566376697094079670582644706098418297519287741212271675482291388156444492241998857004907408254463939308454898824223851065633052276942835561537231042001342057991347075959216728427055231800291180862248879741694000291110537682736614622728412751677321205297035588334345759679644894634690779768020232153892180470149465244110860079618871423931015910226300282818457814861645267753270009932433950417486760240325027216971151699321062019651387811483229743678313423282091406064472211422922729465170704868105244381644812542032189268986677028701407554455658502847067095906651548230434960003301767256519878634938891141282852754275629967121655493024490644609534295130574286129391618759954822814457775507992048343022258274511603316948292040599713063456779392250138942005522065913573525652449779568746681300553916489959351854487130119472944905139650228094595643101352911761834892749319685982835422967804315848454479680453040212694731662948135859945325317127448696526198803703793707186977477358832486082914738493377318897191338623511407007604592658149458601393305932709132839557723163171513066740206756711798777536106983768337043474280217789184808358755709152454766520057373546863297659282223561924951684750588453392368094397258480296080692570630573285836505226540207576581345566813689202490580297450527011554568162856438303932042992853192616434347233587711156531009899891389240535748977550804364995940675520224326920513059896886406690322420685682328710163655977240876291308349308719649066269709557034749724982909089530364998502837374163110153957329771473124542418713978937820493849538749599332375614122144924698956548174254011896875192460699705240440583118731487942285206422233852856392928928141814868682314940487924597477070338557049367039040921125937751278483868860384211377985871566420553173655257970953255142473687585644151410752268992726921989431993775750634301062565281842484931898167727015694043942813630193850224558785144098155119174888644825939327979864172837603287887129887265091097796106363425755843624489941290592763088709516193888497366816634385496883088475971890052958419087761322227316114883093797222199420647552141281416663451127871458120143762843977780936882470812889628301238405863648042446722258771261240301654152675217435732547935381342912511988360732965365483591179871160316083402794002251353281214391371917946150148988516161459719734437313139903800842074601834943573699295366462639212374290017856988790971423715934655467243953913047708043956074263508274481952119865244010018652065244437521450286814134133274164920812108637569279811863678491293549552191390831477599018491326686201097231040929541105934772898997662692839798626261872562590147587486889676281599582273793588177579156207132374249290149404933482966521407844299971522524595746903594345757086666137735470328103718070317777259061152360531767854171859888536977909325490421523969157152003194732927626095559319548611091042302410474764388847787193676203473200683608477446536939372516531777300332387437664614661469730065482981522828063965429130615125366575301920693633033685647923237630598081084108375949548868584101742899627733122283030830771481147923395580321348633032543249135876561075707093316789182467777233995221187502397693527054360771328876786894976714660626301407980705122223000882824467701229944622950534672281485643446828726280107798113120504684005168005361838935853373320245446114056037670260706252463090969209060689902039808202644034211966041874334549985825595442017192252518833081645505985480136690998335114270778001702679287121231379139759314329702942458665429082410758937754734599836734578465751148612273728592127813430969618369494968750160043358136087292294933781990244344738836720083894058670298952671753616731552001958043256758491276491565665707174494422308265135696577942811264054056402111677240208955844384420870818784501674922681746818225906757369503664710788369581867364991916524404686037323981103162685140403877751443364347889661525786786410910474339566189110224954798011230665134637051244811250266560911209845344883467388400228070735912546032667614382844133503778095117339966271858968991148268274095056636301181409256519057471589643863053258098112433402654234137762471324031385528847625430879465044228729003467690741608101136796425661688562977892243059183772184199575087746181799235064063334197942367802323198269577815130153749352469605536370447129102900927656917485308090149622624951617120924298552394143533423066428291506177725760901124002004836102838319962675074982947804760235538719526984009720267937310464077409289483904728939755903784992171677990232373569499075506842118803761428287131108262445770435153096130813586228048870971920340611407567054770936631370871615565580858367520454757253297442494068694220583772046662475999040616603764134508616955848860297605050633491153542525982469910249184522189639960747065626129908105405172669586499790517334553984762244733314015848767242435662777177243884004220708452297269151077998934310124861435222999685381793862517324442693127050195455674687470740409112573855377064055628482846646199629370517000428801614708995273714205886749160685346748905131301809618227713580853267958405040351042601500275015232994777333338610048630696981432900688837594324976974420850823423250201174989738408084811941486449909188903574118468298860987715966949470607925697824836305488183196834224635091465865001390018683632432245403957957046223783795347708360494382368025981028149015398096472975154974975174312594712313559323197793384032959105817537054896205347205586031646619876061876632433220957748292186917464485532316428498478860643981053122886812217313835017907533101400856502389276232826727260137568292497839399862925103441103490089505351492161402111851637755039343800634322633669603705019329855288410190240958900052715856252184084767163591907437850672495577315176996910231088544055987442902878482117507512155892616699039921472482201094518259369971983222879213291965522012508292185922510295265837526473691464637465992279519045701148683278346892820327190421943980840059543937062741486115942717268468088706226336330449039207072329687369305306735420105418589938654476921610734446943554240037135735040716650162218012032628849963689685394045228608387347527289532456146722328124652213165768837879381709883470644279446774524042659373700520864119292933880083972114744888171104724535838961412085987790223662105104605024204181194526132743892033573360534645245297123714877264189875685058838186515292043343217459630615537474485216809706979236373353942274715825433961303407637202452904440912302729522127369842180341456172171255935655398630690503310004454023843593864596648155959356799260338756529509097574464208321155781121743321094307884781886121164200157683857946318585759466053554975690292446732033973538656503294031418464234563108722578288050219507735075813804897372202069897229457954443358784504002108905044353511043775910232819380999706856047066913816406642251269845084509926089029047283209259133824095434040352138284419003810690486319557739372835066401675808681211614531409755500778912583763063186103238672289198709828656948083132559993975782922898279281588424552653645106723308293904083296351492023412263405652498454624072301598398557317952540402933544603181709071832248026512978241877566106647452428389174946259507204989433184347891278007818551638912351139984655579928309259837731645888481143457597236639989604924488392401460534997594643737774168087628157916828191396053918062960695743093132602709766117001372774126143930567279680662066059830657731597203583327859133016803897479514348209976817740953237565074707593370699835649121341848606643941804707854275432727140228188299817107538959762812775720077574546997127263309978861048157696625320037811739941549471959837942822967667773483921945763470630069176440847461084076218260624832425533767475901295943242818999611873304455165640077423800403904334863332721163231585646274948097390792050793248275083205595985923026464957465282377246298890496723762279765400878660158380364625865022760568482151475942468477750087027762163389985936527321584837414681093542522374451768121089878195142963777600829114395529081518962762472080345983892307020221627962918944171310460964472845242081854174361790968220651518529567086326820683296493206869597245798539887221000516962859683431813184641189080998485140408085048142548329824165642803464769554513422990726369826886277113844081482980074878304594016674212854906614684230980790719018162490767830210326121261466762709633713227275573726979045797655225694910262927695765592559029652205064823962582284637453201666631257847093399880525199238695685305543362680990725963031018014180157697335758499544257102110149396267562959607799446405401211575581608602458829506096086501131586316042140081275479530815588750373649619843409475996879766736709842321089046838011250137928278959702883191283860231457318908207805334978935775740159645785052058959443072950869896925728112330897643185775932135039030223094729241337387321385801730613967677945803775120779208870952497911079461787017301816739816600768567065366895090622014805061221845627420542930685141888798216310498223126175017256306689759898726037029644272833258212923006111250262922897350237133051380169927882487355645492389026663529140741828589174695991562506802848129622117739791300228982863107195164254336708833719483522333095194173181528180980260501291222345052688658980172366368497753783517233726349479508671260952654672682739856030553702741032031640698725818853623598125026008219884863059378098040952845774729368051655020131023752080826603118956918977752729640867885462765796244613299495501599063292821853399565969664463310335997203803457150872658608473780663367037562808543097265815802607608634983937990661541616392743953620672727161389563868203381446596971633617400853702390519125465196259160489838858319411090556794863308367299794598313706143114723036791126028579168135415349981762262531927670477673431158526413975153002524401193386843051979267282010031471116461073383645298155533226604217922034218672580285581808518967232459413742454511862958038108329288464236583546467308311274465430481265169358006560599691095832818040652560992929097408829624892189048358566604921449698953764497469404655607694597431210730371029616103593469400554864848403250742702489818600476962300289750794763263697354650873020252485614905676946459816777101397738964631070845334144987584623136438847412645214160260693464529654964739040131350564341421469501244661157977381897516618189602483853031513941985457291207335417573773513056670879505587440116528488526467287518969882574600272975109580201811993935312038479515160438626559842938894203524040887922218900395109176050966959724487501857227180060675527875349269555566642400088179557399373505403543733225162802584916629159193340394681199198989543186512950950596836290249896333998037825857604770149416823067688933796986227774893816695018806895196407476080277525372290449765651723461748598250569414019310028210855691894391374159945154130285718448289455013459366158300576169392751530933076689527705744135586072748060932565016648867405940828530286431474502898335380643143393552517880341512077147307453111220062248755519627653746133251993152669178501359662098629213083351777706317292325829625955743235154791254454052013951000980220505206933155377981120922431426736868141135856971564063804641423669863266488385147487404798450154976067720074345959563913081696960513357953160289242471585052842277308870542658375928250880668649204871711931442939512454878473748561396588280526270944148451013396372107204398078595783051052862741536414942196526944279757488837136865174528047819455649766466989381854080415089820481804144176618319105028157442687547485360696926253703490965794986939878216373144446461812549822430621740507194060831766449761905159892780282792265672183679155315582889834956354656086022227038840970011409150723358523248625301598097043646942902251689679163208405493313621042784896846200071987624022910771771314410946680473710287645153710316995851877272990318507707841046819513357878244516392125758910940147188580142688549002890912191410203819332516963783172927982845475360735848443126531149305494783357705051692075727804321304182773176471535043511263109453765824257712099635772083958997606338461002138219647758608729076079453170676856977199511863551246216523359728859990381686788618480674616680561673729245549147046458673630596416599512079039952456905034202805690605461109159600922514233021137160867661032663371258833422018384335806768036649205824427298220998609572835140797773374074252434269455482102543012260294110373754011023430778109124871754975556292432642792600250329189825943254256946467926546893369609468750216138222259864639611399182409713177434734951534182770220282515764317800317122665171915877301782109918656141356271652183515625055979436103224082664439630251120381883237841720266116170031451453404584845647462512229274040999946655153852470233162365599564982747647476004826362027976299892114670157057075209777702156519136921941997629178758532844903387321672387500970828707140697721382556042699973553523710576561017009791409096106361369230077098245162527655077456197877424436497582291806798094509405319411597013522720880020547162476387169720268545059304146000603432993705815728081049094225520609190005486093456089287276494564945730427300344143485572934826942989567515571549293852872947082082935891481439531702348332569217961235339026179587388968835537633505066256773430942684753559503129483751855336013710890945619118999076403170680988385811775529973951582570143761944944499578341250669068085790198363371038146013713613797085659697673040615834263050309650633901994110683056103548088166469903978494680609645475672484657327076582862483692276317731849516731226000013640565912424855075929576862694560335484127038777558532536895639188020555533881016792673698966121784987629726901722224953326470368830563052127394045879260743967007307015116426142893173639906558517383361008086453642179778876010587183470048124853833172751751397814511211818383902227923664348313857500243997567700011741844726898036962220415184307377463468083281305687068072982036680758012975575602405152367116817729153041629611190385188369402314071841378199048289949077665336988085845283377611590139642820768334423255591276818856514070090583269550436635617482383156476568137883071177635563620244255223048065767938613550455938144630887945375772869875479631738948863527748878535505198343363943009773993688184990538075584357108316874260705551050426467670231937914125756061180806865869055409705760532762545416878348825589026509723434423300247388265508913363948556259141923475998460190293758077394074513012573910133844587350159588909885314987801315146607740001923023860228034601548863962236135600381827453836320129046556526256382163025938418500802302834007696885615713648424054649768603110891487183028073461015440440468930834949222236482973515373110094263529023630587477557853655618965083985549078465041980219772349439676587036203663908986981908356441372868632923810541280342020538358108603877277139576616637104938584716064721858387302897978627106190968538956827593822864601085154094832025437542761631216342386130192016416979193107925739300735357836088109169094923568291105705377809375047415926905190666640801482564298261599123984868947692718737087331031456637833328874601092420339360839499651353297552862774897733250908664927902198933934328582097321556770350387616352248063320159646998174686735760666890544112637600620027105438994851812024293194809879190681026434405314525849130461893086748117966660374291090487821198527217925472188943866241973174379352903077400899689927290128819795312606217864860695841539080214950366987163057619732714100496660485310839958374986296985736586075658513843138476975815845144472609005785827444204641545836992760907242688634635277361658104458370801302574529705441459609677396320783465551381191912086212605241577933064892805412074498061681392391363439894256971997894298206710749230539641518194401432145425207894144214488436779928485391700672564685022593501719202946387244470167466342150261411820705248203813973771320406407900796812151893654915549699124776569875299130345240238021180915806649815959574238151984157425334971548378398751744639888685205094821819737905715593740443743249089518761437516436692226589777860960078257164298538360258279722981285014923013756803510810745491116499908599329429140274466505699351228817194191078591952202186905014622378161178400369844556023707000645184824243024467581728032664733242534112091876613078796487021430964219549924309310217432924610360226165521483730022356835683803459462624289953354795039878133231296511389176286612695163883826569498377991461331006244040149480398950661857706098634899022043511948178923640727294957356921791897282912764235211647628318669392704431407870848134831749637671541681047061481369238216985465705751101052112371405805460002752653046742758808831228260175709973295853279308860057788602673220695819855345921157520802226077561221177839742311530328667999683868765532061283175235331051744413945483132184959864161099189606631117796017776508015062033235284767456064218742139584227940336050632325534976388965781095562032677238927336856430475335619686913455668587830523374193299189908329329348122441143426973695506401050121553674953810685776081098805538337869976893752383845082310521516049530827465745991299947854388245450993539386844977717576505162559702130746259995820431064508628527601891991433076353804636108882721816193255915752173618716816725956539004617742783609415201328061329476107724392745804336374471444762242158408478869631030392117356196480206786827576644810485522487873508022867783798038441780209787141398024416448045181993983811241409029080197694027585309948130226154692185375791042623259685574067000557475256631205238666414288014161988641378846686856516093132588998704430006185571279141898103548230432268668604410095187002079619414153417632441332567168197793518800151392886855320168951524067321008025153676776040254194373742436269904861325326701748288337496339306562344342708977818299685173227669383892160511415114337460243770575018619170462738800199131755986911329443412103792318403924235876373801869748690777062563793063444450571085923221911771729622076941707911367716756973760313734396647367021104529252768004693819013665907234560372068150177104967871609223524788770699909810204525987262375350974724392529410394331020008940358777047119637952357242843608864092572214608411655032996283877319205712238501846893208848505794497960415279689232121737496417926743934321574390565669187033483268898780193680105884210409027005919890433856688452645656907120825292540948113673307933029050098377950478704583680801036774587458028654813836687887039317122890407742685017694665523417221303906282837218547209376090029622752898705742546523756283437599481231138603100651977889328987182787554009854180859745485476769985882798401282399152995882802146963089739336919656417277148140756782801952911315054231770975903840602143144854741170799369973607402934750999413585329225692454895601019404905723119641859980823580882748644128797498998293685613669360997805447368410542791321441953544029361295476353670977490609210611658967211903544762610771162446557942931016450446031706909870472508978280987602646573416115812065100078428609242223899527410539618384820361411263640551853587280678487334009810837211706184755759335995696034408640659010114606598929287762370437995286493754790212769061483018152764027782586718656649911429029214621390741265536952881478257591234655637087823701467756628321349272391146631571565927516388186123264376311707833728161531970553922272187280926323176967547377228825634424490011090504843010403216463553960260989727363444556741164517444170590904373738142703351241291257361158283735098464024718649528911922404274252241290847195112267685621848844687355167021671325523074914462185583216909386151442589577722626004307149084196529306934346063057812708207960939043213569582258066033081301210117475428737617816853833190702578555033585262295550396310797888002903792799431759534617477877557727319119489003717189579669601537291363795184452732575451922763422443853699060230281541548202877417634299957274519175805628327073824408367697548676453353206777010496662479377328731381529789485279367829382823369949144959668866533102925463335106473935253294347969024595804098748651139018771001991173849739829677501265629135256338627109567520633700854303470861530985236584684905692236415105988180477438406879619392743290472522884299549222465000849706093000456304645156675269451296462318255583584857226113220799859231158019143227493245696276029588619375436172201518452028321580205071517801637727060025786276985428444619119152947381249092073715761020753042822503889519942153469431755360538747747553549641964139374605685801331463221010014816692802863667100842049747053769985534984262781287253834664730990997883984081917728941623470874560952959420610044354125271522520203031106205397160263860289069501272767445047878482168413208662453913243723223578783200649929159281268348919703288760792193659294439957458953513944154485351633132929986802406537140270807045346666160334634522003464533169650424238856772995970101835575392901675491053288548093168952554885347199019280045890525684171768759897222522795382719629834836652293181882929838366531946599180116272105553108785249140124081740613700463731951699233323524693464142222529951003754029077082626034475570406368806640879764159665834289668030503569051601865801614005405123992276897227578647977824186169100640759408309238460705210532906953603832162490412366986878250847532738977302875009917625679479004307153022395149247961451858295702626082425042794029518427922845264024191693079902100705359708674983942406754440706959297028245215668062807028298990387414211920380880186490351292932397714978119982129032352730162027043270879029729812415794733953331279830226898704015237422785553819540896143342481862717016653598977546532502578728654286452960726236584365720970826644788877111030482410160876637046693370732038677208650320340738277907614132933914772372827835090851104133009709134234731478980087406111936343180991491822687539394999188030886493443790165557500475765769399014863366581296257585377942426386705585067682423080002291483705674095546253023262245129377918959104164378330751040523939024964228564712409008151048766121491617960486912634954475715880944679495447742595812117375137681151842316088049106532015691205465494499431492942483413936190095902642761455872876960762490413746515724233043692119702475327000218592667737656216936165482699048321315901929643416271652155260762345922821119311431691079304251504514235085624057518773343263115552428874223977236742904007415079212158099436150213885601157708627898385663090198397207936361101070819757758369235451413662420406712781884005519277923240694039972085747549804880787028314461771435963817967932711132892710835982593780321463459846099814648376529116295209979518206376733601286071295558204351038308841021387748612423659014843911983067930954693810949904180580188586753719695514828656738071782009558797038460391721704796881822201694460709865142197826895559091942404597611432418183543092123523845731059229408581321349617202726125964431550054550369557483127979784458576661014113161349533042417650433572874618040239041057140431685125848689898414535999187731702227687783734576219658322341336185910399461313194460503037477032882127630582535961476793607245657755950220087803794931795251811293120362327287064052197668385446429958181016465830464947354725772396828497748264029536897371905075241228112797099008424484335384820392527415609774456478403177894120121205864762920905045512757640844526607535822785750839261237171761629408902862968544145385921762249559564515465983090740371384510577550445407743263332095562001866292497900294733798685312808876022055504124844410765682551819499772002266740372606377328798520266437915727775151978436576913592166790058057800213765768699690141211363325983083369463375666672221889186568364702742021329003288321830260119074907238495320435036409148468720344618525896896813620882390115358140658301489469009319327062178768561959814455970350068617837974778137866235986965982206946896036106094837016609661090957511442964046214492081058805514446342040426989608219651197009122072976717882391130841846331159011726095936094557824843502964207776292344208641357808562527004808842202885700380335199423532644454705802970739657980057560811198106600103222880542983826744190677716377294787748898660099220838387188902232066920617545111482765528740926828419243044449996744853770587427398231435965580099251957630119652167964310496534657519661184339459799084868046416392977804615284366947376295997616258159827196253375509595946834204269391794903021607033258273139842464633483229843904694215497997304423126922175058298613646702114660044225462209084451704087219479347865842659911204231989351870313381407588634874522153746996584396788481523863091736552800445373984478827997437763222183938965963237588268695818183293386805414978695824593412896530730180988202453629407646557430721873503981696896461387013618322179608949373025883777934963174663783009403676985067041688602600152432705276294435046282240616543175576229472786783085332418121025128873917094605961111839057531046548214808740681685775776418402035423013104013479548943886714915182727480197972543305821327383840166304270962888718799770182066751548918482377718672840493925818983843960871054847587159005659698916583079452338927178024983778609194923661386289138636591976055514842117642396781174928594569158967752767305955297885927789862398716213749812850800121887364817362963817538998066794367992118128963694544182756923976372281540477799820780665646959697676767060051991866939511066035360771198147905596624952783532724197842628627315922407272835763772272584929204811064280809678655204281802474523682589993253097683824344710295638095517087496817010274504215013907123283873957844074922541911179075330168592199202180559230347265638234924841979454695662790346535988977996156156499297240404944460485923742662700503791500502372918055746370984203891964373095840458609402648021107502894598454342003278771688659333775680008575005851074570619048234228303292052166263933295347056615468506064736066237910102990738338619691209997233636638111952252044574189389556784357787038086792332620476660809981658674676286429894477977810640529943408800766426027547766909412566644584203349622697036963294762728965077118367477303649431212206488547740401382194971363523028756348162567635120105911589357918816907802003821621275428304221452062055561215231181057395131805363789675370712027469671808865327055311411487625569420074146463126221904567248226415317108164103044704854141915497135755804094238164179635157310552757133160660216780224343535823882270209964254174487349216496701831372629346102937137560970303970513421490038515508859633045121716857146791476794621258609089446416197345108261614446765266872416618545743883394729399700587392010008704327399020305250823823926248876439358835526226076494663275558348181545719228913371231859308437363136924443496284198366359165995981267026118324081353343651180155959741469516447913824831888151798143980320470986244207489294627258152124018025210418542709910919290547659875818087430719387771588772746322941272497103020389551379980220534252732418216432481487798546448528895459642746497127647559514319241766760179011770536538909632611694625760493460858613617835699545396835989045356743606548979209082199603309196178120614389613836785492034333660781486593974551752136493608975562126713121343383938037467311128379773646362647916024908893372278303915646060317069753102902341287020003680272556480019580897353036398245498067620762223032735232584482865950095420378109960340904216701182543879993071287427253904277514144265398255722951665130401197872958253570555276182186476004695358189556275996200247194519464468633387267501912573984601353672692656245499672988941065359023205879451096845868137146134835522230262637104177818516924315712391383358638423344491037170337957876156347069670092773471057181740931223910737077580546448863948404035417217459211601498615847649980747619225464968700866883599739535316846315871685069517085469182583871013847127795563114780945954493625997480088476123912775255410179206212252007969245882998911353496129960256668070961551578877824324982267332715948257759577349683825410645763972779365728268872656017968970153253506976270920377323441374568974315633273582379445473344777609624902903088498605901132603476138642841297773081916545985872932133935372794777663999665850580849227835560593522631259688954134276964393105056574403840839118199885674350667303116618127587060614282590419913400872440085111891867058276378010195254315769068640923507047448252585888891169675190900701270639335120134337182572265785401512276937446904254870389283750495671896305451513642099416392456635360264800410523210890607486051653533924454995161578360253868733169495607620578181028927746936617401410268427352884825843000388131551617966569811316804608990971735085034722581853003628277306384841910914395263791394475000129910187732958728389044767870958954589778199861845976687520390464446969851718673820830577630167008850474905468860903046809081204816916425874533590089307882510656624642952741239751683083455243165408128116071013880389024617172505334270955698460501399045018591616995677449240681202568961477648757377910669307339271128463238422773328592950534343113364316727724678315644727696542619233441253180369394112792994803209612064075190532997906607467129478751769513482779409910196202749580768610434483079879626444329643079139903246457254687935599061603742651943687840691465104072258803707433085392435188313866431988866276295888009952174748513733472450181506269003399659481480386900888177119668153533353552222549344094789574820395388681400981036874588735253030821245035839364494187342258316656285216454059836125043528719623417479101454856891423144836359398859445266442606836296546827244619621625955825568169444763703333627988246083702904487165430790879312236294873271970276762000455790394111669329696183280715177597633951264115882547998521038948942853207600625056113960247750163091942759605597693781470127371263638586289762876568450394573016453680440922784063442174454072303041927666142285651171458322775122006163952702541879805187896800564676234321865875698669845044757750553040156632019379427573101799285121968207507670253781401599396890156274426728095871501464276320058371392621954584863553948631740950575993500466913281446931143869180548650372050270126009496509203684464926986493448099467882459585535544611603815749167762960285845312271845292344197685289187498016809086623335564964041659521739514948370734292629388808116347790911771841571113399118804637448598995110451757077499977640120501197950692755149942523976638061052906138919196950851908424665084352090393168879365377988583319442234945092448860323205065672737583545418633932279654088079682186586239024240429612462738434479733909282832603483056284760281335586478378837578781012269803685174049196765532423802134679867074745272688750338463416120260258868388745064806317208687857498648752494230487674141671989406052937393612926325999013580031691754737979123454718132161342718325489684111040635255034797509091182504747357313452534543402283988104276523639460231947948210868777346056804201685714341495646942500909722093332664988948468937976670570960507745587436358739190048051181389778801716193132429003432861488146802933137993762431509783456614551547090577157969464784748061404747114337943055952504562712630645192362512047126126480904969923479362006432358714744514539353488298552369607226550937733800934556055552363335381811432325071865875043357471855430769397475473025791781359414147211379101472553260197860384404850378918211383142974512300020349119134432560856165290548936739632178442654592415693104895679163767829937165720952977032418842615329424126766574378010082383258311651729866733969829886504788894832041368082892686221292782295936218200750833461578264373613810665604575962109616279869007782674900236984067576223219322288909268509402186847226733392887547103269403200989661240177783480809079511796557585995175305121766518705403831379942468908943314229248947326580400152906823888304874655461826729344536953748330732999663656374932042304343699008282849614954350406978357322856654512421496075116546696425019198331900166021509757382780415290750574755440808737256865268935171584199166512652298103384682009704673751130435300845869698022747383144635566138376682986949621513738839906950252518511241527078763495108722618434107244316912625933730496465480778122099590976600795440385028967539292910570822719264068755983260104694855248915534369039454062654206483594388878402279313424525756951938132961268028342084989927527601324436717742758048041629712217721622026190593083136595212422190728973260932080076470052730810834154688578446914818860743924741727574046814234884889022422625317305752777654749731458869100326566104120426078788030324821292496325673567810713322519700279245312246130155378346817683773105887974819781370926205464363936394161521091812833883299468389471112315923781611835919484350575918943904088184094424418975710216627289275220573930389759763097757612005388301628138094568624250350500525910000352709403782297748926197897509176110029155627130985882896252817059587606112389013376478721806097562145645584030902452086731942193975862853592190954302972930610038933154715317297175860353703171587709558716358106766203460745473839866559653261424967093426977395651990093330413987397309311670014789417182395050823667804689962424593700902544267395837006798943640625743078409977160704685343156361041208839667070797027830695523520005639631265457899723926083120526044179166586590213602389478063542365984353324097756765463035925891683630087396613214858650858138239491276634397694842118687049521146068213471210319360973682370632128338147345524964621355619516420632989242752355997513064612562680759198440571153553034029051576919624579737511682982000059959781923151887450859035078416446231822668651759251239572880460770161999534519778441105446028268136367912631839828565320094318356533432881708760291813438297790004351720629833777970011959130269851782588380883111949217381926435970354754136807904187601152823154267670239208595410604333029794200938197492618435632613343621966540294839798719235898615892502855858024192126994823850276661166925178369251431695705686279584245131643333369076404501465413064571378378275821486552036428378508416325080722678614774360035491173011879201148858874645929695017870975405184556970719757810329173510101588897086267575014114004654596889849365229771035001830163137409792923677259895235805516380150363906087615714880216398702510381260543643821973206440627678532705398727077970141514324784079825480652674711273597245273275702497625533999507120828534290581274829144001333730513052650645314528781629119369909936871128303389060974179564091994083991146593013602996498298159995120586043550548695538907393252753070254380858149783506270153209828918109925873184688296355462140829074149066822469214934341942653522448528741382403953715329961239756769737654076064079151273728541032884106310031829266620871796889818879552466378770714635248204656094887560124694140960463152362028965310110708068048909407747486580108336570291179911105834824589784089673617907332216118773426997309983122721567407661957519601157835043064695012779072947851185499270790582824213402199229304926519375299190536590386026880415108224153363906412082303717877750586099165405481172623446580212943094386458163994378556533562132069590631186712887397019967763290517997468989529051169250977784239165231340670998032415643719681499525194446625822225043055282715865449635533368944199137031959624775120728403598603586298257652582301388669694834078957757158665009483393209240687535487390677835187592866905799739181264822853794391029383532937176647596671363342485512599230814844957622226169664139214463151539278900310440114405003720601887028044985899422440271846781118609858153848063116549311782328684846313081454385559880221594794313762606090039016563434027850980910349955548979298831073866375246806879460818713249714840502550940108295615695909498215590964927141361919665028765479922551574656988016742059580546392403918143283343339057524093161246654724194094508313516307055612477261384354099235955924238090829153423016287482388872423900334651363900514542905174240546950852622280423130090755999496570134433557588739058881865147522664977791325943971864118510793751977561054368292314183037731972950889089108804564738186560155216995506485127281916925797631886706481796393699505952771309760586270748717839112088304813528070961941115338002758036648486869845090128441441075603727628014324999237867906611517436821307601425306588180208017194252621393009012496137706797991637125892938703802064230365973714095125960491989452027045219505698522198427317591839764803728894324024673710513772267736737983631353391853407970554921997312549315128494197059832019849158013404680355328003109358046071859273528138794347142180452733207926748401010188201093766847362405303245816332698959455402355423647320851813509830391312143875089637695926754354559543954481008510057655228365351971255977029494417768098223087026917544245642807241880639577977812736017108795528715627895878352303190625490531223484359066651989506225735119751299458433510394496834117182607790952985142497663939004902374330852529040734477449856891063965599034076165229163140131801616525685572292153496798343710735796091157502971289183304366201379276521131983378036969834852115375203895772313012417580094148003238918811185901590383386880491974992536705409033020267222762978140705958357567858487522210879391627559244207500267699891083959696949122883168868145240027862485404901470583808115199100044030165294239134075823799615548403502588743953485961582688492217696672983837013064623311560904574156636219615575904673504615073543701335693001497444866917300888421766870698614745798148586769490656761882355719560608797606201807344857678623722333746240164282546778374227781003813650157897889506313862000822909716965269811670642102168134188221582703869654829215372883392658160730509806645867366861128531644358690462787833066083972163989170935085782491738064141985928870984680750940751351301630180073591045157042326017817257791318794500293199115408509274546388955838780248623307350405806594573398695773690613103685116187868865662563505021567604254308716932000418972598944014818360178203925006142299179918323801013133268992325047255632669697420051980071289826901318263558265187401489145583778296030390915190895289509719310042439533833751920154535523429554801311816205983224003582343283578601536060121322757708164762736862728342145708774734166795714193169365963048228628727863710508904158042618576210980337014120098463686002908302780499818250354599413990757375969985105155344483568082839482039218129167636297294561573448248021574553158061016642807625752573358390621987594116533229144164453169659702570924624582141502507841153693619284637604082356249680582109516890373464056140651767281563968785460342539058403467016402462758075309102424626876977124478819804650439253488732638120108702089746698570053966483516354152080943497228927044495183533371815814331466675441575967915771820213525859953125299647454289089557441265556934959939154317042945660663945997914320587359796644055554415192339169150430498060769991550348229667762332681552964256441645399736169210981053484277628249994657870776433535952630953127542509058455808777124097071737343981857706525621914994487994370804161507924944473062900426623014489852581327636086789216095570106761675971086368534980008026986809652452540672316338575602206230519186760846642316437521413887879568257354806120468418701569232235036293540525519491750460270652807494393163951625336956981302496727353783587908599923279961847849166790139808554309067329642923379298949458215831331648257170549580173104167724320848793184238952229700125586367904945531971472648644272583082639594979936250360927804252174148768199527611830115504789224817319350846998331455766943227523323088662707476799481331047045569887103341310905129255726527491284191981028231350301415521909305672670653591608969425397733216558527452896424365046683223424300111153997149515582048922535868931314812039287661728181027054769159085890415093760088803647830954957977128579459717928433283346405993263413020019170682832967270282123860229147062835797756332306018150133840153817611499873377960676564732307232765100253553171333718522971982458634000008064889633610333035994686028505186692022242848207593149467696208616581212229898330888628088530550664242510687477259080101993781107547056035674581168148075881545838413860588719585237017569553448751730970208501811752217962928988889501387096352767289629081575246172285505073177300207736390654098944605970382656851684213041407979569649311615659903267821976843862313261100366214186148746395458013404787183474712593781300858320879097681287681010588167274730214760805037062587768556187328788222746393358326099440269300024289999641015822753508359914831367468998054959975485632185694410104292877439407000070613138270901492713382343291193902910783538596942225483815289768490771078476080411689073694647296213459424876900898862905745166207179346387090594941496720468330794351193701069795137769019749664253777753992868235318916277998581612468627652815768980604141671203115895130741112581136968728077411159341285493834802049113013085562378170277270209924714605303021125106077127358581207036642382794167036201226235988858786357695946927076588839830194340927002970930963534621388257413438345244449530330928128179474434083868689596108932616515209201262915904433802904783040374199240106367580883963103562694720480746646285967683880913935830542699429360853098729099755289709988105460291391559382509769545216041637606902065223529307072134140629076247401479561440493892160696799139916873673475097832814624719869104924059461184848775693575076452451369888626054596787293344655041057364576142671378700101120413562344260443279539051106016723155726397335744025704601150176695124081417015385075878196665747896688265868342964839067766110374683687423513720978646907256175794217693618063986147861100838159186210633144186233607270627527075717945432542472320954300658343188027030649269856581244074334738659657961353931760373992906011484905498363919486855593521181528052349566333323043499797804526005029502020715274174702513031713540133773452852692807052892128171063743816774193649811085945564900362709907387779570297974701634049432933012469591807956001593469943151759377444476764615787490850175561180730380536382761635952985416887894686174886360421347976860725135758448297536828916077881332657653871151422623355030225358635447648542928571149863476850834485677790319227377192403792012740089762676747517882975899943842874871240083887749686535103881941644218219564150614759300417976823745698525805728431102144093056641948632025615656469603458105500346296076459982900547188302485687117295356332988197820506417790835780177530598154250369092814654422810314067678880019368776607358529139595849059414867618759085894661566464204271582590446854523214619422227631423802592960000942184983512276055999040463542441865890464412884005842335276004480804492099182504115072906263289260103093079894912265238390094577168365908708391425088007673165474583918697055427542332944061111373429325723263050857077211318157444633916150875908373936940446531998363783889838346662463123129992658634837580680789958471310207108926748927846158519607048056778072793202773806584171418572390583973480707412360091031802170899451630369411627474892467012305298345762083181840244513777987039840047836965802511223367056156870289070317452029921044951988555389403770021258686272371446747001362907072319563390429437925285779973141807515513483532020751569294390812792488885904706100068688267617994367526393933636336057460974418064827919596089558593663602774396146027962490263598743268134325585687344066931889661089230056803759107325289272702926143114548618996130844059248474693272946383719581360552513358832098343738871546100168165652914842947460137873985350932032416132536472277302589547258391321506366501129374797586487427415316307341653988611917363671630958536401787551658524013569718142185836471292330841713036706059431873274616605660239107130480172661919194219007963636030515197008505227638614505510072566762893892984321592537540023365538518929917710071082045820835838450408731014429205742237732433200781250867791708901176913622088421760583078701388250223430122758111559265111803891445739976381665233963096294927079952118920676634061157665256556530041503426528205713478531965064062964602515892095102471807972070964388639890482085344507221457061456005707274150943189328398419463285946379222944982431565151096840239837239708531399934551599373204685264641330901032850516179082375259068184337103410249788224000492578189106838218159675935375645226203675075898965628380675777532561771865348830667104629563076589923748883450408978313641030600254320660749396504640918106689217447563836981309437296894028107226368059188210520255264029632683816793052217343142464580171153531421439274325273715822224005316722142717405700143767184319129239173404887362786598275167900711891057756739099706171071353369852319127539469322197389947611008387756286922822758893399363592378365507567300413393332086707945942072184048800144210724169560504912536610027802097976985175233073462245455733287217855652966831729432166954275398490710011494145869963312422609070227602690950828845598069233861959742570719189871625128687950134029540140860067047176823620864977513599018966669107398974299087476048159503000188334839094688576308795664759230169763002790931452113898219943716663881380359468614576032760599443517587774357832520433743995418810772048011402802702414436158882483658743465333409378508641309755519377141390923771219359491384195949445571904315080696956751724007903913412230581882515308549279693123632097184677605039946870298597492259600147339930609339061571436473011341772667992648091781825864519085843974136247441927031048674701716190830273224712387152397007063799794643827201127723520344456692449180149089081106441591632497190257595192346409935541575892799798465105646924117208174718984984514115100313158996872683593811194407045992306682667799953785359052817107607576701477101065905926000386286158824010834986286996624796964101440919674483079214839930127217175561308808404181461911496583630961686047595869232743299031944299119521865607763560675943282710895790295939863057505548185744689641291264176412298594182497855858206528866592868263362321035215892167113612758009535106386980211873212838518003622910503905213367443369499630444215708608582045950862560683899943389896463106765983609132055491201948376112733778184765956124149922572361299548959056712598931106774539306900715269228686044069980895234339987026852208238200834680688977100347469913382215179915693228673988814281410408585228382864756787067135740503849251123212328269882030836215535171440310577511013505144802700893419166313786151086711082114910635269043104297255040850603175650586954824477885329088587653482382139746016048876525142078318014506789816595749048917513834510847369676977246811351810547823291722959537760226633590898162342943111127835302411262556706083105956329662414995265166732201876889705241140759773105352772221537405096599953649930496046634541746191587630304055504712127577959618279439344117469455238241720379544464348988736612477473235858892040641294661382193969483257205903478230537904695225945664996731892143208007579084458083463651646913277280749198893682653123607447066476072318134451775605861160269515139096868820591297623512312449660048847937632092879506540255196787300296353851096942639195080843785189291859019556917362701302747831779690950586319152803532380644082769381313907314753429801765974656732003957335282198391751819075434397450786839245762581878470435565250644381749763944676558423946596374483880752369094601305955592128278421369927163904546725465484790453703152199490621431026179530942867316981455316260251528445629671235630300983442899231387747488950000890143924490566314767999719231038322046285270334947864210265083826050726003557931781181911959779784599881197573317271198131123459594341866588282151380996357481369783597530886980372170076482444865701078139146773019166662881667786592275308684938380533296038053923559967270074224106412254011864598547724101154975716676840173783687542801461992286889425517434975932443463603312628116118195013080345074184554818399858544463637721790354555635028688531833104046638674512117522110893009461179539365468103628603986868108612524283060454255875630037425696654022755464186578358500388854079235880232390912319229535206867193764715002156996182720683401637325879076123838721028462078295174220259519343274574887026100135406087253658444600452565432999710233657139204683754457024571395108241365465743130055752695213209284720286037422838516297701797343238671687291426732322187522651896789370740460540503818260141699275896312216281501118044145631143288419912647685013044527654862311102005579545354780448222301139926135241705751909422148526756971096270924831308328715147685158322581933154737450982956591337739404243860799164907300214675804443468861225116081018576986643508997868539920273379346686518272536777303308915937300352979949629211353177359947564050789833285953583212349202116782635258071214277695516840491993892028482333960866322499834597915982879787330857827099494669842340897871503134151763434165609482429494739092782849295395579642067051807597484919546430026327420054370031448603074283579745115243956959792825638023933949296204919144952570338869537871688873997072012349938821095485193206927385619838168315841938909479819411615774923407067057579946339587761179930442224570848419967406100812151227420959602852574975363574325179085994209269721630560222801635790668340929820784375003072861406062397485473034050541644016619042640470563517153422964267176367750702410933022314394119416315688854740244791306823793722054377308782036590501869494125652794706636488114516674260295537064355310595587022490253247127741942731167483816392306884953018538289176468780973183206152571022942391662361649608242564446714893030181047908964246154325471647952725191152730212191111991909402287960092866255389029861731696646058023145945082261507537843115619626694848029889906520638812220467984275387060479839954878548246760318635801243258145334156101994047253569467753135329464053395241570271903674614222931417067900679624007453443656070798924053890466563761660938722828656936103660489046631809502588741613866315975861170779227156688319700537789693074606148925246020485112385466116829406461101998391281087058612943666232891925489621615377244227101013646023519495501916789389432490361017784074504477203578294078546752435254378186630115545589077066822144929286147988319111218460406587706579187912961318379927673726505993616476783101716034282987019234053934503419636138603468934958233411085893892745935879644115139896322256043082189662023697663159793240273856239374723480403299549118740389168511667373955941069076956860623593340900013244035270388880438965987438196567837581676546368806886814917129202138848795745411918669402852729583071707525419526849614046896966990583761099449117484590410089180070184978861705315224903071882224620597124586315831919345754495983469221712191190078187094092939355997243691065418895062447221690259559538157371963286829231037662824320895569712445866377994937086607697658297494870328360547374586950162692428116813022430958491085948571329965965881220499043033258876182842404600339329417248255744168167472119002037545778877501934954534600769667581012435193527860428241836547731071576239116504651185517845946821948869777283371039471455979946815823523945023685241703216218531727736023923009526767168206234788421672440361776022847305156309970192548712996375275932322207298351675456548977466843544745873928708923143318593934096778794241057162042190042654953174571044914877367834648906960492779370390402010071307790803685253278963397631269299587089154489886932318107545185512062976810267204925408839731091391630603349373763897573213540808016419755823174843806367268376356296780554868480108579101316823317477348590253869162348931722701876456395841972800173974371052043189594558446106690840465247570088167629448688435243933369983520954225727930324074389679959193681128760423517630430899298295719492152637443272381558770788801874459864880324112950817418961086257751444244678742044112193899159884117514631649365696163349281371271442903971248466283164790381745895155860962219162912393942242952805536188795302587552412776165108269163698500911364814196304905044662999085164173496148459784285656814264307863702991734709634004554419551184104894395188581600123732618030009004618162620000272976307706021808663631986971649774814621319065985714740025881671153082514414165690974199570107438530675772157746054429932728820545654715284806303806239421829196963664287756390188195647573143995619278839131473062837388892816387982105909759034671578502869385528570536312574920250593814972992596384041236209722615610628545194921207229527303352567856716803622689525795689852028124716396172078474536065061896286181318373827039096065647365682274711743768302119100432009914862592114682717845804552845065833513711090669693851356983384219813240590575687362919059283838674219156507589178865576348291627752783072195198602329057847131756862932151755909776239054246436976089075545385251416137539301829543572990212012282959818730362451578096502204782515517291465218378035055587271056846535471675651632148407488025078179442630496086062196381885423118886190526830920772179374801771441062630635044145992663676134354172585098779061753417986817707991546529448235715142427135974048040698285485662684974582832749791324049732074946390421520510137448095558917849479885299953666158491814591549528735262980262746514178472679165304129788476871761158439883808461809689619042141342486695746947194182487003654498013692561140870978059783967413965531182811783041243294754847598031127681294495742239007899712098814556016588417217006296424191597895462235694837101268232668083493047749493931093783908949012507291004665430191384554377971043371809876783725016207410494645380985893020738417263396604643865289012010585151713678428874866558662730921770439286197804323755797423274750765181368265205259818154834822546096050518032478468371409523510922793913785899276211403771057746556692391492522324928989204008464673092814453926913105715687930077635696353220088204155604592010454272908254327574725840071746491122207981735232301525996770042386689296660693095877137007988118166362296746994573515432890658726188664745563506489724627617127243054961825412612454986769880755665242748131318789011120725575878596363008635615031664660313134185683938329854631902162980860490945154457075058181696442701693185445895548591790193891540522916181861834877574778892652547649109919242385787602697318558213891865264321242643863118543723848532514657203748410453022661313489548995073084164235510865239505810159229387092090027790035563612924449783407816120978024125158765411406977306797910692743258731160166925149975497811628662711659152999911149610461194922059499428264298953999331462593821309839060425064574915864803017281287062308802084390242603574183117377661188592297220988914409357790856435781697267720776733742584854209656916296768111038299235078719316763835931142267450135778294079794197789389628107785368147024103416704887718260860022519748063054572878005004525372821572269380694072091602270810746829958779285882851630475349060909285667171606909855748480038017760001242126298203601609929010666899885425092112574579018659796784792239048220273759290313324811492048795328011266312860781188368487486948816465554589451421696148909389206706456078340041708221418056408889194040585047333068276394767686291987059689496060431227751855173808524077879749488227574027227402862798487578462652245826037956989239850855485957953054821263490801511381837232611087304466386136110614586664290984035181523191102417126779104800635546317545881611675813279246199706555787487913798582915039193564949295428393529362203799582984034825448789392739494194646183281796456258398929304894146677176083633392788383833131382624259137891204744178200147476011713385795921898801605449029694052232633605083245107087872845011845904417823537283052278915253748074387221888597760933015631166336880493041941771393279366741078527093923666404255136080505941469616824153041889383032449941612624272448524310548604261596952582754539326385302077776355920470056729456496037471073086581603121274351266604327839616863287595552526847262255176092012904080238634057249104025474480473005281862562007418965865183411941104723500248503481240158797789192830050792219241536257609070554489191910249411473025371022112287006056310614941728718934911168617391655515996883964120395675322229301786114998258559679841250885598481223770942959665664030145352793923103230531100385818015278952677452552009425021010160454223410857408488263340411438140666366518551966795612405345971958413528694237126997779877022595285457404213261070516577547869374091909904643274133459337818786570306574538631633438962886442227573323093208463670637069269925869004671921126616630162399544917260826666061225462034881277466166193061989025590023288418347468367590755776730498977331066159205376142132606645433640182756980749799437008362576237736256121659796084102706116912238980483961145579204785342305977917529472350196836729251066189503300406692767774259697971833409192535059407199488868028717279098990353044140666348744972841518794862053338332308789478670086712858651228985746472892348028446395053992845417170098281587431551808723537455614586130650873660628068139472333196599291183315815176286562372647891347139771647998833922461165952136166866655544759195571569694125840974333165275785607239472038867859117772009018098913296668275213519948341312485690018575856908865153793696488162612620015689239559689835547607347543121005655171472439770138823082634712109849217935320787208493530432183907076796729039375878884756962023852446795219409065842358904717346316222157226992615514350297174728468138492298721518720665036057034629037753122813112630201332126798730471931717980229268819079150557428022570190846565879165864257963090985106070522873326496566477900152691435330616239388677184216661267286188369875503184678155211287583216980883912465966662484937061091557715624278935492485896849081806106166091568004749745907306251032598312989393587637469930714364463178465942201488538549753693789479656560298699844128335154731879615849272827023902508615207776055387610866774843132719937076528994741795785970209163114847755281757289739338618635398675125693975680529485569920887258878997025686413535661351963947743617235687677872290482814247338100494314785037672121962726173428101559863579073167233230684884875734267934025581064293794159340310340759045558346418373345472501251220814136812469257394993967529306470565432519233474801980661392258568648099204215337732002752225022266743890754172607467673753266263817067486123608280505440691999251818573716127749055116775963513525076450188585935390260592143476428524851897087174238073860974877590157227965922563138031213564056683756645247599642469303496602446386247594006598013919802881009557964349943341298644662784367759988899896390484102572843693754839283741136081173952007235380056637684546301376660464752341913358747958404373909933195389426565039215497984693144451646079766013514317221957750101095822578082209858873108304871648597716568635870055826954422904438661415064568837454359053766968564893092845445708267025280623025978814539884129514131414808594879406865932399436876693844019617916711839638732590321301441749794454964876646174163337374160659619341211116362836431385052412782351555700120151961186864738304722578866436493217484570979153889447771035295001270088982575977034307734177157418109931570429680861693478596254067115548105166379583006818434494295931643301314304953227128609204780746059261313993327631878323990595993471823884974649213765375753503364580369691257851646263601487236259281741890968052562870433536173504328186136361994121429158639039408553026784126638419240415073583063315455160052119370875748681809573556760632788268603238699313246958389022745926147765442308441228340248129860621760127621075784034047690459607927123313597687061119230298259727634637110724007647330337561924019072220198846256068804119015216879237764924291894549637391979597661333222884267950499624821457634167591795523655836019114390459790404952621546786580760122097738453412699876928707495151724612284024998753427067787183700695680447641781964585479291845714154640496436134322143534731093140507412644223590735180674198244495753206136603257261937980392052444966297284778488656612610240820588397345212051271752731310597473339941287331691003733239774578501507215976312349162037965584328272478351382670094554356427439008295863049172089178875928707339087601914303805064964203718636407860545231977192497858665983028469410398025484171739479469728961774449506048401604516706031619829893769229446956917862795371627745811128774652669880383799588000009330731125932809612315337954083121512666158512910326935018193541730727281964944418624105567280879438175637674912103551936898916924972986075582207420450123534527522694845855736049872621230353971107190307651760132728989739792209273061488610034264656959560161649478052407465269009183618400891954843692927421560673619784119230515333311471416443204134356554528783605370032021904919672068132391181876805775975539513446407137687662209032103427637418435447782546440339490298345076425142273300945338552211181872170218182950284110822271550805158415538210750161521669151677942312767525726861916604054807706473309752079990052219583141634058765606678493874163138644283729163347889996246583802653180992281041032367996023686033374332712586686426189249892131930677281074542588168958755556419872611080116300686261195695231135278054850273946169738490160400688849475850769081365945387738552167555066370724000882081487926017301240097466171431720173584848826819764511219865786049427464088209975368036781688883769792225493770182218578424132489534515737033700814699987944068996056098918649819387003989560769385077166083594572813852495827476356983237431254881056799581924371517816761552123975287877665723304848830885501545386339176180382687756753729990445052694655603538607605642334415763202515078106800126520781635808669006213445654505060502323402843203942603778575634433776348968864024768105645087777421180362137138600681381351415543771055827991870560397826059623905275954500796815255981664464839709516696905121002990730589599736542588489400961844216757199517270377112992416853311400509101198869841049042998744447118248053127203668028530073697321616461643866015226483154425426885478872897028781734726120726604635348390786793914083136178595930612634996306419467300338623809237975338823574149905745818701707609813195428710908616185939139313826496258061089965958835166054363301463496153258828725907918772871617529950126287776209251385017329398776272175482253214828588926905623972539110752270423794176002454588553552634900193278283891997565405839218260465834717539325296167674822970439977925207751869000320199448511635500509104484861351462905334057947554112907042360104911205073527389035353147799369262732008841938273528768601986994329181495203610600221474884205700739492865830767283858808687124040871210434389055989791694059058227300293552294311878283182658943720899631567155959323722710821913893813571283422078271440261525483256939289614220968658575705879756516971226950940352958208197116996256844166116105723814574605767773923528788631242231890982215870490107627323474385870397739490112712945489753446246966446236643165727470418151834359608022426455184669461699210723108420136429188955427173418288200585977425480120428782040977618645143593657714975388434202087233814077320979323564362147700260163695065655974749472786068963472384764101219284521502046696233811756968755981760944998406024335245801103865366063973394176391150536440290600519017995121060381549749375051687317514874254367976595314476220740218614423864382859181201665534253328692295206854550177939308871362114376286456221302503630127096364068985086928884496058807401957046068999302836506942723224431923363279016390896631944833311315600306768430753918054462935260258709418763980512844905071479690769809153787369062721287916368648818684489699921837102738862716581133371516357400236466397747934346478838341491938982211021581247895397029834972673820543266842783955603012925560551879409880140612561990088728992504125207935331937196773648976080471462114495141674309074621134149913386039917157187144543752442344878607841091595470201139870850291991428075162844239045029813799229868393679995710597365892405192868845361832529945162568951114252569142652600545482025197467697917016504496154568466589597843742008663662896714969849886652151137302443521998635570549351672249066853650635132396439113423309529536060522632799525686394314767580306125364350602903015047868054357932153014247892017690634235516624469151959954462792531052236772539443148379388257690638412915728073599796539631352988691297103564601989075520470515125837149116455690133472410531903866578505980837611835827183072701184075258703819350220998221649546327205657778617537212282360752995120169776672004550185121414533592258962205997131264910518671641729323299524812997913501999553781941747608557629513703389989985917194768358074605664285312277626662318824775680238853503414402997532352904027766731351271778249361127562701903561178510214130286420927471040847657437767065616818387176548489103919036276122721274153864094015428004757837887016269158388471405621339823509549241616618241573902948693736167456450362738355886187766905556495231868331518877667388149753005350263244961794692282637588542536659447086448648756294862762818067107746428337792390801524707846390101304429995207925235579371881692073740049673687489205860515764455149116059997763683729759641384556487267621809765727152102817021498182511783428609385251483791608090600927782592869545053788360108245735358127769439853022902025133505719362491268179606745060622356350145618378704958332165071234702063432206830717253302398506736650191934702645289221487399766780137925807175759793736748345776724896003831434058605841153481465248545338648652326150893097340071413718657441753127103306258545131786999627635895747273970657794339454678970273720743868567654785434085778827903018457809557751023833304737984590026239738747454646268769640144465559766689615955809294350314645049931722072969702312372203455693169187140318813502377689559852982706357094748966675425920583260558681545028216737394718249225708429802078240047837437754291209865802389243457295690858997166951414536774239435720903114715831292802283833955508819551046607714268180075899574287690313413874341625809099369902375318181554807457757760611194403799353960342276372841282199036204474798573213618823814606032696702516070223343974687737265063965491735445903142511155251395180831332778447435266012084518503060376580941882406468841229826788351714603761173246528549099037351390320165203995377860848656577195355326487453938342004292616881348946156741484115219448669820337549909847136926758593926487138703308296597206098834306859197246075377296700529987439937904706869278850915844471653491899189888282467837696266579536824440121605264404408808691190865759564708163071132023379746591101477484980240212219488577605553205074891211786265865538224005762393866646554738113005115856672372421085146914963041460677731547466452017866337644517312815877037169094897361002825907602571337543338204068823783968399427343523592386145388496130041276559724352757518386823361100375388472682143079466475587824397302979959454915193318225569931740683349438386458278544344973606536396143031104968103478857368761037843848304039807204458173252102404105385298829215135571579291097635463905817465099153189078237817638878203188272468281620701415477532741077355803541563690070755531413570011214069044092566969715405590369533874620270050230304461665101423980812995816317129736625584719949532084705425406714894303041215632388039564842991943125990992300305467803159449256907098019280408207734314877047606797477244367928858534026516460878796604375330528286580624058998073269491423341771796968816969170459413241011135641336281604602314017777500916748678016374925652932974453881777466447892058121402256310612120366535765712592179342562524684007616743267923556192396521295483216643583054811313743518892947358349993564059168130884130221299601539460321707554159688077692602712304217166136889008220123581688142279483091676515359924752665084473695401351679243038334625563250002292358797822706802162391611125751999000479674693963476602948691805134013343468486900217114104465357555916026621025529342685582374045095007768892455778681262968980871162021325140341949802230657406182253485541583292817776110469685563276599143713731080345957026049023488690709133460527048043424964657013614551222878731434017561169340734985797938111079105794710940312090842781824073855593530249421392435013150178781025845193508607320465522894226209283730600626260237918868686154979562713925008659984698857827042318168638120137453949594556316355147603938156252489918172708225637441182840850050669517348640913441285050064442807823483217314965938305819914082225370337230813638564492236616826790412237708090980474585906969717489015693882305167051879778669358779236401614266632433246142830346429275899634516704564773107398621435296910408202848464926105183457423800333882517079229635753925349792663462493387787209726738361904487624592525486187320257094730963413433445027495505701899421017377892297037581632552098565462015697406514565914679177230842889553019419802224500489384703590542134078783989140243533502858935628488696961231772068824122048769597452942655478370047329368372072788241881741739993162699560320597035462777044280131241589345356470207351062210646462047062258492594601689556597317412243150672419498364995740682498150308375535270101958480392055047368263389461256773066709075810544277159352311469599120182982615273063283005843908779821016687414307231402681878386779591063178044994161816495709422914277033692515964378338777273029732194143089364977126555971110317736023588618105539729039763321114963541788371152618973596531657454091293399649166190905027248977318588360184815667364992452895275028282143809763288740240393488790680872124620524639712389801660780609300539155806429855479125532677742687655540953619461887094749468321544923865152133095352552370853133836599957011684455211377114532828339270562130609908087442893062480258954873536365470371017713530948365089855123360985913578314473142779797715202090112608597749566533704567664986023137909873051646413986725947075588222305655978480464513702230383423052293048871255676588459653459761130006282785151521059891067215650033921125347620823253291306348000104821336392291054649281692808563496563592805345510333377481685913681337740018175693684372419665567987825910279442528852157532384510648495318031374382620247783670220278763384306458619538466213994689699854885532094686588910858066740029429891046511765120263095293345701888616842631676495492216504992617354185952876695888840594296842178611091541466247478970521287121833055663050639474961988772802698555427477795554913585522277960738038586840987829697465917473426646338483667844860222869658760219552822202609084660686477835650686576242318510469088335394243282912697518408381109411044017563510493372875105085546892398026975545646494819840231209481324857053712376559973654389639416639216556575992571528819051749126492526110750821497263207822757860791203167781015608337907232489664484433019096124395990722556068083526653677012677977966365643667617209260159813518916084955849051330792157549214785622419790745476431355922684376316062183968192900062407853431983471033692074102043944695179055548991253755676801299180995407292431072439509878137782316996959557698496293396853990333016835055394985509470861933091639917303104456282244807286134059560827434824013436501945751045616773950532109081010838885454826385202062704553137878672541589016903528977875387057399499086764503925885316197452091694858860791384145676929096864634931635059809371143212060941793275722791408485630427650414878944310806020616500538130299966962638901109410917941553078334071430930855413988405372973086793924391805619866983687520103120080357562813322147544219802069498350393881333238664170858497532574341484016592684005644185029920596390273217071919893642180343394003825029276909933059064456018837448383552726365110579629645086711423598395485840798482001476438480206873110973318557735149995398926867354589072980418519558803348773625430150437676575866799869995466811519534965665804510145702854224679528148253094797684910678916948179841625964953885410373551106753798135191699620481782324209292292604082416432065831577690357973519194566397754805499841430146866659175271475102267937420904347678175474853315475057400404289154217331557296283579974583893527943445457834802799078345295855701436417646467683541344946926232585667173665076790889101615388713636154379804608835203258223479495942716748733999049440769507612467170049483127563683956382504694599146755291640955201861873145540564941712620095609758590574709700625609274376983315931001141374127749473869463132704599380261626203341894558320108026226299662555110808877173886823810890324125564906801561713061166847839295510176673265957313449412727559663447610806866883571898354900907693455627983256836878029113338785082073728732971494495624349878280417689147837409319043235077951953560022751359581312059315283233363630210034897311947907450537122482045411557606244134928016147847441276480984475261345482443386094177842057418193838441391785674381448903747240381003628132220932817696676606008724425921812740586007513981787174573378040779058190115621088180206860691857462167863972203522822836010578883263812204448368154871049803177450628608893852411699934192644381682356954163039241739524653277294249234479416811479933198216114870152365625782056353446495993058928753904289500592152472701792934601243270530990745845589125286963068133063356806603102862352641903048606232922124113840934383884279078829669351161678965127224974750370037744136178229913503602906449770514827703841290357808095745074656415899742277891444550851284266647917172268632179511689359493207218665724876199641282645662455748665155352027836661922178875155641720953050123696026392957858643632772926353716694800171292490413627525886481927048646186773453238861047817108541601111972779210134003906193354663428114806730822185524380413411821061498662207202255957428132364297206332408635939334367762901161767603751733790689475504313741825984172293256149119812962846517803798391264830870055254732498138228473146052441472132082713801796569674781537030282600417973312360312667959085145488495619757645238528086217781685370174957146811728750497141193841988973361768817930247817643721312566264048388146669745065884331509048031205098219294186461574541200098957389057856494570452014452403715131786955612874737106911119070015794131533769731494096326401770027550820469602920602284402401553275820868581488158632776760804288499832999993014666980711488818746872561554208444975692742923682007098639169298733963671124367826522910599340890661426282272935384694315741577701425573645669811392054946606793280081530466821999202768805542945357351172746031333026113925047120393377797712753337590119301797259297690178502904941129666051614546397578450157059860284194260872564744256283967562941121967739541710725638468672001257856285279227932663904772724112901646271726960242704948936780300501177126823604776378661710171729487616157367709974867602912611302616528041396804901132386989075242619018918449623131239768574845077177411730586254906308871831184592340199351499287267008268024049429191525636598912781300404254250244621310859670013248487465814448389375513032096380396591692381832294472771602695552588451870358358390768993055025616427915682342486982697331859211504909944631345444027152622191304565808935156800946667553119064601402109390849658021718383053967695587123452931434104513328835716201826628904902441281999988027809890647939359260789467379932265840501450140142757037399687941156044594926614451794289273710576265264975107383639086020237776736282655401852095941965027143098581711696702833483254797623854963884505957785116035384567591336393861481552933440075518554528839915822293199519587688627018778576575100082394191433067505054271946246874928617265740953399299783290179967824961288487112837108129570461625863183594728718423054336339433864686031837244072742191426537689135762392711690643012067713113748372875365961159383544309638462971567135786214577444798515780945529527968348154907902126294519222479170323936112493223551874177376023719388671009043916933539587517139268646713320313093203931914991057927121201198318905579030632971487474160905686623198333913585299754689992571209586878111100000529697279908555863154026437159272758882433893748322376867653011794927666416662973042962985355333982715666967733301442424237650544692113740101711333064387958551727333844728343143535859013780466689443989837781121634169731511445625130280213272644380631156450663525608337283813983325403351451474784734407483596015485430798203522513359532445901588250079393262685291435048979317337710353613076495520958683263811368384465515273541794010753443008953933532013366965096745187478789453354905178667442593866251797261704017829147439213920849402415904859432934833547856322029958893887386169537658947358471999597964755736717358649057133520496959072918913244023885922328223623113065253751128859212534646281239441223663312376920678787147618932056516253706452702224627142918989447184835777405976112378883211286616539236391983414300164882230121704065214808849289629562308650281091471591950594068123636469448832445498924144169587248667544607941877956575146997714660259720458312833305926168140808412450368731095090011418559898358278651374074625248037002299528611387431360909691676842777433855452678056238196091579415427198350821732916466270088443498326036682731623604089872554830047569771269784325583750198760970137536050493999449894322950201111246745246167670001494283897392256343819184678297888228875056845794532742916700928019784853151764838727506930472164056985905228115416420259533574080128672212242571685692792514897450015804097984428869348612928354080342589901824950460599134587446135763588007917871644042748198787657459380563601529720552860702182124635161095203672794823093959648396314874365541498741351861142174890628302775803886721676766223976001562071168823692731135088899840231847043314769120660211783170605631862458655862518382620485480708557083237417405155800204301756032251371092623129431497740528692228783321167951728202810002706139328050081586640693270158224159873596654773694069423528304690241467614679317871907960392849121140919367303596804093706504563931615192001700427170724108310912373889992376541004006157181300508785478742066343652036246136407137128494464106155600651165428822254304435574955700513633184806290502745062097973162238861398601871596150401633285305564702096631504988915381004786129429730921974490554806997981435416308645104333847920760666750216358159264719171628204474517747306439702013564513295820273293072952486143355473739950206777421780831874690945840909131009588717783494888411644794043717963957815936604499114193900118418415650921408046414962214803827943895116260716195857470703806399562712314170600369749515321392316794173995069060626500949945257855442172370557852518497446752113785919357293581203846956683094284730640278079312963613101549057435093885576344827981581427228279599190946471223625721047271441311879250731794916655925013690496029972402910608401268420130113219121555074906148755805682237295923298272082794958702547699739748484619249940286381419863028094700552798147819060196005280961596984537829922765851342253999782203839716953209165589179550969195439642991102419817302038066651451248896345218086310827447177999342134686431330059814305321687575555423238019356758210608088234771604635896467737883826853647071140746290193008518609475339514887781115585039450577368195323662284037842240274055723016533128082331191971027301273843662983389855222389478044464649660722098433122730096313646134306248107612305154068150012705365920018884638892911120945086756433817184670053619103939114236478280895251312248625218000546620877839048161693123507838887890124187286116321457406592726128195048626566400455582963019506261161699346265208735224473782511428317927679399928024999598807482952435083226350069866583485974592962844305019517979562886421804576129284054607591174273010649386524083789524108638801992430220592366930837271729273614211559206129554515380641767267267126989666968394826378522951370669672874453039791793817267849299624454381877576150720368475550185190922529392324862338509338540188282710974464575308947554470007718235279908222385061126499678540733301054455632788481651586157829288783858992932173650103153061310640931346663723849880830257742457957672389496295663997159812020097235854248844099693313184141113799793833249939297565844257004244026326732234654919153423157728459946695645177451984814769613669076927034374518500493421036396359276961494387205152359591965487477859637313664161484699262266076399401042006131578317389788980821062425555656874360449389834091467537231695416914293233537031327047573097259160705216482078790303285628868832906150337614467446905054196117224263837185917941172343679730758825485104209204622874007673715801720702524816909216091532079603237149253073715304802895149419056522648469701598174940779395853430827477773645837035734277510509799072484899042716135304680078618816843531161198542343155132667704295713435451838293665805697771977898928773508717380828844884381512114103749792654426295807719486668802476116834102065928879102713422048146024411099258182182244699583370569378798243724579709047961961880765539518552359946565523963892395269003211041311657928263329445677651444773098424617916232476994369755851962721141785493479699331748169130211546611315080315765884190557179024229720625856314311459267533970002707022457674364100511804135627371950502525194620344533409021975401109547961967312631173344160889286928594301162322857190528869239115733687013059940643924667803646142373195136206510918640382725776800179053093178996001572882031393368511310897926673045132920820485136473317159369056869047030352184859189996178546069542199149038551927797827626696870598223091799427541136699855968414572559509590115107893780301294431147581962393585114994099489940558078719975233199193490175450743715590516609345583544594122120350842871533759417432498228647453928784519390242858924925029571030752355456016956488678621657537483485967343470713391852188375366577255172949358883474356992758642346580260207700008799931820676652427800509540644435697761260032709273400524925899133721134980654348588832094136907644329902012695992656471354090429580926771109999215266778021524471567382836997727400529409458619712027782696536369708836636207086200023354073731551641899631185062507538608983501384590783781887538541750876967266676282955693698775094055792129338988388129403363764910074489906046569218023524234428921822517781290568762952354437885128139884767123709887788208733896173386257746020340005212106945519930238101293212043762263014459063926914727024011242866595932208575555197294818065307996398117081279374363668639635498954420806142886284572469623784611804473932141775519098664977274416877024367614040535424520624928907960597958486820272109380228642113021668361260532664905202493096670875387506431868792705921335258882135293816336477188784721384681763918743940040512634612445936484149185242146798782894945605772408197746189731387438366349302834279600815582150368220713874078455880346977642640942090017596752883001586110466144871677176786277583508974769832976371582498714616204492144289132208920100652382674422326860687555489843507489649523967246118343293214035143001857333334753552997445505037532829737401999308721258269411229911149313186307572767777306095299223057431318143755488142315050699458429455398925458538797796221896727036009654585688091407856992965381760375581301231695131671571694568023010370666300826062292636585945865486617695577389359711478715683687432135500899191080632128183238097898885349590571275511091390779519150263098009655112193457280397941489200111517537447903612175820158611866326208933481413692451261603631442699861015032133403105311170719307785516276956150854746698636737303577039238861844950446055882288500187889686210741638434628098900797339324332938862732806937661549170503175177589244113637227274078405996498328020042373379008100033714094116384754752606615026285533181219569604476593030708595368410801726236524363505646343901317626453201695089291380372090729162326734007332572561778111046352512744032804784653237202724371803947510567361614321487428774681541992228947902418057554927283597082780784183262901579419381839813331790283837593662625491381143831153754195101764079649208581137653757319743571456691796578189133608883245837719575292616490639563144654281743681263560213502470602810620432356474323165032582314677684375163020334926047161253711172278578700652226075834061765980380794144662852585057210158309288874836655697237497505477929931117081175030958439948762841936084025106184222557952157099467511710153971771535595503192292015846417821456569522295118857817885528194049242272674411451900243694442819455290504367235439724281652297348165650450847948971878047446306439252974980125302895334604383723591751036845289687409158550472262655003846055633806004194263034613631404677065478340126049640098357910818211457073638888263111673845754627299830897521022726528812601597761259931203330113627614965731728192735627803313271564088553491908610559517986636349880277353015184170083746033311421168824422330157356710952700761350988791170845690644407782158632704442911154397719992353422644968818342621674881630836155982672126941975114257637481201085404694450814603224785036809014944985604135206672352545381029736297132061748873534229819620423403414309805971046886844969510996532915493758394374768989136498819473740597739032872517070658993415643417581825968644999613325355673181037040506487990182846352329680590507590518218226572838470093556168417064867686257447631863921526494925192945500237351037265599850604849579337701787428959285759658733666618663994704792493506908334770731329279554846708894198135180718613906675392147979386550199245364235987552589416293929779709565811984247890195325220639067509698047014069464138327195513137655842464766096508486514897896324073976736054853717512528868981408338918541128112898553621008075486068464507007345996234280449041209781231544262396903234685719086610454770086699340027762117465542664982591786894607498469497154375844225617706995799945179401092267208600223984504875955609179550904578047730411233216628453915766131242537484357141382043390211909956817075644075333463669884555314909082717797434680067455496762460626421333032774439990445503335667654009682573073106997510244094367527594508758854320492230080207340349626639114876792691370058183220160036168628415955840294885984073232356036053437109278466994146222065669546835471880379617174193509949611127125431790217612342867286441305993857644379116480797095352515932284548091155077760684412700029405833304450715525252913396426092506252496323283936098055439547843807931145253552825267744642359336673047039023479538455882510656452674681254911534354126863375692248822572613258863538715595751327634399893793864132467309914614918343200176615833247874623266304835237043271477621518095000318310855546104741448767227364563257619738996364792939956672346297939680108240492941894156081988144540951800358478345660276294577339311221207558626840009513702500604680538782401798508770935740994458762916324461956900929160717100618404278524455018710954270151172369896517585727766156268646159403292446849947197203694075681095436650038041998890731309483591252569275403823631018498843424035133629376052415524477725575399143078248669083210025192533409734849820345136753279044583261761811366615221976003352500638072203326241250994502925477772713338167557698972425423679587079773663862631492686212043171300196371162769731200929695525543435541129204594067796361181377202829145251547796352641115559650276904951144580386490388659347107485258105451481041548927973445592068546318281584681128891839839891949530366585170186974843663833126325405621714120223304542697612213828656808301617432102159064654061786134480493419762317443034245819182717448543401485323649638391060547824147860395490962835672710676568624002678706464915998745172867031686541963515988250799049662849317903471188332207325129086416588552122783935718334892848333420446489080628737050504868729993409134526577902380005066669003156507676474137462628957751295588337051170768007992127503334119401926462276989399161831293586977534646059071234790923538289261059563888288597798562624100385170421086664486749618169621293707940010379571885828968422962116616285006049326632989498680196599694795384753528321750592382571306905012779637847979268736371934284768753587056640683935248544767663900239525937942947995400206687247511944984778665734055972353790167761894469913147145895969698887879950160812422320040167426991503574505707991266438204974738849256837627356362304055289713350997989336168994181771297927345445082564907818742464586963129003932574415814721485699413127977723311923405899527138794772801875675586535945496165734886166265785512089291599309753697238165101940595392486408616753987392848742898446316153283311556779559309850771218945486252801933398919051052490639230195671177920132647974651813204208285866232066677368402594830790708959929215432400963227182859414288678598797549446660883550066310746565551502396610877919857378412906341003662119885101288769840569707844762005662248053434756063642653669877296839027773132330346427350714789284424819714987275285803560324557665955628923189718806791293311388734286113242721692267491815648118781122749647381567594944989004895717266052264490964579905056618206297991761933054581149599688395472565530325055400053800904799915130601113244533564406548676410452297908674166048404190445989488981764898456608273012354406621809779272305148073871745604975722023209558677407649692747734928198453161478507322293176329009540875658665969410514383717027704934741614993555641513200064687161480776347999826614097617069462520675608811497824362694183673088224990890846438053575455844665596066041108609484894126705611872541425783505254551288042174256155461314170445457078284375737443750747429174209710496893554101289999555504324371158284560725683847554958230162107971627850252556699581855931877469809392254895557312296441948094538006256740046299784639203117088996566549640631493930606599605343613790329505018664582071009587281167765950488796732422335098508871182449885990969634818863788533566916845703159973865490204856823374993330556787838207962394803059324585475495230410626926488223713987849391659068298970014746296064227812928017947012197908506793689738236075724860949770444743614514483000262605453231706332672207197461548197760516594722100524555647108567283220342577196068266540444790375058991805149272384282077083634109294461989531183228572882580199996696927060037374727625498994809604249427861047315568290497071694655504197465729526624905679027339379175696227036351761822903793937310261613860049727907332617460530147302181737184300543977493736124598221319546431665721715176225500385269739189202643477439179648300707681582235545784591285768174064721330505538032616431152417403519797535272500494424890268299136509164371514641908601327274948673555052370239549551268387837517714618043630817562736021152264318108236552193628054488115838890480372074554828973267032751208885196625150074160424771861702047433206568345786051038026977048867301748227525787078213688752330186122034012040970079654497515821689468070729206457021601583111913194057791771838943664095927329375893691610025852079192730826566633040383549107625525718951144915684809838612397348453594848414623981024446982273156827431146967644979536194225834631415141215567267783237608574169344865226885059530084339142730899963417327767952955623210485980820417289246148677812617378972574632220564803673963854399543277265113794920936496479334724518724946967576229917402889185124288395003382213255163824585654642152996733873370808944497747903447076410093432909711343498891408519551721410599410998143841231337539425569238812392056704042524793329177047278635484906214747807995280954739918474974748937075901755311672852078669396810230187671497408415027743824408839966754616318959669445929530766661476606677180196154161610277113335174347004082085353041853965357243501749698502981051277721473577708336690973469251210335120462986455662814789055175607351302168506809550556158318169706956297062052002189452665447048862062264862729681959532308139329008314103373173181343035175793095490580216051559344394943644193778767825670752679336699066150667956665392225987448653337706695374030412653193153927157112187721788893128232905082245273249739728376142107291479867143955021272578255003306198809489431366860744366252387273361806422738333349344732745343523018281987859873643589782171527924499359047549170701283125118990554975972932334991300536242447049550168217503444571478831430230098495608677189514742896564957818338306996706038768662277754500187984195688877817631548303781295011596248653849242886529195916071966588857332568624559607504615406916329933418464095296725418706167380072219732702471960691795180966621677004527996153966559443591592732030711282369908456875281063703256949853803110477935085950359073079566292989519446702853741146241194185175879858401476237684648865489887875592179716446567389039416423096538922357891605569696688613522863165876111083692689840591008966760537888319089706977295737397901802734381553423931670066295633000880754504259772603210443141679518704092009362646502326862057330131259579114269671808070597809525677294980850824416464668979740520872325717060180690598717290811103413594767314919458699435351064859604882653295504672962722004391239767379879648728183098886219934628964449363647158092055216770602855923987559683687304303490168388204643505207780308088256391566273743849330877831733614632064093121411650465098049162522020620724010488268541304428226827969625846508782217280458763377217933417258422358531827758328284845488316574503016321890013330385380246753165050878590095249139817765970512984009092572430334952862509623296640705034408762891304081185759627220416087983041176132428684915384195955013955817415613637904468370954870275783666962438037594867065108599467231559224965491647956643730111119381316700905564843351514162753383739671251711769308177288407344680435037028762753266910604070713950166804094933829781725730729808194704425936978369322948475605577847760378074025856719000310935637983014740546891265173932724436709543602494504639922687906910092963640237264608734492606378461718292369927292544624676814264135717795022231375791858307204105998948723748005019683461383597963615900707934757111503034586834643656821200201794418668322744801273777353013266633240305523924496944009271942885860822423259635114422703804787651556595074231807857747109158684517740373636923201261189899311665824316393144926082521254680829115131196496526789712916520744351563630320991300348622973699832931245467816549230722682330640119287962883436986361458112022573075677159337306209151123293840255631998775030410333818883716161683098139855779395835815681797550801790820724157032007132120013946905587853967895426779571401739160576327421897900480657894150217908262512553530485855714584163952376079419899144423320244413250929526273719760006775416893641125617730528250457981673428197323151306289233562545858861804559587750302978492005050445602183708293587599241093040287730797089934351761416030938878398976064565306791646067187197334519059731339865587355989689962734759782364107709196788568477656137319146077445026320160204966584943078901937192825857174870004395081820735705868396789404769620699935997933319697428011049453547346547298059643019061947980128965861259697934578084127407029143085253695134585118592171402055003930211778646913852740872006149285414240600316151089233093613193703679027562033766822283809874995351561826935116381854606621894772154069850697797552834370833849245936801541894094443499501700214028238483702504852196222853621043119105958353895817339254875295342214259501522506182483729288524325602599759200880808834397814786735303817602837878219703866096804641171339998765168274001776368145697951494448782689637902139815170309243709993158100419372617846068016960060032443973506352386885949267818025251774235424415828052541085901877447087253083361156657825780286945451987979919572064968923788806477176382087036341398647503300933835210490602039401076468320668070374781750740988329088088895473770352921103937758089606930240119660894309258600410330945821666239710618118106231538155196347509798357835479505663997862134375999906746676806764573426461060858873092943558662228006893990553292633450042781691330955157778981860676246252742360405688386263859066402316139517631124528693026391636628231571474805848596939099172164024504100081661058693597154526142915625672407373580799149922092598776307542448731003395091099437199980670216291831041245771131752304546449858841863267011233289344652787709270546416822047108948349272088821083196143794318058667039208863710783366499956043689562474612110684533761493098936269166726298587301214771681336117783514072734704915430421531578035874370911071007661182006980958561771473790529517195309086635964685707662971313550019347012674389263029525537770842353568137143529585903286541884794138755690183767110317099641112070186831813746697933720764627789531095730516885399602756295764818571635909540388998896895725720646329758303293517669003915670234412608395281027189273673462991883436482597341774197916154413274827127184273632486761129919284189576081785868953850546666944866528862505218302710983515058255249012746677754264698955066847565125802861621044206144165411358010877827562117352001699775655441436125577414155014909878536856998855052346849398286167490164721762602098202615371236399965262728356739854858773047697996219099431436203526017486919494951342472747807025440603282357234391119749387412525637230704906900798199260502154175504303300795202091497554683560527737265939398874514213969358390323880694358068318107178810111348861237512775140778104499945424744770932174909287641669098854976184022987644762201441383144658346416035170401257222287309508821456314895121948036968401563279182778720092565499087669559400063456246796383790406195296657315057200657270965202808104072758984381113477076691575202191800121775582322919051551023916383986706424701886742670344266089109924286523910672800877520843724229479479781659936921650057720329592164208924111271068183211666107132306247867676811665253684153092377444314092335010010682692370705940030161733517828533296096904161604206556140022540111697299812981271753604063280161135584174951947710561493750194515480205721465361030253573696944248738085495745287284084406846728864088472005421921076813216775251730969304298322059094572083485191100014835503852729934395125815173556192055161902787083207133906329486534390853221093128621374368023220170482258646475612671035669491851246857158524064604781249218969508812010304095204740213829407797670996939613551325954157075455771771567565331876539089167319942120771595229314483621841669419250625416712650236545155988963247921722915863375877791276020200402863680682667317344775367527587163967890607437542788475484319990492447357591647836686076382638488943676803881788425685018955451495486286470357854654138257621987995828453388580887009560263068877563621370196664070005418760369873741139363391579192933299168527484202731646909846081157682395118612742235643769049838045137965858010012848609006524967753358351350214647446669740452956807048588100832451609106858163137708427743425453045927569580761443751558136280189859166041198291675583698002625057272963832234635429965650180753960745973845589022277074975314529065111901622350883146758223340604660062416867183959913961100505706757611748667154959758984814331826612542122858213372480535713063324776469606862023597677168037685559178190863948591799206823664666883311972711719261607294555781432373836984517223580647490648346477270267611849532996112793039221370933271998420995614695886607261213520326212313126838456272281132902103554612499382461714175302451435065767575230848031140755333614733900872006498270839009144872720593188284316336582117154424676041674822028995236625196679953693732320145985209041318963775565081437488167335320068176813813400701638501356215959922758053401668718870867681560226930994087923499979698427914814885891980392330419218715569747046435412368203633984361503199012644706041450709482820599522642207043193772689489207965596515226729960182178350007273663878807988922175459079420023937800119831851072926764540403665950712486622454427192271053793900238158951333492895601849394809657291062729634119723068150124463948636406677733355422436383925728242851772030890637643580446075644269728502401157704870389217879959282756157435157420079066426060122458364133584525352546721810753699649015748916221582939594257752656033848007377698858938829907619584439019097190909914837781234970675150748953265838444964770412656783720588248666364190820578290677785613334646191048121797361419296577358975917873166461471230999373334312631815863770961352326673226984134198959977640623613163728041415629588575467744132584052835494926010734919788613261613609857187400936421176752230670547951338493430371376508682960186390021901270541494325070052738105840958621725896424236166250747561688270837653102332751462389800479607252386790806530699373937630090844021566410968387192808246096985697550995560540291580367644180965568731648516120000994585318945518582162304683810334613303059273154904875901628386278046918049452103156337929832782517896111753454087107446223894879904290324765333935411059765710548386870795426079067536738209629323724547410451747886221475169622902014048367194561915477355068881309036732778185610512879776511105696214520271740702452442817434655954907681950718784329777494387256178757738759029398754150381359151586239989446710273521644594725611868833302628326808741163509489620308457386920915222969797273559696121772440296579697257866169852664278878451021614783339423853130167582851654162296966732734622143722199719750377735821208056052999762602390695326169718114406359224918644558128789248692765879138876524452997955481741614271546190221339961741670479644172350290421909542729928276247184263649994392530201824647339178081930208644126710546949393816693820804691565707773528000898446494311971908815249009151104771578296954982742343254906488998575313815744116284683872071555661725562736188181110517929450913086997272726079759973347638893962594311067835734330395146069938118986765872885895884585217716784233122063218656921904988384811764874838014452381935755032632175306896334900107876820106918761976070339010714593202326517006885628194677632240145939706935063461137602942088593031529973014998391989904990226941720388123866370518189813709857500426442831796050123908612328346150753763476025166371970288463864828909241569468192676607836335984923975245869229323104686964306941120199708029691022945940522786167850575436773377617050206381427490171842791297928606286721001205698969679878573644066012387158069345506695871412318256894688058241805763516682271578371738720197247115370247964271223682769527602478148714916858248941349961101346425057048412666612970249068496495132173866186183285867163669520679380535286278883482773515212454723889638608834446026463954381709831152890487731396699537972271380853484537028920812439944252074982675109033582364443649023416054789543544871911776896260167305487500302581968637630757143969150464395366791860131632412237709208078110989141658314712798245767059243580691021788056021774069368613663097607354828194490129222338648107794491158422275677169865496877682145735127491604463378182807281343856902735933090882935823775971876272395027921131597411540809199904500183070721162862066564670347336570213717748538952066556563741550607925298409924550524298112715669207258866176825984962550043770471102277116726423438082916033508941818271386013892810579054092326166098085360499322260049433144112518597164894443125481681567856751284473031414385662570999018490889428132464321179416537479117880807631016004084809853735254898108603307495567554018335260434839148396398316053518119420366347492256062169938543813491532851836949177606196183699317280252657195919266057588759561382416328644158154068673047160333276882004499428741727920326029757487307948693180133874471471371345328066548077109896667745406830039870096314063026855871682293944865658218263678014374709138497876101103822247058302822616728951998606160491068869070712592268447257629699900244221738588225320904380211123714740990571501038341639949385871029154775477922841938526692225220407723047548175249849513371808941010900407046599357734047314090539684157420317036327038689763880969051270821110188709182939040594310876437832420641616227772757125522652600917240006724084307644024738714804136290847277450025859894061243686847495540395024623494624461142301083140733997503144597160477052860052979569509482534849317088304881455520581646819477482187221357658068355479899512860536793473458306713133227652275492745161939158718439244486817866679314807797073771033733524055965152582688923818251351568237225029479454630996489488210829407771793799898207379436224532677227865215404475139416521303443853655565243307335084622225182705657947634285564218746382065321988604548358404997341036499942577695467512141756870915357138606334291266021880321262183138734099060347349369878405133145147575470308162327288881401316081685220325004816824440779506006376749685736221382068079058196070030058002171961785435720461192084522439464800504436815278267206541171843673088635164851233477372752319716728118136548731092428942604938611823692846889680186391494393626932845281455156862041712432925542093608948111861794872996864273194869104736722954927476631844261151519240364519291002320357582931290270162365121243757854581507500287696754046371072895230491961235894322564532263350448428511424186187545167667828677170473866514654927739930547535266996449469811096172108481653066127960882170543409131074903569004126921616741617307551645259040669688662461485373470593285229201509850437075058606748501749272801628937326727099071678824372067023798717393786427257264818264366395604333126938441966815124462819413666147943739234230895050436538094756564494808510336142724879185496379141468239609542748596423900626896856129695471188893769733871291131302685288768198185414022884836088947836324173686583569631358583973964112350336255669989216822022769824241875160134575225793427990237189311462102253320369723480133491266622965957782295290393169956579907221483768806467295125339217141264046417234830437046086654226656073246981930569258400858048334047927930076505018345493029133335888570650489207663926132861319546729872425158049546537512301499194923938981806296886298375899677456515693853570530521825143789803597311919522203328446597374646476922783324290487864012290468857881611792728353312184540150835036490382844070090099361187187820645669113342837650317989480264324172048217934251821627637541449794061255370929936420886749438534103102876459141906707480658492437007320934801757122657493865989310393416235798626118792307640471338328009030755795210737351518314996088611961040926659343226308690807066639782103349324081768378190165548748468517868538635942246554773203012397039577324926822946319549592693601862848457084964559171499922184620496869446450371958184496736482410975702322461643760898468471129008165532183532756257566519237040049411340477362682714613615394683183508386652802111856854574768137114121424004024604902548659523706333392231607319038946173996892186497520249165441512377034346294763852474110784076575189832145073550091592099688958828010501048193610607884679510403404854414363336771220280338206124557042182621370816789197942829286061023365393758511548354734988557045561127442095705481799694323999809756224829097942069804834757248178980432691606532758220877845591168345974359739990931609693592801211897810218908428802270799441873385878478268524653003106006247273707012549861632031926908012463300081062310325740670949882229520516865034129074343894155490097913901282262958417029967441339252573579598648533563578248226453863848527912141005733039694335341766633006932427821986195082704263721216253232517203417255334290484996304890758035890377053787187013605990052663698627439293881849015813182536719852982540805143591427120844879558377759216335238836273895717463669039119021128378398574790183556927730516434710252138505149014565146840505094495218273333000489444417669249734872011690601686654152752002464515565498195328243292420193033416655785065262693964200025785156598544715593818813104096676401365280992118917610162359390654701025831463539068272384343717665909186352790491610412619719947702777946534113250543995870474376407904348920300453230051046239341506325736223096054536363870798119924644522184320169724477831630835078360138810322579321328706040661095572788751099170579482631944927775854865930271036963610019565153474574674547826157169830526592138837724525631368182141041791768658256338219378029359023215461911523139321764180979759555191074332820843254353481081295758687199466623666239711930006515770273904074564723212061202774457625819919443060886847028323154322223533752086155931266356231444005829385641270802418669949104554979653302331141580279034726578576212504698847133689562192819138207367296140374052090198243904705655456079108318537674631526706317980265347782447278235073463297467559018991256061461882171586479575029348406061854623246509730787561788664854264940914297748862849027184245608292611451639003059452013025173827866856375358136340517641739584048019331864094340982912670922804754874154056249278203383302198908201229093540037310890157796988377845239492404290854103405952216369461518425025116543377589689611036142189075356602838587211833180038098706259948999856523978584522585941936904321704099313822231331647597468717878232981932557528491183201549974206998603246773747967040069399881916950725287492485816518447368606178760503273095564710128927376988160475908956405140981533267143097780640409828127723761772669034439870228124572819902917968079676647533925002975362825565655002996793330270430836324010224470038768810003862441466796163258788124699232565345630017107347523048571507625341355680507481867887748427443274893117885847080506414957708296570550414502730940467893095089570435439954196174066291288072556050002431378762149944825082091126227466835072440438704580963364586333940607789922355008500866956263987308476763148409226278346857749250245466500585838925392456783255062033769327752512652425741468946294491076737306867484767859083643465067585213315010898182593999852200395854982035486104217965414245410228824842679228719584585274224811756212098443598425591265697079132573521221532505270549253251377704368927145119942133067853504666728852479030305390555185092058442132886740324458855391753061297697641776484283321731256168017244407094120343069772370901645092118310948873476920679428225545769511442986412390393289457453954104277068541189154327455545652552249317692146603214910298979568344990312992057803667133765382313997410506450566613694580820609617205314067805408662082510031663315581912947405760758102066644311248586109390756922007243410417435891487045707908568724691315528099958558647879396102886221020437552211005366653709234489064278760823789195838156460726997852039908383687744498092808432798371219028597528530383601585966204675470616105937344970753713437069445457860652427758434523690272007771969879970297848383357566527845188907992207961465772312340699601996082126362752707254379040504228268220542874620090193367800305213550081901081214434210907355952105847069200778323895978214091879688534717875571286865713736632953839170569905711088085537589442414807531603319958554175836635639662472564962775218344212876865341291231798907038769597708610593919187720766439634624816546374858483223891334986827766076150137269963130894710115662284408445270966070216138925486720184148100360406685947331756915616219785745408073462478986939017053300860402250002960957468437974998341900365247611252627791784886885901268801014253932387453503595112302776103923208406354193031743450121787950220248285906929523576332312660318962002736338696364373232877017226758319307457884878354820915707085784920813885264174753254951612741466843203367039993642647642384609751310157897518754633551092376286829644959357557782741662116401278977224519857494092429516514172429554946032258613014739836800375272926782462033088459430987054082250326764707740895300794548257071694401054810721541908298842625694266959912772836357060998663154252589426811979786427042785519576432764840019206326717384663399585541627483437754817640819562605620221379231442612773902965922720013218424413810254101165946530142282778404752872652204798560018383729426006829309254878990655649742222359892387157700696344596043926965166599506093747918064289847656855320525928324708718023708288498187903492083007851256873205627670848371481766740545926267572128389249081123440588321193917223144692678632918081880681081829561242542623604422416792327687396601612951850288334990811962582449382822487684947264944176145310998581043893064945173487450807224132656144084531435901893490156315201290522947126210678282591668994174485627630071399872564222232289130880216593796940343085760856292868601523927913401787600064901930548966325551381681965404383726079118863609590925140992723423113820569481519025252461414191315470404755010701707706255522433336993317937967638687187287211689674751562432958662367452223750583443473550239111729720980578107208459828398775301059401808125818650095061153816268439361198300838465396977128706683668987002873073418413719445734581694026258110026874986666239162038586226150451315980305356597588355405147072388893588645085899610279615122993976118941512310003052923647422788434294712530373737359275403936050319480888344848272855281866034219186221739932594490954542490319771855354134221977261574137734242207724985204664986958766002128982611153082420319906281388149064835346500059264362549618494434117980057482979113821176106907976758757464117381297348508487092022059071800198122959635438436966754949837870060709674532647620902489221520611980946608537853946923724286870245724142670097812075748885428389365754124978764246665613250472237265371509432154036913100655737977675524295453378748630797169858836595409831427780785567636658332252259856553629184323139338576185208707617734615977334310226244206280111006871027636691419514804263747441127377622897017782544573132742010966494526554286931256070809469058128531003695997864617374329711335084621903646315358375628198553860040283752274981649787830032110815139455315165151442495232243911758204153460539769749109546877315683182169376817108852242042730927332858302157539260411264115673496762691651001647706157938008664929819977780688674245182501293836257409617092700635266513891893539224888302889024189370248433088993585822607411791357347101831813330292903819199559219675341576899822405423309906894028030934021619790234166164542798603680576632596886738861236778691912582479507417577504754541255596815085578198375013348962963632724412281998289722816823502303177691022848477826642113168423503466248575561066995706277060090372130634271900150266101578135220393492547578483115568815620459832882406094179446609064325488465224188460937906100752439373207131260919436773117024450524071487379542717432192984305544584311142040381182838018500033240508744994006182235680465143970649028119638669147972227767024250281006311662791764852420957588062979450295056609273624609421462152958397779401492222165897495028344423130160956937944906505485642673810933754407489168037943021644874180948584326098852023156420005082927565731468581141753964695312568125042429112236937533647897214346384491428325557288044437579099128676524792047721875322806715770144359759151784234691403573803580328356954418680404038163274510501618290183602789635247066692890938220103092603473074855218733952372623244515369231924712469860388582331649840606036736294071286284810694674783613138738259995179116408479346296625622931819555432161040344349148287668576593691883158751168497018390498776278749988482541376660859502668081624417915039220326876357436219838793729771768884414007768672348866824359508109830362038209482918277705050960555883766522473703171208348150176836638717233348722999059592568507993550386266785592111777230119621255429849923939945751224152615354572944021860469048011632994731119635460796877422257737108678994871865883578472241396249809177783610571920520334808681496970142630500570047043152839000218875178271312213858212709224342391682265943060140299202436166539853696694196251104524185451961460616963046657616819850876363590910286597242680599332709629779872983109112829801528015998770681012580740939496070716121861770331384397888486558530001295926544694626973622234990651695746023490469952494051328547694955867105106861021798407504921186731545495239727992423161168491018242387298642367384048698790582096910173613167313335766577770499263266903684153204682643984453994862551899274545812369039580023240327046352991622899833640866855542656499982140697373952181515768497683838154298667045877615181155474777724223974232156875978210777753747081453259057576556878830570684640054693899655701835435955960203839099670657765272546264429756978484604420831731689040816569717136965877774478564414777007355492526834932746646573353059709867423095136358517843264879955608146579260130682698465574054832294253502538287975860488762500994543233454302172039849094637105922254296655049847769152051007103686304917175450286441758890312643990900090590952263656765807348931608376220766661606257812960531495683558114838226988339398998969392589479453639864882093748353545401510151485138769064609348046798288492839587522514769459467582810932886223974219683052607267576002771469843558271493022651545989804693606932545014034593059631926469920532068834594878806316402801461120840506141494723842301495608350843216030823053044553215185077531816322787571727890798111753424895922210320466626854175045620535732347311770551640612416707905127251271450946804476112382408537870679724920730047675173460419823056747641980903817616594184309345073800754045776605990851262552440452482706217906464876531999588542610574743934307052618610388040223381374157634127766786591825355049009094148750644444964058283399120089020318935317192823932988897138009973618112741112164193727975629942878113157321011584258537017555239073440256384983628357796899402255801082486580520384603803418777756967209379330401669760142446444858431805790639450346822838968776948598941116292491537234958854468499522218633768749494437054607678144263615605774151346261806895843943869929774055745119307187244779002187981613810238038530879363337632327500222719655220649479326798684323920344150245895866515126430790451951981235045188776502433809693166942177998070023226054345213119946677889632840047398179753948279895042613117334438406662682010935726224282500360809302266024103731631095445054432837907656931442270672349589860962256468010202994103182547474101299264203253611476337145443229248225320039834347031289225529818773712339791286545766171635457654938742359409884265268603348557356706709140124039154638133241093827748892864455967009439663415390572092780891653839389589288421475058315531832107276515404928687923008679312219792266100004885666362206248282609449078078730343652349192140742477011161662922274044288077746328710658459508900269244359486186514618985825160421679280640207947442666775687954939920531624185106595542379355646681458507427277556287820127578238538749665079620183199099714849384716148163192020473738427794387970959577529974299712370253057325500435636973249655534067997667365357909766038173279298617806139668609538086223387209338424212740752676409223134084136549057216261579707404480934606288440200312173412928683965102338152183971211909723414666853412904933042315071457642740500323414819568585815739925060218059210341735486413163821534831596006425022390181039490905054658506403232387563682891569361435355883418076425944888042088475265574708176922069386603542363195054798508616639189654494249399546048574524675406958939650391365346738219054243706760814163017843764977700909935550549174518390442197682371988810517738631691029901331095919009302472842331742279901307824317835092098223485177976763812164366446181708079560022716593546635900739809849925807482407309331880187226947183864961684168285158465801388530982324071241174496561869259317385104046156171303859697849693532240765031519458635975546682101462854266688298670438261471262099331356989237425817095104714039498757283504748987575597400827752085389010002672671933994713333688100712744186965542176723837735551095215540677265957185821494083302939563164276499833309872057269228993887472980536564952114725222621314359267459548889027644263163465811756759901362617426141535729884581526486940399663347247853512238156487286188809809297907434937183130829772270934211676928621799651325557315517855769738805445989999935281546656382890614663641662045978516620335834226942168641942027490661402069395033994262066743949888785982559681072620501368761325260480846031129959532581714467878914943303789084998310306824475939756519224458505331620390466736298020416062722791550560663538654425184833254638962312168393867295389975350752073838031303006250940282260491555989868752070418186877745679042523068524358783386863399669052933417823890011731993994899509072485913321357071616871821064863443471583127848543406878216410359775595237863625592430758915405632997080659913137871445108717965983212466096381024945451639950530581306996431092267300692633219643886414203651064632353153138786413303606375909323229177171686780140471342050584112318671927787990999103321702050986447384842940067321623915009537091996475341129575671776780002708709285288578936917262405490749642856193581027991726787422140029882115002665855715485235269384328649247415978064218849690238450747673468743880446821700867250306895073100408627185038764652602792989383870239778112476840127663281983667968260409839810776845406748936807016414966085672769371326510241710343173148220004194885122776548509202289683401406852904273712768772574241249279797939040688988888121326910809537809181875417888340793051122546710127385131782425123161730402867299084662622323404771256326942291574696374634333417821252151317899210892526859621893221490553323830862248476825404923673670770728455222869985800480618533771572090664937006249058651801508561302083946331362859276765713135936470098748812140861540309546894791961614075006354346349653696644985974359696089115270244033795672781548141775352322769253551504394462121433592499726101398256268240278022362630172611482290005922937112651330258113897764156408811835402255069805950049153698104490779033067804802569725106924403419541991872031262031272435018062539445180888504371818395786699114367160517714956640756201452503749421957377683869410052834848738220514048710112485878272558124969809797720823294867808824965760352118583518930576723718254527811568652565561136542880474129598785476190291266351317034095509680305718302728029960461670321834521943762028448512360930392523195617158343010936876586235364041605866802129964231857946217937952372428297542776596051029073018024707341830302860723407465205337286814677286223087583184476489214999740981150555678098036783101744742191890694851393602509418413101158031425702075072839108284863820665051311124201373078300638955817344646076975433828404509791226648173359596055915967803181130588928123646828980381885193103572879301073053745964472150346117001074074908938946002845406312090152817347143990946408074091703908699071494946315548589809231948075151874712899382156270606992831186770242953549984930132611070747036230057135979528057117944526717896565807306566151542346646001981555582684472077220771866093273129980694857398487110851368082745149401774866812707363325049022530418472901176912727231237153153101224133828934461005699626085699869374651084018498564393136048567711317985079591356534659866738092127763304105996283572752892136536792329765789796193685473785779136946931186608598911727305462002385953051394026167557801729228838316659603437321027351186363329334433983013454494228398371953416837733517056766017683992706679127956400450238337161889440722780763282808304802528415758107820047218940664654719978248640907199492674484404966763910887567774959855338708511932009582604801495344499963246312945681907254376536469074885162290934729535053392577120714661001569214122728680062863018957958769154669618158326822955733496580294457557324289374315313042041669567480376265508312748214469172902942582453210705436151853353049558711329281550337641987257753936202663831321383897828458496976928517599426321097245847663475666076264722528025935841274346630321107318338001322656129734960973035257913421675666812264574133888167414713481083983410619083510294695520740587942486729527490787698348552765449613964842460961680761769771792233048283993528733835752985644598950137619181968130476441579867506805081344062414032143470070552181130239841232437637376779611267287677019408745293442147730004002644674320710441063730988857896483275649725033263389362520958116257648168034204972221260757056971941746755931422474684893043431619281210077563777105385429948189099398256263252077046032094210380294057176936309053081483644597196067555615888308048549900804611209707955804926532486465820826967198811997364603549118994581756379766321553711383235370857513922036391098272861142810101671258369176948270471838045105914517418587255551113936601559635077803628972358263089503811072970707766665079770843496976505123875173202144286564430896861077535885622393181973114023304029874136596749359064670070348651171726078560004339986326097629252245981693648082828213729696935065341654552290984285028202713827052578668482907701983330544045899832227845428480417820200343246307850964497392719158245794183585957292742608771395203420958307563614042154353127652729547180312038528861979709608603695136047033581836718900145082167605424470086466042212738223064146550829919978822889108996790957613297144504590266970919261813300424362664893971736716149582353693916447367338548997574312947801112042907566033652191657032529400978712078922024325790225167112352949611219107569694665541585618423065422644938574277794597482973483630753128286417316102555792991584859837482783761847790847623100486461715401187043095044564275287292060783679159699821012053602151444616292124267261596114324744362020078031098183215863462068537481457141021507140971217137667229746624261050871145703307213358111085851878521255412905332045188661978862548243010505246778931012730483909639794934445417979891306309634013912330667508709314653072446625263345069383151636210711724213379189179160979564899568788277370152613062046528490865898424162695325908116100688612334330837661983704680840210205686247959065010269376792411916185562943344072417797057790932041263044893437357612584287859954590074857227128286058558056295991862750270517032002517563428908362119018024671334971052993140514646734237777448815742497325224287423925428252321221008628177461528204807656345990325883706029703071277085160932852804210863660111878339915512927506518999891330600481917528629467488824377183093642307862472331019104563637589332712435414635929904409096362233605950133786387221202428097540880231386401409532157105472512072033594181281844923220808518086662677125526086829557982855442088150910797281023353330893623675068310541587053072638105082686839594094199877766151646461011787250080689446581000072539520726937554941525761480136880826519953005168028979385483929623334592167868921216254694884022676112831163305517638654647097512725594029590135513341004561066172539806674511129269614505705077884496206749886144326835852297664627065175795102035770889809126503399472859886883819044798325672231998870046249246432962978657073108687523596426335755516220312369390131923961420699078661767340085046858517886202091899392169710563412293360602732140344876438692080537348761459479111980475140511651853310078519667778587341584158532071945580769532446043781299532811716599059791886005311781875450020119614574164244162280563804542410652841225986124205316666334101730484439653212003393333145380179462265217153676928022857807149417523153606647145771740771962842169872663946192678417201104659901353680991306633137176781947347576241013736003696279491376577730426421922149584828592827573043020525489312997893375233861473902548716570963687829388588134910250984445776251071487442231193536051273519415916926808983628318505333278953211087098283255454121394332218662073917400939588503020465451921532896840983235117461215589433529083019041414641994780730305982702555372662947172133537761821648133172201069653335675326660518910639109598513829277348162546287868051764264814950000764290691224114140043688899776324851698254538921207229986179348405364958602803775162137867371958156675788681784450536007135826470201690954181127952111251838463298274291061548388005714580493197471089802157109761738181788478071018964176848276006889562735689551381959151137649478666331032293902899094198319007280718455710017631712693130692590500697932433685783408125962848421467070199331491264868434592564248569516688600759974927204739464198616589990261228698059211672762751228504326930803154448138161000226356750430294822105573617104903556094215981146744259543235999245596228384690292927932343769904947550417176409296615266610068123471231797653730280264876598537212156392821888646861293476980391775209879548805781897427778585854591173608713446306352829417813685673398128244616500973256414613658890701868503258468372106040446707015222849895447724269068967921066202509948866372813945255872438531881667556111843348368515296427981844007560738800315762725945121830925071863540182237269159119799158180051742961016613358393481789479634873976234352298267976779704206053647269826416896188241617688876509920468704387339825054030622470324691928281536163681313740675812765976438837214213760695960228996045217874875273416772333239622940190311318931608813932346466728604601798738976736045555302071754716151712608516085559505743144472313037185019324168440401951087555296581879330078733432038577963942552104151915917904454840657484209610924527926244435240174958471252391987473221097252198537047541864327086224610419809087425984354254655091390292977494354151831479072952016342670145787696999972940955635557396562738507245008361549404301054756722361052996209883136101719897188530285882118713526043418251590029751443372723051670916361694973011076458209787702064504039171971830866359568302993868381609785228500341928313806548485530668522244030083845277893155378310839250666368753918131929356358003901728575834240860646898967832321598848912279207727884203126488458230495985569188838974507096467190859936441633295023406728651040288824504637897322815631783192976879944412204334011221823351943864896205563504804579729481495936280821321629246182812981022400802008930876456186282561231477376025678223733755796926803747017298842532522888776520834963890128391046312592757905439447058670117012064494403430817576828973434565069708769120574341607416768144591738467145141563531807975258094039117356208358298610818362580585299505569400698110338883948062066788528975000075028748528170096210356819334270917963127680751516794791148206154731660424096812100893797107235707020998926483226692331817678074110811554532762071556936818323077471470268391031599600824928880153406780047109261501436695198770973548057288459799468165159003692962139465480720507250929238314562695557940825373296254273449298875447218181530924263733803431372761644250334885995540731270266442014855149674943122815287496260636202731026295514274292395641214088265731371651907421100823539430638472605152052276102054820183167250498461574681151537768369990758197196060173166066909755780718559874193768122395213339786820616499930153613511172341340383276924556801857363657582767488040284123960777245351479875616157614633321642722443078221053821034513339632753740328973836724607398451709836045981990597000661904134265846638027552384959314920137479582977355053757253231556974814080202987997189034249284161071467713956443770991757631081793328359551216605029526565544456931185998319757543167045466210309193920217601465923009900106755202070209939185139732310439936872903049819550809173545866727340744779350721764403059332594903485677400726810618871289115996184065661176096795942472095909739576890843886135697277714307612191532908154551327223826574137856988452019705158454243136393248676840220197082474946306469997350095633123773719907379590219111484930761902603294913488115055925852199029446662800368771943155778405160693835394442944163448050914390443862606932603986646966480460562170366946464579510044602451556579763043676632683331934691296808638378217600142072391643854696952108867663942476610147975583184629478817887388082424097494177148357318610510214518648483870356118813171439974421746825913845385360933590112650178943283362408796764969937339814684799962451919853854287355674664688176304263736349846482825604593989929341091337252555505439969028915963540649790006384852541799589616798451911282932235182782741870401250536864155266596285864299412123443047798174650386461636478485226320018151098982502020600067451064663690840636232287417350913198616808718319154820820883436572947222441079582748865238314041874402913836309582231564051537621574681570329295381182522335569265743671118936206564747549748137807685894783376232990737834981674937127418922997049550696579069195271816635620065687162829225162438060476441207751699909287821836086740276588739869192304760434153936344755027043707593443987784520157469210605228529541842103815529144312254437964342878562815126262612514923629342627400591645322182581550108742593005456172589345568188714190134092997060675928879571382313537961592515945648604424671870833473577017173254826195375096703943272197148953045119809167464060769476732409124287469884951335107558565709687287810840510193453748254469139939191499030436769206438232386627680965322569277935318729066014830284020486057421230708228118883139629061775870904420591148247969751616249977661657203904831609999636145228715024173586302410820296483845988134543674519382063944634883048846649165789711017929786359713566429084233354139318321178848723172980016115445198621454953172373192203928878631768667705253665939286736185910033413790933642723538565381305365897965190068977062950871925185166608021022492794385692448956601496176281975143804350970859393974932346883367293994321422460645245940918980589847938336997983950733184804230318278066593233825989155195273608075739560269549046134798373403908316133667723891039363230920890883015124735542370090808355020124185790762198448939078626798642689095344523613199843625040068302253011227235093642573749862960644360182968760016593965481455675557768304770340186141305551338650066427195194423029653198404986170307274909642847054046752086150205202813860167918467792933365219768875707880106916689963050670101553010985936986523337214625017223734990978878232481396467923201929724220578537244780202274382236823068743565334686663185807989930449859624937775962561394796904318315354002248466085636345342748947728953756897094450567179739917525680227183804723860599466537389147773332525766085438132697811585767897467082992710121013847534776795022936484246182052583016825632444067357765312175636430659346624416151757532817198091729383186666806013457901105410511424982191755975423919427216523450945863610669119754865045863334544731280701162663461436900128176169177400036135785766349421803722350892648948696610356533647931953970977416471757205884554955076860152314730421294677189573408539263601888524011670854510063360973985117413012834173502715694669054029549182971935158626087673317156363848237525984350780048954407992541580625723616173866142247438000564107691945404702175667351286255103048389651728587463101204857427810258414347734225263294803369999205986915700455028163020684342312585102184295210427652811635455517901754181922648839425567826038407586390675497552890407072270045218263624223384569157107603274974842774080267616205552368130162989527919429115792136610895928679861767879053990399619175553838941911868190721280722754685127662958761641935131616392951554246662856373407963028266593149619556896073359229479559370822584628393439108372469225822666789627433929611260080014711165932423498899943809724899211357158577216340575696862935222733133441041924058514611476431292207706961955314657512037124022316300424837068254222492486722481044640765287590606640014159922047331343362080674808107118970551533474635023107824198512634262549441453159165547563000183323493656637400794990882803530470719909393391089482516118522255774043964383869622595652428183185341266270823197164509847981263606469086028717746860091997632630484895865604463494602142521379706548692457816136860357573137022152063621614732628127125956605734567542501728694552070766791523591694731631630541611618521360744213096711717694625868321433640037903053324474861580747020210493054168135290005237049004584889720142412384551321104634917107657989437360108747186738645852944011318041405726954631172678583730666932690982609073863218597197358753570536498215903164670487049263471941444149568323496742454629240188256976463280332726487437506860847130942685451402932144280181365719792632336424032833845715972048229437940382744742250115608165567245688220577532851197134490632664629319876069946241626996178186731191643569899744943848713701734693658311465036357307770965268352424645713093339703210024770178792378001129480574097581684006107016782151709118544295836080320544957551869758662788056357747933740208443319397097373474090634287481483803743027338939576401480238161325064694420635050750625111278522426769907175960563336126122053876955134869268039211840027802916333754253734029313971429459185760940453891844292732287663005379689599292972484481472251769312466262385254161492076826000165659928684716668115782623719930511107846742040897768482789417862534188932747097504586085255468722537299813984235801915359909282015191765432914426189041372285596645628492954767047588449911407655738197529006288560570669475799717280838539387169099799462168158494174770010707799789345068918350756178854936026556528193692708175875560429445195766789039379566215789564000149471201320522700621869020021356173989705488901787020924021526491265428944570923728396581180596175008295324391472398267971095878518277720287318561871330845531884861575702766863369404944161830776783813228989219818753534415553566038411584494342299795151019144835563110835684925350970134125825279334506683427681434753185890227757828837557130374060240830385334348822242528803098070446328372497692369506861969646509251529631823206787499230591930675900984242584066412409515076029070682505011598458931296426668499288287275831020643004671303741115189763359740796793958706162910641950546178266467417864180858107046055562901427848952851361242760396518297953414746917969975863836270113241450518949573014255520748057039012174662556155759988014010793730090942751959154014267843889550996545134999872349942323926967445693417568441341328365915578865826596289510239658431910606110862762786658026547375388832970597221322647671369307056247629114757764943050421764241207009566468390507051987060930311445541228999936612729577287728270627891920628905931122866748487721198631245827502216613840052040617436104388262699142556659188621347532544860646609396268758144549323015191901286101871485196970002157969678816486262427398910007524899642694001189626618395827180286439902394736178918501342454548856051532299106067904636867913163904383625428347363893352907060137284620770378977495413639852965906646652605860394750588898000162191328839664643311758141758173431159124950889526866255429664104615635110852014741564234315322889680228824382352833795452200158493714140969017027388262612460208126916072882520345843074438664885037363015630242893421738384467508524496368589688656075353349340536524722758707232827273946416361706036048956654371102243754073528332490620463140830411147113144647034462671536667016843785985316448544188736391043677252727197800895174284317990273534939714580812813263136012299409239314078426381178577956466722280844015240406312922657604297308386480107831422301592606772294583797380887218242222628156019970945429756185249602007805522984776216774132722339313777262025466788293634916326599061756399304178854898838412742796352502244170677825403027250647464756632611493214821318662113619346896819123771403400370715834225455068692884736229361753178247126577750919926425806070641726656399396620938384800032341374345820297092235154898372108554318902195469727757468334078195419871731893159577384151974079065083673576612634878376361601923146221686503663133886673787164076093496811867179599475185193994785187739146010267620006803931007697757893728136796276522584773406819839618343014592447432820663456061473274948349543780436170789832709702252700438745406288481586279506827599955236781644245690715647440622511641072268451947523851941892007684037088040897503796522435038529746659127873747336943386439597846150645751677934391796481853753987903556538240692285761992296575588795453342339614467011094432662230494827935251902849660902805217605085060010142335361453144852011992286135942969865040520162247968759337122248911702421228350469856121196195527510508661116473616282413125973458641172771532206786446282663352766059700143652649116281894260658184667012961520852142059710710660987807111585014961938093756488731777282965897645672647475966987225312111628385463393150381567756780466688488691897979845789581946203566974122667509248493536942701814122963028320121773822777328398246198680439742423361041414634321457588900472689267584711299786868469915497171053003284488061476194588440913370211224716329889656431164607924492371869690279683582349331568628012972564666730165559303051346453022953894414675625751548581665035542718668770849724273277311989060109333917566236906581647854793109930248311031809409761104182003044206482954123574551041356866982574161515189837171415621357454923499878965028796730007239151365172025705399602160330239780040510026045050385364696783627803204267889318872663346165061979860077931785865482187526582189548440501163414105211000315083228437975620002711335654276287791924612165051821346392556764279325532525834965566018683879927649698017458316834666661518933735692551006891606257978466171035168758947961404946365462910846215492203608105504446182584055144844892732880783039061573309541384011192112066292117633558772909652270005322699486767445134350582040596815002576678498779889676312246781233829982650231621994192767221971915733876761504962035687152077916280561606442594213322006734597964459711789188888691230564075468670147549097300328888423909852770608979007253533508648982669064591394351290714210969978438653757627515969316527940074723879914205986613705087484461741049693897115237899596519179010835418927877127611619731515968443335717609795072113923317951783914194455167510276933497566808168722067245344025690318345969162985535014569376363556425041842300787047381952981886262665398355344367936940307498196911243744387081985422161919819806019270238166404218865593425487598415321083499512096855311459116815028926082686409285507623712853630687378965604805644489190881263892250027802573533394273774493096323306280363200638029963907398418441234526876279883803872100384326689454362511082575038423699724283496048231564712558128898130286122857109579079448021257351365116809840989775758081338094364508972396803483831115545612101857520483825746079560950952805096141510243236179344650141079524511165014446944812239304228643292468454074952473659105813468414907857000333535431653687412550263976446754973635521369035083486522984295875854539057686675111751134633361505155662988044325251403642709649480449047991016799363664950088049402074036015179893076005591529943139120240245326900662111900471705228323325591868803180721024076246591035792142923409363955657946169684320439831096883396170670217425967642926650071456281028856777991844399925429854782061625654101622227004264102336014285994579120723163249893092872220516989697831835815129663803910907259282039282901469947705258088066491242909806474682722624361858719807014255797155340807883915035830148264414515151265815038879975394001398025386176867478656378049564233952600546000280364198518540270594100750673947965436916228419456221034380586085252226952458965511603777823072288319532641143809470657129950148089675794793570926097128339871054854961240592876336398648052637430879136763533795317839990603203502749289913589169272008494190855757583237169870943753366297692425008288888557948832674107893347917704620485006928353472523608479511778605221347023034659869563463782359441152206988684571344735394237918613860262779290125830787425477396010153997272056611561504114660723848001808120712181953604090867938858110403297609608479889340073117459443060835504158551435022745660611602123945104991887769512430255515504647741545132429383597788591791091438955840265801163734919381506250727059437779188818514096395519410841014889021100598685313414654205391255830598918088981150062727974344845723597100130159938895103817280382073776612069413781703866074158682782872236832969607136667429388614824617277875845168458893617021237832341175909281993284036416400330479036174328748234928272413217845438229846003548661244011032090638865419543941635481540686034747113373338571615936059046063357956600742098888180824064467672624529014528774454583160895564864271080439992373652379355542903060915452521017751139841974359080807832108658266368728490037824634573706274383883373385667446940650645439841044967992821316508292266366016785780038404751938724725795676790663154086113117944032408692856088117634792960523453019519426296007482214132055922977737555125083167117858951841119997452971489767181215993225438116039358360012443109097102627905230236421889429595728724428429833674263940057105411071181296546718463070266875402574186358612479932833688208017580353065565879839828869909116510949026397446695536460885305709879239174987116680974157948672345674020763351113158636148268736382278953060256343550217704384802857614355108021643658742893582152726941272638997308551656202627583852617893699133410792290209793589755094502977314982534941051808978572632646016859815865166336605578296655342064927387964489754262368969259964212276835774624256533846079907796964749738170709979376964882951083362479511942125450000015411619604177530039689367582211647983905388215515568897429862241163395720268907238003199307438921326849435494981272939515702392230108229757789687849167984283967788982007310780891565806747513574653727207636764009857493549850098406319701167556816202282867391103974500278603385435421845863050098915720478442263857346983130304680513841013618465515094199447986314310285640166992465933075420058413941852231760464760927393284372764980742480437828804734030986878427989998144802233755815981318933442021175999846507882864904886320076681267480908515014150782094583659278717886016221718597669452265946758316647569820177966013031997502327447549782518396411940099985803661889776129515092450774592422979743342560594133026872780027551927901472693386521871492486766639955527727238025564886524467025679662682016028479363346003019493135606029254555453803281396364168021175888339129226107535751730948933024104430477236460367405847826920993162514219976796021192969622257706661249049268963855493684408386285802250244361999720074172167436985498196396939654376730357692897398049000070133313634807837879165168487024893774082191822290825577194257335430067259669891006392823892110616870610952821561658458140371655641728077225181687918439994043845356427305752735690737515270043488212991416738791860358979923196337857745582898958437654732116199958034165734222705975401195803816262633937040267355839599880377773244670054478508140428550195770503288283437441927324569055584758167265999022875235332279431608835303118153643201654238057930675290769648941539588752538655861616244077951920559580356978404484657759846943225734161520077219967282156493992851657555992890436420020721042181202300847414096368918189927302963707092368048394004754165353927852476561587047659805358133971278718206271387081411394235310987197916611980396071698666458651729968516993127006218871706417887018587389466270438965203885730052813875226789756610373297954708428184930321380051017141666161889897912582561083065612964797152029819074293192138243074690623515640317129285417247683652719821648801900144576289838020981766931312844318075355237989487728521156214005043574035766493621980930838618660303671355042868484603750291598394487887157392035788725868431077464613718171956530992451080741109490108258002408416599565826794978878212404772038850653848288536866857359446696109999372253233455828840368900205587940586264318935367295715974054925999667906422994022989981876984920000888919382805645417234391252252977901327298568389020105438298532029085202493910738047328007473049166791976286165578153700469919604133391893372649888380643909336355110829987871506296932999654310783494458913434983937637556755234980827004041040283525335181145942725702025341074411335294691920014665557418764040876044256165604012768645529914314800257934998859409228745946741020457651262461814187170760759244337149584084784209020331791491750818202793011304330337309720077277761616814241012773467196207413649146469276224038591504907713051158594730936474229397114749856451625421413522307694423087102810716752893483856743331435909155695966398502050166407807681209033027740933911450312738448080877445615833326923945347976355593530498813292679897907841329227087443753919150964989338638922766616488527408459813998467023235849396765650660429962336820311668920704762891883846238249088103785756228421002276322974162074296017600678396976904550254266519360141531329356637749373412682992734590958184880178874779836530732981155891835711978844437679180833656764307013408053089808321977531592234061594934784997584811363869348100451789221916516814405546308925124160054527900597139992258863177319164254376701491040143321785804841022924060551284566729322923106687612789484587294475130087782692939954513339357528586180870978239690281306567476726240005049564954301754355024481235603666362012661127231452751300631875506973989822292843435615254990066572595002800703008094496949190635093990808474480534154698445706115332670401622832570076272947334733103604856366012503680966973056540509051206777308870019042969526475907253796309904119707266098322594427851846793794766446686858605369495113862493402717897331566892814631193758324717620134182932398753942715724545064323366088967140888336489235233811626584806622562146825258354587413520540023630772844531451030151710125603017990587294544583687826477225660132500589563816356055962623968769088879521218765869297181620627423251575366315727882441826199565012862296060903102428726460827894986557215769147111935072768547831122422283830326072165141322666087812395137663462227945005929779234030212119401260766082819970958120154800440973901667102160457409653153625000957889228951573665693337197312339226491267742320522148077211596979228417095978641521135236037144500117602483059449853679160225231244121241939704923607374315092998162155924578184452030588775361948433974314817789453246114750522481794580193576993097681917078414119461787623994493325561922932008485162136351191672577882467770427364851758636263188549572719697751317060384808017327303533921094343394204968525025826607652750577858628626762097334250572250968991123623004674305805293327806943295772533441507910322203198765694050454267400950766044590026629196474824803867993710444455311163492079505014225978531015914155684426764069114405216848730584608373250864910816991812475976301459065128586628329581072108692810506212517778427565353032836843370538132316823044534106823891135253422116105084357594279885812123573020318061611597485490735365875666050816973644132083230962762521468507257964357032704837295105742710967134770769282945330385598649419062188567962864184147185084068677728386875931168025026779720826476526354029431360126382579515999775968342797675388564039157114317598695623682531956910648306391178358998528626506599005850694043425640287217921472906493194380524662267234201029563418610697282195537561667724574784354269856661643910048997545297223784839907473925700692647007017521901504919350818511567280529569897195011645522074276424131589234537656895035715941176197850022464569764340487996901472738630577297357510500096927429130453839778490324805488545350358565787874735754366674294531502200261096266183245686146394365187765289265535791092984578129111575383085945310213200254213358315001698095547262918051800264429353044971220033510967009757026876560540044463263833942084857012923497164055160818654326362047224132523982101680294869700750293099486028651967760468181256847057142034350080264657094470893671170018285308611918953708645128477448529469804898869830068341175915278788358376781579108803962519476066490028715606238833645473589308361054134931697869927476078752757841007972156685756633272658722929716861331836888001019068556959029709538216608115194785667580954837154568406147729528313776911563825526540336105272351623833941489840338463390842434023232743315199246948047617825311273384478189315333408717940845483612962284769827411077982991449221625079547150746975105754510477128699779463876326324218467832907524858235257261331065192211093965987217378394390866538739528144919950426100690088208170653816349148597214240727492628540440507007776835434030943154283742984806546402991504388501986782458342818957831088264374844085774010100240671769350114170157694634224614882298750769466081328351204800336682076734341424722947023673134566805626441432457376767599608827661290430577254611743311848637066305852719013701896132054340654387014992062237341103811508648117758540208713860572684408438851044386090789351577452024663459174939898021734376519172243732729811163628075227492945149923122205672022663515133780104477273901031865668573564567284684844244765396483267252286757306757115078691978498918629326171381147953680318151432324928572079005751648348008513495564888208032719766319710521891451929246217311788318268249599667738458027625833743069129196035795064468581218249557749106813009123406650743072930729764513203816379495555894565165709102412592879529644979833483672156905019120234293512301281574320536595072896425156225349940102532880140331197692128455889360713786223347130051375644494164578958793506446679730158915900191836041556852981739214781784261742180196666316755951839371439234943453220036167121062089587000530273218336926017388221160259818286046064197899552924340790033411345676853699650531835138877276227207640002884523385124526848745687316016958252224189624127677976846219810936164153614645364929868144895262589228229964928856111583922736462665056379010625820682448585583152359946426183334231432569293101717110573729905206867101057001583378071549490793793815781750015363821067981565894499894952660119315832539292881292799630508494346863243073593035865615953265967355492506810646311113020076635419002905136650014377549242886456098605746880100273469648419873507503089965551674680287892370766158931292537755895413244077329364303520652609686197494430162002441503094465557232795084838094310089162781449129750895800194756742883143333911641027603078403148237916304738476839463163808705957282097556749090953048070701501056980859322625740916393176199509543588733254246424959696152225620949644054595214585544652466070485011628693363036441751043559361802253463626673628861211409369462444039883998857814754240537878815698522209959693603589985570478195246783404395872067331848883292750936262853160702440078823802626997353056041041375901862222410376491483210806193461544688716732709026037001784564210114874127299117945451173879723394351631427656090516572417119601869164130726913020340934379161134144164894151074275270436421403358986475608206509371734343853234089191434763930379821416964521430937389396431490246871278376536690687110953267301888321514385851343761255460854718132650938154097230354917898865246345541241069250084240184517488582980132871043206690894951861270088673863615831518561270359555979234902330839916387625086204906340597112887908754913523018123388506039490856384838370528062142977906798804964699949176820805515922645555805945039480787798304848031988214930175267218966166472075253676506987596069530424904748160920792576431930142060141620251434374651091416271584415751423093617253896591216361988389588789823112792189575021064985162727883776212367888165505019124982538684127764717207755244949148571625627470777609716665110766878160364787549592883443609241317277949390441299004627752130164183400654842234137758231817270136486193321282250834844547983169572790386984625866263249791223708373580832322643344050629906105123799896239641107157825058821356936426227256655660298880740985139448094688248117179736357264463170277537741388191351197383405260519201326235235678990394183995258191105654954960428196497292321959275767212579650894969330663600403348662985570778458677169664989796937735946499535874049516357743736441840735762843250027408738336550439310767039453006170774448812458363391090681921775380422713976679353595506676467951417129510669031097326720409697461218986745565968467758628140458780675251280122995431073844545960109913801313697212621752402485484275002982392051515094830065548767835824091992126906223084822385974920180717826717510859261916383300582297510394510119352693931478283037257666396033892633163454140121281062763890975521528718953553585690081962541725746602050243093881042844812445672557320511553057564326648185164230676580173783237179664432196820545965543071833849210612086951031233662789817910888917942110436185709134824125157083747152522862904082898469384762618497068762022970394780829850669837031496259011786815915564891524000593283008780701968188116774609405434557729730644761819709105861431715750728730977862270721197289858827821719298932438488253034398312647514188397654190866343408806686083995485030192691413067022590467230422159066037756756518400164104552687005650614369226327004609122763661846175886466008389422521392457849725043009114020157680054112418753743222689972088929644180067150599194201879503008636964605746041611270613320061222112925780408585028080329907769134127369895375104206910281375493274511743088496809999825579918024031533763911067864205850590037894718057343286082516976901107505140153057695086132324727277239411657191364686586873283806386059118458106755280033735231398861000171549145527108034879310803330130179568281191308555815319631715230438552002815744288836284088356728454983337621327736292234601073179430085861680317053839894764372347008240464905083783511252188605467212197524580596109985869032880935636025884202385509433512592698515961209318012581063431305557752504503191876619458392371901777238561128097886353920273109995159591919511937513626558901093873600468189862023861699235069612463543793281456386697091944333556618936034923954580650659722997796813553346065476015962607540094858340673094585855513756254389116434434813721968127183634316373261005319065552375028534749929674594624491599352388740276566365018554017232516491869706346604438416010047212120205840677132314393836792908367905634052736004156002090295825580169456615305709287584514156265895519457524753332158176202704192966750396761552751978846679649935992057215189197649820029262000758319283036766388006524417923711057323210265542689607809950116923411977180835892404178482352538314330925240192534070379443696145502002346219093497581794817523342238078206755766824806907609608872078672508113090143043238681686745119669174369696125787576829095530468513628080490004112601583089158315314216503036153439684467353305631443668628296616152718258543739135278397706667393794444827564018689331534822299937956803235323559979543402998482286909343210342395129836740122762097739562867325304249379737313035848257975506187676406487892663506788525812388939972212996017086917316461025566858997247141992394440979456984043355403353441440247760634919855472699960944048203505691350934617681784665353938295929686463862877281852860435190067772589350770558571606096540923367779755527966915328869326669128582839691961445006329965582802802228053921235768870634495674431451192600314403801944906583235578682207214895800599787801182324597591800407180314314258042581622308694437393956544506226871690990188445330913742917679607413306138933753284442858611160689585102463192765506526767066666665902112913825682774121491664163736087568178034540347207476636147418265823733517217751395444231755954879821455148104621077089602551375043682156813674881936633260871784365772953838126845643001074559775381571255073651772507483725771802951001409625541678299754257357384267550110711922933480059243019044725688387435010437961226742744984177984078325269040195109739019113265913314940229666360491306146371393158361153259742695262858852979598778713029145362935655907480560389308038391345660668796024660423680268638455965323202780513753149469898359054380103068198715236833375858748390247569883427637394204154719082947584651691611989870011985190108263706146264156191907316647516746425451759640996530440505435803125458668180198373073062260665536741538987202302964546285280836584272817024095255989553999575738232991332590802893817285894998298684671148093404485153756745852221252364412674573030746000680947841216746149572707607099031206247140875542072675787716409050259164872754914560901020180768673865010319410498786907694919655773651505348708967597761293977618207537497352981336126986056923943835991714775918333306553714005385653294071277710238880271884283104974841495414721139483477936938668691245916610720827909865139379152643045988392794318517109730471054409401598310575917988951865686765445955398123365954793593283933615133613792389621644593459708407225804600325301429291168195425489686351701297484558895316318983703050215771061318754615282194469004484910945248320147740788048371690212289151258427482255783787295415051731202993506992659178656327909138406134017624958470490247218349790021361678322885825035087969888990090381981048466690289465556956060137365920939881106825755560051995465420353873059980501992297116690426670677161992898195352549379285753127563372924070813563438676853286935503653835621244176953492254629014480811083309328813977340994384147316960844800110331058016253996930249317007559065917852824557079970448676353181273486309628087635976975117328922054240398877141644933112614577986227441615171299996675455118924334933392067839527946267052075676402533043563382299820998387916055073976027363706966934727154453524170759005554469036751658605793433439452282213850596040210745357041066976325705130102310735234967440677745854673015215733570889845231039628956997467759863693035597725968331960367509118317675784508175474967586825738392562318901983567421464605881440276793976131106129295434497636607470868966905024978362563446572648787616122817215125532903719812940716660552943508333488529609834487854845925699953583405201290633265113106934782023479559349974200645389772714238387265918075903733448701756238626751352749879888695924417025984732359773351845688166929959137111468750625619585122215870341510287722475996970854248721723101087001451155806698508425799105786877453623389520150613677160771601044240401834686314277023571071815679761634001227128926861207690677861553511067692015493632384070275140626307790207799106217041743452872560911404773237434787756136312149602905258862867441632339661985208540192899697908099077921365707936984011172624308410036349803295927450553627894526105197932324823212328099706747153127308784382883378237492065720708300510848306705926860971562776842675063853362240187201007881073180930593972971748676097269000180520585838287219317867156032530435707029605373732296506559883276640587660441335023166935366831447249969456296087244586632289599723913308585788910145747955956339836150589515341509795778547360650600250970040019960656786583294063677689565628276487222168162678417632014011056957472822847869760756366447297806308982640210732868586377501556273538426146450095602857710465442090532818974924533522500210121890896349730040705361896447517437809684908110614826902363185056889076080971728547052787779620587368365481957546961019864059450967188916179438227974893196618903557269640889753189566029861339400146631699962108778908106154920035251265612962731164665977990434899254547563242456698267254598686807902864842087783961982903483515149939874706512349413895634008265761651277752251772124139495782905570373304753443571235037295156070795912605249925908020873920582546809099689457573821893043608664611943264459405110987707556942707751386548840234762740790544861356022008625980280517012511587967188459645776857799928039611138227539786785972960189289083802934549555907038162840905270088852774634008439880299420690517779468170152569218862632759487710366592929612688292587212390662862715701332579848849894547267279882561931242869007538576494288902557032296899049518319479440393237879505342818042290213987888240331790238748316295713732489176785801084344844846050385005773894100566031973304722607076509391239110664079805635888458478180398767821887531702403538604833653427552346622094442191627659514570158954882753513122018227084231719125528413796065010871221008271395605462701103561924601433429674132092201310593058885204636311026033082408666372787405705623346043931749926170438281869144322118634464615155789189891981710953524193682668201641526186759961671847148185223082838314031639154847426510707814231897445472521863158458463733756554763711820301943153348937018709279584236440967174830391801477006788368181772012491004507979247453151292156322590816421507364254986417110047143533656696215590753015879646487862222495782124359591595466382579369010685341129573276091676069366080021626169771073054453562412408218323688705839323391252613264888415651585285097097673143344823913367153952537773168211789069612979268860006295026141284958481355827962083575571204444824534245848886391521866055532387395396325055769032846031968474628459527841815825343310894139958858766349686422299171865748232941449184488388176593761254123966842585681292996404112106777334172073720797069105348372889775478312347752750424248174532325250044846555170923257363741189852219343975371983136863893749282640100915281116517219552146467807539886944522052535507944458954943403359348811327315851853777480970829508297818087255170105167424574535556138867836493041269667717756644319403162227621180904509300979049786904007432157680515701110974244021369321737430973644177922831483416373507532076521117006961470313410351703652814088765700387851818295079663951170339709177565028865657327593357929389619718770240271857439944225420218680567386828507143735044981172832204804813594587682258904583865113180072838941990357114144423536064864986420336693128886831274153815540443884505474951260387238804836645507121278619551663492404710990064641733571319340952439710361804427016212226508936462228975225747494142325597224422565385763525768246657773758546676550803534085569487044264173745592354615112786091369420323637452236225039909756209398011195913151864862643407282727721285792423875926214955036359723921079404280797771157086000704862081061329885275308309451273868323403215531978400162428396326724361703783304579158167394393752292385137021179508368568250707361651826433522294749774818912926230743417877309293507549795784229083884822652213996720986522901016872076725518097943252576801437569398971771429611414429677400474249501530921074263110448612726995248975381811530166234158619677178445352015852407819015229261900373066945611346989040984555130540390284139077867577820224813114937134340953553534426785058245321061547271862100102723695265515718248402237002639826194014097896213892290368486029284316708056324076239122443596415346251729635836225495519734829331864924266016961667325267627002856509269807823585869661612834315770926255049021178856507330252894567456717686400682620726617209806712141931309600142516348457784647543736705034275720595977851614573951646872627141957309230220573357124091742465340366626002534105897650337652350946533960480070997491189043673974420650728977675413435936447986555967269465253417012498024818854189943597303642671179241751710289373700963971438833155424619246998119436201094670849147298077637751089526225201325223986384816405101936762748687813235770925468835550810392585719188021481478992114423993963665903183627162488039724544278780863897096440187472080470468787863653967475310917576542452615570003420995515416232214680768722275696987648655057131629923568088008555977795903391470251151737811564457814034092274813816427727863216639405971733444700591128231842278549571850654128675972546548466563451009100752165054605104470564835842550399312789740748526615385878839140966415409898501171438853349074592129827883235700198320986799939871927166961810961059675644134462475735520030008995221010858890800479278451317672524174813595325252015324216075605554275737268364413344131758134259626555529265087924125220497402824729597695739273727841311896939630563952613814137000068325446171558121423773337581188883405034639116563722606296289072573229185828915588791955992233270866778029545362546543318389080407369167571684439541320948719303139587171851719562879619627488738827669483423568711617016384028934109903681578905578402723581694887426055722927712498980490393206647344962252114082365383557818959991780208375752673368697441179363651595674893996690733150580844226941171477974479318643946140365362116235672315817941822380664909774103751622998496404761874224743044246522162602852627189028081484011405954516046569478747441941821693295446504384536750316409972462330969618496033705317950717646082472844212491341450459474511390788128308731641911305477096814209227009947343550958212633200193948108647914089130183825736872356178777155335183622192541667970294839863417274955814526199326368595922703897387206905764681419475058392977540598529167968372583450678991623329768526962689269652915262938418176151118043523756739224173898865965556269297484784158440575340586585029863684530956448039500045794075087174829648251102387360151827354119363953948023963913694580599125682733005657440771096887959520300168981318474640601528422055897410916685537474537046753303423963987224526350625646101354638365476258746031977149124875297166618731855521309816751272083646771044101499666129554509835263225294317544087654907941283475558078988818894830034712076858527076579873955615983340399109541355978121074215431982055853536508926886586211949661697421591777850019191870780213721083040796136787724292412683261919373270944832801912484101972054815549810388676672338266967367545125211471088758834376803379063267232074921444502967297385915709821745892415222720732985425207210413948590332478325197878063891786320734679226302101025507151529409703967197101729954880924414395430887872072296556983345684461329680939083733009822018893562331691152446415889728038682653922533570099384753295592774367124125510186223913928555204960011721264048433897096147963917895393945495346454947825200846649120854699559065534393436648034969423175441186608610339519185716529381235350086660677508600408642155475950603249254974356656880925732391510669538482709455139957556639224232439867107045875261477878951610347910746294025759081591650208120273482078177658384721940700408945106358252826809123346869559183400518770732284150226523044237406938989747739173414845080451400454500506474043816174327058927325777945919561433728278716635445706190281537100973193984469343310569412089696081384795157681478228061269846767079511072890627664589147994745908817067870857875372998376463176226973675424795963296063251245341718925656096661370673577747016006341773822697674991579956506889704981308966749260892302094996867370959971293302542652103488781524156736200198896559029129892900541859478640331574256005870591144849639242159852123052700289675833961388966049435409245548178164950207072547866415652230687995688287097312444968676809909903033501180646249847084821749739745822001138144190673856036603920640414061736007114199737398066592019447567284175926273851177542710025302775548657624092623734216386391916445595878717318696334751751167581243276241242517040459569555345488769369497194598811181605056214946034921249165044931249806298709140570965914670047674673303629246957640172243044085113107509096816804889070860758225830892078479321660921583751754553949535399432651762869902530036539332453718972904396901681518642013032287401440221121863613677093051793261855021827315522098593941460217562927088974128335241782817531053058455285116951575413856530535962708375012974694174689682776497953816764253711103562512578598489183566780121395468161632475995748915155551516143789090263728365531069675758099341991140734240550743318459542260529136295047309819654958168761530484997105746857926366628553991822279168912565380151959649665172465016495717023567036322253756771250769691933298580089778758925634213932844253461851242718424672317539728005240196868029421767256960065351429014004057102120381578616957150507534770031925830100500367217199841507181847306970103028250947565741680588464876474658948678466891751305472990051186910520649574140139754040781007101261995234127155692850896380656352889224543858672029659541018423639471215916918027341082866723811294310749549915563619141414152200150252913689786057862490039765350481298268082688113671606046324583798658256172169135665973196869867788937072791881435476664940014406079527408840101825707624648972274573958134849128832491601772423113225978362106383577601404474398339574134076507738618105914103922316943777416138190325057231769994227627404389827124186944235064762792114976697335381144924640368795029046794693127514389019214651917610725130389816566166609969542699823203447461966690321868271654377099494085495682405430871693013908532561247095744691195081207654547127403158531674601475441329551828984563885044373430167745680994876169156812851487988582917505559126608979426404059346677301136867191766016185308430771305268824481208692990988001169424153794113597025089683835516324731049553966338633967726998830024146883352976833071395883419441395166436561499645863145168390594135223669694790405213064216401446005586929592875381463432521472292853017782273536084165744992381701118850774051347604177567752113671578250549038788041805378294639311869623734995530521027309941813453216603928728886134871708955477271487641962211153079779706774700401128480239859628026610577894750182403749837233371950411382680000523279426389757590964248044617907051281455592240413816954314646790003466430695646985370021402256547898715820768890990912278438332526248781060391785511550927823343348535672255741489789907615164215858782638131656107848930142000534602137488024688756806734327036220351618556464589043280924807549064942681723223694915414794810354136619029749382611310146065606668881102503512557169059643667671674823605466496923075699916522434178405482891502275869262177411557673851555326246779265797505467665977940674596029233338800288658839906947102754555204371622764639642721084611116429800160094174024257421289856259310414439327904609054115111160869576754917840151588011376664049152473033549891375603742511587607127261988482196081965494015670332221052850972227113085816153411458897504182214897608913895509812095668298494547682626801444157949277051173392386424666736128235102399012737231268673590251255648473010074523396883642825033486207034188583263796133614829703873640906382189282876242632551102584068787719920785948344472515702793650058474765800853662993664997996229823261809973205153227296514758332274003154901987924993086380906136784608014135886876833937586714988267574677819163874538603126110509880686754005925281395670191550182638898454710863977562697880264371780414001543405568085098209273786190434969748682574121502231807438457720975345826908203425851342731516361060614966428936894842912779045304072089532630504646613931606508415215035559142384474826517437703480573051944697007385491455393615666910469151963269769455891210355820309074717231682734618206664041069873148790813489174226545855930650229080832404134627701749120642994962344573667749718331901014787904568798901379661115497393435309367502398867454373389825335873426246033248645302740621380468409153203003722528489587691152819191212242808291707430814130838668871681510545916546530078258000215404880844094842925494396952022665267024112046105754785954140801779473780400878299924990887179423929436977931050741232837378167097434131510569300383414188541232198147204196766385635043406170864182319248922646346897965396256345853833917901747803700882419214462943360127860283418131971578947850702659795394398011569652819479897083927103894600995132735385958787932506502577955261228435473527723210573697417014477594976695918269667078608511335126682521055238242710624661827800791540237625076674786540558224706452499051027890607035052695888754176069137616565744777029531012028970943036502476918273342248462878199393501421379839746080675701697254049897903069094068783274351444923220303241697969466347074105108169317028157635583115374321813209686571685269942205624155365890017490619969857265586507128783997735633551383714794232157029285523252327247889005635818691042338947006212845777292025996311059519401755859081449479069939022698054960321231528009360242374541969436229435933444829313426268245342722263438439667658837577784491415360278611331736577040605532969206093472072126376883389151705639627919049349163370876130466746282055160283780774247598419096428083268786691501625745918790172252234397177447684124223726574779108763065310953170709749176422835751793394176595728689252778985304062490295570085306831040827622237398131540840374477110125318243413595027319281123211449834848963659382447075888036425026540487103083697027381573219865627601594123704674608270273638305904927400046789528240439745908651368084029133184162369070113548567855562934813606073539821179307218394592834670720404572290322328641262913612190037879332384592445622339208113317287638014660274654274002008601425987808534415115251812617309682208902913639269780399350193298603660610275762185902489944030572627764957594073458133337434334221767633822163240296601864826060055556921741796519801416739483692325923491019598910796667626279469419261279044285056842697127477934810930509361925881372180628153481160218623756696772144319092086355231442199993292158903948459416335467997996506973829496878271775009348182113677528068334794657379810899731243150218519467702271277173669793498670398831653862877566099501929306183492025787150615011585928022751152374674469969207206473294532293914329790548138628419378095068126107412013460592109067103866843643119363176514360033669092118036600598493228749566595129927741687174740633493990494568344156773468646592954706484267258222176208916556606419907136005518087038128900627342314009063386320707072810916637016032359100448984884151312820121828009975471947375920881414272156165453275748212316146397672579370736900999843064602726751578696748377825731984392630389564057982486248200268064779292809659774229496696922923416756379643139917185919508762014999333765388791035707013084837071174371545949353221738484312401273889769965398428098385024662377241853296176178203332031924949839213832447310320604895081853775300742236460997427537352742207903894822451077453124910684729492491313849188470492465970268593251816617947945938256925326875370879834374132066846644571224272313740490030945376104858478889969166998028131985368249199410449019476789348412629716813318914681067049163728914929233654165302012390243553612134323564725033789570018657615077910814595025105681494944512687415929818868205250626544483080587234612949287691116705128375249901664682205224021625669250469182741805906156635898418699494896254968757757154535322510245952686486672728985654261499690863529280055275977131634524984132193007119479629979579658640103607724553600888495267314269702255144752169569953552676263180036665143815433264853547280131474772465161846138697089574646639568181028898122058183606918204648944103531157610654510510715434136649732724199792163949709319484252610185242162702790111079885647895737358458999739164616394461089620078551567702856550950659937725665823660226741698439672533023134818944633239733815152669135472866975411126100089623974334229385860866579197130259977085789014619516692931694155582462040098412047074324239386578167510476987327496650923398678969611737186663163573162111465960045387125942167686763243453833003911015516788250016057349330131951533764332489892437603774655996537919806869883639933324665712274210109273216422167243160813945739983729941383293174505871952147591435466230346662626404247272171286387160575796889502035449683784397427377335569462532832952667405621437069167714945957157792976799694636327163757182168937040922387781637922792788124700041484092595639722603951426088968801793551205342679409447507534922624915973931247047346098674269980330269040054698074037449626428085927659226769090149629599529849565172534143061809490946350431405916331984652269993050550586546008546375112429420927654061434393795398087684114660957373507295348974428087981223472835111205118504261999812359949081126019211715817755460138136760212456797657227110778183167439819953948722939841300146306891863287837100366875932054292118348460162789535490589136112987915806258250182359651419763814896858708619425708121090883941238102442852336478253575981126863945294237692595345808255182756610147702557481489392366707247309310033100466873519584188608290219800792529152014535200522698142320329728687926086668391395616046149943181253215406104665820984827729779219259155073783379716356749707759994088415699121728742299938063604699777937142491216412458752446304984857843223719408110746507516561935826811243617337953128048070445001054204599229079179789522996696297300955671979387300159557064856146533812649706557746958350836047150971074500026525076559130548891802601205678352589894894834809984362395911370595297418919585554442539437278858370430977237047843799436091068210020371060453801368877730098367424116837485613880878918333373116286432989553799986672983619866444340923678549971408551967793966747159932711860345334799382836250546622551620470698964917756701630506210457377481881762510981328728003223957874735644366804768141109396366084449507115358989802906470680971173556880347310615700816971000907183661599174919122894755300889712076435746099219861901053024502746785436848653534994372924592484384006577341452037483885539156950625989313811833878829230062601755278383966648797427122898209839605555410501694648461626890217927346662296592335023490329526574461433523245159762254806660740700165950066850439821808783196030837259427982388720836717456614669493044067769262148949394952022850620584437900209016274458179092571334713639891002773936123146252209952120115042147877191535817389842476604956252089997540582098793835294512924167518826614701193074945245160734607989086087885647111235000216066827380696242484689305752589951004920716351981748511452453880302756610442152328378497497717194836278144227955447177909889947042527900614224498895824024321026848632759959811891581100721265310847131835951728091805957220195460353129914028603986942284184984893219737562881214627673675644798293706489230733330075850427604478839675639951273072207656493267218419601732128609501355112193806082762933104417657837890518314982577383158765099118749196068837206045584606952440287251436296458431955838243107019502969849024924458410343075447118352375485295836667450312133826907252571763966296150032722335660971216866329345403830949967072699395088800960537511580623884446714088260880373859982522608462561156799958725540997849084849713049419316322579201981985813923941773570873588068978534549456278453016426509724451104464577695673428281622340475528797630793291551185749903019113381661914237496024853972583762268832649558242539411096501110135478375814376191309953925235540576920198131051804707484593128842140033704235399531368690738434005848552222866691372356233670077180567908357554492310500394958778455778004756971091019777016062424963168355435215836706252440658636346193480392874303035536703639592149051803879069981068850888888668032097363525568142750204905209220331230281372892750788603865852372123741433672989330229239529183109423316136901335946814096555593362781977522011896590901836113823512383979066912594312726004562318212623470479203639595312436271482669758416071060184286519830516079491940149613652644768190450978598264048583806444548489420814313173886322449823912109444207321504854831475046210106996838878383160101403604047952629103507335531367344324011147424121335873298197368467227142594009459242733091599260899050972221521793265576175254889532209395830229135094401145464333398807105014622366478502260982611023000682206542923620989604256681578292640182104009864681131697214055893652720241661167902172336696597208725446965680877902713620511210534499660015582679501761098365317226246689013529556894966416791453576146807301673679298045926799075838243874933276763451052886936858981316202184138515395463629650738087721690969245095460558511627635627418962008217314492380308026665404056749075048245705966188964818319604260192996034117888111480847706790465070740920128402968341484642615263745718088058970956194927488078130706407001078817132142798392546636102458140274579713951554962662254815786610652456734123901281198653886617602452993323946251057699303413402774309459569322974242462976758058507008901344169719842269907195931043657284615137431310095276140950232302702151140303429381158627036176389183766418401059388785892608964480400833563380599972570127551449698797567666703465599132973883697871124457892692409010583298549874727612806311849372471230124060697672504008140635503666772858952983534987206019721866017883927050700136947862832161035903390630115586713212558905496552568113896476377612228145631432812313406061594439587968685525172819218096662645048914412610995399149023172457269448319017227205768692455412750595921642944930475361490113416833679931400930097938279787106874549335658656674229503732198634728280088519087869734437708330821988369146739533254803507554079681044661752270616212161176507832472958627852909368652921858698723164427987506389300034748952909422468949815446014843174180164269209037892997136917348442594861487789609603781788355224703459077759934126488891599345323847012910313787292827878747226593112823187499380813626181943606240928600567020555503674822383608200518162397293371415822505196403125166575923059023061597430900704277305817396860175473594389548105162259236386825812647654994753646648977423399603373323198486444796162818487650427692723140704060389403900824432604280975351222509931486049392849914932065742930214592668445435219663640662105822752372586505591065202527166200017895034521156887366174909073929214379434195692885738167645519653265132440348563917106693782084988141228067326467750211779363722149707020364635205351912399075754331719151112796193071694254529009519180154995530626535408886008279769941908533275452046028306540129701023432272673187008760089821790486375914180894117976256854426387186635284550338494457906381005739933868289444014463102893105255617103586202370884104046491770048606094274969131325643776554876520229912562298644550506505033756424049254336979236360803480437006950838389901404595679019332293751495086883931940072170180361046048318878545139312718396382305758594016496935093922466958154252003123118092917216214552705150389308084401161660667372579432926403464590066405873102366953527975040368534260715846465064579984008166558611125565737396108955640940833469614290628630200214497480087070148134595682319453230249672210848064092177029502166191046317259036079854267170511237385946374687609118707275984553244193096273470009725295454070124063619493222147519674018883436886619159799482547613352756450810094625908698690977473366587050480677440925280509763445704386105566282773240793600747201408173393299005845230626579436180094914958618798361553313806140741917021141771217969470553950811761441683300582171718417222942097504910966875132865775095771104191854450082374757555552306746656863889645099404431640806281716299505862352380562589285959834391314632810849919540690873703352280256322084005251902457084295796897943837486146720840218752193356147006554312818240700217944965202433381754728504405965677831858905372071591760281749521772628418014519337055438121914905561217671097654508203364428576559407398382316170931462208144011850834476818832928356130054758967759017129876259553699264383306828233456070719290277617771528360786421618220289149569609899335514908952997236304265240451015892150461673188925308205046086118786459479160194068598165334418783540680914196350719042954429506073987128128975353503423299973809625031716975216398001093192417284454047400081014153411929899868352781056342513150706196348581357454272444975992277244564999390853052689398809128446485572856917365259603381715437131218406588162783294762747438837371035656142022356168384006471579243742722503897446543911176969707339763060960413467740454521604265096633770213809978465747057295410604066917297753666241824691703940707128577414813469517900973443290513259629484003283651889604355696641475928322937631236609620413331195934183904041504108383501004637326871530825836638600582971397743438371924108056704520598001242471368916148543055668589028541114052790459940739501869993676012333282031568830411578689195673090908815279869380107067689512111219082851127362866915841134940100162005964883865026391188903732253975663182032175398547053106253736398170199893835178182263065246728272825895458095131807847300139833850903205259108860956263333277031623895191559005898096367403306294583421662428861574623118909866694282957797801175613557131664201812798318791766049573500882878768988356239106368267888041505468205019725541102996890929521128511510789157853100304240039101598299433552861390198028883724265958096939922836429978652708939522413330409023628452279505768202765865335551190046906849208222104506364615279506458041305673864048057740401216243341059925644185322650092908126989683990162025509509232713332125003743979153916056407689778296661578018870633858236839273959823726834835711321034193438151397165551322681902826474240877817577547294147499151075141315484698520068234557347696431130234932782708618257447039051615415461811667667568242204632059837051597581563557528781829618367632587418577327332518652455408896748759791599205173507937140234581838717070697361976356288611329462461745801136421902977081240836615306670273939851328298028545509404644341937027104300017634859382842384270535862601178987675071891829738172256790017916115311853376901862250245482629978344332163632477750808371249200315300331884464101907232285838441771931300646911471815469967742995521988557958446377167788437325923502562133718962614450035905416165572166881004268941325060194304752570374592322880217766984253406672419890693676656629430886370004350329606139415041220633240974177066475387339593496522901049132161570098059172876257136444328728645224562238548807501191719669620691418704456420052036654995289779781590809406607413328577138975489786155342984395541712549279632687255020790029545813713348429062352595107899754905993101085593391962526958608701208598813405199681450889129983363424197333407862244936238114951358626827575885121712437769238262273019498458217849971665769860635036887829153070752088502676562624547300294308840621176587431657259724927486317561584778629585073508312853140553470962215652421593269244279396477090887703462605944158397527394178341057209649988749744789189581254144840644030301806418433350832201049017696795447804418895670309434355778538267960268106468049753846924387450261648214054098891167535018626678274530368244588154781503161376451111876887959585400118061180533449834952672327420812581873193579898008537859266806525240229115932148503769420323141374416161316364061065564022476024256599098225874756709182068019648274666837522822307172347421442141036290363783528719062132030441992157680091972267782439396381949435005106341208913586500308887115980199502504530645271756276443818140396411030003167962729107621284816402440620762648451911800678787592523069723775473310587469907169982774790107388915307018546096435117469719041138880031157026949891220097201232013345012217701235051838174830312893180845864738703223987430005200842716988016641169769686973855952921554655215296725026146138901545131322145650555795902292999297704960417929888249207966088839434772645669370393462220082099404527780356718537719634966919325255552439508969596796865834810914316830351777912920322231437498349656911552294130812875815165930551170173536137627841538180924101994430839318312540381522563456947200431575434190077639972259637209900852463299900497697646344569487221546861948863629561493685033204090276608649020809260316098463969226257323436565334640534290153579705621757288562093235752275024331609228132588981490999507544080202448194334682213247774197747134913824020926474409302144844676838586487714814012878165168268444163848610702632759178673944977760281038680142829214808275099274890800199087600155182953148005766128714582600952684168465305725536597476446158839504650537904892016127114503170415690218579758264838091289161459488767614789297264689553885079474576041619479130519254572685681577933633980216435539889486915611998321613226867707779075817891490658600296725811330179048141706661576892502647134083415308697869591251447754239131456727695933304058611700467009474968069890462626600589318684623767938665355263812802798417445794502314540869447972992437023268713713141580582560979046957513459192652054429422151447808647418114143795075757793285454078018861510374601946675070592140438203354470480280798245483261449207684979045182453551969425546214228349689926243845809527068157279156099419481471707696431129661217362930938749478132943140097602775528664982829641289851110480687502284902043925000249475219627222380176072426065700494505209224749636060929589507024234267386321321425340362899441572662301148044814906139140820799107219775985244311222231331835647876834657855479203475898769290449071681907206824321773910533741166876250157231495995798919964154653642935484318488168000500925060211226623406806122809931359009178519580841056681569045269742942175232090188027089634476852458726602161203697170537981953590087121261205660235131055988268223695020263983103392013057744059457366171947902635154530158666895998962327112352654445635464971717543120492476369224398397443235783760133618931240696313856470840883082870789830113939574673799133778919927854830139295765295112652939834970666862292656166112865078671866546788115517928450996914320189845791334678397715061747641288018638567147826290586422457893903581329244997297175015590759318184875977878456802794835724398487118754795688922051569226566965763326777928195792771233335442884994273306186929699740264246263840069991143289916224628051097117753783799037764683596306207156046237133647821318234210048780317376721900430968189020535773452223768796103474856186086064744197411174953388630722834786655745792893810245597772665018247139450568008056679258572953435737302071871609103902596530833909558082385769413967429543354187445126908350933441395455448294162235874784266637778156083330369451976740089134734811857639032276084637828307884987939059152410625158063978733520571953872551773013980088001669093631819166578020947528375891986470423393824711107049519775705690214094888790069273659388809603891279357739045890750969618037724462242729675576689695980329157716588351056071288187242446251070387749378312451462038467271902375655475730289537511207432979956546152525072894708125102947449650262088104458869611084167800631094178215971372398457867809680707022904678500653620890626258530350915804064977264392837022772092887169665552128477553382257183420149814213045111423130425766278954459161527617718970181204440281288552262464258650814789126752051261632625073636276633058809648651633793320751638636394162850113877677782826648310952276658595792345746703072235767628317416877404624810107573754872850393063757118763537716838214818873790804010576471833889736176855666126049802615882033613516852637101598607974913399711087161010818415229147760769201252457993953036962556410520737760493646142551863429759157690126490182567400366593157137141822325825805678609484543711419417505429045778924204216916828904653989106712054688755724023313020122304112265127752160859324444209094393603229449221934451779276386910193973642660223199147594186497490373195152052340430158275455429433748159740146913046083661955876568336166539220432604101283274460601908664977800262448118285648324444524704838072545770131711127921384561793528047455893553524393671565992427263678116294156060848251843001016845772702870858037764680526247774405377611650175207739248560230732326008871054343117742830316839107694540691531198924891947751275948573377482992455568821629796854706746312012289394977577675103078639125361222731238133681409567682899200675077714605035297623246530066849872147010641361901053384709737065107462982600780297108537261975198857306140997818684796339600546774862866730586113749172422127246791365556813145368345644003547017093767640642090697002256678333597628009937588200691584808821686637975791846934230079856957116262322862510810045965553041819837120642165985727962925217853129206988526053980355035343304329447965190762589719560497188186990004958031064051712397182960054544279427186909158972998999674976525639371391599505827298697732040315841971923907678376954317116332578049834443531766563191461782852305728669083725176124266058174852955768169547064449296335168098815893419765009179360200070432691154815225018150070282032956344537101447393027032764742214767706616433503373346912702123178965556188854156457176365015313234905792164802996017086206722910285695249432286637839081725509747314539979986330035221839851361013935624892988992824822893433596395339584180399758078474817579289861917447362071675187028768475247611062758493810719676539582925777571562553335025712868722995485063107368721971177682472472195778212290483504492326163884516253823336597505149826824617340192197878878811891026943448208790125265354398854378777408751535577894999280994904302562496949043151856159532000288072723649860684380844653069860637670641534382153211891701525026944079938127899204743910528378281380296993667128209249711160772357986891279521193859360381890945581060981889976546429180420760118264215942553606947488136467136441798348812787926151612345919471037027612214013810329220491159352567677981161498841617598417324398538702824184285238520698349549515650087048994184339171709997341284928154956168637029027009181780675064689469196943084132150921069295474236862343047610909667880950875642699433589325194652142712271646523761513602731885961688512608347361650365605769859676688434788955552063835144722624278621537860867708651984681283101096096457307881036678034119454709143699962394918109297758052066534122377085443103282898445208815291936437793360846101956736657395442716464179561885321930982776756124572792913450255016133062640735462527776380298310369413311771678036902172259189833960315044357040289330304272755533203867222750099331971572087292590403784075283926283595576639712561570896781600703026249124920032645744428898587968408761666289228645943101593975766835612709155621454489565801044604515187861131076059610674904833749925232685833247581624726243301622948864703909147882759590727310670968056542222673931098162975494450212783826713761772284537390417617610568003975019846461639238196755506173398734414354635741238684558186516067302064032113928294400708037102683312909491128563902251686256667085771269437434460793961815602438077692091849403078680897698833281504118911317596103236429810634775779010142041802056083568372045682372145513728875668914203335642379120196979150258980019232697955726425506089087870618962434452638200608634393568306016916665470052843420205069103815361219847252451042721705346657250686009743585175116902989688261035529044015038325267579011791142499373169432312938759685948775144518096012486543722554635818939541245368935110458100607263285348145676480130676300082225961303321232846819864063914363077070863432747461370331529770789260137869991960179993524647532744860444415806271358779703262959688447198120145687321471743636079002690092756891819650520771608540834570977601116222899739103945095331727092497419212679818582426706557228882494393859370245371493032267948098297897907474873638887933111470668317320263149235735084812462311145248946746653973831526760738005149644625568440588438361982278384850802940255389268483936566408561408836855574597435422505068093397489781377129155234307169321460372097716157341173653756672562020390775101333479273511352286765045891229317508200251465192234988890468467432306667189857987343241272974854347378147951161114375177756304156545062420317382010857393432676770268236068163909982492503735559347891335159131048684911073232735255568827816805966092282942595286946530933202452084155604393037008711914866525740800020008163850289336680449723518510135711506317253214404392458971897125307939158935958559902518837204665457404675879777936846418784096425130050843384051694694774906712004176015358502643665964714342755878148918661503177715866142781203852045148225988934117494468573394713056372957421547974970007951836564386131177681869804384753113592799981328268597149632269545208263193560269508135142718975466447961757153455306693223169350388835859659776002829341132790548178899651335826591414358413136872086919785500071916417404220025524814002733602341110635131624238456281007770486505053096539296323329205985843953798953684236378511784375565483893248583817393532652988423598339589808756314777134439578152145415015947636027344773415043240790567934718374033534640588470575687219595520934982985166154560743871004809465550875089006728230993436167066642697191419380485906970196097228426693836824590945893337028166364880985343066015439356269125083558105505585108044098238821603688269054517258924384193619022059215841999737461853645115565003028405160320666105043549921724504951838008751071591479478742337692855272102536921035648963684803716435113748562219394699470234787975677058397598575703644195093571098900690387246760412051164182297346258412789036881598771566974575704532038790691204934096530226740919135123291581508283650060654026027704167404211474861978501839125464163373854608102607345923493015552915629980379680215362908861968717363912086415731725108023434001974167607705518059966538651745954916123494475700343897963506305001941276496528016045390088287724547794094333977571600035703033964351477972620329424501092338326839183412902240625095006691216761308586389029341734292567762952930204343666123336069747105699781284661596808969162867721149232029578615614576201109256082557697912551961228683362531130819015999146785801161508833208130291556254386892974886343304965323451884088006514390561060683816997859534224838297072524572229321828615661931878275826109315298265738537493952332207789478886735108752871894815379587773920561821510388271196192332208683486208502671101237282204118590918375756239720404186897548316627864142703167956598009550152530510388048912976916605954969343528415296752215117031477753888812841897418262659987039770076894597839021379044836679695087116603198648783336241432785179058453936911148648693901769663299258870381931044801546486695865075854979419337637501285922516159838539807811990312651221124736708927126810938109753387454936268685082447494871312719676317876963158896670871653502769607841871190193988037084481544678050264582509302337013979474981483744834746571177156638578310019789753863107543376280818782752027219887712884171344336293750856198002906739567864929871887070677410610463110468665852004717616464503693812416227599950743101732063725235090715767108449621227067561479813400143780955368570271346650976631532144765666336444090415819451406170199269464219392371926162711173371372937978510458149124792781474738606811419319870780485489915968237567311727361234626295639794732583601070698830039942607952319847828569372443165220720955195871848558451603063447010112301658330057610068487623580514401597237527091634542458671634506889799275695557294851074192992938107231408994768365036229020898823284838633694076539433552749551460333231708315855358251053401825091094610218876894959075630358394850223393162347126323087044884752910570860098395581281802778068549458485277036389429679569287686924835577298879539657995331508015142478512687743990719087368282628892900834524898457332253487770219498009682405287283777054022089458512843314318925613450197615734223316588674963099918286320399224456702184535383899226487566705130415642956659907140652399354870753572724235351794151829105231842771111916454317789339082832039116368976633371758950247223637917660246052140553810751461855496452943707343557029600966652059039938174232916812837587025094669687626406986563097338454268674460238230131826729205450914303804613883093627159128662751770025526634774486505430600480586534389353219646931573596806492745575725888239510012870478383362956347724876804269217994670353973710880426376140770816850085466984265884417003348189867211297247940462693039221409968598134294584558663550759425493764793349840768103625561305972216477607595064467826309475289740164037999818654730244873473739871617448117116744306890318426742863403923063603240968116972688636913007036439343444266263651530687208541965324823375515620027035466574323024616773664110102206153282871164084030216467718138913046755959455633071853393040383029184265184040762313377140997164406221636159101464280386277148536983847065057667954396341846441934989423636473555147075910930754601850500797836425618460989242210064256047758780506496597274572734709446524094444086524321874356245513092560470198876500124805365152467745862795381525281608864004743643419884056518817457375032902268252601920082599611453794976706041481637944991838230176159832785425461926485457331666682297927937115283797540891774686008244269306356902530195318557716919119774139995184010943249199839504934830796032616284857014864032780753912384297032978393385377887016748145721278676264521273421046499028978597996407735851602786342135898376177150181988431387112423059824269327648220109317616381360762259986698937161152056918978983648495001392427429974887147734954348619194452710785499963839305801111747558977494982472468312655692511310720644123716317355982610976995034399241799716887599107431136016974721930199554934097330950573885271219992744038488176912614389459183484172796563406598300493376047980495433580098256810891818287599661197812592643767483933451114666338133445310900801963468624353807497498620842522012490484432181667232476358250764279105703588415512629698359390732282109049187790182660659028148500509861326064983106594731207970763706590547126150086655676608916846437347105346482565693030007698876133051201103429392562623495776755813879797813621489145749152255272455239921785516903298911797193786403256385417206239787286159466114235236561819367209007399977623580878511257662209372901035062106660328392135717469535302287465042359231748998499092103641233526540764445350313394021071880484209619951840603221946284940317966628509941285222322941007737410199217676501632318351304425743983539922682009941345894425602868268348861127716813624827132420113119200036152628529692511514160788082205515562217422842465907405263851134983148918099692997375989935870794715165977470700531109582003086800354201233024379821612148259793629734928255304342306974042482063187737982947207580807864514505762251722138915373597269577216096899834173654106331319413333353700123565042840791553795190747743891521381356404649927934457951666702675437495236418420898630050231172738039966474433177743848110749856035756170569586736289335459451499422212587092137020612423362577453835931658609342690535481962575469544130995656150890044833484659535091948431366535596647464705634172885707305446943380602852380388173593945197041030143679285261091162326171225256566437826332745454775318947606307130285069347351807643723974144780104144791350607185651387041871603396394007186826188012165251309096421691912845775016399151077344057987547933442510457419778378143390190668386678048790516826524050903314031356589092618709027789791076607065344660826179323078485339533808475221057622868044081062700400556403863567821680733026308521432426217115309345383974423101708651835445017076477131306534406583978151250166820127104663309593970717771831167612559975341823147122903205916613727609862471568278276451375197629732106438721898147657829941297816427851229287484063581805816880254418399443535419519560235241851921399162638002358591728257606548576561154149396407327669351072673690760372646255613981331996149833827535451123075152042738532715553340804007848369221058494479634504094548183596528268156619663486010370419326894625924476174166605741097067082949544031936179690433822213353176728159370706420907302437537180495273694474620915481687832939723931221023930850983402197283878095889614435058854971476862102996812471171351635901685879764382074105072778448959083918659357436935188603136145694502579468655088489079468615842595600516038785999527801955353255495243191433389379435761679070592514375917853378479885604975352859986284679022174437977338599783094573309653051871554675241943271852609357805921230387719769861434473941727360267922919175272818908901208137709229568425251897313568203915717375107726777669768152301846579997236181120190925368893120011734065814689930354598965148776878413128261364146491370958981881300943429256424941921515672978318679365264598368189930527197662993711396823794031336632960735769708520961797295513420242738282351679445225944434886008773309649165363200432840390548509209374455349758004073345383714122046707872396526497014235138180055848258248585092426995550157553157428841227395523644896134231005158055449276730036158950240401788212833006673735870825535940506033698606700751277239597306903061059707890052114845075413192186705648866222279869059911162683011211079921456414683164087682745461649842373719625836928415561053383913267394101052297653741020027996452876623885284493600035156117264935769977426106064702525155150413635570605579983222438820284498579826150976136362058546763232725176576022262081376210002309662659217252035575288581762017882277712223162737514269043690851533483468610313586243854712384030221056004391330787640229104713926190892643566181416356140079756561433371222522397363413724774554047696065085005427617565300641525166333197330503451967440948287293579782048649958333521065526602474751228781313524147657236324305769983511117414552706974831686284252392483733597393688569602713019720979500351718880717124776428004056241032202338926334452662702567479881083936463575701628544687335779748806564434002808457142712000409388616027267162327719389059319811453494606830590138437466022085580135885828764572484807555929159671919197249052531068543118521813077089150562124297457707216712123570201912245362305398709305189058394176123389926909078848830885683447884265130261619890948672902037435615993158609760521330000556760993033089882636318815779778343579672993275985395795728894958341588843142945034984599581197183054371173880551556831493921852507843682915853977163241762942889018967094953820700324413962917902657958899820086870552853073403093742633040879953957277518894688397009397185941331686692318369273017556541632639777792924433747317640470844038464768750478511676487153572725870628687880222544456163917178469142490309442688206897750653139576972635111831332349366430322507811276354370792614635598073373349933034959275379874333974698899264009890204733093112462543217008201974711881889045673013154172959952378612054706007807298388916839932438222170054164105325946620114492504116290663089202655574669000085822541064939772572337087965505679936240679003733500995782946727873046219016448541321276107839616933985479307235171077221961118760766571064600738912121781798760105710195043727558854958763377283730349887510737701783876541045318527978667308471652925790485726466617192076336960150335871779900879581497390318634062046364976098303500351845241228505468511994745888021477934794154322367786684755566755061686943065860540859608300158438168884732878924009584888955167857606831927857509216433130927805455485502837713199160796602812214768747078152583129830773454294920938258728142651275975500388355041230315374270536851987983216960717666807127178612026178212885520342056429728213362620445825989140495418757364780802292193724354433275408551992492150461166894983078727122126410745385638699847370157672943260415905617290871625343580973524218203144178716005610151811565998856106759048727159529400153486723618074131230681849714695605779616868880982731916640883730931576272168999505578115906036481475234358400507917903599698682358466335028292089729279142917689695455000018342766194156122510360998270656090145819981183433824781685406299721667617859177407304540135786041554626744314805021138227459705426203621647672145976130506687473865878324211998322197712238957113417993866365900588760515603834341886969164412085668506118957063492627702463429490149848308780886423839093807113084878164524177538098123727256940537796489099654583485153704388657515066556462259325560698036059346782978085879106004683031278919437224290208456194181053662519747752433418519282266976563254369851796128448338103845743883660322085346233300785105799108281635338757803017083965199005612489251107482825218291937144483337354411718225781958682131049733467849984553151995021631151659815910300624481759890136693093826266409158089659487035070281181749871662056495202709920728907046264275458547306028736624572041763945765770083372571453656966015472398220868746866836093934408422493520778433376063466680939882698255242724279931784185410406791240601003865321082503860267143770170095553772898739941564697921941604866063937354123156208255358106124911890148314077627632636618790038888200834176112690768905840804688662205049383006367135686613468836941767487609762963719069838723274940055377803432179228400634699279605566325125054330809974907072855860570931871879533403584390074721119053643644048532549114654553835225797232740130655359671677364419907357885504448806538118954403414091723375756469541953702483903102378911878127038224224975884081878852647182973949992562434528400868139051536615148508447176290612982358254382792942370409609394610409022911135070588740830439217888479429972014983255830686947252790597712774725064676178884092875907371228202492482551742310732540694829403611529991816442935911572194460319589417529015240680130052694341441726885656931676173471641515842706612972569848471668751755824705169601806739849936476162308910065907333988416320622230266562661335599199479487348165631510910332604899657113419391634331264059508172912787545044159191413075271675832439538337216661470128093906921527102673511416364700117621447771610409576341782331529512812403464868382082547610785379266161523110211475315138642007294759263395680023780383668420005930217302065944227214552255238230204665844108293258341639531154548231147229293949142517864366216570092177757949201176948116671914097042769802402436032154129813108397173065659090822993075418623116040701179990541534862152337205686805215301679619682279667688811570909783211193435515902379168511924598803305566744839194417605867340571973175892734100416037724212437946447469185930835189923180208814293308902151723183868809463373260793375526687162249416729812565619815360100417098928269498691756132725723358772884048588070470334536842039624278785882095855547274596770374548570862269029549056522864757532860013545281069612141469850477249645229572662231109369531815674371671105390787983160412952590861346634128332129464132441863150349383523622701758074585394027451569273453261548907816437542813629721448379255897459684273404670536192797968227957157074283245326420752027856361608610718526176983515831245578127605891304376389085742303997340477172247479620321375964219536731346555765125899959637267689054085200420065761048658775981980620598706177821230742056343030852466244921840940687742122114852373442795052694851243174187693442822479864718277680627918682018559256962405942418762341528870412392534821335285087616869696861308029418390961516132122610364930444030845971289878309704223625586126940442843177642847870688550919987355573835834190326718492080393753904493518799750903699006855150454876197930426359522783477578705048969176610171406325857562467801104419185989754457461609237165152027709788968997314928477336143721517736067166579668980623560347093505392446990478585953073320651436804388532746870861661208394583745699888268722759733108236442180892518760093243761417321200603498325840583560375181046276670318490250098365819382774025608314933321508885235267825640360880260216022180534343662576089422894751683396631676321417470907386451755447332928639598139996649073328732370863787999990316592588796174999978658556770980243214679983929236825681597982857383093566169403992791260885752577366141213093699235632959785287065678346053378866571694132787408430839400875053393413423594697868806731087546378363882391233109402274921205027849433725670775110248622788418694903967689702328935106202672518487896090402364465070790540870055386513590746686956564491362404653242144506664395306316421560292705435917106142745911751515506411579730649095010714733845086603549276248606500950623214880635904719163209559908419548328434751757709065782968289385419087070556399618050372629642551758439781761671515374866527591246063986584737458010480079343551671333002353476165843928657737099914131895950976847199336083782993593974209900311833457881059330421248218462117371030519972758637354228286173378266621519390064666250143199394962164948560612019659587340856330954656888165082123200089224907430300975087084441048568666586469830659732264407928501768090861149156136983926145308718993261167889973621057159892545855635732252533648144081013791877637957870893261747257296266321921726324049580065689467457357787998615406502571381502564982696459352047189170945817918257076365098486857706953865806930898331916989389343868317469589637340887723798371684217893367980705449246320754007059368934681871071508227491066982436607506167921173637642132741861540803574052795440988544838120932624287546618005393302200119174175813657892876262056712583915459449307564172340936061267318475495933312882944679489079721918699425808029805169376196998351973948919427443921905460692915804444836619518934934899137511212594846580714353523166780092933417096160713477046023922133535639805561658588433462573170200279031897069168387574400620375389843809912781680846584746619435175984844744363631315981082642622757604166031405861669851511822976919192491219989533346055075876004186152066029876382612064207522706825653292049810251939498656499913631283340769791219878510873712590847603143183600686067495782388904487750406119559597850424979206153866559099494973195853586688501775800851286845111727158133697160361533113596036236686057915426944734058728456244379025511502423759814425018487487155826853305970413487511958066996956876201160041281916262007564536596602032867182952222130090802800039574348949385546793234566663884504649542723404739133714758962646619348013722810985954457176411907040905338469299079406528053230614960171926811221617193068645609989811998602793704047308002724163862938174066605575360003635429219414446558560316373431325418780998611505949355753140131371413315472443156239594510379382819268851029373101420452158504931388510731672989915464194784154913410657487305801451272757473873443476469175606921639230102195077311096708438457702201418327078556737921810337943156604027154279134617490802832244929695775581985371497150469630119177673943267679465753476105880497544313542710930926095875718662299641821238499935402697162354100151851396284607930721664052633027634551395785532486675895421819612811026441804099445388284544349097443594041591833777697118524085114284244745992099693811064146874796607871961297843567011732235517455247657017834201774600170089521179414280234842242646336011130688265755071691896410485075526415583818459045457904751281788667357023165731170344416013745424753676236510495226313106555745250124534452826272533311020053722796073273006667069802390537317848008658080651581437560991796181929765623022690090031288438012123027684779494891128240035308165995102490879168559591677484248335716760190110942440501721859390560173509849503528746282542087464427239531357243001050372391742957084790766074931522463720625419178698563050278282998847898823134082066029231731100431390853175583951143836758866270274956498035963663552058823197359579927693895499924297391603616987041658514255286118073581579408905708011873098895488917812102574533000039460257200725449422863391723290675477733057697834895673834230354339297013262026108630664288870149412680254637499196918601118586676786100574433336603731463711085299453628665397443269712839015587298853433839297916367984855927986091943333319963944281807104301326386930963756914839096816082780882738896452849701582798909702794024070077016625609107212086828497171931997045164595266176740801542188848887014792687585361244333096250350592943308607052742687310823859595815800204852339170268752805943477200671921377504141682548466064268361091952490459598803929823136507667844845391399367499515925207734959722914969658158331764049320319496714730667393681589961439156950947448430346522742179470922641913472486857405664503283625058610844880224412836470033136064460682863070348804949295671594565803340989700640300966079381066276502951741013413374939980330329484035537497363106617092399951580646310952043432868978490664416577845988386629495730686466223841468209990441974009154784604372411616421909727435862393552467405433970965215280214405672747505304086539071505676356691269813958396091411489053520478416774790519673001609339136310475090973578288451216236725668979676973306657165449784217272249883336098855298869664168265153049356520337478812179474509792658076969168964253361384258400877894944209574884357374231149117022297122778265218475965078780987248893972454493189787225573458935947619309217824441087116918571357169586421898946542908490571939856664354831752243430281381787924836320804580009295316265538320844540413261996064211826053028236489045338818903715294929671916062263822363169626393457088546297082563257901717295738997875555337149435475392447335271098385600964215360518709107550726659975318656662448986159639174516612011090853173928666728117532612835311870348224613021377221038721812431323978380503239617472938843544483370911100045461849706631129067760685411214396458080783396470993968906264476287160253325205417525389411809734688724030157777761067906148765391576028255905669889124656453899996974972395328671645563813536120140930360341312958025748725843439710477328432548508964229490335784311224422799799099679820424806504670116823606965639286678629588316128387863507007815695801128522540209116064550727525629982153284832220207829563254131403787281456566435621118663657473030117719139078878865574871111441201935744958300573516904572354125055985259603190382308974756218535896620761796832832900501291108165987522418495839507400016601968207987469667473824893369761650826680041092848709822064820254940126714428189992326598571367444660280220216301902283896375161076911334478158935241128989329624530687652950234125526948148467046926101236341625064042557318752816524344834339617777148327162719781408302452867202722111641052864676492041880263207798886636813566944592976125454114164846721544754796974938102607499973251377492207766839410079881580251827820284914013714952743014802923571900772006639243564896144362739787789192860464203874388083495099903028070289561105294050639989431177327635983684965888122293676034215055404025287535907677467978175259441204097407836202948442005648348678846158972456890832026821816008034657096839037675569758241264043625577120565894245409720485292181044799870128001553995268705675947119896102484015597592091454750031107050431215052394325660475998387517328419443167936864400382673024733072733109038864451465293151534419213792722974914741277845121879154890698081644531845438820885888049748428564195692537675045792070944164410414521289660926259932697012214533365397770052350038593409191883774415779218653853683434547355115600413083946839470373523352685759108059909498938611101140702690197336443331316215842807183126228384051521292478872584460368698531229700453847357792551592647476780944686055602600925827164274482550504848597752875507408644516276342194056337608621011006655586747674261898108947178923699558835659020995593769715434164096200752789362219028806693973624561688297136150444792299543886547790574622070343831848392178657206015922871177025986759736907046143251297543618360540121760390277280204938561122421042757120431638143074509502663020058205380964281558980425212449738048127277768174977896355166001570223650485244844837847933513403788091111671182979617698287649547667553994122463295561342390155739580699976478583778025172123304553746233609402544944589172032325158835564883705716645522058364302859295349314716188354533954476623330861995196597926023383935147530904704409740703663504735256155116111912265552931876979582006339194482736674549432862662554100053691268197440692833668248939369738022690961395934786377120992869738225079535165571863921826011266361986003172458103638107395568771993644930598393794934103728052983232424241492012147387800425138582009839547030313610060811258045828746349944310371597621013972498896570402358937163717866442251206244552851941006400786493765966282529807144557969469644252940304011683221463162444494145548407901909080891458102346007936431444291476671552757272576044911917118538668493954408188018455337377534441756679804387442693724004628087947178830009965888393780005486967390002153595310355853583032317052148691709618629433570708121290454386153687048724904173313359385368005237902097606804600253881415167572585181099835569554524664979826480928200326938075681460006508080251191263263908849452545942631728100013396737631282196187330230141130119588148555973036811252220460191432754607901940966505030737204174119456693566901741687266032090701776575400623711833030903228296353319496120999698441297081901472772462483643326577800393768350370866929956307070078816612481331872159183059933107453744798449809629242939734066393093988705982785912022319673841741232118864039781029292204532537308367857471576618103713631649859264433889541251352993232496391455735050092933725484878585895151378840132686159389276079696771946423671836890225591161543874695117270074288650427597606615510942371923983067932880288665381138450478484346680301803225145800927242715422115758598644274868886887124735652116192791136731870399884683439222684512065655765127448348140277325913423269979488407587287012226662466239606591920317182178571441875073009579298395313501346286598746112627543364573464024213922742409788016448828548309353002835261622485602494906593263609369585512834851851242814314960423204834403828464440631739152789143050163750375564451384897713097752767500499253587261704563795862348327950058645365092936458964836182984803708223488801814195329596209927875809101412121820364571786645046689211035702483581457061909932663822299232170706048515145761757664444804277953758789698789213742357967472968767148207645828472997630086237636163265914239773480542327119196242831504825820359798759393179961082059772984784015023636844273385200822968851569105309732122500477821003232351687269616726394862274997501282108612811373286157165170580318493083991160243795756014662992955646964491483882584296074729856564879372036915209191812848337577749224463444940203681814938976463102402223995103496448759183494783215885473806607694858877716016749609539114713358309958695441635837334077988795290202373227684373124676050548136433117273170998951254498547342034394563630499284752341426884194462248837194301969902990988913682048943868593965017535061199697072720430317598852728449616001662256694501894032310005532258611280698795642142093160488424382210072814093424977115816365434763493442005072246925449914764095684228962991328593767693764733860148208490500500724277223491541985407704472828239174078691505546175314655350759048711454328542324598901820186198407597938856185064242744152158873660626360388530352540011560971137885092603587018246590456072401623509460203679590214252838542679153432804966985812267336687041014095650121379875394418752566433594153491536502724168356198210326645960033918491301074463122157727733786081288476965146405132129029857612869956101592239101401818549969703441477734489643482355307627190024489072602961626873810362079336883516169411843026136364009667974281037328245969228271474541459966032290593084127268160330168004524897512643293448581696331395012653240228496724492457645480036127953557788403177224795173071663572243364619097695593636961034309769525961306053161319151220180883814136304017023660353937363901376982954892652511049590410154696129059578590368421431906368788441140514564185334030011827662439577325200491387872136458407312768474340171057929654606802553783215863814267679545321771212427278119180253954382606691963919875169089166408675559537323428036797997841216197677533436162879827069781698272931540202440984410982107176079861405788516488555014349189659576413760723796217766088211790392087239818578679297195076948059140339601438432546232372929604570350788118060837852300871236781013233380839363738395719210130618468204199031933421174208971938231787365601330658356849809599132775111898711919803611948804799842977102289523090123725397567644292409854639944391098399454202585760670147365868315297343256576085001718852478123382777567135667320871085120646002518706653744048464275063096988559215606896999697914075294002542266582033090866720104559435443922091226426693745955599699493955815231122836156853221804019154798703985332739529781176763847964710526698856737555908796276628284547520378430742464358661836211910997038530523184966043171149115945737730917953627997459823525139878670494008692266285132396115852757807776616891019442285736520292189082577626764887704147903950896266772176765928750972996763126894356796569931171909724757080876621407240920278254145570998164904224446063907725347933120814215481931128573577705118604485877131931312959022481184499771901018808069997213033920911396665562569294330120601125737713537643470910982275181125026087169188112283201907092226541237753334225427030459804290941535004941877918136172003908505364684826551317649139279641805127470024895597077051312814964152231467156939351763221034045515367694438426896287406770369958720802022635836419954866530570709187835311470276244458601951954625148196039701678824392981625812613797494657500934017762995192959676234141480350410243076795840879003237264908529438785071259532590332197034649310303490699663113457635229036777098630128344810415572430095654508377824625693261455731917252157290267384903351950968331975718393239187745688125541837689028427521512335821317101961232373726371511550569000085300562626830594145713822264163408409051152272912578082995488648072808659625273668759309551981827405243387621244826829345981114551990916064391054665528861891987443864157674174131965862863991811002127630376329909756619893713388118785339626322850645440198025505457941569594161595054869295220348911543388165269134109365094181472442399224580277061315992107037414444753284349503000718846775825769383677011938923311740693664166925275906134637631857749929619192970917909613999398990807032562942295241943718629506463957748631350586712933853492502565132105596423324950875840479106754435730192325525473331258173084018099356607601982101494353463457633307098602061212630859420243201062703070025668239706367114956816688392304392448346704673325848797133654279723659554193469333242091931682593025251978742432437947452746655045733173636022147349980717193189515385053121631129177324480204118096476625105967979986199588704334160872197463609095567851959019435044573195408241108140467889012163327549660048357035217797938595558803182924966479175001073540700232381549965122862722092387984366678582997089693521065091158706532395512121860508879628118662240174293540891703134668877102334476826280524589216552228180423562586229151803033150804187253800139181912757586484613705315502128429057877455482879919488443703424775285925911097929582231349289025674698408906323136676899002357270303611031842728871267614160402946030441864885893053431080869544481700632025765084042826491205193944712540534264130414560161665641874895435799860299103009066799299224668490550865393759235014889854944046913506485779913370412373308689748821446575662370922370871224976229657411191482488952464049453047449485837096644541642472794068942898536276059673646093971956904230339557273540700639076132991329335166750230122459678033045464953371656856356233506553299401093230403402137298201941365368072288097860763599523393024590896657546077804639872363001091974222363385181730621087276670702956885540778891591646237763779311980098998952686301273559635569946164297020581930318217998455928489360821772863087065478003616800828834626560058227680933539455581843933038599614978650150649812449690566997489867715513556726353906522565452805033268256286427979210554202976213956504520461370973256125695142437110542220685051156053675636284607867407282754287710948349893933244061308474229947663946599715064239920261458628526153347327302695794179577169418078618674817655452201701082792387608884057748492738090831947806043832218370754048929484262169166922123611060683297998604484944830132235217353897448929434403805161235535664383762063664864277151490874761281904913297906137799581650598954937382344716189998831027351581395722666851788073875170383412916834484669805524755497994795339068243855556567091122617421016584088701620157175455270795005187388466852732687395331460651674210097799286437527987560539270584601118826085722698805203652049010044995436303721791576543345735884666054953388799351988317234497297570951864534951741953509041264835225264045546838573222450816973978484928552534885452794556009686640296341304070525945079714467426730876701346873589431334526743188957449063141136851346094543905219134066169737929844381537156585855447559176303772601102861024349525110810935676301526677244795789697097636721061532219741608450814357401672134481269550182881235710378003500658709514163687815175996354860027381589579494491954083015943803191194054635233804466269157727882619246910546514835205157980103613138398095348639470927121148624642003570880303490851785633507030589780412629733160963936002772874360206609705560124996015820078916846200525552390013620676887887947622680091738386379133107738440485668057810655868232182326992764146667300098364488541088830344056387117454202052795640937024482474325153157823845339492774536612787568448695485056183154530378121353050175201999276413963977320188309681107381087562618321699991748306794904739476336025774212119360991279534410337830067494473444673383041121529651333059024482700291270540444290036742605378455230758179057655369973408425683247035682697668139317135881280903007766539384483709224869475486421924926821724843068528510398542869594562898615577543317202977363195729690882173035033945923083707364355578262208283710467230568561157738129749036520855672124748635444321538146592707178468980914845620262564182538436960371213767623371900742806593436822429725347751268327600513073535797421812199872552071239699852965239968464901716621895614626680349767148465318967452246110667703615219149084849055337843652925562387092567418309173340219402324110578341621254726581622432352609511265298601442850326576045250839786985553880491882293782500580860967024862833114064553266890901618046555098415013816655364604799148919250116481641450746398783650503026788301790399507976325964727284205156631363645379175930773574101125069236809333554455064046334211727026759156828531716143335772391567143833948481410557383249899242765370747423956576681378214094264312585757907359989864446056453294522448822950735349625569105411050654863749077761526989415642684998459527981857106161604731642888060091484451107378528535590482709884978650373620760647235593012309330926156028970463279565139314330603448256917452457243453047594941343443769974790578145292922898628066494990105272605153088865669177408942535238465651667236058617676258679726315253655029629869509730141718547697973484537461086881244449175436383118659976300209941550476648261804951790002209790118045827706876793297839600481616779520074108209822654381269061217000533497513676301883188332650911217759915745453471597397341471763807071133868268797607600798066704502960200568613789178582079263928026530831312722555812450659499409509484172674230135994610502889763501326486527856568159565744287089848200516214700397013584698573280359075060549330058024696759667455836027507183031265239113088092745598326601614104466489785776275557523968930205444640916881037361369467412178356363172562506942402763576097480013143729967842166771460512043773564562666789829756478572959225052890003635084439325361974456595877750545767643667037256485794353235967456779427696068697410282925096933271563888249365606656102345664880207557390516968970830266283606522929515814201629168321135885491798620225233868187116566794234589300906327481684531075421426466477601072070305797448592814391415454847005513559242867870162222865476298061695767906960250578643903825455320833741307747249692424238333329627193361256231220429557421299528370311496097709158104166216265571016270404490278210783810946619381634002096314968411194895542911544030095244687610231674381364927609978177604356591536069889763158530621902997436082359375222086524601077721598368287673117205271647143801996040434516647418793951395118093820212644813636097323600790379189346120326363379499902534728688883153980004499065014300382392698430277840405865510698489272072708951479842266199102092885105853310500071772992630647284650260693451384275823269175138118208318098575069362989262719950674366407329051785911885428585321950791144159977695381023239846595390028345388607292860324293376737402033613532689198994736447402530905719257186515928945541063366956791005126874264374549569839771894510712481824625602592623581558997649980034276659997948568461081273302586729328968959339427095505132959970846650663549041661550382016881212007880518381619000803699482343831281921319445420845623248090265948477397686950273927405153306861522201092354393523233392459551048032658004609649661869036075030838075020023038322801699686988429311568625668230866617959063258426541576405760714734081931284304550141053056399294841973345338579326831106951300218140191415015098620250262608486145118290854165085288048990429701816051969176219277599141769289910206718042622039748831984552689679005057332647356688437565001920532126987617037351034488648910265090363457505120818456334536474986916995057569159774720412338260398926503475048462689759558055593794734951073107779070012749714980353385200166542515891212969056881671565069273287252476363940061007909060913623751888650036835266134903697656208600070904368933912668847602693113749393651932778084390693367527868958132315830031930406924350143396484661671122707214530803799178738118307733613182448486537797388198245938844535115971537860517440546970021978077497401539767603689965670231565735576879353684083332410813107790784111598055191859183957443636587441977043246894826379713056025725290802571222420206324893426929504714410055571526175279832286744457391306557622638614010494063998788424582580024849178479856023731324342326661399760002179954776772872417868425285807296764192281599268588363939388849867150812220164520664607022807763144633410540112961354819539733856045775741431654023781460413600590840080438060743339194698371021451575845496982866674827317740320096115622352287806042038449702168924542425576684673458132900235681568090869174731156273173080666630731949592928388095182202486315314862206603969234330692703884484174067866893999117429614891486623414649285980323075705567011685519949036960253850951109500418632710106951905066833432074265503759419485777665995760646023561064973383087094424716723681085138251658666406245469098169907331338690144636913442554853373999217775976180871646138887881004836055080141572292524983162775913359723984064917022825469839045620080967783594748914558552211759963368986339726710079009977163646398694278057431444978590435555039763459483015220649279563865803578592595497204433632997968336722798332936656501649197809447903142120430362523558219213266852582740619459168499976817047365453146153745784499290577817198327371058904470369176930420835869227867852525981450742757470687076275027562872160654769833100506977648238254372585411764409003862324960513440287077417880938792229766137199272319132144138308821136505274845827479352288034766173151857352555176252144456209009372913843496258364036141154177582817980485385776232177716944216579152091290347528782589755425660516309842145964633611898050488323391735193027571618961320220635849377875659659223196685896337408112462229390128323600442774975888400450611703800427818322863117840876776811281319050193806356270245191219520891804392194020122419212771797712378112589343945363979608833561292763912775652099367301563376479994226116182053025359788262267004000506410986682848888054536522814384359604228572690242542490784608380624993834574847421057350437903788729387139283093298476490489585060444896816821300929577958148185665269957602300986195988993606485890921196746665668180547542797265942784111777005494681087913252271801874602470532752186128948981506603900306833579764239327462003672537168417998512989632433594697854825756705455802452799596378990068579002739058803635043394894378986379954828643596124951196088441963543632474375412012025917324188584138308033406684055139162087355735415903243847609133972866174306782510369389093287920888700878959664549303149802786614315430574316596128333985983051803829638501068063447308584768497756396773628865724587342156056791403903968864235641252775558500871538854181971176191890153122906149938059393919677867466914944440088939480529128351269287880716564916910164126326448007615101568620808096111656297580394898252100903708641665117101586826486588962998264951542112732742422444102913297494141112139072795916487821849763491858244306926476691098257020491989709392951498376755764325979527281165459156392255012111959955868873842800622125079400030690870954588166985123961658009931989036267004971369089505154226196720885305565277884811883432163319132061656164017403692486870282713009308724160409518609314317838494592400349067344346813837104785408431684510037439784990158626799688617368855077145183084750654919058876233644040021263697259491227559737286064342459875443628581715770245100995105401323446021607850875528141248915467944353376850651777057300401113138855674923403057594563108486706360564294052375019870961501846063762888005743369048299880665791905489851674227573545427355778672310151012476485525313232973400960680640190340536499433513170414933317140487588156656023068373953601500614687649920622252131346263047779865878190137352184236813685012823090241484118842573140607182756175868984172080088867375477952737905959310280073204395000071315270815479155072094981303720964803775039776071136825216348571098194386231917791666204438973951531639323182432375838540202010573699372221352551690454687410463870500515942126657225998074893938692914246181970234668753381389959441868390956668912756213390796130043359651272022661761452003760163268349878016578372459178359743593645357445296303354548092225747174253360200763449274320747919152102200947180103650575557456953369171856335049610055978030415670488975360257259652975148895169749105836119478183797304349253316320446763875864852743721553283524355960051226790861396906035109288622574109540071957973696620754874364963147491982603954384088368060215137914586476511426041962436977404019585749354500062646997263229820362974580475841353152364008237835003976069220477738953715436992373416153024115094311850278441845739610015000694793418318714397394747025074351484493395905212478049258103836449386935610821321142170118953573200616198476197339692133442338769468139653739210833436516611880746381453034750201862673309612622830290822787550172587186015088230396494837412996588107643506326717903345142195717992710112014310827969980296847813008152198313038914200502477850743777980066265075568295836735124214270454000448115431183145190801978068695706966765989291059156050448133030418196355315756793360041566594548256715514901750238592473134673807646273644131036321167006827309351812844075452164511731207011118844919491201523497301635607532235909497546538603049289575300280001829423868432613039952223683920516289158722981063822470678850998922707063897469975750294684722577821378284133171348262033681019382637843462110487522295762058295491201778963017073829646572852535847367270532820027689023692929142084382803485941532211591598208489281216014122679919796776880123948696656846525509901313888517596148602137247706442843696843814014062216586410748098468889523132234214169976816286935390792318626709447274402396408614699171413513697874509526167042180317596039274895137401043411932432586049504203953197855291482030376816758993365026919894182923371791914128342804126298789929640989752246537989816320795925320427040689374151347408524078750115950092555494391535838099518871314868179278694261504769552140555523448446363426051339591222429439967186999349384815261828781307088128710163584793824625676357889454766587905019251670518818055724427639843283038618188967146093707381228955934799367428334423862784076531496643958389368464141050424468965323628258847050011164841592219971005799602581643602152593225136377033329937654276306107211998417681930022278982794744699199221899003875301663912648301863288102468376343537705375716950246113863496203483345936721979728170059902135370419437326846293694159910550161796249451636211712010573986707680578207345873512410390155888112917114312526742240479918864043836138284789888572434199438838356819692596119798706359995634950955425104790860840125935767972039630430446405334013961688186264306731292195649949990606290293418138355874473091599734154144524439214052752353006957724017735718122342483097933336963876997628724537582108241788450567478209288704810630901002541464077920949931808545511723408433757590081431599558403969631350147671735398809133918616607389402228712750559970023595556910816900224358069289917115242778958455743160967630358164536102343530880626854123978017081692255128111949569315298391955769481508679685068314410826119862818010833934359531212461075763850783660143909596911837874832896409753458153686765820939057667040666309776256410329797946545893618022619580562263781248810415643951429351568396172796536674187576335762428761315451828603803453450626882219217570060737779791480201582154148054098105552253677426000607987313159762827001116427294389311980507158095970771756355854453334183664429964016674810432622925289791955395011094642747903500996130446174556773114893313719226012001493665537966092909786776631857907741456046068908483704039134235429059252548616565422674681721167935383840935538862320320839780428777142182484839272847922249176330232659910193420019767999207702519754333317711641572405454080559951960069626906168555934031056053074656038426039617850149504514968945170325838223081253375748485931211941375998045462102288339073228408703053242246790464683244008272858093222730034992907302412185415210341708407509034633253124204683006320814912154191771656504312161844215329445939210995197915228103979280757838851356157610213059753863285897469996485659415638173014336342111301714225647812550942080430381078857846809536747986211560090422241014237119596329710428445034242287307341751101599638296565618246445423480777433409094293111984712853537324706315941649078819911240400337208902399984424100088407471398695368887440160521368119606466310240075484701533667924774793156457444010435071562649509561556524746321123530226778017992986482941471908850062863531327844745456848048269982928230596265718095509485073512618753039771204511644817000068580329810592388250620056510037264810160534417375388649764229419222872113631599764409603505650143105864998169612397770540315930246053100966222378460963709084784213393077215877986171466261885104480652910616554472227920381344196583259265797096555398007854643791513453091693601357291408378324138805332979165088296454501932464945380675045018110111335336097599004221767187101360130163802961577891170825380536554397705980122156302554105219945891391507164567041254562194328228936946539605965623094350599849434624159664183063038101037406924222040162973689162106531526737983492617339412703398748153435865935743343433198715876744217749260697297720383728349537986258040375059439415343651662439117021033950433161376428364057486820115203758089784605132256505504938422253761924703458350227752106190429892956347905668257295605228271555584627720079418193544008263124184859478648565889825667990575405739774063091047170343857860437210264761706346241463498910147621690167800028237423614668585305276057073453912966250960141723934630471722275583444443398583272078492442515241645408453594303183120720424643605309609881107958308558209446421897174772287607589668044613717279170455687461632047145289214935694720127852322403741508455057760634575632998226873564529212198217745486229339188742366064401069249189491259925526494910237142392131437703728254234047312648731915773375282802307020141198789638394805619783112736983005246308246479832344495621404290039823483962070546750023424870410651536466318760972231594214105973918022753787258566607973105561735496682656771400607751358659583009362962816930628869208913954167772538983962336400368739081684755382147607571611167088602416481616471040065960805663998760505630280384662402102801425490610135805754133963261653031449599384613524605569573309586558583986562185183304833463633442504244488644853693994441855458568270987283153117567459465230413859149752102369574638464853042772683411615936997824160900551385275975312030224383611056682165223662122778010294670049137111192944541989549875196062844490442146467797448085302569118721247356267280935799227125148854192203609251185950145370336313325462250052806094473628132135225818441513154062632316687816125211578228958598956774314573517722981641358031256364728859265047179899812246359201659598219557741992632829024196499869848409328136228564991539256017648350181809971339772984481574773775576714007019412855476427661103298974635470231590394398953314707551124221175698001269540647300139028562684518005858958836309460815260607720548390710308779342563527686753619554651690795921956449128967511613955912069435083789635165298530586089032506515923903595630973553889241650101111440288723862778139104470923027127577658812937044666902563506847536944709861689772622651948729218732113402132888931565599809414571611921847441450376485654508939749536353938402402127728423194269966998357959135191895839301351818304261148067190406918362570692331667352292414731517883617081276750145238937174377904474705434488808748734583559544472903153626156747184864092842352001208206985853301130413560221601063966255833535469237413696607948212514327084098191928885458666410017226351166574058613484496045795376752180098398611662511240572285856135385401937728704547157644140946563416050976117082875945920188170908345759942694763339670163354924279952812464345600588712560197540073431832934948746277480350400146173428431027443564273779516840811892924052269308096246247161396934236750550232280500964843564791017664600761633623886591501775677712564464560800110914692815370570590972819114670135766097469558111643563503137004131305485749855936634095466577806380030980892611275145195455732011322813240842212141983741415961632134509569061326153290357306979652622391716079839765009402402294303596736355801169140804322931346718479722288079304855352882653773914135684970984258807908883173492012291621346437054028643919143309835319605068527011768399829818028792671791227557938207924113651585210836526393887209647429815359086799184460918337778546016266672884980377181034565689404354987013713645646251215636059975477764860501410894185150074255569014913831731013877153211913276323622137040725907147367251167150109317890571690048006844562646533904235772465872975444713612133192872283853183395549303491326040716601625113142401641916225971282206601959498608452037383352748714382429666383926119533026682555872240908098112870761733679984295276540893411656692931954940775535858546866835565156967099401399288333261098742460169788650586585903813149887608263114973289837480824585375524472711519394151110976633010207397673083266899485360286618984808040495085479136711175710968093983111773897363354177055244626035711168971989635888742410368568269333827606655552198987469454807830048443054020039694450541495786920423499516239150145802432740878942427779208124040198993541299746806636173812894062724642457216321871645523306950094647093525365860733718090160298377039721125042180655987040969204614609154414876756295898288391323235260112326669889058946110838315254534958760888780076284534865779334967364124576919560122682980973619524750633801096064882387079577134588102308903100933452078446377806081057756530219528226456855031133804276517627397882307394862874019665879890327912855642516554784380884207190521026151470832243443473136622465384636537549512265124461385599541141860934462136123872012753353829552040103758798736663474126340210925124222718207458890177105229771041671450819478050746353794607666353548589375015854644832618644942543064314354426288154026696457759645698509784678151942137231910001485752052486012555964007230030223668996965992450136206715615409019367982167192108226276053011183642202950682405516002921911024492079274555834873949000970745656820245604172047178806921854237192733319972849135594268977778517942912629397591446019044755656915538095754328722070140131620505535672660723469475147999794756375623950650252113847842770968926304523573398544047225421443602355123717388437979550939850531352883952047536434087824521500721256629615488683731018661189509512733185112197630604513462767016915692891774431486629395025515800548498772777097682027370458750821126292186941416094359760007085048480694926965477925556155431306084496927540792545416886731861505367028995358043073155357313100347396004615512920532221338060522434082814525441124493633219321279500184447007468281699510615726861525469587119240726146389051670899120518753989748517206725448474450152436116229045143457537288354673909795195106152523440849459042936263384419166906165832693964106411442277151153176642381415959336291659399907289168428580105004525107874391027335086906189063642355200834274868312593163884116754571127264172739505403898437295128548530814997945344038543755125386351604350380381506061724164646550459327964655617654957884139380821447405387392711945138015650811185752514122882364221662675732187417486195517237860405128668050636345123637624687603546011175996946248699443126721249696430985798512241879960624579521813041553943985377908325197542209478220610460074429914558181749087685517732090986637678174786697613738271044239694996364982194633820815771077511283776453444571091032855122259482808093328350515046776526129687192903175171618399649118522934764805055266492486163312317995334692609750606436961841157524263109290425674546421032018869531620688840368386503032854322082252526876263556710771137359165144401435238721821639264744579302616568353189152694233340460705345703498765162492688978633706997111119758263527964669289545138243564146058312640973450276363648716263612268157572787164387741924420385538732319022881936144466648448447849631358782996268673407565876114312600870662368087952391542890806848389596664366753162999762973515682130555863661702957403074896638330702637848392312964901493999048122661952349002161076128090607656081280068710149229805731256642681066591798802235603717662009666351656355544752647018454538480453754666622161711463960984035977865723779509726925246375785064335934675712651934023664064394574983049365201728202991659588684353491074312813585533939161974731491770471626548490536067749395222017492361038119874908083659317200940302908458282569747263763576854409404419118973943528107225560729449699149083249302182746130208382773324641814119248512814891633280703946034713705267628002307547317019388414036840855937237785013597215872799257258446436966922803803332615325929150383166247300405842351726219494596413882150167650997663996491432405569760952261855542848610804515341020738080485808212383928834493900563413546094824542059017114155929815378944509476550682727547919234061153911570861310301536108160105192204634624102612005508891329149622652857484728558348518370084032596812968474408077458710842244763375116692041638465915626217442749642741510534388249077230375820243847150466286667603383586013373134240182890934732993299181401187127927104972877021761651246138764984311192276715604110998315048429098461200056713209046386243679548020646120331078717203391769084930760147618590716722365383994916070801588131885744352455070969698328040534006177277349396794092718199817752478343547939861430662594287105416935443832190657811700091010942538038864039129282990730103365282811937275633730520047038753028527519601486971594270598740572996168751704586967226249670034671692131470975238760401602611292141729564822580436226738808340569857591642926992474612287113175509549941118299761951858656279436952920964702676430257358293382006522191784394239748288760522250810379562229507268020297980368593953783487909198401902531855292432273104437164652108594315122321444701297465408958836504420759976393824873821253453977929147047717606895241129838612200661928851398281490406721472384351639526183474851695771344554892803327066162908298569162025375295856421175052466316941814784684313842748451287339093089912550533087906593688313451772163961479803546462470891784372628868349582360588885627622860347536256222394007897709476387668929231251670676050754714445039327918871463347231009988823058886429377025567476126761323066942892216347172406309810866598506329567029278443533812938855364906887448482029238107049462026832328700696781943612973576990891166051912223504382034118104821101860353393470691795103318832888529277539344659666629312150512387721758119922255387114969209987584682372164588424148632897081729270604759338483492160982894281795826464805593632468119334771352860993429925397516875767663060665416885379949208162149419596605052453743204489737836479764789728720775949501621240903538137945956436708039639581840924423310983922685809737481158181161217411418391538254675692388950588112640150480846089737249946689888442478593247448423406421473677757755988712375921855418164501446191045628880353486136330458583034045610925429756903024016349931861083276097433295877714933039126360466036811495296663462569457678425197283014107979163148943144494185331011877666397457562715371942108152277187481739478599944472798861518639149997765166286806317078524535951282088631407568275303014176821379862879035000115586293972538950870986167858504984089674453102986829541028756571599309916230227493317689014548796560826282312729162254337042140447367428546414915168397545778868691495704667172087938487561186104009046978521071069027478707164303622686918623740124963505207388690564853445666508356049828883661762524007108904288877882820980380440839032130586405612883261966034090865116469733343902040092746264429673422357876666043251382043444178633825069592384206955782086769193448688057992974496824838684790899737778623869833072545590356305546294541561711652093587356256750389020898621624706946324284880695257680494102130716923752720406630225694210878168659180204335875545789336344068741320645201187544824750917031203364872587181821122581552787481600759192629069908659723574051711508835428285591213864993266812737768176539432774712413763873003415302053958627495173933888935660197698949636196491020397091187558736043334727273596529364758275756423754549668176008881212054482960803526171524881650246235586491117644861651421701537592017169332461191510682005795154786289465026652831615802771928658643441781380342256275697537401818921052988800741300024889074310318065170573069231115581997479617885386354220392515798076006378814921521543468213408167407312414717437915200283110831566666116006421809793211605908540875466554497941736281321775220265693091078590765005225614311243535723323896274294431630520161287915993617503524803536823251660045811055041971220999191888764464802165911080170896545184316288732147483001865968652225649390309154208552616237366500250273907598034373186606613747701582672480510686838529771226637998475713248857659143699994080571126701896341379310540947673510396851682460102033949339070664528557540572892088173623439556232495001428598482803016029428417994575014835616081055492918335269096020427859384719392121312928685677949985380603827162231201035539206932921349641906277041913207330704483031646924380874739913100833979823491785250418350565003845098334491010435466786320962905532372525874805162959007643840713032792184223258234362423854086844862161533573462302484379227336369646750331689168621480088740279283395752027998172341979620995921152479937885982049096589476447894442590471001757456037403942828098144189780226784440113686724447336041957298523035081845740905746266828951202195101053102111452031587724093532758022482281625943229190330479617596636046685718150829332690678706829546447538348449901218436535587642964512408370939573443575779878149200360544717624723233520925340940465301542696385559953751788413051501091000018988394932903983107683132188682557897699475900861950095695400377684703818684548498078611308494596718090368307749829106257905525579349592885381009234233093938493948517672916354809840127344795868834472421970584148016953108385712691584942931532950159438643687992355878753623787667353712599436604902189680330569519204994611013853613366325628338018323102987388642946315834104832108124961014163974686612154067509708733897842489563763103131036419251450986243082966791328947014586011874956267614185658146991344978366950984297403377946181486889617740854129963486070152537009589641711466882119422279333160813313468983110365592594100227330941709530080368152986376410836538814320954167986877107787317414364927489356513055240872222569976692147044618837634522188376829369308991978571833521719589422073461864214868059908406446641681498447510068497418443753614967929095832678504354590500972282779194267477421138112182277633892225463658834943349008200266805685398368772752601777770126230517215651958091859458765050216913320498726530326490774430458664101345678146954075750627743266059776063051725802334030952856158394748138446771095385174427317609392727902569855926705650879121558882113710161366719489575002450758383348375049797539779394180237989050781892389611057044938224809333204597817140335252525926880001512904432999775081599937898851800624660034880339637407509585545337218578260336549263802127161499825969659786778126911576094128987919258357389805366229157940729874025752990205922334402060637152706367468631745113184497281243206055319778768961803566312156334813670424430494971315146814748432523840949490294764463517043676895562118060807078927460812769777324746916293003890084543679055293134757841597849358531812239913871419191377861844829810670044674585691258973625807943641455519311809381504357380271784604192446819797601353754850135664936812538671270027418229296962730854972024748543680974120737047149854617104078878441713925828799586322202490810611677253924113332223676678148338346674470308540733858927845851803527198605185253108519641280141371716760666707924924594321301130571926742841885552652308062712434340227978079972523919538296182152098217729726047514179118510168859732176889092549425690568643673103670227780433613804338110378679513019622864007241964444716355623099925183165981623696015788678703440196214281494632684797567371001280101735930929795707160958164713274684898673469902446669950365722791852404731963844488854991185320419774097986735241428082714703400430296830753884644975837699117861960990561733453878694507071200797351631452954869347453022290520793144342564472759371260853440081009188642987706280077204459374909072786496694102151321560484337074977608263525315544976947890908778507239606399614705685691492375271369309926260856516762149387472174978294101079770370241515127950795860987661790487470958495221197287642339604487149135222933729000191259866595295151849244091546395947558845208323844924630819268175248101766989916160033268024136781833323837887765320456170078708064986136281474003382153382690806534720076330652210780924762972642037955556230073098235957883703388624490771710887582228004863810440007327802447850263005433199706423954743806706698018728895959808366835131886932486455172656705421475714162326126788380146108820789348043568837726435250685967314674734865446805267981412124895479353067502547519501548649635727518454583454661183289776022468828762564506235603538574899752688881313004554284258255826781763251214438305088086538994816985790715474262564750801625343566470358934285336803926934123956513341637896605762116450693128989834815826405533108003110255227601727109401203933355169169012946288660452183266936401031794988565256266836299918815819334584574727891613863047081940992377234743494363457072745160837249051438736619950912596477142190002947586649486425757399457606869948967699168662976113340775804171901914675223776473153702844200633673779033728713206213484875150540308000382060545788004257268012214504957500941816259238930494838364459141427279554575237730060732329497801791430320870180931450353984902985853416036665881655849129013151752487223026984234266933057219380638020621939836379740141236276490755171207416104931825210436251130269051796509930629130186427380309885948796072650662876481569075409051967519826912721191393813555561268796125581232221295829123463383212763923053509416069549867637427229936013409759029351828518411025528037279159707281672180006996764658160288408292879341797774914760755115496285563756058637722445138714201064501272114908325350122814305159801317198320423238159300188487118843707150269506811288366961156335219004669706266820929639151740026247977515332449071044577828872064386441492927392210392359401186774834425592318260474077896789259747340243665318701811232380115058632769149372115872159578396457660002367677682153971625489649175694092549800280446668778786340085018120532864639339857426251211952693081951254106706679541480294810394289972397326508860989789560399525889989997719952841877258790647309139908252859927106009210692977850419198454635326395698356134108175888480300745858313867439114333349562844950685730834855488488123936188324611973216429450096521206410619434791495996403868608600104129637252592140449868923688694486224349942379483234374885795513320701477001690354004592679059765366999500546003758905652638674607906616264925667162843357817324215146318282764936719565734630589654947033189190944086850076378338462928483636182130866377496151165338141242914304358586284953367986846356219059428636762210178858742615917513607914438187771247752042783222813850902673176497877595752835415777584846602441882143135023421922167019520166360214607246473356447711488653241499285676550330084304039579409766167904117286153396901705766237255703525594477076979504876580462798514705416196145898134054511291170532532328785826574091098660742127180974022003325976871734617381077291512144709044861085193298267170902037602118095535562625797924198233766767938772759326543276620244189895990572946787212034072529974622354590002369412813763150409133472919572778110279950012362975533018652773773572803003758833821918187065522624384883605847432216957686679104573363197778696831386753487742146486942872815619083169432313963842776744564937212414310623709630612159311030768970837378508408470744714983142971111349713816659055684311257766656806603489939020228293540373397631471419050061185726436984536309431173211291933983088939521059800160055295295955124775247537825529254119924872964459384103828883497729322429896659443127592258406136239920544932073734569887004626449048011508970228113370268550186474462878147395659543941867188991751162637977363253626402047982387505082105454214149285308405495120175103907422086921514623055117873835969544586369205486292210998090305726835669159912880468332920841717821639396367269656620380581680445856445515242876997864529432972166313991468011446097753639808832386485963471175623707673405313352695218780135866196094555457499483041205988309863394681816597403652801202452424701111161613307794366989321942442589545810331315383470714502074381081239020508382057145599688467252767049261486677808963931185113161955301098512254602885524623439140153915006206134850025524280378770497002098648141280834653105199898224870958876185337968504940311653276351740072902241906334790679057217988613045532753796544343344962210593421743112219632845137369874765192961590154034916501341754911662551658262862472100795581846063368113956484031503950589621969127833648825732561308240427071227246244640870388711559525265409422521096863733136379039069872391511255465063314878922778940967964795956855767735619942057250233664354672883412037064500001659034136039766781543123232203969028167075627879390203290618635233058634209787943433475015208219332496730654505381607562164763422943472680835834668608843702710310416330557026134515112876436597750135275392327704968560727401469562066543227748887980108217376364234185883317517456440594526366688623595888165749861178133487093001311376365457641667390092043525741203330004268839151183412575592717698452922823894069338464132224039595153907147474189146783341201505530913173292407609630195211590931492377775265265623060658410150361268781068133765888917168870797768354821600750355962850865168444871953386965913269558276498567974776201947668726379604762471314718624790605637995031167994339430250199178981995000789922127953409462198317683175543809233175310038078835692929194066272714914425108970648699037848237069652380527840626779581381272763842553170622892902519244214376936588313526480481589266027715918886578862518363562945492429012107722682521308292163037161481119055969938057093771174628979270373233884091859326691000374444805067575579954805890663552593216099953017235764590282637624796105548917871992527638901723861337487557488031892100036877623280256021353836303632772022780714409815532796879148093390138774641143115852773621579318239154242475451715313664386237299478560019435167613227275264897212400663603430374776812597452156533170164556414168367077588895036644411196856760778780197767305983635744435953569576055775204846807549538771068820646925424742244471070130909440189905686674194700033602879900466149014531603894347069871824562808119175263659002103535771962355251120115528830241185167741772869804899797806791707981556669995380761187773329414128189043113624373517342196889256684431533086821768296108202741965800580212958635422684433063045308128112927878108970677076961851701872095473477954457279753549143968265085348010213355707594295036733833913030139386161925858642277491315571381266039593952539226793908046972789380349365636647375784794192041188365734010107383322853991602025495803315652301629316256661138978686646588864718027301243349934460802133840810263836682584102203040058859344563160191916513088758520635406485846786389236180102502219742220572253084299650859158925804169217924806359392771070202873703026461281937666465370098025182343306705259810854484278390121045334478835359359993625159439125260475693985354496537084072780823065124289308701208648664664274243097968796246013605181892292152298576932160450496401571602043316703353308444360046224439121146151485841445668149965967726424660929078366571128537423693264545402807774935432098227236161644978461044948359813372068424407575926483645189339748242205579020848786576665085404833509778632342644056781425429407550089820259737086673461575641671943493911810378718326447775978011691847043211034055220766456482292027518993602654600147484850541660131629406689797200962191860780595181157145817419525024614864290089491356956209268888201854382469470653461611985580680736896087190986886765120847081154081239911489615605078270613327890172900556875576917508075006823604222038259679430015020563140642357523159575137509680116497622948438635701153330409914534590439078922022739708303239632259769416846559928190629781600791104184340427599278876554422051789630419137209629367637328145532964891445668418271016437369725068640589744266853186636575038316745055807549246077813266027690546967713565221930387365427140803834806022824589058982002289588671348242356803851616891799342830794252822112758801674468160724028254223151583319206191087604484158736173537001172246728594526051310843871480443949121511403054834986767701765990792303488167551557673750203445563990520189414583244124671248009420002960073548627275008336632462725183200530920856872429334057438421905205994191464304915541474187397822741147684445543474809058207947065593026757977396354124530501897250931465169352674297412055769715548685076262745516710708112165674510389713431989881647087777088036522123462637132083024917032585874294020520626413138401121449821899480400487288329339004395274155099999271077313219680772115484972120686971435405063236402572309632484550039103363861539260005313068928146216652326432587217586130220222356790059848075069577704084789044268640559371552530444551066020447030692948390724327158608905000177627534399468457319298123503409665420205980674650779104271034451159189988875931362596232277026682065822491018599631187350124239664440109371426701175536115637553714018683015715978141326961642879838338475991696557570143598919502479683795734867627648617755783143324250030868656296041885611588012423576477230204941986051127770914606032525550747711030314364243198410025817592480929742167325468812250268337549535487493456913102971416958640578841500039724786409475543015647319527863593628236630151091252835464535148084901672592312257578361252393431371788853420165430695153207836192053224472367210117001279182706383206700874231091500534345675123107474935110617022721177224555574506757496253412580210299652847690394172716273772388864493045994540928305797697448671719323583894637448038928341988903694937790701394448679477118119210733705802232254995679098607096804945972860948044488201123453120057825279340590134219560948961723070823386455049161580272103776714630043147751705215585084687499168939409552626604770429661466388722756843627326659065302113764971185749868876846314761054457821343818808328631988623575891673707234821054435483366586666092323582402185664491557310282912335059927632101032920281542070825609871846997045000080229163871394371867361526302528672870016006804870335714709763001307287252752182153520361996255278528833714061092801976974509998201769771682450134219871484515193103923065924219712810135400187899919198563376409739190146550948136533077596943472581239931032728360118871999133458972401389021981202944457588989329189659141435649909261579459402097592193804285117730097521363751993281268595871415128581598167277352102696567994864167709818956349804020996188884689864080024303340656019826899631570395051432205637222908764028392347005159239644085932989348206230535006916730773170528674463208935370275767711502896270075544331927147028000407111209850911264486893868908974732228860994142075998562640374651608033245965027799942600617438038291365447907617718304120523719680863250342483570210732880137748459780519248738268023895844473867695910367358484013747646516301181199464659728380454285922017656705027852525182025802004711066623000282669168441168454316180050128796106341118053229923689374909558567882053964237426874939961209468854984336793705582180441648853914434318508800376768540043267490152857758047871248616648649961214513136427911763523123048125915222503607909505464671755677996758021094343538863387906175959789052606144028542229981740815645834244040462392717366232220942578891325281218306296572967687656420196217270262201894646407611352132061742994642451903450917264972922016774476579593568725028031154365462340279809217784991076693068148378503087073328832342796683394024492688846633264987741649805792225392062783601042324201405371481763811269560530109098172326931518568689726349176172662587358730642226281743504857986198805094447887416075582791857049786127788149486359454834270001078246621011466065297270667274603466110364033687564584900157651787530286184135899949997463950005172314141025177094029853451705061790088214357391518631048965802912386402403921451058291237397270170729410651563659665262830693137436155688971115592603813090776694419264549231132093423035656292988089072045740024442960060289904393502225370511509803582492884617608938092487705454436539500358098079938669396830878356355907665470262785992875054744933193539069596265269985159620270032403658302703926004639724075534518991482234145695435430026748260304416586473690648197131151796440021946962115232196438529220230351860809376238837197561033747391903772348813933724478338067181505607628894133329244062251621367249836426297531846777046044630056706633038875079933277065817342474790513224898571110939498440632372696827453736218344140398991867820678458844298994398051252418791261823142835373446864512370178144893471408777117981849138682440031123390995177569387335302545725952948559086564687646925236224521024526631027104333699843649180586418049468485553364151966029853188768888703592574069941568649264453611314324766675325633512149133652165177460394220199089614708229247349555309065825989601296136825683318464908273036605894743490889599373714309295337533898184643488555056797222083969069822832935903590190580662449579706865068393198631980317064139067170587196771574175186519917253710271209478356234979473254531700519998630320341312988181913015652660666187602579215919017960844015772624629815829567672009081746788969616292039656800887509735084537413651408072762112513666507340769064257287310353481644952321361427827453495966677716417738496619350199674762579095253439206319884019195101620268287569767480086336749846090341074813596338647593438779979085044933395777848692820060074701674149144170048064043223972298696064319646287129836287511144506034667534806657634398317287200244606443528816924655389338103793959503340343527076695691362902364623291613390731280962418880194444468814656814372962415088786676081030309442703936025476065201765756728518060648812364894473901646547763209850320904235146784598608269000436816535262028293243684668746488153714461655565438108603589210817614090466469327536007086127598074064030734404855876799046946656955637839490292448040855159261091512922791472749166327759230457712095075625280605311625195064221685398141442614769462905193153591671352718444700277018827474377579113345664764806626230676186491722619727695123079101462798308963125936754615425957976257245944192241860344752817222730643107897780037668616422257521302324012229556323020766125162704588372372308556113628965572501874501895040379450986253815782905428948264439157492712221439142357271819518238958426645277115208033378235927713585479929038203311919637348969069145360745688785458542512330784872827817808828186085807461172682211914246324955434574063633780759902065536843290108547540878107847947905445910007943823154553807623745800269324917148779676858464710433183335032719514597995687026813567771615440766220966521879813941486721817527615112907594443139244494281069873394899929918211586866190665459762527275401639318501025167395373721529887367522766031095887211156505144588396199084413517424463577263026014030487972479174124762000384644408079688222480232041406149650943690725357699879128804609912175849666419877124733586582980542085980223396009780404755123921266555660947577607248786784128068294206536476546790785319820242716949484984751237632849598070918639957729187008292832727835746092641148510953112606055516763412254268063287329857342694141652054504707578464586864305120227115309830860206836106775509559311493685199884581184408278642499033849537175320751830849355097024052029711165803331183274725483262821060959406389985343139481903853084898173333393109005123927806248496581708640818296319173593884349723542780152849013817786518070754616709875833039511069391369384480653291768536859663121308532481237584873110672738616810680295827812359223178475922812847994616316965585424188544194470160846187279508799817160591983011166345518492028863130429707812778224491979904539157441885104467147182193410351375813168671673104984518036681893704549754089325994389613154995938852983433441010435882815350805016098681016742899675226085552584382811534452350740237730358978488241608233730957860937730251273894521291984446571993528407804819091383848509866677442554094390729392345102113544626634573715287591755931988526183150592647449858929890754318291228912275838268023091874758839015466120189353724217748268423232568348352897513404838730026168519525905777193168732674972968815162940145004873254572682637222429539018319772253141377694069563872743910281690657374154267828151780435174280162574116911818293890106052397899054299195176786080162105420858797744237562876686853040811158407100697290924439905467694334829270241805610273070691884636002608052969410125298184967004969612090060534895937485185351467212107924752081422987393623095897929707172803401319053531734903458668407512176858334841583517325926165973319787661404299512442715552312332865951745000980138348951111995215368592675698847556282088480506466363463794962530374482293609160876211152201982600007875973739599826195804947429697283538805221952849228787896807954575859505695272881926823292885162718103853275588305035493827226070420963323692726774007718993349956551926672142199603437804588513082932442386013025167129357544639719463719187179977036305902399840518505351603608204938135147868437942051146111953561918740187021969098246396313069856860315328823035484943173760993619902027037605869709256760284955649004099094035403089510113608735556239920453598826530691590693979472956813360634139411872251355407357481461508383275411515133116004009041586235914864978388570350214158701184690653480512621243222571513312804832751077701505839557218048269738413361589986111389497943072279920158783714939770036935195086180470276702517069420102504591417149740077234133468304606515792522646378068831269954269923092067025240316892521687034353898305994470083421018456320040738248110606564523820059903269939365013436761083573436810854986905841552886253544783885719742247618430606683479402137742435748723507802055239189076483739875076340902159040367961153698939816525030665562733216055530379434229142406197785506191092877555742146595906920814258761211635723078827504478144543093235221987454847299092962663104217981621339838554294950199890022437452858458701421554797452904841712017186001216144250361646727677388877077774868970150564764536162068177794090329410454925183906314905220322991147971773741455690596126824300348709251576795874859929828596994450376922056364704286615067419980016493960797219016422059135554212357886522082504157013815817924611401272628716777533256387714867010158498520974244622611218914275401950107213800934465013408510805759542861564224687201455494034880509770413532108103502170131038881762752027264094575369837523702175048159010932700726033569315439031022470042877578956870838999313625514673079588114174448175248307771889376058562269934696070252434695240453085261323317153660819742904892680778617044396325878588229191854530323782812052081857073654580214068519562396898702410316628873476819416914991918752700356089599933987867774467149133780350439081498997373120621524915354942423860248362322160754795478672955335616535429932223247319234582621657769688732012678323716984829087207043898402940027678495566318571097362431924281254901464635691298170107079477857292600997264458187423331626079638163021496231497094868080577610495502289665616432715676069163428367756705695252797515398900334092809942156250637602837455614814692276017386525981696526110079312013147896575445868275133332844874247496037321495300803653254643284866220780036437860531580485269538437077555178480652223379044885960471472912251416257021922378866798461364429593543489477899742263586785161284718576763169171036297050290247171928940330209206314699359108237910116265181112658000778935838800331992448561231359633493825442783288689675969043207116093803342165884369101965212537640813842184355012897866981184905393733549137693925174434245250425575118761585763032269510419256771937710476620172678794891506309316047589235624611032356000812469816201807278528381302295006346998691244446988558257712801022393894782921130869527481907583321296905561836292641573561422539463656123043782778785812681976866005865833882333812623976636788707400498034153920448780689620458335351585329234124988626484059298879913912281063874177191045423083889896226795169917570903728136060577258379120435058811229314965149729691109633161651453899770697401959588681432872625544845802349587648655121654996784177573031939571032531978043954079815237620872585570741360076835180005366892883485471408447048450511597720245069864921981061349550394026935453031037478545299537088343234812249578168878992717745052396803425832499474771456297225376278331202027146324797766607530178103348257376466686974843732197630580776821671736453449063873562046468294097797573666460510904644272519751588582906449605527729644376960374211357131128678212672324805527328147677845127462401032585757729411105082577208463589158428948856084547956018180038434201531536938631030194566902012448837216186398451544895983967633102120782222979852567923320473736872652160885634967167552583895923299954637544626293781195069318240386809413288951766817421966281110650936169795886546466321753989429294862961571641724605383506558505725599608602584132014443650927923755028475009066589805392523625041815359778343626423191644251449054775505535446928587408423215583999038780391727990475571601730290398319689839323022256524158762061563428859200627342217824985085322520561275463678532620922300089426959407274423588533515701168019748207997099514516499877809855569448912775315445813552585370568125789881006790517503405605037380457351311377812887391486473444071619153415918697963998885991641575817206855879600882675610971630437117336752054704346658347541930488552071069405165487519814131108044696448093367524529269481084721578901871505628048139436105030454073980888220709474126945324630263935474699486304447275561014041975803972578227317227658544510370089235504461273285138743326753888057964979238446453001094807092169421433323816784280827560525468238485056157612838714824465306197783102312710533061004509673769819363634446427391946242594128802932093502822461327142055988304132526527585644658141971088839076527406058266659408749868030464975265308219465085058008298854617020981473701111023939659699118708244377506662404093505254959237645899265811407549737040361483690841360926881619239919228139923381462694901629925234610355923844758770435049374810020071606328838396173336250020818229457075503673678108993433164648019880427404433462849687769666931186893080002011574652515220399889757521228035691545001561695105493147317321463241324520305183844351864843519828420098353043718238370324435125243144766683656613727663290857433397077262170938056679779066602756854811481933167401181506127376801250832668898779551090854847326792264618327741192247425242698821384645281738899825181889600956893891120330821411721458014977833957771327448025517192087610264806990970361392186843615240495510653570058331690815986265244555148124387414365868864395161435158455991400970400963706468397307932767556625849465695203318024942806014332476703830000572460740790937596135217982573789649070102668107719186460385639464194578236153669406829207975119819562059477979426790250879266955236345103592427129428655643613028964234494079979636494325120426259807083438735415678104854406703394521629477136629208972734567905979014889894893010829146120457567999627656276306526326457464187393942489083496234964895099209065115139937940738765487788412585487855789655931400314936215534485081129870110934208576492953161466517778709555134406236764015508465188989683814026799031600323436156687825923863212906626817187619594589276081213402507877975008410668472816099733521792928266000387385650746784126328066425178467507218391043668072148475810514763161256099050591770626980327946802906085456659317670576580615675506413196062041890355999609818409271307081823663058182378296093273678512875034201297933360860873533312342576826103982784030226982756802164370180077550942415708865822575185337804696438277379490906126379249918883644408374118154124358717343386765734015158533792778567213821449760034805112252780279809013399825861116198493875627136026282560766340958412804595002918736267824161986473077935739144840980017076190466729825807387409092927779958731030467529314743908174689719495376567720776311604810062874149034547068289938385485199907162187640977146855877665580317951190026338161928862245107953484585544800084939479363223516464724031033016975469611502893358349299883360481504220489446322901666447016571781391140596851242373116420023985660847008668400113217271490758883912394910906922121946957294357400585937912357759974513469940107592368924352304983702113499578990283461998752871650987278871939310721970230715078835991956244495334852752184470489645503685815553160506151582714118110470020501141428287779409450776450564536933716495138746694566111235069465891448015946256693311786614380026140883634683875398823928464297121648608525082305237318340345728688117032944115571287972182033415667606666118642991566716203938795488256515408197491532922329489771701026743919535540026872010124927761475390941385233770004591437716163180995230819779811595406946792905526892632070383485889984758080181635279532445632798776429727261239213092151243133269955054328709641240861017750169017862630910100602081293102944172971068000892192118137818363226459661284601310510800675151796831967956793547472167255970921100739954280340517348163422749300362709018217998353886081489921313597784207623097390898353791386805903254982947118568659045713313415304129879043802496869022618781936641190500001014673837641022398996756422641559472984098422057474476777707067138906559883859747583784252325564429499565927725333154729507999742741039595854468900475872404819779463899811237366499933571917843717428229645889154393727708315627289795354071019486295874544078776618556220649924400944346294175386280506430405554765748904369372267457701205075182107938761284898972430410311098991529303633374446925953143429087672472552525072680344422910353486228756775245759142135188955071792535492650451765154192489248699589729123276456677372603184533011755831950821979785823445099188389648537286982313923979788109450517380363984329911785379192399393236291839585445645128584737297382554909118262953681136801398284525329956791111595581362974442971344664876431732884681488381584372923025918302348426603850914517664215129764762491427534493363136514435063854803398255484120402507055217917916196093721652553122144303695369455890112913318187259023694455109160787194988608952731001113522752582986669265994476978794407245495322509277060955129791088995199990473050921296422579411100673990764341352817631391128067681582387605208180164615099597207609332308330319709655636812261773461066250075597411749439437980995359063818593326698863747537447735811756082047795030687234728125572363434421602493916945057477646119043835631561285492866897029581231103153633350927877951349970805434454416805081829266110181666050924561277971778103099349469692405047424519596636127662934271343588914386583503336142103453671379912187982133628697334964235770691890031872788045593861954494126300726586129331674079343308833704425221866833329334099784158697457299857423532950749599159658827080477537826402186409233540247648062008473110564273123002555443641040483879646891474852578017554189727289017412635373037408906676034664007057282949583047727563485814220888919072485603230265559060005060882090264894025480880372456028957381142108833420963771899896588625997290845222315509180205703716282355150217798627014443389517697481178799281269681390318927357240082042263325489263172443443430942997357981353852265455853306751992900911713630327270335510257191113003437856496858009482011114636223218184752417338162521616419356638812606649670389491867295096488663657823741269155358021751228307899319588578464129309378062018631586722822308314071047408066726511006519156574277276211026518999402368421136245979932256891735962001029493171189010566418118123686984304185328665631064433897815189233900655954061935488638547289383014746859288374781584096555721143606222416407727923674822591333441447342474186988604886848144752074090701880151748076319768584725895405060345781237249789981931719060461365924646292081933139311671807204494570674584587747479910906336664395961495730327126911033067304294004793661404414274790511800738616999652044364595897832320406530816645775985882459655540881669449161688933985510366508723272565692043909270433086359055790131604100085310349030948784665449807640605235987860770308253785211806661381883359944825067432208898091480195577314986592275183340094214176624577723865065076164919445467671251994758854064874147250166369015463555762723373804578082443061665753924109098885942753200722891901065083566882825557270730564479668335173406874440419323735925385017565337101653209549259817344666432881078836029892656405856307022992315211165233711623630133359990478308337433683006490727151609793285095420628340564399571977285956319116723069311847643512488725089751745224713205787298421653746276946894359017509371167277774230388494274001738495562374091369150601996090685721616041612953262675030126059759807303594556277272980424262069024380818132962288278601723747332682620546878023938771149532076652170912907978601035970413059680172770900002960992818722066843286067662556953350215230512208021169490795112664592206150832422780160277443530412200763614942070917649210462221346943573401025671398202639020878937217507734357092356600786320439978577120053942622130334131202880119719700205064044286049955626480069277510580085173442473604569167976811876060731726230483022882156081145064132486279629718404049350903486614403697060453267215316555288494138683841937443252882161081988029372728123685879039430828520315751015429082184346117002035563196772698979041844974870770539262529962546863704283648284929377323932611090600006388056387276639883653731271342541861710430380158375273893061592697214239469499505003943832582323999166905364160929741186755344123631778421324550103959809409280613981208178689884438523380722212023364779137770368218647635058904919278563882163316048690383981252906887475040735514134634090436435018011181379362134275824161961833504490215993354892881934726641876375308680748204760358173933150670577602983406008246726935145528367033409037758663182556570781920625930619555073440655093634904363880869018356223361171917948320429043734000985956009430446622243867374586748109963859089815527142775714043663041312719568757697872847306125966255475124629708947311743623543190249839537161436760672336935455642360668044924983382829332557706777947798433989614463474938405823127514080808004007390595396016187403025216565774925239195878823152564260289970681767564308534164796724368996708503329253384122085178330624247918327784681509286878959033010814260560965715646822504362166015336710895099908388765648304261060391211721687528670848385730298299122772793355428307740824888599058519866172360891244607936954248601236160178270106109407029817094124201768891470121034694214316098386669881993164145849535681747643430836542024749155499236059978813992339504897442509157237322233186655574409654562459272776601727117253208298914209261229003913983985070266115985064271765215359321913343426782035157426155539827964561409773671230249383025201734713335353575155169172437942011128747793913608706712841593456832521913330096744476642710834022215643366286330337822592238772612000205770794126160522639537326743737476400260923084519386334900442943336814377681655335336175492562107563110204852619286552406627397330733502887677892854595690596822259389700156663126021369624255941193673230265259674848822489252993528695570829951640761083478187599352064146206235228600410951478523863996084750459686214360138620657080819791220314537035259995428692916471296286244945440865640064251930386958855641911943571255221395344041254196855896711299186166141606019552685357603497045727939931780419329002470845996346850177297303422888051786591108194733617061602848883688737021685075330730226065782685523498054670648561184429275832058780129490563748009597971567989432436485188023921164859313672130121547088647342745778249612939934024413613699429220866259197519806322280547616279554048115876264231010945609525071990113557349850199125530932323738918605789507199957567994509773958733409287752505620489423283545995148084725556965191040022271782983529676267763002648620066898199683886454848434590886943246130101959268978728527341534919144112598266733900314195629447860881496558246875689760964017026769458532705493971377501127012435044928468792385781721463957751859115051706316740765920482208857406342235949830985699264746979346945725119210129353983669538877001062555740349376108291744284062456928390521030295127507901174423940066410771706014176686692736830719679520523272181007904845876321519618492852085969968184283001614279885641623789620086608338564643984796176271836398320593130652790724345792564822853088057096836047579326371889892722707422112640549819430339244102716188936100293935139651389807721928502392708976725729403903311743783176935708762777125611721327061091396684164366190670962130950643595911350973021431182272109060705224300590626993532537245313510269210616807107533635332204392278710679581041916000099224490655292295363406223716983935420921054616066930678568563756896699970892965445816481072398396673897189334872297845496104139178094351285685587426299973517077138593311742966287938056759951661059286205712705392558536733815514220775394056937311190773589190816629945576249819292989245164687833241585357300745338331126086206198409272997650084277354229585297468727840654794881812624692218154362833549600107688462440295668783366594257993200776971209557958916575172861044271405100512626630005547994982585756074352201488369832463577973566473130283060265391720259623954870487660745232107004253247788000060681977232099449093162505865555720101306536725254076187346083911546088862926769575810348724935159623560871337510063452911795530936691827896020970201515195876190646889139035651993200615288423086635808781401992951421786001276643201025928873435647920155508835494878023335840061426650072299636428497764087507061918552229519606418570917002241459939506587586002454779939598917152435571430451569941571148518751026888334943159644919555316851629822072242121162075498354290170864352503617379487540254635047706032559308555726343054361644839298600607045338114478116082202683053568160879690222805558723947031698400810022920542782952206010674698364057416014074475178517141059883692526582829346880058186203468054553543607375822884656120361970838889580942258404573353892338386532023983233383960121570842883495289796583187814467946275860986340706220818383523629657136091528863825138339992601702586837689197247851976680612358567344829728502851282930289026381394147073601614179762618445381631623066910532840620462531958759332564642317400963310630387912156584477836401856713247617558030518298423673498085116468101219169233522795380502594695373513954790277533762475548000156525942818824127200057962993226722282180757776757985730984472371853741039711762078036827677339172916916759565250045094124903686117253658439604811074922882287204360852279835088070412666437373848267628383949452002064913162166464489515182200860253942279307980893161145977451982005107967080676674104284307843306323940703805652234460024073479184055587932169992652379417196894488040327451614447241651991826665610102222501976926415813703377019678244640795279002153196763636554222130821590433851296837714531480817481359070271784102226113990859710123753736343808682796377416138098297372852480490613356544307469128230563664823965385680100891532464180929637018395509320264030509981401745156842167192531345465017617704825405493430187395613285180420403883895637219898274625496486950785885481488963906635420672900036662281705696391768844056046682412361050396302250956632126482672472891485214056545795262313533098629893724455807396236307804279068526070907077852981281631984666498358859992192679977745999251897234925134264175301526750294369355000723158728850793193479997477832012550722273266439100851657353422971497331447608911742242513152862639328637135464932767776215050661242494383334981683331156551201368962811066066423813128594254125847957739769687070103979719105324685095521857164781059071433446150574913109920478334762363998889393627738785759427005254466945686875356604824878574265409365411041507376683640941777693535041344907588991086724106417112160548219029305984617744731080412200841327529533403348342511008414921078979353832116696486088029820685468348653941102513556793002183596271905455643082621707447793571385380740311780477840511302207664042444921629565658021408089837076900012834736378365620745216933218370090199994648350421442218082261906851202612485970141883683977976730294843977040290818379139072342155366577827060721046860676840614282252687525630166565523893431116046999876718917320308398689661050786680526364444988006737064987742848498856563071916265780128979735315657128374232875517780022566309618940787479226807977660634378065509529969645031774286853612557533018304737764609591385993016305320905798495561921286495416493784725140654499625877857370373918131091229771577985515140545627500505830896256209699752114244061145533666792960361192547305426483321675378612205138125573300576137048074328608135914605181746896229895798208453742546704040866540506203245294080173440709542521729567689000834309291615777793725156600501696493525123390273370099733346229509502520491236120727378635289198005641684470005527135844298945471014250018859708539643998773877370053108636349985661070637828187869311431942037756775240089274613176455444007254567044490961769338306651233333585830591015385376922972605467401844539148717872807067309352244145689774516261179559508492584007744175444272975115016223390293590786329392328890559104973431031469286822682716942500971263764389155165826710575979921931578541629944891115670027159361314970390441030800261115292698422978980469678213558828088843925333737281328744252290660141191291273962171584835104623832845085884874687830604017778028648363268370156683431577198981637195685391500216823597476615024264273900083591844367900303403374810009326786620801362494154182970860203623113836110387748365062982144000051891751120741505706950851817713944416813616384701211977644417561775611550779089873650798229753221169719086578834694715240839755385191571477225429643842739302580228779890244701899402537588405777644725833138700624110808097930229483649812633687345401142433911750378510212761120573225424482178042119522345795142555039551360046831354777431139776041168139839221332993030761114055070208536584439879285306108877526379342295562095406088166147561771090442710778201551285468917000683699938811797941752777143624785567289602452213392538866120843685633807310394238455314534209248206809547071370792001279720086903383349288566720344605797607517246952971089077917274538621373724291031288465753207427172691157800575933209752155054833495612927293978621986879216371548856371871584603291952860057459660348963827861333901306020092318397995983666994079301059929162402793694157580616936670893468933853976680286784749709599889353669206927042969074201716699654532248402890957791767891171452881325141275535818986266720309322815165915745028279057227251071423182196036154928197201324315042492063302335402605131168252378626207542791808221718854569078648878376954350077857432275992883244665369490282427458691059986801625208828644672483118694957475199088071336079107880733717176716763171514982457587538407126403205954362763252460813745007295194628247167920460457917562751155031957888942352979600104826007654767243791343089465181900411452492153131419671568073857120708879451545032938887316758660140519852659612221631467236322030348622154396635273413190658842641516980264454850523751365465065369779923113537363237253104878712047055025861058264163973133913434396861557310958823949676559259713089239595945367674037114156795696704910673288789449989620939336998501732116882260191221461269572540952753238753332918255123320923421870856672492376069390950131258533742700096399942099586740481392690051736218073795024680057304444557913430375761190496861532478251057493500772786218187212163222190710540514649883910784262319822601742693063242061378050431891753655044341561721068224879734835129079972156783078766836858953097850839906561006603249930102160845748424797105810476654668875221149090420187108234182977219515695541940909398502179246968518508525776424331366510606386966560374295207073876830124853449898384191844467110041496447751680620537764544121765730864737013379353221160428229375553589601392540466141905609046383146574339465711402449445382558357437334649548229646796677983925949105064553271108768103635347491495125327816665236852375785764232988605338569572599734733689658873466996093418977061205586605399038209931082580580824017074399893271698438456040641280625299015295091519971561346724327956165501565860700591550956508881148987368440892861934209020170102430706889957136863025746365274411313369602990115193249064988390858318660808513107453151492138263015992660518410271457055098029667799729302141789633946079507643731214990407851194325851372959117428508873781621926168825605938193783070766615521803470203413145773434046204682652465132180135374065645086349865212840699302517044161913279700795922838391521336496323852981660003696074260246145352220740836164841628123618254172955669455766529670290707638105525040899717047110167080397613179768367993735010911946698305334854580333315673278770940584822377258740237676972613470888180783916110515813339376783081367761918965655974979066940910720120480318254309557060689384877739175338211502303517416860396355102214236430874610925560414550217168804771771886008210582959431771069893366386290409074656206690466230872191841354338014094461636728874935106772753854499966798454982266072239324266899429469441727777299452748018739331756448278411776161975869984700823807241650046232619875077653308235262486066671360195171242604521470548754422488871710842170284706265449566789481436412366706728311810791428174619682857224425841756583686009673409740236519767193886530543965431256888428273275786624170972365412290303503117355156655146390395182655395320216844723496758183545199417317278087415535020450232390659724500121907950300551061255874444625775371430499719908032573441203061995752861067609909093659271771618761605390182083873734017469926583733018526690285185419873262668926333479637206459917560163820500697816405216481325209487684006211542697732394176901855181306498770919931751135649603034688586456022854091765049571061988995699696420153736181000647638618969073217702296809303536987139531758775434246703215256150289886682633628312456283983531110245046216418528617371400037540336501948793221845990710903635547306326519075733557717045332345373051238051950309529942773677150351125202067758299871352621797457214952242666489496067718597889092618337388811801269549858412167069281131214835463345029612501427330392994930142934360739724027822771408559496062970347604956172039296235355322286510316138918148448512399127563830598975172564518154109991604154293228290246015365645457426549478473284513702549065109932098569413662224331803342449017482431471523326720425491893353515768942339878983110409491148406552328455438587487444440658416760976722201053369763864873246200350404800184769688458158011087927503053350728452622123504077999902691636976106154682081627892921582200045897548366086578918918280996567574978251274096593965139455984960703465557673273371852836238682348355622417971909536693545723364088869608626463249793694678891663661598978908839870202147958095860892822369937425010327538631736336590080227586169407404601981090197631244972068807482134123675114130203670337113289396136430565700144938164250478404328328792038665805978529148276922698979793973529052379578573996106146561717596540042670280452144332516012798328996360566061188465285300241229371236362780065397975578559642529385874668155733281032289024287136177334830442249637055607715807480141368581461696786298709398745203277914813187362065967069705238060965296466516920066961892088802731490391993562567984508544143776305449639969057906368588703416932122752432797199959573185533481013917839362203577917130784406374217477066968764603802288308135576705788098910953424023259325999286866369949775113109184988665997810867581846980204608232925138800993578743041226797916993374262357801911182994357205912470420891933816855055499828125163707926834877933188993253085876962244860002179593534134136495582726119943276078184612437076421862258284863590972627229956665908849292623929768174124506975803914120622969104713126842751509706518394665980496121036927215977368753481342247401010217465911095627092427588408249055824285402619773027383347551629194379005720284309408150099980712852722596314819497115990055918254178628281340405063062163974764210130018103088143227038493735881006975968398897838670994413402347800910200115266677499860799854849863166156069937425993700887524549006791942800595012688188995430462263376426801079983401921694702612993692534997657521466416558960615119289761683570366705691303697552143401723328548570875917395512198352216926794937287506390446135581860278834412091447819410463957642885200579706469469179725188273113790688840897584304730679947509461704682059785609993460867076962163159998529424813710919860052518660056593878345104772998031087772110779692292620436309454653585495803542439452028101263687907169341541734102473039195791070121297835674606828036937785245994800530680116400977908662002299610001928527463335554645554591471441853039855959373342160662612786459226016736135632072161082258212624933706530868733074078200319621059697989230543445929614591110810975928742360328469040352155699155287788115521072605862295863285929314053496541461947447232155045581143435840327860454626829335999949276488577127663387020204479606632712176346061928530671240423722298868366266878224318840642762381891546434663416791725118722533111005344365802487263504221254115228189995619683521246547836833442673096589813764607118243090208636422323479592717901021103059241390793109400217944546672181233975784991940380988882514661132778978387237705736965400488773462286201089824684901986684234863594880400559115735263658518292851937440822299548573068331945678318127166242656596171700961111021680805413818415120927296709471382316133553821842622629834928325184560194232894521688660881235767553293633804619097481671118442572149968126839650657832953862737560095139914709345584783662403627659499774027660998283158441693388146423542403492347492652130098200411421292793108346489939248135807089735946566137318636246993178196259034268836148681407854989286746507137328644309434940746174079301620840206165286664492658748200744969455208167354322858437392789625189940984921837743450382993133488318295495820056993800240395978454748384295604042493345572114916006114199589093056536305553749238226620243371976775271570229169277362934395167081043310202311340496159054487594298672400234317843036285371890396307623308805847788287675062375767535748997668109665048732134622928813429224210999781165316532099983482993867076649583439834476105219136440894339534163328542642616204912521253025438329511518265906915792340088153013795539722631466943506033195266019368891863472801140971700329099270138069337833430923708401791923796122731121621108878700240479417298042927473330009570416839279553245381706313746389345564302697879772100445215476124865622972899467594552256057852571873590598595935765965193947420591777335017567292723803825016340388937619257197796560448949806961877873566791645987222529891061119889285446968238181883175768962775958964209009135528233040500731666270742031063511743113079559752876308797868583463167130207039791380849677011048737611167826642853833006770243495653004827402860787291479068724907516623284680070616641707619250203849721015869382925791194762337003857117838611433148805401437560231714903982153360369888914910381621883005925167009754611392988210068841984274331351371449665727400646886098408014161033065381145717063042765635262504683852239486431703060660132207925281071310016956485659034686040806467868855598582653395811444865668970014102692538190396500205733214447543241770846047605959670269708348804974215941293440034293158338511664276101019743737781919044569179402601565833658159911481129652899680891286725465041428622472442323950663375998968910326916995721202934792789064956366049184960203763012365946458492433099480712966176552004546882203124068286434787687593558396919860432055254450128393803222437004680244564157256226358565376902622570377750907685870194575214789328471828985257278459788055611839741503104535010125577970424630346280662974460821838547277285021613748499956614199169017438254277221711039868625242839221941753316252817296092415041227323431370412773807450051991868088234525101863867337807476612589503482645145146189729325487151841359820146240645717765918449966490434089477770362816535011949343022730615112713773510353658370247618488553279843659598722657221709364270912655992909579269495905682606477547485390313590514254293439803052088620106085024237522635920703430846779222299054977506382515389770270637822521911968759833562291234338332755155434450957862635543548573230026568458693909983629008836434467659741724791672961742512612712623839434309537709613123662339148246638815029898113593003466659283203209191824190424539411559866874145284275082041532567697049291624318717287549354859990286411924058194101319577051587519218829186768712089565969401598139208785653448827003268125942683208760775678795378272139138131345910246141672882822795523749473903580465522115969060784565408344860457259296190279833744449196350468518965759355232114784408359453310711850946670768788251736907623233352779338452526636295268768736264981372620457790465880250634154108649207633782196577286192109330175618446794184498325892470380910104096871262650754785649700751096063258826536227081288782979073395031499767314270052428624920593374248035718022004702576735586475226763997261137518254828206345520153164972659291278107632978481141007610125120784360267872027394235814994369542653351322829829599810428807513826154614031788316557516364779035942400678278748910600243356021142374078398559561786798669989181985468564258595709249611431933189968502534045478206286426702286479238207582065754035139357133629306775570310067037913307045808764573854007987086951797610753963647371852263342107406736136662553238583720300886695732886918991698492129838420479098290384286103247245832371878066726451751213476875317877054183280684982759691737556794868453725986565461929620755999459534621854294145740757159018412436097384016411956257162168559266013083410858163202570605974898088989018828458306479741058020150081567221574161496708655188968852669594216795554942144750609035227363258756755922507662555017461098211957316737097954637160975743635621649820184771100535918497890201358397353046979410528197504077524666319954244521101316014928835185228935455527686311794086280110104901431425863896494170611292955951579891304996401235134475824239508944478834049403004676335687732405214397228377501333814764248603475635882284888344823040515485623021956879820326127980683198414926081479217016966677375391912567943590991535654051339049356283832109736136189931091190381083814268496030618750591477726456988052568080487485085346181861002703124675341026214006880545498955232306650351274980949864536065049825383918702581647734548715735681344142256549472024873359539030813784257864056960124939584308221573229309565504987525740315780923865618574851491667245279703735784993002654200445990675521800481994170181036535103005191162839023742465172736478432718506728136908414202253877177103616210068523762612490001101629759454676968362933024726049146655874724693776564639591539216534716443337310472279429278376133697056800161265659661012878919799130765057250134212395770982250666605773865093013000599232356455759606495328065302628632324915598473305857917686417413250218591947849663551116989804856838357991347933474742717932818224739979960059805146842017148828198105433755485346498284412929368946097713602556781381745689958690255635576258696428831821760346884869302424450399608909091020323268441697627251985443983927983296081872458214162754792719006986815554642566356158548445634439688648671391775460235107512766968107132617522022156418192551322827011238984269050842918246005760997968995693830315178727159935034378879950237769794546168714687708311196648419073796145834235468886909006716640332025361015782780775088565935636348259573418410840024270171381917116124799494548858651137458681037908808513005913659804174373667319510294382150372303617082554871764976985472520896297966661592236420324380859536900350575929116054868082417192847869209867926506234828844600319687675618443031064407061789742739348127309003676011640884959300671281187478028864854769747370962104920299783443603202989470940608227249912712806772561660053015684410549106611042346671248287753133467259249425434183435532699092796215550639849101536363235517663795126774176279025731619738173377922918205213106431866020772388271634869948741751100012546573977561411146306179845396594593628531494747181594895002113817537445195520520994033272914031188356087772048325870670787436576714115184426813768614967607350031312360208662661252420768920591293593219048059782050420441115448793581587092571219585933041062781319121309677303198644898219805140684631483862090430165941791482785556161718497401658949699075428501089468125091876268779881012563845382461863752181652216728938571017410083506319974584167360997112101600792883558345219961478765327602067269333457128300175166033787008263587450843795835661218211249477623453810373579461801788363510705828169163259599096172833374925671367443544706594182505409815783200287930266415449565630142453381788694339927270641587641339278486772216214720718378638172347041041192329143429110259000909016181830155599016393673575971117391209251645014088109195964771830118762120381617479965845841496169702079443965274763887974636030202779613557701292347344045252467806913443827130787515529620681015429406843262422696674435812202730295308654626455078498271303853703852776499846721370229630590296338898047565602599043534889874453330850620338770377068773497560568662934279474921153024111896666076852857002546743059837382179881467432535501597654468368041877750189816482650905081988634339158837385243859028620771395284720486219565078924173119031946968319665203309869633229343239411502085697217394773950121372872317451415191287481076544521170143024655610444550872075158270899254225597278542007521104751380300695712954796125765924709337716986934812893994208206886710437650310850226678275127949521344146879056227997003114038851538778717503605646804873837801601168261120724826636360350097810044913052165346849316225937396956022026399104825937764607531033054978288103468139193979654340942430933270330858524416213204925157471063431199178449282929568393608626981341642115748844912527541096772158815794710084337235755628381054871629479360504644769324528389303454083529824402049702016536686411635333265203236385353684723357573359237045489109582230617093112288089899094637752314857992832271968214825877627794702129920623222416122451546171580770698667045707234608463186581877802609806889749864597729863781223028622571582160635907269139228768938425266828523841464757975490657883083531680344545721267061149274814468430852517497028740757636499609130739015281092004075156137840758468327294925618045259707514129006883707524051289066546566225069579889666997399352964180905648461528945307212654084737661750587850893406633679494810568494709899102898473408184951852582618353060104891658830356281948642761452883614865379594620549240638852202041094432744105982479697919290111420771090004501769544215295928225686666305490771598086118516158492183946711816081347895809180906298104123345064198135866411504318691474084688884259501088483100186354609616089647344925115997432103155991137232323879648715527494692177352844482513605872909356814924110282891993441359236174878380994485500005809588760303501997340398033354788924104863304929507055093845018105226922841446797677020381228847822124457319001525338987161580135012093598334446361868336348473784356808200160897913785271306590320771801503299628576466051437689369433256999584866737782546633745929342073972965439647025267115251124982121697180344580789274079729355930992716300142373389325176042672548850133533932019731472366279051907610836509535290184093370770777552846922892682658936356310310906531943098731996794094868099238873239550689784624353571460646826643097393807701791211460931245349196718644300421045104597752412639549461556991901395288353317969453914349335584410381418960164242014390691611165458402835067023688740804235067713278430269369955068943426879467705039957738559790314290761308028778236334821206591238527037226624729913907964636402456342578067165359175379127067483371335984451807085417255861093687955047549110058099976519315232886384579448107256661494073483108624294719542185977498518908498394150267149744477373421232473137547279879984284959052554361233038223030761940695738548257699651953407352649855379202685765425473369633130457020322916366522437969861521450461529699980939292529381190315269839426505104132514592360203613965027858602095718370433960545059514498206411015562114911290362700819796292787657136292108406526121014424700405146787454830735452384808875882883808721446084454520408506191013306507771441144668449906602914946641503332136550359578197170642727050622313906472771948775428770402680925693737206020304929941093904669414580677496795904311324947193838231471722756100664502208913002522601371956190380632379833724534899672625598075869320283565980107895816166899911793516584978551150782285497946959250527238102102801592797036125339608487864112736531430957941740308823343858091271767337954601432271005866938157482489325560951125146977141477245266079967406119927849881083410293132739032604815483084448568369830526874979847070221087360506610006928343390260048095617091660282548977375054064915458052412421102424935288685463955129037609082934509783123789834726748271299476143152861590834354815431836776668379909711985261308036506339723496714928508879107859725522097449672837028463207924525548903630783304516107205929706315930077593413740146217117118807293162256269463664170075760133675317004656901139666035253299625736214631378161917932917757684465712412522094971896676901623020464871832167830409363542765095164255715326982889278007783002371725646169465106597611773295789404362216371831146474468504137999611454583854215847266921322940415376924140888523045055089835696141012234666788720373407071777854225191003716915392197228801306970397598842163461363258550857356260965948348418176935354078465477451589464289608581998299661269985050342149764760257663645268014587987527334605768665716969748917383617198231247477294225291718061823398789181539380292661364395231304585157834373688680068422473290814848908697929410887119552431863813115991174177675543636160918299589808388305790165982984850459279811422030705908503533011262653583585691554390023192185478661767829492288902287056282031238823366665399565071363164358301240228162970776626746591630363872959595901262263779077092579159769408068696842200619750434077985007374687750198945335653058560097642931186471799798381156099932850586927557033455182345169149858107091175390286130698463195186592783876743172224985970770679382940183192540842053253936012673057300300757436657393135372237481895058534916488589323608700872677050339572737384409033513230053576703110357215018819727251393958221882119032023833270285350500193375270070242843994604497098855680515535666394094043442966303638715137197258974106696258581507478089508421996782301583053590959149041219531305230601932660633166459750003641681565622829752641893725533614289173246567356089530044112077389876057285037212831204170779094055926624449663242062655812389565673833574751810772139200104231866043435190221801365006674810290363875232703184483892116399663728681762063135411451061836642276916853811784668606305613050922495034271029761711591073033261165138484137930627905463194465246382781043351588891612001045406730559368230053358863273562498571366821582482593731576704463719824563693690015704284075396358839145758673707479701277061850814840648063909737637838973696098442882634594766061469848622454767459251086589610344166084297281471154974460220459571723188742887777324703331773080911674815151450865714014573876687708280294092916022744550141288034992421712456775221669537780999983759913326139878641053744784771545832682524487589835460895841051016853148310952909229687202743138395828618273382037924981411798379788455641757866994309400781821344730285758412355448928864435942221630345705635374201440827324754810502625842761934413891337996720044096609329178709427851537866382664510527333827333113570475829603646815476295772171011794360259021932208209591187524692461609359691644805338760599010482947745081533980919264145584013256024548420922995800494630734548144361548875786729239861559694477974087872404546022613639171613845327249107426642068752411700491254897499874073234008574914707712676072415726040940031113915180618338313810708242537421847992341557513607834237741091191723084746686846080158568974619079265652925119250123883595668546846787356266535377857509852970626773163163233750412216704737717223752441160426908377946789339587684665698848775231830272731803897575076698127951899349762510351982648672656519772403326029993453450589923172632518390745247023111160222122151746127721637406846975010857331962745752351519972196637433260428250397370442532515196678611422713505972689487698078183981394760944151932411512282125353648773474016423652143132758476347504916623314320630853084832882304390096136165350190667369786466968718785192043719199354217537011330791516870574977524285756355704871401855238343206305798025069481187084894670599335275556785202511543425455742084648047476160162183003057765570750895308437074735684728763718175683501055163734148127988279309561424179040225157376720712517246696105599871536590959317124785473378876239941484025345477476461284958489111462661656992479515020850489412890505228214756068798730273580743838884174251313420601400808876912899427714016466516470500741533076349793698375470494873389032839567822621856926405307349762093004639837460271570196890952034189699723508905503158850058127749351234902424134755188903583941378351408363590444558710372493063462242131418612356239934118490913100081330176400262927846107619905810832066533987200012911623418921945833495617556787523280423935948661200331401985392315027368501801195984919574421281898773147656198637652784836481109254506175876534072870797061134608782745413530577010791027610615847036715429247761281361499176655830137764503300163872365001958845538271977539202021547470524411435859355203537896716094574814973976257386177688380747625618777475189793903596918538608869235333522193696139285986693913346984224112156547298882641443185612873995150087442074497124329478052772014959832929518028046759463089658352698260252017691676812386008431902203339402517877696509135316359278134607306514746490406110500501795007888555654853152768448631958648511603502377653485270875652041634308306690519883093907514849495924965764840176326086080672548396171876054321685081914887727032703542372484823738907163316803642912149331190965184142681218583711573031986695476562998851556088703166662173396482796751541707834367816497766910650088461095975706744685714977091841917829697639326175515003837822520853832959926125609537425429635861705615872694003833932036394475827761358446242723704316930327515829131896289924823966102888346650701615200623711858906385157878078986935866014353041462842480496141725820327717727414591129557756627923240182388887020379011027057725146857813291711809907350413510026724990960750947919948494094791084208638698829151074225989464515992371172762142862467416320828105137759420812081720807198596938412426306808369495396151951444764462036473956179270778874541755460516834648314194925042933086958023315691610539976059251182137162106285071612623322334003675231807616913037548657711702421747335859525838849024793191315831278766422550410876323079584489384670654344319724751680318965096101812306374894101605968956920799841370562305534776057604603182320114324047909980668759653666246808939150143757545178381407441160526535680571143702590162992137310583223348956146539501742056980839765415449124056579740847427198546546080050718722260869074821933402884746223106448277434644139513892552317916553942755027183308011897718174868441981470227388939270598815762762045330690213711049108844884179812357424105041390549297624981394272610633970614076451130518893477032660045958368758267038830645266160941276989970732443147090861191672087607372638539392621591148995940297103744935708507634889272754839628010103470611865766424457449672104112611595746686655762372552920594963605568239876585320428962694426068949307384845433329184177945959385428511035102782846789126057281869194253741345830222124158896037922721611002453690512847432011837077007363315570351983606627643743368133849665662789807422029606632696428429600608891565890787946052058614894451461565498354042323965446409603248251501401625363130558940799254400681790391777467029610340355525129697091422360694755383607223087474849149127391072597164505612938580164739917509904564401913597137875009653246471801465105812034927872032041804310449220666671796125508250513217365319179432981223685848751176378363640102925785647457731751644441053984266974293690277337355655873464443114589810120256210161894049137499798196885954796277425134730288512379409754486882104064795096135317023657416278554828483203882350281691270860187272523034592784499201485580698734563264746851110801481535860914470451313116331076688405059332374486484025908503809704615722207853510071476662215258703243170065183402743866988129051762509973663712956685706779405366503547884923739437777530268683115592736438947180062444880467657379679363741424622831121634335650139960671157133649403589791167321808093072801237502362027330493385234952384270995712645342561101559471530000657645892289485956933399529181155712140443581468093540812737528366999004576168531366294270774585635250348514581156438264408604487082456368050131379999286562025812295679605456801796959926669630585898500307360025198680857483782217241469667941701702252516461094728097888947677623244912175533698058336068097572073770596892175531526062166940545490071590599673539179504000237270908112519547955390135438160189566617125349695493259945604439902649413728659591068602970614571832355165998694904307731149097641576193807027312823751760050665224684939361089228728480953737446271173903356413360734425014081928419849847017222171594716535894905010351564053843076348217163817966001669874112237573200184518004310162692293154813672668113449549324144360717660702170906621152905724967563709106186075528664439830699973947074673872747506009111480240199873413029390882086264300657137550175957177199742170022442284302228952992919378712216836425649789509190393229966077707666577302991023746938394822140386649294698446997340203888063102749329049669407435263315659264202782722327229053464329329024860119093796947593102592221465615028078567499346625600416311485748865782394402444904151722545712099104678215892378376274997126248682697658929641115321629876174939661380211518548589564396588715507395619787099231595567470719275288087927716538999693839349139095233526617548441948877928747693702564745373502465267107515311046482362776628878035544534102501347974597968464722325687246046322476586496501207266164424419826409189947180824225844821702371862314981560308078039965925052006413914069633701882823311691330397773771864840533167190343328091982455905070296204828820162311113658180921729008557541747025268249694141885157958623369865232762642280070863576765780020991517039550279017395532798918205204015287824180451886870798967853169310571464234921926147241172344758535705126206807559491489772764840530092620226424187708086535679206035660517380227359502228907976307869086587412786776982372777639471849838328392583035334070798431582577250189912744901578681241497922121932631497043501144002741817726430406115110664653266359446873324493645799045143045469799093628402967791909536118283511445079447032379023871460047173579891675480590451273542955210104519044058680675272626734589844801233849219640805385185778584128495273337303478156620390793107661113069645600948461825802933256187152426619592571491575330019193002823878188489387360043464424773086764482086973255157613706181051294576907045071360372740432887471426341689445425192295080338093078450822575819576004770394934572860276022502610210702537468012845075711121754659945080749813861518636777311702575741097591828816574144861525105278169692881774733894841695290376906651167694112668311373681394697986733864028656501975717211932065367993337288798628831287162155351581276430383576363852178818725828163748454363711370333180637855411505483820387304200339836455274524437486846153991443065711382356190438108384938200441158675954535369841145283150793199344617271076978203325054432599643881867778785618417072781195782004912274847818820116032309422632984266341241730684184270474107366274041637411754063462126667752027574860089952678429551998803213209229100913798147824654790752121647936872964938029822705788910869431210113485377818534923465964767329430278675476461164905118510155846065602757416651494014734157503149808457711298495931592301866388532756361376712159843554546860194372624251586605907590779306445622987069546411309253309134660211244052324492914319616464010623739230759506137984464364621501027862548856133563634418106191140401379498038669704759882513493676568260720449943420403139242251108529568391876245714874634728626478940531115239463442039616799222875021156014349082380073067464336844110759958620662589332400267629454575869318831243222059391400511410446091065479850909696457612605122670897796271803018465127447499913383410401366852045862476706751603202126760330909271132331314690743989981458069264161161095173741260171885106220068421195802388825804131282193424817677719473564054860403499406967318330783291901148619344451131126356831461463469142765925669688316291686036155875005875478041976347955837562747750583492935727654689171095730578802018564256135327835083044868064391762744085008618326537929514451630329215239085716340132755996254750658054392123643176242714448865981839756225885726933531271241594053793060608708122194517293562683877260642843381627924468516389630394414823184779050622392163886090768765438496006210679016759955040539924872493214741822768439490761380873274806257492267689701233920586299028338781438046543188029008761342740846664133447141084549727422974472166021908472053837782119971646929772297809647049845912068195012300132202329184729805373266621443288214764290059066447491787863277888369988875124273724740421097156498395848132516197238119186196193358175939420760387214864297606334983400920455867354772667058884373784568846310706008075930621915384381409274396941136897799924902830543982454449826168145391169437576593462382967204254124907274279763777493613680585508442837596560156973618980305429013460256871104659776416898280654153784751850933188716232162889517092109114384468107447866478456423466497044459681622786312814860072320689865370362782552820674290727737627644658252790916148050403799081779035326046596036627325313549782240949976946709088513179848809816578801604103431017048887962148026089412543660527466235507919649071933576002764062649502288916469705182676297938054015325887400721726468427386876547666445461998041831105798243056838643593163083003457962327826509927739505679440491628696151455569297703498183909418139965689390421486150267505023791578561434045698000494715250461648985598214145004744528614524108399387717892821302156255585678834733506406546918579153776500396341868619855413604173724081608060731445046227417559758143821412729881756413301516166301673414489459410494229290414454545094630084318895361340084278481201414221055475495969629708164614650286339077160518354623050573247855462057427771549791842545572806805276451110140842257248783033202119080003077089814265088765657088364617275871199753278768008503792281630562768371621849145747263302156497879436605801636033300034600910177485103837260265043322545213389310622732026155292265662542736616043294069637391431283048103230574461265536465398403948895083064236199737297490515917601793400087256379245375580549722162502269165272404936535675675464764923050221003268306388215241787812658858031731273625030566333064188565115383950461179247281373172622482888496328925857661587756115504061333811730255316213792570209008666250618158075814926706242929527941959007189302086374282974948153078160922425328200097862491911653356754890728489864836973819880395978304202547425148553868905745190322730754662878610999252315351342017895330797700700285453118559755800752150852566189622421484165043494479801593829164939750584907483576472455152809734702980858298958660204955957869402582757557847343752553465052913625606880215093316926937350404905502561631746140745349179374380799521423475262837657620669607207591119679656221299950051863658572487351627233887466417737391959292726785905394908421531523766796258354983120773133840333381558756750248153689951221674551834362706772499788236701738649312485733466842959382221657944708979694646652891296576368960172092459844867682348349221766058698958626762223202825147730813679146719467593152695317459012500012217863661335794145501220766985475277783206109553579610771376407374904569025128564976777904096848167082070894996658255067816534891108499059458393578959557104783392225175306770247882590840859531827244734740578296395706822236875178308982548589717956633595984325390876773307508331098109139402499911622670259988992027144868223574934370543798814551970528944296373994083847559230594817151858165628839330035065532647459251931615287633117057225680636401829709437402094096132923999247690428351068762384897810851775342676202443727225044488005574947663273499154917925660445833811356105840862656190083493513058520641541974376539798121715832640037440003465482567966266685816235109921847683549760566744853843703281016456270442565840961018952082510415509373315689831416330259546341783500675587765523553212962926183600190878668404932517106940517397331551526618184725914872582722236922891499104831257301950327547802726476517750874729013564610619949177404707976080011789527297273664231308357439235962154208664001958214564179287675983863247185161582076345834153809907887983863064137091682970583313350182934801592129183137678050497275758255960223144505691432939077878480332950262152592167732018652022801811327388372312422561369876352937766260755283556708755179177952302307686076453255656603832182141319583810869898806217358242843094440975571635571980061640492081949026236745359599852386528986522102146738325389137765991714639220772085782449881896078989382938235830617907934452773378438182599361564101686522538132038292288829460714851388573515309472461956019030193009585527905482744565375661790851625037084987499750949167099250514835882874977666981404890893902311190671884935486775416107922351829827906154932062107442184756047516099844269943485574328713574173815731748483292861036947045336492540223348469114623324494633830155208864563998276013639453838979206087295890985113703121865602542793907343086867382866278400284516131878012747697258840198750874097789721490495536125129437819052726250831483163211542198699430917426410970646372900669867688041505258789895161330417180317685737581615579451821470915672662862723765609508220364265567082377885881690902775217884472158258520218084677708704068733165202173254271693699153840165425057077648566884612900055996587243459147994101332077652670895244434147053861610783775368076201958967731115826005554909449673029973650726862730279676056450654725509600250672506365501094556290949905901058160980246031565936337930655867195070680933577087341399961752790823319341862877643437297930114037953461375595700784842549781794147437309380211911612187249138089819021672881916256575064388304158235104603381679572620925388420331681690872092031647847786718321221824460301995392390634576739249933030308159542648209505395990187418401439963377279961011075871277613049610373120462755178636033102193195292430687052141620008076113755916392195966108265192330280177792401893457227542643993868588721393665250589058218950592521905091218505713155189407033876895361510425358856606787984842908242494811668282757796190741330941981616323489100840483524667476908402854733144221492186405864505441374246320192706103858402667214447213163742314774907420184894163363655780375886742720041472683091678486194881433713674987875697292492147211519277633036343597305618884805348208349857653988569966963179554230495757483069074051851205502509886579765288994706509834010611556672084006558383984036087733138904377102677257545120266676355586133384720441817042217685160936535974040859337240473145070302491030706124192902137354084433142546691349644753543862459237210890915337587957842292722196510358879323625864080461925669153498768637931079276018966916898839579291237314515328630894808838294378209829448397111684126572435047716662875213701803811068223780575258815125872133422477276625664798345541421085397371787193436530777754665703322803066866199805808045743896415775205746401298784060927758768110793167593837118281049960754813993774276188042619088653238784143104130451780592631165554752828933426230890340317911197736911377650665489862441692181197788260417945453468611591802462233185722994830091234101984692321625343101968526026474193669483577489443945821348952465413589389911215294089576530918331523289560127974831717999683353047889146490417741545792652203680693399105060070295293490583921154529890488720842845060732118448831125847425118758787152350895269648983289388565745489885842961222634807151800395761076615425199962552394487928413416041925682611912465188896631968638091326971300423151078933495175472098021629945942123854642407061267084465305574725640145586335494983201156099211210176159047386986143848974555647237107986685994980649331010496521353895017096269050547326539947312922956085488962256463439668540067465434712016560829161850381278985360113467437002031522383885735543563944077305039464079430686520745570341320696487805643533912054237594063658829375377582209011730981555279052844644030364265800221289747508786254642543375306255909555466638971959626329663273545130135347156982749466925284735285382552888513037221206546811078592161638409923951606836206097728912964244667942341368009408524070067054891756785940617426226860522568635064863418644452875776651951749750035112224108020072179892120051447649030565721478084531367603624703611738330820046641733164785795054104401878984049506246132423684843066562840391574189725645832204042785288780276714155477455038164950436157035847075153444717895757429430368195291336622126707292437898398984111436528403510286830311985018662951401504390168817451076327200186326227535867493665317541314271562272899152211543319439872914501501316522860870865471804213242606492294261237563812462225791103623125158949532750776386343002313828433470929157239355887245889989857495963607396362455799435173810859305278896695805832067576692825997030415637140412538231548845791342769660974211955545763066601577444621493551857021619810452119272155166166132759834830749503702982240520376135410502725226006209955010464264076803283152508534977695365093341326983044580803915549395202845497962615865146718910198850108062146538059671385766760095411870756628164197583764689161018963384061662789999808124424706560306716152333836615705904593503043854790751581855058611498901103974851045811136036848075807300343413345451750005792331356902087719419270036547185465676367649350104020899096251498642601374862222238629013725143598562359805251069957378396353339784692904951142511085627689027210278456741874095516853854571726494980962893701956467708888472438215883974816862940212302470326067973798273626812296083651667359506639743270513119968651589619978203902062178190797907585729590134412561705386470071587045516502760598828359833524374575870827110752340029468850154475873055233039047610815399153168060578922868874572725380856932492269473355881428212944847261569429915382030723096622604575229434607004973225028753906494786181291879507443652515235194504605472524585452862649574370496217908321802892250834795646668930301135263375286480946324191029412862146671502059074200167210711455718592541699569531869294487958394333633048401862234057966030812018437001420552478611277065504741029883416653044006603747751092386821319907317880964137828587480048314143968295606682208630975728780637587191287160300261297940403623464484417864710394330522130123785522181894622850925773690432354090194506828717506764925666411853902875086040695146435940536825621027870838591338415097591708822259591290394196077131986013416668738904335849296415690656917099413225693695444306203800276576747221497655064073988010575674067820222192916563159141379673614802114335191329390407152539349443877646604659801682447548832768127535081948487040941978657357424942043660231889566756965004107138480868925914973982134617793766384634070398315480735312881430189025643113795507574994595981761337243507554166926284985367887575017909895245562149161330602413397368071481402733696038430440752840922669280879950112789152561636239283366364238387063936591094857204363080386316573362399046511320506383960002141510315929644724527915038015533616500063337732889766658219079636695365887386583917109718789348661724427549959648691779020104086708237997455798261130407059165360207334112572216785144413802971958663694433467458816096206949774600993885539455949743729767063708452218746843601426045199642036962136148131614364168274841146000252468335719604662215802606388621774558061589176891077425193344268555582688858672078592956327818475600641524319590203579968820983219843000086840536196433411775896071562953969969023519410666200452036125772716984486501797101966198485731101351079497976413911587367848666808546740764710107169215175900539682955241126402182088427210106357997693257867476572252040209367728970569344404840532743541024319014055084906293441700647500986918181773537515967831042243183761057662226526312739315832790572773026768296947146473993280520439458548744810819280269552546948916737555452612207472422562527043409644458385846214913438474663760728346911936636735422688779127367897875285084938715056647248710457459275199809069619066034788236529775239902837715545771637607632096817357342607730871699589515310666041733687015266504515774895725587708897830813976810289054561214208477792717252365085219518892354902590589912935830808374000312923008405631959582311761738512160136956441318729473818131261213586223646624091375356670244368949610822582822744634574255690598168802678231326508511758081641412366744370663163360975931109954053980987782708555076308495759894079195299701949305623704357820620177375708628218915745720817903173319274086007088044188856482813807094592039334569744310504019800798726218377991173254918159670214961431199236885930578654091400926467951366540820388221605142190279695123497988633702719327390419989040411598199508628517457507357443412938784827682965310828149140462097038285739718510160911485487005812229380607785514784317852910397381268503799827405656580630025157825351709170055136939730969844203459803354065608637170246684236368782771733357746904554219834493865704101724792734714927918161462574518489417902722164347423066165260881689497690799046358140856043822252484334819437001644455147602975796613871801985448948416051269332131901456364564104587986819624565325395455134057736908214138813894755695504847105825003941992130160823077595344015046271252318094956009488071396199894166850277461540224983857346200894445257742756945406382403720963277632420057414995594330216931067144326139326635334074066403487223019645733162752415473663018732970477804961849518794911690924745441608435407518076133013589078261743622175068495477476768400822696725822002465139956261024416635276870511460633141816548467845610673548928767561359704719405438639010534332897924574308588915719989487319823228894098762806317168340583350895549869668071924259129696175578824478582107192979987741405452296007759709080977208205164652454426749523578551336848295848527703730191329170312231105359680646943203100904170835895723921416581908371214462257509188475419254081023409406338691482486526406154621592746372806390135562930945353730897733536737211826053943216441645694351403235520616790025412615931323237620932610941532559603667481205551356228137725901281913858900637088953146097805856520500324592568086575479130810848824327422718420402680920533287794902743650564505465850692691985794180162688551440200537606876053267267983372189316295277634830543585430548207952300323873985061833499104633680940784166170046975659792221616415759302100499164681733031308618626227425020271357236886045625564580363898485402214366608327868695887514928082529803764451572459609381267071400311566660227901996524986673504544516276549632075293001253640280850039331728220912022120935198432339180054810261124024010390470391854552332462985978973330935318550578681235985189209491220016850325274978779938927769897957360603030242884414151752943972015263033298762681711907162246538431686113326767367773755598869704447752403761286099364104762217434265602554284966057498592874784940272710516398456685779249838714716181400633089322967448345440185881001949884958766261415409105560451395237400638650223340483390490957182897255576048989635815317255378104855844147631850744892364451035952327438043255456108066579996967715632112583092252358959793024843134702753860645411582032492389594580137907770261357745597144486069026823379770232645116235094783376225552611121772996979222849251356802566134287760788194865755597813619997855743688257941729875108276874063502556386145178810689900548608776250548297177783684869984476603516757065203629158818969983964202154740271841297191571220359211027641109571242847208178113502513116350991806940641451229176343632073173138585524912971616371874628995077469630179450614698505614133911206711221919392572209913963821855718799498973449933238816443558446516623845978757666817526748334295807390382284784664859148732051100008923118039246960890631600510520794542111724901919045438055179719544471735925566506229487642976457777217590178465012176627850283368936375104114024711463137541079961772257231520407708598356296729617242175828522689665165088589233843799849513887529867572685536553738495927769201963699888055709588323294331335342550295142072932953468495029241975879530225466634465603344019173366525127035711252716582300128996302358206020316236137575815642546011065300838795192986185412701844742881295469837496112631030855399338276890543541839768486254981479875699165196639155495389274475896700358297011646974873588181582317133995527715204271252200601150668628452761333571331069733448363027932178647092544510117106701424867177419382130875164958872288138260431172285650062008411865844738381862141342943643445161098305453432374546119325237612086012779483619595728223734847476894268361222836987460969111163309175725198942924215566845968612289345987351911444568523551227808662173740264821985352256829820683079035509974503667397406034736052260428983525530415702805875742809902520368464429286837078946358289815226714249629366403345627730517756654276963040944012795335138493440476979989583353763846737988681456545940560404421936454213435638398670600428072176026406663372565421586698856084612409294163601260784831241511566417331653078982260547576731439228215213238217592860487531179912819144193314877442548807558131855934423956911030521143486189457071143211779952264705752575807950250173144119919464377127371312231756157627842637496602485577959663347999510702195239452381245966482954706091963942882308099572511982957326182054249890058877806790261335150594588578633604079634508142191369896977205115333505618296943747127129361750768025956572806941249419999916513680506275139091201952351874016778072797357332675428436679853050124568342181538211083667646222727964060784038792738897460927763109931175501144641561195181133221365274195711209026082180951920415489398664358360866922351545466724808389134544779216348281055465413801094300486342628217455410187657719114453246311051397383627088815519345927286346467828237403541673101299226240133019211271581570649076313617095452856463010807484973027435960402687562945096825372891912893826700710276220480631916173605604095465092290095624421645254647098266110267876806524672550054366033726618504126183892679034830999411025348286937558135589730729338540895068903784558745438161097114069348008247503204042995031213661487590104919509941432168080998741760228280545980808631740634875866909848398875713499138073299084749306494861371322402666021382147220568897816407705240519925110507056483602703201335895193698104705457743131027967480787945398423860308968458330842726093934781144340816528600429689363611008560705459839289841334231685239330691128964501296012636728547035695649603586216947004353288911069254945004240175008798710422687883777171159056464103614469650187410523591800165370860705283041365827618133754717743359747466829777788296382407247573298259630205124537960893270870774157399569510231385653968383893666829798520075221911940326863929120116326160069918722593895576689643080236668347232594235463286403440707632366947637868364630585681862619968621450765862764987577887675874599791186564628493063945696158690391702403136463378452047299451360200874623035807129977295927949851982863600185796572181211724612942106669492761808339611981978973340831341096054974600156166060629947123679535689473151226618211900696130552845059046826573510039563674625554744265747797520012338355102713423207900418153652831184946425875398233974500536296495572351284895518830194043907915387029814062239307438703216002900099167999734234112173096145831118985451432622083112033053370669625045278604789838323015165759470883441283387545695011238217942150909736539092730730260004262262622164575946335837548110871824488233823083882222680224926585556054497031560746355829790053099887071938216967427690044146686244678453081766984022226033347480645130042520315545298059340347738751233919782943322106353850045116036189556882180316812758271867322599369134984038570977716403950038579827543739902277932739123700726510758690461096915026598650627982108486452395888516737865935416017191589575408624913892363191707429027607296462737550265372795248359014347525580184426550526274964284508067792900552178911030608872302427823810469187881186288820660901754292356039978713458902935532853711293952034778517120415163019773138937708622653916404321906859484223137159288792971103739442007364576453897730914975715679051668622692208207101950359163423084471162703369067737752582179600337464037329618897497493220044983262850293297857094295494961385584504492401129857876396556750926453975502557119586941659431597128482816355061498177243511613678960341779219912789316628647064918201059034091260568291868818485271068047966245002864768827993856361791791238026962997888439848640586219068014213654615598529229515868278171951549327921479850961703086524684037675269596343232381548363202329770982672501141840840994079656592696941296774615756771084272104552485608234412155488530261023379247611579751855630829208149786143980323690459596895765085793053234325531154953242761524129731170996407325935350526859765297225380191447605947990841064874413723824448310299966987828989547586126306852690296470096332415917906263545732120539161808146436561790337886908855888608681544284888668333259130458426357030124099674492777156317233590084099866357552313855769222947604194093762143920062327087611624789315709567242221005803045527804868064159995300634237800205660386511017774765414396832910683790764972297970437649589752728439746841645800082485482254861936842942818665150674317464670056094897941142413859728489537052649068791414557876005355751703716735514904919206915812772614460568657241657091326318198099276589271925168811854533401394267243427015524645542193458616431883689458190430193794626602784036209289012954901595122567934740329948507299797296144193705261928521567510961266767730756144836908262456274599394257478570510967848223362058513678475748244212587724257079020038131737049813486767043504941688458932142858361859033703186187714008082281998188431766056141745395010714706835656496342908227077089534964762291761397797255730849199234781342379096278926646262298780917484119582655860623517969006333115786339941788743156546066190648295506721089229334494273664366584971329325366812909176054403194900907051507336198092233363488394968288343735147429968838705905328429202468274616140175802700859446586564698686287086171971387316917747924302243899879860911856729162443780581097842392916969462961377269354992918794372365204003934423343787335877559402494765565838452476395339728414807033490562462387332562836333986453550727027503088518105248582039558994723699919437845362970457362930791353427984661759471393127820882748007539903093502942464059622980987771919952469595326880270520132825822868383296583181548783119865421106320669364206124025393155350369203874252957031892350715052493786459839523043697892669298169278106647980206564194911952402265647011090352225392563853310510759659369130745500418940406752564524389394598970737646439053325708364805888515981440073383486945721217931858748214260216014077270241440139296854243296420721604720270604181945853011292624059089958526861769009264379348524948502285115899347451152995065179700476257520533971475635665130461645484194193427039690711414304339322076667281423672319150294536739856967970175140503028810160460975982973892181945338897237413725092659507229222436423453830446409699429126127084775451268135843861036275572316954777684793370195668969610664922065749759116456391350446900680863603780006121242637522448553476041163809891474951855113824840579360260123137915045119504411315956369683809082428493249437555834779144510266849357621830384272250595379616523720579688873003056592182101314396992563342637188513909094864906375533110088450083514442535420538936400714841602101904025782399668069378735194711490629111865608001425772288804265424216194116025249444715083464621381789637105328754227575114915723013417761810693624286471846247784859206737153091914505843774992087702189319699553535672413108171789398880478437949162602786498041461151771440610929664506119056510440819503175210222115810570086432079742722167776580564046587943449793033219255527838073360970271277113545754552155804699932052062651693669766062717765479527529605878212100230703323247666319409854375803996801085556183352083302929994928286988893677930572969206366597675610032535123743673003977495538530204202257130002980189951964785644130445368476652220679502557320466495591090198396656512084934473933757264910777284410512475715949332538545440480574478697356321695661903431275350392164689240496021983830195521128600781794844991786908871024388301490519793285851149553029362346705745397822523518318648042298177789475831371104354185073899442197713083227708934657564414275319439885440270461730463431287418292031322087188686896482657993695347294525313123921790839720552326522985040403275528836729194178495892244335467931251108606604987349912802350938664940284918958629293445341256442503330171553191453778683483969297395604218856008504760554060921524450638419544682590406423925298636827460056993342313568759036244294392740938356122943687011170278586648322587174993578227746330679360615475184018510978324678316922659333954773699647418303287226079126286661804552436565960945142268157708686671025768664522306157048933444686184576460307426211035579685830865071084072414072439173786047989954931460539104459386723353437796291129924694888087380900090154087569348647019853215576418412501058405340492559986468809963058369780772922484604114282508390706102381999606388551942906146143432345469870866727189922557102204149699317554667572294231819599758923086310716420175270661070149136355759238826421206299420380801244583851933606361496360316818334438280363168983548591124822484135749260919141790413888708285047916915434669878206441863504029612348324052975711642305992758304058388623683065767443240970396708722263113751533000299630441107120104502482638516148662937286358057803001931050623887552099321289076079879017465780005852428977723735571633348798338267225013481777822196008244943702215759096821777516811738952527921918817129718360665266394826716364894107791974596960496604096350699839589392559074507524205291311644483056516646133340581468677577981447546854094521514484756941544607012365893258371139547087559812567445229825191787944159314991523088714828437439795333868210081224147945988951909964978405922919590105325096615309318152962494529297620793166834714329605196636938740170252374373636017085306724714037669645572298658060069040095205159287446893990385107974327961099601584562395906209009428320835490240688481720395988419511857271259626401000863067602296574205995269469981418669329161358644960452129540989479021178419961867859270516987620082427368262573090138683059207946175785931492413104824868501540125869345157332314815974052070175560285980839841915573917503223429361161758185374662841480122181548710440609763394744538592055473425556176080633170370214897011070991459120326565843736482667672958960203113245704681633770782277370496370395424126237489531655105500957128510147495749964097394568615712273476838734771823707833370904711212547354822496376581487391077939520927165111638964398237165438572389276308396483859896354843598815557635385128080892726784913335729108331379118392188399148668605792493699844109452788880956170730135688695005857549336241782448715375361221398392868239958011741707600039670131525624168232777232846233452824248787870673345970138398498385496925280560466366642353194681007887426286177080026689769789754616409329823809881839520495138232126210913250520477854156634028754399604919551205112033652531662578689011273555764540107984461351466806994043417648025150034801378687870716859000046312400421069962812302031995930691836162733252423355991245248464926224484497681394195394895858138862792735636131729166385012594710826431910925244331579820765080374693448274091571433297493512770991966621006057839955337201619356356075861818502030543126839918459771951050090312441955185949493379345478964798616422006023605959775474959618270895538623273031818845879108644870222255756780072860029431554805523688571495226415384297887390341597990956763506201889792466176168217976937021831703027817503323800584159288657441854645249177385716116445069451537286074042977114225803173965452368093544181911989813240688022592910080160608831381635610307684226908056531565722999088331516698954747670364048594410048738865515223815340927621618092109561055869512580283271688174258668234013030560326454585386367679318717931143650683923812895895172900682265772348148847127535543901097636402995091468275384643126477929842257592475563294660017984663523453166853782728098619990331234945485195869467778195905440702665328679344894109128693546175355936839289254559211535554653125090738957283346554350792796350999169512395875536118373647418472049618918774260628850919037507007805781345337152266608024210404711747350771874399222825010107765959987585172755372592181800461227026448611099239007135269886455770811513995719099132451889614008718170849974161335578035770180732544163352748850782935085517756410593574389201084980066191767906750912945584684503916754461469576432194299746859849605504507048567634507253037535042665658995937837754099268200364327882213057170478804412121908162981606769782209337134170147099402146277341473090127820100985935402665861797876757605699370412706781856800891312130944627967507817648628003005570629030066634024297790857518568799111100954533507665428181455729039926653363048568844493513385898400663917293730510823791117550515855415773508875605889284888932574483207555542098686360618313347395261143328626320192983301994033230444711110723294220183541204529787851895224593742461605455122371382880465861337617683305726562312812813324833843162621542477278277957815619529244316183423695875283887345207455939948438685370789718706602809300318765954083255713101187159708207454224664557833682252074892577067564930626828265035652411845374155842563276795793698481652765001663079091989326904142470479870792170097436179001633855141753533552920557604782011333864817568612090743770756055903345247943876331756311644860125573494899223482100000932219785728465982132635444728031416896022049711216008194928723949118726519548880620918254807387090292845873852114191416864098331219195952514836708837963440220621980429396308981370583217084456998431878014592527472700475746637512521707937219764042617631721789203330116452105149791266351174133678859974790600297453519430978283237488496440935275451212783795646609583083691996132862908220331865865832238442840813685207006000120398734757982096533470633528739503654884453097081004394117614624505017793219385807670671215566913760637343906699549637993551459476072943441970743048102294638620012919949935885911354762591147012087214668655664532576348151676384154038305698124018128363496058947224244860934232426348762794585902707304039777384294056943308909275501496135041172472196413833399268536329388499006144297840283812687267462181506040168617760003684677054947475134982227372272859658758174842732594912736087287998017582597781430008393688876421924275556730358519209550658250487897501808291310231730742636332985289395409922408157851746155655153092261059879097924923928358760531953225803428645138377143099641215331709450319811452711488110589659998068749975716518011409138791847212449194437112337355614258256287353072118602889962924330751959386783507385823005349293334289835625105666407251493027417241051442718468056976126156676011466603224441822932576083404434286533397668368218243534177360152575605437541676458689089950562519102299565849915620740527845764474907234032353239290009323679232408203824357154708672090485638263377789174715025671107028909011228340794538685692002528771684713014986957763351670396285357762142790205128852015878578103893044174104814355402631781018510156047327084950977222571114976366908574247348729739318375422218782488168358444919035240132316718361909093300610474907684837175852624119833310593304991903068793844920716613738580199502346519690354317053409210060519150372284810297651916808467593697995860543592396330046996736887364379913550083886633224173261495066486752212425613269164704477860265757730788739228398179149179029621089157409404848423398719440187682588718863855912681397870988605806111286239270702523136099743981902646029806314236012487525532175314043955788284512474315904564406344924156017646588346862264265042904263637245167683682879992258174269085765587182680196165408337736894233532256873403433148166688145688176956536201369915488763013552757274695689712770744262031575377947000407553996925038176676893882238205148928769711012751321488444512831413075952838905440892106261452493232675881605764962442080818007583672892424756071538237559555012631440146313307247913783575554796388800915200657148928241568739840012608235472000031932077217986299493421743385976449396361016187882846568498367298957926097160639429662914837566581282846703285627021233013217917052696219663229946783722876261988200852410073428346444262022620572138646820387816680408056989598238397669550515852526709313532031661638388366547919503298221454218011291426770113434891958886224221525572347344234373679218187583023806103489576754434763197516941975915760450562356734302804437720072049687700613615305413059765714434520396634359267844327216144626771490621527409575005710189940288211951967497456126701378161583777872580827596123322075654313422336326588109702946897916941550905240586299642570723712121084114786735439041044953900329790422381362866766435212204881431008147866928519251732739014607756944090145489373989273735398059214656205945890080924199853892744127330729047484617813520365869199628795835037934745856092550800807057803579539438099000211366335864501401862829694988148888888369239906005385793446262969711492764632400859381623996955564154212155520374585391003840074831882352627136126490586826370425038712510836260164571472366754604107789518624908027145698546574257516177195571472827063529406857726262625801575024418718206365697696505479196774886905325765042213541837069605791846285552223776061688604482527408505941963780404557109719477415900874183455865931171174707034567186161866088627582243374097257053367414756795555442685849764429781227699028046293235099962091757169288391789603493035055984310476049991721823770466242637920726339660906904126600424693247181458320070372755584436534909721298038782465910523084239461152765198853383231197661752039166054005747762891880345393365553628358961396833364647478504264002978404400456900961159167409026131958350199325781815772617408687106028949402642655681576572728258115984381979088859017249926257276008353586931526175268830280140038122554572272571204337087768812473964115197482647949553945770043894429955212856993937948264146178312097223408864257512303225138140227477646095155091105672981603205782180849993373765682430884942846592046311374141979881773450860617760813234328412571226985145102809731246059567301985911581603441700962324760843149187326554412597233941777168876948341387798877549945342271636736286216404533405897752880938613683466874420887471603226093653635789644209106450048641964267521575687181428639158536541038407001459183650583360346456866824711746187228962832701760124648964242786717961430010692926058560534394147893005520948434440475446055785703053564577706813088377112476585889844257412227497539890311647274960188846452313400643076954420368773972996109133944091965385174963090694973162057775833634105139246007679009657310686099318475426172846814003791510752120007146282134589921898870170507998534492397174589957052310346493103693747803783785744063799344202217029741389959404612136885728977086223634700517836720281755650573538442190069600683300769213774127540513400873813613951362423260445782559318159589670393658396625193409372143339104844434347799188098292862967097313534416618947152762293062299691960325580715060800100963196823789446469577095430883801032203439629498834621254235185482013372747609634954729108870237325392054937245494637337467483340419085255754378265127063902754207247872987209653143305278461505403274923873101537509865187204263670455538526364599787044011175266939972261460285364929007110599058017042482193567333906970571002336622988808263611596295687243569205766819928460385123826676559008098949793272326810856074605876092154240211544075637364360005168363117899339498368065664561743479860702687149282439979272816156561714453029905182081213153832402316666764968291153198985926404453484223671383879991608602392518501110245377058384216171577223312197745253414701495333048349176606652408030413284946921710031686052940818563317915476850000920298548072995708118973785674959590614529892445928463966515318455302381359396212411870833535702851318203192592419237832089093721466316576278029909078915271724559217901474245282988959450828190739151175643593970050935406549095975230285708733420164804240015130626015746401765246657129778615630949033554230306771375742845377679426141350373508967103104630477894619449471622558685769281752379674434517221870359855350262013369253211052606536938696473513778770912375946329629055024585304125808277160043821655460557983082335577404340294633439234376496311242822553555094224008256541968659376185027763950092830831601701734335364370546473311515143100457103192173232048178365526354993325368294425216414020318630091275603001629180404507853403020983647173936203664026348347765342046433616941508405309880308868135121072631383176080580975042468669561190691703557960548144605592502602866035968623951563175054313749256474743336315299055415949740270656293999936908703938267718484284285319062052111734375670266481194072418487755137947194473914844895800949954151247779202358067447599550734764790841897689483558987796410727151700818320127837149291663021597830912101858535276292770332290785919498222312137709332376571791161731749676021933974704660013065749936860078217496304229031058652681676679821739605987067682124937944237355952062447706426892617203372213756831165092359533080702497766378294026227359763835475969098848613091849066439558887674497953649465267776919427182464701835528605966755242606408553899996151611224616388519502971871003415025769121604690059487063416343122947705565502133786397049710188172777775631255059792303073756095580397478648502807168399935633806667122120462698014188164742063860647417681820717890729446518639217489963697892841977943478733288277029170330924498088237299784200482931305911966195120833723738056953326265333278763681450266532898780288216881673099754215387487745201833429105771652039404589552177656374050723714352260257343328709868401728964799712771136637795825733042655441419739286619803673539209014081344820692280351602622644446598686332740784604181733291461819242196744856514865367780088158889678970144263654816458990101014368475952596049838741025437480206808513358416173478328645818034936820179468170162589715101684759658576138004299819523407068029356492105675930087378895211646436658581875937121133110153048815950099177939522443342356646420489020102929585860166333795426454374103978965068828183011326336929560734986546356509119767297831084098788686302753798347161003580900258529209915508141579030786648718873172144546690367934325899856949030988488193937831984159994570411679246831753448528377615928302618266121067552651621762383183955535581294337605232128160056524510014066844255165923284681664829827839033387247337761065212271180999035264550757848755459950313382264909464256374640097902511750962651910057397322597111998854300613211559547283984527884772353039229789212751740533988014928116798048754285065108567370968243713462305616033877316117825038213134054454647291236668388793173325877263276778069173647502484975562017770659598262462065520398654931132401791216343244519821518787197951062115134476650746736863003510686747403797289136225561143711156271245918546092932980444646244835035119170553509901668732880695525875157612718618370921103441491377284285948230385715160365595447310570358970887259670290075431096121018177343200207535315098455621190768383006229139490571253344627677690099877557612892057210377627723328997847468281473572927164288309966548770374617604946719938573545222361986880943403821108414322299710870054195423185180762628166231092983293439802901299352375014815057773510373232783518669818149658236947407254182871741346107797852133446063095699037839835353127762314244667168060415709096402005342433763488886018655786491189541868069722420873811100703133129026361450157194766309817420052840655407622856665357792599505959122526528795395024444186129570851415916110029267305450921950735440616305638982422953449387263388994457952026263545847175978686598441125521653360699244942247053096476384738142714913774141229166333517578668811044944456159655574493006655201580086994893774176198898977878882052022205118531802276574852614402495388968092448935829123383061186007116013452340017344353029286156345039217483434460080076394717605929524670980038413651218412878816806300923194952459301707578281499270621058077574433099235089134667605043315281466191872397141293745348594621505617319835717372200305514233432169828404299388055635490093061564043143667782689826554790701423213110929894201280180281750334705274720373410592204260249624555530616773549942456787781066346507409351348208742864710221335673882246332676701424453789430683224473407462972690172468431616147810045907570097886460533329016620922446539961334808233479216742782872486354175329741981668943915902963897357827670517759061784531170976728263136032830152173031293568834377222624588907683272298859789108497737223947454829209623772254715453758614328306657429232695517395292880465231699030784642000517827699866912656039216211618407919003302772514065022671708816788479477838393348096185708948111721781773995302272470903739861488596171365016908991658026746962334446464664931905635250339158821141143394718363205560368965332489616446156192887872166960092382536987357333747434599496339683763906920160207538566577875117664790564035586543646555706335762815060354185344818192546051881287394300012330071996862542954298872026897680282638934197274907237057090972370123264392472722543021352494789944265979644412313404571170472843175883026709218269336369081388640882513921145096684619103097389106488243746416801246637454290244090919481576634986189831060968186920223481750955158227715576137976521808990436934583138296031407591775838705690105854969394876666138991604436796127517718883002347443160339172999436510606924852230442691249368395035226024177261428550744499154490951207777936363457061625071831882399384393873055307762870909884855594826979825734783436514705540344956139151556616460871562674619312739054001760492724711493459982431792485953445064368936838960555191185222606142699525976191713105544685190289088288887704504845301700004338306094421856506923256124652815557232001007886763579556519194689564126673360753002117623118810180558070271483721026361370897927459327707248668254749173925205285074270303321355325321498738444788408183739765051405215194279202763099833746085490995622170171319229041644943005820140176405824088991210759003585690480219109351747215991945645843961162578743909889156810386351764781669764745952900561630737531578750604152785459364952515660123198559990501683976190029562597645304789594875297330660071472395220473497362753073528800360492695547698835976360578086065484843676628342580710733001690057767681887133492074034132539135678402640471918807777898465041487958958700779398143890786340235517398489803358705065091549455196898061955065770091807405543121652521014561769236411046567757818826522276981091816124137541186354608348390602722585334316157064887832626234190539078611429435909615895095166909663450400316722077353065903308980717221837972536454784565470766834110132806963117158407295740126525675345586008574233963654064824999090661542697003076004705815339365414747715133081722807174893695944853301330439502362928026440310843326195263619310135781909052442896397677414475671308894090256970677111965019585957442268357310521507698818353809509454629821973967616271034724327621427588536085896725591893364523073054362489882220735927513303746203289392244236149555315346321002506469399776884595200892175156393435827729692360234999742296006551034099008775200057501940373780240540541636962673069182971158231821414238354998386708631097620868740269308749213788535039541262949677809223304917249642755882019278589766633892336830125203562502981676526282736815890557892062990981335842052767398509761559059731192236305157616120211985595944100441277855713576198864318667849941453026906420685295484002796760954487880677983807795769639670603812766355828137484646888629851938963786915039331323538649448383407583546361883700572392653699525430222012461123981877828657948546140827215121605513164201164946504224531501258695655838298829081632754133796030179488410761186560635576590359143426078330699412599628185794977814335555785023279412388785863701082840031435462431717361811792469792704003375213586345187918160609522087630902036382551626648813288102060645567557784610033438394541869622778974363450888860379457587448835796636844834460024377843191046711401237850934983606016247940412831017991318227648936075326237912911816743977264651300580274868796355813382654691552170933271365447114357005109750674153051883380490277167653828591919695133391935262809809214773164356131564807330967709095105489469822525729430094453590486766152787902746306856153161897036294213840556486135995873470052409605910126499546275148699457483998168026571671540240679430903706673641192518831114748402444750317612383748705643268141997460527229606184226787128862054776529236669412752589655236536484232515059132328300069161405297753901856581273440270983682233941083487291789407850790248696848282038298868850710365139696292788068563057686773816881364896961011432986265134199333086752100010205538724497574482051128110759193718980311209251600472274283453673351684456962231089372784039318388021555706889211366714051225200305939407245201576776549506742221013537922287985473876463714048862026461275114811896906289836757335911253709204772220164331784740420194577411576800027772031482658212298997501413723707651461964907549545056206138391453071377803010016827999170897070227995590479030014796204224971489352970352437569683511062214458618812785458723296019277326773731687282601966056872640458484197277978540029929075030041258751637951575319110022878049335590199336811696707823994875204699115323210763114593437373019723978737606036566046199667050909424562656230771549146344520536053472020582481606986161624585747868222348820787236700743482901326640492512158215662860306567136478449804072509871526835161549351233752860612364377519766842626260365483948569223844482808493512123199966860892145151060370201240103298223630613793569573923468315882954716382063189295501930310435972733846070959985984301642439145555784677822614992696582778532842093113276819425252378010631478409238002605745797893584620359746059231598864912454964487365138642486128349097776549278959764454417323129200995844690851816773633693318566570569512591597760205819550116209457403051183577498385715976012500219570009612541424669081725946151831499661386122029084432258314225521976344186650960658701383025738162286757182427802280340324980137085775902837185665682233177376084045973614586395398821755219999343568981377853444032899594563019994023092233981123304747210346629006284233065790800960079854802160209213859319050089214460163607374085473382123598455216379769710631460709474792184160732231974676638777234610957995001518393157700517292776336443579143386337218356810023496973750080313477184995109400127301055615048970781423646177527946514131973213982110162623102297438947373506082593782009869500561420887782172423892799313247609591625557061329008705153831612356049889132937701325380237799505432959197270717238824651858952539174913435416082699402053472411772442492010906734255469110601056390915115273501660150983112269087027459501933982206037124160440123743900543098328796673320176815812202850356516305522050349541456230876916311828113726376162132748495994835585162539849159184955065263598613436146388456949295646356372622534684171524111804229749939896716336356639054366704512412512412696024983862171838982901317932307088551435554613022372574235723035347692171193811235780826672914835698180068527580190335520208730571401755633132303798883611151543973995283659529305085795440646711823086163655707322603888432122053425853644574071884428040137183699898124953826992828701097562698511820367220278444197317787237189390904682743900555037359160782872439098828829628495131808809003994667892113054190849062088452280841831010625262985792821965303781129444793624623835964320035315354104781051593176164363958762710752305427411588858216349165760386541605802451821244623149355395463939469733461874899953064488629170337362851615644649703118224332522113516237314521986193929813149320341265908166118068265221583722230511986827253559071373222577668848537836704940733196604988934876882100847274732990470399621713129537173381818483620773901847064022446485494557076897700309759667578215203194869707073267252521152938192304584245393615097294929205111694662367705324905607261732671195651720632608657132432000723661150115133149467787731244387322875652057768131303853113740344670850367840640999412453229571102241735364322462822685645500517570273111055522735385056016522969961354611363609531637317304032622940893016296491251090702265280553609671426101323739844677659024205542545578968865630030982372023406903014005671348153252063385877470051408171915880272683547518345766282242593436662314200430497523921915271978311821811282619416306409930278903571523418528467853739815196045535271757361378668100959940740876052488748190071519888974394258631777283713797073012981069267318664169117691665973491966782669514645422934646650956150870729193006165783686404533511603880052005629652528629116297908026549635774090360347574082326342957348958278023091072803096488881817814455924363847691975198335570262195818771417044888055314079079851565372881290346107733951962786329088040040710827697695609744318895659856023983411433496214120978849408020019716198782286880569902519958431777017235520646492193134331522741086516484325484595907542279549414532339662319403247577683872955969790846241160512262634203041541392988994953666675671378675755735010904163335162943749636823706095076367706790711629531741565677009962649492430310635739948330151624059113116170357046970175855248519414863916347335665014764202465728271725388502247092672636609147116935395382172324365261849603489372647097722070047276152145805369349178301470443484995525824799163744515455870358518405986464203686353695405254752714706323199818724204008390517399729072083515411225142746124485517786763565613932854197712278649590595838095745623911206584027183904205633041924163627029891972572450550698858714460276010638888277131406520577495023954997171989463899455988218359806384865116986030554905174966252418148986729657947614002441121530729129554198367058870181129195599855890004915285218749167077957762506407326391093859717517157345607796575022835776498284707443802662189900166159799294226563408583935635977410428099490884479441470366649435170855420440138580884154957388094424585969636793187264279511530439952744538675108525671922681447003219158497649331887085060173510353953171956841127515974014331118954335520759725053075234604005669511310716336794244787276825580117322908216355746678480223050341211583534334276676526503144224549867241699085633141230881902040138332198539402775835020103275697368626970726344506961559130053511847384705329755425485063825342705719025591246270815421001656522158508681551780037499586338138382738155596764847734434680286612820846900432681012407438411845576302559362458464290092688834962517433147976792891474318557822689583532441810296659398395166170405522720680447589859891135785621574699099457255781086658366607606118064308587161966516637245945374178448861293967893730251939165890246854866360873991958580260916977160453857961057705221565078244629752714629122246769176929282808199332955773857475402644540988369244192427522097711477164296788224889819076618913859707911252324850024559478693082025405031806210188983083740387673817850045194385044512688590841908455585101730631217747728507740598609497912556203062072508225450008225805820057072399264616830934729340865155407612160704540506966445780601943370509333626328348867453968324943884101354878353818182728921966691256063685667897847485571310697091871234340273820691774971667491184689333064441105559499179127948951467708832061674470178405295286354310161171315121309303843224587049632115432897555009720369366773413300091946543403731878170915931313968086681390848090162983355813943303923723427893684935056889444357511252964080958888952489597852803370165842052040893328007835036257166269291548483779248661301283161678136158806517109042977130322163845424839034128796252734817525334999985801219413711337921639657516951186484975830684299639199525898415144303503750985263601423760105946743061762038135543427383831665007149714504389055463462744285195596237839669432165937937119413309088450367891306378023020013344371888079886403965341773822210709456464327011884076330026696015692435573643538654487076064991729887859156685218205469380213186071848309899053020837618835661684031559626261636220918658754130065118323932755595793607272535051954788523520223915394321517064958092754492413515035951373744182404090261243640830836890513069137661941852258380853294181432954482875901146644589588507243313362335785805435937830670909299200871589384671766059784531383341344772604984526130893338790740680989203188401859909047752161218419494421095762252717858310178136316152172976998812707496392671683721808174352358303325653712047140390939266723962060272331531755288216471282954481892404112853834672665044061497615744311640409795791156081101572219273883615622563485305941925660596119893498022820070223485061464401221112677579745176479405317928650402780644430364176757876430456689829439288054641983841764197201649397338603724258106918795385906627273499341144635886988788308837135657594240047118873158039580996739667179502328960050149551714709224693601275979450430939327577186477810532774729043365818322046090451382447562171350003021101176223138333012002847237456527060182853854699944013839404508000749221912614672680853657453397681075327005675274767826722216203616830737554490297712510803346684425016325696726207583086418027863771689782000837756917683520955132602736374045800255918192541280303507218521071937173980687176027294127487709751884087241499923580580186554579019325357512575746890353011931396598556878472898260776396283178176850701159013762645753201475756769054111018109706110140659419706288919557445192482713639985577175811798348680054648959207768691044356459194753365436439209592261474235884882980041307769700183855132708111663849820484863836613539353091459965172926560933373500159456048469710083003371493935396196164407671716634351806665058780022571272464238590753748662128434969105939429074160084756758104780859082730727011263608653248480980895476690933051072157903482372739180512897198872446514665441384098249000496873898415211636060980573804508674958405528194828273461580180942034231572635018761609732236950342584986020813380324293223932723844848960604502242686056344170122057341743358362829449161087975219365487292507537307154173020458001631439636058959538116603371376900049180494721125821249404108594762990481124986633180993333220696424714891054782156082126285077568055108506544038228173120874510499067655124635671422456156966663647322891447765336770116958208125371041708978425028285270357976978120695965169130278203894503862286491759589222517639628623754311414217190868886331678792899793125134081699161408848334415790508765136517510104434320537861745735714228520574532583256701999482293390473030603693038410419402100637574166020858879383691544978508195977032045293087935686896744951537775884296292950459156704957112825060726200436784180603505532482751171150838395661097686426512722969338317282128544130784209094064010527770750079841808519194960265433494048335658482219820831012671252665433884059975240373880344687470611125327147549546769221026596284399919367011897573125934205546728458890540979230201627521289788271713142785883434841824950995701661061173564398691624324468992586817973956945657046782711259302910941297784590046010917090251041640184240640450220476415533452991700186163878118303960370950698173248023069405521578869173823144630501891608720177316546184398129073954605172668653978766407209146580765491158861028377594552086939122792145622060297438821299476329139977771904470887838225162309523221390506961493227172179313419926818972794816315640846582813183461249611006548194550123664307610466181824819056573280319873694271176911594603012010594892544157033259736643747581973658573275982032274167383992075009133454959689112753301205782483998696147391522321812428715232072394671545911894038087520685746358165228047554300045462202216737968376204677492298820330690947850534907258166108083253910329137684333521432069099459352035169794776453393311645982109502375553376295449356935733787515702795978473899991641608965486953581056580200734204434854438451267668054572986618539569716835457705526095087083766239680742523524901096866133512246945937038468295881890297890306888936018196867454730543178962797071574717378839758796102152640354576265560969903363471140651075136910664276388693368488770214607145557375891366490148924038488086345360455901088550293031777632937673470251036193314226401244887225702069272365862690414544276599471302760471495811488943331004038497184608517091316179329705674803573812602794339461075719689451217413065776107674130044426611256647456113219006922119653816205344998231403827658206754557930378522983774715840546973666834566671667762754584435424229646591493083559541663956800250394357932989708502854692847566104453303371585024641012045384548406909551060492138007814938632636325803504165763429691718200720285725825314430995501451266517408616112069786419300525038029506046195919749688169069014810578793165306887818214306669470258939172314008608735118171028179871054846367101284323030261300350178365333416965071206304303414673281744693397142682900385223271436971971113249521862690814490193335197606423292825364846999526021619576633425910183902229585962845301245321559717792108234772338351689784125428946764326184628036890406724846772466024134478311468379338653010142576458020761496111467745342065730767418426644055923029720616516190113759390274103533519987394431333984426624567024177374466063750277318412997707441988115361003889035294259903796240039747747952012788306446263056886786613239180464295701295924781449822200208838089914199471497884541967113248636788515702427305337270800542849280281416251414999510433966207593780847706936563628150570104235846250743456983212988203908437363087853435706301378433517724984983744875852109122049545996816490629440871110830421134765198381353103762004803686138443524120676933732183376139797777542354217242686058741853108212247804949215429924383718773434234660773761132372190142150438010803768975575237242668710426670869654904634407336498881173614352778097655020406647645606146858463135254006698650985807269855015809810865008327178736488030070572703916797133838512212658205142880598282918916144133879533759821332015141209139266465915873277702478548470662836126753877151382829961438029180532432095576940405016298339732480923679268130593236954760320459603367219535784318562573434183074484979044838433030393713739230223752971402214340939193626318073522705217141945505541977010463647946319536278176575911051213289286662965970414334879547793251393477157036443413783148669976276745186703197497517778594215409093807683268845344545823741446102768613495822645521538317687870780964150674249617535843796631537655251743894973625163278011083137619924468450103155122850888820568362326766299183466951299265963942428204168855102054851268516289360683526243274414614007095925921794091959448583023774392174960695881615465472619059934991687574227923973299693976076113653631201618496629289179278467007760981761380348788799898407562200032988131243161005712469521843074282627755598206501260073100482168868878313734659002202271267560841077776032138255705387447313953112791799905816298506147168604600031163446570059003647703529317759380399092826852352213711525061705404794080723585214734946404405989553813883836862539494787293225382120099603136061348075698654403926266280489735410651672639019883179961155590316127898909880440755932370356416948242929059819146525310462450080599498744076070932981718866129758066244267384037161122088790517959317129447650126856441036845715756403724921065237588798693841314296841731154249345760234751102070873228845346428943600319275481492105379016168195515672989718478064556908306083866206087949925739171003360964485493801310086175755427317564824271866484538971733127523032115753169989297663181917243096224366038805198309575802084403376373622364225914279238196093177451891658068454954059433308053457570248487579442315883789938638937747834185883202044378584705318617070903963387312926460428079452313620947589491865286973882555877811387012187794014444178739354070822975772586122641320823450484503858918081107697363750814823665049482068957640804690796567872223966173537686667834741748541761497335647677135262014668727442880240447748570194095757125705366717714093420909918782534716391695296057449854028382005695553508715892922543856064425078993283437815415681103421002533054316048929424900443751629686130226606326175823487708715596122276809263980758141639504703015178811771164686321329571450380659254350650617401431373465090978230397022031565583590647905885788750657221336905311390638801778033844980164476768866807532991127007257324418818715431459496599844627811054601621400256786837408966775545021594999982422582061128399426056271418712399956982023200090337304974090406097318983056354833136430122259079556719933752334510767294151662476514199210494327303968498367491169448416865384968379447824321591802501886091967679883188131444947096848118568130054414430316988840400256392767921686426710001910249925639165043583459553993600541060820059426182661482754995282778985840495750225780620391457032573594425303540095194173901593390604341151345428199448798969856134096392647989776759225890450518897799554792427270883345902061630814303930070238251841835355547316421164933432593505446177781471406824731510783826967568469266633257777610351191338831274125730274675662785493801185813211303704747047305194748208324955750072182395989482162491830515235775513118063927777026877891184558766988048010873412068337494613182435207173136781778649492054689812873029933331067026126076035074771439615361736188565618277979216406933470004132982541994693032715643705360730202311095622504615863653547664986257980609438168548438033024318158354737860909843808631240640663946610858284322602070154770591097538811869081674232401228503445002652151990369470638388122916247012009453861735200128156105698738180560598327108207098157927997691837945480110913703013461927346871346615379041634035932083455035834912674863296848667013013121716831764523446203532914854866115515630746701180703147564609650948616584081247318845606911041263547889350627973544150830437204954532965619519882891394476622084450214089959396221701143904357521636171488906905466028015563908097918319835399561056746293932825041215846726855489612171014911944737746187493903336088824347906607219352124879000563633144574980109702998345316032087127982222201327383114013820825090620048576643725877259827430222250144596726678891261372078732275829901477201418780158337149519169601660754182885271225265005867454540029382886998333526882485363493195114217893413609922062879170395860645742196799245452403099463085017453090210214788631976125350189869427504488052870987310281613175118516142647655794150359274298804293227547603988478155327001307853486035081951927986810920112810117505814933316639895470119806799533145138267668003066837169153430511294456746428991428702468767191252397418062114918546435067087827342346341842447323640649592362094657472564715357850477152450802493666866160005930867946854591502013458154578750358805556755625979271962976279368578787433269085002532182894776920962968604046043099899466277683612868518889393265400927597454628661859267982092823437026636880281468980098007441958463538286425872088591082306448898825023818443241507526787977490009826500274662756939608722720936207351234638417932210620617622682594340001026001060199226289195181347619406341580183130183834273736491476762618646628675571060342021949651151395068268422381930873098584600095261553602310520716640119189426207162025605124362997713729782790919166353913227807271821677869883246834706202565159062676778744535263689225095211461554633464517894250310388004350860674596479625053815015998325918134919919946483037762861882106028342291242621934953710909642070605323611969867650448917608800193584654940881362202189966746405806795262317354059742201098566029968015484349214075184030667450559937732446356116470305149265489402057704525059128625733975709738509169290999755338266154278132720613848560593138017807290474305316274327984719206786192426830780007313676726658214534054766345972629843330943093454500672190312376720538552643656710151940496057638548783140278634791611265730934181390515074496039802537236661541987840844200544833249297178747150130514754982220131385658056610624058950276879416623872568388772836118589484981861708191577302855812086432283910751882383484706718405503185932241122917827504321535503293504462878543841051175240559709425502433057244250164803736369564116360386596918530610491683729261518507229583163707843927635265249317203108490893728620729096906785688451664672107424314412349064035416168495248539048456495243561703361852739991554042434197806732601015688025503356730936311803390062133367170571752525201315742052220890151923748483835971736868013909438592617323499602033297362901831918592818364658532635998930130141354242461447767211167416115975813107419232853177219041208287193920485876320080316696735004020283194518363302535955936775662806284257153302850412584829898559495474071349819961885631844131839913936095426340082580469242260594364562768378801249938446057298072076801083974467778384768487912228249049119159992774663562819059003574746614847722568179242505256209661928243126100127586039342343986751634009951090372479464506770764652041331470137313247040415448472638364541775995971005876064052671659520270745250933744059671499127322193726812968775090036342822173033011585183575931178309327178814537662932845845899619672206256425459193616690922344492907050358334464887907279467006900529999943664123754830096964663398209076178634307086809709156116721477990946475860879728373400027359684260501867801738166140777940583548914221987729246074956813139827448675700690252824579848875868021931536032314898036280004872126815785615885670729887507444919321271288650849061891748784927236052029362966687314329879069040722049232715599905453785443520653789534248057266372187359339027203863738566825847930929323182049697360128670968904308468421406585080591403602736753302582169150971125512444170430734644135085617218417084079742215191030812645153323020930888074944047359714481176417939518251412747870295387301892203301292321088566308280887057917036330345864096049146409071121956334033721951505870917986439708094353359158038943758311038372138370365600630952806555226908416609849325181739718123683510627907560338328068731409726310571667448086896986530437809936416584272365189523475547473619066439882219836197298463355298437609772240398848663259935231789593375140615306398083328724227574072661780670267497952405679184412694940475480969777746780255696362953719287449636625292731093113976183534199651480084225721309347770784425440524179797987752495966634700710205568741943513234968212423241900751855467751407266232971432556308141644983239424952544286346365848333828090375214549186016835413969747785830646755700261850513942941944753905371122219702075334710725660055355692423882825487185355790425328594253897902616620148607424842995004480260478413413368253553195114755835461177265069280959001131456978056141860228340967260520176741119315740395956610258612206517225457872513951486516912436737752190325945819630609641700680691139693487829272560548463905778924264352233965292891841307850803273416297242982688791654598388810369878084834686459926803071240022098223135437518523300783866780323155108263062132031255893621777241749918346656001657953667827429213835469412165061770658741059497559302618455844101673899197217671550845133341164150008863793228446671059587047623701828055385154675498840073392160782368968109098007349093209480658224634197335728292563289396265811283598450611399846307057904765083531305428586078199382589667181000325671544319219192615294415649539762700417499699813577376797804666915613852295273745864607098640690665322427535753564169957465824139118851258541860679015793830652906270265404614942659227934283610292724590329923038815283645844703760691230702290073101300517656419470797961772416738937901437689024733107674959952848293960209949441139518215770788743089524632605880320955230612572065318087942388760285127923148985290706587592265726835549087832898613217580172246142997912147002952573843373302027988493320889856974526435418180046216231666203555148215342253725108763616580597651271266253612158222128565519669246947617801753067041009349299473162981861130740768771871591895421894643490810032184414769770912356193077513495102608141469242263864573234562301033588114192693963830632804655294949547470837653632107958295614055646881629523575932208916241093669058993838954002660254713943252834823985960627863050796150510103166230162263873471873381755457534392752422249260993815819373671870028223107952765688155012890700266820549503531065412610286241025693549004206029207333261026287603926574578310850542466599712419569967896445724459305177619353142059840678319186317195820100683039186849455347981198102028583055011932639886041132029928902131320749114352870899598591813915312004988792544475101143047311503947399516140398845467324204040864216733847663999253384381735219150367684092484125259563175121105978958032995649431966299342588584449834896828921436884420293359003633695513574928422243300611379347280263862495162073906359253850892321006148666373746959902192802096147872043791291826780267199867688102285564873380839103920005739685465431508650506878708661312025016240626599184413378402141183762177365601389767379006444075379551747815610350601314216983236585405152348051810345415443281738078519638849561628068575145591359528988144904892362905848502401365456866931758852831590418745294158593767732311208162651880556907151161453365137564030540395410269138046928878734216111270094033350175570999913875106499815182217482883265725736382195605173471076539364797955211010642397948048711128000648999425528307202349902501538438060760842976719844368470930098019456241735440379105764109025139170340942197871018869786302353827336895723921022037483313716210271359030726797933754527628090531777992708326072351764048019467622793417888179623025212487202964462889511293906662970970437035596050438736421321661049251256049194185749414885199252213850754787316557660553659026830751764533785834830911201163397716775649663032371107187270359401044853509944928316001490680453533656725141316291176182020642465516591898762194112161414721196849351827800208332538026230888668151842386396587845123116036577849124645982780421704478396212914923003355814892676840121738098778546216267526402748252461432804996180402917708373344346828862925981324904667857608809457822198767528887500532632040317326987687054707896710028385200101591212780893956208605948992007392861865967734691534659261635747097452347612000455408918005988296019844022663162010002331499884453247686606201991410173598161257966704030498556341907703675349844355730569182235434159391943228637712501952784166773656463506596043392722914210053366242885255501723687512490789549245449392757026039047685076265076509275982387453472756565947040065609289676738694023360843950365285772128222062189275857518279208726516683057430200653285252922080980315409115886637014240526510821345267042527709846829027617838757791980272202106513232824965370378248217102636237110811411019024245782582754869133940848057988934561209284888368733787397829257729728399241995691827173709462423184001797733761324229914004951688358551354858741122934006839225940878505964899966478979444466926803636815900112838108653348507489459397072977619447205506727152441164393757206959723318511357828815441512004250781917750612729682854122796197958268821055170627037003145207867987440366752620673341752506480362605145644052732748477564347368244532781174971374363628444225997665280741730505014305822569729742766479632964628101908338594998338440547259887085571670723609634899390267892727094181791705546062393458487699115709771656757557225724389056862849450625513536815435603522852674922094910198667824214406926936149857912992049717831092689259405929276906327143353242104701337117804517498273681059868632381035423899127694466508063169015467702452929268946624976876771456226006780356218243922652856062873906103762453347851344685934174173187925166222315311440002703404375336281659862932515595739519392558438717789381548744333432513478760853771779876904347259713579688643942781844443822443920279832937006927702602693470615002596345178880910279554671857898092881907255069824843147393230130784383087498857224596544013751243571956360478597039105549027434235330053667909329101973438528756664668223079981787272045509484877304373449034291883208511837751158745631011963529052736730796590720926782208133302259847717702413275624482878272754542938253263409335122910572080798452953061597244781240674642286353737826145244136758289778810660724888314915907120051382209071481904432146586999069226875721689795787550327308127486349073910219100407005735352588262363410885525877907951912603299877986223695263345926143631513780883166482481341853062562277528937020973265183574825578796980473917489566423602273763008691948171381008250342371311549638752353424632784806520192018231011602432643406579718429012029279238060403004695601202279880665386029109474537605726592458393925851219564013323819209520839394274069503329741102239635638616383897835309268988947118161491185859910077541585130911640460088990911806679237935223450408170561882439854760010784920594449152656738457307989929249272898302875349489682403139989642766128471067833068320669658199082768014419024030973074742173579157725266427683674556844798477580723892938435492448227500764695045166815182640847905753891809860530333778548058146997073909563512246917651920821396503120595821069738227772048571078014407623333089030539073261295834353214346311125061722925462788837712734061583075449059643040864019674697457825819953124148857341160297587638462330881187436879088349163106054498089500232673331501837403700396023292839542358423615095491752551012536114075999283425823667854013515156284894365516732950031319561688667234734952393996974561440241559850537272309036350140687971185343302770631613868366996782687670656737170155720724310979177620044357528431961885127500319596751690246581944458742379204102342362233829106965707888224435344579273984480217362573048048038801078533864549386125717630626067213611066087550358812437147634293873844681952828965072670208596241777444695090829575199607377911724515846231152804637714359547824728915519200686251674934002786419895859960161061989949499268931579908563941241196018458456929249430505479504940359690978479115278953988871099112470481584004379772728137833507600289388347205404854754858325773514285862523397315731070527609340506789362082891698963499883170839509867185012028253170693836805173413358604458751756845786748046312603250398582068090465274094124611835199182953945676580079501525550266953653904745682845920338966558468025123228210760597374100243557562706410627139511619371557515560619235610526515476933961916692435359660838916961023575732747171880846140033024982457185938202981133295536720560102040514947752491427876866182629688673320971510556019466874928643720717582026133372830005415834786091522513396213164249933208370346083206210222276128948145604391725169382003711600027967093245984700773830279986681320513891914775249114172379083341329712728407169898254546289396463755491019901665713410681715186460625306253743517108157552616075745147720484808990669671166353070368992181976772214743329046575880580940201630983325194623728898989167986542954170584448642272717912141625739468281425955852880571387110324719498988224446639320844872632407802493654524302615257581377436285466659148993191923504080020956983566944905577783402948505129136059832961582312069926156944918360601575224007589620284973429112963181982585518747668406847485895146518149677119225162923087689846282244462462956489638559617053738199625568071018418855323079671524222413440605561408078420233177845102253912663353737674338773961754878704102983172157991790389397822562083375988315415831128824439209255170218539907385150455613211152924488089569276617292420542731689431113235444217162852143726618163081687332113742761695707680196478549343988788353450257332106908536277982442563766538447307974570217067855751853688235113153074158618637171684474665773142312887308552900320520301033530328807594320383274821798904103698864024752589588952191573405216793233025637409068156867490592283926998567136811293940326245591062375719694946740322357213042481493838258607063560806136834265242670535615689835802655831707000198222740330968158138322428846677223416201604775135574511273960402826181973846139506058226536637583945251721811363145011741886019645569770413646993820076841278706302039797736778409587708485114454189231068071956257497882172357483389828112878630959557694072524237378080460574113133204258139338558303799013699620443848023049043577090194870350358655126847050850608606608529923976235335022920860955252906388134334800786816459780205716704072533151793313120301193574325507196022116160531922272584124585653444328358648229320416666531432873348658961471708192631117050345428715331348088450707101398212193386904870278108869688970213644371976096148284878427843917030927295697210990030965900496563974922884904726883087102490491585785014364455687932881450530838751341297830822833765673093319552288103110149741800400362458534559479455396269351827014680035203186519432406634388346942493718690779183476119634859635356056539543054499464757145532668489759206567712986674662453912144705597156346016246416536918702198894440412633392753267790907979267457405096800668973935016414284036656761258274493438253683473503558850119485237970211780229333196246380793715245398104238437645149171597208372725536708194575651575441892763556683532003750233147305031551077763055522153635786990265793979889968237117249679856700834916790053523456986701196682219785132269147153382499207354734281838570536056331246967907453101517107822771804897892309777187995353103890337456005832148865133879744987579464779816784997317493252636416287736926299391383883979680857666661085901035799523772765758448493567964104858769554027826172786741900672317625956644830094491164977343925114102505349801847225912042834608070197267494395865607770057956103751441052011858109646287503187919000942822777800272363360400345866570837798338178087054774693016838270845738380425903998683372444850197209291238047258654936086929972559610657542555095474588916114946925933523014971447133371140541724317670665698051886284074885954986459859757785241285267564629460011008192659948301485355930899089093486993068898923469113037876786518789152978960094072741688856482366159650923797831074102899246648298142240442874258496842141191368460240587660547692086571434921000185075272945781622104352118841476464071119161021697243904319590013026614597123923762772580227628930186209672637275568841795204704578774655167023173181151990970231450795719145513662286030592143206540667344695138685264294781881440681353300693787188962330239586550820122101659239836814728056124022324122899237210253446694034234246027752247179404278042212962768009442779928235869501203491496066484811427688967795551543186618408216803159381923438929681793288202882549413290955950425080544082232393447947461504535286739835054760942212660073287255132122572269460132351309578756878748928393665499613681673334608047287164674362275710678210689611073039025608834318215550313078406629873734641496360329557287311505402431228848066343623429558234530683555971362421812988869175893924602723431655167105291012571387737129212784573296074044171032267274857679891931697607578286381990573700230094914687742240018886074353082624133846327081877300545166068856131595567238298676481129118411658688786300194116401210349900226934987090995757191783451519721490002728371374998728073147189663851901110186518515797010818191552132166069842932560989368692013815761142378958318601676255212125788055771774555591164456919220858189913984847089260343707351568480465770794670496451453828638587498605777091422416783302043166417412961353468779434162435555765030796122961124853670022604179165178856834641599939526813937381875288292154115305627519747959183923997691017417239316703224245095460295836508250530276783808215274447371816427432106766647677429233148428293280545657897413105805258510945241021782240541343813986864856207258827717957105839359569966945371889161145113516681070647223748943563515443684282868482844569845455703717199109860794031390271116852996879303893091052905417997323667736664923988019806802970478260038410082970217339036936709429622221544240533409572598730536359443516782602754221742429211769775041367381398730834740091824535255367115168627821248745627392124753566688023917286152170451627128831834178352466035168029432232658154907787874190748787618270957239453731479805318110532612147425957732543680993482393948901587852884629671384047573465128823846458754347343424970585126057174798453080671200564825665994670422672808285465967430548672757852388532319457200046638958429373063734196016568906712852833075710682195670110884911275711463248601926740572748382044906474224678816334479798881966898719986152815011762924958677998632039467514207278334961520890123904763030150961763632359824059055234996264475323627387202765827176539181458895108087312725974359515756671699923584922269636913133430330139085660942971927246988374545030688898770609895659092047470205791087561070328511064281561012657572653069671715578990613571600632913117539279674069374870048226539960049612236696293480865299060067251401689246415639068900509040135795028691020266394265853116330157019535428222217244094507789901549542140619348292831287805808558326965284830579196376429827768523134114316699773042261051396342535336690939599583066551452140211222859964262660530388999693323927052583917807301805702295186620095994675930923067869445398817177053868745376193598118471946088725150426476076619622077291768001785893008059012492011761492257634774853491544711604059864560655017970173766313933426816317928666076299429885738470237607747214126735735114112019918484864434450619649668107114227537416388461820531796247817136748943943042770148107895484293558599277961365204419786073408649964573991766871783746218256022842860272293548405439190116114203065331705665361075075393107509671721077219167287624979011999945360443369756876571734438920705879842059854436361917157906803980447139037543997267422727802448663835511210576111833910019977018396484250265976272631225605979542769545689953449289780202801307887121981286897713716423013702894476094993255104832987959588853943800394526757387364911109435622849649228682765038931181821558646178985574683134010001116580682765934356456058973285530377114716567710016218182509008689969536429159856533563128945647331697835698117412262344470719993727943136881012611847935506083134671405787130493191052129123874144251299305668326153515732107848007577055889236909838837843898471280844477299714330922464171078497957811908714904706737804236883654923499794324996468094538425943423035629854571679507939045104208505446235271948546625521826414187524629069296222023246932043089319137876763998641706090817536670073097063509903475770522786769408717337731145407436878433636210828462507196424566910165277544482301837947461703595720230450128631261446175990348627166212043411310432044051205918951936152956690630226057386988227535383607751354766327453644963298124842680340528036896231624901649411608789789211127776850963615063846935492716170378972085591027560409534721136496926699522875763400352369484359953784044323223284194799159879778336748621836026677551597794276653027159140481335277507187539101942940847623189401374664289003461309927031896468453895376353595387143489042900751385054488922336672702920643811626630816423034167091496284112817322757234577123182574531662186028448020038305623123380410312420441739819107552040254820042472944912451648127221875392353172441437637398761495993275775338495235441767643153262364526764935741002120219956173120014685294118767885168374077524324062265483305385157410807934008058597503977158162109483442226718922863829149994460575750682198200584482195512939858936479247575355010415721429688752520916017760725538771305520918411494210414073498701196687110770002034363069418280759712774230873782556218302831754674189232203710029273364715647091824053345476512761831495833717102426133493604172337984715419891935706450551460942747066953494759404059136791351267162904101412527910841124513430706028651667955203269113786454480263156004371368591882125152452730286077025826117755957338940589955690393601549759969525119027968174039651952169284634273666144364157908415581410637526267202671613782092628721574942183848476775817573233585371426682716159403272550512646194758283789259327398710470036544508224021348537737582499080756751966091979774883134762137968035720736901270665420442348851359890043061307003345306839331316997795160601485086770058467586988899303711698436032280000775448528901698052850420725782662306542852112084882355835397367882275426941259304308914714069902949221004193970469302688568920966900631166736715622604594603166210304866070040760504560788194475580678488988676601737485678848525972010055031702812998216605547111553965330996120044862743321577474059240887030953511318505091075791244737970339536746227086825399647686863417426760867488666608736510025277715425239143589075135757067025687469498824941791010648618804668976706643270641425173147081561984925579998684517090243481531835410521108467607835593714762122696378709852519195999345057525883632538094420446406506738845594923124465247240592242373164089298003260814231061266940509757422034732079523085312120749723721646340604252751865420341565370563056286963821798553428667058274415046971898278727298891128198922695838597613060456352433606606101803560512316083319137383100389179051708825413387706079297971860849404074459593637842247174008476453163095703684233376967297308176307996512430255700319152470497334918821873343616401701703007335447990487840316235290921461623046857333285432519468890171713437699912937599080671065334402255102689544956736139391169084265906673881822351850588593570100195574349732261515362025679974815861417435461966814305157049888890855497134449742368597864566148852107348724854657648405310118511636560625492004103201199524503295136538571137975145780764792193108472684797051275595196335208122621268854735132133806224873507427288345365632039479342323415316225362129794039226895588212466183204972749088118000774566429687309493086659165628670297376369206066858536198148334943850320836792335449441786807735474899171900169659537710785237460116071886499255603894117561779637944873283033330970829689992461711256163839820099837170570966018489600589520907263057104387167490018430616170689804756769526819158732014102925769468822762809124034864243382338010888592289699667157360562741156347125658738427773915055155678853719557714632260912376867593808555068189441626841516640155187373623812473430894219213626458362039587891358732297037328683133496215827150353734753930969713999701195551988992367757354516756870919500757904288509145885860808021490599730035354315603496175391022982048773457626203007008142369080533937162799695006545659031655468807522066125352803585965125631626414721364266025030482099593942616303612715186490591592982478595083027839167556813735095083881926352495301165227211859406739528441338882872606050535936600603833823197584601341877888581006650433917124989841017785833827907334434874897138152719014181581091059915560791097717070684830446899055294961351433659762138839426374742505064865525369744081166046679494956102235328894914082344618197274119517508813231438801236432840248939055946677880317593367655325343816947608335360224753618708499100410442079259826707947367442879733126984583943054131101382631619110814301105443801284578232422049223841744638806940262115965700606410371143630947649079039279953129868278821926856975882018462862669315030674024030789569230631728406921953862882313825294026502027593169074133465658331155032319236704891745592749398708995519217016615288803995613591672102734501584765367619093778808005569040700673484903686602513695138198201154728627763469829249253059772252432941798403140059892991033676187833577691955796643303635308842441408323337323895824952872221623786005942639228999182811426121758500727058540329128114511468845860055241832665882926707281307730039288500310501724817240919746614686497304685563704902072860147072746063440393765148112846816155240321051040752207589554308396975739437765718133169711140607276217811773466554485408974673253265516416512392741802732405301241433719935921007378973684253589866821285036768120118425959147174357801107427048527957712132159368438956560202806655705251414519753091544530664065166624646471856148024467696875360406478366679287458775921816029268132367501063610526777656107828643779554147862690644636148643511804167964988079211121380580645737175768519360340728283830949745724746239946711564991127448632357368272031919235442206254740619628894898288721489031549527840618044067384823636005026953502331429590233160912795031312674462705284038366195230895128543223417123395665345262660648036938364383498272994959779582459572273128548124168496685659016465132384508555876154226082874982883924179493359887896550059553870186819087983130156434172653856411667643387988966360999670108485466510538179455759461400805257698264524375684815946356791166353163835239617964875042054855092768375623869329091696465971599602046851293237634095202177691301413289070874115355072385835742992870377490158977680079450859015389575015277894494649415432469776820073729677262360479520102174687774681106946528505481944312051690364023355594214470127134337712227104655389051361495233375370784629696689758523618503362118715542781038841645739163733705407533855464920497530730647326760900318655173770517737958384407454353168579785238713439242397852996619832122001110779383070359651119934890136777543958424138864350086689661266532138578270200145725405548204981934315497542342249472626494701142330931696772267612588649409095355773124474557157370079301364525002708319811536927810428458437661987057230070862343017322274492060295061228150857720727071202083813181223260770933786957744229716280101889393734575946906055258259683552180762926201188955227192505374056316961576328562536907316777905658818507584225223056698078286955155578964124782839285289102821149658656630013354215701280763382145004210298975165648528143883066877059292009108928364471678958179836094491417603279322935747045969083696533743917145484539923876835939237507967476763303848065733221562397892746058270751463679770702163491155719432739302949991322667872238996977756729297103565770647924596922086575219219827033609678663239199933926885092257498857857088079977276459657704117360303896888775078420865590777047395434180866605822643031898549650917092080773954648527678792939252090111637492246075785079442314461380433359327817871192180645006947154753351005864029023636457607595449220096012226284801109579111312854546131488002501310008618175018753630259388746339901863105789222848601603272718353729529343817386042265033833376828684304971217166147378203086406609707434420912723469903914561145949621231650270213611610833924313920366480275837345764216459478446585829552569653462031690850576774577049183807567889359681453745725725754032898402905882948149333224733864513563802504709122940860634411618804585600314253495209062965944522997218471217267324524252145729719756014571413966080468559663690810108807971586720525420288732709649942929354074631364834648325376686561776198802244017934411028604103120479042574123735563786938852871194145801140773675932562637164368930678335302094318772954483176326311204886222856828942249598030135112583555910988567187583654253492184466464011260786668907829666112221420777239070226139343155896009637918133761100290191438856231319388081928068033672705681313353320717232714341268529970931901284124372874981930088777199928031524246822710983588510168123913832117298217551327662300657034424032409099985840775618470448698453123884226706355838200462872753998287440315763069448216842100472044400380741595393833263852661581693016160127779442645515417245357986966200448911560570912985494281348418408674025377056237909053654686860662240153872440834705205286388256022013286636979667615078418940687989492058074840689306021299281296285578958434261130471559659383542846741944619621614872460414701389935378177509571419371357103000488641598007672094410098813745866808388079680692369225389364133691240398672270668341017103595473695617244472383737820591043081804614196911599687775542656425992376296224344604882917768156856432214270657809096489280638011061927139028259001791566766474184920627602592548344423104073511489062098279027996011241019252317464425023891416877567635797649551067444505143284569838962290080225817661459756076208913392711703211780537966724110554523153327514335375862915857089359434455206457356333253596346242726828941590700186143959410262493597853575946039637644648365721638336879513090109340898387641755097773858885782230182253123288728445241836409123331030952823501946356238022203876125676290987093854844228946529998550535345845075946775979796231584116412232962365232937742420755308518996546475463081249761307354105092660297690264150935596681447237914828082481248597936868425735277606296795312926330044976548027072436757432889534900986943994784580602805089748049575311077393961571552444146459345278864605367406387068300861340475979974526434679158345869685342875561824651260790981421515042885589743553692296283952968488612993826767448327002414990296948718534356451169772826826665569788538448624320382740047629085754032858154103081460075370733337800666524223571434368702757626182706933720629083139537012743259152859680783325186117431382969973071179740959752512268143040919155221542933820862166992569597617893421170420143900055050557247225203609575965175821418687098555975580798870137513038392470086608306127676382506227287608393701822552431309156019252710850587616997224153339463575101292377657755647711458989234897373036463186978799048572402869254806788420060254496970719713749273925905865908104474673595852668967111876346767625010955655729094938265628066852477053018514704511453637447635452940477718343719845181090762454836235052108436751680132694856322603527403045330297379558615631085807574221203259519407388117042443031413521977785976445400104964450036044041030052754142260042749495145805345676365134376187999924392009782869779335648379202600490612430198767249063735178250411186340081226428670710287278347334324820864149650591059818742774717450520894638696395792885781645981309939608073351737003878823525735525652890521762416104080013587189873505183447830373803812066041130339563886034974185470100761245341393699701816505563826089810518416381686956330610079404993577212065138511142563038833859370424233898025941667549938633945902995697218138271284843300920890682904360303597398000875875794870178855344153490123534418289578187214964060190664935493165034172292104487405981713875527524286833606917786969528844448627085135949787609478595341116842319455787660987172342123376290526204261565913411222269418014304801521673296780621861597529464258961503314437767499840540155475309585257651197351010719773077077769418015247993378377869260437859900569415831466399929087268913688278097476882012218445905597335156066136607610870966777857553751801720203640863296826670186764712206758421885831859614356869879961174157749427187801465446291227961892797843630432169473055510993986288585433862486310443737622696990229726060914468735416664608116356629865673737086949482693515250959465397947620035748598796354870385827981570410709416418993782078730527451028973948887762343036070163554342945951988419099024766028988181104804851298773182848728368180754574615463099788091949675900785888681527067136553982864930010204832899924254814671894385940208558228545639659141354224250463976776827329945762607184877715164303535158444017503124170649630255121251413834804200561238963505162841931884151986960699855423830026386764273178205627402953903483830485921777582197282907770116839074375720644129857437235620832100112601510638112830965239851672912795702831367334515700826001708777362658448259926960298280454686529825852747742066552073768772342407999815240255401026139076632474755385198939330161397706526767621203104634621296217547108899511705046287406245056644814532414914487292249972160705973929973703757075148580911312291348784842162208211975169916940089705980616508367123823248911490544459405866787815966061138781003302919231522598386420731544151741814392757763642006034427556438907544955093345543390401252376544270488587414845756686885825979999884459485752477546717432866192308528313034556785516024951614720988619548595910273732469783177121635961303975538749136558573237964957736357667106395683372229636262978681305124687249578527655643284501498813024240016640960662017734624123843257803526579195058369268439051504092849545539648935066421189052397199193297128836305774076686878625565319735783954458114383173746936180579558728352073262903079490162592002329504161112631529207396003541158387232418828646694338197717610534093886162167300515691862293783579211399220075241063184119918138169239203171670787253608134034617809550713746554504928191863303369834289918504512506082988629059103216217631522196907323698107832167640754595605277122063402880941893768544983101952326007286461457091211252526981786845458013746416013319896550207623878952300565678646822109887040779068963501445819262030941267205747469048248794988312164084827711144435672954664518993099403531106316307855726055691515807695367690183088943090717090492163404282821691246265143319216981603630210025104351170030639498412426015238495222158957427293058078043996798480583702605066593811027080617282744274381847686860432907490739762182897404790893321887000445718895378145250109154190821238874687621633580274209596809677026297360725494091065914166511151764353572083141855959583945198045020446863352788453909573067753704182368751824695747863567392314069635414778398504679988420641379767994487286541566892465235063082483309820396167728946392221463887086862042719878885527074453388280660137497796315480976653644074732887050684893806899631023752783444673823726941671504398377783015525352472925766718243045256730998959073812969455797383387557769975014636137783122522468388874623320436058844392061542689531486199947574897741833646832887911306848339100278527555698303389221487982086492549315703004795256299885973756891429577376351722720690052326629121523249127098734234946770169636094790977736372193358330688445445076766842906094007728359271740489579606578182311532616575995954536711219696362466272910945375194414449455266548175336192735088113740655406867587643694770500078494247041252940870533556055014564058374073905324874814459207335833564421740511910714128750334524630678519468578187282737081238433513852298162985127860426515067513745812697322221239684986316564902346126032841114905793336899549904291867676534542269960260294600120436629004835130487829837057019255133123762159982597459138795197787955433049328559637940068630089237454553173007875327522174501645037837894160266859580841408170602203143336621474861089381958067192163256001104131506551830811890655655048060692928964896619369652993438954983521141173048580854569992371134069011272129693583342212304716262610008149139588595916303258256187279519309922512394987309283184075990020097727764252821326631140022772931441101940784397982699502870451460844440754244285256795549167437939197002365061195376028600382742596559128110938660307348891964204724116047114529122334944003848828059897414437687290478549548665134287492960566697027707968084195434315907343907238134760636230534905659227681109794847418094570073973526466785228789293500471500224333064831945750225908836932962997823630899751571983369983713737466193622593019205704845641184616316488969729127621219974991559989496995606106374725692971316871376883823683963876481577539804687362045893611147664731392774607761881760412376211281351642181843202604809250262656852639344500794279932711574166415922136298003340115706194153477940343037041992497532507475716097724740771538756145940494292635969733685751178435896829960547408647843861848255190518140933622781635335069170005714763635341646370248325861492053852232242442474373914585682785004741689648332399384036291530998013788329221451025617693094253094305451244046320343703526067089812283624868359762483080984895994953945842424944409605921606748589898583118289228500851485476905388466577803086431194576462484738203042084397860200438280700245861242431639389080891865095686873526345919824972760571431358968285961258317631215105706020378970064537072626704907948551358498684178165753456518671603616316078829368317617707924489904845049539892336348081071234199211015084451232890125766838037146165761225949721872975011556828941454310360908947085564128555070826650280605793155018336849201159153283999327243057864620914852566492209461044037415988700512728079002498300456593956498873798650291801353977010248193632363753211722881874597820494500228366584631857278442318220655685173436504264828174575337736112503787347697945261991904446800666366558489929220778224924952945602676432729244624415113621339916345983772908102572568791580367418649772240756697093422372637786228828551133865073323777525679787443353511760631548006383314838314765784388970145286030488165045523871575895623126777050040900211462628922286274217227671990174082842073938978190605682136633307626167046280893378304993365960900804123881485905935511765364174341413908771086047070265013954271012838642427907886806161720156649783717773470472775784387654736584932023254701521189264188763787510826515658874617070238447076477668171678851334454710895367110330410461356364560522975127062087266998382042422334436552625811966123545720042493455775897609513080525190832758977475554233002710060932355959312536823854123157443186596594680156784105360337245012576024972180657226666820793617677723134929648506395717238615823404562782166672467865155645303152096035272644332224396711341476160206799782998780653729853437737368687033119485446587039724451406872409494089530936052573363777125654794883939738557529549191018562028742485037669176512348301713656278098084864970826819226783835272299190420271591385817157489884835258932627038068094372482452816004535790568607213620593765924454445051443263856394359648509362219435034635666166433294388418679408002039809046945255713046965257384767195951990340347718413720627211579702652111849565348288984015650095147972072510491421128899676142252802775383157648564741384957826056751518291515418596949774734253265068748330449072266444401869303780431735561021759779046249133513831963849466491585968132451302908831439216090606782177876521599559772865130037916527664353961928664507163821375854905851004679653418162069304159431141125834428439332959404397335178390211437004724667747604503963991330659612453688554341905650372176783521810908499363528630791855285090811795392546365750173283727138505691700965004173432081373743681737805921252282312683760510942365609466128722677141011392531952921284629725067873730397162459121383740902876807512974591348262431742768807894013111155740598035325717167332535245153113136023717774914903618263659908783391114410525562224610904678622445362456907440480015057456836778528750686704658709664816790426260241440811263075466327567562789291190676163623712906828863877319371783389081611537162193342105326781494367480562214462389875900281362681217102248290328263612960224435156425008952596814288316850701230576526635505563025016737547926720684938632140418132201828130832935184337662254684195427078035489461181401820966824430633299518892965172654873587396732683505413922084407409432475586174046778976979685777326332681663111430569019996689578891675809551678217403882622257156090370082609549077034066892366576885652592740472706178454539897239088920982484692034219548617513458838354766617530613598844313742874974031721415103731481555026685353217147718653545556667452119094011863896232551622403615364226779973050024928130522648602495750027757679770048771282733806772048524683757388089218558705281899451413763754729151829809559915343835904121735858184741753920299194998064472865095178005508619628347855427220613208743648043052465644683013544634375418474410221433622555838428059180452368962728144755319935011183395654601551487916643854505750830553587833073293883159171852973547442655364571048650948190598560782863803332797013044411370477803717365878363923942174084079936931017582490033168295611269661640249726711317458871358469318098955200850673595807270446055733841986275983442719209926070897465303320554379822230993139262165526816571551370297228620371666114058647122912715215466123684766512838282213249712856254867310416280881416958269899271839689152675770961797598348720977489792307249652748288978482403982666422979584595187548862231718418184609813919639453413804225037726658190892229330567383796262648971426192386282085297042787856329917930148274198684394982213929478656549670861206197158917648281829048117870011243175440692988546775930527126795177193327331661856776655142192033846464089173290587453625704139932426692793414900983290108652815636328296154911328290035918362708260832286720787830945939085580492857760033368532850696068747924345186891084007400790608733844669624842086244739332577972604814681966129381987308351302507096690545085576883267797585346944443122796409437372477926796666782583119810142739449344123286762524826609244127677193283929695827788902048227178281168574543735684420157378106439356345333328270609323287787188939158377682837297918373872594933157579888493175001222312069347876797144152085172802331091227673658214329596460871813842554062246637358508826063595205994197745697909250651060040243167005243171900694650433689413274152875267935664835438485067034322553079996439430721821655643286249588516146640963849498588781189104714690683325769159533889214405145681166908345238509213187312233703447447500982244015300771556293828648815400732840253410056075385521669467165619385659315677291959030453446291241569992938146295445947908014708632208213475007421768309215007946748649694608758967126678834531035024100898285736164177758133410778252708391290774862859191103244945216902639314900264454681263870176006001017574957334798798769552695704450321252307786237522264639579682221623310363492752289339367872170987960978098451290787056846070582577327929505512048758905655799590920051318555942427200517328331169965150561610511050245735254049472392218629031670568093572982336814769916221282578121693278367339233034709166111958813319535906044543388796597297183475691404409684904143024087647906542402791549628325847130383350090038014514909426693086854563147735958243988295265462724907978385016135427480385911863750297431508637855927044846745739161116431173211892998495499539079546221657408202054711236990462693883157079086710010086174872940182967844632736841377197585716727018264773317631354380055109047666153577473739142683222023984988784422944796055103394759136460727152435131312919536156652592328150354846591140504887545224707992204810078113019189203397337301294638160313673012442309732231059422660186548694229682190991642003925047632212767204411301976854080222388863639713352156120313277331821115701547374272759112140731573324806477019547460639921799362625260568694009473291418291296502390059500370004693427803318560062060645161280900821175402790662368944238612702990257778774540343908439728751473415148486788931186450621509911336549801025076340870049532630676659758439096968806748799205082110308140944294306285867522523385937182050277067498431080980167925529943356429231946594380432205561903872311259591653119700044601459885896914913778624088324547532713447201195228534405450393692768807013559941302513442658761363721516999137035870319406788919524775201191777651729811954807573248111425161473381696543700296934621769503454901660082780953740200651396456217921722231912688950148295735177741300790755269513755109975966648053095187946835613183110111877031315461837985452154322132621154783636816870965174066923593689289995395928113279099740692057894203567545927038355865790012055244255963534098187811828979660392751240877812469067721937809369326406883612104100658416865029989914880588225401813358651400081245621275188310027794598752824966724368803462265646503053021012191137818780018705027525268497287753983628504339431984173846952405105040568702848457619702991482846613092137301108863757988078862258826036998899794201831598148885028634501144456281129336968466754683294917178018740669414082997968700359894103977743793429244556920729676962869168764571166312815094844066204161646407608330565565569720390078613816505728041480365629882631161262834358564397615636571570212498509412166410094259139736465714217937589712549425113356624467797066766620845833465291134852143993183127223747454831391657214428250938080863424801518390255840662770700601696305726430263934059491809768391539329625479634633652838630016305915883119826918050383588853376620823428488051686102453301655052509604129096659368877993485319799819933009310634637105207283774657016898765314161113307709022237598210250654518081012065843009247716795566033636390406421324396981867539928242115580297836117743245175101610060363874833132190256770347630283994680140985504883609257439139610837607691524962924613369207289890153860566685877180946165225653932632009877017053624633832066009620607687350144857032523513267103014644544135792362067116422865675885663254534070655315664041516438842433641105618171168141446587688604023143710398784474273352251665553956099098238793160461179594859027654798914443151247713231169460220806360492250737944056504190365807176774718717724723306634726008219010553890442075544547309947644965855984438594012034572288330355530511953559077293725826997434909045857822012224895844937474422686928843778418523273432545357799509229595458126852704896177430061274824876489543085348511632638327525123926199690781763377567573982360058126950817283089714450760169424779297752797632980425607726154191225473680017390939061708699711751725715009774144389960873847096993865325764731918331901400931915613536757278942785220066791365017106858742505077418114142644978377022997657198220850736484908030729447813538522947480211280060744100242042621402342330434064278603787492859252603946182953645449710095964687616513405861469563370773246624216521996594868158044568701975764389516076978675852652844512412624999551500446528164609289301637396198596248627116552469686381679679898926165214199851453927165461087146642579982787502394314466902452482788300143583069929515556519437800245223151303498450165135282534109758167508041457187906821950981568896694015405755604304895471317814647969205869961179989712638873653156434533385358159355991366862608486227029865668230856391322081859205243349223418984664798210526346229686287664951506962624160562427520130045230878808386001275400811475149691364662422297630443481605116791864334302662386921297850278852358889421337211234006427201737554481726324853899054856936829237009088937143544264882420784254628067400727949203553263884395310176843535902614634763072330299690454652061926262131432489194803186842409134088861850323767044087704719307966571784256849026897445701681738816789861189706430445720674936819038578150207934661566449313590730058913427587859507244789523280819111629105580138004933863452764417313933658117613327809391955034255197172828302297095154055332908048519692552973383095501284117866823797494217191970739355699629987458292602414907796225905398117305275821678328756138724927303653480675706472407766738573961324489582488648287977793179313727108027109899461074191446897946165520249450318570817488899896798914971637787489025590225099991701002792918406533244711734918277073056848185216141458430014412531616953565356843617608571853526234602033829636223199923348840307859097794544840701170300969535869575649415379864004367255172999058279970397844748169737187653287426191705358289061774017189811696298239353948605904287040880117888146563671520380612884583643831562235595044769338061223822437036393897268816548208335810833309238391136380399102067218246357861894020440798834593501886465513643298446209753572279926653368398553462790972329973731499617165804506822730629796141721847522678866167024925094054887745504221254114909482807275415475092713334156380404504367461295490249830979315879244724602720926074648832289915186478554268544863559306311114244580348551547102811463486615699747944527377994339821948225084672057787128199320387838927199239941966129384976271130646024399123207291871092390807663772332535930835556597196364081227976194613256896835715569509148224129428251798488231005729729177203376606622897572752261427880020941268628252940689551746497786081359269872288240471563695126983108711424443667989378705646811664268994008825109521080987277368703295547685968672473550825120681335827070813817616071721962729143933241248511501997659814424407655722222464787493558737782042527923577925657220954611618023077095665878097584597191842984536407274546792949849428641994437812337290397685047998171715318690249444718472790398548389958345296943831203568934429827361406434043360379691364970084438312678674912152968835640386722167722538409797066667190311585614129129157558482761651796860004373240668351751987029748634283302831758669028717862094959083311277908133753682621964258801492709994707555457207359593968047004288904000336480851129631275254288802643810881503455097262828045075353550865020129826870786916865980775942342623605552411229237977215755005447778143609211173270052264866877182649594263478229452961396109268766063456200550426106400963439187016547237294932744011976935836635586268131457909379894575732526307968824492669555945498468625290072093696954344967455354859642657974342659787309798366887810327234326066448013832200305032452335927771189066376590476272815945843210527925866940974133622900862529816703913768457825359915356890858465414503430289810232293725434761187999263131999609773820249047676877462655216201724833270308937680793935384557279738827448585596353422051279598830825657828256769218365621866954302788206541760667363303434118667203926689870262052286013894500822671420942700981850702082347233416675957469397202363811330643553636074367873721227607519180940593034633821126162253602517497050459715983314192200133529342339543878823429725127888664609615158120028507142889759635060058824368627756865960266043787005875654579386081845921802031146273803961929222127175186293479109626049458046937839312570952756898061872425045229769554209497353096572736369817064492425303576057140325094838667775927403044273162958040264954422175053350012109458294830461082556395201962214393752213118492186727344879633043758331955393159339646679478159581727033790875403677414061138628181774967891021915359823946631629535399264114816070848289063015442594509231007137250299987018540527250282674880448949593274597430421357148407112045876499622990391750669241819731365680658241540132262872501080568857010470838548147260390722834158075571224010781929399123287703518023119429616995697178889678553752102616941731066075038158786165822183373035068564637120243268720555151195829879635594589421774155537765677395346155208995501621237411077699122803259964258372905887751263800696045179223715635792021833527626234930407373793472392950457478376415924358528065682177848973701685352098350065476467469637083504408850620397598749881013863175687894916994016013746514722738975295646494552033621164165299082702256091623597031249316936971713195372281213851798166886449279985003585022449761129221484097176012366265715474258419304982754858850829231868379292395744115296469346593226363592611905194598327098293395511236029019101083893043526611896753300896203186465184498766622209728007100082432211864213858992186092921436471406555411411506495952006442985333807081103245139517003483958988699292406725792590180471114543308271095810972424713772346474646292471904080188452962655473941105202259175624386087229284329943984284694288210338324861514684418551244880017194044233671003621095592890247814424045542297633964035743213094343001489476917874945980631451417816049134257739049235096836313867528115537350695746989774807943886384924775932030863388541511183284559339877007800228969998440061838765068097907801581892672432207554746083412730151345664767363142215111747165024973316467633111266879333083043226751410921602287651968571634301438573160110221445853509776058436871696103576154071359592249380631114982591602856898763210250325661031386411886141564539296688469933822832616363156492387271331319754227755264789293259174154795590694514981521822759041390902117531993758427265275913787869099489054965433114779669381697050010199117986981250818808423316909044017930976566288892292709689023930520512492835277724567393455659348179777207806559174884819791142548259637807001547823941399531872060045844817513470574724159416594656199178831640629661071072134443999811349430695303125547682826871711771234599464397047485269722027820847697743855221711803904098268857431606651650871980259373133258228757780106902952146516961242799919845912525274117444854959483143760316518134149531908390781357001992288035330700935988158561887087692580694508628585430303432420018320911060109827464529168771915494254797635870499579936452734039655507809981802579176974535276985313162587342255062125801034793522309383833089565227150211898181616563125449890723706630421506708546759581863377041243254493186052085746485074574143340492587759029926334733527289570365904363505370999625379093298575434677499802365335236802735781169757543461770675627290379939949018178153283873793278392602860919575935383949522782587281049235151157948579252897154852081091892912502854625660645352890967535992483992437509836465530575553821913045808734209521207437137200263394917984123494254999944305685699960191299991892915023537122894752654468301011368672866614403360688030924277461565195094199180826898983149276212920985516515343678119940567317844632949815311851131994138714427709994143880475475275955743441517144081156643113429276661871758845489669869219170929540349695483890739780546257182360942908440493320418732183638046670598400480493318975644421096869774889675716538879140782401043793616376789260133364130450068976211608385767280689264002112843649701954512848966737894908621525948056489986544451672779489993665806539195172313921028771954454037396744570141507136938324932930854396026500725617918164291660042480018029957491223184080957667244429396068444185026935794158314735343366914847158285822334295571293513163747744059857710837220595117154313658475404982981950501784151165827840135287773119584584005140622983830257860525577718146619592195764054803831069509211416562808114146275852095059788961749831243969903699894718104468864711588296055974840284991444216037907481478934186397278161166945230411834567586995325333166300629043564404960724239354099121352847487427632017154367635967024964653629952034570393289303588484132909511219285873002917029358193050355439744007457095666674322985860279169677889953472720681155119202698336629792854399142939487915106862596072541050009467956802734315013118486028968564555467213410464691801847304765184323014562324561817366133023455050174440838349692255420475362735657239907546393719384703137798520998997646760787877315352785672264189948644539481351505975091319557717303120040706192010388826907718866871164688953722723132669746707307351427122674514680590376101793019833793718462305360562260702179862410312190408345427840326856237825116274638511514676790123948225062381630999459594762153490331058676795092289073418034305381311159233127964400279508876606983033601439869162582566470775066563854939807962933629795529152931630990075714480129623327310327480813211434030466142109443428311202670216270719523744504472655108329933487749765721332849217424204301388731542006552269785713392162634870662839928984656957901100176009019442507726335513404451387048047059958710232382578752623254489349422021421636637805609500906570080185202406227615532948416894883450412271308107440979442611473169730326045783253344633878559702255393665187170644454094842091981397724878919677773644582157422220973934246238064125975041076908681059501014710572822924410580229222514884933210860935540331167188843723583107584194146040987940520308786159788638586034212713969233487116629529704817673168405204712660530409351753460371867938057529341518947033622628217899710385291844924977072796450200442695042109975484890289944155441502944828886405969471561273890849947321819014593743450533296264195366995778475754398412896711350621739690121307214850664549268982088960746195965280814739034427929243176291422828236008953464840118557934632299165383096377073131932149651647954048577603215968898839880749555473126148715842080342954057825949102567613798178259229004874857279990622196985336640497031454492611473104119362642949439398721624828518182599530219933882057065704056261140923064024937204492717495714958427497922652753428906424234510368760786245278264666824457871937213499222798185605754842919839417860908511395575340196418653456689114427774579588731531969444627816118996961216119974292312220075221083667551364458302345506679662844779511648985071813778384340200383500490613028252570824854317193780087764191967639352252887630934050498220427899604994062582713424638438935194911399443129725674593177687016007598361846535971422513717200604777802878704838010492211415749269794738394286646875904715244668134689301509852484741527020834047261318741133571861845669656162125645693213730363343902513856779210744494474174592169361955425513796749763145535504989454841798127493960030294096326840453041635502692792582238741171866171046702228607153117643518136878213071651577131297248160476099565158649229394318298284177621048014080336464781552105377546937740126251634977351383568274832410488430327585605307443853007315976681862968419405697298448508079739157152425406496602789772767411626793572463466162543673805946833774880098850307793719488445528874255052790149153758799425273304061596453527516272105746715486005090666627325202117378983331022577510842770079332018427000153770344424029343481737985302323894194232430156618506309440892920374625292722599656493869994604878104171697715062445954731737667631516795976426411611669192022669570248948816044356371854251573205498703445650443232485868953426559399939036076780101828156307363766426801381124831674897392430216217964747127177256689455376713086910909200731673847386041001916203349827441661299324762756563662884258254376247098660679668301888016512889506031096982986767812431148063733577939616855929248693254262095826969852070540888160564984263046424236643741515205845894337461024238715639260796953234891535927688885256570535509596648192009721837640973365041408939298154318455955340195913431876862901957817150403728194910714460685229367951788174014939348926848221324180009608160919217080294230047837163707154047908381365778395364134011422964961777107188323595618926170437229513972643562116266351707975461008196928693857358918189532760018480110832407237521131008773786519406413238352584930767942709326010112903447357740195522861243854111809121460911181104822432652942156396898701424330831821527764008482395151844422466634268955681554387160059203365000441533762345664866245384279275448589900970343919598482364346076986286721411169001808744035965415233532818499674098259664391192752662424151108465411817387072863946536368560391004013633024591041953787516907386490135567598244860242011474494594945402556573661256243725770149311059756397352520124060246672082151367401919254589400997786229232940187294153473865476006210033045611708438514174211956382747912116558656538065864950951713811237669728227572940000841979632033318966805421995348085051662231056660110177178983360897856335208667579019119823937087155264240022155461857467175990708526812099887477925087951862472886280265800468634771433497215319525668122230847044571942361144612201352593392028949729889509209284448505190703145052797396029565867063073395759707823571471747832289694589305581387396890158110211654531805299861146330884024176599171892752451510159312986025752135366621410298686680279679872828199127934442193819051835120781991115799308352777103443446091127656217480467069973169359544892919746461732177046450448858333249601113266086939437204978638209068647413389798535887247453268691571973704997692986739684699717508597563585314952769445163826367637041505091082013972549537124569054696393596426718072883465340434821516523581552833675748235258926807845998861175152677950461689566985171202339659537590181597241559562466841278656557064007032283411362087687521361364841290203707981514584072153084653657105172234318692657728611520483283197600945863501280529899354787637980490586481131541001013669868961781513165442673498131450644776301728453166808027548441898138980412401155866770168037358789080165889897826762981124567706597940539005589908984801851227748521861415645421235498303502160182457011619327161892955815254033060208258965617263254210176092972032984303633244487020386271597743125960604388506845435618403749978813392135061258302757393929212663974375767510885139353783683425838657518579302776489966727092307668352949455105633791918116837128919695244525366284192799627135355078615344847141888616941929702006694694905391181453421781673765565624088594614249831948095883136270770030962117195341363200176497346104770635999953197234542006684284309944955725014447827778047424766422435276962123589542270519471986024931228266647834199628503682180515465854692224237312711719229368496134639714740064201910296576448379251852707425723060829743421710748683526025606753541728513791076739598453787582970772351481367302935806764904276838598911812530103993732215226044342092697549017265554827585474111138988983582511764593406392332930986749306172317680290509568464921745047518476197748246167906049048350434901440869825941320472092078113686181540243786948894276310269348989145451120913276873410205590808863735916470212301193502538341144760943125245834779254304270677945477240854629097004528566101651572672957138386994771339808773250518752624378178376411221041134945881239265205208151823567800402179754894402655515688972733014702685930127206701103251717570469637485057104800382764516294942795073746374897192386149587863365704222698635568655089791008161772712210117610059646840977542457147033169651472939187298356113045522897281631973557920991431503189529594927919208635428014927061320954028390673140212247022856858454645374715512445270096283340064191967165875172794150260638780870112035145236684703433648228062323785683663103558066025230592279825335478151942091194438498174773805197578658668000543710168369419568504650384212024462600997405087962772829095868339857355160253959908143006325703396730806552274577383168786953089194104427310664379328000283717981249831325223430464269710006017459554099239839679368934982251050064698272860212810269692522898742548108669554397661235283857047690387143787835347040891138703111432654018886312152295523231413250530066073706463310479466272759139496466817669781113559839110517822901771454408782820488940857790227171909830058880261159707878498271258665381194454088464211401680450374008675589806007124687751543192595527702031009874542809731679614694095372505240869358646425044075794830794743771691316953389609162048492442617270668681196096434619155558922173054039359511076963689336286306973045391756332823520315639319473919565403352902033680453661026049836733319047601902879072137245165878282407768884874940571596154888244239910512895838920357244153928211023427558186224303028435823562494571593658781812549347978166444585331756773707468228698348031745004117435099593163667318242019719769315925309488169942390019518233120683419327125234249600213857897940365299299612961637650365699812298939567795633481014487031680619975064885305575882512457355372512592239694634052098092028954602174912891875973248148783628712591858717565592799645908707286561280597183914832555696396724320294633852578959993691514830797070314578076150997215897816600097770701935711524151504333911247493293952002901730266332618149356224358817213916380727980358856684039902217159611832406940787158315145772139028137648065797602562343919702357367159649546247651187919153527548205543337777756088286798080380799359498047694579583470161944566316688215722547310598595388842353955961904240725294256395320262988511865200193011842554137092888912845784262168886345498612559444807116784283644417991958683412465949181665807059859865224804022732169542437417882345493216193584425890381861964533815333693110791113405432143418547639541416685313655080013119926032778318712477407798465891395776700760136992965567419105063823785352990007386785685593975575299156283716953757438761878191816753374668122876092677161673003768770323543251028317791566037289751324579627661098824034812225119909328397792970119219152813445101892585742783866523221159438343936470886716920935465562348729311049943617548888675320645403142975789518115698023609553438331037438160762454033467508990156279716913721453451791075536171732035649068774341403238762053998985612356711430135015111018512934870188975358407068707311191498238726083428210456103497718625855277622876230568647689697714205050518651758886489240750284072056956141381293085662426039858565105530231206939039764951624653997454749505905226711227026573984298873649565152865522315194863731289639296631889766253818797480427285877047238871383583048487761942948529478450456713879442069868518734285166990127025334329415935678609839486655794113532612671207629798098870938023404088358927484538136986006217248635165846088714244375070470398948414691842739095211831992058910476454992380975756978544174131928465796104865249782913282598158971346599115132813920200116919826557085647368236198082773907511658405767914945002871896396664769069171233828824382897472081266861400606029936249923107612186498071831792373755865748746238830582925737586719147824880836600384345160398644204558340924895530075182915256793421103348718360860175145392665442752977443615662464885512094307695429563971870484664167441156885338755672419773146788799735851269770817554378797925593219845875771866094471404333552754478245364030663038206425819131116300731609962286482874152336711583320878455132357753692035370028455794521159390223449412593793266938312405216958546097554699112711953434836506912302889118945394756862614027690300042879113810443154430396986614925958979008972235740953512266051032717196421608456999266380824660453270024518820990654870958155089317026176124503857167589229732682278498357949023795841228913882948242600486317490513207899901262452848782846925865162005217704072615872422878842774938603595002042787611838289029606699608492441040432147116101449964789859313986480705984019383181822594418642241589881056528890663774796271054291061941615630410795134666171904418118952283184397810309931033243342195413377386856422483029524614683273212836778611996920340685643465065978069453167855487519171922927593356190781491580086844915052828909452962602894966440688318810608308012033593342266524761039043610931632565694695963754645295777570541567275687178529785123277730250411156260561025788911868345136990104975777628419997394015974095773488293275444456896293918727962020440476074552084175081314499650570848162204734504863204921299612238243714542973756559572328049886481365747878650192463325904929159912896915342757084334866462373548524685600266138391378622363260480118510305088218870451264128575517245735902276128924986469023373388289750153784666743208485601095405743250186177279624745299639358864603824506304717741660351961377953738145870896248641556120644835016462138392258543061694064060509805399198269730868948397391781308918943095382124116536285555218355372059648289285184483622573145716207548123455364684403100987297682293615601150749830293635677290934283499773108632980258767101972495028331730309471484768825707150251931983750820324363792078854304704071837030461194071652154228207460116171590591087368231690254429303924323482991830009337753888605386276719148176723101193158862632291610733627920822191572264578252888929834928957286830135399583469999342437968823501820482127890352466706766990843243749065562085353109661226247259702012515678609843211035095521404206403690114870359059702924241297837947395335333565915796790616823237231552317193141694900890028902456387619957632102681105907389447532210984592894942625232651028506224579810971723674823236003840512610512550821808673321094444247303744580882618070948077050848311975328494106145754563131551743479159746797320522194324686298884601566686863692956306119533816554336209321676028476007233034499618997782276846599020020054400409848498995244813927655889692123196585443437817177519005266285163665882057157271764814743506066200065819011661300450554849802201020263506636245758982045116309860938786600375426652412649139140926089087844524771386751166343841007922895329655320784787669917721585458464947532028864931130306883808406250556390416271742691814668729051873159477156705234810209028399365841144658355073968721210086639524852363034028015409213071496955426144198332479340954058879998728220277603910706715406716521328061935491236674010729058886409894478987832235349462353746430256163044750677732189933794345271643986236442945533031635693289288294589211002102917927456454004754346315781762988970831673691627421783437745024154792971660402666663604490042446978955715040882648387213036030386335100285815202080679559924009909061749467492637177506665717540123018065815362773600182086616017534830442931202339423380141650690165661169332390395410380265670422968527104999513334435093587653478114744274731347866918371952099895270513507983185989953712639431569019417329571856879364924363172146577983363590010004758755367105563295328920734206718147424251675780288191453298317373975554655437397337554686265364916223356229244792628287244038614364707078802394177238829902820786634047186545967040127929904636811443094110835863209436647679142831643460260547398729771863865669235145045098931593765030640405295196879951899386488993071103053098737120108103838942974194917472361091846802753478931862570655295670223293899025181559276387291291807086298704066952383131175257945202810923896387187095507038325652101175119584706530009540631336256464972270714833683392644973812192333598274368474485019200105956363162996700198331855962399465107146586972770834809404224069460337824566933222092700169731901421973121426137292134609964667687125556605844750927348618256003325890347045666754750094880430201212498026648191129618558583684291393951702773428153121270938847393966867537984464196892401939483406917260288559501265579147267774418599597077773712383934494691807410575975323839873014095251696664718689344127007796523101660393507742189834859612315948505469160116807604073243311990707887791997089563109656156008365513477989158087053195416953931766292041979064524166552493191726511208312982085585493511640736952484658503850837792420228556626732458784719286752427020927320826047194168236378307584503233882566670722397914276449440509804725541506009298289576887205633133830276950916815535641112640742987602592160694359327531303159204464612303506789887743681278945148521465953946365252849606280556495700395933753667207742229785228734516226197327358775229767608043647195626292071096710455869684972652645765915702596591885599175611264538760778291190644731336889563850816262588077198368473361011005949027953026129696067398692987705144109962303137628507143434000466355600743875179801804746688569533279795026866824515661473065203717746914493953620609899258022570975406015112123763352453298319135723940660112694717880365179741271231011922647974254582751473947485211840493665569057907404546470596254222102542160207326663677404125938127454281953809380940316681977112151702002157456491830767176102746149357934552595167115863100216709557583460603333575730369370510329732727958551820313666000149113844248243275237717725163481034793483806129296552654539854832318986500862181972986144517937007838842133423518839139148981536917790780156360272128123719737373291703420073818136024474721356034825903268956462103776188232491067977760002328087480369857014284025357730405107341596412207575294677791249013888139916912553491317880628517760161960344941700520441476893622454122223047120173334439839239755549864185116932127758607588148474324190774040830924940970461214787530879026568606356539884882575433983589367817970753664948046543647394150638471379889421601843517633200881964029741443948407061490163239128052403949296156566041926407154210787845210463250564206624512415334291693795621902984997386918741744083724389201430787858310508863040633782769027883209105598218528074053310900150360280244067991250700485297746417329209390071137426823406055193279813051288047036121491906053748651828696568863506651573965951935625290004183130560427438497468605888486779109478838874127757295045902386810596962367640974864085061165941871567584994390864190218670062494348289577061891800595597137603815889757596626548227914043049376793976727145386439919421155144981843412972853297697239404751765122968207119844809108360883168904157108807696977956067382913497206071412483581213095046029422083291885630641562654590842869895015129491791242802996236041693660241942183948890793050409865631918735359104767794571781129418587576009963560483325895025286684972458823321420311900467941122393109377171561506316571899339462394956716687717187432691932900232974910577253705691137882088789386748618429086286284790324061632872113544121977907023686137631250867069724963564495369303946300100584012326185508326451488246054979018172105846719258840963998355241676442145199931832877298646948543816235522604747519064136048545555128817315364843888608898186009422560892106363420980852460695974183779657702485381702883711273508672098809454592172505711052739973167222060672798999450225030411743131113094575793194467620781237761153412193973570372591451806062861469810023502248723295731703037917257514159658087624497375715726792272942340899987637946251002127741232478480799922626479374431948007977562774624279508349464774320695923332853398299440451691470147745438848679756881048524898280530353974622415083249446983279123380960031630402714516459047003205155845471024576668383568096220108972712314357558903713240883513074138402212268622952699063499989821147404038241220561462451279610660639457157843691754915093051033157821585702739900590975336905559339049179698724124700135668918837500969075258624089584423704750641223684032775020247342168119363371818406201134709230421129057501329604610688512926230586427500988651018269261639740866296921057813788391186413890863832359288003453651587546827844611249704729120554139927495592020234385997604284224358886471653444951432437621160402600427444688776349051105163624887629230131601106240678689339720620813278801522604158472194620322712445529483592354908548063587691650624118423042107947396096363149908741840338926428584163512123111427751593260575135014323333391917000248411416131013141017997132681659609599457441131321330664196508008689745243031794613928109403194359909036547754722982264395705771069076671538453010613743507397195597488631619196917175727656027339136194861699568940788530961478299258329057896353605289048278280340894014084272738513506606247775811515302139777498664699737644104140577800780072339284765535905069031347431599164269130466309575472973758427004139183045941536856937941755867786803330488876125525639077069933703510676160093164094547148371646290111574704707838761821202718712298737150516415582092784286239978944165017448289406713439540381251953573505755302341255471884234192501063826079011114267663598245900514275648442513584532611572518939065355502606239290060910600990764820407501991792559981414220446831863716773298939621610951202378345867484852405855217622114530012642454823064427115937153613277607618657259859455866895752194224541356699568494074699279348083982059554324813582915948558098771633047370928481117744185798713026727029063590584980259181635603979764744970196014231684877731051571099966514804466266264065243766225138119082506906539989648743726099949287402904254739051301670359401532575138377824788942606923459370353611860114506142396579013567746487644663118738293980012595856807252005910350784642777130309328346254251139894125148797026392166815938816522305672026289397588212319478594907595770078075317339865536366756972787410974571363005501408995177460546510559702042511966652096710392302309530296613113141431325084919855211896674442148034554145836402422524385029751351616081549712769317446095577461805570384818288761355349323949826738893817307312543193534133841601418948620683190660473527692287152315877177221401584044609885068382908942348147950753734329062737288003789977677022491928639702625484814423594136574625543468025468298476412502339089760064418519195762280502005193369196719763190837376216129490542429863844333782742307616458851440768001590345155905524327312762995540217271400492123369739970996641753654805255153979904146164255360236056960646997804672857748025401574059593875889524396727106689512157085499014470317974404267226091020225103221246068561378239112083608783728475006722863724607978973539358541423488015458124517226810066270061575661218390513660142094568163450216326094630596466597015728329376106494368460950291257636186145081373967775401486285587745866325199679112197349677028824173293483950611892462416104263840222815312126765790084426021868452726702514960728184116283509141031643531602751146497812909923975711643806496707072449107258837718120129621093844953534979600410581577384196771892596543640483880236412770446264131395707751948599081863309416608157240966598071106430976609202257126801571926943441783367391923006686432972168332348311528117985681554759789254285491756508513613287796456758955066711404631577083297520381300994645931126978239571292481541123229670084666437486272136785204229807810618726252669304530633481021523038716307847096956355038585996787295384839618973511593409819866664234865129151381141197055366636921294489736594132858442888654860500098633603624327806245377517987776569945172431271242408438690881015552284437652686821918122692593765624014595622448193482639897477839930276297665272054922710746158375092096289700510608608353517004693172248307987167126430337546319657814295598353723128587356974379581931417640635646968597675053407344917977638162357193791865568081344934715206406802751635438886054651369865749961071978146262341550144109687987792581189963635210677438707164018885437856197072332331165771547604684819750673222203485276553529959137181847627412522675609797922389344993316245045047594975201210900610225826694641435558570219294041595535268165783317347920865874164126660541389965842159158481156021478349759888491208105843971169667221215291271757974739986070031421675117004185677131809506079931709230873250349646214700278530716593122204127883815551107038987395654250681686635284566906688633390416580565426856088527745392456270642222221555286130114329746061305677242193577055048884506561395158529455892103643490766783610415724164434485921506955112712765191201250255864212172066448231034738480650552094533777681477790055684944625768804498426866188174885839324711810732071370607968301495032016195769152685233224508267857036174372227078345665200848790918963349347806466632823327600880951371876189276755033816218790668797552787893823178947788697300562709181315361764400123031478172947103048515411788694344587615653433313299287053015608205300098499361320452201830398427495251923137026975411333528634083301265493559772392721780894103245122680936755708413732892327448658380963557462991393355156277832375556774992068185974890810955700633397937415386303291181119358415963912574696233367067054487164542631318376815396804787290016234650309372567121102931511793507436992692825193246217099375521143088717089459333557681929998529490035912660068429382547481972429183914808301184940012501525529575839703850230864542582805058445547871323043326418534385886506651831028432140455022182824356105927048385890592237539809106834421246205331163965323203059092470971787111223505668915318514647404997093889432834254909703026476294928760117900948992845906857939538163356351694029096284821330653734699905658005476415026259525765989641781411611727544210354968259805827980598002425099778910484848644663160613262499056450955102252067695638770791741973815425860097540558159658199611782722382339918966443877437172079402184890716927127748323221058949748229405709694999722845647461274659750570875435407752979102899124980401568245055424583643625018758664151526452357633190595068452758202274159245771343065822094901015247966497528895359728588367984485281268028606577663658752033802835260312648077247041895403346249347210043271091165746704549595003276468450469872809711224692179551762512698468078445048805286361436158199977689232793459416186388610127453268816048795549276118556647065568571815321623495916765986025383509518218416434781342441588598746754632657019207827142329678301127350781018612404357960221587093714865240379684075205856380142995216009889844325286105028658470520628669562698090569684009576692308617190562153209039001993170278237865432413946992884526702259188036396723254487828997579817232138968823376161930921682014403695238731626311936735684161225614098294191144551808473199798604900552847576225575013401037908168413555285399318243881051107635078736704585006602788035880656440128005310774264443333215645505266411661279795176101387581788669091566993545246932246978722946236259460173263863970787150108668335534261504823820768322865213278723337360939069934617604193548587576369684519763027160216350139329837546064023372114673102092418092842341040163429101928463951097762611545767328541131046781789049217131501945967199536704149347501479771552456941640145235657348844614017289599793724251669401429870101583011912899894917553241146234505517453832728620960213000349716290466329750836739269395451504007061402315152083896868008593522479881482487227535741681671544272832121774450735098298342484120983034770985493409980531107120618948774170034578089539921958691333942564875490266935350305112740117339683720061291810438972496036777888024334615549418535224729459474852686855758503350440593092810635577725999621633446958008749819084200692077080562343337121111579212226552699147512761131669864707892883917124798626048975290976688565543493165541244208531555114093812367321906161942086370724964336414616626449844730587315926800284178006630693576632394565130423095658912933280594814142977717269503217693626988721345810335136493554551736800793903189444231203536024996529334343562326208325636331506497317516551644285865918762257952377055234767855597092790040014347663102283036343689031416798660892308323337685218212280062505447219167940286041868975781664747030286556479237893508767098358621728153076051970813273964055766624594226625347585244041144958409039468290983069710859053836297785637694690739550552507030512437715065879205481768933721829027702923804595399049897666660433103326854571157515437166095750804467190399878791386597308823107352596204782184249106429179993076739420941565276061357127626628286263191745113154444855241174061092860347832230120822762709282500764335151829491267484544266082675893820252414856012001684112350019804155654938670336856817773657351527146386940628590692918622113065715751143813084277813199291624604494626510941014334191600154279893411922328961898269884613962739971162812564148829318250085034930414544884545196015117697606666590141841229579483366440833635891139767750717063561872087256435376533316891641143129962620707399585532687671947684675060753842131098347191446195219993768103600159693011955906074658288904806730396876203398789961633890592862162040907452084668883052453621768529885778314084745505756999726420292421578202765291849983062625284537481813202637320920406810111655857881197125666493432973727032785906034186114030238373347462722834988727456287958065837226451365635122916923871617141520519925811423207335329651293051724464360086325143450331220789485853245682096008702227344050031450476875835937900739575655498843670064554447483530397149547440261375764759715460139514510924564737398143098107771213406325515728587698038266450689105343102947167757488134620875931928334881738406781375567073069842550475495645654307019591558816425197031179779844256689416267750234611940710674287696647333437794647027608484556193203225923886115310784821699882762230440807248951115021419281323884832867322199434561305236343806046178634132654894618007790530537965339017682051050084362549569857627873986887877076288689151915137564473921471541683105824679989956892607683838413167656174095218477077194464181335138638473276122395033866298353867421785354151924004598086006394729824125075560921207277566066111637148778847557088169668285056643777441700200371042037210290318795002019466517198882255082210097285147491600184749862569867503433353294526564331437830314718531631820970743109594533822856211387896675708445164732595810238479436174371583063695098912026037368999707308570040170771172012613860349392182577696231192922153590955524035798558399893908439512000582832058409096562852995738601170675615493274572562793245776536242451486508439980113279737225679977128946995823986855278775530858348548660422913460990560114827140272907991005857494118094642114272173872771752597188232928144664066388903824034747411359604014972025984390024701951519413074623724172213906102260847156807292923041408260418082233335654497419285760068472689885162551588567216593242924468035894800288013577157252871094670904966006486570551444632140133240755941803974658101934076794005583346469273576956932067118851288399363928259413462631159440856555539630220906389459055655626346192561485242737190958226797749426979675575595302506503692308604354169483026254254487589069369160836818546479902558050146233977795695433700865498239653766221025833312773923742774219999387631780488282311121072575979425788437006665965663332859780011322784006900513788056840068417272993542061355881210735757758972415185450532878966362298335824191180905715118499763010002188754888071352032004120308871586841258351194978062987107909302685976645938286029205590009690240789261123379764052438683673572474701340418523167492167751958597095015460298147538568946564866541627674330917530169849158400979949190989370895228424566047471750804551824584448728997549832195574932502656122585542555847484934264078481304436423758122142208546597896464804711013862995066272543776149195292765022617622089804968706292104308250404099457684704965025259594042272376620833042546837410438994184436872269627481449908114670358615806157856562969309159401173740783455657178845871890470360129284098769070761082760395684791853656603884800465706066518466849320967694338899964311303288017764835112458526954260511852815209191018610484421599156165361836277974239777659077619670770191641023855604567893759641527235787931126744829353983112837331637689357712682280247050206461573967791848142328181313758764449481104198725126023481211033068963900306526040228275113373063123089048588099007474019229165932002420146115001850046034093080670739660971014716483052234453318186987439233450654593772262466069608616420056778877233125903907823864311381311356308238856505748637714198320550456881235625532563261353945491078474784188893240674711930309475279510594454455471590212263563168193042397727205648593311928823972044811513444518837321888533378448788464193251274283244382816234431612942868677670110434226527114198121217671071113375183104990177607504141393726085114628039233473304771414480529454552076349895856857169514849178864611345216923964110443106570156929048092678751724414626487828055641938560112806667265072348716647980024991296305847078041611668042063709876839185420392608301889812425454394264547218608885930838496876038507348294546555849576186160997649713327648398636572632591561774320863893922201545273685282710183643562009680638864797782986252218723397726462648987434608115597116042752392416624196224585083920593624607465157326857099490217483482901689595862617426819968181590425271530829558447021523160009980438706293092963204560580577833898919921914188431023027854294040518740664566805840578867452856830014370336968652111130801309638570998265497285399760310740980794472621543169474922039670488540456579456140901234327984607027079559292638570408452054038304533009613307966862538618254821394621169630619181703304944597216126778684972842178417086166579197489325236400610658594528455576692083962883914101783364811100970977032756013840367686448034290972424171161086697448749438083776909702301330728986375330523259986931764122529500691120655969059564982403650129512834456030499200016678772431646266659409255064726906192797339729594452312616080614654697367923786138834975562637316596552669229495506335184647425344786967810043533175956864271183098537512425481456964754716130871842995025942823713210956442664401129268580238011363733827121731462435894914951428974156100447025475865024440693882294985606579711424346153391165938887460738723852392404737537488421112709086666400853376680527615652335048826542614985616526454453969355744821402400634985643232977432764451264310105632448544862913477455410524427241291880635292249905042825820732646405097953654742085850659728481640635537827986635424704861731451624744722850379000145846723764019769450798588588781122610899393162506960762347279877193739756064940805295172361051893661246552826367409082127127952042792395375286429156198279790498985880574800573836567208737462016422252294686888124951207458505869929639446603114836072343838132002204637881870602267205490283592450913073934007078886124770681358628756184139499412928271259449229245571331926625025765153083649847237874227699336739550840755459985266564270038062610097971319366987446829873171663207851049134396657916532401072531487784849735758711943291526002402342131976474944658481754866819206069210515847649555146966668243807999484567475701718772274904268049605785538747297269110606000492185194523616422806156127522662932344530506152790544249181908291270342997436690568860248947450650525239757262201737467434358081035839269052911256030674274769802600389422791660026473407536572529002475319309534212405819063299151044977888289288310604990193846511008674944335492602780446894587751803711351142164672799421810007891795697318846337156799088432521145893399526343083010982054993970196683830132660618982259910006050815315795974901891040722560345529610634924677324448539741503586242046721108160912328408895863360054532673785003865838092806083668749474253057233440371326683162577588684311128169725733358861819884045740695077647446742828732694900504634013151584783815493558449739848862383469592892377972352782645642188559151351031635781043717363853657789655890610956211335892464254998236692617589321417181376548048598262657575137944708315276424964792461759136632381476119164832224437478196127502997008486996156248268354362010558894452126847185284657343822800097044612700772773391056091387472299074893463337033901856722541877435643623740253661201687025925572549252413920449842140330974058397905979179784954143024044427795657839604069113966277537426284513518148593509696484704266669088405979840237979455648522238121636955886629903725169232289478394422717185439891634487938944548100450910432831281486227863429551635579845123749537733965369450815030672513464634333839618781246317972513454749073962802167038954032921850916577419203745206348862565055843936121677137467354530747036880371725757221869955507190960873949184487135914714382337168500366032609591674948227923784466170489852449222051484980774054813165882097270064072069551200499341702735155217843498375886487143126797568478077252125519487837394199653416412804490955910407070608499014990703393168388213832030428995945226055594369599515246601944400202117386144559172555842515511808918948029313998457675058348665491328729370208158345335900626638742608044602272605096676053964157044906094393669692041600656750965805475810049512360048329685899951091003453728112644356060781012654279407413674215101481856420019942992008464858141796362210053503598128793886056863903741380893772467500216921941344094686267718917674686440852838800776691683027692263699463629935219032038812436944866828055312507078137323482797622127780215378099140040557268757592877543798985150563235214169632690602856061987229785726386671402304706864390757368787011968959268578086725014194896958336371597484831043721279806257180181849149417426648902807538280428129428973569819561564985406761965696338516747834179976992827933340213303935446221214497640936896391845431523434016357168112555666076967480927932600235607904586672177210106666727845354192904825291067694163412507851454337383632617050925327561833281383427346125595183715483046327108515862309581968816585072948074067532727975771119008415843951437525393211152403294435580225637748757198311957382771818714739824214476613469317550924882492351660322305010391144638078130967062274310132846704366057289142862696139207544796718817999913736567913496254667943666553403058661142786190220320975167501567088596445224372254253163731560076293934643608015962116089347724209585542024260453186797152796254601138579023303344988033407259680646434036944422943527436404548084729884940555499278632380471182097818265101997490790349231431795388682866023920373581995027243165243331101182398749871589720982229386623656142563548865452419634734271879262114716100459268051425335365079008756462361151549399575846927539413549500108435979698771461640694153472882399172134290765416349964069885999938879346197984926874786474311463236154812626118500800345941210415733006406979215782225933877651201448176448550950318080906308720406030929459198118012830663712342660796053317210058438963582485738402072130180339938835926009531133682829859407188647559037125022394623009230987588420768714492754898105137187420377190235372453500884890623961213825787165401977557464122553855719500549796052431742685881837177348161814877006668227308806595183029157389703054069901838193912067899460164669733260807874034891825677579774331696383023803137535590233976400804917551409101854145233073475354397512575944625231009759403054095725600348217208470706036341878453140520320223550747751565401998494604417028625961561689940483959267167858875243346952756392422136941961760319171011274745965415201578921826429299823918708698486126998601331144837028870564773876532554305427381326429917484988474313401596377277200508020166713507930294853023583280305425003072982848443504588683259462627287949493421382300333154895797745371453704442921702335660849391351704216279861841089568553797627954944619322307004352942650127222155116028072261930021894321457374505794261455284224401225109755768509007874765514014152824812593419700970171470643005569506067506519713848019302911570305632100909688257167196763559231345600083687173237784885124944096391857952015933229035165115217387200151528861386458521571977237087376025946398462137775141463814441628100131067222542713947629612125735210128794572364769327088128524148446099531939372451048034841784994686404132583109849950583885269682820505938540091633758115190896919915557486405472266985099046452866816912226309178371843363318741694466923369290967641572438474139191986004995510288549584939738965508522995200490038030501943694497067096359469722364846216184389724440964949015894296690572677518754495896614007889098500516519680282965627537154163944260889867993948903867031231439418049187656158059630673686847395192123216979311980598289462132474328020592426418062142632488271101671263767641862285199159131138632399841890810233573547410858277609578890878309489455429158189076987729883099957433758134760205351978969202476169066373805345702071113174420351907646404339818331877385670588826075718690832927967237879004718401610094619208931457976200379242604425310303202680326499526864683755400435808850659720644921457802371305456257298946903771966856982717984086428177480958598280945187668892934900097748304280075978841466447670276609862926521709328731102835809261066157242493953146381268447915182577217771225237286959556477122514601798058595770288875181945507619755272992312744970011977586396766036198169630432224579643573635135432821904679551411630497539019425105202994605495904530445644951325028037179592588567032283181939121583094303844525577707204558024404496525262285127812297869313776034804729703485664924642782662884831665931976369797414447886866747425500198815836908926877329063400534857513667792605703880642905606308623825544967456467427821819222974085287359064677530387026345021872306122416052566792225948216486933145217768724848486374009857683050979381378791636763689939670320880731664922183560920192830406238936803659776414506638613902975754620686333576103002872031551884726534399904393757360540582686555197332325920831159673089827015716735511265992877475572189152543648448168829000666516120574158665038581240140573189524132321586777442120242601362437176507574711900188977335491922707058765734210364437127046804260672328094118264533422634693904477373881190230078754616258526216150724615983932898039158044631076795916784811429404703190441859647613178351445381538601697350683034958006324974563921777695754841089084197749454115438433659798972349287361142888323773741492690540784500501119053933003927482243256266170006675727808361162317340886222673869116233159028249846581526935583192353738309561850013554480774395789483716850924513924610199349354400364913032374558184895665292949729319589141385633102280622505783059245162700519387226169496413362331758778744553082360813591048622899126069938137470755506835676103025206827231398858030360550296077871904027654416219235548953188037136339574979951840288632523476388350469358583000708401727217939452566426203730471621332005604377071581910360411115419802050321152048179563806363387703169998719164820630402697028823530882272336549242880302537007173164289925632592388286941505015908576980094859495510216668050230560568503748070325052034801534600061090102585716129921834141751125803535882060458653994841684088538245486494758927345318674162539208032013825414773219445137282797692141415914774169106123619150283461907239779209656716127139174859205912579522961618093848143032999006068058577139972481140965343510162204725377938418810441156889990238401142814313301161413283109077852824001631029402626292238923618433599353551592792225067415573024986538823421460358895440914714898646226909498983083555187388632608101754090112960056082256036973686136451753095858586503345442327507759018149324980215207290693392718123730805513755791591869367387794510128222663166330641014488135670153240851703693399200086459773159598845172642265790081915549041273263965408889865637102871002644824054695735527615571788148770100101547755739392987401056586071914826129038911783995286613651955550607692405122756627716886247544554769663955688662866564736558403152995231008983484064498008158442892489209396872668133302259114983685094459669815155208027911717933876714013486843635214916514769431628829179698827790587823318148303574220875632289076438219802453954613687437609024729552246614294311346676333103016466840420887775922008698405721097726005184432161325374057693297798519996816746493514699560942961795631820452509643232949365872370066193659667472905441704207349048343003095064336011250674113950608357703441925179819187763755643183976182081927710967236394886986330273997917318081466359085430451229430300339609990645870497011035198961442738594211449109361185210896102560864941003735088879741926844329591671517695088568289292730644448470236914592033625668965286330574346017430598441362583828534234412155813350441805248799673970334894750056744567983296357310958308152613935396715406666707635547942924554834580918144686313506461298880194277194055231063766450412537027861541421900270384825059257385931116367668513108086662624310919820168535943149874521476327163591048568468332954073052334958079909354404051349319887374938662588248105032037433869722965162787001857619681726224202487765879206550958547460607295960706516959665087916779420259599949312620855763235326128221298061063494636546264108645355365641892197492245187527862894302604983071988787269394773792704434132706325425962484351869589388199852948067067101677589641339813902153469380009027565655723473787900940624218560723123063529690432683703033062273952240677351726043698822564084252093217760547358352797011002030366509927812684106226501055405251984197449732871253187868195207758724990360882376031851943033791865318872767560761785409215459807204845286351835632960964424136458297800756737625701873103115869188142297859648928304593084042094836891049824646890765103632884650474755355957868207706560608821977918961192383918057450163662358027724358169489656779822444314451747352254951346954707544104956033385939004766350634354398930769473883052243918700185890180963522481594864722278036590651312653263956218592408136790420226391511786391796297988011352879160983812038593110116868594069568619766352290652461592962160666027152246113244048759736902106471571770232702055660986508316446155460083608476600232106378383376459094507775352982186936604480527934288704403421152332106509877444719526354325600000198359509225452704605495599586851111846665018993052918957809344535272843753273266198128844865793591264795207657273276195913083221989590437132728945239141885775201235902131376430358959357436069346851858040680783687772185974638328897954537888899148459983088997022490429555007276971688746932828851641088147158778956480128922040201378585747714503386540498162078170631333895580079030833879600676025434545794663932488827643950721332246375615508265659465307617257007065718208366465069109774302886745551677878049779889227861216433664069473699367710375353142287292210468292804971011680296257343420578099508318239104655102511798869010949866915373275238638847261580280574322419758522227321459626617191869267563840746994172838808494312749248094415791278305525268699894524501025012517667130584562283154668939190108413328108803904208408549203176860944404135619549007314981395306359042192822277534022419837074298840396322723047749717658391050316581891528863652357423756148445112460557025004248399153066682257450078974765219329026555715077081638988908280357676072601302656677463573654238484714182671782221249317719283718947874889906091381114191190227796793497667403249866760764829198225649912929889546336605427617880271645900394469742195774428591097308382663043100923078360772047700959143338417222790032834328623949939905155568432405795040727337996084102644111678458801605310389032694305853928568826422416734828771846884251350265226643979812587461347857398304870471012686151202453172930894709674993814074117099853962587102282481713899510285032692089804465722810560740146582275202901808052545509503170861888209144418874107519787977898990616887648203086184629322892900446894244833787695529694710116897928884475918265651564429185627269833960788336442783320055595827128511306842716906325244563943202017248859802271227142346174411210342703273899663820136839872849355103190258577553098419727537966198245517697887176803541065209240313451418588795022534486963341623659709335243314710663595688365917518947280480443925966084166405687142761424136079107771214565626175092795254033387415775898733550955265871782987887339559227732158245782017931409337532243020138630724169908155730969802962610110881848741856517150237104002621706689157782976340247990533229307246717785458904030078271769848519890358422254907087715542963259088971886660334069056881988469156951439520544288886265655666871842400006898876391581566848834274017519885221029549099432701998170164179047832493273977888253917252955158438937866050613759225886960102411724812146945263187838363985940849683341939510997129500784651387220033368572199870390966908542386333181972366656268578468543603058805796461167497634967552453441310059424272957433726253416474771798159162194507380332663465342947845758424709416552032943485804706476245943180459558274784142290902666719784998866639912301551417603567432193199723505522122605922067115545292820230800379601896045687062984197222777577015547732430819873767682361628236064802954948675324773255064372533411943185009992516457460396147178290634063123555689875850158396251417813224537665271316758059536655721438258889666548171777217913712428751623441161790710355141182952947238041886926797940193214969260354158871217676415707073767209117185137102523478140249785324970993380846006640732393623505539648119979068461046452207008853090381782631939393126137556110103972352740327432977998636188615504571614593179296627429731784686311447652307444283443723658547603720244508488422258427589365180132337619334087178453304690515888283036814540995303879959967024731452991952737687888076421301144376844760886663223771554066803676877748113697424466174523468731300812379282312631468426801498254854027164012234636890603239601347062231513546609196273487521020708315246219680658661888806141765561850669835119952218699386919572867277130670078641245919364907074389986386513899094035664612889344509546471833138262490753936315900534388393175983895886774306174001104465207016095390876618500151023439474422192443129031428557381236307677609545235591452650440303094029466338774187345042760289497306486754274975264832607482152565410751436011980792123710232486668970973844741391080199867451070938278773109073614015329063264623839657337621984889100141815709841091391865318571699225339594025036206911323023409772740337372469514022384093099057234371838775989424684483141560939379327798074301975942138931858580385018066401681776675911947831153551760872061109329923501663355840450670892678880778611508086455589609364352249490954444762564343053283120749260114183259285130839747101757102950494531675004433767846630478463192387553476490796507806852813021103815513344030074291282715650382663273161091086689473153174091224916630900250243736016698847006919076163721332681506797150786826027773874912070633300078811083986735548503382372885131883760030217662584955596455608965504936241487811284667633230605635762954881618730974133136850600870860318757022327079012532033195759080139107065914978479952854485517858728999730029708005726147102297335785528401328875750844469719677730345878627353170574052262270743902586822167082585869455926746615721847602851830623390772399032355000095620263365656089760427077528732338148416265255149290080627020724264501532722428411049212262917063555838496621881013294878660320371598274217649789952996604045574511220723937180468702729188609678445971763858777357966567123366225655872748440320363044657703827083538416948316777793307086838011503339417412451502212523419072746299213252063520480004860103391817670500465567301791086379760263923044085813042160048234928543332653871965384024180886430726363520156300274464539597802724169897047237455973612025404987938175919351695398687207956772056498813485186434368420416510386392729373817449746229121087947504094728626583988798802752491629025790433374015911703987811537307101473730274559492149383141558176945658668980503518479065610894416988241134424598590929054594310248613007226307061758958522463103579593010687761609324480498854648137478975711833515344188965284754766614087345017250091526572020445793850787691541457908767661203461279582510361475571678990737174334186402286901062953376322247291459709955607910223267666445169584395148231064746780691572078069241803795680725204061481546380621511068304314627342384897322856273461697020574938315829541526914203958767359260249320803646243670019835109716515975923812276312821456336888403239031059515756159809704763567239460861804178022698243527543429712104363851341975338166751016661355721096407980031142806928844916952804666962385809256538861598855984665223015823175096116569121492678866331037375535716895847693420221620829419545030992671142733859385365036939933579055400291819765323126538729300189091425277128589851659008327551864560201270247505046299692711128681030759218739950328884434706619593650881793378642600445296603976780017819158916741213225125015809151616884125276397115955548549708249081411341596525872306199127579083935070998036631582931056528931251256662669098401061437580611039198403581932960546094456251292450132210742553959658174151291913705612716694057554601870940911650771975122646327840033855571248465013930139464760533482428321630859339357628508016028071097014000577766860798868338285041743060459415055553408531123756641168748097431127256389828119658845438046668907447323499843408759990520998742630147194734944064338291717413640918231009101473944900578667103452937045954705478419882963343583576612183699494886462030592561185606032695169066332018126324582230800804678583894388038929886034261696242176219844162803114421021021772545312302168449930880344481266661969274483510528331555548727429784826956985599212548736173481078785494033184272265220882617271958249779102831960617641969576015791755656083036741175815968773919565748341527122849204562882102353883543117896645642926344668208322684777707341889591546947917487404850250628673756564836837558435675679311833614062764414479787416032598115176009632557825929780794333957456927537164980703049311148309706862207497945128221054246704639709191672849787948062553136872023793897606489382443293507555548998349330286681567496962516562965527460972884193498886663996121795786102947673700318712308780964032257530886461355123230619019280230891444712473157767126407513351967606717118571984172985750671329593180553361595571051958362518854870167236842071141397987223173689256405496929351471361186399985630999322957633010629826743369231523831654710962669546933578548343579028915793150608082617815254454185535415157806772038010929769868254607941361277606102604308709439255616423083089978659328510205040967542089781514722578491326835731525001096748148709515965144559698288376650873492193137264217294003612384891857096686748340429436052595420937034759452335173026797250625076089873525859849093212418713568623237194569262698266986231262319414697504556860245151939140218643247286251846430971640904464488575945374893353430906155760966843681859604983724894191639757302867401063241804530936914177739135818057580942936212711121581717221794355352323558661552916194102064507466541462835350316617886897428095736045942784024598183584272795332603317975978791573221340971520631703888555396893708759981741882668512500262536594608556306478393618738360602500452995947871835382476573505423562804046473112864072279516865098996875067892620303101404520090136359069397519107623265561717989995099033590202583096312309530382868844335506085372903564282659719958476607201492005845497884769330973273955601849794774241916537971627188927030018324302776488961257052797393259748598906274038429110680804879485120987988840161677437009392056744884740642465877523663059924856759400518492360334459516559272414511194461682591175561869057852474748761463162437973198839699748714958800352889285940721036645118082158835571177694399343161976515953266310723480940362705283199289244846734985507990648643630543882941485103602135423956273711586077809829285810446519047942106017510399132750905080565849664482296528937052617097314425492444958731987202269300093900432222417004516790935822934792309818828687498880821474981897474459420515853687229898783993080342615450287117520904511482427872903410549652482557039965249526891543584380469471744078821884535718737884222301112845162200106425638649570903092035411723030488378198082636349875496946486612973384370401394798974657410148931289470396594832779147762040077005744695839202337595297027441239417470614458977602158497282889352640860215615730557879959622268580657928051571829757813973607015458104443631671811751361692022099315313062322513623903766714809108450220480048194847323226699779270808850326167759240492076576815533538272956002650501189480896605805358449134902206846815361424496885140056122632144174747481278330013040905783596315099988677724434293478503132240301085776687030934221991166265850255743924228547304795498111557933398370168740861639436992788377955118820102903742873979068391364386750179498804793159087806339376496374278499959462299054929707959078329587439824766019626858400509235698186591476095689538199456922898289437581863003063496789348146669932906291434194093361749477256105666651375422695419637095551520429574824116725723664356923505132623836168355377312678228842415155851395402230121559778755634545929091490156300889521976964085331931235834315269482541615092368617911250519513661576753470207850931545018265616730502008770044006455760866579876802076221705230410441978123675626317654160079280175714694180953975602613670581021727892133455264892365358724631096775435719402206151286071460180549652685541369860632946772550430632425287581889577777618878709686798814754689785367343933102643320077055351008226714105960666737402885557756260707659489890675488747520335114810685175991320654308450156175092695512957251429084929340766746117885258331661805388278179194715173240954956893853321508432464225825070571605517328912139904125699663555892705860536573643819082550088020304657001464631948406676328612603253567829518427621698872818031375742261404720627178103399651755590182922363535947618802075296291676149350278015599069651303347802912309974053535477128330303717053996000041834956571202489015848760633639288227301590450813600844328964784937537917627792379169500771965854245038498399129157127707568322735858229206313662497528225963894341442351082952153548020526878133422535868054998272633889838487312085506071036466010326923382503743855116876234998984515462612999751035127616726914189953027023232465022297457448556594852216229976266387574377890890788499701203488260427330977043362281740238211513917981421860440199007219026224479141260404610008168580799936382964570446948039985285549230208693929530038292952129947215828798111595557274455933986047999733909665802069864136194442866555017132483594960804592945630628379384789580632870445869112620906589137407598993590831781109818574438537271917301590181631797310914177826026188503825385444924809555516832218183699380289270766167591982171547784589456640563209469713048805183336759022976331769581203735526945856226849005640584075630105891627771290945921668415569731665554067354976843442938627058754886945757386310758677847247257404586151720334699485223036808340396907070129044912891218635016262180945626992714635840376414291386905520377559806087506208222221169365258274467531890434017165710690194373062339840610994625236880002264592456993234706954433779016733452663069012465181586242827464782109585037435354557278885316714098505829861310281165537552308242340745962530165954710304120364736335901291984856604994533348738979650797696791624354344512191143786535608224733779457606102383283313658168905487825295204515752100237394517449865159052412176236550182269927494118094082475325512168425647675598673057178126423855451697886143710566355340699072995536758004324660471852379852725792344112898966401502337955101323952734444457185821129433488903343613050025685445082951364663547456548606635169175891742096276198611761744043848782456873568621606209416353481606276667115033284565980607752565318854442886061792596361476464088151241787952835453033822129914780085826848799570715764405453963352720285583017086197894037690681911617935775772343916581195141603956425523490827972754804203609618749879322060891895724826412652724514200967968753029349049062736785074275339368763249538440166122081690463786841757614123792376394383996898866079811510423675831397292953453752999041973150689213028887728118202368059156131802710010776395614109677815942914904871091961815709758453354750094223184071695618709582749800885597249832182543122627533516811834966889789076957903377707912140623848058090147040593702213233064112233021346592747293135990751744142360539204803785275312644260326800915237817103000691681076461554551857587613599228628062892886496337571882210785494318944948618867607503002035766106880759618389871692843204264252568930030138242132004517185292476090698659608362904290286467038707530939475182929335319097660722471020809669655033439457872274166820659170834453375788788151742448130922115086389506542203175783662368488538233468016463482866462403449653074183998499966691474588523591728848700260608228858777050101362414052882076855682376699320910030848938602208122636806176426775159052063200157935907023569612573159228053119137120783619983652050233315609304277483458010821941107015812922744192741541143569996485827955442084960306706158841725506565564235412549920966317544056084085195707741153881938293626438402971062558108518151435909560988320606112386302482970512585179773271093491529128154706648199755031755040895785334141738543030896643481365368207475515537256195725741507143209165315241843869401616908904449107317950782339975034399893019170385715423733061185165703645884595431667982309471234905654520523839821900042077185758301934772485638197094188541298364535073119581734865077221016345591812071645382602832710990968556059034053608987899672099987694156009344454489993820509026827633337633442759240104614399397909587286789425898413553491174190076524915884005359670341739490159012474322359302227054543159915922645190623596064880706213958367316271301311985558249124260076504739954471907047027146241857466721046785187657184628782317626648731240637658067125313486618353936558685371094216018850184994482866382970847706983039484459853407494895633369161933893684379979571388656888549861266945076658612946703951449246508904810433207314167076417216383584681961687376851729877812125950384304658116389454005081246604610503030218372976013094105397330938471222066473994636908911031730691928645844094714486171257765717324398151288131303956824506187846854859277570950772607492299295135379601981777121017289167958413273143032277795262436775461673243978822526107600000492248571160058875653861030521572091646871337695992369688820942574423669463012957387636216507961600193840664099528515823305843818580968412870099017429541435563331869514226733036072897007124697202779414781060851468803842838031736597690906687743984428485766920480049260580861374733901731207941786210043577910486554950265828924665799492241907010463400216048249827405112460696507511211919457376482090631433011687606030148796065384404782853351155541304690717056444319095639250247823902740925363481422959333680720808901131558882006979490461834895009520437394188266413203110945303320562475256307052544857134020665808959996635794433868112258058734588045689929871415822811158192088077397938068730569832640686279677679125364273883701017774849673159058693237066311312025284989420686710598162570962775341605249100788609353532074943306478732024211961332037271783707346793447484891232277986794072507702925329599035132442900854160779466903272380915621721865948784099943654748178394097417908253867378501087966328593542312665573732822608782199895606015498540065946161727328448709332949868714521395639390417422050558582986597687718647030265457278612090173169427801667513295643564941016542992630361238120520189900268784031505790732460078749622986253665406708469560232149560649221815021461066844923536867473665698625867757248188575355413651890128726294707723449657060825639810540691473492519054244591274775626724245798087558348785297936106926387234345029245951396987095972153403772908602584913400735876197741066746154552502232770042568699363931761543903744898938129396067880383215794156170252899542013610222158514839613903535354724424474449720188265822727209944962450436971526733258613836071064256866890585090081467095508960464954072768626744840449205202274924638484763364837053821430241129202663573865805589025460588836424745938613435313997764519499943520199478252273760711590507809608063261759294519563430837459783808713360752300202607576820505126454879910512966508062881645471957417647995736549558867889891390061709438056255778298970113986069682669618163308259172190349720019018396510828404257211397730918082589395932568840896988406023723293390591858140402950187378626011503661277856914438503502157024390193665757244686380185638576515391030870119210962568875223012795166437086426885632179605375341647789353038167268787701102233061402690648544395812904420180932398521814369371772027850545845433151166502504313577626667202919685001164961762883386136063743620007612333024625519326606089958024459429396933457167351892032783627655166330593365081624025434390577038235547015214160283010826480904920572748999788406534804941316205199609633879870560773769800733462276818788420264690222869062960038259559687977686399086020644846103127404323095255455123141876188925652126913142382650595564834954482589703677798996610100838981858502524431579655414327443766558300813839769675853239747185502663165799491408805061144406382390123351186442311767969361205075296120909569054212533700347124226785136204380688166119988050756905659471290918182605961484588403520649285466252325367732034478247503163853881056149972823644629575635036811049472073380226001058867319549848452984151023658529519344719791794416605031633337660697805845559681464679486798139531553817743981889808383301604282547575949843606656713906705126703472794157712852338450019467916648866341266434763309124676916260870316561021864201487556828890968514293871323046782012611440647227512679957679571863931650698527930835518498990778395973199478323407857880309630323060768679556941162755410006512097209363440271902174601344860255652462794862501017229389347607300552275229741353614921869480359928316336927549102381470105125332033407727243902705248960466844438739676156822325922777696984223233668098290384590504858194114771693177282855205072575636083472521218294380972328404736280389944834783678651735086613133165559704048235065810057444960909261814569605591029766725774797895519632046034394847563035709894844012309146359329353838488361716739335550315142337914617744951782817225104450760944759648731367947664226407837241311144899437754088183969522054034025066195210122242117294607963049271835880770335484321730696128856870193736806213190922544327996696495754282631774347599354115780383203810217471565982390248177034507828084905400221784187595674710658496327495654912969963455554047777356220634466456019564326724400336588227291770686499749717078064831652039649880257415117392959524731622970767424486994223746394305188191455063325867115650682944960028942598578569992213206767429296429162925169987174108520742335806614133686814578341781324605036376500871008381131661730006377321327976666867108834720835640929589808819614371389695839593006026250665731342138549595399944425545561437527597246338344488689890922717116972060042538621108766215584695398668714037736384010162579001306924694542417541336703103170917958773303040243438887222186417484054174447670515659318053195174909261841223476029232292908072594555901872087051670999589073864180598414736502284820486841542809354576864285750299953926228434718877357572245291766507528319863424089718141927583458935436618504513692358904829780766425506231391491667378409458959584684793229299030906925160234432328557765043285650802864031188788532736284173059265794396592961617094936059767993688692183878077738519444117551105251782713904324829423261178370878007101680195487032179808922253420271821254913057383503703153955360495672647446329479983463492756449254505941627441390000911479638386654020859842259473098361483151206984789452482924878165849607764392990613879098247652619281581009062060100407354546417554929746055077696039020778422287725213488047489462718802285244138214097641574737678487802489314514600327180508020752406565171640751007975350799082884685187843768242692862556906804562664362746703892682777261221769706497060886388993948405244949331865931000052708421274678107581263606704561116420139215498360246940625588734756812051521507586037365579411699482407162783085262749262670362683485592096967992595138319814006939142402138762579110837514207671001540978127310772640467035163022599420024201914370857779548969912962108970614872169800977258048215159539471969515961371413083159604159055045164921743540826215159439246997608685267252272346982367769738499043089180920653649316437930950659437605962812706294337576021481610491875246022036542356722055961832312590587183932195922749278799187307137000588657522225105159539162982564787024940481830030482310189941633669532084366445079820526787096665444095748421456537228200889510979130011288437762148651680641404424617312185351053789825108082798587693263353016309104800324260057274816895648582347064309469321359582378071729306569660605925656507054981365693342336533192605709479867415302667566980495365375546092980956268731408767736872029523630689951763163675154185513779357121984310528905714754219736111154827574174747106342332812184942538571102316643060998229418180905433365860137145970694143406995987799737023344244198138236828065473188575391528324969728377840851802712391233291211091692426663704659781367473107520706175520288590822131868397542465916141414170373619658309526754266137034507090101792616082088491457223572910236785833611229988114952678424692328501790876954509729434290210310026750829627005303975786598822601627925151404265975923425743832395502926931263973192867792664106326971837326211536829600895579003495348501239847329366418018226335204922588841552585624715629367509112671759827763590092941878642552101284496758791342676646229191586651521877909251489029168388660948268042774967966388618986573186783159197469930559763233867287800513952394177150989621202312486189996916975832925821179858328565100972084901419980361525612823373994326358194659579437507363396763211504309386016447501589082772704047214080399274919733363414772208010526603951874961369198410551541635144408526168402313790153855667594163196614403618803423317040167236285482338806448623670381780851774105810480586862015609489194656742280896304691331805790051260197853857230189851919022076822489565654803617220888452605251747917074358995997149021452398564973405218758174498701677075146963792571281065537140276789465914412391411965983164010501606448927603657354429684449626343934828601261001775142121288869164983796365383771087569468293710125930604454534702477795895554796224023774476243967929584497129658082626357315473363798424118635792428223435763011117744916664415964128266227803893781212599714169314926837648011323119384384381000371025873456972296266187910060125423715428125569078764238276953209926082287919738156536145115373825545408778193855417893380267361995389143237319334500597466721118146260464691763489061494086650167456052350649434175553767779553511437468784070308144834633650908682104508100760154270200495641754723479038300078133923921429234063163546701014560657378506127702292017073673673875422806112131470553865347795302449139020993769210850096311399930443926994087721110100500013317283655718446882846761785590552777858047858431851060591035518501784829117787043611355155680418741392498260734567649676048391271366280230001487980854679049996882223616618038588744486219459065952931175459249079406421950454589578100955705585398896423694934721494299740496631475133585218542706890786080769069658436061227845034168100313628787607354138930091473654204710364261913232388185715023220446649002152525989369146925255901451743014724472136659793408035273394694602036020101746036649584301418293135416210042020148958718114017610843881026479868915664449213667883273370688566037211720473142919598928550121565498570609789552075542350733304189758601619841531093256670355184411854568626802337159405836362286809253015954792954992326857867776370111854303930145366054303041016774855883275671387994711678664987465229712086129755088275037593462968299713376609943554853311541637656771300857688826815221646789957798458390693402853386325980238245516889786282433463667740029400784243359726584757024691200992360489091654529175451554749360827567383008568231855924919771436817155997076061771262059560012908748072527310420422914987490067822899586191287142630926586501775428971149126789620106883153080524799769120967942004530070933412986435955027236256574816254977124365187321546561101209210899863600471404580424132254222618479417665138859457694274399075758178442024981908019038738807687511388044725136964484156125802297728736356203420625076350092757463877262408653440385598524226027411911940556614297748008619317031243662284525040767219117454114493757155557047732317807518595438457007070654410218885021964108543061828723005028326173257670813639295181607454674514357262558512251868466809719900576148326830431622422980119242949159583736112886497335615273307315668167569181854027846991002554648044551763770696745717332591619909657732538429094172997690741112122851635930721242463616284080172619302829662339803541647089435282838185676032591642787926921927002794974692178882184237396349668375204005940533924455304775697915373226122001765009218396312799148342525518466008870599949547836820378758574672468349344235969269742009762678835421271114269590363938092279584866865761037670090964031245876135819284232526956821742329942790751336912733975565836716106566277478984293981493631946073407051874712904402953868410961430138758800363975751524404394020154880369043830839287334675435535086175135877672285342473095015756241693546950963556128367961984518799835415029517025184949116669548002576296482448175656880858544426342878975246375661333850495187114036423120275878499364016710934671052720244774821760260153823466327057682150064956298405039956616370178830349983873828248644271860751904560278110566366565433179264093235704563045390016301524879496484314410921969152332756744180402677246307723327017153440122870695600194633592686850441760487023798440310036368765650725120535508560241558977160517889110085813522585594791176914897051548165519732296514664816006024130567700943145322400660417131531266436109890436887605065300770761204747491061407477431546238655729281916616267487618129324392418898142113558399791162593171914223943872779493089330140967718204202618123606147518587176369426009909333002837071482844807939220917023839989396251030264944546036032549639293062331580974882307477525469248912318858980162982366724296167249991630428985753553973353184111970406302463102928201352444044622890003265953618936283117455414002086726743549077195013326001623978636398572505166002841002725193533911465639602781723561551820782482574624838405552245352295760271618825482567738968566783265145815267949547094638370238706259565524738525471798875161505231306292383025995953495265975846421833782491900126475114519862551434771092123639037695639418101405428313594657080564942303493049860503566260729898079433145176359671951366667371947444980536902956984692649256975986905929040755340961067947075861612556124616127042115232949637057024136369768767136607982723672382215406234453409508759956769902137782716399405705888199311687396946950695874151796683515110461422174429587353876650676645821735296113344799960343335496967711120941430136691723326402145703257699486882099058560799653793085917507177864478394885956722508262166656370474331788689330138794636797766637113771161851309478660188953764395261831783417478396438194835851808691878865245020463414723192147572032016136989539533728382318647644941929665288754200361553380265614777198878269530849357010116739486909734891055449591024133494597687708181097995537604928018064836179610607632384221118200150095419565938238912128289946610351841151188598170149425786717425441308342987961296678006907868418048569076100582257287701869107840705503839906041999790127778931228852114885955881065385304667170280569089794830661057092915954529528714662876610514803313943334197905520314568055929170813476902095487800526204420932446470175365303409721016399429265031523845353995209548509575206450102743776452344850121331970196093676232941656150099735456678855314948777037657253648061587955279218830080895390420364021680738712047450454129156493085778655801343623193017266770959801441510240855919151347325286966945110806840353389601273466176377014118525634695995873310271977863107576921797287164214180421376704004904342138543502578868539254405887309603322760775743648061103156265860333457976665348293318921657115880708828016561554390523633177552409402790990074229529838080116240792099800020148003541423676000475321993288323397135194551526432737231546970621219168861853430420376245830683603714335643583813345204093720576737586818917247898346248907362135926529716819117660446932735508644989695106451325593932058359122322798247786221162238828141794578070866542619092087712555992133897675884143701110304407644869012857104699915988039791444577988635134466726600133266019624914221332512965962411835792936717979022023265753741276553025206616583558820179551683946028270182528107110903612333963348201186458606106096209845572399946713184346518570124350551720680542469559585948736089174508949607721983873399158651569686590740388582576085803435856307281954294474726953291974571085202263461881467785921826960490714755278624530920213163167902058465956305152856974373040850333915287539693599123970470199425125183203240026112558573044301944431057009439345778695493926141743443008767275775189408331508600655519122437993896190132916658670780224497358986155641681778588145812050577732477839046175883607445060928002493812126891108132743144072753900554035205396960395362064390664299216317593219307859969535245951441193342421009852903950037519267476036603533143413744901703600456118822759551696979968511383825965660117772265169410200789736558440717885911808740854613557213323154657215250470059793274761933563490141456544645801471559486863466352682263877220243999159852040792666134940765557885566031674229596465860290741101427520404425183963196830956696516226577952617479638757465826833822656776051091295871289949816158346633601758986813413343561065336959796670327379810438354547189456022146448920687379803014129770650674716867556507027936211630309948830545638685965285578342357533187915324445990264755182926222080273155431585925478642029187465215829775524110665808514300598424177139099805586157071916092458694593285813128481765174727319817774480133341771138177502809133860423710891879932000009191881273530807712163695950213474984216872259362228914757884889504750434028946091790568710152070330280431080659513810089157271285096226961669878776807894283825341796016446018805222233855046386679723771794181894566950712488693817545596203923918249187841905009156545236676660166970319081044835230530298728206512358214876043169459042878384917773143565514007801839132890649113267476341399015111068857370471016689305344367633352589078469243041209937843478526319734743317120970605935954754041811939705497334148632659237322165231597562568655283160340100408284333583360004241743467056062911681654670901914306837755659665260451915896601706858397457796831432427009875576728109188426124595962202905068626439297020369655897761409027883462563139447569013344269384818683426456805563347592325923974039709271981328453066492991061277115437723050052618901432342195185456590726625320333366338832417607720458400752963011004008981260779723891712048190095438279379711484688407944641663716093388612540274219963259472158923638958726133479941742105739804371610202566829762995013108026514342584344194925589815818387177200899738257208197647747958838740701212739899942083941021187357707366054591549949561862808552487616417512200843148432958655221748321837786483925934562718744827860311206191839884652380153222850431588405210677647662455674537823110759194812045832639745515479135544762532633988513384968927205551362203491109556764387125349762322424691464027213836293785953281247062158075370362573664217408842727211853828424698964471115144449129437778370717219497729282543891232936440605970578588388171951176223017498426895347728929767486875815339485955110339321528849581367693081364716793412132807717325869603364615592989213624409775740284085100404071338482328101904231659463543940647428949420309352498755394747724024686542305957698124303040081533462166037232098861997382705663674251002737242844127669152055918780425617906954811431770793283270695718263600717302624160311552029614183826270178516450174747959265717749836615082861846803649225498428079103077427150276541951315440253363457305835448786679996434746363802793311579186535209536495072530077119467497982569641907360357256919172631056655242605554944967415652072509845904462550210040007870738852270595000724521661110463573398736021187989142885717152794319210141360577648965800569582050031020522805896745750591173523913576088080544736844456949344340154931687818024645197656113253009008777796243595403904206154190110380529038522085101121116448796758339940942239217775250540230445808209344167945079906090692080417767710846855846713982243960607272780583626843577254680483325431460108744569425532764259036320345484849021334918409226877766750677191892363770368242137617286111275701786606302101458318237285370401511218372749077874620015986016172401017010404385476253360997894423903092161583662713860717985294509337506333685930050705977322761597862355228776755464750708594004306298329467610608252639132853283683779843394828339277532576425368996023319438616514604248466041556822156305915302047811502887293687483875405730899115767533951871998894857839909642339629464372961548140345126145709901360967827898625737090691199773889478691793229967500859410764271643909922740675739687403908025415065808781776199668608315332258885102607477796241380774621061084301064691417000987217331574423245656196916847955169813027384297618478160869757933503726870902242951445028280287417740879843059054737943421654272413163060571358427158970079975006015173292041712545236900335688663342641544693128641674616816016917558507936327761385316900324138929875911208958386095271169598551385402471723473337300409276640298916078351713977576050857635537539488917486043035412685977571474691957553186091396769651969184063018539867774689174975433569997678391293257738855677235451950327175815861750266992671074432591371499829668480440131084490038819121093557758098492417583428796235767473416649357673725091654636166191287700038420395237350588246282464334473144583827657303039188602697877007957435046507349492574657542418022200697499836994976401741863718665133618285970341267671559678374836228272342363031427820957754083527779151941373107358851361053878471119380450747915962884978259675118220522558380628233397758126378821702738252781198204311887831155054745815692217020801673524032577497151394994145609940839063384962825429081236645790478843927720597164032706831461901316744629458187753639490632735230204038725460620475944999307885068115261111144680419108495423962734105007226482523292236336387452352376883155589277074758152375220934385275716108656677677838504482147590337726793783570883430782306719501326102927640656424851342500181781450727452969214237626354329354204481045557279624135396092306867922159013272301372938523164362718845898242609529408155317008692228745985683393600837120559363991627507497660433441886866295961809469056481949755076318216696825307049576668472408810124913486375485997718630010795077715105695037498075643058977526021465891669398455063606200894252245032960263923637025583738370420999097256108710395135781183968032356340708792306730681025204420500452985928439243372390909178781174873344798679938145308323916298465367281038502098699770176940150634311246611513883618628499488370153816359919402253969069878364299299198215255961644904230984083411593059907548198373774342295668381879683229872308845310292301318066627980634619263143005759986351958016642392546230505301782394160995138148391492207380202057275135140740958812921006652547749165910006550802799232574691546620634160889242832298752353973680994115746342760280024872817500204747442674232089937643056757191453939962780445553128288517529525960950056492759345291222816694511413057829944484831446977896010451443527529407836311643819323435154945107991450128577549394027365583320521101647287609575742467539743366074133575712625362581217100934422136187139167802540604610065480418424003360726552516589408648750585992628838461492508796435922291645791485066290410374898846088538409474141800996070533154002953830837392148760980303150830667016868423515005323234552592581044489735574448703807093080037017928500447670479722241423771575653853824903208013045990832208421588526707575168127530590075274836204478625888947003499962202356845463128287034563478415063715797985035862356379949825073006423436682836100831023766418788433303290149041913514847291116095433113300001671652885686939128316164742721358208942035536179587160709397189110278070806020751135553307089345685339445246635280137757947579221019881012576224859300144748831594861976863970189380316574360982492787054971032860743901215661162125191989025414530609615771190119962767868924629724160731578485164122792541526699976928354675280387964860774695622383405899565401749070283233822556512549711119264259601056884435325932919807790610911533975115333833206405178438466969361141933929746767842554997703464785478845247744183467152434086630340273991268954477380122748610529869904312599568897121826168172701992299579461657721428836674613348558498802743279157463130538849908631690861600068344684508626122110321797467797196752068978097029794119631681881432367833873063513770067070008074804675772898722508121092492352840541702798194899033999132708923251424940381064729626844738958581158790086904954058280205842436895273201570226410211028635666520510924391338822492481300585909148242866453163998754805755653887787503383565883643347239160578340916235317039828616483533624536763311489715581612035712119098460780907116581575125439649419494395708939291389554019594857071799454992848276151527630118005099277737787248152977648178382153870267449042822381743109425514134292186627133681035592139580074838498755115164749822673767477255734830090758499639699838663049217331798094627393320126465461865033135051338680817425322069266950266614896227506515698869184423509203178893249234695215800893730329164384385038375904500326469682213565803743928308811068262934494262116105971036221938149841335804248335688370386306187043472253968448595829597475788464091375906330991403382705138507799197069987443510314780185696479424463535131981269607419955596632252840740674501591715992529825557674736559177705355605565768319597165150490124619065318929998957991083842636917829199486484885058609046230400842614082704487979719434522474961684911311954078967927863710633721781070750822340285661281497713301567257379262278140611838435292100765945416773179259847973380132397016531762648979134186869469597402815573050502262712690632248089387914532815900887434135415409426341025575613588751545250845995089119441090405340280150854395308776469136291617515942855148876341010647830057289924683896323056809421129535107479791668197969729740458566654022388045215868532579486015768976086920679764910336862687587770511740383582914691918163941466631434317828768284605184025257622593634887277186952872081052784537017390406228403091568209022084242251677410638287123893329845110041831824997938966825520462591755031577851481145178545781666336570068950139456518738804882514147239207002954289484213919525020306256040185745309425407353681867066635454306131989754332806505705045953905042210619830826131639839248546377336734851434807837898747979082026340769813830969438485865844148705782942218582398714615380817927146230825879306492037410308412624721704389034840206926569307187161885513135960777487384413641322455265814071810161086815038219032083786819610157579606255809264071706804385421783856036940917734181524185040181775085071986964814498565631911935624615908625136387802301609825879179195292602936753482837832749951351969999225053826449628471864476388601436453068578031903254308120018808244799346982918088724828951759215392155130596273894871777161596424984037082570978184535237052518001556510606773271551027395652702581654451663203450403874829885052581931679577106320822950013289538125094287673669256143847142247683836614545965093409136936727929422165718218828210776152231422749063183910720365386003227021326928584891808193275481595148102142551304345253069968240489022756315446123758451076117424735888257353862207004709358599591631823937953218122978054737041225304123518591016351321019524939238802552047894078181163757542928106397671110353117660711145716819823445324838739324621711377901688457415856816083117647596541894222843740101189627056579588218871633652020908797036290884235933788421775339110687860188821350335351057668688572267295057857373776600304313458420516813789806150353043849315530900154081710211978644973730959471545833875193243826695447762378869939621519804307049744753662864194621261997816875661203723092206288505199105057807146878055597117916933936209409604201741073851553898380257244701811103560582124603160465639059603709308630151337993742351716484337665090598713343232551141469216996727662644282802096821565862375212675107548798181911236072338178810906108361496335701416958030613992232104084264452315933549558065027075384646782597922153871283909369052898860160074583645111693265148381993269665451515728953196061172625047638173780212975731482888603836434156148025901231247348472854623025299106311243212016656056328165925286726794183056566059333654722227040111738042132339769366675610098961177027354850820343261939388187269812137747825981721943862106788741323566737929147836673339720178364230079336514610103261529230496878433509090028177003168314773227629732012859586430788607262582885902604372507953455266888000883284337219402213691466216289802659326261488812905739689360048934074984451780719835311320445892341372279665669553848800293424135833651142668455194589012151417165471713346603627154270668747059829799616987246158418891603118808242314844328958163653988695487841265892660808067830363827789346583870715460774195166960645412629024103116092857343998448804124286598556546313491760778872000323608326458016388837130191265455602841930215501138626574825273091290842549841681960599664274487116330977578487620121929089032193785639605904817222224731459785627293155500207898840707670558247738534565639826936072607599904836811454520620098330817789773834988369154009469071417852255347556398657431497395243761643279971056268292166432497960779745504002709262410831960682194597460044801359678977375564237237045335023126305400978745595160248620680952066722400495531222579176466944751422901581371933135346871586747392530338163026105205376489788394997740975058364125771384301748828971672120349777963364823568329544828803771637814508063762579528642971399301396659534144072089149413985508997707777527795396327092330129432480375094079704341935069867463427057111955888415609106264732903658254836621798353520278441547283610175523322123811132195802506416631976374903577507507138797120327093591031930726264967852313027777615265842001277098735208510711759793448361841442720483289412592729938520704731246976154201469618570897124812551146652678208863363863397671921313676019878676818116605234256402169739752349482838858034141970083968043618699610509169428375326888190494555299154838128204148406765005647031922545828515222799330273037113877323905524875563786742986616166458493208039072743910374809519471078386714192453475244685545940043558547728167708173388549402780770368425990542818187032989488408592118293892257061600570687220890370226324105104728627735952519362188072531054737833223973050831609091925758711005582912783705638684042922379159841304564111290674900813198192318636399814015003949010677113961220542210505991333194381555676299419204348249251681787294545102688657426495374066282719186355321997403368924309113859179876368757406450329557029476525840302033548237430718435210268865730538065194443888470858663226508576397856196277631104804129096914571727359957969715257884507738416406122582871025647645813580973104982284694314662547164125096992329434018256757644350640401008493688432795547161261697569807464339438321102122172688475474446229758707094644222396765231354845128972535936544447183927591515445783222863088101745530570651791823363884430340810651036636914439961632048410323331500840098395916659531983922895031788565518529618006591091207805018381615715539066402425349765581360648306047819268386007920240841963018659005655208671062246296105717362874800134035795420903999462658184005551366124903853651976878765550755314870113086649574013308691339001171352671949021407396634627635211745983309920894861977399322949863692367156059398791027762148182238624381625174035051169840910555862039353565670644252948156276854303038949095565611392726011721431714793183253198597326181598368005935037800919509631720488480819892651544071670267838858788081815213478597421887473226982565920512927263510505726178902609242195767658062721853514493708345325588981037591547644242208658169622541171903298550002092715250121974267999178469505627500617816709614170692473703291984277621964211695945393864968301585479234987690662822445558915708531427724982074216622938363577171983066834304431211610880580187023075559554274874992897937580682127493388128062066010951924038772494019860171196711179324438026703712016844105053519074918283760094512417014003926502602719820927599399790047406114390682306270639862766358227190001429479355521458425856700434966865174367546373015990599953593871101202617951219048712927147138850807688509234852413168559274643013065217544959751655258048584702708605609379558683185969493163990770228088072177634823178993526859413601134670286200923222853757419416425791048144508652119788240031005672623459341181124334645882713421435255969899070977522771574265074654365019094748843091107661300678281357732724723493262879090410743762628027490367611218642356488202980268618604617521651613709115972453556188020457874585224644334982388563346247201418876199575503662485172410689136603497118546762602655899260858762615347300587787369842430573987191347412048825338617410164836810531839473210894584921337937664434600108975927857856778813661926545857885627326090772026273643118639871580760524547120955838160294415358573240938043336907745288375645930525269895228046578780519751077688188203649684870295337389338744100781756885340199420284007004613352859771444855639674127403874295464021369402865385482008035477425474422373831160362179312005029643634232192247261820768695692741887271711188267119007895569164473691397632459912018959833108271069940309141219505223642539204999573969731533702115518857675534325882374028198198349190276167606717355449252559284916746479822755945430184284465366314233941857957542603613750091845019837992845773889361787492125773344657351707713248354187137668786027861380600478024286639557117620832226956822010604045732200308522569675376662983228401472453907028544173753777058516187806143721214393193619052492773100602650188750594183542672584451333533920392353124139362699985324405752045321045225189451681057813387597819167894803266648027922930275837911899041076320618577670731577634754430188648900128978826279370801294378611999253894164652013092874214316850389457245123232678161485677450559238753026903436299524142021390286865697137897376959924574796691321076295644199378650347625562271662882646333408419778648927218003416601318692821115062331006110966201299495516752730443895143626792245954668500642448412761427683805234495833442102644913234975112097872553372367686269333232881490007498214197129703451099521952487485378594066808455830097284946332015840999820288499553871701265223168211905911759478707674469613059283399500317618094676665468264506113591557079668574630787161050727069023683275237354310209151108519954233346505715214956537433174889619592454762251695784674520790262643620080509542614050638344265660282255165540350855976322138180917494539085843772113513936283417282489391291722947473940967031540562973752655563925945662744161785596826453610730895959418381328608576238616476346765724549438577378627849726098593271152773196188456548491024844924420074590945734875832460560209124442909804284572735296121581255438072735099106831636620994550710801242534641721465088738508713309408075311993326128998990348652399622738095669718458058865573894152865866534790244955086387846004313471896661956079575479922813234963492802391470786886198884971490261620247962996798662524441387326332081439853340926652825512113593108395966551241552222625073490992417274403752078937019576186293300174969806356819128521317147103913995081296273335117845667259875630637166360709183602938232498158786953785373314272379519590042787540031005806268416751994288644549824241981579029762217780949472267045454055319484982494654474476472959415541263004842360551510416297051302694351265596250117645467208129323647005612793979041663133454271182367266397058105284598426380669534695229020576738340706489421383912438886657801005501861172308203873970695460211310045086133731862520834375140817866555436385137461021032434437303647595944232837564230520651882009960108884864620761580420334963978897310379958948656119353444458947571308579925727470604555673793703891030726096550042846538692045607713011270837590898412670125862948830537592577888156366262015125546249857482984379217649127622502120875066512719432373720322243435890726698375007628628680259916300784519357551894344898479886403679724214187606795367078744998765139591573891473655750199834621759938271427532785447367718270731466068228615002639831958595121960307751975493007137724868899841572719848773819065785857595834309723204593653971678168185037576810418311503332258251898911895405244451741756848335735577607519297778584849476800675441649893697214752038950377034094318152929519061158166371908134187673898839120544098335437585055300460525784089946306081850399296034035371395520317731719709434612357410557390055215299757733891695666065904489746839996102826183072226180245413782906874941748648550432402521834260722553730031295740452691373811361251524940931891716124357965044682488146104952205096991771474448119974440244457514490802600820588803759702608957337237069346765780641458455016286345249991414394793977134695902133414762086706155927600995497200433501383511544138886200039058955285874482670900228048511341043693304608265894316570303103881850309085546000375343086421898702092495865903304713353809753675281875814594324007038889906696366890381549166274205046985983544091002831863619284024348141639005257646819177073979066251519467934202770770727126008866049418083322811876579332281739805299824922520198893903809438332122348621616929618354968611564130381728941602380245353101002624588186583822826386882916880818493388019622920260490326082522119163341892976084218281836286939832183552592218706606041936746020349797839790289986158154037554709819078082880658045759253780865448079583880407020326509688945136273713904078173362954285665631623519876631139637158647867883339076094949216584033702265506415785282287331218990312027902889442180879043012215817447934058490116918888439379313600216519373947076158082354738652539112281260557500490272556969624414158440718325912959158670785992510133975502984772539870076935484023204740538568453216584579555505795767410525149240506435509007838118204123209652316561884689173626308967043487377699467820755576616979075346407526420366967194078758570665279135552690982174126963940299427722441386045343513096741570182091986262766270565295949274161786143639627116602931470243946930411137598530264960583444647351920902043483999232442446679718569348390427214140848485775532431127852621679543643639016635033247776780845070674540939381436549158262127825426217207145652251182312862929558624444864657076491566494212124233068939636880980211742660670188529463058152644504805095957255669386003300351623366167555041347451836686706050172736513160346244403906257325012912572446658880575354543519650377862107593492709425770937122606988287757688376494389151470193657122806237446984019644191639936180875812654844733916089072453438368786952789091215725116868337935818445862604521495886085902252679439350271819174540480076881970736624439029767265406896406837093973215333878367516154709561828711526686194577514399167130954343633086490069399115518282756580452333911345254649002016063562219797451344466564364917034161507202559313875247623885706004469225323367433890348508280660813285718693704443161757524569443722350519218378333886768523088002922361084814468614534399336993128385041644519984938721021790957726875879093627586429585306434181396844319374223618631068935705616315901164308023631170427195851941142755463146651154638306948755500109262727036518178682675479071318142629487796429874407682182505355227539402098002317067094236493302040369622234379260185089759053051008785867974669502283801317557447719566015765324512618830991318299117599837566742287008267196156668043974184743732677153131337940007757743594145862372670222272171729587400431294608343844548451214558044821568012770354587020087200748295284883096249729419786761380570897549170842551504920972533293045726768644797712558415494233499305232056573779040576610970694374047125201778165889163247711668239729201613887837710766062549867870129055194414170833599185131961760184601294669102972733510426938257277955719785986815910748739241142789284021476149947304249795594619243606761525327711174041720706674173533873792362301648427624949687755108407426176449712740564799516154581071071876928762334667192420124426443783126011386727004304076028265741854128437278912999448702923383631420666758129148955522960956744611339013051749915998071032936622751989794423996505460430603445149678563164835479480578428354293670165692344435554991858484030903876136332175166504909123543731284313568437530065168980415896722906228838260550400375153447950747318197857173360893221885716832912273862949079401148377938456028878359138579235760964987846056245003683938934803115467155424663763890954262542981918910737673848069647440462689319867247909938736244738642157076885713296941570962335829773634534726748087259284308903529173260387897797171802640408219452101529648844159259479770232958813823656430886850376411514504994566135959722206849683247962365007156050784907337747460263393898415061701667996821307146118694525579122434195613575041084422641222846836801685200706560938295008662018483927126091869988614573973506807902275632908505819785835011842202646813371374294815760916117278798413475370585188507921242050429518510103516945517292563541203626211801384307965827682859198472573966408520596777318649933172940565253698695114004425368784131170389422831448650288777548274804001242025707958087500560039613089212649851879326024144864483831614922399630901060204583174821509252340462763980673658761231561591369490656605325639185806468105390739927468347813978106543088981589036558971700518809922544489927285231370288857595656621360250758153070212971341461578057723924554256699791932891514656899902230054556659105822161612840551291924392402732075161548967527244941158409798800630657677321023920705847167416583154143467902653502648030783330255765666317014637613818888737565424272028597482011734738142340217461770947344622463364892373885961296664154811254062301789873210438261267401351254701362362036198595974638650579950312781903350036758923076449842176934778059362962876221072293517401728627501916463909313493470450870106625513401581522170033808627188045837387438683506469304606188431670460287247201095520971777757354241146633417075721344032989633742805643962405510056513030023548453885166460148436162823028894391915386316514134486930560242126965555199346067170806069695289328215285992765062879820704151317807992925423443499576898728531493556431021441536416905058583642997451652572421102839741124732186344034331869612542673095128204101997026491780069573810226657195426335275316850278402816004726182673645501184663196573344359967959315318804236490082162631407093270940965094417420575596234713286089100406730092063032747304306794789997044175123282845515465511888797076981877693341198693326351471698307653888619822978481857921023896541291988189438856821965785364940851672871579946712066344210382189544959045261771147071670447215164091373278819410888280898311908269060220630757946343460483288254139163996391556174054039892238994042308238385414876026388240122060328825114454662524714556980635388718058663471610085223928424942721578429492723318839725101771284487806445937474156048822087799518936793413654777456724846308348564583139643392581719726334600304937152274501189879327855258935789772339714468655729438938906233583986144469136354823562194572700448144313773312258164088669848599692205714864030641920918773338549381998292866644608476064660491765861127014961908498134865699298069915753125492287529214555360862571159654148039663194931516897137369450347567797174039016595364604911179655046836265191611073369067890204552217433941420674000589725645171583547741257220257439696747327204684015664673023290264655098113372190196100716959791756758544859003762803914585661324380681447816658661813433698513023097036871005638434859613241971828167360840328111117896314333107566771168232809314692324696955248337998038346446885388065115822021063656839035843306774508714530158624781692368927307638445084740383910102385980019479907271089539827988424665535780322569042318210142077622807413148697466266972581656436306298844212171688794087298710795982291044544731150367084522953906356690334127884840116534997554322760272765890639950016758956288616221297050049884303444062266868355327367400222948752418420072624815338899636746272999882659129053072880580955281042670003049615278590961010644628405366075496761392830563846618870272550928481008969995681597503370192122073161729795561935590205823994253754937929398929950618738695709676730868276405389258170201786259892376973653172257861613900380247258605442045576609593291820008813956934033117486700016693175820991512332784496245874537954354219597085971800442839476086603411902494993995299396818814174692033013170033579240945790504610451418087371905247170454080743397708159040911593807156075970105765099661675930993798649028115919132168811531148413900174618936544825002852845495981989148008996019204241878264746977455137569716795473849992290783125711737763220121440145700494297267083628235259756973768318424946957677041296475213239056974401858835491502431837319190708298729549763863705117579067111561980772343682123383066151392493610459108852417461063124943580526322487197136096716911669642728723187150690173072985634444478936208199764542369387193886712883421286313183415089758271462373553106796863104264430700936446584538878556566121920678174195268568744025058094555803440745536832550771992058391421543812680408552070398400911313549919523530103061643937556728521473306702900295348356336405316863997655597415110330222319499422305764823918274099991538666876118852280150315947101289357066992345230786754352552765614994895489307112169292992463882068255603592908938767328269351227043445304210135956938761081719466034740820433327611885446993110355355522448302573322759217262500377265772177390121796183845625930553367037690867010125477569955102391450242328273765784855786132581578087742990960794388633255529609711913724563877153288480941724245005451391018093613684001801307314562428715101916446632868164677635615483649160196982281329825425652252664953648697387194216574756726055302846465478805529719246955632582813448485101618158255103559464144458780060089964588212427535941089860006908395221167825628328837675878098935865775598441635578454671576322441345873259116815108504873246490215769755140632295976697798206546130431415206375365900687873918215244931146659588405428029982780677577670440436706445839740434839393986317264552734835507603381361395507913230165461034591206533289912922752386318977282519089088000314458136740688199719410131536801549778122478567357294470745371829599552665043636146518554126777263405283804188566110319882378042328661269282916958726694663466808058702739732678264379482254271900375734776029174703895421727420268745470374412999465607673823885025777619854164623414417427397747541053018229142927741645449043315616723632123991293222946812415106921029631336728520361123775804125288490692758951369545590458954856839061765789256439471153639153434395181213401397136259345849483891507542742403192719279205695092616192249289448845379535044185870166168489502573208314851535690750761233629039174065106491604331116083320531839463325721779980373633037653995273130505015177817880932295050980274919235831398501646548725910207747773696526229189430879678091245906454819649661163188109730910635396079114830114592378547405666962662362772682764992933408784148937494493026737877252185088630784689916905660252659837601694737057998438835369438963812269833506637987295941873453644335288842922395977905344801775932153878537097190668448499475767315127774615014712973509122631312457618862251044139851550555685092057145585411668481717272034427371781623040187452450054019444002461169711814235626420243567415608509616411201545520077099113967700418650430394157625222232562339150636533304434816603777011124734232706018493925144534537088865989069835397422442921687980085796846852189263822916337361186189509146335186348350224022399251330624098389161885978635683281064795817656633916584692744390071212884499209065984969137165463605193939722534189115650740153309741479715345607487473119620862743607798832088700340170314562343691404085654341588265529081440696008650150409609142899647350690076151606219165073616640168557122840772337184084269844044955966468273469284121748140799728321843475984346010064575470505346008119122975589159718299240914656016013995458510983644204381279641857437739513777877309758689082398038890065365013277377634412949755489062903608301146853799198489714372743586788563754289331675852297523367364319684628336891244614637102087814451726957695630766821813574691444766924884579547990804551009475481629024167071449410388375737201741667900010616770316528780492564765853722224616102444277551900488140355859343483748115895354726127921579406871831263597460235283442460048067302164149399461739312549274255259078828606298751206387635566636631769940185961198683964469368604212304860119385907721453845159359039503622823318342243770573601372312700708126894806057554170243482334542940066442613921886366392578599463905414092515526346303120746793359839240754182073976464322021889352940627388024281675127185755651095492888721762641372869156204753947711051805549688727587282458724959596460991885305156383921889130104548535991195040324296471455509260825182156237045134703589426475827412190000321071794803973833632878325162910227928481853079067719267612437402990746983341982814096376372720215135283451070811996994236538793735087663717633627274113972856997690261595071093440358554708648196514640888330012787501602889466652845692781163075466119367604614471675125199691900580220514963465966911348794861955332680838053297383455003009431029439006860165866156510853850484447105262275784856096107409848713481578749656844449660157774946646049579549465475271039962739387695436972122549964137537999204682599358215674966501970050364872896802992710450575431191524190758612164872044417296058712001474774164316047325787180572960631048373703780485104257344744511099061754097315755185789193717324025401926602332208355590470896550639171721040288955231327750374437317160664926562295349841663865392211428523060690106837726521075559775250287586592933151134704144863167524969841832487904427373204545914582146799880231042898382757848911952055587930029044517923587458481021402086041855429165933537694815836367352937200239309291826613671468401752634979411130590795795641808418011190022215168048338954974380618647200240191978510543359294610127770111968243963277434056947026157065973515314666521328426454035036548127062653302330977803146913317498502130480338074083924158954097035787792341092265899800114671523761173920504295953493399049005741555710787502653072321900884126926295526946213118314351455816984124447306724136257233343278055934184268217143895604272903117019910353734732166059320006276863264878305743040450784995453718217012381169635218328398413729378867995965104885108713918975628713387667106081029716623889799839665269440621440565776172765689396409248028416373274577309165911074761214128474599543920621113881883233291074107799790487086957041536110922911406823508110681551982764977305166992842907413610187807924384061672217401608552092402223402026994053301167581116603848538339321016858893009264896151435719641449688434653106571797579490335128738430840925505656143681477900089714576961450700768052978946947018815198399817707015506813037196929625717123384973856165476278006469922519354571428121895955124622505113061338922394759136952809693313414056451980341049642006569712652697560592681324167147306069485940938039148557844655165396386311884274752126375026202996478224746266765208106095034299898880321742373850775487907291533517806737668587564344627965167210127456896264726742309765571079309726548509002998500699800246973359624671066585848099513988047320401676357872330974404334603834519279924387348359889779108274543999287720843356474428973810115566193109305482146921148848627939201051911406903908828680021776553847045935229767312894881144604104623073551932175525704747744521852194582602479744992452090012433309740056955494004973611301466296201970715007321620825431200875037552773854568077885983471202482796098809263560242758695069011569805956232573151303291999286238008934836091385518239774661118197672049885187210804187048083397001508493195070280739882870648627173413217015538383879585519569002766821100810881980155174461155307779245796908038566371257921552310584471530672200958455415396591348644084016953729087687363744978045379244843471045985342751430638682995717164117812111601090095107641520458295210848542576442874452455051353828258361675233301868810714793168000194080246582959341840540930044847395268299316464538390199046186338890490827634584878034558316973074619899772936566350583973846739769395297328594551919048926690982824336686842742223192876727564227412134583892638757104778083579400519478549432407253794739073248785273858487688015293061371637340097513515475909747718719885136280538096286457205890848560881756591143054781440134770822199752004909042147582199372309466066213764110743140958273282719389437548686100851441759370833853916791269770159060906370685754122865858423331251009371326778818896494294419478438237071778409056641804822367837090673123504085685421809002817653351180268781212267673153115679423449417260729223150457402826845306717890183818358835404154017477186779135767121089729271459980724074783685119208005220959699265789913123179182636755544820837504681150604368149552053322502363095015572588297771514727416730534633102882891033574948570377271351236336956942477328652359650106479708302687607266314741485831418412733465938868628467569815349737716195152813385925417381926537464250685716934271854595924531429014720910645924693310930666961323132741498703525981263585027955481758207706489782189373075143893849323373267452641869817453996052743424338834032799502793983421738716408147828894568155869084938786679252402052716115386496168146080343330385707245375537917828994828716724811322114266789023663312820059311968759405862425054792780767272661366697544301076460766821412326264298390620625903829867727311217487939467352307751089405578803223188490270545012879962815956054099742796912148134548424987788362137164148981823595118342887954639371827865525803144647911710215115675614231149726590615682144289325720860803232619726670634291906821854820814410770793985338645391273616021604769380981022743031071451964844273950944350419758756885939953224862790226974510143845427497351757096355719624923602869040109286591210433426933688625985154989846398082781777818597288082154444824204194734163873517007901691617069631881980931021441874526120020366460271268944569529901182584622524079780917831242846700132689366303471984278008191823501654772692692623392580502830997114355868035799047954909367292966523030117905912620569120745819107287818028397824426341216456018723605469070340940528459523880677109072326105511523829437158027007669812513146993769539835850996784852664197060749841120088023897454207314133106672055633957813445983798059852099890305693800555359484313046714315469190565167295469759263945561093674008253114362296813430966127747892489123698450990153632856070594333402100390145395100933650034601475590113275228204180356013663670622200003856270698932484105953489740724058596255906788576943326721997372010286622678317065246563784219245036231608672487625179989107060129589506097456039405090000487921453404865615001948301727734898507374841668239027000430148129416242996467425406072644456989240737314879218826588552481522425158397734045490109613205769064824477010934182619030520573218405753895535352014419944777919292566406321794105737519420258755088165806572595196954200667857065991637632848626773057087759130874135758070880429739455345271691300786492726929737283019208630794430310459224642288009146326857062299116095854486372588045736470775761114196332380131371310831622573867289164164907290223811789068755778820542199005742574160515043043155619536553296454911816768620272309142898059758855619080153282079345445089035352712363962640100384677106468017484431349830336623068386556558649474647310459968939633850284524654196321580635954561887665963420058158193433109195795262816179022204040743700654874519183545542419131450207606848037523350758872447050913686714434096271341160488615563315316910035286650695926452479522608627928471769946145718506865222877160234251833507821920671848125848048840301389288059928643203633911116323116004852654868894334803952722985041511581065074458296598206956855562159917248238734221359325540561126447617005332146765034788322558943048120689071259299563342820534274223883603839208817982067374362834728467878476279892011888772237053237134064007525375212782052291422160760217109306236767052534853736941305957641535372460893451942569533818835223836148203745455731932054116033605082766422976857993617884576888546492345916403202623078000251882406738947606118791132913371146032054988414931662149018307328588866484823275564649447885462652799830058530750752391290611636252600593051624639796946623405892921013592852417722397720477236457032387298549540693203535840782929311170609305489945445440850528160028275242568123274565693286497949467218384936913311739384945869891481846085348559784117039609903703413839222127689630676113359410987716232108884720826827123778538937470303249519513690982153076046927372532293656206605479465876970887829904920027601927095132093240995060150817616013097487861263781662151352714212041986171981187564492817190503869427763247522519828784566356833632321536429255819292236771105882439318541268272542625138377953506772166808398144644950519399455259951564331070811949898393020922957307738719483295286568078536348779139353316352464034100570019431272772358854930034044348542179495939592817599146490196352540999761634189818714310483276619658167882012560945836949566760053711798411854934358171366087834642451229885427187182320030688995849276173869424638666135418623881987422522438542405023087828260710186867300537444348943308402143356566696245697036069572224183218074969750021003225980689554214374808528581920315496451638735663564351658971409331755456275239226787973381554337362487956336317143050612211601961411509100099783009971368195798977002018273547538262614180662796945355183843882441350697115625092216538342564996623794460988208130895915007182171198760811797405072212747839760100965095178354727678190033136762929707131080991575574104926687702035682204384018023949047445484044216329954079116288901320346675404605488603060861266230476025698992006286808994316910906524445105195676619370431548288039583622658723150291198195602963608101342942886965035715175748565462892438465617306457311837969769815165989778705194788176305789317624119125016303520774159137573456963513866226101877166494035145224358802713945260641282114316645508479010098450303051366444144045302783783151663798384870588169465226760435689201031168838843846957797908042017765680166129880724078184335557154016685307089745217921456598662886225745428099069678675787357550280116592458698720103425075728262389162239796259148876700726871743484036303647641592037946012386245089688743620868227461500058687917056791762686782210624966584454114041883258370751177156886790849178297138929730407955734360602540760614893955753269396653156664733977152890603270102512137708159378799885607535954413568910328292078794995567893415920665462570361974568251552317321989381874380028287753650409256134150799932611397597945184501604914488791814507503760162040982290085962143742844788335357660564682486526591525407433974191597818217675866459541834641332752395629929494376711964922224283399674852804784373452525752560291135586198977677436205010962761127762566231265468092929188744644031694386917689754021949364989834385918654147529544418541728890003711039415300400123537612248356533521548556592756939575176431323472528559181057043144889417699983985699988346840804394192033686582171063655116605737727731475664930047532350816718068999389871854124461360911003313620348660491436887434623875822425785358099615630082896529327491636748752855546985082960734232288512776679633407459505043217192712547412108661740725796318497268414677153120850011607388291168932299230034737654188013083279586963622725104794618276052173663070578581141291086313651764180805996854733092011727649190402221885545858934046985157341199565867154550623403054356675897889133692338033882625435391543458276121427149374479651546172526551967644172526431859898278636492630252288981956617855492772159450400852480770792963686061278188008289306878258091733169964139127395262159329607693646806493251908559006116710306881177201728663660156630333899073724069505900470677623620112545373526045148463920089110960171000813767314471292409369238172007988505417059675039543618002924145043917991609116800777692039366201709267754066659737536052732487334823571563274670447384534739750117999658865801446238624209171241658512134597465980753609845231546354537857897359161887598865129910419094033295219290523920827970836668324466160531143594650514199915945437726125630725405164598072019543209301403881454182348928801433729213636894509725075368023515187161195908855212602361017620199690045827018023395301170570603106103287748902080623302323640186199512331308139469542910345960919737496549767498184830216751692756476106662333938313590394059928287268705369827134887512147398413355097137533377372551325006645170023218127689048904776871288939777397464040667642072931428391496977396075581570764940379588500557655085747016442365601285254769588552780327339841817112387720810653806403681512353112465528469212811944518305115021428458998362173620633104725188228725210214968615966835833482094422041902070712894601105097427989120022348297005229877861056294599372983259921340035512014651987708659891354491044714944477003483924954045003363017909957187200481408536792335775056034145388404597006601908827318849270945531882634195310041478159646111608672317371177696758524246033864059721848199801885301596552776953244237750205924192248001731135174300065268296611178315220002155801733128839926748095163223919296378258987887081259981867780267721935204817710070372568592099068442930846336966067572128178557088393929916970640165399084086766909321328010030743985245449888493826516183054454294201281358665879950538463379107739715194551460741917206230794152516338638745525628567864043187310267707880551472845967927881346432110611666358944048622859944148386287326286230638882955352532641702966976295271615868846078822680567005191796075175986234554948290374342855386918829310809703966777454503426020684257789909573306215119465778868537072483024832511074714401249063371740731553846209976023527666314281061289655409474938949720680588882464967521057826514864606735289217923424227922094639599344850895676692482872110253324855960893389208876305817005369658386714582147357684619660602872963514610891513846891094127388569914015094651510886486317200973580052024389081918982891635228163065649919415315627212646940066130033128434017887094663241398361907323585381521307719168818256109331077846786114995996867443155790454562780198849796846724230422958062318974658027720405640203491369055447514951113966049343525314651351844722511242405126862533373750193316933485002615406375039704206123434848224423469494986256303096518617270776816406816105938032497706112115712547492564448196647277762365006874039650472857830381280384757207137695567437187810014610953215288127012183353148994441709698752885816982754731892120388439369949403195319961192342922829096835446284716193130016205748437953628214272845297336360620733547166560202364259023866701694770582510489411334033043176239000080799336513459846966030785551642376784135749214298003214072315876357857025632652034041920629470706872925698160047862201203254316113057358314956992911211286805272931333341870093552758669291642057746671344540300418518507396027257193278411537183692826750680929585459399415522916449390420827348103180986677104950239162267325157371842942863996042436290568507201826315095367836216362841597168065881880862274947870262741284032350784994235456941600917725067192048084581717779008124414122569242547875674877386290710688040685481438307257530891455888857990503165386161998898036002225915080322113127987931990022418397752806676854288220340333187580527417806394347032633681665340663328195403219105370474035690102733980615450849326835409155406335674624522391857024484465986827313392461762961171239200693409032638246134959874181281585576521091814018092444225447310877109472591668115732010966720143662767913616808140370627944910429967103894597816066734216488367855232887849658784574589029183767109546307229040412135248989900116956597513140273033259718150125676215316906597185745930484424122167848416044146799738569876331239353545760816274534194282561797526558442607399217074013923502903378417565843369496007481474557279235244049812194618031718091194774393481042121158598949649883539677459493826634076487219388650963320616873559512028758860935052537976795546018919871133195377106737224339998176999958127622137564860267246718134101294092617846959607299783290944799553542619261186881652393907200105753149931109420722331108518373317648271343305668057978035505891397799396756737773862930896234552867533231382451090967539712635672939099756687010331813584071329651657179819848835815341684912307241369019751667951118216402189699523636947065515982410779695236627944072366547907189183760613056961340577580946798622579308991738867005695292788232443832707975679876290606337591181191276085566586007900556603752669830490041775823511226375103128648804760496101436203495983746986905445604911238193293124574030581130651190263376415512981724619003482439181465356327245852592876896265044407856075574919007397521682445434931545496279135270346315461939838574295639239131444856279081276932768067876253502925889588829771673978884015944524495087391979494393514836206908753014803558599453682426273894363272728402766019673308031224679421952055769997577897885473044103609077684830651771788063259832375671010793470642652116103514792175581730835886546593459192937994693730278001027157372179800146035719342638600208057573483483552864104934502957330923726872832598745932730371166128621667295660599313598734933748498065845210278279640931077677550293121011200153532784914502419324436456632021626860869784298184179749167527849882655085381734513225352039572119413521545969230809556486541672183123307170968449488270719667981395671605105927817277811489369397663079598240049442190960045864396101199449166213122786374372901740481143369374415177446319257642805037946376947484285134233563975518402140572698254770824944194358848954223610077135261044471324043365040317862175305295428475955383211994488058536256176138094148423312594426954795704703943210679076355496800599988905405106380372478904142710141416993434564239180095610322966565513637772166291561940842911594246912709995239677874117378150754273533949020389337330116752611394124326834589637918680820266407202521907063036947193861236450120351812806576481909693088869305600821489036796691035691834528839516241255063694056081922050046137176713364467354784901526819003433464201333356888020153080077166456412642180987445718843627745560647704091420173952242505585451702238775316724484475652085720726306176944803052089766502614247666039715615261352536503229722015986488818871472923267343696718153600632260624372373564399531488288196141005285117685881196148064163123295590029787514766755646377269441426628941434002294991323477808235554967207622214086649705297585238484536619081723509937013331916842322812098210550273852422028797345838616584769850115279515097982928438123114251984975707750900122835308722043882757347875841446497341167627949252407958324246350136681769663894812071298574925945746846143483280598593441261825451747136479890953064309565248364020301666823761508148201647498192303778376883653881503040155403302004369405878523107329221897403912441575884668503658865463751719714221273287875897587178048618497653732929544886171861475879002860307675135558746200067630098125719043068150619530799870209916867925378122015290611175551882984985946027105288345503081426964400600331323720663723471799332693739707608997958550182794345717596230554179743220863613989630010790906586312576424407619588874342459532937571206042008721595913066568032987929823411580629552973215121155707130620339589626118726799603554202118687772633312231966768627115574779746975245799154091965998079142015046403532178403249157510419956457596760284756782517624800400590645602352633864307931808530758187698973735134444950140397272088014567294071607391331788457549919401772234560075333355050250174741177282483004395991488860243935969329342635076363541936790874170108586427241685853908560145459873762381218319261654270176420086722796752718287899097979813814587423318481260204603045835623248758889364929362242082918158104273015124879078363775083918877029415815264430928773568978748987966511199431842151527802910512319743741231435883927041225616048093530733726257527856710986851133063902425258723594310421700729405154382053033940843157978228665058857775208533819649487805689879784753486981981781907050668429166590353983565086528902273000126721325356410048431096334050887877216795319055269818211855576638902321009475117908684973475149944214947225248960694633111592468398294676972624938589710642041629140951070733728381734076075892999985468563686296368882520721158871408405728846524049249892293276354585361819781436304789681594000038465068715419977440448849866498688800527289955338975659418153425529585971184848862321048706281385824341499378186602480582260600957585979387197631656843105509768876554770020443169715720397718276373028281280026124995825638314017045497585200846294455743550569605928933415441553281300209984591317208056830978906409271594232187862572000171696610132475998607911415590931920848097686123152422909263578045619113952492445484595741243170427876399062647824755814796288374597429026888772442191949002612422635750710889597642568947486806784477104332602345132347213145062187087695574499192294570464263525737736569170023213276504532404669906118694934354457858088313233112795811578901387019816159986068572709539791595190345094311862182475897631343933990572588289970157984254862020347484909294610722927834325446638464796900632525103362822086132577400689767423375983846255480444027041071148056309850650759222077506844061193079151908066443960948657489873847163959046343690095606776129846898404962940602398293010700428579658135305724415669453914704524919412127426167945773584032506409752833727834202617466557793589773433540427458763610082215782561869522631712077920182184460602030669027768648709097318025567011666073008985406294500996240339910214873435621245937602500311616193425932210753413564436540800887803401016310969370829147311275389582145135332555801999561017784338362447196394089021575386198744697305643228098809900462744422713389682274119178179882551651891791181618222301663605947569564315478511345623291808038826054821226897557505991074756615772609501282520466529338906048941978472611127497739487702945888672867195067140436330751489348795690439123222734894643335824607818517454019868336644378589634554765782666158044756451824237177919797494411769605932538195678743401300067461086815497818170851424756231043265358591115419304755674121078641860216007804959367811985647286907894588585136754817451570194023089134772610831561498549686914646678153386970975241542854285926654139417440236129011489609785862352022386367660234547374402498864095937018928291106045453280756949869872360060048420826228466147078696019004482967888092842148444831993459457858228696876303724935729865406170803704410629253841027261263826225897161285466490809791296350414069585968007069981798766709754490981139575881979720952191065563136798421045878018959205804750731671883634554853490453193390393864609561826246754717112456297454440877325453559771785570463579991977747495046488272804816934833357408559085928255792350598042378265820707508071361940939940623846126693837803888293217979247435775887514028273296203545052100180149151380141839035263490511780753297063463088302360762215416866276998920233969968231031937978891978005673530729698240584590325641238468238390219531526535964451553298097030507618495038152928637862372502529052224901962262104986603707862421850994647779207936268240547704165044377180353273351539481591762808636276637905895399548402413394581600977049352526700929904640801731754738335488387670743089906156196293644314096669827776585189021411073849041464842590131546408639781716587050834187353446099160460627389033468620055152277695469180296900697518146739838694682972550837201377804217980296925656754071768400088455088789517971895324539324065482516947192082978752551016763646591526059524191422952051836660395376437783243202337079999612906872924486591415733025808218228295802713068223687459465195923881576844925072260986759971372842863651007605312939566928999681065658511527402117918072832393881582339624189734239850514499569208742673726710565543800465404250498411405654141394256749064145867234265995476407388086093613386284939822713696005010247776889103307342494098202762270894587121994745862171953152848894653303346927944124099034702010075902530028127887152790663809772752919833824142810288681087437823584636752281593991977103601244756178348099566736961185031232812024194200613928064736712630176311353347208485305327698239532475534682188787411116362672994260508594927177852242153744700226123641990969063359694755433269462952527347137697037935807809768721960154954880008176036713036722846157729137687677173241456494191331894610614696484539881680348284746755731444195484840759203466977523352257121869844881667822573942323234467902866499406088165228066628903443425142358098918887385919273856850793519188494768034452946966105070751552673652142319413465334435379270689607261335178633206967098703920085240108946854334319870030880989801051979214231162071071896783464069111280173851710042061826200259854142644512766499043146472871294651545976978710849762670213648738813125192000297536683106763527382363927893643814015498827347371267260560529225178463922738357613816414138598358508058506407872646219318538718724773489091296868470884857495162775117553855608731333976612994095293012235419265426638417615899913590798111352427112440492771413812810476687338960850480759424100683270231624836673160883166260203743006953475206149427928800252529691817822216672958393968164378313708143574852169164349048187846410689168466336073609618764124680748709936274502370655509847958154469876307552142857938328423279586088256959354943427653183114670895000476905672907513111242430545725218706494025150735497154382006720295043598313628720570354198672906098311584658329281363768402900482258491368727775882495525401424243686294406638390080209968775427667797412783436476902020097720702034441467476443332918237690748743033953802721603778896472017162002603363652524062740903670698235159558577976960977001445597557635599720935088128890663062664177194718391159815578992993447829112494018834465979345645096657675505863401464298556154403672291993167794181805680934766749546063512188028071419040839828573302603732178449756452839533611681551772116198385802739829590084710808232843200422494881319576347547525464696991800048589443627871657413588012217456709135646486437223209332902732194246236550468909308692592093868787421108545408413841863014660486264925474766513146907689339138856733350403355167032979079344759719338232236485459757332395108418429010770181512701762018327346520643220177421996379248797600545932253501192764092064491127080006922650203988479818407611332462631516564127651763843066122729278750620641158066802252210074312317459302978378272420107883928779217872037284073911983761427391680368120667332706641053064315818098637447350755344788938414784505686218450452809054675808267365625790514408441777223472822221817412729433733809080785850629794583423552241309025649354668026494334757947433095127822482648893319977373621239354570814235326946088955532766477177696008601827158061187775346050868348850523482829193342036202183529720622158584772986649694395072285323790052134454836831706405505006858382259439338812587023124274487487263411193459799515661880399342726936106842994324158346318029291859754947487708864149885962922808579312148511817874588013043270814377844322533854446311501130564870076220714071839212163618728587701868686836652239381098229450119088367062811126423261839016064946417156991519961930177227731703888763860987997814713909811671112916691277413944147652700423827793131202494181736801726398137509899268404162445628351749988485034396212720588681602707917034870921766717513287719381079155571278897679806558471791950298308779226446597528761909888636260908665356725344673424481554988557193103468290497338023676063852946106926464822696483015091321072612601894998987039598525830137274622091949824489871048896835971466173722826752922083127344703457729583206041818885528191235819390751558582164400984970886236683613302942336913063063061041340807475023507829383402308049523906133470991234187826261673754645672535423988546103514722713126288469896537266903733936575032732884536763506725963168876381033287614546868504981839308528111406220644006870172672760133375437954395857590199857786884850147063612447329311274369749195370446671430825040714487856073265186697114376084385802909032723327149512720235937840966959401382658259234675648122908896854002080864848963675125497120358467184068837087884559728323288623746539175214276035137727767653788630443632821642758127261875371615108988334125360017793051988274232574509432579939292703654940000839412681106258836780443063315173100915053623058789030329326040872579337623278530129130693258025176962613076236536451974726428486479240083669091103125077657694554722082182931386283172865168043227725279882752355514182326091989707658798956552508297515520357729999130334490409965007081275072327404138174330574376816856282415184629726658884413723332885257859862467406203652802018538650490374983564524885000286124314024763443220757436476021427339113590176361020860634817401312935995981889018767196720603534230698852665322540076333371531712015720092455367436684606145691890965479530761651347995553782427689035344278986665938279972608516475658962321617934816498309869058437441684810079016058564927979835116658050082060436891574120832488879979224609699069065269754716567181229982117288155073818215673054103555922158035021255341116423009599454250858946184333345415618851717621031886897234733346925073263497269823342300765161826957385031321125291614579062716958772523877242813990034264326992765008316341383304995512140120204000803436113249410863437921724032018570106997098167067515612754415428446826820351117113206454838958867891306898090533401622531961164889259843405622261110432885735762851943419656447305102946295790678631346296376049270651509043791198446527029754383341168715674323841791492648110102228500250839479114056368128998880894642317931439273054428267892022810157771819659754419149594291224580875611897120238136135255464306325058173085758311932426988422918181634310679786156008528730936472569693105737075776539367111321680905774089096918399609624171941990869838876655655608719813892219990190792644415703617710946221685174223930398837588396294343201840148146492488397800567820565122329651100480759244663055930008804395127753992980214230220286199306741585703157978237243723445095532257337385251965313289903872088932988396887758946535175179373488549257001202075743073105552813296956318068676944388606996399148565063670834890673924690351019731629257642295099324353632137189837925819047609003506275829751129234846234508321003904369364713299944429777327942034334529816332693200305100780240847364179727745308294155824140703154073466431586422604421063001619937859201768016333940361753159064172204474890924931222604137862086590717501714734878171535031852172378057417201585516539621605459059057377551749276171559111755927701569044977295960266621036559805813992339991704123221121095422699201231012440977580808122032292431679920517548623597361457943188118431825772455561356553614712457141905088772027107217721491724429089594496992030917831016918719289585258659218279632829921438292467762099991355060864620884669061016415352034632274058379817773436407416304358610764761752770352917201237578746955433738965899087754602244574810522700825542958772240854496912012821926991446980909087538276526480693229381708848518152028646611886667868194153882852109466551384803994040957104493225795547896934342156451416788277435577480314301359060093844615971769846494145456466737529135591341223660924907607293417862525808510050851330296514787457672738048551798928232396420007888284322780486819700843542553551563952090291055243763700936299393259801109391688578569989167097083090889212832131232552004076316063672855592116097420464198504662795100241588549445725303768611231263481626024749151094716475243940580927510931582277282910129770759199973663234284905346983629230974881743308052134462730390708644479668172773663045840736154347518820113462522883222079242131178515329801274106855068815788020306378832280603708653763797718455233536214595392108055703838368445956323891739744615823027973911746886884175453742410236269663938759836696921952303653023894413308312065156214652277144322098703881836267739322067299832814564923888324873413341170435477781635328795534674867632119390680788513077849269022552373401024441656360594162619645897427365150893305415754426182110191127152348580160917300628545169745319323125187969455957666356626637901510734020675321153824661908807685953127869617824684119119118227237600174405035526139015037306122927420717441659516901372427540115542195177263595064080899445873698580840671355046615591375081527852085597034064007305692258144846955370824808156992263596712307502096701726332861122259769433855545477167202587568966109784973927624638101594242298455974995230796612524530678379724506400901298847490643622472747705454423142734735005831568807666180385965376350945390818579291476201351297854002791028430463296636135789715580189754348458248850685760016110879692999619154850324633592347161217136896938293874934234703510030546915459245859573705120047245890392234673584227861051934678199611461465599741503026483187760337847528311374561360174173360087266665401877126760827625739126475361575440027146877751933301445447711469882865167424464545119836496822310482895017275994073568503578988730853840089593124075824006798820437691202265326079457747372900161717623031804972108820183454241366796133396727174684772693725443129552170748545573101738847465166307055428410393092252655339539426750259933083234906647362078971344073673574872944730260160459238850171957273381027491235859534862409635262158250074463805784500709263226259896310276445380101351771839514850600171333995546670487803493057883739946634477170231823937925065237112487664306928661897617781672188435657012525543007466891734030627980127778915192972161907675814301393917898205403720929074069208567728226155746577279539283426377137877136743485901359109127733526380729456141501123416197053741372419712032969031803820371777076901111099052530009909230168264244163851065619210695127172705941457869830960459780840655071627376719552236603638473766424040315573857889492521183329316236052099893901284789197564191285984526241147381785168154226301548026064092539182996458497722957628393098680463599891158624782699846323038879376689773119790548688477790651381915671710331934316085022575619987050214041131142511278314559787306401087134571372585063496626328302224319780302367118324336374321794860353397624971447558422352763461730527147069102256512685604864711250916425960578026235959651155546236703655842437639690709647290325591370392800636931175203837917789405756792151544095795200653373561148909588349838135174341601700320115298358761161687120133693137943270713193924563882159198847792946669003126459771095667401946275496440652910243845147825997975149127032933699194685046733306527674285926079467024331666013296286702804650455987490196690961027946530711181163360357425304640039020724091918620554521548962812554286458710112459716788084585898827846572526294375165547228308800935489206893204790005845593159914465501540704064231660752447837651774297105770401084539981243708175649583653342188631036298811146133777759405638490534697142824997149576458730409129701535888290417884054503480757170349414552478454474413228282459856056927074621027467890257713184105318178921897749301777188621436502939735754507291261304825210977003298630855097684189353170693558107028783233607991547920053442041877198729383061816657220284208232881218905598046845140122645330680792191046038940773294752878284787068219698860130408014016591894890911751158458622538002216263793995998954724002833522347153588902195129302428869460234686561653709950416210615696677576728127799192352385742369145175867675292422403310364938481112013435812419009276445980913829107496197374409800392937762851588239581385657767501470081731922505972314658250924145794532461574547418580844347021298677909995458894136424288764329145616121156976578203829569570571596198914059791870092243018524973498192430319303777546166695113183012351905182742938541678692809160660741947139031094254009220933414362552673039670036887058835840453477071433194625993872629253398374118098601496992196089624916584093652296829584956729396042699594202454945102799781859423615990599520866238568482505381163663762761566148098377206012886814575594606572058943511080682869638273801396534010245053414598892363691562987439332363731741218740219758900450415123143068826376590800933403476574054275703312777042852006783564001036713867307167225026853309002266643007625096029493537669211439444412133586207721922208439444572051988092373138310313923839406090668609241714999308217089950459056085693353078848734400376491856430711620658760229356284043401180406604340796256073939007601790996909411149092222346298423761904947258281306456664583332470926425755680161555476893348844391710969508867692942391691725376343113998421761978786055657646059640245240535640039293411093595989227971887375062911644467769348537935393501167362110210262141614090085796281959056794435066289797650311442449456587513665711134407934060734323890942791408502547842305168355136951835382947037832304433453219851220922126541773427029590532395512046473471570497716302878235826651566442579224914264544931299954320251675761714051800221834586149031392447446128443898535222652231206344082151812416753819990876402371741315788911834963827100555087824704580312026126491482245634151592599965602613746438361482448443505170131725246699050650521248582135142257019128515747110723036087230628710890816603319482502631798148259467389067646380916644729681981016928688899851205279544012746297122527773983457970984698813378720166562839318583175535941031430020937571719411875177564713032516879963300617140005672925936335830129352295411825708114504797627513159154186061623724610881143788157552405078408807014839273104286883265663588873741503951948961144486171087646822571900850079819415301855258248624291573872395780107138415111186125318008062686638959054696074171148904988362618411603040469720629447962971596580128863748501679100636647461222916541924016316037497922767174946477850252289605102796899452836164787318541017361316463269957903158056191805426687689077778594857014696859250210350818629430463520661388490987230651922108095361038030996613985781711752330113081932120686022713392871775433162635952857190310276181741449241136308304364867441014805801511716131202107094120751169515231237288683362070879280126754561506779445600472829894744256960212225930781354982110395343503398908038617659711479589406403394299425270564144444780020606582481678214799598311221115400341031083478430883226043583670145852651600629887155512645003770965552825636942073937038084025825448903122035817276648900855916372261667840646823087054346502882943636647574462555856641550002042679772758337559090982618412062414650071567066061219197125812845912320347447388932195373346926955895476358367215452827130204926106042675025689924427429183190511153047749728253931421067098698141142656766654455180030818893559006612920392272781708795209321223750324498747544333716567595902935953852119479662916819069042192926134810030610116567350284637345723979129921272937483306065708040782556545312530314047153807931674142143278292236833068489158615473597172352661910278534434653326441128388374072863775725505798313042940811136619760957854189263633705526458558371939161007079535366631641898541130154780675830202482121940450644888426975695629834933085083516163899412742108427747540001614045041776582253266208343904127161553286772282533861381412421418097732401159286312391352664119975860537985404804268148025110932697697068273313146301618458220558893165187304693139141751662196331523778840386752498220186976939374746574674246675046968000009446318224149327396783001448065749750867070190900935446244540299473828278997604608358112362436052768095967863330773043550577803873676133840369622566180343121735944790020639479881855843567820946477978949927755819877910427072155452573759029811759553600404434959624433875326723869016549916104010122927871388832199391826424216724394692865582963800566217882739659092813811791437066832087012864621349726831539804539339300874318194450807806791720029828011171250681165906408298509093442702595430355015823158881918049438157130407279598768374287219337408524257315803664164493879028306429481924743181280598467744510181550239354519434016910784146929226206075094738398421963367490581185527873957676565744274653258884610647510707154068872120545236334699704140629189108417884485981470771944217714902823912472475212960170587907733527608464151309649884347043896481479442135245137319555729026257616028185067999132619464185520716221545166944861888891128318890473776384171095103536027731918043545372891707206861620292167323609204188767789913957429463380200954633163505261208704111193257940918560763121365091088379789210350660190450171370936953936636928560223649302053004444492719197458772734691360732886979188198153215669026789460007284029826609593328414175220935776881877449200885296302377197577787451164898455685264536822277664039452702027258971259777748850246787328587720882115740865945790654396991356983399348480191771267665221914782890849256086273811700556363640358498246972282082808446756561208133507793860378212076531300041346193343715739806704190686256440283269862131268532581063276278502201355548688473515132065141830455681616297879302975938438358044257713613424768476167535427527752050777799734655451170602577545014874198889496491653930219796790836215966978034683331790068642665792272508774483897513509591764221902500395251311121413102966023279618637882849798931144117616810979836767758656613029430356655380997443472285412145659813461439400626714186956748484253125231500421237102814135313836940750871713301820322131523479290252766631379723218109624124196701167320952355822074778150272685470202183092475496708761717730653332494812989630330529591873038201867106097786873834317051879423093123323971269362946916397484851108039746919221524005861688065611559005476796494997860223303296861944003604744570541673646804231309233591462773420460968852030014377266012720999861755964147514429409737911163408214008910168419441171264524328921394166405480302353435399115229513113217015330734588920345462219189634627304073402689919570940232453257256373238863286694382132659097551704107964556083207953194226436898487680004000825700616057079358820762419718475117612456017386651390954330534261646699683470133703452990713676679694485217778585495769526825280458022893698748593356557093641011533978859875768768011682703090750076938664403851821049873154433668650483727470042762826787900576442066756077258800179694436737806304722149630110747464301800591208241233053377498126239195185408233390567577074419812723572016538021618962281690302501956712196979391279301030567706288926230932616851682292797404865917512237051674864917442525353828689837352203396389796833741014256635967293720321039605983445513278201293629976488734390342656509501273220102345968318743864161191805068104512442272379588152072439899632849040046427997564870166328827128568440908615766283651989723978747787896157790024078023607960212864843506623684161268678337851350441625020890615135987740477699422724262332524035993833124941552733644649065007883254711398460269477175524422909813933932081735826552486639891325492788609480581991830147999118857546104034553908615893216261242399890981928448503178496939554668117173499439643368170160909320337059524583145897926563288249768768441856699561514475647158371108494807701161421599654763422122664392244750602998579510883792786738510796473428384579169725306667364189308010500661151945883892701644425564649121077353742122673484832722324193780399113928868739767053831345690993627600059681492808299553256220292061876080659308109051886172569016357171696480211400858175359181213859703212095120140010210061280391522503753547352946188105407847274376997419679706064366904445268626227272768113292288542282735603581045773882530733832564036721660836937525973939260027647240193546373337725770212924566577047134549241560507802426550624173780236322912111472649781473718158723008077860854125968203056811995286504928092006374943339514601502096146711968225452382137225486922101979465262276038169394315687700054016573329621957611830879705515742641999005591761012808629044306580067088785520144475378413720613814431367226653329702986482827836413012006188750537741724318877360403545538149669769505157104931668921566834066283002219585588226772595985026537549151989096381675455059495894268743349430362381045642034791287826712308961800658945452106714126082637235053436254904475717281054459323576520169569933786673899369517289039987511554721640222052783799898585693740361398027332415050287998892492160593056074136383107976807431097969895837134905491489505527989819000097716868937298467780093195999911491654691176792018701869754874710972586916525854572431610849387063258558544498104022409489986785467970984244805101986114157182794068678515128831838013947590372567429820636630511926802165183289994006547972647955700364138751469742472118495714251538327541257612359544401695965935850073094682921187292657045284632454771351859350006304972150283723339822434943145283947942802576317770054186819089978564570040238871024321560402587240979473162826195442814590617490323045891253993594404381778157369890570274312371125764984188601516351555343533151569373607842257711341861368040699762441421489215304910788147591155087423381982243034577124484891686280656208789686191737764942038293136042290063130976462491883925145920480445777010026111684845294669195140673344392645135422085319769171030734645558542663623278313704155923040265884615025991406210089631288294789138680732189638404878682569354820842287829004123133350539369275284515754233450651232691839790295929758974585571120937104170313145396869497628854620329384810104529602197752955454107510859748121412414956401395416302811387620063589703215792240898566698760254172950154236297239757199017495041890776348496446595661563339006599713540072041387056697837542433133388392383038252613067708972630393842031205102382353218454189469863739973648175248987583336685839087325886224740658197219411750063285096186027585139511535666892377475685476080282236500882381998401407562973679063688950706475763279512577488575808346381247654221313610055860099156900130126287484606906186907066373119211850407416781932916583665991966025298446727571699770676533190660116313509932438968376565975533859198229390546443097943865864143435331954563734532353441699597630134400678098189068534011052511332129827350614649251736714726238245687363300383908647649735649813370245192354689076433952774499989727812916766921445253902103598522757806828897287109902971470122708662798317825578475867483368978316543211517526636352860212575434731674919469721940077646369251005247092206689061416313975101365320321002562065960902132225562746799603697942788277432300430171370790949763934377039743086627289433725981615300346772482799229612870959295532036991014619786907865647507115430337655071641400484430320347778625807104416214542526826714306395090784682758819497155320049514535945440649502632523727568402031527722488195423268585325775337320025350532026345970394224781726707336499435086479960791171264624082172565644514698449761138084047438262498879069895983419813929290624993215878241105926638343148360779114054293003016916596718105103574838698601395656598698076155004594371726235717618759513478516952610262413006816723219787140242758931222243806696119031501904935232624400566413223844311124029757537507578435719618910839802055660545391871433541532691850082405950627191652209733177462722142770214896527813479043328122737278106608035392130613366465466234081122912975168341623535421654930988219167354580987360620310851002119890547032412790524414802732283270483379881983757688865583502613089155730081079710929275742211074351543213143784351841137312831206249814232072326691569536356944141379207375713982088044437378503654103835734265940280197625296066656286223309374514191897690338874735389499497949121009000714738690495095071998057379083565947739835478743278809735940434174586475280348698943146300337708790631046576198366381701429110294111797381328911919000012451276695066040658356395517966992602094614787118926129340987999050152137321234606428654336104441513690058526936596835303519662016534758451741563031618493018617504591132680568732574888215551721017942467728075041918608764792626912591447320039112644050662064993861529830312678673760022332597918530694020113372175375752712439569281704720602227159685238799748628637704740300324197275215728912743101960719284245677060341425148498671215625886805356295588466930316165037086598850994193694184704038203813500390647106533956463208587795626504104308908338070748581081761670966373156324376368802306154779508975806771813892484345393427845720331781179773403132012794753966561294106470316720046408849173855860177920862435679282238600261733071715794188096066335110425181842390155331234293418757178701655045301159904920587842867370253670669964052801552108380366404737590558897462345927976138718213393969002982665824403862935373910980417626202799735240076680105435141979287642704168454014505549391401544252422081740656847228220611258482059234532964347638668632045683973319372651259621505883685072757138429986845339252420525639793639500830250930769172203313305278848259581103051561609322747075834837683889742383737696575879628381609998498752788442486193116948247122101100853694057876494898457455721988679512386039840350959272167176174071012153702226163778138280377438093131356021110012981852346392785673348753878125695712949035703997501294353247673984861912592887635120767141118128600864896344673976513455890999936612370731127319564458280620771732773049084783143086171717399944640895217577027890024922602902852439074352509865027860211037939301120612334788573069511972945464413674355005138652807442778902837101916293924036916300805067624670883503958147500510229153940161413812558981565706819199541512954550693386916148224654427709225527997236694748152940660182226430380049182943838333891731446459817402631184918350889200696846860416539766957520342026903674358495991124436160566403508681303360976578760725036318001965771203324452035605232776801588413822712388653335438298412218336755090183345205248917676820581150173479093846213195664419659163436517334866470864754627932285000888127188832859245848618173357654786922449457423510360591884464489699486496549401456572655654968013738225336924715145503426145772417716898747573158711459886874100992229360222450788323125201134002712387074275734757964822476462195592487531566005021207280795041723136265270118655021836076395894809732108758308959141027914039002333907481694080257980552598921200557386822551522910701720063676813664220636940076269988151057964345078830114682899133458888573417929077925782096392969172243825044103067052120893180277697403662182941542324308552053368272815879256874431505694639418504631346177986338364388083896889388079151247672632377684252022629259591113022478653399884644072512631917115043364888441930453316703038699022812068350356964443460665281509814722097132438136732729075611202152183401238698747877660945485515775405234633520517724487248260948672344061470888619938201295568211355587190376417225070881916939363384825803997535136630594849549280276476657271019076755561336483233706674038477583928386194564754002837882199045301616229217347011860944398221912265734562100413812648068777595666800594963684569525581378646494735730524762307243956770495766976667094787599381565299251982287275042758254762442657755826481511596640543800043447480933557338116431407326560945715022871810331791400674754903047054878411035040953126909999085405441690052214783813172675505950278849218708750771011722455865358281995063472734041335515815957971745778039229122432058597312463477650575486307804713305464189995477960470653467487980692746734677746350142042236004164802579497823456808143933219228325526987071017884718517942639722026616003454277979262611332734230891443956559512346277525994358561018732493417937721471389421051173846077790357736757070403981812077269628406246844285292346073535632519401939338066518882447909390873401312209922363241553933070310735486008057564203649287442462559802635741795630008699130818582685232873591204953801821201245265691551824810033554568364462266854730221118286039942124181489254391625775441631075868175213700072976729443363970474283971732090426251838522974056409541221507527792525808454280203820753700698926213267806842634619826429644414061062425131081470253768745418960803256848668965299414989096078269220497025340273211482039942273748962599992058792108301141141779005968434136438232921149578623882670998927472598556288311939578105096834268795049600085984611058402820729564347098391943040187741037573777290272753933009661841979014313281622839004286114015645589914108091128279872800541480392604179490431852413308054573740483425232446498931634026413485748173444979131976843706792482509166938093887025797433445129651196638223602821831035902609628820587914693508872740893514561970197001430727087665957538745101070949527440610513721676065119218694166587490015272787115614780859688422366973303373970189314591444167427275851634322854728784119510283129666032547971571878772119929507076061233195532587331037493240032680148068103537846193303357413071189951571754881982257317657739083151870869808442258481298293393377682118966578193306346300798970650889047016939085221587623184288507604842742415674092698612768805576930258240182230862878179517382335632020147039935899094855549398468118342130370362659774409388165663158112101535725577905815327095729932067321359295332477624897098300483900018973692236749741130407861035394435400040790218867981021070086589939303168384501620352371931843303005686734711053004746014192337406808477410259896763737700744315757302038585527491563695795557536837273974470801564244857768742635014473344054419565223611043852336994276584854691147930619294699271616340773660060460946542079674662959563533600898227370179994767559162599120022398860231437354655393353734468039147475868567891603788856005058904984818496866246227114198680970980135336842096380928753966320485420638267595258148911287823292877737099183448151143225189437961406029528890304209769291669818747958453756007431957893574223406820628026327747781509973259357789317982936749187527502288530936456378478101281078077801086047129006570177601578394242880180602221488073544747796603749281550138000883274615554652645052238990855272758363049812886320017417156060689521394677785330243374203402923922726404364023021580232038065374213997955701293887111104292187974403590397376962948667561947930717381466059238906279054965491701765895856424889912443568904728683119523809183870100439855266224819455529887202582424786595566899482024345462205176691848842848968422313186777237955948019609773108647579345078847700556646998138797107131778153499303956363190141603507232341350599911367405228124493740673289242271922920994394659197016411873087012212984290091715418350659913590240101084525823635979430025156969327580516137496674086760773531545704571341414284073455642390269094586089366859429358849400871407140938396147130910005332504785501566270677279006902651903572865955643135231283113639522663192081061086525504114789232120626235294720602202415476047692418141162046374660666896301248272898266339946200220981471587167462813654131468016911668757930342980959345031364620499866639137965656906840819236947321055793895242280276352626693687848840107928602210435597604464742128019516925430423989856883144650969850463698654557591954077726222084945478043890789269979445823191336219555133984846011037738144835369840364456493343151831455483858722782761178309380964217689665932996118601078273552664303743430086612957450496792698190452634059822231220381341073803233653144071378059444601782845964001620017273563292654731277504401734834071371653055467108272203303770645867049795636721678987039315412405292831501782559209558975095479884802657205616993682128917863645368892346440869542992479884466323411961874397099796910158768963589048203865604043785365500255442976392497829516861555566560047685605171097460214889774179628883764032516899236097812256801797289230285234522237984501363347350331030052333437829913457385116675754577641640979129713226066206195608878513782716874391135508758455943627343143515070508418316049356930348365130319753422177400445298478869535362951884162022552264262606525479641852729939236671773533451706049408742438633102347887447895679599165894448928560544462712172766209384665553750448422478508138044540502367312762604547318276263205521949334392637659591712220540327977075151968381423689915091523186062953680154254530795227017168878105470433452578247985037361137801102654188237578867710220101724239108656467921639822682401003345403768772723520706265472970815018685986919122630937090695004396669554583656194066392101620008987439373619902209109767541470186788137326643295072029553091187660790971839809086620479108899631597217778514328503594368989251208219167801918533431477059205659500886879618928052185038755264291910180172286542456382622925378421514673778089809769515893276599304127726092890870671921104433477314016265679089954077659009957112365801805735742769712213827386221413203671038145283518432947905015979528584840611959534175797144243680831143714563326448406535273491183303797355012376917524417548197951128002478323579151912998612594529683266699209891654559611352947631909033409817982289739468455113694908935581331635547388819268122239780025740647397513125782146399747482995762124257095363698663205242051745586218994364293211071723522064385193367502004114389580943767991757907610676591799421938814716120980137317103296052632299507018027512099405850366688713615275010379188838408987612667738462415144412497258043874899597286793282746825133718949669337390683956435268387715616708731463598539199627376323972849252676779455132695986400773268530109909958710402257342984828134792552651212784737890272854559797350704599859215083038815147826966433885990466568875130482856451565366843982235296984181900298684094327797683192996445619080627651074145727685523105229874391401875479140787714468287019098032363750922738325280133701702290711536900130513358788133729696556991154892982454564029100991275443161160199787156569256064333943600948240478074907232915844729177829577415784118033387935762892103064815911997823962953629739980843710672490220384628044310674631005291764384861180126965221301627168847307880012401827656019175975639343021487856539065869771354969921176322217081921319653543236086525196329193728053324798285625452710744202736039406767605325562648525139154504527300176948307995415993283842544451569583482688226219312688898118397319868715681810593061803625678956767293092757579095885406461614943285917645120461500865524229194863208275321920164611222376196449782187700979303146485762578421851064046665320015717728225797880817768569903288293588320865876448349778492018978718423189657820453812653017403686502916840070981100274497319267082144806244449673939040718758825711712293140308252725381883128094016557232971991120202270003557618690304672111322458289035716989339833363771217163222590156279433312743203261288210840731672626604574989061586441786788956695405132177139581899842982696360301285286539027471771963445308049302141638910330424484680866650182258983589448081686152326040261375784505570829416145838180584699430867103396939251042964808824778097393774387730744781477183878743783754225131784683744237475212650702226773793335758566832085891595017149639654436507790044360048903050760017870775151021443471143288914328185471738310629782553027586814712437190933410227702336293175064681633398509894956739362955048636755990727448575803069689233336010973346599934133260239041894931548019526949949722627268167980340594619050090284972261398485547885272616648638909888456689107479206965890062756741699318179658539391705133048287594942553553305077696398626252378283106735677107752264712386603403055243903560497623281131459180576729706763476973955728258597458908463620309586001154821026620356842174402871605044326441305046130544667349674960509145470086595475850389949806356603293214732370159049883009971075695349944510624940905389938227777029436335581052169961395065293944470268296810177373055472034808270515302670208125578350537762951999138611691214073129629876391124795832523743974412587272479901342487584337174141222636761133941915494738064126161586755263193723296793498107591074979462303114585792151034996341068502526462749797066292654046704994851025303779015111700981351061251708072267949466119132273890034236736640804333794846928584408644983834899157227999352074579556959578598294881918195707039519862117645016885970559895040730881344412519613549461068573182898429028146691390434903811279246996770896597716914982958409752489772134260209996193411803895943438417565766899165092216160306101778641944958602260526799087854808704602944293519840130796816056113790218261010187569567263335353878752086317192537585687721273246578791088276776652105255843595044981600241477450704311088344878609105591287011430209420701415907032435653161954014280798010991410246672980580151236070167921000128714103616319328482955150176797593699187149795818577413927837993351195789380792229235209549650438444502681428644255930591531379971930322279168913912318607275238230640553381231781006623474347857049150144385736652238493772475947818632810383590443368572128449049493719005478014632162871731927625247191534884348960306216784735729178469294547976246330222794281833248558452194187447661662540983254161912808112286039637135058386871035742209334170725023504818198771516221779624304452749968510278766300861068265930262190550472585294727955616079478282875764578232283287947611564652158736239099540956697664656367901720045660179865260883914474198466278998824996235988229290576938776115411174989737174869939411965286298689078929219754463503859986693487557418942463331575432430259998500375690190257733755451143228910534544654047197677252341337909315067796985601876561466115211962527124623200445525148284728838621648876803428224288927784928216756099094176583905141964339236633264701723586702891986427818848123355005704350034160839495672411473321729508733180533306326419763483487890680924831549145843526518289702256395437303506178881974988151654492440278755813758623977010097919021852524808898993647792288637897806213576445127922300480059447447588537542797718066716768932336520018925610557273693601748908885574778214673448856211773038838803714870624995402682875938793859916397165697246609971349075350021850746351592369239903750255026113189834366683388568185935857461697216967079776851145951866884187846003578117055084134840779869659434342590800457752344793274154924124213975220309255121101864339752777008638452423889936623544297379232614604855420505169348755126655949562406905553268370261608369383739647894935008336627001563334772497740536210506785970825010650027110548407913395208461650050139908201459704024185461024520526540905017769142069905152985724172120405338375724383789974806278404355452924659194056065867621233373395163788101563103738507308678039217537637583942472678638255179690690367228063314410834877680563466761022016237028956156713097495217300576810746935949743399289509353063791927307303704051582450283512094349823600968518255347064856418350189104417159360640752401853112976823355734004587427147577986084868320782703315321529801386101135176101872916086401009480490029574027273241835040287325616245402415240605963515384587230084235112946806584388083592245295778215227315670447339765590207436356229915919345930047188224535668478346811205639457463258265861617063059279926857208209778563740384517190306275622159727535095872067355386021291411366464501294088189527877278886094089104607617233669656323926530056985071025816949531754872226946516714342174665227461331758772597005131798656770780174069060942994740402571292245220389829685339425407049285973164455543903573885778015716268872319788337840410877535634968705043914280960773808216216078583401973310053132262563460905886093698350802323466139701957520069619896635939910992146052696332240254591766428509422321197192773814233430363457933414728220174038379688653631014310727550209245098382866647583671277552962516794875776006816358708563884424437758739564982741080572171997605154198353134434157531943549930304205432023568783820795673505628982514224369667509517420143267098956968755582401004605306529125864246058547300616674572425152536175997605136193925279177973705301349743822118468991000745035776340720488121218816848970524648886814529263781723392519692456937343251400353255818678016011782543630332520285332317134637586569144320416786464252282198731785637120278205124780916036871872526258917559044120610984351747845128162052072027868956667990865059214589927362634702383724012963679642130063020202200546684405724135382035305723859744915282436991083918314741597121807641138849682914187251779631190046765247973669679517357611249598763036473710092471564248134769956172426026066847626546596144469826180563449562289871377002357769785569198264525060643637977519260356573092713898864510806922939018443925567876875359847700428784585362773512143465144660876545974220637390008671750023183863770162568396809694197711763837181494837708762307149001506879693602389059833422145885317136041860181293076232456608915429809011979469111417795635675885840984728411947541937792556344278546966000339965474309629470767778186285511545417961102687825749205018329669999369532732809187587927455568763785267712491037482969967547475009136183313847155334074512104634012431130415112454672997207240288873484763900983140012988283532385992780562312655400366833464286841773538381608249814883042730076145872168877677968910553859659385891102054797745028018874552587222084683618876250439039422664738419575964785939648098340553396977271214743342384420832484399360442401815788954940743797361466687699027485687380013115570334666092812927570577886483270145572697957385424690422979307887158770391569944768834553287103576694388395272636031916959357290274074246597518584224136856577466821024424268631899178764238399792768825791032421494838456079235673204163732794989223603748778810675685317742921605821010260499685733463898371912213161642500974365289576047193987560083339450799851724522091502059066008585324846764592687446332361134402166187058100463710845140141885124311404443188849528600538687424995659066755152821741492829115517773881382974853421998031966315652358417087203771857598278334270355922754935041358528692341687730384746953584602721668887719766294277180313754330309692632067677163023804416000351096550502995961918227099553259191048074695751974397131504799852363753328278501104041080422059899252769047996052257878803333199432425870963296942727044584521029550641006766516879451018452986701153107491527500074834633429535218476829488850814121382735596377646644428786303174078196769216300823948210279608692579299595192661249338334530622003270607354677434907915508289004225655874546064132377390035055473519731618907971978993179400991470442202109793282387336849592150779677819391928623298789471989835899389049639517744711278143499043501589821914947393646043527231589248598872889557465110043168407524493650247789170973421729562084253345844173725352347532087387242998689189918822304176421599403980403756989670316034965172421767771315358297256112250946882760648742660860416187093041668184220303085803147394353857920000794596672427418850040173211801006315329663937149937600812436062258850435742093346591755298788714907627831267650681012731421580093535479662445409056765083944860400059652250458800630431342401321991384516461761764207959515984870370168263975519284698956852992221496673811798957426805752621201033985306980817692772166795120384815581571804844715783314543368409190023008907706874096226242689292646576820138822355170312314185420893305157725870081437602918231108356476856725260946976665487744236271652667874441702296383830912017557439426627400658867398296178362017693815320203518667859315310168909717566657318232583946015810077897402228325842680385809148552518186436185355595376084911096997384695301157444802066208633666955987435110324031605399309305185441896030194698375206634643873651160669582907494550877475143142516644740579705064367340060675791487069754423385491278543073763752805725025847903331761842672605305856491128076436917091433885423992508575665676404443826693534248011566403788848643900959794471690159971951314396292041980153582709948383671789839014824530438606510496407947996525210482737330416835305067394382376534036912857678928889183838478997863484343932480601685871375742172865918538591560029911049223053629113644879371415871720054795644070980649007635638160332055487602308237073897396585320929597752749263899132786088446380969310734661216317252932080349125115932622287175292737333992766731891367371079886619232460340965679967234134949670252214007543471397517378590751711130893100184706604033386620406579147525087054191959008274633273434839817280165207491392988588365389190110992591581678096336186923808308229601795835157323032945050850201181809698523993038437344501939185461410781569361326355878912941878802301554822192951493160000382137657502951735845347141294874276636119221796471990689115548839738015527215888537737456491335875269916716302207785819285303436431128284992222950894244724962080877572033458096661923153630706121592744273524790116250837602649651997020862700851053043139340978218661809323296522007008502068757427816279727335560188709781964249552551358033580348598377487893527266355375892238136559134048908935956292575614911285559314655703814258376719022295689781619642824472346576646362881057841507222847302321150530615952498075079206703882091707825660208143173519106234600635415544344382117956276488228199599632769305061050552841837767612124095915680744941464652523768707454766551959910907481403490305627142991086124111961004097529506570579553804646951669511547859630913808828826910628852821538408421386459059311324974911196360671868356661815716776718970884194575308258370282948088911103382026635226233332300123188613041913881812446117460917922072187068012846616507315245192956719826100828581294666318014776729714379774207998533596908531592544440784003898210884047323135783485891162927375067552918328790343736145103176685790898583029258276124914889021598590282013043305520251480831072832484818364285621211209769450485648753017710592793472683100423901980849500480258678456401952997043302701015172985589038755867824166425675700240451564505147336419598298100132592549438263995854942185108079302119778171815404098516098652954370583922749376122868367399719623779402743500617329792052512944916744980404267643922748283235581261433343249089222387777819357744926194264499552636534951708519217012282005111128177040782383536726476160748090863494239162827331502730914822279332687954449221553277872369470764812641783323188411930185856200884340813124089028662848468677317073982764957719620713614975967728823818390020634638763927054092707297909621020043196400062848351282433179906177430608893373430262423289413199958489595554701813442726171958284884977790567539905964123730787591143232676077153396851331795893508095410279463465969620906701831531702236379764236784870228407368675145981455433593250964967582379492232057094360845985874976227533616496022905973849800759269206935164733889810578968636440929883746350522324392026098428092554320085810738961518504772905702117687632379116907275576373575895642855713992032178863680623763327613246130664050993239726786559526917858047472237329454062886299179395644574781273625204201487179645242211186542702822029211909281063690321675566114707560929520831135097893093271883366487976605963579952351850098329013005265618033611680287473042430091660373951483004999056321432350579222949796496820318514368999354007135809621670144972825983086127901913954788359994633115333005884426784346583406134368927349641610184517220335449619105423028686659165121530713840826085898279154380255274340910145362293848506440999431418159385796048720979972043694495946544207053506067069247985619452495222639395286445961091884806134776681518734082358886724942905748146206964858319161477553586222448897391101649898121835997951764106409357396567552896940152219751214247131908024835811774544150454537845348126270582376358648808093691433971999183561281574269354726554150006536669618443893006794977974647756211528409016807798629966552090917885252735222699673700704921332056710043203141598831618289979122649564198581616075837044345247902689705812023012330611336199102841172779230811842204126516761322269128676816158067091454057673375636879364233358924132350503792829545527419435373847447792992208242180532121434225130686391699978734862391455434960360525765484985453248405883763856959994932782653888643863655586219020753572219373784101344082794564457514981175439228911340643262337295568636658675682741346801678330067748404877625691934520057157136838105013911214444073456046826082735061536198486396676010810469938251524437231157614144134215901376045962116044590448967462439418621854229203976432091084784784531429016494979999190446385233396502936389547668382026759560640013287901463609692949639654215481692594856899952301497154364135054940898471749175380328415762878745457877757740351006605726699101347022664069841599432326878370247369242627943851007528363663239329173132954746714832091765073846146166741759814251511918300511454598820552248149851508187801705676092662411113694693501806777477382991320131767927909900796036313096446378953779676758500266844918804186231520763753794540469269588383822672706436141902357078872141024377605814158625233309563646887145913033411220290921383730311455083579329848621307505402069106617889900178325657652582974720660567634068123096536711195848405474385751065965360506081557533130900536495797001454110604253492691601083461937819582919955686475056802210549431998442141237154331806573505963085543228627043894879731380000984686324906817761056900654373509311015207999264386189641543100007370228167943302361594370259599960512896868239706387562851346667656832673059448838288812640405590989473462028525659094470353952224009133900433382640350952441581102079301497481602034849549816065235741699138764174594315504487240224945557783794267769556256434614212571494756542204047791189904602126448700604386413472581785441754321644580355857669657952792713237095858499200974951437658601218544663892646752076244432435046240615118258945453379214243829803932841448830813225354721806629227079419244953570939048401870727267817117148738881003508925323384345573203657822520893557561338254800590053824880630287823485336757977411254676141301634219960532235629014776644932462274238059604389198481563643436736852732776504692841104322819275087969607750108032191007712902864774805687457199775342193338393611544022545389211657171043624424026490669944066028987156279915156494411985566270608663765142163574876918796348297515301622194853932894523456601680371749329180205337404980882784564405260748336708206581456257074732324811925915607027636482102170171645983918651037572646072688254197888379475679250776412910642716961403764679222578627509533034410164864930821331662341957271520891433402627517680732348218633682777096096899842232426905797285428014203544377783121920296740775506312626146145080847633597000481866750239657332843751047780580306032662267005848762922125129144512237761172780114713130725599048367196461615161976456230519530389501643000318472576324739407510924196843984124889097866112625686705862039220025387788218698564324048771719451027310322146711941987863146375143478229516182461221928218329009388967091564661935487727081911197680662180141636480136703874693729709249240244521836043778263940309116283965387567680915521008538543392849996095768916846403320609918481347548226712305277746872970576691948047693266412081908697516574709755865936373307960606008316650899049615910047012392289900180199807061087574030185663877296200588579863733512579102376109429258676514884834093739938991135257403934540603101397994024478543886137675098034824048554197754661089725915688660579330691171740082922526981189622606613033460401555528303651076191522786348763777214093207839517501425178650760891957100061027641577791981152885096467180804399521553674830859420365887399065526449470360128193121046152975026626054265754054768283346088660473363902200067087684702334501235540348949453523637056572969106388484772436127216057647445388222705520775909610133292079575998115169452727155997518724078336083150867961842252062443502704236046882081892298125218250354343310739844204089114470567843295854278826759452565088898044100043476503626562290689182203082263093779476099872920393108824919750638084126922779460769021725921421990827171623264292999142588400755640557711197053672911029432601610885400792730666559168699311155612073223047137478197959990224057868671072684740448484592254773578278071179273122954950086900600374683709160128249092270502185983085927386747131455101920741717808933571605802734115019907509628064631489630737637142744835157157885978989228186985779243777697528098665506466531638786391283005138479451884736521820734679381140874762190051477540549310023505243058813819951881339571810349843756910620366266644169846846764261304570856771895760690654331714981249541551759170646223752478681911153697873802308101778668465875857241590570632265757468408857699945808254000093576359525466149126080601130477562785433218467185171041307355776032500739012239090760905821603288715668034647102953807097436094623683905664460994197010065350703413946543272751231009850773441823943654023712381028560729620570188160511881519235106262961310053772391390694412455869494467582108960231822759085467227715221653869619847841174520797081072727962353813096319835813330073648414356381847598432212377373922077404721718990167884909392134580426611292115226483422897967657365085340304974626134261413876066714856143047996539982154459349994925742652497326702636466899612813802314101709822605124091385685920882503203070636028837581658711672350797818807665345440342370128992412512219174958264315440759017035813793447320455183042511091502811284786366362831354057621173956878040122176820146626960689758761296885080694154627310419012300635390443677087719139003175261858355216495855677026542098237580488539029654013648652479131527888973221013178049532745058347185190926816634998214843577090840752805311363649398069629871477271912491620679449876274796606320629477535168826202788918481786640913487697758192904540256511263134316645735369447616307802270709841112993367403376948895933770287503464841590830939864436473543762936547555440274231808168448602303147934683469991269687235206434074607409495984928887784014607193255165331595083186814274708356629723920185923703122881322304403633859030565324512898041554332564253301352376369288740638728270385233929008089961523831729429547431771306178766184938389954841308496476958217740538446099066016872873903983971309788537343589422639870911302510754122663925903664136883156755015556330615638981737068607833945688120881237091561570434647047649958033382943383631870255482110721510745233644789189492119935666078512032331993831681389837077932006516843848952284440067854282945340211293052082035600558289080111562130144151145496867394027918587808508867988254787686534993533973461517468765310647619041779429910640659997095340662050043622345721996958995501534176688930307110625585693494083781042105951668621625527984974228311024020552511203658846496944410894239863604761701907041576330718954316031295801233524227127462114048118443500716417024982551159995232404850595814680951769801033142717664613377652474847560287335538567539235523125279924381598820971340362093855178361094014312003756034883139712246559840120594058836383812786997994684881556771684450204417496816625995242431065167565035284691620272368064367316885996268909963106123639722485178254208081619393566579085472041908129956061063051118996053430899423309816610443782819002219545833255108477550326080843676139980084510956192399491887922512649814749950881883211503462990171371424843863183090334675625436472234167510835969375466516875345561632252985966968374088098397279509120961562623772826300161750091871214238931355204726998777352411348107422641804811990646136646956860580295055033271442454943894594429202665300031768633020324139112651389470355513584339660722269150577495702535160172555912676114352584623276424463963387273932802064880684841530331180544675892893316232531381304810125125509319198301805996510619121440749588028216452685830860632340260638117280942881181787679112294993084155272410119686249072439083816522348069067345267669776301753949132863777512936030846792221032001123286577741693786702856887549845427015904923290278376279793551929378569098554567759943161119407651842508057527378199495411701512387851638548923808271789749625551670759584715322267394982537720633077163421591291306709447943748313903541647709368463855721267022584274386831376950925675562310276278757819573233139766682943021116449999409751222465783638898933229285303549701024731737152935800815434472739918248181389787234293221806613569263015171338322622611299438895028010310494344316465421259146321456956264706035693355476144301750139237300833165840876120173572720179548088635971212278432185539198461489327838096018272884473816613806375669464231504593486931418453692922017796830279642819420280524965938678491379641264585769612198472355300624965424932634709332645117980173701984415060975775829388829009544428474271261028505417357585829773466328956032711625363673210833374916196106156269984594888651586540931674827931778881785749781453394116017246721707161382387060508956509221383448311442908217733696070533710735941864818934803087698907015845243299421609490859267978955118743311211829889339374761908675633100877629190784510463670863086392794662744673177232620567797096266378988841972164713564531123080986743344077268592746344864437087298638248740046932412571714174529278541126871627508128717981908804592693451157657876326045259052110325212543773980850912281066184516651483581617061576223541943149148968993167507023129944536378707495322849334054698784628006931815656848679850687385656435680477068808524467135548026377913783562415233340641519438797280403389693928724418659173800241817560192773957382854539719131033203140500359449380380667262990475338409865576652264916690618761141477568570549211407823804708410825903563908101783655857143984988513645775067963522820941755800372473365515882926909701934042754443491593935126285874800701988286582624749571507063865797783328883907635637125515096333447172018480733465156791206110566984406134443433831170122880426343074739622587737372874763325590989763488245634737811389124196035789449320251198753350296769850454216768486318551575609946854356612602372039202184981977361828281610574825930915705642830504984645542498394602457208311122050000804289834531055886347421858481497063865445117834840002082291458515093896401544039166905097968613439606113530887225020610738399419311545949891650594605540159996905840304479628259433528446019802340189403140168524774537887983021984264240962448305442656012654932810853470222354531351833609487829086746866298928102771012683549844875553657641324747026960597655069429708873879283909169392201887570284481473751766897811275411635340046978940107829971395812888276227294910878803672581753836196664976683687204732034927470124468953299587533762794132490190866887899356245946413785091060563063352980280082478353019712325745537957191660258075265924927997726729356315017510743742858982963596032547109509779813152045830155080747218950770533522538478208301391859147428274827303769251214999173650537755531393302567427003829574865835305415498213624947666603302816586301149641357420122449745156995469908610395587105908711998212746313112721362257529699554250671265451313081466574436220092792349774765443671346957540027866305205416220314438337673968493668388133468707892426862281276447799205379447945599194370079819265119604087030862806652500245295732869237697757856649142457796159042127307924321012924413054015357357589505333409691160975793032834705399779671945469153245108851684898185586354421490045290116293559371780902935091266819807041724009629050218437150499545746450823884711902575033726230462676849716748196581057152382875051640347594204292760749799840366120595789994293497097152900402739783201973617812541882796181111168945917115912489960854528122170276269559649350966316085626791135444060862878098453951924332101596787756833024692627193532694841228232570219840047765947728047591060077695159405998523938745871846133279350800219602683247836549439725765480667670192094660851170209350579081380374944164382392640843054019096567492517842551348683467568117102757525123666992639433221000606321575792428715317447552725561082042854259264712511764921441248061864832325382976148653054865683175297158083696524746133337654889911996745235472574160160247427124820748892434732597178530960553589281045788034183311993849685429883608242021342567844713255740191041703212616202349164134919812432690841372853190015606694675194331862014207148645752496057191264533107078146517776594955846433381133523525168804977602179939821770312105217080862689046004848485266831737181274126981932832346677441661688761590671702206563831404136750014147907479576239232351243848046893760660976966764248468367056565338834488030300438896547615363109671426664893532141996671098668809240735620624353863314579896998535849373841456627454381395640152189412444450325546243854836817669698539662445505283882934732056743045184587970566065392822448455362105884239003557580725277648021841876813496045856854119999999637086395943690612021518585876400648307744318952919370899700749756544369749721866963035202586234080880150064644976342297628429120299989187360922484932294295051302534027186699992471951814202479673960612304845069260621301254703554774639086116253545447021608707320301611319260940774348194459186403631887447098641947147981180160626613500939333167084565032793310898592722286475586172423589109216125819385926130385867735762161944061437197840816486475967081193007496779769061834014072491794079644443974274658120840613341026426708216894199570924505118615936947228936039890687892834152782830765174202724007511274575289011386062708566160987453442009574776026922635590026907356100265463296752994848403547988814609971636084465708259635080558998628278739203298779786119852224367648725419972929996107486481923575391803835628851905306222244445234710534172503049493977704501731907973397584959271479299172520480051955198893708887723970988413307183606690992617667302046324171123372922065501504354527065873348364956930036645973301813776251683711955076796896266710161825344688287028001112431153126460886845451514745596859673816169523697617774484013668404978429763178261006990664741865042394108166792596784013346192792476611993755495723151689968194209270771732535614599661713598649099790178251829516156574008404005918963733606673733276009142249869821471312819466928555502824663066932147327081854005860165686497052645667911715784125175838105354615172597670407946603763450295392684999326427203258457565454439077595146918242617555937379893289288932898351992696939514834883883538767466128806519635449692995166106779208653253209824665960042529543157350954058797516115658557059326575304525439082208415291320754772629322275878907305415041223674815610418291283388915443451692940351299974623198124339721435361049498496578090794321342464785396530819353041542493986614194157793071273905188297843313648489344522240695281637967916838177727187324799572941837011759200579860870906879324623047593753162700350021860458038050700437332305414561221863545890016388791956041564704734560980297766976664953265873848924925823395656940984465741460873985541434111468614448265190977557012372258098753063088735365718873649828806085959860701237597249423457697148517482902550393248875819401418867860401285387345210145275794370921350580697027944999982307000697220458720762509678218850076269983544083046048967653805916962804962968541934308414347724984040929902900340524684477774233673908852399819929937456705508097657319211482630117804890344960650264187329918724497166318178516102937691515406276464322244189003518212461772912537458972915142690194850058642715381956503136646253124008232758126120395823319826719094385986326820888886553312994073947338544384193705249485577824864097214863213458073214109697555236269403061695335856461815650963004505992791505348891545271565198346633688308711074200396741533837459791092913651531944638670370054275983859783098084289508727229597295179672525639770000473374251692859324124698059416996617454039716341628603475521290099434297839138625643817971342400813935857184516809153252151874506253602455903011230226707857171375101381005810201411501384954434691900603585670471256071492565541921376649166922887192471785335217016998478725257139605535084446721017112792258116410702865695405487534841221402773796617483263038872182898033139541230289611098706182057552570106255348429926158621170856412119576791902038436532041525746181163766011952822270383615210316764259467519977845197017092797738138487722156746289206648027035261320623907669570634474233602322885285649996654137355567399183958964919750004735603309151379588556225643459962738777218815994109684279932434263188222040683536335608115996527276650297996343927069006479525195333322532571102187841216791727961017982071262101102615708572409464270112345692407051125505667089170188945265189821066104274392290705004087663156703205229499190128790239413800718868137210224117241638989195121771138616039740599367333578703771424202148388975333553627788514924042357876868958341099510214905962754821264956113217856715747541106775031678746451160472973418843309470418686508893745547990262755974928648048426170868641652358468730488975835182847389281999309194998768031678690629896444640117116679825778374113578574327921354545019411991152004499586364230685259572376037353285120526087642193254755116855084227618997613905625166207413860164221110440898798420675127535009551677246132715116776520524433241998530187226357892709169612495200515491419727707332319121346189863102865774961866258320230851260533806062463779176369884326161275801051166579936765327003328377762896595578753980583060841043554520336076672923781849326856214624689036860173902835658366388746533165180137942858770010739184243800133324345122372485677788427675358029438413089049164674199054094650815491254169331152165447167484468539202545151300295116253486857095373655151736212117055221170157934997332546109859791032553797920288813976414644437434971085306707291056752352558068985713646194127885976253401382485221124259757604939848157046461571263744001955911122076012516650114365891573991778420532343330726646195827241575512078112626536205502491028459610061432289540045022021995386089539943084302848949659720680441073910439824090874517157961449210604282651812144924056506062171890818264161620481792278941973612310075208091394799976300852357324835453622981563154763432354539099885171670127077211074649381340308536490253259235899982670948698915577896198556194527138134551581471270321879264044598718728150245578340562565964009985200314843653004680115237402177123546287604927630746792338546922362930613945410453564827652595854445038807835870110293160190722470917570005265659074543601745512835254015267850483085354574191489202463664515896268285851484094817751846517581989206616631467962290943453124401917118447309934623055348826022160403675610116863713496127585903941530160652004909162633455909673025201986513566382188743586830835237101511496357682910684822164451448010335574207034599298166175119938012797674439600437144646995487655481305320533010276670847820944638322239188414263781243176143749644130495391702780575428704600398459367812903193760800593219608444070463876562339288884585789427111990397774715721004779912779973045328110714953314015341859364576275120112910811525695231859185299660916498737405861634934258971589103825474257923925493564545966741230191936776587142592998509287667320750573899816700106041339689268084480907480820552824462728116024618889550967287605933900025249659349094048548711760851316496183349380903989171763903643775860715021952235910436988138570589086570410650570979397628068942092314261290799827478451857598349206761935314003052594017546112188964286192658738994690462951865302200284348431374411515217771967670262075939574051172284282623885918441713480494339421681709898069012080159669884025584607487404457533412453204797371817262133857794061975078790964140291971677663731243274482903553503013316449155336408468912212288120320369887737059295177041596863413555897109656752486130970768224174523714465993520709599525232320483093847363707565090136826143260926989193112721607834131228713887303889190458475349312542620214548284916375159089772886099332426366119638599348651474977848596574642486518261321691847332137654938000111363129098733470775720815298799239680755466235713803173503468944717343281429406257381135244825882761202816869894372874271640326883737724465953334014683191755565823144054520629935187100746388375785645526952103309982891697042641714640248878463966889997233352160060038151242664887142484364510181725105829221124225663353130933026173061640628628148426548335514735769329125008857110249937784842930605273464514339963225653397479737934136204678241257009232059856924084416269391138628263712887597434361107086931897730355924501801287341243570304375111548914804786375660563291446512020156054284912902858232385470339595694571126983628332442169346255031773917933524343275314817435523289286268098194965539582209189138635394793848402499763927235299214254713576914128445616100074701320159226829491587890702648517538359721645426531283036027449324074324302340890083774882117857890661977894583474714274875905438957487883770043515176606130813556884887984126954885898981304971010295750124058278521794043113377069415847712721297080304744400949007840874730242250318132091191873598213200346828783832488587855823823985657997919202557197688371234612613456294939895234025799216814679144553408686054366723919624175007507576186539170652029355726601679044596250921710509965916209882842882831954661801565036637150700713822972420525325441526008995286968233534098086959088628242444851048664990255222129350068406375547491815739645527048738781365941225267375987728670226548335781039665070002664571235784694571620232879495956802631944025738390440168204303618816645609297062968578215979857703455648592071010006646199370669428855488101284499144810067845535560888402794281400948823364362921337510809315745611989938454748183259179336907857764692441538871791608986051454401776126400779315188014327837839527961237580254644330264514621981282109527134009308579377977351813372162858957372262984062205333207092596808847778878742382342429138262724734805300875165747575092087646410078708161569718110380514076664193432102288252013491211927613315408225521871331914330004887208508334484857567221150564561885739692714667389843147391359107102450965746904887186849992750453566680126218039385785417533491944988277518161279135320476299004050068830243930509946824851950715226633638331110260025706782494730710082614913893068448190952722722767504733584113717881128411843498740955054340765324030359486772268288794411197367670210231489309058467626057653366054472077035049274850991923967459169480574444662786457612297616136230352498106424437859528233605754621740124420808659742459945648108302409934205681290983137680854990388886579130600967989664179926483412196081742258321890290571379404442717036159042759734155608517536895634334380035295279244423134663130215482459032588899780338329127702145169569487555823230492516097240239873594422630479808630020051658927129203095051776203941741818406769977557747376918963721094505756554477111671882970919526716586307887072666268707314000181474212423229762750122054992665023335471263589810187789069889842623275473244234122657123753603241617946775840729169303414707809160044252200974214287309447036686888078448602176849418107157703961101992723634630360947793461233714249827191584751522302000074353525135310335169732951994667198515374296682470381323330570656709037185189519769193420508174901140615446708358399884646911240122866454331135626855027829869573548335850789107311333784246784102263660733441443101730859589365328543186997058199400755245052873082321667974174007692300058242442409581233085036456535817333790448748531891911227682132744267842737965757307044427443686182189999147521555248276192639354422680813501501981542419873576741593849043565923076650915274996608361078444922264128669061028143991022080935400854525872990796185806446716969018153575196241044653367125805972107374802214614631803538330204081947980992485090933020573011691870190918208078338248289263084394613478500472429395342377761538466707700208498698301253395100236170615540619576021464452709099116527884039295648202696170226718743299538614621607796933905671481023429530706847685126545783081656358159108031867245534707665616121718787511697558075334831263995261016983005669846580849175303384595053864183797801467999145360023106737076205165156328456619098540010384116893351640214243516206628100196910619074345689684286357995674795227850972856238295232250585948907874212480811652524777684002167452722033999298087587053976762428900337350074069127750191867189593238917564741610310828036596401703594829027265806311551079616704531969297004446504122412026094999577051342576252899105814890299252383637191501132839886436931155422317693516428387112284687453670788166812406687410033471419087517406816848172463422177518792376198973534928579018859859827183355874196434986537776497040225082602343792347569077533629768838058231788430835579856481007585075387403949243771762261344780337869597094290171501655658044545045352534844014153849619859841149294088406090411436677758384555967262695534626227399949736875660322968602991878949052713086776186264295857072732776323438150568344734496327423911179983949043729644450709143519514606173914786201545561676239482791267783453813635313413396282211047299433284790986038961153253843319449655436468091522062187584902010703385981308423940807334865735080699450835896492634249808641110653005137368890703748236415369665662293321339940412305492215759960308230575572764604841344901813900712207952549602173717370181830303545721142611219639404925495859710800290414201916842862560653627677185732317362251670016367808488783271566254625032554371556054150201889079658370852648476946832731633396087359242116004499957008117358857825788991787871597375700917958070117760797979823839680842342752412900177263045171244122044793673990446799233555160481731343741536306035338894336092078900801113448718706424967746604199635388645612702998396439238802535273753698419488956038949181310061298890613970171593243647982514000076237302913137582606704141596690881698100027047742298891637310847344769913352563347376669706545160058600834939742454065416392122420928445687827062188419800514020048597700243626408850968215616536432927302772603264375910486726577331345210597313750487366192498340478159881871039613583376216082257689428227732693980858793487225542808787956342751142660105481560466674907861718367222909673732985640959689079127323361746135236684735763410607577226887607195727161600726629525858707874503319477966678027862778335774868039725827536902824655275452364716289812193065247802395018839761179513570197157664297519758924956928857366029221827362389850439756240875573173536359473087245396274530263216954096764134861138387832378572357185858947326942924641359984961208797906452091671312017052597508206252083783434913775036160034575433448446843538692676944645318981819987240049267898123457540290539620851964742960993276593246744842222933252811005303645071254794839645821929812877853283443160092968243698392747432220481752858057208696573393493191469989698389148078339183983304359135723495868689290374337861966226184468494938844962977967818025284529640490943007997734288085133596004504668427543695919628218702489101772299961957440459020623988967421296250373129693445228811569044499466226231288059384951745279928482072651032281065159740639824447389419786273579933491074227115902554184978563476793530167945423443068130734853792977245481519410476586097205970460527533437293844983148862244496907354519283922369940755430420174036651852125465761934102355419661224721550855409164561813849285667971450400161264812436869935329629838589500485933491861048213046841007903784348061424866221297805638337462328531618174907462196277352337279352700797947649051693544370351764868142465562289006600240580102624266043240321295417622652808676534454701248016852783395954609945930809883123866035731499247698338193052906648302163051498542768629941569291205814384136263095264651689624418414892005275897569670318246016329753851748381674102879020873541805738923517362572893156476322919126455428548511908861532207532356562036596087781036552482982648562680925291591141567866637441010119241303665658538920933846934831607856948795596810995749887930358363873553774032582489261072575707660958727048154626321955043208597938957791752133341277860196187881899465577219860795276387853895850866311559042945190906921890789856065466542394929063164604400824863616252494313389049164957967351955389345722298860850519561467489438598354116511960465181735376361219565827984998735939063718144130616697161163563255363154648416857192211414976695593854336693585718689923693475428738954464947978180960948482187029032470808616840285491097630910888122740515601185682791943486933149533251480927684754430635857317846710926061663989022742869282608839405678461465334458237860573568781099294155525528133047632508415155865929232023097729746197038198471470756070993729951257444113903803626225971426108064684539537684816278950729357258876255583159890768813877650633610970198497855954876710866252445604984677130719571841317060120182683619308789652646762033628781498279323888388355146454306301294466131727641488560601374579728899347380105477553060658958339102912806431227064153797386386338204226124477946493409095868606071869690136166696385623393692506327927112824538969824863074180447697731132001502856505716197453258594241910337040527947680565081125748358887995832806995774931415916329783672062203569646944016518447597655194346261938710993806043946190785176113406130600574755566654645176953345280734430279214079646576974755307366613843804605951230380326435784362500545926393899144883477021722095795591450399377814698430263796749330043009048883985302720462485704465017513641830117784911453879497924264805811600893376541939314612195669459633693131545372736611841433048195718524065223552650744100793606774150399997626913699206016815643911034254275763191590901509428564589066113309395859980859510365480608905447099925104607243473718677137880833217023301174670666591028913900950520845882712744248371402935284518986006025198838198896223875380661122151158577676304232697288128556267273845338132493571692036701180700132946861204730093056403946705723971170508668449851957293973975552219625580018244945183534246988825479999464817026169478349918883033432200415024846782230308209978342267392722593343216318939625440210901744508341239105381571252739899102120659066463872374991834716032622161602419113817557619974872543998816734223334954554806450616567686169079407413347401391282077565493121965081945504824789246269320240234173126108623181470672034436401293647718129609933576922724418277560861466171739976704940108299948061615331470552647517091972069380589417960072743723170280267431016880246381352538753949365122495890307759412248769360599074780306975430112706737120233530855822550082061334729111790116627706323993352368480124194524394225647755761785110108389985959468444126872867628264278847048066238036689475238389189064046447341357015661047947093763621813351295368891726478218506878591093845252951733151330953070073397897188876157726605785399211781810651501907345629616225609128271217272634825467020130055726080369345254101725635675909958365558010547509149215977934566939512157367194826304316783886118099509088621352206698520714496853117371389535748358716584060949293691768716614316722475547880785463481557671625526584082397274544326138571289484059030622713083761666875248133623850419063198845000595944436368940424224931538243856630725987514424652145768680774503108085972425915278378493133229983775231917136005943487507412339378256347742795418131938712330248949080004925900210336039512378490981884815776846992348043649043187325694162014623873003798373359434534886240893576038530441190458349083790009630725599164759730662831000851257368057694648202416625683440715637461151454668738088315889443578489423953704374026912934727193446304569907319042244531970925353331902639537950730094903149875820166191706930832583722925554107994654460433587227356583239378763440639561497535303880338077238083249712187747860321948275726433930230784707473220288124906218744619889323414516450210068464608888397480398213794123593048842198587305061474376662187256862053585367224677150526579871653895564401924586919988338762176307266637761457749987523889267550084196820647852184747186652947290051160017175779621306756256476562928649681571431784706008195187496386596824809633922038109076507934950711973559537476188214570700038237308696447088998981256225493211186361436981068455186308050615823160263294996756897437641580756576226394510054340901232352285105653908077068088531702615167741079033384401753031754515973152808853308647526402451489507378916036281674582830710157751050152716833047888050885723706812191079488584008600685923589664660859197722939019954016874683241898093878109249194164792735749952548072482486550426136511816672077718935421388205922723900548350428868417816541205177997222083046949375277187801238217781139344441841474507434480120113115073071283102455572273625659456224264980092609369917266751271166000373568621188015893093004920963217586542524900060217196143910511965500721801811487835772959702720811922303843158159654688183661601706058882197730364937526334177699954401947050519666161886641854694395983621941515206876214688760749285496685756106765725071609149971627439033975245182224679006441695118986830957012533800117133661088564035991115840225998744662798736014464464517562684801039765566082182817372340570174293701714214003593838416328351804365520277948708950950861323690878312739387495259049334943106659983739054000396163133671288092265650110430063477529183517370286912306584083109110997071363070899801566061894353694265562306254663392919659055513208211417124051502017044128404652007598765553367318770979497830754207657044013485255355519546218231079743080022430400634989060417369480023399822667809413204535956548450904618977208294719263989505203493473920434428452790591419886374322919903477023603474552265761967048673884043515832783822807174177074273859160940013205029742165245813279798964064012105933324529492078891132627433525289126951084674007983938610704312094275526262660304608784560382983334534619292092554142620232079042331048412978766083739669548650358890570676054007813695741252053800217296560618102663616733050371994142098829796669844149364481140245514489029621716751334511997614955899207284134392652429522077893801978564683986090624997164902723867007215686667334369716471835876208167409232502616740608503906675871439098261368553722349653772198693656895349747308480028845168804530221797576256570969633473442228018679170492010383454385247122097098117043561578679863983735245242116843280346193806568106220883320717717057667546109734090260450834613172292778733886482335861045335325892827634380863260211664355570072598190456839733055916908172498197139869231801134089595639228153158638428525762588808502278377888511508147676700883113299331718107477264145030026317904714201323595125880099121170640585529001433513361755193856193264522498702182776320576486303004884392681991776101572374624706342106387300690801690648228697590312692933013979723371590749944907303460381069777246170815896542693082826830381133371818983024040209975273946998079292293897168643036498093616423247765547099107089316260306561362435050538850790761536431236028459634086984657436491830715057644802321959206518735710432948406385110363413750253540945986463002007924366434709574125374392601592126929271549017196020902961248500146465331558295860448210297243330395618923021022588684106884636524176612587459443493351604226171080494320713078320784716502202030582171763579120336073005210432046362975717406635680713453584671133620505241315534239753315452899335181965480169047303424643931866278989697716579714805278360357952831654244301972505744889606651563719510846009514910156980910778577112915029953492306537394493118940586792478132994525956627701300343824274158613588435271896470235713142280411143160773491855124659248033150282114020098357375149693454598195087024401798107521063246687116768221481094574454265341285361404622449484944815799165729819222117170091705650875359451004083171096463581094757168458357011025277429308766486253706173127613520332318274940503992295577572629996175035631813839089028420468509747484062990892106722826444402959289580766263230149587330764503816489667781423075226494705594040469193670375954651879027556089997253187711651385454031281743971069525617502788843725765652858009128073215925091724828813721428825917679782814960994730269132970794553472749857677523199921483074602879258421075531370671103058192760144324128084848268295200333824698104293845289402984735251549753208870801479518372235782886589813752241304527352565516101692689990675694879060064846636251395193075552244718198620394811603075970832729215342969995205010678785535601579406731796113862694398425011611713132316545981179216525446038235843521795742197424802456200860831986167119153114068035497143890973700028755208616735171283080675658996171565666307513036406725833479498399090591729768450170722541256196107591816273461330593122846082809934240018584264415088150572506460695744542878599710718552898170856281042998188697946611797737941928752293573599179995304959038097857738013429584652064578641249887678282581056516290560720358534779381902157203278446397635692359240517582165344304420149133070375997328373001980412418305585437017079388730611010543269677382737216141958478978627491463084001600018911208751465232388397767254267089980959678540938339061998311005528001693141671790335397714248949628797220698450953753936342240833906522030643219027218612107943339501589905027796397767902745989887923901072193595986587380955623061387783903013517330520346384865191664186503530066488649910974926864145354107012128020883493508232882639769109549421853742093650095776384068437205874691278175491546641032383889351011433729254513414644843970385969459080594594915853758439018595313307837143623545163288325857518608528285644225340239694962364664953630829294616630059014212828160106570229048278551533780267579444771144437361396164255982381953120890301047281413269410809493815323778829448157824584003895046556042332347194469653507092757047097299300228114226269681229044545014025548928472295707227244504398437691285361533646098492182707460810518564208617222185064110032776383300728337713336350354361271797361322338377306457681734591223049768237416636379802348644313051046317244202528651073178492763497481052669313168929178522816842176092840646633158084108559273668077932337834986407269371074660480990502234090905920001595199444789044217110950850089034572432186190343361228947132297883704141022287684668582726141842288198120013946139754480442881902167353687716717311999355211963141207937349091812250925636668296231744274171931252202716899689926872734926190997184412013132005800446504994555009369697581303812387112744731113397027843519831986974699666987225191059345996984618538315941955899092550700731155050684245736963710970373513719974372965779456929877951020496480836022900881754362181698612648170608609227458652463351709886611706792720648604451689755042184845959198916093879788775322823058704922915374908611722845983208572017656418213405886499981437956248156005588924707070074226084190627244557996094292341100656381179236214821711809532587318686080738679174744692924827774203626140930688482698896351372208208402421372968734832875266201884128485999343567660364211525135011387659894627099040768808478453393691371877808753178211122116894877974903253267649699610623916003552803370376123576287876420878144255730630690832420027699098910299502080730430685038211876728320513972538742762976254736647745013672331858123721334796589782933400909594024095415675342847166884129210375517757676102007557568298784652335509839901561345844114567130341632789577942527321916407782789922212983052779718734477998005942776093438476595697260337302714917848854126588895414766643903783756011113190622530621430926005628809233062998478500245887929552134419564409585954475952775375493903701816911643980486294445927452189531911197133605714966686607151125427192212794128389347382965369130153570471629944518042061418184424979544184647551659218524389403783293755856495771241727269164936745949540037031048130969162125768626236834996648678011851500291554982283446941891288059586738264065569089661842583603942941720303083566769123372814659513380600309567546798531579648191893931772677082683684127013378497777781379601048493181426850633041830736999899564892678279900791905653500026911926763653671093562318987162920638345611647466129464229365901229560977652648192498247170594262069571684098493172584039063042877424387843274821805305378066933929845185136772757654989069194802544245076645478890480423192299661543474307656166067836424169058939836897288586533866855272547081882646074517020334880017710520703876061840727019398797147936840995420154195688359043454822975610348369471657309599792487585594386467183738806325258657543061159919354132969308952948943876662236433063575471108750072687022903802158493751168129464174048190006256823429714345529954907894577075082786170056614138852352703658931888403043681284621679945729441277847085815174390259157554943513910496880127815815330513558529947502818076517368448991574249128187084984246639909776001458395259589203250846935871043703607786884391455505360538332847998778146137849453468624306500907537400251078834714925617292201615585554040278665237525942772580893038458596809747699713428052585996292206463642051088648251430265069036196230664939013138488467731347340396248786474167317292235166115104845452776437342172896357835350410291737787408709451936955686892011712510779727755450005645225190851109988831580372175969940830289519022250584272382898675494636312076806529394778537009741922511817990543695758384969737322715420976877744862412972242134394573697698799917928242423883259635014450185011444255665531571397840851480540911480005892136558196387716505633577180788469839794489459359867984864841806367992203140980322020180252632675385891461892590921838347130611227300896849161758366591193134233829406043913770751371919570162365141130346674825860922008982501607914016550633662755024000252385331659201626540942075772131629724830086037982820237435704199102927123151267416421905963970624872675264237650013107340236035569183053457020163187787093305377781238418952508445586301313729146302108773119330425163807989364001403364013911952021873241954453263192279578414063113804312912747423977689970269685930136714336616171279064709390900439798000152171194339643825970446689907866259962390853856430146386890742753937232348682664492575389438702383984635407361105159683897269215106026809323289484937725985263579476193225887506460431487252217053377401780406257322426108436202059872919094689068328858428189806022462789633753528809356203140676754143153457019582281047164888928482739256405547584429759530371219811984800879708142956384636265526441766444306659468487463342692198750335981088098414066135570087310942900728076290242653891477782950145354755268634055584508187277088468595304009985630873519108771292459734729773012809161861594952846080630515739380600095173560701032207003377396162469650397076794811353271030146571727188786951718143132768665989025490031422680009380380861397895407800689037385098551229667975543468103380373169876748946421302509266351734224539684114158404593262631499779710089028846365554593615825274922683319069755372655879564969841317142015119972021878638567667832817774077754663018954831979212742125669747056876715414030562554500615031303989432276498728085965303793831047131699323046758651537305260365427679233890778638536208958109349246840358545290358590514902553704165231377106974460158620453061458402413734094793682341610411681962262931905820726307708175687396616395509313270808557908043444237913797086212718971176321529623054891258715647513523820947553013965544779942591353226737621291093175160782725167313708809814100611322693549351717642224232702656011820903238281386293354507447254097125703810897642768140917597233381206793303959679001361132352561133356617863474927702949757634801479080574236094678582953854138570144131424471946849538849419226681776538005899907735311737765184783714443825904028127323722284048916917739269291407165251329299203349324309216580510286549330355270549092212990401253221504643734915130628354662824215575814216719043477700125366292409350690030122869524192988378472854861562062819480591303442616943672406468500613368930614968352844217326907995111928393112846826385865657010774386100416673241844540457526523326188416740029016559631593514203778995693493397187144618415348167301618626609993408129263009612367229178642506462398442072028560458544357784305520523796435094948337330709283374670931421856351747152213772851654136197292238402160407063397999041297745061858831366715587630893788485191033574904787178192449178809604049285929079816743356412084051469359206860786776526235617609054582793537315425608171659072922803116608336957853446863389085642539238964775184869220529294943030342211815169503390698880841402325162541797709849347100015218855481803595485410827778227989296712326542137924555112605765839326346182750356765328373137093198312827493240317836080249852358131946041282947851387064963404470818233882691764718150066558432709174695568010138553535198757946244836117599569504249353993448075854311568166592275740032017557299747438466296610543790639101496654423592383529451008314486785153628112703433140266009654447323700526577495227829938027733584370250340001322554935789801770106404867153546400319945695502716109283541025322133483046880465980544332172523403943424280609856335162882492860500773402385928820311385584654086391897790978928026966121640541062559903191377430127132233010280329252359037044567978035622343117004182735213950624800514755327527938279475997966676989747114384133896191567704689051101088390277616598796636185429765893920217012911189703316097456341314229177926774626363640154599389924210740163951853392182478573600106290891554872197473081850966462429554868334043974944011435918789719622605967071953301850348487437744441652582027007842715354226764285261424034850478338937123821582679025929515467171141000504502081095954518017000561512078762767155608320254203680824477423790164438757572637272831612331981212915227729257454014177436227905821269710959128330554719561983736873960753551137542910416693951309452204539681269594914193221872727820979223561629990065540420419527641158548348112807181533357640520215066968822656261324010181879353804734718096052058572052562731076057752543452093594443836877834449716538943864938055789030928860307678715981897959778425813945941057468236881144434434060253581556099239903629096292437722831071022370156935326403748236370967442615788102443981898551401345854863233280551949860763595196623394482367228609732078300475765011842269986976725404527195315475770598397757969738234394413989972399332136114621874053107405150416369605136246545607903806812252068312437924983263639676261904125789810858589310923820040918019635746033076440778865415900520793465480035554753630409700121019523966332200242110631702437186214311607239363843587171012834458479128632666380056694591510026686126757324989406489154523951584149676553728438502493629398922569799159166184444379720042415800250368976731794149042202266787780629400408588257803462349758325649859270228418805083661859427204611124430510270099390361261805133336469193789973496822651438251275754573259494413346448597854758394630435258807990687083732348888390498753509058137238941768625425424847728451579569666578586533706725553452261089190323759517025066455402531344819370813714504484330196261211950645069179167723825446141249692334693284624287890650149642421992468939196066497224688806266767130450390594639145051297193036230653874533519495679811354344290017857461906294240341325286127192550325603123464156000156223610974443098824155103802125379613932197786417346522713951124647199643459239902909840191193210392205647643834835211119090089336046315142450018079481771838954299127424521950938955463858659701459819081695903694388857451568074344250037195002251085421872109884687547872323679249162509031285252558594969571363904868502337852461591529737825894137122973325976103984936478802912114960807305679930530001250460415074338637794567104196281370165085921146443455801055613315669533334610117268727551393592217258958513795058210907449437553928235492509695054708071665476897716301357173695212771553941084862151152823529035406178606786322584508775395531757205594082491315657652095327067053593993341522244016736640142379150468816718055763517397242983665882156100652543008077579738504577111716231313901248573250990006911043893434325704340261365914359843539891931658454273581166831477073877957390985550338462888727221571235997965970781862652029484739576724349619271650866681973742995630888136771880075804505702978294362882522008410307360558631273430187411979673906292469775148059407326114451371510475598757057527623089410092842227228843061049471868936181365640788617686137553442562586848996858839521063689183612653836400171899205374946198664875302004586961757868027911798212688732831633412576202434204337299122823892673214404049284986914040270499435618715272350324069073559161129524432266161833847275217507414285819909172995380727844667316244186249195649293471306034166291561932060191470548295008825894168858285817977749282096824729640839772625858560570796641001147074415580574904197253477682946762266678357665996949681587471928365146772084402845650498497273081580331372606789248904290031940803671504746691670083761481327929298104335781113554733820635340176070461544333856550086050056544542964258100915809602144376327389484538542816681594589560970835833115934312004061471025472087003788019652657901960341951542417847332900980056453645620181241549604441743076446449975036137156702641967022720920775534592073355774315714098101194800788368220029719926035213219581812442151974383546966573662965689653439501945017852769531848956617305250922455590861256541806726001976122032815724572745560581100811110150216830328064814428424692450331613059027894911446066345747591608295708847054632858321677311102227974382070569498529886791859893632749755842099250912154019866862822326084801248473785467758631014347551952202739743070668199720253713464824520906832387743709662551849612329920566016997263611454867819041003969578272322578863236670148774091866359300638342150125228470933512863675508544842919606896257667249352729197455153107528658441252810088812628770748649587356108561580665001110508998545161360082779329894111205242446662446490313573734907318541328452594933594945505522715174711365544382113714617005099690199276777626218173858093515913310497453818022898121724446163806025526712957324968298795156552012321395291423723094987312174980058910853477011915858439522170976363703986920865591211822838776123174162576530656480882502374718564910200312914994851829719844213304134462747065237469430607602999574867478943049187903553499987235549607597632160308704694733863137557898106451016688782768029435701624137578599158227442321131151726902419993189035719797943514521055587487071988001981831697891829392039143969457616792292768691520205644078498498400857870050624846166591537725916324898474044260382695559652311642493285239774867932321625041703262344695978336460137131771291716631417847181686310784869047221189066693884251205610128033867365735932764742209354072121858117175758799131021038831805426246975788554329333212917654082785664620534291628134120347472153496783303213744239202558863600706284797583462239040244456086360274300587244606419325283530234748634563373885850960179280313967145872740920453858502329009200689729638963401538813472331408094638295015490521506557452759865731499173113000145711988092773882070736418980670617549021492228211524304306279370938618466755464738627118148878110377479074762640031479278529879467798418700855377682688478800571828476904118730378710228259092254564255888315148869470849992239482693330729307524626473017453133007365816460119410411371185588399575730641042884234289737445720276788391160611213323089236476344454772699895640940391497513599938191389468340576841190182281633063642723501397269863813101702220646951811620824610856278766582532845417280569180651917817250772842038136489150739580123704078164516095635205796663002082838313757773652585602346747409335091269256723948028430228344334109334453712470131256517868718988902606439859610174411642918326441864800046038567789963275335474554293903892437313381116644956813563786877742024440755014120278498931488017027680619195701440121407977755317676488693134762568923248096978922588072530450929638099779266418560870841072017346255784974552157287631358174457506679656633119915465962572154269593290307425726458925092235529608191254419035019214903777365045830559877616427494613084935274695796653352171884991477508590573903761153986466492990434690853250676713408777859558978079544546363974556001817575544221829671666947397101901353982161666712858652116477313684501434920428157642157673772779420275443403485221573345402454222685281252916039861697967869608822689244240035061098976071847799894692460606275504233574630157114409584325228063063992335829035472188299649806299917073533629642707762735776669963886458404488957059848311916921995110648333591992721273810177402557548655756374398400955433274612953307232758130515832807651707242192400899690907770197651840779422564877433833194421533216133402188861484889895736247722769945644501342635657009974103042561703174549211175944025032058862927011149653129582192354650847549043074354244837220121060057520602967980000941216366815644255968730111861905829566805609641432914594768975724614557550203432879228111805563813310839665936016183152210197467322419760633343768914025902353281699694924306463885328766874673505789884614216407740876413609271835835414210016018857900995298305446563150166666003987341442801335194217414877620106826359380507088192897536917141265387542455006455233249266836524914766051071449114833126030832833194542430909234854609998407379448183656034947505721115301163882746725727958367512115078550527638618219021800539202945387854956694860984748498336372496648987976100333876940194663450554746593953096876085608143617346209162634232234892560032356266546424539705927909946910376787862864825563428755103663793718886837785974688593988162713696374344199384107569656625837207271801158238773186812440404369391208838562230282711818041109364753137038587340153792194656553185729069792589882950669862697011500471428724546671085668451987960108505606387798835058221275650527337177339073155391783630476036649475855414391721524413242989703685762606661087402602078963327725351597674246874474972904370074445331386364580112775659448263436620339635980305186383674856371948130760273565601546062746085091074235787313280661735796918447669403173376189854761144656540037053843002130039210298485646905585570350875077874383342312878344218277123902221948698800943645309382870490089554776181146604751495141686746457483129760455435575143030755171836587724825774911006948411322844880851453015724681249982612421143929453534873311385101604027368139423376160803777341050355687683247329373202604236401017269160623088741230188280114452385508679512223137141468903880465172951039273348532900141226519528424976924013519384437463022185622852731535387558993914513851620505747517201084186661382475379987048628955407635560768151084461420182308854408706810586640845821763051973001436816742226245422576873195969233177176909262816520469380611969215522238311167166547208627809012086291184191348108132136716472453898498215462801613659161748187043783754011012028910241855957085574423096593779985526208941218927726464517363773005576467060862518127144633956873180773792657465461561465895800833801574642490424385681074032400128532353661611564268956901733569739119692018878350554187483915869615439554622484831165936736789164572580734390626623415578297173482003124373820696828875819247823476155926354404890603747097674810002151093576141015202828763348042241123993696850758499111280808782883746317212181254674026184246195033233724551778306110591775282377867467523109404332636502070277125307621376562491417073562291581786443660105640460347373098682974163984637886849985017934810421144871166604998428454583273216391804047428324449616419276463579231743430124658634576170622408063701782544497850638611115330259874582370062693691122825584577593369586422233689586479694880850731567959217101638353774778871512291051857541592368620195166893919005127537863528517836947096303547856155875544714845556359362487318077394767934188069237297003249037422643109095050260743551167654714977455931539853125477152536718405715503595212691643196038033115976301700353232679502633571641900975342835371817096532143204670685486051174165192415745769901236068163554593627268395155126044057036693783016215202254265769171392684650164968280494822905952913092466494563176039884221315420851467368063541448215915006507284642723621719312595103093043880112957053124639773185939022338116578196098512007973642560670950862481001765880258462823043032356614669041554374671011995838212792557026483587112885200244594950188846740043441245642900756576633689699417611043574924898082156627477520033425057719486190097763890994413260563001578376758415665272376832431216374791590068170735892416134767295788818790272607213657544859271755923607147496567230843013292173567661023318400470003373069764489127309563301758246491787029804622344231873646335224056063684426526152735786366615076450478899896664017225595317441033419412100264942446231668464028343699122843079239633314965990114940075370060195246202363617629118277907936514170200037911451297354162820580892375978071454975982759624707830800628947407132231236064202740765626768159583115659876099994340397893860603017487483802767588843826575906066432800528357893109432069378156217830146464395481418171290116263243941191417399075351021015408195624168382106726786977347783951156807858369135993965714409326800046791766896092056434137134435324104035629444609487396695763899930958920993830981905263094726579990844026194553306865950667991653545696346103638440019656727506981578023478852291273176858316100460245307524102146994177910287365496377340823349524267225904266671994798912587772530021127807693449030681459891236193522769780991955853546623225254824684735150748632169845137125579579961315262165884891553166693257114933710990502879862103819027298719676126379293566994974350784015430022741173254981934232923194361907651643045431811314297089226893405477302767093226104531477845544025734043337194208490396462123534298484594729200597692400759355259656271287895307025961999096151293472612272659923156025825742606375386890535940052210697619608284836622008812411155474393243595063607654345650898208935964930742413798693531318683272177498912451712407085903713797965101346034202360904645309519034831521886302496658022297162692877990277087761788706344878645376929932507080746201728817030134903443199644621673362164160885871444643869119917192648006900248235490222466003089439965429656016451075152988393331239683294247682592137345346417482234806732708798732103686709445620282966908621667299008018238185535318877787917520915443694241791434106182841890241795793858450071341918387154430307487783538536208337241937839554068373497561036965578104823062021637897463133175398344209401846965708839192171074374249227990302061925660878288788185038513916816863117550266188927254052545885211675843009509324428623636713400595022925427163474133821383277737364179652815251864070786629510500255857159997842871345699828541714971055720984640625728247317386109535247548704659793463005776966710085907060058075939928437373000666549297331679696514110315914158037994351055671751828420169531923474004348131339048744709047515498361898726896038683112997665887038007329260133367347673211817364625743814034696434342434334197863900916870097261183867434107545513959919987918241403099355356720829758849062105708338202149764363067787886465274478795592219019124319244119500338943980606998042054637591205455288903209760023400268486075430565417137667538033976914407081778815448544968718484722097734138573614308847779417110677522980267043020414337930457566774127152500686587958580605277485366419440087082602025359618969316860244634664027664986052858932821679186579311984914557819552662673740955448630506930724466882791099416340688357454692965614520470917531821253042258826938856793067745517562262653767407967064962885599702751749493573355638194730887693692196096391200603769714992520240563685573559292154950670301813054672820626800594689773259696030958984094243979542301328284672865933546767806245267598677483968073541279447301253276581839186931872005470899789648187457524937408958156933890909866843717253132977307437585075952069518082546230402013597623708326825760020697922378410374962597283421137940967324220715730581166922969747434068515456137020885502650812814022695962831197619902893143478732513238641995161693329232974581834474608264924806960116318934879043252661420367646752382497168217162598846467969363644219028787872669800617960567466990578511712876642869299136724881321607627489054676643268193981979649736691045939271183569517996810002332348280096352053093011538692847708922266047563037252085023732404040298143179764170828101860445128508770977009069886905264558366368911255219638237812877426436483845260623171221730893792598752220331494419626238481784327107984378156357928756019229928285581746624507946805990733427884543891808769720021705314024928826901184814336632936111671298878941779989134264617926609520956543682008026701755945856104858870837373935461836294990112221543865836202010094530893884527998494622441692002439182333704562772628202112174801219686823827477812967747317170958799967502027883132370864491528705739342282266972489094371460277748236470134200450467440559884639545515744153079952878262655506413160651213328836014820501432016319319246466191727697157047153736392055616573990037052543021246595821905146488199173248092033607696938144424879453627343152877354860687953776554163483544595017665894558635647242153234458427144725604394824051608801401657155877351154036530714669184530476065447416369315964160684198618698722614260344248899300771080560874487513270581799147006337229387091284060112766707640176944793490294445129162521627080544862184577193623450453208689042009214299945486396475109398225285158899508396267986464673649942563453174960758068078216619283155052333441388977757058086406091985994921543208490868986494348194216418716633129035255597458356253005031672131493109132564043489457161145164784560128890119207684272204102268852108194183888447101110478830204952914355537037433458088507628241622336778324022193602466142912392813584257311915994684499412824737764662058603366365157003067073966364165984534153700540974107912896337992670129462065749344012652080877690259692989370362008694363416995574684417588611070497593838973488358794825862342073852180690931634193047309161122305541528009000529139710707474710814390246967171279509367433676835440903712072774272062706051171703141434200487586633727145348910059563470927558106365569715457449019302103931575889868796593261465050449207172702302273466559721948996503909277652518726637725228098556158216680776706388923303929400493805823854710281385546395936470262428224768474478978075571239553910586194473113034315555908090487809977416284551759230796941478867161399238232136174021914575569746743032852233240075558579135947800870682450363799774583028172520315768139073261529004433647068204051855471448537220963834820442443967496465270008764329881272572292147195336168793086686487811457702195883613610379319244602907025257763519219833085092355495040109471417820458265349800518406051114005197783627572847175320323801404348804289185810204400101950515465654889367107698796694676889168585686458200830414503010530024122056302176860217660714310344683585013006107708651031880703548257468034315007830892214447866663566813874482059226882814879492631861367297671918080693490207001092442993875545896493543808149251898639224157462701060494578922697106358817247813706422128066657968838260074603862223896417922863412256401810890076243666670491826314948758982991729700791031206723985248900973994765833420184123117996548143424595119625031961275674673130549432930827114638819474367695080974939839751855171946307504163509499093010727263091184157348550762920815523513900293653622852945489582329172163593010981298399679326666650379994418275167802956135360119513060613177702795206154163707141300276399822288115137095132550163364825410068195730586754517651436711559217333266648750190703968511975528667474234558614964492253390643298962460874865578743528154681577896769766159283248949696293531347158053265095424706983860068083630551540355415478015738486117073689865844597762545794259419328131353668590277275609466441339991052316594837306285126946893143577274966052057509681232395933116986625411136528589465803000163412758296720325555656643721573510099833184809335911593616652266167396605380755080904950311334617426107284660936547974715273180923669451395102059862877722581437984764398715101517029106746826268593798910723976906939812516757036069012113484490372147635316087895071001868977749389260410678940623418857665144253716720731832397923352580419530583997848876257822051436070281503450560299214046795808492742488213323731009988027445216568068915437458344282435116408577774857110196508944149885941311121417530158313153891617632659409412285457239572569214246431944511744288420112580139300106287580657452027030124242043560224684946463238318542208443127180296443064165950640898895142305542953928554087423898224819666448557664180311452799402650884828669279266502583211452345159693546474114259253304141253074761919134856640925749543507724232402624412127406638542776631959774896289378676956650886699797589704698427839106404521521951639445262911486060365372925263994851829903039426222731750449975841856466061474297861585321121254035535162941552316342814960288771629776225591712190830683620933218189828340742614771891610368836481444795475062074026443578198043398050665316182684598896320648053666164020253375017895176092557283188858248611625562889532538668801196179055162966135796568277868089968958873215519884916613685913736551935650171958937932102555511010994979372192038405477249185342123117001125057820281808855250036753724238717645900117264717426232721101446870263045518449893328157773425607961775369641624702002018053333574891072589129723997676400223176768615726460007132655243722683005941002081181679367757703334108619953634133982774728828069067988360640344747395937099524979399481283934618090179900983660351278984316221640755170612732712979147244419940386580579737514933744778796794232364199646720493186458790525596910799742420007934076220285470449659009528329791193578482115495911622543603893487841307568490003141228874874259953309453365125071730708302198947620298370472596341077326679469390508219736399062045855351567933483505599339595916173461833351921231106382750196907460286422940959639870894204696603314356915331740223388567531377519943633829840978306070640724932677911169599640264515725915455869590354020813203191947161800014462262122864194972716426522036275062846024308739087577621440659653071732395397920234207821067782965950315815230116943499197569083463402111378078587429629209963627018317327192834879941155763504492031837350538840647037379508474161732076591855523290446318072162099116593729488400595935510681471767773435201187112248859035600031301319160348408696118151297638116706986826010365459316260945361948012286043020808871404685098653406176922339052742174869338515241298354336536347692714402758574740742941295181385362804302847173655248226038756595714821945751363955580213439301818250285920339552132887105369285704255606842269077190689131976061284295565226794081911033763354321337139476196751373292159644901431300710630822625634126871531383690252607181267609194331308335674242110636060196677449440553990947838447453294074700228114442232147796467857775283590981959557446073470634992903768513230436829351403123710486253316299926029930928044165583860735064013904351338528208633763533789160275189403886064349008979646225743895680332203386813209195389721495304020776837083540392551237302103274139965783324026447770517741359595322675845451510653429687618071135944251365609166353851281561712023367722747981648031918142620399208359983052990524564761560523090789124540659945619606531218792738885186529951928468641816365089639833979357773001188648326304371008932600015511124636793200475628900098975693843529109118067470668901504631906123319127141549737525538389482213051025615900417916332229244954987206969010854626637271186060428177501352089054123635676105910720389224287538329943625214976956468010788978550600571623249881066733188388645041000324698011807578877518173752739179939348752954805043355636806539644778989379973743967731567620946753365020193143391931799057313005903084538267078609161232161224607580312248602683964488625269890402303206693161517157579016163316908975228320514266975074527465293835063385930719873895026036857243121800989825948922925620108128004849397796769248915591071567994890366632058826620284895765046405163908655850873908338290326799730895195156167556547164430694881204713283680706010106067524227989521904323611279618122882859497702394999511930456527378419241588669216836676283503913969583364080205161226059775173518160823061338199474658730821370665907322656235324632907387226981386237388621674139920942503336270070672629037924115933654931159666041252384502119084656878090449756401794490788944805097367500520128538237588408713170495624445250092550409855812314300911766976819154091999347794321417542091004756052314160330353536845117639945331940223849627004978266288153941412120025692998168831111736444318849963392628421741468568314885763183811843076119556317759857442927628638279237342406675453487902142466725296411468409073861931639659205924389011696156765961425762831408985512677781090134839168171460297331787124111646633580702279283394941242804883274223775282227139179805117652668670166348455668952252987377933231499589008420234547308303883951633559445550627901583629681145224464400172645576211108120740317121285074773983478605926581073966895349517168057358295117363842534464519815755818386922925114318605547378856716751654326386788446663036893538540545144613273557583151405861119641699863190895093368669892511351175228530567204603921657532014653635259800378243370868822640808795298871900099171475214083080718008159885890036135203599901848336754597476909620104959884447075034899223731587998968696598930252346378187206983463597772765351172616049557579635684425445820178437332644171468864658460566511597913378897092568018302941038289848145877814770281237751955260830804402482550979810167648210360636683298984873544199381718806459345421371613531939919229804067879679649983321630645323271362609284430506826142427140336018851523694573658485596957321700178921168028442428442769652425243048881750875183967370035139206227804881526951076530292955374223336245220909776981216781989451974876159302994569348191443472020781566851726592508375944054831935791345566441972033087657007473062664394707404008693872030244570427869616517447659135701506341734396860908876213954579614873790938273880754665604603721800704165199397657171084757691790610733958048249730539581172229291157839603254640374641360789658108922863581057579292564200157482593186794125522658295920662367684041085745564741949903506666521627899124400385995634339197451227234779913677661114923441024926229552875116255457233778174559649639500938367653247844528274993456581147851936068673343089742888827901671836023794059942182323146606216357747830841666931843057413889067083147466676644932181506772985236306668990053042299757592352708230860411981991322399275337555361579145016977442660578846166515921154488210884023729599488616106146290645917784418228385875310005413459792549264241102646765446736857003435216294581982004334731017929852213972323777027768776054693877889730490249867970519113006206796576416478322135215542962296661601416913887346322118591841778206384098254779337230068673892303140038247658332453866921633152069909127842848917223221393971208302854570475214703197990297614533482936184654801898100482212567291487808438278659153703844985114226458803127747715813224660313278311690358001875669852925812162810416585722977256588998267578712742245731006266369542878809647350180632771472200969538383679556519235063541025993199751012054245941257056317649120977913710986777689276422538266761258829426113614907457380297430292881756674890896925024231702412047496240484913599383249091050597440405835285110972862557225230076636625804949722921319188356255706873986780137306921920369120814178944198123443461385405188702440399066558723705545530177212427619570489145434467333746694134401685873920780947590191254775061055588225125765190629319525441420561352433402418027377699217789510017394492077436224660769971564304183993387389129326864117795380885060922873069877845659803984659823746787236905877808530333240894873067446743349730555249771635130663550447026720185987135666808682861717523663592049554389566086607623604094387116733498980686471067794803326779643695124211334690802822712128131183796414483836472839596585643595262099590432343011657961566217123908172594504551750757733773486495932692625864891376652686291786745639794012937193887163107914729772257342490579276171429981007982013652619474371972298653920313755171123513354447303533410482905238742292502091951765945724052450640035679981998479337542241748515012430981361734484642635032189037301075909601655731780346699998235752688611814248120565083630342044593065154231748166601816147882713972474878447058710415675648186488927004596085956682915969446237158020009623421212040842775141672582848493652308800943269760635840218440108546111158879353815465920152927230038504385488456325097478973641193445422289139391910391236783867244137878901754829803849207548923707308736688059972460079095367614454141666958650330489820875013607893038083048331629139291025810956134248430344230912112744578700657683443332224385464662011657371603139311444513123297283025313936765817290448472829106403618867701677790983577666074408758915495085922393665454495282135852530458380560580196960492932280367877902148623848063577695089195811486484880205445731606669617010062425379853674631755651436680318925144256578059351427458752386839581405185568706576385344247886759098482516376519405005745065626897439011758300199286465269614144313188263931439714946875575197467285094937159102212222752122995178659421387138829992435428683342247326973245036599218844653180672365435684671750523687551033023380408757618397720189399281472764168769881733199383795657821395129065314376515178325696281548552660599555115197677591667260913343390827570817777391319931366655937378967317686850142518031291156926116588850078677074527975460209940909191570027265267974641005759106689586938672332434511846204578083346346661859350988985145952001223542228051660262238333826465112859581158658743745759513661506439453344071220518758370047516785806224958765733970541686866530838628395712971316486850175946534997175565494921517853025897223862276800573740040323453097574165650292058886014153163500609417615043620863449133124548361316707889294041219088383944802103210308708615884470058380357312567832189076598475194085132299299998993338080897394436924508087827978369771948404291296293130399711085027919461672871745272248053878031667154645312862462872948114894919307478581556034389044871844354506824199959600147144803318524518715264853950778438811108415633701630166335955929162387051561416245636247167336084321091041773555239996191558189573653488811191590695547283399762858003244829567031585426418583172062809148400316246106291520625441785304806457090721707861446662878299911249245573229226496150917553011195134045029643105247571008438030345475413106823947861343002269800355570473964014441321752360232098130669763278478584902434485076203870301023534427015956731247960130734845156232940903699666692723232798380484318640178911347622586370902302610183169449943133363631623194597579548810016295332853744894114239115297068758952551728016994887502266955387048704602997762349960308362570508556446277165442230217934668201373502025548132921629961073153922334063876318834276863713384849338827466393903854805449302319320679444037390839107912228213823419783008918934703762966277803108133029017490896301841696869456883211528039406147199978853457486749553924900539046464771694805413723529202956242757123755921524227830608845328877857950905234952714621108250417981928769184925581506344812099138570803478464425384373687253152611952798325947658148175090253106882934235717064191116910718630442220826280702051206092442622723533773646687687612303401296515145404977666551682460614140559426399078681703475188506391679760918930853042042099612879144203067013188459217114225715971567326557804818974470337057231147212913438897178462633630052594701864692884090434251412540260604508326351371375747485187802731176741029699003233741918545932434323785913264483648186178024290360956111085839894288432297005791455964101488035426334393549948340115709875780027430259313211745662710984730297178778976176558423551447660125847810163878128343763508603544530567365638802725385130618913528602769812277845756861629959842523772894849506343630132875683470562518600338798334019004773145986967385992520200720817167933051099170227707570011659452760388244386299948844100519759236469932209503806911966025685940561008249876834558737793965066348997115625112929910904167891327987023122522115206248708768204837060758480317120804342848391497195319716315000878421089292094120501293594502516019506230781682273145773517571951398875243977722996305797828455302645639737191265599369570288963322967105748741994774715321056534096124268288857641374971633549665884678756141604730357816116466122700090721855300613399348732666206916039288460000844873886433149010672327714142519287863773433858962780874028591274821629319824951615059050770613085724705452260445058865797636539643329881636493979155381044150576953552955620441315340211950886911604162151602214585887250447320929126377121958711765209365734198683690313372857550638633293763261281426770230346353510041996267959630773005716334932797726171220375537058649156519981587044174649933732269206320493918115652459485329935724103500919451753598626750341225819590373419078112847775170477171022421657271199025867441264872333837826808186109784863087457404492304051746569386064386146954132505188425478640397635435922741733889089741805719599292712245521536255533667733602035655411279283791128712934480087978014676795357168784070208692768169201567204929156776093696689364865684237011323149351914564236857275225251009410289155481947905103121923223810662645744814858231840873266137674610903222676632479612272743799366788669116944607106558664514831426483279214888453929220555807871307735277952897286293546960963835445880424989263238810816678548485652916350943116937327937401179660992963861892056186841112327356283266635463570684559889517652525373184321759366147196752294562626348658436519924065716368239703861843499191377378872670299263586661702143131944267949714374321942460919183410000356831861615572111554038517377404662647385006794396610643183917746566982073675732747254035519931519961676496013109805263485691014019852868006837006618252288313346234833644079607191688613427359911773753744127732502664652134651801479251750662896791965835619117255735136583168252325177143595129241210748464300906852573132949202646328067903294178842044076685042269783089237427950223578548280757017488965490790717770869555448993578338983902098836666673798343261263660136044999479003064289461635676766004880376188440366815155356438095472141821690490473319142788439371776711073807845240191037775807772771107194068930560219528194939322256755163180090949045792739932377176207666716339063236294624711567597441100891013541098280932468770836800602130983088246490275796756656319042430557583146420200035593630331498087411397144519295885125294088569435782607036779323800842455240482576815232856876846289511563209860395500445472154390613872634950007443704711115896950583244776299521282339243930270258400285338135034058997284977808538726908102723667364581991404729816328165861816031577622370395086664705325060150869776279796811030357556852644502493673185081900064581975094369823325046314117543688414188147427405531741230359404299849654402253992657155401120825566063536145594639099077891349329329347820846010266854931529771816615968141520706929892859459750240905403631893246968549794634510434667536342623667659502831661356001343441656439512746088706960074809602679897125706709624025976724729950333160353882724951285881947299925686235377767460628304720810821612429505060500812330957598452212277829097361172057716607472671290090055481489396490293820883315777456094179215038244816699027421445530089216843185576074271055218078479309111104738425800512145086771611727466941390917877496063643760819667075269166728777240634056843418085086639440543695736927338498224208542137400003705968128907343521545060290398273560369274994516595370772503291225188292291851074454842431596683747198117567577864734715123154379254010078220537327310146529475603842784481043663330507663109051260377795630935829100605506337852585874143267639641091444234521783654557819338618926010349229048176640166852560578388912782632224720870047400297413763377266844107195977073405369779192251057546214443710724558857373679424911381144168926801019993534423908977533422931317037962885712762864090312784487887464823246146740694792412880434038138419149461550231578552036050297960714088592443546316284883626004703109743112336881685022356298820897934303983391156703883027995433824265281822811348634381072491689913913505759755313959799968537621207937955183009295458682213538869954582684895844231072001091280235335464589884474116898739166009755895579142141186676257944051270675976337300646601808053775011871854899947050137551138860095448051464731110460600128408191946117086933984683040659903878889243778352048786777819305509787443416564728412652799455776082537946447929565748936427757010797361899137848286779672766953552120259295864835801686336874597967361380449506403613403226285648268863106706725698705051136365612876968719908628086722935954424375462969030003663963611265201499578534166822850870557411770410557267492953627777601065795875544696784869830562008217664530089433176263938392188108163537485591688722588665411881721131863398771943888318816077379378464757803132513936804864906861637789533608312743755399862911608832958813255946806234968521156999752225403111087778044486399023080116672696927163976769009274711849781277872152106317235896171938070651528079526757235209287645402870646411054077955584057433675601428168831968774278694754510968581595891518551427654424016024892481899827360987101109002743259112387558064023159155389630182868324070656656771913704131087296600896717962307511984523761822396771411072822395697517211462125151049828162934161097145327629751780791624312443098316766064972637852635006820713742755518303350331973340151240129297743610908533316915960506741821276297085380704281267968564256585476034456819612277942310114763461619059356638515063955088541512771770417336508011791270060401817102309673879190245961888883819960981858716157653942403145894179980706769513767006870540839636497191626674819942766289043080885212603573608523747676522572842875710292440455119988871574713181493950189470459154278279324003225459588054263277174304663399465793693446058982643656862201190931457072312355299481892654676492715031066596995283985738658757286019437035712455791417817670357238536907644103676381323318327234317015220558760496448565888779730922586335548687008110051472790900075551925780971213474820713072252801868387224962182191454860086977185953879688389478748690319414727877829777588956205691672802018153633431005019300646966872141819920107545454322199682075557747678918503605774743292814632269798969217504376823179254419807229044257902448978536483467985934494498641254746289153713978397811428125336146512962249391524358206342570681700199976710028341712179139325676364101975819448395108361449236600686737739327728202240367691413790148130561755954718520155240986354558688138550257412215885709267677594579753757686979879364680605613106779527169345928599842562063605041141223082308190466817136492429958077181037558930670815665982374553259100379503491351903875947955199580013622043693786813720561250299362316570403862896601536764318446785037674645670011201906075505622393440956462687264423534229983796975788254458507770162660488613346656515808153295927406870163104681931167567166841153381479880272193673244218133976352269102319773972841685712335388337526652983425356747528383754725008859668277364147629644862494146656077094865457711066608954739129337294198768433123630591308120218028246861109869109283892069891454459562346224029014583931988139594842903917773556142246666524439598912946520043869318729381460591999009267609657659732528763949036909942665733312301629981849894106792821762999022682433683033546451617194653081083067770491559417140002069009468911535901909215867317920430239806152124469862898334299654243034335058925272197071983778649335760087086211533855873041829636376374936331039431346903880402335505328249784605883387622379027305648808840596278250319261667938482001328200367412954059585935740391678513115512242647945252417856843883313347880528942855485421408644775098088252323606490490252904233774480566702640238273428793350872110355588887653400123832442299234893809200881106584092088799457643391235308037260809836298349412905922020671823353707569517417326526420307035372987344908907867044433847420699211836919976383367695095102691778510941677780633489827357623641241637661725369100864549420211461567559613720342487233463613376918326686352403889112022737718551632513495874034209044804280668415409912629829069104207812736083123454977291576658505293697901183531998953981312508018348156286029111857989285775925589278684884677824004143643425039355997624813462149302470348913016950651157478572554469446714727481551345382185809700664006080394746504980553544798624493005488941660505280257645838536590783018749282918351232073206749594814121215792461004672431734853281628490849608978701821688232782947634315739204510959201458314146032323447755579209452803116294155392704340636414863190119256206347838031482142860999026889139063323570139246152955836879404314771018816028844444084446405060096926946770602406392608100754918248266616848828746938044474090723230038665091755977086852069223002300686317601490750996692605014794232437166871490044099473238659897742446855277490514211796198897072480209148182579003132807205433536670900594988741332554297113161154401099339387004926250231243419377524327082855764270214906712587965469433109651041233995054214899808659066581510747914129868747501793832138404827336201838687825760406926435999153230206769841177559994180665330821274520923584252340443460197175962873399067252253603834259294368787868938750389844232789460688021924390923321969728267575165620770835321488553455576280803204165742298875765121303508538714355335899157497104065660743618657863480711681901556337318175813571348261783944623177129698537476763672137552060344889261168133467946254028545178926472983609732067824003875143204963295214989179658973531998561884994922669081491000334797802160278951956160087306122739722802482490311092327119098347427722085459208149375677423968870393139700006107514869745665290028119587993641824785066228459390693940395404477846866869563114619777642256328431549582369746030857812836134870838524386267163064466662849144793573572326281955711427868084797066482213012954814839029081250872663553856315467696316826057229533235052643477430579646949220853657477135958557929972681104568922151989394255999678510238207475519928232702329457872293551098726796041163778680232762126067502268420317293631925926435251903474450756769453288047625073440394493279134047132534114830520715316683019535568347596887429248823555457034025005912149277263795078440664558459769723071981432968364080542522553532215987738050119781770234910868030819187669714820049219046296136677841742605928779204676857732672940304084111016541992145258579879701502606585024487728712847213864004929626291889684879651940968684908371904931137014072917363244221204752767233298107980582797237302934827271505785515649908986689445264939870929566462285349217998381842541842905391748154175359906928647370670541531708462354595985160132260866680905246133323441157390935766475478764167196775963352909067816108486322474604634942042151180955731089803673286457150008053035798514990231002811637765227345212108779889475049748333242957912949736140081325998073760545399723691614612167399923998185105048024841610906794976303681757918599100658450794887141009855344878479236690500371794435696852618869621511279863405542241785977225207197750075360612580874917373421859059109357225348359640026972003727317117365864844911438313486329538045761999694856820340835134674554248159039117008306183940924166285721870767262755202587028458641089254920734644402477154567434194664312037533926534428937099433628442708536306264008973815418916485008789703252821829083895984194290159831054284020448690149475536987452369692745545470387050582423195800434644086754257676690334283618371677121632989415200754939420726210602937591874490925911462694383067604191134469452183988106399481433680032401296562605611120150677427705899935592807653962363177964869823696550325217352782380623351130994889336838892201136142884190210170208820518041123954332911188532959805875296013155014064103784473049985582946466094999890121242131136315322374611744428853936789710840878330022936219571582279488985375452796297404582604522287987164032429019119227881119787187074679632710209321769926234716422896609375771785579995304391796805979877276620291562459780495709089901090868736261078228339409825706759786687984536382933336217362841459833814155386683030096899058421823198751694907602901704214507700326291508518426322794252130504725718941720112766347025727800616038958311964243489705040663386300020473477093827853496431987668604522910189519043996129794403888248829330524733878293513189202114955520684836427419639397145634330485063615899563801691574795748551676110273086373087237909100637123256808631270711654580529361635086875369014684953850951036362523339668017216119262984711632282875250850406149035957213383021613874464317653561923281962112671277736855611732974322459804568927760145172318048253470252055751671636916913068849571956732430710708786277092823007379670697441123524119452067699904234781971390064331971253243159417675368551614010235922165010483345413774052578139959524644623588199589201034885754653120235332455741435530688741400629716918460195076938020570011999357242461641706092853010018549739449413386813660181004836428912185209590275785976079721908429332890820086210468247097374770252435525442283471718639202717826951706281115056406483886744335905801566278569975988704331168384759954669061878629084069637459379723066916560484126287649467602259394761800597450556578037013163679682674721668733530889020736954037689324683216496468062342286614099669702432214074328241606888131312049855543945128194413945017982625390461565926118680758574163879013550494359928084630038182228596426907100174364620718273905155527430893051831736514931840009721564242600444604182742238725475118891471238524960852674777268894882961016091354315838820262240320222723794904910824956905432622795021016302805025461039818048915645604738092573917630441499476021279914102426924001775350852914503839447996833110399825035761840781763588455323444411990685023711638717900113906437638159788721497681012059051743501266573591381216880668903864797029427052996857915791187941198649914177153334104058372222945418117041046544833399945200140798118339673234020120730573752488752920864079125072995366713676360411289543741539301070006015177947714400656435514275776479661765562964866559588858474856459262864864316805870095307911668015185658262806647857894418360334492933593873308700638834911667145894925799913167173185700904601185109858066268183601243658968093636025525960924313488088725905886973635554716018032108308190660436204607685422028390173886276395323215401884662134618585345791447221858788685424972726571587530116562551432223172485970831940388614114088691576676836366567562547447913193891549496042867767924686100404811808839948696369568825881566284353610451951307981164245838637743279847676305486702434877905810932520302327414167222174563884138730954062947466766510903916337338256482662398458373845463376209873291901701829231502951155788390042820472522920080672917869988283497564425810650329068149303896906786893634482744187875350717550571292841148598562235836993955876551887606101668525889146349656147195525637987544456284921934088085232232778006885410083663266931923615417809579042853593938813555708844918015655063384655646867238365451165033974695860691281738850188795919260384689352802208147258203405803241779295453406968910303420289160210829836898177646090939614018418756699828467249986382414552220409343959671606210461440327394911971073918528262601741911533593226645635144724749612095439831103322819196009401102421125812133585419113101652880397470735151858513537681195553161381441073653009766746705445585081929701976043282478370250099815490732435438125403291668122195256436166103949185811495106987974352489087656024182817721228718451310744676201048892555434912045841110251909802608791597152384114059501218284050068273691911152984661485667548872979485831734093276193580416332778504414087420597225189127190633117142069295958045560417515404096562041785406433414274283981200046364746278383188729152693639302806322391553676515193540566073845457518877872400991015798590949415446079498366984535367348252327051768682946674220544642594682158315408671753029429849887634884479949815921355495589652366107743939922422429309930538117139166185668588412241375668417096897447178163387866943513975130602891667257118191056583981454817536612827544128776165518959358730682359803056556417884352850999135178057201610789244371708871909744622299773155312937827418757753369380174251344237407859388726504199805578173907641648938362864827071227034155854430009618192015241439530733519826476632581005426507289720546637785869367616574954143339988206837855303191950804580443555853550393242995152174786820087190880096582709961006317505391978590510798747748101532518722110085304043111351438342926038931939082313381207134440897860818056235983020795877685270143206815912419229176725499678390136881798354426069281146140886568299692703703103835051298021865314564492230014043021342913820827510696420932121835810296317608709662098935165026838084103691708383507827556199615405638320075957770783448036034985916575323934184105181571508773783802533500208080341223259924337483634624510060076441076311931332764675790354725661066046594520399306995927642465762491506737971716444288298095897718829080611569846372189413691135891612935582728018851509273946749523240177216981112676038753292643372934998002345633252726459037679604684327620184911564710893296685295609279866897110650783744762734959335842010818715255703819453051426335113218255387477848445928030845294585475502797352131389209261815438345233400433843767706636147711711897178188451000597272437411504328690647744125084158271257047452463587929063923464083383224734632449085185020197138829228576165074979826242400307585978991473774497064365953964182897644635937109327159584710986710612568581907916065054621621558050774758858235124678589790847764240945062767417338353313735852602718162457188563858642336373549906566357706568648188719659653541096311757156986538439455373459327664613696686582931858086306298787169045570539181031409781678102714929420235802659356518079078013366459234345184267146073377034947283230971956324257661958502148843265360179446066844342468093063776156371128723408269091592044552981947773471237197589850316367988630536433868873511638664088795634765156420031313311321090759493652174722020879833167408202157710771163793347125394485161479896527073807544717658239043889471833830184437674618231986286527335645511826419194256770236338342047036309558264795751735132428752421606685874862416002548994467809805684119375021937318820139390035724136026862948747785803992189212019951784569685805938534425295251439842724312143176528671686611876097783382454368728848814867252408384419385852517796069295771858929193575360427825126588077883718784841555143369542911549790436246283661660393459353673845835126244247464772956138922087656864202801866222072229751362978615126823430261608112490480685049457441071648637323593454820510994013761808054961371581894629724216668906550504257772323928605210107552088088329104673786201585163330747206259744898236195659525858614678532034342805222227479539604258512786488313108267760055190992863443868232456310795768022156377256304304382687047911540183199905937874323511654341042144258833232113123866840166153062423851930001595863822414232300573201564388753113832629482918987559189975154525747522503615659763212005277742783020365215526541192204830193440407569315710565184157557101925441318898868106335954749847568356785739799776690785092176610223615008106653082039321266957578138965628290419628747316695664434567771407523451792719163706471592793727535420294487203651652518554602148971588150633116031917888793029065808656070640776365079612889275169246423846483784643327440257370520539567253371122768351367193540769299538415764613750405345082817345880446331281508470224619197353281622744772495132208405778412337899921767410423775368881337112128639191895037762516835069932194984004414621753947000401769632825509283353137980622955145919786980435332489596462490237229579731539340761659098396487570929400803031607699287857955583365990958724059332495875071307558476114267412085736139541213146646768017752687415598459711270793662376013710275494698348781338319471193362513177640969976478064406254808278910410474806933594410106403724685557761900073034346839951888708672623028474526445305262401272698685642732026967607316416100147618012303133018992855321838566780753426523462065104068142954373142996580823052385845664471094394056120712041533218155965446388101107088910034464145541076674439598255516347912183457057527473244408989277064370994802638937477087746751766725765126368833934158941213060110095139830161022311076343537667693905147817017848387517947907696077061879645229439996316345993372997763493890149330972419085500102849274757631177284821405508801946804196311247948982488611562022485893812840543147671473031752155042477426351285900193692893985580067962663280231973613580176615110171970748342229101103992381929059483819966087688778258232861598011467352493163809760366804106659556265215204477552123078048181824755313929380469307357433755705610669814398118074472419970918959192981864580941232127158932724649233476913100331817268552965883809882650806435599822627105694308876394046918354177775020545858700380447148411492989165031918471078251075877342500197397886181179977349993594250567998069524953678206837051608161163177475922440666341725355110037200531188530847333159983418995654350750036087592133122867016253938305710615721704278678332949751213131656512648876391480259578919449563320525076180056279352815118589068118949300969837683008198885516765869862820430521749246960297330697400829890079340695871077007089484714706953352379023980236656269074435196275100332349206915079295155170765797152700439152595169092720704467942791613840134247753753806668113865231654866930112809758841238028557372635908007051705777188163259214194366726483001668649021670061729683459927758932193531457102236587279579375732965707520668511493838916761262701597368650437883974125637050418927020818604953999674756593601087401766539954161712084470775053267859186073869363606731028686669709325666639471699275083991874376402403227990026480000884973930603920432644307991748054329221255397965093812711383765728381041400088859370989741795716201022785155068390439685914876892657964603323205077437061022989655411697539303331499584326168797468436356950805893726942664416482033960049265141566783756683901988096548524696711565477854109072791751032342741866734203697962611342625611381419265899792975361232467471042578483457436727849618512914548121838445920185482650553300919951378723200643398375854448259114476038646675506468438528975434489493871741763631063285843530522128472304758038020845272764868100015533135538575584587818950375387379605061314114664731139975571292974357582904075726059809974259503601218826706705660587951461090045352263253328118269438048035694455954780705446487434433064254324280630315282302659426738921141002786749749409063318010258866304202136100697363850272301786160247939493490770966616249917558983528818094700818679344674159906894660497086088250031872134283538069912837614676839612425312572129813654885369051419793799002890175197665969743386880973347395553947061153524756773472376030761744708569059860349048757736780570086429681495909236470489741847547019672904357629667328254642173710253061327827107524005233741117857872732875425509985800301086153808203415390625514726946249536245859226171533398940215705160882190874325595079166018584134076594516975920925425500026205026150423943243759480673706769711069916504162205856303406677638631373709220025736928780940854914001678616562968277567890513309593717745364360504820596625350481020138680425330593830061431641156748578016165413780672193739424518795368573170948442233574402261884742641262250422305699032770214255879799183000702764982258992487099415781433477523070805761043858915008008669337174619627014698980964569057715374932211542283969978511107777472584197614307960154540204867093657269399429657958149322921566847378869389701940086827076212531467333788808150713253614376755462064282946935642674381361483159157378117316261322590118449292430890055379570817010058118779220200376366228495947867155282660055195793829319808511856708157059763303889696673369511017588799855094564601866380944745384573505164813591744483171308729401148831504965268622976355261321878491739513262682875646883645485183626742583241217620321229232453362459229098819051958689978798976581993023042596133518705938469284778852702314929459201052486120396143364556214711841687844380767436140509868630964554562203572424331445373549664516731190204182824943400086770975877115914213752298530061414779779391007660661129153672949696182619226038053002051535467604125039084350870858514348077174355837319334818076480301744311823887081298454782885903743228567037255434225990819688410401349966633542373054009976077806197655352196036724413525593005967636341033577132258359683014665291594937472548778122113413848597294652307601971460136175763405754902418951244676282491712221579194372305472645214534125415808590089458319602564056745626540058159253565897944518996874218190669042797581484457649862923395175001538956876866465607487027300132685529422712112049233325789835343777443052257019894354183434384679697416401169234391850464679860489300211563142409369368136487512119152832803200258246934449477592447694048121111932117717651585825070733005583616560952905604805280265025365508890793682967133155442917645577313952948221283877367424463690380677674825543508480954073621855859766951346718830738943567419214267323097516774627263490745125190127933535766434525698742879286519013449969324893383593224726515690364218478287441276029651570318393268671448096917198250052182137860223285132551445687249548092479466917393794074380737105750319008926525081950173217497429416581109464986513848124462585987603408877610515694041504670173134968635575414389511245833033459265493668517908429796122806271431848761188272032855617140348369947019353130266605713177688136040435477333668860002557198671322752346977095119678088260142469688153763289458233232839361360623546464422276929348410556865688824094008549425047329858863716310565481215136671912419838175577262389052354455753138006520963034012563757029363737746731787197429537886726863540064397556745470939709963257669277504617421353592618411022033688355285404176569856192694968772382352094003889424736948100945737409218966649093819744019231857140723021308183652020649595664402730907025318783017554049474957635655031998214876384175279871277108264859437047802019002323648303065782660200396311502853267527938930089777713933543418519703385414842534451537465136411304195497422900501825700503286059103847964933870989896713783103778701570665889241054205957145620536458974195476920938379565408481489934479395923265966940380950835844181819500390335256606840273249234331822864474425858532380108501703815599337593509668006080822829364045431517927472453971395097278287659212094900400290808677755117214861113431744781934852460036060708187111681251031143601115986339892179782298532933436110335104183875879622229070352886951509143612786665306624261185514170964624073491950346616209213439432221525538976068905590495990902136164197156405950163892356934416496782358812326115394289263203529660007649107834469269858851618112653011585649408380350487658425603725227171975160862358954565686985368573170870644741850112748605033426626904090343016919014226905300774839735903540298129662825881467588951239432275228849762809250240645752215884775536773368152232439334545444408153285990009688175513949896111675405381213563356156621176917918896508751595101866658047361244675817932835641564229872967317750063749046768072469028170462136563467928171424073304835469094541969019216846987674730317693820584870136424993947846471023927855842285553546254022638983978453243589226791089278458193324815365779993769771368590810897964796459779366228058621306126498697502217517881085947457314476662436708963946881661000374301188736323972672399016732642670152401792145126752318924604721341954809785104258591754814178971307855947055945157290984324787482696456338463578276171696869938966507741961378162914329368801694816685630256399682087893461317546048247987539523945575938610778727397193281547759077343322519952726162126731497657580265016300496788122492359961995109445360991969071878825305209427710177844580750441880579865888646777356517794963483685999164327323419030147761357715664367226902930601139932284742663490421158445843416192627351571590247597970651146631414195088312459088790196902013564037036941190150438500365236618276963881063863755100764827876323920172469070884082012524404624624072374708338492437573683364897233899167231633425305812234948370347732965329472200073185336149904951677885475947380870533975991046145732806696272304050159204955653715735869759755266216419128019369361145014019573015325028210515939215005381425259377668505056423107539759553526529686567528785890543038186109993928831123501892165025410663906873709551826968341808300679304644301870958293575038303692974440792868112417903845253815002395422514368136628390901376887325935285289458416522614384529009427856683846800303348379917565252094596125849956933101159142579448343862036528799018626771062112156271188985709557751346581536280889272078579831253917216359600360746591041908214689675853844971908305037987026921900812663309268777815099498474425754611249797386535818623114857363596167122430529000764607711731912269983535552335543609961731775808624494265177227291822421314603459130539006631199882068721493182820533008124867851525138244892072076027996496090220680138499255648285978695805834817825665509053369767144781070685165059964774699861287312598868877731845755643697279134624761338283628329717498061483541946238154071989927414248026741550601334062338039080013794481473421364648302269575576540033525729607784276159200823799620752781072180366499972475761807611710958296286652858549441317395153441859967021425796510889823835916030912318161877968955896763081995689788178939851089611418873356266054928781949546840861038864519139141605619632709475971179233448920073725940400885738000637344993148600925955470291179342805875713496073676148998040051395751517226438072946538381267212094426461891685208351564757566037972127185857416123851505924614270798641827058338212739349192871187143310294861435816298931596115853697993640379832646920010426305561586180016477470274134317353864563260311379080920646217288428960738357137781803784863361656683849257189794069389105604003115516048318363657538824730945641324969196819622697240721414643720245017343691739655945110145059250068078168272310124538044030033547099136677588095518905191110508079476927344615727289226883068636318701298877875451706963065479640649049020681815507745766116195010736060464643216544615439344905853086345739671356955845836935424705305010446707217747000266005885047928360368818206984562681881923924885076122297488304648128521655478668210796830718611126085451609667516939782461048909652742051575184397578919471471582401613603162931750526610658739820547220267082314298670877417745024929083711158641831528559797831890242446606553963272924171931710271342508544226338409436429237066190923218324981577821311101212418143868428009365054985868391789401322457359449028296231870587455436897615793234197827863798739850252627876538222395823396790628216848055960163157618173360997879348086809370238503285200329659256589220096685273079109673691235776867293730188120011049442277841147752111339681387157848539914705653700887168179788828460982928917187523984267711893292568248949582396798686248924881754843905954099604427661715076043367995291083092373773465717492430871958373451134575552354861627465934002286392648649465070017610885737306091290946027469528289879745714193334853715546047221453861467663278383432268204370966555151529577212312317354774598346195317893402270962839214025026996688681361813992204023221988237686647619071263948606827094572453089072796302681798012223313590495428012712074367288778457131182582356299206564335419946462406554342357980066006052372921357873420881175833460032205543968805772519928151276406557598912835137664209480401645284830703701103127176388208244425973229655950467410083901614171705209238742123660214342227254944597976061005466089855953147931701530783132033756293462462991215513878726588616143614823059529321903483274077812346110831665547221064360031992721570241623818715507530461652559526631987691450093560852802098323104857589417355096931428346707827761234359915362741043079932243662651988538860676468475545271615122510510484420578294740242968548008332625194933143529914676792479400089178929572645253837109344123783536338784433021159368443163708097666444387487283795318262258663827684312775791340975382330808642188694462039808406849859333882439867600239987439976046309563813575050005450942621232980475073362274807054867937872402817386333311231050395154651658847180449812998711192440826305436179263892920861019500041977092899637041954386909827572865186191655789577687641448094266179239392359474922155942736153529277295366720668958146756032135609944800636327648901872487042098606701301267052015520782203978144196632611901145662507950218763193844932447392285183686847017699068178405939170467669037084418447570102219397586247172494414445053517873097645563695911746360435724361174841391959501870752692600435940428789270346395876338191163407627626286439419895452665734093708212356534537883877851963234011090712060925055547323195418641131348114289899068124799362951186582042548186468886811459651114271757549362498294894078169335340297921250993800671629173584879251272069492501693540158413840947360451010417892411606585687173257296001983359874367324794016998730076263146846808556546217022375451717180589482782180256338510554012864727011910386246798243356989605903156372341392329590095369110803176825441324353486064606808496878937762187502524333987475832700152956866128988911455004340133922236191105924584812681737257658200737355680458363893460569185717041166599831446046586073613879549027908826147789740653696225921856853045486729237833880324558973922260543362979003361527797244949057965389899210107704335490981968957481664856951053430229919932378633005861756163828343982917966653032447785280528600053877329981476587559058952990729345992672957239355823627728080605341557732809705265540093179391014206280030449026229307597107357655518981952076413820068962459600437616860201153238957209024838868487245332217392015258821306989673534851262256273028428501219310143231687732326122815169846334941011037576264781257184060414288959978087572172919923818463459640648040146015095523309642954325344583797025694544700667058112031001957214827779933665624106195291350896901844179220815896164599324758572340992991618218298668995482044804643616667527155811985441991217790780863005922506081824911760914437595855923977098015587169369543989254805066660061603503720070799892151439501182465874391491893658124357294920375939941363467333870051364611960188603432393978963593084246172892699405661861829457149294911244853983026247781451209186181404160956072189931774568192019851547342256769356758367401153700226438703775439456961073314462593100116073273310097171013114732083051648249214610220596468712831519329162801277595785488737909702320798323799759185382364963523093223210210913797045915148866459624081354136433068426416163820685135621291650117048325669784691311100741469012667416014071748633468911923851980224930662539315404537209953997035231771718333892635830589031083096974425994093829943014929106381790294376219036322437355811917264848398289447690867689352568492479259542429309670945085820660259446846613747325513060879318639807483643715036118988414651105667851082530038739890042544301755601339150834205447661885098971564742177040976509358612508787289226542090370598283688456148624057799918012552890687872534088499498701136516597360529427053820091760702872334860893731972588732099811979689629070401889695625549480185546562723660379677857378656364936738483504123035476936166240477128396842439747858753853341139198623192195924681872056283735640199554431042177370073047057405708323112649450126778968092847294668429150465477271339077366841701561214817187108306939924488118699167501980006433916815972202667140716553555280876167753085856270700531977617617791841813118040261037636411940715041268018310018332462421663515525637049431200209012257645261274705906782676525679550048211034774399062554501356165348042761712964358882339695407461797779758238044373223568637122795174712665635807674821860637151733336656592757537809183032191425189886850478715222934377982995888044034276635348162345480577649907799951716227509539945790742711339855496916333937112371391067856082871067739298360183253953532225946938328090692701381144709761099830999872101452666286909620574725690401380949471130494891409898303340969962737959483230129636726067227146192638465248172608019294458062793383189767409677148054671300805325430290804221874771401479696869215357157391905779232433727625903109613439603345840073790013024561366776653771347294816476745062269043126494437263941448417228074107675167238975496210726615921558920202167780653433554245886252449016853033256104500130665348137205177387227236107740645945740977674048545519472768735096697101368563771180873892543107803035832757455440741078466212269253936854197832434630276205636465941895472935798930459333202565629195356589689704077849476865011615364030865340814392564260423828762779787947874068413608847021961552609658035352561558975360354440870231195022944203405131916996448817578789855882872062081500577316016097636390963201820125327615579284756931376277023960056954615705148172821127838107130741901222847557637862239480492111991647096801065785865159961877140674386504552602352093767819862092070488265232520854162393544018210445931523486525549524443388474052395237162534517621908048546226227558314552095428318987382887503051344882901070343442595630087079303970234969835566503130784406143431059139615424938429831227447572414581162917703561985683572483727039150518358863338196424112617196165744559444064082563566013161128015482335933803008798414519939173774705156422037670912351140419804816674044554655692480144100683974095715141688651201574785457551491841282586949480559305455149078503289721722093533891390847975665015568511398222969306675120430589933062823407526214622622091777857099925095833874975873810078827070205637572354139190059089855130569946793909813786387184148478162844859751613750609764895547462803849488034606033510197867404540720058011520016147960811937485046157548910729700182807541594778665259241227697766402526598433435535281476205303809428605444208976876264570749407755731011001759279540788473022713567927339881494586600196911996511630749914088934432136893061155498881486154958684227555169696008962490325659237734311119455216097613242236992244573065414191006805090100311423094141828314537221583269570714679388226800061070550134807626120867619280492667468436794696594542599650829298924656402416475356506774722833840835401883508657687845000718866281549563172745188860896370206439669003499162001927516180091358422897741080478598078798238304731898574447160817005190319936659558739114500328575059872848935407503362062322061014037814673990965349248937744132434780174213894242343069724518821659783269924697166281672263304489370440402942590079282902068961195283616268688871560873646091901716575134568082960966860195577493856340791986754953114405982064745900109489283714395029589782430401529652218360120751469046583262292034282559002424734153210325272205048614136017338829497958916969396935488708216389336090249401374471441196834322420831125819392049363438833246409469093947739792066382835747188186628397567371993458161790972096810315416835478051271275310300428300459081609964027341692939816984871507682386575553094469997451739769134438320859341816498180753107627612790106353418753822425570388801844432140164120545305139574096707649032171685361735124672236118984778204884527640440912782582236685866537883230506245078568016553704115106660503695506679120784086478174016953109261454727669134052811663655690934091630695180416373101621924310603182343796903711401521458730280768158052564780711721198104171447265945359262167945762308669797555850060002696557432494551078361112712743144330595254618446261850717329190650223129782800242311545758783333933882999369341709517928585233849429256170384397330848761532152432018021128395914724683227704059170025493518180621311736615919041271686802256141302632286551019448660045102648799406267522845814606619432803187730436975127636268820474578887365366905564314322349762160513506339456172519745461869764426511123597969305249184595375832426039857337713080091851355014159104167474310983778939567080773952354449734611514905268561150790336444073802736309349526355597532061141529178206024153643624398845526801761807684979031405858858353510161717238634284356405502305983467788807625353975623288232346205336198653490097600163261326462178087322201969118639224244404846214810735128717375963615178751678386268006861424824317558016716027233890604788831184504380321452866425580568570683069317455622732091118552919465858561645984195721193326445526812094842748651482248310169091291167751872825791136208891311383821190058465350871156208508986333075864389576442696387474759818273226861292107978590046284913385387196740192222350987373933103585674203224863403795005007865935034126115985719884098912656687163847012148667220655906290081992834289428418334992826338823744357056791906110233875901421522974872973638963776184260599270083083156114113543969563930224901265746804499118870531757369587290907940877604473108681611161714871166039695844387125910625175894751741690710852555057538560792515150323606255568202200482230953928317699092387249577980778620137204548302549417306741903696927236347821237057375093716614623030568414324012613360266398966002659154246710128502395450081279014708143193322614177866838033524901508876801126237205488781579890455558197761089947242686042054911346808889844509462984425719883312140445232400002815124779010201623216912703421215299003277058678590685796346404759160011686499066177285523509847688324929119356103277175193719042397437596869768356340745997004690039569646487946199462235590143157177624282281872027233477898311192029422172243015976324783058657026574114396756960918039779771079787009168144654503112233211408858931957229740403860250863696374000962113595833421710167207917389569688576962835540976337644751996918079729537442262815487839275517455372513418461043496502040588669572556918892230328861985082897929906872980273536199926751522085521606165205678352498602554895448216022849416606812163069072858384331654406431562311941131502184623083605525699793359371927562371155716841734299642731973360922547321764993175632186894416621432945336893300038896738461997259784304786535375888774780336403923165834848143400903791764468605562082930182139661015498124148205453320970169275062642394748279083304364447817481516779817201165495133860673092602890393944305858935917132732176483634660835408769060592740231434011240870003342371505500957707944919001286608788008300137704304932342793812728894512618490648772892091918800538434595415499601665394468850437346328011124378360810471894974439283223114394953156585555380808699793861866311088106768227480746243587587717648240387360121486312667190249346945902623946105578298885756033057361051296988609343191392536135095325588451470588296717751144747550210231345595654525561612284715174256310832292367674352618843213865203673796338076363237784969257416209262763866197040034712758127115909559494357022155267577858340919660669585798200106581599231406351368963306877744370545743612852306522301131442764957236276345115322431714964915416814704251939795594166077376297660193558893359064774173092915888089502708765739754416662065285540868348141581791382649307380827162558021741381177748178406450284426982668746433609515024473693831389448297582021378729366372913978527871070623294736493355061209987873900471196366393696382021911086051773400818566589562586833627709538803761635936872484879465375696394128409205381033652144705860818139436337908661229865578316864514143462534540991030699732555957242455623860069398196432762474799290323804544151196147815773788798179548491831956297041955060058648483162899184252555630695719599625533440978456312272447151487413394638969292251011032411144019468593604924383176329214381339749513095539616584779688283573247288346042387018406407322138002524212284354144181705981872314937113298599884001942856536938854654207640210792635456545224711074228643318460698452952202016816615495850147544992914306928381506434122507025258325165730412386532569939849608399172882301738852407402667279967922774248341474681694147288215762849946925420137866988559966283253438958199284012230671921182772284490724903461737273895007498966133699519470381101637454483864132497494794617871557863166648357637700266981589708192364079239525455503225355693177307267200040722888297314727207313629306602271019285956718146419124204771946824621225092591231575852705830362875992261163595286063485324762062232741448612472061755830991552351746615574143034470546289954806163517855711677474416966850345504491639200189495455483043423102596711067676596559456143233500023733083823446312134743270712544668025960589974742730025172359439364252326025659980438339375884855774062677402345875907364118909660557872562768135257361382132389238439312449042962404585780295293027330156282650331472847672186393466414961293946054017717107158123844089970774051541869159141004758593223716929746034993287758330706613118176133955221271307240450809624847823075819056448377149680844652991422898323947087823120926010925644658953971283111465051536230802056274444695407948776677667206055787692318291734001855750040136880327519860320077948293197104359525774965088975847761902096299216870919209467248253655185533309485821374523670114226878807113108208169552641717699591218976074813958145463277579989678401884922124516244550646962879476553875527158740463846195491742632180479761836685547382038266853151469243873910519324789429258613064126858458355537027955559039371654230805947158100993709539106908805062363527142411272394006555737696809859794233310190217986858110035607373417497094159691923742929427070886614324116630985004620946005660852419116235006213950686356069955516640768504950545968756409491941623812019889436609466319234569353718058683662982611197130395139141577452866625483538076102665388549537752149670973672012230562190103061625666589281000846316949892997753611018776499566139502780241636501583087334150872638289653899899285186195436637896591498255117487959763181309279983017755615232669185614262128501015241984503951043248487997568289537305557577925154104416694530311826122957830794023169108329134250308418061327060833650383036395193701751058631533813275224857942766283733826265224068873851394115471323246263435961937131804127129707530869285034021792833716566518528232698887492677442742573646951088278170506762906027128953127689559235906133834303997761205897839488276425326716859987385960031825901454460080607503943780552819801824573958216344879956492126585513683829476697803126264504187297661419411936606715602742541346607099470802565221531785363748956189193993407198770078070473640045080883521064777312730703233778603804009906326413986429334746223169702535186964449081214806077206116164218305376719794722599873881258658995836488554013812338951100871436101945856624432148254685273193439002284237161807115330105236950502770693750828536875466336409619878261979794220104842115504831537733236549432599332150998495927368999461710376888071150360402783692290671437902377975191779489567982085904095913330220033116919260503512096628495054111155181775202205126067917308966181691592876348039624076191725328493251564921569548199005747341407344390694214706574284264633537398423405532469579871347839869809438670680898432997886642077332211550273265399751188933304899145535487784514244972442646379797727689599877937479225740590016894602516038138450405997571329968613757109252906536216756850025637939949609864699985556874655244247780189525847132537168198559310080550475921318755441455279256133075634047523870640288700238970548477339932123639981177995751126915711864322138534977854645693838781371705068776628918268225963592570962743240492961035623272371529246027987819596422406664378020231010774717906873174204808607711004361595472097966328013724465333917963646802000374915760439124161531201706776235759040082667120064189803709469483979998768665153174262784223389073193327175408629162313920565367372947329059902826742205322289720084076051694291852926400469420611008241604798731329787357085740898122885008332796008675975096992660551923837175164796948195418796737789024275195940871994833268587732814140667092979165376379862688634748529221371255182225217048146246171260631691007300075253593947841072155770881828503245505552172789196242489614297683803623497508021014722728325870859577388221938327204405027968648758446148099807020098697729390271082887728663262277965918718305763017784467623519731686755532819043219663807167601066158638153487718648722528732104020418379413355749645299342636578987523010153667765248089452461340761692518661307471489759739613845176582866495374347980964693050983326931733548320528037540351714913437487045035460680516486503357259317962811785010919736654673688479427985565877501696074909111949531651598767082567272880998837768521841226451846550089333446864890487077718857086968010180578784436618411674234873978865239709796742473592150450286928387572623771342174089609137358260921771718760208959031397856782776871829775378066229209436123445553197064093452070856016298099942053112639410160947719769637744186408486180408883055511387604817504907015825625285061570539634026832850993835851388594479623949114213905292213853221606339866503343844885994646369288707665658815399662977620418417349039384667513704136290015715741860689659405531726044693993985254844080548747790837621129454082175413492699987924028220903617064519661706708668111111713311109846975186807054651100283274832270583349013495131003369668154439648468056521041333152673298424739557694993934804958593724236715507854479365437214133166064765227913250861146889724566760897318312043741572612937539955837303517292252027625033724416571626639782934706086588216454136218349252924797539349295706334855954338961602918301434687174198997976101042590087314028463253038208129446321376437049481539681099015588841026095721858110782563883168693105178347667454797498304472751298237448678939736158209214011864348490081639427134953861179779437108555935652004736071489467593969342014277949647653690099533714962440208939818957065803243404646915041046881886656115555372366534606802841087235854815821489301889728099238086726413768479747643308485118628678575636460025343502777275674913673510074888225274676222829857328205038595869093015529982230968970977784421152692973450343573074878362982038987092572617148013489594208478849049475621880338004634412108018355503192901679071045861432515671394995978342111103187813639960061584096443275015912657195144871184469910558912060781852741644898442743264923233897728608890976431990492665324233677151098951259655056868051276309522804728775118231340235814920547467541453166625547698800873865674492145235654406115823390123554091773120868690489824589245144584400280423884635290501028283877581368661420356642782720387444100675946934826113885774692185322068674642564213527345958962498281753275927773559022006864334717100467820600004533267887470923821101191376831243456651400748906721547827605715993551369875301402041966541703113857921267321169104042253508297875350270702526758211057603660725694503325306101263601929314168369999117421804264966853953848093296911649075576341573111074044403003902385414225637705306075197191288568385505747229986805906335757739157044503190401891306581512085525351498206137318982251592186985610363168329701288577332854122420704868012600498699957614440492421390307520182040283503034086734789653791046568259311242671724727412891011402605068596824753553782844875581991571578993001423858662105806935730024918172340268939833180112579950427439506956513937562248483555009234194119517584651013375231080428661523146229533483358170995470773354384110426158625365829813818059709382438800476999297206702199823992153612274303704692658548068099623746202014644117635886622099646538234337298325881123881629861233509016419066236433240881808074935873649748584081410585267247910234634563884853141159466471367148461850652599387325495251004773842409544273618362944808489042576840295639705147888838652205658593286001440015729387599784064240902725255458423072762466010526872199765169682390470826157144153541186619964124817914577224046695186045023491523964002167090337875755326110737100242766375295550912687638907487891294824699933563453790033910926766965599770629622305727858437174733845612734256518393870967643650804942375349273938792458510666005604682900664135164378610096162388366306633888322825754173982319770381771969448446438940405432055320574602717924023756943168752952379907175749316925345573488693276508862228971727941189434773914448592879330293669531201107674082505984050632412911102185799842202785343824081133135445133961583456535929048640480146858597564027856436071837530701931343618744002886244833564980590226415751456587471065542478324713588057892492864467078455277289718920282395887407082397380715129722639489647891932356121506099981993419163359141870307497301181606066713207712817533601944492680850623357900996325678272601536971852188410985270755095632873634640262806170426176781294177321681560245279295716833299445026539384644156969464423264688231355839729187470408662806396382924489321319040661749431408269870444243866099238458271942003517091527308395676344785940034944831728510229289003376063418095647118898142715744233629817165637043608251250605308299170727766500116531446012798361234484920090345851246601790554837579234415648426086090128989166997653544150639893745402496159574366397743476887707586987292398043797133240838169742121833557119409841441923304919856701055513492586650040942442565074760598636430682549969521783249977321719180176115082053280065246357683076132257229513327142349868922223238018396633351057764181545737088500148120917246785227062577343574265672898301679813588757663471869017248724316763003187334144622241729560297795720689831614978728099548347258162160518157727672013358769882349252018967333970476797619010459480401953593368045919111258850229733270988515723585468879408865021746406785295452696441941434232408261761775510413005826670240393038920361511764825241652176486144481274109580842736144376786698280417135214030787891865026806579977360542920085675624223734357819115954231484773998556937110180498588469281801705105934307234855001609050439485486220072421664961591690228826003743332746973107861350803150931185761592864606572024588288508860317521929540389635453426020065480060495964289358591300224524119666967234043068307646707396243720430070200147061534935342653708505063702708284645294466357315885277651002295774481173020350561894451889238382858833015292826140023535529144116765833509593404817696325792336732130573941203836671467088702435538954364977388665586295786178100015480996430225663189825991293813665439192366390114695331933513693853573183358622132667999863452256551296289051302903442162446099521231285174517141968323249514156859465699021664918719681356431806182484296804502053492448349183221131868689104717162492716633737428349622037124398748494490526358567855894788015582033319249888649767631473227116743763019243357651786749014920450921727778261079082644817123356792360313865519058750111472908167185231932792154186772083800324547622181704867741399675329013919023630104447978827447605858085779069658939519404959786026063869102146819792799852390214833164108489600462828775444652482083059643852388283355523228992398783730387065314435151501823276207116036156262069793156722054497260087583513425593115577661585032982335890065965467602142455265049751101000418577232603231922221769856597685352627955094204570934180453818373227580012886113463654945560994853981979792969515096610805513758972574816910056105498277919154872791882390374416891872277657461993013841636332467954814958990041645803813221781222310013231675624674940472094393709274691937144505267875418568762271351259369633142430612089321429419002188396949032092407376872711907367803943206409785426811631010836664658462222054627275811402303656067601465209225627991918309162868890746292270223340726361248104231560727231881671264829104099557344891015167908600558200238290785936505723636923649658291195375695193290415343532026417591619822711812855267014359539162934387592423016486440451503393213309447600883777472160912877482527878320011004336357760306497123408219083951194053125075656915572567609404782649860317764849747811475297382414027858892390954964230374645634450288835106187138762002191315182546087759831195625472114215971906794593262623671748419359616061531729309269650572738837765697540519251223788392679529465934255541641727844824530726124189687225247691611228914095958384891420093309909462654074222185726647943938434884578650432818746888528892161475064023773267220088970140945238420216188663727011089626833917163269078020289399101367039407559199082358978627151067143637041426217121772742268395461480465029726142957148965128377571244015852628306759580642289889166410386951581484870452303298827470058724265169989719606898271225626167685605970523152097833014504711963337728133313912840423318301932697001066140327123589284940884273988725539207688941703751672655630670359216028998511005549164069537319405017674950700965751649058214174954516863449864756553320221594372205244519866022680482424608623451138697504021799713632222601378247054691747875096421242041173377952949338509251533450910494285941249925251586901476970305969603647656073884491776036278865727007899984935160014902730476956868345049164728454648667729079089685335069060113823365969498114421227363466684096324172904503738725071450586307898173125396839806916508582015045152710882471681356049022359239134009177791410119412902522192781956714644582895298871743445780940991158482136758163911520989693649449649901534495324149344602929072077686643678135440475163618176639864314481204694276965908046023816535613482352078881204459176810492713170693442440281951926720644843033792534022714945861939978500557300356229650374286474165908677429605431487390443404561505114394672929552671325352121331598098814711999003430522295974522891152370684332003114941620679072524405017668806548856994979690645868270966027158366686189264162639272163018309214116518436880840349734395843089075945671841752048906790809083608557815005684969628844398947984866261802957244856980623853778008353242174719578743130288706293499329717016069867794387551481415746958796539539577361004867499589021869845249592631848310839445831517792625410088987893679524795523714763077003273711616030561646343377961154938250477550531033623472977520428509751155174272928704432034845179004496959087719637171421557190753018438469484542213836355448407901903647016265900425661239936030893214874994011724337477992708202922474139274979469204565373306683685790167132453675007022187391985363146569882271917169967023691556426319058829614978669539148890078490039234050172239516449137249690441630280128641469032262322668062369998754808983910489070969810011398923654623947293836925288743194632650578130924115099039326991450627025572749744100097667330338676104239398546751455970375657356026726474648429246277755050190255464451147628902394702062600596900283338282598834004351134552013019062386080107949883592951221825738002099255574312774375074773489188360401957887311241840077714696652418720414312766583953760519729565072845058534614908873663816468459670904467773735678660086563229627935290042806374049654328017657811904264306382770346394495509884881947931662814601859224015379170812933175101571832927040382989142765798079350056582695597076809245943448939553089632568192803882262080110812610708573335985065420351476203283834656677576903664567489985838350665597874899949720972005915687773624079122263292819864119491745520608640800976148625176167294179509237563047802230262224607990956966659272405490562725722960318875322117040934837401491166292316953399329917810870034786026786755119374914108673085540967164321453226677111254655045423368055400029715957897423451081533133112626266648022355236490511626305593840666514733851123301432245115531899099717600180090232135353185408750511123393203753945971368516453234514796054251157650562972839647705378094988558663323354938840959988388518271023171156216399235703367841960061902774515697724637759248651173434857382056489871643088363694849814635781453697901811734240044452419186203756429273583434792711522305346835347326204664373714739664235557413657443715327086923962662384414393118333762073126106766201005612689541691218644109127955552237030595369359876578190052671608384018409621845793871324748814646516508660954720544848347115601150149684481562747715712853026423098119662888730270784609445505171425393694981621748538446285167893804023890414906639143298085780971806132196666493160524130783279777622277146626703950623254859708355971883046210553714124159720734981969899588608144526179012817527528323511985136661709008660811491182425300113172310973113116472064383659008196899183231906608462120522824410596452999123171254176875519530507586993348369071806822680848561272285824730197221355578504033551094694959499685871312885697618463531992029492023862826966005667222638587342713772704905994967430085666041643118432401440509877062036526978419255620856844049443606105438097950091115265456276105683464759054026004215010131734448270232285648261805180930968942518759058847723821380161166658089110484844765101085377640838740153689674310498145867869029119814669210621291602025795594843557334402149353138876240681105901551751640474323118236489646535002039342750866679513328730739804936751781840762164143302530433775598344319913549527590244374620396692058425681800524999042896284627077947268332005251589815110497938334614901576774113626975614404390390213693517257979690667092645704697676207612589375962728102311691454642372022327298732027478877673390941926072596780676331678019918707377897929871544648783421713196855275019458965516203674042553500235390975423280309303471578190799147855523774027839785567366594091174644896874176717891977738270083378188410205681077470227835656812935481122911319739293489661861913879601171086494320478159735592099247282896515627811393602175114459217847239766705577767125000434127102455185620794518650829654205005574186164166448515601557582882282019536000830597147812192778091846094531877173634923288242390142841808978390928951131310675188308291948238949194880343770609144414258354316384966338371424543495787286093535433949029427574401394205202371860250586582359305840852244338024281328161464943202021190353258235314063284695049305542983004845713105406353762509814861853968741387482171950779237430765443844926608526248492403098621378634853515834461424075374848387137285204789089064730759533775116533309131048451345952702514090496494103065977339785549058206103578132072623113438084639502860020330088840583231284298419738220870225013698231051057278980122874513788299088589049782430504245372582321333764803053519152316478476214471280530779735367783520336567781145355613469158626322706435396905159029539896352281883080892610236790344772076461512925595186386864641078855496539982697274660285732368460788360195267309804150240412957884025587641461738228310324041364191183904347312816032411091345994793582794055506896975371893086902086412590966594750648751232060921658183392531827255381182191587661341550574602582271786329924580550025833498208230244096560712590094520598922451949708200032258675569311000546458730322687201314182693247128525067852947912641304220854925327068332880466569347665867312567559641381941500479111420641301601875464528866507800301590967061154885327968984610170415786556803906555498410337893247068292463128053022604928814613563477609369739061319487420025353410391636034149198467208191998686397935966764879498392889225255000277699868315006938752110299254145347751534128485325281595871517601893251283114848869393418099335902239471037659580617853621587802557353497480965900417676460063615130038585342651044620857712172735029235484937853284744872940591447273077559666904264916216108899995327028106546360659889984661854632209013313731312263439468569588921986728503595353008267462335987395687547952732457646812992348838249589033832170862769645470128847433585943066937010480430774789988704794622042463316640444804275726600927577106610082558935403321920057446054716071635936247127558783868194163430563810614193712588389870622720231193937389832798246013294903099627827408317217753876064434547476514968741690135155373933392117105799187172014432011484464247404962642536574174143126672715519748662951505671004423250261237292199866400403337642955312183417859588114460028716583838936457946946990741931873180386404454989579568360294358858006523558811460015541333223831434374652224803594835501805091457895800088148249743723625570685709408015285410656195349614134061203799132529225363560739076916858096092610713168526947868633636103572024904848593794524646165302181556319528372608345136243061587861964042747329829640331976654014178413389353564782060727461481448167765310785753081660899406179062354165094067226777571625640320062985480500669352981964379236273725250966541578915069075067346388527325509545921197751732169044627355304440377526088094857506052047801381964674477485228243574973327826880699654753354545820974487039620606449361791774418619414589956840322702574161618665340029000057830766502899314932492627568357629183143416718921816094539924272505459031707501902256124742409820939263934431093918592364240522530506123735794430754955497294513397553632342745108484393987339982738007090529006130708134609588362986161060174901272563743648819718251714505449684345415045261753217824485716196513532040255250761143692995769408892954870843681609286078885770561275604969906773716772115861392323077252537791989474931115663229032297660481897808035402765413577943974191699683079329740454509219889838590059870438533929799994441211921448026195649970487314355971644111760932834843288991318521739911992629500214497726985859869495280951864306047765781635511510173702727652949313941050994474880139710715942858468732827295246192511458576749678394742501285914784844166538298796019694128451579403849787321950884947719439336591104561576555641973246971575988767752419182130375562966258567729873196083162462721603896132663546666480585191014463105482656008979805017888858020865698432110873238490059454316032267759024686516023053705143562817993857884952528745230716482116004683052294047493897534899715992469197869855184374706567182747285586522737036049193223812105619775045024419313391229728723123994369672593337217750190335569989062438961786765153150337247458647319063034408731943645170398617169930514986390256950771025898676215752200783163529560372547695533897654352229899410111341762111597988407289559069668617039875876259117394287749655710333402044597608981083725610773340403732026546818936265069848784820922443522386950227940952318271607981085811378744392320636500677661216565477851723266046497779789997347181572114573789539334913017888444910294123936755481628739296427397112126258997237276155079724719509447244056969639205758550737176137390123816002468346294689509724036664241862622424488107232985401974935769481379126282595972228088178220155952660461301048363294222134480599393579090863599093844127175344973266801994162838941176754556205818398317727602473343762832534272479074514610512346208938797732281155546605943321934273996919139806071434265991080839516265462716993082942804204726012230403390331138360368299560039607036765258610318002663053705945054430695249966051364752393025526420092525815583416412853377009278104845785009920666511494484596784033672888355445051388750229185637070964015754995738842061691292106116501769922015021313403295614170360413304530454585237011637004527163289335235371957099893556551632072774464825635418667699789871776729198740882993508488905719977650255077327576806625361279661888346757923683650177737439918891906843470360781683121774448246705656334029891715854013525068690596824196879698838460410736690750048644217568621563455913584241626547864066634256979068921498748132755412438417527145525701395350876174580410721535314924016059800525848285831626673196282878508588443056220470616340457507161679864701969083101535810551607013387062398095084066115358104696955043760701656306430145087105405835410684279832440042031540560053863291531864756898482614470112038629777841380646182920448329852266272212066864537298579909983881823025224852383256262113052334717117693434551215910154922269365547768988700086997258948472365839500629981352839071280532158028374288968106964287178027963290220434216876456375281506211982995451127516736631518656630466129768336793827496953715139354414611294594750182715061772378913288578432516880694309494562434480880708500760468853484113058225047203933192810308862702998632101713147462987432299724588191869078283865031638153899152138934093513014619300092465158192554183925534147426795958940635892520047745071854303792669780674420208275602340013564478606247518653533203105812541389827746634321933544724298648132516546401933526169116110908064000044590849139395386628966293407088842450209160448106910327811261518834431819395598413050818977329063269076017080177122408694112724112819855500781079023340860217856750568016917232317120429570853726726099215853196699495180294415062896987261784670390375768919895365083844505713160035899443474746864768688718472043177161644368900019329824556846353803041895246433311360942190307563180714416657104985264608486501859117233345188627105707238144801710734379911377682100495097914670159267885955526061867293789862496503932338318085522584903773355472699449873685797169089655988454276792908241672636919668914753077977826684758045481300445625909675597837678925512303281996372370656372488757414184609591968655147945857271012522176480145650983202810743704073633248657982415335522799564232879061499472488928527082700631622999520448852774850841163663541381999663368697667736675147419108395155542101300437393059098393379601936388134519821282345122597235800737317805940406712138359069319534957371638436080307373365632460489751428256982298839880212002200849398048841776766561795264039171278842813774724277667114862783405032649562993958675049841153271956000952504900075320585557318079002608454043350358218529581650720337094267970727026503798100154806366369535204723666269588241525562438909255512400355283266198305602092781271081320023822787749990414763915235367048808447092987032524719191051588640786638476726076112811001525811591216726021836089017188684291521990441988504917961637873110884955758300658449653627452669471940503101914701003944482554098756608195798632072758531675069423942545684584194713986448926820662004499135912799342064103533320816183848615499421524864341310509585242796118878619601354364754062314920729119064584054378922156626870027877650350211768807714931077280108792291586951937530179643760560627750652283738245196330751865723985973681352355780047289663442348368274881044656021273261674524320071100258312956548370923663460810651989768825289512487802646851103229059762609792260247872852882728532495713081194982035004272739356015085499417778971531707160997109102123030612199086985964092044369124529312502422547140606204354396495420151740918398654541917020453390864928639452839239865412253676313595035473799765275689441139527586235118048590319245515493022636793973813154709476559374437734717734039449709381928874911597713041643562584444925847719731866180917709166915086735311970850233714506606988287497907413450322296898609422063131943735259447315583322677363839441691550957680023180361265607419961974175937724059477459404331121318605078018252508139017203679585712442660735931626906253287060696564265826509988174131372100560617531284109243275821172851461834946267271760411395612666951036335693632487485244004467583167601847323236596173112992676596631142089447525929247059392270367426596224944666800818695357705236240576532761704557404248397659750039380621649389024211390087436650875733622159926950348110349319258314472004083876639376489994187864758494527582362158759117013644559118861389000212764424668296349697218911905854104139457922527134510432409235492803614152802233295039177112202647236737525213916956057677965415074871714223325131398480365378560815060684419186266958697587167406829493279374367195091111624554580808710719642250091183208379941921206168653680247296599375865681314548459921207591432780309320465092374393257684903104328548424836695925541544339989380599062275224515472203501856232354370518812522679228400146553477564748407735648279487260367500908470874344209859270577590965119101892102416307958504853896165240350486282995239988749495715809516645890333613865895188927220765929808508677338010226786334586432716356072713940474656028453655618667520100650483913257448476578359580115251241005971903899049541065061610324282322533073306650455105194458406602406719079338335727011791833836927472280704638296185738568422334961727587861967523804886053902545329798171278013489288901908658935057769909493901711841017809977052613997976415003338550008201519652146695962758255746053578071769662540257441161243479193481093402801598341693983314668811639143648546996308161336404069534704758424494751618930415435055464165501810644513355756029977642902787260267925735301605018618647210334485153942733464908238105047105341301226137338904769696460775810494849395241331151764846600192616488779347902076647798412354169323115903551128044711415008210845872973136991686224679683208617550554986049612498430322334716761122532389375356427286853062731296807225585633037006191330769916730437952350008258805999384731675062865632346605488640614692088597282341099591481733377484004581356910379842192659105872537336458203745666924248988831341556671254874911571151657306458931463074560378660173762971300722404041100574650744257930370752351687363046268337435058317572873405289655476886833877233139694066252635291184089044200667092655373384644432129953562903546597367404160853725781941133301233398424730173789324731246933694932445922425171277331279277525022554622561396318058653125178826252137998958359594659470913219308111075416049575384388481864979898576644776933507649931986948312584918148390657206507570665413677018834621257692724727266453018842634683235784684096492901807247031017504176781755748967268811824227917482489615317679802169821770011140783700064107345980030263387353914638573777981600161484693100179146553469375062263220057603214371961555121839945142331325561846169794047954762969844440942008137754603707032626211351336446584160285150892823165107932293250646841160544233326929776747440149607369590317219782193745232436272311142919470838065328609258490411555568598390326047286956940042224697666388338654522650238936227620408122539841872306207960587540751810407326507352500245612080721870744594527164317899661371912029877657929218382932336497357217976645492917451195562392209181405897299024335146414813956906579867937651137724214549825865759760884332997829653071011475058083487874506295748581350463676655562339430203177160561926610730731062035454653261743736785006337316442411843319053298172744056847891236817300878023378754282183034031476942819401331885782001103190337182202970545441246526751860567645137595427456219638143169282045216507724754115209797153934538750052131551622963508931385970460034445075963953706185359835547735526018134407300463573458722843705047639974185898035022567899101516118032395604808123945414208842747386375570247497580286280328341335681566743969367887826437168795897964951427675801642087004608374079582934225367875371316719575667573613531818436639082014353646606015553009110776344157309520544527191454669689380134452993230900087425388000539958135587145665765543209857301025788535387229291536088710221871720928895974986054840217336242654070488534547990043708296771068214335895518032333344231849590770931496824941267957809465072111570914112001683274945930684958657154155629659594696876236317472003779636419559627825108238869671621926964112302200731304299764568995144159946179150930799699314175606957461834299135143562067598586016202494134313443714623234863483257231362922282344264489474977506073501148031175302678272681298845044184098816174792287723357621984611439613254012902863882696893183216093925409560064702402735383923427924931702486924598663294027700154810995313079792470068328013752680828081250846835225898993631064983035679464334215954107276943015769274987351941234637122775947518712408546168229180870983047660104647457617113043837241240489379200579010771928817230831342473942616862691386066099738463500507422294454990641695905362927180602520147997983200764197008339570864600189113315128564160357525387512193301306943473351628346439712149559686816376689286838343570885275126967176901249516180560292919441711853811681324473252187030243632282423566570334574869101126058604779858453279372738773520647018829107635366892038748317566561647690898480367710024978893292843843306854236470335668820821014355787494104849010882038921151816762184341390795731510452713909888725304636106720935254520683381832422270223715158336834801308012220041653741892899566796524839496471908881820406230153505067419151555801507929043501109999104318795923480433096381892183562657544646947143501899633604979217142693271564752392274879500894149451549643660310649004651456466178829027664811153896773528915003264419652584497634666083666929692577643119686210404663346948548190749107185066910902354591183282043821977016885717776209524542340095401395212456879999006894816126572500911314233435086862517443498435913432671569504334533807414451082898855159579043595515661381818171792777839036046371136096224566273382298539948235427322656332385193461663411449062668640278167196601862458011143828644855554969058912927655918928164568689345367663097247409040782835862902106877969595819989097114206715778545142578924833768576138180141626398843259046821334572034252516503534338570926135748113279423497670485628985524145184335323182609250302687036947434452024407060163882998833272189301249532528210356631191701076394571388729439190870751200464868092517904027119402219207953965372673661735714693257800673252341491574999356410193957612278287705752808537504005848401079727317530619485228021118182344041468054172301257927964804305561578426841507567119705120222535112349953040632137249343700580391793495517955435917211772171977169983203550647284875069030048280833832172813083786784340265364082543545003258413088199389545462353312094484535231997753603004549277402983405379186051891776925994615606767204813221573077912687543549136566110070656051200779207813088637389187649197466673916334170721134149245266178306652993562827709702586912548983233269081465036702952545266229330708878077124122593402433859659098967116690720357898906642686389480695064092297783714242991570735270175722759800108134635378496339439914122331326356919068199215300447140196885325821061416389350501694321957771123614497079369970053730600479963798777447701374019531313523679065337883482523062090027562556525037017169656066845880827164655402871112628405389707230255690251470898338696176408179158301539097009859538049713007385952123954104894966742127242354996573819499651929630296525560930251858632329182247412544109378428904476238375767559678987017183561939385128344715555740085881171284052583789787491181644374175280760214478687650206272467517209164262920880562757156544568976395377891722763800744461782728762029702809676982009331715587200902950396992841947058537573338156443756056391743939445112823132107608653144200177114023359024427344118332865785143071246949111268073730649618871887504941313342988227982163158575863815179027013290046407807617435177248850310432724591539625433336781746997990335385254958676962300861430701886099890716329527513521040882506831361938397860499780601333554872870572627359063137738425044627825297544573751787131404873581150248966402484195801081153433829158541265971222742408567081981419342737809795153636084269444083840007048449505533437752939913678137401201435648470912434564751195038456298071812400169397372185714586473065012809817042570051717428303161213002874364466913558493269840935639275424435964106518336094080512087188293104671723399885538702834804451308703518982554614830095045942403081559672502570030162079983761982932206812234696622330794826596887269015138051958283654793680514351374312104957289622795553002097530027854343254423799148949084706875207688321153282545044741585819811541897676276134468163107721386708676898034725552631663297452581943726329475266974517257841419496015013742099335836253581234791122015168473704891771736433564130150747035514863550698359073962035899976288357141413309652189949702311487234911783406472478987412351135370211194180160387720940780731748657769750878099965331302434319328842980738879161154148276954584637788110758055082792127489847915563163289649810308202673208959979465942568728935783358128451764278506601883246880253178801164500448784570148997139234919874793749790645299139376562722233083502418901266854758238265643188030297545284090246703001184318734771450471789912217459937068342258993352523336339087900839305787588642764048750760943980445971148832478875837248163245401339669873943470571026499837586355895066196315756254994266879060487925821516162841202928744221182355437959198911211447267864641372975225739619357565905028157636825657987802866481727654077403632354653101728729502987978256670190475067956541812585348263004647598320718844888231357210650737280766390707322097193410247726102295061484870477517164551441799113794598402912631616179543424898429512586231947146233842213912137940937850102165400056391875869025788313737535647494725696334653827456885489261279075702980649227279380901407916202596067007492527372631006141972247064599420061201847174613445052963923623706752480533876477346814454630704205321399324911926345517035018799049531465465831191820670669877866226050118100705956436969093108375312874732402061566344690292539083523678967349577097318825137019737730470872484147465568907840996335793041369074152334885925910951939527014394750739920590282275388653723851440107394536969047843719662635639247617205888537472639135302013491159895115637236500857682147264021663060870278817307242536373469794102292334199705406065569825527722752535367728504430615026103897915802769068776672119554731910603296708611993545757539723446568503578337440125751876765527017254021619847528008546221528222360126758040769034053109439707612101869006331723203208181853946717332140225474490527424496529530558150055337404919090847951100790423085006249033965055320535250409828797551116315428845960913997956735316340988490210763629499308080487237709632730763172314514623333266740811227724646793135745143209065223071882864210794651496398264485233304835384500961974665924982660369410669632053482170588292963767328796759950007980422724683850690133534037692528353150315818483243928576821065940021027011777941374366029136378036873771543075217805399075682156042566277278674611869399478852666115897451157775507086583313551904243217033909662394838241065004868732742612686587268220997147223452836221574091347088793959624805528777057190245527885267060950997640237869159099965317886665820856896522427765088752257294593542284288350203748715158674783859519040100780925084254643074653269185746372951029685437131707994792395937383693407943876256862897169315954267583800514208288545147381796304963675020827503210330131435493027765336169043650782362528257522591637348425975582794583644014364186637382560142456262177777782911691085196458388541698102162513214138729171623201845588725096149325784796066894191274182983007124930745591813299712387726164195052419009740354540617025426056913248747254631710898859805061919595691330189308494063411183373488471179393112459233293843211485942753200546029467740166348344296629245754475598192856254759879326253058273073943235803130920507932409299533971645916526718579938645620984402044365125874917774753659532186267974020258903567185104997196516918861557267003982216180980706148277408687423880394772826778398503134399211738452476315368533325032850287300138356389554542702178675793522540100176426793372761358699162615310160354618453168874827139097735754404237902410120408768426950608462079883394855370458122293951287106294501475462336287300967685930441480827425824374327471433718099383150225973227051344934115652605477470182456307803332531681862781177799882165386124856534526697842039270047990104922885025739706800453981475852047570712099726834809897602489663174645596346072681869717850299381362760622350532373525785436528783181495934889771093670497971290998847195536169698022725104934545586363516630649671648286085190384478490180779800267950583070726236578715481923720720603866184103193999833568251035182997804713243506998906986178896565864919542194842283938226345286956666147665167159912990567407812458419543116317354496286816841187270174460077232589584201465572698918938784605058210039627340661952687398667705124750949780209219115859481548863426687884572628738145204047818446352666523833173668435035136220517142241384150067259183941374848175986544088069676087772705705662791936598101092475149427685056298301951700055547005902539405792367171740206727809460147788877377978402091602956102009981007626872542555542404495541854749826738760319258105957123743557732036381276679916450498140629810214791709565936308226741098353504577180743480393112946813653607756484220587426877140102768348203954306651594710503190766126190934457679354827847457034541758029165560495616671063731233171651028017932892821519949593961340125294872004215404776782941548481686425524049680340941936082700289876794613446042700069980106031317531494712709027397026841615309606410927705580234965559330101045626355244591330631765237971496082653567972015785937257399396830771373658975044324197939999781629706173690462373689189589010177088267710683313584212445312326823730404547135891834542506571961212442034819941526358087303346807396867472805965249316503192289627603539474073558758547926275981393458112926854478011339841655509034889790748520561601084568423242786925036723266378529127086758795004477358350093130249046179626710263068993190086847435284648488821785551770888234917629467045749137556325938930057536812656506183901382271411073263268699658016037048986028195780630581927725074020564538038631126610711055037768130956652749947654637505706800582352546873340492554682760800435725729814125156791585870774586545171860227448510054532036757172349751314801664655737152112550719984215715347835543905802271982616923983822578916893292779691648424858923633537071058704207882094491170759417351678526228860131290956521103576868641324528707748937511963126430888955524022946534834184264119717011407041392813412120213848434834733852498370480243024280236148836349534362449981285302355459521650106764624852370255537298614738060349354051959278951366433189909115237807367031540421472248213961012486126098978558814961040628771818396000634631609719962339486156320109425755674967461000397558945570054060405583820572711181459696336388835729317798924333757305222925877080044551171130935774271971787194933552830634696057940390001350001148642164963886586818526663703370319502587593897425874016431724213189736457759033110321978099924231765938844270428633454798659645833256618519105214396909617681667114847126205199301172737439763235749878971490923379238390628132375323656203341728095667127542301060663596934346277082960719491652292314076329317820431678909556654528776142473107596648966422608372614477548568163049051474472087939404448406165580847429382232926412744548759331865030074570380011792794257788205188571532084707134359507337902792856665304393459482476224430489526823625971517615135957084240044187531822157297819313276282636175757162001091336623329588405105278289446357887098387467150308527127436364475708396637539164137611128452722785358591821151030355172795773295084091015029827539570251312653938133276279464000416443689272040777516995288774395887676605560996440618331128611103205162544973970372005835298056420651600572397579994708577769429047527378483019756826043214583861074944069176776427263531702865562652303329068566148611231369484645368278521597669359458578762142368450513546736106639034477467639898297882159061148489674496016150874105964654872912588681930450034745070484445239995280670376888899607482629175634969201788764932098407843564650583471145028058239335028474248908928867857359829156163199197314425429193397551421575788816531663184841815052087482976562005659551074317987462616175788989074441265079535929708735446151325533854501427924754280556067092144735920557288505022674643556585092638264907562588725757068901086520486439264914529940047921639822463011296590260635680675870795764959468067881105770616086924513086879483131789679353984787286719162384655933322671551987082328101408658898341544338949848296774704819623021198997525986524216738841696565125613024680488486388139811978076227153631830089330164606921087615108276735561420450544256436115823241194505250202554097169498983288341119615112549485534758792457037414840055747455706330377902366285650047824600857300691851008359719830300661408984028356652335658579892511463587307211176784516670709874862494514321464498394909748360016986441257739204031772239112523082829115671861515711656210922443692041133649571231348631889657287800103895809187485587692580475017559835984156306622658352392880946751501491727489979219385152877329433435324036794575985049051075119979931065022345652600181370165679539351061765720716819679647472553962849059818168647718030998123362130760385029487820915060108440996751906342244054127175698064640234594795449164740951990243640654160791950898768270534043874484315946252020829961440245055261144065770709327725119610807288868981777825979206434768254614305180284838293849003799932213683744256098139806410090991222714515331434388054621212045160050777405552604340602474185444851037561014986842783253446315059982975841645528035866092358898881927970649666934534612818996044808496172962710145857383980579021809328252394473859697365640883749824974077986639803670276328556672788622832252122627713730157598554336342758641309395463763796175421387554122116680614052725211405410513488204378482731199870629513679209944099294647230543176133083112369188912694118818580496972573499875676071754207337007878865263623009129779471898937080036588830231495564114460870172125341609840229186623104991021141339530748912860668288866062533544122829849120759685782062270262769815422144372899093203024236399083572635932391726764302981980137081693964288293299934620103341155895695529102929873794500441876131898387756809926421086580268086359271289250055523558535280553595096016384389708721832932343621377556651141126148865422131619950174915960366135515434254422096781724442308839726110137694545748879518914812958517778567491389933886077867565858407577369506256183589520101230322416524432648350913246283830367316067492833906703638280385393988898790120731295155617874208304241314187168241635076495764940101410039882490124894598311675818239232088159291094740991118921237147052992594203393658787412979798667644737565631140910205257780909461971568702716099842942268796507950327617024901913414145992046027987868099465415122559858917389677986815618944521750582638260439723504779277835379056445225363239685226589401456113159778674866180277161611124485788883068273966347827642061180019288797473094877867393998468470635030242242243531141641134603252079840145871712282167853632531517468588230576738588602636477189507029457799906525998970781694008189827886005574466932107904627661980362062265531345941758244187649982718114185021196925478300052768946963218912008353716301166763968147994775793743793341605512691773744291375664386892773866171886619135824793162487419215329961440186802302734443636382030290255325426353935128973320326157870010267734413072963755104966156938169576128946851320888714814905198566417436923872470066556351046546575783206114565996447294505540978818240303762175830961385301001697924523925582359834696094316531715931663147448811281537131707177534670045875529504755723284512823915718935468436085667093361499411203011674363479639375416069293119513759624381201131616481920888186917502332991314650509252442286248463182649752311348454160315391230395631436584541539188382946757114335491906741717848017768318057256825918360806299194554287772752178763092016874479794761679624962715823166837824080548364889168018883843234026683168101639227120735377803134605096394880516029611085451878659216448980235495794962524150870810018590516785617532675788483435145835508155845362340483165555943407675097062337423011646874325882372064633653318185478920688077938936645456763589119688827771646986197950108733335913664730845245862364050380266274071591422884390630733146097350131813143689421640360324170702147700506453369142822710712931177716910109218893184153950865625079651580481762096866050380775445529823357208934197283887640123179454754515572212817676205332403047384884897434685422682082618859910663598479045892273584359536899046749949662424469743904413585723334303455489174905690130651431581208312605718660830417762838117255407839630178456331866820699879738921046397209493175553817694798542177492371313080054241177484435400642022366743190168281117702224363577901415881458347624059960782178669120055341365400625714453667679385069729759944852227554011477192611201847718611919999918163529087890334164718134073874770594036815811265447820305425728826938268958724310376054411348531580420103236949069905712803535254397789208672323894167352283834587318944558662713222338791178410351090883328658984198421618703985380219317262294845647532007840495818151123123119391855312765242228673972171192839196318025677655184318208566513148617417625760260396371833374831060940407987548626208826477465155035278005988351552898980762395927133608938220317170798334404295112167399988679732109733580383614969454705439074013724434424344144776090079807655957094187444875951486371511490001196446060427843254301443098232163061257799438103636601151043621985361440396634594339731567509151753519999079486340596459397246507544352766919627972185010633228122940180423009805613465430153825678433367238856694142853570537302776201322712211377823366410752751884136024068619169864336509745079195631228851939210518045447630830821164970721936456923983468827710123318377880740467470694539041550811097479838794243340818609296270172045037099431034194918960345201774522192410500368892792617646442739157651907206294738662369595144770894266418889201146322911477977173056602004560715635776421838046506349977081967789204850871516916805356866829155854572558472585785320675241544913802778556989954279391091108702480022768631765616499643009486488450487852726850324880911298544629312106498779127588515863568521151743864168267065501603106395819189544839802871649857514214113600355971554526824993229561280338475590360242992398938324548611839807085475404298575953165633847098428982917599585558011575458652743806666523592561640571765678039214734216761809066639657520931410573820364650095889670834135845469418407687336340847151543990095987750838541956807916336975388655421316917419016229178713438309726285337095812875781913217002708501027381082726757835825535094183219848461534338372204970461132624389079053471292540869620647206597833265130625989632784971671544206110288179298354951891397161730234757685928731241309429456472646683407474739206396022234169406981768125175894423705156369320927985277731054624881965918367629440951185225981608848055853817171726690395726603343745073493205969210412271252458528051676029973488489602337767638315366285755752498505878826451272962204179431486135761395884671351352475210181885970990535316086503324940974830143453042365654417616315986773018664714671597594476929953551722932771990653316850783140950879327713540488467891440838383467651026318641076076029592024073663741409881133317205171391193306776966282940545439669292662211417506606243105370319164081207620783363856921535550423232509436411803354705352720100817127791831511464822520879681774765129909034272188980776629039882485639045667266747963880792684940900507383068784935574044076431636901061275986223878942037855556473715736892017217407883204078389276286550434367176057680057953943236585494858841625820628813162623252202907006415907318463538557601336513127361493523041736625175976912932993105287640274262785270711787500067207103392920690086393287214895866549554394749135154792579634160527508549250567259537635815535101362710584501349878529369168052634808809644808651336478665831673924433585949773913902238561024582194408113968672105121862712137151867309461214540241565918145888790617316476976710110930522400672478660577122068496807413291242414920826028018763823201297661715136537530571243183145659002124370654590243027943855584569981452710176896942838222222605277570563107333453398253944744644214839472563785742945118176111050960816472728608176804113480244078573535948161989679489807254112740458075087701476255897823882482322996556102829278131707921777777422187633260426911981682237797868259537033529290619042251400332853921482985137508953078209510713976703031581923420266663372600367437299725724764612812763745239208306337089517434723230659719524896715170280817241404783821135738280379858347971259865367540131719128130078612672543443420635183782410440624446688527000991660175737210062577139922819276444342511269497331577875503049826146453891647884762313528553908973893392621174057300587787570822311838735233715958948040703203944283569556759971799200833109650394270375399056331635130554241990859927435413310651637337277799817110962396065744059610981916170849474666667264767309143155529730038210479461421241211289298935903226116425725261050017809547395681107602333871337791789295222333792780327030402132335916172847926104153261179934168472365051042005183202638712433554636010549795603207642226031841018233299825123621841218832966454710249070267938461569581856015750698332960825563497150235546597506736085980934824259555093318858977163758060165802411507025713121328214188985772952647759639241133464868937077268227905796141048739664805772802337064424783634131011286512511303648120031221862416725748913655083189694192299933978706032113361092750083495932012345334673051711440954069591446066006489464502743176533704622806945695802827062149983958058943857906613548649337574166427670500523096312872881702716135865549572816746186929730736323424274939752546039400843742582040295751277876748317738362517592031296329085406982862560973048577673612639707242566127280409327290589011414882078810839798037613104164757501228630050943444568476325971760399749716420913022572888796792210856728877248372654541677678343968186568659198705214308849821185288083844117108887876402152573829072898292606168523895444509797992614623614128673935928285861329423233378857636837820495200258239774220238964749079035845794026376004004000809043651714512364798028438095284819391337432417098579420841434959526723523346350703476606469010696832657459636470795807985129467984693475478915866026784514768136768720572783378778437131591013218285070980504945550336512162280162433274595490131961051148289591493234684811616231034426699875136485037127210175889850625907300208642962454874977009148377795798767845251330445898192647058686609654530757483693084830144985670075235590272007259735372744200702102102103762564620737886367774539002682625291382222981230135653788677122009487802818868534948628621978282855441496157976010385386953929521480991213884207377462234135290713807864746336381661141550371773689077236141576778123337084895583540594830846295561621491635296865904773843737099721797920056958123521712703640720873956217184022755079885033479169970001901844753799706161866491692897747254222258524684167002728021863897145285740445880300460730716374359039357293031341808897394440525906516109069370150438440812605607128657973110405280931141793293337216563347255113087322398404790529418749502513360747103890919484243772157626456004631988828389990187740690749819239553336060924715484299009479720679382902638133336497832918595638029054101688516850156709251536083307565817726560777602937322861898620466112629564157407508544554222757085294630429912829437773534534812454640463843335104724729543313580211491372100781410943691580533559094774661514331546650565068724864158118285387765317606126488709703810326591444410137563439526060563795326290078695100389555374877374826300246610162923666352570755396598080256455974844668946791638288875163972494008150509871918187365802039701784605482462735179870310608094305090141105182268702985322487692421514538188563658942606394705798586247866342343949728767793981297894660312975318752424338632840206987809425857544849370034481606476286915718589211118626106278179896461466430480683069848671748568930082072152200043476903656562872174221400797898358684248693298652140226813653817387520707004213503223810139081218478850185799019596657144606407085733358053463878080612695990115627447312835913465109488012652709505194703508489835825189371346648575496368041284883704500036144818203455675928488856832228769371582284766132585322144524519550602866072292282410119097454671357863592886220501370404129526887329516400638536882868742351519498601068676768948432499945074489542387661122015378911954487999323600326510799340941289535939685005031165182045539140155006035929430493830128311882316983801874165413433659341487849016237595419820105469650004360856417717142618456767852320925517867669349691433888255582407789432290926364664351792811706814388732193815043585893288197339683007881555126407090076046195437994582774392329161673541891285230183624228446219075086674885435141037119875710052970675845677202559643506182198988822311748733665237129866371297613669522280125234074945682360140244341611072674937982537229880793016323236899147528940089247684210181794285537387093058023594665336705601949607097437591792265709779108565797576580702833324948753090344040828605715053324838685771982595600769506296753265074965665340869710617033226674837974206163021158884612131369795950120795466836954430288539371207991315973190969438297394717706070070205860951293775821188301829350962242902459970175711586956359378572624020087730532618893154393144125838677010436979784988466050605842418251832887336011818694904790450468178396254690840384395244193044634246895358761261478927362722924195627193482913545321390638072028246587353353406930066063219420125659860650388182261820725247052920299941594097573956851750287896077487033909232162835749572846060091201260238537467215800545646135452411625869731339929582286562026286584112842086374866731542639688504421973961906189218272249442396111450463287147314823277316257712091351384738308022883113281125866441409463881895748918346072153829410937981832990984939589868663142555645898888293755483959504928918860906817882697712234599063891274157177043183054238216911806272756059610555378566358661080606482471276096654191933905427857579867315875669530097957272582386140956492458399039602056056311043328818822847981743170428560340904097582660713299856890131015381394554642341489419719844880719238397352271842406578293792718976502851807062028582965112298188164974304652734824810712126437613382995446894535726013942687826498196429294837693221187222169803216893053932510685388630962604174202096607421613032512156081269927005517708033800282197472450404930222336146599422528256129335458811213512600244233339418706095901822118643374895937149476098003021421909773982395902389616175670687704769137934683408454107878311549589303768855207015278749623279611945217214410452246844900435712801903368968852232683829141687935249222987285444988861525241065821742357827717225074621103359936161064139210428694206559562572716216601123226702832473882937684502996516393978480497727315966835077098991072913650905870488038651224466130342796490736398483840899844404435436831316813278824393266644723198801156665733136131482071652429104965484474452494411697932452967211319884714481451358928295707206974716130579675661267939770756193928516997209196934944198989426442146832001944244411383680203022346248584788761151380173244619903715628696266138458489705886481779735727757364055593916473767704892304941018856878651221565360771449903001473967867364947629895596709009625634702413639877616410470522748030557112662517855845788157095052713627517634665533382307396346284801639658283391051816823391276767482196260207678930554747484481369790720101342031262423922370536349598444165493107216523163977975793258859509895824129177873557856712083580589834323610185049055890972400808381690596965576108138359938695835765954171567358503908134525980017547818648809458659600507090006691796252402288744016080988909716971783023153296852284868842115929259406863821675493419917773792605684332283900609558838112855207532910157596748102369844089133039591338330040223787630355520984594601293635389523925140639220940973764272124363928083954210878576158675787889423736560148526288650458769187147023010968330662656040990510189641999111143505130523227840770257572494443933309050562305683833163136112233527841125057582853121442750592098129641667073530329025424742189600073603094313300556363723097010297354576317197485864423857572370757987801940884041475415298780683789942301275310644883720151135465629456324076897109611630469992767548511366837110467262215075970248453976552940195014051130035963328030687200395470954817699189653251754676554784611481730709657770832775310583355029528426875088413076671958544659155402331627384957825029548843047735150707452046073004557000344748197150710907576688834346780337535075064455408749282966057129115891144084455283320500255017344625798292641730764534426770170851880475948029982260083242692499186969347993312331343413267170588664916398463747110204841355805364292835903273648599594870804276449497048075003299059689207882440091410594194837377181368994068969003974296586402679408982149316655480619240067756180051815506610046532784814988694170158531136810611436500809521993454005129024897230827975244393163233838173975499427216199995806736744187394021865017958141489823102258830456407113806949847866948153938273496155833267169520468762153240626955999770372071580723304196751278074740351295803058567405379408053592175414772507370868057324624091776448000424297857878800806514354853012176130455819581968102900215901479363970228510700857685253894131664792691103956877437428647302210622049100690922336134828142863228622319526553843251987914989016166299962002508184503667155333022460856821639419713985441776012384029500415251441384716606949932305858201545795987724432573752740868114730825530116600487624513327314273015267129662715690881230309701934780897860803691461580985262434317257236612930272062214558870296296242035634258747265259735907464811188240900302252804111880015548331389178577709003109890143279114990495968320527566478547019441675136006829066408094869834453350996624130603591072689329304222346222129152821680797840808788162623341091853047927131201590884284033150390219000716375062250563915318284127473365787527706737663610425538769642002767730029050521036324610129548167469454052243193001256736756007947957967049793687670709138918175727693408587468899210887449854491329962805914047389869655437475558622387767642654085500898230207584582871080751124099559589733418626905080096342756918259147017883074487447036255544055786474038953729197936967022780783220797386583988368474681248670404376268601621805453443387949497862591648694894599005472569824714499062843519687655408211319303763839436995822469540249824084580211636745487660501032301642804652998792638730687860239305489492061291713900226893758320024686354026725380196461382591035157264045907857124332777804899100720885216117388850684837954683819331575136823590825329562542779046748853242236060602260753762034790621354896149800380373749239984120317530296400978344919794758529774587134066680514338457782457061335979493450916186244998075051825658999520014177469752861703033823226704249780270862738227746276514695872352273688643739421200353224218831823664170468378343929936827653533596637671412107713054924096869694963733243739409986877363637587663006227971117308975685162719152865822126282496962454473308801826778555849740689147172867096130447673321140888090256214823047949128175687183423121305458918885985316299349949385634397024655781689065035339334653017601817130855318438636634953851488818005526010032667030696851361700822417180700719640050524849524804177540399363989424855008592323687820770671773267737545293938996464656340104429517035264655275274835483471017968698161854104244342577330625920209238565577687514935815530871296996396775266953089813229415419281139209574995780429948334225191603340008646962949836050469480494072949889176177067053507758434332904388662000236354261186384886511375131396911566329796787088361748489450167906494318103894610937424719919598858796419789076901490238599901052040448173108679074558306638668860859117415948065143050854702988646891169814730943424010914520867697132779651961688802508864049642463147018807733308660089643277998024071365752678666720221798265954574924854694324793244765025858811211012725269790033877219550240794591414253583251695030353328931337954636711320692508025071084171034712490108598904928046670919064190851751725982534689029720685086490426595307652698996446951221423959136478365152392703293046525089989969039313477519297971406720455222981001128983201745896827231441966218538505741101900452264507954322283556584739141222631970849210791740868078560735195303074882291659460332457419163329013205753890087689740319797805587652418874210711657790649401712944445647243129718980519794631609622043345075241260105640568164745657527904392438418008152424292465946409327533663034250329659529665179323912130463936787005784137745774897542928531480439879162777550083139453951421548046715307109967903802250887960275432677442348763961363006060530387951885242520980006022851430520279728592982212604225234893016006457810205176798968537953165611582105330572293135728708740094054711207875675798560799441699665123766137723185844696902392252029482092364586857710080257637906553808218382005364255055029750210737884135244980794751594089378306381884988637169206247348841676940800815089477793881779706619373682106753844888861443313556996139660368922023317941545574711820540958626545614587391735831740049324743746313267804462831160657000928859070047854127001576464889260239973001890166729384543867547557560352192500939165593031291305743828108103248481534240492559291351738029242825617296599512738320298257782027185508359722096525028028644451219563722547660622511923706485082936925562925774957304971701938277316905665396078951941095680340379240098229583315820978152695459545931896819700236500988886485426435392313123035500587171865218608449010425852524350495101032325513007913192398904695863515874838851115551506016545496440596152161050291825973588616274297544005084991487059906371826471146101913497584196172038300836670107614420133376528504791743849466567270515944127782837624799591236634563699905771250936239142624941844740850895628801914072803575903590399019085670828721885342706142220709214525104918290903272722562694854730813648544309932548312072555669340893405490205682926880691171417524715459773441135355339248180043581668931868739791738495741218264398720638980377701821279027319060678193965620931538432859004435225512020186306287276869578105109522348722960206781447138800351704511385820144462839268515524842569684903184524089347565459041806723328630023663185339395567919886962278786820848931828431205956630602437931715437690807402103382142416867798810960337405424745101383617557696278924215840944384472320055806021142526817041751913078090005776336003163869424377233046926369826473235514045094902173310157428480329709035656800701899839433183177391073757322574509429461029761518793150196331256149449667623866256580105456563346283708834582070510344746500202286190870187622980718875242611801452084349479820821565867611303924203943475507355156154083389733590264821318238495202187735789157006419630461948481567774678306817619901116945013967634180117797332942144885802521403241014796027528950536916975639696955072757978763787621629983750687552469778227487574804302163893159830688185109354504992202526685421269922433043073180641496658392582687738123615320257641304211126197081726452871197051676040915556210278228836204747443473851422773447222514554001246480108836703481273171629842765652841449512831715995381601922838620526127423967148298763163200451209007421647121797694551410063551191251816461503246969695517281463309128910111094822792547330500059892285649552822774818614653070031756258709980825436437914630830800568623499275681692863561219740571513993738902652717752610986424850027464763515920951889116073522568438784464527754940478219733123482332267816615659157275123286561513190510169652702451125837770563533436634433837332761486864577588739897997738475717719305351310234319459209884373048029176638183449091722562347040481375414075057359847394645046725055791231891861595419629579771803665497109137530828383678621600567906885769432307856713789876844102411001797877591035076463932947832458877025076769332242265292399957515931909768612982706060116986610748042209127468794824955528721903025728251981516749163902652586748020560039011125567788153946573892055230895743166610982793975012616144998423518790580503899404658744129130343259341321313546811130058503256222099051825930006229843685467593079454783496382445953910336030883092286637720411210761985777247016639640176709379342103222585299411237568899880131705237022348365245573863069561554194731991582228580241351415265095856812330063847544237961124849609234053036515423061644625740188618182108798971565576725740067515984649724275017645994110342008867976223172412009518205535629561996718992790675293403936065741340072236803239538712094673884275636795132980563373039976660082879246430682128448923166488511160696460661198881196946429388450977767269958964795199648411567001716188579594521420567903414082390259339914507272758911721819878415790632864226143393986107834965075105465455989721123809351380812869404348787187792596678600000201032319181711100030171750233112681826503051679436454531189695707031970438391536803562159311354265946836518505724612073855240035857907395065810249456805800576602487312865012234552059617934414159553882791269582933262601972298420681013829336036161089748230641428429212766930855294847387300530666699401176099294931009630813352532373895656111047576319230686311209930167576205367336937546650354428544973486798337927632223529298517987007471637981196789849925632060384026652782934002770362911985533019093767593243829018736163447780731804011761180244088082269561960924967564545415980252153847525583135369346989977791007614258484754035203655562301769348949112728486004479497076496774747315160690359983432998565444893324933489390517010431798997670299403452271550689195717155667182422106114794023141058810402534893676475811622236727363898825233101644974720204532641073199610584747814194117207514451516152088180522380533147528148442998665578602595572035589733190778962161964325857100224794020004995719557800082832996473164413875049086464668581885880362668801432717837178110775122063865617715222544256654652950334494560292248569965662768766820097849402955678375643516245227562797022528413753496767325753483085420688149887463179674688347533745735014958789900425618402600075968616182630963191693058516265886928842186948955806281704965878336254464435777397932289326196768682684544741571714275685531251115589903716322433965686589908656636780240578266252534172365350279542815264289944674317984674993348337518581389909148631023775892280192146326708864937171143517173164288897151270554044859640715369266026980319917568544680324151617676473041627390537401313245568215460960079126178846538719393125521538177102904387000455209407483842509390202879829515517587900278709247653942412808431913614633695013932786713825133450309425282685253411798418551664417716594026093111231637420568207554282794966953529402414840725915491657321188932263785168721148066705811706512870503301860637243391775147574368524499350126007627080503549850925090763431440660635553977697062227825008513119496235069169327720247477641796868121490956217936795275687207435011325297736178664887115308307748844963965350878282604775821076631469999238375891373099848088099832319552910932735944315654613644339543845363938551897208703948349697873537395810505875253223904758570675887598039262324362451178299048336094806119191779884923855417377101838120968980650698494809755656825876231298347525010466257792569742006369008112383232502856606173703956508095562237014041180422523329476934578326657070499010311611631825910610565352726812665927513714275419808531390424944674514898867221367164240583519893940042672766375138836656613825472897308285003806855605908943419591099902430767246862483026688703620138470643189143966040568225109683938537908257185720380848847583188568185386818315862024462675403357544170894932915725769613152544986631735447206566557921482066045499924487231859076340573542504010766875827895848866746998095496785555590277852070479198218271468342038131674986867444214895160181483741264966484542177469200233361616909326202060886522122234933177420992647557110403394010845380217856169632364552927007768887126347205339518281262404655839448603875205175806832488705714186557344340104286818096578728525205949939575544746528422153502808761788366946136285999952578757061046837612546878880818401508613381429419714685041428345050272570545135127891786001383138368422286235189433453172721487400547801801846759793186763846525537309852047476516732066240609718681774549533075297670812748700817796713696392777108823122122328192998736658619080643796992282747527648672260851230881045486397983118510361116263087916275083861121386346941193645279125377148707161027457855749433365663995633043856751439298134782326698353111535548659614842000255375557021873830328103712765875594516102195688687711914043419999089202654582205446970422275028729926659905966149205364290773356583534647164066093178667923079428877972029862882292738009668386753970879734132348538363168144685377864061913835519701660181333637608759115925383191297096214895452528333593934002284389374264287422107745271242056631515980539141126824469208573547911057932848571729553359904730581405688707590963201662329299764878811308196082052790091187157174582618105996213119560135323795633154805649369097277614375250754333034791421321973384375102777369513103041211622357547893035780216001225672955071591996721068146611972455271330030526530635476350097404785570034965762063768982285886870607358002584479344314543251724486143964047785850344930752973760350959928775914284609794418927980270244861499201069142986383328214297263943264201114881035443114258534931712746635739190636958595832645905050234664835852884427764048584038412637506923202843859098841740168881588808090163256641968006278001794871441723591068141716754181409205364314867836721022550801782471899470081187377155804024748486124502163226477868523246416061131422481599367717699339552862750663763636264048344200947029673671450569081901500292111212324834007518698582629531895957755930363790778429719437672013359908300857198943625199783421444250116146786359029663743265751811729071038067415994740396105946759238515877581782759913425386578280253376428571155331135050878983779309418590105349872720408123796079352055099069104748707039345345654998734309593849448344009758401787937511274199698589233304220421221745832411175237875886021278938839122863747680353192928128894856898831553240625099214894026923650854567203739207591712294820040276866389578446975808083582262463409212936866575303529923376543577246664694693100435567359731559142506226349914444793538771361149081924212897095441610944096274748269904375652893542100809539768272054132476953905441904831320537468919518191789229412009018217431353819210769005586755328164076337009571957548103114119943039785822581544342405521947681752523165588279723544694625494602938164740531562605583210042607129764610451494158597661047343288641089336541671078607357171413187625553920316009864980591305540238743973493368196811533516851429309884094981557041538042006795064447358414268595529399761070371026864776561629611067887678061483948382778492247186373510053736953113310230484637517584481808205657505937599807291699793090490867916342578872572200039339559509946211631286870911510270354933250452129029407461933144012131128177785199646723224759479559506475784856928556333006402455550455746824663979069272575009935200714920943668932081035769840893860601814509217942487909233627158048291226190867818238507915619192048235816577989892030787378802393155329126786423435761913259746158806620283834370273987289890327425740487691308955884413680047632649849193432962124696421800998789843640934818474288442620704869488192703744315594897261863662523785253882111430491665842153153797350908033247850214786967554702866685107129393364434932718415870197864341378775012851617882224560492654819130924817410924336139269641949584806150141153000899835120694145748566658562561807096970655870194650695958179622240077046370067223568427031470371638323930084532200035799924825680711327992205794686120404296481295472365514378226146864615658448680477243749912114339420241589756719039570871256301754200705838427822635928377126605038636123965701511321339816982764372005870500987806172156364961505089497817711573094756152741774600546343925598679447132215998953594309907411273861422436175745325444436144911806354792358383962195127749757674102599977760519297638423904301538579716125636286676719490832666398158699177493421196933714557920570337433737175319078338499037382064446271611131840066630376048671112991551258377637972774424098763877073661729846785339339081592178628640322744707404047723423112644551257991233422201596609716235024554216058019653794322825235681776437533432048436908807682863629297250997661400037467312837766202573880302773348552261668719755097307412781345370600816402943327902797963632912598609724212711112726520582746557665237987295478736874130817662342517254953890353041473092891955372404769973520129566123857197970981386696078038994504191196944218863588260506027519258772166653036612628534839840633456316531680969864360944857640589716066322420760165545899061953562824295314209847680347310221253852029123028258410868843146720157598764836178983368880565369347431664580444737080227054585697446971006333580556275742265563566480709979445421580519096149018802909127388435827794830007224597376935179055490372718795990163196785995603067490321051320075576667664185736736647292998803913973490239648891861476029551587497139941151549659404895244378676240541849992508431641593814229333154701760121206720377541709101337563427271649845933184900797917351668195695798206954519926177302809927160900510548531796240299514047124430342007928311159261539013603845204700499869905510387678955115546373680165200900113121480682471208542625212235305016044508578762163803488694821919354597992125486439733227799706529938933163568182634703628019381207500982511397483063514635284781735290130745099061192667220953386181601108687242530201626826140292291540597603330505819278214413324705511945611524085293944303290368316974431927130115465558051839131487797490646288480451271243396155607356183991109989706697585208558311034244634127095031014362098108443185006957984680145933851355953474761942679891447227622927384454079310662392203811771563846388885798563501485358411668165076044723124740595797679822931536720430718650596327674573547604932283076932437551756194362109684822730241843658917285166150114080061981784072464692488887959944186180271381267680848266358824517140546098243959759408007292987875292705640618097554014553544731438992656459386271744312903453210554512490841047930327245218424088799420338330283471640875894918916040575122016781297781581441372937314707270087352886049944421277059272008143359894187909032118503043337264022738810533199292996661360646715377138239381133407439335468042339962389062070198124924453177598219174126297458672718755778186909128279988487511232559522985910994935592440295134084604450206576669502140423727800423316614464657385448624675156935981597094854591594563466063099014252772488211145493840097237561500022304547689231837792368093680768825015523483069923461418738134847127202322680907007066124003446923022035885849378970869905396259568546680438628102832449962045927734009879331497749050448039615213414993129002118290207042433079132065673160399897266039191835995247629601313973150974400391842872763917298057077675380550732122628715593399975734689211006090474296785934593236256961635320926476242860068426571359133445188127757182486953970793350923412272660310109299219607018107611002767423613804285497136092688035159470392283637450123136665288348025838728129640268660406823443728880755693335172305903918828346910272576843294605584231300390744715219382877336911834394316319224047903606900747062726144369301922478489010194691543849764421037953904889071714903322011020356305798386201718856843723098306351507567347304069057587577554588130667565163296208778659629626439159874779816226857385452941261501448611316638790761239375485710065096823385008530222415611818302944965557881865322213269200797413460786101395529043332077321596068960480748087051381236333994979173657847711349266495253160173072325074376953389666474090655741823350101821344114119724030740704522549509709650832988929896387186852300986045834129955019036579513124340084775472612254119949046936314864024571102066709889740786549848721628947320048107334916829240199724801766935565897794372378943966977667759308869243315442183392494649419017146966382515547375785338255657178443917135213521726439215424037150240852491579204454120756275824929096341422483649602780281359694343489726555484629615981243983575584920167429393381867139170145870351756111448980352000367298610978191479365253247652489509433518518672452670103502311825547747283993331373270382326090398179558755137126644474560469848407924525778332531857145114593114784803857845612486368677206140136720610535486853636797434671029107999707831804596491354080854503827849347448330943975535997959011666464301568034658113393670126503601141138558246116037156769004045819660878071000229821289106112605536892998990043907161419241065247271124809496737536563557021131083047607831498748750237905341174103940168482477705679561759961591503093040553993472547701315618478314593653553444479153035770245306304736175784481734237016453607023471035570543740227395530260519543255081633343138438494913215780464221539941943672778420269542287812266645981116564100700339238710837410637792039895084100434811432040573415965847483912517594069480324296070500318977132373852105074315411717117933629187067067310499804479098294921116111615068712014473686177124561028940611328019002471542238134571787013401096275124591873651159920968686075692142105301864931007679707922841902628885834531038863946081851943258402686099671960228101965464307205947404292826249423839754401909100710139741669636143577436155817605674395138462400087132256818454670053554516766428321626978902767289703593968363339982838624112796492359821854001445093230885096713979626353192984360175533414036231693342437410754145939646271080720718422097876232908923683819115291061298292089137897178039545363352621383367184832993647932485337144034518227107451250411438537652550252020332457254308628575938378990722525060549623680288761792939347692716592080106486403299892115450359479930940891359976262369450830015098106779831321246597298643140032295557976840540962746503295899267695420012489555898382792528941787148536871858675798567364386006685106936228769797482242624921029232739201827727974159372358967344575981201752944323907013620310824082309016435070925882778567849609684180044882030626779703445594533378764434469789930618677281243320675705503347480044287420669817444083442333912347315975300099640721601393082790107330306388874737158928878690745257642819175397729687438189962217508251164263742545270642540748586473337502537016070644958412356976368683053969864894283085597541516052540074022199783183353596885337925685567213745464605456753498602696179067094947146234942244735214908072778522788815487599163830538705644369253975159165112593048498152786769287560790860354687609219591571626090958516390871354263251801779515371890922365194171330152468643437111089521062395545965901337982283243235859050592309524873273496097253585431543565858306723769227548429179916361187858743536535683024884715010692722291075332033127298809110973627239441840528271307337312761226186584045545802371313613178572245832379426231640286617062392831954464252892114862661759783439798755687925957322543277080367191500820118985105550970319797855776637303166829879490408372353421298055737547741474742379684967550912594523105448737702708341114663669001415425247605149719100005672268635148133131178715534207429294780236643094922262388448641161488348421025301814060931610422056564838527087318152692783162919480905031042270083176891924420802459726256155196257034562428561260360289865103398572581210044942488635320617093523065593664759141585139154101846505746831616880147237503687366483627221980579182817549888155222876047604066082905386467268344894825423235736456547590240226098764515266942303831926400227832575597679321983538340189617620861296266323096175844455973479324103228393930112693170322066282550213733845179582248490380959103702901584686723339267237469392389330370234600426206882471278823900006625474236020814014760338269780927905842283492908482057550062614146924307308460885042040540152252550347063141248050545528964976819407800746448337512103169214533159929175298686156069128001074182554541202575132727644085475328920064860270778972481766198956292441710420631595212862819720417574708225487199910165072154034467946545223187361178318650141984372735333994780344839747183694103513321715720385562288676499992052129236299107021283835483212559737214538895354309848708855317796769784170185742494363514579644703365342440555445889411804899723313062039660956637486131940543467058510308529828742040135399739970111000282883846595518109164878939861493880129814129032751388959565040765474438974255777660299167781895315524681559554272511926477385773670836283660492545755003153350860257135756801589355768755105254440684637024571775781280163571504701195228924828980721768456502541951397716546965658271155167937121691246301611497634667242087109023581907175758225113543776765946115816895157970486638894668033578045798257261054670699448685005805623537318748848195313999965952507193778975716485312888225821751787899755469807840699825840117559290694090672990217343366503352121459537755111896103303387315583268617720693434260511758014682594440641368832358039144168251020006498100454474239472119319897980922622783677633907909393381415327096547627932942215306269641679584093583748006987268150352664021441942732961657828926421681960927614488739333696917169216930073435936372291224896943873156014387245097593502275305609437170735403291597732343087663072841761465166181468456034831424348738891890036250605372498534826759096540302376038184745785993671564024721868050580597218989092548953030031708520367161805501408304108840102501918971892013190982402646639691454724403861639931522522910568086639622400630439608844032306009947480564279792141087740567048301891191902358888157664844850223610007571009424529315288204321613130927369971545814875564709455538605805565856344692421153078319056173922223306782180140667418942415503954593417265302463376573177135176501866255158368341660420570234567476628109085437576454095987645432563722260988189613325978002125838923333308391408745823648196991740891120413468887745991583561109859623056717194733809423686752530695949768891917930365209197478168357840753405692274542641554198495588782559513442547292681700351391498571405197756352267947039303044557231000866349325260685741507045920509872046446409386546215932650115199204325449502586021150967760430739586801641176994833672216824117745818878837356312945813999198619643397905976202644570709751192630596090939197128907742776931602756590490559776846564674871803797358955850527678848182656304331611888108722089597401596551816773769311285653699074227233335364813505810498684158630230754743747744262055243603817629243402685742236984470557950948273449417951168379228368697442700711602266780710908434664007760345896374402794469016797794777942832456328118572383834032613375573573431347966989865940378215291556503570414424032723123899186026741065365035520134199317525250971530381185219678545803952169768787337141359164251737898242945985972730998734048109957281407176551073916039574822143990187941838366423025587913033015494000323078956713214944036480491062877911818421961406880566468643607056639392477562233090918282747732897856355727660984985587405435656933625115123117411842494502167176702477214564206122315942304848406714222222924664322439900400413500084709105095262440823277102487140566712695071637795683396659332792171616606650981522290093576339876940524286334659328551755453476398335347024630175637065823705557384744580089902670866767817790660758348609305891888271161004871482076067724044145799351776200720471713182758337996604602799578754825824008912151741621211380883267374059066589490756053439176813002781962356694091774475472304686028128280283822947307224742353298130787754051890694291602741191572696664175025639398751125559216016792591491156143813179785993252998803147462463890851868688505461713879508222497941451743539962765490185417829891470925393205753445912809419285302416788553318331127892725413840974166515023242243588781924505079319586320671005967962630609874320334192852735545932240731155385151165506348727610174062169295998315543940596859013029456505139982309084911741489222400734215333626617529385434235803994990155935088430346872215412994931318344986132687620571879907723932945110643035837669804149431139720327061402366137106266130569081283225135099354634888464780480708040259145697542903885711938707590597815783850358770554165978246780024188220367240524152647592153312074845410334071516035966796137024229346556882489832966480041055636275208516631107241728026821110920694385209535493796104004036170332764515082787239081450949168946409143830297421002430284483317823682057338235706106048337820495387320191915576438782965369998974208880725702669633320317899033122425530325925334427822108022354727892160498667766527315625443107099066457040975274261219990637516729814126851207515610392591750308283940935905594470938758553076605175027230617689012343043610524578735451210120157275400902517012195770741891858448714363107693941375497373780528980761724917748272162928632316728490982130515448148669142280123975202987402533126251712692137445120901170285813374380849876618235131649674487825737324378487588625848827445936974245922162675628277296345285766403699241570247781620567993352964931979671803943943247441715744804949914871359769508519877832769040478178656008936030205976505948420706405937754295901383783621559816482702385449299949408991418019899984371715500854998582723008273800237444623046914158079336007506771309874648483041561270050234599411102977288692480054362175739377318185975952273857709060569371676956826221006274743236059355724151649383769457848669019522494439785370831006052911022871745904438816903099849358722591114752144934751204868553075737788877309832260186073628542878671207462510973270507611505583679687299313076777730862721814316563185723059119171039581707553667996318002246886070548277004366316817456027199461217346824508980231425872545067395104255316134565709560574552353702273932143908273507272377527126406328982523851450838829284467484969373887481510615452162242405982053464634991018253261506799406210094486068127828758211752160511798511812758078465904266811520364587261205708390952930888323533548309196028706632631807449297052958631223757352630032912130812423208713479075956039906093380282524360306203587773554172991592491815910913132718905654162000998616324805387327832566259407765348276261550495477811456512937416414605814456191212214132328949831623348639472828128303395814623810307943196624889618312666762441601743298925852149535207226473237725594911610973716688122317696175216490316210339709140867363920481985546089586532547311590365624826016207484343920700730901320055366240433444181231837004364033601637312132292360435269103860764764101682857781619004996961469749153510389166945187682923367073755859220044480333286584698174518769063145744787983070938507415342983100044641935865707674058902059895460370366526492275134640380023859459687648102888282094835874467927336696744496867746297784463252402283358444919430152881517628083660853702573301382955144085173587027392923290843059295233494418807679970454808267251233048450176615712304032705023633193352779228873733938947548654966656553719977237824311311142546835114737498193569520582314495141324496600703919883659618589048554192395698639559436789063316957670689639593364896308404814170324406724210035989369971431528862219868153352565900964330556686645277710836606021062905339277412163191347830968711043454268536508987907376773080803234474936882166704033150996926158295091940210746627014080799387742166931209776186502112115053169050434614587692087832893795177019558891309332819326117251159330966783106877835246908165236476364084775515246686762746518179760724324274580995385826252842350872483039623040466836987162290446027496942063486927170286627035589045879605378382812261598401551108142258977167320533649732022988602940776739392915703153889983376773764943526052149712452785500415092584995524664242896476308108815078336916682964544908339769284322216141727501241727032259629869710152646921164447340411231908534051065931291659239368297711234582837606809655949611686549773643115796420010918981315634457395933243681366304182807311499564604975284730973989531288456314486154058423286419589805851510337021265353072232792980809247053326528221786573278884687008070088601165694672224744704029271356576071340931797775710895906347492728651683124948735531979458637757100723627301380686656647019275887149995947567515814351477239444148872342672660268930808782102474033824862711592174548189878473240981501914072644948661604580022888978841787325980161139650489168495389439722890364688089964903919629069408262600461112024008985015857504859902889375882957162398277943258475093175747284707551486500676864676878710049110247803005742316276440261787456909419510046072227512742417653581385134923252797994137857001374203726271038076754040601421311069932173967411751879707100478044410917092224005193496410258243144067461538043826376308464012115642805750757650442916437520778484243253035490368114741964514146434539195642739906929135967502490862780505060187763499688443262689904889126158334107275118895007510392102787906154512742977222076845081489822148008488565835561714601647740099841124744475822313968459516144488666455404450369199588139373936786676735668968324125012096570681615474583835917776331466082133969334624646005931136532784757105685007181471607523863959137423548174755671783121683999254865927607324177365799437286165245952679040141739971893260646709744120569000599866129783887693868464006952281154730345754623925214949020613912599834330369888409445044378315111713633853256272748645580249046193520289712884139817180092707112816586627952993968046796298322863343932284714331001766541720546895457366580132728270752523863002474267836165806755741448559074298326698153896796011405729812991423279753120783919075028438810681109255639875857283028388300539175317889574724078541872199426114919786013363352916846279741545564532626066401792658957391043715785660996102723079540569231497041607619765191576935552688654649555145732497157742189320280380573458989931013985186433785956274097183328186041060412542899196560325786957452532233810907388162965315104488493320037915730002209929167728767825249196805956165435219699284041267944933394638584687739419319751248191166925639219355852412776368649570611988136300848712830843444543065811222575158386152944468591644254588528060563917601759778453148488525461337479432198052879292317551869249385755109206555641488106568187294302155860884419452947668532165622922735010223586246667130698129073032427295408152317162122743539222752719666722996527298111915557323529901864143891618351922686197263356794816575712567341351539818701323828163124681861452877293060061391607550210991300231604792539257459448392108448336401611851711354165977729622469286537889386023659766291898654906733111633957794852874021578169204582983293144546818685904149646374604367664019705576741389472125718393070505985998485446319595553898907835018063211105891075605938133898625889418615114385529167691897704976694265962953146442761925850265658156725424729253147545309491566430590741415438226840059459433748663354476745461746349727038746611652647725865951709103370410627257031619603136682217511623424219025401671050798472731377870969248973819256853235097971094822150526629365513366236886105772566305366464827373413620690997348660541016774204367622943536685998215442161479100822932918067441421404532957698146465016950503923408885245281369456779217444301909439998858983500793839100247366904157396553288957562906032231802865964297211305192345059235043690472561208027464395438540606770972625706607906865735843150985259217782132646496545413857666688185009326372773096579382275396972952970787377247187282957708611178781582113617167772836890345533510531456462418394341987051966826064507294060322441602360440555865417323596339059922107240495367322399836769161356520706340047264512504811083571681762159001080632633534521526096447271758041029391539913334515982020972524981674823168968928961815882628042843173707336742931375209516692953622135617311730424685309402711029715982431920719944369415398186042999080981125665776307747040118178368252947556100955170527627281846649811105026637980810623461663323803562158509172588181188321498228817389756316589068166718351256352890268732331566902138186180013573638672581301083766317882604324105743918734336009751492898227365015446000043534100051491234799060602186567431922133841990851050065682139669170546530545859299529039929340885729652093911082635586341596146638564144726459455997155465396118854501188832748076835820303490069834151589950736431820321969466233574133671809823035382261317116541109145211626946149834447742957739895482586823181481621325825113599475178588955465369333367552984983850309753471134981010478195144583805616324168289126770946074003683079616176306942053696502840582084149005679308554721293819204921049735349596280203558624409764394185372405743663562880292917213307655322060544326598829338892659896348870706605425389818956206513517793782448950097182283328494664164996493126312833842192061864093538626244025733970554708059240453830302497927368619150773168782525380836433505399270407628088762569169909076889068494301044537162447317267055006565898831886206699852835507596355816290903164999503332830324074802230075616767757737610927493825088146863866545580054548849974053487044382063726704549639047539752445911311424016335291937376443844868471865312213861315073402193583946040740261481912358646388613458187307885175048569984402313381525401368275060260650538468006195905386114061588524578518227070811230985738927644162282108339045805450573781912885995144519705947388548207201759476259269317071641224696692152683933423368301779537585728652846046392835028184108336009021261569122371374169629544176027113885015042474247877982756483231617740977073252229565658561995034249215051300148278281535264610301229840615809802709900960718041118819905562676597519652896602976788550658026213755183449209212130471404984877264342919266940516688695603451767959546267042924390593228313322185399746793161044470289602486041706908226060909663625870003543422974161481534666024663609542923747234310935291807938991421450661303053522160462852272672276246621378515658493761190860120467421583758005969217523714800948901452365956144492650915094937111569683264802150961424837731183973465897504570608768573503909179490056621022218521159018123844833136951281756948176162719707779568978513500873254288206044321856625386065321696678967174604789650863222297103900986281053323998479407344722557047972462621219755389233867418641771667479595530682688408268780837198443572900877367113983001374585575756081005160725639890979399921866995628301534542482443729375322451828896868211137353678911344598690410766093004991206956913240065787865035881437745281999727892081628947943757632298842321988167966215343764813706613600819896234206920854242036489669180461251611075229002484845194284639216167282984922275759321034260921118420938613167438550555301386501671658031341032332412383100919022015308198363532993492551613233363576847127541669911786147447794199994154922564527051445377938149745384036185520401634665175904350630541900954738491264610858868387484310407028602634612514878751818882091061204407229902248057471378245083818602170564527491084618247430583606059881599478659373789996050277836034766865171744065157528068579408616829448994704236354730326152017710549805574378747662146547968814449970591911683486529986691772809996908771682862716581184917172595348192627205454007611489155481306989015209635839283169409251620782771930427286036273854883632088117409913875104531080367991007383624163314339775027414312022554588903322152368354593514156310902251338478118934951274840392755509775761156702328329681218555653522195402065468387761162995873388703491894718587798598684799374150467173384217292081199962614041223979943238139414412872833328565772677190547239022870036616798265204263077840663350313416044869210695825882452748226913582066864285290219636287779075722226852683191482389726108461147344824247474097009901729565896941570795247866459743837913034555916518755681436477463257269426111558169106465340975725427962359376377919425775784747720992635860346269956301838362557012430102910099832893252369175818332618761366134686842951727017752089257188503599481005526156223462057595315341738952977820315377194328844352372164038262259908305226918678456599655196037411105084086641750577582844221404563396949497062081498039526294925009654601614939795347935412327962628145875737687022415793893677917384792687640917579329037989997660413361776027827000381253216040670454895188025910128176445414531218495040829148349387998674297648646393385235752251100381804394134439910006937497645368107402221631055284300718110559086901398114124537679624839730648722660589907910655853586903779604476203744910042352503875322100241878589087785675955671842058294775459664857704661365589691021799496076929728730494287432358564614227053228799482698273734516507176691722548065727017532794598110215070206666646817100869072370634807848190475497743735231877761160704395114120720531978132998199418360489720877327214778308739576121295694071385918071981958684816761296367446592329994465167733290056426507734681089510469141750116036528718080154577629452524570264098084912662511145566562432817687916143956339636231986664501174005684849398694570322731674434492117397329049316097503384382911918155651647276010053851631151732861170603629886651951604085039281357723017628995984916964652997790143664652280969658362939465221261447968303443995949880697274330171034310195877539955728240766150224763457793327902787717926754741491067510557595365149813254454009459610301808936648280664564492638003997664311847820086178216001976494644620823002426312435740361973025725047034645324628104247042633214676830790988578070990188712091455554609755684110362013679125380165214968502819626857342667243665109662829889099327625734017699642364341832328493788166473565349807891887325042968941121139027470412521215502403233027936695177693932121305025528630363945819044873728391971314098473628416640672637100505878538387157951047887816569051059026028060062329521902238107143930119651884442272640440940279838949154020367636019388648361482907666697769326325577246827648119516071193373716565240113634166995831785346623889561383548331523181379025659661507985928175655937729093398878199325072059803085907139929889041035713659803971366255335353071693570424973501670885094732544872732317789176168842066253043495381286551847756968175849962265591270673258748928396464050482635714367267651943033025900363427041770675161616141566383492849536941270672055151987598954756617387418170718464656148497382552637712864937226689660148811030984634906603979751708409835078217487794126063888731619566192685835232089143687317952162392144414018083343571394419696960752509578348394097074079256733111627210132751688498855560175067336961122017306945540540226538333549730753998999657455635747428814957989370467213355340206868500612554306578807666492307327049913356550688192744763817984825292361200098168237638824488374478474494213292468537621022198490732868863080282662855639191240007688218193922468269725093874728273742060215900877889561163084410434633699406143214666033640174613568394724375963831514281039329965169567924888223936113419618986430717561528475571216930345180717574481618003594022203241013908372979474568890140145693674791073263699613360865814607821409688861954753497937594620525216478491946848485173706212997994541725285129521271412300787400475368711965420974460354596496075431999733914465160280951526772142522654818483564645662603402167212585749563095790489443894094504038361648001776138924508964374704028744760148559097545002618874270093352545458627368966180574605183256172680369827724455526450250608376422200563078067031435202205815529154282751497199655221064512430037459838691339141384115869032294441218763053104662399744662372183473271901067177015572053244807021790484402243847949303177571142919276953433133182100039433705848883794827281919941147408215685277812994544548095984662529472668075808715877901005531867976293450254309754586635535743890474963617176165687224186047032027060631277804764831413124135798993873797829579828857659329323662352722979763333346244903680064981997255976449161834884371848425186554363679789619942048413791111409655681014326787073471530727124741080150299678322883459925262050831058210963623175644357703167226023944071090353854913895328680496430260755751321903535159036701106392171819043172570444612358011362710829472395660434170730756863625279307491651390053343884699794345213246869541691389941065644298137127306142673969375220077928293758723231172400642454279835715667810140620517566499250654642015413510292753889111802671116170660532920388201618289203138230608854826029614907217129006103950304105296761939681589240651824259494850052501573272874663805447682698171546723764977968978173702660128968175047300693426459605360970740129774146454171769171021214013940750064995164569805136993812364400609651173515036291229128255059458583590075995564697222862299475823596665408924767708669912031952131665175436115619609517065522792224587291059455503747114373290107689607853268476918698922296904466914970993297478135797153660828096457817035258045753067585664632206885628077072948947764714808090538906617288926674295882500326464492738428259455915793647546184184654006520977226564193817800389426157134439435145982165311923674237557869764390331243200811715916454238847188943289576051051409852015720097130983734980154152597936407128886557875856431215993362449361568424002203526191193240597746249619967667606530204118333183379630428395049573078322324984480850566514247768331795706781050505258624614570192880640439738246663825445916741361009747710414868569353567020622672990284418409069508829148160500393669566853769676989065236510722792133159879531500531010669639614214082853124722483181006248103822578442247329102864691017435485010597707424911544580268561587765046730484923955815839111733390024671988956870453380855625138058584150401491600285070354636870118240035410499912749202376867973440640859280163587155549492867754379392211201493037315547238383648933511777580685424031737259828319949954313232422192535985171530371564793482051762992118685582500169798972380836518646454480139812002927118348048059374346426280444619831933189678960635716049120682509395871195514915673549606933036129483747122781950036469352225264403090238613673925400974429723499312340706811469770534676262240350401271520665826342812873631092788348736572876872546810260742398537138604000381259605110023213357859056199246543872247345638246905923725900940156510800077846706372513354190013694697618295821599340244048156760200206676333649715760801167567947057911739339333118390285219176689419901965311333937375465830470022280638518573322304835931764386596175958925538570294019477864769610715972474340225963004144437333516168781102631091734380070529894652880374180487677676058022950813726499071893889213824357796850561370067767058288263723400704438597181385193242767213001854726607935806507641244953628050673846259442915564445386968648621494969927328446231066443919533334550242024865047504076337248010811975158009166391965768302431528798992727662118327893735240474536989523752522098363442225746059675972246884217735834174086203437394048406422354469266213517675289806229975012706697762658175893571741414915143206032790291783685546152221820438669630317093843985771488977815696398469226365925221474542811438120020377371581087250987636467360616473969605849363203758368913826140258750485500151555787533163143218297459433617000658178130044236129563502812948528791208266908075405700160348071491756924773941960609167317190079382697512549764737033277752496381205313518998371770077226776723962044853044912354063540531570792906846011577672967458233362417585814469977694493500031745477260885456117764866214094280811025119124696771877824521875117663203370344317314401518431819759436321188487062537550983128016590762288818690045472925821526130257597284647180697870334623884368073011579011488427436197807007652567771609602529352560147848933773777362522489526507796795764805011083726693746083585609843630474299421306158359733072476238885753397976493105165279670203135117377411528931057221094830407700155326021609504146086775135341263698116602454688565968583155233646538237576447625769863395215436187314219728236734460743222881885604735909359178486826265273373027613889113317446251127630301519922510599143071599803908215689574002647924726598969623163052047330159906639653157049261817724518236218849308839263302833611408470283109200429183283145652101850327869171071470428353935392383359143657692776993844623049793383325548905247369561674178272125591076672405785143037284964206897960877982226023101224940991112529205705190955141848680324524351467034679308017131663569900636022716800130530688208673018110212446245338396894637944761606682288395534783184915899948836154365985010191415976013821196829097300502569939142884329902286237366326915466989553759198264361163746902957758038942856555787171226203685517638463929920525493705904276795449571617336724798038409520900044981812713237834883117479244143052625065397821752545300940379562620583035522597986018002970994482070067894133569288749779281065640961691665337822285126998314709646568377227732209404671490192875949546119171717782492014977619085440257841537432935221412182736781482899516565537598789540997805198197149824346107533477437573238026324539599242644662337081236476340567037673344990142345410582619473964011346473796158137046565652566494295679223397071209459731597456652857384491719268662809145517693993499695350844185454786294930570843610348632732898841037621945591366555238553656553082838371212689787098319320060227068037047507446663970118049036999834958298605790291666148802481859426545297235616027163200128058660147395265623727635642144722911003799688156088041267059719899069134368061602581192872422609846893231581898334509681618830608547481714016496437261224162395277088202429211193078958814760387730158188458988553013213251034720694966230991312002052884437550612126163041455599087825335181310252470663278764231031261996064238930248954482520943479624856255336391200139983896425439596680430723600084217123930481173090566220376600467793203463881201493189713959740772637816712616661177427699135861498266978715064011795116687479378765375536836321888100641399629432590783105307282571679525789291683551146900351045011366505830901898276094466001545712279740168563985109414394896026062179477644718100071599042333310090476160926779093320198484886434774420160841969562844931027036181609879788553117010143358405065634025627974740008223678936760196334629719334826157668657703935749663552329175817588119060299579636845109677117275366319043656822287900348568374466201124871509218424074708924977989425815970204558205818484953282649652608435488700149596817989266706623962841978415301493771410272450754649706476103391942259084115479235045555966729967680562399792311353356201900623505520525111716752515286161788556733916643530322791369739165559417986563788850020195165549259223320202627702018604443616479182539852136854323993353945721706462474462726239238250057834172555369304869020931684443075653323922551841921750209317324094896653774789322308205036335492826101687868907125510453440648985253107407609776164048133010269758797077833889351822152420345595813281522729989957048617455775248714050117023360524909994662481651891156310670086031422773157844290172037497432823161381418470754096541606820962421610369575401838064446259676463033575968863770117886452561539349082040126618578563853266948353513475717315522149826133672005669522113143456976955012953566092600496725434435535959544047940705535413980130322254713800180176658226233985570494697521415599112383857971133996953729226118296779567812516517841666175176371499787880736823974968856330452370143923276576643199454329603366075972746149454343561236864115577601619494428965208374477634400327790759590604391717023021704785930180489107613144163726351392432847368970944193688520872421556219168541983615303858438545645144824523436243403252853727535549756680212435376215691501809893129828935087194876886265592416758559675988907273973002735694557192217599553795217618248455767315133863341124247082011696492996518880189933965607547679883769310297752973012308594769676551439065897945932184162867194513506434105034967567626110998830729809220165738125132597667948920470191462437181787272312571614490235095285276767853061349919336892957843913010450278051881290207814384096050462421391011965766287019412700162900104932152307506145014817254500949649224504688865337235116281290571471786754283038722371046066749197163106673711209261142710933986574797356591320330332797710557808234996881475508517173376993919221990999894242274499967559499561525161263885011945547361150761960802276604076286469529618155824810317118943431238392823625616411957268644733802648941092249189241491210525860887648960527093902042359313653499756489626245404649014162361964619837696509196088667528588587927910023170823285387119324920504499016158359332160799610853358939455813455624742139738078318633152063202995741571553621875502750792780748046837087126766455224351389524290153067261045362330881098599128524558280494964969501174466638772889295334035710116641386531434413841877610971384065152337499455332009813434456764679346738786437889370160787376534211147322103198285618866878804447909803674674313483323030114514236574742306230366421576810181673085490545519144393374990100993969918937356285601000064925060411201268983213397478297083288977071395176234376663171922890033114132466915576051502649163356796381342426139831548657053017606869684174617756420129975648700864488165531897487876862076354565669518209658253936358725084027670915755856420654967943128126117274139851528629877525903843835276553034940794443741335975153690621249451610499293416951568677077267047101812565670791471243267115278649700970467819294436065844969401030146469114534577771551954262828428365345702021266147776326080082133629721487853699426678110448552257357863438886314783115452175175227659896226583347447139505632946974459373003249994098619060598804967921041874352902253086711367465168752093165083216422861162268303528819919115260645748573338073626651411351699137769987634624150351145853567324742675921356520001391652148534502985128857956179509258941769911938028609709111131878259799980293533078147330302912114632469252720761412739159025660561209667589672048128819759783278195176097356111823374239815255582199814750240813127160911266965505072300680612895349227725754161161034829817358289577675080557424028431114943735943356932796201977584427378772972309051941048515260987899035993494620729578916656556214559370057037030920342561901298911030197347245317134592578016893872202947433126913889097818474484626122484933135843738082508757367422633454996798847406317872307398438325962224185947003786037687636028859511774795289309397834471328350393952831172988370756984922531322680373459901725163627095618303698609136963349148074781751355369486744761070919492583534760508992453248711788342099772063635688870349579942966274477757308820468452203349438071683242767956773109465995071469352538491499204604063477781169015084829941799471614702221890114771443269637005866645988775828563894812543244343130682087257428340959308879602470031420940701396441626383738437916495575555443855603959766331925558202402836577356693165210637980829894580979391740249030845413740469797967943799318225058488612840096743530529201247517030555946583439412707580619884885162788545061813198783641716829261424451601617927467051495052037281184481319728983225041007220924041649743167671330384133097563931932523641104376206362973814197051985365074399621559241346270184228181670300653954217545664589777222328773779510769089123267143499104490185681571193106315051201424176069414739368519657828756526874364246697592185658668983059174764430338050898867876283172924884613007114757029369811009283707604901792204272076560142064613711885539185666227670836221294714052789447605074316215751848948066328160466004289270138831964939140222314638039473661520992656343604569988625204495414381562309787696956200754709372071239954482075881762524778915925996542837238826410334714988965394515043698240619960195071892804926795019363093788498875460799906740168133770941651423928438643904388153400608838487180330557121941142859604903873616738269953919840601762968990819995677864013656195632191741497171099936036904072122478508475773872240306005521466677282879252777027907038395261997910313217727691234005342317058409836278932635035427541584095767805840898133292177372600318612287464074215912720150332532746700166345285286917693380757006568336404120372295524726006669107469227548362115466964977020151988130929390701718137339049054347745233501707070588968555659765325048748017266809438836287918431981466739807023961147624638490433518747304371998247564321119571697815678402574071148617909234722798272211777159192536138775593044537462309465619639827816006899554901213017126314242609576796812805144988136941193478921196176910518859905948520168996027485274476384962139861053119645221711928627797368412655777392038108440901480978869439037855693883162943409362316554628429012191504805760660046491737757656661143535041222991873815902233223888656589558261064086689547046982546478886491741498319538930367207083980927691098645813752913035159111901054721564659346995745364628472510431980911082275958159715393582851590284010157793246483366290127767606201341582390438369402690490648667689920216696756621176317295242021214695483917616953401179530775845314121418975675291200958654873944634969341219881780528063442287732121838653060333383378077397685344163478969923687067914591057453794515836319864480789690104443693346491509879570251108054435044725041777461605241260425910387303000808041622712781152557014455365998370116028480980873896112267211549227689280312082154187056041928264024599749540032484194296469387814375785308850024627496690941222117894287387281974928864190492317311797179213598801544053132118924158951231195295133351711552334310485266607244033131328447251562720636315821155013842323123025802163209575991130256675100243461680767831312974829689001119308569111127031016573531769288425924794923741643701900494843541988711866885001322072369457292205372937187142381227950122426303717029701022440845820172654612610828013866796520034890463571124077712753149070220481517187256185552409996853514851717893640192783094407530848669332827003768753663862156738970660654467773061849120816609760834230947131614034830035601272504640962357281248609597427623945919349316267827318248389045952095604812888442944074387167799352312346464451023367908037814815130481737991576669995212383885008843820491138822260515730881800946563665321265543712544788637673219307927489034616812608279796222713104744300054218228256425344424981277366411647237768618829823774884975214583456757247666514965997490497663580347882211749155914916513329663839718169866156571188023461834314086140696450123234168632293008743770508477011865329766320912192204284042311093273341807148508275908452833972086252370824376387399788620583239505526580286114364861327241419477647635168640996720703936091906925214503035244550240665824239059537443102903064162251107725523602174827020468431784639115117821389861208892125207141778630306822241806192594057181567615623336736642189341833678083617793834671862159110056980600318941080648753297123596373819512796687382052642137213409547804549800026592211231035297417451485999594746330673875687949458921434995185103873309884803333846079068697263812814935061782473348429515770982747255544626284054595732060126254160373513976422533360789479878374153633396033868530902090426558676178262426803480085958682189791375326141940957835870941919655404537913799453562529150010702044312996091834299572535950633922063689338613167996768831870344056938778863469947755011790755401603524780903397227189852864616517917850944480641073083137211320820859744694452239588155865596335529444715664237889050088077441685409670738417700348100713203348971614559370722676240686000351425586151233539760625434399767649202937819611790310635207259025433685218713260320230822464787759369686185558342770445197702941135465767040419894972679641883598349661515621072988641587444986453899532356858546140896013744122507998224474932107541888546213386794742207211432849065963031281955324477625084782074276990657566159780107530301327180156315937052801872851683300394420349458104651113717458937318751447858685851027106885940863750012712072857477705476349890848252830359526118542199657814939695792876776582312158753860468699747089734331661610208267195853570663911028377782806126335733813256450868611553837051214535990522764558318934473899768846003633579850525292305158500654499598699617546387804049229187033417930669356373562900989589381232544519231268762410798345746016529478993778938301112038785194905261665878804733734058554674746313552370160501600041697920208753596186271002030984858436635547990481842166369058240768496598493970136420828947983729367426780258011660073982739499825001685622874313605079679023698408455765535981749757403559816629028992320797297573210256949492462683438996869293329913480499841818364660811502448159688856646174713702508266785723392910661574695886151151573141594910202567534659837813621035484627578570478585902168524810465679652569220587933022879450679101563005427392687467279733649760687425705305704405547289853698763613082291488728253377127057506621553004394612409582351640639827220574150981990392052704713882011874457934000207443897996373830351093041592659553015660990518022807337914765281018672279442218837041346577710895833416344173371007092878033777144031018239939590655590455281086570159084357928571469831340473519403986980827417023313664467370628971629168389109608993877481795887921531929171655681130934558748689040143698937470031132641825416745358956078091826311529591812063803874081488512798880203223528562610167978913681559504098674212881945312885484196779381740389625373948244767782806665212239758313908117490076458185347839229147258715681907566972881125220344476094086588630516135867051641905198913930345781759562562833190821593063694081993608569738581787339068291356296288184108874051804755479108578905518544175579597817462353520658036537805297083508208149260551450272117902487167649085801977642090433036039328213437175158601217426708881065920049060001101634145507808459695099330438731355327062286781386196881392808098729176312683544541450648212379059205912338201685139902664735850884568952193901858523903145771079484179233715397553802388293033651230897823678756194658039119418573218707520319777152346534020252833490111016027212642954496841861319279994616713782342170969497724377032039156507542368635834964879389870353203641701731648960311867784364615756531542194219583023799076783633082702285534983602821125395297693978725647709035360814532202331911496634206445475378937832723869128799718055924172903939427006734348707497969957158716916872851669672407278500950237445575868138220260045935840082562413219631206223650994810080309831530468436231099662716533141834206783737376360027756340398875567044595761671732056557790366234157564069048841995903089865798614997102372252960417346373793794255968597436902301808563455013492866089773917526949428424804967596028697911027962597997024378830607103149085960852358246885674933188085181023857626823012550049025840598091903360169538551848615979097211649402927246312345909671434581414038694932847595654937193951649785654017133413609370697724519732815791118418710394277774990134224519232662499508772650739595588307957981804792040644104475960754941471592579600047136618410147676562588695875899764098441991417645797552087303574374691444095014883015320538749971606471849196466272206998290742013519607717918596413818214332171176256118915259990018268080057866274226127407377275711219427161051131104971288841899616887766241701812075825080160383966860357683854978261642231225568657699692874961799723857856934861120042515189942739692682982344884325550063679865225923324625867454504339059260510109941472538797783960682193848259226543648013257453117238774634480892702511004990873952382863313914997201709927316476986350694872491891734771554962963670359934519931789014358700814587924613263794462937820947222556152973090490136985837744997678844754893846973260433737859852703043028930131842755063333547904735725161699254414035734077444041245342522533230409688116447113448128038264136782711407184442360480512059089722692983541136224631816564343157088237169208569205172020998469882721079172514314717861036879611612894180087903938054802620813549697195532699308555679555516597217218645105275926001961035867086635834127193250722751157045546194221314433846495467189292900929426554209648161864619207687318599364988041769510162698130406361181861827433691823694744971911270617807053159553212440568280201632523226225298648984770193117025380769221996179331395787194334603984361328458882927149133324416359327904312847674042019932175266617376156293833089673853108838084788366507471856650124861607968313362378940221619313528760659140982410832646065439432345486107234399363151415396728726298538450535285538719118011741472766848216869370994750260792986074504512823139934477175637408137421712564833665889868061585683460916230514349740895286834269003926819850646697362772397824685658494067699805247077049543262587754653465514801770033706845425841613242619479811656670327302211690947728149845298219425595848578602945779948596854085266081415004907966796460717409746255762664735234578994742140097427386276520246948028566302802637311828309842238606848771917568179188623664696737431278436847819382881198294690795406085735319636597268583121035311161704187758612540442217459922001647652028674275226339151216126344189287137164217877536088077540761211892493014908225058776062213370413990318700905703154812077464534865885984736920555231700343063687869359053769429775564271475947033439092352725501329787453459856972224297078892612685365299215227545291406670568322284435144910005395661793513920042893747052829010133437134630140081867462792239498499337512598215521976425265740040557934313286024023963658412895025348686646302525178008221810194995060382293313932195774135928287650308387831624975635314246491006209085460764749234520155173640558326919298118364818968337187066304862284298352557195977169825711104512968709091517684398805869278667664330473217899072386235467523517382408022812621659195731411085068793704280708288080090161534263738720687256923361059932263068600175029571160868766640637262664312500134671342107161324425533998062356585631126955118741288142147626631618692582335055828924005630198884523823566096495667832050770238460949973761991424891881915867466107885209384766451798328743425163884664530468311986735261096745102418043059103724820420071211729075378885967107820031739419713744482563081540117203999683702550321992441378389213211355694923083523424534744640557407619712340764886957879144492433449060825321028644248427412352380356960198425175142890786112500398385787216711359219035925660043112227370291282656019334222689402399695039971544123992430959186059727327689875391459666121287296165113019608798502044679208386560768002807569692282820214739468946652087038521676632113213400761876726738902918326250100325993429427247720124425767058418518292134396161928870453206175216026558008548117807383244066782258429621167858963289286334601253725465731279157947539340400394648309320523486460067797985761869033758341815940447898767625695186838535195418796241107044616245791311850490145258157278024616076583617782407174981920812183114740163646461210997333964944586592277680189456166182376719797762421436090326609908371733174076234330562875273454436547732173329594102771143069454342799653552697863130117748077365428556439957971968026949903770051681529292839759384285832828841651647478843444556288649256309771895752645307121134494529934738257836448399713029587706510852926146283159827032090602153197549851496817024903546831059162721505560532241417529351462601194335712983212503748222776634378506640398188470340496078293534407016781587749247147433182659084464599059273096811064538743944560078013443818388033236232010915803051279386787608192199486162119038531444231310896900705054221881611648044000010269566261566669718216790981626231594915569154360907158739743756235744015261376170113684794503890661337930667559559156421801864880571393655276479618096382974016542505170826499714966089554879119897955750471011843658515727354605566266741378489215251215882409748653823788270309436114022812037918146764133374249922515796884691514881662904502275830043594973417966364041986013240774972607311184641443259585059351175680251814990880700382258073204421042187195432982792925727050694722395452308160823836868567726783967702575615892808170619127329005388011226773568175170509846638015323277652652041040317603308803569947366875754240175371922829805610023345584079789854710998425543426546359955895572566086548497674734950700351189563707161712415330161202726044824898254636601840765553964646500732219792479405070452419205617930761683805736838452573612126258145523644007157903154294220595442101987030264779352996043498736346720559032789348103282732076293031853785160085614412275414272599509465485121677213565050903636308288516216025643256545904251783365325577678228670782847759749516393553240418520000816688655426253001061182225386056178879742440619412937076181635090331765368767687753379254220887758324062270907475141948879547769838946843861666094898835423056343062795143551936690504651688376745509796726485861554293323794762657799709831739327649576124432129359494684989240626298550761497426784847541560453824503315868958178240292063206712685911753148463669396552467477353219587319524322106735561072259000455927523853558000981654431751718411915690305737321343930700055943397263254784907155035961985322142353814728451022552233682723438791678251146086438492851950896674297477522754505585679724133567544331032484517819317039915942237016710415445271211767900886328895281403700433597911837146713223715042983080981682590390702812381759981068935396523246610732205477646119658053199718869023242972980670199930718259581000501832220349195376078018783152437917133999729599281985854740397920541941286788791272133590440881115312286049393720122962382502897305577379680221090026891944190489769659825432701102897009556593317967458932957400149260999529830031794395888637286657868881390375946357569694059262277381044751415320943827571548621282000384280103671309945123523494677200521995874345812079813923981879972704221711605470161402421831568098431790048631726830961580435136702960692430102015891443874898915435240378178082571139331410997448782760555827132020310317935041492242607977126510194882804362305130421257952296898573030867216384156159464363784574868289644535336537082902423072041671477892258357400680306366225756431771655749457878826497998401684270309592265420822902394193112173757691645046751762392785882323983620581483815826920559837729455351620978139133633891989116129544586911902288869491953902329602937991111744623672523904700590939613833534582637448411359041122523611249272694215950342030457018108660914941709353185856429703029451829362137439944091350014298712543520193282609271453521497241816209157801037574811623889939061482441148283336475660213643690834513192341463050887051021004229958140954230753669698976020112020266112116969780775935865493052792557608703396156930271514381459050130310064430257277120082649393969389500707730184250104650531353525839357278919743236016434643727761019300789753684090496265807939107055409918783404074521654222792232560739257097209279849420277187444227128952948234138828490175934494053332654029350792189059590695163239189418017559407851515823296998249513126108556199627697149992851180453589337807591762460023533910607403108854721514853392124995296463070882245944336240555833148987385077926928461541807245805434384892577527784205551658997778800177611873857255288213552061994841597183974159610779185285451951936279534491133397536061851369486569143597661720057153878452945152295065370127504028977365650266318812906855075902127926602755227623836616049896214671169822425241409091944674418637211411376262304323195975524731228587403524163549266007684428633438829213761722872000815385925448608324853084848343570213400747540943612196017756827954385192451419955443783182480295122193662586816181777455038604846930055249775376379121088817859375848575798322141882830902326678335496371601666921048312059953280105327241138376639208035865084598651005963517957043777738307696565615840817472386885450116284650906847035403922415376766406145686589095414412713953040793076664878904608806015423405419295947796169948465959604430000044238205109631405799693279592942451423878872890737986347840833764789063967168559102064692690988636271713713813652281608324281465319801028986150450562473719528281412814297553942724061894148568812828561716345450635187970317162506676983119344047144622355480626984022451683160171169956257843462398446437041215729141965805390494524217582594152161007866618481324025610586034349740660475977692684235190680247233349468907626883701311050091345837725016872329978538985891695120750306706760489788937026798887689729597335340996922753786048967437918997956521998063986442092142099472171541105893285278008157567323400909175390884364582516650166723737979647874341594287345909270073576222568602373738824178947883048660688744003532563821406764041669619613940759490901845804788805505528068133715267244297895440225770155760395294754583160627654456746562204450177090757786615427377112226491709966118330875699408513808643339771728465297021041199578929900103805444575640515518657448252196221250007243425891949645132843946627534042958895472228109162984863065700937731600326491673025897245484015910459869963077495029449470030888114751615509185679597730147182571042967277708999795889623350141914240052505735905168837154968735359949549380110286520124792035416767803115210419823518963108939944696296000290020825990530520839866753451569121136298188057509350138642283759244106961306404792433314174938548155313684317480602899172405781736069420912927954069662933413637475763756846830623531571190852374027413615472117163812796788531723477251806366521414357006808985639819747889911515165205663251920687571510857631443537918948630214152877980899970967255589897553089972309481682542811930443429514131163481980634919674409657363145543859137006500156840504624106547963255047335945798389713922202791570100852873916145966269374168680580771049189379707021599796224314872771443765587116707191641214168337420681437427007755814926216935211744166933898681342948837867806940939386297976100369567695099156503154399563926502009664290295996105196511769153655874192313341760217238913260266361616713853872119226271074758389887508986236750485363190056577480325411009576806094291133674810251170419529069092156720849845267347001876590289341490901716184229895528988247752443758789572947430418438191444898938728751990983024710500250088683548999284788838264954505701496136947748622835863556274604594268134311480371698947248233525219114671980886315200524869392470910983358466566954861235964938282263167494341338824012031920217486919243076365229155378349383556526333288894737186900218848531657793759240350662486467657096058871770592029232301640084166541649105287222011470272499938788110921418435860131819331006193370052115621652753591884790872426741873692687987555478064618461073055707420739046789486648019814436465361815298192180634170013691777098873046432060071553705141855276189811654809330841359583427629945965720497167265356434641867790820368212471696929667935327768568862130992196714254165159133087189388305602008622607761905123758209243951132175201541231208124995395198513127830217798326742219823209592124851438024352594563346798857635873339181417085862012758799939477521687373175458898436450238663091290376198902057197746780355508461096954820840640746986249111355507509209356715242108745578053863965481296931033357411290087313809621593779690320436371533738182296859335204126948639041079672922997558333443972210530405578872480508768970394775140858450283298334148934937890986274157134812320677248733522732680168146765771297110581513565935115961839317038027844165482241530519032123653437212408133441718953961763692741645804786811113996405344318946794436174343688934231125343401812705690811073042214521882076462484290324240644015274672485253703343868172599726182541214492772937263327934974270067130167595860012920582171904401315892717397657052583215109260342029249034972550003947506289795117080485190672955019133030102075746590930971830304624922239692637976194162466580788952156008283354647279837596016221728982561545513048183443773609122835115435949461441025535580758410251658201310910647685500199674279682175639066927289606763241744954950942598005185889595617970899997159775126033355016632266118015683380530291398411989336539412224144541824768115438360641607779128743740544337754425403549203781138739647092696049128841405948794772559515799280690454164208727626044990817712212449965744090405823536143765160206991024651525379346288122874053139863988260320352579206562290156587145718803194512033221743835019585277430900351112902434064636279183033797449054109687590409627669754091625191862660000480814467834056166704861219196929786922025909083935007746361936118667040002619206723203716529796245346253294321852405254671946824512735148280287361495771683890959447649438768446497824261059298610774009191154953904712538863179109725275025865311024892539300528684052061583949585264770630896073934317386700421366096979549199515554295164164618837108482920954256130506444191322006814083150615834478252670987323697994419896800171452544406092578686417110303906647929760837874024624124811273619068224876910468512290681926913191481760064412902665797399275431468580263618605307525778061933109132318753913735244278665703053596082907606060675582786819313772005308967200755879363535018930951949639227883906768672393704750919432496685091382297126442948067477203979896201392679415385148996275384731922617933101539467254903872491753383937809156205745463831023907109646631739366421825330167243367232155349312325999598392020883207724573467641780492863416412820121326400365844721523309452098486121968478018694083313726478545865782329254999318989297749240197624210914410272378121443202294439280113369892680407375415130538689518451314983203997319570861343296960946490844480776128695568891750865767239395204441134275590580466350018077099870860796723797395839766452014680634351768781679152434727361624822533981406607544718161367384099771522089260014050887520042321731476642829109738279719674790020576038324929471760759647851189509265221166288794578200794814345330256280976198022105857023479115816586054674098859885544207480363043583230468341534054009249708077276671541135466026961818381777057309508187573192004170157513502956086161073959821690514578846260173748566706234645215955407537236728287438144879461267466080871040621646593615204122204339072391057457181271350932796692040538883733172809851357882790586060804308603056967490558717034072676263473624168456338972955540915603537829293557456113744011044010313193683730274715248840221413307279164665168088850989826860413086140710325489794858903850240801690383105872335227945676479785863255544072713462567717510996495313786342253514959424402188804204499833031497543605555777711063776496259929732525647546053084921839369140299810677439457516135307147236512874488261643805542310229276884232816374446138937283163909377094580079941396804028662213781962077779273836191162161327659424114744684005562309074141078931658184207757730666310613121915598044390438972876196087412338274631872324946115891809402575902634965376585097875805024178277569372610990124596544005930616055708609102086143653329466950232538638662454026671844892064878379135684159703772878104478712704492840412332228885734185779417164767455483059294244438925037072938624591083639503336250546995278009735487993707250081256055506086718300262867465153233869521447307449121627815614694836294768521831631068411681584698144938349409705016412929618877536719179022142616798825413602252398156340128830736723812979898554472284646745784876768378562212807533180821821178441308107739977079580013897270349356242817456589436502021030262100887686282833791465325810405908076954342167272848991826540306719139647837454261450072633947816907689005303589610504599703816859045347422387335339509711166042363778953801727621138859789040378551500776054688077067883397564820055551417238592554765716962006366459565869229859615394524284452576983888557095413424697684054877591410900850906366103505408221689933443790870037020599869530579701763320964929277240786816743480226532330265901274098723912424960605041482316205274821919208215785133533775201484439075851871892185619381249873072500024843169652072414690567429205989696467709969004398465156167425875233083617134004493688126447368869455004238222588351292474274831251952160165490196843985225231026470377186217438848562709687121124547821163921079783798435480063247897932694947170859745360703019117919287739562152145788871936004695310895265971130893353632535063181027769631053881664729954603972138044101545558065477106431208720547168829584163459757214997703763555670443603631685225539433757682393129839244932934045400583708550374843393016217256814740313755739532337406424815894265454324972377854391130817853285702546368602014005713599585954330027752746273114240616900840573927850787214703782182021956831911892992276011003234494763922187369973195660935743855866854905195793596544805969182758404178126582622768493771701672097759622423167782988145781086918526693380594744389675995020169517512980692097943685977363011253449202148066143351898991654325551105211054330270973110493589571971237471204285479938701814774945728852640290103082547700312971056259913416722644863377947082163028515123374905979570668205313757671179565586369506051785724042927478136188763862003017474401793008757812054196504594815951586816150091377518899144578471236775511406491847647745775970166712496249775807010585203405899627720787469558656443371699787093297701354666576982192208688846765711258449573576479223349746851526439123236324930000619269701159488726766800839975762819207772560560096759241283413714097185541359364906657305512610788812146787100149180735427179830953020559455479728138381648524915054496400305906198104841781729262063363607418376061638105952306197801783926612095465103486871548304321249641012032955280970600874219252599323414302192041268970398833307232223464592387007931897424832248047248559315006077706364647681884322044169288789510648679970946359043656837781619648390796039715245261913529511386411467473853340354969231456068554288145370746536774511375879133983217917822216099129657609096131556610870625293170234273338568954644691546615488258403358820204677252277368899054963108015843156659988169192738817867551206592166585513798886168627317699705286161033921692347418610280616513209527156576320676310859560639101475705435820864710063630689227898068880886473124595359030639524094837187915538168838569032953908040023871253832370054487572398617103564791955760980353032510478271753781053382945593511959167281862886861099861330305831991988906517746772122759010253504525426568836826567120679962356598555877653123261804789746107948738200805445273129940303216756349244082742251314085622444490689733818483241547755436382822681853434052724235675570144303692944434876505315986813895527355246183669788764743822926813496949516243884213318793590351558320710066824355135258608902347619012161766878575674676593929991336851247067459687181557284680444664836073106610790514396910499948615948228705839616645519188105673873539060591222055251334495637161194332811431773910247410125266000634086600839200891876763357701395932675852321414298230376470528572915484795719058270197043881027334153697328667239408896211445798221511292726551191291782994907217378063657386456317218414276037338171257601552393302077294040107644832231816848125340496282338426037365380542439622457464465881303861972010793179712849090863619053686412820005593484108166130237414273849440606519953792017333621910753090109302689517914223253367331136600923213378162022757751786575863651732922714187082431324234066532648457952252342575174497816377640822487085148598750558252693547409835340312753617767624976643095547438349001548566845706468593175107744085045847714812897808438674965345296082212699806141638170612817008196791204554300964128411398800399245817775182885230513838210661314238473168221573417255341481854652398363249369792081127587097224757991359931251844663019489493637672144231185854913406866212368422800461880755561722278201764439613999330470909040700800365666689136960073769378900870427316680042420971028805823625145484201390963236503352031732593213244551052221382128799527070019433015042275952077144660617845836722184461444368354101944184097722015879509009503666163841722343525942213474312375926153547416648164921992553340829885343238934547219046917787139222736022428598137412183230207189173414143189461251667314489431749506759456663903587836844954099450966813990286792828949666118860407669350581019569956356948535018884629663975561630919671858847385379005844014921158612444484811352528819918151739988895081514060240671685457952014168958621742606196081827239260512716601644937764342069437100931877165061878024639405085171151247257729092168811210684922606803443274185402411289536068919143541613411521065887081425261356180956830031882117741387137935664859320914252011730616322622572185892434197061377699421476551769619937099350650541234759250755725551313834565684110963116674069516896801184837107961170493223749644993334306199557780175286573477377920798657796671724661757306588824364162157328058543577193626912553096688998445351889369385553188400029007747619306214441738915991640638071468388059512638166913001619251376323259786120947613372307717318092840940010311618658574624531618430766659464569226381272796462856131801426923398228625395178894224703446130010093721377006496161931760025168038587044404777259054512189041640599404946170289531625525205301172732182075964174579420157655959810162960349561609127481558993911084910851903217998558097680338525494314821404771717579582332281583640166696817125395903142667846836616826400885301719436941270639112419348986775209304694323650584021971269779457547139083109003437020963111810279157876433398514529776333679698208025472344306097491059015960453862776052936452670923893757260401913682352689448742522435767110047976089465087194422073631118959321855788445556129042814558463665859598022073935202337449694439334320982629313393295262400233798987463040862029466114698698354918328922260780070774726130470094840398084817964407454486906513041974823232667385466305178585938732199407374882389413823438262280185093590627309281413519141844735862555725710757855100447161605174713721968703685147009856599208188881076175097417048121704073063076394782820407480128160382105210836254693303593505643066703652054731090459689823920428438858988806363509713201061396440095982191608951954535178628588630807078086927816313575046566976428717544051491717534689915112433987422332113754801306174498709265098653952342944428114798860814261260173529048619606335568017022454926344526737451023670939627705908729489092552423236423687132396665893744139753131566358274422366291391126805886933842467278360466207994599698224873691831311534396565036435114972084082813906976601855144280944449191423656354749518561136411967727138805355231312794372561657102700010572092216833936515958516747663825385197630898775202186010260176058216475236852458580661555033354808927152709930400302201597121145014207851855862399216485790148959976002105170186464307423996529206400380163387869889710470994066137749418472585535016733783705151591604206947441369235595774756558114433286137001492303676454562084605891144048288094520107382779304412412549577406106072016534410504756201683109995380537634300437390660546898825326534092449561328795784366099563027964405599907086812536396797299185972162774177292952979734688809650765563925060622586334257289731619236031297761507386727057130398250294704640492944916923481417641663146156086356200992912710004472206157281376761134965516527770641656798029596099614786114541877713462395318271456652847894863393895068456075433685737907212628334382500305944977528054493409579300162080632828192165565359216191266733045428469614676707042356416880944762022876328220507218359628902174510947176517335166110288906313493374728638937396368463049753311833910911268260924152736215254851808655184005576154783967048323187418327085311770221601948690132778653490242434124248160951611228683773136840466086840060002007544858499706472967341612267304009983783526113492167387733369005145984710895944160481061141640401458959802260024605513413836283766294632402713771799406973771077032058359250743631530363442466487813095197523588991741206092914318124975611744695159536367359141772191837553447810662026761961079046401592653185904395130964854305217224345225374114529250272773326924284310517388659005533985785359479516839807270819617738130951844960495441622829956492941665967461865960186179544441969902113538968082086600932323839782668433721555864879533101442359052581366543709505114981091109879085872662489986055798964723245517547239309624821787876276784491824002834429008519782440154868925623803557732270241848326818476520415336019024328907538671913330590264123373476190454962618831273777029088827068857522894210248314320230502424831391363780887939263204932132085123448819623106456981138844602406128798999005202593268318879443371732433690426812584988913563335724461360370639711427281824679572426885119577561038983043347692339258330975884306231539238668255178701434301977598928861012169780190195572237485246183728025304696935734477953322015289340142974797113129087816542237217354105016250505045190370781599467830584912994475358106061487268454038083754404947395174384461422629612004495038155173936431936872657854370274539360887482627376075948646183486730329398738741512870315162466369253923500714150171799720345837023184892149410394657321800632842399087427380926723391248785391917640401891127448002565104903997586578155450393498472314934589678499586793226344966839814876217041684326053262839378597056665204600038909304658972259470234268787473140194727861522845177993575893981775062746070148490849566880180786857046187720383381444092450915685827679095269735598421296069172529765649853754898136690339770710344679341214293471715972579031466734346469967083007792222504904428144353147447228785837611423526721377774558697603612948451232430348211011025063811730370501562310416588257866625570411542818509293199168443788820867755075268190139555319098941486862777569119509547703730360814212481644435308408686750481988903230262730980128222118293402492229748585762419942909368198569806514348782664903800121668638295934804598239344629100750705138391504967677544500383427841546740610869182845220274486979741618876050279866054202616799676894761696359666366730672852059395029997833393026403024714841384394771144372346443461837482279996251710034203129499367365479952145189715068997555617119036865308154420865601323420958313605405549936359853923550898486160755857218772618374228016216371328726627549820292498457000052671015400505934047548912014934847583912148277905315731842319856833219514637540003617003481369017900791151460142042995658609155558256859320250417538747795227272281352959643274750935690604759778538038118994735561198170162991285217742587665691480704572107216897684123944416034725304992331572797199084005842935919767131838398150567064332674832653138358421826720157302352363512308825671185742246290589397369613775196735096163920698066952863910477120939428734256371575349899875299848754956081879622195708305301060976252596691734590438641361269787303869109517078160137471805448547467068628134351262137126894321069159688209485662893162881137618173108193700586958375080132914442987074429995833147797786986409326792824203697530856880975261305231960644392738346679096716936275357183157975955640025516161561873135132279987731588916823525689912142552190831015817001614573685552392911471436309770244601098170492815412869249713445388256563595119605184653571338857801658156539002555710974123705007391260911737509159286976297519155889178748547781185677896562067404396553143290586416952725039264092631218175176746966679068509495947189928954916046394997194955274740080582811463972800582451399558349160320274767387832023498655526472983559222926792432694578239526035605317759145515779009424286043871599379504885242075989182161290695532297096876110510237467029556772755697238808475297035493620671875057654048103913989753058225431597318125970962503746733079360735238309563277089686815747907112213633518555513853873054015552400922497144750596993893757377676285319678720824709730919578766833142731791331351925000131538186163022194072160458389490484902740947385291629389996038142595997827795231836982433809672992401016186366632861284966771081624927596591192419587960864146416928764352975672594887190655772672611242520569340805588681312641064217401008408213727871883205554316802621069963912967486020568253142173778996269492369050309416414185432664094688375022071980692158030295352494093480615728925877251935064053318809916071898041115143453250604980155362913235493741479717382393059593923887068433349497524079324141897062205375255359188542604241547564902072420203692679799717124445569843814328402249443991889514492974659856593923025947298224957806009361705055049381498696268419314204796309313555540910763701067474990503251721760172543566705550265878945747460514627527193979759050375398002109686888464973706230061127666312398341744813050952018786328758717924398597917218745519516582779692704061618541328397301335486194918247166192819722389056239967725247792809511789229078182464534746521618825740549856104963879000782583670716791397053642424112071327278075782881729400171290850089227796384277013555397274988133312921631947424322312946614116955645380783175795372360720214108404360662942022614808317879055537554775026468770275215958056965159541692008465903121905639527766689192676213232179690995563573384965433086259637220075366532398454380315926708677316598270759858432619472207390929936338451166122368761475104152529499828958781710175795435063524791008282462093124638118475916878807990109604722597254817677096798165591241593640529222297481617997311672541284081352438199783563600609699461950440347244808479240956948579610199153014344048435272268354176281970636315838863576364416562881365722288036356523756746101953058225112732017468853536864799931685242318214906725663836759875976834048196376989965923337032221706156791377046583384646755955676305684989605580524741533994181624180741510847857222747319570531677449393529863519300213731406281502755294694406181666980990694724309405936378286542993230876478345607278187795601281985021974471109306985334490497106909589236502836850711556664714350798856988545444705459304831549430755042976404773500060078289519873962666317652237456328287578107050470530586072791087271330477629117073120423164634353359318709698250915684328844083606856084232228275685786454567287959309075331358310117408039658754682267364251872740658313918001716025871553846391832907302519507277757761875189224491455125796551305710635316460818361658376635393313671921971914137690447563712805210727850706142267435939689137311965054051243168201497846739126208060868755253704723283093191731709606953133741404345000906196058081447470891396404820092040762381659542374592806137639736131929095279202495164852609202365300747836333724945020173329292639676055494352943831546658876910926703108759937290748687549648731142507620233464528492479953319825358516779773679730117232107005917003184197902642752091893524729739747349758247249221397773937913941801339036670560497244848696331751161248163296948036498985415801281579885179278753198794671734019249065939088489683093892661063890274499468250480290216690656796904341183481564307742090586259408459529801335622955537660622641709571008744311904203381132137107411954796234494693133173270320949529935746380399490079628278218984831642207399420968391012521045331237820337906875882834672343878058861673802010328215021356359973299197171801156406675612157815949840104566741746707662546828091456698218636098668525701853134723018438116604098159709687354112653139959249722383140077205821016352469648485704244075201728982255402653020389687532423153944184239068193325718905187231821300669548996503477384019267783860683911076240748339736795873499123908654528506106648446913221388960791461660010466259744544225279063763567926408443315702915970517914810705658824207565378346149303173380032414597686454523269966329735264544431549195371353705773000309747778410600367058350583133710143624426032393945472841117931776005142631911723644307847746202944466654270705292432355960027853132952754203939195706840917504197851260068664154149082133986081330423158643642048077940653873008241748295401827653741396066723755897846922022527710319597064473004886688384672696405467492163697938612356187838927086432768743231272795473751522294005710859194347398473857743002974085088417753896394393039580951969276117064783388478740300521842763342660747322796624767924337092154876565363068643379404015062078031418145796372820376934936661872703616738004535211223517333837977004670781778526898763318317245552576917538432717888468922562813660479741901616423967376516165660272571622732612739386358677769252876760625545324554735349596508660928839034427658776745631364029311471176695430166735421946027755480539475636338463175893108510511520102837433864946069094923926650426926237846158015855607639419388130444997674428059712175758055005905667705740644738876133479292973515689894579978705111075002568042141686240948511503683191089065559918533885720553067020287323580695966060617004850408015039026914154466313156365130987091670749104987393772312849252171418401229303846690270296578519752455441750820157789391167235248292530280870065666683269877635219517552097042644336950470595914790995729984428477094701516065633719108331754241445008078501078242955425167436111062787262894321889670711561820452713770625308938408036090545199705300783642983400892792461959842862244032660877563916263972209235788575527229507283830986739895360074494948433820368123514678549063032359416146726112506290175536868642838893273898973845981394747203447619239219326558636313584530847834876642876247360557010488035862698085613529486504932256748554488740537203819619947496670721969793238493878955173339279200536698453333565527361329583386002248763081958594203119501788295468685301924016093389933716664397954859658704969469094048691153311112900835521071639120157500543051572872094387665365736116669836811510318320996916532497080694804038197658720524695292528321911471443556415151630636917732220058069677761091151845767017733539735498330686767715616423341067805286092473193248616030942536758053127017151404430082219159768389390183128135481483200356384053355588302758536968585304287469035874727008896876091565487775531521593284923283965236740873313762806671850686853939222839751253975520404401828999329568137779842980536276869322636659474789789785371278488586246771893230010021793896225459761622758270943448487443306504238397962238235485318381351264688204060910017757071669538412617323652076935380099244870249275331820655349022190987505459839246367285279805904449225423804699911329774967521226581265132316905497519741466230153002938591684724268590310329617252900429386556415264575968552751923884934099957211682998988144100883933760928804706302972397906211038478090186636621213766345796088109099835761074907019163009746478719543254217751568577392846646886063931340956096750460756873337745742456315742980623193424463089856896920095397598816205293023647157065270772642353761338881107712719906353273580054762398507248160420364487864153930298022312268526017547924731641116715663829628282534730609823217013172442280572342680417270605625781453007299715271542821287970692650389436006587916400709781397034664568107076000207994769169832043490859302961591432850008804230065942974719198619576071920650797062979827380813303625078703912386649801864842538279478186500663017130085698989763746341620116794077015305456882421378767086678719000052618092120587638232223360217064752760601413964996749656736416301161036855315260881025594601495273490102498825202853133630589488309948361215849352251627013720067348499684572029021607249870944345248803170220064863318174533191370061009196535122189127636097172634754241804861831999622118407972740036225514111244845861551983468000247390222994926634551187519487725357441445321164947622739686094572363704614273489662558323727175816817689513458302855083222293101558271011879838186095069405987900041859676661309197113860866912156413657083512060860533984467751717166451271217276633933746674592191914197053136229486163895358249724518225883293681751660420026034845445752502806870747284267015359175815101659756971020468697781799593936943374422789423292215682865411084805234751905493511071011189356816310068122285810476480412942680296459336680701683505703338046088263608164343160918064323691184050815376372730816799226762433673321395524484119318302765037242256658580264638450916116926318192400242614529199350318577611791623582613537561971183598937966944258248144985757794616225282755513225452472886513949493383244898877372187612572387593166168290042467011555697752506355571183258446517513420932418392140774291423472819920545010393347092139617668822720499117994362741283664323063505341946671972279852035786212050828407728466464453923917529925427743348563776920173425876648420941225838027199399232162739677958829876265560276767206588572346469738829569097253554026908913019715961893798828478632911282156862399402348471817521168936660592231777761421487485939727568416091529072377892753486492051259940056098724674132611826902258468743834205264931178133542071750363417895798727467340768796487966059514078845926330923349274611466441758938955691463635311815632731123273516965512086932456507229480833284712009836390357482118918657175488490975109824777560191225792724787892372795949395198183177740894659380442832285033933202928259093586532065923106090119690998841062232531188456346800580454860300179827787272543482808646310270412704973483533852235738989087996628998048226560621100300005521025221489610326142047242208363404719962779764252668411042844993903608814992423884218343518721848619130782266997465733824894625505282215415462482215249758449202705629937723072000340119163013820022381226736597508773396305654260172315981090928973743348124866346027105244443240355729821888476089645328579356153703776951551832402825397260338545599810669114199695094737820001379853503976835214721980866023696525457390334531615120922507463191861402970614984380972629868969792181335799875694859337343444492181630762399962771676555294870803655311691838200075926460566003150664021387258409752225875682907651729762350783477532770765539081743037769131429689056945340667651829279039915134979839599702693295056173904228046933981348927611096954323672449707896657568612557862162444716990155388118344758980541936363848379057762524168607799293333561370966998681155749407177898151735172488922455482976512925522545788657098458343820873550122562321942926733901574865819256111385758945853349962036588348308839574107063122703155269200543679421860431961346900541272181359385583248942797659084114241879679749614754673796355777518790963174575302726916041992754743657146623772604341859437504782626716968875730184399424020456776535598804092908543610899960607761187439842177739447799254076817311707834187558038558831203617662596332898432956247312113608843832251245463958140663618932560126458370336640340388142672851720190107493138795702963213766026612359854560749221297526352302985676293438845681025475010495123535304303726426687459420914908968742041657038687229816787281572804499494562827197231586636011161483261296260773189519093478923450656671254471104460511553294605977284051487708325709446900414061419556826442704039513773613137020804843253886856237205492911378249731244943821299374211063869786621624719994908802774652093394594371384939509713342556012513211641725355361452842575814617056574836015288390701928009687634897992189221768631742544232886253388358074442511269078169403227748518877026373590438967951333137493626094734620666328771828353177835862389645825648520439270834970204279208541735165839205515582286620927735666272318461494794905627694632637592853517733159605534404162242783001429353919471059273738879225674737335971448298173453446618406273408930975724714801967891545289098578939820191909493291229354521403706414014447483615216880354637931379918089658707248073829116488923031882757903356943485183093281519177811188306768927163616032819992455515500902213676383872731000287749069935454657758268691023230727248649926412892476512734841328076508543531305534922145408402435266696914372161726429915371568262120639084641334466761284885407437647333950092682146365423092470143790962453322752667294992347351651008312760589741738979048626159007313996294716878746193936307321308823430512218955768951916192535469742619086403554892971163332269042607280927889288228855465636664797305382650010047343178972408998224413950743512940394615420471052228759842270560616430771966623056248326606537274699359606373647891661024872804636578888432998208642441497739789412269687237706291376567695838212962730237879964230389066072391348761469607324282513888299275920075220185877124563415913503603569462190449482158399778406217409094880977160238325294506946981207597667284369720073998828298513013669366897192171442360703362478535358961335296676599793263922000122223895868661294338823703424527589095276666806039625053829615185867680040183866175650932589052838239033508022895233361088459850062001151287492235904475778871539597618093520709757755282403475954673679115527975840322350746066317871316002780201589179840154265197056752113643835244177792674942998041378373060894972791707047092456778233575112741409424283541055418554062285850060862639049403909033731867333112735450743565313992010513621241829920323891294751903953115600779101285037253428431512336665952198337429506070662445044034507802854305683654766421263126726326697175079448114338304233670897917264619109204390496478539047526946536201618422862413418640795110806116072157823487197175714942959293427068220213998891819196355664570190557522343812213542137584070542085737592112759464872734131150586576642248579754908406501327440456678779432155979786817855802289677250205023438451390625800831855425973852521395262609220202525054805442281074200742317067154742221343713453665887134680996833083180707741084162877285636494630417127128636160811624854591056307985571545692158969276427031790801299220635570459171665695667951344223559212853121408019665233272217329612017992171300200770298483031829243984183233521955404578677404327495685624506869395896905475245117724331473435796517158364185166062414611637219785864033199747668829807413424128249454650278132075580940304046838674341554270432977685738880670087390705490746097254427947192368194715323372457285752072707338175035604019044806615079117070087956729960367876339038690359907542302342002949838150728316765462100376752802105302509821059481147146372770770805724249012627495416448012025806483281142802324278697265524876475418880009210515951572226561929483829384918230963629297252326490829674127256622539317428488094113335003347853146064316250457911660144780376745030748065269855833203638951539218220851883489631242853380616501888518731413964066834099760206331755083522809658117248866728641983187502844722287741213551345234102119768954833376927744188452441320871129860022509100961849947771033236306268003923726947553654314274782772323595185101266450851987747281903078579595619218890073665528335271242503583971596210042871989641567679318162478118852046513220410191969465823617443242300205240900697429721545513791590197647399584636477872171210472179169538403498544453784527246922399103354129870947167852296973447165790490808050140893768745456866351314554436534694704951918136297152737337603213749323917937522620813302151448108644238331494606893330645464274954042562057794540810267168052894495544335311785347447748053639418112415754565464029634478083651329463849511448463365696867672502107812916050874242640733532611539118803354740745858681609083318067993374149778066749154488520427919349300709387158106856578694076335327062126707852593583499076211586184513638089683701820184190540792297502108560825759311177912549208974636157337434133101458383635442552629784082245521289061507332604346418315660421713610697286821296848305770381041874753349787447475290137078066119788628440711935951190680991776710364816772142744139642757632598627694986448032874644506776933615965503228915194400834721005917735556762339291521725410944845176372331983971991281575026849626278695268270887592296680737089117367123030332771190369904026918381613781216889827009431782745499957866034309794771432241356214889126986807086169873526337029074228142025251749191903574759450388572641332605057978515709081175929498906943942356127390638545118535762866212584535651075109375802758169840029759133902285891169925761607230190545619442821721659299334486642528007097599809194631232213803889835835663574230624825994141469347360182167716036997046985915414631131043922301528426380217632222437596554452358833178474597062723205256982328045040635713632031737795938396073783753212672772339224543706534377785009957796770044334079052808700614514230826979079459893705140781112650095727759043909857393470149525323708328775404814305243099286208207994650445844777480944531365318627292535725202513962348146831121296585413571322899986142893593280138864669194904955941893024809961335125422009972016393660707584231306466738159105429716169642187947239648702637049025779902542492801389506522363951946849228111004441525261676015058528073560144210458215432610395417073957302282483587987750602148334800096339424406828601184781536548401222254541097116891727133220144786890558679428417238236908658015588132707821775339445966659613874150355718351592443337427358286429188409121604623119033531591485702333290084327728125156307023056703416305653608130676078368628524525118009223176516144266445651181531127506074756641126258922003920681838315665301779208458002417669950753875015480696884902147525063231081117300754010864654405563368439126487131094761314455148221877503420583390470013552124317766804879705595335494436405560213390250717697225049915603714239486990114107549306075266282103935168531961706363603127104380986369175659525368803646531681402317325805254657864177892424648467397433904220263346770400649560883187179649132804281787317015648056371755806755854900220164015295200852532688401144414286089084096780475296189007681636040296542821371846530117256882873474578104540404151126929418777147922896222166642356152207782833050699309212333372145418246322606333722949530648562827480690601519841729927653131261971917645105036817778677508967376203222641740956859442414478990850159762893935545924893518194186362364942904663033433876119600647209496660820714879418922357837837450782930746314405609720076616208268626525530415674083022919222556343458363663307346729087524393779731426201112300382860863873716678288274410289315038098673828579093621656971034867176675529594768222899086545029554437358901953932297602888266093955739204934190099326513408342804277383800605479861189225045752138473626029557961786899159136926386269631536405560096420401913164763613396003103881171537713226288260871528307477719037380150064742904033933113412171242122639183394564414210834169781819316299112608498595211640035105961099845218815298353380095285846979526316311820294888216018088024282444189709990043160384123920889671313362046531369400618676388591763318213865125821894498449735822561662015252314859929384950120777985939357322617340516007712734195293414528379874069537740026299976456147793848130539759886864488225148946941265348545565255642975666275609841630971932452596118383637761705461456309863006407599766849168991162565006090944770589674838950764796204751751246995070005173719089888308988856698246798153731587195981915768124467032910293768073920544693877437436442524710060997293317481791488524967913480357606529216395927069484070323615220680147739419739366156110837781547031188175515002525067499511324101991250978693546164969691337532835270871653345791931463018832709144711680878189130139711848733260587723866348597492342751437786594339735108366872936823942957358910028537515700617748373850938594888659461276330880716175970156370156977998124275319614456533666426360723356291054711503629375010850544794520010870497635104381623295217124062921643378950948077944236119033363442068372679492940264224142678869066590734204446543918717804696323427475374951258782903700678598359157249778181509174319084987616089851824898880847502397108560445714849998569118381444424384878274524413479796701359794599204727001325880024266837746704666795610166896841014354532812484915437821160190074258252078572153963113005302688198086363753192069995578310866745937205411557430318464765911743056139813612677504390052118802162521149623478019151643311028249233869984779158305956015159324568719186195259468688402133291252180439257561389075393609948793231766775097752244528438149762421184421441001326445459248371867320394582636628061898941577243806357669167452384570943603014100873217752376163896618407932536314559819070222181888691905039210729575381792669765300249970400715769203112429247702646013161585766344519722224320230271898281022103750925013423291061314588649792933594738370590362171796615895908094731133857892585552211970016935145279694082545939082976510519849180532050214500368645618338378044662683211218527215167337252663479769337854765023891366736582290371648934090426705078703596457488502255566640214402383329291979749248452416890024289401667322864651300809244214150990414122426983868208406513903003266770277513697918434381502753265632716502788326898748296184494720778828391054764538983757855522041760025500348146839376747554899383106074518535277028989957865728181815148473741179389934280778608885705946771938889645577260865544056827499395088098748755988956283542057657799847003003171351544463569419215015524347793187726438989798336806077242845195665311209375291144161896130794744312022100318840832517141897038789573530000856990021637437454402556452467448511819410547004240120639487595491475735891878727682143998653647334863260201990474852772423302876843561301743734649102182586954306178172209470212997486757939947688070004875208369530691027378368221500221532021702160415982514889224504790651300251761319240554166326802970455568627512485852384924142566659174061259335968656838998853890348527911925241232882543372805283299561875354213708284656503454418204199046350791319761484435006070195575442069342000526020832848436538954414042022125742064023475188909699420646060369824243071749995380244469996975878647856493181915395602515289034186865965073911085666478502677243874026232663389152765760114680156850859562174517847690366447859924943624649408513568677609985548968000391063481057531926115619994634977534706171460938110070946095366065436320996779830199683496915606031005313984006043824006964088048293411021070596496859872247048000304439588788204273013787649958469501817802703294881701705709774156985277648607630364251736646735978335412303771524447162698106684120241274610803957357450408168832655836664456825782708000610608061943967412951501416689722148375829583901666099384964303596668346179227396469656837655318052676871092325121301064346825943053800866997398921718831566992444687235739849152674646319863582293450933891958969016576571484235294725682579733034003695841337619932052628791926194484507654409068687212784571103537501413189298521633992258120695414358950645664688915162288297619986519043562650672999040518520862790361443164505583501286231487650344314888772854359990917993061965906898566991061921034817831377455318769646641244766660997505986198590993786770723329272063861482035938861166581263992818562075645118798042977960368201116247536903819799248107969268210608400086176637317050859612738435761618044170779115594190671571628447218563122596649758995137871625121349864772758196083370783716799987659138438016377299451116964544625535656337403336306098226948787860271530167206512024822730745293765041517791120578527477066326903666409932606211532371244467494310386076423746995893250746723782257807187144144123899685362165402995551229493466312155770770553678668138167463173975090909581655882294063310704173601117560620878232212800555936734276041941185937561457723982892903478648544572685028670575550999946394128215692959526797616608674024702712699974388746122833728911997471350203936965236642993091531605008483267715020778472940913940816590593622314350096159891677754244967071964161836038199423881430899485273458365610401890203449068591335334885003260205790780220015305453358302899142710142354216939851008344898205331078968015832431950161066252888704421639293682665526657887361479490747066108743677324815956495034883062196057439741343832248985895417883603841064506838010630908600122179024623324322843836635344393289252890492120339238551986476824361503584376954596456957779615004344399929252867253022376281008472473907696766482442955944430633716998899659458795502315999332627134298291556968399453781481081526711885825167569507216013325713615783291899579635426289272149878134497997910182312490512156283293558277168757681527054582484078448568953831477560747944449950426885723611809527694901621149407387924332536333233500055484030231100586966033606768591469108900544688063028779811344867089499654983523980359129297900244553901436836887901501267428302314240322471329613555752861337419156211960655682205143084215563463862457439469277376946382804511620483830550581065527175559744900119148659548787732089535932978580794158269916052979726405034354724317801276264025888408887424135240996272964782687904266243324353347614130870737990624966946103604924468614202081439098948131571045812025560419036461351483691225146801782238412525427644089443656215453976817443283384761577126283812520864692943782355789619964326501109148385039354216231251432394434488785289976729154481570900302859995228744744548485308640310275173386210577392802996882120952411846764788456893403393095153465560019213009074318220479641313088828278185799573404060867896806176401436881071320584827515297446576062656255230331603093579249160425849353369732559523442473496157863798918405414374470076318725696462022700945578904146101495987864715440083429928274371606146784745545304741516608140836474697722628174968283052691510707466294654638289995651121041489218338596951579147684825834683969487319359612128776327861100326073537694798882804473908018334270210952920711653371809245858768000336269485009689374779588341432272702274346235331502032828432791694133502766574755534451005683517579458284322147210713323709357151716084629179051754679632514103522164213397119984262366140220354076647673393390316071212776195897497378527903150976660929793313324710536729028343318857029729261185300118615373531698594348642147463240042477785089066103100835786754107491655325385023025743080505044526216558791195021518902761744746608840977065032811406019405226272398465459178414906164422468708652739418060910520896458202912180841573251665149602662184408879739102896094224880013073785672065529811275936774320322903045750861449549328523299937633922834812868359120976763991993001428662241567300468329009127291461243874592077156766269511924050091142856498661768818231160875549724959847140505652414813353598072221947725961442674498079914806586098283553788824844336114076424098253802546389237994249830418333656221143208984050567573979549883953622363169199901728539804941038167663719243933264767508607390777717952862142144227673771299998178039856133746401117360555326544267659580571065746412048771004283717932427293621050994228430447126180754962409073585455256780024210131844477434642605614420546828934920312299046021453132149917483475348744986013098481209030083275058875545556631291291913675149621083753725900124618311512513186547005314523186129647674377769030621486626537180904477559013668684147943972017269589020157015014395814674857879413511445984518287752290645025624454543012789879077706666676304486691532064460334252490065198909503797066377595802634727642394050534646497004495161001165836206125559331958875861257543614397574995944009237574117285834430301647281198552790601895322173592185462248523851394145806468637802161179711956105101066131942927095511044408747211705781884207609951450525731582368226714725925867899206844584713000976923811883767338364238597610968502598031605384992088864501190552654788474712136253072427578524665952516240537280419953720214581071852677979730414916660425921754400640579063037483151948975987818302772977636855857132747900359229831337592503143134360007347342334643524552076743890148078961312166769411352123773167176414894741162709441054536527375265125003129182316992552645907768970302705048422293970846931396399797370867950317096811305915411933168258054866938538932618800554141992724299544780573175220366956668613871732456212135455068356739484222144835888569799060417688864537892909713778617363567382445634203806833549486081416233298471139264378643780660107325758038067212960712640640164319193250041786835536300741903870062840148251804299616635988901309194240489441091034859262151466429411557669243659071590678028004798155584756562249277316054763396827485845860188719384220797329579996683940998737498192576969427358928747695245360781927049551909591419582955474329001479847429165922487008823107858463695900782614721330585764599975286364452243002140053685101994012419142067300632459994823924962169914566743684206406510618733401879367391306792359395674806422289922227126447298235012427036123270428711074937583573208348667438900660556949731910112351422977307732046923758495617052782732550119009912917581650028288262042155841834256588062422595498279284356505311011746929588560783674950692251975170473537925977384175234396501635663967248570293579633004382842273341428058080049549819937679237992577595613854343910823083741034134678651841813575212527531768050696210168349149336625560306739876530193576039072462415743015022424261005059856145891245771441843636175132510493172459531402450609054490333561143197460397926141266812430215983269706778039975724652282788462918744920307527159603800077790040042615560607473237644848345981087075546365640704224129639084377533082392113490471621716465165171317564229814833500229607063486626488999461138647324483348344027492737473459612376968324439392144026713426368605627582667824056311129377548805196711350259394687999692736751013698469771852353805001065757816625662877639287344959602572327689215244983707350180407067558176909625432842919369291513787512466046866265166233165806691177115877033501265558778198766181075008644013841033506826795498006472534765675553964106957063864253386184890083447275709985895213151293084822406756204582303633819278244255780500099765483025715620912081134842563700040650444790438932845548862327775191037796814644177598584538921549215902644770914780875562525750501693572226187695624903119552626175856468145226871166899573223710009899828949110571861211171560270646226846290471571237991666634316472773104132656329880938916763936090268102197732991080270088105948991882828195880118182306007467903536152702647969542062122806196885849068722633576980379857140781902757570354249746398966918355287128780754106482290871926848503896692370234580313897364030361093605568485831393764508460574495292389868049377282798334726491702275286507581901782194889455851968734367288268865689239627798321013866141788389210339062849776658795213804569302965189962731621866883618918396013002898129818608775151588624277988677712171823538259290631458088072217480185339036136911851369714677962472289928765872076282791449695211772133809392726264101336214310685011128478344316423079076860599277233815771734540976552842862760079616559285350744381410431119322211972085909456348994511982043799696693523969489056800666710557796009806604188433881234240347382329672371841938755975577042879646612135527442160633634050921447597049973513030486188540541169253311022821714125207066789051068873934054989176732621581725549406056346898662748089402882226821082557163016198942388065676325640707759298723538940059118206026177706124778108565975793023144543266561300336503286987634620913446669627636232872495985129004485618731558065937784156503381449937642029641627983124734237730838010470835726466844505683949713600087460864614196465090848958110579893506823774280430682917886897170307285628293890026937427105343655951255630674803301727939300904803991865589354092458516246330258394179898444134350364114622333649510736011941858951742212749794143654742228992366796620277357015095862907338090666384324017302379807889764844733274158426745513050334798051377608028277283624758316434600343482374303108830432714472719556230066222906643344134774307712809916652322485066529998602527225694797632016027559339984620547656137275334092164849558268493613818841871645715899450308856984157638300849039381133554755817863077478262208982047091337179893541736965832398948969784101903248574491259829478160672666247034617415539149355006989744320634524348141072725821505580556340083876625657834117229919713398486452290153723975636725637376488929872771037333427526732503555236825939103263736468607509446041958741548277901677122558645889577860507474842625289640587901399906982084843336701796993368406245652874486577764377673123765371465969853274661730484322547922135934626004947441710893214870014391388886416617259889833557987118615106437893065906254589042870453922739919178751890717610452550267711170281031724036501114026782015484947165689775253601929377236737645635826887954277291394739883191239699086238951541379904454023887375705651771386254152880612587097869459379340234714428787466346944939725047953138498587706072358368458436940462315418631820508435950902052847142755275887557991111998127112359952037451043515405020781169064023237447159212183688685242512606585824840221691667839331828018238547424038795087828535912395698804877365180353442962335377469631170788367954790761990121067915485458660941727661478501447950998036296205169335331516358011758260704689112457686068571164623783573300219206896042743503203000107166456101725165125071092266915493220364127413528442714533197091023566511073052580439611900705637699435295254413900072571710847955018689084422686021244227345399989789115466875391040682578285676270670454307200907140435670285629680643756905985474871767953805753778696269860218971154797831479432433444655610094964788290916686916184036234123603525731441492874993629334595265913861172841577657617590413517773339049052179642948174512666117007655899627549399751950119936176899339712610800072905754668509380151596008362547871035886928747576531646523083276271071276816519382731143992140944747124010022161114535663508554060674400414242164429437889743185149710821020202258417497561444944675112199888849099731093742629687079677628569583492167405640582727157935806592334550599580580877810449663538706296600272879034291503611913454681614907931234007217038702651630757351680957636974822113941183636738371553234890844733231056390494785053165886989289090283091249348796671491427517855632381930633027606510597400939746040875868690877530613936540509361636132149256133331969112255719220773164785864165378376765579642101683755795238168473360676441402129167243028516004122663195823393197150698138689310914326729299420994035336333709259636544604736734484584815732406573999128074294204816777996346866728230532011695988444143606373676280493259385505307952515126024606092104840649480804122981727365657051343597006943427972115142395874724835604619627169183170433813818708918930472159221301876737431889012323232982566853151520700672674986138589247965175871921813632465642444397239265441396970909654277535592848205367953870522492935020437850782976331745592988674635940937279758045764117337441235685159333653029893999674171992666545636155831264320242369693956912710325518230271889034693113858328121580779233252811161234515205671089302913360302383233068517102555173980385040385545367469812003516795671212918254606726381912478040280491673493573386473102719387794968780509589742817920387307301422632930221125713870651044894349781414637964752108819105813742548813317188041745793124649235000673509469076726190515170459802396753756539972122943562080978187476531735999374639464092544973462065548600169598117090442580391215102194943438133354491278776967562747333892989023806107560565981767162332548767667295965997907002919514560080772878001751928812539018613949789382861895651255303819501120293603428241118195756764820979726512393456954328334139400355492610615939154022851828420202682808850610903658349855420676487882906835535010458050161011411618515608953211152600375447563431358134382473191034693968442348237577541830023814528004991352538053687352090593215121696983220002532813948249961639929641739158535388293372806693996435373488550541897873865925129987418263046363459475028547633528958260053660233914939006159105857662522421304178058298866486804640138161796456844492230670748957237300152914684311044983227567690689274712899173995275785492547375403938436092119333576426266588277813490540663846435404443091207886609167780920119546322330645004247127761024988024217711142152290463990079180851120025669355952445598176801812876978239578225332931383933701521935373354566983779811813804417188470186477219726007949035286537910017365182843810898723022086520418937226054391619420073306166520788213910879847423142199376763779011672286502105678667385282258385511189295454616489754489456964391582729562439973314012467390987281512070186964684798557329120442809776562300348590759976348123411448122362397075354066807874808023926208750723056056935317713727048368559655064271508392346893720355469229866585331602926898011213194490444220751081474413450145118695720226517787220658691182991508631941328945471742094413137952937026510997366822104191874881956161173845825286438795246512696030207367912414077726922608566154743236929158045351787801283632191714715293275600596417287876043827251698005431671378836982660208546687848546981577066675517908881945914692383344893563206577177518024573988159638064382069659406911197767037930257310962219877965270734829108508937541115218171753466803027227250523690728729289744129981053810991362371562556554575601067096174740678584660353007802750493048414900302728704344321595227887992668887210836567275992127315370460484286329352436943308372718436050150072632836064140369676657614494311981407754633430926163144841097931347230784524197449892126796171322985683405270141491349309015222735082498547545586362538110040039723186110435426037614942054205170020597212703385108145155611746718889648722615555373587122720205218411133204815900265495351379370179689308380077566650472272097336193258830711164368661861636676480824343666394268072326014916111027958345939349565697989121301243275790328914279789404331594591985235116785039524998606991683206194519858442223721640450621745390739025515405122117274680898160860748259514043695115856021556837861779667077984362792170300037428606247474718526332171251210377064448115223117699863526787381541022335721999318644522239114880230212323683129393493275480517845056956013652152415346982979347448695062613979891418122945160406077048033941449102130113749738498811589175009748757359557029968903705374661796777876087753193484755147816269756008258401781766141291604989372250308570215015194606623878529026364425489100634301241619065532305528818201551191723678973806789552009298750358844727797837741589939057219620994171817667293732406257874796126652018574714414682641677854102565574984554610998900667012278985972201908897583996317278625324523976000939832046500696469812518073024849322534252683105001945992026589389866408308239983023064213885127420703091948633894775692001599241205717679027990111294387075655730368529908168649598719769425419174555106379453776326493673153018214917952782550313271755397897166436268924182921381256394564013974233236502487514067672413600967103337056792670343745009974214675011486462194623837310945460973964745935787373859218623347710996571424618748881128499206567516754320811714068656915247033542491050448668532092977223856644712276424357848173453010807724678322534612163016278156574513288735775235971931124931510111983341653724524760031358252397540765908807821726514987878264171792528904605653619560373750410490876930856131967705620367375077653402853329493152628403871475431153056417426346320289410439022745899583497239001825146852114566714398775759949141410365598877228012389771912870420793380460026142286444956227741688226817546092448449294931062971326642138682888062272007130511336408806740781712825499271967378354150424919987795751959412272871255664878782027653246895996697920004387983588097563283974763168936947753224898538141080487742540669518424383004994575896497748284453669691744295403687544173712041587500412382688863028211913156917561938307028829968978931960131122791604085877995248837170007341221731162447124260808526893867201656045958219332872388800433725045568507266685497645133095578028771371783035939173389925566641501288509418464465159263913803358984999744851865476072274805432879171180258776476158873112466757308015959135742149293376126605999315636658127691492652867577426063729134222201807602907365169239088471945371056059443733318699982940650341608472815412006809454978593878286432284879694260531893098429692697670926301976686189438163410416706483402046662949866595531967488406547025332685314735894108793633852421701755461912733275556583762871436439157124418804123064137876471066199237153923654915940375239252762891105223415607122296403024683878992754343960020731985723379374877548952721747053217687107790999298227731683253919158634416541442525204279049969719081055517278483911270628391069375979229689526555175240906546416250997402812053800697326901704571891996100493723622707912895446212432958237587238850239590471874409685310827728049759652292260819953766485756288203138575790610551262108622160826882316938737861790035738355656117025457838955422757310869898063407834548555756053411316212623456604397640220003909687778290190712006008397179938817094462198606566724991310023538269739809101416384703902000900978565226333123429734811745078700855105750903733560054382730337578383674876944967887430312026206778111965804867674517111426888964326817918709671988304023437576900360519224068249270299127740672366073531217864113632522357796169528819962447344366132130950243491179016728043837925599609201182516845445725921532450046833330205365292857686892469554323916481767528455755008169268150081522343951588162031879228018181355801288196740940368830184192540089978815926676862898627480589338910275839236366091654520829383096786731684164981497471065029517755820658601712986530922664896838605862049874737819114541348379518100308422025561358982813818429701437856580982646704574356850689322952145214255467553157317473049661862272322774302592793396822020032713726325462229530325099200684245611728834298378568179935977087738569062791392458025609704956409485353677148738224332366363790691623061459613185480145661926277115890284718803570063404648767129262281397364524785369615363449694000058034226996525480027428117911898508157213467934890835964488308406379920546130545694468998890785998711259036508561986892060575914824503034159158772239940499020765869393713463194542875645766836802278624828500457922642827031744249819267334590624510678432154541193072447124166311306597054454028888675156261010373946036319334882427647387881023477678285627991525631832386591345648746461571874951501851771035553175933010532399138867385384240153042668578862653341082145793569455533590433655400947646621805463579365603956676555139295808412967469233823614290782992732041754547915184861830733632188110593093796083192645870845894307205923886484168804966961915966426830852663869919133448345047679233101808204778165979755754025519041209920054690270898223836451123679138602433102585755941229020797016751603305296823432893376024812496756410104429267587419995423094678919232264461862337967406497284756355503006201234339629956369537144157156094049056293884830258872917086493995008778761988441835751697645651337486253248371040566177331272697004516751613241397098522425703177824516402919213354036773657291353455053168017584812841702726187050410764112233889974747480110172217610976726203741412210608788092388905540505927912000855845924456380477607060998081577711550596847321786807172523234934916920139675024641882945942615664374731814636627389162755113646690482881775586879944632060439173100329774829199589908084367131286549071711726547712369199802848143891138163924947507843814735028242169021937112080184639250076020803178844192175275872207393797444685710731568555091900815555304752092117624202309378868063824859447699713391282283614815935249033417239052050723206692391752162793153470491933160112191145963385773600691178745023719730615635491086072050192364830411269175052894119488969738231415795590003244033421556736606309288125248821805687235772163105952593398254541607204070915908372586463878143785181283602966576087664524649152408450169421780255947943423720821563577487176313958462842659902591405226421985358526536757953130029044642831130099329044992472563778808768074515020827822465599119058479688512633816142890584789899318414492584169612168476854016135958768928762555960285566839979190873920971460733920567616201213085534591567225679346530983646464996173365913706972615325828836525645438417766604344685704521064652496925078736377723574901993615117610074568012071313510493357852755888929714980273972301957011553082292938654472201653899315007503225356869608986615699313562742445195956146279673144469484312415715583661493533958373663533989881114185629188201152302483992775541376836388632609905486378547148822153881417877688763944519665171682324379530110061025974254926803882407095555391242890857017879523230007210162021899654466825241249411523726681823683871535373750100533529953210611855769846391409162333511403761246826204272710318521802568403121528936996487994120325611485357956892524910452777149549655103914721816991460792004773480004774667473037880908481872762948472776757485340576684708361231450082806793939174360842555757813665964332407442215231272056813301553406889182779023997662582903156852513594290466133785609740729360447533280888929025194941915605466454716298099789118609336916121060340023319933715452103814230157541800270066757724864908174574323882161024160352468206612106873557346499023268152151805698465055981167557299186743956703037512335027219899360629909198206008129872416291908615272048799576246163734396546375659310570694695514548465726693417158133172208073996811501473754482054103577191349876077041207261812373123320139799392790289398616467391958762798913741242561922825381021356433793782510503702575718845722506383576675075176458421979818295076095114007666589403982046075326955418558988951345120450031535583340181075834953420413580506143336921035735998064632406599261528679705979254047067141793071587388911764276818522894545419362587444629387287010846261486698014781564298632806661559820931364048331560875078696107454983793232624643025167135349562487413262228605414652847930142497704300746210648995048487254661298064011070419488627141257312730154495636527797613080716233196579504483910508461098657313742821145389086340122466246626463592319949036819721980169164712740182219327809569577444686310352034822001318278320295204310274473108065077654654148514898152187003428439426212933329875763566369362522205806098981823004750883070784354419631967811809556505220434426364312924946486030923678931316024381258226266780095425192597868824314998509167186393056769337709602954265686124640895407786228849945539121370964506780201171726334251676432103358858537930729888091154720667123537524961158289645096397468772398928851471686782433441887591822226471455467724658368768296624347741483868539583069400493520761418371044734580328190019638753163151650036025464485946551794813172991349137854483059584884314043536573278557420894196806688476363013813518720382804556325021375212393436726159318578927082463083483588854129979777138541722083709101447411709526677870450436612365515840874618020736230909399305345171224331777249609982382658240726681567809658284995253229090120584300352136073148667040185544643558991347490119150542288308154003968122974472167905630080016225827217751162924448436037025674308499403923111905832703220720756331793302781427874933674802068909134120661469835687730391926976062930777957481259759896605882723086329322383086147033431686587182872389147733237576239873482979399489616986800272775324815923470174213262840238823028246993788613195009688153089302886945090348679609555491656816512570537276825070953183950417021418628792806615427239581251340968658619302922029844250358218156495970083988490487462890742951631712549828525839946893004304007759810682481504647809050121338574131600237352609069579830280580811273219839557609129958689653703842891748155526951754320136448867088904641245295422011149019554103059566849104608238052156108737315054085476292989766141652703352160903610226362121983600680371956142843798998929285159927746661038236201859642624860558576681382822091792888426822499308536916833477390524999753621732557909694071438169435827355281963078872360135939562294950858506949051437200320644429389432997726245541329137467017805249299928310914683251173636752049057055421813326025558352673764585331665701930435956711548795258467610255251905606668123248244736673936788160941513906535887108575353344113431181427696738722923376407846018752323258287385923927272493897054634968628166369537272125497057057209319390438663903862406655325226974511621562466266384983369301184764911620760549378952821709841933493207384444221917795433545267622203229058812335140190384576573672208455986253840470606043179695174998875685769366808709281021154699176875674892662855701281017552838768174430324602640846058658788665036206792618176950379502789062317817549057783655859155699631933304013084485340219184947137034595408050323716650045654743111613991542306758994095540289408569466934940184895273418077501462788167830061177062115848449249364419838267805320482817684041353941382417620068980812843330839293121414760478297990428596567177235007510858784327028178309184850499756181327808269854717161186315197274543592876638554719972568445162846213645707185727471876517081813603082165237953438241569345537230186789168055508641695971043985688843266833427286067046257599966758972388200150631932738419588941940963197931147428800392269814357693162646450564961970249878738903794096468729012169907381484087205067976065969438955937993020148914577435108113825021209815969643532551688835997385883252827864657088269265175065527854639773522078643821204052666131858320910496499081708090625747395832951336764554139775118349967855206794056966630109418813122010654078915920547011989065673909595773685587518274614867163860063955959916957038409021471780321777109172456731300667208745165098427297053938747531567073760729700534216598672332441526476010131969900514682807066254234132739605677221650835831944739145304581156154751964676024779912863136891980319529265204651317921254402519456968454629113469224972002718991079185873840231662220018240145351468273418853850690102037879818535705171373662478733181862821494596790472854683272787598090344624814387780298305146519214274822628571548546703473130909613954240361114617867800257273026693921293347509014245354991616490815076623638938679515408373965244853860756898961865874322556017448243111266045553894765548773488350888910177873972700119426728983723138235892362871243433164829414719543202789738286579204384666179179081995673694616956967872638360497613587949384275381116741713517419068288945492869072433862446413112803289283812678047346457163195626880723729008834644156145017861189804474504015074361655590637087792785920029529206667831406017414809212710782903422454876937200765802507644192026493197783534650019523442827516021132852466344905199664566595145983817249810643824045184535039864204453022336619236816741148951961777894857549368083487416895407509336705945504895417317878191045520991627538617770155633837000034338517074148328998204140825458349679322660183205524191260512088937499686323765171771179579557496303353789788032514455574857279268921191397317795738981165363652662252655344931967861505385460394392994322467219855089547670463237352173137486584278945026783499409673993473288636747350704357825279733957961711975988602824645711020015408056061770986201074681100195493773870773807038592611455956789056178978270308084592080085284007873098098143175356207485292387702608231597329807401972199017641815109543652781562919783972802673814974954290760326650921214978101240203739360963057835178089115589614939741540451233413158268589870965382749242317085857103139418935515921181747922109552212311334685799776734258955752784781441956561434991966629406195787624818321630342957895362217393319285464849908791062690825106399261451031780226578902514563024884307700219660362807897104637961640019093659930938453747005554691700457722909029877247369184324690315247284139056069781054969761311378869136307630663857520716190395064246123200247220936409388415598692063152677975021313088821592343397895944739416982741356521813656865243967833126196427962174154145335840739100419935274545361389710470074551341125266469525291573919565583385045393229389278781803926555895427227821315580542096993707343954406770043998105066245177667746879443153939496623434943847930687201384194279583077345561440992556855604061978429041385734710417883284947660528296194574106312826594717093980589796252074023857960366514616363080586656738443383228624348540004571259603103711131479357227010553508931954712627176009751595053998942217211009968200490794922382042487051740174587380297412971967635022465503332564194132246420212510599856170087071721056898544797173243366456351433918727127901085202474605895974919314243876226933925419423771243993321540026917935274054856921017030299094880993827484516286308983440256936484547867635555848085457440955637774293750225579065225697871822101468484337846019309293706562927242239066550090632895231440474545804702852299633755860617291534538787344495616006346572401131562325353669271505831989435517300027432646012002584256476668003405103452401266652119489083101766530595153839636582357815556624628390995924161088748613346174795985852382379078248816000517525871989889642259183117612531252400028289823840880931211978347654497465304616333770369897856623728140053388861984797492294614035592935990776459834366865517207164820523847413237141935711777485277220468027275852980081764992956941482213198599013334833728688673822230367555233078631812029336507136638201768651377460293740985922167625918002717990757212487828244886314566816280734299317226607186951035042053782827579815479076119417499419749561233105784758194712841342874126982338617115579241623902743341800582002821731382293994968224888006985047630509966326270606978751639245686123742217513379370929794750197320654850612096637045529359184512409116586917234925416045776304662916825493084894510631701977797206551877610825042178732420159073994589530849304555851480700171027844364404690319710089800082257539836276421897348883748998273378755152547224983359064584165651540369237449414621166682585584644479987862537181218241701884965133634608936579131663679737003426430699023691221102300267702719287485356139128800964475637436421807602391328359510852191938740072762468351594580344497653811337473213434785236203192792702065075788151583804607671678493576627576610259750184672039271416961357762915378649819219764676724384471702134592337613409835725067882943603612646628772514623492668738944538639854795349416925867095525575042096678932547367278926452466956004188190373689331799093228177952890429889493769196555708284179944160837462169384319381347975522896781125144645153980375693332467252447834678188715068668274218282420534025755326135772036478210389113584406449250959991315972288679985615748775854577233999879114902953521031470037433193954329597858819635123879408781232050689561357055159429991421377801125749728391713637623145409992586321796300807315344313315850237015091478399876034282131223956609215753319159642400497119923263006073187463679327761006868334086415545738247609732047886768609685036947317743746214537831422006764445815264797713343160241216049082893443349318655715960638290218350311462862750699450484589259694760935690837222785161588926550095132450726825329870011922305956092926245511633327451836445288990316643127896661806906551520687678355007970052021608024013933754936425168862656811733216218245357829931993426391478225082850796217236406590654977917653334805739085571610074839415480514618677646275673074844043525344311194987492685384313983889454955685363817816972463308983089085225389083572906499144994549372469072010239739347596115174585271394555909255817986069124769963317530915791233802841858008643605849109084307192403736226670903755678994316899092116664468141977660427447166250628793157976280395102530048684843940893655067844273731311009562684901928282607374089331486933571312462908041730610563800596049089987015680286594240048828099956373315975609569144570305722008524131671670880766009074107800787207570876710619244204418380308571857569336607018321830232231586379199446289891913842452469969914601745037975789088410938474567612966446735492022845224629399041819101976575973672713459195280067321655946209809940721924926385379179422154432525883867640216799973689584026709634418035261570684969013152858476196246394494518616932530630022850257424827532888657615781894211530523471558865043824262027289835210830352528490123294281228587677353669033081588940197525201901572368268992045314628019049170157912223283628587422259825256359178305694101149660170938740024185843103115206685777909978678754068639080850431900133823565845431866529413829370512553553039544214459369589692797929330845978371326587384574560241503622235538895307162487199322478597890262595034006364024909899648903420092269569742974769648633893748780074637454631790780895296894503247807256688712351803566345643033037003898069473000263046867762110737977367508418139971794866891951756107750263241992986369897109508803631575365127532272087211937194637616118008276819616566884658681558819005970575940309666110834290246065570284892758608106097240298260464100331703899505693762947316005160294865469613489347976576976651142931527668635363194990685470762100901480192569758970094350561314399442080005314424920539914756580728426656147957429241151073179100467689659602047618849728354244949372481792744066731573405030605305038660659804115953731451672527184564257521757236421719549243920157435500378860260537626944791971701466147480592275377379373608473392731219683461561851390462780665906853639253975709159682675751373017113876617794267068621364097065861810189553794345650753059757660934272576112838936253895904188175037088581621079836879222539792153883131453068519584673418357574961860167759890068094486375149207890567126664291734855040661344556579522456962839859927262963123749413513835210112457596516177642891970560273854079539725176524632407258706664389764105702422295621234719795180800420254167893883029099268845645502403762496792333527679701151701347016126180963187597838728077787250398148114204992333410208819739834794106585944168138800796605049211399976469363254825997024999362464315648802385055777050084427131503672366258405743678272610619796247497613022338863333855745957021252329752013033779876080016155856807223530229010066349704303511710555415845985729967132417337756167656802811067822620172035273324860640258105441412892074871262685198426252952133026679784310971356493003916468232127296348365079132226472979096557561839498337797344777178091429041109290891572521271205220147351375473540278985631879487270655962664800234155764595045465629052467466327308238386789513108575309138661647085338410534236176672162243032986310533974398888320075308117298874682305654491024179312833437358169674209009047200975522055322539535953742489929677957950709611387853409194444606407420398159821031863946124719506623241095065016808823376067777338358105523428367760161462337013148338272136323086643535398458390181419117180556297185247814861623107531847243082856039581377850378522611691789063334694590343957854049135903787575722241958430185167349330090707184528759479961183727901283350260553833605048535668277890271818528642496969522750623342603727212993247298279129004223192873905428245130374841550526250829612769309561882852821740906805079901896750547409133056365687687749362499918858666420147258925093904378556076872276750171128293798428457957097487073764833287771539997047790165381132794233857135255668473967944674726220360325031306564884973475954953877739468708906454070240117417618732041453779467654937640003669166411412437671500308661690328482906035164263793059054337343307891823088195437038084390138562581281611328935013092788461905996652035088124372945561851959452014085252464828412265883278626694613728496225261517317463921249364460985631949799446803664055826855173172502886682570945803492203053310375402265820062318499444187444989852011589930120948227917598491339098669163783998891137513415136899825113196863194491134120668806798784433932659575986757208582710789335671154214938162724722915973622155099090663050591155554822691409394031381950592227031073234345274892793891595279350540841422664336595598263762264068163335975257746121087913176428874398475641828432347927410114587369537728611653079763309837452731073950814053927189542556151457334552939934735783983290225267289725442126137371418504919918174207441040684642029168350998922899935994117218426784324445562171107198738447492014392265858859822592223348492148605338361838678714257576011624464065559735358418409487419081783484087839920574493713441231768062217923863664848954544191758229260104084365826588788429043405844878091179306965518745497351797624483867363798738114076181461687521131753608431427791568763014286357378383429558953633197676126605937645679024943517253757593766274448081482626327625138069187986295155643603840537284785768402660814713546016838662189619794097096339618722701448998185483825617315042034683266994156857478802941496169807049636283919756524269532059142550721757969842620318314263565978299626840179502435055920555795175433805306033358494495195551650073567181714878325765828471176664307235621375247424151267791749010686119298526632233522611599556528781840817228060410385011093341645876689407051492939760526693541704890157968282879699003523213211745369920175918282662294269298601895964148882580928931923573648983348665747606937488577424615193164417133987161924022121957224135819437432219800406668190302284734530277656630465356633733517059442409970386751909896777040729417053063690049131554832465379038435160406379198935382176443782542622448845656639270957716935237161754350919200743456053741036319702435458055563964181276844483083780499373933864642902013625904166524572262989220806213472680814967895663716608632412790299725558584338304291120807673110596132964665162283082854004350594116587784197311733863073167306910328738312330693200115076101258507841798991930637903130041807120308192963617708501634801906009099603160303135606270803167643855000136047081725290601074930673298903204844708076873556155745235300405727346213006205002304776965199393370424885886728470847416837195491290910227140514033868016455527523782630801202889198469919382737528577679749438692463052347628211495474988135619114511093718020878829517342525334988937703008580751860915343740461182869534964601445835591156709512380343680929478870307321878323173076991367772624965977762334918409715961132684532621719395393235118155864892648099823147780329615983621039202851971609474463119315231699081643880570376449421399643640005598298932056362271188145511640273666968298607339985838062286554879669185851102975510991061865656181558627264642224130072431886918848257210440979619723601435239254367868710101202979460981403241738446738625678981624549868512031276965145745510810175017757091626152770669262998334667394522702492233046859285583050415803764690918173402627451206953138053000144676103049162210811442857452419026803077776908776565800916654736298602229681662126914635522235907801491521452980115288681936997301596760016296259555100142092904972869386069354376909150026191631371368473394391602774560616407085884111419028471975391635228308114227538467838927455952860013530936619365926717009740333112608048861116829512157334560376227607948913110255338784186451279888620359087452830184332886347151958420584526119591530132590896322587935877636640717914956639348755265610613402539143619404216157796339453747521504408685429028571970957062281666522797908144573172626799993717918907236141521298982517613721998789366217924013305874535180575950179985114692801687130872501763676698551862694304302303110660881338188988249465250116595679904752143480266906968149572363034635479201761971512039220315777112106836320764294104768906484697431653129000907224953215051610419567686844771811216843008809886512206042260069685450248407092615117801024495138098267626263727463880693535731041203580246864115077216717505395331808698688830206647180913039199496635510707712071425319439319308297764166988555463183777731549177620500681955559063737889080519873485102983887829783560539952526720773646464315522041485088242537622590838573065757757860645382000604715029676480853306896553874299621958490036120074747894349551457650833802551958680322874554546064182202831896306094088464981067908508402909427888553440390857917899360006794780131320178813063402135628603413381110290817624324094882155323169687738934385498572947475794506238040614746425037478298919092275995191106246375539015907860689039480688456869329549734613261105164550390479143600401134524700464195406346930063737024138771009381026169121629926349786089261691204181359774742121181288856611976322174702785177350845033632021781197340689603126517456140806109486728749021689607605371127245572778241918933992844341936087255960134839250876135260645132378358298093551553751355308973440883887581686968887284596278169341187508693882290716703744365432288259584012386616563713562238457177309542964401822177863146088660096241455493573110521146107652951277518947820286904504133383271468282940465081373742971655720977287383287679565298462634893959134451302752836379904377209714905859977172651422009913549171344157911272137373854339626549890188309690931412194901227425654144542632635228248160212484928465293562492794506517486047605067072110106526328359631778574708556833577395340631357226427950544824439462726325045191393546551060607003642947313160913314025016190142660379814039954913256346480817356765106120261954402193187849135694730743069623483078044088860813363395181019880841797539340078856387492710533881048240450577942025198796885277910852243221602370713136879448977282210344900720363480633543074036901316183862448450477265919076409722290774486932413820618872907528831007501343713041857036192686053261155755717412393167937194703389003642950198723843548549608948090487051401469876001312466469534405341469919426366916323228397482611966452000610281361721190626339717867758863300110708011941316827618460335119168650568788738759064117869937577975100180573224691475221494686647853747425199691693847656596536324755070040979643342569612937942860485137322674412227730587865617723500919121405471457990062003893074516592811669934720223484968637909733137098047301656666427756339301169476877279000975295203892120712254111133793132931702779859811532919899062772152951961390544632513955528854594036822517915328984099517559871090702922847710682799517006680810854657241186100894549025614251119691084823868457902368463729041238690720121606565665154861866221472467631840421093191022213989835105984957003256682102659435020293330573040165636125669248363409429483095005229697669496369519844767748213704703550624175747863363347863036269654155549456829377424398044793346676708122389928962075947118941564413411270576270180733210190399372692466207419106207919322372592739815786664651648890515525676419030570781482490054599487968536055841073980282598172930546154784177035850557414075970208804026643691519512674826536559734851974481156932365222062012123146918273105933550004831214978468012136866356126403611085280008008982290191555196952068523595428155429288140525271447986374796506783269679403890238266461329804376757244047699872281162953881124114558413567980059314258274211650102067157015624452454492418588616836686543073666458472338763638680531521580455670578732367950328466743167231107223235931146237268976695791268755928547787950556328893384791466152874955139345894920341583414315901910228069081844351783901622802871981300048421976992089255353450602699635200924706848807789130701049374990212666600332413601578316550020222622774820596948927679803006944811708513433796001150396277331092528104663844077774111863972630002926596453754411656427349375239114424434355795398230156178224354935542964471943208019900848872675266652269796341979803612103094670537819707483204412627870497219028322851167810834613741766440990795433949076027105051821671386266194769151572462409894988467742827257260253955900618962874016210952177372490707925586466960829573449782801242459584204866018227538880194890701986705974740014164005442978421460884885499060649276063392638371366625814755232666089729170761460489771595047131984083397201221530796953770331945104853980945672752254243773599643599788380869712523544823021356309437488835745889097090202463785283017545194868418420597259594945771789481107617524863090968291544506444515680856898728081799653565477095999924452405902561556297205363798424208762671647930958198885275672954644053413890005295497876768169811214430468685788428927595558207691391236533935009212264297519219001498505836056683252747078557978868178834295002085602486414273137229002893206423986488418359518607769925465112073220694256343176618162118113437962485738141437419411543826859881374847765850463675775292296833972867576931301258568225414807195901137688218685630293154742982233904296438727203799955284703076508273716916587272733201834936402693447378410230832833625836397294472764087042812165625211708724504972388733200750257138261118884806467398652989544828732824304118502996941354001044417502795377187441800198424442383747589418547681075442897157174007943735520546559076669592301776241794422561889686098748981594453997446805046363950405831604086586425400174352002785076898313024283301607151779062616294223808677201182486960247474940340679686648847951770347392993517635738549264800465287862480053360611131959775506497433145262802493049078036461435335026485532057411381049793196805763916956872070548930022135166771870996757164599353440139157989869501141464153958606893835618214170619236004603412257399695750388830055631250187405517352673327815133643296286427080336094510698408069219658727959969751792533232347618375074699747702311782040607357491084815956074682692445762766050206048027647751164041099629068513526129734572265770241165694563246032043585428672143007122256589167721613088546056030871650318352296470068936008869154800427077054577228087223279958211721037857673450824435903591642647529310650488550968183982398740581070509180220663496799795641762615864408374601725014269407243261808604909099381886104067858859833652751953752178222279466284953664474690353349853403108858381726535652959018480584227298677357954028304317191625643027859478822955991801470956989196798904043794887466435351585088655537971960687746980459863682968904356030419663186834312630911810279282838701306526598148334814091005760389374818654659924550283561347438999071504516032939762326622890727548719529808930783718935681814499668531369125518388682831571021205861197758810169320833309243413623893754210990218693152357005860697391285303022167355502862008834497626910933105373844261649571564008812673602940820572854410427938986322750082546715722237053277803494191615046308116949495915839824186784753459657600161572725965997744571896795291524772559685237482766023257152245660205266718440681503936096781416295227532479519176017059660225189994897632184824597966999758011776803328417275161416100171072573230772247921152071526021125357253746392861968446032444074964954319902299060190796488516023868579543784525756770202840318801665849703135118719002270071624031663435208940137643646965570389870995238554128734788366190525847877445803541990431926960385413597648736608838277777948039737376195019843457896160368029377401721982660818493278282385197923365421370361783497372568287455585632000641213267459761556858941907164739807496332298840006153564788126443120628938395761151607867027087517282240914167382319842732005005039427847253612345858045163446127231170265922206951621548434566618876415456478639833512805488025287374755963513234642685378732015584393456912626781158482226493143494481561683184303551093900220874339171674829264843584688090971903764665000197243128965627763911861071216367566922425914242748269791871275840618754062544681754557037905051839281097099238915876425997356560882177127880400336013147801939427113238393877975486195357184937116641518012365788424033824277444304458015941250258389647577282735941705800315829058093307991355692232367508921606271001091766405093087269681344034153843215232469774064673490407742129225250671970557269486287643398955571051496892819671664621553307887101589654478132758527852269630314664833045125289162702294561424664033750713730305847528665114176276786428252333181998075390238571600860180728529461484400148071094054511641594300548926943042506920408877932990870692279786241534946905564521413843323847598426186533148102921248532629644217164264251436386813339630431164388897845652340696421862661549486597155577416706600467203734651194319678307110044005613559538579698535143341884652985952297355098397292608191796479284694403603913514398411718972136128429683809074454992633217054085566909580608949628287645842422233514329325972393241187030357608970555578535331170981363648417358686496036138614908781578921412697172574841064225918646655330156204603808328472460520729328279875020893714329640674362540810826776236723090250213850137725124791910436887055353864581860335422905797486907257732657929035947843551534750786600053506070718284399108369961849002430806663682402412722447715744029594649228464539471366729333973018542187206557844712885936306174480438942805274378655558945876828144970439488824201143653665038394513304764983209776640442158660961820339232224416208884505692982808900862831581494809855062543445584035814201033429647204193482584548705831675753321061565388629838707615194968076386976238560895614831257001265275074587297579985045602710136799305379777026584301418550494476440930786260772029960634084977442404614492688171949955633777800602900989276174978986423921447680133495251592207814263216404848036602647535097639264293109550988709146706780353366336492998706762397919265316006013965740139582654794879219613279073482940311040104084491151204371996303188361419995808070697951389475927392736832966007211892728418663038065996226924706896671972122807424383611655638420763810022910207953854032688436279237977362561318606385151817952137090206203647095424343717411900912403703733861061920153898267371340742124118949382880384490184777628394403883317396107217518342239005011310454224898701777178977259059907228200396455250787555935569178433190699737360304743146999309768212753016354778924530599570986318682786253763777543777620151179857772417554693121656838603714651211420135253003447984945006821637745692679877056514406344389771599159135851179388096806299605584592053927553797692532179521086404597208388481913252150984567991672399987137525910800268022731207160953367341698596379145214646466253473132821483627904858652568825906783043607416467539653448596702174077094829501439878936539109773571356160248926865620456515398962354127610037160090169052387143284094348021236202879502052019041982705414664699302949295506300409003070272075205145836562030083998568347533737746279819957302835701048571020851357183234477661879601788688765992197335589861191836365829687021782701835916390662183926792795514884495762595766586492199439296692528999755212053605821979467467352050777703675244846551009649882046617482242301189966769183726544469500044263729393618266477553859566804309605848616490893176518138879714803704667613528875933150013475307601768935067865888525304822323133803407881657620613260393124840824744621054424572376375616280467107871716011863396875153112213817528714981334796029459645833619961807243937981570979066617456832207018856630233343946946254482655598135182078796765124142660842832306473570826080104311914148920607460978991914539051799743283434048936486682919443119593649391275742155800161172821297090450922916103665136109908140841952207245431249209609634369316090801236550323398069517669392367667002759409882325727252677778860070229438023399916197951989352545084657815312176812524034885976435669345107475074069597627585111497385878587353339161385980791040122601477611610090047647863602247512436327720796759390262369670357163790399247240133256003102102467217230010882708226903324532365288550360098830626050281803765402945856512718222828077721260543780157752051074311981672089755412960264226034388126279858267050024837699074173977076535051356374976275909203375802868617115890214003276346928940312098268507245270525505302521897002324899718513911755966101886016545221831520169077286689303952486762751448614175190279330658939045433183128135501920761910139960063834455000235390412259277017972374976003732116362648380145483282587856603553244196606599631599665475537278776977909425698158474743013468842544566986469709579593623243264454389902877217450888221910903313208264734847800092740667542390587913074293745911574061739377983044412241771228936801682222491815093324541182728633055147043729201569413153873091727070372184268851263507780384042084583582313460241133850887817804430219583130843951944534166949466696362776974991081322137435742866962001649673246879198155228505724651584025098424385643310800339557557173634300115476197638832407450867851719280614776427851425630187724742242222033076530146867239665290212837236517884123522352548486159416129751158245516472653671145766980419181129102213827590362837057283426031351212681605108370475480681241712730216445008554872156638541058574499490252797588874571936537662589289464986234473595380580974749428604531518791425981412102008484718502344477115651105495834560788430906459062466576046405918807698546670328205772651624806284857141083903289753326236543785028285030519854447486468177974628119929814370669016719533083895210835686829960013524221005059836969565654872222103962336472204990645696994361104004831193483001464258478480026811209580846401141611276447105917774360340303576820902663816519353728444380156664481972227491893495192992632750035417711090954233271916976647880465758869652877703775317691448380800509271101293205261593159923491013775473943719724876213195515889396392346994023027411521156398105040206372608770313030830902487399276892237590325844810455345619080600983749135033074689954186605894140924756532090260052515186972974951258331256904535489735476383195685729990105706526920742447444756901798449036145012429727014127849320620651399120999742338883267361169950887801427395011495959975094250311439683866891318330955780515683408774373847692543228832965823000472713190598941290261316396224630021845329762435305705586590539706980563583586463192618914650651512978441514795976544098432952851305349811238185661500868009759699503279834939255993057065139831537197829618857188373821236242556038049245533329831288328649229542927560799673973441938191670990933177858707351469279944105915475342022791899846262791330713770155269656102924755168521347292837537791447691999433941760935715358817147004486855061594646016657175257286167462112504748941831260331050474362806118907621660052839137724330965099918574071247976922237638531640938556424705744122986806339581065771452247600879517567165262330069827004186757189079906461488233865396770226093971763797925348021319296240769797835842919327330541444027929920029769400484860030844841351437627711166842808256655698468482955644582355816553541494431528660051948960210226361560350504105873635722494954946619471734029801189405942308600154923522748369078718593219024124841359266159130870753694895604716059637763602987732245645977368114247791115863233491343865314923968947845459744237329665913561375839074699062264234400915385085610412758941277569719041444789267486473540237290539999138540865972506741697592748868490285346019597303767945999470530487240125463221811103744359584262300066562270970888488431389881753783257666667694159545743525553185646579365408272713242629325091151985639335033049681127778046631097211646268537430039238561711612781928296883256247689099155458248594154906306441327451320961429846649972207630397357948430945563938232475588772997433333827120595148019074715821092091446787208070375461514567087833464431986835027542176197703253340700673412473837111252664261622197552589369878464948531230194128534210675463751547374431797876199271908057847108387285611850336712619003860628514301406174867701781721237172553042406721200396689734551206302889877990841504216796636024425596208111387458615453103694387148346771425103790346678512415746865149483377723681582273511350406079098359064162701973370507245099317801574223185839754117653832263708770166242671975331662116125324333153838286662137745812476336742623716371470103252966200348360982923427114436328761754963042462805419479878611211209470035599001329024069156409755424608222040560736481658616475094266636380100015971147487181858544721913148621524934988075604163579248254125937469430953755792941813149890055869402231944975374918043124774305544126141350598632765557449109289743764370564803672419264534664311069633009390905919177701912844982200459880219749914350592049546469064770911917360884176278064019186974131906201048111428840174355536695328952309563287629481582450336226785405345542640646787500030465597838078896985264070365456230102331417153289735235762081600137422784900188086082516642597350801211335819111897061256629377276310979803211694939572155080873465704695245870161169205542981529737131365145760337883913332915117002035682335771132379961544387672970650653847382580438592418775584984175304785480107658812199186520958069760026815364112673079956671305935061147255287444569235605847540818425447406277150043207667434204224017947326295434075558065441654226436407309298496774773169683862317796164020033329159392597329791030054129314405253969645051906148454741837303066132928450635813496816802396573507420057212759116894441562622288035497752227313434180155602889883048645564881195465882724639589738400658760264276808944698356327830872884883009257824730740071676831128556087206114708401286294490018056960859885652631522709383581132386124256702655195094164504213367702226477264695752190150569922419482056640793518707405362269964778120564458468752435411112878465161230445124815752091519036917278984328457660259399728928738500088556523626485824497517256868892081110224271071119147023181910653817238284621184475491936407801451906248412671256408728768368589808606233747744423113016037722437673942528492857152022150204492636250321286451001558201867044023594231460666471547397842877870701605049472791550260661609307773352415031774765880438462969295413318334526496438565957239754494336223898683994848977744395261065861242057427172299386483518455624980124810771200604906184090290076062354331811349915349513223140114687401306349694794388453076561098023687755628482148914405874688608694177187170094470663551728252676333109398619967042141007060879872538680988530815616434632474485070940306006550719819816317734056213042827011542468649196755332738976864057106384774836269196149355272189034543690740059145577995594948474136135087840919387299505278253204447677577837071038703533343480601711631405243518888674129454996466144440034927604231885130463367296705031959295927743711473749338870570829690771755789405615565194808951540657505670846325202038314877112120336990359971355675062165649668998875003065085473150876587524629103979667860759099615425887703941149214248471189353555985504503625408371240816510379434183597780336162500365700207317201420463000230523180074032430558170278553507036172110364498157565399370611942639518514263569884464056880754812436927140744991045149194818988548818386333850065244999143934489426653500061790213505193556648714725868109534190073011711761549009129105332057945983929510205743092500120540455106395616078814672585823833552943065980649332469149226177108870617436310995970041412941327344962432429237058690611271969761133249292151784724078441298734618581516206479431449115540746815499552940709003783043081111367833817347440121167234249765110772028961339240044164581842591204556344304073387582429752504575638140558863970067397813355591639872397146657487243796776065967164290643921217009424015146241944665434948542250486763948754792557810639604661673695902968475430816615093662005412778940480078766295959295322699957369506677019646438520003475781499192422139965153187091710612693018009916895999456572672912020195690805616404687668575962193548117859169844236563051493626326719823612365220906056889616819457975193902286159284128031276270575838178865681924490798013746480748544530048717863298634825435697150229665259953716243805068600444244992218301517119933545406667189187724939779199108423529970225051805591108349683982840019033478787681523145262190717610042109849546256216529451165740004632151208213653558382627382125592489007699242355209153941577343877434298371327535082942532834869209337335453731441478645299565412271346441776679956714211852675562356790523977806604504361247366512748538689764049950382890917794094759900868336117176779981162598727611788981256974712067197058051644183382377247762354154955553332070787406411239762906412207880296693886143212609260873760311777880423009412233632277551060404277517139753560485222048393141308073061651097886525997717582903900509704338966180254090690877001392195805745770669813084990292493409182761555473959910194802720513733708132480100707337810325756965971068052909540478287822708893922823058879286530254184356444059339459343694619725100663343400411348095481884399481766602581806116023815369202493923880598230998385746842293701665222270406899413086202261738286958276702009237987401055707259763822236039952791466653874342775056490995900049661534320274151743741211421147206414671671860276585695472602223000811527793410662229807285403795201009570221678941490060590498513991379726950029676707507624088149878219089992224367624935044115878187846777530724169715849325068982455937061943192630469582203649981360633430674612837047947048811301567707636954455111045865395099167938178795292372223928999454504798539665382350182959365136314744574769507166439983108657209749223203444755761483731558175531275455044367722609121034205234677021568860128647057387725830051415864089539959514890747948445164536264001538356101604791535212584616721778844265644324246688973478477514620544383516164899032742054858846405749860795962735338558294026156436531002506275275103588928430140089301247583814821224878614295819327948253179920194862011596284401417372297506941385180092780340742688405306220668932803008254630293133426415200581420121805616685007632411660730212263850270136019054889502563671023814322826103348192396180270452902524022162051497368234472806224651317056119593984686700417147879365143786758650146744077363567078612836578781496293716898877632197969710057038441003846034725370341587724135955235477492692221548264514078484787267947337115446373690415372630908246330020615867850746949624842535574215703184653903965469362280089100434718886656342840600760741389841429711341890995627960992852843520221708390107869549850853940220636192429177442289745704139022420841080046623116418127958655758950009372082100748470078110887267738813728271874524804427707421489040304968265605708690477795430497135605010885051928300636711877803537896003061796939028641067186050732097415214697056290732986508050356341783783083429912574265420992224346608754346175729554099336505583216229467067930955534827162395326368328899906777505901182008222825778664984619720653412676517991857536919922706465819711078591006827461821541111005127298987749809019923722316604717246614033055989301232096715475437745662326740627418232786039530591944153689269840935131733725306934764562713507978907522791835913487652178615236146090339594541556084850214126615769460465289282113331628419451348263251118209757759626811127176256961908948508665348861222589714600984044082563683349378213801856807219493152272451511408271769706769505493538876416564244720910765573955746901930032435669369168637386513084759415458975043853227378864669817684199715278639250212915631314029527644265816566419691713418123273780368836087074046807073137522016213733512039552181638477885145678542884947752835838155974272550192790314800053549024610615759011419636353043193403295324072137275118150522484877877566889189685896617939886217414570645206233523051259479823066220562148981492529065661724417767716021233374472497064793387760401575940718085664586458467531556495201601495494442879484697389032549258234341619571267499786988375142249563885148655356921557502031614868909551757558788038313190580223051654842200618234486190400345372367714281856766731785394150275875096752817892408987314255445302320111143174783714252822178431054113452613574363866481572862486281047797869656179500194846619816836844267083335417452076037187487749408606755704642519215640709704839113447542896422813299315826456142429409382788436544885137930465834193799721050945216814841083576066634275389637827260369747389600949671980525655815259181084611417196511877425034098177478462321840076456301847463036900352356697104683159380898332674807290385968496644856582539602728743103921141490966237312767855143638010498872909639757271427218887483934671861505736218294019909522365781067695592548239358760737623867888612433613327241264083511390085134928478065089946086271020627862688379742757577589587030654159887907433011281670598221262342351242300985223096378537117732857783360092834985523050995767774762371904831063288438907794582494905566889031279693857756245819976467911611043862444414594956751125202283888708147490235688489736057901864394777729849565253623152377095249556667302233865477970824965428811860033777798861592122279724971336265528399684858229348000217574528882928736377513627509759816994492225469969519263991190677014843684819205765312217124020306854746137857422126916977612017075697331983796442392848435480975637494181266798588586285850360158920072639526893751617083452981158032672528478769856948908560430486350848171886800457424514158808441960513149350127214952956346864467702074767897237516742696717775704957325906720861463113736331742380490905876690875765268299424438891984129482688592917849257977162995962377131064058820012253378379944016289284296543648505808328625241014754914520321083816418419362711936540947946914994205110902491101003222215348576194751205281334800400120076076769224243483675358643697874619341510418424328824975651008988755469024082709417616390535697510498224866509494351832641921797216246125468241521532946693643740643659047904632356514425971136814812391850718695891955287652035796158842073156989476237881358979691670121223580380365764916765866276173696647987353355383193647696875340239210087984666085789902145849382503188028820242234455996669988743884566369734019567232640795130346942877606351690598519181069619200151819302575108808428384832605726098520261032549216890322249642691367898174741821696923459080371430727943891517416323056366054469880480679150511082743717343319818882042473925726954043726313948018059585420702348368292286337083728813985325005248812714866036988067070293107602800970563251780697528113023468276047826087979748987530605390116741253315263647456858038180440840093559212915651539183437009775634814305103290540716972021127501414084736916022721541106843819789947879921646093431508139591054403055355298705649551227646094630036278184869913708091454498810811972706832816561651903842334865378684431893803094269753444021462074615621632785830019519159170166870269943764501554690580139506975002833499871819347222347212314210944237788964806450191466025861895761619373851691886027889956842394746763437119629426407613681118611014441984734449614911667831916396519542644586490452833917424922025047742989348141881052291214230206639194352193915633946733362241382904635550104673657539211880296465024319078114674129212872777418766269675941755060769824477161645756081620586748886132116194668578694022030813573838288694414223381108608751345615527263832773513949348368088542465633638449377538942911789352061131624147104760189477372199627301819076126464038476133895608147867897600090168406717098909510499666513539333294357491419455118813020951392238166420565672366473346801598579206814357119136974786998681405859401147608054719372866860884218667787463692468509716861148088100031621629807951587791177342913139359486948299547132207876498003856719594081739498463619241736704340607449329594536582830756664112425585544962674765571357227601639557855388917607934716339965534204193333070947561497208139987371734184962991549347857791861393157246959185130660354063375003474911601693351079340526663526078810056161888191058835240328885283865039141271645716822114815166279537502670771885521585647985601649667508703928954977463036054866133654763588631456145728760140274821569861646464185808776352647162642177494383466699429165545152494299975799335481297102009937238852394055687683520074511534173814419097879882266986928045496270010295027870969933363696647568807247962330511406713606868639178061479742553258833727736869532511674496477820917446900686499124920963858644545192508481009504569060916086584844768101622795242836742368019956234487983917056931790570454787319192753636388229944340810008479465264612890411639831992828863783294324031073492924677109227017018419954768487431667222858142100579123992523228691746451506198284678206272520300358195297525546416008972792227857311061339865162730512114480277770691195729235335529107804647051972145764556642088429208243752128765293076530468019222822990459108670068070065238594972666684301681030523265772892126163111245985029206791805925714665251127166057058913513789450714993083596863895009594225138420653387306220426001989057253473222417810864069224558776065134015058170138928622975231262783851147093009512987567990958291549348779153052128175815516639612156996810916882441745919479898724815979701001240979165259023593674329366189184833477070695338243573940474901107606784229816182241377428343284181187186607098397150402372620625899871664904336428812552351637429251735026618198197818255628969641872622735559806352781082873326668015047710121178947801103136165480549975316462224872574162421684584849258489832048427631262129503586582106863353173136651999058454021367991794797847763656061204513348706150956014875845027991100355897552908028297843496620359957975851447927564319749054731510404779570957661379601162216705007122337119374509650951794472476977157887689293655284495390896783392137409507566188388263064382867702169168427906771040490507402001966256599892813584904073883902619061445701531573973833049257430046379895935238851486840478901544186830513687281228802931503383014490826042806845948903999847334733952693253351507296563183283358091763523447282094274367969761038426159417895584633218431415043712329459283450776572559642014685911222186626200593547001377614227587664708719478968218620448939458943309722108624126176894510157812241903348714141300674039392780438771090406424551461350057938227691103288927564716101140342181210652089348370449389587712918774367796211254482541376249838738458332458644439412244064749159744258722657982134776767209075860655299268376862745923138528749612617786439738974992052018102838860941690079026225075436800956345598384629254951717782118634762943935008847632247700571388283326427148271924680589025966047595805940787065695637783142584868032909203173787441361739942982479964267716427937419795365870331862382594195784765117509395040879766710745092602495009001240864089870207398686167003882408139258562581302400863417680759129911687211104064202105183655427669859693418677798343046136202532806977246735085561521272044095165955910965131127885927153055306922776283290971019536271596710469370521011485094756819688882299259986254486460763392812534343784618210451109147720041662467117123453075532390159538486288825945481445016892551407981186289073675750008287317047123890879177992606054737381439964925336732362592190613352024179014816444937329368003957535172553524192012624504463969838089752943917556790119824962852659249098632430441774398755412048713325423685302881567120499970224996038152362641680790660206772338646888461841688518634119038988780894963657729248576609334874560247565429409185795249547954695094994502834202590483060091521392857205722996741504491122374898728280420804164488892662040409839312609326799813219051951505753673400703965765745278095793570017182256080962638184887517709833377083841610260172691390375597194243500394908661262229043441377320889804976289799983806323067586580444182233519705303850358611507987379196556986212963562649213913822367267745486347175171055043347595668488415517600545003244931364593616498162637636783430936969146503785531914121027634977112535130882325166729731302871302450077960644232923342998216097012577590797755758466210932200974901893496284551112886575661763822124114421664974400559435765436791289862177170237482332974027274342347897333567123751588097560747909168793825220111963270951145576629311294486725561233494210100845307603397072596658693145502264268282326602559956661905520131908125252671185596011563200797676066391877026327484489224148275205655809897344658353730323672412098544557968908817694880478783843804568873067695503179132574090258574137969427751226508075175868066463625715248932191298205153424898881067100683868547910408970678679598559028379563370654977384207304463026119725159089427853322705270863106579611764984597631373688921426233750395202764428706479786372145130059780168262463159322155297564875341234397747911637446201863393989047192834816105507298750858640414467817597054862750845485072541010877984296884997734454073383790566517468261333970081427387837309704734508732766951531673200677605284793763462566142055813047026856013057125139008813260119846993029986590003736341487683500882314614120831819993351053192291525361502103649363907856989567143516379510241856299945874739431651310838706591234063379579727467317299974455921119818130931431340012986187378527700280945803367953155230491727246463088339527775291542121988549972698789951614838621216626397039120886687504185550695718812570927677506099509994615405226930336817990141542021460208373344195608580088158921565606973284389365234036605106606037306015044075964201600952750701526359090919950913913889484237010002263961184050871935034898960638750197060927851419357045658236997506412922908300491323038480505555984032237042003770293521311982388331253637165149254433236674990878540021714655602653458785932422658845089441186938716693792688728435351229179598460755377245892303442607294081497209133159820313768154135783006629032615373243226082758875872021938008454229855796081687312116178772951896039624696643891041876406207574475697179505542682968111583705223635867661686563307303348078367556829622110630015005852496383925920590690851702107762291179796899728587278707993099913391467728121145379908011076506306726753934049255930081737349510545914173314010793667785701142040224611678539112433676116333590719880605226314579590747433966771734353673087817576108366153010358198436438816206405153169774342035215329053355424639309046469999901967494124837327036659369648606149246953139358760478235637915041054676377292988402932563881321834517815384327854058867639616624082081165981986253289716013572337287178573744865267758006618984890339675793301886268487699988250641638794500378505817041399807820496045583766165888992721133699980955198642678694748869845348591530876782471846746193461545440239658884078617109751657803982391658183297650046371064191754855790383200787266668631905603481926853392108919491441534531396975975819073958576155546834727928522836949116564000707979098465152062445125607156405344455605266978458909983318566270795481744105809099009328084379911404051875322557172998425583431084015180706934487868500376977438788584777198157856894918365154456726559400473303001922998574453043964351670452556370689033911602810728916571929023830526082576417733577596498975805558600811729430096963148016145071595315522597787602780967431203252022042222171433142948929005399706533263039867715939536056542037735735787167581471742479118863456574299723584243191631810595521343338967532933572762727181055046633876739381287672254055804926199054382632071655688318055623721979081061834994464248631294217203444544458424391734920117748799878160841567565883243912316135445677965903502859403373402363343142513778874945810011240457719588263284368154383460082760022064230849814947654189344137827930963662950282096160969799020927927792937747828856997317788336331044971406099130420015065257044654940404354187286980765852014081184092606545326002972390269792078706159321668150275925529627296515217497719557991210465318636701140205332452723680626795042750976288794843841447150744727980711095040880662225334219261455737657618619962684338743269165472351525984311584270812687076497729578083229889773956883211402613377744204566372097078990455986902035699529871053790433515534017943127328278694398263394959149741208070629290143417975273885416934286360259435301591207341064727272275756995899249204093618025004239475903192380332798081302915345894176042153523787760781111135433095450434584870576065884698175524089238585470321812015358297146268666981871256326943386182414942314338840775297812357008050662199009885181249994943346119033224753455950440988941722610406693462051185279368296569481201213518755728786366750852514901577328642672910734708198075584068927393207681270170484632110909913091783354896108935929593682060666463943462093433828822565780381706065089611809305894778564339759477017841008375510184657120919503054808190204831500496005372542261936622053378885780726603643062696288839188380719148659097052515444689713379261954518514453376590844549921393309387673582286547747852253776354963129260838475721998538414467392130687037075824878229094302123313279287459033010839060245248133646703128421481760906593656047079570696730736361838612358890256388052775754625841246592541649042855089506387212195410588888345518331588304690145892996294139716037714327732162039267076059288390143267274379762286495141472439484688522192240250734894101617852035015169721436282949911650906897671688047837619981173988979951927385163797468863736483262350289488814791089149744844442980453182987842535216176508814510425601621766998617605834711847672012245091341604372427455787664339489628641401071361446774908203423552566126111602423580124645731548040139584384327222498259643853070861504936816386504093173337041420734919974846236835662845524546427180680940613143934987067480083110534175302883808776222397259454764874423723590405747570948020228055290165517101237512739628854014640543302317811683619939164328578659976235244275224377631640314215052807256803597091837112099075760008932544517866219853070404030477416903654908893627860757056768277633690353013444108804795380534712021091521562621848376205761650079023914409279904275568130229097741695834171199070515336455225262951652897568598445524594260807299858233626740487177115533785377311481160898875246879130387608536230580802386057223509942468439988053106198347977958128521605307616051459868094069502000634563575090981922652716945242598829156271502163691878764417635244718571435452317802813018564119927522326749364902182013434678497857828318500729809059520804751987694196684796146135347125502173653055904309614257080114341658366894909881700812182625305796755374570918383007246783659731470319962858924540420258577971229606258618938853688801152321302467364997345064959178549138337726373538544463515558794200861847056191233208987161403340821393405193960387818144846166538955356279685123436798334351500009672038965510136126351062386638097827498738307179246661311737954603199224368440911409751541888950425512945626239081348358438036600097949607813598188888150278014582916117348549321284298311757282063166325507588597681353197468201365035859915300387175643029057415401056805745146584074566929055393486312388292485974213773659380647463406419686952809938462179293947385501145170731704357283243621873326302988128589491094042212984718677124212683158843473027803827424171372405854923064856888652877198232173941820576870824262683629052551919378868534640029618035354297954245585381131437853633255474634016269416784627174565800422695810962749990508030974177035298306989052690366340253212142125223681075094677901808199356038893662876265857599786897648192357879147797104100610843237898474436229846586169144010407570760584300458665742981986327097135376671928672872398868391512891590941577239096828017597400861324946361526773113870634516747828399482404422819961673048223029654707546677021744484106884738947804907969075769453155137890979900906207380455179627673326523783568382691722992070179991001490763246158000194163509067870176406136878612362613988722639538515730568326525106377733849267657129665681752797016758705144366647620961114642585985503312334369163895726678595310119562667044775526548425976919973803248525716653623301473033584187293816363079039498404717795229048500268756855400267732389723762868927216206390997465275171999399084662025487396346442419256960412450338074939891228798659635686428470873653356011446333120911240532467119326065588272729211181903820116776419239322573141648537557498997380286583469133865803718107341603510123016237577311956724224950781348506439711030589363254257620482521350664661996905211950626571827051954877360575052310199022299246920970549931286878667091394680768464640504394302259923662946812983025952254260048729708836085944431790090820179937523787871353317406321707924721903590559898814184691392565806788721080770632079578161727204119582406388921628422381091828880396421549994378999965764031868261459637674559346227788829420931449640949554372933594217826789441221028935060815703700857197275764400823866555587394316131220435338279601472700875415198129408439438607195870115443977419591842716650658244481351694417406619708947264162116228592009104819055456791207670525835575209856951764515978412319074233704843347405406747927533018436512610048888093341297540598979565188977972560776862333479486399810083124622711729653713703432587768121209992816723128214917615091548054227880845449387972081966935365631657356720179596744268290932103785907492714950611136460232411617257308540470588923762487998497202687262798550061308014386123427284552684654399993093504261944618511729469585202363203670035259064380868898696167211719721838430480364460221013045190943845689970183920750304094223566854222391782247679781947789614451235787399487009503675780371187154050324022066251025868007370646350805890393970256715020612281491167055730725615137070405176736529387391627159194105634142927551178799328854635491524756114080315016320613494451641376609820136185843661242549822667266837199573855803234063711287335747843254473504912046065284697763833229066217855470649301158855151420533409817004447326854096368662846797122793960910044854133683743130760557099422062303012689101743223588756107549043056841553852484515550198196237369173652763767134608308111770592019370988741131987400920876741595999080300222958474819389400786342834038905458882567916385814706089152775270474245644317592300401056432332957422668618988286711298920152806485653094385806351278449109901380611013156021565976550495532589066569296578247418527585050022303256809882399736392668550960328630139234937238500469473602234088851565001417991427346913891363637903528750466355330230953067476758561231701799126459438447374341481871989646622627157441608830299439823748928189692980476235585383847459412958942371003104075276429828030046795773404293670081578753323293061299301926129487653680276292337604092852048023036758677483340460326203992161746391398172551150174563734268862658539605515598828673340803734983613736325025514032139851517647016626425415164845735351109051913037225232334457049228198144886926942528386947209479042436144581060637834859351472662231832051492227596581474619914803810043601667763042969102516371501547365785253207689730711967557756228464402764330088788999619601716453094670028129649928835350755842649653783127371014929121528416015711257561412415011925243714444695641669332700953704556293048247988518635794619537785170048302881304444043067039173944806415197798603098148317689770241703533426183977235800163903343726992051589027083638078689556684940161690536899288625310515743599455708613538568270064786508578826314887175633349031807170563051719999495232794654157229404101755370940200378202249857399897701881876773921426243422078178348194036466862528193671061583459641967409362826160572875669380189656104418557168945652848425061856054713692018873732972431881316801410097804677954199470259100411631275057132544120375699059348880510256553148316104339163650853706373946866049307809975115149850001483168745521526978485038282979712130243648489233761592859232405270495364807987700832652061880630894624613512001193811836251559681356744177848279999881413031422635584568004877004176157172032954917490534808450534639994682871220628591254548904903201957775798352257762407166713349764559389641665972985565184417573426325897053150853660453886702894196511807111147726541135924264360336884927562910871797765608121414162962042914922447939839552030907963463664789805946774242705039246121220021634938666835296033852360474192426142776194274638409549983161516539966580154090764246144105416485116827788974576881545134396097027245547660319974849650813301025337807063701285238565158129095810165903961868458120814832736258425818850810650078590015940571811978628668768911110446966912228559089908180068550073496268737441854489427154537125687333821565232453504604543412767411932613569021029011845879668210619767958170784814989501866284956033222677189820310979323223835211735756123682939538081156559362820311787987393637020406328159035981249108720391780706042836942212344107099712336175907628194436474224870837529485135664397672633963632536580091908809436162549627094493818169173995687152668567045753218087681530766739126756904459457848186408806810257798969282026183048648009380500252503716869910632269484125975833186630934825292664885066811118057406436840308104569292357060183466354426656654338604076088371206638608665258927793300640987890029658742369750736663971137423169863504849503463984689215367332696801436811911161699344510653005408470809033973520849069671575527069683349408865097194283770658382128019417480417033244267339487957480448330171170194014215195696460311330086946221981403075374212671941129405354767656968863688852281874634237804367276433648439604227616115213358349515404861408976573473583198062060783888690310104841125070205146248602010600518520824429692902506583684602488033867590980552383856548695570364830974959579040751885328384403778187616999307573315459152269837189526221806283118426821649788640901999488178608861828613632471972956902046575864554279817656539160276795855440848407238004833062368212550893672591373310733943845761456754700944809601972845540380210717977181600563013135319427686781576302138676613678993643608828466257277123592209805940837338699892497098757151644414075819547648915653399995690587397604446197740552589700944868444409879075820992280857750754271090740539203999333042797749669528794541416489296535058275689170962533038839153197574506692533493140147538434978708659518515649028192520138147465504125660935559126122506872910743702591333991420801466886579867976337107768714460674174796204934897001573569267077864768668536933914406285857990351701708535879643610615051802584410134257155187528868178642190825691299347415944613275061338132199970138745457171960087266094372036781529797945110008786621884338154328951366084619405000840064134900691241177228164602145703870089069623347762751546329137546772044897492880570284910696401007526372567323309820700733382616187647846591723523067954535600017176788231481846474456709378500449290754270016293359464971315595458549897854464359294813460793718111069546168635185685723517652484651861073310806332011130922698789133623671662308765618178294184840076773437651054361627370038621261455694217179146671719634249822326044844479529178249518450447667636981933734616209642864191476423632364273147755114067712709181497967413076814574450264353640964538096502665581375779979314304812317406954414096754851567356898176040638230801430875032595219530360164596913324157453974962860584385426612066565086844178491216841023570667720352560994150768042266645164130519156419266842664341234438006943417060130125274274082491562644606817318005999946950019578677842881431369996778260560641454103917426489022808601913351297818639875048534227233844403314434963722376168357243415562757541953956846595182698945151701401366848178274744740456198191432905093103325897471241093658480522576198470338149044033557761760999424764307002945423055811546042416900198937262738075143516450429481929864808687978781762117746751365040966563134260522019459656673046965020437890382948510877340535288976796462406422855813436542255787897477537379259403707099607664607943186514587787143150680825155172857527765766788613290707535967212235112074697356859316002438646401442358949383867995458374122956748781377430250747160119302352578772229538224701713551143276350924388875965363654132603543841019381659903965910941335573337548505221428638348979977511662410244320505613127212060602912873195716910089369672823344103549849554245207409090721882266383064257651913481839805202221215549017988565140461474161037987454224685860512432727308537138311132494720610718108769147036294695391856159354461259517703949254550558224394432782397342189423118086635271962918656831712871944378933546511007798281286145068472150142365719900486046482747481708631385387406821655147416124569246357120405628193357618383513523423460712298127716762956778720393624635623175556417494428282842313586362117611776327912334888730752564463110133644893106632812497405129816046758120733671991155549368648490891582877799645217197774382824440343259623463712029444512727621248739039925455690910046534052349825700225236642645964080261744953284908436242566658082172127700433385495281700465607968823777608737209153885523502942507856997494315283238922968440746384051524799242790124308071790317641206851900412773223428668179696739318044426950110927117242957985974679943640500339951527234531490698215459952892489579589811853310376935580896530686896637430482624669280061617195486655540626803109297461463403011489242871097768863799441119723462471231228465357211144947194980979888556702489703971081365651368304239158540513211098778394795139701479267532585467254531010371227399950970438751064629189101841172845285057669331111059541379983281751742080527157246778185858931642674642881340639853716116874365383070516757648244909292613754057101299012607599000556857573230334874179081547568672213280779562286038493874807611343516853388167845338552072830679917709958595551318306517242291964708964106147025247392845841582758294554107377502981557808781738241551143688726781270679260320065879021023579160232533267737851261731983529830388143970767881285204582648668850534113480979102851436808585120910486096689175649903907804671855780512578883329384885892683051768484263328681753520878955834776085485840511370569903844677826557788675994291371785932828748192911588071979669721165244938612541985883294978543055437141200494198353609222103341523453175450100901324873165523465850570245747832609831165895129803597419179711302376799789772124732517597114791764984179018766967535940451669849694247690293899506594919587465648674212098242087950984340779806982815426791953483021768818877126215672698654178806461692810786055935055842836545279455268901031053974515561296431690058266945743988198375039878107753126387537021421695593702692250543812239252338916230115526231841695196827335612194653700392491381275902107569152422424379694199271597038247228375540326153816681519366108582251147309221838705766824146775163967636781333851674744245455608404965666318709135439472659042249548326409186774453272723160635573840725915425566749878352900982690649257841762945297092227267239347245773146506317830939389894009859828927302418825399753912052644051041356555047717477020807332695232213758141012934392643046915966451233624644880957578176499548148512636878187216278128913307997507688236897450029424312561067631708851207253183963519221475289301836538263493855131470726883391853129425339318951293520341086067852253112910137698327428099310341143719425646787074203095248360501539957441027443610351646269821393927004457743081763006298461314103077649205553578111376881740542500900534552069833490461452784873373244095018674383344310606078893857809591788474960310376525508912029570170108338716339584271287780174501600231711429351282567334814243515882888872607962891719257236554728375642506840569444337776302205895078337637624747721916957072204640528210957351980267472872902278298318849312799927419627268182603803328151650075144051085405727618365557847931566335495627573339041875911607397142797617054103214707239533489389503000669733827229584534640906144935566300158454280193702208290512237376946635336463865119892454643061509133421672161151052157008804321781738780344742660965845491760343886270574844764911327406860882142849746289270285685052044187117118444715302025000892623669850264943088253706963160437958292069681304048603561076688617220850753364362410796656971410312797499889071858197063326704203865955866882652793513858634173530475140785306992317158406241890043321907922991234746144242155037594697462465317350016869766920899030674114915879810978562586142473266135259932626853684359226863199173021058840959710388360571137576856168958790507882501371651424814573751855885726467938763102388385892894873427670607845395631508555293694747712177661055005207823794706679161687236804459819690176306113027554019033983407005300348649727702170778788421053797115533075099155909984676977870074282289301378786736279593924493788325420501811762390311080873925308615506708600931115255903320820652171070760268586004152907672671255281510058680368385144767142678808952144028795655173014074704535915071770953367106924542706900928760633527592880579905637236812901332778345705866611729790463865088397575015107424998347465797406024511620692977696350739534840303211475476758469443123867826909197491393756237962366935060583384171456149014301348858604029230150955787421124912072583974180200898387046987757193601041427418556732360877498734047258945937777705545849091531141313691982495852937927334923989305630629558303210895930428909216502014940063855613979804110884306390741698992657139466961241575303285715799825574631862633619639436284803345468574500790513422516935610294971999236784799790001309267229765799469257796924892070200859997722444630734090529043920968490719172294248434051348148258983062732731443456816425789046408633020944445630435438302136298662998613076695228952885316345874293123831627076468435376176761031883249488489557282801404467080295913878238138375391585948336613702578730215130324484214824828623739825061623473646024123626634440005764800743555937652027968346212566011861958308678367269283174788083020095378279882721592095829198041681046429118709301361634555504708260727137345148565687720038306950652559026863640623201462744691393384985494686367239582014864387929820393044410157767685577372599263275387864113304791603852148322226801182480647756120570836042052485083360716130050472956506377030892153876306068873471058739745499682567943460218256904104865819582471392665482715612803026295590776635927953697555851333480997538721550418639596320379513990319588664350615605356747360176835532083123010676699667824113865394215106353435803359265197796738641231257647033327713397382686852882403735858324819997275757490961985847193584235937376976361748089924037246302011849570525837026637001066359245817228995548045327000683784349967233361782051522488991262393336171139653854029890133543011771625956450128090750312394676984238537513919297834956406209744275252465268580062388298568821027441207372955117969598697939360384201953558746474976096915721208467431765508141042588184959836397394555403038042522650833890854525321712710926105500994100097137488917278474059662949913849952856280592834018698909248477074124235788994474582236557682725029735200614965853516915599638747140537509012641378715666284362424158596295128714744362875554280515140713880584396333509969294313457162602906353461357596068585096525693876492590668835744425194998292698635155036108852041966113010587160545798367488514546821710609299838125106477939308460717397327928364605869094084641464190230827937919363543386915127941564075155112594651468446155335445531026000836097606113201070598068031701642137096250990481012966881071466297586197560625497489821552393226075554116616034893559977905058691695363529633884986569811765678140592666596635303188956128542413230267525102760073485124325854914342684572159509215744766936049890963665623954602615410944180971277866747293622611505583346913035812649209428193754938851999351988129500640696559598497397669676920432728407676776682163835197915270805035586413393206175216004634992896630261875048620123762298898046571335493343973943069875933900198246003744729923223902223014154189161455838830081352149502047208274524138269811427393599447586808629662807470998269879215201993543954038106598865067733185697307399229383008633043423726008872641208742338973646409947901596722548264707588495404312748888611003476339914455495115229995121320169035998093316939494678228234831292714351718894565527796185338109022563499421584996348275147572627658518458118811934796586850890150701778523492223246512033926793319754908606708211450533904251364414018402818258545422395270417539496692728211369614711570385662646860392960456198678485746307923001962597205367032370309451355657102664815581536459127855900479653524021174098422395679357860524981013503759308122389106441832985053507199665634626741927143465732483113991803746112157515548946322058990510312364895328139623099091535083722090986912739562020713309329593480578107857298507561442539311867052309689713217918648281701441130334768321014585448862492003728282515698189487987881077786852996134096193934256706159435224887382484088942868193333219818272753070929873542104531872860411597443737141073622366305149560408065988096197032977532100202233531549099450848918365624295481508988417641139233117342447003522850609792049134689215651850302104977691635146338107966058470409243343623840144984165746009159681725540986742694714823892136428294106710991479269086861273841562630885795656662667815106995250548234172486216026547259020172500129293196054714727813058403710866074622394306363389600902507851740614046521990261827484358734418999841185588925928219328094401452569376204830910679059349177276785344362411234330782432230671773075482875805633201462584036756805727853115516445633957529135402157013850364048524266083561185157642653472850681370375657679773214480521820440487066227109087412773667685810375797462876073302735486195200876261548225275053086679167188599815238744947736096312410503291338810194830188430740538899770302092300104188568985312287050991989808828487612582834154516381022708803385401731762855785341871841414076166298966156854342391671248801697330311737770980108139849447974628244219814193791838001662469190235644109040717120792888119688636273206189874122074470481590466995874955425604969725841609436796106193483276517873285928539621667021567251606215626483054120084664127343192317185274745664402123882043737489030236152138476061964087099968224084315520914882584474598712632157052037628156646503426731138740268064370923915489179997927999081336481988918906086661269115288632075399334059790834652447317783592776445880659513097827620076662515545775066224270504065950406797977933743134377395852753398696113821708403283410908658296924100988711441627595400676813266664143616781650446140945383371341484805924934248614755289077008372193158449107116474136336994392694108483653409503803100737425115318928844462338416624441381453051980545188085011952638576746075544606234314082027646816840986837298101936077880972641817188880324244687301616834632813880595191941276915148168529233034221916547483564655114651353280531842063374323256181887727057325843178832928008837050779459396555298414261256440854636273103667140863258362189936583784393447393397278519163570826612191824941903290410255024417986898703077311179485909218335207876397244824976418433133274609778385524481960169167660027387569595886145379981040893470931042110227082931305205533480935926077803710701754357479755881295895276850480103631293268115893725783463939123647966683731190578050947725353735938271023932562741646818002491780857557561681040402442840532511420580814983273176952457581389519810676161914859949142608421466706309354475550498556061563659324578735307535822264535370939410807846532465923805290782332332631805010781123020736157690699536468125453271002142935008415972649776100646642789727192549423592897195893279162359855437931437469063993785710623213224019649590080035327099389159699327171113618379759707026884125247395001690088150843668827242455909347837926453354856872233336721021220631773246982501734660312345391183946412993712421945706337870223970442092402934849528751677053740331721721953884667694535260943683876356671777379992213184799807113152623093906935347090442046213002738414110420559933150765034006748397900468799692268079914998565741404450847856349472717831524208957243642704701308763773164716708752130573845898185111173742395756326239784377134142168856062116101211260010678806238533122976649670765600558212441046774793640354513668086073783524014833942317728293178967072981428481257449824925696208997677365110220947722436719547140537628020160637773957732171917238870825305434167967959725890905459239107860615326050026943707382495557335830123029772500692714705972215897747263743864349037166151373400546339027554014505678295446801106370662637894794431032199037861263108758862915583680991458015916881446107828535798247269535232319238137742523467550700152576741595159829870822083395016627629390051168566388332109214137372633213340534757857715762349330243842973873658447428486882499445824691171830123869170691278167454063849227068568034193121688425378727149573675752209947454593203174803575570860185165223019485336242142907541591104367277941494369620548379181856787703043522276117934583704342547733518948350892767502004189124616437363493186472933657947899593253047834951644193041985223534874604836156717885032167889936681966268406623177236769384766738843603854256119659555693267042723308940662402967661775857032730646661109682654496894130033460481045608310107319425953893717411960300883129365321538164111341862799123263874445294769940567812514657974908294256392395901776134773910816015169018241036715705133572325022444713272573033409583486481222932721438305795859267402814936198421046169054381647610236540782082004728662803941403596456653144358968395989281685853682338912520606879089287270725446242428396891982166945316703800537208508830874617614050501384182964249240053679144662962999502814415799209959857641939089821616343444972636502759960607412933574110468220765403619861352492588747610191254520685816103047500073865523492182066003058647502580389316396024154212500606097014550256262129189916280200415330074031368651710643100464137647224635959291112163767532906679709468114337597607148375404635584957055079170090890519030093329439603543532337443785720953978209691753879374054595569356935250046100605383625885004822831472202780897057375994474430290401460311712916924521868458197791786261282767506306482054522464434736371690328564850774149031091041812796724851522068209601111502512974702976374510810113564216086719867572935094206018581347680124753560517919658219845981121593592265657427083480367579380563255456138116428186451485646071806707052486389676991501186873388451594484636853048868798342906136281136055257415587937187974383286057387793739377441422652467962489145026398566869135340801975376583739984327275577801972204585139649050186273105935481250147989935519956965929625854678745932820201506979400678972438802329365558629800061548768749089914149196666189580635802897103092036037572401601255794440535957454620664882265135654345912494591566003880016931115721541361919652769236736134670014110333048400837325956134542607129668378805084005283878528080310906747719769150543264232427750342018316214506591580566837589240926874742496046580329221152707023558713845175967765745596022988867296959617140815632912766588522705786154928586311376835899872406618646310181074887398161323050177387193136477480580405857005323623243992718125348046443377083298400464646602261368596595998405346994952737999830226665608659028477815440331447825969002094469208115770451737161532834724892171775232323380160676804210857796550211293032393099053458451340897820824928751673458482303168783668901049470956325334333666225477037865590391531795660392225193104449971334274033844824918819503068948263679247546657766278715476898044847497555168652081878242006968039354253419667357420531012509041109644024278366914644579131737047173691348406210775074854940850539419918578515070030250565844517732091293648809081396761204214495840408902861572558972062998106986613931229339811225814368133644537874170125165704106146622587549385857653754919341115427272270446736547670230055800549626685199017054210198768537945160336867249258150123516800192769606624558355046327524363483225919751282317033354974891962380852276211986872680667450852922103800022196526496455190755485725491439799424342852025999031880302355539174535680667180250480828148128004769186951527149065570141296221156250378573933318038087734013485528677525402744418690142955286052631170893001970375384980947959053547504627256399989440800399329725963945993193205315500382843462908843247093624820421233179960696824005605011514203273979231202224565654933922830695072672796121285880405668230351933249238315101792914774954208750189253297617624770647973315320472791515928404584306788579676054291419921480876259998420260058064341735380915018729612809212494399666083327808552324175665044288906589935636207008627231002919522737587473302978237652698027234021385912982071796333270078938573143469685616799633760499425584157997853180252301206422965034606783830008885315660226863417030846626948722854397163856057513132207020673658400709646121777146351662632123557806625825719619573460745484441560866344252667514150723860761611933796884483715583148450057933727058443040063741562877251234502530328337285548076993012854286186869526901061957880382435367425064353513441613001701081233043620906784198457844408780111820444727449672551190978507943232647597660642384718563101304318502833598501501676846375912815786922221660134578252340811769621419160940287869188496512271096218831530153855894892549063318267126256554983466772731155752114978389669167706198989681053185950531551577263985399534541883490060534047909226741238970697929413608736350546827756664865138010159793167010468001581873893337730993802829758407971685142950783117629651965768873379553274090245936357567221229369310728463617447322496655377253036064238820185550398617462938752473917003056228756898349370850886514362276351995208617669451519658227490855703468860083490713228276683603556286855622614013865813823264087482348568367332561609450734656047023438763252052913910753294460645126704882209591811006956308839415521735251938402873085680244692936535112438785803355785913139767970926681783081409101359775369334116074429681990527642292994634740533834832585071535180152694765564507643308326500047697354008588581202415704474691103260120731235756419215894183029115269748935886122254107662939650692123957052675296980090772372852913922916950072353627073592116119472418200705292569582487045457147052688309479874698578629645844430694750222701346031718255919614889865996027111656152396667013291071243399795698282283264917818195154062440021584239213167138573104610933470582303652624352964288644079172659267737134238698796479798012057284397233122146012987988244989706648915366181637047290115710755789660746229768984397046137957638211953726374777004171908327472712220530426428307414146482119636253977870178820485097631347089848615836243309578473833382232236943726204688614359659257292654332100614989657999645750868566405655398710181321012470156600107291937289344145518677852512495162480004932997240537012504623183615294983386444522403902966072720237968950098654417750360471778837798776696163947644136051108048041689600157020504095435877435018265393045724011074253092022778602281443941115180216385527800522377277841335182638120868752295276714069265694984631414491490456076948123422373003622811738464442364044944182562668293858220254715665170147658746750288803808363464993484299402242343716249079085676786893389768576879999863263579622985140020846149075731851301896670976944539646677316091293832660891966196521787722022657610101674116261979371349120363780699849415212032596392938355779414482232343791659926534256253033341828384982841385075243581972581290801471398810933275611047527661835731494377706209367472638887103386051502358496231904648302956877714621666196855661422881336364623921999298474317189138478065028172242812893253354537414568055227038313529920460307432720220191007313178521779737826567970527721563177481776576381913356776625335182047136315855018255217874595979799593098402254934365210311588036340579790411094759905816787752593250681856052633264665977606993799044980818936689892636252015095343739900950650059513674289742943435828074021413410004059063932378471930471895364396314557879554959213262037107526353281297870890574947663446517927526817573690665033910870432532501136181255870665276192382832415819155042678515591665958555443276415297559485660422968593038473448595782804894276798573440685366173447505330005481170183166456377876160563286012797990959936601468732405751415911219761192128348549097918047345997221605478586280145261674379460874279334032926152892220244295673070731998220529971288869437272811220400233693753598195786322992066444052855281153986621245194196367150010613955627446502709404748519375566625096321108304593361757018428964500099177239438863725229120853599549883063426655066609797824358585736653608475818754448016037433751892003919445333127404539600207685714561258078266436235312334293305393325812496081634947346242434664915382570490709084692014200962348429056281713353730274260745302720405687243596575547064493448059795002709988325133715549597424315100204461990361644042447370266726982537466930616822392556345611918641662105603312512465750010508676934212496839789420996572869944210338780323598835465245734644673139995751143575297164193650768408804997832670209299684607349545392485670263406284084322165571954064000053921545770273023568349470849347626430886346174405244100951715049405191709515958844020053517600370171202810117077943672026853275933107334169574003410926151897625309894631486653015408544567695703449838858709465484881696147226599787667680071273449388901810672610604942925521391556390404553230365436297858036243491169381397999627611994021194492122838899513777564979332789996517811819778886327136697820833083182975175803917861511697653676356971886584799966185313735340885331741157068839549575738907803306344123072971589949437231102763055462579651098154610592661104281123632583703202862363971497396201430819427218270710927705701347558844409281197337715689474248937645612488354069394074355038020454083161780071214979123397103141799681001981146047269636260563432869060385206350734073980674956787302316043078711305834384883578083304469607253058527145394251598935467111136097464546424333593415008681063549696653414775110350224539124660960055348157655720184665355754293996084090709794725037278600928076313511571463965540946192314384713073950691944812059346854909749528384826129872152311622775099773055401875817521981365262664536465667109485960643882355783457642707053971870867047127042376577447343157428235454348950739789619695185919489943395023614356160814506340737703469501023579168140673403867806401444315066037627392065974815039371605542163555519182456343659950969345170715773171900605612099530315731413692276029664268595681787364374976652443801480170500989585505068001738686008299672970846667489624277038825225904025881949428805554772975442268213361977651303925873086717915747043345952949339111302378751964171954385287603299738434398378228918376785488237244269809974733407719483719169902448928860721742443701778117931967286940441628739253582765960472044865984000894415514304759058240545161131451753936623504481190349629299036251779253089673779439307270370944066527840509970024186762504077464442098129468827331606180382256986422989368503436840733197341215590363145807640614387199193036451486383658579132980395288823172983681421358560050398754054802547710235328910922437263386396398143133424283205064500627810219492529482749482020228264840735157805791812012402229584040149292697973512715021356265392460540442654761156677375879588700905766224819000987095042146538563456867871045085132531755735478269522254780085349431856722940007642270372323650529034647903124644696873806891226163019131539931276797256872209456342625753095046018129730244763728506013474513162327694225541398940414057483363375142380392474405307220891445598105330397455443631562748980181418493383118339438923472870490109352059215963054848072859643243825765056891717996450318281778264184076747768672415720932732801398963383676833467631498870805286168067745777395817385509707865360824957986391121942112970793309180204195143088625784354152842985682085061291217505615699608219639277803013053938146934939738542410528670139283829452304087081704046162143927591215590878557606944677964897905417598325540897037374829276768968075406803762409646156834395334939152909821225682678555933126574897335656964693028434335813499763195304570365006035989422856515950556204771229802296567419194244786001541745508715512357301126447554285146679103929274238817619938589598087321210082400004443439769576470254456495026942360166819027706332782940660250357993309134676117436760701618631040283907420909707814337527048086464963957664642454817665867081415963633356568430878928786357395692477753160692864617706160843921674866058868064610757302650553519353660858823665217677704885862850261318561673855259358494867035262262119958034710988543985225094844619291698052729575454429579749334031055942997946439748773387677122829788431905175182311140547816709903142209712963123180278229383679816370509527796399568590329492547101077024037673898166572817467609023826135691262426620984694658134441930142703149731785433513740499180056398919505904358533208386707004011741530641814749895527625388094571207733969233088449547806112199324064509330622726521547026784246790524556530770077050570485386994098514882050188572508303748128636459864383923471096834388770750720218175305765059959373154930046209253211116828189864064787278287957605168782459605734258863716052317054143751303520253056289720245890021840801013169822775963839652262428327375182339447317703293506634816790932751104540264446589998223411348982511048228708051606674694545164100451587411660456767768495575331933362210074880910034171759224572672726348236322530825602528598724504819751951318507868593556609636796831802360658491689000247485842548038889234152201321201976220153354403058691427230186548883103201720011033369340349998940412432284062365292255025200157008217134040899509466533491395926918553388236103975564336337501539423803433479940631824825584244857713920595741590115426764942546624248242552669675947822010347444312711762156212960576113676599572686056187249939616376789571531455651091267996997934995468393299202368970944926987189532406162785134970334295351195910800559102639130793319958099526152151098830352260983978178224462378106680855848870870541026483634776618884456021534503944458435116401625705369932641610280256945382750699367022059050766333942746237231544089671434805526392072204001139445242710704080528583301626237775180224036716438501363689414321054039419875948437084605114726056760994354946596124239734340474694871544180263102059886970449369676593428374929452182326456927452607229180801295919797483097043087531961596406123755539684535143211247810400645858504958462636700384674354848789226636327443685575746439887201295453749373090414367700032494722789190320763369875351303512899892398775939253506272848133140139002339749635664514579960290397464924099638923727077549590796777661029874166805358453540058783214143026338890996280934687405287858591341691044332498674776109310856636050387878607674785925214688073303098681582451218027661371592023460848815413654417943756275546930972994425405473038612881272381033748952586103561159021500627974295879755235925993088456964478890535858381252706237305848109876635544611256900703683599975081450902646701757107983258766572177937385788239212897864765376871025051420453907229247427776494728840188344328917425686215245677016652286977981535880068988979135597162936723670727416091600976806281198021834299484874886825462420806021797485720811822854795911784985928945515049021973306482686287007088258515641258812215567487853652353285851812390021393018137920352919230925549681419153684996698861219239366575330016819492938452694967272785571444284130803174834524686126877574780888152040834960615550111432223770735451953240797139735051628275178620005632584496355233522008002819233841097420103609960369722285415609288699760943565299243785416766696263977264445625046548566063335681146930033581314017110313841775193810921566376922972952493697141613909716645545729653511855631471909814229503326204464846697956374000952745739925739748310785238736913481533483887624355379008705703343720375815997831281050594505753251683972512274206588618845690012170941117166410122848309881834364711213698530184243767600692098208696417715026832610741114920792109263580283284665710705494685242020229626744546077877759855462980448825368293180684782993915573621137065503568074228004730343455327918460713046681768430726450536698174058166547822800235369073880398559283349270503637783847484242127375585096008886103074034375611796554090492075976200438879791754925775480019333937866014920223808497023341768103770741197138258346584436918348076804969340297162706210125023310171575520489908674189750507498614750268576565871373849601389721811987700419470670273031176635354843993891119684399630737208396090007068862161449407467636646101869852783876081729276901540643483882246508464536691666815010800946449273159007381245347527500776008615650854560990067040863307092447230809119538326460334055467063293949671137420282617217953879431268386776679113672310825175720914291106596610561025549511605704306399926799734535277470150110428173720725649641129977962175544527056063382620891918898237916282871118014517222523939065577218615794264194640749638538752733291375619419056172493728648102918243132186263797362871263715291130015319271808348559484790660160877724582207009843496969098119395604148984020957412956508786105682709033816589705642579888304958238451582636847635731464994003123506134372501214620439208514889803780972121699438496316183512176029992874811480263424811957216674391199345983005877943425922330989386618201851189120774850873508821125163868572715819798169257470823553382951010667222476097900469870639500324398764265324182257057057688291682844340681311859826778591613577414841546742727131331557788717926653391536240040872661559254244450716290341034385025574096070774811467983682651797534249572636756101020262724089242695347320725276528133421182241363887972717355167908844497019779578373453114207228024244013730046674026986284438260355191687953629566429067124652562228786631591818140758647947298401535934101569494166268830649883593532389729278681612180884403379599407414615637722062456863541265757971303442333678144520377170189856045310286519064239989640013055141012662323998837917412682732485159550731417507011904826933622862618118984863091000896718172411698421786863163731062280581941301262101015799499743310562105965448496169859332718684740117035640546707306607027753343844687355859509141206742546731312427576768028850247985155074769578725759440336010614550714384867949354280299751852365930085310553397423061401654920128576452096825602445977793869876144954800460262587875238867789194799708536757122449552831216986253710922157136512169871718681826832605818241857849553826649106960416099069824942232344564129726701887608783203076172757954953101411704576852189622057384553239838203768158451793824035100788868126937211378999713650271056532346938691508279942617515953213946653093415220831137830193804916682336893132472615559432938997756942790915117431352663408051964049355683125881378130335427220935100864421352084868285148471885826962601287604221007717240259043131905458636655091126732413541657817648198120577183660545008443906237815427914130789457782349614922503785607027740272506550644354692875450350653350987797579463063276337193297213783178694592563389679591124984312394046547654197783805172887894238601599153838179904677341363162617303660204021926592388196610073321233488140700333244254304483629466514915487815923853289150539845531125172829588686370983822260076112157543935359467167687206366917741251248518707692273997900004352920860165072966846545889546621506808658056636162232073184900925874978743380491372816299728660693397309194619878015977645780315031248622301996125682168175470193323419944329598281487583394670706446678846910777852741283582968325011917734864065996492444296824442280916942106507590187052309592284623909214798828966508765266455456599928195844465178504859034227163526952460551395698204727443614208727725450150304104815828282782930274936776433857296398297572961411143480750128496282326987902914084041507324706877294786968547993870856592425045848128299841354797466866209117420293417453326971770327287734370685183417050226743023577507055601189936001948142076855097759064880428435259481921737450169834705440122700735265896916165433840051554032686431310690866172214568926518408655419017310910913342679671986610382963311239372578380477232667443297091422460055304478221364635730276944619831404344004884012986200307456728541375061552934038020196375705511380616577353116404425880643144759823503234622207837504921021403812594679465732370406548237451304012357982351165182056016713437658043865571997815812511057322974055725080540277880441322074153677274050984776806966798600983403758343621890566203675487960801363307418688419784549958492313255237203209087547195510551969128469168600003893606545793892200398864164572296048546100793918194913889836074805482873643803015777775605860336050519961159345217812037046552087956414374197777895524852995618345107821344150065620045895128496767920459751739945467411636909109304723185839420522827445752646630242001225372702731918235199026667418688580628146262032997685815677839388545457898700372992582293223311314317257383531209807944171215455516487437497375004681582720736069902219943572482648584948266305893654317825326423729899118679255454273350140368181209724847349820993210264058187070757340104735885506765858381780527789436197477158676590537155514067135423222521336272290738879103598241615940794956146660019230112652528553240062156249786897855196908687726239607739276177287006695484818801269053400169690147717623550468500839295968503901914417367991390382227992943194543150894863086422819302617160081912219214852212808774756537663863355830140579099967711169128615903459326248937533770823136728538770700948507587589866515067462085799073914425705310074894586003268643286587445937458378406300263822102611469647314607986761219674088505342276865560569777191435698557518957391160080362885063305575194523710290127375710191329377489653502126687801457898678633806116628261729313488920841795243244753140103075799949219452531008221230518477114077634805824827453468603228425998376325797245308082107590237245040535124086745588921876227785580868722148683736240923298091983922960431206919678497465667380962314090589630455669092678448439416988843415301699254370216585882926635820116442870177054084133723240281685745207333120536359873189194916424248383472886182105425285079399420881916357442297734178578107581265055803656956763110853108263474056030347372420285391015946267270338331357828673750690261145720055948800964241433742980754954679092260540499076731694694697063460696353156766547902838731829270966877594697664945919639930171427338943466180746417984979696836296201386136709388599365818593310300037990261257884229155692785396847432752011765373398443284902987238124333831307931020096677950804294046336347192259124272702510823500883307228971496564685216239588914147705465428728912890802937432993071534123667464673635263771937702966400718198271405301257415477592487844789790275897560060189799284999571470748995945080142303451617904055963371603137195237221466608997889067772859076769463456125727000237914962986642311226025140479952010921463795087384306900800266138182775662602521642126628015638242525484339793513650777650535121710567492201585701882623970766785754375558214594311593391436529933735120532918083557609144634600215853870635290617415304066238943288656023523574587202074965269082297491720919803731633470929451769439032516147350365802872442207699422957581877487597908897951037053402500376994633095956321842032378642343799936149179625670927111173536612225544353564044595830258089754592760472945350867180164550501625043781424088469200735779167554689549299756504351741490637088651706316695152874146089914802035587993449522832856581373853382396186259890780771820459500043314531898176303623074945695150110660679512490080469446913174555022894553941555371287882896528823985292819858299024993374114612828669036829533766321142021440749132084207211352829431004899374602510369691032330385133173542910755672427274883090775618553763788846913543869148439109086874829934797516514053304036593830457005200953192194603512791241683718908810807923857341102526830554259077891935648197556535993796919137150927550126861698557103739385680565510702779811041014081038852281874149185788575104031340008317955371230321880184564793348216493738944658277389241168061175558519026374969599245190255918326576313495808289233169689877836293837436031835401683549762303981942367904789160026599531622411350643266783157257762183208441209501444585650448085010996231929285995028125390625100455459710250285986856786294353256373905156586492087325195978491917118894604299275388654327360790344592909967827589776941364856794561198400927418821494716060310536184219798049779871608189643748940417544921361220273012729626989361322639615638048387136449991128783257167209047828563082913067140387000660139770569327354481382746729308327822890423000034457523506701803431370520059613044645715586555053841082783662181061969568151119849518507859586028650101362626471586240776534337394388358600525022059624066060919868001825330296437760217592958795412594409257276975333474593790050742450727659616675559095276224590577589336202984452124605849742053173499273220704328587678421142573806750549208105636340741529613457396470220215737719288043039480279854425338655076801601295268628867003367517311511728495809049637930861355388622778933967400666124780815423336012254003432888231941687964357467096121232222784521028013099509517092157489504056469193303589022821629397246384285002014417111066854095464807270592904716119849927506334266015242642114595525686929173723822648680549134433603124888671926388720940217834524265019409726225687525281567390006625469800919496388457886040276828677304081335672546059303630907595949824868936424592174858581891232984695408801060082212937582589512918443337397406355927734429068413693162818548853122000134633675048121866852914954612597532904729009817254075654998632169458182554901864977327612709423559426279323094445513284880325736069294023138671548205427982095148902792990312825096769732358506240516262435216167106904112184110347524651847358829164174267365634873794664677917081353243331665015419736356227763715764397876979498637684872763817051662666463955485478643281731104551718222725960956874542898984550251365532880729191272482285197039421271918794470739203287263951070674171564077694382804740842018523490985981952557979222161453157710616265455858350408816080094062477385911205638780456994294155961372018654579261187447785136558475306553528467616152332428105109683618752340593446606417284305101570834973061368088354577322720327580877342240898053023858621865074325689257612606589945679321315729520804011629955943785814489872924772852392217085655300344486660577846682955590741973357713896097119424369760172864049698613692787293609066175665073579295933987560957608803678744180600747299339764526308883688360919439129929981778060383024961802787899947164920563738217351694486398898081916891925375974049768461156489317176739828796756204013952967257534486477829777694321297154271960526631169423012782631891006053465583101532204563063776729513801656353281223628581389802440945878474304215056851788485176705992156640048437790553010820046726660422028890497764203163832847541917563307395920190506741638814361246794747675823053262961767630947046010077163913470949017808128835613844140932089772252044399709745180972599921357301269298648125524112063208947305604897540965073640321405045400017121817630395671976919670472199085508915814880606997846721264750596152178545380055231245179485100897194359872476178568786611167153041885467209616565157245060609158969989959051034384853642588090255187618517227171587274082064321547163410201814301062997045895013774917080532892048497355549723611511291889707797231677666841024707963494058100342168863194620348313824153042964968135633614931271801487452244768083465277024201121004286586656005764848188549997194081265326615661138021402675632300611863367037392709399288220951447325757238560008052288633124247587508995959647693557290288584449763905855531269333475064967281195226193227467864690201184400037260215411043091274651070305754338264169316124435717166397236305291075626840736590524095175623054973391188184182766400346802677636548790705401215183103331453484028782587561849592346668038133327801592662075278454306452525210908643470533947271908486370217773582762078739604448087041414672860107341496225329737813535217599372848858016296864268605517218272142998601946185926245536141518710772562694388117185370146931740966030290427627012020420014216141764994069307282779083195671944358165151871628957481043021428518401464993400373777502936359000106199607562934696809154666140528372733706792271042228073615890315687950024729124446402732116360069487018451782092746193528087251734517110807280854611890326563991951225385246286598256327791079464672250643152273676543498307947003392936076926853689850080867702182173685101090136299422378468817958827206698393007880569636323244566519761725653488850805536572383168062783701705997092377037814893209041579068137028666345472556588900550966205351490677232468613744534968835512999438873268303632001169971349431019271266389878521560244245737839584724038712210633414882101632387363004362998303318059221055462277115685888419781879178703279607231327208556745756015434187694246915493794280732103580794923365057877400757759478519539609544590330446820527546530376488719201727542683455438354632269251442811081970518417380566703728069663460082135939579695291953386397281196168195574655273300170175192668140597279477554834753272308831902027094956692981591557696646757436361766825147236929931038989056226137844959239169512970049350792793385994047594374918642957060083817673570883118294733283677697690018822094215631078522734688937285717233897347548059315607121672211305840114828632473897789624390888702056610641228772346273207771272752503200999456302012450138782145303178957955777935830804929134845091667116925874380937183442234421972755147905303938763795919606210117707746078769802799888321951525944686838423168887554587998605809174683607893945377445753123722746628649670816276117332753417712493682347685721596929863094707135781878398291497489858677266011324271547738016404854447341007536257581056908424126707991664762585348059172568109331276576500038507764176573520449671178729495151627576800478978105273197550010559027289733258990592100903575516131323857068294622332143966988539227912657467584839421768497670592554411711740738568333579396643307564861542954381212070476869573326939998568876370725111513337922071696455085697964301014985389043694848804614185843453070266544731813878340054649423243810784090712206161114295163380809058568431669243366810801292662089506723051681901718757676295708399196248666234927931667713748337915005109349669772085715915621282127473165686867864653484654055547033029611154527209550314537229025807720741176263065451799585848210190379519094011660382664695322972710518866289728904231008818757521421214794328334186017910685995088353889355453949850735576123242363195606715982458136174354161667635034102834439977315754477716241801942208615573750574144945214056353901028366747439805207676718155613641913518462995060491340744669441177412028534117273486786666246136974904306338510860384351850020889140464655693396341999912097576130374136934580527317092725537122942000813850738072487749986666866507600635188086106456024086775410303962657982774363077117248906928561702095177012037125746459685139887663925890331635571902406170776227221170577680496293962174921541778602638754474206995046965606852172643372647206099419276129220628644693637194781599785042361134113905408698415739251420427716439441116403896321822209163432202016534796131266533556194627370955604793735298410850415045870192825549784673163741212983108092537580419249194942522903756716466419879019266753288670820805447036741052671513869869063953006235090158057034610363352656343475305268317402614399026655513272829453871700842961612885922746291800294626633017771670204608660078556172060897906908725535586812889543962815924741396556536856468216942221471680481223693466937778148414169133482552733931837096875401331529318139911335568898844636993986032344968014702015875051681940474184909266419433754790682695749938371243530840361440901084811276310143561467661749231495977703703446875434418825414788273400843744101148223618569917818756466376764477547383174543488208477537114893508398955474848052958845329804081143902586525729115380361471987349318817722497734225137759791253630350634253771291267935523824273343081508860417106606535862635956470833856815502672146931586908096224230083900340646945065657292756575188527575400214383695674985346255878683081376969999964433157597450753069415390178823828908315008364145208598002737471448495757530892413415949601391760213123562835184730847834152735271380076281947605911492283626796879607637381200677595055309393331820086908645780783126017908703338150926745724873579799063814653762310139560997147695650442851714939830610055218553696413530300707453428516791699001555507197848583677629010012269219388085923832227406137783765963863764058606739520616840948296044584121954111444066710055734427347729577778930713646268786435833387405400906469525196136790398387076741589845094412721242674358756488242835279063341164902289012610190022605945495695467497054384910676701323623544401938005179214627664543244258494082472443134116436350699778748442010517850499363125855122054987706780201492368329315848180276481082074218464277021829409564008311256852568850954738990491419810572215941515906975990399814237321275617091328514797387068645748501529551432295316118106542170834319961642209133048330424506719310792500132805465360472819706857993134481604400516391026289911670542253509566387430117464816275389857586550468592824878484130738886244340009612972852906007348992986138245316417790251989046258833955786357417863127821813171768589093645167344703864189989916987284208416511470258949957545195962903361433306591964670635629606572989299054061173624070869129806508259337280338312251699370835507837856841844744894222605304045723731144457412923139103665197376635267330975287377152107347051012749832942535420142063754921062867544011727887573073473510233466634666899810611183591639754464804123615544138991257572651435732060724432440358490420989862625131309882269309299018130972176517506459905479344429071077367839361475498213016974234328451592000235016483840592794780736216456783242002279645051367640984171579403334924297235923681340077116274809342606467236424832948443649166715855519845198123376206034794782409114232851474600798979459237322817573777345592031214528431897662781351743585239301592504045426342907647828205032624068119634669934544685457656424987629593411017971117878161285317661647118610792053581451909138720947179307285806307746466634099253588200120440408613858774363663255138901360177620862945093374287348040437392228880838266000317207356282261437114752790093361471908614565475722293464073194898986878492000516696191903158659218778458887672299939514166087796353075307197852788764485513520238928311066057867808408748131276167975350287229788808659596762691784645852598575587326813824682152932050037257179640488709129856588093224036423369469154475048462700982487557190892851112934764112096734390973712619800143739674279434048063592825887390659187250707069032328801650109704572117761374204515254815019132840108589396787566510206147184906289978427468525092232329319224593344239476846971859206722539827272547606685675175565304255763463021722554704766844377058013276321162606922259648401188769317663155628348708606555784685399711064356731447056372349451639017497828910099040123016654076397665067265432858390489726622217356950280653697666884879688519916363480703108750636450501859990311819061482685989234627041329591188712261000055781349842663909361651875553119096936865615939429429225198332836140625609635741390526784687913957739658039580757619354119552602019998172118351003394250463816738277260150036572055646297614271817589829012938575051253678231739492522918518773387743245674566974705341819613092941207674252548675488450927779118006178659796624507405092336380959688887949861575538679044245289540624118937137008720524065757738214107466954743826031433594613319052837871088610532763001949108496378693751483723070089786351795815304636266890289476227807942614164900215626987318633204517394877206275121178195614593954248244474456547411801938922341578843954860245380148100356209165288559132233511480769646648151490955015775375802486753574207554769769092413868776740235547211842199110531900109670066198913248615383073622623206751813515072934203958500927129295914413100806177727854183197976682085038793271620740413437971054172874540737912187026846911655872535896986423086766246218114236215081628238233472183800103144734341667438876908817706955142101834625617595233630775974553860255008770065394784541600365545823060506085450787356680053097309029710008410253093329703176145992505480940647187455918929794182770869065875609294857180711439429891748608451643588976237399149732120598733209926435308643873454770748678666929564622203549082501534813246171458379866286002754452805368596479041872485475092110408833668768441066362441758188648263545544744448400892829241240640440164008910522352359903291387832702689033690214238399476948934383927997627302005243801058972533416698192883064334283446511184906237844412207233098609500146365669810741201099786314770541244147751966235949568211978466566663497408523531662171250709028327320591328024173153294905536905499875150392199520556391699604895452197261811823956716276799449257273021519503042777715352979543593906333189446119701773643231669881221565167195715244742038864852899752415872977865039256684296953048257693796678791056337403902857665837168895808580692349995910605082749592336100502896810980374520718986600001519278143716440089350060346912664402501687778313068541969233949815942105589214032773895636707357716325535714861559982147643964405159530461029444767984355378589951121093681521952965196169746987456706923660114061016183292663885508910302755963571446673106865562412242884858878006832528334036888664638581263546537867797505341543243995155580971881499181095922293715692214149586235001468357950009474278207312326250960533092079314108364299469031717511744495581555057636687708693540540041375033703013656982979480135794644470048775854120585798227144149610825234361597650415348815553135174943070922513858764722907157298629488579282042967880693876109345591312251888656143482742963253116512428639137446714698431153803999797707051316161360418760412996891916975257995982217059832372404627379224113476264238925612084734430654814549746003841265277703897674151619119280816910476675394564625608189141754903498053603250880903215806498309613357808452488610670439666297384399750358356196429998927688701861534981995121496152472559738502136623089032972967257481610386879225621764607687809672773871685942143145632704579539649334170041686644960440865072360463151155093260428514522722425288530552978478636828252284117376176622357364657378036877156252936213754150926128505933270549459682324749698598269826794114639161610902997222205695755932822360954354422141749095960145433784015341940182929417652093830855887828678520781033537357548215000918700763602220908260643758346370908723586653263651532936167415818968792611993505282917982388764624283893992143814992136416670293999351033271962369394246508428658182821265898468058663452055818412380275990899390535143536866558449659569816667586951135084299352954578536989832383122874944224865327942017366883975662956225624417610481510874699182198111963195424848102850525185358663112625363025097574092291576180449054592814780425128374075937322672971410590051391153591904754854930822399859495436908422730109060952147470159267733180176165852790680403638262626891790485991920821641288201496393600564538882805629462234552378642825353749361043965402486775614454644050624756117856005470140124638321689149022145230589160717182480499772165582800878068231983442809497531366647391140045805723585475697455027360149618671279672424858057360951202976551519646952434358256615721377956371870681798255247620108835429979626614964011171741148563956138318347374275565313066117071478527092713305591209050892108130412407213071766001765759252819780747414328065176561922222704480295981217426818693754775916410595116156061111122696925866843981950956101438000609009033533837084559666045632086633216330109388137493257875220129592904229849777689557601997675437153584545430744710705678975285303393011598689712187309822186968560116644230367367361691297730821905054857860531790464824801333050692864359724818322013652699991957216647984933017454430326260410392207254083448740874265368436679316278324179440004337173101275767062005866650618351992083991039691165550937303560436997028555750622573375231955245635273365087364005397146762095907644989811772136345909777956445151075040153077500598471723615739504852560022149572916797698860361422003890288957052490739539664744301891875478617464269608992552710787321400601630360285705375161962942880944356268806756491081037442801505329374818103277705780185478805696833682889734068802443115099452907508320618906805884938275658380313992505909075338702916565361404411913984605720374339749524234565280802653837309172620892145841773139576783692729889205889851294502210570624741310811677484460163278282983178876101464245553091636016188836941430933138160891684703065411872002178522900615406345804091349080327848271855012293944220093158349918323072022569646405753116803179998561503826799289695683979572758164178251535166918562165113026293450682406763003414239552390092895288520618584798713948232326810945798619953554032665343921396106880878897113197733887152705752319042111995170781657928609532554056685407096859480938466505784700148318316800696864547884358811882226687297328894020007661973303006862768577013649362336737856056936003042462477579357652142379869835194191615063978951200910510894349210429606516611090748861839250264283115687924447330547557887139466145822026878215207762386131839219636357025942080315957154420862614567266818190905088102176420820282761072638802660432086384589250070043955385562872042563463033343496837654709119300661032615395628709021075606604505969801222112075101867556951239576632924565479407633505929301665459469867387891343021582618491962023377035583796342564861083130868272058902644733989328117554195009693217440221834246273622059570105558518194908110132132980447797061345614845274162817597899191134806848096459453402286403627260084689927497037654898151935102245192824417001653779086217433838058576128580204877408970807776972374999162912562278342059098974988781754588172790727670942638202030299979715441705305304397575522706750940236783956211098147920899772127183492749132144379698494754185816051300623448144891801198337994079980870358039853268991030548096434563518409738007546055071342643425265838949578391898879196848151804669937376153881920764392545233832483374644032064992125981268065108625429086473538963185524519994199816171122032297713474289583721644511825089099195405599666221987907324461290289602605430064799274230831625168651405468676460160179698899365398405748446125548506601800196215587119926276022455202259111691029404862289212331299319920362382255436911374563995164876436612789698836133098228805275130146168428244691289339533021345532314055683901220489390223008828116037835519745081649826351738753837888796113546584240772329194962740603952744523689433635897694734743499247762238234333234274998586362624152219944977328509762703990524083177407779128140025403856708586873297080134163521773446948235492525999865219536545749276835915539450694297054480362620733875400543357213797944540009873574155911486269073975644131740597049410968267556474396291988301375040863607711568616435914460770876317652309877347672863005608031813045598317905981194841507272664918823112413552638117770134928298079941660997237503327660896711753860775886643266618346873493764918495042830583874905980978195031072959258475166612709440307564232536446732631498219710064157185045026926057651888881412499797709672273571239930268703193878161966227018128448310297841338088618469327199778853395748553279287921784425288327372878486632446894580938374719440319805870429905919979988181465385320485832606486026705065541714228140043442473011596448131121546696020168897433246058363330683046869006010867383720227551359168187332289809935491191093484339553182037213192783922190447977863271022403064807836002642133019192577347603085847026447350152608130501692603511704482428370723820264842396866895710106934854454250986605243267757332030882741485087999297239757773613317015858872310211073681727494033399942215603525855461597944176915789166983267345453008949769884436160827335193161391860471717167940002525207632659330200984700063441893266810608064297114797738555820785688592898466280805967061979807360693771649213011829669880348361219147067511437679116003516270551550974241848888247194314612207147845006185142823903622584084487962966739218260112889707058913191666662022343465278232551065771725762185670990706616912886894676025453916987300433040112113307751742528339001257264829904895488078055604891099960798606534176230287671464206804537791364560006171486662791606402560790688770274468799246130857727526279601125826390335591032371869614518900040912235276037323739480919214462934492368265858070792295904775652214827134167515099581656844867510657442016014246742540350279948044440191581383019139016408252598745263888876058009461445989021059239300726677843419975348171365095790386368547338799021547531002588410559103138756112431547297543225298871320390771898445271266209138747134125598151284763695185143602607348696185169918133861031758816007769863660085955098664327920713433012291466524223239081518234497650824886522653270134579230763454111652739326294269493375688765565479137963442548396555914180921236426164553760902429176285003407362233185727913143309176802597743141145489406004149584096318964753739051158661790214442108957113161639305429327723650869332642289832981857631735540673584335376269429377791221224323977138426084716527702598285896774878994190076872181714113472807526713663008552837798590183052930562894516731164126710438137716604824667094355644673655976421018061482934672644041370314897430208054568071345523786782401739523066297190535361741375488257639155544444833361079528116413848645494756779489359098591561306350130513008490853675058583146619658651590234668234974246885481859234078828378398555423275554681173282709991918740085774383771548026366898382782273174877082472354761642779967644221453911743474241165754519007800668366731214157813197069958537578876986140695570906244880467010912567815754426629390393206854035299168763017810056904123970002153973581867741904348723903952652168963504134830782819966231016222729066155419034370143889796201882422107978968331659938602104260107673757518933243789074091477710044181657655115510883805876359249986964513148482256248452067539725263133114866439391872993352822040187591963706699037254467407651477009154778343364668193790684035549298380443455783538673258412754643442424280394419667893451666730534151921965913582890551184476153452569817477127079645828271899097759118237858722525767138949508201231346638040120328622888015174515991161864572213129650468330664253880559081039313336957348524209380582112403858174200017233714566275913022829968272540251647827359791259675849645790526836046745738884778413784033483165637491137969980373777029089951976268492732953956984089082080807934764326451032371538044812625573376130956347301657530040071737059962547607464885899904077921182074878688433821073011570562068702732107858673752197333072103211454480075764918276945194309437575177141049234427381916688744775634462050553852764590491677908384016859254554537131809059285632791017927647421591935790837543003215742908842187008345117273214695915019455068456859384085296878818254383033054861280873245055841538771419542772949214724858041676674347725121145089775568906536130681134986934568940374762409744891766334523081947146478564299854789417151529933796437144341923221312206484482087082800548399155167648565633156967204310467902734095270971888021027627580535960750660322713909592266643361128981953646618368262795581449810065622115835544027280761469374986912162238206239927570211858972124788438998642529287179746203456654018938175946043020548303480100372474848352484570997735830518362039645423693280742464329099208762168314463151421403293837195310343891289561784083042824311320160355597015626088140639758262278454474103998395907792837707044068235970602115899566024218185338388751759100872218392707747143199382590445353352404474277964148735425618828281616959506857833676236335929666847590877010194588233341186901449414835878134797483479499641023804970924250928331746222176044598211634110169376894472732881600119664986848220914695366004868519282579088666105464184782484490664316050589680331472440400113517882677500700315355582026277965800390644297756586127212913611326492321763751012566730207473628056282631572518865942836381502120571632088105230648178910976996917974630261815270487870438332842587746907913236936278345685073351590327334442829973842151891213150133932818392533417372720943043102197192502238060467362044783114518220605113094215025127568556197945593629656752999289023135387104253671504095287431897200592116638870233703363066310203642236990793198733129244813170824327153235504022416568878793998695881193056336203724540319693134504798937223605534133271188173080553852001256148384073369832434860673453232668417359204607538384620282774195813834261948760674917462606971756766352486402860983805710685186040667235498336503932537690351191647735562612188261371724132754346692521124438925653176894869553204089938446828392271458552040788419271682403861991565417974163519902575983924689592849281945269422572428573811721802177881417639597922743545499146879398174288961852596628278651945101702814834157667266630856267768016376508232778168636135580381845937074021913319433297078150718681872561978932567128239375249282883040204015504039039612057160880117394042978827793373626947995874707122663444471818505175649978850694497906216984003864992550963545486247948650663683221584091853675920489616068097648176564466406996465122361697542252130283193885560445821733793043628247107593110076820941306994759415193645850039450856535198489675954072708804174548953450141363759030401305764852114880974638625291650616183912143347855639139665765221715578350855860925409475942615790846629457147360131433576016123725556220687975720602143600133150596898632675548762667316447379509971895108676408659686360467176175964665348718409775272033377455964858501839345896148870798604184543349989646265276805068839141201804452213347707835902783806359361725702922677576902626397132527521455107896719824105224041926569744339227102793635048528534341150691322075669628413277607632172465830376924598796144941158497861997243898114430140606497167454340242722405502832341231211054339671386374368199588087022177066854344684607288178771407364725922747031583119467668776521165079201592316991852874525009744542631164007553416332309689505785516974116461746563493970534772889839651050219714730473699343257068296515317398824911764349956784886231926390104356540254101181305466084958577859278230586268395407526281378330601593920266038819921488446938849988587091001300539188302596205856547218562272049996289743685921107276071020425402184936553388492754700180575689396455202112790063094144497381700940280882993276546145205169717999898791416917584463211939530073309264414184790804785355109152877460474838263915176028926587160186592237695314303188925399589952456580509788284580094130507886884576348309330991048874153193583678506955728454203382301243469391292539790323089016609919203848233682783275667686682760862456833319884787553003793750219716707619730326099751182726391527660187014402039106960318642703739930626992206108070606534723440476529607047999829998942803379267634931115833430157924390819391296605774101861245109390714839330715683244108979745173362627202151316312800926048956003950625550411622512256326119879021892431303678758224325330204237606677669040977441525730057628002701783548938182870720687095444943108242903646272774233469458841944134132202112004925862409641126771283444908053012236070083880611462622381660860319466468342645224702981602553464911468975338388626906868988910844937093332692049546270781832507185690459283509665946317487354928182300361064694203609937951449429654485347902100463930649080060919921695710178937213074442368137069758982145507483778255784647187202555754374244052220719766729688911004192107409452512644303420504699613054549701240255424604925621962849209498385745204844352807725445640987714222323541854124433177820346120749494272281970621991242072046753035606001448297930745386442944759138084207204129868865030156860978066208270217448538101496095911535439597414274628957058986794059609145739333888774850438335779800993538338363055148463045395915386338240014085611875199149548061891416186866623946718547648033939287235570928113335658251316019997285492208084131351687522121364252798819930019735784985395831480300382162511464485878578462333031406758095036542780604956325081501498333410913060435672740047570625580170279379423722286027325014065454000633694128974619236784835618705953448885874420550700081727319145884768185822960170504479918060562614413312035976938232143583569906624654087227956703590895011579441335262943616527834314996267864457779418124944555171404990191323280429847021874592744555835491967341361741373866892395783528641740109797294822917829364407713794237449492279759964140043586729860307626212934999309605622152931995218128321878040508467795833977894254267627907072603568877574588393600391510396277413828149825947957068796152969917444626233461627861152247423812285315494368656029265977783450916885323667215060336914137940324934562586896615312707181954009560626252955455496919804720717933070571031341232855886784504401547546756256617734180278259084800913268338323774968992068126231967145513174960785288862126032313804940135901088972114517833999249842723477703875120110756747438247141270148447781551290348153357958258759506703805178162784227412490896073201575109100946601530630949869434856600138800803039473921187600365736707489107090499049173476750805738657444451500614488337412775924803014499473639501673062038049938486242794613781730985580594294134679608609424300223971558767998212269713989826154274632545526864246240770661674739551259003572350341533639030625059495339520280803287699220690609544964591466953146229075387911725246048901408043050675905455968513555584835673883579308129605347148563044100652605146624939464913730012705219337247736460261511432303775274361177749928305397939293292772963619102471440727851330455515736356115340573912075360706939730440496395814475063630629008419878096188695296618879894727917981868429962698897676102523510360261636514571341604623468617749400901980870133842070990990982213765201889169378412735431726949826424678878418516117135935971986305134994189693055067799793746991592565471094757036405337466687883728065192259341520286750036469361784007012604758493841254430618140437037183949973875779621695573397492871875319331255666320829278470747436493712970376249877954705260986391410521408964687106801337109999651640730067000803724208914298870465030893162102313039866482817724882341501387826352380244725809582843788673535787228145050129534024241226950871374845185803882641798663500793878948261680317196753273170285462897704492695435694767348240350495176834610604284801575747295564233317432444056385524198421975298624899888186396048105213127325400494185364471718103204277982619325613217462656776584239546435476809473116525277945772189330523666478142979057585339370923568204639993933264329236045614805732477684607876993748098632319536989386373670697204548765855622091623971890676526317291802987629993788730303438203540816519994213220420943480447356872816407238057017306738941858968893916529903775545472476281421497786583547379448431869462729447365848525273462978428620739344953170760660770384621287712016691921071661676858367879254070528315046813595041215079014141891942494801809728931799480898974382566138647480247642451758495275718674325018633126157165368399995501474029259496945249451556862435982688135985045308341338701262527585468169148159850271719946286752321081609407737758197288042985638055632255230529161628110117523155406067528705618759043464136538805612138092186928203697353561318920208815333960921615699587679742138033630527787153537859188559153016184673540343463084378619618128809850632588658297414036154040701032296300485105104659732649717780079403694545845087577520177872606142379085215701470278741365568982643004304315840604156828759708597945025109922600462436829766155333455142401466187652053517899019252435988368686091293491334993336987274725797102980929951162769607040893610008325449526532462832188712021517830130536776350889980695185067775050476106563126880328757824063561809998811884634007600587206847519215574674403351018226014641671133687146785711877051482837640857700273718946112861858958238567288091203217728681494008237199638476132822295927298453708881933921884932089841125040705745873404071301162671023324749119922804843752480999920568466821510837031793409562341304336437372695236159865381197475788238165983548726244656040698618410719828385564156059974479922197948706093524571698616614582776324833817272484831828684420854836268746847036101462256028660837789946879103860252049589898172350405681987275206811912371972061775178710129585144431069654733748310588806795105522360871406882463810754975542507681885776427599062341245112648410913982337658358878429264219099083353033650963893628539209090081230568584413637374075743107222036047306214242499866482178564321564246912283506802730445929497789984147054376235928754493317926363312526769536331050826992940152124802353921080789079052888581372111064071881724599817599294135433640681473660124573220613434123256431925560971195553864861041742063493354659846300974103190977589575750518031269864006331377204013486728718913278381443549204229108797319962636760839153637471748541476158345515892707362291830193346058335866156727632608574298658948275086901965758615092586036028685721579835195780587382300182580744145653167031660130500669086953673375971452217449015210023251211749026859186656717812969646273399140179474038210885537753253104266595246051019607192831685470618003005486242611780177074561267945175929236333893635771234193482570580797804798301751623670328861190125753619685314115988967666250730653640426882267318817055348417940855853238758987012977944460759884345294391053071494944316665539834123307831929526935574947301685322338910356199186995270128923493777366159183437069952390592781501671515718419214193487014252703493518099018303553680340215943287870173915584497294998446173825035051792229009772962615823562585987683618812670823101200310378791826146545381404969116327058149194102275908027183929234451084912527833825377251382378773199335957525393260623387762174229307217108540896734731632533006797309883371571480450785462759533163524288513096790750883341508722954247560479070855524703205400292719119302332498112566654431903820830715342791777184627277137381587499370600887434354772674581191484363806830030944914287592422362242932810639466636566402548630836472930610342100809586214844545470911121979857821877103943728500922118130883863505129565436796006824127841928149307439214188125852663143779804492742878297934319955913778623490435993292814461201894191670198639931443280834661372663002655689337945447245207233172539109341247274364130484484121860656647357238403043174104334213724758097418505583337077188983662160017092682794743007891973724348148190760920576625004408460244881788370753353410849730176673671011116567833807208303759692098792145444055990697345607390106208244949461078752786663492852379956342120278535548300104823581459832235430128706914143755210105492596342095007224140224168225269126020955312043610016989085591692451151476921688403554100403209808253434637359247197525707344431563411863521639498148434324457873704420058305500651935110479434258804560724959046384289904697508219390896723352705890052145092072928456361034722034089861619866315991819018965085959740843167096579545754756159977497090888628181272807625385045596680738899411226315889906014215922685909328156164849286205917108157886144104632561527804113681936346769408694241194900978513614479829755058243837799794678290201384884676805664379716628249341547379784597050241075022471794269671862033425180396740300059185105972373291497752915422567683924632064198159392281799524560673841269890008451036453689105573715301519274403037102014306011276551123387637501725414366337268769040605302919651510657447708122169964210606020141271421157791109131739134372144894590450624477775296046404234674754331226199713118633877706662951870959205733093882207194214174392823141970201529930127901446379055755159048793343128182396191727220488808193089680149216028082647302620674839649698246905350913750951448005581673067334427624817973917639562306942651256626557233434858467678857374179740522535395589362039856668096590630398996544678509565769186107316339967345822753721174082442213559022483404490050877296161881269709901010468556518821124789688762700833997620450723503445918931445572885757581022729531301236868122427227757360038729687202521130571268332386476918156584744360757113633249638073673751879910039751893398874706581163374930005783013446676572089967452254635363191658304598960601715138016734760364810758459092495046310520999002232760456937422060161189483454393488229450613256694554178532323418699297526379682895024269687888554239580846601699978691881271261554652368938525604856224345039909427047362007658660104077955935247546859677646790519812265277549657982012648653901813902006440313827519952832337631054926064409828475134346628786079459928345720881009726833542438951209399620706814648553850994146534318467254298262268178055936044387013902197623919883708959625667699340531912186898188669442526089556211314002565283802982167381832152819930107926702362808733453144328817235117892834820490878374959639030068517826067369895844526011896706165262061598829899948038661102435537130484305917817337300320983940058146970486053919349265215028872488186507928418839519123523610113914878967154132081964364558116404957126437590282689989184780396688780919609047577733540409228754910359859114518329450316297035245842760438287637304554336540398404119773751969949384414901479282293816571826058940865269519239756943953286757365751902173783478644134862910400920486143101505197943453579305653491758676126927168501912740055219335964183226632747168473377942902449738010571796744195594108689999806957920349475478975575605239818767247264869275383406052153798570078763877105428765086675069650406573617300907790062453957474726476553505567772443374730723927241166533143125822057519930561377125424436731914448371438641732342215940964755646586295213183562073463191158927160626908501180628725666986219600012174758176780322352847037954963197649250625825557831974754418961063604354679611555803747315150397241349710047448948071182309348811983583544015571544438984285417866044978724456485142531713870474700115029708501530249440316458338291769168993902175763013373367218985659697446725119678030413221676135672011548996884260552620491569528699054013078140723947604267042563629997505059101713059716331642847734334757579631208050276615429692686315860695266339965440621151363085353083940321313847246654544220656564526585219319827267622033633686712822378299067207758117200783707972709270133506027578978395353184668817608118361559577465044588779624853292125854923189150926734824266845492075495160919524947760127982327453622208807054529518117311600178824015383960439312197926381751528242163278299420507037616913872650926160178759488587792064708062211092719883869926726766867360831933812251439371674219603150762853050030309016696185194591320122685746469670001903023294345334355101743456851674830878326432916463433727911496095618151726957398736958896401044546004993907763672812154685537514825114842383174446308920556771892816864027011435899234048965643791789997934189593812201443710084945294451953174028504744196929983265450474355726107148550306998064006191278443670288595515923858980329079856785281721916085912439137550572713281250628558175753090185849737492537722270141693271862385345826609461474372811963765391255216252554230358783665292905946074951740113710470878249223758247191420940179060593468289861582736878611787652925574562951571211141863939026463279275219495530333261158804329377972813035322919113678227564603143032737916028438446085505414697794320360905161198003752807022978559568487240805045665421666623317862017126930316427957348741725858656882983902699441673555738542670062287662823705729770832121360300573550753979031383011813874423551297348279948186333863611571659344538549387369480878482877143954273000517950137539426195620558098639209035561954755118204178312960012948116416763027476781977149746847059317729857634408926762660012317357952466165236939387536026488304746952846433724464813001271155044140035964620178484234417564497740853454565241374942973819136350900567685645672363739452085597360830438766306265087680252173135297227165831473675200102157294321038667991062300912416117497526297744841633358382207183722699939927646829719215254764561845576694024633675860388716775576724007635825064081751702794354649716602742935914540826722113839458716769532824473452818308607370669014158188630473618417761455520920778569548758271596581170264755847748728070152030464135968386123694982036102568069466815170823409404131205332322586141243123859870131851790389139104508969551217832957823191292824195409626706239148044851255084584595411819767782601351941438027068904442080059850462896158696193415623104061065011119680611078959428686960718935615388296901537423775595953300973648897535228207538551759078671181397628676296988904053802799477866709696323325448001306126881008084016488471072085372331079965790316583524141723816569097365001807123334808263082892276378149441734462796323744329520509117723026870574875740312598859450776043357602250557929472332359869603831855416506830937347804410074438315275049515406161376594188350317341124860917235572710516374069867364663104339642837427838145273178287590269716490410243049583864946289383584217990937339508307526576896972119759177252486925656613561313450684220866168752597103592162060739816802128525288236982448244802536739127837095759502019170161392585172731984657570182817416009521065758973452513996552835268925340313098140151557409726163653103489014529464101192175370955920965443500367542364326831099936583066945583050018508127223166094555392663658939835260423087179030662880861396068705006645973464384212987310814975969838436671385565706226294428586982005472776551148484051079108814185263747200877727050654542620294144307527337517760937674074867839283612001594599278647833759704667815720720854211233049588770534643120314690595306720956784780224845210582853221134922100871587575482911914062663012479281432590296083496385273038233649288094785191022270546328595490005830305073282456415713167813303120838032255592597577280744317198964992478668379354662809625041153772635009893152375552396616579477952806045944401540063249170666873485055268001312403006445481830466032005839749081188681779200640543324459987091215084915638417553549539537202692395950694805882655420219101148820841570229141458226930737134054577635314761562398817863828360990392350258648298275057092313135458583657626811233286445188027278506771421528206584550460619611576097708534568390849494097294272901184153608894023855889635634179367318727309145370483564674318998726503245764213912335738066435901153886030262841401881379138819116144934054767314031583745293058192368786466543273830671890060488959517726185796587350836909710443249300744716944472183049255207711456285018337733776164468660165327965477763172072603701508904579194238021877163002427208773310032018714086358801246137268217617461987482836468215890770105550015169195351121283433324716184775820711336726250382743756445568567962880157895809083401844281064184388422769596570893662461844406949568453890913172478435992137677537510938276322778508925597944863737381654430781097958746775182633902977447936994095170176487984419352273516783595770849634850187277214076742521662739212703653696702237056613805134258473259331553851163311959479918294814165166159250715116431751492486959463596970296520936240833961680672095385888312470334643408466237584980270941991441925082027058635169127478960650725175433900181782607696787080712629622801258091230164802127374615150405858643010063440301317902774773694284993015905656543615699169109188097392659278179107995388669474309854197243066527887547380359376564134492760610476462415051013006253996867154760298392851760536745549855301627810803553065334404564865144663274527599423602916591758522364123522072647979794047880511507331015056980693284941690497257479013779471158996248850122411858251140882495277776586240165195312503356712265510097584023797884727212051569645210441172565046413933079581034148602198286137869286188133145100363872322925471728286648924891488454263218596554575242999238108684385789936040181670979910362837350305128992867381805923552375330374595497279214636226620835417698019386982401182998396229090141783746817361190348118949564623222495117161646456402236758779281316906610897642306473352436110768156273783476357397758118841455115402946918271386360133442456152053223671465773416860197547853876582456894553552155428085422296313911094335861172231844056510462699157479011019102040601500289266293654121892444878916661052175895869340674211179730827223889076476211068388741747058095995480914251089232853379155549695744284570716144508761056042447479594042764040277837349206278345981919668201113533094059874260031958293549892689901040359365390325279795155249083590662260623038484988820997957879181367346096811409042339236887397222624937530934154319673096195628164334034683556442017647317452606771137682538788387230945099587906136031999007252504846374134043833922733086453252368781406913752092458027039178272231809011939171724473846690166777883101907420329179547416289707505001161293191778968528269661932182544882520719023251060564317482588621944450429145545795275328515630651967403421362695817215055283034748903678479461128466515796473701160394419235476142746067305948327549863508828173784638777838835232219657800507705018842071440486920504664504996930884715260637442790903701339463400049160567489385209287785025304487681127017301872041780459649821292694250920279650482188032844717891173954752599673766833299782516994717592568063635680338714072336899072191305959471003817067266950880868902383897081442716944077470159571515141598262695615195834541936354612640059911187197189988936623101990486019867283026225663601381856850215866338693600572499752024217148671472387524621205544702820237928525147148518304735104430798987880163562837153924028156488055640896986108410139378452615924860873469881140831722304959124405299386080440072572867088383866441034118945357557042471000365085423628791829990341562316192227739230140595370981752082907655766574150635235483811759950723542258687698011773528375562239368260655314278696819077203147573571571245776544156333594399797359818831988449630878167790115147724914212409209091040690567908808092337497458778758316145837263220357389377141129603697963600519492214873232491219674815668174713042283303855510186052432896185741812045237983940852846487501805170377460392547830127407236127880038849216444736755257858955416605384827586594144979803637454336192970980472362747550931472733572850203176488496191412758467520640004888968473998608396268454531044663595428932162842896738857283759499227873959473787269582909365747676937826879106752170099558428212807585017085089528717482196665294899580620894202233545379649532636256871824396243878859175626978534455857671910088993590175603245416541308549385171184415748741580382451976424139193052169091871350029559133392666201224947462484316240337615998056680103926567082071574054857617426641418477606551387366638995676374202193378661313316964658576519778100553020535726912893426410184639430527445207799043329294848671202935454943351072583909114196515466563086272138513816337516756950163231490963998914414637018971940501688737573135515332358387911266705672750524852003333622726659989505419993057010665331241358667498156437242367392085903516818051616179079651873272396530728953552028654597472360964600623992574358331253328947595367871064040323833350022098428230785207450493909448677553764929408850923367337956171335664394670209387649456309487705001700416743220065816670203614861917798149705289654519875815824209217668562863150159050224318795581854722227382799703643990483239043388820897927786740447728311578628290283709173420424524586649825498497829181071975559571391111807053187101171897848532161180875573529371595422916535243090919646720944517011164109025540597346223277684392490581479126011043526460706923354280875104110410428236476197200588064545447572494551140978520536080122132858280739155255955927644053722458121913876837077602370703834605481342582172248804175863831141467646674833062759085204861853871987177973853352555365107657621893644105361274320890869091699691168124283421409260385752980685848528506534742215015960483229835879163710378848719377418479193578295985785542562498557445786879697652009925789902767601691478214439827493644057813237497988866491287274469800673683318742276269776009982538739537190872244830288108115897170406246219597065772051602542628334039082285803968189310644742182180189488787539301643326101337689066955716990720524339458147577755568205824506517356467454366486653812996666998104267370000588495514037523563445727171452665546458815950648992673791436860625728894086875499499157169029484662270857569963741640977741883935569007922534115608054610921571043392895500340988516734809579587342327774764355761107258209782062233152984033280423302222573175908290399068617727580214602527482663877898261693121051982659773511721822266669503637879405339635539423790300803431553793610194226761377713728594269307116532525569838369678437995521450405196927054551112206461590449712048775296240559710711756590059008301162535113310239556231581902201490513817362699958054549540949772649565043771574339319757137734506251220731058163980955716889228056250007650544835595936712185780170108025042013046528783956285247429004660065327052167915536000234477372111652591027260339292417127325409798818753870171443126716115573660018466153252642334948098592764779634679205369935515798356981535486741123046701854764432474383037782376538726221514249324210109432110385489228157773646637532592430340391980525673304746772688905467883396384227772824944178025677404016656010738575368451194229126127489118687956274532982978599725771639816528619274098347012057923523181676744993803462043179223597133800062790118601296710730189321959749270198762787366344493958345063666402380787367675371287504203014669250172227791067421517608288973233748081329900396391823491436692712744346861345696163084654850300738868131325951655231941319782417700700346865889110073608351538501591694599152508765218150977193319003421417670368526051865686044981222129939521690374297882474531593245329519546906491262301703826195081377020188934674376802698176932100065309810567589753047719747428761655425407329685795894576596274233374320868544618712790765125295919905434190808361471716004734945109563636196721610850316320935448454939823734006790845479814994906455980808749941052747536640304688827901215072298605976339576178972550439807693909630747067300527675103916211859264038440550875080563041536496404972454454977784604296970798888324977328430011903936710746135992072439142748619768124851522751002727768780313245771666005370933891583000232448779710193077750616070501030868044086926385061067553445333409742228612243099845635857960427128304106089448302768560967495527634481810093444863261655282308574255710325479529826145799415377876245936365605288250052093429808384493484150195455834862223501149252347406833799588181586954182512353397359075844379064778058271548130779775001044735268777419526487527632801853329531872896582776262758756197404036774019591123096964297934189193051513200301266859046030210815255032617567452857303846967669360540063865285277199922314527927691366388140946583827438986534928101762603901121862566820706874214056405226124175204507483435481091693772766332882655386522297652694175784439503167226775593956281833469326776261637660452048750689384353730478090649494900825517702346744644905468478844385627846402267928780571253845869549640847193048940108641314137109750752439213338601142964222960795353368597316035062483336365075705969037268916781446303006546788315572416326555092682836183420613173494078267912573163082411962794400691706779870991283374811206457458601402990680455852261632652136871613491125527357205182450468827367216315658322000058039574020566695107275152152925971121847386414642345537486615262189096244428436774544487361186549672299743404340363686058260455208561320842308157070443926548710508955656394755896018804792316348710240209159511041325869616755963601232042890942010559069319173455996799831069165083227466235572328635683692728911995586867888838298375495476648075762621123295381881020967219029373698871208852091407588675171179083051721800214013455100467261462400746011169541733949012438348595358230481995893657380657407952987983575380949540832183541829071743812231018037440813725973477376624275595532962339828573813893521431697593415462214272136640157302014531407525129933808825164368443478494422039985201386077706393021914696782261528082978287257695329057241807598483647667920511779702550179104020856577892670449561754355965828343217783566319366426754203691219816557919605660187075911711409650997769692792863758839105033262756904195486741113816989477478253358119581118014760502414340701137809122411827671384573289633828443388280956419775277733227962494762811529859567171017615113625977151813775050096956804994230450220537580739499306534234729006071331424268612648228024039659917739558993457561652770604191557137223898633156116907035584603722742080536217316714625769845056469509531622155261479206343423383793960762345207888457747870759963407451858096060654928028955977375107573151166154874552420567518984642597088610222928837439363112044654768915404311296323439294695912442253865982529524947319016935195803044703646715628884881283626948984443751621638058045602471020790761277727059933992700044591083318764979943330020583279174538600267834785969212032487803880604129069625161363553030038323882968220300338407680002337881045312131347897688703093328340479793541811853120162766644886408100074710535715887963579145720323270380065648184573002799265991397086532807789134403325268269638375054025345076183828230383967195834885296827137830328102853140566535716679741766268902365028393364363586924957300603153084957824151913394446933404407692389538907420338519644215768069162069120814849417456416791491373930882505138866015394723933395116263996900023905628237891732936366191323771392383699073361925438775325169072563005618463226871136108736270465447119777089294794690601223734040058613335033477352211937949394165133776057390368747465269081085728095305273800622468910191374909129670236773844444786415582068063160670679783298803159331351383842177701353689657612616417493414914475314565986559839195356514397679956035676588923266554158674723238115883172234874097447253458080527347561760862361785367666912708565935884955515954424428900540959867090040017975382676181730099129345369066214526815809908831252474963877912238407373727236889962638408573381964575419035970732239306246557514609739848689026402305467483075001297412561128617599777634696729058369295122674044355889233919114450235512604033049684908161090837551683578134185106187108993114787061665980890936201422584821723791054850543386189382108856961125499351832432004784405666009508182075032678395722958094116213287605508971416680963754808619777063085108344075284778079450961007177044637946909265360287485717395327534838037866666147896162735220031707600593211536899404958173580443668982313131902219968059732564974886539785525720275010079254664524973742769357895938803533567505314618921445949805294147796049709743288620313095544634060443431319156179324094397494296659578786484839655129688845587971235183021491088103968443822969671139907977648631791815796588254110843730982591306125303546341479132437428907024478822735194768597191450378836845858521722487399490109211099472391899108742557493321825420581826111337325193166473116696259501021616004986232428232358042454669210100804342556774741377196260518451380313257899864801572614518506388630187589835178613778811929561071725136498767631023582372648991206339849995734047513835726694159608424079412677742350443944301375197654518498490874743175950898286134995992443122564913812651546502834040076989372227770184912220255017746566597293991121851166862946025775320705970769532966187231087866381870518505583665901664033902760765502698808198761688166829767739802024880295498339549921017388606604663970875993278926509722576959890330984490708467535681892653284567977714580357765545436204856671614329890890511482137919865945472276723463900994678873296213087667766813805213183220223911082877072332461139480714864054304917918703205558841528221558677042893358983791632724846084065716809949049627864579235801061963795179803075843355229711147281734878954602185393340644339747540933467780173322325256922701932125658058152848935385875485655602513173837618233215291187102451399176248201195899299627045131872531606042207863737352089776621570420602037195453183092043275138787262489823580845797631249140607047169742595988019642729221197753729761690277604533463590533559503245784629722217129682314125561757638164042000962253348665970613694295707200639262829884974589891627053872917465578394501868654088127716494744945604098493557790001794102673161051334149260570004818111412470890685663059046595805735948676797692306565082133056390947850573500036713154679823379096627145290847678542542137155869342116850824820390312667638526529921304643435190966015876937946550354720665710308994913394105715579977296623813323092722555868636105508839406511284176593217469200024718421084396590762962504092843670637914363428336237246552995189085600663730850737921025619701876379252761154044030802793953954719052959111174167064033615032129861232337420733711819836876237368453463548570620434835905232343006343553215725746049359536768639005337635073689633529970190581870726710021768899016409663239337228352182203545590767314816709554509527727845821821198061065064888451606906795104420493500407028947833046664324150073052597905886652789280296760651205133353227335335319804228111610886361291573071964633791961070407822957492893096801032819165828385096917300607804579382276267157704219822757084837452526907547126130766588351702387005636638642727977387857357469445619231669953616665366831035149057944721876766640215522464944284052818743848595472993144472430393293700942035859416061278445636615061547588729475252993454388408819080073919265878408747719886270326395024926796952575017744287984398723757415213440400802372427397681453693513326683442145351588894188885332522355447884797166012704828537823525507049791820274259858768483587399672031738115204723590577406270108855440449435733945093240397205529725142071279229825559411002477520054048248482042941269733799093573146274628349260422097098424913777742746239468555849539633776951846649669180224615009596864684286660146750189665822211713881005065744656319764729046300596768216394601328324473041963111599135257828596492938803490919945167973411935582713922378321456459801142046032612153488766751669582554451519955293307366518913725697641258358627735299832263476825308558167636448494607994493935752263867196094794677055896291028396339800473114888722425050025658378084279019737509234643330025234699049929601620890543604165485792757071902517240774592547828717738039023640397466704969261212184562907829529208274145493275658219201231820766877353596618420809557705102032717608942578106611796993184473064346434401185580296159784223526905281401410789071956490244417258907384729355277603864476680926881471384210861492878039583793148527216346621933861769670696838740423484777069379623937022040699708863271360716178928082884904677719267249535504330819431671425312244381192033379053587579953076499287078436149459838876066492346613208219059107764000334121196779525846498233468953909258745171939374126937159387243297267794577120645606498835553989917427456418361786412397816269753325908658528461712055407594015035850617269900242332167235387053070360199406063694952877233900662930075486682071215515918476842589967246896313675389106246150286108057356999691978032056683664653556759992447900989349753789514972733207922835234590846643521433153777634184412895813739562926950051010456420071451354929318054449542516655266758039900905352214734005971471663473259793920163544865828183071746783627597010044581527754625824585747785481142360422984918035672936931299519688470296465008965118424983892016058276135418722651332343268370283057633917217973457144659924499023001113681761820806056671665910320710831610727954276821983123661856781648419575725302263762002068949342469389776072978706227516417279581793677288987628461623382881107242275629791616200659969595157047737708124707357490031428342702905592287635296860301133378201716240854150707407294543376912901656208772807282883666447428498154597189416328553449731877419389880027823916060305886368417867508967450357589560494996899318593932343007058525507064733129357312401325526297566679271897341708051085326412133520617187782074046299154250658281211171170574924089392809126198088179171166838187182101449542449955999297325694782192613180871175469324209185393372309631302197002683551626151987896634107511109662157619324001954048172036680039431331291926177806696744561682786843681115186022392318514495071371007662559728193265601984709730138893879524409898709102108888971390437374116180891623637777213724385245249156851434963543706970782528953848642491046779564474858347533667038223955726542064692677091627120427234539390455842045806159223810332052879931560076395701895041829138612579072893878134650698114254837848562718525462499053199127193010528639053349577754647928806761669822177105939354786650461156045588470213439793269910296497335950724293204830066219443690794347450556348848902552637194452177065230724191120503306406808175515156225132404254987152920723237436734730562645842357633741383783348417967753113122153416161525241184636846650331654483460099633109085076834354799527855143072409476430673447585971923736887907402756219332891908057009570028796886078637407361130801520111057564083573829542773516898893600777122755318119287316159349407823174198054405363100759437967932586461855160730429835909122701082004949500271439541329096449694738414834041153888834878548108500715255213728477116797251881642301055398493750539631136342808751081931255826825395699730200513383783036688400035795552927299556804863796211295537365553674207056113997771014795116967052647461052495678021561006758968756168847917195184583985075536511565874973509825691371463371827453627041561357614236963102523484218124318756966762361767520267839968161812145294521854297449028846855411515995812651840662295582347262131832748860578944716448456050568467450546949304918047507445958802104398804891634894127197021548416484734186095612272731851060792259442698168228471811300938550992850186373364919619198535951665803456553121364945129509936134779781784432645790775793858173133408658322497823511337539035536310765918676453960858949069197926590165293210715698039100017419723927093010593803029299514758809764366821613588829387829414541402244452150605260211375291776027908670437262964653012334491139261211965160552970181179310621883677387523117595327473457782586628182852767910794050756934933231845083196070655820237254402809369961993183487204759127597580381601452772214927268073118028851459538722164481327257356053381756627342180617321605723021610942912794808564009292549675680621967602359069490434952589871725741702356084283142627047537475781283925843309135093758877569642077100858472100540267792427859560690399270749554854558903606934801545290752063084791679588999282822922814483864742028158521375010208191087019546734974793754932087210660876169810324394078298001956882409940821711970658158520909065801352221446862492984670332529451340431384062725007775298361605524232816391843149914214418636729804332196264481643722381051864655220033525745202710524011898052194791941859094146316820170629730426878573189685930496658709078274466242916665981593354876211129843384113207139042270855288048166051890589823033296460584568664307954310837207812420780380173003144773653726171781531478672500999998638892459638913597923209065291434699653635652915471805700711232446347820974829819884435250517003423734476826765236254252297008461887856819198446122856725305182963026854926270694310841603818882762998534141247218544407171999430174769484403360772353935318810111633165060847345450880567641488877042278314972244607047817646862410074254378574306231073895279397141641640631442701295159307696597113941472154820065891953507016388804870515164972318088994819578914817596924942168109041889478558611068335485001155473258004898390504328042824721440100771171979646236388834061233613673048348396545737319570112025872445880684898136890655815210736548535389263152019328669947729405309597429647330415649512501492756950412828344518847902210661505489823198721037341202613455245724296632861577830857262850270071218852803433714979046925959334655768404231251790958666336829144171331169202709164893808469093917764172391477587595372936620486980555272267173008897041396060685030274158664995654211489354151144662531312226448746980476711963377495844635654396582572374014712048110297124305916105644428568813449082533295633849786897815769901651137420932168267300921691961085063247959024126181623169544092634853238065952949862503619749498654470263569129046604045255047515932925620427682109587755930104231357254586283056705517957598909217136354092767234964273742174934211596198804657954904154837975888958145449727479619071061434281111876649794650860460191964796965173476337623217768835201080685434750932725504544668219244473907395677707581633562962985193863735824437839510293661322406904207128721347266633107691954838598862865515136780400229152937424994559498931270987431747091520892661449712083559663399647935626749369309968512193722543350268173006382950191237921868275979643499246624255156105893864599312747451120382883691372196163209416792848538021271147637044850901463625899417411008311133911973502952806344152891469460539280916612716696973972496531763397881845895323165963552236510690146338675555125916053965808672743965358827834219895190647221470380591944128305917056296272278340386331561809048810716793430635925756637257179081594109813975028307325163115313425266254585763671489996920296971545548885873687395032377612793935658331120177166984442698312243037987703632360026440799008505717064834247373945799916924633010228738872507473156292052728220036699924411130323217558688036833995606042411103489840946420536429556614075860719667684442450872755362918614566604044762319283062278042320916214550965432858069934768901008473446117492653924606807989052652896971311234096732660490771091256867450302539525254252906476791214397987879335566454687594906619725476937199460664387857655439336569434456580388841467694945584459151865041792383074950618036073203226886566413193256061553115984456081905879127568331202174757039932234320376812775144075995230869189189504922981545295768331972231967610453988216115627453651219483355405875827908895568373984341770086795851352701698252031111300042277780506186499804935520102002785803153517208628915436865118770941653206723050323979851855765777116254768803694874775650428328069038937176001316172665342317423373366065119168471008980524900015628057282693366337513761786742968241904118241128957319314157523856528605874297171904664871267169919047749136167579951916638648981000120251554187356595204189996424543441879854134165850552445655804483755411777953857939291022081349790632321906670117687579568274826690831122827972126306766290058761812186563049749446120025098170739973716512168638584158253576577331882781972304405283778162526401533566368796774357295686626806823178872004472833387215130780900895125945764890645239528716676088341147660220794180627779901793899741121726383911285671680227329025667925532931344225509077655587369614893483178226058331958673371384201100774560482302742710045588540148295698273607929901777889087360234477470525752442719978047265608552054181775322002438337419841010781768405838637942354291624898423835835743123951143403872540451777811324543511447436947478531802450150535638133493422633879421198399438938849444375076237883002360804358198603641354807454054276600807651363889778991915074021796653812920277233023862297370481566191556958350821987750871885230815678450562951966125952062414484332637163176686178860498340414248716037078604760556339883415792783392085493266719992762983244035235151915930842762514934895522217105629816187700305280743062627676884251532425083081824950168672632776775014035346465788093636851023221738133646982118028491145987154957493984817562200310444245777787259462613915520827704208637482922998995515262155438532175907989914890034685128267730759809291009897871719304343824773974002867932947196060371325127933976831684453861318776584712819560057760091146179648183508282260880499097328027844079316832776765371768386358483516511817332454968228893497886667963496196450817678887501617535815398161971116720540595988319370598196219708406185167430460794804620195528986321562834992318089367582961237350313762256568030843872278313582091219920727664477956179107000967128883028936947049698384443825043894292880807938435124878210536563522658939051528869521433569232649293967638710655747469651812605406122753157929655839925737929320461970337203689899376121777471357203078900556548365993381754010704427102165085835887291406068750833375451345742580648673326271582246645336996807313653347574713166453512867707453757444283294340067397734164440779652952154610067180227251494329156480350762962975670865494323478786462300266664327039445635265135083944856835068755967693543523139999308869460598172664698064188107317210244367822866364217156719565907028135773788048665421908484734557201578975612617714276654470317403827393234981025457236051066662089792240507621299755604624578962686197554418266472296215936549609599943637641412015299265342007159337551038154389589855855344684569208613220607558220343608078465771407798316984142828975687650714288204745182959347061564785648314334376257446646023750055319539940823971386965143485261843648299800785483655893700017216311952696232880835564370315424247602120679072529896001553297359103549882017816493002330134461666649031065162164579769970565348662381218910897085483014527837844222448691544380776814104948556878425610610802577959337256003750704268261185414594148526389591011613770428950609035718920566386348210590726582557194849968408584602894924462939924516455553778036993905790044735621153466367752033755040007511729881013724379621056739320316448733036071939217505292142997181658282835629747567981259512070563424053288727778767704690286616025516137941078485941319717948181822303016190396365680154986865741393836222547836066688943389445281276792931300995215538099673966869832626609396735797155353036229081274734918153647647435101348598733283938480227917934895474030836901990938547276261113910337730532615673127784578930821451988204553807480232390825059292081861733714459735965932394503556904865234928867937664743050352024391001643746241079090799271516610139481145952929259839053960854096384524833347945783627921061165559020244163228306376509479253935285950129490390947817365328559174496948247471283958369015817775904130831800617610656749477236150144527082584753571406023952241381502191487105882054604493564258291311068175990596325242668926593303657389559360336104470691331536209113878786886402212786620559242330257635951429545171771000926890702075145853758675385126117800358344619834726453709193967790963176681445878649522784831280475131465833085184386234311484624885834119662456746825952391191273437113604665505413448483232655182426061916277278108407902624789700529182185995804952826266843434311574645697801156666522352038454817572126344493150177170534722267229237727592475665705228848329805794702589842594510260402731889228630442918611551693613164894994032073096110895007985678230857340878739405538043182070847897269162039021165485389873897898671851395786455988561725327196093750415264212670162133684337627297408135128990262685642013386916690704711859219965028371535901875787927587812079293179559017679881219911603033538597458719685969803468252964621334378719546008727728902526148499373647900501705209147769157848935558041693732819241723655822685650308523534993234878225467117862437692743850813940669753718296280048993619219780412092391958900131457398561055022218395422829270893753196058774008067960699936125779896081501352564178000111606824431108073514607787157406791796410658450541696937190394571988692131389829646736047641327396529962480964802963431674568721235833932180075179381506428608812345715783076480280705156935383451163443283390268762838493188061542638061269941853491100050307635737132763126792424715213670544242677634315199919128312803061560843569279262514718208168763359918673679694936986765647677599367837431961244939841827648122635087902185786865851060872771094189641561192483662046375891322532327324291583984248149434368644223078432210186153699698196391591485203375764495462674637372349964237247751998399503816890896574393124172284135511556420886514244597123906593552635492841948306708026944446947550981234626188816501615836066893971664973076607634219432456750134680122731986022258903507062463471919569287292955204313392057942518902645139073564333897271487348237670884885576969224032277616138066263282360680821699234866725760359490002788275491698361394216859088789031847836379524520523700932164567979734978029311268523426272724295077925391552098214195843347895112901877483172047004478830607862083255582690588396523605106891151426758202330177415543471044059109160924830547903376620860310396428158615950294361517062014045355402932476573726744173195402781579937333929071629701178981962196816053812425236251042748828642055309502763977202869258201314695181054088865384225721120621073749854495886648150388030055430417212644541631414848777519054592992015575168833337006692247782502846006536728115552969728304682906273564232081314633760395272102503360949742255343627115394183593190861340836698175967806119550048155924154024733795343623926060622766333469952919343640725476953369924657776341406761412220560698480641882840232295203137480339214244148195139898368471311739382529453564455511313109395202215820601330033013061580432483530073768596285547361019389494818306902141277530377053505241818399122049353932677913138253962189552020590498422047640668185828337955021747250882806913461441859242679735392829432708025517181818968097122447173683740404958570212348796769003951052170269491757739780117027815610029647301836670267126521850039037086769058858187520197260577527859092221002961607927955607674327821976881384265749755707285902683195982111501275170794508740234616935452795110371328677677017238055454813546785376087712706507841092281116322980301077168158702417308533027036731040043719333445273009507312328960052640927984590669620221394135175586507857346324428657610636932483630393339062229660040569300097938915489193626666899991539783497926255370708825891987327081416827566701514695219548403604580817196089767619113660158592899864422603987616793755048338677800615214958060713149695173816058461454951264681777108809757146787677035012987428937258556374255114304517136013523914642127709770669910324733123440095325089926203996691202043566374871919062160161278538855696803046419022132341828040882364508369484765177106381394095239559611288740407668614426808837334858762837569685456373685297028553649409373450086532953919248517620867973822161893898714607218935628111453603616513132974987266026483731587087251374189214713652467564582142417557871561018776393180323949797816985408799369364103187972293182354998481810924588995090868107430777225757149625295014914961049191727458068196342805092149684223214810807210473679700855689382001731137785097021497923934878861701051578953572348605658231175370313616348956584632918140260100689822708796685043333937316205753757777596312076756209020069589932870434205050187028725232865407233637349486397691471442022351128194876914473506388293046585315623481346205459386680486572205065011199221949665937634131554282718926799462580672681485488312414942189565428148256120732994875106378522732138503213955772939446505721802711965933064402876275144110995144862154987185649485792204861473688012118982042299999225117065186356714961812365802272949872043593080922357483564897967706135306857240953102703910863542529258082813265693096340342079631541160979971742351307096028221675761526258897633614061331687460396579852906465225373919310676579811637229417568355941748039823991166122616112145900252276566511090801845242828210163229422107382409601405394735533733058370017099511260068966930852613164028251802710224240205066003843002115240013089803945169417251105214848857069537802148067159963705139858287752664906154783993055744151327322024996686646135255998889948944211881140965933148664338468967119678833844005486618456939948166353342189484765590210889493089711064977030593495590925428124072292418932686263001591812971948725004612203521216583565894330027560951229723607765032439451000409079158279974699486015628628030481926903871155093375073685004518783225096774606543423342501257153986577509558262355767259479673175236226029145866861919435058159989090443160633501606472238004554583309651128464575652759536052297102535834043977687733736871281467278323085882999742392016187634158891233672029547303484601700619549972495139377056732610239170038541748474527185722212563661574099440944730691890197123659890457005642794326299280059207729294459528844532957927940695647993400094016026805964279845499084295556274511380410879677563871178488007526699353576416200729856994266600909822949260267648183259525739077854646020374986497783040947460963918825806899429659786791231078862306198390826921961005802471096148738706182714741308725404968024833952862076853253820628846466370858270255979255247906388443189979815703168880300418125158693211102540982823905566551647210652085381371668509950877938766098587071398452529963444650853864800693289631453811344724784070622742402953768232142983391694623219406487129014078073016705184212774398807579895890439306979474937499853811226865148611115254470439698099575578899367423966754893540090058800506970460590039259743439154123056719484805840950607903091212157194396991925327563071498230870514260383931891466093523896514860953115736237449611790738010515580514915095998896049615638903625421100004828945223019151125450164049359384533098789338061503495135103575721057240999019513761792289849661608408622154530396364287326244138922292093994277131829350592112410281134825971478468446234792946458792067357041899858512607166290907788040444751126055587987421953102679999931256147616106290513514295504177681236730439396969050009404939713721731010739952756734975735364120019351960225304650601307867616696992322022282766779880595746413443325505497370322667939219949814960813026096800599409297336950414428381825483894343550287449444581348246403271040798865683798393104253704100298892743092521961768493146138393082572798995208256034610806592194643278368101671685706728793006260239116208085313980061876358909703838495388708459581096834634456919479260607478055519839852484325130650036127904558910954176246870306769548441440305424512569712882477268577669838586034537096456179578759440096111687589976255984314645275161463331482560685627533134735111319619299145571488040535999525924973375064025947899340027041030188322418261241869759211546394193662385388952086059654360592571191908954912829253891496281755659298191039915773130682808103803986803514557015528218762883308807827315555608141057029122510465898517417740261508543502606012945366419441063196715511724030490818821527768890260709449602652458110358470625094479044689824720478759562846863763990621498132690339986662962279883135788272766609986669755516562012841070562225217079011542295279309588242396775606735155733737713484677788532935215692359564817702356116888391627001802862408796512572754940203406748151633584438620002944042162242415537143190482425221927834243558489613478164193197539933694427817689112938765582367701616115169701934809587787273617900090349001902449801498166353121806711507121957829159209003377098502155357121316705005315829281082085043382313223065953039509001117016925759370711880734933393323973997560965220214404494717253134533921047110851095114265198904966019246648356614738872921669789651319697133326605554199172963174439994471804333755517873748217607747856419794155531936617573719797125874078688667065595730186589000779201661467367798139137977662956904428860714256292910838416695990500091643074133930157274329271970179300895961710047351749183658062288460822464636743493824300355066812105835660978823038477304475087531049198988967168843289010766153777604277095371148944808400571088838239910226290035397799464296305882956400686159533047288400818149255064651527797167400917710742377236526160728704791383364732218353512059523228505310579515676380111329272304414792501565728763258914174649090705580206521507348374035228541413246818045825006279009287907413322523736631595074909049936714345796262685866285853224041507058821326610666662267208224209438334071534283466595250099640619482154681972195914970831648500165860909237891963376066286601863946254370376759504629314002618395777259763519542531185923899759325102731114179049976723010574304015947864669275368746737321487598168064689239228558951311959662878782443261896485102014289268239173893124913671923836357501107189722570633042045559514098277575772830608288326292996823684743049141206241964628155633072185044043610841713761472734696449318340719030468492675537119082343601676199714824820214151024513878651253437547961410716614491149041878410667634565770088944017654076508271524487161014907648506429820570769924472419959089508327651993931193316403923230928450940591555613927185714298698266211543476601945767782244110911842673107538275896856313479843450250142948955040415471733786287628832197941562762682636618059058233812408277302726243880335729879106637398545592278655998558291967832839158207772132792259299713676254333839375157306415984697247691569356627708864808382085307409219563455114450722059017433666311073368559642629402109213885582037758935766222465629512556192777166842747437226235889571669145738005693583727925738682176843763099483512611897126066555373081623471912041704525632261608192564945785644563835258342138370895375506085471031038615349456299091076137003354394930713075917733626428677328334875475367808048496384146355871330109771622889897632414518536049466524453226291622120193496801155749779949314557084852378185246948609949183454813953919094252084466344298556290569889658899617573053288047506713196889202171752376733593800561136049762220200528737806982706008696107654596505663186902163573343493198342117150639451979962383948279605091378458685763162821333023890228315641982185024273737318605845307141063187973289875690804293037461211088802237442876005994343961028619084978880866385781264814569383058486090680047536415434094578750662580893437021372239413423500771549500618738854901468441812715611384346160046086166717698564998428715421972196739086233933410287320857553863810588961466373887551637309594218611695781614940874025865387266778161803172072428944129583066563015070091275465534405791928334833305718306626014064909371311771591535219885248235719353211512437827616081255484879899403061184577071611386025583005613753652610509705688988714061264244216416946149707609793761354623505035725375019225412093794533247558581581986450260982513865887119620523655237181858720120935621050258726280657388823086180415665067739484555387167427428122443110833837582110627809083873995553499896062667190242961412071183051987957090488575341769814299063581437922341747706656642671642701097871895198499872264299429238475336866965329966422300638760849934281634133744662681176430593804374290976466258872988423685324223767413212758010022700597682751682924332932374227072992243027962106160891152620004991922392029817160802163227944572080034243937807661065686442837938808197905810561311424103006320605876531955020401490999334150731711292940221439198275785992676799745910841527117892609274536479043829394213091714621014333161769823096188405303862397651666967358839952077392185467336814818950419725310612810299140119176869788967110326873813963621342686377031873908261818610596242491623484149865581543594592678145957081558432741183848102610292466326914014831816481558113151847562668983127434573593842248162328045891456298962705931956619067320700191901130491413031221135510918836339134448174411283943021268120026009501911497102562442858340885621344790979322184697439800977576003678030382916050277866963492584591981223703988871107626121869341845934529849077837245800009319015191525654929903056747187241734890134161081954372007819566967831979746269093434684071254615418228595684218105313240822113516655084590846390374123270841056699943307859508434195759171270419746049523710272553928579181669599425671890360622249875342556089647600272535501705109857331525863884767853332705232833420496307355383585958405483414802572483755639727647828363165475468939384723012491942068924271277874430024505147407867748337019334207443473019011511608345722625759049297431595902300818838346041188635033080069691539986929208033932086334098978941449199326913903806233020336940849724456149658974443800842688796265703546321143430439241500602435312721112383187099737593658941292337469835746336573137554327366411793030547963822601147443880495174939660038402205428037894189308953741095246610282982633590776167406822369984626042201567473276707588426419087685553384639636825194769154438423295482155767762218285091305020641632919096353307757117680873964098236245419611692393003111210231040432994040264053487277095161098682959500946220129964646601329764142747867480268963626847299661330273776516145699190832166005623699090182715778490654484685474363375962382650884010923169550158641884656695014236813037025535179570568291213940450528015138743775688488727005643901184985941344421129034873399384423405316395060350870037869479939717074558919296853913207444742932665014790275638582786286763688033996108428213264472439972938276580882036890329917407258716519265795759859646943761476201308890041367467849056769400021093642220764761146915637788486686894051239506529248714163910956893614617094028888760483349548330190358207284071171052380457577013618617153410005200721439483434908626115186350475362930043645231292917493466868653248488729758200960565044795535522427724595467125916135484879424884015412009156872520972489427609237299711477252781863962733800410971522582383396398888223703704249502666576225254901612283959309230177445216857847931326270458946245236187660407719828581898958546600105724337213989021187776444557340426108356334169820856734232261060249444590708099128944416266332205413790507698175415498717863553502899092151347225218612730345329940482750042084582988490417177363672808165986274269394263678963905818015173982212738862129525949784539350613512366917652168831165290624427790057108188623349556284313682213373257003701977529709762403063266194934277250494159466622175184813879768205633707366729980343744990037281625307781048163515372432151326987430535019921903652586204289155846959802779966017047200910840615201360340074061057881350901173798193615238643117268678951010959627712992210985220532489420821354096048762836968541083058371046517224307469017187595966501320037041958032892364724899482570887510900406997258389376054105289677504133574792819603785578300858166316555545198594908126486442713787418666731445869623797476163211234258379190573688285786794964749073069959184583530647015824494625045271896052821608880088684487027536751242602496960271107050159619350890465667194300876548951448794318729577597645631375821463687293618607323367442164878868825579829365653648063122229640076728814423702168419606474633644754234095871450852319674689994562281682320468564008773009825910736608156776300397577773040552787671419103267639434093892350426338451633680445349329679206817037198928166475889044440607674622945687130140234907984818106151577261667829434186742782755510510527501136879892232967042711732321675122805569690856970135030514085665854184508342156605609124230192076603428213981675364743839308074120919116119214846819575332728322175444054402423786077680330542916756611897802272702289776695399772885492644368200309383402183403449268488969214485651257283895729172566919916321796747444930761374122724989964079023741390753965178319892833012812912065581574264768087148613017844489356663520102923021974334568339510894517008835113724848112974270972261119731940680033423659072847142764847949646924560835143946821050125975318013535602082521404048350422583000654094245236596546899976060191842752539695934890157999869675536716512942312898103447359190599192904979143516898091487924373986783704269446251561173335204827856951230896469095929522287048271179210063053581258376682203793005070639443494572980351612667607220984289637802436803034265442688484125514267763428595126187763713003938363837274906914950806897035541156503120010877546846816645936333320876276260512167258655948177637118601468823273364443338317087097081174075759536183035642008654502431303111653897670553713475630363235783938985951721423630712576396632944799283469352008557573199800995741764892366822727955245740106991931863508231526573574019834071248659445263179746339385855352552246956102437123012654233840260761730252083710931501779300996805097328972241516039132684743404689111674544486623499997343347352263276540401191542673761346900906363923448217066772033247666383788059649944366914317947638587954638919477546834491472559408242725076648738637667393161040655389882111856174291023911897288192161973120913736410276107845989975735192343496082559139854352678484186562320116363832327932115339276187773650531947700275186984118936784395516966518327288688265035188589296122207528413155069026987656402432092028586521591842599719624250702494745074788271882623771923280816659937163441511117669361701323198731066510795520691279807104065954696006470407389840401075364018011115275603208145594306449845753366934026019399573003431369053147497656459307521704755085070073064726324354306087674283917614547304722076417770323089956382896731001658071680086452513104290889351086378206137237712281932057997058913814279112252735905750198898806635204736673169462099783175964200846757728591422853005055166166731480999046651394342255356014918620983559042758822995050720870913244021456862334157882825716853729946651806563190389982441406296585551160074884981552342968213253029456129485941362512558552978821548208055707220190635708336055462752995676744559766423302611089579486096906127034299317853982548989182946140919210743616164720214189401862135755336349791910772884984362356484619183776144159513237456281761648958468754834705623406446872183005438122420441823567225559973096044173223836658198675697863798701272614122867976372769100354996394208279463626329021852646891489538481254938571662296445874304729277354112730190599453473329483764246568261566232667212799012100500281438258428913013459935392408761757293515700480968263399950829485331094418920475841987595088500451545902505685290819885272654399928141907545947296013087250873065448518176315349027702683983467821615200417887515299090170587421907127335687888849620905291376609356459713124916418895735253637264237725358926364261866364154502532653473886631176852558262436359496051804184348845632505124907399097460558771297937601304616442155409710788648020051608011134146154029006766720073877528907568956765681328224712525141570678667659938256486098923516827926293935062846189893407458596263075868914716564017815108533142119517911097926436729466548555248301208497820463743413506283178670560766913794030303460237251399022749746760854117197001954109827148745834638389537098048767904810626377757706152742025570906437524515429301036659527547019143825586707687058845292328530437945764390459204480525799183917643328706376272411545004536730405650069649990397883817562441020038898899288366896326210779295542797102169697113306970866932648489363650210585071849436172799959711868967906822266226017587807305126303654760263646655927130066001519924448357071948017756725503051726051281361065764210726153777039413785401139083215582650665302346512242283840529405162381365996799833011577939758480323632944804152786910507747954696075827988392754636810640371904491324363451222704158326796727180107986289164024389783751692960712290097275835632108556006388054913198539847465284392557445836079869092031850446778944580498039755234467489722146640832770889622494538984059384617020363238208969556339355105778017554982736089991716182054275856074792058143300691477947509248786586303456210878827540832025799051067115958674425384400915469315620986332013597999243428316622072055783640735331421691302237694918656803354081697943323173224483199687459027153363283996504828468966641622073847520126106561390644171464095295070327641436170602730094736852454319366210745999459615707421906513904054841452615558069543051855611404972304889379982479931236321232432108945115060900923427829629790938173459681443362516682801286016758615804773925530880692371180386178855609699318315816585543074881067534684186903085325333186525861074842202288646297562321204049041775524458404960789294023810983758464192384619680362888656682202923643185994793596375245588682888660505612670117231742672552886977579332063427682355215406128708092127592529657125708859201413773670397244335492871633223707826316198050425426641760433079674104971370865596439543659008476995385746168676044738198866581124983574734302127980276560083525932911523171961414719380655413304716157724828141401956235204807552791259146669402464921672658680917937034912406108470137444664132123876512726268146692140256273722539723734195157674307571971156168485885831178531219690661339345322314289550573243679927532381545579835559041051130010992038202244768305128691381264689003733385126107820936478272131451725343114700240283295011556917486750348215858623081761545450312243799316008481779853433774339751609114606199976495917569186456765023824993835946245389401650994821798671969678177213784634423520590294497685898179281473871647068697497801518398995709074946285782352304997455303383052027169299219588742876510345330656827246746456050490261608816577110077876596420754713789950325379895552923033335284699697453826763304714023081791897837578435266758673839279368456361272020344962559799121375215039054802818204951676474254376661319607160000708250478829960028453618191647320875230079435146064286802998037433060475261357344102807156348433505321307994326784743364359783434885099623681302090074310165231370138129588760225901166767158919948934369806345949979746869005664763230001817539296534735907614811067294611658471015520704948088569593684415608175296374938304795095009531607872931638375986714392744841849804133845242913546643578959943746597344380457831704863424590862541048611331924600725732342990890762423197848412077087281156048210584143364657222178138741719342211239090671303729014735626098130992572452230944125350378332076706179374643300516655999871096339579096489215318670482662063455934378887426542048768696978659504938412402102157483200806813131449361662013743404082379487863735106207665379075597075147169195909817750369721418148534811176164210173700923617451571418295871877107212745357091513765836752098141312301722674495813981031357187622263974483265279554102783466371220846687237949594308219227103349894468460920190356696881578352748398373527033509327746345847847058918428305656074605694856969092860988018122724255283189795151510443487581175722658374639634561821270282602855765724910095848435482397471059553052776758476272217062016400210634902569016593832507390564047844226704423283609952722733297632438266910989062468354080064258382828413137651941723019418793343327427149403351396006608478855314157460660135745264689820838847352108502443055436219698249451620567844925116597102505784979189907904739165048182895715688278732520471875953932651875565120261449492383868740031445087920941243368348380084243953917052898829702696748908880223451830681920191000998169383025260028596487502291774550149014295046612574290493410110283666451009138816954995234622938555216932019793544610997112464723526812074176348838821705908169601253850652894577390970617009324141611893355335591951057625876480323713846430925496759832781326897529403424861702950995930125220008734431194961303295321077552934731180541818721429307145277836263631324626555926846726565500050918156730946070974187759492614069002792036217852234590242543834113498167386206591778043610671960501964631873452330300778163956548908762753695064917716204575712493089590212022673653545031318482575752294938079879292226261973785200702475214464904346544116862188526356321226069820810109028160019589364379082339360801679357856908982744144141224693435079898938414519416501638247295061311030475903899738292972329031515724608082457235185318967561068238586678072486970586412188971358278456097243876601330694031337083530441763887069751085367395068565584386394279727015770442400495882308771393779479726459714332064797518342061015483134232007888802217267216157014586843536592323199694983376848387542424412092956362905580292680683721943492784719101824662905502434178974791217612005278262217276067250895663331140702317800451591526226198071373419550095337974448131364823839974843260712198182554521551811874815672474616239084410439175730299908319753072836964113122215525845278013148058553699775625264114901693220158065436263549033573753439819417796882334805187547844335223468091717390694731227104212745694077868354772572966455891030058606297919663516243065854164786073235745704561408850668324260324082214943563437073567942165659927426512884515752973668888458832973566502365621421634339718528642172215196301408950648159368989433747255319625142279688688104191766978076682952074893186066431923905372685087227814617611005514317652826286056293726954041680991051151756272734128488154260470932518094772440767779076954721870664707181305958889186763435121643340934997980581453777572458770295397407974564853047739317622975310127244116050571169633719303752306671501123542131857547781331999967003552461171151039074394639936896501535934962445312274546945820150701568094981559025582684721804471418082887591958322315227738727883657885462445949561534793959081129112869580137790126401699078546366000670946387723502975603028915373470153086724609393565776498460339660691263180372650345757132387466327940767225375111591179107448176589782792088425408657398801788490991290329061603328015199886776014990938794719103674144923829176517783729592731413526161514406048260313063089357842805846328769137693745115301000356807538034197418858975074005058835848803614008600426720004680492972971969739187707219900727672259263937686482858092103007712122345974960499825684238464603166391227549266280806747608810979557617012922776743700801085719898614438884291793479823920646749226193690057405672530128010966326427699524838864547220368731994940951460717679295030464957135286842641595268614744145089076237638489606634894760382123044482019562253082327291634534955065472811018685880513035070610057470358082887197546167756536211061703923197626306774440515676979795726799046049416909162189225014511542080937237511585970804014007343814079307129940361182698189147763682941842598561589251702612512688042080002084105576821863024234089426514963952185678377482366159675549213179450927797191762649425562967923790048652418922015924846656701164093197610450706752293101417912298885134740889441972101234000782827605937717061981255462560129996035736833357117315489095959958222535152213529973636551729225997459138959575358043393307943105339091358665833647503209789901511382740873531408115238557415022608461536376584458315624960915644805872171747459459362718881949373948704973135581299346867386157666154818051381729242279571423419838993815411371195040056017213119501986329614125946099639033744120665149906748913978415406819995975849047013587886332329819201128179241322633504659811932314382250511801161984128296973197689289064644640636847352214309992047259267599200948728697974301378329740983052902705031639507765494212099038865994045281956624714570965069022496962305836478836045896165637587695056641435489373407803145856126707514560761565084776507973483252762184406498926526868136533334116025735431570877667636901007262387538325950811948143033983618322927422445019980827502647178351391749759479878477412077674800160688136407882521294512735392158516911128919839337196088564692210341784617591759270622563927240127880273182201335594438652107563333088145239797948971303053005646221215457358700311899485914054203384452536688953139159351763831908817098594716188889934732293167691215309474205222099030469870236192952544115969259761840806219925585880205308268114834766312255052920871149808575477842301468745675340097068102036568584825387386723614728005083142963010547273952630185715469481266914977588224019186752628436334040261457902570805035451277567373989255570919541502009311074152406114471248391939706889744319752310554002875042046789652133983089665549787965132602302805804842597057858838721154728807752819249462933341065549261027659021608415989207192365613057278127339307419891921341716191245872301112651373514428400405764632719589494573396404288324149076709389818588769452220081665288624841073446208638513287362546247241480621095259018205209293147982531507059268196405771968213987560501023416261620107891817703865673211133981020687961165079067626314818264418386206692504859060380903279347367986066870299151649297910145463758747213618054525360946302514037773739907181209988223045515192001696502571888728252675948185918443291950378718301374626989117350076360881429381920162453880620977071115844416607924376836669090914731611160745942487850662805135411886194160175301481456925441529867754337132198260659387079985941665424324306812808325674862746762757736526294907665794289298459796132211111814493107530725614825172828726054511162867572150721865073031825719924419715237232222231314451187952984034635931247810496013855907123746501097427491403056987405146730897020403045061006886384068732964436890884946654117895809484484522784898325280080304873968446831704999464898290054048105095614437534601021451704430772171819970844805698337755417655017738000039935427404093651681117666507140187535358891480509982184132328753716520623269691718792682541471852465881358612071683586480754220988520375345911795517208975663164096301896813534949704302722048003880585556981303605054733715998703359618676171164514758610611903418180714399523803563619639404049930658209175828225680503809444694941029169509181753908983618483916860950964511144612445629105632934895787728080084436621285449233212952652817639197827798637194296151987747724026508594224327917214001767049768698196467176185083856607216019011459021505333474054264925381615224814447954024972539396741296437893306585173065685087870311583720076101076518623652734204025148138852252781754622524272297353728300513637459199437094089273518990137084950595298107323458313362099057492122076837367571284379620541475180570567740257853339256342920945821836282741329793428375180563405817759168309748695998284616282244670164794112157745017612387459121814187532238424934579091857886076812041978560849738452374880819722807587097074241484063814085428086973878391115750443462661491983431531769363343089199104936302858983704680082282694441094089925485278967868416622861465960684546379217556112238639807739949522883080912272768318556904694515031033915301171741255058435753228246705949285505294572541554963952615937042124380796662972832761640427176608597422952797735196546390339536960183236575725825776622781131403005393419152384609513770659351990151228905812381743308609726695223248917654139531926613867153388552752541728689749002065573231758043835397099478371750239750631266433340000625610165309403241812972653762882413414980055915564637700823154051512954070656280035113306124273647786235637933003144450463088384026238998045959910124420471136685010222593092348314641452810381193559661459185597826646309936989037812612921091820055724965652801437946673176963543457498478866355994163695645792121389219572059940365383930376711809386497432402081951421383577356898195736678818837982032556358103429460825188951862927444732705534380323780532457269351620629607509630033619586584309565167868012638064146171179839622028199230652685456552717817799572933692901753451230064802625516569092038854883916405076730911290247254646355757029349492385792137809985062216628565819400058038180227395499827524386473535258728718539093909810918135690840412028931425567641340276149509515731260078314986803457032564653874042484443545203464962725338179742522280342718852497912049865095927753799025969372240588210743329719099455144873976248176510020531920394886952121327246254122552333712692104007035922759412688002802374279494878289755739341228433317852279729099113535087134376525222687292503814794809245362637092434140377428953406669182145658182409789417556031059511418843572792920840204383465437756087974030836983702700774113866761577234164507978609329773780334480671571242022874873789771088139597897515326794467720354500493829518153425069024665299339614635051475414264488491166928100995701168847186277064032928663678918917702723438162000883174541058243010388410036045779030394753264775338748371477816766361668082534872917725046754796700892913740237180833489129018088693228390828819848805301677787403322470687821618193791800578303767652600944791379978549577507168566867331914894605526244900721005450992447213064296806008815760939189465123446328267050661168698030821360911735904962037721854500047176418497463202220360749070554235866307024206210854642066671227608296739983708808300149019002698566554725812827242094727743474863797027917406664252509731558272860255661778761014821017670990407626317680116426271700132158541458359713428665357358257993457963200478391362162642038133312981862617924019719184287882671845623990112477401428795287476882177571091796801580673669924785775104397449753753542648317223402746281679805630625816472621702171937096756707627304240766777102800735315617027689947879343637622697507691338955809115319171650717385354493244696750095746883272175062466513328958045138018565671250434884945579626993643157856039968056467366201650453132663740183315362688450419315366293130366208336258093050990132212815565568560426791994726596521976137780944829515758796006885970879326143645900469187943121206094342902135364300684080166097447784754437255226782516583593402963290360671118587157430383097461911556383871610605300312448835811372538947647054841898061874727056845096667770725149086686031165499465617049075581928744536188109397802238792088553799481358547530508776109475070080296518643538858968445054369153897334871616256738848860119916062826777317339855913004152146708378504784147361463996287194553319428122180948481911311338052593318601473017626895585441913064641950833575567946987721511478146601678117656781656712158635938229824857854396546614608752167721346579679778542104402889555861120756370587446574847404112048548754740873961889912453559876666340079961359062168055493249383807688257701259432715148959984017376534237441137961477652905422878765901535592414272332691832836614788576050698763658724616968602223590380538932928504127740217511720315415113681840504246773639077537190625423585362284423775545154581313021268161546078785311086515620813046693096847720814336037961507809515951070441897158836782176639764331299208866600641554246935334449586054879536469734911822897660893352136941308981553646272744814036802973836431453872794539882960499519484430577620324849812211631914097132581824256777712095219884612584083765015254548814181829982772013133394055162639931618789554379892074716912907148922058937062161280553717615078114865121208925952470891532937495818297408519503236835695185399779463921921118691779175753996563542083500852686819168761860996383002615397412113151682418037401084408776364999522712835443421318542616574958781225554670982373611680978873010894440915777243493692051954414729299639252060274573261835555107849160505697222594700745735186060010885754039981885538652430535290940833666481295384102587886329181586071612825217163355412241765950982228767542599534947365811535960829460624421102318014474885350974016597119812331294206242606118626074092933404369005100593223675503502221371076523427368707368084373344984906868639037999966894327767022015824018772064575114074393611390430598580216684870051021558194724480045340741086039987280866257830411625503324574889633348524916113215849116662281633358164877537388646329150018573978305560204894544836883484257797142556328811246089750036667585803766901991025658327493630549456587448602179927001432973286235777266861444895506395913597826577922079712925044822957492032991913184013699581788878336961134537720769390069238449121816783138134407769704979758079526153362104047241969883726296790585399980089397629333974322291261152802976149228614957712204284601707652475299956199624710656423208940457225450123309639218339660234302046763455986845710015360654015949816598216736837197312708688722697017221507428783436220983364423889951881487983759059178124546491064700026471435261814490673737865675097270119182060096363256441387826691631906249958153671459430635972067337820845108293055901909697592472633225755829070995547572163022121377560002072938031635647866442702831970834866705177223136456231139049164229189121249027512772620049278393001434581403505384249344447556595405951525435239140375029360199763136206149029406558734508928907353584475768207564040227379076787165497650554716498171262032042003167995879093764760764229191182383245377438046494297426845142939623441253593725046728387391282808281790892207138481679465015483017491644351435956907367716559969839238318992700583013147203141394782030153176334086451783883758963268792717711887387882780898901560850908132945509553406513953747334260226688566132300597308721181732645048649392985483151004222859065754830819666414405941467473313898655936678652162607872722551056845111331563919597143085668898199278251832069177986546149154796129611878408571560767682046536913982096792632040357170594775639283694437910758097868011726592762915175365066746263026370992472695588694867865922705428058541293430796677372433505748547210788398650622317643829643521408000788846728188913094497618921833971264948548997611957748328200317426804008564183597063203867944392669755368478798418639329892841026243779105238180176188597685486291460647231272357379812638081249850338675343355793134433509957545913601506654532265359592631913298821372562100279752020772424741022912551468001697528114962401887049479215320479398614886559078196492815626645899497456747700486345013304119551762895532034849698293344434887120877778316784633726114572228435993800592756395198782414778998677311563946494570378598981626614008852808199165775315532459899357141014109697802303341527040421356462240833647244779772931744320475078254772023091150998749427856498652502911553343829612318952158154232355270949892233750312634549037045751049791464105665093016695149646085399748872814679272568278795116660592495606775316539981763339759359386101969168133029750301513442014195938747141625740679989597570980797423147062020661800441675409495819294645047392307119552539784218954721832539931314470295505290220437783001127775417527296995409407376047519792533149578787901156451313940472730573416317536341530967095434763058887250643387743772725072464115460174070968241884968436028145505899325200087073382599303028913208449476344326677520541820397545456639401028226339015832115478212157227767421303153129224085941916856122884586105584042981106089853499637074606807252092775901499705494811972113395710373576020708485659739665584140575283759149155196998089333904436658645390423102336149658559208479764427834771584988578041526119979553601371380031205464516738818323009034544263315572881137161569543384546291173836680115526928612404418626496528452540596651907411111617759825895762533719228667985110037747848672616960434412564138741326249803301272869742934369410971057666429193098621240539622902050659345741180615442565088216291404174760092033056612972272009462256165714648482569351924793997332622656461553552680980135929547289683035791450763730558737139887399260959642473947783050078824716940322315660533027279276697068858603596837567270909622466320308044066790821710245773146601959572356892870314770963000951055961857908573740895259945722710897778261173007226638437639806857731259648604949649806390392052055893082325231219545846227368753925360132323820076746759448390491706540614357961040068085383420051112434220333958124362145815189465630293184379614608281618903074208429813597320777526629768381827422204577241279989211446507987839681805486668585539879838744622440538996648559802852774984177548778286747998690737383711728499045590824175746488325185055858584326548009030761837533055686761313850403855147010840885118474945508773734835171763998888432426001358311587004038436127410201216738288551036407105840241226226577101449719031460252546317263803358179869365899102919609535781228599407804309437922663839310772627630338315251545939716953891180673414561055014434413310503852646211545775236101325903815890116596635425341694054738101783723534067135100481838390367822101460728372588489451839710954677088634251701087300031453826583471859456394551091355399763730297036213382665311570721918538094783079175548104554041040927684005397844041587362017032224984451197695780901889933254128119791630953662516664978506670444343108395721854759618520867404164943929062800400190212411280319076047339888444735550239630970747022981013609617029017110277974571470509458395222809934315350662510029486907037102356454286909852550425956259813306663433534079054993491338311134434557723593593264683754676185973533248569409354434815922965516131074225732768339949942488757101239091527595367138999362945642118691116807306766913410217954658716248817031647336224302108939104686124974080939413737935546073386413813914885462647563567760880207645556575417685066138958978752863280694316650609335009395077556647460300674322195973614217818714066444533705505325919136981260166050460856947280184258613553292193341349266616951303136150420621009470970346345609211293184422497900519105645947312850091066578899268043238996463155259701638183052355132128813306948897935025450067913877218900216049157262512036992327263194982762742842257384836765539386514343660071008528425536072858396802426083211046078683876520395147645662763114861730365162612203361150559582568185503874118430357193278052212607177133890619061018277010932365258182588781819799569752776616620342809976090536860784076528048640582189368554907884085687427470675951656407150842621183415776524806776099531822138990311450057337103167931139463608349946147582714130041771842520930921249128996475524307141430198342781943590027436236186938630685340426289627540321689228110369551823840660701460431104758417737755655523214736266017048667469153715232164972827438033338700145754620658841533063518962972268267246408320500733397668461323122219771548981196889796485832876721326179328503108947587268439954721066461692647166412710503216432501722451726894309070864825786483722533990686651671262129885498831333607338348650069468267180346665845049887994651812805450351544629129301186400827108601043433250660962641578402753648271932087018271601488320000692961285526044912191723713236751716044505719328865220638520012364321682199482502105666769078787357538620140784811099222387213300336525516242789562625662052744278197062295463233981831009738702246746211210816404708669923215490563247993095550119681895877067191295064653948372786698943806801120964432503386671667549153475730890463225333177300566363841387498121201305607996348397504668597615993545582737917061729376110207449197893811285124536434653357610904738762339218659917805521598877232577491820699208952022987872128400373050696541418104799041834532646746798880986418960172564514129527668047737805952183004410782233241891077074003867447821252339356775993779712306197907680366744113297164819515782894740169405082162914422056930401256806865314798723487590104387410283176140886989449008638805816154473722768481744643864790557546486053964892561109591020430283555556294948611250962818669286083731733993713165326136570628420189837443107150677115866077641058511343312037087132261256364181469509933048489035571101972302281805211295464684138410257837769999396502671338331386380717434665996546126520746102067335406175974549016673433281210371197564752403113753664219797701978493749100752063773749411413979066179956094760616672773343159153898227886680939845848516756920363220625917707209960587761908603409065448432554631202803272058685551359577513994493942417767955990854780712097082973610447445444632574378440596716073961014226018352568512409851265892407038013750285281302142890297826459226461299116089088352663841109022478708611815230115044863214899227052928296263940766996779439666864331840264290850005853108616519018616745660553666897866614211103385325052264988348295902021430803408030635516367817060283337022933176864266472062030335368160646561807904530871251900341334117275626510720969323507935649088841752679340422815180933331854014506186655303142764321886666194465508464557696267788904124253614247188678681516657044657907034958743973588578449970151557582424351131683911897374190327012438388035309857865026558413303152903901861235921223207240978490762457348469352221082061037436864479520517144463328354203430471567603161174238409400903307800921209333727934374007398357722149837285206809459274884662011670420144829541800849700078758060034836965975591509963654466823721505444291756591603999964908494616963971519877651250180311760398029740634095846727286765136178666966422129501406550966886740224451343339487273349391714114752908040703397859727098704713540014183013772166087223651298013529547319628561090607567464315863133151852008344113163235286276712465476295105152403723758105647277558349400413571300475569656136073626469261577436171822102846800237905999511104204892119889166873873756158209688465046676447871954792059978335585687160769133430904849994413507240311812317181016222253924637335941367065690246905606064040700693017159679039342060347463484787234135637513935152127349242109178240930919023926153794578789977562754385338780213323213115324617633733241773392125305199175185463432690791980898140297425416210601102617762348712686213793487347453336070243794695867371832428773601031951973385912229935568330149842754846188883276592582714539578057427476559941424943838568741227990577390123283103539976268945878230021846357298185889208925306806771655947550903962737898931328205724816253558877757749691640576075923936491755947882449823261484721778046083164283419535438333300784370947530753562141377734942363979209680385145239851159226811279636586457919306076324287857197863322184977544351015333650947078858209282810852482411543837228740747839331179092291733526343469789494642323545071785212695572921452354106804873733656431405036524123659986178389722462717663509729741086312528531605637817634854253380160282534069402186708716119082669996064648297311216123468130356437620549276401433090148209447962687351562060317759151675947354382139036807374604114315156679622133099335284612248092897585625734927271928545761599705891354685549769522216956252015237923411739346791863232995493990763025560632520455906881061100250696329647742509421508233494496252246796668896600593585323662975400484678411142901110431587140569279584003858664021642018261616448706220866579691401787660647666869222284138884909219228962553237964309120772400134792527274680355699768999470224660055940422894001850489977840106541356688531458374534583172521605788576331338959337226273345664784218514906245256164291216201174317088549079163118989901781327558093482491878158446107798850493862175800010160525116809045925297958847403199254358771979202839376257509515332730598924637026321097401267975153064484470170670540738139100048866491177505359384483506283763098987259079471480862989003894669133578389428996391531752698788596076320177522892660598366761876473914557265294790247200848875339627965222955696122524583894616758965136639118993857783154704748562657634133141037543362733699871426613844202397814814005880547271958790884174973430148166706876186399805068029274271437100801870348284129134237371802277442734706655515886032533487096571254317909042988882019200748887884644749634387868181799442826698437960795934645223087140890748890802517952948595589017391599853949980318872664627235238048987970878235636528784055132807083904879460877528296064945927784980188694876298033358944950247154763437495348985694436295236983167751694569716238487753926785087507748010989804646192487304127884828539663323161949538450028883020844771233365912479167201448042196016046978826118198695138312851294966366011652555139269669855710931321804523814603462654291982326221080684809177754376218170654823443083449769001194218488635477678494899734581301127850070469816277048559867446269210601764716524101445858276567196291622815843999573331351516562168843673186230337041254301751039635810981393997575060005293092378182886542993112249417552527850264194993894022954528115368626023344751724342363343157557032323545320188465956708025261947841513271716780448970169434330934148051021509494035973072399971244828238685150416647305831274450014512826441726487948114748642023217220178686765589631770975842581271461228546598531317703112652448151302009641274499951596389988628513852516683826451563812805858045579606893034590545010208542060044026605048195380877731795226234620761589122111550159850658187613121609128217550918610468069389084179393070222222316579821181197697049281549965392846766280894195335397040321734041803286430007619116342794061821840217597555213905869067450033968597054127542719689167275967369947462572511686337428872289175129556288430934203574003257949233630760144144116656483456336828633137150052945941647159492087949515953497007454341020448594854519888674004939497734474865843150303021870686676299684421705024877335168217580624369368158022070802810747430742073425781919664584966397516163255783964910646699698784930079732592600000982307792421187044766703313315928215511830514648178040802970902256705002486243782222733577834114993272986534422854982195959902685357703758395461034234443151308794687085142762650106046635376826993930977493348809723903489887398484298171177723293735199123496417081719322925616146504207187491152946945959443366562374251105114572178264903442907107773396287224585545439359273852843716217932203821219057930861070135410708481167585788835055118089747280767831632097134836676727226939116135003732102242171398135799856655072631013116249268443935629706897508107746598190494320533835902064302563972801893755557765054411087325877234294248747143367526500792789929416111285032063856918053802041858377381875085894503347550780437578464593629748736113752480595989060745699627562266453985012058905416882549994455890793502669031233124171270194631706964535347776022622903004585460305366572608726900028268578518108268634980085602771641340526552346516248608890008805000439178318198172225398671904043049041640649922260333693781913532138746961178637095141138436063165369569380172729460861911335238454830363287448699348172882736516086345845295130027234123912145034196994942948941496081722208035518301007458168508300279564277459790266045537615427330519354670948829643312068295201095151413499285800173993786122682689018362493922142254284107691527709615894740599392421535934131092339288707214140407404163682543866757203515157040976862819622868123646031580471222612980013439416272837367073505072846003196929468283262716376970946996371989294023485444963900489360971080095074303055909230380673177057855949379959324602531592903212582704239716882990915427291508822290778455666160981139359608053014720105538022419473114784268582293427577525186871577952804765017860602583493725891068375637477065825782879381914429945684389159136932970436980314110051342748602573376596638175480627801752355596524830076601179250926212041012255998577730083261523452376264664601933919670168644908492634116498270246977736525450570478118485342008991995803718119761485464465542952241379815300118520741405842445315843451188134234956846535977345472933116820691573280493834531892418847731650818424212210599218179156971243122833349077857553872633836811219784147868105390287160255167912545015104841804369681221682954544263659263720445199529953603969784069103688973629068078246211651940718594483922800552866554123698684485444969884798344799758902623371423200816126287272265028788242589415315360161895047549220371726728373100405700490368566941046952295747951166926785671887248679333452418490009864246353665307741273926041741852441729554123488546385088089606777942508089356506672963540400668820945077551220175348081488075655988060183199544229020177280503236231491131769772275821068308875426378733509662374877416233855553934946014125763962118718392774745362323206376448933919608593708028145077964220453473579892600232530445620285831819677779979174295596806980096885691465513606115004151164557433376198822463256426017332139239745475468344313269715480004182531944025593106496024040970617409932416683802569029182826663508268600438497195097047273993281107014309452717934264283989483419584606448583785186791415500086099789478677274085539939115361916327345210756019182319085400073096344532308838694318858457790020482718778552508083271647112025355565573075291305196488798891286908749958296788510013943049636622803115181212708041020358096935939131098390531026517064413715023301055385035369183327311021522351429655064537834471635576139929237110483069636832165718839882533546968329649198878112989185052853262651133728488801817881162594724454011306931081091138872220651602258994214734578002052543588844145133192720854381397042246810582205176536003801837894631194888909053263431143653382679056637232364250279465410735847065848991153246427388462955537689924183991737597199009801809239439636807098206816348622682693143125979058814714012002029223529328941487655051627451687605019852392994086987255490116667265781560952223974611928811542230637679541230832311121708150034618797369897646352911541222438623981092198486525827786987122161899910471209257149705255094581796415299560610561751975765393859944027747081286464126434845778499562757811181878680694341586429060543016910813323387188626337884825323472979308572820579942530882509628702188893972997437175900394869786962522466598821830328883580622722717837089038499365925503910625078070075001979540278997306047397443463173073074142882129557985044206119009284356201733482330035014664863666253668764633890531385710204751101309733960982118947968910969182691953120876804049759117756090901446552817250925267766614756400710554144973605611111750665639652161498545437963016016618066015197698572222653036976154557194640649199062181303340941712332396755926616668618554469187736312959249620165004104180892317002907381123835682076433133352606587947033461178037726797884087441738861458454330653904511644565895846840920672267694188357694053832284852289489670133033164350318493983419448916263596079100259136638977882790102837219314281725432917234946560674699182532010007588285796039092432735125816083015862683442712382068195311000879571615838601028327557466799288698593441591267346153497518558888385610060208130266191440518437470601300102724143903040981469778322949620885692048955542343404869751332623037537070936563873138443440053349366691863765985751887741432324245535689256484422651686625909674744751159289605267587876295220201759627329493930523799049268874798774626784230085964938697653953635615214357823280665563829579900660417358068444390988683462617595212384975831675137350168940585090335500914928133153225932610474363438973577725476114042050315382507259713468461276200297130737236139487843850217127526331630192651023898042545205169225858841548976750589021814872629385151095807532196067994994203202353479678549708307160223703808280686431076945691625249049357705162125609394076728612461283867545153749398585205699276584798972898669864211299963309033494260916319576837797419203110123735268491941412564917025590365826147712853221228846511689381007503005760558636491316959365550985270402339336971695781650466055409813009316920357370926032477939224549467751572608598051748126899774582008531393410876787082634815846326317625806907877709397534277962890294645683044893391760839387499138123748632324503281624813239796672390771447926665767287455491042700734045135418750220573931499663881276032624110437764139477790672497804475544502746561849522339105551533892479382342532403358459472062513203388168284149887111417473662147477308037533940939047772274215298288781748777277616113171246722280006088357031174481712300920165720078568035320653574555532264269170363643429878932338255700416624340008548553916173841948763084398931608308558993053863704169888350626744604541260137861014987474525367799606222271001022935085015130212346652866380183190324002754473447273346414132898108658653031444553247064890094902335798309147808839740126839481323516110452231081134905186136895079363922787667856054000783549131605595819261337568501084531155245273111325052522129144392242798998127189539866115574043532324151451246634182187977565474737228481915894165189872791008865245538207738096685154207786243593005417308950111667644752118988910471744477977560590122181555378131694537241625650281961278246194251702054629117076260333541388274949181105019628277132153390390471162245169817395972595664174433445958438140048110722337242098600510183189709228372331700513531439292760645827048075900446311099916514113012288271316147817811034441771701422949748527123588221877881306933682027492441212508895649964677137692129693162400536142793035483537147335385931664001479108720886777704295965654299941006295939801533617925580576752326217711932473167523170328914558752178838828574013908035547313052519197889161817453127297213442823095585139638946238113868502513639367565347283626589753542946380202808291814713780285052393079732657048158756958340782499133124093195356568477639888627328108131523233874471680454225945961175278295277766523894473716309060735189818831251513936582862600824148416125561194928928795434869381937273063831280974414574344488968805374245963990462549396966765850504479408439025909125411055186397199217244386107204411458261430024652979246039103789008364978971832175684995380167360073604331545959855845404335281833079122174250314813356503959111029692691689427258596019834624163375521809156524877272113145006189558781013189150543058059081680436404258086210167901304816020070343018674619256102262414116498460762737869608158745980218042965794393361469659661997328627612747305780624150848728839966608952403571807606948316878736996026987864290986559598654974016518464087399978570714788623055335910059220200232022517651381976760174175345554231965443723716139519464862166984603860161499124864086569049748235299565676311668759860912750206626785930703716804773434500415126003731253766695110521220125450719784278475908341986345157683813775627688109027746249461989209652347020296798966354984677862304048842376205593059299224149945866090015438046406856794582203222952779753951484843070287059342036165917175474007231854573329351246319672352272424712996710314979967194671908420283759824062577983442687408800698348736440663124735740033519504119986672061019713811850928282658383220967451050157631256221972199556474574948369130067883060535333840042696810104663786740516730076854521405934215510166908037697959894715214835099656755335938578086163978595239845429368156348456038191511877761620175796608702070572110895613845893022059968709382365491219963568652977173553400766686365289152400664848206869357286746950156941897104355921348877653662877359809917889946280292949635658408338308887577878254341670364030262132034574048100492350163298407150354986308066099867215979310689237776405668391431003547739886191757702077586453232462578001159586378901856536309448922130715257001924277718980988571673863750193857932883467080723637173133781949600349983857190180435565617565788472204507679191286454393798738560336370247324242469315419693744971017784298671533091170480799136563299544675352744448346358081314214020625563371806965634725670570387369924498911649343661730600210698982669855550457955751360839128387070735270362326980463279519479030811575078599158181435743230554649093996665947602198671239309453021702493331705845830478031361822532112624474431193810436153869935366136347704651001548015223833926901809029742257907972453816714938813596866927216587161758423956209834734200797705668321566606266491549331582275731227576261892637014882876038491634861266177216683827103011020767173131959534480138742422129416080797786705747061269006204759762040922616849979377156030890823762069946676474684882982709241814002529417834602980864687099961048325164168723338005842210842433073940860872850226988189541849683815579731793242912104508186871239783901639931924570177686705329822281966190598057466073123912646929313282922995488527158710702688698149951669623711836670859395471140110785648085245738076209280925341566201574346723915969756695515295701852600438246255501223530398223348717151938084696629775267513458157957407847908696640752003893357229247528126901366011218628147344744532758718382377737277163379226964431887001382537741312841852845703216993683139999229598579931285212708104809641521742725560957509444982249396062851310150937324172365166407305232740778028915369403489019701515417217216958707187153464959869864300553176107580217571695010124606392298950787514775519751372145349242471459528124842633602523053284432606312538090748983550390012276208650237065198189361183027997159833702866089947774492790046472322623403961382204057695318028901289043536855543403875289059314814348823071141546015455797748061232074081480814678791204543435431592360622581246188924269964867302001240297275790771585956496401844216838571891419758450205414595298156671321589252757414744989825878269565998067823947542315705721753749617288124921074395730979204143332922515594758579749867665838341431167492160900802508522767422418137187326180866066193041639854529264827090294123022502250619138248966015670369434591994002911876363634795222178422846148147980894376960675440899769201323882785703338191935751666727178049057312152951839490467524447208698955209743989792583598213088807630665440956335712931052243763387597915700817871520824018666594612818997462310862202610488816768505610275993008748086474551427553725912700621864639381888170591815081523614808543484391431632047248618489870323538852463916224930275759145641686568272121314600806117009437597655309292580332354915747079807195435722960452503587907755661451807161588581925997582963044275758486697833131714304338759533087915689683068828114476408470960029781961004166102988811343505522986505340489084324623365950487087919009290438613183025917566917656694396524411976121772233695318258258810531624879439839973298771012367395676944558669247952139954435293043837545452047710620563402206219121088574154686389990124823918503292796475003104426282815401104603142712934932977212683572046370484542908905135595742311568976562643845041280508273285018098029557772593614739446878282105575433024574738532496373203243559505782059471148096413416422893811121530522004159672408880024057585806334507947947206778124648180097913558503722738287002747676663749209862422185374476867268691928511146652084736504871419920737513568029288940818558385795768616187137135191774141284377834263455332801285607557934128747853043531936357522025506330069638509999306961626049238709896155552309374101472209212687716717510724877056503569972376914106374092072873815582980704049843100134703043221915650366497794996430998314639677624223878039357843411621771367021588782517838473886925948747539270428049964342817022445310650481123516692476931454227378471815168738286275955398948319509926084646335539665212340965241789506837357100684119308407287212074129476432339896870225431224593303592500887455767805866570506433230894397706117459504882816350137225816839487346982420223990931261875885914968896595519906511329000730119659421071628126955836842776246075558267886793670616142638724392304723558441222736809863287699490122662611164901729309024488809795409784326905587021224807370825726759767711836516945399031929163190517475092442835623225366138461587808793232015034820929224560202884113257863356887283432107704094850062216619031715846151018116392777665473541257928312950680286134075267956990719319246792573671652250336647503955378951765855101381131230898897342871282064245527436188692040804366216313438513367974424591685901269944256488600254506433475555696351739788324495354231202039164163936297146033564877342849785932994501684516003525767693176430006664485494769165881309060615631278752949741842590418564474602806297351843532769909276612735386202268117338417197907551087421581341086108864112562113352670507262509155936347915336552119073806255580588756275496264875486538861356844148005162864298930659159330259310319259457882589001546110065933133024839442674499969592706857428441113593959107574223165653808839389417694366834986583944388900411042906677483985059011704856601956935300632966359838159739604762088230548864945938497994577249672683805304510966757537405896781375520089864180031811586775601600846652035721174404545468599831441037172656813368463065257103842841689731022554411118341408319791438902659977078181653727472597765196181581038489887199238982604635562385079620328830289403873831910503167713107380593712692059835417316838847447193087551514668751817609605912683800614592082079637531523318513686921556422511314928341487835575001354273455710067596145316385203489681978412525642267941966609690278782242527730248588830159339204153701491032648231386977198918743656117821725426396899983766663489205153826787669161535618281175893771357548946843317731406126552500456559725573131771493818998989296143793282508739959686250416269342534946621003767083839958111059038065711570462054950594316102413123736771566513662030151339393531518637061631939253288326897730523268370211842811705055105438044805014622406131166319158855746580040191821178836437639965347724824977063517919602544907464899274215788764525228835924611884882358836154319769425269678471394146847014262562246031255964640246401954952245056083353915211043423188932649039653053484502913688038618399372659381046162548480066914350268137982628921439294553335174954662804234499380287778613538266040697204379945878949851049877566611405145409277911602587990606649512211635251431670541649513851744553243176767580268982907353085680350014469012262025321192887865328767250584050872783133006293896231668766643232698694574531298173614995679453980403031602691643785891106631185652621497021076760092897756183445133141834300532711106594290526940178137867606376434717467752522903650939812339374301339957753819058173316728066909321994318300681017261734984010986510672934311024222164473255828928768378233808682641757424465318836958082111475319532785498466762133408958433345159855131385946072437365792662134161073436154442982642118262331356178674987141920811522577657182753654670663066100300030629599977711779207137370788781272083178924563133684978118052219153216481660573306149401406077832593524020076728571381588723886403231304559568887820435770680151955721429162461904966212304261411815694239775074739218493413408382025162768710673121199190444980435570753156824205829380882582214847671014986751171686451042119024316141508254834934288579030492345937663289621950831926166815988514819623125440238076426340711780667757591907962003505462170799732342286539115979134638984617529771284028056762920080907621672742982138654443232750506602974510632245040676693428056932597109606761404675038218165280147535068554536128863019951135825835349732675948362394979864608274714352933185973682263889551184325217371848949017879385779482520680721784138568807156430769332053204456648683537048027517580045726876656420713300439404901361629095372056497989152077773506860477699098353296607248947493608860183935151399176359897119670310251896697395723536522512363132811434435423093152096323635689600710072072663681455277290357882279723990656075856876989957063212705989281822590352617551443505102069269686382631623778857415876487989361331245924738667934064236876041885610137631939531731059572077210494767971599196475822031533851254069212892514256717971558048652071857331257466966992253727298508829855218611033146375431002897816837705925036533827330043223072701991927505080663044115459125026792149654813129807983420474977600827862233873418370592189429550811802810652433312976169557931606061505704692536291051124781896869612462023892903609487263522929478204104441570637273026704326627315534825939499337041980974470325373199707361907669764781830560092732880306038112934000338675863954646086501040107803488251099324548465053733311583451701425357117433417406965356643075940755161603673870798475666537803264900007628026423999992282297687184470313728269337591803968206348078304422354409267787737675655263298133505119402575678556682326578654719856767612690630886932080557965727208016001178095301298058498339996407556262273208395415382559399122937434834255662847650100182600878863259639995692702286578891884481058494375266455143129392757313929447496111387539550010119261241323847450911695815293452637741552685927134457702109681919402339311190952741170717043872842167148961119446388250302126758272540652174856300244105534811388086266295114966796831236788418515822258808305988886246103849077297626533326111037475100839486429082055639738940130551535338848137224770931379151166521326753653752685849036388532067006511350542842535609151682246069899395604279750758791334950167606824816182558482896991049625473949708481683206874327802327642380068846394707120434915063254614118384613933202688992959619369113623506648681915055103975176024302761576795227237083816779245538198149008357162584651130572144212500943347757660876179527132752739673655386289239465743906903797094965211869340542025530596872249231477615750280730737470631611286378902589471128178546854879839980119707957574026267266010521890993815190418084856849675594183045891443290741776334837482763906497943981840876365317484616282006458255809951659757963444430644567386357055784516847051219894352892390356441488528321946748523009088964356450194285211413077017693227558684058950871167403202715563729494895017107306958052587706990509851724385601931270460066816686132718218417429671172987196111674948184513639521729778922736796850919270770081493505648046837642378181594390093862496315750145979283275660843874843104927566513573584177692451245645428342344289265288129757466013977740006790768394102392164884872514705668999700204494086598483538718774015726427591073681300065506762944151850879769854165635172516145922300641268619143495795709250849523225000989750782471450980352190708750580047507182246387349825175697668072455592742904708695508878835448429769868694570397378565790435175020908370841064451460826087856592690058294070762971750076297486852061678235318930542270068662216179079541820403402618605574688031178959058176136139747875520409974698355559102336270592877246945715849179312036642293242076439456308068485728736203517787737532961737711419489271372233524788664056654337415083856761924325437823602788987809157635176188156363507909293968292095296576769621648570841519805981561137163925680186783475211842525842665140408940898561817309872024383585330761118400201289301152017472975188258807372372290038605669723087525785903386834273058986699322420868568060687241452770078977785740511118464675912897595529637070807204685217867539817214139061191317678278167419917923452176146058834065553183726523959549004535025857435172717018578131640871395292237873173139733506946397175251109100911762768328703186002153961611699442604642153254121370502296907738816879544731139166407754458015016838395203183493899490064679093106913927431710487046568351984089260714511324450800281397102480791249820468106651209262044749070335429412628698918198656481540216340170537755038587501118406419514631090371776775466399776664828004025690692781571350940943791532293878009634082785627760145704864675236658316659699926262355316794952585448245327665515002510722428083250756029402596230847845115386680679428461505506405934481126564433829023899926583970413571600072806952903714819959198384395770493294241584833829162802116976870990027994761135469971796497413134116821873786885907904264720680199677366384336276372397719601128519804535497723288507414927192539370258005253817202185602498571051399723994461911701002044370622543177963012800217391140728797575845624246634547042735625446101152921801857425437700303927500934634237281048226911511977785053208504136417759211842776038770916765913359187094829859820514673113887900632399193950840011759701439534898307479003180520654008903387807787350755832721875632121963508874202981224532691497062098222299048906037323189181757929379169434685391229838131405869610775887805113369849710546851485948688559955184571844216339942017338592828163542819215790056515094435374381242021505848555692971456519017216153740090353498551848899724938467710661459649268331938727171899078080969572673019150558856288760291862682755483245073096351802597962895502777584234184127965704674706901302327860023111400284284895263661891819678571843432926143591659480533043283849783155444319391244493917667480275481341506429117775242101415842833574878921916546226904502968620138329234917962585813958590980504000773650549177147759122081867603931230455258362290558697636913579736103023028376758747279859085266681133438359824718318762554040820081529079831825000882788595017598082097275157356278766289742791134886036494297135784887702171508741231478716915259927511479196527520404364640391969774989876325126686629352161289115769277418506145792076730797806135213521062365714323877479580837900909856494724464582795275156507446935224704467133779998474896906901686395629690607407182385638596555041720674016214911446131207918774716789355694903285206083777696221646003150299113589538934343554470747796120292241103579005916305126770780751864894670018271746895017741290265484536781667943414495648158147270679676842725678628818059821557444885040768942103601510680517165013971191733760064353474713843031497631794205297843154694817017712749545819626075311571086511077682860852069473100410068649601879668989353567273771913452941028326164999739513540115844624804368052759225918943594324778397060239405429322283403252584369229229464054242371759060229560594365905731784070242448355686250028844214116335808122392130328979435211735105329438381420517222576007236647007468011736611770545556997286455836210842415023205956397893908727790193734259588868214654739037461710093181210851289962633334500920280823631367662010752155629013413498827931705547557160448921899896077580067121606157912057388516840902180581732412642509164287669916151961752547196371126151630814826570605497342941102488046782634527980525261296897187758298901064426009910703075858095923269984675084982549209675818617777995328712587451672192973698494966397200120051948487833265038468085407230156929639630592149783704948623436626463862396513151444596395013033395761291615500581417204347520049737145514840843276739037630560440884853684860242423601617643810007729564297384134137273952985751370034794722370548025011107139424823113233327852081241847985011993089304501625194141124973765431519142829624469136787349823909532603573877825142279946624763588563595705294007150842216775307650338291139902856508558791317767663370723676253614622224836042046693824064205227327637779655752213095528419612043066666620935554364742707961153653856486639776472686872386916415944891004863550311188769106626676075352619076720604407660103334435545234787077737290215283826704739546180888318142964342237856922882574808876715289955776986162266585916092485578067529365591600616022937470368675340023209516997760930551142998673243847521858720869388865940662490090843322670650915049643878832828487964478097096163588261335109125552306369290373633457894171426188855343428983987277133757970921181954098897889811258136092109586347664159512725593958728139119350357153237849261776152586320208298214072912647631585553982864657944109726028299229929560453642836480144701295692013804733346618380597874259640636966863735080748785584340347448908707493461660881721702842314134075292373954959901563915066627582445010889701937388717946417499748350377795135307246998225881028254384112389553906882175182973869203820178661145471229145377027092263278734053890870153704221188816626206175965956959884686424882943108379327292951665953006398266426988373315096935228427358586250102906513445622901707623236944119274980296629476896990733103791481580568561628681865964182090539215267974321633102223725469963537354466415744326333553314237452952615351086761503577363874442349722980239960538221166795993897209685055106484265948288609837004170660478681774548821754381433953737830555934872963366986966245865248282877732945597202633592243705418760753823560433568616248757642681012489117592773238010220066425204734323498543993346879805995532426178497106028668131962194313413323705472916874210509890593442327316209286365354856818779478944484889639915469528811383468686738332720776482085992397456171353151993702574600467512342695242359375557961517697543802838090747611573664630126718754688761242468115005352586106781218450712931347522953566131974342434289411146167724515758174016144993231117984040755933912312331422538847718480034997292523958228118818618760335855697708058436280093843974800073604312178533180568260695049729510298637259765416281262608416946186634009492233537078507142223195447631857292191990757315286670097845949893153919814647146015617524154239453696760890788372439798856551315442575160118596947444712330216472814243405035009535013156012856077913473430435033371094746463075448827237868462489409596429167621367748173505722238016215819254395534637517338059339234310227270292737923253869977931692821768796811615006098610176873960185143127744101614802461222767320950739633175646491700512453530515138865825346953537864941321599091618399541081391917272301451020379609688681219988682719708496346097091134691316452158486342515795433541045624525386258406658163358815589290069735284517830561249933466693441815170754541430487470876119558004745921489098076243509837498650884250755679532090884278694046620346582648084696052765516089617309269512194147248868405396161668794999684235665862763068549284306371745885464229751074623747254751757663829807462590281185919020957485284890210640542285713613817935717197774997766122495199392757976351269871782513412487620663381540738198816645263488239142913435397291850934288869995538696470793010316326285880164772364073274567453814584835146720924867515842336764000980111696741894787264324996242731066757089452984622161417878804794753893826327511443963158738365132834187495418525044619610590320106985417915694249502553017787545350288302938410600940491777746203481680739872465281390763149362934233765031620942298105594412923116536193121017699477875457268652214326868868344197498370758113073540989275967104718126392828501822121029303674724227758541297814586710700034116194734536825096346076665802635587328326522177461082510966122161513048674088960532687287108686858483460229671055481615769361440852537108531772747659843471053574641061309783347751980474905685768480990972130868670116344216324630908774870186202471928612931158230127973013702156942628541540516387142172061422392743833582160917814264658292821187347419890139547014711175420580716024170883244102264005684413124977709742747960772433033832331522535555980459128487693358528222876912476595969517858175677424641049429565507126730958231821106816519838474287493736295514542734539690587826249733313936891209288065754006527563121169089792449454314738751009035128054930791078541460573140195171308152624098462680404257014439056345102438878359158829397979563624524132963828065519246231889416861365219757241757871746326861692564201135934197892629278011966652465419153956531245543781004943296565709821510925980491509180601793316178092200762146268668845779645941691302028811235280838609732932935784261144640137644919534018332531422708414665598942683624035047370523537583776273924461126169823091328395596464353640180133573344341254675108425124413651460421811713305755034520987416509550465358770593091826328123129127944495360491041990579515615168659174063911024108724060197207579741048000080088479663942708293141734606743564569202686851477537472973155196652836679582241367076566277838416066911461708605019005792484037566156037149275809444062750544762441971353207200497053845760230104234107513463076848927352198409577298279777824185382959709750591740159828526660556860622947973422536819505004171514049179217552556581736601491817768804540284888713123028045575524216972443835491138576024307304778100587552734244956428067428972604124852349726140470293265311395075236088870096651003421694044909904757422288979954059316658494788064671980605278976353109306545520850676520007939797579595755129843263312315161704050744047564688705592285874583390904737885639237932071127014230576797249344583176834240145799674833617808454950065757700378137103653870570859020968227839657527550581508828461481035950879849580855911771420433979435669441382519613171799732090318954392668878884474773262567403205439148883808118383035672733303457104132385850892020002946796310436819848845704555827412885278557897938629527146305555946248080836100221730156639661139982775699266955568671360407531565748941857150048076157717265872426290266809592280368823006257888831345749182449247482086434984609385223167532056631151165972686851346312131154328834509380553430019206997138414580228311799200731941740533591708378116760321550518602436659545469156663837623362485776622671245200505272423810847290599068859048332246228518605372395044829495308542996079097351424026443124424657531507746970685992445267515949822384560275710298029649794585658428751570391190174166204931441477401907058631519993896095699844855254712425741719373211430623710845019058240477687987948967310789464846109714382210367789073892214561197683512013025738981490451061868802696059757943579472617621482955609830477352652528122185201997916228707046196455982675376318961386576251754277906893727329496234586501351316954362297106440982523826943111073385290987137351594773320272518119227208961737191526378906278726936949427206433107613726415648267952601226819281000262654236622933375091384890576377574760209403361172848305552975146586575140132987970257829897737204971890110133348319533300415587491209585246953510211305366780297408825004197915690934440719542915767939419985441839275824097661162623668265092742834890266579407952607114038991404422190806175960289775745107175534402959238729433688820936268789769154127287353319427490164815192497581943261216942131238449493004769462518240346955379665222717878094812029058433564431727541972061275134974216782016545843080088775404773465269355789253937046858182228103413991768940873993472101855772868207620011665074806899761899604437022706784156746921033099264484976232426169058045018077275995318694247912362660277136978051585817536569626058515265113430483231801914467581305602971826716268216137263899550066062209760611142273173274905291104019512575749695338840410429752996864509046015670258258870356247491595793890570979617403897840379720031877944961077594491425311344957618559964832738389635683171458770552870406385143717595145088556254597882517437462997157594534427262353677574297494198889878643300606229562024514819122795878319174469464205791075409820642057705088769203699849714399944188570092074182866635915224393424371151684120387732796112229975288692057283423861029434814309381232074957112464604837713241735183192722077670605840371095580686724882531499743446345402192675461011872370433379784740146916477442030575750832908291950569557896360102466318682325195165080063646753769363922334937207032558760566919445527192715745783582584745735643192408364108193269965370832862178611060437953122744395712479101168248351583308047611860701253631290779076413314966979624897992467679097630853011980619116073800564353884494696906437492693997434475977083851440799783230028943172282076941759463869579450391147931942708638806836438583717144086678819468311097503710363631445459323872443911545819360159080365679742034661687601554382851286594939339471092287839470945580227980987292649624128005498548726309131496992223202594659112437672498368230243566377566491165006555893820090362601102674352778906549868762616498624966386142101197804068527117392178088127806806751713736160102381913300243820766438316076643072636635528285474346812925875545952401012833385788157504102692271054021099667129485877040966019583063303761182829619344570080211137462963676632983256061517644408587148241585853064955158682958129125371259030704908981739586740090307375721879030681135738856892261356326698338695688701908565846235632223563270468277093308112191364992928436849008939392234441882677859817413284450694881847325978129431800983893785897554477546138565766170882840761005836274044761265918861151989422820603246241111972335543536265711412786711367781074804483292686003540015971419414500528357553878048269625155347543012168380757204310043790969629768623474505356545835210344497332319666380008364886870985277195191142332712175824247095835336372195649125125397283308323709452186803461174613832763524850618957925314271255512070264575361273539689111375013128646749528122317980950759355782433908389575889127763422880198612710763354773344624287778565958734231302979580114428160808055192531694301610291307689728166404346647359424055930725817682642531654424237142114894060547739918085857014566326666053790224512238079750389594453525804140601972952882474754648332178946727360292836506364635697578161167238717294063183190221662216528160118848153453219635473358955157083992268090252253590871254503388437046036410830649551757348921422607847135895038364673446635727162874849427793310388093983514964614898381677798921357368141129684154835055876604734171936996459987489322447784258577775878533602292435945930651189001477848635623318808919656781831473958511608351060995144490675437763303050816671884840329109730958311854645509551702544197335368227476922050008273381226190175850464495310689963402042649237032221402218503144490472211401586605689965751027031157714471418945727322488835530265120247881658166368778133734256254222436746931949455124947592616612231326784614953247697822882002887068808369926566984630203695953678019376065928183380318599673008320951599529774312601786721199386486529112168067292019230351644623054886400395354526960539450571452490699085027165961343216473039988129613703098879241815736554225406627888426155346047811447949590466676231569443902859495196489681242753779063716234691860653316914785985272319708307230897912678402411191975017001791416413535308277081693921311465886804551928179392146993899941401268062468694360018832254855981290482103092886908968263361667087901958200590940069648545132265906281994249981371781073693124685158537536531937323238031413433584292475887971896212130951838284925068043960628263877652374302228275867885447454113453017544346109567755812645081035395250957736599574287950755925317664278768504865203065269498936391873983937282198200127222592594719828715669600303158222961632538652835536034917216558723629496959640281018234068819872713388496302794682157505264328837016560736604546125820905945927310949260534034876910797476394678574541570404804822593829838192292367159808902660861540075907295012907151129082814720664760676685475801581310370035810282489972327043124380055797729340179659768122328963463292955354732536857759498118222425678726650322537248562831886815298306900662997897373319025097185150954088333651390322303874992796188143899322203522672715685816534213571844886761997296726975046330035441750757614677188919609478746143304176405672173514312590883640148190058587961410344455169737313360898899256184281090914051327462533618338772164044931001690665456596525233857041870795845942242568344943853566392117392823075211211739056680940952543330229433371180572371338920427250233338825502229615634761350580402648886847995245620317202609745648125424632254740662926852254521576216938037712197535246852535628668382308550350224055012966928994202513162920008216325339708790337094697865678302335166284262566311451124398624596729005040901559714210003509369826363519820487601388661398849257178094264935530638652510179852460289623704378953219177264300429277982181426463252031189197852216691390114071954688785149833662533215899348721764618675915811575748383968499096254075226083912172714305735011815430732854215276841780506700763728013845977491290812162857804875218455193554922111800505650788229114271930032139088283980050267275773417285106769918822699915829970029619694187195452593098243510962169583060392953684018277353917375497845086529749880570886387524363219686107360370197392392239029641799253898523399180630578967416676201385215263349666823842608609139385674216782417272054609526463586026141344213501204372272076466610046968744070246435836366980121079237494197379295340241155938674604385113996271423493363595918819338322196064904242867107936566815452637400046307893036830087012263866837031083664013005878615390931483301422250886629298756177057979599522171833366554650610320011138049036511346349607216332818012345136809204789660063946132523350397793746059308083077215885192231738040573084881889495303523174981643264767940383364355551406799227130854729427078430401158546237308210415120312405569329383619469989960705950989800466238519947122655543754994485213332515899250732544417233125713089898105527017035751559363518382590839852580421769876296089697027749606137532204136028867277691373069277577311626112111828865936565259998413808392570354398650840388854505080048221471945634177989583080955852291793294585406429394007621630077150518901814076924001527137289169316412754047266230025501665320523661325741827737934167512526183597428540920952334169515420713566401853039295672591852480952290324000696146725818200375162852386223318376860091516239857993341013342225119518029441143800555148636166316372187963768156282914496649307501722372943190402571684273375226238077334577328501075080276874589447545584465105838296486255357135893818276380951465596782090386877227249109743969514691563233885892949561220202204123558475004473609414914938123840520386132886345335287087462104828432530988085876422521950492337665697475538419178849818155961554309951540581054446474528554682331656447993130516229978034750481021859305057157703379014165613567564490137593789229589356491177485063046441690667340934665787688128426122035740648300867135054323172558322966131571404230118938702028242914608123019112461197754385183065969762486293080370257634436003518832144568841547479774284152739827767067023371781522114261308513337959554409787370549309209931741809719015940769309089103877907024479295631626155794046644205678582110189030630048528394420621871506083921248137160934699394555547848529451092385836680378099663530969356484117532642389088944315218101405409223943243642556992138332791462622136512113711207755809224326898825137412849917077302179244147262376524460180717860191179150552338888931287455186743231948436680940680722447009948218638281222166353096004510288916194788607397401355094744299905635433509273691624459441344018436869073052557262717049580676699923658181533520093141678621495203386670441622559854657039037112871828835282953863193281014150100601492301774985727579803369272792997845016315122869594503492159778330832843023553688420639283002437162098852664605577327673395022016571863905761379628750789043591461911115144398537150403842126000230690170692445498413368127579178588454804746769596969681879997344676376784232868201477104982213065574512337265958738224665207217680280387618583123825187993171927176921783227473089042822720599569662151421473446351639756180044106813119992903257310005726202369347558625989388137293751281554686804424607577437248230227145973402419755645693029423793461627080860653920901273854667067319885176782533120700931569461976746849446135496938023927735858004244072853702963061809141915296606622301305826667568260729172672285152860893868454386123899857435131505908833848746205194867039626524015707070866726909156732633829767643717014817952084258221959686820880736323329432678850305638324193190982313453651835064830656914121209794428939640096553340439237210356730279045254160684531218396571602569206355846986376248093879941065872132667856833667428290549558255950158379724994464353795259825217388420486433869238721605488401481387708015544007607079837051450207947345958726186755965949443174316960555940240989922589131636162701837975530015649989364409887944011413450669501990155868102078604827619543962828655762106503697454421845650322254931220738125781633081174388070021740041619899926409009173978259045881337999286867165410839232822400117851793731170480731072324466352384864621066878707186127790618290339046467760047091594215630812119535042840348492776721300125325087122083201894576903162697088635182501114307242422791800662359175108766326026992472383228486308044775507076870574352708385363382514770779256403041031824289624162742963213120772345247044729855463789716895034098447881989516467198824578668813058990005963896796840209512713767312465160015579262813314944472173863426592085186493711037566286949654422078452288104204949936116266792597032425164957796665954533096309976523789836250277138365230826569892900493304006292330113384232454058313220801905334904778427539021091685262951099564698992925754174449265132736514361235375394196611026125171523942418200360792575446193118292009997247037100330278860015220225351636535194026487799953295548674057044147020520628115908602221318891348613617389410599831830827786739733290911127580832644870774148727425997968946865519001582051446967594746967959155150630244208556167870247722335641809322232745751681909286605393805893474216294680888053331016927044785171797716022795672704564347187025809069093841714188539673438010784240288981264488963592314628391705304309668809149806658642956329035974389657526989534561893096555173205983081189636845831348035499315418198753291494233861338409791896475004539916181531084339905827099268821935556378290464412396137073853452447524907749048040046552033906339010269447374448804539612415907193581257054230557688788291087417059808736643863844631661004445007267943372111223926716152289698664877711437060326477124157176410592812227682102036911248597705611171861085707715157332797537891613586555747875091469164471684099686843898596288457046271229911274540973253700988623419000111630818644265637583855084225296913550997508952103213043627374667029358318223483273680370983650366236646708344809897645431634103975086185903053385760663300539956557938989402140165937492290218250252413790199379149029785075011288851394425478280253644784478376270035110251534459326942106816740692721217263439017226334075959578991894728470849347903149041164537128243686359371922052037474832819913035590788308465245244920970341114486864765225688738088689151668713878963720461440997865307823288866820606799302798008456923381476624229906215939960149305843293319396760128238760681818937551364346038854041405352346724507655739197396942866174412551079257366168906642152218881136848297365754454993866333401986929474672043398077926205300677403850770581431276734057292537971435413055401247606540731620141232101642991948035799800760178496206247876496661639787401158918600710150112966763519551377977935969296809285740318930808691043984419332107528158495077337783192698797800539397249008581837757370984174059022890494499835204741591050632846839769702885656878358511609218425989351167290956122092991171339782590194209192578751718799931546965003057719814344081675658235960579629056495954003969613590147456438173540348367077833597562120175070404882740269574662111481960278534366377319281536203870696231922118212814948050659754257483768245240100943465837738092645412500017652073222586088693344602663798368264807282377641110124656753845738891521321963868774951361908554227012911970817350981093705000144700929692377799382343406285366069285801652803180934876984456179955433103438095266157872526244513092801541153094856493100455053378096352310057556712630313576045185435066498018187750171492389309743020993231910046798386450205782832421527088385139429936155468716446468658667277287160945761010297463316604054060179655766772703959423852358973144475331642654678658748840084836328979195443844095597974087249446345507553316520597884285686904317046129694977827976648475898114873086732437942169372363173897981883286009182832470656507352254919180243174811184779347553800864497194965655303565151977976723032796023528043733600972299626006880295662141355858298160712970660335887290001046802936483392683186091035626421904134425434228760681339755261669757322509479390260332600376085103654225751662868409990826716447536631761553309751305061675716896225949486977094026277276514827323996326479233320004535042358654415527199919213595554850937885638743260838500717391197443868927402161887228289808412657925599151178822612299401396853657843463679203274811962322123532478362573148212784132307548898681861999660363364565457455761927154062128003954456816301088053490820365839369877041723897968631891910650556558823658879093086915691015616780380203945916864168664526037586770319811005945170465193447359571341181797336019275679904707286172949730219898576202106070757575032470691706058110447649550483221157438005604283908820277735722201405337138621010872488802102938927276335680708121352586995355968065476700666664674778983319334350824573182163799007233489403508956396617767708362062241415749872677551806552418764157249725929821493164827550702678029684928885158106702174130010976393939886924725190811285861972366480103899044731443855663697045637056114957893036261271434379927678608914793259056828151046206988443682035214023473750759246811045341999771600454658927407065578599141326220790274190750475430461864582068373732849915366940790769343747368502109454557943321495317433379521343544162048612781100229153664588048228789314806945687745569387005799219342772004575265740615555546880217359856959167959544755680537752259207543049767519037089439483192334394390904900898174565922866208074440788505154646237289300746362855543589703419069323538689341825362550857903415171678432251679520778775644960978372858501785030210790139212016339162840920058734088960372627882407227448411044969438180711795167584851201031792760783825679398347812987206724033228149156084887260361831541029392477844400233188125186162940102152698787424446177810508314973920379745553131037641636671683235919580894549228302870284955235868153211032923902436548788452829413103184561782246315372304970932106867425193506711643055796593178632874437376646123482605183699037344862122131708555835643696695716253300834217798358954044834027241048698536034911154647002841264813341385786712322684644141859756093686467931785939124362406999204123948361806278514216505341303477360407186960910501246242536832151215679632013087376391596587454483195334070754289910352226670797063914024735786952647656728008076291689639879759021564495547774959935032937219635627240623597877297563057412030718468349935177018348578814048950746333183404391958425293230517579101061751748190903015654620827152064632868427850283142230815891734668504180475748827676278557932749352485780415189550818042756116999746197075494168353485026033629997215497893993222366754247303900834080236709698837516460400127389300937095247875607321799345584007301779993230328289396086488058409449692221205116253966411976426485430656844795837928422201010954183315459077397567959915130092605862655712782756500598160800798077678603931217680527712724170140054725393600803755568207701521343835370730609045325154370490815350232940960204754154583956844968167735723738875843708605362647477624477593475850055977365321559893277792133149428130717260139395972642891013160488144152716560312179600942710129681292964285136405204984100749410459827392934408679899388237463129145085399631711687195840506164327619195804680568130095510854113603969546433765073793855037882771079415593893953290237666727984657288331367944805233822003300375771373822861852539585711762484188224676230897785802194622716886178024274170847208210818538158824375278047638134774354992254237084333968982599128552981503228064054367454826262796836652749108468535177016649268127803804096661255489086284266122085998186087849328740630838087304450391158286349534900847955666073026472565534611849325781155962937260337947777875338831379397983231350177528993522197213797110180620180768303803835542124608546885653689358813949689110885973241649055006002634929651835353637483482667938427638219510395584636626120823488067145997046940066233057410431384381975239106414135668448248268537522753987967675252262942875186223212748713156563234498461637340450662042557568256697922343248860884045156282665871351468152199104265064233424763793559770301143414115376156446436799323757220339322020992648861851221524369903759332223806824024862276283684071494575135679685350439967458592324315327262375923783779768538588965165723313731094091038030076238220514590068492697632329437090130780368855044337662788220017724213108647540804442695759643990070216331849557561488891787025667885041032674384087526827433611601437841907052706002939724205403798140272770598972113786258870072387219554036770467572113027662667103333271069078468622575322029563678334236397633654063581424411317255141403888843941319799568533920736307890545491340143781769568994213606373893297684086118942552775224573491066157071220681054981447691722952803085910258306322040070028234846377518572360618687432802566186456468331940300244318547754522302378276635540262354615492379774322263983718677232426942786571645685949908978188664073218402219432261334692980635710049511248842542388592158492023443202922117755259784799915765897505348313030874719038152072329363234370007263564140515024682498590858635402685620057001535092310124875035391540746690295110027372549023680531034996711215481829789436268933316288491571389831079060228401019048952155825882804775360069877866760681896406098945654331251004721581918076954605600019119759568047552608035128108189016099927537595863640716931400252749182542864541745735395399887063882287057545410287996437033376629109042014657235752451420485618086476570504747647196380734073365190577392857336895711207396641708845958456033988152726304424832641266559502957112647869415075839304335540512251963468214388041842860855419088038545836520096381211350568560900486111635558293863926636627053285248852679013344292246452837663499465703769568184613949675590978705894456916027012453589777880977504268367438040075073718314865543556091567024125311173097527561259156716600170142528485592285356944581060768915412816108729109232023297471160565409106847117067148602440404016365882444785044605322265745877472552514204671834901644963617072058396489640215146262054718020626134159319605004151752084123869595956711436501006456704266611512322501544336744103836895895489677626564095985820487643867194998200340135699338557321032596744423690770970517894592447859841193121163657719928041230088729176385194036403551117496409654471821590716400823796043576126298074801692033924826627006234076521513463457632244541187736853117407408022984424151648371075033492913668565466345690275190666899268900284373869305743087946475842365321071357934589223156092234889268052501239302047122636258561451254761884800532799026093419814932724862605841466037556913156428533845254715294924679800663025485714280113775538904122290364944628869663946400969526306856674581686044391944856263505121250467647372417045169361462917583818229185402311977720258664773409513287215537618597900360563354537045599806646580100567577460241159311666242714553884338060029609456788103805584090345334880543709890125690335419512035228032328458184130004182548261407274333015842400422049573441311082686552399846888776236266272711027992354697263143798084144407507387614434223868434166485895014827971960542543563331496026083869845449372351060920562944317866799960460894376622892948312587375774315482906085582156807421222478920144923284467113907956948362649545494774584874643628824157526760303098533019085986691717829393166096640857769990323476081716186146538582077669592406238722620929421621321307947437599951457274219719135781188010177929960845235739134332590462565580934821601961032414092662280897676442893380354410553307307793772652554445081284915992592443483868004427645043074105697085898592400303653539040677172140536923545020715920138226484801946647079140821731938106527774312589793186989072349018182525569421016614275493215070175309258669975912520261993095559025376538017712648138399907528984919709385294931116431460857970924061536561208155842194744000064993427484024850844618363505577571807140843058900617437350474326475202584458191934450777186844038263971716315139845647263741876214215015273403741601194312185478421461188091334716408189506988359074188375071774842515819793474069039263650823041837876475329997339750502684313307943834130655927754808556670525117442432831819677602761762008676498772663857598253142308954600031608908163284888347810398638124179935826336061530132440932226400771268514727682344075337992816276561339120985681292700450228060644058267537097003089957680116943034852876977261368047169822991723887537861750427754406023570428984100441294211495442370377683834255797022264712890607468832643242926555691223920924846510020776088953108522116278352766444164902917100018910738815181291402630312228268831174111754466480030899642600417558293689282124220723952263273643032564720213698822207150002808293056550521607625343000836845202790604482268020750337295283803625880484183560271069406722146518003625730721635475322973787955978653976410968517024054896268476210480303608755009630939868041411523740932210125272228888487147487849181886434057358674771413520354979094286916621049206596443982392520866048223725431296693632227723623946828957394054710339939231710690230752020755947593979113838928269226226210034500684820350270703946558004387489139464309473814474368822508030718502127520100115522457566242720335761557426304286608970043118890866038727053773420400633653954903005846261980852699323855024792494504471701140075908656191099323770903377561558890750893115858625891459978566323789345573928787582568539146668923000903414020923027205685179302234412467850719782539083698765834282866084951112636114466726721748142101534799614303240842827197046224120236854189124041743034993335867437251542052577386593687690328163371054629686327409476074175288769126468010297561701363703370031124941589579904457994454441115208737973771700156232820372654725849002665582364757900607351028479129004502579274525377084849209990363238735109176082202861810377760711355096448795360249683582036502897506906137571451366809208864975982257825817123224432261748178493798335770304817902239193584288881776329513096579605658463653344259691024856340265930334346604461872569501830030373338064404765758585307943143408722228491099220477585723605963532662963686840059083317728891642792092204553773094166374914084686432651866664437979626513627276279688771701600630880423150119038918764829436298293573886940774874821877478549799953643034611008904323758548515691466914863039835882248308846510228718320954974797730381833724407312196166437358771538924060050726299503191609484122042150420328057238734061014495634431059236180077100043218521864627411064676381214615063712038579743528858865040384342011102913555238930110083722015948361444374545625630473080951845135951584835784291940252474895497111171660547291829832014314666600856972726093842722230707524787892947884621544009910231441332905097973774935401804918862663573019470539234292222509119286641027456598751813418030979053429041030212062055941690164109158071845705882252732854579262014576087682302677206007970151470961860357164487774156174934225121260152023082159568448148110281344785277440137762319301461585784881804703307843114901120206560950411054206017298334565835579495773276900730759390486371955091251916912289984970311877326422419438353206996987115829574588958515522947272783482554285420542240195544603389827894541727284422691508484169545417754420046290653087963318976028831477587581361429873739770801331622151579182277274052090738423829939054812176219832792182957953957026507434757557929954970028245954164099489724662009411172492023680440240186471187644904399341004046950707928205525797470440711201871364430874941829255255688368471994689537187005199322208633898089293264405496992806085770846487176459406809978584965931119176518349130884286564334827537314934948783147890208307390599182265857453247028969064804302589899709105722210676415701478478024005755250330662952341346628188829330157710410569781939290367997508919835458779382856902451447677842463131371567300165663595923219611694525808227934766965950357935256522726478430424954556932432645033228681237764081532199034568760238899955451200054884331526876622186978641884389999439045478672476393377567185857681994514936522738648254910956961407632608849158460326730220589171006059658301394850785933736871883518293141087013862431777290637724374098978353600180171099514797881461875500043957589247898779241151196612955836833979933063255329288462438715100869512153083375638210315905661159808835251638665074657333202360040994592515015056764768199271919350405978845126928369771712798352904462732529879472911257940302522161758237351444366772629933871848009225118891573037258688527226352612228045410257618049160181260147708036241776023499395822249968434059059564225692229446569427867796010209176109357765065516328973129409686961407704396990325468338721468227632593224803614970424658001423227837094530172919937196829227227422680583775404118214916437422847750687081643606819838952983372726707729527438876300352260638563209165653919889818385330716928344819450254978650869464174845732429902082921123513683488078470134731646552187198735339122490900964132406535646233533974267491679595196018235217510714941417671013106716444279558079131325086442798338610828738201435646023705587096014118838416206223796911066823740703960248740607336427695077803312340280444587096486123958514815409786746982718934477927944988597501346287215029838564127408068687134329429406157974117634255479750667424397533062727119959092292920040973504003769874040475564465339886301978515559600969926143621120892577693230671704246439785335186287975439948917667102083598030736980885726625459316026309174207644647186370886581651692681688394805457923436789405297056606377306090884013479407328643592102345802533930028512260281988426419988784542820723873705949742635867796941957886122631102516288625239952717369808126369382017688134438667458759378057881830377399538182442532952891361676952742090657609679204650997759405659129727121834402969511930820336995580811241639587775104217299058874758527708251159492235585358445498002460454983713567230480125077987483704973396574580188959932920798203060021925514221095133288271032633430938225804849910433799177743362637770001703246013850338317564019260164745382581872138134312871451981254899545086101998296910928309282201133189573512539307747314581346968593465097064670869796763520429697218712362200093292274831751669799329872827705115140189481646418199600763903903129392152662661733329137344004081249245103869007748958094869932436328475443742563605297146565661420793302544335175493967664964416831588287255784551647598062495223448195691987989474975874294193320644929203015240348046684853876285799276181220078104655733365961377874023993015074224745543958815923640076014557683092530008928870611039173953590673727461223059727053547238413370991042043602002404804879672470455350230754542821984690678577065073846336193155838316322646712024570912552115842440525645994971866384838371139956806152149971360480357954028004354627430753503292540981445258309679930559093958433215614594900389831239114387479455181064198809528695013455696391533463758028124779782373905961485139237792075030674224806884762741781426388764636236777037163172040564741114013806425619806490271781218853375804538461680726464401614409835041788479728194182414725246352181541821193062572306200184562023929021495750412297916453352827485519716493896567845607841043176496222088408107012412139814756352762225773834067951905128340585364243546048887721640148667199346438323186356752138178395494448330211696346746769172550348903868009435922620401132015790131881487548551385559579867308736834387175174036432714468355124060676403566132838151016259531288348579460132006366759150739474239285122264920836721488229182543817994450903549687823219664307091995045698379512637973851205873084949949772780765563657237935623746995490087129699170308378794965034733248278259488219587198946860847506467566371158260674379316783028545777104657972292802598825838032893519527886699546556051915744458246539047656736854625909591236302742189239155731794074327821892965873344471121731008264435672937947675280127630431941468380662771531701027105855224162694944114245771416865475334338799905200381555965799083289886742861947659960589332161238182762568402864290960045309189634432558615394255362071065970099580322105650049859556354533408205185387156755629002946102830252560079884124679849451796381108011667585477185729354420689052559275534796869384359844491864158379025251852532238916643482092510188308452050063568478798893014632820224980954129988246039681790257565271674182655957470011938519458794001863338861915210699809199724568720077818503720156388981708308151085584164124406417623561225311033616837843033028699041065525830930792964226002691691693727145713894839056039734403028955202215120618336693298563329290950325917318569948712286730339899515606978765624889946785759851721305326355208736878082915654927421856921317117537196440102569828392681624583205380263979770267543417651762911087574291266826947033961776024809207910068048867937829681092577448879525106977306919866521940110834353591874513177592210287493429718044751410704199589269309392245583174547693287635567794148874339186754857174401005758707327605647941725182818047879614048358733222179306397605377839344790889829680865007455727958856421419242933296311284945209955686656430468029720139825544602810698658050744926946656504940072673954577144673204712757081467871430417318200573054111412672568801196682828452610825104373925051243945984287732616959491406818677614984318537740122346258010907987323050161063939026945013824006068153558289180142257681624791091696896073340404411409134317592680670561145940969281179125669873814319305983753415864325652904662854680991305583110154042234038798369248501403253419681509025105081432126566478972126201383474214010143523846218002199697081329194319281785109797283480548087645777571885215520850380708815151624189136295240541852556792574688535678336925023640162686964955937578819083404328569491143039735986252540138532176980023738133477682216520496010373711778889590077571386947866693753933828284606862850555295137105768803115301117105142028268861316128450818918449247147773762154146553911805954184949125747803156824653463577512917748739697346459625684435416567835304528397787877026967075086638126415138794868830141758789085245218007185647781056132294645751292702318289306035236956304472676139292231908615426628001731700894126998689075216808086170947314049062941642074347741044672154431731960431219718802466579933406750179718834646035416546954736506447957762519537761820424742811334974814918521743962756503033918450551180668268817861286366723596181417085098529868931161759314846970119327454170556937243231402939565683159165484729131948968485656977200621566814140161861761628911783513256203733558408129820569940619470221085833385674451420930406068579805341622394404114341877709005086795495782510774189031620171377202687235025044538990946207901437596974906137198204783601559785071974393825325578451398311501139654966522430674434818138960217416936868009078673709325746429315494132411454339888228085039052435733942247913763021969428828792156935351826756001425239489077992980009578825486442489423210868374556001947690716616836555940791250875422742693218735439660212732495915676923548932670767723679900013960099761451088845571473644617921516072993074307872784104908206884936803534679225570041620790280610241527338618066415992553617200458071427272633479564387036970486736633060438038087191744698185152251851414971916186838638027184909186287030786906828294597844001708043577069943365383347428427709662441455586097865062604653153785350873516181283488864335709351799703148541229529036112889304963798745647316684954900676105284254764445348220597570219366998886318990043208157521887810302199458190240263262828591316830677828869418755048763282268794009419738629385787728497976280867387463276995045254798977023156615047171765365350581214792504286386943002925407394546363894915350635299128876504464741304524048350714316658163872160880856254151854821560913201903840739745059742132647627152546470554914170778233779466828029632638339477336578856730757880698183057848513282271866706762455759451186679771589257115659189076570632300207530274533032451640388956594078738874054166829037968406829968102982307416479746099964268915626736742611599337067338793782923230260198491372547364783708628224443089751357815207244992537321300863254710602101467125564474258580689797031422157938150324408981493386129538503725594005244683875148780808737935091705379285821142747338305258747750182378264312159629791674627650143192651837247838701375558408984453078649883716741458096762359510607803793555154848136299092010997138001588814059995253434804230011740710350272627955508469926214649465605996190651604266179045181130893885003036464238912001949098235668016448359847878645550014128309866861581206877389729714173009469084367603452714159640394493799848725640454080726052554923582005222067486435297846012036136845555138340825178039766519751517350346862627519964761078601060695053584660434352925864473342479334151570641001275868236842194354291633173338584930169275097976788828157146641634197392713555347396589310253609147925715750648230730927832904154282621296759269019466861538076976134798976850930744895826866577082815095048781711412679096034072572799728516599355918071952133994221385866915715740472890174111661013078181418243095313403069932167739279178362965985029582397053430991555774909965682526593973799132983251704202603820999664214865776860893120780682153126660615253659832741114488775963264351720752282814081782832573404164233521881652527260730079720919611468295584038499634980218547823750071023087748404116094578881977559954243656604481803489097557905044005170869090371331938944299384707564821850971683664801027607321538669940862072581771961192005815726989534608602383552523565357954560016427185500246158621883430653980974862121754608226212030471704310404471812429159435360583284386489257038599254854894239821986365834066379685789951724131217241272257906318621848717105947443366684159684688380602693324477670786171618412590558427540182517133985942518159894555461385589522351109989265110824506262261717974052570535349164491107613620210755495193681204134653558675307395434196027381145025119709008010756153740325352841555687841941449797506118056852464584754996198462973681500112626018686787137948516128577287472505509413824312195982641308642047694567037917097969407163024543403051312337277685132293854081017111587257907528731079175702867563872407598818944164782109573717300321988551462717569556231977057888830797473980891501457055113692761461025530832451887710113547220843549568474997698967520310990462435455968584467546187682060309067646995955647901211067618727928817460034669159564465414634372854602687550705552846217843173424528369700537291044999862583846328124659905257009688135660371447274644657488513130595857210132368320288156702512983871466192059994592658637529565177592172615146999873687044822108884928536224843778900233991739963218542550252393176880527671906151297163544232801708717834597137305712638509130507532064201328683026814023078033834203279423105083391245578337377700554791153556146082493624888756684902138837931585652826839175619759533654783638591703731822015584272493593887935943986358424955687122321048045111327297285031002018107051610251652695503314743771624524589390198117943188089600914578767158692955777450621996868423468848655465596151099049445231423722366457702229365750023260786392160297344857846828764867619563616048804546989586850617950708911795084599386580163330436562706298950907077920980417836808678558956123587901968564898276418466235329777466735427686245033745468886875745671166144443971165174804672932538572625015011596075516022644270313918251432292418013760434038923990314069712684537305163732763373287233678522202871501723426477898167631898676319977594660917624312935135039428893727195098612038184753470961016405229370697311480196482679905257415099542931992028724056617085974888148292135186189772869146814680752719668424838746202145377930479985318591721575401244612373672671206358328193218259152284314683208119330322815753295819737119100438359051223205024478455266280028464609780491054289067466363915302986458947069522098302517271648442767939620174695540251592393204647931719477122905717823777468040193404480072845039245304639314702604383135520411847975999869836708904357171026472435790175735654164189888050458608696954235403511793199961204604966597123063712514493995977955970340692927024172732660730599949001568987822392923485528359879132418171804472143923170326564608421233774018999698636003215935816593537507472041712806835785771492165680186002178125707885333343623408982594618948129853893092899486788911885089694236468304975735197833666570097859831680924361629966780719129132777939959536406039914438201734574547784422080199487433737311648781939138129745784841956522836270844394113171139015950432666877826828105939185245823606631141018935188755427298048038942701782559074117183283092098655141763093235153721573246597577642548528379586118474858341923127554169670742174675924524960842893332019855888461789499744563884351919429058560658229393288910928447194909973371118838123337282703276713241182283175913339561097023048797019042655343447259649619622201482294760096157108626639838804373761927487459487977602350857195057551006346730581384732251696642361804197389561921178510838185694741391341331468820829892237204763463771832750491688380983614039208469781075608424009184577503187807454240721782964256286644029115096224349945434672206473514428506398880712632551212528587519361716874650933734470236976384323732114940130030964202192015647717741299099209744805164657750055449076818680479350415176006573103625002631436879506971914382587891571500224767688290087928275933422939286106008639537455558060747232584515191542268020883560204103912644237525199807696114812082356242495859609774769935107498386126705125218512948455494099467039652722013986418072505017982199135716947597976088193710648739152381012816104031361882694038259089811910035912766418200501954440051535045544234736112412322846773274770196109669677318856512735996268899361381080258519220918207815219654828120615663577644736923912444956754987109720224290683476422155403901892284528231468239708501782989858584618800460030825700891756617523006172143174455695519958695697101105986850445080800040306454687366602718167171148796927855523505162741312808492232853517767994885136554897794209281885662453086524517261789408670320747658242045379128506092146775410256636753598396791854609965106108305273717609064413945010659085664086264137469347863567742649662604749189099194093706670862882197232914292939401861811083260935131067465046972176242199324256525362225552430153615700708913957830851729144362917465239236311323561302147788902001486689005738513504391577139911111247341911903451570584289941669165543504320575871066733023160147072957298919763313315131737951528252064696968061552177844873052281214785295804832289495901605315834202650943382881342273151436720416702012897602544221103337797861406437821183432606981430389428304096712370158645229816295911095093118804078068995675735293550817624391166756651456124473070618130404124405519349488228413854474382478063436570714088001515892699376773615307467798831278192995899373382414361626820325819373054649639764387074434937504347331152475190101356270779655975676701393765518108881981463123677067871699106850121122749491399806225598843718553605136593622624457926645484900614058671261386743868991023594017864867474442207831320437238976191550565895405687003633017262615175552277151258677321593052184140323006443257639344031341069239518453737195511798778219610671225772341936965074274985026597790941765767912580071891839710913749173517939607324686348438739876737375342223897542843210631009093008297255443718974526361776632627515705745103921012273676432184855692794185908343870705896024571275370864147029859414964953073218833830542689361928260507571418196621306402425861187959591996044200970755344076021509368717497428282817262800182354939704051977958539253788157346220058218129709194207425098481534603222343302384627982997624839944905204227882090504527918364230528934579215301407130854394387885099022535481895680115059800898014663647932704138117122571118859445161089986276669936043954175168355549345119235690050092553172723296586207052414575795994814406838082553520753841016533790645781489743485119351310645208087204216815019758467858439975415903983822597720659200253835544408072691718353584116213993941995692246655944232554204375204724082734279224348213854393245623304389309137649597849706104744134933748444158160315857129296943872589375892718850348331176605264357956877813499602784698358399068104552720659569206721862813053300031968816901807125835747435909367103764216522332848168126114142472879224089419202098363723563985244728429022451992241032434825074356281737285970636096768529069258513714459297622137637544433691815910766149509900091101965037011071132299759147506497050509719468985911510689083826162071247050374740819449784557632823857117720138973305367534705178008223564848393152509630856710086363289457212949442907778537582497989279729726945436639841533340391327494684921722301542161346748674724662990744856315214624325962813760510574318229803664276281115968875441570758620402426968482936280854620315858947986296488862272367184652684565259606015596997834782240894362592520012902812754243650490368197508984869593863946064447966515806893795182253096110602983023558697934900525123765879675705256503834286269523042933264932112973634530260127703409452001231531771307875289465304004167309982262550492895609602735879321655668465890408537703883069733774252437480627608741525905308771208383837244143707685305690475063897740220185733589390565868908210584499286151652743226931888354608296055575093924190465446372865932209800652831482974429408364326443774588601473593687554818940396567268848623543213360003906185846135488079678736395248867624604333846738474438461027556464856123118430267857782308180201845124283555901836659035171433182618069661693350283455819231356687262191404395590631622334148457742097253363249288999860787037621052254042575892257617611525002609342884174613371747258025986479571219503913111343294103780349035425222616733873378152406977246831758952695760115933554448057903557125074768909325180527778808457629977643763322541101168108625642048058422436002627894107165971963426526932292023411248442735524336194147116633023693064268595834930906434658044140591610547634505705328608294130145790653752463923236350088668206891903913748191016707533118101621268646046562487915698523027958029115164538857971584257328695412231886235726423588599235967197698150004238111991503331255451851593184476464185393194956683620122809762348217596522626449185072690961047230255291517712321511749736402658033253436415881548714323545946065860897837409097942112374601425770811825183733715784193142620576392760245060736148876152118667008786563393353980146519714178574203485914051209659710753121699140606506740180970227762874139816434857801374287049132540800710064209966700201322610201785017965925842119731517964357613166069013973870492772745358173418173197964861737413923682474793163231834828957925207867747877324646758639598586654960394087927442886874865343003998248960698539461947993761462532205944235978273103440928994756399271115848136067585545269733021431951559745597771850079258571608119397852301122515246036868069353757916104788374613447738413247851671869742876529854271943449682358721115587940144281294399402132532200662175326712510726315545898397040567430846540008023837295397440175378845842629855836955501231633858157848854913961785451753580585395657604682178737132806081251644878104385539520247299867284430653835228178100858456614441683159636315530895781196551425370457353330362529751169757141984006302098990047678222314381364636896179808720883841049116222992485892222369446651090305824890263266310558066750937500615314261067257588482304811362096195384607939320127239130755803317492757249868590107831805795315355043643788538331074728046917357796438000764423514916222325776439742842586970391892991124952192756033441754140252514908776488314114482240607054350023824545368639977504499014963761083278435453307773705362456805219806380413701790781887416934098011516450580483042149390263052716250158398309595214023623704421214514720207952043572963234472947871518496401114442993967025643201511058491026998132560351111844079807711009111184554840873356950965333794863023001579728061144781821959567121966744840123794716764707951557786707729613233947178233816214421649833117371142672587979302438618698786654700939149103578899367013177954951283440523143878550873232171894942754539410676689395479240301205664720510584686742493211379233254354934353993460642366070381805654091592093720714659111124503079733071774451941452763479462910087702273878852690123105924794169990216288254557713761930040979015460766051171482865388798010390828971195865917572594401634563014379627702461048395295044398394046422062859884963157122708092227253436504442999116073850120607703819070852272647539303320967738815757431158086600277618746308338201852943239097993632544479848486042212289389745826391214479069227187638678760878051483961154442886578211344171291801709959725379318613738818365517767827690129072990255289865185439532445658847317601942771048087209714491897309575833901693858095961487253605438794510861845255476981295600651889872330856016711273107368528677505596677272768868669181468532733391789459861614459405210860989755679828675314743752050477550581828144069323371072186845946819875249807656004564731488412802852048873737960400589009725345540983339001781388071025264975516193147375782806805586923568855277575876580280333301072707186647627584822665390514132213803944953676217538083696183542631960645431744639143077862300184378877030104635216004485917352987376065762663659882352557281598927813850853869159371780296691511637355411765913583327767570059692023329217704953218721492411685295319359821334555919470894538567231188780293057485907793531398486625875650189940987580090114752512658095279761889814124891972192113467691501550502033275988000326419113411906753268191224659057601672340550131872620435578659853896271307197226430137229004566889285790429870206628727248184130541357939647857115549694522748574696947846639470462386479624447251957405926476266707088730889762003933916672854133792990937626063963202758350260434270403418732096531969832116212593215254606308645542312395368489869466802229223055118205581477202248315275133183263640480078911371006052106866311868439481615071105131882083343590724568112616085943258030579560427377133252139792690232594682910744166211685431800511602663803503809836933845852097716096724728201865659899210640214706754894670677166403538244312463088583319002766087273392405132359801075462483841399914123472500375292957028841467490982918054235330259874751096599513218655133855442804349046231255385405584138788390738372439769379667210222819006105013169764967545269288840184149167140945362072288544061334124301865011816382431083694670606304555166331363157763009917864349038358413728983191047039145944910287082190976653173048189450802782684918522403172629186897564018913429445484042080549336920418337282403944754390917032540854009680444460691561025278139014201483601596526719257528897209298657765490192781154682354258209806012553090404035787779973842958308333490515064213183490231657621291126608928605573838056200393421212936657719122793713579045058535691185765963279557339074788112152201467703905070841201562043233965676258169736420493416629850366929673647112384729906537676457334409444452042531338395033722379627122982798127077417683569497193471996309017626652172306735405118250828625409316804447378828470716665954797108359498615496432042737273451452419775887485433228568631368505533488686495014483890739565113979391866364031310627694356550357022822056660044642200767474297374520115911222822045559220972494020475968226763127876512010279415066694942342853573290086978379610071316037199935362728723725726577667557324227064721477897973045972830352822624921711735759622132861188506088998571389288793663731675379696504333285259170994314638386484625777203704357079080608609862549216221043732037900853572920999614290466059761916889956851414783124162218144446778501080980737323314197307049652973926508700721577951802724451839762440012612557312180279452268275192775382285511444209822745853569275873094451219092980022280096070434591845537770381485140238165800914227762543232801441114316390422296930733739516459846794255554493365579439373460855809576061551407943025563690958394585131091353192028872626123799361608564079379954436572289926847266276134735056027230957347841508321767915928572558549987304483381972477358852008742026856826410769992705646800315829591095386959176814276921111246529188050571532753602577872646747278762613856525851229317922933947043868088551543396513631255709796644299920624674804465656874323329174380613162369695381912902037220555373421768875500314284629521923444877232028240255151779827577804403323852894385471787599538788919328019713299271260892228824891124984745187040359038393860881335144047330580730693856397846982229243040308892816538677629743327556007771751619363029545738012219285777312372257512242374013943701230570504647266354478432631712886136649677053204870925083931231952238144017999790995723145294445340702531678521816244678603614330571072505129584365110735203300632063780709906982576774640441390069674867247248242446783875330594061757445138418588449500847193810052990812351729768171527256997916825611778414705523854555242778883951616621051907592447147638893167923587567191504877355179244371517630811192578970722716410403340056813677633388143274802827177876084877850037910566861454722577237112664176055986887099823648580442406129348409390432218630897895230838081065710826245151905041125798902218239073933214246074366192117333487673135454410125788415100669877493904500887044930847746909813830056786370515974031311486818758500568871313871984700062814290877702059668175718469714019663456764840324113304411317315213815107809355331459318995600004913054821569495207676312924707639930060365794455028896364194449780804052218699931810871198904365089266955853876976727082929045975556151973633150285482412033579755759109255655684479318125999644454495949618677082058069787492372772237549118731362763847843591560713660044441353455443492079063595287089242215533231148903831608699869052867168928441797588596407296709386632019416477408301277647908613337224454895502794107697085363192990436480086985220243928058577797389148103115039594830267044971365658819436712556884431266373030224744801235584188911816658756836103206174419975390556025484332170463865322193423977381955482971271476400218403050301854075131532177306907648652548310606776208573840597798640758220271543854469658303134371798279148837129306967411951378555282014538407303690134809980215630528328283083468413486174203582277347046705694625787141139253594173249557670875848278542027030009982728328709410794592450620863850767618483346701804923137924667902196535857695125415621016380101365400029419168778140742841105551264117034185870905768969556473870898582954883432589987620274834764337926240117428182235598920704785774710671054047542238990499793750534953058002560319899003254313440139770501064824393313791355986679867940580752382265334705659458493143033347561396950435426808961032767865151346021711091834490378918467095204525352111085411183993523452464212338191340654389012019098662562800609072434051882681650148780624807493171224479413041606466671364405694510740021483372116902076334066496592549996088178074357710053206005037228320923357509557951656163684984229404853854181482906218417704156861004273269799182813639828042474834166631328123699630346207055808884747203008907345645927225618574208289451976300292514118672393869438541136335060229223609998544408505983018908848194704457969164902135945937303248222329706584410809222537566528107108443367459038306649777848535735746321658324579194306169519694862936637104692558806638343690914426129696604896898606625390065155415989904432909648743615051309083296342081944288839664164803423295318652967953581552456900593532353488872831340946986575273652202861315155101883705095131069576452488565377757825456295092574863156049268975310118242448832424867024196267328963163137126866961333361580048570076625803177093951396244867509968113969613347205556070207012842278285861458032444067914074601132976943804359736635266534494733574184923709924926909967251847447458449783191286497887882570225386944248250148506065368976595191096803345552740342790947650487206786426148425900918943538936695599304643006544616920074669943333950715870935007413218688322734761366862320786635401210468786797191217596997537820855716363889278389062728606810109674858670377479040093610436336626413184455506727179839370126182051797394607645330439002704108600918086607944876257102484700021169970408789141980730591996405963953541628775974448137928666673092839446070937231250573174493935741734592337140091575184162210150600178007048069262480708533835557638342412116958247197922145220281446102534664799596595661634674244157106147297462058906371634396135142877854376706983153702231075987171093702645967316584658790885091961417395718913473373440052671796681626779865603256226872592239946558015934355028100517651275267415549140416582611613407406824206343730712152176560725981812817197166023014825099274524913895926519902568095324062139478541785406632314982249491524064510734195224005899889463841965038449953781860127580894914586930986242606017976461542843751137647359222418455802087149488080133072662862923637047904944974646351839379283751712788858372338855997032633517538961965353253645778861507017354844882032403970344746529070109069167829916339595468774217816566978994317530588655787144305502861071124477838371862184409956669266909043033736715976654797434783814710445915298532419085433427638991262747727120094601237130683211087637195487545811797443939192829243823850731458109029035178617515305642739445807688308957856822084793472530885799983708796517662105290941458606182462775270716618997240191156737122014167147484461807131623562569553630722564659018135864169988870728026387531011913513658769749555880568430937549326964857439521037540098133770095452688955475469006763554692487727399553066388911148747333178237187789225703135723073047138364269247085754741872286512435628571477554518597061871729624175824583723218870946636885946629779949126706500159671476592771688412528029320722912235223750559088975427963472930428350069218569538450866803373661529190304198777061077429309371775831131221079651171786776009584302403656686633553520556271929725389455210172519078541666161123919627705870304878952972726155533741781913704631693937780539202605768213225332396248554439104893542817076631471382595810316639996439341077696674309407824890064800395155874535439939660055769125304216975830022805822667826222051446022113556389948561231504690366390727937112814162429342656241914700366318123051090382692771426865272715130729376983403406540312400085914363255388345503868299336273466378256325143274920513922973051675203666542840532276247604412479187042544695250767997974895643691430889140200357210880643176461343675627046621552723970208331538988938174022831968789694331594015200229124132456953810401507615346094261522595711744533821555619855384739770493058899636101672417842715610025486084945034316508447919394438607505781204949380053810431466496481673584093858771817699135406963424761072494164919148240803938419567271087587733999220515706724830594193525933576558116724397256255678015814264050301259505905706266765404474622200561874282904537877866373105418892787949738062534567620517680474413505351208407427195335268947953517755809119815127466358882809417148759127340116871636060833649734217200004956452442434831467910210891299480666371586580021641788434089820410988128944467899156756449208548694486311086043617776491637195378498534604400646639844466611539443033511646607936603192877689981189246579124513735981894173268564195188452161396909384406553286146145470137759904785183545507233460371210888939484048268869716001409148166481000985782098767621573872694666656102075991613329412099223824684323525768279512320886328162070501804660901551841034589874417498573643195151578243218421664248411696239389486662172712619469028828360757889646648776212492679326836430523227885672603656922877158140204393222246404891908980292690210511077402270377972593909914350302105715369780664912761080801429600516797883993981298351320920238431509995335312477437279313864960072846286742392777749552010536184498744606056278403258399426709433940604924624335937524993887437354403266243917215070610775491840897762332464846921931150249118457347814552290796629090157468786355341232551866812747171396867362488997855710069035442473751592101917272556965805064210357210344451641379822897261576957686181631372981426645405994730564453370560875645136995398358053003152098802071108129599465558466086568177286263291275016142271728919400324479513994759913306241077097452899604811685734317951121841030575786220810245500663313179587369028256886661984825701364583498917914963817699463320283978008707001107338826077843294964526730973642525818815562569528879386091911096101793577862293242106413043061531603834895514608583194828991483978602118539404665107246982923621118859359025969030171696922962975136185023769042408309578104399644540886069408845855110272345455088992111733646533174663056655570103780103872037015565574116406439292246411771015684167185659291154095414187329466738614590387637529150094804413844555326992989770805124151666469882114706288407137195318814976425038826562242698160458789917272726606562452179787233898278718708807082752898989568387851066697023094153057276658726241556629546252165398441666039230843222489142049941309483462351363386726917818215600191804363946594050140280082829634992423920706597751355005544144915390878512979393426209203372042291109521660454299293315437446785290801153381090278173099080790778939844698980994512223247645298162551832100984311369382266625792227916795492085196901820886824600933450596553924216782389548204998782485067969764837952225034365697628456207967767135998464639555529310502247563856216094550034736932894475959564735406435617505882566433441496460108458984883118073062099047167141574816868990137436417726342724787703190653507947437806654460790486582529018588623558213600321673675648798780484682483057263142559377387783895081741394641408818537673353450697473856209723970686202766127776569848131639243440563707683674146051931358485149444821029165797361437504642744100473413540914181893398120432311373529528220090668185070579517210414982588271210298445005353152094704567274063381853735929871707464029499973755491541584984509806228529905370884808147284411924367547117458199300751764280774434912662667695961554176575895799724207875766142377475051929415975793546513193331426120584831547433484915822958777462596477648217592767088941553842213755963302378934000109335986312566271298133629964953211948647732964844620063320296502416386025262802442755707335920318244419242246493676536249254162459610387590081514174377816794552811326338263299220569759229919740825362374189126168103067304802420676637337772741452643806848089299986213828278099605861302021191224168038175333317018157709759329366424289439781027545409544386841265041664047495960652884064909095264984844664883495219604987147954558789629053839594772267838984504164424482755119863734899250856733041728148338638008995663359529137418217756161080312069394116540895666182598028370204552972261604271188393248958493418913197747146624464365041202733218752577406474357145748975855377841947750910894617061747051623111938097712740399531336919147041574281269652295962480426133285093874135983533972898778875625384892962966779613758887956294741079198917296214184763508491448001925650318232320727479482084928122530784859772237011981779167976453808342551341526821313847943049007211541237256819902861674846721269852563980441519087172871413952955635996685722781522676090840185126287367038474061823406118719888746663920591157642286698792729699224205617066005055394799329512218597852703361994789515146575423718922948750053956147655693367950605098741873048970511041747391567414515419211097545853667622771139746475093859867628650630538267560939013350648095411641424602702027600515091249363135423663949899293038541400524082308913935837230552877843230936792199476898866622083155133628886324574487973333432962946376134260417332954477176752957546937945335494232279858689085742012529559063322019160504424941373184370594405854530406109972713410014051763567256514523604287955446104483533052534661103635820120593107428918457681395724011499528121405052131455653744564177921613665528723777963873943041775927627821962208162961201518747214825471259639187288707779188624575230327190641905472779025414678318453400918317546487069332607676732938196799378351386885649812245104459848083479893446859902811939989733034309928636764033621139785384185330097407604239752142284565788877979006654795060882023835319714343979220109060514173444008767986791932131457045688100893436979338375038451237351302017299746817366528353081005960553431957830732964182967252331804680064615890134707434280837975884510553988415221450068442478510214584652244855627379023464055858192216172109176454822229201677353016874241070832788078456238108226564515069798556701312181739366599313291440590689334764673826445981820371400978557971738350002577803709890603590010534762550291037521532725173295162447436990674003075179725550798554667528135406574172937963296999620684700826861629165417069389912660773497529816051519012265892228545680975106497846243595311744665875322860834073563956849368221628353709357639092643111682053262250874374960903165717726911069695179907343102491448201938718689594016388195457028635481270224483034225006144390846694844117029925667178729806050369317905568020078131414857676322463859710822483915308922323227869847976268450351549330166977074227733853274962754002428131693622457273896476146187111794529360348082731024068734026711760876162098171325540113801139179932227334679880747005521554976930469177686684275579737645583778785183068891401394334603286342985112554045696622749373951692895551622308140817517558218460826233744947812126841929958908231863874688436902490597605904543798558459747842319054159909728012038093432901659479326125980548530200492604789164386546249477650074281546113295687359489678146949046074325941327639282554857639296378676073255259294676440203137091649575312000850869708582342838541473594027156158358687786117042882684000083096420845566179829169911886966559781243942253677448860897091619411175084547450237120309935070799356357852538825267889172780770256360211718324415497050337755236987880260077140733504630450469493128855204523115013074524007691734217759999142839377904567706062776803777225588089598064694204704500649892046922390081281093465672324342448840933885865563966916044475542664937735049238882303040203249661464768948979791604479125960413157480779277860994592043462655679024713101072331367502240492999035790349075975917599436491774375612170865290676723653433065026468290220080113420385956395000343117299528367103362856111425881194256950313335511162544969825722210846341102943138021217257792045960743155423640361077333500505445816936784023072623322604395072050786464621287643696247405326563254721289989674881073118990122897162512840494055941168831131328613005520503423300998653878418523828302056630167766841060807758327206864085082846693917609184445241276989408259162915190444511713338739081228425675803094449673129091741300929409699820003059879449039828165192400902607525128097736383291561049653601420239038910762099200496064586551356528961200856330891679474418566206865402558959454079739445023849264421054834748340083410452420717873513574347720801393606437504162948784832436555643315080507440732963194322886040435448800876097111453236709506162175458439440711594298832743745755093290961648037289899237048569492565909007537648721502915834832600773453933408590571184902572696322209992963863662204451835836967081230359708961498171097428311863116165637485232669653161568784052637921741437771364588025728363162358959618877374481396272033946845751421179832033368558758431519684246293186353933753741575236922655223600350664096983966467125924086346569399858138343723492049598465962526834255183489362303219960599388573100760841087768305815947619723928295134291649121045680425331413797118663437032085916459014304682003380111211896058908015236921548716312915871511963270466539463013173897051128327710732906536378059329186527915820706926563684246782954893644302095641099135356183927318725643132446662275580625676633615291132295831847009584303123074035331279188488997301681894683637477171919538320622844148303569216096365513287623860680261693812855384032240165886511393882032599534374057243868639457713612936290292117734261577903822192962295930982892428183933737020939034214370193468808170285172660545388665088102347809848379619584700920665918694560921798273233344481126428247930938867928523970048173689723703239871094211095210950594397847919871479674098095244250216056546417574877438757775670442086375574304470798385594666998622687655214111776599560478016975667169446553736351261178568049569380834994889145878645169470321304245962616566400501666284656453066976647772799743189788188885462906200067528329704575695044588958287543135424492820113348801262505653681924727176092171142821704241156540284014231124660968082100792968021377393155496346228553904287287887415237425400919236053478525093585291390837151751816803344942634932702022888372679156879344491758644465696492636686933533743257311135125611710282356837175283402299112484120082425203356740693901020689610057847363786190913005729437993613203084189579130887502303837186136593257999833434496272231509331769135681224689235254944737161283833646313481296090829549850135474087656051289981519007106079490473228173152902461382616085028947536066839824032212731856534682924991810769672242707915973820098895632267180136424166623216321922730091538849200954010185803302542070183602020735869300386210645371428895246492391640481085277369176242494222205970773681476968626130234042153484560690200133552657407094413484251279945388146923426862319706843959990859855483531100996615708554132888931816418954466721145334400435693417735419763175561083620845595985532457076988734305132230298371206403570030137855431534055037048443776530283121643625918893464554819095037174818543835461620517089654145285500242103476547563141096658723227780142423109407754528169574850613166386656422676146941431037734791142622229544187128259935960313089021194364545778648360274166322426638363708124350992439268115557446471508822981497653336283348459314824496263078810930676964356765557157516678249218483858724594554389130788950646106797547656746183262384693429973119065672394911162510649973591242136949602603924139260264999237905238012003440993800642798692912859886258446618647737428296238854113541718387445562848017099654761647109087834561163273908485971001584389482012677512802849818195851111245288385638488926986712575759053292922584643663698275721163861603990523443399409378194956133993206596292584711322496456434164413017528656510561662570582505263088033129079480557987862557850878459971004667202504297829704430650686089162930630271281100019271989854311977621715943931571545978473795840331644099010447245137063292540250011518385940391320423429616521978570520821611775629657847314496203832079514979780371817215508894093738014737813013448088042264438984878440498803655959157702110861791300522936102189662982431681995527559996889630446006200664512384491642404095094770299999826395755430258961517367286772925349375857330513751542678072489047381856176764504170236422680123234625086311482711367076590612636373221330502032509421438895360598008289529641834589392478690169745089802087190974556419125162898009383542035501279490231416575079514029627962966519283181268575816315090939011864762237713101304558194919010183084923569320866389885054363757371541768893365532800174862750106191918159122633532454273447541879406201876402348265160004213236615934024256851992613506311537848979537656520250790683279972886823917449220473376926603642474950089568754877692424459581419835110115683837266984909606711040699972616008955394849259204803866028157455232424313197266376366666919751381614222286498158877078340405372709304595666264182169935028332706370517981438758177241201898584556200693433409226950705817172776929242957062704528856761332951127581679857529477488120555441934672318847041521674116412191446690189814689468299512623991825356324560654643712374213804386530414281308064919400518614391982079130249165933388862965138876700149953808640024229170505324268684555198451630236018369009761341168873980519091930037083617839023283737430816938087866921168572240934337562070820649579600940171635945221985580940842325122635911735112584618864117803767050690722181598900138951333577709969991276948354491940262417441075239420870174831133699547775870770564726167593063413606524042245846646775479272475543552207241498477119421826144022468073395148448683210027140427287239302856329935965952780222330048380346046894121262376956146792436223565237790616740397152880723230207364594940016871107738188609481019419706525722531622894672835746647120667855443269605453434972828864746482770434538923235096185574304532495733962555263668599805896542714887175299620801303736257909060809822537090697711455324384940095572390547801220669779194276955208413716536462512877996678821063859580987223262876905964303766167434711148375243075596255065636200632620796935127167039417924373671724685206614672286978648087039967863605527432787645331409294936684923879303925894589399051760978656694589276314759514172741031850981881857927564163427342671189833291241629863584537365898845373517131026368156645651075904035563012403312696628237502957683458718416443690143333623460109893930275157499372069326892614298978645764704755293555747811035867977141037626654263600523456555977495111857458191442190229836448650116035018701815814951525842129356931640813635634097999412348477884852354991262304764567209501124064574199892570303226419744078920598057139253163621388156769705388800198440959689994710106554077744868493806399305718857888463638309084609803212827565590586179425362055681759233204454102241619013121827409121250862150594391299227888333969415083446896643298787599077990096601692511360887053646228636602536127891351614971826789677926245995830808871119039592453014120266262613720139748921812601406300618775165697748224980090797918691143037776859772909414910691295569047330308364238359731400172887447338618751895137401388059261804328514522876874628494248079877214642830628684621059862518624613754761974575284379439811036261299832600025825373928431867304694628735111430897531861612911845147192657526604732038913333548260933476432428677515754447177172855707563320552567399216995738675880220596583074831634931201183765094101312670065035249850374702155459924056028552241642832932778721977143792051121036261191669740119816703647271032484327720837347742847806365368166869264452576305645864910916034890573409095624340719133119954519136890576116301925934991262299102159384163375931198800064220363864928648269402939676075033024873552728650525092542347608950339090886345277721431674844096688015028404427598973917763001680700982455417348551221582675354757034179278717116207285057780042456081189980437840083739414929136980158913953039406350640362016674148386850823758772070618599231670558609299561399186069793591978466044496933470780289597109039676119244689278774187170896010557480617492515116472027229825934807452863832864695658168848618570779834755102120430509643271586748277350884275729785845735553306236599330662820493223809565200158423407838161655027325053605639925130606433984047225892396498969219788795638843664078268218252715666649724620526450275808987315710845216099506721402577673017573185027649739338536114075311802530843021197895602680408736137984308655373390217359287880087716470382058828246012466000543464535092186486108053234905846396821144584397746739982642292113167072005485468578436104731548698074289235539310103830819512107631248612911288811306928684947251323971131937629107724640372884625601236296455391743924153767585977129876563089105460112487064892159278877891758687931440922267177181659579603401607471472204312410592267935056726939949937072688577972524662003769398156271211298330687983661949831152844939445467902666080593797802051423544849003154812358279901334121148396957314127253203581621896761857726504556600703729155332942300730041531701572296924219071752066436972927167185584478961015733839725780755928260437294204770484082140747276692829691693108630798150675107042203488229894476002803063542988170073844818314365256577820816806379141748076258208876074887485274459490793527326106154441267026793596162604984095629978798780345058690312239155972732935933286252402797252990477387650354477519078639585610408427586369886940153483548211713965753107572204985877364631203462333371455942060478223996890852291005665271621089648169395698943361025695073343868086136397545202886066180300307834452398916683866788904345856135129129872004802318800371548945605025467090360405024863034813759199619394254947079683478281864555817102546899662944685918556501072252343345649971085051530840385635026874553542104631288617642953576377500749785582483064930656244129431430303613604168969306033587853372874901511892864713919737460504600599932847266807028899606375364527870799105233258622163334792581938594377586103259744732296747559483518177000421323791441011918122219257105628139433411446822351878078048419276294010898297297177425077904306446742019686253029696855618944603040025238959265872989086851494780751757184991346600964831193565304271827998139021266752620342977216740379444040235911329575880028233909889210741826912946711734917932574007391814489200511668184131034099768055654994653888850824431841085466851520059814639484071883205661936858790611641977065255073560339895799207623597111343362323614573344836307980883797391511438434253314739534755637679988169316740355999936882146661080373012668184431055592496885001135868965702755663422855287690962929109959637634694929877055326202793783084946218573439249794023429403816190592760511659125243354341766400794876512881660850372809605208035942190789657408286432176092438057807821171736479311370678296233504303973193859034091574099648239580112416776237381311986533423107330831399061668121528426368463260156020128260584919143555355894485435218542375573919570880874859528405871402194162403886297833210749559780794230744728991171781410752175853101166694336547805686868315603162119525303775628352911116839072201209973447121674535368967057582380524040231112547430456770944073232561263069396827403637921882492808463077871956918652953193075065190251793354607200801563140179187381162430643953360587322964123722242900832957118501681179050266724539563503427947969712891643467715962957368364784550157228575954803626532066097904238884149702864771814002797898924410930703177757226412714209901982109579038378208855336080292681649406273382562752953987839765169955100249361335746572657048384352251361008024443586375015471679399226816993934439626256420680418165221119646499556665202422759374979692283722666715602267532012112584342211163319615126021382780741553285480370432086265671330535328224088555825293118523409774554126973924740052608237178166875846143742197839078277416887927574243418977017428119709362586325839927893493845058703347934169638220134935585960508374463581123706061544423197043546897971579260704419088837792897827575190826935186054434320232298580023725357084041909433140649249086253544984681277883110322870760406630534447637193461786704415668338552239342723503482146899565460463055860925877608135835086994737027752536579165880955767792116050776630279065049642337995514685144749495421737420271404720844787853412666879519837599691527140061278758210501437448138429739677521748050871761351060212454854215766755093839426468512800092242319701076376673298105773920806488548414046368395891806998878572622634667551260268136790030487778477440094986175362128796416890503304296028887388390491550922653653442242271311636757238407946281774894653647492357312130551545399046491470534596270350169881290239694176357748733029561028860845065227147421610063630103402695392205476966548624145524521160772978919226508695319257036496710035320430215386534635895629994450258496271218142153978799906145546661195554091623303563883345509276475175544798950854487352108877166229244249819991672078973704567356377941112507163164976295617906669946641561323981822393224176431745352450732798961315944470194990471070478621266642731534629818799960944465934580748844855395827704118033473096078099021851747183033822624272141613293080524479376388517720371555113446098233439588348577850391605715046504208187312813224989818070208685569583646906416694480895786350097488540192877660836496421894507930420573567282987794907097495728021434145861000985163171607352406362753277375892050204242730057193990902844914469274737291829291211252286236052205568363064616594653254409099054368548493132882895046287390989780193673719770314479792692698207898847733477210186288861139901331395116750598086448640060832980774498316090912766805211284409270048696524150415285663509018166324029895925679695682142672069431187841872193653624286478156968852932408710096054105383457633502658966826771667472976601160687289636885921828265107316171156704720745540021557181226654235170235592356425204345542898216424840332062698492430287345875069632226393543773220723527406223983141144321308504468548346909505967965517647438873074980681404900560797755167295639231307175072922425775941075107873789183801773707103121909432691622790081557750724110153191951274687389026210706971458370766707487950084382776969521967990039980025842505880090805885022271988631024709047892822035562215924704883696724603901868322151744714705270803984253509614624017235900922318107169962547859953090341354459543419028767196461711433041753702665256593920201323810337325125090720078102834367904425787934683624111331235517079765067788323970700924819930082815177545549830167571281200291013615590864049605007406418446496613442153375067437828417621132538912665409516569901502901326188241038987270869790684741940782502889408537286610523338132913253457274846108242881491167788460737217559560552962099526396901656438408827677366190082257865415360899680472883977506314070645960616145071068363544944715698392653524383670795903139364250971430044618209336796092060852075209706012032079637299180442774065808538114544279374680831768831206574613342520402982203619289299905178784425857860177764948178279405478638508188667792366839495905501820030223723231238130802327908159016960253590687136709970924438534244404497257331871037697505076072286415722788055760893863422823920431835665006039307293129935720233019138483838742349908421561432268368486819283026486080014938648279573822590004037402989192422680156486959110287853207920287460660396217159145115958121740085284666310602384520081647510616958613456747938145520803384348887509689667832676119313432862907803086251014736187441364868215223534368846309967195899790427250640816573494636158555494894599513670493978662686952960046012029400725030462683693598911409438844152356538025382802956446806687843315713649983487264507874745587067994034455223418618297824532223937286887834691248237600118586278343919264206464259634103582364066306037395794177832951460298044430274386442778051540214102374753306794648655122332265114820055347343116821500315472304721508513612618254305119083239516497255276886780873967723194787707531648163670843197411800720484534815212907661541300942783229596170762425251678428820463418618006742846644184629863172836123385081234671929030172475245766444310303249308919205006910435999763298501085867895514570076929170078700481840486630693029608755358121685317862994810682809081771730637743259282532124252465269941325516217519494609402436215320215567074078174738338560445386524091849002438027638366061871539230592784032801433471006377007449910502510126842942300211191424785444242434210950012016559232931129203353762761653570284087318023942088519472743305882199844255241488261230335817860793735638558505626306670137693519285038149734552440290033709494914327334136115936231493748980522537383930300704220089864471589497506057410279444729325029128541392129585969272531959168129784969104688857678156229063900778469071635159718562498124752667185218942722393907732218953304875243966782825230649329186665038605680149747730908411738553641147048619867996228849408305568199577290011637989269059211115613389887189403384666894984847162681930092245268888766122594916375720944339567537796523450902498779136288973447870904198554631224133221742241762532246100879873981081018442981473945080926012712428689407229636703771226990311137823688600206182280302318814654877080130835520370315801223797645400343474187768359401090625840275570686034663720666575580495196446131339097528874827360850817827253494839157841315397383613658149999538721790779874298026138467665051436090672654088221927341862331748137801295454652863744102270872033336653431895248569539077159680193642696920896352083701679268497394213105794549244028459152579258521273173918247643052918431803787523958538952178321796691700479810997690359810011150711134592152053622325197217518058205680484481099603144264629558924458273237591742356715562530903830781978343015480498168007082602636816805889726839390623927607554465314644665710853862399834706422222425029247325592465182881181437304617760589902608568940776036297441934036538652232428026469007638454901479981535951614737177304992917138792005796762725476888634623294733165156797356479311873713366787513653719658119286052645429747612276023132004480460547229411927792709998327070083901081277215618935752016703139221180919772037724137616648043155886082189579963536974650273043918074743847480076207674584743103262241669204923676351630204998528937958420659367778647749143647599272155040557390359413691383533336055116022669121422898695427615811967714638517483032936001904107687834886581050800136189133225910819627602370188959479954524442399024820806636494746162017071265286614153075775985039951146097626824485938225774524790670991173593623113806080513440466641813696378451831428318744090279787309769565446474839000446358286529631094941677894423999153073164299821382882431800384738180135375880068922908230520660162635253803182303013409087848975529459804920563903178984168464713985674307172355023995440182322849578901545872271713583679310843831484147465809046711839345357248150681715408317243685704025790050846505325875886366641326247532589046323076959618380331044278470893680920781094308617792551715472170891836314372331038316743388699063160074197784597942848178715643939299866303131501789281856749548945997843916355040517136016484569247655530488934730307686711930623488215288309140796828368780354426873254046740136171737290784194769010018085642301776757550345776385989047706812461577443324106114025251599007158569023584913222423989552378251397587790057237317497653662568856549066010903457398655709444817305535679235948451109621887651023067889873307701770669476191461774545773049784357717488663105248542721244868912862040307902775928474786357157675440408457613583187132912096696254759538375512575846070846769928850921886450339957328873405956214658319867679189929666866722153706857841462068920791995414236159042392209960199769312536053183182815584844947439365740652510831239706887620921148585033932000889310149020114179856128071033810374266982017786065340589479317269375458646853554913295087784915774388848923342584506240091281297082238584055811066805982057540609921283518116092772473876292002361691438553483613962813618296759828583685374576945555536704396271843687701828876955851048797471357794753944467495602452698921131588993371041227147653352456259414035194572362683816823563790460750881856619774154192449631233203381437701595918038787453951518470904549071256559705619945261380999574276442702497761178148660134522376843483129200100167327026928569654494581882252837137903731221732115011704222450353331760518003384210917636750415064229999827891681489175077820385283861883101521684748105483850118031696609764322418750641379331919568644633250030199686145499668260553033644872874016321877752667771955797792748209377349290342616109042038304887557696985843345900613268412462985043910431676389863461853502039669641513018176296442893554013698462102671924488831476607270738715730816310121051726155528418351498811116630609196337686900286016341713537436487143643916917479852477287275267251648078251391411633869762471502977108928759843687164729781157042953628481810328743505664981007395280445095734139087422914705992724420600517868124944805450767341947856662858982964892624776789905929758706938155615477507210158007611124965456570715256473253549867612915591062532137116874047991789224238725210876917348577117522993901039417015444453951058436416033215142907239946800386924239747011421914662142245544591367376945367017486261787609568352838721878761935540616318814976293607177317912807266154202320058424947541908065327980466687576218954203618106943685241020323690173381957478426104556057869141124279655774626060845387396284967979954361311777476847652469068294047164759205667659817773791624892131841758315639401480224459707118622511758887992744392646293425839491534293609993247067328866234679519126186086322488294738347485894255519151744203136276696247519689129837858221374358195151819275380991435873562804054201484055314518710949172637403400270666481697941186573807562320838882600397751084871733839474834880125821353291156346153860424612507535882516595804796628928019614760624432675953319213071130991853637871016151834149809471906860720166675818149122920897068423538201024468909808380946769432909429609541909191755396402348537409925185313710009110046280695876001342069033249312280894300612894505835433185974383760249017207070132217913702868126115628089382069005831357204698079438679378105590280908103236029546258524021074942578652845879152638522825714985452054172296294259722236485780437855843833917756803355140653916591565795885943809923490213056962624482070484436896975693297136884451256467425646845137423402088588220331575977761828291438819644829715151388348682940296382816740934353145982785455641603725605313294353250225998693241227541716546349702362553990205064791642162016378047567324805658556859300057513786086019959900565352099405850000930789422641153430469369117606575087413181764499826054645664037220485587287762190500892911685814149805851633459469332121974545362127747391564204608041090252377975738541464201207957306160421124399551490526475939137293204754369620612326831633644899368824093530935460810171286256860559196771527975796003396293612468017591228040432361701324526530719049041292625932403411106339680361135368702321597077421354001900192477961132459744311006941307908115844353750783837273519836470495735390121553188198857177585041223823882595729431424305976514063937789007440899855767344778717513149127403609330182658685541736792116920365717671129465080265833101528283118611216204159615851277990143768846156960707265783955692116601646684157029060468580951233130497617490973102099278000205391341729693931623457440352837486853696106407001930040645511353204959521164273915373543159134001816460951801569625239289484883569406691648219838806272967148687851128274924998114968660174262892700574828642992756648106084013445896926073905086920856896779844371161943714221187776713251576134558014393185027211242234300130406619042587675246451017644154564867803670198748969498170773212458432405518171057914709130077802445305276082895937570706265324586760155122886073228151843939180660685268499965686817095268421090799158071514921473995769801984412322607668160356923873184932780441909613884040096660664730498852123551652556663814536920857776858313804638175411895833998426148851335410887725468475782769251149274610739410217579732106264908547200131638269621985899234156108630195328094467746083180000429828058559905490773691566697308853957003222948177014677490464215715274382796038529453859032556124184931374080264191170422251226846275412764959030612121828516313518857683904510047610825972173128629745179007188144080499137755208705441579340199805039367938341617411473903840293018042246530869505088066545098715181254711525151724664082758038820248953796269815473968130723982421169472445826147752473283691043577838350402341518957646111079913809282766815780298962411938881058178009530400343700582479042564235979123705101618435826965354869679136759228970407193300501658946888150032058835549078940747137261967915853338924112921532689697053242498675049478032203638933032559332916652811358015863568042757826347609107600285596798446074440773594352018953832670778805297828808410926438068778783019909554129249526324088188199072549736326325525711667992327627750229108588145223624380364522302906448327586467551865290878924621543001306637549579769973047976684206814275345800176495281025209043924394748385520766711365817984339382976185254357899009649145359396599865655877843703224985931276984712266018439689737290261456735555851280478416780632891570210677995296691569378779349358542518030625052959267486993220979805315187847887201603994727642799582840176775062191192188389707311801184115135663994336176399268118081956269839178349427181399830202815266930582275100164472004599030682582205104998526554506131197807488505106997104711119675240119516501116835682709382411649461187995198345940423465890712222136483113157986096832019294843105433554754571507955819568369525576555998410519326323450116027360117481002174630223250449627056440818172252012738305127758031826997918047768385320150689704335614238400791941942456423787949873405883700777428127983477947752073724451351161697232886815188717130406895799939163808140030690582916489995184265296334257249582672137515806416951589079180921809607761728450073090578563206153911493850916404561460979763942997999195710240000021144052675347969309914483752672631253726233908663781564389248576053899348105210907729700322489063802571742389687590164587569561143092106027536433595050133745272654094302025190647839148921590288545193164530095542201675114221977292298919009399377959291467634697634792349832044024775001903004328517300205848606173956184872198272055393656768035201045794668665010964926196926113064022242554322821234826258661988950360369606373645084303730714360656536758754317274525535205180994495429508419266049456103502013423653436512117677263174055162839954360569349054325450182628563918852674248492945040610647376291391251216856943271278557464225546367785457998460143551223674376573118300226740904301063226621156224797956888076854169894224585852388861138682657015020122469508615525188734779699833143834337044801044015777081416774022574194704785705693828057263621653013733923607044257152948408959487548422122836818868175702899944648064446145035766142585828005851757420194066567001227083078526648150872805428448755905819351665335830498899571834962393884541925967726440544928659625947688798148621396627238945792510618584727933082823559935150170686613196239867071170352965956021379092287178894019690298399357094898318643926242674651606988874185625859411055907493580356777017693354550234917785884253976563993460952098132265603401159527868190538049087902442719545180265404282800899226754892185884083413089082273279067245877668069392367023909202048968431823067788693983725878326950141051010243536486560729566631532525751366733060280572960673753370067534244220731541747857329144794066356440283199921299493776001036993259508529023537676812027237546773572258814764307335438554094151650229637169154856756708178653177173151499894428403190492974107104337535082333028044477682993787629776312906456069562476478701820380864461214272175133303360434739869815052390420912151576111758606717332501985170335956851199558188758877818985971928822713772047716193851734978578216355436930776663877730395160499714458027044913504090564358204195428750207975466289292279137841215165439513362803463443612474871077207288947292454031016894989800447798702404280944636075923160795327258368559160358302614158044274188197221316992560279473651234629306071392756554559283106255429649944733982306025230274422803923917203328798538588690938625751850393024777853714410019886804735066919027793873533165096362219448571465511848248346635659051142555520229948109419673612904572753915559256029467772705455595938447136344902825859593769631309348931626843176172871609251676696388088096393593995223444998015098039895187028412538255837642204997033231626380973596178956835451448681336987868601331358133694190730116415866577098720736877498338559280020920260276354657813372111862404192817890633688355873400492830418277038021068343727557247977926414903615373936009175422476108073619652230727318606830498759653255514759990578296934923206546684544317120525304402463821878837654560557743507273030481678785935209616623353063900136594645044630822170806967701795391716625283748264550610384931551023314004695936498417741636856780407664308689835743285957714379843336265665969294003760722498425611075701982505555724019021077356243208632329453220802427245213869074628667862369724982629890785085684666606097692221366774970651664294723483120151250873229970790815965130991468576283906753880039926387771290469869653525623232499375768448612642433910756047146353580288823874817217505022705443922937547340434264112426454927289676664366457238402337775065852621444985995054955022607028159343735219269888836050451467016966952455160199744455052443970769546154801814030800512080997393391401310807663998087759014769325274518880731955507798929371698285956025332458243448076929463369175594368485210568682653876384199555594958335770121773453180106662175047156795181601641213432508454820772403509322039455255012258137303873673934629015535460764418404276443303005845581893506160520878865569101637060114132799845691129010871937781089259158479390401666073243001032422497050056815241746443728627821112139318725389987334810304538972666957653899344983059350338731955794477183970740824122239980266002692495904472202596139662876382459086013495845638764795358634266623070017355685385176074374217997193400229692993924772202510147657053954664148466913219462610471175924093628299949002060745280456115495412395746044436600565663872232607706315601281208364085459972257844242838250173139777068948348008459542690329907695265173562830410121680770800443960424575339147717488809994963909329859114735467149300219827549505052583761856917289969787882189346602188839164969172231734102407238064948514258432504035206243216251936925915541277316135000610682113474169715891479379489663976718159881005288157773019778608921224701355454390357701865848107828865348908622481448350148189654446581155757726479243934101391073823268932525366951745550384699234965838437677122452545319565491128006766366363809286126600848587273477024544451363131460365262508499619551244317668549337940666626199835211791451919129327481378642083819567373040318819646044188375100484928134975397679631662634417301372685086258918619132241606577121589447931252341622353578234851741984145466126223493083745020998543516359127495112778151594130349185686673008242656533571021222093240788568473335718784513549924228771603167476789132312515665851886128812864837731695250437980731267979514985864517667211541927952645775708871775763942567252061676600080483956527655615865167086344935372455400531387887525778277645136074116730579175501882864132173950842258790321166666849873097435290271039400744936405338208040825335987858192088566683250426690445487428028694834909157732441575328802964334525124938426365946354740594712098950544697241161996367044011468719183743984821835424711400286089627026195085826593120159921477036548939519832080369241507442169837246348073563478322850524294650424580185949045167735069977617004023801710544357133325690990606001900185294438873003346157071052213953419014705106540874735343650381489307941206858867078965072964495131952941240018671825936849584216571328174609773977774073443900731943810341359876297852846504059099120985866740626435301353003346122713927854816797591680900954964440658959688521331343008118217633773636078917907026877763617770567348581736309206127890185355109543649952699531528018869889477784537382972982598220406463754761626604518146650635729859968532024323251791867553229831447997923898414176070643108273863501468783287222291132287294007216935878273200255799566357795935298918703595445955218216432352424066869860005371043312619303590626807943432228543771681162773729824790873558033074467369615185584613462316652471355869709947922800973262661306590297185979375472574060190113268916582356781573009448609841106871236266514943040068638049184235544234546437829110898647205809777275433044023963984266670343760983864920811429571825398348818769010521234801836865794479218881243456836109420460025863925168729295383884443727881948316526861842568845998703864933643178210148444171783824991870577217367799777427349635511825983836928382866836893086689350036723630814038916563916809045953490576623817442250056681215631135205618893677282756521560196689653711091094356941067857502058654767837558985650869086367115548206518440439975920117254532386463515033868215140833486070339428094748429646302596941371406277351289209363329321246204513001426095819558320541797265909869764735634404692559079751773687795583668729957491779049847753786024053078984775038819063024651073154034039673984200588230823429981810006261868951373168968590984742838263036861932499357048560236158583895128247744932453037128789171675147689236604641380277717454317060139878367593644287785546219602950646908622741099444685435248932568235045271581020042402548487087930003220522652431511346677526677314257350677305144548933738771388822214541700571093910024147613306038150108197820379803056788578185113513336043862013449411218393350541110029707432910108719572183585871793853318246793692944451268032792485447865598400357196263239866513855967032218518519520554173246348398505028905492618329056172933863319442712092757628189007784318711958879561363073991535187878049352439591019132809896557017338770441208263514012200743509099062410510725808462043012843048340035503101939565320001766799248562203083893783857475746084065904211886167463348627932719500989357940614003377285988077841065610555752375687578956427171388281955205099063469517679666728946119819224106193216793859868870705511723550708653984833395190507644695838622173043139460904779748564263295905267639009333902333896814050969782167378205418183542936583307037317792063602158709483352538233611610444641371849169456479796297928176669954737501428215371616845507651072359130977974929585472887801695529597382267258142618735249974860246597350885755442473136115125894262922421103599901811679155572210243655953501216427389280958614668362413564093386552524685436667844298679092899366968032428778177943892166062683201148624647531600142589749990432276433795158214697765297400081577701634298249303213562960912371179115276060214753987709293672923519113856251886481267432353419450005553102805958526453752921604687457866045079027301491984367007766401729110210852467046719047030679810471558550653786584262005387737141341061960734946269949783165457152998411554786787349377395353238865001162264242496779781520650259522980669980986824037722908672199071421711485736615173266964203853027622988025889067603307557272935684108907354983900162594977227991432684899587116572968930241917176291948751223028909265046588567006029845546424558328487517871393810650428253661292861578028269867016220778868263885345358594417518656924153660277831418778541416767798241405102774232473579873810908792912632690953820020607839533801476069155253717031155227759118972907982166413430919835185401352847020312921815783719978743976439628584104003900012644945030074703452280538089527966767172960397032415387831303704404664286893453562176313182911941651884678655937913747906553284569296334617630675023770403975119147288692552140642394654099488879782388001263455364025634019216408771110234914298079860730156890134461524762398765922060527100424564077463947512843909642524823413159135225144251801971983705449781059198418690845408214286585106045479654751447202612235089234109095761748869079545303404988359553892106324176505112395282500732259038643627773593550897939688955015584812002449435355897323448367737443158301854415282367889632079574522379106999838762745195394502726589786158568479016287002414479304220405385065464447617356270558014086087405928433402451085029419875155767537431406178348964111831027178782546742647296375112102108584357116913235851535141156835172790453025831213392620582840408530303286252932986162504087744571349430791225287594721242099702660476033919361954752000082335910719146724253093441408712855835900534274701496146721519310733014182084610611045890319809072236394790637068571117835613033617028651777278132749862064968041683298381550646823807120733689527256086904149868168103678100387399450603788523505804717724906410896203533891558955482293572540996485520249893278518181105624366216984259774712132107626876130907715503247899595764261155870623691413037368160767056189534985241517443158497811560213441984813218685683853047670452818270450277814319284171102454665458557814700963998416379824222728392898025955298899163772657448687015718281775209520077049691304317926267012424303871698742865564224255945596000054291820711623012794925699527843042001069303252391490888904322138183513633728031144436640648239333334581367041791550780588598997627590278480784792241772925446766859666950438690518221973022708972066542966874862514941458244025871280163770836162603107487231903793193778887408856691510498696607173087378656093087231127018850649583012829852990942698661288199387923373982221359472011355475234246119107693220672828505754596340707153105548058940971775911951975210098893133226547676914650575854024312698532167522871084981496064973521297645256487051027994762158596285345749484332751281754127801420204814925115549892332503258990984389110036050468517048810231796613523229001740157448425863721506233445782675656622584498094434039869399052667039092256008008934057271241274640853827268758270463063936896129663110103074908832948609959040820530467483334673571944672791934211240034758803739194971871043876219243515676713473324247847536385063895346401660861607370504093466584614420855509412803523345734696403444540558226771774733819026146587590861618580004761106163285896997388955008939706325576394024172145679585151971292907314231051959537002763744964968646878412704619206372754834487829188148823994421446687203797302090107672159005129073447290175579094325550863396165164410886129165270672447115571043574503458106939707913313917118123131095494359485774925373018093772693033448466479032098068217789805764391086853475192503150084129823865573541609626378476314089331754084406542126379135275713914729254105809678606253236476255966980556726895340757505756372265922324671976809240704400917775270153855540257190732159083128300065064638932407331977945164185352252437240892435316917472539743742388151184052453906427344326500345072190818124783327663966452972844826962870323263167448472391778304455026096031165021556042975758790497294718976015242696775022944665310847633974962378484947364958713029137136785249107689208159204677883645947617757617819881213275004943629645138885662460101019656459603065241406954827750414105640559130069175708100192260492235501525512246850333863070852449140533499948980785423965515312139281941721716453176510472378867266656240562217555305432145430897811862230385650086611872879332770189016735587629310644926079502297045436316720706865853687524541074674566563416322799970643270871469974217681511530087163254487711329800482907933877475927898381439747178028138382598206788525792878828842307328659464155244529036616828769628718167709304604265549144916835552453197305599354759831860430100961631734685699110709919362960664710089914850086551056461373273240284056794611241720691332173724137685204940843335905682445203679618656602935330048423134760163220746036397632629726688516837309200105097492516207922712699095461234743612406845985674371655487154916254288337463185241268494165677928905861104473753902011716034896522677414141342096462124966081971280579746262089482590162748358536136118291694761130365744198962000407392365804915143291205456187031027299699935912083881726550592277360847991897844241412073855699821288876096651828169072515083649459898116905789793253115957295779641122090980526352804596126075834955383403439985246620282818892971431756284056020347145624252584961762522794024835743560895816717302647047715163411942063009292617680371320770644695612269729062405164952239765259378497815314255486618761222061886407405402285868729908854137544356238162192740186066218041970101754191143099104679934133309299857991558068861769946245373828500418345459174000476010579844732976639022269212562516596361965875359467499637345898623922699010077945388289654351645459928143308839701093733985421091927728723622843047027357462487489214855254663116034621540991253861572037802120788420429525770370403040044172637794884522094251760435263317003541932787980272575029650775965614180840108815414957513387309849216883063169904837188989366839416502980139449839088366690213964053011887177119344530239349723387573938275006031482679457691241468266585178649898920230736602830592459432272107991408630618349853085957951684879407520384435410786694091955645409065382152718432177065618703356538365959121618856538173257185406439776824199679647308002711402162295749623974024278327633467682758767968736995018355805316101500313479236621031058937627849656621503851465313321738941939179581473875760559399653859263927671594925780687907054725529847581445634697549992934391911849145878339804558856965486769880042610230836598186228643456764512003758205800597587744541190090504686614671660337314441997121975734732059001797821134618705276996107546089681266930363765052985290635379850805938660344029566056844491772569316772744617394233321337352028003123963621164038030291475226416497693295984509881806698594442875362201636444065008642334639072208010946508712928404158292668968123150319484321154441674975396369478216041447957161155101609163770527658905330923365234813980791306995923544739305271783210258131524008919081629575339128424892890201659441109547958059313696050095875157016610770834350448842783456584704723243335369091055750070401138584432499677834642979540543199058982408579905251997538349794683560068189959517693998568036478064254045012333806104717383056070253857357983820897066034693224065461621579003248249152280906469920234864855938298328133049074076885263674827877478124599604457065761462024259912423971183921945831962369142440616942503484120630785390584841212981939521472530997153799310707138669206886381785855553327416498624199149117846707922278832997203716022482270478468807980017665827352856684969872916657761470557686346868142146925293957426049335377804519701359424047521131378188419397062380525940644323283566967859367317673382826123346083651754169950232277553722430584285634462828972470958977903453990671462279737412457839326111772577349762832793623571422276193851381852912653892004860315287937662700633258723400189540008102350789965425215999440420032982580073521369875326213379693000253807716230965195670623323941080830317266136493728577813322520482432067403198859941461533708935428993954972037518711565048345989280003522095648362544130689479060246964758632345576624208073974130787543534168301010369789144963233757619845716537060505793447381893905398512686981861568788466008878705147299986759176741692605712153425734901999288779217710792901687086718833004570657207935306094562052864601897891031632298595417200564892530735237624301632595860537939358484473972517446195993096648670616531196377472294502136544579003850384767420233247044334735511384446739145931432239188584022324746580408894825630718173345562596458159951777242001735959965307953195178656316549107401351588422942431870713498277773900438482278037959047882232969379779596775220262366938233866297413562310686864794556819206793601892078422788325655690330768628001649282027867716707787043846170570318480720351513552407939230484364456219307746655031408179884941391525022528076001934351593412101634557998325656527454856645485067461485292872019397943533986065821399326482010707232611724933252534556121165736575602587037351038648581137700598408816058505919717572828746036418977117751727176585652803563735307917262403971141918224969536834986351246946410770921759167335337856062678912198529592716051882256950737294384869939643801338160210044942825948433545718366334876120348621590445171216345062542040605258859384073059219005450572054742048703339601504997993787544053817352250865735177872644302519279661941540465048199778918967721137223580618128984160108976168483632443163821201636368987056178832251400735819168740057532741360684749826841844758358947821516408046533881722441554533579562026571984519534861705972167381147926029365274153095303485225811051910178172539431185847622409331802894852455413754003385966390516341252757223390271637401160626629593503443062109229181890816465999426070640935905931285100592395563511831578635780559622982130995338896632337696356198478854127767024488753956137642034786610872503632020373551207860567940365992303479082748873397277794750975822903304492219277657254462310081056626870432414997671765752305383602941222564065898258763495078399189265857142265704118154126749873398932931113316081298853461313236596157274047470084690012297185075634750736115261455506554154507625776341181326158495366986744250395018604660831975070295198121528467523023521635393719309194260410531941183554552850613379481212074199075748114364121833055818988842716857530632652430052228093233877668268203931882054393593542313433768721848904440617907472788249740705984450941484465919898126466802198013818916924699888994749226423607951592679066570560408076598982190310597941004406543778670859911782982512738897374101098697672995023833637215360111628375897440007588076222941988280041124297528203362096877884855010959610207998336157502031187300519038641079764674608034410791203890738333672718311140310918478638707777087180366284453472299288070781271932069711511834810692743932412001553546352149869990317562010867625499243178764469758786626788481507881485748518613583601229081939334378859287709322992472841823216511356670259216283181833495274260940418166772775242172548020529631510587205945945088411444964312198881877526015191230363644647255483524984353275226135419183404324719919970638983882564815648066027292512868327637976985333249298604213360056106251499678445287467013635906785901427525815480711654090938904820970375529508814571423844134096460884446945481229871909351205373575446328554191725258353128083544025034975304433536260892798211434273073507124089577095202239869493415490624604051953793616155592949961262470844167443464528090728199899170048774842958683552201284687243772483633814437504624768595029591380655485144738580094082846637835922088041365713833760645222110151523658200814528410445105150916056412956935644162458757989111395863769264344164364854439231805972326903705728520162982407174423911059903156047075700659025635883448944883501034218145952532441583083489377643676761307543293983337869912137493059450904256336391928037412170877135034454976992247723248405165717338800733500549117941229738112532904353210370360158764166968972690879248865912315948973583301430603776476323951727924726749748383174396273472051178289284137754569011394402728700550161614119591139393358262851616489928679873315729934613433701683446968947924069853763633392931151762256309993743021848259494993540289364845085796391443925298864828382427368534989885049573191569916272654661276718285525998993594952708106228136659604160426331527449605789096716786633887257399478351398916791406388785142059269271425442323037800042558303342916078152825653555740471699710419675356674539627643574788542606319919785224993294364506128225365692358653707639499129806583295423917818711230036318893959151271572920090114781950217327437554333301669797489419375081418711123019894845265413335217565043544610531143943834962075759186184571040879317361968459651935254320398368284549929290902472686674067593974399604704790003698320525811067260696139961323512782309098372072500583006617086052129489646635158183620173158449697383355218024238841930868762271040322526763271536465416089965627965945293890185841931155392150072575062799764459781732086955554876665943755646423723172438795984103540501136801532924026614312878848380885176384719910466700447371625665715241350626579542325489480266331930419801021214773062659523451783902889832978489397397383685517039393816837815019145577780465918676664947251970591055626483711518564616791027372535721817984455597563435698171527645385516098989199977179571254967851859314473678380182022323924457032713882998749221843601635086313721069869179432105689680821623058602359731542184044861300504627329157342606144660381283983713832662359761874697991903716211357859038763448211692959200195761164345322217989260801390399160415236589438275451804967554388120196648179170465968540472984870880939991952908346331326698422100863657583170693475267403853620543747255227551502576518206836253525761515334424438449556869503510635533195211180249502857218707803132554712180150729803292082413702204401578236910453919885307025875330996422328028575769876810117303579840885781632860798244105470910446289629424021596671372327499305149459072019947513579751146479484745960618204855274535729839288374411074199153504349621670765202677523642731868313645527426597382801846898616403591810309986487536592287468666538921908243017829795247177087785035202361903085458719784006493977849887325037683083973493488506446035899109317084372353450324572385007758736143925439652065429594555339484209254211195426320782802267353094025848679609286357902479518594662743860461530844284831639704682376871255334297030403336792288417759830933483405541327746312705415757698551401866019455237515196273289197281291667498357878171783895187826101292430493369276295362830933967838229783795867064598442661743787132809037189102586254345096772036498743902922801419412215346868230668155819430201103187541246353637039996566973184135213622429912911732441789512843517477270241444046641961231559194380464729930354504069696042714293331712406008077186530877790249520505009556932168096122454710191730626196160442983761998475892534250331195978957144929026757612979155168844126185128694054727276994109455149702801965620640690406672008318373188874743534399160708371035108731843969979664316752223304562366928742805928691248103265645797643223445959410701634845141420953362738889514159666082760498906526119998460433739097529915696013392005622786700685302069180828798554332055477109243565989153248250331650187343304075753743766789492769998280789791587847987137243078629418564933531620000919603746432380496409499640096113795728171707722209147237882542362741374364177937409601723486629446087710361201725810319605133275263301771617426158390634558357176684194402247630973870057902160204935040466024927496124667955731660702092419593706266181570989867890309563061310263399538533385273081879101246674898337682405926228149246919769504959512417137272280957326630439646258470174305325080995857059724023478986311934153418345097659352431178761127121243800041081167511794016570369872874651628387679270532265339056324855832117484209039486205438437179065760672034569138199164211412917130809824139234284535171802259521875977335952957841161297111973724192697370638947654680934313760785169313749857009751054460660741914675610130448625567532555105170869980350906398336550827197318456011102908730508432354630333276936110230228518126117002942668252911896863205508526833137176037923337925760726702503059083555735742607376824079684357687760931049047489120376692408868415002834330132105670383875110377293607902650057526985388289616312742884173889389784151467061217716665334466479052213682036157094850112659635877932924698266610007126591276441382407398747864507266561499323790355520986509959709472608223427430646984687503285263841672168673567845143165556617869196244076579501150115169420630024789034272125234840162763491653235927357631767308848180194681239258803553424405400409537662744644166272225747953441921316820449549208562902177975117483604191299567287432999286968772869204790218326194226246913574483576802510623658685691419236778970896873354406751683389186697537773141208626099412995349355100168616418810754133684115825314581364082726982595846381274967349331987550282396691001440237257349275081719218683489288207754292150348484686671943683765769831735998558020628345232774420257746614203143906308451805574715422252227152378642337039396681722596302492466870683592680477352201058389185930820926062313874642062177112102839640693002657593967841500139696008266612094965381772192512361730189617116270534883120203091402245191023061841102371861603482352474966598749078555556095061540852482231284396173535926841123645380229799113658143318225941734509252384620101390656050967060937436515309701926613411231656987058017372784490682326189055340698030125940275653694867073075232908021606613587844323976810889147130381763117205573350900666733932296141258183173731599552314049991035230488508849560857590702458320341604383526088403932464921250898807056327288934322264041326151871675453886966138385244025225540333370616960249125559943920421089043823177325785811126861770332674838214592269370401397416400793501953603698044547243115124398013997984793274342932520271246194619447664574015019568790123985025183110520006377338856504749382961303183245251293774771536988417460752708595379471678634213063277146521618503648851655177975904551847433594203043623606859563698784434488963589509384382450453727234141872808598902182870246721896518893487509355152154090404408842527681371275283313214565692033445579641906770014460150414809659755165591314994428046515421360680500603498289845895474111455246612497227008202621775442523179680009109056576040788407246635974593316128476630293377868670895031915298512718632182684579376708090502519383939372601519931826519666657426516699287135974436740563309171920433494534840584924523494692890198719406556948903633316436026787870412466297365493225829262255531191549338665033295955058643612077443851559810211309973441301350131081995543398920452471444329896695221731480151594546122662722148560268818930426878641074258895485941452771929340484444014146934983278441519346826313296559043107232314476828540965021385495429432902162699124996151902170745219760166052001492260832033878241047295196000123364619714444975354037311283909426836715165535468630149639646092537952668671171022061029259517215191975651338222348023170735615077928057794853414634140337191177868264062935988573356641006714715314804657109987224409430297776170762415530677277509314928177840744559667935464876137243557169081825957765221492366598833409084657176199112508762779043028603848635552723261460953882586953629407608067890875526681989523282796074438787916661108672242348488379149137716920846035982193434828247145954590074129365639527948284517698028589786940903670969228879180702800346655494526582101359105369382697025436068859607185509990900214937956640746069596870225777180868390438767498138796635921412979763146866377430916303361508991635634325784616861892624321804022345367438973527302594975572898500719862229575496989561619769123986192166487832534904235833119757827513886481287498059706924381597821700887841950512084529273738939935141016327007941750870344948823498582970586317532738440796439495067021074087483563908516600533747349958809689519288059935190391563997083952785780325540173107599520223952896380883508953616818882489671934166139023717266268251737778612299848205538368710865850179704368642569160864649511175073923709746912641784059451210410925783718468223088575387471619401510067323180237312292716844600477463926821259059530518753093722621400293313465488050022368384976051723838350818198266444034696240101591512380243208122713218508574942854264374307206378904513637748678366771475796072601015368944427715565038047849377839706421531225096262308171392857070926523098053638383374449957984053619540604597948078610503438327451293398029101528667508791564809107178666847946815734671132142702613045577537379343374673843646470773196885164441129321388913493224996899133916594381368814768865445218833084168255410248446225066526479378140653304850363374771522275674501195687662261573768498089908086621029421266191533514205855648694193115142718339120053623458375706763889461492866620089540293160328361706628793200589857869517286553512078965993498889912340803001317790813359361667851444365297811364597946743878022902195649537933414662887255364303896529629543519964708313780657513881459039575911307941290082733487495714123364161353753888470902410274787067820663214269541198901100041083065910572797852724928689061433804980145294297105867890194064381314061831000829168430925750275800612657663136407652993295883876770911252612631793745180509517356361625225310182039314009230968406555760095247137919191553259920364350787855609863445099578484634150009469854264394656352230832193258537299912774954383267954955335584983656835777921731006817788113265734890313898069321435208263603264229366121330359493639639494451393853926755424387302398768665008770076336929585291184688391270170213064642099831591164595712841459655526237082084716547132574005856157609105884557608823069853575291670799116422995674759306673151885251656404450245517175370466435199168456879262024217099170292219560964265928059592381729183969589497012932748191314709197184512921381415882154999399533582111098621148445870226984353016425249595292140657744499907979774701601539405493727897984805927669206654135605903111890406271892438662049565964527246540301666874093447481307590023320848946759553955090870801083618856643654416661940205494227914426213184460449104703712111586152360365857805793117858996577425841267278488330643191939641355352678271420735955532848568612334796357590541878526119547739902023202771363297146306863365709087411796901846722974733195153780665616520569667752535456417419591279954082730002656599532537560204270413192809713807261947232326903283520941546174975617273376057994458842981276975055078923174573512106673834444086112507409710948774830160438356322307731103014297098782659726810616544158178140876256725730429681456988425846329187313039881046532605717049649093963762427067795042865665064628467618504244699093013591753837712406856356528656473786415178298490367383108962191349616819899168663970253677766917875440970173382686847041208390755222249060740328144691698996734507741248285739131653439177699218919785678158495899506008774367069247822583677539151641774253491653460832332392452898272007530436546374296374459261362486543168476707760804456358624580409532328763449751381724678493367259152186443176892382964355774301053797568017896863661055320788897983191620535467527046791202389375767739566340682424200396033278361293655667852284101693990508935985138800553581846502790557632366106670597728926950275632261544905821715210332602715774903985186951723627630181242177013314526551902781458839256045696406121937138649590295115276252519544115101748877673472366338090431627159409460454776933436709790512346076461020603251646886917729749686751968355919418671898715177954568057342742252284041182162546380264497131809706440007394622848416961047425516251311690475268485544862826974818710251920969525119391330668136610631812382975677704366272807713562107716319885482978004375642544050621793342766076636098853144425838755460091911005997881354539445162070739434577226840874401456369936316814604230136780824284832875700608791005336191649952334914169696329718516078036844200421074086530442839571949055165675175766003913933818438471117398616557430110146537621924491743693327269407833131537275334421117238714898430775108321095610739996879624439699335497937060703458898009320786097170794347579634518835687098475457093036774888495340936121688911828044039264194623397437106964702150597400567312020270232992063069865708038391728919264614942220480327153580081221686204896827237915798230025942792825279529028638464786916184813670410050524982905169484891925383218495052406117449186096590236239274098084342250834854080646158179205640756428428093395055428078698313446176586601743717687348871951875368245972328905040870903871709323312112606923033737929082914590354385925371685384512554940404300139711868818800894106851030416877038914591836901060562182368226246187203333827830665040816356483920222978210001273202455218447047319449533167145435153740149594144530359806152298915068182735772813318606240819154552384382245129437958714949438883480906437858245652345574901474947023931713687617795580666581127407171726745112673139411239345405264108091918515006413496198658446880395368796200364605477329915569774717398638012497004308450705628614485718263968584872926403785840995138195236741127054073685881993477185780194743896595598666348877560796938094959732098412696023996387181243350528090491561714735717877958299067115797956240303567101302888260095938049744358919011491871264737347911020964488221168644720761041218491268924893545605292335063015246243167096257042209665367845695376259712941348731147220420501620412391861665976466124341341903918744710894204088232303039515693700676119566033019074596351021197031856598544870044508152708189848765401281308274058734733420537353560595998163714152802674847169869822434021643180982138898202127821067214697713944812617875700940484666901029597461874489330547043017178178302504187748177897169362253224986742393113448628930677779270851824164121759534714104873859509725432473517958502931004027413730421121558926336136021006060600684418212021784829442573881756148390442669335572066811133399551215106867058141273272215979718797948972870459561313329588612369383987443155969234026366427657162928457400649614178449376105614389332183171858269520727908982949734515411238578832700373834470621353988287458442589105041918941521684692880068853215526007178138455900516699633895509869983318258559612243947202554417934635603844720069410113714336252985282592732016464571364036034538223785928313157460521213094239849517501133747336947623271892790917178680696035909281276330653977664702094002719391698053773816744104879135095758982279734862058428470947773395686571966938182776495329514405677461933066106413759251122419701972550228125570073382147766078506257074605866735615113093431430717773636513897684476027376628745319964649817816127130734674669136814439285812283776139048028331108511510746796080667430419178913399486692204090854301557696144190277320714617541614816162852132936759762415221799113167534482347749512887440529605354854611590427265145983599230623371046085009494220448617936534357792648318031209762369844644703682960274716108270204271874532098852676544380741870645079533646482450885897451595123684388796447648914941908079114027274024568149526740803362921931367426453422028304979923065600703906390231118010674918673020167708759825414214007912740788244875119492550071538978341746369036396104564109237977133129652931062025895881291630641327807759135062850230702770105594865487654389289854277603348298148738089395750862719437141194762865196858775632847999171677970844271121389509609700961829312655200340551924012911453754732991317377130009266054664554192925472469348980825017720198454410520915800779001116429074719002896431882703786575481903017597402258818458737729103575927239403631762108471675529644812844843504975280835567165148606645595417027669768178439964730458866566026803691984643751451867607438114533609308233308650452570260676383602265328480678508055428003626109558616172225024151913263544367176012351289328676762740784767736109319708301994691748392830788596336818262371347255972859148683144603687154923431336593436773609362447717216230568375748453875678911026284661793685588769824426449949734580555070209466391483831744309399510617941663681858495462494811741448438979650554818072104369833433469803806375523234826978943277112534056568149710576577441865068491308128552407630076369894794032837813313045054567983224369601170930304752503978341711494749817240120604693271271461425737084387824273491371788838682512387948773482704031385321373951245154706813413215471838669606803446570413525733682106985689227564580209749008476866939091329125769635149433759396430176640043948666040324154687085377718119782291678228172945390614351934716555678104558311697495402137160097683186994251538250098169419654038182812159747277841929343692701351484891862314515914914990876167331814122290549155735397444465899760023572498631376667780842304986732265788084621880745271418540120643736580169449674404146847480384287618042437521190673998038714132571294489518424898201484105217112662869353236074208674641849596795382379001620553611825049431832428201653421353685245886205485386988548882623282814191061955562965677489767849427878372403947125282601446554016275729350119949418614590302752147928593234601525418190321695426838114723480737787689117967207646665541966926234871877278006214643233880656274327718511276125693876141747345530438320181713468189069405287547892310857938455083146880151668559550420217578809090490074244412200326429326680768492501484099329145080453059826811821642728351366868278609731878610728293333858979264610825024352249100960526546151364630799890446563746478758876689726599904300228244683294855838391237592176808913904964283761117551331699291392685806894122531687866774844296677532272217652422926362554028765026438025302116042176138054311663719299809712681652122288976970206597907230288826189933687977613174177768116158107442531343690118493051729381168723795801004708158663887008124564295221053228166738007794840092372173500543770885489395544640878196835375835526534966799130950868011665254744260755346249676878404221223170429497199934961807572636247088179285305656152280801936047017472083171594102415364949489628045093546176100014342225093436711781431259232427113128379040570247292025186831834915581071642928207876033068686989521607504766927501244638630739178694579318836376841845762385534031050803921440557786654269299786066754454245006933230555985583188898836790601613056330560261446599034111566867808143439534882032497670973190804264610633206552400023201971926042620106699517124615466128365067351522489258721161055955202063782365195251817911507258055526154228620492208573262258067130793021475056283294511433500787960543284179108746759817464390275772402707451525231531359624544921499893351495348406049434528599975794919750924311230717414971039899857195180160769813648373907904049570302481094932976773713729641769045578477960927610674112960391617160612376038794288142366363102749589454448489643223676485206054888036635620516851504029479507400307600488625506374047794949183663447628397431084691680921645354004802240129774322765196878806193240639218393708394761916513514841609567684694477270255956507745949680486046788097546466820923776872083037219650547383169554688758474595720414424387098832352841894786955998866523192214773211967226806676239480429847619535138821997439508208390789703595102173001716489711868277019485996028321078578914876840190640061488177613948143512625450777770217641047557082689210468913387467912046116559869959706956897763479179492139635369969538249536275587411045815215017837623334086347666843701816711505242903322388766456732697823947511327072643978832238219000909994723644607326326144564591618655439166562902123569230394995779549104749496542042126670014656809550145857294064439833468357386822384272881684630735871746427123852984528668925399604058960215382059967159174009091161174178780365637013477276273298193716807619202239656397661807399475995770947482780296333093646316949477902306805474269080613733677876183013937270063128919200877726210207039725636524342271265141931524578727120026338947966559603795655057912831319455133290903344970016637630449166884297994829316342300824492204718319765181495682367054593551921718332385711493740912216943760743064280447144780499262092527086663850075352730684508816250799265547883807424386089098808591596364848782125384231145539914201529120660454120198690786793160123612010897992545549172750076550362427345418225504644510064645179491898462021785161117727453572510439289705762650404126041372898548019496411285920031777257373417531272000110273937586810801297586717549379056791971972952040437386038376817413873826867825226995352976054500066750307110078275159079931385214485203659683193364360322809347410364534102535778889029629305636016518570392591137124888867310976433009190787292707446399867402113551862449889625606210346156361768353434360996202177437422151142129537911707064263682290596663603252337709934290339922050122869486512454062871017454377686013616308566332552774924417232981922641900406319650942013432106952598453547196299598393925568529897807326328707561954925112789404791249122764692829503102262262553942963824899193132091973863952714671055042553889822210742204913300826865691668642154464738331697021441114639848681738846462428243005142885773820848067657089951135517115001139878026728537135427533637592590091302484600295128942902142427249673927155948981711990847302553881876115422135177969762546534275976264745455055702689650155612333815970376463544255288151417186283215411750974822030517453328909346672064466369254775311742775069383094657573559247453181671118074337524178344962336923873844278380945476594374049015331806497673923857854361227615880888772616947699788372208963536504730695587601043830068802267289487462909233771405045081144095213866212784012824772735031469620823417739501974488701712872913052037989134254115644730747896220296253331433911687380331824034761127584594717545868699033664375897238578616822030263927433308773095524180356368606830248105732110686640640166221443077562430006962879986610524679715664866333365424118501887767557924527833989839767476387504255255342275723703606436745485352970943932067609570846953912439464018172457419129198886640840935743831416757552265748308895311088379413781305450135837189843950149838669598784717318760768595827564968044768219636616132168819918114345063570476335097132248148463831156707999002447934488018719037674319866970528745303119614389602285024125870609273040410219603583286543808147609961930964492099996446177016222304237497399068731453808945379246509170460462607735901772654712170446091710622883881907557562577659776972153318163586787273651263759459874440975739584376014110466081220359557151837252864900052197220525322346279941230570418069498621478553241702902486326299742455775261037044802975412390055623594924903022073448156831884712097098901060876362008283626272715592948881842160174819598777267841457436772726392435433829559799414271275703178062053449505348899235904360910973821623184495145436477193446225318250156642488397588305494613718834814765479245575753901758304822939515661216439120520213005990505282976012435904264603335375785452915073238867490111428660379260895851423535970053291986781233349535860627185933307454315526164517352937853698757016165451185814052773933617021875353026752090075412697008711325581560355046387969856934648150929978884432977795983330517835746763764051932098863136892651280371730286310068169615267233594117350142853286353899949009541786316200233159713741490579929587523064725001232561154216595969900551566546055024902974830309194377431648308723409438237205353595421646693566374832368450279254938142047508694135942760872775304378399893957373386136148178953521291593814519963518100511668618666691827896461188207027436461904265420754302551819624380950186875680771850454951442764666769443596554830991317987897760135615260454009118048644745342499880178382042062574100276257753194845837279834312754868325770341098670008222047526307284123758128993941072053888074556962841352659195620546652265265657195552969328853862149974771046229387269499203558210310228780004463079869950772941195962008067503412312511079652175189053070594042016811600148036353225863739702192422727767240368317854739740902705500019240441556945030634112603081174315099406863132539486416365487362536391805812062530089985410567882897297227489825965202390761125605177736418406066501818454002751376135306397819088476596913190248144037351632520647449510143028498337658214145008165349742663509817100096393981029476957851304084966919098925218070008785376781758065248769352949613407865204344039652420378324503776737670156926260224080427806317358726336331331018422645452580356584156803910036414291559669492400262883751876757714571978884479379917015928129666821672190991384056361867217149556851035651616208607921278515302345453187538022036223568125491240076457677714240555536175460818984335561321435360607601599636920864919504605627683446398234466545137127921666253330155380713254516724496190150503357838039098513282268523740386233557480784460663996040052247634096501768714850470751316093929823893558499233101418909629720233057395163218805439329292305565333081448698501738252098451990232165230658664422723123557733238704079214430177847423942137703417340160133298835726111053835633465840756172963531134585756386765769641821686886934045863530285783167160682033455939131074954737215891674439604072716117530931092013338619778793553815713623114773968939444002219648300876633976604601033056058482186235302569114444529845828969598924363825472230062096684705470502623144306692617173268315211983704389469023462345717509936590803958185812572948287954541650005669166690560481727317827365263315179740044421927865652081156326367879375545488764763356910674899450652607893036717556868794678359370186642248953130251657030943110187416248097728543976528421618082983201426348455667683138248903797987243768565389361446742326401097561102840306659756498353257813040980860341051859754849371974703375429464230125471338794455274067342247288710606405621087695062995415371275614297506390831325863348930180612649216949220548684429168806594651285922832278088787355610122585262849291562499959699064439705170451718338277261617075505234266162417802112647544509375965105256552682050008113862746138413466390771432360303066378866974152077932952212068786538796786434141037518016939196604057742421692623509086526985815803916960008944720629875984232516180818666306344093395643634294227051943418705585946522371597898138291439580473867215206343024347543106559075956214407064474175538287839925666867818936192470141002562395878318827535885929631642312005973474790576309597907720690573563755323867783948293454942181024278086969404735936920314121322930425770591408528305408311677033339101971305065829122668797140350578571744161306587752628742626129253167290564376825692051675692127663157308901625392730195574086572631508142069106925126198265397075555599558686871577517972682955635625481693939803667742852995427130682661824313632443449681803916668660886062431159745496639899142705501043544968949199832445070444667662790425077496754674435977636123727472794530129617071327205598667045192539089674199497348702213133346294309127177254948758338557179926634005531304069326771297996785057587982959809528074534782551564494879576854846007010358722638126021620474870603878411751815775004246829796338821491645072731165807936711141574070592908278274341499127250813220035706275994036183275653546914528649104293707725809175377944403997754277622171778050729538862447518136338313250554549646778230745932306328210579239782368286098301541110480359601122918851309749784074478074163366846996587322308076019193806086543548042875759383642773477538771362654230141510445083800463762095134644027464153527019852609904449508615303027731090451124541741834995890268852372803190944109072817584902517059623925390251274708621648365220088616284413268521221278258823424885257674667549892176275786513005878483426474116517719420581226631666660224750868456283283811729813980378359021110723960616814806148157798928010493269271294030526243182821455247216869406969306667039343332040151246425760090845407209342872537600883975128849647626637463212801862736499609928721881959804540586814457174105047076732897455265556998307058555593986855571363951791178574171452944855760426747744157743848375326869210695960775202404582669372117974807388157211838844772312210939897798443952470816068836987287135758783303728297904084220525059011564321441350950675376251827319711065342468821362021329039253796833345125169878117560849456889172420641172755753852845400985029175833963514476861750487107470062524951455805181168890693283804454179596698302350013437972098707316715277542376968176385238760476408674041903539663117061695179013051924223659467075526955386462946162397385686808870986943461891341704264428098345407595970866596404141033505736838745068505938664445112788784145735011445169607290543194157736421506344673360521465422512499832386816247673572734884610679896554616095309204393647604120027876208345921138040112056155724492954466500171099276996896594611486486454488551240536900408539858003427942621137694279416084982096488129525926257610257495536040753755186935103584369786502506458908443900712734309279536189448385747505678502008876156014907874766149869172313149548993652600288163247004562463401439700923004984618397917528208211237681772194672703400355980876133595384563218368009777148196317470092655654273459434576637390104035555340417093579392923572620178129904231772136588991117384244419935705042644270459112226730155021678788184206266910482346504818211046942314874669306499572484955994368886941415162611685671303640893772527274159381784531709088940888804710136672273466333698696020279794133568475805718387708811422761300353136495850101734825778363304110140903154223770548013633698497997301972843580164990618888126974960065947470693458837873574137660161413725154900562621470986820810692869946295877892736376821415408801144966560539843251706780413670813741500064018083173120931178444650973382639079593768219852174972521212493102024114248993766889922181904819132094414611841790804044809092377691296996429510803393295687630314306823913467899049545027938928206926765974421350257459754963669591685531318614678294774399153814263577303597363812048010429527316675455578287516618878732625671384514046219718298922712065474979568952257567005950472035619854197082983736152671324412178012254981809602872064381182780412650519428792206881545300114391087101767074321590574968403099078779468602546416951828675456280062948641565143694612761550623280692511995286765313669666658625519354380559524680875889052601779621762831681373538630677614355297027282237964745815797056166093996557632333949967712275228387927708499066851223732663865653073335014727933381038952545507265864268828852661626733851483051006270684481587640012035197543755916617745193166686350707995669444185256501565875118824993446262447650799741266931274970934222392187072052242639642511104477113105107587861926072230854900829580026038150614569655739629590898765788038739703581029585071921340202999685348759034778218652677231369625095296730512211912343276976478007167663303756213293837412920664411461264634324916849199384455492647635453771114145862860312847037111829264335624487806992918858500335590359839001497862125402117951470622551882722311289021596249791915039040470080954616225521891115365700180695330427046005235438915353015300712037964559579783412633468603028099521207266213191108736792556387017964014283403061373306207783057857222749899694719908046148099842047928749189696000465220726535217608945798392608943167620150852237735054399579182492581089138692105063106128594878863971906421449071522781211104689380079555038717073426150125761207003169693579899695815314629014220095878297470295955005844403725537190523378170617297805434085110431666112911405693966090538232530048512761839561076755761006118878094833568428727726467285621245732814057283016324356977210163066591742925395702412103623303381202036052250521157077707985723598467639692776033890639861467197452767025491328508413306473814657088098982596227109116881077502321476067554713270782924971123233183441573382946071167697624738899883408528691459494320101779533525731529237409271611911924599823599607359266286265131230858606899880200311126601896943627174943007769901774089815648166165023258500798507092260436300968518042062952796447394828607902287935737198185065237116294697214674302402708391291874678267095165356888718553257818619598942025624096688044111917735087171179606149964446651185122122767689044463160624178770887181845108587768643734857667273239590383299660105258126679819896339597250392035677923491270185243465031195644565637135671602702942825504100643491251685062904759483775864253106162022892496699859723630510424981356510246172430966915356451869919660946412859896776997276023463458544145906363561379183446994023249483588189592628664296495664239854939136750917010343885687007886227078908026213584996502873931778952784381171143270322449569190130773956892061163273485529989717354086632768066732257953036015487086950553065861888413479228337953061140231154662109401049446036433583655285884983477163778643148954256532772272489194749553525244783028964065590789477089965993887628569730563691739677008188549134782725157477189849283009814170524213884302965399079656518970217072571551636471785721651654246592838109320857035046801093156566346458491983837849614555597154149464852034479298357868205330598355022572499536335977373508050073108795100625427382694228843138800009537992356585637324929959684695030807912529226095645374680326020376971484941970963064507269196179890959421066172868079150193017767639061788926605463697551996381283204220349378865563053857807700032544286231402669007745905981851775564375487240860983289891022803041168077654455351612816127847156733296138143875969374412570184835890425672368756579612909167632019472981414410765457377409728908929747783747173158360258660644380989594289331746348344323501343844676312791511490550255751797722957752633519843535912371007097425780679501111348318022897369816841136381838974051486709906542959327260219425682397136971263939326188736402866516353700641547696476311713578634768728164855260152505497812317538471738641142879293310364574588778569382667016608532113028972006007128873229858114490661203742771667473226873537249952494890301573478453503594206755719440954235394132487201839062141660547059903394751392219614450397385830266318048588563929597139406120195952663405219761172472478463456729519598975068641232799137524720261912969527502400334950820367441282160111134584829515130963930880171948990081458251572398931178521882254247418320178682564366324105468610810700124470624995211783431426402829047195571090165913974571693274368406145125550306030045823667182234707020146388911421560701037637598328755781136588594458854378003539555463803727254952069481450489601207874772969665997535208864244587243169545665258450961689762831896990459580592386119557253982117635980586523260965283992234591112248789812968463906044954263864187382415694931514294227585710452159425757737363391762002986186640209322043023662324885748704817251640728837659978847544891299811941601088853958484267440555620114791338639552926808945676862948013869526615634963981123750888111123081322041397503935123691156672019658500456285310607504963269703755042373657185051031247168602253855632826322238238801972374721337288236064413412858499011110862048108794154565736581661526648693527405742357938789250651844052778084632756779496874581469106961516481075862502322741586716949667822862922229719975620200696446540309695940829625464446926015123499957195770105306802831656553303479712539244031463680415176500469848151468434361252375211851283559195918495046507688659177540958283134580950446718662932590307787201871348653404604661532157010218984182337877223925864510314928075335295763120982127651103010418805702657092291236276623315750308685897554562647204561841482564949139741148370521085836147358288783445154205168956707497088586094251916567729053943335392309006964789845503045052599208585545980071944664563460689048267731782307029423992455574244153726998298840815101070265436913461635024431543934148614895567775957225459356018484410717665317405902278305649711675131267504211563473614138479551588157337166675836643801564843524899204049372429476194879899016731158990674744622129274420343994350998422512497878821877639233778404976469901608910707500686076460217220698066921495976238302128446661084865102121795209536924330450663789930380477771082229118727484665160493951783841551225399206966630643582719951928242414290173687854078598020384949476347145151277961845932655046741132725625230676896656587532610093889329024288700612216235763630093133304130324087914917717662972719369502099413245676709338067972558748256134041549962715978286741294800158715377017048548873119511366771940492557217962577380473522225208198028577903248948738576101177541898229673727719943769334368427603905932697247861610703225443697261296634805606069305550659060830709028278418361778197636978239753001359899631517092597466586945183713587507102369841194186294168948167713831836028432019258195981712761956379358698217849512564311834182862049752329201008133939785518506930277702785645024790018232804975447136869671688945459036933481455359751697389221332913268569523704609851284900363883666618352913947406956369500379769346565007542716013073494400209355714560017776577408240051138578828597020546399514354773263903315632122033192548787041275363145092016788964040381813706413825047482475335783757703736136952731904540535455388816412021331683359363122886599955489154864473335888691745138448112906360237097212182025674183524917931025137701264310130967909948038515646012642114262298412789831140623933385578782043324012431161204563529651284813893928999886441984566221870459652144192989512607204631771444210271383310817831605887498297179963899309079725391522261924477179018855618643078403516035903245324339757781539895351793258147612758342204992659491975903426722471143080585535750961962447377362926283959565909405496167795564127258411559567014267852599142797459054981707413052427769147153552976794612581981293542292862228795312472544489880844890734914227800485520355803096882365391616600140384845069458588886626725595993583950045927404131099599983696085816873460212202197481281797775391731667351605342978260137028173843621794544468496390493836003748162314347893310238202934946622096492651693973492609182183175534428496479486117036700581603394889962527283225315237673336291703103904791283640927794565042425354358655854661189816783125381017064974332364793171471523928770768157120466808954199742944380055257191021544642700656096214514630270041524596626069502130342298538733304122774190697750608831492732995966944335998834804057762295138681594079115341032801274583747343657421524573074341189253653060978986868583313850864759985472845671648151317011599079468572096827309702118917412690967777492952374183188385624861996302731806351616204340059954804164745379142021836494913121920232100868698622919762362061897188966408589808104543780054726865569963082177066638997691681256022015950702498268355955670684352725776630777418389955817837896190296469436801999380941801900247663329309191498399654278789419915195100973886660951524349636174302386638732002196866665448713839623217113184300358632776569081108364558924520645615970735303011506704238038806774641019397641092904438233066797344529027610552432404679804991682248194430062868562700921614351907459096414598391527891799674493219015032352847293195232048843680428808663891295451571438421664075331299774047089832499689248282498004461846160590890321262734728766845413557652785803827821742842128003477953841291906920883545586072933117285841662821968687344813630589201176067596248746446673849140444061832747412225589712949371442864654454197612889890691733147553120181499510353655574307414388245688559111215939220621882154818883533463616316745105362382366015731627626461657000249026129474586279521347160372641266347817984037416652705991740659397298699108687697458554522760487233458104885845911566552033837762923136345387524080724658765334267225591689756157418009426892880573555892927107079505680800951087946758335566658302389741155662128941602000118560214867171026716846511286386055273731942857230025918443944938244430275329852955619751268048848840223746439897279027205044075720545067988881652758915821670673813479295232260917626214193432621676955782118344058682946789512828807695036037408710344021813105583805214932129738769526239900039162889385599838119484245502345089115474795313539146199203128268179265009890223789119769138152297956401011416527981112095660679702469808562647205816519553214722780214060655712359457182713297398552163784606315757842360001541434797145163679629712851822153606149054738252493153989946536210627941738383941794628357185040146185123071681617889352652282361243945272542640785869140550843620959741461923450998055958417669837981726979982961951986648162099656940456703779542433401907975729144699567130776569117035779607287210547952554581969143895427490522513283866322059291652734309204686944038430079071525197078204989896831996318427105105316720842640611396859372256846778427517514406819126392239294768147214573727652778600798160685140249366926229956211315831794438430899211324381967850414905149050293716306960138134837540469289235972683085668580361286788739139655641820088913833959286523923160975058490918660416466984659646548406514227314500958701411719353486246713602459562926632711545215913744565680652155882092410494809093022284379637387273113612355613886433406779722454077964784211484107057459045374187594462057181580849240705155788282955238915717102512215608734031461360462375140508878342022592112327132811773731781743410871988189385401532485771539319514629865016552658647179723613889906399619112598972874710209309368476362319765286525058171054306869860810510821720892454628511862586551001942892395707400531858696441356090763878369434155704997511560440348226034837764104317244835249773527964475688227342933159252496120781924022924138836325677664498898281053169112432363379618426746550200993797937746811519626100903881366897880100034852189919250100705692928187853396261920977478324905283937756764488004428010514988922414553598606417281155008191731727516368198236397240837909776326670193170538419042048518980372754485169910659814160084787756291364166001817114639383542623675807219945516597023899629504181524422167389526308463144354301747393748590702058351620138821110786808470148927089711688587975742368571877171676454062422318536516013248932925252871583188696890292997363916637682995840344168795120005934162165345275723981627984218637249049932813758151798023684450883585030513848333310834408941874323256967000408986909499397227395507488002463696722130294074550657543400778022466161439588454849789672865071448808781015238258468163519777683576089152120370027465218032050270465706876088776209593687386298823464399153273915196014304503748945384912961698535798113533156852179694222359414910894589618827325364715982243136645151302890510224233731151685297640202861008643495891603962309291949350496900138456047098184195489880269053267198879377280567215413690898013182974094925384596290335653116523960695020765843950719876729846600783970032801627047229428744255204020648993525228394129885390941733853942886246882930935988619743455097742673890766723493313894991011481522254893987467709434167193117924000071694802112253366243787136817381801764774069214846708666637309219981198889045273157481146692974616349550505718767572595399361428372998153888291564528798299912996424277961389787470208844846561700472648509590789028210008206314058794989136670927638773295329976949042509545845181099571715778833739174805100254968786021913049234714304524672487995532766079415427084956563333361351106149700412548931372986540900830315790432648126275967309197791582931813997815057954742436953826576870140525018718880582985962836433845407919968860321355372559906771041596346087705700871669437420576107471582907176626248199305427403884798146243632928230464950499759534930143121979270918536443543290985275415100522381405908650733499011035330300903243846962180718465504003047266598229558844659091287732245056911299830629193224652713520990421304724966677738920563087071026787796602950691485029453152237464655551873755000144997313553198437888592335031558287737882471504030948347365723247686366288392598849048606554781798060601772526226242872164035660182214776971203557446255516892063129249738808900736973669929341059958349104926555773679713478864330158967387072695763395178844250342118940034202793410009911045193557191690134905221375507177083152598811806706582570493410325637421561468603414907516723243134208853520341957174039343230670155712583584756688781333508540886165623394500378629820395440439794156568534313186221812037534591555385880858944324745215186666568728132273806646422023208774817283807665868883594328971172477619109312780105935568101178673316264291629119632493801480574630914459815965992963046624785029538388232121783865871041739687625934679657044526369719310106863678224627282347352948320321352911045250559311489513790580346099673772682652514808438663218171230676636290791541439227568174523009620931115618791862190875217207055453291200436214415232284369902160973185772066583424748068574265440174046987907659702897082314160587666626434214841530363246579213660019735056957392298505386090857564884098687572574338946248531147098046897493829576944108631841971733918524519617057326371261942106313660558355427913545988699722000899723126701695987526065608447135148429670847504132854173579927214133790776797024447601043291928225299184378032504692124054772460868412860152923474437531097619188107361309621569821632149589167080449892595652400371251355500787789520492537987614168553717770687433949395217179769295635628812697994647654997938490820139764967766638144854210025001323251475804412605177248821375434612355084225520147054823390589676187762465576325591975006135445039303152586160202973226535725133155224415896622176951190283615599059412073517386961952711847963916983305656723801826130743565364728138808482670857244883487430701852359564076292534246707660302879942502491202499536652282164373188839223299026529787304972083113442803236804218340687387650960410548471830527669883712602855426343318149806031121432112536417879053055362434629770459747324546070401879468293022722104388898462016073169990065771432335511677392729399216136136535007852336132720124171986844265387090628034799582333082763339266228398665800478845777349571611043287232955581531514772220205034959304829650661235030058879041987573318326306940736576119309873366033418791000686922427780214597106899735387791465184095832520742221288784409300763382998651721432745398277737076850137949970566793017250586868423424078575773907173871185458939501833030875956560640668742364830777302456172781534194967330913471245967383232756647535180983188789837979609690198146457387186804417777369409760827736410074320428388375576624479618858719910771694911235928660237977242982082818437230582178796433698342865733605059383241268950582798124887432989379725003612397317142499788535437684099762163681829629510936451330514229436202486869925109944651448345900878475243982858917173848920083202551056055056258019801038858826675404717945593338166058691550422724837246403316199234690604002991210862242275171491819564957830510375252441911633327444265710368301270303052765736630905441578440944121622211293697906956185543590726192943141124712633684112078705516371256096266782715459919600931974190415791397197974604254819949083618442948857330672925360147961758943184873591277058156571786564610779755581362307985312563152319823016249703292728703840850384717235198182548755193421777871850625630363522582477750314677938634934355529055417424965937893511558880985196941689056074810049828527302324499220646457342306106270793372447680825309590353062356734242592416861290799381600657635895541115820511060602319128361163453050772885494321345891369298746459268796624561423314589585062956391636403529832590042693500493098247740086136958937691233419985109705606582560582877082310420063425861964342367968730995094355249343487367737908303850687346075579846475298038745892333317004634866665938263852574031472178341322385223196042670102256533008438057467466071183448291902148278573884061083223904187150605021609696838442992325790824809143335742787359532249090239973062501858185279342350716937853740439541774127986399595362278007973227433887995244142781833515258200864020236694761429817247535538091862254019256814024263191142864232256355683591786829093657243746747389421070185627434040116078885816487063096099039661437055130911571767765726805798487315313441373698902190614492544986195698975344386976539818296374079007690100490888137357080546756654593971423858576112535893028877071635067444240541081459985872344464171596215839680849527617032365828829176717515566576271259422733818005937543070880127255705567914317907771078680556244635621472090706205182767747911016170721584585107383272722603489862217132784587683590438743610732310322625070328192019918005798128919683026577938268084752044914048544601390481098342963739762852502041873980405507362526551001675766834192995384461796014765590270797885948314023496561611473005245425878911685958521787985537408946531949439956675358917690534210493053600541321049234378246116725259992706037079602738082177331133337079149868955502351091808470831952503011915217446333229012111901806529732468472077675943561042523272356673006090475939043829604194906395922943485199138957365562080644601396374250774205213676675382499141178805839812059624692108391042833337194574757140331200985882272808334959101455526912922299870310047394709755631616849720084585113986872141501481849356660698357515494142912700517656850585615709035067571768975118923409852731183848908326422523577718179328704506704828915183732930175092598448337567525503183722875491674417110914194083838196531983023232519544733833036799422090673480627972690451172031443988653324432538781949264524997609042432957287236628372147520257855289426018196358181830660064182464964163670072804897715226178115326991287279283150535989389300853937077698399024335765931229787125682496039807905817455641470517842229640538050416608397626817612919904384735889725810345362469383595716291902397590238585985312443542460772415975994986312660026189158496851063444029725439501037025829493173131356230406385448118841893828489206521088263129126223638392924034863675699601967573149819644718991899436774237033301610309836741855836427988159398423264387032767141338057043010202447332746446743578646785066036033230992671265689263409620755254434191793911280501912134540709255324619924453511593440354669517774674950988897955634377578498171562329143585126853768439663150166099481083293684805536878829929192109596665561116887627961602805270878256893274610542268764659975938169737887048569893645126779882233785765803339536757443274645506202014896676437236334405200868670461445688107086058595820883576282354624502055724960947669647511004069452148415634792621187498942724203691341060882438092449319524586963170933303291658822483605378248990499353822882452346800642175390901208108488090208448975106537393392974110099009369963895742139200345181842693203493550387356208487220170861721375836669169458672792231985245575395787862021408962343816100014490827529012388564346948219486863367735892820093495727351025514261697058261283719408861987971006128449867926816268052532866291947384973980905136302497390906531328319277372590586090937737726787023139383256015930130519521378937162188953484342673083100880693889765039134179686754631626822308261031139732234827123796769684318833815207499497740060840835911651269628493123376944068692687526567601583379627912052090440666088566604036128808524820285523034776711295879350659159787933562488651993153256770683199889660004540492137572997099573856859527437063572144085787612450448989869320832003494636860275725371067975780790032622359657421448450780007027356264163728324220054225309638925336123457503745907449354010555251516974402534080662736298486467932179846574044672791267170189067213050735576689243524520743239921419708369030980817695236114768286482349793718741282382219043245248138272675289141846963164173982390253582498721904357844496384249961241561464100520139982362896273561502845652484505129309874112653010462972290158670880164987366161179072328243354151660518293382548388110464565215919121697835418028940555818148256548230875268959899676613573097650973618000613610705614685836350044686227546887441212525915132671890321072785537546376624466938751200033336683178939839778420162875309831267684432289245195037104413502650413703381103205251936469695803467459483986692147656614529692606029651795787495215887589643496709900596819138621392306843273958877192386059075846171184179610318996242321476398770476997661165129859091442165975666492214972237749494248599155138587634174096304489244252540908476176566526286407657973960733998202253637169672930297313242524614470222564519562974603136523796888633001888975943536265909676707021493360671812656390605221043963210064431098646209416639766474621984179265868793979206273512735404678257216997566293391087851373572916702754169799507376793581730493868799547303389363518585668776389851822307995018262325181912683520635581794186436428298196179316511264141391638454003304624819905893708153721300618786080072228222752792966140444568408160822738989470934350929422336525212621277053831834953870907962048625043870039708500646835784526145489156455869829089854470182407702733703072710187204332755862720607161530208540641227279300159577107256072647131688448761955290124102897468096415956185750929055129553888737913702678505724941610735078856339714280589768943097450464326492971353815198920093893476328001976026432766969366494180243453020076230378301721252496265605509357525966224409144703029867161506501217720209602976121409943160948315554548006381297565939013696439969386901359975758726875664712666163131060491154629655947643292178845648499056353797558266171503308851756795342976524531680730084914713328387668159962097330833260478139233306675501554623832948453090347404369293585245212016291295386192275653761402379979122345050859333374801087836127258803505859491296007223070442915732068142328401281926274047731032558219716281787340474670070729461706923658583560426621571780586946996786952907597006210917306574833601185230927003427504125208785981829450840681726697923331506673445162832036015839006953849327590342674431568554044470153999718085240751075507719953726802737132625665060983181169046527941645243815997604095698832652995931069788638644505240290509865058738445621419650979069011024824652259589483535904236743396877219636875593368601761776583088547200345460888234058480839212504983469240694687810570801491103657250560053679285506087771145388115386521212611286853784535812257631850776894891869417932870010352654545429336163559877022869241417332269012696624528394701396581528061017466186252758899570521112665614800296695824916462192401340306041051309763473254126067159206822105734549147708783193207059939422573520146948873678283960978966209128108722974342850909495031806141897243871740987880229050380286123182186872217031107743678314329636662238952313076247096094443396535517415606498400647620292942132125296050559492440402248499231394080406681164159279695648499229602699340113363413414595595014103656152710535458329022190036843341825243433347379577960445328981248828438859113765437873863367192777598638669759440387197276588786056613753499629551868452358513967355835416296317894774630480213273640694059766985030530506612647341166180282350875588707528531094686235195342378407631021815139643665604825724197271040819451474791782556259677280057864656690993377726118139571767109185440944882454507840849231961044050602187620137753478184478564166806989015498952394433105818633785354336451731993206827494071623094503820127660219611994756058240128092577665707221847626681294643988188441099988941106915709921827338729899459341757709847929714736365611948524853085217377581904405969334420055693307379834196765674856659957058268715424400193415544484909937954078903229879663462362244421640679881343522794489401353722400579461440502857762775624164102950373147679478861157994229927018920788073949068255980669336106046718709478390985571912963132462878238783182950606423616117752458993878382596200499702616927784142805948110378123657340864435699761483765526063653194486382496090299289120000126944881896837135812462962494821028949581428614123956132967367263813942154566659270703642148509100600785556457715720964520642084182318677257049235127019313214686946154325303926239477633205690081048804570798017899144074797005979833781067261689500316801165446296147930052043225105764786504082497661285034702222639155065628992658397931924455846482195699875747629435404661821654782710611651591301977631579394899641762156797841114395735537037537576527762306064659579764913710310552012926770849555194159702481575187578519630191923267698891038291368000415721447877945724132034672585401751714966269137666099759662912740643565578940909837709263117143410983649293509436133379701749369975703354103091877617394687758193293460929166847943289825372861516092903564163805563865749062616176890238371987514089670077426027242561996910769463874066178265969979910224559377614115464039459276648618411676244766871030692248305681882191230654985658490472356710158979575693501907650096859358070231409782820866221458016124510366216574210468026016258639238452675095809632093160032335118630739534687614293716581215266693378653209438751528747580590753924344339708992923544459431425793052780951417848640691148414311521496778856705582355810559843832611175078463986523844328626363716979861163298749470323168834251071257043776579152122923107019474936536811960874559255951240344925389498671306958893163466424796973312740281452161372622031945005207066759496370017505283570120038453337907070790329982354341272215165495582897100978376154493123234390913075198619872684183928342772132770496794421116617594529625063876660500772356898051221694049615791295844803533079799040832059004354147821941115796009884178902239260983800887536532850456152690247428392780622069802471002879095754588324852714869857433098045822375741635132888957778222838142687582546487355345789341901745829560577406855215230416813754112682035804308083147828924495158148275727631666423119844000468655977615959685537122181269163133911179545258767946725702773042449690737551572570732281708980551590527003048729035693386330687670316178214983956660579590852751036313302770653677413954624880245487447290360416470653780449563227619931725065166808915401297359916481774138429323244530813737678724714191551836312710344357835515162506936511658063965641043605847954732350461631658932369724545556108422744964345871190135537648784286090802168131973175447010666352154837108799793372270948467564668643818212993987807721177336758943713556477706527856059096990243064801705968895780273813784263505053476692210077268336884791841360974459396506944108300256729255505798601619640690918039948485494023544614923402160853671114070204817550138709504835583013523099711907306913322718862243441403282470820673005276314417131360065865223042748780233423577549409689864503098451368075104275740910126245720507064307461539923532194537271953372976341858900568394748502593854410479609165976371248705543279574056967306201027691382549895150046576277324422214557826039480280226527669135728936327748757107581014093313661245064316501020680878572000077456989826636552887979950400127420049910611477515839272217960254070089554559653427963330907221971518959605862631594667169619394532995164290005021568677936421037602316381378678651084038883058958586422170302174629156816486907488796639247424496881248007031882202193321641434156325779451393714087764028149479838730986804525026293132660954986350666342090184978713884638772397132741671919309717608241109017979213622948746354439235045405051026716681677387721483207670959689690772399634159549966191124889329479452365892430304228065686530254003799317697324317855649080743526381103780132029002334514036296736621589747447886411149164481669811934333307989960580598320031931093526300400509782070147101750506614967217380387554405614091519483205644642374708438491832187650413254040556256205083168493695134727285433067699276273351217418361751166265591819239650837582585467171297562684229725638126673546912091334928081121789611160806094599801694937857129772100174344121398339424960907743008825244772645173955079092079978154606770863170731784335505859101244283809383444341046238521687525493366797250121361271631210702117028013050641805157310644091065584840810794821184048918057414091266533298536806159560508525256896415740972099070569786168629648870699447741012677583125750264203900287523749206308112828560246678217089450986947955912489079294956742548544795133685783187475269511453673653283929868127170956745217134802076383500563747672147785828175145783661639542670180597306252943142970102989336067913121101390805421778805582712361712320748035847198601118597027291356768179771782529856947563243828092716583259125398907656333745629559882402380258584236494369898148101377443793470371712284097234192240038420769169593199499708873263337168016050575437848372662591644087018130976579457079902456066065529754842496745894904350043507648969881968638681689313555694102817417942783489057632750036772252250331969541148678596525550339829353724897562715244717968333757059362628658263019928778241923066763138883235227080241701119978898882636130885973739707844160454393930449423258166662847846279529233830391298706909158577449684586825147105788520340034383664683973480117463973505441526212003732755466888700237734996596884832643132258645174637954187687901540403890929355594434631833079121741708676676077171155184575983311777449830194890355330415590836985028919156350160956380325993328500724510112487971482838090516051469115994901908414245863062366676327740587713037327338813163764749180857212197377708428711430482805296275514063680242864436012444539577977318522311367874265764012740467238256997823673854765097696268421394623913983369222598104501950264612063020347676608455693361610334663438831959881756574883129721465819027194832728743248784803621333992745183406339334925449668486322241001420284801600280002434896093771558205445433135529971711268291143437707867540226173901138386902369823377091992255340135238693410927187501166162566640547329033072568996560537499571162203485790981664724513844058836992467120554329538209419235961621556184775759858793553784593245641950865599296304353824132656316749953334535461315985284602808131046006508924031106521348371897850790960317377463747326339408273501591113015750901698967601218484248340593507755894741916634272507956600888430079936436740693136891434800759073371008069503405407449936286212534355810148387611715684688221352271134521340511066270277314035160928856167728007029185536765788867321272838179114288003815952787592738092026319586636918090664006970480809254468298829331385110614418055249985118913456816500978509115291972820116327735729364468951467834372267489616653462887135027477056030264779241411505666474877978316189986597604233562208176947537324655029906473074198679741493676438502141834255902457620751683490078389131595665170237897347233780867599211462521615035027887609166309881875841048235846257140761837634617800798423487524630778721155976346059740662628163238156936630376121686956921743913428668557214784673749363215087604568827840579126374411445871426419296284171218116318980652207304432349029295403782423771410451393907713326691616560373199497188785160746756438857248343726240649992620829757042672497749552056637154993352641630748643559650818551880616098505811246906753622425636565226533340929875180905148939388853052041471903725020946195306059270149245965556785167009389754335653246204428145965322493215046998089768809869622718550347170331431379444927064824260887243078081259685194596369613162512539526660767354968704942576497252758761861724235105152521993943536313836864521289756483352144404490575353359348583107151325291508259553364566920563699964063318876818770007491092189036685249762714340144156390999381096154664880776644792470411234744124161432707214304076859114394786473089482830791263872172135483829041016767237249073652679829884040586971049664527188180391197498085021630966115003611789151971940945984333783221802809310193274597230216552326267756511849762767406120312679406050511340884836201156904337500318494163522770175465159460931625847619308844631006088231380295392911984796727207135035463061006800677735118267949471527874658601227583505098129290513086894438988529813294709436491265045555619286099670703458437443653915586702364708291382610808405461392863926145009505680409288963091604980623102677404260224936988838529639665146243475619571845940445158820394248427833971015191343033491766146184006735886107495646039765116341633071940517283140024449581885963400880836350720898726793258490274046425196703414618108084654294539796447533934367842667506518702613707441172734435720243668131596287967830353444948805241536937716838108661638597797003522481917379513732300434594110078188747218700283471010950167734043652179012229487339232781469194706551950943705326060967552360495293556321440489088921280047871743743359802378870530281164165810630423092718525417103824134203183206047666137302049328588384957701943758176861354397837665224526977914387152070562674743675445234296220687337706779528800436578891214232639610391594288630905010187149993406044981799672951689777835527212289661256290730492430539416089596170632112311435882032687212438488509660962781716612300667936692495460122643602616450025736280256546835428418506900131764751543761355629661279438783887096601792803891596760633406846928900447723329532135623632979474464208634578808301542340232327994815259776634530421196723946067445102952701648721897719612875406478372627581759866810561331836795577880055410144143614043107035144722046402969812003074825350698517792082472763457111192758148082530542674517915432788456160292102772874151526046552018705549544072311399188926824573117480394691336009374544626749528840005037915985326043039312307962417239596031454370944290672878806314218132077517478580460938606840577374170389929932463278087085255948704417058166015965412224074771080050896930775483311135966806410686072351797164050125221218101062308685526010869775896218114315861339867444367131899210632386700963032757865903731536386425849670834146527448646840281114111475128085239139224813218230806793188051661037727900245404336998570319914293500061836339365126838817349359473242904867487796892974466478368037275483080516325643740724952037298939158600822423820716233678643139468410409674112546073858034590615330975147425279666083639348455307965563547146663115259005559955245759719857261768330786055817039594776462822729911724436002546118540974128437801237497156644425392456256771152660883307620119014101364002702418387186468808583931552964339453014439373739140099353343746842251548356549184698890176322065625115994686541561982214004319786906757627224415400406230444821951414978312812142108153491590056563747669155567394109782882882074358587211291536427381593354972250930860482905239350387892198858101871072782366253036438670290890752520845053085163825551926142740015489509188879519189245924002686162473920346474099026905513042119019594532622486591099172517682070498427766108950482767627859185740304110390619587013412236517108572267918462356509709517641641580947714661449972449918951983753145392586509679821408264751644395460808318088393179449010266390994161504159977278566824358870368014043251461811099680738562758157433064772724326375584880158809226121359330184220275280345652627398522852857767276441907487781968414698458428808315975995612023473565266443893927131024928836131959830768293509524704151366592581999817114444230935901498955532467397735259066784607717249983956909758659793290085003099639593853465083171016127242027714566690534572998903582462067232874899287097453234642111766461915285626270608316168516125178633095423348484986039585217118507760060832624407277339317929360715290757782685748332933561090359186114063125499823856252149970374195328962020571944826937506245674541097145192361124437648331277228889092906450929917654756694881448781005786320480794732363172006772109431636231455900545633395648946138425933885727563539873246585925465212268249456627815401556091142392303631685228319578004150314214794172862543040030236929223005568169404228115159329607316143842984371932692760550927772745441020716541416732836729262620083753311288144428457364821471085168544615926269634987260626146879718278296579596273121356812478815519576542018631195352043923000638966684505184432780151080019241281751395087895783742825208223668487281245287812067041847136797594996653111552937130429084821220916445052665135191069183935564666258263904413414901601408860115821306749696845085402087840805854322147798533712299347866738798020405247138562133486919393790039324395000464805100572213968655889243741018966956617131349712635309450012226932263407347846110804781233273850041729377101976825992114267348790129977476693742211633632624284261902279398121524103706692500751238977113233051185504667737177944761111559969717159969533392172687957224106798869902407106038188439185619087839087574760363404792498116002018859403086848631739000141376520539189856664842904922307566989427732703044799115134718171810450724866814797165632486564374304351023821272657805265244217657639567017999693337427522439569873558895927368154141207907263715426978347915186897016023230317588389773089536660864867181348230695916530858232815671640972808049857862937420251777015741313278908789621879451089717110508768117681931577460631878075285555497065197750244075948960979610499011206965318421329714347365959088996777786126066138735915002515757338269331958070363534101315630080505136914150682154170614322713455508223920015857851413407301359700635460047544886520459753601629716573212478819296667703927664679827237943048336990353634239234416227981089304096971685196271986705883194583130166215380977906637552871152750809469826691227638350788849183005765481703789669527390035461262585974933785538355667584131939456801593089933657571321818495711736673374412534499120634841995504101068533677540916010191825720998360038235386065522393662528419412084361565526363120869336847448211555704566748382671728143806530264506258352003822672325025741619061700751008010734002091765956224851369091206729749521501259476168117517188835889432431501452533535672144475348570488109040398235664243571193986130486517463366119736597980662727745679705171449711031126084707500376200026943629572121835578616731327443218616836977440056521333469618638594071732820452013354668269037696315779347602707833370610338799498474453985000498392592745170381080272537515058572302988272568779423978942228457236522263385144624819780791983582552343499584373944624369282300606517847609320973138323285968541675926907613531534549426208295607227789470902666000968652499074478306260251135088973277010206502295664293503776185267267215473957986145040337586728581071074560954249316465614776248567335592547408724216561471012856214366017055372208245227773804787580096315129545073060534218082443998109845626650950980244103444100108552722318263030552927905488232666361737288121726115689113314235234352054100408286509490912866847927450284200798036329228533504814431070261816650129769164110317856072960765467346974448349188976640669069146395271936429846142857569043453876704218100917706060970901853335095437538551284902782377511574166597942051614854327608123765815260623514849764724086137472417317515135864477965967048758778137225940199166551593522412014225490142323091071669915316313795875510430411583814555296778880575781415949889696791938250409278944718910571294577864773169644569750083446333250396427175847695780803248879432597597142874098892823861418941898605336197319615789832176410216683546820726101893709927770178394650193692858070062788649122579824436362079895812934038277064613380243511023401851705862035542222023226334672965262449046724190332599461114112196245312980992685716430756572872113285188082781473230886150786538838082341840552092325370913407341789068692263417716672786146669086936624767591737001209894941286883558114840971682903361342899332274211758775024246329547190243689666597324136447394817657812699398156534230623837361735822356380695156489118827166137570253219290248356416525131837373995068756362909328809533482580667928482621246762808527979949690607635341185970366535041584918000737200292835319998955373361083370085463460400572955356964119579028290833365707988816623811700626922641087586868026335379334824852193997525084372723623876211693245717398706314425848552519225123394102819439061933504622729883589754643750411408230160169967726244995716739128088024035911717498017112365866630965782626455151574453545808349840564761425260889626254685316684152262919150532265278102639669278830967294683316158726853635759368239597330513400177952281635253001813866423184944533228855069960998143292872622931435239361888862801405364915195694533360570433312637611920253212576515819377700358351695777093722975654070264461663811246938211515010296883855062387205747575615654958101520833485472004668612346794840370051451450321523627591563434981056524688583312703233083806805272280231550247631294685323515585946412096663827856503650069436339686189315812360841944957887305437191301894596764087384116716477056325648297085674872023036847924396055599422972157283378432295735283383455011222452114360585490015962897763272404927926873742988966565607894267668807726960534051983561706275273752399268420559628817774769684062928888324800649049529669617856129032691740055621101747713285974806223219086645048905834563520250904640933380414880366661798015977304930580627370933241375098501966092864793604832751622375746679572481885828901834282747741061960800035379485778075200397848799194324374944352584636371025876677972782993136692889143480230870212822041970164858539188472344451583546662229255819252416342622035844838803524629557887213504229366018074611376237114046766087361022225499796010384054042863309042060882840699062330025648244258814381971095066514929188850131883870015711305410090709065695108200462471601616074464188335626433071646958303809240303117978008859061481571525793708079851371667525342260009233174211415429739499820607890320500177845612771269807929822154886705702388483989025543724248031354453006946016052958867556525099190936290019488624092024839054151425217830207671984062624354100413798374250729984090330499070943547449369605407329805990919867907477311771003109025062850154693201591931785338909719037301075186678655125050487810456677321231442320017205436418464931287176159568629710917939654499016335584618357858247635806571376958543457811425130703283040046992948544105778627674743100806039401922289946236861028507320055478010698820866231592279956933304958791306288033925656411320156851696079081729854050644831061929736183211751563563770078841643584518925072822712629889665785811305434663527456139727121660103835415362400364038935348318728616818919249798058793981554916951962344194865384582029822812840832463522234130643156876687876972208740083061027753010269506200533466792021169127921160969745362792279410704654975105694018473274642366986169804870875699984772669474896486966657403912085363024082989067606434915943329850471511843083442361902988161039958921499816218635713314866432352597395719600753193729115671054646902868800379808799001079113428504270477127029550273543714594896666857806903732222396039107232875624441165991177937376398243619989358947166562371181635633455783620451984312063308473421935046691228069572631125463677097998468216922126944668126679255780204445406032588349912839499031213332081566018902972846348981821982838731555255201599019529847064913672248498787005196221847918439520866995198659060388476749889954563644678238296919242401556455953551560516920731060778601230557824960280350337554514063573123382613433310217841720831813727712593173589062095144053325008116053603238001398361895714909282980875807573220283746241267521968628861333107703062591423019815954710573573133974607378270522059768673908805974293252871406594608763604604858281502749435224337589264815734998088049522838789134930669732322136112600180853468032371079067972488164974997374500737283222317737222381333253489963773850666342221693784276163313242722886419405011744704763236525174762435795140879507778645491631753700772716930757499243712483745238193764091823579455211820812668133133191388437948910341263164200809466560932132946872275702008630501994320106980907059248598751094983460099486195269844695812145829467614261673855356114938293479357012849824180275660719766882941877190234373612605227908946272172510817764577609429813196155173248950167980465187514507363352136863251586714552700811019166324687002263342652795237977696285804660424249505757236785656956579643394081258344438461215099253872457306077926482092371901162997116237124647058797776203565593410349674984759170632352530872222976249698002078370040134230633356395154228427222024361305752661539477628389947435467211167307959256210689095426878859749366574897072849310655074953089507914645879058934485409375521106992183554404252181316555131583189741284271097230402973561799669488713963215576777750791912753068126203895552726922449810255656839906835182980825409652507993284208781344288924355732256207818970865255368022591213831790374794357919306235257567418260280836461988709146977034043578386597963627827621748148356877945200626304399303684839394391532477704049093887627858817788218111856307894520552948783556898342612254317681982166485046506999524393609125182058878811770397389400621315770174340705452170143041198874099909424351967934476736887531473715526808294008193423267599809408729871826492376801422082936025600142827083936122716707898459586196311576529835561780819457688996280784943078305686100231651552563756515146131995028448562093713050484413405587881280835642166071107610056387472082317173664814020387831818669667940459774756331536734078709366696589130659759773120498580655440518843146275914163265850102736854496311943067980270688999077499025411373520252502353154202048275520117756758519135843402898156152601235579707356849889707717371713999896695333535664159032081218306425756327629801107749091095181709243263722450333718786327188474773057733799063287589489906844730908538346109342812927764440170465429963721397702570263330542632227054964534221778972064085801491209755843458214263491315295527974615394136446742536352168539977871021586803159319409955861158845698622966267571985533403674575188123922635946954246379581767104663490317444270464928692419374028844180460228963285157310810322353783628207019039580557643522374395105213024410928065495322731095306776674945623805333666687666900856609658014339507588745322913545378178831842392189985657699540061972662477070113238367706911987348682895816941085353161337033049291946897408821562865705917088504213433542073564177084060125757169340174028495263298858320570424871985789815246685868120621917206509531962240831895757059030988878422090259394821924550070682005907964311194572258327586400827019838077538210520133026049846020800415707460832285435867410738315342103495915192921579238932584327145002962241845495590204633648000814961361134065942203058173826492312333417181208714222810022444387935249794267076642211769768454572438869137385284699259590910926823892284254475052913097764324463515003774630073720888913921772330588672575815432503079373270903147184786762704199510150666669233837005692767736361862586680050408144800502844159081571815878226369686012771258932475292222434403333195502608757566770681485151962476909210113837359676147103774312723211329717576404203791012345542141404473768258306958294497807222014823489914853584185869501049757064049823513702747139528772255546486241510171625017798638626132194718407087463915162094870423423509656637233346239013392565674653103901807338967117862588495926564766786594641616894359188343408282051064895346971926162737598796551071317700482227600367857868152487689650204891289624117347731522129867501527789682038613335175486062762954844216274415882642184756151913993737110853059202239081884928738738928442164268570660391390738872848081576261924756230181867179988601119548490667656761229258206259653613242486004996424044212611178586427545821810305274078817224448662294092795178498857488628056598326398899582014636519852409849938567576166022364352607283680898322520377257840494152278343017708803719903520719742947346214743243923258696958292475861780566967714407701292599831943320175600653902004771918337604946291291403521127534417715720614908491519716318256908547907928709644175729131909074950088347187756530073351929773115816787175069752925685510031201939180040983961650895391990809830269012308598751769196611888525003260996566171447085761500968847898442457527523763934840686281036000981310552047665364155599300836842539868371447429506572988880731174664010449995355348835917077990086702847614625055372047431206969392239794595081150993545830523251772331399254604406942808391535203164755072798071744791422714956403444817217375027653373614266444903107678802044264104027330147647202557569841026374346401723782358286339566956020738378998293622171371523719944589050452350871034482910265986742201410862884600492743589847603633055276445877504521669019129770813642604077623766206561987027797958703922250614519212968836643164990183004640691070716916524881442979521834870795837022588936340129411564021849098203066917846154581434882755123430087683121183725936938035817944282229304654119314306539422088101495786787264216751338400196052987163190199761834187400230247062843362059268190930708914009585238969661398887831292584059399686536222076132072522870374695050609637077935514432665891397462223512584371854666489245946657835392053860989800945073761728121038815271677913296328027375059029823833837282147654169793311165109177767660084969717932707639663184628755986599400155706064101300860531981077127023536671552114997582186206117424762084514100059713224385958783885599566197834221377530803665957871430263730119775332218821436812477154840008054651125942067182314176167435500376310687716239959053524143459934116040516365630941463487118659005538672897953598531047891099113092800906118529369391495488261437252681660008819709007902871159730629790286103280742400405541578160495133602676641656465633430945770683698930153745025378368628879874170297638952540985381594948863631489711979099656575250629795148322738210079907134063582602003346167220075466608802324784949703331821766731699637352741043297500078479629613709448225516483374895529130644543745935012567467886500576874951097094298322339536842181762025419787249357369688838184408169748836369097195135649604344796880862116852180289102801476845668830037480994287818605790469274475253754649581314755359215578404721117981292448233396023246305795780168024207588587211142526159776700994471716295848126582132446039572340112747333606689339384014983673279712772453515214899028682922418886724406088222516725758630373349112325576012805220723522208317948767198935844524262497233057833772881336379143815488246964623131937904090095044767412182714123387309480167367326254283342444439658262516313318442438566083169670646812091852416312165283136349698909443268472808236765571469497022761865007757311609015893158731138434699105118537875356774654698115815976924126916065117047146578124052769839997623213848756810813194359424266065992440197164359323180363858132194132752122795015820905936836101550106835038390945267853303078435063057318187285550682526523104239884853452909941016314247959993502551417956376045452460039171519629389025931585865844766594558651822877108169231874594829722471563612166087255633607876010634005398115422695428406831642771382825913666146949715048970280210309060023601328781457155340194873424323826693729124985633405259783655311098410593603053043769103637057008451513804433922116408526713533083732052030164816032669636692316006004381697431610119558764958507132417843399598335165144130217817605456081583890351855080353124787289386799838509455033508855323928792423322499141860805580739069819574881707568671157475948923350620471973782715135567157187502798932896093034968651941567349737834878951845221092268235021343386732964553449236293462585320039960225039432585746641934689074616622726380896779579684440671714812053709806499307278861550672269870549434316799710285578535487850262308561458250744088194695948343967492848951415162213604549123452227477148067057359055450069956377176625531008388685316262842687233111208968787139220500142674010071052689325042157298161568281607407981885019822694664400974653659317802020075047143293627395051678698161490256532354136025290468945537297317723939305576314853337857855256285335374927518826479851707604763274099524846182296566025368047617423402884394444252288431955202302322669607252719238044155161810881789301776909232087384352442110610093657201623130407713350780439109240247348335803140515559495214755032930628689457741362197250245038756238247885344502846230766214834581399465850866597646758271277486853029707128426089224601434379983316664970197840553458221869280033077568185081185451718429831034485500225395882802366260973563451436578762895382956390125792583478822343093210630089325660836255629242128179011827660005935021341989618061643426746582305688199656923123675592818877474323794794904298558084232766691221348724590670418271312147261587061842121393140317886048562765512470642123442966797035699928498129006323275235655933513082549816895909168491622861527380190235228834168452075917059891896788484002679160099432214673418266788487628849400246926284697982985707373958019192721190221983804673328860942518496186220091113502197638480907646269348337252146342028597574671845901159689663894570344845891394879479917031491503837777631271393058372179704854636798790478348201217095944925128086056108987586983461948459762107645365734768302943711117921392735944586726520097648450408602149850378925714245400567399946706296676529806418664815413235349882841200936370333543409648000028789339742573240978876963316217529355915165283326112014685248572899457965697351442523717532044858396561322289746674169469094464962772951801490061677723520448313054340107077994731805065546413639805279744879994803129569160693598087304550393163753845740576020791867808014656006548312393754947943710334517443909121938397857664865418939058372473443524538597822498836372664069581407820392042280867601984143903703657058149491205533135830336341161227533471211302039724818824469817120935411537726246704588879125316204214812787976660896441909974119055924363189074404555824792424431632219636518421158441865433510316118877711821911518602242613887350718274407389921156804825828283044499157762949573119277967177034144562253412222591845058288592323051094926251413914019394779629903372636193636167375388278038601503997626528354239800526718104751626272797357113246041169617646733037205330016154222385761660875101004786714270042685633155562256983986323921867483291498961714809447401751529295605896545085160391890294870483289049053752734862378719192258257562840009640140384313828218587402735225605848167849378946254670747999306837537866443294277018348809746105049557287959923842742762249684908679486891704878312608246278834889620823665082629891812011425772952234755746381135227695039450358947962800478425973855330123997864444098281738778548765837337759331781325448708893496934941041359228078323540772429124081052674289512641448345806138915705504253812935212166250248098564410358500064010047664284350327022384164177532939093002306993086969841365408419803663102307686722659121739308014917954134424441603820572786962421091898213632164142727456537972733036722165230678947322843457986500796513705160646929520904780391510658284150712501280856649335462149962367852777065593222711110328086790004185159461425369285137793263623131007332669763730189610487321296933543107444997819069702975767586243779441513412199579685955822838977687538426135231720232227518931774120306525028508803098940031392173042257592230956655810453696462934304969835073475713596612012249486572089186752110911787655399461240085497642260863703322299199757260865709533606650439790662427819529071113234325969484978853795441087023301264413240881542972850538870494050643865164564024882197943405831980422494460971593963255952813104659869003868496302410127766787749252556508814930698823614958789500236971299814330496528529933407770982020444221548432337939194034905366435095494580222167674151631022752249880417202410188528444096427761245986902923097550844158603533328175814500397701286146013097663586130019758799053468141873586597260634017964740285977276435509513537953069169062954861243947688295304543532653305318979102623193353804070691435431694272071519317451494286122443545739046185045524893625984712385530160996125478113611372189305566542482373971301479467464230890537280621993435665633202179140169853130709642201598356186287496505005374962210638971218053493181746798329646124110081184319606901066253150993669095941567776854393029019655915525304400919039972121101919539140716207443993116295623203836929782062864816784964399805920900994663269102740426348002701623037632455124384636787466676052699174560667952456063794039077916369531644969201683311036823365859340130599245810392425640172519375022857799195097593339722823045588116766687577925082356775400411129946391008547810484177845171120100653238783391586452872066009755403925339778621993627368888431805781529127066152348413612614499515038699920321170429457123513831014902777992258694763674020647233765750753941111152946869557708287052291347530961698365118981169153765544158772009036368752107532486196586954493583254043996904596640176777012897112736436297583541229818277564025853322224177823247298157348711139971916415142001908654874921708961091371325630312002268081161616579030274027305500725745929894992686565764057465475483032941655412775425831675707914971396703315662944357933303076735004019534819218914320366532976232896447491752167256040334125829834270570271881515645029940735644230390425855779237999819668483151869700940887632076937284200435233366497404278021430411627681767049355882127839613494694312395719696760737172240098920353834529053941372055648074453449470763197174444183004450110692904750444541039448558397452407932425644141502170065179630843158810560487450977403965665846593691950215686138551427976802714195768436039780885467393203323113144201181021970248625521700863452916054860421400082916586829172223614210008944460005235384128487438470479612038511989604135402816698099461094499288626097350248094421115406272433332453253237005263343527488831828995690221070465543026609426136353509364214974267726255661980722727245995159099948649303417441776728783200646068225441558252583811789204423925497216443372041727188643347594305212979230132727760433538730923038170420563951173408278573970046609147401725082260729884674612432076832939578123953654243290183184465864228989525705967574294222114683281158731489850174726149861235381688686518927331019193676778861209940415467721413149881929107519935695462252417086575951507435740489743621571173441236047167487390782743976085443120347592823180757869994073784489280479750281412140189281618477295366966450925213764417118281235506648162979090898546699019621151166482683425534079403079580150908047761118914005160313035853735679441069870713010752066388108384975702948174968893939195317497262083891275230627174028034412706290445749440697945669504441597530338877107272739843215673801049207762578148486453521169757070417697503797988494290099234830444499037002545610096525621441784578083306418156975614457751628126573840691014699421254879463149311806166648586978853862266553458670691389067857107485166604812226126353957118484540112694029720607444062691482364657240975742370927285278106262197488961363723668342998703008000747952354205109217835842406439364534275269196300240831038184869739966235645025805889301241418591669043664111914136771487214992258877405281984981661547527741125892926415964115404403128094770375010637417079945337549049389373901763465295410664646198910198762139489787902647479905225890491117020460373430992420594504905345965789077821598326680979899908864198214151469776007496283347547587345437139827004199323449191295103196114957858949978364417368702165476676854295052551856643530311117704531242424480111432367101022397733157402877867781268008470263224309326211659436083526677336439390554287296702187661857859347965601377492028666371104890689992814264569501742127060154961367082481011958093302272170632832360061092553192908170477056469449659168215122741432427193497001700516807682015498120982176021345743840704205664890926413989663081811530546657126719714656248140881975061808891373913952680795312534221830863646037018329054549296220919165435024691116527275841673126423568996549710421255953670144804148507238178069471010943842015674779594408334424674372656037393563283716887697515106982602844038526362707239638431905929333060284825981069885735507075898075964515017157796072338180688493073280293824825356763056002911682130494164944441084703062443284448986213874374423007854526961573287461340549876442525087966068311733433885727951841735431256527410814127988083565347510771979746370843751991174934710020881606637341009513314728155253466309251680752400473507674474816914543597168556590837526675206382124794387621916473413129264178206492338265044730899775312701331032303072766000941040352435934705157966690478121912691737860884996039784291169674731452937414991295070781827089737839985265983145492679964023986849973512490864504439058906683548543489837816446413749529146472259941154016444147405802151922412625227370696458652282206836464866393895364441453515537294652474115754457828316524972201322524577783835318537559281076625788004589738423768330248566548691395431071146083692405872848525971503966840807011727604124211054353583527977836233726828742955888791510125463449139884512491384291893939254693798143301651255024297305840264462448219193860806529024052150734900037922508120093861256508073346590733961629443629407336785872671722866399949153937658164351186753838037809909661815556710613726966551773515420396073023260141064110994794255654027907076400455189325701478523180882293160699337225189379562235828261513868087709304783714959991358742787346350154111939673424060686547501612353153468009942940182734270282202534257929613903813078368288882456395327577846752718519496403749835586986578954457163684986118319473713944567801370256772878887258781498046993863810911585384895537325202462598088653059636513873253438039274450770973596350658198750493175340936485188691885697692356913578821250265361552776984771680259438101262787843071908159353704612733348114714348427903968645101097892153369497440395677340780861867996647336336066242297264019006006046235289710070271183472642650720428926400603829927399838430033704906363424904494824041270421350838966943852897336187041035280887537990415658430006692746384375117894413755553289191071654773126353049747355417245209003196625086403480696044491150324002025422872927678268203924192441994203764164740498292390736328103366888969266341457245509369722854349032901104832848929676677468886456216646898938622091616113843307930947043761431241546681979854219285754487364198678056787362686679552480632795594102618664100332229968668999368209835135953313713462544050131390392675356659797240135771916362432100169497125587733882363574365551059776066919113005188288577181709909848562135370100828449729528022261542191157596624536331225752513716626597689334333425382743383340085041680462481636874049711236769603614061236674279910871034867188172399795898811993726151885493427538568794927570334872128099848970358227648246933868191586016175025631542992250329439499017499411652109356607391263968415195802460481185992329226879053078522215601519311855497114730335700042937263460022577665837048707044882386087448181952445144774822914031241373027021759753082257372654141195650815432389617414750569438232251812786104571336991250155687924489683384702201445663984180577645024786430657421088956003098077149207362274697326383112590746823461342677748683546564889039332079880473864594233325309533728880416281730868178025675575063162572824213850143737940699834639238527428911553397828537839671893207508577778577126363610512141905350986271759657695673637494948156505570904242131795460494389054441654968135777177853222295140864777240637172254000043354872550045820919928342932987536876311521037359228504949531191447226615926331388165431561031767196648996099087663499748238591683903664667945464064140468168028421612163576803366218414488625551033518826127888166134828340689563056912058534938732721814818831898055628908054875430889745362440578803948291163118835393309135360774640529480884332191021744377743718575260401182192449764617491507193039391742746806160178697771859525404036621683070486390719579628887550649349330379253428435224955219141664741138752644722461859664722228983204730714194031641264421141481021524270674432623398865136367482580899318592810938578772220508107423083124067406470886892952185349979455078438826462898536892109370783560628677590527805570777001113655836986630168344434872533055221967133295351721311720419667452519532577930400287315539192833239893268343075197955748776697540980530833701587792047144759372715017120367307189732199413432180836174906173560505447626752979999082772832454681977960662474878637795797337752842460251685920672129383244147183895633679880712806073654477378006563692430759617985618680568689479719529985253700120325510682577263486987663925044403301205506709495669975231818322083409866671802058571521193471425867046607654320050262377877362712449234029554521762644029258491303867154122401706605329676808257666106277345268422991494205774529090367643123418844027227982546071997285588085254249128617061181280470227306824609289509808134469806751501040985550492958248401942897247550372495724620458445434005066756374414900048826911110434483410525326186100326447211066213222261086494349570996863719495992612224944867247658800556027858811612640695130890574864667821872799240143810784323876979774434587092616367023673913733704093032019757916352689682202878776942682356963810443968684295475485698941672001768027296768752401538980186841526188696598745336011206459673826518428416135102792352411837375356259122066335286840918365416863616702564792007896719419417568285679040869502289092862312054651842442107512722498676045587859479348720157470947681599072755657503933278998615559333450295979086509870705026713055464112757337209192336151284620791147371024987711780446712846641702181233305532032974847571982339119246798011226478183202496678198621106153314932918984545325151349208545340954426856937916831060039001969738573038136473482195551007672793422347139654313285939233983815245457657845864045070783945637323499293848945412254951663959662963350788413695948181920452898306285743943848952112996556941916594949327202218844976970867415778901653308336292793343711165240304781304838890146163464275478689307449639564179047182695265082829166745849777636985830350904357919424487412090296007780640986341739534116261939315761619106678523998891167354097875213768213539919177203218885311001673908065561971517401765485390108293409734720237851938664601909857502708886073903039661290485294895738514067570968386752689556767179733990719188631679231238556268493810554693748361070567173719479142630590831776737991469150014122314990769918815994267111431600580465148714523206511684251404332769940142726760316935814092948095763093454870266341018246527951508508181393699041459773185258890129664408836730419670120772345799397656839870990745643438163403630627493506603599400944967122404827457496556437221702257848119840698478042217132049742031601358413610610593381127232068568107276792280695899457013712726119161331561332673515336542859389691885170222703616975581908449938486853918478750294696401905026064194984101845013158650266451598686352247296215011225694573159596621500616094821424777409697998458941348791738081730442381707140022643892931747901613104945241067792717819925298975968117957846012132238341348572212777929679493514172108141831866714549637776513030141154686832484853323864338978005593180967173298972482905288153137054905253686406533215924330150016979769435552867777773324917272730779040648204329112849425320699168784170637853181886775823167093407537827589355578155882949060906013331346708398667491923032722819872622804076362950811671970780171042322567755025077509515206751675841694295229966408886702161185092602760076676593964534766966845328253659938136025099911809777718837824756634714511323046705158937814671670105335762472568864658500128930729405514685276104820242511726803873322333249711678049789990743526053124681686282212566158273278533133302718197613301732046677449204349569256331596216821705753285495460577798726540306278116421232561344551281123849873296383822883962345695279338043688482687044200555049642501735432428993783512628782652682371468574883183558704404571130651347516980802272389940046888640799992291674929681005389236376627774220051481964188841527553200043398121995057055740149166445399337471408295985133374508929851663212968755927676732768530704108282661688768133540224495101863224829023930299909901559425882426726108236568790251992092891253626333979703476331566676528088332590149269106390718182420371897540563011070720660657724776763652157162429382395380975110681937699362750733776443552097167178926756175969442902667424368679761632039006628805663296015747262799859156881453783041274860251877404972291457808992249421220850680858439572899415242595635159727857898933583916384367698270690653511343975482129103060453982219088638892153141715422247386265082738517279929446174016026945188415846637528946646847862620025842323325818995903344322874132176642019464231328683043907171532904500298665077682778083503096964569474411442572114362752424994507821209329731692977488390243054838357395723576535046238405655053437764895780082932627050381230622319726119748003384468811572716355327865138288006297504393533917742817809661503701021842000825580808195709296550108296069837861509885164394201672979750081820287521629002967205071824481879864774474263499599547819395793144521089636086979780528239127372600750647273803309488180089702843662244232950869792436944006705349622482380797316418937450513073237831040426347043649008555931442164002430812006045812843084480018689536422579139397237812295746196913381038378255692385664535712907787998182554760944645767736183217596773352455011410774816965041513806498108168248826852634192819437453216221528512462056056236698355463340440614628403821262164725228270159987989404010253083706106728239078839100556672631692857941374715634526978751264903469719322330054041385089810750252738193095496831997951024621698334332078473713193747137648035105063387145029838455007700326424259333480081216246411657869005735321852337790602992350005862546186441993839204039898863972257790407771901044665262804065240613290790725775087895083637249845966228104640070833038570595125969472386867106863329898351576861866743203571653461421161251356047790503855531095604404090480135642030787245984604130549591012982302339358515250885686802802746578596407531534337273302477882303695570233439348592415164771112171739469212738223014256149761512573687492325349416824858417403428734066954345211864476024831095372773700051939724654941140482141604589714465179880359214787711419035878780730839406937472906704400590597076304539276723073444543865266212665196845401236069769833337150434049569604604203482288519389054532198635924463125786686243409209344121813394514068693990421555446247153473914856742637880218390920217616537667850594198933171777529141255345789195308868488728810699229249038652817225637387196390655491977844088613418560267452053361506178968995667725633210365883105580576552005271858684485707905719544860572563614387257517026444338988782547302742670327369958257626552277107270303819535940091778728432214621884405605629341505488134147889277247177890099303851701374749411414531418426611619173098993098296619071076735483816228062546647698149138197942474258631172253349407321387688117952190834648686528723029086241542526476044608982015183896634637411495050713068941748945695497490340210760881777429248651307113388739690430103066937042289161153125319762113981633914051550764590701485626525548732024039518366267474113663969785776409341159615255459260801065163570031692632895931756565017718179283389372766331390638007051376273461397820303170134931787262520499956852861874438451930235688648154085898572063853872262642301368789149016671793987278689779291122079255236624414429452482712001021978002812117282212938733428079884473418600812497270368769686469911870349492470599239878576777214976568409410162629710086438523823269457846640296865804925461911932284229304063163345451393663763368864731096019832676098603482010179718426256795709694997257260379792868985183828398508467007128581845630018608011784123727704466395854222925107863765701824200469861964006702014074908362229218094007809690014569711039481196001744585855150677565923945422971793987019013950308339406735853030576958280974340272026008376129700045950142106681027371395283608705804638415941944566218381551391044199220779017404823655637984924329337893725626208756154735003927161141469403461376420791048909175433387489183597378655443619596268375701601952570244154027537027343191814738220580436419311824864543840006137463460425711422741566988898102262913968190366519617171485458019502696976214556939514979102043333589289870889336427459603269763987008287624639641091278911212824535097346634857578303838045856303932324023198260620540137765964655102106848437157578911142496902419115175349808517248472069478592590624297266022547731380711395824447250270495032636732472347102695643644658550285814597466481047913266727432798825738325729754446507376745491293865100905043415859712138201723265936769189441969365001009135566004423761193342945655471562508200848727024604722741386285394814702661633277205576412243664794499642159101286168793247850525172161308189674336691456208559965764646481878463705270193160344569297119523830015176890197594098492395535320783065853768615375798194688762780919104521613604750327797223036691792608823560114789248746190621358837349107526325453028120406882104215688692101023464006805409011842143878748083411766637834718233831318741083410103376583394084180233505468543157644701499854588616581614454191571811790909648079592705283459435321945900989557398146113112777415652128314030791081796561882665670028060577375777618619915535609023595154964947705737539945364658622010086813542283965648920171873604240212341801753460558932800171797839709536934234262928506560315069475312443153962959331188308529888316697502212909192216911954298152553760538346634330948396982738639867452380988124851348598944856351685946592759873262131355719997739764662817005995090547690933196685723781353342923518230906211091895838020464853526359872533563355141395300559612914202363232217771152540702119179268682000761129442632679003308232977106595948076578767777315836853345324671643835412993053315738201237425509953753346457074553588656497060981178821049729419992547865420929726483347311962044394486055648791517923667708820814179522765284103391788450398966732094969363652372623794216624648302624604356853871420780810100091876204839721797176734698548810296148332126047280815139788367950052136285870434521787569197257188595182960331726941098966214705627165309840062866224392763592222423929085141862402121852549326700140559269422135559330017313802723023406969875380983053463531689519118269455168927999777890505099780074854233467579518827691029950914860215744828611914051604013453820651007080668648397776452397769916530723297551367228702472119771181623706065487993791223673680128672460023985965392406755842575905642811035601140359228656569575097746850591402846007459383848146330950872284850165956261465524197395635752259533396934817027184864735996497059654075019866928508390993666914346536454356841603663221384883639930508284022200213830761739409889800172193050724225500675773037773379501199528219669422269230384923846548114879880894822001736797445417650542824702010622872379516425260367121385386286113638282954546653446553422189116362531981682080249383147107037998977784148616423787935862029825139332934794179250833719677114570983933313947876129787965387069953314986347658128458441673751175635154795931601226244688591663575861496972967984673994781048539293868538067259602354227421673978702848168860258680887780161268828741761954723885721184449780768495645240039309259195550021114794330154070958718351070296392528951597098196661359184293170213898504151255577037117953915724730033710212201544979642095051471466709217223407334506357430907621932876872259621332905814038134656477534340220212140012198774387357923012819529535868504096489766819254847050321161098006159505208400501621776035087678610236748922505656892988899152059119415093858549833876041073167029705064660696157073965099639164989824698053983585788395687156366189592830076777620249697905584658864202988411942115885429413111055561371067167490413835366573316312133775330080582897442145880492947147536225243333729500972335201333463460635950497447716778139009419809070082312351335802960139985581810703113078734897303328418232067640270078151118956728973148032747940171393419304382868247638357558252613226205151818529909187963838547094401770356074646733139092768418613485666216075740540973366780308219624099862213841818525103755537374778669056239378646649686580363526347537351998060047660380442534025252778927806274431162897686779523968842959734567758131825013639383649104921136516296460779469540570912533765331312729234485500795979075474329568679953397197350144762596630525478207388853287484305661951853441922597749652930621928874078324245973518608763739707148365853193816276041310909652843472192094981527943167868187304863986119354134858700617961840526303037794035384856049734686324595519576199279229412322456530571111902075058787733995488190616393661725999168029807900836362791919232865512640277328260390647886416875932264720321229250519227269974269398815867140769742458282884672500769099817629397446134779507085182522877242895660458442044003701411467591841951966836008975704240387424184285488007281259439924436394975959118923883785608279516098076335502624146107882099643001979238801446605024459072514115108579953583687646378713562985914222243028391665880251297987234213558157342466196188392709485378161808296274820418113733493337619188639352584958461481250351037633106324014189039109212460523458784795557812936554815292806085571203652852929298288405471381987979788710404875736109562541698812699634701768435270782480204339171732331002599703381200860194198999847026651225638418388085636226111036118833650310095372708158823263832052105867649213530750496243066377112217044897686459614792093969222827362184326614850336534000056291029354448569847882195052593113248959356833836216388931539358265848093636901689839532376968659535413239380611500449327497327100215829816286996338558239685130427427725000001587319359973958328552079336462084751118777119777762914410447298514927585336227643627335620697821657821348206785593663301151707123720546867471324849467527600518178811099482695046259351701875770452893937352282483980881911707270938753996230332457560400941208926369498974676535264002137111980360730456792394480189188043247809260310055585103240737670019602591009668326435540169215764891051702121119167571248272708320959860867018895359706745142509691784622431397566540664970936370453307350132410930477877180601551604485332138920282455817838156162282302171283393119306984128072046647546264892659981567463808897674503824425258906149108553802977198216347921896867395389761892165345732466758080969255746346261896464089817714151155734600248143373577233532517822148944584169684556452906002525466467157552215417679573628007726069567926344289584616057201457933654589491593826611794541809808450548434043342653245813470925617975861620298240800043051724839662604571100038758789545446923068751722787488649432308306744096498473897967519649408427575674197204406648882798925798935406193751201958415307744075585430999741865258890076979253566646315985701502256020956202776713632912748045732720498084413662651225664694742545805247408212526334487298272349044366102597713597552029749948474562992319802854954909356097784497391487034754761344550643542585195162532230900415506886072169030504846302249822463704266356825700826518684169120292352030504288472521133842559181309820778502415632283422314124908229455918141785451765853504582274423745209758390396813942012397753855309589856101626038817186839143788140933298386441197778348286459688880168181401341139199552853433492472767600149020823574174394842125954897886037154312340332769733026340703461771800559337656818588576149531884349294185286294428382157517629827658151626928707797134762131317664247563327653767850821563768721924041200334076003524505033023343034500329735980768578076803110043706674807606195623946207495177527019674577137312658940105536029192610316892384445557131265692142912522202822615755710534820538563819580045403935468437516444289156087076553327535309480359350961361603526156773771308516248074223495197370007343724096583403130856874187733297613181355118487774959693464180311145552514404476787878961152031810404717715265701979602145318281911690448415646806777032629416938043014580944423606419479679946177574978132722246345551164025810912684254588960592000306883400660121754264791277133593306355882712614253667022368437043671000421728685459053891403021173850754934610431410324433062427667936285940377504119147558306924579497197499501277467594792944928019573287100581694772286690845260084070702318935064341466642952203210046215418856188444212695052831513370028061993990208091677645616532621970649611493950710039845491159546514319166000447270912161032375716389509792458579072623410298007171795492690405506722592865362625081938909735857571166308644139476785363629959596547149104550373265655627656941389484156490748977809927714282708927634772116723021680652648548580315462909564928434420573050923608457829897235501101165752948005378855531402256936257296089925388976345781207642794849479281597673146413843729307858454677033922313919041451902410420219419408934028467774463906894812002349029370156651432221005531886251725179092436451015068868486878681873939882837735747385425890458464834054465045268336330205498955836274079618194025599816491091847832334207226522333789777771419622708102286798417363550202994262462914644593896483051639417820678805199682073023522982715799801807558945839216730958437924250125802725741981748238284774115428265013626939983534788495131714244526319185874667332509495201526975066210570752111949044868629579484100667266653974660078176966094698506617655318979750374240324323182297612496112832919617892313009051560563647323725863456919393784358505105468835247889256607477858140521042843886954768494022783292994796378086768071842978049735766632428825648425754015064760239778166917114763821552459185696027790534252325654736872529494702950754835209735005041242125684592596792949501669430469845275927829935444454425441998733512803254389694849541632046506316425626240716321480989066836780105470151995912126974030329357002643366648064540380501576426402678482605330943454073815706184217234193360407830436077171907642500452990563567105291556208292849685771200324936924719730152226415233672983164825669772777965224961689323424430082849704095679545134036606720811401335519386744051329997034369868599867963634928202768522569421785782847578236540782001256500819805409490578739018314146955314109005115812865275390245475571447004053747748087813111484261847877933397205453834064383445762399810097276732625403657096008699445810437296582115878797779672994491059971681605982909879251259873994998088290090213085227392074403524683433579000232424210483538551374510576294972233433689168162594639274362648838541694365046127780421020731071732786832362978796477491127743996725668423724301339116189422853283888342124687255953219545175093575977302993987515473058530183157798752295339751268976656476921322122986527243055730758681287932650968932925887902483576674285842367111792811567139346680435881188291616207212029771746103970165282583062262467694187241721457717977545727418334129418078961084196601705731768266596207792623583278530670355332053506061571902943529011194175308656741346512572538576859073216010213322632112109735069255685561658015952299514279805514670289940371869626931123924997700776900287427023504431093810046441061036630737813357736671968716424242192552660744516146562204890863125219783211777862859188823878933230901983902961097608612086788467363207019895955377371233372785808316409925567023327226098540351923056483244689272047192323390071744513472974865015775372724298221307377928583184739354256924654644222969366705069508614296129497668421644946900571228096709019694861645423102775366600556984590455030478071660391843356890323960731291825269783329261086818271957508095385868951652803747424544607838670809430071647477425639541811935846576364971629057229288548984234466054150251078602126950499207092681782161661302286673758797646395458651978194552988970343349852428485885484685693898306155788393714063413314484457501830073119799047187421521448265443130950746094057997936589771912421894205972120948342999512185344926998428896795033568528863058562022400517791520952917265659359338881396201399253143320352425678695154200325696935412203541536802916959056694541460689566413703221550934375209770749134332735973036324069429582295453329982012843410193030802740776011791698918100383190036200544245838572741719173688759075795122530935605098701278068692421332397412665697502279060776214172520729845813989733442397894953228846947272077146358810777858025803310667642047417568411486659030491492916025750201480321984421041145572445345911388625968225148382066294718820758437015457294871191646441917385119800244625382712008699683113997658792011168193501224966723352795727396860831263161832363913643404019871803691079840374245572455045945680100795717421219148643567954154130109038108625921091146758868832750238904535130028448135584886049328984290070324059781251664654171643279759233900016822265331267139224074038179216519735556228215581331905076835963834981942054958073470417188126470130231158627364868158304759397844259065243228438402695630535706546772287715361391583491179495996875462928239103360182126462404739534659820610447113071996321387740516857216207706156051415341172870078476290417257025846080129781705454737772227972930924874540881539843958443108633839856340471461305397691183246662512063814425786345250297130265434939282638981561783676666848272303729514687135816026523916388866135814889959577867448114189232494624892636814860291290368339526560088779582028169622733783791274190425235110137304288549318938525474791266063594014077846852235315588314160481912151699820124351554707385475899476382719404314867719497195963855818374843101471224319268041036525354133826050196637995270332345952997659644503243852318167559377383973427790522074860286613122405351588611370738303025226535858250535670933153270852095117662231754581842825105057262321200352996843061670217410695942134470472772210731867517103629387604873347518013942212836581490089957253489481262869402621048254475818681539083493306201212911066070557112607254541378329503531327094958695786376355906727460623360381937965804054887943707618198466995441484469099464179927757286521139851560998983566825389809362228835201662562183293811034974060449627990132654672604260355393802965035008402758145096764620258954107272685398889820751690173305795714125085547375886882713308989947205355742212991944480116435855152882829838193275940598500344147448803811043965345959100142627843926280002656833261213908011712997226956090238838578008052563314457988276744234331909495810455518769663267744548179006005373105975046157199286391170692979748562136558071116962673883980661598278309457911944908632004632752057062573652608526041889788530068280348959419251319536656099273600799984910785464265546438782368142124907486390016753058509461011477402213612257924060542239351359943412337200112106411744204137292422849559426061756882471333207514124684283756304819486488712326980816340940819792240052062534809360717480305436559721608276178193299248451536290189817254621864214719175366427885604309672965021438110667002039023970665032222590716828755138492759228450478716015188644685386434957965498149285583106437067776628930555936399899158611063669547421400971960033701480939702275203229460520851282571974688832330823542204284250608880611204852276802897087604720755055759176290188537899083228610604146451295810830501195826133726603038527906508643409798665205567964067904897610443003655632602765332924716435895238485817467685216638218746723415316959423171346474987938906139924168335087610520735972448509330572942507358713097636735921836329546295597725707651745553583624032943399385774068183721603629127193391018455736525585650755794890710702278621924016167675687805142508194059936547079781593578121235429680342620488923502931109887556137918018985170315463129382224386312062599953956706531718165877568892240081770356747842733526769218820204710214846013841409505706521758091624461079136194785712786442275468066955691599984023172267965717107966339110860874144992064688059060090611961071627515097671519538863660381438640407090954406245803930952303062232470884676726629993292578835466752242596188894096859706260324846340038916997620535798232458892871699645262196074875058053825897289944271544404419170538406476955308988062970975117363337651640481387330714312820966048430664669808430390697053372968373785285811765657701367641110939168106546862104470119391157928594622006169753090859109025795528427860830787956063976879976931389194921562980274708102659923117538102144384337713607037636394843500563094160706727614672118197075097481023001668073319370070658140260429726103736161614552785465237272492449471215457846215760695344636423523197639703170197874421494842809150962789272184623046656367504315531964319583661646368356320796971381212442399746491105010314804970228321385928474329505572555627969726176537161863697639206533362805592487751077529194433128711498180311455005378029866813425097439049055621336942742600757472386843619954969290222064983966831924857065942837858365238593882717170093964665768727178887798000234300137856358692943023055300846110570998848099914570205358893200391594146712490453381448939157649212660148222641336887917762191151837100380998082194339057379270508117609383906640405769418259159351514944877173150020572032667123637015720104908119607180834005583769071207550267331215373133118948930829962497277012031122074390355986010586369173121089325883509463869987841128151340500320491048603210718450542608732426670082396060908716490730155190059590174463566892749508449103997697397386234685042865380506156263039288876878022654193278629459837531475933052516257498585230644917495891448228702757667436280967396789296847809196085444157835154825608304161123237791127237238533775386038033205331659072583968681993635665900591844253073390801155980169508195350932105319059043912337314005090866397774106813731509394422353985862428626401742402393866592679983773215223729627136373533230657911585556755148499514389239004284651833867152204463719934605324418499315928208637549580074793214395957946505389186910778567703074316100566551288116109170965256917372276369692760357517837621027602599504668447178741124875968924502541616525146496098545087535489708593808769529304043919526169949078825556062978476705695787020689915077359878826272228133609714769396327051139445670626704249601402458806076669161380258694987261034967364526255430815045675836780030143795680716144758775393786175437451166022430221721621318849248317764771437573361667930704624103433352866139778774000067758553224835528983685940114114429697918674423510284821457855759787026863241978300138690765835861531423540062874497013511649468747184330530796745578465953594389475741609700228782353682038616644602313445131524956202899413613625443531314370775451094880937895263597771455128280903152195976066503602984846581027125128132508638475984224782169952029988614269452088338373992325187835597583607267936693271439684109134079451637429003421172253710185399083891773002807703911274574309653916576918906825320642302851239009675591738560856637229165671580928710198524482721577685532891114707850842719605939839772707741524547216056611385157318349009347273833712001260476306677186657199931413703344348253366117919924030143842500395752472372592578695770865705796477555160340434087293835008789010442320489944856151312725702644531047359095849805190859030988211515051582012378191523152337078571829527271283460808142363059183790766205772964204433201288321725440061897189821550727530567942184718211443125158213976683741841785186171171540574392851119891843849448736249802302026601068590984736346150833639911944336922080072487841257144965436514444743920913540284022211048330475308225039182461623382819561878779042884142457843574753534791114333740871781992267745762676746634014540745073671020101290126409425338081234814473274102961550358616404493250780398431657978317267962099413007827070282798587946985444238983069613190106891480132780868701741248706407514301522802002377621755525502794296108092296463510946981448239275345437243844396509313708758043071874954514715485188455749213737224852028698230817550148343240714537394626981556164029858571057058969471768672646106134102957779156513965223486256231512074154304460344345980576171858075878454221248396718897394185456982043402832858067235875526899577412129869730351051776217262431990121334376277354301543099710393629714370982456697143102391328402492610628334104151924763233138639417466633274202738141643311370585327484079619157003397771635605141917364633301685489317062418724660668405398333462064906189303582591219550330354335053686055898278628183087448131113778170554313999928903417622390187541740383330933039860332870027608215181074112038559599729640458907351392792029227212278984498661295504133959500897778237771523398154277122931478121799721662200132776425746910988786493016204444556762052648826280077374414801324423819007454447892819031571049683964370934210075976206028404457291834976989475965389074694991321898497094112730846831336888183623305570553802503924004057840629011099377256273663985277085145126838305461895564831284887205266835970771508752582103077856278361283438783250347776414681800406935117975212996396899414455664537111492780559826390079992486593240155357282406761027577462010137693219471792713649300138524439384719643085498773919634401985469107275444131219807162243320794091044560943975871921303307618565117371316201775061452465661661810773549317212887701741850698363566049690558027332454699359141221421481768767231837261730132877865209133363893582108513188987466283430030828497107430867766907770517410545343116765037183404208538419172735402205119545613497551956724502196508185282943793927546874604040977826217517866153611176257993145170990570723306623642465684707121380968173191882639858550871134674753734321280352690330882283658778691675215035625854513494199532929125144806661743874609471089674510784812917374634239563629050805658582805223424633158686039179146671632283040484673302437577475469401469680014609727457619096239760509874880127998700844856074116922735892026513955359910738757626744558020976290025945235613892288286919632138501809355132165533186629980970739797592155893320784094788470751550953050858952018616353502453695724575413233212633071340068692503644620453653089054735504078139930835096403831497903228131832042070101376200464391141836287597073884599636727307061777438182537409686656443615912149803682130542737952215608164006856861059449637511383490430052991973966248809533601652176627801175446879685066850254576782894420825197992185322405218847597975764850002888848649835215363744210620282823224947665578448703792085486788145289848753147697669255089136916264089136153444843943800726947332192494077002563335617399730721092790766274033684638292348082315205926691852467129577350487758856272195219318635876845581355811861385620909863677708728608128493920398938183617271911648503345613114973877481767310363341955326104043895930926461266192656314877201266294854431422286150576256747609847198454324386159743035658741726540855709184809857344197917667249282877879045202473185917341923433934336768804397324465120822552923103240625432383644675248319616091453267468489962733930696117504837571774545523441962839548152829626277164297034910073019347680777578563423709319485571149090030438333951400077982392850361519339210745745342680982356202759734019011372495504719804930802655311529981528153171148174211489193169589647071845832879739626398689667026910852890313586321979217587053968590489546887204700278777142427165839686977684252024561957228665099628813741366636858874532394219402764026380702723451594856640385772619845882345654019973011102762530273949100065158023420941719527271311810675279599493153494936831781548674460324318275451376128163643659552437239865838652418969298743523795995177850687994716211146433407902527213644260226127006698883900280953773621147987871244561725082888046014072837856895722879126181767859751167213519241753957916540352289904410576008938659439285023915438426961683016382749215435834768656932556446122204184430553204008559523354269346360014017397621292503417278789806553520011595089384259194613210971755949018065186477712467445935369856435449615452869332179031510346666958090073585286564521962162056793660480524026890526830584141426100628530432624752886088018580934615107379013363186575563596329825652824165655389859225374073523847410864444369861049600043183379740758756529650674393287201889535369006540333912736752935824600752889268613162035187866989239208000053519770582882322653283498820549778135720740367834555163898666848610184671410255733762714873700891170161043319646189258795294832010310192105794539351267323440315481492572272616282933166027085626114775407774688997966225647878682077896080440874916207202253589612902952050348064569954612886942782785697365796814000318186999195919156790605445636485887038499861266124119316539991555554776816961711493236522954990931901102346357674164205374501843814296488396888313424158628878275750828604544480900335758617357318125701311497324330782292239807334948364906532490694960868617987019454233281622618865080270059653417684336033074036433780894687310028969150041117079053812317338518855810965508524922475005902778334999851731167856250397635669215986861093359631530303624356992491272006066454366295627315184449793713421111583626785280407179591452773505282917309937144377937967850135738816002940912946885943171521502846689482141917051013604768189919910601150557199946801715482414668858553969996862577856227635068632593473382393472381743891764141889531910731957346304700527201786181149015303901873150704286964561173290766685716362239319431086077518234195754751986152004732992961285283973682775288943558942682803305402793188984814265236422771052551395527134583877164531672571407960669807714483105153545326074386876720614189260527862996150424281272020025309664309096982640388302632515054050767831362422144267624724506142550151984093362847399297559660191323162433223992238666053046772199757809604736488881006738097765546861556263971184416056658744483542237651759416143333137178690273236061768198650572498775405788510476795733973902333389447030714173527829556479176072985984638392445881143938746936082334661476030189598259516385050964413858877235362888406971113972776403998725063547067824857718997987363555751394555840703768224555834811418971257647741561216634517501331031422225657557306769800531881466475539952767711016965075699932589266187769028416316846834994449766129681500680841172794605073698003117813722372906381549168001067972295951804665165177756803250924456755082720097673942476685332427035557862706511603786067192041719342364825777100326287138772766995894552865938641418745005368495203478792618297365770701721791856155152356308399992548926938530501214353059723768605255798661463868074215632981835641141428416347724030841058000531762465949318909952819491102882340217111144150354866247913796419931768928104262289694753635211154529377501602621051386965290178798965254080093225497511593544331682005763318018992584270709352279547765847804112713043651472796576187698125178147768698148289184204186195196273368007949084127092908331170375634744161498338745973905977260902973985300622224350465236777907478003983445776681974196098858166117455429032670612707233243767743943694447217351148242496526037668703149007520794496868340523279861119149872204206706107527860779713033398964746086208616524206872031582546091959707482892305316259887565694807370530005199333558441238449030537935184009184630354846139706716245487665746158611314736566059502867549638907886295186424637879769825146111439595496912302964333883141798565829081974588715540607691990208202574130988620240540564020121253770317610697864630303059095736667611070769009177469760316075488287785878234949634409403110240107308090964250184407238496545671899482773717209616200459649962033372362093017568791688377595717114774588079081527234670343743271508632300130401009712827291564251012565980115962299755345489670439384872173775896745860114588427575725133547578462942179186922543957442171928291904186110414050090158039310484871530321068727461214478447823829423539637594022847228688793218562985881812905703899956502508126901533767421899802377315523988485909699622056290071174412320305482788912199723859409331001790188867539095149433748608611745092020227699840417201479660073451075998276829159022218458349656963043743157572231617550458293177201954104647147746986136067574175218454728825801968109967181229545347942376885809848445753221192033390674036937103870219269122760598149571138921125634175925885076789266435594967191046218577983657814959963395268123896815042909733407716085680610727794544352510121869276637983855991229343792536469617691674341042151148257085551578900382163598999211064993480225735483787859174564480495086752788421023019026418017376200641055488126514264836165306644296711493202285809863834052202764695991299615029586993391706619952762725280742077195651561887689449257348514494813534630725934587747214681119567818712556972415879147597824280984807970334115332169578916822471756146839918296763384115917634314127237903090370655499623982578171485852335534097648085380388605675438740444429986580258963160842900820614656618269369392491290353121786751017783365864143401981826862744676755790961772611487797259059449406699967639807170626154730701537234757514523064062228128528791384499675994695593527170345286391764247476074469665745788174704419894752542371742390480993508603131075067927301961945957469104438412086572882543854295913482207408984110947022571625415942282564616965425177696017290735144354331069603523828026701661616302702223612589658206966109476165152687362861498630669344054525311968735980164966877118448073227153822948197720175026742465280105250362025040744354165916074627939915407761706940380856974480890600601594419085962778713129743101071917904143561658049762339299333007529041729398191140669457049473343729770375646281627127789279997086146335230783273534043269237271242778995305453146732423919868549744434503653943571883757997528525167510656861194090660492172749077367958061036973170232090005652068978544086694633122781190181108923941877968510243391428050669876709633253402375990135605959252401952509026401861130017889573706017595573473642856704847100448953380411536924280137416244457784871418739429792552558764862640323500526066692717481898949322275435068781095324145460912155174258641241524901762099787019757876960535610916314827878575432682341530127542695278110224165855256766393615761204460253576128689567848688117002721343217493219268251421530203373431319461839629143603994133671815689040441848843192577532145101958307719796778723869242822123111506562217546865844101480673462504782834490847108775356512139016818841114441776071078272538125230211675394827312058976508713506914090578780337891464060090240075557398553887564425209844015865437972540874987822763141974342497152581211119591197943486993611755172816206513959983270715611338376803580102998108097743774153014434590729612714031718106594917420135181050832254895873673429770404449246066758098051617988906057288730285882675717669449789613772335633942939967398863922546024550786735494622624116262372395055323245853742700929506879782043977464242151675921758361939595136670102806255423987699161355820115383540274228749377704645043664466301335704496783253777628736341982072991057945610546041585810149548214445028745008689884743484383319088015654161916568628372619605150606706287139921086791125369934886622584334837002143822125977383109253254571597472028752436762298170087071263620098689965667985085885274284631899312192332377346701925586763791871127562745320070791441126800867571002547402155399371134139781131739046420208320009421775635517477252035485262334748773992205122837555801444996868213965154048003241031143299891752189410275926544304299850872236188215214412022194987344704334494127802276427163948629530005290201070472176121094537633907638521530094532316103343322424848430040736861315013981501301216540438124650623010971816930388020317868540351201102689382299827362082363497719124420498295488622979969732454515649500319934840233610895630776540680494903619249124262180381630088901423794673509342962749692136684529729293930761567907664844892123352275280241121627515145352949069708570925910340972064137952416364596854738499311813717034451182087312219970672082559698526231124132544503701948940635231765487156267168851632334674970452055293444199712974186803333150509634051288664391888795837350319540771923993011911526117086493108481420771274824441422991451246685993327315774040349116693982356140218566101629120344557980671380725815477610192930420909407724273785263686519611086172473035389261812936383328468927308753953994395852187254487818516111209640245261879432070632437524958093223387972291175845119306164868248012138518882765655160334303502986946725821204568653238876255388243084536591974163978735241388390584411089779826602314543410657492644340629097398110702452893773714496017216888059311995715061684775877449226696015600542791791369790777807063991958195395502060237491502043773634385036460807231780656414003228078705236397448466444991272970715309064569928401994507365443585358477481432200348896364725375295940048217346001111698818475699468745915264815316322715925130692353544319393252681433322601345373600847757435387957113847687615843660279113589863405990435759724526923392308009678848220529909282620193394433956442542723065549880046082119052211958035396059809247775864081803308511615913348613479317655695820515994183756378065672579900588799266046620184678602573600576242655253814721113957699288847835865515717444420387657684872273805992408148856132813232645380590044287736193632749389319889731179051910584873112387973504594151995993801728222420811530372217240317691402901088935642531054709273866389682243775741096962190262905564392012395896738855728989882234485153298238683742923961868172880129900382200707521023476966803343396717676526287843812439135121573751059525678064503815637916944304583536751588770717365518244391521427821609974850685767024775659380313457254474110354427131566766790167425435606483655931582150268666276858202558830970184558594335035969406651126322148482255653219416205730163390740727263152113806665059778514999769490042171878618676410083945870514299778636475231785794178156559817373490037755144840163302455865540280553649684252759645549382051847982232064022409141594607734499551038091868361961723165112454165885559943722194429808447196282806476997877590557094973671223927825725255700400973529958994080029066777129056512832398815773130799069068391757309648865054000898734000431508721336116735024097811334212477814578829117843410223362451930418358908831358653328780869167730047054501076588116207658969069584258024941490305847839033297484562013366721712032483718858589132977674755745668832560456506504884065061679651148847906021456577832872445885730424894737445903282274212792809646554817290268556403832415588098127070008307948597881678905019906471191672438279468861190237551831796391149973286771455296472266401103267716076944295986826597160191767424022375971827905862081097547904020308105389446244123825485655191055315526322022298505112076131610547871342694617807358679301369401413813596539411013323791901626558228721954796856374377385223407461214611419459432277639717551630936846114506472673177253814867701675938333448468627719063297887545939582967507797940395022941072826418860338328890758129449386491169741117130688859811325176337106454059440578021853080442710499016326174127999931153999339448268271116761228595449502132549127986546733672577585584393584466806991119976930341327648784827717496836852757989088511175243888822099511909597486214160241385323264508879539662995585818968775261397111465735628199991012547766642808363452710140455417653962455220097969797758954047663225023077113063820712520561535941855402855098256104233402130964553385605036931049502478825909453425396680681972210277207857682398409016161855186137862532230337364298854240169449582168274510792620176407648698710916927515311658992164040154306160228239948998971296731994898449132615993625158815705483484442784786090616388999712744682564467808825688236154380396217061116579909706595807285501788724120317861643980231482041753323245090876296626211609848332615943058333484246497185164214062258220650864282246301291031383300198653804492971064050835642621559044427860624606578901443364243280125919839112506365311746101908774681758827204835142031842596341979348951011336005999783308945206239524485399528832892232206815235198149094288167063170428093591801165240047166117615894649174556842041781145137704693091860936672155143565847981806070798303038244151054314925937455897638791122836785860778095327476503212243035557717186542105390240450265349587309954687403880031339932784617106124234677922794784402487228638770331352110856713348891547587326586938593090417267078225131473534506231907462760503638403338462056518037374453932791772170557801331851191048004459062517649229063092035667027970006459298120074144627631355231153355487654221079125038808929060687092368131125155285434006996489237496254650276116259016113902855529891957918074495441481502637081708159433432439184997715148171297246817672395028478452351737732702876642988544642784394699150475070572740300607951011601903885369312634536645690964045948175444436633591224470956076840390509947515682881294299209910372035000350984716786031036552614415355383623574777232330911648520491482737891250615598106728719785167103295544621853402436672580997661497380286995563878145353033343067478055128269192349922405716672869503702364285642734778523585097838852111392118904032912001999423200423879233966203138129551862833323381696644749850750215570469251388617982165008752439495072800598553894401052396113818261198459666759468973591996659748277907139927679870004427543392900307712515582737615942867410784575186571796048056039921780547094844228733673209352224772802201807734837449392229901000237494498646574496074952243758101481170147545187557512325319959241910324226596149751204278593608890483050909393661638947750917880293840499821419466739866741892189182710192026364870431269679951518121061343017574375073687678453902470873468781364286310621814306183867019891942961444525675844373692012453294531091622007193793336523197272006615947021642320534808077337554384071992307463315629323419025026219190146282877001186759984871482456776903670720113322413486458326396785617906454358006575509029321138741642612010506317480205935982476167561720742849269321463969118093305647857933742288378915625831433971673968625006571300004781413241442335962281078305120262587924024461882683768137111572445265132197449097389674978891055178092677912382757110268902694420235556216048340863963057512046731303077619543612416435347685902857986608158181228574695872105422434570883527908140459788258673760681441924156404013707443918774268474780298000341898184510256662982573288657181906138785230368578502131767111330331081962015468591230149806605076084685311017053381616374261748702861022473711829634993888068806752432704165063330409166462491546595459032071065338207820366039903874582368826446941740926648921092546081730396834181287735303240846130761141131999749452315057711821879659979495783414901068599800730222166430195546883698987948831947182285891580231895482205668307038185750568896095630934474232301678652712148111292622867166183516701352102430420694916248283501960314715656150321855979296505742354333243880930192340667191748255590797759110284660861996396641470011420191093992647879366476989942488684236453623693064215127725210682379621575002881716455856580914831319268746555946462926124110685504087946139997528042655625728279469589797737166878325845084054409383212689779551659535015192886631389345277270000487517204288521386593402933111550820060943930080719275312984635686936002762736249561696873778852198019899139593419217277755198513157013004628374793116141254393056407191458009806772303848663757436938642636199968707776207426562326349630936704339835174485849577859122894014430246467113160972884556769339687429420614638336515509083639089449098809030025014511018779466645357721993719200901499917386251900602974882039490600782102675542466072627544035431208143483045422408122396409979874032776189712849433067642044051304348405559600698575514395667559341395754556492000713830670162535399246108991342777686812260840497865818654117807334590364746184935723504041073786620310953746192234790624903140866550861042734633002571629261971629623491438916458213124614326985827637654748025359399814551111968933618950170350415746729500284273338433303645452811942065860764069526987888527907440586792938953638845083895858949699859326472619622206058998846250153679452691897400835539412282844019880839819597985435437978036720200104243196725675345050171258218824249321607684605185220314246263746017527456592322941562188745126279775871026035706581029814377542457605434801889589540405583607023156977259547033737877917734643634548484926624256586497510699247350296578858199557457082137718057113920916624559529628733159252664108508953667983328820765326994355479836456731134324140781129998074660705012036869093406196449046415664259093958840798852302104362853669469321529999540488516667949524324735646786160889462190724416483499410026405395434380139003826587478189014282255326559589245719252312250126927892686558090650088112056557537774584387406916595340793767707115945276237450393801828913476469275836665377320937508261080700069060806920568533399042954244892585034647990905708886496375259535862014741123240032353549147260833589353047431803516952055248420231439847098508542659864329067912546894824366945730590916343360992270144944553130358318175802576852321152340830722233903162925820239376317260440713229915544746817412886512569562362024590428345031140229480167263564519369190530818807598458498679263985552725714142730841478222583546486374230479906290231772269334673417408089821809398192218671157213499097870484629471843207066400933132226758089089509326819675885806374777904538243855295446216009719789597351643269301068724459092782341066659801244778838872777124462197581775233687722286255959679254820483785713961833831077324473361450067994897218104857265219871816454383099118446110794892356699894694092353589114267248467270907163087913970405305729395858167046479850264861139747148610871455105617579848197097827870293380605334767442346604714321607741259450099216707619403789665897071100886254690013218117196574819251210292627868550137554333676583972298838131655727672762953043776214191284832446430092806879938626470795309790240839045960470594541868288399486297641496352898685648946140826064276162736602144479552441722737658093918666243004268450860715099806499905073520485007289603245898862447091038269811187950761517374943521633183535968188898958145300633390854594307375590180222878798356245176019249154769860497356325167554274893137252309977416690769979328699641997289053131242911676192665656445285127213743603760293556603638778511960861819243153968899902428722214457929917591631312424615154539487545206829497395302815321833557699803978209960569681933838647474011389447460574897365008088632600451803571679196149925126628034282744248839845695525767894231701938006411212553099659912249334581884933402736992587066667542351216474806665587850488393052217809392544420287156954483862296621457828412329647389012832613883774939254677631525006824891665104459955439139877117863239850095248884986529735174366466751988582436072323165494170379744529638375568448833997518201732940263727308241599497299893180193885181775634654985608319388313968068769943732703512502101474046223716678805576712356826099121624571057357099011867845584830608679228712338313379046796931593809588052529811643907597834753781099294520994993609887788173396695706694671781635555476287983288604341396655453301285792375851973343237659623008368790109369920416483196720278149380039621289680581669500440368839560375468499658930910218501360256282738246551693342345998728510283480643720853915685185090382283940462987829375995578566484505346821487668009138183981275027799446350499715595017860324612345825565691107102947758190844771084351319196346758873876436190004961628826457321632800822497046066529636322465781671585038740290068868791015788964468505327564537940786525045426253161641751745254774628462963020070129281984064991477967807439742967731505336022124249734678682705203740679434311052424904816764234854210162776313986366701668568681214744001140274502538225043295660458192924548869799492635320161808297762986406294091592962491791292546003980799474972647058639424714706955147481387724181857109837082675074250770937069972242156717336638621632199439576527727395374659837808237321507054801707912898185054318613787195696749814328342400405663878551638395244775564952908377149672534087130704095734026852202645053418378417151690076485461778613223164145684871474020293176404665544613431923765978853720708267327486301127642741794098536695819988718744824298020232152247065846164165813680852468532329050873527619021373048361718176182945964531500211594150624111110535546461541531219857119507060299246101986783199508710541705523644199556124455111443594762842700384114279234472495134737174289838522869962998486318585261606286210332979549426963457622169893892427306742782068805335839488091096455489207951273796169694221725158148772516868270508804744081728393459128303262521983516178780335348693320381564399453069739222178550523626197411752797863511916369372923519299961755926768673013722918300124311296123029279152295015980595112791476748247074827196213111370897293188027622979079925912591502892900680512100987371122188824224755418188541188112360898104068257899672366068040115028055402142548705926552121192736174155628566386009714019436127545300336871791017701233652614404980238595399462140528975330193933147379636456509907334471292424534216325169001355365468588860267591667364230544564473428386238428641685612057778278716996908224684878679004596424528414959466336422112236104406801049655199788466179015709488791694004575662521614189643653796772516307907094735750649512007802871335944013189928929710630551653646140618689990319559057777243132876906331635528925293475395568581934376553821146034122875491144034031021237583805688031765578392104915553901805979858649119391527428165097487158625757668665292064552312598417530324991054448119646542006580318069083476918484858029281550621317449679733225027558792914278276047326542203804290229177716265555863690555313680407423863897359260425018529239881345814563891281376588300034003806142398090751786759726761663182506261013148867002548141004552484978838698108545736098830865847784132848779349061567310542819543178473789980665725414149721441128378418286993943861550247202016628661510690535625869822259817977798446123104390330455424595970986089013039349635804642934019163207292765611860574155066246290516300890290286190713900207346677569355356602232202500830994363766093297966023108334601015551801638973128155254290291308858217035553070650909739381000973809096806375280289324394792549063710241591983716602855101482982111558448477199117529077070310633192823022824342972689446149060128681995970644408940086178081296021451299751136013330567271140510018051392003290839478314771945740260455070870089128365391048562790213237181789945966462820967893497354426960048799466937238421095176588705555231405107710163306151014562736115172911867703574689863261331878134720581554280413321983991754050383103259258108456673481868428153912649241271947001826504272633339613015651019200138203862661762455417430428446792154748923297153884342752007537219515007861655532579702617431990977563188423326437690504185357470710380000461110911584087193203908420127971397113325502620927027226611167356223152237565984553211140611165145499554619188179473865705526699565150595632408309756934060757451678032542091814087495160549952413264268051956293762565396062964524040173193456288001585405869203629968767087288390974927832397630508100906948552878362894870300030291117677853218160731930463917307124189740030587928854955773758443619245369114706677940952873244254457033827856767482005988927677448658592949198742757122965555992807773404475771233789027661381878709159623588183417227631495466536621101731485757067668952016062128605288949434844291662532402397081628015645080507282669856840071573771213712495331483635963464818280143861926341053984797216873226788689086473950033855242419603317454685478177316504185798654264833196065277384063339085394122582393134635984493604550395466670085447878739828785651132934767259954729648177826074854416071681172719823965605291326093930699252015739265357057625351576882210525924796564675545373327088410203761795549278490862257776549008576802592922271472385536124280732694564881483627631280530179407326205610520172119745072968469403130549519278835420049624915997282587964644653616979317656624108658722507097144722209527141139932596181601058300894156304854270279710402006659604744219458188642833834756029219097306878231751210745545280642312084201930146493778968332610385504434283292709708116074425733852309267241532593991585901831800531083129830356935871829659950175799252496640276092585261868854811965062211667984872647788965067614090176533024216030729155751483751119958892599358787338906261283198262762345539346298682488192310972922553972432010699584948561167797193872336688977568822689121365971305546992594330722223589995530079395603293285966555510431607559612417938841114953380339703655205649435410381493803929808650227977873551511659256032042395012419229900494987796106136405524138593573947602296806241429362805265808565810995921639427525074374160158126309170027913737876845097334865438340348640289042504035184203291400012055802073895956821380911615064236176520336629318805761814544866308373188858445597281663909814828546475836284735145482129308026014528710947561716563158414266892984576676931587128089477898909345196082804624154950676323358873666567139275146332725764259470288715642951547817762568528000533116882376402344409073506461548132112351726578333860526393760473831993536114140781921983529268956659089397089839020531479283026668749132752643835972699312366574814454389459760222983712971625165657925645030557580784987067596022675419660029267907181628354853333867278586584454449321621370182584079206326688298736783010342514326934089010679159076061862180271160562205113210464055674716529575195457925703747370683717784362001845796365740920520964051270160207817262331141003129414990188860021459769810036335818086748369913952398693208783304479593701497673691507762062775355012834815375275246994583394639732271420459791920032270259192272338745388957366869884742978139333789980085193044637019769724424124245278505193156653167355457395871695794258339814081501438121485392190493624469545780850588113128562063123123202763366693020878593611471348036343664703384391452248480281872668693192044098709803155337964463212159569460950413690108030514535008630170171464127596733544480286970843848732343647983991735879314535956424654558015413257477585401352608502722502022270218862962792247867037234909079161454764732021732242085767799504183019900752218874022113675801299341392046273673433703301178456745106963663162086733126947896015567069925365706640443559316484069282056448629313127437130136074825402519835148149442532895502120173370288309172072601318387259078816477584576993711612841194220751348888539645506691842682163924697385423687546936883474080270222080385926302040382109367364558980421067983180117638375816211003988779996564468702357758657532821544007148188823214632101105449208222154916977626283346285420089394189870989807353450538056504643969333267228672472850835920404608383946781380089582512761616166191263973066395692810610300086583693910454746945167970770463749776159993739202718558117190031350490650539087133327244624940777523229012354060555032810062203179449349948727078220273423708139058861768228553388523683319160833645514043560448604483803828692887811587770798946833608544601745405737484137338996055239354713567688856498492579997497344866949890481792836882356527888443134226934781782797026630935693325806106286521497212404622190425977351563287716761032993737556021013948525574811179620832155945453561150860138973976413559985314499179213270466483136381431944234889435874593132843885147559397050102658594037006075544229097274330329459466119847980708455689497320747875994256612520561681857406873715914176656969401866575600093937525734518866413943765600011158405061305630032542017130394922874503337597587201412816465453362867964618385887442728234774576791347290155364715072628368529623499492235916414142091135313530395693284522296304220421921756183480751319567036012243539308049800439609465291770173479347366889812010531092442225243098517813552118686040707414777941978894835025163926201457582732432135797404624208345120425731564174386724333596285263824708633583127081088745311612919219450026250059001139234237327563301454596384829249975275675486964171856281535656101317090957094186388880890786434142060834200909725070225592280613257178889101042830569754947661412661234607389757001953858901416640535497927356966685643707987372165145110567326951104160659905085084073597242876651544003185721915373683813109030013144833168853832696439157228164836378593502693552732170450150549723735494635643138750342891335382645472636883480874736456048022589072486319214626252033213993687780193468241997663498738394399969357835005945240743077975761026650602165225240066357474768347850076319343197731809233879777844212527587135965029567612474373645952520196382768662411970114404047171443983327278385705799062437000532152151854215462150258685376929192170334344682126810777779658116994595171449995490792518611164520776492481891273681910966819522387911994006823638569159085003924641550722416412770096741260778713655448919064370432192562015273094657857620800365170333324238675309774265268684881058586628384561017351384063485234839648329699750880946228642072242829172515267512152351503029379495409966656066471266995447187513451216227468165779000530460376043876889409173529833766376026502716849995838884509463593396849560488479963779576217722279359731077615266939903286368155547763658171519199990691719898522175481953536351920495818180708435865510384978290844306443297674008013183642629064712992923400002880591970797785153041855376936671684981440020316530059940491120062429667694019587565279628845837393467106047935382121173480115779190353244037044111865243618769264680840567984681609388298604165408470021488584303631625120857740932705849659184780970922675528145387861038282144813675404738234791831662997511969786666012848175810916973248185916309161784361995056850152401225172053784913121551609481872241018551318062282410830976795416743385754646142505491070578326214809381317500422933970673077483210835610786570495549197526769080628280517839560110004932817638623726701533886478827867452195666883292595976992541025844231975360081350000359571442391756793529056167634186148452244594988460372339456621104562990002580363784874552892257822433221251726420471528797834616058353189526063668572269849586818126378179718496346428647666283055899563697366382326164863628049934084045418869368990431914915842293077724000395241045611245520752571190582043723475974366780698757159340692873787220077864268079911533342742984607940252282004236743891569335223432036453583743868459685003132390521553538127277416665340258750730366797744079827940128725550288256336514271828318694137603091269949878252354920445721999035792891246300390695546617369311782942855334768677248067442050358193418450867517573110805834343828564705731920373464480681240203987519677645361289490208206371233597673982908646859006010883816949211461092170203075847385239483088343349627582851962221130765382430478418019990688460221910257829543334246373764925622043868991565676944913074571438984194538146713713668681685943692472305374274095990845227721287013693940646496849725789780634965969784613137572603004952319172397248672088384907499294502411958722663695253791188377206143211788649040356452439676220092475811962195654558575782654962737445651415408893367816624211777743378063146506656322096501406227302816034242647988658930289071572346311250097748812500560302741151436349343835781352534794887121343556826287808770768509957483040436224655360301030771335108350598909303285697531863881026213147621441755299281395715896270099654829901159525627256714817716597662815622510843998132551780663447857542152045613404174438752754186888863740494797086591054464982023277129519067599048141309686626163043723428804370610202371617951006112107318348627618794747246804565972861436304675974849829405950047109051839472984969636805003336020272229122088995035591705080994343827806299530745895449271552706418032842792540782332227044664540803722855251339384618493338133873127726127665917150686153049385897306917916916341032540326118076637129095289267140191418061225206193854331185182116411832634746969649554830512080358202343242671553212322501217395200346125721366690416523086278738688392852960784581644987001143741135993177586018196217942212173293569298039287813500330466274457859382264938448664359886846588121081086871070282421955491697433149047103674740612444721701931196317047416696245643087606701021104465611289709902456030037993115597423323308016198581245781483515091435917095655507524464424898025075453646160639018648352902127333316038772228901723834489768480106818105593029949517064768240782281787242427107023855292229716374764664951241255849366578993251613321164994928160574794625790592215538346385194695292608700842755914123535751816149849224925838095675458466751804740158972783817588658087791624324219484162127223478336239574876947887986520093742746242440500509706152814737742335552527784670187546532556903456732434184909644590676759584599473682670131606425166943179976642754071801749253123882560045438352648454518991560297042734829516473887970929896204718490472771594848879845642697729790885545820948280670821129299835095931663459599626912450304970151721935446246867591607828108080901190058444910093087824884375867592302426237478966108473852248332924817137149125224228187047033419756417511166537564711801976971099048184005424167687851188684279502058127982589875670009338775975843572715011189058987802858354791955816016502038588325717651697627452785570863182281881108765224521220423513788347284659031634798373872610477209553010501134090236956506240871488064700357053910461754272542305961165518904454281992805002482468111914412233286083646505896984978558240411521947835247039107885254273165661545962246411699910731167317345990027556785216639460604305040468824026260325166810086777350309839320301108981404551655122958026059912176786384126881180729791326967512224694075321599322686500952156146824586562430383625250442943398674866169374822720766551120304034011096684558716079216414122421698333235617534012696398560044411885037492144710680133891450529125474707567856980718082744100615119637910100510215832018563384429498464902308227464056432947287181697912464574070937460193807586439136874042223391622001527430326995004401137811309694405473270653526238435139722124476637087937606678747510615432095443715982906593705663490769919367418021806049978068523398934568856765923950983564356369303289299501097365472261331844614969822711270850557901858275482162511790665617911553683257350269366792611039765600850744181070893013105446082606757882358712537461438629928656163621371558260702796975550278806675410475588152855511325780343579803293078154101252364635630077228895886478078183484603471780384737479791454173660058134771590136376108147856137260761416024044326316509480048630133797266437527575662144440532742308833300190045065203411331383255209611719566842715921515194715718605258273576713079981849934609432034920897520923738172095070618140190922122999307744870755465291847551789124708352228108709028312692008729472849148055326695479171348033591361861651824142253807067607027473145284352867516775329364650867286684128606533946190493561384913901124839384259558307341752291692910739942086257276919394346867237680264016628180414777834205616900985008129390541694112071237207940646585874697825400737578015924143292244295405155065999746047468826817932252483835145330811003926096473568266804810014768863305401816504771252037901178670784952441308105897686371813161166045748177161161166100669793998160835019144744216708356061169622681639747745949552046841864669503891417543238416893445190264334658691673269917507542291005963087251320755440260936612924073755041025330418938263555054957481090501779200480373817113182569088148941690847505732405365283120205220390894328341302049195815679892033465214547232536080441720441690884147752695866963993006434979454072876144910969692500678478515651202958877537838877984534963887120542652039777107947404051241940270216774331904364384249080960344415003403592312719985017722655482944691637668624504891884744040012064976693169515602478325973025276247245508084440208404907602775087517475180897701758926874728729743170979967987940505218518755991322200994567928464363916776771821151804893540087998195273239994914630248015671627165927047009383145009056114091627095858069532996027588356033154767106820974651435042872696953500361873186704026571603551979535884270967058718764148349396197181486054536179357792422501536772327618325429091544050688606745114439617202985622225523739810472782681210059395722096492263757592794272889859390275745781819304207706402289774209994701921465585526591854738614414575318580881908757686398003506242826395217527359994969462268290770319579968485001671275990037479112438988329147010524865995000928522965744310318794296468795313787397839068731327335402985478250623197646792589456172362529991238674256970851973874043294854042638132178895760826544264374575588825369245200485283339062776593306695224073189949452241669039986162567670519848714752069946006958698127703921784588743773076992259753939361013331690964765923755637061750790447829861670643826828447154037304300828752773099118509342229462997423301295077729737575741173207109815711384072531646003141368204853262127176909170290143585981618334520420549238537832202217544808315105820690444398469298149195290289252327734701175968843382441138610080802828762963592876030978509327347674100155949846478461770677015023007453632117853176214816146721525208033443980791313540557202849254227314845610352278040252215385705623613941491295598384416259272815411497088721496802328005600817848996805828157151023528778312623654940088542800493078867337388313876640284551444915469738871371285102288916924972815753053792364975196555091147985721744159097914241239238389626815333803753531124969433137223481251136786666074048214349200512163559298297979931068528519850426386150985576293061413119141363744132481770541535467066581679935724748203993654550674221257096350526608247770211533547350936975131164951654270177796804876711899757884620622901390310330123989903329985810467773067848519140299118107909949247280263257983120678835655114954451480056166721999831814325179026964095196862378544183252810828164016089189764825798990301537328365273532462447997657168122051534943117044909767880897834802299469747801360015406119200169242430012672653267323065578093241239190437548610770860081706345180033891223431022015464345143884443657031099345009523915249117503344825232051900569352822185592949654966587070478800929160064743137007888709304736375035043383114501282604335292323161252944499401949651915556985174891209272117863389255821226832298514993834261736959588504559239355016703470663230305017613480065893007589976923477558498439208561529081334088146064045181748371154453110797083442849339021544998479849181417797663389643736520604541826077308760090753880769058283283030263929492918397427123827059106770416528338039078314061813103820332930355745144861246775121162582895304770971245715171297815106371251987130977487786455627940501443007495035100435986227659147298094804521633668515715345256415632983720901698730197150501180150922260389971291324301839031741817077053698661794556081408286414078055297652375366063107716579190198243113472165623256641570452666379055653122624833228116843760160248822065427459035235106250656146297401861593365836519423627549012661660974606416784776944072810077625147326077583210379391637737393115610859170597847228190490426565705726343263128436335581317299624474573720134129927140592315027284767467883541982585113598997769503193726606404561500523804324434061890609489810669230424442062499882325516403623555812221308537536396236637236330981576298218475703124627317162160301385438290700695465270219990059181795694668559017188944972493363161689672525565066397097937465267470477758194223209751620806517655298540581745294758646549608953797656970096116622940518480173685463808966568039489018813623837227174850722502839640420444104643048302128794634026854999827230583889614259771967649579124087327982934868487030856946991891480357905734505225047471078846123509636116306627160148103413975696884315447903062925718717406607760609393160506491677000046721173878810041601867611038383697237737504704301509115464915320991940411139134376253084035822748636561849713707268235581472518796808256137351456781540636462209667800125038703132114526557253226387818483020022952067074703231910744033092313662554862978930526494106572643637369009310292212084302131699520621989406459906184140694471559284421022770306747577202562512009374170248119228187484998421053971317588082477128295926891422498509773153872341470920235275075142224311253335790855078805580411520327127675987671262023551421509018697821618733331473723503369532137986188996180334236641854144318166145288034915689376999382284833720981476158194278440020340004856794710842766289707393154212371600541644374968087038910737787692886551054506417111859388931955285820590538261429996000605504233896216021166030692737936761827711749474359427327549805822469719113672369077794726283057643003372774981289028878442312611528135318809535701563066295970379384324258014227364245606411210617862335430615666616488790189343125852899553684519730026273654370662804764279500562202615813009133060625281983682316599589683645950954330159189387573115394687645952554829173253066896085926627090750349948533846496349817961882804496047662922438237499700388118684889523680717626877336533096450589553367308007846025521831430156960139685903854493685844093494772442419810531839245304545625981740880817989845865818866199529175148219485860136719740381065533245522267689910533751815668203943342922574431261579136381497122502045871372094850628566999652951044861357575687320411617454014819673943242934586176384221021496333008087369416489777838290378498099394133154936204732235047441139678057848703201413606989803555484200412457383169031508962697215879167307371491069654071328386285572507277816595276847325113528081999249367792811763670953354800002321224395615502210020583451459809192882782986927785858960057905630004276422948746395821250455603874653244687654652816036574705155207666193977842914197348253881616352589583095720700009512214679240513970227876092382854713674205915166435586671747425484195593765312888495541115499956173125750728642154202274333231044169643939953894147690070311286889964902143824311920375388066834373928737860211055624942382354148224695938288387739099451061239483610173781443852140776702304008648467876959361202169332423618461547979348882771235810178377924580048876769201376203463300593851589712988520011768472743101684892852114569295582697582567356488839911370937656320306262121340592017776642568544961509432009505711260826224265548638592738397750080504405757985760298885829415923249167504009863375632564083968678542008299118466944824217435879212424224115991833818174884303774717823447346400378946181557978376926086541294456113559593260775223112130507988483098060049594189784546257366742093532366213110747690696704011199859278383188024033850475422163311346347070731253237052878866840911546489851103566715798047850492351460804033742591090610978659123340480970445639538814570895527280700762984117282183822150802851784883159664684460453854967715069860153416188621724983751443215098054057605345236141010536933225606267555829930780141663541169615538727215366641370533157429350545784777561065523832483003035103304440295936254364153427629070988832988419935543694162456992124270352971013674858887560302156252073957300615710649366631448061756131117104262197233824842416846887123711512672983949057438705054116661322634313099426319336134159359200435831423242002083091490235046886822064920193280740096321263691149888415131068426856078979551145234517997106589966854038869444152463761484089006231487095142870501125990281119797561063668291860055230089129813015726526519681420473757106350986023418702025602686258707343395849618097645152482777599939767334504724915071888035920715766068430024037068214211086686163609814621578250336607896917131201185419674883058384648859328583348273965224266824293189571292022663314823183286348600846000372312808519309839951955561959081948368627981366378151528694390742888554060211318463312618801249091149431905838054380881618668189744936581750034705134007113254183580098625012810275639637794159098826014481550463123721176411005967981730967932860572525982836447081896022855753591726514830417784170221394913420971316608170182519211025530429178347372083429564647582510646225680819603143144704279287489052473047332817980765775785375946325650568423867675489274368235294890059022917037872347116177856416638885753090955735579888044284418386820673624987152826645722955614248006291500996374568015870812178207711751226078691699138251167523087376779943852753678248510192757952447794522359955645536000869030013042974486152291719891255038864108838775394788107098169667904765762407186822230870314456013457717394114829347253421677220124582303722786895080281821607218716090557548889991815407678992672543807609866454130284737793638157169579231837174612174534990688102537400387195802845767827485033461499512040150821471155478571236951928101183016921332669055569225483811832240198118722590854078762201210500622884275645354261418026939084753722952049322251701060972593299652658277714904381780671489429312851960849644523728445214959273668939700560082346443797581899385978648863914387168111579128879267895564936620033983346038180566522028722196270589396646023017135482816522473245621518914172969073369639691043559387493177647429497617174566049465698567887329672956683872281741106657994739459784154994608257067783268018792845718071711632470373492433219234263272824923180902911769865009788994267480848785505622354893018194740357674131041238756374861564862909200371580128090663879803655096745873407631043597614172308217576100944815372703977564546409755864034041973092192230642452809321873790958601386914495479213544299549470403637287273052169446290597345341564760478255983516777490251456694413547510037578988279439695400919884997110530456362184691507475821002605999914594783585748915098910522395198364652067736861462385670380818182948845255473523686084475283818179744269919197735934627551148021449839610239064660118779713354512983139523355266594401789370685269646691923964852700113231896256450643695103157787219385405712157828655938184945037325457423740175035916085020086241037947369306182569514347535981422473152852668410733609970699474909804716861180378729338642297939250174678867456793613735098793873024139661370271517529644419820506300175330461872324362323906511836929559041593354633493476848504201752390223829977936583234319647137605550975758791582205202051763442913365079062495665151166143905900037401584360418087006506683310472419740172594917818362398190800276585053101111306598531451156632242248170486464727762477573597302239669974120593935396089404305588543626691234406665165126190304476177369148101811869668451847035508964791204340305048901942559945282842705234817683295971357975882006907713739612505490158420798706585862650117688866324888996685589329631347910258604325562488644449327145080709001076007549208992053045531240220552739689927543206946844153261536146750526591477847725372590897555824364278257268712261993187722155208573522656485758730912755001993996572632145992688770755576481763514711577563802169160849756573881988938793918432425832692666437009080617369431791636456082106992793883249385476945313813516918702545708592230723386968087064226482091592331468173027178610780732394584675881684745118367202841210568174653932818149100829580147644519460458311878322992113606673754651080199459040069658756556607191643471108821749692992336222495833300959024073857913911927948211775498189659950759508322626618256026020185964881641066047225557598134112628740404873707916746586321141696271573260044334055909400435524208626510903559997841266288002627843623619039374408689406230995290035126992023630388421784974667397912474546111016788836561805593947318072495191076418076512262893186634136452756475177992266449591570731820763579076547892314152266447961225274528361047522634958073665271221398972777258185941741256833921141542662960116720474505704327190639134405845197638097643035335302179656823566661502491020670085288037486407671963446180998088517602738383155253713475102902521867850007306707553044752402741395832018459110981326386258535807885511234877369788056747235550062303640148972303615871326867561730146304183146844918550657740008732993962056985872990267121713453109672978315467266811268322825337633406371294775001084870803023931542204390978448392463948605861494453351552070780948058192477917851094013514218193589840900153888721747324446676399091464167884452371469122617194251522768969354438247567263178204530836000722253099125136252367298695546631245744677477076215845874146545824978471394208733964861673637440309808221001291858291515179065658590541806085696540570492125373605288238972919838153910755725970493239581176439339298593104283727725044580970210096303711323603738382784775086884172194788747594271909752198809768880683664695636798580207562395751835509372747205142551805252554042995841281020255570629349639709847624315110394275130830036646781064473599783539035622422305286177745406586959391919812754697611874869972109142545009595970049084917399609676315653268076725674608141235309985113572901664780963326949559907283699965489411218919408352834561805142766487938470500687277881049953977376334887977095398212701093046061627185106432496898963061650538738722033036479140393072368319037072326434771666739807136010946196161606870942412245783414095843779344047902686648159963410967049703321842301050673395715002450218174137271142891824375271900516262127525291510949993288696898833823142288994011062200439991072034529027700823917291434608835172606449422207011892773511461980485813142167394806148992804106510318661013076057288824903532472905106462332990537616059061853758241109272909349374389449353090256695848927458959728723320531057659702707263789876245148041909002580837133341243156078505734085624106081301952288257443261648066960956501316697011390774928044593549117388106076718449273817253338899709380804979100042116506981150895597190497821358868707125635613396821947908782550099883258484638753027330282949989943586614878775650247275321396309213369212180703399536299846239496738500378353059464528267588449790987298502834605948741220943986547436723522318308554505781389488911235858372787450560304592626499222306082662044963084587044809476760631718743087621205226024334674011393843554008482509614907591648300897966020070563437420332571630938821319840303014814690397881356361094307288844681296637897816684069058673239765722488754250899064789333748333157425471130657139383295977553949522059041137582142059606541808770555478438134427400531481450950934640609208395796201542072032783291674645133778919974220586934572876145387449527135576266115849525483940194484725012288155371586875215135802848163689429324195081896562680377869890339925857127029919170607440482650881508282235939267399337913489609205980130410694736375892262686668082127415708551242205273342904145418665081635559518325991147661753476436474334547926405411994214299193826960852458819517317484017815451792109730722181463079739931014526519769862431358087179503464351375877133813768397084687975907712556339857737172642328276120943914909588588134707978426456099718070796739610012996088300898917327379471083160587509960534288932132799079794450109788912644521764767078814501926660666912065889972966852651259875845325872236136892441558447380629212892870962963779862080757991672518931563010285321701384001928579067982350866767357203741143167182483376533094504442468729549056947948356053679097366900967457199049789126933185574900555638504522165311550924263587671908905514230513817481346285190860320041832859003927015760851398206045640003915502960767881873748896290898342513056264098132953492710138259260007876630621349642183381853685379539313951836464096918388175494869596001808465270205367247476601720024443784545603286092130353069611749792026400547057151463184743059614164241364971822231912287588656055659352458695141788992921467239537117841924271798772872647301660899681874081230999150523751487511199150556761972101359921227117869308615513359088953198822657799709699427156355242862309579193922238513946396752711293189564640916652050793873397042683730221861906777776165570718325667523773005669152458593603394514447911678431296874163495736185292940702710397084213428589547088822424843434117173154840492260060689216996920659390133713065554740823145676642156412207348847801829052213342943537204538563525384821483394918443291824021490523009252077139973897099058124133965120867665161516027015993194188731994656402982777803982540111429453605477726398667369396660560466970828304782733668287243586921262464442990917671148570881307772383806692887010729524326842382089785547825108103148368206752873335836649880476793133305811818581111515206721131733752812698850681745230384582009128081894757358740374854190448687236406450695829844353082992133052863909923328958774245022218677066158821888241926627259420649185318980394674192889362607083905877232429967193277382128529806800153926043845029233231038624375520166489019064621462373446655642515815847641845223515682810116997213621182300684090121572559271164599491429303582883498033437567789616332608411905255466389722311290767387351148778148327533493355753626837608927666879080305666017147174405243621648541142929118511153706247042893233123932402388034449128322729187486995891850243405431506303447646429291442188817954617007022800336431368727707570286245986196661927788961857144938352709494126282583196216445043209824034984120997657115590578185497999036219950829958875918478436945589310005373651170938455435987189741556894772206793925326840623660582270143113010289886030017737049677120514232473876180064789822416718316407353381158378238066998103508226951543168116940889886817170060739182497536865518368070671997266106278699506713140737222988399139672515262422638871956184409499464437118796362784356753665506964321595268495169975581248117454454049327071769600598806774440023630165577054829821526841813828676313363078431661530170197688737159511856464482879498378112319273278071396304011038086976617745546741344799884399364622384779872195316883752774054451561276932618473670885698990733569552627831287647733201893868144253896662676899239926044185354651588975382410274064576484124081303019422606908193561885753198803668416944958312128583614543924905087239011723972931709776788060151516111683729833447344088723083706526915063217312327337962443467467892255557214642016729579960140901158731030659696053159989789853399406180305931261436810125781734703705680884214363838918106526427643381962030069867473810010761731730075656360773660488817860743601236593491806823002787248281058380776959247684638265972795807622136534773297180975750560937189597047302596915028345972909025524519320360881907891535717179498322731582675132400018357282158151717693281240502118107875120727310761489015661111253808096149962084587888070005232731620377365374318732048086531772842783850313671469104697138699107567534804683952802353572540092886822584170473433603049555273978459582155876454644402484426103223593811786843266550851920913206038062254990661996741304115210483012560200713937042055424857128203040175593640138282607953726360306713253641365067197729049361965275364783017903500062952696223917940344982965772638151074281341612797146798175098886081391445007255692887358727593758486004493935287373254442668657202284117881761728095580860825169382638354352024144358876352731393888677727575462741450787552325967749301161406384764830286750423315039083463014065283100176421208535711123742064629982265525161069014806276676593152633010784877805908174541824619807177802904076642906753771682392917148155484054067781338387844307252097254557233429822550220252377897845381416859594437092386074825026970045078300057467518135910760012136594302248185961098779974987096173450773372434985460980269802462876330108137554287858188651055161605363359943644320713972185002422520851616787697171760764947365393130241194564237399837248760673091460427205166661985826465160521285483837618232715011522117414316114514008180020969878886372726466508282290658334019684476509760020853984159964132958432940034255265980412112307104815809058492723826427004656869735906720890811087305933114581670187511340258691529639941874438197508980347850731353103438528749450763619917976120286345896991108750362475320352163924650963508415224684463042930386833635953031271434390170698625140695461610888131167855218709898662428267357373604439102205850224742827180562295068913839183245452986530810562611157180083980528300278572272082925960831724264072714481233168448968208470134119961538978334373218653920704187351505360441054800045923412340066310031817949415017533708020033999419065822402460040692215165737134119157227040457572412211751410927687717247116636027494244861896796736012091046117259072268706465217333263577307363034364394858556064628856459179021481961805308538674056921148833709403932200032813971741236660335854298509869237206620109112116760912328212363071728811745703160186219685284778624916453675016981364873351897364043405170686775894783907801680090653294347401370805310943506395920413748373275930514444248708294924776534667170449764020467573013801908164800745343694787610785131217629661056855809213012707956648456218948608362753948467855426253380177187500720852248671300340120351840635136997836337335788095591498787451874186517157993104707611572050428216458429735300337270656434695650488776733325186350676117319778285505298470289316398119950104388498969077815485725508546239195195642117807023163929204395630649861594455293841598149017203511221042454968394710351934014287341941695280088279816799463401384000545425187549041186168717538784222432902580788496946378622022468000441882914201403566602568579708354536484213919069374936774127841923721690724394005913443820961901510407443424194063401248820195569921224147293056392833427848218286853096863139045342684511854712156439674075454547542469738246697753347288113239407236086236957422645638834394964710958271226089192851607766215522888266108966567524605216704164637117631587326158395604574814649071953355474114349755678403552332261863791231277477279526669560281744164367504996816064919484852026979323097057776744005029755226469108796730872371004021431919648961063704485089856212487169821192269245346957371309295840324216825501006393095601154490265044001867148486898682164893967847767383042485395887424965601087936102777411856987688890672213229055401311838336492742322352622893579912330056593463569676060354800129208715142642400845208641091784784188666059755827914230676178727423989644743030329301586604805089016747915449724339661633182263640733681273488965554690466423291750333925886185666222535923758052862377179190997980310472600954605343514293389673647336463490998455969897568200895067045264102728288699873049831457300891122017334345125476253354251275116708404028377667159278659135826598488026631917683849974412675922673699708380558331653753442238335987103530111688541125061951224754845455434973879235698554031365898047619232315506156449451842847612671088782492096879900764549289515572342382937833312364967604661668612104861563272142184390883978662578653434287705263626151607148012442066202731603606633332682725537699179378448384646571995821772413209255694096110504380839187903716860777080007582668871810763853209848060934056914551608982760694927052039174976809807882171909942644236013981149455543991199445695281561373314110213697424999927192757823706590676290445421774492991491352200002476400176048156322962582243077114333247370526699140149419668684346523836887905238913666067021792289938909240717017455511489897325271869182330094720235696910759463866204953077734858927453815896887095323790161189505803580429475247593382257758772890730893561955191952981986769268514330733980640539486280695343065929708361107722770223909615579726613511293311894422607725537030194609278923811955937773770013754576288726215319035641983906182537346483418465333723316324464845306251967335077203628601478215760468837180983081235790181726139394705941183540602203775314245616192002391269591587617570675175452834427958443813067814980546803870468320055184850395383539416765473563084239816156537969460347058784311347936962003934747558396718529380847669759956417245613711778827966393880454378147391036652231785952123610773799582313171699569504801353706886282957456476264247425317329325636730738796506877787652357571137028358001470296273561687712460082717700281757449747501365546352895227119709357010788887828126179105687055938530654725294170761031404568220244727144578868448883374337667936369828084580046769800902829191586943953861273530385192875252362293102904527374732148100765127849896852420250050902003397683581538179852026754411088224952766281259645301054410426383197852132721638749700655759112268602094610529305076731007705663043688603637726898392337874523243120088106400069525011669410737969444171106062346197683701531404745103493868684661060033821529769912469296872511322345734994881314475392147689596013774545778134245018129976060147500380547673869821308817063057870475388801285824218589085732376695593940022147561823137901694322974585842111785584943063197055973815548028958379833997418789746131638006889805458922996125747549223192936136599411578560573503569717677852956474191666498022247224092413315608528756353716776056095884668972791502295463790506753352492566280639472110271680644037926388268159425156578904687659229074952184743857522113481242492303354646314539374207374444096118003957599369283597278829034890037962629197540105851330909255999588911486470561738293954342824472457558865541294253370519884803722826075819071520365672037996261591664422267076829923590662920535768414858244559765479084406891485545463932226640982994247351385155965805869826351397565518724599987098307533907449231457166201747405848220731975357199588280880916451725051213708413726979748342413555135499102935802320885925161867138324079881220941431416280286186767661138025052113521565780138943437444247257113248281556058710890812615579970604317722683731342453856159290220820649090471226882006776928095706983131652147747612863955597523275616851074006516290896624363101743536966238293691507336903332985710227505950690137186845863125443682433544592703033164629749004522818843447740784197058234888217596115482558455750054147593510099652755771042285986991232983059976497683138257560767361128901528905565638068731907096213469325428963072888566556949395934462237115674928844318815684621169780681661803684095107158353654334821732871243846545014044710762158786187071439721801513148965978623818902022816434986727977373327349992928094010263904339338331030541888032583177279053410420862545985803105081861502981603583371537070882766451969772658632912934658484171146585080172760903155372909036704289522597869466921313698114855258794939957632378578121953554068459750162591720984650582330571454164473919294075156628419118505011600079077549608258611632744208751960258469930923980916222853697523972993374023750447521657684651175102543581424716095755226104155022360737739647753488487913352736047216463789319835279896134400715586003349730899937701116170509891296100652507396415479357799850341686224731034841263093215144679853397924297017543673656243963437405320396162522665341803603259568864186685287721355170770125336147255610194383830308321811854072582765667246861082945761115990701026688416590867139811888365386989907037402777726033167048497391697425576348800516442051993776213583393246607370915764519358555734118577321534908855535095785794617768984202516843860176141106071071786345207525902591359466776126101430867402938819068711074208111463490521621802222506314222259782088003822303168060078723815311595572682565207715197949904997685890816840410091307661791938478153977224217412831208635240811445293934751760563807501144344309474650853954343245456960242350725740735553230720725907190158521026260255141039124836171199859012730712495046142787141555158521112469347758079738933515936380545370476786997415614142329483127114193863851293930840165832749290779238276989949876969449661056207494074526723943675595497214882478051495932364581409981452759867708142685728603545690852149211874176840047373505822679288526582966789201110223235614696878255405947071337539231694693994757223926201709622017634180304348484732421251800370478692853833897541406833450594786629074873003755814116935416963486544051560037152215185601540217820470498961128780359825625821078859775547760005215032511986859788234439186297004639164029316617223464459130023107666932372319298550391699394038915702920868812162759647446216303899621302776714796517154420342187639255889582425766827049999903008832656591703213537378339145851459238973369195921938549799672776186715124643460475424858510634117126171889853923144829447217046084906290422035932929959208288931531150347737770343878259101698536372660124922346469401175019818409198061084235449254007712879625915410481989608630380473088464479733630513729305501412451250919624294828346175297237740166558585602731576272317439771501902962789352757958418902476258501731586227199178848584232649131901248310693797526688254658410866009541234848143015970957168353470790331701468208430871350003665342740603954262515668408483612143292383984440091243448751530920081823401997064015750909770679281082163853571149981072437631274040867713575571623264857494321709632343920890654926366627054065839154503540131129524840887515665946891140232192459998294496939880540717743775173543402562629072238708011980061219710321796914888031401936155807654513200860391110557927430921187528803046502208943431976838174522391194090267372499059541707774598815628323003398088317146558512397079453031685800319072127887726885135164411360915822794704156326203219084778252230174412828531603938480759208726802658477283811097203219502919847990745385618348485905695662226228654786501861148816963526249122273847406353325067938119399027160819653546203837833146600938825314589765668780770250113118203729472048754772084360495487700758784854722331677063020942936696648173184446101384029095992414336878295536678655078839708433518126798499179118832761869387513447552115188095752011738232821208854904093513850000034232493682837750792442045899104057241209007905779686383168416162998655417848644717450491348605118907788189933924482836980474222811753435144504878296315194714498903786871228328998876946243062272680215255721962807551766305386366761255546257111856806113369063520969702114662151612773889628792767650633932460338715356389324992897997840001114854801345956023960322975903281972660728831169780601423474579262230040953459458383736946236433019180514491473552609854692934915549222637308392104186926708197778107727477502722837204122688649777106417586323547847266882090603666328079311358898046141490008797763551525487073700779699633183776088534280629235295144672269112875563893735917691987017837995984063158060323279369334465986967365295954695998511078540422113984166916206189686726893952149708679971631270152360139709651358110293592403276830701965576188660698943405553782026428710349540874474027164046871298034990533186015594813776916382073378425599784433348626943827594596471349104923212430744024365172322823878104437889246156910921445470303666729975897002279115519872935433070874499314587625921090007203399143699814304255755769544077687014175723130745942424641157475504254487955428635674948353232284186039359223744867651399636259895930065447708429877224020382581070755802898300127389546005381890297690211277833363713876519594835107530734736373695487196406226982214082040526439582920190723286314431962453437894811043563108924409585095385308478811558388360234327413771674623411382146758505571324821690486106572890218493451724295903316402865369230409738419982542329624355656004923800867709468907697879726479568507012729002181153697441910097403429007618404182539810811798816994243412420850416517769698537397372806806918915826037848888849493124946867666550382918259496020289876445637910336762075165831757810709548110793946390516942892099388705962577475856153533915874553982327647449901861269383679777772679614291400799181330030185079466544811879237802569627251047868889903012498424307109173307809337934295753716879303595217116559825992512510770890815396521591006901980229354857868463305598795658447029997099367082739028100905555517325208900836180096040339207066868673757434225735755844282407599951633607786006773659989834541835629799466797145768122636210745951272161595879249249083130824796788646681959655283894893994709481226036145296018934353707259437043639672836705297124010523076543076267633722260567449153987162078329254510306179023417365051473128089739064373709567223932030181594723416617186256219544729967630106853896595190808983190279946471635218625752651566786421665380242250365654328101364893243176909376527000313120475560575105286877135656454272193794029680024577150192038923232196322057663252903199196160609083486968287994624134517811571945489222465231353846853487207611582221911905771846196304264545594363379214228341255022008685898589060794268366278432423328948920010092160402890207717296185573067185352200278579493793600607165905228816872263462112250269195815448047925610603901698098096963368404928541179426203681390876679158719834361586980220223800415401912037247485453130655519527312822160484106160242780000441714954433064020986236513532719547202874970218365303354172699603627261360579661522379266506205403377873717004037283571996630004118336419484199319170039171034377671001296224313828201655925021003784430561459336230185089324001455659491140513923343340458729113470544309812398505817668081006544278800783570571170361188241339630636837010422212557684892208898422464905370433630313415107823731289621845679176226368898779075612989461987133747637884063208990402397782904786092915493332469957712298970854698661944966133045054641379200130442778678408563287246095599130379469836398473784619942432150096754023381873309278836245811284748541124486268297539388837019920387659512057033585850698450286142520944719887279982136113740610022705172957461789192905374784023604094524641141850891325191748810995184855854060273831618246157127144726162674027851947621835783200082914601830405580897884500182345058656545979128162245365068103016588370749000199311899741277479734771769894251488976494721094172121249039839749416935995425886188133458091188078879176905605668831986398277808121039177200270118887632855168285393125309076258362154439660879612453556768453574091897335570039837676836187702160592049935727042550957973415952410416052020472207731328199408592094399547073395643312922815807857499099677818119865936154848023303960981682466034933738439116789984139888752028633869115652657484045068820532229546435801310151678885742908266756028385985401057435614620601913354223987282980334375501469391077946443836840125070780052461747722352950049993441277749389084707601656170664937088423227726359429252902452886929571861086107775438947974855146997936505935661734888237525658741183514904905175290256861357366360074440600547097478453287866421681402381830166047528802172823769342661833602815489003855827541869247308898505081341631955547552434093015318126169942318722777786960208706516506096039196718974058248452378462959216067545286774872265182239307028206293334668058943084550352111343317450858925311207058094853312915677988119748420092356114499356991316788879117794873545051716357628644215155720955872612835732917335691134172578337685733101748724170176853109245565989391812522096840813285478363990916926435583032748509078674079678485109945243906684632936181203663116645284231875825871323852137453901100400860916021489211750792666284027715845535974107357957516344104676387639300113544575271668854851120921826930246527078580881039761296734130497402219512559332564018492697458709831674790798895748289764902800821883899457570507152404734540063455337402860563611563865143451483640372607225329606811519082296772457731580719419410405839909841772006639673155871549224745412990488468504022369250686812222089447748885132678566863328225870157563947946817515062344350393955591452569800144702191564199052772569088644647827044122230039988655289919451432609299489786344444222189328701645183561983621331113128855045892107485280572860223913922497903967589024015201538431919673910742149745451532953677161101914663859270617692225395522299145892495799013022527238832872013468826028071677155573633371645642887389630804050528874884907870311271976313078682162157012497983787801300878658128328279680840896636326594333999281541671221931285770535111018010674056647234122408320252734946332454202684651856287946247346859683376598291878345212437643686642009638539707812363491872761508376988055246420471389502850538227399638545914440177642354774018487667981028413773280179935348131920975766383901453532271638286864819949795024982461878804919610307077933925608584004963294758604762639882974956878837354108053800508823292530384980402874461201896199322460993961638762247347727446617381725799481119426969932783239991003219174380344219192290607377212706561788749351163709629588489913668801968081773478546489244484387793381832462126173271238548151678077202441790239710882927109651349151264334563355206237755933090860188200436805469005083481601402820279542197118091006000950018497164231143729892236702743581798135740437787541137521897729233019264005546608555753821873628379627086759761323815428703566067836488842247196107887835220239910551838704366049034624756570667720535467010099035086900948145992452173821254539220859599129580299171864451138804023048581057076746634791131439970317386584285783781212722065327415644818301303663435672283327734001024096449431892566994284982468386142358253740451775804058038406426460897039331686250475303757873668283967391473385977614947619264129285359384745935843122185775419962999113162853023219178526008311924229875970948645132022115253860260495534787954243719778141492240608918091749820894457298063077202763731596614439047502822146583183556716832004638466890868319637368781914659821928727053404769572484040102343852908802269072688121521851849624548712253048421349143923870193431178415992664891283716585313964807982610669048602202065885338332344276961046828214967260527676462390068756057826662946919386861419106246574771555636207606517429402704864424617838780385370281012638675310340991319819027845703037423539715803763988454499346814434041623487723373606016352931339266863122799918975470617711921189565109524050978038846247593624003684575784782162361158292887360089251065000811155015704792407961007040236613448033901057091193429718956226391462029101294806871526289502131622796929132500691469487258911252417100432754159279802210317109885965116884992865529409778270986716885094874332479580731918405962053237918770224300505410632532120125249002445332765415792744830205908187045842888753777282017325736606318484292074752023971406127440860875736662457041954371539704444819962541372449967574748612421361883773903930378520748049340565286503341980192648220009811238228065867671743219513538848496960706262507595637300645219219975382226940457323248106361332608814926813362429261086756676902889157641405082090852379930477393262509682932092783179617963986880345391813057228052712592498052147483492525755393663762651748791017210743670133053456350271152498623110116470604923750376832966335026467703311871655245611919276516396228745730623319168619992446748431739567548443316157566193324608849840655172301889904232436040395821731329576167017379601284349734716244728876525519334631431321626224523486519962572379507635242590599525368132836559989064638627751209206609839452384005124315154077502928045780838263593661439831131505312305193009859954980963567499557624427905517138575230593792867467643191277764694059338847510821374711000702090385229682798989974335326726977678239820679046077581615434515888042916874361443807847243406825734982457320583853837329044614595710302939961034128130739047183200382826682885855564012740747289162222406012246501553606828212947284461903793988009663744404683978623707310192599411738078853172649624456585267930370106354518015387895521763038106878537401968077421355374178541138858535374190084604982983175901425076568496147503247065527373686401339148610124937566345203272586495601005726713383056472458526200342386461742621431755191260876727598241394760847706136170842043461663746375149919996826056638828309526663149008158231827612734233302542561487063438514101919090109389571832048508426470418635833977836552974035760683729533633397405310646594261408062046259423711756286275395041342166465330739766306120776984101182982626661269872389391034741974124955590412171804937421088787305127009788052349993772557793999687493604232558658852586535039703901928918480618297607240901100328866118180303055947200581928136604044805350640260530562177873204432523132794211445705575945240171514455132655791836050627219096535015443837450064598024551350594187023643975676192176458673708441748207653294947839505041249174751602707658367901147620253780088208455579148369435707655497221604253692524545125228564186901437417743174082545294374022591167684858845446807322892515282668306934303327897695242137657508727908431184720649716775093775145354997354329856434728881365754293950264701132854553261522336107319470418032765512189556758060603960133569012261999396719876770658260435345001558827756576760202899489736871096179238507678961772630759231625056038931608965543921668106840135386056857633711302986722138452920944981299256895367768508315280605187234213119661783446813781712045513622328195236270857103847428774186071133540697665453556324595886348253497504040729054912936056984663714203450303050124992349164127185359974068786681069397550149302112884324762339314811229669566832554577842544925995065544309358097015704623469897300225234438807535862108452166500598282227983827749862063374375286515087356083835049327458407875044372324005973199558963896640578621534968138294574494784066124006446880970587922139843847459171218658442114335092455632557874527568257680173164538339785788965692358997340321931742486683041990048117794954597440795841422490017718812350465497783353571602257577791624901105458200751153966499008466759705610538909036537468013612306225084957581552255559888429505689537307288611310095083450659407329260587001418152520678399190170160662987035724737336615685547867671994755772065151713161349010178248681816423241787317265336544905730627307355698222602191523010002528678797474323887153732841223538263929918231913537379081860112498519027288945006269162152879787495826818634693339945563775539469814627783639761841327788792374485717324645775723846979725037073232014859079794670190921719026710737453159202210785810281103171871214011837112334860436175335158077139653278146473420533536395016820597910540247140088374188516018628763421494682380805074267828499659589663758878696121005475327075811219086415139577931819454413073863096037343923790306970186516353155585867346027195993183755827048866560226565492783598688182478135104574277871877157320494836399049140095664362745883396914365910629388703044327053170368235565219142440299727318158199941274681061644256283811064958556944193023536320358745490936250403475331980015453902252718210981824978434099371400503011025370368457502970753250221701552890936283879997890324213105717411987706685014253443005323174520440825624462583240727178990932660053681842316189142292561207234264804790949337368806731830760956669288305597690099190837883406903252365310787921379318160945180016424673180043951084104270476989800223027495716622560905144826215831365876110655956248561826600970529863303789651494599290902936644594869742554046400365453098320793279962495457499407530351418432434675885873389133912128695983711652580737022790544015918382991361997956147120245985992832041359284187940745657502247117365113311955784611555862006066060994600690482551015431076599389945811561741295801917742479113480350633256431902246791323681948290693642257733777164178329411594022017122909554573078382598850554957457663822677170239975194122654806722481246492582458837066511565458086541819573712314659664525319287075446862819446929895822318138456392362116469217377163224601876279731766070984332071140450724196649146534404732731083702125193537941353613468437404977000431864187622730321288945509093149653624953569718096955333219801008244693753377877003544609431835556851918496157527023266464469283303776226553458599299397254016212715531544833236840831310185001615319534073089851952593716021561727296990695597740454199556601333079139601703278128570232292930542522833491388132766862798549325257401205568168440984110415580694463740333870135915598635562459278606679591902252826347453580425432712794650898838819776404101278229566205955822628525950568346453145610806484858450685052159101148082945923118879271471956063209205758579849667870555036378837102150818045364544008309462184585031323894502060470796994228465478517620812763721141975166334954888225169517167235125794950877322658414019600100135031377529322744791687371739624708016989295197823588663272298438975084803226256100792660267857421142428938315315518311445354584129138919720452576274432553145159126503575280704991184122723345089297291093093477056133651993121891054363312498320236386923404248506787658010343195891817782424714480364732923472334784978671552722579742251105743079452878808955685251471965651065973533463838654996244445188008879700338247070233988283259483716754926198284604256682166468220060214793457688029737797361642732667164510068638920622803904908470188274493876494260517678323974245088518061762806222254200925564304574501123958166697883165511287203571671759891900141436797676248719645106166559811122596258176412218417689412349608105123166744808623847790238690973535013824839120081404701631385523929829838183657438506649944068805128979074810675797579123373720382082931702653800085779742758283007735468680977152583838241393358319060236765292439468236897159396782370039304017852323904146731032060839229335622025204891102295415845671049258939452441561872519749298313970938591681941024627867564356836681503562349927648305880027226531063581906853464376129678275187792744020271939394939836926792791278959997795161080851095875930329033536928638390640278037075850866598830941689329349190740277770964864376136027131518491912423760109782022318147707941731094353332545345071367003376590209780948948075892712589025538014972982792413290678844194495718779371564762476409563817764837184555957746984485967367290853041808518053323180935742656714152727785075763491068306314642380238912317346068793941600439792922082569218061444306929256416518135893614486546629770381274051383767610144913713608257642062432949589781456034160878677579589199421032674244555914525689377305114318386144623744173410562540555830038721958394421621155276458156562892332277228896125452420837184990005959779027060580843062596975378127730424150263748367375110252238028104757516795402786604747906320760428538256439291493697002681410101977344488873410048831987728984143768486047140201496045343494873566951741870708816070058350586028070772087965267540859018408516810911878214875530372865550728635884797680601455359025136881110776066672943340505103032422213020252498527358348244935679076946286324078554299238329732472222557086610692389986018288564113448730279453249190975248824812489207558650196634392393833563525443747030943957250395212867923600222486340410326046658847516942957717822140666762972017974213673682939197420568187732131530888147892865554759239643508049647096499003517068779519656617136273103358133402299930465791278699149252205714569568272804349299384651478969393514647387382416751944298631733866623974660451795907792147177994743676324179905985118889842752589727113581272407186161308690186069648591824776626055538277932575210079218153821619692703399939992089325593175611112961704901996706972911835468760661291319552696070083131542143969627947658759276745900727766289590444552732841031564486958924373304912011494188326833299700304197818470967742107233605089409369835141210742757394794806923481396035639843288862044392731826749473451582876228893903232504432243135909053253948168192014647876890335331056876753007529808818250625460964202250236311077104070820213431977902792496684038488859641548730451925671492445580230315092164520725058375324283957456138210525391916244105360605538986057153167322958640871534735381500058568642124829653883291437861079840169154861339769611023801434959129617070062985076987532389675290610495058391532428885712754115684562957395881378220364081810518135315179500577899555311076833481905782564267823245766679762771970588311582724420761038054287646797878316425143585014794462075324925229783607147287917108832345944948033199228073646963367612250326025712015558596333290141498593408228502198157275947544291393642403775285175009621568151426134192282752731052358946930086432447879128909838510649159404979429930186912496642937021395029343280075779567569689919548462683298219889583859047036812080311403698327491033975933009821729226713081358435619067359442534097894504920330063536663544073643361645085388211624355492313888777972160982912994045476459567891832981358720743428587120763775887543471933507618396625520859289277401900381856664180046852898261066257711367542962755339999808810965166863389565841453006752156868172237303434488257389968173197531515064302479226676711150259965598217236303776311123596218391398925860326150636438097525413004559876011232868186996585937162513343506312654706553618577742099469449510600907910351589930612396030735911324964739599611631767753910149160021594866028059185273012457675098489768067051230632761301675327863977283545424678690554392596368278931505724381901840244612999467021383353954728022834956810286927913061055245407316925753110675177587130699302244921576975898134238494840880153721025237482149883936133684596515847002435241408274596772539578040382177822415702410388262980423920725891025577276239990577870014308364758872389133411638708492801458840612874434256737757867240169199692401268063071120714180074327597263502134064794972051677177499756202419217762613646597457615158763354950498541980053476014601341691303856846234832015420194386305019106896459359400281092463999728043903918538132232157947715193227888840968615154464038953188162398398310836274323077260007887713375637454156341731297804147518109583375406016711812144016088864967985489639171822423308673824479497387500458934084607560733329961104863323555381363728049047915354140375776055813164698356859648463549859865835807921748699412760181269244191299426738988561074476140993319243537703317601713132364465518461532851971930474715643437816103165101992840713801310640466996698342724042752769437634109517310617500895616756425738711536337071843376276933662818832468956306491220919945920028832812662460216921305481449269561116959686824777448084211584207384829956171969523133436675841731886591716615849503231019608414263092736859829277696344718604853773859116657731536663291852569984751177278427910260654434940251001089996452301079968887088779614648690106447363104494143976730964806087671539274296024535463917407328917398799920276528766636547020864178646975921172068792885618161235462051817601793546462482344705175126878499187272615900866190342377762810659183975266892432761511731656300697317009066707074849125990867064073939249357089589446593607863279633001962256847823616115896584622581294394695445196160820634735597524056770385546429597587823788300450521583547719876165027715407586455801583958350125286985186570482592888884612849825441359805337516222595807347618778325239499345014512343897991147288079028735092477573695330234445766467760015795582033192276641535123192496899910745124879454382302767735359941444085943289142507707686430328770261108291265228046363018551651286189253463171425698353498906061867316459267158991254295365082377974029331635639222830052404094935523300049536763559227486302414498148164999380509377648544566831139358534473055092952845866067367530702742612958445386083120862390462269426721627682376989119332125332478083910085753561186846516523967196064725044122560213929634944364285239608272559516989737980481015841601158215183644149854381805230240913010101005241115344894191525404524419520374482725343817787165739059598725912660113821846494921521360588601450803257261259390750272605540197841010470692359251004728370110181886625991527420076910717165090156306172253107370275162880991764445888153421189585170027985125720497067931783369949313421822234046432761785352778801375899689899133450194027615234638912200069214724134252315983406535096636468040368285157121511793128471461524005315637990603686595680521215747091106119566804097615418608855251402393174230496127681811458005957110830548428328125374651869022450699246310222088533385306161060574460235468837868919632350113355880035708275360094363178796233607304027298986789369926670697947400806470252196787519670754041861323179467395621295255239624502734327454227660081989102784729890958636006982501965785502041523484639610969242861844126358299794089234517753876369330285678008516665629727070273466663326451606783624106940693456257385754216173911790383894614424065365914160930545967955259533055505991828309943834451107999140416946681077396589921196440654078205270754348603062913456652370746501540722400989044261034846775075010259795038625572660457555721446590910249217842298136399166830643320207249012123669253111316693946878657878460141347911705083626692372240938078776171105501347332479347737830169954353990146945632903554654719685004934490308593383832521855094705852963901496654360105365971577269253660245295093747825363065497698567151360991665300967787270359247930260469742858715131196793084138476507257052293758671227418225891173822886818211238839621173389728729661336519971905640219218992126296074577118211102813365392975160669761602582189638997967817816998392200664668217416026820391357182167916106462771579057112248941621071003183164433286208694424928559763186148762998833883843389401495545768390445744799473322899197740674636156235387448796362809375124062828886649321942834709542614750805371345725174911419096806533898463771280986624088862647491787641720805684858925895366897307301808121997241337675104561421028184064102257863208633178877580969296794477928277312123855399112501831704071590858833596872643437977496319412647910717217788896973274094893071551841640749714973311082838759644277947872389983851183136955400603586013817983163540975486370622402542125598067439392013331958474866669953049364306881904024215795831306911082701573308316037343781526629212055821329796124766407402895323161215076749958048716522897558638901724830929645532770269125958503367315656048309616081440898333931003644911120383694235158661773504517950783738389661024686894782318065813249674206807064544769914587895474969921736432656173780378842995446695568949253266038870733772352669336552566475694742782117158898765275401059351511336146319846813502511261951545994810851100441812808004355679159766657522063968317139191666301649732206696562664705908797620991449071262506885404251406280491612601214026443782332491218289415904023858466390432036000494370803425039960638610988310024855584879285147206677546333108699038873446431374705964370738598035241108402416873639872028889154055506418388339671137758189362543706869558910172158920123840932042874973548784638914729753650065248794738664737468159236977830528187716545006699606372371145121698091782788837150295846828707914280346524999985864253755963949142739476978003048597412858671557590590494144097233054017473986502013843608295992021356036376636417345581184852528896837027906258842162313403011036523671627767015320490567559317943630601356104581595561873550865172579975177159587637152942371250097009712922261764622889162684318777059374539866265756243999865051605366030435144283732472269153397595589976113587047958264781683789488460198744477978010931141524607818574730608160790639854412544502553347091966067272643975898910209036243418270858435180380543456027762674412198777640369787219945079140753975881751638179868810715936922879563297940327775167893187087590254690123090624075195538696439535919575601029737694515938779817515916415928235898531544052519098402926689512908788730110355939582336387582303306635440574324427137900306001590638884980404895712362589930700018899681034591873855706530504030554366453165460158843212538199554334635159866690649408559953762648216145613315663365656436147525428093693099347964428034233693206539498688837359304569603908450264071007422719673261718456511501645176567340592581057484173120869405085769053030621945168691176726314955281982320079713255061668964562515105396801396631744111618795034471557733698980046876185628253541682750297744048717807864479778135061880329614434095497202090411357714866823366038656547292495721285178352849580933779860899862935986523743428506709568212038346500181777678000234909606711282824097207622957595279480001437877455711099537181946304598996017223121933941735004024001204610693665370708780726869648876736554255856512637430425207543091459102035517166906991157282957694487011825446198699640381050291662995513054728614451899443543888758498178941391989915227873817865154974874058932312732561595337922679393630417488034396145194664727475246419253252684900358972895266192713347020999276435409863485639241205303815357109004748474240067218087261568536471786294151697173349759201180382135256452642461322108507155422740462165693575757801053933577965087685782954897830643571933235417278957706857655524365548057485090478670034470876057236031583337878445430644385696163371470173001083095971202773145878147798074161003996492769872235415446320340767757894198159371547519191906015625838762770743066748772391262683370335848762502601124082094987690058705417390937549270776346086449826489168579000740442705933749791728892036614836177738568517967212691080830719372221008381628443274246451327759554696730454928743253154861908479337615604309720110421844390238925819928041357122998695074276018919390992796180421258733420289408975989310503569264115702663312109134996195874583103463706089491707396823557059528372596597451508954037501194289316278669638802216206399833313035306097735240982129554463415410126173713165796634060885296660338378175618590292407619129304293001552766981874549371047574342066988357536103999859487127465483740586429852217724172915038978498005628628093705636048683760124454900705461058487208596225471825516494662811028718093020302337980061833762467163202700654171976494240955816406432490735791007449237580804204982077479986352514045404043329898794624955947507063296233223478251310828741938920385668776704412104523464753311905051098642073862980375763952586024284171574193119302711184279069498253303525652761828944088009532418576652735300569530165109763989615133084697161165119787681171274878047032593216024506813402204284452606071112232287463552047341580504782293206734485950357324834248222995162240341884153741362898314431923339339160055253884283001253523740576544577550107946328168346476275434269371186128654315246411576707186146011409566115836846515652002073266546259027446808237725394020316733402688201814741069275256261386343961483414363511556336570309013721221742317438649245058068167315547617847018026192460050654115591605155030412648375829849504819933747718255799411826849082921238337848838495312820690852796880319854017050116617038348741297971221150844014412178260190401968208798210388296105515358344558179811805569470933793023334975552530742375572277351230961029018292254636431503069475191164070597958936008603636215969091754350806698349180571283273550568420143493232528665308985744027655438239870908389672529767866907308299263792100418188647922141351830358986525242896169905070081182703921844516441542695759896924564742752246034981949839160553455323163895699757932622905853306698042686606695318789083776325308763524486448042209869685219247292814727443203745375551603383329724889856524399905279830009698950561404292968968849142707546228930289250307133061705864360649057193626386201466194931510569687487096001143193586213964588585819341722494636419695383475818662290896538477243289719455113106487443611539158938947179668784735421810052520117724862520358830728557478596304355692283633679918200203704637753928378335725240084217377311166800480038701217480124106356382776605076407843049225084922832615650323670249038313293178449803560280927331947479137031448392531798586511220705369498775610934805072277185133934743390947341902584354235127233234750260659537945573795018723152620384011224230131615324071073184615317314759626013274182880062202961318023044528401041866034828990750037060759468318001870012196778890352762329945238292752779494896782713863841045717896497219596298115658566247489779460978315245686802015330842091344841936966823886037368304844658704400372092844133045207692248465765613706265909356879696599916695343589204278218471870311533902624943375225772724362543780081586957060951614217606292245975843108587554635350056910616559408134669702584321863583744691309397266955519274483601061019323485153044058814856090097044038708017673467389641905437637159078302543182615086694928804522981041451007262735573848480034552298230937225292442792224731993968163019498197935518945482089474641481521088540189719211145212699148104808736056444283163529684696678136916823095941050021488966877455839723152248557856505108673881084690003740332628911216642529025797999590652342812228143722565067688925015399370992881486733726859220543849134434543950322571031535566352283349834896304637260700990922257531133399079446868587467107857036077294694710797624197342724464326653243884623616007840549525092883564595381328914069619952511722318508154326052444288982361823402800078114002923212118139547630839996618110412163753778447872060194601419776309880698295768949057581245385501953374810784740538233325143167978727374834514460972719185546398061870756295661644306460069981933564644667248242034481824525864673424426327075668152106512728521843592906375138277194744570699377483702296562705913452175920514396893593109514965281981728011750236126810147944459735850395517156168649047793725028878258388598575867650066544303648291961256422886098247320212915352643308128302356687656722411144034520833307015238752908156146447802847030916582698140176533113008052947163155744650488352425866695326294369798021500606874466755733590778228645862595161584757511570380064186529677568627618080472352022828496001709951195771267159199017122266298215797428943234925594770661722625877486475743625283305271791722342932371187887587691130933396386919130659132294904563065446204992216124914411187827942816604810212382172434346107256347426003476781975634706830898733690273496633893269363637848023720407078102576874439219073567177950614335784794426671547217240731341382578861545184968102255731849262479120920949451922576174392252160664673237642962603492774866224024151514629869642750552168109077716232560641454583152269183861763280302686218073787477452479452360487103797939084883171194158309170383031028856983911460851903441244262082514124399553236053078339112170229203601626969737972251401810152556854263179684272258259837043619486922081176502327464143876547119389170276507835342723864096651531904830406967370885951543115212622719831100584082731314026436884521282781913852729617319287719665215112972391260546784864521511280753922441216776441530713234847510245618728379779362206257846686357916191576692558775062063594882844234843092415981674072563867292179778317964043373554257369813852553364896472623005499359625935766054143741132088859846892111834375702683072961859714910973835447175008805705159483678540189507015824543455816709501576400782908572938466095475334410408628436701995835256084034661150680164575915830443210165537894210388281773778486235496163914071167755380751468706345392097624599809319565246849417308259437064061734017509772233015248450522708047119614485378311994337497386717063544896419876387098371821502013885836723807125507189834508800774053264887341253797312126607002202543784286821675243084892843884040849976690740186517430989166344180415497434584014435874776884773301487121807134479730323923932553843042559453928012896957279535784767322412525860084631606903859907915000452399996817795875262542609441996564157584810900930020086985902607077757041230138391514322002613175499379392080421957212539928799546597034979065307548570568612933276234870058070708141205514558727038724842944039980154858287611705065254800309008596662482579482615619481564905099576785792135986251094752286874398325348139947858407044580338077658976873830095007495237971640175876822148184053658400252896098827544752121595839226083102334959463637435998378341009981440318173143241492814921092120758389628805975696865459902116595017062229353993481685296931663804899636569976603655893540038855959261701886263176259988507439925951513698628364270157686823535907788917982035530687294259870257384016913352439004748528145119520733324440519434126504453659882476850063827512816096295107084628888037710612098994775025168659417136993718279743083964607287487229785483186488655206996274913114644856143361689185577232751213603392657442159223328479029003921680080207864652402925920817823432417066690177480790785269690050737547088663933334631813132588365519093221662448237821722860104497778046529637251690134145997450097447138013485199023441196442823787747825930201343162229487018673830635163520807489956296256660950536851100943758884165609070946329236575654537275266654125712856574833240258432022127638608439222158816552270067656150597105709186581230838953521217183218215162193207627641915529039439634983811098973684432589353889935252372078513599798509869170772626822351516957352803098399170744752196929023307370351541640111860303636289321767794213433834042367749436454049367171214419095117800569433240358032150036338740303122405161892529925328941999496247817574194990037605695871623404300200045665125282619218258924175541552696814138496261962068496280385983497778303722621239930745703547096498906295326987199804908890276915553834284643477200469339047528199891163147631403568153562758136107884835662441410400860729881370636082149270843320268849926347888860185627630757692784047825157417630484201630700580932712184519997729252343446453409385831968383612814729936889499594632651085006124248579700826607130244168635863390978609361990536838157646445450852659870981938723879433529139606030617895106504135735684486673911959193763471147077639060933217603617217191742177272212034905383894722692317896084018533720679873545161325906853829482656078215174451464302915789086685310994394223423231451996849000798412573760268618388309734289093785106191999431523712205714474050149790050198904170844481876441526959168227986538163834152303551108234165723736316168096097275968897344721790902080418706106509362356779992116837836933578890336107856941119167756532697302963670966060299656294715259707015148745683042422945789547990062989942106556614866560482274832792146772958111914450740100631655918046410201166727882664195208980977499902507677577669097945430792974698842173899813611294468656068580906009423764414013703199342621776521168131160213439334631315878023772578852193203944553439730564071612087176294413971461623717718334853050846929921347400924353042038587080649006924534038349966282908326297162222484008624539313343018908940560294981139932077614474882335959698096078188160967401083032527886529307492668446803323448350618431320836887185081654910498704789938372012784391688954929685264996826120707657312637192707212811959046708598437658613551516506475050215276365331355951849372135903628354399326976124029511576308062450217858044798795857296668747303059476027365430311719740605335337328712152440561909763868081120959159727042303268284747901996308482448316606040924991170049467177898440226529733940736772157503673732091903755355445193532596124775104092856613569600085290078461832174979306508088617460794772359589301085793704774147580350093418889077313020599248279571217739060724504237242876263333879025015991042018730493295689686774812776855305224757464717800539368077797476376850075651503701949518308998327417030280925373692002788167065247029597497895124939301168888698283757043808635751460759297075676691620569851893670247720671049503426413903673260305069130569038142411391581295511325531979314734703781769459401071267063196247125353274953674707806207268761699225118962094281122870498573240334470222503998029821712244536850232357735782533863937068430451512053613256313413473457169888485933333273403006945167025061146384854047271136570721290850836260964753000839601814088809891026880177857594346321763309797456472652671454553145503171245276265400522178600072335297212647072892523888230238957588168225057667139544222998142545403844745411503991049523298284196581049616818170405727287078934457755331897739143007121589784532212279845445090039887141372777364402813980897656632422316103810105581696681875697926750976078635995882803779254257619907526831857985080368225085857987091757025735236949181539870991123115101894560222571470991355254028918952145975468007686312566366881878193502585328457075758298398740682552543434129572198983970964062915487152888772862368089673320035064776973773349894555887654488211659040197639784646814521374705523497715232316542636327220740003518355309094593313073602469381402727953460675340785971519300208794511487030169509399606326415931067481338416925948307928980709056643353134051806945466801065308960225710457693972142866946060338289730517214332889087161438937974485887381373686318083674638172222352454278067448709308613089570437314497177415519220166562055001453383528768315372326798675421476818593601230738561594207052502585687739675241187048788719016207105103355134068365881499434595885490390083298589903127023885614984190391945706845959805143420125466270402591208783873908174011578848304105567593752725229770399119415095537485910097661828427199676166726169241856326959440085012790333160427506558721889012679964238902416960408584645917757664344679013125056918902623723251194293824924699639812887344481704202995016816968219711835606372926867205856430725546465433755450232428393529218091238858046483048231833731675998020842379672670801077724335658996747258326345806207506367312587475112314999362784439684779917418129251372561204598780680431727139590876441797228455854009014884340441620524810809644329304570245143812011137250945728530457569130371123592862132546279399523715315700604890553036942401164662233399289435592796956258085200321663564589496011029309730603390968898658471241408151517405706675839184919004057691331786263519618317343833078802627926217005978242017636639372244689131073040899402516012303962592399247999463170954873312873888840309126854641716215575515886859064188325083797405498821028360507556693906483085995456730909628897492902910414883895371513260246443286493000629354003438240214598730730276418736649216177155795967471513929397689356421549156838018954025174366130248079150270255529027901771607272907405791253855673772019071682651082169343291744405112606481974423805482605101412092400265984575398497767970424198357879657284838327997364264298421582728572435985764768724244827688489878135168388385363324456755486595307059127934414597972472364157785624085683939446436446748949802533233589926719108550489846558149068852810026557156053552677036234396731980153529369287884439320572264307690458300023868198854309093291530345405380408514379015138775347458733081436144612437174208704546850401143560058969453738877841835072688245857459050814110050202565494673508582424412187243979186995488098042079483915656869243382009924742386716735954039426958522021469495461196544715051541943132095925596989183175932850276543385780825730132563743693213083292505310032271160011002718499757273177236904336052823438116769007774820510852124431247672376494484434390351335340843012387931154775346173517016180339247600574942078249049541782900347878072814865530981640597889212590014626811628785340603498275539047434281402435935167302710545027898828499846370019410292605340057643431703979438147894872200521916766630173881184493812595104676441044798549876176705403551959981932648244200037859395063763991997450872767716645746024005622931954893261690312894470926118532237695708148732126844394732353079175540270025865576154877468604381853438740979672676160020497581833027014288656569210617516291364568582512812147371360481126646733733058001445411780936113273655725561518667653314923140424912333193933705306833980006181426311925490241475142898413412258835005922331879992372376778522945631133252198747415906583416719573568375092495849496276700285643901544710646833960870787063509468270992540982608494373027081445521947268937789770278256767449612842590022074228181216769499720021456938102605578517167504831095631353617701093820073577422272997729642716919937414702499822540784667561707530672828756684634611353959800176826064957338633531442747746998701493576797156160036146104416781996688240246279240573102081169699834338669679713316102594270290964496476540960104614150881596227891061737269085918313213498216919146531384536672834791060704694607595730452823438566957363051938593589564597018772102829885039613985437119214470809034588533261410688142459222056922782565424036585991055524790460520152008819215754146842705534112774289916982953234091395816330835513064896419978048880603750651010407832123878132937764390577306654165999945093847593605402360585812863386390139189458272830242156905295460438347000220544708807261302952943985549824689400267851428122172408249363436687261771298053258939577267916402650208251335340674384930618759616136498822220589710677813895097140929145152987109482700945341621649848503960097740856380119932116512412417347661891591053539570659474055277325002165346710862124847895598430836504149288385742863321293167411733071079019287911295819817224944892059022660163918601932631789868036429576282078063329018580783221551998562862467500326540797782446866477209227554719811930504332842547195014538991990051996787701776326852521274802694503687277125045226925145780642272250764991950624196673282444151126167321279621996746753915116169262705255401254478710798910292285554996525001461246785061335648600403400905853463832322355088746535624478591607010703625464023225480023185064732249651973623796070635406776046268581864920532737167237495500893525563721289505510361047223289043590496822276906926381844624786315230291266255297132223548655820172132804106309736654010428887978268137908394979532942497153272390891843771839724633815335306306648553599978565958340594246903803250265805701143084376278232557810110809646617063853370168660824239300863479044853840849990952981673271351276851013298209788618798804306306054605416378225264979370193538798845781278775279981164148793746704644729613509709289687472339576734046234394594082754972434490427744808301840391922412291492091339519802630101388066620306459029139486802061528501430913453871004990298447148004079139432733205589954523479236131838255527116655830460894614639594410977035000445846072041613598825363789640541228399828806627158414623225127402134717319565550523465836977368853773470222965094595036603132231395527529323813354229972748988925124735326621605147105026512605960863918181393315153429343499797848615729901074501151367763993790815834954914319916654792683926823022878800200556353841841003691333399875500527099148308071910897022137891852716112795129428769193634370249192298629850077530283141759273509841324148006593558856523634297236637058948552129476723366982637609670555536766311613820497182163374160651243599065826493627518036059893870402053050073672323617857861004116494327861498399813042894116172870594985630157301827341691611877552064783001015279202353488844513619153997600471224593227368655243910739544303003137553617180554471261597576120081338837964327049959308005364893411727186905921945781438533997635008348843972313497559557460106317398716587005269927485877060376879230263479813520206824531970765306210293462835835893990207248797286716530456703705245613862828335823978183067945196983194282612911841698421234232652410025246408593249075218885542759301239571585518286742157459914753746268137785466007356576605682482070857531523349068179942182022102088852841357525390431387698142737142144113502837276252478643983261602540429324867877694056042498768408473444354511633470476974589040728840575953581769655008381996587810085799791677855646889208737288698894878386793019798517283015518631610485133747357361009956285525628487281739766797112684365432141942368099464832835848457271877624628964742693313557688409599310111961072246422978972411761135603437002963315517599410870477025943159445957323711721385623586976187159826783418780913440269924958289616407999592979961962919753945348585483972537752149873634432906479786218888043548491394215013481962213296016700513147154286363111150529462071942251672443792592484755533878987283618113019036403562178492537285400740492202159787910539664106340735775411574744174931658525058438478781639710621313850006146349318772205193796656646603562284884642804229034928584362493381295814950886773314735391249646252072947756792426277304694506463002372712655735800011777205942153021450831033533743626085492782728207507333142186532307290733612069171822191684592353094719795211210845264198506814783077410446059649954269000883131351245748955158438748865431218913003892867767438584580968036266487634302940243566459296669971914720330521665447824874131326667652557549960370971661425298892619417859651208060697307164600643773418146738552580970534114035199860473986502104062579768500507385001808786360253447656291630264622001043313215503163105288793706742187243493280530545340193284986172095489958484740920635254550623518155740184991014633643412639917535797764227075075292365304343323256525535719184259039809897714613098452692470055347515257417783957961325249379879454336539699142109713535994143656281980920018360953521774677885099699519384062798521506334882403821155920151764362261968534689353712410064234946294066621010277215607331201782368184299237763203973586775260701787586210802041668461416613260856946496823344239417122903085837578009338364464730966700188907226893221455491852621740546116550916580092461879125479878513590122735615780190276320473820645874988233776118191822026335511135769959445563661276587799369418052903573331345866569915456897894407442622805308053827272421291825889474785819413533903017465751857068859645563465614655758587470907159864654243007070572862903465602813397515367572714347433421805688042487113504404029645019726856978951797359526990782726038198983254568275204795838784187811900347813781310934415214647631056236199545639061441869333175441431165954385160855022386133572073253811675640911081784481805171046900608940402665378102921362684757132984616183705445507453220456464899883175456408756585553621759299291663471398348427571894111636836456150483019607933996253353744513383011779796565838042148317517347324230692629086855727070876429191395194395128648488771347818315127146963386625041250782831621004822015105822154154228655132052679198625738972076838752502229004361157253965505837852273966554090595091258752986770152556169395096435683554770671132056543504037457193980644198467290185827110447495931573810896962983492240201271160016122667341986419339417627622324221686621753429346117481602854375031649850275459832693607740899440841194084018606053173621470231838844838480658096840659978445913331955489703162696033266570952598395841082137948830869409044419511058359008733128628805477477221010152583963388670774767142566546633154277423425907083502370168665538062302608147676781828466832626820372780277749354117423353220293774410413099312275439261026671554877734870485962126630254741612886866656062849341446240561151267245968699911471632319222140369617894817264238658191308896841590990783918545831620072808265354021746576701714972292516918459108423003666612769282704886682310625520199332461806376999066391538950001463013016792879158997267748966587271294565756114321286897005494337128256415763749640808511106130848215449512986093076488507854892641328478391192044490519855343820222862983347933337025570548764550713857890121207423670101594831889132445066149718760912893884199581880642339627639694397579287123603962763105369528212108790001504998140507711012870394376137867298180725818169197667369514892301361658467386293165898061773423234742484146833565304533637307072359483236748122134785132734688294343880947151679494352437571800586067854151322858600939064691287293127740295290621629873422714149399141725392409849700251037998004295967683132247626418591824016472905404612326597323365892006191931551791509808159762443699423415904014938918782739926690638670562021935584209984053729200821914909083039975973700361028588542411765972145223235373898753196148434921259223780702263502816702883125460720023464117315249113922911764759256929860692327502781805044491967544303048071602551919198766576205924478385446210031124678202799481678805588855070988820346874235403542910175171146365053980359771301132700412973061922198393190676697993080104549552941251745545777839703085983855057067833600923506869223273404624585723200953185173095446102979930172964979750251753193420332596782666062204982795115923697545470577499880415813984505849464489944971249191702459075454695976634598971695181549341978901391109012930818973201377077456260860256298185613370169848554504655054815508679344411631506312871690880158773952870110384141904263526811799134216874689302236786161413882977830070165610684036622768290274501254116111035767954628878216566621494125621051491617166584412676706295480546744297870892181446760499543849918922154541274736782793320236499261167121622567602214582722069054071553619490672193226392551581818544304703250059981493908735834135912809163199875759892095256490580901815267966962912217800024566096647941283054805007090301459859463951144613277330949977423066051031063249843580165122898025281000579353158959856913007843401145364648961205030389795225620437905748617910019574565454867101111708062633435072566521317971219955289980288518496566148504813057072688211423166461100328865926340373106993029836612597762601089683472252378190898398941986781174744916335599711309099107832350137436418332929730442618648514318974814133338485420474177361186575522370425789957031940094073479676007754592222982578976340741535184255653684375033118626462477730324312748063236951948735674205005596497500486130533545877837485114008627869155864441275182018581956714712384665865682826801482429513944319384324385479301176034805535538165070182021927461956382965038609850977583849408228952700169922659201092237249842061496251215344226075795036213274852094178692752280287750190069667162333865117250078958268156322188034823895211411940135725856101209752410610413924620983960405937644300321025290909919640127689565303586069744273888227881770422345817658547355801078298275523998651306973473928335784636479774761157657347204639383625459543893795285282040067162131527801873846583906163975785172811084214287135825792347547687609395581986090492459447931497218772619575053757373298837550593741107144104868925537958581932589393114333028608008618046418511003755538786063252173121834386104493339230486016988544964437273565193882686393371130257439471144761773957405087697978883681104456870122855989941580555846000593350989034790725876574119250007137883664446624497582282566973110402749836432737309781350900050617593586452649684793936643156435571000409581190268930670170230703387638404249956875443643321577680503439554484300153842391560494710177135380177313575801663286316735877108914619456679515721527258606842782888663896473160598550893229163715034655739277639250920284344345350960106331263973284827110741250911288877987081412628902139177018470174915245151989977126159151463415343039092823502171206089638113561262048601619764068206141863546087653448053639427222907464567507855552867596932813984298301346030454324849901398413128141794013065292728517702563369409145514491406251551160913094701814143490670244393238480953739516751094148291524046400379379633269106668235764353305650584330602194666187249123067117161338568875979563195927652839057710373579593384197571317786968271545000270491868884042803830613613413276254335131583863670204583726682587131673281336927795728694707605618436358578424642680339484873593095199398676870651997556993610895418508940806027854657357750646092337415823401773453139075930034365929977953350635952908246613898536319054751643473935199838913978156113766873399633849237329447785034366626518528109317934940141737355714961456737999088282971054346303182767099843103434620822181020621688722222847882715355342288506376172559259028054579059528469969946478050979803590361504837347599626883600129056237920168420315883312717278269881666117894880671368310901668331485235517014935102604876443335230251263149309621489827896825799835317920687259184300702762456159438728985691238677078898924995588891335333844577342380147470136572760385475693519167803869620828461152488682671179244764959961901964656774915703203544969149615676829209320570920747707020247247419266467319284197134227347660862294160056229347337071655293979767963775755256838174220269615386380981869944908512460357287143229529887023194158075092408115171588621577553061455059318581471824425222005383576683560816026970342255986537597601011414017863507203374363337553025600414502872869170408459734861711801484386698051712978964832010730062076397530519335429409586131115978305781378135566159505426173238674783681226064646567216126736835370394921836119070938205582343412419042122650188131188227935899339149846400064916792510443010732149768650932282068250287084465202337195098006982335828633506413617856569520148492129517008972923175961307414884783126294837210592956916725472707628713960667284563126267073123899831769951076554369433859234684339432947494455470735790117514900867858441361919216016858907016041119537416884132857955645809905744910827774670169691371609308210711692377412895153717289152558272917081165265095177517562256904150306169768138357003625649899910224154208884868509299865709734933285695478808487449213976301977152175550611840116753791922992017007404687548154767790767533530979009647876640310441456961087461646683724846845546169541160274843021710926020773682384020184848443746158577433003898120914833788870619740494220688868434312834031597141722833693510635307758664083643367189381863962134257985497312456873884766107687889517659090967815195796404547103218938938007257002239978000870261346635542760484805663976931005002148509999274461650067454873015330115293519803009735120667052406891511662983901310382106511417819556106969289794560358454923874820263579144774778146630810329422375858300560412640905997429288937394605703908640543234462260427025682588174347848298155541729533082499662320805800518062875676063615081145718029778587875821418837635496638133836954447753851559854073284819581032845644971620569285994703979736786746797247117985941316903869094816308173935594239350065386558544319588325928332690494451674665316969544583814077883111151612379534819083660272543341271676813112034358407078355184935413328007499387133115223295517793817146211403445236122113217486775478648732097650301726368062780066974767169424448307725977654326088402071123572184080246798354303771748072770201281455203963445884620302168161800904876648954103003584054511717567925204804377556200275992314732222244916717747466015854085883526346718706191845506186008959865130204213111495685181700830048562308507077324533049600174397501486603598976011408256641636880754411249259574569441920037716529785494786207804273742293304555540436532666112745695615832484502787534429208492561163943217190828246360744739712866119582011490241483098335307988176774853325220473191215958147005842998201398361406903127027958760579211907176095535970774665201471763191800304962976156195958382291635293337842774045196858451386645718476818425545967057670133578450447704557687121451580687865281971285732253802872294844987776165695779796324050143822263119237830744673692923768829370693247060553468962385009731130185436277204734511584656247054025708247608174457563392233221876475786494174082592397896246327382755495913686481329597830421627835900406085695980239773378406729190380510021696529613778803476894087318661311546313987534858497263145069846064422561013301538012276721349480685326814854070912961031877644409272857905919652468198574283709272074219804453003465582236225643319342917072771153365783455026532544965825326466379542407840798425104888869518940411019088208161613464584210644711654446377631166820702695262924237190074219282186163198239085741070216559348251593589641892679030540195768472959258774418187226227655187992434557458153669583594421933514772256349877445719355515224082296402723446434797398649777924380186271636377528421828114400751153476475978183130648034196234888863830271017177100635990685367798182208354201411568564548292521341640636534621295409324095763102868252581894396505406416365504485055035713928404954720113568856147348982302264740449297832737459128522940574994448229524756724339956692828562350220265592349664557930288114122052974538356895543048304958444707970279764336880733177469594602087399569619458975231931676563804005259940496211044990629028606253428430985995739809003428288126839095895827769490965908463680001583896129716936992383127283974587587893894552799014477315509520591657299144223132146783873280859509577464226772730820054874627979036845506493945096333328387311692029766592070934840704382374922458251017761843252834988568806456984612992067389818679449439222001198890146108654964414340431044898220037433023399484631309797223271140275852255200430038705852636052092342991504273891167443108237988442590189796315805263809679170920149251534984375262050967755949245752698575284582157744740225937309695994909435967958599705725017288165543882653923225799764035855496928532744161133010865236953403691244990690292434685275425788798610199012120209981387645537233783134461474652749037652805770251470349311868771241875904412005784736526505077300888990866784656688376123924770137065413691605665434954707210837411622117436687978301677635262466233196194170157635113667722141906047086895456686428746924227457366611987154173066626832093288818385465199793695547172790446353204365857600565717542306742728204629375775378997183575685731803385909968348060131020504598553390890483817193570265513644109916694817471356692058035341487020244370901668395165811281382505395357884246739415773614538580785735076708420688845188235584533442438018393278115592678148900069170919423265453153021914906931794641164807580039445589507895462077989520650268938413272650693458216642564225136757432677605654284969385589932447175074039964975444031346709379367300383366019423729100686775612310450498963462393556159457083362178664706674896443707691539653739803065277967624251766720174199230060096154686591947459004332390917768808764351173226192785837873676823891407023546198239167911577237773494756182482395543416113826413375934711496470334034596696671928424615980340477422898923074505691889808189019719081376672381821547125266925573262538475223367306637904499607018385682329075051296915601471657166859694868199045037063963947707976542797609456569810261055003218622812422537169551173849384416405145430813362888848419842708778104512578967678437500724283763598510589285225028014472110634163601380689583210646002686356261803469058162156360921421473199265534099652263426552453035383208720511485608717017839231055441449804880730702612426528099595627552026324665980771473104065906394386740836664609768509006562898454789981185093120974428512653912795702044040928421754490999755441398569463993704292253149883857378272096227312690201286397553596078483971255632362872622690103794953514478621784967143679769776673854544119809071563608337752487907346270017633633411467226932318868394018752831469794824905051526907152973985999972768278136783746265064873665879833365248273295548208103813705331772860428009878816094633819207676977418439415250910144329801959568637108309314788067037147782738139285834437322616000218711820141064546968878920625590011933191256594984565342562625150161519234235555362935886881363982651959106462077892518916754184112295547451282728521402611781736847753612222020897624570890369840559485041797685676666587589704973194707485851704030612132128646873028932227017094553591007857894098298864996850273865914611592531836349589903995874710258033888007425700835761174657808925132341801853874773071645255038872407674673099629416215041793310636032033055125434598665989084939591861747246574281645697551793979990004375622095361940907893593205779243193184806006986663099394103744207271315710544158387089772741078178576837569407180926395990553124205619783887055106811052807234696397488923874962067174611429725846789057500247686421488982702497006769556595542706174646325283142855987897862967682451648184912451721330004284701237738817088028262337357422753807489311281838257834779755410708779886004963406177627295367838741918405583719266187055020803794768477125644503006560846871769553737970399306005785241643378071913899712351815968023953334427137296514252924308936877662319478202558346470478721794917068026273345826198891081830375914317457993363005219052020014757460865005392050481957460912536014902061689712735901366108012551618219082363439149607761362892252134277299710806963268636262319627915597288068889001278886918302175321624803035961271858074476998077029393814343802804544608665346135005363501634829014011233746569019634371646619761638146197007488602504352937347219813820455465539878458662320142630450371147343866482018567936587724348234204902235083100021079924878251409014874093315045414985397240218297575463742110676219528628181788023770265294948710774199645395371627563734466983212268042739252701403092774545486246761528155592508631738113723914792776203246771107743976728573551426907724195312818289483407499242605173997613317801702868950044696729849570547831032179916214614288757838872645841094795103085886905244469654863830609339100270000959909998990023612528406489236555589857216743968053440440877654441098877967607518803684543852816989874138792653246771447761334718201565059650257556602532777960238744926164301635198376701690722385069540899595831491478034584125990835884385195762773056293807041745097724176198166476336287517351668237769796018063391605931918422358734790544798127142383301187231899504342964892776753002804847454182162904842300932681196694874895873999488547161565373355514519264289300327033421231349708182819047646353774100353463512342763366738290470697044951088051745160506188670305215563609813379461985864839263731346409547628988341547594461816776819853034129843910867496755947251080781171494293005326151752736164792094237879288860465985346035721401967992153550981315378322897101519331251959908126216278600144769091712730490100527077448401562353613100674922576263025182729081444166084205728064647374590815963067014621513255833674924061582605180140536621390720861967721437156641056613803100317123907687031561164049975024851519654396607407666859161998164289738615045603202248695624303819398458789550630824440060868909090506047305124586125514416831639848590122280946558668097968944277931156442507813036284365879240965715540095706970603895763672794475094112435822221525141442786758759052097804718497573975176872063795706243651359820426716752621468626916112882175741802669202698894538240149563539029917914533403720366345323879874991722632663643010861179169706743832435980959101669780888302549911948388257299519531995954626011435416424779519437688667360145772801701633572590759624109848523608462291368418953500590238571639625171801167609773350128075964249093305542260549487683511473323977817825693411076773542995311946328513980224803626123834393590083164428083350143988154700363461321073857368888148900640416183826528056950571438827289655578394097768774858375128727363383615088897347908020114439201399814534555109704646796134002924494688742495681910919834119996651921088275374605281306412869708225959347349862871795652900151364372981580464191974381051924853333272254826115980454209836170547994353698053736122911463088975616729310761351532005682445531364937448708470707536594468313635676497749914086868736926610458158803743806592407795561929147928086168668836342723104777276715905796480951254407761993304058801115567259795294073607806712145005485355050049262235635167319719643094575358594396897885909212183601767579335898464503749271855382976207700310930005646611986167969806883178896914032913881441653450254991769388627533249202185610442392292709973627864155082530826413013327496747441645318965441439824231750887202985252771647210794110373832854669731136374765099748031190889533754988431444774461142465798282866374919329791290427508603975883278227728189136818767988581213352601187730066168732865771523221761162054378251176558869216498017848052843279455855552773845122127932266282101212295825196370064683500049826474347543769021179912235960919247192483507869636039943496313902646429960687110876454619983873412384063639595631312208772149342935156257023930855081164573899389955549538394043693046130725589456902372638967538807576175909500187026762356160189479549674729810825338513236825512642306543789278360708820265528886231055103123973777417624579512969313701639957530774186436601612132870004251963531500271949785697409135481251228781523000735236603870400253704084520307708852966332762258453979615452424229732309174595464881447701256732188719403636240470086782540978171530184866242183459819674544547144728115919098577053289536220755736451934538809282935097805641087203015736450490335230962837734728931394840535055726475874062153816023966706590473841787753673180641245484945660131357266445721227962117798497143272365290740383268123417208489539181263408976401036194460555121625379421105851665687968484019133170804905304942230715682688637082561628942098911384671685410867032014190750268472772083556154971723289146830537291597122822490789703919765975991568151846712266384238731022397983279491979500050334843362153482019684326854222963180358788298748624264422096969160709195861627598492673328918386028455769066448794984523498971296669558487991876091614695877217334136676858443470006060431590378369316718207944009723343202840068516665069346036536623959497042352407157080340985240970164329900487585183187094080038426101373083834390061928358556318010287064682048399923137424811477514020466480918549492843038792470453918870983878165927590314634844899625198079177524665168612594561163744633336205193046978476883923611917026294095111053327910106078942735321671814804892766210973320863709955839741820171967979798155387888169756835402411535633662717556707433346403661177359779313959476643145396062350458546461927319295590809533011712746674951030100250286992322725096366587476300601300133462453205369763294499742671338710970449803359903660388134287897505113281686778470221210605561240687703548102255666238823047423663674864809510846007585344217980566394503900154152981068636930077128269968268303600851134670437992277640554522280497786490706803017783817896659002846927745641590374289204943754091099711017380802145569959651380215370055367620914840393333637529147356834459814982086547352981242970327969402441877152032251992634926589313459027061296951169634736168322493643149080125531873812084131584148882447542394352759894396782099849416225558706253992158410703808874895579491066669147603826777493061574522412029097653717993340992232130733401495649760316990405908465444557050365055252712818522106980390987341631239689021970349564149187375648263720291582320455897648039675866201342337067834134991287070612743595432023945076528667162940774124517611398402082683196584507569982025451126303507545310991688278996396401442506357185477369174445829691357307239883323328232450202278878420478168206517115617097889291868707931085011206885562692951801482258425240153284603033441561235497545309684757876488501759037973748948456629774052715109701883005948019260405346084906421603866666687051636250801908309527996736207785572171589292008382014819603311200150627682692941729907419323781853326970780880655548638786016343362315959274128713900946879921976712409215921796802085137139712149744397416732135712030407427233913435527139991360407833259936114059251668767650184584135801491937917088016973263611648416852444461943219775586779814914653183967437106065487832270741656809548617081069598530790764872688432759249038683928156495071474359284601958095200312682849163540356416472572636269999106954660628898042044219450253258525126174768448362617952243787854504183299678492726264220237464902739831411147911697275311716479439343391763915800122826338318499764140011445333312492485152484169256594006504583528571814556696186017654420985773193347046028741133910637087464285126921146712157239010613827146144327445231093181479014422195257901270842110711807928544032143502954658563413162825361652807746917740724455884811481858958827916433431470579318159043076916112668329029069613352226163028190851748934783541679205989043834185893098432783655151018802644150539331408018290250598563386396152353357910362243428447430480799890092917081822763221493142180463253990397985287065526305852854225147547093307486275368083774996212069181066129575858109285764002996670215963433874653804903396421400948728217949160165796817768542686609567076983616048428322998891188185304819856791198021159748530391988956123412794337082331823277900250120158288929469098287043655339026160635300700797173132994816056158552300994377577253914071311150535632713628643699273451231780417727305256355485827170184649722784073059431453399316584421898313639478526175652495426891411944964348996102011098838863829323415256678499442071641490384887174650539473081930399864931408332003554132952662735300666213521225742437209912117267259869057179302177920937784117895609594212340967796840037213934360005737218736518788503659950527340685786619213832122985086638518223442525337433667925641367861362216668193541988547222465941011385492357013098358342895993524714864985159576896393520988220868999582164575588428387421846925239366255397820927862569744506878391150496746053516286408369223829972439959665720415657830290818920018260849305021952116156204995938191302525426947683921663177896273662900352317264506429006636586120635691024376085174752216646291118771401344667579645093952144983202015115935741534811859566118101176449624036066781937180773679809236718442511159592416418815098921234667022613513137340586519382328789435658478164626320429804761802463209712114849059666998032795238631627811872770999244075787356042587811166025980667273610745661109851001692441889900078042836737296786175307417293957236328891112002583098637004418578502967211546636957901565758116817818754316956391824672242638806140932302824032356991285716813358943928951430154989800801605853315768144234012009095736425035149659790285871085441884939490616842575287435586899962198140045434068614257379090973690532241474694016584896303765865779951265573537351479018424079764481963430365086070302534040426192745984484139761329939097906561820139070387525689442613482390069824525891962917311472869462994855567477500320712153363532569131597745824888559254243008513065051357071540870421775239860344653462952132597910185980475686910073419588191716458782813767882236782486048455935984717162522752196883407396143774506026394525341868548092968013013166587135102676571673157590693339341869737390533347919239817764492111050322829704388641588183570099642480861434974891880444349374041938423394289627774064206337684355369607496963895379347049270129144543240576613350855039140918233484394342823298310783018866597174174951301532958920511561729639881326382323620388408222284774175984930731782254286474665823347795949929715634565149084746471598669225974844193633638488016274026428613554139701161052221550419578944241820609216307242430149078451371796209867745640237278220709954866431466687224177093343813783071312700732528627706264698708619688323043341049601112916481016451173706958608456080053602089151615434502495351663943930195205529208001485006639867504387632342518428279069439951590261783728549418257020578019295296464284930507253973388119097647844470875375455556994872809201918949470972667266297322152455731106290394669540498396949590307201032276893712662693280755245276734983987054140188244628707951420632109854901200154905633008138285225080894191393027450493515373011898326179260415642184341224641031610415598693993099812970609965878072026704039470742365069566033564651040491321624115340342092956308205569151697318883253585603043861169890513160709958754918174306742977713999338504614088801336617980884791424811405434150194940348186532634436723259843193932085816353870270304987828057180279168542465829480712454376682987718156136963885959117067461188923049770039674128648974713362555707899177899653313429680843183928369604337859171558556812741771474095661388825715503350556705907264462839489830344287667193251609773348066499873130797570598391932843867978168118037408662873874275650317538296442074546017750928179278377060914068518265726867974935290448957405591524444668048229846471727012164539814888909112290169640633109108287662538979312370677582133651040697776954667567097382320590959915841057670285022876852432284976686620423916115451748636346043962805842999916978917785736609424062741634231157466981547317155239576461802314689502492698723074532529382804704234731406528153089025252650556494774824259111687520411440094109445380358931805700497302390612345447574424205180645785801165731964994630646156282859835447221070698900382858088297783396865746551433211177380811326505674155072848407409449764097973219356468459609170878138958197193906870434564311383401667155338637858478250527397279151852288555137922198983597956918720290693051912356565088833410218131076094603636416191644541760203299898486683897902323625598954900389354440311533377518317745930452982611681827092853505082627503993931012018326383576155380241588621708302254922065225481085565632742242893128152686781349295561178875596642461640727009835219892798804997266326895300383576797452655555253956827064117662782882808723436018609070556745866036479117402276797082598407246995663819862286294717520976595923493669495054280471582340096427249250327086709218388847327734055985892763851861585330336201328366396129768470177529525344279501126614465060580158520411497018717985669302479384432048860087488146141845522990196166848140516795687486561265564210759346566378988739405565778093412022334613924764027456634688837320223824071245493771374444225702478953763039638409884677782584258213955686493363654717461929133669640787258499659530744795547452449182752789880102165416397224179057727104877391087889352196667889329929736651497372305690031981640452417077809398066124394099843295628184526509541780335527904861520067369574095720193521880747472087654542260746862739227455780782100957818622653251583008002232380423357526450503441940932215011555007565060215517446499260974361770966086261308293704445537312807682591014889520268514344251716201663936624801491866675831654092682762592437190667888685951172417557604034019746261602403759069681278206247595607428461926828530530214990460411699448046295422461606666450577660585083250146524241927924526111014383783738180206587377237726059236286391419677652492372630956868853948333318236398670326733966510428560995875652659172583943646526329001433271498309500460021901841551461157225196515997235342599078120595151512258367665979438384564431779716649873683726822198292838401472213667777913921121370108493702083576386362584786409410787187881017791242012245057091558045748760529066429629055075428293358715054590805131815658250520869312494570437154969934943100187464594478866160889676063974732568850444824458793548718903704238545845521016704160063221360358979701612839390500923087835821314174322932261091468002621296065453203046128935751056332313895905842065698133515011844143968589513850845895222558496125265710448231598109891994429388288825642656429475910267476372004423091463113481054036032517122088699707304347806869680942412136815119070819044946350437783752655609205869834904304720371605702430157073791560951448045133609271348386865738545924427448382333146154061673302949807255648719275102105137196286206544402546487425233566467957399037646567992583481551770911514468544974259044765578969503990748646682387886127078239337765339994118809558960802194861213096081701376987875188721993799452476058220425034482269109550866069237811513102093958764806510798160529664572483202053266404706408493940995785249148435430021870462923146330856463634668237223694667997436102852158075151087758427684273898891994217393379730472532775563504033176826158795519526366182564659425377779196523495056614836274963933671364731949640937946998426303363927674120034080881341657500210082895921217200494527444864757739153308699594819023779232877049109665325143342727929715570495627927784097031037270686658638583643911457694268255843876641839338745409342360417460576983343259175710955093488031425000342225601495434074157612171911682717199529250056785907002685318013579836583301388100691190390228727858906507403298848898491689799295895372910695563559311535192997453951783226852482524741007595822248076581624443154070166351326295196464522379227074505906583990719595997366866308674204009411837737359686607434318509525052201282135693559247680750352086118053415782457342039225037146066856866010620134771910907193125287112915696551422438942505455516226023363516598954084564313369283938726135723247729201812064650022617660307427847099792077686375749061412011548379499448761326889092607985406645610383534655335270900332736515090077693960579155860594705258641040726846083203793527432136871277287591752642668426181012152430092159971218164937889170950960396778487931856056533134257414390200614044299294234368175080987059006255854340844509137866149255278437809936893464808199674647455787153316346062336239312332365393502532750731230187472869217970728262533224961532460166727979660773269468161830081729952351741887710621121335992484461184958018742603668915815641942816521708111125715987479411651414649856051496128145237263854214293388954003927523517092501202993982035798400926341507551571971423143283105548919120460236223033221307606552471021447648501447001194010350299672827703007128621692021569326012001304884016823289590735350353830689526533307404033295758103935813475189696148702975493635119681046224539114602188869854146375929997931476749891935240522657652188117302047919547894499899661976724287795790901446946173694591391336737011291337092065234080743949592197652636544546378816512814872467589769634966138768201551785704839632226801351368739469734000307468072335191919092574922737037503514186252969923765727105927342355850764610235548033453243970557105678880028793983693098887561172230979276240267009323395679738336217745467244796586116180952041813250401502583738311328006428440330022003807647155159817142341743923941091385964102598434738168269988108538616695887196123497914910228414915222204631230732237434532415299445761788304411791910671032466101797692107810339226272116486898120758972451618863105139327156274075372854360654273833093545475908572168329915802200498161866717987626324294306900140490283340066807332029222173277428384530067449005361525995194269227033616539005182142012044327838138244654512564292488804131396883843542594391949082159613112068772542787020634824714875911448843194857839564533121227769702337440023184359986552335252246775927372549381722809769318189736827663512276105312755912212730420782625971766821947316729888352740759885794663303345792241110194314716789107314050076502301956436999966247842168166727892613665020880781429020685474883138738828368075373407760340185189446555510037087076689145916696441268341768207311798763943861315863639684962886267879149285819657807801824573737996774430680520532884280491380423749145194102928645936662593606891500251968510153431795794133826388391016854181514481810841248314933132474262902212335249118952944603117186925191092130173427614287100755581935610353529673933188785022529648153991843966286945289608859557615515871445526048448196236002010425114870310782371994509222230911269635752121004825178537521729723002367022384181379214331819158472774669396223147157227981488494348034150103638186459124437550004301772057807606500428005520676863849328887372663671811098454740792196635878940837257503492198313903903714767136726965206963099712036054690124160421462074898123285730619781273236962269487665586482679998769603809999817217934974273984690770415789058378868429912801268273829323198490423125151863469749980585360686873476879234152707167432574019488214981948073760213593560076244578942134382929898157875030618722559042831613198672496675286762072296139034535651325031403166466785762703945927165033943216324320527430814927154430237626149270014682686286667477650573179454237027896718205306188892541923863251457508562316247527634147646191741172717876310584649066804652658328565468557272333021933252437298705974441692035216506844277833189708050783778198631686957254180071662090859896531350353672378891939054181566948345542345020765581769738352751243376836403965629256836159557006684410136594443173219096131508866871074778100993986131299268982724650336271773942663400462401995569839858633924622267534907305010503897915439134789707275788388454467777815278456445784403216284689288203746556573297888334942862159060929609021375341904967567036252764128990893567210066914628249134676172540446519902097720172588649964570836623672617593791611788802143036177786879662136239455916079351504078399733634748544551689167139666476233479159815305639204480311842276670248805964671079975506904683205019890740549629133144327047489940300990239719673560137654374187933478739642949065441009365366598356358503304053919248898944278215403989096025411875156397220986737014748138114141561807533939079458853200028128115912755659800599401937327357551430983699795821056158791123776857449422748606579794870471190588097228005750317465604482947850007950737125236440927688329108210967933497876265374664991487519902003486282023255158386641163886670716684879475484446185848899430902822337262348235794991081492244553696130931029486879289673418171017465646016692046497358477016704386659176190760460341901838095250627326308257298225626637915075538104116904614651225919308367899537179214312885773721166295974858637165673019373136151954915410499279292208580945206533934393518273403386806611360849135507868246221925093298738434012441662662672323907825404479804611976694675516005488225738987618273114648959623420510041116531526632211222783406523212206512872797437439054617373143292277784667534969198526976800832491443185241357240315110047685237350460860824276532891551441220271060575515515755565662027699980572936669366222189520446196829695361204207213964393136932214375633240724527156851993888582419602348580184414258543745963372983987528864010209451344305495465312033400877419974411804183375329905523631312452462042650619228136197890104988648522228090717885722967099254637403829942843677002538937663517602607064318664338391445996881100697656338841409195970279338827830461495116493081017621746973798089073742419938588859392839862952832418315391482804677956394504535289166622409459148726381769155400555184972562350029659730847931288214074403405590486582122720934218313462085232500071732113582505081033743374352298409937373420738747854907739680287013780577660036366222069792342649306182067466980678974696832729754829395640748163766629941824241219172155546770998958081131892875118239429490178565914046612441211066576898042361944444894329126591130429198996688123803408850496210030872155596523912459157838935275134463147043686493148493232075122023816705585813216300923323665499940720361539184742882560998134616820548524323637692306225037819740100374592738419934422427936144587835098164827517761373098705457435926238853506444062879823847150528273917308251090276558108522005116220328573518568641529562693877559999150550533176697193400053474152633141364925254686773190665480341513980044536009859757244452749978743865197652202612359890731380006787561810747439212733850765977307910471729910716186629084590865347220771307011069138735109127690242240569823775878744061012956676380330215313949894671426920310099687607975750109661308443257824171599616525356270562384877665898911092965469753606876272721240748810546110344986435810119996288494239214112389359566388537831673179808241998580538879642919813484017494281819968677312447264970540756261272604986739021582243253792647025563765358987056551196669612200084035300426147509302061635856449911000689777486769148396416772391435813157806064950258948471977679279649804874668146772131416921558328249775962923278453671276066063165249858084066991751982879932863122988757607784953608252967069502230337983236180623946977514600841661130594985811626163744775785886295691288036695989119314884990310901253946793073917081239341185913743894518864693233544034209142054173448579285541543226530578409736146856472606739854527331686974610411278026089965043819432765496108372363542486427762578022040824119544906060528815399344452913104597228456204190298407916366423705859593642814567164184826479880635762141088826943732700954007935287312336431938800249806532332962707565986863627899280690983118616978514778871312522322752566185047786627809441179769237849073388843537128680532446577465261530397435422241417630528111452732529819295668478544513829668676937713497056955350562826986115317183187178123793851879678440149432067391292097509441396685728820619860219785091444434480419070225711193165722295449148062426911353973661671927218446457262323410772408279930771250214192099444978264381187523872885071789161036687631157780986491608595723810307628539120656495177719194412841757019186123013296521792400317415465674350106602521303093710324931997815111297840972683824207048525990017907073763467320657186731438835195466271058782179677008741225637938840489118090154531936766840787998351864773485288564689021867054587011316420590677833235735830939710210041591199828500104711322127681684547788869334426381836675747786812516029324280870691916948011075631640042803995530664505842630974377795054582279055604249737606536745138309203958557265026501970876025339527153185495631868104198025561423537652527341925371901541573110905284752900390713240029501480940598954697486238500498491033620398821597500039252403459075591632385928683732737908953379161730201953170888930971381269508361750799954391058400566793358128383591867117001996118801553828273544267494500029145369446693443864825303202545606157426684480247403471560332589869561357262390603548053681172245200264960466800185892272712372315129923640624120174188774112603856770653695210311691761230126736089129398017541318720121493923039927309963572432754933531391390636482963112642258507497384891071371388925406345107694076619635740606348285176553042583194660832195812271947912758754870652624512894518951713352322273605211577075150648886172571485052431883584730162932034009448187488685364124772171745767880900771067299678331925248961904461875804722964210795684047600384031707815997925040536042779837580789278631237023618634040075522189016459042404087495310484244474160261316088319424147547231847047129163047023074845025207666099029859366216359395953264674257268590562867584796015439672440425906222131051944802398167030535827729785862718934645849512802213315526040257926233649225754679126123232509273792000343805027496645058775572734955795199057853404201529285277688830524186812993363744509998226296137867197826757993841327474252780329931371234844635140795461108959346325575352498286366132291253864321412454235660651454982088277694269591476926707673617154635612801254734129302099985518197220244368901338224692453572050581632631051154790706650184702009552587054259724818532616403908383578453370130817908649268537276202816897501467843855991625523016406875889578455896753426282502368512751647955956818025710993879519961541663546027168959110836934865348498922578257878541791105326805527113075728924971138939949785426818788691883419674390974909021910596377126220543386257831754494678842134817091803510823472065209692083405837823104791343651143865359398163378667298263389913226171725841144171620609155655433898517514132044617051644443016593717098742127058040352523060994663441438858869876520115278013879767727030703639738290831901192164490302295459960369527007361653224855551752835277549083570761248589835242698249848438138133950451034186034172367481488071234974145700580920180485314277932759195232584257289291843907184550810523656597765187087302880861233772877916545199089866523555458573154286786645369234066592108085466946303060024587890135228877884613514418578319092219717668513273270538675226141381881487167258300963757518469109888222192099657426579756585586593159624547567681736533720272327952474677944892696302773662480711148864942800190111178874640972258937528670783225333268395334070037585260045769902324270633665199014256378411865986608186899556935095114193443071243459748736700929737108714212348480399572519566853150834898624074146112940148971516795182362891148105476346103416858232187088301506430329607473444258862909596024026518007123093391925309180459410648379454365142554657545600268787426096623698806376389285756473364688042365057454516392372068528406966634330524523127528883791884080447933389506961223877535048900492844266805652095466367517063982937800382343263716519307710586584181342928318971471197548195619547183107451564884990732292860513519491549689339018059118752888213883076961533307775334670465782373718836107177343464220798852653996184144647208697165468557422533662640101972965401432971067818527204820776317153818661033991305964122537274426923623724297681062626261931791939916242379580702097657543162955548378344947770208738743159748584406684700879046068120170407892623076227923741141081978310524497619786545539028163523492856528371623206404152318942797213085552218238844110463440128062100154344994901683409362846182155697883535715852724342237880109230882263436916242243225556823925426538309058835336226084160713504052350864781150644497338646138825383219905451294736486861675674903671886671855295763817948396535362086777971709973798617435566725523619429094175924814937499637301948156371400199618087486068906250116775239727133585034815461072359940135758005902168089623418396233171367490638677309228308395879844894889793748969705475660001750354496490765378973240779345377008116614150763099873124001507496877095394638197774872720134160571682364090155394676503917410455597207724254722457281330236153902395513917908761308125906015704697685803144028567220566700581974107329057800808777168525743648830885500130968917728776855442078098916416621335752191990222500694926475484945852019490623154460707671293071787784748190990684452406459609534664255804468052796733758882070618398709926189008071797560098248381649834296544971004442745242737568168147865689797557445420954588401212874357827414691415016487177718255066687738834840612220419597596099594314151635425460820162400749532300749846752969371207758823217920359357317765756247426917660242150267856662208530083288028257600366725267540670856163951182657720924010283792905887355368233151819278026506962101695771706145008468948649860811669612686028458958651798052390687072556981995759976750811920850046520678304214885363037002435237180528455368553970478203280031969826964167778426255872129480853483971151249539038099669983485617075662846038866023842473090453555681549691854589547238571154008797218825385775049541283929986179640114430433818539467117406916764845919601691881531803086037891743459515426942205523973722971363258774596366300986954489429400193651546549049561643677944974623508867765936784101707931318387140036764402041503301537354533192233256922222396774399269934052239432679710491794943154643925020286136030933398534699322070499617200350625926251193982125834126251820775851076481115798133892428633700773351965588548185065109981001815799370386307446978209549269716640693982502094772143125072818445556920999040764097598048063687731889739502883498809966428057952035088386222025292896212788544564994975129030878447588268726431134052239203524545630278948685279192271086054738784687687782992459274380894822541927725074441655902043984364959598323349936969101400266349065662834218954727754011699952512125800238784959410551182796453034252424561532197107417777903932321256718105891374466318611729788689561802803149486958936533742129108362338410867507761974906331161262597838252373472466819276649163055098950283488722557381699857666813502301780542097108321993644982375588770778582396222525394953430786865718417702147595588577246397157702627131094279199483651106649208342362339211723033395831268082670235464199460944466894382671235131656530349600724286543259978515005039579081247451305159275286465523462240807179735850880419134019585238022347942026004271579819700790323737717352423893346331438329178442881104225072674606601411778747494941926706978690517979338731412590586541096421469593366880970849100003804771218849799639252890391564513866282808025903763915131195203943006868626101076916856963348026424165882589391566996650562593670466891944498645438220949368918076433484397666592972545469012643505567581044686448730284004286744740000562860870363253985808394641909785158904081419753631010114862881106985416604073714508180304183910464648176560383210533989323302436796948036507193856738064510168655847899509958429716369751365002735264216370979495913258358535088045484066873628971224002437280464837920394423969372643935869162093793731711195771923691570685250903001783550029944206134288885920381346143226661462769609974076187783955112925999515612030558971391939095997089831531221040694734689439422878405692731501634389964579047360535675080252514813893545220080876323220008369060979406275300837395713133867483875683688611076019528313294113985147320120843621740544433688433634399942348302382479094405789562214016831684256407697257668138546759323042828968825916592001852416098376235924326804918130709406945554324890711454448915867770324681421157596260475383615165011963244092467315666809996064159389244882799240955970279733064201850900553689156741437704405419613856648958517552513800280996081396014693642876250476445627580002503214846121173661563461606956492787715585066388652285506525270389525840782179875032947366082296567084837812513342455210281080231853292795501990047083500179537860380450938352733461502072020558590267459483095834593043221216255504138422544565726273324187180935055765756392165042741603552155706064087676057791080385033975602443902359299347234918639875805496214651986351079256868239666392978370328738334405950834312877499621062071519251831324509558877648165870048417137484673661772227439290906334948174954406208674161662844820490471260134905404559099778197734618307093877749382234382522167021710547421982680487258507093677628077005133777918466883285051549120731459821442737946735597594564878020777727421441601958756693473224482587197718140304888730553123741923785510688045853607969404509559790815209529183671218548325626327872659507918578355687980515708388954788132139563877505274597754860417863751569470528359197145004067935840380968968902709944538948467925894473235933233328354350197225602691202863110889253501195178814964528235708590111629656384978235432013671164173510430856300425363488397105955452577367256858237462656739642159299614781280907668466036856699533315535209144587374322807574983094778670648302208885097562453537200881118149818457343833265137830736179519649804403733434452009733745631630467663865890612105687478841835190715825383833016114962372427787383177046069964361378044712630114980386707839300741983783021985823017003264444707317831032228419447140783131563327925957051966098836504393531991289503245077833818310092393432537443650322520423657879824710999414891508205611607232220695606939596625071156047295704969723334426108125225561747536079691993624181910878822223046513195302788400988642128257983991182191794065881020685797550126163040916839048124092881149275668201684042050129834013988685476637198090044829570447503524273891182185104719749561558904978362432439146735045407880706099957085387884029925328471051189156755640581927968121212285012093396088128561549478006426325280884959841082846911823157734581924003359889860504050783571132453916692736266129727892133401225666514492595222270942425228756493741942650144946308029229796192341303172238089989172977645172781586279612222377654126874066496751193336212563184033950205965092390313383741734019102081608963948285223165468237996502043621132667631227206715837759351899651281738034867925638008829229725926565358073600688789465611548048240461592789874147852040130578215731637310114885662319261647903062468761218335351097447786916337070736284932526324506846335214710107988853782130645764219205928568108245565997742014577317502663748284713685547767884538203156954896940137787638907319554054182392190964930417211917826713143547954543172446201751417039846350491517128958770281842321623382282695312925592109904870845924402783618041534582471317169576661367186150888683021550997787894366919484606391373200654976582594057101864416579726592851937503265413464303069770726241487153107567378303374577771469741836036135191664762029256831391787770300264376271722012598200222757382539354311482192975050615267136540055255489549523393294159545026816173551525377320602133289693298727998994545529607240565692608270051244662771446745356308864061180816260923651646664570105858611970429102608434233224576141902253632985711825729812607114660669322324164597344969397399238870262183663952166061077624990911920136564411421356339622045867583654496921273071193336383610416468420775765594300319152763839707913859995284586457455505181350815973116934589849185054873761818210153080540933710258844231926449747697507609531711546180479370320396011754739453709738701020747554918045826481134952677890223073605636829532852018353675122887143630183612847471954294374895719293731653984223220939076982960992826309043216433319437928271829481350104791865437855019040590315620463520600411456453467399587358888314140888187985809720912616448581965299922952556971562133637213108690774910498144393169682805005971311348166856281162545300869064940115582893944268434581444492923711838700847828723363448331748567448391781895467971429174876558502874702695436238440926201157817563328394150164800848945089981239091049735639058205979630671733882606965363029702545694035982252914022332870051473710514083474464091906622328135510975903309866185921821097961874798386786390601928978797982033493689022243727333228790536837059385621089555778563569643125961534811416714130468309112313621344663671408120161502279467650710888682524940912852890144182511405640843294678435241871284676355224279021550645097794521968136879952794868695888194552570666656658605514067522047285061725612670060630226819228767729887334269857047808307918801927773453979055397465060187797689628589040704565090243410148294777305860051770367630169845301509842996078497178960716053560187503775277121317628348551127791356224273559700396394547300700474955482325672848801553054977128464627135637601835843867585571245697340036157804257431265769345627183452083156968151684851227265549532986932228554070534444648396393070943225723029365051109981207477592945906217057687675201208180326860006522236065102730803507828310782845041151882717299177199495973409196236642839973514229966299107432616326459506667058426769991631671691863493986753051958505924921757065430769284069298294531429396392610970235705648768575749702375920386104476225068669709255269450230980731873541694223593854028737174857340387426957638563528880561055248265250419515341607147244658037088572052752473002732679877507540610301418220753687549986530271684756247174375805312068558200152928088651697857815957982143217719432029291008403389081467672379056590073458429415799577453700792892385471150482325703567997426971739170660038469444409602943186716622044439708294119478432019317616710011973648328849434678000497573692320819502101511066187027357740210250114667985160329905625243996902879107315298715515687188096284615955173944701216073507921327751358946492537804608718402303724570615462874993325716092503188134180070399883838918896583343608501169288581907845757457373070058716023997231524678508516926424527077174906003725978146930488390093383412334680698461202025722122074681630034320793457418906998524552992600952095670463948492506342321042301061234846489334128689543826650680031034168360627702635146603010233473693340609714928836072015550882697841709172312416990289975978282293271532141898863501955577953367021261659156585773559663628325273906558651782718113137402850874836025926988236850403525016082185576892708300023386383108574575527607785679883014740589584306122231023187143247776261572279854510249299118647642279923612114178517842538371069652967729400897984435925663999391535197825760436463722685991090463863620248892186037398502436324509741338971278806871885694573725823616880147622395707472362437576325053139651184886565341867360036482559769311360439855229569145509000678043552718904095797179687711447442888495279718960065373834611195307418298595451809252374413597869698974846162358872930371165948571832056305450350876643748406516633944287568955433626241862978355713757689561683350314757319372980673784244724563429360248220080093236930602103635260367545128104664909597661442425587753271536704184009332352477817532256440673830608212352480922919360188657988368729339965318449420800846811060187423590916573460143192117964301022953974978687822490778466153573090487767435259571957004788599606974257145014373170086362744234420307990935095264178957053826377729434832999243508036362770922639948011744773036034702343692976450378049999936146846424388302043143193305013789467533664515797562957825902695261012762400889319419970659839331937102083160685406255682436525994942806925500491943184975971963697902959434456814458686707505877419699172483971273713508732412057892167082462432577787253369791565993876736393075160251502799867555594743785102247426252317706146767288924262216026809962999687222572103849872366295066376507513678749036309920539591584825070156955816762696045255673449426211593930074855768380105219624044953049333996904943495076672893149248522795076024689038665176894124900683176883597259986998527599995895828657957100666167607198673598317092538444974865059694490115681850796869802583361826742748529445193436012153694949146872281889776808463739811957170689137776119362615169739485982206070572968741111577808574997496028124587671763713550179911633651221764735050695763238619395392012297310386521310943068789934565795546789917283538964122699722051389603594283522738224285932140195582242152961512161302920603804167627339745795527041248037259900807886097591206660985128034079882090677745440625251431701953624413113230122790756202684302829293519367481357289484418761939355672882330949666150644895932121587205009870533943436655850953935408759784118466162271272853035241604828320922757371741675588377423595431595814897951643350636672747621658655822352480791159592466297860301523896849384293614052531668613245940543775268793866896796068894736784169308931273499410280661095115325975183376957054212531723463727381525757560743069075291201279288366500719831488325541673036437639303772678024920311075027327311005847253203291994868558283341359081898680978731729421299161663508605944319754369018509174359668782557460958914248905183736572153929785084052401989404557897621680760791152474941441145876326760164250672367067738483954437686100269414478754722388543324343259466744569740657091119644465636927623090255440260632888077601895963709210553415354786365994162749085226470231650705607892378312505770770898032386650657523715328710538327311208216915826759296817827706742239167946590885375852082674908893747924971221516380918139238348841624263932360234618349398376452322560887411366354432101639264183836365349772176779779799486698282871413918334241061682502198332588719098610157575886949977051872218657527929882078013883832127169463057402147674522655056097058190618209320711146738969061372692280924343138933377375592558577170185326287456495361974637794735794514184384814669432012271479194030508036083816856517778327796750052417974245931327951207467967238843990349674475205983985193434799106175866241769784407205547690332099371640422821842899508143743587915818661451833681745764382563788334969784024609622468647784506705459008667691892693760546737567673875845824998468938130798751723174236718761087059652414443053967097462286028454038861559999545915943757197029763965522764216404179628841707435473767497333875211157440193038092512796076818081483253530811288043570866368278172395095898892428857274919409226096560715013167995670181650158083141296872030046478289289772882630464804964679969415477863319817205850272355058466009632948816711588838759184173385549979320965827475454394808431978795874916559880133955955238263150844132994836912679297399277652481430868882565790897375150189975421305505356964656863669445289508724394802174270796860958641886090961478493866018753897530939265552598032022526261471367488916279602700130599662273160903312504099756311643389502830933099320790818371563596322761502412770453208878692463967558420508038438650798487495738195776757444284248376691247587539081974020868230939763566512616906716475717921411387881306726974327018813456155257222920560784038661143806637226110240199261816988345459258145809325762338434445569215784865784317765668065972834231943225663979510512026537575070094743737568470092953343445537666179682168033413902685688345128333698115101136960810749852742257498276881814814034259929285943091628927873603639013460583016786677939852056837641162274277966432605831270736687132679133439629341316062863325008713917365770333962492744395631408705915980833365397942158817665055336395334488493974302800188581271516834736332075417752421233982168675210911302555601226280312003520079397000031063472639100463964720307517259931103558889147863353936092110029758465597822244830928735553953057740201724794985630270713499697381057518246937784484495154239028993320108352203013622844585616143279083804487586305742277486870578878247929577833137073265898585164168933307341991262558365213239724194939894536551974876185550818183434936893607538375815017377723930718840331637000275648724818835061236385997207331942159875134981660629007573710847805314819133706123360728969310947583828361273953727967365782850494298358709337109528598093405929508730589208730750251932595386324993870986013093214044946305748787394769630530005650311911149733910976466653987298516835371540981713329012118081785798656586807127786630899611767477714708739353746964201419040221274741323502582260568106064929265189942652856998837268665569909506934578967210612778932194086849454253603774100706506542918193229321296779661463206648181145775492165111072730765592138863500610685349912201754774824184072972813695442027913712846881590789117243594932066005267808659446763230548741912309262591167607858932700289238955239096858488858708895139645204939378189214137142865108561581080044669975808206891144419108325823363904260468765526529783165505571813400994237391301723282385438648424851575036868597108582442656172637276373744424489258743328906335344373774771593002362332728257318873844428312002688972834068856061964506488482051269306601310802384098742557151565995972819473987013194912577748671768343181299681030981446800333263133054885652594487235707524073773689140818230890854186799403762214071358159959779452456725678446697665120456184139221823132692996176693621528807472713295810957320051708153452054445204119476840902267532031403690330289856151920923898216971188292261198730029735138351110947600056804569425386444921132672681403856431312710581172438946730644013982765741445309068021634084383689146187852539751350155296305425064549643007096511122854014666141444735857282729885988939812354494723173430112325399288588146633361336602154608694877387908862282504753296520895882114486612003793189034050395352356239020902881436038215490919424655228009554817356263694156880253619269023498345614641417722515041179545052591934273679076311886821702146054704185314815073986749929295442847858858389080657821398967563902020383164836997850340344597246475021076810265423911030200739955793164326598981552335033013386884338943672072483845647353916697909794889799637688423976644339760299482564922674960224711831368266862102217349324373449810218607647617178123695514414661835497188701298976182060542022512281821479360707809721497200233636236404828220101081041179367392986462586371709192030869056314696007968642400142103426789205213741678451520309024907405977780500874883983762852615624326325674584753541756991968285347331060365986606713291811179092621334382752336616062588510508401435082477723263035688529954730363107924398914844934330621842721146678995133199454596659675102415961997117130055326264387152906993343951881676032244941454756735838323613904436123321692797756557995954525799155865199191235006124089444636834969168179717220275815896497319462484687666672708574066338184585118625660650779195376083193077191317536882667555430217639329632167996283300029004365843464391226350297630490682796999678258213387922191411939091406585758135915647494346478628110084840801819324167731881534839302544936208460470168979894818904835324380911566692083337563102773596555978552087812675890212302596032724119438775931393457894258535790249804926106365854566779158056249515496113220096357788878504770725918759913601981471440440372551217323572541372146246126634435095550217082012628068520732153345735630526648357886708520804966921485862852314514294090019486870037653979066187548386343141686773744621969251230830175285212172502163338737634006125158716525170963033423534663172307409041054331807689402496593596729846276857318047520824143031932019799872620336937522474718708655076863275045166797077799071714910004404437196514147502083732644155324742710565991346666258471130159644827085266643487446613382468297590764458734325221830303861958797800418860015779532867836961255719413367298342178224014403915578519713599181892845155040566673206053820655551094737098538823052190335426569326220929253140860072016333132343173844014851264690340773019695728440830254198954305153394896486610929916692783521544541751223445860758846637430532517014465686123710667003805557379172364390207245428325564281834831585433949545234516841660529735068101067683342588177026970894006694424984953320132011825129814713659855707823792607502045259010706611788164464997497909931213792407094056945995107173428869809872176258120060851335020394467628199392754328564562200364915470601081894814159850329390941144207965273004113131407577749467792755663168186750349054791774895323986259414339083772351681165409349663867259709588295522888160939685228860802457319309842056827734424727838523248274568920320419843874032448179862651926452298410816913966491959056768368741140586504927059646168346325328842469774884210611197485579698539162215401008035156430923010575037284636332488027204508046976401573291254693453712921920444553231718955009362235196807686820760496129582101893021454328034207839360842601456813701148652065340996769095919601625998992161087842648566284444665063967791282350688829033472511348442920975656683372595799485657353954048323652064934452865887589641421600723885148475445717823573699150142336122432014517632037768272433657781885525497893318344365780399703278565163194908947586827084399908205332245823511243876236033481381027271104690930436632920891943099284673386354691769535523861785173040695655440059742358983372936724008964465505072602019731386235528686765609890897976093667777411875043416370994186530220550881517699238286997352458742363879929674237246345722147435392811248103351489799860497016154716949621359569998235510837841986306190826418420130712012399948992517584490480631915350641655383662045557446706846593936869672932466461136636475424868741670081576412538290642649596129559494921282782062487912791325021724688782261238563233697314544356217834349357053987784759316370962062450665133792438867335105909260404583755348198274447171454565184043547948484569124366312374627459999089042333594940359499746135331018595585105589289644215873992279916681236335007369277565717072171281675104704333300458633459520836167704144087081843065945043761987190776286490630295103743762541412902368183019262924771237739134967501045215230450046280013341836605669731452224995917021532036928434397991645893470554653741244993321869577365726997041958644341985341435633224858702061355421522466082373337800119108436535591171689461807859906956257214431606730416921036514562837154933916999609476613041832512825249383025280240907154121898508953250169864812290789554085917129626857396395948161270891574374035437165143060090349197077999500474359278099168307797314714827683101818944602937753170423972181818032677022069177355053382757465277001540005302197415544316205564949184055078925152185325790048556678850917948038494376383282782553234876569075150937527233753082385588338973704243106240632643863086466791449751571588103070130426531383026830240153335295465235690061395430003829071676641676372303354613335559199928673780856972486722661020706955484504676469425610098076152625377068015156891678715103467307527336298256738426687191109409399203132331348016440508201237355695384717554702948045955187039398612461766231653891064190242618373425008008647279789877369806769854250713846386014400296040985367359526833743960355348076022909307209860995356897927709606140350148682699222449898679592821618319867103754279369619513176836233723854600026202580797820165104875082197127046151834227800076633089274074747013015527226843746220151948154544050345827376032260719537996265053366304007027135389823955540974061866166524219774411163328162201506977840436754969831727170821495338196067562977431828263969687951360428096694912357976325906241936605277536128108803436721108545817947131431318955624850112168885853034303351493185995660541308058977760549879770633658215082722228901129733945843160057687287327099778860634173473352584809093893222845099014976957598811225324503597770703621412676783370323451509076575116206617040211586902840577324805604918656350636105779975705392098090492001312211115734625022584692597934993179345459143385107119697428364806882482872226138100592303344609773894706793400180221229920492030634161365340262312825408380202808770017132338219781513870721680595141468758341549310167889405664735775073048143363942298511672555467732011203890906844479978980563057526362881134758815656068604746527835573344653591807369126677584152925731110952650435064409127845510159293618739333756940894821426994555601938118616461214197517249350011820323561482108270312287614868084085021146189412809970916301154302495935252626064557375825491161693480963605774726003385671335093390517162933934724189821754507560331921495571934617757584307377296372124517933889880193890218392829290349048779503086135598914174759300105662636573306500034488905184620507548465992354828188196895665466555998660543399618651045297162356442182223638694535023663947305948774292564052458678205214832346185890024712145113855951699454586274892645840809943227829360467573360405229880312904141606940481816617508239391445868368491099954892798311125486173490397340986497731139882825508245782088615593414623752489773828599656656960076219063986071573649156287058967753225614609772540639406357811636190059633415397105181607887769042356154090332575402212718785482275842854270742383151328648270503998245477369622699948217837799861488659058665400518294017238751955589915371519137579657002291071436757650980409864784557143159687873312632389935146282013731286928407792726381053879251328383741596162558462986451146317776275832223635209832401284317977669416435861862997630530280636387240237604839642280460832955453980873434242808186794019365874932076876516933651908205934480996076101042994808082697573305104325695867250578643202686811120867708693587597293931230594320452056831452566221214024397724034769356872766287725206101992150858113540291539440026481764413393431207699093735343751809756820865657776833150482460367646202955967924344728760815687230804505539419857020832152001517864178476138959418018882615989120990254546126830007096397885634817330874519409349501962035826011096088498204150872498486810620956297779691220044037991630426143846999678352014138384554221209584774244842297593999033640687014360271438046509266975111853104498227438607259731276426096168420579349395947317361533019858641601924498202106467772042963036295805929928479581903499775896700814126167307389827486802087208707991689897654037976815439852279231353335809223551033962110548255154702694030158166918916245761015735693603781098840145530552951582434424526688563526917455635348728086540569822363913905558987858890930814610484478711183251841056201641579945488506510450992707964098951668304708450502491594246364197774338597043189252323120632670907519769438649309486454765353078832744334554191299690164145469643601230129623311360563949208292828861721411771828612325797798033041156123287457632051298623300882310557956689601384214107121905984688817644622616027931484823063049727740794153423419560736045919494378678193348882787698475907003345817963482620153384500268204027727840939479430663480621735404175771455588326144323869573130038408412427351587022428213291289449656403441398486401806768943467632202833841879819245670868900851381255922719068386566209480678655728401225269856343139280139867649221365851365876079701963453910900275708529626817034835592913045420214834287845363628305055660171797608852054961706087477237185185574116203623074364491175016620964266660620277142338496732837130063726813518279256710844726772939272724024951162053024130950046151722915002534331203995171428708290912375033280688706778447137657948865314200505580429808126311502278498412698526581580417727963311051700108321833645280521850302933242152015091252470957534894546288415816770691670584542283212265978018900144915499416131077857988008796271802218392300734654884026969114236940244360138307585834845725269591500507691932528864204984344756847604631598846291499628783669858892542296530343779065455179852766702077085670727281496505159363160198377045426281007945309589143680922639750256295039349928418312082526879944629006583540206577989551563795956872432347378348571048563585837265326852115058356677742094080658487815743786828990926727751226761451062647172325540385788405340423272991759215312627216477200031294009760159257428462504734081332263999247323312571394090963010104656909808349426102293114442493452721201979043308197073586135636147622806620618154458527621401626320364654969845356043533725112904266199829102040607227850198479451979136229539273454392505351769486986115542670670428553774650065602297283465107219052466254524602742974984184858216884197965819569564401242158963381500567884985313958922601841510891498413420814172356676999498297456836897688296391506663962512010055368649235986940172921813036167235645387670340743852933364961430894200932250247959367549807888607935033102109028122619060068695484063198362258558330998922719246630437180405279862126084961443368047985558349929781789242797951653167455593487064558237317424157291385386215479452887218545444423189055624411149312987503057234111395940308644381086410703834300333352597862803385912177238777127280045395065880118201538388958263375829193480464613681342877421657045631179802607128879712162519545836760064321660920367739941420907343037305066376524642423090012256840508129028120103930179073101236253667318013534399428281035181600301746695791766441564985723301295779271421382635799737675957269264277108834772497522709255254769100516058735408506338844463366926929450759753362236030415258220128246868465270442028242285625910309115471245375597215371189334013455118292251320136913988488374289654548326210651707623765497309995855701536556912875458650055608617752218811118727918261362407555291953177463019764011792490496413716598724771631984094900221412732249261600490678284589033493635339841268869194044038494214567072588709667520227189118893275353347435416103992032549558040573482796922338236409525664397180465396993149956892271930131186440206935988549948765034057883955688587117173372920479082549292634879392003129478514582355634466698661840883412051408566294090982588781242063015785084864720715410054622561730335215238854431139803345804663837657097394304791113507486164659917514693473614114086014179088180228621283246023371368762775234396861244254059815514869185452798097155909371200590903072772786778170597935758462902677726709759691140567988543676906422159761841033211403626776286925040569347671321443128958929185785184620896766433900743170889969928540537424467619812885879762331524909592063151682713760589163387624778756491457391140406547399687223617709479841598466845513999133397101378993755144512230805432520742363618283129377399785078728037754763119251368530946683627967367281165019623366056444938458333378690319209928077162608220644047101897279300434534966788518155156431222376460801036262728367357069327318322431650051730610331987205929195072688877092598925299992395029750660519581200040291635189855900853376164757789246402554786534210906338366930964792902918039025764583277573915239013381561292247020006127550646419249146304948125041231321854039070600257360701362571968497863269139436111632602003808276899461740100192784459283385868032541762497055516803377598317608514443557570346958919087563224921836907884608108796725832383361432743505556289074962936212755928247938113550182551548429422723286850518475628813104617437239053598350148676375991140749190634955841943770247228038486971548870244813349620167587058103114448245366280050402845872345026066719259381757576182321885033716733805209663745952670834157862838175797711872750293917256193126454570980374840954183453787164204042980042349290764345923165756246108495077176898833972344928632028517237191062003365889234629657672613689223144407207088233794229723020882832277774590136397013918602178484072569319484922191539353589609241915139609167304907300714980943775072171550260986796137617782333783561857803320231665731979335104273960937069056921858884649443846524020701589567069957333482138563282976475067823305140398222891978068644098191654193119742227839223042124473584190247467683962360177153134506341964612574652313318307079127986339665791570331703870097218869507506120690023748216370781845817009857398013399089221229108542636382375109910419206669708873241503692303583838038865542603267952704069625279217336086339378467053713523062815301806570590056804350614854371558957476632709755930607473292449888582088023127715169666784946093819406370206255375096076048821158452527746901787739471842038960861084942420415435823327219044033778050467575984213777311070042245915980575856265812958889810329599306543191578114780414511210900602195468914508699345884845949689275839644564163666093810296531272859249481673016589986836404511707882076413971913212630135345587389472815146199303009980253801151350497389631734344040966096811040316185493959064609380623027793441889493551784696100623132813128697428631351687894474282658000155675517525573022545257823363928749698348189920272488753992210567702129160389984305073302968927331619896246807906383879414276424684691387192152321800969002515610565023725573150937738099360274482567417823193387105532302185504284738456123513093001485769843048537070817064175055838850895624092775831045231152327867303326424427359316880891093278601055485950782553576848876472478026531122033488020424302569274977795172303284867295962161705168451437303568291578660290782763016605692838885351699386170954377851846710658477467796972786583344800429048620868149864597834857662623629080041039937072103147238653454088670673682275482946689330858258094211048180490409842121672368954436551391193400229872869715347818360706419501332136245692822987223890421251761728798459208528555366122313195910325013495888376913857965829838499933453582340019639836851271083011578913032247137691836190952343504946209969046201263488800900552627087450341339232150700437757005561815335958533599023960916007233599030364797654485651175979622797260728602375553835343675217327154501783173212547543202274536867234712448528233334748413586608188995289224819920852449401914810387465907460372608859680829765841933487340642271053070300086880022961937959002158390361375112242203434519465929320494183465215226330106750125755047993314156534842025312382153532043719259644112596293332982120629364330114243103607115438937987142039354070180223905035670113931880120910612164336439551978967580947101205528686661496845467735005861859194291276335696386931784009694965645003136327574159056347907709608443656905380419167108954098496016874876175929156888816103192054086097028864463364225128763608784300880134024767278650250791154612466877266037675611211808706652145744780867489905143929265872519930800546219123987981597754210802933776389890173523938092123207912451009353130118880220604468960466144259709853337172915005888597289829055671219360985074384845576071109962878510936671488547414190095607615331374836230878577558188031794045998302569310195447495756252944015866266005248035232616854037010761040158840852687004411051037598040745929891486295762941010009112257672532167895692686859387479788016464923057171966428378712347882184343782261066803946107306730484164406491856075667600311962160632703861766630663622190600160533228403340315514530051572285072272507507818589158038423310601384490781754604180983186795853268779090956040610402441525767539625585090453539477139266054836597452673957667531646191411011357329515408337403792478238142928491415539259281224658861470964856303041359924959962075829681865411498007359918771688711281399575644463770694776561534592310410407249335071546829587384855029709314254089165228888517273826318932959779409860285101406499324907807496671754018386550305888345845149947572878961787500324004661425870295355112142065260718572804776710443084613926637097710586837529382575598790608972635850437996777434621204551599466718855187881533917468772070314408368627038792009724202687536240240285714872966260210931261584104828384053142572603927431378400052090653146817043426503824314640259926511287988703967886695448887929240107861000614319166114442652422115004104837715542564818749466724469048934920603703334657944812183911065117313902687963971381976238454938069070539971356561799691606572924217815566982311052211034581037054344274791771000034322295689576901617170138160444006364933586775769565566716814462269511761204656648838523017251188247009319665114373185264569284612621868366305987066507597730525150123543928816419373300691838518060000256453471378733330292436622038180776024736895056119372346202514895319338334393315271180367962714418674087655922090290784340796072674920435696268057791456431034693047518680952560059840994539665511294663341790589690314265320844750654621785184639964655182713430704634594254570371585222675796107015973130935025411507787520123856632344411051473171010066931980913509839577706541635187330824611513750319067121655099795571860145788722917653093118805395873987041403972776481785715731608129408734627765632943885386831768530025722475178492557219061970757616829534967772969083803431214558704696528242041612068032585218248479676291952040645836742828831875833019253245778714387591902484727088416336090754865052350181819154047964603454140938570610741463345386925208594421770791121553935482582462237773393219354404941354824680496610086611326707561470299305281162057047787937062723724139121588235546103277307402407946603614852137523792162861521681819209008499097652663728687060612005749124085599257306603610608635351824704754374429849996207676125969687414860693753865959974381181062994984701143056801640168626416596206952586724350595537777842856288695640543945879885303262255554357924701915346500729326252563974703700916805191762537932575070736284148082558580475431809551682162017850108212818408395238262023713518391177033670900371029892733637487425649159897430450814175578702961443417640268935233065456305116969525752428510212258546355223191326839150610700764605668768332754029253485092076034741055071187010918197087761452405524429075542432417514598991701381236207297633150374503671084376007202496124720529969003389177088343024328430478613845759553966639133554905727278113505648470098471701284595802726232446987392084589404886828531319042657724058479405193692560727460560339400267162008652974782177469862901548271177425236022354732424658347169653612930192686024586269271052097996308941127609948523351087556957882594171863062013930126813508130468737821758906118831824164185204315024866480457585113363621694189906704397608531219103410190777598669772582786508957927940495395332144965434839261634425875456357024107004479271461862488011772563413467871516025348299236098406653214157899547859516944076359394544743298850121794321896483306219506980383194182760560013590289052738899039739189205564072810969311624052619670012307987379405499456815350197130010772882296200235864798499661965958751080837833326398945490989116640512390419141065486273273640717761604550215590660427206319130482270994648192014163823316159270630065690256402126273839563013238722702311375705277199596738282484276255698638966859655137560088909822880334862729471088395814009246724689768202385056213019204506498248339007998414028842457904987932010195390104661180736774255115967917584956415035841211451873623951054424714715517065787442003544046490622750242440369391565648097611635691075960202199878692253909138997793438650243099247180916585548867350771308305356435547410121652094904114566236846822161493054907961200375251992544991096850380337702340108734792447259662567856739672463241078496087803332040240343500624754102357983412259622187101823565678988693800938134386873544322067736518124017171428611670314154807602784264752956269484759174673126432614166672141587693734204679399578655373090582133384698413635830419247009166956996003704116694086334595689633935241810250707995948396826539278484176967434849465220225433868529030100244707519797741175413948359078129111831854807873945229834371924041712590004654860710282900456800525393573179178217570376867741150466080379322805356223378967727914135520620503723751059618634669889332790938740246141477667538906912587320497294039379511710730746012389211610162282281057767652807447625641097428185927288287033777148770925964919712577921639128750869531885548344923351781009839857187872103356177663625744063436246633467935299103625890847400256596954591648164480681902101161952656756291255004259542136386925906103805832664850878288632472561902956709667244302384599791534671549868697703937904671555976823184655839856777806502038815419813597581399281210733391316653162767720716490260020768108833370740652714787987602497575571211057801494982593227939813918848971131574545112565989842659754835411396645297053574270806162927637817257996135381593746155632906946275375020562835570696916292771565612301157853549753330323870403919762280009493839612524054976377285923329486990378282859488958187635446009923843968895199385521663874305099765070749369652797507490528871263705226525585099630291344777880479112996612843806613220308903071892045059028952932868204576286546646398729309913078086375859067984818050457852824400310393746592618509082923068436910159524450557005103121615357179685741055454635485489001685074341016767394355178146324308473642859068458247533454217040798019598633307679291603842437854911012582624230603446109000959958534822044934721627175252038350655070638175735419092472247781099062271003224557165985750418522116395948919139343141376195891639302163589818135577570644180542055907671159000349178602641059485341983043614990095037743990660361781935110591567202362138297431840393298994639687371785941641094822678879252622079207692491418696458956721918432496704686597823822848630927533679794200988578552956755136242124868167765074264684750769056811680041193132699112513294913049718083119679385369537685255525350470009675586501770302896304334881491732389235802627757036384620343241001326064210852115229615806905545536782554316237663501045041855463934553702405908066509070876941898634601055719368296665008951086094978494099021552564802016823224315184741780592623323982764439509647180173063480478647046603096181402682293680204212017527116831626419148029607314660796878440061934165984173345558483039082403363571540342539592736410851279881072588905132230649070905833703892847071718760802327309927039457972529678178922972055594781692547291188318052113254126943458383981530330069383196057384984334753564521011205420540304893442902708082622855420856917750122939546148936278106910304568082829066315834628286518793647280448507183681261764989259546732701323803574135120208273188978535118823234614491965531972048036009210965655738147035163278549597962742038427225099608066582177061494183232889175292396644706530355861831321026419227421046489927787707687660875303764398574284533170139072283459682056445740404404647402161816593552679731471960467140858395169792430067167241935264255545916944846325934164350122294301233598643578816174057869381840496831293123866577298275599467473665353821211728026176837835898546400017014330224924839995482246262173184513730086629123378984233572355964644434832687757899078044570740372224346756964968712066427392316029778928910721091290627308595252182136791474883125039527536197918087990844438438845766696775954124249635631059365668992471549148107543615586533039539908673096102655477977130270131045562799078207706545112563187274109305977425717717904853347900958877340993315077743616480013501048360405587128411275546266267291424694589296229402600031937878354781663331607994329142952531313358209237749377114542394494473878484571875628951782778150071489557073373652481403167393716977476446074402559174097604627242723173917355771961365875735176382633374440289263086224407895574297802618144927856160120022961468852492944162174875746462837293244878757242309685696761495385226126696160260830552923884360536217653244857113735289359802930210404001912463433429323351485371048517277726603775699856346605153194634391915366010686274636638850726926878992007675625031580099634910031606512440848480252485980300094768502020642148793714126838432637239598694303393764724894419380846569030166338223195109823886389773702287398505887545792729571223014495567105540464768110123360654443559771084902808900909710322158709108618945520787950720880164410848802175737553535170937593760823805425832909766887780421153190022529748188791514037653999109732272804424413550789296725408220919099039201733888130219911796145696524157145567798192475321168961837416523194929345021872526123404152743395084083774842915502543325631915385961049289692590940958906345570222359471367801823095357317645752321545403142190332757836957307219731546972552754426535220608173446312595155163938213375411026556343207320904772545530136767671952078921959812958442918681662446528479690607966226623333197133246521781260525982341273279681776859880723126670600236207171076637790292537338860242892608091607388889334802795021713604126325642609731615504337412943335429289475457110011109188479413028998519826310829370715263724383246413698979166821392406584622506919478285111669627778016222232812660766968868328140981859741587032953040601884112190335992003363665334808175275787560262960321511708662116767804636853949414397147758603516652593818245966369323337343575350796335101368514909216851062919829875405135074856725077402529162250055868232051250324171412434078449597493513539731279808006319459396438966351511108009642281826384617702145569163305898317605894007360936764347253684337047552972043024287046852094866604237334671399913191358867396481228307898957699358475919308031615490644515933126080218386954308753968851096181354408065291408767502023561659419975404711515290631161763207846246192292224884043413012291935560475317722840761905910714349551954217107835694339473706777237708249692778258140168037019638575151365612766557443955264877023005116588422166488826255616998249471632136928866857214292717548769532688718795496313203658399928472080467724643789791239790413699836264550118609614893327831610846226547498553215444692241144470825622378116856133109375646471799038425528185664492916775229987076590624622047059407512524269114454716451170042979136628464085287699470035941013909640230752204834089783204975644708685425516330643775417032182628711467987216257725325415690592072935807080273139813647356777854688390868902079002648305363244473613231492020015215199596275846578167735087353807395668423164401225763519409437232980099754076604624932585672082992364150879100566241039114770995531505808746519817118721661867676228174764066264752168356433228004147421802696966092178357192999250282801337225709775558677819989785335586538722811764477396677493961007089501229203671944549150451313569353581246145310892959085507702181753097478306894799684586205930056107401846248663493603742966180011470922421881171205393855199678946420132772670328628058169260642104714225969113441450738319891425133940898370425599855045130130873737650998233703337488101222653607875763413656868929658844562448134558728338908775459755236688702337949350566144675455839715549500396298001320632089604654984599004605272867910162858968329931048137534386029834818222171072597605384183060015343964346188928357910119866980855277406405102626012597475092165687882591038401039998041891685150672808047141540840149227416934440291269532592468668558335092611680177279375188560443186970152793158364207312424967537588647444129385094769978564683326906560030883336510218993875083519773471386014361318184052252411777021111011591593980758434318868235880640860844577006803223894170890940207139346812793378011346943022135689432728579731362244943478928233554563088777518876110431486214579494206258550089734065698746374326432813112568915860694310085371927899513589770834416181475388730940791947956804612481971752290488439641667533683871330951414176572107917523457326413235126464667371744336767426856307117695420428365616703731275463991138391793568099271603734113730844149987933052591729703713376332549836475616360533520272266698929241297465925372588876442259369464703301624405044058030823983056033211199902807233892677892103976887372734734365463110661291926295790443035198714641994287647090570805344712453096278408513210480892639845824697771397023894469252784860811865023651815914933098286883866132703782759321131089364960031779058933728915797004753525724022313647377266463249014866388322780042152613214509169993406651784928349278318434026917820556377771228350412854845579363264673669058903014681775857507394540721971050627146628630687711973355355808950730484901076070616910865182371272146589468648618137585863983855373226498166185898380230672431251292128671500229355432700393566353789899555351893155840372218052423917457335316066860770893973603467494255117942133925341402767090185778698262574578936480942655239998983850698732427986693920091734816435808765085627082371384178821417133012950785839379060479296581521055046275735511098242024167236451630038295763564109281564051069861251019089379301910306022508851352536674542623062609879033291840018134317539098489822095515126152567838214947680094082388205592633532690922526282745534986216601667725339111267233404000559532544304877367858860981730143692906693194085641507399276511872934325010553616390065109023439968200468997308273825539375374158172377434563346457185543998029836232304030833571785686705056883363695564681612239461629311197504326564405016813241680016085974648640817510561896236743026300322981907061232769053009741686739470457905867829070384783287029897744451958455105990463949916934529232830681593423716590429579375526437221822591393800564784540865737008884241494505673746329126586008131710645437829675790002199253022737393274386000420164652015304352468038326093117932383208833426107404208709141055259978794610635829192363440874945981283908090261601943504977788955478124711814119571312879502850803133458597884097018079003804916068821633262801737680634399825886517643273694502746311204258215790552368666177666364425647594870988687569201879002652333835291534545150741859776216705779432766203213690891596744502374508016844758059229196233961216815222104573060671152682816418095236216468751895132074948426954315267257002289260667946531982163207194515610879385667531452029544797492199383757154613943144035061103927851337620783998481373814676732458757408847270893459854904174601951436657255637570597998111533289338835658446194949461424044490799403243398769225128324770931012160502979201575715419306622516303410206788311327272135792411185176436097238534962774050711964147132537500176728612496011897564346423116496010993505480955353908010442790806962516782935042231893419250855242112306502930245855664581584859336528425479811691382173160159399503263405204764466372295143238629256749712577086688990818381475632506849149564337861312016003967545536310788739190242031434027927213628839967355937596124649046769635213806344778558071152189803046354131355782346089407656280270327004416297508830115201530791773750329412675819332917603056218505634460781383341151856791537042335689840180265377569305656131519821016996635559896336412474550155766726840731818201288597073658399466153513143550004160490358335025290656995308636797561470977352615237125347294618303238092030559441416193767837053095492544643224554624821013460705388073961385369251053688761774641425211673567865620817104019185549645083968118711418488372292695372130529591660892281876067363287711814308524342244753887475224281984174196790645240222828368049658806972440652718317595341320596752860980628489679855075100175923342723685159159504961351166838229846212888420056355896624031474070796899292799011800181981848047874491295325146796938969732929558236344695621031945338355509038809709764228091750645162884098817568380538657281133249297862314368560405036456792349414968479943730736557966513933926424434634167973820821686452756827234070762536152302229190031378097563048187342578051940126269233650099416251657979700827985175989528868079375166578654116190109303283191682848584613453135920249198146511873176703562554853916373624385774969929954719434968283414013128335835843116355810983655693755926840242240317266357296853684610716695138068464383507940283048921749183306990510493636237193444967977690999754057023707141731410613474109104034080417714649678892069946926394992587593712521724814050342277928492900974545848602710384902645303671387271926054647266934307621623465987776857243733621228853856468706210883870548657549363975655656682707826945761046928450971491393511207068292563355341329288038843507547735586535519468024490854361806633339696288896912217941487719903931934628459998423870255897895991075613146341290162394817066968242104438127228386661904439839722295366155108955172201858303876947592549111296564684418668239260190835349194515853079153645222318537848987594405259437225850118683198646417561146788652622746729871497113085642413566344904132571220687848290531463614846100094076940107168464795292855915072451779244531679071139735405724729981085437898228607214025012615882320782952963564296723455259725542621030463834301107170567973046718862492986506234942504532082704923349414641917469800606669247099985465946739801605395917888815071585519003780206922667872730691998526837049357087951276566676168531325526016637876120033750418638094607461588112908430030670145581330003696947742289245331401453102686272329404371148219799836468664992422750151434087575438753214493471859762701920268076242780929944936963023070709743689109691354089611373532821504711098695190752917129688243717679798857477888023081259082725327281009395997684319512494501979261153442203013649824231118019631059780632065680253725058088902640064346725623793405361200793488420932464248964172128512795157453088168513561292613041897197712049008189698211288606622509420448439679913819062886794255308111851698321910239542501701152958432447302615706140643514085780173256525754799698123627069516226198248046272552582369760681984448381740237989768056548029388523492360848336783113792458386051788694355425278832595583030739489263070380318228881499991906517056515541485876146067569335722329543818490324619177398547628051542090091070653430934430668550125046770272566373753417362023898301650489496987082858172901251367229782242118188473882369456924234307570264260783384828461927400608077641307078849797479335285783014744303331790980467528818083831459222229273027735634900976176737058033881753026373744224651320172397666604095742178777251474754566848111956231441125844377171798166039793396953419233879868448437130381025522109224909319201758390390925345832198579715023645217834209401308566395000517775646531232700626418866537898130599318661865750753719762112240667278272050388890138376721072747576306923316636185165429769029119392224097486153439188299239570853686388347005012532186928327434731550314428657824928228418285505880064517839846265780976926428293540739443141965431249878117680379701548787462273725366018910559125726571136931290499227657602727761057483974659777183898924408054525266889493950950065493722600612747348508417304420793927283554974897354350842022589164296789066310302768368261468659011131313433496726390251440741882392387636794710352270864768756039209013512482480025097356849195729827540883951012336399897008259592335851215892556585493009683095142211202114326826871725816132330700934898810617355469667206092436998357658337539352159831524276802640542918986751439953176317653108754915642713350816205548718489298760043275013560248958311589656087893129526039355892423148837528602115669494921237249159819439714761816568167951126145467710280480753244080485181930781975472913187556492156578911906368773989334959346636409033764504067317476940332682095420479792586696699649879659522293180336654602024801947096591774019063547422265100604132760262874692664330267742332285705997928569219587569445091710818801154539845998186675802855744294876904592543665792857485769334682584777103218935562357053199545055581059677821834892335198861506662730343384112224735687459940898138696886475462590513521701186987430071373000236926000727240979061658027641491183040626825850690562287686701102233975873948257243129436901860698219168062186298653089498533745055939723323739589652261114905766268316653285581180108736433995766137447609441717972970941824612862282189434477123247230242808146031671390180404201172344521475298650238565961439790424181824720918348917493263838354210534756689143481076269057115983957236008510105183582585502999175193801535247185072269461311587489149134829955501051742250883873310287928978231559172456475054093872897806750495558802067591025852490325605015766019486603540332545147051967794702546187851684646258394576971558278715994134351244643690730564846331495201105347650426588696442142538824811639182698817096094672734527399736015633078560391406690953158145670234766905275439327647189248927306446073832363566432864323995975237296756717318287412854651522792554133861167000130434085032311303764192626077132659249169578285782142311873495027646568118309476763853116360626110436777198830105239287117996874447480271433624833892082711415352942480388139075738847472757409150884730818259351010313776408974395513187878962476736029827689208774472974638720636516952013911314613510915544729697834145627126750049699161170236730619926454682830418032664537260111276477358695665118435594020719229863777150612503551033771982061884221375769430136368858461524476538689191631368130745763632455758088621044861402833604539453504937867585248499385230485530541534498068313607878675387246427790484374117854069115674516722118908118340282697052192150338901860399309412785014698632013421959546811499712886640180697894802446446959595754647423866018804852040422213702631562757667601706959244035299189133042478226606957690395125023884548210652333441841445157788304381909657767946613843215843501738954263795861382535538091300467735986218078437341565767109968121243515814553634359289580869666179648038407174860611419115796228669455059113818920651162928513668679269466086117438144569802508606031699346463449566402480573997010385355514697961114267204547140950155553279871410428987024429776539375382414101111395899692531980369826750145013214096325470720099655311201910852405021527503914134799181153538166809300815940040513890812049221696439231507917044963461637310529546505220242140723158640204376280524977303662818366505818858395381443778468177978435913426498843955901401465055044852606543763876277131669839189359426698247619732589657241278237412989084003477103560880375472083318256663046227806469218319292330661190412883449503695051189728447546422553383993954571023795943651373179220193752198405523035070224690305360501756687752999500859547830750818203786510877803170409659717570246326330154855039466117777730726583041492602502627762399681183558039440990117717775675182628161432488498798576139200230440424800162520918676276387231775453231568428824593988033500828631777707206895797665405688753531617106892999672891454660298649506223867896347581264407253146483266621574763931062856027193168089639601975180969212348795784494602624945706385370145495108412295281425799496424214812579982969194009438710534709977927748157578115744064900587490432304838035051397745941121753203907201520308343350388296128353897148953468613274254797377673177788227644705386322530007749279300685471857989977894734210344306358288328653095061974733157596757115338975198213978165033930236171352805956939199587993309854518346232653303473103159942928462453795370749852129390538750095999142288402351911868844243406541092696878792201372307295145084401449674451497358747456094942735483154104334039827287045844235353312673024783813443639729337080642120202064488131137321691799640506645193301381803794286199807209457900869291999492356240084286025616203864089645478277691271608567244084465487129398399596448012113794679657942596224267418058045321869328567221408299993368834999544733621850831738971212292802349438006766059150575828872900465007214723036469108369599157737766777741718001854977565175457381112028164045118753133255328300575514291998394618337757409787549620487234639116328622919845532148527296570090448331998009078878827514538663250483314981254091942200042786643230080633627274460658223166149602723151979288042325730125403648480985729543254317042893574646665768083216794121572240361574817611289208262873095794648337887717832466665893747185180578120782929598034594142678064572100383865236615220984166801243554675983371862841044806420050494019534837618852543726849035767663335722972709194382869066600643438938233168396322704761624026750799455951542710092751870792431436913041295665006711938096734743328564337773677216655905331713814163974411406811762787990775425163052746219977884123394592933068973685200369291237247148820132373679718248916154648157893618504917577172520110762695546266496255446036546918394896846263857999475319864731450673827404084689984642542193668675910531674731685540535163481423905863056276841519288444530076585405586279023543519529189812511910536684586462464322130644998660490198616526966570914436707997856728371086010995778339939705186602972561665453102893420960326322061698453459480078413522895739657062949911398191874973734289458822936273805019387592136016574491904805715388158615646819714984205501583744987741346331232971898434643441447782050987303889964285006899068203878017920302633969692883622918720338885853703603881742578031140381475502245539245332023810827953274753965637418081078518875027514792802482040581070942153683263441690947960982820082253242805928696495849331321124961760640286047663375024673368053202525873278599617583969625774066698781396747510868522389560008064272585966067066815100754857229218254063632684557502312663007154638260137800018621241579839423929506116593614826580214095605232109720815262381948741967064464911341902782289386609298073229690943496348774974460618197736525230386461337897054344235373173011487649545112283108768501713178202534735906368462512266852549260662444820334751414481386366305514760095119353882075359239389523820996185566886326221318282689676100244354552680925575562842697048365698735505003112109440942355330253026859440496269654232921135849925829740062777700324050578379225613628233870981572221134731574832589991366671603268301937984618554486443094167137713743973054614407698141858960205309373911897195037942996698372648758705830067381114338127593916807682018908450676755175096309445692473024222317270782500807670108664589352034152711672953815668091507281394249981238859991463164356125881180522883291071681736144655752479133773660440393243095056872638537560832604155757097745769352474762311349137838444158675295326245707185770748843106767729589025604354156198810940496574247386789815243344241588709099188999756783511966369481777609027784875623304579882788966008309492230447107331084164197481745505776164569418202705912761695226345074921589118970216475210578340892444501322944579970369090759802111731627053963309406921357893884546977238122694275186525861588672672464408393722016238687023414677025262860964939846320361012698171488053162102797189005016440739256502457888559026721017003808779855316153382746605997742827517687317504243622946434558042080739803687259747881739369918845657759585655752573144690495181529468684038750818084831031588740543030170402186177494981988886130113761643342836987520916465537087580213257309002911814520269207161864397531737860601918465372531509797623814541333599401154223985613624950278040458149664785238352660832603669929782609137592603564202686780667012831083923644387887252216213028797109817414249280826851368620005988699951756386464307644876621643713217586989762239476081934344574523306536076350114023167955124552990354391867571817727713317862133625258116830112312041754299329461407952641812313719823734017065103034163756243245313360751773983993863913073475482769353797096021640191071495845034667229315563441053792948779027250780716800165431315465452539055093055358442318715289005998313818273055218086663685812672405307322879939138586600589903477841837342853294919283321564278406242309986543030080331452477867975464401633203932957026522057085026339711293656337678646431090988816986864833777181236498416543604146055635940467810151048401948348998767891289350110683600629155087381720850239494770192775975266309053788760552392052425407677967525128171308416446053474680967336690400714105288187633102352116859026579524990776658147698294029638171637950296434365843841105167794801519400375862346020334611679989436227817359035553866386120473892929056246135117866327274528729514195984092476269061298927576463855807665140180826749537896669654604720657090763945136540502495208622768118494939291143260137816952211736080599404726782074740088508889017053597525171435133319066615582671048789529312623342938000195059495841028361472177865049336785702609173950262416442918389628523777689325458442044061567584789802487769312398857444424988385293946012749599183623040962366521342761223320602266408993735749678777891258959606574734152217424738802200628411395593763795456732274066339231348549937380655151839552882888388650285006151055425419058407539680854353905225798040295137881189364353353413163127764224485819522297188986458038730194631605986333399609939902193003106009473445143522629875038907465227030483533177295364438244298262412372769973168013159877788965620680800569953862555689022174471954397260857802623595927041503007056648613053627472908083707394695566503688857603254156002404645959219444377634495023570845908128681882526181958748145830569530730263921992510011567246828002680069716433024772005540700535251897099903088978687983307963939962513781239239445414330269761604744025084556278401766063252614242718863460779428146479200260972509183188102309480308598676107963923473813975836931362561836022443020909995590818779452620605721589869933923562233852695321040408992392201608999621612433191517769948439731905737577370648155812505464450467496265502449616737584331165590904462100716905046060775578124050122879485426107465761029032392048094437451690101728003756223334604948350297742003148781151224021263699446300000264014047004100619339108665611297899310698402628583218264605889670380621652657469204954846301697076445476235677050105790836522550874536333409606870286224962956556268626409218612158961238696464308982558236950877446789188442554513042721385191689844611584034895514698975499221071805916338156104740155830176321569989428600060895684213531656916127875547199254290121454393651625812341819515038494827408825775282339646122634748609385320698865850364587721367498665506917936816485129649181479346756229957203424632886273486885209344882041979561427086766777253720931040732768873851579246432003236867049031583331414602875067409266719055018177835749941235769313224500715715748675739223247120478251183653481788832714687447744576516048758918287481652866344763043622104383258434676310270714270654258230421980617680212847955506276099516061942501720892654067434008144870885724238484505312481690837370416178444856251588715923275010698447369628497028482280424029347305382518127847994336043061727505164864660823882231955972158890303004871883709746012370820214903599598696347218429508673749264975506991216845542685429739090737997686862721964846467230904749085254382703525972718974349438504501805724298434726495740191705229298904919403028670079444584949942439567453689001462459286798528497143348842152724689213058697356028404428670300325059761200467590667062411934102049990620984910662811725655823226329149694899321592534833372954814576109921804107147699603035468184703040008556116426582637760109270028663347211419823942011762983620030879493837953079701408614826996431383935521281079768501841878948589553105527422932726365766804390167775434289426132729471539286087489448079447927020457067756197934073774993976794051701363920638561277872820741345169290089808380323520514062280029706640374851658634217118533497911737626853207123922307184828736478399673814644568156776821130723513195183016364233711711202184517959564483071748978875730783829056411471390045113576875385695746413738598391425788658623390961165233462470788378087448371191905363644655120907060157622865832117784724404385112141252966516544434825184083410658336690353348709536637631336651468932563602339483508445969233335646773872862574254867986527464057164920214481250072953118106271086389480567101722863132501616869381098522109235065156217052128899744102542569439064439568711013424987062864364522179134655277664207125027606836814118237568373869233385976008941261761156500855494672741531706511796810693127097702944733046021659907604302805497019535700687780299559470542963106835653536344056177482684608931069024611995289475138203304519096872095028157037348389454039326151381509384097763206343341658348708147683505589122328338378387583188539525268155553196198241998829275965440285627845479652387552377486365333378983737490923719981888857464865182737807446499345781538485545446038491137719348051053752066579202132427331113791633019547284414465681924918303398828475792136456580827458955985025452742411441356385333354270913389657490646733609514136843802752972120231287996178528298962579432006608430670255217832706467178880490454302744391148566422800356288231468175864805618964751512561683521224524080638093035072870436702078564514247590019602642211281346591844868373089275275444532182065155415164814897688113499595009847067424513942600522234233908210541097559087855195351237754078848025904763155176314193299906202396973634388177803047448887171324133244365815581556881322727852082355175795111994154190887030450218350065492044524790128044344698599865777517825613539435375506911230276092102577844807919621963075213637036834359578325448449715971577605319642482849467729292469417110099654602407313202854973767725734148050741242531642917904685810825417964553853092701448064484990194903393261875958267809381158818700042161893271831044767915744685733857256793139263227048758550309546727969135616192079742370652343966142199588088523155131818552852656860550956800863199141753034412728765864130399224497318049842831219003096938122307513933669898453042741281617569920305390440291066106789662599648273100746058581407645633131237252652683095080640066972755396356823059844098309998119706024710989986345983437509220513221651893709233958404526295147456089554565409584400485199353597141426289625382041766983379153012494077541094688579376536452672786652308846241053373417955456832665612369212860541336638663353942985381298557363107775248523895187682120334588383892919097086758637591062474718932332647767666328820863444289943517010349629497511144067204499826883296378931039337057045788118054909283621083738656583019657376358386752487787612092643098922846389278560988454116537947761068327420075661336762482278515726886915926664375383113793825832088787160137275992660407857634665772413452169785754066712144697344913580638808506295242178636088153255340192950332744833638768324769155476558631315638014721604285922372973565304344609997555261913498658171595273300872879602427426108767609135673782594175548281940028231313470556753720499128049259960624141054827795175056414483448752559353414814588497517285792411919214417553917336122230270078232470242753524827837280980294858638421063423609673068413230586615659594970712627173594331900506024162407997336176266379412593251905026470746223718737065186583239735773758180262154578612685317410512132110412799886714472928696852765313104995680116530648560430999918057336765322175661023200309692067136407746876076372265966212086749133011511128200213657606215366587615633487217431692217472816620010663589330758674398646322395942845102016348112074561383397614664322660819587196135077623238354613881497646270199583806868934114730175458054721605531728132654479646182886238009815508561674082737772837138327257611535179784481105953946287236950892591934884162481774079275663755191741808037536938350407990649889357750888399453197366239512750591075269632029170648734228808855315625846311882561692908217719518296767267610298620335650662894096006430981381452395967496123994568242930569048651003378118434307150081446953232399506277314066352016036927523328655526084004115870050078948260534257987903364378099938089660390552661532983495370771859325440230777941634382078012080061618297748661589337420262314583122624721851147511637171605863566395678196571310929578987113741966558338271749154602572357900659469049955005538282968688079291215491773189406827472044924775467370118741380130645892900649089167288357880609459195322582836844576050166905233680641776562009398496940259531239062568006299756068942761910009640738313169270471196337382644220653323456243964706690116628192997901396518869270242104930938861295897036312576038412740661446390175785814749524384050434884726535867189002537516783509130044902813001001813995931919124632914838831945960790666187180882351588525260444865985191628406743198391021505158862150316049256116701852275946191600742324592678485477069288875990805945364004250575175461142607781940626637973119881272922197517307786398344864743565377778873482965301670319415744413255187310629569355625873855391777741993741137636427406955891672455605140275253143454855304929827501338835120039497531447613179511988206353937494022544276989451133065230221271653117701930641699393530630627543065091910844313199490520557685772164374445159186761223189258170036273088975305609516013790185634327077317007710812322364722181273851352119825838462780600141113393462670448288912783742306308063302599131287159029376489124498185186494011406927604081203356570436838258870113787443370467576404298038779467094670881180262599423751227547775072040550618167686949327583769807084735032201793706817360400156233576244992994026212266215923429788743768973875701532628296913784048916336854474167338838714092915344886252802175688442254358000169467889753703365948051929225097586622192517966930869545847446383278097909153539521106594545616762252566822807860319730827430559205297278610398071591146948492139589514240572567066088792562156580455390651283311096375069390875903259955363210287063948927747749944837572398291941408618505617585837959107814148637134255405836387902486994093129949641446182627299470711058632378236146606389156017612084918884738242359382347748824643347914407248320413330156217256631704041032618298538095498830465237198292207789450941698333587499282695626862266046230713367274562174030799139784340493275072118767695032851127128253550312047422644153249199544178141989075936778802787186448249741902963566960645831269489468914605614559922319457417058082795262183024943630739951727738469726285206504212469388351870397522870065854870150746586404685524224979246630685577330554405318094393926163089832720745325349945059420462325292531707990961978246465390471838129942398878223016949556963603317301454396895396213694555011492351579857730010138619782719738535655790095067213904792436402623059981721111840265535376516372631085656950307322851207172638613011399011865981550854271879905493397711751547549242664683246784522113272959088413978430527676089849739640160073531190218958186569718779020951842213059861466162686134282906085433943787592321638677858340873973859970866972724552121268669612536881135886883325438529354092622828278994592361338230194038713437601408128360274826798632555782021485670384300589815674764178753981153545352144372111578006417807971038714579986818373928742923108050445322496292446356327217888346985190612467779184098220299763970149219045140988093279619805200713217938020014407532214495911595617917868058668800817852233176589511775194225217049438075187284456657224778744507152714579570081725773240897877190865942866376202346893749196698808947100634361100563246829362646898866363550937796948238261499869363006428807217658273055814874145004622029357039574057226146882003440592704522270099649390961437494700714342989114449156032035495257092148641254337124129940653195932388192158917254839241216202436271405854059103184789856439503160577194841364149930818228738294838967046952126304389911430102909438355559539132932672157328342481396113269338879849674187009517833245623495939122396829195267718788307325608062773054585516223581643350334916554031627902405570103406924466432662664675389810457374149931651797600427450391096644434022437211878007121863706145879299279024973366962086280977778833936805559122446207103714843482179645446672192881085929901176093593265617473129267572205081375829305889177675724802203542973652144043862960624720209047813984993376558089693354155782958123219345781384491350507917275556893085311108443372174725018827113320982692794413240940561754307300925119082753886025592751114568000619001677440011453141208512977370315047207972031933197001696530612523857033775479541200766153849545425057069709438766963759062820393021933265131034973182917869804893070541885922249629318335238562982080355917323024453295124578611614857070404887815974560342739859132587875350318118112222061380176587253133227280991826476968566871931407951044215268609662672545752873736812507341702679150319825861695206972947431100323989220057848390134756477955728590361879622381554870704154401313093148510366644152934062443590199466164288979186550818217394738714244128681994419421083604762617580786196066616414131351085981573019401227946573300169166031270335566853619237664623032775244223809629563609950697962823451087719749769595273250260296210875989915499805670235858359178038695257827984022140671922556234024991538108135663847542296854196737303501216329276043559346558598979775666690499716679998115267265823033620194487212876945018081304016512980540025059038735834223971464076896852033901405222271285965643486167955359260115750096922696250858585250596443222220385859034523165400056649065476942156695021736408352376435858562793172164438269613221087326776602908230226412437204740438072658759662479068174509259756499707762323873754227637374508304167634063767754308103799893586479750085156550506882910844897989599058969128713832448118140790886324306705577936239590980952688023489202878321763700992789270509655194188394723980099836887173703394870682966508345057236370345430230591301339673298264748451600559027655431645242312420928607735334150061055732129186302322006246290455203387019993734862906103708812881991725175554035401165120223014224029212968452867902158185885357620848805769019142865123122724742904290571171771156410125492799170490901965328232455563152239819540781431603632654293095954239443424803385667169765134065801684347771207754477547607060646611459464033883853658675425052611406501077384619971014429774324639273301036305112564256776963826276416997268463980673210533788372177590171066747969801404996239894947358394362548028838765374987540294588437567828138154904925851174258261127068878871105798938848562524593473427003486107134131276906618010712272539884844753904960506846736966729954256592157249328910131455023913803696817031339597658821455094684650796924485989510951176556681024696595981416973144104677530015233134644773123493551237374604877967700627276256789180537521153688175608558044287692807834842226585417158342283903507037927945319425823725589106206264820223886466257429294878596545061825814194186231234969845415617196425112328233183495702540222375227340437019429629038512327087457722247327552480260952856515624779607465229233817992235721728197667430159150069765043609275255099067513423042255479775379887284480926548955072010136319711219012854562316889764433469633693659619803734752832180414218143191583390363732938414527582710617240011422523266361626545714628830513353479932414830806112395490557114606544123287002949079339487474813007628823413268123030248734812524623738908608360335976134704147603751561719852704228924670803954456432205435465500258167280975588932917666285139053819370050042679662229375685201632072242829697518011408215917966616791209463135393710273986710220095167367080020249865393551444750619791526618223579745410606940397084649750982982767876895895543190496563924844930496617308317183369117374227767975352893746589302121029330127452262871909991600001579443434737259641589104451486319477429400965294561933247503065054980795577689810871094201786354112601553414787871958091111023108436536425196197084601552595141635095449048825380545039099099672804177347420327440616598893308692338763311643422894918000910047662617900128658449108030304391060395720020829212742848331348426661787801204159227130763364738438268706924848645346564137960790045384888896358610566580786846115040562622682613755789857802159613805995502758703424317829243802887203772481568274533182530130673276752189272280819651350346786161692495961570509630902763938292712287064642519944550911478782365482594190664435534339635629755491032209214649798803092984277212578703458623201467533140084457669973697531035560859073771304946220896883929823849973382229345312304486408935949763324327169860845729190676418731122890131893356775609742330382419083412468455018541480551619159490755153303442212151082996258750041286062479327860850245761114132205561424336087728623286124843459612646488096255511859535411038988664816628691511645387502713282262690311091012807535196993411146264724674097776918167403479011801105585451366460321227368780163704341689878653555082706529637907463287676961359978816221558449759404489411433754164393731127781024844487642504684342332184656118136558600766801959969941852331818927907273181155690672641722077712547283829280754973606224210271479554142797985479807175024470457304714813616709672492787155450395053224621418371999467926602788806899144796824162502313111354789736867301225598147597990685371225353490161741741010016113995837828023544809976962174367703045051583706608264803890595750400848976376340735734074862500255744757593271384060230213864249580342805930171199131578837562992518468124726514181065792683933316540466216874628971992677404811276067765331725946357860147420467317297628479774284689155655051636532764864501239250167395834384179587160066831357547225308326554243072891626858321428500685387268418138405312466303858373683651259259941177408737449605923465178292617171724928574571743621208060997625964947276610200753953593474226068091717527553480142542313377612014103653280211318335242455715714411444494900939939316517051453538274552475163699142380059896219905752328668116136370982735175531587797385935403383217673576836363673130964196051695710273176848329613208259887089146529799614753499120438042301042634263485359197327143586604071630150981824225041581778158539879736221277088881635278095823216586000348114588454623479937079243061659617533535087249245790086055666206931785328677496808670859455452301815705935713118004728616240043912234270718302747262855935097849792908066776788857858998492507952208794987799459840923161022654685103142903812707894190483807514227047829088296834144222246563087909186593211139067572396855466526946968078149269941453075076116780927999579149271119930919519658155618743390402607003101561099601082721327352380181383002131094127059843810653633552649265330206581233744721798219796703627203889445011021848818698071285328392851002752746347172926423624175867505833239841666847640318013687189895252248142188058533438682640484979467568849433025707045842169718377146048011606791772601129590160554276618891302547502100436409438730989138871510541808982814083453540736226942432284685112523443193683577573945073331439573169229298516201904443059303872220368358326299124695115414171358309675965885266318933763170814380278092785965185217623672216689914070865800296795205990170155967505407411681259282567337638548468457461024846414012112935388907195283875915249013031035065330507893794062356084290611623132719315390756599529453133276184498392588772313783969567241947021511135526149735946333624483971426833589686277920806218688665042091184402411673346244234368467364802385591828197056832743003210533701448218507298267772156984254553716535427560585373259024876281611329244532379991237360981578241155719809854707333459938340819228449143890053668032697753747009265885540309420384910239116135536179122688245270704257232429155418980984250560445972133607161662442876432049913592878907154447218110224737794833124910491310569427488918537949700445256942758446118221628829233176642340913807347029369272447544180669789645937018327546380081064789182396620176648548937252214107785935374143857374221627240645373449484088386397332138872047855367814841683960698941743873166017826708022200365189598886871076350735610797760840951966601661400166050110844017448331536035404722641559419216441922076584669151190062248815051925543706814729673460640465434488929473809235693463001985610367823365818594087365570707838340788983200639308372157235099177657709356788988211954531971915118675540172522205410015527536093629951826612527338051975569598785706127861926864281402883047369239941914656953484090776728267818588024220337633330839121575795968882296339940028807908942149348572919839099513771194695457305958919687484036404325683685407330609541359000236258450441828732403943891539407401615516921469033501167957791676824214093471195514796509119836617684050455076210193767074087241313695620390431298259942377486382089725674831948915143898343215889288919872736806711273518224679043906829380146056638621214352363642508668530165350712301046970718166307560757400667905132463705003602587352592755677587790971497193312108310165520900910468437070180230740768035638124874504317384927517448197729983303917385696184755157811416448056097447598688552867011014684529591849828189982069086572900110779858851729688605393637507927908954645580968936404145868667884562544239228285605728374900401405046873241800552760532392044043031831618124290262104916853423469930806349246524368219537909243531545810680666741160419333186759411327361419825929905117507143410992357176894553035900040226470422394319673077272052762693172114446967452017728710741180082697491051139682015544557779130298428168509643316405808589439638893872738541761220160216930370740141879576075719216737675081843937218056025569649463101366595839368947072224054308852673718466124189654642033671382541683908592484225152579967869650329938145796769963655531979328697420359537078020806218394614003540312024315185136252649477144739705524193561512925539309798508357225251944961783592640537850802348032729218153913935280892522840076562587850008053533056865199986019548322509215745173027821126745723671803973493504984127142058940472064257700625433061593186571115474085671632954212028857653360765877621223573268345788798205113898043115318216336030017120232918669447583940392211326228447611956904140593102767153254911974744645852188372331387882127440654317328604437599843930482624739133286043671557949217456304715111662167347760116364188786039115407916034393533734452585009065708502199866776009978438686539768899720771422719802592611574461883487309643502419639653213483168076880695353073363782930453542738689040976531862815695407775563998294307876963437377359023296329065990864065977057816860988193649130236456794546397090640035624049104754098473234578837198683674266947866948803432859634614817815158312906007139045550384253716020744934744652693785929368782096946783641312280046423035021350716617056944258121861906386427342761625398178128610518760971486371350561561208481679260166457446345329990112769720847259286245858752751340289677833524578384047619986381812483561768912033536242454310775118591561245127153781356315608870776818913760965064855155309603871863649768402913850604048959613722924374903477962417363214748276410620406542698620032724477106523438607998329464712976625114636956813670901206553420067842282672161989989173357989119915526035650403077516752590757932304054405702439775911262391376365076212837832076864652765691127399181408421385376557743414444996899335191405307472891628613729433252181648686947948406637380488741490934461439502917967885986226558299611406698484235207559664478521067495279964262604029023149455792913290141027765103893054371834750376894638732607374146190330807905622814813745005943103808549773031346022335773815453832056560215287635246929094823180240773936880604984049902290282214315272130987717943147914836163683463678856217562291312725499618824884125679131234640305703718714332539441488448743185238823193234927580489533258579014148912339138003173184342793733691886975962823228581244728320023096706667625473530634250964513526338127017960661491819321385267035441527646204488426240033768588805278100123268460380019407367872473495614876079953674139592817106300356208078188894042325762825492629883907200913680921332790439453984323937024072193858237916535164081788175983376189560077718126273648982598812180146739263950442776193821757854065792537086367936075311051290117760514716594565361281444817451892472972431652025939418973920656419147631033613450345623624047244704325549083249928246735152092374758535766198114259607171836456414605370116115955506096827805419557727232396634492861478039044338183688810770702259760270643824822620204856982913964789881756628382699974329076191069969268099873274288207509568434214237723077699584968564742535929919353159006359105761666919213189948712831931882337083823358799139503415893362114162399369492339189315967393527275422029812063154857911821617110633510082316309655085856019846479307247282119622102146267819047479911861008761852363154946181414979248936774161529167974296669107657455540681394210004076820471083007150363288382103626011174404473610783307235359866352404451323100654595270284816510556721147935198249913279915906891350959363439824763717624190909166956650176712227247449231740466827759544891638996347092199151430039623803836972950030676753873126106877494999079377370628339581491946932141631650188174751903331426656312936941165978087697278411234006279981447110374711390039233969661922908641868522303236114494371655525810422703112621935985038025624585197588941616568071048127316248044893483693808453997560541641861855534405578616839479070590564448178457155584001546080358323505338222965444622117217843238793034413494300854734858393699414032549447018862757176491292310922878090078713319978455433417223360121378420045344317370908767949207855324068617345903282693327515638826622145028070223908264704546823403795899805969682629000365372908114657191881549773327268603552901690112669824119507109709321425964090760266246541765831019224710755726382790429967678034574887405118055798757345296844186410978651393129291862794356160039461790200780540713366267439590653309782560576203393333348307235138066246043842952682018007060855894966301827910508714780777128486846354561450953524347940357625704515291945814163488702918236475894550650733206638364487056554670824596230860896526958163187988496608928456311295532533660943870506971330948125351546167954992808781624404459284896984397907976909190505284266962821821909089653319874551251306104484337136189210910512859612342861254898499662055845321974312394469609027853495015418385875161278441454027625147453467293206413141635157648079008009615796128572141204599340615681122673305411764655121811106039499790869772682163595420410622742645873909013862838074631683091596432197514270277996590560070924609750864475950451992540775418359774961697507550079976303667191710573931438790716612300416588734092210112559452959972420000199887756246969328982052418329808800004987819335149158812822775136175781901993521303308787564512466929878982548295720277330240677153049661265549712281415356443726617698523932569060641615066422166589865726974362352811054873543718191594054429271867234696730721557581411378898355363549190374028393078137004084499962971189616181581806947212922364007505816360368793657822255893757008939234955273268360188651371839140685028152992896295414565343403263282511687393926410964278849377133385210823831874471012794790908289593139323347024206061696841239103367799393336343285991797207295557615728404282013262148801102896436833613439701701072364224873364329975410684399780863587593654194782936391313343258770207872751547238638861785816456617319689414812162211867041870004659932624073412770077893298193681774699904853577492201304127306820835700379834093109809041042016895314697400007022951873212766663700279684478728384741899477074753085454298469240479227602724423252521777826858128951063541520465495361365578897595223211597018985004514972530971564553748552034681402105923217264795198585110899160370443136583876716737336655356462807511847578630719261850993861156004991096557636669484544090980111530390915421212805839123737423605017408599177947042339529505372091080146890887823307436506326502403629398157108401633193879582691191587889533698457434707337840221324517190495400071140835428568518651734079199554864411551519669427428974540821511966922444731294859206466327532292995746452097717290115256847767955846617064064427982941270621717948594907790703428418469651780042595517347370488581066898180096877639562723320014841659925671889249268818923900016899684191751937716320997509456611360503629454053325893284232753806873873555474922616701924580339486596758576185272264119616296804852388168890470641587506640766940163619196597746227013798694913334831830585502882984495330364085098447254591973591788239011899903339668329111961151511110700642018203799772376760192358377179846548025137277275545950120361331512938304309626542480758706984761420587265273031274318597271873187543653449671758061179815373009170670348573383689805392190446981660065464671016661252905439366588080355687146091356000094669174010257945409140588180351205521894554234556701767157759905989184150826992837060338154677804673259815053904752400472245153133728925727476528492527877158122298321686366585288392399120817121075711663516464112778983290663873111472845115765113038187897292158202345448917561991004323973335280350689495197755092722949660416575434759043008290294462167623058068068771684465036949959758544803605531183408728135949875953901387327303964335759790104119417592626242894933861461170757976239562937394648635733218846036363818579779170961228004611723934884477069646069819920003735987513142356095684926837062574489020118410517307540482414007325816072669016118772535866507077392087696354431273224717685709763811581218124316084737766299636520273146852711583058284515975823963624106652801584875994120087744387982503205082571893062648883366813312088248594167031557094413950173575103646240135620304587630537358633741912812986556226184769374471431873548999952489014263370004783736580413939197990901475764804927768581928817008941035282065227423049867102911851679681510776670651406005445272562063362787375458950506617084173526426798579516388287137842804852377842099418283174464230445327175673159510131972335969784360539020313246572884872403184975898955270510923835013665688951464853275385886036733269970662048507770801532195502944895428849999828648106774074611334376497830270241336863896210868367882163970688452751795221289716289144749400535202978083831112216666062779104519574245517327038877194251375034483526383163417037761010891628379340803380215219811427264306546708245260977887692267744120080543386679130005092797720363290007678489650520149860992265225071064203028903673482102008146559893567079108267635520477883915279693989244745157717072064267426155829487261326367003021627766041775192957814870346014030532177083914498301581140674297471048241372925236004506238709188650379248147339490416620474389445935773738894180584644183832884775634686122067160461640390257078113803911717939292852173801387029274113636701656503491891375173993372875543746212124215952507343972699853007010327743994330436202362308483857712124552722918615326271753098520252386742896491326089923734544224965274849960053468747350408675623500628331448154609134810512204043580407092297429859295186061576668669633193016055170182589526773930881754256383792983227699906970771595171884788619234703176540221125325814351528614297683190692994934832502208331068252711371609223930016587077241799902650692520048470479627397109604360429870296332917955447498094728071605277730049680361484663517209654229400820802244983679230273557687214155895198480204233468708019964273283556852624050730481562717651717476197129076834752150372320873359474587210940606269603249655707914691816783989903353064439655625078411413096870080537150252595002811452391344302151347302847357047059024451122661231765229561335041844059777312119399383949590000931796789998585832843015510293653626106621422806867571118630541015897622617026304809237751290240647635285348832065890607573591345616015961516828641837356465489383251788636383245885038878581994312913213802725778134329189650074600595037436348780405938020663070005526598392274362899283726663435992361302244206618962316696291260972996225986294082188445330420245166331771105527789962620920929524058299605428176868722254037362045541779154421668403279138325601404787336680215221711053795713206513319502183056739346680306727441992479589080144636129833606285271986708235644262502707013874918455393064555025601945226281511262015857705240371919688260347755194156287903009076253844609230957470628848583168854950335118012323919790720090387168684442002348945379603209261218047867489731962076458508755235699963645754083235902787531515490850659628623316836044579231843755118973125004556253931840519248010554891449419107803724031370483889809775676480104833863192192143337492397058357459121135715837896858734266585752006754948240853822331115733562004385159695315369904779425641142075031329053580373614765423620402353113873714921846401972514590083520054116919469883151813004235708256708794884921298954573460503724928490537298827494676400786335492648380965368331287513837864722459340588177252806425734467232375671268640005962870266855011498069130780606204543303805888528819989579842638008221546662913663961201427790361543011489337783242381197847807913795031688203638567288554720420181928679695683857893066723197854493752741432444345697622453409033037243193175850044668308419905013365084030472766452404885061262450457725547974945523969389334475853492500316676197247534101586509986949362544959729369299483134681214393768314644197279879842892832999756263272258573202480964693448464593427443525844975471170135200810572349391212826081630430977930036352874015610263755525097047278577736721178227033205701937895337411291240750392156933289444780554969036144362576472771151231285731573245827997758812763718960049326981506963841519955840957343951028277181624277664851845999585901846472187586708953598194907222578083432522435483681392439166528108825633694492470442630714372974220897072904861389118618365122784646286976352806806108473367450851713975418319318613276590352946588681834952356757162874268614081410993003738318655856740719028431660572683277084106640506109772280358071484399457203384527978117243422288610316241473503541510680013859716576520359338447912848508677361019390067706758988311556000136712303602624213022594631308024936425028148408441496802782386980227233883848760788555741221946701100723762831800771586955300881954419257221957315944112075706590621360101728242882435231897216756734641121154918413737930726711293828752035206939432498781187982550334607925361038945121329382415691120125453889503683418400137735853242074746906408914354873147704409336433321543322058673199115802115203302094759579726374598904214053639613470738499020254660214068247472030266752096663178999807924630277450972361568483640999067918638034792060035230214483678285795838429897152392107290985071746978562419407967188533928198108374561991540183959576261920066509591906103478884285447274880033459368061119634818554290988757222344453375712191444059914743061360999524027487136935291848096557037188068142965197702742570608275750617077721966115636094798852952648063905027659774959200047919089638480257378717170685279077367951125274886039239157569018350350082191037738435792317218600422853616607190675609596387577409805345710860066202629258455022081352169997614903126321092036933755429693213932906197365579106238695151186023638963327352412200114650329549450608950899755633365372720267841256360263105025159996953531188023508939311755664890464344368927695733802164769465744110791149371035697571851373668789308568569515243106487408462199504528764811603617316335077681812503705491056906833765121957427883740092084473587088717172831863540537617572173967263601757463581025469010795018444875165406984485300202934023998851730330257785603447493208510555629325875971136658204110500459626853043681694589836912450206560430119534916215188053851435156904604346726603259864184890852848768198528493201848792193032840920257208714667399724234305652082613928472207498116599445084524901839525228315633809823433938758504264766896828285745887941384402940086655930596373309680122758933124330555545477951540927970419408735945071496442139158472209922337060739418299748768852911184011846116621666193477094128636672440424941218955721967611407512072326028935098908284012531220859486677886952969287612131114647244649309484663486217475094878798285407692678703746406266839410796022375064702609636830580773951644510229517172283774922846021617291033309108219749041385863835994082757443313302293551417954584779011058796558429750597814326757865708389592023205767910760933465344458793636156678250727999268900935405085268447376898774836537019454699982586711432848703608364138559667584930178174502590496388181870992643346050498836768088026791671936487708276229038231061632321628873952119207027383421643908181686406439073303581049968402489129251496911477967041089538407244624836345240128938861010385733734611322314315649721996721151983957917878244468324125265112319767670035936360253275587862157590845969740048668795748985233127485651637033482949506860994164121623196132365559859354119243514999873866705339834111736933854588400031064895807202639220622730022358446008287697291922349931341810580573916590709924570416026873151906662704883019462916629563427550905175144050664157757007955943400840457204211956319368181623391648950545350322751476854466433601636667906202966252284791420389807118700414525478910380222801752898204982918494579732059847297351761426729598961861624742519114359110589500394865831805680821825484078229862134079496314918392885049991302082873057241787389040222691658355217714489960529697737531165201117626388770285970794010147982901770902628901452771750508920693780641744647949015897355828753727943113400970731858559612659240930122991954683038612509779855653751474900853699629679425032478447094810019174093695137786368957588892499492280669199380708810754082992296781384805680952657410699546707117059420130482454289656823007637168849672982073959837454605253948336226571253302688566389401766516403152759789343091291595736026803172954386620760230167572929415239104400337505811415438151041056580892714389568349365965445718696340382492686164672164680242421364399826812290483135124168498126439178427655017299151481238136641002252004132305811328887577445061135462170538398559981550145581535102307451448284328742217039439613363682006633402182548985904432482151618768023147294417621153506563522522192546779735623119792529700648450470254964435899124125327384600912741244199533208502568439357678978627797236962245192541000167127069093110708689351095786951747221355007683423994743721335317127196021075748802132814882452223976299549200401519372272087498494918389539599532768951073938161475634906908021330212348789972122792918456020467629406540780853914650826691257092097754643908948592224771213025193171284490570988172079347309929759441473571724955690022419264820059240368573380317094909402243630292362429159361170325049228848172612929825063881048202972551391292725386887496135342226626739554585911559674112490024498924823225390582940051172606667802654358754117793012514632855586723836657627651639787463095673893861738895463519863647734483595017488769669758816276256086460741543272678560728400032968694731703761372043586693702097346386245520681983898453702249696786029451921731221320750822390373271249305190198435808218769155845654658028254579289454236369139046329316040559215111446504478632550723636939694871749595141720223845839753877400720697452699972571158076608685962475324440167712218829141913268906150775893325258030030121984720972744859994526983338434757898589710148916455308333610114641990943027626706147160042276282349298088610140090925663586895220749209398705802590498843689654550371612287669221319419345517533175860903606935824023268370925882625154766025187806060012896278516765035714136259807229567092262835678164719086182367780311775600253974505476602752587909602861157830530892227999744782153896159931928479821262308603541285540308627477407248335221929918835513826479158141025870506963834682089181376107771335569026634206485443154729548590672984342346230668251495477097791646110311197994357124025467442319767120073650899426794200709565039853665231112352306954477114431187812403501637467747874307366337132275093318644161493027623080085792849270767298293194023527151837419579384960722327025709128824504358012784028946266429142783185086106041490580441619000050880999840438190465641598879336903584325085774437457959109915293240833094960328443717124480284584148666199925395882534641387038291569265413447995007515361999486651179074844297299009625037540467401936712807190823411471623565163925769449505409651708458201082808850504382394946291023668406787842267347265795006585290326253149218516320196849178303038587155695270223313861072385913494289666382820307509123555180815571065170736382775612967012875758837713634568219443731292114207110110185562495404389610069269195931332457518073179534865070031903408303765799544408713796463932305794637341548188755590212966356830214852737142156378941393198567989372180433590460641429465656552314723363491954758204157035406652010918048575746985105531347247424379858775534769140711987883329424697814512352109589042118582055207263648190807572803325969061507513723623058212215798278216197087907057002646987988314593074393507227521022482617652164637458053337225581242705785099110002914159894501064746527577773407748086995695971000453689682059788624285501704000759833073126731489617471989098784659049100868653730521406937511317895036300932000018817042897852578459556836345485341618465724838044891646594200560488891274145807652586486000119167079261066753523766569185352730289911718662398094193535892584617094230487904667049075693076317145954072647590894694698910219735002875914083667664460079997822914931950303679353351766267235057795940924431626707738811587967624738511691905384597043746643499621481555279849606327230334159169065097178365694563465484423581139410036169928910780378102242450634051099768558456350274407849722769551919688776183819702382666497200207370591509008364614441787185685455306509146185611356753281627199455398036761529035662704735700217516758798726312703680833501412245604137721377131530369198244520133317242484574825779143355595745474207537060961068019505355658177267714697931642160865440602699293295305105349651349791529502175135647944148068534845672652447892669901931876092304208925947241161175485509338477731768098273714523980879370095807700429850378738945640014185327585096928187447747624676476068315082601184512123518790179750273347303988683644127362863672258367797900823250313610076396293115373648108836077882423863973558835279903123687832769460729422543650531456458643760536500716596974229579576698630891998439435119608905543784422605711221661561551686117914740947939556554043479333760451961976379275784303556714162876686835148715237368947035809855472376464548711948562898745161147513137734843862797601731066574954395427553121908585478169193630601172536703031615711152901788497251979332323656147501790613230546342241527284515525758329213934372187092516989373725933490820992372649414587339019313857797987526197805598331266341392992466170279496629051328376348501912994154711288849819774503927119768644185186656377106336595388272011693662994621427250669757784789756848834451231000578688859477251790502194527036097717664004482309185315013919016382693016651642074957857702815427963806934698739058220100251411488146376334766021364675931420187778165788004112490982267011211350988166941757142387161765743345554460875773671371884923760360466311611408910511237107615425037255056828308867303651549840464487621947399775791314017903308979085332666951618773282705016371486907667865403061485447488741586218273809184587747476220022954434143449843013561613052834495647273918424047148294334571814293712491615523795123649246475898565898114745920079433777614287272555102606348006329214591869515735403192388589913970404607398232559251590466041807458203411126419475552501594382241998195811328783458756784645775525086454286566105805381992757725344242851078277889858362945292640839804681847827621020198124000139980182754070160872101683340169185072556121220993305974542788592188766941902441102319161859207717548231337925482979028231256710353690979313975106573003131622843315362798042971891618892863699172792855613661674661037787154456323038946309905541860316623560964513918652996587909504038472333047112903015192624618124666525569039080912635951395857703022838504399685842981724475102033856599959415637421643281451851174089396116852604401079066724254375224606391969026883949121066421675593772125432703476280028398826167673969543740087556045425540020555577339131403296592355203219214585605431538556020111573489992013410717336045737948975305271258170652965201565656931941107690476076042500563689457010476828983555845525347829540321055206495887076226353005078626883422903962078839854015771203472091614195020905625365413494272814271401030805749380714267493887036673256480234151191005887839480943988891950590038565523975226871322993916466825498810669553469443425036867948860703786218349203502563524086360321231845717209845969978708043677537703430750367011978970070307187647687810648641380960764743995254279268927420002503000516173501651256373769402190880098401074522774789379577838809226690914359063141107584186190875248017686503088255902649831166875869191159928284326218175596926844072459774550028614176998162250297968501431807776867532019172015286806086134466029465436678076309470987550052498615156699925745266989512239618519534621679501319295925102809538016746202181357721999376942214655881297190499069030846169606873244492736654797604337386642015075265589583700281122205840676679979636244618897404134351459671057769902070238896213467113214831432639620880719708158984628396063945413777808564818354423745658669184588238970336486668798961557037387772629387040237470829658142550655319620757131749001640505866638140512926165037363814015919866422910635010019375937660273075901250922514467418655422207925296194178347298277649624363508415463002817306108539189054369339241087751283501316184292164162155272450036276840442553028994746558004229263323045725752318907688114495197246673757149180268601980240655825006752557876648006997617753643037793003815408283854099301689369186001710022834199534141529066755157804593537808991446100234949337188191756853390081737653309496667737537652271934451900723196760606665639859163098463763069955151351309577271744071166407523422352156781550513822126265198606940992621277479778048952128929112643982366977329610550650064480840726801189934544175691918133012776964918653160918158995144506385078991678186038961292691213460341150004974255812766047778986239768389949999346082898245746131184130296761317938851560896481803274241388499503437269731825121301581603906758315988882103633170094938180234569600645532162353300824870402514520668241065601987915240198371227785024271454006266547268112620621184412941988321964858569764018426138858305135360721200412626666188146248672997410847782143792018500998500148145277307390333328292713017860731251588172602156391759465589268388506514278021974405085850729515286504636800945950430063485902811494331419358603943708642830216946125640014287627178101241115743824001497837116176330881987364662225529660128983531358180643063108397622743408981042952753763140766419014057185836180654867266083856865122620154396962742940115900960547035286965997981734981689236052612209901866795894224385925933912790850104034662767368305780523893598545888837708345072283699789243567924800483440922252890285779896744175339946919096503062481042803275038094677974474172278412116820916193802243339134791853859098757383278097005750737114157201198271230076626478676479509724330847211940916827670745435472386930134531069705749491335782343467853678658479677621670541616780235713487957327093935125515275484212558555752306124241254399756837527911774355742155577253158915032120341654390880823358411164191760431732403321659140151239683735886832306369315854507336149712155507561484903675967829930496182673123253099962031309047504902506282901657116619826829499725617747407947485702849858503298241684135865140549589243480889093426720988253163284824293459069170500734797981166091259500531099205021259816466445648503159516236159358560903853832077468602956661058841492133883337798355458480082973303076832158265446978119477869098441924514828919669534295838847826459944301043964880820746025438038271762133604862569256365085702643681760679961104500212569429704397406553791712458795590959796020772686675983094263301851239489146999227000967643992959712028579283831416684428208450928356316256296875498033576663221439010856914963685908865452417788352733553086996966540909810582207844106191114992748030352876516730233955998000868033079253898801134645422912327793298958065132820733691836539409811655160484594049514736228267564445989039161155551255786575386748595963474808920046467500557504686741447894774223766478810808916465911027239910722687157597435385328739229206426432384772088261544361377385224072936384323451835319877048848987126824361508364443996624020103612964203687294269998362374911949989245941407332672115950903097641299550120577244438051497379799078140413183678007853598288721426512477529449363713280038399128798048228960379570863462874682591089964973633338735742988811121299203496032652684311001104360653572747434992271645339544050676772837563962530298823451826132788138474089256967557690598470860829300147780447950296335507731665499547443183834277958976393226588362449729215508362760202889957720360075636877404446357668131253553940402144989245184645765535216703810593172434673186687225460612517908872298732552246209267728370678841153829671437388652475732525741340608275166886671027381507103733236324104255287041777638544448901586986907955196250930821275100968762137828930431833779009150395439901603166407356379490686683125326042315627063221443288249821965567070922305670117423417400405696420475179464057963524303301996445142835702142992121230641809980859331680358163441238010323418778383666479010616816816474016047736239075695055708863476709542193779361773133813534384528769579157156077125896731697216922726705872001459640777241617140205528276738601711389444417587320994056949474655557997271553697297866609491293695320419179611759021809546053767079177337059342948563550517930594987553117383077983440690481193562946323851950559699173119987641281332279192804467356038402216807122488706138923224932246225415280834200554948857069842782256308101061809759507650163367716550778006763171332001593181605009883254957097521389697298645542391788585884229064802291744220325826508481628793049270699028627467384226741572309567608241914215456876384338029556241224210135220762273098604582361337434399011820314540075851177378912175739771316649281168900321233950543801629218021793991163119477986827014727261617080320413305215226957941721954761339492051357791104763560140406230064006997208872986476270577621872666522010616485240743635227344302227042712545873160264843277607129816075426639906802874627290104599445982148232589678700713751788403516139400643798484124802839220781724322819762433597656915402142955263036827196077952885141823801069627749934436569250783858557490555307787813081278932778573856851331100307809381728498906292419463549246020138270061753937104239532518314116442534294298068731114180934764991565558218705491831951201964642987477587998051591148018258523598169569830133660359486826634842772965255326742558393890259734218648156296818424023763934099881212559399290197852135267948009710328602592401576110534454291129724975535050985254698200682303564273714367439253219688870859577048738879483457057406865299175776490354422598373353591286351528773307240378298692546700932160265273238783052983974753924321162618244651533989410390434695116513165555592027707272402872441931155304186803651070668764140748618188540124553678612899447273246453664252690418345150257310016168145406593782407114093539843478576545964199263633694372283499999291140779123461000687266585278846660521916913295132410351630127974816250337030142355471652689251764528552017696657775429201425293445862232806814044637152062163695314922070263391763943619933445127136568793316004569751254854009308926566446799081301175525357151839357724796907230005965055310797820586453514200167096998241885605233030216011825399003600960155569755550675788305036596049903456648388426311500329560372851467601927288307266137644531157000496054466220924785596965854361846944099743750975981774428138176322530435360422754367784644674362653716157093701554751495761721438856721722383206913745966982172076263547029949704416559656769887645689405168267087821971311763347960761877590236977392815326233602212795071142449258356806636778274328026210363092654011038732344845635652256688420933970430108413273462302763730947229420886148511762931215210148628029007840410828143734313485710002940942148841670999264564231982959669766891898546011957334245644099730913815782986205272514230749889846691155770219666373314754607574639831355287306160968510260502216021198479345833434046083212056974587351971151316998400860257853568728913010347272701341732309649922558307643730810963581823672741705306901896368824502800149890819136190805314606163409740966967811165719810372994964046414047702264480302488904014060338283425575641783076528525954352489575933679473461195160327526583165599795583808946911664351216619008206407595370272674467024555845136093495104701153849899283925964930014487264091065817101493634542023126080094856018576617790990494280330572313443038726412782137761138114207080235244492656406662686187630666732143148553755238082203090348676890561193819631878819756845982283495831060038886996355442821358884551026821379383430721040412764372072959645670366419930370339595436794653909269311864214451144154668270683569262737727248652302646009448019891186041321797919897583178047422534819239670759222886736026930222886324975836452203967513012072263526051049916581868702568638221386181542215513064660916074294215535219352274530466782031942214969142432998667906328637423656837346244896475820971093055810796412068683652765822121863640580804045397100042246170298876549545199714008428619366763800587296039393172328804984017371806714590234137426699568154667367529037579082456455115225922422217082627403459940655852846649702585653336223560431640038941203061453670992492742211375036117624830625461913693136967971361327347559919660130348009957232606556425709500848491270266575895013239650047733295557856503796874267719206825628516456382852642831908319431884546572241714596411901705616104022148259164585591379011829857776892721330296017954176267151949961725663478200839020008820013481573168057457439273993334343308325167992035225202402665768304009611268489532400717390794962257127439254509629639884024979541061557555651937261778004860876148180437152889367277861933949221887323211161166062863243500349333248980514269098706532974924739022146698719089564561401273325790089568710113027235303990054071395337637586592362845184220073063046588208885694452195443252801167664035525662833188471351052990652718816926919437753846913656247651069361633473194652278858671159770454177725631320616317855545739763316290065644148552432871987335405488695207240730574958639467681873223929961989338032105567470546193986953195846077278402355874957570843914076167690415745911896023025442786497103980075669376451817938255978333062770089903797394337618964234082278218795243403937345962162349442865961384730337582427627180572724076273176485308078177539587689769899643782098136383837518588564462431843961851340637671612946313088647394942074577916064559799726858445909074815472855920112395379417682266966869963708219735494931337159976382054284320602464640239936488275035799821398611381232631322872135861178739252661702638178947490418727796211131610408310709782227593174235511041356963635759947624291616340162075054208854944412172896300012219518707536439988819178444609461773104729905812683808021400428470741798921937892991059860085564380559414305573261900092589601800159579769913326690580845213684612555810608121432734450768512502286699777399393337164010208083066035815187704775688228137735414863353168286704224044120232627368152781624315614515596344494726735196016851928166060730435565355883027696095209761004976554502098062575307485537042597681306042757990681737619226879644138883727354169752979521750588688844588014833535410411056263782218766181249600109580242821530161573552407064312968952691230249126580707289619914846059234014141505865895734394757934437419747970553769989100872629388944946494282412885369439644604337540545774341619030832187537633709883051662259193512951822453642312411950529462337378186262537216289284531301082290209143518996505092726120883075463579883442817740892295607832570658564934985511131808591353945760278941745430208166513283133633521754557731514103614085360290571460228028202243519818756971191379448405575593495414474022692386946307424872647265785331035537418510862042771158061762410841661276242911516253623164322871964150298724412722392994516189942891680920107236448431421350478434683209939904313581745711299990649085412218673395462078681483826982355835678275058033860119235926814183831510856411864354993550326273965664299760552038130936824906447862373923012339666241032983542056271092095791212906185670398585498038270862918147383011611555448181541743696007496263934895115181403705092685225351676686775622657842343984375103164748908481204868134617460758750209472860144641887526935585465585647406229144332814160304792974309952369149456311765699142224647544851084945988746032368063617874213046693465201229786492739267538891954121457836035410695202769826445686721655141442736233407699686618927008579550213095836987030172037978288026354761524937670481642151928092797002581759881140345504319545636795534063871058200200482584633705129284138401780104346037298956326857384839936168226399466180053657286395192856157346741739943666781280378976181353874916063870498035709747567871129347679493032204090912262899394814825675581998162244250382821889562466069584229610581401856024478048950640355273401739820958730162112894898185301075329383747500081651235914355702325370988977861271181562248199938585671113171809341858694374637218008350891672251761947078597049012210756893167022860204677231267469149069224425552324444941415277783377088774896344536780822954465216336988333180943960562023993599011950696117163769733584640613697753922497688640275572100959575415749880406827306578518897991414613077270468313056515381134001147842489808231154845409517208098869101607009522198003400729580016474169602922750347444053008455338294960877626392909331864475263902420804749822711589375248954942623255251129338773495041786428713777114064589107904661039877672794021828022210343953231394375312261890395140966265294852787707014427468757040630506514954653673655584105886454399966078128615273666840922611652605684100703681650744567365525742119348251689123546576231908819894163900229197273346330219652907102365603911963929416365217350334988133897445002718965972372100539144532022183976908158950819138127353400744309553628738948050777123189142461878547910761368341720815917458410918676539559148245116166200653379388337244929999019764193766782894005084635745810482306207641592672556753523575538769121407450338057458942202960704610307477558503994626312133043366852033975774621285515786168626067093980063255305123782959717287533144668430447546984096710027333980885724922045866723853437415157174018889936731783502440250497268306696849627509905038580148919709099675337756630481141685076115808209581738308113896107329347575332122985686242876025726222889029696421775057445689197788741285755621925625684661000414859190207408098042760946021811702242187746265555776741739079421167765180730111604302778604424720466860362327722082399288916364735946916001896251968695042992502505547918715808260787050572776247161987536159614331740530776224253516667263001555690277437774528415526590307120288999544444772383563865527828296345673699556267340001818429582831209185875727756632256220418929078514765122874794607789532270628235037947819113004413728444825365272102752897343262725966196279309519976924811795031821717788658923976711065054619177965973138604667850601376713598711244333603279699205971371797966060226204167024539494531849004620697972384625419040516146466003351233100291063846807918375549026355569992943423423481858393973733651412919699948335477977318177018660274667874630150816157293367776849500541422586105442672450828270645384334759761145319677052025490375349266299550368576997550476307534848180111396082690168073526893562660567955672149774368876717336032643006707120381240398398530448054175750813754302592694216284595697883908042563924456579443754719310079788729509167282012501512064971144323912634486368625365909768778750938670459600000833411298371286086790999835614194660094408294376578328672715439661445697244794586150007665038668228469123437949900758794978413784336839766500822256177201504003619652340384290481982190122276762424777388502544852222849850737788230185649002907109280512775305791506384202882979100559789147153122533293431235411924873782378235322070912244157753943930900480320612927041321951790492339557446700022144106915679426420417481711362256191733721798349513337341907772900449943763529510674394816569900459923251247076675051270082523698712088640150932757410705241649530392516773675408614989571290386991614162406485077713066090299886596980493013588744176291807525982201616611756475379823255535780155159625881988937491950690672443640921767012749015980559026497153972480194754716176570552674446122529924747397580963651945749610693814272106092716557809128077843685868317288785593701713807864877973453486968419071761147365544215807232640708308884201190274763326944313292378981035857215139291128178186480503021209738977205375891051814816925861108626478741019700657007411795747078114797658245369262232706815931356983508639180688345085670582867958996481376064181475707477408427591001669321466639844406862061928971008146614505190261656364786757836658376194031757867697786701608928462441350345438301802512980371276364988841792184925686298993212721762013734485393279985900303553705867150703414859058654650311765378561501272995087318969259086184619535679798285659180064208624406726821852071857166111178085669359673048090594903644047434943126121339374417880674951875147718000239816497268536621263098912390197466170964672833125472162912020096428913079469313132093741298522920471912790593878687569868685523669253110477193775182563208785886398038146174512205925730841518642712561741710243236921677799461994118000550130385992720250374033783647440997954225304943641089010934164749498477840837528942742587443089443625329704952327021904671851477742366427867686520157830928947820361584543272072922869889096955242647319759641420002060578369220409154919039576473919707104730114207129914864003490392338300673341699199989240305484579903214832337745603384401154951937551798822797716025535697681724540682713885282995747156062260556522088464483897452330692760221787111493484131722327572930464613971634132578925390205019965039855165155766082026430505114926106928300046789554323761123607093627727902273684561728962719095277010555545704197970855767806307926885002480152700496473868072404901811328200452782529379355213169744980752573039363083580443559424409181980398802332526655596325788416356921269385479996598203478301308321568581023060164054851449749557220420703122738636541151998418380102870272929740198631862924454604287612359907381590838264646700917557581757843315272334249715408413499017425426513061166106076314189355525460018003020514913271058004220696563420489806248903460127552778802063121378314154446395950988770612957758813284854719745025676787801835382969996657843866247828106081357165285645216294381925746099688300584615112224067171014830336427938895902257318718223243393851961325460810294277209701544151204243772214684740445499322055607647504717800505919666050481622284380828990616739367895951194113134675844727395565265655040061254147488566170680121197780079654125372564647453494378185732479166600174464385019166092753680353617309922911720754120715464684786364707730845275785080519296459356613850609931368241045868002388168709316128113654566339620455868390084146424520516154289001568428710340197190689981574705038849581963074509469677377562184963648739607460631294415066152930822585827478614066595291199497794268829140653665784852901179772981558503330653254989673884376331816337553371033796545019889655999419571405231080673524842036428172200953353985154450281346780684680662088323461844612606384004126332682605343211219484329049543050755202893380443923828623071307314464427169392961735341890360900306579173354288461276085962105259666906030824861613449986445530092575925469775080265685104940971625670408536930387165244162686394687827646934041556355106838633604022366711481104982878863748820838902732654657490543120060936083138347019905100767070168750545781846437447785850171230379521429150729721726448076110634103639440214339533327153632568101197174979950614517166940553188054352676184967446253615737928865103240401150776346006626623413770591182380920927918270960366473475578588626489763038789441651157980346555605389661942128041887698560997277522890178377219933079475815523792861490981565424446030611190726080871538619875107013081615031294637486905053736512180536636806199433822090380017475877438648013663775997808297737348915312451080223161830229860449362087183063145821916253812753342648084898939314676553803540120358573100064492118227287636403667582963573379252332381434683431526047005422172231603272901831717532137277216215172819371819112727485786857341913685107013026977567984221974895705301312233672096136260962719156039036228970034994741975194865748501528520834353203219306307718534194014344464582439440528533740861339453648828589942915447024974296778650815891278817781818438673096735820103636969364463448027079867337822457759432001945122485135142509409744274363645174571523613453028825186245074774594915994425787815048588243347480441772933189828447979420476333300837624572573802517582786373600191625828682423693553919408490168441460415207420795923333400982043070327671225071453994120669950116282507710422186351132445314728625102445033114668469564667697836743994842347820572813814086000503219684284369653930251404649065626727444573650210098751916792833488040047333630816638553368397648521507961277324342135154911367516729247835275607272178601507190555598317362547599688475245040906233217323053728494984052664325053545166654750792842843619113234445843839688141991069641987626101638744447359189125699668188968951739506740579981536887143615410011115979975886364101377988287077005256301947059136190514360758715053154505250932603061740170357433499643383722199982448387916574160118219157474315994999956764785460455092989647202068229398109125856253411065230064977310529610758162778646674706516539160919907533713371713825843887898375430612874818187779053783320380688123049467354122537180928147134492006821246767487415498191682307770686884286790628196989688263784584409800447835387046390034403626172070262948013008524814014024606784264059427676724650262465900361260463310635833773035823648442613132227762620582858861421388638394512358460999068919193941784297235434261764253766240695351649557860655707627815113476451644297406143090181308873422631394510773886347107888857554440315796029398777095101329245594549377100949902727743416453534392018140603013776253846729508316017453178132184874568623365660744243316067116537375767537760647651353931650446412177241155812039237025916071727000833624464433401062348415094921527133534646354084007539623457982488672993150074722637838151110468775044861748057966828380201634658696002267309419332390476487112847911187566231599815169479722271312008286173681712502695814990171163305567948057682119356073098828730027491281971932697703367700908694543383414341531320057807802564432701797769929217656781757697010103596960605850461500363953720662449020788351879556127226423024566303708067197071273172643886373955888749176011022792975652434152456840485960832602672226499408113984480460656200223634189405580821496551253055671991091591896708786071781662786097716526073179199554263400955887579997779589871109671964278083382653718374936107770310775718707376220919501416078963182393347419953804623351936336080140738238549066571133204273340125004661605853322294437596478371361753835371969157822555589393872303289566226806313074144936180112933591844697942906475428357095401976020377138607255650556820403541883656121023135940899572034085235836020829874754275352598757852190580239041653683559794150888021949044082394878748001441633896543208441119373315875183287186272053383227567191118718659783879375558338258001419543363880495738465928246122207352964724824485123809929009670937604481624445164496912639361259926402696934362958213279480011424390854200393865958865408200709364834628268643279509812277146101446693368987723028030975678293181583849795160216028813647335939899328317057374492839735421931731938852861252020340746054500317818493501424791272686369993388014254338238513295939861636581799365915422522677236314275898744096649717375501808679611337982332870399418819475583834296463938936641253499249816736840235669092830897937635432586609253863025492234547247698757116078756058825282900915417782611934503717533480903724022475998395662848206923176159180866622484018916592756962292258264812244361743197870224603340266310124510617162761607702777505619456363168595741616616999488870273089774088183803149135250733611838607989716200537825474315021460911146563219195812967966154086300601625548073863780512680097430858357718701718806521362354942736735366589643697043050138760347848354524440443740697672457328844962681839494618530796565018459296183138276648880663690259877769112362354598744173529638699472679903818958903855853947603847062031562714385092641546064925394507641129159173685354112166815591574708206364174532174427789325904176986392432083634546389890535442514474916336357367564917748444301816983434273622591857019492962786599522560491585433072724474150921145556859747517176570627897149168000962402199884026226261458401822140637876436736250369074598524192294919963103587328335269764681031240500433652582043849857445536389868588250183138293721463238299655847062800104361231468008343640429092108914496550410138916021521386431870604187852670301401127584900149119324101655368238110943960938936176064951934555416248877598686260079281589638284037594571015721049444402695032863753076613303985772667895217337769010528328430044004874097064024515437169505709429077662862661277742188191453507202063640828307332674010141303054570994967513945975561345514377522009520411788861195915452165445712762623866982146948166215844846746914122183441958188951924966058612304635756379987451281499970530175507370179560386512625044680274743630084945550113645565257037742877724371390557155787353416466102431010498113482835213010557795126800984464953520738262774760499075580207183303531456811758390664511357741333110324829284102158301636277845731800402091099272795317781296283400833073228585626071502194569173082810523668797148635835901951043550807590811275302576588126504212765291076156202898778613977208808055663187272464895446223615178609991850942704610170061073315375151750154165019637612380776951013502262081910076959315449167009530340464125549485372894303673104951735396210398215607852912852609103173900495428683473861850037138245474454442986056488093820380403267872267215775490277921124717666765602206334450265243611535806380118741555701813333655349766510733341019533736730895953014531152934796056043278024547632609819599761532775611777688651086101248322360944012444521070759439372693672830650836488929331907845860595017076459147776880577198114472098596812179367273025806969637356850753707688056046318676884785925121480658100759157103851012145330437685681038029325139792087098071665918630351196830454295100579740562644134131640478732745376462556017040743276053435732219885776277433606589728416825523062559516927995444366773843676297795572001064070162394250216535701095930700862473777215710038330866566891293694940779660546645388527425391452093573590467936037901443417796145299610710361055339152626691690254122007494666106371006381985009440141828202114771215330241396432301174888945571059429757396118973641107184566957668117578723940788597995379394359653227779747412657925076130683867165040892211447983253623424536208199785925221505230035831550807622968074488755135044307892495117402351610298355860640603648250915953774261580165490964052522864027152775404388612862605713623060576020992214742312842753379509722606746915678902982472787924424375290445355829570928038351671868684026655730496334321719903825446644207315788690600919709973265033625546416078474037544507772767712208922477067275329983141538033317640589303432997178061049242155924830852071127892751402536435567374065601843537629305516965760198245380467277897715972092924096485499817479739595829609455992248126144194218103161981746448124966747347438673181166043416161500066593772061682464274374882190736339380293885361099223613554302912806943176433910336722648134555101960186729997424934959083605375585232421768727807006357693111972504667540246841287952217594457447453229245563414893097365864163448651612765903185113006197704656574997482928180943244275803080409137375404491554154214574487933818592191835664832839521325601482520103831955670248032221335230751311950262418395590507034143121871089647469583572952068321392387746470816477219827899887317168850438400151745714614542770542474620963166274607941744064434921291615592390372856210524958671206729529965602651870894130457888272554817222421984700401936002024106837390182682283995695457481689315352361580363853981350680674775667063212941637289301216163786199593242859904973644674340847302862936056404214268264166320736392579751567270066130571863073122361574410160811669084824144449475516432965537969740779605455470337384006398972141355949736917799473101028007337036202630746357556058262634520011250750279743114463523927132783442869780014205461169938856401244744184145723156235259973345493144567604115263617404112487127349430110434475018653108116348305333149790933139545981388008353712753230657738887214685006740117570894705192807918021294302136873397868603990143725072777894604826679353069076406481756098104357462793414591699332098918082382402911896346944854144256555178957697241950456418686463902113869617045865014026770535906946713180947754206578256702075957007733153833270838368856782261031157059430424450158290553649271486085940781521460047346203812165569314761672311771843425087098355345673766422668703085328675720365327589213249157615735668426809395846219472796344155513564575117392605970489037128630968162540971308503499603251410402671337464791505990147866334430375424930160387561118710555108754740651065220630655750235434219438056260522427603685409583587479176948853150458956239529799915136678195245335889283707040426897757062894544280859212809868567122353216266812080789487877241485468071567815114123909761124520304823908637476665526966178202428579517686131528385351804684058711734129406577817792551909609655413226482086442281695915361705151674310157703753233605425740134806329821699961083108146776150084770061059692013011397213429857220977744181576819992542528177369502663984655024178322192710796331478455073506849151657235137924269152371862162506218992110089872489467126607456877509840147083987826101202362146243641615276635284435773977500447950506436989691725254488067950630069924958836954334746694630819140209725466748293156781471104447182595332654512291604502225153013723123693037146715611301116578767556841248622265626431887807053553735870324561307043562998872770754311422038843406021404343977723091990389904417138995301027117565825171471994978149887676766432158617177430331463471495235109530191893290997639641167298005425294462395103306600213849393700121666694679506027363207033246550040387121296003959568686804114244175130623623487637927382113641378111284286794835796127267484953118677769873601076836793112581556171305786016959864315561226924108278774172780504194416364899476588958059493243971457042490938595320292282807979888934767489381712251976355414719657719689485457772634462476856788413423110153695791526479132606438831694059609968787627049344054188462844460848371666002344137248333989402880600287393556764096634590554030399806853808395828778353259450933477435220924512764471431863767413532340867975981413930648910439104944530800473359989550638786639995018781411840537873248321015438206381635413888820815182726282224725200344084694919073768938689032050111053311266833778451090774741282707893579959802556821535494124363212084881579011339448300086521763153101174635157874733850607874045771037690709448033826599851865124572616903316684602853353459815728631248420915274319247312425443300139181487594169306975346281356637706310268462731347496370443753015716216492570968935827322200217918453575190142672410031289721086468404805524899073367803033374572567462273982474161709167829074666196254111522063376848118925662439033111842632517541441878848800744510345050541734821194874269740320033854627986455545187870858487444808979796400476519043347711172344063364635507610797447930033052487172723029565254184131750977946081295868011535583161074616137171533837986582927884205160371806612164493964877873064769877879117140554444743352457581725540515184496436166528908624502715234737053825118801827053056233476881829927575962413559946720289534828625707069444877172288081642331470012772503306148588580193559461968200403446938856344311845911541981496131289774862740545131591843351411289798981080476208601434450082148277535692237134253213018991355663778732551742356602987779134807210540307372696400119868252531209148758493468920576050475982358469712003905903475615934470455850055000833404749864565455420011623310171798985692235897397057915847720185617531215880113084342717566849449846801562423472419205721199456269823551466722391241037296606182476948444651171435401115140080359092089258894284852975049584099359162565832911303344308714432411863212035321286117702144542475313458634710782296521477745268423824261656020103123477788459272366495486590814114917414726931105136854409788980880597381427436674466669766486221069580873566108733529357868948178284722164691222608661361675521574977597762138374124281936517666604028501795554822882065487992775659975940681622693612684362736085760794565311064348871306932414672427262724483199520794838637671047251091615550738793960164072318746979207380886687664417517249303092535892080987095530871865904188672109998064476718107629112623044214561857036775923262910308507147587898674699222532365408088327355375823991379892051999624054084360911660533700837593912794553219874690041517681575984805574513198417891351437587585745910774964834307097260884255309351122885023689364768484028146806896949256925065969916462246498487688821426154885075521459270703710932480235044596092950091941434294770698582249160040979312413589493558906875042120442051170157936313816204717559436121227238951831287087181722016083903735069776604444960143407218985691410460623724460718304461249647315335886469270268615333567469429590992149690186364916949888771628396134588795571138340847345735613662715284607443411081410521767821585202635661254075118948020118744606911272504512572177574145196249261436242578452610611860123742585400197420059463319048246282048878299238566491573174991172905489483666441528798989841862015960581113082660346162403813605266094000135679283763918448112187181465362693211454722062014761391425437003317949893317275720264817146212597370128149960668288340281009664957906535536672535227347541759405945227349638409172775509747330576895835438337436549872421753999755721538376054847712246250234694905866580746939220562696993406396176233311975151553263845928183360092582486694150134250362607705877758924096606380363233229626350204416886912042517192948398640901568286156165276463213904458381210450839761393029618337180292141827260503593087513423692154534812264511013782374503215718911615459194552958080232711159758108715187333803103893695285705672276609592190717673852203223832276121662953915861014656521580445170942412282373665759133334238787858587100712587945491334596496898954550852830824601842417090084029538781712071224176145201419302258540133867099566794896241734447645149078234539493504368104998107562941235021747553321263998452627439696328562428434389042058004277881488317600544075702425707301634716487358806810997302639287513257069510746723055133558509655016353194405161290253833367754929348132100739954985239646251928850312770045434960398041293702641191660050431711697829483410335640052589981176444515351108912356535929198609640221593656914231257597635970590917491828257997495766394232644824700575073359834083127912594064801181166941867983710898928584731226780658879211185950825225089055731219315112628177097922894317967354085797536019945159756488641942259188126882027069894969492389602038110461700851797287268322635719706240091275255771227919602198284108859603315254548310082888748672113459351815055837394523652318543059798086785399488800829702277634632415639296663202601093506470240032078829085030724388817380608019097649658431926750353279460035258809756620463319970981369047341152735127621984520166643901554020550854569656783723412964264655660652433070660538723722192774326868304436558239853334817525936975184548269205073665503607142877112295980471275662400981129398633027878834547927681972839701676059825671594556929411584857199212458585076783465946477787705754927975195902672956273444059155998771404437777082251886771021480204583239133198433203859720253375382809786756882574199477654362104823000672337921391562213174815338191115431532679811032670616931408005731166067041429127007501717236070717384659317630902522445967446452070510038003652381400434806380273134585445671507898996049538606948393092946944392850265442962250664584816481976835355153977816818062234597090365166991369865752118853850707130212344611927661861035386622164119843213768723937537423092991795464924428835058419462863341238610502943748851525362196903077306468191874775533426964102054316447620841392455663347720362850142746704483108579094110161877969409807792513714418061326948969077478410082396822008287631820581509274082902255480563303308195205884789655445469081308626884112078776075957361891781637899842066697855741271563741100282419694959712756521368429014653130041917393531906527627278757651148382937016555553545889651815458994888385579999125756027612843314806524040616914468109351549474908502030313541673529395265356426108320151175562601127882516037219800319117039968835464868762092626388506047885009717552674567334360827851076437053011409227815620891071675282909728906710287321622962869196753686856195649411852102290165385778341393161268397705286515434635942603038041270686586672728422406839009359350921206969679327286313101988736919851658253919264901358797849184681482872699361381419801788329928734984995995381089741628455728324914354749425771795398788818655448916299514893160998734312420812525863271779662195034633540975117406238589603273959074740079843545753079842051344653980045051227752580521075353917691223218694310038340249187576336530663931110637038874088271124356027520511473163411628689371546054014857060975631358612528847961368920355084068584018937643557619319591027403659939526918241774823533750491171776437090331474794951005944826174058413594503933884258450596967146996726437429142642547664396371236005768637766259581324685745870917971174343701476206343183084007708470241677444866536431786214197576447699887189359858268470907548963664193266316672005372434565353045912323207711339243883827234527590867944371654785606171111919809732647392776041224603821690415078972419674948412590339090360377978135585299114854610276529968349623362758538318243501946747611787783995421072682080710628781912740192168964657164485694247957716546178314808450679201952062772788005255941527850194449714369942556534482480736758592698838888870418786405379565139826330923632918948380825512627062992805113635191981970135814623398888055163997105639189157682532573622043941247569738159685879393101684705449594990132023457073556308291154020341368666772092931042852621589666998372860422726220100266225784119081509130469584718924998498847502648175992253510941615436925633820184275252620519975064831426537023131436300682896260798203194260908933904373928664135747532979094823667936730566758180342759130685187810173062321135579731100962055581579033137518277002008521885350823524266177902746876721188702992351246856142557017899862165957782922783786252938732973882167532684023748322438840555627443439897967047572991515913464427225965720379332565523017592560429647589652306840831715158211511808592354240156025061202191434554632196448935579993354788577681760529245363245149784744299744786728153036344201466776672999885697982865209169843870909452223626924212037994385428151643128790296314525094003933787171256717494851426164044115686647953084944242558462753534723750830479119329001106167176365758881544145755432447597802977182469821675385963748523579472512074810452126046033499022158344390059056153485334081319466863098335642172225874966077072146151722208426540015049462666010431396296652913939914885037098117907136799248667668474013339691320031711240366685269434076752935185032984476350570304843962555636287811150794902942416457969425696653412769124295930155608765308347255564444023171358215034180855171540808340877343128459647226970368394462651654761189208350035705220548760426975085547937557469959450147199261457615625239166205082768528243835960893517063939856758209078898138388040202890848321947226308564336345894603207447646885196737098249122431233158695632757801585870493201541694407454693088058768319066278864522828799879731597752766667443353638073514320178745889331662803464046906148053595443978850538391913742226917340724042865946587895173306092759805452303354005208698582815136566155506817050993075257805396600883609599792389535993217705762747621024046913184793997983369718213960364487181563923368771530115782707532543081127551240987107162395898796904206255530589113869877266325471394920320691434023128522704313744892905701419896353508221624877157933034708982618818017710249886965469544341508079577012049828503309783870047891879215500998761090261168131114433857183990915077791617572103715095869640774298273316588596124460924276946936320187033397298032363537169431268693998989080749698540998755963700115272724784010029036421818536014382731843158448420485214677879597271095354405015673002957401385506420481364314003401478433083625349080104088076376361244692295209502568564469268519996787812252582674232851169875704273530674012719309459279662889820192399949779767747887386908110514519452446097244690504767260298391443685474515002265634109322167729697947116429313447769731039511291667917503471992977483718212238340443601273244065947509352478737329647161028379110546125972509562788359025235286966012351201950186352769048807957421468027196897329243717529599000021995103800474503076298530727565224288107048314048390020967095157500745204863539716171251487582208437607663706843043251293590432452817845984357759977923393279702408606283410684583401786308548423569066626042643797611394658739042931134449525810792170480004829993840944591710112042678864649318411044841489266661577635328164669364639279558853219167855976847962130574134785099722669129509632913662344937086467965777758348402980432602139401849069042152542722810906969108902487761443492576054771682139162011701457058922433728287518165801561555410954923873652923454185534725552680331628221062447804862992455350004236704496600493961665910242208409042451612703724213507666374355499774800561853826728955564326826713769598482100053734002924017216644911996182168527722257727884312542929692815959316910824487831269466574372888636567940747653220527840479351048661845429771024014672367671057545528111306334046355271875078590305275411786426492378789716265414550957901825429920386235749104244336475432253782725380072653709439613304235116371926590068704512997854214629327564874859102744244506428113655660471270384918885080213657377107951165140934155255801281023143253993734468946674477900459656505820039175288001182181243671399941443119530006053554104425155800115358495857637489461619337014289625284371272074196116503028452714694739333733508801496669245448271247673520710806794138339366358190788890609980049604222530303748521375761131033227206831843792311734161857288586352752747694431204453905482969315169997456526427858173434515068060882106985587784328870359355991244184675072983343839714045960737547875748670414626239368521486531057306148540771571211709196106690931706669852880569823293969813736923330274277494235138507640815387210637322102003157435181214086068212647231938818403685320592852299566433161614274064047639617060753368163751659665803140570631481255257119304988177171493240921400904376622353391639405484667775063426090020074976949885386951701404780101360649146433159333719849558847077800198070581369586196105477454644062461140689396796006937005359028737772367090959036963894463104674874836118767854464407883308468773797418720374248303823786537856452178408361722823633988668020311385260284156556452255224993193968919229185981104914178047036012947332462183686968210523628272108968246073568483178869236538992114142789717326277654417926164134858439812767064579577706704229665254173507179559040231062866567891541378965014543844909000283823309085026235363606351717701486108012818587277549043996555983051038846551117583632771875082860749802009110817627126102743636602273665412869996570545332492022298694353695752669950171973987537715161808359726828177522295066004050400091784248290688327898179638420370101060278149013057836663332212058531786156751953652922814112379350206105573504239496388149064753957161659092257024012653770427256566170877960797129571064487060839659018414498640259374383072988745949275846961124246798517278663629720041899179937922916988286894616948483940997476947306484450726307097674099322009252240203908356217489669835648208071065509749239163396486409329942887560384643585536060277052749147807147482749281111741159242691800717910976348830679172397832336553877533835994101564829684186896387178519473228902308686243967462018793988609714899008068989016766408386183199175075536136764000066847632546894977741072564773074166842408935566344611065976575850772362123215718408208204067188962424305564271951374407050948850904446681021407188991516457961238259402001190678228248363882203206389994069796189203767247971656441169069885543636591353637517638759478146958715137382040991880611767312692725946121055523265848265333291347669171762664598134453131383279565395366817813869873352853965547024854642133003258775482822610562323806522673880761009099007573519307080547970323126535143101019016765167235602737976891198780822398372262737507988758455491250327001296559781339955391943661383794712867303741023970557431579629601281636666047543823380260150649899153332484950336242248322556609701880195320098013943687531682572294441025755231407950110765169722483964417629324895156984410313645894779948067669623690087452514688273905882454890630545323796179507309521168944703304978421454036109162142792240804910911651936064530583238691425619351987648349505987389856406700022834650705725511604746997045594358572543152451850853565478203959589906578739755528551210694791909741543469956121109494105483172274072599742168199047480468470321182998046416897650097566242915224436204909551282948392332561827242216002332010180825662029151094521302407860096657193142259693926428571891688612031251205834229847904415989780742678312327051642496062439114243630343312500774817913290673129510445986349632851442176382321579310354215454261259447098094691716280602205754401957142253564651671408000641332170826101667833121089654089570767055743804535728515455311130568650563012602812819598261820418250318708851321588949418956436907575594530424817912942795815370895314219894392241825001938355325831464887075129691739570486112936380415395593087655254869960935057545949994482223823868205477726376194484502208578771873685322428732561929038303084748587142193911465576532844253654484831665670361138676092724151001996458816095171454774740873472804648447745772950484402162684774003066568771245801394185709576017510439531213020851958860639842311748439743491626844811979440534730912792503990711652753138487457692249014999052819969399025519620199271754076077626549210309828042374755846232119473695638418886681808407606247530765143617695841191174467765207297351541624781861931380757995933982065245099119430252920524368133028767568681323643404141269177690606755005766097169400986733129258011124396590470085909000145248076214691694710851574498043140474794157403055929110362311978192464334032687995885112194049042219314234858232194865989856438732069565133784398236046963329011841200278790747117510498921621448491663718149689122625999005748558412644336878798486334139691757070000859352367147119883747237460315749810227159683240831142759486483422664597801088598234897993638871839755203718354206019480075747986422224748439870857630235471536422128808865596175217754705115693000372451818816425460724987815257724639098525180981908902569842607955971413879061504474380743721066505641974730898468166360333355596957521247797549015928896059660409395457096079002844722095312274346584120760507042086283743573213507713014449876810607510736499641194329928424035227852911751439925125753062068663122298078730817656962726189268853207738565854581724532768164209746847730071246519188628282812375809404935095127958363370301906472463945661333011620699145766708373552011060290174108672852874699837404773848064804124826062192997633329642739126066572992901317137855975293532667565516460705609359126626138276073936858833205686097966704563311613854150498747616780244943729943128201334315304919480978235031189105051394725910197092712233287783143620388482515434761199935453613371648575410721800890191329399741050374870165683235527930571403193465474735686282437475343225823087797298182594909454038559356294962316208702269560586144176549172553283736086003895232422360236160670957004586244521160769662034125091703469655489419373275046490030589490143005095865618862076857787847390725352473851631063126686333410214822754391083809759693091199095722745375463677726327199859323668982178091965749196118436968652116857686324599688714123987025372608997926306005333664052813363533060019227906864702245082281599388504732439677737745662989520335490204627652061567793765534708870154150858566191131109143493935906084430110242636654932590950384575013752461400011673259987242937047982515675557597008686880422037263080973478753332109654844577646167450964301644321025048162972592574623700121569790639958752378283209595404515467750387697564260486555821662513767140924499529891032941448314232596856110954365317245283216371714013248312323375105276964078064933782748198827095185266984809946881886427015085512207445925974852190339685681428152276717933997507448982487969181022316257881036229696050166479580606297041783759982849983361936789654173020945633622950536056970070806998734613773721587300324503509564337060338852898534377325215409143853068089856260735572928213939640277236529656473819312252552098578303970139316348395804538630524714181539288804985291307964888746361821754589539596436792192362151761312959547569491536924524483706853830992546712355396051333065549602213367470155924198720337504327831792243983914130681235187458077616323229506568128988952675715646127322902445570507127469628482761953203769357038794081420479735884557662491563329828493994665073325246015996699754785158066326199266437003073210056634758548054612955642817519737385773234354086809709421427551044370043067964133967393540488814339034075832834505626483221836520455642995547775556850935298343087721445082899278596849583900376454889863012701828256544113184643695822037228376674186417827962904096637568968320630699012587828680965359490132406084403343862905553911456172811871151438137296067359231603879397226937829814820249112683308896228794655424319373191318416343214872989037479554572529803103666974315502138498850047276101979925684905363851461214219874840996111910639381153198431225869574294657931224628685392147925708490086902905130761450992433530121751867845254928060441940800008168297336009432983217407469697024080062975958151642913555703431735050873154309339308625591112923158446699331861242828844972527802664644729996646353673598294167307765387264175292654460981121567113111934856346029772935326181532582078646018874833240323281359100518446549306585471597958706649351497741421202563578940938971043971527340484497349400072428735105531920419262043701259663130912918136348462838111924864233142267256474370790561645642688694779640927962046015989594453627985913547800765133137115434392650111265465384374516393080646184628742731856496900534939807463010705092993356334243467509661266033956236103601015793242875889085207079266068268376584627862621498887576061227362618817051819544382121877877411172555394165187087910797980894085001787331552353473495415849875941741712243353190260385186328632250674848016032422029727847581945101147403154693614071885183915531893776969806021990362234083228863251771226277720635417663809697212051760407213291550210892906936287660523917216012683510130160796532860190692800495000318945909118294993663541214370058931283552660182286422838876444315667202819823926670947341187041230072508028249369254122804375191828201642851247364376457408857582580006388298410449445241884786966781351163185163159521960083850329229509657001225450196716800201537419888784747617638403161485884913868613748181330606493450997788531433734996987907144462452550639009442156432208643463311955148491875522932876573401093679031604833551069207503140419258566194818543375265490833099030150718554612958090935840760396065062869364550840831312494057381267390167094295990804533503989242405097729879470113092493707860338241851102827492626696946364895632177959147978562484446968934698961294657487349279287288428593458475336561068469057187174084707872438608662939503925135752339912636501768353442226416465564911691167381311462854814611486189286193078312372879064703775845629264239992195096354995229981710840401420816058938599631464501299764251323230235646530911206473597068996584334927952501465666992084351664015919774161848851715342405886377188072272118705015749060158248730493436627128099349281133800004050333586507439692566703009353420277913296331023347123911865938290702116868408439723412381210530894255363381825318422560381880140214435167171482851484309809085160608148950449253646154839841844871115245213980577916952943577213900783654293344060265029009861856362523158064462184928797223454126165750469668846169335205903265196372744799174846053518786113772238458165538421619202765734899579449470931428232085465366050788529258837175856408436173431813486059314085787460204740308471429848405506895498413853184841986094184313280906669745797791004154349084627048960086920894287528247276465471728150626447966316228976819524844719559458018688176030897396246960700120931944727723194464409965394005942450370729371238117603149656902451929862683757916243148565193818288059236857653523040538936082333882891999740813793290829934591820331065989159289366939387775515406000147344366883045304829300113036130306774211608375140169781986019412572237940999955374057292315672654926463752347228949152251591316457186093503238549128379871813640785026394617173616440081260346445013766313083366719193118003566498979300505909143302630527769110467280378315422096125836281104184931634885850250456950784774836023572749471893013058650727546066522769680223180641908329039541355888577206758511836324995737824713280792955540299156573928503398612801552578359742033081773709736939222276639157025984386941012010374854281386242686992863309524838056849625603565829284635688560978156432901244600285410219578651576779752391870915111565238763257589448478629257380816786573879477245292890031528750180570063781515243851819194698721087574476374546168864536554774572655662477069896787848297090439405015380590408720931060769942698643507008800319069172450136674277834648695386876661324496124991530824529060785578327241953415483263894083286851535147163114610546940981304209365002710919078426821306795931729189186137156835174826496800977464202239203332951318430227947586869094668809747648820624167369246563167237929918062135783277858590188692337116768752776554243262203846143327091487737380479127692145519207876585262825165154860225325568607858628893522963895509268482383355895872443551981281794544016557660295762971739601378561768312272156776017797825839717397897700159133259588281285713166926469856421237560010891655165167410280426405324443661399959236977085395040746245946168068929988976359404131633525061366693256856687497557217396930205825158334958762014869842875746128273328384531205319916333367647830799480124761435301959568802499058532484848885488023179260158543042952566182852704963305746145798726881899937259349201802061436595858148669460349042405089034005166807274630165622420404779552843803497983767812626364883262869018042500978901533398976793685416631919261867183409584804011515325653118688597603283754188453283709644108927246907503251161899497577871864352524398256346405237414536739334446160103738642153455048472624978352985176529972644450517425390469135180736092877059974557446365164732443480678407431584372570524428553287270448586757382118788889403700685174046382180039043055295249306590941689085377371016082730596689209277918109113691639077019780330330003568870770231456355790715959000732639341468605795002979182269096495824259721067851214717066319807917633558685799563707449231114128915441771907289418011428216969777126762396473196387412115494274962875825038520591149727533837258157901683059747275263842027391147633853582976787227629056747739102204566007191160797330392558728972362975307621647709318375788430010883970450531547286584673408277717600455798223057846547218892261781355841940190387176595159130228169124466282982589696947877213145099579316258293909013918349360968119282837329684994506558757657333392460731376364056180775285347278167420440292070669445240283465912879979977400009624627886076633979942964239040681509640118816402894206330238142401833582750137725691930274831296485502525859182326602284499999669627238072379839823049981576200623872152508965584217764425637422632190409576085236012326077726080126161117239220660127157384868952610208536033648703591193540949114195121246653144727873980701228970068657995386516169268086052021897468488005576671125787085367922530511461436965931224298096204838859539424961809172425830772335294785533579849991919111971420336266034833522785039922972111005463344695978236875398367280441388514709531678591907000344307341483574978487265242928201989641329843925637996087609672699391971777960534492648223257847215585664587152639315046672336246077371689167599608959470531196580708847220798081873738772282704910930970252536721982037327868334862888485525998007534270230977581737953568236560293414846580419678852269216957469277488139508603985917264820957918088883986355164621705451107182007631454515629428332164587368453400356539679600361515954743855777027036146036801628818609236403565597163777976658586110548991097618444384168785099688946814639794400073383200149222046866001156181410312581048538286831495114569500382878952149316559786545460703933444410785793878736630807468565066283402716990811140347786056371637319813881156788695742529751207723102214977091187088008981744951905794563810555909402845863335939587885478199321597486294241911167727268364074971660275004898115957371670376320116734727484303074778896219958319082695098542894414736510654463310995647178737357671773562288718799442640475080044919598429652685260765812288744918112709961640631088528361235196322255625905170569292887322211190205364089951274692095711777279072648550342847062759632904428454399248162882966348900351849961063720725700926474906783174706899622261639622897707442818434837041560886659905734027270157295348468516342085677441206956760332246377452448605425475490082148104924548661948076227864994675080747793329887298730339222095545222434517274751961394624715134956090136602047328581330495555040156044022454074894108611092269226200293771133892116289713811242432600446638088093757624303091589450937134657090300445157380766133748649541723193471420109673782023162726293273947169332552330951234276568120129582542603754017218072240535339081254251801049753819101630091347388024568960109743176934182826050902840372066783294902493507286545888814499539340497386616911108507381703296647122148407151785045426265754298572587299545784926929683771764377345981735239381026698201050300760124754300170840499753005461974358141821201237005362938054851371882992401643128592571142160413074647039375543976212224041687513278538964095846736060585783002575723351623138548631173753282915285442093335726929369645159890536870465522211505218880228008807011439677281171983293231694178246019553340522678807334571214392885689901157667409972930304842456567256014466606538657408576302935827523447849129210210781342176670977602083945859622205793471545621420602675590096150576657109628762220452191976801177340894341216064718763175156042461759121103950779340926663525016113245682870602782085205298105777829481511815652658830008230681690383960553203609513505128685725985752633761531776577624051703964808247901450241223145672190700697789856928653802428473545377436499567609795510667508317393479264467268350034922829670738821993986316456254660660409084742171975148800238580201679008792387290002509395685170672991840250040585356271136671534361952859949864827410627701471637935571419369671137712488216282724073863472441287516961068801639244569089758060840856439387100460041326897512347764866069580210180550963895349780942201737777996945538829007227463940181119502573004790711697014985056030581092609607686951374459283971237257805862979625835880573973621908684728315315829906694263563675056588632206287128783921476396388512664241173736726446672084970056458423813908635854875823772078904403315074490156942099286182128344287012484117117067054840157599915514741293397138501295498374970957508005978672453460629052423082673036765497971791105501856532474176587012207994694802834395499829608749316380902283198354611539117459700914654232246760052739468191594264701625270330659734267598410493612684450396091657781329224421178256401132303825187404231098550041899051389485574403905210229162072225100765174012932045619197757875857877833767420873580626125797325917013268383421355490288659308279810801232633413762817740630165128609931764248331042286373089100259018776816647442479561313196534052531422086360834793659919656688554960319550290066887674533678205393073951898007996825368769350384705494690004559706817928682568167489537411548433806862875934294369813986103894676725406353908830797042051402931658153516509629203485868027263523693373760222831737603992037491633956031440293927288089147420327216238250618461817481952940811654239477180699432016867421937662170547382196275293419549806297009915227215471170788294162985694401599060409941267009803277305066294263896026407696528434034363574035619620351059475786532145760966303370340644194772300944876595884985442779622262126749172550041081180813427317535052219141931162223680603734204725072521574984904871725276505945042927746977348809363140846673056806373250480343409020784848133761153001741877884484036367362241665348929822478002821930483493667046855097942193672195550644057579182542848597678523069053694137997688274579422214301569677902258963572953491235976075427713608514867887873991998295178398382462824229187072626087655417882168639832928373400126165651577737229418022181169309532140445349546767251832420096241233683280307495518368345906434078289847123111457784681956028873436494462453139277915666767177588129301938401021146988779878484461791497253425508225098000411088457246278562401612959984073747215413748653178802729533591970075746081289292869809287409145116610661027700026712647606815172670897793556894841182026991706673857739380501702257438372643116528641711454046090397898777574343493624415123213142899412057257109756074272161115219553228314857352516105016841768348852428473468060781755675395685424305171638411090533531441934524021607781542014513067617220510776160608502016628666053822264675150968364308244286310436512809925840094037845442406546083988035564967406389535203512169691170846622630848323517074667041672172969273919909031293946759658171897914785032813711731567188508731670965578288058646116445019860140725578292959766373285793855965860748606661370694821342142288824250612142669481096614023659710417046220558735153674248414992588213677912055314853985514321794221455662736909175976326348342528306679060010306998467331424746699143747746335443949618469694499581613297232278589183121504075454077300111858362306935833114516254527681989594754305700342686165471826302225064104823946300899378591657787100077349748394878280499429846118642240597073106770532972471865698131661369535626388098212771249936808769597511439607653298414085445650611442109499171158303973699196502013966560981243594067753824166639835872753014116931934584893650583336629776844858929008722494025383809045358742985966139278779073864864365884082659732126242122139176782612636555631775817176227869335524034581547594452535430494984232946997634064373038541275597731926383725297589321588232686039647043729340813892620754382328326384686335111398619414344828884165341515081623497919514340820517429939011024531997831408784880950460470857424699714107825388705798126388266611022607645617251216894645710939053149008002636124563761361432907822743756402889269324096988998310926258312993461304843173038847639838587245879652730156442966147155310646403741368701758349172737521059689253571094139965302705901946784505033666975212466921354970128424928098752106640817273769878434859550628796156893144047235323870968240429772596924487810623739152791222840478768486517723417127772105627345724494353969400419917265931530223903275595003711074004577193375930564839190431750086289262108585659361270810736233143718695967169035724393118573290103492486646019501512993854804091326936049531582757583983858022698534355677977286465425350362852187455951866620578035240440041550058192748162447790864614944022188326917726325526844520242501805208616755338247051841205240371834038356069558617311149604549010924848907854249955065902832933185042651879325894772431710084710736018706917698810122928673545261567816243440373252854279487779518919862864422544207851375359089684769790265131025411750524094918660444734599591161689873937979749883000175841986851368930169190333585634392811929861026133011937967600606445743173616338214155851279529182734162091570338209438120575792804688300299800760342664253344270391249628064226692184037678353961704643446517670007180521027338742967195598162496105325739782346196815588336059691439251392024920224197668310492814370974038006270830531662564670943860445986188533024221086303006222808584897502953683591776473714051975548952165116071661839661228685148437361807732547235762507906657656399201010469610297945518429521862347105474885892837679509733171109000840121174100155807867150378105880036526592829050710657423536798364158821277791523457536384115335173535285902855047098326449971065786879358825481349141188181760164034733564553102859764900263987912113638525848467778842132576531328438514197720532315409924648463677162018718028836701159843331503777066795263657172017604315289691908125339373028567733035581606383377583764492533166532417901844533978324413480788603423973155528555854322561849078125718090357557666944480376894281661409074627363793292104498567967324769515427787262432183773329084672309750106924922294070151352607089514207264051954808988136037456413146443919133961486170691828527434374322760267165941241986007859048651649433364464067428750505224870048100061037099867409340764510765485137380966698551126566692992893912207487422047632116957731880490588927427639282530454101069230404659586788368835136869159538934435905205040273703807405155041529814780796436635117818135820133484072970383943385340738028027965927852689552679658953246686052319963400118444756183617258514492505943532087492371540694801005110146894109796472741993933135345120212351199424637514069779602627383289908783775229887830193923542563527039386973485329132876615493178609574756726419856670710832765952553461746907267820646028040902769298987410447417559937081472245382659138674716802883825730277793495716551687460752600018306963392974169149849088050178097644758546039649551945224163205925127830237382773008353538291400029069892472730782549464666345738495063376192020490208240263578299912966193043214665123588352154163851355817731914463785898075267413790694761498303669549557221085251520568201647740527820472794844046003530894336013641192098522014282929738556138929088591324264524128194942385571588446039944241237678072180109094791188663059005364789472967283326080466951433724273702181841940813342315927039985213852005684321162262526839800490458170996575707249081228707983665800408005084907720928758512013783836805339791712096417288337161114811545032188391190947758825501410296618679832687738139004740257214491025808584247567012794545938176705388830709262075669062538376506762810830532979871608686297553717598155960765630166619583778049790966919918668204677621557195876935993627608857102611605940145044425827263779586261186019377125281856769696598417517926955609790042327537584288834940568445469618705326791529604069445347992167002881640411540406339242233328091132428093246547170830679505675412599967865943821905373676038952593307301815921096555184583449953344729124283628627061335363229413791274448179669583126303790436461449850193779564810515898124626255103817566857910833339066827137437225760971036090919675916548339810050095164052693673821681067663488263755009276405709170610490107166868536700379925757132503910269513297144251841025232382468882041745835070479931212840959652928013322404117656146087908165554143659901070151257076467587324788596005512217452716302546354587877154830765991579643230471237581260132044709651583838812959083569645956027218633579096157383437916763825891426500479246631328812406735607358930273472301989059515480502263235747546631896167144102628322971153597882534625192680388236848879580193771668501095327226434421733869509650120990847385261029024718930683292139564690782027667148111159330919823177726445489141038706639603766022824998263933990007863252101943461459243647296623532175092522663764601010090224544353360026208538087322956257356691855745653617256659448860396769591832549976446224373689329869759578887759211535822721114678842589833190716128777483980086307009564029266473165055872884522760030907571563617890458536020353851916110749422291771639275127846600913503470611801499230110825725277279675643799724492864461126749665333910415279788568881135033227643357162276971589579639939860646417475794204408995502293871774878064791784680488802364191757124722338891954281154549972256640466478189542180393806451432278957795300286445392922434910210314789460349633951396219497792560590241669650801584679491585055908512713130542729749835014803237343583237781042815554799722196355920221651151827291381091313725987322907084689870116229595232996544465477135685394436131985417945405510304639424227996759337637282794965857118793655677611078724365925358842951378758847199703429460738136845269798506027378190659940688679073307271393307086817849115682465124896761293980731758347003381732898233705137823273302926175038622771287388229367528313346531528710099505002509799261531844857391343051881161668703164628944579109472694381318970410112497568755123119871341343046516298636016261618146497593911651700238109013311771506007417108856749109356193184122182120786627022241671543251991666608760091379752762150364524081451250306064124765730112914334968928470294058746919863815259713390397253169423124572025753849822740337512059697088671017106677253767565329034747116486588829350273712238071073392114114347002147816512155078739332577596487416075524971036141657098771441108299320138156558767416120635940070519610480199428091804307117887352945400986882438396315218237059155850924263233064343105324976718491475790476743565441298102612749297941059382704450085238753800456840718489318377270476576031395860360478545650886663663895928691957533425004194678067048028074402941862314994420332456274019396637210142122312743256865725245079621528544993869620585114662090701700225232570240843128399989432804298512368042555688951355941998223418469643958594335734393132788137074560965367632053275177169795463423888197638322885990599940799622388431212064311958051188586852401963085792468994657673344038100241395532221695602160468232921356966543938468308910207455183632938426358406725067031839450896383790474753749950827730120903285266639862489230558758317201264190584364616673648730076688836127501363892271931066536559013614614550026585272795233716237241582134904069000844968082862838689086425550567992543896862287724140183493464975441201045797372436661539722518610564465712774621877628185228169243079292073391896118698288953053931560393101732013615342102355862732055209056569930618236406360114883079393641199606375897769743896733180850176066899708745656856785983908287414109593605251518316661216930046580468427252740688169309565108230005269821738697137595763655362326601455492813189444603442723899278065277664249318435417131891808473618580149553185690577232401628357426560303649632176433634324694790764512995782285484810515798267774810308151774107632779289377500469385834101577287651804951069722749224647982776640514160899012401392107812774052390944520964737284185881289603730349971292808450699862784849921065962636334081967603450600898267209233488943768596138367473274138479095328112363431495713664430723692902421123791236842813034426126577738690201147780301921974742846644508948660603180492877218955774722921955553338004671198938968296347470993555826789519732049663233335587144006918294513499867127458371166388389449523859481287710854208128472630178873308283733112784753873745185959865374117379773570256118542774556995345416533295503015369979329417391423819998772957421172923103696279227938523600714610550630708398024953840956609338307283972466884920252696842840170872765891004614655633257542768479167073457782911873061496927363498839400804265578971039680471503428453530227107482351442699838972498144734133636466552704896318537225869772494376500376783796034340038304190246851343708782410720979329095004941408718260425876256022859713970493665928985351969047764116194611510182535354446127933701840104851782920973682109522873774167763821684333366338842304162953372910811474975389598926693554381710095325214693129866611559375530234285762974643758005840697494063835416942552135062457633898547411223634584661293759380975456955224508113756763319700400233960435453504175992924563705412934417037220563439763095018505365768171983030122001819464614347579300717210816601471209742606325201758369195920520137887185719299006180603717463354977931150078909528135284298708850796606672590020073530432203935876339610529867909802225927175267174875166218127534411526498067951782816046039509569329613075580553082264849915674936665828720958092821889753604951427515566965343399326080332338058588578615727126180938821755024866446434638524899002710197166846897819713180890298771676832902482523206211301981002606319552291500332252982268077144943751687850987731336863992609087091843593486860723347218266652078518280484421436292870602547258156610058801524149663840147700758182089041902446513993104227170418200717741459417404720734804973829594030830731613612411178393014071663124632456517262081516808587413112999699164486207636172391990755786466071587025995809045900803863267172020158824510172893809310484062611326424994715468534242293222735379078568797457120189660503148399798197491260945167732805974911225922919136612411030509988966745664940147556240701671540002533363813108730865424473750379673740212582212626239757175862780598186709580315841475242066602293883122898023318191346591781673144013490456922585779045132169133565591432639808711891247335164587351110530388675707402666254476951948319506665052541163050547610491563831667005342737523472796106392230365188790252040316204562590805383805907389834240398895578581544351039059488122077787704216730166450169370947715928908774030024517060359501237769935344405324921705966760459255332867484159244656707754916680471194273840763689818434561130599509699753879175697971090779597960486644251870804906728432445358593872861859831089545278453335001535764411845123462679345489376131436869341786172432168617854696477787660393546013907556927196961820728542230474724966223497915350797611370312953687902794906403484298629058447062473684683491212672644908759477251087119085916076411760818624229156910333040091491865569657027163049800307272098785891473161184255712761030953641735162603255738185466453076485418681988665222429716072855255360213654287438910564378352160411042840501604978410465866127685227350109343184765054417430942947602592663398481261153301885182396834357282668615282050140649024158368906011580515669907884166996315674961303162550192299947191771091389421511162339754594947957346421530365949222091802727389389299986282293074363582643859126697476736249231508126843916055739685759314968210643555478491099414971250390195644154718076377808533367147286676859776228037601503944252134434494410553605536830241178418110588252341791456420805373568265740646460658256577706666794571954569414131401256073536888031467463667285691999316232133399021841068858833383840848364584609223741976709975951394286993170741277357375261082562349730698674900294630074152965816091360599232202177549961287438014343075772809657279353136308845231289317786492280785955831036579348945854057532012063510784609094684762485938662929822720402346660119822092004820104051692272551153416031007297992421256616813564039448954391882493006337658941524050448683921403458942620389500066841718236659863554626464493202893429226387511425439090990343336186056838525175535694753116529271849408850265809985326492240925537671091696441403331987880471959264584520382738791760330391884590129966274454688435002401208261980148564014182597688244436481810733145840563501117419439900501049593439469340162213572049728440380632236718821363756867826188214176869153302289487587219713807546573292089217995637855797533859692105299847075281341303276552380886157814045676403128926375952690769829442060506145189200122946819968382196613494893653855829121154568137823981672425247632720989134092935567845342576160135404006577423157709025369131473594205688618683687522895427903175075222210389664201798830786722568980026557544926164419234662365726600305727196165830428130487511422067020424534051036502299912191548045104004406291297096865274196912197624551623684749466767649835540675492305217347299347386418806372060887365050742586643535063555453850818057669148616207559338709530350668295125811402174967643010881690435496315912408421123701485687132827313500119017613473740803130768533977890173143561071059937825211164235514962275474657890466918133820965768992783792237995000279234389632971978033273165553811712621877550677882574044314633917191607943084470771119106706158721183404897352502478008062379407107882480093892726055700530043763791749858752826015531816185082475361039523252303073144621642083848919427165372424967930079984421957515112173951470729727815934068599182627964251624349291607763330793030542833373545641106934289048516400002998057003771845218538428106590730803639818093673060804119210432180392549267372652137082224455624475972790924017313201211253972543718257829076765475228179554701486439447777766621169013338573957850981808606589783633993021546857854959813928348885696259080859744880694902257816032666988456273562328525953415272037428811189813856641192588440371130528197885662239278992289231070648889684670928670449865566687350459050292473978716004154663631153790577851803694602718681779782985101073746360021110719661837179651788734885023629554509739727121895662537229984834181524351839991447338745888072888332819216382224015335129951345223127797642281650457566297788936978074073916633269108610084622291268537516140472897126403443563430610952927158251626769704272262027198260821718767776046375174089480740371341355569035005586606861282431209970604408901746567180242655623981116528238797485112377901608735165817926154890263770900436312076277513210022740298091730184690610873632161195266777729720719034799973400784855830345520030524126461930617394502988238798375637687440372396071367231203096325056883498386524811217757847073594199139217654845212630179180104022664089172927277365318367680896799207770599385797694860729727138414301041117775939915405828678772650445632382808547045334164930516919077013085864185323659002749841479202699476947176764674139694738987978629954605846092179175545609006845098730200471575059969560530220876157857252255310387404630489763136632323410804480087946273525408946144170052102435359469736348911464494965430612679662746589813739037689626826122581820870929553682758590846496809174739984162288387492180196184257556046225100136358213831928167843418874842062581929413584553969844111599470447800062474618601203940996317860785320574013001624255447037261113508244942241734936179858537888938905916718844432998380891807889625824054263378292755175443364808024408073423298805744031618695355187835254878997023998784721701650936656005052134185391735286323787627277107079778065927672207703149066770619749526619462863754897563893980550525162927416649066233046833181443458073732328470374273754826140846560498480030136348398698145457640415782630679733536443756211184422378427101201871631963983507044096510866313599767477477436591654715568263979448555921488060569803265747134822303035065120147742555024372457768908257441217689103486271117695660679507523949603595509589630971216070402905001211982230912125861634583996586359854284277983781753575508876184885385637225415679090498716345800285666628406718278265976824981565889149036080783294506180132734290126303560854696741963325281472987654116020367161759135276691104454979817151580349245376858744563123916582672777488576660014952104099531160411710978031789904043303303384847339166906870563748017051883896860849289813105878335251784866263826979230121845790242320958757572234095429211922344524419401264000823574883334238566367437506604290937053599698508435808100854374822690298207028312693386085655452466707110464577764589963919500391505332970507363096735762411824883769050160649189598287928292741361755666729377648888834682351980644744065766445182775475503000093457735934353129722596217654025065751801059841574073445501928717577739157090512029653262942551555282798636083318633915372858169412435927862151182769645818340921253022568321498128482685802077097858293310362034447678184268559293202215856381828135654901675859216929997258029282117337599723764292093121271397558998549021444287562875219485283702835870718614508962114816334815560238364437937179468257892807810200393374128285146636163458805556917109766604013555367689048702525977774605441713953261647095348674427149957707778067296317716932139450632588005970200162748975970151478203232605773892836061196297072764791492686214549372095857102586204231635413989519543525834407591366758752668339044020097629245196241215498292291168818220705347670594715545525045107821274439863314412949377434840123113095763366398703729997442615330350849707332225546437718161202979960061717393382811112606784226117969871387332112952787494388469372738360822820870794634690148708139424174776475793746126411544322112427225205326563569620247349531298697381437764395323738624495250249863773150934001989799416468867817517885040213006638133350040397611000249205533579785280800670126286734711734702603983306690641689941180352315433717753899767370792798018149552195104422238152851686937494524536370154890032468840993123240950041676071526952454351863413115921564252232697850040207345326444219528624079818124419112551686862890295315129943170878643281182327845024436979039346475256595732918182331853189872980146378753622612424098182303118288909084664722640796105555147902296078180645240000253151263826526088813691175779661057686862422005764740862168261740139625620487331093369461597599492699014726195775432558145600013835337158008586222146821139919206945215374801992552496562906870236983123020407831830031556217577520788011416258175642845066311523828951720813625370303553280801557795650971918765728058906206964125502527992647530422191321574622849026892305631912818454665725729751521936318250722398865857843049119018991652914086644004951287471509609156771391168780965753813192647985541847369720526696799418028185303949820437882257281940192199660308466218385249064078206944330122534147690083186908059280921217907086375573802958586324092143883384837531500689837260985491064459293529521409427597209201919678519824291329790090989122632414331154528242692717771790983589394542892748809306446406612027346125731592241861302206628346821904161845810714382190512339728906556029692477408646650526705536979727472455578066927108341801015885277553152381597806441498284151151512780116710084135399726628563690801269870262003467248854996603524827940339175543654646847460406314468672374469704531720312500580806732052654367154488943557484570239416193825987391317295686935816864866043928065026367614116628636785305730096049936807053225966556122259291953661995283890429979421757449670901893302920645227262632507180563217947957875514441076193688536980370678382809751664681027262719068110501538421672197893855697479312061747297289610819464943155519893132099607214558917442683711404798684257378108730740275556337714027679021736445613399384094473653158221937239251354839185197769952036661428441810785505830915070516161088393888569562315216795794109158223599905439036744868995548595223772344503422397118557257330002564214189889892347517490772241269078303257715003933296690199076340416698465951828589737098472906634296417611519568410320256993899048848003568696432895334306686934051082543063002758252643797288763030494174142414053570961253928508293296245851235343797109991610783970756690568205713255901274367205168721516873230364121384325372137751157059849791338905585601687045156196532745376612405357146495271167456417937039347742067033236339016493162885799469373559864378945151931508508590746719073737991637880751038589238240203855116046631182263338472204782263947162220552476198481496845654350538058153418082151904412294800182754557181403573270731868562937703249180689456599295517596502032600206387455948056398761795154434649698817285420143777653448344409864400288249699531138462432518677209684178986067451954342144103105651620804835812591930818173535468573073103190929592886362801397458248891103732783810146150938686888519214654490379135586935991558809305811341171629070521500496267903372634623540673064174395723112554631482450916182384023463813640985772768491543334349213645190019470331811894097186707077913449461624318247787234074893590957337050105926146106791965686050647492844135971278713707825378732209070498879823567282681604090005455353580401409010379159513925861704742677171005202837926446196145771496364252618965154119538724951871474002405422101500561477011284459340991256913745697610224536929198079437165139378707062817640054923216751351527749590576596037585239852683508936622357354937682812931334301383462684339626912658993757421698756903459641963199247288092375443238396097114912399023027700429351655753183132899481385394474951567894200566790938547698068517318102496497537307811693986194357162379120194091217909906415240716493716008141729926197316422185076625971495833874085999678751581861948899672574422982599598680482028441357208793220057907064549716679978284740248797457338018780298542146300291546356032378146276847299377431549932051413701729747897389586586731611271999953792749222095966106723521361429499187432993438376432029168883664709957715585511314140940212577537390892171027547806235533502229621844007634925993750045330222207418274321075475313684536049898594318190781905498096907610884807489967385563642956414858956257239921166646363071561245236864383919781187681949585610406428858184970676181663564053106048348084138177619564313773251710706815746134604187873194674751917042651918808010760998859234718553352601047501437050863754077327095769655831997593309862325585940124893655182994193878905077049595401048479783969367326320407781841308746530939154725114769734049356908098251007164745839485233036567852048019935295416496539515547788345387759238123610254637986138823542271018903457786762692688142096088764525596677504397081668945352147645195728776272565227192784103306534045384126253291242062430895471024805597230369692967237591495996301095217961473369157997402866239514923085935009660283121473496039556219706267596208444485324381911904660783824137229535090485936056041746771833145993960234524690095000954443706897478052311798936815984318391963081017811530212056108492393609319862558946709093502684141679449750318456993195776269125118205079875915581585395243996828197591504178986615171934119838393526118040138304722696001856928358648622958016852123726540749248977144936405020260948317475417022015662839344087125808383945882411027227103190415839698262331129770605114298262505461386856344450201920107096307588438773702828816304659923381502713698197394293141469221928886167074934119133710954146095286086337842286996688873050570285764020002693714602641553931397991790636056397530439404507946663270375023304509937674134474660612638789566919847790222304604785699670408684964576781309438673429106968265714675280235631663721405366875758055356277430188092683636465556434570538343550517406181879080262752066219699119460999585218203848519397727562860253112760721762639259158698039547234695534880825680606443439924660613598037519303639425495665932373585453931674825136784674062094766407843908233485111146637296755909715892967882569402490835826736510149878550434869989773578936041880030436482649248662050572782890388418433719746352715323670537426112411990479810735187580539914496601008808380138042351997794162004991487458114876779829372791111164317419228281275569506327257627148807033303135223121932726989383945867336296953547807319615352888728798799983661909361251070954574360890146614937299613083605586066922297999703359173992259894029018678765212410321745049862174406656142279418256675812091168992245668241170865737881162817287557849112580246266792837901063382758327060065069468174737103728249668410673792039607623964982725563773299180692419447557330185094871182683235745957229425213659895675027187074424371042138324243624448041332282328253141453697707650015608699907369073331531710293111265338156030311619472631165261394671283491239737064335789550482807548709765650391721695335212102693733532066071444876540991174479888244257756021471274113204111661713572798713480940037581466832258575198664943103014444116932023108764795540269340111635330105030434139151752049491018329176354885617730756450448291113808653577978342343200644712558868541818830748134458857576648139897249185450470722568789957260523755959100582640182786801704627649521840235317215181437892909741930921537224252500788715763597429516606454884723735544519750202111475326056706937427058635134281275087203215096922815555702743863706758911688280038954064380088811207077015436128808345737774987226983497416528302716294874239356654437547404033018291303600151951332673163030727866911595495482682755933950343711735219353569179781089101493832743143540560641026534012928620417388877539478530156024274198169456611602834972499187819845585701801105069969253086366417663260900545545987467336738124940596765251250789842386737601001564783038630948131838461409621938020902040333233001817329638624543095558679743656719238435187637000406530002329370042773464658371775037998306564112447745816556576016295508813948548457439907986154482290236108419231792336898815248644761209216767486163984873293248935550557323667602266093812022369341673063396708041725582364122399477447815304665177550451712838761277519714233398342752358535100876591377104773819479477733901047356495337019900497340708391533799689850006130593960825725552596295987624251458438263496617464128777441977046005476368378357896101302914215059243007025396407113207802784985613093267035762052313636753323343427099750262687503283141834322005206261364371669219193825661116048247409609615724083292199846123379039290603514815983851888324059692002728261429390406743779988075407969251723696717911193698812030051108213316075397140285607633225862262016764272595352614524700049880853612216770192642637044548663260185007150180909418075052857445233868371879229903517943960766289377569334451156877008281793054767560202570543168304294718776399642261355999626410528681066029222152199585779914942199438535724862035789877487009934430215275460063627988686790045048319299071804038731814042418387000172840225794822647074529637646212629974279383476213017805046945512006449035064969350041777175911721168064334431816630348358859959156835174804291364273392411282915967219007168759649770901234495397977357241943402479629546805261997193882832860695573130422422608470887384591098835518018634532365412549614688585591830733265680549850255192400781622936470238800239994985418641404287310211275357482897484026373034164542859422129881820110862609017371749247144256712233882052124525624047449377862386038226858788713724099468535437817711453576321974051983941653282018128444101884299803070490145371287405884740820086033503460377887756376269512568587775061250477277578416388024256641189033971232640641710176570863703003585881713934436619964160066467723080734299836698865626824827747646592814252035361383880671926002816060240201448079341195180162618862502477816472927339739590779654282284763097279131560447840572975969489675393588226749021572855219848182361222022883958518727986619619660867185892240378298531227993659551728605664224229005346756573993614789937595115040389564206602476806510773902273829961224392393219627023372446778513359165082665987092260487513297959860011781142221334240727815822247251138189751581800093972399948711093924209762320302421467830549643398760098211393877304045273794295402924747466475776975066792007407000117819783460085085441521268469889984409803731655255065063768838188661958103738052925039172073522702164867611447710957453153478017468331357236876454165897203847679168949553428129939670664990561390435207920613960661839997450650309064885257842756039796225893288328322476110394227778868566038966251553382299040381162568357132049920949481030746833617423119291135658172404874401780025714269156515263115122535245973718746475481408079199548407112138259206832449641540169895126830056472065306629372023237808549566737384660763498627084449377838169231277367052072037754452978725399530812633509787378606527844903817136912397395810299779729181358169499728923036603415827143304954406143130422917382215917575800419487643366470516604022537930199271054064546982775615628436243851255678306887204369329307987906480015567364406588693811662281361503629568823934968857535119715765043651073433757596708859850162708194796793212017278546509517344539175163309217244359707845857853977044486148735827424384447528158353698094861045576363668028844218971666556227594163421245142752294095511312735734565538762974116643666785190539918110379925314214819799309385527369523467559182849779305916471312327560812303679410109245511446603363964623787820752720168181471301893054627403568890693408881658747095096348345331166227361344975570038650102394121085096672922741009093605870088177805773009083642886692134426410765925882208236551952364665229310959115942699364939447450617140058763081160970400790273220419915095237361248293037531891500317103800202745113931322226785704169308315762248424374955993913364985716018083116780120256338153818099459315887241906065960547112112601829275571265688956325336641789019860816709998277266926105726473381269640116066029263144683387545832668130809010719072159278985668781453753355461495643158376604069548516500231207778811004957356573473062499960100427474492699066928997860813412367213199461078146148664914900335400708220779668984157740351180656855491309762813570309312041960310003107383471227321072698164059334883182459750628986470045226620086823918505387108074360631187406479410869350139334142962049592050464307659644522369141647515918162675148814935545914105760874268228125299812778698180349640349515906195460937085830125017589631368959784420764675732820726511242837770879042198494313129316620929368869900624319916572638277509919118322313573675553952373612777899129668172406914717573943312608090571139370855443029190823087612158152172909749040553132242869849241054264433080420338927935130414636272835979106428817388253635832222458993261843957490123026591707863204606584800315800768838313413152127444225569126265780448345290189605179595952059132896980268715768348918681394464978254665652349380758046977102500802854767009748930365811897972814119799578144411777799813153852456727877679301085644508593459725806495054984211164409434904369839595376445434198236759782365721983901186063609486541960257046328832095614495769788197546645566631330366906527495965311079289094136734538636726490183693100852924130119015851410871943656948441135470173427709318983042325101790863290888327114385454579672949048087503696774047439743533048750480092460518321804403555118297037928293338162075537928531325216963449617181402076425114384543999255738274837948361638002851071502815405815471777618032878072437494302738294143758008454971649571701029976072295429309389608105871889023139662362838843346396887929900431682123643749021430586646987685845058867644910269936514237332898984604502094480199318878569185312179321396601848460160398786872728130606925152286708181579268268907863627560895698530438898611932189726530387345121733221037058985872669919039166065884604109157271319426809040723303819887156933677051438052461398452084053176128102555152783316587166600713294082726410993032422236320722991198870254700356697037028980049801449110651750699657871694509626983107492186004043556165007519061442569818872021746013481799194311606104018395114722532686604967921353071959067938667973084878598419028619914211327589230622466730268494709209012634454982857384508205736696581963909544004507028946581938869062721839558485803053397233184372365790769833984304615896951539208520053965490536937568838451192471289520262675240219412889690936926227565719488930654469132136720716001213664557990866715120198308302011860952498778718551714187723035452139565542607496329011944982936252416644608840444914674236223297029714672256375214416738550716534269631556484303369943293123817266957233089798665840984731447355867106204459036631854963298846519097265539389941072745588665434519117190178945937569581994962283367939075746826046787042778810686462173758999219372127722005819016516670691662369945742651216969006216643029033359461025048426756587677012938406249384285274621912715441812151286666171979577606205776139684877348058004768978881428815700184692481594482844049299351895535573097855996548533730833112668308144178985964498916145822881328515735425432410322956758573941463894177370052574558140428238709999031776205947072367049202239351958357861146540752460988742433639580541026130646040150481992998589669987744409714865327454562939210245391446192003709022896748538119434489998019258702462695161145235159872305182745713886649896798179430450750866307633956163884164749683517710011713346894429605047918445634302836585451792818894817720242155455155086861590206636589658608582748597841541530779347322461477566827539872648193210294226355594026143952054532695651171879902514993217771589821433740940399199678432285074779813809020317634796602867790221399722149291347770386410572235860448952320622857484337501847093691875316453377722193793941450277288925796955591853459511165429826618480484858636190628100068727425350522868886177238633875807010190276795835079189128539331437360284503477002670431106996693619245952496043722494420979664279545027150851403587132317692152713080067546691167117728078269667221202183362805320405235136727995661831128540677251514689105549539278141282373433964806852615659815521094379672518111929285511152860766495195400751855072327591969228809944439161336335573659047001576930429492006997268168646919640907027502403766861723588675172199874618072001556233104421547711931323878297106347772115305857859134207313329043480758196477378941890993349521537717959793226491818139992948057636877152214440260422044005601102820575983337891472252129989801320445139914423879407112850902101149260427133021225167743678336537111931009948281788616311847420234173820265501236398462105617126719144277032179905443547337170580902252431494388824536311495918695533597644635316866643663763749981436116441231143664452017528765306751542796080445329689314490931902760983501698781691980490723537806931345922289425977082187386670551817172482379689349811394970540610917865311630395718182694458604041327721741420745662695308979285717168867034858739905375449011684144264696387504802354999355911120831751019337906640019824895767173297262789525975641974411064057629189205123197470781979556942395248276519049638450246608362692499574069021548383529005078785348574860140171275476841269949685441422295782636188575140991425834455794529119579075753138684920054968589321575103936517352073024951794574791797986341473868007899367658272313321835294999128733955896848213555362794877551799800206284927791457459664931386196034030849984084482880714115866529335992433663241167094777509438016894406252921055853698142278811893456059553395856585800864874480292631541160837562716625895145106833171767946014346362442311777022252936410566379633833500812309134561951061912229411142737282674776464157409666426994307638920662057368950467946101277188720105411996506223149365123913261449904455401141749714203449932412036089671811517831380699503974077269043211224268024973024186658075429240822303187901374537473712644489916882003823586784976749146093208412588228000596362998767203018768435357734017715339301025157249461188893527369968900856080677055680836219106048520543155504975976702770255716279068592771515715756280720924662995561428113859417629281812396344230681980915821180316071374496174026716523047491139508353832976137039614498737512706040516860450090129702072408316260052118555511294555346186248341628159702593860287874708159832024508952170499993815509996490083466096246827432591875772811749411824605144723744436448359299633918991750848827324872274297783238241798732775163360666299745882701753218826513645725053159431820590655028110705192419577433231528855161329338205351428654867444975147080041271114368299469567467191084163370885204763917039290620120116807209979526880549793571630898482736806377331238741804520222046644727810603979892927262812625333185005120839131318757498801008014242779711926224746471870764607306803528647608703209926109042320581963407281180620950360420593476542691256728814310312999108515792838169983772269838288073823925671596295837730432533588515085264583019660138546990505529807091061655202267054244463808591164955049149856105259782761839600568563453770215156246587950016766452522393864201096746488045769608212274008253113114656154994105570037370777184513968899913919985869798043918009362967412944315885769163454785987728971453192236340787905566368066959283346273818822120473831091747140534783527576820783051772066665487251552467765181908257375394560501303444818167116711306387364446458143961231845385135393592435983646288624547676625282586015390047813739130181948953063875799255715698099185262278802491194662480562338426861478400323385413248792165338040920730093177914482283984166491212550939041696301200190797802117629389467722905051729168635549926335338039096630048378532839813041079269222613836338648405828728121224726828903869071148892530149340524816183230718100412819785734632473935597059801805941159014225298895216112736651161330405909898694127580195907204826213575931080728965136276150973762551908785453979251013355413392714740349677958076597431458291144055132825132482110183415336124012505477516965815686038702228166950463286814559878773408349961380939122288023526557664989272120840448027377754399453902622030017612950111070394082072538768226651856587290905543614892226949468242951868684629892595574142485411518665939833034359890347909590362918664912775910708135238730964004448857786611835606250067923279810948064214217778186081981795359269607475854222517323464352978202550915323516179220098453680128520289059538278104880214918543760716050534619009627470649959480655632797816018017493795581789539351883547665133318604697470936660676499980457781497256896073757277894986863933213633804798343289209091780474994534852605037595670629281325764820696155247209199381038775665151187193941875323905059081276359814948109057320942412700726541285612460613424247250119165162634756377656512546388452807941408184307842269145111016347753015427507233286901375279365622104460920253794173789404350112690976209049817413596314982179756178751273023077192375071021812788236724572564574971936030122775442937053444301286108913671206831034314196078610376387709332287333860912263872926611518541631291322184072490000962360737712586214136086633756819992780549358811903391271321124258540670063045352371806792547636624766195637783142678251779240524296510135165246204633062619398544544587696192088576220251807246119250964944186713266765429937459097736271867651766624797489722029319626938418797689772790319237656546051704328661210823279753453374805111589202539736681866406878372847139586068605192416236492685575067448195821008778229957340530000604981295718442435152601599121721794381440522835694052720340161486022421943678108572536793290303955250728791742505992788041982771385947513194058912643383712773122340032808109629630437827530972528008857289148947280952426499175478645777759009793598094620184344229049832495083734662215081497319025481741620508516342064000446576712579365278334982815601434923408345468997414036766311443688201646089430716859107433272524515424195393304746703289962824928289620223618925973190318563885982475617404086602733208390847474648701317235545613695814112439874537161835979480539566682577270549513795301623496603088120494330650362915547095009087407966929010595327995652221748843640401821128363868063866528651419663761744712176850336099690386202487248752834089755418108823333189774697745059267802541555823198447101664621945754283274412530461150603139307257462421065591744948379469888466221594774952954826777875049589544969485967481473903720044150899170597150482762914280751734214319038191358045374312506629787530844563786062006406106298647818425728437523869856082602088779944729690150719021787623502260384192896031034638716709943728028693144135941049667532876289680094043057241917608627019050102048769120100879764742717683260656445920339600862855004262657586176078107333594658144468907255250325368803367019057034233118787577209620418005099381667210790554694343602222388471360171190619793718654480554961926632062729891976621573092097044902363125905971498760407858093296192120676580907303471463857820159123426219269343391412616804999121945875770508003268435634209215656564934731123760897572522492136974173150118748777872928667306149965289009096020602287854867134817803916238010222767035186663915029930470364799792074508570571838005965805886924078360358930523835081881401754159977884512875594771591090056328317058544165470607588647623908318744354153472012080020517945424578946664451391540004588809754044780952833479405011927033399976424513704653740667438912934572958229114880759774346692031221937112171640187999604793987233126849468799966679276905025970383496136215607603253386052262372676075650232908636061303600301976242668679767896509847459218986317094876932281579008286496244036579040152847161330520170599785745655861541391396077531101156262944172705357564779225036235982875572262974319643534745791458159961913585277230439977917205865537237435248127550214564611403644637576300606485419202736978609595781131453757749084496834969965927009259864497389212666171584061229367251584968498848370777999091416837724615724964317969084906841265420255033853712976215578148885702794465741596272779138161225965022374838747236157775177729250952676884278518725938405521814644601169157163665945271511259620502369252134559240517148501070034289000789831249131914251163924023984050185550074126210895072012866942052404555104886468072030815833838662605547216664983350068957987838452890084207078752372205661437005672204287995266104501630844562035684983347406927703068947726444290662970190967341477874114780600328539672785857774449910906843193209670717857738201725218744497024909247741154908123269243229892762012325383462321019714502093263346971032147937853213136114870915084423358303956939321679641936517184189687120687010832989562729691332144924057880793091770899510467584859850821429812298700888904894650174904208776694389530137175070718903851502515861209347200436844747961828280374522063671425349602673083493918277872084245605309299474885091799928629058929625553651059421854293189663850402641343118385173150459336426843322250243949333343078027203855796884697659024526582128472890051324521513232670591283801710589205402942452679869077383044201189241183336859869155949579748516790762289447949586447252999754389425918579480372189036962257391188155499999621968647626140742602259021453694036163346065972975671351056094962653616973492124818562280065779877158429357259613268031922277532722175486230164367868932270039154238120985839713563909860248780057496125305913977333973843004249061438313800318972163637675891394781014249070423669825557827631821991076645315645103435602840176944959760774767140142157884200398691842513892000285751882476512950171102646411141950400788028729128663266403478412518582363745708291133586430952062686844552287551023539831484245177901872283476111048548760126245258759397534273443203811034694250156289660298803151853394668999114591554019934073494218234221622080619412415910014711332288698850956950620360622061884741843001516197689148769698296642610417408071005021569957990812396982424135622369304150278804512998126155053252223601768632314907508628111439500967193907312822136666340058940462098074311115112644924982176249901292920567075145266182080649901577027582884617854429547108973834162385839213305846775042140330564466101991513268799726972438982882650671513941328331132489617895970575668978908852698296458112991085762550483533487394550737281310244405430397028816296009157915703718977563741240283734004489142104843364310402444797475609807979642238916401787405613895755554600020934630182838218492415848438498777929726106935407213242182968133308980386326559359419472468972786638205006101414585568591302330684361264005704182053244566621486960525859104307849995035279046455017848960832010845775293950666663086110677937155970331830361964887704557350819462679057680081020018204621576084007673561390006720519801349656309838152355595256062179671054614016742709989973852146889416310641075995350381822914891248783487672196141579317223485118958061221644905905020320352320184204791778875723428867409221607721978632555805419819310254758382011491818810366920825747473063572084936486755260444836285117542691481504584306085937148185091841038726132324070701059407501159730205805120771424499524081840536716367405671540933694565756159023054750079113878207463199327287037472477327599302549183970714082127811610547759658432308444560616737296627843714271756960215653402685373257178794645725271615527516905977125959494499400017445938444897564334815801122532971295806121212654923905025878162050037995533024851183454619102846848903069302183855692623989912225642737402804465315950770330929410166325395710963091967785677511267796935404248817179328458857060704185772355698395583275132643165220405742618655179058631301635936077663657999176086250529028311979822951002146946558815981456591855135142494710052086958001320074512532414420706152808927274766313222235112884385648627317137034820006111799452896084848114073156626529697321216378586281549909506366256090012598767069452858202405377595965934502378757645882213075360390478574458892864392625975023947267726569429927493815059723029652368827598864363663535352497961337623525300855459432104683597817812129661410553039147008771600200057796417075121142049998430025901044969161713157883329748646101330018823788669049900139151187470063110962405673186833029411385712491454858591910571980322294106892003139822157522460267837054787904246126307555165418726153977956246948887324794222725100512735184222363679132971633526023684647125927891848295051980673889721750063854949788051638316577876403228257936282526124649361957835779546751962803100751786942130044840262421263786052158386237913853602493346408452106475721373845884342809607621921271323235738104924296230231455176442019527929122268740263493263765291734072585458052238678370550084183564109140872739824890661068677038280631278283268334450423045482326400355411585740799221832929388172840552605843425886798257994264408676831099961495068599123464240057413953259583640948653764786931094886138216218749186913143522464241055479101234472955222886593218977371807111008867025940512323314654710937571015331019459509557255437456025848244245996200687861246893089035671449066889531401323065702901181960888538044916437442340859490992890496702156873629003233400993771293338703572861120979891472439155070082733855004074137432439609810953970047978165830570253925409179113226531299636160703991421445513920138298010183397254516548917548831966635372976966746534497250532713623639033701567539703683054083673473783570659431237729447086136053391263844512099532093881887861225311326350878494746697048907550461546740807960393730722944674578793936251278226977536740402745583839989561120357268986495335502916515278046727704012540241031948432305470305592117237489612141316302992741539198135167302777294674286598231608573670073741056548202709798219087930482739830287557286194735074002168282954895844840184264989608301487900407979803395116130478528608785340580334780319586269901704773591934251916921648234623058926731169891649164319066785186648630717015581487514450913813445691679539874606705255851610959040202749779826315147148308109445278464059793053961769783539636042597238101558252900629653027593902810137210443465032475581209902679795098265176343791516595753989883564897256157785145896356187043784557234190947981425866074449465096005040379213546974503672994903238070964891905412201296764612242325472187289482953874646736839152568625659462719443365635338700431967168289008611791692659071957681398988137918628426031817535175245880159314751357857113821919623180160889339354158383512407399131705244811270688138476202464669646122838301084874106041364800035685795399385290269585668779685522643064582326674486778823032371205738376337288317256915005215008551732418664068041812430314266695801892539724421836036133653463889657669787175110525616723642857906959580141695289944277743870271994475727889724463375750931029726571581707115947181287079130967040448147495602547666993774829359356711653236688005597977962688407803614550300265515656097453943676360243328848898444836224537742381874712156776496845204361444108533543032020836557118737204753541913362922883542456887561541029242119935993623663793636978068495295798932421339159799300506928223118061722555510467311662511658132131930513583881542992491940406167845318804339404696556912459945744921018942260791710794933382481926737512782981497158942436652794266966580541514945441832640467504864092342826767747400782779260629900001033971623654316064126447697147361345034260154868969095503022431592917089615813130112924922522572990241176618586642396188044657073118132270324231491936240662319227355894267417526588428447017079777120036379410747218034490357183445909417285351777456046858108688254584078151301568515734134731085068930954702249946014227873462237504396455802221750014035776507896491004221087527828285313341548607144424156303770262585831632023571170022940423602022710994926077513151608365681537167287662811962928034705742239057603364769984369212357744710125916199001822832666720300151205019378816111502929811107774500634923313685631625314667156904885834920278367425067267117538261369937882777887287657481013067399681977064791201352775919026167401781077975193967863485482317938379931557760083001777543160048830528092927782947478374042383985508756864648082386456264491802228641009827385860087713925590375602076208228778685261336205788523715332169529115454197147661420585133196212668233920972047785201991419199237803819873211672852139075628042223962123274385820779568314264291426729029507115538235433824590199678763587094954318783146056417643708307146551256313241241465709164726361398060386503721844954907678954252047917125394304067069701243913631043754512557652001206871826187865169734080614756529634772993612424644537634236373758053407006516245786999374279768733713700541491462133184882535700461929445210028726654988847369411089306783721555420041041992686218352953131053670008488300452860435367613700633538453078384358049670364778867017037825052978780181732132819264863699211856157493879395502324350355465253697144123535739699752780887462144645598947938163685014685189472274691329360550367670457099348826896915517613154941228493620002329215414633351634203465961591687424255546738351019595109180497275623081739717847830402621050121777212224307026731759691318096713872867481087700142734420752911941529746398187261083334673254764174908970571193268740152970024426278965441909252945854718952200889733567355028555757902097307646055649192436339082282690721106799246056822548463430870780270010748325493542164229698992009551781011394420801388079356237180573193514353078909850883533935362568827196178147508262684317302845807831911000447055990067053766573195556283676371408968623355734587237877979450099925007164701593828373263430494195930586338281587346235254170472550516945547780515169424694575154327537384099890850932485033931504184516557151558901673767085575312609364352390506111180752835626983390828555721366412737131468572966754879940353835547275503854309007161274792698912354256008298961972122340987258844010210723781504815965619190780837418706940294018647565245345983071661355997621132582056893644634481176491502170688781149254950184930452320565247872417510315655075241602325321903876799646703656248395385232911557046554235020529916812311598611025400498886853460589096896542951176248575693870539630061888712595608694975985314685152246496906243319630975279767126346171647151497127534724200796256098457257936318160447215200113335032970318192693202469753012052585602541132738959141561511763723358023502926028909309352939960095082890082152587743780255142383345077270978272825499508359001922130781905668377843239869722251109315495143619853586497252578770599424839715292800873890943380646161182434713342210213293500424593774460133174274871866510765050981653022377586797262750651038904544355343158625012599975117199291884870995996086060554575383134310307478531225058172967250222274447723837538020304001194012860400666555112581382931100416395099664864205454836491406711393790991170809377447484288304890163857609379069697792403188312554634078293448494968418128474163802429842941759061844631179891473840886749777606732980557874696308976414023729331678720589565573859404949730817533189983816383844979393486560183413878585940573108800782315936168068753844618782158165591411831596796928351637278731674134863903515330014311467322375111826520298340865578072535569455577175758840314230453833266813654932951313364666754850444936733112599441636974998391838785162539430108580511965618018090422411189567736729641717571314506536027692672606363006404139071672072849687283112287580714880240189215206589327126232074645215132857079689393817938334059130603985112908871166983800746493246410769803291327338228637350732466348598696812517098746468621894366008329757613506563801269509973611473905102760254797852521611454185218677888589361761702300116758197142578466043324369573078320906320379074278537869208274017909887887342061567303593140196829252018302870032143892566339283854931448723350010753039615129809478175741370172331181519207197966249731421548489929450846538287798360778230383768022642391473679526790941240763686740253522932658159954617275893185945242252658235572448241798260079113388654791405375657260168290520147456847310965376341681397395539836353926695134322556397591787310363467545061434140708422759777808762716082358177144780275158360120079191973573277378032260183460985411756920701764943916043982197108952984029109156890261591512388514119317069954152903054464029774794219799606336247304684017408734120747959822453798968721376769453509592059132546624142424754765675267868477724150502129537270476777493090316085679031112578487855076529139362027854058935322569309601495588003782952861750587989658543951904196424216939714924389344198619514503254458022585524581965270525808314461094187136581742856488558787318402326735459089845354491816466461608488055407252090607934336749964442603126408662763311288336686634029229192958085309182724077238778634349178412068942677813692777181745553161781712356820265395854924658086317094902684989563876837291326849673747823723545285334428390258006674935243511686592069456672887257948013188420290975628122828731134984731423909376600624558084227547599184306746878886420919746528416267970926909550258165010098752105522513115020779494356492185493069766039672075331681942719997130536117252849144695989435793692722478735685505702408520771877505488176439822818015023556769607421189246240776312424159635539112764550323912447761407173606632794391978142804984900478830555050781768005807273251027576085264980382551373014216659439616656968734196177814303764920135538630113534101094476582348844043536680998519122856383043311422416424633747974210718305141756829167646238166355409296641056530347107722507632895758863375124165060195149128371873745924017161051881261044126794347080584280794829003726464684581806985829292934850509296023922569424438543797788530288524761830018759472386754355999834937705097568297209314388290222844259086232895943023855692136095257215168128904582407271640692240473846840711940174304504097594202823074972527498516589625290008578632452148754545457732042908829004709482193957999203299963349218852425000156600500364092775076048404216969310550331950899156018595278687474463806563203468296072454314500495192476132580694780893442449609679101550297005807312824928647865193801141995949009516955652276895861597256041762543842339231711753220202631329939935355026135486715853075008559621949957702079179063811857576201589073003610628893723686695970736949685584546255942110244831506428852959990442507412640401361117798041424665240391803658621480674874327667431347834003631245559966937786445552102431351170814766096584619515526724429785050915928456904566610394430627660171284878070958607220643170835317089643614230819682372873801496254654695280270106128889445630768142579383177332343268430876884027314860177389874247887537165311407685675611629224740697626948568583928370399490377671539257138789245042649002362256401394125867072055029207379012340747231714765134239887121531434635164394384247825624237111049326809013308329732542222577155276858543884803486273761058390204502633459912816538298107325118484184631215922090550313469514319037549383038045033361496927527573901933913294517047606688846552434642238448320165696948863749807655996123785453947895451113634593841838780431251632502268435772247101876147317860181675956296710449250034996858940695518222427135269376035075649606268666982369628792506526369412073793489481783364380084177190424298639202516399224827638610863359802702782088535839669723342435541943387331033651184673094011197166346779903496271406376977850760889930958635442226130462517757425512111326930123487238058425144854291523916851156095969888223029525028752172516437639654108092241135418881196602282202966937329947610744845517729141619689271325985518256037703852828188827882693339121350249624268397812857913904923606240661220989861601288943467924453005000485911441090146272959391801477911043009176304989902484400726080834910638642353848887901228524215833608359032914046227114212110096164022963970856512465351242434456616954030358196104916303411195950195205855575493493745012015423132544048129106839391281903628299706454636265463621682264409171021737064081983068733693144731834355995698665839314301527956192099616245110404714472256176401395767143523349835619088183975524116157671157965943097078695228710601345659841423050038603834592592519100643007948946099399445014316303162129381769730111684163176703481927781553141274500580506215319187388840206215358531059138895092899913287427577496143652465696494460821565260276507565190693325427359523866270317545140151899747775674077952480430187218988611887498278265700116298512072975838307258397614825729502992051772170081362794854921119422890418242894396685761278149416745548369601422891905367942468939079109992172039073104433869173598409673060092544259948416750883306569957166724307819905117174518278820278337862658726146431995255338246389148942991172769737592434394740805747295023115593286394919708743390391256816357502756387886986178998931518089231999514714696641339859982496180590632538119773243743304370156747879792568098139421022112978129192237458103936177741465420586798240436585783531099666280107666121716438576380365465887271928771580740303289227165857533551546599717283160517207054666191716671984255540844099442281791793868171147540384641556947319485724181786281413536817221032977637888491400442751365582652343179915262168466698580049514567945145162606937802068988824794717587580843257371192860655442410102730189367485343061180722903622283885103565603533138969241042862360759365350739203608323684753492022511833251628643296442377009987973130339821147132641256113478196190159889873290539695499844932596442279971929767280634480311759581839742582948043266568428162427002547505282256873242629073521125303852140078434309328182816509323997682357493131142956651345100989293229404162467026494740990207845125444280544198073547416366805708238419041375064847924791700140663394974413394717175369446377970963487300076276507807991686263724104455489591567929190913877530347763047045973187085618275824283232129840126346589662860666690385230529293387395571740079272939778456262974480500755912127534251306604056984218333758937125263712452954339645815253188815446788057722078154566376683877539150969180047701995239963993768030357718175907094338471102283650123487382228223788135146139999659105686858269352773085106249098214318302611811495969468396055269775014875991505353165461094223305233585385607526403887065925012615670486232110297094146311724390184959073889490260472034614186976342456576120419844573084754455388656290110370557880369752668788802323371738107281263725451906318154524319704398205369552309909269570442394036180198502584927761294059507682321590643960615468913892662253546669761782962101258163428280865008340071937426978499255038383874400228076746644779457913032666663688748054826479958319873419606176021347255059559225945638406472069341663172559015802073265215946092990570060061456077644894271181249573466432270272775007993529149447472441866368643823796693505139260943903641066685001113664115453917397421416517804553767620191578372366225419447513036764350387555966810125694828552180489208393934251970609345076049066691703726075421283477292428852650355075190558337249648290436606670795154444001938800632016355905564360727392945246316796354546660389416589636148201364329629028821926466002657207248462181576359682477513362941244320687135349962250447047713240346491350221099541392492221029569299800545800375755316886894795907077400388398413895294329175839200372567123417282632660411498421320132673524256459639199787248854047463325169134379329766042303290949133510329494484295347181220949039666570892467686263334156572892591545027711475665450990734835151747672730934552596634933854960686872276277895083691142946481625518565501037841474559917436992195303326937489852098406693760301662041636254267515986170322791630864498672303044351039633673859168583568623128754140635835461572683018975453119178685005385339858268308818708782152494957979864697491630811299817771042143081023183487686863873448135404308399600166241346379779676399786707895298047151685081966721158332881759866281030941490943062820017099565453856474897512192026335355559961336136017855185028754585298247165260356515816561024537432940831163336146338619495239923896839067089378511306356982549974578645755311252737484516288683798507539634930419765685325337029253236243383291957866623930995464667451218355675450421911473879525080943719629980480480902472324398785385321870594837045196474112914490954490915358995492331940258112730757341924808339454228280100982551861931824887719542784048262339043024964066059347086608109240885144085186698979225589541778388357911545424138391466825824615799829575311969375818913759523595036592121444730260007925224045374487498054813374400453848785017871692902611230387367919094767801545794412955232415648619338098502643080459128318554662844199324120779286199095094143336504000683651604149326234869220567436179859322204692004373666715784960217828634621358690693151674985197652832084155986947377664187779427528213453257586656855901299165038671847071014114233475505141383031777212515550589284659229677987593076073832935374733945109996683800996996586440363678290471846855953506737286225742069784109361931132659492753148477733115584766469812353674009314993001906227433083642866735254548145421881659758856383999117312104839513410729441400887743568464172867553148193609962646791698364251324283206062252476082123728733711788655394328191915629423533126046278968326870504689689711487230062351056610320211525301163218913188550327241156411146116398755278226612564368696714958761599982165231119677772281927527100413927736274307162433716177944999346815888627454530409857372013704308718735537291592603516304658970155670331449293161853169041453212126809047387267276531865868581896427816683393633951132903278758587866595034545801067671285945565915748614218760962179653201671057542932641749832198583041948535174608680372925039843974163267941664257853552896951194043293898098820922929101851023465018243822615529225586535190886181495025876562035442839919913845391623660057676606470373880602551198547357828886946362032833729813420026381660411782715649367827799477648440508264534999758797957477361232397545929343730081963877709585097364238423964680144755095229128929001694156683905040124857566798244889802630607051092400022215993815987980122738186767199456919080217274421070783807827019167113078050257232927082116432978456647545378873808115506288288000814186035068721041444602683255448467900628943853939832929601576842214744998164273052836341440545800649658990172705267097106554706865547645609618927315831411890358497902827700361835149174482040985351135312433717854653927187231426623650503718199430909604733918327066793659627387302870178170780800888166001550708214029782788863117209018491764197770748817640414246325847659709871143883518400958589451888433288738005584768452871980886584720016314221959613615161169657588686668687032965120340032351887482024083620331556075392474581901641154827999964336085929420549100496180048024322047213419455568494838156009922863884096272122744939203879000122762887981445775915570412830207869503020407062147287562799658045290662989468187661496436773113366215800946545049015020187190663052376490875382629723174285929165901145781808000707994792648615259383018155615317059796526504706425430650268639925975925086645516293571240235531355987089629657574305745880421326285581701623730256257439521961335627506476573517726006785692830825702091644742653885531156452540671360062066754580025019155961538144520629845686813847994339756976462865750163201775955536235763296309650192487680282292053127322227017667715592143356986004234204679041890004866664365867689884164486274512442898027695362591813187937829718476852991594777176584124070676740332995072418358279177679185957034208318885834047673941470857633509054819530430388268293255435031758403967449424705256393302291280958076369613149060041980021121884913285426030950831268647446488544037989255603680082218268950489285755314147170524969109504384318012226462304376142661573881141132049976747025207020757763172857886804319460886634391514681895342027346532764991912338021540672818183881212200559230944430902144492220754908919622911619259038574631282184611667534108611026900011192053905194068371061343141773642035175510124333819852437250498906664439737865228831189391794847340792509415234613786016168586984675187879740906255628350779780186864208755749420553878471518422547876823811081696911062381574220731411681346002766904553702580873336764333150768528627735523846084344674732710000270500083562025140537327618952573003798546833475980946005304123072947471501354558911886198948782413734573412874923133934835272572110236317922605296253850002967997588381020451985555737890231617271918162447197145979097724561205246745924978353274950852701471108826216566402485339769517212804104502267610481670371632739271547164922174188530928381503732199616971876961018683434181460928666259069449820776881821214150411825507623739425971148933250461991052573419575408817929435275706880674208130240478798935903148687893608475846083981042538069045093803690132805400663429821383490899959505195808010726385462204743477337283049820729720144575517563262197177711287344695232111639330606079037742881780471937164526270939471047690999860212972198528476804306888263252671710672463526450942637641231456609363079210764606689719674964386012261780552548974728990170556253977175839373064149375992412955381276546029335201024954883440349032061121017908994766402208059687432138921664498909524011000851182057648843011612739268055637838553436803797250343575130945672843136886054116976054067732544560331690361965759558440514609411937916210863002385910696057448741457660427967163126391109268035736593326608089892514195473931203027185833151858427844456202886112995658648333490648462439488879901257927793906298118927789169930632948307650623118857843903875059210205186069751141420564976656153784712895204234395650168996253195837295574747010706806944254013932967825105098742495129742945827433474582183193839792474053924456936034432614301434574450026184634127551592455381686765411430692796238262990467217992314853410083384967575465065395294129757601050640870898036449145260326550911008383902579312100782404700134252705156362633629343491425698086728297311515592144996206945908297813370656979150228093328086999150097521806770190547713677363011864384209024685159389686687522636035448405169762501790313750161110747666993516797372209430430055494064157187488639077971875359584003834324230405998594877647549179565195096408637694048007840071219844063793563750909943280048508900276400149907594395755677491591834253485110579962293186278713685008166696267160664944577078162787157211189342408663077813002606959326234535896088459139846594115839018811277130327942121326857150956680960568390057816865473409817907033220429228841583180529403535520443997238499280877692168847390119828720104440427338929039185474646224472316267378775392248116502541903305428232194052491553894091661748732081283722849082724100217104804886575164034071126101386167072891486002867226610396311632988026167017147092103524694097377568416115716491043552186559107889548324627401088774011688114433551740606481069685942175328274287272247980071301462943282167475629563639088390072327654730925035889352443582693337883758420813519787362656179400966563310492757214050767803701600387971412594224038127947415398999106143515189609186332886827247510340392379775469615439749078992004612154036343272023658825384406653679339725086917019170850737258587424635726358325401373044650617353851284235984794680092444122289608743253576402120087204415676477331423006876903028882239066542573504707222443167040855727250970289291173768920623727431312422694211868717150862890086486546445443133509494557866025263441947444308721723510640526467678177434370834198096449734065854913107101248670516757159917494216926767309751222786702445333604922797574556530201489944074884327828252211893323347883531288842462222648871146188213186018344459433283019583668174050413208362267746625954784019956548535940876709378693902517180737925616035326639592562535755063785846085538059915418296797090393946909593884095918321907673056362549022438534593004548863132059696939373017631798827917545123461227517584166653958335457610728871405919015233202532624861537985634265778872345531101160738259918587550246935681155610707784378714966519699766299267454543280264608718692081308691675973354430624384168208475329100051498397010033241361906422155320497766286094363487445470792978727329791270363067734307869919139247645842849196929944940848587363626886274439704079420442726530994474057778675456224353250543777868825587686003129594592945239642254117893882750318759248551071881156946504288921006065296159179291967542518115315857189380856177504960043182778673848423379668065187938696452085415130701143999000133466022847078974174673402489978206859856859801994402954356977695587178277404762291112509231992805476602924199779691969240528902432041114266613914690212576293387817029842386848400395352220788185412021412714586970055522142898366968411277698503329344466992476079580308245977727092099260403861799703024634278999794261299769592416429656226032611350625261838271008288463303978718805491540742607556074385187462130044149011565072701489876863757422262139391140047443129956835516797992714430827997873637426732811673785888909534497385389396935671251225669521997472318754793158626284428858812837112194446845094247879942682272098861525558962009163923017964141352593339471640233368810980122253195507510453093402627968135105449070857591898443054714899696579615646726093682078939444675498555419110283361688416313124662930554353368862370790049056701600358727425700478351511352134644285844267149705105272160119499231071769324266125734504190867883035904859589447525171835376119397106582871397376272173452083424205614374364148507665707740966875594736513719146247426771601389250978648930262889438129577590028548376582226749786237262873955889196714587493399809701717309198519446903648489120186032710460304502875593323716897331749584974732228677750328532300880903153849084379175271511553585614530549443002015521555820447605152885877832230861002158665904046913866936782384684304427910104767957233550774875791688562077124868409106423057662655515935776426389893587322612881544701074463480301277190600933388240267514800586785354971396622664666956431372621031927877182996301222719513263814025476554299216972261907634071053851571331108228737127441938760350162280575388113173722112628005330527771863153029550313584236161268702357291808237850582126118126449627011123191588537603549189909572195046447561718025985653554016399978560197475744612660421341761839068498189538638059405313795041615517993199294314628540994668310923454180247071223506884896223651236220622042157578898604902844178559996317140933493279422181546987554737061849049624793543848587576734250432670985812180474054102834899908558824652181418770459811179380122057994859529033141543648802761485715023691575721883707643481105002375600384550009578207830184992811814408539797014414501038042359545447955468368492170442071455408575289664644115384158773212822435977602711098335645971820153769685188550933320634628522092967432299620120453765260659878194980704492119229548103452820255166054997962350895462243523192188884173372359648079479788947938574060457917688036145126065313296079042918895968912837983277636973290576170354538698718308699558921368161708637665116311209313413651828885087888789796774030217298707471466417106493343572097958304905208207654966797898976742005974260259368263218852822394356763972937327000305846374359326370922542367910295611155682260866948107703405664365229826808173159027648357019131438969493490583690670759628755832099938765729864921289807504128437948309487251412744407300518804131201156952644872437526514962022858567116594522431353056964672700456410628966655075824773760818371677851042058631577044531661708455779753239465833489554751419747595459694723766549434913793566307241269166162332224638955573896331139756463574130113858647589040724192329539319421518998891358376649047650008038694351348840682487450395033323450552697500724542287746583409924669331627566277614681896423690771567139436234479443963230066420354961398244060448394675931470643012779930345440740606362232133662565832751306452306617040082930419022865913998555690009971442951396255551518424287561836653485143014770656361941625406302212636533316566306869954484836413211868685364291882271604956889502212992858505510340419934967781118477690540799419407735569787914499493275900514531707895844932517057493096874481108593776931838841623814638439504252580652659186272700289527718798701769689699673397759887071900038090112476679961439692596037000825932988044747650596071352771629569133418861552902247898342698017712755434766143038768612310551305671979443349691885568898463245985156140565361688454326861445639230784971382824044912870261866256602915622704353177960285032835288409331810974037656992276539829140231285384620149078482448974060854236215563769435916166953864559448976596092494928172383879775785769971089710869730829654887785085119160868795193367571990834307880633131529442090867598747028201789228633389780276542236044109479859807934876720049170641836171747904506642605912310809701465242403711931506833469766875898915128464979084805763354940058601400739416140210212376695713155979756798547651376835826030088668942418960145351267028007493263129631796037590168068597879765415036287529265133147279807967926988521382898785853078818107628666857338064807713132645399341839532741725676701604108579727943271166683272876804458642250736731947899133020528509433347872418436027855954553105257736503241986780659211817559176189939007137158787853457051274837153063408228850447132463959238215345979503802276452365409083226672363461074884449379016832134846249843560156845989419161137822561635829459591968446614376866737553431885347708574353348583008250310318631529739130461526504195763198783543176265858306701915104484252369611158633616130924988061278839784205109144233176136267761122731291508139617578238699703233313286984873375760432667504562134341750212633652966461917920666623790701586122159073321043548371334212304474207353387382907010594500907467325096289439070676064359354109581020519953050685771388487869816965206672828692824238715484790583213874590544531252808885192100856076620269050850990344676791248209523482191773715604793585956104348936234003884333520151226618265630047335225753147743985641964531684387764513051528691629707633466683379338965533780062852033720256547186296810571832329119191064254154129743294959737043796850927521671056840648710859790688057413493473575724347154079645406481546170650260594825728846304563055523412167364803568901934887075502801973196190645060495669744647245886987367226733935742749637726674695469430821250642073740717994649273126582289863978022604261373642271685483482003295911793924053767476880717645382754095115308387198009893162976738422287350172145077560902056465129478416102826619675284478995361888211263901589088454704504798590117670729118815389769772658789880549145234925611699891361468698194946060256555502125065981602967735768511423909622949320434386357897708815839225922973983300585068714151431468013912709342757953208761118868646718567475681911951808067073274238826896980074645208033702517898384949007989197959713374519272911740871544154394279152963237079426453248421292149166996821115219732432490479001809722439138185389863274433747662709222292721901663480381909513014656086835788868953380072243686264191304374180759995371286068247545399788629038091903162996457166216754100211577880492119815630822383838250219578718303737900947237937208957523750745189720989557112456074856802879699548756471966138858036418124958396129356342292819909952213443315871619773928944181289110695337060920726705322981005801159469249651536115129189663846303340800454866592601545454106889114292955692821537194843932972993082208512168525329874036641498848537526214733404358259728118074395081419291582217105445716658445112309710991984161961819748848465899707371249804875342859685032625952709318487281855958623848023353811158902305972116832116579784449591110128487576527862386901962209532594305607003817027875766807952319689284641866881261039985051816986908731133616503432330391166011764929663491249760073543798765290792407537208256857977024889475862674567653150545067882996638629170593373510858368407264876531171000083864788193393699713695449216043067080120675223095674623007322403982366244557383181149296516582093326065823803782384457391307574664335875261053135618030657335627253311324440697095820401203550798190231927104252899818592314112655920740452597635119012443454529807844258318320640102824773299814078327683773861781108177349690878716796135626711467056200422532405200852142788807215515630887955182322249078791556698253265541843968598522792493582413281861622913685784308341747361289281246982519389260966370286723476172109525379854815198137604497615413436546245691215800910462586838218329526846040182264692547101868184979999298166296339005729883290954073180497340772843795807063681391636903383916323164977987976430003673179519028126365775317188725180526063629463011036178791481403136480747452773792153031921969085279136713979043568811941315900434606294630833970707973734820418267671148379944105407349265820016959130171298425167476343519468515117899725605690704256983177193475801258416294874299686370631092271564708200446607575291672389446250055787548778480999481274711072819466328574958519775262265250468438883918419752893333041313845168140556385495034061722803205873917535859769292398502079790717355126155060370000901772375859131333526622741494509854405343116252998710460365501905547898906580685425508436168254533342803157497151724418687357420564338049381404692931263234410659563579656330944972933540065842788437447729558874686059667089703197641173272839402180680655851457562674216516628983186037145912622037613075416001727448890790114556658668200826181498453663577396364874086389101250641474409259002219383094523620032754602162987269228113668540760183770988398011883787817065434265877504332634667159150411666806845453392123234801090814327645868022656069733668663804255871182779936070959852712625257823305291193723918138492098631563876367184100021934493277024193814724107648503131483472384131542044758850929337721942118120378277087939894668242465214458417674953626061172754430280655113226780261781738004280612450567842805704157312008938126568907461093880845044993532121992294876673926335536577174557136817670312437601763265186330682168664871355824275860171566896412654692259762659769470100745874324258290781152396278637779826724617497998658385705057592982681088593925553267847516014690403152397673829500910855000529362590889787871100647232957880187557302098261918883138377882041522447648826591012547096994113908028851237043193015379060278132581765941686062707511171876070667806873580549366453489521218330633029916717338393618925670310760893541341300628576806961562342424677275665702491143717945095580481037668333617841080751916213932133628012935584412699051070968457034395590233999808261966735648342623300871844503865909294265922369733292314574399578646228312206635989393444665299466840462878199715495350087282504006954465470598583701696366311563667656788493758658438997842968852537518570883885753975984835183922397342533105330819692496484098408181928782599741111208029318765243854764403282951687519838992252466712152558083793708854050262072675838498744936080210910368741928533310587141234419202253470368964662512451530622893826770671071286780380657029798761347659081345998635621667179636612880187499482621119733151776050368135903138955422033888339517138222387365719729108217153921168455370971488532046205160543935779033346849341180350238814209550705896830188348529342451173590064699611169557121119494219802693518987025509204646856057393433839366504226554563017796895100318318674237411585313395214997811685240974465337372025228975455423654565486461898067096486808037047070760835126768349446196468727440172372386489688414438107271703081013574249132550704280094177514021289368451044721879061317791498327794579334024192858954931073834258363328185857885214397170488363533893441949054978534444238946971947297448271689636850058076705001233235045858566609103283334496805523198407420897209088157202839066767046441236353258320386112854477539362202302041732640858400550611404869577169351331123312029912508236129802159214125697111126210921910178450558064030310548799097863682145154263445216998610547910952941383609555814125740644507890641651118664285707605222990752615367287014378594622689283365742409182230300681625725731223830599428379904596446609190944708129925194100410316124991139135530140803274355028220103772425701123248966507732035461789217498313939728048565100013675044879088886226224722627657455571954741338700742168928890418286208337761741608501788002534720056828986688742298196509313377342225429435617300150093774397056534906576352750493113842219515641025847353502868881114076546810325402887241440258944815592700192073712747116086452048876164826862086496021051477278035037180823669316087136713231625627495287340684337517512517068285648502260455055125996785204257822639605471332413972970661364227231427446151193651358992020624607291440002283756589271709843833782122159385632096173495842268418396469021784607780979708554924848195871607742504001104524768831115462268463982136197177925213596725305315567043193783609754255690371807736441242416245328473716290431202351759058160275626520364087761744627259978500184502780713513374483911542354060560321139493968774970983201368693328434781623381681786478365652905418759859235009424535614018791282464541860247365837326565022231437127766955539637985106544491715977191670524090682292653784195709005928183908529936381266238242571293878454606821390841516504241700898212831401616335608769451563897103726860785169634634412204961007575346402957701673628215787915201936060890954035552356014004516662636512916689553189533737809873566388988901395555075013815998828875984352987201938705679658489910810910403813329900928537274979749733138824049072882780695013905683694789090483682149815501383178297101832335249196823063614100371903885156243278400894166779825418811663339560461841631232325142943807064930357749241232371864803605286959961385208233140594736023321108749029466157425709012422166410622780963158356140492303150136912493682798529676316995018492661617265889512054334285573193092534995008070942072434135836701002890596929725759903034965486609718232183675477616229942316673528090112512843482269852601617893690058679256250063669916012472057316134976071358119153762196388617946205894391091849362416036754941869705472939364784607682730998100752507828583543185198404281482985983613519922353986304498769440135878348136351885558988217679622645689690975992115134621950314834009111353293676627294792698453143291848528153688269156170060740513573789673588674980817610257988626013926311735581075616380863862941931977961748213272454154073826641313034420014282003485368450290155171358322734264947985585829089358744117130542693297749825828342952719110132068284889516562362284165835613183993002285878262105662342657499635625127448864289319994992860103369764687218794339376208874746602004673043628802652690855524783642437496699101484604082855195352449028401114974823147656680623630308403504701147804282111378677835021706526955653600888547959746173789018575149370238986682998144179421614136972761689839122595382546175050809226114590712387107389535635456165451272169739224617993205457201669475177170198975068485408788986208602573378471514954296189104565229363244903286882398475978426493028013171445969952304272734836346148038058744602647443421118703401804140845425416055226051261956556552896330972808954037636791618240434665893488552086366101194498747239300817134690537709449820391952326560997604422025421225173516675973823548919071522397250546408056877422125200372596510931821607898721105560911202068960956744202244626820263828761393998464860096528720968813013415373557316298689190369625659017797531193493981476578795746543630023338820726855705868824311432588905729520311461015278086639837962485659626243687736393252960493659797078563181737296041156970254431738003141496742374592178806185050653014104066040495046765958366554267806805592010636661451590065954462155237180244879345579346091916247860034484838274429766579052527221415470264417433859589926968606294324851038303370101557049558444160760855756186115468387409317807470996614993066657034237282157037795015801933719424728470858475877571700635619559989140667589584695458049497708085778269617516653412291180187469745380135209378934497752502541696232748384051107056867688492569638049207065522213621995346946404707247728394930323849423056570761230722121212207683360249658508956386513079299744796043878575244959982366623430870521302811798675323169442902484215974347325802917979124004894799581892227719885842467602807505330514020778545580411429116885477637229059285759231504378755404325746972076140091590730357869906176318637221227136821169165858980751007219210867819555866872367025955416478696991242132967068007102737983946956041078691014566753596529751628984199978344370150500098298431883189630287127173972565843745749529421941312755407059247968303039894801780457722523248827959243948436945524915108321292692500387881824214895771711484004993462819153554528511350073298794502253914464852952546686361007270262453872816656461049510805801806793549184272542382718406089948000189496680723625588197580793939821828445519666279925033353702427628744074071272365609483851533184670241671985395513600348273237471513902315978946376597402667340284876465397315247664015840387834195808956896790161440384538028617445258217726645294168945576277289866838915912252970900958752094457037049651686109486406294533243536416325930452141290705899678775269093092173123306552946084877346554319640025534228788815245708795689459041740901228910033958699933195295531506189835194846867700674435631763161224098745880412132988034450440197423772651382349560454468730621902165944190159323298935031048660605815029366237479791329880955858978576308539349186325413760874857751409525886587909799219907084320517651890832260811105574461571441445401188265364783913953104906050363606199978497079163403426259470070603169098766757507788705556659724427382423405252896593523537029356931569176317904129166870641921727974513338452177366715933017662964181421678791545381491881044109005825763132270194150713358559120030204409247089487486996138408308079603332699315550957327730254590254152589242380208263664229992837353131463676845853752144691954287212560793120695029781224362976469748455887557507854746604828731986672339331762627355011914234471016522462000033764304116693895844885786544932811691462316138914771744262499974655579788865888239475302019885490766747168001484918068019383096270233270103172185295382002898888190030329744926448469658069822357084318680703792249267365579003915116085656009725619834726576427833159883082459739610168424103647150464830065093678387976909390433997434801663695611259675505383882970496871284122790804767124704733834913620353890178566821933414385251803294316644955570018107092140567676662858068236984928906862196623568626361908188111647701087022533964094499556170466844427406103681727159529067871439009285490649183381519698683601161489389785546198239235548182229432926334301990313343738611331731248512713925188892304907536887361453280686120866753182678310575122980506378922578036647589472866054792761202507162779296858593963805077046207013362494005614173702616299908517155450787690351776900715249454445581858037941077026015196563726159308760472800023341030037807089538499527757008190132830798460626196334837395077457195533036210229242833579247041086044419047867322381966737382511868209058863781680391756128414979273123672002311925585703577922899474452029208117743981700009642342505099284637948402645857567113666970419831012968276528407147571841869297917160501248683462669350003446685503344081789065664758724063846117970332101687899066786697270960245476879146287594446990331973647268161389584488025589286752026735300274517190426497746796021064063268237586568110910585955184066580162267530775082576480481762284478651029020482160760349733324394058503147168036077814908750241927376991164022732662562572617467475807231439739610145455387189182580532620562094647739396708231687734057594119125882473194114411410280811561940608109008044798241153812398611980985331583247587556569345959320057295520999406306768453357465461511313383788780623355570013987408746950359236295940232835770583202117093262127597542915273023001933528315589366191433088466426774407440537068579978148358203507591235334641437666055257184174424494122340769297382384892893171069241027435794043196454083491271233487992572823260793228860170300130844488575930346224148413245318996859243789255252734313680163270095761630565485541796944182276577349512126971794684946002242909789540271099304776312155465113673937190649239980754591515273614573202117902446904814733623481082426190947989401763004347035581364755518494445275570736346026988763054495775487490512783360018093366057649270458738278309247529353464369220811689356697893422623432540209194928142365623643262010629753500979512528181760351422658201803148862764626677917150494398358956314039878962593639153383251604089275293018586784445779633150482274833903405014932486096976441630316992365350061862270130248104791898523560145554287954485887695704282496481924509426944450762344510179008189010308279373448917633243826939882391540336746355137629282673439471539784645145588627005021588031547301184396943083249631349363902612823354356554478643024762592372710319075639146739645458441440254796162365204081804597464930817414015962228035305885147360097313618864489650184495587955199005123362077424520410128888235858044524111968141944289922464488530826970051765359889430069617793507749655745600894481039377442401744643637160650523662676316151021642740326884922021874942441952475283650624431670615034396657285108088611271402354301950059354334615201867232760951264990468018866699068049587419640136805987208428881027752900750690169018568718762386385071350072509430229161061573941963723392456532581399844487521901396108178594358332043482048471677361184823004798002318127847902760384366907489312178697472673759147718838357605096140351465674021746607971506187695086563044361319726205393736081264724388754070185887835521761276715488573818126183963436176533018875658566136904099872049910699081675456711730665653843975226563937206790227910764333902565675434829186614492888329185927274310559286074640839485842121455241797062955310937566457927658344844361119120995044815672820139138786718429053896589141352024427950439754555894420966513502484911182461505876748852166836898812507417253392504044880628340476599697611331088585375753433199629913713484682646748293934943558827350641098713522886519311246334149809873009005375773472059534716159546557647754581645216536996667271925444638282384363389704910787378280502161436579275731484410461959767542281700662949525896013934035325089592405805279579224153848344188832481155527174144413473896597093668726893509093629054876331263165333156268427126530464043559106805605207650470608715263538757582858971636432147165350183721391287411647278941662028125849699375134840645429415774134799827071011253836513721484285564399737313452191624320495455830021603189287705767272010754688795028481783641706162099247381585229717790775900290333997783421185018438397254891449013391385370580506729002312200288711717721731964848646930927171802633550546835994088314714052015223662978805650904381804319703771117700373459932360350417270358573601015927661528288158189420588206216918724809892608638362463256343654435704187191648776132958407627411101049573739752464357198303904131508937839404662733067050301036385701451004205270721290267191401597195772770203238603991415496415981777928865282202579153486693837657429025702806093756319740895170230647458787799093044776575736674477204398305404285929948420077997871535266271901249110352950351524187560034833913644586290751046092623817749036703457225106134410312211236389076009432310203524524572781808279309414674981967465082472745440176149039580341811716894101833577725106837935150105786521656341091919206506422914279782628948417388722730751277050549547348274365809055504761945402668478499223208806257203565133847728777712195718346814362872521791005380603784804743198062344876624405216669171975783039723834379518756659122063635521784524073156819761251995966155553401931148298020673987831100117413492184339284486604901404849976648069951528219846106078766469172609162988185893504571427931859824496011757150068133604898516008716328735601321631352624984064443829327367786019172578164395554103630752489299082328891958200765735731580186653185486258941694514647105488659724327651873079938974398968082578719159085111313479280259831895839721561066748627431117982766005278603522539888343257045455113719836280276960838064612792078539580262398894387236168830211023553083128596455247425909538091715723663844857368461813506682532465125362885654055888696374074186797761919562458556092038661815049550276737436419059836577076166345130017339388685325223468168903151232109953453031658349073904378720077032212346975474741250907672265303167707872797284647624131915369892849884755435966286282328979419731806530619039381670407674267952189312706615965595477993823445850773075925680168381199263574052514284824972341594329244264891663380110993607689250431981884021757190311910489670415456614256419788149698286145767100720869899060485080075097523705823447971648478876944715946795766581976662088488066624673160039658102264078671008219808394204777064737528409633129550763696378848786478360041901553166800230457997921229401823089615800412476463390545574951027030919022280793153841082673924370557785541471413846248439724053134386939521911445352560120523729833334549674939657116769279059204268722365099779667155926556120504004940881656711960016844567890935273618289627128776016473000101115842380093377469736864233940914228607767298647307404007966993605822442941000989970175617142696028001661132618101381247501446474626423030210621826168554422401165051608391461588111094767644498600838003351613024897183485130989935076936371687307722956913090205722127675607514195962046487721904381310156610814832202515745402993307478878329137526277723949921518253572250180902725200349544135728683827105642641125603803290830296523644923237350794194723202224191928944430665635077300198000565715240042296079649681207397682902879916374183965440506922436593936918396831561873676847257011143913424383511545406684864954976335070656714376951317322739377068303056080951250291747364263521262683067898462371929541432679103075775655483635451507131057060129063991351760699287569530000348390381182681614326594773956148446181428524358438349837907550971796742643700921277218880578131421550702474951629385529949822427151801964913497950710484960120767079495998367568136514961968009279925492555592029204537315559369769012751694566271681446739817550877006644796468915717355771057604757220085215754879247031373776201520280693777894362132133491642203612323965889299027848869839128390115451235467734669650417646851491209900160240409324207168550893624778571357947300591144428855465168627512557032435637414471283778091549886461563516804049329232824699029302497740876214847528970825215133872721706483598881443244774409070003079858105748359638659363074583744508291435782292746414409607038988511551797192640125349686865919001472704857875172301419954186191453113022129363212883253770586000833985446381564852492795824986926903466766517869546004607727275482514295371278892612411001088867973218342214075178711607606128095533873253877656527633789514887315393574395118918199924512628047950729127208079900304052555490679526275608319966392436433627595844487077385588149101897975544984724160077421106325765040284900133528041809699763475959432388508567134361697498610214543002937565802055171430456330167698660533025154831373048709247187532613863336563272569051637635630664647820317955539617052957363418184326846230271271816667323773701875618587513274321508904528046246150351198415230261222691395998525113150342296294001360376757300009375416392493895663535656587538512962676735867444669633733401970832973100902192269041546890506347249645920960819537629232068410470363751961220343216933663449801284240164648251877896127380422249063077148583283022244209431718437334729026534464854168534135532092215761569422614216518590583986324622877736834878914813052712817211571005840726780616581048922857148997397678201941260226471773446154737100430158591417125198386346920089107838832291661918102820244216803832717276928572732067338045892405112709039315655819269860503917213909208493930633435755138701118201321726084382612504133057001610179978204279688943655138817881997109669327999421300095335136637337375666724583884738896243035317069269289941796563534523009924103641091079825403960655418518831592359129266931811738912520180391313399857148852649851003753821509093534381973644448403540406833272632325086310761591199213576977646061384520453958271504035000035653703032305982979186084084336910205841560717292848977388059246679262677399875759578843286843913915716274152300162658236103075099378449310122201683403386088349409943754304372077621339909306133823252983258981223642717977943338896902286793067804812850879744028734344066000883957556812074099914339231771494623254497508135292350810373482636855053019591527196117268935177495085929817077185227140758128916621803854345138702663045973685486820009498073065190216380433374198163767278241199059103374878047500399782501574512831698824317952778336369080767959302574442679538754449060397657835498968923090977993005376497338714041534652381215509511748022535781981078315599492218458349322529481936687832598432799453021266903964588754413245469074275665426554790583820388143366694170366479591175877879599213027097843597697912595831731852447738250631657650744014171227777559228178093613293494874397139038833284847118778239840498880417261136614114799051298238962824752561761957250402681800738104629582538284572605875451070298217681051138698994547113082824332162759329298879677390984660635835807220054341663016197515652284947545093372403831733901713657771613900435051537107552647871053757640531811657917387473715671100976121759937636710649667748662245309785472977989631373002572813262208164370457862835092746553376421366970077486692500619110487038623727900883659458414409848581383027366324120321627900490458483463827638042499012409021097702964608421177008775546478368518561278198304162472162386131632700498548205388958977909139179484725318168106221253969595715172402833123716403083871104555667952782951227070262309813845057656094319329540875996839607635814614859357327131816938067348146219575788834699670553412767882881037128909458324432794374590668800752829591636323715227966655622265336477422328196512069435375852702002486416172847888629636067571428672367716019327924249668509544389936266217802548446535552990515287640098571865279062484487381053067168392522033256048276569053729878823255375797432250941790233906689081675465166742232798951467756390028186840842968139317781871248046448505781068347008392327435710113122088851928037004559827030360444993224391265621469070297730480967305109572357404133779208424097873493967547842195483720997685823023779320402059552744987797909609358290211867247852208347429123982571077942422940641079765861230183095617883732773477553424110045461941880258256690146098514339925915628771224228094702915215419915163114912675890937612004327861610118134472827438719425665607990927903663911651665462798015888281427884310660606873835870989048660113143519487621919276116972534155645467658331979094485362085366663923078258744678788771529686016393922036297161147620726219267586574972885492541953158070114563753895277646378872240414790474776305859511595956498387505665989102720228967866966944197496966334809398892974018726080376219659112783474970756795578913892056755015761946291851534842114986274523859795585778784188194859218333118870169053509963138717192325568876583636519586343346919542610841398174660760911922322929784239417162943220771003535008327801972872772169226219766143255852722207666156026372015698965666839429311935056809848768286141609329682632411711174306181305529205177490776147354220720613403391109417207239141893024086542295586711527895823060829759472988356937032601976393730187285347374399870777394812315989763273195140352517858558184408308266986589999168151929220869120049020846509262765222177267101245337454233286763066806919937580026629335250299778353071184070432417751542946321933704635996650790990281193389695177439521132037897796312373234390242117084382282675610565011392181108171803716554788535903331104760651241329924484749801949811147800098176153390177997540012550771584946188953185483132754170388093530428176209211029450554838734752299334566032748114352655383915940630778551806193186007328794163229944813473651435829492552289828441859634033382817525121863803642000042581262642017191022971974675195365256833205862577383677914544086796921034405331694103667295488600727028763928744142008984766605342700566489186992839544411097250835601493529947372102455721029229004153264746977861949729774957162434986007350698461953999468951566915598376722997943297873082861984222539163484760509873826686607471650055477668067621140033579749183605819045291394279897631539597522694627018116548872138746976908299195615665371784261556007168077722466183770164978284860756554240006511575890389817513764343114186402465147242320230566515012372753292675714368283018946591738858942132382893081618632432577417155836809449567575222692571802027130870311821083342861459103880547346955438689213599163227108591672924192064318747932371342111503587993702201014959554725780393191889489906589994285524796348439430429558954148736378019216325968462179163930269038174144483485890404836737938934573411416013567428751531794943346933044409135422086164558814113693793949583459225786655493402134681907488214747500379644061084046825644059662585790204485050045932822338568450055279454915923033547030994132464789678545054442846840597286355295871467709949409137984256039334027766446896909196454597718441471013398218112516398949775904142409051674330414320764225143437647262720011871989214885117827908054201783555398246914827646950154892398349106807499375839855586509820413610089278128774389360263473564399875487089058536662200549929618610660250003122929224340441436706298115756438013938832664239342546371438682449014325192039367265093493147359217477719174401445045614220607198148460015313914732062899635419180794289594510130184913715441150076635326870235167127195567065524809428018596174026761880108796959993557371963582588345175988226084011111507776902225483263341477315579811011973801558380617077474037270467605819899512948342516585146704774073878203703736153859037146542335439782861162713200325645879805431479625122504357898320009193004359121019770873823117550843586114446866659766477328088344834450760863567483584530020837197599393298130028173466509667163199410524794703718379253163334269351631842053299703024301773792817234958605222530296225418743234210041844572916497118714213874918938199577361993177290935093343235434987662069291916175025220401684929317990778975346713612197981148012642797227628637555257346689444637638541510672295663599154516183150610963445637152867303885426815369183592851708226368165482899927524598020289734949384310517890836271245234245431518506662689201761442592948134309910888849124478755803876463711317900447999630539556220707215539803655699150940562704004177478758035934892384657580273725509017268119612909343139841841350062780693814049617714684200340585387256631634345429414924469585225665916281597594350127680300920466769680744572792440737619853319035080035820072440260468325228401374286294233557264995918219802769634366447750824422150756421132857202090449273994699601877131400554924663441677054093130727683434887562351636310620068346060011971235817577266359637332616852319911166794549345323476383502225004348244534178641184113846173818537822951962000372145575913118435076555200453659783914619263637569538437828652137923490873967258441981167131512208790730512776513206096579454139573368223879370450932366307742839465701396171619850426594136392518686408193911668004626904893236112886802100613792794166886693641512988898494785410065906441560431661333653147163486851625705892838737369358530960438730771030367818988502054853938302347821028620251841792619874942025410302346714707156941969357307223035246057397140399187640929797601833107434478651959154239767800807492922206315773872908982282602727123668599706866556946103610635455513873589412191947328023731066217857374384601595806806630417523099821928716783994653738919183941001100552438600945675875778403946749136749855836024912556031695020487269625622701194253618549851789769262230117895895042200608640799424427702423062884246254108651529328400350322946277310764023875971496795220259587552863038444814227396224442428938377672172900132949457379268975986691619202801186211161198412368062357863394055489332523362799144614092944392119637659854923127159962602367545602767061226184049631512512507202009038278364251205191015028034222776036246534698958710796585280422380088892381482393786144007646613516052447558703862974455091210585348722197717032605345826049636627821150265750991663519805680979184112299670538753220190920520495723375641938469395210044899214398061240261735572446598631253759771451112264555216922056859636099899679746714135661266191294189750730352587980953224768959845463091988494133481008286217799020326272188329036740105293945755406611941361141952824472388368386953868255071201533826113113655491903197740031292214597020241857002859890752634892305384145420246361052934373972186601203957771608433276745169352312700385963782629285924707859855462791520998200361832556552519109902125414370331358620347335192910556549982675621067029266674708252149981707197420941863576959768551191826243748232642239722614303609719123192729150722297770865657876719420786521879707555173922745529981838572502571989458727030597832948162296626569233203501937909685695010678444121237174324259843590937013439299244511802013961516693141913271609887708998630584239549964153628124424056452899898221574199914481108812694724146517635265643351509607967876979527865345681094293578213169564057908983307922443509834388742622140775701799580620158408942954136243683169800771533552360916393543624235955927090259216575566687598890445298301151437759609293819590320390762639126157382893306956547577045026057522368497674774709035643077012698963896971888566262490132509080648355934601802814499869651827756444373327802271495697156426691530446034998203978222152812609615277011022080619743211080816333557674845855973010058284479575339133070599155199667883696859529913576832496843558134187371542173325463791750225962855966135978837386738165437620443710746040503065117824158366045722933197723004855359466970731362144990028545309890143112354249414206705117235407753522332517743613269424207026411070779134020369147097476324870828561272251474620590519552398921880933134794052953911525135239640634773985323175177052427650857205643618768069864814948854910928669292006169219435955156809249323219112295359163502730479772361831284292318949906296573356055938543865282225515864639505254419610877766720769834226843559877820729364906881227050878589789852174910468394541295022515142819410884002731902140458679599002902519214307320682051499471928784929685142178045547338983579511852657574775277559919162053958141853234569106575333270724585196426492517017129734110412756955973326648780624621151864101130222434805083825187947473282330907679719608513824055727721374325995311427160457305361275608079312820062183807019363494940840162019282385315430796636408057241583481794003572935141426516937146177962223016777507089771221897990735321464269635427227010068465857486614864062851059323144401033332165901507978103398870452545226163884785041784302455989088542837813029621095433024841855668473695485203090581167610812552761402736231458728032849686769486475722454788977675812588019976100471438767526994863377167567158044449655078963550131422622503859036886743003452863623154164080940508070181494842898829745220810104152927587698610060107365195206168890471726564422365458402676471530599725794047799457264592847415799883284634977343382202204120589081134099372444743912507397062659418265993087523309386188818348262083776069079787394249504573543729624339418951767131465721173820554494686242387828636959313964605880883465448759016882314570545196488917482532344326690796770779472336548306317787275723314109938909552277658944750673301408534995547637857117760781702101161467855322944786228197452429468556222060213240742747059404464393832039093623547032588472928310773851454110383077820662872271755673282982449558657946884142218484837624647727997213326083636517008621168610362523335155316977613459871555660110282114817724609436567454648891379168123068617223421876864166261427453107120998725710189426543455764734045234019649277114985968403411564241352878871287608739224487217121429017058785086732258598818218259638308650278715497519547244887703581456106821783488344380888716244075788883053868565965458372405392966114957728097578350176947376535291052380179196526389013080562351794703229126001027352128123206761894891585471516721348343503723573180077174792835740605490291696468738251294218486891720989511499837635634378400576825876291783787947589245467055984519675851100107237040333308955883015743293060467881893679238557734067926830937832041386140563536255309525852110047860173211753280306653447508580671702664252592400317068063377052210305468631893938093705423193212239149752608036152260330446196924802468960050756518940441568087294077566146973098512188464090055837869134487949512192015189013157857220656533160643635340885220593790576662023915177351723005048729706887448675926332019036066683329201915072754008188757638393143392521153636219008628796292025812353630503178611399752340464114744210916341092103745999377907477455721934211709359048872742326722829555285697835982417388280707592648308927019131454428417413265337308262971054469401098839267435040512468501056025676904328352678422336915672134651604711334085784644209294322999185056278710874126506848798534061971939909938917372134259806366430110392066225568479128715965427198335357243880972652504228555443456614713735490045546187166455439743925670728950601829588992977956608047798045663537652756191740066584940317099960596517619713521258585269733544884119755954246563931335667413477706902698094730940071404808909113880864391153163467289013109391795542307085867952944444503908414698405461224315242431190673300085347760158217045784249616057173519071301443143037791418683221858472655946663894403652463302644118425869318582820914173767221753018009605811772521222900625584772902582943132729283681587692800327436403500121927557346046740996010765130666956003175822088852717641536978760393711970636116744965201899305360051203790522127741850767490047620403620920639132986909089313918138773954135380076025545685626787527855533179845970016421471014009197324351437561288644170794654923507833387630026567213807929518027504285740113375836727151183794952868417594514744624026095579340245139623712977674484030324403543100416997572052758791157434853371086660134833397050276159168022632897073236623255485028738929484778738798284431064911778216119660364255371739751252323398007304679468960455172053398363662959908675681999041550701856904944824088280715099512061795289167570667908841190814865603996858141562642549378420664526587884081640199462204677505154240120297387359776693164922809713933875979683352759756091151003558136981567409674029129804421280007863573380065564565767237407213691247938265002880614058068935533779230550204682747056626276416732836212848203685610629684054553701491747817799890040735036105406516868037517192998662494676134631067423353504576371230463720123407783549259381974881138896648390076186053012611428175727827856555426200100926987703880959127710533809618475798051791061420154384904737335263812307338745581416472063885173950481706222745765414128008579247096826453612024722792704380204036800064946995222745166200697617530072101175462163246731372392464986187740276337454301986427045418966513173339053557107503377044247910969850410205509922009785517302585473156166870338715006252960047331488463656913916302846162387530401106796542956658988557593160337689318703787302408988568773871853300716165020042844520389270190665250357829722705101000738103932344324318234687245481523903566878827469569460682908232956508919034039115899349381890038955608694344197672394146246470009658913615327454691254597845530812536404285545672527610918005078021124220621756933347746803220336316250245174047419820627691000926173410625785006044327555389423994256921567479315845720307889023328597411208323135876375836293212214676698315192794657562183419474718708682572049212008869274427838457671074108133453160693615351232264346067984127439442902501540677925824979907782659345361047667666711111075688629964174245898641537482676938368732124583160630768085410913032535609576633701669593943742459518148484553457861802009589560197774597207849687845356164264980849617746008298980762924179519978636967098093009068730182683096986290522464006923325614369959869514821334536606717824186837269968866507129219354192477855311439621204513982847892558542913945863377960983646817292772172414719918290618358395794273532861780198868951531789086810684636017704706293855907855807451396715367058850055992059957086349423155031834001847244678180940413451517028286461124041637346053838882608271044352687602350202965764131223937027685396913622021733404256624952337480105413277956917908294341103763729920523401171858300784863185632722320499377505458587898427335507373127539345066771913968072432705304978032546480599917938061051844595405621473687680053988169051973112343984200225698740672111549413587610430094941010354125192777657040331955292667050659441940181218326651744975907420346603970151886063293063533998656954075990071610479694854291488137411704290332469230910097689573166737395881910724518374555510414116989851697786892784275915454009504645290431911158558585306014075873708974564187762748091768648784432263963261046447933044718395819304685408405045915454858603544418976003246346517010926512912544288350112645042596647195882187891530837834918654217754272677292431889147308948213605925733218725015951457118148738312060273738231922015535336207149805197911405332007968651693350457270984780377953749756943164564412037790042849009744519310481065862001717594190451263552249812047779688271769226085960809888496641723073446632929295974427034007132138996366207171974512461401717938171043175620851139914298584973341884622085210565453576913508734960592570188840567209512500853685736444711138421661404292622692812324581823219456074449461436265419470137102322701718948272425020078696576707111789811762085774818298618464588388110753427531393745707873674012964451065178409379696357196682871601035288233718370841446290914294390392905028892388922726680442863938580750186053610567066282628179762314865824930961287837244333802940876929778608487806806896885817788122338807575671439117116036860235363268141445157393364600709579330308736252287102317249270656173693174090504871533591503122455737420192926724090515771849320448623714966120134328322318824579050878842263167059497816640122870220291712165756682776237669359013714869720649381108908785178064466355335927074863349868110752701364564299642699576005948740936410869468470176836585231581663268376860810983381388588528072655420337124221054048290421441018339429407530156865842358428596822022777276457683028554370173380054413274271449096912836761735664846021501902629310580212221089428469718680361986935917875402806155793472316761689504954140476244628029576396835564308393724096586031918978463547684526241754913581861707251692826640012467623544653006009135322495163515804440348322908671411430785132907860298868952067481422036939653770337623556036614171273886788555637544881818282950482718170404744645565566127110338236247209413150670612132398193691886419374026520762159575083948538970057353031964312610101361986275823310342273288033478215087580560061051030342792024353522632137120275012401225458970404652692882357017364530780212414187299292888781945217326357907398614320860323897677724673639624827723834853196141026794590830704682782256456322275573796559289775377900871406066628629284116019323682792457670439797261748805010929856430135203833770877370510737793588487828810597219975480218397929622368043477960000656269380231230641083761683650311029628228119753458638828522700888983634727827943686122305667153852281192685829952206532656691349066734878409828156197970422346193136981847891094064569320366504264528923049902350082579912973830695059966614719542004635726780508270992909507135522619515695588084580093300767970863461800726263498039835105060204867636049945772969107501089118517814401419463128626860024229268785390361028446452665584668276835904263951642875177800043396257483241474087904102003340084351804219656705373255368020385301970108471966983001549292475881930917919001969785181598424173198661475311830559076536888627919544063777807242188849598395055005419198735926706952740282238855768298880234409677045051108541414591093775231016001035883706826031441836361843584517202787052695844071291119926313892893517589241685070818787357134837167850918062771931836686203981639983809791598121063060432332009870217177250151763154274924495151671876934716359609482333573990556779553819614703578234069094393100887444720649185725363470027858581195961545689737529103120471481641058406145871942186605212938781903944127233546516421309077474015784740239406260201514043317153514171662168473182276111759759658689892705233307569548473682565105579708658595922691711245731916706735554237866518502567017425160973146216911370773323087757547376286223413683472025684066280442278899627575789601123846011873607525547304861626191450726308557347691905138361210074569390233744981946682314131828650238174367745839906936797479699553795267997769919632460938901579670521437346193457475795817790752015824163865120591671864350499732100478244912405928148400619016609421126860025409884685933975830056840052900658145768738682780195881308675149580988950032797732336357669774003983633605551833289507914727778289245948393843219552440741542603643756404536387315334243259137474074685964295352322831016873458514211745733765637466329045727811734926282901620606479710842795276294424923564905539466716137941374034301020708315835738824251053995697326146305380214682790626705011353285704583153182176361715919154740839270134545710738534797714763107261711541010103275827924420912344610924850120152058088853998571033125102624822895605418813009436660001682002749674332199312703602219065568880515143206710953111003813039000682481298128828463933815970465504381576857195418575164810319179527564211300205033584886527492902822153407147608797207278337805273475544745433919837368235046393340174076313333853994624232136410914490826995526327887066484107586658636077680414535192421901520190472209299150902811369164227156592553933760429929999675340782000639579106161329447567621363433431973256893713474756542911220533301732253853416480743861898480006119284694243271724788761763838591049141461509347769873810594100587050883236077589996655424842706391184682314904516863722970071862969889708756608575912263268865902561361619330559647304749164487193040027227429562790055327928225003065224261799366820038333282206926794834934536068507019960270298690449351596887655594700008241324313737555552310744841408447089159039058484949255408770530872878805326618764134657001534630934271576159628890121334926489778890864008839521812384456736835703336506870644498055957559450879379719307037729518454019263901327315432189539206600926571477309247952210594902296151799940289581623115673490072529340078622697601436506288589346289333631114074521456526289993186139839344826579044418621805874085533679277785246091658622298373630436914678220626441823671272719496318087236727158819274482882427911663768026730477295713252762415521899157049160042753656142251296089305944639359347940927415366284269313043465098524613068914534138228486306462795144846529815863230448416999782738714333941080637056078200433907249524732767056537967815878558759433879512286981041250081136906016136195757799982836240727716696235139875326896649105004858478506460981087780756778727807353093917301650095492610555769746311040917499326626184679559409335799984471066793494842519367702078832481513842245743313689332365555824352433633788875593065591870638648153991090481290360420920779189609826470252945290336760753740355681570363811953779985735423871411169642234865476872349661001643706603763710189230733358272785322719600633596170551605255955806155685937582262900612540843993719327098260380630241766370979648965655791489919704622508345760887920986693260094017531472817998419031840518025036562430556854309168930566797191590606933104343784210636255239534040475131085475953207614120350932033940315248786075826801422044425646686443475536140910737104213056365751979997891552685973527802539087438972122652489428394194654365137427038005641154394972696630918461167418890870256512154192384491172724297798585850760830850020039915181383673967690542916532772790503280212360031862691832550731823063847211204490092408605932384857049022440640056273283871154792495014101272388594051521451794342076003068224113656642526697355318688893544994647402248729038389181799189476556779011552075136603484046655643974433710646811533850618089521785175668317146679921390420961037042361240530677648683924339836322950196268649364763390047558161035515817119819038021784113772772973884144276924085497960617759778796517476583140954496945165844038573466070170424833587984260799812791547193634948735974219299356408434780179800403676424103598145718086807809507059572108674694175702344063516713437036088055179763153490935543617877629766032532445499408066903681184014833247643467854024132943200545090588270368793665007044761878951474453008271869898702349853930110072065864554097167205404263518740748504022486425290940755644220634474535069700089564784187521498626815484283523539729060134283440646147752465645081601137546955654321722652517767805640620922600767075408116318108841543163977386984875284444263206514933652988111048398333925578607363909907363962833362052060561851771859273387737057359584287605298894193988984334125376650464467213943496403095108996076602174304381887643131039239629845084598600303397058778945022380593527868618992824365130259623633020893777459055432041594309689315420464772910739495371170638804170706963165952005954757586297636880574067281545899438337631438462938457228586143884823520618494557183114779025777682228605065022119528796061449103359951389132418785296377612801719171533009671563820861110026152401164113207612428054378692678006705282978102843917232720266590474204941309822088009208964233967590331320289535588659597874114660821262226638839618415536168844819512685082282549789218124884748095733761062234616958801077687685533909641442165144748944486420810050161251351384262466657315225690589849208912230552442504547777323739562546898152245001527931721018853802728619871231063735401929447747159612895153032730611546311786203926432573056676577753773529925852205911489984032814274210996280609973203850295058124104813329479726592903429483223896041134831533021488866962243167667717926656997706105792369184215812392695801106782929660114077161667747261075842108619412768510392657764036407517753438312126416703292004289389160716018856944836656263586775594796485511229211557892045187569279400919996829166529055916488781464677954378287016264781668556693361796146242073237745164214084691401529409196117620132983882757733027992484057891803183601777682341820739943171114097580123674888279270151132634976905319410580744795143372132432081632370246674098006447533567836750801144266592721363541621969016477441905124977498211900749515163015727794652604319860771963768495452557749202784669386574258453013827371543035321565451835853330571908481764935095831960477198855256697320480352810678180436562167105367039368332015579587454439381110467500305686376897142170246520397485341766606756932797992598856253414438640738176414999992714684920511345966346888391828911426777126847022882048321557023289503103036201026611223387152558082966060544145695059664415814908216649603985088369204580165717129994191829677970751604986582657823614845437340936953556063496104275625039803764206111068737138213782978906353811406241945591441459551325880761827133445395304563349465774600200598292195072839825148133183780493347121613794214511984522635844768602094376066830738757609464402005231677820798635301015619277918741778312678521449258702446935988501285712635862566174079010712805706904117858841060099597274866148297834443845265637949894267876389177143526022619946306200947658101045509850350259521222328891288488610608206972228132762974957673403295563798679644973180372045933063377240495356224023566015867916647965699383915224372333062947113449378047155322851495599028372138874808209187419462157037230124902619752646589645115438405076896465714510741978886480779722851262865743234017505053697778241491363510508717008777474136627135177630986540555450656688811015949569746613128722826837854789001860275200614635484435266095530736916017572930790478010429431156417774454882544171973175775354621534024723568719572490921212645891460404466945463109891756023421147026367498077532195823941230443356139554411024612226340317038069432199538758756679188027666380310338259078255975443836432924617287535077583256577875342530687255228480115063910947601238261191907959382072453718457523009203474334092758500342797893325456775729208218117383982982029964935724039715212349300107793461857567721165447973275767785062767239186309693812009832483691812748647498445625857565491913491858188124144255028984924097517825210850309322989390482512250543326705934756162913522506779460263309742529538551661916193685946695007612031289217860676364755389592324625234770321349040361294023009853225712545144467670405300733978466678247046991220465671083515330872148877915995197091755560944896514268219629784688249661095101885440867771025376487909534400889387123044476515613322006998117221547539770284417412598860306410974460306047722922182265547340820280417457258456814716453238595744142341217135262684330679934220629108119618085413960444983316478071365019579447140027494582689111151618405869998231919713579678647956021471123803686768786615849832426973706581308123814545612803761447862131710545142757644141882345476972108318021544455421750177060921315748901214495669184676877120989798789841151786624048069109954861298767321535576328551753342738367417395206446852144134245530498722685254450098820001548175429147215685151131222565731078571718733026617306234939160674689560722201300266931034642567789119120013046763946480284299491627803491526009628967272833688580910356309109290166490304030414955279998241844529219307303803125481290346739092574905577777647189596311310905123178274620875594281112998656325499255335835313912034515259918617404426489492219335947521120721349778611396847656501799663415710792372954167131235125926629943651236466937233375101449721510188629336147938172135570547842048947470453653940717495894147746177490618834770811854453367958760140388759373283882467340212254402273574545202086412287909984072149410153134593415531732604045544101348016986887385453489496369809041093737921584610016508895695592384713479191451829589197076485662575354821958944094084717770934867965686948342930944290381276372615586109893262468994091343738629407148140416936537040236521364048861856130391700466546846595228079550001989414780511337589767176928448637731790313224787239963285634434929720521969046239028200129154094357157140956807449219931334771874729329254691465401602643569872675256103603205156550744395393148046792394410231685274421904376608134894091193426820772462708918686309870371947068856737894720861445969134792090569161813062057725688988243052546730696393175728708732549428209170042459691321401400102878298111002097376982568650513657301463660509082595083950435014356292826730122086799121237709046861807239414605940334757652492172964628908560780032682521363726302944962838577873657598668309817490716605034341262950126891144822319157332522465945645150721637282294445371821018061759059126225323129645327362448531303789968900020270145107013686290964014173399720594898363788203084510228829243307092718714987833537525192387909440540879378711073881306590449796177617044969593588216613644236369112295994799648521662043831803241405416265721213275850325876257196252564876158531967180182678613474544666165075336292295141727515660448586803094228264382494563178672509332661561440242884479970163136057401384129853773490540037781686707317040455396403599663684510519845557464969012411393032973289654616878758135580277364627958814694231293573508406479368881404001039017433392919702631940019938842699397489250777930282581108576094807689779284333291880000868233028668345712013967289116617477490851492717389242879474940586075569914141392997113979260347509328303834171403155424545995877920235092443069328128604272551453119153592212214881942286102192572156284497379235787229812022428406964294107060251727076944238419881951923711987399101266761995060124304151591153370422866102392612546437423351465523846241830105834484202685194661659117579366799055446740151598077467509229409129064328044621541770790000489560844892777807257252813221302460955193226923128729767452653626034625573315584430666946031536832138665862165060387416459568089068376135458286185886509202367661170603228643848674495511410863981664739092328233562124603487027640942235616578921421844375633559848865419257212354521263350738508189249652867765976828990700813541604977425623063699389391935816020993321671146838563272498456721953018841561908059743108776653784864226251352248201384541916500202266873363722494825810610107799134033517816232570441825260419377275790113041364133309521965511915161093112455153929804351177723897851310726160546727441084885554596228081256024520599562428367477948128300721191230946302228494196790748708899640388066632508889022496279612454720290619379608370253099488978885399584437620106963499138409520518198310247244586929402729282027142441923915828790099636832465219169974527107851365161200873880207090734675633556511682246949262960436540721676785939975414889189749288736871768575065600254150178072845200703433564454588064869165443096258435226395227899731598887000349934355665156611474961366065371292680567722316268504806546460489461089631396866142545724620813493935977340298134112913698693778263116752882044870801617522526906958648458207218590859144100351132734204044587907029921806464820755171513007305120601195412436222911165192554949744118556656217657883473142389643186598136218047297184495404493441159176249101660646323171418088213952035906642941613974818896689917298631308836721876244303367897923451821016273349558474058798736495618749139454224295260728473016378979574013979247362021168664602381629340844656249507545744595405865552213503779631888130150876656880037500174066504691153853612898576415198865378094537377141488897770181759830715461206056430363508762716358845299677165345931622624834029813409268117449477865630998199289245208983268496992041079170824514867149874618092163804553369748491793924006404548990295343672807003051681661511704847814530249167074076077580045182252023281869525964040251486963848556935922102352639154863737946295293298515012167760018763284513230445702953667847319280963741136268981551905191648423466607774598113517721478949475339111213575528283423371297129020826262057496387701014622698370624699011997665993576973027276431712092079502955851166241224040984859593669192098451926307604749199055681234505161237309665782948377719439699701615126950975922767459089951630954657830249551580161522216943275259366623298681870077733719622028643793960514737401793154464548539780920155406397300417887387701116646794206592750943645184947512665287591937151119692432733660526509065417819078545493223118768727296936707356186611076133323345819493637402459501909981255274111918240685642688004945249138738100728885234047317646692566554856124464971971705526697408485474811635945770732826604938095467258578492125686848431864140902973037495829871071191678397774147944847339945113972860948618779340429044232357706563106173578914825286976044609144088146482156752360808537191945464272538138961322766434770261228232580558668089520840050964921731501673024600539311754148360763791511592458533796932950222466905340180644690330716300160494180649421652743656618238199174797252402418547157667927380174420042633984175927394265441309335554385135497624284832788910527727066378890227466452173135068226350730396377836685359978689769100024785397155640028404878705287076886219885233589039827538590971930283349848578722109638462218547080329886947332292566581936612975118691839369899905948857372259240160917036928245034776645313823234503457229021195628676661740845602757700549899697012279987348308291712565386136243250500882961040784138149060092103561797669593424823675030813847808712858669874603446490639328767127514922507104851665674916080722390129557132855192495262826457203016535716873229552436984284841144032531787753857691006209255114161844948517580992575536657319027420447730194525943897718639976908998291783554728844630222352429651204669810102950255123903382911920360834034157943476507436766375532666331008091245695718949245368463612056875598289050233527974629733484197923894279711085526207675359539616963392882836433058621352118877018833042900473489376364713100381319108500992862749690642988381272615694078600874589277852070389690930414499506410013315106950528839238796225304554353180604505959645838620960719325938461444638354504199180680399724374260881161802540601043537871145350058826559737017224458690933194681865041446534751479998352324077989641213067205759264031554953695259249233924062909998611830378837098503421639923029983269626567089150962578743394054507864801509685746507611005455590010402399511404566455630969424534409942567633845316411711511622484588416955888742487243840877257977409774017987655494672443324650694038266139368458514779151688834624475653053028736192936317731082098000182116156797387267197904046419898988803538291532265865096710470510703187166709993292482180446153112101719713816337273548949033906254084014949575378888618418537974200708008162852464208337906027919218254857744901937766144432881831881801554665060690754695560757149576236387183038850292443386572572379071871636933676199579476003788424704738052828939079779731200417050534464440544290844291198639566556377633754706408312840050666347274580668487186049696733841894911005758818758790581004540802942794291094899574055336614937857373217776262193796622361704672901136866994672734209619059389929124970318938654921036872558546723595766541291321093583194437097513249120787238494429880293377065613574464118915458093931544688234294767676880477838101119137892465426457094702550070339902821681006756254284048775080228059004675826328249344745208261487128250071697296522478668038175144604328804873005688972622603894778649329793295231762588968225557048495196854003901607921614243391086164433142334297365347855555746058162528395279038815065784454727474353018550851523376291186797499467406027160020208176631471987733553207491252028786838746662594784807783092879418720982244433676570174485078860862963311795752499546493429576416687087878272930637625273509548208838795824173003145748915048135138579698618277945814627005376021634090076132429984574390095980029392388709951981056125360392969093078514268184337676564780801502379584622340888933610632098388762084446239974258662942494965331836165506369863772394900411023745847220536827327570399432788326301747056261236941812774845227646564323780770396435917826633000477966897720840967483623027782430217135354439238978735127605379235867668129064476265815137024826945928188717040086386496182057634429314766851198163670262729698129910649066238648440146353440245150214888484778980855867221060438139278442248715487885702833013261081377568936074005010226970303783550929061488825112565328432072200361592110009426514288387893298473080536164439956869071466710141047004778104410797791435740619342141670449689705048892387230200711111762201134014361496271692359500446946207706716417018948852915514362520860151001035752333450080548442756934468813221171102541188903506709934659526603527301227166450705304022529129606089657860365505091753857049464241611709553880123769859501302443680885249340573060000185835158601377632353676502253965038835244745316029723123351281383918179789936527933495421251694728228779338889775290913657433389395355834143876505209905882475239193972469868073962264168535961499543639621695086724820474895387363472750762114430801065355503939857771706005564503817975509995866253405359760537208547602118536456306472773585925638135265085526517710141813567352172715948489591733436735591603567113284900943896898062731417528143122230267546886153478021975998551199995085719713869147777148093842743293585320301182407702519078995671269657046271031522380851878300580152540835323292299052791426222306804516946920319017597363775237971831423854406382386954213121545402662828152945470566476441834434725492850672678620842937833425733694335008723007781014793433894494693888592758763305566432581887888081503916467839854538121960710321242392760539125728208800528039188068900969803862579927748439912957127111343419392438412476771010090604238858617813077161665058891934561998436520051904669071488152347459242445064514343914966227982860490837331130923069228623687784853995826841353056337607488582588990960655910119352941124050704368668185546663010231677381410347565422835761644253728138251947423216617104435159123453313864086792644510716405907627030491656968294887265169808330757365865929515611922576868910021767035860199468657409793900426406285809230504537086662933054859744670799267066890686804889706054712655955078378363918568976349024438765405495705528301670383248237127007241282123858287972587433413075476235104831281847927192584917919254229460096636179762365429855609141995634170609291294420505606995428577842852471781363736885949361473636269429853752527011417709952622026550718386046340850647955211400138876000105598861726146303532705008709700269144929313186199561156418449487836134791416530140343914436834106088721112995065759355892217317681196228752104441639933782181615866755489122100681647426603081135413795857579499931578976749892147749040687047063697816095653009649693624596495434213359735646433640362343704557986370449342993281683174635561185774838663824182721414320323840010303061318419530587899711392900392342781709726282670561910282543070081691632691527568952383469188326192853509919177216686670713338809571206473849667483687378005534292043884033028742048345091309847934004148823218177483423433522439514725376139608176100713329650006045141008471325111052748536596253562901629696746280783244707782776745282507285379688215434573664050782074023050199971093844584771511471867234119078916406819313160132662879709644518843395266994256457354434269197501801139659859584525634079373149996872114155146544276907360185583128681059465763208749024043789152705823430548082220425607378337885820863695211503099408989894415680653685216028992189858825135062842921691219333099534800456496890637099086574608806878511331520612099913889186985598409935995649830762910934998994221708934837591563723784914371924597210392315275145703667686738205788538627514681609406111720521206319381313110029352517690187944207886009865153486544758397847828964601259750518472445724943808946434631135393866557327601964974110551525542545894659253074426575210252837032894308904145265504102044246880840019100994292719111339479875741919429121982508893691505187723332594506508215100519005882634400723958494007342985335594853155046712766568228906195006341694640027758474185687307507739053355973921941430802606684649167744533621671949598234543492274960678803367112835304072811664657019888855629279060501289153049832943390990407201275604016495281277928314317352065566736888337480048930826634565294318189595400210448081069374670899153969709546636900179191658270055261308515473283283838968893631450383928641799576304159766011185275978340947358851183609528315608604668110108315881404500575523330832280594839158278933700588450715934996379856046259188674099015608167090452058580040238799661045976783302479031565476182133124025814444878727809419139010039586650244816072579216198843141491297291252953435155051837510539799231790218040058897438274444106620730077651868618811978069772826903983966926745771257552429091133670835394320992778893386564275342374956971970319585881965713088472112072880480721029677050113515103179345710039752030281396521765887777646734870008380705580052008781302951246529160417388473330528229815831581722815618339297679921842489965771270134760938797996061862301820041716229695656981619114670630273904801226973722381163180792431339416364797509700906397646792174263147879174816644894687799798987346468367822733899326118440567063241567620817566708678487443581245214328633545380249829630844636799803269188947594362508612712165039017561844770333230715154714255053418256124686406840369995206407512164509163954019493558532915223800068513964109956853467353139451297801521118075078577196109087058875889025706044368258393851242546847196043115847524833723114231875745783746678634558477441024104407078568266095782857136378594270198206325260597729626298535251177453904310462013190313367384937956347036879974501957122419315785502273134628945128382343231996562787515679489465615044227054516207323631174760150216677806621762216144553919896470147795641782876678728224183899609186986612770970270403561323628949018574103907711246833811231418032089145274143522574245550869038310751597084713333775243225305537949290059661856967608503399765153660584078655399521987202303213958698635771917610951207676770407238561001123243046430362135166473779188543334371094556516805204839521485174633278017908132362815433222208852669971903878307641246118935055096962451398034286576553404064189134442333550704879931615498698822573086860941020309610372422055349221025190322899716468776339145677116462993638679738582418392668391771569617374700606979948859261088395143439085810736141320563186423128831735496403099792855527367770495343836151108989094841489742403445348181266910095609767301278807211814790541056331650887967004534510330156287427387545269507985609395458608807149013564445667567367091843856793787834574844641922702119796479253536390659873560483674953532077656751413717054722852703500769173930417920385682446475984567385688269795901877734774189819862177341000746928679982751622148820207391573268468594597798601339100001934190821447649125443759811783989307835394773640884676006011095072019148102668669204471880074923188907173403655609762559311088152004920524005938528581650904745141993966944978469701639805093506205358108652512335063658835013001352120240277200757947297540943576151653777683405313559730400980882288727616781455437643700971812857765322375834590769866919197924039579840660213751421934935633018166266692632016021748490910457786694703754280455057331723349140462971079482805669403531509218379041569619072422082714910612627958300952048419401098191826666596921230077772642025167969383351839992812456346421676158232172680440174987192049693941724841705675162915572921835153681905825290478534908793010747526870002610759673021691902821693706261763931700094875650546358081772749186620702915813867629512028602350473018453155915703680499605536276962196542034863141072962171481129690184828802817802486141446874234356749593218862915482093294673541523769898896172075248068879327300358586041954447407387570971601355616070316949710053534626382064603413958901603817711630769914687911599919883486459232239717068376730689937545618775053570659349720669176069663991342038954454120435427586518524176145565023420050874576157994593127935018339976082374197167332744459245911205256938018173751844201877980699618072728306847580833451904499130121607605320588715363426620076947993523340144891161109895680113703324270939823970563758456700864197125346877396216997047502916576616988275834917394936283014511279934656533009567277088501266573433635159934256188012380100910687957356499603466960196682527922471727459989041411424736174776439907410805914238762635800731375119699480382178658785689738068455022949782111716601812211103712385992837160231932552508892420519805952714370036359918476542149375796027117322988919100851773881624640795051691163816754921604369291493350788926026729521669006658496873701618831503044894984807187245305524889806853312814672322479296391919446683433912479270544096390767285178667743642945981253233621856692166058333115339707789904064980148063054422041480796215745926288699940027216131215055906482801072387567516176187497047807388986014529594852733985347886690728960431721566885616804832716146253162762315803610836409674494338738892780452394551884740014146324608642553506455288651686217932881809264080161273582058679952846129308211232640623383871015399583176782991514775152280742306663577013910752652977683374874663347114531813142676121930913981018943174234619734708755999644670172048852864366656481385782835357058262460176256808343632742168842325527172868921474538927113994599526692425650323263306614222440189538506335517296386139258063704821770841937622210716380579391314813815141810907114716391562462777944455897354683628806388796921102518144472702670406387556654380843732748665287009778466068373407916363764624492502863249272903294860140608666744630776088027019813221667249258323431762418141659738033041433512224374548616727324884537731327642781318453971547701599416118788461950258379833514677449513370356734984616721984137178909713012795544867125092794473099668929453595219431823698077677205393282459169927363599089610526573220106919674285674312746429991480782241227047310201959897544026727229423959446343980102983404372322516914224588069612978283732245104309409372256015063134262193572283194415257130862722313650071937018591519183887226611905727170623301061645674140494218058439401107000692904463011556547628289541390631423919135217665923355440649882671609997640945126130633330610379733641335946705187293301113498015776893712133896420699606440929641375633926968106048745728643004430932006366672434385331401704306364938481130682347701851324459463186255965157715029148578142543274510079761249224559825484368234235647056162153813240688783283407430657386015812134853699660394391363273467170460468897608699641554962061034824927139901102060010474231379604083716580162135632579788705349101691866254738289702787802327337053753519317528360394999787010112728917902412305847686434909952548429914657102985286403779749625498773879336622376510520785505666717316186463426142934990777279206294156877807424465524496795659995375686467886182256135328417712272026491418145545026398146131006912039208834267213260084395772650221342473294622405002979738035726938339682152296858920311102271207216727534988250370642574415454367245532953326664268957713526806526453101171543474948421167278967512168703882134330193120222840568133121783010419059111395146224875018612872425503415285996253817770215031435486313674279075838739605009937438268800183382165793889633488030386146541139640637189643214217378970137799254247138205882168979412275861686447650377428983280259088300335767045527367379949056253229421004904736920949036027674907594965983137428515191202279856351228095066560636635679629838362025004420253559379864607389937068135704579128478782475679472647025736108509428514050760770321217098709716875367202971648796750033362211572209472141432167660922782774535662470530328164416619338876152148596396814194340985386746911216735043264080778651437117305367691746602841308855679669436213627120066124995768550816772857449725597023099360554119493118095926038518728654562347942137113251489014063630184669511535944966853287894015966817820198338253460063450459061155147765573253071626026588940929845960415676147056944643609555212543352937531769871470458589635267403735391529258934033024555522072763900776308142995163242293196413951143662928714092226048586929359403010710778309920470588811063845136244522680524295628043082347248738608991402433302748146269793578223277239598648945943856532060533776419820169872524786519048361334952937825131700632971815315818773718768323244767828414645499735084795298033413960358358420937467934037749317673866070763163481841038254670529239768127254456051097855912706166234882517074367719446287747802529410297146519001204679755564853373590384402925395117775552463966205407721018487262885844454008644648621690876614845997409343867105380412755021507230450964522160865868493689422802317006826102357241355736619773918531529134785306546430859786062762222389696543807420275083666969381414976924632056688295648914244630542566511548940753663313703613209571004456596965717667806934389243220351295688105600643655127191658077926350244272580900143438399343525505767280852373206557625391354109487091249886622051109076865080838408192493417752719805561819992966159401315183849703336519523837337201949718294736036324571499185756338041761208810874370923299788451408109098101174111170876067217827712409295263821618042284231508477829549536472793113827011879160073755627439387758394149005254434688180748283768692091958617219968125667752609789738574436844252695236720967682331166786860238318414030297208011771356236776169138099697729177976441029385309628955054307419178484675898831650368551633490788630046753739766880400271307976008186258243381953241274925326314557700731318532152402126161103979607869313208303548324664207428879637018020455357362640585536451055141851149061101080500692891993156827922502542724521889105537354009728838766370404222034311556715140492910563787180701887224991972904889625709293649613225480995954805393377608962266270318945867282493841355420976326618567361772340519249255746564447325003509018563699894587855868942212090769611951522039289932089714962110992158546644176250825397766608628770693488435974653961417991466069218018967984415799058873882753357464423233397124451611676675261944244950628681185814568524740258871597742896429458588324350457547054762771836295866962227204316192626349643134204767779784940004572680809724001370457105720877509899171526029031472730863726631495425422742068099587493104999792256712840257608953661240431503631377102188647161814523601001643404155413085372626234601516606743259430411324371725574735537171650885019989402529687167506536540323583959285136682668970397428414969238719446776542945511532067608425054016242829101449030899077439768673170381864627845552315042305274305385022792885025485909614646415624285452549798517332711310008296290434194503810692424019949504532455340980849971528605511758433257714486425586302356022017705768866013649499462633056106050421754202504920659659912919905221340407401947994720405434041117141048114967783619614917568032836122137749281936647698847807850903339280420786981551454715935641308730820132281682347090999000763332122409263847527136281392110947750038864395896751717681684248765440376583271599040400008337817597033455503526428549171991601712961594325323527140393282217774534451600385386558616366605669456777709893120607529025166709702323699699803998655500984183666233895149126427258376267803730702587146025290700755469471284388773796661813929357249058540479668427868349265298325413260638882542133884186008279029973386895737457491256773660361965894847344500540481975639125993039339516298089329108001322558368764464335093602980527978725480060294539205778645968706320638289438610287912913273399696182918246781137650664421413046055104299574353429988257332924305329882066586771022843621491752601373713449072775364144271694915604125185246381507649720437065607909453072046062436293431203396172301546427346302973893204134776751444253902098078462954498431040327643380589327119470169467065801276459869612634775182558856340744001005291599266764425212329012476235161914596110018670559403167467771265427058592245140789305066790132898532504091016889145805115550831893362371343945310344052876952992291713558626766330075861245305274837307224675339211504651949402346313366439611493938534336111611218136917961647143187463904040314390972052749444072400593947012956836498804893737332476818103978641865367079269051127113103771027411938398085018489255645581397033950206017837919637886001625127131993753102593233793778757430598875851114116422063790151125154252065085946348079870430267188445724159547901157773018026140260617843276031681182719847441885348400487182251402342223434147243151996679008189301737261879524266746157661715167018203473416754294407545990351426403387712663049279922059942315318418029071524040883148999509203257743671401857615665639905621413496467244798642811546399334626897610364899183696156542076457425342521667771873213093874040985753434891049984171887048329122310117853673249186295892657513277645667567192615577796814078239573316193100772967346253748306552137869032241464679551811317666405351073704244768904806414792999559611823752101172411558785916404659120745257310552973782629872017962700430678267654985536914948155527545298603889750986078743015258922272537348448812748819842936310088177329119445685185216135092410600383430087791329470750669279139839405824853350211208834234520345502900991238145322710924920741847335093196312280191148502249974307947907729262188603665342589339668176878141826755110377413661618245121137715925361709279043999454720115137254644653298912277694094265815549544763296512058752285688149169597166903780861402654002109683642502545062250515974900650130903156455347442528773042035632009289901076523963115648024777387284337756797347919696056587975856804115350317097601043437070581174747315998401447953012908163722656920175031134838247672911158516679427861689455541642860974811230694201334547840717798433912454250376467507092399279914846599495385349674855945447975136197011029955487675091510039198583730438374942430538653993289182526299110769130844387667223035097744815440051871881666743562096562090931067850536915018616571422263030118367082571368269776343971114061956210459672744533831357038337717263053039344693484504833510188299572460568381074476084463883457342458928464648986331160750860603015620205223956208593513734135006680804152689011811123945275473656036193420911612645374997570855152883882121094375240321777227160437706170706051736137610428638503918320189361518997838123641945289913790241355726061636390474712359467284186766534313950455953703151420211026328770842863000548820858961604163626446535602491861732200357426894368072476390339301151644208413950027010562544193383992177841739682431291808979212988167556458778677859257252405187281953403049872356473515786499715443531563160914975546714449063286672239978652175025675208143717822715089490910613394479780165044590284940995919103210779474244703632162772446350422037121880944487215280642231048552407492299278130721859398389440702150999035484892868649930828496392528269680615568010614947625245621678503115289234940589489423747630989683646684758234705374427950567192032167684258175330937987733237856807537888511538926071462702048825400880586617913294484525647511467422737169955972911744551230821825096269536654634933664871729337313944908547855614539189620346140933198190308215533302728976455785627622850794283923529457724995285282553555474827291111557419090275387347708778492411581836652958250350188453605263439686282053864243522500807470107216181308950809235986256303298022122302454370196150234234100710107049128683892109337152265511463903578739242508151403745779826043718860810036387240585932942579984067557160402825336688088955251999464988847016759444977707366169600412581503688781774115707769118122136118168313038661393567323337142940900594422751357752479922902092773152592733580328674828335115127712409233190617035557990808553404625167287251645731486062956990166605581802119717044886026243028401962357511611590783762314387833114535643942292994228683277327628502768944197376818078214985728036627857365913868444310305989392017091589987558045599658082352078743055270714053124256331612515696231085037838262258889456354670172716373689996663019027098560561092451712189098065662252565157995572612988229820078189398484178701725340105237594280532212121692642572523481988526216089395357353901589666582358448728614450977963802869778008188391533624663025296355256321459873928567911279353721088741119424237747348368739680815295527638575243042097569881023951507523421184469975679426077679352357497602251126663149736208141673561944535558069373476652248022481514300852745741866980291668381175944265124462288413902855194504808600581758752525278314510736575587724386370990365874981392507660829941959097888937622600812554337456313636095319284613036022980350073750555824390348926474308768933225610092150935346121080107519342045447552478431769878381174998624806163504485314367509967872969397797449772588880627301420870145973871029428057760494612352941445246986591545856203978850157591890515239018509190180571723655200590698079820939011086392074664328588314502890606838593271919300450774378404217104895794764814431946726766919363387918415254645272547154553444052429537660954750171407423809333192911433093193071282586845610488956924440335372214843213085451482583343010118329973626864704568349616802061798536578426792004226489731231536004134267483492342015698788215168011485228700635510007567389650816460467039954689432779694224985304286492205002972091494742119170492296372339139730423034890478650390109505480979449033683864057641464477592502550569795177938376032250655538568941188719275236096965082515380011575787220963938563183608646264961186266168497364143079363569630441243020831126028542160998739458868194681004095548265835920153057531441969582320015583236736470605391170536621448377493867542264333131566401691625225551266834232461814553635588301879507636402617475981009393282442746323962430929572452945251973657982052682894561868438740457769015506069552729681441918225475412705952171960005439584101746484101644015572607362075106662694178948496918098080392062041712328389809943863894151519558812055987891608182264644649045260220694303160372398815905583638197609721183422385453550045493677154377626590582583096312548436698368431271357992804217864058964239610599313086870996083196582902291882501971460913075830159382695457315305052408594382652071941224706611217940764977299629149618171973211857141059163388065717258027482822644875068952331735995352882856274976799423467650883063272743911760963838427133595349191079199230927242729483852475935137716873764811747308373906621038347316378407171720006626760856980187714983810217488489179835059587744627065670719454697264334423587440598172896642625178472482240347303258239656233694202787022166767022453833371015673139945472822518239953009831286064379448374932968308498000954835035808142881908696147720569682412747323180499590732045666360400767044774178434963447541663955836312150430989496241285567233991134736259261110241505082514506889152887957382138613259013085155825983853705660185088302002542937107231660346612838629926076072189813506932487317886683103626453048061756011993451734371118614370252380552593818674964818158783161068765787618261050550075331571284259166303250670661343219066151716547557737233471754172978718484012455078568720148022547750647932132623559323326174441662610102474798953769398749313192370100889594252106934236176482255532406136616114582393787437681177655654823925007360437448876347508381278089079763746195233612915512714840237189313089329164312235162528447333350957041071205557446164201851789833913450679434829276079448886585885167335746063272883836365437288482099721369028627791722871979857288744384731945174969866024867380598198058779353073613435645303827115304493314050130947926748318925242044406374034089666278256192800270909655655131840095773711931115985666073229921984535876837983817349743759654088202270226826599183381810856917504127552690667126908630096745841567815238480657157382160926367533027891138356188674780236112337800930792189412166949787813952438585730451176977979177190369340239928624174644145446211553774380316739421048621643730315753749792531932101685667598907437787044577586029197389093377047033772548759614119066550562339090726519404853471074649512202164819441971175318276975318741291581870624815719842471699451232066326318520114592435646849185135976112118752926127195487581329243654964498371819398839414529725660490748781262958668770829732617637729380494232116531240356433700790182977791240050632368402059100328733162281710456236039443390732331320742424123310163739361924984730273229785336658469042693208299687542217222937945952224822903206977903161657761165646045008631570410233293827981547161096801301023971039230080693267366267499493306158183747863203552821613038555089947644974475945366175848159643582945143895733337281006183410139434669118922172468474015953957176009883835075859168526846194478278652836552002769046806014996766045030232791283916741352843791057371784830959523826284018865065051224005538809244717297163436124185886307619510868839230305987040174511731546167294415069456580274614859177275906823891469389379987768394386432908327083380931954080873576902101633476152073498515707374356825553205393257120546813433960081422646930888133186265338410575294647527409843496045424162076659007727074251016465039454184753309035409386291218983816448731110004551737128341439702151359413427923377018686809650754118198794944784392156341718615917926121133216110003739562346637872783234632498912662400561202508760258607634688818939469370364581912520154700771525691255727405616602372469993902723805742183400483458921994687356154852266314531314030729395779905670878266452358472865072604787877779670354817193211868278023282091755553059453469008950134946717671540687043706429905166529472555034957324976713370994206987529182860097385505086608985826065722369214604357613735725831424340204993101924638895475344699254032652502467510046077559155846535393083356287297116909322180021186296738477937892065451774246049914958135690024601384808030042361624351183943748405294571968391613879868483617202831265325374962241857639283762918930283266753038971366250989550841981420554676301262533699453971109819947858740933589194420304814621148024491349602104488384877476901172359449631344402982646765788468517645556305430175903299954355928139596937129599960218674875559873471880165609677864123571589429283531403698586363186964934969290781358742966045571843420032143216119809169725937876090456456216705556239377201922205163225247236181719483577897953841225933853297815886289977781520272606269939200643792500305476111640870815745896898111008832895630794412264956998132323525653057242236246589885107520305676715024168653732017630482609029048097596179511460876145193069749298288079485712774973024191903824629964816766402933069057305284978881901410496145707154982957438199725666246012896995044477156502193764054473090147847266146744475372321102095555499879184230766336422681491015456750116032250582694711048532830223618647154648767032384274448623005015765707284563631899661978603257329145565662690836870041171101563456826819177172513787867412167407784689255421314918109908267070896653693079256236270067833231933906198235675465015238776146950152669313891192040042735832262717206451232739086384514480068953439056857365457752952308705704137482300728726560822782174074682567849394267556521949893009845336311194377940431607317642966380254686620691191636017382238210510945541885095377103197289155866450646584386300567429327097476985054334272708613190187981255390632905916933956538959034627407668287444415193958442033300178030899769163815081262497194066205073744500894150483358872184539520555328971657161127740679696289882506248206421929190919925444435488748171079763597528188412429314838928730538168209447767580518577440614961603817490416204951241903036949850262945745139595820492964031395527602799294959259550132572657598789634327257531022979625341048166161944706325468891690252599618869358545442119192284241294635614253558294897965690211942283553034923142648710990205972583215906092480339552212930692218405544021013844361098026690994391909362593371884686345283465392719418372786292600102852854899181398155763832868808311594989551199112695600325265251849831415076905546510714497519077235113430290298120667124817499439819246447461440507019738304312696534078033188459102516837828945193411786995613917235997652936243011457192778505304199843193283894168950263783242490276625170536098996122189839599908859207870541438373659574849468184579441283682057929072854334286623929273575020243973920017114117320938294153741883937800799877892137667588490159983215627960127057190384887147374234993714037490895559599106376503439914338718526182697914281652904837228263675997367205768455277261351335321729527164094045091361820721243902914968878309971868177525698345526001099739442600670767253312479047246227053742945368761188135860057871211184192247486341346426287413203999254591926083680061941305369616885559730868263184335661814460867193919109457507100467532512505971105614725477097294669222620396716348864840029022657874094863612765577881505103771440131421512357519868264135313630229193468406295231589184386036579426944716484424449710083773962508956212369316359196220769236099886572478231695645072271521147610189786237696440906961045641676637910256228310679910915083905214922206868670903658373582401965056107617428174950329536396551517689399695453322830047549294847398329557075069122671385340804129937641409653630906221285200851888853031392032588038242668156035511364350036924325071246503650557734223634113611596552666205863555733449171096124222178509921377428928478571320936429631020117597123458332382015404921436919418463065650497599732610601579846728170615240350374424172364777605483217520383137007821224995468516701902966495677022359036684464518813644357724613836396428630790292769302304144654887931217147082842232401281266620052489803467130214486949456651446360798395105789183618603144961332264075226510630881570527762862873655673552736023575419976596155757748823642480911503429565568945634823115763803770996957119002023412553079583723842277597036129204882505426303690261599602557067276943016827996465260923159235084771402813718023046560102184636776361002163352542443939880988344122815015818746016466249000279675392935182514517334992498216185170353285284696546017806018032461496392806443687506207035935750120297766042937578759634109682039503828042202771784426790109167126887153751898574879057303544355013703547481210076185706190097292616139728311084143389728072982277715523189009391342344997340322703958496981614553809220931857155254740196404083765480994672799165577680102674834864945136638818025143925726525666635069740189627763611436614903239874546889827261241496421549238592923034648249646181824518469122149765614896100320768379010484299325849232753697272030444741534328569056897322429167196317347439913107913708254923533552361202994338111394831595384848514470027688299890348728575075925738030141605583413300176008342420822137772337896079525125862198015639738282527320975443422827198357592914785635756398164102422329807912848139234619061323401557394737196195863172096903692406301616438827708214788479901653535732894875576637917240566532737597662703658806539951514285146493002094487172971587295209411278518298678365946969533648139507006970575904691987734572160261204241876770179916209130705631861786796110904605928148044218629350913751975688673135366872484304782601775607855916637606919188367191827000387624290649605127576468444411214723065967880021653310196976822653061434212751492095022619764789929952517964513814965063929695899093115330266809904236375111379554503466889010728621075181552371242849539494247566696509987266580700321911980306541585153037275220482008424421984603961026088089743814979706553119724462173716510847253571045017100462523490678938091992891167261192073391719949057622325772097670997861519137936849284540875050723234518272011410695015222109743584431327091635956690088340070011424824813716861043411348629791899835936224688265594154055241746529643653597088285571438879174178707158027700446031130995211296913784843521299743126814095624155894014999520448326092972429935732973836389794000134016503410517333998990904466623610241043877458868046395826210421320627028239264566827585810577204514315267799779524872304891236726023510144848318935746652240060166675094537629988178956042533607377223925766770772666818023785710969619688542009331090239009849489214192351414746190284053899902644025368017221466153763339001558249058940246946426914658162306658635306502876303310452964097302756282104754311814929163690128450618771425046193413868329541671348678263203203960248166696329088309047760297344454020948392262839827406547259502486186959896194694015351043847866613432051728093992145607738520402831695843374787308059214282155698463157606627559979532235865912403453011053010826781634795819966366063245839636686853375083566406839935743713774607023093339400384047279848929419135564635705323095236589906203207714600628102096929542643819905787913774442912460727382003027462286583788361517333189586242778338040748129216178177400493300905185274640801930549969816755043949325684569817216164924412339099120936572360514217524783014417389755208655002620561265631835248398861177805650826271138383073426212686766885148486068609630279446645591338091542837304597276487754176986217183691518083749785645384205541723920341786126390238099697003639369677527688302711785838738957978960398885975208200957659377770832530852534285772428654933523924803124752995001817100356336883862729333021926688168494360130199043108249826352643335136098310162077739939844587283748460612017404329441892395559793419063123946289974604373137700581229142743334549844734096509859616475464481252211057462697451303384700435392928926799473272542522861137942532300772537398303670141885580006368320777226889750847442746245489021390526081907979980972224239758989111156115198891727448703654958958391816845398913296108898502135805302724963138743037305424675548410569833872720569835380149293314534107938143659813202152900961996271403824759539719766930097553866938259105627642879921434266583899825258688799087799541962538690760654612126360121701891618966472440032276414556672547444103272677752460349244349857997054048693473479441803691202262962371654274194065406818023227153476713035318994623197036605911088474809764475478831639819843264223279586611377634097418769709865761884239123261385020736251520765308743326964383193664823989482194564821695450402907349727616695472068583115481527610907244072797579697011400658590730926438228035339536585837229920101715446098274719643973910134252645229564809947071696834691453914641542237391506287704628430864114303267725866303361583060180862924161121192601136762877758543383827790550997392251740098455192642637440550710980615068945031681479339941696144342523719875596042657582409050095591245348615935260806729867386749993605749514740456687787432090538769381218898797930086266261290050432427563053134358955913485322941190297256991449500658050979434931532926040655220336764216612693445954747842262363023369233821798575395694828988508282998046672508966921459775005013477892760979345371415145894636792652945597166689299311720202347678101289849017431067623611120900009839242283872088808806062770488551268981558576954998879588174403355003005265826017786183031863721202712980187959127791053867870549434647851714051821038186461293899924198806435587067813254633895375564264834103106569629033540691758997529995795770669323493726934717414007773951813852177525575322029192437292269864768538308567714498542760672188786714458724755541782968685872599952005620716737471245329873669803611332764013893103684293198486249357741680809917686393436561094765928631704419183747719077366038110572365171202225319876545329777668860158558314687870625648560905242992361858933374668802425831483896739981925274489861993226849373186899275524366795429888520282046252933840884080415223542769315800098436439970202923843535491755462763198077438130462011947322604647274792906481087858265087586768207219806533206320637797790827480178037499487438974625801923870071115231360835773441613191989587619785995087559740057403335977349107520945685331929887126634227102230516170455877704201976226098461906042978190063946553810818750481686752990718882721946500740234751260328223640605575366348194147609643319963061827488446737190060304965679709590738563589509419932368194932254039061156477913872995400284469974632247538772094698540143537189761324748328585454259511276367447258905340493192189325298524629536520886002192643195211260826667159901526570505374193974758303518406897541952652569737746452697194308119641186321583849153387142623614621838788993575318089882236117608895210705216675398478435989130349701156444529773154483859176107736637375768248787616531157117716570922400087573083447523783146567688978632014265633502856268021069490323773042743891319635987558914773621894718614700858117395619242199508774494887884621842752951523995800675346890588242403755204105022407308559265305948964577035012512376104642546593232753487935489697130880218353724083516904583832356376806845024173022389896653489174644151624551489853399385103146292784662216378694785246921153214001709694270776247629794713233595213745449715266967494141792079610502807213287567113864859708268503188721666180569774578695992501953291886090182692261714171885276673544117378484267323147546297591240155315327233601908250179681467086078986183513179084629718123978677819116131848164249888030339778712395922263344798059801559986291915614478847222300501703663440948833408445090954188683088518926046100846431835380218986122965115992894216865163389427986649584971241711337862117774255947693910084142661713418586115959757405822850452799074541317214210739451148742334820427200768322511030423648838329109248483657538494240453978128621796107022946549141651571006553853763148718481095580904373556307744816760638642594098949885237730865023955998673889242063275325183278937642619791435693315906096725867916971000861885755012334886798519327514599574090289157000581470817930398846978185634382788158376181186495603186773381849492452500290225060802713706128688045634375319785152236122855245754487773246862632033347588662918378232941238245189636299640387239210285858014272713082364728880753232238560471864226137191162465042720880063402265208194752116244779049764018223105416707489106730809251156358418398160053249400394587923068405344071849507960997994588985088524896882589743367550758022387009205784479653487322386944334717839111986630191286017121982418826655405045468425182854999223456051415039122541165088156490127490727144493814035300050476411514048546674403125162156779732972373534103943006963888950084766783246861078315342190474327113685810903446627076532931311516272843301480384836917594637719513693411014491424176085069548922451914680946320643534134938371936565859277029377452460698482396762212519053979835853209130377733815706374005457184204832576334790411266487478272801343395605620949112757742604621797650706321774216102114308662569990836759082962660639162064167491350376643432967768026587454127807521278344364108582235119112263107990958639728373089694305807764026703417844681201088510384450685752407830521620935308023235278082029232247216002020875975321715280927616814351091448220337493438271278435881348027384786347970489625247594617064000738406598130611649314313469021341459546215851070812237272707360188519111322170329759422465073028844654129194860109168056152346842307506306271361037602006284151932926831788239892547048622662881854549120415579504067571515919721406625770973470213965518931618649556270812857512930773976515346769345676328765985171600907477068854898791519956146848614052628114191645066153725059711302842354742012520038570410664983497248781913372813276381526101649503993471845252598403094970331718663106042599071463782575762214426704514074142822843370016216691990789727610240480621528293769032294185586561294761147040925073271142309903887152424665143326963559621403554452782482015046213585921906174619696591916142506184046943478912582012037473714224639157911231876890030495837068302259968468898393544800313488571398953539096782351888053122783492149449430484804556718789096060279135196245730370801149224609900591224900625796060593642125244086083337451896798608960890045450205722656079096361693657839080133033143228707478506353792320054661014049687745976153053789483108861648078436949009713765235005895188701320522547621211686147483348850290875246970016142449612931088627413130478869476752866869974922459546413898928055009364745149654903948737246998275736173581309254199264672829385374058344947064761823010012733269717630161638348744565411391376570091094029697512855454459248942642405233380188029070200931380319175022111766056518431923854164809741793024595350626976067004463119503030516664450025088109784808513318245397073512321477697027606164454501062845953203185289086975597259105567391159187361395129754589349473164260015067274000045634289681187734127574845111038294934099731616989992201263619702656065306099045692555094395512604701404817388761081043129490505624113598858079754931532760274195402309637088316014050172042903764534973835709685184041415218390471491768469039351122876570393827123428663585206614731291532773255517319582165178604415381288702145073752703254079171416541436179125199654541718223720967871567402588595137913038085614302213146492474564824893282943035059186375113402852646467480336894997708678260392761973248957113405492023423737966346544974541970201636790579074619336347580587168001525957397610948281284081479372499084735108794173663442893341831799039727318110268217161143714486624342785191749883365862636440136394021871748903767689048227129971715179350022942563233163739225549929340915832642726065379366325445657046688260106031469773966207527130713257109478983579266810879706253525541664881876120069968863304100457818693288648793448360050958903285840355501419598622796355417524709680196470130751687083704832471517622883343563235515747881667204005769221335517074507462394512700399015681652971479281013636617478765389228798683901714994914892512197956585219122698006910088088379716738732966327067142657741844979143299565178301335552813814152670889194461177395272092924308288004162695190969249058889071413931436984366822125726868958243125002744245283318684290206355942699022157445290178825428315464966804431350167039953896090272303872861285379987583803780557256541762124978867649168922044937859186360186946433281926943003560794658459246272493450279061433916869574126364292050887052903906207638916163893254425752007226294905949134988666079538744802135602247863601089945515744492569327003471218182547351016347201413546535793382702063975003999971188441359686868654453826900639965601941822413598764886334960862515201523187355370469834699245505442629424471694460567583189705517614640841847016107295780244574943993404723891981905387955069078541622372193557737275428452738232128116086815765651164553920659539536358139121215864725382571904091065353717243974632010968024665737453741595695109142308979214147741991223753568067736437282969014020511958152254943611477493105953851484140771414616714300436555596507066216590118696249636007872458785127610757282023775864488097884548488493498004625165433476038740552737141268630644646729159990113767733300883633183794996069103126443707307077142148188114940472887093224028152646434798521334035047678045972917069392868821137943992273045593830112740977169301194234291134774976632631562515145921000273981084192392105238554078107781011594509664042117849104434391720149345881986466795005120950029898432609806273263679583156025300231091492048692217411866546061659393868907962118194115275382039404527285843513452561377314295952329217196188842724356685182600462953819857264728556396611457680784530334048022796768164544699705909440555923143351114561236689038746239026072708690883208318578664666570128923225462555052967836473037130511021526701928595900695910799688626104092424642300490807008961654569815455526741885659321376426706176658042768899430044685281683370771304801913549800467251130253875820196194553421269158760254686123231475972184945463091427015088123317684296204446673011692985719741400530346542978515455507548012240988685141041178976335096288249252721630020736176536499634745231704557435843031968865053528181579182846433697965599951330820853237489210771828074577739764795245272683932109582344170838100873585856946904644646170389118273756233004071776598596392565573087694689684826187259790344250919517102570605149709113992025961944660428561615435896876038381271840264321673407011936040028585524894439841438454260264250837127119226814946314180595485587389186743879950141961420824568583374495649364234373545209021020017577271504182449497961893880888803233082457183535776229780000539663402878148345048237137668082083267975325920212616781207066441182139358763888067205273015852404300846454212027141327226670559261485117302946990397205983750149982155813865523396133588250032114879927234008802785984757112682419865571084080993993689824530757837418038819931462137081631170235267016980633496328482405469625618586516787780036189441532299599232193702589224191519504312883193493437384695821671512818603553283162196157334664687034057538176349195593103017980103402397355636496145456722577163220839787354018418567269356888185181063264343778448804192964532290802878195406429430549699443222978304183475003662908633587196116786999499003349942446169499453279215064214761456140653190669857556528147011336730095112647171797452409561723664625856662490440422262261915819891088946566968646725346793025304107568779675947475495069197498219151624215598694809072661859113646218282974059587937952065407240327761233158283389731269175780936579237995839598053028776104445631451095308651210455043154677407909512734575379362053447760248255275255946029012936653948861089600375840717183117623678171031629034457215001860372356043867813245531657214861347886333923512256112085167116757509314086186128815193657066571756678550516428911441055045704445690899996445940989365075288110197080104931013769509163742728817424197594892780222283036015967384531957923795321914747656622902805035908027212488525264125085096862378306789640355096574966486222513658937023841528339850094476764474671179569210786914419157099979739452620610300328089817308143458692798046809200430921747167785507473259169344511824991057668927174859282471156965847703991455465236331847147554966868920641745244172617966610268844914686642549689823684220397568837678896499585337954894191589793472148480586628165638900563253523125255905147662562201051370084112572810192058743007168357896445402861694754854666517272469082503183178950194126357439947540664267359535510349349700728682678518407998054793270891422672262964579471616117946122795587965809314425190173463497099299726289333287011146128631364943977196066670924087523801600328591199197809987109367453945989726158364795998519688395828596543836136577480539899393741952009699085084593658286616553313033122840386785101452950971059616858203173378818613987473164824029740695515857613596051029901789462409665451503238409494277584252284028082377159020636271495180506461333977465817833647348993144730277546937720717613332148098193972826229846113841238415999158524240985080755322966861042564336126886594500040296155015053378623209064611110315022086209990364572364778691884949887959541438799451771499447947096863366553087161415757788717427363261814303095083957788194432265049652637974377439606500554975404964656665624464766247103786673082248827177802963657858948887838886132111285547985575396429408433105724661046239542150124798808853882791652876298805317690258826710992144957396526862100316015800416673835598473237181856813613088545436025821062366513777053162330152423845976114822085203691265928922408323044727619435305514531491542558999884574839637995402164195456537594534903133022538239924760578744296135617203674502202146223565392398351591318575253135144142491229989997371504790145494403121043401485869796570182529092210115342715141559022666297276100822950815168053090839097554266907960485791336372405276785407991755094437039097695250866241910128658557578206284807229814075872774905562315297130122551754345893740691433717061813789878928511939993119109312332722989489724341282801452546396509039096970727613549364297894589376699341703983855536531796630181613226196675890883195227807698774038279406021065647462742135690082227385104119534330648378993856651641378873443785633830453369326454138166798782140013441094505622463867343088630622988704796243080719680316757645588698302754067991419971828963218781390415434877211767602355316858234833501153540580364588592421958195076359329748907123240399039187810732267795851843348927951469273904220539765985123066363317761486969770030591463477310548642412999897410780590300938638152725335788005137077403138458048560549457314679355451003240210940691293642151792482527484386732719279591060302253134992653953960270115203663934040583232524406253393565754203411872529719956021586577406992852205915819914224728252074385856336063887154178088704596503573636434725932875897588363006383031984824345844813366209875143713505475814351654887309209199627024671123703097388961829870839637099027527107311488192842847434243091158800873892950103703779350426918333217843248477386467027220234549457255326614550056781391238028934352813962189058092190134192714258830195284344343983410552379405823807314050328167204713163564590049006286053353995832658276185852870454879325753031041218325450143687119793683591276558467131045759342694737123535519776647565314735288218679408816613827624697019958846313227864166859789042484043966603825511813127109106244603788062333637100549330182912940864281819389192392205734672579763909081397639216425090925596488577352395040384036440765350336906140698711580281829213152244088186761526012109751566287141520278517842279595801597956266996312921257278261586209713940004419111606069994520885598272269310781624715848185879838206163867547471133559464188443220062698883639348196039257730165768108588398437394322581063057332944602800222562854557730724403437370782447607307928639261627744017275289815829297311225164027422403228324871821673664399190281940971277102396125518092154713700578742296835470397855032711388674961740024335635935332603510597087657825279213897484531058863102681450064623307912475743745161119049349954119252294629885664670299554017511174710907957675857121432235428882768351968742650329168395667939124054032016777663336136598742354995558028083743416981135357101544993767692830783137944693272215368497919507075644573953331279221724608419589795724259036815650020991924865554984998254794929284619285073406190194126339419676693648540197373758107427221161661446287225392773621687552611457269965729010334857315769696776284067850915066659135177389553100588124704204665746451521090715285974258076627675495306732146730724787172204738006773798890486511483140373243462961877380174782686564633417124824471582324570594326469258086338899324490330483382615906875645184271435679968745386598243216477825567239652464322571180060325179778946934949798091170455767968442878542928451715604414168673875960579832511793431721463618769655574426862803097103874715571878113143155809179579861927803197171360407922554451805063627713215815766928621226525171888248553184781036477031246431456128694294580838015994297957975114365943617250722801022538561262801129033671778905763913810770192046140856192654460974534718924706808050018639895994772195617161702857036141295943027238604749490944334119678596799332158883210083561864629620500009664414287407126288177801463682647677484039497166552178863968671402951704919566371347003131211038122663409325044975059803178207014153844528440864976731991932469045297679486949335582361921158473514800284274186264721670081481615884239451238895702911240548700880738907349920792588832719058733604415009086215748997997490413431669701389796301616049562707326171702177076616709354858417941153214228823694475125102941727756025306136528893193875163425566920350257798006064123021343031492920471902948757547278616034376099294178247086508901042693673280099215342418348384857598653494959955017096606994892438775037988814889507543203121783267128424361761024562421266162990568854169588538631870835326618742710717381454170491908108754730545847126184176868072991031403412073299905501700980350994940939278526513941565098902506299849201621055190240752167608182370929888492286159540310328835815388632923673265512742318312940565721026381790999131492858123854475556066024091792194703952833950375227755290357194740023104453821846783940862568532013468920632557716775153243769478534564079198895906216471498196871739085966840596127930863154377448526957028188235447825973702871420816694448295072753047220236238564876345941571649090120102893267430733284771880471138306709498413112989740202325012411364074916360568079303013498802539911449937341642593957055725904635877096146224541399109617587611416249306714502217081355727685739633988078112512185223903006878689426526396746461223224677766000572278515572406651564783822796059956151353510650648029970602547108978516922879858689711477872810381795482803395023338468062183569939478724379516396439559798133036151840165053284535167332778614619765324768636582447428585487799895088569887776826294822085609562221319009273391155027250083022359075031451117757925643560112366542247842364430251310705419073707209912312250489069971814512149286102700089146208336472684502949408502933221601327831402117042190787846786060542046331742134428617419307720113448753643401532575715445140167328582587087385347094087089782138372511021125119358879038007389874518600507149402952883809117039612785433236356104842580040991975107700846087151874079171708419664455636333894011563584462119693802990343452871372474485995350885683550561749849860028906797885318465173382884833247345762431986024956052525083021224135488303451431560625101738728371699775345699688182825662434479285727057195053948988376712630602632028953535530589920396491811645264876663009079433733361348311955128127015048224165528272540313863639443413611105663125420166864044528407876107585601410314783529573594019935764407032834308785900093620648171136190045193613513057318555188684933065691202419088254506626660866944099081010490480287327789580199569164103524814355087438264068283143159752954030327375466594661436915820719511423045835726697823367064846616501141718557139487188683435924317388600835317479571259411190111757464169379005759725304431751012720734318882076500955764893236635481335048356821764646101517735400841326190146064003560200019573280368820585639073156632699681394696369183163655875980511364147533940783378165998298624488756096363408862725350320852103922825224707224587306115721033952832360459364203599080507806326460903473823702649680072069717189165128623050769088891805505092646269607466422677187755228170475817735161079172115386703323548328466546509608894285381999584461942686635932875175079336025102633428075592046108992164955052139100345468398988764463359265883476412380561984942114981558022542985344343678454863025320297864496582020267562418262761336554909463147998037698668423216421502117987793437300571788874989174971629475329491806881943875667270407648919257582395780530324898806826122720102256685602081247435552186334370339191678221340683237967491416976798491528100884452691070243710790154230113036948761564585022973029853862003334400052424136566518625392130315805829447369581597438526345204567467138194457936444196462807913393001646129894463299090976407673035883896056274799064747902172878352822933299882723897661408286401673824435860607128139991665303918718621927272066411624285800150841100850739820740441388288094951619604920099181443787067917050159895387799926489265141130633760314610321740535612842592065099777216127336708681345661049093852652827026919966435467443684918602371939757848721650574071990917128769324444302521513570976924218595607579769991355946578131336847586163142254092122423510695394201644985885570879089327107847013918321548176632590338266214316856551305571000975118897300980410728839624462154891457733403269768900836402701145373797445629073219291378895090455838190615716097017598524631139099860712958658556335493059112136596820587738165663680185862381220427609913446635950583428209045532396410612944424575246220160340085267366120156472726633558341132353329911873923018330903003941362493350517009445998655089593891744061667554809955974804081520608611641294365096321769359731393131939771793243565300304160983483843166600737517304914744478155546536885356102742526403774466208242202382434219366138439342443581900879084652424187862870332766636210312092612166184745823240603272814072673735314386274839661241967621541732880518079148337390138558596412642210369105741945666905990902324808322400760019861482290242006185277894421623654230755227244488524673629194784005647911681451295419411097721618479999095718673507524618091129400937809906466637487436180587290245833404119837778518580039815105049188583830835739989498405654453094930701433136910720026202055690631783827295384983959196597430907455396863711110596804215374218136545691405168302435683708206297302962644756031892365382605332194191724238854884267134270617631421826865049217877551928861082485903222116278138483918873313513373856838154714269256470044683071179710028528945337766869868318566205831211580214793164632731420633232914436000112112694271838931597912075142424237832719143205131276344524125651651518481222746580097014412502176220156619740188077576381887149763952032893901701414096331171872880971902192923169381727540052723540459654565193644766397333446894909865228775101160348471241076076665481934156360150214601894108591925160176462017403549515739506574265157696743041055814155035089041837049069495730532899869551846598339242695886936763043885870363717630760184112607426420281721518985825748784231673516432308022511615402098609229754266531051154084112640081011980363830214786405744274761980599399822691780927450830687401653392557403978631258387968405190606375230386422389895832139013958676387586726453860749087451596117864250181303265444027756108831302782559052023638306769240221106519714191487896680219115665157789922005727297162560205030852375813408172217251448666447779305543410790697301226650853392542554407897350582365670008924057564507077514753469405630504151030604783512564526074498224429084304611962384980287741319318878909326449431300573066820678309243285805315401261052560045680491870696582786790516646804314925355736339896183482043345349546835938563428060912338665526832532052804507564706196333869371207601857968685570023813522613221972541656904738571119579173569858155828251267312376614349933317891808239271615586428859956299138149104639208715058873846993682963588807177510967640077451207310664103568503259688695506492332926255582701025289937159559262682318656321151101601272410423754053848834298035467085336640543075681690463119029387957045604708549760746455651394154633037409855171219170222999449973503386454991060738991522439441335680597609565263797642458555595773831861500506058301293703896356360661253731455123301380509788789474041049011862498905054150615699372861616810035993660079380345764376383494032938476838401316640178833913648364719379058175964534469921814865415148004420856802594995934873716663642731724496596981310271210752422345331442466648255797576868714971937231809003252131756848904223109930034778279137071104126554599343633524740814888391686041543740831488419484056354347537064885390502859386698470173531149031942950304164882845910436063138143097563880347882558227358764496535554109137417115111895994702206962321217717742649525926614195300776273438805115188787272872787601770150441081074186415824312296249408368077660274687965605984056747650478245111069538023036172816695857581932995739242888046853219587917264622710357133443978607222040430336956479401222863622288434628403860928459360815624948184147928298050070175334068105094995421445072155179073831105275669437342821778759175813762589279628166678202750022197267878520694450666465108305214134110963596251357919831120971800161497665744252843714909389073502798862000864372387814889576146622646338575630834353871893063759990935583132679142861003426607675096735228853873068490250473080692735640018105399633792323432197367166782294039686037155205569904079482618958155805462505971367316178318966920078286261972819037761363065831489163449187235978366681211086479106918809183388328385770793581970044014522951306774570406604306306136060908666222004835340695112173351703054339982732244776710208953651486107789942572339108664135047039280574153032172620973416803051286346546149522922369730035725055330180580547208268275645550741698615993379808791512454907258864922346603375259488907908291898645834153697831802799745685243654817881738314801859232547585273586297990341221235326726691353594352893538404008222639188320202018106759167092084835592613546331656117381413068069373280191065763162269668603513246034161961233454887158878947763480873530603286949903296077711468579095448863609046777416693345323767701711771181069437481518688976255766983009816541667004441126019076551140320556437052054213062076288322799217926410379104163284031508146426495345470174762218418372020017233799018412565441641279288067088959101445825350384702852844444973614896618911329948230375561189984905080709408139687764617188030866604842797346878556108441638109880392100835220926760270624279716510451965924361756282429779951778412250137411188168703895167460090716079289272683624069189150558407380632057190218105873002589991462732238568825257812152708496318702452989004962267059218144738561939324010959949307357153219248759010693592254666686233957957962561055426406312357265974487547803541444143956419288892754956051159809461969919828560978780723966553965881108814445232982559031623095741785892593064670203329003937158916170637468548432529154348541088427956608220327035522959602935068118656196693585158437108091471965577294126191782077496436474688505289468995829355440116522964065338536421461228973142336672799928034539377099971801099637971564983313994710719459435259310617928880571219656690133135033590186319080340370076137120692732922941060973067883131620630162330198463578488633821784658483612807697034426774063706135350630393966940786818957994142338216482141404401293560598259190397726350317391316281988309238339701400127344248180263549345983410130925921533580352516596694563833930570718276769408437998061052305281439605762540823439150457981599130728505782099295930858661611481661574827059885154454218519872419231539197608607464143662669418792875433225286937517571743280089554025915802491124752507591237347340113405456927608791183245704153904133159406907631562159936792635622114580587010405332523669986158383713701814023537296183160889888037250460168980310646127636658500866997288546181221738334783962247095232053049885915134596117247615982344796847357113073988973078755359513300573642445809759127985164783281030926993451370613220347575837435258786265528378231331555284011922989919150421109459725222193305950804161944073890356664541048571817954514323714046858521421861117891534922097733891404442643944539587510818694788245882901727124943799210409118821104794305086331523057413341344124278877052874947641122395910392159787711156647080041194996735663055822701293297426965591728998467167759777587611271824023289468547706075150998891197832058941419891378965421647829964550984228326396155618042103766325158141284348749897939455523324836224031792258447724611657993147250057658688230383702259137837531910733196277832970833181425346855439759979338766945754178296139395318236569537639294972869286574765901743975963298047612913579728789944147373093014055343229325680173897473352305808221182041125703186532108949646439613434717711117382089437297308941231346316982567039246775428020162719278490300558613485474667669298761897973552258828750858185905189166800621405714030881385258692707184518840076769971831877675839677572885586740805074889602126936813196221631987980910618641374646669187678050958646266768959661420867565661306235965319906601720072527594673327904754316326820448603277593984861152671485303665426010480431243089740876292802223377144358081346324628786600590352576695992966343544028671490693686503016544467184000006856615218629146625524188141239080430335533625889332929377335041075299460389591623101476054008226998644231691559100490553995880091508026110240399424927662230262151883229776760960975417983832338531100706656863213096879409191062520046047492189285393934911926538441883827032015000192628987628327710388305735994896950464784828438475192327246900471169063176316593056237984379194552901731591198642711122555416607791284123585885740494039757709333404851879500212819722313025069252741478261151422725906296206240361586203228177724040363311799374319262147195671495061015236627322759774985787568049986643355215858696979246048721317781643882436311327849617962208746911741158821707910593589334976482792106386929463717022072990533603401643460316689760748379833417630286063281710007113693532365138946175540307869256324377188020342598205891744977743031274778644874601990655678296308179979154089699699156958858344735137544282695596770487268156686526577398142425577453104808488918832037495475812610291246394168510139611331922988463544734164403324803158017624657306480244519361788806007900672783780564930623896326591343403812848276274119136908141533630531627378276031311027040064342570793802526520337166237271301641829259362940658649791998258265707118753103694872724897761738007067079043520862362436817779558914641542773150166384740653475073791975638192828784820046641059063745469457905160787143008373207132254656944613728567276990188932302603588722484662138640060035637732426348492072855111588223991978129113128086298258551988426904600837144734803633183059840122347368203364891512324491003358605650560187701588203261435557753540275636920523814228168021823936136746295356942740155817291488675723965390047591711661186918615837941100243019936574674624719085622840913157373799214206330116285723217170341724055947928747988706850274780407700156265481558574435564208437197665447743417046252436937531276117989916411748231676804780005694172485296110322995888102584226139882047734458148664074161531810245559662532792150152859904409895560170872599482606244184319846434276153124737680020460756200973125291742009519308996085421815714157833108494103127392749700333188114874062821469590223338627902776560100541377976437910903818286233535226186524952097413078026693191072811157287447798106919416880380570975606082838541717499583524434990039518826302883661097012307875869939579952941895829747700812069405829487207438199215814165479496765722703310006736374566990756557271035256438502515671578688328337358512800615640053732111093007114120009659595303433806279484566269095580707173046575581902761956732894466713330757215454093515728953207543334034913160674032833646393854233390865084522665331648979866543864382728111354976146699575408839235110547103175725859094196586410733070195995466248086219146552294977481154379093574961285964157647947229462006861003016885602928289092640763673023282941650868642742045772444905678435499067564027439294024755524831653193528559986995122944856426816126594728727919685620112208423234044025408879982754062571112609450290825401734238615424441754112101066049500620151099461208649669212502972695957947954312766841573811536282150226414618853990817284880304515671129648173815003235263964815459192060623442329689024331382912599755524530234588122833596668908091396863366189973091208566370931451670683560149270095076888708786397315879150413623814491201822756377927193247808557941947294400583629576674238288441630240706929925155257467538589738028473211590380840153216770893457804527468847698989826239497152443687829334058804309058919501895703391201237041436577578730077233701289725980521098595203932420551911148220462940481096105734471753055971516473217473580676712504735622577504728025118450584277817545878311414279984533599366000533953882352846782102508046095194412735577019975730749376860351722761995653729495687148327218307334525475324690313744959603265285864862010163663074075062690463501160868100780606375285456815810982185023150689867906063048317969056813356711533637299153254720546063976174623431128060820200160486038820309146743172290366976881809004691942050149466508261802271219792897069917782239949141033526802632675143199852676011163079224679328969945491176827584289169988735424621665675906509559216352002262220270649144868758098258053012836276512613270664852234796272119803039655835503270423510018180877651480133559172737357838405241365740698000019716867713346393299940943915846241276526747742914638834388592357519918536989252673768982920861666842683528550827024769995440772177775563460500667667753184415556561804318749468864406882768886061081601426111055693336860326738703992492974097988304778333502022274437747823254436491946017208922210196043224126086140913342912493452971326739344679226098783498565421913551655758718659989556179722286077685198185465917490699388495529652704879274975065251415990980061909746638059882715213438048605640964730455635829992660977163443032513984057484976096236690169370405441658811561922057226215744406692912269139500239506985099390685806575600143466549216090564102312027354171536539328613919455866982682935826410084869293607601976085631792705007968734080762815748745235732952419834530233728477246913588319008538918822182927283851516081861337137650277772979485000775950676662197203129853338736385925729540880968152711112711302133837279798892545169122157074798128584292279684340435185866271196469193064737527205275204510524008706719831011924179687115652502786610212367943945981491323588573999408589185181788059143907550229283412557457258021392197484624672293010748292178571495632433693517921604716543679149583656337485566762924169509687067560807185174102338429854985419323944489852601769982777189559542031165008557036056591881889267684125052470713897953624159365893013019343343444748706724567879842670209365851391311123794957836396959103056992745687598472955795781062142133268340039542324783085819613589358769151279013337893598898902868006032378486971586977198835644429459563151406591476437950697159514468518071902465983243035204501349643432381108090169267058857660045679846507203029988809138941857954976738691394331119792026665741094126355067634295382248388905060232681606833132541451264439188882405581573020168296712901337246912075555597378432602654278612555291123670449317716625080356388737794026976883485429506252959828365269681671691860807976699093636281365058930351121933623946656177563597050268450053836958922824335011851142567970324527999442759529261715914329045111931074648325448789734013450477374738218657034553150422503659318963786357615150909004096418566422423951824054980135660363883009917827936982363560949314552590174428314257506564448526042488428624317697419153703904918337119106462810290471344880039769290774559478469962652741366721289193474833627925359505268404709747035244660158625237667144776856986933831780271793136336037298202867794917803083376194825608974252784797719134359265852157691743407576936082326171709935750036724726643258680681977734390830156160672463471391293940161167004546689021108604194642639957888668606776394764718481301439122500704076150296720272829860466963174513878555739218746957666084615097659992502716495874025827346433606821074192433657733758306759381544375609100719714212662598354139207812940209574670313014121586517995133201785321045120798107089237110039747385640626393354622664344806195174725641307515700806382314843646393167570359077374162330869740580560049387039830461069128598475990491296959762622750350780498322634698695340926495692455502330403014908713738821512044199260835510576536219481930503127633224155023935963814406173569477250774873856632242921622779775145879577715696920622428148321318994537062914483630797298148467606050361002905736541494217577687210183512208881247184500267543166419849838418259485753390292437969656520466356277192939846680554003003196813570980995429502389313412930893359192253767114383109408163306330929842825204619819589477799424615902194915369621424200862217429088447903644853303028331819418094657808474706574667190570047388730311655259013534419569675379225331583981870688868312155394291521512738010283333744752998074480156134381974841078055027667332680405500597841122023251841417460028980657769053820634801678972268340961221278625162456488237374672663433543557172036100180615958792960112868621626538841353354965161998541764581696251976331187083973746159180612870933291466608876593238090947370307014857536332180434357639317024582537736309478068027304550408973842131487374074938378926202180022302661406170797543363231065431897802252889638960234174119067670727728202220761278942009680084493953466738380637234736003830496028918390580059216342087796298046859419577785229420211302978037894149233020144345867669810424302724952874200697724662559356126552489842504961944402638469774822138627281999740004661031285622833186173643849899832965331104826644401651137443359368342141104443409012226989200007487859759087306971630270985708863054533693892755983034273566965316471745256214859331897296870089164246637681535121244791474093106529498569615270467969844655573826852322175606133142728315457813130666033569551783704684271328089280436077752713359369952599427349906492348136580164392127988813905362819707104519040526288540360572930597177096147317234417338815655527676775135752012857196261736585738749828828669911684091789572698298707309170970727147272779716629039102084528725606962386962267205958845282442342732462094065812138258089804309894896836800098754004256517771611255700709980205844507020583950274715579106911595748680300832696437985946990418785901678319774861917344980342960411320151067237243151569841284399011807422040767116521134583508010942742657710330259668366171563777596706932762206067848899121890153962043152437316093351570989919138281895979047768301831961763456296665263312131539191294930551641650296958565021526368502586232222166640813472587775635822601687663221816414631520539421413076810914673128012703469675868675246276006841521386626329632060782146796500193821617071263516741737660122069267603633136792991277788821450120087024092469951726370614462109217693469357190567180173487393526872218691921313841731176008454221113238731019716833158245088730108510345782537955103510472564249377732366942032895950132944143816983543111239293129468703200661346292449409476997192774037692305678741038358143262395420882751459454759698782522104140000376880589273321740755098275483454307917539751144456607504823646386581473572233615010259362520231304340446776985409568731455583691218446257818648839445698750434348932406222143189306160168361613799096567383110916775108641394678794570684175994237943052175194914098590342442053191057974115336965569374098300228023071855224586409165440483500261254417575403852623773997940527831582578008910415428173748966127775564508688434637108181887823982615769806206884170205917285343758485237268084692863465582650568928562365424851645551467729470401560012946043299448762836555766655000974901957940717971097079428604859552004344307853173827923715102349694772988821017304143187869568231001953510311459379847293014874523107529331249011821476842025943388327170082336035143415808418774317636579491171189892186172451252851716596479748614302170311281431704134403269525757377494694330501606973960200701863160797639003813517314700043353094645211654653210841908697579638685029309134914837904909312092221384204186868729149473741725250268055538801063311300809092941521089246631542154466661789080529678622147121324691985048884575661816280745346042507964576968661291921378017871001643503096325219831779549533987660422060419633223907034708936503707925728367403477476364175837715156634294966571267766158083497645551805247507273383272129872269983485098575676995201354196732531225846000845647148493055732520126801764385496130432106928024234448588686950382948517952606018043485034919543539659300611992704706100499170122318204078408415358733533526402342873705020060918731322056071361526257210077563431858006105660595224316421205861069276378476427578737690402258157769700375251723427276959165792246441348740552079033297899584593676666838574934730610384182841992064403750258636198991689088838371205348089298844360284678714701914218159456410362073807248197184195230867964237900156550506471503470785779494541188308411511242407119993521809370745090854541135542960171338809679537594110985683381143010647377932814738354087200421244298407229170476219809564001845097073992906499326480989561755536924495809829118704988835026232232491617010933591630258217245513210315717060651932610110537073856252726710269221521984872247777699238907631372425907576050317209406707420921088890076455992327603574951820691564030547200233352623914872586239088069237349266168346225381605587333318898528926742817115506786952388019746447971863039947009939661343397421072952796318765692086417264288543787868074261223800071732308708103289916879664841248261909973773111983901750981696316140069206382757960416244672030855613619147648238817917880845553630653852209908186881617384660578494445596322969291086277939202751555437162806000668413805183648495596835795207397885235129942811218652864401145181198740963989641167227990692092131424680385337001854758785474172879981124107491215959636514687366686585859679147777721180385925914187726530047401137558426410416387869392902875188365476499379253701562978162332504405053521030449034248653427358632965998635999136773685059767495660843754282709610097729726837167908590279824248186166207051436368764462557737784536394383493137479552600704688484723279000548300496168128041995842094413876249059689612330960933598736684375011707610154630791285681362838101157553634270979753243639021207910494852756527705914155225743856470133210909015290681387172552779779116582013709369399924986098649140469515189186496593950728929503515086401228594438792873296127436566642655427524681993835303530020292795747578221746462176587031725616663387951466377979723270907292743669414094473234231903707720809409759006759321838653537071836696041000572812012106306688729101155637570426305138523737107813464135817247661465455538652080749446274443439057466116858423873574941297686759618670584812088431698939289249554866461290074955834051960653376579748601467398646321329401251691132904538011611323236478740618302948705617532274359909978479027447305375393826854645736245332374427482475873302138164968169969563575910227711226028812804676699977895360687148607498475139997328743032232537441947338430916262237116045910806396513382090392077943775212357050178546489953685756469419205335621914458452150683034167644120346704158427694756542336777163888849904512777949737899983574827464033934883808669436820614669966792959596860632871424123800870716312876314044248996296741648715998550191497687310313809079074064781393505054674508196324961569745032689977678106545583730209068668482710547642558192455846584833675517477105282967663459712529048593715393410210436230304623617889824885670101834483245456267943855286330937911878652290784330896325903333135895419271594544294081471926517245023433743451873904467373901340413593226083221842149985890509756206098984089343412447765613636659626840652652116308290125771595265806595719311900142452122934912845978990226626099043344092750206317269068604950233323997844954690306318572795690679882504817930972724266413488066848452060583603669939350290753390660300064345014016810798844527809891406304499134343028605436927840545430214516288154569278561417319090129396335853461378663512514580932107732031633045165185421770027185452062640520494524941667838582251590993973020167133615996203728180650277665916399262403257414806354389090463849526748543576715574081058133051772144493388469545746196222969928611635924418213380057517986591977896731329433977011949190779224175330961726120461331277122832358244792421633430437561975712142399214445184768843953431955990621786309974313642914917443021923869353527719717441494846169836914217332252157406850578279810978318706720966746864736871832091929103471141073132891285215926768398533617037782673263971501138288274822384331493410468973335872275183571921541396202604958106509791857420708353087507748425401402531167103097557305846134319712731877964218134184592017609482530803231935858629536996670468101169142331918096624986478397525904666051395661770763242585265999548520473852724333481713050649078437947670908073144478170024471058396848296471778410467225220494577567692088706765861718055047372619915859785937525389600398928521993781311896576877618115953929450964827844004323619368834918457950335708993322892583384753892702966907472979042803365530678064233897486491768567376569300280977790349106801057050936928088016266581822618521788054147903261010438544656003000267936426411228948839875692136309512142021456333545940788545184277292571943859410732429280944032414879367610925492711087681107376108819154101793578300658234835758885192423620280412910127832113639517298636154054863814486222939344092117353192779298411430251073710709822247920680500154272225489740626171768851659099463454690502433247819216951443054925994241133064990406115785516729962821357849343054218809519840671271148330894773791341361807258087837280641980948986270241842833318598057580582682831938494059160590943407854844037648044619077668771643432764636010297004165350704114210735934925618688264184075823018649164064065445140819670473405471611101903418821005787382600787333897778638173069761258949605379673246740795219553339372554811923024708199297354389345189990736868551621280196103672947834251406324507134171060259613527530235846244221713784985823972379879169691959870256112939189533992552366874829828710211396627689086352836016955563581489506237690431195704991752460798473898190490161351059634159663627452290971060124336069531200530507976382716624440902012881816414739510692486467929123209251918803423869980601135986289525628420239345488407454825757987527603211476108424672420068142836042022597497776788686393636971781005001400511402618725747259226297280085482051061149503857192013595587750792042009187686935137676310729169708545180403346100983875783526030873224907567357722016398296083792271164215381578788778867517854148570777639749492759602786471791790392723399816807050750663683751205692827742248210887037299216629329744349434387353787885739581359979177135284106451739856751041721052359719035283478671475365764488157488185257688877318554856355939536323250696616242576030988080388572585684781343763422539900664342483835855658165145382444441118033359322580782507116598308053743338089017650710618833357800023163454638109140214583388749101217679863829121186447396582342630607040435081942968623594316981812710749164976939928086590689692673377609162196559061975637916948573136432171579205807609180531996087495973937609234250455849926121037631922614029392298301532399628604996226987532130993679584322163962934804645792105177676113951569971938733502243618269242546050533956756617501239896389374124283690567602052783258259553172970080459406056969411795646716314328145395761765106850889889916383682844074183642931166601163978484881045744521130205455387178724373361888479325923984286565197910339841697919732151105548486844690948247019682616398563366907697129304604213285238448140098800458404481670639661037038194365037629179206236865109850893016290620994689433364588070373961863846901472183242234172871310385031639347088162329055042343379584912377376581584391217624622627170970384172838389668612746381355536873965390590372317834334526032660543338232940938653405985217863449673604796048576594309359905718471996264823957983507739363447065435299770325701820228922044145369428687268678864432761412064344654183498446793733040056516408321075145530870220327733700889092246323568584173056299448240302295036988775176433733673733332555568051455291432386200755728535146508056468733169508898647704582802635460339496893850952466129485234547465441327692297389709225932110007040501693313717345032119093892091177965627919307361515822163106740222990850983779666868157201365716134523622701430897436707869169432620645831479691675466337073785171293392849678034823278913872830529636184235618407721556164656613922737798213337819692744698241439676651774088750045442624010030804061406457865972094491068239492333129106977132956362792714864605403571525848262531865199608512803310641374043127092868603406748309165600899452092944525915352457412925895675666284197798301640801304006267935604539198516054264350682616673883943526915211333329516664172005769372479082780184522045387841003463826852341702063278252706973701598058697529551257692934800505173749806611932222181711253497229996884275375169989081370588507829115597579204139618268004093115406665806417891382602421232916416786218604496144135049587000726752257381661493222821218734380441048490235408197510101033422906274757638890998088685394217530811450756298551589493725049916328817771738940375049514798957633668787225733861867747206548646907982982691832888125154430114545278316071424909529408897924256212925801235738978200057854452390358807004965360186948840362198567379072390463151570297129912318476983112935481484826542400765167595819271781410116854332611110594951962539910871305811231688202445531273763176649324386715598095016051722333010529424436530982060992841658349037336030569940158265438433387693966254457409210486041864421685037341457395825044893088154699669399237331314412911127460274653871221272276118775011645287953981900721667111847414015743941492958990793736354333358973047587777480329578708025420087110990044443962068211060696110904860336391616270172852426150667516527454923305970787419742572253885914990474508561434439678852552357502849455481452339448856785276037383562162322894154574469717911634306249692579992787460668803507237435574932634554344285305329157611040568767909454619755800884838511776090235007209634930596246045501747098210547609280961868175457514039515246341583317054816729724501253625420679860713611262359749896018553501978715076698829216537285463631830160313801689473437375501072811041164468548679326789378642575177398781426281403598258315635111634723747760369818602396033122095155883690397402446780926305480885164951170974155374307409972254550814257695395962560850594498871019119394724352819204551196394089180637634922497911277772582611566576114178715466950327194459951219373932021630684527572173613827632743787587489790393195924278634115661548709258551342895457846057591287139780896453273372238251857144630661679145889782132725858595801642157281124012608073392227431058965190335398767684118694150231056032758168634101479926085237675459984969464383723906353570860719520730767144201648796082367180192553466020736054276374891403026094436554105023113262708129761222470796733888927551432159423743033231080117824218560113156310283860920475217086211979650922824001599211818889701705662399982162145874719397110791822182594032543592576249448946567318734753509941079162519082911556871241253083225975422093832004218478312890410343703524486207623859443498264322335119063771211575095759600555234950873652217290817526343679386780104171017254623758945555254842431951495520247176696438760679073086196822455831867706126736766488736008857232839412893808569800709224619549542586094644950010333943149666783973359259641901772340900077716810221666341702578878113645154872994493354432242784394227199574921597807056204575625182294493795300551941723628389383005849496376275888350975980475850272001547172576597149043708955617863579066460264230482470887219983558240087523139080333308946347057884469554999617264369693747249097268895892910558116182029240736435228823620118556217302016982667538886615566443838148439259471202853537937629009243243676227788962834535285779433136261161416352727316601374876905295237704452790792389102153910448789611567031278005747609951778882894629321555978346266296776976490327257823231677175858133956813523053399486867850914366923187587549672016688963468112726718176882933665076707539555712937780616094972849031584050323054441018714151415716995321674880634703099376102100028599538119150895870182111006522486392540659977728921431729009394685224542699230799718669748882162862326350044474259391156350165815276582094946925738226008020878744854869645775477744447226273128690947843260064445433480439841515762793666128628623032541113847757976820758215981959442449026645713096337592742206421027830676142836002511893911650941844325031554840386168612157451425620317758978340084107948452961168170691025716206425943012833894722741464319188783409782579729013335283411675491998367040332877167059703735901217997024673100824748976656328709412525635770839779754432913824926926867859663359631572736990288983638859547607561673582952871448557214950616664109688238373828792039696790673754314348376563471018922972174242306404962401655611251621317316964897511500740172107253965666503810821214442762735943424979909921769710421326938901631121007743103137061674353266414340223931536047826306560611197806449825774041722927964873928842112299980543515761361612760228242281234645994449693409745750662980398488197267980431751878367241491657260038663790283330145371956667911147299203499290384867021070517151702457585215121087386172816882615233360174469191893569771107528058445277303918682592542884287524089557871258467950448930267741620701384675648731822239956482150122043568149935723103828381041754000724458247732311842330287243277594711697694527841350718845143757292233741729464149618509592941356052273996133245600135506780099363072692794012309994437391138504493442783550265335501808315451661498469442994794789109572110643827918943303400780059746035623018342001474801027793476479999981684226672834868233060858012267280248215321083879609576566498001702877512447033592621387472422515611697578269251275824950979496381383809575505500225986483063288457360425935569468760087444523640227189715187059526121911501525056406791533693005657535320297717295944088593396027327215292379246273206821950450640945927101789823232290581689782846085570719706758450952185687837570929720972118469688981065575822431907640366689035169336204779942400000161547225562841433414102499725475082638385093530089180986030586178638902047761265203109823085086054923629483194100651002047677184956736225502561060481748470602028617120324097196590920366143086233931781489462079634779559497019316320441999002517488118507072634389838248423818259688754009484532023276864078178643807868334501136250651918893765476275787384947686786040032198892201107775075185009707375644718416573259918018429298445720871293546526201648568198812993050576702191011298763278753279557552254932503484418555428433689612102808235047329949149658271510164815161878784404440482916749477557042697984680192939288719999364253546273669130131290019251308091147230257342913100166516799870368638470962644068866710395572487363071064285707088747153241204299598436306487363633376283970198509459201859731811675863522999957491584010921678777425182106143238238515409281123408569326763648367882136527739293770480871051895091546283536368700391476284695930943733716444985946648175764623915543862583264947495844421178234628936291650109479791153135923752797114207864540428049603133950936836658354972871374048022002481478663646053167231720708935031514575432431070106035047869506031555913808511122074576049290222412877197785404012392140470786246452181892171949275506832521541933428110911318054383566157729817224886981678540804542577781665728484986021048003426417387086155426755966181969918572008421586869720052065777323746493970073493447354672740463407245370879790729519654746866982849541597396137298353342207206935460936380320795306348832187924621598137957687051097782612088730400088626831786014027984547280964280078612273199512717542830000622740560615037977807620886175397596305982067112958366854768989087149751261772495564054585088409673888767289265205664301316359789450563576944083333851245922882046464408674628835103028987588020232968860239352853231442203461594897934557010454798675576078192607094746919264007910249893390387366718332128264943027433975864249839204266489956493603030938309945265220410421657135201745264926708760452688347175913597547174084197445913914939407887595888395083058060906602254496714282751433391315790793924493564163395415427874108072332617648673560715045849353330678489369747947518623386063958934441836068491488188888082234085531805703861625197050062071128433857271034466688599084653805215345685830562974306855265335203242543842154485060395707485918791076763020980420871355888575835780939939381568265307724935913147688434364389038107217878159067804055373344855288643029681355636367164713888546888930069069447228697785866296215222891391108996276281972569685095591327750979611166120988540866118484845819595272225534323611325351815725218556755383728988634735786280448698060412302511302884607304287333221444666266198300327000761138947236156308578622562235116817619437165168313175407475973295634825816680020964922561855266508054885458468014306239699900686355612311391625820963589237014605074677917277955355252993563125254832689582976126142181805044276521710903495666114215644555149485940570173773784105563555503341504276626372573546468133484600518388150046414649420697882643799350017846351718468666713008247942270686628089587306736257593547638762507010675622518585060016386466638582064745910476237659747134159668676357179404349824553418450145182427477609286682003566638870306162117931549635471108806978500483348681815070486414208168287166923668662605126027932755522728312166975746322015770173024198620671497902474274000050165842556005138226033908084403357084249439179841189594393439417878703220129585870259055884887960819138302018705419421454782963143134742819698002561293963281778166073185794932876954532260641982025805677299124570240132840645295604418152462296445952339697886185020860830355771750135291117318825147110408158280914453220516836589756168514875172805843078445513473951462930190941081709529160413227951716078602465641830053690048411555642587040389650153384920841014200910582680309084524513762433131392084127208783023914063146074915668822182339106681659338377514911627377592424947598785092782866539519815451941763715058915040364773119454715061999851449321590679581869201742620859655332513944605478180050514732830293847170136670721327606943188517816085159358165699716325169460101302681233528612881649189131229863281600240152849307989015406441732028361878199083084382247584402946370641185650887305426101641729502135551200404844875284388017475246619587033832712909487716916867530117830512947734667179480922532451174917170507227310514209481373856171913388809998832286117284088934401878179445106011484238184308063412695684689258586417375478370821258958948298808453166604660814161088101711458222717381558136012597569257615825767687578983511781059136771449697632468011469672638353790642888975824948658647766562730978301696008386080994529412204565876233892238539231610551291235327920480844432993902781044405612908916591924286830545381439300616429909861774852722927746771466280697574343634887618816195939849176317818559780287715582542459236885160560080761095628702973888610471972729679277158649350590651015886065132083306708379759450870155973173918820506069097032912689877611016684569379658410108239426129790346921245148237094654145299753320133883948260133577756827211531712636898786609778028441368034529661350178504111001103030265350605297700129229964216600089457849514895878496168223342650410276389755740493370624138964782178362825152859247051551161061393255830991196770972841051579227942110535041847296094112243314734534574668489415119768501742589109821533442757783458226812571190404432904785882446437945060172555220863801077985175236535322328870058511767420396228901000535796491162577589169972761824814716121064714502681102978680727582883139140198221396691616317027375214399173930582793354372802537668030851176389067135796685888813943442770045213484645554239463943102356196942222652175904685318524761841620437712514915097005686323543536766619288531074537232946665511966581011309769273027625919407766898989735277393672815290619523537621664845945843452859688695450400687707521154806227664786814720321380982215992654266998494860438848686009269915498250047299709500309920092668275548100555466997096743506516110635331039899639027944802607812339096580866150228227663708043092998879402338999527530970765831508980570340414276538686928727002766614890283585490011966280376679859822769820602359361884503672775484019070244878031601253706656033831717277276126864554099272862776837417445496911244637623931363726483764878314146433823014145454201972396160692346892374712448205299284730986425717571887621870768003298225262507891439621111691159122693265673354727079292728249871398703916717401419269890158638437654797579942641805068883181129961649586569865850882948013164103004871735986618998771969506168176948184324995220607664254179735755179650503608866086309169095324623006790972110339383671502571219087758134907823752702482121308367122008495810823249349347168786629617112971823707617093754808736968769949241692775213409422849439905678697404577392177367892213942481535985015829922760504718124792117804389618253542301822548502919151750975001778876494102564305144047010458956326707754371012236647866596809185848059800923471073246709443685056435015318882049086741159624304779384521429574890012564788626217337390508550499835586951693046844925597511409779398146748147737493760826218400257334551610365363426876087074187098577880140783206035852097083702641123340159764042682712082534280299318081027521547798226306980091766664343523890197477749226069056886994916776749711813283980984239523586677213676269299014643002432806679212855573237891349115935354287083868443184582960325403204573010802968974471225970365906782428750222187580973109316872670135559927854585594255845385565276670899535966752395551981454795335607330813932395163121991883133619546950098088339107356034525773323678131806308517670443757808628226701359251441771789881816563841833477150541585256926281901857329937276892543095289719546543090514003867730427395762492595035323447779349216552826067820723727919524436728279567892243893893584570812279059756991128570859300092398224894184918770356565279011968772945003920173501315546947772853237061624612902238759847034044794831262029696945433348267519264547976317938726939858604486765820324645922552759038992335792026751167534436420996783754575013764321812664909919888140928879257728483756245898242251922662032620627768462630769845462712269409893629219780747371229726840831361025383523441291541867591960511852509317981376202200372471838667478916082403100522488184563008229476546517585814735294708590579072780173273554179011655361986569700369236120450872608286980893931438000715664798847212417544099031347952811256694420890584368463777910920157181959068045915628731028113786205813393923514929370423767463923592462891805240040294399385834434548079858124330309444903030840013395778001589066666752986810959474894484382772559108520510299427696154700806095720847070721369766707488555552187250400932476386787012131758565697973095037911745961412832410655401396821897065030737298614483982989014246212480878683220079315400659306929369638817974454380448803472545395605238159837287815935361367794779282336068496181369680696971638892275145921234333616163992736692181812856981553723344908918790272465654718490161292421626278783210849680181043095352015673722236020536055155340527050839455844402220954748105314327314960207144891651866513092734244877971561723954370416998703262404487814868288906580156929072899041850167192619417060539936142594758439420307153180101087597160574064091482019005123913183549891894461848296333389985778445958907495906394998348216415133590209083841106489486225455210633116222075112631587715992765028700793531684943660458027116042613309855653134402447699443405548287947525017608418800138444362612696567159773535355388328684715029890534940854330114987191933612809317813180616447670398952391827549572120230706946365774823533027031065517740506548975557230893945128306567247688718029999730835040032251181790099415694541410422206686324574031529664829343880256799824820088996355270750357144226151161943354633391335843178426252702467186057722127481544850417727930310605760130155261525233990023851648343691718237440552332689202979363133927353919257485746782835776242050661208118388157569710615599513010783324577113047879475872470524835802339042951933236590857922574697006612564695233223214931478389383633126211247857104675155372326178799450399844325479862240545794309918589966031635779955739134859444095393746123657281813819554615417944385005656806035108348978723198690589156253388915779050347314101457349808383455898982294052832713718613572916184750601947353269248475160509198160773230215543343296389494706163696745957632838481450453726671559062648567040003817032370123543620035282143277146481570760450119673584779479610772574670675322431742006787231006571485130928760993807744555769540702527407704879934832190239060013732184627596719185574061712546927846597676004582203155187794588448318084865809800782880559894667867428203357871289981901500545312902218803304157179852165613222937309995571494524284300481238051895434155544894682376824873848641666927217483966383575459531523345509557200022986348514112936778694282312005899009646813702071871630690875942400652608886671362316689681564181271156214629220653732003316044030113902171778663239890684237675814645445231025511931186427703315116893246279224221771588483810893746645411992059382740455079579395986677644643372208480779978931450041815734410481296982279155436604002328562763847397299310663771700504334165048665495244105525062895341487921824379673855296020795521899568127293856471523782525053772459894484627363771950469456075328817188783540505782312397607141045496656482544828302195355943673413697298381562157221807993235781500108172073961688620318154338622376985837517322401464330556544894404089136376709664218646050924875882400930248569630197532826761476827393088172139919820372465401094947234444830112773479277696158092606576138588292429874162246645049597106276459059514430540682260815641646042993265239129540146161238510294150034665818470521508582631758566944312092653617789044984026881631871177247430324197155127522360012984117854539949935613300257911083031380437030107627263815352897572553014691785074400093196960466424910858953086468569728983422338670003751302936220245899970174146556908665463881422314329064105829846726443979844256359447481092803654329128062819708010261345290909340248687054112099161311202418533286463226732494426078126592698243850147363759107040805729756091712165114593183030650339707645783500655494195889849913537408003336105417828270631536780112713830491852772176252267986661952029401233608470860855608167431498853880065850013918149244847079787717354158845818607058418847060055447135634446096248205192850184334536013303232934253693200127364303467324760641153725653242885029495562669213840854168013845029758518296941399838152577364623091168590911445431821383899221782046743028121472710192411840454504402315657026829082824321998321099691475216470370666874183512815902418276355548773367523828916341246829844677010655289131767400280201075350558622606748642260505784264442043215167721004336234171272621880067975097641106492637621044940200557631184387443991867053263014873213193315216492721419742541624568608876963877969006773508420715899284130640662637781314459558921330725726372558806844764907721742531774057744043215617312620756709370534633078507411731049492856936026311553514557153025203582909144673027573146367556475103494501124413739995378516147106658231182497074791487445813840056498477187907828121538430323809451776106867305039733378123062756938277974641639606952484573407124195814701739760352088937585993760452425770564603914015510751937510295776431421002513946140662645105780974834716418164863461145423499843564497161316281523819519576958293293371468225282676597284110562458847136056874119857151310556688781027014963550795210071408030569024119050426645079880668057229680218819225606781117632813469702727441913077974084049412740154066291115526381683858567301675421625542339452160239173288632745206989840162815788320882909235078305682067082417109276049441323069325234531375377218239204426871374352331272227638146357204781659219720657683188028685436040864733471565174345497881750809447136373009139904614915197934935371641465779094682335112269317538337491189881746700916325819946832678228948076191716349072132699821354679817573608775187004234355091717989048781349658407627379690481224320586699157162237146665029397573411083752052079680563818529089897810053534075763531663422079037540877158059280270420630442891611685102934123492681308955328577826905242086334301497822540628718017411693026816327778502424311077120473105396526536855845721737161068996746243013700826743748600756146360198344476122100997351582725854897366108125736154873215541185879851274871770618466085476655456227115131577641009703151054928338072552590986913117335150567640283749073340765229723078396737682427070236353244846124778611200837185728066313534573639806856854186871449227630794662227587067465478716892172791471801432915723668433374830983336647368812121327620112234256395467783907230297972730174803296903531429930832405438487051588114722780372361349619562668746310310665917576630331685759573002194956798768600373831204208579972360558172505135021714245068873325295613941979402376516260913139056895504892140991783028458099075753542874162509351933325467898024308609334095181821506863171653821411187928134368065256889160091538419451799883395159642371008337390674561559282106267698363547221081570875414071992099002653628188950329493253002043325789087695844612062055431201899257157812721769973235690219175301072178012792417213778667702777299978075124020618721770819087838831789141842437999487516542640258371609143530854143935345400056784577267245583790874572467684224835041960653710486386560180569733627620993553723984801487919914459514884748458573670016218179339608688396152222086699640072317023696051226196161377068131287007009085379879143348281115448408633076967404290368856743110090168416253013397636642069987766153670196215240623786589371184072503853795811486872769522008822989064686314911748457934850535675216581667808236215734075097974495937102145982484611578610603172939562116280729999504265222948348658622678808368854366292016343570963946380471424770993798493620135336538818173323779291980429415442525373277833300119321198259481406886485007839739014632180375316811159722628521619119491500489273379867605660122218835752429142145321028018866491529717378264970976203138961070907123839702314707093957557891900073154340623723349394876141528320806238629283373354569437986592904113316564771229011631283215944334712520254571400976426141350039256260158891183054043665681763729382880234193984886941126041641196226646783028024388679915386335629440389273543280802737547314677450996202528586252041266599391236724605990327325364411936594582151270800140674096375371751316500253109792742660665565850974100526282411289169645295735252468229694906197727106643657077909065007377904646928844812545432726162096984304237086047788012085765422152764370038936374122197990662508055337996095936590032464614782672140017021683978304100842427229810994933061786110364562415865444604682590439771842583263955368296464396435195934962342167960519874481243871489873375949461942767495246336322680405032967009988289326204288318596195199911234507645077898696593064459133780438740436905409667783611125811750720461777414567665802726722640979409794612288957186833975855239775874709142895346964888056633437777596220444467578090801110311232820355995227777730506957595101549402205118850295532818454191036167212207787758383756145438872153628223665718804877810581576479890203342468485022487140124217631354968432280585892186135249279171761090283390539900496154360667255499402138714755980805264613524061057879009927852887221268318666064082622150580307814787239494953624116823872076531057022034103876157245250546585191962211370482802178645288972905484911969537290035593376551838498353972146392859142596016392560555146261986960145636849760889063806312779755339788839266747817748967206584290470516764609307284412646867639953429965136461391714920320516854319849559159336401476701598169702060084435010971004556054595946684205063703754271894764730056164656766239182460151922660511589098400711845677401664183837230467839939171374180615499497645779913154688425823743688897853323773681976635117833669154947240217145217834446773036023035619303238916388469688864841231253758427109037896490412494380445717523296548758737568508267605503747669674061527430866725671694240979009270141214126027103037299480398660312252066644724180883293549056084895049467769850412426219349840742653875703184005321782041172084625239633146109300348195889192088407351668853403958519801651718803479432620179051971241986785898033643151185497932424556489616989789884574650003971005855285551808150637440289802860056264151111905765635987003261700911441074749700582540859525628107410601711860708153001118713275999339432713810313140392964686021070332055847381739844984251181615960872578859217902338059608478357392288375570385466947199677297694396608516144230760543875747248585977974748575047651297218817536197780015968554456158753425355537870127626770431348496527246577047888266600778921106136521358216158626548337147369576981406090199843877997204158507365737820392478238801642399983436551387498427644411074982876393097205496330687317283065161658961275768685425137826149447804237537826560884177766112895738358455647507920888994470526598830269073143540467691401677105235454979030933375585941720050902035329318051807135102163618705552576216255013048740076229306077033801884842407897427527641618786974590442478599303797693329661599858272824170459508231561024088016726818052353507585365716110087326105654244003661867053150325265983053826450279066936181711039097197442330364592586555373252702275746668025495534831280245222249049938256230527801758088143344190510550782967616469643281352535755492761351524822902678320224004545934862225042112135511776071424674868887250418751021409816026625821857509956966320756635066539011579110308511070046682490890151337466170997104267599276526973395881572318942068606260895519216885689889355346572347103636690689889591930974174413967505600205472920597681432180453369571246557922132149464325336179448778691731192782682976095820066611187853944507591482133870728740255347649455500725994110275603652262432533021270472195036543745946301681191060113597212940939973450691145937568883519559545650103014149794240249810733603822828083259834043585493239242631463401385929978355380589588455813119656111986875375455336177274493080273808654309869242501224507851223183987249377413707334966887126638689906768125013796247290460634620736265543081256647131771760537004682653464710463130195118790944516281617645522233708077761335287856543657579918070756281469721760857526128535703386014336805101127033157387691339922246940141899747191691602270436369272162387620141809379397114607115680770658503555249261200327970430988224350773343813207776290867247565159427413293596477915968023440038696696494119277533005338646282622712781437185679700401871909058348348048443810693813081016723770317659126563675388826403938779102912283595087736639483424411890388739152215541405825700376105977903297687747094264415340491108310865401093432365150377270522079871080534938050446425737365399117776753431032613485413029697248673390258183990674823202817541716523699804601283947552373590001010277192401909134161965402826566636197417661106274610903443330716998259634574216828349893699402127407919614035556050227358168261801653635278771954079830784614335346297238952606081081872518778018113213570249790286707881116250248662524292341299643068050972050555342876232301558491392748160145668232598825154841102218259788419722704539172011404456962439161756206311386319445634037071596840732946951056533698481635214829622027014422510756895332298545722781250904567923059470392081696250578267672256490261256838104541486788544021545367525898347952338799343205822128553942965962437471385563808703454850924139815028120952303160793206986479421872816492322036694520974811996169490887633695661841250387924291657239754084542861167740687252552568669653630113577476795827525918779696774669715103107488271321309568183905675422943579417254225564084418936220003238277974701051211509428419466543320280169008006543150609637356337895443974973198760997593336122998699856356465583304994443552993291486656001494020906767927706905656226003753626116284294115228971975111891710178618799876935997574670129719172983021481812069125405584825001130127603278142018713836566349237819642638562146365837034153767403665743050293924888773456322120553015739303527350659817303926447060753634075346376937237032254799355796523332336363707314323321010832144629454957018656145749979362201870978565556462211729990194518752538514953781847943202415971633682452541507659636679722212081507250738439060941552881841358586115203376033071595029232709229450379152617633278398333587598016232353579432502072948426586686072427000971731286904648001492152323794019055097986917510225137161336154801935678320815343534456130801712678035225557033906385092124973559268370456964653306886518646489235761418886228247648492261506383630896070055951928182167021991993188762434691094780189166579868921768991681626351408099601867869163319771770220403038101070314316887154832188697488282084840542761786779421822851350298412346000030280375509973662630904524237389830484841614516374600652479734526882719199634641009608884576953020220680915058758139452722306287950932178458448581450764672981905064140866648396929336494353255214645867411318052147590492215021593140373419793822460234789082014306121787361978717000496223487766513814598320645392957615756663711449971515319174199477600686249745963192807961536037657945317499909564115579078540070706743485806835972967138344565721930327956000365037421571679503317834404995664626910127917644154483461193684736951150256620527607744480991573811432374234902565137901357732267273856645188524754939069294713043482185249766542699938962906669082514445723892334789177430416333438669558018443119359159426011216343358101731047640290368078875469909085783571357782506943622452181205125169090799839710040881072864992841009168498662889006812486733578142434788562196028839453980311804824765323838847452413920169947420438577687083160312743968070893647208555481508155358314696419924916374269098783258649386411529420856099808680594815206256293019283933968440971297172270563011139083625296907437966710830640869814813973807671177123204509773708037372153144308688756514084981752756471088153865866169965805311305881590082275526724751461172969724531127903838217195521633764148094290383215158254612473055240135043570285391503561873897908484071234420633443179956126045905853511556922245520030059956785930278981308265823083801612287568533264471990784452151300831060908870032087069809240049762364693338015484975258789642501602671702205741016852210889534908765397705837908552000579155429971721108715293013324226484495476005375321554190203099090445374602168965220062669261499813737485473403192169728661720811755485559761944917129741831065438536738693821305196904496558419877869097402450206807994729712856391450875687466136147296143713870038835942541519685771093271234825083118879860693017018487874625482417944765966058011181075235490851082577116124835497377746008336289804624761978257828876911518430477951620863523576274846819264199259456751066526438411091956316150825670439048442186173850137085249138327848296667459403636135675660409243441792970016960514355920760446134396134877182827917640406081336399524930270580648374502632593875568090399993705668801520445315147074350035205173054740416072970080101397849833752628357950464442665846027148534008732032008836467654624125585377333544568281443147064734412936345210911776568406813568856586585120310090747810874860261578204909706746050791112905718440920860703827007879471361042634065649418586557589950715455091447070511610986933097840004121203367793300755508431069474409822423129387595590346766372866433395033846278931633160577479913357253828018125430715028044292481723441786228683517518706051716447025266627028604926044987853581746000658062269895186699778172868492383358106046854186636178536898688587143617239468323651176006956542304336031195275726672934387646647432557127063567613237679709795628456636305908423157375469100189055287019789582665508782308929550415227854732330457474789739884772278052621807017557075572709409240720394045831594985117811388639386434693218058345065516288076054194025465554348652859750075852178517436218916139802901881967238344769883972955060756579899851186681114199789643059170215790330839386763773038939594596059375513931522678266955473990961932177383018195977621395386719667354936108268184752150585445031512647543524155003183251518793179142759687077590175014465705991366286098216320811595544756286148425973258485906927992398692202174737704279060212792772311060147285531000566061960966049838732907046302150031156515332642772709021935850980966121718556973521948287140874784330932602096189351260534157734526115551571721714676411185382691639571277350700933711305436677430861162077171521001405760657290710580595326529341954990072513943762069076723608868240240658059152724361634837437040989029488463186965723887552215858152398441312166182001781594288231081201115915822537615600913693968500550311902539574937636623889175811442315795739221168977176611071804687878841634664399213871792018528942394306229730789727364414400203009163129833423196972545019205289916993284669982607693396049633888091941396824110751750153459408114718922360731340608107739678398739215955286874141007697593030078981637827413413134113206795404295647664384403985148225806874076597859307988730281519423937978839435979703258159416785733597853251598735735792957391928324537182109523502996804366088046290917926611002357513207592551954956012545775813331010718307486466886494443490263543234529005895255476159772854462595355124721580330053080584974633045064635822950071149280642222607817806443140356105320251180512885361823236391328233662802124472415350307052302612320266253971572600544896430809126353236704669607867261014123277081243063135773955777220497361604848036419951387454464708848529612495630355218667420998726675580594282204960282848342781661098184028035350529897412229838592781103094575104008570752582651924851803260758622010549940932459981533124360718508185432474036040829334306289176360223421605922401333107193719600878847930925290768572032501894869148948381320023611607254110347649778816601937283469804141285454148548367046680286425148585352585746962297349983874888325872615933568447642694557861250273376449853076069455546249521230203963092568162578697840201257663901918191657876742300429464258887547272297165916350988987849050142885761877054047397084555692476006080834331317832225723671869874063341969212960323752967285104866956828367976284806658490992354312478140245350625577270830556520353037387100402429236138103718870569979595742935610342944964809986808652087694198547426401700379936496336910796076647939945119867979475451310398047529461764558649122503125996413541143594524607158533428759914782559038400311398782140175515592276042917586802343544230296382416798986747352620239296693636429480961550291578576776697878278686183215163267810754520250452630460950840583614868471866463745484039531871004913418840389849246622814305297662140582422494888758664467098662995341256462819657901742757760466710615081296924542742864737111256641641150504577152766922666735636984799175611413226889329549061246663722467659557927727413957346719509825527324741906779503619075169725159729120279080583939792536006332646012326254089595308962789708377566640408429687208929410039048888763785873628688249024768613660184653525469375943681732694692956189757939378518168990991151400455529465949384576305793340632635196109259667906716630555885233685371129722464005224690227072645528823925318758249735409620094375025522632741373025700414739933156682035400214170805651823564300980890741182206876782535206409699794819007920836677890286310022642612015407565484106729418388564236256124942933581846154209131464179521434071518034044439005028256981471728376495582074846802683538423102968387638927558019531900652278628998241199251141446621462954537978121825398456671342501738321633584340948381407630787398904110389038028659570626359561354164934034693814362519901636516962572467074995391939825412255248415876568654257803808127115667421018838612780728104629495170373990687114060318922569921934306249228125957154731732593833789508007044513516576005769125799291651360094330807398874300795410154630836091602796100589871394703195935627376142945809606495359909650030934660938915422771734289296100717951631816588823187772085251400263365593837034230355983777570688337514828520564177226603548299744644992856543481482957058401333710441818820357563568374227841814864122497765472979851818115276300149947110882034777611148389666775164382859895565065607430341576450807869925689821561576759426783554646419825222516586107741283342715966358741322652535008619254186165593529113242620658391576892716537255383783395879051830102145622183370282121926645095360613712326914003735774792308868819235539082740071343995679583202664201346277375943344327951054650657819773156097040535031566514231410247468584953752131366088035877404220149515874436793461108076601418572665009430257843806163207562894216247939829529765653789249130494928762814739592396418820384493754729452722531140367066430929047689665640840283303808090122555412783570065289679484727087909531536922397759833537612642559686233850986551097734049096884594017067592585418934230680160209869565899248435870664273535091493603445638958566496142159830813123794851700802101257670050891660297536638791034627569182254610877848756228608573716741947780958648571753673175048732825441194907197190837586965000540139829472805128624272783539969440145391054380671861563748535691629660029131003042351285252997746845782931547306774656067622514803992368777928684910243353967247501784937548346849429044242188342833483119692012938594177952926013807549992886978800538260210977142133662894939562086429804497349768418191165617994134363434239407352043301971118671587443813174149618327723563098887445494915716926815091011300017876087682613121799347080120510802651967255070549928713358821097186440774189408011086591925474272368890288691328568747997854088529981860748245016942923775157648688627932224808783461260459497378692934218700896757131688717288944719677714729813552856555604261826807107770942867246140583063442716170458072135919679955800100731621290413527875408899181794514841077996792635757004423957045713832284690702852963646488248182971328897863024676092206368897285416069961949372856990107793878907800503957831150631242069713678429338712718971295273673148730306275969286403383814797788156687912769605043753104303554130036980766777197407614670567785811871557811644339420803100073034477593645218314117158681998782932307746950546195444841875591202115669039564661567003565381392129833897446430093062764481644551250437999242469855688132084481056087238246732816336034726641116877288745706387312514063741252673455608360000091730981595208294420833181578041034549482993737503690837436182051670372756961231821448614113210633336132958672345564031941766831109171536244382585666901845764840341237070495775441728445095444223498613135826392152619064656224693465842682587048988629530189405062114350608643503176846460169994691298741119955410807419325050535679912222821005842944307550264247211996098778177980326890167194717990635394561646940047054848343918453240988593508658407157356243696502105436862827155154456523742648267575354808183131126160808266902407994977995391437200053690581142624774796060854111883198840489355389794367640396907743959409735411251872406623128849247670556154173934722008374916754370749534715460507858817754482574021740908221564826171409515364145377173286549540245067797197002057473008304229997668531636273631694715083957509409053480809057641618041119493022003676177244075580013861060207692162363726335242231399769425229334261889525476433012910911740469167325206157252917115352018459110163285221879655228691194098472933453850448257791644722986201038289355478466280899849726567340992320067748424226274667454785859797398834126066285136037149378588400799226386297257524878443745066260238993289448516391860776306601215543881781476139807871667822374860173681525941117995287755965868851388506523402546944295206893728043950113456685784652148017154417256673562012114134382927710651813851964708253849654734321394822199169568925944068631090835030014696414444492526189749535297738165173278489864664786194920578597774752905387484501027465314429328262149154517153012027076568004090308611928173158316115349634899144488108888119928511032306345676644823516610914464260828488864402635311724356919497423174029576992972176047719911057258796845495562711030790892336553800880643656365353347419742543327981660153122939321638911949745212493501280719031295678524919901162205560809851947571440305779954758662674301809811609609597744004899230137806953677848372732812590938318758469189391948380967260045928926603468303649457667492600317969415754524673397718814959195708207795695493465999426138908263967359023245416197103495764443116991602884662872057168118849915603810061078226848557810667296167119307278773630994693768968622679996607162866735152701626268100731251608218372776318252843957782393110507334586279549387563245261721389254906364703553264035637957434199869613114031469195671137933967017236116660338312899362788289309379662525463811029194517061514119238505446104998481680701320084511799433086747702039179225132489540775086970599000285079769617731821310609034725077141404711624134736677471018395529308943004021923436941164751274543148401064232433515364995883496434212302547011663385446330566398692701838934255157812875597038336118904972835290315571069678615908150993900450229570263143626100543636297031199670047598940827333491573528629916794261973321762718224018751410751378675907340130538184417298028828896103335858645482802794133660683820724176091146460913346372723322165598232916086059472934174166607780395283088326840886164258254859645101100302710263345188192695627057687838213006629282495015851580078750031029544403819369238774416186918483564503545537389007585568802398744575266220044802260794381318925518475954464477144360150584490794717636810649043613380632426665824560219272120121700885537712986640891414086618021869048516404273098888090668268167359182573335892997219278435369910317964672240868887421952657878731942430803765840275413265361447617607115448078558545460104956322926817145145364008303377645081183888025296358063127302018332328185282624945070430537143766521115479368709969465641294507527829738943165292713623027199734615894304109419545333620071891776160871021972137355142566604274589257516281159709466930839486234391349581191814402506402786291181138209438389064989059869683760856030613296241185550375358646316265498670351524148779438343244927580468222820968449351880247022532553289618450686855563359844318488362416964413954072812502544990153375864310459695906536347610481326092492191983449885327630677082540051602684073842227866350827819803042423233633575196335397236119711707818448574653577833037217506052558184114774521702802511054934033194657822655900767352201430345999679289665946892318182533872069992597484553539107848896503856682916750211301754469591260614283945209691762923540235896697223451699721512624415717637825951258387590152724638189468676962017886637550527106320852802503920137275412691460661198008294015178549027119385186923785249318092068859031037456437605280069312423156636811954676521276265925248996689967672880308998928697224170722991465838902705088720785975679414392203403961442779037952424873967145443135844350714809785596745514730604823640316731094556711829357975928943509532004959246596125314344782668941061972964204637359440681706036803375672836452550001599189845453171088929995141728026375471227543755552706267034977008865542161083412030488922558677303602588037995960459538597075551594658088280410909547592519923553229613497179432058071026904613049377288512122534476986944997520417681855977909617307919023449168388696377508403171750051849899538426307637239108589025348357874267533629625188137138827857807978278997579080127593591988954593393240413425929215803227651881917793939804431418158344936841260720558718805019548213392435963836653705847016201298712735383688480441779960233803771540489810799455840763591824031295049388246683911980177486886038657486610417800072676631030821539931112148245992246878670577716182561620842374807294974355787186093297946463920276398835713199306793169032735880667456346027371693580207951345208006392548007285963810621081542946578947376656498422467020416255795398907814242763925291416049660075011264824632020032994069837355056075460385898808821134369299200794106293980975239272535767612447696036599836345785840019349351682723871495564702240835651115344423630992046183006878223385445940893176627785028677712436304998599144438544072770231687422206981749911921630023852668502276959931002858931393402063398459559211503180995768925118668350462756322924232127657418382045692364328055870669598857900965634058989288974228847027442956803791858956559096286967892640317031570455627195200999156982951150807096236007977484299948240187888647859789899151419919260771905115471453351809953970214509787565462174013893946837998537087688899248414643230512975121170301750228180576315229199772714215719120148671960513112305388873315445899429410221448985173070181311265726469313815959761848095741690615568644163287184779942965096945556546767064020284604982910001969514914744016045875935893047283543244601379047263039701575852647834120444091726985614389403382658907190538656349058614984405240733994113058301342277580879435872065121842981171792425006620470973874873934457256977218658024744119275230423668901423018109483504067968564081207025861142284748715494353203253093023621205049281594348018746051657596618539752714791014861759123363890979431285402342028884815559774288898730688887521727521985339254643306765497368033644666381412654763984307326851242593046023453013947556996866715119285649217320411726872327020886931193644433121936656853803950698791687648793409547935863026509078699860227955029630331871487524536955251555142513634007126485076736870008452465971818362420356021011711701648455257669198386135455564388692440843709394905435544618166408684109437526524262595142419173310522408649294375665252549226462954111171531677246751956905395009533223684635411867419106902758353827752953854856285923187276237093312337999588002403208908276894084197907452763392084279143667564740606063338046550685051735187791301602501241632254898973871994709415134847893728722386577792849827858855564362119000646213403574670488596650218360022516439870159312567177340466532977037563470489911960359090438421947736214036944547536046854348503307440941972111457926263671209922132420823214546225575379116120051412202076397352646113106085875890865650140440545815304193934588141416557154921500056002270831547501388343238029132031238199543503161409589264348774997598819275716755752587834341336348716797704072303418003497202767261722704098013368970274794741765226497773736464389147290298495587733881266943050025465731534850317769102509576022641425911682052379904585352293028108568480726856982776393883487351629157977710933398083081063535155054555014086822329518672890114343910279670053148674147139340523640342175109545804663977626284803577800219196811537032521365742069110441161130801965349006974898430756533543199209635233627998723703722062416041244758012931942945256786947937310872579809103968531988461713440174726691107939650885458344917950780878101179432809772854653030987542523425318251999713650227905377019728165461295836033289123717399720650439210952827626209290872616096513958257058870533209998419285255802698699648146447280355522990364692522396138215610275467331626858211963857542419189311977094258134229716324484534431897993319526468126720770022893754104069390038518206127370889575693830245386551023681191956233771376365287593835228681188432243967714781196807463778003299359927666768351145039457777977545726423504637668513076994101439578440936466162178432252736166418514915218281903366391319973059360829396417759511851462437785512814406032456827228216983836007560534917114348284551867722146606038771934866516724438829264492383644781992706278100670549386839813525212266467899942977621956220148096401392039298017264631469437596954847534187079700938487713015026995559437741833448831186253119067161351257551031430358630326205261893500024563019925789716540366465353222519992836800306078863703087293665650480175775423530105745167055156740478831714528278001256652559771576730726717484396863930819853043015790209775961490739443131949328743468847970484503329671917361478174836954606534234571810872074975575585893073472500886848507823665881054573999381947242557985401114168608111896684001608336423074463254749193086206785007598198262686320930745819562631143537465008110241157582873078753506392950695559736098842149657778735584162337739428838281575434258339655490629693209559567585430174863975125183237540358846720811685351077859910451239822434055037504531774874303806471723250914117488943948238000834364423226867498351173344612245617572877387915746413306954386799759539434833837722222442546384417409993314183026164643820853163143182020358855036427630053029684931440560068666871752562845024977492271206891797291802752445154034142664619886734975201077134781519859450299834940728617628063531086412982216218292565027645098395375447460110525474975674397591160231558580921512760315122574005231341500259757453843061425968615337108795642115261212525035536461928837996643816944365181313010706598925607584083428338134584902329876756072652916087997376881342611078430694520762614351382967112369387420974278308007010037238937273079435149068845788568517266324776149212416508367896699263721224350802354945877014290268705982733547486986042596904533094823112782002190045535834226607962379603750514946643356091109741860137936781648932306131132470957434635976354928606485824321651936584397117991866673166134934633402404962412840842476524389876518377893953190660639488558057755379795475929845197994874000536156150201407215156369877263084102010635124509923480543485027216756319181961583794284482307798538407899926296596746413075886631348157156255933036355546573656973347418839794706953692084358793991543896154142049125957987252362633600017474866708133749470688741438243105081655748909829811591010179239130854286296962325065764006721757200941627564329762794036467215059247184116590127212773444853868712185956006315928505539664985731313732956321473305121559713593907657961456536212697915140761980192172073926147937008369935092908444867963488520363624060952302877232477886127209916559143877909759191113794245520092066915537158409286705351597602189215744489904118683643084823074494895368753631049404981356482775483043711345294005018713427591729584373053788065151855001829282983461412645693863468673245351504966339828416371444938323498999660674601303951029602936651473558439335807823020713289239267654701359492056433631396568133117669258135675739968111103558324137607655079064936333945173010912938104007701466835397710005038278467345313269196869299579512838216274676453359613770991609176375665927604786944519891842087712911455602324878557250244766692181710583081933207123041195969082546957053673448883260936940172104033166588575457472690190227608127644404519321062953230256941776926143720336526362286623713238675266786938002828821099781776572293584364657985047627052062611923865023896046883338229398430629155648165911800390181706815663445479764196775015634380971184377306198745987679167207767640382551068116501877046088405001610738671116859817255995766188860085627697569359476193167265494723541571203479668174457199501589844959530441247026177126968552195294973711231255210808151619482651381470438344679365604915869949099343690684256440913672787843061563802292172624520500774906021643736373497591700974044233683405819850379074833875427333831166206264017031296898038762075689862175700890626353579051515764078708207783546420157668013639005620218308905529542230309644574760007146702251013185823542481313613490956354921963204265757101464168367763015351098285249177823924660090766158073368486531557004002514032457410391374835660551170194911091361177545787349490198007560299192737982359853539620681182623692237411768164744278709829542098012389926830818954212544479898174336378142132594732074915653513773040304324684609806090618749661699480521604151293900326015135149123352143467978046688173298800229115954782504191581638441428698596241352601499586983448848703837026276765807445651622821083280202793401582229143157777971089411868338211147090994828146468657006667279077520394588005197528957270380410001296080310747067089867038189588521732526144852589686314554667373961040430133486093469346806834085928545059679637088105623549999084148700811662403248997754563144387693464169219710981321442370537694291288430866060338520829878845533262677880463058196238904423082352276755514131773664454659342584896938691634131223931190472273205352176379621705609261030552037400749264620251161935279842964570327962652395661881569338499155595797483605210955664807319779488990252681695002075892916449157605951219788975338621643797775007884765461336749738249564558195418679560675189314067153280764023331398450373037969651146820805595967705257683922110718810297346112089379068206937989698645988610613938402570772106139136447875052704083496613675998319741417135854335777299037603922487631055214031248440332676671688597320035215752009863901182888726257999573584708579552807797786097613166847450601810575133686728899110899752284852479125999477757499066039120762046694612817717051771408768629626346752698512877502261525553628778918743870763166035288532518322729924754555860262041104716725167282598783304916544407090564579677414604356664179946396649224505958744394363222411712084752182556314816856689064861112943806938499471203460697629188122861238918104811512219644028337532054161082631432432430930514344889415546329416089607641523271816763058660832192903031421572015537583275023540582016916403733557546592012055008910745483624600886886138507614557827028615116384589733407320227952980529913876951114285891546726101909345047091916752439334531388632471225418144486330498624582165638318600874481099598819861099845576798857310506149795486837679769986467365959898293997898861475722900399635213332841733975101384066347459488780319390078008628153967433864980390879254143809664824694115914389461569257343105027651142728511499905249548169509515808672969675282964850883909763316109067263818627454635619403724547240320107029100538759398962404152645316137085172695200984925768668093775929116561859275849981673331842846809546525774442588348267810584269523533464052075103331789040793120830381129648590480430867352813037907676198098710542941389077266080465095208604082789975561549465959238231043041767323431728705129487237027358737851310191299875091195513011376301081509284189099124778419766134763758472180992294643957543805125225725315868072595567780307209636067074315344279958009359952670448093871772733107467815655115676144019265304497089575521843386594442535096475904039805376094374475130668801184683048271828019826741962848779983687829119812905779485788073690405162356713004428497339377113232482038262465925714274272118093891681617325776588865278333644459554752205655674558172695986626350134669703198133126773606241286002839229660822813343147443754569615135586485080981569470745244450215448735300123029136735337470578809084168783970423541775049896888555664586357178020915798306494530406007196223304989271394861841907339725345139887836526154296294992538972298894921384799191723277509661468241065450012673793237151646631758697313405819111737351565212467314091238066382019577882915129942088600465173313215748163339831193737703859498484941961587497668400318553923763796479001653633747290865134543256826305939030385756180938400149373354414777465659419004249360622136597744202699758082639434777227298767639471932388803260178971859847674293600150894477438186545220232334535608600317466781598529896205647379951097775726390498626922804046729803543077281635271549894912987147510774355124155173390434680974574628903247689171271468306268549814993344771773206029221091388065600170091355509077007362921359624770145973102614975382679665841091441611519249638589335502059482748209028137479371968495478492383383217384882913103475617339807740614922665566818899101608082220586323165153633367486987259084780154296334259620456722366284962771217132128296258791748248490006933247921519577980463127988295138010459976855900901250573845323765643941688694346216413355085506628826508642158457232388146649468480509437573006807389328628499621102689427805031376717638484024282168105547799290060664655450117842885646052679613584962232356654600988008213468195544844886790869992087285711234328457439846738385452785612621999889421350193072930755026749276763975546550980981517608888118383308173163294565725849704471957437173422593419350471573908990041055034909873739118551949719368572195241665678512587581840954728072719903873803607984051058739824698845047658014480127930559736522677055195757483909144095575083098411067441912810651305681964121343696694566405894522922494633440753394491139380602316427048699319010898741515937806858277025179875556676870776225615559175131552183400644367059572813742059848108664444579042195224603146317614940879540027633167050089545788062011907876476540214434457410879319341399969683388084421618686955420158297841120566366054617567799316051360441284583640345542931160780029247552377926402408293245072231681675361894841145974981180393117987155102879797773176967582750648798015128301345399333666057511977389534016280247577579328783457472547832116156737454417790491719148496442559925494584189409897765835352507017088647238136484928971376872582821353434477776759547125091661413462893928225589099160665027218137154612483090188475434435795968315709084806850092538371000973679131080148013100071730684355186969435371079236329491586999697087218356076007781437182437756661440050610899060158969901100909436159739791350556693803913130434366076795667218164767189008350219093107217555799534154495392201134199274572711075196161414287225524433468410685809137036742330756245566941888848905469906366517850256428232234538065549709321466342935217078068953144826045512596391063880858305463809286086500225282851243467336842000992800308815079091695651920104548606136797136625095654282841049862672834678209471671453899828411938286719082014285851650875387893878857340721221277857415692557333088712456882254466145987417356944932420037601367819740074486234552385746240458028850677816031328905695695545693271221840984330454606267643198267015912434316188095134089346362928830908226243720487631709740136490579639577313290623573386455780839608255434684301450874385870885003505257435517527361831042378436011148740288194689806335237129930786295311245224704306333331465822395216514649772937074008503145911988296547178224290841202039711988583264864610471070299161057011452059189620012948359523647673336385396884973233969147144049212701907199661645008918132339832905248713236421170740747072788314616775776216513691305149757044994822772001416418231821496748775790349356725069148266921386418092364601689075910618058190309689760575108495381973008186458004844663406278889883776111541135837490765845054223094123454799482576986613203524994966878956849856468119960898142966245236162363606831784784150599792789520857350293794346912375377287386003728331891539025783089078090137213422086152179132301521035706485710503664370457874203350169507816576204231983691123458265476748957108268356071672245022863037619288686429282178625940816532825054027591563084918672710880415430043660893740582522571939008458465724874958344434273668774663384033123736750891474160489017050446704072872735924806917126085706787598675089990074622296706122398233316382554321102674573805264091135019871320921099636471457073479366098158243715975171508217042586609364607190535000713040935241731647985425833058696969113121754065979014609365398809811669768664489382420414406134621721702331495784380804389971562572912644951873177131036712174994764692532492804344713101408006499269418843033080222279637097646724587807055245621631355905428049235805799719571187491131110183698881185680856593569241223228675554310568085615736533500483386832420140007748791281649605288786007073359699747732898859021804168177950024814091750739067276409873589659930061230148525939934830929112618278942418301569094847772568914507442518625246904765734568118264194560678559939877988371744422400133020864033156070025798700619001872121651103951623101478510347299655411616944301391098076968520877053625379616772486990803307593679312026905836804840917949235304035461189205636735557109902583678677417102378842038918466974567041874327076557647006865771157250558211354107412955748945480236394958350933701184234930151724227754314861534522263500614113091945814205806487891261931520849181219622029138167220004517985333589050459225402388936251623691012740404423961144416199043073747480833086755776710702443076731725704120259798099136640808846776015355124239582308741834289233710695232765173549962268366562140811751003964692158831421957074830998966569618045304436667354274245631744328993502691986189936046312332505386653600995327512131141840647731599457277491328114167115130776244910358014709588516440824733438199716391063313765054236643456536524817146899089683628904050057734269367165217415442750570116496881737539201257922839381885744321392485209323169481306539640702159991803648337293254053951646655250050694767891857198500323039574964276633787511797635404817896192881864091839526009453955527403007818752772272512212122815243303098996636329311105655949399531218275374582932310193835925844266414472424819874821656135468197693463132801908384436843819492580838474012864703339637738551308029672117947695299196906325722522469833545850610775942119433968455394392906866659890848861609216070807708085715699016164016080368654172984431705906963675765515497810189266382757135284184117846632155709707790090385274065597646175376929292351576484078610116444854789908304383249163591486338845308142886091616485379739588036320006394343661831350336474609463534036062087978214757097679925196347564631675577924235085415937871987091743888965256921604041468938305023602862351875173240945697490019439802948426373803261537807528033207532935032144152038616150942406461383077169551240528422322665398668394385256757024435252636541283061001715171097876098795130536818618610430392716260349793661580795100008819435352546509688824347632380204134205167293434352869317094524730621623033013963555224733178172590207357830754929686316159328214481117682921000722146238696698569084314268669772637738225597240506759483967066173870103225146353678437273494814067108912626231901983354952986895547015118190813624538443539076875425807750033780444299813901463210604972758373247693959326128223879003834178516116814730695881472284836112679088023681139943974631817626734744859517659617641907199811478540361836294505261444765741656670237056813828062584384483685230920550422269816068011776019812243146816848978698917658293381498970906713960018446058844363976521314638267759510176000290512455188946977435834918892450803687510598723881395875777966084832787060403941257433083536448215733053445136365315235888742045133576184619567812640473829113161007536179992783815930047886284863630861312491733120561921940775690478115240085363306551769464218999138430243218810940993226465436062826992824113918718647511803282649790731614109137950560028925015542468891705582947651592332657980089978756550197949571224417525655824901376385861651797368272153474506794811688788411076240105704547588359838115557156558334119721221848704781148264400024848257014678395104171659637350834428077436617974668194435592897692122560312925613131255413537481806778229838061426450759385434984458310805899195572169694703944179901904466226853062293198238038473195235765479736500161870615907542501157050875155005017536199404431532132907430963512432762469974400323788935827260787111480874731792760154325250711226296951118308129119916436765666702132202057490824327640593631085378160871124882102596553468550658484969886427456251981240748591960202569193209904122057086006326821636876434588516761199098778507797742790672249626927421465722655212448330995920209603229735478148193110177801443286724471337677159851955622552030964030820713832025291056558116170185058133220056096758923279431397236862230118855890413112325416743542217859860135915811810940702477958229143829420099713151114422477073175227084048418888420258770152028323475069273237651124315258853236620865260563110363715099001617728106435914477465142782005856189776874820176984681600963072454220042363256226291259954271454619889637785487022591096382276244279052989685598646356415397843046461973895697547215310721860162925577358139445315859063177411936220688799506650589714531958115337187308210938942617798275372022474272196747055892251024111986517311733462077277670057751663667137977231716242930987360040820831991320918156777330533086893809224626918645479375317807246542416748851049075406910581862632542360468545832942270606680252356797457448876294089434304226764751400945986518041546624713237893597638007027131119003251499638173586089461514480813772804754002043203164394054206029209705258121220779856713147482008525178310802498109537787044738702439408600768204953517814760405777407185500893122730385799068056081471943763955813609496466954632860411860610641639147445391653323522593766691896065003398127758349321452754457601592284991593927569530381361330914530272559459671969622339378283821784474877418095822127011128494750557577026217516608700879478960048274297877273886268333455519819704729056097454708297762902224394228061585868181934512646330308484829119506726095525127152026946468331011617254370807915438174804839210168523824428248068848691755915715469916376788589363519912003355509782054773635839970723358119141133058877101138313085701742181277314338004130246997309484087685431608050892566512487305015302933645554485828827604865098701485057619404933289806333906892020618318889592961029351248896855879775652072631945279295980075854374813672306885802387340298415314602066160688414933958206771391723426229922270046705514306691999546298143781567377485192295452952606856174491889503801913237628508537168508262729154439441388429205002996324820273261184157151356813537454012458811736042602459705515190759859558041440432462220546810768904383672204640687531177244468774735922404823082732776737911889723864686616970664770268251438292443148740597433356383770095843542607991739151930556339787925130133936469197072720190301099467894597758369680345296789527370509707805935347352151953073727854653479138074164250885743442824421936583537545864549380021807224954392473134086671988015501100951256477075008580404342287778796301080387122170526847506061556102699525842778716764173699628177638316034911496579192798572260404112351434866035758911916631403898019650935620712449865466690098559548956409413510067417580534670989410888204752510805712854920618940493085379139326960655036981570552081236393796258745201358317306054120844741207711037796446524581115700618783259598281096746369307511586962318084061035028239290662566682248634904119444465526366783078045497371059428206384063318188904665336109023890224325253737805663724592941375789079137019237550543260068051056820350967665074454263287625990398702402753612918455479102310515661539459202369091614139550375613412247087864889935658937975640863760024383887272670178818889862237671038894177294335566547712436903467971305138851667851970448203581181742274821622797312715982019318184584768629272675492816815508138425486671244607647286912102527204968289089765469223404149322177534595441057117882847151040924628954155144783138984034596930121617132121290982304322367853660727917223088544455276843943535646698031192345543101218228828364878671538022556541022029341745725703607825602944173482856748965724354125895798747378488779709628593374317460487937200809059344038166812906992720073787148255323880744483072661542532422850172273414898192372293968408818727203986540176276195127802556318934731435632104970049804395227660146091946669550283683849906657666417416437589732208374034590297191155909267442302815792238525584991855081836766828150245185227600653977890511567460579750668404611414730283543441632469402024536323863480434365246230045982652468492290506525482289260563019920064158970391654582333930699103751707298727301346462366002042820950094869218553728670225027620040356067756773174838112092231817042751080692742189268249821271397084115082740383627163920831500644169950998140007024738783527306789447958860742413818827222484892117697442673425238944775817721302611122371566066341322267628063325089419046397194287145966762242006248835031938576215830647579463016214294427703955087476916229180853349474005260172065279964872081687367221883538274324051687110315895888267326673141562120891752660243553951197065078201214531031632655069124412510010510876671071389850305111348238599648380297424177299496319901571863547584525358046457101816503873565672585927177217335324479278269277645275508025136397815568337584368556778798500998131122071095436138956736286292040528876307999257384811701527395648865536937184051732324611508422933111946802903481867577066974674758206871991538691516395035851942881079703967407066913855224618113141932067119280226910404338328314844311344397867136862966139883000124560444682249821732584141047413990599846724217933229371151674232884288181890563430439269080671211366037018768224654530557344379061895873149686455529414205467249672295745588676106007024353641581868631761122454887449371382085269434850412683224719221959076894646865563374056928179937295217465100022287697484580101739779919384826523175347307393937388276382757157817199943459664742540319984881202603693358849107912766692057746119396436146179430000694724796707279785023388800273300608366567214408151990117459664227809468581538252121185639466721997271706984075297411030312557879051747150840829904958798392226666554511843917549932005850675638730928736339431849135571147970393937844900208431343497906723259310239416827089192006139839120693619168837790292265385920853525363404325748314860976984844624550029086439952123913922118164845087240237285114783336211037328922021349287505513669606075344656496968283668353587874892639540848657191215542900151064654428540765821476167702079851914492644173010375242488404233709006679350854394252583904895714130955715989823802056673820498304984186197891093236444628647699060537375074860646708113762242900261148829812631311249376606467194439418386810162649029422191882229325205250780065283148537856899873835479200723547481174171901829332328028748220215796294687048334989524964728166626088397576910505454023140563653215935701573888377048174375685946549650464822503873010296303101428230027909618576928972886853333921114063809001456818400034860350863189846699663471548887397813684692351024614536313821433092597474279907680459993847153761042277888579264106717570178023883486175628160339955396926574190495144049368822661521884240421125825894423758413252329856044419050144582712961374536849473997829351474231371593597406530761206404788619654681002730433805979357807495192471149188787313545541838497629031140733300681081835334176761738671934184169021144551352861526714774639681394318276455076989536593270211908312091024035968386382260774470924242501429970910099661954478548837157644054385168401957212966331786555480532467112447893905505583440445691188437183121141126878172863694072307637627079057095383886905288911683147714702875571547073356672124934978317387262305152900524038441383681686732696170412577182097949948624542031934318009304386477366859857355559210667286918040272066077027395222279484149278396180504710295365006290269944701509132608690997457679289355987410545536310369875068641549905456280528484654517879539652096906875970131291418353912037686716276942048364884016044981653043026089251329028504654710616941262978387016497931811381089089473812089079021384942616951359677833038991551165430881112645837669358291268733841147066562462583998335603277843328194710450246352303691967346738753643423810440059973480674108470417969346515103030447745649186794250394156741970741138357127440759282021204530871869907433954226241138099116099659750933432979445297181913007902468962978480881720744114342647891225945830437390279812678724959382764425975781048506024781145764927838111672156854460681141299845263956047493975841294767434214701719068148796108751174847814635059843720444092522428755434846496387172055885127889649272854001638036678253620900862021634788165436008317928233535454674742278078395631411849639636620089860717361414769176717204669663463106041900094356253797376094295423033587901106516378299698191234705427188062471279545962931763418446885255592194200516538194033692052841169847235905389708840507480832465329605309504668862253904507341123455040758713455850566164418476869255465500017123405681052398766375713103627558929845780845590875330073547900247396144592436376827552115416333739117095341006110336281247034444328148582494160060818604365290978602175912058506404827494888023191666672962267223999582092983461077934276357646262872968597676225901818774607422348838321499712983577389224464681017450235457294698791353319231148874591327491153247477656203053034689158822590801043377872670652660192037152561866394127311791166901812487916582570854442934746512004614620292765596257782442448787379035470344881062088088667803950819146106019300560598641071923054488673505592636043599764498206904514916109014939562143040344052678385896790105001461430891024558993828981237230509699711380521055423993313857192320972801025809129504745964293333405354265144951098897803179393930377276345696240399470516401298418724679576489784391143715593358140846772056020505527990788916400668733998438727953025530299687080986036334553091250535697633200950143473773152863656433511005217436739824600037274805112515613082506282342107026105334440629951191450054547408504174333482267212284016211743498494502357215391304134498499543412716004520154178645361037945172660248535989977890781165242139334285985872005676231180244094679380928058049668040651738470666142716256932041656088986246999373240243669342333267330064332536921218659664373092610147255567319151260502325315140851131356848528764495128925410595419342752456772974725227547583714277712493939516002205041154741052156720276654640507270749096858203072976335299524712797378649278733983699598259024640458349400655512740012439665410017754306054013973103944144701041946921001596231612654985066715426241480356231212141862250294052850489656341004075434789867785312091197473283945022036382567986342535869699652169122321487580436507291634373281295202381637459026911314956967095858978453120996033427715299227269556187199292657026181998773596040439568389882970264583989983289375193930113896706398894374459499518396945958064274480561325490628745547087508331586691660316038912473366553157204046140549981432827308882702679089474059444916590592096958863394829546006905356595289280724915299732859284276061233632790328833937012171099393842534138280626912764857932837458146492868673287860856534900334078961137031898768188031221461854811760564937104680869115792939269971150670005334310820210138883011585506028921639714082604364989805202981812673724426767951771282316199572900736021385844786308946692450203496166148136043626461248836096373582660294388410774138441300343490356553061875434575927341724994521763061268483218443245080655260444477401393516488627035796522562166422510214532824681598198626940415301680803768285018681551396772434668075495830118528751406355562727095022383552758175034574902409102620012684684868276946583310466380463175706420058959328072954095327261796620594427981630109336768108239157641678443018366240145082086532791137349702636985986391485825939853393709046965042006837715302864205670039494894866440244742891631478973439446335942486786395129410464543659195815210345386405595399984752412884143324737983178928920588835749531927820519239923057050781411110119025285506340892433844912818067133106191136873317289167486444082153740953774580338641698130886266952867010135635220119262730355182534360502896951484825211736632658648330306965083124497705781333955155231143494741992391133702717170889702481762195683749593024524247350713755737636155714749756104596769751924640836954110955974556180788252551449157868326252957863553710569525047741563907379350705423845901874213290462098922842330609098666903256633146559456738168985879842019598450462833251235281139782916052504578835379273371033478544806479128137330376188699722341079607427726097005826458224213899173473940905242964876341673931404594627580124722961775607657146450441571227096307596827343368960770032877799533395312667408392287564116171155623259548634683847008760602194465167663434191530530822712708905248488614963188652736797848165710784276248366118766239518556901330355475605569052047279571944278792288723035490595776476871120446944578066586095592742754848266872069038748322118003706113290895353193827761968190720980490213430594378943856537661984685161278854196206214341813855399000894661628150358400750387939727124243274785655632159399918642299049592672275443505093028346469435101814527409570221843366571292779293950634686132982525215725895498042812917306406663704730819064648318988441539017059001149960436610360759936125326021875624579060757692915974746728093336593236741434526963677357426832928177250717413861433338357715242800556307172014797392407242675853679620018304810723750746578097341051884207956760011343329383800410374092990035955757965036611173122242282244085525384875956899855308843846329917715248305708521997017138154655201409592160860313727322695538556813975188365961251963136276047667727345234991605294131006254945845192758405546370502699768603269933149194533140436778533164786993055503501792253520962541928271458090905548514674861887775978190634448797313944006145301188398106927570861855174040761996958503984303187043261348666063846998094055945119438396726685842867804866796319485188626821391994949241852850384728807359250047681175491714520845592253640900164090061721885198447989897014661846440460847979262284148158221841495569271551903635282999821031243565037490748249327451937267957957938944874797486958396618894839291531329412375059960043148838574197041992728428597162335845960135061720114632870335581866136740542526235134915458390702908588519831443305184796523925167074676175922320879761622519513126126206656340504767846720956619694458644400732329208831500973649854828397535554201140764297522831251425952308145690221525244850331024611796086040989680999958955459788682301958383048148173352493425556842613050142739993888990577464663568789067840047859730005083459206261920864978989496857993773856605899207456974245369114005611000238107194495569596826223110218504554731042876821758490584469619099997210000638332241281909649897152524846325759841886891290328997245193948947430014138780471668687143660870095956827924963822815469010968410454408742844225146769238376885905719412311661976328732116250141543449659786674887876411226764225673600520503379550951305042746839028342484977562586188506593859054163210778126435615276117532687814789399545039224098283016484393838301363127163514696733700122485464288404104321121155668189760470350667490882987710683925190388596740517718552802728385004601428349820139245593957572511994525074844997976514894625412985047958559519910322037721813027958447067138304912396825665799557316225781598486447225070130215182965954972595911775883108676099235994506378911757415463133332969190459683931977153063836125298712211296637759117288565554714946634219771817114637407088044914469000245214300608729119692879931784762893554287319646438264991023917237185722777527643001402674374783118723761016805918301891244226949304393123442215821108414722744725071729570352002486299675648495826041781844176069589929963146121758152389700204137799363265344904722237256765076248156479255896037722408381039195008462691616452699398008620178277266691082756681385571010438260180495187335725381488220181636141453149105158954959418965013360204861123684010055836826628475503966615986219838953561083920152177163743690694678927018478221558305902987312735353380264718006914076326255249891008802646144742770590006448234635662928242201230194810343055233988693155557431576027267895959939720190780617354902769105676794486029707542979897198070125421527995769747487354527969216356631268888473372572761212234527495161219445056217995464045864265465685656339739559372959924463644306374281182977436385847282316072260713491762103152634337643438021472748041612295711792687228455324150121854594898599614362952889839868245885743062355398514274504434416307079170084725751870642726408967513804560704606396675713463706062711622920796023041351598783658354943297696118489085243820882352950236795439845131456868357194107062062424030481468953237127007361826089023565984616023829403530243112415038728220608859545148964808957472977271221714709455644750606262278798002961117947289997227674237576089706571297694659208569733593508012886939203754909443195977199755011651637013679572840485458074971290829804463902498372377653342717406341446627236143365227026269496589953500064284388835650332396427211904398597193528422339372484886315603205008934720787158910266212161127128099932253453501957000399171419014212267724053028561276420326989378355964656254394489158874644783473965943631501524631857967557446352099496595355106466535154435747456827594886302759866111891018025175525561019550112867663680670025253551693417491838358782606068686731497078692819711953969350006112964235653706612232081422493691606573274544117064624983367482514818712128035862427057582073044092454184824150775468400805610782667128191176505107047695986574797552846079909483796404005487496363034459429921445550751118597629407747661338594624532170769584201878895731701491157476839546264792690706008721972728215042128574378685601469539235054754786688948898225847497904017785192304853726329763494475675308203392757573482698466534281378043108016850014909901266307601788759156330542112110287002935737259854839557249949186786073909452160020690030207735162983983000355612323377754650670959367389645264855778524798588484168769690405429742528437103687318965284468810808685913632732909111209157133347726487561593104133317113864974696556649871263762730570346598135078887417679722115325571775146750326670012036833041858673978589629968562676166352085731634599475535754538099451164450175277558330668415954962660923917446961984982407533349457742832645966657088074677775821286387067860314151069832839612476544010119993820181743598177134328354705365267852866233375015180476549593505154248152879810564743015006145945970053102472942248004062131316903993386523556799143987972802849026022507159412354745187521558016534419299756798479702104711978947067505568515036651450625304275541234697329084489237920461660126049276382878673051967042222286019550291208161667709767192669049827048756074611386728446890988968144205334573742394929036428813795692576595199286093569267186233167606801406858118342036414740836996064362281980160405544301509118393760346822939434138496811886998068489695451007803604191017245108713959955398274141667182049876705550721727996825870430706290047595810398383382412536061482870272472101717633949049599292533029405052077245797800001546158344976185351221556635027423147670373925036094184067197791351747980687831591573927727905387279460714624123406185272908957719712666843891526619755182424799105050322562914395444255618143427316727209837537898231444569551334354738075603393155452744245984446844058626396401555855736256521856808632771108406736840541826199979276666353082092816157088315331724171602419216394116786248073801965378705890056370174945496656408366954939884972712617024339910799210575718578313452315617432505575331027205390066490641001409139693700705988549055767255592612858422251960106368559356577803713291075113273908607559907568410083852194319135352944933308262299754379363500582788675518908355550772044176201135200407240116232006282295161708800140541432009894498903320236205428671011610051881158575725508691854785825121235688901872722345980015017511050579476304966780089595299151623459817900226145674914925134744118198815788708067127151973606806746782195574869796069063380955503650421462555605394347967725023452900450688441196026561917821662315761744649384014164212418526034522609847181677976094936330710812241710370493529427221211199944520777875651009949142257328845624673951360469705370478556168821322552268333275536641290289157826122177884726797092446641449214560707282178421150009136896592993656753043578543271912429290572732977965282156027579031737170457143459768984838979274805936292107367053240680194092098845039835536471674544316746830424928766551904059449548083665144613185605125541668653047659533026167331513096464957733380406910776546553487138263357892560527346528647398667459599729631051607636210118506597817960146359957123963567424321096139947786969257084483578177703706570258289804628132410402535054842955640617319675456597865165769294535453052234465954688897596646352599263946637511897391836307233441975055810078446119396440434633031281874964900565943820126125274334350181739645365382660633943024422834437875164792780314758695876531964727222212588995703478752277778155023576144404391080951220248874677491939781278463138864429326411030786033114014393000287467937902625842467065871403556797002223859351136218690335273682441991502411172735476712406339545527348666337160937581482713035065618806225497497056642614083486959939185144706784215336778949588459387337163185765958162030124677064572124000246987891169184106196093453427678129433546533932436185229161834427466751422982789652792014109778113376537908801700006674799373655330978742039191576045999125322166578902214380321521594976193105088172238100352596518825720398650399951923292295291182331175209200947062453220314641208110782152052167985654210780236784115172557081713430926618328164706918754208410039190892279216198264742512454054181491362928202710924586745106464465895271306498451830284961794935199582214337319128669313583910113591109016498468599797811253129813514034125358115110263625718296263883878072735337333878848012961571317016061486595000715696228247468273780919598634928274210776275063227138631002720442306645335628868389298989073107119683430892258596242608205834991572024075650318433306527237921938795429515380532099452344345935210287938455662222883714543745678622599988277451634392177176667332199713026917442364097208876447899140084716738444675916384486205548472595479905024885486570890543644700182573310445623578718692855575588974316914213819691278662554521940849170881002983797342615909778434853868586357468850719666124656193940567884414537777217482169645290478017894510417586822619616986713931839357429655437225994671714464480747216381767837479834714419243282515660357372908827831155820131028776693992578494584898236449995663676381834136217387466539282517207957658485818077410811269116305387342855040199526027099165045744686960634570686218143291057898610931486441149168718789755786093880967961224323890369818562761378822026141824703821161149526208385502644717729063884113302835336485461575982185130902416868111162910949180808844934555964028858221284075442591561194235839588287829345240951511444790889777930426795581570935402852640448499493426832421226825024674886882018955374462263709970920269852109263966656632238682285870004731683759878032109552970738429918618652327409411009715986154657707495959049217802014927574466735685383935135419086040766799617868648981254006832244131856799228988224408387529096082692496781336790201282516466296154039372921374017015192699077899087388840792733351056562225115480435983264607642385389607241268158390971091751045524854575432433430176922706691238445170672523038227062759303441149375569463338206358178996396714357612197992440257047685155555223718681819510935062941142146875767999973094617595615916465584585209708524364096958453646002018502358294995053615995709091043842505798432452430946470242728918172918827883326261486085918516055360053569249944988640112214279857980952663554372567206867268179686975012280018378938003779632020260169039712798960037146126003801852084520707552616041238238920394993147433395914530013300007221602007588613337197226099653012280049507766326804369184983875205494729178925617685354484231532532100735622379957314671604463898412702466826585252768635245073647445710739545004203391470261462624648950200684296427378713617274542676227137570385367387439356134450181584238730811114997232455734996781302309859936541959096045283931039860058420267101981659319209393616090047678904463506994936425432984709366959406572301240310783405029970018650543964495055791138099813948522895759879021784698180221530672283238074016900515508053977624841600201136035557614903453374374736873967902370155327260791868263964499737488159623140734192810330792433563353310517605200987511528874671001084385784038648884655956201500385794334916470387665888835204899390583916148034557208278473462875693788676975997782561592494939547417038636631021315447286834438485619856580143764172368347079133368413085389582999467710071112546967847756910941420068398936577164477171761093248198953510866803862085677328893021335293077315296007520222365092996204859752373416907937137472545261996005337802073682777930629418726720430388140450529319045126441313086463881459809012667717365711275791280787643565711338072667005078767386689726555264382279240579175077321133793284704057803984526568871757538978988484515685490400011770274661849971823033460504026983742942090947239681531016061706934047494284428413400685618101243560776035067490123104256861440388630381620120072243284997978391257752738099148370769447800897969114948954309763446872907270683579399740889736161978933516789186411917480938331963891859590044858761414529088541246455405262786151868775658333856804344340259986006795557415603904909387690073643702707528473548608654201876079455362317171630163642763074352641268696785810430642654015118214018848545237595431932472435221347531931353838566064154496443263178660030172183809174597643558029224553718383253841021539002969037215431434591933167615749678892761653168612254323159327190500085144093429396945116357121615211125156661032103457053658615747283180239688969596696212734031585070926740023709805262333002401627079594138307463022025185437439932135949923078786567181330060120281729379859664015659569688861296258213165186453483149453137883772057169848680536962620622026410474788337697776324360356156383618967698341929524403560566269392879233222629566069375882589623301586046348183692983517692966165140973728197940109297208972063206394949427877860833023835879766718333045449731208761705071634218267553456602591583821128749306085035129280863509165935040242949079926309945300250923074678524809464897621659677699513177045342032230173124371797372063317956018048978693260578420475602539240122248434621042500866302115408375936434776520586341885847626984462180733620851055700039424751147753364968078681996599748227709802793291945744990302034216614678093637011676842340327721934585569306682447792050999247129657567260828370985236522481344223099549864836985616111270899195173035718273677476495122733187483461790876268334271426457026956383671283956246327401070208617771354560441334252367356026280556564765564815517311530568643700735112186246564640603391748712164723697976313436965341742769150153319553249208416159587843705756464068051296939825805361350828782534790545967775310835734206519759160039249570336819087736808717285687971787024630843448101119788330176462539556010006785561847573273779191230675640570437823162899236940972470336761546751591676267408030747527954523736612763701660700102020548931619094966119307534475950101761381411167391328599272459808055519967031886416856701486145794981538505190590194121231213063138020948701321230528138720843588904782121865163784066216361636039071817729720508257843396312780757747813635477296602359786010187645254980659594665086937238645716716936182349693634129830003731152215547229744396146262367091611294235491998934860667403228624874328814942359941352832323913818546527912577939667802876473825085869627536917088520095637975233001369894610210254102435115010084369818363316220385730535836537884105809087715898678132316752965666680132177888569634505145240247719382074054560454305358257855450513230222598530568359372683858270540278696181298231356262110606449254312017268670495526831747518365525346258484799851441770880530636965378373966641368420076469206272441373859719065611679403664977072386491147731151625878050114390142960941028828122453609420545930779428691353517087195046538270974222615679202288717454876168433173886425617266259379698920725459394477762573584040072227584899516685653679931522617814881674504176372375139755161551235213151202016021836447827079967192853744298012772883511161053689843562662370644270653728278625619544654863961963280096229041335708725997678545340980724287601950119117246557219180750859753782248605406747457974151634001317719943432606593024590633418015230101959049265267673366625490369194545210117780817264754376925298067643384318082671598647029601256414084777179313482928818182638469069290481625587529192466732652757203113108084344410882383344970839234158409013266100626408395276918422969545057553130928040781037971460611864303090695533300448594306776394249980079362736410499153711874131751839995078420309989730360057673420898247946574100489239538247869991932202468071164946360333956632216934549651624200416848904832624859269169327740553540808326258890322544166557951312880747766192037472789788417499237928860674694120423599501738351363184319717706091565719166613594953395299779111899317575584603733029625256787871489495038502598061634222985267699539932172812565694219815265888568873313569472751503859004278175589863532369651242834273736502394721659632004702187397806547719314561329035261108285085147204768202053110381004575789534338958473199791752005482767659416428746692604454021014455349791750282625888277841912017204211978778637842700918922040674258731573569921673322124510095701167474926681994384578344004367404788917206085896613511959052478092907581202783591066807669216122650019103859137260856773168107617269319440265670651467148661345554643612839530583897700910122367995930110775116202024038582969100424920088246067087226797475029347451291437726077867812719894221375794363081198614107693100127739246831402970528154440757311968720679520804687198547590317485853758789746154409134834285935505907350114890554572912184226168610892924273807893830476554093845560831944549841189378541595441825223030081688684684173480222907907021273082977241745597625875923202259578667904701582347588391273302698804920700060018988938420080850444788929862294818663672715883118113377643585632514101591307888200820977234911781805285485710355030739729097616154441342310387590991462605085027791870695474691850376396732169971428833469507560607515620385894142108994261781780901298586773612848283453647046873839324432298662980630826221163442306570144415914017470431823735140765914151370568147173138771358218119028608680645460401151286980941752764146449827004694223765713953360294402437796928663693794206720166694663973933920890803610660163789667073184274469403908281372387496619738668124325092491833933039124577013738501169589395653160526550170049127293707113155268773413426276079520672052959302599744641606662955743785369301896108120150819146272700613981976272675830748721166747650280631129844381495942401677058487132732003113051949215409646869500631502212719117657208776698594165806954754381917304135239771787055055467445366228471427188610503107941622138624091550389221314459616107651323173101275708595734888466998970805359008235546438914387672878057856165284382686986355010282202926630014364175901749751066698709465663951923340265037110680339937592287548325666546351706592546699329761625218353745720162429026538935279113153304059868670166628969960268110428791134996895114774458381527925263490218972220890199059755240371112396082008502554426208620471640473809850061835378295183825383689910642314923213816571548766937319694096620474267695979632115482653056025239761527633143470622627741819515517515485488668311172219780960295770792968171736848966783538702691627033429415070363888166835317081542045420841632872374285320475588362207437203490928536176776836323370785088722153018331102557956058153757041814241586844600314974098800644396451415918254517712932289586571798122502059141806908802495714005331970406472535260537621341783463977869721456067613089984983718638498939261758491140541976682254858973888565439747445640049514091559047786117076533350983722278948588293027958673640047733087539385194480362993440944318324410449514377660588406085381129452280237515502077154686768678546051028292847956761324363018708862780750898682990582209582305346201526673214721729700543000413247122290612125939747930817537393720142860247453141062249471596168362383584668859124879327452191738240498204016989419995506711747537124253211020427707255011607625861322261793549072789928483816325569515505723342848295475479821745478501110097020668848484736931787344892666199161487205093431840574341809369518115101504985031725773160184924452213761730252264128779849432936714461940769254387433931831626382686795553985734180660031197094774284493803963529561589045787356257433007466317273979762253507574894851169854146362536630659031543964510234860027888317096644193580659333522746685950764853678447573554823170973731035339183466277195580387802582561000100085081954852443385637834241982702737865368300554281125941444681964693157012916141657621911649120335122048751755325390292246094586306269449377048795643459159394162247507866960517724658407987516279568488984222703731108673585221734577911196625094046838349351773324433220498619626794049155041128195858164138098773025608206951793147983186455227690415867552442074798899633651423530710802032483838882617646127337266619300882126097199398110398012474026502081778349638522397385972447902099422794856883972378402698965319304701034721800059192103196125936760448029421381705474728838981069869196567205647315833940672631149418219203397860548991970363984019127169777530384855672018422375437445843626700961411465698643973015109599931634061018619752086375678492297157170787285143191599369138740772286178187905223804007231359630884178099899311407026069020278816683843343223523109817633341693275240803611745986639471188694882729500733324897425516591577933275920974975256196569892083233305862612317011892099765353679376714723846458432654465819052194634770877802192457083932607163704562150581794887772905777901922352768609138710344036560713710266896556406563326657195892412376998708604408092250022504494418293594392456992546422731214779388848070383225538717214455367091739585054985868392364059616431525033111702179675601027924289952237174998597105886397588667456884358533685562347307391349351916837353400423877549898035378903699523846240426166574306682965562528967950770782117492309164611303490228521961839688066619453464295631115206153577182420113578168739008205639055869275493087030980324221254639569484167131218690634949197249686840338395922858240376840360848247477395451714295229011560353348507589652465454455310170174511271388372173497445561927100526195446413894997888019002752663514509302624941699216721221754714951908254522884163213604812987874005200048301989530706010748902033783593736185697279143881447663970494835630021516274510390410660431500548778089541901202837158123127023455227912643809325498191982073994772684947109582732586082149122394412587089397763530782131398920938152927983671640133223759207626605199608911501960266578700838210331336683341325371725531187121961810228693457247885705849824707344418839527469466567682100565222100951999894086268751439674852030419201951641572334019078204695317335628668502594044887797139326131041781332156293092781362049144234038314393145606752527775338988853487760015479371603191388113479840228152584456425897348584703613239702095617732013952388065638910739041120601027328751275543839249100337996879549791083435418998592390770405872185579273514478032809751873598511473283523129322780677755953127323856521998376731339514430582279359523579990683443106864864282142756140066678847801576961916697243589752006507150313900285880097984550864798963471610590337413920386027544362597578297117009395294062703731998018320491186189695501513696525239289840905225053048595900567788361174664595719534114770136305192895853977296936590707288122478527635260603721554218046434654457905728550923970382892560590293210589089076515477045041787640655722354332162512126900857456728645218685151423378809592685210922032518523365809125596726283398187236085045944452129373335155695011963508421664298019521949378182772480284777514194216857704319837720953701371477322172268919362754830046093645805880073501522907062851569596117348887133764162205511199472710409249427658184741652224397845642914476530408022928716902961302638421562857199027449974516021756881126095917208314709064351682743256889103431602538621124080980548281409556660967687951750791586772105872174909656854704270599313054808941929070789244002717151411758563869210413035073861601185361238447399579111243854193390566750117833191047014144176193345081679588574125802568255704321010128602589509485318173765740601596979291818702045045608930858068935946951513320687390496534615267525698593304884822224169274027567931372626931170036625859400471715763998908685007996130354900453709059296029251830662400375549783670768682680419678351662149009650728127636520758664440292277559141118661945284780357143077945858843777649784375484211929099052765121882389780438189689753992312845285570052086734770918637260343205991323171782244961880568034348277259420576186235351539617711717027560492479639618033835688904444856814189552777856638550379838186842977261241259459595105314678016865802519547402987916295669910314585252931532064249269407029886403535755691938589475442687463945080809300795041063400979334974308802280116614003009704930907172580016749122185112260893106183844692386708674909493209137543560693636358644614030204395204062983720181216452379349317713680993675022058427898916974684421163145208289319966122711698402954956825058772312966850549253758664535041002871807639355954124694707133782285587194480978787429048032228924840518222556705576379420332250851442253427954316783419871914030635376582926712163341150218037312805557304430840137335579798380496623639309399355512064142152555178329244461058642044843857624378362198304335704010202142192836605307203778283600971033634576719190039315113737727988443941024197058198482868378852651272126525321400556467941801158049394497890251220939563363736783854863971554013088398035765645236937795105715183957532454784289838228511680760112684830872962931311922171542771751363472941279828711559268942416823072526479663707372627575228854340119341700289390354988112517069865706755784337538382080716947454922553874987073135043430488632398414114173880928247604726869133551269198343961326392338269111650131926105588403267099944416684822036562153955791048722529559203362617337579792068195546971428928365923560442951981855133916520548695020814274459520084446874458012772116341598512527539737797638196035138753349839198713772025755723346662385482656578438868911195801854156663482745719087349842569370652907076374914182534102072965141449591942716142984420229364003251961372311849093817404171069137998002236805278450453405503242807309678916995079537928806253745361262642938705550562326484129407012442091069311632672831094377665796547005443061238848652164442001825958991874021458182906158252747533445127926007114024519413688202453057913792459521383553193190784763940857370389359132906891895140147651347207882783148954367640185529114198076918832271523591488939594228759608321627742666898582812970255764669990098671891996172027970363284049932592812585462307051422910414771712671733116668204054073264799859094457208205328788423681034957420036387985999106108192591528793808520378027560619130354714512794913672436119907074516696054326972395741489392151350281052495398836402447749120226317561203399509470245405295625339379949513240279723015555863908411110596108318909028734448883768561267710186488098187539164889788427196828564352580996639460273184506767305154504853935965308706626360944075800462378765503972654751312874457649968155162781421257970068887348572823541381119734704233681932944263943839925706735794656810120684853972199643059082323861987055978883455266986129734646637618585477613555948091363412360992461847985002099565046485116294275789009785020413040871273640707625515941222217314250851803614751997234802431978021686353173954272586478618078514380246993799532853267296418346750802529110912861559867888213304460734903375857835167814417004294861729316242908396776821153081177863656627454138730069949927916778022895874639661264289173233365705085099846778215271603979285630691133925235550372142755070235495818570985419539367989184819898492448248994100262154017202040970653352493335336468789968206680499697977479860488985192744953347567773116743136608563252115504144824494563438071494981206442597765460904401131397619085385322926062394192818166552245651763743926330166683866419937602689231502646572572067625972349825785627208501161227011218589316582016120404299426112263520643516618568703038071859169226426150203709896847998457005521490237778978832499576330129764183614874804240511878517908452087701360003273172099110987482957702854301883065649194986783597284423419742198829536815231897182573116792434190996297103431231308295100104993943981685476507412884264004537801931795709431364043413363727789676228311756691533407654652500091182343076330460251389711077713659388848686521166367384260203333261279327882708189652693046346746350518309217054736892048251243825743036433138002213985989336022451131432305818814703623418142962815394980548125599528275354351672563912761764048976555966350105340910661031874455393596104117239416917059068939736161141503164406342870774681271058771191703649736550543762973821733486652550930062361666174141913376729400069726998442569000253766651225241622174292783212251924073231397971951821359855014332573624426101547716727976014110671899757194793874689917925563977680478304347821632789209378712920555329716912202765171459270628967344895410725828184219824949333569994886761371262495900101387039862008432674184321525219714071077350458751697532731538573562593436874124628587346646255606114009782171309423313136721198441735854691008763806230622334004764757827899244686251871736071456043261329118822846354770046066261998893210574314223893244956697783453000746178894930967482631663734787020476399143318112936761020029982546399917275601170262637716473581606884907320562637418058257988056526516856045725048197413046527868846176696607729679454444537303120176357378467305029536294448360269075020599211776957778942749065486630844784252787523213534983620822579241341440779074529676264754998962164135315252698087657868227872438936599199568057660463467500519063398853157151714270731690787044568123413689393126614148501968854081060041241357278437682058143242981822561700556317415461443248349327819717660359280358637390637293018439540151706283246971930467289112099599172010900046962410698841353139297134004368708023947275391930896963093533763616957502934849662638586561020943282399257042977911886395117901543479939398348681721375288870042590399097193680653986997133518884455127828747680828641247112445189702086502665954180960923648045788458680892006485305062851773138718110204889957705197260337407716792478650252868363360642904090782312266624735177555333566433025076991140132709471526715588609444581386859998197836203089640686234286393940301046838427743599425639699431643117045196296789241773878668897067401601703270576134536937389277239687448816625157215426829645154586226338055598922774289964729439808415703278722424667061447047934824050467971736326059613626928465388043728361581644018363086811864670010070086560950889573240519221002708744875087799592895729830702494693369652469343662279915214571864172842256765050440487104050766952329355583877232446009541329344122142636374242403648380566622835926972140792051911543262897576868939212194187774575173796055855455154452947672929489715139118587971091150892865991938350190794272293825805019535448135761244875091363612000803375216184212672357542927257584103904550184559609474052432535046605474068657715713799659557012902256502230897722835767863922381060165335790034579780043996838696053181049478083912242613474234489422360708305276506342313518741539506207605277038537444885707580215536804453160839197457703996195921146830243000541936124406175448193350541279664269710331691428066878117547621455903987916500514502363955031409811052194003398369321948149242588926753971564757806632749557646730173909796073451917627243373294736332506950089236456138909675001555085065559240516590572394426952077045402763680003678501831725629465936343257095019125386030927356526679217857768257142545570576709444090928544422497322041481023823435925510635151931115412519784732963662395070992282631496756777745051582692188236856659764276696920862298630851718656080263894531945029740991568130570540439731408650051555166922392670090301186830364051957017092532125049703963916752968644104513874133858827312103804238109918970238526979424869916230329525215177513777149997628604050328351047665669379860886255566432894533320076243147807361374227273919309530258214346919853752891534526215625903656608654715626098535482644971814896398194889563040096956805740275768565284458357219342530782674606218652755017639630273454701441432518964911480832421953700452831366073670217121521655762740544168700648067391069285438030529581516344979844797654852465003103434956386684688710266891697740688928929450488311663976684526559084815481973000151882785683902671679964952080724137322419252741103502226517016870272578426317126811010113509998242960167801344083500708282847516111547355419035135665033440110398363155782976000897797277652638814727290825393477515016963261152587323919443206858934251088271258190611506590194655218209471655221399276991577636406018072348883773889980103218682008546517914819002988560562859714430568973986199759334140288849862052922439405223701814392093259673651131029327468184125293123079013885696664326628798105905447240571580274092190361617151063740655808195444760394571328778894341082847437630639313474074912194912684685120891805538527687784286763743441017517311230037326140371743360057779167939247170367635932552100719882109604721425042226748652869377661066618167279032711612631116026898022928897317131188367161707032071518195750104928710297053767285809088666598972374498711005974619127674930778011004710643147705742833334851282495734362240649601577639578214051270992910432879179878976450153820949668828185746785128242017206855246382489263279571410397330967749397329581774805415650435625695695286924208064844062583180583427130466362549503351793764334077268604211113503593612137216447338402703097867754785367593364568711943310052292552236550218630499890302821474273383683714421207661198299409178778224053350719716562175259293212198442087175534440174554293235503453774793037451232319502549663870824105846667277150395665256705451786268348342677850441416603211025395881833527377333766286278993953364993220631989498344746663890755855909105986136833270579372103477512982175172447522616079099900316607171787568255733897329198961684653522230376114861872487704746658358618243164674554494665602869959941326319320448829916528264415400594085944841365422455027973408602012582762386787937959782054693803680142593900894340973508240048779307166553113968436481077948578780445292849670191974045797006295019673259278727124779013281652661467493384606826277156461142347596134914567287188276627727114862771218294038385770114307427692885536411203368320313523425977707270070138165237426653885967793297884211943883841558343931220719410143033705112391651037279574929609929115676161039764041315912429319540144055275471476924146223926225310038961030968482692252367207388545145466703563379013886763441639565401968754207523086671273896535072330463378941953689521347490261010872903068127512063230926698883009128935003601673572107457474125708534279132354853221536372844869384287292239299455307520571382520410411598118441836513958133223660618151810748713012892564712492374884002949732836776559121271835596339369936336913452179962754718204682448620434087940708722999607011196240103695203160665052716985274640574418346683262289304177958492932413906854088500352600871978353727656891746763825583679757141597715518246034179443336574361329479954090095205770932993108157394344667169014766039632673301895103936483924036078320377228490892956816279674099279118603207924622256216014714871692181993679321813938080046453122542219248474972045503023458631021707180364986410661851606688257920568917238194244307900487357519278822696683115480919434166605019045632652466883499659545114526137143352635084152331786096855566267319130207052170462012073413459808817930423893614344222227457434598915476833692729821312963237384850728729747978453795363405936202912494075567265012094813068858278505586949725703616798834988165149706811891643612938273332560110472030983611236688609320618680331636528424270249674011495790205830248133990898470260774887480474479970408407473117361491821482924175282920755221278429221271727578975969585528694218094369251283312484582062574391339757272547617129617832711472463579691141458224823758078502229626702866601999297272059836989221795550335337478319219546112877659488546213990110106168931673640715666521216341616808420182148246833866358624610741238017373964527400096389943648685214091384625107916516512767408720953435749188172499910713645455889254263188479127217989351403496697189659288975326981611771978964519884209494619761232704788408119332762874912047882785500683203737083406251474242241038646986048810609671071391500218827802646679286192277643543903598428402936726214870496892356605120646476658420115569019602733216379488330979153509947146898383933098706011307526426436706716230647770681620347911351744214111985908958077668762184058810436927444869454918991439238322229229222711259882814153140895514152308680051141655784835673538073075314970451523088358622783354497891514622178358224055359064574170492088072435387206096050519932390951940967744824061766622521786492971534896966589348080071257375943612429413430886896493135636093414120793977725162566518638996311798255930235077753901422469612535174346828311881168205777148399643460173894716450859974361917597099571452667692631387039211829292549351941966087053664506453709542324170741733204694633357654945497723217966502486791018158227328099137017447503851710007083707579167190842628234418126070642371931800704142597214426420221041397465147406646309909358050899594073253259349507340523778144847365230608100195168664846897540767583617958103529520510709533211627476325631967278877306041799651403104942509179785809354102228358111069361690101655549082833982605805283785503182514619293327720645978584731783792711781605399060854154451727118975169108426108973409236660603936612217862304767549427331519823377432851682244772300941906343095967986426027527521654235520668861896432957994494680887473575230016583417842166287515028927579740167138479807159269402880053449532158695291724700292186283630471109120434663503960890026431756900854421332740375786767978602481809471425947001803592183307857686804539099886901958364520617049631898844204246682639443482159076013503917271077722737280690068012941713610003866351212637291689354353833599362687384329853958120011552722926294124900628071496457597390945733557855356709996795465957216981536378554604088495986577728745528323629411074598639161545253939713851523010087318451370206391036709345379569308771953427255510965389251214497446465925954620448095112982526157254607270362628851699265639329394044873833218608577055060433022376200345838131190660379615164144037281816948666387943494177288272797789109061574057144507951519066798393985363040280102267479799366663093539943593958021859244981701915128367026974947109228967735378131640371166448548513290735292684050790605635357307556642354464188061706501366420144881410358525772072289698460416298733948574600591420850593801270791152401760784443946586547219069906016309085695223196705374716973204310087927649478668762591910800659094447798473698835625730982802798974081909057705414240142480208879906940526180230420041180637937820162171943258598609082772320786757944671877328497784307659020980521139134602523983864595566575377499723564040136282412450841862018817206292149198611550925371371178775150662172931243262371249226018757593928080602501549722381202293918416954982238222436901850200068932320666382943325443449233377000144036309786928403939146686405544335959970284774474490492470303761799843900192123966491844388043534061041163898185742812805916582149022976388912510529142189173269861856198342104243405300981600408407661517111489087191678176632670059952514281949978204742422264518292817750503337522185058908541986494875830829264706908422703318387624700589640972721600070841446567455692765541735391258235822031192631839193952878179524587865483506121929201808422924112841835560959856954912319702033626975435131044971481896116123358089023035202345653873205373822663897644989077363853458017021799925638317472138329202397066125629262164562735045461682404404368935584667808915757968405742759163494533363187394915141763296388907888904469202039485471486161931222329131709958018643708833432790854170279989081305269294576536211085612119110942296726998512905104012667058693730237328109972647351773592993631204529627384143311041977865336520757411174752517324645118302742864001623504142631178924683229034328773428863901304743394791796122859811299148016869320404005528614885435056149412923799797745590781625197802545415923533477749603560389369510825975680999285465238009020128611247027674008484349716426937292810834470575623435794110817206774479200386875148748087496167609054010171948488335102618690797957196990057348610317951588762096067720250125668935647002423843489616019896620435962079749687084364606944670427561902381777031724214848422052591355891110090447882294341152090141643051267045531697682497809896652446285254242676790574641586935388016416648240684942875318787185570758927542063409962825363817517824322091173769241059227865730549700309148865465086281162995118767354926351438352692702019269315156541277597245708684436695041928441781856945740264320595595818613522626603133842916222289940997806255062330388369723622197027708510942660733105388014041225763973531661382295173861768702622376448844979336850778921458962274041874888845031477026774352388670365990700159499009922497764308359736223170340475599949874145444540732748243497419869716695384959788586221733491561137064703905954412558751068715563317772594394305582358490223235564065970502987254100666486372367670889574144450426361200329177462782256690763786754092942221060135467745636615776592808098547561533943255569298582966281441761285774092152425264104454607789434510798512382241234414912385797559185618327770370348304838239465766969998364531976905202717984689951364208387628077590730278602452470006440834322621164843950797764101590441640988375932143770425297480362734977041204287153064738464957518776496372197555966071852497889072591308034814249579727801777364943549148823830580443130986193531850740505093908178193390737633053908550563839384976714045351991625496724702803105580876515810773101684527485898238021762753028514307437452927177392023940329869347132825624425398791364314688860711080493893767241901810621638913460734403220553906171241720299338537385952640084239587960358111734823260523860643086632287744942874266495953711959504662588195667072901847197021014630261571045462829754869569832296850894738651382259091907466794210759217431021020740774190066872366092267462611261356952219739044544580268464935298727390323952639475474967948500707585624888993487527575710886131527988935048281290351511439657107532747279746924317054513590375046006036146444131730675180890481973280458350166971843038430785478939724340332161366511602258778288148462007139304762222223084541901613320595059842963021934278974473033836215447761395887335810178725969053591718525300975848419567524976043899814123592257526678777123979808830679672090614379572503560445563218182080154267383595532225638739875058987949311985930176432527635719512400164256664491903741496100459790550104807706348290415565264527063962298232165484480912290143093412994065148807776570205518145573303360417887547822689573527094944990712968499331154401862687015961163553538921218354340830970850208456526815906161689184199691717038412240126812120121742843346801983907569565947999884587375413680553872236514551364642611110175665546094333709660712759132741648579057210280884292118799258094299246829972970995797635181810912389653735371848617860573676779458086208210411373374334528823919301599566762240421369681502702241472645931521184767348569674416909297092556290368754477112853794748922997103888545324903194762801754025942727328854975616469665630862006376835508038199512998202837712213159246580130008413889306952294236774198539527731186632073753459265974323141964576098748768124624955866834529940514068441646411947305466611869988969011846710233471775441218830138929834248153925043694095339082393950452583221510290995283060406152319201040912098202186550767358215233146016755480932394529290733481273300928030733151952094280673707433259929498853548090760475339532791409144811378619043302943578574897308514496940282311826045362943478050622599701702012201159389896557418883142916275771112303972810361575902422425235972040889764968471315107801417426876094932616135845553490978228063450299283102938701377286939944445186571694505747834551782959275518996096684251659420523597740689787152578130113062741047711858507981056720464075898542052706074032048489146265483600291055862654592844200407142088071486803781194880459704917915647006049792516299537400779582786580051602570205653795288483822099635076873081360392287039351881631764598158873599597112920422012963906137061067261546076071464541300664764640334912642712800090284637505842606906527972142472806219934030480008029014352175652965609090925078884442382464890444916877755491370388192968631482875062184266892731097780350621627745630286127277769526364185999256023122429102299539312823895709004328773786836557312555724692977550653562005292105246635213847480856020418357945281448782498889094331435516179980394019292594761583914450894588181775891683709992916717593645633620514877691104437623298900040045190814846735635428771372621435380138796197626167290248113801863855275946886812735117699941373531003242791030292253382916274235540567717689669822002111659039901405311194213421331328899306415617950896961243347825191855726042111105470795282417384718575641856685588767547900787501621662116385759581337307723818510989419091940208300024546671225915700086908008042612842813758901279985266116258136238790995721971419032244861424324191075980847331602609541266883816309471475751629247580086091016788741932482319593808820016266797400411106870724343948574661811224305777973695741920749072822316953402001735831276386308451627424030542485954204961109296627769434810896216904281805718263175303325709149419798516149560239488535110585799830655022221267821056518788838144132519976362983446763775792757769088322591789240218730773210566694156694639145297023287858193530306741147803881658013613817435042539028948099665796582667442566636174173307249000175630270216631208439707794762400590438094033884925214674464693287756033126074557171955252164443932978294091084628087291452576913927124216535812102026656047273468540657807562196972741070633600873894379765132119036738374642684068665710073014731888832336362314915160648392285739555286973862518539679569882031343693220772224604310449310192279262204189550046068680557980391875579764591394327647643280198639369146058238049432899043371842886294760897016493221681355805856345014869462602416394032575513086700458158624737751694763254786078472167770644307255157611942783413335665466357803207712104540391928491853748041626177523698422575430980585334672219026128887772080190139056430754311362628740921442171386768505042081317096988449425401345414786441184124547494032525657049171637811802958580970962856209648137866173129644120898865156688156768229787404757785833258899747851549094915891088502056818086623253503567970306597346098721001848975640537387945172481777274705124916625051843228991226145356464397024048000810443139293109338013526437924450664411925096226946192478263716894351486405701026471192737088964449473098009664685376857648235155609730360903504011435658509570538679774693786806367551602309808389053053578496628799175970440486503200116967384722574560019821032128283389381922824605989927127073684352566032132545259197121225284208805820565376523927725592154189698999343230519767341630831587033454676194331696883990130663060867900228502457607090567747412390895227874234690951199145520325394335211998952467811350043922435372736192788724233817455778411010484229180052338317582496183275560156009645602091726743566829694011659686145155408017085347475311025505480889728318863931213780620531641101168334572068749049498361123602962068794810128189306262847882163216172211683533883862641891950669229313574229051126722418722067783907913598104351659859812713107066704524408637712157198708922822924666575473576937408475241605399330041692992420974310631079337484158603747815186472823013285134861078057398008842648431589419491087872159409227608780904907444233192383881290864038300300482193326411115400094037505898828449577991623372492456687630667880502691826857315169756369783671522961366623175918060508078920744780626011935001577391450622217302270061516215022192630295243243197738383992374673204058950412520605292326349491298303343350655109280605458592720859226549035873757444363810151088334903213982546838095774328545709798129671451294102989058526928157027144577769341231733573456961054884649929341605598184303193110186420605107095649901591509152817739990955104097344516200728737470010075320097282561633363912038389238076837308177782220703653866346291689804001019864554348459547324499353776532786507992212589859716366847074403183850744571994170494691292535194296684391854145982886908592440334212935741914838211868242040532886527559322787306780256299083568769359161474699063371361294734668955437661194451839930654419538189528048004686984683106869392963737629429396056443891974267434269316829096968997870330343589767905376353134126355286777422216860933738320871302966430851204591122013233940612400081073392872558442547130716914821687201058250422966250813550656695789991818151520486083684280271283936132804225164029031741962945085345184026530375032770027838878746636843767629808232168821713029008532906984708907456069977737442102671032711542800152618217356390555510801503167640659074803411072556073508294006843644261547580029180448162963473355446271259764455919355143365421208626404323595867972298711391406331354359776297478710731222729299705466253980404207305346028883716498015796659486631437656127147166432015117498699333481438425708532742964852800424614009034000160454985721007684011963692837221916615895942630390464092034411655599571089490569118753758433765583497260932579916038480609716976942559638414645732045798395894250205622690230216297643200226242310345775875362022385825435684315653700946349036926567901549605865072074450240839987940515388849700720886389494507599324279607960356599768349714343660047497144538280331386805290662490998979498580548397412641802227269294512926868140935120212502961950663927089601348290710000881351103404964160901590160693938967124223161892237619080997181620561852554272178621801934206000146077037032266335711531487502251264194132017082710938901118718241391924894861253666796708063425699745637228368975214100845291240930211177419346376658997253264910069685944539676550936586766756644026837058283424905798725047765571061155011011989783872746133280219282104996277588104578570935307134412315133454206048749213119289185758442952005995373331527488804353571450459279537277756891663228668330467371512884851455010996865357771597517067344811193651063019460628556598561302917013992622096265632324015524147757847338301117682777624604076330494923963665979260079499205179668152176565948926310685214610704359359012725047756621357734986657879192083152137775986758839104141220596554910801182528674242411091086566020444256313749690360175516710895927489930164333945800521654895227339645145316286005385902500392665149921858487351405497711443355224200094827253437362395323465140896265082139603709494481012067255555606279990667561985711670976530376814887547658015729703341748133952807068605023467649380038006415756829244606187445456044304352699767723605372963923361734981176330113755539962154293007030320170893284560807225239786999174686127836255933880342087874823633858910112926338120508508140555167260793862780722100970508931325990632365724038617365526994021706677167742484289698747864439766657291005906781705913222888913601421616320219258149662604203330492249482448884712757120187710452226226244845837920204129472107853404123649743718829362366991460246720295339572531971242780537212458516196147369672214765682254986797025782834009558466170721955395203235310764191396833614652883542308944063687339214706221690001442221235194096389963106794146462905459449993552413357772501203312795979184920183186653663295536992238823550258614122161094924141662403716330093559177628149499468056203228954740762683836668813447891001482157445510749178675453883980277776905723065548145407711827280850002365751611806736423702272159452441688546001947703921971223267253702331063579738729137436330397971338937443994934420039750648936039573421489079306738466955928500288253626677467292606864522685350010521483784845775404100453453295796567589693877254335055860412113311855021987195338268496631528064103375912367588830252417236130803832824822851540210762424880096230014167532612398772374146413321421752135284224693632914642535079793730854781875211930983893295855022794513757824280113877238390214534999431492083983131690662639484230923232094150506748030375945614751121297685190404621405258332846512610856396994317821676330177094236717432637235038384698986382810621006482410321535697679833625740766465337785474925048595825792949142088411978672361770684098202369988866197804670052883418609413996798388502701909577942448513291001370188021791206457400005542575633541226107781638846701543368154083288777834788086557921132159307534027229193434625249213704272501253030345630712666447884012583509144147689664780617741192240409175251643010884889793676596235965243469011376830219886700077408852777240301327379452734269209500465416211399787709593875997313787431035794015471354264965843866002248505838805573669034760501165168925911344219397035785084070327676573777384430631063992427485468958069389894931009382352703573924770774110895622751048179277871872291778596185893260104324411220962016657863367026600614865047528433932418353863694212241725184603457053833988487825646161983538687923828491536063326054465339353808700752804007959125923467725464565579331059580175067682570011006240976385203040290123874230347504201800934313723297333085108087170333278109703713714004493312789942414453392477434915333681883438179766153808755478514300835070803512584258350156054859458936048385584470337352283353435145500626955743519342393988355460611003409926295375558338347458499577665553177935081379606328818282180218723354939831555454947429806627990641739739566874360576104997352105276949280733328140961606650595101181077011421608341647199946110238195957609910189639026911637854417797975418533062074717007998236210281598552843315392667042012288431835050126123656427928827378099979208130392676009281051317833280305374608950989778126114455662264709093047668784190740654200733106982679953473668427103841113860480610798040224526096368555336586138884645509447776622696342603809165427986927844996677864640563189029149913275644076516364282296978779265146776152062018171198776768356098895531079059560557636187957367003755363934238018270700414378803583647362522638128635012560460894173878532071629972772307591294641265877305875014808302690829338670823386025628193223457245021479181457369126508617494157314172299640770447893109597229979728623197266826636100018105157347901627318014502772472915505718857017108625137918107803162456367987223423524295316065446184446763910878923117652374463911444926186195653508442863105126412015168491244372378431555793013652965206662122088186208798282937901491072196661383393364919689467433353333424707996464084585224406998056792286114885287189186696781550454636517270362354913210368333867601648027618677855067549871731169088814102517292680346593388465657354517956249776938332448360159688520011079885972602214834512900058839833558018904551068235794187736597903537407380914914892872606773480256842906201702501176766315646222140105726728773965793727130433371734544690368726139125743936581067041248925429031924573144186522225536978538070869884105390038023639017015615286766141224178241916678085794289642123490891024642513676632203777907539509560537301778969640759887637670190528946213584203156501006334694470160082800943377639723826954115393034371239589858481100200123959720861412888200412286547009130181714376773912205781326203222446712578043626092467742149143947033828734451786960253536168276488427760665577313557874205180251222066061860046051504137642714912720241697957637959651389919489313772572254473685051895802594058734301243960795558977405020051904132461037044948629423065824459020047914461113883600900500937824250151832338098923227391648844694652078985992000461136147996938755261039508431826459109629379278339021629854066745027493413709214384037381960460942005387268616036217740758185838047535420735845660192610168749600373541758633918033003571345513166733370907606744412185037840088322445858353891004033519832575112638191719299402859513891906412769782680558339464300283764114944613343058035760262596876170366982198909940279886936264577679298373715766820239847430233531575890188693565125133618270445287900453089039242594453944496535872907206235493807002656002568707039645117478313403465381418115524970375882970268968262890345659742521535015097028318555321450714099473915604944727226409107155044227112220221854045764088224654146927216844498184676778220525280096964936661560671217542679510212260056008822444600946116942280436792649078580951882493024087495944744124611593238446202884234165866909626230029310829036780600947336818616573226850081917810509806725941908158010578567484884394829062906574682870837804406535509959085620159122165329864014816934811334865026339360293993986778532836764054874635675873851298750236378043476247945192716471309589107466770009766711435315720924278560790422269113420926472525653563457097389254879220868529721985777709832782706673668926392928639728656108438684604210657986541293835843695884616262499681105382072604745409059229641094038717855932395810398509790114749168206660847352674524038036770231241006551582882544851713683572903224137809196254610247209571939025130812095634129290793669533411138041235649350510630780806227358758051788084471433046871131523830730598205348580969815723739233892923875363151239875346967116757797957613966246731510316548097965154570928282649076339643134184953107023955665419752787930471105529051676877424388404464179079023875177393760364533964455637419772651206244008178915827245396557279340483574005140690835596059209316234777099665548536653371641944757427837032099764924512137692092870074987495801402987324547115777222857342386959074142335068722902965754783014003581458924639799981731867374456443154483221828093076320943472293662027375703145546675983642458131350612860668071966439535560417833260651412176341108196233487238908968080693528121861116991661143654228859230663272219684090872996634529454688864263711856471324912690075691810385817877595827329294529538960689892365365069983050474130968788296403830576227640165814461701638239114403175614301743106618269823995308276430927242598578495661727638310661510361386392638959526611178957872270418041569400191402263440037639855435955351127189439316297055883305718426637981624558272827472593166507540591543278602957070211607589042836839700883515453767376433413033362229548821542184273722597570222763667262227071277535603135759547304328603824440968109550634485996792562958441750426836561769135655891196130457276687786030082924372408556144707195092677102219776210359062510172108537933934812742463490026227741642498217072574904987183875659093627229227004475283771584264075997624041808968698243780831916657419568616817023985328386087433576855332317216185134521805419796243906469310775576299357180262667833494811126707909094838010479802491518682593425194470535232187453171932078539052214173337882934020616513362909943701313485778405255788138191050251051516643508310005107913740958134524380671801550609445718011971402001479282566390529047891843907309415042397195268748204276020280187587430839180571089846759316426390793089514629526306003131527212382171483227926867496838504982730861248118259565540281996597239248372524061299403966452177419805573459597900787620847670500904643656726130688161933035868201872077851934470845218497717749872166466432927278435712430364153597323536092127475715009162680724741863637853476626443121530098056830760159327067387700819450523576795232183617779835407691275278439510053779027648107065547987204934610977052374962790209980655615733141772502535966869365691885462613922260041156893861188046688082271901138987422508668685827017728904726438220029926122248016325378318631925352525003909001125464424417181023604221517612776440995504565257145807802346756436644774287335850515551472244190725770965878741233084319019741848202767507237659905648923566772569684836786906736940372977667354924197398246051864501914646222875014284565976043475880778066567253851739469958146366232079065524865900477343788931627345606116894967454993730392302823964850027647072438191732174097075510038890531810358980644419992026116901630932688629913219231573246424879169512414895020322252749630726702674091244512527796404408556632505509831259934140342973690589485752238990033527178224911173927945841859766116873993816399881510995251341263238015998603576715409269800260014281648113583241347476698542709422736801869297777150613745917908015947566362982372508128912215612817727783579107543754063568388726973702284707262060244443990231892013780592271291006581954413184094005240081187492173346480521221129263177477569446197443521354350352168052272283871049705997398452243790121544536716896482598740783541636460243850113584356150393660324207768570592893709515186315378263602928165316555899988808465141807136114760025926568066902115942784270117043425133340290932335818907830487219250303639093085603533555590941623433674201821950658410596465545109923574929399816675585883082491678553082792281046398442732558089601191179807858663601505608341429765826406112227508857945785917404608986251613012516255744884127857381720067949808787058247633394378537731520496500932990571455626009100278220232593375125406213225057528319295198002398030021727383774251451716290654890076608560674411800847055417244019897771775750373490733343955246462295390249430394525639447400666937670919665826271602219176067211879354374734209961224944767681591470389934046289505969830057424837020593820909984701368674552331997013621134148112016006723259780151757444279235478087203817300393227531420645102792431998175162461026486353143643736366369517404049351720428627106077848604450223800358545979208688661234422262737676078409149280629447755029620029928661996211398974649856142976662208164170135592007317935326884457279609382326622446466494869938146385456703691334537410757267934997366605814152150373848504146083766149721479628692259844570225477405465415732767464395211422339312880807128754920671502084018937739190023632368197676630263416592407609547350335229983457814670583319855425024765149030508892098381382812420960024903158177840456340418160950933142648597827549311014665488752043356178085670028545788210331750330419198395964911127308851503784110811001461019256953916604380134336002759804519099011155507162956781984346869769034377169713036345475777895267001238500099553343619151215019794007800246714030372763773441858524164847263597629348506388613142548005066683187280765898292050831339471129012706527400142128792882773808895457879875241794095707925893788812221311971394391873648876706157193300111819077365909816467396795137257793567742612072450914687752092156886738229755103738393666867545028492651835992733767969071932588555196788449732948886606148841016467438846051667167002176294031371666907445252947176085925485180400329294242942556430992681227191632709264735221728905511721340945216424998212524066309972525704060169833040658572287920309386612078423142886614280585282547621207239688198345011041974863553587081401230329257859093030235869616044240643686377687938932406920495673239839778697921510105866360995927655437112419417073604063963047257595807342272151622079778814521405292524103449050308759835938066086733182797035872087653885663389145078787953143724186443972663793347860259899898774409855996861022951238846742917960446696881363254488602075026403295475839240630361481155418675644013998913355685288970902538005548786376427919174945004701485002256448130218271494652866871365151788757937242616726840511361315105397870914019734900240110305725661603846755311360379782175869203136774650738589901607333100080490958739366515032658003959460050542239305184143021026988159552843730298749453776872085708547659972208784688747506169785499972604483585351055344423530159053622286863876474162961415140472619043452471999673095053635929978947524608753364540490842388492641251687516408375232727295227032280299123610855581380754207564573530323460342680997709890848416531111072539463335914150363357839221404670653220715857344645986999685293367699910769712726820737098449828764440087219835169420105142335651248069752043042993990099781789286887135929132398842935818601232805387364565656433495392045775315593615184087499295460590926568026971987986689219824396114118853944365098659325098330257955610178051803243594718768528690203007265822802181827458833229369866935261087147106958733434425098944568231691750115473863817542469565692496065438903068299481831387538209392886054921210765301142192786352787358145021383414802670465829242882746839378525964383896495359551339541039543414627379453378785318532088849569885467206843922200548870875873880275304174777996054296049085017117753037858661748461393964383503548295136286690078863638931704301290017361710558127564937883333750511388860173639505321092489728957399674981968265911557460763455682994720895062593257100580675471824836171926549748064791904213775036448954919359763754280057070893845536761959739004560103580793172745129554196308647265480616416175102716751028222945272655266840289531414499180383389065072197830434793695415164558288652554230144424464367508176215904905163456950846830100374867213339795973183550917376896450354298931340194086599046584973908107612673954093951837266975947527059882620773208023989632751991758833871185506667174441185488109377048447813605226358273675166343141867077046571400580307954099006113185040907489197613666968542754713012610827913386192983210916153617058464488834490495280965196994116796559417068304834177561353255503265412840347943556445247929173723946808126931278872791367455981088713042364755993014293133677419610977987878892967330804903205990423990485613326277591100941068511850415903553092448525817976583045413310290073488625685843016021314876826225994344824901881780917766297020131642267014520013289302900160785131037949153566928391752002835247618509067017755272158658197843715749070070415096272793781128046643813226834919316935224596007526016684548435067087584098023336155931153194906996743713988542359463036798146907401693684024525228479337062967409651382795463150574513407033128713315856924544414999840081561943497195927778433815891773178489904568454431718340443320725113403005242114145123822854279221439335011312453294544515786314800961838226135984260123247042754755264177557395624293801944004400725904539830983249285491325039332855949486049967092799237217611964690384361997507960512267279673059848489051027119950653214828073534130237287309667934220328231354052059382205884486169424822422488420573398115516719401828844132287996087300171402644961175196450430749549510682317467824764369005331790237636829606651470315184042928098317133268794892151853653741276979739565107439188887469636893655745443864644374170325436131526373382919250426037991719705465987431552226565990601911845580647334826988484740596334759072851233107152910677473300620554592928986198231875709807020642559579954942420275623623423950480121566014976523624321287745984203462786114587088323113513975930901742159079724534346314861503068681835649714128642504848870931245632200829475852837181157493226111857133870390073714909893305817487866393311703326628188066023103627516166392212406655358662023624608875989682233848172890808725328927173319654133733625693005153575432789233543698756890709138522374317412514277924286189109779706876267632357658040581261792811220906139490066990440533033207756762374369574204216635280542595816878466626600849277716229716892746532929401972548151223934745499579660834620668117181949672267922932560872497641240536953132148931245825423257083403385922323387461989717314651144050455510545485528915844209028674471321585063047782025564693534607572861337140426327739755543005288978938154573424890700361321245844017737392788796050781620653820587075685775377424234106643625329340150010527936431080058698630627151471202731059154027747214780384785353208043579570623836416832695620978475072294378610863243364584226824131077750598636138171178880331396611609660336538209960968258473857876109821107583098591229831719799099488804939009901706600540067048907325979832187644848338118861453640282281592086794450557695596308750906140964004641957366351068901763502793949388255654846910891648042988956758165719489977127225176472893567024364976526212598927308440430134792229826436895482914039121746051838261480042538205134089901493423300747386874485437100082680485730841862234500858225088240732287326451431844080588160015445038275876621924292260039295537315122981247942571034986459413197663124791924948986676362558989371133050134940512025104090323902853221838219344738100119476584718591802392780244850075062790464117884202426739829261926131279189470606213603901862454391946732141032094462414369873964958102994861618565610809689544865236009959217558189280422365080909754522656525650632783199131349536290152984766885126705967211550972450669467717561165699468331944940121127548038101583200462399551698050531588943217890778132659902768736979968263590509692545925276222828996401564427454617343667541257231011302142681984008263857592056411886885579147655496932212321227217738173426530445230469002805138482765280820754262600914645173772293710709488636566925058795528769611530440182009781599417122383132071861650598722425942520176082078231415910956589388390708401467460856416042746784058974794711873720864073453378373765128130886402660065001580060365705513684421734862872893090101679016495665372716965974915791933684932150758494413323464924660819468521683198095646735715911698431104484112336963426711065748729562555754705562008676665901914437006402830742599085358292828986198744530665544994462371043839178319859608493924722277758276152248823521362457242978231099775989557653358144437085499456115237010184584186025764401166784547708351863647961243529225583037351830323836127644376728808212246649919564411556756687604139241771733334571368674023610896210762256757634866795308119300046046041044623510590563199750101814880928839297968730210888038040969706946157840483989732658528205205457187199058364575399411610270786209549211007566822637988106274964779921818645781493866643187690282721978891501964502910688141133830811960342945644706959750580095731865127636228120043913819724603165445272584632637763457078160336298062970516929629781164058704776042796657369951965974391463106090882787163289551380892118703278337591036938594094466499822860692097711358694972645033849380709079327943914644697330569250687923915448581173080417556382170167059325209139938819600498297432356948351037681113715092431587573441389359289433813056666487503224278372321367518441629394474967454304049778442460560792422465831166368591503476116079475035919463100169235574288778162241452488836797097386346981186622436529026341471551318014502421285588966422348459503040913040058183970061579322240795375487670976837417541425161476293278890347993087451201277757919086861843525344089645419408836793236729500557142682637969449653764965381030134826857494986773554003846235626708684015593047428785313129220654775940157598246629605528858305971429040780304017958985186422848578143895046158765480679624680446463028050475846558343160253560144172178640273112126008676444117132432094966146177927132412451688700406948107232648847417787195630360940866390202713664221853673429068924854996332067542074091815976202118686233534537975176209972856172960366294181025245413036569523212144282519830852561218647419566405658925634829746399270601444315511447760939284806998700053184258790581867965983706095766174849242781642236406814694005542823777830594327406368377496419376981879243387253227905798414637453601540660124161231792575893969887008475960883927212891848987846992114819877395035125745712562686693270456106856922820075739371814268053539140273317151824377924466934923424557543143714926047981331366961508721387540839600009196320025963104008021257003487208828734921349391021718083893967468336427521630098528343877714456764421082250731458579984537501057430994856824783581327974608507701799861883308453980469806664372938940254598870052245273365116274706187456194752860341986355750215499604675088302281265952950985242222669201450995114888649926087040165914536346587800385029879543818981223757856414098497463061249022657352557519662883057454585687313415322357511496500947941812157309829016396974614019704359825476060635361460776435945380404573716438064838251189082684792666009249699198671289041207831664699765667692195534752301615407673378029217940142476495165305525386749938002545126146484467592144084777018997650692273201620416258049594433991226808601511519346374027428098531100844160966245556829823117960866508803914572051286317008208368609609505133789960127399913701003155509550305399687117232581090123999126681447360546542795089897767568140049151570555377467744483684276013942300231054577456865799391205072889080803167788281988960927048411535680589539053371669347711584912389700004058298803322726443302778684581699519232185077529916445056689608705441615888388202061181751117648922698758060987739076033037114588367204507129470304872555333587269697283310087660272168737630047285184214610799119059734109278709828408919573718680664859352864100404531189110105597534192345240622238946754336577764520091457253686931862985305015132181310550334899175030741154916096316913433181587013873552174688583648376718249174625832972615156363142219699478664523391030584943365824565832413920891066972778126230032735574606727867010445427005461137438525564783503560104292304124820437675942646338385851169794440544550516785177147272157133816943446711073107852635101509138278793958990244542157869918939142450296513849177567012270442896936414906911921227474872441044589302041372411824923627575856033362125899838630004543893988635039897306662752616351503612679500974512561953812902874268076756223144326567306335196151350400406989441347807947883755470598766867068269487497353213145438604825455116530541631489966544521044291908451612615984467870475364149937140873670036776445240514412119804779827938354065831585056112651251729876104165469313400892174317849880002586056433186532392002411338174825366941322334103957582540234923954873122462135845063690896032867660591818523663196361857593277283972718188431101890393132669490871921219488609771023337716231541968060718055291473344560957382809107649648912012781399702387988903602894157962170728493560475798539360370959623281451900576993715851986205444562715438656699664916012751174592674150357222604010255250753636205814388556533518814417475738977652994549436649908533994940273815486112858725980457158795971044546862294790674987301903552474386873457951539464553941684318901963419604418166785882072971375100968126873860198995233012745168678653798015634355832788928517273947215672938524263398796026917646293917335563866762237596551460278086244429870283321908505167245477779201700031528067188519621616011099764318985943362251115754909778659664409784854116597532744324342563748266868880867767001954272543679113558999928255927019131408335231578271967726151722673427989331899158026763706112730980204982854685439812610222428681988881542721073385899350373804923044067437185327692727101638275700204994351959646482204528919220908257531288850745116589978558648577130353440400035930233680115571380313835835554223691887630780347028115993917460954573589332495542706505643912649126790483468123522405002350830750576074331661623322705815888529912625533149673116531342457729868570036112469512940479967721298791651115504754549574697971443362317645283189299057960449455984718765683852622110096205216914386148386891033069213823697885658581605961493718004953943554496834811852773829924571738874386173433778872092719398017110345603528697811663585033197701349259002952681846526874124647513061384495492244751470723270619448832192110638085629432877060044360933675494916978765761234936242135474997212884859739582242988426204127840649230516518606162752339775147343591234890022618167576800654388260276053214407123378006085663540259022724580672202243274421510787898894218088136361488868850986914344374877796835637678304276247211895406986610810020393407205480663050108224741501622628532731127733870344989557378773593090461930999584651398291156645516574353819375104814476208375531350164108378158926444809062673927553575892023782207379344053912743696232387245534438751267401371503846060707238660280958543675987006889899152373754267645795707249000450415874965576461617023864731610522800824297120378545199004336487888288028150842812698105481834605804135844824190890938475541571557016132864494006463812139994736174559454227906179766441853344333910851754801249545063327821848130244881206141347953601627968072239805080736108213478505355655073850041197949602980176173724301655429461324194157834179411878964132326119733246761497194735262997318559932824478458360640648249483929650212332033266331731348785281433915772598565399229114345075416259882571423839277843254193406672265644818856333753822381692140938556742225927252117082291114226483798369349381356085265301413735894226494528344561944451123304298654011270315749661231509903999274229870503438211540045685712738165523226214688629438922477807685042931896978478486646909808554151396137483787677356497443517282223583662818433459014195456478018808100882323807663261551251223661692155332316487785481141806926768266452446102494864004317084265423074004549721784387220492216946078424659427866294617420751483327216988994281680033989876795170029246384810786999764725362066111953853636941609804727676427925121385670206691837858907573757574376990865649779104264043016456763034835402838468845891923029200331476091424124054132037270184470670259033315438718292495864113983431989333369049229115422450495080886723909994154798988983592192915430795060228009131364205949328167503122085735708279334450043865972193461963440751330516492860198444068733243993736306885736901488044678227351795616088990771754852780307478230972457481479555890712550453186556312060389575229249129916556134394519396585999692060111241576730513823543195605146015318119250779206561389275954845878464776376015656498380449671312764007808650730717273068072987380503518939011951110806854328254217791016679347697065580286605208694089461609633550513041400464461734236466178349204531385440521655224718504408372384337315723114379897672295465311797646529132019740165395361498264297239081273880816132315257751758895227583200786211910599964523015457519210550223931039954626334151207989394016080374450131800846041631190908540507108432455329946821498408974879379541264241528569276348987931153136942645334726721974794910127579586499956867466736209792235217151292561152230708024282831635939469879546131923459905963278797004013229223186619076465771407967132972454960233192671763724366616645950356465386196029562314065678136440831677481766333314815539245901049050965600925075763435754276313380514642633301803095029132001683040159553365776954896826060220168947274201696935430999658386386470611905927301740770350025432004822628602477571048407487288150608374397148340610500597109378416950191030722275436509720487259522343822587806280032365626839264285224838427846698593351825456743907091833812783137535219152618871348580446350776685925653243853599598188923765911387008175175403583606626232425145698968344656943318996195665743149160037292181090559111154909838423186863790262694104891793344717289860555823628299046141609384127136431013453727803945333153025082556993980893243893311622569259854764536438444561646652271704776100074123600263717852896192054188465632665505906580588506894495483783518881341464155180544483793623946236153800973904892310401277784462974124896411213273091831471259246536809807813116146026567362113280748996955726199083423909215642778486933567634061578784284928311939436584447047786481698578367819110371054297807394110885650300389392562865459731651265069802293853838892828252734597477763423177471180878160835401315151104213586985938417118262427158327430992218301834041712576979629311114356755125027467769813612302944179365136822291380464712058277408368809434838669240053902093136829711587403919197443994003319974505891811776226166051251567412125085668170745825929855953970989035703711571922287059391519104395491386568519424543983953434381550255750522516245039942440191830229493323776297947586739232885020076896865448853698527246509763247034379290653671689634794860553515135979979651818909967226133908712527023885008011630965178055262345525082285353331275294689724657088323016070919938831271944521733772745969708807646230476177458031154881708584902914346884742950546933801664168417077855824111355962676253427912012727364653465414937418348852481110554749730089699171801611393051753581113782873664020073152701995995264482250517239486194091554425465232347749447889529948174849804474842205815221149647053701124625156061708886247076520567267177653896276237725633755180354699406108537031437130372628357293858639324313088801611306377004058479164583459026255471253067419837017729003624326093124862602345116324856060397479846951540786561754158548609080182187163328037063351699677552543065471431013038461742303917198681957973426987107617786091039349880709989076326090874750530023558838067102878310541138485889701200687804913579061540246957839660495979054016724988004308810869889130089340101361840146454482402293339624355518286999270002194492290819491453341218131591877088244636843379955232792254364546391152743151512564956061359663804104468372390410739135680459511243826558535493298743634958303963779101439426887959108556436473275211298502769250603618342052007217860021767174983426372968756651528159463938319407585315170310283966892828994718875905276401610137792890906091072228239777208815341421152970942321785997315553042327298994873805058125106253950874625184900113686526939917306497614996081525270081141416565581165275068037241567204330318994814369682372280751709651519979313268562924261508695017777845237536506961072187992007347298377074867966343993136680092114920208206894332517180387496560229289519103825859644427750106697857039557439838857358468689326720762170806812046206314779623467450910964466699118463711087963447358173755233557925162560571094767211414112438512651681500221447893231128798841614018822172650888518334887670594816798465256469618157935414127623301709509317039229023968553604587400834829323454157498029750499542238892057888528345071761906011758316535126746776276037187393628245021390832571519561262434150840262807831511806012353153509220189860089160058109770245770888883867029856052571769084706442864716470678257841460569916958922591881027670564801375922775542084236924117000546443603389600139225161450376645761655912330396147350068249618386791086038233811505635768249756647856722945588118502783036407598335091965443564950453212425542113220987591982190961246654767397300290184814322771451766762354080868632378625225021683104575859340105775358984557718607297645551712076069136143932459197440123821417000658531045722299827012491488808097576183614941504621631349616425798952840055996381664181389269248278167388153218695282740248733270660924016675718980733213834743036595884625208521020345489691384795329787281868583771521017644817802410443574412210610460402463936059788844084498870964860993684489177259700801107012741151036306958553622158604252982195199562707827642357559729253028905299329120578413187668765065091178414306217435018822804764520159986579413467632936403905268826629287543643489350763961024785731085898855559585012976828602183645359749639618561247260723326448654239367397979229210265199214663338906596461108811780178306444568565074631827249681321130899072594106441728138464093773984419543059274517114159117396858595480290773977000479434551377673349220701823626681674041219863858145855247411611418719507090169639436681778316001418331360353695035477151932195019118880575614742366106859909538981377580257451624619561762675423593712111172538390018984045399992401934452943222338903417676546795170742963004054526059325378038241761519098408489958288074265711188218383240048941423769670223203609432211017316367387671981727021814021335027504427900027014463873914379858976144255737498309977028557243295175933018534820863438525736662564751825876026254628756532956184099155539013258399241300109097749014690935518625771472241089243846773575700525520530605702504532236438972159055539621437988838322272501219080362554162320989427124456506629474874352469649740590972952087205016855746392293349365975430131835240380244723685690159478444893398455591614444654029952470100464218369248083954342562101924808350492188097934825324846719692297533341594586531897523580168660784217890764925852725047509581483834897438279991040479970838842206249904982306602206944729783124617146159046023818894252493111158238337347730097880562618579511991307080100389153135066913169675148750335167022431300549812245341763911853188892535674676136799239073492109849786354573058937940323806506061121831404086806165137872324070302697149208134688157943595180431237961458406827739081332022042463418968360333206728464529865498723517576550280813697821722635098598834563087240665363620935293999655398107366614408925093327799792265082748471115879390790761054840814057262536798106178905846166453507654228232037725808191022185136194967175580225344480562617166433698555527473478338572879146254485575149808182612830110924588650374604269730970825795304835269008284410612179117593683902057121204105329864424656432815032416754944093421180746244419114848592532867031704675866688955673350372911643068000129036668551030289683438841786466831644981693307548651394527464060438498392040283782624599074883170227448218819504465115778456168562619106010598972579396322349541765864117325025407179754092756491723150126427331580950442016770257479515464409194132169946793695713200213729091015045828176894822207395162736614124259072091612383643208773916897259058081178022268408196431113666411243180411825829136228805144787248783390519865458717925676982256963864148483595686371165375311775886357997430092769074486109688579513826051196728609548005244416150922421909669265616220254889963395923939902853804563693866327536917595975516721524972427814892509050881538238612673282107619096315762480083631710746831781830921124647803577776281431787438402014278994546619335333334141553484099169544836621326891079525571442957702645172984494681827908405410163673883386902760282071595818834832383108358107416366172471989273926121588739469587763557117434899762593119745292754614163308302304041809575991854399876244360417423827934725901401645626961166496628680345234318908265831031544330590443461568424409285209219479144320148952145666480295583224663660442198727249076895786284930837507939428353441105048100057643667984184969615266628352367069948453086091576755674875459374330255410005935340279037272975044779483799218697667666387404086574506692141088679901061499486630618281367089187979999008305272032275234429023096072271290709453817981943444484251320630051736989811269841815154743909409413827572263450769414994856105678170387339519252131817917832665802434246443243877845944890095183864396800225756090336756232502903558931423460794694064571883594571409525543670722236144664840378478604931216318520060690609899136780924394205288576918430983878991258646525331504455231039957243867057712513295060638097742036575451702411512368418299752529630599191782881114499601875611620096094740670463192503487299333378160370786682950102252231972287314268440971269899046870248942446872287156572227746804451738593410465532229696745903974652369538319711224521941504276982387696247312261770160585221132420863877025577002007091572761507788693435523423932523367647705260105185203487072195304269580675886197718128413186359648411881640440643470328774571120040454396867345810075006162900934342433670334943210803620868125272711211454082856350607672809776971019049700973508669626982492816527735091609066460297004144576120444233849831473619424886488675094593016373942461132806286674554221268576569567807442172590362413058738439345399415208532769479410402026112862024564660074763815767672955621218318012187751996683880896752636484468838935771364435590349627318663028719380355641481605638123441251671249147575816454727643271077206295897209355241753751606242195620713369509807985168513089981892479700257728716886400045950692028323214649955617736524861654561944147947947004214417609594303317317584230238662043079900942367482932984098355055277376722118600384188460467832223514837829281013982445635050486486926719026777207812586192943564887780239429439278381252402781833698750409095139800490516850120817276544320025435128979675174125065634978028121125334812245759028927269054647472524137564479368883225725031733205521232825223664815770909066745377553989894301325162209020954162694440082423370322707813900473552097983765700162744260021774340020275824597074561011532745321390120501521284611449619888219267280754452875640291800667514227689919044249180169653404571935650834457480078422407068320137539600218423654918910165234018496789994109897912806053869325421606068463350210387025879105593608841579208965387653207150036023700985924706203436845626694988907000329250035906515269071498731228148848760926448714360006567892343409455696058671909873075151553018523623106635819191094125425854833310475576196918779352124701038155403240465536790551665669344912855484601311191827648761185469806176796763215944317706045487253992780750940375837165098695060362889676820674584631438283968644688785296358677455803233912229049291560914109940113824109200703684995447042474151721297168577096696089562243282847430834124637800753868899771950454888688128204178841126739268648950018161215988155092420392397753788870270677424577058665789676474473566497832615805903306508493847580272093390888949258716541501975167593293720579703696361644212066258126174197986132925546799955894041049068931704630696715527570752440509369990215439221564042809104515052179405323480604825458435411724091537490226904500851608887121922799304577727261765360250708203448638347537279772275658433586973145893758562069336236691075373560183079660292319802210654704038989181951214281267162472248348755257698606951960791068808128492668030929928879793529045039700538177057113670076842611938588410672885155952614883383798400718124896372058751489264670937388817409008328567148596084347053174334657228186138588878488462326459675122508856135895983582589429675666972252904469891476314300685304340922777695017197099134544452578320825220068977620893436968324151885112230810064064259904542380800337975286015532478138453510909374860496389857393951296455321440846182019827586535882035874043860454575630640404450977411756280476842890160826623106351944532896333148681579719776393805990776062092391335561462452674738995119642072832061236072710311427999040781262399963784990807836335992460503695679205921331349757739306822658458658879175929879236320961936844793705242111193018392636969925891102830892974092293704817190541661210030945385154494282716310489734269969481003513608821517870382092206888585274837304944334598106325495116710487160110536848940707067412607837530685396243336987105309704128699689431397943367518154362678922096399973777550982818347656979766082136761074387690414485391642955819129577408769782606186429345228312920265434608506063093852999978326806380374571110110517496368459564787366836693039563275423029077092690524583351995549834829734318629936926765688246386424028469133854970248756296008203497208766300631173684660596905629020865535351833220075767450306645818172462494544554425681246887993539040286223633443166715732299366980507422563263914049238231643554335638277321945820649719672736800142832451612915014128252728452844831545947714403771170085990804493751880428905341658402567564536035797628996241851202126312900431903529722388406128383356764785497570141253043918109632108798926943066118749079276451796843579532324401022703704881225679921798861890317748408250797131151920020117429180719750189729310221785189975036139140059356419498160158474696077602022273787634060682711287926645260690966027730425393250827837141280708331194610359176131377930078376307276499102161778412540906330009024753444909719673699822980615060282203165478280502664280007402948915635584495590400448510164408305629108657112192392504506967774560810241076067892287944664277014998848722927287801347581847010478798856154903820721800698524008250207545252023812919253237632944295483887579280100369801714933168545771295446232327402191234788473053676643813067082556531006324555787900125969868525862175501974238316730944027569644515815051092100678239239876703462098250229358053029515267227316510260821351747501445580790418118683659774745606902751901607133642918244127819594434844104303451383665944816154514355810778785129778628174985694908533716632986883577844078322934853065328055593258257724634281691206187814033678772557607946206450328234377421794752867370798440703384425166075445005835004730417579340352304621525784613783886848305166648838484944757655914414744853529177067920334284358289452084994249021653302114351746540154909877342730029405834143189657062627322222615569973882661952016508653843392199797368279135884635634282429353075736105225587936333399954208967782833519638398019334678536746550137398682056123365813252880048201116220777296313624914811305988085150299046138603742792136012894424752354536913333957488595227815050664081087193227195401986008712429360278552602135657798490258561979866076110138644129971537294201256650939844195481193676087634334314082529011445558613200822680392582374883345678725519843870126562443808771268168282481171682535653222148923495784661005709087701314679212410439338328712197233824686551435266792632366508481021233127724156602563079048354852059828100738986465771665401202869961671732187061196306003498638727406502045201116064962293692121080264808347806454196041612688955310340314825697405116266786235916151168036684119933826013440970886068325164519082764784424168189797436566881168230178846032584532563292574674000682949473339623600830705983590067501812306812647257127572130369009171798401312818147359359457286602901540500386960282517222262013683523876386900613798739100112391634061359546083834891005657750524869875407721578217537661122683351983371074759907638118370855208370059411412298001161125175275138590061019193356370951184613892193039670831630643091758653320829897756397717036178168516593629605520338383367441884799764579157885464414994718109316395735329644233148707312778180630438795850833427768261792195489093230139822237871972284743251882328186115239392694341308051355662535949835081844733299711392096064004189764613203483348426755121184688528691653430293477244521191101971468867651335826702624205759300568659820262370784836336511073556614652337081950582682946627113044205061417975042309798293336537793666719576164487631279171323610823162385631384517314190716996765128662504540331047471241062151448637373839104364067611439302547752743799215489638848832802714628937667321742974354877594592567888410246579630323419382954003654687403139667739350397839933927925841317891008604948821061709696625800220036177072690554285007062388549162229696590509659837416445526923398647347699055990385822861042480431081764312477939136092589234996271797802924086062906722098293638782333401589761670385631607694428414589733280220731050693940995510957677102617221254463432230899000982147201023142509902343493271501183375135514926342426621604927025982686757900514719286647773398545260163834884858040392416087222707682455054498095579141302887008860172156521007842064623152432877202007164839802186568292549891185192761796500165494618547808452781105472884187236835439485666951449683536744803689691274800105317752996452182903544738419197565614793132554420267183858974484057091731045972215145348146279429396720288240536141339885643936280840565508799633226792565432459208657572800404988192160774751801622400258775314717818127414163239578311890999218112667465663512303968153043859407327925996953925360100796681995673202006610860144066024082681099989016852895106710695430375975491154239175906162922461931770143263741773973215860070314284420277422283911782969377198415482540396132164917109122114481800973821765693885417180361332302820486591880025781367803635637315756789788693187492375364447272361619110575485978723707622492364416471577565104580350670350539046239993395052083391404248428233383584126649883491662875896940457429625328560346091787974106444269861431660209429324006836168502877454311665987344383413658344482489602814467568778600471842337936709741514888420788845541048614026598348516067267302436207820205219426991357883445290619416068987879205204064134073888247820234992466227879188862792866664856756658795569761553236704118516915866407409484169167815474389543540284014718480006046091109615839256330242196461440747031633360777525707203920811077866404385678362469910838316923046202088191332756787823617179923745314717477173703157703443221113255918789748694008622721215797641015218264075224083911864628497122845895679573639196728308271016877377728930357259886090364309990679087839338840994393858366142461895277850727356603295541596800547107372943281846156255703633997017667021444834885900054225779540423515163717409317932083651244727870329423407913670993029419588131068250994244438448434622456075803349066381834042514526751582075353912690367454789570123731530172961085620610406303556920655130235750696646729089932281035738654685899058702185650026303887860880326202561880237799246237820101613709206353628667530507031418741664260286411870345581402086066439765728332821210071535290394246283371432705347603748380550395136227016983732724860308229446217735389048174622462308908340745631589952805030899901472311599252478448295674006098249827398478906686842167829099419728876712661498629648351763380541194204382806497888253023667703836536524296577951319231643662702834950381702776117847448026956189940264626907004039256793135560188681087808912080712204472787340300266243962900848533115071761184582809729612782743073396930329084205090551370322474871505657161682366992627944793559595107038796753996664613420201560441853841317037885889103267619789303553881803654959730779811346239420780351564411306043679417442767116136022262277953918341085536131696762418578433121119567850422270626970482891415342589049664091226019727481485297477865005952595311138040563732974442447644027384860804600422231267732316102849549178009255810091097322925334472471118494758347353337178155984537189473450025905317077952121956507306618087310504927098916842718572174758542022000533068691621312694405506596579014942816578119876749085306139867397698801039159197835897045874990027049164511222486616641000916320436968379592534457063888418269205528692602792705330473223452097723330921025840885662649646852432753843923693846000321145886004487942397428762504519988852463887253383525044356056985228557841102474088204802893631466964588363496388625376264403066087132815146728880167122890988341706824453123058783246044061977493484207701545851997296303418960709651989976902758833786447537223555660947976083346711384923220568021264062155500283364125537352239099041646245238557185812227334118912165978943758541314660025821192305846804742171802811096467423319983813736905295307253443877211876043308506454689718921986324154247672986670847177021349153414522628334623032861406292351685984385108874844320588730242822041698726050650458160030934672331765659831012615981814762392710778259735868324982365338430022184838299965845262839754139574395614261151051714082376538037419973624177526964392185298948479153963265814620089543685829052421553778574654704404169182421066163857370900640534815948028825262565996678185375291040831355037880477479453442421379441953993401054168434227031562336704841917375776915998434176651037137274821499535981012050372512069538251366478580747434201579615009694302620302209655242966527526321642867022405715857305608520290629085692633495187034781470224641050262960211838652816928410217379223723763516165506261909841072999881359102804644591319145597898455586941411674289525846980287517675122349620702131449102331263919597161921181771290437930681593214789016929986438464159694340567963127684947453220441615482841710597793265580654400923231505434005135846266974574548372374058144965340165799183372566711262649257094605684901046171010312760769917094806478769337531262426712376211146017436134138203059851544452526154406340899700935342809218990504739685712008034337352447540703060596039583969904651894623943833497437863647293527081465526703073434785074390825891321210934734698167847365822786647563367701270505999890723869380417960762525615289613807606825761435113398953441590853996121503751040365784055765119685297417022001406263388739438267142976801638444828633338625304015408131703090276230062448724502491258947695805049508235074599535768775903545166374762501235991218097900865925051554054915805836924253156687364285189390360575461314775251406226569068735592843730499041926698691981903758502144286083542547251230225839614915109862086824884825432320237397844798658972195321652855904809669637625202365190628492501243749043263392099947005946053580876179734312015632700667512560968902694332282956694494434887189799496523425876015720471666543996182761282618702040628450224990508345272223516942388021500141655750165374465989344677005633004649926701913513155839487155220840557923386748511371839000109923079658912337509398299480432045988591524334312678829300717340955209098236658192018283105789628709305642083902464512244947060298540517756710931499913890045919241059613854764160268528228953564560205807050855052024025060715279428250912045381546083044018043768809574481295182738565180854562616603603275134143968383300460935042729254217058282324116919356235151453931877517470513699259394538617501303088899570776461543571756740125421358687690453233937048304223821583841138734825820456467064199998250848649367326948153916749143512601814257950355823396837983322153656345459843993385360784166024116068967184398015560298607531382975781318427529522315664920323969946806376566326004394581434630212186138086446585743193115889562293258500466663470604630393162422232610451246284139716653657546100763801213318182815477240745599434725681041100186468368172702534686301874030624966204893372331157120723309469465547702058560704959936331793220005522241858338938981080753930366627496606301018564653080517176388871484450966434982036040680365719916535306017393790482091090429320635526938825695438945679377306677846499063326318766965163790705700496869039847574352180735091913377666018654669918583689771973387499380190263311934637626435245408219528467690915685583070726487779075937517419707442676679527372227824992792070331597241941079464565202679601136107783745016423373616999224074857124700508393340819274431658313524969595710642950966585883836517916960647756361490079107830016199645756281352157408663095603542022465124496867589791126150280873439670958669658978027270514429643531037161837281788820219983010520526457317169948718006548806357590959517825580693854039081024824619547633557075073625451192524801153083245786895050452111640572982720466898706598949301076201016619858163454666176548802923513152949949107879330896078751890573993810566360240748789607713085192466534853580153738142202188931122832079535851405592307020804228640531335702123758224038568561531436203579807921031977944179008118159488900958527913994575767635746257463959603259933796817488334257846123532485529096509019386683020310405144054142900273803173962554281964325022046241235559882004268474967722926146188670484918670648075698838985897665688893843984377082402841289749280196386505287550628961221692776949078023185933174876906563252102024287180015602324687670981610231325924505280497399108376527526898521120332314530512008253080217495274873279768928707348823930225350918115522309674031818298197822816457973873905856406581315860092774792364444648310665568787950347943143793307990687859366352584258612751959346049701576188995488765978806743940809830928680862120621912004674025559060667856587577414106374950751335460018260314548885634845756741647653005441033177137550242901041374369641944538579813920883266046569638838887614630611723932035023592215417237186567985823641388886130264354407603346881752192129359747481397066053048682890074715493424754896418719413324606168160643711245886245687527596251457768340714959663491116192810233175496299171874116327141932901935658213724239921006579499396722068213991661271851539017985756114380189571084009504617749376841814134010608066781206904357119661302694411714458752149033485282934341655437226722963538364409611844311150627475795752886205957356549390369777168110184547053123038046270016068134217651883657809794428497016421130317555888765925029559246454105056865065125373950240442680703437291455548382085810870839642003370520650874101236755256971388956415394672482181051043595045673743104152337886130952335781234152836464661748540990531497268509485707826554212697005191646568741568098899517034297191480559617678957443505047957118911808050436742718053789235664087342520156797833838265667180650344225990088604760933407358186231300135062483257146360482569672230769681789356993270123631754546502235758006864890215144599024632095181649775115733212623190571155492879513331489806033248454238134799290787842660364108626218001309502816976608359692198015019508762452645805166060673417890627513122386825620691733959227549303400290995032374289691557102366351113458010661973537132307794496687271022133110359257815529931082674355431959588799777581763463585707786862268681256164674048691586122699379826893675063048877261840622783061990834680148730542567240443490246716973786145086238557986912935037771812333070877392029314376506353101326793835061220261522242318458710892881027777796512711685862052835393373614288748250851654489626065414364950464223076818539968273176548641787170353641441386861327349212245313997175761437335985395303593615987984217407879426892477652737525173877202673009593898599836026130211937218520404906722215815613291468434710672538668320664728401412918964540507166854710081587376768596401760752604011899566540266127922042048665282982401735387417180827468888381018093523201072958170586674606675040983398790327844206132167207175027967087404692249136902938131768576439609257193782700474866017169812161741697413547222498835592791455732108969927060396248254358219847123747034783945157732279954498202232323840349945878516223906834583994451528963444785287718744567093613538003323332557667620812064386988609979260356768809497323924110460653307805334354051428427927191469027744020627110113791785820151136414964877915785849704086967158470716004314003477093591938585777836821599236214546839111451236894332286911287959352600243963416883776847247870752237198248984581922079340997516237640886304131781287314262259144994795200532032884413379448406660466027259657060628788748616968376916969076087672073345758592559884507424434655562072387056239778086967638391418165931159084371536681936496998996698230509032010432059116321924182779262136906810379666640533296204239387852384690430997502809490047948835856417647228631778832425924651893731724753554661840703538955606078758019022168974493778889967937361108889606610244104900195699838623584430704814187930502135762359834552808516888680567991860275015418640541388118482541613878418283150620079630706686567051455561919899645365744891280641081590694253193375274973365824996809579832406659446958521096952405496160056153325085986781971180031386898194559347632910963106617397119966132880693672608877812800657208361958652186436872889833195151680137599350773304842392187935510125614923014798238402533153329962473570163379985735135682424554119248795467670435443262026233871182593826787776277059052669376986367132980928072862305807185689222228447139358292402911067561689187977873272357910883644639767318416818142510391677126713823793824862044503764233348633134084353486428819690968272528485809564730683867938907496919340321156992022868909991830326011873999300838671461051408220665180062946758533188541762990057831255003650148131717966486176691410611394478975318224756281508040129971171473782672227247393590137031417188911517450729094318182176358855868792406913198163616520414488469144072814599722467885816909987554997654136194120232050970458317690843669696018758995075658207402863441510348849759533305483553452603178770197209233369124992415927308951295310391633221310902886859914442704995344353439712982433397375029132685878264714047037537106043157584278503791284167300001643106474335047322190125830494487320261086822227393931013293226299067094377756075099272118822566992707652673316837275975599526592302582810997269147206070131864226877326624512826049287221469122444217925210542483369862563875460960552130665193507032476067219304912874380821878098056997859071013160643348639437624410581983345290289632675722993126240892800178794173257031181645851294483732279119520379065967085460379743222981447181963106804688444489779157232794639696243648427266573967692450450161047912951376471340124198990321933135132247119542763738325015665727927528630590910951237182346342767819032603638831619531159208861528370016556613767341872523577311520093706511259055720765286650403841181016957275826212877170487114050546815195536254139610198580549828454520170807962465487560755030679443762263491957592056992778785746193767233751188619483903647502697969239734921378238048217357436460167604367858481400847172557361687386786435647543592908972837456924165559181114871869651571484225080491202917540175196562265424880394968576677449411962884746544442145884916479928251902402488148333895811140246342448743746380578078412077508173731170216429948580101481450059556440839113585352224617399535558230527167167434728736920064655147985776196459786498758305719848877790071061908733729688048993984331194250220960374235828626538071502647776417772848970995956840913198528494300775794855185305033710677423379293756853964280296388205408110411146128938194327218901090756302091778909197210366454740527279593260222533887316850505053628870290501920217914525358286780865797628025492756635804316277425027899718639449591909074635599267186729721141060596517296877398628970808301730374419069568372951917582980895237168351154141342979174599578474099483216932216333357349465910479584958635876660292107604019941413601630734866359568970355014170018200188162772467888604918070980697341166674006040818675470458774671925813293270555662211198981450449280745998072545897678411424982764821130671243921994074335059689899199276194459569194704111231866176216151338623550106456508415890242225454407495989387338636846698033037740170357846383188966438972717889895943092750214776403940352175598986862193672043721455085972198476701719462045406799934363661447233052923675366095389538802796148547548533647150393294542554935973809971631302516941438106157495088214717387307951903973935017963809857468306535356688211021108197834988531207537725956415805168495788008030651711161782533022859441665899686782659380018710540545510066956873130550925496594814391979162736563009809850534205714156891136792784671908379670279029479391535289626285994725975635527491412094249744519527616845641862313721813881289841262025478198411071327469352186151246151123326224953848560158491106854661882706300899979017538471567544878656927713636898120230455193478603545816949977131301388751001443762375819142007400905074025454266170991993937684589541013540418222059840465482723496585255183804335769991265762444376032241791084258231081613087805642635069874052758277791836103994581068996534117147536071885000429769162854139505366652327854848211507930314987196017555303875001690722949978987267626552839599199294458250515939710113234979943473879169666145091151263723132014857943969321302983954374639618289976667627115913700698708698069234677481428882603853823135283044961914222587541596436297875628833129000335191550570315165372862840210764868175280339978249181273791547166082063839624542729545107113097567417415263558074480778354531235782698133794811347576305059953726953154418087054161367253067791303521117820819736262443288434841881007942660298109198199796930352542724705546104746565640136115716672423005964380237682714193049026779662748478724566984909535070097223567073975030393451964406495298953131183642688702271282526463095311862540843340656135207404928589436401966813422738287726030667588784533773465949072191182258956942848547181419535378645016072904322217309264681782201060452815201900845713687839038148006385146691228486979691401977959886780114981516512916644117986312305388917670962730871997584490801119091119879864368088873480403344275950309554311064038826321184481950858994642122922324166997048762670701211184416783823390521978902815483615569941805207725517217645396603906892648019694002857835920532451043071245974641128913718943871103130532442284360957922423649302678577082773896544283149115011024199623751283130221453743695805457011253999766411453560538508020440364258948767895746481822857317392994836400517706261083407976066887105627034838856744820594648284885730769014474101230175914424563774773362699744693707935597492784678441814582269719915649340042664128257393838393531133341003188691324391542589076654836939050976741801679513171206452324289182363029142226814621231214909137044392521419865136883406363817312171389905600689173510372046828556669045115127209548910954194054688849625475735485410716625989085452035134624932866285959267200879210739019969526949796813243264408230680758218528040251879495670611313630678369393476565169502483812226562786621787193137302942688849018811461868714289766691891872863760570275132859240563633580637002024104635091059398964431967822226546356810588274388262736380539098755795989377917417343991985158337007934829190360744935501710275897587417948138647199823284734405782861650740965391648594181102556826916828787992818937799910443108931422110071956395273474149237911264027782096783812083084999566555525915574407886133428025626184144666790639685117576293521513606101467513224250218767919582209787995241437699049439243823414779681932166355806523897967006247096728089394314748214803703507280255598138092160954513205689364097652195610502723325770491307337655496925392119289015534255975651346569109919192748440490930762775321713185821811291498803713767821709790449939943999169200240194884270964435293251622614015691320874700987902738301634183383870654661352548578616581009237793133509740140132656385555141070040501537877538191768329649237127499112666099579874925505327923558289654634630377290038481903613975856192500449006522302238623145041154257918010451292998319044298047360854928185965238886628462757169117678375191718681007258975205686873105945603176185626129726555825374221037548610867434363628965476551284744696373066020963738811949394599782750062211205813747511855475837423792315930604122063239626974838370992403973388156790120432906702490862980319016008484487835832175117181460988519669084450296382565643717572340911571818575745133858318883194128860293371073119344187519148342581942728083315639137329830736789766672192967273395056089220646307220739357774438174661905144081398941162641970912526279639574764945027970545350050097148581308106158453890923306604271868484406832711293050852194156113472869830802864017527235226547805964325887826638258387697618361922238659390114229646282868821966569565770911651140799776770515202389181279820084319831111439938592362257021815611000920627990250761869998476635887900348660004093122568455852325445587698818832964392904808315706248815418042334427224686928400057872258114090678015376983526282533109744893558988563276013160374505380386960248686206776273243790880621568860727698920264056290542856676327797907036344519508207834306784664233088080378955813193417502125964713505128220682371233675560648570766895469206782635902586850247366975076496551994518837681956498433845292583047251296063114752467252473904346533427080744717659106813032074840518396719846796339690533338370516382961275497501162130133079295621037453320730876469713236454206896427135179104263406608195994742819466547961803125846613006309964469464752040897707476926593455771453028033608925906910439926261371696700942156139648388008310848228388291931851798110288892878019571266484413075729506844179952467761431597730021421252001073952240141996501630895405266724882104978259762933140448242184749084822515850392238903095502669809215073540510222596062912640873614816099444845600819212164585956106022081444282712810826928035682126749036374109886095678282272583218998699475677510010438388015484218926390735491267935602851180914155068273788201000426501167238150235139052495750325093835496195747739634157934820992549832945557481089005425121804190145427143750189318845664305443123652386981281021356873175400444871527465492353066450875282730298916861911203115210031720599815019076076439433182638358730197861190702104715826557826006770492339160916033299000010820314885611541049714461113896137266146172563349273746392899691414853429155669361400554044055395022859300925765023819039783405040694207926492493280996706812443559953853456803198983054463877229938169626209842533003436669768158004326805808473351983867479436805296921062361554822375785937535313356465004298283814012826196178471831007612688701279935764019378685024068361052341592434213208050082351592030478679124888813456688506905860647657420946568665363729648984753327343970889577699533072137067885623119507193315992730912270403152980480321045322137060917200945816883110193301737852955511202845630595732410558635594364248003914164603364723160960680065742190592243610490943322884384738310044288556846219289206208130059902905542063961808898151670718810313938599641986419800768145642773491548130245669469354705153993456552481971264107796501336785300767299921546077180757855614727836817215654887193017140808022426977194801199447732602040089793429644938439588034103873079177194207274051577624886215455543075586942002766892243098671767470964990097534115088241849325660407766721473953977298781003310396463920974684838392366396175790476474790796174845619802764396834934315885050976832630349048855196424560512418334557864866121421712019690289542384232742871200523243908439569673876509012687047980121135021418650001946063996794116684542770668104687788958777609975271606455624142377891955683688112530742398706672033207038814858060438928329783995222095459627643309712039232518769688446819421455189904272891522763139079952774227906313915091721482158546114572052259275086741532815899848607286329794379571381759237275998386907494589486094334883308742998126408510655606672999519169763771175505109360250684925784716566170788690422576281489893709477636108200123756374128327113220985179008960106082882892201476669597175667335686089907820151302395937550186623346728348591902443590308546590003305050127995587189571855426578534063037998843251265258569537751703039844536566212568847675430694591732060330064202999955925721980021710498729699764492851162939244451291233132020637402375159703085897911609982444615327745561485733981021261377486796374220702512428385362447415696564636139456787191638054338378760212764010246794700566191940333911869453529716616027212650982020217405691817304385940866599804713930996918570648021814739996881305151422001588437404224585368746606783716267570175893619797491076024705834282759725874871907102136011670181419817171680857996191777999518432734725565719053990081165467730363102787444014610330117217333066626997265713842366490245954283913696574400635159893802247412305885871834667115096593566287524807552013787703680132386976159276086985943405052546468090728341332213033127800715982313515871382612127679436330968539104236449796258908484472562200775681336730686616279703370511754452870881786936116561975916648159094061087929969249817548522846795839669350391479576247941271337379048330098541506634533036558163027190939175438966459658747010424979918799290487062349234411838231846326219421665075044536081292947259396061202685435058750855576237064420217560492663390820052962829908638649991939822774962072652155035023044458246957159362499124905870485872625429901992271876943653188804625382047629516147452201299162375777241810477309514643063144433744611577046494513767367067086758313930601097743804111918765951719892557442826425570699931243132366926548749495114861975080748878257908370665367182678845063091027749922371575085272296636173473146353688014924989450993037948697422075872564195682515280916062976153970290037486546869425330666821331462480557260963270278946022412098240932594752178676701899216862915185561720906033303528687814948533398074221210056569943572407404660790549370145807285124164173174642888395882927576102045912409294230533828505381683269414339622301462220493611344280289717068708735819017895017436416680431844404145940579232885068061851764418071382950338469999075948166731139978169889744617246241682094761351718319939689869528648049755933930268786392397286205300185594312208405250804499455875083161198611596863648027668536145495617539981303557638168468214079218291927017686081601195867864488918262380882593975900140076773783216197756979546714321462495024893123208520106741629147906445722478188612750212320842581964646001354159822632176982329189083601667243891528060715495083235359488903973440649905486681946843838184956010671597770837261916022060707449990704810539545657726761381977499237199451728422670111613902190358710515425617210082067330725397231919050925615309278766474365272521650254535223335070397920854073107972914107093715707287931047398019767085007488251210372520328989598668350591893462329842917673354230475279456870381648983549744495375893468651897668204054195421216996407136640609608645255813448188852197149183950818878514783710475083673136186461877798020604335515957158346330356412803122840819226905819195744892697820839401704712580640331162598398085430712049072135844414238546629441368679959057597807465177644136115746230184346888769552828738890715687243683251192985853479003896613191165439529775848985136001322441864774234340884561068061364211998750523696738115019091702222133877236909696096644038133340943777720010498090965778182687722607846199916309487415115631881706891170194098441459004316669433061517210526809300111831921225047870144267793473611587541997836745508571536604387667376781453541369822406941012337998006505057627171662817974295197825478661242758558895077123900980954594791880592599866198666312100242797326476878867493367499962526296774541416848228012867487081312459961809515075297135263943715098165877356909012658693026745841331999628985840916200352307122889370421915802963825847661600121026073380866366253753729515453540028708693123842123824210278516659114053600751634716164300801533630945587223406997526241343571313015002224315269439428367628559954292526044914569168273420500695703671156316854135946100248112344723999310647974592272875324887577710506793774884049211995166448418471296386349746736352943957617614752334244193792127981479828531532787906596252356673800080789260856252898051311692096579658327058142238623061997921990224696681816361449910454995446954537636784414689102533538141595683967566497242291971270921487217455275874059463030224104056543779250236368490461678357718530177869718283114955266577164316018517244734556830101964073798749416090690222083162434683864781775968918673312118581057460954060339282233001564760123284398944101328706322206864638784355571998540431276540202105505168373681034306094119726526551435722894064774464115997167612976820687744649817831442892373357918322804090794145409221656221576576046276796794961061527231300436873696143317553027736964157115361341449991817759953728513189172811878508452659651073350099820024987659451507642000935254150160520293158472268411746840085250333741868260708826991923904334627773035051772690777211097535153104663715987112852786536176370406946080990069702625962733783421192463979237927293707729140226286914588450425520725643200509967026279394070955660705804122852462501539400280692014231993375018075384867682418298905304078459965507015049040056835446362084241314748314307376480757957729347318052673416272800606094498303953347687910773056480907595807816764916441248585515097275423060091324428883224792591558073801635875792929809265386835138397763912081814676410448597658315754616049216103905696003269784357349352953408722766792322692507746042743974054800447174849611814473846902661231135102073560229542100529073243869606902562831462648334560620107049990546634277876551853312004586675032045883562590290346399489131433844876441662528673226388551016853628554974147535944906178176391158916159955846915689966310498249510494767736181094799350424029933233162811553190224062423226905017376588285929861385111792031415665779934534707610142188701352465340391158416380225356935030457070981231511352754903309708746302095148150775534233626499957303785777758419617888945183285821140990170190976946608203198965145962147024432608707706933249647265520351568387353859470584410375767249125428886441270698940220990118205830611099370129222149601887741546328657830415403912147488339445881562370509417605701993281122406001621094365138381551169953849720763383869575291032050233587143429734052876338824539945687058107817728273992586460297738624205904281270414307756576259898921317083320758270233948029465906993612952286820007679757595565434193656941614949951891549691655141195863395218433737568273667436608160889070212491777323216499878940917463796807958317540253341007310386736260587067980113421069584519520861946392659145852677164647762521456917063236161683266263857919512661565185301838206349632059149142888622368667664214359747909166664520303692022691212939198547440924884383736809357341207413712295136874056094987697064791835942297454329553100396148777620147825749469952032088225323589261336273950656686587021947985326739326416518043002497531369860520678731752685408035648354094311637838969896105426716637329270881877831866231767727505512338424631107344146625283252155932836603451028205322333118393476844015944615243150110836120206320037066636078538568042838229458322981834074792641638879769419903043385546219990993632651430996820491391834128713363196726063600411165391344666132882674244746778595334266229216393389475480213576627766516920899037881845094114581561986142031890489898210335929766830123896195145208178941313139530201766541813892518144838610104414845161835147778034316104097697930326136177388058043981226173997948370608905619619615522186372813807119453146129119630159185995425780912833195294289300853999340587426594562435459875892579085019136496830472512162502170234385418136117542497638410304738076198547101056243056281939250875831621565932914637146459600380806834312726122032729374843470536682739132727218101926196217053691611085732949710758486419088458194128132100488278362528185163447986130112648353872073020861197103699784839342340608875855590357606219404375821260585252268842759818170840665904651426901664487201921837936102645723273119335573375842570543724758408271861671333110963023001450120116820939560511115113629969807830980182265576443917689227788423021548596608869651760319301294129435977757296645797651572690062569405156154896769387907097793256195808891638845124900687765438579894321731199542052625739244513244991797789789824823341754509839042993187108378038835531602400236007790161320201358305974260366166523140139391689182796603768226972660289729344275930491552789317709874937046786488368783577915327544011855758569914314874471203336390838349692912192982813895017076962340076848817290630931461381211402604357205272313032391083592551739454610025000788565152796826956949327462773327859818696239569569839789757128476098342665757333144347119111433098634271316597278701227791550765938428102550055426039492247623408009349573911445482918007020873312766334589530670591730608019124334106516302276871310444859668023006885208363108106157066210563528268448754669614539470064248648081632691012745231866393591592036255964175454425669990247039678701140290518620252326627225229125241160584562946764510124232275555567497467630658487462442755794979873049253622287954133212088141527071442404967009889491116187423525548483109938950130231949734020468421839785944428170958393325082335549046690630719893849401069195397610734584112137623409579107040164865123449458626960423952413116026672241434297294686263232029280787575206845055972984919232670861980502543688111028128646626177498546484707546320161080116462660181162309073882590539711134340215034923658830530802979873789260432064059849083600608224737724745260882769527104823286790143494897350353904903650150488628877939028183201311275460969615135876222545724647145064689888969935759181207991634146300088860363675687514191636037002672739033250331873113208036953412778230269446842586966185430005900522001811586732442344561828719045263418810702334412772079540242022187110774748045924201753296693575729056499780876231621141349470091381851120707279625285688528137162559227967560385537939507742511990760323183364392264204502598471634216954620277861272562336213382223856632268732232406938885416867576321601761624523897910070595055693069309465052300072938777574421731496990571261871136509169424885698007659500911494025067712847730106817284611225788366038366924494021180575134833149281331821618840976512064571125684617942441598909666202369280258870217005669090982509264829711429099646680661220064150176155522419660824371238576377976491272877577735573375908153910666663500028768160027720287286441443029419088505574735202667919120673114355643452594973265175285027296524603211552139613673610651078010924170454708297818644022659789552521814394364127084226293841098011498393839285789993586759870628958593785960268188088847091523916527666965680533122872793221627933697806703563346557340206175217545364689727529512006614745010530193894208632864003389313553025997108269275196685485121638285841582816602548271621228793281743815197526244692578730053586928798365669192717466148832889790646421431197719775895909435947442897847125051963097874907890916053915986864615246237262480769868382988867853377720107081314219298706605196040402177370720629245737747345328324309601637450638936246834417624554682175830824302562631028612574594412058953720687377759572501002524468620914778041589597880998494754124580535906106709160354798981033954684425577861911104685355664869133890281661933838492595988514436473939051579068953466428336609641230015729209534278563214531732302534042922035623549845615090342944970970808966148503613713853828182809751930457617020615147160807397542316253823752503067798327705043713296093015262454221144656010241018455225843221018523197317067342299711102312783084214766674714191330422059124832484300519544898168707307336255159646135482744309134667942830404040406757344285362037578375028632142491580357647623403446868761407930330978153912622226426076999857836641155378324099361616077549432434846141075031486628044329831410508404890179102141512453722769230273765357956884135893053847787538466934127636427459696361240189572075842487095098958550915937743609921564609811985286644730343451691525154083036133430198312568261128087888084389057342078324678219087673263396074509360797764666271396575197663949122996640697088424551913166218388064009482228444189109623043525026576224890627911115842367078304516218363561222402625709845214167881292932961020613922866136375023814283300454749832112127137693530959622220849280246844005995677217169551773859847466211026256540392409732943208444700462179551750121191244481781877304506907577065608112175834839860680185226287577028043257465066566140499783649639810755714372336331932736700698355161330889041633697143923441360087694127726948449628402565241359673478583778820378827505709035863742547351427189143815650925142587656532498328281973639843946661598783687975704856610717619126188127513080867283690864116020214876245883202394841706374523725793424307136803709490110943511543673737409651277493200737645291086662233078855194574121787991755771215399011072939615517553594424705094154556373958642605893233292623250033772992780386850732041575081336412537216076243250799631548717126025877703041288452980925662204981700654747901397633372610546621799494297709679970242589895761873329533025012155202471990112690057130388505908415383118614050034346207188307625993423905384670275411383086843238039660387194008154763039751443485557671272261886917373109217703516681993467245199756331737606464710737671556736672974390358608413488126699722117042035894102442691600710654159337529603770345316218270998134386129308833514260490215792684447223194984393934625538357173417459584016594702402275591593089403586145934902674182973674957972153659471594152086844505577758735522536877399243046387266943593929154088970147998657629683082765286937324993874357501164334964430790515098985600676734062540798984829884389357780462088128081538793165403928448562511731541499804132525362229355351060256015932385216971374275675009904679615856458942349589631507763929473969082308143901899374828325657656731137021371735820681594904180811664459213668526608359382549616850529908826294045548702374216623788155332575791735166293611133496906991868366640863165376880545487846414775421059072544941677146775984194301925877118943994351064947382210019483690039570724313574835644744263546823561701363354477704679412405426635093986794179727975421059792177305182131896004323764443506800934207532108384050932969081603922072823429063574812136428572703146120632687356827265631208433987000810514071575764350239471437888433397806268697604388786290561741696211846494093776357671850544203789826388065698211310890397077872416940755832497143874351911469596787053882372620769697635517641919114054331803185651868446870932922990590385309655496459501444148946046105802144423333666019796804274579087321151263151356503522352761553648269693119646047629997551556354982073768537222593072556830191993699019104280942414203323867503425940146139031648019523728009846320467257424981863926455618005627314586217311974098568652795836108557328663395316472840022870482785246526512487941831017280015357162703117983531023553599078928811316516389305815453099834525376518482442422481830882891041060705799547866513052877814270444978001999040984248421468254781737369953999393552452652427757520032502856994324698174258974901232565923229440813534665487879889187003229964297838543034950094054225780938679161266843094985963189185511758979348470032035123696110659560535442558615792207804791265976050149435857378138123561701981941069100261711030964510868217145632691570657657498912173403414378637726746623571812169050136327008495764156029640626568675683759457296065869796973148095474169039099638408371852098728848718841471213190233013829828483794908816247278922326919309703123950502952778511713244224612202741406026274616479018569956776059964785911814693145289052052790798540954155775219222496920623737283267940269963799625226156213699562829119686849746427410263304909090802200115831621986139720583784322738438995339119908485092328777036958909707549611750489681310172100335679584059143467889841036686061049356301535865915802044472737764954546813128225300224344254513508495803966221502849917239529644508460480437174042498185341902838963473367982140696542897749042674543522641568162077676939314989953849014666906112729325219992540486453851169987369430809462685204003829699226091413881211003203208640485069327956138023315198262943789794966128772924446494011293551244060520965087632756982475964654716234016812420051216854297056148495133435001976986098831745873491844197525199912079684155744676315439932347889568163485993779039998996579732885853215454414967412634296710294497588824744248090016825191170646585801411414320374803238010892270429875802576086937783249306229800077002521538419869288113031894358088550848292985199829400851737550236749847212026571273396255169698042110505203571139956430224610998261252354621323230947808756854757897577666202927547664536012680146470400198951162658795700866133959942886439314309587319388060909846611151738787631403420505346648414686632917279839672227443794580801381854555514951224480524346745547803903482095335990231756697420219516095816229339786364013454752077778233411654150553105525466825431494575456834786705194388336741289300117446755869402789831715815442676813449785659231421806534752417216401302111284070988488310171604923264050590679033149210769522034912787978474681036863809061256575560727132933989185866653098279784502214822251419317610123966003272426969398672422586042016486132429760404748570039630230848248554488090962394508470651919963658789496247635786483054528045636352493518703262779693332068100363282583514693261782128723546056723106705015176027609522745191413262986451728136699192341290237651397419740441829893477061308977973913556426679974607073410226935263050943053084735301320882885757330878792159497815490645834612016585477573413352504128485642052414360377539302732638794776127504807508862812550049852273068789107254326621703966082984405056624370738963499220391388007364817307390897145347997818687233178810588578368420287966005667437890664099406600552195333682921689838296647447282661926787015487817468002267024899441416090858364150893390417360769591649272509215013891280655898600437321952530050054737087296411161414433421715536849790677019917410849590376254730262835382892410089171378041363295261070741104590808583758847722193534033241423507195547647654707422844141944707890530257818711762445138262287097046833390999463178474748443400680708760587694623583183359002950688501097780033467490919781108445193142624939634219514864945021965517735394567130171475264643017411810898197435845909824885129336727346811920769171396281018689715766848661392020807169152551602894013495129674919833457117652597955711970126066030054170431086624635212103431506228638894071561028756262461553915830067072854545824091641739242198894607525933253186589592426712252696280142685955494674702445153304257254002985805244248266978076719690131405516229753450887891285547773213152753480714171571035922474456991681852476972067609863210269903148032934221842452159261425606573498560868589515139501244210312675704882525822028250766106209967897453035294284035988629254810016581448981821720750107303475747929162870217961097049639273303135208542386415223937697034066533426826337903471811926739325177095419681055416596673445650666531563069142742388138401270524644074657424298808016543315184814570596646246412031095421315387213807580911283982720511540769372844336682792156601075238868908945008458451109844034338535243500694028872525305499040754776855483465762562904805536381430986546284710814153445411113650604376020853816384780363908797882462009761649240838035008114163989842036659864134114010879309041141623652995780527922364349030962205318762512915171391285213517757406286908029109882393930616939613353684706331269367760196197240050687003835294074407750628477139784800178138635929816758085491755187774293983497477929507639125182196827576035719787194126623757651839768197339409819487737853956120328200813601217210080600538241877797868235250632143166984220117308703828097385209690729290013657897644044041184471360142738578254068983324114792931912368672646186065782805546810847640769725607343493023652887267552315806163605404630142209199108348366106153041014399377975986244071953632054116688621285687073704455754700122766735184080267048144898372181709329083096350208408770179715355838000408541790920518401551013492315281803327014196113175978803687585473912151465442056168882715600251171609941109694319935458912675492660541382310747011287574284400160697663326518639217852434325311413166927713531417668296892314098863338143760715667014504437762171141996498491227127910976238788045646385982086177113689701786277044127202566752548932708314221757363238302298018025967667676927060518570932220646549490333628051143280572034363494469607763252976375844288892609604588054801514579069371748805765842568456704579972940071536235496239259536085508870822160824079401184153719002442509168697704070814220470698209213572000247738111453879785052737378604499786704400774433153440417560483994664137726739190439228678291925075785494777135215940827192459328445751230622566171382415478473907488113929552922587822856020160982887992592428279876326768166314309106716972181186264660052009290993938194727511727840151143892263898425219814966758921938089090876018074787735864765237391908691300050109733170699127006803918874671209164631862131471993889837615038727996503159996957359898046078281780889819968683671759913499455514106880081434332824629515571447457656984831382959516457692632746272801286602962539734307909385985604443097517524009965365768820126856415328508661884053178445380258576231755848374262549641986617841060549165404134882009550001577824731485070385011607677716265970063995185157357114593965082892835720190827166407140413493389682755231193962198856380173596906587191141419867224746907425918561390314854053974224826154914610410931266825938133899134290026083369366314769144263943724607576802083010780601301887242089257725649878237308651943075150760397630740567028292529531982124883662068117516816989152788271804214458063980909328205863698929225741975661235142490115010973619636821698607827545146810257338878936143977693604005680794030281167091419785114020865845322991224388491346339933012071808321471590498139347185852297914131149537164974185418142186388446008727883832501903395674689059283769270867960769851908748419683573488494217477675802092557959796597417373485703971199185166712887210121589957898612925113799093961215448309122911714158496303549245632306445796096700726350369502502554726901383206460388397378664419689895084461429116795841037964976040230157306344580221175673459558175760928930776168138514791797192299124597116215167597844764461462378135376669205718486176593556518516340422212594091926487282913053196147655148083374649405422755097442578560433790184862711220172234258822161165981983588891106490907512086039958039828750845740034116303073282200406645952856486556187951614536884797776552683793779325712206602453667515357624340804879662290300806162207860353819812542817955546374362355514583654877022253741737158850535439436982429149321981852686874339173178674676858500177030986506673964153759725677739346287015491163869900372576866712868984538182404242457137556102239178139365741464309514725886426081854865450981410975782308498642351391260445183868668297621733638051355134624655128428757036318194935112717307424761505794574847351838186554045672789408948730915985338511533447096686090266488915252521284413933767412388813590420489044259042502451457973893604098931860036615543033304367397328580314619562387361738833187459208039112064558907844221722125680983386790517628223989344262173712419700971080977708292969087800186357601258393342172326219072761869527449286243103163567386023065176610858083607964475753454937129181284548459864178134794330781164595441550948632300070900054325527900706400540798127241278072590571252653784353952098750925388867880032333627343513106630090533114588490401490402048680817959838198457771014053341363919130741918261199218113504644221012257774991080296958284839895582411226731422773645503952198952546168610771341476737782259964636879898033771493894619381753929406188076641946298032712760336828043083455860523083700919672881633331379647900394694450900518034388240451202853045454692592272279392942289701576329072972087961549294265555168694134063778229548171772738236479594879228213814321454384371058237146161893131079230227281936849307279830656973643308271377568238943048957058050073615620554538247923204294995065177281197638592773377190490709016415273642875916497230784787849143227404925075973794127083915435886298949709879047768897221463890713933224683202722329021898823931908731128426536855744000394355235229232951932572783192487836918204574016977915282116505951788078022034157828115705313592432468209033935829153999669276247036355373782932457927056747246196661916162005580996229198870687546062725581439030363392233547896596430547101435241111519269916862400164186094427259916819694551343266466788117899864353958505369797338676177561083858721143391241155077281080384293879109920271921946210071425868480604454286118815744587269988319980109500625909988952460360254000828653370750959014638849725463279217780985170971009798370984998312222977250681954623634159578784506780284226407738601371884613029495470250101139661971398358897536869935115416982729775934914762464161382898935963484380238988644469472921916984958619167839626490672140870867641195378776861691147800250806410110277654603349144001606776108724297888264590504032111555073652797367439618300399673940080244881818772745739417059992932699858799941984331849327060914215050149267840653492085221621224699202060260207944449505841329378058321351158361288782036409627922226534581761344510502611505100028864382245143379747585043861531306911965973497465048885171906956094348275951238636248787842080532433063718957740909350810582915857179752285849577146473805091508207370036201338577507337405175042492051623958390592466811266144479835150909412375027788570158073088859773020224698491219574852608064747146943883258364130300443422846933851833473477071297404476948088756865802063913806242063274357077648402374290859779335769519145443404821876089547341039402446941197277525340994965656798051284791135116191693655387617233229374139767392481702298802794284849150857376121518559837273552688464947198851762609208273924396549461632884100449629764701302640022689919430996973129746119735495371434178043608093885274324705113456337416233879746080297543125987048732280318519104951948765764494160992497940207904195164517435268445890883385923837304442521289782724071234308707510088343906323871610172682790227595593389720741741101830882940550630137984959662380166374148192218995237737301009032170619694978443376027039820997263854068438239764420330046461097819031673414696413814086910729441920125613457881728741391599302489866250574942657462584657278109656860785338053997581081278120662375122097338297767349294436263369171866813865996060656351724668504515757825701941445110522780459493973022928540026678295756927970081353281081348467363231160798462580486528464627039697361745844811812251529009568747060564156147510005640121198963401007396012404762582547443179839494698409128482526426311143062739510302264589334270473839582884796322995911121431456289605218011468640285222067174782579556343492663728848925436454819166244511683531021805524929262250999472383564850480948169297369748463494222947523379828874868512782519745044508918232825141723198706537666876517025510308896729630615962838148724532642130101201263176833845390772047432370163294950269357714103432746327456230954985900932119576817781037528250310893725313053962028845514106396327955705791514758619173140634194360439173025893523083405011416685506758348193078766609678642004062951542579793943506743765304628485655133398327584538092816604668000213326703542690883372055236940374002078443113646494005860308472124498401968154697634576472816396251290968844004133289937647194488263663535296265861251392279918240013627400701050226462083294988633954267216964195143445915981372661047524439035834558793425480435254718912043373327400121536946370663092172908895765951506409468237203059871503561411734735271114614230810425620745463411486071667299315535707560632438795761214811926519716800090190395094299989994133141668640502797410328825102792115081082231996902906027257763657449749951378116493736704739873359727816521387884259640627016423625070180627469371451005765345560054814487609987445537123742892640404602189793285403999474554685846721894430812852657065853272715417109412506201350762547521567195537695314079555112395742131553454485533075941305806298551343749334289193200035164037568678710045850618870114472298357180441423269311395906018745285129035154635724624943988885216309498035838553698385984936142964350460281279432292345695093891771619062621521733699126309716291837855672405938999273425643758650185310700788926454878251868273543361998186712487570414628838685351385484492507860971594062611194884885193637570184924929061230168256734156039372735004568351839169355575600683233855208175017761198287734275110371215533971983726936311653307121657360114568737318418933157062885704957599972619291918312463616731047560794885921131255506179541507105244267508231057293876316583258372086394350440829088178964143502986201513643120875244980489427846161178536763838425045172302557510946899425570412414690543261100149933912728812720248555048633381495003253902685765719907931306697002277206443527550044025506482879880891620127004473724328045300529907154758070593585162946543766491298383986339707941031869952875692177031055795145215935744989015059011240999996844253001192796829077868664382088928938928207485336143297084417662528822125822237884624016187503152833781628875211847182162991273073290419036811781840538644116692459410990267216094497573822896754207620039167229152074443519310510768684982862203505737005773001566499979727805926554820077403498954918396049039884439419322817578517569915230924049036854534324517878693067533358844531938024670345428865752927493998141184024468863778585641455654544660921757969982588662573136160615620999380999162709877455945662870304641562551899350119601627657893868902249498732901357639572314558650681497263212156929157952826559725371224492532110623593118965059209257987444112414529248461790566592411244878019093319660731296253930016978654381519131795651764320961378109800555752996791420372803522661063726384920676366009394678183706962551235675318511523228760156848020274464422339632192173486496414735264288582824356144732198361435088107228640704230150762339192008326052369567722905067187307191411400106385540962173942187873099955333918105634656715698758978360535854633818760650206734330696745098323573968964434023977634427251119548485745250511710051128495925949901306703783486364425571608064398055238396382858615046258049776158820339414697251192499600928812549692319760339146103187450766076483305354725064578442814133014167135718323580652454353075490600810918400103053257384369539916059617852639903925918011807390356356624376463750072192606206137744946165461478297475719029396018269692695549073658009190524665983667563636463955158357123456483680088836968798160043805484689198615080529301449933841355251716877515534202393122593281261721193319258063061498886002172900974486973946589729103641240699652459901285668010213392765324412122314543596114168378616511325696547089725883274167995413806792330419264444805861526322726749611532010680850107561986224382597069756406213293831494947342833414965946315415907888563990506262728517304960784198454110681642615837223529850297685254424798027150067170585581816783352084605083719330205351003888513813581266881982286188122809549447639634225181211733451586370374784578544440557079963510271462367233737900955196616240404016345303048612520831450220259272372465564398251256727178488174964946446184805141360568140001007111091351937790334155453007422600873399329985107067824858961344085905002387214816757438507967935552739818216915447796501790265013847793099377595407470439262473440593265967185924538017392927429510325441469716843163372526495851008765097254232827932583266631561810956068332858518226785227535930866468870228262644976349606273618025270013878843048476074228004902201419245727167837901211960147057356163723043250533054196408833410133590020414881211504998328240134727897807866205161125205153763879806235585327362038757674014666326443093823607144755435072186377275791949797748239320524965198730126197008043291334978846943428088286344686395789235733585196622703683237948266253265979845370263516797140736843623695054309081791074226644038984234559647334568388321128409670570479713572903350703349024726314904649609640862183937196149429877267159987630677505681945282469675733054736480242531608220285916829643623707975798743670466845146495151452558545348426462506523764935531513309632568453002999642424782136445032641786590111908671940342427488540297259947474422461077683580284627988224900830206819696989533448271212163054680479151098795666122608502521552028467666979788812038859113199585293508541657692022852121646000841420112764527451458137839309345822584809777065794452199113350594720192997353269305567797707936218784042145176956926057177246299799802197212521023097531250603550781891131735667908781332461679017043712697979475565299126486965795948819029048800990498431504605651067871611964627441662876049407145651210445635359244035597293292388484268811252747172522876377985177829026967102912405023038989083189649708618730934586013118255847599929164549292020944151484240481569813339264055372407673143892908296819527954203090063444582374268777561308415320510501726386126807655523512400981258732942194780226217393516743173770514190708683753158581910518750851042396620986884396312318288719204519636278105854692729879624656278343476400540301125033314435121023948381735024451947537558878980800935315712331930062911363319537069687698490410566462779882403292080313278455555942946959071515397718743245789503704263642322778895121389073808717621829728474519545201747225752696406561859143991110233788878451575110129670043868689109377468433445884908439290494526450848169135496383345562816180877072148506304246771343299252675100395954190804895281186686513196195178987244952997452208932940188470968746715505692448809174265181708150376565999873851019183784638066239324189270123741298444142424951362922150834567984439407286757031937272206963536160701851771867519499060732369120475837354693630396585894511508127067599388759746851187063031621203558496941127979085617725924678356928645347443966541325275089932368815271960234793033382759829363222535942457120355538088352695335337408907630289449935572900957962888747237899024274408128965812186799124763515333457202763400834941786364161815239032345835308198067526189709288118075267631191555029981795498211230142564867586415674290573680097150148558311769568584137127181901268368389406186271737595071861916470714513596725685439658874115559608155338944191633694597934737960295631197702082925889511860852897309573189341363021760961286121880039767602083513547880493696207456280044351688680316034204887769691542669855421594286047557491746863411607501579178982249357341645654966850135082113815651373235890291513358189705565148595166906062547488152821905029398510801410999071965304031841817302072705994511010168312016133714916133334427694933287053041790860591973402494625483343410330849853754422257858425977530455946348791593129796564882534487104362106597697749623942454011391205022043625525650771033534713262416230938722928747287669993018594430327601355955648484387901315024161271073417817691968406116367960158571924409480624392294604798757291684410817099884336197020641712328158719859207277722011228896972369629815064496606631365350080255333356101278660281187574208283789221128570594557036783295090892049283690868745865840614040392761068845018816720330862209621957798240932266524870092727825444136860390367116719230637208038497227278737388181159015027665270699259852817263941165023360241235907786529543395103167451951175026433613884928314860306932364822510489407002521835883122401758324871740422883794344694148203151016202624355750122221864445348483591383948866010259730670592513146359444172525721594811376716812632936117479639415582834731311144566267292940442693727314778435400753308957464223611200278056798851178129584210032270551465058563434668430080498159430889485829228087701754372686191681878823767800489324232348440246815955118173301944592822937398788558092327450770550352511774282920602197300247404082683172410455506017386562251447192197285923254200966260349364375862239289740895321314412063359765090139545486527611300724872171672826627224887496090205110263362975869852581108643991906606240412182402732251081253883871269891532999227061963455285602538753248955063882304036603883826332805715144797378500772939797067307506677140862589654428681228506900514292969097021169024485901986783093386530597068532340185965819225362879929382935006430807207136628746067464299555295921440595855978103841455329057794322719611511813863212586937217096298062209041443699901303440769838000578201045841414573876244635246254664196657129390773900343965245133046635369468742036572664797426953902416894587906863884829391718213919949948967031148710701306940489056141099122689620612387382734538806546105405143973285716195822085481852389122342371113232739416685974234472137180602189232556854083830571633867475553932199447877759904486128248571056282757138848341414603691087110771226438929661717320613728737444000924913586513104308919254201473969294342955707394621244014227019636668929205923579640049833696395126860792723932220964111593515438086267913365303405813886091001751624371139176774211327557132109533003422120011251580296295391244641984235709937406524746037141588615032119503871379129764127127388416677234682188797651455543312505063853414441476286014071414261094638879590794868357922761453969805719546218972250569817128523462041325927936399314816327924494732162901950583758164293768265280788889654628656088662754900107815276831314955670185857592965935837766692757429074047564027028529763368837931960676004640559262413980816440154547123830374979774416287124090053519133376487309182595502025955190375753146715456962661810745329382351057454136554091048165125196473759761973062350432089353718485295969457724360334756464729044442520585660763675999474024478306149000726936597175669582593420246107123042668802502871224426438472248441933222158617857696608175182567144092579027652553554089151944604527468602263605676661764695301310762153998578876925963410743488227197872433430997456576069859279479396702187088588954237208777414889869208383937470032286391354426048018180535811370850447544053927297772178742575118111247304131618758644596667215324863723674565093982477211245678994936680936183948105831077159469826922486735233429076576067698187033064125155566772047796805211517699030803047562598769735373436835870131951229749968406201576932555230476380033353053891800605970016521449224775575174897673863905140109350301966854386285075494928434729544765625902522889862973532136773450704698540163446269149461336098824386784992524195024877771389951776336521554566207886103327479684925177706269693994977478515274368687090571219847115806644914528658866211676645944398418638276161758162184583737452658705152026647689927022538370790887901401147207299498786270347812619806089713625216923175962182548955457875633801680138472879447994733930577075092013099658332613304337904838874964487317797311631221230281742954151160968095429069396856957894824144459510479531170076620149228858956959453634388271106359204761029350004199740139332837278397339407079525243389459893891854824454963945098260925967916973782291987593923273254614170147583402771988493574325399708767658475981653374222038475249546584700461802285879242405257331711158764761596252256992035236449406491630273277265829380241893269070435121680543841749677029066285530370445684442957041868783785116136844448859252349186227332350964075558977633117337645126811353475175532334308385019321994961184954135990111201073742962259533368847324526436073480294802291274699822997163500711257708968346212520344691457930738338561416888189976709408356935331655370679598658222417520733232184642430991852382596018913465745642171299288940984104936272199679555697997408286653080211870883206714492746267213946924860315789783230904681230371809095303937506796463973337321776653847802875431275701592434086355142120499257855883247263595113932537941797663900987584285731604619330968180752324805962617453259672114084877829899913041544415792185739329994722116803625743080619482068916938199087717438724109339780707232417583108514465255626055845730867875145285118562383168759852269048789273858588125821833169227585246510621121685157706886603382896026437531136795997967272558044096970293278005401117663256210449976576830729206531514342272174560796445792258126853053395291390342370106628448058138534734071999833225647539245975176999475762986569970651781020329903653425873077313260660568065161018388063310803324340537588070864856291368498066159612756383097699737870745351480620972998498541557921788266316947778486408112093866454575377665976343058241569613729994623433676582298175077499275045637303180194831726377807444157727746113501974582775931744429590461195577333854285301876294420401434530629572000182563317199844563830990139274823508614305084771113867634075184400332410276653334413822214102275411196640914208315507270890288573509002742378192483554481762934559623864402223936628229653391711478943787079591156178214472279520062930706573538274066914895851905211078528355068765664383051085153579223890949150910193502896898013384162631198262349376180753824356166912485754250257059887721007993425151272812811291998626817243400179662002786719106556095289550161942796197913715365234750578471224238038925815475139542529324608223428864427226780358748483936529843780909345095484503083023799492545876110313029100419231591156064364611640853234241086432539676457094164734787270256937224392289678973900986195713041209661742565585692117648282453635769722347940735370516364911734700010288789780218743745045013801641086550018182735190186165765225502714616188855873002095788871503497672718256667386575299922675376607809989180068504914018918370425512163203478810900548422991638857341802703493797736046543413938160480963926419712266040234715159263310435980316655418037469617741617037342677752367921825556946710388712376252947547078463784098966435677009725652721731191469393946704556939648857659903252050976442618530985254542731297500636630718338332322246196852602338479439548449399090053804799219038995477273539753019065575745691631545894648577406932942660838646422538005145961266965095735059313128076318891077485062028359603270391637697863592982734604983198870514372872277364054012331870466947890541855551059461269770168408470111178740866723917573598073471425098468026228037460770295452013541026912410625427116477849307883667010934233930508432670082926192722293796399729502732364392321093808063101466094806716400249194945601134852485413353698990238503299235100817416455597172328612065902322178863264163023973964894655769611062523317570347357853026641623169456223850594545775513500252476976972620735619787149766841813443507834129550458890181508090384460141320318622166745784606798896083809088077305734989476122417508567143395308899908743769995144757137810638142884608115584133352647184097172285276699501655090788325638001147839873907411893136718736256877372235029661144559715111092198487469311718196373612623012545530882439411851135300558528076253034540675885581139062304052695099797916077952157071364708171464278362983469952684752196294074320935749613768394508069069549038638572811833274607693367449449140825148697584114882188387104140358496872884349418162997322175668108358099729643659229808362208261404480039098634780451860538889526331361993519463904362000100002659655483666608421560149841796807329655778546825837568979224013796010434597709764264362201964973779055096448746623570026315325716234030124082727214281148233889720213919266168220678535532731423789871229050955611554272977043578514267658037535324656151545614398686870678282498132791963248440686293424778888250682909704874145665100637162981573075405450944023805928530407418451574824273858128190042717761044107524469614646738826962828656689440980662930670118415604945204006414886973218035335415613575125994344151698928660395151354881170760842302212498363585591970679518008229437252896942612675586833045608473592061678619824085754077709983571903086055104912448997772912361145649383885361424976958482767893760833342685634729082839003172716499629810540226539285373393567066490898121688387251596566012353009312658132693365971801312440555359003977038889978708184327358443237754991081537599238316454848243658279254598059301517188702462956284193036345948884030497905554226714366270130386419871692377706412478480377481226838861533421577020636009160364398491632002165712593321498446331124599392036862815827390883281458717970349451218977114088474496883284121336736999594089627981503069272318678034515006726556496903980030107552907374521212011486957618911280957988739087467251507162070987545495186548080855521891888600284456296414614532741005027515098921001673692430912047281162528612859456026560937807451549022657715416971863232602230445532984617660870314673539250461388141799180426210699389089162556652290325733056377404071729112226203749124550130488920322324488102013547115816724028715813274816794153953646884551734127666416368784509790642464281850206405746952893435626183998433949299743587042530770188961566273511769705253876893470253165885292534194258251284331690409093628573133910768916934401705154582601375931386223904184461525776639168080600648452727964541703581514320754446182330922675745685264442346073449767310156299558934635093738634995353232312811539531404120479328285501797674849743948572025974073032510678372011694930898173706156110963861912723871658135922780863044986730166117174969293242810966171741525554228773402413642718122351169202586062731065243077910611176116324531816039640213027726000944835025423314254146093281541638686887118268801411724113758220005793424859286186583047944609712849462148137892812835413212735210431167580222076303670062565843588630325754637478894913820850799377026967495097685646076823983450820717406171700071393913478021877769781310795810675905852563717652375440917211045095142981846268236099739443482855948292588055562106207890556830463482452909474412517548718656861503956429596997458540264112191859621074247233048746095909927728556508296994273127076136595421672243928992025096155610144512375019329629838533056863110169201929587690476711467843024043371542293217190196197723625722063813228347560101381575337497113270617691015163088464347287629032745252244242059297346698730572619712609266266072638381711437562922226902464655398506645545821549272228935640660559356461599244838285569316343972481844010760589873736037766162658667111080464040216993479604673715745357114207625886285617563768526768917596895712818778070251228566152687182823631649093085880536896210159710249824607717181494003077789983796594108497802129479420329750037743946411520571734718881788510956609403732984756337058150704275911532710399908778868636262538679519248117756346064326620773558497098628871602021473317824143690513558125363309719305128455329948920755797943862674051665568545107146170315740281769406658749433179778765046351417826731117921937175617454407833467876866007736391254196432997177324979843493484922206488319906201457319223198127095026250894079525145422944216659113337728766668261132869183813428986208043243901637272160933031463468282950799845783221639809266752370604514601004982816953382854896944043575770806854308670995583124753590891484481855612552158406350888605520308846632001950503934876675852218303817253791017785960359573870036393626130276431713681210087855091598407102906574758513963149615029290868078385969238526106374887473125490512381563414813186084387938882574511297234741738869240964411102863208084541347446093072769341331331390962830638129243730549917914462369249650631849403819827043035758472021444344190954086713239582833582355937361699515518496253653745409274732166344218321521733448856796485595030124547981318585243582122408063183236060730748521957038521632537307567299655839516470702103248684965042577676441232115897848058909994892438690525585226869740496676187814155750512971893692274673161855300742983780613147910611479011553025718652042423970883625425688633925823402141382859348757466806130713214102110996163819881604342509467855862587338842707889540603981484684782087494023541616979421445170814608466898544583650055286336211900561644500887125627387785107464550132717989091813156422188435711195060798610651600271650049335981118001766471779896824458677388049355696184541655050810764266413199183588895952969608612143404202453673381115896103733531434009283687341947659906972243886595590482195299304032838682289043894439869551002279110167701215454738561506996575989210685404001258930297730095749735035911136038453437349105333844519774693090460358284451867000065949086888832609818140295455403221088430204125908885886235226972149427031133254126794901610260303332474116660218048655301327486869217815080441937861473404735173797596538786357829642035825385536082844093613755370754116529651204163682679770876359574514279964977303139103136081006639808388565472130975658239277544704534694406291332488542728441106343529808720326650933961979038291763501831768340719901817052732311121249000744934434411248949404750778297718410044216619944691460671645748765134088457583942081989354520379891541861030586607533159305097935907779656825369172002530995270296857184254748860645280446793871401030785046005994692612278205388372009532360826468809553707268069805121680446474530946793762978215505869735305119260886281523212356556825369210200566708201820972366726140390026196700012215062332486815717188947592094432002070663225442121653548753313672407816492524013894346384661998690004517647792318326029286521486871531706873327359400223557286449036462418329390857338114587092976003893896655835327017437370421312344638277942630851453007356347111969718053095868747025464517945283045740899849697320826218978682143798201629689100640307654704777770501421484613633655572871101220532148075564302985005263693755127814501802148916562874126117950560706700827892879850504842203671952405487092420521583290648582270287172089441569837064184614389241106622362134335525297862583174009472463597949265916254689437796089153401513412874429084094193096072690907161529246174745970021585977762248383574215338981915500505611190197600185792081122144125909781061994440841999529422039046682341406618181970119246794447390135210540573485759915558942342315923442185424489056577063558580322710971531162685402600273876079943808300848950214205920479415029332969540178663579565814906806270794542519492846665580557713183796209865164632075733264361523346487548457510434422364379760172697122539319653595469600555414170506363654560940569048175228243672962351192930546420686696355946746814303780805831721987053738876503695454463877356911110838409111547346888657791449654460125064732392896059385204512736866507126899314726220125245727542469258116952739820793702259912815402375312564203891169872260191053519575033882126463252099703541853198542513794743069290386519675192093915508789524274883731211639672504194181894759565119967424230455973324626823867841627585375137810332576803889808704192944345750521516199535110320227790213980899205491918121532451337639558918890979305601335383441229383908044929730786015786945680734259772771953854321141535101357887388488547021633862970067694395124226130808949045184744836946141565395463912155815398185395774085041647927048600388734625793802294086603146895749876748346178061737850759353931066105652822958878321586932367251935688562515277514606226284063303268750539813880422731285641782321928604825969613441288212319887817123977625151655668365180696677512576876749939505349291876222579965930929868353931438389591955256393949045710854777075596148430553197776366396977021544114707060862898669878618846298678956079839332592903978646702288837518417131190866664935983292460119117611357720982759184989166085093766160371180420062708816095023984407501364297412817371935065489673567214333106480606981919280326907449316773861439243312840397341596281705507871220110415227960725791035824573294991249979358345609712457175659605735843989092070037559438131753090567335498000316505110102753197137875617234069957244399092049760658796716899012146948926085620302399915689623955896322204744009197154455951949633823272883807890361123445367328058791773862086485837625769351447889229320797578639916693626540791224990655787974176316527998763412339252471021788152269834553493032485082893329043616285575512474310098106324384426603908834592285522979052544610629680162961723824476720659180616050190095464822581100411654326424247848231190679481590747678957037127135977511516236876827096226219593113908899010635173774574873374082285563358127173903271032969711735228686443258039309645362979106966180988759134669255149844637244272658797241172854616745894546653668063685188387001102660849229451656859040403983720129288755663563257207461211858798057658586929502777292858370285528796937918216103188296042173239509970383226506627214518914989688971189926943044567706155363298346740142525441426364047560572768607997931247564066381202942927045272055318824107974462984372416730811043034855006146078364257393092976064909296335940081277225218529078765483059080922833025401498014561562217686676706214394281074443959038994548514480437266817868858254753900221070062746561274421916661382829319454838752134507614929541664550022899238604998530520579607947572122348518550955981772670147472058678533172616946304831509940744195044633099856750823325783304813025884843671704328365931896313969833621274622591898630118156291589842955946961188381844827909667177611047873443447561451172545034429036847686978650431486698296525599942731334619707743827004514898871711542423932469495223730728579410409377426275938115640041813966458240725279165240468471084594115192803122791764543597797860130944774509437990549746129061821517533182298780676327351494245956257959824835549425497132711363381909701257374835461110178977550923336832066374119127830840521007337473723373777876113972699825925659593713169526017638805189151332464711428831526073975107723480949684443773293998165863516686331879351288297422006804662337298409556978415866261366663913876377098713904625249934699663644519054850531979851007783815619254717141792268982403230364351135092974286192918481839230732609460334818800847847608295734921038274199708354790215680013157148072370664194301504537031130900469451135932367233847815763121778367139198827951092140186780448598700124519347344506672860799517183681598786063170818359029805936806798992865684289658102251041724836480345440313349160447376760022430781215349252607567249346883028776423527255115064519083481599762539670249623984056103621284137622221729336082892044352948518393394055647755639019199716092729101328556832727136172014669724891566553202400480530766635784619642936645311232674112551316160379240153520057989823558751401105905549474361308399271445654905545107836948904437137730829964422501327310124382887734488176760644695350528711620956990110756075665323848206966245325271926120671967493436396377802288822792856899231050492385459535140323039104409382348385796696446096952629595904601965331891685026682423485087074617891859868248778402250626356941249852432819272232566798655241077098811165082359067137734418019174520588566753444340491552335761330593727026451019333459065858345610355251692521935538675662188530181775939529205314038888033225574051105962947511177102592503538845538108124409566062885953760315584093307512634246101822174165846042766210195683384434364311555259230802197303839550994895024308663038693406005861149685580503631838043949630255576012684044269885054070048920926980175867242259994457249593603895306418642830137445294524789387213494796919769608869765505544539695017806241713091226188478990066907132011508597756376381838609865087006975376564621333530983514958052621286900608862700160214320632430298062523147801748500247892337301524823707311040834733430796636945080902697937527478006424659542565401030650148055888181711640994310500009063045182705228918935889576033786015409856766081958411592612169809709655855080392626317555204213349355104278986227572529728400982453612309003190373605484370373036149559866841878925621037482034826578336896095948903493424103927944675297170120924336378663810492280371761355297486910378536614901152062795501958209237533832611775222046225558806304504872581913968154942220691025343435669212524979230194139004721183536881413696098144046150303572265126344528339644049664207945758561148528167005704685855792927414075081854859456525495662173642713087362779230128093193725300522316819437062707626369922223438736996368860539142252237606859157475110248340210122907945578128081512051757661578146618448048886095526872188127801147815067403651714876217290093164897888714999988909789121084230083189972224155071302417440337802694634010896032306180671972428775141053759301160687815851083421595142164140300049379940354893740062623361534014417565928020742919736826689950626951973922438867099972219732590943939696939071897954382657773878736929701778140661894611771087518543693364094819535991509067983697054775217054304070529248415185393432407238794412192380494806169703044959080071515134994114348225295428861807625935780300522454561323642293463907227259795370075522131917210151969048015456694267876920943960952873750177764367212948685163450266041150064690471232611730241411585242976804247260922571695433004018313559542742495729115315931582860336216631267990555459892788599517398973918887094480154549994777872564154188431902818702203935895723607857269430522539700992462580920808457704344886929421297469858600381486361828678052624515358762290562694735282840671464789249776207078199914025525849891345770417046244621583417395419557109462874651837565074641850447323891668455204934648580949099067427665154547153020047190978570651532629290464016609502006551253961883400380245935046811119788609295649532421002091124666489330215208269269711865890696751024923287090180133750582422076823206336607204091037434877320848912531195576295961217794068064326903216807781883327683292413437769604657384164692127223809374000014868342755986702435701877948536856657876465293524616409857119654153701601939233802554805874493715594536272920138401453470546410939811740719711210723778131145831088991512893001429007006166350625879913436529241224236119321880198878011851057932041651902545805321158348457634402679500147365550372839330502429028183520608398403751089153078564752762597694698213989097561483537404745930063163183795137420881168754826009217042913005533649207774316161095244642949047027983735770057479569712922499165187998900820639999809037637567678720266390501367128300064604450479717500436123200875968132870940063360319415177095466351105694691433310443523957400866607014815667015680819156385722686619632409165266748953498851484253224749739232635841488758183537946539121395837857802617063818711218926927275197962521214282648055704421609277178573880892777209313263193889120245308970540307782048822665753968759893203086878173026272905844036731115593834972985638971117117727164237155298908400343710683085556603836354541338574093432797326434021028968618632984859158383671192117397610233332401259864188487673665576762269765113634860814927756437279139478885601485744192343921992096669251919260430373315929438746872384325291745969488528453025181088879779082532817641744209052096065149933283706635654962153102148780169632722318341015858930921942857433713311346858136114097579669993731769888817276667621974570056209297375814519800512310630289345032908274057891320136880038331800257230906897043440605296415929564019483602768639289418868835554556203890078201991632339857366166394806361332751275239554638492761580597950674772095359575031345481715694885176999812001416495234552973596676085242733940403557948100424176275461469593502458114107161325091849208212312449713771445027953714098272307206999430102433722608548134215300552289951448009091445575679090699700415595758907205587364811964783537525001537327574017125715547879981224203767038910719692826987438607908429040557431701873585658098281859793361215767919702800736292277430014335024085195553492690721993083634552736429074938169111545324597983248665871364973648894256248351243746435154175985700214026988128654023938140931116951194468499320656784315305480134914885667290810562001017654157300563549594735636279452027055660863589694771315854597582605402235257150940179054551528966363295093734952901745418221726719289175183519521393238850254350191774731481813188774440410813925811109883935124859202550917079259959624334678454880327032643981140151560881954106360738675781119803666744543983218593747072200724833079493273973211109802993725522010953699297301139334961737319842249766376672096738323481684356123165684824467930249477957092916874608538722869407177222635282106106519691942504107820352137322012328502616862584355346186731258255554640231097070558387838288933831079218115762099081865398353909077410526408267107876568314166212511507575449124351655588651556851371358184073764998920113671672554892973743779817797002073700873123647855773420934160793139664998875896274417405901065040501631209942380361710226502074168536457718064376591242559427549412927238765450166753389383211218453583022162024942857132174615182232946532704965350885954558820926662574660550370473844807371169576518298165196711149957178498863244335193151884861915146047392979540860918591461964275956783717774463773527734114087871489120254337839422308302464673975508626596534655030692673306033704968997692810447366171735489726128744961460401777442234467288106604305938839457432948341314001324901465606705571770549835152653933398817697904613187878730204714258168160363945858008688953179506252526172624498515165099798867106182669216923520135839847169756443268705314924549915816643982105622999871663558289312790069128397845919297792858501663161265359768201035169752423391144056015152694332816308322089558527784712882672417933127518527067311190628310285315318520320137046666707258744136184633152782117494469478248053806214010878981412450247274015834757186993531112775316461170211671539065987616303534015213020963299724415047623672695115086279865564554347749602688810430444148278173628386729236340139729135036598624663551467340758787398891760966871731333286699492669881783093074384597554131905113460720751509473672454435928722071814121160326397731656493945267997058744604416976294968873851551700750799545875614147121407451578267202766383124285841689095031414899758176775299346699318534917696241824226701884227007356879165080292905783909561895961474319398818205176240718444924979593976802803834533110945173235077464970700961881891646345619705975796960041198542414102413676762990278779979248252942296868385045920574074238832501784186846368259330156316462904549727270492067676069327287867755811816078894605259418067768052821180308785309060575382808169068352481360382151163213339137586208387406044948641499774170320443393350911521576684968657323846631848241547207135400648076856529333456951453624224584288323265499324106111498568173456930333698751850537674708511241128893339977337967043608001593182948878285745483052297465572355367647291676619067543696831040571641222235995960268088374372262836156052212430367553589315579422925593544547479240376905532431371938503824974388503512143014233730714699818297828982318332374608841511161407453751600759916565943128492503822974406328559188758668025023154279168208460990986555954130181747196127418088171040693096234492293636739149184702796186286974957638879665907720270856405287348096800747647950031719183365152980990840006914878268285712624864575822573584626590829628064152848378179367797943965941155797231916614059570836886078848972794464196629249687008009643954317414043643740114465305520289253654935009281563952087216630517315222810893784691027040273953861403964088391844281737610429273181778613857499988532415325448637052357150672270329663202415150275615871986658883267689579316876011374204981848918424083652464455019266007382523732400078715396003917217106816973158215972080356951748211969045832530746557993905862377476188508001372443200595638604822176863239163507850711630405678096704584706147428260429914822115185425289202622155130137557967898193007684227954264633968255762928144865673074165200438852128879798742727758736394787164321907867491363075860672280758986202172032551933731024544660719640708701128174489425827751226070625608370778965116232546787467178929153046658054777339446647721746886977526516046127622303112491693643701099702275042102915219475786427815953605464905888404637750771316376432795321726523885360209554188502927080583291355811315190554036580430767149366966436226265925435741914906543713313737349705448119371364552051886581789079555881412925269956487249443838669746827504792995378453818147823125297790536356992643334133379415234249784394288019004911559783998317554114075960260243975636524327851261311951298068562047018155635747050862054810769693883701590357343830763987223036759108912802318639823529431076497019429219788541702696394328666312216740778362521839147784378060906292526321191904618597367427445842252895595557915506653965202667338729046253175995302215253693099366311767023577114776829042221522956400546805153522396495608616245790269110911136894889736777184888293867918525048124028352075188398932852949908998750298664043748254700847195491793866319494658205725126333494922825446479852326730694076042474090686047330698605038156958975403939280679476352499963517461176775581921517561745381954523005393321090410118235564306700942693394611099008365572055420825827803922885386703074338655223090886360584813810236470963296081069378598201498312718718945706372091631828158461356184047093153937198808608756122563560745456670984078209114616816244909196408816992554978125328117689309044944807972124929943924977161105627452185532388193804097669661805789839413988061889281390285698972853832044587680281366751256987254365273732094916456019527446524660051680688229183698974932780854890297532999534467364562976601197499271635800503635424306476889485928233748201920197335618969220283367360072381635785336179268595637130356554398842969812684847399262056617989170532043940395977151904570274653799474524186517949191673072149000718107505790296300701894518947719007344919623714001596379721010992967502095783889156043283004729281798960257364934157381782660282986701576577393802187004296162153875315488323873870420855200968532230848545366816489921001215551020913012033805954719663575717107405561250695358070346541862218910693726342194811883569650161924724562948843418291607850831437748088166593908354230600380169334165966838060264500807322310319948390814968482307269249454038646828303298901610745832469383818462181778954642996671279097311179379347754669992725581316356870141109766444477234633768421971060681337565746847278644621531852583621738488922226246942587444974352504012196641258102024642296106624277023063805932396091167491883996744559530493783824092318258614326948956231657990974772549204006402053365174880432941534551421200488215859351459374396742833647519267649603687690293558694665174016891041938966619417601220065455070337269749006086358181140321910365679879829942299631192435526425727864375526079494439309739731463937721276467481562781237505425111390564501725512769570791547818487675965659218958781580161722889748556151346197721657621856526516169153997461742226879973808784398135021430984971611038708592007129434664443417834253803509199880314562799257545119940681003263774912285555554139200948606154467819288682518149879463602497399121932936809643921242011728932457242211496446070509885401784940949209399083381623251160064712021325828691843687902712419076866553983083130086316334288075125266067031903019439936244230852092960907877960205943318489088673507595066437963362474965669390386621318711208202502953495257273929717682215777521997643433260699141510341236690566926331291929799034789541080377419309034161079575711796875881325039178612264625650373795285514532647653419578292450946082048951949043883911858507733214625318655280528240719975117835229312800825965891706963488932989425839475640721686665973198599097444972504203442182154002950358262766924748164568799179915800918306903516573741652406431940852423417213624570814095683256843292970999302377240885708166868098510157594550488233299131080204598458981427161963571119233220534213531423836446208964777831454892146397611169630997028768794100400479568516629548338880428938094203438102272750734656544657854277256055002171219320720662034045393392565597538841400441603603369881996623046450380806000290052303519696819347611854312864084055017438942159850207129277607516139927277184184624244639072350065137426918213668379581512261382046639525890221138955999927306933355559902278402183290273695415872012190026097157015898729697123090098358595662179164708192473072469203630355254943387389816956244600408561195080683528141548347902810840608776650780132278073289142346078275755092518541054345268009147700373192288210639506030127151337322392546239427908290445900598239286747342455931161640011365777476258020950533664493221651185159109170985569229314040115073217876790088005431215971383739220588470967789416869298249558677813052516651024092358031302038041876734318778108079836735562188219277533787830507295853380782984439666339108548774872428774209904255761037036809761177824830725619911208398071432524442864705305536933208215337541045917949672877444853841420357470252854900430393916970636605025356194234405011851367987888257375045199626216097491695387493219038744449575690432465333776858248586288133102837944942856824346405792882011424355105975462300181203087805392330408574252439226540301337728262228192137140511031417598900824685647855469137981201513400748805865982249177435499936786564017633901355052716227226722007283063374106215325275991052279660728628750866066557516731660155948577560461408656306925236149569711662475768871282790088433334340123638580853270116467724944362253066438501727662415226421720302999174668401275857915407646021886315992949327045294175336318179737832607115773899331204323155375067207933023833092254504171472112217223506740655451215585045981859641395728729712956610138628642701886690503170546272709737499989774018135339511317001675654246268517065507439606404228532785867303353743987941919112625185430325820384036546261673143544369880504564326022503396488200394015216237068773760848051370397895784874495949463315402932033297683895294572330974029738244534354450689130629408453966800187240053938356157339493851183198026821068190969786095576176663788400150659522953673821181241512905364773977856753944885527141350932281955065400315881088027401236762509557663188688634585497342239823624950304154706221232123466721643347782459357663802409977368999204407065440406934478845146179841285476442861612154774694113351919072383404911861996705217943403969692121523044443764579365348899802578651662685162981532934899791205314686077802194499653998700101288812588171972225354981788982703663571814949201628374136544706978094205896141364603431650788265996865683342330421607579888170920779143876822400710345314425301202858915650736761298899065700456448369579339384164865998987967687427814112600510617094544794104077408722099457307988042924382646072439526293159787593921894228139554907089967668737408643034070007479489889339507060686067876421373352561452266172878292185286455138285114474486388437282030722668766298823410670007026053421667398494532603517381904479014546626093320845913813158333446245360365807249119024357092831157074661901296996078926065107422469485108513084961860203780937782062585171453908533066691850428023014665266923635753434731773479899444352678567555994473463526505540198930134686860714347389143400685999198490902615879646838366740431521169018455669806956505711216332007941129921419607701997230370622810506010995010458163553610677905767233047896944098029271478590153092917575471053854522899281804291687483180005410785983253439807073183456190341421807506526572552360303948929303910030937256946684895504958743028844233905277836084013950733123807048117483817067703082303053659366482295181310575242050678338919524592221231050798672246947220484177952545892678997467340407522464091218393406889882264399463250490511802682657154641430879421860867388876483417621604661038350974163438926804977175833849957308500391617603494596122000343645497727052560889108510231197390783233277269532888656319950696540272417081570163139018194364605794044387726340880927663029034889178256310544679328961043390143042387859304137190309271395390791889732427298940860063308750992853030046033007184315501087931624288060346208652336776685206288897292449020755755570798026845140127606254679058351141633186795257946328477674020483170147973503429442744836754791015726525281775925092980165690246898193023453793261463703571427066404364974203033106518712583412360974612860218149865445119437242582049860491134677561078609809060194504554670514632182152993564515313346766787615523522203169997693365388045461286580739962199568649953142852723320212464070472397470180880541047217660870836558718275070157836760709054150616803782523560705888240062731357969116200766562921242925533226771466820563869179771985956025827613977004268921269667549148766733650278359232715257290204978098423718879362973940274370292920004701746591130937480025617866667263692471300148185062537877707278735697312362237234995989157076648123790266349083865180572787097730275548819442571843550710724811116217929801668200275928890309141807833912751428056222325930356322432486752476214197537880874442661498730856199384172012625811238814476126128197597941231530199231413905638189693894138256868955045814542477535564718384762923191151642895000298303217556679334435701971521848781021659078036501231239469532970758618678210455559344551144303082490337165643551276034494919492686782084086069805563035230420892389107986836311561829179826276270333672350819691993295791153327581237185880986243712044519784319733908328638041819443072753914597339885243133110564613699303851543592546010474524256671696915297809780254416264040750518854224763874035853404020175375422692980728958453225034934151963595318724114386579101412486849841795646522209509119507563614118610161235997829348950814507646524592514173335295665979412300559904582404298393464170984339818793488714008667050348240689898888154633881200138462438196864371124573998197618250183718623713835872362842023948285560579219409006485138710901683173275906519711441774681479346735555548062737051391750252964779380595672410782161392933739804445878570848891072573031601952701293454975265943371764200812928660250658167999272055586685061800948979253357815860006416798821972531132631606403802615687054990562883896320325609923890463729606733616357842727952634426943084820871743189892450613217828616027105911894262803423193496254475653533193965098680805971433042707988914800366288930632420388659240175118407625695729868396798406042539953832415730731214043225731068039888004679641863499522132458270538179314243305949088325765045598661806555538220044840625427381079085546383415468820931019776727292343588868069687273771461140099261982211214705037494457706635192399792039628666964647533090024390898859522999949572922510978644137738453853575453330995921537517733287399709622744779448645564867136523594145893675810539684522849030192783591228801610914360660349239579205620929991663468297034945969133746614201561370396043256391724252206953708574278862241169491460929277979345301432546811630913682168972785450590580356438676923890014019128833185016897280277540752479782282096149855121405942942439428344359692784855605504764901896597822581373820106230382414697687430850206260812466462903204339793434588359364462790530655200850307158611342026636603508026323131938060117747574732108315620794807289165411355952731599578245329805812080612688166998746135436620136271852585559198468658727718977277662848609811078328532884772792163399178653365936187758960818160347425380263720930286933468997504541337386061026811216840456876478495296017491494344460728652078686239255561260691190979619267984749026750121979125340352042136575773678507239033649649710254346216130471234236805901585648905909063434944820831916675477127655437496927273179364000460388432860490695010125949537071099314740175891960631154595327187343384352843533364657213067586031911999234656452127249825169082270630390739124343505271124871554910175959637409439559574930713692832793528275308601762730206204503676911699037054110594537682008823044908328801932267515074997147441397446929269656279505616420697439962766683536191555050086560037037175332310358229539281434612644033594267654399466769765907811913754082966752586637490063027444653477888178873019583271857530866620256713363705690810025424014246166399603260709568833400184797241751132191193978577190243500756957576521327073457916960658470522899320243504001309658287415847361869146346382527749738491934262115701759280943713187724073735415384814602260996023964512698430279192452239187011155592225824305999672432377377417844959344856193607960052731686487836196225797494374049518892968328052055623360568136624434043270838238011479902253646441327179122408540309357957782306795879485409137230161843280434699606976012181042996364868810476398693695517891591413470462269887268803639866253601214462796256211044551177318787938441431123141820948529034678876944704635334117321994799897073071127634779077395020338992489109805479214545901019525369290890019852764941771056564331449719032876488487180998786679064959458134016916066961770450061816706007628082528296172621063279917408764497660556980157864948705581311023672722531344480173712638800754753428978488621163864598052831816567412243313626416161811086061387752489622807376286070896663478183544653897220268356465282590673973040617794258649564623763977512796955802548327794103901878301411456534423151636433268673665014427784813830832493745622569432721148893052064587916340885589502659587481463893046323201235346125037254728513208596790246294511840981193101344106859773509865727971105811070501806628894226712721521517972260567113377934352927358539438673439896362098180774416562831304291186090435294731743133524830533892092112249625822381584450032221916698376848727150512142523298989838680889229497586483095433895446998433686686967761558099036601368166571190301800028971418021905662597760836297465944655058251301434948644048405297579828597546890611632612800079035085715501883302719295695196572400850539591884732510820101764260120848351256718640838537247922240149611369905458907671045129253589016889487647717189109218001124072695636835401266759028244515597305968923721523137288501713796113595685415995854434719559057452057771767930456779872986620206687954797775809095685262157441122690392507864398735228042773121672016518949842918077251136149188428434088207132000585946773741105340329337196643204146301520988424902490151745106324397510162968093360544128173091051310271468163213708035474315846900634151449044138258303047110681854009083137098885284674050945453600023044781236848068127796372405928745666246477762047209940452100430698217359604641602143124124340143050827973767272054470805972127366142962328423267717213368809111407755603405962868578762058289245282485227039774724716214771877861097465326985379422678948329218521395392619093941594793965505580344638447170034427113539245298261914932924264420988556099741185263384653762613113897378695149375153517286057115614272947490932243115364491431676697314139455257466576092026410758886529822715952177426091168397662524725326278722176389360848368084996496624712987959035660638707653153915316327556563338676236265926760201803488072883752942708316301011660322208443015253978436130712516677671253325162292068362900054173528640402934556614716200964958128420163487742101508480305758755750982250471640174728958666140511082324605413028257504946776677922872451787210960119038241384516939166907259786401390740128605253343173414681847555223373387554635260327319318831206745448181453044934680467857615807036588242100681807814478794446361305434764560513123446394179462723853450243058157217895661846069064235565421667419084717366398712735258285069828612055458842585023380710104711247098387769278316976539292658941681891032299637375976168207450994023552812626689228510520686379286510854009808193803512706629809575135254421970085547820565227132482127687312356080158137282585115916325332836465742074207684648698027261313645970350428994635618909422720770853600868004586566813727846780807042452010227720110114266575056832158877381150584236908385370515320599635439245910187969763642736397479412301107330919253394095987271667401282228439727821731697052597856147176056807183977476688823048921977344187838509994079518195628714900108704845708982605136709384279952324652979847792734704279521191810470492456728786122084893415569120095398468263392735626399444596098687871175169985898961811774250558897763723759273529439756661063821623205381454928077171395542021255263398213261686558595016282689414706905739186238214598449133282060564326614935150998548684000170200993189265251080005355277128622955936326802245315849560042985062936358346657858210899731208769346724774384447840218758754024632210182095893413595456359173602887132762521833349482681341428153575802055895199637998878427635433651291998710483721935514523136403432400582372499376291805529915377260070193877480552701031387245955649696152134010392593778548458321307854176723772849306625031128460514170209053875556477636372803074310452341141352933716055509369648306333539788643149832915452150222657204363597134677063727969929870111250492426843893727938010053860665107762908227341263182238298908030992627861037011942306931329642634949016722428186560135852731054478312390170544090449271370525369081656108694894331643859245594304344055238315983811720679161865182622925612519900961575266051818275467630250708667560442413329347651953323158314398252457419960447376005781029760120146156962647228039927612593880132191880912828454259439660332181876806317853839572370137741342640080790421685456388637716145682987213449571842022836522408723502211971158457099058390506499244080564619567001559805374300677481589653408229450666561069958566020906488518870820486892212962711283675639662882930484775699153278808962634149519746562812580310116478023751117318626281657777868920562296369745344311616757347016829737859923653957094603107081470524702850904410332176522626062938272047943782637273667484559413102732549676022402768379429951981226938189686452813983853387643063913312946962206321829490581025004726607229665814987444552086863932197731334520632399302369140721174246254727948473005856829009970865349957912048075446130374354306551214410683377404393478996394278888020157695981462011893735682616875861291599423100867617582778886311063375335183190043803387155430978037227424468229117828470013709856272751295242372490593841902280411442576113444166072010363398653172245044636097539277932767712720927011830156806162435005364218818897903678097253609958682766311852805652393188443457279932659202220930512717762905410602882629446950356978481404342165990826466321355718685867513810430807300469773428779173201443497710107840304996583645680225532693559773749008926868723592116980680431878176113974624353341443671922688804763374763501238096713805500589787808649706057248693586297382034120983159079181322896130947705940167775823381445590319671102092461485740302598590140671311694273173949277560873180563381624767568646954034476680951066614252337886197405994792545930168191892453294583809812570060601723797552078690661206424635276800870645474996192165015435874621256525202488336583564306829145423068929573612709510074204208575584399737020910099693903693327553350037569000688335033981163274024583645928115863507109671011719723996037812842253337707159591620861667435148683203895909830733091022838576008369399921969867068564311701920107076543197983257056484872007703119062254574401283766118104376133429462047527716851929878946903778684605091312170694522601291206458857958181785969641000084934075911387386852395758057922881925597926313658528749446805199602137139138632126907351658558743190862563364394417104128331810644462851579552884519584603207497487641433487804640143072318906684751783707050967788658915661806906079300137655390030308477913297501985005429632235744279441522046391134981470307107175588533529038876761374306149442456839152493695561002755447990289292125643768086201947349980203112421762822018612926321381726206603422734620180375652378026826772913204840369987152937571089637262526685505826161628310414418302673673964735662375179747606270778524759086344107944499658417582670196747824969284705248106436817854290921608723517482057178079067981608196092018424434948496973946591850296858850062147937221385476910783122489938165836870573180533932837109821907736035513320537113807831242532702365005217685950750147595178220751281887977739299287553873900240007391299958037732262960783780014183918157031171505553869847579552553119231893326839682479469436009984279455863707870314178406495560371964210766543232779213901889896568064925186181723227658569060833341393518825567813099239020579898998089705580023968339145617139149421797202712020932374622648613777696276791452196032217094493949439563510461933577970959009075471291818444084215000144154321932773132379715206185123274102350585861788697521793119845050220499564847449796073540576552637512762549453128045698665306988785143596038052581486831550675244962267046194495177735500480002561033705327172139925051433063078754567650181488283764368710097050448081240092585910689536022322423437521410972338338247632009058886380648874410587221655880747321620940651246291514919335721958912655710666060336412625486271112767242218610118066116923006590935134437800879276952617960616808750562266909148325038499565873078446966325755284337032000759267244379049439708685222611935985956185362640635318672767468938442142862519265622747561676428225722423819374383515480520693811891276308462279545692808307148433695595804288240121097912733850682194726486884681061876280997194642090117352395270541974599867900749959223351251858213538094504310227055593788905246617810362756922701573979485950278429583645684077665923583063314385439387251282845414479807031131664705310409699972007644810637622888652040602874857936193985594136296883366294144859608797806890808236010315496391323427963487100091638172408000519538446133043736475210675091065361927465904466167141242783795025527450826367507452428008887493336629045785853390014255454959002304245471634704281211294325806439220412839359839523621066806631849887824593090887180586063845396397187561753228044096873814870249572401886472272622186577322853531349146353571322853266596563853502737047048737068730613803169207498871912517631904368261175498215840044092514543753211054558013521508155045524896847055083682074674776372350640746851098016681442445025232909904954363404663496430672049690372579416849984865635963026693593846628994509302028856015998438205023506019679432071322326306989828721500796003400571659630936700602930217225371638310179015280000037140612041724084030614665082067023377630205567412637236380219271205150764515039595706447843294443101254016206951198264399505729506612915048119629314511047755121818442052487724689836287138566230212911251486574145550584332311870010438530657820329216084078668979276218178486510863921480949702534020918685099946882177517472008236314309216716894699499990532722932712696959587075967308126900988366197683535648489558249068561486318332839528708515188177718013936329200812068182055991676469922733626568596207598656417618268545623184908210321347114153296776658422726085513130788598763138823220115731162857526935916786269010445882794602115119698640991186167039131704514174885366393203039450043998150379552443062141915787417150094121650941212925308978913532523844421733950897906409993904507565551455552557255311976143074120962543400859695597109927004635452686924061517188324033479741636359038931947650644768411623597481815419981557362212235645343976244832690496918393877774858424053656229083448895169313457421406926165368166578018107214022561733670394021173186327851067231322453512677679530671672591872265176466275611498705912678032882785909461440690063788367189303247378300770508650879896966530198940454765698727422974019005987999237616871468651855340920377515714685080585957967576851259577144305480757107686873264672553637141368444042140258314876857319432224046962574766357796843333001199406782633560083039080892341806987588041424535438783627914863677281449222939673344946790484029693665052367191254584181791349277374646035064842123679263187613439518500974906945085543094651567355508308865361918586479230553683780046265126943785858243802575464751859463315993356931326137016040934048936706738203000900158071343222005206969734156993293363484137096633309772782767652003579721615010834097951297840517463481795931721223267510708441809135231392034491595784612186349984619953875628514401707642424722242968555816345036040572410269819455379672838880926955410434150364566954839221643596768700615206707889694490090799705231594918836630502692486046216814433442431807444468568823513255189730717201780432222710025716596443769974694451063773264644947725929293819167059029378485659883239915422241216684310574249303222130806115502533559094338179465562030612666316930988355295886370857049947140466431753158813074862834564637373473362459470454823570959714127669233783472341550490824988152437519844551823035275814890340429321031390955191042407428138575864646618418730983993077201727085709252322192642384711428862625497961081090297894038469934535128803375826178361505028609699507651624841617906056635174396435926949611453759578902170376318522947509964018617648484534404974021897151323459376715652136805023984556121044439060005718176371016020365803147983566266811078747281240329232006667323675499166118995903015461745778943096652196976520592388927346471227539647851475386150544757624081354927990556512952220090834440983846594087168121791547293308377604533402304582929410303469158853225732769823213626356500592742512614483878856074458687906640999504360676809374267032823674952908781373399554824904409198483208997598630993422702264841810330964698463804619904793029336983300485827716402559463854902304614054064907882050956386617211624256066028416624817484853779090444789110292784244335350495866282498937641538347627874229313329123582920782687911624605614561277731139476991529527069214352557960559592585467780022213936362794320194502121232164153955075321446811929783582567505672309173414163940654191449209932322542269767050981781474235744003108168052601234185032490906816218935218934020170026671352081481137864501868282337759974253166424784447614101752380149380144919199611928128906976886999340704099492141367796268986189677110856600199082959861315867968914630241977397795709299743089696434172427047294489356688641586089146279564327969311626660695045640796327676737077182786827463627769414828946935746429459652970600613754143525649292447596523851396730439199746715898108851362129621768615953513683442213838226155428708535759515477473406281025415781237223530878601844915935043158175631630432068111819329244408584575404128047875458252330154038471807576189717629345940133143442646262547965386305288631705252068606866961949330049227797811608572296264475772805397344254881350155094632118794278478700180118716200949332974404340685685572280603326563676637163182295578330325275596142251975094978074403903745736042241060078411873686976918272868103837968541069913567826940461133752695305910306213308256602063179800827208945989524066540316957995121938282614044614370697074653838060879559068583354661717718309779939850121415744799410292924871021376613010214753877275434933606074672056255861317681371191477916681792083819613153743703813322171261734024931360938127211707684735771739035021930590872970213882583136082919497222386671143183414307077924048324520804981002262590394166017952449487775750954848837020337871904574533816026809448285406077026266080583441732278272687705906273587615761230129654998833152007026444541148055967956785644268557709836897742452555266308010832155794001290501006823609928350988015160456491883659888074673615391949776063518153997904536848185321618462174507169159242071224059418247629306796352817382250001486337841590508217020758820713020405287606988483139773977400902315118581281767507100286862363786857667992043203996123910834588917056457596709031016214106771248961107306412123199970686282486570227916058503936793510677781408931933103191176827898288865696369516677382430870662749383733968816540988113727981315166331240096588874261512100621059758602970203219043978505713027689694800659297602083134067517705971684986923233096231858939236961261279532909159279449187595956367847106033975685257145280202102765532684896576260253468469072262252050945593496377174716667458300387277436545425543132409034129098317661370860249962605431873453525861742455586687219038926101814119272487589381504247264197978075057785355455030277975857891087337214139912722924124168450084540886557356939467727740229176107126569602256083396708211903442371918881348220476675481548369063932054887808107611740211288972293740226153252667706518596741340189257504415592516351443074221120732439192754986797320424779093022842146724654115716086501267498744401552964851921962963996488985115837078664201331022155148672035251620799124192589665455981679901381392458802163361707384292176438444354206882790911008250208531331307679499975487294560699622775278766345929453068652144689872755537373130450127221775471628233685795637042482743723247635425966347911876184177108504318279812849093232979154210805994082471634123189693267321082689179738102498595919052561263746964351082219328603916252041463124249451189179192523388751039593480083628837701588854374428053699958861755890589081700666121434773814258354148091196448314310377751575629178796675170060113976108090426900895024090797801250650209184220347937544045403131204063892540694045407627054795832387881512274420474264175566507633547318320170725843646308647009440151866232650029820992617251320829053450110846154611045083120402857536108766711212257883063995601137447066041640391562755667454388926845189654772559323665393968361200576579153587152503796640733516892591396841805379450717301847147632961467903912016558502420594262106663441513918155535385811529006415833479504440727530910422100650291566755400557461985035179880516647250612588493428679049819101363823976900785868247998053946829775906711028401235559490330506479037057219692574496180467621771017995659804942850062974754021586275118825909768677285838031934780003964977155348823635389298245863497327748156793187148226644235945722919182342942211833212965443514316838887234793567358941652129119054334206569961659038349940902756213347985733407310446994351261683991571946653558510450461032063578149087381259444191413003111184099098318966075187241835817859165626363905230662288619383956039217967660220247498338793178303660971666151221879643199332327034415402094380822371476199440369723589378837584526997775680790446553931267206593800391231440895976560038868126360089919927233422510890587073106910894248688942347359433424371247303458031637086605034248376880824480105980301547832725592506473345464101240229997723863661384158584944054065146128714887036799922520190914175393129438351912136865530845058761803845330206471796003962925376459089047104340868105246927952214742667985950120419465788208124448840686971193288691959054587197401635497840379223461450395794021733603793118900512627590855960587076668785033378695409603244289856601264266240359603811917460715656090291054693033781077596721355991076689831894918827444398376271190176436136132746371509601864785244662690699278605347479174971640070722442108579213789290407289733803286731690754990792220842252389998598845480954079096620967676129161655573229575718967437862577763367548815597355029113740791618662995372764188782559347222804642813398740357593938628742657134653118999897326294163334224961179864679686492999625941109248893571934751456932653783067203947879490216248512090858325046906141845810196523250197027209846036439501995793642914925222098778827180913952417720735244514792205836612379390888229697919401330311812546952169283215108854346276294399445359747561165116859080396220243650111904686257561862881532931244919111207644085089193336980855118101293406786388439244201392707046651901667301538555064408766748325207934508178522255751498135375763409530758126477166042109944300008365699640486378443951940365467539157498394551670173962950347741377448444272150473240010840632279652001931353628954564458623119176941312105585598422187389781124060175793130891077656298327378587149804386894283955413866471628826259367319172772677026330300974277142516353310796239935122563908954684273131429921584342751941895628591429807960588818984640066356676358791071591533858838447139501595442950369899727080994621877893477551447957033904028608801914314056739623124735978551324542267845030798281504649032461366685251966627449890663603325792160283442557276482228336036317696431355771451189456638400086220876443149537078067058255823904471558129418866650013147661535421972999411475880905558216223224372203127419886444278315422852496966138751040541494947601075544499459822497560561758770945721597123970556419230494895547102643689183306499330322285267114897458853852015923736824156269210004146983618831289213468349978090770031841214093507997151881040827980517319981558759905792230966785627454788346850180408238234043881236307364180691103435428830897514361023009534199108098480790620773509957728005074521718976846084211605830997064531535963065699372668608341173838535197398402174938469666799437945657663835875576236996704761620921026959595693959527065263239712255327182501121719949166466861573193265674015527094787425072239075043939174716497737094747191643575276004291221050798539588137837333352349270673719827348884968115249859459368172212186774716413595406209755118147398021367111113797835795086344172927472901038357179713320058354135745829338411536146111585821020305107407740183494205081058157457022754950861260933061732629089015245084682970100251513298507183719337418502211780096767131853873840609336554165995352074659975324313573237091312943007616842079238037346435918994318400296401628068423928003310960287392120167621530805911061126313190210431732249499075634368562403484491964492585337332927957012726794446339228703749798634631576567652623215572422976211055794155915328154376783526872599114648769230948325529181780632736436588087732336349613516135552301672844201196115420463931544196838799000047093645699071794694087913754158599808522600661071970259539912060310986961610773342168479497197403105745770787528447189854319849265626568566260360073973137584780418752572667937834906318690034758545642423297196758030816202533745748468432579316784815467992689968165676035402103205160835739199106349613685235882795803268010324103087961762838490893969423702490459254756456759153221352527087768853698477847289958965711827042854121419383041141947539611595774598628849528267016614771392116374878668694179631069365551736512005241456540165994047939966890851111296837095428972202893051505214179639879605927211540769307568905689220791306269892654152316359544875276202394576003517939118854825102025932390211539957667191804178032307518322080962916106558235836811395935600834424103282833174779800353956111901722122130251831601340757065469166489009677877989531680307416953490533512673682586840083199465162989626804103638064094370375308910208129735913619925693903857707919883211005759557535541501819911628229079379217258825880470453849517018085005689587383833818237003679696776861038304605799934648682673335397260991371660938694354092263825252363712740866356222195027071199323946304978306934725209663479004958396075093379256257615945450013069590511984338821155347973537971842692082522260246063551363131429420319656017642657613753472605603436834515031618550751209470448706573990191530446727331211806731050900191047992504521316037463973478550594118040786279397787746958486605484543502454847890287410085008178814930550876818489364623669126649651639755320431063893503562321284462517709885745339139607474165263630517316308582208991560256876731509416581055332510915803904849090916348405876020491718419870243401035030188486860373079901385522511421706600137855639814859746993243633674718652204129731145880483514807861864171031706811863934943493185607626945182312715196933803259256555962156564304941306028108958973705227337749466228008053418601488157068139635548809101976635886987015945996165723892585370297083513077247689600630699747034297586740915389102684743313068081073465567133380538066359648807121814617491657313604497778859708103230972592393522262179652519638276694738977999401115996364808561574908917302886354184322297176909209270109778427120095837448639218120572930034244999536337874540210318419923439968387877486635955519809840855042605206523406304039188709239595947634749606360086688900521200715175184003418757884782417135376544111914734340558853301266530038229458200608405144718074485182838106807363766312214099643028877956927291324479595830593295456127668020908200092322922242500354530813884433268483706631487180785072340405703954382101651184082744252862683840019719400908008129096943970038970262905018666969297656064524451051246600258037232833032926456892668601952173216294297362147587219268134413263680495721575360750208974011831366534832619819317036639994952572060620879207057295740303629533360137158005883794508366044489623006081131419095746003137600529243802914896246082740083211432227503225494357002140717338035785979486828008043139626337640747122131444562483047094903131376575380414323362035447422522118758956960649252395747247675447272748721005685143389628901637873778428224165843958817617745521187690361840561728685995175274801644857631451290215948440640270853905065598472999938796892832551554408215533542532776455932013615622627409573148204165613054578162950350048146281285218862875551028996718649609321064997751120229560282223403864871044445389108599709438851629110419203131910088515010029604158436292226691294886186447338659043775569478934893055431935780026964744673844001980252133392685476608725157852416303680918835378125422736083375568517529005626109803036059603893742392567876690031858779781169640786189357769791640198293626336182331073880513604696357190314685551172582049123107097236135236496702709335263058389935404475654670085903403500237876133321171825054627190348674940366370819963519456227635060941531926779919869695969763833724412502664942521853061698392970574655246310127112984101862656877854573414848201156846586210551676368944854935007466486881707464844053944402729055658225377439384259298019809311609368158961679739173596020002782306180702382642457547148219104924685709412396458960797190219975209435447510166253661208889603201772869720097561413312817070801053724702236524698577737787801440517751257352883983926647381373953277040956982618342119165969169018835312702980500873480483976440331974834865099935878709826391729847975884644923359886586003935210564185050009823562177587352741372059986067408647111382265494813510751610888369355485652318501278456254613426182133296019856056792173809895735328685966792657862323092477351926411632607287058485242984519316993137302716129782485912739854641391564192952794510600427465091405308097986522416226913167614618008962708071969708082854613075930036148212539422486367093938193682551788132830020312458756490330125034893953748959736800629482476405063678818456308198087265693947233753082419619916809683558393659437156255810073150154892196625915824145980127173514745557854780353537313393554820832950694499627139770754653020661423503500824550803656752662498464184662829919067985839372237947180146451910118597451779658003327981875336892759486794499389938520199090236353335116689755474644953650115720604158471147175839454314868453997807775085632387639993239943322053772335369385847072754684561635634598659745813412190571268929919560137895316310647044939077986673171007464536705266387334352165687993785348323761240482607773431707469507056856624080917568473289575396023461015713464506910629361282967085226745223932715678000668180645345876898656545985365182877292904683470714242070102639153817383488684121204879576694013832607013214172127626039940196343630590230802469324776517825230037444256344483044638125974720088428596128298088885324672535062112893955544289649767743329800265185004257449511706570221067449815017530442895214973231468353347941354244858397649647586127198397490074897800846421902949759257939188971200811557175577011839579409257072810568495646560696161112170469566307385669060168294446984213826926944073394941976026692146541512120369614381614180042854338381020561221023764261184883624582512803256406284102007812611705509761295478079925074086155959922637709277312811841208827062101039727544666624258591775049146124722877822411149719554426669517316531408599152340419410623440965973393731986592025460314401936177279275924536270378010146088465143528131241173565726053461190048401464719775063152081710343434778036140507229661314108101864133006554885640974042410588472621765801594810755901812852112647186873750388556372357479829850411981430717743534098403588424084645543005246603114119574660895298784149863264531738687984004600623126585852797709224162968322944050755707828176706805134910112400199759101089188016277386760469314458338318709833690243852926676726382626092464733301319360352995687173062075779500193533499402327891419484258891321175763759746387415419247789909415114414903562384256812866264579948831473856148689475676878782911076815714641302922676496710130695680971289494099760180390555607271695622025306410269303066884694525724061932511044091908589681228876864663702969278766957850091531473206780404268043858452791064114925375353817603101236710055628895358820105050283100893405973396162352716283317775620067921549101455197271206091266702627353086219227310511822426553420591969679329138676076085159225399289322471922539789342025638851867507740596711837188970898500269738982842306165606091297849721197112750789325273913069611632297997128409953546392344797326448664924846728846425301848885877863699940064644406264376191705238279641179227062992451658189018654589025480348483880787180957399449845107747423331991824864904314413276665697653312233410830898828033283951336071992385324157746729255937876585016567700892737516207759840506080380559273993781457549604622529721589338276676811950536006655398181009494143629338552793945250148141974354122387864858845844457154904956513759046993088762472589301101654163322572897777009311756484042671121551954358732559952192114886792256434564161338872134194380413874916405761712359986935419025099620933955114076396399547578872694287592141816808947271451668900436730926584213617150215183889495611420051736078911649148884164741550418356744007506690935412105927051362019344285462625037656292556859741994474566856051913701737568334781145984720266903120714119797484659021627453470831284839228511748783518009471995500115469040462451465693472102574452754111656723049794447536205044206330072296685708005115043636775154969890386570399002075801167389070952629369921987711077347835165218825580523323888489549947190862048816511516194742944336870681717595406640413878427784887681262391579791345466755498372295039659904429156809342945039023426511092540077681420014468244733794067655048161880355047340495156749706408424186805480606112614853275217184608874954869269349500703700458216749718577883843853272461897076363780697173703412566379947954671434628107734970094187313311371563936029949580428952080815106029660918176728637414937597390277315979100838208411460185747056960928954763208703076172430216035720022783601284494614324150517528755342713098131813773179293314201021054420784648847442768772730234840036283052701189645904137187924672114835761750677846071035682511433869522183385336463024299850146757445691538936786842450041584828491500289891729508051802626341227515486597028269665760340143079427092325162695422012415896171208705688088886365672311764196848330425001210869864514659880129868899568956642627136675337736651596536187330032271417786703826427659902880974571154391960114161239064279641172578468204883284172616104488508553853736220680220135739943498875492909198808931536439759088105592151008817441897848672344526566507644849618500474090790887828180724128590253173538560625930706784359990404217819238048703427130039022995564904991892031260341607437610532710884288010838180856943645066085118048975243716395697691333181906909866565087152456811688165730137500785987501914746044348256014266310683709167763189417974217132027578396738408209333392540330525846523965446287557584085890497365889052241195770554444752270413745019452394297049476544950830896995138297933665993651480743704850387526227023262563263896499313297223475786044600750948582086636090498944813056734473273147446013154714701506970465421599933129656672081323013230481174080086486612792734848123932805635817559558452507047559190657062561537015011731373683019030631019128149777467037583749814115061212213452597139376263034323986164313788864564429873088293661343582845473320010483659137744304438809549142956399281471474506674562898489297293275576237701560864632478143627939185518100233871468707930379372415725828683524246317287782081524999382827956636936167162634485472593651839301512020414022548135816082649009944485557805643870554018492797056917301223400188384475944808878686083821474798553125566279736407457643949523223764473006802420268466581140510366188956351049874982682393575600593357633716048448413528032070529938366561299062303579078949809791856217351572596977650102247346661426553182394920531970244476228604484310408592295900702468795428247481598734226404990742962365274016561819455521302449528589610137591946062502765576993183575397948508777321473897709631425017535569773169674686390710230693057668438413013434143968699237589330423437306934734120101347339297258877094658827333057889094337753177633952501944915321649434886458454005666461850132413375090940725799603988396511241673336737628793554203915193696120623933631069100651628170313902867795830679584776535419363087405216552079413934345185913016621328971368335276458876789061960948754693128465230648779514322709156490690954196993492885543859313465170600265657150495169423659202071430794345560898044876285932942252436759447586324815298509368484688711741247360154856915255220287478341368085526443019671653944369567433419673431261470195162346697446857216164883249426653332046929314083691294606959806020431506343956224681602134822310186685218188481415171149403064326991061619160578855693970649987916048570750515334763898628705519717009730934938620869224492546118254532286440745029889029376026632053376223868851159114268608972011350371281313993140070599369795793684741787829924173010086525343146321494793162685241141898583801745468583184931508435372250765111244466536291035839210677441485740628010616057725080856300683704853499817522317260755364904132341937469275920497314991497496251058418479477004904728003503762553603051161394212889191976371873058616777255890270560119795029496657824525653347571031518574686571195808163333235921295233573645259757198543191320965134031319995206656924938250677546978244362525299844281449361908691709673751493603164951213993423412918236440209870638699325112989964090750923500221496574288814055878289005492090067728884180421215246512885924617606681596432258860006179907634419762141955457540193005195250058126373982891368596660018147982456219482433482192953523363704114139098179741232352828948374149153633650955122734450907757356782305924949296869215708460308602358783323156261952925227256238666107347183353270268797660111252324798061309108822104391156863536601726210919980702501573230118328626403212241085474991353694632000648117079743376762171932878143330542686967003780246239542288186086408775327910257718118511093438168682911863455771133051436638348529744235415347720531114558203678724711942317308468167079577960182368462619626174328943271007021609139117422342680355087568499668500030772111790302437231593927955099922889823842817283456476664367617810493913646585718878125872299240866698109406444868095606504128657744391039021017926779417476973515311593682095740979865660516811204920078692046511097993662782482233716320594839521808794651972032653357280400730258566529630408046646271727754595351962663193200281501833614905293994480956354470882334688115396776762745957297393178953303351685823932640944663741929057960367058272726916833129177739661413111061787058370208480581511760704366845553208788024225769600371330053650731222991734963603466867562808165066751394186394756207072359759554375777151128852936434193844858383318603713913337880157144335797237382813656327742555285522531852561662586950533843344354448984392250913781715194498792571023678107016279258515427229603506546099874953913607951061918400014656960905444604533236244565226552046821298983546223027007862675099813226226656515471579620900583258382930483475562704392196396369518909634811822801740035059470552204670225259535998338322090558621501096519376030074118317312103148716178802885680515126921842025207603100753519693373758688425145606299000817418135811230692460120947114613177360116305350212534608326322286419956956290064924240675456310329705495139338495727691909765896941394914538363774300533956251676457198758525284878104047453490952551665365283603928209047569051000806175155279589483007145921346010663184201724480354903397592779773405466436002803019397348411360843974280528733402826309843447568064058029922563554107762895392735165713059739859477594031743413829042483735268613125167154069273149129993800664649368447957640122684628182119214931656755996423866835309615407111626428174708093680731008302525487447240380702856632912216788619750449779388896577465283570785274042575479566207103334381927710910235828958627688913085044485580516174062959047378066128253869713823545949308243818724241354729251246398089450162799065940736267173402126887179671685468795362770862641393622920588811956547565438347465045986938090117795441672836874423039693990960313087723916688297355444128758371293913594663153428101691427744569698108418524448549287589722074326659698320738775910749323332784501901741882690639803121746474029356667850237692559826819958461657629603062781553007487748007133959687918562917636027206630246111780770012612389250402131449008237645342585919570840343451712970038560329279188667655747611331332591494864192215329590535412034329954476624872779444390505426646576752041344403347138419585182137715140397726182985707974383148158826321049822069252175764272616617580137025313331855618041856589034656848785651010889068740249032683716687194546098981871073069475273444735893588604059647102851601043946605307038853668244063417118564280064006452409998229671574857516314513812513332540402954789120405189462316479171103287482849033483799355883191734396331704660058772516671188958795642024082602149426384261264817713393778214444285130788487577315955484869592874927098322762497431556451762906257397066717412564398372353468996381068294999380880597950072424269165875108831537994754989601280687094524061338981051045284302881425522438497397316205159239912425807268321964038546122847406647251144615455527235899283033082278278868328028074109713446297216790183369307073073388890498621113315308515275228698630998441062978886581157076528764823392612116845441174525926769172433583153853999182509131382554328602209919823629749473616539583590374017858680408120960638243919394443636216148940991189507874336460487395110823902121771384416670729660373535165776308281932067188232438604526323453442212977836914518746468915642949524572338783131418278969650918204067985869449937267075709288238212680130500543856278238919491587301408948996334181141969621759357696740738971545545807446581884683417269141660568148680156184223496517111991064380886679400487852128506957533800920092136858147713572734859728698028222370952315317005252514835343706598386546545571575135878253174394436949857396023720947347617693737226002791927244130884679367300261981818874994550580151434847285858552203037739921973331790100202251894233273565772514993133168678835252009183582806254399471455788442267647133477345716490548884539216356772587876307380647412855746012888547709282570264208793731065801758653957082800040919834080460989970055589815099837000038899284841447379255849490664656995798000018007728876827435552836835850297889218119156632729273131211754318909255734381826067001047360810652774345249348486585857986897600270221921193938027969691233048048783364593830141829598628978739822492130706481910301848272517282138569718186897978197606307395209081562515925685547580723518412705424176629664768624163731818107997857886272159690198640734804217745076350204470603322709731762933150803066927570045093837936819381461761132441012275619333228043293598729414263024817676872825566552199585481318203555336114345725447198307356791477028272498401011074212941682014392609153781617593633906623683226881863081939095285985594760735790326424004152303598645107862564354214837803703500213799391138273724172522977392981028882984364847760027242778365122584817795096307386190804589448264370288978363407165814709330154079837569852283983939956246333794213355860336054044468030933810788236612407429100450019606709961466947141616818888633850493079306025693704938036870942781498521949466658454861360547642815035493481126907656099001006104194157671677978346879932326771087381625420645159730029893158073634856261051075966633665681686770408829877231799467373807308638145052499117741534180154497733316604508625900767116316803348772888354409901746029800397208890311859623906897367219644792983686379950568716678344065739395909191617707048421470247361174302660811439711904591312538142794429143179702515426732174584718526205660129006778854036056285246471488325991039724264350394094301280898791588095245425433549500087025040399160322940321953720128512071106042606421693119356102076602782589862944924620618368300556649820171651737334396772270006125814836726605719156088622278981218376236498026630439441174156889173216659196156223917727709297400135750183507814527894106431237286487774996352891727999151438111792564267712804711686360000033667741661693399885512718745399993067290594990518501473610023470471707935248970637483380535596491878155767781205555693218784213003678659026515073555874949711449532394360943201101469826981763454637287122989996958002553897850081242363870165674101258730367010864415686741787142379979005460671112278102714992704153336903016466186629074986682404779664154207859567354090224130834835706298189558739323793242943477672467868264281516155952997254819832664937300592293649282691374383333787621267417724640287217810170971930668794660968803674740999152396323149570671622264542320375943475215636594142839125732719621252514116449810745473672981376124030286710211751516373353263535175744911132983498644855698567444871378283696814005977599411986871846373769502059699223943656393840704469821053270864846378902430078604514180788945483990504844051184362128673945971886030386443231027374119569247350762435626342158462145036001256847361427456753357936699723120584611884655700851451299755332951964586000621720573605352126789133447493017589498069013066211508638640399652103145848353345404635659241673359602109810843945966457244493739188869791789308092438785355522005839583971002615261636899759750291085025772656476997615069569338866348511393587667871598707921663797868356208744544665832791613132661021097006856948933574549160626597142033767689073843447072667864534990661489537949480564705796747503338619018727602377530674457804974654112658547107903623509032399659905000372933407633266121900489790459260318337623875794341341606758421951205337266315170642479404879946620620422571894018717783729007066604041336341309851617542034652640375647928752420375660190371321468979934303736083708225590422136682172177657858102577660422822878502319074212146229054870619931716929650267423560436038939049039624957928585471355158449772562027921867638336188461772653252387692587107538234791492076592666484506269839586229396667110933145372656678170223500944546451471994521694985682330600163702558430396834111867981169172713671972311255424032746790634386907229534074262270794532781302503094350505702215004615674483497369336043871940899467255050511872222482024594798096669827278050070837115258820745954201931067598534958821815051249764264603925082999258381969731159020926965248672264916017729346995771836240846357724446467086554520246897209007803207550213744007505904306259947297818495839354345905142311084970681715896200121284335771508627784133813377886972843509283054863414229631968135933700207533759928603031953363424590899747294514213949508651430701414624660654680638733290577649079463055825336214757890323529921773813294455211998437242263196529549404550025456086576812738855246905785318931681388170047175148757710631711623206031919794352764372396373834020516400675085236674131657408864677407924461209872245971056918702335509950980214133514322407036561982364569624988160479467874626778717364601127277826926856558243573297595089063829049501791140361882443501673089595452247443101192551348192142001799719742157103687656810288300298731667794197546334650837411383990342580541465378060162644740201001393536632801613187284991567329705562031537248956462201915607134366162746335689531787750326968407322074411888585981805800409903274747043422989807230922844521378565153701963875955860735620940814745303319657141783193166994772515886767089333822682064462694552486455986452262243060719348602530714889757273361342002292895736553432149813770037037739554212691462741521552891595404769901930944865734760809447041359498320680662901500481983861390278710947985048552202954244756135291900860907822396406698559348714351760033156519906355477056243903557589305330048947938317757717311403216390195828029185814180818959728461478687859400877437430713083022779786689062843037126272686163310853986815448992085357338778390674911487711260915098241539589462513617226183567961739346312370789107041387363067755545542608211794205249215173959037858257610313579795445054428103444332354403396914231702609995522574695221502299200523255466642299901530226338710055663124094189457143962381284570991055971826724516161565114850179183325069364269472677802155213850618856773235973619742484088299151884238122398284113042822158993420037567947998491214210828593787209698683768746456531753506175913088976800999641127142524545298711682306337267428231081231549293018541729157988741702716470925644834252118670894344762362249961222236939144906907406665882663619151126673226292841021738639663553445748838915391344060455343423644455794353465084459682158226595671780010197400727490036203691406438378459986286870575440036213931332171122755253012197016412489816660909211662358129694874178784307528497014431846794594134452905321235083247916762185421634331956213677008887145920646759489169610339342588036694739254830590980968312802214705195495189119975737357174006521483120533655335254543470999104166417914691530623214493777143783238176678529279154562905708460801167540482375718758253793403571510017850847298799592491420805674440550555282873825866381170430580721347951375404099117953871233937737687278746920791669082485592971317794495257390555743170365087900110364453927938219487762450748777053346788950228829497903926175451718646010076885765994066241660205916189893370361765748689956349945268917340883405419326376867390293563319907924585948258073365000981668541514143649925790770896874186646758230531164390050260509947578242099860668820352547046109552358780000698251783335663006239096198679073631796519788811306947941660833947024362915407597880558422867879364003826430980445203373498794914536610782026239361686480921604722838885273332600017063656627574614407280991712860600698140133237528563885146606699122894241234627663053785443501770846267526874561586054887631808322167842574166021296742256478330154454214369414755012554943263777184652063311056983202457897499876103002861515073726363334354175838258214578387581362788099853235957705474537421460440550037956990530003912335183751539666304819309544111122744428820768693846322255674536619926283419260721045840018588217843709283756251276439624808142639906223731929432202987747662398822944878098724854999410250401745902075425036784531401515143153048384372231495574990786871421174687550034960617567699058037303413470534082244711433784602335644113202630438136082273587719399220443759075913457310697300742731277185481483286501459866984227192423079665140515822846916837978924312231767947421625446306971926301196498220347508931807576380655887388715345189914106647140161949787034829820890002524733851426486527119731127287598735505385971550976675452967132894929889594430082924080660543784466822060151131371097156088350578228834813312428418691019891272570424526581517803394723077782769940633241198162231437834295913398704283159405856896526144296122847205603848356306152154859082933899761867896377376676635483350643741235851159078476397182067361274002128656678346614094079566802651538168099883857752416277463111859721202002300273390062375437261043280376590844812541192705775955479413346844335740524055583526718528996900681623791103188277512060297680499514014758923772982632151724081139562813682328862299101341359584902619899660853197707351029704297989900860687275929867733490444519594624987792268526621831125666776312737691283782725574509346614180795375881421952222503853585420757945216979773045982273137028225409929251615372382293668916593491303480861344712008995292777256526494069282320144895345271025984666118581861617053828015482030719927103258428226986685988455836805201900507106870369346707235070520560428083714189356943943171399789290949340193683465038181838302251309916290593692902011119541619696219992459888085241620333384601806955574633186231561919407330329986986570846185806445082346830710238038754287485098218938254509858032516398346485331310757380301250006042806630696925348124736299373679922242793860172869964914493671205484155527831077277779499420591874410640666362739178988869147391860599005639791746052833944958498420360522743071246482111294823625749073869341016759745128200959884963793613905082568644260725781609085555600447348641804261214605760992440095021383613512001417535339225912561240580596781125128456486059837882469538822132773878791132261119451233359045838312649385956253459727016360176886832621159682503323449215303435074803439724750318332167140801840600422240419039791903821598103069884746942289297189252919648996029084403441406438581574023263353682266710008253188483766647980533055019569340061868322634025548264047409548850101811097350828780953741694001705958668218516935577580660106556065761769831149962806204857978589874102338305614634380427150955914911024186412703630493009299247563742431109084386188508237105346363548159411329980389186871701671408463462895242318038105059363677158502403268754856250309230570175250462025522950182170726792967812253438825323639266873588125028301150827558291729350881609586929449800332665073940479367574051282279850044972800742884315856452435587997205181017093870838071749131849471511809536886074595663116726576346191147733215145705676940025638097745127107946128241670957074704559346116378280609727452048131421251487738185275088315229190231053932466134276941803527463701024509054689908645339381545144212868951178207316142728322975064085928996697010188938681026155699221468705040223027742731875451324500183049159704637719217212653578211484748350871332907276571251264642782433648278864582574736100318417208047938512220900804169084054680880691526290960023712926468263842287711888006947361563094747066903760770422179472557017047836719528455112365307439001212537331838860398256750515266513611935323582791669361520433251938194047094733515998506504293697328573805344216900539974963608951222125272359125485228371216764784011272173724426294561216830043985914372713920922620570218944131481961951830654410302023276687526678439444186123742989224523727671184082080002947172850508959110903896041370164061688812641972330354755476305778376638564999765638379110942168965192978088936010932792348055213533729253325381338936783266545184366496935272535815701457859354001516265097198085342930538681782812556180001293172673618194196737110330227643193598875110969601170590632894911596177270998500384712591422202558413866177750987857517183994388668602718746271565250086042147791147137070048701031302066464659151894160633412985937701714328838846968110651137555017358309723131609011156825991127794188319529635667959470548246029092236593894254773242458094583909416471500366344974321717807441498368932644576771637670910601861254244449447508951239185104309979441061599392394195504685428559935825828576890661078002039839940284650031265224369336052590268313842288220713125504763691624647900718141066923815344124753398430269265838617090425839557626005109646728811203045777057851014660137910255302638430822969879761162301506238901306118160896226552416621296329447339521577498933112860121366830261258186268905801770698539545850806574022203926522734123088817834825747711309362582217244434376004200612081527537784010988122447047619525247914091919346977185350402472133212705871656234849479775057161775909835079056958149903769347345392695281210214932098445467889911127516971466327492293768241758531001471750723546684721220451760164217961248323434629313986966473486945887265676793494062133743309016236740709170873978929882971636611038064399752071971196285119881678328623815010961458907441546426552650368111914449896487150189178820411951005575857983860830079007564244064886421343862070894455020883174264385298767837066812037597636996282936414026442920815711853840994605451438013094872782538914287120295635972004609389490934731869063792304540873586382781952026933934801700231134153328770133662849348271140177271843675733010120573085263515031943363681785664229688858280839383587684107482744892352887077576691478559935621425933595836407156953006167589505274657124574608842523892854588717211075237027810996957393700961144427855022418609335821259767483848681794204295958687114767721458534203835954827848349532747978452948858284132429601357313601356784768558440827253043101347950552871174408704603291829808502347550780982786636461687371596420399665344638171541013777244329201744295693101067027586108726246526587632131189956865513150907439781684846451295205844598638051277115712492982798687198549331246457517989207430679259518731781138561637897658487582233271242662485626087532189259832441473189919004597604052499621262806135723971507690282716938482615388748630540807530720683321423695300587441249532898557801937534045818688410128470082381538372774527463466445938858382025977238561859797869358633287500022270342350404907509781101102477193181629023105597787789544598624129789036845820761777237182531519230988277360360679060198586666822816906857127409171501723513989350228410737634457775044112306947781718944494451880112922272068928081682074727031229936738185073004876279935943270924940200555839717671708819694862472727594434676866763037922595555572855149996466497732257701090381465783997062035429818164487027643337797793992462290887820682259353091949294641909596088332578097627864963492027023498060368883463125336574291335500472095440979671339995742357272910546019029637495397744214005330476919617535596718983223836717803344512406178200517418696943804345291221171898901462988092792849166688917642948685057687586695913723017734541944901132894746862982727933421982240817049698464309101245755215915039672222769687933806744007598099925877667354428522528555028213999697548522470031950714828550849400529980475903919220861988660526038074959655075255420756068054935000679534617841431027002192434884737577928506825270346257725608965942529473397321745261998586102217500408498169622390219435842626867268638915958179710897888637468768108464629579144894759928194175706703777394839349140402414204535154737599797967009698699601471392425426191869286171501671956367103713286172889539275951372041952613621130975786276138374080861433656040677995346205059767584436613663775908057315240971672471761697774441375519054893154294553947223569964563060963405649777619562590987966535217072277736182782922586106030840771240732534889758300722623036180088189332857087437094783452425568075096140062114411118539751836619167129350209686434095914638525230051664848207342802962513116385714646339633961738101327081422172656325129701360054312661719935524350809161277904666853293171118838859182625398560041724605732202856153654117848408374222670900754385512961938429265374586839413443729347734447719870905900951084656783259136028835020253624197067998142180169781896072435942234548612660898861808306405658096753360739920504140235461650038709817726479946055024317028596939072043398361884155949387861271038353702094635492494713506521406602947228973479325537925612436249206174831587319053969642855478132451641890188759670447533938839007134459884869451504120996100406327051881639005038256874696135784537662587304239277996577050936056780585557341374615221357078035252396902148198509933149621978758698874310699147089098310561521725421809009705260702163463109134861906872957742497023567326420990826079755420562872100271158813169552059436072520500351534263019072902395776135075615625949329549017117799151420078272734830749420440010647274024462761419726705759060390742696265427996036569151831784257764874959082702564038130796184505165742375501809623510977869931684457120551690783701923867234658848327981249829742664838726853221827522555640986450660450184890420337283453753270885832143260898038456152529435900233961713128232896295378560453897063463324548919586698086381410532545915142450203647312879508688442205074365743194538682590380920750843524811667006344939619564791976641480992801895347964011498697828157221330418537254048292151469881790938281022560758097433191654410159130594569238921181586562994968922853749785836820339426076057730623181730423620986576812006738662139257841847519720504214002097578675161567685634149768364905867925390858139609167681338870996071831290606061885453987074343957177706657838159564158061972401826186222756269630778818590381864328327602771934150833900316977392882221623144411059414487591094525264275244668696023383747767805232258152691617448506497997901944814120882325822985201163278435653910670263433445908315081512062664053081272178505038800461660141724480617319297159309769451320754171483622598156608335541701886180367045881174419422944791474180827098777847378868422299296479329339676548048387275191763829419985076290996874282689111848655091083697981323729252367455037434253882769286096551093261247043224605386851341982639291413448813247151475610918187347266115796528879255127463639906813131657811259770646252225500388618940961798096357140130603436934895629329403224695372591369641302911703139179568331753656478401816560752027396441683800368985554261303879944870808418756033097391574674001845222415737873229415464234770580668926735509422065945295664662350886880450103724127756433581479675622076754272857993888290994182646392132432253583857832880967418159513169966766327961536081572374365287990139591408254453367961464720447048497032057765666903350272596718075093006269867996665313970707080420067769295178648827264103389710040055319779628598530716829733581315057588439385719018694679320854143331461185690738171000987882641663646272525191168183597155873110865367228044807994573123713303906869532715851290739946770778458821029974115766258587297713699880816558643087013628860735147006872845387826281709661038027107062595802614961160039334419502325755650994273616325782492503548647952797687482489076131078626465938934560995807885809145078741692913860488276394805467666685169468435747484259931690227093642919038737617470432426224289564362864855190167315923392166775431493843505329741392303569633469121944092486537476646306582516732613675087548808249651518261622416975818859600659825079785539159674426198902338942505697209182389775386607872054636656503545055402556107203229485333950556310476944810944085659337443290094340540385527160748702332131475136428148741736937578486601140707216900957233362275784749752133116123561986641523305264511046076429039193365898955791854746793464978461790389982369014361223811915041018973042370410357651237987599900247227599587609896386503171744922005630685428805824978830392837232847408674357142684444210293353921498823972218398461348535346893797567266881640682252805695214887351992408543814997543645184778069679194948693693411641660441993410505682495378262788419410799671280835789659868237136577567461819988584544162365452311770930796002507313011631918274254814949841343959845449128517388495020764147899653508892558284749059721538249150191378080616224012026563693877985410005403244380659910902981061086888776634853489935472188837705037832177974546012075320489547228662093257011170368911307140043965657763156770976048403443173805078828935305641868476118533349577555995863945154808962725123678749796035890237032012454101340522990219658290396308630794506121258065192112441535882628557608420626666686624924104996676543269013702900262252096262568912883335013825073285026595530667720472819826781001330164369355899616583138865446123154372526100284565828833730064375899164654388674125015902232114360285504659868094055692712483993592004406725095762851827829828970579567418031808172935470030718730802910811597450351722047017694439618100850139235705946409591934726476089709433027715787850941495456352911036559519738010908767630374418172296843323142069047547425473309734241298953708519320183968536705622689252790330112424511128719456232967073530723655729711705186597383163264530062231800288166550839371144591624355853158900927893654618875298763353944239101834119661089416768777382098257171338982048122981518262075919822525971363866288856346259394173701257570540172467210312671647143184535038941832049811963506217981159985303298181875403529097446734944716525804860168269435993911525331733537855455337469864383902741723481519125467146013790108180420281676252986351448801227834125376347198642681309563780120659641375040927070572449842749555913132143240444807431975013828677202671187271762461836377012382103587519538855216840517624979603810234324155138794354890375899960120780135478174993156101106147364588556519180573533236520009116689526151180959387687736143190571698126755038664212159359466997078212946363199974930471636409730539715506651341585754348705232923575254957529795824433442968996715422002324950336370058708062414028230889114302913636659157025678171624904487032545534103898492598261163859730927904896005565396687856316366031169314403119446024546540326760980650127052012799915509420731584447955912191793485360381559563704339778560700322744610410947334524687089435095047580832335557049350558564382728022292419310234737985643467842050461238419214097531897050534672206053213749821219864285400740328907747974798733186655295226144218492949534827447189334282163287116736600778644520513059045507763668645481323300199303359731836096904918148888702107041593222251950032883813150858662502479800663494716575501795739597999606021245150517391813600096926145304350338895030316035922508275005099273208876842929490524710108863489407149986520072111959964785124055114473942243511002569145116263166559151054304312037332658907833890547552931795846152621940030593543781236812402817295657058106277874718081265235535647763515006515646013063063938227197393190210739484246595959185955727979562994571496709012636389793707611919438401014816198953178448899767180028573624164682378175043513310848744795678112557546422067066094524398983769503515660238532413808704661192806575216552325195182268022987029868546188223206491146608247604527022123752490938211636154291989955653882643347450116383151713415091703937367098179145997039690156434976064426675437814652259069341431252159421848751800434786371488301724255482043457494712231023208996365948828287834102324356118651010239562764187947976957006201478917185069700918259731513968335506468797296243455684435735766277625538327457377129203004709883707084562096080867014110304632094999854389415762826548651399307473687779876695401493793965799708892510987489103491850338042622735612262219036742377807465274823504665218582208226511871742973026408052823570778277201761824297152929637134906376976865333829777579030313589398997931857244289636634782449664987092068677799968855510743697041479288963088148263592438334769542740894624226258570997965179129862661540809960538028897899945999785395229566801844884064755219134692574861635110139129331150225919480062341744534699762519083088230701312040062923808202375383752983362450273640476931969225227883165929703885362294603292192262021508003601934228508785105502340587334386945348473950613647609276662905372890737844972979692575800715329788343714726604721870249757887301661795020363167641197413555076536167895379286236851830057177623476981229736991640447538500983294843870521868228683771959582020921385682945241230119620425268204256656056422966718195065625323875151322069238911508199865831316267285690543053780539693567750044305417863895279242982602746381942373595441286467808754998893327425053846091909591173487703791773596349207071357160248003144789726814150495173762940054457053130411629954789541571367343289926346634799998212039743567839650451275488432710547936555777643479892205304417786368599218168993586512603414671522518485067756198042376170890368309929747644290873830344976323208470858951034797081739072316900383909729470354712608013652019331920489794924554103058944195562663627861059117250887291893091700402588062453640731345302146878328510717848452644210223360942891606590311821592977160207567307147867577258966661973534302345236030797412967986334940961257666110811470641234965372333443513668839882416412213104544185835121137698556431705120470885773234172703351059975672511581273364078878637478662134698079254630209325723666355708570410781706474906476313954749967623156389374256796448116042639308630511898169769795080566806575211045230462490931399999585793179330972612389230560023675677239936995503505110490222776571531956561370765078356128854944058504831296794534536849379580882593836122641425895401171243979794061669280518629846289210063595763590972640700228565703024578086865687162925093355336086088742933742288816312085363414381450501167223906918622054328571146044841395687466891785426765828910630284457736638667243649509608125381149910407506703235485103166352035308643651088996365255637306978644162925476911864875179985013349239534674653596130385137337253837999099104856838582759867645139945075443734932330373608170378437446692312612358595507724322697304795313302466217747832061505182607962173886265735012857831875839996968760261778578093258829578904401505543903683904264726466053965199575429638962718021889207533577878640012842686428202003915143909121835938272357774625119612378706666845592724864916306901714394429241465694847264636628724877414953173460793355112946036153672879452850027192939642829994915834423263061923707214266993544695092647483176776536179289053671970494620141685905784066876368095488109337830349571298109310675326153859237385727573710509636820929928271777254805199015622319129539323875693886036448944314847120137826418945062410295730284032764122567592522139634467340915014597627821797113456959092407724163016987383084061565860792570128977494364933539940471912845136615776105378325636213553393361718138190736429781015630275302013052335203196539865797405792646777628423494794445965993971956184083238101076277336178554320402021491572881309981348815390043244898597188417165934216657762877558172093299902627326686817953358471667511231572187732597854922793736999841569655088500553189629265995286179002891500102236041025275911981646050253661331914044514273127189838022934700506355698893010541866562802429278944771138190475135512588561923596037654899325607426391987109606498396834464984287917336634055642858543624713649644598743105582656832954898730989510582845744170938228323437619877937680315836188547012079108115392200880674214854215137007541169025252053092657741580764745894365802477814278595635505246715815750125590147969762694668620403704778305838339921101202180628977137145335798949721841599359420474921082161938506611211946378219040604374705282658083818110059377072363596722068608384301485657834259726710281186202614413809300067182411780690449689757326083643939932895147302399708140564064635884444489791384275402110535462574698788349735091760256818523390515361914008390932853897121966239529024260186653582729701399878373339283952660100555464206629647603608618928487200211585923826495615950235475640938801111126494097330422995870689403946208823496724424126824080805679090601250089962521390261166904832563045604345908696618567750898201632870789593941365091784352108139536140532383315123297482583141970812397241487392766912460710272066727555104119462963580257500016165003016517264595946435787836049886696456805936940087737283542626828349387090036151509049460330045267870922901256171732639637364460713689695562786215054772834041530775302924457199058721848698108450980679055982650116194833916984526097535931949361322781244464600394750816101802522617189163067507110939453944813291989116823115966070353963914540649830811405681828410820154260585293873275871621987016072256423671773047225126828188119624373726544858941362340084784421581154669455266743018643362018520666487854029500025388625869632566246526435714661467149700786567395357822174434374437436494952940453378338792055544911545591686056471763606069799778599000449452881173854257708646307652843075294919450369916555974952046219524785964282190614250869494680055897001818778708470976650514685601354480294871578885073038315601180330478898258027891726455003705078791596154314227859312730489878752280253296060173942663302772549471431421563172404730511928146048274571465136045581206711689060552089222227987733012716229786557907569861254019287631896641322775574877911503353972797042923398593689640397560474900613102898856557855970557946521034249324705750195340892074612697865566664397493296617955019487494231510418413377862793791848779803053376171687281666317038508306000816680705203730508020653076841977173250560636866877331019091927362688551587785113102319279433309247030839386658034916059998089755415825220396520245244218443380880613324223232215207283150712187148477796699220618208148759357546273776954835309576521089777425763014020566522157274291205299875578893164042552679970626817222704257418654338968600870891665718936894570710475952429441719340186810813856104924087100075991758568339194653804735477399686878987744350192887785319120696008475049472527229389753836345852733786883917016165938400900199770607181503061029973549986163496203564552079595276614858793378888846406171053453564389619043325094045665032663913862381864633803379944535866386934276503172193511997093369036863747455175859801023710814693613443217807796921977118424779594015021504709378783855920451038989423480101289836163395453516220605640279864580323166776412704159624118062908231274645229994469719727969142029985679102980975029537095656097586651945339636039407860220011683005128608945701554246988940521625635967640138395172436435399509911103079759420919463050364270113075826239153029947669971631297713841011371023091325692370769356753702149378008487722878901539287495865016301243582191733365891453556686033186700631052823678490412415352956697642686232772715021445375627174747153483294665882145845778065274841347054529164214823155706371857760455734500105761250952983519288713654185232680320020121067269664555814940094530717245951127660066071556321882525747679739577066363170973086662299395500862429760753270203052973147209695430573196649602772218710405996543434410304512065350276116421542546501184611462150569871973441657568332440448525231618934307042630027992862565108912795083472010386379284814339061935574550956643825156254778258030407846973811303808231087589968705010799966164122290737981491451041105486140707247733497832736170857141540981830782657723686649466340847273094621102951405023442412978423339631417750749628086378364565517841592731190720277451855691064863074332018145604748642120407807683548509673521763270246231076520880499049236824031453623613568585336061909257026940274699073324731395053535817503383878102730368025440800432525611000523092409730662213241142871549795600331262114679148946386577711244323872193265144813739544064555396729258191691053216985240744935931495167800658316641399753744222367255111983114732384061963504836168570265283830485426894912363290936267052603553441985566543315774366240104405126193292882503719692630510669350326022884810566765116122184079387315830487746540426489401683062020287474444237323781341159390534719329207259896458145581221308540798374416820690537866347550986598662043603510610564201500675153485488316741370678620836216302047569253055293654960418181071872430869763253575030017832880453132029212743760475765951879743968134069655593455970908598990072430399821783529569072761203235804095063425224033483508054762573804308376407963872229589717965484797124120392891882150010838749218558558633302824774225351007164109661611515725690554219230413994487673372440017312176826227042639012012679626896525798301550279527148584514923429754651316347021680393519833201353081429614911566789496999424957096710727611259429008743207205154977888080745694450760980989117116910246224690864707428667237606030085133463037204664040772214177145701371076646527446050597064880363799984212097677479727023023752743407747711580628970830475459278272847676052737714505285816972378475323532377198031431096233658412927495604755251916096831034346857215971626973388515898725707847813603265480565345660968289790542954029306331734906184514807822666030649827732266578787236598414731958940938844484462987747226377095697572652022996065977996068422579441618062103229652870979635223190282699277549199732327831494621326641337398911699939033945526876285201321537093241419065668226346313428409330665500116743590410558576418948667446227991681958999667466246163710231865046849781015211026075464571384196455173697549476379938922675108057826531639718432753282789194316096926887605830411813125725811436700551209230604680920922819566915792949596008761407696719461191406542440004840713975909827230739415333945893085430770820448527241882354073207327818882102287444386720718498933739003340887271047674133176036163807762467852977252264005743391015125399276215451909620787471203459491705388462507915012698823491590078060963002932235214621899738184022809090334862414037563098306804062120465651160668678560362193706334629383806089692592123432921160887550786033786187452820944781065239083407626067610283251773283149397314174400816635823001722276539567974348196243599784486720616928484072356924745456834282922184033470097527842888142663635532865263567725017820526066165406824472145965564404796794321093160025392308090968383772063316418276832940454306497531356326897621829820134377772848832714147855923761963394331613940352415510521384786079189802324744063700886444482347634648048653637141703984954860454546648924677870517884563978631637000335824833397253887442798549586020854138585506044445580165814280625368253222916552350425923919373947218879455782805585867056384441766772264861431173824785061221361249826497007640081002224089026726840919306543251692406797905756591137478659660656383773989348215465225087336762706142034052860215546262189557458568619719295626167169309948154210473843505308623866296633448241102937653843025827997768551577005978396340490440371427132381742872119839984577537997301435260166905013025740259658961766269683569335717907147998609743286873812738111488094217057340872553678427786360009576463836334324008258628256864040197084845317525208129889135479694662469679762111678294612826478920622389152264708344021682331552671577653495467203082844067364675755017403449012066481958424655206952919837555137216139061740282857001210218121708448547514768660060734229257595132716017974085318068899819813144435908079985090004506951943113530204756327244853877063575603490674793483070250333462180680462235249602878214876985233052689196101063390818410217631696137091477197939257240355845603434336244340102664769552302831855031371135373114099068738660636673904640998160319631992365480328779204796231895482161843344023238612772063372548734938142140847044351555176920278557190691966564803977871937929392484573593686344881449296856073952251929013728970691775927264311386065883960059727496940210423140757141668581371258261845474137053958191493980240726183605433350454858632098957118676227774373670843239359661398730609468999142175095931344796582170218759044125465051811547514577619978246874258959910964310258711429771417993036052958854208827674741936915778911961064459328412859916555023913674288187644883700996788038172024296207472971589323316178048018248476001212877625962031308627361815132723821440721115016202137196946635456602661265273718717535682390618047524687446572915856287621815850702168442920673237168238896589350289885739818978139156729208627704494379139048135570893445635171266788655022099999468469478696541200567869831687400332260276891919644420071140042708299425115902272338317689168623413525211886299863263010389675610837720100440036752231132035608743995546507934896099598676408013039801410956165816529321866995477090552041743351696012545371573904744156775003528690657097942572683233102592903591925497800772490877397402407331618508142078673342680894195299768501129165573603060283233716757227243825469783952980863633843028251508216819936648384799533679064678421566929769738279292503777284232335715452318550203927346213000071715114609910809776494562052364791410761011548809087390138618115818459739672822582286741454255477585892197088152428374534973320793248064246960860394705634978993973729780764864072590462426207494689275934969886356227238425157789199909191117245292210060153267321985481201353888281380332794396740670704401534295249073009093660971746067498110316935808743695328401227952471034845687611492077823737184884832618840518682420678931195820212872185472658680249466837665428353556776611536599378511419255835046780957279667106030384824135030955832098754595706825857043717293731772615453747428102379783703117045987528659857045570982022201962261971878837342451855220122362298996129333742062138593895997740290183884716867191966221180178659800030108890767595496798095512230929066510321615656438735680121790596729759274264589466450659859944615303924204473240092026564016944772665746533600869338599247128554254799019483669646872892614719308860635005981745266013662506623291356929515801282802197086338203855966674905362715982851556452771536935550629441129150446984330720285583739183822490301820011029927166753929927990364029346295096617383589260590849915784290871462760702989861540882695542704245696652925391584098640485221314529702800549994596592841652221788831740610727215968475571205779687778743877304068073332814430658923440242786315116251635490618087951117813581914983522068642490109489613480152687184389727788070823973040034789117606932352075959437280523976927591270689259143005834946577929576489220762421468469667101486767058596019561392392648498619856019024171363537423304675903936936503324110320067229998688186604075103136558899206926192725889518139056476460659145645209363062587156515557265061901630663383553309231725992472881287302634925332916606913722327751712924846430905075261889658342851963675923533179422811674398484585829574037380452166016421279563360280338208460175811674473599365110548407641387268593241856779011101356709570036734634779030308893719296159763013943496331408944820883979842940871135456322889830546028179092493744297330428165815076981260400976693090342217638128247718799762055955676160745813068268168455582280209217164662830239179595655370526381533633678626236344762258188175149662449023600322489132854764022712971814191132725729234875213156830864228032284618713801088979875194761200304105994653770359406005124442915277570667905365846479735985091276683914859888603227600420330713791980781550045430779802035528307803805955843254043195643226710762580731374559236662024993621462795784752155323587091319342950816793890831719122257817873261472505790255368713840240720838995124045658019257617514468250096896889901856425991736263877121654441579332455417177075676960415594073260530442450555768622171797656570852245040393530660329051801711113240488128507190070502473747376534252284932323992146124894015377301303811289178228126958746837390673806439093968403102573172948958889794405331432788519253329736303563625973129815307807839813316797134189846186297910594094461913080672321965794789588346544950315894549588973389074759262900372742122032758261941342122190327172867341623307042913101763933915283273253816926137287779434274094950748448510224715508853314838297060828215602915751854536967947241716744212828395594226989123258886255778948585224981654768659144634902934330146346763645934245986631272162192505541058657648430163326368669368539654004990923720881870222437848925422045112199050335995718395765051299260793529722966745207689097072772273010517994705694091392513320927451532199631147661394799121586434229016307233226348296877631756424301168105938165974117199897111032871020599862601326459802314221332991517308111120121125150566819940160769041300234009816330131780196921538745020584827054404251554223456065344895755795578257093549882738093924109178866338472317139444592047274758582352538526349295662256452581852158271033255163254114800584911123224924813675354373656378697728519704443043659114801205503761432973236945429154385071576203771889556356082438392680356365170475944856068627586722424659565378114260271356947748993017099789308449044138859684532733873045889961033733278787843573050042993108569584062404559539626376898699372031860399997945391311997056533567694767936287186612270299054639238908093107094654321556217616533511668049009783497454083337314003163515103335258972881932667022738630108723836966092167167236502648566271434634326159009768869598700896456942216830549101031144443965196572607116494731247301589675767842270250733686307006199091911515795756185789560524710281323351786475417255196558135879263803650847159795190946295580132076119439209623246168754980597894708986733081415723973050192304371652554455723570375787753786500653530665470414402913191916684620507257308541939586476730401090801159792753053888237186618022556383240703001545746625534314220550861190967179062152113145760646403298350887679748558163507158412082675730110851048576855588481820456587434341017690420960280389407398243042766831760189191292427311777554158949246083869871060514942604615825258997412224265107449862518040991365924636782495165675883618496560181500801283219537381385846974308703950704029118851152342494484288367302698494056386286948075125977156776582735158851405749085648108047710729470326403767834335358102699526777579482441927693725671173752612824991455066806082610210011655486868247491580945476251350022481479655665858248968484745600922618214888146026894608787008505624619560009364146792988732410238413100473980243009983339522256607830821294467828252600634735294907137624113076944484416042107528539645609403990114197691118244508499106545786391233302223493366974364028907154746954025733875175845901725741684866429259675965125771999300965311918580265694828632072197847749589667504978396042648543971552919300809731131150896184302777947617279534072308622995857020182764197415503388777332906036236939283459076607074879432056221574475642110501559114398081648637810611430633664455830640517180168172038833304269276848447646184575986840169932292123431831788607060857087448988511749827595259119423341396833222791476378270590236365535073106518707464115047211775865313521967591549122874860554341748585143750977318425736310846978111822795807333527396769647011067059377457651947883588982036551465023192154149184643848692216779734006820696114295119605329726500532836802997247853793035838302254820418559928644628614308416476535133255530066985478270630279409956365698632348592771207094035333060506252851598534422153307507471785146865166226174003816278584853427753090906707499671081826748655800218208257224650158046977133498979658561654247885521226343103425346944025536816197389656273871399652134762161464136224883234252604348295297031874513501531858223465964480303385688143142635740299355282988171516777220762456312469351895501874004145254641079299224127859638512022482147748599680991216409927908316926263340465652465432372177315244384946561746712064216527733510008864110211445213471486640595824994144183197504230358921464302304472302012235074137541987796802781751732239086517629296448399016330586171389992318069005398247506566581087644665926109832056804332512520007530478918008950728224568763548176969920131242193830692588422216559122915243711638788814181383168593762065155579939151457131657167777627781241611512198553663205837748677187352765279501259606003604047196157873723128883099656324766691143311149147269103812563244344022391870225087646026487716273540931213286441133889932149803512786667826143744240455108802836345442736515883892022429700664140700262457456600777712054933360655982905647968570969758355450073177214205571970140252767496312738959172523376424872232382183950616721350483657702193073423798922655956643402783734259694772919685633312684732276274011740763663157287048975832807788282888995154372071532827151450824841379448749251347450840973394386349666704798523519393451284410457178674512624670288092840747910988232700579388675909206498426151271209063767567376859668886991316736640233473612123180167925180289978602560191180166862873889445674700225769597630516192440082584848421980801230135668987725367183053502327579847259533437673102683567945631614559233819965309090888627975953890721871612907220296306462819163392439356364759168282251776825318435826938083132969124856315846997326329210059019313453345707358717089547322391776498997536195189664412004246148588424532735660186754213531100893092618516528851979793142369798349516835015360460020231267760310290938581138402277924121429098839928028826500036084988606531405031382379351130371622445323723990313732902433732902103944396326847295380181801357879275597155081779189928687515878708377290426151966718692454087896572518859159418632534695815687788011248469088365485079154914524220410867613836072012107301108555950966181005251742872296971598528306784443824332773482666754059177672506856231886193624770493385155998582591452601525665721536787855864465028936513734648264203226319634691534331188776593987169587303144711157872595338418920124200076310638940292738630218316670240459112515398594737019288546763517994837844187182899703181402521469954171216938878620848444955362802030599307726133694971826186367143092347049787687065216942107625591788250169340365357350074260810864547304630404657384312487130405761662080381986398598131452642600018158300401531815519715531126302444254930034816963192211651016626751196603655053803098000973009418683817711280570464571008218000771142790397354868182632620705069886725729569932482438887906264332023162585687500810966661654516361489024513449314217040367857507904853608900727623470165441637855250346946665521073668117900756853515698223084130072067741750125745847724762346442235886301796069152063734398994576893557900511237960983569893278329271647110423256181616366770535109992163803207708504901144832103377216185417964367196117775291213349507833693269131115710517493984485326163312284672429749164351034668367999289205962510133257954996416994032381931697428749878965467250844800206054786605287180594588988688625987000763016201425348808138201219644358079005289219180730912758955387131034083422771319737037087114035170585507373071711530660986634960602072305245025020614080822729037693716241532313567237510586046183699707410964990786705889880898059716104345613144685731080074861319451418522581258707341772777008364829944927716377648439566705423807958588111238398985208403232816286399043365410706151854960875492606619813756568539291391012652909265839441471153759751055198950167825116211100794635426313167647109583434383556931033219452594878594137194735224561710513804907760951970983778249210520529723636135147787643204966807907081435181902688092324313230749462286076255046495698194021383886312631672296219865838282844134781151562677042578898274463216574120006548954289801296581674983581069375602462006668643718970153693436998392621157797629293552601866445877463288689916182702171574187623242171436018663307106976751710240618235895107710432938260089056244903992024951257238437696550775753522110115168631998507454755248310203087525431122369619734118410402601232986252833702271711387709506323858798559162807374859179397650850518165108338398349899967027432902516595129491998481161081098474266666523370204766382347314940095157949742986407515845589547479443245430842474307432840341397021317818248041836063545114628849414152928400952109428087220290545368404734792607849859139941696931063962069945509724578103661493404373225945966201961340527400072592928488679794969731353591833971239157152100601078348380817345953912202224825515707721084396881182281940818203718573749409274248954449063603368146534244386037443512432888871488068214954759135791433518129792163388394417040191947812211338420526664304506685328180773683501317786633306792137613923467725057791299993766533153112616437748794924634049316860743616234047110800413663644809355299331008407384669191067538899136557129754010463235413206924567878041480944092788296593313890787559359862962912741023415248602012091086108326268644565184248173249083761743361320592992404076287216704475163921446562096548546721395162454718583208762332363155423198920771850594246550728942140840226576043500876701959381740968885580982516511982477765970595139021936599293931894685713870611998871708675303049790221664880521206183187128963996111768312257757436373779482562372597503680222855282734488327996265175066265973194039580831565129607391120255159090198564626254718406999995888566638793174874018766430745826273651059457827441720479434800245981545707934296810221308959328208370963812267041673146155365486883049838032553161551676844225354997372887389980401495328162502413721784045106272020736944766187931263531103112824509491181143095737871317590056020680061253574848756999152952980221611789193889109666037856299595022645866477046588194408774657130185860557608355580162061099369944943129528614790314867772102415462666578399186849819251061690149053871046447022451787738416049666517542061868416660651139547682337764119474953620412731686130074795509377810710697418916713274217190899342178710602191596142935926743407599418801493164991675912477233483848782682373123867317749708244985061715090423140042892957914005853679433503023505893062753561076536548435738630750256312658840440377599313470803574409178364181373480246868373357705527986103255315290534908364981064321100597595276148857781477170237666294231174658348999901877592342886346822645964925563600990805314347861885472411942928845614242814886627063615670072674165839546241888750702609098368050527478938346642774138319915783755102375021722802923581555664157713627301191728417788611812334648221092068339613524396619349611340782977900945005617039252382254349588872143131412067597250661401734852084491174992219988751616613368247949357455516039074351865332818016834351065322431439401215438131818130387763612484243965801086164343679170373034068856386440736460241339606673399337698616659619641576226225757718431205487666393746932372137993507449344834312212778345477817943392241157897575932877864040399371472232250493965083080708251000227410593806221414369642916971192170319856191334040746960460824990716275589685745828670830787293312437985691224836163812209449905428711911645270275635363847394157364490269633905268582234474859154976170032423964859583192627176661259379323626384254167105864716057859154487495215024840420603367456434236825486349215301162708621400084650893411605678059089165998548028471878394720023422704724634169692251509812907825529594716135527035811415975637505704324125551280326484017699563165946755206690802651196405962642196199233233800432634376112959728265558827351980502247142087462758794212277019656564914984596681951965509540235418155284773710214696040416586580247424735444136599419097705767082839361370407169457155247142796898223462282934014539711885647076963994117750484960862386806268819010031996449345809914440684259825213413777211602510709392152402377523188780009419727255383668900842518910804387872930800404819797927386415383637167009564064266280811983420853522292492258922352279180560538149898812410365111799485344333389576065711295303801232106171293906021494923002437855731692684041967774000231303676733121956377266102427206980760469557424360854502458592649550803224618535609295954039103914902979769701048868695710404494153205431704211107051082072159321199692147624157867930727924059587335744423072570678359272847768876900377966320985054393957566005354753873339470907512277440014038266577682926533023924063914180061663848325720237004230446710469950946140930811147151290824175553961405023460344810284365846821038289777249792188004598914171863077463183231652497778950932398191807870342291269098884997764320372823459861315037983559554146665204169424105461861826135749402310078893466145502357098811663251053488003940109578436803811218098004723657331495738463388991394513534476075662542632513448717996953679897552348027837627232331188440007039077945063391755007495637223300121833654886522540264046525019048563692680568371224437712574986708887956373264040439373417207121775151264389911361719427153188473403519369236169680861884234445994862391065207175793579749312196796743170075332616304160234206191420171643561249737304400115234344886905165722990166941719815198872323997979694563962239228995976916573839556407629083041555307478515475101681572430377232033645007640706430201509903187861180189595358706733150915624279990657201183294739058076090995135980611679027049964588065384736376097051054948792908139992374018474564246541627280071613256597626723769815430659702358761894774246071797972855510728208436380220241894160107456845622218018321910510182260429443353075854140401748480432735325425560102658333750512782992035013324105912055315728340530450114142017383902637784554300694067326123709667468566798325070087864021072548507753960405441688267335888718621479778977853834175284432080528361586640337290019663934116385363913275622880974465179026151586956010264382801038897378499884472019138381280851360780936505959357227969862592967457689146003447784819043543956063656055776897651202988526639665174015276432951884119664039100857656855106002867848422747477463255423483010100517976540076634617156319664938341244557069928798833816189599429909946848559382819521813510447522040930084182631295867632258202638126191338576791816608409719761289472952838098971622143475375828075267249220893256729349335225868870548789344768601553980887544450517091483403741129764777551726673062083077855006524440244538836005263357993669079983020274235520773115448839910129525110100415644862913800337117711661842970126655101444046375395868574993647563927804499283657050780674405768991242011149813204706203920293117149003908435321004405177889071059335643605104192273241208316823006342048802816102961602268972581867789719153035107493861587671213959720802983881292827495541829280838054488712540295182709023966941385169054725312596213166200166409243027100787851268263534216481573237930316458337876059328298016190063284531510708697542373335425624950302421606908173451943055103001536127218985682521136375547072389463167030588489095506772568691764960883307895641914699623300896860791996549091923910562966093576696474245544447661616548341097581297272689483758815404190349226697694394802994687966292844881295673116341432586134992979750490300269795333406319282719802643577111465609434439311665513455649112073874649899825772611449992118568802911633012839439408582500205336600235614827723119777218792820412823266568254947008430430308107660671470474018492177358148573160709120186873233908472202715310943913076032462603639467828543491343048357772671662723767493754731723361389974458795067482343464024137227827050766208412515672941695668432868218850536475613346534962606186102072786773543440841731999399786600318797613968965714998708399447710463263872423316985238549146295725825075770568250398312681476570420556772259234411392059648753540069090363451740484264332649414873533230189717095009570279809827025092214321076623013054285125529743619524309500381969093123661629550052434850912384820280413584899431813943852694207885904146700024223112242662296944861505958015124700421651936647872748531998560425171035801276517633050362190760501270091976661090231456852111944268788392473229670491418289186834226018165810062429848175769049135602100635679777220518296737500894327779237454880456319475304564793261506919846388942615819607621611752143521721873978533571781993065158852880934610281594872984674866779871648414986750548984796936985465269162469018291154932953037474253502806939732410047292772709997443003185873396705362176240397443036029809136393615379279117161834357020669782347101965380790692322363830276270346393899405674324806898770235097264533874588736494505528514502034804057452121981756775360223301178585800172739034339419552405753149747443570658503906310375198597886330343617275543499941434346838503085618979576298725256478745525901576275489966333885365516517803947967672777315660070074168461401731570259814675951528585669511885685890457734177828101945078325188144802102472645766495824046519207558404621801253140796986638936252337657994907590056222614704834221449761332866010281135673287274315272508810297172138314382317486490448650629498432791003447392784298185793445493073209938903952765834537352100109634018222492064303325822533606273985963545258155597864449155067977461237764151719398177323471866914497255194319802414171254353888710733672781421243364347307115210403658729817454816423021046627533308229324414020025906343541582183576768172096372190408013684274364729944247483417714816874343448156325605168618269723235444721452652725570719460104156132802038897433456015386734027566551888740943964967042782085415003842345628660710818265728560677564160735628586065956395635175488269645430850710918837962709900865551076430742774197273329349223296114284615451889003461749441168537283705652364522513549257629806745180133181559251671500592904349492635742544809803690078511174894548547866662413270286019437975583092015024261279888264005538127996773601111093351233889620523217950032762932143090683275617516085153444083117198560943294664372668032445746732311785418532305724969924110663812543008224865438713076452676946522340590363881510330885334738630123903893206568047852942044578509304505924206224139197787728879191615500575142611230433596778122865439485434187838708307728186721818020669491599215607481614136845394226572710045134943659651255903945969730421277344420829666757764690754912728988776499183544859720428512622346981307027309363815151307718796096162561240195599619058301509922867132781700671984482696770131323224448343462009255816138836514112963578602116357754135082225816493140188251411659835708103168865570472953085091140054467305526912726295773752912314921260680664185742717125534582258108998464187436985773918999513381651202086792265308385392110343243684082568865911379908302826344438902854947075006576041169177485526066277220049516632609122302239035197892847553099098178191470999482649684696484677141017868401891522185522381122746455862381736738400460751221289031369792346311049096594356450713623661610267099633976576841781384293393141637016759946665597822187809030668249169609572683141679077803167000073550684624069052255959967851879118318010664195567548970897850992062059896330880300747871031860359608870692700193090188864109327817462750159354513623324183405261349861570118039984217928933860712825535255335573376899311553975413511373825074014567363535743574156276250765478961583942567540129938808553301415593894523334536773923090326913687076780400364817885480909463244048084513593205424815949900622023481692747634861837708661686744810345880970234560868426142344086550497780882909001681057388552414655129029585233313409487169504538975756538512918276299019304909222071020937684344497538978235691560078625635356607455577101976446035825282609078055341319613451057996289845218104940649517135320359293478283512529222241208801496674102650333240902279212902129048627836744870316118390570128419041985401642457029891324738715030044037612554956279358155590055031997579011268311698537553204134235806320968238243586391758727974599230514789139028640833863441748084737640987357943259880282385065339393540535492613042123538626835687427714459368939973364181272836799836922944081994737851192678780231270324787013128067360463722702102869047084221549198467929236491101226077348719699405046065374259716088493937583347316482234532569849602460919590512725386012219849930483977737181981342994697140839818221791271057244991940640679224134235547431641359065817432843475819157829814661368919138342274596423817848943605389065558523161927400207764250980248570036150929128945654256044571113959477979495141535597020332561551331018030506045798908892194674123665985970318143967281042062515717158016485288190207639746312062630728516159670364428648407401360054650968169709928887999027524696245450613740910160918461517915979176913166861719072713079304874408864408096785418522634761036790344988778429325752069503785933147778899456650587773659893008708582940739351927547005486142840168404441940065739835508294374106960626587869685756412497778025926086687471792822675492783091682440211829361642023872702082246160864532622427682191027452194660262194167234414638202989615444029831537245445334442621729473467884164345428915392753386502385015416633629732433837405039586119714247531796757585647913943681931261815117470062659776261847296372308675387536416022353536628645803073239374056271155512688799685064394903617499927947224895144718335958324509965935376785192989408972971110696519552134252642355114941441682917451862801125514667729712807130577179171708486969815803234452427972699802051818335883089938029458671838951202023432769476789805878967595978094070018609967941294809871601921186826124235672065743125509804008621931107356176061892659100780963297315671420935775651997746282170944808079859410036295094928812079685738732018478437345674612775751787665972202199901473092225562443177309912101532821433987951698043575371921724091886135073976332508825843853310115639453404748217402858275454088928310191981973941608502027814869806579912827574411661962405705912132361213743611439906174145114327670112808054707982850269758314409349500784977252265546540595714210492491241314600010616749632569823150737578586757558807674506420623265191054312502844670857661339604361310379081935466555843461912471482020126040102702689734691479936044395201623561568541744247975145004756051674956243238441915875841442234429023606762656825853242427677409008171911762425140239240026290254932898044341517921523531700560005241407849964934958012822651804210843606916864641527334929076852693977425449562111274188505526777074254683505107959995412562222741395777385704081429836623455803736003062318072561791689537974095795646758524001962069059416954074854330064620821441403589579275241496096282780585232756659771217058909330151591136129317465899702371760915265504402259950725540274273797658844645841995547136232596840752722567673401494237953996029952785493764144162124379620844866247762576331552024318511507164235601545309334109607260719686248161163900208835569530977928571642024259319187580921208926798455683406782459714346351184519018069467406027955157283407708107156545860069113091213924839500354871900013613117415735862697748184792235378684553597328856316402555661134919186285275336385412366573362871894522861091191848829783135646805463610261239631339828124740813961028866751295758264379160175450069959609880519632498132418132169149950303551185403906336820246221898101501708323220129430491886357544960985013157997132780094447162205002924177867616165618018533614430422196218447623583733814932730696964905944281439974170953932726092497579331003349436174773188939476846773174280104844000824831230625361088586910001369778936572232835493246683594608324911007885072874776445101732359074441097864423552451445120480239535042938005998200514576532026189247562364421605850489989347279601659803827908237545295162407010808805679782362694046058356592706404079391051745444240734250684024926521174436163979223541991464367720780874790886654139496776998901825674847267713298791621433686115784937564761269961784280854302492644377363061902602892003810002404889661763961458736164071175442405510041431432863964736104778948696179693262383774147641547406361775152862763484809866944049841195168585652692633571853171231456069294005471374901511137536759223021371834018488337549883806199678725522313944790022918299759017814920706776889749288409728512443200999376427809364324865644397382396795951777878566965033495304362697486388561176003404335794341745409289100629636625240477957074611259613029643379507853756076940097062937020736904495891548138110298377272179884486263091671949234479439347999810844405039466320626481441779155509960512051391390597182566148830482099699659407148427074047732874247094680644588892915486171537062422366584023886981251971982278346262939846179187229092906641173167385864705860790316284451050882521528491513124670357962968008556053004254301670188371361582094809409939969702884813644504339833360661154823257494399746380058643997658668893142188487917461118806841317904335169160532028543994475045926277306901993057609196943427742055030643994017332464250683392450221927397990537086649799578497891754566963246067347451785024126502426636810934401787107883706401091244305289234835091090058274830637690800515490090344421751823348789787405236858081791396042854395310332821053215498511437123242958181768634643092256272263906278252043554708749003785894898637671619910835594767514458613731259504408713214215284356419217173883640469492476859001455760254010650915586124293254824362041433223302567304028208336006149894711642887382653099473443274890754397843708422554613119573893273948937514255647861256781943577711396262584244258842572487275386271613663947040318809994130435800464192698191266678422109703953817163730171991292008441780700955715883767979248768312259309851648814942184945111059297368842918428421131144238515529747133848307086440532280911761807910597496625923802410946380393368701456851689024021700484662461349626656196423347892099181255068923769115846144369892505904234735793709540194847774911559381747135759175886823384456214117747970308703986963352273811806315381220242385613239756721697830611750651346888075768897436704819098328688384545923309445595503338075565592483959116712750362329929418554871912988431097698974411378885179355667269052416909330183439360423678462082736176653349142108536540102581183069886729243520553163246843080538708431917422206854562252235787086209728974942889531345795919201437191412842199727186078456751946546181456185764253381316089834590787235916082091253676555410763242998889386093331823451851050140354700929616958618936093358518726435452340974572102288217857938889887255244281145871939844483382374935322330862463887663131327835801440724399149703398342574355753909289454870470152081491271384091772771625395370144686828321762657469368531955324209887284727428445909844465361269916501686238991132696282806945794546333983936682101235772730537603308269072766047155612707083118711048451371125220897233091866833782810270943351314800920220700945475156262136167996357792760763455802754661264306860885108239341579324627286526648100672097662218681485779101889405527252827953072426662388840939088325267417448505941220785817382815453198071472156517211621735027366230578874895269112090221983311135813570286148469483995629127356882749963695510453209556140829083699253516075335005158619179151529145249421323797357138160934071779985590685321564964335785813507597009870275067940582420794810376149196572880661004952506622930921419864158299377074762364965545579495135541260843949938135877593129499576025731979424206241681737879848584019091957797494530311614977113978823818796849682106962749180271939251261231886365436004659716033820490420177329535571412257683761118788973594742619596811686046505572757689869367006802800755807432447771835557773721818545629480635768473348993605511527326263529178428567432289560091876090824598954102257899966427884249180144856709300516605735436291885153775566525904911404211554568252922747228923158089314770008824478214252897199812530297670561010470027019908953679609690937655065347333274648989089980277948696574856618759483672238572186704473020661447530693677280561092737061684362459364757557310201958498018822639624865741598959287621720481462877328288184998915888588149221405487388944349925053944621410818146727243574004220794963694359810974160326614985474922187037520797157392568509875082198739907056978951259211266787585569051757030166709411947270855288271294516645550957964061561457313690880297664569238211992617275432409705280915558848156906588949143915300204227922828113703488024993194074398718734424632301308274179335039025973197703055010413109789978130663423201397969999105478936833020113516595096710044263547293934383936044556950313324781717856532584146926619247760738603693257353721855001965229888952556762925214035274840302667963628959333998290529979096386083540015256008887338572049101051766713917736839753602724217059415295138158689905181186488015590532617526903887597503881409356210317317523811852078008790916573869621299972094204716173998861002590416718558682368741983400479614478775402409663643765553739510819519767031803982877992015797985659704489499743718997389601818333061367790291831711180289695941053267248619360651741711311051546290654855821369910999381043138843836238841566764440424396516960712911391182269343545350901783887554463552282331609881583410498982846653586302096371006860787558259597158076168624576824862332307207640327493616422919731074599262305639378401825885240236479132872257216015004491257494070389176734808922577294819283536107264261107012870783128028617686925509389028768872990802813214946797891579899986455935755593274861232416620406141868475187268663329488404553716719478517233185562959504503944593368762126029544976762380036566670877126313295022267451924373846316485593073397509687321677156863826770813408127536815764652362276249678100457748679356652764326435443342223438122484594338459226950456353496805098463060861723412962834085899455571267590233276238843171550739855933346456692551040787074235312066027135633695105334975077038317553990700823563912839373253451009324295650438009559506271108321052912216586294712450762320957121556480122473210622147052028107827940893946775870365558865316823629457000184786613049616268814795072819357945037940002455086658593859035105719725516812594460351994902318818339025362553479884498519887583360061109053810047164580857915309291384298564427084559609279702619664553144040457676896699268775138849700576902581811297661069376806275224534234315079989569488394572584397056688258424699360651403080302078419274539355864362807656252381139798759122499447945106912262058803720677596997534512616007369241287673269710892166687577571739018290834620003327507787371565862422947215792949647721426024040573979864045495785682671047107617747398781519299647880693235949814900210312129132674660272992461357392348482217337362762102637572513488469254527659540712834388904728607379613456965397234385322383505118861492098467967083870441480905730107469587122712479819741257992928486627018018813667947514106225501145130136374733695563300047226115728628731255934774249064800785166724223710078829748695219802296456999977282318130789446356458332278289946810609055031917038443767470083891633980747246946913442693086112648813200958161900405192348347251437035702020000128154986213966040260419905419047116374496704202142509022487187035355560173479732076275111364111623940920026100285318621851891708255014269321651504414611349495769151901502597850139604248917043552375859051661854527409286314787933317342289482482656087804132761098654523217220371534333747920644703327619188622873315169578869938506780480108189450637546805065860298215365028125570554087764017985578926114026896960686380691283837169947634626399324419853175539933031294342387778409520734864614356351475969079562427500301131525129834049122519656422324860554950100783905625549869898327035654217687581909604298051615743759056698945246262687991890895672439226881344567593761726565916678740478605851357252409937024007493780784171968439916127237696234882439790390602874637138585147751579743820345021934205208240670571774117689711520881626778273781569403304650516386501823077774785359171527412949467564443724988450503560252160338910472067758553444552627911820605097221504606735301000732088556719753324668757271411963193672983214464635795438643541044990213611293496607745454806493735511638385602669196474804758618212013493126251134083912591001809752569119860213355084578001578422367036654058912984030061319309935599593266550733196704315215795028116909433486101575560002084975841199002721128015259265145688012303652439127721197515149190102780151700980391221185490100986019137447074520252426027014559893100954666718676301862417680150137195416771689604333809927749604505939616764246839301198716301925019121449842329543943221368700127036953677127691452049849345041539258961432414536825463508722439107799847819351159454618831558874390903033423476785220059288977783832276476652436789296668886496948540521617907913886782101204032287002943540354027415361193608974460479479612967352808002251987335204037517575224814597337933613602045681455757790254062342273358561855373271627261065264482577737672244148014066233153286245407223237319204071382238253817277185149688093617726759931791011452873743919685206365489766627024716043738683443408888426574104117239277564208887455678164815752405635269314522050394588285264368221317178952076298333779416211978730876721269258031924143272858872021232603229293408832526080384687712578067086289551492685317447561615423565549961148719531406498230661791580173163393368575624428550912508511287811692140877268164735561605103495449698916366561004420610892916804273282186875188284201955795166813706436774083240216168166606269389240625311935420784026100848305343205491169100075211012029930612557325365723603746911477712099439987764945417147737650649554397189052302674425405521944702649106914404348056002899851578476461434456878893368809648285879050142934331393785253762256730532489811480463935660038486638523989172906727855879844041636604250730953648200034450759602291743426955979744557448920851947668972065866085415100868637840691594751970712866725772422396835926829828933321464752624351985724684975776019792563317334714483381943171691317656518276069717289964421857417706123121062447789953994156163490618970580225000115983440312180537790257546141989702299255413750235649713888608067904608835692426993049556572653130062724025335543291942916471364700461406707143241592553882424605459808294902720046106440143714835221862833366714079635883641270420917149952095957072599360002887418684656817932459781639983642990322628792744999741491017278861261800614683329832302368177433207505133600246785235663621892415884837133468198041527729992313197912280484701125660034751911454310372643394017612229792850130510569351847122604297084749550403405720165719677630230733529956445705131595297923453913654852229557325890572333419232875723026566573900958873797705711009845560449236068438164170190126220852385338547473893313018430331029450704750586547314779997237449503733185593681160007853131070827988367561240121828212508577330242407026018016286486764956585758213220362048271292209101550122780768541376417189649735487110410545294057609632984899512282540668270890484565063769847908030563019476427299674831538701518169498738446175529010272166406105117239746358836561457664820004028167509702909042851827420327926904219942578455892454636774381349321954634565674395384679771029308144215133614356066465455159492937079648132791215876647866239606231250351220573948671429178500350940906330077640468502438272148648846500897704851968171812014356185861701050921656178986512081845214845439463349691024194919729314496452203741014246964717280848584729413594612687289246252204155614225594454247817133058616283052197014214191711187566121983822791002720086476119833414718474211464326532361823823608063231346636136607768573154051027976798872241499426127986027203962213669105668671293394188207515544409176918040881984784644225363888387024720874140081050795573213718974469977307799156286905571911245117201785280319655644237887296021285774340090196039536459614709380838606876705346232697281718635411406732866564931761585551825763546621383892387853991754213676626702947959366759085652125546840972181452391937647438947221532104695788689647198289347091143728450579367555894495616990797777876539347253901496748961296880557501227904009566511847029283918433624431764478064083589320396083345625438758297323435317541790013628064511718783060697434501387104637784488606793736732272303776667166959143955220465322927574454094649365767554824799248812551969321410150692236051417121776793810171184674354727188052760988414734941450431049536629564866652660921268581847373075209872462260670553580826276355053684776342492351774180361767061157805635810455586903134986268001214306489783210478362752464991351114431946516357269820607528230395909571200350969941049937803684534471597749847499295287574043872133366411265209900581480526700220205201744717710546380744952248120132281068186172135111032455028760363768641429813293653724719317982976738810985447867830623725159548296258079246805627474904624660879510535588826346841327130791619987699803572629213801507473961920776344867849794329319933376061224664660232539558850060561849983794885040665429076909638762465777960854125602550539215832993438692216588891964121439253493079601244857670652438810632122655034414510881194845566005764966408193317542602680850131793518671138762814852665517082723343081084402511191213154874826320689597523950729196324501482244939183614266289984015604858177969496560222619037912154269996588649048309612604314006204900007314353412292574681019312820007829798708095324861113782706058011609569287195710576592065479240395395561995187593866465973468084235399514245129973958288808684307515996080468668290733836401583699306277828808428031983503144327222202506031955739586360131032151771476987838636490254510457848081379274617727596303843184282846662801364898410757432051381807905089541544980294504523853714113824412531249984330826992540626139521113626391690828807059358722627252563788388396615548875947277992562330949481310368529746654815345870465447565876601157957540427234197215361943385211347029942473599877082433522265885650211710154352213534607435152742847039157921418861914920749318230449191398148484524169236734279402320089292766506272095099969868153649129051339373351411228750856765050615600948455255913474395370563272667733760145752276969961375913003072179252189794301172513268480257378353495951686050840429209283384909575723357045141143147165160680120747341977416534726452533594009744627539989312850381168004624340615236499819280245815175667245496475260781448100132299211889727171283685961628844927046543761733842689095452425604922319024484133362899546224979260645148364013184484720929677948829090365200826403328802923151697746557452724645649848775274093431531531572450265227985891934257319066272453233403428459608412766663512483931529225652164827666366640174808122380232951251297680475966683841839925174785862438805893743574097535617240954888557445200881380394302577366474363844289224861940306837014571211927081435067334046209108389035820764961614940069842849775627237830706550102755155406153818586270052256830244599565521050939963009861017723538068064963103568275825551554708550075464209583232855117271197464964507607091400602373262657549266855843795889787356178297430616777553839944465607490399796724282467923907474018806355298545805809543129012308431952763004752083470764448315707002008935222106216761046204082837898982838158833792556871033917477984947274887456821987058838505489473578314866850408559553961364818895045119210405777643892544164926048559655823731384544261333185377113691065051247254124883543580729634725070354217479979769850914694517182278667385688492949828712973608229677552780622133995060912614710317945993418494675231902559534487031051337366694359847844936409506895182155621115421836239038733134558188129040641415336505146939469618837062231082125920271694346288096018480845063832410397587811751307507066386326832524833963866469051453868708095921087256709656197586288354454082164654775975971560518892582682192643890893235045869293629325757174241708616190961283036890209603188359230467616002091654755509168486091567628489916049252034116905821310430201258601613129264368574175891632034700505319980694332047296461951429653805920047006459717475220831427232413253963270189083475927099910800571200720933506465366502769160343993837071385036927388052369085914304516551656691512712075510656334844326106404154688660585234025300544026020574618379850567968269965235760071299179012672378511640157777491624999141689001674012129550071172356742100594222529113656301423686990905341104222481573645694499953116116548203602024664387136162024819358686902447514053968710921907345725502506568432392246942378712025024732239354936494172596881898113803212539030397978164616875912700120953839148900825528282934505935006663654390037722255589910110772822155880507780991589536852639471347378934651215764063366595137072637364911383316923067663547901424502372354713075372185683667477463033259994656806855918598616485204091798270624852719357984283272114546879243759971201143259334050538067965639882818891408675686330827238926266868387161415774015619157269812726920923928314538186522281931156825824905051141342929735451087869449689658436720153003402498378678668620850240088612393126328945823574412477203462780298463650511785912262005137939142380146786188410391277470163358396631696251267437882234511279298269840234687376388871800039994276098634893347340861209175922635844911828083864881891856890286441747916317187752501647656296383010410847128770797646577529386705659003671295506028617594428710874847254230156884666492424819730499866554247030035442825679551336370128900309531085053040998764452054587442918779548514761722380780097266682160175785252631582544355307614857993982531558125444227917589562615501342419422353238594377039733157353433593028053691687663327391151701492977784141826660271782525475790210490613387473409012684112288490156264708679661109443165830319634494517342697578697123613997189884288688049183035545033366674677978889800320583391852487779525114002932906349761365832252454345715889439380366529848820591025408064857367155017523954297851968142457988947556316099008050328155678267402859831934077421689695239169921896897395184581018909166546743867026318118742270436130939154388695784251009135424872640582618291733567129064791371088095126405718747002379182667299239736500914243765149836926651483603629403714205517550630809670446138333500552770592281033752304453725702383542013574324496676404686626454974719157517822200606857402754729080659217520266656170016387231458444928164100298099166357146977899752897888932819583185952233757040262923987247766564167883162693492662394125440099552877599618481811802567778608844350851440360137526250658846361602482488749084431462293506079306263506438161442448861755700408996703889201310623371310304024501132489263749436777001963559521719802956748570634700379354261652767549311134078867780312059810287381461661650526608716197124593458010986049478490381728476600527965278829305633167042772760439493895066585999853804495084730647036417357702325823679686126578801407902155285942231423662131804715210084339080971574970004920286277564518249492523567754947073009994198854426952844309629588336191994992200779886563668868089116018469244636049192539734413409196461300854508301273883403987895952670486888780472163927678809327257273258957006657815735613401384988040133569388539228827008291059184398231167562927248099806062388786437068688230832074619149202897169055939401304159089803101277776798123675020179426929029612504584270658836323083628259350838257247668432214659180149461408443301909730858936149176677285238147792537585038395865590244841646336984824455563797916840542994907370106827178897437844120630748056764693623626759931447522383370552748001327136765102060820903200162562444821216541243729592838862817671679106381544076707956038952047687765003469869481856406432137664234581819742883822877049762500836086116396161651232515589693190920436157021761675350621301079329949816103593949911275979044998577706011662731380728217388971425628928019912905242523382249015958376908634976556620637322252878939990040283081298837278498227788905668081285725621210868508967830860153060249505664926435968616882069672100952333122305987340555869547451223473131768787417299465939174594284233069783578109263966225285598021502843925225140315312552686903364741683717257459786988988623487266919292108090447583283041635934078647459745305305237118811789356320291115568076367943608189948020366051035542064822478082260619369436296534765368086320548393760608776267540021596199101783132204096252987496625526917526975146685409231884340856084505541295116674577454960610652422998899683810828562211646388863323075719970767178769173878574360666789642087724795203280730475990088606825089634685402607404966231545580521055794099556032140619463581429942808626214031636480731667836159780297043841554540683860724477906663202809927728602169487954338683348356423362547304284506951155867808852909733258334392589333800355799064786186688304814002210870742216890167558985912682725722615019014375683528521370538792976075506265359382436822632697979050945396620327933969211847634289788944147518072220567842748448814735137027206054617543395291304780556367204594370683325600618952765176877634427140204296325206682690191225411826239151507907304841449749576740902796948783725533550777701164055031528310585943034904792104715843231320657532848579045976678252791472543036233222172414559117594634026182476268997842298793284474247122535558769335491056128341280899055841097827943901206288722945882939581405091573784010774291354636001226808948215313436618796684831330568281928384807849603062927118978549229296788238272090916688905860356152308785830055880163750930468057838413814795901851947449877166376458258800840198477646126414851129825121715718725745927750533881271642214706743254226488206745495259767651494801597562986475780933018086132752967591885738640256108433436248026236381307913367128989642913572137266538746449496565363813970816956212674694155418692762312698473708006412290169918168395452673287215233619333036480132634706209280305134780340247264919843319243608074817332182594983218298796022548997307254490918267904725585667720010523035306580244515379420155873594717259097718184590913121003029838725654152615716412308910622423763448415329654287730292360217044711493163662225910699465472668780013507235411034755944086853902110278707928532041294605704567255167268461326350350174625064568918583132648309480023070490437087178886699412662021325714817707321736799782724685973900643270937736898013461003664822908686737645346666481063428760653803408751551893492538602325000718569546346866337274017597397856306428446365868595708666285419870188293571406460577342370071518639564616964103098986970070698963286655497079827347092462180119252117895470724658982512900330641701933258942214113808314422798503344411481490865203952522412419029178141807547683184373474226067894305682589649864794359728456676247746172099707862540368587831671997086500323455486932471810536042440609959298162359577612239279292640557644373416457720236063464245489168190053478579259093623736626720554568205879975653388631387860602690149118600046487408472127453529766255423792180149129084308813601182271470143562439710371667344341271024980536500551069039246792655989907045708887632517750247132602980282399579784601345285160420675329614895278631850775707091433490514721562961230082342078378852175472100777363902910139617064166917615648666483664790102162584535472858729919683335847398283255299331241623835649047229377528301872601998793743191298023798442393523661136698394872106853822579518408595643198216058688185647072770837973159344376358992249713657777243236338591708822791510398690853622111922026971055569921256825805270566519638722783498197062725466782068494475814370829985414277084598396810284750535424325736996694252223109235651868692208424266012967478434331618440491813643498994826830441453067621422494108689524016676903572212922167709296847350258984768922376265550118627564686357639684770153947417120952580984025974007885499564154037910258132970162367992400918656223676524385736267290940197414829977355000661745288558730504286054546822064167759572605297014649897176263354369654424129419623325831252292172517743726280836704522538535352565584533463556199488037232128178922875369441656281843216287061744016584434695106545272124301265822651542577943781346833022033744047537503550951569575149237841718302254468536101524505566991071517377517371313211232850889798271000222344647672135086188329301238301373065388889348359951610501162515707681010729358097404010543790362174376706648812198015747805128951974641734624934506184332278979004484392872262452503329329668860555921058076403205883110102242672766631242442017986251743080301325387593543260040777804178470648596966954132068512488115013091086720025581869667498199835604883016868348690108656563422833344723067135529336249153112512517053832627512915204236977282658889599191191521112256078673173988501591886374685909123211337269627412657423365802426958004796398039097732101811866148181384669316460989405528278457183892477320138398939570656260083374267501795812526619810576853764017186230038398246345955689357328004160354737511756355485187922571871049632268124241886740319428475792764385587418637572705845948540570862036483676690186736980290115971362586039686946697092740636818258275677423414011269516296429852625354951197049455373249202865252008657859831949704720384302595613430037702741574922243145580376130962353175961533483910732277926307289606696335257491669140737088509600466242023289660634070767933472132212152230300931370881007569281903977888977998944610858961108195851971106543466117530981897743592767981123256812028052254965772565930792471293863889370073466292411262668128109450480129510415137370313970946910619981783291101066881123143354527340768809295752478536369762454045941084259686208333633731852838046985018699561701106252316339627532399610483398869305142895831921522907627721704587718845805496663915309428431165636639974827338083312702113664933402943678473009474589502192008479962054476265473661222991447236172929955979279560856154372685460281596514705177339015750652339024587351727176470303588780884348975713653329547049364615256914473552808306596031811769122780734403088538450845819938617257665414066545520904069941857130564532436417403679819991816552022110635392579929647067440101007832902773698643041799909032471632456339449481954344418937192961373970966472091900286754411091063335897354056244951967600274084775343834375653602376872666805859556060245483662809794806492557521108180907661365929992085823356009151194068093934091187855798876285143729139324914339123219830089654432967925710296318854007863911040956045055466461080486522411267893911913822212763753224772330450856071477485807689988261201935612161925375471169523760246745870295775610448090598589677209865087924108685676967876595856840478619823722471786682546073320344751056327575794323440761427126726846987048022455371095396404788186217375989814499075434040335698193649242748270832010622411685688216183989319231340166704798874656364809374600763410194149999550846067701826965015898334207361984470282450573359972089964669080861971497223125292723590594366998336606537195010940685836356650427467949147067153751825956819758018473391500037987104983412439235377189549835432729692737296227532832450292554646919274515035215261901028638032890191069967462691613527960894725365964039451140235517389760136123200286130401830298062590629164979004199279537830860779154378919441417784000500053867085720386022022213810077343248017485712947641962098107279481213618333728281104340476929238150215764510226813591254066635434259409843020467974415626917238309692840007387872633059017691799196668495657384458099829156324287033757436714407383876957209581550298287592372113503596014732216902459438726049989769494873801625337514300604552570469441316002574055638025142528963021169749177765704200018613850635591756525725284167962988979098570111854399223504938502816200269620365025223234081444303718514558752227858117906166662058095087235730422874084340994212290451468254382743828956756023858313980903307514711052950292515752510678682564464192141514150569417313411096738420718297392611385919181406192745471124114176779651869846641855620028708897187600528752850167822946763891393475251553980931963994857177441002428878109433315169356453724981733542004214993051564573261074320007916899008621332576632387700489718956153253925657438444601187240045034210862921000520763305839926615317354625365227747231547002823595642904634841064782209656091791540714575282733029666421639119360531152435855648760042767176111249395496304201254989243263333896094563514017948942254156683553259170910770384803588270461738273400697144242184478063628464537614056991168525221695489250898004198599718705208761391307817591429697041895832092208212845873810948040811514573776514364589898127434497661043087565859986128792572869990242452441085399746162436299032114949910637225384078022425492298490532534121851871333220570134412847417443600075708426777462570392572726841716768388327355551028583315857245755366799746233254792817450322619119689548689680914540450284293310522604383202443445059883806428268364020279981041301515385751765662877436763759256534366069458758356291432056167875628497527683178828152325592981563483045892179861119874770701573294488037062634507530288049136888980753741107272684819791093126313849181835000452821981719251442548807389579389376974492608286345976817973901131752106593190596256056147508482304915590757290828029422154674814570740140498273820777833715003954040114914173584056778700795409913609533887722627980836916257568195174471782726921357727680598213888936000513144884781736327518408071807348083350427559691491182681455106626449290992800334470171931079282041834053225778739981309643183935792149039030320179603625097445112657111595565641456007330273296637879438393227613042413410085892088721278872273595883718188512850262245156619870989578689918246353516153312404628299652721924210711631879483648320393503966540438468110166495600716963805682538386174538473856583206334626743873291171338094470510539350029404527098467888164401939118762109772462389011460970025781483409838053810982238771128799127893648412336489208450709869367203493094376752838463304724693943047304675409881068070525136789236401506386176629164892583862181057382362320233909264706119942105956082546923220486559802609425303299440102528245768090042174775913409470493681076696822110219383523361196934303223726236708068015986174806906176857661344230811850838726880861567763063375144666809230897198186032984587275855892748516406434053887265027834801555943826304607703610336533485503531861240676747212107434500201640953283495932525323062700802329339804213860257636817345072895835677681612177588164629289843531363200266674188727520371746864026805420173559015305213743198721120168920246120377315462377084432679101707180261542524161539121375179958494819007134741872607925771046382798109041923911977716180596460874256137296450388661889008594312087923124655148049920448082046703981481042803115445392097023075513148184722320546892873564957250368170976402912933028907444257944685253983363655984984875766281127046733855552068075385469045271449555222629877458399602467772870037677437647100296526164962593493634017846158121863552546080540895060585400022942934580764470750262042604038724958057674673739412925878376556606999086959656921279793142601257120094345857118469054419425645732888296217530795351101479325960158827834093618401244474213895767713870144895879260529038707180766580424458050092437394724692443308950618634488507710549792071631506081101242670615556894326363470543230835170169339689487789208285030173078053835934957400478388397950864165481876662439231868388244343300639783074908715046453932467819707467230930948903977927415733736366140647047277566584694370950184269035143196753086646300162683879482559039459127344302154041102004071361014406809626432397389142404015756614443798585812586933286639507712380030095450434148351924479630804805503240047128942067578878492858887900097011121827248553636418966215146475340608317511213663625677829636028243424754337038424227832735168827777009662641499576539182255292441723048825654346542195152751063079831203159180067525460003163268918029223149050444352636683649351607856573161729772678397733994506257328852061565480276983564349072936478646428752421853756700771773333284839909294120308774270549884389601155593724355014613497024391650645508231340297736695345797468636484758566732347612734164055153006292571648840449014200155782103418135989466467861408537538867660053060972814839602134992158969858013523113716892755344067552411380664121004196236607174271928565372957733463134821317796359667310354003784789385791577714626026766327764213903025628095741675580355920482851962548496244496366566388140563047898453412587068067144544976118464170470563168802034723848548836334047678330309326799754502699241165482366526840727941702463494777387113538337772606766593171798398893647464173486719395383033055717842453871364264512120216587507833180137499922735364191854253942366159262188524528698272534506496119477127975358374971037839498275816981335330768219531578958479589394192153727306504466979405040658746797793143599705999757982599212623823894705235057328623605865474909897152693151862256748271993789318403775488349545514801599016552568870065256659841191263563792811155711732391765488881527794379828565761622055210955067771667026295449517859706725540335633476128905873545795090101385499635842206754490137420041578245156268638689946090908085230917300686471348965699329665468241635468848608952052848395826639373340519853031658782046848137307780719738105978587975936783118111391168686822288637045963624914071306216508698360600347094760683691716114200405001703664649606594128043959113912028799244469315500041915831518083248821722988583927572845203023822414949237456453218399564803502580019722165598270078434252976040529995412721533999371050384313091016341600776978498141286737015610697595121803020451750825422968032375536310322904948268748126766302862524236318775527313607336183069506735439979139304336624529728283374706429131315390948241705288358173222749763904785501181364600140680518719445575622513684796411124635441357380698741259077107488734549593948347921190031691600156431953068529055323932681544327328740251548925255596043006226610890341854040864859543754903202699113171413146134851727715993631026516770368657611253235978981023998610857581353219737938611321686314505874143958343152940133328454437087624590082105222755885618911026977130020113765260825861043262133961289701347378088750428162984187010885042857113082000185812788477945202752764895660335715433470530626812768733303411037203721262128386068648091473352970216225475588491826388913723762536634284949470519396268665720203924149228710770844931375867781222445443635923507308670354066351847922548455533154805464401277953386467779565253956079044368818673291152214308459250953491669338050620567422843973031619766318620121481938446872897119079907902366009336688129437438422871637027572618511219264863297310300841893417016879092700934768501031202962385793705967227260410858999581607998527260694503883482957803478782521927858240511321773576369784833131328184819793668030124060094750627209307449605379297840840360000320028185047482355653621642261279037585802646486671420534752896089894919820851653808573494750885316800557709107604683548407539967374663489409226999205218756047248359733522800828911104883020037360217876980210185749149638623091670676346012202634388788630583654453292633900978122458160771741771031975994576099533237430537571222083320474512965494157473290970458755519380250758904045606801971561851660886062247193688725191961051600568629871820521134022124279610149284649833756629357443387329107027458195872794548599542243838311048902082173226824769372170193546552203513482190430468497600555735172987969631579280080802726129517636082916068636765085406256240238257243180569627064891250396900228001959793170074698408570961078197049156964687900229313351988049581119631209962827366353731692411537558459809867344349047702343697010898207617445124621881183166723458032683939057730405436088711888398676301665114478627341501127912729658008851450948706445358252627102034963348213922566846871975170862357810324314692387395929087915595836812477177362856652152351868401207241722655114220985626788224398036619865108621272046070018945988616122968125798370786340220749052034617898970573551209028268436318674889120961109669445317191193997703396389355739422088945804903428807911131248303348833449849983155343394666988589840649481629453214041351553167987911722958054461722976524798819423973766631647827797252568706680645822489548365142557642781483314927834440449839310656940700406134107314099875864701831048878974077748640043820919412258132943464782357948979819480044643681861831050179586900019465636613968496736597092187639186359101998445054033584766069125745633719645193735505487786331145576292977358832366774069664714041186554002427546305536221470760097494487749282492348915655368689086510099336648169849985692133080757390175502837061819951085602589198909865403460667735832289608243067724496323603462097894762318892065455216252895324828938206053525937190165207763881424433356038851259121019601681632375718523179002909077179215242316613993146882694047648848523114167541817372719101664133073820238962355292062966771464745205488087000393431411543719609796387938378614789158114251711861874937964914399019387285866665595619925168909315073518939057677497864093827750512384943769020852190942262057680171429523278946877971462125186829093423638257413114750420824340855900407568472545434343037775491170546534146202309642418469455434902260303343877584760757832995781366627539895846806835181585791282562829540249741504761965849500173088635306242831436360467829716503045732587717961247285474269235721078932240460528396510759653527233315178900743954616110587915337913453892288024404786415453633242728209483320443213061606112384852310724500711253951347772651551659816834602978414833386027359424338878386419044498954834867848812426094732854562128870618330383303613077616537027012837461137343032310878455315490754249699471114365056210387172873712946112051238799435205474487899293468606723459209661457814476558397092715933447385711627351713410395802075892678640243349197059097966907324989858036058600324344918611633226940159705943659369326495952563784931121477589896430512829083236191227717597995870875453237537301914410177484600166450340448046658220327906309500713002421431371194287014019497643195694824196785995725276542241538917419768186262871224380619240851957585805856947839709626066865331341741211194802736699441278046392619762847919618265361078097410342161635797906755412245501200120141259857591947805023044231837977989659884667487472313572812277402046420144024647918254271669743790737243866258893545726939823762843560739221354032458304049126807684924783573840217299909164952642270082521779265926793231857955193143743558195479484180343577292718030172184897006564701694863491562524380421861993794328629133093564287893278611124773770624928336970858659809260745109547977935170387281268090290565289651192178584341615981515575002159555125963115191391316965315549487447904996467463853411926662237568140626923034197918054640382898044571749969567753160286263511191690874900236709509353716294778614512486369186731842699771359321886494661764145135832899095840652146561823645666255945110584774192147283216016777163016107013183702621982922100657445593149527836218800782323830904570213900192683917473562086830044835896902850623470190012387488767582623772001523198501206804652534431098179132274334323068538001294827540195026523038105245395391544801001220681979889970420964334164959194076844991774286002391948940411885069398728645462463850031329202564039976461090469748933437220012788432899956538838389774027328811828951266444681354991947140755255191794282830008255795598630258133499866143894639040586290739653059800343375705103432093037326009527911362969613133221919216016901343722821208644354570129610983793353661959805751971248016527055474056197737415970115274058897610022755186738889539306918922880964762022031413150013207903405146659963999031107647927664288356997374609612133656920794836970274716470872644153206705494367044192543314967032993691602829359846219800670762797560369645506357727330489225722221344238020177754712255677106706016955183179665282859349789466073638469950328468806018184023832400284182841537041585334752642488467950162666636932922115449802019843524203378898021293717559403601987092251384816671223792551050286303499473513374023810135787298370950015277471408452400786074795157518427748461288495450604298595834213382810907744359223036798015293644011395614555963523928265149813180284057862556356509915556349853314728143587914307607924101555622440062934858664093541367921090140798480136171428503905767451054105025057468827572961682566393644871669449737462837783354453821014994698559413645908474997383768470325211248317639488615564214927845569196524935521646696934178842199119244666040020653124663050024545208416652734622267205737079711637024593325503300570541766579701891097269983004490633195210596505732170415481951502710274728838958065407017012687808758974713092005031435146281739216331033959534265931430246692683595282540111088050672568410667079001753677270265279511382385940824106820907486600256498519691678892735350313904668791298835624917773725562398177896946622384253107585044848158328070055890492742455252489743256702075068966148047534660647597977520460842927087156719597376567069479351584813413964260735702882514069755159613225748487681247389075341224915088378605183397223336971445282228541723950712240175857474053096363126138184612044061400570947127396445007445897488577199219089454686064301037091154428532551743904225655581379089702565570057593851397803859930731524182720740595002646756949992539206837721354936125087084631470639153738427707709838297626151107304178894195596631230883835671807286710222701183649453518040032800636407851896867849603689090574301383700835893726929588084806614501850321234186217086794164269152460368884386217501170761443510575239780976168657442337965367741965777719253539475100458860394269644862765676221282252273346637900004736291616133175066063826705845375903102013342976313273626008108026226546492003803890116589035005334245589185373061746667855268029752736507667589936831734704921871722917219980428489495441467913970359985254637577594450764887385980305845453810409939956145157875476171270341913184270722776006853305650461407926485514511229597960055734475670255176899836283964348813214227705592404350610632707920300029735427584641036060410420347086835560584193125845138300292612947290272743075902290722845739425045868771036365936397563691075967670329894094395013502653496079884791869153296045572176125527120845402587846959505087518750969660302201499645068761111453530013144022660459946482302143708270824767994650647102397243662731748424147724290298241341681738417628293131587087604315386378506886859980166845639825231775935452090037093387295117872125338578893424023841051779486196700647742467162093938379232627437361923513795275779406011940834967693738743751419578163488090997251954001115075133655915585979144728088880433895683489020131426855819026785790836818728516961085368894146459934434562286902579585716438626675240139796132051681568661297232860644760578902510869929304510824210302884568229696932153260778947273865755172029774432460012878405696396989469728691547432586037839715196017692960973262932115939347393962864742078761219666570971570293708949784860906087611587200466827551412551050932743328254760796947337792154574326417928526528982685637013995231789544337534154232690260249246853324487236101784983787328652924480382740595465794959650517370753606797693289551297837001913175339939880294129642912161982283454058176753527469296378938049208144362508545958183168603831839660236151418493918552875659612403391113336814056490547009243104674613700488856173478670001569033577081232216074690638836863265214784185763401556379239532378596988154477048565271534715258782621911596881131996199177893883879770530976395619855748037294353834901392642494331089453599050123370817089441366283962968869050278444185801124130059074452814459932390063206280035185607083409084635232244725819836490854234010123883836657217634153186349304272257576746666567002317532732665204573306210099199871668338189515663885758929226709098248755246973125131195018482420804802907666692334392860160123106339757950199255881726333376768283468907119075383254482649483870489024619895860126861901583324960068745845423400609142435772986316230123873261885215329504398757211780773611367921437711401991750136540414097478931007274517702799482934853741217809667653174639378188467998316371986280097187030904307902027478840049851697356790735571823034313328299086924819146525529013288044829075760444690495126062728803622246258402778158204089098277724613631281750493653288076066261118343346619144057589892144499413416995011480620680009335013812208999368347538374362056944494372399752915871964367433005227776252314196507638465983138748230310644445824907541837890444327435546598618694625210175333628319428177017963255281745877116819407007081794622949991882478882101594109369293665934819641905790799863007023756486163450349964036396032324035372067308469026981485184132290176987530538556593914243994061457379733070480451834178668040742233879467520279142698972282418232199935827358405476225174667888386691523022673604836028859472768154163199594973647661837214859081747824883013712676271940764753861244959846582301949969069931157794190732665613719175884091994558939878697529374344623357018144354382138434361537686164773765559152455773833381720706514869234169721853057430092528639418237887751703955731270693421526721981542941364009440067785349246854606549841444904483766485219193760388158825809340453567814327321810900786791932742463495750930946694267900378449032028792382000448347265989363413666488212381016526618168186905422035710960596705718761458755556427067833667228234915520053770230328453452700643010806730226700349883259164226411732305689622129024479357254798728394092502630832894618979058208148585915166999704578513262708782444080025343701556235394789028700842323126055565965841776397015647476546442417349635482923996933251912904764415126796678542813543179787433749035264693994168655552169798714194495989042388744913555508745586345066418086102033637629018975095885912639855650510198050554180882344193286501259906423813377162398335649587256018325685362652204154433785758677607881800086370171988600973682674724406931735520210066035275044128449873583015864465880676462631622586918877218989694035604385887036696438968075235728960638734158708476788829614379705865662436160733940795172112519732612905786647373174317798077866802095532600866707104644220117569884740173702487767470695469167293087460553735094747469908136896436667373911931180182419603995145160663282000058910604583683644779414622400776252229787351354317385578248366706779199944478789217896687098661561515197650989691335005351135256693386663691247858345090426954139928389756874981368670711689630849165102433505516461149249422985291768533606570681695920555861753080367855714155402916072009723099209689951581849803697423400233319694289715668010058574820311892153879531922755192306877514358200305513401832709984501759235830198188704188264434102098601979382658640418064511414514368738836762113966881449432030832572050309022082635276089042569507718735081833017881970828706525106663837457924177710090558182949126393091175770509611981377170346680623816070240403916761436432635241989557464182330453043560688651824937584889552769513813323253272046341017250692221477059976107152940450342301287943797603958289488845370538886881504902648228976597788857985483210024399942771765896043896905147678588186751389470606692660086641827242158128757573060891933236275193129908589170864982563655733274977117091327274465674136342486505910931504807700543709691587064957642889236862932849157439253214981061857147119489428391488773565105879598543974384031342579365248105118393259805969704979146329118354922935987123406332173469207605129900605452868923174438645273439077042969610013138126582059721788805388044784540572121430307493234658772658837346681010188993182175535712031471126383937964246819440863214979580086906717338598526383919246710733863522057048788787182838479156983545757933152929866485244925891734440136393377980347091872967409793203640553112271627365021285607261647393149787498552311646117291558090600908876720003465629134723342633464864756492513348813519793396632946244691789091417562794220932985854668477189435314713155631102215157378159834557154372684654601054135682132845708378405294882923417482982792853557953405149566408754973968316468805339999841515665467211945556172630316533971141152693492626964569384742525393442791265818812461894594436850732020095133922556934511096997339406053816150926116429014912724868876559491845231032932524269991172315471645944259713798588068851119531591215145433767366905302903734997755743059523309201903192727335754606605068813988717745917736304083715365224233527686584221139200574807610628712678897858719537596124632668771619001368953579531540474924852231101137808403174541041723811441565938042127485230706168254635022630637432449445883074767955256210241926638181389636169323121762977567618226946642549007098316170350681718755933722551604631137297272227517609963016387191209951365061710453335051137591757341961189851630637390594236194204841721312739747232316223824900063328901856445666299117034760029187582724353717425413772316345167543630334807569398014103787742892162821849375028139310855192018763424892426129845032420298306442936207906203476562747789116838233085876039857376992476882248931108053868788254411002713538243579340777075373969921730951115788521872551812604499953270530786557744720820637692753238777832105922103794718240305958015301553849390773556852770123326215250351594012518431996422355777201528620880336248342645452457479554284020754839433437683757835069779832132249121699172920198548215970110689797445126462241112069237253258859643723755446556294127398737741531041921267362252185827916385277890429528109623565010169049680566105496649469369462959850982964470768699651902907796871325630220292684147308808336498257427107513003035248846514588851623281545630385263418835342443253149748036645588792818375147433046449295021774731681489529944864993328143801563958842515455487340923305558391043996653479327699089715429599134428011711814647855694557834956423016124933178271741832246366444261135481700777941938051775607154615190437587138453871732252200139031138710944087682601767030274384815319537647556857807783949189122823041908899584250966151250347916155016751240273438873935353291350264670421319984977501502167601086756902463166395224041754915090970274016191834816334466850164905995249142456280942565045594408780068175615270670824903743835772392767597183389561467228333506343657450778042654193456812920965005560366969663601627474138256265153036137687749935259072704847063857392365355369377620178859428372333831050398752760848353254372475455675699816670295219792832944619305049399599646843459360164549248337764009020499677295769872574357438649264012796799751465788737854096976322938685121482892361817995921578793583208155209439445369119827964811970335549020730996136345066003814197426081080989766343181771463338053292759214318838403082071663934892585226452286386285973666215293371217347560851077782242023859805016568916065872352540552180523532253330595039267655701778513630125848390043617427185947308651822223783283644092253677734763916155641633475957724611469546412281374046894800539591879544612521020557816228648120295473459939937421449771537844156311594010066670793862442351652845247344064927979094758271359453696053826388783943557491211517819777081153118086971572346070013529913440177330546997218449847151656736823812975562837900975196985271241607955964273396850760732541179730143053907199986879985321481004257201521444111877191451383485129587714924213927765679206983968412044543865645930551531527168090678651986473705353529394282374013202888505930829293531689871410436741952926775696260651482950057346991932868384369650258285173952720484294548507763236739307509135926814721590770690471332922236549437542022868256522205741722831232998211252506183691204206266453877961427814295004641560330031435726115766312554784312841058372284346038921200150135500420415469453606189071022078491571241657274513441008273843980918877979982602306524734704705995790410671377615179449248506445020104748407399049197473299940321429893683464536635801741762768286504767998585800139612656340711369818934120131556855629514680475877087682592248098156290036910047627366536563080868231777216966615000881147477561911407671940627400492584378538409582282934626556751360709709528747136484656895579967071124088692613955238281794704215240691511699816849606658763854080149970271966806007013244123800350942162422702633368280022131907608386937254832074901554106130237624026454014751234125604911315531857012571344656146166134315772631367021380778647053464839422276565950587640813034196413429521344823811733453135128675642260811803502509010388142280469084944303142329303910365030140690907819066953516971821013381137168498560441303147725401113564867700286188222575737707718032581813062233618954473996294067690744213582657351747109317534036638668340303340305212690312061799939181261875044440753405880997005593590015163854755493772298980689752223458807487161643375367182527755728837304824490431685962876876476088627114351165627122032388044701390158415864936791441411588125764483957242918510467248588887381151520987865949153248577645727270649785799591313955345249977663007478053522542399146200223707645656215966494422100124611580276491564331588799625159060782166431396652138393934862653420211734417207465682801594085029649215925972030185873938013519348623568379291004554944781722620339760220485946437700684920352279672171713912733979616019295980364823023252601724400875097591752053784028617765949523017672821521628571089458991579455624578918889829420006619323791504546537939564484921839250968008487463299215071571434705588344667381075393511509743073467952780510976741902102337999134170022517500373770565134227535600206596114945665896716489871342197322377324601062852392372219465340181269585241809653184881731395068282667724959099643952641433002323493142383090667654525454751634847408950973289978368074376861270082706019036566089262837234899582927460642354606262971962872061837747953913844823254983858223297566533482509743912878604954187330140994356451492369532517046350463782780631819743848702303866708710920648872969529669950598222388838782484374714677149832772745780041386667910787640437302086194639484174281148512429851888908816882183240652324225695585694746447311466079322880515021209116926678997266870024398324560435207985243707005236571649851283454670214509789968386529852987315339550863236286410019228358081363139402414896959969647640561549565001251971524849664376998846097661946291225713381096532987445178341553761962847507999000794060435523248184467555399137171982515804624511822198733502723294091080533809881252245223206144854599149696231005603590912291257039389345318033179684555423698630316128427253207994253650625718883384550028037588813741040812467009609651514000211497831391119079681786418300154381739091357867592715616429291118969415203114914155391182888062599079845240121720538676252777049337617779864141737513768862541709872054249879091502298741284673398554671499987437435492438449733913396988046253652182371578997594593429023646440432398025901899433856783345306794996822673675450249512499503647808768845376425004895288417454079613220231732536649340547374624193372914736959994323124404626710425421280160365167655810880977084619169105652855807955461146510382493464372077784127734273799813058439878570762491935054760113782705908019822362052747183040503514219379637565570100198675283340374862222183912577312004154670739847343042231206766654424694801883403079272154596512821809191107118888617294059370611694840760302757189501377280473301604293998143736166640336732317139610952198614403287318629240682120455515194671876570205308475056587359543651452400783399089333160085828652551274297060872705791329528003722771753223415460815753069377758664670067690128419870542203530870887394026965281232151774720770806509385121269265663454166575475078298147965115541235499330459151056097468650644409639954207735026234995314957333447947898139461882357667120255159223725422187716565348795252852337637352685022851592819472422711736904220825942561759837167801580833564899548323954980537566397222667894309672611850080790953936093807060905082866751269628486681630424929548629022088349389524466250717146868211122927802107179764431851978229893997322345309546034067715547772894478745060458202129812152424686096331571609598974563207236402103913113642316479828847840713480538832905794600296055727336471761071122727486455884107418418363608376091862417301153536862461509548453271143694622386708884371242454025384759243890893548153317415360172069780151320609074944581193824808950289024453770855151805861084943971641062460564288212929560184174407331944207635271248907291499544848967900290826470969198648374368294519630374597778429639824920361966283061189329085333393874480195982950976793607824202352972820239338626071046988647226925344652368045642169053527180855355326494795659559642175387544447198721179186169280529899675346602052272603185596329814714522418548659342406886805477492552508212652255706203538155256816746258592881818701970198258450204588762117196969239044647900652997946025036967446540969475320553238677219640275729447811712899203385956129172535597932155701787100847521920800834823599440457629707047470724368817866561867529454738035950616769810597193448640924554534280110105031330630096271731391801871356829216965455952542923964334291972612856808310627356719600202559259376730866189587205959720038919518082665515368053923491724751760710354793512684321091746645345879799839737731877147786809517766063411309865141636340873395206982248580592151502190215644891224854004604963868557370567699459444858115031889866808579174269832436424336547927226514837098588935484808007015376409993200623746981818333442204976787536188599113393783035794033717727124266585997068206228553050518903296127901267589493579674552162667162521464202601295322093005288006026350171835492855860769551679523374119598366180674310159143785268918979043222165889179637195386398887496723560647153421836324506983546832641345024254399134323147779662093865883825709876660598134983193132077323583650041964991954780519325107595974060553006802682583599725281882981523582123239585630139016364842823286973222601494091009010909828138499553349535872341644438702081647960128589146833790383706354554752277178721051680317309169274295937189111889322505170428413492075901558259862310737064201643968907988647587223136201290003632455803571410186887102729027159824701340268337027623360400940491512710787535482634477083740345624089118404774274456268887451547963057018554788669009216435449550555077226508727429476767386842114894466347866126254778214887293865812358463175561145624554233410894147052857780800088611788415167228052855540377618571939995819602208241857023385933208063215466098246217614299033372221905877250011796763765952990443232485845389661877939985798887208117275331257095114695335951526460465926665548790663248480497641960496313005851189239105281946693349712058913982859818445276071112802631629513706238754368491831700992474767570051084777470508816110554009339117299588184812332250034175608481730925949529398064416813839539236567452750826433757207318548463810944790599310524292474929413869966504119396353857760670412601705134154683341317107231558684429416689566630127617652657578560628501179675907582786236172338103684248914036415065295289430326236900157105619210240142861497790833854519219636100462840946258887585287484712606109161348519371139637611564117951279902178147458546888258367168339002890236200319294798526635826629226414666413568539292996296489307361655264935303441118054696575408585180127734226127480847078295513136913213826771388223586387672926135537249954646221652760036408726000440518204738329654622688803878096089596024660378435507046252579704797345073899555659630740994183049779727084340726810567892314945578514926751929240921126121555425675807339521620129282059205840206135622258184015765967030086199845190586810333259832316635442872168221414788885394716212833153291980498065208200323173951702753998276783032031023769042987768495500159618101269556045234019644227771904802252030454900927630703415089256745328878528313678933052735154124468208560263387399881358968285976279028828531959870901374044283284918954861305403846775693148616754745041619195577781650921313515490244457491254024398140490923624914841570316894482488451764780540316446250557489320163677806221121149333911670428363841284082041068520656101512863496493522056827547151717396022598766991377344742077314467114393347926262377142297362185654140588981294623651275393282866167180432216210834416958085207232798148799048151093437710387415786798152799192292999976027777233560667723244429649599123005332923378631628391605764151756369638176060372876053846831939757303769296379531008741772087621917641637926135241015178833941702715739320126620179116914451588456161004392585510095963418471609809116380864854877313505857898021993745686488999118953945055074388717800869070925717780032923872514547888991917109280228939814797526337762210302186797145426996185181552670557718525273321728854999463511786262473949908492501006268528610723511763878903674206335850756582949777516028941494287441651831225221879805853181262552668863196391594137661483517049037422041215914842808660539522534503742421076951759415132500683024429680308376430032811356678264532621031002237696507092588482700604119232074017381544102444632763433908809347645041948586940515661303502712226028274665456791227280654661663400218659287334620630326352699027542657215403955723531768058636157464051978222978112865215235321929613994479374807528045361707824048824657032544992484938856953967315811001705803531832442189684857150768313250417063075753545000753042727558687726986703015585179049800515780360680094447065358166341449555820634648459805368478724292228565237271428531117417194396957771010685319989938940809301136263526475901101997941145177270095213489703173211816643933546623336722691007516205053544575985068615999906382446695070080840214359044776304844825656348695885017627684469701327130250398966538196912076997087694548448827780356203395962253675497748047724021928235704563992520850151648367280583363339134089724563449868862800261539372218313059853441015104419194493120306673679340679675132684975843722856787323586373582861526213008362011991928763954776995616210475838161611937038050934169167711097600443098941055935453690202077678020921303398612240877078321620827976399384104275529297848209127572305647151101734657493983049395781062926888469380178470402804494042372329261964656708053428910174538130919142240833616056648144117178676780427351982212684356737977840827361949639557491590177850163283783154679330826841436113472771639302461261890048438397113910796903964058728047592130556481283982972662850582097270676304019111990311945248847568392093572145323734982774150209418714192267946337400197659410368403332585865675123349693996685308705608293368401591882287842890422497369495062962254842786956987152711559207345168257311065739408700945815691999655045114653451144459265483611640360579832142696878094377678045378673009524145682387056772218113001751918852352196376064150098199147944158665479311081055200936979562955830552134640106029602598817823813352814552794818874120119307554509221756696439022068693144892716804943167589594316601453878826110819819740376565218512203939896588589623946789107633346076637535094319841387194714579356743115481211860167464997905133768551803624588157491106026932935171683575002625135703514682513985936122534800842261525728724528052804107305926888356638552843123801314214002148159437640805759284465327506671424712363389518797803200554528910932999342549140045942423129268805395791581820344191206409291754014037600508773849756535264133868047252335527374052793260141086143860785191291767005172257305558991207178359044883053486680967715955800071805660287037631932422831330591050503447421732628976247817542797061071848918610701227031486357867062435361765798075780766730315799888252322776477849153322953130267850661403693777269891823818707370526463305902656931941389331949960353038543925974325011451831671820086019845559302070613173982935215665562959302329717942857235393371590985619606445128697162484812211572644542286748564312049088415845890492749510974454428371349396674763590215807020950817374014292414880850740708352063178712881446341783252951516767295404119390390021955711641274719063096480920168409245894197159046693023044750975002803225177230298464368023676857085007509796588475060141709281714487336249637100799820887740885181178387144106225949138048856136532113487139316471357349955483108235991906759961903260493975017383976409907479957785924182009267552573432166717215159085709500752665743809747311709625359239828790691536716102983062653237805617507713585471937674969146968475867080235928743932635538877292551983051083983547314706958057638051447511757384662692379709966362987208340887945971131320026826450777548329483853168636453151721956591772718446929432046357874705410073281766714261437410028156530299744665204639802097125025451350856648178884589211571215928072816573082412495770137987148326145305867232592495627654626654829324383276680363644933875421742935087611634257890553193641303460115339517064056154429888224951899683457082520091588917489574298397393919136321327970577248152398545698366885926475383389305980802100275736378472317963512392975824423048737975547153828963909326871194337648287450128853509792140102613845598612542846217018535891997547568518700590141658676499965596886152517030852106939934475938913259365783183932698608113844244552820886178861849629858506617947667203675139589131943500444194217651085304700224188970528024480838216009868301838981864937090803447982699308893501306283838032434659450110744630849719866984756911129303843317146235481256336610615277461492308744079303070851491674019069039528800921673249998430588999792464127665358591168709782199042463151724830796317606678009169857247800843285539833286521937224375416688043491072329709662777637308640340109191379893938228126558881142470996403809045815784400147625100252901561133071584912920946258173390407028254844985098831191401651212670646973710898199330752149610466722633156098232758527747794491764706106724105698994884497739720465636050566100254427551433938219055126642508044101811480347631539327028922146924873871991996404815275285569288207197427733866776282498345331401011369494464767203837269503045444188674984302649467950013715332891843486849001435929153379101714114169500495887904030526950875631283797492143895109397363327593962570677192543404945484587721373960914859798429957557709367436762670082032404569179224597017112771669396636736392787062251011643358420196903347550230352069933484186030573761084219324865321958975865504578695665262013255809930603573583938087164829566287808417652988786424088088615332933829934046465846180335435804692463342406580757136535174937312291171746294190845503115294677262949013402110798365560867790454999368874573142171335697518801532187966400957387053592141769323716401321302524012641546414589889783615895123599990740047180973139594096721114328954416635774867320779746331863713011026804616410553971606630459182878194492744711041603023811230829617173810343393085364045974404828233841589677901454300237441225347114868054687177959895757387183454566708210170181435013311790860023845777882085923368185281498486878342797530211602178552839710389452452162861104978508146221673575928721646957999018081732006186650139631276398496551894013208746687695436835429109440276330650753306013802274087740549363439700960605967157862533674164206540721660228378800892672923364917681395843213775748951287012186503773004094065760711282923329490178117449932404929807756536138024576611804531314075238258182193308547414358493028585133550196008244998447795166697636273371983654082344596615088955734381006314574939936359160709992249183817389192842172503580668042403669093385398309900409695757542412338713462791730638099734135088431351099028908449247786321946419925043694480736021071807039938962663456680930855965622765182476027114927089763419394471687320537273588990074764470410500612794696272690532011606961203461217039997319449990440296123628541963960917704661873758940441342196443029674880782764496896065614717118343347478580976024621980223111128554785324718105191216733481116535618656170115837492980956559928957014035135985527470555863127504812920394791329704593242949775112939788691355982940873038364934820317232510144070485008225366576755749239103491741377975698993707955042905174083346035237808043060025441611576028340613859946661733344868563153619292896597043598918932015803936266427011958549264380542753122679272154793271593764760799331044549635889640014469344645854347730773923780882858282721000873769606786269892947149714978827772308240030880958196385741489276489822142636642980524557713268598080240178007868143680468911274263318607543601969606256776811863141786954994664851611229528971472490418678121304786575171600926169331362017906211521208895109681727667100892949164931257551717741898224551969309312841676547418843599473202851877109626020506856827984621253907183034511566737352146710775043184042447409953789212189991598549517005329248603885807234978302015798372633008605004630761886490370497216251895136500569064840457736854930339509218893846833322681360237928101000209312366158050565540084931783348212711535531809569226345535134277840210797807904400320531503757354005922970843365871289240070485991274753290987983387270324609517562563387264317489354410005193057309044503060620721509522132548754841324657648245098377054731684859444938692544042159510025195773935011621562382409739980177309129650870876262219005381170612974094805360582131587264187173260690359394136009150443675671945982850122730312714850164354599212849840526444041028631066168036518365501370035743040482824731920824178298302581993859249516136027337932984530536611503675401062343933311449765043153351674504455886171957546591710815366365271953656455219387294907078849700879743644536436640319545842876179689163652883407364841325510996137947967839033757799288151484814947183158288323956151807858437469113918472962708185739598551985687368069928880689079793626549494357345427522555994158041218764964584835232198521151872244683772503867205115770926060287657299595581314134302273072965841126097807181757852374988464101792492580567043499376041873745698524832128577430628375735837778179784354447151922637230078602423955520632391984045712263846003230198129956400874732187591281624823916070313098873656728012807919494242762470402191521531162273907457284601141413419372725502874889930036966641981360953868657698418034126011777880764867830551758422817459009505367431008681511711317865013902044109030417688475088642114833017082906644068357273770391258180196079849892163631158250029959502575613089577509184505043249306373478554901766820840599248043534669663926216404832457179983432770077135435516792268814004403305600441296408234690123355505035155929105573008127067743940695762352771098416480205004340349655922486062216369093634658414666978064573401550526023378934394211988097882150784356322333439380841040716566075878460624223782911889603552172722808807885896821970707863528059805215977469818061325764643766833229894108783740107281701326477449550080606436219186764553410303108720985251028418629456081684134691646510514006901272614378464749130791265520385749504281278119668766807305993281149305485203676145503871690636473801086176991096519913567830562426703156901377990659846070568690390555637327686760145465481619088587475973496738994441734164281251552325243324588724036227043795863588885697920138430336885409198093781447117558202659588437066751447712645978149897774338611395615383780055794919537499205493596181610376322919693509670620040207007759897347509836818666790999748179374212205247646595493967114674370977595580286537244511607199267301682877286518382605053113073593606170954345146243802697746212197871571899206314553648021328270414519432143838402502624238043950835798313382960113654640481937126983692117723907655233669516791657430964444731097549061076567624625927310363144227826241808409311150076054010899331439467334158272473146443229853643590699433513502019401623734407739008322916481202122340193171778421710520348682032785132666150962355567746401364931613353085607636064555214897638069100825499778222814587599998941738986791784188262971881706534833045161161199780557440223395070930612603464041751754599440411477899518186594819227840144152185773744008267501236730947955520151071675040471948505949687327718430947866845345773477050599783206537030491922154758861231385891777943932338859775048964916365255089366105160509706407144647839629472700791797383654182171613473823934677848477833990604803358535652339419817278641792525765343479421288426247661449889883992854572141569543433633417512411014416591230335358239657805302403109620938432100360773480614907849576878603003166690073316907525488696749007631102871318485104665400122300626601734920957099656230826905169087367187555924738216837139003363854146288204953153760408850712538434142419839011330609027890232450019247250936190194677301249793755653894952837579044486556752203828513701387777066663264138879884037829047666259181564891400715731770880268189629975270026471343363760578650416063117695488115690837136549245220940100015679472724338271160549968483719768663187515282548970567779216747126375979269226698741859801746892306064656241396441641129921337909797517984182593154459284763778322371861102526702968815539241708674830630331232388841118289229072021674895860196077428061355999450554272814397296096749220372882059972169810439761627092175258373529819357392753519388118203823369939198390147836426174791105411408547246809328855933277531163234281824081680510767427864203081919115785654382961942016591580675186485343416156418588416786983189125221316840299282338570598382219054115739223082519965224807985962302368017878236594895739874167715126277236182257652041366408449954607276470497422603739268632286879951599528629469568108934153115056331469342529632051627864021661489221218473259831999501638553689812848155023663429850141246582830999942865306978308506042790340909116427114743628609058744086464038303492145089807514177908001173652641699139634005866526990125831063323936136266046127284130796789570491756172773819898195745058756032121990467686403840445141790490502211457389188098880006531721121986174043360346022071993197271830802440386820379388448723890802549333867082873436240291657662830665576534531366862343367211878609150889813380609276073701485698938699619078251228610008225651910842378536217506582013057051273703242059791576357733567763771609916189403769416670476615260447355293995404016998257907757201279722383443596464301503159595350655830502554203752115663747164401886651860178902410257922499663202447436456137038801565186617451284826311751586103991625315998968339605008763893390329901097915249282754148512766897474510824100537512404439580184465052940970362385227889706925493706013953792102441398861997071851188391209475778298302490764253659609461039717671235135983697331536047255818750076750185092468478139910019964694091018392918665104761597232855740358565392980136310787323520750878278053282693850832126923097764682808592850107862865733036408531598054877182021865501442782620776119978605795392121902782712046642985333964205056403563029824837159063580343463028843002114828512927830964347156563316101858854781268708953793265526310147411302903165410285423804006401337953086355995660304997437736773679381409631683127037358812443631662362500150631765069282451029042048485098692177530698161253032159406532257772651744358146727838032724049800388966570687493629834032631065172750629208163255165047856191613988984756362290030144186912911459695038173825887756544435859365093165221842164879335191353839890174899633014980133353502083326906153717926293217013102723141701365372419694838396441223221472185953453538437068987153197299826070980976815085452786035799594780051278462601244245109830715883756907441619009443682129929542574456973351388972161721975917432699040212328089410395359753464354062097378369899593694075865819193940451656512728481133514027521193497314425597572502948946186129791473233999659187330185575347224419938549054671351904107663276850258928003947508405727083674966807270648556950138861421456963273342100030004870321995655947093824694668131623847209051170174214494195890942280509040277611047340405780880437400090170161443042527797424508447448172681231595055678016579889431324356805395817954767232481808077724722989191279486418463656046556661300352661664207945460156114808179923488115132322113417112916802091731039528926493593083869450812247422528017054285401317593078331814873938604881806442545657140186589803620731041723855095923349644637884963048184623938922883436143593414566248205833438021318313083056899338058788086857763170383463767385484558282680100950422387159911895441928042147698821131206319421670010697316715506457037837195217315724762428731132278965760939675792078507996001381531196269511420314158428833469078782312882035322985168065846678109513066605667692037247067317140545048274708814240010507934928512635463655955143623154186881970760597501928727109578328225877366782249101412965931074603348256874390412189153296859820950631067849705440221680565319173894176965181906354459037226413373210149992649388465583298789587719238208457021260867398120664942764586444901994893879735070471982595812090423029264461225395860276489271112151090044640324018497181566427960536391629744871042336279557336144442491406236284920778332306804988096346028039166881066672612029848612687487177284623254612502778573920010078558833780667944983105943150947134017939259793174603008908976251631716282529044767912701852984230600038150087565636229320051109463886661381910259627132497046364164510320243377725643099505932505561107792868131364091615328016516754814749940688610088616328611885334304673360546597414374304394014381151859405420381049514908958498975282597488482905525865559216851633385575800322085618023912494410221019337886968322256366720492681249063400161391336161873610419825510422084774518564255393852166782984594482644679053756133553745117330461602255477340744688723846142182583919141907672714978677674119619880167637536520401681350270928474169136604902821095767520363928044385845644759344875443755464324361371203737699763555585784888623491128110450520426717376846071481717496915457064357255874282389519794435574743143795046255462670806065191720298871866573453978339174324858187079690133868614490355311773296279491947978646343295773596458305761932042494332213530712099970065687553721862579873036347401305216381731731357570088993688031629650375619397284964074424764302356734192770678451129885533884388272974130919959367111492717562311378315489907164235386265588483669686991316595063750626839084816029324921772082928800237965750763634555739290588439503027707321102783860485744634629421190591546662766917629398502955969331795005936254491936328977973625065871578761887467824258642270812521525358829787074781796394533021714257033138185362173231933961703467721399793984709772519290677001806396489586080221788694446000683192707708285596860239333241775909518694182560936791310904518696336034574768121040982874630004096855464264738055086937955489335292002348338326768548177306294382079364254070170144028425128610756739224792367846121346865331405263393733467111124063253592503955796534059436155564320983002206008890452274296210064523162284417171371888782973323838833758236652439470473314477645142606399186888941178673466412365680730731547082921285020516330272371775884941660199688677162611602042761716584289148201221879212435164971170155135935325126533138852663180642119583802357680669554324346340135371202677970271750730045079067145431990584013379409357937906599863610518764987299564472585445580751789094697643690446893665814165623139253227635913438153327265676002111745705684797324964323582383476061993390045644605837684677069505169823410230473264748642507842041779961137286906255609054592426648636219515504859588698082413260406504402793862995607663505809194039604845287686591795801299937092914360445001726590478473379453474238800869556406820960391947239423895110851160145254192466021173494099414510574121465001531585616343864248973526237496459102961188357620798173279686141291282518655693794972971441081979689283642218080190684631338902076551206167686771999857328255403177050689165066961738883750536183254734254200125360077096500372763344855444118402170859340202222242426782846646654280679840626343198156972046532760512787351691193083273426297276309706666820911358889648205810866840594674953585113892332730588511858237402795065182988082060978119488658299973949624138884945680934816658260660690264868189160036901191771171716539534286654889823007293727100877176390882542806991638286841513366471295494710136006058252635563277093679694245610518863638726474624238139702850405418162513132775920444188781776400144884552326768478402100844596311283685025877510888711453206413999861531039961948660598412865485501217744687677751330238125045186222249987270364671557954891472016559564832235407342505405731492628052184967378485569604500878576828020852857420746378978940434518497036142220543164922427920118417042748708401058862746983416452718415331453435479242417609206174867929112036157180886687086142298228796700256803004489954228738688753366658564547551959192112754381417083775658567912188481191553992585247610827926370245200133670427994770310267608177845128791168892774771045458087447604871561006535339742100550074007653608966466550419722744004062860684195216119023846128486773932401394658181612254920528380777292819540178767790294559626401211688516722475137247343755645846388336691090482710053405292847086070845453661637983158407379426428919544006813795381015808890120290846309592673041563584621874539216640909609126702376588926861614976389856838602070576381145916866217729243377165378788274073530925686176382375232742976653233849511148055117855082203939688368618291925795580628940559414714410170803392492832361658999021922200567701794611149075128623733930202573840461746109211015416876492638430285821593520567280415576582466953651167258654635356169479808674007484833037915056699683848735260267707329644443224169194675248465153560786974608695341737739448064846950676300901115940499618479970376412075933503029450477784226949881078585680547604706396587793005495391385426231688580912361508548989216493501721455973436159018465955341710294640484942226873868608949134264136405788774149773660259259200727841600979116537990548473175282574602267714317090108396203197844684714419555395467708219632824442200911567642736702312845019356870037477741399571953608178651564995471676195317013966505786119780869648471946477153085580327830802546245609492148857085368191568922098131238974124067172493281728489454565472351255779645144075834859003306997729875385381958131548756741193826132376708697498831470418378783123879263322038070242041127460817272705962212364886737061657859198655944085346101357151203604191145980176281564500001749322299750059256074887372374401777196886748550667764770943988165321753643739409907125132398258345806208350600229826009524029443028592768128628365955894688222272413381052648004604901937476200183190925695671716669689297331108692489165899512499188767219705605104118456012315430444395527183049946258483193680630774241274544599310335284780329455299552118896603094878399653251742163841668890956612293714651696362712147522174873711688601464215886952576527864572782411935050480247768217790839143743638149162552934437659546132196464728552420019720133313516678708052740592770043038161967689078184925425352603019393406678320487877714402029060687733490929421154859610992053725337755734827961926406200435336076939067858712480219775232821432162822025954735930123931598364682264341494278679359256886953789220708532421464596627118641566313539764788191151821059516402169330803843575253971650550064942914555668003864494085024194546324309464726257948609058760487789319440526059732468983216899418593994172799318878720244501316952387377100233078130200037832635498802765456192481627796342569663889132624887864567565700339436840322407175759070854940825517628709115625361309640405283561729933462121760025025485616103252364751486406676697250141576796787938111199282169448536485935936227495449955320276468186019869077390864371262526535106670551022480786973074980938550911818002496856203389401597961066736115058074821527238025200911843594694563389071650962625161255550534178857362023122063383709418746546771231459449322687104445008243736016114597559520495711043764546117626743774654326527020537687494089369103027688443509638938389268693222734864573177440722348433492430264761939089834354756496985480453011739433499651994927638565275600833536306837014666618393979609898058379989921253535867813155977582080791514673772126914899011594575672272536073912042668739455216998686206539214466655140777694294567710428285164240938808768040361909781316436860391384602928493383335896606188492273994883582739637302495687691073327589473549542185056707038906598713883108436057361317041973161200692565463813456420279193996255075863853925288812734789829819225986233853504905861576555111260824905769841973009632244344565209942384762549779616118765976955561165211789009114159834153394260567275339038920929302318949146881791534353756760752234253304775427260612387878248368713124114502952111670781655994057203707977820764431988322451595948259414745936334009539175966452466420840115153751698240380668132106095970836394926833558119924089402988029975571479110470637122353263615418981183544084618694201293005905235213403005059943348386652172489006266203484012405150592939457789030789066337661340717176070276457265142711661848195508239207285126852272070046664577740434721120481533820369036528851177101859220169877567194451279344680015633746672862958973190044590640263998182853545997704167576240820826830877520343569183000454218766661055987634012328331071838539501969482843536231733156919432405404930210139845263161761731285377835626672887001623238064329814479113033990923861492094054399732170076541533977687526759467995612302835537140264916328872848824576687252710363184562390470457208315286662984444237683356083732395313516743400208794563688135255474006799195955744382249090330157699042906953128756644178975161072875630424846473316832881540285384020901435681707751531983119543503246557280247150542220408761668202026664573077349501872985087581218143956244388354857482310713431656913289111931883341674074505054213174837115660714842013058066637783651549654859732351283333140993266423493561616763444826192699198109647657216893735528969994733776950073231243390363729263451452941586272082284603875690982593895224197976780721178660606981282557580902500085683107998320136386469986538207939280752978069873158359689567887266562871230515983964850541038964699631622386577646382898470958786343813844912607363426176465909781075090402006666895404033683727927524922933006639730707402309955062779693812551671328368540452810462437174398775056737320456179136751627202241389633926052075237559761570739422031909873087782148771096206168162057578257364493446174710405654250763471660501112647837769028260103474481989804637509266605155483592854746938767686454265797808977766909632851510229809211087583927629076566981323661227322819637443534733356649712709892841831110566488879456573819939145159112093020685734771766222141311311604592987060344278573302004175589379812496852116680658043391603631863364985366371550055720822332430558773393579222715803775388417667048510232035350326344695758831886069574339918092108386367608935914245383848198591210906090654711975383370109640032547244317697627047106430177435090167924558078395059471464857616594533498122021190264734976426190821444764540600479557828200272222243629012764261167274532566952739827780919664198539627828872470181971761191961054281794998014303953816524504919006429629522483217224431848463089078782910401286013523941623197180826574081238721490072442059899461441981650777652598397945795541852541974328934794853504276353177759143089247991242386210378647914266566862903619957317533538798744433845666653986991442927866564086723929816980129772708182810798092668471918290751874209142724676554449533532955791395023625296758670554781917564641177735883859575521030796867655910310172675086711160696508415663914521725239327155126706509171850453206218401514837247438414923433270123589017377541174005705750152710974122385191342769036934682565256910596081962810424258161989890694149883708902858946644668466832801077235373858468740694195415907226490970122186173174779522167776485648573689470567063373471177572454608427164682216887369532075758328545481697638082558349188322438164806328505522168380606405501273958955613425612464265287397023734623815569916865680099876252688700322757744910722480934836602749257902991197669119171148671692981584395765333641247547240388739082127472650056089505081657539046473902816464468446049620741286058772929953408995260002923034392563565588373777121618554137112508418615742866123245012745848927378550392816800770327614453867930431970050893590364371149300521231660710707680093666929998054684215986130177138223417920220816918633284686861718597010724343767019207594075307429701698366444056172742223641320360677672106402425848543030439570765684630324994883877152075699460807584071337377725743357583864697202992638640864016737045001809934772744520566038443054213615315307537767784341561745744888229032169050904938619669125376936567793091169740276011473988010892148573560374265042987325879942092830834003975852047064955587922314764201035529920518743132789405746530747177391274966705384717723656299309041147884932042887012615731695760643501532619467413915710080250303653280293433566677941485422062103451552883585404979205611303418839570052326695789244612098208977300082634960121331632279547442684024300334316308949032865588053246608410465887788155860249295948136177085188206037850430455039571619381594510944345503326551597198812159707868861512679617358652347110696999570404096221825945025519764959164354482229863423920962787130553535021748390892062127539741621410715755720359550007442013534063918967855406708683113901904010921309546133476832421857260756418363682143366679398439883842535263536450964400587238667607713146040371615911976890250281136718147661047001090732598356734946696035959273413502190174830061469729633245612181368450283875552411903873167987221342261815295008505721961032310468713592520709047972614104905055242814509936238325773220664824534558958707243452183996260500200928892503684482421656654166802903495830613859203708309146510077576399947850008791293609499208438022404675916325623695188348744871503477054511354603497153370536992989272119974501553972283211317581517973425566918951282648779160779971998614999341147061392543959636900404397257951163322898784654721040332852592778954885079468295998457040237187680976839525038033462645198595558952569943534533413548230607026470312463889182861533841193436023789683296655432370348022842786484740434708229588347163171653982841814861757951287956598582427519655310977353228992991412666509074053584050775957031570407794273239233487191012696884656755811009453527629111138908729015489144358454688336459623145673781862608104649014507760993948763864649421395540762745448292988679793866750781762111641143823999783566640655616858799621187916779692766865214192883504471835038638248438976407761466931052930813654113818770293531023928084855335629084175655165028067260843990519419001085317985820811012449012490711899718556465157279868161594759093748356060549975208247912276867522560816015005432696262341073811996567992785902100915640471697836914050338332360399424715405614300967811708699308858831017005882390940986168547834972568706991619683063112284195171425591227076893431406284051764862463547324464721454591763768474227117190893513641245438015272255867092657946826544111986457671101846468713082395557633279005948060259933916579556380869198898361838628103260347594147532702694092917590296276059172391589220550171930691427527626336777819303452419841228902497399168063458627884904207624605028480643469176838679164967050748182047176299340733789540026306433292994571859908799831457737650589038673106351507270100560837186361703531438465124927057965822619116469494259868889866350348018620304564116869560051755766937483816242796316796893845360329511364548929729441499833830256033945163201038289471665430787502980612187664015638147541922712668517232212127867301111719809967397743158675714091857582643547204752437535150795562646981860177405654390023071422093965143150480310579453274515313381712879410688478937830804825726811698238150321342202987608002520433315484601399335795897100286569298494337176817706109495523685692895984746835666392698923238330809990781436003528401152291038357464099665657337438280183621700452033813753926510298748245392112384025698059525338311543369914919477099172632812498051489150748084118102761093062267907462905538947816446764832815023406950248355934844702910162219504843765952865746691268005886408809130939974237678534233396774005070692485617206882592696992816572575122529469698058906895134008722537614759657523018116705245696040084971621294936796954240008333095306057277956934849264451235626991055236142875515867044159422301763081504333182675116026205855823910273671633451183462238410961486206938445421333952431451010773603790786455734327313716193576270414021762836129541591282729367461576026776353355809955337725869895933085408351767988997313030139854096278611505431607134080911944520354663733379982867744837591995303775401004394392205235643130539283986096374037682928809545408814705888502479511851942152321602908129530561583074473853782448724754992050859504120917299345864680703016201976723268271812373522022592473771139874446551819376554752223574349990939698256456175125323028824825078719910313045015911015214236551006428490334788937275438374924907043493830825514782458942423959980598492591572784620991637556683973181850635436640637337571230118922358397687769225410591496075357759448584202115695613442149189610182751126079112552126258280091753580605083097122566917135803382162506583029179617924507047302163545159318130356796288453487253190187749348144145272066778875089418137249913725513538981087973010587645632189480494210712985675136391859930075263000744380615551377474690533591435182419318952891866588153946045962972386739609281678555400514044621065383491136787383855963948332777673211383620714683001868060132052691913956036795174473407758708405005341553228379668550418922521152321452708354955419416397442144778875873398548206996997014837036028562731562762480753622717316174295636701480869876251087242963957833505059640523159563636557369946410167486354194858220752461118564374136600488558662578196370024273264748715568410803002429486832205464863437222036957630877107960481049510516342271600407051186835539247564115630982079444896915788375739356680257352072900764800732928291361855269394285771696578153894135538755962393063725428206675970381030258922323018733687763677840276481783609700618807962848752781000422475751199804704579149257527523324544090873201579988482701762835545802205635895875941064942574625323822507475273113410300870567000631806555461693614758628964317056637336477574428797328441367795209846844843185562406553333600604498325282276049567869785794848651261446859204000525478409159172232532201153074601419523945902959489690243905550072235216869273406412619823492765838859080700365907111598103355159576919062655472057843136087058026900645061129117067890888837349409520785845333389230378932877781726955879857399205268076782169344773976425646171115722209464565360802865379859754403306152773198765094048239483213262423243599146409675720517623227714524700642818070716889724978619564702110433544970927930295252627061351487855428817137066622869065589614775539810271308409527050594756397934566855740589816423390511611991868200080079541094429580492485924795471048372226798795212485199918107602987183921440978020491079567072998130594377389045797476309412367479647951408803783904626691365035516178308951306118128386762244950304676104072052690637388327811741701257461001255294990699482252118940007246205640187625748638778768416703893472229765959133985789942201284810666313762008542856405674107323579228638436658844657267627424665716701871750118927567922043663288678883600560677569540372136808402523611437650843856833413636831895228147544194929768807883738718341615146742841525018298204802070268947134305020444462128401718681881967063706223098097164117781154938535491918459091006644318398912501992855902165333844350816706266110107232938971139840392648092472169162971146654919156382983697333260669779637329703771451781279925481877097742848200588900596274279971054441248473691874590581286422717562143993922341260600003296274408640255851924657367426230084665785030595829636566545753389365301627383077432460418808766281941461727364873438469592020199744734919245061468674216647860352959396549840748584486688076720568511798077625009074434305074977338169641314805999436169230534693116342162922178770865345514220376323478101249937618814096615194722102824864419870601641079786278165439483945457744494522227124742338696837627932482955167267746874584986539379461209594100896653247189666976277686825178631920807296362953000562739263594258551002900960592513977335342670951516331858769848463039590474091091020908854018398201333642247338260990740046546862809246306440706204589730816059837541275991670189998019747250334016768673087542287409257980173421645962149852616561963674144225490942952117836014787553068177455408204782084724268811980465605548359433722815353183932653586132632469888890425296631353630119040480847291369712245174904242518320202205994992079516979099713061225444581732162941646096489376484490518447444284583314047309182906977842461287764085092961472306874999848619312941083773643378597830457776805581463755961562383097652002576061706686335367263140927024343313111073539796765767356809938103641656019499497211987686506671612527698413667420458552776579968764470299386310348685149807424165025753092411495277973913412351398589515189322553457927050428058735113732050821581272731795433791596895673456222281131652228859602766535103196533736422273182120101624896695893343404841001962092397723779783361349869427091383626148573130626317968873495856089838448590067204873712440930834847000064738546729478041819540970432544129237369346959500809107623504166233793361992057916800294118755076555509848696531609790220747241661288261809327177195327133952822260271820794252956784191822266109407553776458627660772450976382812599816328127255891088459087010903044155462717329002236694360397701874012177256290279912800550752881152154233337304104070065366459936469916029284698276992386213528968685059591899076633353125564787004883150498869463033370773884968895806442102905097790952412060467367601288350093679494848829530662195972022709386628973154528246685073914566138450973403948429924370794939285394136613827047302632283674439875617419802122542196733405412746363732236870145281340152590868896977511151346517801931335248599478265571882530934224516409455576877422620995575847320640188021119841225938308990356544614969333617032309741073858488727509562302132251850860133341681337364997219676412225681288010811513435829306571918058392710430823669078815700078027378395501760136969984530213583664627369950685825288560202544843377592572627581871174850012813719938163748980407002046962826837303076687826876636185226283999081729765087791709484646742400842080926198502807156982160346979022954756116320383517098945134199176323055908945714966510689287985528078347049504820413930123401331447273815252233083969428350104311454058900235120764889964346317944720693835241047748955232747399420281819666660984797342918884321480858078872987181980370405461406533976039900451830097450858307048275225273519795212731041770047833576200058810429367229125606973716384678650208924478622620766697799419628414459328899836597123010573757579858485272366484014426527072889538893198090477288188892877354707028948159168558024003000703843249098164088769985604331348837866748852382904499306154306614466011008757468353045944209298416390616031264968908334354953830053024357627251610757554140925716407830186806070251819838009718486183153236309336629494332109342228669551968855293707977760258595138713796494079768749063668707345928440130465288816833375870505404418450409509437309321572207786501509224312834124759328239679026884271756652961506083582136518422711806351589719049086891225981684658421550031610671324667812309967894581154471150669005097707338036122912032669699294973764280341519666093895132644885597006769145365925511192728173088321629859473117698215422817662554903906908303575880884138906246212088207478559670573792095024561974942078400890133545535335946309773414442081561871741690162163295689480572071280971453955184609817314207413079415685449917018886024032896762796431151480155346304917262934792997954936145900072768792979927614102397098255982105325287708834388507074113092169224728285303633332648120188093856894987692278513751657107900315518450757892898590336977974939720848590112600580275804981329412040815397157480935771408117362782267524503548459801456736550559712506476716494476949376290866461623588238809909789011926236506976284852817090032577841698933809463234227518497942522455965155258128709809447560512126840914994559546708340260788404747388415510532492720314336013457941506612256299292472403615140412660368433447023157299291322088822342059457741762416728751725446813047466928882068375907273892989603714594217553697591562473464877874175042524655600011449410747297332377078463801157778537020826674223398992491339852129573201855568678156848672988611718555181959437469587035291062628170629105102951658323353714544966982002693217492126758670612681440597320092682193833123228429077243216369219381390870628879037512367528452361373153937726721067564241484154882537551541406785126911196510421373014773768506125410836664397836747351898593709911645603770281993249963852744756959968446923319112699528921433484316122032335140921192295127861649894000696293022672941022684272581320781565766489439145726935341797654983201035210990062625900110921394947415674515518131946735173213451260756740778635898640600440446006466778153814930166689270833968991401126570379286138777614224840517055109527172330448943905661756248357349865396659297559169949234823519597039206337800800983048302914257091753768220566308167780887102385353853632998469937501307354491882393037073344144559517799057292570297830833220495168278161866670084678409232123183053373269312226809863841035013597786232863543795866318859185996974527872875033111943257275924470661740879073910082308580508503604713357908588856700001295535464561059761596870395230695319557904374353124692020148765388241609603405875230136416713999656889529276091678556377355940745065929088652347570999430116768803552887439190014694037952292678978183887771554120056926131908785122830831338611628946117733599970832753273528772324459808441025019862633582132782708551231438619338357044527372027482109313205955095552576468721776127747077234595527469207411623967439540379007223942360335670012876583395599187607662615691303597543626627262288685396021035924753375589974243775011481214014978417200504798100600974597007477178782542524833680997847314539753297195186457452852948659199228927517514138296710577927093095678843460063591353013605788596182425428467421421558333126180801530608627504169911947560121463899502629131518788112262914242817516170110311091098850579348460633230430415149048933582405171344374211286022501148432942752509049095313975363668850268421145088500432096353611314556850023955765663052512762010016545125960546249803155032850808398832064714851946769286063086915626304530209854700525726704530442293502141723281008243040037295726675013478047875897317785797450641726661095625066947194036359388185892982217292715324983189703704218014962669594989964556786780387097608541699226507064419468541723482696541188764973857447161110757027374514206136706641878626465467470921622902538894178993599376203518319637005437357099991425524450496054422884224327734625071849891682860286458523731481983428493010369249378184293672964467174988322131006374739304059239621178838366242340323899747517768193685295891822806783094555011059739540554306893408357700821809911257583216994393113408252608143941884071603806305254114290682465581265424832316662859604976732140869266255926485478248658062449470130441060269132581481240103707539215228595652591385675718594702854825623886117845895682331957568906456532896465014903072618409094066023150423978548793301800238134982762759039936097155953485244495841065323692410681268829788454619202425309672194401525071380638875917097598934303633535252773189105209364607274298691974528200254156423095315969493024129335994889243650407527141833770724861829185155274009245228606019929886846743387560935499177325068767605573344083477415148963378036304384156922002735045677273795184346587578213193712252369542911312873328251588695149086475803215260792087870822433703253902911168519971888876023796422305705479713491320110237391119570698122279818406334194906518391238753873372458872525300000242862180302917821745745060080394168786126897639093412908423949178416765095084213775785603939335197649526282228042536840013199673104896993833214844333991893769817082951833065519307197999922516442635499480619418537217508563122213028067743560447081802288766427483126155827236888677492387615776746883601857262927523757934854696905647579397918928839024142276080443055910369665749992556883062358403949241222952220195100324888295145500119944578502332521476572884955066584648140467782819528073107716684495901903243663431658761614424323927595416445576191961419031443244337595423323861047287239202821466261251593374455288974707046310202781361540971671277460872471045479183126734696719848435568179883883569162761315505960607734552096289305374058774466795418552381873890757765026079290707976958372726823632748790345626193411432090391174946160022978320932013451162805236622825654744802410389504703033375693756818907595794873405106013743283973721260282910085336887416137141585812140534525649547211633008034112158659430667156774369857737653304749582672476145524881305263412672867763323393255520634890224644470712002963798689312463105346104097439924076649419036731821902100361124136424478680140505127065786088532011142879706193799501897948564839123526958858068206787424421893985505681635622490075296449511263003078225036003542114273307695307307897224392089073825775765523644830754454637825055974056629506778551016868208036820455222506979706991046177345459641275721479760046404191778194014636700879540799227525938356570730300320148311878078561400425048747609230751992888644607794428619451698254353001928811951627618989505086233571140475488378460055263797720990124071900830943985209886805505422513008343907465546158052625351055140421044056116366673756913320985058640053038938131165101438673075755395364947545033581282732297922416728084382670117789432344159052818950970525064816136632384607752822839733178563075170629830984380396056321628124075625296470007829530616124840388569855778891249622728859694741341331698648883704052891074049607503453319980028055476831089202328958131056519674371616702423503727892932904791466968389558093040490201481989727727991203878587914532404670684213380064673504122164326547881720460792389946769279816539807887885619933944884752679406209141375539304434332224410915487926604095439197435514636259152350297175552733929194128471205200437366626183712392352026699150124789900256392587449410240346178414795393334983437369250773264853623323935447371324541194917662892639476430527346730120353733024650009243493737357062216180556932716032689082704196887512146563516879827084399677530334046798111220904570121572871593468598816655257529160496571023130841020531469268473535943173753533369923724055913274835694887430624155767947787328935128203117237741499651651447360224971281085946157857423545844781603304935394223207495673856634347870156071239559227273410583458150342580177271526370921975586807217452732387962353088959289672850298813863550906532705027462276197764625244491413598876239462292010191129354698925525030430829121827976963173864015656005169813881637241210989313818183030795075445694618558231635589666444347966372931278188205092663539640400448938066321984035278978243402722323430693192627619050271647749459381027887312340062071202659229730245550939474900771542219171604518159356754894633481718034226320670588432236068978008566066739808468487551044359988764481837371834614081922746236579475833784504292728206988823786179964851983158092529853947003714659210656762505891433883104992414842181573380976998210079349976648668546194639349714044222734324569363854685799575129676102388310040315658418487232234572920908832319944392890299127078636262839083071079151242431804619747189544878921327475067543037982570308533404337924623968028795969658188414819224726050157740034456804045694328232130772153215740939661013162416847257327368959483579585094211652485645372766714263668340682340418970255814337260751759109373753455709362402709031409073987551018344107914846102538639222753481314028595540055073967669035654628555421627771777652189442759848081517424249534720528712580459514287092092489849012279801445390091063367063164007286753662078172714256609405491751869864416294012757674492924487229430867571708990760697002146725138192124861267335776159596673422561339779590416084507419687260594203488190375972410660265123146572951802586307868504128113192675886612260446021910646234260098799938012818117480578798972652405331118094952034722451158630949451297304294412472748714233878522072817244637784567395312924760127369321879137141529843841635549623224533876322274010010610413805776099906221817413689158892911671482757027467113882404546439273731379647484069061345677623587291913815760494273021428508763838026987602356437941499397649915003159733150893943746723614009418950997391399198907887972097922011974331263254013719857417246997602347299450538350770273576121094280218003042001082484115154186405891106753991887456371505613166397066189240339715246797661532714234381454873036466814013011348243357506551328674867006124503685398566476008471326855891981539900041444016375570090351983514482878616256566723725743661008278479006705719023248799143041091503032712929247146978046648691988943302029753852106154297443467397613212487963478708185935624449471072542434346092756556019169509049909871329233979796246923249140315747953823074447525469254746556224229177361311049853133303354467171147282236741296980294751434003634104681164930691344208071306963643130812194895642467448541796592055460696016479632774243252542231783785540967699319023044317163072939025534012775239607730950470103148825767493668918512317141528708806655104439944532561327349965373800475991913013784348300891393283039071490870823875335057549462464593435591658783825338045327421619119743951239926818103825659397607034284648530528168676173511255747283915771056110409477333943399978356787171658276082463999834578295406931741859554596996174177703467346909261317060248849201404134259698132760988312340541015480031194393528450648297361319505860539752486938997942454316792362331418200554474804121419835197533964546457491614236813440968899144862439648509806691462807679651100576965061732143818850665564824705295796224243867864866925040003882739536123736337191069137545305661049323512415670941061599090169350137814112838694277515887225464277089119930202615734551283076196325809265218594401725698016197173747803997562203537070519423251683539170425369863851691732635501218913119914697715616193914947015991723346147735577897910007953113920715960833465646787908937513876427268260789172856131792163857012199431831723392933693482137818913005011160595500311161465927965039297935391988994201726521626971273024784769213734744309193538068005886615697006119009404708261044369585916721461267410352442413266816960438141048473372296394714371781772420198409692951819329426035592338249475382616173852741657998995669460528671951756565706457347306492400889578631206496712635923417638160097647386957386066959925480242633161629291177075328200320530067787631245254589111045222865458113126150841957559172615251128362089470421799817750311358141622606721110098010576289775489376684805256888599483789328811830478786937810549644240977943633115299037187732109766389653197675333704378135717541217159959370554895935921301233726498393723029566652367037726704426919979149289521008767227453646880045751965671312377394052513303489344983113236305632216274512641541699800600261410918645608871053166703663615146916611070564400472869881194997695458110600738910718829236451281072919386747180137521188563151531809893392678959606721948921394356824337625013713131677168959812366190934726016413236130705703099830357963579766521973350488822433619091261492067998258954444872341744862560599360621094634098900172231981055421493820270791242047065244749057021946397404306389288804987808096016315277636538428128409075573571942435789396910962337869689705564471555805697902635284918803140832225599571833767897096492520647175351578944990069892524071726927067625291235200787369101645276127611199264675300816671150696533429227869043693186045212842738078988705964170012346333387071742556205956482867854373460630226534603159106680645800040614263578049367883067949311090399761399006473004265480037441642960061495969395998999193395751884604650479417463439842168689472487505015989809080437279532016688732984891370421680520685074555689572699525045345465795950459011232918175185559873221222387255687812409304412848333119090168527220586222342713412395063326409190689444967137620926866731182303013685304461137145354088254168601654119736740056269152393096735013620572061130383050147335655513718733864584764495202889757277481029903545658772799152531819620871907135814388395771763892010524273585597617170838311452196134075988199227887586470590073897715796055228541526072634027528370295551744223766133182377862916126880924033802723258402729303879320996422792712963339410937346777903714064706043146008475976978855404721494877904877740893299631167626295808176543100080781124892109454184463860810215701576738447430722559217131265861137707962019841213126102802439640590268739780824232016631405184728292479853304112785821652766895586131723070701687536743414868637056679543647601482454103558168491818467459646406149810888547885328630739943149577871167927245871250054914276666987203890473466424908807157770071104456037787774281685367136075968850704612903344166856100671839988864606747701327529330530655767625386260462188408688636779644884049413423318476615776407363898667788550495459979434184542868133513436221275145857173186171398168441318180054511408285810188904027328938507798940896334394688979863446809880758718922521507853962064141576767454597301052820603227698058299611262830858010111225262073194334052866269512936889756016743057895416061787364737786897951004073205765595298146944970725740121152201556425166358398918399683922741538506369639630435761089711045874965967747270032373978652539734641053279566550550952077496872409994236239018156474709367105581110035860821582414762614297431353659363245578313654736521439485578047355865454389660258413830214808581635232503462176866523582158247616692167764647324247337236525016210553244979297545013042787356499026477635212058161870305929042977352618047228773527456248648588773870797302890790186223191628265767583840192681928400492610658249828621934263553302910952200404137075218219341400332162271085848811797315763104754729397614352408201672911706250844735185424141041297482722083869144522042656955372917817772418000549575160397250784717701489255031941494633886904207000314106392915583791081995226113932664878802209131610870916514891488168194033613717693319964529276237502645933537688849151946653452891999959513036079368572690433303354890462764408901440076584721867949838053790736640334065150855020980537636433049440899463047444913009882899938685944809965263033389834463717779257623660754655103814482748858138406513624842772403598843410678131853980923808162914611993015324676241371349201820924598430720630607324867423824436222460803167533163146883613035232399830199158462703196619964093200587425035415815876019717351402454500583146862326824346955268344500855867786407541347233803953779844485216390522748331576889260765834868509765642258552357224403253831298432870220239334133521306555031943040224602100027167800536212454997559668271601314343788899785463934212053800622979201333036892791601828892605995444010199719253382357994461755888673862721862412907983754532637204329621045737788516005764992187026692820245223954474666665976340691480658438853062300086648014238363949395843437045809567429716189598904410638192674232245092422826339691356334608713560347912301065167075673762312550565682480550030346048821919283608525768079046128293025586480334458819026880506622972603466574323084885408166787024513105837062055679847132736971890255913374559189310347917545596434459663239243976597674258187451013589963704218366553210206532164409940685664430728108327122166962806348246927589684769594982199315653065789910108453499189634300385198369131065208993120797575735673732833831475538194071271728438991079726061089244412881085037951144879705155590649240693196715972925460243256353630742471686970594540571813160914572661681926197355276533603965882910342373894588860756019309631402396355012864964695319207968094340889474347216473331183710039676525488855629656739282164271499420884402016719461725034557067300126474529345761740404228705862809431414529351620225583556936404187537151297488305782416802211192053394577074877717719300634033711464156466774796048382535294117137016036407758289491288635657824227095966117920314057868687431643355810058804941937105421806078642286004186484892993384109243397382244175092992834442651602160596200186633091978058533808432929853294284948105853303120922783547636499936021878206227165508186937562652441461048857645294698975004426481245419822437044977298103721202091527938522588648055812181070824549376066464700346809998310290878572815781534889722103007785824793840335655796193197331420267336713006120776296721892222859307596724189673393881964792013651565499408548625718822792042314811133881170057720757876183529388530321406118720721808792834218002983761873353145596778648245805208423467520826491898062590906119088886542145589539238507372957548617951706528973203810234863484485709303709875949159779993996456404702620956088526382145858563092884014882229647529808380084866381299286659274982725498621282375868912621297101412652726577121616708685986881790566971221834673680866570903393500086934546449461586863185519803047586366782738961273430866231171488578066376638303509592318018537685246391692207855277760456400600531873708945776375547146525501265216808990785623714517276755392421688230497690366887420682337613611560408006048671184769342983423034999628902994594615353329566680779730675833054466833072502275132118506607214768823289957778647431636884835687528963450800821123791848124986428130305518007758336586326151170815070213904067447361540578874511477749925649837507561046727733983231048058398784297776445815988921199508825327648991323951329444551746145219078273059282357027993630059264237306051437704244675383637245898878614807980439313513148713719775312075694384355019565305304584627510622508449960399685343008223048463621302134688845567542180804978827753428134505115463568545286853575109594796179538132455541438164331387791650544014291048785590189637663413937239909498043658927454620336151731764858501750572424759525119174911518952621154405852506433074673051172511334267766433116075859560501175002892257224013285501280265541654710055056888926018344748945121468335099189123678654761431144443392278650813467766661603329365602447702060797112718615283286496204797629775152411200082967650309430658840043842533521039614822393294655607502783443316061748948752137002198909185771155387619229037460799469426368354273569428434085050294372367209522964182085293650260572346508571463746948654906446714694126042709247142001872489572681144381113190866306537354578273692692270601681353423013158629716861581621614812483691708492870672856706245368375347767304831920258492832726553041726498502573441721311211924350276308751163460823135062341792439860803899620709859138438907710117067742308031268739288130003294129049582141304046018784580560764343009078014063869325763342438313130183402491427526979477941242236279447023524637074871619654438532268830369672786939061563317290241674492012837905765317612869443216044284228244608446852421357632846676973332873209141879266480925437055873210109260087207452810081347333817078735626202673613055340855591277920838534916848297853652882513631960267609741968890606553858530928672095604202108697487450781241215160228291499531489322327173958828115133024943010600761096182831335228096925190299822641143145378911925464568993730997897184799487914732611510371787144520000070067544250280590742722397469212596227876855704129370556892037884389837772453306304616468681642170141818005782752335108841098783399583723339461636442953974329848924669007538260564840789927731075951647032285811613132780463324634061058799350628007203284804632335996082364602594664905693036159937328632713096805326093693040288321417555881474387775046424819089749429811442109656100183038928775086498078737514279028823875291070163698007350197382711326209253346338930773131938626115871500127142612135894672736068600784656627029346219503704123968403269175811473029524920141483486816582481336261888448541179143518354717929309228372634212545405337634417947681367347012725778567207357074185216845323537091156119268100690785788499025229254128465804265995583491696259623042245602891233920466564519788939672704153225103558740687758438912276262833038214631394099660177297153269526742357255082497522744829734694897668052768272484212291188126627867755846142359547111752794242094080926641574779706679477896270023949888823048892698052221497892327518891621373812564743014741112283123798295045057184675264663831859898719447742242390819906048978976155786518294062383817361397787129302932496171338311825351279153604175289020434562814888835119126821607945552919093468734659047230343761926981979204023220616930843591865515008376083608608399570075490582439674867561944305599134303095022258293877250910919281168547417626825746542437613723748848236865440743151340561624267756084128991357522419044347620590869255239952090277451338846991007847294731449587270387220952410714892807700721674067928625433880393719635326112975121332595027615826495532322362813926813234762911741043242563699599254832109840318837123064980454635360791332208225372672199394554077319013545499733931214758587965601588524182391638656705714009995262932863170804797993789069759204752510311994974285801653652630920023937512361374073789655447633424342048511992021593715344527128415688173665828159226544181788247791259023179424142621200209871352662190253475490047055030442717695135704641492544612411210842065001282896497451223664305107515932162446470930979283732824194911936444788432201226703798593608431769020591699552384867345356428461986775235344330240635026607372436587633255452684209742863044860341716897162815148157224262111499855008342856403962295755117954387363149798294627797381514440148301057640680265391308272359346298457382576119214559601525576400283436640260286608523922372863387719110937626542449947779307184408675198740115266982170678841911936721076187952804764511752730072453949248269267743144697222657011755647499158942377597782983538567445427437628413797664421224004103268271299495813983437979561971406639628087459757656970417213337578921023756016026141476538835648248063149006508840275033567605619410813375917036637134893028144998048010892911630685003799332127206159740419689792103459506526905697910894276061905046294613122514373990368065772191151499441061646298312278945586950338949162189235986010741044644079116114809604454451926256624426521445105835771992269783460139431953006284803976767046420991048853510746530794629570205848747600118841021247262280515836275700377727873834184623396160268857072265820441137674890469825193839718281318491458564429562945278824477070244900661045763724864176175295740307476663005969141584958684127950135684485790904122790806046799754796326161840550738370670619055729946865848157475188031083374330037549814629151548093417551699501341092859024762577452489505947785056423674465186031626408111526546452025595650170515127757756398980127638438299563510633431029578079981168399418292510938122287142113489703469386013229029325372717723607730911442950416769894530692980741777578121211142331573270095048479919908611944193229494497009223610438707663407623523166762491690774355820637839032390315620446735331160060258674836970846517931867638772497661898048429758604571261148622982662334262255728276137803342791565813386794334364110265762186328058229535683378128674784368230182143120532758317778713192592498303327572593593559400542116845742494546224330829704452325192934609672868361560840117346743432673514196870445623295763960547847036896286464882056790756621403512652217408032071004590182554300540265629891475683028012743490310523354698912481739501403487635939809110583780683215038244515875264520727211643500482471770474282192339820024154201292094499525248894644142922485613684108849014933949772294925381460034750097759265533893229376288746879027921722729366588412817789059967474063816872507205920974519653888200654265209193951018061930678051456448368476594261266037642269197433083017274884334082555316329166594973499114084150177984450879244132956748568585368319879094140099758286701205769264467106755262859151806744672008966928994001071703179811089734543177244240432867447191697196809017557059834473040410326012766645433084257524754859322402941109024822404762832861234990159936952163888393785115992441920147469213108482506975989863895904826525231153449042475235415762263137491823514872984111152648507520079948209193772939292117907876348664327090723233900457006059476611153073989155671955117427845444883247781675159107880450671169186490733505965810835217512474620101761810305404136920974205944942238069137435328212162334061565660478812177851226720245830623253877098678586164753259465540580557574557954519016962491032914165694059100803347106555580104059803936942223715695821912381990729155064524723397305000000147510733887538169285848090795669193419217071537411702414711000367737542102985681563064479916016449578767023505115849559395206738089359659108767536107067842004537548224907211099725831748179140975148040452962971041064428184744884213948129394040874436277024487243410085716066069514527853028683831909533283864190541821768382340610429399892816682303832590667771521015383479990860080074593257914306782316582184744263679018637243015534875547969882646809485404058647888336745438889553081958292226965205687568093914579473167519468837575731890295940254989862650900707621475969398314607813922298806828757927572380859089497756386349088121102938903446253433259593694794534986160655610670685266206109128226216707294998976615201962471574134721160661551464571160802671976992647952574622673054352864002205495105111450658628222315104924052128942422443415363577712751736108785425471225130359954665416790329748304550818900601893743501571175782951359688400714488360156408697734829087401302247334338798938044989546114031041336630313971836844730090673958904470978818142518516159712749912035314947423997225491976764189879717137103939398635080192590789663233547605914952151817869480994206887965045757077487745773419586596195198435495691964539646173755670787723892836531569065558911686256028590208338618116206091983426239503661312018980883545010536783344639191752877583375608697653618698087177267529681182693221812009357454001623608017296058474393087093882452375102975489963868516014149308603535888310983136168673800756842944356629681602440047032853952822062209487295043210120058509705862821672412428438000691984232642955748308647988115046954500616579975518126599991267735395576905894220812156775110148497408154590159491929029580061194641174370195192937775352391620743525833986329150907412849806211784063521240902406832730904964403391341071349184754614464212456010455830048767625787380953932531967699661038651631194648621662441564752028112148120102852955745806242190922172189849737740968976711099302491080613718545263591377083125266746201271501423855316687396137882268446420975542743485525363106506662350506979134411816761733195092070539017754748456034982965681031530741858280928004263983888844130758822232336875103491660113062583842889792014578711445176232965483350895726230671139605928146730465527750851967790313571435259053912516971501227668257101807264716215027594544940811260206553395483910270650499055172944779692905243275039356421463982049011875484561583464095975853414455316476127935156871556488942177131117164258866938635986017949011135704968094177281579533305037793386305460841681314542566590857580146013519311574887021479179045213361801841839096825167905487372503876151752688897625438916059212277807749430346621295162049933876098307678353985899348859863126429827326235976381208415111647122680271559962569743886317493750347068932541365224637365352630397024833341544574714941547470815098566534025472703885681574233083918231976079457619036380161636114401506196884756088354564109422131483235860900421259873857999779409161207939724972388520487072962460034373165103759897636779699914556454563590344695624031517133356177650862066203974040019683601723557401610738865691136717853244509787495125461549612587464688221842501484568782271944981473259375442074683549841119077678773689844449135903404597362012665852459664243687517034139775606375819532888273788692911469344054286817763026746472670101586975562116880619159959786941154643209523315483890349027394919501653480467073400438288954389804993037693256793461457821637139454570807656236133233818846302983898369214549495896865628647393027145921870344932534872903534984989883235004835626314976798730836727615577912041876868062391283641719853577475772065884474512327273308200441158359948828763515901252733907177343780929915819177946545801306768227148018024536398483294567893655015406107629345454355825943377973461325993738175068076939452287177644292776884016609342793105300357161148036446369366537652419681451167366223311053929509929664583761366493641449124597064895195236320139515013775257595535419614083146287248415451226614179174596395774780084937505625288477002953212218008398719914492306597890154644154254339542164141446444263446864543810349021124668434521221261515981697783912801268118522461929780453447658154632443406853631790329191477366140250794228351441622468654452084328426370369176681039296962280590311849607660403920880942299815907311469533547171765541286727411944956500596581694984778749334811829993896359435706524923332823035216640673207345194725719006922183106654480941697236237579595771407218084888266792142143545776511150509869640878806343854249051662639341960166163842446290264351135864255805319675006385068415393052380425323056325017180082169546912209606139047911462061028581053457375085012971700082432446198710688597257428168234480826432513477050760787841278632681639949797548722881747330217427771541500903777871519587622677395587887342321142630407359996748626383811329166223181470929284028774877814292485096791458169214658303223448052155899769132454152076637441030053796360196851361827514975578622427548750996020406204304109144571154445044498686566084206170174357698929850332594878678525803952087127443187481724250762186979227728044873229534154367991906558908729252128104261651213430136808610181616543285233816137232374053261736576996525257179913671081691299430625078560754761858599709142408499227297153497622233021649369687731940113394357818783220182845859709425310229832452325251402463980576424929007840327552771331436963406386531884130421182100068950827618951039004643504528800730662765697513409827748787915790127093799249979128022320979343668580310573160722807217343862728810182961648526771655135391829113503384291704068726913033237124333764362294668965052816958969424726420625906336113536297724359070183600603070597385593293368092296424405274482616822625854729252138441081218028653243285801804688411843609461884308015616544346084187221543875640110602680935871080820238649088283838498093572038893925291901567678845280330935995038623246281708673525376083922278141276148158993317068031415158579825316954078152377395747735226988166414461635279400513819311119759354278434812863207431581711805087112594066704732386699364507604925088957363133988438404006631856010800394665616129679366783780884921914489665716775071132435367670738255756449283591581741688893321973687929086367685577903797672828332063276728397525300923384688721925891274674134769767931087377610838261391184220119303282909896974216464419319851801467593052365366641725483815149608709772720644653716007607885670327073027726521766726487349793207688252197077972003397579726198214456892185865370224476152654134927550091374204204508253924128796298564323464769725284468935637866505201288916223880222036201119888354654659541087382091544491148133016436893294277020828320054141200767068073687027993856122620896056320283318550432560503447488804098249333266120314451471084410445172894301992117449982835166453855689130159889504517086564130896989702287569777403662379568452426381451130495877188148739556434228069922036714055104110759798385731048594009691891716008135644793716145956800758341256807095885442372230136874317824193258780509929095587084602429498256164187563650357859799019677149883285923800661858054711532526774511835109933580507160774348955074844172198389320176247605562175300130121794684146367323824105805428533497301008531480865676542587124460594852168805046775320064641149736016420237572724143503291826906597494330095021492995939487278555433078825691898317285836585662000413460876784956607331973773507064029170126594715223738854903000938896863238085922007369884022554298620067887139825621709248287836305982514585665321549210867681859405773229764303293017168486772464745108952544999021762008356882542386907635289976543882240503264591730709017178112166768284215125796257645296431849301999778166220839434978257744262985777566201026608311583408890629850174708714073510168852295458789401958328293161225707782046966225853532349662160859363182445942469360046121881065571728978361414568238411257183983671659123080842739894201574378090662026032400753519476409483604976315830913424649530957001428987890353349543843326756292397819072975149620950980532189902544029432969463470278179569964742016383341959371951394123177657054911552787804532273120765303086259692469267350238346067225990630830295895558701324228849286725557790980111238358100414177373953461783795142633165541055665267935236619604210287654336551958570530984884584913009567095868464508380420160910389216142834235569862848115671884261076646122537106702244236844050552612569181715543710764666950320848030996523903837907248389707886856477944029128760305235030296925716619366675751816553457948419170945362110448492668793519359537638059836606590720649829545082047588594839675636266286180960020847351219516650372847930791630479802570837254156828332446645834943221819006109845672497608020199327256211240764844834177817695670207947431557125720610470419306067300894033645555590390186570909813638706032483724163303765457241086475089930037521566370802555261280179107880261154151878051599014608486865799366234767399874369049511997056673530305192878918111840982069107116003968376970645788711094736045262991959626716871939341156597526644370958642605811177550192700647466982989962606779945490257914103457135584061650569549495050581034975270754208627844205546149790078791315867412087983637833104587512529733709698848936089679419984971459366119168770005547453116827879619641430776781468623140701706389983263563049525337164505726193545467422871181271510494344637850460490625145894432065499464950828231623697151534675010448959534088053157773976955150643629434610085990875297971378789803390475212127944916373965540191959225372264654673776028066838196611622110313290816496878490549330025064219197207394024340612445600267903864199787553345070820842196830041970527320748088154688423456291560483765048196884691240768755370191393242843197376149881400621878846549491451341311985886635714523014745732069821817304700524443444463653368660091665729472496161370195425517645179024550298374688231796138939238016152204016512665578623933916082554418055935044074581860688654663354637669679627175384616918230394375065450324538499458232381428983027969139450096535049757576080563514793205623990305912173936516872628881373130723712609352424097664113458183347721326072912823855884661542523243549611808876166073301957358729711148659991883605491949079649302800935044682956333386226784781858507094719455247192151703157423977456743268985859353329070691195126901393333936944124501068517413070745539380790033173218105091021990050568317261854943493694410437441051417464642196364768854862742299756646454851515620422480869995693528910705853872998940881096269142444279768410086628201967303595047776058745789060564885548297126666996953793975059338137124462799393842835992321925178300778257532673715252942847375169799008273892046666365931174346918526675794568729899210157173543973318770746255296304430182457155779678905128967072277972171968108734629958818959654295077071131410301302796509161528304369146419994246933354501335348713797208753308218949630814025231527584825087398745074435952704422639643493613096459241311032564169359302267565564329762934067093115713049007006864532301123169689734659365603175453375683246873347432395575319771329778568533707576477937772570788928636095987775877409042617796465707382594267842402669301345555535031964804263268679472307521035576802524304749496460217321274683098380848104207764003044556883417280327005154660641142912803750782072855743241007189768683385217170069186041424852101794813864875113834565944020070166333220121028328471648379898537293948549824903978384268832180920077299273351319768387019716008362268234804354639632669442087036548483906857013843132924588530920318577165397991504767108394298597365846543381648326767384597465212550012478536833995831174301685723244226295898219438384173006098703519579592288510861186031138064934807270137033587512667660427637017256122304605017089626175450450262525610037280627161292751016610585523187816470843629310629200313911632758379780516044100604619647170545030771588341307062933820621227004293471172783982760551116981955995665301375561496964256156894383917142546594306977131117362684639195210512619604114823460519867658491064860534219402462805509360968183707963517417279619806128830749093267705010655507454994024421996817546562666633805342182262291430912084070167027966271641734208532386624229858692206725525638182295184142631701244924223556819368714979873863026062731915286438950949832924502533909831870582464778980204674880053626966222967195066902678485539512919488184203369051324562297646470813491393519939850782279192512235506650014918078920748016257475700842566311763248667232643699271582865673252771557276109595423375884740369868001072777249849151077725427023090005358259392506506697025803883463486678888529982987843474153180771678681436862429114633997501890398385916660088957338403098030830269411387809106352444597745066987009688425457132732436178288317295675217763009791398434556878000308217537868215029089657028676993286229192970778016194737482259494950458356962856255328395294152308068009291982356704111177521178598424508833918501017515458388057362504514479544129737753586449542026296259463580487077192870978841342391931101282006153413063363777874388831897747167756372100343569811318845571702363565212039625370774538976316820106601656926722424491314570750131100642013967632337996431450140249620672315589613706060940944530368111071527759155342188399268680589859478548470603536222827176300200656394265600867227317920198199441743702508624072662334918808569194089470650011310488851272200784016939011720706399321966344112965566349907901614746788508065682562530847167609899763108782991356940369772916396024719130660731862409918219180275694029154927503687776181316322744419379031889417572635949071840612438280417357199087179786389781377112367545821617155956049148135786862234382577232029243534544114712935325106841847502440118960250469469588672138064695633826947773940680666698815385777989977930372044734626658077544401345432262248238756906317545277732932790048767750176710626415504197357496636922931931693584234827555278162401056424220063559698014697558719039424927084917310691069523998244705395962163176438709736414458591163417645897978833723719172958882005466468659904660277846736654402128281944137966762138238958969114816549362519793667764531848628375789068281564027209376817308751743176823148977078180992795606153512609478905051197875335856869972079483976230091753278487351083989862041335918183438903948551972469401342471880354491709243709366541064266879534650147602425146040489934786673311232991775371796891619952232414576031241463724728149060988064254165322035101917669077991854884183072790811895905024103780821380044536584775720332540583328403046992385924063365535189857953980863552744880623113168440346990622534548437416246626845181043207585523683095457791246945828594479722425823611387165751773750651005796455062465907767467467642190037372314462383935539718262680788876282978873242253003119097449017912122560334378325766056544411422771840920323157507629819709038871198409397539068785234426640320228279638492114144242215148233415711592274161204096128427058512192134325297778480693372542820983849668191357365947082872104858287797182790598808123274911433256438461420102344390546340969046726169769251639067231378231844575233374513329256229336653763961561544880634954341676351170888455002652492876313157314986929474608552378637585890612470579005260549815413013055510933711842223308321766234858411057229955293369068876078630491237222388382494946627028460742246494157382278077306314319570221303490667018079487193320238615269636846994661709882112102301856307980925866113951447545352135251190649162018210990814867169199405324886714556563240616201607558895677607498801671180387387232883597813115862541797556803216169300563134225943469000037141085667054832714837864480811641917951228466105257818769003952706068810884367606823351456467012769440148836412861589378542636158658509404180758372711942457257264996600535289645927325921996484815546735702765433220768544160150070528607591263273291690145978053976167789448036520834383251082805783229222059339622612407392512730911946259144709099350162545563967287012218110226849660385451223028210933133004983060395098227276868496698346874275183305698994278023291333054600349799919593172452413762419962427443186522985306982824950029682409827993072334575942653714690399034894149316762107783954555727096993076214448294547178589022284199193165610525343611629255882224753853273897194439565422725088226556077704389468234236020265461971312208418205067613975954102229680695645618215997827318134765420594892026905828025219115595796637605521546570715849096317583019876706416266874190951370676832292284190373603427941850967911882082125953813712399081845511006564090231485479302912485503500036452492205716850214557795566336112648995313240574460472059315660544853538645880602662345404711676077957498695577841700579220450355647233128438839330833511656089747091063288998537202848137826640954097934642134783148589510470827746904594898507941247090451125166237210486218827028888789905094424530032916622893652497847588355883691470702555995156513834990101743750111945662476671014295924778050092728083441608554797900884849102789869018321525208290847272979510627482694497951082549500744806231638259912189692544942322226661044190408937432310631814072281832568061620830617508453314969745292997948034441489216712668482017568419081546004405936229509699940560956710327685864493386512807415249352155648191794559161413914377051032221897619289436741697485486308599824978866991484406270039118740604540569144110576125391095411800876462188621827936704370590055666465713763719531036037345125342145496367242168811808447964691522413742638353364450209588037760166734107262530441127028279807815479985623736147007138258119354258580471759443315252721785400142925690092654878660330043004994735021790931955236943854845566767319294345043912043606534701253120987834777769265164821376872215415681338603764436726234670589853665347680586671235391933248901406568021795313140629694533432921779941820548310991652745397320764105150652530708373264614240299646872842330110528230663362168344371026863084332787310356327795275639883275161282099471579122078573272070606636216446502933323596348083385885589669658356867904105652947750206514328846938457383174496378590729332313427738582051447300829363023009368976503878167887207330864222299529040713139178513564663280171901474981070620696643053364214477886101739008942938074356452818780504300137665400393027574344362774606526535248914100848009882590230307789304876428805762863121532128575551781401745498270041861877709157261225188526305595874870644160216877322519065431946796406601699988760393265774251308673423057835600240266352589777956782301301269380307840641790197922085908671026980093796148367376274535178663465053317945996891161588896386231971932910897780838635961536899233471090196224726993652549512502800617516029644154816192780086480947091889671393036834152917240269202620280242484741218020823290595871004634460545516485630831658607110498926078365199044034448896502737410117316985628239012626911090234710516158984771432534095829255940661380005725162756458469994862915342823904620555566689150667490968632050621592585012104857825308158215147316863774409234405424614503822410174816293630063705270425033049330794139461225295489590869551048965193878911694631302351771279206975948867071779595421334306970387311039566975336728231205952005553868667338301717036749307733284780299837901163525063287216306915416403125174732889313699255100482541934550950250763523328365950939404931859717801449116958443357091545118138092025048927137775665878621057317023869593505881348056900170462884239786908610329331559776005276047187135371764472823364987954719778745956442837949792686084083143764200777934960635032251883524865465921079174926188810590360723277195361448528295762573057396286681980496460077060498856659771163156099164607917025807414550850171758213186461265137841437384382136552117508756441521542894697515463492420389809473258817609925693454045125470248712676129593481172301021409837874010732154997715386994577863453893865131240548488833151490992201037024239216323060013396814361300965233510751777676743399097146525739506179244952854385954009710280058088521051141017215401915416896588561156840058401671707140524045481746844144514182090099899320145010755026283456223202469926216232989041520054206650978344283911375306531027124712965131508810665646598419800758413677856116608883590947725853639776082812121165459915271611918182708491253067536703925218525809926258557792876970957370088310238950667301842812205399621618047880234090406865715318248485172015969025756343111847581775452820936044442149753641939966363907241982317574790013182092524506041228692802688299902726855943977346224645551965732975870166095437166432731951062302089960572259788651888035168241981102629747438813227487598285591494027043649899059222731807364917942336863404446266853763813071371508209842806255176045081069877258897275824657971034568444990261527433548572581324659019491352542121209869742671033913949664115265249962491841227690458419877678836877525055800776669065660358567328549594784812008369554192519683687531714811848053216773021117172326719039067838140740049405399985164623274483695604915162538803854386430748768113890687354301273052257445010917945439604792048980818753172462983366042560025197725028572103046210280617416611662542285161061516861611573315382556270732136129496684775855615746487621577166384755794330055119570226734664606145168629300956801190337929204194277420827317150763020947569407741089290393350108924480415316178852751472662152246034094091129710444510727999283084395603807243403041631648865731368910784130678158956660708654199785088488854850436089478491187694286449602066653068362419340209277971345705823652762871278553843118796846004509195565755896861484582224228097199888936851154457297485229360091409689746160331669999406791725910199710353058489334046311764723419244485494620081326371266551767779934338468735559315584772104738088807439697664907339518472119384267697836967699300177001580860442507108954505125811119376648836319026505609457836135266516315160390008225575116376394782089809722497228231124758546321342064561960086580588665922554249909836530378935525015914894180815782239282144654006255240420532923898110603334703890264151878120122680278769769932692790894425504459248516764417840892867659944075566239090322135597368698824606234373568672650036076534713808619376960409333936280536164017454590563367721829649462273342176750872163114774271570860759582122467029438458587307698150472944267801994981112217372082279417354594794565942488299265770787250523621928480322884334416340680096182680636040958608997669758419199046516535592566156799003767849848614094227487280783148395472453378282365551576109867390861519960757110815048766570897860235495148784910530221907819415063841522572455083721571694220398912817324925924555014028809571150703184843646784607270179235717361709154186022410399469881522621594859829051295776654490887822816023358736576291827098972592497041905226964706393580877177158789398566387328935123907028435098482654873309082905192572913959805009297620306792570961193382482459029336975878028634745922419118165460772336077782423780046170722335297930679213782978970579301136977199588331206342897150144420364957545849129916718475853739257018876030620310642192475441540332080299984768806615181545884841510762715879389384544700784326239333099519427612469123782755589091782687595986673578651218851902917668529166573669939502053845002460917159198993050939298432241347619982716873111004411400240892159735442021499978150246305878945657067752675466532634110385645373641090574799214298364317259789444692205272570501772446782879074034303018373350399414200485265253907462192052125722035954102009629634029631464284125977677629488154344108499664464378186594315391819705168607883288005796712568374592203521183108188320478863250389374768175621036528745602821766784362196536656342560424794056683376692403604430875144692745669577470265023490045664066552784856827897383517443898840124119376003113657346904451285048771076621630787681793080985071279269908858784794100109802709932001761421989664542903428561455702738468239277219909881334771502935270263406330810638649442722003929381405147791886302563800142482058284943414016162363428165716013616883307600519281717202968400841771008968988370800602855092160050190160704669592760860630935665849049205565914008544030248312067134251659974465249429120339217454373910760031620923883413762644128851578154944104795435966690075553825104115626896202967936518092100329514711670865427996675178295976334622708907855499877249870762592942677131146218209154797594049037325246106309891383625286757828551763875706577874779184098074143065355074628924257932332402925392426573321738910870499486736935609562730706904831248513373202031729062290749451138066712573815451264502199203159671060638560638239943345986815954345493433597471959552245324729989033107047540802024387284128547847851464245399767700368068132786890218346156835326000165469196234886358489299561718157264074028082441670239954591740674002785232929098798204069370136131932911951360972788031631839837044779756098178176033649173186657971756945831848978415743991600408050364575056855802525519741449828324397396580412672211148469531683241072987310504961642563131533688513284945510489360406569299098472862079689483070541912042429864591566687432000797570832959229138742109838647803606517346943629922001646225446495628039047327448342461278962677477339667868810210320912238757321440972262149918476581232441171785999111842058470363254221054621091358677338404930837747621201648314967586794297742083371288512922557484079649457052809298756418708659138102609630030934492882391065530418630562996243646337357306800801847951161547656185821309131689338246913026714832054885563516059061170685976901353370261244189883038093830621333408241558883107566556057342293601158419990173309776676358070588933823483808906098179119918011869949394188660188082801672288266457186746319321124195974880063126048383234111377899900031891218790734252428296442994368044950163053672095304959945869548514712640285023641896528214341141868397734198762729466261983836517520635740803636748178407688474415194460946790267159686394926804118168297700099693817371918866098405919427039092719661874136628568554819205550140713928275949418088942747927278432474970090654958093418662463627398487681370986570977296210527337172298656108660393141342794121149384440802098174048236367655385095201319622490550379550230081097427562364170850343314665854250585714708604523460011631846437534562592909099306540266569622412131818827654925611239799864409750844316646044121452928925948539879407382955697527978711230629983177579999091664363355068330912461601837788623500699894339996372460984317585785167062344111567997104551786130903784449281859927697756860902644221755674302075294626778815636933520477020805628510283847907828762371639977325787598612079459484399516764203163190243385113566919619037008730136996619617574678317306481888162089689881582819627829638203278418526602138852364418615192560267997917044685114628328253470936044435659029075413574294467993220484337539428235279287101110201807289835265275945956658813029577076563942168063130206582723538939855334604034792663117686482357670122822748251614453503314557339555691476157882407490054645819694990763223118987650518545831197192893278072080479763187538844308725623476247384810501929658513345716688200860496781178475129196324792773912704232390739883238222378848570833408553274777168920241458972305736193629327176482241347621213349731219278929411039020508446758029838261071448511902444601072126921761166468050071509419862172741880088681977832033024409870306989699569988511527457129889283074353436637745000784286698761460275043005279439144661643707869251725681805991558036866064539466489321246657587450332322299752216528147207551237206080333233681702887806518942659842065163380993719361887486397722874805269224235606049975468150042931413028499125121878053846222936944300201297917409966999916744493404203413467458914752830300229128486723805829867035099977318201745942026263868562423404090595567493785790604195192241474503450768414565077284658524620944739200541788699096234365112756722559100219593965838165039667355871445113229787043867911651594558362002627117323135988080376465276549583240525138597284451191625558952001771313167728166986900056384875196502804691370101183981850309933897975718529326206751206183049697739602909954756916987871707033518493377221566626721636482250628952683752528094697394265721042158023144666588796264894528386483634380581220899009097072372534564343035263687613505934780521300287343226979372366306320588089572875100125784711829482678503239163151494151781171498365131595965416287328039507656814246640801462631288545306112722414499563971349079544807145409663358804029792390888945336498275232525863700970980818119199717694679884079681340799290482812819468852481291681662018577821205774588515398504022335229022151301312187760239654417684553160623456558754923127691262498913981598548469729462868872977861934223235262779853286836460006003293016147542549273428550398198493603961677347792326678050256155264000081583390038589375469726768746830373383202368098761110147903886431601879483277731534731618308787602115166150977725964337895033660374720046862880250330872764020750950929008004453842390324339828728969565241133733181240475686456969647179113485297190285176396849425766965267002613804561843597739315195093621009841545837352464726446308673297351095703165843540328443056191100198352066638364612705901305135195793114480101257114683115325329139287599624410507820507383436186091568412872809682253029434535756716757028151572501170555246210881618591110473012016576252475349502533149918395956381746240924848673520260213205315637876467686070893582608285530149043292231779111803189207568677548661165947676799080455087985569951418806325986778806440836640154730917144039135113061176646656333988695097567493449926466828127320529946170424918963842718849577614982409726158948450298792804709454951242413790812393436762452435256242657081962438719400507895750124726366398690817544650710147977936594936753933802365093122984920688090344706693288002634696565982446678966103232548998348043173117519416844471578013075242207712321138946694686364699223005203399467743478335660410921558345088660564252918272852228308078944602519369905385232551419539328476255914312882042365760039610617605525609926055397264773032210557993210747396991591525296182520084780998153211467404918428095789800381680873848763007607508916370876545777306885616700592291443787740401015825238813027030075098583929585278486641476080120869237932292008753025754008950444463081344182576733379205987280556705884536633404576525661173745616061257821499836231759845195750440519457390900587329489212163774418591117446857914310522772761698155152823895475387314721051583677785332068602636021490515555167697369378059362962639150998786361730910665921087180938292266570631889201837762983679855681300897002279095416975872031536876250155110922186503392352109301109736574871540822107199847574746397064789614549528078878714416402651877478184003418868774684025627575998265823911121801178813327871152922947528669474639557154964628741921606947093410794290496520468414343540183410003741343265025089427856416058365221546166963543854869462030721743068165939202550085103253927807414749035203336230246931099558186990841337492014708684032944722319599016354293095783140530826905761307009346764720008187945940443471264794429630555625724510056212850162966024026326235104164245625821824617631444389230222805435856784712283287079414662432883414107606791764260401140901491448359224950818820644076647182782413013331888618030008689462434956561768890543014940721517205701839358131592198245678281214106574521511743373263588646869682136013016597624118289377638425796492937322543988675552251372210756939288473764109170618784774053148571363482044707265422990436573713314537841806711792608485740460386104897103682172592443853941494246179526568771716134185769558151648415124280462758994805867402440644649893612991882606696119029267898099701686789939740819355917129233710184323459966473897142433558497115850112625274644621368643478261455502117553858420369548921504324736920318185504012465135890669201432874610258859670686547726730392577412155517027931284458377448567286178251634675578536248186882929842998713991311914561130199294509075583421013032335380949973164682281072367335310987353610832941346427147002929938117989228473251506692385023454912857194758404336484756437988200087588377385429982764432487272461391745255520118519517846667386085749186563319552202903716281119424760817792422644718352891016032375708483647744036749738636380815949225589931031812505692452380278766357082147956079023259494279467589508731227940286478545193337644320461386104259013360397319068010719050461708337849029639155575934502564936063612498966332687330700132445502633773526881259444038610068866797980321918833618736695593652468903115557572501353170110313837571308512210385409313887198064406624416437618409191438367793617973340771119475927422054970061994283319883777035336021577470610761377551045856841353266009003943445347119842256926625229429245742339309466923395544984472571226369528311840762701043068824911660548252457832815190950407252577152996055874252045813541763674576553886423709186196226077018134951439964228137627199293705089468118192677721483792401606678639087216994598913898500467545036113937475394071501457826985190390504037565211790733601079091534957427067988519819662950778216922227635235725948910221509956417165056825259569387198117700557984986320063716558622897556432304511990058618235278774683425452501147745303759978309121541395051774586078500543760444184107658130511961977951302207548684236232284601666397832210270829099594852420553799889989917937775435988068917210190590838425235909226158002859702728672578046820015895001419696832938800592610966029615730069198214318463826457910281307269549836169793092893855649573475293554089459725555040024364009828066729699805326385130887506282633253048082623210761100832599354579107383453882968133320283407855860597791974011637265810650467127841220703308104521856978623872841859037311806204948449273898897862370342205884223600869437179676978977631493091393363890852426116501066143953324708792450805332107205418919553319241052903476273136530656703714982149198370669998673214994500058963593491588143068960882975728626442771629656675056350670180068961343506734090439924273543560097497260262469352042043611204442845649051816877184842790161441936171701798387206666231814832021675040387044257350694648707447023030200899196855323930935524679211718874164591690131781243618155040191774465314723460521123807719248858609286121368900286027812776257820855746203041505889292231245160849346081608549928648700782747251016012078698319924856691562657811651803383453346465132054651291449781373001467356797193950742309707422253250055395039179614606989227078921734041226616184409483254659121784549576742130945321795559962326153786411540448251421664449490634058747942770967018358095730367202678440403808552576592680188977023340316735942814256416337667823951928957405554613492627939442085542051045362542433965269992052258125213614320505983629990977300123262289955406510401503967889567173974127767933602283889535065928161124332647534522421517866381861872226507439016387763017721710799470813996977483417314458533114785692327718436826919104338697566618462665818036576589648341339046291533728551739412785126891903882391083916670833140227110725489494614026909247061492357157558223780626127822436269972842907052270860485579684093673051874013752465470218153456304741055834538143859887968817726471996677232501680911924665128484838332708600811572236661287167030926880146788141164600225913675659378075142587259142538521060468108625131314175449993705225999089208930751230706070559263295828239919934823099113213013289096937785038206730086859428145481088311243146662360841312544051787521178888771965189419749003804777243076982413313496582247894936601816661577087691041981509891323838759595097415210468616787306139178085639095302617925597202500976696920765319111107703538473920297339772034482041974959529472917343136887902966292940878119835824477355098243133972702534950456222664294466674706909302070426556985556534706159075640242077994471834782985868273859572100600505891450153508965977344168070115537844571673087449745934213891289504199118604335645561982662962301932093058185700446074501874971806236559645852785605714638274741108068142809549385427843381708195596626467349383472898706748249952372995717101510591150556878708499951550691963143068919366089441215149550643713056452880910525286765134482915664054695671770181617675816124338202158682611876141868214843093842897877441527649917793310965240785819298368538079968943938997395086808735978616691250577835675079838071213503781313637087989251200659028050000670534329294177419117000785761297163025992550857418512597685352065318938833691902704681087763294377763473755059060783731100198815652474718273861029316997589373556414496041598564904313777532354742963507252597715925900898612317652463702522241269348031682689571493879188937520161538585576825057177897791739046264882580567421678024196497545919035367328785961921514492839626210591786081496634570409022190411408281645969740242913796908352073667857371923680730480142921580004247102458430612112792505906971600664678334569440002632614658533909411891732030076781830102636527498549753572870656392454981586550316620039639885861741847573107522159593391742007953008366118268350241270636982825255817340680463516938484449841351800357316931398365162989076990438372407604449908806461875705150831963554456888913928404347410770214308025371160114791254491677217254480888824173773698870226457913937903273246703317767261028382537307231842448983995197674900508763055057800555353904637535218248031889373757138253616185777930860331689944301603466285703247471099732049630482314767622160849277890651144650522418550390238402809888793260875853590854301107014969861518402060234512916386082135098105283237829343687867388714651101982186000422212839927320881134094932464434442111816036489846706945923010926449857874740684144609549239361318474132785155932609689482957875348510241925994773644405286741285709440974838748331100221550626764081880427484809106924651863940905325384920540716397208505787858542935874947328741905647871691926873175358999397311393732292234265623646622517864981654395772644851728691457884393510247328404202173236533189817466230284205841812675385663815587295716462561006985061339341883078466242755189983341750191909489379336134238743370491588597449377460683582576689572116874960107150290000025752149177667394781260034196085119522163168379571687517830803388246954059017554077018546663761325367287446537015263964264727602224962988682214526860364229123661797816586951461123483120493074600597096966374416388008313876198137223996740655448224738353611576032988962521869855206972081352880066310967949236131247486147145937334493981094531405256390373216103185017365982760227940621754779756577231094690898167706704618882639708946821954655845694650118899435044566922702372579931841286288577176043514143251182776620310915465965065542211257266632376240651656072660700257080229848686826262785279473922309520122860938575061758054446946725935469556961076802603715130135547112017091964197886000649189869224571271875207369004279510711450554785813083919221316835516781759892117322730303754894751927319224722377106498133549126586875144029999697304868896006165748242110674665907273031677741504676145300439624668048768914177185196561985717937430106631807562166574334333713573368001592561821119975610701258317977381045618267251550752882727496354638165774882200964737772432215449421573871593356245318723828517010967127593029576631897422638893422269941749663983083578002394761080225341785445643281598563893835728103884430933794897113707760249064290770353476096405482292828139648903595244463874214143679504451046304824103635704154242378889358263903680519354958905599351447661490000948184964361688124742578844058763955972653805465457617299960760030704480900371078086202283246897337963107664291778820018303498585781836780471128513396633778587925201583188555986675901255543919161575324659295084304407319752090087144817263617482836693106257519812891826409725620228153486668105978248963019675554616542132553089236018562536170942965333052029812067314851842082130841536447243903486405384766455471043374349321448544838572645159937772350419230191037266576380775442083304267544209649194598949971743896349078495282218397200769450331558488659621155218629734413287212339791874990989910913779459494608010073493866296424875371750538312859741861526497223811403619573192372341299931810798506970710790859521732970998715860754522589031827735641723439729051933503795267418044402837891191680878212471956039418673876193564583410581348760789123966312917163954626933440572994409457797661015409776335481744430538407999591810828521875825147283526507568199562390114215927845591124333964286606095376774229090582656086689222851409013656317936405486805760852630077159634925949375698615116570343166875918015279998397240405304335412265802188825701891320501318276587377868210501741738667738730613518220538810166762371360254460520916506943168227171864976597275049440643288287949199638292359358344656908913505370325046055030221595780654568212620126456996796036471137460206778034101100073250940495187726372068764309527907336618251492336018577113399235726669924282807448221833649981047538171131044036929563003293291103574092739210958257651565272864547876921179835966082939619086770476014053612193694306574482759343200842483072264614591447757639113599438613971770420554384460293731219517585346650047549872698691296049662473173561011502977236122781213055818009734765979634320336520407008835616932398397003282653529506816910287869099567200355067061743856482792158903030700730176972899366499851902205458052714317416887288942315207449514349349510216559570921838229089864188266645173447796084100488323530195087196369776326452970811891259989212850643979989718777789588198940579536408194877957172060439323150058865241014214429923280621073437907561125484706155425501794049029085725727979444233734889723297283363985201359529734588013576339787581875783715295994498597132852282087210776874133612946034078350126586633250470533039234650664688319436943763008522709397618185922258065390526901502460231953903070431449908191539679454544242543569807451428584778709541627476601818051478087211111100015802764963821536536075959663020986288522343375256882774664024503839889495893558704189013017835343125080870569646150711477121552310922091242941172254945810129618594398729715394451552336902629804449428739486266505564562452446229652670965182831653312100826615003584241293609892806232768914070829031476531370417491231794632320519595831839429593917354652465244554400825935331074247463977347319568841910997990728766748704086325312614875590803129482165279184105740308288079118698013237289922051800154998922862845807382223109932453291729163353260857424278224343157378845232052164499711769595661403223371399420525670421790415235057376007853420254587434534609129833986469640240229311576303617615975093322788484822806061955355304129888914687008440659870553639804841560205290811457713186845386954122772998861702100585360709493028396647242117645138438293286360153795459408769096534533318803797119949799257742914861829973908949464012061842903562075390556943060872793476172711085575580260026179294758847341466701032470374595011654643950904307012763136512475836387094440093714349057140038284987477502391535235845782904957687448299432322664486554081801093919112781070478834478488456696414764151371837068023593531057130922818086991798952337769209683008051191314010545896010132194825551482609447913441116019683421047321208657386974725790686812231382255798559335460711288297157895175343265846322923734578675234914083407028440798469122178904928290187077722865261353332015520866351348294684259011249038118246944744144249586174830012044821018789538465541701786576651991893392362749809664600016994220555369262079269473361573575039884527089181858573486174967792742695412771097614544154019750499094246095928532755348079570780703120577454328839239777512679034911086115398555650633746822502302028302274233922568570390415174552008566672677654883703789243715203704196732169015898408664331589828692242597623514025847507208450854365524131124335449689414338418346989021851375740922595642508733298419412039541682255935041073300828853168917077816375602818907246148040330091779894121143884268037463848519518966961361970806032683625088791106420434414657553103565488388246826381518224106020245129237432841957620288117751210044950689849397017105957400248166503731438209205903616963163100367768875651939731608878687201620729892119531997025602299033263315188252725394570251171258190760785738693457120837199781564127520025689596397388511510760755759979639937070967635904869322137443106641421376330337753346971914234080864441169084692484448589624321712694754195885974229873464732376513374471478978648260874766775361112943712400082395783204207515544382691166940402553454905077302349604556059062040740143884654296776715344959552877408184158688332548689667200537590737386485184592564211585166220902968258714508895783616630875221682005964266988833150966833744903590598420051200790232715593573871970613399155114726298510731948543190954510744382810156335744797311246812796403730203065735668350703172864731113847394474519047168580185300315942509508170687337139296536786805785634607705013343636809620079274944615322653801421847848505308672274875736558574743288108620500566260290235117932958140819033700501544726366135734386445544210746289907488774751905667488899949785346869292366068090495523422365823943577164227440062749374488141266324693683819461725727928538508887115073274847439356599490110551078183859725811563404052479347897912843060935440842903527835191073242129903947982628643578328649723548898861175825236558027893070102136201799240374515208953855179489699474515934300422098416715265494240493171791626665176423878365847221424658734261487640306857717642992139751571362450954697904683145164205530616689957933259619280061216794543933328221648339434209881799292943919381592517457851591444563077753576298974198627233447844995719368828570820842331894307270607296519145355179887128805423719745861777163542948228019382941730402845141882434617698685088942070357570355157254898060633112365808717440489284028684261518283402255297594262463685223848381104527977706427144966310152114201506629251614500814869334995729152752402628607927402464249638227798714664856409852855587047484056981870078386033820667331145113596565569223390869975617798707957116200165024066392759241404651452652781385378241924210205500329985860207230720328124344027258210624393199533220862750742253097765444540683399847868560647093131545544331476471988788993381598593924814986339118455958811792328287615326504200688157583158370630191200306202277873218223916248275801900427354324504250247718433772187008620140357775751463618006338795924487588251609284137395155405355872149080348936197048291592960391174884498274861141181919567842592772850248861831990078485284125114336726125694025166039294399258031888063010153992679963201569474828429239422384482462751795929718733780949899489964811068550869797487241594287624031770271137320558160196659440920081982948980047233209967646512161688362906061499685172552524525278634002999626978397011676311315777960016137256977862040857133288092410641896448781238440218337676849587837241617999217585959217716298184649104839578099118460454934362040944844406781892796023911342821630643027553820960643675074707042756173831509500009942983552441005485158801197503964508941970050037703667384954338669831228010089326707045306890361783227056414028478118575362221465604015007539711151720486836160598206766687749355359675360350981347304595632508971848829445284344383477359699829957098889357801677315889155197454522895284994930368237688352875593004182690484152990209970780481042818049969110321318553035405424320601516791331683971676236901546340805619821984789457065479108476507728959209699570190091991481080388308448201747374209690372990321054392928119069299403303608343812306195625207183022928852863302975337074082409964130253930014630847791788630410295295370230932795543257681468322114409282918635020445130468401313575424106480626907566146631164062243448942168909376315591495559216945070261809082377611559896314650225686716721350293394046181862731734548582765205303919877089067710396140226608299921305847313154783078151383271018178412788134430447413743617424514270562994749498664418861556209335922258344012803247482035179910534819538968503116600607102846943583322676444070947002314175208395253254122225934601965909077453987652521459231492896370749838291164670781672046802124757525907674979631171405852624716485939782098491106014988334646281001498368273203956051779676130503273890520938666930407689838271846834621195791945942390568365999886195123299154263443517449784893179961356492403917756994929188103063373959345579947674780052410338166557469678911780778474885898737485798531382827570350299352098973509745360612382568873514464564377778020985510310070613601918685288564676455230911937553386041272664577185487064855467913587269879094638896069767674793684090041747906195965788875367105804777794982480710667562053077154389155644458359179371540586967343954049325784142906871767866416081028958131067713498182934133875734920259578948413708039367170440613966715153710770087697810333164820791633708343198274138300689747660054613219935987063952000114385997539701711669740864609592729965536964808362203187021664582522298443020580844640732557133646240073742860851053485569384792056997375661490318598707728139803903678011643631297208470950285956086828031223911500301188598190577356733229539025522455719008442120508299837523254964925351056869270790701251798613263164113011859206005985837455481126415615504724968967656989354707590508649697674284310610581274408932803205417567113203559901930566794226635361615922739645342954428658121535633794482168862442520758543698692243105066436834263059146222480780678953187100801421335041451447173006944463136695992716607335939941781247883331289382337756925597079902999475939761087348772420903486708890202188134876907232458711793323266608022701724821121711285060827725321406227923724225092725896740583227809413046823898715539325911879120660142084650441300245955431459117630789268020924303292035149053180678373672318662075967910420304532744595969417917455374127673140265342676624169558258540948915955501531909895193685300914263413712667185094560611888716113242191148576554635793492291170123343017629365747143252290627738496105029009475238785887680100944616891187550204523314938542242745939802782836540343881396335139149349735671314797447123847342730724786704718849634974298149801287267279568046283108301233193957789545944926396770490166457041529051395793741191134259600074528710655173922495554330165762705188720913031319141505991813391568211693676029034626886119040862330307287772630496897031334191433370351763916013762940352501788561973921027981314129565625214768017878010640390548286308939102271618096063730042563482971626410356451029057571128028537269269970541824231343421980461741351024156168561436552898322074935571134189658523700601903407356883602578044789529596976198597337256943620762820142415343185169291114549852111956229245007121848019772128183429526505572208533049023977260153647441463267767785687035475557376829278357804187488206913575304689685177805147288615291047746360247158354284739386625637553141931845059202921122153359265494090962345239372992216280128902930049490073093562888675424283542547010309927687169299545325112077419836252738198089144118456824884145722564764502302608152010447790889024755566518498047241002546556708695663462409877706116097027736121290884177602632299278298208527260749329995369032726736352069041748479440180037731431450216442367306405916037952759807361658669461325761814756791690974832421742612581739877035747339253497477002365327555401732972252709836372044252188899914408723935589454798908894636658914911747745315011341730561903428565305788885491330294757682407021568468767505008797141580768905117362175721948327015588112688069087883853042488131462552586184125934906691256017626804317581730438477591699448114003048835075499544282687129781211155977440835645276534240130414207057698488343037128809201751803246672708572091705793735576688111986644847788506505730683167163674280862633482705612756010660537705543257208087596898388299310034923520041748133564731167443679666163580135871762109306327448074853128797208140095294732512248242678435575451597621397100452130233189387760375756353014807249126224418629773707123799377258811247259415240989617206402268568195346739719336113874494007051127640229835069716742935711982226211850924562958809338546244159814150006412673096529182723071795381547318574156580631871455692232043217449239959866226509244019292286366643939556070743705344852391059064003327005537271349502189845942989613134405763704802889737248939503225345261856012581168022923209890114126126349648776773932768860844763115213773649000157789899168253685772628454175176221444335836634115335784412347474567318277201661541184493274548191186613579374888968284190696478163431716396149983107335773314449175755701212010832848521565841580380256730124540720252439463260270474309665958325120579380363054448074202285399969150423085284662329427522448944607475572428410902142108700548999297234811924901168714134024477394261197620993774203128388588840296775643722483416973853453054841619168029059037958629772633149972206251934193615279057675064798528756706664158668668525019904513840936498385682375878992672290883247066311380470335361745215452860661037999114293865803336639422524704023855064523582336899108991990026454745774846950322300926349848345564470171767222540747945538169961880380985000714072678777010075902145329851674646622503792144956710893536408258614762537166359638202584044409155130030713385186755774785989179236259240811056407620957047333814497765997644609734877072220823432425581177406974233824365078229980229600050742683270541631065107390070195568489513693375937427682332978003670052522042353800315356807970654101436736150272397978583958637910324658327256864095379791958853014110777899772453571356004897996807427137571050906201978195128563978481414210267629112599794613010825426038448600225417722327333528829545309728588066726265949489720104645479630321226555454974551547746619784010849779294168468340244251619254767707049365450685891730190418565607192575089212005647548572676774519264211336224011461311733909285362432501992875081518180938608814226909258586378980607573897446640609534289705971023765487264968852078406770238472424554303191447597933162242741403722263402313815162375925049585624919906474169108819980274463745110788630809712740813142154228770591771178026737655856938309359462213771630802392168634137118760351278229134805983342384454894391363520703428631485504917382181785839741028701084794444383508070937096013561566239776651947512358484967938025667119797144846197616957429214038595472649188441357659014711843226837402437531354775140044570342454481913552752553983426915103295718889503497059447006552822216999952550976161648759951902553482132363464589511353059754937278220209768427068536729788692369643873146141808165589529871090150250878299212028749540618580731244367998715365950607289469151575023675776039291164906445573257224706649445183259038549632374635244046693948074818190440332047233972887780472931800428920340465314687568712507665366494273208092771988675151163528062256637398337269124948961055038809120781019925927671395960066680237773035154320241402568164977963985893391962461346132209247997940684565931532555729010642488460030181732048917926417591592709444742293114314909023699512256894942452466498753955549346505121221954910533496958250833179669369384263888321022202971502603687267389294348189373084151530440683058185850650009718680177359952401063074016788309401386185216135345613788811607732760999390053103434450682737929170641056981403696313196272609690667060474822201381427710339460693990773146401828470906374814708824220430430178944294666264462969316192336419022345816666212331266985685721946681903793240812186246741288531180473690104095675066910109020105598103031437248330488625904846853857823237604680352542217161362612455389424375253826347121838614023347302684909928604295696521803170224804406447086985073316757734700791225487125967496006708199036017470238322139363858602731605468840576434404576678574343937004841260500222175460275265180756304827591490808211096664880511420215695784782966094904799147539153845540772855839522138520802145962669518455399450751188421565174195766382345058396736178812842922580427992944832808677531727193152903234681542510293992806955438143392755293412232161858655994786823503611427703554896452098225039258442281263667532055916980546396637655924077876074469964515681395730046443394631153436887764468463259544091420786479544402191908501079426747186108486005521355044793349452100723547418538111676881596579896854135875163885925404550216766529379182583365111597982290293147260630842362479794972459316048913402417542582765748936088997756470658587774891966652807643018655609123370351213716108870857970093929226300701629835009489479411784836494299919716172879411998763272684679867270499448329370327035458047547737367280999551438222955860003183290102954325949781226702522651989206270928259975082915857809265770172680396914118004195026754283132930912088058326069621491633233251608733851873216715629526005672511385256021084614659348946329610549151207672961798792990107701458043313831941651081585855633146992426824842010066471429706629145489969186125738709759389639787950694888012977751567151734872106127801406430401816271597881015506267070768417454392046300684806603479436961162731015750268184968922376004082949689189120426769146724046533343648218026003048773658397067213387068869981936398304760219443448198228204161397429244995534350456310285429916023440522066807567484107810485438093217233997018014892435180999801316644934791429147573687925264271175673666873019952102676243896746415343927853654690647826678975927352482493207356335739749534656449184977650523086473418846752821723809314819613829888969302650170382882226062502486503384722571295358271830473665081053898439606290680283854198394151969986264764532161347605862692042401739096160383982298560529836517293494724403183369190047370754762877372098743296031563045897102258846811143929251832716507554454473911961325703298269067258701277334074177829625318675551035372710632080213184812516845023096720266291286507138796969761307924100613268161599191733099717877340627660770680444752436620111556406266455024660037549189754375836058882592030727271247468597131310241240165193059858777087775805531748435772807435203690843806572229099352183755186413134538723015238041243525804862355503429551597480635139075716255131498749358390309225880159508340607712813174920021866922568387593066458156335844451095853709769412049418332706821996010890911975432989786874996020881176542726034443196348145288458904518316040546852645270028979798448669231775876504540391638356805155886671961871866969442134438509742653219487341274556238446280057810387970491489601998414951569526137677886977649431685114304839845625548092493503685061857421111608846156647623735406594468677291608741382505452449323952940550684006919080139376952083336369959007750269751083161977006555783339771425447168557221285678331111274474213209767469061462726341208978541978629447574100659077363401219074049507722452670462533853668407316215496484341934291366785773951862133410179412624699574767452881060840100853487483065248273304176966854225911731016489415874380564828119606012586864445197117497204868000881805071029269912270531264453682878200023542391655742836180953511334105900761064759401753852295194451949567646715921821049939632036456182377386417313961082380369886460496972363741885289693211166103588177250361528448177049172426531703954117083378213072230997776967820978091523334790494647195166159346036878665521807999748161837116273079029824465552097906898521938954977340497306505216975812863257306351421678955655845184833898658947447561740100136373875767035362980551700902812628642607620544573703756442942178525614283760047777130838792152844782784595245516852806723372158531905192578547530603596488850141844413488425880705251910747687433860595444381877951705045651278421214852353029664433740808628677301024163598025925167745308672042893302398969394029148867488551292977191859160993242968083425838307434881198648855927577445503670376260130241163156557269559091427253373338561885981655303765671402280573160455682404032726702348914771183170072749449471818296937426055182044821200433345926503656754694417342715319743789699938338162019624681302300279607152725766881827240120823382653748823535610589709142550601087645533754175659258580252235099207513329723535991247522334617607192162606245613060031343482408045068329289480013414639793928559930960586908787021875248687355194780770135130848042532290750916677911707208566596411627126095736770126402095592001910791223694658573495835733340267535350178237641250056892575829052371066183949760548303803513023032302677515767146683439356370487341141169661303356284463390278210894504490162866207101080967944851013112715271305799776433579321872374833359097317869495604121104189344273715301388364528478372836836663864136389220861928143074132902854994039111781039203337665806121772455621134036198990519437346938941941888268213374650645841791912019036499998801720166938943805688584745571010001389336466496437440727868419106350385317272862779671785045967200457444950856228567380592160693590583740370153565315899877119419060566558917232058602429737984859112414189253855131324573837943417301051264229913970660601898670018825556986422534739752815154261732849970399343944215002272108015579057830152861313234970486886222100744059550758514778699454800069455127374044064809486303905918169615841006045276158407181647067250365512926305989705270088216549633649286969229164911575103699994553293166453068126765747556042235124939078316416388829654897017365541987905527781427702528767636815171515439251433463784554944369577507002077129458774650221718882834461510631384348674565310033887873864182663754125312736805238716263932312960454273919258078191712300922587633710155737017160849592480210746952293030034959283834682788983653223160534633949853702993792178241333996481188096540099618549067271166149386366775825753007521234947265328286707320039479875385920247700543242628530030969928598029124740286030083899838058971781591680505329746407998110203163361123633053673432517164650137540878229495563011680970559321363643854444835722833809721852525662841832133811192747944577630642177780723987031400142416868923374745594324834030092790861846079383721607558439476199035835642293634936760076526640453744283717823606042284296019746662917395057056929673396212047939786646102748506653689538491929100212321888369263348092952635265433403150210760165561555220543075334992993461891352619185639894702069125466579877133483969097192362395595333953950640510654261871750459448561170517059929582908915375199849255181381900302229393594630251497180962092382040094521024730638870023185647847833185967259606420823078294941651795937777890355317169371319744180054195133341041421637202222152965749855165053753568061656732108114130266344038920490063871100286042030394373236262957412858869381043701862283667366836087861219124137369049628992536474103323603089331478398342483754674782829543589365893523265310417354725975120707703416947696704161886830902613468741255748897261885983228221650122770955498018757510582656674895406269341953969668357274375788476724346811872511796963074728407405651994869907719777712496698571417230146930393318724353027482717819476328171428252425807572706410649404323351614369734623197741298636352732857081908666537435581304290298809051227167872414298965792409402357587431632184474926582628824116638867129549029523460164947689545503556046979135416497626968286617902562929746466451615713750946831130478267388316298648468347913107290690910812448389052679360723128485958968041861712130753727102943233338302581472888175904708097616290294982295042500402785523329042985287233750488153059152100603954184110830542699093079748209535811329474870585615762545096180125975391507819039785474660013921735733215138412522454564745845812858846039783872136105275297765860345145608115571328256649924775710679756201148604650118148244035837550603854161603838416989451906120998819934866605507501442532393417741488334407950584925623644967733328428139577383199085969977180361208384381835270048200216175110510334165614919288543859020055595068177410100297660085589044554368567587063395807772939364208326157721329931371464911521265685075743015477318422477455537028462015812388952399767958380093562837417694804579263721338247542829246202047646019732345513680038984713899787684921281996140115526546256762384631239931225833552060478673596405125028298088089007540439820932313996817393591350451349911792282858051356322388219979351908265608656491839293628958581726558663641795273592737963088385909517456657545514239144119319989027454512229971882733591934283018509642113773493951758533914559808825580731530617863138824757502850780255987438309931914240057930588743103580836327051763483139423289727522565407427014019555322441296795751067065802117225260792327857600365226775948829532885770435693356139309810581332782682702056111864263645596942614040070214775399556142392368744502112804129763184192148135670178242844981373030172892766889149382226348491231605865141756353659482867909572200452383106802178328565283946461418494281841399398111057189773794251120004689260653776874334094512744149240526867660981530623918252557552738622770776253323567771623402596847695728202748963756887040968099725532703807484432488320318066810700583356685221129138088218905962162104824251400290439090421959112407379851117733548263273309298715920505901243560559775326675923120828589974322435295726993781972710689024671895186357862543792096762887880933025171038929698135359719217560230428207259227041667909067662891562420976208618739739993771179439290405838509718356389120034416925969165130101512404511800016165800874099124427432916086415256791352664512758678890639558696467676249403177623937047570505052209335487849330923146131057129405935490379453378767536710139355628501621764942421915541313632682749592349766067326629290921132412327488873762421460968305232839387758441601571694624024893617576495503517677054811152953256750725437480151868727426502455132317251135515128829794767880621275221202568925689708256687892974596246030928875267182414871277209477792877199275001471856395277514335542000973742513063948856403240963613197674855078554216180192567512385712957722364474542134609895545972797859437398616919128806599503940406785420658596322248490906373780715548558510462266733632213077270187167470212780221819864794983269516520970475860343414620183135840191438992773201864512132324402799977840266292676381692628830116296163266171620417817910814139330853092219079438003663658426810722883278377620850036177105987894634653801025898188202391351532992846502464116093171804582170135470608061370044486310964553801866532178211466713174328785249623183475679014028127330458116111658305514314124184526064394475670822295238101834730332600212469717680917748139156193708326561624959562329863434457379762186434353953375470904494744130862600957754506816312269763255674877137634826191928090793106189582039241271455705941852188384722730942313565756589261042732330618804314556168916155470307522186919990791372269991625359706712664131401138121966672019686675404601810874090942506812243726627168301569132598396911921492414955407601799654604144030350003636107880196905753699033483006524660093422342562202309456112116720536319197202724431365052806318488566867451829722173016392818767321341075390524622476051034235084777493509852170411216996784330426836288804032162522959442390446513324094622788968051658622674691550528657076482223514542232953706143104587130347356931076975716613254681096102268030170691114520804948591341713254953031070968596355110466810113847512189901154359514229050565730929171122595814511666410516058884113143591368571277456887817528554116390540950311987637276084858227983448292421380845539376782331239536527654671297117635596636157074573111895426227878620626356513114528869302727806791427541401950691225672388862558496127509761360891208482109769137219682479105048217334236236675125489028408691379525667940332881372737225642146840752808562737170506320613401747129362925856551316880568979445350355816593112098008798508559311318568624239855367228328716568532964489920642669292134010097959530825336857945241414674625749537827887319831535594441397878761764005692785602006184029598864983354514679179340038695403050604424805071590707155380858835368448327416476736449014813679329699228073087496616362815087908534557845881421549734655936008615567843771017634513327267915602397935584498355843154535407731507604863270637628752507561597147728979855847195075759370912266442014944087897344796022865185507827013566267150201001090979635960197222939375940160334932637662271779212003382653875071870076599578826527657898060371666679822417022854137743563891260220175765449325669979486423178904955458377825366425595266154970852346848651761121421767394272294806211608219693942054571359283106808591776694475324087989671690377981956779217502180400422876473720494490243698960948908434311164921329004500922983858260685756628678257709057167290923649056432896423067933435402238902718505846969942318694493889911619234105807329205543485299004775534907753824573816866152482972400409263885928401836138874140804735052348262892951445950950504486445251309365852527466002458414176752316818485205512662873213875146451951607702458064138680642720309536812712759847474636444793297134117882863203567325468596197786730867783797248495437425399190540118274990238786772830916969362500429807470601770960492795257905236265605649759917115317956466814083310229761356040348267361117853944009084548631033772398569345125026088120468354482533406597368870657224050691870092839645754992455512367290873270307174095019118934684895127619919964470672757236776557711366750314457370578909332577973613339852405334838991632474151929911111910530749137309376387280487176764404374324792301661246192566061675165306521961228331996090874140788713443236185559754703540509549974592521656505278397058856437126806684360200126212435875479496467393083358310465772534231892301235526012367442638211788188367887610571015866312101810330972514519233665371647469969597607614657704131069559274349983107854290495411371513941411039722752579693571070802971410713409628996394152840140210709207324189678160960997496816788945932216272068360911841693280213098221277213121029946915580991667712037367796410099275441513319931157389965008306924806971003936674583046612152817103547655353591761669716949737276814694865530843629651929757005507394999899263913130151409944097585098978685637211339938598738918261325426999202747879518497249347385516536464283761529264145269515990202278494731944838489242531878097423557731035489853201350022520703033231822292426469753636889764679631993824134217711602243711922062730852501274122379993476256968813780794352439638410537313040090435299576840012052316512352125553208974565163029047666720648210245393954789571311746946514480941724106924828831145715346517621546492606767632333169369968374063670377959336017862207261309627276667511586841755669385258616955991698150347090489458071355670239200880660400811884969433994052840650252212382224932582529745606455996464564537355345179160180005491624712320263629246631496171920479745322510047599966563689174549633921074942167150909069868671769501011097150098397608438802423653633623619780104927075548532319744476568404302957770604146563505291529871609046106099078777140248765422255780916044042947327527967725432586339173305436159032837857431963965666409802747230186834836921287385682724191085873130909564085942310193837893748593276091575737047078080963607180493503288795172904013050151975640493193541258420446895626668428679865672478391001720370900421364105128097495155458333668704346953827792381178412481425238077130295167360189905445146844521013992459501684427406998195302884674296236541355537019404271275353566613363399755076168632002286889148544471671404762867055269555295696821625598302014041653458755986079661699180643092816905477709868094893835203798153380265528510597396588863570764911573665848195437445984111358545953349329446956024668112252903872438706601664618175271025950802037297431932512392179681882909507003332464014213302839404276477558262234445185863835010673938822586344898439082329399231416627975509722673179980185679672308235445838502461438491699782314446486903759013601458770747979151048274089082222613781358994650176617793249039686252961836335844860962243166873838623868316876070461003062238523606721960480563615473784282378271471856419512216447397264055164591574684423303706357586632927284612343069936099340315135672802065997336983119125311180256872524700099678706637089179802472755913281947399728030605981238581394319620358173960429374045606465895187002845636623079480174775790028743847909157676291561713956452844651826943402277688468361329878927131657922889236274734420156092323006642684489275248847901959513119069204232428789467291912736965334890150605212595887436075020709171876058842454961335352870436437313184922117176439342359230259978243670283148212947855462297725128945120245227461584394763478997155758354291824989034866200856571051204550809836697616076259970351379878174257302864269445390828022052500005092087300497924961769983112339422633862363262397488512373112122739924102075889775191809785216713389686191495210509303904480018408755659068777494963894940168674561281913121947579553719275129305485963816700710632696393835824484457491307783507799800086871910185028719856062959357456657641716282907603547728827196225324352784781834949756932107831407917659651992035874312690799753890834944009526960040486463685286524640193931909249864684421181095976549046054696392283342870529025402264546968838903049164172877936786831908405624837894137711903368635038560553953205067653972011168524161856817321260258467119523114057501014673849728616394790021015016593098111510163602713161210461165971139109876919288846802629390810149367563897119390332279904836133969547757073265040950085287791083800702923514930721042268808207018280689986477470951993561100956019571368006972141226103305831527801525134927609567359527114641179945182495187393232691962016304224479524680205070787869227520700426069511187419238238713815170026366963339933634981539382672772938689493378420209822858397706166066994803048727520300594199561651821674266482786686398699630726404863328398822933709143826649859211524009458355631558798201375284094225791052420943402214690983756048411513373603782089078414141377552559994180914065912193731461374572974570988437175132038311018480168136675317526694703528340979581141602382705528475086454896782960738548883325263979586138593271153504640525476908751034346525568927936606580526541164022314261645431897779969279057190872419870349517223274622921709800465562386887861483123925919352455827078009290435447712953649476064007120117947401765887982687457573666183289443260280471559016248785784596449301442667787446755531333407471261410972499279343596370485962146697110807895442126856756739072557125004196005739864027369145659926763731016189373971131247953885045519896599963587646278836349077712643475343685959118119230295179818546949849055916824954357809698738015869703209221772632263180158343570498930397506520632670745683875774580896446956362881219870456907950522009208517400831801150030602907255965241610704634057838944305208429284792136149161360395996217328887846641557806455237343528697425589456242671582251730218315676560974788392707860347628579376093759699805144110941354870670451457978740824273502577541584157901627077073425554471554731380146426541722097154949251115890449501240051213526559975549664528751700185734791664548356220471596210507203648936631446906212865175316852561373713680903510132085152186079423154126041495411696884280246726393669092403594506453466426683251845914918026303789875010268254017469810184322253228166569641559158250699246155456062338895710489864117928912712363619706739040474869380324574096052112227283779271031964626846862959009511072738824051360023895828887363879675925552949750648646458628018405287024679811057546575847940044514865869736028055641565583283832107931039145859103399783415041062689388822489831033726279675838421033212426513773157498576232447829996033704582779412429761364728879278834335939225669691840203310928552744941123598883690444529258974027662172083557052943398216380198537971452815680965717138557853368052388980173647996652265030769687809264370737802951346437912448640904966187316257007963670693491499225422936941695838754466825528231942833133046057186703061665974230929895894509610956840484193128511310921724688679902467099746194185007667264495769082975894907610895484029672150939560211300783530468662866195169860081397593414431472342556025302501406363935995286439439918026442945627311572149597916699854320945852573056876611354538995457723729767507896124171258602678063971550487095530748845542415608876748085391400441006815191918300826862791505546055531897013372223319730149827480529637102118735834193945108630407439894000844671875130209026020275194093601536245256570378650120755133440833935240923833588413265340065822945318747755567892993314878830364327117467056940265569101408928893630457130250625857890626439757222190037418923974691741306358433169791305474502429374729577645140349415585426381907390972585071318746522599146283696469916581799177585825295923560303518321291633423017090097941680618029414772412927452675293731591648753021820517795144913635365354491398307465597064573174704884984796158293339473694395835740076810235171915418760815412497063077652845093219431705595911512518126179306932321325138847567901611493828534791388837707113286355760233733662036731272431926924212457494777597754960030346946372430323425423257511985725814288575803647477909465110977304133433877411329728323797206234966918822587261331395970750278299720850797940118213392528562982165338897604649119920075602652061252040591167768460822942428729678874826789668802415011333926235551101184895791738755508109310715500958018063114852071377077130304413497252883238101059638648082869301540689698393671386431019692789959774435674025383691080627129197572769944360831008465595649490673803666790009168632332165487897620371023048314222214991011621032309952704679294917224699924261802043285130339403202098541183225552903229114824741436444739983607718412457043645280782218277024137147482592715871286819848434868447277795760509100534256029867186559689276317892002279199579844210588580473938263098332288659633363267846375263071651235645621526470982872652168025638419736620447629587654178701602794418543794097224329547214880478867567564528777819858129585996611419597387373323694169854860978920459422591157451552916233556787818254036994082923736724967287228505558237925278251893214452273244672468645248051451331175467858578106287587652420539397803561526981268758866684230808682209638601971916646957822131086746593259909794477234799236216070732470572571426767419920767718739269557703394227531639198396728660658348747272762742127957582213110882978822590968521463369007820267536041210633331321239457399170049175410457985656378294256212754735873151962463405591332725433155847030281238692062140592245342901271214249538252422313057891187246307300468256111891594901320588501233285085920868531730794106527456068070462562936119764949440415472908857353160067386715653375635390528909767061409829531110072067499288832677671283616363907158681504955515428171449213421222237543148666304166918284850959796163199505033402193682304112753982080451030212326997317429163281758044946617944510253272261377386844741386325078155660200196304455007134679759636830120393583972202189605854479107569366483610178357778238926244434933697534328885336334075372438651981652721142492440795434158899816274259280645835674641112741144083620904829034845547306000198705469524397510520984999067043430379391179777308791378436149773158825463806699252459615069678140086082114241662414528158447667183555241721987467018079630068845471669206393540088726670992126484372860612497619666718876014852117630207846120986824902267827235321151309999901821534404106078988099516442111621253319780908411444699794718900081433425316994719018690908780976202781033841300422043397319230452721229127052457214487216201178029854772419089443061642447779799284989187729521345532097980772345689551549101231504005769507831851775177282694172317638781809406202465597905595638638100463999622026130343313980825071739269609989807375879130344880941148972809993036033819937979619559711545224050811305043829571841539574345353118836170811003464966222687488840800330955844266771808932981801731387682994599946615139697715603496629308357925821076929304836249076140008685296591327858125295679080672508257203622540415046811327949299540598289399206743942962421155189893726322795840569081951743843524678401063039165609921398836041196444416170072273559930462431968561413519829139970627485361743593582792965645236209376468159723897486365798407974454148586577568532366697324636791612830157176879296157762122356919215549287537436753285368553694986788874767554112637027068773896381784991479025717737410110287907757143555262782349951605943136418514998957471771163007326561251289504407002083152005184144942032330409630174084605800084500967395118436106431421563906561005715806047716144818617293020357262750300113793265110374067519974394570495244350283468380516062810040536480413273990318176865524620926825628873010449943904545309184811583359232796239173705716888543711976404195492691641491934400663008857095673714444520696996846110693208796058997601712736001888883053263254442492915852093308435883564684122586299331392881755013740014648401761980379268195181320928526688529288693510865403136541797201947901007286620047854891919994949643486781038945015961145360693577322533642756315593535290000995845415954124374868623929846637977678647332579232948426300418326112392309044661644542971482681739316802760860195297884132246452608450344488062038631609788728472701267815065583364268026104643955076955592286956310965849322412096350319315946075901344031501590253331805664004080859673237211782577177616729265600879678157618422061450837082381591995761054943290223037835209918861837190755631867043453836686945470520073509177434412179160915141492639274229813266722849627604000666663521366716456175892474467959276117949797606362929161676693479173029606120296332197392998333068427808066470771911455417639434518684978608243450500988602072552133788487697210428730108226673892018100384155129910685581311499499484710616489618703902946259502254940806653898909420483146383149724534241801505924101767860597970846979605530867037408696654242836125386064401581159438340877039984406572655515771865598180584981940994339029179434162210207725589206028356204966542411114866238988406985503024610839548841023689363679293385190065241391868157011968816213556897542061045060326630803083230848685069918516999009667399342671449931307593261140317104214060035172168600844022144961658640687935000381191511809893898996691540923452189050754550372024350012310465669169101502840054418164161052474167600802687593926064515556706722030973658783473126885134277425856471689244341021828846807364368582195332553708106145557291734574067058305229158367924731476645456442275072411310529063313053368151049967600077611770876402969465105873394248092152243300896927990040302006821232001549494766718744970279654481141794787480653085842628774089955012835466389676847950420094600386208126087505324113073951896210904907958646213289584279651031970854957705649312744238039389204276962283929900189521847364942096893042906704997980549144669980823765622313014321575246183552013901441088993717578626298352538426512449023571708109706929857248025055842545863731057603524029214727841754518923560538744351858835760170377940421259948284933207807992877728379503222386381671705584182019886990227461858574777661519557090275519802877499060174453837792276240935196077997539794805458386862040937031453465516260195183582942394462561963895472773162290099394030290664894652778294575362841793363920456569225202810133260160509088253797104768722424397535053583416955088818397729610093489691518573175450770401433399529655547018817482495688952525870769284146631129347442839742928826563632245400380098639561952772845759378853912280775864941318908075984000693027806336169220349800900125914647600368195307304679278729295134614196737093557411707597404353183068228738664895980951404326917292118101145136777353822868864825325344068162503774133624252651830337052596122990662008467895518069158354673159934331569596144580202368168643458588990825868896939806003699686230403842714273887244520617877565415364127111230890977361359571101475833556679111347253519909059982724095062589739374552020704194058570014715326338425397485170993870216939793899131155924259575676280162840119783546804646001494665830502207540191752150941556095867803836886472242233416352122717204820960473041522652169124466258289440571671743459021666613250335961306925784389071203594466305775512258808349801297534351454066792181687001677950630118762608048230758910637773394669969840962025132653716064135073472536948280972178440887586504566744629819599280271073736571956609711004173207751418839279426709006081198943803632371542878462769311358480533697553871775834685246256128003358990664181491204391452987338628111194021408249350399112970566135901426308508686279753480540499413480374913498350070165370676910677739369181052240160020088791689694706222200551374683907844722509115973062132571512500485488840550656681079098788899006359491096372690780492923201906646096514462169347901452121818392422926346668360118319641040203950358796033646311149958418936446684353827377888822429013829489293004950677335933580325871360242140472741252436901523323458704560797750464132714265863341677986834071010343683315343254590538216934302833054345474205222698788526003813599108884213189067771801738520950323994101479932810455329591488629035248136679692434187372281672949638658335395770584051105916166455020901769754253482801996503329163143910266801172836122797342144040409486003890573745631587109361133190250435347433798245110217941371893774354697146590363628130400178603831266399807483909060051375154865740140026105119077271610350077840910411707494249503911964755543077695793536886067289414221803476733056926176505124861504800835671966019954592982909220373716324340499107644917264232362194313808071910654270684613830082088602423647483953002690925668949280742804505698433501660912906083270996924820887835328013846412186804934879830406623530615728768789369817414577536924562659752347888724007612166116111266007147897206754090001250470777209721670571177548823214377463988622816228029835824005116323196081750894346048384045437463320725948079468484585491041480832870779792642024365294409602406346751844640197711505530245058798026522262383893853911673746693623724868543698387095063132668323750302572219190234012710763223860042205742679966220079341322756134475234944093960623721198380249760907229365262220710646440709448772494944398093256719474360888480730882751192562272734369789735511750706027293451190698001636522717151310720895268197807680536435689874065272988321915117552779858462678193525404866590946823909895979151779317621006814944638125720685267306843065239013277951845264365650734174339313057444328379616992514858739211022430089920641820242899993718392246766132612917796197770968415699469683622103362603697417354267820548945686293189757099178783533471326358499099730911638394672819239842774102597949674976014383933383625970419117457745543591775482186636970918470788727574351153169089932326991623351467071859068364197718794819411851346399827992127761178614894812320574586106224334791973213857452849381126939650322602090450419624271712184545099623097144768012663269736877724958593679231966318921732788790082925589110801434015953026672792963113328270794934621589727596972346895792896133390819886265247872138790844548817764015371835111648335223215773497114110713434045202787332780918435272301161602062350430924845364409940555136379152175643457704079081775309928586844136467628249105705374568506275107499292625236412276917240130254079821204592088479453943254014830387852581593591821859593438894735912633706248556473488602581369865549566834865411499189291247628679228249812488229715175653980371601919139552589556034579956862128070603834750521260953830736503241673394106658919953444510899282255640575659535077000569152956774740908111545802302350483581109488360026337026432160824346596361169456939988314183528966966405181685236780147271733887164072761288496374691441835355018028461139105024488381184612450485074539466265268267691662099284119058510956046879734191738822453920398607653929030394087781611907703775405199368591529153771648763026056682579649202849200776922716205402211072460047991340380073892805373781797953529936782827311201824814617006603501325994871376708313112093626084735509756915536961710407090016518914618847350277396924969162732527285661895442698983633688442063353970388104425891724204378161043520674326612627777213533279203574258650064915690114527606930119656578512612452293702854349782250281788601644885448301639340695508842237076646940778427288186392172404674406374160574367676080189483884675813497900845917118410683776002929419432541554257819544359625047206362024397215070581106833144202742778247781013311908632366866507550339915940319844364638109980058981630928914764288334837004378803396702579301908920836801862706173601679416190057418189392452430716528367020212431860520153118543793757353620096452479540765546174182253267590758481802752354904463760970555758955629623450285332714451261337183069328381318904423115756697483666331649648874906197321086811850225999039031450767677615787294699851926540860208213004297370232545410273185565537502810551263316725872925327496009527773623310248084520418365950480415666383449811317668176760479323763712149699682901148714012212544789328101236117812476089804651715306475930518752406042694776073496730146331850285949884654514864216046578664881094451451433206601484391320250196713777849839114947792945538151024295688038618077097757539878999782047982637115694688135741798609953145997826152702278873355078038726898375407512006724741863684059666171273738044556484049211915193923887286153544654828201741363450341297557168893016433607322387623728564712819075707749645412507093765085881340229245499370874996465589100619735584435765234836354360895093538404375873629710956732062482650417822233435191520096804755281937414238576592781488193853464432662734091952629184080693671718792655835623847306707646455348779217229523918125564407238058456030707780304088569490744581373427448049119680762061602681747003710154096254617736760059529232022339877430937432133248041918407687841578382729387755455423143081783550030049818427744934502985099303502494586683927077270100796135058392615045291601715188449678557221810586070122020193701845612298246495617704764011724433018297934799684410671003372818450041809086925504633735005235835745925063627832121262382111450975528969707185179940547973519679128607497507395721445221562494167423884165095337235913368307553644781251425910000697168339013778782278799633433197681983377535109239894542529678545161403576549786512466987630963658335950600428844131111355750404227349485051446200449774360505645040296432320937104947737793407979214702252734565501462996136423502015263216899242363898734366571260372052801754309521819748838369680085019436903785096321277302581547656718879313233895739644244458948908657853490601908644357004936820591251991097653201213882698110978224695047833400693753921623584466530417995089079831168382062492327227801282738843057963587631322878082924940648667131246838709217620850771763420449330249492903917216831971867689473381754798939009487516914692189615592215638794657668334255597552862199376473785992149931043152782944700596211121823428245217679364954742803953445288866194650174882787304750475976469097448599380867325354569137783155559168309306450910436449652073135668778918780751712257972037920312631200968399374613349326500183327374323538005719567559287586147339468748587059302387365056484580301708509447280367960072510723179693776715383131161104929046815096224165155608291715081188760105135105542453784683990054825219029470153334467523793228114154656775397227659887161081499039143854208938125858762568858132231651633816057625229981281656867830353269927463353078822253436966325794437922597914060948904914041801192671037380641497358659525877344808586369069568263541959635333384314356474591662193074241238902432679666787864384633564551875298252701468281345786714829440444817011822362385520075151427711467495054449403967563084095773541943124374613031272777835300615764301303779495615959185658784099741373054592348699485997443140741134879428336793228211935376993388593462610006469046887457402285268590151583625457927669466938578166787981532650564478005959744845710483294367019860746545511687457814166571325033228003663708881463918311325081557733517771717441084103435449990633269564696795475077398433988224166316808709749912784781645332210757881803266133305335618951048626211695326910701397509346984857572927894213320973856518554131429812750593925401844340828164066047759815843364896883504190681395396747097017076980153374589929122682708080019094401927112324026504861613051027683411318771991652778989822686351810572714151203499837165403681695659596544295281965015490124511421530142977871993329241612345752198340157146518742219854123068842338192989262777715500914829085925146219075438268635258137838722841118350406926693186665235736109803191395079294855649229801491786024095415359333368087909423443854081556387093976426836327194431976511996928160471442274505371474102327998031194218710439933968387105167085022765585154201457609730605018363634347986207916767246080913817990007872521672808111727402134248400201384301750804823474141046209423225215906869657070676146335317165092352865720009572557885332060207947255805916413524391517626286943350737326902325835477706535512984350836991204976407580001975496747760974442565044941791215231701311450732553313115906432628798703708569755601765475215916640373006184968620650194822451613719579970265371583057347304703494873653844197060894115304399586714787908682200331939262775612646792210767317247471697793750775102834559922669133818072735227183498187569589474485471025051621313396664273903271945140061750021250625388213458084014471773033264807747994015900824095601199966730091858273267854165382380168800029307719797973119654114044531747851376388839236597154473511392059421190538642441557685542489062037065612502646197377778672449526236890451940363432047061587774644773559248717927575495870481846010608201475278479716140590648500404478534537622585176899564616768696236563903081730773479572257855719432604181722177869381251033939582856019417215783975655058579249519946450146703831368055855267994871721449000149970622528486752106658600122323273983608709344999513176165385386136790963824172111192887823710859755406677952795373807908908951174002344658270618288004493311242067613666623816655198304100620028399780325832272132390356306451608312315572246151700703392951757456796434840803907834665341364377145197321587578772578688677705112149866512362700918058038067972918619470961719369380374961817834287128186902306362949737522100250372164442409748302611016504502526271710506546439673085870286633750989681299747472612976034988138724304752544771188908527992607867261849660279972239277816096262403303218769471743148623399297999982703178023502574184920933650471804284084419824006667788446218205954992061899444101197073124265022228993015866918930315844932166110213735794935072936108172824133373570987661546695950957983431290664642602169910589952088782111345244585435537200153804229472340285993929950029172119475686202839897793944935120228727762034364937657702426849182477295956616544317407459666578586940022063074287970994233742054535735835361993153470086665252041282262142654171586489408082154565542992023938066623976843470890392289524432641868159651628333348206193634456346085576862230820635909860900845066451218135531222286247121162530537238273363482424341924450388449285784660330508405653474222336003491608337726741131332879934444829366394841532076944020132139362202518922242823505531650663995703978801276556773774583724843239535053336003685102555354733848067687600065385078736659187819722669627976344099236468023008386079202123676075342290882507888308133661579624902628921425475042362586140710908259183276986586566856667191668603226526670092392801425364116251234786561624432738793363923242556181222543591977494176726423381017305698454544882927091816927302304151953970962445607090895089909855095497770648759836871131371854264834584255289971462036914237490392657166175457919723875919937572551098627984263007134075247864312780986216290828472378502738888371560050492312263000221208414855927081713576722780664741300377072555321291079508397064951351671831639371982241716157764012331566812885334418384179804276424369574919693911999575816343853254933857900537559262878304584664786216024506428481187679306501631861630339032127846191890919199135393141878945220578607871839339321721899997082550574395938762703072742456023404077778889243344356582082829943540931410614090563866906176509405686044718347837488121218475994051476529782385699219801865168725294593095163326730282887703040042367100652232586983700669156604742810179766165062481663585960285337286311550552445862738988258258503231707346582182119288083743327243536278240908122174467054183450717751939958044544182132379451496471173382582545444413975289536353121093170994903898923262562420929267627796278284032540825961244865878337301919782181722676918193553227113758255021921407764859586771295947572161776474677490201673946367856067008358749905101913083883450269731285227304381316885283832289698637824811382465835325171715151365401638147299526933852009150234366602631054066069323719782413431426075809865120389593338490453515968441943732903895937458565643784966097038803839912147420014892568674668329960915312591110011782447084776347496192459460931795097489086727209036610520762107147878702292649752162730634902838368655598525520979211305798706000416841379680474761175527061960379052614561181106613988330525142085823055077648734506212410055618319560014889996522427651863883052394440187494328692088139622599573363596587038520548877795344495282785973956933868687787530137030263308507221317170387885871230559827153485601640679816941179770395657201099391843072039277809974313654041125802586399757126831350314830772196561075553986625771968827851645362918803337147500547788113597283603276350021228924638996323135788105829251360787319991545743069417061951824670703549017050682318751683757538537288671440022759401649449294897735383667160679856005295154104172227493092001727993259916146683884356603824509217147076254777734061804628211653993974588063399243426297312477908379644638809153944141183447789596693374567627484617100402615732264500106279614742509040160464737053874575217036732896083322405801357849448399942545688074594803693066125552953654174896525027842221751500849123951084698832180486237912810087729506988170542911316799757961031602386610215171575530593715977197826931102256957013392945875378327413527489534602130945538542202690657926502271738723642957895165438011728153060555900659593822854305342280868019007019807759163041066159690254321859337535062563041438008213905420316639479980784860774553524858746107598072381127074027777651917152649178061666695188283655715545239066588185340393585384543080147408231126073219306925487813618835688150074674652746554434648892440443541775789151179338257305470005986162624631390683218785750144842216364448327531435457826333010951838958128077317886686968369758888041483422262636204826340004531018747963782475997410177932277022531375431451725574208897193825066627713863716480557338402597048882603590250440674528939596220619320031990792539522681171926601535157342203445506527423196477355352655555055628132142189170491112801549196726518263510310977310658195804992014641792479632329705411797553387188756751361084327418337708887520949766922485243779053810758189523684640323355389684204707096126446268391537333833211418793244453715688184222479199217297464017867384038644840673136024750141213174418932827222405107614110404529826177756848102524922140437567389598866562657730494040442978648192833411485341753977720361705365140815397093300420329858923144277125214873694158851431399550197545439211930266915951069468884246618621282332768199774235640154718692146068494717293596351739605193331190220994076364278588968913824970428175169113622225291208713692049727033846681411460500181274291509488237566142996023988492096930358006239018902321727812844805265161070394259651076902601840827699032873778599208568384696649666456414002708231986178683475233512936771603007551475185552654064282939612458711251218074435698281470890010373995949003369911855713819453705647778368436777975652952506671146673708863533762071811058024943237140362974126284462990646414087891128419701884956545555439427010685736656911747852203191356247422568114660635317188588064772063358222403987541830782187790307299296067386140118862539713606369299600332730742178627530974824366869885973893978891491892217669775965878396386838337511282624091090177731280487110035405612822220244855673614104960792994131004253335614082851906970913712309155182914922485994938046980635149477668875950045566520096597108449139090791961957774586279851316242760178033013514201198014757627713833221453202185831563007740674590426390973107265805064691285956263876021061073258876741258727387994667385932082609987123893259460382117474189319768610427292258397405541584499624411883673806051440477647099381963410555687024038929486120356658969075146292295622973966496144973250544592989108198645354965911538915444710885800599873536150321570902727399890100539289925346170286610416949253064680425876909486861748082186702562284219287092854779053408179683212468941181391901159895470067567153731780897523831764807944778595313892504501531617482566457620578736090677801280729411126373041854665680983490421794559958427880919049227856746590178547412108914154207806545583759875292872153314332417462746150408307846142427727665313232449243976240681466991883797646430762397578241039834596311172699108290406078720289159988021327542811603975646100627369572961760231674779344369716709110196139919300430408238462703553296442593071283716721301265946379247997243321548209158557108835579227961495533959765416022199513625427506608784010780537756147825346194302646366339570639348170686377531825466841564912513978885055675509378495739202758911052395497571453240557019760464491159814157993978936465760608441287825821926453100659130953949774918751829752450094983930047768957906045554901249317232528527235660794201562541765705949727641393829006370256262479426242498101735454020186220432146275435222151338131297492883999965690012473249331685848763331210741354087825982179839046807900288785340262931204077283509217836109506111532917905372058850702989879918514371946676614845747928113143108853582009338468899507828136975290893835501063440882274375992762820868833089887069269937128089339541480542393756445603539617515857283199076663310865518909935590264877819667421158777348723453460776933937123021795970299019221194068877945462585777936090449176443367411044950135207271491972807531266425187441399343598694605845448178661113406443098357018631420973307536759238843740598447443205656434298530117045138323474417587732344665431391768829367319124416269958534286543736699908151811975751189560896625433754493635346185188256589484699735702554550861361003295583717163142625434498835284977405414716504570601503678385506837589477476118556677953009045223397321428589529014094714944956218471612358930454631461895330911292702477742586186789437202141209626905312513143289535349491160897257833561528328733934601658618440001571224826589818951874621844439327062471413462088368090192846304313531732999122096629623851917697685597868120837032000396670087878578085437042127416146977478139857646652557980782555439559797445494621146716877726617518949091487429240452149855415613654757710343902593986124546529625865027333939189433494032784445961791552919172066471294971624782479733039563881465551826323001467557090572027779073990011179129848167673631061812531029223590092050524918991806020642672989266769249091577649263973103685992118107711292147935803058735546132744809215151654561870562843095937687079220920103395613492124313778846872429760146275663515843030081912617462290922259034788168843194158712302647775456630742998209890033933900983950185550197535173630079884915243532915263782736747131373855812331966833188365134028302766437997017824723872233471946072507765813508953170589393503205810161309272559208014728883641102140199683364372054285891758632288055477441956717506487546430698906731777349529323185396467599129143342803676472681052219563172340092967710640242758292006948740238796385575161155921110188290138074288661000489495429898904721182119741922074226062126489457207229835785639221753448008661551566225992527174564043226602239059497369896036726651122346620187531760637783465443019709840513496396531393775775122452998374776735078765665656833899548603379757499121717885682841379122327400086068718200658429189960532396412965423587005693406725300873423243876953108608044091579212452654873424124605978151851281340024041951945157376356788805738811893075584577022987984368789262548523324171558955521623181333379296458948868157258184382462737558380989042449060774116149622850626269751190573853767507158468487834424981069740203482010405409640045342110200782445608369472941794219626479731958163640906981105123815457224807226673513265402793898618714583090435381525173871073713818326528310952115104841201360072472534474960876074795288999870146412880270603922870169099556829490762487725771944886064957459719693151652780114353779341522376445953869569722782750561201708907060256909187259564633880705904792693350464155637031838056528726270147680921304441946211387238636850934679129451346400634991627288516867745198937861423929510903275576319996494471017470602357342594731149756458722506218237997659736289418709416121021166540981572470858027600489780725507276840034483170815428847511305663770007396092154460379306287602797617631570061223510438588351058509348883672692350119302220870058937313915651502825972472574154676768453696450811400476255767700266461174590909404864302519211254422171337958803467171415653652289177545954753712977680283692061438709629991045239305787019845635522682329937503419130729025636469567482038192033331934789141459690311811604032852114650144603714136504958212010821078528242140639594043522297534579229365793723177690920875114062277165327677748930069927023621431545353609710251940103318332665125294506803923874230404955285845890565770607391998446056448608425127234595137885969006726564248749811980555681399671874317264256021110393459747129119390244862230438436136644235377597928138376957023134062207780655860429490091947951364347836166911363345006305765400503553316496253794718964528580405797075667049330164350811531317976868824577670867156781808945107249712840769933750722825624189633546120454711248213035445979186432394788871637775664984359519443132235995460559267087012078219461193735600543427276570928610738743454865871553205206532704600082232209178295066320279023825414130349353615610465438167517160986696891132356514798703267973901435636976024170563303123857258075623023886436733777429258971165945926069511058954333683143242682900601405773777909533870957283328779966718403116201321176492721370554495294864028477381057044517968994378377403325664784909201766755634340187782916615313921756932259675429226655192127715031927689519358210278815546389341959861659614455241809867993223931840550347569252348797445863332067532327372567029509718404774480283885309413702120311891042952671932913084838410355979535745862187445820044412701843886106976958575595192791722892664820765098585135947524267667985219062594705017158305122228511896082627928679663298654147304454426541773229532118271848255198735961613899543476937666791654514602913828063917270097593608703927359737909924422388710092177203493599918833127313344563424721406072026730547091425244381655428183430702258396630394468138500564430721313423325585604184866277073477944141430719107338566319246488317811117390801648388782404485548071855066261386103288044322249117159162452655252128255372226538179153882035393335019151768463296939440246064841454000538676677937991444297487864125138843558121517094183167377629512929746342654643648597380805656464176300307506200214749852307870936243304431858093607205592957728081721641187564415506975664554753451301341583478606567219459148309572105175002600321399573282365183614077799249519545872244274559696196206201269448568903446521229675205898127683987127238438751916825984671969846464595678185884196541253288785708160637561996650646902583783765255678543646365663639432577320196949265090965483963667399794876554834134930836860780962323537668204229257261394267194632265142570844465862607684882093554317185108268470593245171338401176225627351530113024721112168377889428337961359040501674948433818234434602476846907289471465875831770778062212554147629132865242656384711033647026909108829775296741099899078382819942603673881809687009080057875065082747397650571143080885796895593514152040919062808031866140760345394937458651267715414122757517357769331852436361959561739657181482901640076324044928656411889352142132388015062004953850986065076110765728851225059290020126151037951013026968119216930436189785702681008446829245686109144122446359664304841527134735678776447520498751799393181208682637117136918016038457152415221574442354833642544442690157884552164482476046739451436502454192489792594034049519542490275713561706285626394132488453514270398799826250306001566046263246258680252268660480190066415088617191597959375843166262548944528706917230846076825466104144055255722116534218344708770333466163249704909614660046462452292363384322685447807610564835039701796780051609949357329580642678269937392065881841786681310578463723157223651011338402957520213205030345018270731134545105199097252445549655010864841858228511351882631355368922551973181467800105596144179182843043580121886233621740432185684053707458121740082345006294843047329275139168100420777833150244691752705269124942060580057910177102582643823592292135700400280732839416549491224944816520894295505451494860469717551364654406136366137112777002064757851639971464198108960994667824320756685567440397725426064135583316903716562908307115545338920228405178939811605629655134163616469525256284416618287302545212237858861161510118024361716659329418878183387656995159826758294941136811219931119195935643376034236035780995618042761694849923202711832862147171721572111895223857707916106775168895491806073611423158374289954494403099628328398193303913019075644288783864141975723580451600721235059379964892248801579643318836118061782786296207635376768195027045559170673315629665912812197607526602494430924998113354500308802338077989129206935313775768217879945921724564944046086270632084199245054303847411809737615943099805370088229195298292029726040751628633597333256271488106849616018025735142531473318565661646445231532727048548724438968197073346916720034473703180897926550453056371724390347775256629386807282296446232972891295844770114969086535421905545019279593691008054460477060253838619238757652983467436476521944255705293165035379486523105891699428156379766182221601437883888832938988415791733386466813599358679291502315233982160815895758701810074307280399766824410289207254505818015608368819159209825524444085813909435140495800756982646476452567630217968668566049544501234102834497976076211058396993985664760184898446937840617337019270009296937456480236344521861040082511772342308521421538097191223421078036360254306725395374822554737501637467605490599544287930434170361528746429785776751965390505976840887273581287312304824732219255210521935867285423978112393102482683191528819501158494688348080389540547935323121199336942689199894154273916191169584874709346762376210851041080526185340963749214283818322473846036488049552674646883421211303257070435580963402343828812609112396506724991497630275428404239548227094326734176697204925270413770612160088136136849195829837138642275842158372772364224502099183699962210512788816789758602665769963508849819910249303971227061395270406754440057222609645972134997734529619476281564094616204218886170358432594678493648805982519384721210884146855609383686892246113925003173516977660133883491871847514333702544973849504543049685605086364988418666827868964786593761868367919862588882663826953887628159494539847098059791010963045044458865699983879305184777613069700767313329826319788932105454106153339673823055874506320903994559218926733238692784716264327217819240259761425458178134491758219745964211805070097425389524982172493891628166371286343110843226373141585119259486851146940215094154474123580432652629527172707159616129971793342976808007016495241193837059299681270985946524065962426163169780545925197643489283743883201262566030411462171902089103950881749457329993293241131741458062669430187035635319917811190290077073183949559046555533815241468413727362898754671853542545790383863588178610925496700890401931608617372278187775283657718442662005181807697887897638431835747348841625934179433684984910067502949844021070857262315088610283236278556579470958885057492180615949307613783161235598216531493892101985590480414543204374842993091575378869297256547328518660554946062195771922983777165250881908768783627682817926984232479338076572051096738069573813683457327857824468282433094516861317056218075917858327605858335593663192300525537127916552280848353797257661758905171712586594771116865756827580749695403343671753831909294047452261502096608416051181181743993380329831932747835311989353837564225063556974944687071676991854351331049427255432178491753067613548607248938998947805597745608658101068609579570070577139542356928630018805095639996352516374138162305301810556885747510855446073995508816465345693726571949870627597442689387006481915047226288804660566764531217560038167387152458685404689147045490656403116043568585299836015030392598487971681544730232048036509095010174835806762253794544857494385440474318879782902960339068389998982589310928502336289566306397579915972038082570846031085994732153188531181733989076268359366278941976954209103366456826435511815815606712465227941729600948456398777159073700061171915002223843401511833006724953868784097169375573431726826941816016168106889267563769480543959614138565136575598022490352604962195057885446369219252028045599797672582020022603133234637081623201275843912696655499683858292185287808470440911541028807336875432877928354720432838280302086645165486008149486894525251908796738759606017412199141553268533330607941300964496742335414015908106164816429789354725959451375088096025118614204337732756735062376614474205176297803100183410476620032848608127497357181412313770672646120708762088252654623061527651156383709585293795087160085522488728304584026218917333478248210351593126784297467388689347154965843760516521997860753811288521543810252506897990588344282227352233437052130096053787215758024182117692140902711771817912478903701708559541132318618370422440668550750686354003266829400579355385776876979215035324320776634958505095495776344451760433782556894420652112433501901387115835771405206529056408358877246746114955434842906410636227508501604692366179234953540243139518113003422603333108164215217236299806568622548530535482663760756654395345527957348509764644687961863857363605023395743950598193276525460113793364353843895598032114828804239132271279306397099852708622395467071397535808709029108391297115768699130429312062181915552370084035115924792188520313954229907687802509457677465430480675301000009934446666149503195633732444132393586908070807558595282011055494970863414589250383101772866972371564083725642337455460383685220028066157347861564907410160953992717570871650326922834984306770983628647996016799912201714222930114941552377993677657106168808038272079058305807685187755512394146102467287809385303161271233289090823706972943102600148326899523673307004264030020448445196909668252307228332629109402489606636109933767743248595116621797552898639087255115058207965083419369692976509795254762461205716028664838964157541205372273951848378153836705873954733173665773250457887551439483748135275385915818151650225153714604780247422398137567426304416022244257814819069003102410816742674575773783442642962587001655350947553322186485158102201375505529988413275158419365708106476333624677267305905620979627273164574399586801533705297468049160900407011704904100508520586224512843327848470753822918427696168958666315894551489129702831585176466243765612257422184888310209361141160671956965626083710714926922696092348816877983603201210958952379269634989973523619244587159015778494916605853778493554683617343558286339475727755964429513438435642473201567844274954183195949832752929623259044628010706963454999956549419448391465842630819559268003959467598214704726481024437020624378224844377552089761224639747776012293906281707670651264943924374250495486059769890830652033557277728938153223867580852783127077018696030729154309568271490216819792564371995165145318154439925610866234925899411998917494180235922479655915201038950544290183357096123941795010126773886105430282795147620346852091908245974452330075382069264751912122024027915385636153713725072591165536199086548659604816987284744689514184688111732190282671236553861372041634194437753815569105291632363421714164714701363846707044907466379186750592132122503563343654729321556160481675363502667413773107597871679569065701529261888761155706470944183957601127135627678470971316465957036416980882277245714721771514122868725571628382521092409950321671641640405997987676702800602537576404856629649139350360220913252403847342428891083682314059203680333645238029923948837479105575949672407910303242876841027100937488892852181140486384375440641443406072331122109294263685766969600255641398112395990691806144025159756792448519023135731303857751825119938728135205558986782307316433737896542715750617153004049841977518956223623961687284062251462639061802997514860537595724556509259579249083586006229882034607566777256487758877874261360557550472872266527960560558523045875376563763614702638335187631556659869444932500297792529847794105200569758934784954340491979267836169534420295955402667999771582098818583600569900200262506354431259204270443692688547489473803239257845636203727315406241670030300525981227629779682218540347002688260680130001338611705487408833127666967015843267469980299711614318161061833042810471802279069729417280645440552616719810953107446082593480713784692058707895003871240447837566824544211518415482869899681634032939910748831415614586998441876180436487483737831693578684533904815978347009773372635809842458056462915172043399426185141800010372139156222371554831662752909036785148558405516570033514502052361148799807836872656521434095409837136841656864707469244637522829787589248085445453822470546227235657804664723717964529660915746674265739492068344603722368192907220963884820843286018260269611158059258138920113198895755935707327970008470477588960568310787096071299740168401552402348140375071404906432832006086369416879298198625946988830757580065032409532791021249794488148047463137405310731286592376481012897080452375698577111640097394438721257182058637758812314255272393896521561375584034317085812683365620690066950455548975661941815428037192668283936097955572171910997762838334954334957261208616567336095517373831712530762161400072904091135614667884293520549236772937562226370798681948184327072264402421577068549000064136935949438575855170180479721769046984102262239347983851545820453987533117011952096728909530045603697976473646436463996134997750191646590581184589316637746902117989926431832518418654099141129586710001468091344622197530918080680451411665732935745402456247519392943715424263660532084702416861149652842302937810791015764124514196638449658527480936188216308250796467815803378579336398506641810247076049925191879613258429827492418410554645493468889905689017246423836164056406666143258547509340001228232564459135750638696265742991389570744013472392265903809094756805502286590553347818129111792495259325991041578909655373669313552146412735360950994329552479728594859450855566971688526691290673226558757017019845097817185863346233955090649233108592060199142834410048460989436380963760324083770610469286150515120985213397537926209307313096148861055786269531619564095529954630303107234679383112843287356591877107653349913152399378340064431223368307952280955168455082412389722327184561230061918640009586969627006051134848649138069858518912347837740357960718239885213360950905559077817504733893605941175386458017516878383415124645653633576225600434687993162164609522997634594311656991463929699404275986110053629254661598589180269791012723347586067319527777405970570642087844782778955845928681581709346655868395104895109799440466605704018636322131775187332959443789103893268902441328342769468802177286542601168419567239337885810532558055691345671317472336561282351184280551509545560877095663508387790765102056963805971788644318384576758864930074713243506195308766244562191838068279989887631184146042422689964142895692672363719830907103134850224113851327179089708047197446629678390670425384006986149028037331609953465006643761972517998140150229000741506399217065996228768396726049512677168653864800124686475106157040059555015333495421100561945744747172898628680529018574273847912141475255231929096832889695043665563235543228096025496280529656726209594445075043731666349521177922625327305347469884457500710098740433255256155656274437040220207884067789778967199887625661372411777269764234506681724572876166084078452798715049542199816575142994601833036911957741502244463165415294363544319922865717997060896680342904525125109748780982184390327862103958068712037010396584582471134929649062204598437248316144965265400314862466954203195087958611389883254263513749141300234346095535558915793273161198584446663853997276296932207516276319017281296982250456878546035566675283620098039956280401176688062319269276409616830745026245994136918226265878515832119448477172233572264067569451166200323930774344660053356898197343756163350436594288461966403613583530945909299218071118114576176276417066868065151405526399258734284524753612711029509173779602926318835749984243526329452281501456781466251490762661196022305483805406947228798241671865648994235698526833288860791799597715938606718721748260338112054264569477672098648835593565890166675903580473416918857220037834845882225467497904221588730665061729684847110353629001334436230398310158715553267359660306945284474048334615204204475642035207858011258552547072146902708397696612791360252620939922897492339307408342029972997941482082555363570161490790853965420300844939885659787891680897142789761060737023707721333274911061930998736946004678052071621341373799342951437907670363190968138285378638803928827925028687443584647507243707718769107965264919346514582123891200724386318975167698434040767291412970789641164456074793417094929031753016995603275084630211477430054486797978508301831679385722248761709047411963579699187456925580137176241408633606700980815985905340989671205406759304843106706721067783481826939267234397334127476469239068300484090807698719949505847310960472120477851400924394977728879197484718202064969021627573461272316541531781089902962082749741589431630987927491964086783306146720931770404921823614691648540523340493509323980042695105627721771068753728222577933882116942793574298786219581266099148536291417693893523251450459652849181699822439358117924618206896273015450993149109811144028937988858727371573237843907457043276446970008988337724864947520941173473960439584485783331275384993156943889115586797717409024632451013661945684377723573033776371813485012349738121288130649110855000717889862944801356518684593516755541633904023889947856093882680950515531823972979520423390503992767807360095093373487252155593785340522264595379485458491402517142875999038698435523377463486898331107240808690602161916003242852865451944464570288684565801702037423951647978648338172123680859741030141296684066675843512943552873398896326185150362997376347279940122504330541479269230174514657642934601654703661512143148930782915095125860492495919862611024393991213617981887082922894669878651977129867817225286735922899234765467610598630768778315179218776257845372750512704460404154508901627951747497846658125048120341734158578346681791010975714337713464285455969858109921904221227325110056395910172530493126093771341953665353460472438368786653190538908901202581864906338283228008752720871758266464090665786921666114227219176718801397257500090635525008196546400681738506803511661803133851782493679258092394097895704952665545489827406334981495262065116267873578520416073930394675525857884868992411051147452635684059843351733195125953758675405646772932117111137721513854300737552024565931547593926046691527856805720607463043865966907951493599409537917908961925257083422078317260919363765913170586798398249863195803393634168216392904769789663637486406353011211073930542092611125111027756063480866594940199930402651068343802372413678514355365301622249609046133784001376443153520034839650566166126792401808075157200695121593410236591257848266798257625028845829578262270004584460988898029140650499139415912789863249390425151275071073719569650423125237414281198934652560330291444140581537904849420841803598551725388959074434108067595518836939271020527579443454518524890204567810838455493013737194834573275314342335213517860394687429339401138074927640924330632203229685025010066657970310648883668197961462817633919351011599296400244282393605985779749588560137925692039575741746731389040468044185211396259937439256624398003521126548656554635902475569615958212638677212266336831049046301637627379916729570135078497669629419004180244505808659936457526371847552532332701413324202606905552596121217321183445823501545278451710109528981252107640974965128610224623392611131214417448741200992408580104403313746460433497623387189319289358791663757632840529523776964935620837987205795860023434594690901348957640463326231731231396814112396373140464868036167157006638647872427315037974905969220573870394663811956133614470505920535855858093111234353569307624956069844245684577247627715433478226536020613515998212109734447045908395317633287570416528364596256257754030420627517638012731868620501460289558777400879471319748884254778271143662811123770216957003358083473472136620860853527911895686406564555803882421804624451727184955554328463910419702547750081555886752644333286481171527882136306877594967328126093612296987193084820982355334524866914449759180331139204427649395023838893854270094380923135295550581208532545514409333688723157236476839838259167197037263804840937386997607043319605361703564972287065888524883450040123808377177195826965561223226355332846484854382446948925560031974769750856303135373523279020985001388943103124852415561414086757503226356741164305975333915810049504035275056281890124951823711118247699984348364004026203581252523734216851316179055391389560662633700408466813099190188584381648581154278595582808584993161328557164971113303179005801025764382127109771005943729518409864708094331646561256246609724239865682167287959785182280081804791301940404928105728312020835590946319675412941526785139823967411806401208435227905660013887612722928320386280785460310562611321352932253214275561459990974671334255136390210313048327480840817641632881524269089514837853953055599819609055268534433146801067122769451446027654892041382368905866498418416764471318057315582384098784018136115413775130865949607437584863690112546127036588237685060504720714254113398315075781978789732045686813510281713988027092393853947095085934419498034393865974387030866554169269023606144218159360986282631018576486284902634447290431679966495964193572844066815809335147652906112825670370374981130957050042399681792829256977453436000787068000312619266331392464075037496540672087942342969555233084796085333651887728129585188832135159141339284904792984854842963278023759659706522846216676136574290931809986895725633106197560017758332639538768184111136807366906493596804206269482519852890781161359261458643013317201250689169607600056889812516480482365014193394218622090706535625589232081030563172968660533485958071013208219176752066619298067985487927289525918902265023959612070714082411067529162947336855829748138951746454298408932439908805902181600923970317091326215912528110677888776928983248020722157351050146098242556906178523328419911878413758599912374361008303433606529711035346552638799400312242065934648060974940404878045181311440348915547327825629478106545966172332399819121258053544215153145818119801798457174311448919869780798789460449487825122893190927759611171720880964651074894905681861242047500091005775573579022660002524015051283748971366205884161375547027177114400503114544294145037425995265085160395786495578523153284781109290283490752614953955992622268197428629795146133664863358531117548211802764256271505405622905786746576373208842065235314121532624009578207804562861225351811671760039610794826430407002471910093103177651898429207580973104113871580044812221860237845612940664288318059843937978035575141046316524788340671021188054348470199176235382939395084888277250906899549440275852173496887648411714953422487418151814388902626491799007671763413745129144732489301530501998263281203449555775614479345114286295185663806782612142357657606694856864106688263415698842808430336535425295130463620388535449747206269019895789191447659860761536729804064032024921878564511846341004512539657874666865798712044259826542266145781007194929429748679128372206720937265414390905092985447026423217333782107028193176407437108234359113333076218422221464809948398005006560561291353037204497744733008326241907511534598134487511071572236053257017033915194456487478504669033319747040949171987963129044844206119379406180438433972573822410446694543112053916151414831435555577282233104888418107661087546232820463830011725619593274138607262402386370100913991736618773253664739119656477051593529175055025014447479559845187871294065272494711528026776824857240890511444777006941177076586247806893035856003822278908929844755639046224708572871127147069061308423507276473317607303838564314080597560512847611296185905667343927473084236976372444439046972479012008486026838961181306840838714712095018724129114480096675570795402838777615522605087356890594569391855488366582370261377977351995955121607118324811736994933307251915205051342495758920311958425349207330046272771522343076174002929086009910589343221657641500848651713144547043041382308705054868569240491379911362937640729327678410560432219421359309589214457531654142012942047488054371220800683200294892328846578326853645878643398432453339811646665637417014002579603083261279460727673209972599600387396184217171517890330816839957122357322079110322601878582738082241615781653033589219940868002917886327966177068338218320284002661014887693532941024386519866677606843269112776621260981094661149839559515619461615514755386253925411051855220853750045361822831756961696448117506830312238806158219734528941521349664318833681041768039300040396900400126893276658891663816853560571443695617964867811542136476914202821612194100831607386866941101665982312652830054125554946737782138550069742865776342452360783562023516739752071192923817032642557439819349886625629373253712279847887711929824493600715960558535513045113270561314542296207141226654217941595031428770772508191412360232320849732981413322535428780166043217228611167971210595057160371874475701761223352007125022423250432587865168248094118252256384992209198776725411058451413292128607887627076459203359188391204544910905803236663475458184428661919514171692878115569388871261356227530603401210955750841179207788552842248524260803413846191744962065911089523326756884040157127275572122799693709061471283313078530321181154096082083540229829693152614015926597383404143511997473761079421150586122447629808701247962668353739770129406150288367848046177184949140493977624847256894512751096625091600832794430905381236267879274935124009863698025408266807271737900596802241869861395984444754459379315685181721378258824926057199096807413678346722097495805356621485724717508473959814534503649140860469547365842867986501278241110157048699013840093126765801113963276546141099676562028603185592577167410695644053602919480042990397273750316239961046600256489872142887299044600118138905325988027989347152039008041973456854247759427817684608155745019766106881911707667565399770166158300917378380942540940795813712472151282290497108976414407696125845806142742182565468421650925345158980539134839446787680211226254610215038685839377403696040594570810817048003825783404540169308822115886977263166150272568882018331239277035743925076457074368764010100068962606409193791210519955382531742112531287608078554701742381280467163931645223913196951639117642776143147740006858574264279007686444238530418953354931494365855985690819420539218946351602567723489278586945305196946609647084030038081961571269583755452827468132945835673121953579794157017100239424641857496277007571366075609758860469034941067593961262378056532743354549387671127283871216306220210202668239450696509496724116319774163089690910921717717488176238944418565581737089094256260141027672284978176483436543590017762352445739233347091227274716839335122087123126269285166332652370651490785720473148149369172007794783070351889864160692423636487974157687792886399340414658949632855506309675867839712991293028356664818737787303664204726048246655116165159574656880446012905265079778595227388916199576022649053175953616268933491282251543017905501639806595452134145794586989538289368029661442436115019162317158878202111114183421967919492469634046016685333835337874910513186018347865851565948494460328267571559939627804663318349850860270443466204111680117972274178152250886516967991637947857533280486805538252914064406070590207557132523393858613703773734752807137576069930221465988272376438204327857886708032826320222806326350028112520684572077562802189830355828553834610054274767520144950365226530653843028606141811525693025168181649080057173181965994742791531833710642834103001723556691651169893556310274508418504493885022171597104051622022284795781199220598871413592147788934097055891207292539634238880191555189136025890388148146509308415431637505466272811118838915724945568055241775161726283996176546800410645169360564540942574169302944720834866902445202140119943905796330713049607602510086709451459163900834203043771265435197809132198662436910618926342947375027977584733783615873193921801469177950145423411744686733463020607039171512755959049764966287635745483701962851279571239181258247641903356661416610255128738753162633950280802260084831742724208446546261160003122750758176110994292878455606680547337443886672436374877981244838065640889075164438859607394729347146792836247014620042141661343383709152437454440101021747320230644743836145219726410835220739683891392222362136160837630845157509271193293451621288676773959398187309430327670580240256064244470480919186773709107562842222618290463662568898832072507466630076887149486529635918627294379276927957006758161889067815170452102388705583845990972402463289315367286359098538485451247232398066430587807421474272156832038086515719851333828571892164507432772503161069056271398518857290943422464479952141159876902862224447169883090330826714537966052046812531952219200530717095296197653574476238594001226619239652372889863975764321288913522189681999187960920227349297538005413582266581919693787654468911039256064103621977177204626847113838844547873359355888132130849043265495791517906139127925186351189540110037182824838458039577885946748302081782114779845585259844279087336742503835333424716884473919163822551888258914079894856728245955095859810637428526212687142354742563818644508513357479815837001417234544506207594812784806642755861936959653905244803920617475013106935739893489321697217802301677725534539746974238877289372765144375091991408542560584617826002275824971754810511527943666509791352119371674971885089801632724092993835025976869966340717379920065799088272795031785630084214888544595153286742227269527745341157548213952557279714972465567001017865968260566585087568328806260971081610332563034884443823430317651668770998198193315030249102682382807318793129559210533608668473370839990930367027157207483831052390511787643535596698579270166720554090093161267833880077573527358646496763414798811881995355164496375691308366230808268306450952385968218849981572289193755148599821982590639947341672996709067090396083550263951379331688767846338563052095495404185528622975386524753741764927964281109393953005887778405193404573042669196172064958090674697754857612918724951780331244556046436923768271063886810952905355507438189911468916604455706303891695913775344759009557186086486460826135488683629896581840469592806221475349219388536516079078589447465473372418943623298013539632336389044884730557670772604871207828668537140999299554692607654413431534622147559246164493628566934116877501707301313265553975179490267367939426470244748337533611899109369659974613952114095624209911821755669609442849729206961353063113593687408093234961822953940611561219626476972764379748615511584160604190564836410875876523109694990888331740378660319928007963877070179707601459333903576203768896091829288735298558329727290034210990837566207908578968168875008944058619811530778114798434496167494719809167698484871007295710991352758295895715720659507988601857074524526584803347482000749451214590433957681753110154812694821848543888914233070506385106759798604181402395458677123365900906393866446950084255041759798729005494961281489555832357593512921488283359209740603964479906972613939493055284445832359621924997091128582632815809398965544282797557021035401562062875306072992793784695074603676664172633713150168205629238910709007572463714958315485659426574944195460618989611925025120318998056611604645102488096575784957503636002732234639297772507445281816740717161556937012185591719809000768287070551577839325717911000224026490847684021363425181366813304302842209377003318354405610927559686004100085905639953449376510770893696784263431931983297482559912065265200957526952706737491695047079650406012750469132579427380947228085775356005837531683809542071803315238718489653676535041001744483810051635760567814972058511622260366859828633362820994782813116430136066215154201672130362520627831691009462275455401385339209221908166706809256737136811517569675377579921478184153424030100371221897971499412610893839995051169241071816323811891634143512624468160847797685123071431999389810809694074248324524617975046096639354392458564533320159200211113984584701380959081931846606344699230831559264755453587587224159985454622312682988092916746072532236710764363915291013992422439235149409699328964321785992572008618036793480139816536973526334266268625525457121940041710575608732680196527967605209929263795470612063576809154968121344295753526348045451391813763210302021327520260590933344027084326238495630977167905882858003156061398551672144401676148209639586617018150395985585237499797609100238502251520970670928002664888400707622346719338316910619445313050656864234160189133300918443023190194934536300893779041962735496708419948691619494970174645844891747802438404543661355649042913299574574456019778321124585392612825484727772653987474092868677462010965489591374842439089642016561206124033049653382000351686810655642718043004780096868015806043590200059587384950484544128208556825584125637821369865592102264950347836233445062597020881149033268326748687348351206057468164678207535904689922985436777237843302263672356438862335265219090034172257905787294823163474446033755731718537063100707926506373575431041324154704560971876499127120957763201444000467740377179255186360722269032309893070835590309833148572084258162745098567821486622403662283015702861899314839858708137394541075219834798104892301444740858755340976758170348857853544796140693276158203624692182671160236574295877430799504749648715510962067881617841326950081686996775019132666430210665638520196573823231601744229759427023138931471731078580024909440654378799496762608886907479189168873767881430810095809020321940177556926985712614801878264072454283108510591756120721434231667589445898942736978153285751898299904227400092055493256684944268233916500315466243767969476715221876202509087330796061064582177594714758835865747798132968738024219231680495527697688274370762408050425389710495843625132927360910390834863005431845815422335274493788574061489151744367806086465907952321176987875173125898306984681123894621660003449440952431799789336249247524701986180122988606299661940158964313854490947732943620694324185631243499065176148639097515514881128786407769302261514855246882478588144542268588348080167396826444266397974876549945093469392230960044269051208225133982025302391005790219037102398061365569320063803878572135279594289497051285113553784726478277133535885574750258813703841042834129953914750435387461570969524198469910447911692350965792933288734494343965634527204194156703100928092207694452056842010564196569877518878532048418526912183178943145712172196741410337229124066920700883019931215577785023529728855134360303055060086133670674104024168397544301244622866283563830548246096109883327425572798342582586764611559927567795684404008110061733596541680368558642289324310283952408233085119707562314471591236289616244989884997928192661893254970286859493268590756708096241153831765683632613518838999121702484125444035336175987622623965781306717267050875847440181616318231613668804775424063459118508109319898375567787615840607824650216412983670131000903650358656833337873890040837455383577894338463056246602103887196004991303313026913807389805483601968830635038011823584303364817140378499577638314243809121633197350289758690911020046108269564426324390350346448712610444236077670360445688133502663112642640396124201214984123074330251774173390231182237832465140500366295861983622601958448952420490708813195738154954634915735597593507430623172491784568714134874954872398902287479780018782096969635471885659661110865034374469825063017643124520730732293320705947277757315164400527860254037305657965760218139316365509677371419092341472027747766745963123319144722603276834892097588403662471205045007948036351299169905133545977788638675332836854406195140489380082495007760038457197543231010940719328873019195132532754898116767847029976107881467365187811495668739244444939661473363879985298044382857534709198024043743483925863084344240707386241741522471605752876026416142885194790007685167264896983251453068395422752351019699228005105510146747642538622349089732670595657436861557060268390584495117436341126186031324258674691369244855986387075508323378439302204393287266693487923981811431256935971793894962980397391469475813313275801524409126313757511525600481230214189782714866260625064945328758923047040407555752950341467128225663003340400718149081607197973504382826766097916101539671677572282772170282610889947169127997422554429860304660375617883535396006441831760571577836665161058695283123131464042487978315719901650876753368003535727576505994284562492703865316759772175763009210792707730142543255199408400438378278116863069656476868626245995801332666864206757524284800157337534919446915278285810542538055314894732473143887448541750942617060131115117654657175077119327113807721165070893296639685469917513211137706913249070122017463775810307931240727154105954966362910576859738145443207404644007853578755201445870921311299133489753939087663256395826726905150729219954136056394492681362527508077715217290376897584821512250462658525648122046239810079900177351892928684365584682019914365114151120065897515750259495890622338587101329657923238085422307781470251238634119797274660676515642103802884941898308861321126032525792421885597539371271811287493418220766041438862064781971709359318037984812320855369078035442961197303146696346172270377438190445661632126827338979620699759865244130724482716516378445927918849266713279381463317149685004619664691152918987108257438393650412602506286923197115104101289077388828517521011451572160759797308193886430673951839797026457097673900582746354705341878076444493052037160328904289056147281422872068311088577024605059727299029411492883853549406208044515282595538403015759360140348949216997192702706717556038440476454802246274951588689277477323526302021184163674931895781469462138466894937641738645029121106342722928021551540291123600674314171896922258538140639593423738301957612703784389759389710598467414808304058869792578121028545065908862511731107740539840690412914124109646175202202002071495770769681597267596976638479234350116450242844511989021924960767438159221600299407259950150929738508641184507877864362831387394876537894222806535195059222201660659838193933997856283270000699560016125997382560353287809064414552423791169670328593070844500854259920917967807853775744755639021020414921249537154070691895906730881825372556027580547508728996839729997110830050046965935969328547066201737192502331471681798386087319609849469668331053285539184488809022778974161250871214693222248856979410144965806860688540501795282754383843977227267441862193521116299948169607557307558735236104040789269519279084347235558810436126058010746664768354591641491117317799742195247804402200810335690311043766695210910329099937452740365855481113935810824888358384397831235173880265648040259241669057009495613993721868393542562038045611904405620888267990655846701764961374239295913701417817235721105030559519761678495621714407182902125205796199145253750846584543874404639318159304730999797017196878691233934200743597708655283751141696653071112761556720295603556220163962480757722798890366184226606237929209884798144495514613476516370403459475993600050476445629397182123484966900468452517586191305146602313607787361107799590537362232554881618075399487071431744374842517192669043159446708900039083421908361586348083732782228682480475923643149997038968717220201382412484371058914676107297683415877729537794953345407106139027733493162808931256048412601413843395123230050816285601597401340769911795762361890363879105917516077013253249106418187196769652001646975266679540447027910056063110567280002370689060169188178654027460264442824663368540266273764692732384788868922660313788546888187456291085390719036312609555069445780373908409613423308569536931747058965640284041479717892913800317871089138352642971556101040745192266583579122561019635183667157804176189445784391510731388586844647177548131281814938012095479758122051643736107591071389928315339781514570280661011194765397922195903023495733569861853091681588233768420527496096948955086907399843264203048533363990507282059080746356807044500031171281085658097377485444329382635608698774098188262210050329889370347805716072888530440380185073139823576594433600136433477292126805316116974194755149339226671362722010992036496037239350457418027668062656640662316013778221135898262587550698640282936207801720006270259905914750732470134349858202007010656801423521323320630003995702380219687309171970849578166570901538957557325326592483074592755377356598634754263412104246370000995773851523186933450841419268152792305671969566154437154694457221022308367222580638089833262414141346984421810141280143249277699965995020199456009596403856215687863998247172195039855490979772815026478188060080537420635176796377718025596388166777945310041833778186429336155309340682540082536922805949323433261838498769312623083399920321208050483551026657553984155588893364701002893339255313336418793453235986707423771593485574193181332208919897302506905565436549302891571795502925512078024755246887993798210874135543332785308711732295216963544451021299961996690368025660921082714147601630994580245088483641364508840503515469035580124333283118316439906375488764791000275866990382549985244491664271252672615751716489608376546400538474289587884566321043891577293763018706741586606204087419945143205581115056714358727610595180549522300088442976393160626313707743459731440647548744510660870673704894120075433784413898381468236891136376935615516046515363167993267282775044259378265239103716584256170864938433390740284767814335667547856579675402100896322136239206187919881436244521025392554923439740473652304865968659595757843385612746382499392793562052351748181775974262286775282903890826734656956169209304198814956192099460260970949581996182125930846975489044345738394516969913955582212031775292753318360997903631110330111622134612469019346422649659921600695783672085234779022140471649716055893760758700436652243587417836985240870874304658818629239131335920895496450460063637634771890042494355256483700136381821867913298087886576517200169337462322096078224412884032265486188305830564792069248393263114608463319750924308462212051424164921292168713468508492026093235736571667798496465404448247439457794118979840624076177184106365246042722204130634212124277655691542891134441135781512077857325139574574543870264339895219919154475196932006589740850063454834611957177238185437273124502623047165025644716462388209871570695529463373181470916390003913205400108176244177457505339951323072320110933741671090669468518378523816224828321487105562068273610677327197770786228922997339960199894326965405682333197487627469879142206290359952881458249032647744966815871740475602198180937305374840262947199424357788056663060392679729730086482068929494948075113623309999199398674086859960710735141773733195349835106781511034504915412823084616267444626413794031128939805182411988526120235329984339900864466097808137251679237580492033070276664805029871342184934856684033107660197675610508576408342310895938497139288695694891767869524179539438672323722804102834786173603104627722285117149554523617124592826219348438669265430122658516961227630190899676715527295796696944916599569277083853136155365069093013691811047947531404316251834197970844235208497404456417478684648230516883199091322836205631408308156435794013969302119569500469199666939010049766067809396687940382249482789235786291564889000874254704241079581252187184186227312764819653059257150247937530965247649820175550560323503719752089657397865910035326816717416825587882822580937810692814239242627356490298284179249261104089848616743794800668913071371928832389835506040966466644351872869152168619024256646753013968902952539482159555707771244645529651749292210537327708135308472818395373273035500935782281581934950177811580360058944201791386048236794624010917101714658033875228145953659118749780700879835449740876283203911125301558132418649199551308605394170781608966729299212794551430274544810601724602492107477202076506247033364339765859857191327538886065261371410868822998189072662526336897056294044654201309323420862888662825802594992613443268548452101912359348680665983300576972928578126519690906821899552444868976299273240339632736435248496556919380143932598628250770545282291688343324287339787149796834272681154677708105181698484008294822812769865165933236092829143455909392471513224752057112923607366828678747088643452914268752361347003001976102474547404667257088388661327406483607932593631496543705477062586383798627919555471929306937247757577355698420570238488081466313457349435526083132392662501549981666955702965760067232892404410600439405552873070275704476754616591863804867851288377495539936839733045081878267823415126846691162168128559536600001757651268222680477175275982749061090107085595412399595590080282809075260947535129616364197585759882044516218711821632745393375921261725272626069704466790653021176805042475702232370612982952321431058849660588033597834387168212083546408243583780366735954210634458102460285749117011630348658454186884521760860955928755563530052743898468128210271660271677831427239299104040327696075040517532744481893275687081672585861988618543660504241424023080333720872515404556467881560398376184272237124957822374929103793065592365144267047003538412393630613506631028421495720040743132470299140764277443603469050900966943316340158796324276087033135679946573877767970770940237618075579880603431143898868063377266622550697279272847977636896785958241603803456392208781446080006630311764658856426050408797992301716719948346838759836068362418513155683529300053028556610260720431237895434039630975569080478772737185480842337212583097236269265299249369813485791165593881543316601051266536944046363421182860258053038027852172385718455728144499901816214553512074074595402236519646479800359650931821380741555420282380839987831718679548341369719732319121009919131120384367667412429593396213359655156355741039276083463150639603770483350176909090196145710500021880323969982275446450295681309493960191387271957160481196641720328173703321528351051621143299642959120328463352230087622002095494401576735258653785982403137930977784321285904694385907046566774107498861298322108211094264494716916034693040335784124751457151206937592213012728078350430405864020303807794415653666209572543066777544661507305885983411214733892372934264151923281548082221132271242882454082581980297611291011173548296997286284085218190834565010102990936646327143565918485763387483136701213185701077764679170674901982907080279178001343327261118201483301287781630243672956397258563716133267300245271538262709138034378481306187162127849840793174875445986789889408398615878349951600560065762730116148001073633689498288517608058524618797796822679591777325309524566703670464219928470894055964377060939999944353717333235170065630998816867062670750945026934287489086080348367049665319171582465434515509923912538918884091712604970458437845520591676687255048222579681801267218020460551016672272928253698986545879154073387174263093916893318853438461745739543024646957492800174516148259644200469178280491574571289232000151027187784667820060820120856439406432945566633692666532370711263644263074701325927005305779299973738387865199180276345294586370269486713721964093580016382231848127125797614287295674360685063263708153878461898754315456201582692329783511075938332334872427296359845713790672621948571532928743345792615304140823441065268912198632708354232768993416994393304140284930294129064316753547279959443030995555506593300955257683803711862898995722627274533931202463287751227608487299289473533375647783134711565672967886853536014101061178202152832176325778800193247538110829564173156832747103295602398451571476713453640554944552401348077241401188231075935686961709533796946512555051614362055113027838401357005649323779474907032112795862036610325045106448532405936437838091454196200733027707281757821734141835253575338490809966212846904800133473000952784144289366779472437311870324527060799956208988195219587092959002366991392166899758543280822877640003072037181665593746020634693554887243944902774624978774266736579012023540678708664084831136156640075426832690834367103335410976808661596037244446943495124212953328536662116932395281194610369285681986451088444968464192492264650850038988341565050900266490966834704311881316800002906479224987302620938953556112377533960777133637818670409884513498310778644980190519203974351902809391531422870439136383377923231015125176713214617280656863610489263805086799187959779040476384713302891331848337481518485096030935476378834724031499079151399107428688530163602001056234070836351250032792650397171601791983137919016457858903431986996805773642753591844300229209410432909069031802994921491807512672316118417090126885069135562497646313766126010143094961775564635600180287564014384083791827142740189587629622955391554005254863185045264587133524819823216622553481883326567834084516968056446963814410979944766551518469308708525353746811151966155452982496042584094949710588073567679404757578910596068515136216043234722514022632470256163873607210780397475454554525843991622146423336438840839070960177552977856415118722996658530380070233834063823101677830054183856137120657119707993371206928422789375989042555472547644788792733411733305732452344273688206727504006744626661994376052702544419290415294323971255246775255078360245973852674287527975639553031829390318919372612843810900254201843868399249321323658621165727647521027507109967891150924287415926576387973847760103316387606244969169002672786771965234186362864286500677772104116091628983651023345512757980461437354144120489691242354239295244859587459823408621597835552797597716424584657185563290910213458784627429452761736572937965422848382789490646391068137071443257817534163012503370267147276810927690474845971316819931194515928341773988465533504102811080769765585090461521338715453984774601227099997327928244400212058241912668927935206008111902030914161732349409666565715143751328191379006660050979193276694296529511226402738805575691039820073871690840363958127686364845448536840847157339665685316335779912496184412322920399402369810793195839244367190446543758592559960301770131415711300171239965943635159599892675951726244441997935437742574059554538930355015030702671199404644761717343265137689437818459222931342871988206854364186214958985277604072879221378636611431104572028548392611462735608287179316522380687408894839084765161834599227157391294833275755750821144259799223664876926668026539777680587703219213915239540939827686296006080732015502762616797048647059335962612910775135226772188761411002184960985908405165163692382672336683668009556677134056062431299733217466811982597697520751995975273481864327003887462006447537916031766311563188187391761582192355331158398450917585147652435774834075741554506862108149668123700821172392042404862491842708817039382925537573670733475898704476633458542817398043281336039024585894723808081044263542372083848721520603305230669830539549436531252408289578705061205304134717596879501406361408809271808198191642908833344394713823798587249809082202302068239300772921310679399899206190406282545589193540575664264273520700213591823522836809426177690380270435008269495878765234830865627580331233113687728365659999238131297067195431243934416265972202470009036228439223360914666433160428021268091551465025670797891017300126503603562837317024720456007844682126838022816869789422880158802615009093462600361328877723764520063160139835927718659371317858119750503356994426136989083260760863681161154735022492768424551011090393723700324168016966316498692620660512537066948192812980757675529898780759574283724630765552026707219923373093753850061503407412414256437233156877160655527230455322021679935198528712688135314971193220582050266078912589787020829816813220143336105874328726913237241112160101594519696189906144403383996307584267644393662500297317243236572473666638010720617232644560819279397384357091159407981209779635114024327760456086363574165632186092581570762421327624074732679417184453680955397999237198496936387176194738085232886867728194183250838974601349812314147868726454254819348978363975303779841388304929184117358548732493547592571760014475522383597212867826554917933991377758034376012804096249751365082116789342748449529618261778663745064057130954147417173436106502474302363448807434679688449013754535984999124897217923448945818318646360527065779617477672047642885742041850418402610752448480616457248446532746024927291916375582620240752278724296000074147752484055129883998458693862642958516313620115632369794212660396570156151231084174401003541058812314297222570003753912931446631056780217892560154411867353066813637980661930326631867052070706612145636369355202119091375332414548065234221674781840099834066865326984815690496629164850185213560470485383699894664465977222620716694412611184406616376810191292383756869932843455366178875138580188053686880747829871306166364695066724834144173415474007500508480815592614468397138604325766850681928277055508421801720185054826678982007523097526036373249168231267562066811625515592991052270288183930238653906157766085867124932125908222185187600599676619532130389745892294048684932378958358616703324946049198352974438960683110098269362886189811331251138507458309579729627877750257148819649172406644527626414974841866348202691154329617867498785046667759012243887082379618314380783707799244615911305521784020637452308163599399749197311975156585835172978487018669835829853774035502710169160769766864885630117154357525768498424161106914749574532198476225954239618340150281656066426808270337491539536288045833361262863029253331588915731765511983645992741237141378923701559155885791975412805081046043992019388240371695387850805906007646888319027004166553929089947325021177021835615054145717174544515250061863811866515367247435060853460160976600919623888906314813463876394421467440188565301514941810815752723497650536202449822016502308977857728201007425106593583470366307241629694804157968522356825647914719958352892866303706754732089164780183206606484794065199319915091195755267278792742397556255779765519599246397484457810098269635153474047399588847004279541953193527603215922335516440620314168187455086415533266706304685804074849427262839223771406328711035603700442193329111702467879163151281714074658289756626192784730204447612818807951212804928884799640398585600262335870325022444184725710567557321643669339074121646553810371494703175648729272519296652780847304144577349166971450791877295175434243319528500211857844676523015972735029073810758704238361409584091668386123513178837246333289100198894229716419306202823190628357747056885549295503104449130478246587651509655209044255858981612322834933579008038812807918093055099536290424187432174751795838902153459393389019169143133382505830099621849848831736800297873292404768049322542525774825479583228849937483907403324739440505966519548725512802861521450200624650324548941384764660538065161710409806011072143008796244685605580721758638054185975856448393188073980730541861665228748538082562624472789368963074181650898510425612416229890028872769560589988297487789485956263636948142761716216739500342699434973308639725528849093565496049892062290031293504951401163797656964135472080842914285306321681759621527075158980894421690922480531964621025333712025171722807724014723163376246496934310515851626575468897935012118038359218093414648015329287656390263781109797423380769689765995987499001478531324841825013100896589430612661003579197065020084079071609158988950134074037398776947535921404741180703415930596187023583029206691303260516971527681924627178738971149199081978171084316264176008037023216155082629685918381248829049434510729154334571032378784585168760150678669750542251423684067874959126440974593976743149926846405345854887882881479516341473508844018852966907441905673065335225631421363004814474141959585309070296328966944097580902646741675646071250898135453182994655295307841338270480039339805600071149385632818521827935681137066844461754794130354940310994291158789878489888977389045646160818328421877226070321238609191976811164387898558816187710703119875151194875665891806027393966075074047337742401802511221993050664527255831874784051679960315049375610993976514588144098276161437807899475369594469223272435691180205786171764351388146331239293212183481068644069695584342504275521853734105419619975281684594092941285476092999116663534299740066964827553002951608286121095313272663093239609344608891526502157412510264749733146652787311677772880633872846824297358297342679623276371126558956052954095138307249370666900307126930773241398235692199159338188087581793652596408788192267840451019073462686561939438742652904642695813243098730233136118800878488953275751130276735072642460461719655086766286588018853752136185996385520487861882027744158009211029780715645202514659234538097902220711756880262648023391996127254566781898994306914554855452254091380891163900205621163758783873116978125950234625728418155510987478734704166540007182760591945918694492461730666364424257510360129282346721641217031671423373059905624358926635426740842051259304800948345394361197663527689485355446493268315219009921983491649522603633536441708808051153463476151667239758280910043441115990952866192224258290019487871551140430487952668954438243005061642746969985498130694269681686333002565240408933252832407573054794194925436470535568142466788348886506707083460948397362178810255050557311448986663207287030750517376489054119234134560980606589464890994161663985546664433639587126583457546456994964412116231775368944843917895157712138013121482834410310465024332421645509972515549231907054535361917388042548997908726496487263745217055049410021094554393951148545841860631491429652939715843048498037011150121302485006915496267748435957486980288957252515176690301989351544419431709113675055309315362276247740761801587640609783605252218497399394371751273742467637351856478475829928827649259174560265223897927090952695685770148024792115572741205205909918679573447356226321760317533140774256869897255122387774105052197344272978370681600008634160103574256416072656520814749134391181093922982882936816947874158086939547421782566634302540913264452368900151799154207495680795629177067428589764655895430022240942701879840430769016334524651711184793461987529692542911236991236592133344949533279810170456014968449651535076857029937895717747047203527985289442055780879815758868173944282498547560284255615083564372044833963547692668139741975178607586669948826783638133769384288575480576581705587042805307112548012516008749477404311629651486952454347605613641086659851803302540720892933151257466939990666458939801341413826133596523053788181223304531526967378172753982947838559460063516722717709158009373233644529570892566349561442982880690783650638040111409003876815280567064714725343050256661828684856683578091671467763103183748291575064729357499760389734630885692114765465373958750844261603192693295765525538742761218288004456936266955053844489208839028395267907773420262012620293635637340925189630276585272160023267170949789556087599775443900264227266661283718533271070054406746172080566962673033729988044382719319286244551966301317773406746364287753631572217494013233817134004780448996226014674761117700798794320875844070758484116640837687867964788058480778972563935417859053480944296830731962547551621868862547924125414191612265301210461803489265587727519179294598412320819240585816259682988677588399191878968828565203883261092444529134187593249579369305419069945507852410109181214834878097035900359857999927263935591074026591085357843957600650746983234623743991012970116646340085065825196290531108038170966031099974208277384910740333168860094527407827790926115228712395362026640756722802314482467627306423709050381686213480009101136950577238910240963253241163607461470737673481204008700380961997456693520252138332926700129780196310019479791330435728544182154963243506604837683217669057962737024449748229193235845952589733718752810926578470921879824262023438861090875826193459860144739136774241093929397001458998551018991471874191909649286672766465793014056588238089337499256611683464161570853977547459082674508994739671952022804381643125291309734447951783415222400458826817669937418886516192178516052675246319976380404490144092552142022355140660424361907619960276014196920246672215082196546934404573665609780877845206062442736195176451062108747260599755051648487830373411155995709126584289361388410216900225285044386572669782235766162394011647054383568643126485154978646030710178011448662055059672247206895917871305284640990124629475787422509114945589284774455012099139069502820567509690749887310978042296685954965198543969670076235486353328148655541512501247692906698154577164559439046972557258895500195656276444554694059514899218003385530628569135679020889547511009986334550775205861281241035528721241606888535644074283444376660454466516863272707897532781779066070389955462184636114044935032502851867399761584122159117524082787867911802083628581969115951677319082089421786165747457099586790258567659556358149120850626833304007707087164997104129719816344806135453535257374267285136006523632000619356053843799518516367623538643669451887113379007950268301918961629868526767552075131080685185741045497317744177268602584810296595802235008336188248018654599100364950574281084491050860840568312453828294502161350894918603404420446223106258894205682548814392305415427497862832928317871400074580482301373651123364836577814446841854915080158957142375010694904616399589006955125245278536674279710412366623141807814472641133969566977690939300804394642695343832596116755025511800605889594260262349271843288550694285018080998783378972497544589268816756707166146767354451729600915131019335440893821568061848692565138213103027040380289718562963417525148289897719313817766022677703081210804760459142330896974104544272291867714247123430644954233691478529103439193614118020228478984690157304412059114222405766960264766526426437241778473106507139382516394146959532074613601587446008905196636125416532134398385423067056436975470150019734961460768990373005124183093855395821770923605851346709939622633313705198762847637903096763367310086473993324181919317498885033304888455673299234732087566523057305137589640322297322829367559302527597717096802575759991214858810791296322913860568947853190574222932811698358405261537151228709383325636952609544095882875655192424818300248029745582418139551992850712151351605561339399865878095642903086806760127166103620364015354086527393073741617127694459106864051794237203193719201086386019020118149120672730770009408057622144865196104990231797281282162449869754022911952899382438325582941018946730486045522266626188873295064946160953697063176355299310610365204509484775815308106401825212746830317265834365707747326745608750719223385428362544615297890000303165011438443008391890409400668102474346807714433218911740226317520249975355344142876627105394790571902373597170514008198060564534621451978131379917699779583153845533433967198101884280381471395042356992690322913914619649828707876338632470276862645710456351018240655464775832317622459242626866638809552900178266244964125348712616069058425447460098037894996181954398457827928332770072316776387941660560063599819607239856205001818868504607747222737087984964665483722312591831519310994394027689946356165969369991441699663703072698450547801596279461325575634566344671703278688592713349409803923506825040626626358185719216313029335505159509463185763292868428166323750431323015981122880609957111091291033471590227220586118688648461190677659036318066201836161446230294761981915991970035499440456133198226729777816900378247977636729677657334779709250176401589859709698087108182088499346519591903097938136105706246777198884211528794429105718602456637067198990490396992989496902944683025239086028878921443962930259345361520012643065072226332261312261593647138727666053918493680408869255660193109400549505238850537824860927457898192242600129386493918381893310246503011167088986110289461500196614418203531072468705284114286793135141123570789050584502334072743439310944446036589439569657396043545406905319226875296044685711278449186936148518262313848366400938099668687975874486987602090542547841469707279910660925251243261893630254096173448347115181483299570674648334081420859070256500204882434862938659759534136543237244072194664710036981672726286835628203230963781806324620919375114405114228129741550202040877738241591338492761518263250465325144715870389831974369816941966603877575833247286110310252605969116433110593414392373466635398186083177166060924268764926205788668015887402039793364858905023422036160154750167714275404442863199993776911411082964718942325484247423688976973394463481029440820020915897206226998148893029251462181333934186842584651721724783886784444100893168989844375972650412843360442714933387625554952861327466486859768383953382288384502157002801600357245908460932786675367477378651047213540022889814709101687846931847579883197903424995141397091421363199713964338518427279784966387698560162617800821490217511401626820533740426063845955609910038956101444899105936765728158203886320920654002890013600108794539894683973743532771284098828277970650808792072345295065309734528723421018639794725836062143401176801464597916556748907549704097089612187914381501535853173540233824482115677915022461662269753271046839892422015927108708039891526791993371964597550701682780876071837223072433689594426411075872393217076378539595783225485029707420204450891606642669941233213868969316579012979958000905263870592859753235124771409515064601805508314368803857744688737319266771313936192509547422906776587996258431252313279150521971215253924050643126755467096127931153166560302319570599776856895003143857648379596657948669266382010418453798936573862616189663028064755654457239612149332850030045410017857822962624814248386549782878568489677596845097038661261614336502754115333051986819017949377033717270158578119249764677645484814174243645993709000842678738912524455168165895146800399245201008596010253574242704784722424532380759800979307470714070548587457885724615563298469332161611266989005688927990679285135211616905108603910685217249276272995776918234170184894835017059453721157530889383933450863562940183971031270859749181539915069320186087094015276434914406912904263616452679772975713191817684228078343784090403969697141812417907602876118513387640282147933385137694319395715994391215712600884835131022840707181099773624585369827944893889701617891867217242956081990873788888806139057894393846610700319672277923583126688669714288647863949082981321529195562475681204974945504911418744887834255788427328321505466696833950277290604691024047235421495641244402507910278599071444599610781371818830448757721278723071916870230413973296360168324345707722976441795466026579371789518050448611274133998732909965157096242205617890717126394078929244464795073114648886924120877243599071418025620819167843989469204000474093509743774839591064811917730924935539334154196814745338230603851593867964288667761443144097593139526287830337489499663689411579946532621543184004172487630122263016772523116567508430634023209201354199200182126728037395436142565848475760708695640039506376324138699369183212636170929875704565279596052379853396931530386086016597610757544908413252679519385117850229642244276031713766394778059172777122647479037826102805442174608301884505183535440232959304406088253763957455548402789618577813388439742081714848944362057019006319819687949416996436602842750088197611553460968400636505949354433544064918440462683672871773067774286158741109505745916854967852962867186223203446233049124117813885235234760483945657155588021382926237449040525650556740867899028273005436410139304159778281778377024479648872405663997138778065016540019343873073113673426503292772319037391303481902478519965774327621254804556786911264716634075352764880970996875846864396746422808846349090077943800038655030333341025488809302190401119874521422329854656010799536713765632783992214187535825290439258275900946140776612165296721989031142315552132130031342182558339521378605336951607787417405450802271264366912165209408779910838709548661702602280524071917060142729924074582337215875759465111477663949490456441319513047007492826646206254199670657447700918500554105455021409314506074150080390605556747583324597261560742454551228731218829113233871817202194627173697823310428370108463204343897336636458971118805533975267285240651994053430305359178987514589683934634118463607605662450222861995880713647786334615513798100812102131402612550009393485575476457888130396062562854949075008597152964089581188144821749415469306955562944757461735904941869270338154816624960956353704925264744271131832623037586469720477369912294939137033110132563419542365867763857335273247283170741398895832595887885487388656084673276059068384153066064676325793584562236442425154638791769032294225626443323261297859497298063260013514553248313034689691072740493085886317576714227524501845929544376574433466357660730091921828346128147001093741331309977305542855693587333478557437884146334591479878558177347823670009721897305243187526497499043502900085699411198704182130978061814649682878888510467181251630990607491621192570340064745706134328729115378942647601078765691182554050143568940315077669521722901181133641563797094904832342466395823474722970576429611436061827993039679422953301694284581561485203241123638923157321959180761634326367924277073401462517982611880309887699463247746580595495860282547214182573881944764834913132759599702426342593365512321125889157703317837777573538840609797224303169079129578908724795746965202096507848709862054688353005229235231248279378124829046296246912639746156186676730096688774881529771834288098341999815658764383046736995722857935343492283328540132835447582466038897114607666086335756267910258089274655618840762338206760260545366262552443810407656505175008212686046040319195779428874311346407863803957789879240535691746177308766623437890360044196103805239037851217394438976187758642897795920785895795026803727855385028322173560223417884973216237569200466208409368472335147239201304698151542559506540023468630424707816911744301692722711973987434991444077872226120992757565725217079378683199874011387294473435236570637510511653995136853369127648845855749912061730194279939997458951236551296405394723239965901264058347055644963562131406854171360272045960749146440785552569756623644037067832767827860580959813139910369751722548306719264757116680123034305415436081743954733834905078249707973571085205934650950250997202310023229357415784430221491913420048259932129256144945115500973872374428795526945526306320476078294539088798353376559804580045694149089133964856304575134669884444248044199581947513983897642263610201251653313078755816196016339457482502610629346867938668065177159234391724154117076230344236674620493993768242394617858399717710895100222933611087369035164410054406609333560332061664674397883586195845956558323917425160735187441196313808524220830607100402749840493479855160558289804532428816896599321644152838684598764156404219975785367953903265957320677558251759560277112627287534649179583107754002578026508807597819749447792117345897983172302976843610986396365285111277788577463350513936418000269160068819403458930926630981295021244650275080428154581487332635398914470984650957763147695384771680376190424339006923916094665350704107692389041687768580577640638364932996988376814530130315698834107860575772707823696537880639347124486637994188601738427913567266371655961606047377600306500173659894400140263436733343836277445922341605395672018151270622246859925076603628219118381543700772369623858055716841137340552276387215497250734406711169302013225504553382672994395084935347721595577922993841977520920996758678309740887407842734791282213321672558264131504974288749665133115578201421221089521751586167833930561441104579208026098167710100512614747106432140969343800285880476409842180859233764960588958719255054520773846623560634976228636928261140306412783226810864316879397096950800626210541198518758362166493154514962850272752434440139436699395849120090260730572634441277491091265578357152650501778838896272401878293263638041916702775053081894249329230685347818696510866555515437912632293059987211207387034046899510848120595847476530767947226747721444477107910512911134527391606076945893133655214653689143335542316885340170758721304685131875494372720804230399109277203783032887011278730084419221818628509830604776824366407589744137376435643089950594877773311207353839401833022338689361728162561800394859460321450590950104276547823615761933148621400207131359768677257357789637822070866802848352232014515941720965431384837905433749473384546634680969793861779778440689859683305010918333141128317074308966839751802233547295004980675198296948121844363175562692093218374198177517508824006399823399377256055466254847145522356323880827997986690847296176936734587629864873261631734210346192838178153107600856678016954251129142476915938842831078826120568973955699955725875165973488924749409021086176959601967143938661873353850849199216824885079386151183918063849304962133302246846498089930912093913889123232381389590627431403789377105230681527104278498212971199899938546606780080853880489690773139997321210898701050746093478455236616618627024063251955857993714457769591117067196317171921263709956285554839395168395303319778408822354859678131948404346267394388628157377282316111907815265877710217043668607011278612924938047799465317889980955843709364929654976804786697144141105056408697677035801905098725740714987417477553591081074849866809773531557296629421668414985663161893172203225768894224744013675794815685236426781355367464157107271472567110260691863974080508208509386109704022541939974918552307312529726848140267484672453923060630159298638741652327601650415982174758087966957649537824911351745572667916728205305469503076169023551774340828249802764639618069173249251011702604588124000543998063337254472339128651807084349166451083286532576613421326991047634307971674398280183607689053635053391601275600097998822542139664101845814896525340996940374960895689174166605153430940772494832483791161521378351151011779690108555095995005408733339640049096709506210739610941774375842078729386980547421960957682093041937945116885736709571288411826997748877172143810568256887193988388284309215632982613993035336842459206295972605814424974345903296490520615128281718507576453335755188076375162540121603333622751154136010793342562288154517624881908000114904036763386708230746052560391733271990493986055524877209913575815880066446057751293503526436485601715192346849346677074909336751450624878669664155783380137051792807551869424131305771927363906647273382044718153420545813087772419968174836437556672005411047593714746738448356785857448390748529163952850781576977304722996408567573816283298674651218541618086740276313127228322688318956578819179769204397098493307880339393725188819619912677913735801889917644550514300757011548899146979661472024445388692837849921329414909564442672296631144551255417665555060657498619558041546047918504944269076747706878242790820896240467204914317595754764868706682730393964439277303899238117069891405929493567945625789944119536758304836394268690018902883803423467852387642510304006920309361505045084495257768243710437076797187373661691965049964121003480056948337459561842094963702069732913097203693729046239539835326028307277109601713908787983390243901975441526919875811908565058111868948308013675050306480179602282729473900293894065605771013062484113802319065674318793013008541801712086402061308264461110918059028392657339475117774380179598508524522180763464011467071053959424677758551334024663522621470556295350131685984822840637247364025820429451908424485979243919101075873995458092715006105764819704629203955930458107353437286747234671359897243557377334908303084708041858892844681175690954055464763309583431938362716428957517580261243365434702118079498301140986480426319113873346510026387492485530026083029277604546204622361983434994883272397316786340371703210994298886294643279165742360164153631652907992834176102305719958850669632025751745588721984182660372207325720538098480066323988802922460950460741110824065523267728869044286272386837624367300422754949628270807135016057943146089461707823703826414845219845157474875230624939197633080937474135457936900756982404242961998543081982331275809919925632491789391999331146225581141046167632276856954196965174655993191653664880912658579532388941082047263043398111395315030667285875844237643945007854313880157397345349727781101265305150902297983342568173139566898207066066613321970158605095923964408404692842965096130949953875248835893593545095156051564454283665340203220998614556811245681858177271145390879006512620956192314043573469378464326363075815531541866576379686094848189232631194396730096032814342554948359871769722810532297409609793823927413259154882364046794397470668659920235847783188285841248597081788786342221784472763204860114174386947301531216756789553202494525598331446806043951815002577276819220357875897629031355221681289722314071855193733645133808890721900765711639738666590573616420045105051772028651051255494342405909568976480863383431510467163525806038003921098558958636078739511162403452343110658448390193751835862837845498039496240508072806917696457277513141394672696418290344115225798504930606734062905892680643451668481744840787896841966910992748150039969006593803520573129443146478539972424839619590356927600144624898991586425416523289615014578523560827102667607951503801702824904981069346259323300948354223808735891235890042705860949602676199502172289791361367032087751420545041376565202024513098602674828503754754997222810530842970674027890120891842781757929332832094196619295660436822498439092757355941315120577323786468105562661301980649733037399344652206339027189554703339301921596243316247802434596640110693048669067163939436084970826904912965079082194729713022256658850120158433026295761796456135964265634161839759446167167704633125844795895103608035044763280153669846492123135013253848733592419921098066740700347310136601992529343503730405852836649791975019070889837213580194886780956497353835263196725033790372716164559094061573833962070375663732879775555899692478420682154854333190370288826317141164246631892916498341151886244112220378166806955622676932913421993767464200577987580132564356675975002794470178509520045975597550462835685576532155467831642079740286851968146521205197809398635281873416304432927937890496615608829986521209711933790415617977394973645157164074737310818996228646754541447335142556594199579904944282297208551522542019285515484837598642445961716769085618182538442450547598850916631065027798995278104374352489284245120597424188739534599413903499935181138275166420862718571065362564267506647448324879181757127124121006318640308726420885303263643616766420239169593356272902508949930685937113072836355544640778192620591514303660180382509380222657553147992384304923614342117122560402707289945713642632185701344041946378269812117618486172668377133073581520324270777907421626544547554033701157569580265329068017161711095608970840042382339643121608003127176745279880707096291836938457943596376835794740579956133718986038984811983709843452694170435963202601350430249199819496557315988515560903282278466874493647121821093669980347768822157449985696258865329593639447156853392802248764195588734535698247482872670149720710512049573550288297631608789523304617787953394534638064917363960802334297633665771223092124403178460623127974030873159022455660811007754784739826609411805514660748315368064321255041058034886987416525520521146326150072858713596619040950694879997290184009111501542198601715231492011718882782934342691297995700493980133828406187800926949126349010812829242538152239442383055791114386556557015955568339812262391364664423547402105300955237660889839773162188905290376684215204572839419890060582320092778333732307568598113272135886007837958684870466490068776623193792000639968401597915126563810844654834497370740164715019986442355267992118255738811212844659984436777751325363752456750604977600748377672607794764306516457830778745947992922577389665837211213464664562318411825034470996546603322976365389551835243687165914724507323620251290567232278841733719852391007660049689680695576138010989794686678817706126013199920714044501020792135209209946769651310217449304472798969402002686753946663769006568780222445174770142158971401011081118026325672847489268896516495962103776170441370551332683113090395045552293272796221200645757628805894836613676347079247141213957417232181226833521314658975229321520626646209265552281024451550316855865156601748684303010949467198896983704516886789563171686651293079258073113144364552973246717723806349134214030081453427540906227513729666327147660875429489297118654766635357573164041231895869467750646662738088108851909696126530216812204788673725432290982287257318059475926861181830961539460499409918913184138438877687264177925022418306889764416765523671022276459535643225774039011725077973763821782716256958486057578624427753206250332635861125869113447597459772356135360810980821590677257846623659420936296154252149437507418175319650354457850943499990782981122144121751285066113490190167020653219433181018566382386930482300768405575628627880435070690186603883997456748872510575607883135116715752714329576856988951221599925479694326145545895798453995723394508606432326861069548520824067436462498973614888173042559148309324879829527283875734235485969330940730398670484655911084422183156918722324878354900220099346156523344559052869401926860816691701959994903585979726436484191837847480770657504579924798988848728361747638565299427077579456551923608693525014517468800029131664950552610944225048452354624268964453355410651622810484841895989888556679693257350712262146150727514733495564327833468529191579368958193356386647527356646584849131227569802094067428434938490765825426975448045850986622226779445294918673679667142650167268520661252694405946073101166338750000624102594943662179388657531871456833614540072018100116283261427108877927891247768001013583879769030335538591654061655653279595566105067816304443101668314238517976627128379060238099227443615178174167597356558757671265419061744175506909609724953651478677952874329749753707847834470119893187034719937673476293223135672559400033457510958871574481300758376435008201723362595436845973094782458697228616304764020650840667180135847337576804997163432086185958565324826327345014559549297054250268604570542592904859814613338090996532030476926325623491894063845234698432581726896619013518296078195347433906173344475438649486324890105839285622833608606941857576244062078489218955853649741917178467170552117877880340248219753282731991749077587270387071377087252000589620135831733964405027790605465283416186578162043416440073764997026277069617818471354203379794497864688663196034140114681263627079736239395261462080314475638952011581191761097157234198858658875725808247778884966494161758483328603691448245947522556582961022074075501220094403555149378719902732128802392270807754968033153162663764265206109629036625770803063102001226436965426202845107087430513756911003537845884522015079506936999499550099841977678687999988113778919249762204505935372269314007039333775462370209671018123080825035974631008903087559611632974242427497996678059504125487722802565769823563991880047863909198590950516861251882681015264305970960198618854362709598490838003478263052642384700660857093097957359756098811682448983399035539782494779828880702301529533498273264515180131805162358471705663345483754183111348184105003107459619771299009293487485883369719155934256759027856876350978876965294945893816876343355677033186070168025626086554692445266104271695470409439497943186707257958987197531546276182059165081942507763046498969405965129125928574242982293667100336509603016464062930578731959649313959098499740815353533516481557546035222040223905479987907168137459508013057451758638014199185834640199234624801262891502937953629405371697926444127414594854021523535398783244234100379601318407639012585859412932355001095821879598052174799781178743413099507159052706581704913082510950758182862373760499846788614312640045518857339118502043874021590334488480759257985362732457224477064092055172226238057937034948796821557344577108621085998353643336267237178128586483093684291179098361703669712964046777194213559063973544930400022675123847271933921513134719279017885367508991340686114949246822748972636648198507971300173276757880234753207687020063568810040753938818463397688952018363413455797783631503194649043047265724228622710248536296857491522667777685068669233344521859148970054082135430783286025381365216884943970144003972317244486451969011559298240664553825418232640107209690514609222963086867563306333997325265274041516120049239765596305017515757798478394684988519799008436871700944428573328265294770755648719947579077064582562223953488945439678107043747442898219543780450486137326446020487815407133356224429617992454888447062174802159582506940044117306530614423660959071900108812769280487016682713478622604550401028955785813745912382419489485262839441844049823559351930488782587859149241697039256975673821588005888577723037551074474609583293048425330268887083944908403037444296449976423034319374253490765101340194148504526359402299078990226396935427356456315423060776704053186193294141690349039921820884754091679466259622181960498249232261447317123335543624472385239425166825255763333188424269519149524538242686412379902489227515376350817629306009761695104646532141819874105472526816875431944291517013465045191490162024486872166827682962977125364114131878399681072815077759069124380813244500602338583889125302264696025632910508052097423150680633146947909393433890486325798177745273981422565412565340281541545806901452550284419791327236222794190345138528481197469883825227390596669723536979713376421084565170414944521686111051168139908234474467979527835478278376417261964297956763947416225825073912710390598553809738924621330477598415354202224320976997509104713433859495001667944292402445039502007609522941785381788346710532980478220673836923597041502655486140359385045700960864623028285503243076638384251551655803915326261321755509472845124092914777197173266021633558814585208116684568512486217245860906058547233133874880652423650266013877479395149308209417274777338456023622593817916233884752633709046740228059571153365162236798418240315886080476018181774526920901790769892701844717776439040213270093469558532708110721993437340392272457578887009299548133704913765914214368561043695408915258255804452468809654684344442370002373075586958618663122272739060960360935129402798534388208543917039094808364945697693089730449323504738564565249946957314445022663264004461122030769804724190561435384046819830784928424443374331033334812496854568734151032442369359706119054433438697934194231864715058766668336525243209486031059748993232023381824294753091575748629940693044856671950566680117090459592641118627985637231047649114630539299348022698197145352678218706068783310250737544639942323141570992365370198401176012912386074187680154029249551856396894688379984894053257331329617344360329652254752863445239747320031552530119539824246955078679419763934256229171128750936362986008051030376055777452573494538063392136391485343154269874898173271129665121802373658779656170874521191750117969818228913830481960011185145831598554558875368609492903537655470439281169535070093638070446899815009848278300158134285370254304512867061337480089557071369190827012295034272359800665584770931394394119077378372267186833800618034224540325914744593705396016973011106595283979375020754874155723679665137741921743921778833999629157164744354470394727736803097542977124557835075625798945877143518118464426097642269808078706196575491198584806986997909352266918636725351651201218615133411320792936820304391401652156634170914958984900017270572571905926932361748662791227104844174273946539820440713782390168401012967300037117211429249615393115251171763112921984351347393866085230814236480328295964211213323905546877703254947188689154534269335281981615062573031205120495121532567620205889359693938708847821020466867658730755420474583528917192527634619394763272573995630264508463345989121195532990035404404129934349537485865794453565260259932968589260856035522114761717440727132266056164444113740867042311761669248679112913146960250254575057567820782320281923083155735744983716276494407468260394227851712913638340032480516856926474834966214410373450031022852131909526834036507856080146101858402867238028525250940583151173477204898445114730135462184109068515886652471209232187043145605934579998571212218570443133709612768743769440197934175162304936863178836685929038189363764998130704739081624092987057191713470676743281103805118448438866260639317751571924363315658282786522379157810111979706017211597268487267676957497494564383536449844076845720590987181159384447724780972419006294665503311086504685154045355428560980721377420685973170373607093437722845918934350413173698795245564349601306368416179162170357493066487984905224183190131073486371319941916551827637558907063354373873855701921703800375612725879242532015275760269147057684568910582073893165235732635034719986187126098674990862785237040473751027647624564284572211901539842348666245845118572579031497320919513292394606891619042727961024140654442806670767979140384105256425051088108719444381825959458741056024541169816954060942699780723345822137961570761391233009704246335187278831732727921807426267013607616566698636455267602886141557035597912107931963996166307865566297334692856656267304568848206350835985217340101690858864733553216402049356190075411985795403679331353452715128024686079100301571533400979116667741879676654207826644843942012187091127960983603782246380895337233224637253011013614982536226459836991763274955171967892348613912003130924224775988821033813504480927594436395753342270538882764337761357255988055051123290920698770665470461550430582737196876396966421754764328914459319563197182826670248379897352397553840767985553078457567248872366252412572395007024294696196117264191535560352044548616122862345296959421392023919152649018438689525296052920313457234496341168878080866702678385735164378831996502047515917329869258963501449563740194538773292484216500976985716582667191855473355207795111421211249130226633621180253471137332236369807077199384044185124082121132627754813267040787382885022729256084173767178787512947504375548774608690801306959968655385036672733111002284120090537842955822888527694797606027095451577919983972149061630241976439946799742722073323986383698727761878065160584363089112481199866274411391247684335972636809153317589472987898227154895513467499041549436753705183620273148877041511309754364152682190951497203406527219080999578143154653770752362904475050226945800147582124976870588651406183821381617801888357555574027620098146707645639479594006665138503445054878573316749204731045834492698337988329494320219821631972633546735891217850497949071295072013967088026692238493969228132836414048780598749158820207670292037218046303627839408553110967169250999716812575395804340305348250197287234535359413157036341320730484996112791122457524157922316994368254062609896571161871064749269245374533683148100490230627927246653849977175460479124120698007265704261459152966069703870972440306399579273274847102822415479537112928866566558290757297205034704335927874083671906331752675656928209184467568889110894153346872359910157172108179677625657187077563086884394438638320095449496333495531234678498690724043157442910798440068115179705264922505570139877397172641530107859782025633635678815853766799256947101205795076978193911430479747970327191226372710032467925605314167977274836883177137551052815025441432353972044799001278881419455140577941157034672777693979095370034404505463617442690815889972205771148486968554801540539035716771543005423972374361439047450595042982383492248737681508863837078680953982404967457118038964044408157945356586865893243750746052624630018627841189018696927495509318922782035312521946524222610918890038223392222377853684515006895474759834813064006210604288841882799449659403576675659378966148611673500477035870303021124443613597423145680729046149504369665719259368229779984461302963453596023656457697479559129457662451292979250001432550141388122466321666761678561294805073204897144889978029760881975370627613390203879196351821689927095450609207421240469814851063901577875123238617851095541969723720591209639982891813296632193260553413943441207070161272145660449084089647426705533234266076707128020940585827670237080463020492411176696031785640655994011843436777098876997552479316515258673044451749143505647490356791587419551480394752904450056455429243325866805973632748220223211814801064499554103833413026640347581370910180199412343325448039379807592312884566599120498121076554043002060628573451498769345162259473555940303012335686018815603664343424925708933202941840263523317587716586792553695354168211608793979264435895109487518460166882153085671293656538352367754438629083830708450550845160342673151955853921259703272539747313152201077255627667072396116947671371500796578236746367120700442782189887400688694810624361255273099934627031949510089454038824883967013108643939883783791084799609153324672238989076570506217351220314082504137856117747706989467345928716538374184974309048217134762364635197117133485575630863047128617650582228206106854743879404081606511548740166282861516914440517113290520016464861746160513421193955487518230449004738319039664650038200399918305771488989844060734954499909438944771101701192024153085752581981542968201853538550597732919458038031283265645036667649610192653399892801263494348579758234839490483244475771495233819124309424466730919751314633102905949723499602629562952533884324882949666438722998345434035434435436192697784301453227530906192841395045239585254537647454582880740364999781368558583122296736652995660336299645014203255631653781734982596556538874930793561456342239237185716602482824773310701387586296702817187834261068582154262877606977865249549777835514104407728493301873831657430228084730880635191196062102484058830850211833652607130209278738248399928818554361276106013474501506635168179386453009310391147232769235883695557805951971159293389091863279756232300013727256719758275299573228613180829907662996682002155222546185877964705233393597898173505521360338599363187369585990976370357320640021072771595870285395930763703653607790400249544176708141262174156614336097403047357554754868457870440927617484150868250738130749916013768674786282154598018753596181060373813329482727524102298268275873605391458806058143698316862259539394169621450311213733617663705328184498023091072293874163513513650193599743010575987629394261601305986180353822438745555144219266623010632527550040789173990246841575264922357458089540690488914579226610000632585510647281338736496503064397590433036219867915126709431333282881211501504937184462441904065107707591626279688600644974878904155691339358295001386657953560663184183685925036074888660978437138580601484910210078240538993185819561847337552073168393735907593195620547610191119847175799235667805474617374587835265064380747027757154466530660932798912987524174236364583708704100086460022257879768782395956464310255119615582884463610228069784121360965679135789491589478666108500325617896259970890013943755434483749612699133672692642724641412729489581987274648266248938262551845784696648405886164153064843410533572693811875697000973612306344856225280240142952389727689363602407102568852145304284807908802816937502653581262043566798414750765231537626520587071007769244284831029691913485223412035816852000331808465740302745383590922441703177532389936374474028408935034801108479176527236350907639049345477927172456814738305962225478284008689386929709491420609024062131962089464216850217714192289189546358014822814054372969733179015167190839056373856994380851992769544741580645131549392052475136263703422665518835063939158394708753069854349497142564867445937729697000923475860613245033265815421425355022921669275830345390182452533555984971321496509138419733322939421123227323981579585744169416537659053928904092094898193500250530725519406094864742453183492577806491550370917437583548546002518826890950370868054764820254816077307818923173819342632150119692711003464755058404470145737655885415745037087891454875151801081257898245458589650604803419920135162746614621853309333455178375744450661986406961463066203312985121249005366995195029863312125857771206145597453537094065559309563182078831567271440292297983788528707047072051790175220273108669379539105202912294863284857371169716322060227186041180361166912675375734929790121684044853258810128279720538567354132157674970739327213118997281729659381011435437860355996102247611941453879263888358899985797319284934492981807370700785349950230074689100164054141222237632084890903106770391387666093965795015298862170315973345403789125825947550073808689006028817741472958957017422795897994014645907210389278744121028398554506222446178863544866210120505271303263952613081661580664763898582614798117941337125416696532879837129414427208557469264596041876870880117260211916494549546497432200503641340550539050495484058909630712237132992633440271395278520307306078316857310254817201585467259385204354635002288325307291291561631074095407005439215372410823571238238799397780215987218201583804190673651910373293998234058181007860865641397645206090095788626460831418447142758894353673478002696892869215551467539841710716814824851072366030684306955012197732218643181801161042887386019000100336305531978136173017676373913981026964775719439261610154853846389675439332633381264061325382799891438412606291949009135691373872623091923307076995260501345998087926734291746154886572499466624676627072465094947079868041710821155493271951240797555879034958926903715089664091622511237713981368879742095057409605982316173125322919961974939795044901869648942921562291521864394838995532365332283976156032691733870912150254045828200607077527472127808997271668427492272150955486817466078559219928179571783198659408827804167385796101006499528903514491298417850832381879324653562524877600223681825163587830195327448353341279480931385953947196837909271911398612855874276644348110188004043622055225861602795895892491366128068651577204500268553138246667927306116576554204990668302231906798285336081764289597947986866377555948190224011299578416181586813127832983739751589878533569300630029888061021367029321117422155033238479363152742373086063354809691612403746221883976646941155238116157947931757709860553773043221089594238154997029751548902548833689728776819171490574091605924237073720409951050172250180991049669277002461021298663414005458649228742388916858133034191218026438743544584126131152266612272885199022753821778238131482641527431767437485517482611233919463924912152245262174193658700270655735685489844999377801617217178584873294755795570402785610939611671820790451877632299435713101893724809787552461259971021474187522044613901614706334847394439019935108395619604962421947423069645270126514939335853953465677861506818858905795276183761157192116677761471791740708796532133395068008145287775227969371039362121953826957764605466160728799562250211793661787308116176558243850194237300350067715679705111533046509228820015528763944818315315081381878540286074314499100201528728694671639555747704251954182797692320762488009055018107046640387083051295226493271950737087073122219615946747641433636426694648041712387671967458906765019745965499000407701483841229849891932782200760919891053387744713436425404586862193797322320042338600326286212010527963699347516153992109344952130118797181923461750569690613968325911069209264801718568167139726024175958276019619694364041918705626852009036036827548327980297807633748874961462738435242286423652079795570291903252976288329550245312645004174658440402228127178164200391803993641654137295543302827156446614242969054474907978848212764239663368554516484914711621517066744817268243606105534896588827446263577240745525538449985419604014825894651150894557120762645571133087175011723052073822758238747940197870607099828008105484163788132724979407514467284264797668834179702926945879525041121618121066723573639452414450817824065000949983925314519021495018154927069399908609721988672810976017110719302505269781584167538084055649949983438912919177729476879856059954916717829334540676523542439028697456214146802079989163186816702308119351303509939517504520660252125532309676420858875252158419842627468656598184309524440567342829857496595595714788870641244690352693190082884691240972681501377962684703005559359739952612326288240074589113007954218556802220753981481433724196005142780929682607024702850457991631556879172146123375809733526397396650872903112799161408212235284811740324033953573336457833181591124224420849712908418532935065829959871580480056980230676101471103530763273165397030819615831408619608677483887741258030747607944252950443846129032570751527073451398514557909370384586965068366971426447454287665249599888513033570453652641980724438307134404797585351160984348376522782624712435448333875026230555549883019706896050651666353703308677517872532937475322004442857887132398039241759303759156183386456079191711300778096553615461057154965631787976504517672542523936545187161554769052989338879988221637870657225030085991182146981330357446554327166197207375500558246845181661172550816455168976177111590779964475107760669535684915304541578179720531335895086670888581414683557202500594371203694662199175954506671891811945308479666541312174125209744929720219270435636748338566400006966331605071638471920520780146522669271331218275559867804785984330162846094556015002640373412116304684243635188074157080086889894861040445285707931289471474275735417367440627712530091645343600632866510236569917594486997081886827898476889636266655030952984327465104082067394781389758759406295529774451873777429973698213356707930043206052796619058158655863096149785175831431840978813441077298811465042458144307936066824841324483232412703249677556498901064179008371366918960222049119514201768593860029341734706327441090517411399226287336899864361271919151659656896931638036211929831824291564531986319749337865502104224046168589197430820375560910274644978954932036224891849971651651115727810303588257214383613731670582036396460483347633263658683865369432464573008397278478305222541953415424529931913072287994876137286704952813452253175396457304940161600579347776582123265399480069199440665591808821100173515697681280157939455933104547608051988801327322728183867010837805393349355258012971721953907021271795077555523796893817301102482071675474219551541110988333792411190396479261222557872158793956330353510318829969160149247235645147102284733257737985759080330173387929260357394100502833441215452660869432450241918920698378760087900931470284905329162331091610068615298407456206465435414427728827083199340214802285411472726756338665627347304385402306274850453286400595835075589314344187109640360601236320493756414767127613322694525340142409327965993934772457667216425817123138538412803090316378261759511148262555176977297335382593351112743904782511884862255674241105004236627063310890742402386477906206195395826750480728049640379926986715907271270926459116831724491210177514023914420633855947526464611858761773050155237763886336206165512445502106692383371186085733997982829582643690308122668557349652691095255073202134968972989911696216755710665009328108006128487744595473298876681847812084607201299772684340490777916600862725526750690046470195778395028056541003746424574267794731299159552916130230238047505359533345566936039210642173914381631286104911174134538592240615040695585358513001821743315871770565958551599825924673310460814757900090697308283913030459782687503067213813740186717192531420300715821701381785358256424353716376541990340783220124934712417639438929784142920595769501713593940656062397082048699361397518281353625924087668969954624263808722425575199636214797196498935988948113076310783097243362118483039664151311151057598091545572634719801134378476879772705283802236346411322669869574933591011654010527237215480563481502615550156946243111918577073999682118728931459405485852289034516863102686931927324240218307832030065925203090288290974778479049659369460380889806527926848062523809219678719068844768252449599025691186968201217348135818355550450382419335941893425798462767062297558655041974535504484051443703538391061461832702721393729869029665989574489586338753987401941911272985823487880100993773929483285593659285378113648186328824429435258216769271340925664104929363263836622714372035466837051538811343827623895059074625399237178902704542453661573806944408863366588461712879361519084468534941960107091174332557172727180720230481248123072445218904514731885255084928701070001386888877575761137440352889853415549221113039350064478282468065221626207840378523852044624889644910826784213792072645606487677151450705453330309865905960741898069463142504050176032085785842165505625510178558357265077984242687316241697282068622357926469258060414544873222639497027582851077007772541486636598521969396789681409170072939921994872180037310026111982724318145432743852369863051699275896372502632015760410471873003147261390449045859462022309250439371962224948869579546650340629282352435441018242925783489897302785816595660239977466139310350706683660804144143062566804444347127148932647878727405801292654094172605075716243115591037652534793529052841288371262282565092260530608117066346487440018404187455641835653534684827552609410029159990745486221549969454009569540046046643707783110956725433702777469258692225274142635689554090244910453890257084273240480273137300235398564705387923732811970412985202962737435023332172569773324313336450915358785523223006935219875164656202661973961394484877275619106214945017057622289463755133430978859041277245126722447032184215370599549302581297608572203347899351514508440560974474458746384680849389578898108076679988685082361713804944800837198912348469101684823798174569407913818278078818340320372115171346745699761638590582962308920130705977111120939071165033759496282237394480035296749179661417568401893933781859579717101922556099158529394562554559565745059944534509248692866073837625145559647071781188321008667702106293773392718522814927306340309603499970612582762366522961264328007542136732483894178472248541438121595160764218281101303355179953629606606361442211030757786468737092958255642319672798784436836725597411917297389098529600605047545111577804338803404156734702041443318045887142635818367241632758503602487382388809533259290586165504334127421443580523779899002964590221338608868242408272365727544184285524199750127723408064496693871001619499081225462382709219103944861753328153511925860275188928512177702593614100416226877559513214805025941052564361067635324543924894234167048703444697968451185771750917680842956465854952112287615801762292574032225883373442702603595839886210174189519722793924664650074156408264983523959702340527389160920589641800094258034281579418488159738653372730507018612597289612307213975044510521405599430392029645009786183766762682849177917190764757350019678418443292418105596848331483270514814836186469317752273536882819702650742245058348739950613013220761970268799369947871006090118155056187334718399816325653683182975592842680691813905728490159009807184720375126901726936755217628398030239948787865336951176174126071973584969775808941414072723331311334881769760966965068659260487267990042125962072939039293782101346359645913451601132829652802126576152843569871065125992555308600385545488267948229364034727340554596950790081439860793523188106352061586771060619783164988656031231048650317733904938236950555545387736128102441987831038843461118441893740036828244547953829302049313006912000176210156611708148303726866116109720858307498416103398233792431882750007118151370834116918479892840619262179677889397928200967948925774985546749976358957109529099420353364031433960494611139159353448009982856844471337941628948839665104486158765934197370942798066060504197137271079629830392786809534664835229229202787072213375584505483288856493012296851834759766696829550243605097354844366385819432267192766553471770716702675097304010544969647174917213051899658935621562451973819298331592407008159265466664018478889103100743565599651899634018320336341741736972941824767853689145598058013578200005383847927418386974450710223245773700073895104925240992991043779938252905892756620425744332253304052548311237281226582897441595361278325531766278058124051392009547492333669397798845115335949527454648656021424078694388867106378163836830425473241252861427757344908516304028123015938358503416255657589316646357603440195018841600585587917093206678536725739050237166053321780282947200976959490754277125060301466935503979353641767693367702770543761086121539335745529503708416930897830784327868821113506866138370175686721077761616311408793960937526457470342917248379044187543061133888113842446355031779626198377799393981729257021615979562881155853880165675471138801237916628431615267280188481056273379717656574893172558593719168099083597456148404756864856459703858234481822707366246094151188397998235416123849221077885291802523106502200983281819275051688097469240133775913374008440878766440293224234136157078000816755114357735146772881160263299021756788447465621946737895057623412427813155849843866736253608815457667056044815959503478671412691504650434729050284118347758927588514706955601402005928482761800443566110805250802959445271293082907463222147532210650693918595941316572234096523770612312174872428389564930083573923720334704421629266829871904427843536892487700787462591454894376282581246674480918756229489731130412598839929522640225241831622985865717749614146218443041481662382444699294495082076787592629001250193653792712875045166687786800328504313811025213844006061595314519526656093148117445582492270236661398233933661879551825075186443283779017189822963455667375880089158318261593919426764635411951518537382046921133471488021084445984589928104072896358275846997319122496971452462998452142351523041219566505220367549601678617563702321245835662266076123604586478432959491788447446719122098035625841738910127336292239524312386991840202290594244008939534442855047050324826097512188516347993926737188076810025843017015022546550743098908604053542281057155821936503564242378475696903175064580512897742975828575453638976196143271627617982052407027498451774304434673307117750271519212860489563002649122071362727314379699603503292500214948114452838580404757403083616629922837795221570188704602445416139862203443719484246001895153969410047581470788402585649642550613455172556302641054388185043273402545384932757736279561692980118684494971332761944027080877614517946310576472102765756464502893036158614565628754017953655425512318048519355892992743138022620575463349711612672871673124069328947999397422114399433103336555451604517640590045137119960097321521364147916495927967981426018898134706850908835125443234843848221981346305921325372375723741603690359107580559874828369502774267793658633538436125248042854120460858340663431212237761552484055524794949859226946425132274050727072757351945926422520728255053158108051426675952922855484810623636871203914900549328831244089345866789089997447688214613925104179995870143488381058789798609191860074753641333059590136262032253994252079674642733244432327687280629423610008803736140780927889487828734289318927047883914573187053936847139138715005286959065319581891506469870236206174583958654387922535901703959569788488200172272391591001058435704286949192220766785767550321640757864722813442249861273057099673560018166969984774872150308497179433624602439817855574070416958044173142678249503017199710493864528480249073652651249715684927998944496976375074440253297335068041747602707462974171587240971287250439292786258401839450157569170216083041494070332654124206255876300841017783521171596123842683108405384916312765844199853579390635299558214151442305287688582892473253960809660690841502751984893698460237936474345604476151055637980115137951869099894795585480104287358346353772873390529866314145930742299432972001069501127421383887326156643480063738292423013260219074465839536746024856735219737859064836262742038541899601577230091140310475258564769695235239916770730033365990745855271452949120759515849886776251896057565092256694965462246621650010886833607221054145359765691375254294089066990891779234314402101535002185516535245585407481071411191694503436273238138642748271834955107954053545699789366471277723452714017000317490283415356993346775066849298776771222662273088496604039294644663636040588435036174601858607558518744800782729080219119399291883016888212387809467273007135637899560122474957229927917473856202872203284144623493598761742929506344613004803655757854556989247094616391631565995450669313716548862744350003933306759881556584895865248683985417830205145252602289958884654828485980875126367903517176714982360409129988961678900510513122833763501009333704775447979286565590217869194865411685777145341471600470349934809483280897318395022793258739212520509176654523997061531524032012480858483828216969637196690699938462225065930368323842633272491112597459032023120738144055472941285506224602312344093493580250046812325486735844512117273599237552125797444905952274039663378904032939031580713527170112901138325841865842589393778270022466662205553844209612393686369615597233767664414037586922222563246842913334247885174009274881068837919429469276580676170924329244537092558830008719175223850432279185743962553370230850555911868332641747885483774351803722023682871029495558631900707639284190761301500808969375026836740186502907753677434373152819425971987789077877602327617872745183769409318375295745197134478871365312440359291216944724625771331027479846277765310285602568909561743838454448102002659230350802324757255671313256578815395419480695557344834285449966573631382855686302677965141166038764073867276965133272476844476197508858801412201970868461226795535208897567148008518779506249511578982487087892252017266541871415402973453949203016797894008064319941819680883702461745593030902498283612493596218271972452481105721006182152454041120155745866451925314937393674127093562680110843951520191083064778889577197400377229921765874024043385290448137119290877710650109066126055432559966137533780980336732734203314892023647715509676555857121022983351694276826328137661232421111266770260919608821036389239519346250949165925902485281227669749960555853248709691436744761316222681072902502656900026216892410030456071447660142948280519449667555745729251132342565621702531864309131966471734306235161040548771560825224078317929894183303465344865057114884457461535024402640888228204461645097636529378855430444844929126681403730437168838142496321675051352908718938963952667083950070362160301998438085037400534202365298733219444881967104697788541851726012866459300297959313716377629662182008392947958981950994643748277608577051630735703682343782913677282583936894356713854378147697551024554958187411861492604486409948254972560684215039958929458061769255664849101490580841747829655302077030076804264084593232550695265614644911280450254639426274974837546286888995639103011221786214114344286950644674482326716408278908479898309837319029903705322006825711014802178193546113201179344665944728860654419903814247600201957037525694954610516524064774247208192794701291370607475449373190565478452504964573748937686441867121050437125036162059728644796186078079891966966604263809634708883060705978038455142779069875191295452886852759867769465696961429244786480945787441856733627771021131151733230397796219672842361226931281728374144877749902537974463632452535956332791281639497168470652042190643092529035034540271359050172758437745489691568156441346195789586026483834941285155574476163451372398698693764738882886818227829024368970385272046239828580310396248488565840518015083685861535148477600827456977211647304554101805123970701476510051133347022697808911255639757413462192906348981261672451284194569968367807003460135249562737488292066817735266227568128764135062063290885913837521591636727258394657290861177303511532228164385085973146654093672248899736376220598001766254293069543610579757336606528707727324219491581864017914356242361606055529650611777784585204009327622566507720394706292324546667449144378569735304830889309083611215288460515448713752666101826699928662790690076345907989185113329483771276576806083439224787850629657767591989739582440081442406525800500224336882541012954868522397745091317104308190965615458651562192088999093038596775489431491597807310728204126573765519136205231206004136899595531390336764039296455314642432601901133856304726192236985911991179475946196369348679959174574785584005232621617540649397036106318527652446852852022283875893187361003613051788383492731507903879219989865020619457680059722817296800997155792625814486927870828646497625474779723321025606137248526961078713687712825105030888778196146304582038275819546142834360305911700762374924323776146316105907176666498126034144944299704698244843457331873896121889593531142827948151744332670612335864795664396863149882143850405523800147840662781288233123097871525265990608468682223284222792574008685480948074707138906008668635954578087692593552270240629033506997971886004229044591258979376432110063401242120018386105882767851617181322518182218010701580736498280579775221125371940912942754776829917482837707721222140347806361356253385871404139395439858804497531042486877756379923652114377124701001852930669927981133292559045295138343659784013617558199827601037331764862801106643221539795674636932997230894317607503609644027491987664509480840691180336144780288640318695808534429537418790842699879234665920938169271714466206266562076928398797813866742111946262946625332213990959854004468493896721279462591970787770341577555384153704376864136967207642535529342469877060201022267028811102787928347147906180871842986137597612244651142296762719140162078711988836580503625498103983087373372466467019773345618826557660458439541661164118861122347416751385842842999082714605559981876464319723423402018030388923494763789909332529923492507151479902015632620114954114810151284875231401309713012480044332577369005639617018888654189496757398000639222415624006359662554230740031955916214315923444416120233089248742919975607690904222694808446465590422135592255966935875461351667582677892943758097386181229040570266663457787420557757707138134198983999820227704518122585092974133054200793364051806025112545397710998017096560211838556611319179430321578984829155237016662591052319936721682251209495543358475759000276831937505825394197261661189466320060436963937040973498219537130159360022197113212260565951945615524168029493711906029540829922260332360474827485477399232904239899348173623367893951446185720021849169872919154428346403267382964900874152221055590562032293760348725725814448170429369539422354484318499867689368598975320457662315834963425860192979993789465187580135167318097418019641851208166185649978994925940383943559106317748436321628496503256102644167702213878487681339894951979428216231042048924718013806933106858484959588187472572148868693022720328812952432510145748300606051078802050441043091638128628571187682897020321130381609861558988543874218275170213347071484217110877472910128340572665582913492463878623486760218385738053123959596011079936546612395926052369306360678724220325322795167142530063367385980874668037906899899353231173456930000377087752739146243084278607977658084341911215390783818981595120161685644549651861967588365183287464249445811161318560265836842575806645117383018255544064491061405724243380459655727767415118675496252552008258006123782113151287874833016717846277199822506974424162983880446665284175136212974947258934550486582081830507635906094286394239770162953488002236187661692607138674913025200072778861250903384268992602266469420618242392019977878599040494970826527993385784106314324374436244634297366368452140428341110132866321846752358500132304171178107340633438571965396840363110300065003400962878090116353175237462442209093831420413603363746900145325917064351172480500743364893189325208429779614375505100896165869396005622654667596121781579373187878535257499763096163711260859339308238045806438039954938346807947491924307311818861250478318565870040696933317205622811291168107806408122552303442214736918223012751697080906681841977693521245471517762906325296839064874372778673206443366125360905811123331942806349499840260064269205113743023845573148164032728213494146715721822857684895844874210719210940360694743460073663105909227331329871486898552245449010986359890052575641518215657598030907816448932544657227966842679658528611325181185299698906557284389583986155255720939530480490365054619601460200155619372998136978065276780043890476258209433448659200621666548497376286949276004717363452631327731478548606499247295114791936766974814585881870239279695246489524510954308230540248191614350605566611778263598988785714775310477020630262276165044458954427162066142112145365296475367921865556496344382658554399611063344264311494835611189576102958706154469685523459511030046969208128413605676223971426840560662055830018305524888974946235666234543532993618349083571869654176812962670035445958966427620006161833206195926333302416012107517607424366458951966846722242747882944017834420399829477604420649763976956075763579996476281376817011628874602606527074474664333552902482416010310486794675064693482282760380496416829332581089412697732012732905151840686148571617791570198358377504968498594890443807907884496011940123672129144040952811607372460846932040616052104020476285513780538795281751576537230750292392005123653058014808205002934948039006418386421875912360456888019915318668128508393799556340283082886327016449338756040572605374271235166166873258881307697364813959498360477055547695775991934044270927753053128331981792233287695143625959759704985506582055241398893088761100640615238035774337004649434808541074253055843534966486536772930516768320271333980123135728578303507773867016677444033075497189361742185067188878668738000497411600284877596585157294465825126256711821784689537333024563791607287462781145845948011037318780837494515442645770217017892281498296098449615231188479193639674313730385411808343968659814904942490721312355164394905308283350536832030234037217437772683235721799664499336344003314517612660518218916536910111043605365547584273705037861685249678488972936391394133128362260244119317047836988575611623665863484752551961748366872272938384882050721762936002149234568674984423953448754591901142838287705411949420312378680484008845298462106198715071467933329519603277426213655349033766366797555047875980957636957845224049959178190348433943310289001312939991875851726358864937225453855381340521417308411943796745267089262830230004259442352903964921190302729459483009661018684144430352676441263987880952362434302203960051478031430226905475024988383960333085070417204717755964903370472080023941949400362927674575878522142661500278776151507631832278484023239691853365265203402584250127682337118963647736462203417290540752537510481921543424871759081299630311987660964365228594302246544801195373562664339071895982915797781903255354916257305356820780047011870712991082532371190684570692459093076565516407998360088860076161152257185982772614406273018949676798347580939783415181047365218206936138427872963927665194930857856680206061405511759641453113326013657942769289554523596761719330098532806281055513129731201851861856836360181004310151342722721525861906921406060312243897113932932072743814848286872465086939279246562837429135337320681540666738997302841331323388721934245337730411017113985414974182303771658932769659015038074504507442093209382981181794210702586192662208095559188293277896048523497411884826980994713979738213588442349857600447277605849040095550006649291159297259039368926502621599007690176321387062620684231454447006254945189296779083630120360409846207217452191070114574625883398413150900082345400111223759313877397741947433571789977749769789027542218472492014742874853880862741760806722346330182808987921029356716909909446754066891656209490690014251949651511062983241142416053374512507616636525848128677224174723851901477606283161457244536694600178027733725314271632451332383378672247832326789218462557485748811470199039288786725493349891406118568892654932603634925417115609257179422271265087206088219228885447278865024870488164737427397331113526259445383508767844473797002712252867692323852478381645912838630915817705347079037499979879083545208057148608576405714932905212763388249941177589827611992215703560688777670574060261352209574246745255367909932674720584146186283100973830930065386178125109941232367445453247990447271726066132094117140404717133812201781759477814104193220657891181855313941494305205183595953479945400771955275206658089304758608925146838620037116091906646771887712577991432197246073254368290299305618687074813984734489255439284071955876771835255330830910845082430925385796805320480987435256108197037206517502719204590864465040453827161052493295760289999150219240079187122125584449725083970119074379130825102247020122114961441603690902082672482354736653435274000201862247398448855645647557492548273143283371738004837792916741901383731254378994734381160701962091625529165090561038301047094966251767849236793478904433359309245472969942744471306828972677324710528893464787208516665784353818694570997283201741705289351062485548165771394083585827407433502651932366772485671401151815723877470040443052958782179400440962380459448924285075607857821387278515411828899888800445403202747357930562554928622579291582649095239636531300580202030831247547243198261199465202616981198314733600710603958972498700675923141921687891551115639447467512675207463320929350121109129204615183536644736765900301251038793494618972858036014442594807101673791291578273012579084342755120338796370509979249245499047364785983179548454695675010314854997778554049211559234227458949468804391754585045500324384440382352295119357313314882451872392014837557209891567317074506227290300520516586578326508465100416069978875352324868344661133574135967135553166727338745277656975862225179716110166068245427447431740111538231638581562296869983659817292990156960772100545333287731498102147733707051821927764966409179269020469267986501373316523024041365554505079558221830780187371709236924442915374248868897068935664860362112289699985608735054825199669385883276532532847770950307082535981267004281850597354577024760792102414621118603559809829014871258867671332819183833527515896168526333929617095324898570431026258315990530367495153773554580226501915329408022855377213381825544991744307382298584045424976299247947698988182365005616432999967416439005333603688444383626746073812039770440188486886027567633448425428486724377805010380125132792039422832242713539938647463421510002854577826220218079205611642273485824802373033481065630367120152331692481279986092906295888164197122320595847292390842749682142110777973826704294355957876144422044181417883873857287592971258842639321487848205292207528717238044180913962407039718073184923352643857561095884297745650449739653064355549755185051766209078075968612891038908967177310957707046232459113190233054459149721145244447795859092510607051312258345003295126981108341056131510174629166943609190062879408683539214857727860159798937508821080363691332764124474042137488444456584078734490880533123473086337260956675145090788234765267717735719833269055309438716159981137871575340958089829923405141183269653924972034992785637078299100871396251170067121596401945431168654096732778643672313230812369373952509245857536985360234693817874190490958864078709806091763793468520494895726843079642580291215477869548841776838943252608682958751091809523554173700586382472430837999974993842235468313723487639308922004854070010688462034018763917409602844432611051959883646314799464735690481653965497501826791519145620774039021402188145362582346555416297884727002832572775539015665794785477113882121494661258669913060775542032252794364071584227616497860173185761608723517914004981891111576772109943216542723067740308622287042611146944143694096406284734180494997570322836074725127397056034779758094606337392090766543803034816116002923255003874897718047641465650041509415970558015407591882465905143191474696160568086347589377271721114133978175149104871751103913669656628271512261110863894692998730894256519799781815216104453061430077833161966544919440844727798392965321365161211780507090788141908283333806709408532581560846396294515507763045383022660912379732284480764449376019853772342093672961173069815055853816387617625036356992497859500755405306183718675075850740932353729112176288510429490956147972963386775114850705855072493286922937755167873547642966238325879780567578014740456675989271230564240656387146602850742951970911785914125974745613207129302093756850004284669183586702642273033671123564113065010964155235592142684440039071222507612799388094505118443719711824337735110271858104631549696045997045768747142689243794190958480926743913702491797207535815978617320910161893351725383171655948806572925944106681678642601649794506166780447198278200879035818250831093696894974786315001830665866326616583256220884278011765674623554973711430969822635238575713891104142609393190858023037931974044664402040861028783243232916344459824774315269977206980865650435830653619529102606693930296998950062813431789033710684532166306105791706796521539983991191727118607050915463762178673398756606859776261296602125193700959895273787459083028389036907913802251233797575965282372118600950767845596180494950559281754558891933920704738005428666683408119489138573730236708311590233790754225252730510076838433104453627298637030133490000016345343127038690566080074089043762990900724221182602666743711283921407622997568881469695501773168857679215351609961631637240660387981065992676337589769046329656333147035630013366634671106762218361539134190993789238137126058037360907627508540270577417150226776297488313991319027460427380827253175524038784872748739711102809802290958802194580353908871084930950745101031441540078991159409941778959071261239823034741699058699571641728487608974692500705244789900974439487466831024442780217268234967045524625134828796953458645701334331332865459676051040448499259030924373115095810553423669827127569473594311218367567196001626118861570617696723749365044892983081174836705962471906532695456549707260476218289989478414572256694521360797570952466871077846993628752841884714395647728617398094463592986619727114970342925143738074141335856367394084436913186325395830351749015374385525630150674248160588873132824681712573458892087124855270455961845904604486224957555919509751124966127932682353644417382319118791199623770701010326969512258110709435925085407685800709635001248531613669439764947784025480008816569417143809670827167279208096043660658155388923782935582272571667940936685824943810171559502191910803986195286047569157329609220933883693213618373365251664555638042512287924716771331898827090622674228537787131598069488218046873717150996742648108932289841801422291390418791036522377974544257643538295585189984442786195732643474527321743522112704425577437510648046952901704717112190223717390805796018906395609945949580632092334749534580913407326215150127185161713149420491147641941242173906545539340041490912593282508923236853298309638847006019181509069654853343381465462146536483720420773012511923171930874955924272213445009808821579143971461313083676262666000235997272262031418602407339291674402507360724599825082977401657061068861761767391038703631485255795382226478061419463279390660972584687128895831602879785397133477105425094970428764186515411794188317996855373626253177173380728889056220349024352730079776810441558587765149646860438947806033963978578622922647607146639497484837705597228682898781887584094990633706804135259972945367493790712549463997204965719279488133532018349959444550620367115365844895132634156975754236359065776085403153618776560195043377298036320785857900628571477541761957474734569958930869855146602280910679135586992704053229198834285156628602315754334860426692871871314689819933869606163094788731595138316146083891935030593266780673261889066013093840580611849821815297404648221735766985314043469202292730772383403042720788335897643935583552920245450265552460580465924123171394872175241376278522884643814869482952869194962194889343694144230663978508285092812316026042707231254142035434390506492698676150113520349056230104737696416050602398773281843974233762033899475919357859636089323649727509605590480021206713963977476403589367294237716956726373847078746237502611524299321503580185565893718150845915395151948392688901153793700280798517295762593212761178243268199115334173560494835364037781696280942620815021613906792701041046784251782822144305492902371565753806093901600714260302181849448755948384194779906567939834817172624305833373598925850201606104199527539525946348368930241572842076935411633498325065097560333904396710851191334384898842189145469848328734292714124485545804714840357049965061125849219769645343878034843755130418648468123341236309130884948526293194474585103776486432871501364990155320738321102975239736660809022176255336550291164405258722069025167038321428699807091102008366681389283969535804149489757686822314122337289653927298198020199213925496668475991143689067059926366133442814527856456279961367971872965078487949384211994279340725850515301975689929813715940230205367793199950342747555512025506748407399867954006038939951159653879153446628971275256300251343483234813128005670117308328421483311550071627994674218779763884449354359758435135480752414705572066333222739771790537175853824760986305388749233135755953475212066824155071716979431948984680810780411620294521975963778327071558733912583373988761859809408360402435276219969766022162693926499531355513922224113138714042991086881917643181816158126249949255949383974771725939675243111299109181132974907581916888891599875470968153978334741626328245745663311952257488125780615819511135834185717968492557381569485135255560434524080474635258436133971911945233354728182205558018951025840247108809843462368120487759674673102282009469026341037677007890679896323807381102622220143778541114578190175211670442738719117816454714596848082346846095134469997407962336304060582533865176969156206467656285307973254869910557572998799915697541341184431105811530364455693417608656122554743491126074778964071210916787479419033438684547829460300769574052745100866019296426487940196441825125990495708100206144139619891979001995132684414508055346855878971605048557809944937933521358401656785131055641931961214696491207792088220136244812163635783301965918886362569680071580019342849679609177739709137550982644698094996120149560291659719722052906607988458830301581324801214984522087000076286839107994774617540714672816204352370788413687893653587436606603084904180051054877672325316606290496455671175253299694941503558212048870508430283702551934957004854515181959001238322904737222413320180478031979157981747803343446506969934005416678808048645956386828426463135191439660544015109115354801778354656719163941801800002258435305250063366840985841749706524309696887126283157571867060173487095535252900279535149319309202034136870496769528239737936629085627028371904200788830254748557791233249982883485216458374629296634838291892829150169689741908225648526382398884285153639422999985848084561017830439380134804794739745569552587941301271780618475551615001676665318738661717712360124394681038959561572027112247071531335675454374128231448695190218481703458701432963343382810652850612535862719358609653233781933473134500498280152861569315874791974867843480314268133110830179846537664893946930984967746917002152814184487107459489625750982782625252312348855584147966031352165121261437233021073934750019821068269337668991956202939374048581070320328663825958647286853598057302411622133693740579783584286464502574947297777000427672381193130386132241129384164984401353912248739477434656372594537577312075343235018787881986385880150752116844149336047253490048544008377800093725442183977215919000156530225090401879936918518448641746412525855374018188725524992846396718223096225601873270913813172441931654084200908419369044083633814613736152287434773591218663279172712580632033975234352921419301701572111999087915562565852950885413041012194168144476602983695236874543312223303947455720283134485398047401069152993668285505440006087003151623356860030804075583627469865358938828928944765816526255978483718873574230387683367838930923897356646268352429718220009788054290724491237571760743753746285524435334727870956306346610803768283783909678707140418331013797557793266896469993718474767403365055266365238239118894046674555213467978539427483466254253843371616948662918612493291809428034870876911659079307103457673768278459952365801739757388340331839457063269633639888162029358004155919806093316046186305928004362368444373662166053722047844735310805117885323320814696229798616062102687109017589783899565985635990355958874051035120388482579453933709210508420898268552222577135297754820151092687353431685011481018749399137675161480265055276317752915734437516232585923439874922253604874313499938765310147580384560062119089240476717650696715481703971377166784172189001615519585194224597515642350724708737689544755610420448346817065590284018773261927194554911552142806491704692538444057499177852885428539295785945052104383685824129940868447605835106771437438787357428415913540998292046731741982932177172830434056101534701785252629722795095920264247933619810621287062725977392638986594162384675905665677977759864359523023745141817730442287794931792459727634682414110907759776712692065445543251243811246567791164091340661527208396720826946391311420081122095819963739477585252374826312299362817661916994875497286725179752319641997593594610760252800698581016957876056595329542704167144957584657987383671656906942716179607557033834287314538444693692906201825205827393827004149014372331500212806019770221304780913901327893958544397477135693763009515741095698747065668308403022333058123635224519096249132920063049956663434960275539838105681045646614097502333930972770888786045594546838643745849097381325131973012003203502200976641810123892056261742240659015267763968186712264307751208132362116326405464780185293651029606374257384745342025155058846710690384236062376858607907166251320929073172926362639128628848735071696685116302110265015433739277198197138371854927624289785168239031762664023514658988254835483607435727355785902772039049971562942717502762941099742267113100112610262419521246413073906553684193064713633085004661546741961724894293264591426968312597287113945402356445712006001201224238443098003914723585563382634402986168192690011752928964520579458073286950164558395118364939706437733990593138849535545188354851781306076007656590653837993489633829438102038737752288187098933321611870427390015121041559494845370741151467261475914381805837522247963364466380892490235870875417751325680310707494890294266545755518532680320363090593146278679965925741845496643993961254925038309687174645804275489699759994628624230931301331965361003866934360272245878573204077773399943710425678778193505889581055985018875648719546042366212791618113204553766135302611492123342330411376230805319638240872584688907189689807163825711614944461245003291946322627881116454653608047953565601699200654478851830140677828520627105671839522183476534744062636460348890783746884194563294657589815934724710664080679480262447734508962234057179769638401264853397462897372459763522605463742828003541911286325233741503851330671669431147719123931977561942618381678399587026380565288421814840462436071529177123086244259422107055471529603605977909920856049191067840030011797340275727538894506277211196422407333836093181111290889126015885433662450271741561928853506530313857282202921442499112007582782492567958053926549378136546090505493536957609723490674980593839615927205095773241756145125827770531062968249619001318317651009748415888595157980013261361352728675618839728909840693828877314403736705089140550102469179714330216362386264583153054957808371911352144777013342665151652162220498335843121856443326791072451196674216385264324860856004956889568861333495261298441757570860800922907121930804627312673657714601540090859789600353568576446635428039928867427928974695290389265257759201427851876131655494944448058607346519502050061257286503495794435685161464844793412863925847708094429860306663896631229261684306512875418349563170484852633728993878799048486043976059039851518692418983804110026862397411423543933105874159126897227723132856646467627087935382287017094937083470508207061673010499997473739550632040317547710398553108913076815385475361741670714077847274472168492496975845999660838544931999606951724249202495708357287974573118600971612207923038788198545885600003631356482874262297798593004103461052082317015086771841630599767558869304508956044425529214239706626550851131972668250718771940987849527425725752065921915616066960316812351834580852139668775252788415788883057635562265911342008805514263118738619665006151023028005759791029944448036325164436465375209981438868929087666892168968186361015216403580674454487417912328301548968741755268798807772241643601340674571968115338109847802574314915032779408347803338243915050755268850675654080192161586841723466165630445712018193082915068929315081414126553155084351592829516730425955134138933914786515475506968360036078451524302200288448255395292368916613253800256253506155415690929730289246346123463722712865012874614602882053045179462631562313998696353817910581972082772931808070359977763483611721565501046066735949579386119699410312809975900104961396550103935854716745549947455758833064841993345613536761261293028857055306816479515503091959343603772850770716539060984185514595341804287809515430971300635090360030772139051129331206926231069626252242051519369922245068400183771123590244859600007178739510813376690921771320514814067423989201360340051572015207823387996588409971519283447667390984492702859444999990291594696675478986773254951371879185366705554970211622984088389827848520632842807692658782138434750342851033998057746859353191561193319270323290919092249426589069076830831751184969292875612656713352635670877420303676116666051412652970872396400734897013944115679443485950171940715152079610690111623662732980285657520624121170672543604441854989899111981767369455237524109625468217374247991959723037429918556349213079083434168071678288927151333433345944912530332904539573269819607880116956221442541715158647237570250908601577737518020509829525234685038201786916080200501999895388134717528780679021556538226419165877765302091581918089048461337437546358459948243894221892695136585176485796415679119021141141703745937110840581327418241923808860887969574975696769461288475274916755752529038913143202404523355089996775981409699053241389222933215713270102856537471245452929669877888883990201876031883698191714926324181472884301625922753972510244816844950361807773193251426321152365667408365662944910773965826788794589171614328913152436355636006150624539549370874350573936885992677362364402136700809215556754216505674368160230557208126642761429871829077614366190344676723232148205708728160053175811666478586245852581098003797988522693069038583877294318193229178897654318285546034853304913949980801888516555766727678721263082427519928466463604385170662879345077930120101774497140188485088770860556975065449223170778886062678753523234529938053905490256781276509354474419553778774993703392167142523546920633352952974855748173712801628386806035258986635394993285817442819118775222643509150860377180765011351098609365914115763246214606182683869278043369256717501117773971155742111849650812031068136058268797376720163667210292065388849490775067797002679084109109817192485813711338585285767808251893410863305961977707869181749465985470361601478185614385727898814437745797749172815466714730303187848270990410392781932376189951653701674806852174650044349113739263290758899203917891706427452998634497095628624028103413447468385318090574183337929922510459510994701780733894677377844823118667639270134720749188358231444032506041135918454758021513856761667795141810214202576070511998654661173399122317145006058541640877868972411468893889356069647743834339338246415052882613652453736907181033860804028100818521630957622452393171448456337363964326957023509820418945027252852709864753545133297484905737898643776479823947029407042284119813137641049138678362734106520831772029894677412280312834578086905311833393697221524186267411056146147769897616148937660235246925863209345718399081816104412329011272638315856644738269200581081599432543185699415834937583916782135358775658973560413847411005240275342301159691823515329956623236492646779153375616708195515567344073150306231753519002769894091783566964009430356106375920023391790596318145678386013622498225290928693554637854133934679465794844674968320937265147386521205809409879471240868410612388577680810620665073021636617315122029516266090422831027579455268470840509285232403209015317049260709050080558257140059693966364511360106981807317782271022745408122641999485592682608717549826372993461513816860922647557477871333972003040580686643308335123193161427376573854442101086978664896656895677851984844334327880103472467482708677058640819752113921468134655502036511375275293750501109727505449512501840914631451427544050664860582982447271762675227845089035137833246043861202483981908084067368483238750598022642255454601067785121762496859760442588733857778911906584037167518837269295502212144655904371846611109025048419555732413706013851566244815323835964572286038845418680823672356903947100622539813893385538707009707366220176469283932654879601423544422009909536968820739486438825918154151360993277294380430194111518453457526327498133067571673627410326451811502980968097567072808207862238261865972913867884206154113682640507735343510344206938421685390552347320948003385774486663526625749439374503650996288006822568424951262281218575571357963038341198973530919878782828826728211386543128341558887780175773019768094736116250637303735228951540383502632346131419506614524071720297366226591865657416620200224253070544454717186460963721204711562146883683998700866471517310590935712421580453581682175423936920367079913226878510748658666963322066949464607944006040539904765337388658968128300612494626090212862077044360717366137472965041735325688465992092541981533359048125713440166490408345395056079535470204610855548434842666372517965797237430035602715073855056918971400945688568625272601981570946380871416979354001875413861652410863775710881395634031813856925516804386665059757589418839388665444237415366245015808071900940079089898903073971396659672407619521825401804505570676559633517301875973363911170430084194310942065618629537712641981426597163740473776387957617957646313620817097980014716282939632215519087553818503466096891572144347612642041970513219021560325642919862653489734069681676653789913844784202486764185348886318963661632473605989907750478996092925442591774633285715228573253307949846199267390034344458608112333441014200895612620430413396808969240543680195677409759749627376478893805408274941725561854821658903472482256051230522293152612315894311005419858702278419134606962976405043487738874280244997254513022044099283583537903632277196732606208776089888148118105071791808822544848376207542099783529681460689898302359634364570339159337106606381361955854179302089817719913889274237655781091940775762738479682959857203290430544446557975475147939128301656426036028574533574039380324832691059897014828270108604164623415726434715881843673002386670602400507581456279193363626343888666454460599615306865905130812603424667639251723920729210209965779417698931578337034619464580099238919430236762697146822661363658476012980091110563589113258477134091523799147974274494997630144308980090953363119094406763423109233336822125225644973146429576300598203856507888743326619754034944410006715046101296153018507099416004781997923842018104471380844166609055186893782504273761510889679146286097373187655434447909081894007240793861456607190973143356174369996583106101898206540010722864297810189011591088638391388159548432112316045202971439977648518006445066947151902058065583147465358478156645277271544483690133107868858867565271143752032681251745271544957364515556213946539747130916175398582478044937411434514033258015235090354195126287562833003126187368489242482237061924729654751315638687614485305048212376838095919177601426025842046834918886375586855952772688260676420892693113187570969570021711409141812879258094918594527082862451500880734708460827647628892837459980266472607692130100606377742718202423596234720595013156237306710078802158403049118189175547781209602675295928239533857665291846071986453693282555501577766820841630475797498842133247763150537887059917006905129932876861418707771274305783821092120181339863013751056120933348614931290928371437625456050975063110105943943286542072520210154553279490239073783031453953358748623803761913481002866387079831881791440429822093804206793517305629856117558821387872338736277777392732964298052500635752680256624543848543672495006226327982379935375458017144993482181355196807650388097181520713265703057462372919963840573741312489332570634182562629636262030630666584644113814161941923253543588627997324986348253418765104891828618257553898334212683102867947687662797818054835097731364229207769530977818664939498790222172145768816093337616122414018818401765641813300671235790394016904561152598263268037927874289677677382033293561258825259229761958102032971602525994283902190379523055398763059418820614084859315778835263928549611368544113915367606441409636362573874785165710665394000851321649405511705792461584021083870776262880601415848497608220590202235063500865241993936661378084686969494155321899555067343062718698819218450846487924431334587901733882041527821834686294481335444561609605273246072773793360966404627703217168943649475389984759517943493513217443811407654673412961050665450354385078200771881110738892011642658290047031250860155202561848087901567596755925352766011537816710689640409212355596084357636653319660581817823715334130486671149739649895471842959811701088847514951736853270797741718940646763752239309031465316558028807304276661384624552737628816765665781832234456166881701213942173986408151275881538154351092345514003697144889972786450410540329970678563913413031818543148821245094847245892734688615673442234506624306467284578914655741947440424625226753308899867808867418826337379041312709617351285372695815091858118788530124918381225364793951596200551234192828211277197973408881767465540840026864711842036025479736442343104174740736505305166616524624927232141915467828908543632966408662188992219387310264691994109530100580823291822371682788347797369349235764099456175904700264456723983878556988378481863560534713612968756397654199853472312552061774039036156412803796542120054636183764256036221030059487235415131906552355293822853838399825830543419136778651519564186588059589279872773515889674536373548697821962272733535068221021403916573553885368050054387701292856101606002870780896668445315411365295248732618771778028418306592375672788456987531923188588436240313987207552347398747373544619259905031471218130025131966814003200849645536170173335133683050673422002272964628056103476719925852720039731167599362629673816889727171051461318804427724850324153203676298499972619317087230088650817640209925976841070215596296070121990536158341423259851198163875806639346666348574400231906658358422000349748603850345253402666286892670392954655199162456638512271048477741592092303705224975863774805932226298837404383681598687475689086116087277922677486847526591506158759615156576424333403936231598769474292133212488982119957561059988978315779126657352301265015412766287277211664683552215186974499627384534871364692785927852523446777425652349093397823764905915042335578476378023412150716251645055610005891291813112191090264890185628821058303624688404798415131537327071210148419373751833006159356091376072122680677291773760826310732017991324119394611045118077777452048554790656176589398753693755959556194336945749872532073219103211050106439132060235422392914242220923766125302393183472704513339786579895731800432734627871633396916491840889726159948340015484239795589304347047454874459687096529970691381728568579918290741768378127488188495180423397123322910087947463845926890420423681384623394862977958599429972605091158806138062932493427702693456074973965191996644036353502890075822700486343684110648715405939954056404778412471452940931403127225343667491576782881852191064216356045689642861410542173839680443872788189351132848155912771055923892379062634975529145374070071117288689798783281721605362441396261059249207964217441425745192362707632562417320747863110465200428269223768623861521831272282149807007609500462038573279933614682900111688010065910934540801676734841552106703370651740947086185674941751605914207708114703481341609756737079772365678518743193088008817449049315558096422634350734840292466028350386195409183494621536423222332058578107923508769193520943192045607773405507405701176221697052446764282262161345525575401251612868331726339227158289979800525395747758727049569046599205946198265745627005314008943593381336900299016505747883335807073385524615824827878802347447114111963619931140269794616976971351977512077802195787427209004828640371837853154494534067020471135076555261626560917929595229490657228323484706872071599958642247728799261801234324601679709161107551755369328800607176752726425504025375631144002389946481164722958831057733345868956546760994244902260473027881655441526985706654978844881652756409168942404576101391670167964942214394091590356095056278933607356982047715356195887615765007394984168187428283585163831913761179849308602502759621915313633387180904532332988652432260957174194053785381935377304228901171620764606158193251870175305462477208404187105198811812442742876529555459853552394627376696521748304116343821623573921304809730609766429932701736229264477217627314755580594981150780985695340599840110520981415132681057450125520802347245986143136731733660232724413996874620124795093383367112819970883566721545824148954132002691458210270018478029808128953259956135419018961213791546382314519063692646701469023400941826502611791778046479886179310665373385617800935303171301669609709315453079558020248652629820914523216529257421407179455411252826358538108523238539478816382215477349824328817017845461754166977368782274871551526355472449302922151179419317491222980521021945238247056563433825585329880135224016050363370097242389986319533208474792785172678406816962306852033848362679151385003737335585857433238975167905415197585358733582477708410901487694884684347750682097563109541416062996838710218481293063631072666814159008648615890611401079325305143159645854334128144850776841768805801331810337199384591261103053306114488337333437744416219764225628817647419995556870981435378985131173979757806519989615574748718318029530818340517677787949899654677666511223398058369163536553426018703817565005000084728586083845154865673461313440767649068228202861069671293660613848617021282760549837669338263421087925920985037777050542324014915474429866461972593369270605929642038428717710449546681426274225638652714298750704286345707047108835512248053275477533023952146173972070838766784237264434926578556017134174747600552188331466335951464247142638243429250624562897164289362457023599259646731083119736062802541278379116812623401686746103212870336722431352914448329292173555105976943476114118578358004917674800544087484053450250765129125704161270687864260328793620963506040146167147765042847942550709438970249610375131017202488194318635818248399982185690858873262655133628081381533880875556861907145232756129227074744701957036733565795747038396934840520207978304584633957791068136230717300139203972480598732873996970899986077150619660598440894999353548244263235736903231685289786822276114980419129838042147619451901361782308707486146821319280410133651066431805101832985403874796112204934820658092812040609110777349282972723759420001027428627811932525889109259868735368114238145435067474381844304779627357453052523998496272580058814185667272975827905139082856901874665126377261763561959610523427054014889507624928287539694928879699167886940769655092358101699782532723058638848497225360726393569434655888450337415442822606326123837689468873346916575436246064489603096005998679804497656565435826341074228373854409688493396907857798558031295314862877857976450029068959879819213496691272300479459377114297140106899679903920050276262460978779865177391771802603265240128614088655945946985269455014660588956676903208143982482619871515068138705641872757818836799878251836782994028233019117120729636593219041812888287797155880932633720848974541471056249744554292275179491749684568212888671783478957787477763667672023445514813404530201572192322395686417161261038579740972607477729018886074460558233754262399197907329990881171587120644351561630486299766552741406455090691953241991549314544569061698104638422992080834396897346892399202357562422635771001218233416027086338060563385530832233411657908250223965598621768305297552478478383683705790051982969276301633518751643633617326901042870631350114463821256522971487515021545068272289224636543592578084705810548496839009521365371515146629417270693996617804472499425870902132714288094690892436819413915232490064869792778663914234720978341247417204255738699421767495770034881341240833847026417441122556153790078971342779813289957561351407295582316580004332211175482421583897304445585279608211322795364005595065292812653856316933687159358956505699586749773190282193450883770186433040011387039736872213823811755719579847920277216776524126839302157419455026380117194636885568136464690047907160216102405966613952173521050561191939804339602444906045393713909113851718425582118862695264153340280210804276307821796361804931005535453455496920303312622213944538031582745335491694952364957090899375514871054123949594109260343629351234932024735028904876774354830184035263953244633099336385241419405362237313653524040094708242362040553496802126793374876328709451199004630258423173195213710687974297776865473435528256691193214365169628869922919681311052728125864421176713479489587065324999103353900994308995110176172497255205413118496401351433532417424132613100252729042922402068599839106698473283624645161843637833155039980044750818173358146964616090358848193102326530633086835986464206587093948017593015545261422170820325203562545852699675948366271452995895815181757424211957307954565146512658068144283958918216265419478689557086525110398482458767873454844288186548614898208032831120871391556143117211217932367930683205639157910636261172619595036207145687482481665570306179398160352692387491183395817522087601002218475182130995481265408670339581209901028039960336069228470440086346443953232680314565242827163603720501109149522986015793827222462725308088382080458714672537612217087712196314625544089902728360603230338141728045390187082242112879199574856463904290405914363353619580524544203652972047474925599592274273483535823467968426854844894753646922189129685603202386686837267708234368023683515371113777684182040361311001693593783378967725259374720230556311745357056396769427309572750831801596434157064467412722444942959599204094439185313361031796714862255590302710918632770011453519156417115732633921928299498891007849131451053572240054250275990001689487048285175042667139719080450967293123373676459802537839525281148970239821111291232950767386796622956313164400461319104066981508222167142501786700509913101401687719255758674926948407475918423053505358101845966037596179565505771431224576814450563743112299945089542550708302392124953927773345986813916455901270916331727224378717257410997008047426988789172436687121553258206904886449069326773870164687488279390397179783037729606969352629866914000166818076966206167601135572943167510261444602956040627168792264021666609090126564050696404617657641117128894583441090507841417964648733624733620118004321818896997286208457469525907904183700039456116748145590916493120447651330105601278059422902257281372621282774510837814699405121157415008201718718721426586763527081452528171450106555801398876871525026400771413250933277166134914547445003018266959202756014164027058942698554405583585328939626152969389458918121646991070778717682572798965153078284629476392866705114850852659577615528259043993163788044250119769223159372754854862228108974387314658577132142220600619991273501095191943998461572635041273091953606607325866115476886138334563831019193227870488760540157039924722378753231391548206287015744237020574233877946302336274071052754898694028629422341350059345631751231461435389057726452398474521936327892920200815157970253243055964537642845857424538102337977061971117736490099901438095589525694751251122225009149841945558612161090340595301503105943944747367638546118320186848515016520848956136303451249860543973502217601364580586968345309882800345262434322379139827688475389478966308050302621190581677838000301811477536056225515627958421308984476742058413884971320267507856282840124741687118191512738128061709789032390221522180554406586657848316012566439771194327688979169366591651717929794380160196831862600818377591904505246356832608897911926126398542752804693755354294284482068941881053731640773080520470534311095725401612279337916931359587507717090907271322920495750011361084302941400651277310162404579820518154594321084871287829034256572090600279323749602108376808954816075304918570535870387684935494825619432301151771972207379241005630233912237328524697280956973513215782139518556754305648030640037981863420156680354483630139208386092780571474779946353085186897820909712764735396912917561233089441470267643068885000436410462856629263524496146361398326885499247674437844959615438732769015048610707227380749988152141592694812220997405040526381379164665893321325183377086533741593330405657484881540890886083375264555341467450212027538773693086354925344793112813688643859426639601248796996090235556605941089089021887545548411111772664011609956427896654227806713345562355922215134496441628997040728802335850130305366848737032558617527857561013227787635124971455834421681512386667723624295453671839348423808700005107074519815749419264918813865032018073757789559076234929080916255630511539222183764352802095031633709018191922656680019846178928048550758340776562946176842761862125495708212387958699160462018858110949753862163598381209753009932579184202930702393114183277881161293637574415999858873721117958926805280724904722059024766923336695075102503759422560929503475111901402964072469309696037348234799097688915949534304167845241956021956428632062700213291957630596903261205090130729628150008860292978355187283349575557576336561852812617014271881106994946904585863725930431777425353530848291217779705745000401144518467657271216188491993276122535321345844230866886930496918908876339454822320626041395464888629669053846247699566502721789538824883208409819179313853323700733493731691459245495116997820902475929290673363062966120473556769289236044177477628633146877763839722935835394880847867489208756480327011078424409441336041259086176147332150849235594916962168132953390129870559658409030303550053417858739646168599961078538170679461086952338019177264639145097571717782129461223822784484982617736350448802053420036730580543199066275321692838439153687711044182279791125939204042993364487456241095856433085173515952866698627154533619462439229885399397515558688616121083236430610850626044891085540384981677604414466882418430739823161210800987977018040131119939082843821798844857466692143035307632310739393283022988449147477951295855751028533955684199111621597579528433527760981312558177318961150521659328471716461271313961833322391341894161183031137769508082977770722781661625127680587563657350070484994648428894552465866160580946550676106592430131837286450173193696947706137568853800579538455553857241079574676647711219367136712096244462175437165758885323104440912635392165903835286041583292643226453459271761227639966279005550722944934301876677909437653462100714628431425709731064322680207744405031492530423039066406103415329703389645263846677380844265247900972619889139882320159183690508855053137503587255839971632966556367674626447072386648761887448627338548079550017245281814264317105580939719039358591196997391202098798374234260346355008718279138645453733579422081923555232162959881562102824702020222409457312485798843032458789209957132451928860430558416585045551367870846190956567251741815263647406480700543841150286707440629797961119360591462027960947281462400984485151204559197855306182901563886794977258208033952904013870538536848262230672679949191729705450567183383253045715242303682807519814445471927516509693971399203800335248734645827153498391255613154656127232756456126455343693574797299917240830517209324750014462434609033470109572437033916531165470583412870429655764687844177135519692393765854347035472195733462305687932723984578985441019097850797728419126334430722710784794143030656533463054321976628790970353267080192759695430128565813504172433173021932909595157764844136892134536453835485712570154894218196431378638722473768811965857881381473567936679503199664189980270038466148620504353900676520703755622023932678406614024479781116969651838066898083711296736524008409693278990299265457473063382364884448925908793915446635489775090959821616548020170731562189768905120738158342789721606585630762293280588725739598711972143107058941342308541797140722137186153551908516405634380669280226284695616504122104454365098779221001292005084105026313681936167145202558650826898803618923014400103852038297751723413850217004986144249150566978484721122549599022442538926295812479218183471932553900452888790281974052735675843978512119420970701744860278665070803761362704648611934758047601998829944687188260799814243923558088179660645569314914331401506294570288353893627831382456169407763480942088317120278068473474603944810983115642305546226680499862656008902463105257687108658600167968917407810530213062651922594682011317336537360287411958319462815456896514278989936954596072782303461321718260489518619897544603101635679835063236363515606795167762688055114128394148056820372772394647373491880204153984334406628763947598842707319354922558080643616068903666039319958889588434724994253528566445717343571759008928147490575788371067081982557179664428883092930277472891892722788639521239416519670895571782950865022418645222651870537288342789032140403985430558745759565175165832440688886883577424558398657568397847404305669122659388037505232526238949405756254838500765679632141631266828209149386365002870103661874742428936887683643926883951171454889612620651987114328153714274687899004479119136673757338365332240538501982963291221908314834355388980929492985592677219087506060308951472932562858591559509348965203366951192192867971772503601223117751267783396118825788793685916592733045895754158131721329116702902846658073258269009400834918440564436087917191209700925178363286957775187257948458672544138575288507749154162191965673768362294198847726197800007136730367765082483712532049916067021073363644735608174287879084099406426222145338765219287908395683477642591536491342647996864711464532968817901117824052293038870314640262297190544219798894315149997264503662582915498099313788505695035094510134996309789046377028316798771695381248079860441281842837654293378135265841235464212241482830079722109820906274759175622701507736647605174042876607418467152603556252166626102970066065685016029524121089082635200254556306207636252527610605179695812819598340022727432807835639348425702335882407804553199373391744140376834546056591271798405805571105727077457165853924521386639114456686341028726923233518833115994469625472511980412867127978784257579416348003669205985603494031037955158513187124951947169090768867653151517401023329951404681634554293099110240465961288881861897414461126847403457146092150104088537825461770497794076457329008812730336464603992936609666701161716434803035280566063950452033856215425858209513423192697446905401076271561506644865511016895334614765225555477654886041260489598176017535567186621722790364740333237948120659339328943682732144670973772260488583129172732692052415494512915998610710419904242954628795062533325655241313521989040803988992955566044063736954312926950214860356722880489275567369516780958257411620776596865416316182348913409976322130243209559220971531149317559369052820328535929086799575782631031610316376603871178260272426315073520625708129738981772263481899187521166780216988949426627765140966541691744529514413944990409190457345364715602296213735760784079678238387431267829958605505362376349537477802340149611933301990391462156374183169440998487164353802779021773523703658008190093151098600083149602962963378421705658650881688965242056637109169479876547523334234445161155799758100796771810323123136637906465153768502786893827847063433706051873527238847273563686840678141287226274492360461345017648799395564185524748330595850619290415109484618647535822772024771981569226540241475234191736364273903397760307458673524007851315749352371876060048863827202877671355173992652640230234423589748624546346544438827117813104775143823308872615836597130368459403362722249169432290751733249041474272556613744035794001628264445758642065137096445926529383556856859446002736681481091670066167213619603273732941268666947174652066341154235765198436429067722001649029719613682680914765677638599587371817679003287116234144784802836336080418533533028921122326489109136231518576101114092200877779653111610074615693802880316364862854156994132681799625361275478636044182010017535746128511105269486434256808453262294020449334134344437531475816551780446192890343274249329869537651404614149906331879065124048723638478688222611104114903628463312227868703966670523141798766924442931361066564822689910068956623733201260204047426940522632377280063111619367133538159825966516655869750844196568200667433544846515319750888145898532435448375790186333608785482529052048690191809668859377874275587594420811108694545042178196926613059921046660303327487591609436323766757351761675680556510232212334774148283776690709787134974113206342483692347866116991598877988927217690649477460241817257921980837135364992407309917745451428487026758691868215385194727031313007920294540039341078766343237999060014098808330371648565730402390458712113217352083147242956587035941889962980289674829922927204097378477800476206201200775333069108259579695583019717749381285913397766421919926681014807801271510648438627951077761274919450515091432018673507071633377079448681744006092845897240379024114533256095001850852503326448760356784165741277163404708746683984234787052807597974052218047224977110404974509544768499390234428053177457085847987304078899515943549938411359355205824256976488543593739553356960727942284250436564087974496690878931723572515732467088270507262623383950907081324331813643340108112365897373519037417990017737309951675712453526108388396577910708073411514550060591410550964520410416134259707463920406444235039097000729100121769189828909203805171609180208850151977528473889459639880278743366277734629663236572361079209041535346574482909400012295897000983902395753266083288474901257254520510769290683381123839180469950166473375483811745485754778924551205678704147244756295049103361889716254377866677306485325941961337905181723062790928405240713301795072844959093491938968206279269150270185105600508557115516503805396406192503950968212467101171220798022635097977282570148599234117544294685960000766630074630341185374051752130026010569714323279538151998239701056541557385931635619536550626648814733827486931358794095050509715679834987190704795807742264345028617092803311032097242929715117627150901084403001262383868754921128900053183123580767514351974300793939384763841670696587294253938685825688792350586659786879177658931356866054888503399632977241996838842940893390232846901164131620251650025984225795312912765013488885918517370806278796536848712025662689926015054272161195126791630604181174888075292627990077824874124693798633796656165961097785346097094190172835041394176666385058334507409590641957203090300376589039943828724551410006597821218538307157070188389976368491407912870029239105376631666077477573687354746405286664439782326933783511523928149987277582068605217958764338766963335373843120337913717074853002154205041740295202673525145622857713952268716624013849052547958518911830159952502930166902704159948962282939036203524593363034872347210508821087603727836814736022866039968927915708023495298058326638194439497404780978321619558912383098850105453097469949112725904620562334704412812181022862595840528017574329051496055435904253861119760689873518518415399219219058970459644036385736340105711463150579655388190222265576376571989226452834458561505994691875134553795783015979093396611356143150949908813440917110321086112293571131129452319357487316819963641602615279681277427698362480777714286816368620699084414927195966986465047805636601888387377286391266401800100042708214215687804223858968464203946937741230293291377311261097384686628486197239775253822242100788165247366090172258767883062563484968355045724892233223392841755536635358702861330503339933831732211062616046943543243576148030677766123765587725408686341789109216699265775652730370639143904206295425187098412180746179243279499833388959353661409511037428551243251995216279084784186200668294005843095033834742730147902841690379994955960828366559064081354844287992253547545442128246198885046445412585084354313916762161773712631187485258067183894803838756569501333797138425355027141238577824929923318914758343570272764594985591508462452811084530703424443092471266827580527499341006186404258644499748023526343948039033915409165933768019177599302496345722196865592254734972484070541297998242750078463347767307357755055241940917982825104834142921298728346603945340150596988536354327344991273961963731276620527627985003263959140254641188815541352112474442308000619912452533915851295551783982970993902918623366548024303278614227532588508789138888639258073618348486101668949252831700142249200579565416167387401277991781369769735072796455192112427585745566501754440107244196209116404285864190367262397332088716412360809928245791113236701979971743022945995585471905277202071951483594975588899106969830473590834330269375139570599180609531204404569952510411532822341233119874511436026034941172983640739398588170511900138686152793023041107804500890200071767066906925995651715918337566145225765122312667854337541612321077112300021466729227111620678086737788401364960181777911007415782857929565683026479236244120917332906950751137912787807712589490513750767968024571866707820864083998841151239231871350590834498290849971329782310499055544206907552373473052165698991837681700785946302900831071682250450735137687777195657659296323772474860000077033406512821860564276776150790451828694315791358058070023228938218205521344457653187326663982121327480781807496649592533163933338595425144163411728814553531914798962440557910135713588596983523104642909536692188030526205668516043052923830479534845539027183743086755119538754716093577525365816358299837304075418082380228295989290855254061634770724942257044047768095685889445728665163772092283184022485204864695800626562900023770018782100544008571034297585572560654990279206527214825433816195558609157339419928301156071382642159374751756651180709846828814721524813200137375465178576492462837820604319489105752801722416892633453519113982305385860288103015571398711297015880324471885208081707384792777527085928708110540102340173553147336673590771053488251642092996214534313214345493443866576389364080339936631341277216440467962490141687644526875331586107359892710248921841204309403549556381692624822798648970417640884696406334309780510266847059633464184781993801706838714409507938900799759353046669582406268685660209694398094817867717548016392866271130849341357855008540651585107637688144732150089140066682267247309413379251029043612758069000127900276793901878735063662101231955930807976341810110394587127333273200535236482961517642535420707581859325619446561882700902857087780311486478258561437381181762944930782623874430678681243404770104523446593136992985596945040029904059429518118519106765458887533988375462209998165341337435870272936328469919370449149200315798103598684351052474894788266244734470408599366820712029034782717415858864501805765266891270803341558318244183254530796904794240356800242684099679465953537181213391138423440515591768247597113251101842890048298999971763933682763468446041702085065754747259444282993100247688781433163863316942431505857354750334414649237533628917842309838178139457264632495074808629707280241224679704320784607021509477742265886216340764873184240519314541777378160112973980555616097518510518806453965715497391367461546164834007354339051539220459913719467491721139975346884545162152607050105302577085955855781726780562841667701279109898314970556419004761166053773389326463811657503353530111199652510577168858277250906918384779358461451558025499495067754588398166281494119302675499280247681793092137479681275023377433932538565934465451053406739773148509721410053816115343202215689896160796674041313805109235986075438866977442862963631491899649399237221088323649464258231946345517355893396576021150956511811914674603846448407421788687814564058844320600911407870650670721825638373843249595737293474566817798358023974453212761461962257563781032911751941862010790221631190820551148067578375416484444173958003811272461851125574952599120841797043640004879175710602514735826819318323282104362187472913857678056418261281215254110549759870852009196226159039111306068041499605494960016272214104844889473415774513621066094586251681066715425723539873010607657746376028014078807230392506619366899324073672217128672648879897735060082385297598929615118581522242090720927344590966418679271095662474680501375051046919052074416676150551263344491368810957010185206712734729827669964887993444540600103626602335126136866568840216532649725468830162246627184499814391219260686177952929881247028421695251898621173065448089619032791197591706825586840027606283318751600933494311651156013047490815734958316164190245362358874816154406793147797547152912011994016655262111740565593404340890507604655648464257599966230947461132597596168219141644552848923732178333670081905077735794748062307083132839232403284933207358482783524136262194919567157243300928901569884758256004615601982189503020057094165463840813656075546205238214696285676658028917490080116850166702216651955272972426739058722484770351343457963874610660824581268152272125723278401272169762644643372243457649565186517729223245975092298473584462004971916638925004182355931850906348079810807933799569641123139636747807074413520760072291089454534674772787210187881724291568650872670674986591924617564886133818720533947396173429546124022012091484853584539888182130352431750252584057434279685321764257279174887920604918941892605393605851021623370168294409208124873095685128024088584050969157402291132614698996463093325308918677866277083555439821581349003602192034586645322930141481471949586129040926056633676796863935112092814933967354686210742761521557516303819670050769147151517993849142740885383530378477475491940180514039645848799635836783127112890261558422308803875517848849712796836900837518343828103589531219213569730800430947254201962149026283089151519416554348640262745265374532929685320129398177310692645896456264840510008484304194679771235377510417223334597380215009963689380035716108263733530361809098525396718442268620110191458542875831025826629289451518517008501746807821500306629724714246192808180386524679445102798419324130837623885151846712849701389687933913718850229708942281662963333284153934633372676603361929441003617311460784265718049248864419969572830243400452598390640853447154452261385621405449764606135754400239180544813547658154671529896045583676476604687577791986125348044984834735727050560928792849282149093181651392971278732253585967232118813383942950588514363595114951883465753974094154920089454085689330410775049746992228254022653503105326641347138491934711690132226666680920412586883599512590304009647803016584207116232405000533363748695703593874566589235855836286754754484900227601926174475442094248746214044545817388657777618438127967937326180743152075327147858580780332471491307445601106151279046213040405995285012955578979656394683182468669409916542882829001222404940849903944379511639666344431814763704621401769294388376712390214851103474922369600692792034442474815888904078134534773944009448263064296051223907265324974634566570634762819118890299476085914350448025113307765072889158101417398441584073910037171370770845016847284237533918853270865519052809718837883508588345634194708885627262016721219159508948504706430404899151594537480737756078091613666457981795648127622342096631329438261142098649227828254224584625466608295308352227866889887970469933210435949481030610830123252327276186746142017325998900335690716251184340421912011101586390231094354120346307368368686866437453302350698784168141898755072369724378276758707043736006566784056016522619332113725998668760235182476343188259595738510876750369495551496989163927638964506472228984136228284047491881428449264360260733989931685366928418473800674239624399876803381626277101217643862661664078888392911707284942733421511723723364420008054899950909670728561767444510540745106419752932172843032145120109910082640392206867314765862005808563858362813930037165683879288652238691865420131280353661584320798316351865143991922611596541758137155787848734478141903736406406902902107449398894026208977404777047126332355342811884045327555544441130464563077253790520392537672027250545126436587684954565596334908153388442953348228390846980637803163747015645247024158576297303450419103420914387778491317260878246591144038968481525264292523662176257697434025966631955271610988967759214475830722076287702769776501615639524132208050550140311911591933500664227487416879846332698132673469678902659047508348555905355339239834320304617281271233186921703358649111139028592007139396182173719747556800744400457580275295563389532057877995040914911503138744884900337824044492761809915752346075447609157076321259725022148113677103951216317193816337101093189013755938770679774699886690044567974248134544073241225981747958358850789959475250730202619894086240300373479077853740395493423011571641479305703213565813837479536329752056008481581199536134811026171450654634458401750815309469704599416491440736253577174190539069664887250290306900360192252219168494050066701291767615044611075590440021681087278964812051681330585135247757451591929487683644851127001780313016658872720924505519933297285830723382242137410273453724404884633140256350140375209930524932920735053695664088245741850580900450483329801654131054553523888544907975494523269136020948756509400530014525649089958924789231844192015118013575821835225962694955463016194739521105841135684671874646480562534473659661244681643983679427492923596166437813705905121041066462593848761948450961646892216203490263054410921420940332530664704177834931813732022638178978845123676109729614800036375728654775885406351733605949713870237966542932332155182398066880203039236800961680518222383083717898946901440424010564595873214812187056405131742047361618154807769065506739546039533725006550632696346629837202040022857455914748288972412565771702288009028258822279841947212927322817125415619702799919932716139888693023383804121625424409219939964430372620291009592134321768870618703923377009317686781481843763606166406778090745796596679163229074692658558476868599430006917723929179907589209294256881070731597846063078600904400756613596049664040834184383083624518642999694044303605222309088965039503049965260956324578543813881245321855696331395638914840750375616195996680069771864755243550306434748576690564088338960673355846271611575015675186092633148942565349086248710027596612301900206272863235896533705803563864694923037098977731034355059060798038359173484071934684715236972040358375083773041243244484718623884646781170498011274199339324888600421789070897023799143699811070981138662244039236926317367667326682755718910803125257063068483152933477371623769819099568110148871995830153560017092993802864724558555537789514789826571121746902040220918146759337028432400826835111097937039623354076264547550455198959170265959161586923984676200743042403181987045338162376699825629709250740040947268468301294877503253643855506569072681957525167205151778379783393372128713036728813328132113296604676101314643542329075329549348105203610622107689459954756996488015864163334085956757819793478190071457572399122113415118902042716589423494612255734194276748463436111881755234253757599357415176631179676373436511827119165429569907833237622989968256751827021069019949524500975565586378232269178461497840328594575259273809201633384426331546659143636859560325509812157558341623353073310425840758628555728158379068358017474764750900647337742504776986350182908986937372835970433400929269632909332156684035886000973307085020640686267195014160369964283663202517772095250332737464152001210670742124550750738593751128384737601336928824113655182852094186242916373209869988459214360871638110179522744491256479580191040389590288396105062255459080221113517402323728383410616587976878135746679595723454572371266914418505597448516556636079430511761544523437501484067392216424646847666649260869673417818591557723565565006367953027005596136316867345699398982959121836513366264110068186589959176695182881569812819063009159925705650267545677584596039955939957598945389533338231418743774722410329858137388795189719741756399529188947909025438225174576285134071672361475541285595494465591405332700515143446290184988182812649107148185666425416388215970330973387303610324464141334551048020389800288597532498669276493846577284906017431378222894519356366236896596397168688209580923695175595272433560729776946995379434834360470348822085689725370419356279693386963140426964733227076711020154823226932797299377345292562005661577361463002825213536832022299685542149166572206362042329173765064734879108862018187817955399639671770411865741702226179573034599939881308800969224559966231327435061195774765116615040513604908099062320398131143024858697854710140785723666958609197281560396863027467757304420123323293352430246677650901420644306238551871168707055165023617983656470093576529862462936836430962700771831445280044196356220694416780516907230662649047029060118445683856947453366801969417179260056299357952008915150473692217974532433096880069032751617195426550426389982662728809349037917190202055348011329129421348546337108668954023182169431283253314978440615008737885559776699821739601515205627263318211517293780511093453312991629788194754896344557361173354326335948641296367774702341676099473945192147106610614076414290228744271939991389237772061394977815978350439748065844760095048990200061477446849133368106962037898885804197525142181740058361498263407461157183551766865939852052495803126824894777463334591545573433089693207618632089513000707552163955540174540189168152962444623582896630744841825857319107281367494976946781160871150177537577973798234343761321928100659236495824450015118151844527017143008480388789804638015455617815314920714029125202259921379342621421274760663077852411778126427919489421067998065426022152146742668195748919328418215996300635095554962717708566804546855671769503482029892995503555958536076363188488016947020493984324042187578103373444415285632663995748341564040965998478503736902602640441990857936107081395982339223243441204039394183238487888546917156369146973027169422939484835543044902720215099111563302621335336494009009002103263247754930863480426735631723947546970963538369875213252636065295548399222541686219213246047151050483673019642919109770761049554729396219640527521936934705565496841552135572912407292253592892393700728130479050454805481657584218495984779318565310630168266856318206966849003911432680363243402449587095544303153663953471394994101221533635166985262630616037196066759774229645135092224317314431058013169229042914730204464524499278597684610937941293134344345712572228648948720740978521303842122061217488409182428378088555708880862096595444063731168608507825841797145850425291088617236669852551075851892424047105916025346807617473124256464011983931845885731120709569496641096183514644639646641180209201987770046810989557656507834070662033397768094569139447171116644379234746843512280396732219414722478595381572457959031713039376050245419018022998664453859226599270722791414135377835350636461531007959992012457805720621863589883126141599224149499075334071529736025132269062128750707029351541124652304612485928910886530089932605926074279905853427744839581169020387270315492900538692345572721651174482315127695111428744383141658595148646131120098838542620086020661404679143042037950520401658995856343422447741796146096161490728195001692001278346511808110052677251546110269333566241815619129680447511225252583015035160874568616472108628315266789803971942543794457925159977168566572452644163630569253690243268627330874765764788728262389560424415243557397335079487429988467698728267572907865507431985671612200694746547586501226698942395193440537086920162164356911405285241335436340131857225030421753571319055311354205063353870564619577121750495122439040319850262419685657097261365517776315105426196470867237665312882174400883249702499976644425489839645586171332546796264327944942848673840002577034616875503238440211836202503582767041619979811906199816245926993865811320344692904699485261115885647275870143224476827647031909150725065750744171394197146467420907440042888468108506162646299882090642191784430601939762773957810561271818301459061795984681905036505935949374347555098938394311557960259596372766270019438097425690215761021756721729502343178817632195643506738573401361208470430397822327266818347306910865793943088598718829355154561199893477841537331657435856809727838783768862955265433489156943195471024018214918050051596223002786165204836495331882431759038003233555106453210090034686680947651748617526435921895393211845672317790567455647427092593040022777907913066801415878406307475868600777200528744855484238776759947530946695482809378200421880029487995816746456152926924083569919918326138859419375953427721094875471890978269168510448206598180420734843345243304945223863132294464881590549443144304241299814280748677468998955371511996731667573693811721969102820617647214235751409999325154348101744235023687331950383247526535712545297599284059027401167341315649778060959057186436296812978750551402083644216620128717079058738126830576106764756439856920590002494787920722957678535092324362575070838560124509849798673897513488627286261019526294566691250615144661520887181832474098244009810908618145313098398727305130246298546565214636243503038064107626534524215508821815544299838369382782624514100021570437838665025809473851463159998678177775715231205156625032190788809050615080332518949079852967263139480510503352676991150655554897174188615382296334763946130295320450040875492569378102348290494365822079817562762187206197953358550069814661879289228379360704340180167590793231585228032393479726839839436374204580929215216027751027817432280562165116932625410396358291229774722626354986491475733139237383085272699354852903934085550198830914705226963868895738078114742474563824374736956725462454253049634810067331055792004608792845230031850131811826994901535219331056967256041888520301971190953124166401259451103693660284416071536209819606909219666162985925137156508641929954454502207538954868280215329663215306229402802844245072973252521749929664003082277427546722391558110333232980827599140213846892739670647624139178040668209410074578273169268430444166427205621597195580948828998633144115969875524142481126483503760715730547791622340134149681239453381453465606699521973027238032047000060195600740535168370033665324399543194328683942316690237174494965398962338483374303322263767478491065487381261663277643138578323814515357938248165250855249326632136181721246794529074671500728028073994873576997769544162590424674559679916557127255707351050406414187278716210478277178197918706430797932828071738000978253507912845676444301284163696526599164533123510236590767176666046751934595597328717697610516056531880567443511557229830319694468051602390531940952915486687461450008256395425522536772944515574481637073312598949526165376305336841866996551699149823576698322020849010764255851478851364470691493384220593793390620607460651693204617179220797249037738025430994861205239838608397035324278540885006904215900604760563610452552871622640894107744163498983921456365652116216237371613470399403642635662301047975976517774650084713823566902942546991085106767877361825486399430950217720702572177809295339436686628976401710471168902178338613688265728253876977378358307557586980837899087590640644067681126521543049308637300999948177564515855528977879319281994368770556425065917540030863311840232657632027164777050733914298508998619925196949999325483472586173243408743738313394420158512869677555043650251076933954157175697811918134434993480966910648883041839661214560401161374612426328665148115674000660395698494734296332431477454289601136627837491427889267349714198645051017943419482647143503097703859883068609147550788569403429610893891500316396193897636165655364974183312956450178637988653735958571202176259042650272949948000129833661789033471129794046937557549240867285429793561070223979994279342155253155229680518049615626728952269518556308835557890970111798749222407062365264215582810398271388469305737498133771705752578134884416455404278268453455430349271774150394127232512948668157598203661952829787725595134087096709443638398707778100126204929684705767440207851988878012565189738350178949250831000563385443295582765500801029476346904389686639820178804625117768639389547059759078721994724910792516749267529065109894046953323258920554127449159624478846678575355239323160495920252173352910065488112616999332360165895491834156758304102325201654358049013947413878781110291237459201450187536940470095746559977364993474921332347224812827953951174500430853311616798434918097287479610289653561399012331369211255687400030979042718894047516090035183208290786279223404763858339647135661882642987447238873404761080888562698435495877844369562077637657729091620167463247212088126403918469443304070164756064516935113757988118678729996288693950819588038135937329205917394073541982923078735029809836779223826479268826120713474307023863056721520003404319877322360706460774211176736189760155159689939846271642635956535021981539897083054274622340110315314728398133227681770879201791592313352452698347356632123794287518322887453888675099114631925462534710026292091879251465345784774415960820838039575446840736386847980131852711345224666537250760352882667954332213244907042028656503762456753715881726100171202231794991912137133287784391190135087886341799075747436955620526675364647221504435875183023705472179579754665260140619357332030690365465646986680419050282539242542449021005867196332424006922909562681382826929934476808160700502461333433036327669255825002562122947591144814591688993260041956608879568835940064748070099273120461090022955146539965929016043725075002154067791081928235717259798391460798703126877423613074453362225295998779635358268354039894178526088287332535743445328927287510210303007806280044254319659920692111870096957932282914099960906249589233558523333784565441929479051060923825602249886061916853238722041028756199740906178183711242263114172180201469679653584644676865222666141168477364145668462972758796582970042313693217178223000429916717554288638958103263291298088152852783216976756231930038984932942236353342987489282544550678325799238403534059411841355784583089941849369161049501573567243178435820947604757299753771614837711078133832015510209186318157911067868698061947789130944897947526128775402044382497418003639183708374675237317950480215763631702242380955358141577176594638601813775663549597849200137008219957682556361638343076774433575721692084939096164771484250845250251188666472750048186444848381287926191114094057337819174810649130801262427734088320690314771197456212585505473404929567077628811528037799251923647472360979278126941339997692980301243014317207112453805640489287165875819854511080947449678342784722572618480147764601600330781039692397392395540961275573807689598063038329774262615734117802645359891905942188777247045848854991940664123473146506367414168513574498226202626436800468116790583479120678626616743091223849917450273526740595971686087130196914837614349933959510223271117219249075155238389112388743157481926288850739368100151869726359389917156025300976427509430998636794413042303217046848857408554621431115324152850944203224437080350636633238099605440828568362220880010655306349660827169664546398214609955627230930556570646365449626974411577239100239273122849584447014935534321744919144324076524050024454356012931590743964643183856459035535881215158024822763460904453194579055605543123121889247251115901963888193651735491136591688962447924944590083948456057184389413144022327354477453457480947498416384074615643492947194953338553097268491816693852525269796095808592053856038206061272942441742268623592462401857407322515797316985018244488614707071872787826384970413836190701925123323313061617919171699526384582200614190732951520657826725689249558232741901352818645660957955894117262512765520038636974318987861667776700541299677293095827401067702689860564275283814894109505224674813755159073620098321961108298436555982899238362643845611800157844781724527728163343188945824928081990833484155532516948379133715552654032979698896572543979666182948308699337661194633193907110664369271891777796918136417538600275667908038624192972981312541109772534055430334136174442717634273771171877351584725096565220361512971756540901116419473894776920096680002137753891245805789572611963984904286440954751813296300965046348379888786709235187004512552460687782188346434113080103679032025578042665924814732405913644190924434572637936155660678425794380595778357353829803553042239173292064160609783775210800651599748620003995566567583778560846536398708751693981306457236455793076588821877470870384068505659525250763049475515591975034495504020301242903047329812685820852083886569849490357365567726806580997231257208169793125094336905188618439320431398033509830648155217479414737154470641907607178741756620704733864189249690455904757942769061888004203654356906713145936335155649655399101189099047250355701949391811319240811692714414763954024975896480428064487986359307776294482281765811417186524893728608891873044769263179807704290457813699036730625960250564401290068772154371861103098532807813959760042629976382840249271023735507208144250291365488454881716663387838261333576432785754645501372469936481154007880333707911834918838725089761738580254040127036279598374907181872228738638893834365051362443141728062387015125017692799172981941528830313291301955193454587821162734200837553839453666980101215716645663390703971461363991347529089624463129669779390401438196090589202536718001636046940019457738648920620133498067525216770195446599287242082435639046563432367246914171054318242400963243711128096314096958487918352235485464922691296393373748453068425355074025199896656978470969000515286745840805184059471650658351705004716489624386559044738896605954672679403956980097764756682866812907632257989809879732634752204309278748727182670178585402752856659248047679225792256818669909521435475414873900984937628433891796254354328687518574775841285558692217781638934055774108136428650359649599782505548286469326495994199858413662785095153559907839444398183622137390429642886503162484946162201606968399054545315489181451525390672270108412190132416945477494398465851244230998211358926649531886451593957777438947247194520723196976600948693837255102345282776806656694345360377742747239630895422107979899171460624254535585407739073588874014967940157125757587987482942281696127960280169255608832761068676841639427164312340061348113883865004111433045987535973462259018487324102227131427667218649130238474621324342302834270115550689952229443975768599368935171541864335007160733036451692495307981134314275690994972449209924578066741191474318425761867196517205975368020780451918746777492377522077275267735115902212281236567707565717858896994360737388621073482700659326720883424704269004402610784309481171439072444532288803242601258653635121585267278975476016100410247258314727148732439026101839068404474242631863752861871148180831100590244722288792646330872901296332140418446133047888414144692812201885962637456745139478630688447043827145127514073721635235184855735907418960762152093295221850679141331987462480154198307918458447757017243682602305149612925554854315875059910593654713670279152644445557049149331953352907132159110659651901610769995692084312360223815678179739926636985241738246454638585784006281954416384130822756794326820202990938362935587991095028099937285933819710227921244376424821126736324676563319506520057526855351253714253822587174156590540075072199817868240815313019741444836635490422219769440578549933707105237515329361593007268283362157387086533353879787988736911073764215221748512081554553733699642184639776120613934473602004833228184481661370401852816130472451361446392552560116413903473473381768820442493397961012199919574892845269788281226102628246398789807795018032928505840951083951852762632491724781276630780768054740910325757130489962824545519261665394500644869324331955798029118349547617415431942376795517510238998451488468787219909863947132115766446383536601814342786950100936877609667244065542872524831908274181465222736131922024594383589584068302249652872287784215784022940585456046770603801493077790066317198705665242155217346223721209802151515538787960675665268748198712643701204965180084064045146657216926955168107630907135601665511373818989299651683987694524919580498828524374436078265224269494555032608155516746450546177980905352310662064592929164643472820083839142932087351922227525600762856332992866738877523898683100290539209561281125236296552587107431079363064161972131493643175491414223276765978133016859783338944414941578188278764396746300238689545853643222760738847687687502430457442332057611756941256877549477105400345283000880364769438423511599112480370523077272928573594982940603291577871639391060198252152824635868813741198784678553616507776597731217716014309749649877600676739599753926099306800756787968374247714519391189744315856164307953651675106959256411087374916183269102686306687252108189038059337338628448483829868638913606086735395547565520460101790099789225604292446545400264341337739832718557123060297619686797464977194307378369019102763500654782151340000093115365676902622332037689887407586426091502154447846897572791157079104140504764904163453197920428022154270319657345326803443770142037329667453337251353176486699992033601969673410579572215630863452412449770463038175812645070866803314008863878323962928831345482568741836018191185097961820256433728516173663783514727184152368579409650111215584487504487595434591707841543273154310631445822379487290921044761039068668870185779491855037091756994854940634644663428961418770581513392353167936593696663396086822977710248827386995637650324792920429643251101661307751653911390381352647579005209905555027569463806888866550483693791880670813404372711093556894947212014882795733753697194667281398906260689924272401095517498592212202284987715801628222093837933231621364136320519532841609091263439893658356290733423547351274472629354509052919402804627032149432816865487662915429140224354205057445524668816630844663072777509350513648437202348706176179091306097930439543389539795548874765628085253839845055791593109871803511518166726144970483325009466712365272875009769807253868588869180664536132710800128823683215822876827873316232393096719888690589667844566939112235431806355623791797416087871650523372933368213506986605432227934005172429766795847780320247282484873692797293039040244705587859622044967756962549052200873977054686423773449720327798380165783708056977337062442189589247213161476491077197755749724651543309491756420643674884423331195439616245796443516778615785964572904688783350806475646773781163262161489062156277750261939634123672404896640647901641710661958054263488804095690814194129685724453009192443423078024946560024991058782153329346264119032732484049492627870178980487183807519324639397714531818975516984042232894147727715496167290626961614156847044724548433474276319704072672305754225996431419595920711948264646991311216712292657765602353158858382394751993339716040274684461494554226944147595311987907645626287658981249356141359608279004553977341849746388994052676495590828543293330185967118797970338877953543018638186246278538509051245171889131058566141033531605865992475164426512978788677337557427330858776798165258202902699401444378792981725520782714322818328423993882585041748381401921462279085169820905984672934945646951243109845738657873175705456929603475499739069809300269295647502230861582276466056331445950194356222370778651490743074207961176279203431865079533820556759371647203449074113107661544734073333199803073837457920447382528344090821746954239556166378223416438029851928713431158187348964429243358831428840269416645072527285009128495171237061248825956086661382588368540019807067904813799912889389675054639133165508364520271353019066592233451982556322606652534576969003257771962033462613230785325541141899799162160180332793583247109042755945862373193753984354681402530769357111712624218247881118717027106905900693982114934435402902971513382634532200846603275594767312808604539392773198469569044392081778156135652113277488189652601999109753297354331092589858743169796104266096962336945969260579043087114151565960045232140334572148499596247408104056146332755312046660245778952905686179960634842565181458521145700012259585522961891459313340867881971870946690816559728380074214151911283021294733973914471204356507481813513970073881316058894397123356576435883860995851979403161035591713062589071532201154827777568881690884307071592076198503846524479100496388904444997299590895627895234866107382469188108386467564884321746811193768245229445215210313929541312691157540824379715795024249033243749125645193522762048405822817041804954499197274631839316055394877295248337638267273585904025291969582738605990727952375783531102916635945857965790151936324162375607471599397504960107299609178182904771436596439585294407764302239713522831985656008643697570801440569209624120078390331781844970559948172274081217166850892169019738731154453527925094481759801124944579011865631275183244601600984849295203000489341232322995860587570641935388836652900307545910096225363502981115709035134942320568322750737784109590296323287245349593158133777230089515226955914957352905644147193249869294676687036372424313384508845728058103275684879471328954935794041066915545931775106303676149958736277683247670378271102807930979847344006755351180150600368103451294773413876584616251491425909164307949903915536943873571473883128986548388660912517091815090626385166373213749936592475220492006060377554459819011761689366307633255997862123705995857061226898134571436786227391319249332338908737665391975194145220237866423984306463693182796798329125991785457504324445262435214469557473210790626498376977444284430240455785155367372406511682355352403038929839887031603541177216310123409815364398468894800472688118162750583122957081313288047769905831300866073124263418661268750167379872779571667593211614522338078719825182763799943976020625316571640349006687653125014556831762852340795942786782906510026835769129071661068097766705926211397241345907526110156896564312019230577822607765878055102002695529468964097100752526027639736090956388636524518360635667265678541552657702325240982728839355066519605374719991632557277327606718875321679119560988299955923191531861753610862151215964745535297376315761660801006586547859881994942787966369851889050644848467004651114030860376164944573423276247759274461089442811474750420419966001851887371571953489177919594184326258447818488603593090277909317105429279524394914356595053646287403130396017715451998165692006155977099165372754048854334005578983411060908769622325267732591540225168131464569014257766533791516581245992676491142659955735803933657970390083524677543473901449188895939219606203844018347458013354983106740732221686923342485160211393394742629322441845689991707226817297301395158484049988189437486253472289059897641208736654548375406452375380019597069437174413942258343944975314159598933777039574068688530993641831363273628107606516878825555916916984388204669998256596616247073686321073152997119561408066560152155507662976513370667600232775559250359493564477815641460828250523653503190715036195773566037617204129408116997532703046578385623985439873421926150393264853835355836713851340492076535750163858495119907917852757661624183497173912919930839251798822841460262849393728302486526230641791416357948805752931058437607347757330447333176378869910618227574286193541398791562723589085353260172230355237914420310344805251469201366943812251641049210062458119821110333899520849409325083352258040867259174702946704356711517818430445812114421098638705840878030756912307214553475494169071263563228968586731817681831939553279505372649732847387255971933316542728121713060626707293155213242114015361320292411309583074733156308812892996801425302225708000798411940583103467682849067669527931612379096414932595830635734103152505552656495616305862658727389089211733970947838227635880953524250436073314359110032318363158215346165915305332967103905217270561818349244279339631245353859598238887300905838360242876545428127930853521938186812761567163335496449716638924939106637690259903472108912194208523996283696767137827295544246798626910137534908400277705381290089952312725860900844434763716263368169470882481723217325927657015001591714406683902484687917616455076195223573140547827941412676084014551306859067450325463502215100201383711544859336342543226396035232733247522784359119497794829056316807382162996192493226769223904255598505611302970264225057875383709239170019221030827988410526867706456959072367920323623144967270892678233663445878595304367264507580992329545103353006735483365166574165207412071815925473312567393512702609109630277549242999752687520081468927095909275191107903189019943588507098071555818438742126840016735848593164165474498900379748164945644504807107288588315969037291491848524053544079199489865262315230719144244280600738374344589821746652115152049280287398021692241744279378400875232266743410897214748827588748908420269071561848999206698135289899245742404486518468914818390155802947356888429781931610133454427776126046494149748465369047143818955173151126387126427138126061035637970042355205716248782769579348148135555567433469202791423145462792043213511333931501154177744442405943715002326596174077284652469214159280092045304537111045578000186185466882741466671188090263019890591621485160735535874441142843605974767162514631107469370086812653924310016510235596656247314077481575720012369940050972960128876548513718691054787840551245004630700359269661158306021025906648762060674611033581492843747799363423232760480707641049997289355253790257439139128523243736878606707507196074162289828432700260460280660717517642496234758855261561847024112697664977673513632839248842690089424199776627786761339129554152951732232398447758368763422765172679322924243357822534861877565343005693039598012543998459439646276414635498319055124396374418216710065012092614266635966196485504293850394427657091615724535074959914224464927183118136947916686599125014949053912709491051196813114138897252317832051205705772188024021963604656131141542895089310342631286893299604285911245649499112466677452787473043695632459062935122373404734492249951562773469158337978479159622849169311977645468341638039673952692174786289018147980571763449267849123352242983184452316968494655613342563158292089307720329954587473429039091964701201454948295707530160086654184291402759440926271887344660408685339890089226925745780812586737140913970372493137959683244676116987067251675987412339524395229294950560706410159959746734670540472531911499772477524492346260992530360855488367660528101254992568977401437426563042247663933951438686009252211787012646379629598646738123473130764327955310516204047570962221643908930410285327144911551014733239837686706038611572621384635832362905430563469748313518070339567186073884133369596547212418973399312622158109884988369261437970137057462202952021695583354388980117027700594747477059928061195144538259662567051894666807744620203380375310871972870132491005648781224374553102035413496036611332428187490838009451603301202687651526192533083837903791584252607733196354084844246266271295846517590460399105142669007432405410435025555842406719061819228312024439344599177200484377437729666666865501318080743357376858976313682311169742614684144534506586832759097165880936377794206073244738423139356259923340087839688549577970153497749139321924069582517755896198387947821629900972385398454464414178911243365415865753012928358161990667876001204405984269693034621601150479208279630733526771947576567205397289340325853307940113786776769556329497069247821983718752827236685821321093067839342132143575471294618269602505324958159602989290975230927155383550777646335958020452291938567796339030658801233838133976640453315462113235307079144246184710415179014436029904163903046119794345244081814109453663793809431415052550442118629795584697990698607804966899597308240353125403644292845175074778271776307884372070630378196784295521677143132864002991925163561564810782956949333320598334394581079723705676375422279746958922607588627826241116224548590506774138490978962174056847228559138546730871738075519595154161338721264455088666120689411120405474976403012336410476453755326022128344096294125864242492467588199965019842640993462234551704104868730824821355194784015839889812169753775253009566143699812042778512440012250864398806064372453295614186231353099460718368937062692008005478514716518384552264557459891578611888398788098850105259549973815375068129651955242123130713030357945643688680068358535232877416276987213095597900741854668013616608546359778209038944982320874988268021734760751209176983140300745650380870505029605309141344397967483075090233561076305490597713706686398234205404276783443595677724438551926870390955037295940072137188875601512153678879513364821126690626301148403998084207478147272913964970596330255293697595465984932722902534744559867088441467010763487579649008072289437986100951522389744934030300590948468434786822031055071355416748619753309164523227602191343993170456530745481097968342972191380716459598882323966928046992028153127306596208512735814774861707791566665044803420401743517845224133044666834528667264244752548897310021426185944131585868023440872594334129118542650959276354088879820245442083516759997671840810754311574758625904579072690829389131489905304274654035347978088597256673991241435251086266209914919628347807302992389423543916700294409787885331480946306518575564906168751885162035271053180990098180850895329077937280478816750367545380340283775914218041532147483437656284061095898365278093959319847643508746625536555093367683486210380914226575545675961470092849386655230898103995742162932639215283095890465925846107344134547364915709771349277987905080375452430153595420236963860213596073349850653698340630993079312105189872656418513666657962473080453562597762076800241724116608874678194909591014465136501103296848912660640324469025100156048631178391785928462456673567264353753512080122757086519463566329578752853934765694430819907157468281697835621606457425045845024832896368645659118794712354022159869848180050735711839940110168070281152325073327649644336120060639225078906258380239630806680213856391216430618404721724416400103929685200839229221607409915407157418471602544737433058300540177744010065834453123628372373740393263347717955732232047445175440573081964586141168813751008144084722994514307319191417766785117454964112665982199102265994464699816281187984622968680374370243965950188277329059320120890118144529086814037529115450309995232055321689597610565483583759621176100775822896578343293433361994151744833005805636442151867001093030334827361373802578681466926550948637025118953636302057799005326549325049002055425107914192992704238781710946290517419003888479181382900955303154552652410435864368332511199494404968423255924407439140351697984744853697015570245864953675591132529784467602220207150257671948505688672809790427332098200826172783439494691877947436866683631331396416651011525894262315755370660266663440518200668652554824425457434380875173116161051759978618382022760725874434006206235773968166807151587532735095352663305699256248328404064381317670618442679257078616204270879060802416026512178316914154826536915093937950160525865663389814968770902208346513372117287107928289852553201326602020820875089039607604514965750966051852926229973949315763770561466351832061506135833909141311045826753149436957318327993663371930806811624008672766791360835627705547849682210676186207393058442466300842962903383151666473541741726225096073443658296662603245025603188205281301993950487268983798175680135298528996557386609027561532764167634797834235340999903629851553956313752057739918334674457986534052980837905400368266947369175536369065938982805195758337582942718966130054778046353888734272296685066671241215850571140524587565966541664139129080603516133687863915257967422992647623829021933196401223134552201083975911103823131112321792308724514653141651946671217903432025510931826371037239915836636461294967958113990698953719126823690628362917845069314956397264858591123116424162142864952587578926053345445089024002415110024006095255768361589315336747562340158511637345893515475925555542143443871119521783049887731567264317897976149449640182454062251721609920884584400941223280605760930895218743971945985053358394775541084958553034207822298039414598288674537750636563356616273603511885876269122797448050888414839527244180505871477575654012340596055169557011335764302769539269936089394413185393242110309807228002336510502403424739058896631564161399836500975496961320073866790797415393666434972278613850947375882039951936130089400823011203549262410461582486156465116632640761294757001427916233972985053283619097624406745747038116733655847456835895310757180650299541020735108531046334132389398519181510095637822967208488022713827435377635215894692098409663430759968537963507753002461312051117873094605393467370933009081464898960774034090559206633185425146475434766584334322430997492377968847770970236242575303734779479051058782996878086125458985768442366385726589368275960870651681880274054800799965219690054756697220533292564540511454621480282537707033701449859790702428795371041369511792618530454972494430821324127136584808381857026683162214167871954815951990489452679862942876617726425950311838066609690865472873026109991019507410413007612874725813680979328147504166135954111997935247274697651889272525948290234976570048246403930733215118185732794341642206772620798400163570292885721945281483380424669574038494120599499185717558442277146031004111913506538733067146246492255668276748792320733518628297928186598220780094067717951244107113417529732505571050998839902913012592984515822387640289750538656673869395471587420635594694116045552765462315819845348278430219336422947989835906973799504208946736203241465328819386404633601530371144130305054174570073592522185940691671676190015756519125387764379949526605392174535727555120923485479831427740360511320617073146999743245703325624712961423260675588317421550177564137072640225657635359220696576099729128435143328874834929064180261508179193014935261099303252364031348231361430086987179943708180077534275418279635606289892130023045680725332739857470996455674161319264648206085636089265389197068831447190716670911660092372719079357206153170087175286279078568980225227495964262610242042548242864777716973213145710191453450952491372708786550366281048015507045212423059397603310258715125759457274493159666772473666425615860518455195042886130099688345307335170777370892537250966210927543773503458508511561407710828909407591590042099784695000475876244360512794136468035410543935715342929163514180853013910651457061307554754469517207351120314999348639419121986380435515515652106114028135160190751849316172560805715205387978824664583032374556801065650209197408728043377701958070125906789751636483806737374879057688523235188841126600796505803754460283799862400107471827043214308865819436884500846324723057959626152191331278884898669339242262494293621814857371881545693019848587387412967874387544844204022979281810246241483252204238839124548583501257959285006837894788836862532991585724511020672011597917059090110144954565283964874110759588352164071920058362584646018871133334341946351310732093398441891316126264721251964171147278407684554014732768693096370054521957940126900656892687175574405699324611831205669573308592949826009572924245884430356274789545501013315272118208492176961938079665488148253352947702281215502886485133756844351350824679881562631867873574494364684546847645871544750143305861236133882636924473223290609724674623421870313209292185913119050683625138272826150000978748467240805230033588918452468142486314014903349322220242336298758170418429569218009975200434532119248135632134109138220775354671609678921182485559279127586879684041908187152124097306791742174040144507631853340741306600755302161203554785752446969203969589204342666884485781603387950541682408439716744183901511501819258312723386144376505403611392116964585290633209409172130747747665822012657904947982609198402206886188000600475807766112513671991288303319290499475100054701970836024995833500373208751477799734162113224938747547185943917209520173701520821989598853464865769271832580092737706899550374515084894377512219896625482389473943953811289555678824660212807212653045211739598370844574904981987428363600794717799487233093715629156324906118944259613662896021592377312488099124883640224362905285631657327293905918496725458839845127200883177076948760365076950708029363071348649759538273805696382733611086544084267509942607357096296766124751928499719629700527005175046836228343372528517534580597346841525058568435875147634919124263752989436314994700194550908379906738713669662653443663623829483836841496676326694238286412443960803489170951755049644101910537908434856715186439261326154551561815718173644679548157520902528264101273649404715604840111956878734255288667794207374402960020206826147238215530967396244738783741779771378376140826197284353016105994601439339292583801766920018712789524645816587077900793623726642300908258646315156774640649354425649172766709210467528525881188159705612409196152085822856706883150061523752900576191630164187817623170415536404524666577472480462923380651539943262993417954295113365875504154179863740609688397926637072322658025380258535494804386708364278635269467326632191166551127352089515564411893876660635204181475614969256218886254937743965464806711542719685040206235023502314766310228639741668336513297828866547751858231205103675597382296691378532859948259300582308451313997868346857220268441348476896854100838847285076395697333984420447738736125123826853512093236374824687359197412036432389044388911862177023475298477141762451357406152483634224134758447933736525737508634722339060773280672517204618613352443638111968794253428661015427103307366837268425406727392694171285391878286809429624842921181315881910355453805098059797459094878219530869982564492319818221721097849734826813883946018948003210071028523124891400066704556723011883407963220474130695429214721207655850952261166579516910149965280082663545781372993234312475643884471457771808733847929679979973608765621674041602987872930646473523578079908992154007151445662343043557633386421326691739606180238114831013430399745952503288312032385865835664343764424106724677559815978406870471593180216610139366770934166540443959511275003252040735255149783661020449400774527615849361215599229573310021013709244704326023855156044789298633560149629443842514632245038364589377466085657074540268003199985845233084405087247275170165668009419944054209736208708629554318452315521190493169211774423677932977919480425376317714677443790357105704332784928589488738389533062681793441860848090219780842786677308470356411310060157841420387726677384344229290717012654071208187626715134100062727254970206410231138319260893160364003611663851382928487472572186415293055632179213173054777997543880769572724149390520602638684576110619237828545754298298662090183207188254157358373921224521153290115081778387434946070958715762379544760506095379005451203222947568927527295261660601701896644139045239586073236591754066204815464452669663991711429082706371750744684217416319132166469376419418008702891844178758937990446394413672767365470667283973769059203631852458312449393483233638718293896882521109479941952633815916380886595791071096379098169245188806122165230766591021659285931937598855687806402499956554915203828496789044536394496511130083316050728217844057734964525354660613538256692517761506948072118897573036996671431720667495836147847881929383546462959413404152797119786429303870166424356848090029089875011864465970914199831378480199214625167689749857394484151439869855892609582675462504056881135181717057227404033187449336377002928385826469860120991793914695365197533877583344566874586412224237367270983650206640467541777644626238919998506180420124730850601964035690215717948945698518992898657576471109358422811341899514497018561044991304570501164229625842642958805865705548797963918345849762981203235385151506337867643116734976859134611813539349160281548190364139205215977965320843338909572975783637969035915023133652662149652194706509716149981381808910133019280700223926339307090856108695168281183908343385064181073024408287167192054430712486084312293101134047748644362470267912158369268369143283088929074760620586228067204590441347325728249110662533757692126697448218520873710719137000006910986462021120827240265005703965604856454954473214063667403394809104098743707518790290708828118696634761947982831218998725645930283860274738627530141255729685911193776407655692037620923596334050919208802699054303207569104934216911205776945990787887189366714346297816751040763326186040345955530520257581153883685350754463278555706596885044596243833555406054848289260884965794306997406345902553394058354007463114857216242927841786197183047192308515700454877749574836118551939552996792008948983132381477109709710404843473508586447260756935714916436716692637059124696501956684191927867185852345366837675338114867889065538344837955194829129832894835838046477271961216276496823497461431430773785299889153782054592798181099799502976647229087818784137938696191996714651053096759450754745587402088215944542049375310653808392815007135537005265883472101151800507654307544297249384020003759379059507506839648105894215047607256296521994582061172234261811410902521855757423459211655151101217819890931527981198355836790130475897101966063195124275259924553975261919090829223801320493701583934354048598969347994993352425709235325468935614660106581792744467222956227493305079359416021459162953088429143574600134140366412642418856909739576140249938812089742492494623996250185974042892572161403403434129042338584694334211163607377562799785704542282421096672869878117598319601397508972184465873139991472430304492946328953362663650017704278010481499355665920449097834986909069394889597470017868804680365229106439410655054665132068331204797829697217901712003873363794932732455866280025521177877055321025905350888046693628867728123767260154391574137624173750864066260076538516217986362833430498231119459257193313088440233393623421021578313286800580011002408933253262939415415892265290161899266980989513265408567808453125130854577648961730582297607798481293646434779762475546803801861012428675295944659305975036492934593251568326798289193024926270262161003041024045370928116095839759792217425722202799280955562806000186814373847426020783219706497951004548554246815632466893931286361024836849987174289936330574133487652938839197587291970764378402613859467525569217708314232414648747089983192345051158253960185470640400315301185408480506559117050256893219373617462233053608046418565721983942906333960837352072979407168996705620997476102792216617334625008039829411271469230950989943306916538745398715893611690380424434990839334081234175979952269048476656563628143420116204486338196608802488073190369922774220707596108962044229828745261089621362065277434120674970843503896904032781660082653419089094276621027985769299040649344267712453346700015896477588052329683984186983033866095769227074402405201226552494883473654390493605204849152371755998912559186431691847536280190897599138480665608716969788723035792285643693594291652415567999748086247930325170350608664992311043203400976466799224204642182552412354962109484667880201215882859552079646474241941444221711024787679781219258518308896544938700183615262060596401043254655708708305450571406042290446839826628358982730058989864381179221556287429652355546279754807804189917244479779991575690456930905298470941440756440691761484012677411425296160955983096885417971042362682056270261159645596006319894127220935287390387373791397387322072246817483130737681656421656761491392699896952117916016117668918298046090658935591220898977268893899956695937387773828486819776848752335026692678143466720522996608647136273065513799170402175911424511475771337752042990770061844300109814226661180850659632605481769526127039046678634115864567260007276843708914770081220514827410251936047184461540884704013541583413462068134234383255629884390819901007543496847155523257502870372010094988359248328112657137417738376443246494281720288755644816600991181772325045024034783385873175816785120436409219944156126709768021331765180549327104453841734751944983342896620350921455535190577191098625575746048486327061528867681466906460298628177006645055460255074273136202412715170680466170923988247844320611390624645212502497141935153258034831139462399811958116645950360141549320389390241931835654485749879858719208314770189370729500481304164350755380096978360360797434322438775355892252865261751260272533819155027510138984325784557631126121844288166823460361996598155023975695813573834920130411818419636356989318336170998887585398228954965468238657165157826852563711763340481825232219279780976031518578401722902449259341145296661947470354179997058314669380393227925954130466576362868305255768208605946179793649860575370150110330969730434417156163701431258974403432498108151308480198482487403406596590090247560329905245875497530506180014669285156589846625489152906685813687874114257341145259680953647075957276446514686422422834649546718780973692486405174062187324417991936799076775611195635033299122881848529865315513608352313847676785419894418878664383982965098578204955612048849035291742712057667658588947060604772996206660833758697716689369242451799967020801662746338675207662074122186393140087102460197724242396051715909317304254285271695176405126096483544214276007145779442336852212385346294273609737286394665034564803997757993130744290378178223444329994094300839247019431660593311799168608214651751696129330109837580446275400540902856370353226711937290182012440839091177953568978155296548088053387240172744951238283466101937407283587097471477433609166198278373176933556113408131334907239784974905998986406149674110291123235721276324813073207312335841792880881223383821350339961456233824691719072562252598993661906656234454086923105006390459954869227150165760226798074841630660025450910389903772764412778082209703995451897088172856682709169027471477714461482293955703279099198385657899541935064530440769595457933450197450556935933132963035789329461143744252912884194231478829381760660679204137433883040183177081380754952024968108522048320558683467846716108380900829284860430485061037056645077948155369232065557499016841112977953071942592242984299910225622225365996712172472602303747741087715939574511004296088768736541706904861852591402543425219198172968745424211002200791163544984418000369085906116515814477504919031206648580696011060690985653140677751272498260124757476217686469724010776831530605787428411415745293347323797264767645120373993811040504879742495335831617415378141509494517514218782062835794437927793256521526282879783509987983867486879482397387929316697532148693043143468154468447670795236697394045167119357997044839336503636689543448449546012280178670988028738053704995456296346034582065538686400437854992215069076767527057728277102272980593365971875989536052602279766676237252019782161961429567239561492056354927835534809823466064930133486962250549865310158929574756690546241217755786653095804868011810297727746176414834143045890336412890538935189294895752329489857408372009553774536196171877086508082528979616357689247838256864044777203699788227414949540820905319928512146197109788363327252589933429200380760621691827856126111051337319795337093219762303638379256137299000048116366409584486013174096751426113903647121410876617881709610455327142771177594922392754569183404587640584225425361529351546560643287303556539525421645271401806994127354491779624017929419324742776949604551654540198331955256218081021998548021693664451328187571748890866125136621803083569488382265249703553623827657166637437549650345794439047723439032556151773557305350949410165282428554634575524253738630307299625451665896590868799024054964608576637445121781752766681289947259386330624017685027634598581814721892889576908946473705419577716179228908115592108989441476315022845558006129736094349106982823529119114976576037208468008667795229791578533902663474092136911581640937196689781511748460542166072079457071192549056542238555248559453613136409435898979495640691826245166974083161319130856926509373053936840011505166359864682577842601805423555565198100305907752250093627969246700014939192568796008203643365824133448551004949660280725211586750225133187891512474978357921020969171169853420388231694452166328067960350992857249210792034202450568356516274546881977741854214608499589384570483734458209650492493879401037105195033505310657490558037308045691283736713064997803146958955254828559965173551864171516895829460380978593243542363267851413016601487121722039655365117147866902091895038071921940816086686697549185011725048150014603417149271319607395436261954731345024379269291597773208748224828275605770218477592347661495663734311534539844578794043888794526555242304855628151275580107749383147122009218214992645367947159775857553474760629849936757017837857751353154871580841613648580934389143473292464677415591220635422576266103326677186378608052470525990726723907388997085606666650163556347589850995383317935521542181284289059510037176443877494416283770501453550574600019835372985113863897186735166243401470302150868039893864734819393336661540359021648349401705055109697511493776823207379380445142512444568638167631888229589293574900480760949408136374764958552545514944001398487814270423086597556053811509529790358555766527868503696650331722102722859972492176571863381843431323253509767138693154649085333649428011899549085958472306830968288591317262280712971411997860407147199117904759622415923518253208201935608687110741103575157911666788538462424424176356654678245575753492645204646022168111388169425333904921816342343673350664116315534544041224041146653429273929891301177466034187249126963580298589076507324022024209799981130064288630121360939799744519722703411137433184286134418511802491448601594148021617750546449948114731584881473749561284092167872108493000292829044950852207418204883683152367425418253766862917616436671943285718651867733159065832238598108804487010455856625441044163625392251514378381926187072195437060258505405791456062919286857084606110622484955099935472558498910950213865121469047157102055513065460923996411233655670071972690411988306315519244128796709651320822273065876349852979251523254043274306768591060359474052599515634547886339691824896712901869792135635336620483423216524468627945763263719650128543000319228319332632277771420849115086892439531312409610148258846471646098321044660359870028361339812789200731418649232901587531193355963493465654534517056154959298637801410369235052441089649035225928631056733096554160922892658489817297676942901025062602665921195396273023822500812431030156871708937805753700250219323901429708356672874359609347573510741535497420800676953574803615831939424392420196147557184475015450142868160589483431372481959506717043848750200397418365699245375480205412776012350362278989599920682957340012474246724462163749163123004235760018076880517218284774450122018618018790839873537736854919669002948771159012896005032692856083038067999413398203645159666227774494196894573799069699349905033392485047625617502828735968930118156241215104817002312966533638495165779566236465404571340075924930398639662458661517226573098211373803088909422968168665653835319535955852571522328682443964721039843993878203477548931451292760145419340423773584690202899971123386576344404996814085368801296707386837268272904363714637196714949298830770415484795049785915694057488204139189421448531904222525873260691938121621538430180274640983099857165406165414873580309584194066371053840451066243917424323914583214766048652163927016712283444922812236302689047491350854695255473932370765307517837130068988404867643680677121059736180615737186059129887129922635909182322814692736377169348130024921723982264638613721733258252103806778015521276752527714294864625720379706096520637706543807481136552274262233528558945288651059878789939579356378632712652591103687521177380049255096225424332479602510636848774433486267793766452130508772517652358145549847914132457193460513019302191740502132130899921461882061359281035465640353759946291407388671608730923384132641220394903451488910591419379559035846701109032335669912982315160801231789358860447568191067049534916734433714203485907874806614373127240317421891038572180326691152417376413372595620835248187315906005342373578165861383142353202883890968453552091443916007767366952525422688444899556137602725487039956079778249502603314861605925598866050187252751379083979471030394513855831523187959503592059435099087837059977387031651104812255865511145165593719372839712834848828172110986565037376777923607843962199965550301174647051694130815844314755738461388044698295932950791982776433296513719212935721184199005313704776261353064586536631007760410597998328874766947425272088771465626360179777022601934916250845627778230406395920847601123402168115157654751747826135963372786023525320027272720670403001800027372489508666623176052929420745832450794476665254825289045104781722632214561575990935714556193838218981435088351890141059693453837802599834498967581317658221992349723889956980334791877112495903384517891022332984275744653874265932502328530480113304773096187026162646140317187852311114223901556327391523807578419918129452374921169452851043922738416041174609860769098887406365306730120641238701058534795749681028555756413505478888961152679848347497895136622948005078853615329794218436228390043189742307341905054097054669782569972428896990434361947321603924593263319173477846106140815170841248187521833809503247027031221826153561534022514494108869419584715112827434439939462649813244835621414163186129236248007440862688983090960224943152608089743049769212142848342081423716082745647230801169782222700667109040815398217702067699533504426837084234329413379952505605027330005290109397688487723505929222731768436646158620326966018107195413612201900796969963366294318026898854954186784894221708463203486952286388217545949266102713171368931206042410926859488798037973984338195710950561591779033957471936092501883018719004183334335273595039340098788314061425872118500868705341183236114756747600228974759028334639154146311305143219867600529940941271055197578808631229769130009661182312550126426489247264584871690301670064031243678668725182972572884164359170956898239070345414306248876634180380184192412836881008963801489790269132572639960357461476807058300705008577712405558617971938481991269728788847127202099213794373237485100145173854110955092277976245114528313507969839730665730900156172248669302305322903987914760988533704365552476981075804812153972172069284807953918900944840466831221924907563343032829717230473128113057388619292277179538024634030701793706599438671563766197350408456301654548607074159660367957868788551133530179924394708306555127687716389114873355437226596727447691526657019172485755922133268967813007804750581784349207385532063861157703808290751785583671301536229803756863014288135064997321299852091526775643116959256496723407549211501665884786241463043994353822826702935303500582720180591092594955788278687049022953312867781474379782733397864888831983489966341583738485173805938635146165139315037148879640051048601697953037280043815106616007583474510217891838893721641299537508193605638682773448903302429287684091222841601440751881736100324517793126444341871197411996415234443057407688453340672896838666455592284198773644909270900679478445623643534529408139222476952200398393441386709481281153206749577413209791182857273147406053457719093523623014725830455747581102482468373407576184140844089439480833548122043030999828819011463703075043970263544558955660137421810765248445402473977117924226126515166083880255008075133198487619562312193592627364476008220351638289877491080355108147240612186725157854614462730230187816159172449742135908979792252466071329113679701187079568831351957424721102958579012790214623678600803266469372123565358473379116258929365560424963997704222875422447775434499303732725153885244109805743616711884016920419347383513992737078739663190720960432300900624599179714882603113364112954516898578577789003581146232992772512136410190239475345130862417281509725234873714640002976597694944231006548413842790657543875794805506326926969494642649353421286028709625825367674975024908279978491780002426836646638755189455772101813039703690487823859840623730261622861387804826685823724100026860312054009499194971390525730997371833953089374460843193762468155483544076341537757967961144482318019135610071485504925937882928693149481010695037679617367215760167837618557974708850189098809074606471783807318274645017015296142697321458234575035039122202262648587456784275558705584871928912168971637046818526204972544639582060067500587349534131963344859459014421602508961632823490160177491307217355278403152928720850443658895428158822505308250414606224349392147647347275791767844490991923687507081471237015488595276517253470495690243192111398869768689774571286534188571759363735488598917063278099208448846713812679539963612102428938459526782625570812916983075457769465608572112699541502642080356414526771566801050934600104463099137333591773713041650088985356201381358984473309691977916314139182156504924180168839399179718674464814281436208371761828334772395047649169096326546109388321545547359659731340892718330781616354226255611237823866207723613420660125477740911365239052445210733150061501899644964298027482649980867584102531237872601329413785801373566254012903665253216019598960970846005209109897751240645706195191443379608445316641645014778084370157298865197310519169775059154509212163347823815927514839221203040518418884388310598313689694946996748852591632406131981546651257218202779916081845068482924513837426328281902389965178091842866922552959824566323620107003738445634868510158114935033673419671896857498780409145313816154816681236112602127683078524780512571004726920134694954214384066646288032582610016741947281842681486497314875618906276892412934365922589203752923994605440445743098696496053389099826207732426598443699510341360314292335610167379164381602774403733919547354623923307825360856154004421388815115101284673497403272516727364873873784556974388101393952884563643776253337081902842366402242256048752671323154808309639423447600914619491101628130136751140504505649431345139420131069700982266751703787032759631219533510666538728680963683881928451805815608545494546615764000716041557295399018932918545712612124642437392424667152051637546088244814953167588113365647554725451830194005431310831304940945985577009248238010426844681274620987735654465158424176702483369149656572528951374345430890346032021682739413345183966262313466181076809199527016323151182007865356265138559652728687701280966901926575898289378575060238956453233427185608850798629235830038959807583340396732822605209673448425706031774998012406145633462243238055290548162498879828759929462966776844354630941996250465977893229560482397299630774515713922967618467258979801690828202643402908394195249315551655582830257385447312411164049568938505235052434718133271415830264766147317818070337262049811317549319332675312171905313441928095377809201462206784316627668160155512465551221920369194677268783257742843092546437062718303670938593659153818008068857876091093323953448287507684985845810718194021364847818743547958261122178799917346944716745037877663176968725072816730755130956775046378821516565338125367155904393549635244432989598271948336683664402122889651484199144153382967945740619850699604428838056464319117407417457294548425238749147802911276372762118361263727153663401132822014433173346357934031920098356563862560102950164375700791879791856121668920435917448939708582042237556339285074380934178521447431194650174247239269215015749255691157573358997667664040725402808739616997716782188344166191961423884465334333402373695588310560104919423592157456063027643898020264511805337835078939975715354813599535883541292000545453283464056060685675576113371202024836087582126518581377516506146100027510114370404085198533129579492160566666757050331626067592845249649910862427060837358456365032226594969847481002009626735761413185903781330588883821683918318426837907025599781503348258464972364099227203882432309759714837332458212838259956530703486596564414853159257664541961554501227904097854156011150918193727201917813799509059530466197128583499455425847142251560512078441049434751602321856522779737426142168205549988702273918124315598889626105661017379174192651208028252735777027697096741907134054336331242620475102605839917857691299803034414785049815849966486264820842753810843969966589650787990916462972260128186345562396172759570248323063287516226545383851865185727529287791162033014698352639322818164121993302510261742746704897534225343877077411977608941142100010344635674584963064526897099729247312391997869447096438521258397106486154375526003046301232100116695399568846012633206274724862790942258265683878741080542755302628647071433348886864427822285928596227699568136588848079909681757250622921643555808597790195536821526170064414523705376924331143867619696655158916041494468341960205424800823640971229472602161489248814329712645695539042971118316150739148001741103547843314865047873606924130168245000721008569447257045730392973657762230609912664623646178786620288334411141950685902239860916938210679471532554656945471010280791680292516599307881643860277004776157864291564948723853786091730556542206906021558503854239217818913025893299931858830902608830510149806442229622267906240181570013545477358927065960398837727549963673508479005133073955223604927186995166855194563819132843489651757491268450224553726505362430153550844151177921585534299787933490302406234620347881264649522709290698277672570203579443982688803701023542547059198487739710032595546333993336568885012909570418396047269649461920930928542709208017118358685180832443751127104138996599333469775019827213055428995539019894970512417876047497867623808354282232931481495280167980025901239751552647465651341050962432553583936142448121698494042753179876760503220406910110901584230658596213611800158081261392918270400688898459925318215936550511253168595244636125637913748292629332961800380883123075650906429599430740307950396275758009090271042735279470191133255545237609625810079624879587364465390738203351506170938005208840409164021328686967345035883516825746859173640282735185959241261188922760357058753028942740494801070301587085892592863344719801939101538107365518571795222123279306534870042086614850483005876444262712920089380955587903391951492503671368445496309481274507431560737540205601002933433841679634180302491185296318001166620902197044338519598066215197248226765100834524874413081266307563534890123004817861868205509546263358430500821495020869350376132869326604074174866414064525162430520678547472073236291184090941583984177571790483204560826614222756724760436835107670497306055829205858547157563674048780784668479855001859777294740276993537375643201909747774179619341279513919569489440925805425013031493193547829755027328858249189229999432882894092839119964210879638788056626205199036313419475559816161708605709928954306069605403152437607108468893353449333135765309584634605276040778296983206414953012626613481808341879770918073484857189112044251948391661788648892708782417780860564257843020931167114610250691081855779394821559396466676586037699146619791550964669936536202857341097070899989675194031874656503501642014278566328359417230968422618185474095872653022209006266765241660115209620197595193575012241169553620033621242989645992709230019506816509711165742513113925097387764124324697311701878188433777144740203465079087058779395795032670364729972896766031624522670233078189562882706954238557243580202399633876845776711642422884069981143998511463321418756612217320692854497308288384193711406787519855561102733943475972988262845173748192419373977888530583253010933474440306845565827474114554341509871925594470842691709747147977268950642658690286745432289905723909493621034975853212268108380803293697884175729028450118039520473380312086930157893056511422823726110896521492551024376755717587807532405401514618696027204811521122107310853844309909518823417048523649484006080113249442248795963936369994724001231868784986539008795013397487181618979655582255597728963303471672790660061206510348274877311650408749891053523928327440506401088823722683676224672197208078510500050824871846984261248421211138421070653669361076969627975586565924026079120691121643309769995991141479789015033504726842896429648140577202963624359423930397162361625836366229751208791099313281709966153172650665602100475174090361788083598183798212497883817434525825151469135740650193847001508367420637462234025921156727997439916889467445137620826488696610169392041570058079926545917705107469470898042762112478681837894329644860931424333887829508037989367961604579485229956288049820010645658886969644417185202247270709918375831506443997770456981516806109512146530579151781976025003078097044765827615850249760385817065021805004661668518706853199669724102495356550018462226488236367313975937630107432433670818878703669714751720622249617450175312059587762930148798480059904716963192771232591542054881867186133351859316874177569443521849442852980805843549597228625908403584193861081523595826097349706196298464217901026161262672890898863113243583839116075291609272766124003165005871725404559601572042430303646503858798864946891619795224522967793680192212908572169473307762209918914644445594650854600067480639655964485820548873821877583090319178104584975751669281896597215389543228673072866605622959226255341536664854843406955071135770142342210735465491055873291607310590781597852328757465563093884842649225094458672427179792266030591380702003877055351748455173648712758432553621976209584703747572662426452367883982562097852182099828860872967935377295463178033499476064173506350518609590147137421314083196012487179368538249859329461634348463533332458803152100152556099351020283617883512474590975524362033729412950600125917232657702673281063588048788485090257608823136070635220028159349943934879380009706759781259941591052820998873558550937271572110740765380154212131261055690910589891741422585966697482344298378490088665072217776920278927228921938900589132901090701270114050373145094847491589476872914428758468731883611077132533651163818020852013592279100649478817218611700269793120940371560863094431518608884826278578152589986752298857731110541847424012651658165634651859377470160126586104318638572547255892929208139190209647544775674082819585762345970057237739328770647902749514874089430681017971451550187782426012871762738741891401621906270166108215642678664327941178041271691880580959423421108553796660616881339211741926764330178966630860190184578231418018931402073066423009505930586466094732982644978089522247987691085201758639026845758815374592281186824018941041653415104573270011096453000286563337966743283124379243514203294127482015727734785384976081777222414116807415301436114881632589420799333372188196180818718371996604100066544906420033082092299450409834651481726996201529254125103626465950649160931482736925199687287515059142437512373320471523870334917491327145715990645215410698358666501003615699046355370553981142367062673664614130773948576015829541236634064491660840759156731445345491489356760790712766907571912695267778672118579087159312426889623886944357842054265261328625705517588348481960755666525044481864570308747202315412934193648371883142595505046514555542257618140101676536711255993737678245466949586218342362267705122888585159549435619108523714959603506409752728950657678533807376559417894011851689360280372228027985823414215727989652097201893759807732763565732529941472309454251917046036045322008060705910859944806568657091362655195994290231299929053517628232828381745307673558475344110973330978867352731636385781227922721843180135247422589938243910895668212726556755677489121418326508896612079132861805728794445001966276273608416045217629640858627248022386392817897624112277286791235720145439061007035124232437353588611933862439348153373632911679301085082751311085539318325255839687136031380321259113383776398817355841965484242004277685720216377641948795917251683289969099412799019360227671296489702205160512261649862197922680880497632361718433064238197426672585131259563047147791320854224866545290545435610412532495478680856740405914722975024392586710558794100221813955160392665038170194850193572002174650672754481763420964478025374246886748755151546553844207967610935435523321699139051620699305163489431498857002428494465831757346897784669473159450685205469699533088725735491305059936111014278250754249057924569576906092739647745676898995018721601679068407488956345995606643921971126497438722916754204272792525411790039033085149846964880452587641637661113042920790532319973077013606051580675104707965130535159932632996310061917985228627864350965081550777855555082018297184892589633452286103739770945770976268120906670983945486710554477150198957349536207092682719038034607289399088956673347590713979920791526363422865998515632168979104000522227424737515683623862334529092557157933609110165568518459153463827682769652295985561015676154478970561636548412475641997692153132888968368126777617425385498368268802685350698737524961648983979764156365208581196215045761887450640971974665074048229984269809339797293366651480537786909899029295919815276862024863323234061660164328337041749525233924369248734541206749912315645398558432967132880010252524225618605715051307524322234964203455822578719713536237071701232349440651659223671466036256855425584764681359981853686678448866134173959052985840315681831561702997736707870951220740005399275410642720008835417994280556689969322038463181670418029765951855320635499650162509412956820853381372832907096769246143933508699330675904238816454078648705011415111410464384507019190645220589196637742129168796242251982331972968481929351462756121251028213816321025627046149907862795738254357047983884846111341380207013262243218535824010510402950004719018287721454989314893156189451982409101509446245338405086955726011388455007106666979152607698742547420132977570247506221919181637146870906855977089537418017345430429080783191751921585769503208448530174666467630440247338407165192271238711796719814218507938168974977969464865423582342695930657417867967058895884318303510838269316962971643446085496641816664733189858056420453108065103351739720704549138622031256884306582214726217501549054730383042399955581602826211919754794804979924632067048093820096471601814779680870319623453093061707121228932390630412823941543279168723769935495978915218717002239280953845744072252085262962543676871101685574796077540169869468674807690532094665352798844243707815320587430349402839362011021324973154134231733743395206387407761227733003708631560090036596496060853819510798881249938525886448195802826313102404076071023826828975662169199320262026910385757685373185318408381099836503504228775664621829367389576971182791799613932412995614142870498269549527466941154657478055099820566364538755568906052853177120251981801722770687557921033386832428320170912862514449433008680704690633048023737561136618222238901211366276056152338683114275796311916141456772855825771691578109497089433251836988116056721195725769244852345765127161114332211856323859293122602746188022957201896399427054410023835446558567318985681244356143187066938924288153896130298083383063889434452718218462645677904290684767421189323979806698133555050083294082726684494740461504439110784743420939659618985301233176069327235215035905717953563893032339289810101960292005690096339785647269776683641462581117357245209376474007749316732357399427198438005810801444699969265646560559918442723970924360806639457989142070204734298319955509546507884345638107896066269518332104266108769109423087734265260249931519976949993063515311164325904231385010656928150340176762375726892277317841278250736329993461012665167709946469966218275450260147166111063287659622927529781799222515129749124720381427573697805884448649518077704462120195278420427797140595522308667957653237418219475210323230227986630426521292561410357241544968619607068020341041938007101771877607542969501635738602725493077673940341113260824901498352722580076545837512105263461367252070820310899440408667290499608940894942164765286759676274075448097609896409871814651405046342689270309167277010540278157291188565918669011453303406800630479154986290138776407324681115043700578285963198937454729813051158458537378963440898550135097500359062817138154148676556373955489499398174488927317607354863891040296293421242691136938009286426414590820509801176565869158295210455805303595561006617431916609728556708574034320698528995831266707857553075961316379569581672814185993596378552781829890950701350660367716044392218891140570626034429799979513335606060352194254320776259339251783406004872901602722213528937381649455553414382885730858579847585302151521346173921194451780234690180878429476015304229960782570941590990070958581950192748759113752951924490470382397844096863733386746938837314284865440891322127004921090042114126245135665450878412598533765851177456363439387465651604453290864250199467163837725434433766996312628035211024427220113844487575679396525211546647248869738757759753827197906674709579980979065204613673951327943177470597386158609967686939193467174524868878638883820730967283162125991202334553734167063602391460524353212387843899210937299526837942054343874691626853070637539238488841085574767976431789691533839765205067276877921808237841862969697466554357977631357817295774999891131280170051607554350440590653973626304751350470784065366656150919816762347734949918362776400265359625446628075200900418738983303297550166110168909512778271049519189465340119094214233013829800812197805075827100362682311722884976773691764669489536053572850286967442054868642920130438721165924109585522732548937329375150656819008868214207334222697996948518762994596246516927688007237631457847917414448576095762657037324567602337657515032740728383300371819533047622883406809659630867536063769646347449011331205377213634506904998953053529097654934256736261668064963634392957968061171610026588773150529169898882516764873999184767000004196297019638341327645265295813976145844475845849187850185607016822768635931400882981173134432868082096496490835970420774343934809520397073053967872789740674121064953136410627863311309411377383850305086528486357891042957587361551382861453383026062499744774953666012788308996938409774509780574553191952516859323661356786111731054784527497660004580624895768700998510860741459276558212884325712816087022596408309937501813493671901726061417691581225652758444379598307774643651576246422498719855727300314805207157380741046325587081618539161335178387364783576923839095953258612775561875902848368178718966392875170449995259718355960804518313289937090806326413427826586535722176527822005851636611690463944834751952082114597830145375997388205406049973994025526535796179586478347886757420404871707195420766087245824109340531481752095634827114623557506918072688014379293432385099206795607852736238389698790087830063352094743475293995530038686032380480496291512999053885487623235643837080814747415541680236572496704029342811979140625303411040053111613467038231488880575679293826113357313744961048257919040524417309730964962447232423564893464902933891228107033420799029871544470666301652905248826812890237478271726788781546502981468000711945877697536284424969433414743819858713895770867316388761241664358555052876364022258708424419986850791243410831849556898594733341498193910155808201600293498487577711715941272467447928091748197021257858489133819175842964229994133274053314747443429729048150760353853389359380588373135297784822105639516113511794916652931398674434149762746986377037028286909744637578816741325121822965319749652888782539587162004221573166809329512416961000898522992892733117761833706443374058626024855855979061224215386534173027919751695118263400526170059450994985576468895388093726563375753442917938345420385449936516009836809836348640991527610393706516739408645877902670580948113027566314167823388136105276084904688645442848146281347875518024284047092707754300741336639368968730239452983071796829870796669560277719731285984277519488173676612591134272532258577743478662978348731602480798630251415054828229674676462273630487150725830265099607671058463599539950571846034462530280387316624626438296425459186846676960489023810261807934691041597081301132296778913954629782010936050826349838635089403560087134111104777514624579682342352111905381296837633358010448827701672615142026254895920888507896338174718399884211871918434150501860998231241463222375935601053298733621353950506260580832470141139011753294582069917849544618261059426232761994726967676580044976411788912121263516709098852245531184163216693676328052538016708329248358826093691406928467406014443060933936335372271821272968376652914889363942935473266600566160909307904682407951939165635916565577160326285675271392202707091567281967707479486312506817420748933263961192713557231206172522189135341992387809147896423324107801751944421521064051819594603930952091375619240904884288385952129311089931241233479651127532401277755966730880888649388065115214018901382588240905409274418401994199613046203858215265929067046249298961417402190605733221164043665255579754085202724523616018810228281965023596510887620321566265778872742954653924687985068776729395752525240250625075658975747139326864508537870105406003264552250054979695348867333378646578971339153888704797838045668088390583442303520539948763701003238585771515032125834963386031868117960475465452486988648978431555403534281364692766988582909251124971971050236020662201792011981737551797536542942652138409909182695454110376784150464751730440207888929285442365551855926289719571966562740207899532258452955745143045305939706334090581320639767333978360686746144965581924799193149390752069525200870728892383602841155507055791144697625156574197196243583065800980256499117322985641903561646326950829003868285646087461726474139179317301416947010373523659041081571765571069035031244746836256630665607036259579050740815663414122860404239517081696625736205690252856929031290090035771193511988954568038764313046885731419001581416144064048807080115737759127278054006173083828963534169730629925743203085564838436024276316102030700656213590800059050266351452883026850558383559218491965436408383740131078234874845981391022324083373724866908422784893331135236174668029242618685926611530819202086384975546318236881405135087559952705300321993107004800771956073800651131014191223782457941151314948682762175215840929406233228070242220275033682158656002622940179368060668039573893194965034159643360339102975008057574823339520439947461793740802560692176493372006120324918672308815782387770094767101450440895687542296830076516292071570545105236345171034464673388551953014383873533392379531651432396766214640343748112302549456927274784515856278202214175083049976728175464860671425985942100847043252926389608702833740523332061294654315890265018988091783263622057027306631836840940882848953238050141624836127414165370502926751362299822120238205080079977772348792150335284401047710685537885035229110892887757514038415599538044413073190479512380396595562551734510159452091593248654509159344720101958702182321874029689263930709784214353746641666250461014549609641513539808950451917884431981612652994710656663112997860398212219806738789856407617252819462064539751342875707115179113023203645752825967805437395862482700554708260274428677746765102960711080252522467060871245357751840429713815191536305724558714015024987927649606436539295039719720266605675763141172833377626888145635313024884411063743569332070823546871900243811023423300590487269844839306673653953642268976101726255744901386236215434601424340444490705772484604786538426553253178628169321716949234669754982055628634280022264140219823153249466308248020841830004263909573072968750798468777401502055860292623615227512934366351443002147886979971470097112348698210439255954333253694222421349873981852893566737765721431188458231268433639821453234798037819557393022603832503759926760200200830706269537724771916150097342499800064601474252500425415833737146809512472030359969870515946487488734550324303565296536202195558377169364906466805923681577482631614243643667891886246629022102612706407895306999579692651275720832371757545637602011906558077611069514941158429854326634193070983461081878491595058816066865176013326441974866110980452256486401395407527205592765020272412560020564730171461166906971214549039040229632722538667074073944644880200441287427501366185226748660824325982492654099469979239302175060357702995757106477112401980512473829372847715208641651041183134053857079973103308719500071281080663367392267987890071307190018787276665920969049578225677489244722261146662770831205491753221490945239883251237030660826584965433409071316064310658016870163578391115637686617832894706122379133423522502704603374746381668345415503525672157188985802490488886285664528971073568235794529456057546481125562920250085962075136124363395710716096402352138662866455029495900740492362281671621915898848414757410001012544533688055260732883165112353637464134007428949260554523598076754992755394804195182264003657074849430600475954388045567801731896361731277317863013776606055236741720332581616830461531016625651845359947167491199771069534339012162934438023869842911309371630037159594742917882776897033210553172361117239601287049741605076668994709633755035620907619445206466519066074523760505939109120066977045000773710284304036024282590197522049121830774377831409161912479948953917314507046625391650875483955115378450737440626747146911536869959015439727618236575537047692843660217855673047520548800895431117873556081347305895773484753363616369880247309783765971856432439683367905850436142519607559065435357503712551763540376058487062112510230332857821367917463520441999537759048513090355843831968752936284150928106357541980215542763562089614090667500240120558643776923383531868053679117220300402998344634865490701622273859661546108130818596108794080064167551168866491865688711880259727325666823832748937533726203147233202792637391569517231206801047544831675315136662919154979262746090264336892301152969829394957722183885511646680474995055380580428715945796529665035631645318716624186982217056981159747490517326870474082452484222559539022456575904179022891377073367398928733593273823365560620036815671116004240011234661602023337140170236386701143337612736578079217856531802677434001272529055813011848724330830473778678709937728327611861407565489737654730318133624472183919452894491526327106731080307073722399209288026317559364884128135178617806572306341396073367424561557823981246502207765960972897443244586451208668423481303658158739470838147561256237036919802171883129141512477552818478970235888689121902915282214967571378653388563592006413229165086370419303447563482114117831640637648611021063657219733137786655250097038380704770992148687641533054925835546927097326897878669468369349102341598379156207336285602353980492402820338833334838237193366017226430768237577248280161785246541912597958866242221497678234053094337144712919012097728386079667645914030851412367222560952229922405867759742455393922767825169066520643213351559481214454386661339823274174329126384271445370420257368842302912255491240233686474243041603993385538597645098389907932324682404329731604385822440144735241859509412842191647928288036677503007252304012487340124912519985799312741417596379186726127793672181735605289707695263203700210474467637555409082256847810841258510836938979533061028566907407690641007945689008769316386963039930205642331493800147349002711739043989920038822852972177102750816824720711394508296440027476770579875796415943665885664903395224525691432837861664500545010994936101900390093526532792038307940088514633128198596891925526300791530712309936101042506209806396047909417007554233150190432165313424383554694385874765306393827522120771177121880266172828360659207722333724416573023935713787815617451070412811010166066516245559718618861444757626894326438324772725085009485794047718711820160774907350914001080904768259855088235756298262885514243665697662539014370396710517510611482188890205977201929041364374714111461192032805772363106967925383298177130888258785235768665042782220786799351860342989075434823984699092783083303669913670936330970331496031884671508175178650979527579595978189060683293773910917878664736242756322475640885289963035777336076653678795474951736319224926413582585193801857533020223760572971625996569952513852754227618973974555667755269160141750607661447253173701255986368140829102920283872756147263315002253412596203397494151924252378827880402031308657789230425811993401810180859912230461482599944417413249539199474408474971446950159628169960472491073877343106633410833580831505631716563036500559551264287598654077020995785770428227292122805104577539151632402726610007779427921861048161354791820580964093162186717114423643809651346855868419300522480051555430444119440773268880474518946384942426415275631762844196016969671109749987936546616554153026844860158000142913823680203052464939139143241483866988617807024263119609752540491385727240341204922556105063553912153092570434565651557779731085250745800759694731814477748283825019635768519255118298227934841243449795409425319263237672084980203459141833829548169238982101214986828050540406722920952696774187133915740069544524912161328477349604933924561209116266100727005704525907132540013215000928212442180501317949720139756268796199506284706349230447049676381771652724267024954439472114261282027797287316044429657520222084151315610499899094712505425443691895175409295979469111653408126430675093918711110832980227937214763867038546876116669823026374088499096530054671811007343085677469582727985919318447523791955889589762998989326820170029489724550228580409962404898906416688860224432499778971881406924047758795542873269923705182965886388535977292527462558104491258114586750964708993184751270216954009295441623496776943968325730218723266155592808532226240821869617594267213059281311713719602684839360779757386274644036225873865906867052211621027902694962405175103037312642171665460222628745544490068691102063939737008213715056757681951002979668144385294802766699620270393059137819877337544696121188620347785406989765353427197294532599640008921320738178553062622176121479969796308625323752713545561912928973673222456482100665666172132892195857165509970216272258766219546343586509730156592876686950698941577357545707269119706302831834179574262375046090288542837895593716124694801155537227763017294389442119339463069097098053968658634434480708332234094980491792878414222111633125489876245825279833382926300672565011857480017397779744921629848146103838314387041409102572013301036917002805451746949983195377359265650919488854994944338199586074949897446644410086352383013843950422085057291106015015663544321715564861448632215346157639104652745370257409039251333230657698391339294666035439876417177144513220068668706445379436134160815626987325737329868183673078568786471204035998140886893911796920690777620863793932211526091804917398606924005564394160103454150345529346959630690683608366090549774247417528485911879829245722265467196862452206199115697666603664389450881265445645599304515791503540384523023620252627545000491776094955268501113387950767950225321998203925352116533606184979083809994454207064597433527010243285206152640429969447790460807795753121446861411424655142520354396290158775885547715396560597690894266825706998087663915011996516619443303226661758811556329648660183679986895115755655229298763604925984424346093533321524215482497387654849925613181739047604317175486441917052547225414799501271609015185568534565461322366045616665041550664954822365290393507745374287453096685959441828406774807335541212826724814817212467388116979695416614808350556008269225842384677061108739420703357535127701086076543123881977676981204604822197658892503812557915931832616690757852200159825926646041035577913350462794532294386519577636711935134210161024515129533128209553999912287172296656104980657467385875196852394106996306054232920131496311258184024546524939781057967786451469761541406041811690135822040345971130192731503156875945948160365916055941031272359338888676588944639857616150191476475295601461231614947709628088437613896979438053714357571769171163832791816144222951779751975566631808459682542481012010370827822299018167649767722389270918360350951165391635938311724913363313753572034350194109954105102648007868148153166775576651950526996670307166266196715337998935402316281511621208743264843093509742298521082702625611941186493455449837084012148595783682187727040686611613435719711517308458712864796285921442857449299235141640239142939273188059831938527518085106494255574539086857206392618936216025987692995365752615618758280030174268787339415717355285383855141963376957677517755178459410298175491723173175796216366834132335948833791593873261039342424282291844221010056691919726389223002541678172890931357837698005626440317260365415233552358227875665197498911583865191728212620986126665617732930809295053581876165643683609222683336386482005638535064011990743492630328338388256761964711071354134272605345747264865044635927214393309248527064498525485628926708495106490380010101998442429265009695543753107685310980998907209467285224628915367454915792948809383464022468587905614060299926537105284215926824053933484425844916666669860152964347544934839701703553607891998335811402443035441624260207952508379979834034363362632254449614749449462592577221114927424967781665629462687626217803174590745782285257988724426633562509857943643134451712159886989365083921984506545758701782268624758911142270722473601510602821432693155528243171835872795535464641914909994020799015974019167953790006739513127983301045200496618027334806480635638366241943312240613588612411706316594072483446804348443016668562830739545164925583080265709655657331846740404868842284618370408559539366047699757614573178203983030668697266883439832880880630264968421403843364151240455389577021516321035444169551095786247486789789694884350542471543586583187076674398594540726919793915642735814488236043697794099072705218826241567802083419442757638947457900292138707465089867887258691211383774193285460616939500615540516683646829873996899667968134430089785810292303276706031901165132209416796040845357534260855454900752294584599098649015142184272219836731985333909486136800985384365483231104404180703424589300854168156023846568518809879798138673741246932646798477280170033662486635677353413614999743668633383675882834113090233610408200623203840522998900665611315069128617285484044549721764518712841259235026630882390881439556289453171281557481144221603959307312236067340465893377202834156786426043528549355114466083376033943229046688190878640040822937555437844827140328347258268242605120556617963640094829534613368437839128242083663843831041152714445061837927544454077616610969401625250386331327555362741854962880265131770795642509257008165222810976274416988875693226149884974522427775524761063705424287269773969187208090254240565816309261960205313117501019362007539498278883374095319863098670191718355931977660524854632122449915198058998265040019849808800877553238914833780208168358641866316777862313103287306721403021139157322953745239555926988123591908798290110607615392354805503050398289534555053248303025847317223979846886465283136178065673925163075563680302891313394828745969875548507444061402510855352103038895938392721064964766056675020681446955039182360876240496717513212433227857345851849659603005845443426623132085936034801664581349912191520137366243043291859913212498517719840396927809533472359233060097572142007321419542632722442283805030040199632815453927087510200607110533386344577108160568227523806448349386219715129096410094967328597752984554438592651904680758754977849691588185524373878528956197138002189943273726680622440539918107144201436541980972658833715956220822619629002049763510256632665644762270653786518921707234050379106395412730029018006185787353797270104610380160759598216460913608775425119093864524088316306555193110338114791954128121122068166371702755986784875884834099293807010390460574691888135791368277747367235553032418783358636920738466043722585001338971979150622456358678062782159523077957776194692920767019830772701437039171923839897290572775168113176281152857201585978842034127780627518882975257483856374099907405657560917295330814331150457820569030501646059412399768017419989903224970040054322096006379718501641069025341048395699310562108741305263312818569773170750499564497654272409580855486321347758407125029746905705925039488780337092090723141737685374432430407518271834518828391995941509687415766289343615744906809359352089320634601652145681801160726429811939853754559302323052743814510883134289233724826380711264350625934069550866354086238461003925560644658947283978939786591034408195298025561191632046360574160968559539546054942167226882682432408302243543488581384640937626699984846180792620319443601756509119758827662336782611017986943131265876558063661586277716671302311929330955955692423893955874335018681090349662839153592931610520006349641434602494915276638105570796062195771169283649320258038010218953905833934640612853075408207713830021467447756118517661531309843043470109898469958403513667256083353539327001178930956808731538565770683878373890466593068486423200349448486283427715084475473410783078321536072343809059730864848231795065346671660155357316588859321586816234489015754090406169097791279122299430119282219628950241654110543213363549849920514318405848594425022893343183033123798995349723429983411636080702571065185625113169035791187496599023909549266020118607147540072626050586924729493885873916205555880554217659763109127755460904058601477750116907894471665565921525820055595122980252546600727843001353531990983638912850601553593946873549807955451969799986951952473168843896075635314282249686009559344813270405167515768963649609722567162326377506663479725802864508340103178083699525363173084980421764793941251113839966340496190598005788038136902419259464158799776008647518865613865785203522509432530941293455515805281939059020544748094528763782962151288730149039768794713581105704821992665168175442085299269506779869669273717696405556396842262960929842969439518457642696127976263355822145315413712724461514669540796223058355433389440142135711768194510387470567189674981671675498763564824482336727841897357103854945270540793456315110895087489741786409560600403030386351906160364443857030843567323080011643197879131514836393796080548970120342112915469414955052171656912676195042633716299773824187691229265607292476149615525652077162352208674638936923194189800375113744838842675064890649400001401403144995795910161201464499483955992845872435040501129109949344741527841217968103159947371999923724479605976383440113076385056340118943308967046922048280578894874074417734343834170303479615908023595300605788935110270559184547830444553323676338389317285156174812999128212973416609450259566441098499702570441950709790692950880537054301239148477019703868058287586706426097602480204625659529906732840485632162228846534846166334922786593192759901697872551955809509822905419487924220414437095940402674449394041752639580749968439402965336272892580943497125637386904308829468401924494410540601625081085997669051225893325161672519415484984103799034623122271449105821211310410148305844267754922444992663372994589416669276219755664831643150956870517120445285200504920330618023390116978570384518382416853474977016422565030178310489862021190911305626343273757818314012341861413254884538728752548098999771273231059520700183024563122550329812266093724413621626983240057336165810773651694909901788707022331878870799866087299148420217023353651181570768300187955155335554196963416837817768911657688511632867489157301235711409670625928475017590585128983408461297079166541706433085552012680216160419736981487715472898218088304897585233961248672038924682439768169600654423181487040478232555522987997948594996472428496103646501688277153687511688764471279027473498917766734522183069970089999072434095287390057764754808559051191900291881167310064030932310681240697083927036981735794140536105566441387902098074190949658939566739351802616856958511666681076713605873307596889806716820457833139466333977902953608249705898477793619238876970582609325698554058220803541434390885765931991483121205013976250834084465220540384011069987658639649096289829172448389437266092580507397324024691107153172827788301617386490701225261206517508879002481200844306731016772467384634619830153176136089139471617922889114127784811124549369256445461781163228140376560456090456335073051935587194333370417659042406477300821421884023627563844331871742597516639807938251972097452899859277065993410595817041181272471636752249298179594173695598989235385077756669309595989147963990384952220769034850878872839877466700193087894780754056800213560593593528154575844024437637321594800385012618540233473168706322662902585487173621347062841616407450532106218748049945237313143388514858969460057175089119240242240786239067290481067045682742167624856690983049226242792349699210533027020225927604811994917852915349993170394689669469998021085181124610841858938621039016911847345342836559633606316179481013477242551354708967195514185338289600841711758194237187293065314708191895505630802743375195754042488204427124685163232630968765299681785224713635798315144807664872479729601353758229743296027778138126939031467052433843683691350737530920864363517557772892766021603218769014472556888255573067420005436459450933800169073570234223604003006294019579476342655481498921453291820324247546829901773087223307090730336730960160682620277571722207604044835805627661337275751545840967797091893555466306477007299690903991181886409181429892558289905014874063341228753412041305523900333726429278771348116067437824999954628467707788599100282775029327454855332130685001006658800537251478804160620629609217126201397382952018084836049592697578511697571074298391322583745581262546519606362856515607242119352879841835421373042938282171335945758619222248729076650544026379067954579241828875419109177046786123571019620687671190989320063529137312356096720990059362802598212114914690805639367800320987420984192650143362636230899831042444934657558003122233821125511047898273211419059845938379203636961997041151831128121030910673725200557870313282094902678479391189160554263880164772505436413663036303296634592999814045176211175047216507655836012586099530495936992532714609303968728438645921920942886417923100766461109148183786042757564523961476650287150429326348247401559787578709805706360924938896476555786507355934954433787131314578877289955307850079787783682624981064150367128563439229660968891055723239890020193792095495094993637008042869614811516043597452451958265519430676522862609846480647269733284486873869342745367391729509183113951944252542721940824462853578811029164369740259829922347249606612193525522196663089445287343643912288928132462753661793295580431169734825062800075114869877282464040494223226611583780270814095628187286683821850270517827854113066418214661495397280590969014833108084300229910896325714808427894447556585816544783216085790870077606457792999270187352305757780910238464284663287587737002795517439143860763775413823878377961436946484824170821884025712354911241717699826718042032472277243058371104484703178068130928099916372500936287217087526997909309323911918149451866463988456027612796043549625360418021072069990587075524139452521205698379294562918552273198677030437430488186713371589873719402903131251352235213978313294340615632557162283622496549691681801472017953342596221708158277685738046425467725378684312846163109582642998006428664366323031105477632601571438272739404678037883781371906988227392144136428842163804663501752507127962117814627725626531406788771293779418308317641592922022849397268610039626170870727294871155921663396900775518044079625925044788105409371658716433167706161052982657520263216387244024131717507562682357957117861551109053039742192576223116148340336015259474974481345943073659911808809624321226568795812418642588721977935820169336333678500106392813032489299808886324487055885541383670830838995598619749205535295892826227980807166388560467111762077647102203107108722048751676411038048645753404506533817883473282624629557755590222290931892594251338547959117728655698965709747283207915629684547790883563988665570946267051263556212901668694793466793980670300334010435838569788837412905064397849630361765233787409479175816510397784824407471722753718380373677086093680606146875288000380200621811488162662205048994676620828536247102119842586598197491445990816558990420860964906649838642305871817974896861266666531628708206544010762900838876826014521479114602213829700054918482914214077919074249620542987862562933118236504440530070421007788564150991325763204989902876430615249877797051423164801588117670965497507452580245492817332617639312480310284042166254050036378657733170810107599122136994429350203879928052099341010131741263936755498951466665935969483221630288584631214290632920499805252873590807655263486780761036787385469447062139029179869696079773410658529492822318872438640359027848708407721627827493396140837848851240559697653926316755832572646421662800751003419373464159627777243475181459164835945194633965646676174570283014844165641119566691522345373959527031073739422235543652268894498794172365748570576335969321249227953180792099083320302634337406614479082780168703363700628667527760622030944594252694139076904756279849257176500158959640134404472450693722797844324578779419414336205694149478348043712321818832688377123374856033871060355317840113180311689745245965631329741587329392669376100866645279414990525898484935115107437069925806256572702182889019235917487152689170876943289869372473354865557700091039459505973849223722950569667229209787146454335842369027372001640597078186989895781156991129120214533877804376395434604381514445897580109502981289447157161440381944306534357192721824664258385885827945832275257432949472142860416544272424600087997649484363531611672020751465183986648414210374222776557140748569229248611581600069065174940892408348551264780713472146009540872880339661264815581514003373644386972380744983474448941325743502224306920072655728971083829534117229904566888427595225271509811441693710003615278908993203080288329364089874300516325297291780881356710743327013738534069073110383962422336276458229729147462392198928891580907668844040162139754035557978508188365218863808825549061722204658110014925075001325239752342836735536949892961348962747631121208168635931036403667916912779063916158769735165207418713088821071095671418488936142427114012073057981809859038376611860020048303554068161930585707197367763506714996711125906658834691249311012625296262791107089278421875129203169900182893431114382755034242026191891833558494820945639720445407943656952709251812261346296534011590290814353821842484698966111959930339637765286027112984379067475918538625460186999146058183602158058952646357028355398543042991455429624371216981530152260192997385127786862311638475769455700655153386271122270041966389022629098211170299348138600727033459936774435434057741217925672496166797887826746244777683094393899456369647755470891782012696789778423356631447435801648039603415784402300884027087466865488216425811033391086772795519799830346718753996580553778094714315303690103493226103272502554832287832286632894744682326753980173694794911800184703655375073039282806894145374744723468753404098346963602588545800956786079486107945004368767402110881517524876730132999807645808528847113104868648069367756424736526030465616168547360178223380360465898514263431461205413442267140151526897331925416353922451140924034249203243531486934663797305972007015343046710787598751577952841061951063990343842500676628697816961251656517737990554656107047141244409439819557438874400938372172281507066097955734712660745925915465371980837247571132752789411257077126377732906309673142410165183000658988065988991553222782187814444604860847956589905938727044202076346317840028426842018101028107740052494231466761516157562520121707845216032499623074888938164451384659522712432243046718843394675836549038259830171906656196300867130782622526228045638740114737583140180757673821617134805583980550013478059728031185151398456564460574889701519365117727786080057973143300564595194197787753404287641919425774459737493089321701029581185420251392673892752887152636489383705040916634808238860451669777321312065505260741048124925951172393022323875331790262524912795779263953002984622411261754531292961820006382609998531516189186199787024891633031190141962446296433553347471141155074312230104118690537901057772206204067072650876202445660166786228176686981667983445150766985281033086396757114654279058095016890591301586670273602748934580927325314172741235983911238144499856385211832727958474075302743034729224703410212174438695925929507203908450244659547345093204195322740653867797014992086959236603355884096228342602750355853193701217309692330413678667550128706560437802971413622700234627588677430419723636565638760361178912350826686139733510502512926756264379402180518978550351362642992196201501375971627346282426933151058452411761315391270292673985682731819658780914800556789772923479869126020113254743616783234655814977803237239262681653988523948468240390561833569421399121775958558086159409000131995205996993450280325460664409375940012297512641154691429038610754588519882025066317790008277769827860509865722349374354268667012957364294253481862666926699811479083636459477139162031279490396484398724349070051706432996467599554528550265431179917781805124267145558251551649487054485214119881217778938216605304642604846585732824743248742982994611044616587423916718029048105857696048366164407808524933294527353592131774829399725432414531128103507720666376510755902501038300876571510214853066557198758065066350589411206504771884914203373916224990179594285300545327245376323705911019823647005901769202228801068173070153748952038200388322880530781196169357165564528895356842144120651487703628465984818503638354795679027971238133782507784250247876448852497926193586998181743157210396119681581284278375166215048964370203704908131482930605692003190543896229299017216654563795019380130354497186008937756904107150289294941685345888844122297062475922580563378156483824591098406474986919805508140904782185622362748307823993723683432710040330072646814587588315401084685639670515654032728051738621484201212314079746708723021090118868368709576071998761034091097041873888039189228779417650916115434665746186662908294486551046838748713368336522901341403285482717062853765972842231403366795496207258298044972105893975771211596038021907450295131810259785122419990020791685264095453325025262277059569060989317059385713401302895411538886818677906669969337338433127893203609353183591986230876751028567549702046819682228583831253571841288388984883949704499874996738521141836519721987955410263562521545845838772697299748969963610642716774068779337678527233208452139858649060428150786156575029284086749071098448958014569476776734757614286828643368677598897777382388017518925783037135852028028299281428990419109956651043015437042019643678286044661545471450087859790007806211124993160951124203637021714189376421980121703104138095922037089162026064868157646704279558756962004800161026497771453879505246404460679389972264073484580561887469569547976832481416576361067183434205230180714771810376997095627367331838988952430684799432490730506890380614827077704834022773251381524013380861623677562038564891988282740792535581870518060033756906667393378699724025317328548137478379219569184468960684092883340881734703457818715240419480614193006396920658804676622093400015374092596914031938364177847781187643518196733286369194885083261280541013349919983731030863752217466591227233749977154967601844345655901790300272420905179094787980285274627793488423633003435512728701667263504933172012855378092974806808260986943463444452079699009846194263047216044065444494742789386086725803696245247249143298101450985714201789918640331699519439121291972660939635653327057567569760583412388755928474652322679982492433426975171929152251887168532647334316003680262200532935594550335711770328355496389466914600115954974360935373772671003148795079101014667284180748194755647486630862252504175088795291127035369209579021941340392316952518335492193785325791760066265460423395264009110308319461423900522437809269707176923688444506205047418142435699309906753269657625839831533859555279229818478327493801625030940180610960114737330232439434966902231529675308779048765499349470240333691881823543019706272268496260033397417246034713454804998884793682398698569712914773813515025696227704492454656947964434343124777491505142315722355159076583530927797682787307516235802844127635357843463671954814646733356873786160650626054963927430331965358499134726968312361836261490937328830492041401547919276410538725116872630613181213457736759567316095150734451411268899788343199482902633860433251104925342384417577891891833877328429059225065960161302994134145686762372395669166435977713630973314921091226213154715458541066266362481637389922423271807227740816924443282143429010657129353393534784348061919285454015766636887313439362490682864265756655158164929459485573124755965649512486647209879633743404101673642717808839854212781538578905960786347155913340303780130416218912837779812012406924932036554931756285833966460408405280497470889623255464926453628151065508622778470770909829882839535224108937189687983405018467317419987017474015469218203628066133143954319933740845208720921988924755314819438565827211038469172142071881840737370997544185976497482819765540020690857272597336983989708023682312238633609679110266310104914681896037220690386656565763349409238155895051014033639740875972078422460130631061787265440058675579209705598224793524375801708286570923231650581497702532181527637821119342477810843176641519836827131879661092700089979776278170212938224768316953755029414115687518603896664396394098424956031053857917110425006336965096548603906373009740368911969595663658805353566346833881253398082720230735450573785530637765835620641700703472645383373612498645088344936537806156550151148002958250565102571582142508613033013245642365256400122950979921134093753948117258071658022742358762300730860656458305620075564316852547439925619490581037024474468076451786139343377837249253389388457044902888828215214903889583693607702697858464397981997034603527556012215251786207668690961787565465662694051079466176638689250974982038537024284769462703960878459214418182126160519027018529042893315981036769695560415153091172718670352993651044521026109639548032824157850865486396758247741656257334848053883575541578217277900260020568493579419846022957938627741737915916132599330873710869809526378617860751080318752368080661266101259685368494210091233345354968869964127841171789943534859564654868958218835644683007680355101226174771537494959396762524251456032525808428916101194819251574424607847751658405738370358188696290429047469267631840866799037543699470331534696783700602609335411883550137767427710605129302206886860977784032645165742361106682320859944687737997809905712105580484863717647511873662585257834714029673862708183672032712806458033208072338138536576150433254601501308125975899386081760311561605074671781248977926603395801245571174965029958076984969013406203763110709250172611724892950065988155486923430002523885044602786525245904702439639106911554128494618781293878478736320185642812961656302890443832146015282606524070173920741111313655874938262054855153328062481636553772355203295769295992491112778504954645784329123766393317991826626222067528890284325588086123647210966437975091257584835384947770350640159435453924313657438592730637242484317488470584092288001023803611491681813427575487889177192664259120975112312544709285587545657729350048760912635468588744968103286541602816712574350188118504305622602366341653584732154679300528434356797992180986952286263379112311885508417915626620473887010839550222720228703373831479449275198448933044196946359405564727551660833919976207490780180372649366966539564406763036791284012340043175346006759152099789081292850014459173171150363562773132236390345390374562541738739971664793280738110767203486765421145270395965230151987487436741672602807444696136174957882296309411035033188820944868691519309167059213551043526435899727940216055584978447642947130119378364937545203609098099313266332495030881256958389813160616095902109494985305358142796594280207481217885545346961144618940089786194881119977216652510920063776781583569805816096211645031700137085213568377064588998416014879121462536745653246095009477578352513158866185185612248454179228570682048530912945481047504228548156761762059171882499140784978048444240169250008330106373030030024821952988423028742037121970457878943333827622688433881076169022140306573722136482717253425997437099926459577403613988654937428864289180367269399499590288500034207988328367793228163338794864117695076988339694074525510295562643978661298109711492741791653036305852214365791494006112219688491916025866293523674073103819348014608497485357419677178436206846983628629582157004504334990314805570202814931817973238565669304373688155069962290011908982375126279079642691471376537800115819380845104654561547624881541192491475278789609582681231777471768294691983397476029727832687151457288059836105943082639881070224963455731564363045723755310798188500659295438054170250895935594963194974561901155733974837403961072333445431407332665426970795022303069244084983422307542457297030384915504364916293221475712176533842413861071788858421515793238947051865741142473494874915077345175559031563151836160881890553860400623156330934029140430236654908838325568112148455125796702776438052776757537688504761681827718268024733124847848781924612878552048886173116004354460712328614888448301583350861357755224390872920875885389366794664506322058954906369448008963460299387990579227993638859220367515951349394672979232972928519065048947957961568920699142566624307654391277317777824143153683365536024647408092466790657445692155150610858260820092740081299317596738938816026467568481535131368135520662365804476140323228116292805395377488070905424330175321537816581570976332575551870028667757129596651970380620918623021614436044631789373532163763416228747440432852032105328163354045750556503012789904295912977228698592461690975088436145627749533743026742315744161520400829082766976505750590142896952636218586558999956336108315880039010122171626345084812166607764540148041007905368766164264989457646969400496891800132133985375813126191725512571477886875314920535460533873849259885373327146734882465536681888198949800058019480161083661858098122392044894404439313135387934094787131647597235830352383929037680207738003621488597756742407668946017949247499547257543808495994205189987514197461741204610214319095585081710797620387897687990483766588354570836556869673136505243144470670246324623831914968138339497578060653682885572154857090861889588698378896100979869801673622538029016501382556922396057897208992417795581751922026430617142309312957675302323475300552227697293567229581152174659541812330012563655210430677727188014940355108418788054752543704767415967694149586235181326256747676502653276435907869611697284016907632475958432620048071015574863757695028588312951839038905607304380923624032792087280344787265688032178949881165948906040048013569322412681341420398928436363963358865998506338104222946753314249499965649932234515978659597914120076825833647704425214919303466674949690946530308943353239486337515313435435462653623261935709515544231709143997645584405838065496568823864843169585446727327987593586626816331294524410894669188701331078585471512496416074668405390560309671458890866418196869206877557656004446392600443358555050403530098751236298088126775857600520748694417722359338292677000844838609022296387737510086416796189016908987650238049985692364363770085781054255555143444732674317171010249656644689213511481005530585562717168299733864473568500757951218185556917752763331422814436333629093599536207399980222184708356411359804941876630711822820335134708451759359599170658465166141858558142157087225202068637526835129706321388048738973280549225879634284767803880304181707184754958252810389123510482256536546703179452580560739362574511487677288062955479020117489632191388468606731007019806972985790869235824469579558152011691131755310646035171200181856159764627314566421252963611988041591589176107775723346710367573436147219361810922141006125277913868683796145846265095636511785863428905740501463727748490864040519030400454841576490901578923252077264436527975397990917612310663233473963016769524578294272873963595140502999150491897525169212647148385558185563191633930802522588138971433657275742529893776092462790290667347708116118740028613688983099621704780182305477041483891872954806224335021578987497683520851415818757331889004876777194522847142078940632934191488758673336923966340367847500274733301477054631510712296215190208404514804168850205484054430239211780104987043727830225044572644243287856276459986237642460007454722692201567643261408003165444270542625991912532234399934040330474758924789642562487225063091682137254726302036793900461667287344657521032491328393757500583723998884191939114500300183786609720435096874747310508683697940308873818384060147972317764298756028167306504029239758713914266767777823442704078072706488826170861312091924769038871091110238503785812058784244771225397911896121889136649894061837934459091269491477251985654081518558917250354708317044362146784213702188290683162442268066812566333826182762546726699725801558431371544751274432932353388712354520948439525527917993465372738183857638928678999363879257590093007863869599356120995281756665628243123712425449697725195483269106382074073011520195923977728136393594191052413396369433946913738081687296942212258598870579055066753087384696602534359298966980121929273898180218005954607866540663424192281196992115870361588828558977740163175868170807446755406620848285368510985312937720299650575201173030614877884959440609751235513244608715618179152958182903731312047692625074691378204712394889730062455374715761348959042616426261948341956040210591126574366070933046633114256492930138725049800934886558814275621092918536796113744593990363849575394820567697833608955977194733464639993077738447285860642752852626571274265134764733767892440167615769101711204148823262946036810802066254831401100552178072031773627524660300579216145596489176035151827422450959862611347047456814886923799146057884975975120706004489224430374184817715640177054446677955187515626970216191929716604648529910988071788506984538536268660763138034287088880774356240472466409596150131928235441792350544238624032731285035075471746383198789635263119664012820410572895081774892345586125321993985245973680130501264450881814366057752508919385304472894516363831749934123219786977833060429050722875814863740557239663985819238165044116102818544101873252051068289052516458994926436327635081978895070086778634795635134728860207628188728504280177028671087495153509344046034239181720528664457017462710685009079663291194102089840506670559971495793476460433142288380495275138032170980775907863329167935369015580915053137322497300763774909310716060782076386140788314131893176881547726574601023162442280298121515285400203237707857653756200446120509774212955121495000621457848018112466479164243694149960404695178080695237057487787754075866790710827819871644254087406489300801091660514494664710862413347612322545222148887344453865460331841339856708518630840811349925319022617339231740475504804014439083912916948787666117035249993938798295041055273290791734130563642898390337702864211217932494087503314481249247710250365219905996898159021286887005640620863804143927957947811418561031950323298568825780365830087136677241360471570261931475107173793870191626753326930133576651257909759177337934663499537681586023895742844238373088373125897749908588654415176357258113803872828384216899468100750684267260469061327217337355963136817834707425755587701135650447451368957769943898268257206772714752327057214537821706108975510515573673200937170392255648182427683291037576548572502704907805663669958384155435991145886143927105803497667640762967748236348727482865198513913854630065088913316638886473284474314746813316283925371311096895010494648448524361603172880144144232535739876154556063943751157441557871645035654267028403825163305130091922668316732496508881078311165179004124835923270475737186607668095404874089192680365233907310655626297810596890954690207971669184225142627119997241442789252311060273127363539035689169196658249525246812003799064643497737681057958045874924416317244325103175804012515697112139419150597094864679438032361827900300034269634178364106939414114040323486498065846748098958572829112876473672462683079184437740787556894020989510032608695300947942394606403228510328079948216183429796762739734246878957780659088762681222052039252009779635252250304779988873422128873247099101575173609134041130878699878520745582357361120341491598828049276500793207690337217185969460861925049408554390083460573734547697898880218907222012490854267371259580073558564670957881065202063876027063310437542732357257379178766179883375737120236269408979728550531502858860115288488993104198633152420323516527563565394272424565651897479185453378889767385807219540264762721718004145086857203102702352747082745523313082646107632939256706966113478034425534333639704599871081308888324046402158292018634552824718481917679350392076840419057873988462729258791553741750620888779093564475041584051600538543882116850207846844971692113112966919492353596216282528759168928212257825989485825577678828531393326760799269859726547483836341356403296570113495123054537314897445302542373661956538058959687084589965122052258874877623527016845403957247815007692800122983338874702261039108513135055048397467724415293789926984872732462473944422003529500422486810413128696136846720406272356497612661264682742752375879159105423189386909874150903376605721004409221105064135881262142212130337190864513664011769617821802740120903126095685910119279889599573360348837296813637830724644128064150378536220517892061627995566902075417924158294581362801395374259287928939643585430857000941519944789472335064038222925703558852210873599596607445494250188715581879124192967197663980284460136292981664483674861898003088591149087088561284665159032609370940526941133812880223963509908040369684146247059721280557625487297841101187537658423323565336952799249567602141471292012899762166522173430278402215970362668149652160508447637764246410393491031494045630949494473373605907118754965106599177608870397407411588589340418089695395849732342579924438338827248961239100854922541083383249981481513214915007860715517625302365436863629026237738890187611015600786207687788664811406202298133620584505245883200882904358369948742640351502569037447926735820521169988449818942661904555611626401617544295971818078281257097854262744340117869791240969816797164015530937986995215552129820652760294270431934923524583378136273100212870650623723582222523482687763799202235600971608562396706773819083618854333310608221106845763903388602779851768660746345774926381328268600354173220062058319135687037057170288453874771284901045485300953083263910305149687751579507206405794958252850766192474632888986003915431140703429333741589361403816844612265931658026756675183409043141005544377908832850965431904112362711513284052712970145806426506710626728664510065208398017654511677447539537553328786663749280817550190120209688694761916101383278902303339991018010044067358580437430447662835628164323935661660142866446486854719674438978764845441047683214259002921824291061142878175215014114428947648364669781547986170063569355344362661610725351514905920737738704117292801235915222969844834506081485542239339378636229637812241626786208297718710066019744004266360891706908274823920051661997194507397888081235289007739978106921796418790219731489308995905189052309964442070315035598812929497300147926784780945417995069608347794706113769881856485983361263341529793707420227459683931399871167989150465566046385115597676796946032203048447665195976710894646679919281122234590996119472921815950911128964052301304319001641246569766813612193938800818917783166945710065987557666745274327508120316473952959789153175456783841015687809801182362210572948369577046242328960205477890140695345375622522148052948404687292341094914601487737846309942473484616810939055848422347527794867226911818233218515824679358168712981924993803524226459343396635156685770433662358344159838126419344653093636036584853481677775673505874616055931935059661950958399158943970763397061839588367115601251584725222468539026998998466998887223349555349922523572475386595572967089706757879538715771200255346282196117950915426326885645427412317552165219898425843744661308820661258803232682983155055206739018371793977112125894089570649948623557369128748007544266812048868575136244655962090541537287027182258544737716380837209438405985663098920670400147933324034366585096424941603846936801399679260609574100709701103172045002887486455971233949571251024240844777071998340123030216495214838596182611755474653824003807138989084860695390278483263879859678698750560645073847606381253497050314672828894078259719623016141826491740407461737853841697932633146992240728430022090171819496459171829161015984163604022132932543210936830383503301478940345161386096017239818287095745105754846184916383337249453090856668500162764489052284003062223228055602113037764855383801749812642921060922007787248324072535848176504925138422647366438954359718134945576195503629841531220592269652714259996801227707538560485492746925011263512697663164836163617091924103813575145710121306271148099704025715901628457933932667737423693616207259757137371477736676798631586625142452695888804196372016888072537172982632139925496046127259888348107461042543688520410839438108651514106838068251982122181997953661407528221746373074564498908807038496053905256545332499985367096198226896372616798843074356152663928177472430176501063177287975122785153862076035666545437659784725799130894811698833118003632709997960432106486912301417016043704845123488994216091787716001384323761764164169700162989964709904687025093715613784342057931544945981959172716904206052302507074576265413792195590257706111771289545165144995978487167891421291644091940313017511053793144194537779585879455724175431276756884623261952331554894147347597138825593948914620818826421291943063567021478408453916147211492643616576861420969796309041097115639827956785675743087287469812952419987294706061220150461652801058638627703254216224680052788791777213703495933728461038691025391126949214150017116130317496347641264343793388316745895213469600246605305417049251465762736870074635504838651101754585543237477973864750775726282581338756127080611433756564854654679606291160280464419116773041743712727233640298762216754838010153827601526222675991203735191722925988019017069076768266833379635569746113079419713548145587457031497525023642332293093674885770117766342049141764260142941906716875246975510222725158212085013163473094174302481347705498419092792151826860058968140494388400302560603387127369932994660825400788456343961991173587502059752235658488145750159368741731496682585687618848056023646385595786086039332384809999007276160166075892667759023108122207593703178169660140152618027153516246834488539104866448603764545156666164518189356118548280164700067112965865549815600807684382293074532511777337204466442248027394003652572565260942770378269770937072700769646104012194905037264501736443398168851527853131005046299757269070391339873799584045821637616028789271924091310995681791356651867669596574408724849078158545096774216148499419222949349250116126207600268638846999192936447769708910752162542795796004964200545884256117928833692157478591688900417592407221949073065986396978551526814658109599978503457106541749107669569121324441059394887764411865604672988769058703107962247537018749997858697158878802088990084782623360857613464895963413539538730752330448142127553923518086433084574159389895850489829038160388689699940465487340530909816176917354434500585594190263441617286980347592876312990581765744273733274777062354242430886309457697391491671920497854407831570963155298615499056479882448105747309567199411202530646680915245662215573565761011271277926075084451984757114848925567399755911448577687021939489626389271523560494745562135026733847218395506475419985160881741491144412311672408882482507073277025859159690478824436703031676603987790975782917345243642609296026044177980542643871572500533113967969685107213994079289816202260457144335313995973819233374042005655879819544398366409205540723703715165753525615983235189444317651140204526125341286406281504646648918485437072522619178961898719513198932431175914038896645500249022593512283893419627827189939235316641590416407192217563265114005426601620878405757457410539824725867349523608478896153719723895520866494892510535217047483924083417499374297444964029010568515855444616500607798241141491466696259990146357060729838315327282756231249650334542245973407638827924315903704823103014828754929334885081282863844321096867519144973741765840572691630151629441542770341772624391479445125495485423168107050310339807027225836659121504080833093438886681388623546211680771541721237643940667357569858658857323130880600201561191454265579532834024845309871492801438372298379256089678659944624367335735363987296195775125239879552931203038291283235651199514280285133030918416282262177761136934119564840878292465291573102295544949971786556028389390105727714389581456581640563517507386908718163100507101702632043186205310600511260083723738433827044929752026070090037389637418527010171833584624646681164794291820300250496589376204741693897598105599812492438709433449389370082601156904515232058334703718168677855353881599846762170279811635069534027054908672443537702587635535749473371949926079484685870281630820042902684075827264036317037792785178099316850433039434027892376743453315052081020724010628969733296487350521287445103473584430540505979301882712078915433575876617598202332816945772820735952064147499601834774410701801194846369338670758138279826164218713858968504840828143144832376421784581397873488331308399120313149805333503447694350299151377224825684548693734219208004763386274566429827812193434126805378658064950032594324900195413429560097554799877848933432443186251199979083758577416318679281340493190122146312462783291901249293440179252611533525667723388348197449810858551515912029558829401659324747366902549281184052320035222697576537050929908763215185743707039002390893231246676379524534157183101648396000388117127332087749398606584465207534462182154964806034332356400193120433048599149747075635024657073264794491961705072742692095792600310832609397689844697231369559508561786130279885013787169823891890365025236805457387389578541940887397984441513043263002928170333444722304674558908690077100907606711703503227639081226660565447508794554332245961038421462902177984609313252374013577528496714579477483614202374222993966252983318272507326692476466498347107769342945186922420781826303489897104789435903218801744226127735328249650944088803705874765479444906261407559777088320608230449151895254554357230261100708713014037141555370187686629153853627905276854403456112358223368232598568761303352395339316651642571974528356007439475346324092404527183349343939856699637587511193265581002216370427196363229733094555448896454308311209586023507324476861739701106672328092933838070932843191213873599838174837441575803765616507458034871330995787081647278337391963921276030017240597816676594279977111704843384307034803095767444901742640624534439037383167029457517556601105677231689799412203431737875058469894747162923634613975260695009756026874285341668273734915401953669570187638665490039868522260150696664050345662267114607562740984449290186830299357663462656876573886807393001585508056287747545444588717665126155741723594824726682299851293299116539590164699735613538883329355194181613939782698660913582107228538496658585885506318718630080646330391871574359820139368084285568725757533289101182202084830667312734448800649583396041937073037983808013445842675516274916816904398427683892319819457628953208083657735856399670045834095089038941180458505511811478230352357181177123034529314048523339843370682373518070501087603155552516624581812945046057467203890953027725849246317374573895859309313833377085043341484314401365517762186078608944700737945094758162133501387192329021457644816482532834341085759780472039820302303353298767429483452134605162972304377240684487778735350462989751362058785508128320978831575694498349221200370616858618275692561166781704983389323279340864651381258331909684510069521622349645220395696566563569316834861336305121261549493386533153750369440493851825795296343153290759962142759559067907921180802072272036377156967673680196487729520559941570948059308271635072999218726875091643022187907844386235547002261833695838841993366318882719789381759927664266683765356928441398777489972449526439344721977369179961157430950574834929737842787366045376498653912348185624335036993664453538819757288456221886945739495026790134167681288409492431764213573285086430174215057438361469648637888484209645105003695295538323614462479283938372264665604216745888810992622441195096746514114831612240956360841861320822900231710511667070284930617647258285422892360207698775943165114331038486029051119930234880910429237441805833529802119907879472500816623896031803858654378180568672152988856200548458061608802088630761311233726871672611565506940500527873389328214423832018591345908259304558548221109071872511749348566418291526854956904428566035461666999070488044108192080687213423739631300327474954946773171889444856138128378281499112604337110177973816102756138988185029191709274598086002072339108221966841915662562485212884799596336926463660171819294822002939891343928554637627579136479911849623581445659360789440764883781673938415189652331371733820967763005735137741606616841297774737833186841281657855494300224048180433965552898222719057725785301083242670131201630019532144123662447232975095506512396125019706059746147068037822669264297306943384522394614375499112655474454750982597817772433229368373564870730419253215849413461616562503656800842630969937772116484947528283061265371502564572511902406112372924539041544569557289673268637888030061225232573328994281429563298004744831116725394256975642184469868506473057859001703777851561114320691045996424213621778548328557494814554681131048541235575796298698832606873952648674588932761350478668755577900266410914374421057932961370950224062692020922500442764413407667092109808666771968726637545045970069261130246664742554892585592674655958204698310584216444354929441266253573088868155047856726920012675755409730933363992041986023231740747018866785080216057166936688175266770478698567713573031196833278876431208423632304052861417764730027347214725219546782326354291994191178858417555843290431149675548423491843055533935398473076001222355586630426972103379202815006713897906193273718079758540438305901527803487287336760097262485694827761155018373985294855027058196840186561470815457488937716748441147550916793345440513669538743061797881645738153098735356773124394836423409435623371643457079684325734656159126437772776711815309087448665525966456886735555163217464134527233487653946590150764141769056086455365165591178592673931794084250369760988787046941053323580517954956336676029032616609671682348656640579040304021692587353343458764071917874366004339084694035050930776050834130684611853008960436269984294977303471497350106212845737759616805343534109757077068108130904296961499891718587726563862794294830908183837864256864563190087451108470137426401119388556884803425711739943687373655248518340872953242265023217542809307682563844604996893843728028468793698217307369454346441734512110306358716826494267514160422873515822125305950512773302510667650241106802581922349930701548212669677880492072948857490064715048989846277893537055581875636943371680774749455194386264809351108616269579678800784366169428736634812710841919698000194012479573544886639736138114341348847422535637557118113247133133955966457948454344746976107262672373342903111088153903841881346578835394295481346869976557454783088998129174348684372616854817989757993511629449427827585724863578345718060134088756303449394883509160009882191994795534467334763020457631695849103413671554438782196107001923040790374061629515963295329808468151845199478027570684387074650598074321624633214512395685210393683223481323860228578166600020483302943950277018181660047878886087653128503866345511801277447984719148326219761700371428675886373646127914315933153863068070726901576039189929281033107297279689474137511162946921207365546054144951615531273543087243586966677405250661428394252711605964206705045890741331130955001178298870120868453190050555146909715424745083922641483540192862403003551083055043194520051518178223422784944640872055902379277473095435816363466885321512412632607434086358979290715440481334035771605810201305148537458100043268575189579081407803967435845100512007551791845948265768732454418000589738189169024616573674884841738913077787528717717928486500124296159567098567425975450144568813153150865678759185502060560344721456979676132315379182897071093707620396396467333752477001516918935848788294076981188775225072619040161560757274972024548164703242792749815501489535091417066830363594065604974787159667865726963631244257391306634337895299112836759337038746108833944142058508315717430292940615939241375815359976452722037835161506886805045547285382198606595936728165646648113123026287644974928102529383843777291498719409381174508471029572777773201582604300147639555917051383482135720547806133183243387952504612854059692863798259589509842191837273277474073817093447251264689463898085429145883198299183752727941929164122330489511552217048463028744886292134405023139841396400993182103343377440923951213502936101788092236140906553107270561478412506434176375692158956266335050703841115602433859126720490924798393515217457267197594972432027780618151563474462058889354293275920950104950685469525924627587409018886438834989834212940371181823800677006745482151791098272140107459122557829609298276850703759393663273745753603353942591690830049229889441104629822866050588792401992128626681082031325509761826827288000960535145063844773874890787798236165475702653266941115603484852455641142236000326819519143326031880614164487484709906720063710316464172110729997276405980714701797035167323298756774346125292223951747246022903450622037623486504616254505604093255024852843619401476891031343391204289532353392808229806445404411689413321767911886646302356479080487154870721023363890477378553090419399645152102009423300477149788584510652010570194270544315184193414851556919058656789808764283301070860788411265157929230997416161590908784408302552049051974656256241442822589817842319757511276062724058758295770929080921287378671637311746909917741358520879699840970915384558326381937880197961683287696644186570879190246148381057562711319945056739927982502380904694558830016263736321003684059339236687134558966801599832466250565026676204614008209565331121221242994925011461620096409175426940786741630972925039581401740081752584847407736682581335567671786658610086589883406576225317735334869620541732897169493792017800032401627354992304783417376378322256466768388992220401076911074558492807201973293316629846805292090580110516368469742080125171574122689081025917703069494666164026216628440078041904985292839821554498669410604556564026812090024720930147858240389627691676656643078631826032356083593027110025063226971340438136200745401052409183068221449128120053043831365451855164419586359757512854698507488489910538168095112899088189912853535247897632211236085284720441727570560275336873536209564891801889421469078054377376380616578385404672729614023202917753925828344101441960899049759881338666815434265366461823506840592336155790712132739220182115540588427861650195736863809772142096635391284611179759237825026076922868995015411460116720254380752189838216517161165101882062596079062391438053162455420596605482869609121988866625638008257896890820041038304594871681270179668761006991088206994744378384770281692893710152617583183826075989257717374932926803388149648003795098300397749283375458279522228855038056314510890257506320070337802970235800507135645978586431251791783254747774218019308660148631847617434741843825255867601575782424802373731136662197816690315005056593923593762052904943729286204896878912614935572926887653632110532655955460514024927871521812268343142347500456001824983555199963548974046330037646517412680068402664823839105801188643798550388697334777935677771577310017905346164746947188519068160828189249314336626871680323792811198842030550757041058671555368844999596359359739436343238890956878857138975925272644131161938072936219923643404836735297870391931512953606854915228567885713678167134494989688114174741326185013890140659678162302101741469815921063308047069521352733074196612355156888528839480202365123899047155652352880625540978283648103166864234870420325086688328324562025990018796643731327819383780803678055802163250959978945346018736239493109997315140762116103526329422379604439230432075717740624786823113250131040355673866247544094523074247340215926665425546755354942235098968726349230215260682381737494951741827543320057964841118284833621228594690712659302926254133475431202919126752317063544863861080002652622938842998162414658928131408362744126004760785242251539684568129584352277358787296015187274137319157167201807919180956714044964357840451543006359827391265209251819829776936727297957965065776044104481771841838042649960385740234559041005497621183381301948988711523011602064391528848252664273315233652869528095281471904295687047257592619574923450756434856784246561247383280312391329737406691237923382621436083472225919665001972740378097100239367532814981665596414989577093791542146585595183220939940362974237083750584913344036963611520350181872638058363914291511505763968033360147196410786149121371301758437095874998852769660321555638598166362571209515633633227431988348403078900091829465963130055329651170408321374525321899372736365536232437615212998224236443385513478030493901198636452783329944635370502583008761453523619942669452535240900697723148733062335031867386095561802549173166223750575016773545022891004989600293722839521900540484561514797734874753583777784162255562260329172083194680619637743707989189284779562786903170758303818430743392110163425526796808617528133462999174736488621805731700036864376426311402679942995026542450364013190568935812336061847744935195944627497634926651070291503369339675696637464769640321343496567917920803642033939594754384442526920852025182361179452763453721682211934718979270931217360297404394629149807834934195793897765677074448087041660126922481147100702194893126621145855346026100472339941707101027400141447608234412956703989494081669661447771173294117562978892196906055593218505040561927876566319169731629750874352960461823713872156039094489252382576466398325826705470572985877962071164368640574444475302149137101685104030019588630780070280955659331206491431901019475065059127385110501553605404125542099374451532710391853865304744791648602233283756485702068481568432445400276490965642338523102207835069651346863242064624185992613921584041735373955986186788237579479583743797596866022927750116846648227847129432816638553612394396390561078669143410294732450557486548124849324734716533978767689934599445773904359195487833230508029777001027022698289590622931665946843134669610855720062021461432019403040733227150120870233997708704995976787950103535128055573879702413336263947393542206899803800501620712076062511681708347505015924860026520475248226903565665257848100432047954724776322198329038411544602227504802584589901240756593727009147897630570964323816464913198838855702384965444951631634210694957265803467425946326395893030517860327970079735880659826494927954495835056528825662261401273040535946468631983745794414299509524133197642148145016841704706487209384534799762983591569135528399864848875626991489698046792987128259938329932653020438768551584346445202829811126158683995195275648933399049913527097743366287200874146026043763555185790985546529299540343167959860460017640029805794293564127983447548712881434435943581487930478364905310871203004187205845098103938505127072628069810325965326448319007094838916765991719445462545919917041413972942943132842780366226563303421080680529039504128357115224866237403592439545010674911004860736504063211340845024989171113982339803098980374644722895295570574842827235944777523818145616837371647154383548549193481004943455050843321905818474279972706449707597468673448676934911586954747309708489334790364086725031568956083180524096513777182489145212812842181204570978880350326465410768284265380821922982576893475522067860138990254712543723191865332199881597436403145628085387251710701831432993925351775761882652971389869213533046978211793460737763228819343366321407983987682543211899056269546803216632044245756980290028182976985172808494071350236703295578961067771974618813252717243359173279744664379129481486907789759186379849657142437758319328694529805406214999324529597907665360780099093379177255897189551030596590984857574758152142773777833674786024891939953572164716631016252485427606067861097249252736040369484319916185347260715096467253646327853747990662138338278569846962416589500545209650094583171184563113441136945742529373336050023891868065018367713036191998051508576955580709479261442569419714208229480894612822760968007652033857978062944688168038664016428076486804631575703460488384559769284822268458975342016296155515012217963885644156148931915001763052153019208010319084749828295906436392734750165448096669893909431710964674208207157363214669915168754762694310611712000084285188007604092077533222553114190846539896142948398832010053608825376432126596001522119168649817074966203472093660717106441660681543435956404504903953089223171341191049479170223934339324051292024635107503075397575055516092195916420438383850991787813675818261782985433897470296948916231937880851842832597280471729994641625839140978899246433347986552079092859507910845205051928333648507256047634755243096049456652108336565403101367383498019438688158610851659449429731892657496452335833396279316241555973818013517240187529860073255824501594670147992266918607363720984141759783075488207948912940985686084886992950745485847799668067344471329187305365630113130337120356155491583002791235318166453382576950355286296215614353597155155304865423551386894122958115700330369667495286621217189986199406897106185679091841339131166421406361058757811938417695830351891069658658500870686275622476173161511128993989513037334163101876712069906263461970892185565492410821405407087032710272727422954921583207114955316877710197175120002179275478472373489876885514469133706642281628470951717740262245221309090741935199047829559462657007029671379537696647304483042719145686080440943252606506280382674499646515993015685144477354949118461895296442118075718730515233619258854308317381672588328677248995188567684669206352147875860031391187815180674549878240081093876276077877630506467381320653141818446556868440848597549347895925409128662986288834919361867410926255459501481001594622519023510691576593659968170829649323408360600106427820563138882811158416372689598446287341668781154340606191072161944776465405378743499102465203925079142540682114349127366493581576452696317490334978065375319177114785801373111903223939039409247321502338494615830511626090110887097180531422082067772567516171312800634030410081027647848288582596198669321179929583244619301628465937001157493330056611334577279580861446829243633294763894284433547560170254534328771206836587869353382268636583684786719913726791752207823062956167275917822061197578267861565427325080862688397687015964928806490497920637860782028540017900585316761275279443098229794585858701443711369450531744486585342989348182607308546777822086308582181754788211259372041044111898914170122884697833330461028224280878607936949176042353616908850944960835239131081010579421548950929354296325819793306696015942689430134926099612073197025483823289489952584356473033920436792208214991579907359789263534064712126090841939224253852216516996466479094407004398729137326045551906836974717544057783994251202940359702710024675175763608046449063379780679343920734571455719703012327241203690955050981481631853928192083826248189355186151296848123347157902540992245899396739425334630721394535809520497870888933779605855823129764175541598271555093415550177644921699477652716532132711389950816141288679690560548731589359972795303604430158712452561532725606291788841383683180643130438513094648144060529094804825523464106797850649088252855697920209712604682405558486072737418091325678272944034938384265312806794423632106184100894379685820988072729398641712351861113881475174024544352113241153697025330862097161514822556394992433332594796404834526823794841258153530991759680326068122918121704693449529657707672076751981784355151267119996722112699110291233757671379035521698981938584749397059170276133620268111048282450612727249537044293090247940142321273902385926790945716540308213681101525766585299902977928982687662083451084483303720307281715992890241238091393361645694873374310212844712455732712610799833416779962555241481868974802899521687644228074317805162481426765641087008649954384336453145742743752822740860264088149063671592956028392230166118734259980980721256533413434478385813147716957003823514000826907860890370332697123379130973643121768131662846314537195121480728742550275640263012978693179983019939919764277710298078916006814312187683050969422022400823520778936424447322654061385640475910911766634316126445631319089735246412675641238471019534604314823342833775449145354570788478927924296553886849287007797525356034578541715066711251293144165043177592122035010230893070507506933245074190913550060158606725120483738565972698032618848110133565381279484432496389149985188592560660576910407801969220157437672296759185079446136758620557140851294025128115774122825199074769335858953724672870194838184923547994369077491878373798730692078052727346840954235647110350076181158697477636310878503726183299840673146356397742133254286953568229480094820804881635038281927882026858516113613712262415805421424851086604994662559789811259290629312383660088635339194351820703504741968947513678374515038611481038008935783000660222289795439319827266019394842125642497654112648824199024689578236709842372528430050722941211315327392661375860241981598654518715988771651064382046067720464697774066186643158190193806324099535390368284599244943333630577800738062065984540880525453716324293442414976035125133121016118568177995350073771000933520717555549974359322120122747585073212880861889010190207058345493762939168648883834494052046123105254472890986592651905367062082630529417930858175815708047778928110196557765148895600478967548488441665530920431090716868786255085009041023503293075256071574039543286213472704334247994392206518653256490402278968443104697045612435620010195074271202830707830197555654612438291332639907296104069339518298764422661294005000864976544622555765464993031510698444989011883804302066716259578529020827677064664075472443218340293513560484800571788633714860765912232411111967444914883260607981084487448990388192289230875772359291037338815772415788445097435040833178990964149478490569597907099544492440588787866884178528517263008204702227842648044769793057974219323016891433594702922541281602555373250207186979371458394286751774744924614175448837396702581904026508433341971695833168700246683006870199131808214751920905221563080593379906011273543634366995574083908808383131418957543008858333943155218585387740613621971542195209928745570433940906693359334013105010852757541039380650806972496818930239927943290855606033630919463217575615379783309315625366661522007404053554710325662791933840737447999401288565343733560404384141209851686691899948160116074995402458098040684347087548326104308140092674159398407200959749538047158366122776917476620515843303471781438766338642606813158145613626710427558758175972858541268819963750796892548917709000473837579354709454452829907961181919916253544374135970358813366982022431684021107294081088576747794944116212917629480645507486005092711593014423035417651308932432722910874152268264945723217064466836121656778637135472926755750700896975254399867792769951915201822174031619920441277705018736030804179679128355156799999093889572083783591156169892868381174483751137525544947644690179344104281302099770202510510947167017705454781500216615087971357405200714932078034421504965338856272753749128878649077932370769158796886008521506456122081348692206904099769592139553936132368592757236709691470393980431600060956639674728591084739929766975293300614984875439327004463289111218045729414341985161591289719073474948693010176972825661216001647124201057496417048607553186596042665752557055174313419485732830525327968268014271264123966697163155899360894665185046464900892162110966422344648161092028426327508835361689856131114553283073916887554367218336581444028510296807822684562262179349727161011086547811043639253933340174643775136753397084340301666429310616404118586074232848672972820114142784388887306790958812312120031941891287210383847452909027014706992999385956838620493258912408332336239196552487815001911619257429193971618988555358119937436784791703160352375794167109945986585048994751426774942200235701848576115987787853652489842663594766655548797985328331135995373135818614981931674789026046853730498784697055418908815853901807063736924079257304175430207784205922702228073296513562664815708852761666933789082688378805288419621758212887133546466391069659212483326275775031717218965384255938826763580424092773801797461780649040616914794265069678015785986924786848974083667836553064401389916319784502390947570639173910882183094365895689119425304167959507486595669595637312605873699037584460318749586944941960018188679679616864078797686634599324585757446141183030391881739813830239250295527804665552298144338545792540667960491574786873621565376371550304561342443456034821050393932060750627383309930938157905583405309743662391562475811091897103466612190449199825693476990901009152350606003986531742766205296643082739593939329559939316685151950845730189710333638081147270360628973727017240831551647198088208593833961322014560497363758947377240176869691425848153343279146008328797294816809883396830034377977982066160877302426244618612021215982973330453323716122767565122220675274675146064459721145834978860850329220432203565197463208231557934977514304943008405035072144072161942705827422526474932839954218431182000484962982607946293367523451081050588023205971462896754483577996322400145785028993436711400813641151740841812225718977873109876970853262209325629279732683349070204421455047086143036424920365298702104253346659728836978562410790379084707947640781667391824545357143373321999785874491109752044063159522234422222316531845307608664588711782671048727970726000905010559767153460091713896619440831458961707540606571063880150596900481768564216935678585344649317939186566469268750004575893320577424736656452120872106046026088727312338952630029512232973084405096558842842775693661239622024348282818446626887278192966669067932902397620893813813964089513440536218909183234821114133549599609598184789131237589115174618607404806563665115210340966013766977010414554590732818606425068010189696719386848509691792045248864798351883526531626092230859014387672921139246966327806851543212981882834345779718085740216900319785262286804295231190905579188879219310968640070416907704761957340384379290415110591583541659636495643729730253369460215865146893033070844727289392388951870422047926127256881369978281453683443883693326786839936512865128786132011623377138504477596142949157767881795597784150072115829465411242074093855529989164619622532737111404633582922987087317996921704252012250791516358389356289055113960688092180796616770243223150366555037371221320300447036803771591647148986728148069747347874553232152285009694604519608271555125762473853686720877370167151650218270467893492450525182712347320347267527176693221169547467999917209725345749630927664482560142029920646206271968821239611762228902591676543711076875850042652759991139242380575804200252944888014711509006491952052817240880352577263263871572759282370696431674968702901459824102997038040769597455497944337768076498368721663369028260039379432255856325501167110943149062870793882655423567388691005640894699093959252717654834085955434937017181187462552903651840477351897218590984914617665635361325329723713809040810972887342441039184827520515300238742607870311706834627784977105822354002323957898859860752388064291677592807341433737933246903105080248044949978746509527403261990764364518149181919289401111148913630840867566863552809630814207675945870336738246490029030355383554389900834981551121109289767124466214985456269086300622518748903366863709587845246124036826733636105056331541599238667386324641483648160055052713133799855149222795588210444518318885027406665439736680212847734036341372476576105339875993617785786568665216371607012379315797302864060472169398193119186868126879457129807740917723753791362302650337704272009444918039311115683846815389503687528050204787773912594015085900629365002724302806185904513968212493256298648170952498761953491475005087604819057880151270174586907996606120684476883945752382231456096978030474350385154660867140700497978303415398548813490930757844697091717221087054509895200962962307241301294666850639237911350630577138771197538997603245600624830027061686471152945321630244064456704209505531542779801401895744773145434852121569540490572511429932885731828629020454163617759328830998081836323698447432698451602467131031326034106739177382656038477294566140794558304495602865454877370914578683635087820546679086369502667985649306071711303543776161804299974535582593463283158593299934347504565553943198649946238247644393495019715184298367056144442911349231900087429866151205043727872508234912434463004952670913892026786610139599154959821963562100797119321106466215427681522543823692586345722610773550716306258444935389637079205023058299994293138041105702753809860934156845061340420233331883248361009351679649010815886500033446516925452230344227232570912162333243149699316360223894479860211525030754334023334006113090159687626277221037963164104295455172286957514238984615463899695422424032371481376846782470959071013469215116094918010684033053514075440943595101664000015781613201916372412795581024253285894173789977340336556399694350993161979603179117406423387249082669049905750106356901370296253804342933581453119321763550941667716144810572642328972810709434822840667236003196216316342229454709261882786439606432665119285349645601102767339950282467947626241488615728576502468396841381263673879444093579284139542406794150532607706278989699144193003328294149414613222777540131953974856901483996821971273989963142583775666620991037848401691027958154427162194150542052073266950981681765977823676736184004552680344163783023568992338844040820180108934223527387840661570448190406736963446443658750960560513396261737199092993897260730728548351973762324467958493307368005061487747387103049321149390733511041205259219142162074254679472770976859196254106995437590559116211343191595000966040574682742358469102765877250490449023107650875259673150561645242641127269778964134372110168447070245292290458185243049573063925254770169825854057176398332335008214298116614752113733086811972500892308344662949693921210167776477417130398752885402758652960189768622310495690720205718978407232741399771392023862033971076520384321111815384777755622093664574374854508707795770884689310210078390386348083923744215720686158336543401811663050324369124167968744818026902034320616812767582545326431021384288971235784785407095921106373007225245514797919309354835904166546949509909548869792089737309891381970903337655143567133521217940674529977598209470427460050441537690025825173467407800071118811953870889662150413360959026635562135673634857252874028088407080183692289601309687941230580272716317163683990889757767778223952674303355643308451282542719469051382312921535837331745066152695683723509149755970390473251470559837290244874284615947425810148595592697895890119771378046437660537957927414247409004077944868418537770298894147966451849998575529128770932978141805964987239763358072233042950200137725630938098433246546900185525321214021308319860977096405995289314328220412554941585937427958837546302900158200225968787808867439763717900891131697797414656995384392827715736476228077822717789305234389811329194353409349123355497481617345790182250109771939177496238206466810919909096718162490307364849237326758739420299027544072117377840061351736427552741023925629033832568539114089162088122694659511669463106443459765084853245439107362879299624589170504885596063590986351456701470799770218995714380447053269053824669835524411815999379881530289997349165585757503511485322053079594517322122570121176953409855655141828465897581612035983509912021486435202447049593062861355577939753362285354380038332973058694836615049554115358443032186358732407890679746087837189904212623627772936284568692698388654394061072198278533594283702299098029971699852345418489342587419761495267049797906546886056551564133732429316465672439735326882161774797419390323535331867438628392064533182682463200423161143615360853635353770988162065456401618611649953573866359095693148508422645725433986043224350807010314070933946868245919491087087059369243550650119975880918581093932373743573687250750796714775101971978500039129657602554573282521607136819161413025148212619563713939358735203814150352511224721005148151835260837719874618105758698741397513961120293463516995199865250119619855661941095225302730772862673740675166799801871470009956459802827880732919510049304846468779934011659700210567032431949267481078303554936533802601930595000794021667062992836182201922794078054888143013616410517989958084141950776984919970433520369527021378533073137205488176292110718566532441912165434550732693822532431558766068058526147372513138552679968305361035408179460674775939147056066176450728832598401563283530039478479096376619644610180232662001620034760896844654265523190488471786006191104620188419670404716662324102616860289729996409846401565220490622613160406998753248978136692677878631971067017121289961759411629825983803166471051879833508252588258846253296311522203650729492296892160889272915449241684968196698814866742323405007276866483979726035773225922786985087831720663365670897108563556654426245471264492646941851426036444613830536371249254975214601714598409531591340004893397733523128684985738731522932513553818361561809255121751377603284025275977837395634259496392774318245377480888385841527576062840930472417346739779851547583177704223181082786536775474505916218984851951200756039014744202860995956009973734436533691346011801757116260597089913090127589901597523256864360031180925326544757416351405363538307397911674200657774867265504020245868668552134850772255150511412450448931465747022531635101756631260434723659968508341604922799632630226353078624544848339870652831662645534594862990736668805314896207138194204285894871092281293562823635273084786700465477785760050682471342699071324594803942167158070205617410059519587844935858898595355825083800421830835813215946561481863328184068745597334859328933798489960057610968929875111334261935481535169538785921725431662057529314537980040440245659850534893365452830054731429810065358973656409344398679816300040043627726660628514485820996840546433620159931987031935629802965821242822242656498263481631209324126899478750744882919861707027625420441925309763782899922690401198732271605791451891650763902829144078984896153313331361925266407713945508240697810206195056836608931892518788428392084875992344382853029615929686647432707070727240202117196593263082432959601702270538729873698766368287595141535482683067857230829574587128953639581943137673067837550719648395342505695756663970429301341998922537144926733883634015113420673444591925695576522033244509139653891146865404246100601976478190366571800902461575759611308438976639178105950908621692544262417656164468675471694839542092911740141629833379012453304346309646046834967927498804693000156773116874787400431297526907081419635549817125549097252435435672412832858837879496030559391943693872519410309469317877076988911319171152606996250588521362703343371846006241177505891832052323887303574746238904276629366873038021186835997189670290237768824792354283955479522174127641368554269474363116779603072892622893749969872077095750548826637912496578317276138850317674948165156571402089626224974560588757533181198018848001411971361155331440373777552261229326556815146820707065248327783808061304330304131880381932907921611000381975408964555393666513569286817675447868069377879932231851315838701201640690544889846910361783384895045488101624895260806108231148393895310033248235906354279430173823025887213294946974294046260427785972342223639105636745202634386341609649148922063795223700086661099398756640640938595985490701516846934663966601457372182739865633183901071984587416249778011586579421523175716374247054819151744207348326702870160800439386865776950910753427246134808658724299498779940522237009335087726491850770176650402130081101537220725301995380446117379590441625438679772239193204877921674494899526957759388054893880490157495349208696387583394709320129787174703110578872801024070415473471675069454001255321452802094021525440381166139380841587852607259336127177160562938098403035283701783055769147669317523584526691966695348195610241050831663421533472272330446027095002849559739561134202382245547623476104880405572038535962729105832400612930573599178017209405918088348808344292769688948364614521478700720870514832739462065224367811278658794188550955257496589325742397471920527096050098581853074232136527837230774930814295087546608715654950534125723237900787058637531583323904417027445526974715365785542813704060974794254516811841438192807457038187584122159831944691934845324367589872173671168848494866278438654838723772206423331042558136285931357844309112040152033084043594202375345221376735536229186880497135222638282681575390189407829609476114812848073411307888609872568647315569217247658512079858761346018090881427850170503117444204027300906336608337843737837143606621137688218987048034163704936418759812999498135131288113127238687572287034381982994929701220912636197638360743978760115066755270467669357223957016676669081431201804090117282302395803644045001872032432741573883406874152402320353029355961528441994748711898384241747636615281794504766703040138848082274992794290076194532970699571738438829599564245888960175773176020102478304415254489235549938169754786077672550837875029229136444325933977220148926919613741418089932904170763000642950472257598704144050802568776703034234937831283015947669932128703778547111863110523176197002739829222829740698389812108311126292673918885653560583569409206839660071428245870078022908049912405995977101533429229675634774664540694396581984529260078666991793104895521606796580460030155704490286233028273237979179275468778479545699244383598051876209361764195355708843307626873572691437385288511188914241455488832243406764676428260709053220388018653417274310650915380974803551234650492301390509865932613053297687327446380242313422811794419296327246997650638855263794105076578143860923485330172381554145500576037850312785467406457392906019037679533878477743854996149711897185112567148646664958353191241908602358338745528987972636468980278222841856089577127600982385755572878176383425924936431954421524743881393542261480705275958895328739676658881001038661493285355562549896578460954231119831476564083397985713683429804823239697476929950733931512726739477567260394715122324099331084494607891366772408122383879223704085958315329436359537398846620300794544103106343476333466870768280126625697437779394005864663209526265827713828065076398458584734732331846616399994516851428759762433637783433386839128292320390484403199764264720813635235199919734641743014794705003860068237302971527889423403539602663695304601790484071192451557989807570042024089328399981865323601252302191537367296092375598999914375916873753885474783306154184786468933698850633729931020752656930365195185423650283668376664674719384465086152752869930048325586534904972101706155395671136907472837983718808738056015376361854653596398589022169455154260047218983141628060217747049398871420790337714325344703498804263989162807004321838302450408239089585902745192639558304063441179360086654014967794493533904504246731323951347040302666025823010439046149700655756447344169924120301878518321603773552335076859334372757496001763443704493754364204568062848206457695707623106603697006529400250406112855361444359985401767660299621044780524082443408765190846499926167122341979123993710021062478183945152361798082856941726538351302727017959802430661027588650782042014672764257386794519183739402211060997094919821711522897612090256708042394165921157580317718801829982618062246540021210873955057788868627718382295101681413933219912216442191851798978078170571290026260576461947667528693406888370108437762268389209468140206711343466002951284158701125402661300367852944050551707325469499090925017380987666409630963431462566515382756813008917012409345605230501766844681246797322466333009137349909240824597366615682573575637070170168965821790298004064086375711438895841241009113151621594624927897776119171751917831311821135250775942411402420981742908194715500342796188401464063862163203434948106999559377148718626927883937728855518307947352049125516178382529217110514653065449806541160682383457406884963445302445468931793140486634862952291073082373258567230312569398542542803935078720120767983268039208287620157943630535167762988554694909361476757714027496348526787132471515842954481112205929621297265918432654003799057154636689145625374034277644794410131614756787601973668288190708261598763615389429293567911827572010110809435584213670067923379106508058984295941062254488857513712919548721055593890389111631369536658728274906740925546980360234073891899712016703751546177662512617232292640545949347756795637879369171564420647209638886295518349496425167440843768543964282172303252806583813844020291260567865952701522517696640006187107931913730697714297846430061948751505785851716632084409395243919485355538185093646159120983129654602659012357878199906085323824101116633653035615237477997323139110212634544413118426020009291647688055461009569095946794463101077495886031471280089384389600445029085472447832914107041037051914775754770424047376327111656236034201679723582670099255946500294716998114990213301690913805941750897519541956378253987545726016347724808112022714805370412832595859333462603215463489468051922179683030398276609578003341505300330721283406451690070783629693032149565792152490340840023554614718186334131116030239700076935584633945105012160822005221434969621289880906913570311476736565599192814394051813842934924769081156521315327225945215970551264145199036457721190670061437089136367801423927518205641947212217551142451365606139945261197128527062900567604115646878946803234021364151438290159116420095609092915821101402705823312148548362435305810356469571062857928040580222849100088592487295392477336503207823151937688840462282952495784602227693409627000894089669658880371737580585515021008491069437859226389757301419678493853080308391345867616951147921420115217667387285807454052524393098249894587883020463511465687909623845354381944395696433097864389853392025635669642149909806563277792824105161943137438942766639599375218592044446366304693238165819147805782662066546767968119219753602331347143562966199870965126936894914977906485082202758705936699159154300772479924330228765743827907955531233036317450313717366925759403645344730413913472008461924148087864717949479152578835314534855241293876391062984695936047410851692830627997125501922197541003839556453598489131156011865880348775052099614634124668150022275794062751313345720501412740241783460860365334852815840533068211093758713599976021323904836892863123132215282538933443075368297788282155900636832800579561842364156661898779303006961973973594346406871879741561759354174344821053048408539377992087785880246564885033588815324253686671890731694332416419139229829127788618306905183470152424739293342753816105382711373298529619051250392301283434340890091984265410757754654938372635629371305688230127094315713232894814817612924441540850056138336731075836679258040792751536794851927320096846003583923616520413742243828029850434830539740432536690539019760101186503367444847573944613684152176454468407360659093735781105173458291199694890964469469181304368978798878731757252795121735594673859879433289111006890662820100291355540055145696788070787941233573978099485365274692821746120104384846500617580509449871158526254322822274759708639647574992322598016829953356418983633908463446395178123998749935661590309408022122182779621678656058692421767104452650438100767844179083914900572950190461855123171137235468730018260156407687570254844601892516733060838763004108736538924584872901072784949806990949772076763090550442956955884936180274967673490220586775145922616999932127675231447612872858452118688673044002596768606784524857459287881685661496340466973246135265407382133419854447089046464823388387459450497943025611096096159607889657610173307750052462122913145521521566303362035531259163810247010660897011257447117634925683220173382886860317126529743299760462846624946645523287927399316422580534469991731269652774814774688811758109057015521628276161365762045756205295342239472416168606653077938535975479835768481951609048412404714863801136634582892376711649569236648018439929162773432452058507653574700626969231685497521470537324701251769308575168390969391684188837993866106186548471031247873937544915133135558233096531820782080054714562745462670383545026459429409571768312946876665947016673421188853873909624222204508487024140892657981637034807598098448312929049999546165306369687848153959542526833892364642472020424941891411378031563924822055689759739706213885061861968824317131728887905113547193596421566911649848304534886534239998428973891110357597157756638477769459210362048920475166567936393081239703370133928899248353634470430785993162275220957187223491545068580980561771926733857841384134403674022434035316508875274925513101195987280432930725719679618020711720152438274676317855988070506423976974025314907142772176841500133993540897712622876336447879753146144730115575380143537127150180949148857805360954299090671384023885137279118775004083956437562276876341477443516515292504715235570615389244944280691376052713546406356506832181283569015426719146017078188433342201018711426047541687968376474498579603644422929251169022831279416905594202589849319524855786130356693756733927869576413776943039318479435867959037172128526778785706731001840153023545064792562046418750426300961099015898651109438680686580178979029342638424539420330620841652923935921488437213632992902080857756579900951565720869169404194935728711538338078505538641374280378544936103322616828309634291296946037926902320705389122638762826640363332273543781783950257018777867408827000328384152733359672044326167561626349624506650941727670350292742553207761819345295581072914753272203501741573007205446600025404978928115862690384551114034590830947286937479020952019751313941191130818245874111311729764154539869308914748979539958666324338754882884551582636118916470456683068056350178480949904455814640308231501741729468069322684834848880246461397939318168008928068552282916478450653164558908090479633388856102790569265428186549064396498514882379949795030075639971112436337331171592754936954121072649233074184415344092184427409365829434947086612888429961302306211173562045578730394810938835109455308153918466064532291696341815183510334891478375045430675321736481307616599104016920133509286683505057524827388479736768220151787736578842542254980613616529168150759042121219752952444068303344368076941992995556019528651411685735409679422198217258348786242772483238375201469327464133141204016372270113730060061194146529365451307353986440570463084896805837245169964433164209281511055618781014351517218469504731674426960771611754760850591934194865808108029827825411224335594225714724200050516040149953717443498323075287996359273232335420154468872113664432235195250859874432687097989952810661172664800375092734680641934697029066798318449302201535183478223873740004218708374513973380041866840699978616126352299099824985106345576490746919251089457386409763078954493927375361556149985933222617935602817495065555383496302383195497922473039805949203568594423524074371925715678810005161874198643325789280363888301552426970726547541698792401838885122068773829533821966195594840204208754180275546827908174703724259910735264187091935947587761461934727160813103313425650244068444348692295709240652898653080405309861037670057982524313008448624083507928397228963151138164363405872787070563070035797565628404885412226511679748655428360685782528156541537939149995734256566172726508094870061795436522110129481720745337186689848258795590056835158464360498034465603095238157685854063875681046776523407189468400851789948132639488722948136729431489191505135241359054344430950400226903032512381346656048530390016201791473358868608420759496093721435789666751847127786694311105430363468013361813633135415979208574423448491686749207132678435093002508733756968733340045760972956199078463755454903585906836902795485462707583610263881278646667379826483659858916196840555588325711891330545700543999744380287064611309239333906375291600957310972043409897257960242487320279609150113545091718287384876034646994502901738948464294942146615567252205695387804679126180349464939181787830686430025534233315073332665722720680108044948973577826644164065607295189927048430822295529174698410634442814863215288766479183227013377177733266702869860200123251393499370737608916628999531026850261390576053265409291295943631317857155877682833701570578260279021237505192028684657149813524072098843556471054239423064906818119029412658044569441115797952506587810979993238845723329363259836308067052712665170112205403915453126771728113946668656966408360596135668481065222592722368720751229042273353376629137315958202012863518448148040396185587103378387113519166055310045418127130320829472966395132964310238308041910448428268517227317029261464878917688086255402940258453381863624875284266637192449683347815486163910688107893241367234984675273404777319224131494922525042367516263649925797505221375963936022894161061403270368238661637212322732076240106989745132946529028655636991351074084559400462199056348343568010258429553829467425181602277687723410432224286463971248590385218685258269386156688071220528922086541892902615335797806153476719076383864556949058834413662190904341095499797700666423834654530229505860723249650223869219788645943610603957496179074220021478867780199783873735155356351751374923555077933046071607685726840730691105703126680015108810471303559129516430647469861549463655580283628359790731815074413778584765267454657051196908357202848540070251961565934349130696365498067968238902927229389666600910991745855704189198930055805618930943064110726035425936672425421096130271004589923722138365457747734895442680157623908686751898101763244129427021457600495732805869412828119814423081796465492678505906842405318807657241457952722979235502859608233553734410191599731714319313670366146757564929166020714250290722761877351825123424571893225000637857926466226559041483348605068095867575674436493602659505553333558609508250735654295312962618725740153811740175285840728144402695246838508959664776666216506853641806030544912970461594015241503404733365102322293466391068527427837125621881890572222144832966480213237704118622899649796015984291174152641073304645790496134656217466412460248313957230638198570345251476852968930244393221407122789549507800121825794661147759423617429695790934290527260158556460050985973030304105998155697190770796179905336614391244647281599669113823534080332675746575422411155722287814063829446467215301629989709546644344259297930809362496065984816309520796147024111917422615457195558370348914189134866515599614376435029873525496814657127819093319009391155860210834305044444950082149636371712024586156691706982193653197200314641361824034713774158183263521862119872355285870398441335133914754316177080228825530234822176675624439102896191479979370386841667872828539655819087092246026055537839189148207326506703561717330757810726644926893847624249347196005009924575519073649691771930176502765994056911408718719658317767789965657888051483771066476078801743283127309070214366483416049845523929929784706011483661800073702608330585386611598623054676835702064855288062941701331433588210722397924796590026094529463779361965857488979818800466407140909808556490079285621933726789702382713374822519771428185959546204383691524807128634075675657675170005042015162096546171409323830578442352955411127378100787224212463653718953247517437206831400769134494945963001235382302552925423832063154217362480929307311313838489502099866203550363766824071334746458746006800113644149373825334591195172890236808417124709681486610099108187066179812491540485484362515780951389813170878555307627087882421824884064376562786337663057362264296671345710986464850193252409016130811476256994814615411012252672315706584243015929791333984101723966075438340966737285711716005948168193386748479470690906559227381209891123626838793888062639908984552863973896516941147512025109179518920704880040538239961148459131506770161651446132944070462739443315441775624724470383813566148150243452417483072513997285056464988051714657017751398903058245565859024751699178687840574520270339348247312740055135063723237019485978922063443437375690792906375774296978937251423328600811819249201287747398747517312521868818446559113627999017517405732025721918490630090713060501192839665021649364621286313687932318637608569181776057745507620278752919976793926086862977875107583361305848032625314645701588736613176399983902419082358163163742545183004864203195808946772313244748247173137486670273736270797682244916847991027816592942678754515482203868389924933523166374993802591266280085919848998399054184708997831174380200686909014145003092951519460605255110505272559378480163711334553161614352850441183564017222472623018282578508723300572715455339714733822271279418200395629562535352447395963212229424797471280546720099310723592658712648266736471357431495166614598932231041607929564255175243139657519725131928586932796750350729733341046371718895096917913768708533977170283236600757547409038094653243833391616936890227705926183995406344106399136781265795201272050837873972828413364714170876119233296356298667162943667260188572892383602914340339728547534165083469532736537156313430372796984388622622941104230116689265173773894880882489706014011610475047429982475079975731651920702539998036589078144620577830080941686663593787522036624689642584840506639242081019246428311136578839555076461873972626783796770356318922510641435313809615985680685815595966216719347766827139859719242778144715711565728092398287910284850770207539604608501932009179617886057356082963369850470605680606907459645492107994360056580672314136184952301664101045186780547857226288898687299878033439018893510485297473392649782883530272531311354726995840931877592606656085391538725248117119998491501938317223859005503823125411950366793237481997061774048721745808610856748921122108402766843314257749472676431853429996525668053137647353309048221015823504956445134709754673192295963298659528632085044479408751522521375373805611379673703315232220041826113000434196624480548120150198645689836333444350756141302101270453421484062905996862730771742241660956214931157147886147721407921986158066588430911381466672728988233816177289563265961764934965747898200652423801558314208036290124887621450981124397255735125817215039945485999773461008148258054164007566624315046148067280979422693749955465807115078428188245469982998358958125522707915123905608900958970451857608223358076597475095064206233349768920750057872876566954143273562467772649835992544099533132391577890267488427405232192612487361504178384413596211697063317748998654070487666834255779579744975724317669991205167296556321565075729934806323742308967175547362217767724858772388751488168212667054721757678836723309260469234311014195031715309113766538621977230036790310667961143826776325597780893943690604687181200687926190974590026603820590216937776350158490016906962053321526566381346718765279371034070222969871956938467603032583133516488816588378134455741328315907957775402098727991236920404863683994796543456135251529123621840779667504123249640156481456425560810304012764722855223213244493551461675093598557777073460107339036595653449264682780759732430521107966493383560314096747041790998002315158595750591582581919431928517763760963141606476093348215071535694376058849899827707837796636201591291592652968821957872894932732377268582420196402828775246359298804703793567414980575093877379473584812037928991490782542401865466491281343154923702576274947433599635950083108606885879069339847552043970260159640628945171876213008540174457777890273746306179527376471759655471294867949802829298242631073744891302552233419777832215540276901969869363465194959947782779858349110159866487383754770596754433887375045698811065145542200424170553392636770909342842342554366773311817916514350447962903945934395070469235994726066654420099868793513101341606314077632528157712710081442720089708852717801310816044895453098545172203135072552509858544640905044625497286912699480387958623450834193533458003535478049895027137374586749811281269784166242870030151507985920228690776732177892392043561613726044745808056619184458038837275680704107647093815126801732875381165198433691950014244607778080168487936474830847973142345027171551474588438101904615210226990346839706163305557094517992910032855288949178439190237203276831517529173807836505653459107109582951924439235464299565722936858020688100786920781132733182931391437109921847406466137827242442304311922418212766624445051295435623394568371698253465938637191204887649990028252695044366099195669160028927328456137726603642647695934731563944218696120804796130320673094610066629684832172798220575075554411984118604265061364999519667488859289678047227322324050865292855426148574546517602471813247019086696949140931194970856596953271000953193737057486909836757153946473752991557513382252888827500021582458598401305835298398546788252400552596572818436208163615692971811130213082915586393235994412012304457431124067332957591443122807157890515067128834088558190421918715655999142275651493004272438013518105743673775053512252838718135905140545172299695191255324867442434711857653710395402660674405292897603306603419314511741869417941602452469284050106175774493180395922185314545664375545506397835989195145973422651754858983702800692532238152175629523006201698413860933119601656372201096106960258271652616704284239087478463041054430552617431405375758071375221130310071075493458963382446879022329185726803442478538313629413165491273153047666466063382875106405454971706900070216028290266665606861219540762338190468479261108583575229331489498739127014604697573668197138780327127816951936575891888600022847961010696006777227807269296008149695249320717472322128766080634781503290160242877828884582008123557450630036439577352192298340513016501284161364585216730383881829997896340680648737923707910451396227246132257169386429874960073733000608114219654009764672277640749532491401131425253258009325564226145619832662203872370790581677359490053572512283525863407993532865096899274859278999089030976394644921378058955854580475089259223416798097564569813032233561294138286742210182091445760530435812061199239478695034113262478924444998286494321999027367255400745286431764868848943011016408790054363061864407519929533653474255637350964784414049762370430446462376974839269181044345309113509598269349737654584722739818167851578432234709114779255537364981514628998995907654619217397157599004626415762151321892080374099804508413261197750023620695685030282902270586580268775888100015152230443412218621396934688165544770845517088856727124103258588261684413662895609416444240235879898896745584033858384747487087914770668725930237233096926112539959810890898700696862718665275759450151518847555653726528554550714652155135244369249733584486235631219823580354397474362786890896747827645923452961796613534797338145142337441787198002893262912605455432577832304425981934400311640748577812757998200100784162115442100842580997525195233600060724464290567390344751733994591016447047348602925186420539551911292812742556005250037981535288990231928846524637460304423338959356805843690197972100020284257236939364660610710843469451220330128775479296811870759816957516288664607077676800958461753435250981791165099083988948529486978206304917842622744536531332042177363906156530314680639642825966154957662050537286717153552555914741850325595803778457759938357565815453107205967958711032249465296802474043332193496648885543036897446886278618425619169536361068554960342929894594193933717170213965394853016330228387035705749435259288858999839869787996008258930816098431307235690255505345633623961240018766642391997531794815468545920544515924401637041211673921638726096587788855267449190617281511969857036056106795337683776709881607081061663291401568987706189613095783234373831865978465335783473153713195241686716419444137885567452903482185118082694711885951822206511831285366013822841491695409045061752592391796020520960249016733917034487668216976551254292936263720637897983527009376865488344514427790879512030832899331834203166658540472957321662092971027894386471312110858102074021654731549268800594169664879349179880573369533611468166742368564690630533796928906289905980149088281839987157069527734795842106344641798614617983280317331959765861435440632604209990168821616546501601022470874837559573044346945029663659223845721403421641872154860255119980096333435165440963366443918052176477688730855085159448972157190450320196839690064064469043312313742288962652899465604582602888247378702014852146140997790052071218219407861751646226430034731415737151196755961968803808583431776879612409830078362869531886959937682649148347979170826901937888978672612340955344781602301167701862560970272932294124963652263525362099516309699879031177451171514595299790303806255912684053033760536726655344694837218751101464799703270188211425183905418500860301539467254634099064190814434519207260594334916042017932980921139774350535739119068077242903948620464997087109331886978286527001912657616272060046176989772135417607878077493894947972403866236883440332084582498808750717202582208034564014765513794596278389859778449109943129279636740968445613063144468189912933229217477542870550916092227184905325239082509879472033155068806523566859261047383219586112753481701212459282265525835572081281992003404766029170016190167656670579899540705109092263717759685380123688276995248164451027237556113329065930918725623443978211488694340260900430830932693529377694890557423432382301054164201248153981297702602566526357845905260607295410943067019877899909971526529622836798523534059750860641744755609008119545758716385850842688703307996584946786305182524469470666703085863582744510800722571831765199171603000859066924055196670079301376333524324276275430323912991917567902193817192421960716943660465074377082018604068051978007671415826236076837663080004035752651723692317713229257209529518774278095617354072399446713519752292978162414392618604588812609131347438313082425108902901867064240108603194168257615767934799145356302888347168386874200156432786980934224001650859135161612283388010771944080703572747939586415671561651606672426288043799339199974178601153524580783500607192872490272255826447352044353001428297470391744407771968259418034338940877460926638377039834658109596205179959704823221762178264075966101920879047546070820458231970193213632311181500096285063907030234149844166149240899476382326080487063452056199446699224479723008507238416299397983934387555999908264358643175578845652778346677943199393305215165528505312090747063454600289062839128971200424203960119374771067163982043946595465221682147736886494917619928041690935754188945962317990006259563893425326636264841924099491715109760990997012975658855125692524127392525290009409670854873408321188414150347974764394821626929602069249999121757351412036016918717451827208722473080869530571296885407941990083259286474787226661123325900201804592060148544577755689790555397263473721472798726620898059386927258242040653696247624523152353634551072243672177980625958123755445554654039282888765694788189618210011399678438319454431312024781732800488262883760955308134121660668308864831872306662333428340528854193641957711978536332650671686764747147826849464467709295596040828946007819961854358110629471141270330008273049767337162859564527349230211111369940304773835446682425718793894715535518804495901038441489396090274353184726181070328267953031636039212856028525030400525822489531820790170211956785631293810635333580414267956993005422516200815741295837427875193889865177452604197497773718553281345893852501686138295502229833822120045127219787445366532971888654996995896176656962202059869691614762570506480591033514028078173727144273285751926877305845283095241108005806078956510138482162630387820685830683500592534938203228479302693395282929384753972876899397071312527192384994082792288970389510919129860938313105952273142295284873504310318567976966252029087820906949065037242414059349699682548298263852898068559179205319626174501431835768364418578915131856633812963697921799180607156785024965930352927158937273276570021817836837934635160273596608327918808688003464785047449783791391584684681752150712588446802676617969518454879716040132902346265023738610891888261221113236572819131740336544865224363654265392724515262283237156174095646326550246716432401953313251246146847261477607775415213634388254847400606797394137277475824470005207490323180857275911011674975011295610706082116076136938282110729362153093349006702774783739303142396183731529795449491679303455271877416052124869938000874538548379150559884266024499937713048651578092288817857594473126006384310182587202572450694995063262624160766937868135955918327278556772208783022777135214775332484506857900253253492924611176641431562064978495524073196370803345633531768291864471394660787423920276589749702477898795890347722082385798241483490091847437372899049160296707608995318208811325733760937773003552036061331603880646617561652116280095748794751912582177260230493023991367189494779316596252788796731526527961241540126708083578345087979812515858724975247345750807142742848150043403305609101365500388836759760326058526117942438008570293175644878043613843671993499157839309978650848072247876449193887429949488353457119004977157231386292345376117308461223012546857134287382337795929261572392188082569733016539993090256411242725077799379975055810501959477456352037260346577269801235157515218976236911495593377567792828592091105524685915949189380466055510780328816153004602348203843804696360265475871240372119341016515485574970977517220911315259396059807815192863939035679215499098930928605298921023117501492527889813136536872528681167007275503571355447015409636876388433492897982700948813042275020049492960124546753386826545786677149670351130044762668209578737429053097979041758101472172466023959536518253765053243544396003829711505485425783523627908943145461680544623358876537288771476478418669652840385159641413763718358928274879337266415202931276733720265293805271086745207663634458400401350181178891714547569065343948654489641360868330184585456253054695750327473913342583211305376384749994377867279260958816597328080413804721008678103456238860206144316161730270836045237385935971003100421519048779350348810036868842137927353938733941222434272646106431228567161026980544442881679759804643709478963626600350486572036137149528573640923207164675268159297701893158564473561024468661853114334880753807953656427856195783461829586806846297686173658906882204554540110678839804724753619349731727241561611922883966031098868598915978393793621244848663792410052027074873115866991335420071887872319197396604975986555123442152980741269769587229150960328299487132058027042810084814513768738454219940849837222552669713453947202461786067369249611177239397026075224200512666362983947136897786597814157537553931400294606277744136646033490559788318984232329077500537560839765014267880591422707506418389064820901815237354818954876420648606651021782990179325894566814432875416088438327813405652767280566859295175005516370272664437541573752599092430419091233842227890447136413374126669205485919916591134736009971893772265818009979552166348052178756010187611178951327240688100543070279633570161491291865006773033847379129692067984566998920991380923979690839939196740829296109444718070257698488469125081664919998440361073195811875787368194321591778752129814804978747903559625936942000590410011818936297476218869486054798310687979811821239823552234647812171821518418999056207463119266056968386347115718366340328006571374568701342467785465519966109345863360854506290822594266003884060681159575141110092326831676005949750723440487345264709806089307706425987905977346569496548215000631130340317618890515222704845511401305315960338238936468385808919110780418068085087897594888626204219801024685965961240193853351013756111831920656288984716000774601977405446082338232310780223378311198964530215385756211620271717481221752963681400384218408787990133990485797145218628790374322457643013230533201875670520974016339070435457116400801169636254827665633797341413643087558733999552738921910551646445359179557715416647824423531694454278057592679410635443892454713091131494856965675427574165008383773359623131688286716485689377940996602758438648557229883234461678386955928796268882005075537571946682276135061879224126521473163718766890788024357057811561269903153597974428838984240881263021461171202921743671718315760433653102829018368033558261766178788161807286143295694770325330331216288846437655747275532423568007644297731582087854370344503792493955941534926813029099101995183139070391978970785152926710217461863523806698095074274722786907741158046112094935875787117121486702350718789449638802868322185248517431167558210158102157644915823634662548339806359965262158183154951596075197673862408459810381418097351456797210722604588808350640093802616414737976305208498864813797064608040391493526262434156587692106616087557894288354862675039000232214082442115593244287526533368070411950894887717273063429274065771573527095170568049831169249370596395727418525338874041524827317137813029771223208022194821154705169514782301159571903411432900348181655904611309132301732892504895822185981986859713953358042200292431907370474149935787152203818023882285021812339620728050204939985654779808418126407749779320799055767692135243981899392299518508449272650385821296171626161075093859821513458950986361355379777020917989915319786086313084335835562739112700141756088774406469517998857064721800609068785984929799056595789960295276963713113876717684139322474195930180992454221199467220141726603490637338085956234105101060163494653981413239029689389931842325262100519413750244038968278367642778232370954018332532105768093842032334015487262516556247372099295395678119352205981309868316688216373395297403097637813074624903390463191029066307630845837232133843396380364133733617779351877433620736927214946880392988499204076535772576197549345972534156786074417532625928318388192385068073708785198724147563425272427599959563690419535814674049773619324154116286549026812977234753773136899296254433708000629946713490454241875300862899206024075182384019266982303422886209438255340811805985599414127158466076515227489146463642669721250111576418959582289312001414984738663668556903632505929368944002758867530309519650045752125868480415539607255335526550479849154798584597338525024210745939567142684231638450699153462365313440670215548588783865046550869377812568293808856668266779026740480941706372306538387084517332497407559539274183504085805730792296877467375869728284340529937722028113405502963556402892297198480606770345993057156944593814859590563563874820878168756004419805551692461238154505788715947464365977932726157182874220704709220518742727025484645405446817512066758130806986386563839294789943212197252799256920273574180082972316363324734992959031549704300712006108428985132545538367477145260516388381414647630523682839908797053482057154370572382996868693528453291826282987973140940768727730198046089658421968173258185164901316953704262545458493413134743615491111177052252715044594771076729031355116662833266596676526806858471074571099077599270181454316833540300286297582795070884295078720024013370486468234961043955789663904877741379567387291139506357454525375179077858789250335023420053644878850157337283379267445662424849614640855454299070504396294762416504302403718357870051788829639857512944272971915057726753476659896306187972933718189134749348482736690825859950672036087637134822243455796585915209677707163184530500207448890276232323104318835367328644568711077122066017933191209595040943510326001217710033711908656885294837324910987941661699218011286084629037455694642735556437018620404046469557085191229265212239295483608593053147630715142461782342431246792084737795222992203124292875331408719885663585347048753478400272118961815747234302347089807810483015389540349435695032635232625460401100093933826324816299086969280398415845831654271926189653163950112728368733127707544884357162983004284498708855864813305802287232308917332901787666638655452917560465158687057388313951049686831267088489938789296135491387920622418720583001902790096152532754966638616248545897160803456639564678150550117207660710990564479418947830952751614917939081308054034304319929983075785160213474151175135429550150242489659655370679145929840856843150517647870065090162723514686759281953891868368878869164808645111558589855836968403224914311686722222344186571536684183132887001950245565187938395535716281491452774012309099602397328631551445946811352651203606328123234663372342779752533937817804620944972726482918745292706630637202448675339539531560919607459714791836996417498291801038601316392789573308145284697497101097393795152104093185533329516155428817027675911821950063088106479417545776477243312549410402676725391808921166638354532939861515361503114755336779994127353636151743281963911734297467172526819489230845953738688325548265386806088725939386634812201413929350402287574220029235571463023413626553422374887858548665941177894994974699560797115766167110214680822953751064779564710485447832823899977591622690799443977153988555462053424327024433079442723309595249993561378525992937455356584272566930742407078634363318707606668108752435202602388899409111034477898440593542359469823676386162514973800015220840105040318542626044121354672987561486118391385049301612295232582449914711657689481564284496841892512808422715635569073941442602840678300462950638931643499969230493429798319438272659060073482087591726408711436496178936281645651485923530147632985861198600378882332222751163743901527991028516308933125372486772743095129458182757255316111368327595190904441052276111027268956105312343627669795802632842856546508460155510885296511280603202398010274442559557265962974861445712042356255892765199977940922575006415940541305417931176617589450400375181049555552459505033225644542804803929245005828460870160661374598314175805114107084253215439112626522617332484933099900210628116235498408537022953411488158470007175824845095561407676229891882865314483775518074293291589666436104722065308259459841904575752084037009855575122714067583707720516368077486390978604249813463498621050688366373507986340026020721479728881859642772752890929671806354561927721574156645984163644135241366081952307838285179429415072344144379210639572579568781870231720947897365116508726798153045352045733935424882488658174144757258022896070883591047648663826324543818233582852789564574224310547144134145216911994461209679277059811147163883699474943043643009439989382875412439537331292890508206919626787786007020661931511332134331208985043014596705424739236223604524496564338199637603425653320181804216531125818865542722448239536377047500433210481369991387633905747019082796717170857536400026516486673363326560166827503241199004340717409396364901088776667843642945273744556221962245511285318268726212659856658309531045110715581509343447226808983245659003192780927863830637788289989021746780531027252145005819387420794568761989671225923208013348367399558763851287267809027192726693160209147360911316320159892690338225472699245379369276877050279795392799696512922787429150822924228586213453084393378622981763759367691766953287119035043049963062751068426379942128307122900580439845938323298368286457058277224446142437340606161731207755600896373166069507631602768749850889120219028496138156419162005050809272013941769556051311110984171263262004782355782729851765566353162146496440180695128733453890289185032690217732160952584060012775176731482339583406327827787708639781635268621085164991292897422678083360141670844355506212938206778869881314377078755749393800662683884376695411878531235458508971979455173506834535363503932370964185412507818483803749788852927153601514892834488528199467454638266807844814834465278517248502566788458325482541404591974774442168269849079451062669444449442132053120062021295796266934554442533768684927705380846449456950776718845372963116920744011577910792581177489098597641181006311750051717254674923741964292716459920128535875998812378646836120629690473978259005039207454273713091952917394124761553238916630731427080377351727672421658099071722851771772513335852876376739633885124093535066577871021217695533270876572484659300027621079632326710275026160775761835115504331943872323700596041037187453567909873292642387253198585445800101194840702746146902852657632961042544898309624015833333382063412414158417381883227018390209339546437800688407247020408529497142320587732483626121011110527742219253035330441824899756853108207751056811184505387917355781858524794307673589648138299790844667365974906510292070379815904470243862055129240949653419720567482216042589641649836820710307932944333644650316157794056871461495058299676796927894480126635935493119175728826513220228346850802282889136085371040703448559698253220773624370197053410186597860324973215303272065892833921290074734312841400522716468018075891301066197919072870933828660871915601180554542976834936543519446167474715285962858399927528361533885784058501342203944632334139338977427156114563218465162811208365196650750255486743228750277339195880089106343526966302812049263316183945987769885040989420814926870503242173012857067413510664003883327342285158969961589461368360314422838647205098252847488318172178760273233400777564064093831602081183060664999978718746670099281402982116553370075542097306729420437822848679423197313407542221181974946831089888652577834474014180431161079428604964086190173547667283443612408886293322657111925766470676882873697330505790375578584792453456531435923293755504237656013192563807614413667942590576011444222738079095949336074204176733991710677118992089143268905433495705451512823152309705163092845017199086494739550346368975140985238258119463844875699345273223473124942922367321891505228700050042311476913948216528906390065957146786821586666782853781693630531604217971699724474869100265928904736128366779353578719763548776141614000403385005916459098717639591052728802922074154710856848566963574625432494910549521558589383791796649088013143591626145894706137607937003918640182204325236468702187842123418210156146553526861010822360186704565314211111187964170518359235315014039832767743062292015380639865752072341380684179799175198131244176724144257736664902684565775665738879663643638763350337493832477149852745322364826069153133737908153558616478920818145109416455264386652396848224973763036844648939667273676494964522061600789756717908011274739768346999567255208867342594985476955774187676969942882361633500345780713066396268833115201761100912136133833395339594202948204275576243290398636123294581624734760675813020471078128195150155717671053032256407468131580139640658375059480643673686127826159609558062746758301420651044809795062162575034836143037950937687753714279405539687663057779430547802054045759930609013701454116071537268698636472203784669701749668724470805109732530239939939829745785060966848862917201764070771877208760435319418435515724964995349788814431632313101827066096145156987590300381546867993386210286821221068936969546538465301755040923336400281936854659776737959672362366027640190076088835429870048333538719711020069078473246334369570778276885783142766237586896525434931915363705855730719792236681112300408529899877651158218306531978929409302515888982840939987375090140587430543515703242785029022539968128338153859779544014056732084404793713773043878477539799586705466246375074335044666553406068020322939994495826518656521983300620790246143708238413401240355824406844002881062097739818729975680553590414494927442081411943243292270242877926575009795386785746170311941274393910880164262502421783795836148228601312783811357597428996864826337036249282179934067287954414731463628547549578361723587444126230332389579233855833050588662780130328768726970841620936342977288782856756554014983917022502765375384271960322271784514350478049702731088112656486804313600737657318619607471137066755738693924873013316999816008541019600523444166329232148582863556516097335674679760659210689996265178878180226848786797506702388513263783308357553443202233371589109015730015539493545620135836159201000749031270677589922991152920868779532854670196595087039295434508834956081927483320268159708409983294907824848207176646509806685371677880711069911761457471447909140443432026500401837964265855164435109757801556190587352044909869904841861701716086997287100738139982300399751684799668486486370245376048938098255735220047776874833663092934353320668182133970899024850666477059069609379715952310459202124888538420121336658204143079477329664570702702283357215279807595843338223691230429501555025063416507640672729562814088646841422715184835049732627801339524691934532676961054431241179018225965967367351278562649862075036879984061143756381443566642013821370018332923761464381057294748486767812442715177197646533861804696401892722283850178888904440243750250179156440942752945115018306889243447716357448954807175548071956023235121668345022500825771123337676023655232142907332004251268672463308907959490878943877428440281802577055588322790523440260124954545946258816789945138446400785905217585753558345165222888478857975244666282688869952673047000966399518849751436783707710817587717661425336957767475712981984606326652736131957445733210013634263710314630448372637055042373792863691474516535649815622616914271717779519793016167449810084534326680018952690139102535548634140495543269733890733532914561535149280404230203925585728825370594517548648432296956783745373384445224349457279599856352611285660441568202907909819773849214578528385529892302366307126375624036002965083066063594448879533496655743807630663884479341774490224849601124787124905669496270627903019903368445356229194212514985038921060924933384840542314467656178978055948927492605391467123333658160814486877276613742260311036664399936809468329807663949264433438092895423054110500586221330975095432795241399108736845308260603513814869406138006323946758356473129874536279323433657245749765085365877823473578027022617542231946033309439673933075888907189286855632658312647785261166098270196955327062885594969427432100061648055205334194561549490773470682032508932595919181482759265449722034686299835765327305624216241005868022507602717945235113161681313181769061501871097244021021296747121694009359026116734583641654147920376712275181821000932945636093588405546582916606120699122575115056249302055454362452658774046999303663286075881317462371013771255467174687439899825833954521047492461501953103174941153263658080560813381213068359540166527858320423237046694448077837935293203435720140462251031042107276251427388249351922843895707854894523461565607638290730840120336909521100766902849952403644425060915862253945602718950640388725118695517960813882246958899645967211918805371321458425665864645108172586787669293069660750677422175207540603854021206882940094326343535934502543399100495535607821077780528558743741583486876882816990967687093173412736211766887670741283792813746315857200839061418257843063530947930639804326014843978709384328239226827271459540199105873062327802719522662304117863123668026870019819506289149908271597654645625218875345230838537325805861501485423709015563451376908740875602647134663647453457413604121500918342545525671213205039703840277877325806489637327078270295472433510123069657700918968314124547075875526928849283663216383233218440350158796298899512979607361488423180172218915365929044511524474140560854640077807565633882792827924321025742315443668317619750202920668202825249231313057831621855450671249240685397588944212562245111728430517702712763975111903466224636630380208653398082339587099388021653214030754375716223261744944376791611511838347621298653147179731297095197984391085955631685199962345831699143449306592034440934162864867593583574731823355262267255180864967589207357599339872807048544555067146203985842151685757490386368083970329882278950322938946713849921827319047757136407330786064356197456558027735846245069138562986906942817111657729512036031326129178718373086076001066383291235214518357867398252659028784537024997467420928669935069010711269532239655666435136323866618927105024478852621429498640173770511528317306966299008572517097782961282446289731399420864201678437838529903796876643680841660620573242617605772956728423459991199757173437581205445631501112030175965042859420830345807623364639616445952724852933368594621620206221462873304404047304800887170062015914316491955854225111510043384546546012389706911147360476125034780482190298108014394894096890178340688014297166870590397416993541318127654020054037283261136318768484287855181890284930093342748419639546504382924526873561915672174236803251337326025860272835459060105651902075064825474683445234890775559870182968741930576345565656652087535706146960396466284583208902781346313604044932080073138002749640005558671074036014923890705513850447731921930214714175986645986622579655387033028059154714122910997639800979879546350812741667008897175359731111926540039381730432438642459626520197388105285151931230717336928562166965084431368982937628100805509903057894157648717323015214866844365700789364355369089259527866585142926349358690004661205235230535681763067907232225046234853106078197822809801526259035478004834575713145913459400127044145505759103337440148135904916628636807087132057577090597904196290243338585978920149532134078173558484467102413351018864649414071424931955505355183862558277797628413151554229600193748889634274521471350272890339021730745429457533467567474215053822980192916153044744988648325419262673902408971737213122914912241749387515410098854168528176649397530745319605792815228067969380405476666521219639758955957443326118137607477883534927490957900255370683618544430454912932775313262053702066625835517746555685224656987433405835429562689232308832021123529708910125073120226118793365977341647939342957341595833646767165283733202732283739591079387089367766177308035509429457381023895349388871085183009053240385100701600766414877310205410214319745856029255753338329225338907859664216321782396459381586341828430677635439144300582280543452814400531647716346806497162653293069502056510866936456382473466537062799118184007842009156392003183159844418860901338382244418424801431895449253064996529086449856070455295184678318860557987427144606789491185520114127055536731040401749353205268848403166722175621144167780091300603635911701238451351181794410498210350124737071831311969484533248938101465404747221611061404226219742158257600861088354688100377640149220590093030686656073000793370051926962726551094605642100643124948795984380641798462847849097105752942714416870279701456218103162893715210331616100234108554836439624149732567379846955333147169053886510673819951825964518054755509834097124915930326956350349982877219779613992825669980851894607095586997021971128678951392307713732090721484184590779701854440104335393261622913300552412825044116268494253781969755188370855649537041496566985251808955309959654381385355085827886572189482422682625546172809550008319498919026194575786712424269698340289654151261556323271714842447841443028735491910888732332348040200399164622629596896705102997322229895725574272062147943298341401851292628597387076830644173305369406122781337728177006196425252253146685980374802719498647051953070027905036077801435101157789939964342431292999640255763261025197085782688966345008342408646286142694618773849841620050782300823183598624985502157273703071328527592320261508827266372117166440692815061657936334017301760282492464269485540863941138143374015585723642703872640633007690555677317342146161168749614523684495776078718537496051161604347488573449638414702035908576621742710969018007581719042947942327207263285218923384181965811914869594931254238290443940406883884329993982762950233109399019897740080547653378474698963063521761085897349101030369058661188417678963312916788773092640465817033292078766119573978056071395888033092681951725744911297024737388593607750913068902109793875743910025304804344717871976970192269229463869679645065255164814250147402185772486377039000399084039220492923976115350654222123378386095794847837826421618533577370559508152549507860476882499506256571389793194327660130834217163975921750859872674773664935174272595580934490865492277927429750696275377630706190319574953993495553347263407441793395524972472917542838867004065028035100419990180149799062991997377255295683912542772168829333195405880613862259021688460476500115967651530645415079412666794751920127957677040976998945256218120277850483784752949526476004630260273338755727123463986936499661752571008326219433314202808297308529644807218320737303589172659716888784653113206150876914194355608428821874406748047672489756059050390289634449418497505872620290600605160351445496652459077471214448024891052273112500036264585497380794773342359019983849736480521338340918791657831532888007458089610665929984305351642048987554311951325223726470260795783023137942377716891105399534826326216194330681739868501573231332456341764168834916761536559732319071899481464751244659326621947053714213254117974312377727318555638698624038221221001430028415546962430257568708125090456480657568631722743619758063457424469072954487633648001214818610016675269902440409472749690759051437363536256085777325110162148187383639056266958908867078604562651910165656512016211846320795485439550504768285191515531658910128877344918219208855589610040025504393164019010161001651543680267047559784686052724774279993264062865290287909118419091453222855949192821748372644370299724648153177212828239270535906790400240019877916975269315542604349230441295845790757574417687083154469360092450557208384582999034886300906577065581637765026208763303056546985976025399978173354750181064164629178417102640536822538533381706844165751751689166873534397992693033813768140908281512677649892370927116980382392859747764380237770675493481829327862121301007282927068951554249913121321000835456470778025484666292611489677189458848475256251321294367121885444474484308388744004372451674097843834532341804859238733168188789972314157643697877593731531431327613329549392607744582306303836656436607961209452442370653807246638816878066233916233735846146518075578892252704516613796093481760819825428458531521316467609856230740701521472433657225707943462384083216452894779039874311028375133773811397812579024496863332026129489394725774137334408558938958729140464097199851377829164464384525873472222737671445918198120733910396744792767678173713470258502832065815825101763738510371293768362327808457545397593943035468806642290116631539143689357169952205903526161973187309677684412527227179499683846206632901140403884586663695620254132362587320527345292499196382170232186715292134637384583805729985592851383398679913386297096536224882045078448906996474624290417239977188566332286222172578399883194918411782854668952028097633297299537929893681615060555460088659064480292690265430363902066804320070251996324772487581183177616342007807900116700375529655835532074954429738597946762355080851317661199503372746938340078137823308899869867306816077034785333007808860118619021142476813473607537824362064712786818008115605246724076609016559651580261522560195184736527665235860556232627278347306653131432261735960257130186431497545044561839817772973408050854306383721099930755396243953224146480749080597168871205896513307524986927262570228552649288650824213261418870053177162522974784472636651557666418586995588480161852342366209303168561782618299899608821748345241677366871607306649394835182955240300652117737339464402058915934250747850163345984216441930309704915796508399312823010284372346025187649274621554552318097217947217229616739141313797321061121401212771786744981659763938338468528799159239588514308694025875026189282189397610226778207185233700975949006275457253868870737545367181247300802929873773084988952414550979416515376186890817890370404924777795887115686276689211036635689017249063995860430875943890530547625071288187101764419640437018485429257718851105254065101065383336603566431029279174137396441857274986534007627716500925512770036511029848746102662063707356138660363114049934136069979731033895519423820121264448592079348313572114261198487446427620639155220891066926147681615577480044333947291803438628230831769623613167801801385483668704983915467459222961676042430746870984487551713568022782272879491530000876159821561715406745910473714460475587129872029301614831139635436159110925662175296557886241768008481869301279930067929441913113698653142427665564141766825230230430700015842539090770013792479225413152544171697403264184282777421379509639312412626019951590505412262317137099179799151119875240912014966747701701686944217576444627867336645232455599978829350984674429774848777430551748812946727768882714234299918223336173803095833535761543035242412552975236770225813601055043319589362912798342412153999623363415947138174502207177436424013676181343080802336426261569362341799879762077034875985202250452688767529244804698729909276044527609684268733704936085135510320003075136077782072706757796075159901417507592419985218870435403702645761526356082066544488419637349955635999621807219389241303752260551067059354273768118602735810317422626823209358954267253732774750930462882933248196996475618413674115191896585783896605063613335987309494945604485497235490889601955703039131984943661234228042831013517956736129368931153706280295682595846340047567750499577369667961306071026528417685704687677390112211094724460595591187261101558713540906047610720379652502730381354046703562286464871149402963501512519925033398226434290636835626588524656962030272028112551684431488532515043302636590893239039621579068418007506421983694922338017459744753993026244805526534809708610637766469374362452535257633860893759288951535690598555262080377326041781729696217328276202226832684356505894569144559199709467469577148534118318828936572061258108668457367266465150798958720167798788910397458924424511041395695358612050529276674444204611986979299583997509245052309108981675610543958787641643307416978626849028625941273030119746837959751629874762324669472736309112848087014766397271956880526598786846429824517261653626695992355539003759386468401838724234580643054486217020324005033948172566553962741162699844049650774731173417155335128189979226056339291058321577449841276235619813004716334730340638099403839575812182121652672374406786162291044404137887458142754794927735690569766163425167916426113250342547015164375915831534660659507180133742889386452724536459669292507035087179880953299560326566627726963984831220388973599469201189425540865523061901716415399171859169010177942199108567359759670308026671287780005664718930562861504414260914516384449959937112013460515979385574558417273365275634449487149081193623621323350684404632182347353242448599751097644116403648857655659663268834834754407250935328573939740751424814899275741607775628250251931100323552817866699675962639588088425232878168371624917055647418442325884039456156693524621805183630783974521550189544762166025486893024648249903063602377179067364759256398872873654345199917567228493113039884579817170656402719653830021994086246507713540521670805866035152883957582231083496798889476675645014067585470095570525318830555174032014102571251084551181533837326986359769978007818578448458239826342359617217889013505804180398922204835596179044160567746333391048823224481613435736902260227744737276767611258483336921824377629481980074213150579512666288603637696803084243430806473642580756192094723173419379549541423233590751763551761802989243671575909779011445993457607593185376013369451109653846126809769564083116190200908491379344063939975443790753271140813731552434489682312846563384768314902209496564924997766790934285875809999686865474499739416143365675890120749693183496718094646108243719552374650129152319672184628714902080313399337141632463963417104811737317641586417806651574210842898288865324727120424967952395844697799374645547838051616517027147428196354403432376432662723798906349093039782412950034534922692339482150595039787920733030539282346970350289708775955940787609392680551072126918768063258102619250871462987914771405275784752302848287811677328742052149350411550799334026260669107855892975128229804649702098274195253259803673609508547426703516036494022225790176377416914240552672099194868401117226602047017422786728967064039938458556099372572747103783232487756502962954142701418844420986041806112481583241240942185539137492676131160899770728965028787370647349789754150769683862903266809038740486666663656558930971781343109416870949609924685281581084870353709524549606481987025254580442813031682632501106695254227822355885935970632275046658721714224116971563084739809921764413716737125719593858731123565321547421793613496830319307379796209243607233129378796826974881615421849921086856272780402833648664758013007412299872125224547729858349073339389604632575835029078313284691423525609046527848229584302774279230268551251206197767168100213821186006631166200179960060237969927525803097813825308190918203304215058660108686803274473900086304568026037312008003248555765196625227627964888852001399853336506594575062342319947633191762686127265649273901329209123330680852439971711361208064325188732838005663705008842735619203310439715275642901885990498123969597829221686899599912729892044141538353931412022723692094210465831639136712238035659229428542278368235604289846672469512115574072033592507352758046730539077495284522501790224940584598655930171390747459053235315518994274953952483403311118264908848262341481662259330901711684533033976848421605706071319837229347658760487008822004388901524368655160710224219651814856929570171577925129463142023199888889563388242450234387413875074895718162662774933105414000403449991172622577992382808124411595137561237253804618458889186103140837376171169663495701761329659531306209271735026020694624079786767749101248568576597465406292464080942513796641939995151420157990748669039475327686229360154202504353340967773693926105195640467505768089946545622763538925350327878627756284397565007928235588378462752294707871310262815489533058698816092392468566243873605024829250763004018289643792747776394057301945106202736459116242807242634523601074901767751815704947146983947796985105407621893030523919980995077931953692042719445763882057187548519002361272232977713766807210624762929894944038648519178945960024156723881346145216516735753626915259590753080833349682876643802817512625944898233295986246484875102881662357424697975276433300260520082622045794230662892013634896190822271992868601366476114252014531857173194238227311611291022360036256479889704487190408444923457769062194250802974569305934241635543493658536189668451526135356015137602013878065730684969942249903301065909661706955771265403107379040128453415019555380117694363490871787827164298339502998672045564735693883395475335657535593499471818214484394215715669430857822895537302893383520868993302432992389944067950109502798810913027328743512075398187300526872424047745645917152780308575342042681918329035144433346567926478577131666329931106354151360279666453000155054751340313584004231298286917322315282587172089181292578920785992917590540541079301270483159469900810058892533425145278427101546568573586079847578169824137638158814367904646293125068556673966795180717463408611486796814132466090594488268080141547504553346338616425822852435043261739837978974474053635617902527300974123218033178195270320679062735939643675177287774405895870171405858907982282368590145422443865956352952829559273641726058075309860859851034511108406621375197341161170832030166567034502217961097096973155682341517495655353508480028579474278386227916164273809815069768704279791104789907532424446978034227424168575903101212866526759557194518301343978652151563155954135739256653274218517565414641159053796289156087832698963968712579599914434841397929298124546426380200389432063932489690379883682870802361848374018018425532202547304734866382934371412396081261649710133084224245310846458761255356505953135798700821627972945117295569504332420702957755742530871572285343409131975643330655771171325186450018385819886074326663102197845299617332455931146301655659469764383870220853822532370834142509519862002371426445276370335432581153458626755824717062695104989706669818425814280262619531340166238966372539854974559533862833906599008529007215558366483102099744252937525906986519645228816425840359546053778321057482098657455922750060508165418838722781807424395851716502808824787761787166610028746609767665268345150796246140809898778557499042263281654040262726294140806843831578364157067699177170987878985011297192590749652431008681000583662846375851117860791384425183712057857261100267193924680419505069591611640031089281905244004980624530288557117997740250825227865489054955145782352567821532487421587728277890621952763808158125768162593796176645234628477864537864486588328594437030197117697292455418618240789298965613269372894756307373044186321992396896195600645808556893115586032586908608784756009155350436539691349984432261899223270151069871513483643014992082076365211020025984103205958941833853215375483515728809727786177335155600916125335179203308864044996590584801972387657679182527938683382263250802837408680986901793715365010593639615769325048694675582021656811647494297902202700289369350239858345765858812821973419144533342362105548605403208784948709885927825396956659580477653574620662620311687367342871829824801967897211993454947516361179414739325919108759404884149118934843487034614070025910461133579261516961831684431896770142599965418545687019347878152572085020489861036827923915007059256631435176433906481644669524588167592205103159007369857714886365925974626056935295856565626127409321545608699392893103011045118642696039972177687980412223804430445022832951888154757484041618401636650322953523754794571654146953811130649830393273016693379371590780640420293378662306702274384044132691697836385152512191956189497156505353941465866925749520847997724287783149526096048644364409313280059259864930774643447125624654943306349007260571937451440363055142748517371198285576989779897375654478183413600324955302508744874104787014151863949196334608383621289932517150840042665655552948909905587498324422222013321292277015280353651975975284130054509146709626880784452810193352965391463950727140767998377660452899597964851506916771127123929423281026541876237760370155559353295371477720051632735274341096754888192584083187018254437568222556623380903950447562646182164909577916791751878798295099765803382620954625475695661145467891870418211188910470065735223891903733014897507809383988392377270047984585280980752296039943664555813463632594456571469035224774090995893804483346489334649213992562635319388050980507360916491766293418499266020824501771661720089620503855365164039145212346345697338103907951378640706944047376401122860067126744681621427392118031927393671552242949282356317685816519168084403238877361805186868566037589211270179825428116854191457100855800021282899486889377315707961165564481887876757760539174465209002158319599545244121239764823298793778970260994477744938284775839758996183407839664347103162414480464679562915954636040370990915434396448732400622292133523913585968277773503382011088083071717088238412435109095052087039608097599376010867346764785830122243836483289400734020587409670404647745991539804097457582281665905741031254825952826684696228535375576697436265313122871922424909909141653659556032971058682102994261601049600308506164224493265768181216797456647848462420010434618503407249285220921788932288184261383700753086278319110236938263119994486195475200120333006772770477452242485477535672199119105127032614440379668232082387276772221985948165563703278845501791398021257690719299521799621071199025274091043367880887138930761354884108671900902711477959019781518442961559338848183065395094153529064318635130375594680322236830524506458628159398058344837035943779030346512804572487401297160570825629589133644735985862714013556647227946439999507707890999232751520775480723628765994444049221790918610103707406831228832818065714652569259185624894317124254955605075125411864842137873848756764347096822133940463938721044680565986862985519211678549033277926007260280069231744215637646386848769165052313906678449936183877060120235630682780487495945340483713990629608180688136330528273004617534782759732389733906913742192707946902755989041406655385487818052112044977629056650959046847963547222074843705095069994296466475014665180547590279949312863179090215867280744637580776856395747088829101377669938109322029259781793000996799196299756407884543393091752317261890615989218354837771923425323358754560914025992272505914488847899992088539462331257894135425344627618585463683300892312063286240837830887816888600993138894826920495392115488988441971857938614104417035550172031185620401179420970198489864412964312109357548068048307061634286823233932447384941784297988331369746490674655573738781307432253682495367157201040572281598123511362080942938722680694872575583039170861139565600804786252716097277514433703681471889854769238047005488371498590056026024765340520883945897879088743452104038910909097338021509011592334992426707079381669098870576910324539849389594324781074945198558749600998546903434738668329057208941888725121502716718931891560580913108448554864880624258982456003188828801079328451976293610935953839116935021980562739469767753926148962460290788751189793246146324738686726152211870183714923656801083656387010815244151981210522186983213252886572571006301764542074416708695793698987233075495122040134912280764974560443293002740537472323265924743317707542034473256081440798218587254765759779104459912607805935816044315054372197348360476688185894373905201467823120211999610533394833934791627282291576052852002939028118599413726554670048391667600338356233057626682060112574666832055192346975275046205923038441611173626180316944202177874978103251049317438150565346848305516691130549904747198127804685499246218382797508474613076034868199473970996560771323029971908226988498697544007592732248115766012683498169972576720123574135327763454775143170472338063578947181717670014256670131377068152170845826784860073512062465132995410683097175719914576365561601537584390580905396683774136098227065467414568920620264486881752537902229017853347852962808339983533914978096791306859342986666585120898893366133744784602782765222123968289899012003634439851618357546923356926107031471340644760156150975324997205240776322576519563603882512284618286758646404052781126216244609532374381155886159447298674593977189293488510800726847648727356494240370426031976952135550272020956854164476152802514013828966017282017929802796976411822199094468997611635671574271597622572907561909792438850933959253659708506144537653578682434757763956354717500715339975181701708157617845619839795169008195244922852843407956668876520722682561252372156560954502287124482820059208496969331513533603840910875884003289601278528310168743427188205454240058954246925958677301296640755231390092061290080458644375732601200797989113441204448677290215305213670769626897479537981914661827644366056095338510205305975294475328385588268119350614853732153041911601888338724266780525007532632751213839993798994109642016717092327843942470422100406697122420027951948590566556964925317880513045184935537933110839283941467181059911433242635419064684717836389626158321762285005343040970160452440638012517881603779917698250472387846692246812422107023179956782091080540155046338450073249652359005930929899521221023345084994237837026039409913736662408078307149328277446737052617688113508506201548009133790342213311203501544839078911530152323924497415969434324781179092560182866096797856261763488025793223337892835175342411475396248352501906110152958854021108886596401461953452706065438679292044209771802958683314699386215204659563290339198457180177701247658456640248444497507755363772761896171196295050000369959784266179649872981540724602673596923307399869464833344914564117544590379027712811919565205854155525127798676506495762802652797550612453563123046943157650784850911876225206437923750287771450676622633970569101950713046602014471312698869802115068814900961705316379312325894809902688897840497755395993633564903622789474633956060275517925321051705911205173007969751042959668672254013132670163035885446640973854942441165011321795080696777620823860674162674141144397468532644376571704634725341567776534570617167173917652588457011490582395795969604935508358281263901262072385726782948467102657582253747198913283487150678643655204366730612649044283258793527218290173588715167900683000242906593814774201540524852645659972877563385692379991682376073014014348942095668744028853716922724401399377651485889498991921036327594675055022433501564093058601344028908123061364171525108023307863297569674550820808125993462135643692524671257403647816779197507483903111327643376430056762755648998055900360920399835671590339221593687467659190070749025764461382071691814384652400903704944482780080196109606749173568841904546144202171327924969121753499716517405810527570222345449745329033138353885399472745235537507954176097182170918460426186913569773707083516331737615474662009217311656674245866612614433653157576906802338804205352260062937941404150891668607596903708111129855381406090473314218757745945440526267029344505600147765943404844534428745392350067247806692764321517894427152636217332705696843609092409353199141214530631877214204175613982914291805450971647850805932782763205602354232330376334362028699086832516550425555757234014092990904072667348763563550076520651364106206529984633615407156404791778449655470807922669075009089247471636821816478169675069229802034325602186440010537048336810898860699991893651269737603694562194894758154097409939766505315175520732232543680686461840573585738540690075669604813718204672822554951161758356440110095636443760608552581067504499550472546539711375907289236919534038974724634633502010448849486936021252292360762873192203010610750983964623549450565523456125242077033122842939559731198547376980664880602602289932803417333209522307628737052804771793710407832622237638883852615072339305069085600043676974700400918721375339838515677439474316333335219972951172268199108707316732557853544242329624984990189260875315322740441124167986536685212106953471488196996306393364615255192375431685369533855338978074822333981368215713578712728505423256699672508627768626208787208779339767161576703338426907938442053729697475958840128276508392347325761921629139189478796040516967139797855595683232296457661428404020734720101110357534464872806277708262532430379250201607036449900723183538482276019565937557786353591503737324573891140466404306719462657969369152922085319522371736515533185676155246918482161750649992871732481210189722206543935076820612707584507166614601401515753888326270672427898949435128195916901093810126088470889723841547976169099622827589166450352614207399126314778748167201064227053675350078116326974903694503634277507297771831212183795889292881591191347620373145782223108198708296404027410627605553278709963944869832717926431674258761761246080890683376856848636040566981627217993365166974400437170687971054829918804646001793344765905732258930827971945770701235938178506768915394764580693223140827974575886666895731176289672336624504106944286931367770885341927143918582505323361412343149068909468363405801351001485345631233578673975095948916312123341095653177578976784406328567584413714270794153283580161703304945149988759388757416956149896138294123530295660164413021786763227227808798300135674601404583921963179972180634411810834642121660163716523447981109666384032214476688003259704227041267544519748319752284735830666063720715968684128358778303615479678180530672429376346122569170968361943434320203566809860707801633314555725235828051971948962993120265674513919225952418994854787476477947311027234364237551872972790096028346035185329039575629345379336943010786549705796096167513738057376528401546427173051328709436291293106279888689866551182558321465385877582165187997929177628978306069975980797975914113838092318164992152694111850334927173396564966597182066898238013771727984762418141320908689894618168402291467639503201676410307152240075259652044494441367390052791536034725590976477257448690269971878369863535144285293631028581912520035251613221397304113343704479126192975555752045639077977718586561033084835982765812746539701025510482953179887568203031123242939571460123726839655443670893347001405213964546070498393672404902682317995818997750629607448056325378415747100915614796330259169846277244479680433221553495681561800456380197965527843719766938301107604453407152237855534017159041483489294136090426170787680000099924006187720206510563527735770478203234003096576759911778104125879402016025076199408531376594975955716870196689437034901860142089775343358615412935099440942540396612970129996293965122767807181014573755492874554029979514567588685418306820825377146951034491542885944107716849521299261204489390990588466586781077002259039757522281638904207431911153412060688779510013574451382622375606686259034714263795483666650854949814720419456582597574015199245534460192665586141667457045494723759246635375261513027664887622779399648365024131229348163590106180876812799487475085551138446457701789872338852350519263950322549851633284579654730162206073589492293559985984265126889822456034961334042255153225813437024780878820282528655177950723177380111851130696208121814375790239628531182950304367125155805674319040826296047675340935061658512551707283688042591608646631149823831260684251388153481818711938896518259402207236676824130152737919895646611496895382777409411121636564168265486860792472406389604988792773061609984141798349363435870409861464421149242050492571395914912923117024514485392139250123851461631903712945212385707720025817468774733339818155974795305835460116757620963624675273328991101834479658169032080265124445095671122181338720023453490976214238952147836396396095023985223675105349830699448154871763175593852659969167947513154306628310616239049585174794643763842808778547929199079761574600785245692182787003287854968279282219660049555873525549430442139677541917548153382023851113822989923221491917202037723619554257553767742090861834518575065352351535608159746616868370025957321181895461633753501734482248457269524560848506117309909730789767827612397334939433170793396782270941964681075588878137179499117221330653268724961812804016955317631119487623427822448547909686351843073510958819230709076440432768245962631716784756834772400374723650126349602827229714745470080196818001408647213632901179573103335771372044262827186715969550844858891295643133584231975708670872991850864518077604903923254204108094537210347634847720552357869805145530155060806430287729077190778855342679724401186912787862315156788192130999656394123356084192362192131306709212418387665104569169075187633538047932191096938592303293158020892003627629644574307256149460575531949743538118253045615558311963431302491396646580999082862280389307831358053600424970852331771970099297319882877460789387133990715652210020758590973061196272647220990131066695027543982007505961724323666236695191930764065160835589827051959370140983407799821459438713452161681401063614005187477874598578333801772911154732480965314906340359634738112347425211833618652107940575483728754185476782285197721940505646688748370842921162685330523310803338877988909858858804411274875891710162137732487510938961806507357172369054015102530478813406052925588882133602163395427265769564513610632413853104459273888545688983034389441807055229897002419021832960739573834770882949732572258451286404110154261878796848378996063041751531030497074579464556454651466655770426161863713421504625832543918699300990846304238905473226412427009784331269397875979332042231688982813920590382297723123806267306638538275145762834492398837343959344923021124899188440467871125330977489307830455874488589678648933281740842771552146628157676238763148840822826211402858109328425729158500673130177743048667243538380429469440516373563219750862547572873719840037493772724873567974616438233148668822487688461677768530011193435178518692627087352682617314547231601947585699376269529644875129374802829944286490986668837101373527684414771354097605860134598908049236203196609519018066752255330711572242503746573542458205298168780281383682174677828678333281362437785675528844281943760422266421388535661373929953812413955477791948311575255810615303625904123438949834868549082739162134661573742410386617300460238872426474284618091622768500841378522377820838563812107533838501982214918470626443928785942398977291653164863252815442736942307369620884369312141496196422683645409998051952799986578349374935147344641543869802924321093837559538437757072268861049121006052173149831036733712258295008423975104136338838953270078469572619334706561903310647172856957940569766861054003487015792820405867147265651037733763984783829735546781990446586495048352544094275070286748335848047526639224236420934817854150487742677311962666174542006414264856989241042215939186715077046000940090360428351265108518031930726185334367968031928146272345723389603718443397199643824412112864430850632796485634689832996156952059239975674961161811248480586704377074639197392913725589739690765543165256642503978689805603325528715248130925526022799927997586596155823382480208964160115094694402579883385544113247043911843574708296167360912905173667926995240411217010451254764490694248590799800052488984704581583266314198125518962438693174544765053346699385243412032162878390991502618953340643693025464026904887918999829578508548305305817446284593589246835428258641870373963837379296395010048585496627823404748961469297324320593704898941440776998629216437068940030508681937058676912405412361610947945417147972872772502587573112332240460654004459480661306356674871126550550878461265559550821746328972750277627396423558479768526586735375234897582030443227081349561636607758017166347999743003262737163421159091267764173845634673913383915456054390960028312446088926277520735368892651294313032767701009116327856950114686422587769683316145979030296276099239122414812538694688385641139088097848667208157433148625611978588765486563145179409903687028725206034799737672884702885685459458408143234986725237792320883263642047811370291089951559248932813460466328280597835178048019757152201471589380486416694842971865487899988535596520912667663301056641237022499316953213080120141137444415788017675808050548186575366314311077907069792398099942090963226970459024994475360036318672286585191356754456024734100718554323137866695318762929761717848395173074322641980464697865286694837807788581876154105495104477131064294668863244437088267938957983009702788552028235136941337837534459550168022107986542922218425861389207751736466674629879084815899218825468406869260316644533742483505194093346499971316019927460033709916155911490079586883506681983392709903067749579723172153428240092574327179595199905264285066250160921893293657144389681236140946372681541250152247434963039677667892735441381865468714092965693056706250891828506993415038015875366464726301324494886960123841786793734763596257874781283895335835896314507011875853237822205764341509210164339210040854363190685754353607008831217992026589309720621860964468061614109152511247142263104510539707097700376215332185307416878057473337324574615388603610226747790040426435829180123989513364490574200256244182473813303606723811546843208512825998273709897636481614292602921414533980142905147146402120668381258551283384403605430344366001718107049187855619127948962857060971795666855121886662249374803165720698467053395183174597558886529353259953795183730998555312115903033635474006744445866763871197639385477591965079943866931295304851136434914236028243591398113843595307160378021776074189390051831857620432294804408170519616830567797428364827653737061119986551848487128481246586263529737782090254210237554737823594417727294875569497858599056769376762833036786418946356750588640328300542296949409348230830292158203794034952665668476029703548166757855491310389123760756326592507084934892953520117133433514710293284071100230849766092877850671344414068713904648512623151772082867942543920279666606830410236413845480263833971352840482546640063926788431723568586177783238708960612773926797109661439178757221005691264110480452820505663630281755863617349844858169792422116261462522094017172308199657385273128243133583734721375737154299148600470427277390897610139411978492952751632448495923862337788995193328637469009745383044660505336174550332974576583045988241649107926786341380522155343181253725345833933803816688971216773139784196546083904852140747024076123263342700154869975182189012545705744834895391130081890095681077673588204110002064234836918327552576978577317445808994306021738745987592663031328752050945208625529691057450648304787607326781531939055005303896708015637459410237575024033631010670632360498202326180220949938284004430585254579624375805713131913059380329490353731738666634197271178332218884901314038166485283786695454275881437234785111071231168460118597286716561297568202819487291080865248975502927608269440347689644652351446546994228815843707595703639701667002738228337331700352792640263734744102890044548953901604415070955346352772324494622870684467012415873990102033523602410241402668195000877209913380614489026677961227798319531972675461355445322439788189046077363885032596823883040084439323149089182700269015173209322815004297540243985361955138960614517118979006047545347507872301198532900182034629272621646670741287249950496167521692937754930407771521581696860060792563062866520516551924119016010126562391146366995754315174419406789244920537690190824206151769905961255692278106114682510366579851174638110515964798442319699404817890349256519537150400030919138701538162399891655443862224115930871441208967111383981110615775663392579957384086293609432712927108434549328431784987612113361598788221202450298051709240076138125988613985265523405636258323945869133879510846424010197337369117454859664409063804693118381442381324442681447884057448754564154538644313011235448467435399058426271301331358690253577299757716027992496288443261557234622013159912644598523882505539694236191845864700794685609374166091270496967729567994947359884777240036039801930038891223795781668137949149285339072165197096228964548130152690745333719636970796573127504695061646745593261322780875425916979925965406572652078232434484268199937087671755644679851054028837364545404105650025176176069657437580495060360057769564010009692526523720274198808968326312813624368641692497431827852123198164923938608172982541892852885524673948041517373428535362759049823065886590147423806446974263150673251104287177387847227119510513884663282989654848462546290441657123324400444770982740132279695175591629157125677829642592948166890598352194008723829844371944451010938777456530664001835444393271802467227982180037963594853835469547230289701981619578381861579566703398716904354981724345177263525780043531287885395571935990439784992624847016192458844086497411249173649757950923371740747348617072651665136954259352567182767376157666738999945200073270231832776854684490933674008753656417314984966284038786287025875338611511237879149023673215684324609820809814317828466283481222934378602898664085521068096638345339622620999141843782877954035284932019228274673906000751564087889722564471771055564297584329866528528170239651735153920152701719326350012409085877713812436922751863992988231888069330061433292588101763362438129058415708095629348866059090264840286916383026910205423580225045468095106481649416681107504393733687101836470674627524132500939194689572122723184495086322653675919737716745121570375084868049675903814263420162879436210799061004064243984818974899416950195554091300695703594646280125562332465412786351822392606694961196741459808201183958729191854962728931474920724235101861440116640573287649875020994193639499910707073576193532293674274633932632680954682564172374856257813897842394249597727208803223624384898483797400089371706593860754699898849230395431574168838117126152469805159663691733766221322354562444499050944844018238580117431431342898569626049546079657393710075996980076087001612491335289037154858528266213837343486092492371330132252756817554025805270742370338202486003893967776182003480136993574506963270598577346144212121701313445234791673648522274957816943239659321797982688483125307049716067152801416276083232567397426266888471924772365789106433381747364201255741237838492179344139947966253311992741588893873156307814080085311560749312114609878195408226830967401633573952699099363011387500224782905166988281330602836232597242407715744608751536016729498250851474576056380682376050595102857923310123485085650937951670423331203675199279737487339142660263051372144281456362260645325922221817425042676775178509363879682032650849944347237870696728267111621429276048250918205535536495343499781703060680470173262855009656328368069756583780908544801208190285770596600588076079536943484325513080779267441650121334447809107197681822544639516347093515077299461457475955696306282433913028982575877379274706067658601154717470644594079512809361399248938815836677057197762387632666800807699945046787297511731586555881264524392858629498665300400032109394259766090940528738996851052904459426104614922032458855862954766672436249692972536664283827975373503692049379634061244178039920292149358203011451039392547175965005891124572176325269389689322784058112228136912023034597218187896484488455033071755092851914607340395496255594996484309031649947942492914371901888871668434980245226044873187155859392091452817812822347283871639018020318525360952124684388958102708491575942992506709868079804691821735844041256290498663622388656566354931295684140057936945318849776253778708724970144261275826506462209670429500402246981495713535927598564840226631296719313615808980375452979084378634266835197602707221815003586374032430593672404885591733004997828409440128496218152101282242944678046520270924919516931523726098868268675773858303549953987889660599386617017364715098435547301004366422176087361763809603805194788145690357102198494993707155738469350263436674882289325480298913965572116641004629784898104229490847581422287384358533975071547489059712563446141664204420206434315380899437754824466607020164418249357309891071742989500923854410315252228193650083317994602953121690120516328342439148222966229937471976406489390640132655032239292340346491009490093217630088778482350605249001248556583006647222614517993460275523721949102699340660391288193951404017779035412857744405556663042704754036490620413733741783429264917185124814877913098535516660680682614136022543226763829672101724533161862330005513255724759310043892202155506999175981482950101778663730706401173695840387823149208553889817010810440474520140601469345556173283446844988837148976347861372824370100175646980046389620180287061101096600908014116804023427161736593979035695774018988481664553159479812148704270191716205167268667588092126193294171427509766005086607878592846243662424824728456725764029050121890207877501480959309918045695413498075642818274429275146075640323150043319901950196749953141379287708355639705621287373011298092487451843752008251396062542597600102185187906633160695597087964782031122474584186822994148389052478302166768005913596666700946248991758474160004175899475909910342368897201037921866763072492682981157999024678883683975537954833066342677310519276754227187927316462894461230243695449247548790890551985184791745217365482172236952234030693040222688346583130909992388939115715635038181539005258586985417546999000611931895090450106028537037020314569240789939563747728748171338214559194856700919336953066399109149324484948582823323546737324403855331311091226199991773868025329386450915134229312172354629881000816258631813025332655648000645141952737018853038569850631125238189149759555054778582100370942018308601868904395139290340232704750408975725727439448759353092773402736731353048803483410544996353684929964317155244354207597004561325207380589378182513330060350161281888370288806297028242771709565294341557408681587597633898403775185171425524796827144257835017741324817808430307457307350354492535863676345394912216240748939124181121104225268799201133788082732204329656910202562455731827026330237281963973017545839214475896123928692019633237545493001657830343896259721765252094653379010531466902045484116876349654661894211371321971813429252027067243060030991309903048667238901072602741315065782842379914463859753746558540963252551043450952741663961489082171057860855795493893611701222058497554005982513778227268353724649224015470938931160502560072899465552655431508099870589884520717480296036990140904445317366658359517199685460752119479952899282609368056222659010811611975552805307265622967590052146705351762479305385222134976822513823957023129811011208182344993950529909050633326512862157110201942771105952408571915496702681180541283895020351863888986630048667427632183039095210407522407058311508890675112901860763790377365171451815704958796997306098011370237487874734673317681449834509754565967790017979015999757710610608791017491690414546027312313287298738633653654764153369126234228803442977757452115497187208564362524859818400703730037888949960564071976585368288311015957475733423578490030919695187520033162800216562330022802984997169380179631195708687141390427437102347074959562250058466187637037580199747399271004956432045397219402023002272917956269135255532815571276518278911212379961286401172734988091242184236030406723565147804715778529495367107193395372370534760164958273405653377616580368465157814756429027983148173169937636780615369735995075211811705806465919514632008549978139141055200543700778853010776230752764060978374413765729766797592112405112901750307879539471175646925862344199528898592012038621410204700004590113689986593808421750859541348252254714810194681230412155713899653203090022719052701587095674493753941532370721842706116396266190664722042226679738662794713098745173088771949938418253881316981941859281511153938969487444995593802916855243536604008080813930307683637001990163365784342421292706508984399306062050210572567776441515852322182818733896120800117774625199650961794835204392350089198249606474521050733641693937786786123560364342505688207624138917820339035781483052437465541050131154495776409169013619051872900862432648465269467799563033409371143329194824202375614276940318836553392193428658428736687616819595535577544824701269755570225423446742133195857120503513946553973386510238170437889882268191379389803973899179081256254584197666130666851827404242903694351748545461527773001715300290302985300509553199583248478092771203204630165025884779614849017258117526391111718896242198649302248185319448989153258374581233172159209407058399749457763682588437884441810181962567688392294665737720042330238067877473125134629412737802798419087872709769331227925562972703366796753638923915149968792101621487895992637274122482730492028709150101558893328930801136103790710586002895147646468924310668109054147922156743466021633721167064155963150032564687317922921644680354644219558588723165045731541538491107373840424340395881892839503460679247122539345292115983669886242875636251195952486711430814933055988294754605905930157392850686798612284462355326009358195279687439813840371585034447291346941835896652762992605124006270343000026144356439680750600455868958064724921950934128578818052088922465424451496582470274271991164090517481900627838709598618800489810418390211588557494438463532979315274719643444734577144865123635165588394273994625983480617418168350901072816566089909904876605437777514554590140567806769339656817921071749445930804648872733898285999623088514691437270431069135461520059282565625537963634457160228031813603192177143672795930614192481185958229431553883006927135456722626604282680898188671367077416235445388712308897569022693250935511431976103753673302664310442147490438649054960663248097583241718907054908912361619308215802259604387446522858695555451584870043967348257835339423685941904226033701723785120763562847425546782499776759503391588353524959767361310258206649907063434646699091677007770405182073730032471501989612092570634614614935689180519547744550151193255017296598863968865794617548788748949917460865034658751010233232835914549890888671328678002420880732949630368395192235268548037519246759984424536225962020467475944606402084440004769960392800023352886215394583246849977703252159749638462212493832902770211755498895851915588594479882515153895448719418296683481559810720344636893191607582121191272990581137608501215114498915834160258609495536282953315903695193442333821166141323309594006203470027719878829353801067781572841273856747941997449367545898105975314558694761226575749024009443216601153881702917797119796647143058418984006323614501921763699188409658946919466944822744691991036184494638554887527986396267184771775970700407899383866323238971228980380151704589490263227833702340640939187892465524213618383683445195565248780816335621517213496214975994407588243757542728314012332266082605823472637595431897723619181231960198013570068266075831169507985300130891503173424815897510909233825528396712248363409477704179884514576810865918348833166649292248368479467165539283725087413689907018375003522399134519886232322901077525302426098596917533994835740428225453557050937697418436421269602081612057858758874918125257384015309976472624763430082863016787673326623367342747935232335126602737729999589524280415782702689989880143720037043322343860839051520931106645905179402093119505395961356274404214336413849866048183885171025218163667858953278460725700088911238606905658888990544412294717592180244486063872373582795106298705020717343581734188755109640814075911251952414089116483093963933002885294953161415255426853099974402989663783505193701795088529573472441389115229080946644282845242333382503888064772395037010055555084364345645555558742882098034557260220987280723814255606975203007234159972958369476958924230075967334972496083661188356520083560910157876766991697081529177183517264556908228445949981030087551005842008079278474712208191915057058123025925419144642664003970650379432052945188161573813436001184658250110114979925064840665665542745632922651141300862055956633292585638408364565546483127293332858495573367842643850668015398620685498794411429866574717761566011535765704534470372968472637324164668728406061477592157655817322890083562529450717163761839617564311392790775434666068647666241715304172645714688408806884517021541972927642864389319036911922170519971518167975761927023442335743341422040446026662702912998306963745995270636642753496750270587478953166995494557429706197733502067095004283565606431385433509467914687364380576031937499760397472040673915350901045209617936841206186513756979959168324350990950812939695251023346220132483099969590243826195625127484323530565214375556504846958447180162963826230955312482698277809327946376651977597120761360294084478185912016655370636928452027542789491050214119347058139663466982588262697027974436839867174134775612305030638858603368216691503569739619940744233016609822036125057995746787036735940330327233258786488806956686751798506051294823111236264042728679529570455479975648582719686368500336212866846679156463711694258100145092169993148622877975412070127368135928112413982508990193384529034055292266066145504535961533996095439512542027666611398538933371256360431308403967751579809072978308603475384504278983998287340793188365248380309636522554476031604563486842286542656719950617298397696167465291046293793296431240842795471930909077197749031889141070107626474738188120261389544251898782339641808421853872283284237000949057249191002357283587411442276365478203237125812395936033667426018757181961565945367424180743418216450948919494300312564928543735010881771049517853304848878393548460115222372726867602691176571800949250528257490453669376200807343934100501697861322052309163832404414079642356756047889221972168776726573883711759320251876891615390796115998619040921303260317856104889297921968405679041085466985323108599152808546678101999076225296370352375264589840889607519163977114135607678166188419540318885561764209686284457469055616646642777828077636416454574548057713026694342950801923469472607186738117466338817341543252279178162213850573455659123910666717578430805077043231905566203027859525592712712330823574555977146606734573354670026054876977837740730397376815778237913107668835860170594985165719887401574046304237862101508551150817663408726654114155624044935061805804976577483976244337025163460008025405188172206199970418554586195767347914579498763394409518811651490337563545003969121261269337499792186323577001763742948068858175262261129546352250629248065708101818748822120300484658149373995830557899879828918785322588560614948261196527962182292522532002254891570327066845871672337935805836241824652196428747100440389545438961803132701090647162084725994379908268623577894300656337552354493895860454859145053309696694503144061884819215879064396542247906221760495669942755065165886572801972121713935072938587021956760260221445377329513499327308472738734305214949530214236703339009746540924160531923023710182407792553086681194867353332297704447445547345532813928319833617857823331011205892521949123580180917417618379977538239624389812041638446881437100943227347341916404260072439094195657763796403817601973346007655591650754095125602010952317646231364040167135776598552077517142871676790475956530362531666722620213175717306962200759829040358062843406919020120342592768251199738052664388887560996982754560062208549010088072522201631246284891212947264641920013589963566480872639030243731006617820656477474945796290404011425503888255265471737509830844776218733448261183744298750976826049601741619881908121150499636242972243032296395595859930632956182901482012383737571229792388597437352103700682724308369147462993920203750298784644947227145987654970522722683049516334807822616473413145898207425747726075749047402697911932379717966210323134101285328529235412701913550599958971763629459101269197157500503641687920462854612702024532142004533486306541398043899100357503215537101789169372694826039006974826533785757282140326488177587406380507131186692965419335403134095369514326691064847268355519656017913649664089525391298705788899703882670359874140873079956509195171774362075761246427629172440215041273167946515861393043769418514519542135334640702065437795356240216907160178432674377672207899065487562394861541195144726035160323687552848603511524538359502866228980266500507091425110229899122654762852050633897341012281396379108000666609643666514747831090729869423115824627944532293853634104064942779977940665658421848840313035071120818610398263056047360094271294487838688456159067231662519528563703486735621804631762197734635681145114601993342459546234013611740438577814203393487500040029076012531158828242190285380109048520021005513041326867779462618792331160108347817399066678756031333091970115368606147661908140087849339962607527810538035146272289667145696384082785618596611879303665672724726428190827761067974387025973317430826148747809372963907963752799479225469255434608803524125882459269514101563661235859288903082184735043193914447031162665357955879702890142008606790769509302056347549893461437032598055967902311870743886900036849231119810151400445423825018795762980584132375618369040941476418834013549922926828813886690718960220883132614973713911669157093632489497365871725177388364590290639079305517780204537954609804921512354909311676267892274823791890003324027423250985072720741674829368333109339338840505425655077732401019587854502811326637445751685711188250774912823403481219588454472898244963206572958421920103687082413697369449548198533739518065509573520551344278218622312346963690402326800797751415360702257946234331807046938474845130085635516434300073349216662673910460410730622289154036306833497620066665404583770147157719612425104688106547145899285009181323566482683691970806188557697831787116483562793837633726140671774114684648520952241926163766982921948724116571755831871076344260662099444848508280608308117612419325307553247765409234189120352360112806583043001138314638353480716646163530069451224138807153634068949200301531584744803705378645057385069217578902565794585981802919927671975271254746475842209608208078537521485688570135239553695519657782839670015774456078612549291025673581677723911998841327667577087111648654680037405002669081645747343861765557325955473252536732142017496239724372518882238942277815377733827302632231791630396011613486160218907299552164316524532732356036761337687081539124573013298224826313689824253898302939060163748387638796555963479480342256163769043092154941807267629988236606798589472648955160994809601297823160534491257842009892830890526945305513327380926831515955698162531409835673060873974014720360743879477497219016252148574944702007876598606670372921343264586149897558581394675828686071970363303451458112140150126943096450340429523869348685217937693703303080233245709542045432493148133751904150341897459435810720013852625363648330470415890712118269087261204934603018672269499322259934480836466890966831309123903918625069691625137256684693336646733562708429635676930381114688774540337647809283447024244035128495110266698832559218906539857745153748836775823141561580505680937230476833927316012304422310951157841477091916131410956150354183656250991823759351695557224053566782401739229484529041742161960418880199393594011194721147576131433553755650696213006510906425234418085229682398886465287376967431983362213700581187036132035397582196581064475063444824212373384135393097415127772667063856239935159326500625729560841161276401199524866129411410676534352963529983608055004577961004149844417861638593658973500788003771328963898065745997842202316840379807605864605541823614794540850383780020718099000296183363034755807792664038418962868719587525943123333141421426887514846400839419500095863139913926016999200261436860814225487182782884157802375554695145688263863798735663254424143087965913586244900125579779102297986485383508557636851021772954965400546292559971132547270704090674050372454933889412266374495421341040566181678443840414472620217518282017052466938386786049776827625867410538627679157398912894432860450295736528015984560108086229895015916389207759428591407576744057472260429675309865417488432447657553031224724072917365598272718062439295772755027929105726717963106258012918099534283676673007576366215942617913742927337694986181453035898617856852453136057772445634893500097806182730623873861326429408797553394726906907477852531198039794377555428346308437256260177699818794832549294783837144163901859402479111411136177096553033688286781481990046031768595499275920368594485727447329885402196864457558811782371345951408966029771444885020102212458814771362921582294349560062823989248996029013034917710258700693383375725614274360324172827523484177215411859751034950590377403559976505111169788404970937727358397936366954036281785058354662243229027600770464094579369590842169885541166719843330620329552000250380253623776866961487678658194651969770767656713943057078106358859412167845730461290315465181682669678221997513021516132202957837727093665663256631655625295017353302169844325758642858952914825282078434086618616805528773930484433463819827756812545652800036952787074348340791417130583526012463290093314993307657748893934070287877266750528815081012983284367567659945293114134930779615789747190227692546558008327615947661237023100569598054956007083098815415087054629386642768268197578212475022020121825129312480075259071874157570944872036717351907213038173965945505959661643636000373048370769735057250923684270641751922703884516373286905724565285696540512908435105942703053755387350389319499785224074827748437635770828391831071368601234280844513318212780113126441231660841434325639408714587715572678465705076945699797405369371198814002669110893352057100751892411524454491299166431531940337299165249034048943227329573456509177043289852844029704553546763465534301760350587757457174739286570352611013221654905795566284283269240591472994502760614630941129007032723387322551555080233105686886067593359698930677012002113590273860315574532810388853903787630478801382929064961307731764227964283373950816065543753099972549726251882966983793489398546210732754248648749630180516445492383586091329869871965109302904949988958247346813504504865772523321434968575209852000531271813970632677685048307745146719948300271516403708178820148535050215462227351074827823693399530008494540679792991791741951148115461243823169781256054804413255386993402589165669875498528175348953961513194334230309070160388832017291189241514934150704655062708489076698326180704136671380018463274967111225139506100016481718223917660880576770513815374689197661756913377055321128135215216428354752088321251010198971528872553246088259796571840297554055758517980740759397201781790694264615298035617299866920876938208871890263499756159244293627612817851380802998915624608980958985697013938891721305877286847299303923732475316003841705693331275922251053653712442032518167227525922448501329988822747483340362502668693112409798208855990795663534041061661182802469218026387499256793309177558261724667401423908841332366170192813608902460908169604752490839916041084453318800279051568250783883647752122062782297748416331806257507545772187401037814341568797934127563604566280005619440076011389908818126594698098546094639671914120425022482543889219423820433821242699559728962565337026686187423377701243192367495515930382510957741359725978512051946417680145905610872949874856294772840826558805005626989880544356566537904608025899872761721871814309439714249423934729697441819939008798605806201276610971489147022805284920569117739508489447982744400576802691553673963548734699956524726415431976876606985669898544865013397348058494421150402862347372870635178623238898959497887600226827010024420667230602174526442701299362627729562560113841079738438074205648978778003709250615832137247629022024750042268755200021373543723547936686233835894626902917461090497195085748323620347850453131297314872019295629647222946234036640135432867530145390676810461282306686520008550396574013269013527334228670048215151302114557672791815610997460223489864649258642564647456804233057265282498206933360040492560150662477174310983393474257374053249500691599278974181819000037943490203699797685289868120877199405236145441913338634174543061362113447382086409704748385028755208698707398439813978525420067470534609839230271969815227556880498469820783348318059456538911045382087697610916898756945762441159777494647811141477951062500380793180790543179371086341372631019106817556639636217979939117623301437349967190016400052366490648584682253525803787516011584097484267910733799365537325083500666386150396077697388564043728445127835403795675366595314876752348407143258290434872054823069069251551933196166559165319734694624525211794982146988268856430351971350350267819787598559961771984159881159932646843660841993461808651828529914781767699764561224648617637672237081944828217914585333956699003967683702405469383952550374727458254780487730101513171396934162839384149070765133972220882847714582518875872111989116571735203001308823744359255859364378957949374619401193763118044663211623359889233569070506126541846513035630018097829757154779862066482216221760281603577011993352316031490995101619438490205832661289415899231579060688841596592212987492706462924724568358158714742005206554257914227537073068537874345061046968364378357903723398566657226564934073953355881139727323811213532262134914868479074827502959005496231884797824664373911695142850841215648334982309042990004524138034471396990240708989910220014749375044196334133189674590920116245944730568222350881696507593843987210890780384636480137208838323090263366000159856740879757309522909983297326085902726126188157560953200805932764254625585186874830484574176454330818861248487624407696852170446226917033699362085299169738125017967722793249842293996779873969515207352563301137210042990962671757201331497513038827701176461931801269952754687724171586625909317969192598657945505851979473860225857525941276394057591191881223965815870014356615448841599915860860545109753788728807865166349130599556772317591425384013867842029439030486402892786108991027231545751661357477820865284995292498381009119074218386678099741887878627228055329593288617182190876956217485113049093796824740784447203593335256513113593061105722967654738507813699283485493739574337156028897731786640669881979122773117079628480523017535643156990123217624385359261431628123685480333532750251951479938534021870839219706541833432504762243696389026670085598280987072498505406168900427069927251329878951630739533153068966577125201979101378696687800097568722557020288043364133232126675813661769730132522319585738271206701752815158822223147268541327763021804503737855317220470350341561204507196770677181634653873297250489810600484698051030494374876615165501285397836031989531084528770936600671071280033017138847603911006560777225154391311928538639838467569053398711971321549839035715619895708003471255627602839193338924369762223104687714615853111584604139356781961554836256807660546502853198937372426376571514842812719861134223565463167029650975447303583961749785285632565164935427440259905476654991907439721962921664295315353299639845877429794072024779846709844681397744656547826868722474281980403936210164908879692928778472294026589882432218728586629121064429686044701718513246020860629569440882792078826682706537885951323170810478528281904510793928350617707739722899546010334044904661373357431117464673421450910279287609691258384577007853357599913685625024999155002571014078765117861350460286830609220930824567115922064223611605050720320687998451186406316538322626408418694990937229352353255496317115700742964342676942868592702781642399236455930427516336921450509941392563283202029154282126877274413038948627098853218105111311249968489113301885555473474892985786502963206205811117513130898135788655828538392431136383644211041143346849165708591916403130923235804083174906537532329791534942657382387023733660274797208744639063260722055279245819557278429340755571520085556661458458315724337972606459487299503892816725480294676738796762279205814707135081068318397743660748684473596159663664553164611314871810223842613834001849438763187628733213826311063106745861934040241322843040038625603292670197233571238503672190649219366935595852273066049014313912094103267383400125034736009364565004571206097921598164689173266736417813242522841270586532148326747535330128577769856532633678763027917456196673809893558414512528788659235313289185809749043791440280227224354995114420391014371048157747459457072631210155694357171948609813898561832673221018776939510535774689638842173722837617482514754106339766007336410046333681209503523614486068481350079787323259390266868815496795154736827316478139758320400686850003498104078891578790055523564938096954713806325984759466426691061618621959701174408060005877873236996663709188527309970931852424441681912801149092363813630405848708261210180331120439826452893731973531687203892187042237875354478174489850610776690253175748510847898481702131724327538420767601254350715206921673144797013057431108187015672497978589105006826304290979905104175396161406710346788113508320529564001016903515007583526429652720353405199200498207657546652908062031141890591308434576773145093765514552543064623293923265759928882744223106954513352454410759631075998827492267165061590640724713204926337492911176398213612003374519816841370420196322538346361136197592329404655531760505736843928587061728106153475411349707156428467991983684458751353684017588180339640477222757991276720825072843684341446612213134766233927085984101856542821492443321109869993201284543193006999610500141140496029920837266061092817268742448071842174705733146648965066278876010657713596876574285556506972067354414068082408427856746359004696519489931834252715121797641493733643260095327202342455321379891630637466334291902333800883960537965114922537456816504706447363146707119769206345822729746815311522867110773337362112589322200933218699750979819249420871152751138212914353423210659414101141841139955021567455067154978436985609648815049274606232362203151457152835518936910437370065547996166058539151335995395444019518365827490817463347969873321802832664310216224805279547436449344067312315591806630720637585209476583089116832377051303248425672762806912268938736743768856780826967353496413186489063547864327926252536507484697784086816300122578836646343518336446591557938301526204076730687334691233034282166889062124804817373674084606376926246092319031728685737456523665082863210927349220698320663493025223360694700955730933627879196414026114367224838744411835282708823494511308203987161560632543141367523933624870808701531750097571253837574582739380164816813226527845866130981411925700849165537886553525068388853006716241829390100909454113950416868770928818625682584700433691266403634486142623355470523999189233465361713836844075368039929049002284300767003028243016079907434570053387150765261751301456929324546390817057543994229310425944277146620849140652616759244375116789381452226581763703620314800454730722197927132650831940063597123385274341601587751341270619843528959920427260742735283699450108008896147680258795144252277153866988261944398252624962183747729393164327131530004129622198604538237692973991967218186302241503964949214310162991782417357287161973836107934415442775566030515364833201954768028392536565846160658134540092714932088708268901202662339562918826556897913868251554469698119201266526458997175844418687852157547427270360258993742513427361781279310794151173529733275277162450757649261759008435390895947076262914435773420004806594019103167917332434064490623747070701034738703244850479124513966932765637714922250294027386687303304247320920515698585243997778027996312801456758351031007190600101178491123075181493575484489387053815293043379578188851419405682425028365395585334491510664286834185375069604875385155337203727198877578787277619458570308103420715443588011971763785865878889383467899576972671197282032805574996849405288564035988929102545708755159496892967670500487690221159949138796933171861766236163075621751081479928487822771024668121494234243054373748797557443313769676270468935123579507107066836577678914415240741992237864583675759796717603789369455067015184425822302076741767513699315234951646737949653231347989283279802362245328722206340770998543455778107471474587554488899378175518344618360216727652329515275376947518915998472669817179668203996597961463402473500328465913274092387695405131128334512801062198797698827338510502448057383556321875625121751002292197149184697362225761624729253732918495197466126518417786431309636450973030349027135567290313267534779245524563538906156742802145597909294291225474101473344061322632026788780466539680929019702173019749847558371760014377415477270054858197363995082042799212281144755333530337127779049660120049150664871986236720044656034341866929481899864211501060575458480780852098786648699676647941187746083448833660550464141217605518827765678265070619750886658102879289798774272921456358553496599701028886834045001665278381971528847412504373600229187534419184891191680273261585558714947006092455584872205845830447336718263483411311464906854491979814119265849437050873737267866346129322499913776344489783876257260125407922687439650730744269531833633328509169513162182816762720539502319890591913430600378493392139126666143261063234895505500511565176515553072919127084459453500113941622590090897972664271034149838366833500683390259657536300422523825493178057451230250478442892587191938237758944319625423957729016404277702101567866905340449756666949205109365335276232380847079002838866741556288039305403179114099993762706995323571371155527625094510662199819222085786287520503966348371137684253993482171951116674576543480132667606907874979034470558618009973861863038389162133069187137473484842791961681810328502695669154937426450626600795662475792203099577793540210929789064306682074841228214991427169866584772617643430107033964950321208413080859385070268430302821767761897289893276523965466574055317777809643717843051729768607532349530528806782470347644497188166751115647115453595631878084628364321054382914623236656835158403010001643191682562950907005393236018142948894181008537054431753515296746276222367442506003977567547803671957384662752494948722009681941260836894432931526748872226539206064276073891006691352221756877988252313526290068914100913512913053269312135480089333345035851941499035252932554381174302974457560683675334361587392805702920475999686829456312997973158646298936439188479641591290513863067540169042107245427166468753848464647780193409909283375418984891796049284000565205116068883879079617771977938773651805141260612598615433928444613475948743259589214925060817461007175606272592758478151492156020036887352899383769795595162395758453319156924236864131410899358267421043591268185102352770351322314360292858155027507076906227380966546552382237686765321796409279968344938797964011752440227100289014719442169514674646053500568289152296440379273939805900834255934004892320639759079672004471078731522785935552264084536114665235785593931314041424980789005296861301269365833767429989688749704741931181214839426816792933709698468966763686125404306148565570847295698518926989605497603672357375608387638400694972910975053167098149089907074938782248247518817862178327725644489106199651562841294170944116402887172519309874620339619622118805113560440273763540652237653340670390501807121135637914745999510063821908442648328025396063149010180341674171847121043859048402640311366872330850492483890561815847443141781419394563331925396438657999612755092587540937301301355003058872541809276649517488325059688879154233782032185815397018601114858061475321881517138292945080313316304999684701032782829562133924571999522168515506133251589278824062916877808886308534051960102109190941374651661563749087791393234731103263475667764830016931428283556666286978515273944252762860077765402481412644664734933791417123068735362884021482462491146562395271914526038320099306622375163073335531021621152901060811356874797724987882834842149397697468636913933791285061236345735449144064845251176331210813856570116435895752157319883690634252733219409965675733525736833417858510571470081044665170986082032982352219313213279024167372410229384655963283080980543780916219705960563484042535279196570057073370478544936642000478537350641773675006565526642456127825683148422261966923210010943175453092706832706822125949959075255305047046803730253716266361930281523413212394812282161051395033069468713129028722392822270394178955635381305977998343355471781277013434353868850444567700511028180792247297756061177370755242586476543904254213828212273743036546936596545585101072196320424748800686260039144044885845425541485891988778044509064419508580043572031208335840741389028554083518529080269788345371992262010469502188654365248850942549242822664525263688473835477718502906655378427279277106039324847972885560473386681844768914618726547688896986500491117219968097991002910186753152979028983311905630405875179167537086022589147718547635610105657082935531339823740039369199106504982505336703291853488311228740646986095822412302049627726735440431599268430623789463613872330872942891609660463973473645887647471131865989379742104381161983731569175065561819800457881163613570650360088344775437370775859280990995568081621124044521238232618202491509542978183146861921736048733614929852573077801536626614782428391570847700538272859149266753319369823538197828435123305898313968836156369490565616660851942977137960820272451600659653319688955999257731888149365322102503045143664478928156830174834077665608318330005132558219272910138871847473052501781679545799982659478877661741755253826475637521943761812217940055829511073845402899777636550255657484863758318281332469321913479951480998453059714516617638915648368231312589718655213425092326374625643313980567742037585805694360497246495435546966375439511536552786416606265478095998208106608292515946488899307491848381470417196479881686750330121119548715052417474804946293422750370888724402901491783234772092985478295473816024624667470035132275417085775605053161582891144119223839551850909019206841600769602958903672837133986761613369198022976629977510836767668531418083777109863819469031282992467891972208078161920673731107586941810321549549175333093224955134947024480288367559037199015065050820416060120607073125043127427560826630106936688831459457255577107129779768720974103490720470708405111957425067296509110553703219695029484207787894964734594617405534656501944618055342419035611197109387427477305835983394814646861162476676787691616445985938217136799442446930663199678236929649235025438115729203683003538845492930163563213743531493587755884465787233774549025130184193268316967230234118254040616848036868302871136482605785608966872737258031591646587046733616894909656372235215881085636800458644209994158609056843802639012998600905231367619065824173423874274957911502588134908897576105987943386597189027928863599331765574021410657506573583009468163502836255813423034077634288602180132166762847985581130570756657711618177907118554474201261213261469577538227854582175372130065582683670112671376433089114746028076600009569101024879297203779303439171569998818525639775757015669972334148402586417353152358794567158701126122327213429007832064385810851420001210144205563399133684395439232081590698684183724715404595631622252455777441689993838632710930857132348313398775410444321608633759743296788949346148389680654199456495929109696250512131431130280083452500706216258749258710790038521956493636776811126206623223745932590844846319028175116810941453150308102187613824747720784076519117199462730627915960424538212417826775295380216365757981283204443829787090237015400700270963424429271948847429438861486583615113469755520342663702960061996731408243120634384800733502833569181226334768213889215943444538931806324728931063586740339985531206320197268728514712575492160201669130720399984919056728129142147632208183169848060787727790328860204017954943781534502139617820372127136117179113271189728700803389076799092089298654567932808706747371144379227939797004749823932363864541996914813085802301105447151606629698212631996806805746843538405628333778031741952140788005183919173641229423909559265995594921260100094865385795344599003581484475196071130072391809609398878731281295056391348515311274014290168507307116877393047698862834600463012288196196923483600704851000881207126332739181044420040344365383919303252515626262943679681221063737557560360623101727561295570907452533153443303547930333713864237582672819561158605109803225194141714773607197419512117083833973898049505088345795656738638172467708535686135626810732001383136013964570326017549634874522851546552283540817869682204206049907961905714121039424431497398369688067393380124647191863007983880978226862475071495206425963535533729871985744369688483615602875861301044180995403488792501679093845844562395947919461609146689172437108028712601530074444583008053830657255443410403183158165963983814775110589663945482439783448837594232947880383344681234336630079699041032517296828650777397481499108804204331789598635442165059528408800693399307834579156230137971123901704255502454169772818214810537169469760759270308681185509460937186124056230624231164363601705808594240280056584943935184552264117953834275907016193520175948029166428897003082945714460450782335609565418393557175718935129410651044009285955426703372620635476545423800107269528946169900024473160051083289479225264441894857950807540117376760744541996828370466941229166493730129580259711053803476709309460893671236570516904460778004437663092118063350243860238924800657405943075723847875060532934971220301199925533939654508267087867591275460266705285224987440492066324844189188855406822471316808349885271371100010123557675693526802627636526085728802532841656767499760048895640452403986836933727361024005233179112245848016205376793689473578528891850761536662456165741662200307359773048925937953043937314824865087391629403680100251904800137032201342280912757787104045065222398489938766312287390823900250267175746196892219587953960463892178328610391340292704163976366619192604402301067232749243071227692754478742504081913259114234941096108425809977463159763577055378043021632463896784974122009250643254633464750080857090254789735698288527151703210051008627811508222066039083437514105105244605583054705817051587326074146054034950216389773809877145482604866415691378812543765714217583404149301746249959258596909258733777460408654471297535069949969268820699271388792722545294804849245849281139116496729592905329616295552032215401185482867991510199459264698997724711295000230576988990003779671070021534948866298296699491102624292668316390448250559890514632244571653692031375313550058734218535677162289104278740622839604401578633037513715571759097522634666458068077681583083695811311288036003657963080351664934161816149063677956685800675986004820122601889035774290610297381485068564809547115161922495506273105968441902717861224152379674742425788283203606154343437824821245874926813969949437960272184574558308160860919018482018111897459479215669714407864450439591694045166265747884628877304456422590486672865953259518062739845913731232195283663526715440499006569510133058818176813252875758638424908589666288926606051579038744000133568527075851249062561326729781026873546344092344627136694114069589340177743454838332355576143722655524458684514106966702826455242753155923292318977478390764314159727833946467839559152042407129598788438650944394118359563778765278502012475468774744550996521200029097902675772225919011338053191150002160166103153917256201890361859029371007061269709767045518513587350942267048005873178088175158271917546146734652195587756413461331172778224475120594855231808760699664973936367018829827869423713170919831257214188273968421493997749630935384945361760776730296313160800659528875907961539385374595548090221252412700271170474891082809644877180730059480727049610750068880519361777492013234172172328997887979924398328968496102760175828631056687956781655605507001148904879650691260910520799744957545075003868518297768326144944763646569568753459782331977045845718615620733025360747514811845257904753957614361900246312856129389159227009103130395974506388299404538483853216286976970886751218987482534970992272073918877106313695715982582925067256622637724224224006104385280623060934245314242884678379449399425364993233649882643636932506738464194139848163136525679996629512635914489628082884949985761557269245828480177232087758540881092212898760046133447003296092116833459161726418024590145213631078340741341963084336276450619308866150355867265120104240454186102677551530001669958069353393439705115922129868402543686515272990316027537226174940530166273608076869478427334865221213297653852943833119511942226387955324016547426704693452753841582542658825332570498126827948128333329590992712555653064578483519588042845640053636310889247973206715736601152239522746694740116163818338584671306233702570817451001304855620834587886620313920105790258128395782375894840256203869287881554054974540248475488856035641453539547353162391070343993788231256469504663620476267021744073171918142694635526197378241528527716934645221679236058631263625858834943021686259563279482259512343325147256049293610003271462921365669523899044669974091337291533833773189978068894885123012247705854322396905357569548839041993134236265756120657227041386972652398827237078853507144285174511453525768775066995911359245316385812489954430693037136294375976309316978483018099019023171677227159754435459297549553681081195638284574718599384572278320230736451143257532603222763314882708263657576283294537771093522975371004553852332374304885860169057524513333136423223348085018607649346885699334378375938906200877903062085819775920562894286577875515455588152505047911852429288142281862921601369219141359136567686413709826555019807511174587801747806588284060860476701112594277047265840223596492021265428995785180178276107065699908166000828528682329342717589241871615771539430624458857709824531358492174548704432324144841408611806233674907188251187701358825473046247293876305676301169571265056110587507502485870294762503819427734366162723977506472100719916153239640673558542600553587836425720379309899635509631614332957696527164192651484862444054650212400550740970003084618113661596851947697427641221301332147841103343277443058937908952666749672740156409433295332352657997922310568928936388064463833355179149789648363848746930647082586920726536512653657005882153483322084851151328592871093951839177236164467004804808925828363100918328680460465595473996529663970495249685012915763978063281626632057198597819201698393949080598577644945149907305706555905874938426186607710055927961359448038623308632902777560085700304268677888085297872526373031002658870847111833179552311233671881359367427505832050856545254191441131290719227705830477929583814140528261319527414136013668515271922105207393766151884708825156666192079162972212755610488587454352769848642485132335427334460520427059467648460511472318390777921490625671441060794601951693958685348958411994648703673068573769191227750050115882540731364149154716953048628451576808464433671867983790429635765228735946565843494858773246494764398457706558880965730277124325838087421698169138973826077816534666498969311606985815446646554541228838857097766521285570706617231710713751601895032214173601231235769941950246336053180994022441664162816367614362264412056309998641806437301957187426376893740540351439713812074157895808604127451368260804302778892644485522363584438570831498140139527291818554879436707647446634155900654519656321446422269794612743201438144544852749734682035712833798459798751901110909034432176861505655545443410927663066093062442046353502324797722201341499751709117276596517037877489672536844171417920937456813702916321010971293282131253995116751735492961579388259598182814313006206126514717030519737287313617507427082437389771531803751552192276959023365105414761315337959467396531662449023518759991643766369845482544781421875798687062532044356500637282301423340579195696901309723801316796259985059892155734219354035370701548662651692483500925088169230438586251814450185997823363112111189043207281585649169386339235524567529790682387105353328556858616106028350734827425726976867053822317174146389050824684714786882849118301908989109271735212415718962220977740760029258298434325597966581758758345609742640259787349374938978254019490978061114737116609728315740905066880553194284795171238556048514847319825703943176334935676683505803283155990168215681581177546618030868631229233308572057693799434663551798922660396848097094740798832303035894905640204329249252063504532726808042765678735505426279534966460760091300370862059904902113310774062085669764511577791044915806771100030229209766945189221424965089892612431014216273788549764436464223822800436083184859435885604487306692928239558416165977018990660669543816665997877231352346150048937134634721365095178286000705176548954169566002597002744843423681753269970217220172612521339994821841853470695731273930974635907645733257059339799778299831477291167712773941050106225962618112856016150372917887713859147346169893901696907623224054534334401529053080111544411722193441510057975914620332302168158244508642764316389671248969573374591836852866704658839661200599953438389329841845661764302120588743089946154666385487910316266773891972106593165763271027125208148166396902901927320268197257327962376784898256970294726725416608406868685178592501017575604302959443592337874709745368687306503515486040356251831292190042313952649522410486004535478030830167706995701028818287239826332318913459208474991459669354641023122467014790915550669414334274200297564831128989615491707681374970227324738483249436760549931037943001191150461404742462613882117775934452917144728010881675510066368910355379014230091906716175387553762127293111136909496184880097545518663453911720470953029302264805723322768072109131815905440836880319711613561565561151661207335884298828348067435237153138122737634513766873324065072820762138618661238538414654227966140179038742187580827845121788137183742324704406336520611312821843313162746949368337606976433242722700498044860840836272039347201877893400600274819886148295380294680824998298174066750305037327274021647244628322999329309158459802506788071906634303284057640325633561998226461550432883259374911708415620645714166026919602591412485958387926938445862038628187561516255439129851857520777414197635501765084559984341195522394994178089706345035517905876576613806799417125701878462792391469462073441107435654285714294985506594746969783813174789505952182733518415076981907127245510319867975299696903891583367778349010429856894008006617216947067537728124522467244383322046021891616620831965062124832886181564031640078657274646383331802860177345971465481441701162790148212217284973319841726199584167926831732839513822528850901730901810469028480954593236357329638642645382059405406173322425052031191339792708042376890974519869275380733771814446014652111718504722418638070162961411751425322916173582104893961743269213658977843192530777328032596587340870213724705662846690388355418039254308279851054804268834598412795294843475264157694828464247058518359434913056771432124285087297449540260034044142547410575722010325750426918720567529934753190448425564819582822420501149926312531576636382030063486399378317184667492293668019444981362853891753071276478918348568556204291783894183106941327700675232757875293724987090275223187227996885115258405329075929031860538229449771362922453946762357407066999130057677678585977038467322947465359523733582815991536566860434578391424136816201778169064478469128763559151511501809107143641754738031152441187231205889244402758319057968299737209197183967806956510169342943813863580845829695988358478482904704572885846421691751087184365663902389982775015341628147563795983164676889104483262154158010569325563870512198079991711968247017021170008800978908805048275121057040294292664729884944358271497788366068159138552987398656459458555338011286444437598517403263569787886161740832635371951508239984183458445965807519015596765566861652510454240108215723768952299809671910212736114445988497392689622726945550999808335203213569560594547002394926862441032907753321462861832409673921357736954011622820161192756949863308395019380276737055403592769063717762964367821759385229873589501485457727834394880842726011441480579175026315826566891417517474256026838246520814210545252755099937912202659007177972608213529873767222101194693308103554346960404056436323015896462980598040581801907601161786707374022220295113540296214122610055385742627858409020425475748431594487936904749773254302812296444596652811116188858753397301968526819902264459545670048060867340805793963531837123724223408953707290147280251901502002515286982288508431203538364152862684674337085167845809678290259615940813425016305254822925636773629153842046571022767496759524881559969843821030539121516699519293025887780982706198432410646053513803948949571889655523170090556777560135153110218267718625059052207129768301802847845879420595213194754750299901675325635390769506229212293560944009749762698918640107916872992542266727450938508683356001337423250277461050853455438546258565428653817052064049819872322110118171195793034922550682585578056602571708523321595897831388650274122937615752864080652389119409875907103766485147522821426664487590192810922021617783241194174800688231594052751165041129666953820796942801147764571915985142648454800100592618548436576684352246639294984421332762634212017323594174158495339463932645535386558730426422929032492624971901054212269104970547235707627867688402733458714899623128968043200445640498441822511577628124224160328889398668244857808508861881747450371989480245090304166806179503005524387785221245881718519615474092166816458346514308576734527451777497399143537643688977553234371234353855540719324164804719780447846241597805849359069736435340107389624726953380384161828344278477334600145207160855696572305115748585552754995704591925414116330744824717094818964336840613339794977643118837965089657791771121614690413319251159351744542869959289810319225406367456116307705900088744315065288043853984843427321107404331759457313506848641585796675745122486421526186771461871537933291307913424504481764888403639348489357094550159326290680669570155988489938952716342075290860339373807913470497716543764202033858582576442180413601357442753532370793835245666653705706796309556119190017404294096294170756786119413983208973576894625349514992600980213580206386624558022893179081577754199857572353014399129084916175830647437712413283375942179428035926167400184075838898205154256534043005973119417814018548029390559643194916255476395067246066859096990814741754922522937158944836437216645475757506824374947283140885842309155936869746454976031342116522257442004490576632951742613867395287817240376028497660926646361862399895435661330303650591560514159998810752121288501712466130004877819425891899800868710918292280097101344077292120165474768987293522121598123877663317363065982867531835347177706813634654079227818075521562301354646008603014701958596897700612886770617945513276178721085455309016165181266373307370090364980639393363392933725418235426390012983741474158423928289972898490877071374989961988145087716270856999413122649136232276660550931856049994073103829533963166236223125703583110315896111850744624567578115263339170997972432962175384729244207048322791504905328041977930565134255472179911812139118957455717515955339679352943281145632292904467187975826598561262707176458095934035560939934078349244770659268042273931642911738531290679778864639281251851247581793954779378370565666942085014178814792828194176716852066604595746339533909146103719425256128035702114297778354838381627773232022278648328258358626529554090294254780656805677973255300896111384640657113087610868698292008422818802848478952515268381494156983619751383934455607833165757407947496322414708919903748132785476370848361727334828103790941447077198990145749234937669694125747186323880798271072401957469863239614090882428837032845443295418113057192385487939576928274095354715138256883284950225644392872600937777465322176977281038758224283803935864881941133762569525462783165044817113377760364167239065019743231013649122436713327104785663462882102864949993713147396142013671849492421062329818466782546413671242413967720426873511453302257991512280552521044911612171736358345349225262008740823616232367866574311007123309694930771983065302779586191969182670003206675678336824794449743877203150686375998809939246796203565119712412378196366975970659230792302870721888424784983265334076526922576094884406292634260634381411879850858754196432126198050813929160386012089290397736107228854633588772340454440584237438991751198175339824705079627508464636462744776689042107835812809995814149321383004652008501155952676452247412545780462323758881484614597798305542130233719231678307218275412870750101425381633582635806150425133174124778024010783093338397299387741554385762923227320456341349042947751497140455791559016392297487789582322586848091574490987951426130398131193581357473916423437792924208287715364572718046458053750163717656081921511518197946050665302225357486656027056595258594255327769912459484469424502877624554108095067280490959812138019825139626312810136944131519529999051842078325546753104997514633866753250907450125064120486376472246818694743592842142605135384170922684670317201187277780444738551895751302374378528641371638160215386411203952430851923132366393241277398832359879849992059199828439051433961458088396574295806564952367054971601147441473284685152144757312186689325853116678110165162976240761861306866662904050383885584700770711191132690721644111951296842920518976198986623207584161133112638663831099027657379335617331885317952480189035809327456004130320170306116256119448426370156381606330240194151455814660304825061847366735962257631400106874257997176540953274223085255332775517563283431220433565322642813346693990841321154418406086352867561773681680423630868223882062746607436311458178194030292879042276117285740077472147628350476399519661049286837423354492472651164384461385332340577921183142086504453519677575199737690402982560580293531544201891660589337624905981087130685239891757397189112560225428520436602955582446050243363302579751527052274061010150367993475562918973135650562900013010356636431457192302746827755357848684000116948431137515186652508705814555152475190684517129708629783765729316237102148242034252580328229628812440534882268923501960393968315366690278620558876883899525406812988055032176650835477935795182278591548475491907759342079635859196957789961243410329337132173315827911532949980395280076556965544412572150552347508364189077347188575512926687876839204412528575088473754378508405517822827848230770202870693376950526933826481056755155649372037009544389531406625369478353316112652334547604179697722330391270225090679090440826177502488333473907152858796864636892551816946705284919579036777834974066653001878733265965950658559505706625102421683977344752167809553320596594244022675514908683224947423751181847053320896510703953715971369803821078378136656503192804168213524620506699596279419223466020865293631337648238811812424912583425836096393871179560178544167181789626350378020678645257837870611888584051928011099839538962135041897373275141805581835245095182827203569201079259742538657737841643417301776981318017353121621113830353050336230992379092311090397420801501352405434107849027412697664156149120151562793604156612645269599056878992735619993929683072747296844514965749752535819775293177672179751431319791457711896466533246573419788048758126749127566855384327682313122174591008966156377527017166035974016426226840556803888007638583371712644680590794495617524869436174334303000579714869257942875011448381268895189509952588483873300258800369290872291229847336837246792446820106254030727023782442498288264132202027655971863190811581425892368083527048039953684376112591693953297827672231147427916952008453824483360090695377593821349134957737015423468339998063716746328977602120293169017749939884157379930314170985986988795468412268192375699294662274610635987320949102898844827975199036474928397576335051976779321760685914845745660602345587937803855102653867782305271615889200122496723925695088548306738019106277119664508659405393137499236200919448807283821156715146489367497719966709849872977145201433478573494442073027166118160947574848576031850304228691745616118417035274090426491763644503291071858083099915586021307111047310705847115713264206851309215501701609987465686118125134645165078720008678405852025321542786120964217911033016262782973941153771151005437244193546560552021581184987770528872468423593414314479403621051467385594163512848955047710808449002595135005560856583383018749996825800867383579972383189841135614453281529440933205944567876611332557475733338982217499576933371316038246955596328986827197285013877801649778702946549466623963945403284765830543561596016709348487670826565504712340102396487926038136877796268603587532722023989993059360136533121594119755108578408491084993687840069368866565130744743591511625946837903654980197392132222756918542589809468254797535843130576081148310183157416647882120846998857710815509303797987409632524489814174936137269699841895701172951626324071346724253404090248975775819667502353097220121964189850888492233204004039023251198667288490866651141377552983664779436233313926762712354758813245101117764334546568606571590120103155072451408257154126421422511832801062359926834119731849756519520371412538794493600121763109031703223056770822238836799703989902742810723008999712408945191244522273533934755567531394927617456529620599934356701645018984355798330446977491052371656994506660192782950685763041812312721371610482065994917697131433909173197938930295809464824870977753882346837494494313704255776584137127655009044224800446317824136662266226111312149110884286333554133267845492096108735271971729992362850650309760346749415630181501924114401395573009460507192578374529887640235738511548399603451627252656792355128840635099327381412723970993849625260071846844769006751311696989173634679187113502528423323764427407174772784954582704468503021718955096534143792102524445271699400415510163840481374933798129757267433193005639357446074148042252301688807148296606666391951911418341414940162349094347397267925182339705496771300294644675023837744740054429937282339247668117519500934632433164459661502008463718799578437796417225150811875010915826209062075805919784879205793721230234480332106368711837379236632036691777903066156169195740539475856675529058197850053458852962016940908095527715521988565372436376528965455108759575779432227364241299723015592736610181141256845662515535193450270517192923254853576962639574755642012551732398323540084430620156194229270403113000422309955222088271549769551464112005236137194066411580387372897540679260939717540107656191698246640877097024018050946082743667455560933493675478085747696705109043671810308298802894989788822224873649906252448793741210862063874177982632039125887818928385179157361694390433844786467143570783723265345254258639514126020528817789329211244745190761924318646232364139493539715681692847952866048427587435817506765944951452090655265955468212433508547139325446137767699323614492603989759374262708566552566003819360674457179470554789325115920594404319282201177993830756544849742636943226113263174918831413618195481744420822118610002244301467353409363440385434470570631703241318627083353929564309372409824583505417347270953181421377500597882827302681849823305796767225525328157872262855470734295749455774178364683732227920228935020297943637038711910204106805577000386761226028304914355125649248422255025011222103041237222377718641877111782349692845304509524292374600559754681675602609804940793040442625818092398482747305316145452952333708916165968611724688206775526489559504065954957717009805138455971436635716131129461984527842913845872976873631648853692982493239375718967810609081103722790579544787100497719546920597453258791829278831309709735753776694096803795159252969786321236478474993463068863420536464058272305181311945186230253449736003457039566785264871780237750212851372789943687375645818223649451125662828855466712518966863882453930673884821826609321970450647322621216923425367661922896059436414145230155958951056474079748713934769059762151507990555011312249332383948577277909380499910201046662109512439856729917871513836472819040653203080846041982396701616140123211824031335233857813524703172068044595529726386503592891721436118724564531892892836707410869893374391657349321853291075894988754147766275095056393485811591320443289188046691223842131727913802168521116162718133319656022796648364559792941329325236276468524873732108389654939377616904225381660255218471059562445241447802466238095199545116148700936514231789070980620624469941707792617985118587709131544403044364681887525059469388611413871574471855323341608554668187110020613411163316683269963520398228465337053646961658324800132989704805921276863453172011712987855285594870253137140537565371575673953075376333330465968957165148290201040038175179127827546808856096810264443786032847294864353000492912972454664143882377563923153731075567446793502651603895009427723186670305144672551229100792329839937000427478708718489486518010401265505886000871336757466936296776162209823331315033417273274645509403830970348100842834497312750522877985860983320748659052859837674819693141698294763798627381413020748181516410483511263295478210064491363018618577052599885554940709537823391456042006794760165255308324558468632891857333651651969463150970587461547611126498154871594708463157685251997866700206025355222154250532910351087614681548210217302497756532805779738524621126142504791944842807932741537222039472337521003790567167058291232533554442964439049006864173674314253604401770650650473549580938245834031353802221788371962672040276356035437282617258479335236835411425770457879472003966455351142485082312008635742968937534794059511796685618727829539236296368723866702959121416956899432020539149220803019327547511914279160827917422224751566077128938561296243129872836789444458209429655242421797181920928531420339143867822428302897685884964746155878036940526199842994331954992877796361886066044713447571567867059969936454297619992801221732081960954256956154852306087397127552844086912535496063302333718462944137255444191184045523998873331936460579266417958994342530921547989675996131027152030536026122890709959359424091060211063330941667054848236915872490599849064542160666297435867601397505160870063887484500098579256305898948247095240593454460849123359832204689489977651842211853050382247054805513975147555062357688818906503304736639859170715443224207260147290431678074491194308660230346655189746368684042090525533743360200960409687909003386113583263017713877132375259598016269395407859280476331935081250119090599863797420248124406500158078195361805347155912170165138853626879780472484229439396515480430544376199458977935730992862672498531958720171832440794905592031361260428282687847920182861743044336995297676713716853222001316123867887320714717117222762978489850654368939135988236344084540423165057452766959523229337268441817929959072839518816413808723598988448491073853085640107240868025313427907402820552002222611109028129446171848773041549244781784324003060492452266320920160180109273184657748116043208968863079641236472253024081509013102476116333090735660928205983044336504260311850778388331292357171117484020165658365546836514878352907522305426605229650534670596010681624987198087828925371416772399953450472327496235306097471086898017074188947255692787470850794014186619472554939778977301167703360468568424396542733876708312928408966638720032235501464233543504938406238208537253755288586864861466905742462493282619681403964889816804267743331580479856123608441582116646003009345426969494986955426812853542035038738460597284696020739025432431182672636498159442058159241521130496119474746674967516452549932786883583480343564340166212709952364303078321745397917340979106142488844995723935899500883513460334084620545302982316742307487344504426577859631481303564430727589537360298845625094321749286565536492374388038095829587269421895945818760248788007334899675935629964873296751356698523754402463533561826125187067682733134716396631342449945070544473520533141925898111557856179861574170101205615007316489757764435509737300333952606993832058627482591535173313519041922177052571930700700443439213408212777138242748956605998872738345777354654244004818133172388820861004234550785766508834494626254143798385899545503414034872246905959815332146133749093511654914339267663881929853533409755996750078610300144336310646374236544508465211418222532852977532959811557609503202466777028677547327312304558157689798653516246976842449118147213148412532584176498369595187757487042584839274630797547074704917091143723748733617213863026548085915728014489559518445771337293463063269712684072722387726258754560209355837694524133322579050687131255451211202128478029935746447331378626355688640282071204428543825796781499738037471545698292552418692350079560617873040066145888895748804821366051124868026075017072891535203488741132286557963121072266744951872189559504184046941860709072510879306952299175408896817295347320859052049206492370905068605136829352019401277026171728001790286318944339418970443664776772021710054023525420614104153296726720687022822028129046706569213594613929650644948902933281623468727825763121360065710664579892284556520453398628190165218679912278177782791848982524789878863253244895988500172801303571983903061560037095219870148697257276101000006275930010972988677965024835381772144631441970700800888371350288450020631197098301509445971065973161502953872108493764121800326859855646989224935742437453781892918435600417493913072482927441519582681086361522770090678237498585303104763115486816980751566371037124249505013202003377761641599217894876603146630804435075438489328615824469202248438287954628832799392158194082728016512467260876470755234408574633152860308660526718628811496718296302721555432145835737906043369614031723863309848787022134267880441202173611531868288786696963303848200544251391517708004300933485993391140123738998385911238230493844891879893919879049274983225543249287977438765306473950740439951066407429030459156772755197419495570208339900353111479956069962212398024778661594226658357103446800619260542757590625383180835485415996166793163147588771864388286321985551777977064043279131406146041712112097058152090898442862931033690377158278600168982006507551903265350944162128387927337683552626873477675895591030216140251496320366558299235596157283001657017201825735175300408432506854517240953877680766525308942228680612144445657852584586269349202734513665799132822300216527342238035948693318437041182952330859510832098749323511454569269509351578368610501722181583264210926206796579202833821614916780518104482735531197747812773048363096286993222225992281994215097098447851360732974804188841549901584317223241454773595022084707781382309361045953849591953579028239247191609453136686982852193238869214453947348420240439905436556170044606117107590436794799538280175785221809632681390996828200571565414944347519589085983773613744391582369556187560344691311453798927628683613630501205798356537474017845773288273373138918901968052319537804478759220912018973131627494308937972334424653052417890778674740063568677795854371532237135094936861040626456185660165396951907469345012654623987001057827100800926960718742500788064562611085710352930934826376721185643742555587018992522467705918582677918600684037455428268669624545432505015588935948032999101382069990672009981804702317577338431179812795598452213846623554815252836670719038828024525041700799920100790455726558558174948100281227052869491637793501200481064231565778531453151252696098175309109846913992871476832906179666382145519030519670750797014115297702677605498995875919493532954188984896656917486204670786894458483369839766011991038591240067796623379901958336212615661794516353963915743455508706919830561326058790534094125266819022594519346976903781260593608014204213324564090147393598267827264412131809480650318135454876124202167581420998122840873920022610080894469772805992612210708868487155367889350431770019929540338757222560568695840728304861963252975398017504772173574434803668925946880916934559414684846303615967719129277223134780148005020247647574224024130787185406767179665889318994956223898797915179193979387791580089761256828311181129814849159767469309615003234809026449516975227839193496237068722015696480977952159008675089100877909576209595970830048836433394836391362396507924936055269353341524796441954186974497992150119578129482694215415480970673370840950821230667577574899569982082404020868655252632307465335143903180904827041668357673722375621229286443834165039594334247477600825299156603989281734189207474881379649771510232733669087116857458080718000413058853565099728437692388689022197537378195414713287518455646143585956587271314751653647310040230928077462114184921468028251892270703222196730787771994039944568010239851462405428971549408075606351279328866643259065831371084512941026296538210885048895687253770641970886797654773058128868785750973338118378101232183481084597455607059578822421873923247467109158625738417203849561495422900978608053720907188086418786840390801022314449566258226274631161840653315709973508968533650168297096707800406343634393823235431754338018790725273007361398466625731224429846758258791358594872133789218630943996668329567366295741252124705279141721321982598516879944436575612615645773812528049755060250350967599480457015737046466542434396511695908019338062423162117956876884690606456085722689371330558174780046159482928920623017272595831874432269358587191095816082844862335157251927998049277465661686860152525710968211314248623661728094871885666215489521464409200668484639250159103111774407087846286437939442396740022437622121718713922008075561403407789081940580252442317935665022840743158915069530469586462775814537811123893973628600178421502867878191224448641597160873081190674153034868795442641355246499805843702965520995223577748015320445389850252713547921143252184974334636678373031094982367913534729863310565563073493320592885758935126204597022985188565986577922323584276198906181138430425448865321464221934164510079423382801209880193657719970679948290380304710583313852019303306206391411351198646547908697032988468037696617467165492679614539173053141624129330383239144037868027871268493500093851964080881992686711992425001191377628047554701914667971926864733359822075548468959818653824061753789729832547991306519371722433959946289730099168495123192236288406453315155399774846825823448452645434434405043333176972335688440663600450504556719578674343475568920277234827817002297140237265500478249552252256355385052228507121917864286138325398836127161899726268056059423477142291250165754233774643960124252542473222640224268772968048870374108449704344610570552601795767039537607112948923273370401887392215870601200084876400884430396687576309910298927333398417071805763072611366375245919529030467254661143736089825183150013808979577486367208056432363381454217581745839707710371611827018414462112148471776255482035297421522353228924990297078881630526897818597421433779287874665338126162528815193809370682685885580042883028701512359325522946467623159814466924557966989753198505048280946784324854014972148514489787318743792313642463023934789547330544458998006060030970553760317010259699088713031767165050584276705365775197019439533256623949518370290109547317536476850892113038820311823357170858513380698500036512217760234794852349590832131209868177754915535525272499646591768809280017275889963852206586335478532080652419653370425943990560616771015624920007884344044592609790829411160277252582624751252367949965258006749233203850680623608646164287002975603954001244326714673612687802562414289662243596431615539809998323399257938563834818615370657412225282595664825323592177655391127112449549777063571650577944700473783732349098457574638593916215877170401703507921600889899905867219372431134491360274303124311680583698054560650683058473979122337063964144625569580840369193829699114306490511589517614154156592323130622175459940873622069585373075875986186550561550073156536520860932410027863619009168244316029088893340037691364912425465447085494354677492287393215612560244580204957205712954955045758471065256850050407852286347322291468825534752016944762351115304458083153547843962264652965155888217733138106776290397388547428945779597919270809876526959764835597796272898220579840599616936083564088465200871938390830087513261158852942432435617300017689202255562374937336919376497522964711004267877449533299794181114545212865467929877322137689004178174798747546105996291117713736629659440683740016830440540065144442668432746049797254321721666147357131415018633461002110959249037499923898358261715890061587703718922953355469512504503807918454362912270983146376376304864834511189904839251672299613530497073630273397414525104660549986915965227046309075800946859086154497078838516545317531605864505169578026892141377334057814676028887774355830673085082887102220031540369746937103042205301934332549050047103257202382364350264071215839716052579310108650015358943209334520458859613636129233359774118393210928356613871915813480937520029257537768431752222088334329014064014658812976605891125634396096120894643999872709567335647281781265591505801581285222232086137824990996803179234278128026434690414263344804295986963550202053771523529208633163836045011422842223050324981706181157824832518298660499812496049968484405606029167698742037662289052911256813881148136285977130531220624510112148209072502205384465972623688241462804216826762560333421929414200496257274584482164861092232081385705692348748975248369280414919885574089774085773903152334393294770213097364393526925120099569630253616225401154646698893571611889599502827282939849858241259439274826637815732272255284414496090860569618661775288951832359935682322523005191946559373228064754715680737955680290461699201300725921061774757930760018321951402103281627373596397559935524290005346826353340184514084072587351360316907266409754449694915601541708081797178215698323667360975618887655034400904796828521564364284706261827248031152513591910513926716019768703473390235104198138429822613286936212736258901878246750941476209667860213729741525602872000070217496656360789105223021430778853421305528153645546660942153061995155840658525721222586539419827215710308686717490207083913398813029965248338966892016312457053224716328400056558377535715260843057988190515488520400163217026310505784586611662497734636070987322154216460288550758229930863486107626576890591169817459801355704995428171479611504921679585275192715350372287280235504210616532899886360873255898600506600640135057446739189638963238392021585438077541283465432818175259951603049575667650112826675679265596045757827419112554659815106133483184962562666101989960720789495110643730127863043557414646395538612158811309867945209475958236912597287771438177392303823089628106816329883292830120118930406805212728171185036972979623015077855352468239184934786247828460127437976858835431214257944746103434426295601773620899611753276632995569975921336134830987844488884770891988109338642081716747467073268295283786345342958921622334928493010753646271728517295059790575545293599884628561002512768003978506553154757635793859459669339844954088162332585648298681558600213391875550483211893601523082545477882752101706913396937796943614215945808868567861816696083577097387309799937670438262078624283389463785295218282416466789184159086137430737388208426948709223717307852626231471792821189728947755167126369420215379562478029697913273083162548735047577183657256493631959510916135851328090914848020407781760360252141822462165118292946091943375737081120806633101087646403120922019715316785273589606712878905155235155337388963006287303627223959066471356322593851254596985520668901081023021799937936545800995815341064414328499156110467106801356905971023360076980483570163037934743346858448668577826616987002103947049880014310735897111157812852314716540993244570395504628372074067501776636184247066110487341706653094337707332398505261846901611491067088933232447144628969750769957803617233901427737669337759096918082270966980172920547285298305464334088628142547315605922374743735046037780737924185729324907779582922583469612689322076212129890017156714220064891833744917740057565523176368310488748650410167899721075650125586977259247969656968221095862045556093381061429772976257306447120153805040428924972031973647090431226198404389342855740236536584681895386280168861390443604507179833027656403778199299528004434193021499480610264372604809029042925783920906721038639132085665315793283375902850243030075235648393589032683619051115995551994516564053952460425573005813822920728965626959171951252483883912305365385907073659367790439768716870387628217681552578710551210045762180799608891294644035603265717437213876118973214740249557290410396764488445419360796286770123230368694649102131881844648852127239381869073572890818872020230753863829561052152149129086629470924848708335765462510378267703381176257096366182658969100457970038147657872698146894523827933235057944750639766078106409000031828067358441293059978213875805805734932654676291680885278232072748601612943795462297818889957429726752331649070730202178109244428339514116138007367284915449346543090005443426701268347282261378742781721437327403430252069705601220913582444411489485783745758608084087225398980271255403097771162651016488862217017860126190805650047922572713658957162207149400849584020562540670442656961011630398552812482019500127826005522873648608179564760903938212719805118247125635518364550908979387179872327778612435778396547705978438008086873871448408557157965847211395594583923177632663639914761870561551293341156293386622679325148848435930475260879159505048594813981030136443504332569330773190507412563629503475383252294586148643811590805404645724083869281560640227533093565695425353944819423331169649959438800923836429831123757195684139418118014773839125174829202749386007440551876640797086083398536354596270249962437310001194785389210365297560214006406262252746266938230177071050936414699710649431471646315122649817501402149976108804006324617959542702319880884569049858931619997954273868901861353475891970211294973881016234091335901868120058202285517204344859686311011393555035934392072609247742748689190824455813579604707314938060325433411091120270761524168462268970762748071183371540985606049050104248127988318592016909117306282799675841684052387394715558514906490926406583972159024087143765603421938008736505682135209679761917918019976290825326620795137159452395373941487121226327231984215026099705985133330423686159723270352937557345195280996048418317338934450863061910274725550906883500196636504012044610166791318535829507795756121980054402462354531783966669252817606594792887288736569013104110450298395851705396720544840779819970728525633378915641063039651269009951253355045942132812528296083454568517164673070694256915449534142565566605877117596215049836932005946029080732425313818052783513303497527305561921832463691373116225512578077808278476165286446815990370218569178054528325549033788156780830941090438165331738365782689068479278825541454663307785648153058465857968960059975300173742565885100137505284640942038189509677743528816335812129008804582377895256487416160492798039578879911485270352260592869308188846214050924460870751106972257589107931695982453758042349362335533997164942734257515196405318330840887440992712350879849187360261684226103515222472642103798252239338702250189041772974985398956133333167930436369123551409225571339595207321906558721193544491076162580687905853798351710576834810269387921975470331698048372783673298667350881226323373192021314208482383131458018605269388546670444533992927476130768530060879594665208592817717238721904330590791968553566379759199840793754421055179519327196202126975272981837999493203242846688012559607586829027253875121897268878318341822016804886557035488938773176253363071395306647894173707117209164742084248495591727029514404476642256766256259894735891624652180781866474818125436113070732630874875411910998993175503718437923418038205904129657929585914072028498130216674643373681153494659140760134554211177536812253977160771529633954880916934871720806976829196910215321689131995569425578749773025482891536857980970063507320506593213602892163090010315112643034455679269563258856154991281756911913233606425745203808594421845092582536545216877608345555094477831557389272965745378537580567080162393906503125828701662939350627177096876018908973394398569490675037634935157373109313451085296543320381428559961800449761092101169840854892652725149981220028963824711971320855815769551274483927468507238629899235940785574559045558554013734039718761255003340369735350192761784181600661772607408591726300723425331221177710332151221741516939726699891300652554672435165449713095165436475754410856177515104795796678838919424135789458806706078975257848343644045464777214279324908159144579758179982093859377341663004065290440994431430130185498678906146386082699895736722017559612307055208559293623894858495619941656545362460318384760571797531185288602950176961230957659870208176869150302382539646853114127600344359502119672057060712797548908318298688429785986410651973310487350883326121125202352823868007111760378937076972635744650494258160128968871518190616818755161680507722801257753952356371655724622847479423543976198809728426713679703115571816025149242390750457574481613590569630422150460986112446227139630342122642936934175652984851453002736472166313826490566036841051689334367479535823848944281942476950735842034907640144598448236925076695834093360840856908271468666083261423195921590070261344404855054714123268621626053243643054326678318724412429205212734381849880532463583071250470138945282591315816640370087219869911833371600396021576913386397160128718867729569371187497070505194887822911209814279586726129875659359379308767013870853185507802647605281824662224830525485204791505014854975342621253568281225615147482671640518745165516903723464536576259147328761252624030157461912886420217874620176037262378569467965738228398076841716925066466840335538442413002191151564765459592565091942935814134950920164015080772116637151054527838587750476655932104871314529080047443612397263046401663817464163813938119985129215466533328875321931699208377612536975176121209440744181601489596025339498203967454242071639481970965696405137684795010990988359892685952253947326130141549205144036855441504534735724811510413323704782217833609204399297358624198821569503254224575337204704847787088440505196713923303309915540527626764589274265832539241620546262105705138481158449981282544798651458018351243463677119797995598451892820143350678864230419319523184862503556902048366324535443366225002230474408513825018595143703777070238930000415635320950706642803237195160543444033661787445348999640027801983539623315262668772498254891124042653565858345588623599603368067240859871133928267059796319238153711765004763059425084826672207731728168754117272422734432107995982610682419704324761674096002926772228132961556726676526576661531678182769329805780950079957044622964535486565260529842883902385972214114293846761548283501596163007743479638858992586416279289233685559932084612501494795086664364865637159781760939616531994884025754437163412207261155918609761510209794607727145163283154696448290704748984187794257826561455178376837567012719738976802053882863539812004878985130302122820362245285679252473171275999184632935209825030453407780798960086378252371176994665865447854865485146811031842180761626122070829962761159403392455597967154687800307248809198379181387046787362541787811632492958367383399604242417548117636351446330093134007718958508839550333587055007008239309356386719746852664597539428102756455337707663447910838429681912461011453470638919933204674836315339464386873584138119553347931305054452400460186051458651967684222913149389401272973872352443612070181927430652418526156678644486503529829332959115779324232745925037304790061071079580607287133055229117126381272434922239977003141646259664627199250203218767226788456075607242463195812230717158553209706331301418177750220058392097283267327788575819766398033831691948782561853373856987135595775298937503836144547278210431212254296596020014765869915699696090363345139403257980016894722991627971140388578196197238535139913778743652425518968569106640910695238141095332550821899385353454902093528342356619788230792948219452877789925703624613021856451320416230353648275644019905042563181472436640651888988797154459469162238690806280402474862874161786203355204910513037202293183901122421059976082979694479641097506199400335927233493150222494987820965509773587909533426612176892481190504992452821401980702399207987680302045561002540263464093470789363462251390070837049383936471280598477599119743922813671875926685415007288731991865558609399444983519882890629699123166550963332420449505220739230314767331223190992949686800645515664426614319818420225600664889229787945348053239480686049130960461027870647208505328725769653839430989896490126795439715517064831773382623106137899178337241450728975892662049896357753050318504179934976737510802511262871051536305666856578180136903294525846953928533109946108655113413697031985244853741598016911667610936331484385011683100162245528543640058162043944129824160705720291679224290993376485847569039986514813026853555175950086640272095440685541849375029581237022577567214184649547836239381922674544849670581371372718197636154152876927889330488787063452412333344098833066377726316004078676419403643088714761286679911677987666667156238483761947932476015080679291614199502156769623116563383930911598423644339747649142713756597371392300165087127849271947678080692803010134313952898830665688482597160569683089269349204298521376258659482837432112967247272613765784493275116043727763095678689091881592691287081411467541173741336004684068104307767468699503350957023665328842402519532426048912271252232736112223274963205434202430718287800415334693517234017823623284107756721049570686446606797961882961918137701425040457736176804406553666382064265817983925237138318537370063213794971738044154655512295275371399094269174743218087086896148238995935667503297075561439404215090378056005405524339903049815743278386120877765797533941181309324736069402832012882894200959630314282449179389893410883007345760872862571423693093400160740406042880821575937057712797604811416480299214917790464034189130152141831741441976748858675617986555748998128834168000546135996866768993740948553713919548570840313489096328443858157252428249761182349006484309510081704435591863388282803540552304600909562173998638927258266284928645259094138241959486397436536553951574301171295836961110375521210395148311013359805129760379716046847710144150287492123889706435446342881886337908420183792084880566514379613302231922731867173519343606456573195697297906572765807673923463698947823799836033555130030997959851754186897332588011380801635715519700321010880965205038395968636585160825992056303769435395261510406682500738805715814044976082749899324424399318430473639274216835831481835331848285793742988302292500322748824179155207454850349167677071337863576714846094876641345396999259744603529496430988145654318148050209215433664619121974644599458040242069910441592740999708018750673547980245708103932973617715491934498285083996602299016083809117895392418907564857895478402512967310653079051005282382135409128347203350588511295339693149955524577905993633561873824542680167265604378053205497344192520791317497461058234138136226622054315367949782041086102457330803375483792285818527854777813387073506732198667700197283754076598198996914719887789829306326352589423274297475141950240420652391318947482295941303844480182348517885979697274408440039912415839905877711652853625953619095157649487480490247982885640055161105131662470821218434462027627693231893371709298065577247240383047082062664443823120845222864589143319706561470375780273632789676179067247663049004884063489094883593291636797131436668282517606162770606374397485092776446567423618452206489768321622566170674810160809466933530058266945586597025311961546189403162595190099640207476056602305931322414283404119156522339207907195513164512672126398471094849692706107290455070395292092532090694390417188602622541588780538584479347522700280298408761945150058489929335591979643199914726841831339017488747243365932916350211438925159626734441174477543990110285005650895150584303156249661391157020100393262392761922832699679758646910067712328660720736139079427154741272515599071022096163416142511835608967439240906298817057871178483803341598733607653023432969062829161146143303030827486047585102785352311794121992709793860718273721801724915674251270131390661056113254606978663210478322791182233611926820695205722026157016608487251798363499240244199584491040520205924688028979342974382661480235751993927459459671207525503283226692255977237995469555461578049720599180208922699300531422366061177246534373800648932575211606271963298051078374314999996155636107331650857578141230585899832147586118423311272489639879815059945331690513933162425191223062950524187329712045879667125636398671047988952060749796493710558419803314108006769997705161644801990545411619043428682720265098351224490221322661189730622827777708459606857789809410123199220209745644615794719312510205266805078447649801319106115660062938469222305053280149252693451027855299125555400130826674855236334260003932355301798481103735097634376088433177665728875594954098761461760468731703592044636545830424533131362335561486425765033669416855384741186660263579659686208838304406573061546991436806445909147643247870162361021793029608846013110413927306675464383772173284012393033445900405734061776168016831161180540880041092137569821376508289739036581337365897188303183115316426706542787042569575189155458988637480848260433568352536578375153568181064084146694218768248853217865574235845515739218563885852320832243861914311339650132033042059976839463813305322786874951229336881412225482698639632307089151402499897718754811424054883928395008329983016728081783699189407373066385649563743929485975008585303516714181562681810995188064922210865783334225619091041619712545300097031729923455613186560388413018087723583639793172128032987130716247725252128575161655886678472333622342222162913262187469143739434951257537397484084099301567877473981886200715686306392707707332967956271492479931232428255745936915938336421671434394232760253690009722236386139191962252587727626862292113950537038074061994526167131968747644749465423831672910224793636718642935088572352378820599061859749336654483014797054980352959526139565287325007410184350280724487556377105234387644114787711441712914013043874445728365591979513222114420348890965204360619365177819302091049482477866301666913399737080736686009317671628787690101136242836780682113730026809541514334906620484016322942236843375474100542562727478227279281957121873994980673313431256957841559105010843251272285559536518766982154792328036323314805904431121892608996594934035800916421456697122660619419236858904401546540150790621064530821991001824356874545735098826397166082246671204215760431418521887913410933848824157347112849540837157127082570478580639502030662331336117902949131034715846922576455397078668749579654208322409390022271092354746196174083471313978709403158866273932637593587840182211134619635736732885063446415125907319346966321667466841289170728150625840996430411321063471331235318357969805122174058288748351107745183823490337151261659290846152547336860131107394772115902724783181204070851955649654068248044396758865025613505915883297304979485076912655656661259368907958235444310978217776192219962577380721828027798374906607791860758787578746078547213978870699441561851878175920532989867349658816446363828839538333163955822985274235110049813851684900471921464800062474900070870296617077763145970086205481789547200048544993386541337834206730980174474726173660069493622572255778389587496568726857795378853212793466801407352737054455486179798204169827459160746049500308299073614945929334523683527993154927676216977507197262631746206454547662196560644135350895777941781234681373734690388224689673843082643522189377746295180680139288898014854975479093559576708704473806644585995795132934715231916554589038513863783332622065606058548207772911983271765392836050546994157190488477075871169535300910085408866374402718412968743182146445423906913268851748426631389838829068813563551540463372302694012187877784552084384352780919039205529447099227855831214635869869807472851662827123975604766018710837355550969307474958206227458913196361813918899713721610683374872726053938288329241937570973767169844679672194692675636602198215063776827553008217078648373173284623341940328565905852876866491963751432661438935424142137192993176506259124020461652412446250515955470316436509595575716796211594532855329495836819326464316643300542659172125182568827502730069361729891894619189997970290292599101248450568334897446620818658407486964777405683778121437477604126901382329088495339683110958163750249366418644282617833206910946260305323855602110371957275189138133938013410713803457615730633793182628043697694520452132753887782857416168972939549219726660881712573072650575013438799244350894773145626366201494283049798834294061552868523134769015579780418548072115361871024959694366176321446238655898556205960784072367938255291458591900770455914477086256246873345777353309274646265205958551283392348039502862675634771931342077616660751321595766853210356843524339902740943113714265219537486831349826625745781651170565692132756960907211072667168013273273548352960792500248652038179673550680015422416413296994463025572169867400926915214596775129524115516807333287217687621272071782947330857903256666812069060878557671575158553282268112037589597334035324715603703537712953341769756217607863175763196573527439113784142627264870436525784610430384757684642507571910980445481781015836702673772861091947353457607861078608459204156760112090862084235040866922670039336995446345058774186968610060485244911634793311231109174109160000697065393972541022559052983768581731356093087489254040383450750072664235323637337840908279400786732448870551515877208198254359611729980959562872943898612946003159183650601140222834992845781662337759734175363763569976734863375477314053991766414056593240996403541741416414512133589112534064304731052432581098767950518362105021481975869022464217745197614347518983556665436095816182581743501765995436148599997707088855992372676204188020616743115511946037026289256458832050495470919755957088235670374642572706923724091813564287122895902477672684666602252458237720935669743010343595473575743022295810189840429776373997322467192262103441444523076731397604148296981132155409727290579213204083268694060994999710126066677242472588842953405953005455314200859859767832006511337378779049599103535188947008452205659408811586725461781574129537752805608175382639854766708773130803795448526085240782436705523899950407860080115563987503570961041415528007737656193671613845560143389657067416676911833670410890022232066035458403806327947948584651086698802921371832979865080085861116207699731261771548611347010470488311211561239592947928179465604375404707974912656970219335347382649716712488635175871075890018466325265705912905400656478499763027448994114562835792243490401949631681751158949946046006742787914010707105574009979563895635344756582776164887907837884230983185272965864586647441345005727788948162019248185568697584672809435591757211783123089124979860059987563827185030917832380371740237962174394136729275142897093959214696163461474542438665501682876363196238528559124756862227563232918615861000883767471973942592625197292574826400294638561423026892484262092799378774640172864423131163307820082266316989993375805039917677532829878907390514286302096972016437760771338293456619253219730831795918043173540339860292850711041732601550450988895358489716952295675976453832889139194114454245906620110197657419046619998361756546080882639010838425839681952190744006392802071495581714982919942998156228533208517100990620847384645071046070728660120007159205304764771009848876523250669366926054502778010434848391284248281633215993368218942351425353775915465173194963989122652766184644639904674175487471299510814693101880792186382246871434990282257494384663651112289595104361814143215248436286437828560467262939307952431960389597960830479606383001591338749762971769647664252753232777190725875518520475635430045637427074062314325919985105298294621298365025331397955624966097836660458193518414669840377198278179462364804017193238297012705237167645767446966677404553918222797497050662372608563200231064790288074146728955415915349400331175037304566373405937433084067481944502320490614537966024161169764486949980474484207575372287030527371844388379192935052169264445996413637742060869820685973064998269683003567412989817174284447571844402335436637351852058520081571274496458284645935609126838377121640543115407597310581137960049439409267952004998143946994738240577695701822453494719270270800104078083655664642554737501790301394734063540408473042761877674536241767945866944682516725785062997286513781312707684331599523754842014303427654560751343537556297260057272266136048422300072350847187387674198832985604556379076771925643382021876419833756020865029945180120833066938190185939357217072170893182930133498802333841578685486831581239500566091407373506482035159864733205581269429451794846813252667080186591190682227312110641857432944642706968865310286139378603563657707938659862377608081071060852187586529071608911457681270922153354661051143963621301785940416636982679650487717018745086301861018459165443853547122447471521185737571902662081083492661477809504002903356467655762755424496296873828143522163666651550603441366037279035555451787209182952215929917172619242818169647778922535756496707696463570018404171127228125836764727030012434553414165694216757275148795754963913728712498950177179893087201810214995557591168736626065773367014385846705008789732702737721867265546419700659725799645380457740428975723566100502735154474910795059966911808943975439926953164194701434582640641743657989600132056023558564650861957542831255967190355651146458885407357608817612066504629442741279118611998055157235018748666047223268164236033251235051018730569842795375420389251425715983526879908220236575661099013509769250402768492277438674126091865188038845900396248284590677096066166254719521081487701645095306982747652057776738308102597564916622421453226224897913371676849183246610479092155486813608673192491785917822604501795393005117193679404844461058105459722497040139582233259884729041425108762705720412466037567759015793047846714242166630233132476453165921037224542449070459924194342704074627306668195715007611922249099810452968527977482104842327821027290015861183290944483892808203504491813762844268363890691061964338257325930459647770626354757105753841193064286190288797694008812896729820177245935715165181791249030143156728071985998703299696879236885942896533513657837397586312631735962206277134701279026927519185199902142577718451115240797884774202013153035396664210164819182182690436497190338764727689524203020568056390742884771916944941904644408302529877490380292345342237770260844774406290096345877716420173658894928531457649891625135216739006915866416896455005586791030923061765276734648315101164911688248685499797219260285000574455551653008713944562991867998619306809374163051958031496183565659871427462321563553424452239296225063959964494809557939600715922149305429278989761238950326084833510001725173912760656013136983383127643237749772641157498298942821472129626460670108639059701203908012248258303289063905219467479516675892361056361650262591703531189341393919288217634667844911724703811978685816927292673193275956487014300879416672178541169361216098415103619144865213499469937423082147479319359122862268673626020210542845934726814270145424484992243983831440890871981003563668470313671718252980948061799733708947640258060824476709926196340069482931379617500267337870797122241570849863245009589485462857205149679665243351783289788301833590500138462053830617667263428563481268902174230768527644332909624611744763835478477890721414201188514701953949908896920166266316681527138033449766002533759950425734536177904897465375414437157954025706344790655570746640858702167315166582842669689327403941480303098636344462696054926290481798504808599287897412102991640070671846433863442444032134404955489691877458177597760772646925759532181682667762237174332430460924312131506188202872182331698277044850235570637833714182166386605979121247375991494631450285323686623702217484515399542832993821619737376819442178642238744197945844786854620072165908132330333989282402178467189353538166570233328319041157211728508932738115271493739127133422217038189041988017138061924082242806432742040182000643501165456183554721374850116867079972208273952845871043962751177335621800764948692756084031196122681181199175774155418803314256348940745029167761578501392018475675749558407581678251767974367615345750998005082885074186592867076004817472349101417086181407554922746816730894624213786841219320787962526779978713947990875448851360482497421140818951028707700007142919522615076906608694027287336062452966702472096191156097338081358618903548307018978799273926224924507185882136911580880246866426672267412660074355806498977204721567817022802760697666060583192259041864909155855725002618228376256966065243060968156459247986096570520820982661675467678739106362812269717354690326277757070828677926794789360448439368007697313325673250567277895150798963879859584613743499319266477387640758897666344627811284067837684611679439719285239647670100688932865544452772293556298089856267263871633563540736933794435721078695582904640219171804133223450667279971957320472734886302656355954779402718158581125108249513977701177026457768887173308401973393481873321827274674419346859222289786184327065031874941988738848672013990683667160473296849094571254391123693710949298119825745125166829747549734028623298877919314007784694012508488347642109932376669979682125740711504938411341767315681260483235968669603369481497442705033199204563690360116906874323895077941826372771595891131318642974429509810865030431753101672015516773923543639233496822737535237817093955248293574905764576358751467280918382569895835556373091973565519230480885567146808187989800152037015374950324218809064121946582100240683890243918266908737740039053892297737498478165817380015382851061680178385046196158746450277916406947364294880554213554546722619777345708881783680112661287206950544427286876892513533835801951823591090998377721212890212793053986557231136282685179832052441045500540731343186075243618868061568936176659180551670068222633670675065644894699193819909962979669273841636792082634032698956213730435808457465678520916839682630556037601851438548571102250216094950208024160927958217093321455272540693029441969918379045395508202823918516655677531498722973101802292971091638651266769890907592846416087957927383884049806998684176962991043923052626537520185935615137821621243911964999630791500374059966294374420867902372284904009904850794972616305461486230989019606436081381746707349645071580043917794554985265905784412899022587242523812527708895056325354644319850603336462864055469400149404471242891159483196271414220889422931427592451757120546637205683651005792598484103183895634498682492823034644158783741629052340408847528235176619913606201159152974171223017438070727803263817088922499179827347695638147327798056896994916927616544792725019381357893842790239384050577823427961913021116397809301092354510195185564358746609586557785994065124327012967403167582172144906964292005363009606535480765230485873383785848698790791513467865178940526013593706304281846089955527078711527307917833600248683475958515947768495647834235381979633671478410904886986537408473705588351601765863001032514259242906441265211738451145682625279341584467809314280254371754415613835442842324892544225953345121114984933113789758735079692818027523181177717187352458299879080031276971839150276138543214609208414710264319036594302645907472372048501186887356147062659386917602581418969924260018190943448092471555985932070867309641708595074917351834102368639441913157460599266447453824593558530532439124000580118968874751253757020658090979689842583606843028849108717032747567031823493099555084484528693113135450987793641855196653878037537057658650328437263769842299890273607585862466285978735728470860464283956954451526487530120113599742649140169241127315936359131431100353327170537996683377388098705709014451620733271084065746602908788202979270724144224684479990382401824013501350358854088253209387657178528297591103116150074815166461326987939726983730410442788216585814013644723665747184999863216790886868795334845416839452775236225682206005893117215387671891242498759661099232179579501225286890855236174021118705489351802511534211441080038258904095355659690389089782560040209082810299775556679970165019031450463270310390642234230187789630929051644108745598200382498703364962804553663659327709382238572424346814435882134804101706874194636875100070333475625510249836466472368395437377181857962424326258558805926294752319382791573031158920187770961806130335434154525975633459064680712687531137512333233921349559129818428093552853844164191931565327443394692337853614241829611080195487836764719846192879265538696210676757435091654197065002592902551979441485487455824221522354238686692214088988276695931010577168330845635193032718764820055852893786138283014628620770116147340389014941329710275753759927997036313789480301081585667081316586552434437754740098458996431310099210457376736505548503701957459214371441489212866048150478509902514779243946544272768463577533035968577114848683279825207323142008757233534528248253538910287379509732750422804238464214440215773418991142537787777847325702598425501143515053151643654068680733169319180555094328662508382787203556234565289512950832578368152266562693404321806070739097937085564933030054192994160796478412871988756758663429941004266572594815077964302883056719865914280165927469788729652720842351906255500158408475144124984916358388593620716985103954242597392534810970344986341031827628278689761460002038013424134589405121888309092166071231417514717032641256559537429683852496807255683072919128516563063373031030145650946120456693739304922673173205935859900143171288659702471257095561402565115573578430299710412582921178406584434760575718233427593258647501749322731257029775271531722329793679093703366508922233201588127936824902637633406553111081635625399548189412901798505048882574547915186901348646854621812604781016463258607568807997431373359501858273516213480418747485063788404417785924822355255569783679996605543535488331303675603153141106380954339940407032765502799921280775892969218263848833450802391489564816069401192911261394472340585327402207588890109119179419785800689145736118243536429155742663742314761365018106615677305910190242540995401159427111841487156598311888849602669369282115778947068724107357373907068558242070154703270397539824454898128383630650917944852946425615976969677522510016443803262008475114518560725651213193945367674790745462907968595263943944248436112250478247967256817025919919055501664226960627938165502067474407288005191885835905850726724111205934626254347340948216553375495035366824112723228984717698395319142267268353569609373737174614110515689913663946702172520133465120178123275152984950037611032110359099485680300167603607353106900991607126531792751185601040219143787004935728185654355388051439500503670248990522503892268629244444897219895748488855899356356937433630815846183896300237643676690700980393924622740710012751421072883951963770066414354917418675047282086200810600761370238927379125507327427833790146043030819899770435273619620267114697485984818182134191218888596852836885866168255202284791190203909376430183748963692737569624167247584536750800106136463273947293974039447274597807533543882015138162223037891406744766638657000904999064806744368391908299296967378639006138479099881524336439755536465530128521835491525324293113201443543590788180176513683418434495524788167809208348220368204313683044424399492748983293544501972988399120405219358661788953664187059158191305691887875752105257653892973360745069026277115155568212016560245301361401134673617411619971697387975844605140340948901308021820468322035686544153656292059430329573657010752393024582540370462998187259409964076741567037504448752570674047626928448398693082989444234698597057420864833095055523056141215124905980240501199070107856184555403133132414489169411706699120381362395920797611712769797417020548075452029570959986477871610228196858948175868885060002824522462666356481442611114890145783413120274454304661956994121599392736347933563906700376941399655628870703083581317262724230908588932886575896242473994764397061461722657769245672282937487650947432773826638065830674186371537582707522695302324326330782730328185189667577204680181573075787976536575783033477606951428462199282298550572369483787845793605357031745602079398652053043764403362695331079073685291053662633607894812541586722069763672471730941491755866545561966423353449972045045776283716242284014688679849923089096332755151761220624945220102727806908116696606526479596289761678588645976654645897346811646685448606564838738759978827196659355367469129021931359157374467274099967402337584689333692436509011471895978948394101274828950296607450445865569453034945699171719476204277292010845555972726425678956907760127904305565922487903009302385273103700531738897191818504027049996546078196992540705246587234748025127380049876832088647755526092274622049637780206910640576910983852024366463430270491220107721967435091762941599957037111651789264571785053701248832377185992797534014857654255206276339199581441973650713115002066888978447399576731289176588926971458678214919451698670610615235475401870908437036596105439989324357865226187745165359167414950713303739948972167869976638153284990792418341386892355481754027621956256460358965478108602352004815969598765746547011687815669288929187464531158490711582169924179764348387574621127661832134580231049406268029669617281354843611056252475809232542110148146442692351960023364470541563880693667793660840110891793454428469438633236774284447388269125157194936531067729343775551605211217233630837964033897184265908739885186614637588820971234756050928768164865679075854724013270293610313512435463669682788312531144751363863713462676525173908573384776068611021772804418549780561659074781278368149871314859233073313774757243362967843406519601846258074355263456572491166781846143331598419789091039264858781884551235120921441585048819878039490821615018275967102757027692755085451960108886270574123984914984965661716641628628229366020202343338994573649902922307407441292956150949544305131188885171464567880724912460011102900823116122106180052223869800509030751421457194354094262912589311878116033269738978577036755105909596548064751478414390641970884581048291996881511655522290118365823618294308457124654171297069424710079148370179594895610167287764822165119319262364747384466099726347782266920336699824289287135295736063862423737644411251517934418651487390606670953445213240854482797330434627635558443434661267216437496161050602401802787752577305252505061950622761034735742479980695318562668851144983359810590609528877883705612637881906609078698130580738507276367609025373741739143805365062944852456926244612287944241457982456014582618615977655745882451298395464737309371302137824978997218104394551593266065783386806731808144073202427395756590942896749066796891923572054077751262925831793711226867799933429398218031895411032587045790404496914275371770105678525160131489670771294654556357501014655501368497492828682464430340316951340147098428977880535562291133914855093123628214808111774845147488433786755656994893410491454289662089890243056105220658655209120473591279546802232208191538777094985592175180921613525360373815827794409334350287787635683154180045152760761464726439400027120403355680158986961981184505710574919580230612615868028346944266631604288724498866746396269766542521339237522642248208691815718513022188671046382126313049414795216250133166644265790953482063439436569460769247109895043758181887182751578667393905849988117289262402632627301145859000339966105857072788281022834252544405670944042828360852132015148162155577346585634592008020571717817768617359042399912771502587071674873624257207521023948662228975195840218303178165212431261112170601251255764236087432380091521923128052883698516924815375479083223240362484542126625212403952380187088100299364454610832575652357135871580549418365001154676600260678094400556789375066601580295183822803164752291081528366551264977740630697307867032416701667311664196339960436140753681687698644580924622690581554681372926682521299297020182810339778065275235383479664739538669154030552593385346518207034726742083360061091108079446949007305052684430850668304363622813005593896208831927422294198571253687171277941727446779544189828045375043398608721894219049093286218065924019279911149076626708419235677712052306564994734383957128543792822556131440218085850343488862076138968303305897755243189760887574950813849964652576070711533449134275833309000725328179287431427174871702402548434456548968758679953423973428828660368859208868466678938269184105118406468174911747144127876593815856035695501032863095030226823606878242721084479552574592403989326352699522382703889157729150031905731061934641382671441609912361138526581844656280249060732992725132491157606706187319496522288637162374374824974640466626718721157265133271416312626615003679323568072907642047538090142095961695219629594699721006423720303209394978423964946167435682962512235956097566334078014070679181550099247475974701794694120926127524444916737508399876457408469348496559064965210757778246314989505656373794524444786873653974249227591204038755709855651288858242659549744845059812564805111368322132336146700932830270393364192455864001349386738198041026304042457836661989031924140091512884886229055280555036204362162698625922426271407325432162971418196738330687503702655729914729324833933216088744548912848362654709818566841084890449478207335826138617258669429565565356062049615221980872170032898674006912053360181829739645325678741298873202445467680268818522869172891679810724729285893694386878605134772939916616750053352168328920652841206658931446689413383162795521765614707259366005305011550187458436107559332448167682772640688258376785148932565701377693970560737642132843897426048019237743532921937022687771486493988833693358688438760950343848396631412566490750599384273704079144590084331325286542400311038994553613186816947911815537772316260390588922458995495742412459503358151365981680923280921508085389484304316585879953497577545781270579303755401590996811991032774997223634147259210489545125860755085649781479282598509903250945001244697100493949968606976959804650436153435445249699087556129737765845957924863228849738643585596385629856493794172486391138175738929994606140027375794295237186002115943119555384551984346606655199190052045114719643651484850299305592781696330606802490581466554533127678529509330552175966284942849537070637781131548365098272862635544918460324055110911963017000300468849994452043190998673508101221824341403821648267290114680422005522156742243430978305220915818020536600611758637864650540535702606780178683717684565799591185493350205598989342398753552127887485070951480508800362974931941249717472006259579982417150538894358634656215291149371614618136318767512182271244895000164767036313854375414698873579762491276616973346854773404494490060026388426019386183844276713573057425403868155187349343716031631130343229786355968679925642379409334704252128306704072000080987007471597158924539625047741507995188938365481709275989265943347957408847830213585345014573498811590779977232650625574916371037201728134029652084829961188700031224602035121118342759899623183466407092058836408304509942000292522641706810942389829873053443381938015656283677382873369916650713436748358063149868316176584423962667672632962648562686187816990730442963075884886304100920715750603887577852007910181360567530980504261390165982683736572830744150259843707569924724392741507557793381764046239396318403080351079880066744213376918921843329742109883662373500405757075210091678260998696951474231715410323515027991402845195366340624674840916749713428505354130032229981859397819483785904974764078003363928779924249953692950513282029165924947763998861137162792074656630366868384841237232481553278577222568137950673935159470547372473153301910526940189119125485028082943922963507303195442725684011275450872418109899089429744875604739137733609078691323200951982845172535727334289123982397695588635210437427924422726745682104868348929919328475848312822068376498233887584843326666388191016288265859934697583837277869249240482487972756462789381845080037938770226384026165234755199859772090812189562652628173314411644092582771092319662592907965612313652048897809505122155402662367653974559521676594297321420041282512603110463578524704289179388149897076072636069952822105256799025666677283509024984174684421834130133762640138782145924904600330763564313361301283586276246190889917867275766454572990549468013367049466922239583200213822202372858965393972628936077550159715551471995846634445101135679860184103712991955235794765658358442294515534685554361400095669925303380405155911626630657569538553450114216425950594679041132143896247153274027652828195565227930157640044574013826245212837160041337067105647680200557898848761560590745935826705860642592411091819114629805495184140534239601991427182989543777125864450222269345478963848444914804893271475323473398477120658294446240713252500423686256466135243073263759861958734972983909240957031555516565563853326234003907303720141003374979646190818641609520064614465414951297316961697543432185020842287358255328484016374097546640213141977878477151960473096696752605749376525435607456600349041891541424113108861415188037498646856765079647164555726425631685922387682455797738555405692799243100749322072055749000599698762938303647361752302243311470298393017572754445530206365480373369935791344114829022236690597607047912812576329227134806102622621692955547312474619163790568555661034406413793260075503099534954853567764955702402248439293499694359679868533451068325298572822170971167320872074311539352152839703575733256103353978014003449637834858171545312336540955743243696053136830637313308970305312633729951519223026470811841642586202236993786145780702689578225288611639992758938640198457297848469669705267688712451937981431686862512672793168837614612344300010363315705269671006200539368779185862142294601751909402778147197450191169881538828769450039662464042078357402397891312362699186616959295052731661891619206135840674236488034312927382310625615264535828353953292915474950970065143848651417511024441426397774043216665183079134527030001342178013514044091592838300678553676361817364116974126688452492604738411209873767703833727150361948588445213808263413294992576949602796055348340443798415260955916390963071448429998962132644418046204076431485358044522976689667972867610352226607248296676088518563662332559847190739059887405296761533652229896353860499161523052771044550176803244712534820475107798833030835419033223576967491715978902672898270072672305813246912762235408667233238628215291682922489187524080807205069223212821950735413996850060792966325166203734034471287412240417383872435553003004813196656915205500662268607083054186509293467677948435573426087212905711140340563277111950154237716767374527747080895202571117463345516083978974820667554636308065480845757090429684164159441422772487558361215391121678316736497121735813998480828596468880102925528427426562671535442011893800413771269548870494471495614980982701896716970324906296758570834419310369266020108931393908402206731884324940529426492671872196458863123878059953701713724076396761879371224223276139929359155624704021423211181357847354589908783412347729894550343355738441359270555795193201490918546904915495274125259886815563817785270065027216690820303205627039694390257735415907792629172050487632264606204399806302688440702427606816739679983004432423062413736656772387530233296043742656753129194703009967661260196935329376791504971383000055237420674995854961183276766233027892334039374337215975304894555545910417979393639243036330824098988454380820756328070567316796852906751103166916706370151493298532923615491882939471378591458985501253236991002983936028143955153554506131373662306210199631071761660881171853834271007677063374931335842456385724223674688982025876327899536922425258157978610000205393674493013546783275541457646858551048605208284178636299410003200996944639444228920696397606053048761047007571277831379823923986908260579788130611331470870947072784558238253439463048653486454569560703836313523184857065560611718821588403881762779834769308621897870966043659606030325068720302961704471709862407626712726836490346660568843388570378051270978863378508540211403530095186963027870891802732328116204278045089708682558988976100823635539725480797086457133702842177053365666845363672342959483580064757987913219928595739407190103252383791263924947620565374906744179330150122838597555617553790913888916201769139899213071666556368585538177515725697333042085312447938254618433952830692390726557662088369990607456037400716173360694955648747622969366574161959573565640304029448602681454031456789762033559805795403530690345087124140709485020162806733095798835449706957738528734539557929882637882894083367133456451346592542915060901121025916262875649235461418043903200011150386347501505237609324169916334269556228295676325758754409010264590312856251549856403462335308990141466581828428744689943548803095842023072600785011503287075830646063053781024765943882961627554725204006661292798294324716313235375111661897006900487138836152753381997063677901842999939873357954446750816988852346725881010123096628060846110618951307943185004522369887503829020918949658389674090375371751606325809255230494380130487239899560997285712378176279474007960630974853549319778930081774819994988098639627993009177355381778875866662165836179782717073702470351926779561621923262698524059271514228008779203602958337227742608083412852532128245777933881955445890679703786967195571042720244772166868064549646133681689745098865158430187064314632810061006800183266253128402773011325240185772767282427061125928870184171612881146441495652501071193739663893070912973074806549899463662165234485967363502941098246063518599738621939289268066213618198083793748094654128486950877830496855122768764037705994762620576144419710215813316262355845396419477579662205451865192731633171743130931325563351079058527502081655557840548351369711350675253696263128654252702073269634883306608965451794412511678435050605584729554896038443670877929239976889882825018832908153053256486184037416095011719663229051414916808483568731774844858916558466208838381818650718941580319676469321038979478042535297719339576733386811216720288158484530338308699475576912229020357770515784995403464136180333081920750391350891228821945036967945006997753494557957707810709725984234137165252354385042999620181281677270709894609507295476902260872119219272157965738621014207412006015117750937414318991608890083237854796875491923627335668491575184414568072518536282652432131993548896747259971971257746748903337590533695134001082788782187283973460933095631448154703670028846557284242202486383938452805135261302669621836655908414306081168796099531492187711622364253714550023815161812158404871556912692482435670994570939548370045020082685053207027754187002924505907667668662085180665542473282923799606260706979133095912973339899886717378329629207249357981176851696595827402006550547651151354599439850376639937349935144395137772452211825352955758426196549173319379072719799698931071623232832177773724837138406611812589590035476145751079346150623538454447362679025740644220588879996554003835233694130182779782532389010531906479911105479874260224977256608396456555886784818747647470522534348145783017342722181251025439009133902814947402619453993289318527850917640011391775473812320130420523793575026140196198563812654871358128554932904002617758558378465972718524221362963972487998735541073980850574118126888304469484076553423337185318264953855518153002933609642747700211036356641979631839367079591932551955124170270173265119191873454659298103598796371853589885287090411123181721294788656229783460056188539396861400969954604861211713373870859739989593608583786888397932735435290252290410306645897594469294373831774876529381891355562140014471084059213477550739137335062288466208605458633628786029449491551406941579134873601318622163933595967864868969429586199713645864866701341525740315813028338568037222903057290685359133075168820976486600714852638283880838558503727887755437001220341726724548627333965521469254487153176325579722065764211419498967070244203654316938074730316250368254774186572811463393428985824347960351361054710564074840829929725930793877486956196445018643095861818551414137779539488532113575625607129662896870401297473873649364618574363746929258479302342789659944362988298595998698677337996291865631287916508086774858546954270845524008980491570875175449850287241681522062935037583741859792675598021205468080454779966436929985951141135431967749320469483201817653364029873083287971273940320389537370741167351806538807249522878112908273503255757657970227467759380429729442386896647025856804872627610835924755080939591818177992555225487960920403319394839623881494377643410319890120865111538940687957203975835924807431537028409199230451855375830062654264364668053377679595502290094421049030707143914459206245658709218568490640565046473644787159982959066609108463744759510368225621667112818294324124693859837034023919453911735012113787871243888618327042177949298001407649886514184264917905791168807454972028512062165493744986172393999152599990893893799357318723933439105926342221442950327408409900381812691412726752165533763115160615932144185189393315875988621375431559023212617605542074005459904617408255770180440260278235171124606564364512175793064763392928504704098504978666665325107204931326976731164078153350897062600022324664276821985449912558612852872856268410014333293427919072823326409230899616669314248988695535704709539444728774872896629077640014071436051661716517924598602873668189073576935109863499906578974757583947833138705729172062986714283770778308453538208626320415296679481660378379931960908748385985689345494062289590708248257748378845475689297393401440629822508678727220527441118719539956221683784495080408804958785495946545998537936299582415842751367824459378112481973961892769430666347639362391279215928094131366842882778336544424311412487388036427950816830638997066118491042514975752227127899582069671568476017584311692529205676569171584336924467749851264567410973301126684528178232284991734264922291059773622173889633598960823538581087921151203403839703237785833410682058575570551368386659468846980607163140331988011436081173984278234117813695041651700527302392887809626899630431865965857045895576307974609035772161853480684986867163410272107952951838423544696380799285215474699925508544805888152282311231368270956046660909304243825879526631056799829465852350597919722293495802257078445768303059604947701023086953455790288277393737712860697798070146587349483794555478875332762960436473221127532803343162097231126651611620300704126174513731080379338171208130814446207977311927827142677906191122771266830908304917494517684999010622645797714776159829035475245098620134941014878142511089409946925387573631238258430814212215767479168576464816658321191029346107938293479390400266374429384342730171659582646023471366853570586191764490065432230201495994650305700827153543880472237625497130842060935390772159457410684747455109312623021508894009094261154270156205857700557971060679630900775091163786182570058639658736114827423811880526371360346253214236822690314355037095542068613925141668713823221396596404586540961626324112113483755458709785905228421235840089535796604167229120512949999380731976145215592680855855601356947626993221251582675980527044011246974930618316445994143402115897678943416368887447852498554656459231578643072039354834573863684401972989151368543946716694177955531902726841418987938933623472828560288331970358041676144999259928305333147541970662263449621347642158880148380498957885387634940837106442433668235228969865583561436017611001861089818592304473547030366428347552264116791378619609940700061779276670317761796781426378132974119020017098165322670920610000421146743312652127880180353481227581044841578608909746850016795289434164689304516531696118135643636226239355179457310410692390726056460749067241372050062573344504515448197094134730327050230097358262247049800921668709402689452970443109154919290576833087737733623977224392559507574450067779583424311327970037794807149897620389994931041644359808534120853704477751076062835600910565733661684467673014484514529589954895573498695569903939717848500579772084062753576333700760547055801489368924000368321366595196124930974351600005434204307255295092022180186721909618014364065288090459684330644735686374826198244790028355003955551012108777339139629255023405928058046915714907760124693018246442778229607360764217231327231038261196627835515014254868070146058021403546269146378644273947240216726675809861458574637894225463775718051250969206596373219131447937080502977295394867527344622175105394741675952305322782350194399587410058276818564851398278116305227936471614170149907026682431718575517898410037905228134899388361912199721779680717337498426784330477132961905737977962438546311002166750047438416744215904347347179725728267471027487496627430682683569867931838286036830455180188241191386388282154414186814669145399994946347574674732698653341099248917785966298866617657084020066943658782092392162139964751838578650069822948938374710705346393918358204355516614258946392755945650106713171074415798986160230801787471440172357907329460015648139781556315615823467224212069318523308204636229968083072058987897331981636570297744029714001962481354983346531388262086919746166415622756184600093892765736928349263807478975564488958722153814044448027354109252536782004858407312083029723609194196429938697330364590351706465733521590420532485492507214140125260898965910185858440811996824452321101753032934491083245868508995299833902826032159077037540722539336703352117983355115665894481734651701357493746159690549211211532256259626560417659799916070505887504640821005815628416797132010056181247454315323197655386118243604434865753025779825437264308496607056571701172399839208823368748785227715644621543887951154513368888608165816040042648536760626473409614365426750694837897470398361709408231022005656300554995511065397477343617106656007963056060442949718942769674689712539157923116272268796801053276604435310454072301860580121271738596954955974834712078437651832277113786518904294656702570014256566863314570787137377628691764519791954188816561134185856556699852016811895841173096575519258583006731421538230404513395092376426902864012179082220807111339535363487377272360282721350250691662262258787518388121513597615348236152408700392792816294669584152677039400068806390525494813309583841601381537097801916856764761785135493728828080962995218611065937219126722309286802517867318938691820780533987071575019984605496060835820542689381478745727058082302187650533130044052194050192505102802988071794085733843541506512550553123364504024994683371360927295291393713193592810456884065584589247712633883509655514071566356389567191745821838652287552478243492676811626908886792862456873071745236777201681267745863886148834125977981185059665231668678038458301740883943446128043438647111288588888060921987295655953886233538450443758025210667117868491028495405679847294461684944022804092383242071944784366321152976717469101100026289930574929155829742396012526959174690411354700932520957104862772115800984063835827532811002633173422980438126297853001765136675376589447178340235374379303617268323240206457396467434839687530852531630549922611728866266364808053469901749122130529629912140737544392357874038275066494252062361265264471605568300576899444585681229122079613589474998242849242034925314466315072478783678919693946143616862672437998508437850353989762014434680608064531050009420507908892568936724491270937336203094843887824649514640614185931891401147324407729251602813318984704766419583278496697358561684348296645885308720499027191411402149698704833078980939186529041713053462678033153673229286947490216585147706319499977246243529936065103880254090314233276710570647622976262013456434237789589970739305291971934733067486602410993434568027611887615919409760721306565815667173650622374797723827247223538379258695122774341661876276632103352501348880812913937584165980837154897041213847658031669605484552349700964652859077359828448655503446763086389976693475097983317817906595815759694223447766570610495272523987366681210977103703025224985151007690614540147682050099998391362187140777844322436914349328266420732082480467613172100382776241777198052300454792722405289243372525548090895667464552994319366316588998943802449731863730177543761143991180279836192514949852967986178983293446591869177426020817012913082320621389396003721689142802929436888466105821780934095121853258428580414197903951278771483973593035717057196506760506741527783523118394565801951167657151878498788999283204294066025363878547899203136534669551012005147402061047497968829252476450055279816403571083745130291757874819812644468751175871046959042940280651518950411383183964087267982059157629735798761093913695747391547698579400299873310853965516269165228125991095803394087552690680725384626739196187535801147660944885571038585116439581847572573545901913132783476020628909774372982994541428142316495060824295022066924758550405243121550126470573028295742239378329795008611984658541643545001643328320020165628849547476444470126581895589512709866671622351297829733131345778264770098535084924086554515024351929929571649979873196072425208945595249480124408898948925064274739096988394784911936135813245942003921520876104363249766659936505463898940721624683827510053667367522941585994952144858836644083595945525942992927762772140661041231004389555060794814600223335643690879699048725145571204946005737288349728980274552444777597783438934417052538481992774773042987119984722210660594221776348453758010626118176677646885118083267233113574982888416065730901932958567336564726988044857692380581408246217868312146652503134059563779430984496776852201134533907731431499873643570484124219198047355300018529046851574023990584568313982786658729185099352356916087998591879901812428385184485053487704650410318158597650343991326078733727597611940074773434213096065742022094698680749366146939560092991574999588211208601300539570833847619695847451173864425717926577933077465902624825999412834276422281680547970517355773489570876300145558804108054215884914700525400638426579591642856629458794118242501579854436002015968333596877092275179739879115172868429115944013084791891635954282681731967857566660384579898467514751249822576230589042773942053305107012660201065013970432432617313208987803255386517681903293008080427177113679686656145816395203907670257146857973627198661500434879252752057283117532929527044115073251806966703192365780038625518465174055684501389606656808689437262412927104549268437150685207506593133120950469717970558967583843904296190287421039483264811147044530979461470224726862967599404024804814039933444850208831442928117036881971538326608681888491907910687524865715780568934887408522304745223727639851284238697913027930910114996954850869785914509950495545440156071820633866704905474609075434879974622950893496766099795874142799527500084112719484620188896431350512012984891086341553075356455985683791907457835129094404200221578803141318801629460802157875608558092617766929026886880942305478689659916376864894166472224507787502435343414494774746336463286437919497428061372372981299095749241721461422244188847000869202941130733168291839897873918534919495523067562508072938471455533756013271086922661400132242503613947112563527829891673679607348926617801210750706317258736290283904234543276796533945918142702322245133200603314490054188221484918127455361686709588644538390734782117406777853905527140745861178592514344275001674451596519417198750197920774915076384837472657352573036934711310431419842151051611828049216996250365656831761998760068323409793737837985245059137952211383495465933319736630296830337222492998484128883231924868828396378212617400628987744830544519980467702946088652376272931290816968212042343618462761341629789501935145894345184627469281083471719492095787853362449712020211995417195768493484771875066754233807888555672747510006806429388398284476861458362172735862595550777233966443023771893325816498389274159835939662530213998770156049042709062149900560712082168518391658576551069186056862664379716880534841803920754363374676088090265347199279309235310420959669966890945084033443564723235253907378772992428449419172856812268049474343006136272564005075272674418823861207758874538176278395427161252797131361452909009221989057441115885075804018575244161687265889914318362440758380334276633094030740407058784069703631662216208658868729851202717894419250445560688741820621553290577395296122501726711736764603135105754458263294057912602986529188735684968445843386433007885593041648160489837004204816608042697120482610778830457063802026644611394371227117857595364019909011217776773297747791131501411237658363196320668194966832895033576338691903515075757693345745713400334966166769805794482719138798519943041037453035242771307796229020192022466504305339013054210163382144997632551944043068452510089996866636242090184157387256329326723515708061806195121417890169557084018579094519995141619168731198474558554934781130423683758711248427362133150574777729900003755341747485175990809787109201536521473238888645886930392606916201564712341059306974821710147739182685273329837999845501431705554161853893097405514070953972398005961529702107995689789086060865565103140285512613167825126304159618639726925850067450332673984460701369377541467236719974710351790322635678136159193594817104855657698660909172447492999008487876892393269450668083377075982380136831836624068433572334900161796153846099333390660922083883989589607792840384351318146858377814418350991447482123103408880617926774378522323708278575084862574317797123659563190572271976703304807545598292913777425660018736109219153776640734802935284691481910989908271396957553768909456168142611817714176465581146534480977438372866471649414001252708255419147851305842843519737330364670753096926451048745003599867469063395241112287078071593149358811675959311003606091427496045361311381852584721764075802322824393292375229745598285604540841479534848305862129284277134926183903646604504062726968991784516760249348933829837018166731552877054578806113670500159773797401962821401079873413586085417035966085851584107511276365339359476728506915484269606345726381233095591844796084558391507141007999597412595902721215699786860007547767291342518844310139310267203484075984667670591894663295991904265850074284650359605411578939110400972236835497064569760279358505758281279669895163214163127147675335322880117814743589535576594978369756294619848359440744111621610614345166720317245973447681648157595650749799131571728400579705681320040783004858285411693210504644062145251637810235952058234403643538540443376940369834290206214558026891281723952685196929562837895614886159627530613768985547084385628873158526572788788837808843287990282996250056727256594502591155580697220246200331532197891793224467474178417831122433452839050019847120855566285290428924908423862062018748699574144941261967774951578353621244203596176533190331836617066888000998683227745326697752266315782660736682580348384299313521968408708305661238042639207116794639764990227190379054267122047832072110367566252575943516153230669816170482690789836155023002631436135477774143311655017509596780722897795481641601255544600830798584114604191444175235257727989205016636926523351281110429188862984115878905051007905921819879913976170580590528840910151645081036574242988061664256581158757164922099133152697100126328845555280869042505260876042243731581819760874578050757968752540602751368368058559760618098375508608969583901231316596188376883466879357170496280277811178914724465198628423803012649681769364619082565751804818609241667634987779065592951519905244710767740684367242661895460238770364455587028461394299508545138347108004351272935614475513095193978347294872951583180206898475864005471934616142626058779198357201726108008319112770660310273480311109613495802067256989552377442510807509082515885590593452515236451835584452732886723884694710690254774873850945663222451079270743657122117884270166388004054538211573964169253189188152562801295126945664152130126519207368617206548306811889294461553774425572210725467784825751854347436364856633578821421780456869472415597489760015926938439295828884968016164922126248472036002640284718000302935866423043057918918269142079295209831038356799716220987331792596697254637958916412446879873764527243251860784836636211869500893089730738413875769511043095027538246476713335294617415344452101472406227294672330417476982605553667603934374349202698647544716022733171923000032365515281311246362840214370969011734151633614770328837362131576526803312949432343796309478330065035804138738188532135919203057879349251234989394396354604783225637602479688800249268943711901166987301463816713711471798773039721979377176461796507391113435381110195490004100069376172175040130351143775006009813426827715152516158497874575773496135311302245615399322287383647373631608785049121386327812234215011268301675536019674851622837249934333491031577390781252632939620981749270391128797388060551364559233434936739169795025677301046628328674175259800375343240134214212308821148812495202732166303340091297416351427915810396311886746657802566591652340813562868142503802455294147477724495172584388081227992738390518246440907943859204993045126760032421360326911905340443076433951852468185122426304397288363601585628296241557592234619355903692367537946102809326603106742826267477940961278027205194957712199422181910463189362538528758157332436137383002979201662306362582774291019141571698394099507013905134498273101133338724329472062638109180442923137114834012679530543724062745645137889433963903560456656890393796694326049509495796107159891188006713668635808038700855439969649965825403509673471425573910539948810783781870326621115944331849309611510135956688432148713231449239454612589696628708538138529662881844405125534391047200816705267024996071818792380694417453466052323977417909945832546506750690978872569210296064449568951057709146834830938382263359236099133352952271487108524934335209911053832917307648230918866004145103735920048598876624753233198350974216508188240704250152487470268234082681483380665243728763178029609404501639921594248456390968045813286610810475982073915638341638431481459779289704719849930154642914522917667470206800574228217123866539240222682918401346076922487629627785501804182305789296016916754321176997829275795028264268965438161587298857514035236347416726104171122800243489479313742173696739442400619449113450083786501145531463618967137974115943897377386166389317702733874581537041219376344403175205088172400511823689729470266565932949411126674244060293611380497181001682125338989065540601731394153892376598966936682968122309798221739795387475752906137206134244332871127167891341393990730799215759392680369663461050230767462684662118239465122109573082025221581702192260323336986913360401716487603322305232692885205029747564064523472267807318590509496833055853237371505660933867381524314906346695503410731713308814245256833934382157688091954746743578584251175926327559382750008705706172500852715766553696310090519636430207781986104539535305133308180965994943381429241395772720918903996828504163905357092552632635970417968669280864626712787196826722993063541356592434388082323785242587837579934153602633454263723183624540583767332942212606826954394541304774735559644225336372525402242024736791821610021985967250843259579190664065618646294130034769926153049524170872609733455567165844786956467324690772770345093215917368450320317110797412316168841188229124164731558183260092013616490774914958414255084689153015004871141778115850756441790131763659793574195427782293086179743685959554868726115981941067716637919499612969380970561576723894570369223511482203485215691922105950326874231666868482757105272267180630732780604348780113654359449363430677736650340527706025380947323471921078955175606975102840582405056889249288441139508823680788779898334776391187859752024196715830857061945420442858096274703276589445508492842632943319349530793567198666607835198862430484165504719956961752986246615080730847144497142156059250238196929408480544046571998971910006286812807883297942237154629172873566963414756868757264253599781009183815325974619182430125288509788050242721599707707595940952910312205882038059208139543074340226029105820374254083484353789519258093345126419161450374143033484121648603954063810732221695402539271574345363806645992177842826448729832069727093740634156804634490602425493536007764167070640433920208486580348977965596043678738917369568690182093859488008344888926686146608556862177660412281821548413908369476566542076031527686676248845261369657366919743985528527883183911219260368196270776848693951621012420102998909018376633667912698488634621237779874730407329391909719949910810312363667632688501333444280655202645169399039338145265143630711911674475637437013535955824387613861943957070455188941118507309916039867626262287835928195061226378504025735163098627738767353916960095002394433591665920052630654377497420209322694792111120991003526088532142827768531626120170551868731905065191870051240980717088998540387982060923913560435096422717487448348109523412640429803217620244523004053919054941760293823814079074385434315319583250089042711352879868413874945925877490760408017769216340660490034527686494076271109917936259661195953957902086813296769825337788127469814862958070733428795636114483648842802816738124041033081485034939972343597404457960592714216633794627626522283963944179608174885934993014485941598563323461524483512620096396840358367238365048128994368409595496048673844299181734760483983888079501261269644835120450460120267268027191062405065357729486983198353923842888016519016227301163356686929217700053600176316372374158897605838369099241399030254927167402677998266981563732622103086515925603933339386914468148166957523449717307725591870337789299126629077998271564641059867645975310677879874387242616048173050644509695758189931682159623016925389788766689886409053443888372102575521861220195154789605886734178600500450714425628019674362661224288133915953635059019972611802608910564430035851557867672415278390790310262538398925521008109695454280039434321416849454619819621452585573272978305982084300845849205074632349372905875773355685766180924149867552202235382009331253554155548893002258852320714537366502009052768968856840641777384969288410758311973914513974360193240758787984874712588079360363289423969989986073067672519070447410392149573643595038619659797421637298058162370401578124816936446150280426424055226114182622102164396293274216798757097451970128977295212918317283686619149775955200523870202158443745769670796916563913706817205378224178245399941456210852924077005097436981735987624610273031868286942706887283956862566674100654496278170489814869905449031101309527008072455440095839871429350070682163385172123208608437760783286841785736958296920599128709097952928687822577395649280404045217112766640943587154896028255965446965097120957092723357791012245150507243840729857106786998170290935759453112080616232330644609870432505990378560752748927988007594360978798295790056251342289306684961247754007404256732670485411412147148966700524193901364142268448000365628893027591288572356811048571188517563168682430324973320770649238238233947570356510919850002031826518684489387911548446620182212679268921203518679694661906643135106983349487021883740968967499830618435615545468841216380644817273813887567948795857872949871438188539750769166496971898236339922209048450122214852421675170854299264759939364894122035727743771906631899666078129183951055148660136754012692565839988440503616155377811166386906084519179796492234201241269206725115480766746901730244168567383545265015425990743595221694434033420586167353679912555130208656349996652594370031304327109486290648054080055972731454076705658687869855694678028744140193298149419380577916261336043079765865528420968172284229708384764620124533265547231651698898509732096629822457218053759971487537662841527130264215582245385085495331878482965991742450970682466829297179805815580606200208805866968886148057388827379554352578237388417871232549506537863996687093036898516403950698206118466783727173778935693713447068026711716906766710727753789578294837088207190144281804029782420466939084364874651420531550959965143400415430599848659242259020065204677321587222413931081361742717295643999197514476746904469470864325228294901553877801634728556775557580783923284700490716208449507605556974462190063268842527356010468709102738882342259116493003516447784225609323914199069269597612836712765238077112095170704161654252021550900779227974454385921167200657344411576543642116667736228709338865824671856293248127090047698801203720830933850645447170995502796558342807279907364015053439832616370668435699527242493749482990433340860421135017121108144099368910871874425588124554254343715714900044855785313892356847176710626459364393362885289127007320787649383671683693927673623506151958020794143640330625349502839999636658497438220358956516740141679940095493455720814522370382013849841513105767547843648694152159789628687192664973569533138893415384090948597938076012475897048730292693786052355645011082174414560340930562041298076339577794553717200278707761349193405457374040376859904345701092335634869427943826293287082444040287293381178643055405407715015670070016804155396102768277148395756870584141051723115426595637425574170388240289021284884154950604367419465148203175740268614358337839743405919415366401776117492634429002087548209577579990819775748178867017098771314195954732016335270886239474242434222548426503021155999333934733363290990479587938255509206599681792839384779941986742248323476235287093585286005131233749337972243408205895229079355162596933867419784732062651810132223769893867282289768307976334411149501441413563020545572116813674384171774729056476515642121096114887562682018269970463692576621498457581197471802446804381794848659604225695976319061390776847685874567077305104896928739465278791335713676193069271315917464379090032939865458227042275360323886761598581879520077260104058172973386657346822834965814312047428426381092461728171404840918477568692231030806686330270333869469532031827108240622525927127378436539400756492919616972339462749780358306162713576612628369366485431361273156512918388374484286648516418726029158302176992636307322935191832755619137976580816891656084875929617187128374886947371143290770797831722136361377607394291080557262995369233729846021195203721891035516070716343229312325960103009390854733596995873628340525491631751447588796096745902986616303603535970934451217792947481198766517239066225650292262083659936765653898772849742044715926530305266777699354223348090405876148470977355207234726595097124411272310934311855390102024758943204094167333943890475906776336731889922466533156494639072477689956217691026723995326908694170450327745932526510842179678567275375269829765148175774689278379960562795946709142653333555676026023107020917435894969518542625889210304263234178147424649585786300689147800300782931722990420974346159790368277164660583195739654849819200989181838355897047365515015227722614901693286964694984973914079584928676681082358697661544488986171707493985259091485347243968006848364435138267027345849049854140332292833795700145384871396619852739212355513597113719999617662683818122210458993682521265317264628517666186636139902280786677925588822692281754794534824255478875036995692603964488767618665846747545170003190130039890898220104129531135509376352977122658877898483689546453091917383488512278027435312568114170192156327113486704941763797820926440909558327035286721545156627011961121696968417474802508356472036833048785672860090506800349061614633280631756272792903968358783538630792220875253183703986548418944255290444399307277897750998983754866742150751862476010560498929818133036358019229549723478507704713892210657746444686393549632699746688361988686731993840807708010419073969989845361102488494254657519726485628781668284645214719347877597671065345347087727447598200462558978803291592599024730665113085545740726913571668729580952107763936716034327316517979596964343637149715431499131189475164207026458014099903715805073019234098757207455902744887758890606616001023323443604666013076707437692411221587144269764751589988194305382929278523165251255221937606796858108764809197577750923963656895185317769054954047646455060611689963729061360153316063562945573593753782592337465260246093998437804057445912566690977064153234992849034395836585205685280801042365130165515524769196888651409497664958286694483680446729320064198572997397959253187714966991981214899461451490349343106288906341562649342452039045577651521447791499790900551030210246437403236557450621991338520329471459483623332084722589454245827751371723405847855074270836760888369629190732847776780603595595757946107119667590013981108756257410918166653706915150370842581635013294222071847735689719982004499359003320176339718616374037398519781386261414346969937541111526791319493303701925775730280813321434569976223738074683479339801224659389476390129216123008612801019220332121169561155198415216012203959333491968087930465115733487026757780433504973855238280624881075161567317299416511145451535607875206360299174010891906610638323218353648275961845673142845692765265674143096820848434800863389923839032023638069935383869334083205032786504911642426150549543573128549626355838374369842416235021714265351167570751506235951896765342183890145367336184284095706183274153460814429135013805552969478662025736939098478433383295492762140000662744775319314999303118738861536113429367535227424355526040248165491501594380448030791294997294431123512893516698180875792975319322508141437479554284166760019663604611786576901533380262329095661647527528541398105671411876576512489735706426198564145807436859949181158911138298350597028285662078643853361676464014484872914673539299400540347512615403852717935434810652907898014090219531175613904057826639208153586574398626839834917826559926550704297174486594489601520495012574864070631476485295371548224641105048710858015476801796267421969353299975250995183037925448281093552185792880129010194367648281916615774731514868355993869624911577620303538793501247695476553575209286701423354488265855007209025029465738260727158416048659496529940878395564744664491471200800139859162927770030000851824576241665061903541107482231959830692160062224819073432892138467204918167098394494345822807032561755904476702991615988603700422858319811778632032990417218370225350043383826904531983204365589519602096502106912066268097787715090553777992139543874800834098568630590778941935200166114395384234684643933196783459370396619919395824460568648098107382555100593839318433084902068149244628381975363584883262093255006693047405607644194498649327628743239556314525394973845361701523879247604072246700217212458243949006561339167713798515382724268006961395940094704524519035871755778277339025958464063769134306397319551409769616419845462207802214863584208399020230827096424666539581091318148887509659029932404516917142757167015115579802314670154015599846062780973631382779151776419490883249650520065579379961490676067197847747875358268767069696646617886116050139063745319860148255302076011626986509732986405568601758737112381618399199379626579369716954652616185776751743014622064363694308923380339356974359646135803827424355032723901362891441873604574705770546388527377750462190332186663502547941838896084193266672652339798651973631897921675578428113335789715286902074662604313331732740327637346617240673289849217478997573490336822158672271100351447895806990138550129694817215114067420807824992134322376615795646483032918888508542633594346894670642965400557472489758700922832863237498512490531825249857725129930400985955893474677285760502986413982685080767648199538236847286863292308224171491485153168493727786607299870584823293336788681296787943530078850791476929876192112783452183168351796122444856559210894812221665912035704192478106080576628631201350367450544288170449529905958491317018411665117363182352192974848994378957505766723226045916958895843928896448647060037757367950571675317482530158048030404358794672480084096733489778588858331694627621076833099748336517294373717761834311984352652494692923883595675404706548497218846125136913241976730588207501044835845699979124834878161187117788214277906387735284058906023046806445076743988327754575846806194535916440278912080467696548896134885056130485749318957991348698050023367997159175973980628259937699750587156445553106747346260945118735956178825434193540404566123992536763924720312651015550290008961317396079451812746127427923916542090212887631405236038188024300038845560649503287600134799467043495681777864544920347890490914333845612575609140226208963845550942504578956359415342063781389431992168590135112557630395167622742034136175089974100722685791321919408886644377294628648041534031834828378060117207309051828475043731891397095155323337244983325548330592165607025818128235275821858432874078825605539968516544386876475677842028408051856452406138647726698709594879575638768991852509730056023261005639129954730099480433481603427111548486012171006262004342313346948084629953627795457606642293828138284661459276934162292257395175960445740627900626864238035928687576452159034772752421886654770076624332690270912771920123218975920905562986417040961498800734827695941108834236496248328586811557497096333817703172896042034476105252802704384136716671242059884622300140866146824958196431472823378325291954704429204776904685277251358431049119103656451031986884796996177612602038394922667803234114753260144428096313377006617855416536675862467839097399099686177174944423233045651283851650250328208990650791318393952930757938247664520563804620694173154627302492663500831659995762607832743550603882061180732748461579838411723976836777948979731257405944553664693593053775167510635749505549704335525324205538221763633056553687380773912693339308017757195912037021500928104744997578083997655947824983254790018751465723533223225322874494371661568733275084281032404863505571265630459685363717793063086282689176932489352150811744429632319750089447735412394484706395256790238246693341282953503574502421967527627029889248239463285285779818844178759490871762494343927021780835206730540485815071952084455221096187854121801322315112303045023864828308214278130956345808205364209960037522109527480159457745620790057801124130649735421935953060587680349204597260823356060431957966565170902285918398981845723633474668596738402778480328403920060528280940516930154201087606804610377514309872840818197083426842660949927650750190140095251033298849903687302592038098912184279374373174027811735326342061028661374528685901625374287756895867726280712231571689390257916892691558452258345588303381189587359708447342010594463732029338841888539331263393018499627745294104390625362146411710367361050075134520594696437155670140535373246479745077090369660125146459367589600846017213002534174495376488591372822193791408155627956971088118765943758386059414017002240235320105343710536837800185510456722539730840965636587443382602868791150242374067752279472800679335275234892826883458298250149465412714069147769863381236008949131158752518165991071997330676965833116067113702714695945094406617968444436225629073057982848170036803068985392859661323558435026526153262458013046929604183266633315757798538458285280949903068508028505665644027147723694284859620723164066531497263440851151089986868454933692098293458690822875800405533984533450368354583104751995667260866065222208657086314663463947008455760477316101508986850170148357351640857291852492264476856176070020008635929562496948812161940919017708948106303159451875587021275779718665590592228449314818129233855564501881990685290492997652614289838540830204966932141001935072990598056773372579242310998661634926186178946281842684165853304825185737847356975433252596801378417994685837463976882878733212688113415691183189045780527814991552992758162620316131401338258128995382223212071527163590070152358595242688083367927356387712799028351457043568662417684634920046949374349731573540590052249067080683813228206114680181993575423377696444333982323359488556069150387217983060626578572843763405082009539999098212251472051342361832188945133451367681108556228476375072247284489637826501640031577286606992472984872507626898794528138757648001662019320171806224249471014840431944298464879246702686768376333690220860954661914420925434046912974412355339174124832453400895487964322070735560644316461350822946899984371809533214818367314293624866594331437218203347691665845163414813206269112740127830130700470465991337606443431556759452881289947300681484697619054758554592543384369310065658111218059026757619562858351556175549699619083497547150506427529396033614943917985568249653853266548171251347122155958515098177791858246681807089280435485174080868423233970486951969243795724129319982964645942296045406723058486486355214506848378749888315052360963123728440116247422434312110728054661150801315084310947940285261731462777781565570733536724407741324413197707247817657009742532266954457677044780094346367909577922533162618587806018865150992473951329410153423575375081127847546394587985681907742031406229812553713503206705112530451991902564823931674283484679482257126806048614988903677484685383546401646736577736187499080930265242291897215599671397514344817929540303993034223519338548873526671294931970901229674326625901599778565687007082699377616341167119011244974431768255163553925221219652586567792624414789715883992561561658494093584120977251119817507377479408688203956292119689678860529449268176787213854694689627499302056819629021904727370812178562424673162641706566271619312508333803884904003018781319138899757185964309056299483884011445717003328016223851740756864234300693945155653217097590906932504689609415432037103548638299525017170886652362123206545984125417483846031196757839168859138051948311619724454583155982742425373362439272696883844641810711001948293851671892725954913607337079251014312358828615269702849993012812931714318135786861027093495824653619393442580578793574632828961626743388871731566433198984906050338835658986035488918057458069538891350667115228191139435154806451225693279032770310522692991035482176704226274623267183197024991335852220138538950185301872978725403315548704507824248566460847087775341521397402465989790560636857903005812350424232998892828737620694130819581069514789604230357438831820200894052634218776560639371250467679335674573402999240941650092144688259609036115781493235296187301968599017147522060571271470104813197669272125319364281464531375124967218635473758634130144562403739687049814670429206399098498311900789663110358641187767903075216242137031056042515512373362766827915948743535002288920255230953761993933017850773728465194694765701875705240543103189461304788427946330457601123884776844619138346667393990357932720731796221735003659955605426825179490544244356102034672914585641158629811536601075125006061546250749226772191463133492654599982134664041994327347345353993678936917461510737474741195178779560910572000560779426981312512447412651740826275934506548741775410970376970233014837023430883680010152139000682659494097354437900423635386846662557812106739711519263671383348829466091001556759741016754799637873892753413940789096802318892388868321341385221148279389744391236280133214063576371114060360997922558886047601099934201175749222697409917870239525603128067655795334877956286542698954179302346704099543788158825560942563642157746597503428750695258569983000464108906477048399668768675268827948944997638110699668878044600091184722961920556233006788629265254797366375112275435761421292244601238814033602534241661229355522212481362218347643476140962925468010213024629141150707154357499369097208000392876969296076544239221577564018428813474233050727442275294107137920874090953971059255202830418747717610877170608621417269309726859925480759510912549949439310698014908626956665340696230067111781530488257691388583338458104019786992030456089778539005555069864713274980316851245372964459359337167340289488846220003374204981727774848479335263256611776579856757164363028352103222010855376198498202067078365297965460748309367723956110811751652662930817303963067427688901418405145967308972690370494076727541109157011198534005953615771745861108535543093677850389699336694218907118132587022452120450888095667791403008674372612230155863328789382206643371479463440477451720442867939114539025938001689196160264805761924601654895595538756105169020516012309667556890028048112140269918214512546762368491994320166276627310981642797705946225379010359336259540621309196314790731250076542984056000315622244721772062646677896484194552054273869327906889966845102821987916764941375630547988846151972747399908385362032065735315554410281723681687364828004265062237833431774860641298078165674632843233347535843362880146699153362125797781400909081163904367413281491064768494268652382388180363099348665182229171776676399102105495475015902156285266293640771960777858727827481536447553585147881533477897721243580371115444916910158321395823392773121708756531737136533377960502456744192586887579838089228770377127832604099399413446832555478885088486780466099443045253810143176373027186572844701375212088161221016630722838968068563558758161722451527489336887028357814489113591243840238853289947687737206217332920946310971202282225281781641468578680404473499710024502406331024174857712789430864143893940072550140887533806252198866809300994058018606990675609153654923796751143877544613569916927724422844761393880810350879441426277621181862170952544534227953364707978142045479891664960946285622909870288049332070111905305991558774760457845801653891845231473298906622373857499084015981192763793501227919808081314028110684734879552785262248392937599998790618111355734648469978987936328244553359832167385062114171238644902561387175907348154351175838051286695474113087369484263195264221901208342094184491152791271537326848955108292379600862313370923088559908055360585537051621084300701550867612171345617007294108861273698409633884786658586369526259141186087531813273653477667521290295024834197687405336346146121447212650549996809397888802415578176320750424389136501152800544096489181044663792933717404901372524431422736170623854166618625621879000007179573382986673499340074594107800575330218813784274846094761169947985073832602501473391531432797704001318722920127713026177247085781531512252894541969740797706727014259203647916734699389619230150363967611207183728273565427733571114427743798373171115298871879941577079532551588152681159694037433934934718995158617074407225373130246315740002793327688487522076342680588740198227798958500300754594442652220784351732167733166020892863194407939845566923203439270975490861589901472872583838905973963606059425701722689087876416869699075339182533888157646144646501497761255237125605027256344856439100549946723984771469540109213526278878061980221059385441394003885546577139214061244308781355348478879806057779104676192224633567626302235914331956297692764852630680420511160930300456945067291931956489827781010258992448794412190367007047986526377540312727581397310102563880799214576997228685659890254374413001950567776777773761844129855842716953251773014585741695940945987869290905003477768466986304340968397745295490412063844827766920480267475455840133780517214852189525158163165175466964777851105450882148267435570367094898970261993765953384213324881434298244718333627750873496266533205634820595554987874586525263991365171150434252938637240366584544957256163821948475880318227820537664394871934222762293653967695540824296074255048769860712053239842324173692287747184450407712961594298030002729983774123510220402897159000953119913273411623868754550686823035348564274907912138611440520689064938612685360796956079750579775184396911278968163920750990202357499533273915688633717308453480203092623573739733256677919817024683823046787349309899313254508792416155649188222970594105563436157037529692883868994211925962856903927721122775268322479811834996460257275638852693820528766981822384515431016058937611262563162606715156170257756193744496414419109003578807302079671043546448113296630977290941398167289537015335453789835089526413612854492504904289760909562682782017773476590633915284423571534186878451091474601098845413710003459827582448190643571488647720165345124087594084307526078437213286167511064492852660906918515560950434199112520239222661251205719464800937918747083288087749937145537138391050952597393913367945700073570589276683198144397828176227776572775129637190406140006236109352703206354915940470429638769977063087751032405053466436074231660190244476085953670469787583418927876283904440044266681253532874445188545334510490837733277304635077468638153599513201618638402388050651731627103840619201971474102978328239414978272988155511149504967979311433345151118310763714522679549214886673403752731767875507770737645144795866892231370946137830109446443877219846352980604611569741905984170626328170865086093751229959543111332503292930740860764837170853136344871847687613960684337833122980798951027167882409157974171088962271582959581665150200425696830416562928086907919591268988164293175488084575467488844270598999083822481608695372533146300744035011601325624258516663730508349204645487926002149346865512558725684199024295865059361965586287264817934068230062100274483129329403765607131036223820346978460487044654681867716854041856431527453299725433556275851357120189562806410565247400921652395815856272567217861286359706538425224525191619694011648980289396959292101672611724158753368900126134942583224782875410831348543310427098880665885088187174088657657798217956807986967801612166678306033435768847525645334762769968779054600645985991384453721343466958029556839676995690427706002318797018153611337724488893567433755098997595597844586541489393399872576906104112453872419979883736370521483679343255659610787674678951278620916050776688729324252706027189858813218519129555865687423262886168963918805808296074583218128853761889816535123099451355002214804175714116747992239688340198505537434774452639933908389134488215551944660807401698537534530574435545641542709587168412293728626430239075724791122161369007387092052685351883115980287468981297774106951647003404477766529586637021659277375210291355815563646698468940609424722124743413456796693140615031759655610115453042845624355254569407837025134744510392656125533172515287343622930777453393619452917905411332600809016946496544780299778197772733455978651084178669955701829388397052231796830098549408082684731120674932962567494166909194086093078271706796339405137312712252631232653860378177119195537283556711317453676638360474913240879075684442597953809163653833445869901817519432385864945712234326093587299504663984232059546851548845197116205540478138428859321096291176356158299430915855907933354080452897401348705817651990560558966103924147660138633693906084184614462078573121421322670268310688081719250570273033765948322739333176400275332588395616586283607020274981025991220881290860992736001503482649654509677242419713352842428818630279700971994448483825298100522387131606463267569711617919354700592902323423556652183818389532519851217846270392580104922579149125157877113026451757877176226853376272617803201681207947521322298279102023773699704252660593713076766132447727205928581397006824426745702657962144393651791772669186431352635872396815435627508603292431195712865987978023782295384412882885579225651941775356687219695303521101779998352160234060006203443899241429511820067960582290181731785924231218365870563820373704137924210231860697378373231248682808416532931456168428098630891555387273097889818397772025109206694914747671958418291749394814272569427737344549204121156494390846950576168471779356768286128501358485769238865819740943412946711061848777965028413816052501946588212647764169801397407078406506313212453790427760449203598245596676945717322131377235087833490925937287554625116887614537276991334142691945310340314521339678129940534860100816668228522815942116211188716356621964210464449791124336932549131496192460453483697699195198444903765050790439644362938865466501093892035238099369461377591563016494840838105390762587542505529380628254085016758602813959333319833224375249570169223191050259412069095107070679253165362281511598013721543674539709235100363980338905565726904085285946204027541373215107753587567491963359061470346194868393362112478250478903528973907291940657693666172477716856464640578647855874187208421019095076830099658159792023683762268981471678864538157567475941992004243063823871629684854734949979051119319585370382254951637357556318428646898596668393993456734845743435303245500520771250889293241437355468532314870362800291898739029534986975291176109154717276400075612140723174816378191774013222794330334709493054927804472337339436773446296169841565216214195579813043842056878586641292978704066952025030763280560351429183575074567670807960591430097310033685920064959724307593078584543272286648567604375214890473643306323761137898276113826395667738385194277170454167577229857186301548561344037818582597641532742179776008798241175222676960975243801879593798250466185160888493574551100363936189155218992503587152667520692904801029776469686367734207142175303135867502836190136936456398198838970448503653983562033309203921336934620722939380609590075940976455714900999052628501964179726869319161780731836670898962812328174564594496407927592620165885000058398492098329733879564691507249220297926381776764138599323910798540361719169241658354905036339749677678318880911411005586329578026756800914481618108735969003232068763546857556612929278954937462932491302454356341399956447130685181684396921626041340918885138727555522929284937542127466289323529471048367093597664846411986225587912749698986837547007389802520279730583568730136003221272591123871657640753308520891443742324220513231946615918694606804152324197626905704203789983186343639325048390402815815503146935843246610295434333591087083010731003388870100313718311143898778915626105056682912724962472980144905100542892344065963545429391173485176609722714189228461160698412144715425946967745244875541534943037819784927580276764951050834358300284270421418725944641692712795527001026338195408541950278374170414747802405890072122953874260857179795100763049272778343242834912631387546655149062205927614916360340951742343425201752953477324641179438548087890153634464003981663413405333883936855811823055294981804214323207108667838576568640165684041257908004016769618031254427072299718177470104558037106108485677332351395742488735333639181128488832667385315793032803532664939866403468382283581977587134445836048066998112508950546630169599452248269932218922486674681577111422572244123193280098340868936766116972761788754434469341751634146768790438968100478641073106565591653579547791112587452426754155525375424464175538106920155748484075981672673249411784617243961253072671347666758699439996432888730685837771552321769329940787063317917682285481522391591495943237226663086801173312011584514034055381476409026495480483354333208303122763326899499776441567337071163135277227501604520639134836220270502959832015605059093484325463539808983996940372677600900552082463003967098085580694914967996711808424139044039964733030731674791157990919098439984121023886438365831405491499876592256754474435401638560244525644938722129808295283621635762360805026993340771868548176640114029068750616214451262196171829510384907305365277220846089401914305013460948333943479159434745423893839281385681333463134254267618270881702511905418904240789476633815970028944757475068332859382968163721404905135037622582244977832410294696665571331489873437151146628878509760658883467894399378522990311954505560489267536667676315410543526412598440754674709766874200474345528880287653029815165984196124892628897998212196143712642571406484676998896472822252092900991173967538590604612374413015813534071372411168594957233309533656956656168517323840920383021388002377590736304105082980408020418002221624755442672712554304576138097956432089678081965471911440110605810616841150218381250202258201869070083150482079975954343616806886278281248604384911174606572767133387577463738091008309879226422706808352284616528568368533571405307385970335190856022278271745200534290373422373098822387699790428866454219853924804046928444145407321867264688153117693352918673270932123051292798730708687999370630878875027635699366724075263829581187653809044667905987193889838817608451943391138763718495039257587517207807440431848230763092307910441342880011063084547461195720931880940014420478539020673246060850591311163560091990129563192752878076861841874477982628905126762302852857385472829499574643770087385464724875117740780232684685502937643674777046844565491739717264657905188278231833577509007458167457276488041406627497286102280925069362631314284945699698280731385569183186296633157908101639953603100435466594064298803502392824068887884623394487225823037917259305989241002516542291110521231814491736492013825750495244174611567293663338096501647551599968192774480371947556095096319360966514903724359322222801030403083764227822392005683397828744784482507406970312017832202632218937787764006032209158064835238795553530206736627641617974488225062492194546632929588185281952461579662139739722936631849585236755873722433089633377728146915452729335511787823900749800656883834839189961079959718620508554386575048256426123087213153220158872957011208148602051607992357125814400518878550034166321444477026521952909393876983204290645524856245988135818611974169606807770309760535068263167820407110664906481452535917966258052255732019658884982125491942100145728891207493152234516469783449133689880826257217210816292554330598524623522915462800994715411041613264430760726049259758053878747860346939429085917892871618585377227325286441303521848974023301964941969554746340347504021901463032196061126471629162088124046684257841023370114979599141461143294235949936105844459702638379171006571416598070972027595726712984296923497903297930336411005194999913308361227019311414462999493586892087899833447072850731230293857352549744188321479292407920567656098022605529411210923599789033965997721677071264469111292178619009305078867344342964439640384117136031444675929153461877073120406053868008532431027428936270108465972003410324593347534850815170725797507816905814028687100230684628586019812885355810270143198479964335684501563683388224925336812260485579181604872063577136652143901103705016009107568290113266432104783369571930474242208206096077065245983688125248478269534280674920612855080374724997533329828971965115466888261051241030135386898623290653617497650898771260926734631317684214577124887706239554661948997333147261578534203701606301955182252316072644102120757556807611815660718404965351274390996943889779342813459777117403443729166096860013730626504165161394424742997382698129537091630475972429960043244714097423094299663700502163440830904636199354414536008114063618322210471068938389496612172998561590985222709528644482347177498808210632481161780723630742871267537256581734864785153894162048852629956394738930271956166679133319535789927551487117187907017620159537590528009960695896604416115745865055849210754904716440750061106585635234214435640535990727469803603040181040516640267344435502986032566680522174722645285309187872393890228163961228554474277706884931257802320729882535579673166834876718579879620164758971826987122987829553862730537784118244135094625032707928864012856606647061193250487038739196733377251947768483018836288639627838942721174758707809652312718884198754510423892932164137321260789839012632687534001646206304550091638843077851376047992431940540687294509339472369949786133163958635308758417317351739741730053971593379567732255567568755734295219913677604463319695081617337606138129204634405748896742224294948832235037044239898384924461287738823831601168885674436398873852470359970058752940007988720344579493970981149545802470504146585947471659741774003422633508371418138654721622266288591568780318271581144276783139491522623074090254535991115065015955043502980733930063298709577097901080716438698642103936338230795575421034131046883796594220921331532445262311224191309494914770095212023719959090546788992571345843657194588085201264440450819821026197262082639961486135586315945948229959435933504233538177589289221512367745833796072534099677173105884294070405139803316298228151273843650649998488205756810819140962475559967121425469289998807256819176999673558927422867088940537448455199610330975129298122928626423604022059268052432928999903214000693390693712085021060481722154963241073911322422186784193644837958472060352720742574379440084257534265888806984136010761083095794192080977252721375608456101643769102204767410866505703242007409275673785916242179007982611810289789925058697059975351643729447406916404980304981487729035894319749582660214301530226383412836547264830446286557199693821667142914668502351140410232393971085516940338840537222791833519924832777814408056009668894845545037329365288501666872204481712090399146736304275434318175592404123589636107373928751755407847399290468364999723158383705930108789499430732762710357744177081632477993526441300820583142672744820824690436824845075373613441965684695963376154730980642222695805389604970641464993760576729877215705064245703364897926718021129730674737721156316103068525026459438423464923579650577791009338530272828491939601315164103307774830841488225804038389781263808548150875841961542287046373977235374702463564576388098311390908900597413398349683103436687713205898082747208220084406922263521149896890094944227313698358455796495563493154203421982452522051544454956210175580344159664235326301463613736086532543802447051481769112244837408945870622384879806845582015976841150495434609014703846285351015575001988797098377786540150758013752452373979394084810524900676260984181770015491312787591967717702900326191985652039641433873469307994214482033017815219245896967866053620292709826314494187069704470788508842910364887703761433034552017804875908652247889540842316583263325812682565257299076889622457100192667928116318661795412209034009305247356999346326760695765820901893024233990863742510935965477422047897421884174389409419767531354699135319368225411007786681382189048479362114393838654294101216157006297596447255665264789335716129673578635639220732785748157941485690753882564528383450711921687290974014871682331316220766386771901494584487279404454016039728989166835935319108664243055690363083052603642496435169077957924499899998577346198102992980393098756325476301061245315699264932364481455603814672607380519058691802948640124327920972306889667090099791686158576213900271096505091154542933030360334844010065667619742827621707857866473069194472347009056036471738405415151811911773053929798730666625930069152323450417330061267873155616735311974820063931074606903056094030900844383252127575420845082365632071703063752350676630157314929416392655527562325729658269660171031515194669272110863732881552252891118314370418654343430249716761660402830890263842130966579715197849946039784934324535972711552830027157737206345223369079517945511829845611559323886768041170025091014603270640458516255426751664952501018636770917595309336752430347801068295353682487078056555603968569613718031869912327232619240750443607104517057832001569702315077886231452544233732381219778838112593044342608551737172376506599276689605711729996303835038297968688076371728712246627575112017184415928770881343130386621641169380482632375160688314797823130337770661512412072461388638224969929164720894817211437462321180767475845301797277600348317353558743378116876269024275998175630223459727395696637024256234860076348742197412544123834750992344893740816506862450303361524560513065257551075532073515500724335012030111042084453711648371070700504260676100036737303456993395075686399145966589323282116742798422977924343145925604976567272941623749409216619606372713801540541976979930980072581383146602493523125970117830126293704108810270309777130819962834781587795133644846981000543909881924139377319707412604812675933796691493759177464256014439137537123766698272258977225653507577746377971142095225613311314189313022701968517530819438259380690101702749101975947281042435776398022471359956586898803842135579930448463162211163605427956423266994527056815372049134600136862235085633566033631174648807020410571629708395399937232120421635438106319735232188569807126950537270304412193748930682182689491577306742026787965030275767252142814582171813094441555213738135186900583804717525086039390820371051168031474503158979402191439744680237459207584210454214694415890099607443851666353533844092612515753448217348762812483368790077845982490146643488329035496145412160135133213943786492562299406813637850595877480797173572378438847063780157040592324826466625367251583236035285377555437752412126333876732963102301220781953651514568939393439538292482892007126341163393061678670574807615082426479345912059444779755131133120572175303475221921662669471002399422331763303323120958462663174462101124984550502556342845177646890726162072991386836184131319136701520031232871516700321040278572890208046470700007290544688618952889841111438422772614903930877544391899357163286166429803499808292923790369754133232979387185371635830027969925117407787046468560634748809130166869886398567755868762863260114149006691024555973794869454147456250638994970292629564302063592041767404858244766029725629061635217130607334161639982071232557940663390526265809692949279097641236402283089011951094078522653378839308425602940510324892798919181092469393059715074027259355530271433816028339949623748120106266115949713327443621923523634011856136213382020776518660325506294307200445539980005706069211612041834655889978490943063091320858920377204896193678667273684839016499801650719877258061872909990250490234507718913072176453255739167507188926546098152561810476566923451917888732101147574566063699309625424997649146977437159875744230723999440076695769757371894807132610486019500138644455608824704711815021181480747353598451941579685549512188490228414979040403310537893963397035846944121299303435397281014765605986924803908209748819121767880128907072492456446097395469825422289295604135799864989817642255255794563508283270064853415830291471697396223898219096294276034990232182153334994336768425597146936645678674983833103199518588674140058376612566539844370812424805982109995823297050477736886083661875909912800646879906310229588090250883777986214420521251094565406852737729079890850893871097800162336885646661773652729178528807740373410425567898363561441128364310139655838701037755514546323831389072639239137129848544898563264131603040878793629454702387366178459636170719211430431779905478556482089264503024070336707237247208650154151288277713047399892788817919106153982220190622611588667302140777840342600865300810620869625739054620186480331599621464353890783242091170811572659582824600032809294140220135331276135139269093147852267372320429531405649848635353213344552985497254499382516074696749910935521808677131237900086241526581571221571959675212526672953483614489308045259402790319768996468100870430445960992757018446941145057962766715529439734054302446732349819619253849328725963437928253118089981943395416895325124408447901062413068581397302018993875417207929867411131004450350765317092226179348979969476959322436766220244062615572111535442738425976769155280462503258396604566876643971652654844831027061999271827930128136199915679655756662714345920210572182335592555754832726910064819253054324036893052633155204048612814491352197159592498644450971450746020015464520105087086712896707207407540342920335458342181219344891048622571686774024254923942605374726773099501975109739668136794644381550449658429023904802868404717632556041404932283385920336830378540533377072090309461429704083390685260340577355348291393593473772416209197729994930644898352501864277655655936153350940801582607610613860077767041151370254000512070180717510012749800094136161029614027341112801798726813931208455534113158873651302687716204756554228637722708741946473160302375348342155703952219131900773851984792293861714150358187195206984418068984854049411798422121785679399523988559225901561130202112239607938861978041536029609933028633761270194706307487121248198394200287707938272941539571236070496086398485023128022887133767266473873474517844036143074971873824704340317945739247386732305818200964397330518489360237632375726380481580542010520111227283067887927152485471852234458407157178258310384775068317631034757555336299624178529409193533850462986744524726350071921228653500663458689598114923363665051539366740452894239458469194666090833829059347803320670645153100451542823090393528241390773668860517654057474751790055768998767919492155598919732311896504702440022547521142450857811226990847872108829761659979399486748791861489688299530304847894425941979755266760511086872120870159273187285523819390982066309089612580973324913868480605015922307368030078613511148265178965749215255403646837884451490282118980913109966664480775734476716979522272472576926632384631078378840343194778877649474710495223000524122353213593849211311772775529125956881217492245809689904460078364213646793578438466746892869398992636248648172714947541609967292370047539587826816353896675295006623474035552620016564290804469059146153276042700774410846258967807340622997026014464797208319003185964771665564329600090901979752084498277313979984755700306683736273097356891882936946124064734486080468512055157674426796493682561482274283522848424999056039815000922449433210966908595924145542849478860402345866021135814585688245336427023784185415567783942085630092138674187072753721751885470273918169073801798624450033235029054562693670569247795981946515877765159303235014888487517879570338170321661116567666702519524466179614686617221249324706920586430940877161495244631123998914397941867887343657316041768346112883801938785400112552472402129228981085600660165302251196741572802718157029175795166924051372321689096642963998399555740681521715722676042610646866025524672623969997232384256786993168203535548215827708002438981689085839753526169926971905669180848138459161451744357929260614095732188379386343690160717400482640819043675314877803798535706155338005367572473066847735361275381436715893692035730965442737677557661403341887606654320015815542393446439226669771306180981600031148101225811661023768694168187714793821277173931531749965560324571632615155248960599537491161915614022800049474423531387015613952334909535773949856253468525606961332493742336818909208742592329603989978671911544632143399381187912020456491663360440933691864837766506099384436944913231744006084811477857782442129532861356887781357990849050789502113694629680692166945807370913817776615012078515145552916920660189464174870415796132901751481690156476351050180842640152699212142598836948782793869690355248829786825414400892248450273950290217923058436817874284119152598820138232039527066311999409632923447620462934489115954398497230996941663338314089054483652189814219533499863404902463403466563160863317410609126709037514098748002265805690836832606842315365934694060889558931983882544724414566314862904320734623265472477745200792219200285139654683068761497982746438505034230849404528951127879569063899099108301803938664339435931989688739815059396289209611905284528024598382693777057768939528391376960499315797140740131881725516418221989398776347441389873249724371621888474342898209045105838826193133749357128766517914820844526879269014266084845925542443341550552008720194862099138925773395974222692594168001785012574964386621811889857437730764318572076771556621274421974190013843434162945935491159922880448857509412798000078226972337990150765948407858624707107495909199244116369815179631172034906073720308943256080537632359840842153288363965633327846878333101077570720449229251844502639649171095760841477563956553770799246992596714424637367103327610546335824812165098939933530792783827390918093953720159601326527261833869018421841990007736413930098849902773894888754892453811294203886899306349600079684830260854046566291617436519218407952796512936920397109033526869165713720428687134761207328955586839565162563682802859566960997809515044281860060871215059620568342848440866646483551965964819174693297920766983102366039996891868755065052374949977167447213486126092859004406824571350346543064159346343910075139071832552389356500461386936609270336018732436632455123524393001751557572373164553950482116958265239279970354156074150296422379182341270734092721310027170940557305972036480716063798321942568803874128423103361861719980530402753306206926988961722466792974526708342021263384484136303047465313914727639743413189875117102021730669360820276262126720006279039922960102845534642977841873216122425032772888649909232733672603171771500905946195476396022174061058351932754387304073777162651514454989532029163885443214905411826702747950325055445657206808176115309073984656880128610531724054601023308521974736724559871966065053768869893355966422619702110241001100200228724532608056167504712691140861070201599971522197217919032779738198089127140002426352764705634244471265084006993919369684875399417235149597964155010442605954188353821126756695183785515105975722186569707660037747451764311389224500897309764016929942096111145028003548520864240822938840594136659980833503895539939891108252499018714513860753257580223473323965872627094466840566440871859955225582532957848212760050165679373440805784721528261995121967823793366613765098491286645008976686654576806971078104989297823497470150230814587901216946789472455765784725653784690333153367277955579626801607959151628209070940797852427039713405501873486629222502895354825010157716252320040382475669569266865008092960849337600889868494138535026929369928693518213326526898659218450973161767477238864512741898843007967941293152762949129690883142354762564247559795458041745441906302020299551810165034904268417737035330438306497030468860595678584489027005608900645910609910852051996344263882916615796588040221217953441374493820558186761858439527416731214360132630342349907177983897140676770113563113672417403298240732801979134284361229017619128758457907102813204014041105921371835492468596110511814975859392348995399340461928170301491003779065239179676412584766014840483482319726692047795526519834852436307535011420158877800116475557255986819573012976183437800282909083650342428054154846034795030222377700821992120858646495016940245179413764973065402021335306174172511593577470226615405728368071109264091587968014324802382232983835546948834107858015724241131293207221938955162549623320528530863335051805768695189287878408224285685166832664859604411515380724710639875668795667352852082594730814263303167714335205799092527755544965459821995261024059756848949670400497247933566659533750903028687165509118439781398200702039585812184022453393065331158550623436221576129647563586632572731348733880889081570761562961418726200449516341818534905720722696002156545430028222645895784425596404756614388105135283796242465094265525877419577625299167100477135519230828506160129575499906316535768738407325274975067055782636189259148891636549023011315753306476441658297926794681124071063499643096547129973962930800839180128242265004683264997626422281339146067058239895040327771241571982781412157890660296120320276375497138036602262619672258297548476396335713943085216900515533755291081909692036128827487654687319602871352816274360700777446742664072410526650871408890002569939274841538977906316892298295670304162852472169418785034758961087800012399364628775545086652537640400824047836098519722184101627146287650296843217967997851317952807146156500788021236329710178656335609688672519317298478597184946264861211504348220543973773468251577730083763624072393112865259709931402867521428494563420414013270499414721634461373358991005098492052845065867315098347093361784138488210120157938540394199617141995172178602286181371453946260293168178579666531608879588935217411674092549352280299388915167806352284903730920753823728570494566580743398424493242481543342666435640070045247203139892906455118340150073614868501304533268836870026971262088913713858143319639983813134190119321739418073837530900821430998243394699170805515204159663016717966318338512822101982107750620455234252712846650343780257945989135891697350068402234554293403679720465651572278119962971442940360342085920858988286962810362443505873542074806790523249507353958142256282864603326776355850713947323524329937499859853603464082038547499818855126984421413606503339628383682201306783300862770355901612337673842709662937973904742589209996726571961662689188883333933997853269948706046403948581375508049620443424705619781650229736454962628570533189890216949213482655017240439924032099343995187608205209019698299692310052544236754930546205788523776058094820539821366259008740972964912710390506720985858602083616778523077680118200663769362938920467905708725888553317699291076650521671577733832181533885254879839181085119556911502484846053201551358376903667190680837659925369934837361808677654737206219233738541756656288260177882642133928208652792600861899492344002128318682247621213133210833567697506165996532591763846018103375336083939763600722265945786657792942409609552646262467688382510330681394295384479391001195878300432670858169760936474786761468661081749731586096646745058791862608800234480928665824440297300593560571508650456343289768005770986928630234723681011046336106384341984051708056912085067419338869353268470967791706962606850284196523356339566750250094277549861701284675206180621766325768180887475374034231697837088224293941790790016773589852415995882584841937321785965288039844224107535899878953729586426000403826622469845432231317712108617087760642587103780634485557428718455694514716969419670415148675607241065943933172782464401532338110490444120322540809235731987874004891276594503801212727953616338257257883845222414632862991437561012304703006499692729902461709754904083964252556751053049427163963860064321791911655854816242903234595212284369834771650426743564471191316892931267879729500251611230062000047455891050393502105780660641513227550062463330911160466754940505801384841714798661414543321826842449732333069116496904418072280733850927108899053788161693443765233261373788189730081643720341463168304869851892174687844970935975472834481843999818771716882202794810587264425611995234552659168031354772709982314913972543711583731924573600808388718642827502956872652595820528604894515630675648962195668701642690054112469316388278870729812299967901351380430051279247244716204576329404376714325856864222243517999428911184777271581153675399821067251036468105223734516129866253908802448418786700448402532648261213297910761186270991490376217333291903169253725402906790499732229637021315842205576176415495897388993296615319123898544215040019055712530810521557093990831901096013585744641406308084478403516253966881175438170338632153866563342664167310752959454964515168204119692907990400697291279674657764034468066383023822983644524641520130621016424047654518859666171857790752982614393425295416483501507928576111847486597164758449713674577065098796942032542839216225301465390507473789749350955265293015090771180510514675514599060150021444927405012010667383778958163545737128325262582448783601944169293798612196517288113453583448619303886691639009641637805287707101705820652646620358951159673804435489420286564910754749869846984876081962760503231621064928234409988818410092374256387722071189475471604613123941951183978557760268690524619762540836436819937881314298284644614774597739369312832538311017851854292837368730027452720985196048902608868282179422426470158532967905420845372790437127156030956423468320022510152389982514400382380146379003738375167048950162319802357019272511517074366800452295688701509208620908236816378070679555277347317868380403716835726636112861399572685606716169404900612178074145328737861569192617980381716228209200090986671838663337473328142790073792222556302402826014896446970700477203772547585172207524751805654781878610793175717117294214971996671424198571229716182738117257328507512515820515481391104612796166069165231293085395610039072704713201839149084335802025702569602477078417971981019810828845565181184409707487278379549841662436470418450069250030769138121555808073245824448218875252927793154948656920492774853770680435291908984812462902992022872552555574908421190898360960350871571601309411039521913138875855420508818872953845919246244997045167702794486116221246804258915227826388883709565792790114466563746639878332518538532889574287331746611737348876761512686309583497690522343311780945774373406037827482343139629289120074506889703133100658627877862974071244543299032050422778421512278215633099524374924060941366544664662240522877415320075212869383636563809018527892739806375442323145106709214502314186565053366334977642762245991658173758003998125522079110702613733104059735986612657960253791743418017110159781103537340730565989200300210467209267514006564835264688514256912197291023449664064135824222330981478441739632280904208095380965025624375112048635084613213092769231244018659930624725182942472637932594512097928242268317788263761101743906796926025576914440203475659170884727502235468132488828532128759223792500437938232446072248083456405814693275990302204734934582501023671575265679728412509201946517901814466414866014345520428586109323408026020238900086557951330620507110087627163387577701738706525696062608206923213109555624917840995081338304954024105851900552492709055671476914518115431274442556854511391077264387690425291626611524845554931892352396605034217550568818620768374372960563750871978867112141976623298243636429650101793780531086890269667733430375559388811590823859998133016714574970471785076075066191127576958020829814617655485697081036187350440241036994438006230991471292646725483960427131338137553094337973260504785613878182762655241271951774847915135765393780935026201503918174651694584360547727103336799061079369922053416539426461616459557804566271808322633771900727641253705910352826572231463180321898471084913041731946588567861850924146021091983580956381169074878567750428365617142510064888780678391912197658470518261200998187837950157998994118909375301040312955227529723982091243171045029445823666214677027992447128459293780508286589095695544621961937169589453987052332398589609642696666831427951852526264523644964407382939592114607582625643724995191827088998961334600493255628882027684236523666642360784859390986734253438111144338046896150532535805937782514109380910956214769547793043752813260004747458021389455735753088624494948165135976198876444406614084033892070230619060212798728317655674394300621194911681204317795797698138152129729460610726949813106562959632201259532560154301595384825638453766577234072619324567386173978826476789711414587853157664170869467406691133099222985111416310319284214143616595777697614303865522570471331719403424277449977050158331147610940953637081153352943910971141129024857547393758033092556011271197008366468399231739212281951272435820890740165506161537851286373625449406801762896204767185953552588250136807662043327546534501512117032150739696342447026502585150160911049410867274125693600978198844138130801831514430300610947351686010848159017134911337087942658675759193708314617266070865924439689486520688910266244503989774128396658924277659774583144795051964554163448767026505016254764839685879274682756534295398283268493399023473928737236822645435978934006607240597156081881315632938686883880180861777394653548469241897263070461429196523032575183878151633445840417409929280480905132371137930124886087108515123279735473148927655168291024233047747632564249764575393185818275975041524541063666773935409987592900810007757134746298978673237691665547544067324890734095672065098467331065824419269349559134793924397164090940056481745378956875161069064346281871498223497229846511608483224958377128040630984561262108550300535452737115218810022194385853081207854067489057128770537916101436201228920684466648320630166878385138251553577527403969920970031230999647612658590461669411133185148391476800195231389830484775020652088516403422517438732712559870773279345756205386873370499443258475007227441365886664916059593052104575162295907912621863643156972806289946967147050074269252228835873851952991105480700854150953224917251730161980275202345164872035778570243091054979551224580878624407887068897139183087339486420203861413417777481346714718531782619655335072337785860972843529285235522158054929211536068395279485584478039620308952938543251896363674685844317309294110438280967949537386720394615390125065973685399396433272918969620207150505977011623153127432476067468183729178697744994359538166768714190255702923026264663247763711339844459969933543570833553911431034229568164591145410992077182646413374480273791647667413137830918866138460295004960841321535773697977385370660647105291015394570789595197867464304863628173299624599191082238997398234407631468412154186043426562758607624047364463073236754659444638046023825900115915932985743977007585589721478446344170496042054638104407747032081917721907852981144395480092766693366029782439674335644330817564835227310612064269599178964440890595621512116287523207035995359847440712673772110429466437888204471843607662500516085368935624996041967355724753789943237601584767747834952082037567254135311155003071227165976476465388252908520884622947060736832600757411691203735381011332095943533462205706592560251463472318222627182510938142030034510203798167453051533841974630590240351627169765708244567642288594843643283561850240724648143770969271994266205926783081180369425789905667057398940310973607408053017615812697973355079560437381437130620711234565494425355029071759191082017199117686835820079125337200983719753161536934201222032025529000389987473848991506615240404265998178536186941911811316706593223988729974315374210735414960168290262983325037424471491342662560546734292531484488736762044135456393144885016948861670252636953330046424141887048522003678584264414869052455970839866922464560308831228327542530814861872974634271102653313650161662329409798449884269169666255106432152958645316400795043927627129300956346054123362223495557022961972836009074278132957151696011473550075420347999563687842616820656855356767130561279155835762951191523449525446862267840949824597258028912212706297613116339616047303048182467580060108049936800197234702213922802804765589307480882322959622625438912209869455013989108233786660142494976595087584181571156656908982792819561327461447639581648375724730212098998007653419038248375601695164548045643876839349581483128259833877553935354568162455960778358246377756349435790552957734194424594405181183292128663939082196753543046329537999860319673867535085873715066611374763042649437413387308041323783667735837394538209129004888815975688523757138911260442696006659326414272475598842872566650643637373780833151972042399557986309544397607899298041031205009233996079013037261265833479028842066814254503687352957251844232326880963840143009526194304172862397046293558632974427787911553381602144204718525248772929597686956165538683596023806635558519583238343547021493814191024683159128053754147636733737135179351867276997543109591074607118205434819516677548606561003588575974062970679170107395723351432627790190382717687001068140431224507715981099537652004826730495460689974456647511506223831954191902962565508020047758724739474796366905717928385151730117079748093298356073031285510176237219292138180462058961978170935538329510285554928854267499187480525982170814917783968032062935873009709473969654515452830917843194876795029832964620711281178196385348166358239544571984525078966250829858246278364726450097303365319366998214646959330989017416755443216356559019556485536310996171489010795072211851382344640656235347975441017814882952126907674214864025407067149915158914729992756494712578896304139946495928382315869970018440055740034443340147813402114053261473312005870303449324827975555130492789038187209782989620094006518850869123297850816721764183472721943014195333706051433830638839733115591573254756364723276428251148629849326591915268162680111299224670585532996058417717979267701828077827535422402578064360446100866066821345132049364852786392992377796453395515280843070968109535903845430189639838642043873799086093116138153987827679532692805470917118790905906605624493564529862727705860810301906887958525252705573270887834949496761083611139046329192849402720662590380862900245676386733525989258672606226455975696672601147502263524213192702988948303783425312046269812667872822052357429156373652976369664830155037530746452118672776552017044188159670285334234372214635261909937022327441561018010596468659725021750882497603981240932384997972932482686899603525483967530187974586165763136322056418743568465400826944365912568883444029141936425229516638298333266195119586955849290973613075279730181408226617705760264281618787544532658288284653825995019280270646361383622315398088641804445118474116025049043334589086568580194083002291245829352455308779730259308163656856901027792041284766944175508568652482895422693133329345648484553876634021308506116193423905808960116489229369288380559374087249484295886413314533013217450237957297642919447095671133498956708164506828381264749203015165571128556615326703509650916596178943334192958885801600543940849449242105103872053031688922982140858554615696551840733253580820626302291926886693544604550041430724794595669752322537220961173140269846752217309158300443133980565757860373550298951952553462985963741844480642275129079129944639653937673888013152234723649177545624707499935426841846114668460254309025230303961920363758862679683831624304640942834211112371967553924264217054444355911582724838487879187595874320545208474362402084146216091204296452893358460542926144578652658821543966293193307097653341506231022555406230765414386795817124013300932926619665516482222400058117140666383627109796059075621392643413396227046518412575278491889377587772717746435064878993057992966201933892982587574846716776656350559112669842078609564069356498468888477454393919325605818011435793786761076920697584280748929751823573289095443295288573571694523544662702436102619304290915825877132240325558652567830219788708265418371018769015076053537487405195059100575101103475409310331364938385291821279075483104785491371022139236293786437990809149464401126728740900381818901693288565120001600510540236899143281521546253896765744333230484880097439775861611744035671409836377950386313368288152601455572149270664908115502902467203822713297966265669753181178744953395651397911111237309646814289471662394714982018831678566138062165399509752793121213221940344190766677210959851193651641219148094678773005396107872529415116898737575039609676978759664090600329617593331813379904686295106686539131987622707617648375143380676259079758530179605758574453277955182339917418006377232738075653294243838608856335958033070088617373729099260695016800198171033772964112133480713678127880280497455035611598426862919077396135513682553923660386599278329400750071104073114287713968700228401108917237182893830339683864794926712835203500297133331273573871412689025611333668050095783825991660114749570680136591181491493428241660444365873508194955144279245567107498487748797804370346206562755313310711509452100031435095433980323704499675446741252794135752443944270901184098152008152933393179212397489969117748692196368623788956873222345294146562054029822686864316780680864181609773475316696842736466198938280945398848753034945744836731820978849032095874200282731163129994552500439848099434914546574933793023671092527169343735899617119245752500300310628462712464002971511078696580480241206398419219343057751585820758228484010529718834446162792240975242192333026553931443494083717125696847674429113563110669142913510907814256748205255292574542309979266095532157497570914635172780964136453017849530697249030880135878691756995589492452795585728945967153596364860529160432634047152684533903283891475677645185133306643305983212700730835070708142543097350508568845836930843208045146572110880090186362231251525127169763606964743800089489193361066823726878757645609146615275757345420775944514687796163055900464041987584128551776659665128825773172723362542194963120592974998240636248575362715437661743339309337876342827046740685756158013404715408797451361559346889195024626566663432750818195210418425769049098285881813387032691257446042498354793206002944234024819301311890415280223563059050274369171379280681549253282731795651881102893708922150684346527737675925546437676244786177969192630051610878650151785520339197034854844578410738930901093691678884176158859080453036556574972011963407729806329930138842481030502321636788993748732977494197193393826134284422040528774507890729909513913578262017434435282719708137923631095772811009391243149260810168837697316567277182731266573695091452513547675592278266534165692246430431112664990277389224103889881689865512577642550354610169765900541234872425113429559333584120031330972492462385221467201087956818276009515374866772367550975657696062519676149882703268554660250114071227039559795088324002291904534108478701640014295973683116673337959762462708770038128256885411365307737962795562934809769854848173557365120643120893690018384747949227436872999980579527624990576467566613857145562170981617253087555924997220808501882157205408194599349282013426679087760562972592733280020456328907114463707382182429036003238944468283048223843410255694019503884262911210646734000528641768575693032229892222410807560722289244843128973356337955833386775333860163122452253452180413949054068370405432556541982576282734586134332166575682321169775873844569481340941920352177928772274822448951378253611595419078647587342521737150706304439986868189730415367658321282072284818268715488403151134726019670655840137925515313118375412898361082584577750352380322540392878831440617638352498226059467966937263818207508293549494486200636175199087841548725656754706342314632759688048515239473972636237000295498989622234455686767940338653716370986416207610355828085136542920484932458057100949349989911841593645941490444751298787896397863827117814900623944199581757919615183647076180159189464448602425867978179956658689778199810500425450473167701080823834185131973812681527354138476510766550282524172126473551129045407264772549445994711356319612002810182376839217987301587659505613807556433543528739976186227193377602298891583244635930879816371524659246056621690694371366903611373700304794104094627267101282854667787115427829568172789403433879844268257979347908409912518991404663664238125847386495155336360428835957548726621304348980461536127665447487554649678229394000977920005149194016194828549703887648406363638743750117702675628590440210010138928368454885379626964557210531698969111141809507962284507053189895382455035156820196016793311655815984520018036603910743650293429193687408977331781409372503269643294504536766401167086362703808950310695071817148239901708068002648883730283014030900493656793667010106293544503300282159753262834316118004630454224214220449045060526697496756285801737808784945830643592759281440671697291181932279777488860161011564626651329040980995274291284850569654507459984162788121533816454451167868245782091107320276719976282295490635089083414734605564048122859422557564702343350048792882023453319713693665620221481164727200914664792358317095855628941911920642534735758737648236996532472918474447261427799877073103784073021190308536930433790701929631693063601808742155671581217360671862766396323273900723838666808221520707421789981209307738853057961122636793389022920837011880969995276408380369829763624005792047755611316069597720585535873304918589649363125633903877510230197162047569979834102165418927578408482563093184407434794436552765371711234982436765550705559951476343011595616081425759485510544429779648786382049964792485930961736164308484203524095219987858378186646476659875299902825994257088071071421401902334231561189027755671257647800740548781484845966312776738283335101076726685872933605159000776821931683743471898859401831858987235001997727687029763748715768553436998870315421871604388110306772934186868992852213974470561224333240058171303382734775254164357640430048125857860961454681038336274282425111835011104461442665470655308464122672749265506504020447776798430153709169037546775789226016678008841300513681918523510091038809380640180274601430401559967327208818766368935803759807079131234959913464026387756166110285786749970726960580314288649494346009694554112535826106806337864041664554709344736478544030007169342907412672035432141592889911827421727966502189544350732674266210956581607814611607546115080582632209342240087965485560779359508524920045482693436405880834291853389258588707951565430001216267483767475472701804531372341800016153431240177843197044653243683398624384909901308498949768436774074101073910345667653858398023540000239556309893309167225067809273680656876667556009711137978342637971912852045507617079433790726423717108813880750704835931770012143551448719259445361565761431093920276201174241042477501987146379218670983727640856612536577503447241237588122944032041433775830272957054601848602002815630242923835704675731635962003288119455102567840770533156329240078298340375604342189342145337848045229981509438179194101521963354391601059583719089713750394107947082781311152763316704830065022761934256544553115301377096004215154475197462218787574860976282508041221964408356884791967568548380519210283097372013439768072670666510658665399026792797942069372104158236887220798818899048678232922427018763284474113414905835291300341597199046024518785065424501088107632588636937204230312583838632937854276211830437823114813083694644563052239269863850559111722338564447354039681363587464982901420271170832312091800316900478584943494743316865955008244284704561460042169083064442668744242376661689680057415235607320366844525224163141169789564649361755966393118081232282564004947770602778660817618503772302592052045786760512996398390553508501948163595556962168050845971475363196034053361964258646263787936534729438243806525679522244819676350343259405557435218062226695795256902303157822635521604507459654305711819199865081427865029420841149960875576835816076254603345807700742405038980494502284230322106691659492407216744960815078650202382614571691927726320179883917084579559081837539357330953578886333618266637613961696993888581669473553877443047594797079212744632583838874476730360879751316174453224781370155332481155914659588677238325198796971905991971237596779924425766143422570681513947519561014151001664231044721402122749744176671615823093642043170845382255615832767065911051820283976329013977955423516886433485041353035117540565710893248113904550552297286215418018740680142420297550635179140902726605922510057949648481837425029237241464707031086995084671940920314720257400993678641266579343387046909792422724377024593206308790391126015062175178923624451559211126292707417792376293446153639483565924080533773612591055786701353549781161175955096902926124044420403068181479210079084666811058695394540471999835925940102613308578525878572898939671263927784647672511774900510186321774846084977150411785540257964667127894636590081186044424970746587073065644871820201257723596339908645114648354737994982940318201484844205087436308285287256262454849193712340736780265605986588527647483627213210324574881223682850920622033611533331877152888283279251406267151650597765647021195710562316086510970307279069586758756592466568818347967931028305502416017446445987002298773564580847774074433525743306859476530465554723976185456070611015868794507846454706807674714103662247834466696568704744312418517921063622520368406680694323234594002344071453518508353934168811435580172517150335436305136059462922953513604549995467118848226821435267156232120417329618247897352599883706052551689058166259050163441688083789007276012554733499672112745139708816788409487921982438075531254352893177311453360272280466927427678770312478524144154617834693910298663737198909917706555183042694994783584701403860372170724770688900269861809813836742955293510159223194835884778163181395386192681326440269143224059155905417236130991305051122731442248548734993883342691520025954818712154418178764051213996626986281186864546119372657790856853753439904934489088923049136492178656521541752545797829294241619288109321185232530521612848477125734114184172520578386391478427722450788604809247609436256319121362295682707877831681960766290445808595046817994904544152658141079319605702028776178323065948915760931614779922445727590881312362020130038969083842530703223920787107481653822107124224551305214656297302499943754899558880195071136533654462430393904287290130208527280819319700674985724985198666180978862248332024733721558307822678288324663192742149661286372550888051740916061999769122699094674147125563756278549457729465353255793161513950070053470587774204832349919016463668700528083823833665847008605318737111578722201730479235728360184861685777263995512513788475339569338360645998214712275668513611009166195476961212464507961961696135409778568361653753867188579727003765547346575737067436503188252859723742119559569006208406051839562248311369212829527671651460340570266871660913230071875412444090525266060664426977576346435974765260811940792780301868204079388896526064330861610473156056200975366200951120728069418225701813280589351592338813558321049350917716118714919822338242522915945729907729742153728574644442833754043279741548532761685012866669698554969102295492936981264706052417822823809352324783195544324048459313432628771280329592677833542196496600027489044475998176086995159020310705630312295678947703022453676598536560383362499986015488629032232679258633935064920888201687538662766236731754645054355256941880339650865688945991797800210675665931900816430768911989645711197609192083576848943117804289144039570975636540710863008833236930952031121469927818179101253495401670474683419758809716239530934882140618297000416924934331634371697117008532099845098728511859555491451037470139667199027738079384225202649522300184895817659889108565605342805253915024934558823806893074601141042882261053941136569100510328586729240904330917599478018222463972219953717017386812164062127158261926458597673652572307675727105606284965878172055746815640736780346492545313848379425032369563648248779763629416765312965811427687932174382167883830884001542613826767719134052810708105828469504022913308818657091578724030582300676460229807583283640850402340307815835049947674499070459836925445915749719286438244667662768691675102464805455197348152964262071525621995805184436230311186784955468047795365420572703280541939792789330275636977018359926592835944618203992968028805765066140464052465962584091768342264655079220322459446564776169474873419397608175235751021603212401969238539486102530008843650800506208983842106154639922979022423467973271153011155806694917207368820029031090221618412925172569903295922786631867142553857588694347351206210583454326028371524589706279208590826504839526709079230941540772458568441785170435596021403827970927405017085305248854137080172580205155931568159465350060147836630225330083555747237126585279499380908507112574106742907439510526964488909173787594598954753743115442216808226312815279394227925508426429452484024743357387873587783907966756553561956596181658124521882051147386569725975244883048220160294648069048687662441651835113300537240910501217869691372972793958816115015872704877562000034384796553116573403851759163230144558660583829221336885957035362543092414034107420994390672425617613594692031618366856709380032577842820563189346522167009045467793867139233217205142066614793459435337989300145421314212914173217459245661181141232460878985878573790164537080864071947594572775931468629173105460936399146078173022501102103937601441652003102243191759748155421392061211369677347819007328560550950874435143882002830544255734123750971043204610753766780476916978177780364816552615818258547265785797869944211292732360736378783070960851264896989214273116577878638519588831980261808180143317632410587595909841460143301444909245240971242860543867033159227407856868442991155623754075690838296676079103378563916906993788291049513823349884991950153419924771328153056636296175387213500566369955239547828711406144383966834581954349499147212791502119831416585171728912229175575190552911053027860125851291903600804473356307788906159906106792990648665375984289603519208089677406580675271493693981032348350731646822504992910945004058767229882933680489580940287097256064469268260933273071859183634583356024449033860355879027111547333751778269966766244008645007779846642073568467732107566302152087807166142678398769888940564473523320056999328391161674191886970429225237510007698407341663468008779089042309105531121744929740568433719048134585966919306717110253579702745500212126933299176126987880606414095493599487718079769064392834203679557629786727689410956825223005130015061622904276464212757984908749172242410442644777899834707538073432565456619486819402259184527275091373245555579798461297327783042130241577409322671837672899278419995925143542123810147904513563133106651674525651231177928599840956468149061078620843271928570095128396617965968838646959436820296711964790026175772930135937936042368792395535065800420714779567410934220536064466236831119285771085852760893202393154071048237140468007149248928688115574752843445777911142168991592614249462103339147845404398494348769060110507999544431969296939922957968037763429871073894060821589856521993076733860821098261848367434079484699874073921640921904675007185006053920607472688284323669395798001127479847717178212511843505959822088595010721396304699498600035129965852158987121791012376166301321857078300659736576901156521123350213594075054159142006382261473851519005575473561799988566694769811443715229663252700507805408863501413643501646814600572853006250669005005490322554245411485379279976903583359120829896685915900203431474965753404853255144168053815358894737869049212955629515712385789321962212181117209984062014702067536322644386763415898247041616770970110000728196272947391432576065015239227132254012397449701921115621265684712204383668919054072194300703600135878748013773672834606496174245228726204327989329481086385408769103389916775439619839848327650510541009245886112004404992751012489545779543376759908007351168769382722577508838017784610065063830415308328624119293148165951526580416294231497201656333124768620024602678667878977009156245391023795637027252768031296189464247934491641222677543219054375360530924823671214812148745536380734716729960615494765750645074827391720440739373682531782106049113834708912515541687471980372475525424473453447927028610422529452106661704528932673808761079398272535859708744732535409308639075412165971412172791385931285272260546944220225180889525390463084259141256094492990105803914108040180154760620536435783718984707138882378752659441528654520260328485656058368349320498262309334229909383733334489368683333254532772258431070669127626331527209538595046813386181440777514965689874041473860308106267692300575163527351879392160714291772121421873972876803776251806490186125618750163601065970739301880027904597692241590956540495729011798410991051267138260297078029164576009617455243024364200662933481296476390370328837472864789726134024023580181405902846122653989589868800287531208798438585398525966629310505191944132663090239155844568134595401876147602692719538565773430712188993369172651823185650751803136343839737895229292600598201770377045117397133449194009363129217324534715096481310649814086229076312451669471598043461379804923980270196275904768933823124968231978752648223627422386561316785702213313043185646426970589072898202826761763811016654936392488554134333888861713495233380312185823383974290111719154826709106702525064044400845660777411049528013986971456585604990639677552730319822613037008758965745408940810082756422995662990989967742842447232657674419241293170821011964516654811722785299138889815580981596113072167412920750858323779231466562817408309159198119111395670338769236343596622118430644933973571932359782606668442271878996613853757325592935899842259749892910854176836241651215500682502326523343165934619853053260301756471411520916774774409365185245505168079557224020588105259009902948653235404709050775577786603181947303095892429607642057740657170382686320601832666805860429998889879429274661771370805390443038155951956102553021198431618163717549636221722878293217409792348063096767223984871562420068620915529641449764184553918591226935268189938084089373767717204446318644688413962547497825340260318117103981610495273244786625915621252419659960540008521347417563271312788784958742137416008940558385227034562800163410307510739653498402898045531954232798401366045988311517000079577466687453431565313426451499290747605382237909973633350109568301450746044015821851993007266756773819252976739000304597165985003536969117813636661205278957064589193111506966944840724713563056686829277255580073204610364907015350209123451721001878696425113880552128540617610568039657132702059511823204054243861629231089903293978284404292591019614995089577976585787617115032521725540582168721940169391129570815538088275396691728607446137605718926880301079525665606951170133946141287713372802287314579790680946443209227708447028763160947901164697053366477368245015511982911808790045606687883129067427366391252511647853974939177038658065120316797148585616975522728383038735479643867246739438499005082933788577131426893617098185462364485330125036097589395528441252089178632749040079507960288658066892516599352346197675815271270728330735670393030608151092710389009200790617245491024807917832708504277856104087793470362549486308388088221265961392612860029516901812297808610010842121592458055704399386390274952747056385706273301627361703172789515723886654271153471538612985097976782161687960844527432596166453508159367060462836602498342925663386569848883555470923400099780373642751710212055470381075204999394221133057703102300219200855975076851933429742657361549344160733933141040375626701597237301504614659618175948509636600754707516790087167757876404404405033226842861809503368796900341471305451718424565395917692389662256939384889845359477946643844498907233828484198179361242940862210842944349408015162195879668424504005646087212395215852815532581494343754990620376676731488899761253191241730261827099232898057725211566513457295435803067608315377300293233549833485607641223081316324203466403909985833231570220399827786449615272330385824889787961043968872801631245972821305163029646827394206442745367738358880414751264913670879864222663854027990644488952366366850460767509259668243874004997626747614300514655374952010869732998964363143215664383841248983592554785736786047775006042911291613012423843387870801711191841266898278044138313350627728005669036650276373306395959999544452379534007131977053133543039360168973328521806386525899201976188210634810844960129498452398977339876845231670493229131044361497300144523881141028548437107394077717406384544623474654552244413684953720095639407537558992062876834711405125989928097884449148850147452443232211023221598150647479885196728562329376477486372378416683840709080705976065838569366715503309639135897495706915714775524561314984441278799373699517968176097308323691847487556691357780763323730629649458245501382060759176021484102141996064439953660699498251929700907807460773151728243764387940948050685649039069140519336242020531169150869255292582818971920957024698029421726577068099269748688948232945635139487614954734026386167618426118008256019579468542945089717135337626001799805748646359176016389681677629981248296956667662648335129421451064067947123535316995307681937610577856273667058351719558485683335144753800810557747474135447540663058787050749549589622895066202923696869670692852721335895473553304478758102760953605791788195168068779549979668566128109301511431076294056154680445070712426465095016165857564596002948885709205513849080809291723560186119075877385258080829962748962717951212384041206716555629176444277870364179514974158145301717812723730405400880940352550381215047260300723418073355335401299593769987383286312587725325997777980568798033492030988241578409573228880924858681791626169876817183545747892794678232152985319047037045538716439391428786019378252675852162803370564962014274219653604994208305935365293346724585080081931565224615317712878267012131421617935615996691173201164110401919803714023616538136913269095898765733022747033782292172224206266778557453606039745207943249536326602193007489968892759082734603742636963132048789791186732942064723413408255459975587596879411530781090542983906889991385128948040514069697016449203915903510038549141556521242144049103729143352722558433890342865671755040665089569037276937026509340566401228310820605904635744363574955529781579192671192837666397517367090301654186705058187191837823341576026122801388916900273911187210435762537657119254278768883364351384223014185362922210763117986210549662151779969782844029752743439481147268044905544215741642851835846492872661859170892758516344477108256564572699545148667269870617621605960888102009540974446880726807415620754734922014719075897744970170606101258336678014872760607982799451980166364421595507725484538515670400233413684671820601030123162979355407648344657779615068546710645262635275543629500755851897152845346521151653250650359414537955721113826439195988731441366595320426324202547093806358286219380398767115837142409914130254822059658687201985591548671981327191640895457447480719938777251861358485905296836558541051225211100951091777598065219161925034691424626139458910125226742135885837544368043185849618338426013850212905207575039195225276324241351888825991409463182219907275568064636005725679050006594129027221202798220618246855166366791502538453225690675086341071969557407706953608360436660863278622717393255132858877284783196481646918972517318599208738481033658169209191003357923420799387509869511023741674921142726104726841119361097001455724096657424425437749011121944357930955460422577398517147028614603502247444947893684273144550669781975697239931054183449812030818579357729858237724172630981479044382717695392778772616648007175340034630619870815050503335357597020475502084951097666225302506110166833804660324619581035324838394383396094899378690020019674517680087806848861844907858979463329476439111588140257515466310149935622803916023931041298029876701975877382737082963645652312949021254376669235190674926033573051278622989964387971816002090615840666360985372198246876020590395937478139686881858534601726160189470589998654534501060252819449110028666906189903049319315064547017633531881916713757944471573553734671020352871367946249650696609780339410510677270406385469238550823328101278641318162648362948673540958088503944266008350425048627770710407762395697667526617536541956403849239073237636027732945371024132227466819178388334887002086949113487964449746859896267051197993270352128922509535950805628220693581765404507471863485840310285945912037813369437696250565921786747259152171290084241269264862618653175479734964464040502674971679281315459338420390082525994846656215927411882195204285111609913636311889941986076463442698237402467484378141819044313168138329133424855109725758216296710183840522469340408122549361286087816904308546605200676579273294184392946283707271082810200045927568353020897506989481125491558272389193676967554785311973605391485495704909772023225639068142751446527899361615444050992519916891017727893350814470689056287115823721137863331588736802564554101351304765490507177292119128193910242380775754958411856453280589533029109963354938393707923011982882449184944033496710243735594537861969503157898015711800789232503025337728909140307667056799765030014753244382332525836919926313519492285862220083446875022139189412220861370265251619700098561251157882537980084458462309283893960363642582916821742250257298931677434611882824455814971960672624586584100358740657013219428245462521628644301626340658804860330478452517958206064979528526785926863532790919860753593221789788387477378858632907156387526472991854481539376164752734122113677712367972007393506139315882051508301662591202031648552512744587184292193369131606305676263429359600493129381065588989338258645438803126402307718650735464062379451242981125454124530442029270260134285299770142805887773630641410998528163352375947492062555547997647153519452665964467775488814054891595704925491862839555627998976870144171324699540827516098207534332025553677044936060734522403619305188279098608097667631692019882262194972881733380548849297013385515112260415684878278297265224083165930819003702302814734067693596605286401662518349716789470635546205560072151362181660362229607343885338348341490150354007721433081622800926467657101398887174456076531441355174562675503748068113441650204136666598696289702487676533298165974504983547750485710945302145226145439229024310516458090644243407058106607879191141453896333433798403883378641538403680480914237689826871521000618125725790476559570286454221621912737826602431722819031394842630274479610987794426641077069890270743698353204176567774614678422560990219302198734200733580446702887482841742615657586913971116330904988869074417266885990494320634759407393031050861891349126502293803281666536856378251766127117776067507130502979494920149494782096499221893244157225884484018074553567786367143051361760156239822005666309619112419600901490932603823945951182189926737774166970250932226674790450448634326831031955528723767293487040544663158131983459820089443974616321607208715257573269487992654461406445206580595449987657263884705569718503637169612588346618733853796195158909683469269879469809641014927122067025908331479509395430664597292891583659547824388415916927968040347605135629468352535621216824958986059809842950473395059984046123127737464387812728431948346787958652663183338966834475487017112338440130465767344775194682514564390556499393235868520292166949020374826982256079566225883454767443566101449371533709308302213549829348439390425412580237040656981587018528976709708033976260476804148048476298393604825804824122883395328874797514443183925574155688743653347537343076480480120915127939331966158147565318195619821374747145891372394451232502443661893904381759663593932170353618928896596637742760647774865794652989047346155594317282344974492122958136254820564738962770210829441684348926058531090485927659090513001806144796320660237068485327502276346328159959183938990826550366926976445153732974318487423447433383017106633686990754644451354844187185827892200004070418562966816036480047786783924119981045197902127524154607994965998250392675203575605282546095626599712158629726576027902549927475119512185338561159433568286434640537188599017597949629643055069817542068403005517997421297151390412997693542584023077748727428324700352266439419838891414050117813021994781770839934188584315438941832777440004711235629476595188685872324643017537031497226582378993343760583697289261664300537903154341069585604334252238874971990116541298300234594126444387497505360108017740704782193052451508842836713786123927677855287572614615818899142935187113191069300842142436030423482274898124597144629125134262095627544850718979128729127473584958800506655001769197597265597152502820964112666386095030590308549562678077588404277763659726189494979211800254489619930509526730608984002640310939662397023110846043274527711974678709841704667832206801607721263841060375450657863065250094152467330231687759873412446785707500144815363737996790395407600516910079012034359440175716570060703142916445084091480956426115026370752336246980937971756728175123081515494346543039274753917757735703610267640779079054635584767232019311450589221851003736087121100228573591828240581398519360436614911852092567185235328065170132419948951362793568478365916682260979640638189716211178567713865834852770176919667249081684359706821387282580683728481621330429682418127253208457888720656405947757034096626582443186761289115750018412173232622560906758130041879164381374844730971908078448562672496386219847186499504601573379880989132036494553724443773239391172413941279784536253401553981526628188637830820053933301103609063846375062339506644994070313773710788664543515104264156799582573059336444432174967150015389329152147347601824094383601895569269749431475379178500360076266988109473988643653368788826235303709588019962375568794793755068721172810565393529892860742854683316090722896686766286956584946475431544209186368682947766747288939650757267020098284705816713394539446936346441747586465711747239528015798386111415004829612803262605750019735818477778913584725863568376786390240945126040253053560627559021318279609398285763305352203819466494719719009187065195939879335532790078780012031447427937789179164833170575940574382311327548578449733011353295790709169690236696653307823606945061324523695712169713213195101504087903822996317105598908436670067729167205452292601988392832363150840806843508269324563963436864094751974202406270013130001373620030453379492104947830943978408468440988810364128739008329685734424418489876600539851696434616853361406810273195905371607429689693967594500159590764515809160874811487378338258533044647275772154292582872951200445099108079236872301898391974976037866018502242561597094309953813721836118168827378826213312003034509596188262094675012409445574147291178637536531193573217221577088332391628412816227724820295544939570781748248650460706707014533828093966707236080709038615083619475195661672038561209139868325284124899581802119023286551902461596481731150053654400362931142607491934029573548203252532925962370963641899042932930702049632368080469281184450613062645711998337954025017967683320351327411243189597759159138478266014299491125270926119509100247754365472234402583914691484217135044147139722347380182165703428293978126458655205993252896062485757453506393267153222178549998575190364260899281837412125850802345955701269322230611404227637555420433283128670361209075931180865773799205167786468685424156824307170357932267754455893665568430767765868667914837503138123548705236108188277470068720187701472558027038904593492661692369097915155155583531886720001697902608751682375842373219177803692294432510014786614280939661812056562792879052328943007241858353613012335043179519449855733612525991410150469602896070291492299595386130175036844120793312050749333178911871962024038350645139928489969521908406677466234639549353175787733357002577765102556734496053553763471671420534745673678284417619906220413649939454925112756883468105947813174176446642927374188554902224109252788915278038515495019907549218496355893127289425913062726315563953921776854438063879716078030554993468395412792240419901279814642768355223870933291181606552556982480413562440456999076617706307502322366567020680112041110043022860112142719282297864387345322062335290878614524085299754405109015235612987898921985406160110994988880175602056927188821740949859543180516012835884249526729622686024384762915053623063257783152702435526477110554984547315238484010833686890814541764442173013958933642416358448135676964738999180392144052014705811388503539045725820391523660170163240063206092839634890110703009052740081685754242626526303999954737539946598840526029757932568946670291804406489435356140098049646081441862996105230909548326942134323892407134894904555134185434506568094141813077445090855235352013556199147697215097063896680423377429561150096687970850656869714048121783341221362848832132040626078513510297516357808545316377502884675868205546051877686216600699188474816848005398951834948424450116120967047239183262930778525190492889908297971833183558272860060867484983834204735162701731463160638355789142883070633171230408577006470065675368071515692938738579272045856441076176311037528692331935559011774736809219016584649108316927899176057868669790855133975034661214910276643352908470400598464823233354694252113667036871068093410325530298305297062983361648334611231491608727916267485160376756764038880838395666456898195940324715778649154498591897271495087389262777514897192830602305551856551299379093551023765295651452583073423145441398474633120600858060878401393553266447974149820107271367485017695210447446991523130538951877070784489536127921456296508547940584947370777145406528457195842169633776807761716387879630577579252472432919353403006848012333968531050358521808224648621737631197945710041377007664137209940676203560388352260845918499145040647436164942141223498502375614123036360465899438152985331287372754733764720554262559835250483001904266815874550557416238170979289765229379601157667966620723574988034612160449423332919657408090627876491162166812140776122420095496730646171187963367353030691641915533228313998481574128928215828600470808008830293759952509320126659425812261122245369950702046196812937353889958903484709327554714626074147840681791955890325037137357051753659311515692564106208933489522234188562121250755625034678222831263398708010790193582757070907680816455102927122197782285291310673930521199449039059435995186236134205294414595983034226995566061726485319771519896664440054217561911584137746183878938617640983850668714698107499532563175289596082260782519847082638709121983429061378604131181510874652834461297740750215716775511750633086047294364568695453091859776151350893313585129921991717842354115472722204671684507026076533793898109741200671389211088876918459838249463216354475282287076575980807427540763320215649043171731730372477635956861020063410688906179934944945704738581718561774902983607888567553572721205873447212482415856074952785683334479737862111643054717439698284646840718883118912489236284309923220253404727128621507830455209151894675684432534200393806124371883317017468725227636613116879648282203314015857057365832731259771564996783407520537473732453534908032963585722502699896755123169329003030198174963370079214975718267653983867739571773359352585066012198117190699272990584393217708859206832708107202350388539595573439591006625478076214092953415769008396908010878377633567796840492349064586034247516790584758728492408564747151057534546315612325560594315765963446001806609715657983813595464760832744762143243209639113946380874793879992841826178812884739267041864300532246376557585200399261138485077596130834642440346365888785032989185861723835068788206251576189047937206859203874134358675786851674939844055692912061340119954606497871549466815119084803644343344083250252297332199487459538719833788088605465376816289149743590222419333673297335849616930183825904808283180618615675712371046745748294506919707341075690796103182377870149897587737806160775073826813517540081993910526036262316116426801109735102804778311080605805433668435297822318457291716465780672340218577453372372268610533878287985687588119292587715174979965099257628301245013324675252774364107034377126493150649560758121159099953917651627408256285442995110286012523974567012393394848114646222724735682920584860208878228245608595309360522260045919846780090402270149321594783423814869598093642797144267688390436139351830381345317143285974882833599749932885787291724058283242972092788765845200240787535442690401192232256589057745231129540115643942375548849588224905359198988941454738149206665453020733400429130754118598641995477519686696135936221291660523818122446202445742784792767359932255631927863481669674101566934956520395189910668317032083105341533610445591431509304304922453502106199046866957066623812894749714850153067907534610327711468750566229031087348475010139093096631609449811545012219950066106911935347356755661768237365092106048100973035139404594018598080382986575095294445223271165874077078659676179117914471721554565526282744276319693230216259915445210203606627954707492726368220483035829641802619697479055702819425773178497277971970878476344429939033320196993483968625026307894203618168048673241835433572167903897832228298594291803554192157590287060830413517376933184081453528370078389224167241152956127988201671564263960085872362769347208450942713626682121583256868028144711183917637012974579425681932411524087027577325608280409726487455686119372598687050530644904057843659563233588368252033016251092420914581695205254344004333627382867570053370557161605483189740553613525297698870146456255701923319696974440566692185120577752470959297169505854468951063244353259750774081341744209041095593781087956091880090247960115472653363924154756323784611134850875430868863073484944098996175523582836473642842830499216482244437543149762078340744815315687261950114545349894091260330635662375582520848864759339452633690718108656549879704919650387630068206175509786935084162970372493650211857297951425827407240270084840243848014717471179901191392616016317635804942828558827276981312736388923473673983293737455939507316952488742499012255176947656206052913134378459900608231275244289246396134147249269817586322408866039842200094361540016020417933269572999645362589160515523962252930990590673426781528721073375193390122849372642796183773868042738166199671667849761919347723430543525571688682613993961874440095632184263127590169558921716573739808755986466368329275560977435550065146802418437962500596209349092128086884345718386084678767626207359533485725375947718276191370237606914580653638326699640399029575866867909039166155802792154869701738409662842097668402469776440105046663803384756166200446397908759750585855537438440603041736423922303543531600423844010347053184388598213865598011801034537850588503914782983541977676267486190779272603612487613483844977919361889706009101760264693538931886786600625026036240826589201064552336185990500249177424957183034723247825437643175609329132242086297719415950690828922957122654040284830252260525154847979177309471595459652193319109273727685370698680872009233283999984623673494625186070635410534887195320253552030769683527620958918856144860129382366087941755952436790793014715978283309168325928868083452916947673937060183597237288559844694637089850243072209012465690251627541960582961064184493790717549174109618624343019638379014260271294932953961578082445216732541510401172280874851473402828988727385530049180227716530843902903373553976818630445597779051942414066958446671189703476823972018414701935821288004618903697981001705633220007619840258328828477543980270383643411989082580540448124647440790404373985620875875782631839900363333504557831444060174526420441047785117172956834889536437988528174452010288689834951425400681542721392484728688080593152320940763273853934703725141273091133427003988551051497919561661761385872400106673909225122459897186324098524513738102586778154079805254908944718252174374987241277156190766961074836429865989452142615092022022909387460497635995130139418702863835966039320298300974709621274349072849653982081198205446011588384101579354935441976351128609122149782671362236953781338169144791759596848795540829007670388824719503950102317188517168881276128736277595139372544616439272532824691842486452082348267062996278581460152669222733467947352848017237998309945789093613165275790251444747317202612032921751531693127829605660673902525087273542543598917701661920592462289959708661086193496199521923070403683866381672288522740511170900688744557208174631836198189919561711999609920196647983123148286294380726083392213668449540492868629180898601671470060366183074751317155341049751132013747791869674196299959661355175342499216188680792309291838331657350477229962506566595745207854950976046199504147807653993841546480715010321246763223126396035896507847417742338941831348607184637898758152111441414295523702658826734187692946245693529978907229608326665749249636434820968797379103854426133830705587765576367763172387955246738216684754359473123463799159413782385079849155471470375373645939672185338306306469641395038755202075300387034200603908573711854865896512191057386203955477579143555765989636550179208181809239711568021897816256437732230440356363081281611984314917902768693451022701101725417404620478886050318814591872362836190616968207264417104300189631269242674577373669986015433349881234768791135857315847177769824871927456949153959273251211243756337183606454842132207873143066519183695154650271074290918424641271952373416145536368302545732404003862092194640669280052968637213013570920143665173696685774605822338666592398083265229958838664114003045941536221900356216314547930429268892500093031553142402606485683811079787738582623108375342804805360348620350893241860475706869683805489528253734003012030729312777116460290237376358391494084679580198560691583048824026990810516743445913921891116076746530205702130200963387913707470616058262703012230423055050685612839155737982571316848684708421814772849142406853243681598769903378089969068257915536173403922241696232176447764317724993702846220574349626943906058301234627837131703295585361549299580591513019364190867432285944771181519512054682680159810449109913119452028323869202718025307251517091893401777480085552145547099937777321574075418982459561164387203686260904185940381800438315971212408655480385202468091219941284619546381063905526525111164298239415170569677644302381130941666097675974367094014050066061092865795222733347551780637637901461620977041676107411790159500114596403736773720720939927840282719476614257513988426245518513138345434754341705785149750610008453306992019468344732307195476885070876153312869708161662685145566858749816329501939530710815134594176045494271446517923969320510537972456594632615724207274117742946140579316427300229635233307660595742520068174224222206899548132906503993144227338586125030257257109787699588172060861565175493388716204716895413684811940767513576718413640837339119149387973886963261070429265621535842960914502239939544402814775101275076952670896610182313313488731463142571547014977908252332259284840100709060695651258829594400016419897788736221111395736110249418753052708499132640234590807606887973248254667951807655251529490421275787237472861425459785149327116774002296387555459633807197050493259046761173960800841145703507277350790234595943927766846767675337969424278538646765427896108589570207432163557963779661494959615419670510154505981003350303261377605413232688137748734680616045287218091189002780931622149027403881549403012798682047334634914893007781642296587666505954720399778103528688394259200741092275654756527338022473580213892612910039203428303884914235228236509877508073830708348617245911088898329566828260566029835269409690644185759405632847997248610681874059270358528958857854172031700400203813841897970838431924592752321744609075256339452462205215423991804163674247722299736128464381354987346009819960212952727887821967057945100187783176845222487995049731447621132129369421052113485168150901077829084443098530138909004578512772025544201492756726647078399458900335806349810743784031892144058697705382744461558426540543732708953584311160753675054716124285953441846259896836459730666453541366937603203819585576010488706878366645815546459238195351147888370365378563156199099676681347689415217573881425658051163047959593196234285562501852824023700384894937556237759159251152161611056622837814625239150960083476269040742820609547700978431819445886564818004600284862168134752015922417395148425878555907875639705958598565132185315447380261079076602533790356233444741492894766761352491051278119670492200889977369082831417121505620907989856444054861254923776166465865391630567094989285003445973571164687586374549670031490158789247231881080477674284427063234041994651100312901014617889654554868548386756064790700717824731930748997119973878787661900963306092225893815731332404317178665425262211082892908974590717848141961972197307159687477708432409649439285201443996639565619488801960009710948633351019308576919883863140035301064410955956437817854020308078381667200232261134336389033822357676017689145661992481028161363030029546913900430036274604680454248691574975202603805290289931540732694937796328240378281846949308845947243680558652766254472983244383276731035197016812584775042695451221978965023706547361810339711084306112765436851013438841486354282821611653491720373028200923584811678251027788848059390639279557334163672285936941242107149090685321782047996834507563043493295085403308823031884208252869480415087702049071611860549862450639819743248515437738776217667061046246034179734488299094008593039740541055821917019500040069899175367489836358617924835717504416368047453557738186009393285423395286207562816795155046766739905531989098418182493401089631022543366279516877547357479492436100576474081588734654080774711758517132353967755154016363349479181090654934046631969929193486447409069845292740275129876428735556331017771595618772727354074088448005412922642812086259705934199455202112854677685705244266707661760209666356797120533438499702568602008071908717309710031094312161126472491302542833420507549979625657971416964558573204075941259411307557927221022455859763368014410182955136075564865670383883055657964927530033225433316369336923385262995168345217017861090328522870973990889610861673789700344088655600966466120140516835705928010424067821686619583424909895534401063198467137065995739439180843154478196964642938796104452739683471581529262682109270243593266160205528111556725395110133262650050125025685866610611299617343252558755413871454151754969953169234455733951629580774258908730434205902249650027407243823482226455796429548430481227339410921524684124895855617874773434220604567284092139679787437181991846415415467292443547999483790037293443283626433572043342849614629708075956214917251465180370212736836594085471252800851131267052439930900879050914572199354194457966688495586229397990419851610434958975338340278634373219635841308708403177798498197764740835395819980632255652498427778351980646476666618530437032783136016440417428645178628321969313990769673423308320048541679538638080117747618847469595680823312319050637259081514676834375809121058164189104157604327073677032097599702893947339247813876216838209251333658236092720788446045766504846275846012081816827974346495757571972260771622957156910335226674912019027267271672192663050252207829435792913086602629500089319989576453071016209016791471059044614033947052685914103172335626883068544171933607815567222449670859894539784485499403198041898338001966148059746607259927003016045531889281129554048688108919648870011326343317764572494384347101719144410217684422072848130281213933588407754364096009742388429890838303440525221690717326353273944932164864728401823498607983905618450880966300678812110458306705130244194828815542666582499963645224441348846976668180458471357667348568070893454419948194363158793936567246975733155455981495349492403685876604186887733696162462584578315312096330728379474132039222683541557577330745251848236052349990902329223359085357354971635612400087372450480653310606527726632605328361692724920874469711826679569684886117446225308425375387616333206206904045472570243718146122682420870919639310331592597721321967380163756154255035889584844440143987055876161797405358000775225093231175952305413070030878075118790002346309969604590480678352609127115831831838864705337950854540517586030331041946931798260476816247398302991593874370427629740479893387147704763953348641337876990287327829829912224278704767337381359253730336845948463479827211383908296236729165511417523480244068203515938543479510260327249023478196686464614779385508189892549820919111162561971355378214207497860081571195673885532479657429458703208714759439320001168337349295183350937157175166226873954212367976530762487730537655115524456547004314962054640045618058551894238716212893802662513210172233350595339569814371055660792645797384327218700962571363281295232419341255102583456239754934651854562535724949336660063618735755587416602424617907934362998537085338612312901256048984110655531699028549746920053277552713384539964372032445851872874045557175037626172986759285826150009018758868823175018428209507979762366944745227738717609235034227547281006986114283696835622955715842475488204384742009510676807664601094359922387123477204970761300321173782622435250563730129768061212172544423379006635928658018103070237441419054254642166463110864755770639469164646954755583003735792964110253328420385546193052183226910939404933687429030977766974201988366294244378773213803606853554079567127327060776260484466857343973601461135743756789185943947760659100194942252808338256057028597219947062624378698834537748928058661606659851254074185255163302505171188454780640554439730161041393295090910153881020310943887841818762592369981650862779376864287214020144215235878798091836481255475539306082126925220697615246302648158049514791605027473971855981042021405225793209308333996537974861599568139901047418625404989898667673331083535687546722281606194961949643895881820429695764728902016066258989521922298313216017338415194294651268991983515517421125259484812943788286349525054957061376838985745001748447260470858956819551665308304559288589444962351345765302827560371252490998896103369140561142676719135975563812469271551782862430249971286059506846613949661269648594676315121085360041514125917896077507984254332642927462889974885117208183744807279896331730439428666399368560295457560723256252329321659553855333596373910213292323250594508249067627397565697278311770103907893321609824829055423093316785486158651791898813466181541423408011268019438356807552996817460060433510748643721671257486298878880244948537701428242691529967970027911404564557576486503238995046543180958554675134471908716517288876809950486311425490318320284944400871747855042974716503479876094194391946054743468801024486595188275280213256216677919457585176766167098014193932940993789091822610329618266320862629577507146634432382701882434434012752005994905938857333015293106231555516973132667441563029973365353085215597301482672390928244219870485898180230764075808228482491760374678457964622486203107574537167627947148958218716227101547921927740702479331434898005009598242966732455973981655889400401775905590673166354141674441643252323876475597409176019694355215599983578271098605511120093871478703160180876304159702352616223421379231194293313258392880871454093489957581842958802793986933834862388614761542787144298482505213949807469334408592280688849910018301020260364088219157145355995090971055610160449765437491274548874137887895735907862160214636047673134464863555073523661203266355386443766217965256359708480074485286568858358702812457034027482235486513508715351188625548532290546696553967945144015859230851173060906447737902588365294221560198943973489485173415490040358759382672507638104564533725108775859479880905885817523454210815743883532013659568131261052792683209690208010109037767477448095951840870749824810443200668398948891176230596407331746862033235274267414227294027122564447634188832693023146831880503379322785272322134940736627390733661592879517194941873628819305767371829801026302623460770710874041971727537984295936732033465576815798257754738292196837775910828283147629903541669388492640878979699119399921818586574048446189594979632614808486169176148769317752356978026432989904068281252956233871784755159179035217477922457463991863230355305817958877680405964627109389149863275455436866127274360165912184230286381384554264225172592426983024958707740331602335047962363964614436179767813566855689548614307544554480377576037255660815973814268172345839474160499519262648196015712415264539605637881240865137180106700577329930544351139213606209333108856530590646162682900306792141774851919312456585080259674829616350009310910792003475994980509459226341112133624245389984251921125565848264142129869742866124120813866678219224062681647136859251149300831035438696430895239737765115060162468357160491008004831207284386421249992958861321441717820375957202559967150241267380729374573888443554190061057866238817299647972985394425191895508157046850674626357565945286428979833793457557154524614429582584845298934217209356405214232399054169442520765515803378563492533585152799587489121355553656690008426112866926003732316435652339693258643003673454307489178672160160225079255054843872947126494514943305448119643129929601753294469411493562773987345104636705655916218524324905138327953596717174499928879676809234953775053172027903400386274141414279481866260494295815511093285586183815659002263789209783433289383568488513225809926014422212734394754475497481937227891454497623639001131178754096359234208279669254578279000633294052434001353088040743880234707810445259576385300670375526027580161388539931100766702935185973686559412944285068967523890829506534095304267104567179420837179569728562517066333307162706239656885706337737080724060182958528037726313048694928129082307273517053472049693730643231360682850996961965150800348554724804345072942041416832404676630354820440752932870491497507112628316268989304070411015910692638122574395656065748056563232525502980057063675614813187464792791099455210063005087484703336332486682488987111213370177222990130824863852961189329395144551801368383151666027935091575835132644846958751518702842612061902394106845751582300041394650596310585454042155170666991778019000640832963221357580299548032365720033428327283584031613045451582098215806104654535792413989284193822871447532369110495254669896985852554391495044557952746098949127491715436881537976007969363833761078040242344806884512730990608232179940251203563854247490652413048554640253217424196064269703992671541664635811666169419412852605368825481038495883433461010903364979931424988264806054225411618897694005839790026294186517131377909007285187466027937141049894790857173643664629167101275046759508490200023306473791370627523207934435297005958382419747180729772682565592475012080981827291721219829327086889840116250870115934245935692452182913393721532573459066816537552063657065496803908509214172509212093709271518436932897094441860670799295204904764787069948658250096431046325211123051749490092108426856653940451536205124638031821235626130427279579587454580098797882343169126936669916262428199848533173492369371197600099939280500035289959059918563284557832028812830004167145345409290413809117603784259842624382112264417452565837865771367034693892165823336191317615372829386535458639412914778022272889533642378382218761859526807956489289631064763909446967173660825006362434250030228858750682595815604955313998080245822306088725770509618517274089567529664132418199844229423010155977854409628654217615573187879518658428954493261014651620283072307849714247641394359808086860942776195160953555366167064980589403844508903084538771870329679657385460814096206629564082729438565771091722559293853768018996638788278426145527996015459642474117103558642317039186916712368468747138060667225616504037410425622078042093336959067432904776171196817604026546956132804757162532468000351664897634006111556816436532061846858806449028472247182426476285775466751304839540050848865194813117714978820808710114508232173537619243855361057018574930882136790249476598309052609184052517750486533119791845180872188029684580249924642034403893921846742848866868321998418745031752790915836005237755625512321495140364761573494584247031346441239273221206123904958974849174904309980777708995127551675871966329182270628348400671505079041123116229541165715480639565620254966772198544808282082766650628305216353123305368434227604735689758768416289810044310236649920034932342774341258149313677793033041781224338624171197027300892167786021193338191500836832417470324284364913531824947870199825086146733618431866028934832500636524529153956320883158473936665239581544644403369171545291299727172575372864126921964264760622777683209308292425275950803666553662667940050956380377049708788842993991714053331144667064681993444879455640107053629208262755813771265833746086321518361047585143499598617081008207399507513232127614031061740607794834038428517281607142820647338460120705371975690474855604279065480397313885319237232553648840954632036857040195623615443603943830680999277912576753721820502839685338156755095977684620032632224643527856729253152111817850700139226362059166221990120275626731923455047900575896328235957579001027812636387748880708852398213225434736990072135425918402092191383634644476475544338651263689890648850687377730569538382485323707278901130039743370323611771886757800890117735183180444525841273026377895724852115813349091031980505885630461578526550497163037716123092846443320012783372245406634742889539255487164635522773780725603472880627249759412002697724778048972054872471926689102487355046462224757281310491680948078816241378573482618450989808087031434459803516908292135361550879332686945513191117094000080194968121712819506436847732127828414759532614984973454421164671196766629549948001351128666224125421414565737284260673545786383173008545280657629079207375999795478150695634532213992992498194182862869254751826508786782300277721960826532076392471385094138995896857461695849113932906128147624543501592080923609569596358132467523995666906310582607767646297400672496013025584481286528128610663778420910373559151910024156556508923666092277729225372903295412513333708912967766886862146864749735341021841927479489967532896492306077433773797871649917652609855505324320393958758770034334142604415520049559441201914632736628572625293178635700907762885895354103609115404883341634631606233998931060230794695669886334898756438215931413090704699841448658877280350060529345168670155562742018380887119840766300983195286384805398903439187986065785782731809296295716606527648647322705779957283415551764010238622363622396230658488738863775426831349640863689414210535360455303462102427065800347640782304659774739473224365578214300454264830596240205638047191115829217969379154990664520825557310589085334920495510078177100952819998680209335278379274648820602733296371163331901254875929837783933194919942096215030712947514743100311950708246683637437998215993666967033715098169945950120661576242521495647021389080638891384275429210413400433188741391488913716984094602838315659373576018915813807669135906072831743480802061686509780095437671081490622434083667874957498487828190677035554056541932988421426518431803307799470255905980032419076686937111029457662853300514214315972768344918824943664463680423496366521165417004751739249489345673625433772097083017381439413018594851001591587752979757980363146976562513798848438009849069160559292319461456460600957241070373408238299973409019553581246986902600216037758673783326307750572831371537914330719895023739555960934775237258865702703703299015310589895370892416624830009805909579746302147446702107238413404584841080347682675886599180547085172914535537682759666052891323632573809729586127380548866251178071687251435187263108519572291091481861832993190127160434324292975961253448000122290613537694219547367852380326610975996275429396762219818560227609059148949703949062358067366688034202174265242633005389624207457907338324872215785662352526768745835084496484313543047789357242467316518072745752846215932099170096414752402386252273681787966480659977353158296582948322409159782761742104096432298106069855047104486299677531558759188597145217247778532332862683299247552745385235104071017518892021706515008315247331496610691509204130390948581192786593333800624706505049922934583892784599586303173362257707593349141528909757721736911785897908248451641424612988072891381061172334325603357378241815957722255421727238825964616691954178455905674425935877336899594401037996137157873862413558756677741487519244224635383262513486999749650453696447922646866966010681246034202903728326650155647475629310298069744060794963580657281630714107642511418065303228557237866364366050022777635291197812209465041330805947555575379860112519080823377838504871625089758379020524580114149497483510789680093391566930009075262262313914762616440986910156486231534934989849936202068019656611738945093814230384371687347787741929660908255173413038860110975057440735299790144034815015509117180553005418100170508018953912230116511024639455192079910995477946581844412029641127784625589873037017791430376391724539831107653893574500639550127117155251697101644931585915251058331108891162296544022874855443749130125910660649547304061564826703797074296233009998392709714009049781320047764225778680126520586971407987440111375848032790133434437400406598131818305398603411136965918504087077792708846192193427656978226922185819779153550882210821044968427615293238536898893336648563935231673508515536664804901138726054076312091610442434683692091867312722541645216363082134290189069922833277336054930578085217122849553821836696378566297613614480561981674477134857906276322660437342035346669498493609203364115951403367894437961711957127765476460836245862379904098889312153278834011124997979810895000726290381797303490188213581350934245920683080368270296326188129346540174700494642104291531149310441704270276228973855735545725454241841453320849891875127312796421773593725071715997031862608984433519630405575291591614533137519224402250309244014728166161457898219319895288890650319189081525545305755691772634251161453210374277629636998912206773197761889948815642317529008112158796046884895795515069736137453723258606555289696452518161646967947407815457765667029553470396098073546329954622009828249236453448431192514836457055917377151163939190302910364239385338785568170086763304457331022943001749060875284053433349985321310706164638700297716176704405356812921568709660591473862315924604771106988957950336975740830118160957024999771818730520852066980058446098338597640808833608620126771182101094986977712920385031355191080551139099819892659308895737336630485888036145586888010636910627122979368417428956022008708288790628329137293928699661094240959666141635825701127989681332582581877457865943255900203908163271090248060912931670957227999088211701225423520784316034239594298582779387905983434166947146356135800226660678660314103877475693718968126264200959861374315411987326275010449572853144788672831683489498414895984991819827230097977045174038345008473695156091399401432815522400349291954752977126635670112080588355863734671950224766548547067105692982729684329458700295437366727177425375334977049245468568414481516337213299433157806335934076705831273170613629190602640383182730486345458607129909173483877777965890365176821433550364246287447795297753153911596528525384872364172697989823417934044834770792282283229469140923246940097767016075516361999830996321350671061571859207570041987885977877554520878195659227022028607859239920606002069815101983121024749124213510250091349771535445868689644499296993110245537102404080242549085522331400925253972028581416303286311458913301679244991698211125774457433552147172502992151169336565718798065506049935405479472231400748671137277357528772945785049181676761076941868989785678382771188985581750105555890335671982248126344526818426468742688209993735386547726786006530353695226079002993557541776079275792973907376459470314992059201005749942708378270380799126116957306052491545579554104111181661566929228517321124950805099106002366289792342883358911009661679214091984572471498206802543887602434176465660625951472120368878901763567969152458806856374695979641519311868730890132350561448086075296547561766595906349518562751318694986513989196499236481421999577890377461526642630106879194620405605462830570734031154372480824146983208179959034843747905045777493524074823302213844628394106457113337678649596506620178825840495733204915507968997629015979556797656720580178943010359195569575305463481436540172868908861620194277952388270902164072417678592449162508568978118445981611226029124612866098859157384159467459214134950793347387508794224876887368247054886188762460612104556689057527749048808464808510578375924887636873903582982919327480904715801702875179123789861553299545888363020603265996812626109216001654596903827189916526327101157835142814283979563187975681080971811027311765894360956611373348621515205340201107329252804030753217562365170740888139255243571700202154238633009766734906330007597526347438866915257302756775704783294908446077262614334574086255058557863277538118676677185220473691634262566124423806077784979305320025161052916383703858867949941499083770850423273720475367790220559340346624864541396829010716645317680998912844314657332128400083131874249237028520815317427842473979604988985700116309389120770028786198691801992309331183109985664697703764626242124331560397201862769532138730599594279375476680833768224654385210357596605833607492829734643498600806521837772446602808520816067129738495726487135356784714848954827090228609371452490937660998769601209687725213505969080253992811439386908953713122482314914600750534219020915166603525125201849693756954659457422214329406211815524803216736528239639866978247596488977058398546634776649073004262928070265578009682703955342237097558433577271173506804154891475020612803858277550590500904596604587160732702279113879080426523297285614054845095548375142600145235560167993604395103432010053249821200402315361688029487136034356252534086227735109280581201683921555789030985037592698287312841165385288313418066853686880430702445887488548904245828320448216154679347174056871008892679353346524466648162193071755072695320516889012816199858777161664381070868078302707497049316601342388024300203810726002359232423439752932319770745082974648178375132724090112744705924093112287416428320686363288559862412641920255369652076462718709411006876230865273289604534887111476462788086984880351737334675485361318688164879738955564078468928921325733764295356832550859467584295185247863793905776735052761723087797512344119640671457898967251545475967680411699809174590899879701926829685876035406015730119706370598262221427364343104492386100809616137479995565675200846625939625860412471577061668409142440691386770491008117792009350092052113067160697038850000715098943966423437001771060073538218510981108930714896362571938722616128388974930777907091245945950038203568817499009887297324984543106772282984144638532359602869439197760125266573979433276775199717574593560506744275013063237977693239128075606833559250074578462158696826792494209677471594584518270405898722090511221339855932394118058239716078329207923234223863455713743484888320441066375909517315844203141987141490153706406025256679005053630461304638052292127925948683765322570509358889052181199175274975572041568951163702833433600843583160304289603924125728032270593800123330731302987849533694535329143458365034156826370993802740981943122513656032527964095150057341063532706662228485626496617654651559649270581508833019037142220185744783115420645630313544517121697498826855880666094851872662355189146300890374579194017396081196001325447091741649140537230501833660300969525681487490352629863552913750797496630371691143816006469979217506027285347438645349487332040489788417639888412147124348985961266349611599285820520245606105562468565330861498086962074434030630045365385521039515175880032782773787105395563212304683670423517284179746766834941953653701224785180684252751007617908221442041249476620923312816163476306513547428050027968006485277159958478439839679196161125234939395385552113139509311198203771933597590994766276734829213044018225326297098736496681772511482259198800803436285593982374933099146175130362224008551776026488930923622851713026144328606696709080835053453387017053919720634388276519344477615557494971238271427873074543622147721595762051440793536998326233890037287962267762263674425649085899839987511788201944997307304064508811339379710969962139339515861210029611845707056347412188292790128494341483393772431954050772656570137654667716445066531193986213738961964532655362086427016505558724313306981426986161041715789245664333093914219143017671457801804178807742708170692251991226929851352999563565759222195308770206001064409317317839621127419951722884938495800896852368219401262182410616241528787334212145437694057466224178930671840383410050965764855171851799030459676667727778396173062553453179165596998063908511452536985527783488309869409061979360544124651037260159219482523358460678175700690389596826419987830520894674754989811135199930434782143949918726709584781206038370823550978215074962598052058140723474698320201279784711073401472443064612176808537686020351661546620901118493476155459390151317640417086470956539856492634933989512289877336058907482649182424549279160771861121566886182350835430993563526801433326710934785492033562600838145319245369552454894207124999585129310023345725547966074667435725398665166506976191902879851712453993666468397990374665123872085770368081930925252798700297881528164430377945448213116193839427078829592747470014452198179803067463285559569989743677552497427666636599992252956945855812112379270337243967014828960335768394818559375207523890294045634829011689732300383729797680943773655956066906210405193076083324134012397602244746487030831613198718103305104706764619447704542585691893549551708950091857578124266729215603219288505177589271833868663951950708370542043770241352773811480873239828261442549701626525573360576337611238109045029531614354345551834648101318264821371839849779468010373245898594998544780725495969903950757276549125731793443853088774657533237740050307911540963890109325383618664887344353912668721294630847117751420396199498020143887533177279784019340490402810098869122981705940118646824029973451603182025180246110785936394685603487094706633211286529507791789615922641990372830246390614275796065062259392696707703875815831349859517154792268760497931104370662705574328772253466791621440095072724277217403314047039841217928411065750187482477342826869210627258645898283521540595343260222782995842491301114393495888841808227764256578812827911237141182642456070269427475237060451344159140193363317295590586847534399377742239121519771501055428772175855456102467887087759591589434692104524895078644260576932207386672064566684641822291960915748484945896423762821644216325044084805595977021062370067388287323106273824118870842159021107552705443071043177765809088755491684530796568899561190316532255370498871261572729107901543763548752463738193902428526961952694863080859385943983621789594132661828290768998891032089604593730326043324972542763560040261665701426755639180631188309543263088740577620427011448115785122359861546905864341679352100534955842355486785435735395043856310118933425221541193026564002152286730648092285763670637459558104457149436853685737511534601290385433751137465077575120806320966179842355563281961387087861585978798174684176979195220575157909725667599949022331306553321141105706291045864386315503395208530327756427700807683722226375836623668781877457649476028146311910086042311646708462241493344257424800104676529235212750888421789966951407754317256739786454737063627235144123027957308023199357453964191287117926384419426776547355059793690776636701175539310183723276065615090223592636609088267289489452397299182052529480813885975912204572175186060202596978259449635483840092254082429851742759465340729930711311179328908132573911937406517656933385438779101885037730672454463474607208153448402229212817145899415976083901530940187953383450136333797580817947986416396614594119465828546563015000923779568636355114892907707928749473824636180519725908383441456518457263885720766447615713057327424168034611958289675041796884836589699318473066713402853671511419653201918136836416034834005735688536260439785350953065347531503249220183691605055068157209493647084209767039780374216171110939976576370504130516187088651234742406444681323625099538659257494329574199677789768697742231825857926158068733884736275987986646472667958402098214645931065353962564506526796108909422086282261715055753546382258821767679486007503450552601719508159798526623393538380124464863997549676541440018825802796428444639034206228357621702252345451287581864023644160047164997916918684891196059660370269793886880683156938308887952785542462241360446612430198361901885871427094857218896503076743313068145832486051075516923910348698554866786412852190364765423962417944882746517437651192068180887137497381128684316302311478462221215579448346678991383262162787016104354317103830981223351015872865929660850610930981434677384560939133108021604244098516861100825861954136872605700708695487574591720519766728432370268108044115716399338547856905643843508872804233028246014276349771008738351829123180388442681493414891079007606907639381482568463822586107457946010386481601039368810712061707353092273572633467516829135876204842174518998411443013833863233780694462317796750986141896515029598448935109308413005507095608927087950327530212102441021857823782178120408558415929386492181470163587912068212692879137015520458563826283024097445587048424872743837034435119044245482917956311088660416382763319185338961133680380800171256998080037945250934800650704714627706367594832923532101611487520208106440172285696506230236173971346411835456619407970779223673641233162623935028707587966883754994619033842636894276957103878165882315552842793660779641032905499118156298613177216002570657388355362972237780229780237069852775343370391469580319494333395458659964833439299161731847099201542372788979913062055317319248803509400540237345204015475922602615609877499286491895613810477082368001389936061081128382234661587211889832410237362603221837283777709155143153497201207333588806552574161095135932818336420854047282722463558398942128785293393762700048583002305985653216998334798913430262878155787249245183706869343187254645038534713846746368252587130985916762465200322309010427225944417014352256584281667571315725883018025182258506758689129697084172365877767833871990124649549121116687058389878122270578222793660423978025937566302391018149549555074951365000909862741023653961988265672515150590568710733350815831590704916012866615905663209713565390139104629666584418196089083174776213971035351325618218515279269596793283629611161346114372615708831333516552799189685020185830992342488045533865921346046519425860957353368719361046463806139135777798518123684690520404918745873574593897899726853362306160252921459062160478252911686056070251546867508845740868361909763251306891684181516015833229596425623301505479892011928124596029318458948921361842648510711002537514815338103079194348100583673623590200997668670140875228877512647699859320336354092749556020089024820042541111621251778821359384370281498831844140369616009568841013632266163876441719840476970874260314265413606688506520934988237705860797771931303950842927232951382833027645453712133844165740487617301897404396565402669735457317616975732929163652451275690688167991045000512971637088449498900754836850440803852778388270715164767929729222790254565983019388244043823997908763524933013229838366736965055023218669980744339241846876921757258853798035243493915170397836592105937931820684826591982784648282796963086162369044808391838400115917947823316498676194029960822566310769544497353338179077958787060478338536138699582908130398893742841360089776153611424875857440446485547557078711629881903599149044347644272290457367702100086312646750397821423058764119933232357180888955102669155982187278816793761811423703376350608932415778431806367194874247598528887681380450614486066580157222202459818105300988491520489343034818262699686133694672574279788432062155399665391332797591102901016540510628187137538371084211312117037385112566485494079078496250959604641731953949806499514753798439531151004989508609430454155373281129621469675996105706819842400286658468276605217161473031525052913008568331326344422423394002320988466983369064651309652843107201450559352158635201223784089909815021063009602113357651889343789503215583518898409216546218634351247256460431468742355519317218293405527703699164412623362348297645598650595162842956218927876290629207653678282625640020574400528016811478982834866366173616151293851706545183826920197597289469264498960748604984693253303492464071922675464713633317504337593566060961813326897375072823431738016759387166491041854261757559471898005944198836442039373870670814373999419013990528261325220481493511708300657803073072028683552109168264199316506765410815164875030072124834185482798834671218617390343632561118983450291104509077761980808645505231494724802726707267466912988786295495957330951338647773397872460018849984263117722274312615006495498244560785623311235741685171471550901938622362624423232193417138882570697167015285066224724233511266019417351795088124902068310603882879485618337351174755019732759185834620410277965087143558015623125456751313725346514335587445859650134673804311707454526010572585518945952817831863019232965525693657543484785879772205177091697335462441683247747428508708622593555077822522559097038462674618137614253912806898014345898916343057686826442096875582632736954146717433622162170813819872632631979064553381196831216880763845474085834501418033388442665735545421587208907089711642667779377555207334702320788774243478428898408287352501313381137463728032344668825867123506429687757418733011969116315856735610710147596734798380781089693486569074069261668867850170933767097188509024635268383878868560751619455344317846640223730471939804313238637636588680892813671344164188221823520356069138001484532506330542211674313827361567737363824802409874572918000732908805399727263497961528891155334249611658478542401105995677188876402094653415551332775449445617311811232713403652654402381097011759478559934051113623548214362207988028848493527848624900080868148051880043733644148338186492697885227703216720026212192467856733450254828129589934236517726230897885390231030426248132836649508967470878423770396885350679789754377854061568474055530532688191198087313884582948997745526972949623055179441292611291494733369403835484808715594823862089308242639259123930502102453738338434313921514067408485700009982857414928761783536712081914338556150273771443722720510120134725484470400508540750871079054119757776162394701148508036349108090602208569550944485473136082229402025206250669288687232272101843789938106701460418384759613396865398001476256840785194819536562273666767347993784659740171609508256478642429588588026743025153781826898097953926029134415017045748493727348103374185732172855710235733630833540911267074622733841112462194753458793754416015350325576753014046578690831449826697118420939872243013188634085638683022808489147568255898651847408328463246939678082247550353370424764432003375725894428966895597203990386144637327022623093007975967129737040620191193892821463256854520643546142508143342846803598213306372500865159686156745188918001789767000125646435351507466018387005141215159955637480930670910791352603209307652411073237581666878105939596312553908007073588700615242968075329586797829155768762307904467513546122221611107838322711441097189377075974680221198450502500521000599338084123331262891846783228389292691201818526258210340138976693177073538404324678039104399007357136093938210008633728722796649726807758046228431214141598446043473299090123723473081002240669166712411336250500559906068164168472653612726536861544129167188979214782300451594302551283410482426012723665040810645405180344404185760382346302745441012465764857987852049260195669065679211806953232927798586261174267370352843969180697251264390544097177224886511737970661334370916983837117676818393609439185439924862172685905296092793666068903258815980171020956344095841058511824302633739024766212695681355909078727044169349161907719954672998488245282053076622016445290639417131026585092051434744527986329891847994782104187464050216278118539029486226281722486496343737087251554076290358695493513894183113436241864696931619198068558026473893792814445187946519994985720569046722888844124682141242800526874935986041063478285905462633612723209655399469234939223730563818764210992643465463339959578146434667433223148835237119937491870622938164636426572284832903464593244126857326330764232806144338468789903701016533690105804862409894677424886710979674310699837512991957295604240010779753894750556787209347302304762463689597876122585483309813063880864609202681794417109412438599630433017669241735822505536714433707734521290685478519170146252723570919095210821895572112370962499151228505060221789555935644965221999829286895224263011792598331568923803563801050510641613918852418125325484662004714076610688482576085924038765389635351592218747188892344207433313023393672574355755015347310779095350183319847878806820831886732359298510294045034730254792893567582727206811626869325570641308652487324624667122930791810794454231800133035609425345175200075657704155128101530722111447760938120250490756135319518031282494314123007725368036670409209687111512608064384473622463500623084758004020772118917078265687500373373292664201089790745445182337480718554245515406883520387093368232799869396148883807590136226721660931480248070523531891520583524118588046932499579533591446819114139323203294303063365268134254087793436699959554736538688652691100719348730401090524494529525480056819965999899852449651538443453104765849179617411354259491879261659187546554928478359228006819510283110230858712000399736086586582435377915906671333564372199535711742061262283194359211033501469113047941204382244479570936505980554634301850587888062843471063002816536115245570627620095005584112075752073706642723419460561314721552962772246263201234939788702701993735903783573641366764942776177831314846774256508112048292873262892635213372123984511184545060199092451993058826218754416152896042822096412823343084391299656079714159941370362089705717677189247143735455371805306392637435313036348689282411747025600676432728017222217418205539935086209892458281080198312826705057449770680731371125737830500471639133916424384549117069639370632550134664679665038793359477228641304801941072361649215411958505041937418153691583588479800411680389013229133786597146971312832493999566622264039702036875687415523133048837873465867672196929913467016727646917920837267390006384917615330025980957509792732542297852099476706216270439018034767546625668637399909374374172246378187139505689112185525832755871557055367650274914799666603272812846970598294842325675865293545945561766913538025033025247795051824199166720050524131540254634475813078591943971136329815397524136790310825926168042571658478970579162940296271059120648590086558295564971949835446798627749132328863125521122438467059739040275149153014215774263050163689533190506879735045467720456721915518782111759457726411550993737446031924799021198917873415547218155951145707301352533422005115611879530777835780722254030859763875228370165775126942329441910320101928743405558749636133478380113019267185955762508904630891728575728811648879996287935193395872622812411827325740623921711747171715450975637346142608070233678742478355108400332006808171727551950236405700231909040037720506615354134258687685244322083120747993706636146179036277312707401035388078836961373735867496516128241398599969081823972009254209241546105944077724132281612747832289497509267799621231525899894962722033226083860556591719518540844873538859992515245252848933357520110914723843426397518706546795663990246020048688881746933575983783918234896571966376677381062858298873464669145739361438743110317285953250706179342128684101289911290999460312459293957370369844915256379497972985551785397891464481964514133294476733219937731321715222695098166248114385815387965678058418578985078836804358386435014413869681836094398361830633250007563323806225027251303091126979304499730345516072062326597044025857156922277792026741049839906830679047026362750785844688585488016118667953538167219392362998970034420624680264299186748616797993632900119144637894448542957394063175541348256831092905200800192877807358242756363965945270482853585683060534506934818485290475602013906918919440808829021749387923344107300779630756083608074132928249278209991682565590801364583708928385199219459184673068334956127008814159693785289625581881375474477163905531837746276427249578656039354686135691187573189721641249248606624336422382077828009127900489354278466895207340389688106772897656876523939604359434570919871417244243379431780896812003074776999547835108302600485115804183964790713090016652501981454740822583193820703979017901617479068363100797096627964929124624366835288640906497340122722211675222876683495938319035391131473662849268551022426478558548441395313561999870016525204248256349276762745805923692531100056641972355591383734609538691379606062209979720239548720744179541827745147151007429721165864133521510184424918829240314875733488773572306813577254242621743668645530943025645171998711267699467132851239007684091522898332732218336877385401973772222258243180132863741491226108286373284587004980421110319453059708133978070368302563737611461139324349786934696235794735764974578910501063684839936819610344653798221554114970913090305268999492496648641837645861293926297706015546946518146482901805128026687119944023723631784968859487255610392259476155515850940116437423061919188491754098370126328898732463668402362610900052316180405563825038072568188153741601196824768779572641049292500139067795346742064065174006283295733212963845575820790416461504205103493719266029592491286967546521981726872133654355743881983733075423877347537001452892144121580315510821250128400363105930141565855586124691849486668195285816708011159924446962414689148198108693894714646550103113415802582816635658246563462193332000851228376979396702044925827981600492832520817357210271236537096032938481043727225380592767719010603587064925844463914216150246941817004400396409718219716254697521596594935940651412384326387801427678088173114808797793161896602643776543200277758288926683581236356344324436791048501330194995243711008183325304586810509607477275334955709402592615973080733030675124125251102865420535888758501963031769402876784266448134467767614833827495069644431775144606442727210219996068721751026386513449400154069742574588374468912539765812606130458813338886646417948860887941980799591349174194208134939399878702807184979538391318217922925520313648524209659150705608466404780124890194330309691266245885436947587322658948824289197168780556581415548363072531067411460567393997049277301619976907675131959815357613904333230244845281559312005968237459953257258212623479361460204647530686424128078651040950045727301366206277401820039266083569388174704323668013016510065296259199648578064465822381746423199885571804105415872746129520527582097597951808344052175061700728809208323691021721580226086939728674458520246926341378683638182063645390356636577530467772531738699335164729604883147884685387533610672048729622079983391741696232625568318550111134555932925972044860331217585089040899241957886797274935803794844282395493298193181984230629696743087696442068440681073798041668392086169827298875796126119589669121157047415372850604560824074363565156158197041955735480581318805737548600234033972854633727418718001839318295071911070602395036187844650057603869219741420847600236483811192802358943206704128902109699341926887489551936802491415665786282614990267865345705899363953271686953061454531610748494241889494830965159447924653028864669744682022911118081736803924312332518034713437521746356966807326725157191538812503985129111456987148244599290984098345764515855537719672991390468763163692692967492586044885981568552029671511000743841455655916143274322751036807110068769937132523520631097796368683828022888218799222848335300411545697602281875308105123726166872585175934319245151592688653207479698097596488001764073034833204373745477242521028789228505677135720714767974687446868076457030470450246145560390174403176456538879838942301724156842079075668419987911554158030459332502950564484108236721731412225834785251445873419698402632617057777647057595244231028041180347616969558972000964417157038380128133373502499708674673832008991647876215046072976108688138760999208717668150363557093303925588326198210592642370895071865388956375378082314575089779087472179975131813350423233856290582218038425738952834841328587818323383334044265302440732275053344704227405349918326033893472702429111396766626164571924167041827967126195202045693413346515617294928324938233647815987517329798303890423816670638036096064931651032795448917078468031916464605450643652516692302948281492768193608741041470530053029684225785996824185194602989945115317627372623643874424812977466080642776891547224386969066077129586506671567874420739729332084068182409951535261761020342044361583987192788038137697646107594955973889181218741068940664053017854668904259926985335952910003346833706574575918903286862474230460925811914571855215400765666214120358476752260042322592229294119572994692024242424960663882694840204951269359521047349035359144142156188682603923645629448639940474984586833025945648721232814464293716253277664945429146846694321282237740590203008115712148230322028963327747041310364640541228509734923108577010325627831477218837491660430149645965455024265240248848856781697145004008798682153228420357569381956259102401477137651975621132647103200290377111306584342511170816178295579542758894130911169898615414221428275505650897949948620010159794630859370830854548017096260756431178481461491583732233343360908161635320915992844136418950689318489278461941210609200572083976420036442631586001268614249398609255629845782178097099665032575336818815687174060741899968986396854599000195215546056455589989720203229604667555999909421149986751016708522676962718971422927860901098731216624192766422172286932435345986496263841806167860230052611837295683775418312595986059137297166819197426762868789602602632165422166723154422249310312782496011927469462500752760578684795417003118979593887937983068959826076782286469373283709246291159256334265899565432084959407456903447645266356233909225833877179510636539417157597648117980788737070111536357798059366730844458612092676491424679940673217471190417902481912907722027306674194395001371481136276111839262724139221781866865039726000402765410939571626760139297727794116721010604536332538216127722128070892092084277798259161285143624080511100128475594283684226131293876665256289744519623812999980783242887586940178756582675639235359098040465919489642250460018294669184752156958011480648978983373196489341323300366904410230323742557317519124061520335028417236865384660155149115402989558952240810006374932361437584053139322537781039917489610914763022791051096706494707219011919631297080471442087212243131112723837519440600633088113035100775272096101907738765864894927461682373060534411049678181449707063205945047662586585363518310523091318923205130024306958973435638570089675573997569589639285770048557977096448750879954980851928248086504456159328542240028661000045374473688290895922990155857423770373833743423711912689578869557234369041049048390383263582859492380654223080996580825420332874816769263788787578841020662854048541717768725025461635121298839538096052726769204048724795859388098486846216576362926245309904480046998885421652151968515002678307754014164596920727421941342367218740298710891414377694867368114663459608529156558736646805144477506186128888074868643916443817279974104225369219263970798540631751915941995998232394249096669272130551353469818356711143242695908448818175303637003971745030421714894637959091592548416427266371845798950272054334907319689446822428743831235475786237259227031064896286122021204492145753702730209037267708422146239740478806026406388659071977053645399706066048729728967409718439560075241862483099185288674278506962723816842997919945261852403012525134027994542879081299808906462690349788990874723259371795776719723512423170157247857395551549705001542134432911192884219661401336325467955768195597239164285917727396109900581565596783979459149358369351431584082370817264240150369901697301556793944485685485062738302881112515626488416107709502303626000176058897642785665393855691407419345144323242389124149551206570133937139677144723189373597406517244029869904790298594892653551939982579219645816041410718312190199255941004680864009389468062386719873378380658675444466233687571521755975997770537375130332642017312605507872556473877944032796360019391788421764579945991599769706165554257684960483751877671809933355603046642880926218981711928750489414778767152980730589816388905023638186393595557165980261350885280832296901666021442614785646781925026072680860212169444431679919803375706323878865509048889779905842105035683093624850780477711330490815982943519967116624044817872529701697056900832880875398849186936557157900341365279859838883107326150202022712688346040476707003625612050892159805033499008064747532658443978696061789725543177592118879029108541234030976583460112983361734026110180924566730027563810993186460386280231944667732399867023458700919657579919972501643652616632306769024388104741833857059972960426297099510389967615352251332835581508820008756578538538046647474915410013590660045923731638809260725684460997866393672902389715852388939441337581408239364847303287518860128498207994907117556938582746144740509701225230446477387322907136759588652150683660779417486836606602438989751326853194123937226807225498869691403978367614231547021501101463743082899586352563518879307376361482914130681660120981262005589907856989686294157768182729200948765302260576120572336757469112348288489284727982412985523056832884790163893859739278889348425085476934804972212784752686257435910365958599623126143330759426090270037437566633617317183607112106559078861624932385288285488846891060650848517734255921615144999134459893413289589903914275461169052797284887811417108219945641945316590665484753847102235452062859157171718035410084796196693730461680390260911591428551275000079938142968822854841746473983694740698176050761795555917940910863473894096110663521084004572253186416599820004610675352140605475762677934607128801739522753251189619152376331237482345786996301295531190328633286176189308276933525667122970498051640929237409325541226024200475104059415894285161150658084311860088077595733572820720692930348399355558634121110705615289413943668277241856178165134835274354124229344724904244310319356528216942763018688190223192872017451566204273206430530081226768183709988634552368633224157490863409979258589105141495773800984513864945047534460229918717070657997132201745502676465048898725661310021165700723385418241834690250151681680037098402294618474665548278793194057376839507147041014415605186960078128462825840423494239423023235061229335913238743955223850297470297817489182517886928216599456667012966707791002522752897762672700627338209767760988601772331266281655042056225223466288279932962387143160564532805150963666116953664807519993047506677629635567717899575850575929551212518370524529108654992575818823372551688043978512927752326212707007362358052255743196445221025446181997103331770952228667422700209606388193468830872414416485943528356023678934957536292024257192090068450934067823929506205247418366946349780654711824055440512181745380552487021597886843752720179675531608244202896098692142303407832575495942483074224165072156667817326847096584181566935395611971489384695819562724100740608190576989682858968188569801097503085500960935866518725276797209816417478274721839909848240470995007762660006767995516809369440747839726032707361046345367507973381764380769288377603374261911902562239090770842986416226953292576376059815721183233521211431237536708833377928580147283488557882833261082148466754441773550392172375974874335054982944379485140632733060385073071272947279111389918081345771843868105504712472907991820256127400037563980918358214357796904783033565474376546056409277224189735244574048665261838247984984549045073268438505507065895426366546563348192409664883570364863814361474117171118437916509405869836546336269015183416156498175719636093619565090441123926887821422174025700128153751979310901627723549153067348421150251186305830081435552094433674449015748158387875372462157619436373077138598282254718509959196296956858013027724210966534020263976230357184050879091087056959094506799998757963245544407837282866758208559087493740670889548412184927905737619959031559067968322905002988327932232568517102534224498085364507854987221934423241269915228468580028817893227809285396118903391444019281220876239953617900183482488573478539347564578565041559968985783551634948825265519192440620885503022475245185674311614649951250334398201043670605455807920877230839063046067493891095742090916431913317902070452277755360946915319411938854256473469797323417457738886341466883162537720905686103387321881082523933967411540802826463170458003756431115185095749706762447966547746499874096080264768969374660547041115320667928766486512480088446654049148802702556622059024868355949558722140174415527133107562736717038171935932228754995838391714530869738475627683460667843339888441408702360781838103849259141772947281344131440407706832596929303443198990042569276847689430763419235195877052786395570541399009237770272517617692668748240559345392571548125782183218412852734250047117180519811636160633349986677967161360158582397962400076898363833237681707160450262543722771019009172734432777438058696418855452063553966110648328517000937036206012803751722614813264408502527015613883148864128267502522331233872027295386694791183007131834616320911368789863185842352091577955955341877805658303238855667425128444457664190002087859415021254989381822418020193113873079634321228408890692161538456324054224354419722329598126919646236555616692420989550532145229751829197868167862347350719004572891117156709382601961952950018188133113958995435381502830701386534333945524654327270419851592111658078384289127107194031384180061132673834042714006917852629892080606294948759011473485113729868170493118524734129906285634232148263377773858452471254865582572802731977528316934657555631707246634730870717516327786939156064296881781908650062071558380818736223980956271940590668500781331557560557402540705996663607792528632588819535976397596404534036629561909625448391100903826094012732084453217642716538463629956977404488119813305736014723922708125610705365980037916401110951468069879435046903307027546316535384462881375289822879822139609053960123254264140128429687452995847427495133883699156518366460703129319649108452170668777016943246913312231106260938238566481258278950503951202090615931629705037019375621940655314045386299088056378793315885798131229100123238142390252167587543187741249970533313850412816004663944704717799434249703339440037838004211142679293630462931095380883611801666710445953580704538814052773287663911125838843097527105364809630399820162154349607588981586736486409606700737259758733171383518465974819393323266725647216758364580012332137317167402588645614239472972345905404564993277677944139612240846688854441424042217746254851863535368541570935273147137209485469431066893482334892409279960281208907451425357529742081951579760881418925802083433227786932377503045968965137684863990124721797020937347933874093865508427480758556691876715190183457503998566883083398742747243630268640625772197589078678616318625865265925415582628994905929296110054365545114988382655539895966906011105921410180163919115937832588628123222859047584627998100017864409686299151174243969610386438742103542613520448251424194723754242639814330855895073081537167703525859676811715831927903740154108996570023167758181645772318117772296410288427497717952132513413451857351282108697020738627979167292516130494420286205131181965713372046168660905361071819849007335678727929911942199552887276452257731248641483361492066680855183101733750698223246551691350083937520249212172657048241602702019910782567761125107373883877457388343939442031781566498385859807195008606607044473413934915026343125458699391623963370691017942323946144847489078634248540136072910075376052391430778345993516151544173879672151726773413466313949897234284505716410225761159002761977485037469018611951647176589113659761632589753922800657535465573482175685871194828210553272461123299173670357785629832870227952242889893917075768629424213605747181410321335135838109940064795927077820649050287588651627755453688422156480156979937813544596828649721208936191422105595845904654436216068316818961329393589762140583462402544995519131400305246729272599244940888369068663148991493598740413062533379432687599336768165481313642527972648249075988176792250759515464750576843956338135454969023917199420455302904884389347344139406159176799648161925059504652295689255759924110533223888722808984371798479028027552624471313281638460795469504171171102287776561136203548238271761047345795634357492124313632694484729277427724179805300914611525191956381897859423363537708305963732493737373308346856048089906069862755217695724512641111695017492111884664055186747845060135175913559399136356026663508654330512982623685577306506416627871840665862369602047565607772321512363470421988097279244346183207641300653429253233504049167120149984104065493193619014003586324489244411832413774881176780495072297127033263261126734299059601171221777848838013826251786321583979606992963822461825176968111094798973580502971041479375372870527982939138007312066195983423584151599396195781831639627024975576369666868526780030218324006193113546966987276365096773518090330658013390863986117158308215864062545671200401770564972621455706449393301630647633762890603935289390611009604770637065516565500833285043831153586574938372058530091746176788408457496964007245691720965716191701125201288026350053572388437959600316932976850379436091548502239076568933097094248423219630839156191273776551976443943267590098955967495058822859795003018585217293599682390210772013174870520110360148102832951083630686837862761117008896597737724603817001440623942157047836140377108120989548703111913732992613957824621393225292174226123079843338788623719347378019213381766970399867351015954535476690296688384540794294472880173960458735879364673046263562345015151004523900194547047878678093555688643437061256437855651936994183379818153675694004176728878576556909580003339721630097218075518073836527004985470001076187808302810522180194262351797963032821962568283524125773181712506359909066617503283103673221897794971806371093752099939207718804096527935684085063832613068471833970353683834276578532444973052090443306075474155656176391746871021622415379340079305703576615425517599650215646769677087117646389566673717832409099348540633763525765469853562582620414753872148912977783737944217435572399755928356101670341686076885899123765910598229839589707275560068621929304767245021522289434539585134651240106938387997138232320801020393301905180202427110447697384438212531596375923432942476933938124679837875747210608271237509396823477097079527264018630914853790274755092050540364654505438708612539748441367807263642689094008985101298988417069543217995137285526584045148171401635725797711041686025816574717534856518574007710669267320650889912617031535884093380764744434716579104163901516428995436232201881072001235225502111530696753366874568517081314801814781465615954997677631746359704677880555198741812445014901309413168328878259473466194640870959319364488021937215189063476310052470232668885842570549304621589187267912896526811220699064788626275858324140791571315478273241055156230745375135260452232371375460503993277242843769271679520278497251724844494429441266992278353261437281030526972088370225746848950414334684966931582806262190696273937775277285842122533950310284163311469676070695680956360131776082716588553309109850924562905517910224448911636438586510870318819237927383427157483505943550351538434799293946887308391819523926523260355278518617687896076835070975755245060597688043891853015755515950292950143741089389280032011510798025641329719529210635160634122675199522381612882829962098188233801501827341208182796774674016495684033167399150638490790022310295005569104982119316446263646825460740335203885381377521211097245520619484022709084391489818269617537307229000321067290885047605798858155766351674176311212778529239175308081015895336838877417134205124034354028551656387324410269387574318941211152029525628721718140076452677616324621702362257029119672815623453937670091616690711845335955497221998549035362975665603166999928486941604884640169183101911282398584192916193725309314566168062005547695972733036556110343321234757360671423372816647596715210793057382271679292429461179200190534049255097004441084074788691535870567242489702390257167921352225690629479917911525484560924279107858141535284749220515118895993259797708766990281290664790158841309230734469969353567668765213404881203472882483345996979771538927870017856123252786437006009840564297647577137838638819858087426061328535806080240361758003922609221705682682098147195878253301494574626906077728146570781760863477735204370027418212154782766231417899958848206404050905434210144204191111256456570801959842981423998647316642471121952136724130559094223714486670662265034420958558808700598211726145359350305692995694800480530275652871636553996752897432919019423714513117729254324173205456620603888821144581508494554494326931527509738159495626741671885196100503505406735287738689523977995854406739292668299322566724767743989118188492524337054034093458896529767365883254961330265978424743916665833509574305081375545276379288037227026105072294047772395110526811545402342210968254604732769613398619389030111496418936744164993379862812428340543755099017685116422097594497261780927519913288076332296161479374373269753389824028608715038467591837204580555360560272371188258461750521695611429945816722456141234732177035161999397930036102643628122246715214913648815229315051854729842470129488755520015707135058568488023238482481277582164891797269559258967992065959708840791134198642363261237953425721613313113964621789475479842175135619359464688877872498552412659476564596894301074326920279205477097121421770520032150114439300545321726851498041933172489287105340382210159815326313567776730037087965211391272712732978146504113613661490303467869045191761533926749520512551644081096837084311108951163697546179482775965484407949815502641646534060155639243474244640655920623195496865753773927289340755931155850145211205925410164830420250057824246288685566816009255747215584115436500140627460691299231401908507051946975944482122809537931338598662979625785123843201445284838665484025743144336643081280968082894285851560667282471789298777454984779123285311131981348302634867212616586774254766178245950102852524985963241271103255652940659625405933487193967423959836016703756393635831725458967811251394467872228251291856288102114949966651880544634018350517528903493248790452096755714226672721898365450207776886143314242418182284688474173990302392020543093892474545397545056380051531806496304004702210263985408651821409618947423090104677626894849105616786649220056215802835447534124297414809684518002503655683532863838026868182171542048176540983068638030785901043882120567520788611131591947804582940698932458038606097895850224936034108619140132624036325237708495851589874170981501745592550444977816091776333256543869248126823689817342082181599098231938298514929435714123750241032439996408300977096685327779206233373750255517007333979185464323444951654837586482222914490343266385987362887361328294749878432544330503750048101217446251265613092513379276353668624530880511853435173888671585583065423238005538333005282573479757312817944633797813428467315416077820587879922392810406001390945880781586408866238905734092104451808063469657810954334751406667682944437646998299955470231152957895606905805884209062016688090252519135006826045557717728582416076586331633324027483108870262490880723998733588439175042704603499351911953011884591840140157763182993974243006205500097029164935537630911138213678569111120417551427524740343792028444756846696412722778568090882096211525942922665230174565479063333475668235387946718148019682919014540278031595182527718601732656340544589968102627143347614932205022100413767447374112395389479057344820665115639488479461400940822432990501733829805764344905237337812369964991317485827784171491954002831741129622371352217854397122780735186663243848241906567112126778482963661279075435633978582088609269635019677411300441051274804581193053931529830314056828430348039513579556886806230867797959925528909781823515750421796904236398837952190177358259481803497770215565552400729735351118545006991859551562379730818129216467561224990426379560232912117167735171888427503640508316491679532123481990818111096798307323447317609124270005864462253685544319372221200120478599910493499777704381331433452810818159246619119761891859127436944444444364031136185917604532680605716596166212020872727168081078881941442399405136613649399767177187878917488739748403639803030615834700099040502329318171546155220537473433671534791010079861665947796165508897826755191259586423826788510453155953977879328293174270308272325723782998723790479386922716789332355552098935444104428624499910702936764256522304809342612385709312149005061129512922462289480615477380509888457436377234400214598741587069234138341366860817899528872118371957496383898825398116710428155841680287223889308477211270824158860535537495994527770859583201957850087340573609556218365797533957378210793519591045692649207535335932312524283556479375253999990820347131436865776787440905071040622919547247720306216320718467621099490652057126748144288710032284067984849346852803093050377386527560574541267713151106802155344039864713406298360868785837917262511396813274920693262270377486253290100028390533278731306599258803000179855545449992137251957711110594866348425249199659390048740577507040670923120778541818572496266832968693289132239029064313978877364630302289358363162032569074613803275490598125351242749174023288987672160294022213470991989580364556633449888135835353601273392145420738063575644422891098498024279318424374730629130078657075923514530644910393252293585243538756969582763085555799182889903079782275912879481159060966964114202980523202591454346848030190591491860730337823497838253762801472677426410202207357946705522661020365977257323414935796628968471635584581319815332716754383476404206738118241197878466343470961677657138374912067912878157965834674943713679522288420548268204614789171851485453772985003135274361062932004090127739507882212018270633466191661682442180337704241945394369036023341111234142156352344284404507674096292397213659416558300008785633407301685777626812423618696034232948633066786081571137179217308134807174688477319344518673471414094053288764905767301162562813194528942742426732885077005736911076076566820684736690941875146692195883291288585866213327496860056376804875510568332356968730059250854381682388434056367585391823225302761971240939700451916956301165705428376533018982969730752192113186551652081858656844466857620467850348833198686669559303225679267542629837873877369322137972848561195456767309809096817528632667123232396975153688693687695273511939260986916768165018919780296442280557268226284859780134453847619561897173638035436151276321871987299464792413133262541005501574391453913811159879644355225965197042107941032299550654012168016882499575018964585121849867292543364720066694139317990848992038897832843364576551022047842246790439762275995135450515021621311767345855617128926975470298470825756236866058749165661040680683168017533422643244907724218484692777979037819245727758998415498668752931070773044037233556109177217219375002138187588089176258324493865877004374776052628427487367788637117840401059342522048916877509863929551132245930895590016239316783517539494607728231736455585588074923817450010453273689589065995382387271516574317248802581824955245108239913915316057635053849595531534509251334761396322575508694986652732267215308571823858891778120712610826440315928563870083826879923781365816859316256180777342025069482348040029646763256011052534285522520269855216205507323697537065887497641569876925268444835871125375914267193473966066085207844531336446769029045992510851873367408139365473276942478547438763220393778984783810738035165306291296497576104891526607717516648326721182066481597396023039709629402465875830077757100623998424743301823530314872458848074988883788840279996393098315144067489848890243913653387637597629538563931334453941220519965586402854230438578535627404756012356110779847265045475628754918120337866260116971367142016181100046555676438058324678074084028472505454176001175359474533006526571588175685079418895784302742206994366147662192944560989958040585852163850844893838363160603408467764822424368991926639622660381417141903434633484427633271835858195768448072079998451082562290426752186258195863361894476308898371468705978092769200172574620677971763223824656888207812848707722836620758860835173032100954607126014544815342630871965323284821106362294401324394387931994148099480618040031459696653085460140506846958928089299858995235977054350251470475175678005550340380544144732831410533688857185127676169743141671937666454986643063020409674935846770245051256247395893540132659071750901914392702139948761856144588253873581118204629189464856961663245856633257737239656520635022763740681291999212706150410787982576444782395926628076691514467030534031947035908265762506961058244122488510270849797761567062224540364577638582486509242297982890987278321613269555574227748619907277627071469444847284530534091771802819897715141775278301468317483518690322142547918888084707762992982326766583818047026698980027023166033080193475968246174721775053790190199948967462010088365579713725458928411870527156138836162977529510101554327772806325273698165968272258916861409607037771327098021960101352316115785389369642347636311060611927232814609777215501765586792218341971628036548971710443064953022616785353844658327330700181551575193827442845736354391218010931551265904047869702077955466981598198059793955192005289080275193604103370830610872747998649392933393019423795991701230494037224611826528935638206282473850857553403622459804919498591391520413045292713499606663727138033203156759931525748853284908334382455964818421656539789273510853989202939945327899387635760763303019498002457211065306921623687171847193014873926262894731958416445359325282729109238065920854950476576295201130475734132909894155846966802766092260028565773786890114257238873159234421615733704008883959511111830036985345875384062839623301730602942383696874012444148520923983363232583522036725194559949292998755209930340527532262103040189328765280952557510147876895419919736347034823246151343706156166051567559270135833470228388593449160293311513154342717221407788037947316844907882249737526376144071490716768938292208289250094530640045907777533117378278922639646633949381688124445770069991594204087035084228131339117152173865078145021588952693155899831433328243236036237381944859360977342775445962840157687192120586733781774828018687302343545631097762190089881930961341977442379835574501106763620058015875773170979053500905208432932582652873645537542403007754331502148658784336008966395864145722383070801757307269223999137760553898239093690226887885573440230427344812748260896775990419562533011757974324705549943323119547373475800838499055898493975979128243321932719243512127166553584310167309794782199620451977849272491104295002052600595559454917456491747708592179254795403201265395408081027499014628330838007826603951575335295612675394436709256120110824523161587748506972619617901156199459085272757064476833605050274142559474864350374083239074675258521577780723804084973859193269485737396947744070917052257804233998414530426942658732742583456331573149054040704956925852920269198129416573816260126630405817736399506124100965175770468213378866610120713363725527789040364899951428254688672016162174796923834650064953940824596733768191187614242094774397552703005473456134022726751284052651422980740458300601493525498191784426690594512109887808389333516510567003895397708444050718123766585948889280616646275805603612406770146655222615590446296930381022292675512534353539491334091573010174325729364075279180875207070291084556941890478721092761917205525770550646808285146244537808627250176990842499477324798874214869426381129561189727973281211782041150652662166778339186213807168753299432084202172232238438627285985041064549016615382069312881563491460429990583705112254624408326620512666090973351510160817873306658348878486570309970510281338807191782744423259517798713513813274439511433474577827547141975376287071087431110123387463811475255009597307344446750591441974422676579149675740242056116102128667376228261779016857581207761262241287998669125730171817997822740179247193998189435664189858107548424328923982434411901299212411290938662282037021313568487591673873669278944044627422845557556367465978766512222341122235549331804514720631626119030528331006695813118739860190227154242288560244830833293993280012461584554284540251639897492450249165606342371798431801512819472159465121365115614475813005651152065491108123920358193859265704604568986285068868121975456319065556449243988094254070701061501628380748487370379622543112176611994816591092003899032962181956238891752237673005840181884547259707814865755840929137026293485839529265865223459437176916480374577072662619454072955479446094172219366368755047175204183430497006830770606597522948464409160516398799197896771774321004827737929370245494741092539559994264972623401475321812010221756765726367501619208055124037978239402572051552112896182905790220148625431001847941029619311007590836940674215411099317309054510930281574162483620870518621192158997763737433138154317667293575283074037483212137554167705259087265340350098563600099311752757911781343101107047439531728641810956712203030575764315331083340985439361549453698174001391478353668934453446961097006389318881375171087009293861395809217170292341667229968143668223954059573591736172047411648394993739522426879326337466014199270589338900557278937792748844905832327332652211405132962729807830326211599881802763453802832115722730407810195227225205270317071025431348330250364171006338118297220624760406342653284845913481642419495811110923984221512663604692559130518225061887392396177514239804144128914195123620685122184015569484447120918844294768365651832911395186876298619873598862955930190245268835601522531997651760537267887587381653229384387841445089362490097547001205295168915506698579432359643310482556848042674934487623478975240987200345726586493989433601510103670590882484094331417225937197318674719332037511581794138647330479298853594922332026857145855829950760102105775665884443057403208520466602593912560910152173862523065669315755106590209145212853498083618019958897779590752479227132328729758806742472697523629187972429195537560018769249626728040757380721278295535751387151754236460439950061931414857365620059395299233294853878317048114510804327055420102348007590402056930173149988279092913326486935408022800817907809346899365394197583773242050727404606185863745794571657784562321443696570201548343288740879955922241081254373153063347093138430611038409740552876239406278458138184477367259259177308357846117765737023194083065422164050787474641208986067449700171438458436715213448489481202610239929600622983145752952405127564758190793853518022659929014004823504512434892704891597267459999311960546774551649136879504470645743991271215603630352218632314662863055955607388907616253630781350187688253889771874626335493710289726220455202586471306239857140523990006045696020839354196297034017215226074465126883702355472355273788044015514193488287088154113725663060759485122312721574304089380264255212351251700514427702303220391729433663810755306162778350448302035454107210565023708536701787857943554697308194140687172036511427871908645369683270361378408307106228985543210320985709284896380579697143061070328810869713779432513953694151095213864345155803680368713606147041937076947426704941988433447604622640778175772089322131976779396039507792911073816133610358368554017088326001672380685729590914053934585582056034190042923422568867702784219155797322027159005342298623178055295721788028162240875523437607111015154528213882776086720421832825501863165820654336480135070408977040422423375242780638157775111708042609293105145797683221529796429570342861682745729762426005121501163050774818163450374854319864886168623733249374327792818970090319152699894402824249610390751745555536104452260750176961442600606302293615437882590793377124384328286784114241353286155778187515948377761288912083626405723660043513600583729471705774870182546279552589505488935297424731156527007346145233829092914223937850244590193838324135929480810121007517451503860789866676906918941531041280465516216522124048292690005737282766307202840032872467180975555493675059247762589594751776153971088097871460783657222757349616347831934667252170049147246070158553979247525216980813522268106759957770080909437488220686144559155735683319697000071618585592629523504303556379039104260422172852870457315651401832707900235976229346080142840610743206785119152173913708076511023726040902294436148342813771937579882140524189798726679516306756980664038348700132185048749400334472371448421127809636406313212075677051376632804620317485426546452001383575019342264638329104155986210406656454275446616361024262450303337575430002228499900701065359074507638119331981090365547375800839836482025110525055158007305431136100449350119549955740499147412700569505438074314126201155549100436194688196796721823865405634224792211855497522441204906407037194455893180221112431848009085037909305903948015921571924537360487989930088791695189941218038219467627383437656966413872309845779120231798650060089348671537766077813434008550107432819901218254503067487264627470586948250407179820170325695841168774399194724933372547123558939208379962907844824147112127616267492174067311516896974949632229657551212049303419446097325380872169597926373052337867991858777891169128225453531756866174024394461925558327882094682252288952128726182267299150441570139786289671933428126215004019112384134810970794177056430412432741157839571766042764594882987619053829449562630522356078377168273109804705154138193747401608584202845934925475663107234189079429705727415010601746616378606181424730915590163255191458574112303989342735131986365051417880678720161530782100902353860131181559746631288057002636045489120969016836154504080534337723309010729869477953177092930439016909984936378371976293914224285047033245144587152351502022198695060941787645926480130434986356883680833903996063767109002248953142094173756462249816437058432725579891700509160091564887135134186011983228022347819027675330663884779737370047736073870891908571310009607824467970275767859484177631692505768936663923719647654589885245480872406116238255206650469348370001630098613168417401975624235493669472616774835262473233616349398163923946173920017279656419020912818083024474922553009101806870548489404081541534485261326357592604966544269345235636355203217575080471182427689813106247883385860537192991341590958033384728599208781208945028779172557970890239120756787804920068015528570079305609214423646554124339033042762260281092417207012114395192080192360716599938399108101873755124549077454118019698614773396310193057238456876197137297259985605348084638481125499248380006358790997343764797151198737085504107128201521413861657938678425154026681644939794636895791837815621979303512430916395855413356055152889767402561766899821765912086109007889547638978147249565382828972258062941980705863058673765842452555929491281402132758651805953649954641079571563696258327380655117234056534593923772961932863215699564696631068355795357395297578786493994106359864793912066418732615345574231993578613692959773312319287108679343032448730254117125043171447618651605895634868372253280714229163883804623144672820520246454654414945567960106617858707822108390110214175854410520637281140153786040628554691657147836197653586724896051363973893350063979091098991908799097055533486634988511604171863697069841970181029347769435590116047188804842541951041225840640927817062429207720702271877955663861213569214039950772684797669624744218864540313297918504211186034065741777711148784523745894297575337294484696795382918564736691115981075794005953454063682594863265790217458613118920328523997268259365709895848566841983399766874591162706685394772313597428370505610873777478081548463785319828546874786642363504650204020386488432045131060581521837072379767736049819655640017494997297694878468813455418988868637084447634686950587536589134694490999454118396111619129529934960000112819421274920263467843323333974523281117942022458127123498018656475121153193267505875541674063994601903566389316042179401700695477292366757351747614322729631213997663965933959207336997396377503021521736678451395904363869014539269378527622034772515995795238895516285484935459345855165387276889374353896689123269089895046548277124993533530267472546345286894180497036783693807927731754534330100962790567517549709957683029178866966857320168454644233772713949212221019371445679203600775128821463987653321549774619426228906904225465335083255722237891354172536954278633391642501330795806368413490761012997914625390265239550366770593003833935519540735555258494625168388941913200440342485905020059025719001733189090550994498037403926681231559920282680513038841320902486674843413876695749309301186406379640944529342504436874441450772071294035388155495286170733900983780303622780778657716121250324232111188677369955522983388865833565404841217680819758407434721204054561942204197873006351849693952238125253407772156559733785334951930368648109476174089749160139314743313180530475679360658230175028164992366097104852877203662797187991486180746425209412683967558204125019193442937657644842874166262789062047747749868520484959193551302553959900872734923339034676081509430712669821238728742449754418042313936271208597679594893870492200970775326173955009339460082073789692288506804943348396413511819509375564587812752619635121006251812273595037345431497329491503576242606894150937952263042046352520317782062379413980114330394536901652704674116137676759964018038179794502875074708531938833395114202968433896986844685555136866951407752917027823313626261461393571948683283620183878747673786286263780453483068239305860515372124316167650776841648031257225664494160547722524295104652433484488802475359952840018433110035421943520704715990687296138282750084419434305567845604985796750425045449281533936450856503904104201045220173652585792290074223603438455106722838398299569987036657039903646531575672897935050500301534505396283770610469506226672246503956893304856918510409447089623967863253056790633695296489389541963148441994320681418270513292609459186651676872611731695641717917889958843542346992138928107359804560740267589343311021782748751739904019171519268626295475200115923499683615135796403693554365528702730627745166881906181090959585249560129309763410572711509637250598961545227380303156339410104290829380975964334181829976372194727263466187786236807078159000555059669707229541451150469978079949873853724523840578003793134733310529830968177872507371686399185913189651635475576078082168133618121729034162981795972544629582775049394838589583247514104638853126746298511326013695340751284572608637194103248360240289393208369436389379877554064592976951554942584210500463713671748947960268635369417446463579420550648998399743929331683840425834347189944739274355346997700520107421040975024556011713534663284593287974101284901725037395106501431299843987433664316180711594419670674534236402003928106553364885676731181805271307832158003123564642600162725836839266065326594796172000323580780521404601953012213488330161500603884861953626075640302469692904367398270739203849436381112535036286379609140522759759380160703406906395351584223070057136570322172246876603892136926654052047518226828759198989393773648884326719088968626674330008961348063842223084767052293828533616212308015766324902922772875494682932306203527356935028161167849785796077626785606809169301583934660643671348847293326449337513288260646653639737698576523053723459831573059162944951096227843944091008951229484478138796502025188253627021962260323938222648283132560183417472213439413490617169571937308787133725623141096257782427833709646145046810240865070833051276243167056403078641930614583071983728491285502599253253472092196305089128062969323922395944462540523312467813254048889646788811682041766684275781870463529374706994951846895875254723958105870095514036726276430694140010848696589764954064639174558226360847695181969065588652294943296831463729668424485021350268271521935029492915707027245638805479372584199470895706979590044192680359598837633347139363292024679699333366959958364571185888456775550942219351733473822357010452648622723264716513013921004025567851337457392125539211173008048233569028740878228593666388261319066127207094221126662844071070524287509507782695666303288723386980821684447717040417071904065714168929380958840954522160928933478305461100313403730938986514956513727159499123861857379862069961051441470652648709467327151558701277368808101073929118525836974993086385678357126055901792163258090221957049784025394024904153329139767949372447445511253676974614426088315845162236630446265201475510126075000954976479857884956329032618420609751640049895971512616966588144462916506403733809677479867805165538717425169528118763792004564542416216545890383563856186826746780213831816944802791025117143249290340409290666415544623914210537659523039107134938288655292738277139891258338623399014787931040742182747729322966779021349781522230605974145628137627461416367870420977675890858505536990472111723407024878060667975981052676694787395768763411128811878403919348239923386310241785976360820779431917313578131820644071078631497955048555509671760602091664550812349635878750495188560950183491995981671104465209408006372571886553594368140420042594816431452369507561016375897732491164747498120047473113469099366973327625101501807228999640415963715862555361382674899294296686571008098467552801082803485170431142536605532380304021010330184106573944038735510746163615445273609569380442367230409191297599328045037453789267401239914930674120278497445020177238632929902665250034717213113186212029389468851563962178074206571480876122251809093676784387251960696518907220150477832810921513748893705777738719131181506979923534339510333365144316539640608014437667165525392227462740444068510726778332724472283802770002391272235443307126428481503141365952348970612195447833992670272451756558059029519262925473546447926320216157330824652687378595033954624939773606582101567560080353030907337184544900452336749721419548285025387325849749644372952497082026887033311319894456021486670653312866174149545930135480882714371004386617934011201368294165643661454472620121296883670369720880959813518208144754558872363923915592378725399474445981127594386303048344382800191133814689513735324385189047686899936044264509239845791884154624054783193598595142138425775609677740707467841707186470272353806984368984639650114406428308948000230002626542584811673829719967055230944695886646996616810831906183621146692743583089721061719608932214864134924393755479542610595109714936758332155882589584951139955038611889341310971014128400964574351189633927747183665745208486743555720778815284723968731433684921708552988218468792072226946167052897336026229987656817927651580094832341226596812644545909303728048745088896194888644085296155562750531297721415604312627295120191542988978464861236216715859809188594576734469987709999436030335495372058448257667669527169391521737996724155288830299044560273145137240912100712635995449602513878470334951690775227490966406516413062305217902663543937739750216308111438619181827243183459510941988884712963769671632285018645102173278707215305777995913058195848717698901206314742228847980380193483888151295744767445149201326847354140491560915216499581613300572916760899113877172088807258340009908404587812672653976119219863028972118745584032151737499637527383982029405741667527168870271469652853836640265655376121768874202737507821073540367239911529936164400750110440281386277680377907900920400778491760896221838994244701601907836732635769339837887078634133874134069915662368393200946951968727520744684495280679424566650163971827247264956299373244542275313270339436048037871823645388949184477563252049619670658757637898728521441661727049053311478356343607017535949092857673911109863947949979255930917362301528086170306808019788767164574829220637725359014729621349698049012842084061748603968958871054153476107669694870988208614895928711725528191484607256388427120287267435082420910570589235753220757654377338145014501842629887706665657912862567439414240624449032903748405516885573335776905689002889438422945238228064755261677754398854887240103373205783349664938675001881247291802118706870776056865512835811779121720720750638832907401680256086981819336830482385600941059603421245811995163636888218430870838618539993605307464321253273713020173448039764394473692549314372880533044637681171646782897196626711192843741188828680900949252985890076676355459933998910299039279038934418458559116438387178283410715770182668443718937908965084024463891753780926401603323409438890405305576338730201859961950936866916950533394189279993713769242113252803471895720385467039148342993225158027283167214754333854932705605719096221469195882896479587814273099580218797825617653778441236753322089348890841830645662688858847222236576477446697890943462573716619213622832367989206543357232780183361700480655330710685310843851944003164374270031875373656627112459477319367402655469634804926001374423126129799910948671764988383676674253211811878624584732111529447883287950368666795459006327183324307985695687131205430816894288661773800339119594408412710045276545058532539253503115084047869229602508612519497565727404549650411499900957257753098261445329802034238506775444064596923645504942849639129895660068230089858895183305417164111254397697535279552165208584762842903644183651262741556449138736084895944238927414865192582741532102010769810885662407765774395845430377505283357714001381060143344174750363521122070631737079090843665909747886296270752880252808081603786933916894846267548858263860859674980863903030596779202584455193475319177479274292080279922254035486936803811421767398158856806015646999676607830679307550079579026811231637261036652780804937589088779659824803978270565616514667907503109649075084288941941264229858475475266950949137993642382112188854622752719153152108309098626237028577105485324103318217041657829306072757914570456964960638625392346576567464958443879952186964028074164858341837648025570031988034923631898347518585355151094674191533492872847492517435469281740943798289276909950996021398149508973237670297168008758777245249309601987477107459186773099003915294048823132498405836464601706241939792328253422803561707300049142989722759020779879026849173579332272428005749994013315460145821038238352646171488665337620867748311035076095810556196302580427768626118990304304946949018402876158765647028051174768105679337297735734074244700348952614091006415914542498924059175215918637133652060202670813059209294763324810140650361397682391735299304711818607723408348340082563034057893175358510390484267089379144811578021447939642163444904195099452565335616076418922079501890373674921621147067343112738907799212661287328967089904100091702975232428194119951962847281630800199357533017678234114883379544944686813313830203492110685470791446377130635133629895231333645960227154535296924756969995534453838181978594091731599444047565063512565601116072790766503582608974306994279455655365751897161864536144508887473563104132174077382328803528043199139524151840365980954630848774760730000291737887346253830936791431134484340522472532218171366547712181729109595682404357167016148420413975634566729448651306889597779640501707097326348828457973578371282120628675437636794584256480048218007135287379007972997010924857355962185644742190786572171602052158913506598861430102200439474814868028793479446538080940360847354867056955553564209090314035520489992424277794101428742683751570199493707819034145665397423630790105583710739357120927047460561988937336851081864548243464204999864738043131537679199608599318918049609627413489026961190388257059538074214789361929572085266974587805049101146272903969858286944512177740131188633496301196055611322614634340197979626616908797792424397187594730609506874652085482402153793957115540155772325902464529163253074089396650502123617694450894909280918296645039544798377967045950051585787642695277036086214409217193567007651067612662934580544943373995636289934291954621231136576170379140719483282685939740656631030195991570109112200781314746416634483594340245684807511232805280316330855000305629789042154957810911253471108156816134062693325203959436881916395477106467849416179819868252769075770259742365212945865870510310058615004224695904306038074673678131082211949374733483940553550158215207876678098462479254120570663582606407582226648423338018030277263218416636282971649867086667663383510816604201954837875550555858227138600984459276663031315348262771904698636283707718946818756792161982380948293660190507688359185760323706120122768138428281853228100107497481566885735475820197912736517127524785679259367646631517583496399350978768108554081794917420681341306146544178561899848043715426402479553829497454703465079580448934279825285375826863888110693763584188013658246932668665667511272311894113708441400169405869606596726177765675778935686304240427108263518509404381636552581438678394182386855500011557531790397979507673287226022072031303064809420247594000037396528564250677148178347299010258081697516120586566879086729745024183815676658811859491821399858119861569626315961715397404085301432466712865158050558789483572046651339734345633925335937688270932600828675306536006888772249670366276976457615761697553712241955258443646048630395150273769178395977393047573508907300791681585176763489462874413077210510493170849345349292820780892185612052126507108574452237046191821574988946461809509767010939499229531967432156883435298800224836452513588877451025876433883760438356530459269473938433606409574375523404425398219322078249195416593059294492765576670474245131491860863024100759979894381161617227960349203980100288154727898872603437484804106363686724750257431792955186433694549447024003055493396159566105817179246790972879533941750062340138167191576804002601254831017214317760099151065013234142939569924570904853325582188637381916774137042629224842533739038848051513394695213043872340165086555109581727966527055690922455962232299134983812460624664066929695108360787029700638623816041365426531198342805727254923906115449492584811534102084202896183815343769815673354186848339611776980517467147354738748409363081728437843851287334105930160245003748444581665811784773033454369500421052325006242804808143046037983230513190168894116053785901694780121505873675698759487369088908970294590888048922355715799981600389282980909773303092884457204686970204342886124034180365157866618216522578521230179838108382650741442448299464018588705865273960169441565404329214671570400254714248245469619411873672882437235651649895632088946855754888006803275179897787067199318861122238110442457913036390213192250710799559084465590830136440943972795136458716664564292925109557431386596673804565588089543484772593648267927793551078010969520508599680088355809073592594718427572935482510158698155536738901069524409088158375985800471967008385853507807558209646731039296506628200280035154897423351939468576138678766800755675195554047691795009339937510311134976534863888100311093708032400954717837364482869742210086664502858871047670053402395524066173495542227032979499021010295324684327446762728863189876898340035732333618439518565315884560737604410456673290580988569083971875146947162583369953545672051189553000463776196923935900101531180000901724597182003039554344251437299321797498140549298036611532406072347137479544326828268916439898155438870620665638830817900212755201417284826307224109347231326312376162945265362449338327088094516478056359244417421775165381347899723400846198686449741489651058556341469790889971238662395062203350107900031687928257293958323297042819150312364891500701698459441192665673547691531473687974697033189864297226035701166077885765386153475262246496749706047641056015214632801285834847748039301537609822596666204160640598931520059756585296457557451951584481689119608273259399400421636880345522737292377131910271946103274990490008621797443911443215940015076887629145839206250687204668747719758217020052677820104375263425969215786850871003310629568953189408832413187287904773510153938292845768383899710795901693413041326712051903462583741575450773921899325210101673453716267897266537867494583479141145203359481729027562311814811649921178365528036902904077619269680206229416044639105945228625892778785986807047649773765566488964979254403469432661702214037269864930096970700084100823756317976688914506320917023587069952600193587271340221370278181154015616383635607003528814855584531465317644057789813433000091221002101059030491175357629751666662252098148217028114029147507925174666534416481376471551475393651949828669695775231600511757028631915448880103622052052979423494627623467084133352660612298504439419985874381100051094061226077359111471396043866784281316760443154864808249439880187188210617168166861871255520734939676435577276501256875031943290195419330292837967051314950891354217968224351972473439694218865031966875426902837617167710152360178846257961199172460054178296144846559935435688345159405909371222893665106927688110905491188472057298366242162181064147696649011388454968387512332125793826547689859321115450095694187955577817331721090795072235947178076852001104915028221839373164678911014950285870074235939085959034096871515328679803899992039667302515381351590772625458690101089627970232520529759180782873932125433507518365571818031533574425179874987427757958134738625528399439614580110641876317927161916884065898034318736359896446732241292060029865358467506641295438770563383996685608497370760903661067851210973357160320659203186094621133785813298072015469346511418892006061476088085842849708494836830906783331825777395159690248775845221217285518875658302885883967126694076648889361241002984615321223614932993957004373239618896612017804455761678927317205628992618082648737685862721691064615736473188546802586720057033841826075631229197913387426197571827799510236945573835624685856984958296894958121358987628298038473227570329128073261077293724736138841161367265930149599985020689575210249289450194517109172048865492215031254620022634528346110390571799128780019101340553583630815282518719849863227090550448115282255781966174164509115519950652675386505761680347135663036304363138647017321886377944320223551556034209658020786788338472743023202068257620848543539523192311815113275360975946819648859885085773588708554447879974877803150737242621159355334866622919968778553059794238529230488952835826186567350848556760674268654477428448097267890035874817082069354707640227683281194129555538659434071266077904305440881771384597287470357711101374548041846806048110184737776791217291457037223696215888962044551007724647450507536651773254065573582460132779838087911566440477020473277816549673717937604182452122130601074139488245466075864482272171520425575364531567595488543959534138559786823710731732747848890567830404553423651320902156447251956171086361810624398626513564822023850312348465042996445532258297574449665780603048003226444315833043021751830971812503929940844847922881636864512336144588435272233628365630866162895428338866368178965306777374948781894794148230732812008466698279130392343960655392613444264191837018361950223740052988603386313105271554444343290716820569637961642953519072379480306514341577439875725521695015027109512055646501168723627808146862834846110040589864021931384521608483718516414984570978423925325410382705884753001653352498228727868454266721826378318399266035723420820111261422384262564570790970376702320974225604945233410823185846274702254341815078999719899420215017934337481044269384043807500313361289576927114975634870642067568707966296438314238671905759649547531394972888704905899899323010671292123133318219673863222320714302429826708424683194617676192335888241379496315298096467367450755421959865243326249742251597371124491017091053103814997381788696075987257633053543998947042946793609348747241459211694539872171068767654604276128960981146646377682078572987271042581804335606679709657467087195326976976745947909240371808090859763763400860276044305969664156058882332893953669874615121561588517239420368799352003059512330209202039503823771576994871701228482533471973999078996431886627437249685754617263823780506040163227761762024100514098807702186064695589910991993738099270003169860069292433825999177285570147814907728039477680523984497189219764268794128741502428713278986934513804415181465711386329115897212971163813103676475736027631666165782208091616313728946655447873410298930118288809977103162513174312785871573538853928732963627141269976840556275987579894229723275206980239387350743058719977373789535006211589475885457314401854885045216807934941093772003622205003488482773413665970857128196965352494851671370279257794231740617484795027949085866141040806529895850901395854547583117211117202314289970566441762237787959751183288790458431823097755908807853704480513683427689432960693644136918629605199830212503495573451315844756814555862213192333018434623250500811886404318541905130669469701558399304452585990636279809404563972809225343961563679478598234629850157281533176711575111868686861393572197496219327901819771377300124473574576657525938003172342508466039395548568717855002800740389181243274677152109075263535417068835897896855993559925558527712347087205272664322108750661191626397163003521094725013347620405049059703057496301756041551752196411522765506565959476337487497602736481178283442944007245635870748043008905289650494080922307838036965773354574652660382039015376677561005402810703934923004574544372329229083909118480687536881220426099068779783746092059028478966054728044619651107580799426538242634466106896038330422058243749014695566100215731129237198371864485132557283636018796753208687241751886158969057009678656737014696507150780583210322277072806762500448820597188904893631511498735100878701020181686349800376892321541500527284421895884985103842336857060729644096054947841420670275989607652811341781282747273384038677512565685560781662356251262292053477141955965370955945290076073048481229809494569903247936716081877660394269620322209220636033834081440493128435211393561125507513012533157853069622034271141459828181172786986729574188353609811745751607317034399037177582088107607542268602340767826276882290301377869200886595138860177673831946542545784398007717954485683744230407506767097709902757926122411415539427638006496848648843407699687049899981554596211375687773346376134522675981835106282817811645617804764918496459246102898705670244433933525839312164847856249093292892450866620943089782856728845700852632487047478220128563978787706350554044537543911348411858810717584860623306168891813041657560889353011953465200411747736153612106400637599136351908685925037153712176843084778144847121273935658304573850343171597477152488253842418328732086261673718809542954565843718091517284240630580589634688683639383185249432962231198127791713731085084343647576865761477349311989859161373750464363680720274757772455982328556415559299066528667153174119990837883914515616841987213036641456531311494699107796402219489639042973021608574051021360222499876476872328831278111484786363196828543686311125442857982091522424323070973871411171678092855374518535586637345333782080533215950507848093655547564369402254553111731842365848976219992920832953968169014572968905452491855579206673617235105598543531316291152077205780165420570031648137172543864748799864559497183363006364827609287063120800539777721487735163995393680419511585733273380761552746916993499669715404796256726537349409810952249992264706636918298859125785226756185545941526341274018283221252855189295204992364774883228498941235888775306233991134674412717477454064190370170296062040162421544524976624326109541165510977311004077545200832390861708797891727937524425239470222369953038303231004487903151234425258739138007381541950809953298980647361292587282620067588986470438501847213788718188301302273882442887054218851523772318747334066697691175691655792909259758625237650152561812385803247300641751221683014328442581711447277031623770429658898987514215272700470257941172795300393706758347645281305066300063067086763740846696282888355888035800890232514976844468006801737606822512782167529828829680959736988522436800114847377543764493044305864422222340021085715014902564680727530261772679510943271837428025020950311042375432428388656179024189077255859166330520815847558164531032888159413326103387341611660385457404584622386947934126385409913030155689757532343453278912640517719989635273720246495787798162466618401027866361387804117098908902443490704364376580549896963519868759990782154730458630491208257248898675798775298155496314493661220596025776743268408978998953700540423014199598232999148400295038957072177928752062423469553571581622807477998223462797060353468183858650587173886262336531104572234296669447107622346766784978570655857286970385743924768363587023862752359127857863784028165110875402083771254597247778531713015564226402540889361955082190569728385440774602682085422374973977982974099019754847770613581598563908977955784460476111124061236946243566199527277811765166820196419935894283525641208934777588079195830807397686856988340810192469049297903130279837970182920229526082492153524268126712432243732896678129134051396204335531262216133964805204550680546546029363218594321711233986943818891218386442288379543971359638234758782698611603955894378712170778883079365486260788878879108456197306070514846995141168620127267521334052035424629377564162892302711746389579749313310203237263376699729976289945605710847766409295365379866577319993501925186427899254064825335875818192452128779758576100101758988440688730223820130518328040346298853056436425735950867985887074683799266534645099282793303074331638310079511007271100114875240171628461876472276779259594873265215478800402431827138801122774393225287206712997618277792025058957440536121128664930956995249929217066485440266608246370233234886799825873906949160342412248145408812595429222919792829155317964578760225627257606546456147864409617051305725714127845072018358156595971230407664830466983413918857938494001211126353361731271815463313124691493084822011062922437328734940730530933789670148036282877298094064515467067919379725717607389903679251518682212823943250018432175426770630437223573720031415711753000907255190497362548579994915021906415273529939835741446386851028906855059352268655050407610198535705984332725699975641810300075440243925674984507393449496591925468886767556273892109210450954645716188202029891253137805429728712792689123645164126839139311094540159169961902078590579815319303759672821449081044267886975506197116522124011649422286355252115096547296979512109449617439978196748752344436537692491403324672326368754931374956403438022560738130461977987210233468947337845263793124364498451753989766078673728090398464797077843266166831124778443321857840608885270309020822552072116388900054900676703656860419316026349295731007322228529545438102382102424496843687807595247382632483434681847066279211220388819328524287487937855983363156203871480971793994138402241636755034299239486932764901471794343948565870193691526555624224677040574158651458239512213112545522139886319306858641093347484767731841307571795907163912706757785969815225274528562154233873583089832973975868927259085092909744453560627268141771969722474636607774230910780204810624159565357371423097870009666342790003286628499548813895401435313569675689997955382319742659508326449435293435541376966880794621844542293115340479372506777162643404044461308863217491720377552809352882091549824977338853282115057048433390361473346998609904601413053996324161410156034315337064248787052972649191169956105333784686995693576723180889627179345905807841796403441039695309631897009826099294421575881706558505190065303923689577713919206602198110099377385110522229804592276585679038989053912778084757960112373644049055375932475986571885475142964009580901033307954227973888419866420582774226905471715497047371628085903670467006535881129899934662564702832571593119526981157048921363037148536212423812315856502518853347366106867616448215529944573456130988316697446046910357547171666974682378546645830717259682750254927064786715795549733610291592735445668386185404629017272072781631444524480921501449503951159372066079902409652774925011567064671531500941078188655105157105248530859109075875790872093067942950802801002689175904176821724593816266331501537292347869184860702748602695471968176357742933962238082635426251119800088858525620212597327594916370650802219063438086180358842023940492476663904642985544750466569204797527200974097955184984627308227710108774303964925677604095791602334854664665582043056908389228563723801238559526380438956069402663261643688603014046941856868056019464855363525409308733009800692180756013784843364546876103336107939921399972835582492422008249315931174822146450588539424422764864226608297040857130506008861537189528701146124711643247957969897521073517860001256328252904864284398805743733777002109923781809597604444380478061007449615696488212246204978730527023975034908145748297419312488557423290825340249346815116349213270633326264239204731103846902464173799414606016164644935891673295838323298114008369063577076796241057340211268895666458159617067402965109197434474478354029841474462844874770826687176245038233803478775226111369592779031923626472056499733275317490606960290201235885378820606371046371917007193791366430828010892458639576901708187878427913976870769786860459359983270322658482402934696889402786385391219226212005193935220038892133547910660147940684841973501558936858511993059141124694183400741048555839625422834916500605214653934098042781463005995355211751472818403499789725273438754915860158852254111657855284387662815225283482493181478177679136693623101148101495198057878409719421099866221114003559619972578655504955893803510320617015050292884970737850116561278014252904768611356271509952255625734729709653769016844554047058183348530563066434778404594524621581302300132983616697536095131656051850916011611450374430806463751822683150309203278537958618711246878797384215413457532364684382332296287147241931616183043701729064090710945886482994320366465236935909486834822007643980232404336599432054763780843791567621288219912594393046084755310815668352790183030103716525174564048443193318898304761308498114712101887456965637960147263222521568485525299272190918233935569789103699342207837186722910328467833599744141845302896520911572160319855054892411824197049935405055852864370474580171762446606797922458735835256795043016285664647298997294800541779893236824281247913705521461478119398816014769194227429275162295826485415904433990654195249244982414551443352287976505073769966472715047994152788509062070644621778758253544510309560599722164800128957578438606417371731425384505199442188532201029679394517128347881580637693146563774976990563550218731645603580117436204137455253704216699809252752206695502224578828363659525472236343346921165004344259355017841975371718213133054841654648843831984201458608517068063604275144881443002303415729342460615247573727322243953917364648306792720326165134945771882455089756094975496878805376988126584315083312525626506927810659920473097006622896284491622116673204192251717576230622130635157004941507480030245408607027237221492913603209831135932179155417797536587049416875566213834275403219747053506539398692169060068293270538869348781511649373581300286082625817637988857488020530456320120228309823788078250115449487754339612912087476011080604189587594121703587235954925423096783968202389729762445181614225794519395930914851913776176332767029177500308947238599329901892116394825656084285422935520693550500985625622091471623054817425822989169565666854732055058980054210983658351233405072753998334949739806553303733502528596152683645255005470996666135171960164729949306415759047528683662527466230477854228772106817226084455052153140200328248668098572265930032675238934097589469774323907906960571465811019698295183202789502282869809128844305571946893452105981877371811876894638056833612416533796181639036845346923051649059223376838685566593379497672041559362419827457347773561442049935309955692303607384029962329498336389671080974083934926055112826882803108883887837247781402818395052040448363837894062022286111530378215156008817891348034557641918951935669379237936217219330567607408536545396923938703944380201570857467103777840792327352770793614092665181659231363347601733983674503768633997149395267484656597319199976694079437692856353322775673706056144406008000061026145236446238094379606818191488202924158127239958787856443633592495317857652692770522299017414097990631505960111288297032065743861312061303101785891693223843813092631128039922769023667609378405427295016861379928409006929097371250429604408764626999043200080266280506163428468219534680945869153348195745117688469750487359058158185979857071030935952853216469959543968714109263104397957385403308005062071258178631108692779587690939813576744316358484029577729974848524230908777797398122854932077222362353213295312558741234082520402974689980510372270271563148256640541954877738142371909156584295194447478998575434747920617736392431251636253571080464478303123785399278117486162653379289754740472343733195789076960190148066601594895531783081269391915327556116663394092719044335554855571401203756197438516795391270145836781624771084173984085000361835612922573729672325318027300532161791491328114752521367387301790058203704892371870081962978773428875809978394722096501845624300687337110277824668928382006358764492013136411252604054003511925298588300474594413105764597756489820377965738838358033513968839312019648355307317470297543362937191253765763754653494727339790615044148140857221358218090316553780241526383650812320052668093477371924847284661972743594418419208010838855661386320938549099054017102653640035694228520774325664723024547312667845676781432489005887385120732062945315420139059545796899652383021793617953079834679805784682538462030594836134729577693323154094147406911779671970904849841552229917327176280074670660858626664970579854701106182829727537822110754999981274248004786079969942538179654201359667477101049621228573380312001095093997924861496151147817508398623378331199585475390097178483101055025909129416079004864874691557331670771481780020364669245362598462409447484451084819550096336342942548081022251395692397057550686012456124097119559407472750398879571678631090309907476488062845870682846654191820722895919895509094287099596296416883612030787671818296311365638363554636821995604048580868949674032426399428699609444070919685580992298804651553867676424872225357056652341137454731232469423703178466536261695567180256466918522559529447966917235404008415458313756319760684125342150526878365621685988347007085809229022065617590591266668078185465193385246357062138354982419411195933005283755713634511203627188031293760409805442371160937143057123316891151323642310930891850214321424172862710146316497818379805292879354513826137477849252919578445944421507834013240333404071742164127477554281657675783264724246124943129728102589449242221555174152204153947692567142891250984927574045216385565839560124302179565028545724895950425383401213271451115773469111046573081430263416915855234147129910585895668185901196778165842835057579857226229170898524522588982753181686282133826366917661987618902746680033536191799059661647316937445404093234239325294066427957750672612809576540464221468007246214359064873890376435643378280208399755970539086873034563974872951188477559253788690911215255494146163721808427311792513677462302333204706374928430674335896093649100985332600143456558387486853056145983290433599997102099118519628218945940802480350169283257476551021757111508253295111285380195119482586224978679502621619319738923118248287553763278383032405452318312181909896008176169115709427110255877595552711514036767409608394808509509531989123284649993862375275946815227632926999716074125063220379033224964162751999100792256693180868929381947006726066278435074347331618791074101017758443559845328055356076167534192484503344517870980981586337463173450110940509698380569769837462717372373559740200215550821256020379536791910627855042881792273131911183743385537615463431972311889930484350853227607175620529876628517546240505500488204557842848930622412956731303888228429389631242704911604157944241894706647812803799900437713383272366171046143240358973966947264104237106632793159123756193778915346421553599646779766442881608201468122756437284826490134874701951170356941798630876658239039656259862660867197156160435876867154126182427217249415377787420096467306892790781412504874795182249812628502806073038292932109883291454561469646396961071605119931273338357489399376529434495649827915255528810392601552731915331929589972038810112663634948824513564104911792830193540549182394496471918540854356489594956614351683753383531632379168473827593022929261555146123776692764741371991445250374648975224495063229992417002811282136569080837061537570111862938235215785418683491794719525604666431598817419616895444323273094801263156788277693468461199769443080394498824767739383056674348939909155064023211568754044521350325703196330559224093451219967569344410513901879695012168391319467825089974596494183029746155340131311205373339798107463642948301154873252195319729631669125193105624789452148809573238037518469458264271672984811614242854405896068587382391176878913869234247205589912939325900962786688195631190313511233562445387711158001547689133652681006273537515931140112313186413108367134254243384302189372779012321184665679639890129007847242280873223334892480147453455288386065122125002996048327930101365347395948455350414863847974101680830255321450591715993367211672037948656647419653249983345269103456879996500422222910242698560366854034699503487082726685294592532443630844009768862092082634557131637037538108251373714254753478032330865601574135017748886845253912334452049674419723548905467270788291811885231012982325590640537765635139131334954917544430633585805902411203868298667433431276613943259471737591070889441293835407544149794166506018765686940015388355086200914048136744491775768394351302459095754858177952989939557713208400229301813728976161997576397596277774787807910487743564628238453334261851252882182695763880705884248997731187265523501041078844245584420029790216433877833829369545703853794721064591602139780546686841330800516945000570008758548105301699052383570049750011061281147680488631450597174902357936494310524358530662820264455333512235566290476404044887752224581013343432172052759188231245236855406370164742227624716853545830964057003768984610074793727676006523540351958400462825146350752550269216606162341719885599641637326649987629739339526638928556801065570278602124436958616977207604816992431042501699650318518812905213554151244129535085601311012513475603178394736548998007988808204219895203875731892635982252741883548980262167327047411452085365826544468643152474721143398243093584220944716830523342240344238519100182529819346520307070248708889278458755734416192669117803877605168681871815966916670059299931566686858282812248547969329821036115095585397167826426995317253131653596563569312458508155162573504158292601478451363155782569659139007154890553415799681773143744480790175365458029969638957893073487361345392439616699325891868784029316836657465609352579624474324778741204454274526409880526060361209590792759860651243176531759228169341021784536379480646368252904370881408659632166371547656531147606799720472607444859009995984814105008516107599649454319577216959874498993918205360560540689048954164629918698405631631245297671567400120890877116520853898710642619961652071466922698036833777210492894234075883465262600283262434176765739020453084195247638057763834871281572045958326033970831780281043524852985066143299096468148688816520365961266471572707040448501711879037555846858551165203312425282039019438747472524334479974264889842781441491102748211666420241661250384186637979095742734199237697343958473508053859831174713883377183004202803428939150196945407270203183070349761571785615701523065776930474226801594175165902579101635249284575170423446344747005289902726427572451583440527358631575039560504885752464254669965022976761428055660320081225630868131304780808768967714668654825484229445505580573820547817395283060571316101045687788738583100312254437748445099654637419723206266771571708987587014855681538686886979483954638832481514060886067393227314610323986963162016419090901414452609243016214376057697276369991809019828822983998254188536721052208780459118083226566003533240923818279675140607243645905918130617899202183655839869732674439626454996827087856279534962548613637021469653587011304460227132930468409150042054707440967103211769055815236463258646409707683289979259195837053455960801167137220655428025362324481624454887423964388778161135073478838514159184616241766186088324141912023450036167481179919046676575751127421912826906331744942328265762563017613461666103937866855089837651154490568374961428389919904184876270089352214325566801659140766931631240631003203983616336425844625047469008644407821431606894019881759257843561939094754067682166161675569546807468228696237790487909403724930248737061164077110350516743995427386940807188024794990230625304308331085039916346298735832053081777831804755429492112832505296510447551055891793696831072058745916765863966826842975884739106583020847155215110322712027321406999182196594496975988599860439490421729609699257310779755951375319416767141589035176415388106610475394205353694092780415390402994218706076024815049430813788533324188672738530779508120102074210459763371716639188245032240948423689547788881307250828314197376232813364855306057113575679134084876321909532174841904411012256835208446687843060523399367752845442045912871329648316097642556750884424133371153111126152417478845651925462926636901580320069177439821201916132661646938257018929423771005903410341356606366140662880989729647428541062935983893102290210172233634083641216949880163794322742294636936783264471712772441176163067616694099985927183613891531202222970379403157261334564774539198330055089959285260569086232342713620255972037211051845424968471837782999283934599851018422117652583095198487932977031131630588402108522512957084898367806320459493222581816529460948760107607358638116687406534688033563979901968679241589766478554816079307698217612638208976350079448081831183522270968244525659415929961085780598579131267479620128668549665689165382630285027387586939631208470763883037703657058104624501911257491858893857231419078751303102715184104648765480563285460717966162282659230155371093680632258614043772878227705036220309293806800918416918077697187894713361729114647978405872209592624798934047133874042824686858450917788850422594027826931691770472377047406756637429193160378107530234825058149780317550790957867315353624768120137017358283720882225468118928310666459864813153740273973776487257806298944906057884108413657355272099497009191107713069839362959977643267824201989337885783907308130510547232430960014228821988316594271011447046698640453939605115618071696934577117120590274149392173908950379834820853629306835927306315417638034455218961760989172770987890383035880636557735936895304198718669145079594955802577957413697648000390292533432355894927881675469642137601937942680826824521642111057880568441258104520163251263326749551852311621016848137842767946131592227210335942557559001216239355639167535460946527797331893021556674107683182984544618256722382551869717147054205132494356444753282373595371572827898279965228923429786316769579288497291578179349082698878563788507750118235156248468906920012783748183334966867806086421985011496727339340643492132949436698248780674215664587994020127558001035111885566342043857573934594786552773507406807133063889974167693617474771087616843942984846032336247676769447187953027532023124353844149159015808460380182403356867257898935391072344162160782923311504395251167158362232854443107118098499150122123149523108583914128776606915769724653276960899035640387183388736310451790986124893476687364353747029082785735479491221858930163312583435587305950738826882584497096869590121460493701636293611212170060538683047983635876709758650229116824440919844817034902932276482633218143875198077763005870269981463013592501138062919123224806865480440699506031576116541290812929856319153892607805149554894701504642128132094137964997074132166007348327258608380074143290812731977491506487141912964855254642434952285075444086747054287573756232702349712131051926532242916186261347412945987077447449632017048184332558821380570430055465216182198233604191511259637988109024730232678163023973388431749616791255362216472880110857119197279796062560825393556048140941703396630309233810494463611771541861132950546716042123955505011897108754127674021929143162167333623829670449987832967526585984977666074197899967762285512317504077818873283782547866218894792664967301725017392003328017615279169379903431070824213989487289047266383485588682329519090234392596821095054910623681661764776767702771784350989289212713230211312589576562512270454160884500829574322284577239382039635125625996259324677438477331461351847748642829122924901068853060814487935450449846728477011294781830224067321801614232963651587716922204209756994051506947900518786298161170997736817640924573327949558195485374169339559330291201678913111957168064319518840686404859787867897220715009062682057560605859674417767751794709956058808800344202102638614130534140867297513658801451941809593985031389746703195619705687168814223908945212114713730655564071095679301003011666923537920670062591134488946748779958360122353592796902845426672029449126529620904038111037600566828492190244671389165694933856842883566615194415311468599451561416847295773821918821429094919272144838911272631882297550862761176681616217123093400097361406875928278084890260412215585411709089010558177490119507062259750285719340926816437639265414091761870018062996126788161824494584918246240597105813373205132386492383207901828728246616186779377619129608124847794994977979265662404708658921275503671657922434136626590770728814855275737554210025917336608330839139297532810530372025537348527299513111656642843343388874491571355302271998252772862093161777514776934746623362649015210775710921498850131457542443192758613560589250811993474680427039416260994357476279799740225799890912297851359377943442067181985846927853331356821373463439845290057470888434866449844109652091839907279412824393784507692493873377000056590527973771871209213032624003198639148184115856536247820890199281227047098780740195788977420198788001814629825350831614990839533514330400016421971474453208040346371601752632088758073236309614340191478041041341942550189391620004014740170914567688291565034827107331855829501338543764424503351736677708428779795778206514025876815861954066441133720903635065958222720750825700739780829403313277681784472941971244671563104822993417669569165810831346677236396566316684010369575814926150739195659697313613711407882407871334176366217735355307911732820415881061578420678941325590958117163046628455027306352493179161578945635859822643667750942649010156971959740648223606827684487304845044605268868586124726032321352518736646202261727324329653865542192267761164597470528358086698649501442097939098780084140930744809232287720889538671132365935236616102501555690847204578215302355114190503371083596516387029822448331239969494644618955611145593016496528375719305762835070707736789059923872208103386880258314249636752066386661178168189290680069505135857910232987561938940912453939284731224490529874334575593374387676085972875391368897112977802269039160053013550195502029240209373990027876730052069524941470168217690531357980696114851607230912502345450668086261399854161483321107964528244692306355871969024232818894656787521159811277113717948526249312122003845800893316843368076203483663857765008493693312015178608912611547905361632444685279073843375791545149616269197862682398667280215908243827516381158020619448811211355435689476583347856713033789531884230979735121364705453206476998329729832382329549425010284418656503055743053414134678298729441051103519865324034614709602698840409553516894023989406112421000658115561584924205244848167880839041515864660233598875175440325842844777531430533403643173630259286043423521864418623762762173503407532946363695369216569476354119952454581782591592120298971734954901230384281531809799904337682601771442842614494594266759396190793448144301291074122138106283954653710678274905828354664593973635667656620341954417510429313962784960395405642573312426926110233918305837971547499110352886718896164990944305934790708126070635531583677882312977111644990127470797302400700434595325571673484491072318615250491063807962426203764448929141531172899777775547267946839856894925862948814449559349729094697452531703181802471267551385104061654723861385615586228648458906270695408477017115043071064661452529131709045021578443242214256767717439986125331372434992729125935167420906876080583839683433110873384684625653545844304034838863640254545049070775686956517390811624337167484809044059703618123859794324474666778223448701238597214145866666628880723972761605139919860504519110273363100334217938057754963970638638518628277774975696501303870386591242629632557801212289687644866627028981578443868903396334447562093327922902930882398348406779658990977400854772579979312453201739569518582375824467314426729683689221953048318968629861188765486252787189249883487748222726699764036184011355777218063407372252257375556608093270223811213345444598948829234031154714459760212176151467793044985012110138689928607218814191232806394092640993611276832025572657916073059600751830921313504636799439129605063971648668643374225872010048794817087982424001095527376320556091776415096724482367584249970029368663013991848063468110020733517655102861292113717695160176813668583191423431227116975214959897824422042076888898942816493152704700898653009353270407492044173891091378885777230545094342541120184031088077283160256578276563354616276404520388496123728516312341553727068322313186936643336392322375371392639582047057299452341549307659208276795743215858623639266863727692985280107814569974729450036076945965036992054138411562559762931197464760336187903444940199860192773599410400627981089626962428274082326659881835364330192415473953264332051851380882164148171876599834261485783135018629940299983397705554159961452490851506673492934949209816354810597151243472562566869967745224043955626930065819159556158207882306894887052423202231329244287875024361235258985560633683036617685494284463249602677074489118202355204554656041180648932090841740919549064455447394616020178205700322605201267045012667016786869759304058280705267472015642454162760152374247864587877580969333187535228326965848208022839237681055992541584051716710127812624660678328891989182384157689897563630897053878722444801496484633735489639259621441157192943593922731258549698447621778996197692630713751172221176568949931674007359128993452489176490948816549303133692454167933466424390865881968975753906566994330865235861072917246971930495405749940666041070813005395462888561624543361833080057342764535946068088599312003451255392261903577105888389986971015931476813936633931893646950523677891376636978856370406573456536721381727539969928885283289354395240885087010060835714492839925781715388696497515830043171283731045746607837220749977925153318992464639471506422528129053578269619260836607885046269579037743980099003433712360719190799950110840138596925033915274586818232936480067172312262456666512427558703880311574561578257256500346935953269117268788558783926015963932477940850765313274828620868652263724124996676752576721203439267548834940705630876616238873246646196630530193485663829892888620745230281818152204057609374632476035787941390312981833389235065334044927347410876056671578490297423462425429943602114892895212612260907101752484047868428457562511679801225121260934625477227725354986266089998196018190239943047632738079517546382039149297008786915909009632139909531639264320385369714209439967089212221949207511767503507552439603301094000469652705337166294962808361352066228133287471232394866514365078107052461939276489272604683206857495097526641155379001392075151771150264967936504059902799104679922980152179299942811947200379345384893223941726967270440535117552739868013640106611269982291010309263229121056992784206124970898258017804485636004673581630175162045874880961071750905064587702766707029616556755387757128487338131152479324212550242772707919445103395059176054501948796310851075900879970598407939888596841672778910251729726313053530159746865566902576888832120799907738191959802061511895623725247769264191005669997697823901319817584998613159921901122680102591849427647390160145464339695426299494745111133876691224184432325762484662464631571287279953820395807254298315098089456007397496520872826588038559399949739666712485499298355959530388442473351847481668162067843430366189193442626864775159761589066773221594266422993618866152903001595660482925615052962192718653927045481157861033054382936407913300745418251208201323346818986215362199280051750453827127937910123978189625501754730885908156519091402023346095682894859619527532090427587477930542403337436638379910688249324621778091186348310168178296812188740698364231778805532979400025800423229746557081024564865402129520090242683596832401427612535066443193972259420360360566315933944275585521633790960350255296202345600087234021953798792654771716294536822862006881769427217157659588983547754674596489601589046228139458962225169140487791544728871893628095882993574574168167526320529310901816488805268708566820674190344078600712265150333816996106040604786046682498639830431868365692975015460116973109414402507603431144293836684994833877845219145569687289707452212836173022158205488460955717626309281819645007777262229559944921163113706343016720624058965552500075041062300141876933799701006237979129900862296779296434405793814684818923877368112810188283064057170599575003133129532814994942530109802609531067404808298293646767288176415638617002429035750051152650678995820634068395059746487593071244023120659439163749071423982159367640732120633355582128852884234766577609272869964473974708243921321606346598212669044971520766795296729555097696261592093803329190214646423673712829315012186140271207773973674711688720385492342482242380831679113774828512247200436941467173377291247611387008613286985664589188275757705855685397596607415479588692396071797654621274246519358450876033011885682879214297386870985760971258728303779563429522546509252564355464562598512055173402554253568099104274938307702075642892811133772434302053662779510656127264626121440490935906419603272817713915014863501762581285772514523842396212785082291914212257668532271800668777955855458854294213351984156528577244757014793130938129389000288769342859065996350351017496664931567158102979531998849362085281131682411255478458914205453783626457276663736891799428793781397773725649866090336133787397492048390157702455699728828132134384467124431393029567264617648654887506464673148851774777853674448929139326791040604533877350438008920730870721207950220759807516457613640512095208395934023529016812123533389093317086642575873384084124672254130874521514236710540206732860768865288058687805292269233335383460124798392915367960317950641662930178057465448946961218345014651789616177399997222803912313003252336514687444944423687292650624621723001021553519087089878140050148733686435935278643381292743822976000868476012880050006869390140240791154677142350601250135625456110364455013239420978329841118389736359123591205731574369911570659212207537127723295180083183173041104584065260469075597526333474057678930218337173306244333752629116356064152968575721461626367870311455770707385524520184416659871605094149586857180334192612582920270155962622646558218745719321130518509899686679502272678868090809370802326602180039265297377023059893326348870684233930866582129351201273992607191863484065172286998948709600487851370202499136312209231934275640694758908604764977039661454397077088397474027551517808713356676114916954363441498573281510230871644517966920783737988973564990267289696537672217517243427404242720452702850331597528194484132321065236774953394975882376754269644074514309666186143186624754396711814543154585500049477056340665257894917826278298344782533247733929150643452399679112195256385985245314486204501622482581975322716079186624883261811187138388588526414955217884388139117167674292225045968321207511229269955819809625075903220233292516557474930240390605803493531726140582508880124182711052188152010667014304401232221532707963482028489875067236901580897298563947666469442586605551620530359729887931259626277848986359788937012400837065607435774412259609623126431615164706734548376084196762218700751480249457356427130528191527124439193406675721945732227713344868845319037498885186694950941357408565818350035931067459280297600274855006790878799247536467417316070520607154275343758589056830479859292263459889840333476250934407087552163179301766084422457487263784352637695539310504832136975862119073284479375708260831237893524621895629807693024609350073978611255206505370616283207694161692801694359386870446278676528465872945776663467338965939299744218060699437592190470517395724793605290869578308401693835289057076034042061356858972241253194688252988070964652745231124659287416552840470862437470239661335660636180847085843999826608119887601275526631688563211299457496624873588030653646725663426801575829426087526925877603800215300896362493660357267342660417071629970378412955290846715989965043741523754528000171936634304359982180250728912738284857573255152659608894544085869096014253077010418048106204661271307979242149948235769418894381876422235782827580674605228908600197750065731141734392642340045581151673546187437716095932256812674962901086913380457396209929620841353455686323956558111377567626103584199206870202987905097088241743966681648559007760520958195257403544751569529913107946421703580893381016837955806240106062769705418811691140400649490267541069689767933205048112565386415971981706341304890383085403037007057997216313460157118840050422040318732031136107980808128439801995968543011961739496312537474969723653841353921367134507663674512168572148570229939038162095426853010298111500705991053665302669171383462802863419314819458436008237046458910322111539036423470244673767299039727824885926865548785665307494488674945088771075106190010543541568476344169325826182735556119344407566452484906699337884184911346233750579274424925069231038966561683406756126078819089279006415293545685412572616827464100016929853966177746218522274365780217105298523157483289188475722837735283032623622277602257052285242181274550640525294638410399253406788725837667334282420657685426594216986872551666809854925923157969648145512116891909999214645265466083846857538443331320863444230833720210378458372080763166045294687253791110581031828958239078038442729381949104823079840400273094329111356391208382713105380648064167234226598678500468437556484598214775983702793284219190870990312230009761792272498525444653838302712332240888848879173838659584427457429124258790088781814472851635697625272132171923638525325959919405211054478659732115045325080093285683529111290483384124984485615228459672602350044135938985864054206414290385212100336727106146068368522930026899712728822354777906644381883415014685265776856546985781127545861068870423805841247216266307813779657381186845970391017426896638907737336353071781850014942474111673937178692215547783197308591711670983363648660783968554023204760979675668648323126000425754673001774279748134674485580690881448147767506680854385490571117736214104593105760522062656738479970015533442565574829879903329486879356939521602151099468050954026479924318663507566723292383365013047366281758393787833216863715659852391977000443777465233899841649034656186530177621976990873465054211822787875696361374619702387058860957043480727796496911465401758125702276004783275908322664803138790764015868931186914499362436179005040677026495411131312812842252095570361547998980451122039167237786671494495865823680440979764481690024223778271364410319425065231807028922464032341797034852396391365027947144081510055090536589444400069442710054187021795578689068642184092570780887119091701318659880269238320091032338557284860069949542522915877812272643291899746364526481553709393362630379446271740629315927647136973507154839299783171807120022946733148238940709783140472749610412494582568511952477827390311235793658393521906069290479776475844863328627563166750494060604517797769822722173414937386644730810404030721448987179012201715024228813890716004944759076990455247417798818438432803551067820319205291332472767837756018213754522935478328806522280135213890457934968334289657017312848535416380271272787619194011428489120549618930748506199067632223316868084799598526386421335607833257308772342103048831400029177128544105230998292943996536226436717467042555220703366666150005368136134792453066713331820269596572762486497032782837862577524000888971155839711850036268692023593315806599716220628358836555307207903215564925059440560740765246296861265745348903069702268672999371717079869299754401183045276513101098932759326633768276138018692416568647685318038866357769313730310592583572324744345878049766806531573911543604077085786308287132376978309730664118098392745891673707901011494150911710490822026356615317391196922791004268270683076508133006821342394649993034725083342066205562202258055342062977283513865105320120755946955377245170849702047664337521814058778074944618774827116735886999434376739216866476319905557258563754052365859765167322349589462034813062781149844183036794983852035427024775229455244692718829811690135679927572421731727388712140351089163937133493858618505554612511526420545596436185842558486387265123519048918385783395299086993544654368653744287969420499009244322792041855875115225517808655737323114733021176938786535688549131733124121870080359178906839981198093246895193322388399326080166977296751650664132781394727760698783449958187943522969983516281977658432795109291725363952477863041285089601033498401043374595039422266596382329460747287788361929187910709943569797958854064096271378362778880373869349448837464578637067246761855917087669546754615943746471438249211831548283610344485379035554926679853939009652381081096944636356431886667377487272924075731050582479783254051203559725249835697863331942746819818468621153861009548533422638105091386983216819731565210789587886583907001250444708243217819850113279258102546686539284812524296501521394645490296010243886182385207089214299123931080599766774317178580695420098714868072004361258148611802770679968150228468015575099539006868887625880647337884942262976499590896291922621708235589939785582780636034344952351468310203589101267611184583204909875665466246072857251384422202919450984472508686076299734624259368603268565908624275331545356227494878574608336898608337391811802246926151387267032309850769050162344572902491618247974679902375807541698078185750267318213564123507721248821310845042215982087001605845700581957924850000933698940038205780214430209669788474336734658469941468186762151372211489048483327734916811740487205050626598360983672390929872793333392477607683179558939202469819608298448817953803205087851182353588165648631537162148975831811244629107541516826657379521578201034734993237445967308398823334289763255853438634332435416011376970373102668375955370548955872392690822290522169034053167046968154396142457545256787024969329597425169151615282969806201450111026857688970914086577423516167657405074179342836121081650444779381363474129314710230476786005741076724177601602799687044404519952884664442300685830696468551056950448851505231653731982961460458265513328009607510469935034799553109784602424913527597829232115423285908899441857920156664536827170455286485314500845035728147726059713399207747502925757180090378769554201033341432499253407755298816353553462101525245323726063524611498833017289804686353005038282063357802288001293941707534866654448901342100948610379662743729542633034048169586401838435433882046397600716218087257959791081963492663771733938292001879399871827061785714261833996461816655545628028157185402813653263045093922122323295645616603039794659515146924995299077210435537619042788742488655835189533476230997400479811657073860479516773790387264880192058084150842337175464000976490090713971716522597165594180836345077964472609754714101187665087428044145274787134817574096403504110136395325377674916079712211436257942102110613366557745157336839588938727919519208771516055373553570508606733855391031114979558420875009678492752123044703952458502277495880365837357116540995071139690469366626289968744916687273478355634246337506082545890850668748966738027210330608159296445110402057506165086362675255975263493242554782659602568800441526271436886826173157649211294775892926222079895853662879692362517484513396531512912346201434580051090228533114741411713257048754109700007357726202124155768424116154025997033630883520360110424486041327886518509302458102254478898570595634596635774932355334671365630569799343282355371690731056466204804501624086715109978698073601765126440196389949479173819083541053625482422443092377222778277259722177304101819445637453799633316242298263787862491569978211326759934718780856798635403385219726938950795335080050319542788842856547325203894395751104580574548954333710595090125747926166574184284468677184033648724852924782182527685998370665612763560783053207289751067892546703225759576888739804445448580169616520791663191240711007062265839809097230655082136437340654476119707207149765944375879162457741498466395955346830019086522211121835797361086863127588099036001762129545772973645395385800722283531069716828370498269374557437659918225308917035298086795260341163943087058539785848170183514619264085023395106690999779435611662533578786658461535395175287540171259682100086564901510077702156362816315123441105535081336837547637469679057089825460347851013611747781442104978200717011611311358488360449203520376759410935621299601684349652945464557421069807125865668400266011915198064901601354886202710523913911335330248871933391229926699110914367427011250598123088490165737000059626195432714744662096512530333643197211423575393131245629694972400830931399407360757542109479046718076466376560036480618912142882392818139487133290288269607817411175650636323568418780637501185273656393032264539175548522914520864293828375430384842033077622213615198761879967174422965858618314175572260463067025387863594323036834043829323325594412204222321254532003177545387654425049726008938975904218878546894802920663742216161170191946183621690993383605197871267938067772250871220676433007537147619595860696466881780801536495977439010548001055839946803806451632190608863227219018944978470217103420202453501868325205445288665336001463944392720667446872594841619472077541787740289089811229964652969525692209614917749544268610780086554656557116676386203340227986284366900723165036128822613501904051553218839710966692737483767982917541390545761909660762401755797028045596992558058876687897156331713337922796545477469316179139325688097827914090119213997526004259425476358296973896745697465022508930578959733600953327491488080235731004212338041967015211915655939975953931378260863791125310341164711258292075884727939550368183595460957193591971758843248582631674658652770308894088614751674454332354260828436639111948253083705823749526870133994075920320592640274623703189123843227301238144223019129004849203141380580222666388919561220536453843373830144455670810320395285929278060391410736605438580061837174858991443812457216084532009626514340719021949758073745892487575479119432523116786652681445432009930618048034752030356971087252676216899662296999094255343962269990948384154200408437754922827896259524996433226107065665701208627803310151115337553711887565056256451557992959233468419746112004456181502496513743403691467600077621463770531382154023339144618682659608310077971448839269277733389172795110804069029128902889234191689357190135857038541996450336841435368825179790293704220684722002154298573326335876591442705801858551247969259327898718143947915768977421318012145196193064974676748034945182851040380503867885896692063384908538432876376310535256871198590984325044591773041983575916752638477737229287302508763364891037083501995439217027284942032460295937879772298013642200420486486907934013347379133458455322864456600319008676138628837679363662931919413566555589479853454240135622629394130989912321929780458153560786032726920112121200979723712356417676830918984067720427402142732223383123765129613526297421503973730836148645368426914844398395107076647747779108060028784954232302085211975467780013990310918039555545827838290791370356933471911153002332143771483931642865698370770938524587014908372994096624238751901833583136540173135586621195231081484084968230168065129731295843501331287858810912741849985297659500617932911431645795309186191206263695606997178097903732276213779944096920435478387636760387492940484607042747429135108767770122321528027988988271385674113562543568816723773693423286237594115193153314522619789049546430343726467670493323879285806712391891857566473288806504610199845206437460704470164792138699300056615562591637361777998551577006574317110327382216147953242879976611347205518760459192424449767735898900385513684624138096121072001339610319358941061696079759641601035437716892922051159530518837249639633089482848616942193234348418466548639617793662484782658097116846569501022953683137293436411736468358641444789860614984898928274844616277888086805070799935398766550380571691474475560332339730671081062299593513291535342356417441443042047418492786272352815780232570435962384256374521774421669582021607846382562373453940907807951765630661538299105504415398174452779934130728037854048440396133264543481633028401744313488542206500696174822841505655765477939229450331109489712588423453698071873449483893227760994153013176002671960928807078322210391466935290628619947886007436754982725708699929907289146780295088338068787621649871496722827851102725063077932270431754337071932574801394998276683829683986806091749947022017641813610797782332056475885593842105384027368442952403822864719308429242821950382727094022255795757209965651041845028246357900795516708636826602938290220038566254701376417888378067767454687456348030972215012696270416851527792467272916302877106681869872083630407879092844947890157886605978231224160078783003002959348293005223221588233874765610259700353906265611083483029528067632720638294376227240699748186784689671034922812327034132872682215218038717472693157247881872679079561390945664372050163445071514410364437252020411657102148697618733841748254411486566008855063567290161666217353690667287654847591552519344971934502191130987507147007921829703767893173928373974216204351287694874669702129756446544987014179261574170091949205919590675601931312143240507668197654820296873873114525009992538660697672488029055616399664089379420564153229853004426941819656393118168643680887146207752960420929804219627387934936916138499689163317256844569715803955793414599352999645213536187085877321240862272909003780022097982064390533201321817067486797125274589956686548043358825960254053848155859922156320270388935338496303756257821202730626623350214860580323627686918369673625273344004731357755612041533616139926107479820682919036244989994818886683284435396215389473689854055445597879571941262605077730741056182485017658180127619404029050115929111239141243405372064409739400788036118412344201624750999302634403352872132428890332085945727444852071526170137069507315502333714576339226747664990714013828232441988461540031089742851386931465124233856376617086286800014936776745643231444045256059977784563777810862459999057079995916670533611523312025947497747785841637131052134017195508785641141582604381950630458739847440028669505715143835620358234927269471955466844042992637184186013044798115154967376522195464854407471277952377825148832664305608288912615473584739629227481049817052515933633236989718006562163184454277886778305522251771833192284716477997896843284611706583462820932328096638185525776626633873521072685428123911861893547022238766940863962214887982010579220297321241074030113373604983276589852291437718592516400013576579086701560269383377583573158146261564657490097747216867372284014878630357185303681189254183881250499505132088589267074036574756542459180012159041648233006793761746286760294696706445465278323247716014767978963244241511575097204540334034201685607037910228863182528488651871958513501668900214811155675863224205591989870213318976142110481691671860934932191360961953023514927351167120402883877656630993063497405492492538449953336979301028926303164200256325151642704285723405068041803558593347979425860547383245358964015727673247966055842344717969322326311717391375647276131820553985174864360939917083470793143489802775926630098914166705404891310497230234099096009129537213632539485305286503200470082019017788546917920167657412305200243768882362320336280628473468762962976415228134043061980812515495023932619001005203249098752279112685069747861200416268174176749299565888373770226002398210655574722145724974635954717355811380121422212067951895063698861518409553391578487624525275554435074729904074979008978330921722342382811451310648394346295478591675564878763871213869032625604315591903670074839251062838620593424795552020659817879857906772619511338493487506221625738878624429925256048309357454586351464016602849041369606008550231424879411891307366455891762381980263876015759331289162983612001891115889002745700324547844471201738403141849203839261208302903619860295880991055021946628643343505380884690397355744074869149395719219060714537567174686064762018733430814534521304950537695058295861924488017652108197929357802023248320668388196559968650683116265020879111757684962928747456075407371465431790477170773960351409719944827191590593999355527057735404038568861469744328246805262011277973717628935944580213174636725977765839652179806720007006636840746158745137739370810529959976214835035655923745499995340452749408611263863640563906345023582274494689581180150051082337298201504083278846425497919660996987768415682860949422391043614655366563909774345392178022989020237552978469869870157658041917370729854913000589700360151413491411003688446741071108927298806885086927046713929313934102245925006492624227917211566675149713422857867233159896325866797123736852762574413730452035733795688856359254175244474968007982734217869215909327346980607473567898378149191764621889159450539703691237264054992112957268189800488095933501735920504815680365636594466862553481287249314834616085193604185070173243191135880283007603504676337106223954742779291167309658960745109334372994108158838085767716391433765387931340775167010456262561521638731127703887343402952124291443995106880325179715582972677358573426451111411473266299433629369059313048456507892574062703612491673199059592390584970954176999776499484461359581460124520045554322597175774210376936890216702868284406161581117022573653581376635957508906274377831858816610697416725138493188634109839900600151239674927390724249509273522636698690444644557707060611666255733244242978705708786769485257952263375563965944979729234798592195565900363740974410129113346678033461457204239192335117268512619112423691981423453684946363726206002224017426818570193694888886603559197728573199846862178262949332287231881605280893452184731497241278621577181526166650664637869747221793095065814844125835729435047715305535945919759250381739097818132253333711943050891023321662600700536941673467059474626773165958019186212993789703979337500254042125890852523412433458399076288742678770974871480158892180000001192440447405594840554656256113381394148071615681383622118643664055469575054134725239116726373069385254061797631530996984410263224586638224688729001184236161036860561919011682934686196971498143087018450270149518374801137505787089551065836363241559252883278323517784278474283563068211551882354988341573866207845691423324742355897581781256169098924433366130562409464438100303519903027653052565909675458742314765730983482394281884504945612758831873961253460725288410798426511367126461129988918292352622626747990854391436647721035679256478509953800698782742287435232220027132865167667116782228294984266353108057772595487838218352419629564165214183081033431723457569688243324056627495171308849797096873838160073597932157229894635712774475782661351654450101673400486138003076803866118444696627976796552119407434309586955976541999033764796162530534540731048142539487673247103179346968971147540737950143394326996661998280604799595137537842412233576798366273028346526141763310019434878450836417971552924154905742085278793510309510505081778917704187317794234224517537230622149119651200137214565938013227547500256010925258496132289716912942315641994588147131752393969168863110742420940715614882222399151680080971906788517903256659099565328459115314621990890121866882416424033021030374377555050349784489722149445531042285548418550095973184455854603614966577316670767978481678207231928920967833621685054988058888688164916220252501587812197342277356563076905758616092310451947968962179743282154007034206422869860562528848782604490705427255563136591060680010426695639080727831621924546946875027404281021227163431029848280732444637652517371557851960489811971429926796893272996384547747502450278805068418616641333687642105186404714287697632663451149733941108186328189064406508373151511947137287655954043623948232960504511772966815294378209637118958782155599575489691197458147376199136038164078931298865624796648117606585885952254690881922642698748506242084831563407583984043989608828613591892172338979330478000947568544446093735581340017010070522380866170374970675706938301130207287268340972635988622087787202428746312976912762073416032800581901451586442208790186782520332646896599196063089585290163370653105589621334152591475811712881012899307757991870650810410188670891067846491934535255851560362753539523619886974880961902626057361490737458034587002742492806825918475190974652052788235484978446567116509791553781927894075410150875281262082485062252905077704626681947170330441039432571262290530501993650060975473115501777690467865919041709275502501973913151641332699428037667936035705399107134933701386576935783710012415126674936111584690867332278219510506020192081857998202947744917947642768052725803535937524386679299717927019708365289758443734460015515227358723625577987499872818007319770538432491745599265995091981794883852366454950034695554402024161844226258103246992558880249320631298507979583187136673925315325655184763937520780317188663124804900987953500295622487894844949234714030822656348943278367397531419665540799832998471224302191617400493224743759378905341623596930628788380735937542992170414890415741562161783609713419947586966986530659676303403194569821505964473437816133535927519870949015795760668211107169124327399945790070194600782819073580143268953725739757302602220477413361842590921032190013806019176218602193627695217769807078387012067523878952092967212656685067708185080855041679684985389455479794782484779520737596647689238047457972822414363771983828710683377286304582282185277281199523448526356815886918686563673806851596120333835490625567081915620750076506686156349743011442785219091739455148308634705363457389528798797030256284417501445165958375079751924660797411191347018639627420620594195378093966272061324861169098275705194218874829355884184492533655975396581871405547552427389745409907404207032639797642935120040828996055057581620546361563060679283149812140054167077866405821819472361515055016700071878105045092530063381470345389489168395838168428572353253468176920636616820402088764646524374589022528207361550436886068035613708095906054807938689101682805546234577866177830657904175194367714133767762410936255924341314678144963726001624430101457115386645138471382613956299188656787735826721878934077930469328392121496067523098331862061881932229417401708416436749611437858744356638870206983228346032489723947516146716134319184068627667493728034697408876157443025628523677968895115811862853484964424545058428551498418407965226782410877654676236754060557321148266404333145853901937480307535286418835810547047995353972658624773234584971334942811997856450485788486081456770349672066020398712836662244702244694663194976215635896996295935760111000914883387926087637996734912655987405876326620123593348387747554626713196140182528595746592870368782623779180083616872686457681436083237817637876092680514242938195673502491509918116805459441420381582988738469013581526560565328142255820825178671352179988280417516744387085567697834578664023304875280326250573625764651761360255648178205285489691674947350325211502922475927988058458678883077086010654085921704144194369691055832139260325388709086802876489013564409371811907760877017712767004838791093555718372221394366290074535774285400449377594768940248469269399099201855676544224744561041533441971127186550271207396510895678060165454173849981815301810112731899942391932142237209806120644094519287789984265082563643145640901903696607389192103177629716794188638240425597896696902156289771190936232178263506797157160126874275342772926893632927746037244210277604414003884234718485771529296059430709172363140198198185625035767899830526605060245386275612282191836557428326316394414410233008940700478831005002954312054727955758616915997988224359585886019875693183793174001801601888743197886986707402971824470406578389940856430822009363319507793096873032875133411408654728063544784325495380795524485950861124770999119087448964830548823090586269830020775260095201764632500003072043979202870799399091750011501088777002084044221847917110929277021992040009899576244405737021235639954070062693107878614022538767784608523658984716285104013606172533723641542075666418482192521560176559881612214690392588248947377458110013906523155276680389283966385038058379113244620799505573280887992419281726237480619471767111552881856778111606415152344319011990447203012010136706928417235386510575499031704153598097350385135505882352157944540447320613044868403671599808254283172287936128405042064934273311749506667839719370353065238547296003052033264102999811260498610611246448548468249039059751070129006146725539006689465787257361778701823462168514019836713377159248442578447605331995196141606375672015291813765304494630327595337766665527630420564401485872729867547049393116089244993999235417280671519303452731597852797062199906780783810775854607288481663372989458285383131220024903827210706170343698065542140989468960357342381551544917645771249042792921759641083973567855880036216411791476894527910740172726663590182573080595028317413024468408830102200333716688687528274583356049679591020922408865338689273486079045895957013250737358654563813253387045817003392482332529487874157019321163421864178888274557334688452826186282254446529997838889228304821745976173065896636408415985263789208589312285824573775043472675401473470250662672356863458902728305629908329717756907901800970211109852621172158254410428193766408808899366570042654948728598817103766908967757226082789734695197781390335048699247572065251106244990777167374070413199921277052854813387858474514608770603588710694013647073032563659632214417939256860768303910338403346621383096247882725397187177042941726632566452501451562739991185616269821679426329981012364131940094075958336264558540174088992623118079036722196759754539022158330198746369096000200927712794036848610575584984321215928493830896335119864854787743181697878713131932744226638383989284265702497934518092388263010961730976620256447892399127843328533824174242352584992079386357875961814912510736760325646045246466582749493594740854931304880179893713414999923677441657208129336970800146279828320335773413290202119160097911752085592223978678318521318878233082884423026378471537016779650457749590407957152198309507908262234968897433935885169802793531764122079210735547090853043402951445036824856087368957118073708802769005035602025124155114352454054369335359773944879495313786542936841166817979959082682455987078435840374012159668506870750250523841755549929311599469860397914374381368838302899945375265446478712635367720040568107580620744806513818771425128472644826520586267563486735719191095485637599936110749303763648345146489857438942294762986392226449036190720676064860850107910411283940221302716783601448833894819944486003406677313522674411621176392719480513510565115831420118152888587245301516895780980346609000377155902947524205633419016012709244575856997779833256131657695481808085497241186768014460236342105266996890825671255609300606324856712845644781814176100211644147442497417249813214200562659902053173730997305145136398528640847685244864833004805333240104592519440604851390916008733758263731342683212977181321501367190966500064004917713121702070197146705026071885813564165150085088820411552882448285417027671541085955239104120018709901166794753496311918340876774359418322165262869206750690751765737223626611407454179922835373004305941953461210341984077695371200294796879752090188586306875300767639004220749827095411931775759549727264503999432944033811071660138502044265512327801203552813988519909200151218534504368681217869522139133754186053396096247055016782354933430565190606346015342036089626585072957745495632490280880018668640606534596680490542910593692185682678601786375486285862151044079808832733956589208449708439679271588806737828795367113804096244196738222966289071765785108997900609678753845733486718322168597938741497122110832270316587981234960631386154829611460775752693749231102145462520140014870236306055722895367240523002970053685582434673080817364737272683234517384491247890254390464850619577522060903570106234357869636425177827757560511056869896445064407457267304355334576195767459306502035250244134928200271741659687087409734105585378222670108225655891866470441604709202626371560023051788338027199974556622437731818058174378026705093442349031744699199912375957309753201994149133725361456836477757126976262464618100081490757257299741995284421809920756615737821114893233420126492840932739247417105108430810695656542036969418350328984971087698031717441974161019837851335405766798606450835306772675926307054568702422487913478546405989225961071270414281055057557816819049447687485247662244798235586279349821238416707059069620495236191521885161631083844869291710132910985636597399142564861086770182635108672435813026388048769247074709968302931621496917392607440433533661681417124404092946495637451624103027168092213790577379753504079922293207580477667350970557554379208018937894430386151913899062076132679315759658923885009364833459020734968106130182729261972369292486204033354643252670297732411281959810096892965428493287734044539375919342601169220133994542673471357755940531584189418090279011681048471082749793351223644347688024802489719194458439453525475714465272603042505754028303341279808249601202123177429315938040045466942912163403848948688985844772954998108750914437421262171420367542999492124733019700624886244928304574341074234585418025933731710685013729285506802132630303867231261567365337525006271092588952293491751553183053274615184128315620990727745312950852048191856594657299457958157932693800600464029130870073408567823344201056240574519273540629268486679941346812158176843367677228954934969077630413513480137486126200999820395105985143697017629825391266614599174090422184849503664148200503805848655004456700290357264361756730865571541756373633318344643452653172951093183571067500702830132540828652766298089369026231578628853381331764899054529463870608120704026057172973527237441514445509858353847631500082037524733217240025231670364601919129150723823847100960258012605882957469590550049329303521848679693380223142200418436768108483364113977205337701593921027775296627792989500826846733780513996308211235899624649974280499848827728033447931108832552636870161243561530227356374005753222193144006040138312423343434901974051773928750410100689029749431753056443811823048373456519954929993091831112138753395851238581343622518189324247891792110724056422342724435252835333149445151519503127326938057277119937620895892353620715343297298087588907193333240519080512374283015766245426595384295521001399579739108950956704229054966910952956310702747289200763546565291351125350321238246052014455388255621056555489421143050650622125137511292733236327598807701402811531188079631921116862589349927040943362527124804882853282028890259628284990589444138437904389056494729878176381423516271895628946081626225319497004490220661273773418109003701944150691345092922897226229073681132693185395010460036170977228232467366110185281974327292877349375897245296277639828793052113948126098295736459847462470365233072028962374114335250680098845912635761115238101973882611204965094451732414380613031687984913154272818467074212121083087425232737454565462767445885150291670902402813876983319189471179899135409481600539888994078640135379253644032737805356372202402607164562745537402245104184150978825095430710496811249973029842847794853158878428651166333778225529668271197660717399890458415948728754092563106324512648050702727702729122975883728980473863174591935550146549919264419526742344440879648134663309960038830193727477561735316550567684063654416970521926488192878874208349130406142667493515066233721103408248398646310521669986303481025829190035019133200068190643712250070197270399219837269279191572103274948289214194556327371138341191922033204455760606434267255284168462807459715548191076400769107718978529493014825737696274026990506801032857857685354004136691383363845123798477932882225723825683193745574089018443511694503623727942646951316290848025299404829193737004763630015680838988740710663764887436505049114651880727209914883808081068061487932525773536701776773367325207822573824987504121231676427782986576284798121469207070067802484232904012307585243032613233761161012521466722429557878000973632194485930384561121179334014077796289746928194119988553740884348122686302341226542566512935823369183609694180236840945950598739568971921475531899445823639713589023865297579659474923423143798784876553740567553469639638270673158177176972241393108755440571520303621818870201096173511176805259875472209985079260149660363839409202153814462123757553870858256693131655097659579704743369490105626130452310200668537806665219751764768471417082110416284451700988613523220717830387556333931663726351596241156301560462892449107687916249458203930932695371289151299921432571940300399966450632068506760652189430771221661572141037430636428743323068863340026540591551577820004234130019029948235897883475265176344051183117689950161161100581589292899166073596040450021003392992263473907653826461612888578041982992013563163091369983947468885835610616212685296083530788971867746091104838304091162138797028646811745317340040877755231092838713978201354637935666217777280082718789794485008925855799148127849287879314932639301924633787186510531182394157245440507571555605100583689006807790157494866669353798002588480986080955644230958766888173126836707193121889944195977457228696621728306774344605293607249939722577698579943576214761581086463916109718538962814538838074572593772732926563993518306534083844412888536994849498781943730003830689921536347010437943940454661971952772932654336363283100431595427777987803847014509163036301735852358034002920239401036993526260839024392798413795692099804093147685222879373385570342673781788541889685801149883987008826199805400257550869681369339422684017672709936476945963499102839163086773557334914593286539539293259330321202348499965017107935562331722770321444073556042577919285858663193705930010611987587839935707933775852072187907941318714863444441722889254481459893342493333088370276125083124879687910667307968507998051747016214346771348105035044058164747403680450626168233851331173645154695223988899182803111674242654556228243057333247686100786071217523999384673939182222965819742053263952312285976800491844024009587915203839274630169469759449452727904078484306946762080728612891603143614562035500044229360411868906465367537345255009842350921464492184043063470156537465810876723694122379819647132391040855208767624180158108223734500697946502438392748383437994676570899911096638467843610504509625788980318252805936092411608647994296172747668153397888380367570879812814382072565531717076143990206052972772248416419934391509461155482571552945807603468044949300751779553697821418675516273345263153438713949745830310799461253251128368103767809180087143205522912860173254029244253966682034833935779516364591507352697042518726193837033198802386704875088181860741162029530529344756989444257915554779533839385220314772247375259958747225973928160467891754127293752212042436103191652214389052852461037856867278293007969957976973864387346047462026150864982494120378686003642320046569481421870039065277984096080704971198728218339180447167050958340347991850837416421011773133740777660759236433301034222628734325794613634936209778396903961271835905872768642608497610214951138186133838104812938991976159462987953785397355938282269186199794819964327992867738927215160034528594704319362144049030942804436873700084300940858707957075540912570687948013966036013128070620692233110524620246424769754699297295113336112967243319569179879316232347308207904905838692458462813958006793480957196780475388062459600159679264503532249681885087515140779141508831209727632664927313835538186224884988396705081437605506093915634511245311028682030195929983813463306941050940049778030660958970337358726252734181021013274980483203532605446257032032081638377561848802334648610594520670435276258496872964396970996450728701745702223394264053840255733180340415003409985039791054676226853106975192574905276397040991990442518190341273121269388848867233968138790531125690378979118182062999477253306968286565733092819258697847514174534356744731777801704641840792021739846072352820384756025325227277673912063005013036126467318625256588685675818715392431064389043138914107898815821023676702068161608124583681257352783072357752766762421394563531773118172183346142393005716418769863985710845282360250370432267076470684699981651171868948708072952877142494241506364578595474094915236683347574446964686290335037440034309086081217194877500135376693521450174414157139524634099853977116972156398332013882053224681327508033113356240803374987558968120066620230466307419696286622278549943082608035618246016725219798256862010244854011196786745758424056527761523395092924790534480984018698844453564007458610374674542735330812241387225273958863480889379405087387742474517706514306969873107907221155079028823291886114941214084987644264596023959283851183694626041221186581980018875967876943947781791594650772555946549512318589189925599406452955256398187403075956782983264007377429198814251867087301806195365235089020288551312302055265336559401418524966048477057505910489507357817642618097491111583830742759518068496534531987246076739221458748676895929358569659152559117517671780142894793552092988487243614484987488904109439750302185192094730410153171171288921459842338169929235984640758674738744694444423599609703598950600514248585078731448231966297282119213770369706104260405005247203989725403682063972552459356808710493018286048360937068266817477936323481673467075071217564897750779318357674705323178446495860469993970739115949784566758449782884349432145731807413844808243802587180936522398116770879029109656548937840669382534052861263368323049144721467869242535386200593815560251685190209033766391888945297906401894986442888182670471640158526360289040672039765797334447334718619958528418409999558158122015300345871297904773290755745079721981323234068724311544898127877115077313200341560506954151121704387961329687395560789733073523102688937556349786674323414688153072161041186688725335893575541352178873068078204999001098189734340295067553685353685733250657123932892770435453996370097926429278074609280934069283909651910585696119109367724191328894900837904947765346403550828941842341197595614090392319617527396439494896510957005221097661920493974934663404535803393766446095301658373964958342990362683925503801833073357809709089848316723714942328110482972447033410054565978993701222815702703790224144463820274860733118089326995007977994107846455860077099902046775707089193070108440468821595074471627749321707465580150289917732921444934197804202133676069036091558685621817658976654395775041221576520704296385429973154305808675713991113338447395168758844613047769546794706107380868334946539235524586361386057229551471339325211916198925105306023042997154764052684280883310589665896208616110960736727957287000499261555437646459661569463825510597251461339634145601458537654943037375872649973300093399162351918592912146099217767687890954307412461701161860700439357723672005890444362117141134779465085735264538947674121021132416994954178939073822759270757373369187311516140053797113588681272210068197559619001282359123806211834016367894246069817870469394378870977342435391010391897065010817995069750627713573080813854501007688354291420308905975197941809900265701667532232638554322779875342507280861653517504395458383010350776259889990134137392476174002161147948731968082238469750404583017800325193660588404748606764080039587033054834447845073632990159767277019972610575611788230435483796771543049265375097087348790874439525179946588510159244149910151037543415581264010844418963220604144915644272408052559543129170073192666320907476397678451314183961374053431525029972540935303251967642259597985682860347963495083322281602802932504745154415159532219944419909801055207392878224921782802625067860919892249436213111320102445796550487777310600373602689361890678021141434148639410821593668021732820310742461243987530492903075643851604904353502566932657167790248756283384279122957893979330522917830910533627444273331040944655590168042931710756276663194012042043484412741668345961621811652885595502386026042869027864284076481008385655990538662586468103480140679114368464746423841352422582850691972526327561481414204861394647717250606907025336401184714075415356908005201286914221694235388579735772587347220445180332741834469143796544366086743586003496651761771825732208409782589531070679592483667807401442840314853958570575616411449344085487971860666323019328324876994514709838559153896489260366756508099647460937016531488277740570804000481204766761791128178124480442440231381478321052862114696260333175063868449679630434812726315787775063578787090916883136409634540342214042668924415385860874526885793572658367996441204647127345249101080594498745580623489766984401529877193379764128483109126578562840725216831633107095886977973322115467693996738421720517705481380303554671102474854793856475253016642035569711508063283501599826204640304899517614589515466780912820404373767609130462492555810257883946292278425580593597169664411725982693837502992804128832852407208139624855800776070500235411331779778169544789839072417089640862597789448228444672163857557348894054670349517637639649259082236706265162366226039317460814981444274639902361837265361077577216734989803576826654108809101083934707038063497048683597392672051855099435135988012642709609269340894457565697069567955493236276962193583249030453335448746457664023148694054313043677257728523367602526195857496609810055681374466461086318216494003558095908793116239866717383720999777760764360996545061387762725351092012352983841359731864019198342985881577007825799638357480009428300180610476145162388846150825625823439287679339017071709083335800428668670718961829478335487503666890223773737144999883700500950919069172832003732965395480869869722727712842787844421266698483276563274718003756457542824570681014964800546189031037582889300467315946001044464147872942508250939160871416641390969559640938578080483141171921517750319885930374547512827070196704043956655111968631712520536280739636574902839094835408173416404820222219529540929259268603296798754292942490464230138506157960266148978743753924343968432501983928192853955320973981398969520759050130560934432753076673988864315731220016100252478467131795989645811277886478376478544896282112615495334395585458651734073657586793405710808297357710693076046097881846292640728257430501847704889063183080623840711312930829931483480377925328813528480536858978152882005789123981637781136167497832511833342134455885710529387536107828517184634137948476193820001898055705684942620600423380603574101143213514826255185904832920640170762510982509830816843755962310333997411262535106425263907736494982800666798550167079424548289259628350679262715509766137681385060066859062829856665347626541686190647880537664288022480194494107641670676155616240002900513494913195395411358509854946928793269464455052261918869971036032923784768684573588154653710139194850200074160099780902703943488605486574897221358936637027390863238423485737715651321622558344325257411114648378788802812545772912898204276875450456452910260368811318123434271029740162978760402533452401178163891314685073174473687474842650234921787835462026024384021255758470211376117706241689471206455386182587246423978712829592753800442884399291502952178956440982723064962474918363590301052502437124305561485192815552787301468845483184324883427087105423669783615590714289370461440374906274688181717401820167481996804530993529078754864023950503947578698445164378330908126923399249201848554736241039032294311909858209864633646693183405907414974258998005318870281376342027378316446910923332291471723769226376935345324630826745424114152464665491545406001409091277484160891011974631025496563235211018595563390712963467675281128712389768173316112775051236711660194584602399765820041322981402211756361197435469093447393860497446180171830893710722042623911794916835265642820788936035308545995824098985797243951319518957951461542790649319201458781803188300418420208306864358667447309799577058981664717967926674828858560921183946917269360393411057175942882439323166734766962266596889281384248342180021300527446567710923173604515075102549603115020607080009684998423520231592844019872417491811047884935533020903073698534523241359927529034383601102132391956397850200426549078619037313419669151980779670022135170424167595198002218968280702011981865685040789845000147869136983005701074545542077296545948412272368653317678809165620632621710868725367563578202821750700030205117972673060611910272762453695769649582254582036966715479892961153394029562143854948363641690198056627831280605287873042021266801152455046443534817508580740340118028858626800907708915765602993584695773881557298306566842433257989155879017077930178212788684630074247044701787135934242999441041223606852160191481212803678046531487284006503775036107270725249532724705334222684438195910792438356956863112908395451889449372654351916615514168570355275717050059074065897582151225927858716983593104063503003792356055672657142671609124379622336789503609345119421739879821035377495909514368457949829721089167239881558673971039739945809878915650432609745199046890648169721994929264595062951336750540322110259230028085150039988964868308980484329872631734388366191313709724113813521224624781384448551716303365892850691040410500428229292685491838060983619351958909533924961107643442354093243880242801524063595466361268506820320037692986918323814952545640573970093368253115873197587336575049442913342793302690226238888023429063005565967515879624176015320998637801174890654773313646527261601578696808064462173168755906148120314387684060249114925145584827238915634142524613752734615590894608413102870118957440767374040154121226087998625541058756520935049037857979879059707007055225860420232364034590110198369643580346296219900653990156541031170993683785113038837737347822108864055500728662985488447367476557519339780196778149887836192040158673833086508846982206726121073259265068964386400940617648012375646419863022664026592533827658786791285672724967280446609673622190583745989177291995239914564231188336580449060916587511166499278954908938583569573055605672921276620163145047678275427893298950713613485361983841347158281890727311955136080853127339126237397221147051065919711567558229225261098687872641484001153401417701421098490576862240950963832264463249479003131093448302079431284101262407582852728807315429159122446966114386368085893419368157408363553686861141760846697846583771326738142910378119152327687391973455373955581950266010219464949758779561671381123172491404008187695488916243945585870291639628583035507353395519307399449802945666361808651940580583108182567186317272870616789684557478082310919305487408981255695941121725578878576700395843892545637955278977885220630759132543550403170537420182354185277299017746745228165868855507341961959503561653697484781416900466422644933566176084620717111706911507384824641649784231972045676088622173340336591770943426585481180021262915178654344712545088214691602651031674974952826079854590118904327705020109568382932970042535574641086341178629613811799030362782501082885917362823344165714458418276043594537750447105053740235223030390718242684161302808126592497235189127652702456846791188931563488959074496458627587268202647411277731013355508416123224323097237246104697663752967931594092734120776040802264146152686164637018808878193473583712105649600257953054126653458943948520904285253481667004010415000271936468574356108021530230464137037521553510281338293213628153809183011075189608961387361280524856960130282068021059225521175138788631607467949087504426576930352832860181924452491663825099055576756160090538505125940282005110415698797997278258487631053702017562989834607552946930088969330846295461382199812019740536967043894120112007867901079478049188658153379036133249424569850352817975015172957249209360857852572055211240823260234635045065966545570386548163634814134951607891132549535178859709491311839230940156160318303464655214104242752979298078764694067409161218470171552691145073707571235137985483549030423971034842539356026764084297367272334381674713203346205937336093270932653931254188218090482231765663580054262175404868041635348401253676128131082856167874858703582093077447790379621711228917587553972094724688967677706465437341122751816092242341646081758174983520610307360170340026270806352624769342061328621924078093142390069536249570335906684662678740229722642587334063334540032099315038064795456347714671084297131348514490933644648730656706104065898852178947087363668696464764040993364327262637033155788921341889767051136361645486395777023695076094444862041113495612469628498612842166026127842325676564243942891554344115711509075426888269096150772397453968802121740891052976140671168508228553389157168058972957612602341543359399697395630183417183197851045220327248016690244612013529099821394883232380448436945728147777912392150374915400341435447092456920665656468484503833211442760791895403801056200912972813439515617915545888326440813773977474820989903638883840795643890577307532874305801704377675278591616818991330334056964252158759971571304245567601825334819898205697766700083576017859112993167974795412516739682213933664757468313105497112540718253814772490465368253976841063793399024896701191322259896787953731070793936432137369989618191032495287737841170104243945160451691655619212109849389139769170203988895866406253557713353715385342665962244342308863412850917413944834410776319699590303170016706440430770053925441621099991366737173543681951097739602734551043817451928328137582866121289291363952475550277506971311314213346289871364299525586972860108212998802215790372459087514043536580073581701951705507654539710321662329077147551094993869251608438077749173274322032755116566128174086270126005190082114483501453282228298490806439813540595204882971196313843130834120586754339813387131036285799726096373767923703914402785620351427706999107956761613691176954026594062726900054724000052275149256385053752900611752240997104328716119827352218720829449887988092879416588344569799517400316935799326161876331008403426103662140884020721013161706119779676864548353904177239348602850748406025434619779092755386201496577604158639414839577641188353835881972440490333935482324695803570242519065840294306971073981520767723523910460552888596672869034531200539653999914094502979640069517455027873934213737256267369942932747033395489051866021605201908105533763291518856316109102449335136571443947972385310070373888019295115718901810404922175454284719502120145989976803625820598191319450877360652176769638672197799848658831712896775210857839143581927568735403315815658153140921010050160337022640117055625633321246846227878856133014903906241158151827309268714876290216886128008400666123846455707348333968258738750644617855574168240424429319755293584332044610302367760513538993661142478441073544646857523281661182805642931048573538180691676703081963927617332646721831352733124724260898004096650507896791367419654381994417792821474755803931631695283837919580494374919475614292115298112023674631886911306266635348223469857250603844390509670701033000526344040134560838387853891126606128393096296927074938395870191694086219226891759793673537038091796952395543870936174394678566496281545372725268785357150505211789418593528444201847349536655926446030775244552969456424510596955803792500937555109621615360476568585845981411520572024890815902540593586823632072941284283174957733657912561658450687538651151917894382743708603327531414974215465664757010465506697401367847186032486075219747567573928199765146175220193659414547654641369073578897916716424152855017080372605664619630796919289146732634193524006578311735810185094565451636003277010912133980192946002735440879546235065667912680151664726051682939140535450021458799139933711519373258721710222658675484180281776585513630096171328030040463902939272076292498164557853209003780957107518691031781990026893872331097596418517333598947549286461219448748049286496564892601672921912511187776548943110781528479610175423774266382657759351544230093053764808042301431016082829673874680078978447561971896765801478053680989084885414624195728580901834426225416451832988119343111704476338534552107423387274895864887532470006715771752694077789906152011823625519540205357181890736173698329427029717794411756372896013329744724198733146994449746444408748039207377921732553682374098828321898103404225614320675265502393154890509842705468463287159173684733284591046446117230361005135125680182508022066735172540160574306440618691563402479287154464921903239858522782217032231142853759849932955584932814034587389857407099073987124433163463842608405653471511129204150159003877290956869389509744760444928091646792345306318187793320737578751709474326467504336881394046624991102550294168049541095617930140367337453575310760049747229975358486115796852330280324087383008156541977529293780088015264280435958744893442840076107310776783772172525575100793783804816885861846962934111599538527810719477148810727124164214245770654574433344309964448244383608669354423880376572567463855742857051275671990364216908316271310704588955631211741142273405545945909062603829797453721767835764612585694152411409975020675356995916561030482233376026836226180453107771679922406260100468955087778990784403529765224125432238470867566791359798927849993342798230432335902995009389044421894667778059796105422665035939509911377048097717814684999316123169016477571330347488669516410616996350128480300824401596246052033784065170705196644097322007633527087355664413176148876901850553247807066236519990730168236894098995577297694531993206128532218984022671365210622835443649440853326332456279916109535120024252552433267797153630220005457399145105451777410842366970353370979622526980402006087666268694998932982388134528430493754719199228962647202362654621884413343239566947982289087440992216962086958999166750668264524553688178380518815276369790253940793601946904713544560773694419751459414615639273865947419519172428662922091370150312494502083047593924788741509288340516207059340428307728983479242963153620526657210059997425556813977634477394661993590242048854136594349348779752894918077982804478553786883646342561553344409165727108674212488380074465527132813340392304607460472296487565458253901609835779927264060098849273870831468843472329200210768573641748137991903289228204332928449626086175706427047935940650132672580902008830070821657365186533229098461257331104332966628109378058883849979219885492297774971552120470605476361914283291583211629654651778315720384835030892113862857815057487503502944301292550976370120613667608815723451336322881115570430368057894798538281148450509267410077670792192296707420767349207805836974231426964218835257814778437305741838782383340556790512167591959307375746517565198267503126141125492556614912796270568094229756246261372074664118331819631508511788959115443311969038596768228437247920066322305441274108898235947441827800120785976383044639197230438994621666318814749918819451825219006247004232522067382552582019008363686214357106881564170057919434349280425522048161370083492017631701957980127916516776242678116157957913081417365767458080326713575935776348501571863089282352814053568018141391618648229724585055517843893558180661194922578435629009315035663075649272454036602711105829462479914905954040143820555731983482660872171200680657755410547647552635333600744519718964229453196956317128817571359792582155298873874615672245517270629436870058748703035016363552894307635213349031980758525582685984676977755238021297920770292492378069085109017137643579627267862730289622237852516735801649467050143634512739093818564882993505259702953156754620882266574231139419132661315298816826280635157324118813575429522799405849508624172743444592810568913038585477039553191475440586614460912639616630819505037224071857309872577636316285177150145567221877067851897276375819062504809408284253033709097284469695182501738773757757669688328945390025547725723987823266311012005664487151820539585443853983370484352800283963840920455964194015277552666945683125431672542306088344605920378894238263433389125923440991254083182225484561350223991823069363361335157529025445559505598509980800483239969579398577024860702421797495318132727971883797719462132144222005049767628732026006354113126925754497205878561128703372129712693891991554169917691032605973384437539144406432902378220870106374834574793652105210251028719661856168117416923029412218175201573915339986360708874103250028786019312345489639208745985213852692950117362203148821231261397855113268557420112350308701538083609815139075883919032263677374184961453704233038374130496445093388683394553605566983339718229274933772372508621359371430395028511903830413614802722176886838755491379573999075245986273651865028308959960312309652578636506184471400397430017301254503044053266117339344446117025858332297281106673281477755243535343321528126196939430982185452648021054377326354495172500257991595835084146455226050502275276275547796635162981733153824951222521256199571209490474556806159973363340843369939138585646246380713407300660787522458461342021051912291717416526939505087720380659449614705889752738358216240009779042209318978802409507276725270761178272883110313124109710118246365176363170602470356636166898261356146462835122261729796298944516723121873493793725738276306943140440701405044965754383904514830608191955337948784999381935219220570019879647803491754519209002619174185648978109236669491509576751502746201946310128083746250715861080189709067460254333197472135835232655593496105785158729300636994421294676063159614254113844364668445998856517789028581011715487252858146151212885724303308274098467951726697273929802150574823501788906441266929978159973394503598366274857303983804938744938692734860722869573119404972611618412589540810383163047138200445321832479241661615861559367752511525686394121077211247222984349773936080651350465814406920829331405431744601178674170561373485476746678698257454725796937337660702667696335987674610981535447066322887343734792714449228825541462607528875088244494102827392507851967477024328522103554127416227062913858786192173267167912755954392704889078414940822739549475484816250761243694290477423163330125307656612845452929847277260943419680120009572045596066827132273715843767645122423362141843793806835090762418192245842442373687925645672962994196476435404227690023115358835606778471466230282566004030402424121300720436222365662151882126691953076340300520554223732637086551591061878759432583338282640709197564480635769430481996430105869096444526803397590746458259477699363282082500464571657465402264597337500095372354323356553379315347418715056018350211583413071189973062098998322028972582029489025000665479900173634332006923556324413674931393318416370275527217256691268707264127974167726610934216344201298193574249465072564284459449514245364786364922137833174087521833812574711302851349931567823222952535759019045395872845278601548541942800907920370954233847989187616662994083449317253887480771701158245560042225736468997495547727758807195281845546328823845788616686241486982431669003117734720485646844765837106010613926907196112396370471397067146093643835895912373495919100477439194834085735150113769233871448821739851593004138634454268852726675799152300857571229012642305799346405852589575096372978892345219546680958104877888108408239475712476414687985520484255122214152159537770666124998101092582752430414341114244140260823356175752818978852485114644111536870852082114970414658550763429909024705302944865456670060101496331329219118886989721313494817733999335591103181113885239289844220775789023796305501888790395182270569325533372565441785404462483546481528676067531323032506461636597764759424381675401846910310255740007070546118216117891549933530397012301030649854691925194264810352736944916898052515864172802319204942950641325473217182354186310326269262976887468494775520568308371841588456314607308562944180267469377302509486484224931708755318207752164849094973971145996081792337897801390441810419494686741652453647775361336746110906679356424043090038254645405359460023033994704361442375397940523773700760388241757291583475627575040208652577571348800754244467833079186585600534726433337013088944281562512456382093150370511102381219716909928692818924426144328331727980027381800158060355436348033285456526673630208672297923939901209976737591739073784667674754497673486170007604112253582585704299217058623636500623401616607289112833926524884383067389257962707887593905667233070936055512921987384225821647827497388609999860554062272845470635893038538256631207164341940612690478895091982928879478824764144265907746118714181281905222370638851892821447261465573189748930366434734262758961690477207421410932059644749036289466612822964014947744258272406151222215226764895210386832583232047153903786279238835732290114609147639984674679377994896923964081351435357835175914183223754365061996201547249821139759109727745444668993378836968801828304253349559231513458570576312680616434461360467726434219470714128479411156110066086133794523119246284010080485498862754182388284043611897153329506046864065096725396248150903621873822628906627020775392079860080083957092316281402063890447110409777119835465273007398265352146625721741086372077848657996796370915486915385322145713850663918584630901383569490869493493135343653643163903919153826767687360244033304930965055415215059946154775829018206625252591857865374080931211700718750424601836444933885016981210519804364784641533059967467360156481376416042549858943844742780867992288299080426140441893870845812784045057257751260771857459849930317653996149261619993008691433035261914026909345613801416317867081717918440462763825161069952553502030284166820379128328812742774696681773276640737409897281726859013459456387512075004901080612129194050510428958986655412543092237839237807799233869158782846968245086765245682460106580821841573184088287872184446189787295529793952231882306590270763990051546812167111248498725720242016946919694357567545926692419295345644754052036707921340976597361349000030294329123640798490037664228501049193678904914833850849885980628976081419047906677689460482986265990845465712791632211992748048433653806049824234603417175406111378711689022552035531111081829184564005195129441209999325721608660401026375043367676258618090689921809913493109692219225338367894230291629416123479091393562567556947078256122823674619917798257404902179780303799051049656615116473365394539985161910495498487216527042554889483426324382613618934688661965091487101960375938591415400913091301443517122476567591152568787587914761785571777162848749778087974994315761086053892831663118494719000286974331183402679720118644012137474280119437628576165571700974526093044690969810548950349427649036647067451744240854811691822292440434305461595891408312212094516271693744286361652583547453924887316477442508836246792767539571126111911885129752408954328198542568769285655680967836195918397420231052459709605728827753025370749359642877243923007027434331976126584034871359084941027323123428986979955122506350154617798978201644356694132579136696764803135929264562011746429024936999389369434989923717120402595739819367076861707527007298547110952636092628192618627599446601538944871398667104630390155787576478126844234103654964794697740396145667582617586460365489863882099795787480942716636387461320484783679563530027408127997486388086507421620341720115367801402959536326840082132034887400441032860505030259300510627210849342649610295048254102306397092895705005422308721353936613103285118192796544991603663018753573034258131613524011053023981773091539001795816374979038199173991062858132074451567307017770370724119351203103537282696320567506690470523322596255327800870760653316800399630007017581821745579857687641954333260301539654758869052341243497044941982877164316594201619999317231297101685830499521413179064483074971998715196483206236252896529326769513797980453806083219291599421400493533318069730090478891173359506826225522947431046008413852540491456162133030619460216974304620618953813892417133770889797834419180156365299305404127598531894824886498170381660671448633087767075419104526558848877069178255364061256064698646027725629485296199820057419463504154355029355436634209913004703324369102259187513676968350475368489598032759183060214274683662466044313709352951803999353560576036587300422946518180545854175316705953004544092365497403875573628687466587230150865127224990289342646577765281481569888754182784779186922230557022844565125263176933781160369652133877172143787236732122129418808258690629036522790970327252354825601858580197735794347589272249427095173311349458791423104356697504299300638979881054651861642719307641872119754513560534264591941551121783283127733206042983825489886067157903535346154613966951766912028468096504832695016249297433907246375485124060756430908561018712828321049606094127909440310383978594164313803052371507790364365056969045512610861442988724967026867829877586680971434335665198038571890157153440628965190919890551477622999021071669354590489387569367050342929632897848814191718539964950012829975870833060420177336718981110413160419820560987840976004483828896226160098414741227085418836314108375536627422570278310303822790040824424598224616304315063895246660212359129278218950719431256610753762088206005501141168431740604704447066079422509534021960869568241663591935417543512663123223362346760799334766000769114629471865206359868684984970182524769064678535984513936433553313517593167655098662925621126334207633085269391677713446679382370317417299718650600468858855768090415553513451398077028347477987023926202673370501439083868923259720275601787946385572529935928066365835650814738511962053725139611009734980648145399898395492499429682080466278543435690738313261440685571261814595184993545977554405433293912346877812241953970542155619196831037122784051410003901238284756876620091549767272308920612030167786564058799541443042606880275152760193940222791688495726225037108615893249265982914990195598409572654150757345054806669431141762306173106762239832796722639760930960445021408335233974136463901710466548499049928891302788989417380505977395024322616649939096864000071057927767140201572585392062343990222333703485065385177138124471583267830794027099366032968129461386659415378192789102483784920230949770675811050686913258240191788494646048369869448969505080362012816409689820969927485624100453648975633213394727160148412321591866540000911525265903061844835885632143355313604010542758551602082602932445683746467616938088688340132610420450354460138971861147168710249636962795580279749286560086230117579420123560064143757536876317581622209548920350935699508973771810880902496788927125599762826902013558834779814451129933658872229327044632039004664226570674577053071128223977882450174192910027402661801250743826793240468623388194087369677270566743491327164247399174885561171184562084971959413497951286028039968967111722792631538015808313713901186901496402668986269055409088453366125465585246865467310334011018781794647467818025752455544675794099744227292988423022342727325774347024088571747492958606800387200655856433330784216153178864763693222220059027521649739067194930283627114497155060342613697927578556330647714705035186990916321734630234972277610131777785089977572293501159089807784292626981225253121156329236764255236903975898175789734090770614651124274942911481364935713033654247659440528985806233359187932183586321976425198567329832926625359345196854137577813622322790404209664305663170177782693575769425724651633898803598600768083854990126949768423196395543573450130400034613805057299616030547784787133063901688288378049785190815211715834747889755740631424015261597653156692910268972483603408890842442665323297089146932023224031709296320722837511309639990467157902697242822303995399885598433843315533511811971082697392958670610215864721074557796930533528238367934315638001845837582751049335656977219869293017436652503158335243653622131599077086377963147798047734920167612299924077534719996726052489303098945394196509280890675131041493289442032839695542036372673698446853622301762962931797187400004207113879761540271866930583056709327031202864088599726513683964196158216534234494939472482648901357851907498726884203717145068220266905316335048610164532733336078659382796392434612960066682047832629298850928507487821903931991585624068497306110501498279746334543159597768507550580139899944989386562343683905234572086585622361214480406867515631424009732709719349061930711971738348772486615371413357307078958400852197180331116516122399313002870137637367932533072281007956885693952344957652418665630713209744267938926646518146581921062242044786441510784154545913622079107742420436144646783544501976079593145266926797369334888566622893355243732176029873541887737263295832064990211459071778693423457007399918935814391862587598007883302626219751239690937682632106684568289666768937583634975535464067327144832871072030735686911850105275951161786875420979392611941935405958293404785247521936442457653236179278987798687848357432548857884201900091375630314681553431423547619508621317386781676889973593238172351521874745502126192492329524681457714301710179674182919094079108030805161177009714287622925927892889125110368908259064933420488594948069009639685855402347322725150160912707920385239056009505095804289479916998496785121791114413964516270095307967791880521237166737859368418718481678729008713231887974330349887383374655052421439483515199979889721194032721016357783037660906969716935427637847367373676776182797958642114436488506480928756558716447149092588207376390514532971887193214828502964658427929568516893919289702058735970018633231521201631203374311087842366903935966424793274301578556768176869327960805501247871271336656189507691754311775774701203867830339577173029830849262411198163710953588914680370299255586380350944207726267005308428249092462703247192081275516395242974020004862008130844008390369760825057087214864239650538736791019631088095210180891685442163870067799492849755346959096553836011128757878226222045134909166708455370797429964325676286215684287195877194767371661142713314305297818494720779420290823124664482992192524601092484519704370122786851014343398978130745420001388759127055821186311270503700104631421816941833651743986939138805714450859634159013593540540757999360479840387180170913515330249471710067952181496688532084610156882354287490709567138597117576958841076171672691060370457895498622662826292923166226297822198673401790851639960211382776961717614381677707902050792768811643859081609555862238296453230973570173172159397792078932754002149822721890637845190524302960157674215589952029955876074538005441137843508779950980125017228031998667266840836097270278398598704642874355029310916656166539111358379589257862298023484832781280408455295292920065148663067569833524378445085861755987833305793682705588379437055528236198876057961919960574327593973850238394687355264295964742078250732293076246156633763296751892164685044654412898866050305603870829490213732507245306369491974601815724625340482684159967259879817503810529740865611770271969974275252973876779099891023733390152688966427941158480061205240477892391410663965563124558882515733845907921719004403921271100202053235070674971188501098101583521649602215488076623088847847170420251477331933116951845747516267435244934407967430395605909584914684030995872926126532282689997969830255201957477795524309590538689407299477718442294155727482068488263149243474449312799405411068251223848145225474660214630921947098319396195431216676394179537759007140369330457619566099037486580320938994305211377962009985025571144435606376203442587953118396457004071232585621325009947426113168365923368334241144448170283171201531022383092042628149230107601162742067085908925291169822599203119243016088134386999865825654707477976594611824296737235173014203773161645421177496007652869255222244744780733483465230290891593909634112852585626720547553018705660124389265589610377912544661683419211089990123747337738205358807513066749815201559109461965869166440662054361695126017100540593693928832921109735410002835211254970948296480223917036044926463508529045297719638982955714898067023112101169848516754593039893719169823852527366472439062189191219701773075533035503720893406867140824234928867632969866448914862772004408006116396109976586751235508370956648347802736354779010717536677266591477013259288443118907172401255010144325191606791250775689205267583083592780298412199581781103839701145431631585380050233794078668058510028010916816961763805130176764072854011376948241883893797299823864291051335934213034418295999527415602730297704692701011246693730042886800983275605882671697836169948261851893191955149968258144241821763198965563677710594544993587860168177265960709890031819883415364791825066220060786642171354619954695761228504881187517149730499809940071366169404850306674108754149329074131088006267260819272100589095851343129795569664376268981801896075915822781915683821500038715796099233020873109792153109499186095599577712475665572760299136390894393925478641246493942459240202961513265472316445146246030743718886561614815121459148804791150481524884183786605008206961525860077782832720588692902090888963627171448896760724816236017688205484746533961357466903368461730508776647963331516978840163316228454177084228773000325574940036161874408316905087631197838624994629002238929609518453244748846492917140311760559961953681107715537783860904973693965879497200619071220711995418317105397321081066747061571998619882429264888091699428164118183107436477326569187861706454836766318221271651445712473004602857733026630221478360788203400033744192307953527753479338606019869122004563478775709437740273319509765122907127188377202715595130246672174800968118790474690646930267626812913268736065023920087192286688945855324076439320492280234473285779435806367333767832707772882254867105180438944177739292732099228816885725869660189217762026907843777920892301867251073981241958614042470838231347342296488552650570926935972147714306332596270558480888580612727004219604154128999782946155841335604824174273091512195062914743711383881046898832488059963396749707252579435509418257660575005716047254501430923320551734582714311704841826406893161783026880862790129105006059386577820866111397660627028643962892193854253998251221127359738846740516602497443285932517444088945799546584770143286290990593817482392959561523949083194987649834493883169331323515482880831989992647425269735333861655110941437396961021186391090942635116458554282176589581472559747719509343582157138444615400488949456935345022195842272592699333179575823907064928543458253516992773011950475237750100274493286515433028726104248492459386334762070244031497990295112454516906452717276570208897517510420438846838498438290997735943618999404683822317870925831201054446466392051045316463745239872636181968979456074752057703605977766866195322781782409336789635856992042474628792317122253434220384418155003524120495418768952110022845311740410492203208598116015817814223379942131554051182106036106644221659185417861954639235731888424778191659425953956560916858302289186221231899610234694590679393780406403684697261757409707058926558578802116430336199814768827409608157910133308343399033404083797997750701141098457951972885690776752951603832963617355915366758976734646226358244259818130246763342055391162330708565920874233794959048118727305292794744515746825846221644391582263323598446988594717958539253481317370632987232221826787586987043459319540616102487386425155616059704079717203259263313764711257647200720036388526290579218978999068032099211227255236921324451295197147372191777871032676792914769262465370920921729463509819999777577387132485606587617881030718670368740612965081793009297696770212566716712548275584665033885820640887718291758883368796248077985339148969864749785435123039534497776718470675191274913509033766652859517235634080201612388840258640857787687411045662880277759108575461153644430424545586627572183697771739292486132663875044948363728319726782086989430586053886657004319725056637041139937616704864395726179474255491368709814025946614017010200553687691849792798359372837543785047932127360199849598875534394035584475489592113729504922095469062165464755538184679586265981696776122764965732822529818088906527740967472875644645415179957534240713824992521960693342991695039068787301478315384478918193481551873585006844028072235977830434481950841000116843608203497706630730782965936460495334823603620418467031512664835189737028539923532708611973732093054047080400762335573958246455458704173234688450408541935183994343778493060134073615234568927621828834614549621821220119809197492037304865117189269210593424422671269796833990261368474452491285555631224131025692380348343332781875631607882681130392616891000010355506106536853340004356882257040835577998777619435499370375356121286120055045653496988423640828018492350713721362263297881827650262949828208714825646524869994846884232436482303227637314958530012895564538509002558671436792681210357161973565440193822882559433502156318604633993876404721857258848476907187568336832418496328352428744287768816719681986327978846065863996752950815747271597277904264078805573222438764964006466497402301361168245840257816398832317020490224951861767695513239294487536658286167286721423354156468967592141396254917666604489779650972172601140000457948079733272683698251038216829072560032071279963859906627790050664208377348617432614883432802842631279839326270316653483164192959629977723027781254900730457631089940147939942675592237202642599820085320662666088118392223693232438663137077348938067717928703740960763978211418202737989395017048024531913085992635029437056871940691572731598027632522723597444615623526412930298363949697447260406030352636141832984199136940383216939299828537395127080303733428687972450503838778611129110844307600613548262571546602595554489108105050406856451505394515459566291239347401612857519939153457232355149136762484314565836373350532207859226352499973189400678742327553157322038308641430857111261249039673425999074754833588692455334563296501117581505736600346281777007077913272294729426697796935268969001299584924402109632412332852948222669411110706092470768144171798370852692031656230765875537534416614586375180091802010098653406859730716961931864540677348772756102004574978483415525152683515842088252286998292907096572431010472751301561177700485734699821607754627277235492236352014297811256308073233459357829624400979684159494101855544474868705403006638038605518263777939859214109494667458115980243080307376296530936265812794071094837778975822895017148687516793496561175694902016128067004068833560130083202295309854144679379245985244998849312538543331435598184089611132564932429499219715320785260571537602118788232591054691011820043383104740940745748478641455528198978020558257240173818225728162628042244411947353642194852683177344932679635805194932528787352382919701525291260587652109825150148583409426040643348354347318209614353272728310179266011148279055296846774519985386674416007528956530571526237802627625426891495819466809039090290227927323136407925318176166464764514401486482982115181813653182491895156668317000498758058062109907419919298067372061420764258973060257819168970726013625882730255817460917813212087212853106547093044035366276251443286117966438767521935024455423333853724807440277864902503395485358370685780354987094608782929448422370807440288199842406759240433968836286333686574880889869978750682383467741548583592732979360545811232665750895949525661969582549815998924930473733731859371651665104771866857213303726031095499393921349192111416640590729609897912520677022758618162580709476765331137913359639006649857951475682937488060453751823770443401525619761429129739023495040642686858212574024247474288122023986841071176577505630763141335927769809974515158872499016555947972800142926510660144984148979765802325451441188117020399484100758139469533238393180523626795218962561139339615195700565795768444347871100278151407558624128453927818515480015149107062514343933096263101804823085094363682729056926468746720356242697979282638953995778578498306464392361446994436630279027245018854064355506083063848214943637905673215254436407514941043274606447792239404770434095290618306309068285448056822063777744863407213420442504499560068564927484066089390229884229917385107252417263621269805008615837815629138615100457554818359511329197693313629841565038878581442440994443181981306572724325889493918320780453628563843715728358558341960402945061258496017082520294679442775963938551404131957558908412387311304118162024205375552973688037664535431915288052666691427608953835170579936667883989051628680789455214023231958224497245437789060967551958898405985811971441001083457670557604680114526638806370134634857004981381931726197360077052006892707805447416714612443007740458329517648403378931618648374792251019820833075035585507133386585158882875377789805467764174443291616632883019871527675177085122093035200482692407399254355397220634354441094025874827273208679496932676567383511067126559800848811503589623462544970965589015095183820446778695381831966369111248192732557592471220017316770926855848592398187438200539278515003589993629712427519560947545067128021776875939150076699455905819684598067690360012868329685890910034251061436301644570711132691505031726867410850151001713604558015719468973093574687314025571070053847517443216958156605054748416873339780044567148437480279005763985698277881507281471056163551200300397267628663236975265519784823054074891315260535818336524964791831725675150683753469747517217942136534564951164819321847985027396334048374323270554652947957921549491754944414209432376488343812154978361608843653208836361278768600982757878939301717687429485181080506836626198507465659287818507991558073168266105529308777447676356034813749684639046258060750663076380231022690113979628236713085736761990558046201991923010679653855918754417535474928398945130616215424565755890931159922384832292332811024062697226987343429180934895816586506675569577986647900501952622509082762130647057266091221112649127841712922912169705059610650031679278193279833310318784365928875803086889421655790568208336558920961629044049228183752715593011124713588855906478682880360167495248884827698763592059630638533994473335821021757659781795236429319730752369087983628642715681298404668915624418147152702121015036170961810110555428024412237897255302557649955686232415448627745819897789074711103865803227702196604978846274986551295750644234824047170259439795277731283005488421754855630696983062414526863321438530045408910519928214294049988474193623787565627165943806663781907847322967606435306657089973896683604453636158536574562380577223035047339049330748094726926304610360285100128693887493734856210543288000978172546265641806834472786345228694659998726245348936664407162814951795854103635234044607030693527649818166054116381777676193341858633609863057025530396689940494278852659965048560748161842031309933013075607808677482734210973394014943180249257934701134250604441514927466415070628402639705355059783909962154268637055991902630560264627369853167198292836778258954123156903163979724639693150752554693673285487502701467040776393892025549188156859824466848864862239997013925224698716286007390788946933018846674576214265409391727547144875011558281599613235115580676519659862820843133368798954285321753792795483491096241904819236350106683198714093778158293554877700168762002547140040519990038724422400944200750958173805622030954434189690206365831087154165155554321553563312944319005512580405726665729125288750747151373100515858609905072413493145735850092857925017121598029937854839023672301843323848071671807303440815447736304342652146908227981877180983141696501948857942821449493496263443260612305490886669549224457602393329043350117066117073120095054444643036434697834443159938331536492133175406659573310038032039674075635168395404875297116656875725351378722437932566453272676064315544981096791755297661124721858390688576555976515772767386427705292640885134209846189879071355451096931925881112440879458128356762730902281222231713415673796428660993378206519818803133218607690924724489207329577266717820084236789272312181299799449571462622404668667179750267952340376394991611233643700390172516471237645549060623234995024303390950140738341105528711584890875412335608795521433586563339031245162966548931681335882745350511085095113530914845536899443198439122607364453291153467753468685046584376072389964826058969916845455125641645244481412355236936770934661729082214043398259382776357129399334103759714990485285379702151658921494903648949692289716686566720434076462312293584881534112424681958747676231947732974971319131162567715270145941282273697624510907486415527049467298176215734543761568429714825490307955893381692311680513970110800266922717826519370534471467594082414465107330566411193353773325181099425531046538297107990731383113848619871173579648073916358435104646782253291867233331894228819322996319647648711762573531784824351478487581917816748582107051058608108153666918010978586906033469348080878627959903550787950100204037295342278237126754363887709053676993171034979978581648604170813848185805957992467270411998934121250683629280202030315734571529523635835477416856231620540685245597268742186554675259351756079745142054592668455667366803474604027216149591556085262549127688856658895504664369365563482091187338343532254793240859367565655764376644888428691313178041765580720132061212360531967243856711509623730128741032507550442122444236819464789430616261434522040391758754782899944426948905526365446213625704210679771364303978646046988538849905084463412014425716478582278590817702135368145125684685196993484950705316505352012371188567860887101768500949379313446946299249303862175462438944631651146370820938699901482294092162355984578883727205006291986477127422490210138918753014163266274324075293340494748947888153998795274362011336752437291831403453734092472630384741142007629465059781034056777063373409025525320246724448921120181086425883552729404165883911052094111146049989602563690239172276518242564272036769786999144505937032961516824537310531645192115180229588563266368436144890420100591946167587876504401053209166059100770607561906867711393077912671431033767912496088494541057045563702487736207803297725438831890608833020306082887223071673307001328090947935745401391606116610868015374465160018988362456995889954607848367680428200890392608323711824795480871235797865216746859154113788037674107465107527530453538594910668031485191649356531488899000524072621480887502271445025641701230994118015152577623532600447882335752598288320124143215010099197617466840190602655808026519406339737458910697205841562245993079060458215162557713724871045083434254228247986825814845325786265108146572289013955085214265512882684482353203425844594293378208570950122475052906067203557072525889072180297765423157651228219699015979931191159125165131010693369251206502508232187657957540847459470047753586467590836635909607285859317180349824794624153513699838372000665527711100630589521579615445467746445175101362815838251543563064904214118228194784435547343589301034202240060812962318411002222674371577776955994707777129619985081841165880822187956572725887623718359853721487394092907164985212006897531964088201418752502806476666364729280751567943564835027724504593426336497110102945563721930923924742870522775594390959073457584289331961991827689065842020901989378156760465122313352871945292089965641885028422998450127299459036599029060287291306028323083291410842702386876885348205476345863161715751164504470595543788265637557436215245478902407386705060473806617423727041949896496256401622669745857307617762895634160594769510081526906714319623190421120950235825111347937565764657157046615295106792230563268517083665231829696275203884616978532918488645024403459450620327113654882644788034349559623908795007504768225423676732493565764653875466317450063074385009676005193364782947777942607484486531473626130432234888510176700745453676070174762679908324177361486231962776339419204937681918677149412426789470220448096063807789745063589415403589817661685616565051558233936700420051401496972578067462070455732539420081312609547182851334931487575828416898154180677438512106555226709117637008123763033360017373955872480573836657922202789611632467729809493292160860750317040496279229532683693215350484516397642975774845352097724570007966977166913840988178409404561602521571791106805758534770128132456187860312624165491654524648197785262353338080633874684667257112179252206482588979711134542802640973870449388865982920553256918086333548085605118340571699144236846966959677831785607288548354878992736507673238713405785929907679452654322606737597816671110750336220369997239229502589532843369130382599459995089266311026111924643209736968100827369574804753442328268629269138734289316547323784205919362116245061804098762843210480145064829098542101823349913589838699273708500253615180116800601309641793777463378161125863174975049330868641859547683687407744654660704302735070887281744554000246790348512007770839180565978788416901675618764727977317508828637291771381209861890199732864324061470384026935473692821804934676407011532627701030509463426294577244669202675251203409903558274057656142113347946670614900189576038200695624849604408439298684260870727300408642718582126351449653535646761550060926966282187600037823689788278011582515052510802899815763498298113669288255279209099570785020149954524381717927390583560844954358663079769896436131916376110010459203226429739398216703147503944125364951598931074124582036497965036127902594355959401575930007629394667881109809712394084002887177258079052211439065457437780335950763477125315126302004187289618347011318869148045196951831455965047993885130269514066366772176982299296040996546460634799925205096258604101931761581121574910590551505586770204214464201233500393498178335231339920269959640218014372417975239959981165136860061992666353230022462447975373601202903922556979021433238207664981782722134648859422818769201714600063326841088686710865420888572878837498386770975859293007965924492132683546504609329793229082695990192376623471464250792594959322737507775145952553020761638678784202042283991834759192751755137663114054126351856476795473181405466714137362424595891637101408461072790533595942920351070573965146394133628223230056986454182595252577344268369160895185529976558861109272780829487761460402956339624944483810341665395472978465000393352564317865231817808166072122973788933666474985487772223684161043699852767331606695422530916145151150920989805079309860631943055283707614198680549947846063891134276954305319950044702453207239290749338704030048679008356309786043684455700918153306220682779521706355316835428040040406059020235229566601255849946001516145922007300837946816824665190851446835499578613101332901004875761560439167153741795674364762139594265892792980395256265061177430728382973563192449777830432247801294759133397367541744192566249420822767142938998545002127463907939862361875727388035902458374201096344571172204962727451068040227635042206992686621397881743939674521493854711305711803659292349036022832159229896441747417067015672703696624045350643908576283933942491463626479712454225951028833983669492423103460204233200818559934755116553192635250231827579806063208949715563937240053684329570852208165560401203461472001564929954525068768509615176042317431691088744956071995678653410327889568166560310400554633040635855474368418744316490497910270378575963127620131568274554337838678092622448498633886459010358970358174026630001283569343431572326186002524016597163959529382841453112937337381497499943960018116377555709213543892226434173145473224767837131561007080414909683178149794396049599228314647776508405276966843657746753922330161847444370240841074719347298449700471490543794819403016117802750472778011311374646668426705960962799361414643603780225607696574582326951029530872010476994633868948891408857704380234634302239349994912211663010794366020736459525980545285348019306565271303648021131725441759750185756913020828551202308794343895312759202252030433108338428474497874624624853122374214547103272480006574767829097510501170617524685775513817359348646008306458790323492980900447959138102020807571403438948106239743130603317044546010784149206276086681711257985314538904725605564459841579298541317914135445867903279547146509232125703817977388596131205961591755055584175687984976593271684916327500255474943180536899263508449809715796615802042320728373363541070786420697565092601272692088427089112936685392544715621676069281499403431648473415376433498800952958485134854768054348591770183030357044011584314948604827540880348539563712593157465827846659890750887268783080144923994519467424211373595605618577364434634627525507624255310506059436475627247048236542918728429924260740269810916919756074183570143802873250866558031810082190108933777102831079821230202759055217348181014241443192082452617922841647531529751232908650709738462341912099823980019146868061934770350669533983304821025534933740457376223737500661060328013627698130433136260246457684482466356286386975686079880131812555597275598824455941084711720129539874422848971542046740937883728434292542892016963648259373314919130885313652382834458338755530407599023744969949593135257860406068868602054249810484683354008226773132987165601323279340126083201149319537576977328476835514537054241089155278735715964231257630514675994889699243898530611349796488103312866133270582798193888057166387215523365304383803911974853343875464651508673903290467028838156720060687581726546048874509475563014952809440705158668070702509700921836781525236492948110645480555470109640202361383586581359084350608715858862911023832740963935306624128470920852135354139671950483624000518032143391524790569782217676089274783436457384728554817771027864831762746235237307072732072467725652840433056927826857789231566185838610500574978971188294767361593301108537335265487006955791904287639132820161486397350132550501541458363004232223200283201117666501867561516952611035263829475398224198517208311306944736074602580659315296123305628780351957277684479253221729462791059788421700018302415605957071198082218509865450239383697559415493159634321877989427830641054478346753403865537564682392823228629831933795743448435121022708614126002328396433222288116804552893121906931576522396620467734132433649824330623331110291448202575941194029356397212511911831090283320788927731765483877896227656753497894733591823544670230000142696121677668887122072366974776289216132052861916637227331950892207350013589018356604320695926730433069072152379398372015175516824441510993394797598082482470696967221599011236850609009952838609124886640718952994325314034779351779618629124926964619481315235511949031159828010224391911237129277773328689625230117216978679025756840234625510093377532551138353523184368901851866307993810494553729372917962668970326998597912993037921658913021354631573955259176928742525279573256567170089210742247016064090964895412698506676887582281227139803856033065218006246626009537630576501397167737890661962034727392300809432813371451733934457098981020490832205912003346560938461660128494377101323119264501185646035286527702576554358053141064599272576391974333778903578397862213606349512730756746942316251030629855364952468999771611836686015653935654918982581666012016209165833999798147487617355166809284258423464695946391095363891970314524762622577018182010623645234072475574427949208971736557153509093897316044834326047822042643867879333090978655215279560806752060402375954877991816857027381601129864134367913631026093921871509956849733374300170325448452255915644810626599245192161399233327779953390239299545800072583223052557030970989530529783532236817569869822351072092770082572418541958615648832818112143533343256771296727150742695490446704990227619387920347487417748728036929227896111806153834018220052599796579608422918365040672850266520040689689643231446228802453771634783941390673502356108234895303764222215652140513650867300566867742959248841128929056717315896496430221805061666612147968050956461999352988630599464953403193974967794079101605403981119168853313314794455159492187304768835385469373015546472689382267643650897537375747570418732625118794426746030103349865667728727250880124827441254439631634763322618845339062867084235508202124230318750512039830303300165297679926302547243122576539026835136225572546029038649824655439477717666563417088949644537690781001751112539369844168014455215014215578511426572688012125651439981261719582963537760111066525414510755130947509129212987431413162043857760148195900232037980187930979047640412404859632607610247037807576332031163110518377877407814263204062489266357265923892654214043034348849365132802759761346445804916362389450205144322942841085323749529608983798774068708753203705834769421307960598793691873550551770818953224997658092829468089885547342752461623411734049699119916838975080705752638911450896689488421843601523082831075395452517015349033813326324890831380366296757989303681203810521278620423835487068505607365812085946819995631762257908655031109047894295615396008638679796090422557355263464725368254035207465035148340501102305228227937762580761448344198860437672474014595197683289886155849131564805669290583340749531279183036066940544038193649635141707449509402770676622510327097192464509311747634342498068850733748971141323079662303038489490183450741475780378027164352586533122158617897237393591728672366487048447035161108192715938865121316233994254993996585263549970774112284073564994967949045107079313814572979604202194110676161402496855754689565336060090553038469804189360695189190893241553341213000047933316782344784416953888758136974713088984674114979973991082161033326831792008862177779153834981173501207343657841022834861163687616588666153515005099857984401281324936363276482580531809308442734525808943161921133949464130626598150619940842234539146691817051912851921401181370140377485504208284299029108125740041095232026855487578120695498142596572342888113305638515429021320638307267773928856052687378978288851361077183856158289487208357748847539015508050399373089553687404770288507679828596567803682564245219055346694464094617442505555759445116862966854393026094542829373335324635179771407984566836290232948507884978404842337232947061464912633887870330107142417718908749536497040517860308675915209824691902568763209089653609063720556116083454456028379442639346555223356783187692729275595433301823680367066131949897738545701682422169780321935911599388086374476417672550482541849044984301631495137485292893220117553046729236724504274517864512686251211173802702964794634482623642128019273716710345790810467608720218618268537970148327933198535531540131484662386850087167740963594276096541858550834358683517109911847597657385246133236714636319938646737689887104825221445790448328832986594405525709523853945939864627208640502640720945564585890028440684936341556852578783221382430059450243206926502590023431742105438272712804027700751934658448845401284340922681038736784799926448128370988145741279405203278508224653762328106264737621706497525768696391343240380423486913873031357957576502856469209425028246563273575945192589296891471583992837042878583893917638657475848235254955673335842498629810991709893549877662953532165279115490039355946334290196789920133868004780695613868293023117681811335704881628508852075214396045509316545728304247161395276039861132370575746767142668315442548387974376038220134563967888654898335240552774419220896579215636407415675605028201242600918442078919716877358437410783929607264315062717044505220183740319157711603241092668231126191880411232753272406525226786764745110599601687370052460791014843377475786761775680813764255858765291973229425985141300228524633990080701372285455061292198082646049690724166043752889336507151275513566186384027670768050002530228064363376628497751589914759522118112337217542977488181710381529618605086254602485657422693100111098969593594822544084490442798266988656489019794149323464248703285918077864105879076962184884607270092127410422143201341945061838803055355180432015451801420244347156982066754291196312109715864576063509297370173611455969450383754782833622418860130052336219853101845587520785580400098065247813095461020511080561607029784346737462028190939557324367403537705038902119285691324606590662887618536432421147121153928220702336666382866873948603635282932131492964680092125413256155792705500100466048623770883228814097662427340072476305240555697173216267676514884461796618400475605935203418252332992286155553258769148115068139542122011948645322927749691877653604742799747460181976170166819695904766711461973606715069790284883915848990028363727086437176110532721746832556001165382034577108305452842380163985212383780959389891661955809072606674685684900914668687821467010507698018159924550292375125058078255057508263631411439073875152002682665943066939018374028612450201507220860073324836217735811528120937610903194440120235919975052244298528086672008032921115591562417987305498891971373081888895829590449491804392493355987071083935445968663184152865981059671378266162636571288260977539916666117948709537410078358084143710498507482755020352230622276521452892488795474631764215804125735893552087930666401945525972534300559513889470101337599809601722247276523015750035357281824093683417238895928037295539062688505714847282291721611032726443170965932599140770831650350664680342032749548392959388621084670805344349048102962067889938229255641205708387624730591193509556018419005702399476680060353666147434427658100184307014650026358406413736856425352372547395396242886874712965879700880654559437751317945859239386798518796811774195258981961869920698930223521867968461813538696480880681272740311820608518079550642238794158309726550705979550361200421068842083349471037725139480946192758762694244127686688570519631150242458149894208872555890100351972874333472657972139656228715872602199894379657179795440934317776378043525701177612223244668208533463471719150235377040668726455461228705567842057432598326606988271376036339616396863168886136226123881501924485943422163836496157457471763232585169063856477641511640579307947101091223854180582280626836447289379180994187297527787376932319461107265119279375051536326711307654830860473886906736148117980650148675839947649629969212170014289370893721337649030559152105085269676468010442895241200222699816555445587654914115839522737007626009896712477441383667719666618298278973769186519576565552577001087248856455476396590599731627944405275755512604820032642647613611840781684955861443343557747455491750687962234722066393780867532820618918019950810875243143649985375692663811898108437500186300523470619899858236908551654790608967717437641341680986429063319962879578210069530730053399268576636087405915758527283107316563803485057039231311048061123862751460743820182589801480367718398059064671532905539807843380064009132133353330123200658310941734900987426681829537965168800898595362094190840828625598303658236154459629504174219377710243929342207731971079489075572139916246450930841184477453560589575119023481055989934622773612269963653548936600058169927785525073859143240739700259946133675005869002859808302661331828861937109376399839385059925035768499550050393359344246189143560095351936591485762831548087397057194375373517071986989887161252360467314654794343664438353317262148272935403554705663796255074628218471215779825306138192669160593405390023707970562771464778480091886704586779068971285255413345979768257339514436009543919648548177515258799918061816979219540455527520630841955609051734593628553999001300175325898141408461535990362250121327364979208815028422478978773584707768830544357704012309972989631004134209236268116944820812040284873749545777408497904941403665904253335854905228379191163812571875376137792317300459184617528560337271161673372596677949306927079542807036510383623399551151163567247154619433538054451097850816784401302040474837040399064120727067516442933106275725725148399343987843991433017089946935059022806310533082961509287240368233306741986468679642473074104688521455303141053856234874621411920558812471634179375380550128314955276329951035589775377390309811968095145808019437916804915733371515818837922693096367912329763640832875856030146457985406329018324924076696115343538993080923487314174316087409503549719579348479919951838311233641559814182705205547905648727270051902384222676722614262645313177387459641798617531325922709663900399855451733031425455086569519709953189755623271076481630141554227961740747364939882392372582108713018255611919227449663658655084738757802031424167233354603907727926888884508620475727055505671031011267093490723230994667303871246333882039432078406089873444387614160035351282035723423419276743320153447131177779647455862924093804908592499170031491027720458555987185056464761892069747743003410223873356853386845191009493791709092149949053619126435964627273737387508199882171670754084530564648618782214979519401168494810443115569527368914104318594320997555614477557585341889324139840770542243660739338387542246841768174162758898277795467323177186198195772499616276657863581412845049414912397883496699732229304974771619535007589413958036050252565977059943210630845146617775085886793127857814204577919142929537767792146295494281537949133607563712535536609601609574214137503784594684749481168601142513492166390900871975225046169123526427899275631969408158318255988304791921168083504258150337763187401659514435157969184979997369867040671502418404580174362114707098886367196347119492022343596556748072651773684619093263882599427885650980261926651184794961753512490457923526739326902428996602741100217505643907429552655062569340097722674523116615638269799026435130569397877746672595756223910715753111338502814705594707236011930978951610296855070376085285310100190917346975000081079383162941939879664132671008846393684992769401549807509409576939104816538561682534743540174375010584258865649158234452991888066608263310940769171150138435220691466629367615645724591111600990512713719591145638956945102105558470538089104442934549085261218172512199984841205392804273035193498619887435970165524182437647597193250232196162719017728595860743503713946959155302909850148302918688348614582718473187360322014279029878531311451283401209711700677032199039905878176565930697666157828776161245878525916133559231003975985122515640741623011007255009875712784026627343007969612173448965274111067265623197455066763849708108729291907616155539181471852732810036399604059703171133878071831398266880562087648369046498118721657279972549260178372806017299174256148827711739278452370033783368633195676363668225401021245086066547022967791619222149864805134135587943643255302888339220707080683028325269463089336086424964887845747282764078178483389538672350989809287831148553178639227977741196907923706320233158712997832651927484526573079510498784019004245526322327547246773662605275739334568699021745179240350098387806818163047379427139492206660822094972946467792322990640482992245539997208708466372690593362642352418835647053779397188557415119712916343427120837462950714124317052873866751662812358276447709873955977597886818868702264163665125088754636413467152728859198541272354144906166892117063868523901823907901845893528377959998483325177305615311385500630354582913708277224119902208815329714295863862400833910492590537429926207113264988024598579093667148056630136018550356904908236048621504403122031859424778621212599709548152758035656133893766206987008144535114180443756733232208039756538973391416515056795532340252562923942410158967355022238127303300802579290032811560612815960945617470953211453069315465253957320407678664336842242824369232623186862468209218602401916037340505551141061279126459540655583006302234880157183061625356184987583350376705414715356381354967408961491733365744543512498393812016265090714983062274080861136970343922125093115117720403015455798784747752589143310798289649495059521204303455815164999888377916516337721227820866415784455350134700235071484242311262560789782304187238978809288742266942244291375949264174342634329481680754981668648189444189152639607453252504181371036503432300666629448841226368370724731173865410044944365313891573992706597261323916357568528567744986395570361939458615338576673148094070079043470043431427704910748964441465810408177855693156644763848250763454297837364996586949255939377909453556262412239216598736846850128852760531504314932433095207178072899921036041275064356415133473226504175161375728308295173972029264044631499338597566185587950937291241857579707440786011368842278083099698926267720421512389452812874078724043766805979396494531891730610992975928215033576976180908110523200806424792944748669881680748318570168944844526847847454217803593181818745548079761223097421179082295140238769252019505266286871036308447374786682592362951328575982349447192387633675960414162305208585089819389589300865561723832166330748823946216814781972746329395808859104551651263145342089751813063412237041249589996889078368326808136506745137568921292354024497685357575037927879908008096599527956107512618919921059291985966545894611263510255119646921890901789210088644870877045907839372186952849235610756196775731650164707336802294624242105340972429258968419022246593170282983812124546612448567236609163652356327461932792842872959315592962299117811465799185609094690035753216125251710012699132043465644966923454958073905682647469473312608843849477467147898967064306395795608480941628607779066623165854251744874291731510843122938551983969583812243390292491457111280851840440217977506956207747003426424040219893905592659439872270969874195650246810906402985388328016365744920431836012881583927251406030121686031034948074724933947635884459968823288111720021598405911525156149252068079503937306905225795421404592096154039439400840724556788531467557645204928479021125132447926117336424832549385881417949328523668705038476528214071040253293134037688824174950637984513019315781882515740439670815427823620260131565665980976041480010332992482536882107083044888720057135424915276293985952032915520989004265107440184080282432917458598209287271111749324568600636385467155914450382688571327433902711028210969555619322673350362997825147441468456941396462243143051856969815700470429010136563763276925750547399965974770604996171151717347916485289180635602995422815112857549341359704331420066482398335954314575269482539802665693458490783831266500935179395303232640665812405651039678430641594863863948784180826603917957229316573590466798891556099767294151203129231476437605513869586562483691644805100840897418597909178040684145319937733441731819435758787391346309712288762514928032769944461189606101337643348189523098690386452457279999833788862363307067282868253382888780449828090017852101158903405610195892339941375625423729042177800766262207890432122873382044851983120314720368837499855682229974544576104971713847631736924588752077605297451954143957350581228868627737220425566630343285859775874852935588243483504154854126600669028647430528012536136277387034901785413234545617060628466291027018282245834600941846670542652701386404275440492763060560320908292270651261072841485090959729175263317093651828143101558477259943885020260265817381438113953444865170587925261127639432880161227443004169825078689935384615554814042978798028449812799299894636178128794927654613781400292586699524736333793674953536966706172604831551025974519571019910154342430336779470491908667306073519187245353401789143772655815054348439285401250870374871096189318460040406090178701018404558843801282913554989440636410732399476030497928699486716095047112051811528058020137538117763689077147274040344296491370227709981056379142447880416879377231883421306296263787366221068345811069516306908474463171053392899051050757219712748724955173593650269271821012523276050847203997559239139725988014796354588323469421478686464259049047308671848169101625300001482386391815467627970728912434737279974815159067293951376852994489549521472842779200248612486895317209136236556811881527128972717723811085824225277224837688069673303422613695082533383525664754513807609452032192857876502068597949650548318264358962544039875318371260332186161119836294437291309136735862587663060566138095426664116508426063227319610500829052387873642913636470739278038773012753833139604945838263734733994894431465039314703809795308720707451682410963899762747677969952700804947471493397508138658382301081974479263963584576217623008399694819748197654291956131967345858958226566055108394182125381731759445978597604050073506570516286097049899208324957465348923904039257254818816863013820504515824952408731657217090486553413110239337967810680125025035615333384122734286916846702594293087224553852285898162922027260516221461335755011052084914047189448097176875891249834749551247857473682008465077153960453774241575688165218066541252673952178194859521157623936890459878412805465537276458945055547701484391101941662326716204783803305336835974041964676687810068427901666703384129752849116764831089456009568873602174848737135018260244912941215433137239547435621996092226496159054547029415945980565333284200992873918616712530804942029210069316528470886586489359726960891376727180397619471050408613513455294994254934133478267317438647710496150177657845123688615104293439646696619698080592618200795581043391852036613056793333788792614315404471423788508404062906630441066983160795517322183737248673538234474056391955168496008724930055498524642703719801320018526816989828555275285087095601482683124840323590008648559623262269194496217176003743914496617228717952247619204792659199073504721677708984095821476473709735883161384524836816343821887563842594085476823889857285435977978171990204409370593228845014921492501685169193484421240530468706891979006190822430010433907194193288704686808410312055355997598045316089248053278229596595135653479415383314081130818708409999844138317955239258846694271940325687336578255982538299373712044313494166886835716145582550486003778972856747535717564225868377795416301338315253631259060501611699770136497537017497866806982475279742178276301189042279744782747518089487713771391527167579978396902652202628817581505272654329196470602400905754946521954744601422080870010064643454144900840903232328774083174305416477852662625129464952879266031598511697689732957376390105741123497492901127757349234517288161675486539979945195217936950594169000572849023852051505899289140624180842091954428441356325519338464240574960820634848182048802439190099547488565232876346983995327735466745761406142173010845367176560528389851416552234842083721927112423723990782654464559090874044532382229754351900793709836280932017593171108270896523935506944671155021683252561428728125800177681471678639301668241950616687166985058723376844691059857652637174868757758042203942623522527357194271532252150445455891400505875645389801477616916108223258821937187304822322973307113664721013508080250349855977735050765944568129358785620423153912018674112790832788879313716909986699778305220063115520507806789464734326428192735524990467462895762336214211167728463975316156805941232807871237175803742005325558833135203404558414405666561108959929318518472913447887362757572636151836757799694975045083036016913906355968106569124207767630913166316209891124163876725090925460897641658597139112301526885424929341883536040169309796472414614294930600184859414596030510436419244177184964657069122418106238017127573193156354618960244331963600284016763741061551103041776640273666872803766428116496512008730950194063579478392581983838319153219317249014353066928040014457455918403049728591237626236020163601904718458837726636007165773581918960895794566302528368659488598834588822272866368421850538908829045625968787357245378647237553751052355883535264430883021272056681147645736085070724291328376353001164201899542097191342286042281225983247371209500406392399462361723604530255780994289414151819103303803398994833900714393327651218998899515741105350405321713495106862376606507896607759865210628801649049360078172195948847840090112256170187969996356071244566202677699924041296809967706086268149167139406735314987762131577026284786281915339224617690104358596117029554663436180824246923198404925090420095937846103984124365389568162043558848150894717295966248440692031991232087489393916819152371629879482543312175572863097034291673122113650146706991793841625152011388350270827845279895814016319132914229329856465071878174754598743075097840984533103962422038981890749852953979899828276860982699661436898181453805790585671937227541921058723476264541012496117864320829708424810398212026633505264611998051863314779308379565616281674974455265063790547951868344401443930831162952128313916013856141425837175327755678091501437615994486260922562993362142192555757100739123388568524149705921077629365156661878109271606706776718352768438502423995657607825619237961613858560896212551232366492562141328681625951439727492357006939535614356038433619100606525420904957892426819448914518487168798825937576721919577710909870659399985097535176548860338493880146791550826381371256074311192621965821650205991397786250201694600518444297922380395291642519284284721513283326576824476146213405072877603075930721957366960805497848530751430433002080329340194842993053504471563528753590654463272125907857161792126279827069304436233020921316408904235910245294396256544841586351505184249330153529115597691603642006174850583939250856439065662261753052608589749259342966486644620291572264033244070497260215734727531200859978427837861184623296391768015326893815303296222596194621800926317849400427845544698587414794119086191869779621041927289066912586589630431717337093668932857715488957812612396408216333228347657125845890977115516087179703027346248000458044035992137029038964197384801398812440560185633171123800206684999375511365080672081267142647782099612183317810521259782410450451017603328443161469823963692515199028777399720104187025739402481185270680647227032508982154130430017874298707741284722573629466227638975009560616645188624444996113127340887570115443397780691974772030823552961911267002114052846494406947132857533529572005161785410482440260439976477367558322012274291228634252062450888430194579610079678541749739215504096871406560982153064560315581348903446644405112352277753108950170293841758626483090953731561787126666941037058465469124200468751878920385930805130703680416007133082284132627240283897795925228494526735064046479625526619442132305129600898811011445898595811843852914874097731542731772496249019936812047832227748671027422291527686166455645956035800422861920414554600007727987615981153080631572017427632193443672073406028900107708939661532836826938197043604900316723074592407739347393091034360624001640226263323539734102532839607022819309341312398762498108775676777744031231837491613089523679448117753390336150555963389048460307396081940280966911682741453993934961311218955067791913901503815650375149350370968951689497610840192132240875475391837368088644518043954105129264578691302394320823521437435006405426870202862994132095136664487947967797277996352567851984666005857054319183128199864318673190932485780414096785830340593578080933711920176195508052229579140291913616764544621704678643433126268696253682818761804445133196068533733180075339855458467563969237664022195926413328302982490822702361131807725804373587443943105969650167726295600078867192468429138892375565042342313267453058070434663690513644427479975614963656767386379445992678217796358519738823250983530707563584582413426006623812552313953380323841936135272177055229515672054099464046076611138270870160808591901140053449047534909003932832245984408710120396802674230103041363033442794440492883360226439249678774709826708581809017472592129903897780226442518726458477138105649709451589353062902590646649923085061027017562298132057438280203098478203090866871925882572386235342209215725212253882471379461192680166504977141450009375714074409148037903144482772123011193304644108208384723057022798929573710242231108930736382828607958258690545934099632206101924375522449050707877153307789786146422478947302809835515280545180248749353691414768349823944646881394856735098556082518534003228247439062663599530495878613799698126920528088821325921218643835708871490728474359280016655767713459027099688787423147078910313234497231065182383937978677921143765983050012426721440342094533217431739604998114577879991526363711538113763715500256320615730227557357799434985629378410014411224156531165847723878500040020134414572942353892113530889968285955177177511012618545912295723151328343926744185953775326229457426635433856027591520853492858075113663376694124811800037748350264287026813551948489714669974119448752347023853149626935399481287036773656901143109037902899536893995918648324010583318749445915584444306722257438258373960445396612932077426463752064360120989123112566252663737991574148874736717630448308891901420172736907712420949713771326847425946227770294544898620902402772387704488268250138766457315022370469549009104548159459294631983330170171560611078897875147834885305469634399987915750472479389502501354476351357093718208337369715772273525756104773976513090142187999003680351159725995108759544931463820164410661137816615950598058757244827899346580927835150048009990075092444816327606536045411882738525147376523869964464689798066228362134610566456943908414545645912830384632026385817301538883479619948348919355441542876531807498834683152891420722160798146013721010180189245516143550809804458126810190731250815746915631251290569119812260849243808167583012316682310024077738502406203291384122093558896625335257762033665849704401776734656573466472400225566134627524099912781351740938878715904383554047058164298707023104241954791397012606001789983164072061550640317846536337704045274352879723949153672141294453495537601730117752317272854362493148946799423744820733420352482164568357840686138334389160846336198188301042065976678421075181180113455839708650450092941901301923189310766156855571644625964085389954465601531273983270527230463541512200089422475847744670829444349368975946454496016161375426616906127814983529748788859652599293551622778773114523741577166205787980845863053960955475418784390463611683422995756993179092470011353066374803896015047812520400758836068357895274366966762847049558608127830654109407722227442087723060480323107132727591419439524553848692989275788113910472830064135879410519006233182354183760914181615488191462098519473657470674706336493939373620225212647860867112598241912617274583992190033435122613839365558619801637160002334480158160270332380041692021899554250080292101792431644950939089293025769669980976825548493545659059799740502192826187243917553827941906473274222289535685618550470592497167557378168362027006406573245343789042550549359609296630672820299824445743478311367442659547529983381055710248918293137916267209686354379480286613304828777062103671639826179370156822172041875359217590291246979437550301435596534391421904882377826114515311575644616307809041934315667412974241911890360198023217882947386794263920036426708485693808424817611595883209232314779697470974698652741245551584492981918587578488870271076629334247831855540300404300318186544149668723904782931593318441488683034350876860017141256336305502615493432324005811787968878333668174674174666988266357236204423736775993219757516902946522208147371693584571545541267209035949188546842419114494258087450770557486838998455673192559711543470963398965907555468313495354094231222516733508380493846957480969893957335608414122962317190296822848171228269890510450350266587299049680371014777233376803708718036727635542523391744317689191950106988307993596559543840718951927588976635023533370556481357433012324713933543234009181760139313055976993528471399618421108167395281646505029160852970500498935469379318511390396969717721876892522505639181329729569412471847577401079564354390391126470711150700379545838083333004800169859017253612547879494219910704575209187992503409366586533240872548111367637988080435562114687028166535172929290949963582763307789909950287434021346707087972580741927963765328998458870378827601079737047274684743741398962239556918033748434821696301594396458693443898955199310505554017837192240056297875815721472883686581042504381760728173092035898500474178635605756812179317655793972122012646680788720599160021749203640433812145302494806139003627322011862173977028174742123220783857214509079387574013539343201026562402604544249413766034051268421219354545398180313774458454832517412168496066954015653124775973135792992377659049601703387711873250381331854288126965130086175892851003759467056707533578280063601925054581339111659755991677577597269474424338525885951555889141129470494582843807232016369314821426365178901045949318519053365008450157370157328156777480443547635178783713055576679417148636402157297965992179773671941618226648082332360713413784887159327723481448378650536263051890265806910036657177116531229280382188785935079945584685858834050240052767649978113646886228770297293617086693086194484823416659679214067603957048519763551841031255254134064745688162930091575020861095362303913253171407734703044234825302556512341198844380199788502173589860740162256996282320307079111573590327163713952566473087927500712687427450500408327078499621827413966044163710472549474581126117128087907659207579277911058551962197059760928704827719844879711189474452325077830173442616444013968652654958628665160434101130599418202420603227666837478729770667760752797280514569273376326505774366816067019621253398775094014136141933730763431669077097881770884893546396257899535187714629086015618954870483290671824682217475365680953019051184437932157040029488025810823882991249797098180576424852884956064624766728559748505435433968682181310239299464101881210930106011207845746437594793243977935112487735310077768704629773866383005229042134392564995556163784146477703866157550488243438017041134486528469957828213945904108659115911319616508173056136011576928671921213052599127519697145665693930619075149440799628219770607994781562981629770211312516643751206385296061126486811009170438611911856276278826319454986596692254506535044132536116196029195004039027151076238238630494134809743112249177746189383969555046097944027093300417881926151210414157416678685842330344322671324041323364821797610296639714688247833931306442162469148572798318296707543117536525430832093784254467691123882081594286717370977544291874013632815812217562960671492120460945963868918926094542917332177924999141726161783363818333791689282399640865668575709431521022076798110130753273131045553740068150308006313388269268132099929915935594978717032764988216612576482940343274162613154179501441097281469194798821371936521777801464849519334902580419216590116411287897207422088808231317927657515814192668080233940964916928379224754248312986280458766984860843956791652397480696694495307206249390368810871066937645177359323911920087499632639069187539761190575354511393496793277738635399861656777993379236529225773691265862740389802435372528611985062972402563031518865948260359067363742503369509862834743493388172110886092650954732088999816229501573473093724645849883460597329952632292439111771166236986453006501815190208626284208947137286143706490013167086783430777910582973584551499703109373836876791808593248060587555933939995040079701944520551985099559615077294704145469553732583604682941966550814973782280127624496087370244397295458344151079536716187903760632871932860055490726089330606029474783890724208801541325933602854293921015567659365836331606608637225141443475255288414889227496383090252430861294051150054479211461446148739064608145297686214983643065176649043170840073406084290814419108852619695053639115297245472592682073570098413635189734625863260658048364341923831785286518405005392429713401756308708424965369675513884921181330550020760507066332439367540874099478244949427087427763944831550638204476276566628626098107187813068015527829598180260672353442099298229074331491550856699028588473514518589973841026846241220073470694382219655389685686883438664444340005782877456504497402377166125449608567233001984588138783720982156286335224426176479427694283669440175163456067661043854442019605393745831348163927160946702754177689126816242175917364939622504175744965516324857547709944449390221612492082830458560761618581346551403468155089035558241959322695320630403142699169589929756463159409774348778056951191490566857379315954468732851941672176336923023678792119603923962357729754509170359955054916022479152134256511700110972035070733617997939897985075741939514183811078764150223892378168103616079557982695102452064819908247474973729007945386730118223678187339191819146219257497059965512162735867131899711445965632565461164789361411580603256221617333449418990893664166087951684444138994999307076753972637880771905782354088074171158689706411448615710550519970185863530180152183973753754769594312573658879569397226486063377956334388828446883298844344341633984640558912524584851881119180720755863172069528804118495625783558262927895797103295331379569426029252446812040291159922597384008805802360159068854671551954356756013648130904774325136977552674193301742847211344811760555721426713650043703602672561196605581287334318550496429260503452464083581247020108088270595230390613432639248984533374969111993796709379231619474026511484178166656705982803523116981916836740459151090343289073541782619089780343681699044403643608123720367258461959110448147160804764373150022704559586254873710451333981075116412758380705668049706881936115037241696225397003219784705760505518531410229876722256123417763816492978193915776191148222531903772608382218049420357913083611813620648671256642181797342785190355835375102603434307975741350593464319163478781452154366887792210222140144664971575460164057620380932310640050877850100208363534660332568219627337121780382929039958386162035995193564382454194608519154155965061873227001974643640795474803108224091087558825460041450500470026924940715116875897830341985625066648414424025406973098723953776602362780042567714556912320201012666061891815787488913871253897368989051919112716812349218500543639579522290854281768314332567441213005660095439047694785530810552199298932281161603708849062352966460542363904804724915667266222126184800450742206328167247584658696606821764242436243810021367064634757063783575070220966195876108482168076049802907821612116401431725987599069532873100096250738939445228905073047889826438031013131779847922494301096375255682384843001041327324128392793153950499166232437039064878818064486571851305911436886326368017639067380839599848538318110003069775718804559552021946287251100626968832310454497123578285202819079055026157216421240917074607765640983138491073260998035258367068673756871713823689967057231945988520282790443158247258225040210477249412666616446925041967455141867254220273470132465120860207651347391740610251535706441771936731059868682343702162608205614266673305717771515705040166356309717076774011908315888161189889456182760752627973694032841895069940152722547827913303494129390891775194684817171115174168411110080801649546249342081376120104687545041088904780664340820658452341271250828107624528496690901203486475770304851598895038869430431349543116499791323048809797804816638754653933697016444791615754466573283248445794671636830465276398727105170492325086741652745810777131880579314961590227406502042665083139610041926683483226743759068864005886996559816162187809718739217838551774849630716219898692314930450123257542248445078514161941246763737147983132489848334951639252718532294330576506898230699205418134887401511082559743584267709297997098673433459628464707963243198070842115476550203700205298105903164014041199737025505594411864074859664138077398660846059195585451010662195195621272046828030059464563031200158772441434430933734628390227969000298088997672178000977491750304167642696965522565753916025618869705990306993956310374709817970811647168807160085704191283887465031586351018518290200114035340453667839047337837930331482788903004157021060682567322747993992413708301368583669151143653312117047614996708318170446757572306925782486951730571278348122330460801287607078206614607056180978002196005653706277806410641660907905493842318649829417028378691204185681334395685760659509646189102604024015889427362120901097900218669432825252543046972698946122717288953659694017865717068223073949729913260415182069789057083480334412363773379886966658449038329623824795418885413320952707093507197311959437343164770720757025843717113501369711349415110372377787153527855803685059900343694822256126029177990704638151026626101152653908783297825901749057199099535033270793349652764716181107558915024852780682479909916168388633265288515363040579170736782106399347551847510329940385463658904860548644918671419924383131854770994745085480412760343613462028429683821728573908273460363903154663970127114104422958149922597085171421349338436136279153782641848016296871473191143912057044474084718181375907211622317374188026896268105955987805577550219424770898247770428089612439422275556056529131174029799285650529213914395132350480582020918023844242433647059579940637625880912693053690977008777375878416223584495827796250066530942051324536704413394928768366027311471888881865802469474233563212805118429550755680972868513566796579426864221050185297741330785598773408715583088585041035334991725157723410776903816816313568151028811795649655737868163704590795507782628683440411099172230508243591601808369349028339245811567249391607160992230581100645725924966361905833596150367626768219883357057506027047239621383607083255884488061717529676948083993129915310992304025888848112808642727081325718853481249331051220174173138977772877428810825771540386259683667388695924968345575783370049204091925523081437848209302944670124780078041152236566416380485273437420227325322604070475402185315503984281940313878335250554525267929529424136596154397498497601647225377378097335678454808242828677306982796325335386759379036940772152673245362023146051394833883973716685382030573941377995397891876814370831103564130455750172072195983675197265110592648836372764203208313217356783951844144716855860737605366111017571072920218896791321132273984960432082382504392898800884982169580169175480889857302131058410944372348894204202570821404727166589482669892975443168932182519004102330332199809774539564347467729512383985780482543343676686926253839737087434410005073663846009881068710972416437814005048596206376357649126633761572116232303495716950553574148509805285925341627850013582596856221473972399333065618554024759521132346627656356118984693481290648086080147241212688406412960856568982848395197697069431762451059356230906425569467225011358124022338412692619433868122746802327176474243037754697461262563997938859149201327745786700970136390204448301553440139176656284723237405194884232274092509498077285622171759634857610916495345124496785839030269267983196283139062766492347148506245052159944245498083218122023760286066651205969232974012443714917228728316036919150785736556633230903482124519975651407052457683942469774114627721495060154229868280585600546318237322465698824728996207768723656829819998536738724840983157889649654619751282657478341503321099137785257347229566152428489577630898966372432695495535877337384372390476233912367966097379022518561475404244807544419848276365544549670503020528361149192620156576211037390854987231512805309802253177270885579739036602488581143808198733343028030171206981553979829585102651655687845975436885635844685842743528807998338494802641016691538905313381025004140198110352302665235989836695113523683431067640551456977068790390511217822580991533787711557984752708358293374828424089263995051608131387521472107514204355805592336194937442627615169360952622457935227997745261222606483050928521406043504892212865435950454030080694243931476757743058346359755819949785871367109446996590364089156474723617502698654764200584730163323778480901199528679302273085295176447915972067618366758748740236037053209795919949692472075478343938751131238732175456265035815986322784710043707032328400599651346035144199034664927189494011652401272318903355170321550914250975682258508928600772883836760424659425466830150504934448268919505230478346132499737780778376238023846166872724048549815674374137761819202875283095515599495964511050730453484115258163476774806351455543316769741938928891020505305160024852627939747389895881782544710810255920874723440957394294027910651191100821755737640659516205049875164330403961518131322869762003416418584262546154142299108301055199882388333211684379144150350795378717964768150716337852030151393394058794353702211583172139677853731647668539435636529952399511036255629924717521202603709453111386123975351128306184212232869190678182285690099208717087230198049021156696962576403806415462024496922348438638517714928087116892411411520314695775426164988136264530772021440504188766322370024760545225483097220337121200852614609092781770615721202723118007200035772502626346242675022610376397267149939543278818368880535260244270132817614507125357889998037527934563479563312530020020660235130372791015171860563443814414754860961719426441066412523923874141980460836184289144677537068594255015629101809226718549295279206971737706182702226927653511343011390828998614332687529391715833381826513879645579037521627494902480951757267906470420967801907188709861876837694872849972518724385115970616634088442693709939302318053801801707282558065954344549934858621410368673917940769735156026214546678589060864057244706191165395807606821843543372922144651543547058803076077183272815914927836653530191564026399003348029802771172646760828359488604343026827400903548296512495460028303105509111898397779903830375688873508472274283089334733853339363739432541729186970802331861707584965931941336781630759616359262686587929909746031240491111973282876625391974104808744871966994890591147901701081676532074816667888065493945547202891725457408579814601159172366268674059949592163776819364941806217278614457096350855811531642771852921101181579684541232314644475300709212118316361946482029425734642286261982163868434799652326609610015484832553135832309981917590750260601102175717082309460256997216110731586369120472478938930890089161447721745318455829192297775470088698441704678431310782783586456258859943664750945885912948762780156128959448852333948196550009023584752161779860809771862557329439282269743658853197543984761384432818836933596078138764943873151812020557477741642825912856292188348126059699624547737267223611586696697754782939700380005418770894672765214400330959758352633521631230401334333228488054731524417385595203222319857196586044557053395522644057832943181913164094104785941432304306062519445541181009799974469932991761395928216064586187424846436669642334415505303991822126360152678444142401184958927767499336590999974373482210919286258987928943050268216873853822327975825495270998068374833572723890887266040323683085803775866377331455278451678237060825894699621083836490298987475426714674475068150830441827319324878668304140269822967599982080325006918731462302234649582647383797201119887024248275765451297175609576237187991081550330091775403187691271756495495765477313113003002213645215105134860514407204955095683333102750139549023866074418159255782003996485042242311841143653839009977392009126438342534639317309051895181071260794707038044680547974621195411740091845558252030217741123746432583241785484809021637340233842447852367268218480199872854327415656029198022981504929632749616295928817507142573132537428103328222452844195867885892758484113298772063971058254073247405186735387210885309177185822721027736695022490181397587187186790892342495858041341826359250501609153989865527908693423388667304946438878852469120406351318204196310195844783038663593164814843863224075275486771773694270936866668652904745629866578302179669132462222834302362037516787970135764598988188723034096821438607663478143678148494954040275385425335655092400818945258035880638107211052762561208806576342860835963222574588282768544470634133359299083267925346074215959007084397791038260290996560243659128612391437382904265461144436307843898376384064889737626205526134061916234112966393948753502363665876604252144837823925201600841650280828514312197648727025166250863978300377236380295866184466273085256620114060204696221783427491838182408512993059971920386913316435096370722484944451729082815211849376331852655716340063310861858127349569319022304681494817354006668178904467717973855976623302869027582580837367622542186844109843996975035074870922161830650337083304157061575213712595415255230754912070155467281885097073904675985355185995523497914061453391232622956325783010884022809876728128500822097028721141419868330509853783391436366847455457743816163494220404422223542640312072385558752494996622687769376774333803038620666622724848064858705530712015533100552302177183318574021722870003485038159879144910650869170365980837273980716205211646056815514670685710727947764056959148984183829714885819564650512034865150444472668833073597381667663006533947208145698268726178447856603833924435550344873471288802167518180131123726753475082608947179717118126447149580160436585077520854227776405140709335198557405800663479291684191719368036938570732071419698353805958877204823896868147040817503812602935121694487580541971424139885557543923272588290250345414480507683601694139760883580468729389823011692835700654474887458658197488768384341874004601426564774799890125133366021227267724543513564300235979639107879694734334121103611795549386971490628623987124915047711370594415486266567515428386203115909917791342148540934878498972730987625791014736977924554428037483852505703281761022517767896964251427557013371486466380103759597347385243580881907999188190553173435155421939682531106420877586026013144691113296722233877698603241202382401377227212249036840151575945189563090338593514798991566054334864690779342215453678287289925721713493356860947201344858764585921908904457102325199780407473689954639794336774940177545905743846580056294102611289129003369415198072478308274390095265009939022356233639594168345022230857185831996925761887090221684307044938016427877206233154247295211275157129052024980702324942796488598978987625746233182268625906825181302960791305474756375444840278303886729019728879818539256201236073624197236095779514462030379404629377433168131900127279037074211998718973062778021888508051932340594363019945322480556011810427426366300326607684373503820707294891190659347692961775379304481704211274540047224811922607333941011777635257964129688165842994869267453663938474217346620039336283471125254046597236941812584689851398842499163295516874169058050504362423176051130196939943485725530858113444748135622279243582454714375979396237876626350299307919176698542886855535651655199297291764168381635899502365703203632887899267429856696531893879055300400387833241863502102743334474473638216931715631316498004308866946848416763591067397568599551244454165307896086498724031579915776517881530024187657477303173639549613571765015963017479561578254148559763489656865155793655263260060540012116482375731418154009768274794585253603015234893707661490773587834722580516207827314244759837334977290360621881406859987340759978292759641370318247223573366759440856651651657694207800012296203740730508746399929237807779394040710552311205268668202791398118066227151140737719857415087116848838442937981190369523036460762999149620289861472781867487970898944038837904706762937653389008917711188610759932564486167373603085245148977538051701174919255184337620178748597107670748628556516071995651272168175529687027211812530120698344872975459779448773798892095605328492996147329112839056652454167678277898426460367471040173934688728512109934110857699173610992569878738870928956535153110011210368525326344234036573448954102391656486462392992434981634144807874966887449301549416681853390919889674863391088174453575399518758426406616723915340417343403646926341830836037036372649879933656375007737116945414149667807189400404331084349978034810715842433298199893849357079765296998941556972538097502781360614798256129778093809319845550687709319582472890666730192126481481477196354917161193287755392968829101689401492136687476505965909855257852508795452003758953137970459174962252899552891756408902596066660056996097007852013130326949344836307740780112717421101938690566755969953438249818173418757506121497202170929228780512900807195594039058210812214094680361926039057491025569016465135498989886162526980476085305097148590703467024897575728195848182628530785432722835282920503373984573416692884327455580298381272931596217784319180250927066810575439695485844527100330126526210114118440097113831918149706354088754822875563354390562401162258248176653169457575543517900629703720543022365872803233601354273797288738730931044110521762911716924223173594245343610698608613512117556886840289660058989758818785750474308375478992482088095802063319087964272486581179744668201296831351406708645079612882265371174435921378925678125213028474600584112399300527542398400493580273616385472141567726322507464976142454480740763598333300940142030024530268126841399960389319858259202348825584939261928730762482977656444991415010288237653163573387822254666076461551540567534885501408967585638275024916886986362627718287406275298051335543930037659731436246807350794441021447103553328370161591984407733113661088551355392135960519221926382086621608132905133439092215635109438396894265602477310391183492747528756454748352325324955028128195689476143747076535598958482433747337134497227861701726020436627993100007668492987105180612600125108201255425718579844808548782331099681692066387693876023016357613910752393144325254207388251585109810705147222648517438693513607284648848917094373745377918769257570610188643366276785177559845682363886943447776356862654553880689145106707342295411605517445737728183974942516044752094389504907264003193263489249598178564923333972189049391441676259576727460815723383194861938922747095620605932140008512439033350114745498955921583264004846962030198575681753095739962757341295828706696767790790818999841396398010830723836902120979070019924912806215544112369062990043459904573603154313171695982695281575841425821942667394441777746481501139598923558896759005058052190735723021774169654275201304575614326769658107855157245263555642094906625776648396839825463800937357816783886873082261174659537984773844416140103900844924884599729517874962927209529404809019921657907273789112817814536438463899410896673044982215373193574192357007588493839803008167103674683246476617653061497216037251345542849817548485963863682449224103219602723177253482916089331679780094372215688165957770400152954575285639703584796551421756320635683505230181090842709066532039981705847190733942318525064004435102712180767405565549847532861647685600318173864437850768921209143652745102263948100276621081681717628816808400555950963865473494729181659742264985585988185539105230962117815305367416494137128246542586188387473536917529920955181609307288891925837053461463221469955596645416747409057268477882049058212851585683741110510278631736912954173498606037097182445689821000544702181763719030328654947626460630887039429296763648847444346352489806486405818411783344962645227164098013275940262534972631938561767762029778548519804319043105822087746484944807938177026446450408909327925851693812255152653753642472705214620694792128265881697158159740348608380663781603693496323943587415695811059297123014934114186566028201624016043414264960369526759650041640802232105086886503479257443925009964458372509874326082640908699645885952556828588860597334382919565953709201769643620258637543219029681767202482681833916766166816801201991437163463924113505273003318420343950740137712115945272924765135148547032564242800622191564463838376235790464309241799532780874763254688877757005127989435005978035670775896291489358549401862666338497453411789701731250342655401855263422579451807267768522607668833589082152520413118829472875500434111088405456302238620420083713063128212759649031183709567881210646640113997803650131028996794728988043466744083173452332966708853305663610967726619253436696382878604229168453054484362899799663568463154925718515901443417846334881067451015630896420887851507074635541798313298654575868014362019813734944927816255612299409494628848283801715013201223829673093128209282410605004183955363869381389042776239217227944646457027968098732077337339132933162650009771478331204590739290525801487620856660188519547764876269231185148361371722762904795083606988094929521817715678208206882474303270350458209249488902034584904714190799982220059998816867636084015247433846434081807621545955880316208579706857479894424962513114195287017794884786090686464371504103745501305502768451433364983340069877782513139081300375418574359995881165067503958738809072306453689504000476358475944294996729718834760049889488845723800761758553564752034480572537242932294046862754515015785892402821472032451169833845729330448652335595510212145283924120793236601511404401695918441467009721681022325357901363451395640946554349573882204696311273363368719577399048159287971223186074623515317303567963442286651908347713517873838165015587726246501864241077540087367341456837743173866573978471348084871300566787246489396004547285679289429340613693066758272907255902429382515908566468255753374165685892122668955507929827896215400768236801968775255369653877375290390950335262573646364188513029009886721770333070641333089774526489366220737388736897298357981692337454403016297887905571748854586005491970480031251278858082876122178911316086680254932347467161844479135406926691090850953397948328607168135753535073616069346351336678895071545757324653793217377287485708016755014515166688993203607248897471949445453216539123163462976751096558717572074450538079032749554788625905613562515316191023772670594726963901668614252039583534757587319967671261544852038966618083054761409103468494168575687940021925897555078085883876916715260990209438839750369528644398915040595379936604764413788943667004086679106977940099782523523604875142981271432905427920634556041404347379540550046425085694675987765556196365080446745673590132803494130540678679236093974152497084908493814122271802170610101342362645406883500320449973119245105212656778363713232495839772596536664560948547083256073281948689410931496790833506102971941714068855022396608482793161126854517089209093472749444799472826394720063831185277792152235441582241914350416969551849358990376844809202258940255657139726121750397764385697735124358770648394486822436859273661931795236735393328275420375373156946280669994812172896079002494541985366412280404833082668848967176250514807704129000319523849619248557665718713027731156353827139365492655932272159709359998268941301845087956591109531095748034614963033485214993735565116843983850110440305494667879129137093524405487287581403795068553371253817409584496441490799220302421908508254204581498474920343312689091648400710592867964952446868759993858376744875249169526038086128393016806380532764819055757906253008826572919069805667809792820714823990178416085904742350189511627862949477226470156853216527246133754311766521312097241423428572528579093377853383698266887334560436152796798099207173790197747905857044193279199850909421950191482089395446597293604213508973131609561377938266094228011803095108096488907018486108574917772570682758167276241337045686939644222703998131222527949061049961222209701787731640755097808631750569693281578337557820120824604391090924989671636706127531414181864595820385041514359831082477395107441749353395326264147834860383263367195670587826935641299413687442933501540704363530144195094061156523018610752011128444492091985998744787093101732640192721670381979694713600467965669255941214674857599072014515557609787829607268184452651835889676093814107445855944285964674846311959532493867245374942372267121789620928676634225021552525708863797254713835557970205272203472452355976494791664359630562429956501165946129412873694053467537145703537741955180566026908847301669828515156135830396639311251366711425725076530072367218541524686851867749467004702177163143722010233028958048058714238796216514767409733171141544111028814558300948114606491703194026032264271145875860408034301891109254667465439349082140087792959434147098930153868970498066808774926578393600311567364644183265309952470950527327069978861639305626066090651375712693591010001570505262711035862484065102505769945211098875926795967492921566058356921214852796168477800609658810743087956984642320163448055802902083237640035388084113828573016485924985093293825038756195236522647731789404450693331129867833126067672408537865527553666754503559442771654290633452034041373591078644540326753715412593224109122958619937276708432627605183485279263819131254417671024081849772036017821057403024341080155765166494641162451746967454833464975022029400328914212116798621700965955619293964484876085110065114696376769138756983248874343079218162886419432275127361073828339668266023836682190611167999823947431968852521072185528598663614886290010411490407814160677271026661225736674534325389878902793251255286633167589995398193820422131576249390628720024323325989778223644718273332056603570447258583954077782988800305459159064070117268102796246117545541923235108206139886761356284163052596835543378518483447087029973591227257426392731005508622558751437434746686010743556376428669066304529847627507993220306856164052560908085256548389605241805235430129182707271356666188386294241633249321941566163226075540347843363749324646882370381137871432282072887371308395808242832587462373080267939991040037247707241898884566703930700512561214049099352220412220702966362233394003766880829445982688658842966192476477656961278181933772004843174966316320175071605533549655724057792169037299260248036019984003369716963847828215735974807336220733355598133925415241013686520179618151726465394454550189164699941522965096854316463623103853573317420577353614295356470787953633590595759248718992007075849098665691902981005035239825031516710977237896431824709110396938414003397904987427967926445022326609936445950811194169922480664283320725225865357852683890094477665682505803394377046420731680362007962474513216145480678736513816399735525794743275224871812969906817830676895567095898491221086044028685071767670520398135264629278296659935805518893346555434705623221246510996604374737606158065888996951232115172193927730225309923896872961487015271643086987604797307050776716324755152489233787451253925186522033983650624344312429201919600028343470146269923368943731914512432957636886188166600799144009620096704875215579933502685470168626184793430027687064419111822193751949649454780742906358280939679114070899825030313672359317690067254765576961136237996975308719268140084811562235174197534531487635439180216008624890004465186347093765558340719621106329839994794239363224925743353612507485015775083505584389690294226495527141885596405067910771423357463412209017307130725189423068664054833935560922785977157871772784402674696355844459463628771384490667906502454904533978710543922182130772653731833769047028004026692673339619116381024605189357052307163957100238746187101814405182815641184097041871020580294928655169349494926252489045967919790865393395377863141207435687102394039256077196623678274846954367796484417372712318784323401318912351956950701594980543281811293891775497078984568957735432728663968307551926204138071397602991342069938959511262652352536617987132936521307877595892406786037229607037545209237768730869229874962701252248232560430662836363867253419334260526519762271026629726516341822414208735322304574485132371118006818110569404015931994058263071966720459206732288572281147311432838246546667240701388373838773426623845570931678972886093396552915984682313696062461387601303315390088345042263198460061313941456273279015154893669669140398397095274750856091827709024456480528016058940136513593627774246184570149542012354024756390293246354339962056370838861246629733786615429919140814903823773950415009373600554679154518121346770070145638871948409219015068951874319860300955141559167962339999842024354753632386023874080032887849175175128280879296338061716326606706913994357365812417276787222305240568528560727157153936464728939678039065773774560351883389535683953694282420676245569306867558749383804665778212805098689761309110765458529065238474023554839352921223063521998673071463592108004460744827836848790749787908603434324619147105612160173762797462861895852683095926437066826600617802941877729828297145698671467065272908601386492779596734897138470618048735049453311749749606866933106462590835764693644836300873444955765561366649647711126701358574197140978455604274651941889979458512158221732282242109102494850405054778847122854661257765068048847311713352961008057510146275827343145788561433582320671468588006924911119317984370594475648341053361789769314618598937597682362739090303369123984274889349533611273123875758309203707803159750260528438768651403207146996997551392373877102452340972446221342558271676560895945556742164008866613049356220350771604605933620195121849461071396325641426700037776926085450718800741271462622878445871029527837959904248470202212923079806688253081787205429875462580498499177326568561783140944514661663289051123643741212979748818879825892418859831868425781119841438205165715167808710042376185385452894868092773903203448222996974179016764521153211109330891029629404180174590724390648907587424447293395143435318483007117057929637376673957022245307191527176581198685264449668898038814190236937434203689824509552373737010548763284933559988089990539707084130679417898601081296076271961074486052584863374997811155617479334228673212593144863484817914187951576426228343497712317571313608085325465856601683966614354455273295212009608950569892399149138186696201156111986632981254476694280610885453528031739964899761117898424047940304958157717205639196939765398133359818921292383043588793079014051175224633428368494237839996887069370357623585255180560526407108656665310113405718426662253199706986174520062342244049975610388630013186871181484952020754786313741644733838193181922392653134573856766564890528205701054587092818712376282956394573776319827961914316571415077159274618295481296241669193398196598158469714513034732327488543131719697084611262328213805655644247427468280469950152666104747913227942892070594614207216579615815225773706026867908173233440531307118106110271045289502215388373146021551139025430772676422509484791689694185353074213850892024908989148000228464984580320894351505005183544623407120799499528393739152061079013625327555096647770497393062553475168913595505226416428699675568905563880891707468025295841037168364307455743399230664354767386930882531726570856583623216962157569574638075449637061193137826113531884895008074076618908978874770651212804551335815192022110731994046027598682443466841113505008409244613209626723751189227965805278369810570294945278121133945132092507460444916985384839725938903715999369073689020022882174946932415184433083526694012927192399850931343802983859944915343136124650859956936415864325986253411724251864755977030407775309850712390828760406569770654054938133869705328154180058375745982147166477208588564414139977742722805135954869268230643480939584414970487660582165261344077383422588409732695434385349524587654755863451270930920526535130214857973743696256234004236842059481318048567902712670065121976526040197214915801004017872484594691779226998941932473096708592220362051674448306347838350990501013555799899681064747204528638826092205802775814710384716294461432820854043743116013614007722638976226918762335314379643771283218087120198940845372351280180959699384195578195943149989279190172172469070911439759390119173035669442821568650157580797844978100332386423501865837674819944726171094533805028367742774233858209339695523252558214762152173957930697776266200069249331343405606616239391987546156966368177534689965736786711833208455828707270961970084650461845684949552020317677772832139291011444154098546550014890527030526481204048534442087051452942742555469138208319727294213995455034267395283164757030522953840078540901383564882923969010886308957497176744299782639043599275272020007194671786824458778357916693601776686641656525393176987520124409011631818150276420445995029702389266364673874575603274606419588109391562713649515381429274627752994031740776314015044377052713659170108301161560462723341829186497285528325960371446744748669712970009860936944580415645218954683916093300228579167355600492934005394623968134417516848607867304338132106787820410793628887374757839826009534185955138810660078694366229190951267966074383117778545436675689861549593867895836980769010017899048055359316583270980061805187485860372355280508157594535050809093256668859741987750653694508123812100211141548368702079006059211365209253805762446597188026802420610561929014358305682452572915450181214053602339107639557547127081589101553335295060478171969309542636353388401130845014960068124823947655216830472312643550365913838436980194964218280589630377200130096722090057586176720219755819004279356346982215033863724617462439175353891686816502469833298866035246393619162745332530758336080032459792633896616673927059360864317935658532915932127810123798221430785121392517936635521314175752494636025460346695421941395916567962955439087816145500202438245676731837973224148431279881038511326807102279298443284841389702172095631456003694658268809488364700129557803864041256374323665766877020149050229542420285274260442183360998241449087519673979755486636668955473724586263152554281696621456914297602695432543897040547412094818792956796856731766531314254083917441497751891203891034061862055752260467745491669568792284948811938463757635105713530638735272258015781049730068276182839324139110431235827235205279715345058038715818632292617114038334000667573661887652631194513341319259128449570693725147099159985621753757331899527066714465687299903525032644316856127626815891319481028484227834220395678640309928848359038011035968562576186400347836698406713129542986760563287969434755473670326362531154261870673220739936094128874180041416893215799177478233186999213766725403650862785404812158047792375020042193757041446187031047104893749541864600089965723380840642943885492908271580913325909493288338207830792705767024867065397958342938532920812707461897103894276695779796424734148515413319151068510968294925577142765420515087010002075576970004192756804227815660378996198994431125000901382801869748739276051908890332822394444247421963027337326288154374510222009461562049577386221794049674665036765351455076506098330945481138007076870069485408192406230912094801849715511494101390748457413267949996184571532552147259664658561460646014624457055438839393892618479526073159218327340087887169317579497349874360870013416579996026426387504502042292626130784379951694396949064479120249950772414320314746997279517343314652443884878169236293542506212154287734977816415457888989215944314105048754334333714696943038878060583767885220004508207526707669204793828572573834537574542451532982491927359762115098360569221271887901996312019620020612455493496037010987159426769889215334088986654189505063211343444844929148976727994032511442413770983155323484212959879097160431739845426458321185477323819477514093601906569622120560301390008440512194818084431809700563165572254928361087711057781919468960341361504710476906781506107206508474342401760916166482275641504385860310291269074733748597409830110311608658901226732516673612567672109240542867464088524389029634309835403842171205980284681552514317668136327475350444777787688427515222308721880918189696671563455266806665839834944128085373312958409872492513492699736629560615162503727522444095384061670730827682662748356213206666073815415916815027568889512529783983859247593824386459809505268623918543427199346861648964968393830725223910298284789376873547241118923259801892978638307545970281375019881076282648224708969730412994311234788499476524555721544763363041311595296774182372604288345426402885008197822777024176671898334562233411493392682780230162822343733681799298289018493525229187405445925521249589814829590930609266866273957927885104362492337369676584305610552641687622897248689354891438245215030940374970012841436366067909584296503174035247753729710065070506453070945164546267147131265837183500287715141310891520998678978817222730844686199197817425860699272838364635060095988281952713060060890867204514752468589343946506897071952766332377507986095646349201817517608669284296067160075495807926759389221191372270788881699041487178757579117336276326704062090133109699145950582247779720710522029577116183551113654361495317188850737016966297856146118682844747665173718047897708398058068118338004923921367344258851727478821296086999387236477135485820333845034383776556941529293364839324698586599152329078929001737072538540744078255304238014265274168904130520439619102248431483067906344575095899533580903881655634856608198371611274087857653132104686958259479919201880492132150440491435122188443936752020523206886419594389196426583130602717299975142687805349397914444188419434815233460869998724608497236046753840737427090705116286835351833005929095336880822613463954759304855619117141338060697081972341616748796410453403667223401252230050582257035946595494813739575640167577399563149206646092067511426635610801431917404798491220214593528840120915596359334100948277603507345436548979839112419071449853860632870572333526752619796489591645432523364277190157212365406412849456538641235013825278984869105482982092805845176608650398849769487897836495778545323249232591361138141728499415622782607007849493616124174622647619773235560369635592526944082973791431278145413570336040214360685152281561821612973941337790617136703905375835244241607545141346278074709194884795753003240012035113830793853945870321825398150850845083705827595856970486200065091885437769448347680405735827363585864769389519316821996304210378762639808992294889967957017489892934944590020951545724606324609791353493011471693053958570467949524982715570252674812125143936423655941177875737300828521937979489479513847032536323861863870206805536292368767283997159667164279577915172184143668929670891372007244362826146214897816000950936691980774167894549329676190715860000897747496924738750981860646527252675271490838710540618957446494521913139286520009498145557568161302341310789777898318761585226257587864736212733571301901757909629514220299869986019345451610262780153822828991524639906279063696269306053388220579766671880377081199163722119977765264747037725445222049805493467258323756716972337833253832446719757142168287423160187596572430742497656775696902752698329030052875055904963521870732597610686064729389596781412456898998087972050448103794994662399261466433795602771641717465941927659232082901256346655768813008471575747302552184168411719642202926863916720936753270992353955654238676880169144283894577283912625679293670250229465633454495803724017802209459824077112193574220775497725921240542549396644863457666284778132337773487076826541427653204247844389212611307528885305556638799963381467915069081677517985260230179498204394686028675797370898714055158980402706705451627798374757235077460964250246804316539170113072512666375367532687168072472431779852415749042104095160454835916628550425459372527872161392228639934493992304409118471432507915576742054354846370566589953277581958836244154567005178979317324885998489805044952876833935110795486677916618247881439809258752209077002325370419614682450989179372970084283757426349961562100237011719967882945473189533050142418122921099663183071102248731682465031361842338472644194879594284736938255071665238988517935108956299620915314225312271262101993185945398415271623751333868540073469448764978752049841699761894370988970378361636839277006789269383223999943549875626463054897996678490416381072901728033028749234466107838060156658283432463616684077701683378618065092409857095874688501221406278029334841785861641197128886380113876837147879637252789465055151453243232977078653980482948165058533937690100660055377129727432576902557577475274265413784236300668334570821907612970380346188986366352620148624387430509586066772285373812952239390349016488507532541075569375151632543051525545161325877126309984988937041648282292389126805985866951115742092942782654249200928687333956187582855374392608498057472972035200519896548720380972288758612918691314185941868625566595924574427730619500676221026503164497419695729330838909008948573065515533898030620519093367652790300899287185030702094930346434398472621763929535395329031129182006899755295184103368348900025999805006701553949657300976417986410611964535447984484356689737287493736977494765618085292292204072278168205232819638815005388123690014711118816072669652986968797670681815535821113035609949229827595517924223144677034195332131840112769983153137196131645498544962246848885155387463451441345225377324883100041201698407940827432244309376851763359641929681465150890865757906438541738378987592490182654127587749631012073581484830158467257572153038756733146118905407439456825184524501823839738063630897868439821888778112874587284641065619166439871821953631137559895724799376525325746908219342392715692930590099933035936022216919824848276133486976291125451972074998516523910622401684749907144523728210160357465367963701175696204574728134535882769790457907823478122788419408267837869407988224431791944759985160301757355106698404489396649138234628213847018197975001431870544333543608807644436332632917668947216731646458113722988892293661990342267396196715044197737562607234344992063669327204198880231416486775443782811419359026662401215105364520785844703543922430792138843967163224803179766265177581088588131993701949957329705344098311830211814810092380732095641333311328196099378555270206761455462347190684857805018051358572481760571773771527117199649935281330450647555392758796893050484786176932123717431028147516665990466394879799861077987803864621929927900039547978722884138937116522340115576931855205198156646738881215252062150905565559521293833728117944128273074156053401280548056688403469951844231023523124801553909601953725012082960158853310960115418249989388083311398164970134593711155662813235022325293082898037366558543453267276686063579821696265992032535476447616262989382201945156654634215104842335233292400312366992318823910551942229847914635363813227571736852591813786138397317785139773545664001934562506011428851403544556009928056516388950373581004905027746164773748670844425685275438177296104869260267232621895331570123557608573076052025021012089147708324924666200982587757118483564743759525557610376564730587790024272472997065906188855833280517919856951017915245889767139938427737156242253863476695607878662983441462507471175179137208942090242527449616320497019504215332246140298065812430805536753808139683199356022381852129421252462671469167877397880278624987350283580729198681699448333667563221681525170798736334348316566965872384621936876555905365279911658447040043729589969877233554869061454117730830997651365902449060503857611948793259651420121369522170447438407565299750173691110198019944421448480198099061530964435667082361379615347976433735378506510522265841801490401315479178089316025020025243504813940048601480639005434503616929826196474983934399998954706762500669733126565715345388122602657938313489843806995144860042609280117757674361845234434093238007575523593346694576844432056394218438666758953747683326505166788323745955899544484831789779280299170625241757583628778972912257284916953366123704373973375552869540375361046653683893347153657467687379493872709799582335056436726590398100841480318452062717117807130255258413143400044801199515943351028571371440957562136502449237856477828361288010259679284878577103347187481946168959980553451108480562488971747220689099751711227425060658554195872694698962217154723751399277409818690884525512757673189569844379329498283189162289798477089037727940002779956888087496840096707945382856080089039601329861171725684731518530516425455563799669129457177694876564254625126193350243581368001053431129765781891317333386400350491070104930501554026700004437240179841270037154923830347370843846416275875425681602586623970272663720666094515546122216953436270327060794296522343283889706972430800751097216474194517643230225531878168648742013850715530281927875973257965568975632143989093257617885280791714622074728676014725444523311228858096730373145119603387654336360751443156999832713808311392596225913459864842357140022848255912808522812140697682893128638257011814502634709839342528147817490953304628862208050743861856675662117183483571338543835005447421226627835016526141190243306639877280340119397629499188672266672522662833417561778377762806800265601097785672772054910840295529124272448837415069663467010468999192266984806422236144401881452216905123674171907082896005229400013148155485101402069561659824335568524327515190434235557467043881144216239919952934893978559799047414353545816603163163891367990892362141463490684864872195192973190647916716324686723384525769945814841010012464940670542794051114960266284163158859071844185980734516986491960021694521029530396749729342247691173587576932229700349960056428349230678911626633828816167405047586486904128182264230839851118349479389620606625163426640902110369566900717236478850557535410881371814688290769894234119681902095320097619900228094202110958799316112420071400560531655182620640900175154245128748134806562444720981832469114994603050297754020064072361339230629147699825067457580887469864522887987256393925144260346221064997018230382163716266130082835740538399436443646307491838825327272385525435534749862039889644648266763916099833503458550755470793789293218958401315714375780851581110081283881600535273394958957253508268156841880310479309655867893453614267793612412037049125027040270958163640443677687395600786401968273637863974615906089526236958467138998116213877637441427433299173001211121491585349399729273137029344707121333690624137646045484328933498168097003148486199983348038369614193488721887230051299578951179240871221328999633029960591958032592749097347690928165252494809485091076568551349716509923060197692749563458122214530096500914888808422601277378327154831563879812241657939409412020796794988663838254225468916323017222855690930191688153811537028525169531445222867578195905054210828919746573739655051122906637774355756019915271649388719721224113647698295949624815531285261535110499163659478025270107317313635203753997312515870970293567994858235210775346681036007798200703871970707327442854328601235865045768813863020066457105935101487513380283936165904951648170537010871783305929068410123256480790802278742630976992270327259593281772846056511454265048142928045498407024633575104840581475327822694601664386297475352060920413183151357267239843269834714409394851070736004664775416360474821983573402064421925168324003366667420346929550646578556281183355150183341931037962292516393644924750104589923422463592521846638659604832394484313808846161377575015021893109958569990339459759928906244032207263611464327232694175993330780995611070390621694031615307503166665023181989989417810563671515677502444732302030250225018601949834521833312514290788182066117622495352933367143834724448373018105759874788188713574553823030167610967927303901788607186676039891619823587342866291515811780685838800060288881600702759967652929129728850837001443392766316293353772344367210656876054255491656120313337791155628308199915891349206883954031203097602584804541273030688417842626398464147353489375050629879897562543575465049028015330024055631605126105546778692979078292886778620599655114292807471779877802581237298994182297797560811178673961597776211920598665041966611405680778296855614333099738600911333558378029666063092269885988963304851182577344310576640382248620908084151454681020067703435814107018447772239328876780869790262682716709401467360919781279541962009554196086193156571501884048194803248719020536551028781134046060839661883000746944713313055814220069758431551386562687735565137168785996886571542925115650651232919847627537829244603843039082619358409936396123634527409437546786582578031823518556133905476191406786420553755646132866289938303609373369283748309111864394615045550350059048743812745184016429780954060522717566905105916245045494762592603022065403708113511896711178158490791470096730282227351590712501713152846020043320742993493070100051892860848603135803001543070194956127687600286092132033899025461279533373987027689406787989693988817221106168973651484424483210261407928141210322860190697363108272629849179641886578429391828268087315807323196013221330821433580471761929597215963380933788602381748833354378497862936007921817045441569449424539790749331514604464317752309477800439922013196719388651327528952986322911735416663947260519842855449355450582155084457792941384677782910470815574181384876404296027239965067597353816223643819545479257834598208963147748472766820232947122620956075613335017428332072085329775672376534491827322193116676679890864053400610814116877634261161800002071767364450125912042936036700447043936939408623961179114208512292896251188485431219477516804791275561629765088898921167668456704690511465558445968740282525319605288323491700035923426289817645769060912317767224871868883493742823526130323860549203149656349879958836030124059773818300788279875367605264362489411285014672976503652376055886821774935858644653914600456362506155687119656192797606532008558380812248818819289995078136644558810232957862145868159322744130790992316114973306832768357051743603929287670570892151162217548198858060043208868653833841280863340718785239735987490518412218806411365360832164001214276832594490493933670738661298962042963151843798849323585813466155258120401042853727721969010161149372793489909227858305135511788733138975529883125124984924257232796669850022417395390756574781075948786432624463569424104659373326301474528045235301674384395335338146468157089818016897069869485171693862061173181640577235097972627346435108833089754442876996573429417772332976393458337491935965736126820390459080207893919370362308640022359935776566155104757760469688335900612636102155428542932291034556410985121102079531583178916345586395310543557575040191697873276754209298904824097504213933497937426594469056502912660182401412764944329343218713386750523162829074999684586684541895848262832584849501245312963783528244081227476175367995948705293159820046692615677605506485060843643983877651162548883917819823518768782311947357042101450264201253887779298645023424328962050509228272255229854271658967461533567763268487857353099970028567205804349676889713859936446982726074291345792361950316988574390153414173049918703467796265089988080734730119057887359705409113579009888537058583660708101737928290051138960032284508785660969109116153844323883351344054742716911083863956021295849491848042634268503266668756527529832540868470590200082717449081474030808191828625082064852272838709962844739331764226998337719398484422779584107875668098686400860924879200688570171022848277058971237746794102722036708292995651884643180254043556972086344658298946358159155491817804643545215931528090456308733736404346817160371445963912392924251199786407690813641416331442362259862014458268130814786306129864463473145927594542146016828895041172748460629281912760423381567806699235236479021625025944384445640425477525271360791704940610524066794412693779648954280975479122963909227451993810324226056778403425225763132573676012484324271002043027029046276044219846307586259866576383043275013761462017033481527421340168218482580756303311323446831960846189972326011045709559292585458388049978413326022659324553513569286094361146775775583342175669552107634862195624640922709250188397918493391418712817704187985143616961496082417440593641544244763537513983698421283756668423468185900622570031115388054547242975003217683318951693815699200687698182304757617603621781806473051111864534363918982163163056547603587847415245289627011717740715231978533028338389742251600297074862336442570697127713641899466056797998184447375783180964860913401961495962133919207388077653409115877315999475389643445956577690575699032108257500124215317371905779479854054875068167373909085159693199939999369530766819645830145119686748029555822448257486332871672537180894388157890542419421718530494689475934755830268129149938928768036039631215709668152566484318935608029621080576644412773911129672829991134904124479981161176120986762532235052417969142784844134339768993654082185018852764707361892164651647683933982078035383709028093505282049204885836285038100160768870798859987421826004588563739874197619037886609552815616497659358768767839760880675834475780308025174006470002715585001626347192061858405951706159254985274985300703921380113194171300682290015419561233307033400236115653984451516991064486680637685208270515313568004961107850136750402192642272013613301877326534727848801795920142839111505957643869022113849403796925393960811879998052740165545065585395810516699507541717477534724629709824382052396309374077262986185643998037921267803144567335322195776701172878061771455022014820664223239786514175221636066756256762305375254446056303959942464206036066143607299586256767425050906501819300541823141983911744563637070907749988107623901029567852130034671874407573810066931885414797233779079948329835627191248448316071827375820385118819352111062997811330754641710904748667211588924324745177088191826883782918656620654808964207178176120285099445494407570278963691883642041770757640834881317014384499981829436701746510877509453604042781749058117385406278939588095179658450097543101357654557795047796312497431207275007451904534942525898308668549076980923892004860229246307886919107059038986765749017027889772662191125199813452382983931419184849604340518644516563683163363029705368260665296308055389452602355896918518768317580243420751568134409767363166555726371219871442990886564445360316206965061968892139645826624298630269948791566250862730608620326744519329018310296762307142669388625932632012660671968121923565301814343971969124455486328551392233975109791429399422967312913343604863422528010486053662819646910493959860929757346933744046524044170253082404552038679039650355957636544828544522394127191806885414518097780301462055708864491116552857516024260143679337654592316877483393247947518926316390729445752760670263883848067231561220147582613068271125492320126315604330650422763945809367935142400336571263251744687324281536923675375711134888747685803851150984360832366571174442223385848445213746420798442071948662796029112019673741959383267144190588088119207781492358094539394731718129249079808009146394235703315324797616402514307323716130179912588780770407948746850922139004012922386980773687515803506080143973997900525994172361554926161174760653085709133415315067519726002278545051781635651594636406019728883823644694032793080038635329374451055198687321038314660026695076495791998863593104195737061441134617158528900353551046413851146850667357068642976413454840924562823857213087695234451843793108996006327780785410237676045048112264848196989559342135426570245872045333930978051220303093450402969465521578841827592774685640512173262238042241583792332990149372459094522573274314275569805246285264956775643254289481690406940094153763153079838939158033360144102983470540279120385258546824293721929932461012958491017816119115795440679997483590514709389656526599863887829580977097361097494017591978336906586377296159737376277656120710357311731075687819416998562556709895102306069005876023308952035696620142356155702500412813506133375711783267889583723806951744852838234678736198489947070986418660521508564832695426348421260620930465588160875950219667731674403326803736124573923082335947140077423228645077262068257024072573722998699836533892417292546138267731282852365545218805803256594095818862752056480440626787741382360116783095372188960554253082607372405986098427411775716414619357797388698014134942825858658692319295251133622398897233794673203268424151620150490818699081298525415644366514806239205051579182341531959565460637206405273647570260654205016511998395363632565409639214475931941968431522276423268743005332744410646066359530091523683097706072514642443068088269880051540491054237685644011588165164338275451835628682205793333767470153009480858635344932519192951407550924068312197504661602469455689765730630422334189963617589934395792941657162589748626123040837230867877389582128423639132398853980907081464524597734960511874823987209959527884497762884040274974413172795416835722918791525384564561847160621857539989575347940186432835904482027356192248393113807609948813140239334373078456069598015021763061090555851153994128927826277184860417393889716633189777232762166931742193091899051096566371096833546246115223866735590870051145030718522026217478527609421589575407094719459260960912592668005974220381799169547491545698415847396835742379831595151174566865794556388882687358620626196533992703117390741678303242124770051416985212278359759258175423905168755539139781091703521865440812545873687587821119054286149006473183588591520587084376056535524713646778221715343599428717657137860063340764982511781916703918355427365467577373149270306072058947647885710988891842166356629400785832413614813377115466311603118635765511829608918398811398264768387051899382816343195440438639855147287317700476180919555824715591721395947498762141527431836466051573903214309564456067518796091843953593358699607906644059408950908245435932907005105118183924268612497216073246457468858412629383190017838161233259924744618388276654053274002605330720850751066994218953868592553992908297050658478387183160044019024245330969729822772798705004485499156143270520595600648544444446924636298755992507864295747334228031131556425571734727059376561298653084571746481682233750188291843081319577389335790872147840280569795482021834276075066887214156154666805379654807966328069128122081006169390184758686078829833243484431963644169734805237316774876395430108257840266506218638633374915017040819923309160957553420082729956869087283906305975269714152658129718560427131952193779418514963213782944174836665381074793161527385265173221727087503850840308649771661815923598012275003814579310646949403449223853245736026485833405218026615503872229252145518293289904745460406430743495634247322667369526578632197222319175549616751346482776002225196040853695488660689167741473811761581391895824437383457543195729741802571828431882550867408459804217752222159794232652791268684942973369081361073970481825458450640708435265215846716652720796745587014747829742823581804224985723689965389861723039923152985910618527148512771697866681509426403134110742308511357339921835294418667643787875744120722288571960744321411720275455870995776796591796704679873412476704962596583093674160073091035634832513194352309128816542161462977784022399832035032181125469103048230501471213903720568386370215453024784674680666519719301031927994628728083978046469649473191404812734759007942476012794106203700191383632496069982012279599471560728691083849025455506620329012523904284610132409826653328347205071475137697388611920420797322873586321524144575982631061280186729330622025748678017749762168690326034804198048113975114960106238852036015731103122680960180738627389884422004165062156548410827903539765673294795193106571245030329875930374171558943664338087529761784425240080897081296145324513998439136158168057974729009903139079843680462418969560279143178487368383443514828931119267303801120006665726997874460262923044874356998544228328556171943062772123363733826058227610460777681703125690512474487809936279495644097869062939208719106090935322935180225287712769049054448311625029757713711389789935625182545892377285921762803800215102762240635306980927630135526877371380634076401918542741122710864790652458316483550505820164410954797038785809062809550155721395252537740380365035535586759819677575877489494347074924138387462426060311545900340473160345470915626811469186537886182670770905915623525273266961886022169331491180347243164463137245759548204109902751929564396397496922201486536317890442935998690467479815380639762351256346949151348493141406671544427077217900414245254625114343872675844494775431057107013851924734882755880775779776186438488243823377057078839855460278571050850343999072413922871034091077460753494840744746604681445737001226822783860511421242833311695525810669286308023127656305424322064319191539907085627331951015153291267329743592282577679124467169511480766657029619083741946892731597515593270017220611641727769536139771569185657024179204404691940354756432107969198496897202735854956406363977262972232718614236260275400417689606444176906890659312666616255389742173358359832153468996399613636697215142034033771984319945484713323902605560760353138757278803778833986858035395835493979988666511745407666737270961523162652740856693378765099356160504463213947164622360840835697083485539552267397421572463868930510307084874741792345497331218437536707094646021428156414190222517304529159664990522670858110571318977731104395134472240069053716318588524449104099132194111417885236134503581895892379163593439708717816344755200395404889788834525322690777718814134472515642527994539841329150009215354895652721270771733294031424025516978240761351224441085339323396124276597973536099131867329071599113201135554075802117289637616399817931301128786482436073175667339197089432407345566506356156938678680160072573638655532102379689414174463291295540079928558705314145765075228690173337251170857826385375440548859339315791501830193202687890491361448697115883526402231611008339044276708778950362239162479283101996484401811852056486173183197542156645342544845571554074747266906349817488869066267718263253547537937351837676515651965102888684157633250281133941578276341059428964051404267634226771670425909460416138113858507132948923302854885601168125936369713991324828011811017162547144966389997727588177660500902244036425245846342076749070820509549507204049387938602516465555677814364762848389906007578317006912052089067348978420564250694773025610625414079003906677584548735699842656318587300640684485743159214451005873507588419103035633044682428526434557257599037011408117296797869853549520578679198316731492975028785735749688431311356883305011260472431569899216142527175537909237662930364725266564146349987774010467760459311770882389509868725801994031888060132547152939027679480464188270220038746002198671165136106418567138522589078126318623979469821219471735333341696045662167026786131345732025438282978375266219370716135764803858030527221774921633386890817569659481751786627217286130725079392921081912404431774169810126749621339908254259306518257728786465505085822988238324896527316295690040647793434666383972625242421237802033059359401487212832284577354938286439378781188633640125715707200530712764275714929346287023013404546929333271921832873119031476085510068541279150685685611056718189119994943623711214069645430976914559138258551693269637858125596862922692597103299536404762502995337779296536486001776147696033830969847710221199626773053777984299426532162203525831835529896005283333547078306100868805482571025802172257304640874522458592585265333721682165883095980085421671643093080885479855838237650766933833217132384163843537199407477692923477121683549676375734669105564406743188969856728807811976127236021430670706229490361342520272444463798246074952956679999987798148095151956949765297277088854765619838899437296362415192335901411436852070547637523597276013118220416658473371739323919660192828981640766929350859917284312709889460505007006907450571312625706522042723087294416748010601161005832057688433129821774198867196712268571930523368244856631346187943177328369524662693171362475818155658673600373755485361105605598908571086051995153730174494255277905627593859556450290724088886966516868281020054883978770122045354249908698807501680315032928227839364922999188242795351686315755785691883117586900028306313744403690435510578105934969824869692983873751500712063923215668434292405418056209177063328359407104488943345310451236065503972817359481651406184167403468121886486773871788083694266931910861344462510946884668010911225867562809058738371794125038609312505085608900681338547889230266828261082326902899096859053518374656389154561929944138046841455774753765887876042565878346502381369807707991660376707641577589415829347022880591207484247059615185963964603550227544810964080536051159594409444337593673280575941108181822070044059369416131681413972014052423906850031330137298341253890258695802126666073012228439596178344684648609686118177180212456568961387692643091452874614315305889649003569636503631107225685047610388599782562088673774645104771058523771680495157668792970250739548665114791254269464359184726478860027924817033271478965666793979158219057834353900689197550690129049894549208069888715885108422555241986319394834575199965990367749688288564820874739711549439763475949693023327039328298369118476090462068533615045314515863827311315404049200462468641629249058442160771808582313780100613240260377026322369107814218934016538330559015013046484613150028716939547246988299929564511105230742546535643515718299290071955745545320174675577317958005968507040616910734557419665871590976948421779874452399677643943739504875940292907019777669611916294399710934665529056180555614364406697538392386534558807353364853052158847654075600468726655785301043455027864939580158359372886609735433389206492782917388341169205001955716298594162009568126672625827637165255004119424856237361200739835804159496881620529683306764025350268144885315386284358357513187744811777850559780062375704556068990374148190319235811223288315794612908094552210856996472192254643464844306703707785401354417085588741704458999882797260084893764786995181410968437262134748005421236941165940112963255359507289049550497528390435697562386150990647590879824020527603652304031435452409589501014270474153344211062331839015064696323162455631836411385921981624174150969162679657665479799635957047498587391323122732835486692331917352402732861176523163223414530030232652549634465301287008995511537230731941679256294700306583556670215060093276730018642259350296551361728620344939391185599295434044448252432667327492080488952180979458070002030578919666528614970275245535616671416701777871064673484199274772407968106334924726562905696264107816521136265774828892124481360822672370262990946269623495379297231166253031750373469448874585720463213736001569332834665365908858688474899023830948047693340736809171203322284737459688865817065272546082067319084166398582115381928862166155143138337687145144048036513466776708041075585639240867790718619611120241155935790177192902910444077416430421759121075514050925562144153544217173439286634016555555838300652759620379021325479917129067451505581038424704497998896921557492300268471487136816821547158913255826701443140164549088920887432607881913964080768819034677931723892541462538288066435910198261711173121590812720016082303276608469786673031009019431963293619592621420387716771211241616768859220473745720106175033751157126574192123570150853375134036217231843598837024414615513374930564711620521032480927723379107633844835817062166577492342106612271971824091198931333495214586678500943279450012881626267162994244039866524363898188550515414458651410219284421549927038373210262856154580066925217329063065347488732971022731903203164363828954089204624012712045969400304304931513930251594806241904943747396823649393834346817569687871825038850894904284618824214710507324713440834972820161040158796689658127537560986933602537562719793031243445607915412833058703547814390250977943479981213832350007274711119193702085811911913346254287255323905452080001900224393075881461048946978683265568478625607353069789960853961659172810568507815748736281346536018618756839328606479986627814282024465352415674590262731714331852825865903265621081758497306454902222988502755558180290740716085454508020240032501966447292849419006411461858356668124410849773009108187138071751303779256905210266118063432490227716911542125491727400256042782959159009148156611770042711850071221966904400691132211498919970979316863302322704074479465515801802813755005588545116127012537797768291368900679965649550473803744022591555452426515142842167157673933404226182110366999236566432683929503066589971625366720022689719159098238271253195162131722469988743567580810591040493832249026607583014451156391393616087496722025780746750101790089328380549486810064045383918872830755798952645024783484165877724413001697902399414314033302066183932427314555534453465466994811771851879591971830300487091106657543375536575439693184917765845452028282087286153988496162222177957117561403295053187724314937365447704744186713552264019908053961504610006414274192959541721839647055621357753828906944557245877220776053147648334217298856219659619416457755487557592516845935394170536603620683354254065080332283098564555792834675831798215100582816330950382887175593083047710243014557259349571876910374347695703499994759782394473818765332491920355168179593459474091310235700536113234417309308296718520225885393481224168305769627795913460789404993612214757395745436110871567762730960762476278450412578224821762886884934592697026155253495973290587992396867083933154835489853260535344463320275730762994732018370426098142495451640395622505189664170166450160738435197111616259787164346805526828110437387645290854101052050483054415612261922762959021201724935768938096624535431622980352181819917107753476470193188702283478606953500015763229346446641454323031657854794224329335085213535212418469811966740036560690071874677197521499377242955809952158905986629404306331395057622008672807613062624031526807326231084574798396949043762927665593861522123219442659464389254309237288438031316447892105872812340667305471132680890194564996151815866161990848726835706544275472190220958272774242844536497984188032745620326009109159070443989501921445916018074300304168431252694811182822047740611528467997411088810404318723172758104103409890565128915333650952315184154623103889204702229305446346325104703195834109663401638489956624611771327779972244018934452536674062690191699693173539075723723240862522565807305100294088562044468611137860409843154632517403602459986311846511601644181105869922395287465301306835686964775610246933521777827839360550364200310818038165084793525541580321021180993917609372541342979956252466998099107056416597276158901134808179294853435185813573836202619505063616110109497343956313730600800330245429933453931781281938216909442589520804463258964491887819530176244465672135267927792131644064782550174917525369230263231129639674545127915668084291284578216177945060038970767561228939304416952155401391050266123082013660409215095614392271271250110418659724409723352058165871251216951349325967345376169285321407599711714855002975275787974085527491010445213388978687009576576717891905656246668030782970554615076442667473956917984780849961783340514555859362508262596708883532287986013664481641297834046233833971942459983504498728180753740141894099361268535537220825255900360090753842949542395452922599209157349599875358446113824882743655017531905489459139404648296540861635933062719036618385070991621115680004499397712976080041268714105990438645661039196400637944094352126066218158833605689058269844627624633239098419726844987785716892743079745442897574739009304495278960189908482144376083981442550026884073291274054470112643995069342427379522997625151954082370458053228300196210909321560974204660597874526499818042664984109782445660073452343284027082364137362804996946168038423572425550680261596016110198064531300435241641548679365059869322777855793715531815027805659957833219778581170168351093474977283067665865499236003120369134523656066048689326413137585530477829368612160296253365803875298459502211991930868431484620204552628658111977910398449155018272195806411511318000736696282915096095676740728789750821247280231375999090900785316561986969163079917027768410417997798278361983055723797476992890520696095983499230684023646877401116721419872384876135095297523533843199926709108484573901748007299113095754691774778895306122380326712088288667626556710108342874704497927240007798791935720076446270514895138266129618779707380660720995506418586436654593281688339371314220899262703996685157499835832782678509052266355473706883775034401243405993705579126596585035584606569514807923311621339832416557654336336016851047862113030596838216858869413638556173588874143160386645400493572360780260502678739178413018335183768413925779005935786610796437435673803668279701233564070581938578918287929422633216500261011236032975890273762653806926564536497146208518473071267338651675679233616894621869687341264747220433180243358816081193401559251989957508675822882502689339763437968296861666521841144308207186467180674289015728192774203232035445303510887806990093925500061279826427924014975776528350138079546364641494998564489317222453220733400093212222492710018635985610200636112610357962292347042606176494593002969594485422836790116006915200598168514771705139248481243090094574032831515228383405852631843473660994591125495098413845535887570111715986470640377956433933430443295416959993005748249436592577497555635991008503110556382652069133102741064219399341636173885742733239573703146038952112567370099847113367398384692739407950222936360437120546830559590354223456682243383239035833108765269242035861423121931185781883136749403368233266696451093069027406003852798831252020415228989124909637954122141098745360912360429978092796766531081576975917233499674700324682037522939601007862918741882004625152603425066598947589297969135142091803644796144704576137875144641467117789501233993650083363984004977365897013650931685184557491262751100285536058395244932283540244542140549048574172077810146149069245356279666842252658063768719936110663875719885859564946109796628209235965376236376453241875946301439992453917079311646458810273243557119055455689257124222737381213967573173943838849899862955186911148251967979901226797135257103621215299628920435482409071120846389302286300741478063842299780135610831801383351641871450598686746311528676892457439951769512499381081024705077237229916055801092250885880764922175519733520260912984842431717543665375973205339849147753046329914471333318162546171062080371699888641825986243483603915678476908240713280170355552933562494992105067254700815324649224257292651479649820882009950574647383904476030987545524490287877126297165672974347640285214362612033258616454695173068116091612385518043658142860368653890785941783849721505655587544547957606149744193941753119330139594517962741190916521344759640252047548411643843792003298127643796663235412151186935876606439102121796073297070735448032607204879591885270199141958028384143621200049084942880835719970723788305617383572451631380690633700651538066157646219940588717568464090743156487013214836573105881239233534989613577414536502163724335685727392326143476450038602995321421727497663115139902546391895439671978810391203152037445899312839815986608497630470973886155556612679053575612320299924158700661733989510082715030339228215414241199373310023492062706994430801481955392111537238162952825619917173966906466866925749939902388417307021861256090795925909650524850532337131534824322751388001891128383815982495960277398186317268682924739874794669827085295719043269160924899867072372282972106116064931593591969733608746209872007753199407099729906539665627014691905202823566221632064473516548000503488031241631951397351985868657365126064008159413005423054178037598411529098467288631289967382768679966003272161362394321289086984138389225911987985011530701730017946982064511536948606037072748383130701475484545748679389860971226867282006529697842524123000511359964002733815852960722941935686051881371102931299667253416466615136738669164425321814209199185541456657942670380757524383546017612455691064889469418596530934092820669262777141306852968564345636551501990773263357635023435529675102049392189284525964488516665226166961439511388673487636270748133974165981471881995135952421691046704179752951925187629943746437048094866848392794861485336322078502338645048227596998499443998697444853913434840485634204785081057058956016062372175707141623384248412059983612067051719632635994880306897867263306311052102941191017827727486281496115138977467872386509221750826452769928761568946773454819548219640273139043973263026797633690730240738415841879763523026549621448309911082997644197091154889594844851374075698033773623243890571225843719958095389794038770909256856539592273049009539304374893291806870205393460583984914824157868360337576142191271385460078300298052245966928387296204582048126412033176817397874684904451533900988936418296750205651529887348085567225662260446680476968888664966029750737538509165894281062819595444066721311074125608504552906433685619890127979686132006063363376669909539595695665966903307666943724489461925809584043401733761851006690272508147165216638088843623397622761144852084923229742683846808384409127388060273743993976665196498318489978376841906733889575756489665823784548777128610540055178118519531144690475819039953158129345197974226971925227276170718797325032135527107637385676088034241451251260838403188345032892687604302089437889898858995861072143339325561268787540458817280810566098991892655477508664503554257403640162212651216248463927545251579502181483610323822454261309140611164099317516384302443856387804129035468536182559194685529714042637705464018689399610408326086190003961714687421169811567546939069127644739195378122055570380155523117939960818880969855202326185555185558609947716845325794677782206990941702757807988430994013787129806100781142087110826465279677245794340902502286835390417246379926199221892486297208004769481920665117622903941821802977172219824639067526698649138470076525796909390542272767760917032380261435409456870253946257343976745512526679523603169334071428134080826962514116762525450083779537612485729359888483325400728901823619749057162788656728178888198894518175245353912096039714250910016056788422942875011776523775247358220823629392219744302185513274407690092139523587260795983483482688285480250038690433365683328041487873525628655702283033431249841648440892294037245761458275907176983781622968662509483268724450490745749435484362749807803536995887762433135366466684682428871784450261731047482598877388979033924516586591973770202098724307392640756517036843604392736073442358336564177611832436092608519645828816298299900826210670192778354109545565959745024353368313613433176483651397640919361915306641290816110540212435666093365236398952402571750383639202031776543668060277240945013151199634226490167409502872977835213162788580314363717156718763659957876699164554566050579545041519097661561381614044267604119864772388027125978780496424236955105614720182637518552081301295577903992738925286556936233123575095383641679288490306327751863827287449970489418158627588992300223040807338242711867009462670226612822200369503436053409111010401400755102706410527553484896547500022976720953104437722882758257751157292885171414589834095835275030279193548832043719264103593985589354619062876969952037557722350025446463144939262545020856261233683244571793164891069909717983274739703216938842452942246541578116818744790004870961014475723560147983158199210501520707274508458913916512738235894123444223284360433447977239287023896049628327896611362601020556195234236327202129532308385133623182108292004758273472705018734293549954190742705442621104802422749432425439258149469680944668836871869003507479561732043533439584933628942040020244878103601509278235298495908258184285101111042611114754505284501680735342764818654912781794693797124510256636974502375437537619144964437055669192401761746352794953779080890889259942350993899657135448080812095312344204764004379682954999405821595153309322386330300235425117072908343702755860376059618057870757421799428384026020785440003555209853631908660867857041737688926961119705890595864919647075164877894427585404078889932186999982857371516499120385756846668459173970536049472646681534463868603855484164913606519792100311011696374149529645117918655823713023718866386728065870330704016710748635411546081730269705223431082182092661512521910851076209431320853966102987840426720668683639759073487104606958313805363231345947234509386174395432245088578990302745733269555864382719839358500899630980629086719109419742261107104840076723795673778283865268901164911406775284335253974921686256222745388103350926631905425172626804022390409863602333609787637352210151138268232804258146791180245385477528283515732937088344849677631803616007872737764996375868533571442160691835477279568292789512996385042186381476364327927586609779559635037920332994984381687715943259911969746236155640525227106854336961036329829711820923042714327942921874358648694631146328162917029984724720182741876150011032901848449330673926797658546851010675059026751318255473024754222550246593525081737803342596518090280012813908898422560037131850966383798834652121705102888946028325919691768644228027069450297003783483146276669417900397506798952019892855756564038836729692701800963661527043939135375810809978025927807399620522947729407444512200943701002542005491464354851781601363024531407223178750465050311717415491577623276286337398680959416727360991972460450679369730781812222594052052547718170988371365968830874025170909714843231833705494232582418399830214876900036914272542600648833442304266006566732839539383861982263268108272992200257704679063510814565675174592762636881031901804944562725072645684048777434146493564914576669098202250394910843558401616427298100144161298326855767021113284598079425700983912172513678024126896047005464685007823932832517097847163672638428241954329159766292596344856161838121474725528240305513023380914300897507552437265151004796559764934521646228607417806256448120761871246310606215096696418851928401654802030656919975302413018183482917165535212402762262931153362872561629342875421287612293478978615187883109718573253958368871140640503688545115970919417973009259547825016002708624334849028218144160661154007957343822244248000950883018922102593728289715953294316840572158070218866723349914853236183810773812997053944501206497679019085120988383281751790405229641812955440839619088697518989238426213345454449711663454832732057362435897422786627936132299124287555952826153215953210614380587661095351319588604190253371158709346281019914858674741490775781734668915292651362808486468758218077478192754589027938430377670096897379773827352832879642535409919535262565472371163480320496788301144792782031172001152862361376971155198290360423630257066756430466712483646304894306475995139624130578165561700869017014159569495452734525278451827707266868416684105213532859221231970369788433611125476510298306450799462849273182518461205246283906524111634401647710201395301959720666157370180500794654806196761915556031215718439874859544025724488010841648738459737814917958787402289662775131937856933573875126355641711298587108116162882865989385613201881512045674966145189588430251366888356409120017679324722862522245947509623254197505260128255975472195113240142181451676468738527682191044051880602213020937940933764475656564760595192682256302737609635385813113841500883436203582599385647573391820423677690414433527945520345597506042499836730744830959548982306264174106364463573321535784828336474446416443551802650810972000672292864168652583230897904525779566245618302599346815075881564134184000517520312207296312155197678147257667114918079152306948140074207325949910356431908874027693675194927331018445416809452423757917401691657942397446880921908485581662066651518653796958471491869148459510331733463676178969254873364210645447889393375110310134008496680260690229111985399543168090012178843688403281077667728513836244738890026435134935554677174650074280736896787724857015227962784750331638920677044837712552002908054485667351079008959890662399620509303199031161495064044100345295962041204081481160487747148126700294517132005594741429078249439949670557919648185984953811541598213861723473213675661685955771399670219362121879153379603562703257129365396842310007996995345111858995707811265610887245108132368570658264037250000291391929286211565055543199680676990688580422660964587043004023478547667370279217030393074626075554743225052027390908689484719130030547578069655907628699078948712620806419293430011749275378214066359067550027204795927530212771706004782583321401629655027235120728655674766442718853586482063755426816929167415515588629254960506343707948668541665435521578822320126472325557845112047686646121991031346147442877899189331867684884723632246901782758005863628591759919805913851351119051537681855938168294747598464061153616088755795199953546994411451738389708062289982714257643595038490474011883105798803697085502596226175332527482936092631266553678245004606727398321778794875404405909922055974872478091503228954402126769061458158413264545772598418027914044527157016710342977389293770820837485974464967332479381717696572741781180288306664488374936530380635527143326584966170441185455764702485086575095322140900869007741141144219807183958386993084406794800282830735817073066021625628194471271437556487938401101118046643195190809957194806068079001028893385567064652905065270515805121812215275609340695714691176597496145164576294423280344660853275714891181581293111328312640547867892914692637690703949087225897688920273997177348228106586804835455562147573123753192532507894225792651601628651293218441715297919870889102562127375370005675140226508612840535213040140149457550968546365365046368167288366423664792597098018992794258058318915427407704689075983350034119532883625225858571988552900743052520139472176766730017497114035298853788900286145310556748282911274020296121628116457900047506063355321587492877723957739393715032980639501462879812354083444847450221189042277639784336862738406389415361778389042312327776445365419381240799720294265481026626581565522625790713617521564686160705842513373993859678761686616347193404566057953388095612713744764836329278366690924732760652955259280842559811026592547819897127730750780070297140263998424524856246192469938835736201666457607671575132445295665014949662778988843152500924289457320810571038361283366624336654528892384655313197139316006491312218561465959053955760507866162562228219999994855742746720591752713402017957835745128324065473627633017073292815199759205467231765656142367525483911412645940875102591570219362258915585736242469934438831066650702250634681023653459866240147430138001825464888990076851413581638729342482491451899300240716143322224721060900029954027368080162642167758334057007416496924990703291109755655942166263101618413681603912815391035959873415189445006404553958112020802341645836595091915808994819206227006909643116569060798330565509207014581159597711920128383493813183576720646935582031769805360678813812157320614914759244832382509872574140278946531730692951748699200120984756434378411023928027985066694302145591573968356020463662758370781669275058798384204411089551260085017423659701379653877479087823679885364126514141449695956388087295426785117782949687607211285733724808848076172523696099705942089875827420663165579202303658842992577184718483343184000269272976095542358366314393446296137812103334925149357644566255077331619190785601848362305514686721711857443562990930911372572972058398390629267378439978685344882119657257005021971888517618974563117066305335390079419121654257370249606146643738162144521110141354494165299168501376918315799781334359102943204620447243738367201284943926359432273445751874397931703690744998270696535713338537944597353696922644241537956390630811384029021346916940091580193386027784449915430083250342834320243900013324669138903719138383069275108920942047697949262217710014410041486195250386259465119961238408080934574128418061196694922846140633340456054365443783320245547038875214922193823713854564990264928942553604861115060802270903799841557207717911294945637030254331173946062087013436156115432241100183562569703833462129621720617487620381475486009671117165737399069136374550292099696984167643106838847918395917571448400437681568477601802946456647955545409872967246415341301663500032456170223437469405683178579326368392406893430180540647256511524693960327475920591235497506082230289286160218456138515777261676881240156354807000777095399930363825761607460347201413888018814885128553817662526507628437193333068059371627771263777405131995893400313768884522063823116655660352919720454758874540355574253455714909864388365367058954534068939957149360676145490371457808547927039872648810006729860599274305904199999413477885079063866037393905375929194281209596401361916009822912974062910497281136902099680652666439502832150872804271309241329272022919288984013165414553111438021363311381966528902958258481568198791026278514674962468594880045614651230060706661741856174268484368001594626497702679690317502297287400458387900551257413422337203105163487850588710658930203799986446082741892414934234373801823988110000843859055342033662123203252323717220832992528105871662503408897994034414179005895612051915129494718883266102838150673337951420160541526517098931343394563057345123337003992256239237165878689217278077822819688137410481381514864064017744152328490132466877880755673375401335096288488185321354023076931318410831468013825516083296657937674920797104753071953159239864685857807568063474673176247897004181155240428190179729814459678125815829335273213574176827189838866359028771332167505608786480048561240916450006984998302758484600503650308012568193252834505871598941307310641990824841512199450201929180984182958873232326133938789611076699318153192076008836908108905299871694123547423485191897475927966469481604130159345589552944328696003400483398678893158886317490057930068601832610570592892113400550108699801608980197718837502264267640016865926504786765559034753969634361217065803325696557873604919927903443252083370699680699822195987315097006387805481396823512489196210969301775773023425056006919896942475506629676035185021460957860176043200266465976404691028436033193652214891925278875276996080538027405941214378935788588173840739106704113600468307380913918498872441233246545837030586910238661061828969643655110073750970950665803555940491270060599049192999338002694354588551297284167025649182266236397363888729052717957092807512245753917212149144894482034136142028553974108071062805749513722609227031494356346943372931804863981596635315929511580025103691734913165339747737267836105045635110130144969248098843185779633182084041130531061240615597532365323215508739601143632638153380441176819167592547954882897683672237588095597509034931271870198597058742097513225491523917505300558933526510964134426422482021209330178780049617606268082861998906569907017790238398072538481850068766465241397548492601011748475042110423289747880273973822107712733463366814446962613115249360052676853638945840178906499488813367887948480442518788493862275152289251402859031873834449596418224921887891714453105339047041007585910596935370693939612568391101093034384257579705591219771360451244579502055665276370586705893315474060241547558367898328382640228084007125396069352880666260599450747362321494536070243730563795728918343874242633930342280954891693107824099882064079303087687090316049465404454256565113881203193686913088384667833740632269709290971328328378894091350304601302248059832235589372425659325904845855662037634131977022621262902164220336456291546487906399230401673103798056473276060925138538756222965743878135352814536942884586883694123787550734653374326268835976380553777830761459585690427713481990734451905608076609647026889856900064234192258413532695205722295147905056673477511104541803815055819499122968979863120529590165572628679655146324871333533679363565816081615974376198057382077260113202604193629475920991864469859155459565973068346273298783687306590214051051348927323518975345013969393775553572741432877732678261971809431697453638318714740014539184157568550700679046034060384745130561374104498067837226375416088356862201148243629721868740609633460952875344407104454887125781682348360757464205158648638345643662710919525452015080107376899757326717073596754244165309357721451634891500823432324605084418283255469045835500992335693699491236211869007062394814974061601163164383250719254222742282759765307416832586692081395671734686793562030577524604041917547930700867885843297647740836158052347957110594407509690618555601748211107204175296422980062345841090306968212130179911152448920027057617714288164420778293065409388858156119420204180474493299743240092502326848538244104601736677247658992993892905604861956749723178465919740562113661415252285845188947149896159624682434738923960323509698116921976168105758144000854093590845023448085953339741651806830805891220510095897409989287453765003562303734012155144277373515957163522458651818231706234127920419653960154575360680135345398691767142545077504808267600672423982797314392761538492235699973156216041400096710198420275089879593658919255305443391619061945541688866525680876554391292817777652914359403354306377130578016361447771247652711417991475712738423214067158011709824282589039141683116156426355074528028994636972061603756326529985640402062018625976419759921554643812304508748120849163786537279696716361075718478220002120418472475787587426289095515014474337352261840756891262648273171503091571036752035044198552542379222407867286872313147892194278757999636399241040235422584052584461886230749535218499078140791185331248947760267986065728694952528039389962223073000995231845034844801220090168626917605888882755983514757046376268410085375399967565479553032453932321872816486553856733996463691968236321516574445447462883268035849381462421326603843277595813697832252358985540475751258123465781370413242079374070006568342369315433406669012747548346222435714815450948856952313967107710147260830658589753797377962297407060378938730897019778774265786662084808890040885691264303339727219139100610653470731586111369218874036202048196826210943969259269198924677298092973975839606739808013844464188311632902392438739782003866630925043250509587014457712651785125441932760711192546769360667970220476825825825014683159274819533013667755262661068167731626063329492838041535717921682068119695100845218954883699271170108594082809799866836124897559869936360760402699253240942188228560106345967611127008750853308932055847854814751799550226307467431751424336257779639675070066314422956047685986925281681326936799791733741690966507708232985291661444279516414782234549634307999243353949259065956483154734978408109889240946663651998790662160553282149975695297998953304022638808198871271827511393835902531138603698200517809165660608361393600057046252410953245961728055244123682201398179941904233660571860284202673865541384628141758712397049755517719705354349128943832474947030104141190529515639111027443616806400141104530379501534090360828639018316892780664822605081208837818892018403367658321196999924128938256565068231086649937297385185799724543792789615016124288297094840345104538056199372071954906082320734547779699093628384381324160424736149725998189142991186274820017027567342879636299061115914592847844677612709274122692842973585325172042397036382634050780657825236174377143257547308583147840908740480806658575005092967977141680786981118734421555680180126021566109787050171728860085299480646680660810651786440558329100797045478372103216481678259242173552661798423685964993594528925566980143298271339376089109991465482380621861187856903156347565465968658290904900047112384550206288486200682522494427613164630527759411986798412788856874292880602111185082901251391993642487220138663925068442218764309713144882921860117584503825050527288523826783091025646119929997516856030767077252150757039291869921185805234396778790801383516705635216723856031470832521506614438639351834307454052888899885151340568153246101315949743945801915803145958603010333517853749176789418666491389168191665373572779758945095600068220685486426876402519416544146085826575478072297497734658509108927830133914826465694937102122672293004705505699692804005306360574683021391704053537460381221952725698118927423317673681237356878985568754818220418229501495334484728190103886673496267227137980847499619946464806807404115723808293147614441876227148911897290621991302708676476957250442897204062304691919548959657247781176976912149546763789522411075405341554470764608256618727210463348183747001084085583025285837721258999603895519665047548492409612999744747255788231100531812817228408634201826199433710412590650979204584107764983149566034387939558508247637111942469874912519632359526536369611448978887111165401519502038670119835467220994593221110357811981240132915625135837435043946847587299391288222308416799263622487209888426789250627685806555888853722370259339249479331460897374861112404384386169325249363989911093017514771944033829725445102265233873231080445018991488935113011626027858325365737456516589936431603114171976929853152842718255810574071111571875882458942896982153079908492802181522636575200251618000437291742100893442901918308815320758467776250300477170410770318079632851772204301713684501057408087230627681798265400050646990145837406458807179792362089130379680804684884645966161429467284795272335236867099050265081892942338958795078471652899248329217466267497555226593535665181322957959313192013045043628558645168338016342619574046196585671823197905096535979818938411975672858278387220127634640787728750334980953901773590709387293173168729347090918402493819746416803185510136181405210486970875488204124057816601941769775676312156642201000728807219201073054477967852186734364187528445196819304955095009212648836117676513019551606268057168942931770982770806812173157305917250267302052195582784759097116617299572901137256141360010537186747887098717249247736122345356778648504039296937188876602513538177642389737861348991406492115545066234323685498665035610221852521195825063129695841432873648824606619449026896281665022135466650053896000902978611205758307227719782157026111369314388286880015670647114034125067042279810751258249187958774777480617095836564255979964445042951284700765381467871292371993247710692553765420157372070575632903919759888061372645915316374606485535894949526449194981083557631686881271016615965982989146666286732083549126846066113077317510694023124528659337312749670620413037113341011789522588893483310994408478219537877089767424853806765569751056345094832597173392602832507726571825435227927548890791401597171056394476784830469552219970964791177624894069479613576866751896896258969071222067613354394439141529796857775018023545935299461957893339409439178814737158396086788467095555876024795016158656615262286561325530940124045815182652626620635029010144109503232981752972514398343744526087915950966519657028963988418203309540591638593353733115000945893514998032595371274070857518344992458062008928147239407454127024512739712317139741316633775547603810584322541458377318262641267380393679045401049670352490371325553139528489548033183695025919846417357239820618517915905017764070971174175971138456653241576940683295617652112953025713986054333090880809445894185913131462878343176093565772548426270001070827914861367765436889043354530914968890404711645117197561773964036413049684372863615714204052595361313567714634093046080054090956130988802855663783962740296675683996240728025508161968010313091394651261398613224569735176546357975322906565367380376357282134212370994097517212741151757782470533404100666892641570299134065680866737543256863212816803935272640179320868461316566905841087224868196722738925323551573586624971207719178336205007382585434330539237863487571984262192797462630968094340306637122074335766233093287776926706570640094660028525494440548686723030552840905818637931810816504386450489030039156271257073914483754220692293115856854419411765259462666041368567698304585822913552417282602747014607261894199981501978310399795485562547994647691750300291280841866865620425774322927297219646708216157448601789469186816459701401918975966507300032630901012774593961908821814814596507612447565199505187120591528573564397827779575524245881474248985817405266994816087043812777865446827789430778784962525894714757449362576220276506275834834238841806050915790461690393936298051103317541076687544951012612655632319458004507795481447479960515535740459798275802897608372639126477890766061502429891360678747543479306224238626396009718475207524012675209886366801641526125096047294146763864204192069051099167858376480245175577007686545975324876166760299565636831007256174220672243071759464795697550232557280662908463441112863697737845690428335109711932076847092162119339326903538372753830001732229215390871893076591416057362467951575839621539628076740004556967197097841714549646304344938559078976090752567551664660042939136641458044741664882821307177006649931585953427663419369896217845609098349215806978029235527508029075454157951323436778868172836797823982604954043551585140030124533643996296252177328808999208759241609638310143569032709637903257026092916809914496728401297119264941472895411892588468799134967752914628105861319365143400839841245189328367830490689279100039818780244024104608999579392450910218036804898053853192933791826459387492560898325655327520747764140017450694557002508673737259644401512687904669495460329767715689278135708771856476293436733080076455082368168042135955905642795955285873637194398650140774497458381990541667177654709060234469293526895888548534152002115751665159121676228760209571757057753521105906974594150475279509406309308021845580016625351996648448401173841248570257264957263713252759656840197167642087161418642957772595795604408398254992760754699674757044531796696981725940569899581828259621558299450264324710969317785903196558836389283249527087404227753909427841946283592475958934693152108001530875280523851220690491887006879442586795291075138544967629067902962261398428181990337465971522886133687032447457597902447733489304344836769025330361892225467368369893032220138287187594409517055113363336260537288547049677271752931784983584890528649973814716575045294332746091928825631767337311184168365863410254205710884322067518564260087285048162427752523225248972753839879541960017544609077744630592103199939363216250416145795234133627083582717218439999567104426098132384131277653929584840404834274902730690664671511703287203777195959128815262770254332767162854478783675075695455253596588603729481564637018159522746440806933967445514215167125614044396502341564447713536172075134595049647899202235354179584576547459400830244093832908293162903266093673517433829409688337891362875456562986139777137121208516071126604902737859532795449449576244534020769704722096185915527538069704377792666387693947903567207994887723275353116822302067265671038300489657070670705799068937249959373624261220976775689251179944127015294928269646339104665381470285294016914121390608640434726795606204163573847132945575869082789140678851984552074320681946573438674239374911961514179820973043849182408461140150859116548628177267079651134149707733342237182638586054924130562823347359883061052964116966877919783506496803011172383576102901020237730528740159436743978801275659472682303172829149149651266522255650636016832548920270297719942682955852827175173763200008397016334372228685847632131133024136439872395481337151167251528571450146716752470301464435456844523454641224705777390228310675003745881455715228827532339441817171077203576865338851779650467198461340116973477768409785387906561708801032017787758725023717486037409553217964487584114364474366185572682980790859228809533572228324211176239024559271735369341145750925727494021239462449746802955987386814541857088794077536328348670451017099689866666257628655513206571745642629590794946623613347236535764239140302161364416500329038233468082195709770930995844618182175993684811051812777921343120465623227826335194628040510236348564613760901299017059596408448858869844196462474043950443785294149796016402080033482658886100403899060711258124078944489417095766713334694707901033142578212958823383620981215857715613481339084258670945654628230057886146342967574531427572923127627286174790258658698509178452381175849744454100898879979076777574559365648717388417564146100635893370461351176988363282338906767571017790750247796988437063041301341290333859121177092074864909282777143225286786713331651287326176015714883599464647235642604895429156310887436425180800547075187593077813037418634969237588957516076887193936627508351807836541712701851840794724465973844306983423779147147228828567296349456403551136568418457163572843489202217743241937597319137427809548727018736375363077164397445330731240772767181347860526383319222542746233226303721236391130342028233067568677735873037144149657425125916525164850143489588587625191552973440694354685368179913657142237100513084102502199413643136087613503143539144518887183829236928798093123874114936965948148866520733504827217677506129527944803323601447149590031608993592948853142071980178596448968362943657255187913965716726226106819345518757163404070825835302522312014917996928986556522234634482923676053917031068365396995638022428065837346253470971247433841627851692501181220986267470464178671706924483615825519497942590405779478014264217667840185198750285721444068572261400130924056451155058459946556157010552608699745715178390276366562403420803577264802015482681853991694459453123404207886684292187595530806210861975924739477311505912916508959704556813792656675032200787712217958338141957235584318374941988009565270055565766923498105298956532067831198598683790397938415796606516314903832591812272490912509298745258770333379196307710422172916286526100213113981964646996544638879641870751617831205257837067232588969877783065547162604776339713830849672160070404621589683894585639130480358809999990407291682627210525858543293824263062840568384671664961093601983473740104309049104445065287381236738074558775456289449110183063273804856649085259025056542085314509324898375916638246413397209096358155429833225244829930408918981242339923188429530884534050029845104169734154884952034519352851544853134626932596541934723389945929128248715674893664707600447380641685385161044637734113704012263361396417303890629643397747655300359334112674506795059514464201055648356691079384458462668127267887789904288167225060697332678290280013957313243251839576410962212307657294986233723753581897438714057108610675014815241617073611840155518919881526934503146220581530553680007845835339228613872767898851660204230967169766669175698770760032612179963628125828099134776504193506578790234342702591619923075609703585394410712002803980149102222991875956459420204259646901441128564680082685919204420466448891785007949438908000777955897738569377889102627475986881767428179659552023282404335599805195629783595525793263203261965928559715207793067115261716651118568557581314141982540742974620991346275895656997958470586569727561227006204758036845635416903191488700548558045202806641939764295362459391964001354567635024379725603162259548227392028809854502724674282904861210902019170556271481001329459774998417572447960098919043615282758502134397533753465712883528176283281862590173609651988800779371843815522878905266243833489407192400355205514539856867865048960305210309407434133495228948759835398831920636240631706811217951899985632092676257399581585340703792347256424905417565196383428204251627942350814218403871320185130523010104344840286048233453126098880228715976967455910299988428263119295416898687026192598948234549705708823777728452061681338382986673631105407044994364647536649413829277477220968220494044098189165148922254713556645275353752020548188769307098230020279025664255689631318730793980661512979261411152968204479288376452128059755859538303462242525096992622550348461678931417933532828238678115003595495683630163990037769146370865165736674892575536900498289713058282871114836552633639853456509734909947235767832911146106483591277392410305431095206244938448632416670644281969133200816674096057144419967921577011018987770505253197990226489949799175946425498419718285255239870648899430548128262669076286163246711156148494898498301540253261693810187392664494469843555834987589251135275878628764950577910235274535424365857524042699689779728629188217126727265666909628194860474678389104566571658227033978465968653783664479399983906031766742831812157128461883608398914600912386045858568692085274341724365431926954693359867102461008382751717028453984055475341974216756406075255893197529210609080537388927225208982607822776979237786701190737242034186239188366400311349262027204837104621399668020170121088188838666929252074095230027173894904435023942611623424092681428412780075827632996995031969102917391788349610110309318546688842066285644227236154470751223273688906924801811850412491212505734240783660794784670519521786090945229879293928900071432954152513175667828536751049541668933542924411799037163228703559979714130138176888690850714855381197174872478496518916941526480652001561524202799738833852358509676582107371077771492620117788041712868317956030304126355773453117463089206673597188404223562808126552631987592619318976766725286931546797595208017219213954603298104184486797676843832633675096043069757914464093909570949028135220704665604331967065767645832323575167804862198069686970705856471852311763957864100286620837227086388871346459302355568393064606116470738384050467000489504088513453054918755000327614517251643344606044606899194380228002379335268381653975756265384856978400219506431191490020087863094739093134798093966528062611878301277269163706257464159236027561885781140167893104003846459935286406452116803138543838146546412034322865485271495413506792948145351379788396416332339454884651741441396698656527611659662429652180213421826926911911763784940146821216291166269967677989077503357350384117468117862878202667223310364633394653420853157914470396707570400515200247769221275613217873852889786089663383316528084713033164574493920059516368042930939621634531170573789294003640684524681984601846959774842884984133104873698592861089755032786528159492244847218560469122893149566504515142405568431442257553412390077759470636904229219953566410056325761912953772970192973540311205627343842790241095813333463759307268588688770866692904634114756808144743036377617675049236482826334078034892140135755244440692986056229024639653105311146425919479902460998035551403499405946810460262973496816748227860454335910474341946847955166825285480412072992267141910932285843154568357540266577344147087522386604397864356202206608559097553863042150691635406469283206309078860128458875271980453476284990850271513940204830678086107547749125569831549868425804790632408153226735868142456758151078327788859841706744219926031739597050438245763928454320693977725539294590320471618849145687011818416256412844318049056607384547932880060765075653309081593794857559927940701249502208439787406546034555534806720574667118238794949670768254201043908151164871369455950888391009983771319991219509861826255482218428691141988868025335990736518795786069712944567430273533853425109298280399901296735887685273906712975169156116423317180168219427149137535522002932947165280208900969063789499012189407536641054420673375177162499330359124748806787742419435565160975985623466275613855498622097856409050323878626805142739013930604000666681166699155236300767962972217331207826341902565880250380995002846296485043352616157983470871982816816297805436295194927267995194271861381027072322732194286601892444235030441510549085955925229322514835818240794212598478585668842578593454373871514098178635381551430295359216539708408939736677089569301285927890433932720636917285966623624081120708204875435641080041073377399909197924790421792161240897935048486100338822447789133822587061096394533076885222607481980990699737038004166228354820254461108935072645630615915300973656477433974829042996859781432960873443167574233983099349485917052671317276007980372783870521984178391012930328309264961388674870438507360619680524155264210106591241393608403883238771297837831237716995580659331632713232156006455645890910578693649416200514208398554948821107995362783668181520267332368633661547099383847143611441165328217239407425949068953047087846573385599134830111824751985306292969923312405100895719629369811820698248194304523864802023814691035783614127125275014119700076385248320040344530855767153100250027654341952169585999211301438308715292494394035219267318482703216709585336174322773773509216978018223848516536234431269293041175367133392582096318303768518614796677168094751221545976919046841178684913595467538124958160877045351804070155948049907101298324832823045637173543105734926035836673828366812566337777614198751862764566577932796941008914591705836830325703643649112641736894829076347900210898944619926363754647174221947299046470633939690261925701799976996484557552127119350217800004745565786935647993981329643496007847247683621306748388231595380333349141221027909853603961316561344231154063244385304485074361093700785374167111713850749698461728961867302456828589033291062541382048087036477168277230156103021583853408054453447622543709258419899661191525828633856132973956850997816773491203090208214396111106507151136501248197065611700135804480753696154351580158358544672623930810387272049457996283782038429829608250034833731985535963021219351731376500494335382258702357620977531643476515535114481551421566906995273119813518059611927059453114011950339279965632950633438467652063691895131343069518146680235458229090364482027732478479003170041190270310159368147751573385125307457446700019422027477007147358295984282433171865664438809175587522182071774949630922898780257590085426377339381104485028637128071340409929713026034478805429415186700298139285175458026810452380156258858623590483394909440063312720622426399972872556703615654255083163470517860663053755192526127393897045708392782535561246470891163377375759914044436334496046862615280483994244996414078902896590167132396675242157000508141761357858330484103517451678631627127804726608874779478176519036899342576191401104610407061670717262463391571848427450160326494949674794054143067481207878106155095074005273678152942369252152142321502493594039963158997491139390401408104678733934882097487204071777988157452825245371762214614234071061327228223407854479275351015396086283678135547047523178590550464906611503175342868738670746637962968877980887227046359878373256255940282357057068293177080159048383074884946716939187786405006685118541064014648478303430197498788197087887949283775109545177729452424044110889335268472526367827272394379012119948028208428186493167693539300051330887545412950752886016435086403405659226108785259380988370328377745013080695857860343577355919619460600812894057307156034410860157137760224887185251029541257745880113364686108383314714053149833370442287728453829028560489192285044421855415180177065908963195186389548985830159630738863238068291766432404793803881272686834978964501723678353466113517047641922666692434596889187125030836015279847505489448851627056805595215671038564642026826918027358143849470958121127864301224307736569964819823849342302357517387338954341794475509275931341627862421223930100459184171781542424628800863835896493104945352452038232924385306435247382257925223604470061262147738891030441821793182655176008398107009527365062259758139955815443746535800323553066163834074319650675221208637758335822070088748037943231262623133872684548775252288211709678733907180188725117022698937388929351415524687573411382843934507968985394937309475430557865181304045496286270951435487681635201297357259057506708320000004234030738289585667568583104577720089866926113242114380699442994245503579299558472814538857569741091682270785647845412805536999276438650233502455700483511685579362941707975659039142091128194729243964620657437764797282931437650975436710653314316401342888636483847256224467976968327098721503557869983960086269408547059283069677842913142040554958764556371764266384803733744672125131252168969871592567506585201511974329259204463938720124094795413471147344663123482900418954405154382576694298747531046434521580732121232718778730784414552866154129220108433053816394066405993603292270055343402408533635650410545240799954971519227543008180735641241332033894316149043999890951261943334357266079067010966075583313992136755312716426037068395221416472791295899164484045270963896807137168953293306477452450793656589383635307538463089894266229483486108428917714367588800625314685234933737242231509127612995979541703861115539646098971527457188743076675652167113539125999077608753236580478324052839417363025901932574594625459194274669416752516301022439593233917600331061129062116144091267645939138344327227626478453770653890503080709150656499156327022774434528944820404733878070483723643945888940527117651547185627996411655277403880107039329053096707458771683769400225368472447571457228777465301213262705884272732285452773072862861443771681629351207829981111732528914972922603210209113161742385735095624387755622383664574099397140525787636461112369383417626138554472275195047568756684763439901307275706764611962327908146592775745644302161059949793648111915533389011093105752429464748577559522256378761484194532413556453992465273795614725692843894226945264922198133336063954423756273922980219186176641753785185826336082914733179582402955005882081806062946669642392281453463234589074534385307652578041167794790806719562116542088418669796580559511041333187170299548994720484039469815677023321627368084838858363292989075548218741050354824000729751879175693378057014207918806412363332885592644019789626692535796206065809897407196522678180295461743471370626089911150210683118459845491628060908224356418394922753401629761710797237687487469232133601586151678897369618737997438675925847463689862202480820539398538621802557330412756805893942866594743536785284949142666503023834955147674893466281227812500964767204259473527820807365614185136052875265510441148242258816694717598086726075256884377380291574272838077200601514906961449772421701332890097444153142464845998427259419979020082575475394156435976339080862783530112291872099486845240157704927038677320695950821911755252096102687142594804926178966016241112003287402675261032841531364918117174594014954599645395948397507171061045646426061675682767709327256660626435174597711102576773313882343691286518959430589432902469082655319560012918516241808825051091920450214367339860634551539432309324408207531542308241123823389304897639083979945965754314231170195459072108397978302405763101101601052452986462190883757063290152468493004565442928606448670584915549262790424509789724268754690798504364144513521208580882606962191201661210621432303323008656173115229492987383055961775609303305579094456537947230145328727289144315963893995325740117370799887757127652336635675579667692252385581118780395992904690065698072848763034745090509903978157061140106554003228066376938870829490514529808042624602803586920549758526605054134972784322582569019118489334850054556056274204100277007021882590686614942060821346032153374618187977836643661532805003628604893399899141496243415543451421465759770641755623799284303167928016618121751886056794616147210189109253802071785066738196538098323076536280953900142581544178527500103547904366295973852402176264221794735911406944169166921768877818890182922755676031305275111620806816520692212088502409204730798305516698385852287089114061582037683777739228209445326851881408716332312587733534927742064119506408364521499839403032480405682290832366142904205847845038384574880951613623951532127339435489655864626985972482103367643697972063376141432592204807080688129407672236581631691915663117425199596612264723148658724613417842858900931096777111949539378520934872888385831329489564834968368831968777801588252965175026698675155407307192753051828225480868559592238480059295584260583940390364658426402055145788278173175431213958427817757121896604710568871350746005919370899781224075272121150936048218864897736838726715255779481108312688760034803335192756199961851004360109562306087203885065077981136184172995249303733191310673808171398241968625459250187480598113745553019614190083163471972546432629181103806914637717431258142911097622078251973354139560946460883110147281216393494900239225645119859269938585628269573929667390227489274900387007641591774149016334453862904121329583068588135915042188079991496162756687708303224447631859454126330681012303130864152258428586264413454891842031154778525920921088056442536061292699006115009270353137677304791307794510822023686575321649794315282980639837604812023022330910749574837628145268644241155796021738677618789223223564842464665478862158271030744138741603820365695273638852073218528409731215278597169789879563009964649938602892961583891630889402885454186429404827191697903428942386358893934941321068954543610318700916069543678096640809458206225091153786946957436916120851565113953329803121556844728510092572564781334934883918716515998067136605232757421411240278887525631237216628727770379660158009020216599384600773161616487109317708341332430296400234424085203979802660217465239671626578169716961684459395476880509356812110528863290203183963390801121725736992375083623155032847455213683865474142878522727946643938336787487925768861648360840265059516696066532552052998245924206855368273194135179220501026493102294196583845750948028356968640420348351842247077732588691768943918466411282523658050263552296095540242403911450517995004277364128517839228695192036404607489883498074659764002702913085317458607486320925255185266867511889142358199770043951192467583622455420250995200404018207598263427342321867844515632610893329245295938317099794991420084979449097997254511585337699911558075615202737057566775954690357158387407520440138452663896725537719093211153672257419715120712094337897491325405668086403951137018984191835718146898265697064927376775999680691785181562621504771955718207602269518051239836818179164905390094115611420887436720943004721113625112063898084633039865566509632193886000397243778179081807569851026359879222201260603691315011961283852501323055502910052983502251740117754570854569295102448312729142263373120771104498464081209594240949736889948890411907889575282299932235717673304253605265964400851974367371621938855232421929866750945411028338474842932480787575958167276586042743604374333798838077754464595617168436363232427154618629023292035034857308155666257534736085327701788178688255567860078787288773551517657209039915274528399512818538098334611035108688556200661378440659653925757858824365017968608463849261874775822605820292289153960848925204025133163200226702074384379566677754721799880564424701967060995528577096337951437199460687739081334213115147916486522606371229153070315269612533022513492955678189515148109493935734464883938767034597167014286390220828430012902812598826030232343285686890745043185556599868151130968547068682751463939642061418556622682468578032795442862083139412016250865437414340324683305511855144241769780260716248044695940723814045852982530752097768061773182944882867261737141189029130988727097623605335734066146890598495846951103581341818789694410997297309845758785503524930827865527455420130512684637830151717661901285281540369899491120271976645393335487861449256473408721961159819392109138240079575183980769248653934158985266507647604495460731974844266968339481957341785221901869294028458851139382817552255037674720501660640557431075904594166353098482386659638332603373146599273154666255863223905603618597894266957322226455128490339720273177538520295258827505314918855605462120675154044889205921563386418287036012329973098085241375171438873495500018247664276121430314428586239245000155260917251462784626862659418677890476995563838050557571257844717593337171276207253506904343676978723928006355104823334371137068001106832532199633820478002115107762782781518194776680301262590546287129088788916258770279480924813072240963653586595792896404385089789953976755190709157952622669185151633039135896397553069955778897278391652391206533502566093370080705437180355987125295961426216287279866267678859188732824912203446095780432290665856411209510670870545620760141428203500954935267597364593025449888375839794964936045312968941833472499833130048221517641259816182863589970509866771838557069080686484386854596228188232316998233442949794661057463354938549308319134510383693322287612400238632371329223879640687265954478678008367311262584400237916367864015224666407677894026296800653197175870794838261785968510020105125799955476856414198460680791456002511204861511207008741504889678615574930322686098123239305256339599997103477967857466350848193727734860681108155602840242162701106773452653016952295866924894405267161391516944448104398500747377126946292061603603512249956764494437567390755851673633898137716806869081413690640680207086536029105686107375916494429128720180974699074829197585109419987346642707985094275555639502365986563166169360016891308348254397128357831704878203826396957422374241804507533223210969571331521101905051355867361891292993368193502223242250931054989304602599035822244249502544425627824015527062120784651994343877290200490850654091069833807350442343794138796558366895573549143241115100815027862267318715746853325583387182031585361799498680505900218605736651334776847626711138164083218162610467210811736585304454123065960483553664729310148409596538179765066829184649218291130321649541439653152955747292379372182694130199483602313693554223783458536803520685155789772322988118086294407726156284159047068165540683662888903602793522480850151350647216895804955771224997989976192647647543733798184635900546298037981537777165384225747282690933161578639659444937028139586823938135213506405276061690684453722719472790633165406352367567254063570745137970684547484207947159266045142362687196632711557543352340748670199448281181542811238838749892748715841050545726326094064930558250640559033665836526188233945353816765679186412468061353901224794144626190544140052550968758008947189986476216985413012659556938849079152740259377179716453863110499399138489864767459691876498548888044680564799160864967700595384153396010836364887597052504440244063380476695007801556186978875536284341386112629485742727645507999018852504987865376946745515359497440734041343452240713923006019850612264336525968478229029270877760335336604082033439134881784426690676903072030051097194859123259231162217005845828067253763142633769165715996969940299645936049504902788051651404360599842011995065184673008320762405285632139790058278676560143703579028982022197726310060757638780495201184999066870857639746729088398309887560636167946155602061357652556189569111641584026008614987451341763413863762212760835609542115356968043636937130736984947981153475688057742226562580645130186102415724922906813058867559154494180921609453608019980509181025403751970162818164637630884106234926075096380154980044773387700128988551917223470868698901686560915461544722622107526974314246860024354238242127578036971124961021942703214091724581650657799696822534721295398278304613973516974333319857983579543688665017733850776720251153138202858359364618281606422173307587005790994044883455691407375228864433754871328228719148922054044387759161410519161403632500687047535031802706420730781629649218149240085231489449251854488416143251854908410660950296516894337730188108591770003256822588044103481993827427451259623426538199612239493409374522172699943090475700089839011549469966271395993885280493358033192667603993647919182636019080828449531920333675780306172758743458786333495869491255071505051877843799063113947736555936954121644297766968250668221493624745869290854177992953500413079764986002633981896625973174675636387558941583265093940370041346449084675605582336778546177347538921945752329034001140865084127405252545198742799691633845218738396606876003898645872937276789070641807545628073971725298603872890187354647847784482724247159163972386009524947513657390863867809988875507855371740933967015186319856806007197312802044649214914019747777007387267411118447041741252574919685049526850701040062168083132668461020513018893624885251059398313399221413728739989393077807006837614932949771887915195373768607347756277327985234490227803283679115874295812857816931330186806693352652800692900021743161137499767544350331293434702758811098113057165020521225229583173173865921021698149187874316228365078296759775479595103796361280506940593443815756944194102862278587365170769940558343639705133066360774355015220421618957106376464465896015885824769973278103278435522566216169868126200307908464795028882760950824432290200131925320877930708279558639637764306020371700795789507389798662504579361149023475079237720215843905827727260718324590474143997208245466687515494894403646794458842102410065820421529135423894201163481905098056061006239554373431719877356034098498447702001300996420019757697809497802065978571273983180296273660410956789663163476202358113172340604561681200194935468940860038560256611874651181905504760405543995695711626471134586425748485151994438605176041326990333774688457081596925690443764754595306814312390587929010957356498733411710998020474452237278744269559961332339336747012996373253666409162934968087074084320804382513465767551163255048648296079303875095181190978276507312227832443476765003009157369066880684561879628689103349809414789644265116546758949225909215921133846746497339412252834506207657081431354801307316167459143661779536739400420098328895600404746177667799645510710307759411028065449470332535238153288932276703259034249667979771029343140814216125242182935029806327315500001252998589795942293599145957621958172839668905267059763556316213063622106400296849032816402520781475042231147332581273981698068022037927368372297972878547323730550745626675666993999918231037499637537547782852965754569582261838035146648251362596713755806419591060966941282063142881430485291720883825980957425009612466018610395319880599939645252950384732869178825282099014498055126940002613974114370704380758567670716274035415898292064700326369156528535614428468201509175731605802003659000899640591612477397461294691441986299177770547754522327628840260599995822118152542116794380360850464407292344912801990401174172667944128665374376356200319703001000607281473162665652033037597592969808815155915049663447591352892297681373972338664077631287343620980333876197710840393303849420356165374646827755808826639460574293569115658244772403084279839883209704297324890773473183397073962672621093613589404747574143986378464728674109037844866506007182832535660624172424949666608082937163101146223165272093278794249639052887221812347479086335688020332652222033130645536478704567740094737578323295698975282170726121384028930550277353335501955108272487867507151725806447726935192573770081911384565207767749609723201889454409693123390215881339749749424420498699976519497821397761533069031590135590500513379307039073189828312914131169142215776747834162184419741927713450382433288924474185477357992322774932730513280814890937911013712383576366273782830273908504034030853859083942012117694134695820005282581853687427870609365767033737637597905459289311629481186908952110954835945751233607127486060217624346461532825657720340427415866982505733023129218684289093836336092520626282516290404763759883612557884417997984347334458619870618850952853741137250195884327127518380170865099486965824138778471688626847931302832606377577838856961721865583508877683982911317394955121661561283976867583547435205377325206076233874881152604103883283550879334403420939237343241507095877987257669461950813545822039003289547464525768699315003383905868078293463617668705456577214427013569517875535453244747307529656250280464724373152241878821219786569379966025939258604346472339433929227871606326392271431538336855837390891099677879991952615196681004286680580275837770622710924882981446703966566391510488436638762939516277134516650453534496339854378138431973406122630239593048805462240621802310473843559847863244991947378201620015451825658162047256545573692535872896148074516113875329306578185874730319743661675191265252106832957148436427010578327127750731564219487795108633914962365880693956797663132417434847220363585478042701378665992477964581520383303605448638470491739723890639031281362444952366329626373904588547788779266801283092729746168295339579713464604185856536089925896714833653183050160267237880637854942273269017105624552335257736181542036892278668919143745471155523978485418196792213938050008866082794204798703445927181647369382857896638366020347132732285243374013709049204893648960885990088730929850806319911550766856742762346787279431769952316801931835257940175045546191105519778504151341252183965735486929306305217528878732254936327089172093387876691538602407163757800817682704450127098424784902779785920164483119495687228576922437563264905551561037637256644291635476782594987580309171101450007260989730795322086512413012350212117598525921967386046535702589454019051494479106819080677884648001525737450991472354692562484274946360140875945566827461701564820108103207051780184537235300110967566680544008993433630862229931821996063619587757799439653149808917393190583932049967385588208601991360064502870221103483885204951790872927863914515244920510808760989592167631415728571227005404618239175068390211981584776759967119555113324434494417822064199771677249406949507033834403589071162456714302470067034441825125667191560831254074463812746120807979323230459148475210414106979996807023343308672971617482014058121686917874475987429562172643399971860953344925125504429354258422923000590113333630924514815778900322379176730233530250990297679049080742422631312472808812273475349693326376211479238426513046647238538397771817055181030865194878740701543683492652996878229220796023318511647949974628489935331928661548843591052835961819063643297964261238954865906325052286097780770162533395903220321853539526837916690930813093178059953004649630891456429938560929549361052979334835463675841344647946850333769197695820972830372436361631612697047227561334223555206499121680841273509536137056280108210709457767936413561508438515767388005055520105201462611677642386788311066175450179451065810174894984377077931122914204452136504085809603965901169215028011820094835775879347266273761114818734776585208784119211663154750029497537108260505835439754043402110099717989162278781199939215027601881803228385855596257171114968994382179938543567436029612154716235256956671132056435598334947671765145537024067938977563641151463042925310837623066417690235388740594971973180068422692303267368268653605004983189404832211945675353186894733006234805107259925355067882046980719611771216110939181722045227055102109489359355348668169850500854944166698736429897989866277124085555238824897366817907110668032141655568070087029393510575219996798741855919342134817986852163606582406302050759299091880256371639568190895693683278490430490756668831656568361407366337328960588054116628554367944186916983726883884657352009219524957622002154521786546171913315500683158301505624454382475179994342915122090423397343053111044508029344646844132667006580756287412768642299348457340843955001776616281276975379447005667415118891528350020229634282948262387615672789199265183289888541216884407169141401281860916644676786251276416350797585932940976396451692783830475465638014273489481292267870638203987774194511308285970076444571782502610778864515525335578922423768132087637886824397988051680381180966967383062107786428174449742753835321504497194244135073205792608910642194685013480148333129612935628621198955298074993913784580944545652569206481069030219782188642519298413121295486631863696145828073875935829601464848539014527848123291529929203976181952569733540354257772428209013156160055789079724253210065847392312378828464411489436584984283005740182200068819385842435117304087382322270340827644485240421600137910680587329841978686543766183798922671394613745780274908040003919834149652314210914440464440934212756520183606157443658419844551642811837366597499751004144402246487138806097225269339877838179681431899586519944180011186219662028995905631136914784535696909994469660207957133111671048484569804528175431813796269434508259856026603404733565211372401638499636592279739065358910896088460336793961726939087501192660746305029606789310358245454204272396269383600569542581476101906734757129039943620698696583990604591525862085619985536129245457808412500612401185548251656635955548472094234792536014849661061243383582515817104616067668212767206235333316794079147346860578782517996852586216521550515919606704362674564627700580412843318359586874014507986845071059518390230604948466469614862559018666512386164400626063910361382228317340767463367186159504921257296757136543561900749157371012797525570479150568978171508068099292369497391445290428141312174151627659094694657501022943114655084880760007750225320351685345315935626407487383302507649057727556530813536503712723606569171255430249936360276504579407734205001520673629057165313204350836717366512154518811340636651041888113506605452794194124481926097208477931887269558981928557803296495601019719824401537159312823848705375844099497180525664001250993116138916094336540938683492921955471187918889908866933261804847883809588906749362630376701868633958783523405334707818119262544143377026263520747083620861244969608678300950004579994698346273968266463534460899384239121641077082803197516540207226909080619568256721418207287043860901790085322658169264901123221403581832520657984663741217798867347097339782033259920533208712655840668245061939787181299453001791201566611072026619001280360527151706756847260308868027233646581453364097604060005562628913973809600393070585050175803474202943131759048195161796239137968982653171457452172139492996439876326952194559996093747898350037687244842050470111409027738494200940340983325775731977135914279033972430790090396186880618334275010540783201229896747399705957168248961829763299156830869077545823202322807202051613691164033237063327164332934915176367434674741387562559994607266826613844529564226163971320473160386798807949694126836655306079185183226203026417187889089322646422321667764648590169192251091982808538465009924284070839504247879535103780112910745283893396859342715382082432362916043182315062390564274039266492261677434790446127490294079036772814416735616033490731045082038830778132243959768379231039229977157611049399162478296927737390886150075666255540070401000273097250271300133567547626543302271711064818477833161628050883980527172443975937083408445170273775458025739820055468113843690349522007579499706593264751415450921779254497315226561026798536406694340252807273231562101325016318593524115949603152864530563023040778618331755291120968825127188477959300287657818976374792592983951304218724015784393904449029602251818613537194278235862849302502574088739494290272877988260727777614012520543429177348498514985859255715352338693627376149267567211891161006910296245165172576908927660285584915585833658295100635228639155209038304562390194123255925069260817113244935193570655027508286166380455930416844864445365577669738078699788413805148560871338539199912062720392559498786719840556700030670789158891484725092529958899924737862376417178458983481929329173956533043791663605995733237565307272676498456757796579698638040897014482312475318007333027702465943781349179031424066245818152513697247357619044351330560573175742898669824921471366192294648747844675147496924348462365478087345770937185986807684671068051369363229955709917780984681381573086577226438876702961233925104361218287963291803467980650340872211031334120781113692848580666813517250479282209296350906839117470313391241819949990532673826510110817612630590529610587073219253588944359559300655514655119671560664882878112202370757418324267362820006783113351737953399513124971233343558599718315628956788945529359357476929634787791504162867000567491157634677334634692976226006727627429948685753650295285294900632697113901297065258614353536191890838548391858004697889552456287603565315847284921034392097192514490585688380947336384289893946118785677295924710766142070751169723119848946730754903529208949388066356537861114703235915307254709927016438462851942260216651948774027556847073108474981595051231318148771107510012235314211334982673650290666321406309382712744305776017992649708109456196384971741920574790548231560527195256665382084693978722910608110602502024032953292755567692313278631175396648430280996969733077915256792460729740417281652645544715173881333485234154679634135948056199773646051505868694355923499576914829570729059731851412912964802811423615474172264461692104567778872592158514427922944511192001901911084184858409018834861313207375607416071684950389746261455361479045685581846767017115116864591966270329275180382040982551225823580222902698994332003901990984892208511772054470851405704386367935628554217536771603749424909912023854032039888759491870078962996837729327427417508810572170892435760407424940153813385655207664322022541294271028061669311233952291934687357936468007364419998663093099814115936043750063968136013214441056399025482181956184809797765441574088228643579773982180852028253867831438038324053234009111841726028538315818469976390123940163539965715719577850573486221734290621977169258303189269930775433897093836655449726482283177639987842540406231553064892411165317234176207424809881463288707180775369779865961414078070355608675731927439793735241996373898561531347698983435323500275413901358062929330899811687999660437074710934179209480264939466556983827253031226353223454876486757232584713533263552633012785192171719779307967988216154962182330517099460247956320467181897578959151499627105796934632950168998841821731955551819834632242489990186687890480084408033759090760454739714061909487757701526075008871570835263188824182156356562068016515514983346482348773476848121464727460786214806072643917360905673337339097386999961491991853901987979011759408406163863562351378412452112625761593410920142983936784840153827514257885475889605373550219037726048435711413526545706327272292831797037586702834106101577912204540714788929490202906586763354800432518385486272292966298986082383219600609515937397958692806867365957674153895169653915315215837070312521149782816649282419167525118770593065806536143214047911701127214827448463556288532194278921409359679485070118480830360506290614089801718695071748711104461647606655544175945950729577695237304744826507520068764608397670893852122109638544425736901907803529084929334556015570203781594489029465718805906473734998305602516741915922570211869326066109568318360605277513306000301600139243309143797394301093965461602702929919560569158694301115898419179955402265967940311677978514627411013105065591456594941386460832605758287368183369064321182452651746884800860337285712832569204572845174322838005403106969297366362185330353915568651943417214186732405604975490798031135531485643618776341838497229535280161795041065295979707709499117521801461003403089101106687820963577060912467083697934102179662540901109143125174300703237891211326771951360303882444695668049748735370602046728567415008630572804147897754426050931244461662113764344559822125387945627317573231666240355909773739187379673477244428012462436654634747360224694355742007361488944943680434802416746535256293702415373411561108894239708361161461058285484433418473219888775956455121862115287706597178841528588420022721317416057525433365079616314935050411304799828408273438326835036915868825807103548986038357991695565252895930647540612595247839397643287068398819807049563953975691293458630462972970516991316923890107562272015700016237244656476469660771159819671366315575663186986253428495079085788018286264344114823092086692034076964959465991734800743487894504336199765088820357366335228303063301096357355837476164886215985345813383282389386638879263430422190533509871719260688746804435789607036609803695549920241389343579882840125298367416634528172175618887808550395610132268516076615843367551809942347737489405063775497141341694526927018588151203171988514695494091858111858289453967313119630304786191639449661470380125382384617682131373428417860973630257626303222170976308455857100339304263432891768329030954917801960527349015944406265362630658110854998427436913169803865717395076905401464918179869277695151210965220730854658442337073203761650340835396029408244410986054771628653668875975413423206751471674688410196561213559831386069861438340652488058844721241025944102054030897759913907795317477016639263558949068314141328052850463809873666806666147103378098867802144876055353553796619438469574139751728636403893859298647408365630178947479525955339036866402948021464436848280111329729261000973953083757703169462498944290539223050026653942305151395397759850849868487987822484287354828623089537983167151011936094564745058609501019736607170046199282352368259151185315315278086226434659045333712322412485172706766289947954939250585607534904695935082466029955355626614499350990361666557768128522511400134831057514294998423306460753715264252244895726037644435907402189630691924107643420737338200106296701585676805317664214892213713989463753857620564206051477997492579950285178873213808008068728777631763578282538728877150183295088187653496898067224149015968644057754254633197674007228358641946057715209569952394556554653568336416468087584917835556921691896284796415208520469093769507753724414618563926856255262953294132580464459030303832680979286960096817523063743366137245921012337788420928155758194419719797599873060450622513544473672357027205401693924294172606321528156602330564764421232643545055431492049579515460218013357070008694136727023489895876684205108525821832308690289202788063085507741958419902683243383538329219553296449931639287663748515679107894757931410160979528100793749465205694246443545762958738087970246755538632289650951305994453883990118417558231674983788052938209015279778284390894072934972264892903594419876194904545230439425097139558199962801802672634525465257254038401395385578441393050792756478131803692537942399913862792276384424483445829671495529767279603808937220835108321330313874942814331310919447845606301984434896048169278680850722778494193263017546531629279421551686644024210133376731887399650763455822301775549814717707497130499660296088262690849768684773684443659621452221697979433876011552363290950613876457499487695302955418954553918284783439765640535351008759504412490371632384423422038285343374682809787519863005991174474551774395186772859027707441859515142010360757759860392895400605668379382018381192301604868925672127424242056178502920814462367747312116763320553595590293686121508287185253211787586318341422867548396042865281793731171966074099257015141374423749967833101894079919083974065030062173458592654159887079819708877941129195842089263620193802495694637179445546820816568571394208489863203913676660574071426756930968320107326526044901583285697123875087793867901414527714813669163800999178110911619840186119778542087921779412322460067777864515793537968166930581742582097106040139262933314466029122671154718379860655330981253563171203856283904006521110231158407538480531025126209765837464034062796677265265382018960588851476098888758551421961427826774604218635796655689727061176677836884002884507385465058223211886689232462392994995337623974661387366267856607602265912920368079121922952847124231116108221844837290035982037518277019074157627621281716665435269429911890965822020786357309306808108074109201521354671662437045744059192073447412578859731184106070976499331258773991407234105530803935673486701385115233882679493203489937486953870181310970221102519675699042242329688132482384323272855698510738073523432088448736871702063707171548703609574499415886005012585675443674307979560355480114103179546762061737261624004005061429234509866132241847016359218668752894903989474732856570419502533349189114868402939273407970180412463671417752375943201660125701414037787735557950769686324178160646844430242410798898755746131159134842442897456371256304682686928152875041999363569387806661053723161382997071342127238400529481473480730333867092561550555588847676677445336984506698918414068562232376749644293697818469648466999358106646167716578049102420106455668104547425617504988043941617828491784656513636124596103583559577608566957602726159562214345478138538051864460322401655668401452404893692416433641359216080411965876972645806699710315088241413696503216257517079309971314829652431670260166043637956995384097894764855809001998980170204649925231835601421347374880174181049500741953737303468087392578833253219468556368587572764412591143522097173688404901628018200358486973370620228889989363187932407715691754206568968953570542691457660059143827821412750473868995221699379586882255487745629380953690164464028435914414298386013192849020717643615893760013691258746727525722691198074719482996578440463549145250263634399551206093714806789198575633984134016108903202730785597086156867525309946849052703974568394543165100500570305505624915979629653002923098753974629941979297617874214787576177181576180712987871888548139313460443552469745414876696247263365043229005702346850352319599544201992218211367496767097323484056812412078846399951331046996691859044682254934505101169176123396135135464607404054753582378061861057295101687101740002165692053297923212769290863408028689255553769083865022994280563785690770018709545401076837303927673919341723310838640725776578448610879161434947210949959675650041045042107978968356372158919372384979221377334690546024392349663051310442646270064182527063148827407503243882272427149851176882037948950048624589261677959734967397309763977553720273109838085883353654896741750585945348042903088752598628389352772318758055110802033096894025578809623778272777487339181078677293774177755559033456492360615504115146907481824319510494345338846480849278841648033642727829506662389697969423755771178646501825091589184581386155187023749653468098084372425642069006068808279418359181771749864245490020048521548893875337619382329273849047347562693677210162103393224877165196980649002631082001521989941286197474869868758941234336414253002114520378513945993460151274439496840755204739672788679245927751140960476766438186451894976536343591144597920770800246694114333449901958116052480965285661149522666174185740742155677700109099652742929189943169918916491752452899201919835283836262905866793749350429079685896180537630036870497787548928371044412222372042329329221367761468749590221933419380840154389171822826295221281094838366469007921421982088782826696262484719895890658614708031705137699699858111163940351411144538142390879409204729915593902916404602392917267330546695006748082297515350603899988165539424275626259442584208352069471601413399346674498106201641875235657110186650112514208079393817141782356012855712743095975647861906112323491669493236777460946704107125988633384168646548388068541486521850943801552750169642536985267955418878405772908128484300642053267835714328347903110315521456159754803967019937102055497594385202323593445080754903040694174476948306977800165397295671815702786397659394213630020929589536256517898126984119095378488737315268814508924421615992774422365590870533680724973126103125978712993155903065804658336322743922368564571937441182815819387017493556852161590590172000497734584721591760203770416879009274662605167793617029999992877001308884155166369348646683114503462433024888262735327081272202828639316927493839085655878235854585056053109678723278369251268345852419045787670751064888574383619128467832869810973524791863743318294537149207304635873381261671925685654389854237022251804716542658133191668023121756027151917862000787382006684884274624430565300622569642330971433080366691986881628607257394555242962731627079763963275960383508181276237173606253701783588924355508024477905763986173376569163856657561347933537295738702970245253407683120578909835972410181078366872087819759536328596908808553172712997938967702612232188726416954175284254513904434911124889106800364899557069832334968375720237453639215151344702216022401331209598339483947476838433056321065058394953559598454181303247784545352709204315688063559696688149017584411165809562520326646527628297565044270336513604806417607236216318770449495597546130245741901127899169005885464836295234480790012287079844127416346912788924779121955298075756863757576142908368461656463771109171922548784517400780229252351699696202183395879324454109806810445553627310955648694618687254462011806758042735139799354199422672186649031540987019004078391846293695908652188216250745596756374615064520903678245117606796515311988260915088978302258780793054875125374025550515291259426761777379190082008114230834988953771199628681461567565903247455115403904537934567883702321143907904389758793511980788112994928974739579143623738999386788085078491623155774172721196094465138376740690079611956683716080799108572920434060894387062008277366831143002040793441314554732767823798016267588870813773080951543041708095512718965798026068085712871621798899951529245602932024376586517495658198679966108702207686966254998207643468255584341422150814953324026062071992332054919674167394253097431769402457313932040901550316169800473752423923164281078603782854065340263269904225614912100181841085362781449132472584591692936303732944401856128269517439674566659429593200071861637567741483672151712367719799479276156237889199493162555413181980048320709504129112285378412701658354646115476833929183746002939254958367465922275270640591034676216954980878344784625483961652076586305078008928932638117215558045052200342746877853365027012489392964634008452551140543333735141162909963069272268795887250114043608876488020003712593422785307497892323912467275869904059550233839011856017137294567149243824903741156777970484325231991586567699444114139436619416624768897220813048227890982231096654140613667098681792931268952635815447717564187939073030414530441455153034329262395030971042806429711189650807633670374556272498981908166969695795408220112305096948730188163404810322440522559179537168669392456923433009100997773077359788888095711571384615685531313848469980542921351419083393503821381286886601901414869760458172487310760476817643401227439648221649666117394042229301553846403395969591444581555731728985396139279870198052472594849453819357992025624227616074624028420956690852664608981835825295650936162993493897032148368727963065633587180660887712242449121277335460887670024759129792473838430680743879233199323511082420107232203088948987610704678545544722495887875827085789404869407490465357293207959618530815636675010872731734423184326029734029187301392156864567737197905186548612197245639641257790322047205568107863508571213928801154131552330946362835240399026991616535441433278425760920680523749420605182378266432336019613668080842684068913519202197633737999913506925961366172729531920006023538789696638173842015012480918914231484018337644939007472560717662723578824424732279574615852728584726456344302564580718723182924016424882250150140481761030040963608988771151817490317316421319403192781050932959826760992713614358152701523319362004167730183528848508897712671851432160306448155338845271801435388112276392614096901679285172898174286473273675659946465465590432355170200399308692730865547524288153720596643302143996204458214442420792101065747539665928876146180298297267838767753390877369056327438069813821418266188833967787024092854000838093426653140547076984885727454092905646509206266868484382859285535051375099650283561412573811774133147843438961413016480627799600250362011823877158486085186690613076817553911117602986212006590427900709312790448027421734605013665897356518701137576896711782719805281703121206909802253430633959911742441547443168043654504298103572936225122875606972191611885045101841267057265791540005505939179576641325334543650874832818052013942543253331832615151036023698640215439999434963819865191951764295960259896170382813952398965332711540946013095908763351140519191409169563437544974953335497460452217298889984788664047209129357155762577712796226031226185353086885058917114253979701382269100709611049910574825512001992759593147687731566311834834217733118949218456969037657562185225034655102244709273791771248737280845935776448880531948137800006523436999294719867665630916144090877595978611875593741139398434440300173812692028268317489440956445504055869562043503848582716072164892339411524111472584749034956010318312437139282174702180048797430140841719576485205441881456821157490222614859371430385305377318258551943030950269490717255682256337959280310145917972939024340130214525672829290344788525602003361369547395538812011564363833382478423142266175817571457241337511927954351766268306274379924850429839098076409853295290209034931491449106759716146289114544507927743316912815733660901435470646664031763979093955336921496496473922408640449502759592680772519983425086058927663616942347592786232491789954525930799198736309783422218854284472260824215474948640042252837802070302491867293290954777715700020944111645987488967613434742634370762822870908232990655994290046411957056709167089016104027178216351935038850996156617331506989995111014037162387362654311090720392522637641715810692721068109371975828855524677913172246847404641006973991385475014455879854177211819958195292733193388438100023144715430326271524483577923537924306810996895938667330184410221996805957957418096529871770291622819518297716882977302058585925289476123561634257731726100582720515276735254195559995704528734822370597250700430400120911737674829799245865815769143227245209915683883552544622140028689420886149237876783718190876363501515984957779772155870330155205764975935965073733755334489671221786626824724441931409643963824416377156270163201918281035495260610535019083963259676385438591168583577696624510970861201332126356138531670943033978374268638126286527364212707484751729833690859600804099138199054574910541057199839339539303944049214729967874104947924851514996825188964819888283771750883764572195582959923508900695810588815547850271859236021927658749823476437876523441710602272896710980614927147674439666021420750107247974888839279323410408962814900331082192984432824058539668465936728776803981002379943696920965542046741666509821516629089061515868025371382831574831511371685818951901348626656624743807865808765363628015524213306340225828494491370905738814474198204185769508402950537868015621635431977080315057759339839802348697017281699361339485468695370783028555329559901756295903967902619477532601822721361474092450641503676871188499477909644643806439003292715114578067099454698854015366435345803167020127669874737982816277861080361007288542577418945544728155115413027746409676153561459180573155104200294259846707645331609449199892027528139920374086887288743944142572015868392766203131287653984673179682859349095154873391465087962445331846819160591476732853539551744831902755068482583573271832455223246787908603855388419584585014617605454106911166520508986459879964737086671869727084141260280456131948693951606716354628000038434764937672968165800036748525849489818654922791660033714987986053049121692595347919511486173097253423820906005074394684717917984312115338356072605472273778025721232258143204386269720447200286184870806881327992595462846208119231140444742303774149689748679579351942813353838488222988122322712098369252285616901414666248800187018957126530978188083147585862469739107107610592723824522796162836780648916196251357171170275825423365384258208542910873597520737810371015158403285521838776185400890271140901292587697886912398842315743114289532618702835945529788644510068940276734378193679633127415118348761134543121154756176383634948808963358800751209452436806038113780258691584683420663220450236054179710911238147666911551528673876751129710817682731980337332885564322400977310167802672293636216397609872072301691117809897559130541056466975098906293060406803555080977215784575592342389785644637287569617518909288965932718098412227319295910758382397844560016968267843245966150759576547702167241508145626250379752788083378123138387553521270196977236235245915105724965004985137797806699165405233767106495640371401511960294580577727879807896541168100173650915272569776741151026185731414905313590338435073053652016402064300313133120874944718917964256153005275561101856079656442011669719665513222859437892489247239794724190190372876199037022783242914753781255910247614376305450360862667881362092864219770548363219435969268030309803081434638679612406879405396345294689724614305519373201430809136999381544573774679412472739315009988853306758276539570347746515005658324939540290850800544658969685323381591451307023258704411154843228847988718314576615790809947118032912189758425915239894954686647289943404778117354738568353818495264816778213256483578015906275524421234631235522133078971457843741777841473128641579122531199325935766777303688159412019287329153523981241580272111576698104443754469225351190041468419975192403129352347265473429998922803624972383210629646836002752670861095887298034543830998912254594381326793154235378369658030926569050515844947931180006434102328458166915624099323534116266338571528056330113199691036222797172119184020849823243173070787234091883825808535971153681179086311788361314141241078176886836165720211455416698477091860372019931284717714630375417790028668480544711992070964352484893744416367146498553131599188072610490081055520760160664439025962051621471887574281757390298338490941454123787747707805514394786410115449514347100485757719831362858927681630778448463690422465290705422814835832546431714659472484622285755837144844466145003806702559231669746702934426289816860962874001344049869507344880369402791438108269189886922410878180670187100302215787424738811824247746962509610556681969845982356301184062226736456293653491039829060996469911677141407675218575832670156751641896857005299408467972184179937876676063967957943026319469617390867288130393268233489314969118706041352559183537505671244932112153000816360740236125432810210282455922737893482075452801586198028213325627267653477757751417232684322070397490654367540709765159222568455729117978360452505619763072020699735090042500323511630064518268037939440205740001630421905055175577187297452868173462742943400740715902946989929573079936455648547844932761421771556893697332359883248312724749863469965675133242940785624790904134431904532599783617509896873344059518338113964074124252242494839370696912156716230198249857728364715366313450935904099976934944722216480842028202922942633747462600065429418427277888423693242904322041577657458232050572955624469699356113069012825962019909890729970443744183309364563945927681181834649099144158649102124155132898429760863937770864842620187968235471741553015001430644741163470802925809317273198638983283155646640990019317522989474522580414526514006418977464205125993906283254207053250278332947635587717157348911712855228209394376640531087268035035357949651655526905097425568836049934880774930641675435183700282503435311993759308099932122257614332035510675935267666734233580239667861294701387019751753229182553645654905474998899066233520152313788731104737228933446830530560129577154270246549133089310879467944759972225761200322824906354063237473353688199531022120318296441236136121858590375008115339937227502051053702422343948216239983573009491550513955849335735972301498897474133906130314737717080153793199358839610461017551173193087084543001753414592588692580819243258906568192064964450809390814928815130675261975800864290437204464237277153333952897530649848688005338040521364341950976726871291004772269133684988530196230353811878460464577138977595986027419330065090121434662636822455810297597499894507776328564395842593994455419810124878048030438533905390963575659679327610897746439843990109693742051626263940949851028976809232432646595002557048757451283376489325046115054902547937073825975252812628272498663075645294078623047853705260054708836148944927438673405400047577136946982756498220527321076109820952049291418240293135246777391756031361782137867603854980348900923261452684301189515550373900243485380053829685136815811662031607126463305091166593102661729763610875242085460083429932233347111185939052632745752224530915138461551196882020435872863487469560065115297118603426427975615909186799846809236131037650246015448395575814688866979169005454491597773076725383174962612287191822838942776937695714672727147203354144736532950373729637650509401650515191016832544272117192635961505606777994515020403370391041867228335630082172251845671063166187056515326963227953160831814994775245882495912566009168358525968344808504091830274871402384805574515199777129470648799301782346118393687765003459089035088334335395289095061826795050808237081322032882053074415026819977334906200312988115475889251233855208786378874028602448321963417649400393011579506715222796180799386512980963384920729643906104195797471407450512212183916032710970021295993101588591470122779347979369548260431437103985052220921992522765225414400825506685638864078780455907390183354372234071306098899135646181393303623470255196792573477874285966968206576480671424396250757061773193447278574103831412070505244710658400349287566553944556153985733152235955926776530411098994172040049120692432819603993800036766382436753439339876615620632186219306559329614489776296538696099138409613083259381974771277846449817785731710553033030995788217546072517401916773200592749955107132098905597826917145900366964299786048494793152388654396023140730272121008746636848811632148765450720451873696132997579594817980761062944574039487926250652389013271127944038590202971448969512049745627632917325290644932106380993854309319439985387215653600547960187727686521677231511380993244260768691680087797570045493479236649116278666981103294262430142628870740289203787483717756522254110061556836941111013964012212414205984582333777513703970954601709993226660339008169467242613132922691879290407661389447066596745017422589444592005113781142508657007293065331192982764612021707099453346630605222370108506200685928761242088674660240294262075285510354692700480637732722556689621737664451306903499722481591773945123019534034216606974316075797667363627730095919469906149966080890194885815769691509546099724017823197898615256832284312718853560508102959686927384763571494701428802475846378164938096237206952016795137661708061024136242334621950605910822951954433690687044564058284099723311609059374798821171262219983253352213098316307148691333197922813717962788480381159498452807027951360183358633160286824865638329179030584486266914307600823504240862360059589207034696189022569007631038880200804752534235086963543156149959322874620269540525927405009707038294875058716313876742885144311531322018833820943659448455262919023836942511589868713762529753652486285374940600605855655809507572135361735840025593996485569254847715206107324178994687529242642493824476997452350172392719498729646325332873825311525189567879846396923828152824534361503308596545442081505894518703907624943162647572249318768960700150452303955300150958761912226413782801656364882452213578574560972702519556816950060366640209386770169444732978316248141597953863344991670706018426374506554992004009314107455516012389534597698184341414752504271297631930760738194268272701843063394549452269026288408267472742650136911793358314828485536483747646402850160398160495446244580051612202450147359807398949241077222900675702322600126728591838279228827083086074894008564924009521109169855795068642624998075431186159241891735119028915084587951518724534456801828582697118475447431904764715007337703658616629515626160605901284303193818464925133925987527854312252317095736766492324768006566924238669081981401904823664745174932085655233904995011243614054275195796427677084272102941095282127671467411716674321829522913927222280658320125709205722648112923051991819647973335832844441176726454936489065076700696597782224438368110842395593833870281427825357830032484218688674129017305447971979142800967387814448195674202133795173907462944039605041732840911652452293820610559536227097530327877212702837126722179586838821516586477393470107466288112966064683148798498860397552208410580237500224459301253210533965315401940002246886520384822011476240065568130702652876395753712407568727539791899623789257212741557397054981777719229132870712469418005619908503218392789505025855000840462254065521002123287992894515945535210530484206619167360384270480864632419471489870859227840568941936688937347727942559201123457234937357644075511010867570381538877722875502174650482763355230207214289678504063725520996823898214692532808279549744529184544265688510101117575048939259232128976364945799511900908758925657881375124118906034405671355918532416451978114992335968946478617714104947932715865712384638521692097641563505440997343161165919417109489997095587395149755246324519030374945714351714725120267488498433682157597062329179452723533936655663320949397411564136677163063682186453674556935685914505624310997950917613655782628433273107429522696022359711631835973983831092418644197536917222777092747790805758597976857176104935657238452078853690763923433577345334284512178530490144486274858341386541392540391624145240795766164245572742546034400187801358437438525815000176271569855491754144321989976583050100680697729640139834838025338443607879571698049108273910076325714835937209654801546461917681442213027982722415147370203658724324734351252490864489994315975625860446279248913109795898870776860428422849256897846213017025074139955103451069483190309208799389217564035891557072893045655933822218608348649451409741393416175364726091946721108208030295659988865542579708733088458470845145577095575267979003968441380802772251598584719487722715952245741467106560670419009497075749890381943173552167079842153042976392490343727226150343056550973073802529394655016645607978142924131080119901505905033630329180790328805157028401442844960920804001574068198531924941008929666291844227853037712960413053076778742390677657109260310958543165090276776811970198675312637762648088729985173770548144585386325471697555048989111886949854243162479664976284361246628834860876908243487708235251387801095571799280577259142604438635957022991027292199831543950339507505156694575677788411781891987612918628475397862823077247971181570995961981187049377328591664513356789734026204284440833735618259122343846198488212013558122897150583896451898724484671454999213366722316391066366333759805919937333446433257796081815859386407966949131232265766940945202527283842648200031466096050592153444934910829797396898045991938478575122137059833637873195197584200951330792122220933337658326818787707167451928667938181883691671008061515255558394848650705481728544079028586768833874834576980933473470717193822330342956003395080121344381617679853562428036349792360779252065253351790295095752017481673921259989796943387418265447863325280824129944164928015331290160419059490980318100597687269492312879382158249580307252012725125869369671327659549418875582712217181995467040799592249010511994725324053705073502513533110978606813859036299605309679781984525255482227872857087744676675129433883513056197905694706622476483145447824575966175780520230397858890320376237166341201578154180589223192299652558789541553882743962738708446355953833527726571261295666506825439761908383273649886459920501281738369538616019362009876707491040081186612283679773905698712566966342467270264887941283071630695544280619220281208108203109048457892353765309662113924499213990759373993635298692720254647398757038692930309004275789068092107540386837632269738223481533703496802262543821228759522238262237120964208974572298484467152186344627889741189633701386958646796931225383699804045561230030251334574666433532483857872839761781924282982855590769682951158179356037928152052918151479824693746731677023813746749707975536714286734329304820333846450235405384263106195208543224175770359217081604749663848944713643155958049447292481058638892700458429290708303069755858090880243543833193065981351617065840112927990837177455812237557341209582628689979893500465532743281164915888307989960802097647084811268071924170752605067384976382273736748605069734063190484894661548351070826519266958358443972774143625674256710529151592310588129946993448673065862274616720973467560694616772932579668487794562950008349719494768653393508608379893333018731542876752086595643949658146060039166429668440621602716943852276599054891271555579417255305216164500002006610296880765676366982804257719073971694051887212689153434004772579316350414473585916966398229905809533169392689123926415006095070080178481028606379838930233799699479718097976952855924487297963044764132507118205692723873862541478483512488993379245367963993027418888899116749217067795684738068583990463190622559203606496904477528374196650420661041895077556402267596485799326057542062804321259030216276381898840932017260914979663151240520616481859083780164424671082919691083694305101660898408644234154829358925965818746672340050390259102955095123864383780292078335678381920949016464090323281303360840521728338645626801455419866446638680196000851658148109259745471548380297062900806038235749476800610046745170980532623298591900151511099365427294800653004791759844288551488192970341409459711653379347160441405765391054629586842471013854602253170133675074488976831888419919216584009029831603641507563777017732097629222278814602355067224173174531623497174446591409081101753317185642602698573627147552077098443338252710193466213407422209300016116198491520784666093052781442525796600608814539691284866184020637544993700990627416866252462325584539512893034692323436240737666412649063138256715227413116774053370649691614630217719758540428360156655439849418635176934894520618135221477533643447503384013999779063455662060694753512516079972850608586269961487773971896968830677856694041595123241015476660758521144015551018792437938321600182488423622998637541378482830512827742706931608897291503368016416119935365124069840072606312762229653484330742614135203581923547287592350386099153858975830518541192901138714254265500426880861329225248584990984105991379880877562350430697525402969316021761820807602627746589562413507402705478268530674263789599509753964280071925307616314628538202904020977163272650215622332805063048051259642000457131890220206413616960107097428100973599952205784027018688171668774565197479124782830469042511764116954523357360244957683594893345321595769012112208623491411658464630253028527759951885561275883488365645495208160472119353236815241381543332011138125725666367862084540738791729555314248556230620351524927144169752876303310630476422443643737373287387718839326795499122716045515391916541279858838225743906292127753372436969965878519191925013187123996733076015059629088449612873800318590663166832779880811755462963214391873666939120720358535718958582928747176148468816097905191309816185742285947297569223899445529816198067231280978574010510793235808260978013985363043190705068608700724968631493750301441660542985715653508010520364853217641680506332842231573136529057068667868755538627537536504651437292698544345372607531125780304992242607420469738648201697114215866359961287087200059733830198625942891577986249733009473728320610868955182215375223369319669060461690978915747955461556852191024612499631865697244337128885173643981785247307630040206390708588941968409548251827085964749560067112382865805059061587366787595511540068482084762482764995829296009572766554151888538225486254139985609351431151705386824837014136745966539238031846910569265672413202299428532177248342797922443053652217341706204408734120784329970972165892628441027681422689576115748609986924802975645144319654671098171356227671463164390185493035636740081916490083334385751163993636175774700333319789808892001727446240661843424210604712808746687799976963917771980401118625660782982257607432285364837515818611330762958585304170517669777541255281111458838558496736527037940542413724080249726152688533396433014127039186551809047719486167108045581810776764481459475371880290987831301509004083758093527867502536116424208589067934357477818215725172892909656745622652378552252246623021397318177654754920466041984855717099994981739878283294884833906320287594378806606427237432431216234064568940303536463193680182423850952653704910567658558381401249816230577647587140559245837266160807243904952070315106716459282283027736537323184028266057907782565195190651940791741859705159000046396121708376615967374597130850196668854603533758064390979597311785761610696979502042842778257935876915726451604458827572575991760609027832570333090477771144941272051016206308657683971528011184565990814574635089421241461859329176147548809981533772686698640951085892343849839304861998969681312083077305050050444743887259810112973803645887378586923387044515570348437553512476837484217868797169950209600753496848018014529820921825774951205993297523074491295586895353577281979177786999628452350330849893819176136276641628797273200659022567219212266958382063462303082100502028662994550987852576966927184841862711500016528763574307671630061188446224928536136890669796872107605468813655818110491606961865478457924503265948181173329937077094529522029030164539658074166919220839274288573212055966067363223141513782578012086999342070883709764228809335436328347855219623796978507259453732203210554035697889550615216626879556352532271321849311172419774051514299511290103547525703813333510379044846524653441585998254623984097610880320728558820311945122476607540135807481055211098070227727370388091824415181410971372167521118374859274977312108256535113950555083585128992428806608215183216959871485302076640453062331119577774638047251600662220327302283190417701867197289069418076318629606280747977763965294814824627126119752170233781454584561526835524926415655895836393809165253248835761777039866728657866412315496198841191726084157213915474356364666820367528132762450083092934810217284797952601675521408610312215585512140552844864539848996408447690558865352439971529632677683158260446050075396435505090845724706189696421334125870163053020995159442748017100187351260819930851967457685179536573016926605730261637854927095961827621832439923032466267963653368212254103451646471041622229858568075320873740747874821843454018384436850216954235594417042234098839920385362944481708494335862331217457418444713067703342345021265536279310412002047005519382236334483140102734157406642999473576704033297291302130001854938342410902514517340557700205779808854636079047891504659138105070203140183169812235831622321093987532860182547921358670095106934559804021918798290955440812283413820290797079028356941074432235242703375176695948644599966561058896511712131203045377598496332048801099082813080320552040831374039505189146230357279174966052185296219068488406483555390601873939205188312163467020925760718555554238196619311516424491389030624745292418986020652869945998983963204905531479923786052027145596500376804115802782188320320670809742183501281314728810907169586541157782821129255539429545234133888631489715196077559512979907552562950683677706356471127595832885491727503083246584701087307444929424777378007189648589335556701317795717997272975406072678451215888370102458960052958298451557365121522547063713050313100729667951533880443531179556351268669294979128249908394615465349833477798529057171751341799827090749955406160349139341402171767678806522609788529632081581142423498304528818507863265209728354103381164908475518062495695346862543187569080162083990723994135297309654657698161047260033994719918236485598876891495957033922541122608643997143943481936951148202901339587823120874612245056608306952753459997000955881690323285224109073738946264545341183059258121038035120864012662209779118251772243416376098514451746110800685463844135340099447755250756804901432586662846150816530751503283730710639339125294249335178907311806778828933416304550688164488464530690155770570215737294681055976610639702767615612846880633487565598114343651039829394591571614524708951455721554662904072466633806415481441856971643340413482170037326103139957913788139353625029329276868465941669037224838051643672858776618291017915627197654353833980490311746988932125881113901948683807528165432538965993918263346419091247457132718247768300617419272588017322834188819146241509904970106961427187306494821557103706467750427657211260545100215965150950997174180705188861395777344989463307101792947062781618137462203680125143115663291772699041666705612095110412911169874260743977430110524142120683303707186204107890726696166512337801742555084027369166610890154192394624097941017053576876392468767741059327214844160051410853605836019282985752173799208026488691973046252692640100830314030313533187276127949133590102741348203010887633172921974777200149684599660890306223031593432052745871553699256576271557723717024954079388423204796394105058239311060488094735472758730617719767210727263433487274535866157962038071628612482288889258957177705218500767107231102737049719553284945961372688012207966624983279661724529991340301178131801204582526006344532128657494894134516121417778603470841260576250340993417011366460869064135648846657096079906200100132057621228013387022055242105287122501407364854916687151660832541204174708880956592565208636256708120278807982839390621383706292771072696012766604233709392961918830133928942671308116652446811310459024418649975345039461354439845854884809343254227919860905886531543553689537153088014770420684636820490905746338858483566932402001606845793384067682235933084396296207753390407558664502535220018565482872497400058977897080841088208614790516428223438377204554713307566145981653764854384351521186564164121262446099007527782454918266952750689361186181729140284963330196470897094584275723994058427359168869601578735605239103089600447461679057788422259958290727354088494733171020601562071412181888553074293073992582429928419868271167293828559209201875393513966935236034207114354308285507739390650889508670238624051318546873925806846700379265602512498517187373482658931510857439137730949883391392026732167092996178720437608151634228951162951184727012593228135768179963175167691849609666391385105893859129396687462366135403521107828050313776472473407369312975401206323107811057320668460812995318495642257111691308678337477029746110639048974962655761760165992143036084062123151039771493783580460147004963668691295988261551097912885451558753114145896597535840734935551597059772006931930376760874716940958601808218944351502609984915293512365713539491129082201050310622361470560702545444805004161165223029087519945139538953373949924558136548400899340160791938404135291764305533708532199395817809621298582391417035183155711693069479597169630890619473681099394163658357048088533015042066479926818684625753422199526118713700461827113334433692477579952405000611592249067485999040410175055619371199809618897523411980017886134049755594132311379845210016124975830153814804286988144124111149405172733242100495213646928007008204630958386130720887175414311175145419418486691086216689870573732467685596031688154846460198580606321396902132799185877909122084749162976516501900755822050948690981900879403513515482904435582004524152191209693465832511790864641180631847674234238869398124720492954850537432192329994418309908268354224281027102343782879183004657866029294508830648000069581910561826885719053992515871849442030935426869065082215228533576813610322660502999288419660987078852905378351375259529706424084114667435153243987193471092641773874702747450563487817585648499012253638170610924973226049978467847116807909386321792492129452963360679123916255000366749711869847984283067827795042363936361412010190641950282113980410634806915338874361669723774123701743101730104997224265570953970561626531402546404350695975701955972383834642886243760103265311496197673210876431247155879844977187612497136191974147314080982884076664506122749401455116415511433502970734452762325223632221906924905903795462595584320073790588385479839989625944417714264492681760242974440719420875603126607676950212707233263917523043817016939098961259304813427633340003044457931965237365049875691349504279647052762163550507066501303977651991416733700134079752136401481542785581208744371944638671090720606505615870793865457977920684405678391720447133359899998488656768259328005021456584383517309346717404819358529418796044664531717786140472135570362393254732276883571130852472605587744222262697944636689267467313688018309447751536889314394417972879357225851654082002490271957584228445863139926190886080667988624530195374411756245938290959587011767863018788640188797891988220803428371240059996506175882248290570732670402819180624206448747911281168557757825195100012253771383330716085078482915241759566205937165145791561738304022058797140231422190374347668549212996454176791595082687538806831053034172913913457672796814421609603834715700884741572606429609810193327277885324158501732298677622694475306800062324127659139888097664115430956202363831204009716395208111173800105106646019746036624954194211515961257733716891573705056748426009469439867271552326881068240939224606500885452348573590612941277071718363749800068140006906614747503527784213842374364209762014698457365859086157958756905531369706181902207349936046896376777723944188767623683526177214762096325672245177848157443809924952674722959975880385325920827243884782500278687765167731821895572174215986014184389640032142600634765357278072191640821908335986720870514124889046460023707451417077612620894019292332029441210767706825270696441669885175032194239600652556155573203083765039565851804384310263871636003746838546583031589620808000381158460077944631470038696611912512654079434778372600699192139142092786569349751759407757966067697199073464937325897250234350126953511477333739815758345111182788864539741711099765517278731975419181971931363019937842141361297437272595699897049311807104738167317179733469518766417748588386057294999625769664748866771991220307267956857946166818613835497014721206116472290685622580457942149826340539135825534717222319360915200646611888671643187839215380771076992883104078340363407260831262330303097768034778558435820508686589485118553292145245366882779426411134357964984397808247908817251798417261987495235475844927715968099737733962013213283288471341515478393862016066938822095986407171153840927775926023756865564163294929061121873661452861700212464666516595732011915839992689937379444398788744249287378763341940700387262187067284972925758707775497820174215263510059883103526998177269138766820685437101937764370072946403716874694851090176036340844847714072223586242560682706695840953228143540622762787693888279729584271634590642117390534344882056843875342703769479082039494387498566696672009113720985135667854052314133596776272598418752659062816420024442222925946061008437483490113486410055962347990453876790786729518399153567225099582230971685130325044689716083963119512910693755864462614013766733732796810789228715932182049756746635372213305874621938551823486398196838554810699887831231131473003054092620661583798363471829974016175918366545558373429343641339089117284599580225486011561509151587480649220314892045772597679683064696986526412740648407867246763982782814141373015548598825419283011154585618507024873131308320916087294020588318083361067819354547351183798527790631785054128850605841905490990626614185872511699371404575252209165240501258142938486402885617179184138784522445499136037297824672434173297972761171865512160096047142758189308993066539073734526924585051769645249682677028092169346937668880120034735440580071840313391110583373947739239512675371497501781790541444106651271102766708933651300563998326370048350348086801659102337848276540314436590563019441937140239624936537211717409506441507670977679965985177577290116934392852482235635253111851329276886881491159719316385178617124672628196377760582491206909500230142558956067024964939325150840081606331539450641570815320507007582562324049431175379801513968931199400975895930066767316777485453509680516184800917835489520937116276489208665836775072390161909813617848088946165613747863726747443002587059869353756554374422931328443372875241291920107146748989280484698957671986660726132723451483703580459347266095029820067472792547195129123233729809476234449814205073334200977354314311318553422497877432073565925706738516292144377104641789740069353700262825331766421686627105459840654470265954978752905719418111046282850027156024818870964153495886835094177635866506039038125611557261099789668960576805279116152071759349433919531286977896200314290190754192352961177380234006988470097590537008698775012544671168195203508718273006797530038389751977700819807772402167204257300413863651925383642837213501721171701749473216505494058103864738164348002895347018925742540886690597132556897846942568331360840811723401499799870086636138057156559218511746358650580104104949416427988961312107494861881704294235693800139515594783031916298496836750921802343793067624670219725552076141492399282861609543233228381618893439031900672010245673882109696036466317191853417661573469093719509042611748100615152233576787957458669689710902194259906040914002556924592192432427249585314710273817394701326984899866770648595624514003121771357313512195443270943631990828373282369427948274588735585662965215142019762671240625400759368041408305912251681823105393351626670430253672645156840153815249772364090661823822519482867870695005557341288123175517915215328227346410475672962281174869275792742142650540454214303479721781184621390584917791769639442417202789730324560314209235403014190554819819195920628573420710581688207855791428496430076491325326792050016832971571209676967375205666218057684315930581682010075337314139981077815023290036900948298103814508614475097226293264435786673234621458437047398552902652255625480269686978682490961254094554228723197270638057376569543772618842238015477663173076509753323850639851526626017308828630789789930662697759228160588647241722811774863559960927690465098191578752715500320075044611221658845815649119569942521386969208610860074753136766619130792949538519447294176878531019897353055406014085895112263132967666661925239829435856303150775342343874514933961755569997213941732510376105629102818422102514042464785134962369295961189158694282524229123833253210933257474677535837914663855517898281740896133671804985488288577632376923248252310189429794259594415844292120548613993422542687542405541074568804675091040387399886542855260062985583583248167536262915865768977846221126172765181525022372821566806743963651604007733075981164193071823670532766058768533046861226410587151106980816563922940113172170541608920156254239358559076368618691133693073242492360372117204504029776735746076100655048021540114819370941488144755897191344235027269870315192030773504035433465265865720022753148232035310323627095235609951616794318366518188699456016461843337155986584526516709782457806129906613936774378768002230812286901134169693077631078666390765351213608317181522046717247221098100325214942381486095064088422729906257817331760887284842695773508814838589045928270061557427544676277877971678080238516828100904601988533099116890568208182607147832966341283171376477029517467169368418533547249386377941297346086291073143591551893397749492205083920564851378196897636352659721959397051674441889090176369115124621427678630013325478680900934816943282418979181839391144202197869846528194586112007369170150908690225134195556081270892936149704377925949806672352912817909771724537183835951903848667027550635784996596620067026684160250516371320120312422342206270391585057442290618862148581877607548688941520232292332019521385904238260938044807886864280665438715379903901088583265127866431641869735491445505125521916767841633324848611739365893902049521496896109442524138936191517353322073831947401342048387987676248011747630988844606898007664350865151006840288759554926110327469467708412293568788829907404728010464141780167204723671658256059374186488236096805412380757015869259911104441154722549448660838364297818147492304231458863278618899921616489331977730123331642753715502967145405510594690693930447105966163927149020277480812346310175376447630354883779372593870639674651471581954942699438366568477795497511852677066535722647570922812034320025384622263239127983993256285208529915902238184413589397797986292456166474690591645049521337993911071918779487003832995009734310606837253135884074453635941440092739537975015567704609117943188714194939497611601092450107906304292780194617195035177605159652590057759214221962737859922933270321830712916635634170993119412541758724743903045030840500184076254377763673003511876398017754696395849348952092192065355856750040968167568240565823507639792847263895160708001943588089675904661450492814204669876922070384530843806539466320933503770778350266834223065762682735960284928445932059743812065533175344648612881465218717683009142063456029355891646387584904473710818338777944524038107636475590629105865041054377970178381105613410928927711380924921107941147741550417998940082771404159992057351736612148380119907361717914788842465085016751707531642082307754124214349257006871576333357047798115373709217145386734680209631502337574037238231024448539378547356311241680885218517856653083811906001509628104820526836727903972625633135458225867224324014323352291831028709669907468973935642843977299091445002215474425479732568053347342473696362542514485513501612062467031321468791182601909997718936658792010891188312835128813610188727506921322475709051326353593469512430636379311360015124132341229894420074653381601196656144914452731748589555265482937882970781898574631496297503739962359386608753915803858981000564926585181137179266498097712756504863444484428767331286608528203490478753925289060413700954921762233450239956397442634332916430088459621213164804262905159434934640259979147638880460933950860095203301586704914193256040482727926038436466524512839194396005148428659167808123419239415994324934090439960230820357803480693190221159043609068192168169530766300761551409053276748020958644239481666272067155841408895210705156935799299327418994302393644445963427322553193873280130014877910836282288042367551448616728522265082784660551637160585571236896347307342639971403847259735591631600187939912357090186334578176829655167585425506059174614567907600876761050515896615864898843590035050658445149023127469312928179219059694626918307806103773669135969418850819161670927006863965894687000254901604153645217859189741420006663509408265111187762715924443976839852106175076412318673314756401900830276968765222972883859856354874183198174227653077168238796862882720693020475828687802639245377129129209679342584729297189753696883334728619149147867025451827939326128559967166200464085009595460570964197695354405727545183332107769189445047856157728737651468204503621347577022761107521893409216848877630077288549221529793209768508490072753746098302276805441982040184162096117892436310227105309395837150525162914255609939978068435315929143079878481620081502326192282625252529566737634300507121568626609944741549740793581979522335592380554004095274133241418853476413891412478218637203459574353573052484010412843438790386219724193768870079720382149455400225418333187363319630157644276899699755845960012526572716676318271956800152055129798283772742623840482397832085798480274821275081937005124069030718595645597962671160333502285432839568678059805450120988912717810023739067933657852416628485530870290933406885143433675371637067330347526890012175156758086042122740638902279403881862980005734259309261093507034166390090105933507123214578518319052444079486179792280354286026317989574029465296855095862479510544647963130999184500054047804445165332889207704783461945311162461427514307001667356200377012778011548680535738548505452466301180049680056295869354489215570371383827417864016474127799457462340338552664761692029846877125607807366071052120243101808856606814926231607481750106006925762917342255073948332120258662557689708297089343928651934266081747877965477763530531498409210053972107150810578634685287928255975531069286718085356199765815264073038520325245382134081943276966624958647602158643574157808705230534234254024924503818555067656123960935989767581923164662708464431305222647776333786153508402201548387896689729422952428491642585731581757840061512173129036737009611238179898628136925459351095556086318719904461423558188680124493247619952025721597318278420761316475721898732426314201875967260213463703886282798344605689001804027850166938643869760995429048880323005855319517103626233841231456517277929966078464409991984269876967014806521772617242396647539250129841714711702232520334729303275028860316759705496297262309753896557756000656601241437253086107001718413779092490303578781868474369252731954855156955609379204163700844148742590244328861929145372763086875853895198125839437856458110905886173425622293877772259212331392344563780944195239138056900505883080525300812313707148148738478483059724438086760157680522859179536421031552398145872601522454364394932243602815535686899733089140096146338998169966279211770223875215607332042246191998132577174187394141842642792913013151395542759686332515718931999073608811416369308055347317306535002443295783898852558684322120125979163889691871702681701414276960853806670572615669118417214425034995811000226375628324552900654708603571816587141557750986023372523487725399481963028717362094139826413459281485203165359117795466720562654743875340123535234078974247834406118114809906273573215118053656338248263265392324731778838255322091089463730478958938848232402943161513726343765615132863837356221089098547480196485849160200258714887697980458873517623694367460493636521439796890223957107761634015816906584069464343501964187998636499327803868335056097700971298725551436496965533516597152752178256262132507320081353972314426279699442998648237387965219919657478528095334041117357764945581199573121086332671376701209802553239153992497954573221041808861587755916479575832403263601044254815292917275668457890349182284241707520325502630772826310502200544374134086157444379000604862336455626513186529444251008668891297650494769656027331475699666543920879768633873346743859025909541776233678968192371136331272160198897900290883837171346941709790522409706714658294913263372011764039739884663692072777598378301820156407069017178632830566440816831647041768157980519370391560510246080442471010646121033298818331665353743534081739649724138181205266970279423090957074936189106381838186848387809694005889249221615700599844869257901852716459364339676964148287559718738096649338263409327187185113376754244335331076745813480998087678133004238455828714226762649108928166245935183818818470219026506666716966357539996189755132715547098643002591376929988776361930818021616189451351380505241604791379499955054165681623225962699368474796164192188076113450407213956650063732822314456053725661688386040112333852088118448571914045448847333937557346238750907217056635319720028680108963352925883018136989366157294319030398355701182995137625873179114838724977295939062725028017496322404333889315923676484829352696004066810665835343397977625612245283530130257387206159826112709904679928296271429605206776438503848180947624099269434325276266380487405800447641506544335793987488310916835510515248291244167865533269826651977203888401203932461109421964349789665704027257365219602842710275711491162347089083864951829564098221623385400401379779344551544525458995292815290351384191779913884854698528328069058751521070692851670152943917181124644423912272651781603811626841247109861698289997938230077850557872321873076032534276079484622537417346221741902093239300459209139255159707108058736736779565959383075931979265416420205830870638683554545120970819531171300871175171174418789759149825390941024373055018979194402855462115736471712862299810524639760270224614025296515644700695331644492974776013271524130531364192986989556514376959396626061873440962807839021539912532880429562973118548674556538283193686002342074140717158013813697190293089659801462286874190551704366720589693704204906772700285175915363899349938710862473865089274965845540170770540581880832657792235682957267691256894914173825900110616771487001119634996847496947033820570146234533655660765183061308543365213167601427114980024666600141598513599680682297962912784419070970646193548414640626813266564344122822030168043472328268691451158007017048224708558136593970807922225735486605792033114190485721964297395649062850998752624362444946492484581884153793826591296950208956410730795585217456435819246982723383736081568411775783312276601707555138691304301149085632535376753843397557566571514738150145437111074786757268685764207273533716735595046851498733555039797639310169100865249993863137279547129618454737728193418050337219487751651365441872361460881178065238493453495852955923609216975356348295309123319206632904720474781609889163884063233419835152796740965399080786636843151567898879325664748072508804668434897865671595254929570971092733086906280637838371700217059467010258002569692272290268970094539353209063079926472396773564114177590379841222084741007316987994147088768072548391885838358283372561288738857302425539229258574249406862714239621958165966363309348590990944368079081127015632428388497334197601034688468345340729421983687496222646626901887311062428124222093168106893712545781358795183145068988521395787466432926234946603180123995521901758413098306014700354256057327016363041431413709291483322914198127707413248258893295378950798479114244680446533337096567771995270620797118259361204167011575442565777947401777479304770839116693442120103401514352254560094773670215367865818793246928950677811327231421913135175371197360163520599243277419489250748656071484888199652937184237474802890032655141188663658080936691548470969178422939942007762777939483136500840497646591996508746816272794730940645841290076928443670140841383825964170343620987056198497814427785942203899886641769866767006988574965850967143955132752921566165800493067107743124610095170638002976850186658521158795493505786507754811912025808958948186135977672741720300328233588005569840037631478347494986924791019568801183270114279061976045193422792195485424088595207612998583784951570688088503382336547782585508053382737831653542995627937079196186867077531305720907411980624945976788111378737052383300937298516820593507121604445043995010844755186818495528646801123531414465476828959603466021536997893758886873809427794578771223145970849780711237039357374089285954347043610994912449106321403663743990809692659428148160637388702451552991150580874017499791902440252457871171666983018900204520072936235181006744659549999954603817680573310032494956623096505188514003949596870806831258230055350021201902988239332537484056341460302944335533103880382812013981543731104375872326396276491237260289608622501518511964044967491869120189351271213520757334978957222993485281643390422481810786594455362337119598540648210379771581306193602061686138273960131679306128421787598706110439886298446058329923231743935717539656915640788260142070053545870130591915878011950627386672916733729261888450303788628763952368489147215591710739273464641948808480038478139547411200066851809168443081295410878183332436901701176469993528851707009784071075762768546346847000428745529320411303058571574225683429519283008691426458722314496587918801622907320407148235024134523972784268270477630760046613817593743216628865344853687340984253085678702819572804240653153627013571409960522344344705816117886012043259863921733644700782187964312835700069562413398225707635119397631261112751669580974236841997791343211914192088324491664621512784796483913613764944515604484677901403751364278468846372061602568513811310998975462352166306453886228941543139042459877227398179752398696285931565615870211770775341652490988705474569416349053341639346015723868698780860173333900370044228823983548458150452061725902575187848892969936405257236695147021370415344380819167857165418355522013518558994045944037392808839138318751444609237410268221558727571628309823540716282090361230525643113736597679199977426833430599174754857359706460318331068934901968321006502017261926207942097139399206472709479508468765848088380387800092940051216809281939597981138018973203570331228367951177331976689114426836872058333053969319709925407746246678025391601747199533951489357618542347299510947242006838643824695696180870616771872195354881842879617608786896764123236836793245343630870205021863452938029571884018666303759665498348354067325698632139371535415302978596144434713872261638503962606893781421833547526079723024975681595122157342866256734034939189907417312640211378343555469320084866528359226082429709971373529683629205659255279687799742136767940134100121276359759653071520110109236588123887767586024787814702915098165440832699034054329728660809458754924455282829345261597726493191733735436131038991768066617370773648335772882863083073704131984249192990388108432908934286575158766369283501784856296051484351029145403293128512378109983425101806079316632350323588418925910187934232577180620911207904325933512831420885289117597015944724144583864552553511411298153740924043970874085065184985443002740697462037952983842933186528775264249949595213009055514758102891476840222966394467024779632403748946447509712911349884272542010210258407306165174513177407135962798784498927039437922431287997926585398223455820723543071481947500878015967577621182974001521480371622877581512761069549826982122252343621715622223609063622376123623279878617294233204457204581531418060316996712503651883816289207193332791019635800085923959031604065429081740610579234202570359835637747287115105185789660951319241176439436519172341156621912730038832636319444306065918947401715067091086568051605234675102110350478177863993859991015220064311919793176350750205080864284924749360857037632105299162773588552631677606219959604910487326950918558566654046026456392358607995039634283101863061227497005993292663300969514313648772601406604758715415323074483283232928829658197407401494270776171400563756922267680735215595456031842098224364112460106582191658597165508247576258852284993383505481089264487190138823807711007642356548271520553162640640888629706620325213997079582290335082028530736063070240941545784756652648400853540778657256500163514479261367564957863484796667916338735022289074429157499988529579177349357208706989381652218629400797590127322853690787801507505689273926374481559962092038332029453720718215490518163812175760510782538484934238658095464165628455864123359115640182918732480762587715268543144825684389414843516478436486428966126163631041282045613754323022544195260873333122065503738929510506600934089114085294348608881965212835145211118686036161166895209383453884200720587593373015827011101185426949644868281145373659321776102389086688258876257959613967345182618795431167418153097383702754895015307796779795775396529847963251297883645168190075132855334135346366607375055153231904453250294920662061159665072698043862267030322781260730141498876008044963244131467018455873665111806521976185810896790498206211444084002421017210224316930598528287277685762012911609884346916360838511305311574536519527554759587783269660778038789974722065907050255500248483257417292299340884182269197873274889071572894718481958779086231135720979814903573714823931325279624475329990246651306900114366032567879603506606124094809557465244078169368235824422862285265305933538125250603351520002162272607517597488743189455475272510115255772352493154075265049475496163252421127871569508104565199717034216786884009333682515143775485275452294736294479106295089221065282628206946046260386095081663014477183660583159732483240958121210352244288022620394410750812976411426065137315662644380042515223092439448791704546938856717002182729539516825676330945132348071129147969569481252561556896382850702316357081176139544406787179766800011328295657873525126990601306147351418881049417583942044962513357091650137467042136903010169790692884501286449204965947996660629854581372842374463493935558067111919909542167384366698961267893737874963163902400234226330843962903251460363390650380944948664884748257998025824692305624198146415794715498999634343013894522219497947066166549709348133115708571409457284884573384922445348722141044846312743768540324845175120546565913476670627323400435378755039390640028989361346160604091962403104363213203462422954790231075474076053291969725061930217018514120654274116211897809577309534112153500497025664190881206320330076145387744357491234141308996280704948205634650145152669473323755962272533835575390076818706706765748016603562417570583852482519407859666998074046150093479529507604351108752309462240056479477508424398524430676207205941969530005694724931893342424590642882145684381943426634343833816453190204200432649113438029147707984307479255224675309914408344954312371165509301627621191717024638187543861853501760596396535938385589782056700253561505386980274641396346348682341423444706730382597043253093550320734742051890940646608813049200307136317061514351770978260396122786349151207575310683235900064903795545792797046915592775943099114876700143050311453220488868134013189156930227117961760103344136934879113479146880605703975041849623200029809527390703461316141481757932323087756924093022420537793510390743919439441392510224335267955778745839772076245431829028200844284586060864046662756131428103094455258160063429487399513514644355614679917884002466110827291668740368397955626293770440234345741488666151589651244202499070247719550754553202095875900851153745012781022744631322413641236969969449023992427401479642715622488018704865386155350760899018093607346862298273013729379888337365461803298825363666249385515677079338925120156492701685716801371983969890983619862214382358904174533215284598264263748127322784763357844191698827712844860507941843271421313523697956386870503420094345650565706736076747558068075423366881786037695467921105796371940527987038882560876287522669574809447909042034172279313132183952147381246023416066646969834624092330654825230834608983554509604067715641397901571262350177077774445321888471271148247705296580564899409243859108543479476913799617812895023287037938962488881070585821407277905745214028769307846927280405903041676475482641855975123740380293729619262832584428769231236165561651155499907969751705102100388763248524281376230978106779752929689737723549413491593627697282109274141816360408918660396207672518594726847404620695915540687841696270961220170442811137181971362763819639687359082921344152089420786473868895190602454211391028805101330208001325278397103699641043206164898385206946674804947624736443337407901166580575297747026943683512182994324536899187298124007901819698971801055097173338029322295194603335601633066910210760902097406831883291613184209024837487526724572286508021033615396014339665792340659191250985089787407260584977595308396062740311404937906176300141183366728148219496297266557941207185932962082839090199565345098065807337044215061784201873500811246305034946287937856112905478218911061696624558821866982435698209012070569594601478298647924116496302389537036805719304457036958040170258284778911851534717733693267778085864370922480576312747519812560584773636143569269912665871248959350963846909521591505288177904180244506283195692846693306891629742801087332777737688296105306229989401922247856596591043055133148488889252511241831868673140524438778070761543242173740881964289427265835767340314971448174197620461950095722588413466633021567790131330455107956576942132809209302822543889391662701527954766122772477729907839520475291871687822665664920439881248097849391493898582603921559689307688245016959746784997150238657601408138606254801614438197042749369103519525350513456429784447572004962893771188550124959642328019888666522730430684674206202267526054088193747247951566082401522987842668599545189386390771810800418921423150491104756221263088330641376561284123713274661772724398063222364623765083108996930491471338914213747338141201479093565405364607981920317369917164038809872318685266650657671657986591760595324883741006120060639313887127206896473382103441673590224748993393703404858684199788737833331507987925557967486193256884675257203875777543877504457539272434867277212107039210745685637783639597733741451211217216163578919088555371820917503628982407743073858822440736020213600139218706811730753192355120986763835400660065220422116641003107255731478505928513654439764943375229833782814599517713324675014860100380181422664549197056642609253714673186270999835660982572110179657157390920423537251220260405555954749303323849494844873009782938988006998863321605925252340229914716957762384568441613572079187168001520295439822189646703408043320581351566888521325341173000484502118182521605564616725592238656724511262898005644017175981232846099500542297135253307825811064708623853574976197043437978940081937069712111262951030816322571288486866456621350288071473072251114447529043206112190391148958334866721575241549936850483042756978237466664264669200725460874380251347420140879601706102992463541365125131194062042629364091267630604322534492665328645477952055688860285925039011440576422413504075353604481977199675695489212321227712359866838347638564655836483931263111088307577352315937257162992260328865885223986321514553409931046249357966381332634315945200670341462502116832800208322978881622445991035014877517058601421868450690597678780045271323576292568103702964748037605862883182698831741008202881904413556329519103576381150357874039243650138305927477290242171391756439852427034158848187737850243422948177329306140093282012254635784301633490883326698088965191555839001262922170169799684583090911068957056501565512648533170764922879705384218544104934193317472769000043034128380630726781539335597198139816381972124941674973848202903363831506863710052062196113702794213254634251507964327701212418613630051041913160070562767802299484416462440810469842439193707153377766417127798408507106355910999390923481278389219517255711361300824681535759666063275138139717471613585223643729835269298866910620558363203203286865780676168370258424880006608535552599924690273964420217968135869390851591797684823205446822988527729731793812659058640293849642453162675557701399581921544936726626921702798887537688960319291611645145065702042220667547763928570201486071148266331020677990293920360442300739383341039709353981403271638018623406840735681487866079703519663871150918018846843857539442163888687245995976081518417242348478047854103728111052158891698674251373338403132551827538161797214565438248176959705593524326846041564530467755439123038174204473923661932981381556865649668905600207351233724621520989841777528354300115633260348877235472012617270747195589891276821518310162174680563536231264308554244185422699321235755509006525039786567549964494803125122157476048126699318854860968905689985254025091862334655943963403264263103170880283044906346969653538287142584730607450290628760765247042981387597815206024001829411437821511930475708225393278026195030033223351643732265942189680251571905083843919429354038553011645018506563322632505382486692967489826537107242251385143219762310314232451842967036536774434202417785656511586583040310703174849394850023234008067793691070762981836466953511707890448546400162354137181836399618594945834237710631394661608568911422374881300269205640708752740551759492569317296315542169043386965105867258361258603682790656198084472106037465634945632711623735531707194973175843815957222555969743821832509685990986166323059064837066988122026718699502901160853732798762920243496435222730968541743628980438204603796075657156413967168848023930057038588248112427256800659613575702927667125928621579344648738045431825563881292850660041062910529286232811939138299159654377744406246918163286298136605675213102400574812613462967206611037797608320543813201655282861826926794845906454340985673663172152902708651666285440606772991597637076187641535131575304204536834542992781884743112854779713349909766075076497786895380352975280613235417111226699885774606589741238422624557295265868897188075052906099846155456175265026814975536263417035458492358386303005865994956541465653431380311167441468013440924118154223590503892755621903092808701146313020823373406472298121907537798853641710592349009529097411267801101185945791786362414197380280012434315194240127813953575567065969087242690527963195120396829075693950119431869625199957525881436095320188364095514099727722861175968236152854908293874355103815295473965993069980120819885649044444311042974463299532500704339891837944092400665798570805000049404383362979536488610511913530621621105775199894055334333394467993489343402782595181947644608529692334074141106991517536433277649247257399984978095996776427441410598631094004102928505461081474063745786215203748167984024915181660818598274399713975378392357929847535897426209830469986105302273405209484973282670474776508639083632948060722440107600319545034288465643738367828558432047807308068203547357150504082964529533771540511463136444420863267182893316836851268994064953493108101299720963556056601612909925947768227719732142254197954765121187386370867991038956476933694365065255808048968435404100601235332057617267433579621308454612482588283121502404963535577083083918981007490530189632216097364522926940382151349783798213725774814847339927219277924343725879102448891147710340784001612368122106667802097728948612661055077354448902930551656019577941951447510056078297319580682678003634810427808496554198597474903148403246604929876674674916517991185779074259257395567460713844723092120646040001685878643419902494922272302886205714272415025589441837955994344543863091350576240082580000059821121777612821319735352016515723352490827942320279664920316579847622471510905578646543993167035596491493076928606266006324397634746400065930606304071988703518133914783253603841364723786240617700536704862480884416778161288498839808164445019562301871167846659522997014624170284624022572701849864943712704524688512502766754434714406003807589434413533427985178720989962451760891797822850162392048998008436484997537205597782307853412030114294809643508237089106206627236714233199972481763266487535825217620780440481839675941253705028213855472081077909756347420529748975578838031479887299262366654185350000075828396391153849180877821982637735387627007049073224918727229654396118017219179189666104868661547386086420573351766868355883614506877223303133503060028962540398186632883145828835104997262982811119718631191137382928421061536146116922703512857961125639768514595404177357028978453490460225327168792693764252844497386357178628087121735416749466073719351794290391834090213323913095820327650082603651128938477124169095284066967116028819715537928905592336179397626194829268496228174649906131766921002387912518135262128004213235967701353316556845616455557771094747224784188297467170150679822036425710500828750440479447072440352651080464998460664084432652552911449913086305634271977424871611027058280610068325386882729107063962567342588380774752715625483049475668316268021841270444511651540685559847785498811149190267887876989909183658091908195314895986660036651127343357404589028343394432218631410428721148231455356331947907291770766635354812200196860673697589892741687989119659512267694592747131563597002712680039164719635964032053740656776804545228791531920063996906798691208882803584603508042475098706740299725480945078255033112413704342441212987964741618120365791507578131835338034772951179835090913476297297111181135161222269635986523109884460133322968824299135747710166712928746843332701380157672239669215150506566846732959233997098156317362560849236282686353687923866067823113755545444901483435357049403014682505999364425213199619448159105123363258660099790067012165673383477278767056285669612283734288866726392926584670083467770202636086832490601243357805509030038588200314552372154736292233877947164760523381101707260579096616139621099650963984723295663391051451292746553420642769102609460929378882056382488057292245116722655903109525005685003529956373587255127544189117890278118482693584554457115821219510989347530354432298916498939928714671437593614356110484157049822143984287346574424483864856168021639625937971385978756697738719231586227166696820362196673875081708780925542014331631250145741717506860556019939678012072837327853270803730206973016510559728125753127986897103764786903736753077835525412444096783700586256279461160484885179798449118444359134841255106829908771859324761389588619669990374686304784111749549863352165924846547028129794053274295861907228139465419928096342757395205801603677285112142802638701969838014663117526172217522161745519071214522642903331804198545851477642927290118955690846377045559834640107373535009391210249939023685383615217798933980045988399360578887219359321927940071216461874475724189199104263647682053294091655025758048316877433752776556993810429647257378097521221843896630197700106769537262137246232588044274304044551421390804385635636285546707126022474181073607604687606520473502077152541297179504807290308889346388912164455677624780357550985007064395017387268559029952277428514692533423356359431774135184348660939746472253361803626102433481548136430730667550302214685188176874452538486198474421991878462542762940122064017148341959851927275877787253471825712268007510918040852682083239620738378193831068510715820722858094335540152307424187950967964856780896588886666881786053839068087292893538780494199387199144471528930646031872217006358755236070335860279842473569823319886223431050929327541331628719516123747905273394217699234298528884107388571378808895322406895654652787396629289438839348371506117812333591916789411353468586976852361855408223223145080711169128146235855280932307123035970056398733605403822012767577600727223685384564960873745175536156757548473717074441774982614044667529580281991566776583073900455485875800845312382843173208013403836454435283701747653247307477400982682677471930034751253141506934010373374325395271122357632668657560241346787152914771252798269169212381089297902343973527905825810160936588662508294855443393745350551440768000242632706299173637008454964253678318413928003414855440344957814928405360775528089578181146850010277205744656771056629657833733408865785692274207629030113946529620351481533060635282213827074696996389890647912957256771756779349218128485026953276514811432424544767293951653627889022881653744601714829593959564321304970978770948443968985398696373051401458728377742959807840830592345954856085007667642835941089250297121600434061358347008382422529180482154151926336567385725938560469204099438801739635932645594738082576742444338090297162474263583463562353098823985680754765567204993525054131883686078269291883286807904561269689929479094824273296574293388126725440583882173165436503295492371374600535960092297037481829854390539905048014733208589904451485894258917123114936525601585389621222726734656835672174094117893961202382983930881014165415759721997444745895193572957651387042205290606058951911567322120530864016160562709801576239620519209396555943916296804327302222713838560694712925920548072328976387009419547669628277400604463038892372545214783207403768355803061447930060364085664993227230655277997132216123956113411366503526874722389004459181884505138322648145407598245381451909812227339068022741853303469402141737071640789157347254998193852381638045780567106664695846608685404242259426868713679512448771035529611250129571246511324912070325066699911713803820495409943583766095145586958877114034294632854300475480714612320971759655681765513986313173986300466761692294086118473508916470063274287209009273400323214955539711345231885909742408917704781619311727872036978652645929937171726936714122205712728100250653420411270784814349553094097162073542146378908355146149623795996131974794567249435400189698317574511633587007142814792796039293086087773552987023447532638692923235888119112392477007549424577089441792969190229138276476140696866238946208208701012595835732204705562111467454609102187448137049060216760287749933362007625512165904381095186157280244130749663105874496819471312862669124696042378181272622813329455432875726972875443145456810972311092158837005132856886032095885554477524599435481199852597829383887626925862846620411863999594477161379429957611207979627258111385787785732951645768617729865833449206711784980835937454097539245726484774745280077402029236621239686823778364228152087970520671767488354658300381238820277109729755088821142233444432907653559531208472056544565132103293529742977463377345280843355216530655385170081369896289490433983718105859427062664037155535098330498366439379077754196511720418482769378397746112908145493745088599844174800114888390049702809698662000108330235978946156809237083908993572745198819712297646306956342430935407361556324137413933983295483915514337622481772043449239841354217776529011985843473873244883387448581323013992197955657533195887407622369882537854647555863562491420231858367673270656438271174999317868004264255323821214730092298228712132271011175183698573239330016732974848514146643236635383591156352043716658331825379958924825765703359399732467953751479576715961075897371525631410431476161168749475201615752647722217498996320322453665898160090963323462752622835970110732666713185080884338788785598712353049459043445180431508390529992494428976329069526216626386153593045857078209301460723559459025979260745536283327679378409706239658957175843243717390103044110245852810560852858486138614097162087166262266338291752177480571221253656580798822386707944054219657493612454900875232692341153921208953196600673146692182002880874064898893852978708428519699446162740072003351076918849193820619324520432903944218584471771421112034624055416323143986157571642163865961747245096217921169677366822611579636867326711407161766182568102220841791286339558874448250707799038613540571654574994679967528155560576989947875549960633949238511774995507246595958183713770968604604550328585737662046354981444887444871148833966455542490125003339024895070848521672962649019349619924190868193265844972409067232737944699233300340561819027015950924326306994538958735990771398399488633307497032624280820994788954483641276317184760379664317873776158457923228304298152968825039360812276087809063176321432913898444537940890319869476015211330609844412180065084110973122705124704450622776366748447261911843574589174193847403509968429723548652507299616980430014319007023764076618882842221068578456285467885446310421070112362360830779691665749311354450836395469711381979326848195918524017124229356181829545727681518476014262139540280432778055191930287904673322013208800565253133445775115336635646430871841999048443213465239304422230864625240654182852952784194638351918295229644336738281201651985567259019177022991433548311937571048893707244142916307643303977666456232735258616797192033495087148061046856365869919569530982990878365279616434886152180905742139450903772584657666590880310283671616464460204662091515521020930696925483924799867830635119008520655282479650317797738042471894872107165776140388167321833465364130447958714266737170293439319976041031623659121083339272216129973938843082285698239702022579262811213752536274318792787962433246839020438566836616307506160446695211070144608520659286868627710907515886647202134979690555179884634095001240082390586507914826147299610957409477452664186667715495108698061669352876167697665888719562723705807208203474589047247886286420318121173138291316554138364026254346307623265157591622065384592318839000999929375781539466308859676553813610813800964835070195847163322074383192919693323638211893677153081001579124301485706366968462225027549781335419526552013781044046890544579331799912294932202251824335958435236210818401083051490865299630259499730292347846142130320016584496130732724836308103495220793010946426318916150838943051475284762367543607570784720593617040563611617537915834188237933956675193069758626899185201508778213301534016866866230874243227782667530701099091526043541301015102735661555422097745192050063484278694285941742043570070499495883573529223679406438289900228631822127854641337473053297138366368776820297138161597599456372806559424825646690803750278062171853815644394111243833373229349220984415383692619136129846318448389574884028288007082058817576038686350646152627692507394921453063021330331048656920800638261097003678375476308179988650855560203134719676749963862186247691923565476890279611085357764325757346195837487447637917165313829843545732467430324357482504446953220750597923535556898901493387546839494428236335951789760497549457323812347952629291308014402217171625083870224850136733895270226924868178540136770260618300764693869949870293969711082974403423803001441839145861280590201906119110691431540355089363077044198250847737805628761757061809110212867287943059813124098016201020037108666683789686650383436148045280433018807654644653999428286943227429989863712257559958197268055264213748083004291345836995712275039073242269577833651808439395558997783443536360041621025573209415445926364961523806053309936053741160571310401952974852249537664145549031004151007144246835048392994025247844189637646943108796849309196572773887731668882484311175631309545616547936757769031916155945827512246132252387676558867356891774850136036308173895808390882861885700870936827340017871355011367260945907867969001144674189823723546528264219603271356998280123986401861265672567661967204484805441621014598947727756245842778560944255015349932675185418556576976292785243817672784787899082530870624206620659430089436595318777448310915010950062563224519353872072182333908886534975567824232611011044797886197520436564775367565302661645190588028209232434902490428438774925913389502150081222282234451622838142321354830013258769314241007742832490019045801189450095207187695137045881692222391357663095347770361004332450783457269497152654571821283812702032790698163818009798092413737782760168607355745973278326110791874377039242501140680508714325461903672433812804266163777471017659443790048662122534029563393660819283177917645472949617032200897698674594956606590734340330156040987278461917422184603146114416393963179283079132149082211417139003103235728010220696529404260640852032281578857844804340712333863827702785138352197527102094731529625783208243102788981435914228107694485255391483207181095054845600351095608168240343613248976814897578219399770552529748335644856595084543450508735623185581527398245634942415329923366990047758487193320413560311174903899299185325234177844343808815190427823450130385836355548165496318323288636778403305342150728749519258178485966931642786247118683455257435874309697694380892701757745395131624053273001087081101796019919312301341692136439268930362109556444326517761291590777519947149645357753995482038983908584119263717213407818326944227205669050716829139393732340109596240636060093936117416840103738415425249762489757992854524366782623138641241243467283291203252887143087278461528179260892082333133337692199084149931151503222714441691996508471699768846677830479654030532922684115598380170741389499747617848487940295199957613573679237049246193669475049145102904830631306727821288975015576685224698094425618309475437823954548682199234629549978674234094088490754544313267431462825416727053673599960590513908921681916641416758119823767532775667083987682303542865243514124961948001579021613876555471243457591427581316703887997562414095143008855525435098742075314013481171186859600264129145630860303194806897807063862422713168907909573840281561732016060563266124730367442207458613569376070616595355904088597118079851207999362891044967576943643841915204818695242987336482591614329406003559133249853247626552462638440140262135676550333981363954154464833525601405455242763150108956939670124834878339271820473374863506755740996458264585694023438046085609946023997966943327270392090184583241922317618029038323894198455974555643208638868815512627050235400582429436631209151458291909062499162513153812436181829151980532246653542287234787446150021275176761304594121841685907962857922867892668234078901755025562038258215996083873717095811483984035803225404760921488431069078846705827079765344082261815564657598675370080377652085194871294822712992098054955398084887935614623578830165732120233627857031538880245210329007630316959698667055990067749318425816661604000560924408774223022683398809500178732816947873027975342795151877881218522298323043426996043554897371440198241719562120395865097023989903138779061373510054236266322926601026936940426005258605260750819083240980596760086653496110265518135228982644113637415952614811446427454695689551668380132185037283059644656084456697562961731851724684812902046763419321526246402281516320419477730411327800311881716857193799866380613872031578687216387978131102128561871487174043855145036343894087007665432447405733856393718419901025776063303107667287510284839879093416509762464194939426380828340465762041473025553810709929568323138969033746121031733063356432177941327198147783469400740488573795279344591225447755472329719133639353675595155458516474861341551393591363722329841296016522648781859191096081532902610562941369784780528341119781014336123589954030756170086762057751193255095484707423837957348276147531477183561526791443849369151933219910141956258333066612395244676118065345945135977161183429302697660521805966218767218704680985466992855257569875021412478194852735586553072010297097775520626580140018492895036015259015976230941005130084833927009426719288518467819810344518171003879266353581883971050956779214126043716318569201230733163052238046315235035369492712742269884154448931919730997864882255264269598158779911187796329516444090278132822234810678425040915811430047991232229426113163873597674182452760061905284263802807901655074505562248117520458207601487018177140747894846266915669302328794056496814050171894879860523737650476233707497173585387790252369859086121394610835533837731239153798211107526233767247948376880057552887473921432786502738505739607624384557002994542391132876214176081605640793028268418007556121368452107695763855022985915517995259635455290108134339388791691650151879447265404568618666574531107019899633943154199100930137054105061806274889876157374136763421016435628353760885717933341620328180882081440343421029523889226711422446116971494078461322162572667059462673701638777629369060073728340502242789988348995462686463190987783816258741099550060359420664812754619838773730746634804331859501546559053798198885297992533456077232933879688539053577380972410703225576003805522347375136184755306741911091531252556061631268892782497536138421930698926478788264211485442437929789842612709025333614335872568494158811170467022988914519737645995877715245962290539941784875327602742870075833032908985512613096289255542368198339508141347030770672684507256325302566432577235869210749280357745133216623021526544098499510963853769088411531865075447341565078380253708579341262840062010264952345666684337763163827238429604207962326854747673451627841195010587657151009041759046869245966361818090804701340062953402559412559581673597940688623222491892712525000465224551003973145351625542261553394813236732946048439427828563263465164848362740086936146689229007869883917856157552167422714595470562406161796680696523942057314582819877251556924015916094195354407621807785207233395529036448490652213152383151592010696555751930982431424514676048405456435380539977441561785371979253298575251679999044367986744346826750983669698225023243214960493500058200744565890616136256619265869212954361293386619781851313221156174727957996078642503770277000209691092255500710413810364891546037807832367438757227250772231122749493102079875938640810059546294151018671464969778884333678516146072127128467922902716988294970565519099481309556257008010495320741910208732050823946759328030610836642509688778286122416116752137532496474258194091161780951422635245446299734040146062929067142712078874293552192645244568419760524867075605143680335815768645361367451854062059199582994308783512680475580176734631797106786601847197559945788361396013322873155069230290379548077559735208437858125076306773785182773927433970178056395747312780351947182669885192342441787362157097551747686404680767345222225897096809344065126201190606198968489039724529844670573874407500501311859776903474424196417912818980734969536941536581332969195895982433884419224476600312085989537346134536537926990966077330355372318579403843128282668697557494227087444789206524189790924150748653378224122568180561913732570802877566071904361700745833591758001634707407974648993423992113273366287351237257511253878474399256312151311185924599363244304327468793541861858045229228569813122713682674264729338115430525851579351308111591824360964627578311023289657191750468798911986901567481161252040084289126178269627830641372767587991447440242789899194329023549861328312194099544129562258410850201594040414965695869168819412667879784436528417299672010533932785210360005178573245262020195139263220774177350491448934406182533780074654380684593904621775635020614831837699612776411237765376523147202305037842877626575093395316421517614405787015936155206839714560996289613760816224370064414899530895874661815875573532497789110315821862308135894613714341635789228871718885638336574976628558955432033726053921615536506651804317977056674821232014803117187037926853574229840569490324575362650027188610644725028062970388586728009980248090010622116210702309551888171712553585026025277311280018245298873168357828802269304890405588284060527226748145150267552483265491577717323661143857464224164928823193373256826113823718619691831368796930733651800827204827654009472624591303130247390764354103031742480462377912839277340958446594504111053015670347829869781898395399425330014416705985305755561229614467437476757491307183473915343996693434117909500139400015052934060606460641743798270779418133198507108859523140593326894380325260521714309029976647785623939760143664394898495729008357766998279444360105573184448446563979839468691613159621089968250884656818284548829715832224103918445573364259758797339101253645333004316348940823687657423887915469710672306450583501081434896004931249807116063521905172952044228957016609091560402083013961369568299378382793720787971811053532252778986693275401499663282092844452481049089900305232099941259186093661363140571756469009924799267891988079550253572516196735165494874543343871136772592596027814339611962669753559114154104668229071416616222422202267096649094456974948773025271886248411875880999555879981116882571103601610353235987843714329928598717951323044075072659365906133781972761643165380791129775756695300446472449041625740289378517713294551521092362279052510576535955055957894059439707557309828139872255932917939637916145202140427958739757851964853612964588733210683072413447344025136832041964269177444623333186249265182080321632385301045172832029371719635687741546098515659417834386971202737638510544147638809190149999180245114241897232866209030778550604764875262739045181113232964077899244104014147794835815558522165227044971139010439123816421797089195740991333274699225912503709786962888570214813171244639098622704372288826358305748200279639128408388271770335819178198128633262742111305031496137955166563402034671093692272028218681173634310523721012142242723264114943490347476294087040512384544789647536979250484394584258840816809743698613357242547475209287786162638458476258560311979760672763605650130229764473203338391227643191851710820738441989870474704958884923009236661566627738274567455595195651936861599172727794196795881751347240305358315084012182979694588715577912834305025362017160009335216052097904291592882731490340615298664062200840652739575776530435258182332845338148721568101593288204920667047403077391130536814042824191802540711288700795801042767667506175747070668459130830788703887553713841228999262557765085989132936389640904195303859982719718358556182387662916661422799834224586087149728054311680089833702177084543353599068904894419991137442036388369984605949901477175894330869588188866157025074257806331701978843549139261843987398357022029698125243229712485885202167639475230319353910073716758965310124076124429892427015874390534800599536039812046598035476121011940740252056123282183933047823540693732595615819344736525691971286196643936980874730219854723806710005712181208454052230538146835876059461439976061137406405996763200396935884862186956090008409440620575239066541108617019527439306428891576971714821746585182791647603639686448816479929676555103688560056454563430938184222321732954395494330067865269366845256510665536369186945851077037293813619674643765118768097423578598745083345684682540795895331086392158954941789818633446955098917294980308261801501913720718938686156747782129050164004087104463793589870988970162678589247778158486621118398288947426498481835267958458148888029467078822422935844092315400482632433077047460313122890072675023522411643318576299978027036258319976549729596499939884750571506129648424634358835053551348095057962616081485408044514502713768265238943599666460758584311646145629556823218840869812624833897671395970063001751023996791604851350922973762748702469483908264396938804284446386265192587078400490297257026711987558406082410710675377291147578299464883919980242894140256834073978188000876401221739226242603744166883482170997601576228421915189679128407996195494085251512477073424205373622150608362965308063288659931362554676356232252941957479394905036423740859607011510189735556067024011164303693700501061393361118696125765558162390542991980362290825409347157444390771496960775902736403597855971659743499495656518055733257164782876163148501672597798597747231397731044335073909149222886688835775201109679936238955424128633425148231260442673250547878027231849183832763424231331262074166726520483113677704440133271492830930425443540368671252181561559417546308445455341879857733536903948731815729754111969912921710881998350929377485719120975655557847525670936281778498067718360296197542019798779979878219809495705154891301544631766228777458874212711306496239843840621215729662414249946648286723005992784198736371946541585759415190609332205781796931701772197582078911596726945669868446830063011235299627335457390916621047099080220802424047963161974900545161190254451911489790792131770609538700473650838859911141614725974549967745107398040174161710869609975080064756192873767975165265764287419380408463283219467064989338610500134683036915510136225549819921823601245941304190813277869624483830405234396188835620804414899365574282229375573172789553946134669832251453296752548235032285655071108688205047793620618542900805210148166489137493941621610810959366916141172847067447117108581132970120619019453990381194113529329043372613955234069315512886839427338746109390735420749205363474807247685694038636411029458099643187510325712597848802249268592901753725037527394857468232664520437445398586987448133959329085010222952746758366626234341648041248758064864352568870682556040591163968327100720550238573374392588917419874839501362445352581347810089631916197745924751887577639492894810834385184490361953834080747798619363477131414289226923252153536792138830405391793115268024256732788330459638982091754031245366728465822166126108650575013908450095534829374619752080421821412443026365740251365438047068558227199347372099418608347063479584720705185149887974386077459454831673645966163703326768078146976936340771386617931950089105955768780616120586745061856025642727630944328583335512258074959379702941062995628054605899006758553899727300066805308549046674040682926175807806732636605255264842712585850862304936257350304035675769724437034491347479486297939860830151674800152351727300408302245721789912232202799134539165333934145233327416299491000078441779499651365613122173327034241433303518082125585829242732459862977683522932649765042591202733714857581694186499212047219676279792021386748077334493779697406792099783433364692722428783224750711528557772096980670432339036897444292054272065372945940915993570348423889339835221123838423707745506563711730792268137423813863453790414058914110407898211515588497072308919003036902387065699819709808029309166952145791392332318222988252962107816040235727148166733140655504171024891728009164457761422737165666852304844470936527213726923193837516683054544540171600835529234657630982477401950684605736326397090132598083955768066978507304769203455415717548859728105821513373349881056354510825502271073596930267638719419407319415682917897441776779252030427023695030277691231230892980195112982984021924798739926052988409356400112400588920674916471892867718186100333333448514318380687604226395040458213212098304538226604472486616737170089723609182235444672347940269523299240260127163663179689764618248350380147360182806152340952356916235053343019002458543974675854470803549398296186416992988167299500448716626332100937537036147336133515830658743290596867505165131049730323639604432239012792549904819396647626172206692822988833656205575155726376280128299508596780666086760923277603376253455267598162211861234442173701372429936588847917193254284007437797778938511204012834821291835122225888528545886260754812650569425339987877899629554203998466767914092707723397910276266060635123227410163123813384846189187470891603907350840963070235341114362924665556495764783975688271992100117765492770008688224814404559294118863419315674614727846475360700987627016804441530991734860219592168033290368445381297374289217584292183321701364401651590898479875808554307156419155869645677230908452479076027261046185166604697437901466031724543502957100524460013266979923217360079921592567836693197630866514954329990163677498991242609393916273616810066879945798198314299488025525422373421187318597618007827351499348207705787611059956927228782686360757695603020114028234060778248619869388824436402200316752884031699375109586190036280136283167822787916123196496710572412578957920408140889915813026415169563226151128319510965877285506605597502521828615788159692648891415741852003560216551636835394203632309985705017282928406405676444564064042295948310288065969463827411852240684771772702970373005528131430543616992349774664833329293082308924214523784091923142218234533356551047807324258730483316660978733812436849139302028562925307180063362130506047085089591253713807080369461710631921386390386548052421822628152651572368321103101229917118338530167530689631098959902615692510368238335976014025054334537897533391874477022658766471149058591049446639974155753732867348721656430118976104927423844231613330989370662858905227342923899538490591284258988830121303364263993509808660097636341412428391811362196898539219013174328248874083221859124863668643109868609802601104931757040799145891702252451472259023640063702432770957128694128194923320184201083978998112435283025479257964001952000092568812384457744876229722479385989403620805935585372279513285677382901028429248821065350296050768446912870282648537685052889249872506746135443521215175419602109127793012924463075951286619049654581831084500335226431583226691270369896216334804141136705575821473396678794167325776511072624529514399338070029255280281331565340912250506379423902378476477200741731958366177923540482649120169576678576585173902191598577209362012632706995049776056455587931416965727373659367890709233147957652675300690309648481035484415722256135568362060120204655729336609479286996665271639856451878185571263009930291027771569634355020956157539388604582681682171774353554710715596077338703310346907189629710798313717827277660269752006373368666699939965032463617555014101408146595685100697990317557868698728594132802350449291009605585822389504165446381871784032529879757492217440532552910662687713445174282973790707514090073920238395044792161872359445921799288334105981296099136978818903976129624127149861979419123580499661242967036496552497587592425839535570099638640259143997046360943999751310668134908305362680810133236230440052582787352874313164823465487661488904885101945808038121084725642744463918853317721767969071659779672769795636382708453630254666085657861010199770552548373868148395578311152362960466905415321022940976174101103736359489532955146641601684761819149406158728027510562414344562721556695389908649211914251682657573319056770965530360238046847737368605470295652674637538226361447584738435529544507473952393814465051195126286023274584949062296852856386866845274247879937419336982110848724099786300086812773923901465394825770480326516032445986098604147393166247839394919452253319109717794179780082785906689965767475136051821059290331751420816496393131407004855434776158467551545304282020980741821255715095728904968173865192007977983494015068869796462652265690358114382113946700232993822898446782942603272113708480650942188058722621519766878599713085496528289744672026180940498265129446742727698127549893989856329985969727497216044887253358520485125475574395171555246592468925918786385786938545785619062158378077793264304580442406608304309708549776498149076772940756258814343654401864862886983592445264285501817808434733262910439973885053130628970150240564174246505091254405120308342983867026671315381239846437575660412158311816337765025579840549644164433168166737027193953138673872287108981268001921090718603078575991020358948243957443783599769057516013576759861242996052508680063486589561659167658626143388572292408616005303059164813495466127722464886069046793730826103997689933671129222889989040043483118622977001637816129014625178950910085095649001038907497869703918356392695659419655704467544644366797316225718111183072158311257711486014247298533775724248581169222359282900090757733238205084341973457424472794726895133984026021333441400174931892784099922281171863737066048390085659894615872462706839569409970550462133243205522225314402461793616207814197599491325805578654191779719197797607800180426856063859692577773354570639559123060559512353694248187548149102008714743060507385404339632197309314621674084135957708665708099005459172945985593065126808938907787974685586416119291129938717747536422080144684500358175976074429074244877880876148871632340816147044704900172500870053923673187125220707650791332225893967408889551625310135985600133739903489092295719856703368899378182579350353835870799564053060046022245341226616050107147677717157774659078095674554951534246305343475843657290961103632755908137539471566837482099476110870745288449681907545676148393789457483765087306725901501156690534617702812065043730799851576032482910341723371508399613766141769467349200668567975783269217211016972718635190495894262465879665467122325831756370880738583292903410900120133931275201569782473611814201093670565985089324536228145006652117410089537692304824082319325539569391124934775823077852775074243275960195493369612361074572338420441839108404493448419020610106971542412522185182008614914544470867901788693562519032412945901566462651031253175479894457986194023998717753786018864515334752742227623638737566046300527979437503938609454730251154072663889462231488554695754833546049533965965345981975018382020395128800861823883179673689626556581990917082297012277707132691953572152126633735311520639615037572858020404791740342325804264548562726970129055062003376604611602435827301186934601466064064532511503867320736567410873966822409674179345035854513934699677527510105467147512672566110957814903279927932014047832695394567385323168226505186847617119518165135403602574458082560051783005425942887862474603377584693642791307913833796720571992845748877959824346515798475123669079981523051816590028891339127355052664544395041357957938470962213174296680388345960368591565474724780588515742395299049188900989972854190540457163211801347248560173173937032693199977398955370380041271303614936217115492019306859805392558866868478214501199385903370260154622247418123527512633152869617515993536332986797072423575198932892678464835812074996108399187294027906322194978705595719442657332130365902368599693912305358202012264984398267693443292467744734296939814530865721738659927702923439901981474127031443440317958362360563989387377117273323813040750256805566496099217718445348192057265737848148340165729819616482624696344939688630159654341401344998827783613806873634219036302658445470242215776653058740706698004549941630407430536629927635943546713753352016938952785378442784400697773673863336713897851682807910303098195224958161904066027446679952598028740068831793620418535127254734394801542651951467704166247327670106811305549156078623385949856679990210937084501766882191155522725616019414636164791510627679474545618399870466791062326213193624246064826918999076867247461595730977102446618533317857291707492773556885625786333591735173594050107999817076472127427167753128803810649435503512425073491038991602426315590757554375190682159344745903395699931364136730882558340492504817551289625876078064153134425472811023282352834521490187402577057880422000238814151538004327455900357600210874134827467343193183159491504184911928076795943346897518583495471093464980255371317364671451385357212658467905063674453430774760995851956971374266059686176137925068632186853289154959691538177137972228878746019466827102317072621838797825003079212513628410005261040659955044188910066887850506923525325547478686801763708640233361116029341737785672818298157355074280255943196383328024859635147683428556363436592655287280980859572266767303676639165891346323096364673800667494676371874692518664346417114232295615414938798873037029254339956842524334778102454348862070387236404946239990581936536045085665423999393892621365101954517808892039817046199196426200031978063689778439379667141989188447462289609318093528996689161236256303042124709850753445564014734054905557390412754113026557551117268817555533795169539968124253420591991658721050153287837095753790677048624584752120771755068360980185315138902672405788835613516330740122248345469365281970038904257330657091671262886040319652302418882899157872449964414873198967126768324185431019866779708457020369094552418764235342412932864344841798097185371937100317498540675092754230489648660244500869770614981493662960435693198060231789708049492010195600816640177441833253555491509045574133436181061335983988142270360683647772133211020213857916220572439533184322098771658057885271199938188365392162720345747685351329452546366329226231566618963977816033059832716398022607990952151624181617386666656084599323194429925206831666766728354557933893219183721481933657523162521062384646666264598992813074255472006167944095992221940486530243523014336398647828268119902982427040876003692057287849912833583064168112317157308817142281397342234949666916433373156030301146584102931392241440259392840502289792361035169439220858407635272654343022276924755628855829831266262923762304362546166814880815927403213413324288885724708828746825597497267066663004341639566555578471233098449293191090427461412690740790220420196510550576535477613955849552325005269405548153717328376188386463766098225063243450875852476005939216081637895800225156271427774969098170753793778676453979984286143140488535197041329197642925408616122316899619771440663575988377584946849471250085038683482204935534428575360809902674570030088811750190133338877518682714406537038195999951497041116999855661813643078986179494392716449860403980371649160227159516845817606367880231009563614193636935641756103383477438463424078013678731289182966125644106530807190206456084598410469698342260973941952511662970552738710558162973123862068511235950394371614145342024404341720887618191934918721845482368998434482046653463463985469135140894103031032846206796972410780450768398726681061121806251666213484470000050696077959341955710500146196798414092106655229129838525090577149592391868942976704639467256836355145302618379422375635261100757051802814993630137770757497801664440311164157439550489602542012360083539460156548998077829425597344122241601716814527332457271763846951334643473671339582328603157299474921367454952360615460931142571464280088617766303784348976755219592769665514317818967631472156849230977032396293110061177117971173754875868854099077861206769696460533977993210378033929125318383628076795580003701666696710615506037285498855474532661858864008370393707188761369201150711838876017662140476023699255736504486837713781423712390274694719993290739446281015483222315523630582443472264571608979931528925171137121555275491393860129209876021250623519261896222713674301105195063809481634544159773977073124095808265384480681075557653823560937802106818449473397412018297022396904826201409101539676685854976109484234023306138531899800734030472165847197895186340490265732970086418806187034751395384251128391309339320416669941786495454099292622129603512585029334016638401711501369906016566770482487800365613462650772962274626559053185028882500899364485819683706602403861071755120612829803827048862266895782622466457501806600364994212196732925855029496646086972085158153562532186552655266293790505764115663997150596062296348257959431435494619589011279251054016153268218817256116881210898050393965261064126905049938199644924634357057765475257691918114003726598822333986200430893661479203034765454079314974945845553311189589876578251259449559432956708210905819309850694593243931564220169788157609246757716776330261542127754844386825363950381649000550094091675736671423522143619543358658482815385787691373813673013911899283957805362318007882713010066062670444849153323705738768856970236156307699837805162576156785691071475538471105942802804030759236572708388047412497136265593349206464957206687987128997530568061433440933513192009758628548415404833880224775259602151258298722785587739550361795116023317395263740428016798975105109330792513528901593886579227942171980181587497644319416743837817171159615693710293385373049480196051671170840199582181697022703337887713440997789367895745961454789768136462918863431891475929193394238540303672662158136783779222101867760683963336305128620509617814266385432211051974865269612836145636502994983710619453352853973019369807673890345754725303004985119570342509522497373831940961549687513931420429220526057948599434648830463668005307630805683308677488538513877998788455856025698256082414039209389223733892095020200790033347278804038193278462466128752090367374607759817007865722204405926413172747513395973084882699977034083658527815285537140058088759731384895930507636933684094509745740755304656893947904257389953818473211061317855447920926142573548525485343546913320312141386078499713488702463732787750878662712330562825609159018824453152765492440255335068834309747556696643102759383073072426983112089919702390892590832705361097113259513002268370992897063504816054327222712662391523702727421463873965764108522526535781414177469055772986423171097622886243530429287363694382772937052876932265310125147805190907884860997171775710183320429284622416179803738218442574618822015435022518030634334386840093868096310587272104734102920898210107727840828265571197265770659484671994350537510555283723153267539774600357580914090071868684848770738386618566648531823260511835779799315091363073269885087589480859658779269020528032362428867970595365760688433677597726899310870931334399914099538153370336716005701501084859054960254216774714072821542542867118050538957056817778623598603530057570757274847011022863986473060648712501649328407900920105861421079254138600185612238213420203459291403155831436539642570839728847707449173437263900866724595806245112870923214752330700175569970763808758221569686834804622021885285653745064230992727904974246383767975626200109255196282102534884554749874745022998566853747849682439387087637567725901817896788998852326834690323937574122760981851420585657412917630224209452177776528689346365356346192497735764712110442403318821200307807216432695496771514463143481718375519691418189873727864711086035977034994815044850737545149212760568201585300366237494719378083581882677519606610441522339370090761715661009528489693623630707071113604867903720070088166771761632742787385673984886413816194662630119392009819612268874837816352256618468402506464820974916485385163649160838919439429668881870832836477570995299129467150877292357037862756535340082287028719604417411559552997056675019844786673053716296234949584015406797906093222459895774143612125927495345574681715279890017281083651328022558506236572345655495631977930783163282557219559338448761037335099335642782681010303836281974360330778164804431677058903643028779817415701593383866622132296162687007878697533395357871287579225413878147513865620320789255043203445251604438631137174229353568539534498276821664633636751037444351385937829109197919839318665503337401762256658879891072957106311175912005295725185420942976418586803303760881968588494476638182385046556018922050496757129437171598085094706453555368136488024020663420457043083271400831125004027252562286191804347223797755040149665874412509945037612472118411516000266550304175470058703568219091701319325021182326530988759399756939494930199893033940929714622445641557420961813192557574742726652211782536191427034312753411818435779199752602518057739658443213084019567056601955570810040739162159058971055429875413360858845890220988327392277754977428496318999856798126125821440802764691172077212468744198272516982154106690026985627858063706519777338034741441948138353522833180764391737947724503117504755300481190945709349460977566615820162469886196674190574813706111660398296497936166591584222134383069943386292240946794363918971460795448244674403162287904573796896189989842929657344651179968187627215819525019402010627928408636141283997659824634804861468740477506684103408238729009273067514233114877749800623108571091004328053202557830995425305826468926476027806847837439352093775870625807721258641995676047746889265660828702230999668597035701359212234625377127492617019233040090595377953634461605049683483742094809090554988404288844577020172228928600929590362411816492678211358811768383353253106815631433731147952375563760656208044302659489426098000839627548372724323257198725970729222595051144560376916274164773995397755812957139391041319967360305169174425071061474353452042677631826361718300721929339344567399038917553488068057627386634803474380656598888935171887805647636174844121036652205309193839778725907042927546254636507434101986988176105920022498235950176395306507785072179837071957719108193687674657074628324105461509968577265688864737692945075344990790692675790556361190572219511458734970597995499335796542362804426422253715010806473890232916465321979603627439455297868237393500148559916583206750026492104155423872732840640900200121242284244433130588763006526698889601521171442469004903533332010607715226758547977946273348987807346223690066349646434050190407953006463372989749205865415982680551013993049211314756204489791624922525586081127096048179646369744195397799298917367039948212861421085988538320363322451623824440906537705045992205279161660409044533675846264332513558218477577207791791657768044693285167715869177485809304804982811224806942125471992976595967600907535712229109914563093067079589116336737842036408380470928590479003794666531274393987757274554280141344156908877476672692568555516286771984820411426217185288577366713584308273029804332389130989009971344972611144583160252713574196822715111324261444040037441585543464743940217994450397426719833545473720539440031931233685059330761379902659092485195585423622471382251454934603727674638301010253496530672670866528155296864973054300448262604591222120906572846598955826530803242958143393644026224448464066542403757929654346760242873232591082935986841822831987441255931944430223048152834507689595418634551044120130764984761437878082133822115496403934316589043594894479674533640584439874638837708017788910114994642196167475112899968765244305783683193196941197545517164634954945276862319606054140161712384186430364587739611585259383713895699683186866535636873847885070033078145770640908988857433348650766119181767610766154731648394349662844792107999950047997863218635907879446483931295007419329948204192431178065195970101348856793174349152139383779188315147093622255916034631889240211170558842261357319765608640334626221513157074561225846981601279925688655758679957214393080341929359719947893327269904433560830843154691467990805433030083831875054700005022627501134288131809036281544294032107925921024724659710721780368490136335742349291742226235554938210875325157106212566962970716011075345554115626242424173251189622607864971764360192289457332022616487728536697645844042042229612101536858506513443623034514843725630850862608306465306050518343625675959752727187315402321840927222151357920125638562174102217826732404759258748784404689594338181026599134675770676388640188392902435501222320816492577407714868180222105230918401496856997444852413835961588634836948412439052608408271063707904343991317311891192847857559397939393680683055866510350556939132172986622901226288889742447993917744417040890313002819403891523539342269465360845018016312890017298920774847524475238816205657006609511199679777127296351099174909171132465839446310341798081109678406500402763174666986623681126454995921151734040141110832197075877168624085638360111291438213075990509242101175813329480832722072953952776859588395169169112350788747771198136482891520956701771220108359790619954104374004177651553522844618847327505442806345593094602790381249871115624187287187040591819967823619604877779811730967728008881939071878927149371335073792086676431655329038433971252853585104051930993964038321011165992760406448845066239611963009814804834246337751333802433121740668113480958168363136869106981622875847075215158900788013037109924235257545198202041740870440005866008145535894527972203510152455752169624814066076112872135391339377399172534504777567177977961341085965465551737321317946720701526393843993557925164867573078014974122412594195057970564184572801766741755491465983952034502711081466854823306531987618628373107003818248463366451695712331247856095900077147494400741009202511453042073391444482325720708504418323256470400723176840360105767535673518752124696578431627822519546246632361232382249726575588872620180259852322934692145303512819168147218874461436903878269331779541862361297901902723229906407129685615026714703914848668478180612995475793097579643175347251108341394958557155584708420938978615068126284137237506700924905622392743936322062029182868859946135856945611066758404985453389522141030561195286935947363457684813419737534606454713896726144541162155440807726130913816455473546049648679325217624916291352590010849846119436990059361126328604879480096356273700538305478400523724104732197810418124474662320195581404098250869808950947749468032988280216932323621707792599615560014015996518637381826344279173665880936287698149309226877190918003034025349321666190541437280732244335335522447837781448521986606475469889980528149858536651274064519123158803266559924273668744869083806458152431000196253020773584414104542417270026205326277237691586580143044949768585482660634714112947078252535690053611237664149446333649691699569210277845128649947445571703430309012409952302345744849319007281517657972696357070545817806805812801129008319316944181009746277391440754733127473311678248337352582145187474856340625409386927692695568241170889474377749120681449027089633224783182267298155510922556358486167075334415591957599353065554692220565888499395414828208744439720410681584170854848746249672642322815240724244853454429695601784454118832152994661621775309843254092229634747801839205585206708624614037721738823101344932772538216484454280030523825876573337829601553314315187338353157946681423955199691197622274142819860853267644634641242099662869398436535989426946723122841322899160497301695402460628547453114593679507574647451190334656762615456575816886533261319079003203832796251483515485199453015686855562990513899390203753223797575525093967471144715978407180842478641475438636439494199950974420784406754473286425147427524071642463267418417716267294049274335438564884990034325689312147013569463501130524857145616981450209575942981926648603618672729416297990150451751296977676321049505696440590270449232408384307838434910092797838028498748599297159497944639917624734555875336349120736398901809107137469179123131387415648180911238292990602709472059076853914596128638125369775540552592729474253071155576120746402733860945179115314976774668570724039071638063157862538434820998532639844399341145599971220111574082680548211038173461206653870351992425995959002577382058165162466060966504646777529531060206947885281628909901088471483311801237606077796247609740518828288980194897546536166049639114360868182478657531214057179767147779515393462022554462553729593515039482199773285292383333342916419396531503916906426029404940410499174445450240700590984048298828931614986306328332512358162067813541450829672142004431661765030987558376745937699832795019189751961830040507848484500174888024630145979085425531802440226113007319771561915185427290919333224296916183661726625781436646741819190213228277963120792284488647574259295645752848589996922761202498655526252573485312504388420672673229462787512774541451470631396297745349916203406456181906834231085187053721318997658055633278683277442340453224841947201522982621797409331183697244877445567690996923788959287331249067327984627629123703038520979839132294090782236870729663980258940078564701426568822495452972326051440003005972148951244760749352827252542977143059333370760988710500166267160338911753751866162436527052686591538761359167429108620284007965189533593596810308308361638983324571832662977383213671901397880498617628357389782167752308617787228082705122082599986328278090200915171742438618017847917552788468705439741838949953832097442458287535572966018611160231920904818961752218475794128026682870385910851304566008559795608040023240015780178669584296504004071195359369231320419485806661133043817442969710994319016506520029288187573551816733724332359845654911049944995487831066865916353308559464380620006744152146606905862116523970156756342622002874675777892328023359404692176711253183160661554096720172670456189208020810214446977813610621779570529956095812412607605084520323834412553088650864637239535403674884769041345075261525935337654136295367985825738799239470372670026642294571854582917144931817959664270939310072491586094558380077656076161212693343842911025704135033180398945542450797055899448646208356539057973245939143397237994335922624660514530692078636632966299549232692149170939805967704750744141775462175916791011366472242778947454334079517201669631836907064136172070231708001654875343688844001313075054019716388698474849303333278617354279932969966372851598921691826745515722312809086786319768226107643906958139129402459026099261146338323732772967608638196752978916395086123634619414717336255128655543590224494310739457330798332399014038949979854024115708492964856738409479616316704778336913205192113142397400191582811618570533697197116002401970195597438481956426679637808164861622187052072270769300602711563661386695735224335816788754011712213462016857414412063146558604333578700051196128178290289957198775590563108242645773597772071338080588726274933773320154758262373863499164857422313880326293781394871046607668291279483003032196479465808887269577547717175024129691692294779050327182013035438343499377738120185629670476904388401812298210490579033498520365718930456950239938433298239811150159181165538874906076870291628663050654624914869835750172402857974085352130272113965664164278145593029704644913108153532611363031549980233561266813921369523879509742763525617181955995918095820754000782829712360460765143610053084729561566596376332091032297234844780882305717935668260265041473509103649399975063939146793237299039208094325716807792188088178340112198954601416690333173205178100610582994066863548437968904223810337699498679229492098854851736135939193348721902183181919038101992148541610860972315794975020821908096092056356271564710358120335352636409402506057514791818278975391610391813983567867305281284213775753352094283545461646368344665507447538377789466937447205261091510884823426673794137147996730148051487394199984890782902311837047193639078072294011636624335317841191092412543070492157720057996925182409745448463313423597846627665744103415567829829641060829534257863243220799950216724981465680796043441983699829347537292865106437917045208660318137754125486553548391365334869825840052354206022333540579075341565522522384664752818656851472134861601117812058100169836269970227462909928566040915034268197159583399282925616931001400011884596745221024482957255684637114863186929421794542517759627373632205879794012095397292021096064466262425438098174975788595763059537551375666394794063017775537571335821382151631387477808620687867202716391452471902924515639125930902682767686522462369554832290651347867891502664016976622055105071690022002549504249343276109836869525638724444963260344088039152985370132525871453671389378649217968850006411930795964729740096008273025401940283885892330605450431509843956968746721605876534866841586524626618154237249549963892846119613909790044219455302213185672929437871366804599665839332117050548719351599736715141981108162449612782679900162743015067467863575899543500066510625967538553539868225319757209378728335682035983303665353821165755036063345377581590825781016240011049491208891458772472247430647620122265190472393554490353817734862065396273616852889058326567025252450461325952369393267577909448399438459775977856609054885181482013906137184783935473521731062384837006174128628022939393500507227826447349959722167116963027407082179313207770159491227022100969487599093155566049749411316041999555310707764650703881832702733875699693524658012601512417378228858102054770354532323006093415300637527216334750192816585852745594381721049795152459075211837284714458212832287867822644647757923334104354963899993609793408021655571510477366021871464545188577474069564808069249189863002020867218040139722376289074777278890009294174709094017679345679304134514837938113502398967441179930094022402788697749133738932764516526155621848821668434149566341572043565260107057351260934639261391947923142576947858670993132711894776283054940803840803293217369763026102397272670592395814772971897902976350710104746348254398108512007313399720562080545369326940593302021430923678868139984336459131106250210097775702827898121942275242028732422730020098138382167423866309573814337837094505327517968749911150939145710472745714384046596201788144885334183824141150061514030192313789280415044652195919708440601083278638694432689073288310106838415847395788059670993647893122251721825908252511241509003074014830918323782948442119202254396081840666444339203435528740970101931639240788388598840945252843918926049357785209106049708963381566436886721390356887407734198861322758141587773672864950138331351005107327996009363601165889340665239439181347337166079007531602166886422870651701022699355137736072214409348021029441110581603846094556737162797696866255592544952203647700783531066920850075647411140361673079448207040519442579104051790699709367188882065765560852917600942589549318126291746549079877273157346240951499634734290390595904354267110396702448131653368902627057985571570344553222980036129446156379034798184884799730269994798184700572507590939835924563872022489917544852643353969305051519862907823369269333521847389620936407135924395659949911498270962585487004249516061981583998537483101962648074098863864528739339939449969462652262538905633326725024702619687239205922275388395359916509797561001019296638971738517644511699288041473686380207394001918987006817086203348785637543146139514666985848065504948719680582488244592283370401725220042935689298855067434673206535553475648823010544994261957989529721101834703084697889833498598849829886592732746705878956573585828110589864614706719297712773444035233666774504251862744096397221866846592838421560960467707301637021071812709322415766542416347456705994249081506249563213772698585232312429971990855628275685148690196430232349738380803895353485118892727339226365559080095934910513600737319614853127241734950463211023925064175131671312182655748111512741280630989335167273313453479520530446949281716993115557895284366315144201251790068299668552004775406103253252137040842632329235248985849424290682809393549009917218005072390858036294723824793125053111786453240875760825039756352817929918934612593796867281186053220453524883505858811420962120674627055253203529730770197737417877713834777015465476304591613436881946604090498034327421157006706653199198206165999558146876623742020314248386504349163059627995624387828686970497562174119567702960354652946450033532658936606865691079685955895472358366282721274380294414303270656732613397228126973269547102145186004629649536573058642893761933347334852520281126971952162451462813664214507622895978720990743962215340734694005882537965457278502544031073946785285326513531748339019439835977080057437735426904596493311833460911642470555925244008335155189617926636776974053553626726380042845912098971264872179163953312152028230689846077885951731014191299751896968190968836694950355243002514490332890314485107359590769190199975182611077286708307266547391142078925983355552073653824435935884380963818584136634181084085304815313885363603490938999622619036800743408429603153622887226112689817003604464142767389572738972790450108321480130305755887916974885095232445625412157448051208931445513032526959048429319608897028975496481647659228826918350817992592041482572893148958088358639493287497303470549398442692752920340308708684818493821851071899177213251794109084637397529212116388615685775856811843115602708122292501738148808318167432119488783931151582113998792939687902685302465532820671082647687742635944370852138925207540932503555624672908932887968557856251099893772387424085589041022111717251644264401581767860549608831837569855666313013895708940336448965605580894074203896249742779956964673190732950254022789366614085844829435246956493827642851858082175611743129121143165974573301269739114040841411640335847247682121886733310099843363821395996925068015927730644439579925084062094355637968394592651297815004579326672558389359274762483282499277378464490677555669071637754257601156168946785543485566000369742234143453868726604556839696921594280834166448159670790803169136524325170605664315505363448938772824333847875251729634454318841920295215160232468271877337453109854049418593122712680726005299665260862344449314784720930371609661526691802962153400445486950813879933995627397159141703825214784580400119647098439932254062719819446550259812916721367534961146651742811573950011585767111175036472416427594491479995297840572234879028490118125919624523599209741807939948709373159330525722028312449436237277624162286977977487830282102459542882323391764278774868255870824269117441807661360984424266360734552468702153859503802460405610667776436573746746892213958652039136954598148760502808912700190621054655634442580800134261177042850405189040556971537503177581116345124516734130799683284795341503258005082283239258253616261455994629698196963100918732059936845226845519754581367158355182309769329484108573200339690138042795898381773989938606788731386170279341010614784606333803349429765846269744369162901973416059135339454184616355114979565510419903683593328767893847380623949398646690776904702339911491242358310859478584082213896233444783437233161598754212578779200448888904505381083961508523793626831227294093296952029342152096602079792119720168621297296632344858983952388138336808575835724801844943387725409590758558565342325666381615004504234486410775347738062079177347715976350046399145212349296498983545420337633717595992454062600070089475819984809139560449242519015481986027455267323013642561825114019100953292062126939898668210723914465963658476004333136171126403348470611856524822656993712042473242248974513989121704436409291858722231451779838279137183560418540432458300900504916963196668683960451150101642063624154929168567577297678807580137641239574320195077332505977520359891456863011272487534464516590815709996782979722349715678829729923419523730200310637405577288938330653336751080867618143215299505260776692256907701309535789531954557596422333288801367170153355788384249953650417972516287866207965541469113522774240582214168682571553446913611093784236502843067727861138634782830267988864462108549188849905510510345630855933197325308770307887042451216417752981762591607653461938782861970311302796257468361409049163011740539287501738451807755437869322053854143472332782973783838187720543618165683961541578297239453967352111096535892830515363301571345150660021030968145349794141145190861387686959189284277680642923309592176380506902617406968436413867721898702518903506216064123962040143485028506124274337420908163414493137511101243212673556894452639072619144332383139785892256163131984260082167674578312906686471462981702511170901006410798207488006460943013856082806585471889292075972889938888488839823033141508469459233391750410270079472749124487820458821991687346258890498364974096734034402893942857291936810723520485417964575978642613436278337893846649084448443232878988379228613661314139820906448969095245290529812547653472271477669519894688506258352454593562287203510162804924362995523306092978940261257270068520168274303924434010081101512544301341800135162249544028854780428425909080345682891480146469196155170609129686252279180356627521274443457285346239232222898597775265449360295852268241424128812836510757389253029386480626161174830211876468364463796311637747036813812529431687872501037434142570863062343644248144843350377367189313821684863902284796810781464024803582068357633534664534166619653722833006828869608918730880160725573569923924507892014637461371470572815925987146828046923123194079686924784523722235457835361758562730599709663747731452898837870360855107855895149160203370499637034719417178116771022592491180588413500888043124805520805591536611727287617497888055723738502588962393439081036761303125317105747259580335181387195720998865906859591377627635044877837283462175979568398117697486678194694574981226323276008159970789515812955701944169680663861685647985790024113550606367172575059088209735009813159276251347556519726580572518382079049600211730670217804288207766937474447164085878572413330397858749553112094672732442755528652688048663158315151997283096838185100027975992523607884093050256052709044991110585140042280531942935038109688029493336603171841578327822708492401808245368112422284791532433890291087975235676166870766604788706343139157989314037191660877826289964206383949735616977476866303169985758023606886636026117728029869533604675716383064928908924521406379960328290896935027077352988818735331692940606722937198021170558676430343112831110714622299446909338291319822552839364196670106830982263824885446883954008618383249962645076976837364737588868970209850314198431722575758835845379783999771023364416076904771838402211960032046239020942808196562906747908317923163522746933120109261927093600995189504201093493825164363420667320803498622915970855157207731855837798628885064549217885900216531468104940365688963009332473592254249493760315326799950720517881792604178733856495581200095523027368739898433330254883376490940384922149461829516640608073004432653425756760493424102083295556560520918512338819102240566630610414794582582005949801575777774609439093280009291396547596400700204220855833084166819704615900443958784081030674991078760039159936043294926337639254517497764042542108526200374061459945740288953631818104143862897461826490470590980435684097854713300511359701108097236675655124233259663474609778798916655485912148902610923882260956794944198289809818679190988396288875357983568754981476779548205726033533710435977176840427798266646576062963376616640317516868946162345562217319774278482063137735476435383931870137059910246646237321824215718576899209128330641570886819603812481295589751877989101923980509690404243598019327650046522884210354709451543457612229225560302619784577754229332065229532689244933997006085250279674257613979737097852398050723919071967450055723266973978600442570425905094283257180526498885260665253222885536025154008529845200722748611139010008217103809705848474554124655285238039555957125278843971270572478933228541165969558497486059314178224708483592973707907674396020516845860205309558677705894043724766081921298737511946226771353115766414535282581516093837627324883266043938089980800533203364730329867756230076728134217831262637708609695482885084950677928469892921676200583840378880284668091385298048600302876531864729928364557307173775084977827949732605085841720470203815847344886281267006812581987697047073599964384208098716157179794514817101651737840416362163596864703579564591938275049914298490085895361412080517585289400073704832479509106263737135342440772797479225051749484356300175429743993111125274657710375817636941188477437936014244489712405314500981344250567483506988509233731736446270893850629570822423100313501342315678547873628837796567498807080619712331977312467012328752910665026852251206278267838792247778159718840723213898917114119242183922859501571250622523314670720869134051591337198747384352303052307462921472147314414828177254971705796448211607433007553206629127221275381965317906981683467792339182584497808883415413913926751614552746854020337647095467988083093226158749711237864397212884643659408743170925762593446726376674992582334486329704750851991823573679334874546645899874004741469211914970223892847953905256508088002621128496725760858851326177624126708058155728111443838181047643558956876701619288428043965793242273984864167272392636076762390588125643108630875017419100078089981997309201541156235862304525765700128499444643320516137944300187515418229248642441241927235161272837429456155009027840381452782649932407804915488762225799091454488804169996528367400325618248812831330950800048661346487907806026369692780084460515094897484896046883069206972548008748880819479168635250069298368660802013893778168062133815920722613064275214912493484685315667417880877327145087163913418513500612413066215163707594160196074429419505437459564685412628554013055730378491697148303098620948716633860932853630473168473113706518821189060612248664181991576238215747539706315538214108603668534969704580664916958165951788754074244379498613836498030950136146996064396761869744767669375617583757827519996257486200700408182908342357403758582817772577175063193173432247547724158999666158194809163998834506550602055876202609801683809099092355871766055026221887678491122603611021584370307496278983869336000347232619576897451567961813519251418305487921390963911755350335184233834744485092204465258806047014253830743165727836265670429581921164391060542786257547636490201702349192145578260644454344099160858330957511857460194056500253082775910726868707636442320494104883848764666737963625746899262935098873397424061653306381066717045703337729876170823372980340609354296696297579421949710821778107175669607993945008300264676905999092325105441897278346300839323023308935350357753875907960487740971566096594557332527428893207621528730193716914891705596230380845198199448413863929571192750439785434345224987255408005060556297959617002548721340438140448730347325954961266939837083066372236427873217346130746461715299600566125343404054772442710823319973712776924047107526670014094988935177501315743327684467347314392230829481572161621523465806531510420102254547217536927155932099529094415478943821638194857032708391441052682391311727464571980993771375459916413707791418697216548772040501245808060102090289559197035882386109475921341188457484065502949222275852623769163357789673330659375722438845746147546600752869203263662694765976870445972685271689584934961239024255863504422810437395502034606770460455092234294836075009242492719426839964715419689315865838338279975956589775135806645322351498712186580843322319659662523468801338174960785256183400448788746162809000078945050387198627878104105316738440424291355029544191867979633189281922270047658774921843208319256684558898690216413132278670450856544432838884394314112904296015529066584995633675826335471181157671354491694502122963600372513766720447488268289015653838531473438364316604552738308836486846010267551493621633817210854456715497843995997044657157383679275163886720250434002255202418958310681944920174282713181424242994675995805714339683162676209998459375113400057440383790985823154828933374689586804009260927793332417663152835331623535320422597645952161748133354033400523261799100641884989414649906806393051138518743593728977740169564220983021996806657781468945105011239848108115361501026908638053145442398459001447935499865475373437118546417163409093426800371666337511322691499347110214174462024596481482381556910030105891976173997871346950188934555010754705352798760601920145357142820018400651302332614606461354621800914248072082774752108627027855107870316921674086595937810511519746144126184741396483966158880296984546854932156526456057081554720121450648917399966908231349748121890041924810195570980430393422820592329733269728293261906509620183062386727883259945644100299444607249995315061071873757996664589868558034743632689792102356015917740735782242285608287808323938517493762594626700899006913026557463812895779856791545201123560193416552675885914734812933767389031322087005930799128067931884690362778318970773912407051770671680757760676519205038219129644113691928781534308686224070789489403539320062503808128481841312689360896767153359532352494996661011616853599226504304831187576048535729957132775719622878556254441642764477904285928975783676927335611878520166356664619239138144076130837535506483061401137496500745614869093565910531927639655479916127703565529537215132179005260040645358762982393515778768952455236745483567034064238712747985972607894149527349119385691394493035321706897954134193237826186482887420953277265505635895111792307612841208262845631463988034558991904102808339035913214579749654541296051358312950687218282298950636883854297974646352035539153454878361853621224826209094283267562356398499204543323331532139253739128500742247365900530829896162625493616321849410411841804874680165793281319146083449107217061927848158466260648491062158461282662434562713932582002064262015114675014207324666966516925763145334268483933672889678706724180139365132730862269709246187395035912897855443639796270231188619450011455905851285010575585844606738597810670515663272062656322379670942694541166800936271016360671204249235775843525596594081309173485744818317750433779715793470586936978468889184946906743090766477282851698913488092332770358871874985838699705074957036562649314080485157922223827824875777092842921448578931219957677839409893345073433252912530226331227227482861731170136993265532137496430806188705804116978537232784024676039207862068865039889016448140884734932406350705416430089369428899073067546216833434794942408656711892655124055456770839155252852074358866847204964445346622340561156291185265960926065377637127997778355001507889466788766965712787046735301008518373618907510800441060835322103379923259787938280553382126276717766478743462437448344194360271766362609809491093806721711002749094160080640956142758232215877464514032043605123559147218493077935527893222550007664823253660027122253151276468475449523421367092579250379875543810517354872646995329876789365427482789970117427499240878736307983765706329404881048320354047428514202836063319652211710656098792028229246589938218174572844641274370406565240307038198657141458667585956155141382642969518958006530520188318856856115318216432391074274241314739429435182877194014142690451118619067898120999092391741108409052751319096578833469124753305726174859021552963270389730125981689533154734599586960309663155202890063562382578434833488509055282769844984723783801461771994077514683005479604810917569874025023558475091807710841189239906753067454818641191688115215784873373983389205176263582314814651984756987712107976143931440416411482954527890023389681376379812706043777744496520386694414952739721308190678443174279159043071127336746912097728738879254679823777916887354803431544235685021375836284331254591178183419866485633837027063844623659105971411653775757334486213531335359183342000484940351387008136943746206586208318549319590528285219058080085465048461725124926506548731352432036028207733914845657648646258231164968366417422188662596987816076755904412082819001954968964796086093750452783121347284056367297097823618307407328745208353831864901159395080505129156706658259439787731788282862997830207219511672624796235052034241215344928218367535189450632311161813115405147936883360361866896025921404181604271865646682528064713347812895375055850513412667447762517535086571933624081430160929472848995132544180336102795375604109933531565778122351134258757651853488970019532903741516877277566472076485847893233227732384328828910570682500402016644165325771118647767351655652347744368374771245831234602140527380664886880184382480317052373522361696582112668398781298871724902449558724602464496352141385623465737003898460860246943355530303848619453127855304352982831572844412954528918109776405154010147347570898661346216845485982925592421025656334022222731913927311005571758592894889987382402808026603871922089051417233889710715042085656003758112845394675350548943173720358389642620303564862578514690708302023403320973398087537846588750816129609488959893997488412345700320028235389706088313329035175597876861356720712025527995923899732541294656281846799736365592569961393887608829196733864640587960248142568489786748312505804814659803140529666681941825849673320791658496664743498235809491097879164437260564213250201659918143341003686109500684242313055419544537468893028708973334962969247414409125841292805148877809658023258200055772015436927150182165148199575648625136370217261025406042458069144006920867312597981983534695208872132111137049872459409244526568044667617036685686487200561973481864077955746367400566927121106390394706030254422812922294311234917945356613948300158737442936918110676245814933738782763663464120291403930902349757861459591957548745800415046307340028826799008146473501775704565902256911677836292127180169335270939606736104487015811372485706052950611289785019626174289620957125034632430143187905404627182247771272307448862649357787986613350021206033156856006308139322608626085818906538373700774430707206884320139140450538443303948691705474475220372097405170218716853153083346209438028146201008112703890455259735272378983128184014056400773891288715041267650732160364134647723054058536415686500562895291961006903917603131947307329455579020354096421579483440539038140790875223736455753961494509558958407610543821697419746096707322580917780420636866278915192950376673483422894753194160485298193712908109279484483396588094798828802071118277815342635057401341171018964280878482673369444965863332745721356529598807511035089342494635143139925867011718129693903784909804643596235123450256914089226141771579690404018422568504616583491175557269896537875066562139733525477095696206988561516940238040055918767861710523503068352984421551596619886625454042753344733051003355127729007594128176814629629882345840250114224405574171870211674884332630562863193221717172536822347734335679909932588181321592532121605616870291630666592761464872388314266745513255286919948987030906852912949562131774899561512569716886003131322976245501012919977341413356804925668583276499439368469155115775134049893245560033840656863342981260651073834177916455271042520276103580021074056999871418076200148631313575562798611535922125246159499073809018134205467355086148859397164550192196182428130471272596135562404611744697105870268557138608521170982353227650158191324833444856196631298031548888585324090094388877168605703095735620575549928440799256795089261250545639060470622203000554201055486165198654263144431570167779869851403840959593762455392278592377432498563783494814158926851081187553703008064821382651967907324870652242874002335619603411873276693177123704225537687750592287471185873532872671227921344077757945761625708276083786293129781626635462103983970294525738774814039867984206238505559651188166431223627732825307794365343013156950846858845996700447062104787563121777930043868271958195432684139362147617614029352050530163627922659864622963391026746102616820064380209247904393210484446525427112026188137266463356108528631961662400326025869793861058580969954960340060137253729992455433659301136852804063837195210069381409170810302528042147604020826304464326048925452650013270049724074938972984510834447926402896188863431091445185598915604579223736948496312785290512316754341153040675238621009806235311936227824958256419545640280553661639190173334764893333046171932758464417742408654775060957135650080403554516485823739272547897322757440290700183842238249578174263430843037880986371551440432285691244504816850027076056029100489189044103209037353787700684928290461545311702963335604761912354159170937963499124551331070251866458485467772794917361158387525356330959565324985774354858621052824348012273044771830671515779993285997530296340266263268096392257593390981069683000351227366868394357759148943734132888046060674915948628923187848724787413975961541461567458182969037074485288462378613301794404857289868885635733028370368220638401412546290724543836826524569274668412672644483641415262143213908023463240515723289867954149365371496733041096488107813093054479991727153398345635141046210898793888917688299772116529035258328202209651133341751916281021439388397684453253288463260452731160726670538506849693672339110671450816922809929881752910358292787240010919001673128134858806200779603615048955773967480471603504671651350726957820951202563620061416313405007073738931212199838617121772575553179927564269594756663534724983817101392066852879147092236983490229994255063524817036941842446399903239820584578340026450836417230489972520175284549387569117545107018402922382101267497245009441740912776945238694565551111584721569249658024118119289591528780974757697942468135670670478328322529140189515125649905928258010691501913985068946374259524018593571701485763377426093936972180994482948413934698395991753576750255659435571983822331255251945939681899799626527551251695579788953357332415358463975919141168683071719771570089397374540955633615299614331779751215480073614070831859348979635032947808849451816120138640622020211401197861120341159554375742518202514012506186020012809058082132359751213794986876492641931802681894927664978213297368561208347308011314234258746507067273031314547342503346783100894978613564274862858085040985327150275250647536747439455020288110256222739811992084692949653550322880135672769900351588676604139187468593218361761715054383537007571865802050680526783730045746381110582519712378639226472258410960927687790649901210842195882825644565021228089749305099548558278515841249995445209991220547696882626446919580667364992421348197781755537284741629690561668713163451433945040699584748977760203741059274466703738211408455017045176868326281397585749757432146019599062184631533120136659515424026723211699664424268292709131925625277750864061814260871042475093647001278917768909233874480914153909136591464083127353239620712244177879642795548770613873595862023714054721034408837158761674362440474509147692952423873852833815321652879646873337271771344640391838540284106010213171368737504335293530280001389746284405807125552878989917474775308779291815703048009360188294631512065984041618640166590298156106661323823242708717758418142416880284757393852828094527191279203141290366862879342506369213456125767814875429861707566893034278414792800465353292641395544654351362500233866053598036767984177570277386098963776171906394797514034818060155904014421918831418856207111960581924218355044917266705005166838355620510611066908309633620141627072490549545270085126652864288379998268058110303097917378547402778310530414921274820836240392657478994834803186847911256831323265512951821714624797852316660970900454630110049345430695345861668819235413333692159329893593405903881249416625340059051920875626797955073297977237953275767086162156910852148212662611951222488894135096505675838883013257442016287698047623765128346802851761760127836913441992129411803798095897184849265235919523048093221845981451396692640938069788967506526300353120003593867871006615119045307346795505511769495060624373740735930963925843004561565099743282532297088992160370458219144184834625916186097419869783406416396709521180784029827612802197308606692150010208179885507369388249296683023644209109680522571014792999173723583608514128687687561881193549811597442165545442484230317536245167991727527090187433926452887232415726363511999648760416270215805094215957826920750094202374590318708536768552151004183339104560027999156292725156073895432770177329563504895268751832232313296870165470437152124464674707821374736178568594269309689527887762834208532910545969821050278531412786863118854596027781241457320023952286840730757626126322614358512297991190037743618485672867018284929595152495009810873212963443147459697441210232688050006585638872377049283184896884995007665996498903523953389507390162407408198439580961605827936078600904623613040714900625913401324832207230430943198660641032816591735234774963065106146591542091389379343542376908122607614124272967193417841840489901528951097748412413296480892317924330368721320497371673912355645212256975755110833038553625367460189876224139952096556351955695575188319816242129782984253668671861784445040434524278384143519409662157818502087262436058477979637211730899383096772515802495903745903120044792964148974461102319027802936411419971878771862537633478909036450006752665746383159238613490992794589719736870099258165486081488041111263286388981902372048855127769389538965919237208951791407474108294737666115003078989856901511978626617389511565788196112819379795060446511705086985748629934373344947356367349894987687560859059377088935105484257700679199782971768195861139046319435768364412205248168444621221162389459952531389788054507541202192959752898736791059586088736629512653143434407451752971345850796033032393028254749783734372862745186314231227270517238471542401563626133714013211016113983246624722666116632290264664862570271398823682842821033038735711856141081779159799553347997573337745350610281644868118761989367518287962756698688303819709367899936685494187567686789223395316561626598509051994076376461949240759183863904285044540931070521312161203821942788890968080041412059794782880771754201615406213907754155222787443476829406749205723559501036214512204157199653653087086504346919329908827242099115655430068478522020284041290340492281882834643140070070872350029385725930920835960826088433793604981043019632850188433849691629069634056957980284480661155643702533648557385125532671049778323840213964289207546973831100491514574332920661598291734046375974461637159545597446044767355534767154989278603764481333295839476324149238557779036304191960781392492221342426721457228583103149266373125337908867078148851153445835735399063240792494196137036049576524204511038597056385083894284465865818796512385418516142748967159907268518726241483221232736478725080667567121068177294950196583944518720301342195090622383948842948803331876137245075211598823618986959954457444892773340979121348247704885920624484111317955494856464993519957856743693415007271466277528909918886818878330893153724686029383057482415292859359556560172527004154920077385575485097021863302267532739405545927389713742076025701656572907636609995221151364703415344247224138371612205504551118738075362581672604225483670317168721762211874194732863267000127865869968312522945447765734943241168888621099181100068360937987511221390871362566611478524241372366000816682284783744368146878969995799316200655680319917141137244074299468767938285008108511057529357258830571716190846558032117143408670023086633662531356065052040162884287546940335508985997655521557269433840557310882371249935838384575451928611690656625383612739816900763292206719424126025269528680007907889894589629131321401445259611860739366544293802571183114802243484496688555376975774215513371763511566518909664294588679640153602752782550778471033233199372488796186261008967583511222495095574799929280393797485713352592083829630008846555201145325827759379869786604463238136371874104099072332673986037231935937642641670358695644737527028811757253755932427380032771586375893733556266157380944838306448626922108511009504726479186841479052256759311820299058621576443857089932644969658642510783332785718228208012516740833609980468059966432732477237865369662027868783124693284169429584266820187324953798719373266927030031784254833422427713119294424720548098208903866127427849532750287216985356105426353934133151480027560271935218764641553550975108119604687717960921513392730753113787481514538830805518246087559090465147942730612314404287667352969260954429476544884382760110777634265841955030694159148703586426582157976377646694486390789857352779123878240581509841609116735603530250527334245155974181620191445122006869342867349913710499877267375130088928820248527405679407242943741640718579174316452024963660276368496624112782235980644035405259884724582026191100118561524059700592078428184293504599587354040159987856199977281200966729591664493111634872834615350335122266359117003814572043437126017069528117611666614691489650317696499762108583757860017250071847877603259769513674139973485111278246139791229293285044229635529545371359034438360029920310486137579208306788443851311697427598650646156065828951614337930432717605718678149716650822703123584554183078837465390712483838273749424947156840341663029930890661020849304887579964984695541495393381297491118882365176889204051479161741448007868449327357544725101908701370142942408914882625189334530796216806403271754931178922029168967110609558580499129111374945114378829986196088360422625751816368116759926762202309284756252727027731513826853704861274186900774148506935974427736887936020668407740798416806218469667442569527539981880226397775837128438936971810783472363969189331297161544719449401372114566672479427004868874343343244182651712031395497057511193962073929844870578965223043959550261021011797253880555953949918500334963599686988439403356488341087397718983523448631412880322494703134028063174317711153120922188142210388938012381013943897700274781738609842918778505711687788260049841352713949523163164170109134790310634703986235744476772865753325390182918711010848584686853410992971051055744336101724866758176910112943579287948265580835125316948878306873564747691567898506814173676804750585581386075361584572704503982681142651521838951193488410807807625200674698107160794806054099490566696404299358343741228728911206087662205157203284129075350659313713162115928923908001248970876204524435543266310392869048574691255336480524517152094816640400194016016051472583113711651787812736686248033126845449554094310061632772838731020984511910219746184746237000955358303741585783321150781143958186260155712659864649960790565660844176453632104161071739694315045890901442339400402853937305661271699251789512472914002317155175913411279283838070102394070628364426523242724941003481842086637468548043695359271132392581768462197130990566493565331294074264150750692220167507027434811039405791549109798037480850594998590424519663775918951940518011881692717744854635972247402327574519910543919062774200111546667988298450841367143809506575618434705140848603324624028528734665885390739145637730352931509710976014295327950251154626312427782035764850370850092066686907208902396012793382233297095094520917158539867785119050689478346237511879981755471052749199569953645939246438542730677640907719570044934380307424982804766896540207210270154603113839595918197323786819538731634538013907699681126916748087270009915154759769920604958444617015330282974285828381909999064207037816752628068544655728223641321435204408923342341798936665522576679673669085565734639397414943179206124504701328612747231016723346657079623324476546329296951363042764487319622361374173829221351814624544923827540957596532134070683112409037760176609319537514329333412670171727656939942576867185138930848104521855106491092557787902437387820842247303913241131345965217758886374112261646257691132382344136648025463927982747142223982407548571362127712598176082524566114281793185298102187446780228253221300236159652904235370740651205514755193545491636922874945235623065020793133369881522079634631668762458442269223201902088466554300758948188681350873225163325109225939418669241384004970514339761658758712817856615406388854158470260317871092659235856228648585608540900633961832676006772558750696074077701818229265587170904706968642945864239891380876540541559353905905354514928550236270542676089878464525084747173219717489406054537365633596900420997014357306774035555682440826877545735290176699220419215468059958881419982106977281628980586085755919205890475290833528078994864447832826534980658234939006616909560813180730905571695193696919338827632095265609979103102195339885993552839342318015890953129772245543163934996877010971715246336295755608445573440598790920663195529955638825351961536812935819887699770417814055897240683536110885637199160694255846758260270462060543105263718534249679365813085025474144588137542844989828913960246867091763751710213140150066241222782989995189390097759086675645297328841684166696089067251711275375822770749617963458862456711492271399974992926768593300208650794895437937254603091644290686002803963589168753248648367550983991150109409702131567901188253221511830979562217985751278625873798157254876887481496594442440491526526059957721834159059775958628717114323536686435551997676495826079538924359365354961691262080123351685203254099288293757161081114435442607293596549239703996326112302729164449093441618811616571058253726535298335000561340917321527014700996349947090750831616377240807035648065952486012175492849945271694800511572827534823166995028464966911100038589935056534060172213406054315419396463552814317985101627244690426713872164997485792087403962398307613275717042963917811450946069825860270862066078722732832686287200514854538829393696439085062506257772516946602498786705389486081083529333410794685026869612895237123020931950949699770650349698850663787310994556437268847019564538605648637155403198780192938473768023154527148670272438844498950249885102001050051822395227280065372656314418952427850701892509306635023993061726064081742193274742474003714467961044033257088969761228217556956624576857812835378848140437400667833556098417939914684595453844297673491991580470308390748232672109680664829894345798433216617173495470044030383534296880525092327381005794930349258060949764383716169102557766233462904335242426964637454942542437310235618908549992565440059687861059996156296733395417176578567780433549035543011591281298422436116291453947164800225108868356420980427272203105228381945151455461988018270893527826992874631951741575675241405925399382904549341370954981717255757817494264829502914948112220067872014977430258492818916701333646040365227671569565864979237171733702437619117913707845007007918224008527101466951729150827489272339164686335544284693778959197867161599688239315165462229296068223433025095133621744210993488814455319735714220769839905543961531663205434471573955424559285398829384413694434083559056027044800773828842993127672396053597425096115868754042277291218780118941601500497977240776075435984982568848961670349321726412081437119613073686528512779908943544929202719554513296367723746074239697739445973139566932954527385475864808699201984592941653465485089778366621461210514871563653785331548737224019998751505058476930790601170759938606438004335635116176748275758665961277746312553451014260727851195433359449905311754957976810948058703111840438965768390068514544663682023794855236253357128974475459161070174299684659274913591347041636030162554239130364439934880700898670031833634697174367397206944702604572843952535988658654219693353957283598023319537825307388197928137729212828935991370928646219202022825964578046131792433149119686637751312750677033426111780401906787305665932772953864343982075700506429511675052193662177613760490330902930343508305680496826636167962465645483170064995005910038764794024508326425235816423606823535653676365206124292585215348329385082609218303640857422319683423698243556474374631190375739897251800048106075380459391861667233256952988781033089246428424157326808399033529434348809579317295756457969536753756216505854165248660324463050019756295328233724778244328560775407174561495678760548613975223198778465936612546870505385965752333791640517663706091570981916497307979253558258954050030675375957891971157544105459160424948500568098007417734507008508489591019236000092935635318192841359464517221262827584527505153761605851681927317450115821216030864953961477500293258749199322833830603612205215274681268479356334432831525119147337803489725330803077168572866521825839609501360360840258484425674959386580197785825605087843941649676773425405516155544713167135812345150977552750443448935744809731501469503087510947749791245112666185371964409557574877227869533464688461430412506155239983276435712630845829907292919204107731005705774272884601299237867770040841168454632372606745639010886085229498566647089991569212853397205420126496674987423598543960322547100017492351980904859995714303380990144592207912299859130342418928498394037816446548864506913606160879646339198540973070408914400795835194037831936078409744111163842258228733515643159057995787848633462034325095645435922134018603292088254353418935685684804015723431584010716335617245111010537579242476157636411954854103299635902755623575990179394621873089365105164415572776595775829366815163411310024571435641946076003758741126204568105079165807071498727974117946695514789566077112193018763928649985550535662627349741500079344238278915291047773353336395065416332189117193892116813879360925451253961857819172262429800635911772161440982179878707952601413962017774787416347691299708039149056606560932064372308151366445708664277299338509621439237284042008976557777039205679651619308800673666399011467888082204421363437469658256562120167809912107498526399815267296441572715122174808623598201904549870568665616744786433569293518541305200126889799569247952010173382900789276512489141087820943318752936967207189761487380741989810116127823104066115673818766018549826353722172692545544792656162487084811564542580546583044986263857403405687624646231717926092479088970614618884092992430866143557730042269277321483908338487975214369593800180279988965604536119676705833810050778427353864061090214117318513434425201407681375567119925491585802350786959213865899389039182043376299063830777490596354296837080164579221905079578461057994367961833468136956945280545796710176386161819954007221561907821144531369358055270277937880649158027058093257846491715346372387428888889994993205680896302961154380158238519498694254232255922877443871224253514333811568164627828762437551073760441294217211948994456099107264814966756511884799737237827742437007575108035117623784652655447756738460823590989124682354893180207585084901616822014099515606785124174446352955384894049731321816690382154973619044411064721858932928695719564029027030888443567583005429132522149353473629532357782247247881144556987681576321160020289033844182512059801740349411971643160618574085503114301609348616939204657340644292309610828547538189040649742619224345983369484342132931891942501479917229789334601842282675829094549554249697912604964592810993282172946826535450719220497374204580155479041270858191609972737599876551443677076035439354821146599458298580762460244477879107562143195656030771843293259078148777134071392678559200895849206130491604989025981600024801512806696827339978885944084194186707927032004402815759616066142527054301770361863363768665821614278552315556838082985058928882155236422811974687125861926108625368879712692878649760643494831470484658758367971973440979607289261444366808466870937001633578730720887130648947407895456877906685675540463240181173678003275859696851495303746224058216378212986637804094783401343035981057875236323997331711196626652371564619654427205597152639169720274871686942399312484404451467466961284518016303128759699691253282004698547302681747589912433052205541851924327771835678721545425160320847803454221634198483651869057566650022228037362442548287436259223595628426135658217402135398752119463749119157534104339562248142116820204790905819056728564819074778753820160921649359558835491056203157387557154967527150917687388461615092110493041022753423003688457410543776197385333423787126480277310375831946411893830328104898688441387745578084411802024766374027386136990365177294691459417480045073171661676736305712046102771796300162559479795540994561475687964040985582414028836549651240360018980868014934094145430129669735847769932729531882944323497201492093409897438733036900778720593690715658470748399421369203555203957927398844656180113574250702658706780221415788894003983333204485348371802832050613914540651611765653250419095200826062084400029567689231773076586090325253857922699840946067244473084187964876668005149484684537175912279294994753867981796647674313806673981583912588003034691041055948372441446918731752426533900626992731185618456838436065820884697020049527059924827461651266079050305612304721334299689605469488345015421900109690996510484566740227297104695832033375205012780894541563595054022276086150374473312504672448761963204891076167390803166651020735856393101049212987251547384126111517316894630250225438992485278340191325454146578608756355651517152434538276290981078213469970935493144860537082545679100125084077473752864757141688642801433446512360828640887645063492361031773189004149632895333783001135982168146146198704799913477299674872287449225035790400860949396141010157739874819009992085959280996722342743520742317853658882221800087246485271468039780405267481969507628291603737774909654737243057143662448177714112730319065605250342980241862250416200689131197407498971313312889262641688357456464152679020093428465120583988318652710320635411760756229468671788061256353548472873377591263733295130839683338291138498661326121752133230125792344338100286328299155852763096019514937293223199581128234148501816828084535028771265867423188251632474578054188122183602457361467237609021356715391324537093368962830347444434525247471551630658544728015353809848916991626202990504137612562976462753270639464185534762751359933086897810002875937420482431125179794558222283946680082522434365612945788147493222887774948553639250126069164032463195061627119754647140438468046820984091993988005014411688291537512320115037874997182419674700264745196623649451820257631339279028165259491979028851245944308260489093838929969596085014778286343588018310378960675645861180667813158619049414050595277927311305675965622482132301612664116196234030709825915227595994008648880135523423451634705867769761558712169676638642168242291977853649429743139429837006317911459810837990227280797081320569897613642220174656719225144521992420327760055948656556096632861885188249993224436742151260154647609063327754011057896490020589443659025142131344699785841356660860895956156369324516484701070010066088644070611159150281037734603656756546159096471930042589737790069412855609159089517555432166347563614753095395187170339076487904310843804641769127228900702987539961460660866701743682311762315397615628220154354826090644863048448522012749118334327283545161392501304444748566481468306507433032857569493883201967520340076143899972748865472746594737524834321047456617542757743420766501272194267354940226846319981197051337962434609200434712742087628584433295577185165063079015283113549923231813255456215924465533346044310064140753647577743682597373244075477882386777825075457604033754953159241967660816708950445364368161060294647782866576956634631354179026058432743380082086933650433691659646032220246646130862605384733826259486666410462303370901275350500753684320208824320585570565926529656648594417656793830710141694384885932611190697145284946588049873570267057068780696708105747625320014909579036980271228000111732064325055235704909761886871759910905082001719816440552902842739456145915192517733077276205304697099159218105559359221163617465734164652329706198132415349678514149431881110315851711303453620002289212151968182515188420622804941694822325571044910548514384809263767429203747842338975472092405639671890511889703762767603176841468621935504815056276614327422936110589565839079328801105097354559447655460771706561353025404686676103847416257826744241801334737754290038838633923709735980584776497273007884536847387509277899236458160551334036039469932771716018654310179940208365478788040078529149998661318515669922968690538815952139983819813617024288722990979763022593013057117026965512047726303720515576534775804626925152506929152669505682178575370298152518461364771195973827804832468868761202462065686258666614715456354540297531223539061526230400922309824351978580639927493575569726770967069601814758532390906391193048407000970800215384657950588183013577151075414349701771570157848464918153407136400029938541716110019426832640662990363941697194242352652208062507270167329248753880446144995401938791030323716800908559178055769904342077762006993075807307801171164916984763965504659165414067559010267251239625850498520842890161726733015786190733883568185806271846070573659227215801755719357231121266705033240581747215322472840965727613492624452611480127689440160811993525158176245848594209853677229035268793583621780887670494658290805834568316819187086591674582837477126820267274758990157871857736340225884002290230559491199205774461620244600249913035208460971308837614901342464258596067738819922318651708339435562137570939710525885215197007604750712813150405854758494722842139641615259760244275033158577845432193388827941057072943345596455579563238587797968778849239173411075317167717233810685755379916889451855194439100312157808579302147125254001511582688020656637744844773051485537418077721137878048420121847735920691441546891276922132736787572790535847843717506483890387657572492656472664812435472537172952700276916219347333637441032336719974187534262656220352340207167225393648175555786393536959451377821927138844217613378014360891632865440406009174347586589944700633043461626995546367559320537182461114946185433522617290045378257125527707422182491117549524226636957469886972035299364176807822902362338775653897739237334285668423447161111122548211939634191003248900608456389030983158361750847299193610867533477081553141337486670174363824841646006383192870956999665217440368417864664926266740557620799017140093565797812674103481504810662159601250722229323761684329468784098959707639533509682676027680476923533293402904935311407315513828399599049640825412970995965020914672172568952588246949784760583111112707594231358841285116021941373626633599928430050907715336805337895899590730982408957549047478607441213283315411054276476497619411887384157986448822907996645451174816205867679794857143671595824636259690170671606841853603840091728439890106820028317453312360581676877111675985679280105748930139426748896474948438619886842675809140538040316437710546894348148923508248991430019544488137772153131235003634001201343863767088319522911876820531104954699980218883958229897508272642796885382742673337654549409687886602583045192205793827960341627944567919807364817411814187558535564122441979659014237824196523247203639254203467619407739240278679151131321749157869836818610062699787422749674539188387991340237453061903321396091958994682107132232891915649977965944105004803228495377785681669549370594258084638809873573777442884745572685917732952866244529205930169561732721228825511281790533164877743200450298145579208019552944311274720493386398236860632709612048950405213617401905275808705806992535612653091985670301710331313349516116693618955370667078422556651676538904365617532601644810787568035649892653460479424621491723549688100322689178647128810919331514475391100601786599988413387064776963190630552194690863383147985072739088133347814125030325907234217228478241634070391273589285162699485618393670255506374438977035788688167331490282893233394923696681359771825278243964107755577077222080187559437228419808452963123238003914349860186516078863482198347826612070130826318650909910715466123720834981326758403432421157684339045496507132437844170046971327050858814290261483044919363701081902703209021084528292411052887485306684938833645559670556192738367227898471645965514341622337874979242340890130138837692270137165441822747002058908224614350618725150067132702747498192979831550801126321120664628421537373846086890533933976576865004826208474434329157613074874227860590129061381940059256771787720741444645015222406130581494666878263932710172159510490514872894222955241180462450549198459945804120526775428957510372739352397291679884119112816388583565238703183457981551698701133986719335567271974599863712731248328979055572733319951589028653762543043822698767597185817682357340906203640855315496383102109552691804335919022788410146367229083335696358783370728786062490827643339234848721852608849572147056848981543403840017659473898457003264037328759524039675144407204186033912372462924120170666355009792929273914896670085541920556250307172201419285371254278182500154476367379077990809999584318365954012964630020975822676539734707631705496712512197741987674589526538199803603546841306470939760126073670088123410498261326554558199458961873288659705350150805777082156883336174641726843213819152846879274754718653705492955026835560615249760901717581338832263563081999621207781864482365456757607805001512247894870126592248087492184540572920084839528967553048681697778364714615840117330706556332791904436829366247065325552413311412129441606329211633261725613222504145185126800673568086027011656215464634554089785039044170801560356141495028465630642789102234988455150609739645371057924571041700577569891285718215983904322381738248164726812891421102471244869646220099007836976811806663424101359153541699211681836998615323759448101881790703050122314716446225227803636089160591055867222219876498897928754079958129843678794767104852763130819709374417476521615774949749185243554975812716795390546641453789085680695653524805079502289962317191543707026523460749806883457147790176018612690150424468733177845541560061168612691637282433094667948909042356928980265620113436946005846010684734769737208084351606329557784147558854019335125020181910926099007761527678400333755044174776635527320051985776068877101530374269882027958517752391888284985991920538597050920047010226828954326353432897442949604706665213797416941642083852465590104519100393193172577949241951165005134853324435485354459077950875360327438951632317724683061933230930498061642973469783468347884430706938245869785151365111186002510221102779785865695366012119960308295560401823443784530709697800482092626602672352895783909721356736394346014142567868673335377937860340381026590270499108441975079545836595367720146156561740205348953171100767897242828889173906314945736965187580376818993456936130090897475735323258920254476067646948470903268797992010523146495982155578179632140649372790386134386225916139501371849486965515542366453992615210800519844619072121285528246699014646414372864524081026515467704558932067716076924851519309955527190018908876766497447877661836130246823793339872775932354776868011315099934268575379618824573633770580846496985922227401959172475098851503668774281201420671496174504685143204667742382045686591101789006489049238947799946424553939883943937362672778850854967282240429417765400602260384653463663387370014474209912284217249891091512930688527751055339710129798697270887494547277667008716968933631128459117159565671680270568932803279345998962101888173322852714322222082949201188001832228554773616411439102821700372593769737799770112248010839975166287754482479361856478483957092943252830650331184290502672390209275708382046419628044388194612618660229173164079471837234373946347178431891992964648883217218143868035653808704912426292355384347576621279673758709305606381243541131281391266665808840401313645886668255320261522740045618472952693384143292839870960362628983110338851502671768252055366973372818421263002696518480828473239659563210550479047450450429771364131227808500951904746088517718156024328645718824386608356894081050457025606864338889552794423158047012192741569523461861917543115366530786641852833866650268662829274932030823781877374526628104473497699819853990741583486272821652263882353070236519171975725281187196743847849686604364471102407255233366856500500805542530956059693476417565208996133448165833362364810306775962635922878345004266664699206942008623547682345070642736886554843817212777119338768646572685985734233884517785099134832110993883272447432114166437581374576235859090608075628303770372039883196179638323323455863744985678325580030096096681546828341284226053775894092468619659895322897639708450818639022593303913957424573107228642367889156823128326936702602455518998808053858248177989409325994399860679721184191839214375327735166108022969869360506832491512066276845530174736736012656507508224459981278169796802537726620269137547163914348642359624553398422176306722785376113311232269341621115827554889065972619697859628768315916080731737164720314075469282274421172031781475220931992586202695709276512881406463687444911582706269035546868459560692953908479290464556983659534618913892544466330329762380775193545839545128081033579830008816518169224534638775249857170855521199690107996520259932036167931043963030162920468251811747386292550229252403017904007698442806626687684347391689607834381498201564721547465018496839221125694531443956949763290368488949501688436435151710709429099361237343168306357237258752450234098839787631855682484913404360766371386503956951369940523612091406253651248852072980764903560770393608319370692163328822910638309155536200337215093200671625394648341125023113931679961827881820266879810811045504646599187178666643259793059043048363537376361282541178612612172927753262098297565386891480575378491933556813721574318517025929227642163057391366703994927716965804619210981811907086837681772921672377740711263726599858043716112786844657834495727663296303818682680750479662654089608984225886609570767013732063364188197196090049584729721858677504756345472597246756739860446095294619887076825527429934907560974364063767120834609383178442789123148300409813327246905563952755837545737128008737415464286084208193648084845968659465345453825530079100168087486264506361206677321128005454990447887628679513181336172304608380893374466998318955872175794335223711895383842468627011340999982156296539067217752809264143135750544991083333711234077375437583483349698283797721589185524171173773249362812734671637520301574443530548465907308716683104539838326825436743830058304215258257072735862848531391601641121097282557045093282103579178808983030608278195626173795455848625534286720885241872871117985693789156452271993123747778412012282758947083933675645029223678682940855090103493183496661223783048413366814756112485802473508203808262678478717122243756375767424746615785233985957025445267607308111679761202965462280202318668496668756440701893965027644115900032822347777979862064743832071044281993600103903122982164726471066887905037661465886116052409718480305454459458617555525740252632194024884063477529211019102259363201678211689680317633519406651714451756712426202427375780027916323067826024262181230962729964298492642403986141847679142379396237131688839553795069992594631270036737080925464515268622999288953043716438230243126813527911906494128857883431087992727498199491158417960147941940506369289503090062026932755740721833674412590582983850353824786288723282844294341145738225455527710530057255365592297998021836314245799064278605418599505627707373330949186984215068990475689213335501216289517281113774697652330862691295278311373129285978088992136877499913392280815401554776062372137200844323277025302129040479126824600853255281566432918320758237967250835534454856443618612422869507589204617293471601183836987688553259131595536015558516066185814009080299572251059331075015422742664247411747637287947157041697750115749617879333696683838255575721053532841792764867547839773561722519975938506642384066347360399718169991192086017091052469390625574575542189538514093797654028985061074267532351906998290575345780596666366316468310457075486875353729462593282036056669811915121984409934830439491016370579403135896509059338445175468260085135114270463100309821211900554413391103572728844307498281555870802013891897971495826522200168454058240385371339738829818246070759831339384752566120457449981818455205995186579846360144556791139517464715993834305445588765959509039752261963527681957366918074050065129970401282979555240403099527285764589435656013373961510218607483422388293123721561001883827381302360350720000188905170291657443304011707638132664533736490504133033881271554913404191430302764028007459643656890045048150142102532950087499069069454209249638351306288713187088307807385256820845116870301339743211212659047747915899924678369877380241041322841157919286558285311249502246280022772521536728885360936893842802649870361201584136467328765253562550163426541212920092263630254955137201715465829705961676982371049526001676863934856303550265570970129972229226427870537614725201538953218506378416193952514805651648439635065989510563463269664859108824310496684460843996562467359492199139775863433931568040615779636350927464197037256350646958354690988031351632855446714553672519291344934881042625796651804455081010019304002366444586539320775645702460855648785701105216831268999061817927965554931174799736746357544741919881991064606563193915873933823635274562579542745302575991940000867503727822224145626759062223750062860683404415724564862156031474229092198944561861734320533241878238912824154452747739886235664772527236940146378076974261294194272430990165068601240461555148488679269044762226402168866323928802257895079494336185675187251771189712166519182503464574425957343475057209540402043917364995597272648171079293053417184354527045379658791791401891932116498496301889244526698169364692085901633261204932883639982982513182616359749734635408845918762079199779222389964156107639990250442197562843655536454627218722804413700404200652347793031018889341050696978391698731600114645631767902806939595758594605402367965917829543843590095367131262173330598962427641079486954226075279780113783815295269633155869277789627958179056987132486925864260201805727518654576269393936202757622137507467960387166502663058360835371234839320490351506896728582802528305026400246529532778005372624992089329389172870565579337674720158615694059584755402429894168779274233217559731821340397642097188300371259418738729681373297707556652667177850393313628846866117600280161052650456199740409333914644125718187127889981283976975393680842959926102955526609952981650439375930871869616652359154733261868900139023972587029492241919918371264024962561256723942430365482708205211781748603821888895588090220130574481887631379850475896752277468909299635082015725379405985054645107681991649253142420468070700488985621493616807493644678711792070813094983286465793802856837962452134776399502274427377866871212045052332935628481124475329387262632499721914075981357112783273928649782738242236694249920912377862725024790664341104058633742428476549984111683895205004257459382004855585980898466534739351892639970780327174691330667166075043434886332735639371685522538486759888578025984672669166558484556208180454914276181476921131199897134478181184407763342731658316776851125457943635242785998046041106367965222259667617779458340694812019296212146553776065083315975924664269111392727162017363456617473806669387131035202494251144975632949304490530563290154407092800926179401932282243159229222848171547709328585360372857550913133047827159777698270496270556833377472512745577282665971266538546922481817237011927990656058118217111350508773401427358974263020292176077261696393299279000455203080899499796472807656973829400772152258626451088724489827874258960310340661915118524289957626966057316873584516247614490218574816944412960676602472017765400142414591884580773200383151648661474344345716157349640675950377950887046129047187662799857178655739972932190820398918114946387754339221116992326297367553868559210939683474540027505176844744963120602553331607905727115115147475049500871933534440521754167831622921221223851880497330329511529475724009676888267386504823588083656341104532028993750339593808377306760755355051327370422379404875458749134182248085802696192492585102948950960561909379911636873621621334463782129315365739509383175067338057601063068589306691775386124502434907275988797167087861939711369074596772125031604368433486046996875905546672099018637408949712840553800345297947297746123886237667852140535411755874493795586297985430231449285327319055717015694449777939880138960608380834634660552376082049699653712733343685514164731458813766121954104486424867901311499951296291544763474067924437986276029634559035038856761950294443995937147822293779813334294772887664225923422438459241612588495560393847003216805778287700397893825909823970764074911293304454432841342119881290567309300457677529654882862877350552824926225244119685941028262503631420060869692970193520728098201282116509614904031389920617122011937371965041179358684938003236455417007365980565871469509193949949972501976221189679690192738290626246777951270618800599604530477127040974250364042567251725243662639891223331813827165188089984913748928183074232044184869755523055064253622780527779900239467801254513060601006747604983061851381449464358991435903875461707064484893009301970122781312604147366007561626227658779942968087361707189320515947053899260930475266231085018425897135393683889164601525235512104820944759043626010876338442425314752868835669129786745793595448851836608533326873637333875388798326030956198993640366973112775062398263675440976017052097207703140347257629641405146371283536501233718369629316026236526727240821993572618731198584257816577400062421447069127450359054841007389474705690485556343800573073239816319590599686030444406936517309339413036866586975961626047322623608949320142490837568277726362049455842391498565360967651674081614202860915171948519127058136013058135231144111702409644477038464795199812096954367930340066646617674210879973854873289722746530819203065306246506834174713934347406329405999115887365046888210044243055651493843823034218627956078880085231919117388818175030305255023539895648838598728998722745302903586344722597658451029727474164019271904638194249428711569827615413337393511240193013993811447113807330060540457908954715094444951759910163700680755044973744702837002291243666303376002123819594263625352129838110404940457657604376382494228025734193342391964569299611004819590153571579772670778649935490683115659006866374845335569282659754218566542979077038318630390105103762872378762385986436527015274585483619710804564751555441547720108289699834464002340887544771556291409910531545596304029181396252319113306367751997200768243367957289195761001565959870256934693310653592060751658203686506417229609194159168469074023494453578705137674585232307619226988525902630464051793095946036609958648713225403796577335746623011629319990053837409316817545538243670839124636047401980691563963170442166511974862335738957596951691167124838649129471822161033279060133334691473053759777551077288005219756384625824756843154298816619979551033875261962795990811340211638018454258071334308708467467969558208764195040761176597228234478263705400486028232077151315338368271495538797213066868455530642030906531098791082131601325867468665608804868628516633258120126484708925897537075335890642946304168384388937468975706856428654179748423745568072699708094186700674808454248762091258534224475681590022651513986514088958724410182316187942281116768985973164256856359406287105044637706011646957921729627623168240885131537952819615681224686811743259644160566016865371626336273839039493154763857806180922549733260915109898679414330538064383780952875089261215879111765889424013272438097445726387523907034595678117016476173676173241682294912193696855834231944049001387369045731987451047204573040389745390710897351604325511499941132395973213631200214313684189950379565484035050267878233451094813370513783450617493611850987593699452114509591668067622232580631552601328953978083038832167963316055252614926156352063031050732047158003660972449149672030008812656358956258405774007947465250859524798856818374849094885498159961733653606993697771445858313198211431837995533248511252561862404401857871916386336780848003100902807939199298672733972930017162968456153316800960366734013448727877294313429041628398566731079092303850248818031753250630490917839468575412098885969589834847989178365601900542577741016817652062417812079950810135921334662000484215812882853859932272613148221841047123346178897192907705274289462006499143560160293765473546189783076330150271949300654413407653462141810202740832002724260304914681173605365835775918122317362872203843842799192544793253170953795975925090592428612113320425371478656872144497468134150986678894596028172278879069480380088835488766137136272060101032861688709853368092673376627297892823699648526455045171229242809364536364028449935033617774881999410909801786653160238448007685407414842499796182665876562059158296921032557902377250025514853591172399635157375809001716900587324210808665261202373739645530787924562575228206853067648030471479751214929585887194605254653052131642182290010205687401846015569879279232851473469197072518465475695828010578599743577272222172564252823381276911128348772161714008384304799648656308133513246796763551962738929089696409464808803905330022537221184696302732619968222504816596154836459275379002889548454658984331169776259034813950803395898583678402667600767899052746954320561080933252326257124872721545623912313876476298308625642016682656683724941270991536220265987805338058404542518037098717875058448463987409645145042632219078359690009693216597212755270957763784852668698876984079117873155629829450815351160737514185714873720034724330002858005799039020886233713287178202763093290963216996011335802136818254285677847458965545047324740444586597562726486673317499517707449501347867695842736458709313547908179845145940605984559490330556957524834291382166042879383283916194552862134327838714018088699757319956778653757018605477275000926452834015331092798446065014759015014224189318947023866249089231303005441280617170001897592457303265694593297107951575148700162724822697096931831184031144119049875152430984715320406659851444206535630431891816152139928212229511862514708392856769779714686695168246446035828108081038158178689120891548480224339227534501059615723598677161931297172719797733000268232649199470436832865461860230849908202138208039965554156981347950554191765059281991674035195610735185317909673108948254135987137390912866494051571947190761685594223797098049552477253561458361109244714738666499901301566550516025065778065996722988745693062614730786634435528257812768211098996115078423477134161515668160131446614070685928137395960308199727679268767967934279297104524998369839599059073636698501106669692993031024174250320337824564467269413798344801115241457465030201597915639188412342396602529860716534072375016090494299596615953101811137179669510339452985508404013074246103080742851157388883261939653724868693062493185455806521574615346852330253414346013385316303371554902034540156122894546500042812695249934316562320973119124976684288724221948957192652025458218504968647893784869692849836701240466309191301495241709039740132136833066728980441879516080963324285777322685547189058763818721331085461672140475023190372291625400961356362997103644861169247363243451361084621358288129054818750151931276743001215693661118884226696864552094099821019942199153367169721612519073477255748929213326221415324767532490439444914485725768871827285001625355192368707239237463235562953939833262235204495054935528366116514431011553626079985298496644903957991216634579311625893282208985193257125796645457138942117191075513472800469451507120258245227811012971768449782546829462062375206439258019514618511223688932294509503425017753232986639588541989833758348487586269463682662907978115736154283340678296632678301424843138868662879278565150848400223545655571283539066719940687210956469854697576296152999620937292746747825549089935186312880372612371036755623691890490835306060886297014310860756948641891058451620726427075866210510967822649468116752532223106323709110743260722046287739580454670018043038045022518653670103702690806680130105345097472479720999726278985197261625230387446272854239814288694666203698683857076653979469374667789003638212605406726409263020376379054994190060886478333992916981296486832964285646099314778493596597139618080709911661819142689679195626008456324142466635281372618390354741932391562676586823744361108700140668645205589888231918399382186459679185433705012559704687696108143636801979754571419110095006578897971071556510235537478085169409217670551076623583731763458606700948785209223419384557213954575263495007832242966602857614885621145320397714144200869566851198095591181398888007671774357040532180963079451392863253724335470178358131506458368567822140032519505839053402429711588845249377258505287707683965919803002139315441560386251830887036313681606509847109237741673452990608254719089452497556981166636519272923228851831620756546964914048864469889777759469189899246315067007667593032070397765130015002762773029860315826063848617284055856440105968880343669571564367647489276447061880396535431445783617422995361807393565023241821672055645946211867525592948718565223838914389386951185394042884491233735076264305592307849037948139195900000918286200466632133766972329581281832675022023614853722627354715993066029120751050615836253688475755151154366986529204942430165863444136658366024045419484801334087724831506942438655299981488502244981993455293162171502117867613882401723559429613076830789021819160539890781511749901087612715222737483877263145725793609648122196195108971009086445185258309707685600446549352965417587726030261717711771696079534359323629920376922227839246420076885807995989579166280233948445439147687511174248755722347250372103641731329671295322789144064350704475361827323006109477523627977770914394201736557739243820571639372539890792172499808505049461967844182470345730677060131670985602105869102631634648339623367486268938748259478653612141649453429143000683541888836519266169257717911864914551378884327047303763403824279878850928809361928876377530031346175681619881106102977723471731671900289872443442569991839338454175451678354058348426234876203316782770332540551064546849512809263014713755848399412848423933380117166333528895013334550148368550844590255425272576999474213355343292522647564026892546210714317197158242623016863963489861125848742724482421233049630298437349243401586790334630796271007671876694627276874629771055503462175622422478142863482153123370733378015767931312197204554442565790445713328284415682049564751605109658897837254030252570492829939678017633007124068825509566778910784989370378300381279747585171889431367173439003074857096610222159676192030963775542738362826674741230246152468387980375145481769726999319918457830838538916600712579789155069887470423639092922579757446401062405004635753877055464059702260812457319321847435252872248008116334775701535381284461938757031874974754387113736958625953905899019354717704679857629995073117531310049232617816504572906391918637082204515911737012280501927551277782176083822037651011741322345330376028100691225134545283167807926853148128259122212737085586028830397557698793619409662679507013958574879781732985624666484566054163322640558833729442801112767658830488222433515997977613153242478189713186968066766502928650696560187494881024894487101233077417165073288331979477437126299466960416034727177676606466636891367587991544245579552684829936034003489817351478652553270266180399324063700036104776613638357603226533307027390189942197204236708107439190175255495293264918425022935864522050027777053170442935018521890695515100587214358208535392685678097718287419721352620522135952569182786387985873150624160026947114030738347457480224983122034618574401002124500664543860969527293670851019951851506136788513623169975441496375677997274033283066740823762037534359650308192591915274625187184411962780647568864046176846640938665169818295572466856236537414004564220332494573189759400761678812245623295000238631903926047705580837013431961490902218205456193081844919787729762722172667214613438456201807534094478620821784044529340210517159620347097086263681777677907755384877755631173230796623243197284580595011580910511574231872715231908277381709698151514855984766347039925553905903595583447113301306902132336895233232531572345615294703819341787235816096155222566791903204160131725102314627109331985146598417251501107276994403738263231632964741781073751526885843440110846906707255964692830730781052437265702852676475365027133181702836924564252239462166715012539457810634946143731249327782026483415563369302114714346223157233154334397179264754998270898055316647962262136596013325950795436568717883697988812376696920558425837526704791877396026538528422693655251954744833410890123715418932455525819938358941583575598703940367403470560220412365335242066102444628205977883331791268801080522183482111224521002754615023975100634764247770434402835231591007466961802013213353040872038078101149916470372332824840100042962724914263467631080251060132075046654049413789055786951201247260377494830028069939419205115289049911554572611270596896270279580189353465005625312492056194322753766763904995045983024574216495289528385639928636829848713501884385073994142312809317573618483987641173556217306644205405410827587382603064175475788659145443841138773961720774861512839033978312427324953617456146641474107789171589306535826317674614799545107754965606245207212104889662579147071652652862695467136891981865693366615752665170294649385253329925005514186479264871890205706691547779092683601224341015971802954610308862375671128827162894241642048588668193129195781114615506764439291988922596142378587694096154492283880660388394693882556434972707410423444812609145386600563899582160982301353586298569939006918948315959579895511339017949724965796842227902173838115631836846752976774360204574475739019159622566208409596460221450222032042539842812308050737639791245613167492107914013533345417447367879303007078937719442682286498338828912484266246361270685659669631919824723503406207163398962180208585134288804717954206002286907744154743254603390012068263916799532510672205378349594207902861121869036851293771173643037775067971081185581640294283470188308146602865174641276584092655708583824836433721047982668807607216970855736415187178251715985432056942930396936097002542127899448788232860932616930670729495852359927570138156474509901749993631369929145320313509517039554010668055034171028793345023814336238847485193389450974566428119902525801431692148154047228243904293368870358348663229668058573937420092078310575860427918575177386149003912398898375600367156424143639169403399668189392989609602641251014258656957014925226891536277539486195545839280334600384202871353689289762640562324641245112435788726775825204757297495914936505584581412193421819395372812182927923190754338971883690263859732871811366512874358933531469288134128448822594179042537724567321343965492652895352394221891002603040073494135219591562825128932436576914408347539601948336637961023235026623365556357747779620122088011961769350933051213544305120434386737381621767574095213315002330607563955924332734716098998707337712879477071623936993352734905685995330919438630388806223016628282548075856780322565586345274234965591247804190812258757450825277103942179613244259797257936828472668602792222963225026955951418995568284863112599434150713225151410395391336959830228181831886912463706417187063453306606893729881430502545343223297471774789367379599582200738373297002242069427388274224184564127513132283485502061746600439787396548790079909635569662351552570361206476556385444939223590858903033840133962015299078935471176253840700504483353472794651950714771013266414615607932409312525493046977970957875655559218392283609456583710092567904803143064731693659779603438758507208543367620403448430500037442458013406691748878549966332350073134933905725150810974315235679649490334117000832234704093718381792534853660381491922128098611214300841485412624360432415857562890827836314838634718391975725726274800541411542464942320107969399128760886170631688945707694248212141401761625760096160606923180937690894929946011389348392727870986686651191742663418483662536948160427325334281558035451949845006734594788462423067048861543943484229385308476059592640366192088089943520141565905494380517621394140612710040613678105668275358375341000668348003605192323446841680314464931767427802849879335879029438186202932629437380051844330304362224881172186011558851846244491634877557924348087001458268869357130226000083758161487124988085041816912980757952300107216730491363607685216215808786958188826669751901292090017038585066877752666171620415814660628490934404055158145937121153383226621252216669791405365156511578045804867274598675746333087025856682758831982272141591071618136096140899951393460245938764775742699361558990192528469934187237826609522630240046516120702741282922928186895866583950229812627178027663197041930979976133799231571994474449581955606314556152390991605204707584297308134820783015276993510158005356066048775976773221671667837681770814908644237651967109236419896960607552566802822340027439656326308961768118809757821454400226912540778091467325703210693959898751520296725438386991110352305922325891552237083255687925743520965459084324336478223376674055943150536350239137413055594224459575143463294478326471874642597964976728955068056513045670514439236395564751803623879668900036379382467401971037238309673519567694218547429635273599723937136174939849920915705791498226131632434927044350356671782057977514058732857285744594905933420673421456760530255931976199649167793463789236955512874039537162536559930482307724275033106202569205938149344395022283810176728937598595478386879266092251216281031046438443561728399621968037627577141141185514212239777959273364844001358883510606922408003790726302998550963199643526433266890957974706046214346445913904985856067420812421109708902492222657387566170937983323569693635236319711686683373047797838389566688182416263646254724750118857781078524828322861848577693184712450514304088798890514565448341819726509901638193836132830958946773812643770484734728711701148291679564808214495205052176250203037073395091445910676526610559880716043946300442177860878090227042636871466064071693958313041150456771409272380152759854502097657401351692050974486251463619191742813240413617958549722077928913000180805624646384579904363791055676297840047956049345363433268024158620311205574102805463194605329938146395937701669341485972310871330403887145663242842214811225438761756549632959817454637787078110618697165517214339722509389712952146935985969443914489955592034118009816568524087624436701102070656286623402918307195326554884070146436538853825744308474165409618813314621241509814279913992312523454412861406511347494424619155933579118343103006273196282780068828628652279819625246924867945619064995837068236065075951953953800502745102423926695072624905382579928065119094181667437295682550414089579074574093419720357146730147989527281382287438737731158464861329069599059496070101844987353386556891995638143018630624459052161751772343177801559466309987030630178163924105652495616212529397888280011265323230912644826529708882628102702576179451903522111970638301078711234348755682612790124229453032493494076987400523728665282451035073798130157928838750712696195163376328524601435674162596112446929423281121674262826352311923867466999446449930257427044757640251196232283684270876478050073215344590427165469820220581070615120384587819500531650535684564578203954276176634844002073216636161555290819343501595241852704284318453717326062528231848737335513167294181741457713929042798035525764776552865193768816407982155084078189917038752171181912675940249548464015848120056556737318421059734924574546575882631771414142454580825581470852246254221357636476204794060788671482778587421430391025056872828165028881200383652081067605123484056256255360377469852607657240629137157335817725294231741963331722473345345810979934317262355980104430567796907276682570131544119433434503402419379197373584120819319396024580087463747544800665467847542909853717351525505905850311755280278442681862572590896992984004854505387137881994048405828860203941889253412071153150054413085217048592867307344237377327774029078937216627330296819950859164138948174426818459082300247752352770293416418469213341716653197844624381360541871616711157031003369966515128472718115358908639456175103096801596056809965892441899737612128378123226154308009876530831056758883773940377875860270826063277827797391704215279982957427068276308321240270584045854341426053499209831618313797196722181554363653851259684993094836577781956465347490936875740946851398418051950853712023262747921519619703555102312371500369734517841359505304330646485494560754717660666970358178725545884073441249779776221628985844093202370063365310584684789275429001015977806780852038067927726245663757997223677526774644048485608265739580616596984556512228821476375454470851015689225031759258933250459522894536783458215099551361529251634400069134185290935488632448387746868306882072079948277100558439618862339189679307634311266336707147818084426828795208502556576604497203963965464288634026902569141093486623016311856365433259603477640784676744057958154298053112493879641587682057756339290879794541474877042184850389535094638386206233457866206763310582499527558220478522751656654406983354359383390258067165085344782837660073762005455051476202457932748624336315592836040783456753976451307985249544258445051724879265819994091071753836604014914299695281425741750555004958930208640733134625733036750838984411529304175145628515139112427490780800073525077510363943836907532409797718413600113171090184908885021333368837638577318507424460540487453330342593998269625894253916770972714764046490987175620232974321672451783554372035793750594035934155223307540950204766359081002141319978651530881438372783425228555801174756817726994277660764195448187768565534866376568989698205018857441067827901292081829307123222996086073736859170037997272027697733705756300164645617597499781344216909302964209549006695321060111658685369509975395662876910526674899244210089180546932654617968970309410275943548766683298522115886400654286247398575081973944733021820842247292558810310482132145571271752715091302139005028880081437006703063032101594183936165030839898071907540363297284850992643726239097109647749214960483087314022875827522911467040945866347144763521311590742531659635649039907419234071084637579004120969265312812635303076252532030101506180631568386494969258469820822925087539558375860872738890588318928229326732980070079471874358954613405909761493029788798504325744270092644237572342536046251051858704073198784018566615625624682224338949965631652123616443177364873516560290543536690906727037861729980974547826047873698259094782788301953785539401767644411543724861596274285683813181502365589540684252044698728812082659551598920174579651427999593800155625693964993019653636223169079950076867291090644500481666960820024753934110259162537274986998064576390346980332888868225695684785478466535168556407453521322120063920833324465515625022194418128608843879971386205352125393349385988520386661468333634124927558472335514931945580178589431606626708463244419316564441051359880648994541018131050291655474154001281102965749108022715057879829780006550456826213963705432201242069991836537768535639186767656618594440263474190912137491625032822091393802953855940689588149170572146692695647073502740568067708215632999099743303056398423987906339714749106146609932762851934846067502119931614003449064915344165991202644268319149689939334056648871683184118767801629220039432059584544193539646055723163110906175403562848196791346367174279713361513668768767619473278223374426100288647819856459429114907676850268795502995365263282148366905246093695239992017010277555907920220826352919087097509584670152427617086673703461554724379165662739432291470214477657587562421486905353236883788448941676371896865649939818194085014211796757241639492008814971130238233603408097011261568455014656099928177303378156823160233384807565817170248564768061860520769060977625617465087913288345232806360649979003472911704802722807239591733246623313529747210525175475114605621473694102265001734353323163642939576483294608043091664171133936040981999009861205607735054473466081169986250537078771474280341468023832670865507962881183968835514335034517442707005140103482360051299222275613491415895767681982592142266186558146839512691785803076737013001328091596996198550094840788481011173592353220503103037505690393049961900770723282185557246433029558644966745965275746103848939839793140688865578553446139907211658821848125524535979441768809667624060803626730226160866393479675640659641869955563653924386653454444081247162161628260392957859427782859051739950978341484297605711540929859239932912918699992872127286591843794210006949266214247083879847864118784293765483147199632336059428895708400420766584027615886732347213941885388765868258441894814917312585147680297818090113159894120459836843529673139604734236891359746085809777942846206336075845219004945730646278894453546865729656076977822362279194862725215349405058071111673556542020197425414599028330512119287496207126171782888505887259496750432291960798591336628048616021459115511816545734136298015905902170152429368769154310911990884153523979823318620997733829813968583118779824258572647159668331080302775083461846899397497934130469621788079594071877978571652827590578917158604869041991288646923277812369685475307407123146723850697765756585685328606204705921081061306632897870891893726039985013330595604817493662527531506140633775203412550518223221234378130839234109661641881030309129108267080817822825798315826073081520950703930168535040208186458665619042729989311314014929886391100245457664847124491522847194546712248796136206027946639841642408360802492714879575196937481973028608528002097824846320650883414232312461939309165258260980526235247187414080637170200092475469462138627060893997967417713278107712942430453639367788982189440895808298562396160935022730332251378437029102640526993707814045559629122434134824432868867761084424246609892191002898748808464347927132747963112387205689238195167190805435393343496366588233722555930970898369288166844452446462604521915169836861563628122961786532158648236661994654820004211463274953821048859226989287161412553977686225958203152611021610093549139415996258809690104259698299869756767892046390380651351137274998178015709906517417821642860106157868764073521212636512891434364962244459173074162462729884519996355016041597447835553169718120198219890233155612469483042947152859804929296547414634338695385469142247113085086465564790843978435114915778748550826912066995743083093063938669350477013434045244686618207230967382238135513440084021722419635443121835513220146488421127026318271177915226839580619341732831042548300467563612384780110260896658349328183734277906614012317298786424660423220733805677716120141204471892630288029714608839666836408447016851598797352092347204270223228986538534276152515825672144452287047330777983643669401263193588507103596795271859548349045016342737373553585752788504429785802419799576349002667065702183784239743618491204989663895875572850258488055694349277057655149578097104114997314657445910285467340052083562825420823914309406742133114129732718006394422459335579068085089949120796997814276429052697938123830893941415110936120612677035919850299990922401003917195938666475110207213049427926701277000813094891647800026500825247528669281993236315684200986478408298837641309582650539903164126475902551819110306889368774736695806021363814660683424783145509618899580023957983175171997597887884964670440847434877549778883367306324126831732512173748133257425729735828912075361819539393835294401524123234266258644324199666857462993870864546597626207185498318362890064821257796504999176968649806910563470390283197298663799127031262435923651185487258624252849499677828542443841637879731352454522356187247165998987637684164500229461704969813871851068739286074292188068242165352464615954797674119193387039498327537044725150372007093937753835404189906914096321785696661009341498713257034975286844224366704275395401319871512672056896320511935089748785774453988005835805652819707921565913624365056154644779163140473301316212232757650120087472910505648100676458956247178114218227449346718718479831029495624542798936912044161887629311574447562703125323681147036317573002484834478194416177645367887364826766225977586727343678946126896802986508284721951105756617371463482732763266009420595665216545030324276371690032840177737544500492453807888874109832210663423038322132276723148945054091378142085165604072721898418744165993768898674642379322460545376509340611087029573854502030042443881885028728749108604915011936662137632575810386387987630039573013699187559366043562207866151986581250335463288765328557572869026956744601547035715183509525541128469938572075430335460283036935256636575213807725595834014075774233645876116206365174164912565285396704181075792639312948615906286760818840056579588131970305668718757510513285263844203558536552338936282276711179995177484109815207910539845079087170674679880953860551831447820299125627741184647799083342543021697324230755234268835534891197494462830411435182191361306209481564129748107612016436004363756563991338960757171760985026234158893541197597407651151905820561304448346639816756404941720966513618783971435864033661845051749103113135834139090108544005542694100883025967828508820335480099468701818631530931026522222731023331504144074627932391587316312683436971196172770055917504656035397852412717385979144649767642803146869833578144648221790681506107142180106493752854844614552448621564080296130075936818933522568361543475271823337357483076401158733489542429602694102163353397219690184410107652162501976506694584440795668356395535534664657149427782991877909991060210265368049476072329667801081344372940769610419379976440939694495226828178109743771576255269385037532621609331834323777116155259474642114481908002127071189701699686206837973677757911143882769947150364065937433854372665720293139942440775383309288306776708607639178850782835640573409599251031771189952499583843725396301956494430849172833124073143542753457487983191177444735707846097203926922169147411277849669605154929796892616706579967052083535864543608078152398857297504562117436505598053469618933992245255145003095950766776224172437070177622981779341812184223471755163340245462616772672967198988628494844812430785750241983431131961503678599478223644482120813038017147618625432112302033414029341024574765421158121348137493807577169041283846299999696108762666157073389913397588520099574516455677552245635958126872835785009765846962343044422730483619432722155982744515185589336279374957996736207949005544941965380223881386624675019827274993941727706050951285449558473055455278066709538854569322700939212722897958340286760874366066053820448473601550083626631695276360889594498871556592473017697982290347176673902142117194573776126971642271542248784521947940355336845562588659328377704382085217253784786436331603804263087654128296614476090900412459260690561889208753195004473540803520878183682440552644580438435306092619142480568897329545311463752768683038962058920415986413541319308332909979566074547230671856357751930716929181917310731928942748188995316857052359563485261763681544885244854220482242973983594051797121847804446048825772322969316339070379547787417118279442107481451892718069199452890882665968605573073379682888320591685074855893984412914673319818603335557297119519230274272951092613039233957827103539070048150271831295180505102394844788996730783501402810629883083102188973985515399470218526078379459047409937789236271241759992609002327882035058810682218779158701705632116971081359801137213515406469074076741436496892316449177686031935388072475287314261426076296028168071164832521976220731854466375668359664503716292008341975017464040703280176721647806648532874608502342587488210073290014191194313613105349962055916027227829386196343694529204874684824905525678949994427537885542304386017920265018580118674774803215454834978171223048952714925715781033768303801437585770709108545361603903634020254635389693835431378657268270218695484940285837830247727797947244353485877658916907810939249547300412990898042188657375126737669201628010339665440167226273518424758201759419349392679672553880457598447729865367153887194432288304291585248310005518273512708916236152682198499285450064834206359979820326891255460320491749035355553538820195782578138711838195400252426244726407996806458022810794354746125609593313327002509601901224324216604479618042309920665743027830898683386139825580082071960417250802355955804748878952981557750039962166018787029210180387452405697313175825860121186378312814015549861181386830870008097777283749587043338624995161210568508963534427575732878169408558344497498419021958514294538983674088062297026682293659660811508709810858772648929177584444324269059696634886141658672354625192183595379159867661125030743753859987374850247726061898481226029295515618222032439491894473225247467584901037165272693490623275791561448601721431837945399090093661577758465216799485759178905345180760661729742781074718688503472325127354743507093175220045411017724060084115073339594840651054886175004623632813488101919811183808661601156093690311080091606446340342790810415616524921635958275755869061008430923085552064484935011297568921839809651534703187936534939016600880145652460090429907946290119862252331008768716728916760923301684773351040876029932971005691665480808145880331022480359575977416370653464834106653882405276473020456738213502624473760000761864807808710807333672578156079738139188416121475915983915741678873780458349734231528619129212728576003577376191217083162430455860722465574055762511191518109777383992697182755730628480095768967715848404488098253790641237557146816013512181125348531138788460489124710179537548798344680783772544408683858589236893314203430207416863734915065270728455853820497914564884499910297558140443901122435896602431301947705432410123519780767779880648370162233096973025208162207160115522297549488927124726187333127115780267299973092747804869190286936998155544014180705165862628598251830670701358205993120602029398061468875802247832008757533219743658472919013772991475647206740542275618813886973016784051718614842156669286998093205869681406329566989576083792803815868634037513921145567633729367561630555567139590617618852847543728499289344407012550400271683681565644388393019148412993663407214369518483618748503402524403217492869452437198616598353123737307481380999163309067637005337331255050123652414695385043229333261001631901002222964145868472402742213485174213941274171992856505146957445603295595409828482106984700295611760372758603785558578775154246188549118313214985889649988631705573930674431123884635043915684117644448779918826029900876274824105218156459687349087528442969134067093301408297192441114707957183741361567391777900697126022012785580224607254379141413774205048284659438036883879131690511735444935065866857047863686619324396060143235176132192135934252508377967873094554182893806548300473809723277377292128291935890083087618134845763708241443529058919271322920251939652442811913035102393154290860975064391444280358250066914916714440464994795739428484076042566081085995285221907002096836964829970177783243397552214676231234151582122599741411195760632042283270305164624227080019501402825031087347213528573192614366107200651377052225612662601081804769779551360593878791702305764210044930106148004395855844192042591703784984114889171895636377302983250360867274063944296709250485642315412799635472315551846914551542833231698418518250795888691592104853697949476183526341525107397513136813632157999884128272927376062425128102760573174837806389444672282800454126227683027024686690417157089529050977276202032753192252505263631555268014514281981054987475990128323220116234759346557851577976773779550073369206963308416134823955401167911267708577709991535318170521227778546741103354035714326070685074413856036809330183475812432277536474341423288909147036598191150044101583834477632394723725539187632218475503941235145638195340073827145357416285569318545102520485225508665668282130079536835083940513328378343727650143473427469893909191302210976348093633381250799766021061756101744596934426465499570862434562977003479227261303794146138834784685513343178856057395613230048385152316590923603796798286232711876215272587138610571787200171664036845639229380542310352750462957470429763631060014811116277764125942254983919317385193872076994109417362294669721899682496964978037876120871483476682735223972926103412676364099438547461376974541562217510269957545881206837342652161185102433657672207120415134637391877990339986957756954066145338624636513143756617515393216221697166309071203331926821924970164978447088290123577413777551791043856138315033186581283927989685408450608664897803831380949858441243383040718523832462977413329108334280906933267338549844337365727558370975773736669566770217052694159510804589208010627534531456565977082916840737023207756243180225351570932750126423754965589778720952733589260571877714481111116267605015526614837695565471546877516579053047686339737348787496894671619147906678849292557963492216658478624262644456515759154050986526506503955514562883347183650941480373097079513985617087373518291644849353701694413465831185664524308277896091264391241653455191899288736041900262032306244114357660345508908440001278637268882238998373726904307738763528302628101550107103657635446381634264652300721158600348409931200901614856096630783729984948637259625228285921375046457701422804946633281929074819915740671090911611794179186214161449589608243388735145889393295990425021416077346182308601110855313707515901323485538487126089862819098915562380307551630388526619916904659144702743761790687167324518799543010496668029067270933696355898817271995790834606169404762279090334278099204520456603092596251507798052235140259156356030377761219367974847834975002152752182258459692158062700180111315896502947838259613097291231553656335974313415742676082724999103661141581342054558213382333601828438808481282316887221637972892957635875860163364144417299388816540053041697991450475786976153899359456817421012011003117728859939114930618504063833535341919732800855450403530115627682956986784805908728995571231409178874972926523727876190073490425084013661437477430250519678182594472376626310961216153979234049421734606665546220578658391570961320405317591464069836169813819625985535926185053784564113024100094829895483668027824118059608352003185249969672184810617344674008603318535797995729299443156239289015189341568186355053281661219923360086493073861618530007927210555590884172403365571178689866655977096609234345134641068536310208164982391646618458561693601247421736746666539644194319348610900509138277083141190090125952444895821869503426429201523042601688212370868999447080478951061298409361370316014574157804808384391197974517810736559923605052056451595873229665372218660638228215671069194031781542398952424988512566939279077165554338476725404705050549594703315543178413202494024476169436099117148305240202702429256362379768988749020386283485255366866512919092951937108078410603554095904904424897691469031156781241876702287903668446622698278967501748131467090244972441402297671136244884519859230642488301403466647247185466882422133729985651832295846122929091070990690859526157983773390178740432993886499329924983376680278239531974316067204410876291497748057479165861783062438766463122632976097280146571195353444981582199242347179980318740156943034695536680330607650119061145063351692342999799427874356374555949327284088497583853768831575265901576586883009327378073284855057465488905405175657077708243974011862742532222105447704824350172440422520485636515983369195047394603994252073580576369485423659756192064329491658780788441014963899686556100722792221538318322667020469216509374876171692173892153011776551116740174316401028847352544803177051544893540169646354202097689844654708750435753042748765536359961336372237862983341015023270442966042854364833266841562144392719403654336278911065098711096611812360644173254586746039892882309621821036289129797213291310193365071088476152304297530577372080402270472257228039058134599325824531583671394535105880412041852367858739170039726733853117713076792926822359746477283154610428707252107750891906975614295047855767196310444078630379303312755023933365364970398498453613773687957161005201857536726133797019580123721199274681723527632637961713638505304673164240727960162590586901796096884571426763866238901454831480121078031428642714754368448597033080891194065735902895959744151912514332472482395930596408223945513112211121487815330250705823672271524436752757831187164787343713474602028512497282817501659248208747621948125004273027450002443769704453182264661345191676024419735466232557459105012383632242528359734314377195207736402574697788096523353746411688932749928044684190094296372441379323978307657932823304418135595244845524094060850586091832991889385262699663268165108857285070856142907675728559912625125228859629148994732343434098525245272498289615102968785613867055034479040282509200048864835178074942364677999155219746131770631633754400667599598603163234044527242756942256297175059038486226053276207371806287418059894622452641047257965055224158432755061711303009909658210168598441064825959483819511424094065285490301696599844464722414463005011925462764525534934197729745130350720270542219988351757744821284098570808397062217176964443811502844237817965228772270360280347561074900682139244948905308623410841193607748645986367639686301422154189095739473183753968839617518630268049334749658398273793906992231137033150364785342902464817893398876547292848146976746589986189808696039457603172747038558703552398656881367219531521785684334239092320084408391703127461261508414218083653776819979051697671422754659665771751427755632968105388703354275713627431616069558151495028340233440406664401631897678643416791230645939642173149734965004307049957159155917008361098663070261090822953191881107027306889535769441323926966531057378089583805165130551015276126852300978504935822812285776703849091717367593177396670970055301735231341167074272416025613301306908977791397963955929478686996449496095437277427830478631837885983254875367549803351695103652979804869223519376643356093173061898537113792572796879731522456316615072916552633834514406270123080853568045457981809399731501412309419020249576768627023577720020209294059427812467419720174313508093731448695186966573275371636676414074433478518715335002969687538098733932466003592483253668527490941867642143339338425412540510967698766254672411189851339336743555501354267200423459820186544168703290005951223152224311474215041420454290365345055100411816707281293915205651250136130320004758873505494538260231116314736315888041948827214704018819665442096660035110329103047869505482365229449056880967268217232708601021723955271652968681585257664769196449568430040126765004262222674537463325727201511485583320538625897693736778728331657223675285685592695489067091519720977583365987789700143579249122269728175910342067603857064416412056662674241085708128872119086746066233723838296574914112996778344992834523614994992733229582638072863889013881830366953315264939951169925693060791306130275319738985570814236423036148634459337145794250795924076279592094566219019913495173499289953620280990336137190773544067458562671953715354436373752312721739231305278483053083419884929703631398314627921913859100268860549474893019196335351115026347335792985966981192613850744871055559035146665638236552897471693789566480517480473573993509944972443543791025918293514285876030897417008460176002493880677158306818216486368057566713958036260557097339932454904369213213925140224261999581826157751522515152596898930027383578574993076475058542264455887586308020091988056945435462300529028420188940940848788089942056220098041052936243846592462624012794667535057918497757016862895649266742393121581530808520469812579883447676999180120170786960305288003498202346390715766482544028961369883435306840783504607530016140333037888678373104136150526587889874561284370067426842034328641449331508555838194916595244215990568376829145144501630421956044996942747056891277879399372802573309576851665523256491289382774409375085150620785354206428448193764546252366375334695404015404590907295728906972086431774607821890270710603597676862664935090483046005295872331275832339881815219077481532097956814361464163883082978191340564283332128177409281594996595526757200524175277533959888746773926510443589432856563564469807141339864321823645158307287893057765272876216924796960151942888982289997277200578901190554943890510307224208751423889921686117614210086083760855450937427677474791776400782615028682475365114987853210766513304756850828620771199907715634514784603849056167663786598775496520161480052541355513427740183839805972351277011987701704627379579136712825317812775962972194589478689127323423295946369093144847524837982381621027264847730538977366562803878422478016798322091992867511973245221099993275378486855099117025771802048679448197863511129222804954726045355272750517146517881373258091847638827163516783014209141233775729476080876034196409538279633272726956857845169594515831682153392459478273480937165726156220634430532101357823179845261355221871091433278448654866657612781968335968119035096396469611252009685837960403373198439943917455338107219347041824337759891516745314710858699281443099538431685517714686456081113984016342495227339964466683408800432936581071986660341367751745276064945997813294369728840862316199427248587405758763919663866631320462453821521303411437900272675520554912866481196871373173933822469028066476031605836735267482981982736172478501560082977437657974651510516841062329527441112762609749627013380539383253362652635168867149002465322276128299612624683144027226291164471609236779774300867454048220598127982786118733245052771071577379898620174275751915986379168127440972693233356357991199773478780924431046677092784507100792653009457610164846819445939040366302882063384411521540744659421359054060312065241467839899107449822054932467437789966646651118180084394538353650867233055996501944672086894340288109907217434092379935812937430816350761306370419100958815399385053230751260936307934106246069039771171531895538373437930197243229522657887786425030499390563220530631233698354806393055596982640184794020930228096392485710832134019551044684210779282492428910251343970729718774555280989672698314925245453283453721812528464658588419584530848479461280354274356172295620862684700581022620065903138356127216657580571731140382134866595809041055073002350599667699109670182533996642761662455988602156778486307969488040816582438055613891709851982978944898489146826204714622906914025987037220802575082263277364321643637520283557711593036474081598811422862530598186424781203420798424799974674275790761437037787798350725379916147405065046349465202158863324132085126934273632732004699195320150316914034531386745230550600203408818994291129035016914784492128410572086599801648107655027896718247429247937926749432927725604914215619767780545649594644547418594701633407165397685570296626807422802894882139580878484798846194278227287804796635553008993598383923158750830064008647330346725566540430431380144259065335869543420624741709807211898934178568278293429199104983736063726229950473071083181904066563003792690747422377134580707905935735885429038162268756934007647735309098715204946007778884693044561578337881104345118008416498127562060179623145285331869145584050971414953470779612837729903903341830178780051823242646329558715438256152187048899847941314060824447329698787033575474688939081503653404173378889691889773804962196515043428808524197685454164394213726237259746488898142968411070355361539863372743960416107920655834482250511612357437842020392196603078231447848419885126800296477854180025026802189599463097802129035800824033339384338668460935664012630954860969225339979987832733787346995837298986464509772188594504095966159565038884805516168165690816561736053196226912773189901216493705026008986078802871868430628584001895945534412892981460009180971315655536644082949069432635575018626454584723564529929501633096205357841689623025791278697989641096282663862200397182844671664110052114802797713167258407573933194410144219818267853303080700589590691511233138662978863163526761386940546262450641258537453680094973810126747516110048816921560583734323234746394693039240716150358327503917475293734820754048290702967433460239320232469947887103425714248878456352244988667745047775496722583188315570011796033736257934606787238277228350581751926510738824581365582015626439240949074368213537291710197595876947485216557479928861007661451801097123228996163926911007496042232904477733418649493313213229253892885969217031139536800642630278163326678859762523236579342503403795755805772197567329959434819043510146609152396505838868273428694157257599901534186023783513922325501829605823248387254041762603843945989463393108796261379469804905965673760066674091197177828639105051366074158564940391213552541679107342188045138271112411034675743094857551148458776537280382875164008948941463571844689172004814974884080940706593512397008739103929194413171845104817002880237242170757983827267004047557260432644652442320816228727917711862479470177628322651878313865715318128612516525617530029556054507806391111391822704073478019289966499863610345105094178960175001155765311055008686737321712116236218847264672968020364028841171593906083499950690482909530927813118471992970342984090626065551008226275842892552786103635763274774209897816220263140693759541330531516595428555925265173218133153117478604098253544216104498065577774132348289118771443662798355526136668012965100058895996084797095023858835938462150992043218142740964542163831525260051501451691799936323005662870802312173862580166951276838497265750245350211278503976958608181373579648328617984645509537451401472826476742831396787535849516421277594103485513480769431905941618694686660107480764922936762368027712446340019822983431911440575759298633132574236738581129348653985830319785441728128204397306800967800184956592736061180355775354499925460496551630464144717521512739915246044990863088621603589591903269128160362580472996614737120082105437379734821260307733352119377312061213863173064280215390229231668418183497490154593148611363892612171848807205286000362645751871060302297134218726351925796643394129915556928058411472935729740653065333081521615687300349908453273164553762604451831849661137065819898635597124369465330520721792240616600475896354506559348084480028850450584157394105994938422214628039006900026525245689700859896203392587290697880399943471791522522350313452728561368223470334655248693856021611928186255434701282479192195145997766868206117569064932816579592334088566533517533944620899499661371255723487251662962497936707597134926212664635835073044804338793829690717350053828976353156218808678513748861428511294411564673148581075888695118666046476898965795992313115977611946509366295579972859816158889484252499586217850475280617465252293927886893861644028231163598022616730112521142769983620347513861686231309839609797360592103753715385120854045585794422415659226500061692061537827221448689467241578065435746892622610465443296538662061920910452897045666901717405340479411234414508553183395489900708453193280222938402769372592838782055319160558533040255241085121437653659204139827081250162906234884124651379228704235952734086595408320683564707189535763782695454957851168495725559746177295623210978087123411530733864356784996525186324622502114711452835658535431356731145407479019197937302766809091471516432986269207515654934824373071914375812134576060716186237717751548663008014171125877221865808545418914851168566960343422885685632039851321602448119933088661561578894312330178711077714836916987057483084442313207456470800060089069272468461905248377228425011721195934427065503792808085942466051771765641718658704988408843275775430850075954514548964614041149948455676786868313749876183244433354252465964055561827500756842156139456799771721062239201058639841529781742321552650192350118007471370000302269755989909543858738213845713337733522098905054204132804576221117933459077546827382385587532545685379241454907305781618527879752134408085931634902111835660331312741993208213811774128080340738201906240324010856670176384870030230640710439057922594563120605990024613232024888059660407312378721960111128506620448031633523552334589438499833235231513489257872553098102193424130881388403537553586006602079087988577179069026606943972846470024892266880884453458334167453969803890579074151021728985438877518149673191070468359139209386702108490726818811910895614415528927880877639919557763517533844413055332910092571992137834889417271377752671161925010194939505812422326938183140513559505123451749425013387403540550934984778294040334546301633390881234300475625154565029474013181613806834257417849175309184135566357405324189000710367863959320861199527527616843548753663267443848808224669967277566238112964445902184387081678289527868822826075407428097503917264245728956329900845352129586674875619530500352047313926855985749811749957968505570577944326831842459779042612478596840659140037866979107731088237002198146922559055436796397376162284517188698786276863478654391910254352412620951255820727356612801063865457094142887023974338024259346882472731982299265383937335132127646618981085578088762256628487116816173619362933776159370036167385192362231679760787831528224865084532106891235209890685241508673318259319398161066464369605559361882548676457155140168241632271645429731394624119991251038109227215883642948405436454884122645287489612413190029752963648942874027046046162135617262891530399246121811098918360108852474265928108757353641420483874100037240443202998646042056478510857616580457162920777103701924517516999401795459498110192507765861712089336004456392113068173764139808782889876249523129839208125867168583614594947253706852682458418370421306063732388994161235961653613513655665139159160675535153939765742243096866112252289150952351967729043738338565781603270549453964596007441351805135384423498269436344297230709249506893068643881066359669394979256118535737462317969652840699787308720706834637883898182582761524527504772462526975615345905466028891806423737918781896207500652763698875598973956757147759062144114771227498167137613714112040882391681643143652908076928464178553959958789140575540758109197787785554251357820329726302676786933289867832210889182578969915082939185472247823037357081966284555407495557916420142474789411658422282540480305080961888005969066372483709241085442745491570707982980870083582947303840911754289656124077920321534398100489880706697290437983119847775045760160137320493677458456558118807001991736964088880132001671322765916308432630427601981486640958874188177807045621961150768189906116569553298597347901984577046099532886908702788422502888582803087042027222301727554434162130699472702941161706653061789327017735948954562127744555203343251845002055898573296652785433581506331293665238450246686425927581936417655188231828031355284631515378776202570876553638495245012050571739366196475030078699505664901940275274135739795473447864740936394376180484583225312083655440497999686514689119908145100717771389374516848640192203096988300576791086887971166402476188895607979081819314456633509828816327533459756397851772031648648258433852597938530672357499572743679174940619171569226198564446858593464735734990789763133350563550188976304533968379593889313819789679924136670380466048878336120530178945113879503586708788762888671446656827066592883893397138517607408912930957101127647289341052884541094402535983075435696071444045937795046059451886381849805554018408284795916183187864095596618268090967901776121281234775227324498556995020460651742179425939140444300569148438020001776968729484050782574165171225551734321799476744940459928582136894776683366530945032046955714322991048164384439198191644943916265982025486532522199296342771804645357549164903055771582470107492848844388757707220440124763239443894389075894954993672828164938683502864717287289999505999413178194333961211672476716354052786241286923600293654959183158070540860281906586972196522022529325051598005496126416195308405790016663191037988896814802030920387920809559055610457245864609390762012459154276996163342519396669287166464569771956635588411099873744589272941718701410313220014770219612523329547316563372665895464815524753816086738671425995861744314936309358931586493376541870929173593476452689551713739500512082586276836174753567850707242703851918701605732343634585421736100798221082299810755059681063650845750358698648759074398081316691940350237437493824436762808902482113760056545430265417250192407429700076068398074000831537346840923564956705442687013454649348023016973039240236588079900008693275435852703490024186163361455141671272960669753637770255759975293059427704224956275870241022814158463279802024108185473818822304824477851408993522654687570314900614229810361649641150954667425059649185759761649540460950707353741620253441011206665027025994819405395729325235402559865951775983946188751657508211414179670292004023165245347032447662975731218388595594813184371118035120846654988838307245289824479319579762592521018574625509379118635517349743479769542711172352123557453783531551642998577199449520502919610516518069384240343212736456856326934762941289669328557674308417552362526600933922757708952972068727806940493307429200500733515309411982101506942585373112525333391376101371166636421076483363757260129900359517556357657091258440697607362704295476116096216880831554922251270700233499573623850860657658048266709230344799410514656122393679314478305294059094245110902712844312040331416523875896107933364675832740207920178046722730992680955875904177460150854691430767877548765780839888336053065966691178866527875487722647144279956342022953277465632339744451155664586182067842837146213265221546126311930457815979934866333740877124500703255703588255689060859384464974013074325983483836221213083233029558489185517857413147586865600418528726705745750991298876890993565035869701300942145179703139925917665163579462841431934006991901111234709845266140337900807384993662871300241847601011201256615114632904246077429588888673139307624111005956332784951054353447869634236945312395507520534710567166820252748537675338854482872707864388051452335687681840435096342965244992553832188865881971391714117940293942242740074431448576433465079711110393606961626326666626042363657569681289692836272526943150462437749430849808164072329079113417677450658431492479844024547030256833359332740119380891183275381585364781544579121431038434783122218069111143542551979699929835913983203554262122180441597766976498299799193996175394181947575698576808991491519476408785385309756507085829283054930451476093673313328199287729896185609013119174974220383542715033877222887890431670151929994589574945514655016224235966719630275529429912610232430444592310641511293433419201437598179745642051206404667656874633645328286739575972260694886568588893934995421738939985816301244294960733334631942716047092496485728162825177242271766885783881937355548849631351651999197137129181550898068237061454401900577675057167301194350897961675196961013928343131894055835063371402303757869175872243386065053512158791820958652768557800240748876186037643696486126220863359783822445097859414077552734088322258639424390064084259733227308249007117029148634994736147739267599600554401290956405737177729339416728666224137366653108154181166416741976440626791569285709653993711691759360825909586298183352100308766694520850609101107180011750050440966383088603328507429772903248016356135396390342909426654067120066175671143670233890720115188417180500082336498837536969475598030606660661986854278660210947099343409907022475120562649912757574091899686601633629753326317426484010711860430590075916497929422687460326817783469882683690598309605804003700310562469091348278973469542575903365580311709388559074997544135247233613601699528270317201629188119285582826103636057736705535911417823057240306220653915600841178202293332083870029325802175070139127720731887372798807286065967300335915211690682908232753787932525271219128744770089510622816137471069599663760965142467904377135947436471710213491831569020578768965437519621680599614323933367316132220336277647589409599128229248544161349191134156331057475276684077904064841743433725102011435788884531520690613002798553857180313366426150597122450305797428146471346614235842957751043823939899401424933103899660285309113617402728955775271224657940474837595313782254370263614762573849597969178260615429334901007870848995017464041567587268944415287611857708402560726747347091606638560786098563005411727457616864298696061698814306985583480992318577351746186914703319196538796435900545319316855192297169530746698801401451781135696624267678398355622551897567652140390919274233112084789137558795846583410892481354808653070163336687278085221594585342586294522369898653530362651084978200766565411036625260766066107087599003301449647159262470198716587544385300820730740338574362309460869800527169046643444277474695395720639739808567552125572478658576273077555307889793951680466029405408953414826149767287327372309753220745048498187341165569108760527340082841896588879251640004938869269807469543790213042908332194817470835301203017986770080124386261854299891029416289746683559877213860421259299709915670010244542818187942616095006178665132321905309913045338981124209205764490795356895966085958742450968400716177144308575440278089764460701370688976059754172073442289036483125499876598594388316569939913327187524377577452939238171061816631183323167361821145041369862564603049661483728845916221008769955533480558164860764891748152790560752824274318116575288664492634788153607152816029289811926633505046625629957640032656720888530286044371340984898858953259035200177027509624867720137573056847395473149324050060268318815345946861710880289159985612571695645422047819385709178551464064464915177809096044216649091984352295536085766142535734104073724545287708221966744093311422107419168244442817211472554707698293104632524446633134249988993217346669378758327856867802378250841389862110531835636944029507666078277963121762456788200630925381129532455493022832411148888928110614981137842076285168850224852814427170968681017143446852966410995190431565290161387481920892339562642041258468270974873816847931181476138688245091800784014994655528630632767794000687815688555493643357699960885222268874860117136595311956329763709848733994340440683008228744429183785681293423990369034916335006337811978486591444319541183758247350472583473122587394162708570678436162204243705524463479006920477293377639725190206854805207153618821720249920358782545834901812953622247419025829943408468916573696453565368184108109026435284412008701791083375643535740590940801293690376567438121428907587507767392729281448745036742453992922791653510258446582305842965934312270466044491803639760910034954131937851117978215161483412507000793690372312701717179338772439322495381193783461183073922795094841584333200697190228225011159650308336695868842662716576184218108191142122979133634500796271466226730809023861258255811505078298367076367577980897922137578067992810632525903007179277153965920489512607029530880142459711624648845189554843360085111813314949973633974804176509816744535995426801652889716087580689570773792658664841566570150586510067296972623431733051531925222578066729527799395692973895558908151788362685594085836625753395557462538255352608774759960001658378354784802363292972246950043878482853943197493192062546084983399407427950395215784527807919126680448079652276164460305940456321384309189270227916101252149371200560419570396942605644585464769349061918573432169576471671900582018230531284739700662810470895087429443428275625663949973230292838211661113730476030393280287944738246497154178510362700255055281997589466029274909475558624479694182264881098377311631482661274061339596356934847254901589883676514699826467398595659213158589389408875608156757649209252953414012639960074677382894316554741522860288596198988713024382756177924085392746565318609470719866527953544909689051181475996017705113977418282796465979604543521760951846582025097587071704791019296015637818925932368704206928273141294002473335463102671767113380679203151200047040578997249142940357018018208063060172623264469530405422828685962615041271301330261956047784951126543730146264503607883832889295094463323805403358700181817485056140413169935697129406464175902694604757765056581815210825868856704616745193904554710836022130321747419694901028919122329037417271810909826206685131440763726931501558640282629886211439128109708255640828264951738857139460553972312770208860824571684511498368468247896780523365682083624742557184674094470585666911466175114562607725818142061346082812539497071577071607403320971781110542243157945950915622511683687260338032038401507671551709861854873718817561581934178174371149290124426572607342676616877888008332099311853077445401503558910767368695219337584110026556232495307033613049040243808386562886630304457095667776095908818756689257815865582821691765528336205247345489902275235517163975544172944223785679398940879412718794043582311774302155666521333244868354782046036275597456880535614426305202517383252401134019444737260400752493839685604290519153847191988037478388827878815268344301386546944897276522020077212270859120619466539483573569149815167116994631208860155644006103880384032058392215611541755786480361167305170982059646587100194604637272807580959496661222291389412979229891961349438178005573859518272389681470014888129854580662424421247004856371745352118471200087366883173771901181848885936606201047742077852576826824000507414506214890724691216760969519406918084718087613403633947418550226453639958460166174193907719275486329091838313241105529345743204896756292269239143001584219727798119826577474421839145059710470404444388270673062466413087409371856822303805973077751361548407499016401318246868526574663306562399963432472986241915317507183043197585805297343856553638117034846177858893942283820713107219309037055055092070880997250973972630644060908110398733586775595931189623514976769564368810932617273646357668742635318468844723444049742866756043255301799992179312740563464588985241842370778059493845183186233615512215505188253096530682541284566642340309794860315617070213102140216783142626160096270918572071335304569317355231136189020175745111787132882148900832249469561533125616132981350046883167756529455330125665973472717624724417410790834468731299018161592375637033650560431999514340152188023581521827608599257453198660073795743242914056607715663490111973675710312179604591758533117657080329036633385716332576696955004101178893521917943544164811051440782233250951281128140884034475410219550578218354506649136571283664533216354700389940290597062402399994191854817543129850866140913398757462772618343042129071750595478225237839199335880823241679251501994144301651753994351044763673319202002023402232189621815917253040314811780705408600617983614659625141145792072554361468823866075429661342514492961345407627776304686732089609658662490131238666042245623485953391294563031423148277072578870732175391987689951644662589759141054249605921868375681706530296507308584740302122520271396129221587435876968819480524479848399780130240577810978255174878111041434131499942954363115653992761633181243233584690644633039266591960173753684626731568109228959463752886564865046180412681452772545620888179475231537816688016631600190743456737497576919167647526129749707160815193576580965924232500234460031984365093645697891172041774126174027426673826746943943134121996634442859283636840832330595218639525427547127421517585756023385134173178627010950192013310692089617406050576352288339577217303743905539491411737031144573895701813896001400447138543653359097329680957361220569382883100676073524827255324177797298401530698345380428253577425888494900055976966257508602957675362975743670717286837838642092022066475131433303812740758692893520602191152015703525995389714561929006503954360206329945784155849163777984468708559452152111016659206067230049578454753439389680286973616613841248564033624249564849986206709927246115264965266755339764211757075871267373258119502186546676290356907106937895471598659080732439932305459629248340571597011387621453336481151824721080993384434999942520291508530364001769502837945299681723642930362682764102605823274885971377212810942936907814427732688101066270681440644300332723702287581394694592206216318151431211839290372405910903496410551691510183872909981844710351625153226384563864872596220962682625099952269884650036178621037039414742516264436797563130891900146763346646106295291763654524287759783644769847146174383533413520400707954006475251560111194357301622083451443452308995519763804673196238474635517054296691569370846894210476651740712328919457437240042592575115328401929660351454608983141641378292526903408212358922417866777591358171765176652113318355208165305707166172676871460169529561196091698813988624830723693126288820673199259977783972014315554003026221873668537445191059895820759786658188668588978738564430951841910103947706001787677414460669455232954606592377425860684823427452771413045420551749895124521189900097848157279169838512163383831206721227125991080495680339295405678439748361004689574819211786301012526407726296227141342002729619530745007741009128326706090964758961885662505548445516409402371770966015029236410242447918484779810819024936440715864412466702063791136494917378571535224538996098444017101035073999024530397997114459446769196035430996003313783043287717517613351684652349087804058873845967498895243013843988050327103688609251504183270025013669697642654020193661359324350329629302817420583553409198016444919614217940590157864837890012938901317285744683744951809822031837647881808114720979151029732943793808859814733637132067282579617492303741730595131448348303941329396486060181835593039855896176921337799483635035848932961685497941306825606637845933855906657909898200423342561708928361732044981683797371720959641451564920186147436571085047319408332043427020514450727426358214076558677016279662957865983144192880835876835676756815744206438273802380269384817517662115623395096779241384290454131416193472005698243863115029991420624894558109103134830432514002516046223737246725218259195156222004202870536797605738202582658625710100985401013785689238236407435799859536502117124532580368586758510239052640983278694821418094425563360269160798772363979253673541507214110746467218603635474091434357051188892334349034075278090958552453457293925519944381836708536291088333629141213892319266455579640528357266594514161521918979215948328484474387220214713570816910155197279483550121986925442621575110497560232595203568856845348803028481772682920086511207999175327142367678311551495451303662571445007539863006104760809768215718064439253017626742222851412083005551250596126010366005697193337600600685485907234859355888956828693598041525625593698813947055983934854203389565479395303876400905880427932796353308480328156001536841054573490100698390806306606355313329557331800217792440119570565577865102062162264983412505428736883455238935798847770143103508837994865929685433320788624828047169557567841841297398413768193880293211412435057927981856307177803958307156139901787425254032945381257204434313683015146289347047492429449581401853389930698527337528485246523734537052952488027465175655057552976548564458061665628097871823338303772878630126151917801716604364821405901384326496825528679774066202298993046370745204843547866429120639880235644116464270604550200562830036434589346404143394005230053881824019477474185352205535346378837802482788583098930539894777173568491329229069220881198749025752700742490065090703586039951982027509188108062289332867780885810968520574685248810064001805728386236577130627499503569244455990788043754965712838308880420083849568662316075492327971204429465698421996063368395243347729055852233721282900060422527069610127959052068294347313775830826061420581411763350869518629647205703322038966772382079116148166249785898266446895192565568292097503837291566198338057408549962998495913962484406307331313197398719392911650878221855707784426042675904521241570515592423908278586079322759250591234937373013282021517625719195848227467680278504835193249256689436100941571326943945116010943425168657582822281336977606651782888037111969072501077102346426251906252320933826640809480483071467920739182593568823846339868663817488691830966351738628232294707865729693574023502211942277393410054049340961493403665576152932244185057809375462462121530776683932636496465799578082607471744152650139890650210717337258912759961166888609712285065026562434843110725973195852715599554660754401683344437193027073319787597509100694016716860629368282131515345307151569949321112555635518332419244131006089987758160874506847519028793467502569831890674716773893926035461303882027191689591228104135245984447365993251831868600650626853452380602792249664631634426494256756788504096280172256330806577380240885971031837574315345525021882523870697471857041077119236205738205373161745927429930467959641522311175760034753951614920558294358854517672288539644621318905576825899078407205197393890345841996430852955717408070071883135546714833140078272004930057772766992082533158918110862828924015981742085166415588850374066612592236275725633023419328384781561816583548990603054046427648607304685262918896068710195996444303514099714358535108658429039088983203821360948932125806516800702657701400874799685871262599353327641291157602181118674246924114182115954646385338899080065091723357923859627126582606232188052050593738570556781279774499730165180183559483896429138893368387004191086158892062342922241508330908942652329172232236099370311532085447352537722691378633101219397797722690258937845714824521017525024922875678156577322886245387879949725585062321487360236250835553033616753555695885991696333444252436920656103072577365885792062397127232105930794799794582552075382487026823327756464771391257476170256007314530328264699221355438550755091993191630804540436238883620308841286905482399414889328648388921861868328752875531606732387200485433810703772255190544432719632939252960845682700424519457878666955175092670794565043123754711984260061004920644027510602982135517134437430277325311611955377351983236768278082819671081416069037559206622032834728340271108730764360965354655623381232998332961317948861213641128958001891438951116391420227463815264795851771584817447187916342275257325695948011308141466263529127375568232306891281398074609055318182224651403749524662037535775494763024975224213696017222080872882119966629504310117601539007347662013584786845119823281628266791275506263324526885858909973919512074187110964566303085710771696332602771193801643780675028914701785184037900747279773396038164890324514828576864853130966332061510015365925163914654655844302357430352637682637379713750219299597148165693978000024157379091952400891132772710619746215048826296271901391558963631879652055700358798646066676309348563011153523657755806737825373449064038341797483209701287127996618834153525075764612235128225678824542178711549914545303061300840378743836337292081758237712583023469979606456577169456684888754197808468901649992443855494800632579746460670621726967887268338433866528105608088290523855731310542687607913007229870083245704752048451182213563058771732481044350401637216606768353019163990671120220289289512490529683995335142123067646774560414276161272452236015427709416122133848796428947519507962145624592199633450188327894782889273497196568710070763841825607711819188658661497943470428136173510091626503418553768190656099533582652081733769661032496659129453021730704079025279423575136079525610994135587363256206686498269590293610689446951538400738235219896917268868033328467428524811443497565590935185135230317179500531619003636318122685398333832129674304550532823035039321239638271832419633915504594072466004444575942485234022474556083083652281148270077435384892660509581371963285201709120220138780782897420962722080387451520603436526748775917682558800088749673894388049130981108780870738346802640301452501157237455983305973913288550052934053010189070514474247710796332697685604731254787879835944962258426582559270173205042529668645080337227008845258393223031347010682737123658251641187640742459144756993405748038387013746824985363549349935058043412652339826701609175174284721346129591260145957499920820376760237385121474697998080777291163257666230874943829170636739947324878358474876496221786913166106514533548974529305571705657287460834420139685845840867951211132084085086994877636486044827722622331946985364370500791224204400497968628486564693794008331114168253238907444685348715591460238476836655614581996293514364300586350861797099208498304069026284802382327519177923767607025807594717005561425492690712316311963613077797583086704524530987846380783726581894928593755584838059491528141175505286128395735156368870661872822251475183422912100699094189916730543313408542750776648934835093818078199917966575695183950650734795369540731450177909442261370803057903661790873740591112281994197346351587204406592912595056598745515706765332350443450068999715660271394033022443773606668684908890104812126655889992479327990972050610596105183620339194551864579369446720329863161572576827094569694126277630002172373510004512920957711335074057039431256282610737773314053309222951268802785976492990051194998024243656591453875270466762072277502745798686731625071155865196820093641694423831142308820984621203839193943988898153150941586192622552455231108816482998763878962626964426568930860336336426470968212438000669140055097964028618793717404429965628980405843218435426185426865276680082273792523218304029794842958200832242786388583232430506349528759336927435588828425900818536048632618207143287884313371532889403030114953116731623794743305732199241122950587170536183148592221104576732833079194658208617973999137981301192049787809238379173259148387602022974871219610939368935265183901328322193204612892931110567593485228419938609002274534846321542589778170548266171647341329808078950803828082887290423319902207154390389980454679434710165593036333766265314791166290711135304633128812078044707501713206648642764515642237469410780497531379290518741050230044691100795912484678061837375242571786175552567259743155421388484675652636722227183576474217667224413601383849026230990275268982197205316259660462611265674007017579695247115541007961495440336186858378625236274248060462910422013970165522035708025968620900724404199220123088105252114817556765666332237345793571834357153620594174477718859387995698367637859174717311284922499976024630439928321194054079409414901033920581884817569714960140233693375549818509529756629588342565146955514057594685453007451035517413885764360690184378502743285334541620438449136194296661248717618532566090333530630670663281941520292224493852237715082798501571807685675917351778081288064463398441034122899705545522634637740443630552225140795477777342273443422256301151949455245456728983654010100300789758018332272215445687700385906610183941468128221766541883862819773227230384077510745339845803138166188786807225872113386518404274596249299724218509378073336091744202352663551206812240165680875502512554564938153524483756434441964081845303544173784215004337998451648534599580125360976528261677024794842973535057444757536549163749938892340677773205543578277712593250662703171669918767253345490411977530769261760377334794790476812368916622502229743315055990622432105760802943799209945135166503467885643895339904820631870555363912246143508271278413199199119595044364146307635196029784797404107167030704274784285546942406141135758652312580112422215720955647683103467554324342504942489938981398104550916286802033602169416424830947584918646012588075010169517921033213949690875896404302716717983634224841565807779908743349934207233373773118431770112494518858640320120746366314101362207198920251834518271872053852650408455568329544815665711789658416699248111158152085502021758851328323002171168243933400218183307549252005364510300101790739737439145175607470057086894284902236297489027232599292498138119797540381436298477434782490864186309101277805338868165976733181278642283160187179693327044742240329079300037018878227288599355661320291285304159485586198433818555841323551335512644526655124382844170979581644643661002660452216308299789999497140383551168213401812887744791510123442701736889926009831286266294491954602234045450886028943239294665027174853102571822368153212635072377827814823335327496076857356572192597930457745887027011510403435891031174130942265384465960634467425075607626627923611302007411920705575139533035856737655332061359394848881032242946378712935483617202382598552109467418751205584396726617119903739013813172105175918813933341257400482087383520787931949367069668935678204523127243744574845457338110769850711541558466113879865885616280602633457824513357149622665488294734027356636886439501769908703316081067380020048617702850916618533353285503502187223537882132080750964068230142698724890342436502926135961426482532959593933871282889797377567239174697893586947515252142890772270850182921846704622701112458756311753996914491775175048668406932608828804588918359955337362819548285263168799737557049072349032660549850050496920224948762967478253066048197690307966318540172022877187030001415567238469385292534092243421679074259271505987308619974134360297473482587639591340158644055783000111006509166835824586138510236412399907500597465725255263541121236940128937469282192307546142482668496523248703988646167118958617596435341788773049231419759338417719822908697776062281345584260124701543204967192150582217578318920616752741831521252126915548603512522686698071550457258089946982488323266541712087346271965999164575133285326856689252721499086492374182611631953566414640451029585949912491939291715163351629919215050548739763967268738346709971923296026275566000273694565132937169294266296872093592671732363289765144521028755273596098460216900803978350936261635823970757726916418852316252312887944333920281809388871270067821535678523084415954878664206820090046619209034676655949281408064817097524819080369233584284857771358870815677633300261009434003664816782243252443065931867953824034491922110631552846253033890340608431084719190769906985410848233345358016334753950482829520421029385040726261185789419442494335978530779711774760757894867118781969884792671165924239093430247115674364734348227768082830267499388987768434178661777404443965210608974488286342913420642938101715112207669273637425735542576549869102599892081467445685315590246634843906914268827063671930739347296725825029256074219741644784363751362327530028096921150322933490380554411592876437931122875849556714927158055396983653182109961340804388780179685707602920327427102406311101970170259577697184641076035057740417928925138561348735888599959568924251860757537467188272501532039852889338361741698926128817261715188327415716628775448698002299980220246581764119603717168181159823724333538499480754612410141037913925234302845405198423619530890687538765571445532716783396733932224037828933236455757837427866387649185321153764284978182835227501844442689414397626333879559791295415336302566440758923370284176141938477718219520672168655368542844609720079297062496812020854955202277170391866881716078506002756272187685371895313851754328459503418434986465739219908494167936715544258711703410862393082326820420346699415348890539871234361626587082449773102136961047204876170819848865752975709191949950779574833333122720196118516475937674461865725296634508653798896378359586169918146751589144053662897394692826998993069339623825584383388583636388883526138497134762577947631283501861784927687550054342191251106477695102599985784606584569652184500664311277715460235278851567062062513667454103947732783379192603719448682701186170584087178476210833689628256734846272471274707002729244888834422092022864413194803650383704789451897904998752635457428997674420503921298872269335700436732747296971905489321473482623780150718108005969170649301428159069600751231593306446805703792478338798918044617643685702866317473291600684702652899353204811626341400155267886671656957062975046725546416742678955045591630846455353130203670202340675210983688008403775435148314640698049671186740906617664657406182047188765597972755009178771819182671804831970617722295378927403210157041625656677534505839809154262935475267696366436718830218481038805338400440666494725272504846187289417673180960273793341432169423077166764402201138325014523942958290007473271505722884647072813460506961871782184713075432207776653319703596907118785137571040378685670405327092510986488657632044197524909387310057666879321125376966509358056005696313457233337228700404142547761707841980305453835255158948123763281747136714233801697209071658291343492237681147170116130295771176129107565735338148858334674583223859331590264836625231886576735415273670161671137680095646661625139365317614716440583196469929258930495668246280313951002111262827121897108902631602723077694388597327396298663570779770702096294454253695361998614353609029911787643216153628842544513071771141538877193242272560596559932307758682714385801222758477128745900795075519394989517197791823457289742562973737785075126964716648277420484469752794567822067309972217680343063411971994211847744240630355323771386616454274853938302081697746314417840484636050722998722164578263531103259888041680685604567745942160683517728947034601410641061446902838296268885732217480347846056460088664065752937388240004573276114010698812593054534183752053059956458567652548024766693680165027654122577791127868993934399916677944867000873313123845279122833197727159093109387131945441055843107363018907528722015629372977941387081656692469920798606700772910343605252691898158967601948860481472467399104135601962472663602670651808378376322484735054800911208141714224811758517527670355782619723055735949469305033895745835766898724349204998136568723158047235391724424108135505053012087811684611489635775703727033423010622458675866924972550470424529196482176540460208596901073936595655995651253429365252411383525106710983728585107866591803546392292352577326914086938166368334329386418890891764665496800041212312691793594681811029983434104175022666250294626621690913461740500597966333298842654660432201510770148855616666476490407333190160978661261936315565360823052764620315821839834610400226923491332043276642612407526764161215983189769021322925431882553685247833791971185142278757575509581717691053943497619038415823962616472263217624957405835942927936956660803864313617075363135199478161569215921777525930963426948962597169038681002557070763508387036708767001514503770674730803663516654845766851611761233272765082841857722035683916158735233638665091041467872438724990716957916848019469700735746606780707392349260956123124487104752559000432096051308944437660231197221937131846456734108244732928630227869280314929211033960523158784561966783047612390753641635973558796638158972075893649084754985242083301243456611484627926109923174464489547187935266983317063814034774789718517340705210854185926721734445178676021497888166586574026017224255650131156452521345268422195806506010714779282956563863023936454207250169893085343484821161602009864333711379268388866437691581126096858144801149148192499325198892144646314266312066109602801567669644978109433755245867043522422623573029975298133426898953199927667827384931079381739235596626947360674668652667032431666844279948951904450786449857237647191709167773854829877479008632578897628490097172145435960174468688576534284620448517016607750307379811107340228646676715360200338686477497030991530768780400510825355911419050222150746776940463644780312705917428194837126298447561978594630825726281534726410678119540580181201146531724421167517254336515762127286089839421744801082722767062467525404703927147723503701191663325411913564215907056463781733397500442666719571584935420696136529586411662540923826029795220516676851519658277362401844429234133939771760581115906704666088038264135150130626653496413879166622972984932792870522019408912275393701870840299795323041826363423588979829920496530974059467726662285969429999789362141980767199671888068695903167901756795812914665123142159277202215905202096261229219301520927040145822239946858053300454588942650321909922283213812715797277756744459565942941927103588154034360131889899141291527233106357959784422585939199315641981074425032372258366602506906777794733733324215154236734495066039610433549520133150660704538656128845286138785270302781019681600199751371782343478993548924441829982281471019368640901081079204336192966393441708270497740773355744180892164270995392266923013918530721845177389417228367756880925810484603721590343854079790969959809148597676712591577360236271559817148443176565824504016120905509344664238674716506698971254910685254831754981200236633964462454325049916344485985404909774010243386874250388081624666472078371280191978645249559727099501608507026207165763216514318245541361219251700585665150196599111339928457855520874905926972701312514719584155025778822594695575691822973276905301887530696710105082415229778447262061548303414484661661780572831053630120982569087399701932333621999388406548123327079296697679779708505108631475462750823081123942733352174396737549154253262426844620033182707845186443586434087912543208729799083022825099720744158764440085135216272896674601561312764170186814846987369660373953703748531681562582017760298986675945261757362149045861048884464099663475935632736191280079470046170263988000556030741445274355378136184716355665561384979349929660645364393315987789407387876222990762041505806202010421139927686008177304259938363546757897431567948714903146344390355989439170663747594869567414094152144257347858251545431907774620349767403339096060445695788593288753220190025037289739519791771055728583280108646915046814644147597247540623047477195672767678836320389108621179419110384013349075636648734412183726676121053185520434125252313678330977793524303799284672611941496214968369839809376276119756712005794114516024041929700273158934038388135262531259625355597760184844586598686674288446169822727112254652526704148256848699232374459221178425291990566261326577985644020431066395606826815795888488210833285562551002608751337566071566800700629662351417507919950096750820159770324380278470109992367424340410505362252915577256572769126125461908540750958954086788506295631614296284994378020377172893248354459936220482807090970034645179601465828366730781436568714929482553260610351305402088711933885582547499491865849286977594681850392350370269012646628012007396895498202183471822693639683148730674830540428620024155699447964837007500045936406816928386690677201822101088581321612073976369439387762955658201079287381188659323295188079551773819132274754836917369571885223880898669680775725774394876871886474964869748389942074797878180605467390950889217163989995664832533177797472208074278495777330813695358117255588121644861040052801896211581747590673457132670440619636863326494337588825185402458467125890123594661626299081746499171855311196130005606404471226459328364277300311610265533536610414449687337827816951834837174723311227015068069837160086924692181885866979769139245019303177474587849897187255490023474658376981174878205972911461670856717443075352349660191404580865509654776661279845521211742353122324913039081258733726370130277966222096031259019517741186479024811299230527587941980805569590398564953429683672797583654658823925664835888400404210913075172953092196944836585877842800585956660490986022432863590187950593189908797954267187691493713132952440421969849538715153175931843179399370445763025520960925082192215607923659791462126343724422386106297615805687423032227836892319952864110343347155700419071879812498131489291947478265384589264571629714146182870059349874420787368529649715747278559795622388420885361895618332335780450847260498063133208119579437944837297489414692828176154687322286146077694139266419618457022519471143042985397883096992336883242729451685684478845519435512063903997477128435464219376505131687700610883202723368893160199852998197775404962479558665604481113531002303236426461421391624573431260551528857629590287840476918626405198008355260449196921042101749746521855317208381105221819176766209595644736456996271765694809584716652183438721419844168623845985244881918609164713322388783470820613549474283668542228196399250350166938787442554357454646924856291520201105385224169152186393450946701533089592879671348446687598255740516654116132679280484331981763326660842926245126305088503797046708034360075132722820769619263975784779652261516687716881240746354133747134485532664227312660955445386753205404506518989676929672612821453787667882896909624205159583316750099759309367558199384103543505976167596512700863758468462461870661321036552210536105023450932902704466738015388323329942123344724869861063442298793102470981089858927116410160555857176048274226005055049796339270526367091092777412384191214383375640300375471605114143482527834639479990108918834832039455318898866297749734273584177462276652246661361502833273583165325596407558264650470364650176774864618743392047038496988885906598736866808792086893897934192616663716742682283110463014923568757837060257938118217571869933269277060380271977544190970125029611429836700751401342174007274370155852134583327407113553178404994534555356549882825318002447288278901656094239231291363721021007830814222570822866007633377826439095143151783693384826601557967538922223127718939613777160407552075087473145254949485178588665846386917613522160826280417718793147826868707065113774461221571579759304164250269885029690444924750960331662039664138774546912445052761190355355042306605251540850073740977901500227831664041854030432799812947467163242173715616567768583376855450627464191636409863144828916911076275208524086494787354479524766777675267767077897714632974383732451307862259883594702323773082057776306711854839214624867862222593531711843647368995988511228728187135912626156619231659522055303492588421985248870190808970061519249691096936134442994381261923373715243955418904288341608069499257919560085042045225662770552461524744020810194116232842834428853084641405043713399750923413943625684860381165693881757881690341293026974286239992849581481468519084708301847561349933921018482727008095980305330553488200964038694083231011360452532067311387979408013346317241923992703725585571667920016978246018853092543060397207794955738098318781308646934057672854818574278701875946100783349139465769882082145766514470337189303688190312073875800906761532796297952918313043870699952045124885579470402366778533131569580370134530385797802505741572299741428066182073366929342565674301157149990883336840101752906479738232953486413296433879042197066048487578774916120531196480858572147631946765940167198379204653885182118378313223571870813282808367974172931539761831368857490725940929059576854447196962594669140642456480521791171324089339598182705495013894721962298777099345518966589540057240361219043738941545907704200262011627271024904830605327280035441628799824589823937924158540228911180030179780812743687476203512221448764552108147881729311261562166516607560105048056560892219942796837496015081584868089793040080365396833571536760701890920635468813260421665165065794681886960788138219688085885019463689352392037122152292468551767783083570687963619507533149165389373109589678689753145668284963507230359147424916024415000913458336441253274209292266702614964863976539362200586990194736568597535505972174097572796114692526699756127977554898800017219911894264169826356507320417503687038270049735152924874696870882703769922734634654751767061736603944561708528183785470973435048217283261819068810643818763866206582222789486331408903390285332802247038765253940719804628897437294969149914223675045607594667676574014173452118258199730534232980442272497592160911089412768900284943979478661508294725381092646261173436760044406801415199672066787630757974690655154361471402298542358768716651964855141128219255352100101590081365396752980371442287734098927853963292050773540525428625125319481102411856910730382296168485301799192776859891274273952956196734592334013315634825889677551726018625269279190399736732725381400602992108145325465617860934663003593948896087554730969999246094931792525727103582569190982252158038564484092221698782118429127669483761674258461715748682335804917050163922597804701258095704589113409953857993733423548258941369818744577488776864493497378273333276910872825345491079050771406416285346594022293887136684327755777461242154120155699916254144415967522444387114335267407967116232981844488923582425705009046869384956694977240155315153050680229502651722798531791498013299694094637309552072179205334792894801256863454227495987670064383068404632935610930855602186901280098164012433566166351783489558039675910600623075022855862032226155830494836016814951160480131229113085676033560485919156179606997893271149854739176271296193625600130574697202108207849195332729190723492001833034602873554037688941052423193020088140688930944698132428006942861356273971769104012353704436379882100514585952668515330868264169656794061573172002390603036896378772848651142279348593874219380538648307376649752533553196368999999715455906362995886648967907407253740468598119205727409836789360569237750262401457675357356263462586798171337617359165648438642985557377152919552942092613025419123239352256330226901263194420110455710076123732998918038233852553204502543776166389910254473620860127348705132982442905676263777768238509624446155324276728930290757180464552199541272959614379536722276217085917420934070320278854081638332874556055835369233571076461304396479947377960197030325302065701131922924084799255589994256776782332246127186313283055141978293262196917920678133895349298658002123788145794421516724584637050662471467009814847780943897445639709160060805403176068645265979449140480820508561448979407111236903462725698118926724534338576330608745555585634482272999477867321707460377591830503957394965672941728247225198579934342045648611455229523582909361582032840967058952026262798207351874163537670008935302308394870853654618692848005064641254549464826485759070264935257926394406977594177555142304821699788583579734385610436226068402937710588935327077713079085675562473429944812747754156194474710600054744834388977336676053170348285873973472114892525418717634590705352946364261655185646792989560293705164579802862075248014133224250532615196490289151985044351048454959403088055314188088731974176105849662258859796531399953229335203581474621292589065475095522999989044625645409690644472844103815542313361737683476024915032901940814885300980912968107483491824100112998423409996037538825161048539552824340253624396659541608784220117838761263245618796100398706158363242237472427094604244905766427926580287543341967160387802162026657647661076255642040804300416106749415252991400865447361299104104255681177106460381110609165935417369846303025046315950780386115989798548247322231961402748059918018139598012305181312731360004977400164139257653698449590677511062585727242058399373381324608595099172006529092294392036891898516147916505277160184883285924428746238278020775123590060962304358581134187152538811630610762480660275716892234120470704644017576261321522423853893515734927680301153472548749342791892133346186981171298157169316000780426419572720303700969055778855215084627586145002615312923359905976894648590498384720028827055302978245387835814871992502796148287737935397660202058754758524734070404968802532906425742750117826432006112273759716608042948580361582856180842215039614168444230817407538373563891284019900094251047075606141630732249789296790714424069882113836016362538380410271678851912662054469175210351460038993717332061733093203887434019405197089837943865953830937263640292987512522400289829201871260032118598523416540394100105965650633012441535602870896222874353625554019989502220307404282825409862597747578321707414626091117505993501333794969146056121808175246534063748081537925010840813564886042425062176534707548429156691582665291453811505330329032064400374098835816832764650195261163351822223169736401480858508145841208373580864260618475199718256700189997222239906206086905524435545025260406732538684744334765597663184550456105491334099826495536783709971480233308919613358671168724368902861298915541126491714965191244861590467919255119099386065387854143886492906640199733788653821183010746881925279102295070037297525178507839579616708029841292927616255254318939020152411587439646595938299702613194148025636597391235699164292203655274946883593353131542798445370101722107001804504755125016439237831182683103420129022086632755543586780637750443635080981965646656782992676328565164149278499233504301913849289613271118767275821445126367044409186312489034290595320485355149332219372652317179926471015644470254331435440187341826938846529545140462117511152829750326620770481395570234811399704530228222463260521355076544892433016866568299640836285239789800175847570389831474538592427663072128459767069917390901571994308991603209122823682772977693891158416714189396505561728597554326764655124072636315352943618109361341575703291259681285973730635925549377498921903099288068938463596112149152686868629815515017010714244860088997557980792524798987186230044364466797052824524425611925857742966405965080258431408957977756038950964592709321438045637228193205053484056918879306181422427317253539030846411846948173580666857258041053247659560424088731634913812662150594914839773752191909633544626282647729523334239391889570141281742695148852068933764645768720310243144946125326019334644529549234991556037118517948287840268262954463408080081366380036977527692640764961210529435315934336082077217507382625142275582060469463853958116318495836463110191293729233955940915559205967894779504986389368312459332259331524859267893562098729337943891719595594558647540677535516032865588399747627452701214059177026888960246441565485954180612244440967501246972337325723200627346244419401223478935487231078537044288989565684500030527020706115324164273002224704920983355637014444022825782705276598260774308344015936851768436520187530647601450976041748705053041497925885667704486061759664382498744686190320348280242813852584020533149697476949356089490980948009247406430679061050737799394193800945910580673228298767939323073931129230624057552672778746766259763710793316115260235497614552241556920098245094223890327778098900382774408774624568933227664318484882669545665148626638503374914679313198639371817513240602110996175427241923393097535077485625782149432896680708253401427959426804583082317926019885434317080384676444975769129970356573244320756166659229372275776393561051110379414796947091418298127681544983240694030637605385434606423291140181071395532356239308448565550733425590656722101795540050563008110932726301802367873234194668933513557833087163155764210477502462399092241557391966739866645140020815584613916166710818290659109160573647813805026079343611447848899388631776164546035656273826080667722660573429195354837203415418928631498059698693935818574402730554739496227640564657545109292270626523512135317491945003767396880938389643073080035006661617914851280517896054865842381448558066293733841487091376403234828570911828678152853814201836476661269145333591372717211224796024148437740862410431247756912876908694885632891753882431913282390455913966226936644395786759284268760820302471016004638582989534320125063451667742439462163483398744785018279173621944929530983929621435455914159252416043449868918538626784577335279033599376242291404984494936850619255578632856039069058026074418282172554108914903265204012209850743893163602944381237367184091930519613797404818406495492010157862633510144187048150078933233659563219507596205604938998796738003015304904248720972930353110529040394934854003141830277429024277814106523097510964720868114547007241485174320085171864364637925303894146252145664090987434715426965779726235571793555606388334607025915039914040881834093095827790910675365064888949729221449211492787148591258083093292075079473557986945039434744933799898358339866278702034371150918514389467379526414714254446719393140312140001444692290112087760543521762122866217721205369604189285913081003490525346813530105031585479593770445731949669476204017935520742284224025849120466840932567902157852785681250146476337010586832030690773958373287305932657884307090510333524005116253194514390507001502400465850818371104934245870988152788853546682237630820028119596634940994053833692293896813692170884287532599189203032578735516773853310014604692768084273303759891148284664822863341193827072714042048079627614008656965738713072351902608465261363763969980638634181934677522959574438899400207298415588281967168444002119698886646894789200004022619963027087073749762604313199888961085339521250577754060855790104906373995382751793689603494087955969617033947850819951725194540866621223573625356794376992744134642013423736741233454888398553738693503668248959902413605539969574932859882061778384881031897446620405076989402999847074627292137257146464856825985193421111334533196256683704054267931129125058834638485165694170036508156479242884745718224917138215136716782299504656756988572532374020632324452161534678474244249853060993425358478065176985808512161844671040439949032354455336419497917856821364270339328403551331894463836777045214744452713532076049768886379087128078922407101293717554195273757632834326526381143093351185600785905114333854823927951688785360690766861405888364171375669305150807923565995230804836642510136170898922540069165691631516023385107234784421796915967251433842269929432426022715370098838780371546462129126540893259504447468252426719388137390210971392870149196174314301188940740020166054437235736371478278655869495141444327271233676025154457601611357905461513159424200221256027654076059156658294395148489955495788419101497169067101072495530328180445840429015776793474268596973128113636115787529498342671908755913709330492430174794724723057579103187309896975193320655347808401497472706228780505302029905010405272802557746922107516241209156340974085307344363791243037626064366159194752403873199675236636844385593757979253580778961551913659888511041755412326349522761117388966386732750763596464388240856508933853482197900583608235173177782130555882098065575973162993337217079927944943363759514191938888949223814927000974968051123533328032918766545408407362996599511204591509406998840086700317069104874654689982494551842846855385141139574747885055206398188869470525245878848927282312335125031617781256822945246485731161110335163646239663202959488930124107241578497415934762085991945978778105824634852965587166517952284004281089622048946479539705209449268865456733894372348272203164765666347466267135197218247331492017761813048245387124021137317446490924787351351469694051826831341090764197908578168789003809765198583401618908222402138553355306752390581411047143283016086868130684467136730327134820700892828123064360512058518052291904370777695287425831111192003049815473220269379114139665896090029007546245652260961494604890260015664846298707729110108149698402579366772975242963919206956555770749874458149371064927382228536804349487278422911555683224615160216457449705041183238000812093513861703287303275810199035381905655263321008764353672659449723465964616865600370897150592327654821556973508090870932299789374022079245045467566641893122889024383086376668148388697469159189805227721744492847997172466461090609505710959948963096329009455494639292283005324538082653351900228593695844775594753685700949151615217797918151091958066805301424968087410336438493224938159450284613082436696842357659251423165394971383540527607191449512911284626920312766299563604643874708280854528877207009517513317362041571131765383332342549790815311138963239272258841024439746676061570041018892463397219787490472424535284915684605138263794519615701915506517578551271782285160283916847479549000248540698639711124193908809911110155478595174816178022743451849061775978600612449455550064005716817175359576137226074784543274636416585538354437987993102367149741190794880741956899262399730416449151985798795863754248804935518752936639384365503582272721699072464435500344424350080411315086160265052634799443764872645205162806507275618715407758396640305314341381433374799384227110222477728922542679011395312555863612510966915067908914016276058926869627124950371850879086467161412042723769198649444570393061292857423937204434497754119389996429793745534617936407061999872411869029846447343890693742945267906586212540700291106094866956642411288441242408769768136900628054740749790046396130070299119029492942937505900784364009462487251601427301469051991781597798320430787954008770480432841322952966752296945852639961771190529459978318793750297548354729934369622102254787980500744463481280048548014125921332358014169390362840591220131955958405061722957179480340339273273058845125779815287791347272533390187600498544169263423616594273218382292763055033779900138888648076394723664641068122944706196119914726710071217309512556550804485330282818493084376107005663277551626458908860144386947467045602085663438451546610772001754201674792237010272742719001414469758342096889623313324209701805423634237996795834900738526223204126617183502724489705718868891897518373511456262202284989207592562675449085691048636630000101277247612572662909842462201251722965687001580075510278113628587399605755946312031752809809837791176472810111918785345433235249180762366452625196718904169358412700264833226694783995540574346328235940814910161982919496636104632327366786816601198361605367715417935684191506897039840714735277666286537384742281366990368888375833154057948144073585881795493008659571620210392304576414385511736101891035146514604203607152252108037233195950713231354914002227453126502955124507808647967412281885949118032000588671367318251325609913110236806839682635926112981920356896262340216893103958735242007306567970154830042261834710476572936640737078252152645309296396701130477906378089547011364816048276952653656274200888619036214777930860148698538902645436339033016930100812965340211159004275581963059013791161515016834557921992793981776936243725309244295446447021185574992504518768635999654749569892781714351370479684607110907450146950546403045925362830521854266994288548622755932700739158029632316116564150971362923975676538687714817472622050694740966979556892598836147283388748549098274143534281463457388047275084140397050382189486715961850233431161115461711185334794198977582057306749852897474954083587303707558027628679406239111414572342784427208736151379352300186207625537022382164314193232058253972064196173750897820254065334615094225470003258000828586433253769032011143306303050628425575674319305659102805241981323300918544923508910835746621685906428709156899931140607122751067131997512031292263384610595335687360242674280444801646823964029605759512260962735700521794000675769598974523593199539776193906057618284293435512449457126180762226114072337459252316015928311779284072099113808392168987528593148865785193623309877871600531409183891140726746255360856903635345752507445456485559257408571834970717458244451345631257032293105259158569591836790419943320342702816515766925630248964283838662344841018933198701240670529180798971320918793625069533407799726573538653698208478940109408157594078600841806144466376477182594853954642375018213969830101755848647214683343188226357683498556303000995417120940366772995939411679493827689615604626342607871629781364456777869229716954664058592838291502692397909054857487497770574024592513255969641933379076860417118257149045047070370721422304568003731306862762855106046902007405811441602664803094282276778398082822407982959999697502247416669947526695213584581354195099176258049348753850736172538191934859708890071482361670566463963921227443582590420101864661433340147564590564089645370327080565793426211782894437418455486420670508605580713759912940855098719088849396610707419785112767924790262173895475525599498632352419625667266383723709451855178457497183317325554196880327110551494896338865459890465933654198826883010798451554480350859954290067997076234035614917730246615806149785221948983902368391714063423382006472695187280510801724396833240489408083560631356555913614266717291433849512659934319285841166490827814705712360866029269397628888358310858977009725137279512639606130965179636419487399364527767907447922563948489176227944667954546776525868702346067027096460304056683238209128350115811645512143221310481480991089600724386695203831417906386249119362860610898871108368750395621021021787740898600302901177601006560380512325914148768757450966865435877146750178431495357748460455616746923534252979743275240565626369854123845034091673258962133890840017335468564950530639651667357572939373809560191316789920081993477017996439387836021594877690184746853755583556012704268745277989253283559981729882587389297819626713689040364446146506195971204917700660519071582676007740915339021718838318378734166485399075106280970651985701728983147801788239047346075281907015216281657953964869627832474625012854540003979978651809744048637969604178343400484340407119974333553852605552526622617290731802611120410274426557320131881456900856535980466721326984730979790633785721065944415380298341809768278615016620520980436790837358642609731615284891264913113450675688510458812326374183247001907647193354120310920960858973658687156727476028085442149729586194825374329613088685339973158949926356077202413637638732960257631887495471783011352016622338960799044677070259105156899792165354868030375907701028954522984290866002997507319263179449858882961540786791250048911528267344317439114695146324485074640369917469812911597913575078842864432221464418281447228088968246153294024564592374030274206558920749869134779500295553622360578466606487379377621059254987294996358016805111128170716985406575961977450641011930209566898087429688566309138945279162589402512617175379454966943318796270782386204883748425257377159136201256366210542768572747514120510462379563437518678626201913318467421221768394031896470107245077313658830045700983292799775738571751879879936537175935018262128308873996236752636599384599503596109062356258420521802052364669393570253010888363815385868448651268854199428990280992364427085622458701605748656985727052944738010656419445018590077700816972215064174416220893833633802394770408249559447897230243484752987997657284183978543182662962636897349416867383614873488842361335791989199662824583226586665894290296472810380576988740886770957223286923967544586358118565074412181336125009120743553228856196005503980861719377648499213117542550821825034481687090192225633927698228593167630006883211371867922954691699621614718477295644998930485780357596701445663750361717856155489683384360133390357044228579527112221570678156370826851997444802416886170647597988424625830127357738326929454923227484889087100236254059198377439888928059594490390841721439470058791818101177258666139223056063422667957650066341756403818296649677049805758467170306674983513675346790443245617656143694359904590434932282685064794850160760438772529538046161054683377505950754217207225092691122100396738383971601138803533959393134444110092420675239130859516444067030482450166688789431652878636134401594439859116820612004698419954209903756452468501520467355954430388424823373184487276552942679813017302779397152044166098423010145031443944795690073846941103446243412456158059981287486879300700860507483808515789510847204001428784621937142993362044876644998021936965685258600283780717832372145644854890641706141464994823204495514238720986994163767144844668694287007537613766354373766671852153844412429821621461749646133623752998731966561321176559470499636037351137644552829767405557628397359329063339131773176061647642373611522034928666823818019937952160405915132591316305949019809683161955224704244678255243582629996406258216852953265985687730207353845704578764651400793640245129558553483914274613723104232338654835165743607796115999534948905773818428576018353988691775317636234298407547549741933688589602726005502240073051688050498517281404481571719331304812381793091748304924892808743422270978691443563846051731068198862888148279305453444617662768528231061168357089342384334914934492414386736443451939991399595869113343057508522201688921194140080545218568367311870791684149028371242314962849759322248502112330782093231187494863033145382411222451636455233966376386083739843485613365075962989791752317398624511700772003599591035001636243262503705795834039259742333365667648835516279214748772274067498457639163611938112248786013023519256731087124722726442928640827699108153624234077382290820980581362352023323156796886863669657301537862761541056927742348552528518610698930272210913328415335447047637102163726060922641513339342452081706346339544702429494953086765372249324862256702430538510547742195696069504210194550174406465124975549515782996301984574834429449592097431074685318074156952118516701382890776244639205867764067679366147492682899348511653119074761203542992060249690088795528717650681670632826636397654054855838351151513851483244759185498104840859410349655960432617004654767760996524598864573456607317154609440212823536025681418982882803418890803780826743026236815718296657815048888477070206064677750914746464914152082292957315567553020685588574497237655523836704252123644110594446692744376246073455242212361769354415317242438285967858269938192510941021162626492742950848380657275611364436339232058605869753640863265132399039010190845997317934863507343367827419111023689223977080614578442812230569938059499936388441510952666018522294642867672280740887830409710856472737081715385152765730111424308897790018724927999013282473199916471936641324049612576746694902893875213573128274239729033884173419938685808695209930177060702462666387234679805435548949058032784247577190911537870882957872023754190430515704968935501049893303381470237765236109184231515664369825563287864983559323062074929285952328805632575583833445933191413999255374909113513066238797258886035641741658429940182918991159971141609403988827944285078887135046270501927993233160956340471352291608807979434161526950708348589066020010614664633303862593049204587843455265729818750679796774504868826506978731392877497087477401177496073190170430704228102636222421988599072605217333075110829001114368770545420801817435784238973140288727528392643140160855781287230877108212265907086628157911485121819524412895748908321634205836459356303725285743908057561276100337491356258828647498056631650677424815011110352945841165370096154318893078613767758176450104528974065887359871672402786619216307429188783920161248270728995144925941318529362630765736246635932724537412624170600493533459666842505829206076898836330244361041276259372149076617310089602854803765457663081554330355687601340725103612126806996666668771312699776612426722998181348056136093377830710903303554726306286732360771959967441877781934032719923478565504554566406322056376455760364777235515038785273816644449941663146722972853607377703969576155540526719557864777262521479065923020949255095567074446050878659433266793318072066370279374787298381734168087524765016288762694089353989794147622074888176888657686091181648228171570311514678792931782275520205136371420954323642084940915819161635479868908257446763349353122981258186539512560362333473436554416367307073534280702158807509608608242617602931682562918734061005611269955788632940534232317932141469038859089708289490792224391144590797489064943533231374705018918150097483196043780922912816762151184078590360219070255918134930899573048633915688828295357580518361280771243223064366548458293121680963348935994944560541986855105118002431952466057856336524857394234679677365098626781375863126043403723820913760637255014965938780410153212839007657430481787667700712874760066883337307482622538896462402824985911642463890533671673884467657493903263091297739281558937301652950467328380158304660758356060680810085131743663983878124749388111320481024354331508747740820735771261367250399255769538641705172651534636670625718180000053243382686427731995840126817454599936082594231931549595985972504164257112250645880053973780706478457097741894029811367981047581845137200855865809868776335049744786793251905382759852012088137728811366469893749510056585636814858836458301029860515249912834223460468810555966535520712644290001085593828181990304858651027071174958731363047566388025576880273195759846837058570830586051992347478777305125876369298390537789255516739180613671728139303327007157411317806618051015755389318222041196650265178824763598415448342260183845675621407073718619817319189066659228692896864053835329799636037129117567342403471812255116730156879241780126127936423038350258392368875595684789221450790898745173269433958074914171809347906708340912995368044028178452367698986618265511805246084296646268195364436657633673362956918965731728950615017069442172139599028151657269470524754014915209230469954568813806490008740487458443879882111843892176354764354740430724909894082767241574906998376356683529904100996317171481381072936074901674133303917273383035542084336853379046406271080872983670361357284515564777903985861346701511469052893128977296289801935707647684212957325407799560663576706199063548219748307788330734575924911228524305229370469467256572678344736896863193014541157122655195662475241207711089386590349543096206214334344797216963994054317987505096839997577035279273466511971729141842135670851681170419340327493920420236529049352171841147059331830117973891238966224749714279089432895878909095038769229102691165821847751204561434500605447216203757795836317707055880653333652310382473251958493133568935602462025614543611523049143460115051042685317168338371254879020985030314522604741657671669580539698897741011669091616088572844745245386430573334083956344868652654205465628651937617138968314549127411055382033222531440264848468155543069289318682794461184425485094510659395447192565865989543768388703063384306319123289256115604591662875421145577038573301837344840589659445639131581319166965646197908435467395512863863488543656643163800319400231234790398047940558602886331447335622118827227394605675851032056867622012223646388539903475021122675246928966326750476832863654383031518491344095879663921064860970465313268927497264226694122735903325201482897194793440965962843321176786634838634800032262842911571213907174913132780205002092878609651795901184949827229305599662920970506542233240890019024272430873627431304380530612480713026592692471948335352055065573474969059811754836547515734693951236636732564222367377455016838600128961381160998186381588720244105166020807374372666151821010789773959930132889435525106682546394100544638302830486270294745904511120349067971592106123833368736682690201490747984836116779809603725285662038696412671943341983170089854256029664411611947285978205821506046132078826773186847890687211539954412787849674847368710740804508327165830888313558258790937668197762322973460159391619680289042584697690101315425730605397102000737815311594993706695608673268225384423820619695261316962661933709737366808157025630040248773658684955427853158781664951813608215416989294264127069747576450559470815785779204702129755436176275036771376137776933554137206312490905694126564941234112365251423012467909802098419680164735274391939757056996490779822694189184850068622465777717895249914394942732262067554693749668278140813073807017664907890305434502167603971355192011026818155602966195823882823442160598317173126133509880293476438119269271024203228604091499635021552095869784586212862700964045361985370397162901590142866095781286225000046520897602636023596919970390959775408503018388096334693753202478580233986097973473994605152189626016209849075781654068028181630851999462640632173057605291472808897265641851765874825685049624135202015370808812115432970562674156964222166929801642294587893860971088912917090863336539257906565734775151553835836260355922737340950106328017092748552264093558037750284667662350242186924069221666959536957787725514783541776525611645389080485401225989529136069889320102764678462040079240224960266196956699047481216380769975892707675620881969021958669867284734591846505618722804043667019728093186744531982792326973775264722505730119101278612968201472194075961010139574398375786376405288308642236157033935103725128743764214108540152876687394145039651339249010526299479769336791646853565667163918759202642443207702794804690364469753674830983193127868644984264723586773525018852871311014014472686610334253648932722060321413587885795061864622631950708926447712082384804975354339597556943147876561713878685955327543218975826308836946997920952062333525210742687383025592396292538429187526128363218195813122428267893245117126583856889525665538399119686717177038197961679538482346491873184684556359483230167499663123632629316612729444497964674030341891207603061962964126301126979263812976333520702184572762685431033260202234421352315550523463032513972880418878069854316636440378566877175464374685873611495125702132463838309598714021747017408455275195438399331366513401982684361844025691853149385193442145329695527673874746599583302177323365741199028511614587591624336755220684400392108368337890261645169899116392461364772793460525091993394872452663185852433186323362114997610432003727436769568120636770032561167213885455368078500990263618935987835284778383328597181676637900987802779596217941833853389268544978894826208296288567068960356913426913881116034760217067382447826320155956682257372543157682049361220489962295727016810870993439872972741970881925479843528196746915976892919980743806303976182020567580507676365218612469779756652067443801183721803218659131039095592001130639272300059483141253687703080242139629512107206908330221637793882578676077455454561623785171251630035827652493270389560710817726604625272852268083594853883617463208652678815829520332655145609098575802804098595721419459067302249443316044547285357672633081956287585903034099454187009350557639971951662851473733067440056587615756264805298806897304874201214788288586665110735926011164927962525890143376464833477430358374647711269109969940679264034105816292424235886581673031374727075874284054093143292735190622096470674460475764584951330121723599276901885252502449319792327437887189214505134656453248561373241833765017492703298953164699372988776773500861207413181885792205622296401082145811753065476443433880808838769499294700281473342265604500555922248757553634939169090481269591457888961794976992894353319055615854430721977261959055604895134430510448887223020332607046271442556810791577393224229081927117302875986986396442940434657454255944119984652537137280860790506112431918098343096473764243236191912665169276593816321108043810003873510929989155747727829713506088600772519586704689163776075734076345106276728768418035384122060895406779447318832871625163962953724325606910835329902649285781988819229592852706561096126846652661705289642734959622184704707478090648453151306385496006962607189450065713781649661628980709924949618319643673319492248354439743351909013131243546552101969234238424571393973666762896082775234477451530605766345164554429805073907484081590686425311037756746627805947292294449029038993049953170299364321429513303516757960051671781089608252118631555106961304279015411877685114625258931335400670662396974826182491618233440096917642218155047883963220971834940860505279204811696034506159087903080312794132790165205982236392533551814960966915433862051905090443202052872881497830645044037448477580159935660195538948882921117281792623940972370682825140792399124575168200998292304811033518050661100240005878681681625981321998863888932652654082578037154150929162541179867239652136171558442785700119397774988200281559203523242781365392619843512908715950889025351177093860750959810293877957335537918060263105895327568875534149226237752681290271040765495593398593877691219604816236229162784591490536594953005195494760104784676997498625331172607609204537602053746176758392408943246180214552509165854069897176382011475103861653826517739106422030795112402170529377462323363905218347301450618991662971040227286279178807449801860424811721311542941464150378747844522329442297497597750696466677671014694122157024254034320211426685695894378652201008787620164957938013734357534581664410506548324258647599424320773085274457015534449592855179147492272002081404156657192848286443682056309581610857615996871255593521708039185727336919877170248423097922665494886512911878585759536311484938296896079365526321025046974235226708759820428800486267560178542085092604872083961540928171076168657087323302426149184049745718448508482900391561588861783929460679984020481315175220497520679003829841774237857176756417992911550784250856918790303022319272688615960628291343038187462469691582804289452390402902195229490726722500460357191983775664175615736810320806850277040622000946241964135087813289445092498663450705914609331213279925951858430442262697022970266077912733168883338793285900863972909083632825757591710694568288405636792583720184709224914741796031355445540845649959152133708784949484735285490242633476506764132754669300362340723695606284715909020687233661881627001411758582892173396667651187374715874138287271682570880288099300900039183390282494289616834032098300182904503961527120884806487527659665237494501853376067139181022609632575788759204514559511372375733037095498447736166614027120161700793456570762934919440782716776214006762584150514764919985321523638557000208924982721476564256733894771866319689884121792918391693704407994131778300244149427046759757927330972323574046454361824529967599244151196693758514355098039318213059305375499253425872971383647737397349333581441115112175298863452941495636137608266156388082773129655404527328378712832501754919659094131719171466991943414224822728455700156053061861999000273487186239947467976503834315253715204096081004354462114026742276609817969233584567128255616576127385796362144606444742266558733692307613409590252999631680070309304300603320659940838348258206312417931705612356247104293912556126752915372165240904487560874868728213690461042953935752231751708854691333338549819594213637434337730448847046221270730868069500344444416473788494407928888451668950079913344692708787823352200063002090895108168493087109476176479520466176918199748036160709608977508539749254873432461236084996782558576726997600381837087266693019585946708922842269186583933590894213159522172363090774779568363631610045880514340305103573648740131057367658555806561600806713527061183371483480574294844145403065985423515880161208011707261800957200034308842937876925445296145625243919680534039492804281693845199050963991526219626380396915970327543667630218372504498925564287047291662316945248479691662906795202880159019391766339380428800815980846812166641389398129775822626452302582903761786932662517666230324949794219551977616284959681211997797499475649906244742787274714149477604128547502562492482881682120062739340326256438865556719863708018790291237995037449017344122142242777642803062426639135231412580240612703393711556853663932648769145970119607888380471010495724255357216892413780852700847699714368078814114188634446471714201261794298455515385988601045205682510305367495927284430725117507872355844149402797740497467564259336258422472131046668231480886283944399522588794410070726941859031007265198886342266045017712687718748901635387182791022355406035853020008000868585200293345175122948261173651188490498172684768083876911594097432350582131575740899705930949556804866894415311841486511031624270523345305258920076346380042451983538404899055578344524423204393404610242056420202101013703786042632920160577475828930184021341890416763904099802526337251161600831305844604069582178838854640839553155150325306177299274118638343721582425365851022994767838558431468651901711388870074253559789458113565991574237476431613703237635720401422589586199489462921971541284520611482986252022641043735695795241684995146610918115886050339994521563717514528597541348610209974289178090672436808821455193914772683126218307656998366236493706259445835896758660117126175633071394607810835290243008771322846421017198833639188013957381986713845970609110701461737746735181436679372438512800054321074927681358456534097419568757794023449880026033466117242211813802502145868826289917749050140362283701172244430170569427714444313278762897144687594992823962976979045942923147206138473881590363167373359706016206704057586031762320028144746130869952317968620271081880613232245403617761453790858607314928110111451163503077271827067860976142773329888015455255307527709850381858573669150849640141769048016212912278952683236151372024047889918318979049855700226838067003008627765416899434489615251384214647403541925911467017692777383489343204308361445967902260469567678013354423047667736675263732500197792225230570504082247419689526337144185342188787385542833840509391180323273056373645418793604649281511065314894818478770339841721796991395888422408457643928959113114205404880040975193876087017780065991413375910167529396545081598564105278878407504134363624716442023557308440010793632652532806260546195364350745316821336520378144543333915265149664951313881915161259531458914692282413291385306963988451549380214388799485433967652305817734722526465659128075463674888855137568565253334156586871893222487591724172318121294423654157952636942983905514438920442963360411866213380102765111891526079319993637197886181909769757870587254866665966892090513271176250750916421564770531938147245246266248034135991139690824222949020612333037354976717589795762107590760660158975915760702149990152240581756976452975555013939532974483162371133968820951840137781460038917549423806989307231283724196561420125708757202148231765175504553946189196191439642191447863946131856983525286317567807494897381876997541540855388380527091128959132322122064122074704819932413509128258807175056153559724232196140520711235312177606602096586163177845505574705676163763313304415936146067392841874174866396108983154986343344253488592755588655415596013919018452907437049925768055232688990667659367493997915480605912217967101578691483345637242857629636561630834228419246359599604424018195056809369062513006087950006926623250328963869138992668576082664133958258509269176497369496581854638859700493257381794317738828350642365080278768488104320754175867195119956032001301361997549983519604373009826852904554218256023502844439380276786413869865251623793232973496882688123711891406246263855966147831776525943937308728612682268943802820521072939884734803152383387636026033516546611257120892917412630159888544457645597689092407943865573547163476251044935463906989889077383229063773138949343176378242674403669831370938602203755594645362291779972345656543436321332731511195251928186073390706872533064931631989093543922818141225515884642251733551634691764280973847207092086707689240137547678915473847544510031496890434788837522954880640559236197188064983309372127048485732184598125987200572898141753331579444176917612158649498392891392493165130479564374559545224068964965301412831407228017305893971062350277136672023922256477054670192110406141251647091248102020761260803525954146649713042724124856367947174053630308644769422078520959122257189319291380276871435694812800540535100251403393083276988773585086125541683706066500905208006691620966297870606225192723949354889822435465330845736098402269336812244915027034968226648534332020382795914570985693151067129443494763548434688460525100207880180329806200593621704070379576682163676072547107870328799088871366248068733938690092315444737467114349071655247450062716656705143158050931009877882018017425091757248014400356217095139743095179581739912198182608552827021662939940225012655189776007646287747162708995172161999904311322834386763383258679532874328622478751680465744922726539638771784618500685821213894785176846249735035974731228172574421761361758574405864458219214378103908891138737693300078357177026030992911778237625573547922237027101024647944477180686472706352672659889706868964756313675480971737754759244010396597077536034883138027762825352702440133723641606942543348104995461945460139854889433552857230761179076825424131637724684464675054851140066101044695701819686582304062017129601151357789554970080801059059553777047378670857355432583270991525507637921414236012352205273074763447113727331731886428864263770128945037376629421667394790237079142922914004929895899235740097878171988680952992314489726998514744729074771194979749563749008119118057342248399449200792244693567109584910385962143628091178688555021334795914498162345466124593557215510174521538986797388492033892622262695647757139811289318927386053700338341759529378064309653869769897693110682016610006117578050650810092376592860500191393934078660425715038832661881569563581098286336165045440168744831223458542322164393482838427655367648698835014495175421861577064769220223587926766291373234302917675994382012759465877342998369299140218156266468898671188420375682908394387311267212562651610580532491514044099418802121674628061298048862251453451738784740766500660023701319600235250687329819350003894341817368310580998218336800662389052743733503947337822482536671604963343410797771033491044262129795862341503112999614684923827364709577173003639603760582200446272123423126401959144592648145794977136675628695501130160259974308699924791567448759854952945870211414388375615257202557237583127069756931262283181596409605051026152773070124659805661940965551853495107455810452663526623213310498159005950698128218157317474417438753044773354901451619561312588333192588690937244334058010860537021191184434250572632210118743052686356319506743004881766049925135578618421010814314448860069042872734806282656694676588933202438007700449161173669442845920293163149545207613407100069063908113536035459570893435613464193558036243479669229814227761954821875033003327018380985961835920137098740656122173026918808596366883764243843004831224784945178437383338056041131682622494796756438285975799786191618528442648001655524611099968831573675573917622905967134217129366022056062465927595662415345148333760401327755248575123269882661620336240982924022358126411675992062336568338788633193384273652135931489966131715537101895273290555777392506436795223097724349147084214966773547419048999944431697067593101395560536903785056750731023428769863796578833800459545824138216739420623051386581066545364626994346406276121325257572514456951810836054302666584172902328254887443658553565634183071267554707044127521131715127660286217278576634120242903627975618369035965887128447150656729216807346951281503725733167933430283671718910767084338495161177638416858628442641572166138397734937267608256875240520270522688453052408252173944691812386202061780549897076974911193690523384770493198856363788634480619594274518903204553746944363320201023450222662673269185472847671376259145782110201779197461807048983811599194406451347628928227447124556179482496260714015147241330095804989691647257414675984491126851252224453543043691047875664661702397696684938855017718845123709926031100101751260315242242833459937712265826717025185072037315100365424842172318755943573830864139414015451656509073552298038604244878846910248491282754954303048221028414852273480363330356692406935048097136409806116804990190007443013820789959766611043355830838952874077140716356934850224227670713796281110849929979420152236656900974154955371383763970251368459264767553466090999745270760651121852921562309221707741508403611595663179500090469018473251263036684180252035713289622312539998887582878203543458276399015333072224945730660566994435134701086130223439898857911450175636236170290774145319978817481134786549089947410393845020641104028897082792841937695111029928827850888987078044361450884765747276383202839105081733548659688769713534218244941791684423369184624715668253374011263220690483816280787305458366791858822761164778846134287744712871732375987543839691566250783139657329760123611493883247770149515307667749864636829716404432765395911566628521441941489087728084364668112281384444812215029395533565045695430729004965780568822366940691480661655156559725141132600357730925043426371915899892644122954198608232876376104387288755415748553071835232697384330262435059762804207749082065662434045572175840486943359034920723924713609007162476635969932614783658875609063814933551406503002266016844300214726919497351046752037383406410478935769508736943459979790102568854358519447936980324815426954833985263866921086728184142105301331748573109030855306243387925090081512477296781726910225892371964212483797413853342244575174649935947816842063403467510058974101831990456716490696758999943530417028551728639427315171178723259275227184022979771900092576937667393697681561087068967691143887888033372160820998850662359466780837476662354798507275679788866117001799310551937453188768478573278249720400188654580305298035356341260969719410424324449536925770356544823833904267160442080136095398916247690404708552020770353892069355006450659114150560213999659604648360049087178066416440372983456795225013422921077378441341756380711691965796355061919342344873124695181327899594381285516216242048988377695515271568746911908940680735232395119129140884682417362353149723606844129276059037433395303364033882888569473720165853414920540840916122418416336320930233240380730640312873858986181679942054390435286759907111207911332847214416399024759581514376841168231358671479955793564912749621450138295336733060414484855316172970924424318762825236063990383495504276358322504660711010311175885469944320119946063295685638612869450251574774252799268820149409259414892961811052231106524415470481597577225840289000093583366788211623142495718410213590844364070433459588659368605589049962945576945009606947801709261929256633095651828669433190498107796685892417323645129610405841849076363941456606981192140916465159255392818857770522295456451547609064291275599356687314360134117733041506672987877377810268148245281192488487815434791133920757150792051014595251551208594551077361860718895883588209445423997280892388206380123377303576347540637050614941820631110577198065452464727798989853401889604057965659434478141254973732313800489975332316845640046502754217604297830484662992803754634689507337561373725167951659154562274823282174007596779786610976507442102614392286008203076785883065584892125037523135785780189658279393341264237954217994450389908134048896694603895887209407555823830166107893808597531101158741655027827940668247014628996469988331042196178355941752685693663043107852036823671484468415740712527627414202759430608763669480651388517609486457442550190205489730883046082417807239019767408752277446234729442678449653513080501462628220263934584408529120716369128249652877572826631689615609149741539201739216504893504728072464342369372663845222727160723626945556419150431821305244838882692616662649957831105938798052575046143874801162167517792078274425602453009545376481426033299251584631312652048147515306560524665737483302893999718003990354706392624512828181904938502540622132779840469409651134596206702151794631905818329833141643103811103406247665112177231137050096767996496737797895601587189267043246961350131284979751422221523462303302004505214566682200346056012987002564661594790551568022699778368112322257357100656650773426756718092021590050696485974139671066711477061764757239950902401803064949030234525217428380991479882483203926582662772625538403494198230862906482581995697233427882735506170902690118162155763226952224606266511218552394522726353560867281912429294854894732438197443765735730679076022485864255955596281047706559792412070288648163943711883412542008232457722910256267640790661827121919246693495585250782282357500520915617219429517983145817928229654610633160883054626575859279244251065893020585422206451042127229699741888423298397854875990788708095797836474297768260197248562336624668572511177047795067181387342371528319016614988755500833329944325689926310821644077669516549244823377264893632517748040360239189557554830653733835678741346818058626833932520808080115660019736470047848169024982358706222858846275426537290504303108842459436318013613188657603345372120952938140487419957292318419936755009553463877997419269887434619066737525159604568057636336496465762928658029919666169296885256089171694335328110236167898553916951626469006671445338825349001780110061323441325342938647044942924457120999385022009569722137197394372822404029982059812390657560851645240606017083133429468650594493834042975118748212798180946629923683680552933530030148214928232616272009456554344684356292079328597104739077295389090361889477896359872148697655085748463857583391224782324033132706252302018830252968887857580084448758048226974116137936773328320553484475501702515328716691459601417649001874491767040260692477098579059926951951553553937778812963240353708211565103830584472572617536283306853908739962007960235439470271708396593739802442936402461342703010100943364651003996013735630192391292466171247567527074075005011947538051722279855490313649186131190845456442774543346328186053567701681930235374356289886550690078583812791872709368952364156800397956900941384483553826572523711102018445451283841615862956095127321221678103818049721393524998185239306695455475471380035982728664233634662396410298934603081186768033076963962980407308121182221215966676903441200706985060094673629273958158780832436307921980955407269801900537304937460216696241817704258494279705353627701474725146658581475031729097324685949198599516865582810989204870256769968113155386404896037507724306778732667109995097262209822948160000635155490612789658356845032525135811722774737922422705948283884204429760349724361411152821261046363548224204215401925415870675942306098304061624180498857996598362766130194005572128570539862505386895775071768997604667097338147388437688957309707446940160657801625175463125182914015900104891206956291407606167079894143779913335086205682345312038404024087959724280982142763927631893915545025271836891748308604324244305238767401358380247617135993433989050625895280099978654465830293119479479860892132515318903295623387740253009112267997319643746524147503400810149414260432878432118647809725509864805709272772397302278280777513277432345373565602742905422383413020314631627187900796069377483758054594908460725156071324436569405319497788745184329671717786463829301692577127280759021632315911242744364858865218576001399306612237952276349927354378986216283890993765708589822348774206098340707865792161542622521272040919558529122520546055708189151934846186034806378821470100334606982617361993886716808815446224054172695996475844926779738274311431060179587694672460576340161025012386269839458752189055335581806964887726635523735307158204276685420516695995416561263562077297688264715935576647135204462607984469119217841367614464502089202934173410555062765188140536201724213712981317345899404893960068027807257796845652234580387989793719519782171651361872059666951481534438500745149464560683862892493482490866078730129966861913712056243375143444597530491422390692754473468611147751526330928054005153758992410477878893569228514544856309527351296903324957947126119388965463217822695307614220151944950090778800048171275658468300717399446093176074193503688751824964522086014775711403138592338373822708411728422994305092139970759436286631799395345144084447563604978402843916025869262383667795594584684510612409194264012144752314607706438291581621342272465071473606161580374840265652370168295705471034421800013255617559019004233216023792836359288604543843397247753949678973965272012877132492359428760808640506600983322985352185825246405407712097937887849997778785016762837585578580166444999954745698817888453764956526599160035878139924676886896308235521277335000698544178559031314355691180360112523777287149911177025796069763085813883761829972380521759696110291191272861016755153199296523887900541372933115765614713171141445793662700116803215518539955474702519451684244144392802609296254486028793295135831201038258032758774138594835433579152236498858113708938552184841948123482815392524901993009007323329287216985173991834308560330770230509590221633842881602762885265889598351641169829318178516734650469791939476429705239776274453389036678906003419784728942159316780595458930413361638618924176673845538063627064631623072105360794913057307567029734884775061685509841458791484883417899491090915900686110486574719188963442476449807330127746993509907749370992723929530002834391197509230238282489882682266343462958601452461906884217842933227962500184489663402283415179683759792521636173640049070522433650936768930385298541825595668899296894604168660794148049827814167610650089422309204207756501766369120109288428379513957651898558429412190618654199690450463558298126960336645156103452222500771237067349347988729323592529862205407175873939484734103851689834661944203253050453611940567225611869694259645836188532909395462834010635935303955480654214575229576765320923854374345942350849906230787755566104120221315782159565437225238905788379822373848031869025785272618279455874917951526294304572874420893582491731099551993786183083582754675342956976074386015302383752866059157831111401747132591619087392780389998316578543891518779831001463957667123428357819363529339521680846455043904316102273151305250164442048624346312982323779351426512409494131730890745816478586333634538725879823258138395910288067134722611757821586434036891584988989122691354390853085524347899555287670427392505406703997662274135969386685672310325635673235039530490289799686307437325678320096733484477702578900738532764474955819587557500737596924502546299538030525887377577025436929505023294665918334965048163072231462764126538615565923861457498381092908461608492835678897738666892129597646292617379315567625853359725126120013308387935652304926992809844303400518006599174970999354881894119672316169874232083848262004779150847235883204994105492412242723698060743478358794164695482456353457303617467430452558334290498379625714025541444066837123080209338819906173190299240169242507092479141705315248117893863019771819775135727496727706206528305917298750016824723995876660114821253374884922375332761922029976608428659735763803546716168709005383386848357402058964024627419601966825886393732255430487468631064930531523104335037110345141833774071848481355436840889864052755688076339120705597761084719587750536826738192652881126556218703048135150483850124203072946455006496376382097475655864633808412150659882651699322521228562641871086465349174689690473579630796164347922261237535542051501374108757720128884337749368481286467600414524872466689116897250720594947706395266188466219444981600970397188825003045729247824489717687349882607459743190770613716602670106601715049551268666976111545191343801671003649276254485044098789701280590847279104785636838280843472899176772558696130273243510434504755030819232109788409385222217791992949264832950528627326528456776251047179529102688932293646864538941753442723130983759626456769648917673494944403516730460947980700001835294139180711976344087381896557539282229585795298099070775839809731374272432208040916558102552784979804831340555201357397229696306419304255880166964236755808018076555347001426022275084508902999405631206317950364712418247181978717683852218203198133257952756635092459104876348037891611018331212205016607879504270158180564186784787820383717727408392837013882791279947985336834971052159471465709592883969646495140878703974714382079541809910347749504488763727102714701780804412397676520845936638637407047979462891001975617196533131936810262633562886886693813259099257029560344850743005233501510995201050587132262074960219045317958202698818327593116755311788002940129021152751267077787065964482796451630721496372178550068419680721418245717648769406582507863057212645134261795198744046644790365896240498951127164368478193544206548353773059758320597863232328359087455664895985978811564224844683168576086042955912190471550991745459275638385524499332997971313179967797151289983019271248034022677218800733889378998453655765194363894706166156955677897325789568564239070555148724304318601290710248904251797630701240214684763167661521980784173499000862198185834360805565248247237829834294851015535153718820924676601830061551870117935090931868070060897200242764093079687474029147566958160056418577995236321138658490979565457801986705207512996811157676716803270561671999057060408374578299565336451795812512806015445822371434827745548082616231797770118348718467191713605829753780017869622160465946180202962878363967209290909025573013995746453107440524357601904286447842217771096453231296015205586058535007795932002698106908288643802905119417773505326400124974465137130436940309366289404967853324455751583207032870538740296765461825377387225913038815719708034560389224012120633746874158231629859422562662791222059044125674068849389206210701680293747373395953130305778272556524184328535710224096567029023057846782629825607364560649190205045415461501227637196624481939646940761900341459659661315053221981205005854243269060987683728245229187723295150390693060078886462126410116104331489621434521870850867350435733706507540833506495568131573369201748843890199289390873034287776204210670032865590333474402390137328259476700244428744857394120249716611763998793638960636462253377317974200156632273981737401582084452941845725373280123448747400887213561541124923077117253504268286218219673588210292640386887729993924429973192752367514733930108809378580476658458798198383236855624649245305570380994184169459590980863072939964925119809706227171326792300729072392738547190100160693990019140212396370852518324131175030206635332727395697646388749837580361637349036081618145808666643629771293066224566001813417041897064293864699945670767104881497337055698174880724625009105816769486770433366676687402361851996451150634670859660732335247159147608828654154517699618600048185213787557836451304552930128004565707443705391961776493246165911014470912405848992313117306052923290221906655389604652679986646057193977185597687378663545575356680256645192451149582291923951223447623633408257779922607457613446072384144904524215957662974623741669522150430810329991547376290092985218786374371882839724589882341141609475513142008456601960908117803960903592273732272926312829154582313640958127702995325733715699642683994505655637980244870023030922760859007523538252223179860230074149575011175065485173916575214196751903781736960202923602690928601762882822930253016740891965260991129100155172369528749957364414627636334756423940319710364559305188414936973275463334203193978244715391783714706977388368953055038411012680357763272873955584282192251783207142178054382079558058088008319506863448243835469505951991039955988547631138647022785120389041180179835297672054627427879433601511733588901711315311581484612010042982642137050992184399398568394938564414242815090090351617409638375452082065063920305910273789042280925673060499965599167822853540085389012827792537680160573023842677863306658591902067625587935260260558907144397322942107660414598953795536310576773946328737883294802888907095559261399634100052178438297571139256264091128308984364253759322416598856146115329612501971905741330282509611886509605340540571508937253169534687696631780132023698598796336145919428781927432699521550585053432189468987251394549272617612134400274388591525946490761344270800913272055797086581503073338128105176542926743325174880544466955415012334526082677958731046747595101627470295266534669473024943649622613651940277720618369046262825954017564128867297589342082392518759593786300964987175447798284342287796073327597489720143077418009196018128350822155035264046909908878191183116838907067970464250499917996840863009182817746815781516020134957654446942173013323211871075913401492715792713103129670533622212018600663611395189215146894507379178735247429229577420825063389940045237985214001603608252857472795796807947626923422555020055112230787726255087006300489401613103432931475436351359007800940997969418624817452174184361110977466304815914742466244687375465912613368181166050605446098070328906408604611583255286374102669168518363360246492118232494117794284095448840300664822271672043458094125441676324045526940889330387970211394241791053179284185954310074627188714317576312788412729021778259213497741472446457019362613146083365607841832331109918577640885676352124471018327539168688613419421994205394886087697640125414028267728859782064483543121475502309670169079550927333160677450328806590293065388542070900351360414481731632344941573751911714450329112112897601583569871600620622487533690128367208957088689570162306827169602542659259976513174006022013128881778845402179030498233641275010123543665579462692746997794054058267805187518228706625558048110912327413285842796551406961530150731014883789721870879300549104285222091721192117415839123733431972056623785619357506053148214095604238532209054582542619051011199251353535751713363281078839561509964118485086670491259808771734901516581790360944463303498093405503164371886310610330264635679457193894492992524345487240881426084146770195225582632499196317121618498548257773825565812987092423943610990029446277408025865616323439023584800887007500174764732279711253052957303777382329970988956884904004449565957128166882658427332242636709929171911887625142028931525217449658482459228367394286008367179971541109519084465690314707873048746237211486295878373649750192475758374715247519310680968473704749537420513457203208146806869386110651291778889834905187953439397994150753366923004012490526878533644406656264092378649333617977078288324834833138473963870947307138335943868536211954595153528301327741970804652906970683859573204685769466283559196227703984547940162320518317137802022649431988627879500486043609284446978712784321357142834570842599087205661762163280375649550102029924522834317643967162070405403705374953333282952421486296053803430578140555627773801820998457146999253111224193962082989188284059213131088927543275654401863599526154042133354036515471737119321707657757236526166165564697197082801263186287674363442277489856678853802434224839827832789441796755959003345577885059453957167921609455012761605247882212612423293802039746740712236889042984471208631276836973706246995375658570858167849773754800961586951596957125466707309056884434905528406277730784598314682621462594116798059111344797840424766930359325113123537591140587920887755701584513479888533940010252018738524709530802066136745429382613590088921137265338841480594895450333590372368762246624519983088472622598901466860145358003891212490970108757138552679088403268136158611418452412681760457883157190388682657304462247713762464221016472417640591568118700498612154609256620062478585573421174206273654556529797267287948654368919375246693264602002585699135877119406059690652875681886859821815119529407383644755758301908840640609163560319085826977518585005930047601440048698510882843759976804265403049327744377675322746401112701775742445257215884680984156899567023199315322088839867954913490659908877883977121605530615816249219017001972674633780414313817115799628024100187604719479888784954886741660926328029802807693935202018779332442101539317601265234095830898037206090547119019673623828921635881975076002801740321142240468798567720940922332676144670346475641347576059593913928310366147881668047793930418043516871749422773393206436516105654059575169083546333128980506232960611059992182288920299092675603710472306846873773232616739339913626727872609051568206804615916863752052770584913171522200968513173377631018779957079356988021356696819983097203449891568968217259870881753801302592239390413474302366836342863198256217106057348088555648986113848610039547974804101752458827867697170174061422556916535140068697571682112182753139860128970983698648809354231315793721432986557896369664368321751255903143726368614528427422668211027286363630232287883557243543010285627447775008923145428302808897700835203462619565437181902086844619354512537618105874638155680598223710950703498318455494237813288865750026290690091407605418595765396230876044875442502686236739965128576628557105955549316009585853584386349250609806312049208964354050108362187063742941406221430029016189751007850537981386864062599360244403678705447129373705935243610740916578388230904326371050657623650029819591616483089115489077809981742395708168653867235939107373391113579442058439540370173324959932280223823981057549379838537343176111431672896797293174106645186000953411418061216830056531506168016557676801234231768026512130543261603206814679177521252497408094921863593735971228805051282394874720843387973843976814941295219709854941900290944079605542551032873162825525155230907736977254840420705786853014502673800945638040764536669595118550262970443650747793794457237096754478734791562022557413663417783895011105733497583953638530332896687379914281351737964634051579024085572957313166425699592534724455609144362532954601537828015409627286520448756411281835203977118488766902002846510957006587874226587548737723409397069125322301733594170837798151185740776110360137069088315964601277287363733981280924936281259031306630536470522911247535474169136111385654934894971325117465484146204817888309052232379817917201485339492871964048749104604654449019834462357450099017370710459946353745420637223693682343577859455143146947655823282873472529872852856945103667332995170485934462915495968513819421135267914389312080465716727459033638264376060890233016711354346009064609001776750374019853520562169838580357113126554230807219921765702866565154345891488964205194682487547003562666940227480956098810309533970071393342632106316127305742717999216094611566812660046648070391472696349353928784868959418189170293575410020422414497692039605075150620790491481676827718365965769476150431751242627958750822719286041817838011370582150902123522934933888009679699492128861801139233874937319746785913982925708309510351684902484275162129451224635384745935671327208723700459795673328081772911278615044803576178999106205700512463358924043736493819056932994288807776063298796295901468031965073791128078801435252471966571093120574924716711734435465988384913271387023409612924075242233513110768654987740989367061306001349503159914777310422442909245052857231061569333243153392929468078876481179168647717179923987101865786559016720976501883711004490484614288847008014487639641833582895773758697292315087689350064228021855603567270552363350666919980155587785010876747211538077486707315273367273069254182898760377213109456724396847232618926814841045049470806479283479691077002693180486403508696175408936858965461803992525592331024780090979316044546247504522454385522919133824717730353033405855861462289827233326154767335363025423418903858690584375958342165073774387233912008436998974710932988463393273690205417707447525088130721849440053440129392736607348465032028813783896887822967262069822727898525334872882517801342771970346115155076034012298789048497388109303621743101736622465138515023555051828167292420590899577301029303124190731731373577359330046528475225774768794187361360704594087868102187093888124255679400685560069077530645240812594985484397985932803620053656027893054574910292326639737756747070685808441323983816392837993468092607055570341909554698405576145290966193669604416903907146629456521708345024905989979451896761194196102347351856030190671784750004981107065599610438478616462114251947877941629132597496057387981614312322165349069250791273640986753222134673373089872530309589146613399077218078984861131007351198948944776297966401734004351689875555600606175789655365346591204414963754025769872909528877380429151052745413914551516646629309074645867658839461605931915295975722552582334888406716265211205661632087202919118574273799568213886605766934716635769347707951245503648326656269858040247034958287082529562972083381054757632229036615122385355380847093520302835505923428411516527035426200647969527963174110068391790438650557773860470819864444727023743930265380508618184005491707116053103494458089221697894971521159042142698977943412979903826362864521037070851669375944925556192214897829749965224496742199967210771778427003189003000091018904942718738696439061609721426975671049485337004549516505332879399860652570826550344481445942170801891756185508134116226650046681704518326839122955602649595293635985896117672492953731914356358350163790182774136534659577948699037649289330349166354196297592190401150797329290304123436410747685918385306787951591389953751417712156822840000220000068190793775516880814838338178392472045641205281430789029904415511773077149491827442834947474507462520847328235101160598314756536729482197957391077596555523266352126405919039687119531385026564806119854333649001714300504186245798002383627830747453540193668486344976596057674976655331574394828758834803935487409612232758411945731087942841553837097268142605707733941317365239236479678523766057425225787681180193665744576560619150988426798639564304529733878047258209685839785733283667250612470989388148755441891702419558385967073614758569732362603101798795239472842702257366856272946323840639467142547922020605942460226300990016818055408254525957778755864324208611086862652387495496140379393254844555185234156740278737957458964478025875489320220881105100617557814477094868669075589755128492911898370887877308115233599298102498404261611357928973038991833631960354383486752158289348259789306928929530055587507818780777352645902749081106436896363169577614316623260110010203225138912834555772921522019997789626631202137548368306514662751685562755257232620192924695352935225225509783509437002430142973703382757000900375695283107547090544135256357880871236947969993888143447812764736500525496166466544113462581376096427306643594345591500089869730032282850154175082582086743354699735448131555678267754238674118759714505630706763497405920445392920448526766240935170584075557179811595028711699803065174187202498090125641531148495977225975606372823447527379968516152913750096088162239475074201721666019478965533938534059068244260942280446909438932648474280931326831940863720467786420955819386162812399627557397311066997484939202549791971225554998400487341105478103426228277251730590643392588793253461099063861299382630133400309048532362229054346798725011479175981323461880507790476364819641415457405066196769094100417884437993964378603071595680762567549249914742909225298689303730968637215439493523983248200999756963302259094208692356096122792468785368284535153578018472710645464599009750470100440224035108343314754267024445330940347310353543432628709958829634467131066082074220639532814614015136898151530802878015926971444059357965579176965301290468601324848114271365960265093765080533833496416169079472356285359227390357539243745122342129864234504362209030801036161789629299414548983089879604729545539423638012864703506848934204984163833164477066614664801326423728542545001442222758356829852103683071330383846742857097258602954315999283416413564880491869754517323464458707988680785494166592151843882248058994725672092420267517786029150606060908830400068371930666326060516090068277776946036296872981740978058192787537319097612850603898469624434845579129849129835475254354382783909869329368410842398218357036959068409813181789139702944975874530320158391864212553332190688792038526436217011500303780901977447476467296217780488191258267370764932255286297518871223395819107527875305202689182419353521038603700039893935171254683168893562452505266780227060586139410606187209433393463553497670730788151273701894012904052159714814853875649128831136616481362813223132978108399870742302475582471650762666763227431272257803802589549133781111872616041906704380064651176191251476339474780036384702248672128811767834040228601054690064507619319725157477962372845169001549039910306719258083053264828746772678570582505289968424660465542699468084589644744129167942118590243718156336570076499131665208949526403036855853542951242015296914762581394256337916516709172030037361547186200125391754293803490660071579737655221055457695052295270972034614831064248365335030614789666603903211514591321120087253337104523835045916884058090108522582160614714449541908910959907171755389937552837765234202491299932916597927903220085336138862963952997028366513077372513337044835044423561099021009139234662009412541196429050786467134276602275572621819434170311724159002378077290642977673431691196611943428169406088292501418855904527265456601100458912454060789957607906924401082897887263508984412778395904287924978437835123447675807658155109585738863435587774091697102727917634006935281440761560463476030080951645692747136512187335524038640614205981061412821161687696469953737267869867788875447681846029168998518708505440563846318223549226281311254266638510601726575646357448435609784745821285089428185294755596332624768664574003800571492092240207873987418142920062427994047404750530692861948451153743341402982544199133659662019824668606861862408796251772047565518493801954828763220429805443854763085621840277627287428731387594777574755263563756266547120342552660429266433429044310098841679030786552943827818705800919276325075763421871175123977783867118116674290240590096100029878409326975761103434162943268150777912380405841655963397502243408909996934806909554113206224430982859757742484428695575714923067810353753546532873281403939601776689139930907242138834263919429144527588838830770372302983741817729189773628475381054079193304960323555455340283534682295995587956995124975442304233504659130937790506300963685398757224702253754902168675369479421766570587694355451683164287398216014981142353737113966161790683978566067547091412277387567343145006752605077549109063313948860121475385545501502313994401814138666768726588244641303791827353284066735644985080960813080667005738730781407189826283354266516847710780511427290835353985357680937928439621879020034031368575680931019057057251204628963993990005141132006918465581653510514282235658982340626453808927115333353723572870482146031473476575525329778006160181600425776978194931718532945809420528726921572672562508153560040573293119228891703833999830787832529670122237228247618744529260987832156588268087702118032749967831648507272344421465105127281457136485669320375328539699613539711529396851163732385273551549587991094263359310668024015154546793874047095270800961885624800611883754478303241592157750920428636918414214247100861298841298826918918716416129743487203321060601950943135282337207724370517125516041980179871311060110826771300052746224236372601359550623203166845453703744699102194407027243361888952012258669092896289642708225747499152165190089135389747971289333018999961282023441143190616260432957332579241664454679764416501435774590901003059644626001712582866886425002759976022171967238710518513942703191895963715627978138339943002862678064214920813683520110304774442374807258257440767048239312526772039487108422149835738954602376833781266038011539602409379801116819217468792843945582865769576259604630364962050319178706761294536032000521306543336269126140584484237181306053793603821585926917188689830851280699292900197345651481758031121294906843144006272520225929441305005178600471029134889283474899651131620588970848346306318862458418904063740871891716230331532311531265782730496507419720441578598135033292704779082022397995727484342063974568714411606928748227901912389801370292184441339591833465071701828143098885768599833981390570977848038731588253403166809192629306718121829441253213457893426384370729751868906888357893481583625069365152763466726181976418309684838570277520312470995781703983283569603483008193396282322349220697955945717002994702688524382835213388615592214626660978183288481350319848233161979836934662829913373112900649794401879370085769838211556210092053443220121559410469895763792163283064412448298884104428637061839281782396247084531886785897707813080790104784887577658558634969408811080253916562888833274097685745171565106789995247589028423129338356472059020672138231758057621294941197751066347200116398218955392755066576966327078618357935153825215591150757348311735917998789084406980149517491615044397089719943205843525226016126641119126917774272644009069018960358053982845108595156386806595035419764285443849867230332110624351212765960415792566480948531091404862138595749879346722445706411226576505604532626006864955948179327128787495722153336458336415487898704432486389955265942388532833903132413206312900137363969689838052155261046761086126179507025522699498315038368563500688561259971010081169082233328503839023320372469760118073087782470271271420519609529491844988020328314217030185465443369546228595790118936124379004520115223961885558337546019379056896386294426345981362824423292930673469540877182722555882491528982018621331177050379719034605895498085696430937507934819963222982992388336186968464689565392559734985085265304038744334829680282727668111886165564292454193577906041165975981348269861055217336239089392378888320524063101107346479649588062248591428892274336069640533175190371084459572684540300956396473567224388685668736895294573312571154325065712199538857259284636097702556405067400314323851272027914910197812072100121150442657435813671941231694865494988955872320544472297589401177741250246088519396688834657937290432322905404215066228438526367277768058673950969158479681868991375926348124876776281650449371720435315026498012854435005810375314239234874942919886283204447683004952081273663621164499197774111898644539228148912046635132192342535966588163002392100410152926764709357158404405517878613285779640991300864447674497060389886988857515005877751498020312162897794001308207850612054526472473400042146033935959614010668313054358137271326470799346007006544317784618083600174558507757232563030045720708826789607205283406203610209969707434566252901926742591614593721532771597119621890571794720143723625105178731273433341114673137867576028438700290172610470867774940122680450379239644902817337196153231466446437315652146815007015968461774977871941166544716200814317120962516720177167325833770793144052911845486222711571943611549153203489671960218673574612343022593959959105327022534968555905559057749947362384897399650130113779580034837860220004065040600582320002898197042475802800198322472666173167505638135995268394471667937984309700896742041811577491071266017547451931193675427742782991203794085695121671837045699868583428099513749459825109978859868340576611235045490219546944445178041649153544847565447938749448265407842927789060237743442246440820022766990892089754712151768341830163031232688987299378060157595498913127566848783808545336976216434763879002020004444892154421820351079598192491392996878209510235697910598278577623188503670556061877021010969789458045067374720042618749527906710152473114642597407435764689670180416642886655189235517339708617352823880443691932492913415629113794736810102990517593717194239760975939280316350983169574035340002569613387109858321847909967873748977739744041206636362469616130189249085319077710063105832723917347945850626614891385603127319947667410700120004807772577181789482199411547147687716588510830950998009479208841633573277437733713688386171380901916749942302698555955966943579833002369074436394927967031320210195220184311028064616333163487993049386476330428362879510610863674966046771771688401264781879358103858804865468997834701924914899765355158066631251537234534525001449544311555826588451578800681697136621366144023207106532477805584549495913698404679888878167995378687465290310670133925605257013908999411084976219735273242411467319290218563562156441941271150923592639043764500957665148203793801584251171463691710605225012134654150977055588621845945106327906835991918004968340230721879030966193767342020756252111371004001442070360013526903345067120744075756192442853545900703858781510285162773337153466181702932510624147223640697452587722919864502421820708757787151103749267699012276433623469252739123581664742845810848272585587828906662066736896883966206485228916515646214960725003376363084893490358616200903014856086711183273154099646278823174195939925838398126487978000498625496681702008419222336894049591609376675629928401345937029903001543216225945592570042816530387424227531118358050278225044547729451847953754438948342761366992228792072134223130327701868471666259308775093328644325073101170234503265322196201179800972789144749460850523418257014667490397794825480960666429433933419253753415705127901878463951821789013664364329743499897303071893227903407360702001478606737257401514256646039815303087646445420283898531403372946138422384368898846076067875299118739921461775507108235420348085404276985738314913417037945880432193088455926094676077130676632743988534833985978871660000808703170866324514995403184986037537508221164241317231174873676682552848324316168921222254100697519633060606060743481271517895908665990981890432584073030525181147604832683391112031967265192848751461390440739566249171628963817808191869720398394436320160447352172298818547681367751559285004484597425709017572766359980005907765213367330172437155761395288115391034135450688425573946647707195383930978710982674790248807505529026033211469311296163116087403063669392719408560273271871411500761021988292336913286034343064715797181211044226710388786077940869399066907746807420006579558694897123321484604948284268185788818926792356515862603382330585867674797586539065039444682777919845388679293052463266266314849483000367148392029400915570983970407012217083073776407835693803494411288243263314565192305361628452974133345565503660102926464922651520376438845569051509300361976070486238231891069783427784960835222489993205824310034092189351483952637327357776639833089807309584608541311559663243209139751231265264474556021952476172011538517131363736478661364096924426371056696750362193604439535975202487435296891803920688138447149093132188761372580569328920427392303949659659100745117596260362862571331389680743208234160449559224893006458397847146585556485945638036167697506470903101140216491608376104989763056238724757369737176876542675117697579334587184975744122745243106889517739444546795237004275142259138388223473012430366544633263179727958376638446201123791769395906775073048611905358192010777328998002402160841919131255722602607322461214279154061341574401456809886999533209644778188679735482068071908179280444353988282017056288532133912131738612708572264708436817846624919609822732305509098393906138279494855571653064436814144741322624528048351570943307444957866270870321098234527717919390907101276434268544576178139539701081199483642235801701193418341332333184057225228403142039420520990922445738350170999369523109187363721075540444160247119480586957622657951611367140249540895138284759334058883193982761764799582869071275782977733130360760782348310808818566233065664741685027169721834486154554861128978727986798793682611283281135840559335754496940710126512047320758178751094812140797382878664469913304543618130051616029578586522526037452643886813326230740286010596384568382569430015910092055809225786164044772708448777961367632325690035007660821924064501726224754571849826214254194580480544935858392915275617551463866335033631758616399689598678567738008228345210855989349189673004756997780945348759076528971370312346385264142229997892773201516615655814890268210945634388481315493565587895113192768139884565110921301047930058710292422636395260137586780791741253748109583102912040556043564486068057042060298357861439528654399248895475526864261400265503508996216610254322276655947606565282356370366049907947637821543677313796929957950317087397313687754170849622648547664109212804434622141923684761082321117746870940772971127575615749944917535419552684496291228543295324445121442164044307645554252699753737852472633406129269064347823595942705074619703108116451849084919522202007186183570745873070596572019653282088888119029329576744276736828129758736813300327284761318746864707895349972382679656504668912615383887960213032992286528526070472918045081994486076985956643004083247888146660429872412054024949007081492067565362114577806780583195128847092076497393445140297436545633544654047874964754827630877299718581650380623391179803806649819272424091369745116752674525834392198988420469701390122597198235636410043974390102582627446788365221938128377042861246428208153164609608514131307100000466805018300954824775460846084867046771656996481538422950761792618485508721389973320917229878601789459838703639606930101212176735533495710862011388171046329640558076170525494120717835967947635121758082726098666353174831841922924343771017595160593892597013673276181896256636868441951079406524206630698141675710057582397145889917128717522815711562023561456065935023496340812131002683876070345330222737532676076537604781832035898198883839860770907225976132034420712073879928001678221672761623520335000318958607623163793441857065717915500718211162888670707127024305688387869335208467471802101758777907451136044969788469211586801349223152268891910474793943465838091208096869711867907615305883060516330970311880014401175228292789056763879346478817424729624806444033004520618024514762373978902009760242510102332418717178809046114029491352616412674307848705609699158060725747633204823338102800852026475814145890146630627099775822139666756177607041496016523926310782814080194056240517977512451183793244452229284316176894296677896671020427951070265904246406002396448201858769902826804795420240540085754181584733623945199132168613967486168479347968670443400247408978081758082880457899732848769882895026950586815618029238774259553792302267128865096170693568942544761109690319072404215858563823451720868843083449067570442404898230685416438760779552622325497015061969213090180896238892322810728970110455019325951903313024196138193248247347362009032873629126952214403179876251785144130272891196550432348958170831346291655513519525549675174147259342531468886931181762998599780457941306216984274520638038625607860394425543596156933707405021522996131129871205100343779251945048324937169103930329740331533134771510736694102629670195486727351745535087761642345700874394621618549065743359850477475996688040936199798463745452206949275475306705865120404663005738490708326659006403901159722392818337286589805387439279887124915836110084162929154799638216163025035083606269681502148289933570442586615769064555078413780305857559930370285210003115197580299156314631841277458755610784999221054340431509717529306856344818715776601748673387222623663846467976636892489497673181852154022719951487843787418583216979739247174815017132163861755928652400231430170981261575738746349406050601524021430978231918646527139427263804460352583674928944923939009742332060513498352871052977351301557585913220731162251119297153382696403461173283414289651454948936316520317170191413275246035655052842826375829197904230236391079973156808303598331197797645237802768466049131088870073462355652688690666295731160168941155048862575422425779178539947645866758947120931884261054242945700012548704691409538163077625715137951014820870097795052467933719725909734345740128547905682157098537678318663226284401105735095860111723342327549296149338152953127560676264950216522523612940000297938223349625679451453163649557483426082570241329417919114847617985151638947228561333058334405941102050074760271671169630135062417702288343513923123057405048787546256537884607829595567147207168386462414452989612738289013099566659515199209235995087777908852015844205335046405749591581483555078551027441047687838057204149107293976816528898418217062967981355707293984832766983489327135180032264307985869073016334912890319677738739766430126303817836389541457032633813605348980372694416044219837658684335327037274225972667005090033778203372629871640147250097220926622347560780222067591354063527936121836709004633203943170669776661025810538761481861912497609419477718388065416513810393667899862936881635588629160485404006066448058556550358015787106641890229464784784451112356863741534924078069897342657497024076901183691674519015119283469176369886383731962096538744945736140472796886002192298463320375479579804818021107445704041279573134417323263503211883366111432011751975959894767396946288106921288391931249473798052960296323541525792903815206964876706667527126110979921450251288612983746982514396222630492756094059561902191780097810258246567638762397737300552256293834450276831012533287921744604338854389535223373824334676355504443966257255933925755204966071579585374546689740153132372690893036732199411819241408965791091109072134782229549544207093924833085669200015094838017108017471354781226345655737510047477496642247214740885673350095543501830577603272738514565506101299721945472670622885969015828038753529607046799813415098626336463527867437293895871904928837914818088221275477603690107254365180009608263173068495755375620688235667899357470589779082739051014650027492522809761891429457084399689478830850925877651337223823742617057163456804397303811086567109334546441607387304688403883692304977727978518984618299468639066574451090443949521673260420820703137082805510208889041675095644129104380531145236902831740997724338963214411810262533259742676053863582332536046888243678318925837970833924272143991517904189876484332408356743363920199683780890421519704821656413101461385179835042141725397939104535356977070317195778908930508142083859218164695930132839774543181226705035031524443137812446931981599761548622099466927288247216011633245660369750291663684793439264740960310687840814311730911037065598625637697298339642974632482595668288485933928953279448317963023449861735359692281259636967015518323464410996050551266178176281928039504540787785815475071729921449117541240309095050737301367351721699100542773109682288793553188235967749633813223508780632201943442624996832359197371145851090573181565564326639715131219860722541041299351851295705878217462932724588012374099607098391134051745937596029319688705032157679103142691838407048402189655133418605688197011809528945757677148204609153447841816846843884748271133798503312082262811117137896459787951539908565848787417203914905587877300384207729638646395856194454199062313909104399011741055096886870080677084602210160631810106728703062045850358723812466248936408876410022865199340351574960975709882464595310725028190572056008623724080687670927407575708232626528456955211018279562532539370561303711040632107899379120783502734007086943514834943116704653508748523748825157159942760410174318616517038497519027170435657509592030982992885922268965748929691792877616141290204598333752861858449876483289432391017765863638660433072441330064426282355273010706185824590812663373608345949325142263230875058381806185759522250416698881151377161592195961509808990799864422925321788599790696740463871990223811469699275479935079433573054718910407955953720137807629302258300632714211409775351074825184688730565938978502800283290570350608571712573712291370588636331050023814773303632800254394378114472416541920545186968815005506953608953319756968475596348552065383405011776935285268542353715206726987440217605186848094889610350631796854378340443881080627788986910264879005923444354171716720032296941965016382552241218299393379103550367600180936083681929550230298746326074307260116700024861339934101682933630370600167414698480320111285355338999874546881480857337912817579415993722486695227018566575255169766578244703741536477283336570670751113555584095373423816943902412650927119274293962451152263251788499376693459897700033834302671060029728508876024229670558601278835818764700658550886419850479211776334500111435030212008751351432234898479988645877346972734250647593842394044587480486424634081167293128095522431992770047277826577773649174509179742842987671617343640686959916199397511073086574511586890077348168452279382321786330248239049737187933619308736298338887789782646533078606523684562496159721710984777003373266302055409340056767571850183024194873014526844446042936711756317797879905435725927305925507375575155552867283109740607539395609993136043994937806722011154323095088851101194529327328271576276335521366734683803005141555063978302192108475720189002444468186503563575152004068870732599278018147404829140804812418719563051273643476651496845084444843091829423420620514377147216022177042766457216815351349335387072250288690856781915227097603198121263842128732737712532208488541853670481827805683748995451386804927625485011641953979550958230623414295944077852290563361569310321704531276663843386840692141781023286086433565762345418992693970058381975825158101441624810198788659733110592502982203609878419620748309786920391482848461725312726007861529091508019659639990967538895226486895409192103766419890028185169663939818283568234835160979245614013796231971649602231450251868551185941531652163465548058447351438442368241225083374172222287826404262885080189455095445966665375020021915409349632073414553061293328906900821782851748490658216910977451897206030688436929970359351847084370405270485309141007562711361831780870148061913976579417936023179402801154129252982145581320499975970253129918382596303972534457609484732834594503883651086536239452219376095280384565784780211408888093543621563411177084768164840671245891563250828534853761312268414101736959609964545389023880001911795081864980036313207077884124964193331176981473182594648290506845973517900784877784885639512576715738426381231829709089255060979824134072987263047001160069843000897131854023997845886265247255007500631668433897945186443855243610529997734030447011794982397735790612190495781354818665160111257491479827237288843974060793873833812094915936833704471024605563473989504994503010878157070852445615244091579776951629089959291034578951051213167420513924831249655702804703399805371438312178876695808181217340589611617057457114337895435777797754758095357790741157242174694109751882101030536218879761393059759713665170719360292874734676976824255698860519162357828062571488261616508518671126211843355094011890641599800441557887679336605138217249187664628324439418662925439920198012408964402581942448078692211767368553294330294450299240987161382469253860129798809367565046268514144524031088546406225980074265430559453282722408574738260414850716185494182083140491463269828500296293617976298431615125938211436950049216804447817088112530999332666869597478942872235756201678731875483062347261665826202589053535334544634931125147997813983355175892739438030500448701554572454521870979107644836514120141591386548890945081085294192604365760926658728321821449991276136008356861279084724084212014416728843347363363665659171117165752366764231997244570373450973809092809400080405546692616763813088701979892876809148263386173566115554671859653492931254381383765381613691565799261915257512983675040966187923902438356956204248098565461357058452477673863235917087642185120416460903444998567605304657097502659908063405321281615050527452084480459095421827603396433182252412222670970818707351874879596534392932542202673453905304915570903920011297331286663287321587240305895216620526509051363714121804536323293488219628608335273279770597575319540058067495309464876870617379498384000035965941017996730974700124174337192233979855689173331112265937053920847742706557547711108758379325557119909961075000263134559352899425701054467148575398972052526630184693162839090933137485791526742735742027552813184362028363659603384834181467313971824488685867469094873214223252141871683866095645104668148182683353487013856194629280649201273189172649138299189945887202228865359228627108713889807844390987666260737268312714849597328888031711237771801007201420499701425752969143946133635968669555664292246088773367049199949411136309880007954522928921635295438821529599367155192964467770302416225415802260694129053958544568965087793651051473688209824507571805972383433841000663475199839635402879420959940643497078246942687991436749962291114040383151081773286611433856457834664001061371138501056104239613488737916883118943747031814517687761673103558895692938165894713550196434546377275062291411916087708226047368964675990197080699111753762557261596891754388269366506192141682949620539145850600110356897810173678558608335929445129568048661618485868650779629507609329380636564529388453089822041464548121035986217669402288061106605615921511917452999598568979388494035583992066069902142447365393300585268310972253630415733840441434882266987490462814154639901190573910681011974457012382506515793721346175802808313600673221439568417093136305125328139792839242529041965287740773913171482852226930567374315541305515030220743195807672326581345780682064039782830029187627135959828441664086813402537495531080730377708331554628175258019775237904352465956969242804165743229288071270601101613704804676847407374978376090470704657360260092620275590020833571032915461580414030385842703127746927450555811897550554826178413092986788904800393357588972753972587302335087849531885763375514316864269029851157434026083823182276086016916517824161972744973447943975870029123332901093835082107336123914537546349022753092136644873116853131862037059102054929966945401655994280726987779136725630415092730352951476567965111753865947782069809516643693568615454406776463557657385760957339215986709349646333575211713564495514195850812275819191715598914147564526088506352904658823145735386156130994457381413405737445810478239174733068982389590269339449381667867544134913493257546024767448663143700817697414454560280739756225776331949561404978657199906512664047104099648576298206501074127370455785886054713607167425744242030791178152124397405870694258790078903993168678363725427141177113617691943927505777599822870759802583742998261975359509797486818366352852409599060014102798946619167089139532347738989351538061452138088705060332716870890004710819532386789768871340810538628209243611608875760324616843689481228817347884481016653456085210661072076600650680691323519848624167511793907505304382312547038928236193071459227079602324600395355186721730330893347553456860482973381269144670446707735073683001920894358892627123119051934498292207297322324258808108443502099195879368091222631513260510429108659215421410380368639198847726014895906178666255118673069074723660220791721831147589785406193660612544853726685971902866318797479610313666814324378366421095386085208269513450684443082286850363538167866836610227177703287685967978354796534941337208711084521189302509003237197487018895793097879222118032851808286735211569872949174825664092365467659079034343312698800174863655898833249005252197956178681199017970029153400643007974392017632686566605849665824671068906601130017955897746098661948371709166410718055683932329819266853292995521247365314534716187082983125551640875173977504411850103065227816753830925234670758312857602673248482721671872541700464513360763635670581978126373351044925506747184869692068525224317758290681283150699506446777722379565301725357033047519331416544220467054486535723293912615542282433761188292954347475303048035696032201217618673812493463573553883779561725900063661870941382435257705633966171365861245848188082606593307817723253263583301948376748952813447844307809020662979118102920503324487960583924470143505050406162409572959149120003664483838632281738320160937328172849078907912472344186878919179808083994680514348229860518102375496410984659186286048150225271468362402446682724189062037380935763385509446694074454879148171183853583484101344705589516593791621531349231399220699338277769402523228586606217571945368218357674165678796296680133392305617200743324897134604774448797890970906283044689678724247503804128811995793402878169320292018255901615288401252177208358587930658689934846795713144187539565764031034127684422128276899505069651280526612482311265789386050606632223308540230082965936223346991973198130196261847193657395173898128943394269157542485956389140463674716052404099614855610236512998314551336056856325577688924173477845903964711376020828400252686262214533188160246390302230632599044856209910979269414567820083954605960530386455383050512058372548393981987192784114508702747436729759066724343207946798041957991485212538238721094001366408522315920705707895157762225738850149765261933926291630470529991453251735246148140038157333082231064012266479996235241591319794867179859683537961980078896030571440905449817130613759072881028205944025152844481960914294254120722574971225606637346174550122297644748763718173704125593087183535413480762464806922941833963349215269087726706306081766450732825371161784879821770320641104103982191148740433611372128709610498779489951190556777557754728714883664621561248827239399540337917173194626101209407836926595386032699953970282207858919137028796882807906735789239602128176379644068223530361889692940793624396613564736937528084264608795796893900267032030703868332981200109168939468713612605514659001856624846093588274561406223166143447830640180574233389672445914600790030450122211823425777464186188139699425724260342850093831804939734744118168733199967748916040725648544300652190146186129773675352468752903845581656859063091179576107492713867849304458232345286052254652563241147608186279759839086971242582092588764105928235549570791724977642337416760029594187669671490665242492809689655241300857551317230614794322931002189404115644108372439977886499268791189386457575485588115398219777591900279197655416301814223535353939132959460419314596125596780567878626594795681403355897444722027945837327220163217804163828344339532439143824576809857116165402878367717695204695504874040922719280866152288904972829065729969271674526302351767921551745962430368649312021540900271515483172129113945764217316553220996564416184062905300684083896847047074385616581080853514647373302350070187467830863820383970001545380002444666534373715117123867517727068969600982592953341772557206369728878643617633476315916570745387768280796860536358988048472067840497270754034033794498949023009040704250128232596569677361801471286458018190015063532535158248266857255519975189086198675326143718837459375826454853530872141915507547249425673010374720274959456353420670056505248610682077329641311513165244937952162948460520966911672255272386874355104039638874920660709621013284440456839252960976165923836896357091430132937989197000746303400085656808739730408502187733993125704685537608573172778113611445661304434022758848069165963626997167380231190355283759184417789383368822229347635674801608645674387275942166850574788729112620686236925806497446115098861210144012928217081146946809611653265804354674260492499286008589322117066612520071213443109970726296340319584970567995270542179307892621142723790616379272837961801057063299356282752380833733917366020691448292181413982326895529312852130845869053844188868265922595446274165833068281607469796199742035291352996076068847390641161460403096369415297408464802165045916085685959001274498708935267543140184148574946068567890329600351634817720989390413731940413177116518199411602464209804826920419974050139265399478606643619450159666991518129066949427723788370661739565787479370475559404963543756592986988703433465654527984143460168890245452965248336028248861119139394262229962081791463930612931624299993956559822470868985434245126001575056873305439127421788326374979817372316140211200366580920155038974836167451090366213446570176566803073787719310443526976691462684570886515424634955940068316615977741567489492901273455680128185605755595057360761900628582438734000084012497047331823306510919127679408527311568617312809057440202925130160956141782402544061764795222895647472201660264593767584068267528699483473164131942178827888544614994910346073112503463875279456082516371805737883612435021470905690750491178164782966441019686691180581322664125849032628556912507873003218719541505827507949564495512499524802392260536232548571124957004939127067602525774275317526016662012107077908721331401914186051429567160101086040451462425335161657613751282417505647960400251811786345121209718059167294940080551201191368731958140531806336814340769966505349755257706499258857358672587364918865385439802694036392812172618074208243699436883958013027621444247610370201451457122874013470791443859277671186016026506942590215298167959415401507476346076855866426441909769532364066331111340919438171216637099361630149014249421546052041377621203813276208715618879826926508250475677000451194997338150772820952472071778679861109768449500178420442752173818963643909917080094696344542395999854227389124848674245085320589234002472905897145132668413282803963960577118787804881712457109163385343824302296900666479563507052684573309784556124620739808408117009145709583792423632722723963188612429241765586216598007335014037797804044057859187088630577913671445183182253425770331834702537731796977904930240701241855315734625885178856470668634290684667918101780152659050233513671404611528134773910508253587637151801638315357299285393073841643002122202428866169789093268948858799400372296263664781283601315357806835652521707188800389133522812423094315761439892845939779031806958705534524242114700290790271171656083254734405169373414993902414346007969843887633348111649709909389141458324387276493251595667796905851005667727394601111742464729321795018706554152503913762135922382526662143737357046787794467749744738763088591339437456940550477990968811865144615667734318010496218561763739524391665054497571111012629681630342859014183530378431193392358634688419934451630804877658008214636994719568659944494199763841246863331875829393793062370517530397003790669740990027967183710685528286564291156424851966931885515737651828495968782750785141184330736102468216252552311239205719948191959231895510099591986898337860094510519754251584650710873352902916709373004510826346552743590158020822139604183250258997946235736620645067024617962740899942478796506658261771906190675627038243935737572380893305281712171318802553081634506516040375694945774268028238582281501102960517665657641278854643883860483612812478634299278103260371463083292661799281372538891542240467291743352234964739010398317635913292055262494919467984824006356130580415899690864929495475125806549182729034316913682069413512356471851252136702435775815040084025797986027206075419509470977704946571264523997077006293106485875871097184689055117335369883662163118999155887547139784120375942346570138245289606558663778738526439141953185376580464590414442229558877957065316382413727205075673146603027610261574705426923990965609894982696024360286224746753769532249163351812385256679667409458305649285586696372459691221849873663993738970685897898453001146038809128861667604417687535659966176181096220169697922543203265024361578070693150779599125707590838034025648757602229116466443271205798036923467595686329568702767916443309422789340988778525868848218344786800504746144342490587280978726868663225405893200465633175881663548845491461065155064103562182361994118821980873810471135062929105932225068482385839566101629113286432329342738698708559053556312752413160661807211787638057895141054496498472839044246246058886870262074467637692660649903917139196985303754352128637335261283299833798412800878420317253568675648808296011117326514121617867061765385983241365387189891567961331927208541539317990569085889132732747465825388195841442605036653407182967513074574337440224653988137644260794259483768555485014473694467585976588189217933930668374279889899592864314929117053759481650427756565852181810062892621613428776579371788574135190707479490938230112828502101696656362337170081102913642457508577482532163959502064457740020315984002743818587112241866035419527347772168995197245122546487540759317612634895719959039952105014832941861425644144338488370664824112425203004414916245335657469191953906828056095446478150766147201599131125169136008471479797064668987028551257878425810061451091348806834498762345586807910201831425655071410651549390632048861823806055201668150016954496568495532236177503048546528007383816304417458730913236627317286963889026967909278048535500529456533729661505295467665068841331860634003259966319673011358718126017834978504304199089298769069021910905838946453248941884958010093829857934010967688287473912913309419643954837459359355849251669202277122517631820060074121783752681996143890371457270132209049580543408142643491983749828503045463696797560260471302772059688901051635988761612474011661465523052299319406813262012039758644397650282286019692884150166113370146838879990853866676804764086061073584817883537763707172376654436385204992902774087834793520437567735130658559717742468400570626043248739641099598869868879806210432573206143609820160942191642366504338964030253041778686616789969062534709933790205646658160024757074997345742625295583831058269966717867990045167324537742333692188421383763407816353942117801129674565689549449478748315658756596445204363695494001788079070713428537318949482326817786631980719418541469351669574212331042887734753865610143567161429439217002989930355905188603768592874780390150594040856763282304619698342964604526204601165958333609682068441642622484241350006468110036505662024933969379333232462342612889649009594596666477696008399327428567027823673924420706859718050469262644337174613696739985352126990220544249251648723792961846847018090044323204220170649985379665030309492602231532385864549997778636139207723499494946762454512280156884496543843194345360689228720815882150167538244018017026603063027587071449708745960584915121662872175948481381115189744851163828648766468071164736648452647434100906212795189619972829189538364460189213318536596545532534918502668933155311723803169340593604649349617997877336392892340928558381003792629086792290463460696674656912013125640555810862862958050098983042793341529387925543685901692745062814553368703397152258687367482686221641370281228371189665274123543390393953584453105331064105000894908199552590599341748483830739938940790214365838523599440554331291522507433086283867085678388854364232034433907825381778960193408501448801865647419176433671727949136747192840951433582303024577551678456277236483984081599805341317328330241524832566202680913399082703010885125886084978792957676304265474298116563827469532978724018769910470796921842898253270739082191374537621246294163538395969221314493423082506983559214566117344942402218463655548478375364994941991941517344717433020876874886205242327325389234549875931426696852151041729092165952208770917919443960274224261342289148436829426160005535475381213489250446634694563934702694093177227744782841176253341082096009904650995933280243246039247972517033666638761700662266290350139640994567306835581584353807089226377574920032274915904593919131458143853592224285821727259760864656442106111447247649188633995598650854015127069133760699620632396769796922063273819971438365977681948726460028905709131986050189544279917052905640464289496064727856248386976881070806912978124019386949270926672990018254537939717118825095817917236230457610380751762791325610018106528028457177028647439787197765219288430634260583198913534826932214439772831462994665046118361840312031998759656816662551620563018065638889509072309785927581355750614737055502454148342715019710805803680300728694777617854463982731044713467947173756536205374068704487330647500768091439936416820232707977335670477900836675050263160744895904478714155934886394736504668115460569376996023711768976923354284919503432863707930255496430402345834433558286247609461898155185339330427272440799671477433851431509385492666223792516452549953906053682078050189906402228830901273662930465673746033795217263111534580433599778195633152277911431430115787727635792632732276964409714763316156037526738669909883301179362948424248775783641620901691211246290344122989818487998676670674181192623435869119925398839049791302328052338781719998423019938827318682794407609795845454601893691559085430002684311060554674364539614792036193011058892473174820296075465996947247436938327973049416594493276431167650885535600315766226381595602341671325780703846231010516631736944257176966312390397823619042299808942753067954965443683049737011952145682041695515693974811213315650387043055810755298078793514233894375666069350378831580190028308669658694923300374543115747180156416453159545206588614258966942092757257056029898623383064282239823087786636281492174737331385852528545008930006761315836618972336643961769612128244095996065614901074772381270658192783745863194680654904963857729754534681244211044799318780445392425604116476948546923773349914798441406202375332653141859230163372643477529120474303889321525675957997295233307085661372964576132749308990003562151279416804961945717161855812012376844595447850557325171900747200859304684563554276677085952279726550409172045791675087562055773474909151558126835549770969530982771969140454099352229377237903297943407451731738235524485947705498995174920422477844091060437397050256191826698152314164337515489021496866783346581535108452582762170485163992989793304944365085491352510512400332511662433549715075266035386729840656635217147983475493042452703380882077776955668300432885858475537882246609836796107034155176298930033734877282370163725757535219813772301368655575500505007868656009098190001166276143676243331436317539014984532621787427985769017091382481270038126400257370989065760352340443720429419545436765416018878580314577150815544559778297149622905082989478668150215795832590320783855068787429951249234625522553477828107473541604584883959581359708732506375976788542649748969899284854702654380345649595629959060196142998658030770105370075362307052187014369471547181222178684008849422514351882429079561561776340659952809527972721100157281450713807099258003745870866340768457915929022058415268445298258697902719773409654511108598627352234343593940719246616269563313134122622616735613626219041751743232780160246044102457647606133642794769772416649647003441171559370470669273972565754043224772845179175447128260378254495550455369727506176459262775611642743289208055364191142682442555427702428107314252782525109165298123866304116855632349955892305028976972396154295746327097103673289133653473175800243153814755883995510312382263832853308713358582750538945876874568106892612227234706837805746939274695741583759991834885321736515521572864523380234887047170843031385869117210009605308529290667989704148191394726598951035622633345552032025675863569278254550030557272288924513399649116707667912286257160579283544354759378310855746421742652482804163371424097736506796595486729879015043391230939525387622876213647142026603585220634595213726432641139921639642067835500826884219733335199046450161753771140793115572355678216960014024808551918725778004520647572456815257635062769397346032633406302506754379296127945069106544512887234803895649680846242916447399559199373258499112900053364337314624601617100182754530693387826566469852472764401808636699158624749695959668851856266661190947973731982317011246067667492125251253809030761802215736896065585235999194869332026876704120255631596376089003125047923407554357439671831467746723656322614279346608082528239391493902246852949636563141058304874482429899345284127737848474334050732085802964807667256690123085147263428443785059693864999285627801620277859481906704324985093848342103566176534577306888678146611392289244178226670210299948643075010956779128738980530276372103215827469453709764983928600450770900842706876525919041937632174352982715716540580326895565926834614874581896703806222147050644618214617289809686954092897077635857672750135437170690732750806419881235832457328508844267827763750748495898388516896681370274022872970063521148430231785973457155142576132696167577804335496065093477103992817858400491105379912643728929219430125859449420922171014872657603400918765164908770600285524956501575214223972800887509422492346944644783508397496792394098430311713756002643050216247043912895246576721238105620003931279755992647573073194157183104372285210764193917291522999476685413909521554464766329043083754847987001385392469835018661923039899008422386060512661261432702980182292827401460384044714845543770764186517320240392546932725247821030878513713044282369567399131860353742500297950563492185025260474737190611794905620275894063400305060196674897684601804678949521230572233000276796307942044616687045111044853521217004580687248713915243413111585443698877375221553437863610472796621759446750404151244696205815318219950188336897811559055166110817225223106896562351756859167782167850244011493818888619752266819206043590087476517757016353630676904853544757153199338307029992965120875433762498246227946125207301761552617341692829356540001785282414712108205386549632962974840416594140455762640073301548353282028929446782378467229831218496713884754122971574966797829113604133772101443331166350499426771620227495063614036403607400399646898274508366081600917098299088573228758547586779128304302884615177668024500916348147838471080019536902794847380139189371881141501463158794443610413985476369918330685950707105179254216542199570534190892893586470161143436985734177885878707581170370112572937172398608021310463459198398695918934968995549849984807962595147328912542766462625814966902582798167835357590669991992315028309933260913563144781694352363018152641831385802431169286603757305287695288271624538267308746408532850827142560073723187779084729912867628314595515595826737983156964880882561261334717328645362697180095673436422066820483402855218961072487510646164807764979547878129550205227092826787390470357836114537328967297867184220182804928157467353891681343785710448793005284062338178031858011654015632228801314690766501759587215909284685466759070733614183131349729526188098474718115884205542765124161770147130788254051406894530675245515011136637118606191503083228660352768838040014772053605015899851900621366792586769372450737913791675828600037261660143176507212989114342785028128952703594162452386885816296498670708687873527202295230157986582419603621728290815827469319510859395971846008959724262675286254926873621988384767680777911017177348978573981267731464295780397819999993401607336102118745627794200458653119787158340414054239349076476140084938233796517518653168208853242839415775789116084891671163914284745707700207569991608350157209324769111535975008586592379229536355724054879244916611670976322749959738549669837710689192497044551831815116214422654808356592914305574591262670970464550715470067102871768069234282997328736382361394749187174323540921590317933657691236365594347394378913311978487647488193325496076851573748021525989567014469959200551077838995798996712616909721863429954417833645201562495731537128951860364027075431337082113409940743999664017833942091636775386054118865316644827356789751372059245049089891787876870030584007456527863337353531574339474476157409032317946739927388727895485915492923373019752898797470425363002392379221962024424914962342341594147729951738641750681368168959009897757517659976979426320602321280367348746744678636603385502289090480639957215579974364467876621801714819727642944407533484205956169781301467309249104111701549951863210783489405377346050260646796774425547517927208346211222445137667424672833443377240958987278102303760400449113084897453208145026930508396447086942397571916249396524149421422627683176929415719559341682151857726104611376654300380458899866549012856875087336403421619455982921961360103335410655774917998129782175842348152971560794024771388312026327975726488790730052610054435883699813725671837985496503584892066034036292131353919013816026329984775352889308215334993108051882387742239794466707292646158158948072378049870330617452319288458282019320165437990891781517559508464965725350968473775431162249652468580086116220982052057913023236487962465455513431081646094020932432871221461823475662431835410954233973567100191180870121592473515901703537012387138765871608630572443173864985132051098748343673617591535891824993154828760832455138485441507258244294865722143989489064536266012398753748463256389058187476800395297060353879437501947289141871396615437369998690366802996976969303866774354980561226878659296095957604893961289241451300508259864944107506388441329264093147577128724860585120612568625426227294168439330207722296209391555975729265664590315269277427954908217361034954516413880011160526773636132265237411686815193273780264640150506984187863920926594843040157637518274028220415219702779937891967552623017174517122891248337142556350413691139407506158031650157690676776645760468254048765385578923065322661005512306040921247378132910539481402999172373349934437940691062396539477047390857720605348671536081144836883380483570981513206464044604219782645849213799685166805383409952363263196004460453882826884252088252727585433165261718471720853633463452372108020270934782821606045519130881686333183859082886101790686368072951699335798442264532050795781198129067522437661799358421151448040420222503967368891095482900932966814785468545365580718311995663116296831906220305038005863887429519494900769455507093243498619258556942495969232611699638039836939026006958915635660640994194729196251185553999574542738108926493498166811945763424127099791325319559555963351076141219959366028509753458746992647768653261313726573319518275114640427580061154908194312013583223207912806340919613475355007383167837350918727742254633084479687411872259299611713985188289495579552330116393577525161247262214372007758847937842789210561651295643277415664096542518110947198213984458960234982021857869821775120709049916192859225118349145365598331844059780172235328437799577934068128133043726465643035780344949085693630905594521075467189084829795550889562113571472327120422578714583117626665882132529479338875291634735884745822006770462347280716422892570373384845523368898752630093692602979969352510502946638885680770648481755805753893211104815721919616973054843935402523919475377784526891505572872771414117764778013550679160976986549531565993243010700473804998285414204532106635838335291756000790035965690892462704628246127338806215858660466542938308752733684289927357775692037035435526928921013743469914176359173392561517397354292288942072475947144474815258658543348505865745037861311519703318131008066419472837965267658117595487697983173210519896927179873313028244982883269237815574847589067142721511137550747949477713704454168968614843731168632866696612980654020247472774196767649897345040453838167314708109410726627145068520816254631798659627343916167700840165224237948942948658368962026148203074660212873966934210012140669027152128024536550217898960352013951395252928191046979495605987702765553059096148785885266133480694735768837632977747505422541096625865420584553960681855754793243374815159414438022357204305109236573041625387394016175372253463845013300831956863030203298185013008254923760979624571021649872954774874168615727222135503184981896323235980515296480774289163399978186340638951617897212503316554228135448532654976113838249290791304866243201279522719002313235064738861099779687517029759614942582287591300200438535291996766319538069448264509855618297396330163659906447517782769839567941208329544876257990431897110069502017112986519144526711500970096303039996688557194873772861593226042372457527376002618191494458155316289506506785143362325381571617959007572795507344554153203935130664028617951111940885485561383393485468766132194614150429158192804141794854424595435412127796263337706975239983664451060225814782411038105648530282043163538936273428527615121936899994977738164093355961641598145935118261446198485101443489546542853404741947626959428107694051509978700415656415401609966233655798434732192964332549861708874567701439875786753421351881543878656707745349246740133888518599916144978027880265466582185002330864207829769127402018846736458564834731816505533474367729154559527078842250339853804278163744383464832184779527833401662916465950391445330181304060042662710538235614826862482111898484330098048767829429756474155921127081848719610166524133276357243319068966900547576431385567071852871837400706481389776138394026592911275105790930796498106865222341934262729200179312523170257428933716742423248146400467835803086778846532673211601843528988995205664638130688807073723573163815437846598982356933669962641507715069085934846543805191507316491085044953909137429054014113964600717010657657116291877476217379662448716460811038102618808920848817186988802079258397176837867118358380156780143153912312547656775424113763189515435400926747892361030938654738575332877668421493442885597599345107901320303789944353038614549478749952849477619318499511888859424383755620053059531886006737965025165073268948910097603140736543541882837449884787586922721067570423777892011307183837371504603158218333506010169625739399239566799391452857584913013662466535635037138773172378556279751810444716936327509931518802780883969354895580831967587849454293768932982215356752155741440614854293950936271518566166978192823447642836907272674333670486191771838603919700300535273578635093411264619363302377468673610062320168263781354168987624379851468942594209060677484717285722289929766613401927148530280069223675947451180659961763413408615174854549562442591540744977864534562736497501973686809314635965091966233110950969089077806891014635690761170109175519455610617997824935889624642174035561481630113133277339776217906209506696648167496557555240642633897639744223651879685010898999915751936663525253829947097076016777233441133004531506428875295253646657889560205398544152191982595978872699393562454708568959032029699694921285633917576780430997059006066388456821127734471831689524094834450049679751989231939451459687776458969996830089398563771571123139287644536664126727261731730183435730753712769721527416617850964173206836854672108684477217565959252700953891100198231336345859963691057451982089085881589318348626217118425923447763588913883425038691361200538517552242045811399964664992778477344320450545047387713304111146899814736645091225192882702222305183757715951954548930342409947887227477348447181006579067382575502198695041413784600920501991303923391285793896955195757328193524707670241611985143984296129603822697117854021092668428453279930715792260052951530619101670052496239323758746450231529259179199762795318320298275260109297388226140608207525769370580140654859913694219549447197277708934763167446017162841302813167431398775367278575394390579851853246191661998662352257134773023334038531932734437334850403303434699700015585574094787132876931820856026332903987727733714576134526533998829308641679031856769425954098372530582426554348926992523380340653331904643016630256949467923052855402707827134262213133624208018900287035333395996355427096576974425824397555105490029024311513194214382625252452625480744720125136252658719863745953193693693332813324376790416403382326145122402221781105079241809397253777930253363786322181417383445135902003188542795002573715837014799276669170085722011549105477096625629140247282084572385884748749692429181862465358200467069089523609897787360503917919007218504692744711350626732717981822828461534472214185526440828542007450515731109499499553448741944770586057794591807488218391095475878552526951284722880883305822344458364940256774389140900787047292105248003517506429278525769532145874934980570661805413472637992960133766941549222552525889798052518660398353330677244862383162696049673592849148430724804485761868917555285684189202537344931624287216773591055217882779711933902984775483033401894057430517151580319267152936491413601141720130039939540403950482085369168966255275040976977137853609368591911434939821900057207204091032993663711220450535965282260668074231862015228941265365132170722307201681383011399906893746054031064326838605154722999364984642251708225534787204127882291569283447676563303896103753109620490878580222688153333086463056289202659450861106473475136922392223099903795302292104130708630593669196150721186502391761653653220360969484211217956815969443123105307581625309704560652811751500576293141623030177973681677863426798776217313094417434046013255316686966471549858409657616733197281266857698858720695732800667392910231589945607249751238807847577516713441087484138663616570941829651026929983796312312270815309426224242243970958233886439942757851908254484887970340473262090675370727000176140560363197842147088193723246703693929018195022799031110109624974146002617012408611993753457716231110151447639817065603792274574270607208435558210001691303577217847349105891727116283088084381155575893983295602606515683698810502556609645764415470646677184366782582225597646662364183306525789624689560586900608515870604548126941129378881975680752231776774012377835231855884195184723014759237020737854095917388147032352995554238970700563655592675979693857658142208150114358575946235796833546251277292834162370406297678973536594701682057533428675055092306615093802619348168710229378816406368058676141902574581626774144510597153129365504197679798302292642688306711565494152878193171354516484375663638860448866600497616037536672127576160412522203175487340558234422750468939526586237277934514166199329289474451959416800394526622407070509319606422296037642203352405163457829555373380408348739337774887259876785633950954890607717801948242306430224604869025856382030343051481548465311663552181825277237550605599738955028642869669937544930991226061380409461220869077133053646825071932645387990358352291534239723683684636224154722566633230729412176484750670934396863334811600837445264825830669789925017810931698096935479228074869053148443299435143812661148379647827034538411313491548500686093018336009127540852068847082499188025999996357293494459978978158604154127709307132777727033793172986664222392091405845569371546563658228698860979659193076718682932417867908359621041652057233696149527450483070588461187337941565613785759223816248049622732950578788292909339622195667586708067485323627424311591619249960023221242795275070290362498440907204255519215670927243510302058940129493514757832939518471585210228939421962796598224393067617239616911264823342144921477092674487413188304811231180948849358953709956316308494737221239716127398454751821614339193003612974309236751685664412925996954414553886135603127466621387805459334659878685274430536396360560840191601181758471164908022685830937072104053281759316827418860755360466035710753618942693779692458946371665014453868852641932915884869176617162752519893437327994396300497003847964153616953586100808828853974205179059152226581892219248393140823894172310902605700830557580308566349122622953679077569282777088419442609095054388440697371037456137840891911391073425039988750711986909683049678836825583418241118606193569486041604787993876334839671434253237920240757272841047633490327577893411744569895062505906674527922480908174673055300499545290854068380289465682722985265062594025160237106432376509244665493787075362353969468355711640287455762588692175796186439251518356880204921354470006349680901533924842092383377040840210980124707903441972685490168220777979756310549880889034153182864034310890150620563813868776241677136548827633911393561659135389678427816980705011453697101517457387297065174064457574056393365529677908565120429048088091052655411816390663531341492829626656323746224127181136982713295323570694645771021426143610007449868271302497354055587867993842276083810992546035321813680980151452477280922292102626885963211353099778656126749030512106463622336589949845523706713197384366449237029478653434995181780348188974476082421438458197521729633924213197625689254856670662011300199546231405868852929251738611668376927582648604895640098880231669579117762622068731693647590183156258971916665534777778724505434705862258142233713579450672819368832615514477839893262069934588884300542582632006246830067982789105952637273545243939826722159254863305740394905393709602919797581604985973504588095517586490438502965729470349582168241231274670771192554690208012315620133533558770306768448971448830911187825973254262258011214757330824642426020613413185664157833727298423748243604110240804708152741792315235144076763197074043214863383431226710381207023639983569377546125889280835548085769179897425549685102851403836278639946382531786619289233046960706540507633173810770738462036388895603399806842274672460993516732008544615917004772343777662316770554768074394496506642828368624565120328408743029913835995478937338568473950082219611279431130722322144315048305046260200215725010044597908901124208338637170030409084998994685716179660341618717458983659262774291038244565044356844953159369622974675151612074224396047928636546265446892373178614971662505537080614374073403751382416060497818711920475569244017638054797733472012758935392004011453389106911954106832323080165764668090106909193944468694552927753567606283327484072439734067513776832083370258794635958091618599732171092178591700500335246524947578621905754609999450522736553983978110815113276201350339668190073746057916622431240101611368577390052308597645050386001639448198574929167889390991710148199438268208198160122555878340721506961171944096889249428112628672273781301770563753342738118012324812292274552671189006420880648341512799253380274375950105488939623314451758105079293553818750603481354703897120058041536025025291059337490013209300334477347611232677652436171717963558610393143651556277846385357002299186109681285053201099523330983891692916239820730664999724684139217800126479886738989810432519454389990766525541469684551746569840563147841717050082960122882498206558436506140648915365278018374946399548207270572544845100486887392983092771520199891966153648879028793900216350425983597314870671059991441635842388351740100833225120325572768559238147275251980843465949428900396584358963837937412135834325367262023287802919193469679494922445636523107668938259184917498112112973734439646754843130988645638742242290518742892402174521804730968973281966781413073557487972189358946866027245108333065389371610157944239334975154593877831585906984751026003251446759446276127177057721539250987798939228866583422300195742420516589952894582632600839701126943263441785292716373576300046965763465788252060831206247199033848573905116525308204112812919008464262098160041527168506285334186640926154376853183257473366682795416753642502654698512648489450753265264247246334560169112891704484066870930671602792092632543600222971264642670144163234019436973337041131262589347915361977852695513477015605782396018874641430279727253279458176640249166755595565333957806044351502235207742044383103869420549849288254666079602556211544364180153169649292575137549806893111931109777268635404401736904786464649797435505878059389463708261773523555034240702755836480343276947026227845111693355580767128911147482805872728203587615333781635797091947536994955455727532231942331035372841096184675229791934743760286433410264306234168259238308199077926126346245307215842040663623545043576314570070204784418418208970793294232576996971761184137128892392642648425591498640374504403625238042647610332366820331427029784371819461271336973304205984650509242833232339199134983018245036038423468870634901813218917778717669074204544188554423435186299789368281560942107055821163493756090303153959299700451567255572353822901356963949272819994820753825369901768036665637210420839842740525642279295617486283424600842684473501857156633484393085554577930740044894857405179284310964288082362602586674397813695299188916049896048370000408155128095662429045433960832853194879118897796969040949259962887028533680494026973259045155665414885330366295053654159853227215958134843508128581456734713396623472991659716239524864302041154472469785655166559907529919262515423884114766888947838540309079964249356614338368508557787713722224847074211572190989086917451999968370985435438467355709442223135070524963433584045584492305377412373077509983568756946513628042766405251245037905762385757393897038245597365863764622578281844072054681488613688185106446496876491108959366955178591097305374113117780889481584852411228852249001119346865187465456891546831592614309749953654247377459785845232174990587737177146632375658726353213118442461195814622181999900375088741674110228393841371352995194414712820427532971822617509117071161153825897217393726429240967862292174725461284545843003603242699778799327050559397042287881636593795660030642880379167060682605527878963612544447864754997204715898870891998000133671176265163997017786151052196311005891825504708669714738440746865260302323321119460060329331018862945687205633558492100589960064364362118834327986679162662400628144153484802476491938209584178881406367623639038891708840783850344694311527970123511639420602964737362741750399527840244308539403579726888256921623557774368434137818870413710128024745483234093675980398649583858922220949823932438678341922484889718852938968675348025812331101443966087898808336588852982579317245446064978292081601108341090596363252490306529881361684365483584508228411442893089497115715830885664832801531111005461458038311373255645077765553783183227658044122538345307558222095914275390713688355150057900947170928988433503879838138513546567947715349570243666114035775085413710699201281367770363115522362381862234542150758138938065101524210645062365738201861846629918241355802222387825664682176871087031642513664301617296233898524405089372742642637313185630760450460049668816757712899872060750235808817590091797101111244703485264728566046808776182534392709564923671151894778105821065916917547360723449767672889369120640240686698297196931558508873170209415562615213295321927041217582953977144918303039177414168925621846166245361311079424813748637856501396847474302470287504286839567104077495213597949377663670470533584675234460597268736404414251299289566509802566280234032524584627878068394320848708648595351176659693875161210611408413690017050996457287509250716408822152152589360890337936286811874560448309503758053870416428033909649382550313409791351783437621412135256973372498307028663401243418215969040295847636355168962773966083789430809679831832829176428825909413935802364309172011258026031374721937112233394662126010951231913889090396159067525466855289079139535330567053611834547140552838148869092226395035129422954181850846059193556536046890120829282585483748995161407525004869336538433666815467809746973206711431725579707655896971055995241736578677267115180882137581844785918911088621648355108644976960819593769267354218109047813696685366981012696546853898254377693836140373517221343468391599648406455362495708878493438509061401548896872115739823422004931124765812958632521994099087202915926572132124295584621574949565627079995913044864524613867751049640128814815235272032971314772098679021131910565725856790608488348830611561616983195675647995917082931987548036677775426479197710487760446093738907205688087362928923623764760764648768789914597184515636646956001050524627898111439667519957873570927844025877556194603961530728368875865318249629372750566923677092880354940307055515652467412744114106785819335746818292566445250973622101052992090494406573587430480386288868485337424595815370564096078507096902319656252001664940054014540026061833306340690370814535299807039450817387649763718117609098961140147557884315722486663036104355521038545274980649484782028768076766382807257731836373064329546614388135894902168320933407242273541339435222822780320857861710236866056345144520068256776695850810975283815424166617655133803922396827102866176234084807552099661977594186675367665662718422208991886358834310461245242537087567134843630460380288651219032932460154060007880054763659957095258903689553706358502901055204033032407862000734214472755328642700045929701302941435572782332102493305708291245502061060429779899411415491177305704237034720027822968294005458612532759831755653281920158846024886639374101969586389539095524064757481045035739745724596184024587240476272985016094833875725612642971834951482766667627489612703801107634803537641903512765533883197545940540166920451932222087335322939141631307487485429497288961830385540136953104220183402760684151447786823892454528967002026278311800982537750050341334243832885822025609119262701937785529090131245550892549611224116785185726983944767958124121798396002623009853600559806878607209384582951147740208329611222647999944034508247325320365626803061857520522052286012446721602842964755683336522848860987139939936037187682479613451620262809374324006448896491524525807101247868672606952134795987158043850462546828074538723546629517379924719506967968287614939707418943682410870409734525303504837072591004961737311304218933425636926504220879393743383590178354490999619118580877601141548261478224534470427806888810266326415274176758754267108695996516004870294049764294043269570517942349446251924965317784651628414925242358956418509159471695304752588281161213047751450563657974268033617938906774495016712075771147989814840950036385611188443338364484503642648845486532539528981931742236346142597259418312928302400913746587038401949079683441561681675831314713843924883571649000827535577577618148144538290168757776919122847031781881409880073310745892005404386588684392378685383719204819224323920895455320490094436183903280922157943084810264726855875059873104525002472958439553282894519500634913223908826296909776482692421664830776191462432870140939879700590874738441582274353649298094123971756378992924838064296802735555218501284138404619838935377995959181271269485562239471371206787592069286712434474111968563821917756540000770819559761156120450927107064971702625750677415873369536932862342568501296391039386843720017642067146643661702322638059008404302063701538445088535808498201625980277685368992811917603517294847364834275084297021676701443452068350836077160272730446279737467884237663099072265126569193834372320928511686758918486399497834199361560061180281263618913871973224076400204354016027995358087401678041085853503265197541362487284589232916836901838589251395875612401908895344423487551405640401558841140293336536184769159208756168668508629409102424093635835114683287690869322309393651133672472285552444775239656974985986649168063925450876632222824780374568265939567573088660766834765197099171215657174362698345858598637181138542148201135717319816058074731502617672222239943795841454606701095536863623589746469671699929204857172537100693761406024374821708856339243891455885906656426410287108184552744542053127362930140834440990807586878273058373103387829498778747482000722960259386586435140076899830530099648942047419669164978556917391724251057879511709856139272641521272139495664860278881670768700895895792059075548980603335649139411068547949063025556079728181450456711994289074724887058606753618474685829178341250888303477176091832418608593800434333157185186027372390423444386847712345406111499548796226550055867819156127658061732384431852827182859774412933005344808365273768798604473239097031605692300137303731393976691285694400564977196700136538249068088436410393679229019846245105664879346535417113177338375282879425152686210082815820661426502491737252154055290515292615349153371904471176530695174005839975867084943586922017628458214795545200949901955276413525256323008520144794787707278409336837099956712071975023679244340605446612614283849003569735639464622291858202231260653474541941836601988105983614312994557606255479286672813544397346934976490266565096378355090430292097725655525214048391945016005850009949960266638645901119014015824829347488615066189094334168599292075665320519892782093219901869249073501849216603781404742672595314033223148014017116985435626114212718587172462616490945312626222363943117193020747367616572378388880252797216556748433308232549559258718167585392036757947346899388054856930485376401259788200717986791486530377085066095270839043204631402959811750789282785857033342553099740751214459434913931771976963796181817029458411469612786487643049073902111762489669855219754749646215968327665610695099268227510739385520975533069341405527867116902882523282149938216408702777758539445715682537107037096591280340730518603552257815710136746251111548819588913957877361257020658076373176829412113232343005556564550297556401564630020791145970667360557150486465918338964015676780891613291006934881149690032449828288332804202995166615140719120672853315260744998464812196983809860161596374224563932767026895595287409480033633086519355630744618032283448293826545763429082045969973475602322237776256778809981927746841598407134449838188148740041650855630979234206834987390124975587605937454107842332999370726092007368062878278014593960031848035052671786268841554426960248776418408401012835173014510976386586959252578134359464741244548400322046823794002473333832889207946067992856134523879352969761521132686176540554630286591500050147407441006189927873006329075613504707392959128379124572266846214243392894262390803421046370878399827456191093183354327243684166344772818511321137143560045937155208144609649466246119716050349728045548096388198343935333340816197890684567396401524601437600532546674835283120619953409668427013085085409504711643794029217141304034414492120933057099011520722933976227050987834473019064274358848433440801602764281734186299050032828797047172505826904764898926659533319612738402695017570984368450296648747405533477717958803371956566885883329741346315000359282626846128588450742149649947556276176548545608158567906419945821347555271294961619633763843685096076196891398275277200905595634332758705600367323580544004602631248020536756320178267738493902958153669052230853536370600737247107227871316162984757123345328770218817962813485659554613744838732375226211720613487229288616237816750674187864437044327399681451087799965774678264694262129501381369130221270596458783971059246158176965823005505290056372786263364872102820435959183679978770878869858027756510494817793156834451156896142390699731415729751498607284007066584572614377904208091428829276948325840615670438320917104516040455100807771537173977792668684133788254984907773366865795690766248659597373328676446038664506304610274465139677922460877433087358175508903373584410137903738271691618583392243155143657834350306570442575442320191929340058449120896875651968106100784248149595558874461682509482858319920583009788330378664239420833616762503395644580361972702231469055666322506450667860055677766558410542354288971382657641879620348139932592802462593690490136084060426982979442679306981009571645090333728480358048663520239556036899846202013452561611244557388913693977637789900164859523297116018439942980473772311499045128478723390935305991964510662828831594548629889869508616874396692060467327911509155415906893757962389292784410656974948670355105717925478751626574177608633583557814821260833369161996827992441692104245277910830458832402303258975259534541200055516192304668229422649756070943018305414825877029683020820712635657263093580680221941200881318972648510966675326892747770693155376738914032330238064073627056617157372652397702259939088516800050809031214775669269106154077219522488077393938498755468413272472220732703400995332333285492428506548044508916361500759936680350336362108318720575257297121322506738574322939766182024323758158196147079287323755019877215778919879571170861849916673321819615008089781988003699472922847233783164773156703458616678722863908273887027592736908360438902892922785301997479212977240271087184001545717858136127714955204952894771781674226358578488441761990083047875865461106833690088314372251035110220761935753165902188208453851794460824376889183582784873025550062605215089871492855818042872933072505060139846761251251302627318181693694801091505298869163052190198561068178809496982731067731784672667324325216761035198142697034543663655755488201268755259081702045326878456613244475453506906878552087007400932301573897980914612564722241530373631040263314122549250075202239055761012795842877037409852220663228581802383757073876155323221262638519463285955716014898765978737524204150276412273106504095575995502967054582527716943506977665158282267329524536340404525208120932098741615080498770794517527860737424538567420918895808254101062368577205801317875057526154111257713646148720010385000080707354154637263317962112747601618402105167872951679018173996635211952876889036952144454777264484340787874219825954254543405768040511087525353322382314335666375457100684835349509834674007412078428545809670288889598076788523472678131259996467209493887098831297075561924200100747031292807039468222164850991636216542699264679214571837476219854511352905274755910638084776959483501580420247716809345477137742202195073941830051208559364505210953816052962627344432626958349392130200549989865010186335564820132934589853195780912653978895873590024301548247777970419213252865198514332109103626606922701253140507163062814726314034608400379150121112867720878897668726194509295890936817612198601278868717600276533304424892745638121209234783114416775576253526406874585837246152005385852266338926117946246038152511934529650550997961462117552590002098970078289429892297431564095792706077797060911687946334295946218572472808632813372488876192128260800756730678540577496892563313970952030756713633360095536967572855957566432736182940758630170325545298714061129129151892877782417732734869261781030617243384168508513165628873546163421600460659893223227021734273892474597316043753349770282662929063164951197170821342460224767413390717869569596968550248422225474877807253914786780330217817988988435645988479849929063039361883609162613297723462384300682938520180228273300425273748931303250589947905845913720319153473749064833633962414179798509646992130696619162262505860123792230500652172708131488838066385273164556202578969848651429561334992575907469503867026907422063043240369279047578410130811500260993469092859297162815863594084212791193201911416047722502869833185362001731320767906805251235541898560814130453567031650904106896690927155975341450183750814943065958459978424649652933573346263911773564016388002409089346446667329241385304661826157090294899726497538609978953354981883801064177296922200109577264589780951616084727430210728864706812767918809970535554296655214658457779412521214945455220123437007064880968394322115726920738793779582529440690254812870523459434555757900480039626122675866712240141192988717838520943466294790491658577729092940159667031392790938720669779024898634521894290835089770127057226741717950360215026043775600238773037528461736370956716114643244417437103566851186504629364816817409031563529113056148416492549143330909270128062800989294163713056173453144029755153942724695242735586322971434969506792995561683647589147183337214799581579534512822256441717721186923030909863244518451442309924442988163802254124755316868413477194749858350239605971486630014301823050306780982730646125483024666787180189271857360792727703500119344129304838211264171940219324777883894189253556520864182478798845556495627272385678452463170050653357851718062669581565794995842996221758339657785042628668414224594696768405508985662514106103823954096079211129828606851292757244254705629098989355975326869320156338561907388618537828469005927314457242043801265241201793946804852191378989132167761682488418955549324467848692925078235940492431627995702234064922091497967016443955021425649522238445555329881078112515002529390458726948798214698226381448463223132335770819714072039503381056687067423487080250889326629869977587178389184514469064938741272667365473294733156489141861718907834483444799123211447231613086845303431206165882832990402360359050965819370746606730156109069108913096298063235880868768882198975565177547452443854491689036448504158118325387347419294510039995659230022985949377287423226307754157269658060815507194673408316587085066704924667207922785535716845236508282658414265794110526526228697611719713943777766366610543010967477405200987686257847346096980451588543917657613602744796096896506707463986636588542750363885678729980837315710712219359679730867945230125139799137797571753481835396643895960515556130514157810369403258615257589228353109005818241981662027211886773429342591691184505448498608927655884943260573911668477442221322778805825788870010824016594027577505592919251832973729480765160149640889371684428561810239841418433998302398919079789969314091363494448342042823845843844829548537244632123065831715495267714623252513810038494705534515209011667368740252517237706774664640692895175314440354219477422291874823424702564035458839970664088736788068643768773700528959778166654652690826186431968134185410219319426469950874432061727376939550434945598912256959885474614769533656000432282486293838794779776308607092336172118476884426480656477324045878346441728447633048487719259571590905815770342952569733505747534810725108418852317250784607949150182909314246045785770640677126531856661781610753493689747531220079036466775647404437414413740903492508327719090797661133060591616188145941195293138135963318995573077858997151995303680918640392721437669440795513207129350125752238477715591164027103853241020611739635453799324825891992844937884511812340369594479115105569921179995718211505498908371284680135517101318565280386811852950679383292894041753821297964301085539394160877606234572517842757042824751252213895143592135574907086477185447193879654775076982803160664379006443012535673927455462687323974972721107832042567928013799095041095016910094410725915529934181864553111549521907700755633022236577923926022329519423598009818275360351677358122400059623973441017694595358890888729739903867800702076267661011856241251495987736473445446642419040940436204164146937825867081896198114891359488410270973274836039886483960581311935709646588466272236094538292124640116670449681413703044835513704660774877145779842476221390065960935105556212581281984727134783024694813839268133247736417557054738515261987662231375926175475944655620062370910233991611353266040223877879383378130992562220368961076386830502507658574172431070949593772758589261826841739456783851682348783220959409251135405986364967629256522195569791639837419448557387196364428971554122683927731404539049265751584911696708293858925600491790758593232160403391815080480896075966600554997395277572095606901288245722296823880040373659430187945264649501006439795685305707863488439295129061238384807212187081444613825921223906862478513532065237442740340636413521998704135385377622990769218032503267465481245031354856623019985280750691842392720843465563893242337568671282174551387314905858928604615448790777804755073960994856865584914125631117225846748453337635678566101261846019690339859029947585222071036580049441469096812471934127037118438895696640662399695396712326186987488115201432430934170834807709074472875879995572667649646370938935974195670573312192066011030788563294098502504203073118436868136405249020065440680433304339598485361938113494975947146446556606313432420494707375851713803642221461887928244547164445015400171637869519890544502750411518161095902423676420415086038343038724187347570921609207869684725550680330435557940493079758657467239611099020127376817210041803927228835639877644616365977271047695062860084300234369325294515727342218621748748884768482836128393060408634107722443739999571184262564569267115326922737668187319864838422847984702372461515489900488620394286783372011973849167021418422316156907027181929781595152019654706602341683811437476050992000738664124467193385658931974869408304081062229991486138814437266080635826731797398622499627883390706833390787488575623908033962925447477281789125253410456435649146865296095139937554890192593793218236864886890007914085384500285992685676873887362384498758380775314801450045200827654278604062692222572913553851200726694741101750803042876876995591340387498106472054520074931662213958937911005152099428595364575096430293830162412296988449428461020671406595408591597302609738519683870721828745467728675766471661691956166843840084944445437979499335060916108199194472487366272652554491141843631112815634654457885140283823124176479942755124270438381199728544829632092383048334806786243186058937591647075145666183662357145888575313021892419246241647182528571213877755608938392058058872493166567735050921821236583474682475744891820356433619464137183647666678052048369153585939687958119889228391172713565981344381987778593855643961105093088825311648712684069062683545051018627349383177136300966001361899617024255593806166204188252166947715370994629390137523052100120473613177614737431803790205495130807561790490417813525553435027135494705150586485055522959930789821324274556078634997897387706302209345408314160077679271526543412777879009972440883718235903692540346025086296021913830065291950607212409309656428168010855940346728072506960481627827372666195110916166131669222076882709258623406390050291000847361325062093537952119952159660302236369472238116589064769247564153575935824725454222707277112176298933015959990040055627980307041787078204811959333194443225360312128715935228511822706734232138470650957227752978691055697180762299874399254406081941710132185792426487550624246566670070791309707877221782179070199938989286796600457283339780704241507926460923623542589597370346429290034913625897269060918797311579487937583813911372990864461013150848181034755557625824537676372197365409773940793820128095962197984997107119848336358789047494467483005831401709491389680613115097306417738694145126262966983441846296861233109754969179981778164386560635963649193400490176779016934228523086027216999479650048612855658244872370573238793106813942316506347043307481275535250966719152228529766499508457570527922277838098414906411056510035718026469728745749777638566716415864279183785601462112701293548443232803184642984838713351593614364948645397253070430609696621549852192389892762105298951451048427962843464802365301774339199232725035526736022740474794911653316046731249898401055834766491078385061787375797028797916120598332044692954684954218470135500992389093656251598687619808806934002951540951791052930939043264355644938903915175329088733806847734664587276228600563659053457474672294199603789768643737378667748932536165725771139287843135660162855276082979195346744444132803631804959726929220657675187917383288219074855772425047145271679089941581662662861747985069386717914648316100962006546944267446409495852680831056896877478262005738019508290355027628319061196986904419542048549505621397472639953802336739497637018759740589046709889958717385850218133744654595042987726123430019519879213764393322705179429684380881815312189468518954029162996748768207334151651861580036153477585098543416294030901468247639391574124760078453511693747123441120927375258488852667495824173896603779160129033849571005020499345463066095495166887698937416075479835266200884172033310915498007888999165921639053653976273006798126785317434858816264444623483953336396313598652942084107764000711434154889536059633817681845434024796165090744820718619627071753678138273276299805610931322931114547919658289497012687121585159103222161743869970789787557059561035862013094120710062610332980141822549828778164812223599488448904936529708476957026444230356733469471820222964724607823283443169888694886195579532405305615251852904452510473343588083149743739068185050252552858589949076035235356040375817905168183231428460221222607767764031859180039529352916076851087659297996944421355089770673537874185878783005715671128982297688927060656026438126279315426545961536399918115640145315256481711162759482029776706197190082340676872708910053606388721421750703125615809693782668390262554613472984945091694805415663201555190309776212977422856899192070800036229934471732557982867190654627809109981915906554937854015157427618791305741562364341895636050097709994221663473171967775732560879075651465761567402192302056759746879806752826545723338309721368393310620294178080386376639360720177348971631129159293966586970509610194540234054471197676235943673813595981673129048602099782794785012628556185539779474830148120698190752127135646658210738032216789922904824305592821283988993299292154104730193784846882312788007073296009543931667242347128958806338939827925176887940987835652206217618240643078548726766157171179293701823696136540029131402230526293867728648881396433039512444442819146401692936778524966205350566746558721816699311656204745917658128386768117043989484657987054377734973581409698190806496404110082672556257197032963275588870744296806327438783270715387888104948005118260416896635265091918461578954659717183209448265732663605094502275799880536062719579196498426624500046543189262411744291851111662060170949659538862836910690841649684778270444720477495608502074785621684812129123636155780154832498046344830368126818041881588576875185614601371349195095955075684770031125035725300814628871667469964561294798576206821078450112596048214846993371946587398480483817658006639778474132137609786815111554160097896645509039255221927059192440682292922496096211976672091587705183580628690281051160078325596864529857070440127855761323755676839335001332992255026115476814565269112405740601784664241138806215215752220526869179305744282740073982507233915628728513805621505949046179795833285926811343648148628679457566671487576778282728092309486648711339180362990289834682523910221407250972897297227402435423868969457157924902831705197950075748660909691195176351135796820371917746094525888642436062736531372971014381330223569186629111460803913348920334870935131366475665756911832040766542489527817818318066836871054296956765922438135600088227096681366111080399606658444426858039552868799108035223654280568809399082157419152307552569190600898871389713723896277131447591243101014533273147544926793795596276628221611776030946666473890451742901445055652562104075963609203019068658458655502769031219958304765131350348719633710919024099193865281260909947579449805902540721178300798655439619882227219240073637831988589970937110892729574799060587642880363555634435184243878940591371512003062699448374664071150876980757185032927874208825020015096213993014467336583383099891065325698147795822940679013537140538270093219429735483250688848176233731914563917615160839799699495970338260614829643522234946289553504488806033578781685573550368891265416367641542175012627259317422948474994983334955734882589800461214810631213147234952183074920411535942899531562399901416291697356633071574453907228195753671665545120511310819078392951210751712207809204749840197367183646806329722674772581791672868676925411599391136572407521900033884869372960580083945723141523132166651605731046124795925656871785505304563428699520242489454327171015698967596470228061259906494688593048106357158248782795652005860263730955123628352260081534825792260978794053838317409703561399103640335402817508314808617730686097983172228204198090679238538323238234314115118190114290056243322223156323406662881672685614811681565191666735528107141645555688578200747028059511522521709233173668350068167429697955773591857899241150244868659214104636844357274054459947952830203074278268751886252582903627766870115005622117717204420731941066816325793861277724685675295055373966161110339298999209338209906646584458865317573510245624590480928532269447351579780508671325457056969559920178805003063386513701227464522467287130941591524442728574552324759111342083098765319188340982974715691044817270454262350081989270781585360870903069271610074981200512475648241032024577744128058539259563487960842522273044261672716500454816211952768997216589009078980491647462805640958620517255392044201822025059613557114812702699279127805272120399251680854056511219886763602371045962306580723510339496109535122165272271120868140129020064534408327861495632137188880218843814013438803140770125187999177813066914219709691470839063568630897958901370354394248488128436923897045147573573037616100248467687876608994021909710630121078305241112161694781434579930639612210704529801186842364301726236386596921309247380538465009201959357079629083415246855526667244819262123061829848225093034269865590762111618745377225020682389042411444444409980851748133737673642520232362705498319799480534049002483174833593356948303960094895591526940386697664000383663610550884756638028386774238782956805146478712163966307167618196361489079246177286866049861611687489368710729046392633442888658449875364366281620000715817695021899680446974755376572736298300560646529922751105832398034376830566616313519386885327984577712009796889553934261818791526468464435181643136940688776652349403968184023493556118366843901045128430334453289285795416435086461048984281811370824883444110541251184415101465746907708306353148382444442050489431402242854799791508287033483523231359131841784890554030836299994251785510589572030907681879985106221571072631248353230937014763182441882404293017299966900304276990815000870791264599610207273825446930027700802892320264939270847941246624308551465441961258891188067716287299236307235401059016613697959716426325281531597434149050582707334015952581164738550315352732832865466627505037855430011312584326644906309524651412997743354490685545219951912022894626902292798499547508881659525301626874235320737408881926952025210036460597951415358467654075985842142162549235815674182295859152202430362539135209698511338952640298368802210243752129397897476717256883944939839766619079235373627944169585983257120754947948930755041283149987613478057315304865150160021685136167176467259745664923048629198229712255870721304068081646925679615370158092930783152554045641605130417847989562963955300198583052235668827573455145294918618948202727977560738998834015651770497335986785224420025149768968739078428077856298929912199513884592821267634258488147027693727422735808679138042207255666478922932193547717223893089888007168651491250252922795497994515256374593299036323495288460744917255963875061262034568370087340627991151776203763737556897980072383788032389756762691544150344024840789937651052472968213205565713671090550405135957472275849660054626054310125875676066029461794013072931007992787022636160852118666600799463488367998344806547469602356405627473008863512980086374158594756430692864154157619229067579877853067030656397908874604744471719077255928760111214581240191216736104523665863382306083383615776478116988708444849120608596222891854300689417271631805731308673932209510337007901589756270160505441060954113183564962889598725790058600894055479875777820636828714375491937415205626441448693048772176247847981060289099775009652879626426983014101587467635198633267247588915128220933879072437194328937906926372167625213058350403840525832686301941446579371949673935270312369156932692099997302820198777967575588566640989939174441056433668126448099442254045976122685006862950847813948365500081034920321771801007686596521600243136112452448485462459792256105200276031624060987824977912940454145785856256238874455872091412806939574659783545191169347931614249105203616649262855693187817464960988960316223689658758366478788260396714722597207468378961974895215453301478677725401454059316323583773857436231322622880758590380895067434495912007848616734006160022425299171934306615759158700319114583229491133541702215580335420038141617575538739096406690539167873844542419349069722519113331571821679652862496364612409172768845738405900318039385885968735768104391449236097324582673042015592284459785208618640334703720712392137258816555706303569296160398162007471023867795861049646072610062001151268620461451017040021901744530467709877662759730212748098694775807814306395752437408889101961962006063027944102696104930845023467097399602980209893703648304215901863881881154393756897393056910843493890211272440984979060475399699838406055684376312016607226427681890115612311386474846278367559810774298785690001768371876818291359990374712543141575982978588188791207920316948679448335562868637671848017739051209850308625754797785910545581329768434901239493359533860689052538576610757252464896066437053065037177748973636266626757397043889443528829088309161374058837857314061957575902655071171081080174421586862691325636192344452446454501389796090262849265751918976651336537181278475720377169273589178522508212172991386659922612172359926472196567161211181295181874874996369502177420741167565686245356597375724131574973042163048144760015697520905033195581420765723790004781442170318184770492340137454431427556581931107397317925731408759545883127101536749194528997552702071912720563812968564184759032797198419093307992104280390650400764418648371760645236337284300965131604213839503921422945739105310687410584036921231678451626883209117750520141202676375966953259764415012908216226730615391030451940364253127037550080416761121305747181452036048648449892781968101790988191943030755370760611648309290576992511710169538903948130216129328995805475504107117387121059300346676774978812975565331840405467300628333517126049751350460055248526304572282062910583735419388053158473497153667962729018496702093707717924658018337319572594980323965971994751775821415839005692274077039979937901276824192031165358122998059174280054389496253483245036588803588619893794258922407998649668709753361132546168389528069523354284043274758623506058431915412059813524107746178113125303540922070826586532912795628433895675973695683974770961574619974092188245067800377163420795375898026800832964917237946205348728209340341915228512289806163929566646741553748845717247766258931833729998220258622679653486916274194404400809005223425158434312978826567332864643175593285086402558166309077780109964483435459304947796583664267575529667036694961505691300477910342222356603990564642321853538209481700681610291753511557678298935486983962032742965941571366507868982685885987651254950688941108221270742085942647130482490323285145088907425345567311138288814699640059194312413326495230521761785633047080256548619172610753985270780103578433521587492549818509079529513913160304548651795949610119407861956656692444971748923962552518305258003178790482587837932713463243306318464027752924649453175705460737943268183112874208719404364601828974775200469612216166744862033611838077871927488428422101136593320202946942654460556712915635374325767392110420231513777851099374176055774995929986053692147246889723095890493936090454291343467317365806133086529816806907939997026559275392196601786694572790083308692876877419241051946920680298720092506734305765236897607075942242143514142697246118270038324168259175752981756785083317664226290720408126260307508303552647245054802490821725970995827122620388076945896152644750520838589196276194403152322450258881009075367102740593124063060872456573784367290094849311631292069803602143913762542744096178846473765273949063048988018259234519290885608315911355890981874945986958667161314703674859526647163946205293351304299633099164779161644128499451052582118840095328109657195373870682370430542306746169561436332276181610907049223855955478770325236957344813056870125862092439058184647895606396320407987800009422488204018548853710184739343045577533299900740666804444966430015173231072619984287683321174058389608790447264283238178190903511294238344681205580432925349530507787329657760257877315145537369883956655505219669255398298734711143565797261400872089472781648609106522318423783364655335819286632272660569861721020128542057203411310335709882272119629852677396052376476082074636276805489963900870170508947805549180196484048634050917894330308458908186456849175938722023562478901937962291255452472274541215405599233734716323028164216289929924760927781413388930263931642649033349642918419158797840650679257092556420702809925649830473292292143819499023325157920785553899299981623160282246540463202123799178595003556861965779056677780583606535869710627325882742089776325205888430398756256959202608208242006193575855266289117351813703733502073243157763272428713200751530215110476898197737730827324491346662510493688121957881823898528771367475257254491722865558760890491183515698063269859815304552222858740357966865722296152972186849081524061801836001996288232788051060291686723472105905246530923724685492869492218818326995645745383280116298169990084061606031825942434618568677414957194055652063508807028481705332328602701846659201876810731457619517541268795602613225313100911730806998174470546174488810839310221820955485449972422302163400749932165819754530998416633419766584740617395727022181196836780456782177880649587036234710549722283525768599702366546455021953709016465342405979479244912687466108537760044279730802248556237966144741229315155048211542375979749965724931481918828396842782952858351240435264037603465743833833703398552269503632098358617489486709957948719024033589920541686451039343290809325379246530823160261305387411390429099893996847582913970912115853631487104330040494373651049077285533567697095997065902525507657750855343569642907512285689383580694917270422241095733309123470792674711177900973534716526841025870828674787961950213367660511918424876533214984845219158628032698413288854950151723138971478254559331876706281985257004663057825020155963654065382668066649786484546585146965104487262463055471846817296004520894920165138274985266028284262993090320581146210350920835265604623733359024663437978469256762593425471744742991359952235514534492787463690896644232147404529572812784851793730425371859522427476103377823105356063845114486184537243599720771401484618156972412825275785739323122593781614588961357374747984104459741197471654834174809358522865179923977381115290540576809958363926304279418176669531536048437565762659062803067101656045809753992719183203044468977463979355257717236212628647286771724209798984505333853263455145766465568881695466390155200708374280953543148468799157127074483965648694895422811029192656093986550360728407102296995170542563827969526229062018138097804257256266752192451691016462057088943009315608868573089291907696753010750981549671798490095977317591135065587129506393861849152347018442989502471557754724896817879868949896722737034491779540103259286616990552981179544283464133754017870039885395058682602079926297800916250410008605206727144619741615276172543258824023190667155589813643631100220475226881134887752387752190344955289515303619415818410159080932167756235383326962695243353569618246362331632249589808413924036164143970845442485429734182615846594053941498754841499666039854748468621373845129919220778927385422619197541225699432595579122290926977169159967638384703673763149520398404070923976904574405978056978808117240158182675854808613028494120189911298254166014508623719155153346002175900065737337675637078641055424591035436067209051748843136809560165396718087093061418156329327329287354598824876680639562232794771572494441087261388115945198247844895765352775603409873625114211799228103808832201696371710202404374169389899104588755339182903702236293244446443304824543512740035701456176392864174496437256243813621755403943631253389937241678190925640663329289860981084411244268021810460618779760736542097981646817900616246291784884295414935919637339751587645080727683843138624967076213639753382603372744027091438269952186688885173071813853025481477573656837531908693024846710684737441694743070700760912224533947749415778379213030768537462136919234761020869218742231644157465843718373175762685970280691494126460948409455174495397704802654169954871499949109013129710758763949385846315636175049758552796310929727051104714880293607071504941497695995660232345518274187239103912595241907874731781362831340047501663286584880178104569252083412071806179691330348397425414529828803603573495973761304799711394138178601280830522870941942233663049123640810505077261592439694054418188351315713591885560996057990815398807612982535350391349278855456087896336564107637280230917082844524873313425744600584507987696275262663357172939528598309387798350482981861911453553864283704489949015167957479616572700587376053384901214615230745782754247302531254903072625084506323060824405431088115702162936135109170695648019546544860414118473561040853392532171083667823799691522156108644259883096299420823290066439851787854323199701663488335827449102654673940400537793521674221082632643714429092479425831180070058030557686080355587246559183716001773631569740997263280053270337068210935780379509427161648941034748355781217685870080516153255228327336856862794742195544616665384902579024110749971156559219043419903818763556977893945628869527826248793939293990985537452571170612285406791009894055835493660981847238109013711794494389017936549282459665982435934637588041015548008366916071039488215410263362174716888738623354193397744629317976509981210673333617473723084535561128416721095816917728382137483957106292372510256524725068570355136371406511918559676592030772589722815916842174121327145382979831021524886127363775042386847618110454178954051313113720479841546368544528242672234417771759114595766162788419796438090190061306871951889381536078862513847153609079598850826630342696412060659411168779954383224415280048450133880424032267967107666679715958565901059192018894241034389768670259951023480741396937915597718155260445501558105122731434277795994124303509093502677307249696175403762991074393213768359042446508397759876253553025002550232042519213534954178606004950843372415753175153380058331389696795183525675969604587440208292135785333211074983260487920229668583134712500028677519356658851330800581861666515121098038808217610938949540283823926423189772250547374240313213621887068111622230555166334823621947756039214901841167202870219277898572613867561663398427054544602880289554262822982964479918058086472963769117490854811716628565304339628281182446711284073471469466149202104660501644324192245272786974595084466360649345211606219674454626318921573159429363211405676934690645694901105149612888151524861047503830478020146782938832834572540199612043957010654086059351187706209363703652996653683313419062306617402006279455331233017825134721639855319363246991874413884119830662231270828302414512331503757356024301778769459129221557675035127922942648939861631891535274073404741804356300643186797822577509257402377163941045645933230225397439411931157833571560248832542384713807756904026990136393235289405999917436808461789423961828447594152194701769618678109211661802840534588502513682163649245657923781828129998749800684812692567958763523240962168005267826073134032270207803595834930668141377548623893612024128054136441335427820146628091980886429291855987370565541484676856688913090617989019917575770447434605984369186400709037443690618625711440710958207786123048496445420836754150360457752772934478546462436135454591587598999452909781383272213120871092219489325183021297897615503938961568587024249860471589987198458238533665653512418596398490831346560663998652305768475536563965687081307612409208645754388429648808834260082378107281025365740865713780154918684794827704845867469858155319171089468789309589458488433434927978732037168437034849603079434642222410419829445457836547027816890312587756747191039883034224919844730162162810809288944857317240703772338353410727472602241357411308853666825519106532791550677461303942851524785320182936810577826960095357384868900261716379247034144976699927627882683616768979194504252312622924899776299972278085220879982837744919751663740878193799144679120940794955984156832353201838771144177440128593054709856734878781380384107473317529804568055521524752060703511498251504622566510868001479492979152041694235286568654462874127109107302034052352620304533113332877557957886661198684436679767932276404373534990247610090968796557756576771472207025358165838798765516529162117509790965404730606777946574020167301097718477968668324539396198500117527884961008861083964449551184762646063212640579358359245504415868455031124323146966932846523556258484860614142218551730947553935063629701650645811522029984810119027200711188474176215613864206896297063687454159356270776475011080345196041179330935104687321990204117926644628204628933906785789860090187694661066422707339033613331034619895612226387409001129541901163470439183167623645115763254854604570318668353442348741049631376348617454180957538799526972031067279776948010924243657268129946215051319695094276842009707070662286724038560170448062382810017982944229266968958167778009853919670209454312290399614250719839858383700817342727911963835636734777365535402741994310819826820649047433283412709641964960964709413109160294106517584883810358428820225866121102435958247764456168685790315568750314824959969366360625608221612861107511011455934039269248838164408714980063122482587543290826078366321532112502151884467791939507266150315632376332482551874679760113236994460127811454838070666020657178601475122981191795757087082766206736558587327477674064466305069760049867450292860061991199466582423090371944622873190714188773469808559965561408754477315926746015032295986062346375446961151068939856805476180195402557800990246672877224878334352803643460024605005158884253770967944751815190455109929744963292991739418949021278820374968337434801435906871731540769665309235825876918300296191320290260110043395972051164731417239858734600018009149571606538879311282413850175823615845313647430995581907051496839976011599529905722012483027200287948970348161938742516971690871620087954909050243410102671345276828942394608457377443686174695971188242522710359471395517135841477837354881564413286361422545821600222648195957946692881924873609433272156690380496268755633329886358325230967498480883248285542915025510419063918369848041314381940529536823311009602762417946536345599891839150400019190149255871420041408860594994761007425253373557299788746421297310823901911383370528627501044662682293883021226586319082030899872830085934270601009584685724954940625995900489680080859472691568109623279245715419991363905568357463007025382989563560211554615600436548398526400820889795220855416269278203595912714914315024773212310343917997500634406670812368681170412064794038801394688653669315014401884613724611584781716252051643114039275829762862939363878307779996564607942966070905735736365898777328709516320032985138401673614696867670872761155802835041830447210704534944962409915830335540562431516433773831652592288660309711332106641513693488107921194682953804199514338760502813170927434027299349921351977838893084391837822172121676359393041400849356279181829441278108706281208329170981227115086336686721971847528253332684361400084193126837494361723440118663956262478345628664702320066125211816939555700034177110283689305588884405037097732411127914640702489568813782501099520193101845952476949985400913110719368911360261541521560796533408220835999773040595188922352360185758134081150221154730466770886615897563730252710603099740951375241561925258099436808067882749563021416830565900730261457113678052165370531617977799403326943022039007014602744553716092868364452904484526870849774711599432772038681700962328477990673725743556458374520575214914111384000261468535261931894373785967333324565369599202376304484733918656604411017996891023763823434289258562231568386157038622026364678193687778755726056287259326217348682859803386816245831342363873292534331879719016749053211861292700327241312573762140591157128037043050760989194496067621326605911301090010922446489132395795746018096141551042863040167773112632643721075234829456760254023899265310194976551637627337713974319985446244388884312734170198119499510821047126288934808171656115846274920903427277268339542396395779878390702468910094876109520609191076092125971377543316739444667748623958011900052742876364571725255891284848388348694347441820251452397676618991407245556927811141643560836012552464139386690238425362070503059451794233720930147706137096914043382118563920821828634473896193090353663852420693474764347797432715875394107422992428080911818087541173402617624825799764610248160486741156411046401142742534814877903226913465058148738231606723929744261718830472980161880945383214929636891258865702097997990492906222980472388464109925983318759836945656704486737507149342274210868849776449338025513930978657670468613484762808822001057429871628059940480704139390764626350992511686586652622779154648252720854604079961426082847467506310638422010024677381100142408647411819332774078856274569897497493626505114650854505767872120719413267991060997765455044946544163374841332102764512538237276267966023071534607947885602829564127274872277603121755851358227134752362725566979942127651520697108601357615855835824515054896304680679417324193032219531938900420303675442844629386554162748998861321841236854262229848725964359710047756442696738044419927681721930294815201196992237140161134328161702673755151757949855452713508610018916773647291372832091787521541057059071483516576825787644715794880602903217700208195862228763313987092782786705488258600778042063132827380903113936751428266749517116620901370151412623150279912599896737943030011918201415273495777218156486772135723891555649081101475596363405317118063598763170518693458072396268252781575406165588399747932041993408570397953147484892585008357992554609081853400987970423094040040298563040062828895851614897942917631604306654980321758136793561812034194154845378525579419351298026800533815552525504407497227229201764157079508652709068587479714904255255419196138680826043890592583303632465077265906451196493958160728768806894486261356282234426610014020976276724236764623961314924441539192957738833016010191786649808523588381522625476201878719591972596527484414990299227345069394585295651104162711641874908110905512096839214456723261076108196974846735653501481592987043007741770634722361170719644645719351724718125089692667122080555918678912678032975056576314795048410573005014272753187486097817621338228725604250721855943699803658833257141360808597295405738710396990162783413232506110455816218955834423381246731850895328396790063108341111665712258522845848793994294204878863155238924962472690493175868073350832946780203179116815528165135540877313366567072786470979683605667895818368441002510047146279301986439234473658777935855795324688135285134569659783413557965554798512012212998253063911470539430094917297747287410594117597275337521506077557503133986709746262619840832181412930202038410249456894875468665232049425395604437220718120852268931130100886723745098620056280759868148246114868967010057039860204682022706700456326874695653745567547711532548110723308651469306641753329425963008565770849966053885428655967865884212457380068882110224006003680536848453058966380335927076727668249662890526864508589298283113067088947451345613332053272112151903660587901136776937949337595296113577790106889312831479638137407698358707779409856206039069958972967793927147818538507550951461617681596236687932673431808612324761337317181114640686154344926471924318081277521949512301705408214099370522934985548550442453004699108193396969911250346488351677460709512905287703401966786556098338418879927558427543670728304085204852886282847202898316737640924772236424565187510284046360956265199223438078632797025928631474030523196682692505413197728763779391148318556990845650237455290846548919245416801475308515926657095809167555639222317966974086111910735276497861171762995561195259960364965722731078572296433406356076315760947539189133845438108446160382802995297678004976523568341738467664620589745182358496293455156634065379564164790529575752660336615057324123768120155094162937026438258747751740050639167142133128678983215584693340267486103243581444637419821775096454610013094586315550739769742312833385976046007600370785779373900342026633942730030137030022564877491770347857175212964847639890675389465814109123969857846323706289709904741879549857909466490503651070086070024325651761555602624003508896671363011089157666390378898519087058413216568507856647994784697627488861208111783694672693077630481811661540822880918888713716673689994856489974415278600594015640041906505710729156173985061977477451932171163033814711289035402552510469162378181434307675093819733497119127336259654513397066527879098483811796055952302052195736996647587811631380489518710218842226582232582204310378523809807945683086196797898508048642143298557113538837688411767946927610485655917238729695774025187626904340105918681040829459763306544024380449055501581262743747228789414903205153675421321169265927122772897521588171891384516673861530828832235585002159196107513579777070589459957964991500286031046083346606416026849018891511216893205144959717070129518791556057972250407276834408788835289491228286723651712304593586814520104359101954668236370805703166704179641790986908889126061840797927096658662576056124562850867175018008135980130434927179297127181804247947529863594155097061126327053109793639736999568605506635220160714539892934299441006852952760358621855512248191917420611100613862240818965023556309576456701195926818531860900178319869094725661427825279093367297464656007260398551116686170127048238716281259262839707001368352068834907287894972014995322834933200126475878805047822585660123699209016786526473041405462569801928887832048882795502585664542847264179209004484827933650401961735689258777854531719924332062441536233111609606539762350911793824885234244090353863068037135219358706362793457180856730161708962609787031381494507851611666483085915150805885025360769456603876632094610614651818137114399925761730527994844082760354629221955521200982689118431819883792755141041273804985739787650256315584030046251416574489109640853042725264371176310839078083764264020795258317533287309683478848415881224287035478255218983459342604802772891627585962215530969210101523572405914231439398574351715985361577739837067470779833499303509817637507535052925500144729567566520251386070781684033077601756490046768254548722796999371032309106361398878521851218034288189088180227665753576536275073656247332882382653773203809539871566655774874963297646929170153925524958730271814270805860692626943493470024869442077033847766747415437045442890140024262668831708155523565743684364969593165498188909399028852891018673597955534096051394734021104774932715034586702923071286091121744591427389907565492114491096005996373867711397254936555785334760450606854482440962391858678131335812641779588256393907437742323788534912018087312040073845106445108516692988967871488722883898109785358108828112887943311943933390517590841124793421176483449708558659180775127345076315340123361128353776639631970140428500947088975041356700125324709322899563156123692552488465661328002281064134483912571183612682314399123542530123164070825666936331615043694310891437178465895956885565551243631986640905358623853832327733487956447562624219753022788759693952216670883841188709525297486004856135704049933660914555260819516224795684252104477323284220492263038644014514166179486601637305079921583357704557612050639681465426596290270407370731390507441937238772721528156360102922554161246956508763790484747422855144375514517075716780104168118844831161135737492109061794161053255550003245797883293723714924669167721398797238504762249359521281838496128184118276048285125725794031840178102459431301989778211948500115465850587844351546300051895557244590789739511153233779608352079720941084362639343911482335675939989658876814529661796645135557858848229600930634494621946185261071536415460388105160447730470224107054833933016908906005493585639202578527451240413056203511801569980099579016011278096274945913204774231359590321341606377263339776288048744322775072890665471011450702845981038562781838674737357225820934298848847005249370290142347298930787770719908989798646768191241384042938879028241534917675992354090990977400024663352011992151711702036279806919710170206139123029757292543046651580631839814112045813223743394974670277029431942099831610196544365986082855244547386812320563276853836340168373917235457011743484123228922497199651552833403812782448897501168649958280386310308868305881644241277105294447915655665302454474716020959762260362499487340282962493847783516167778668316028875456724181813726702844059526861422874219020875375921019786751301858749466658110379898405014425187974732252565961977566522656601525508891743739036254165436572935500975180616748403226842450831745881887112329937641219461932493528430870013248065048426038455754022994090807954067364795412462752019829027097054473228246845363506729105776045167557567717733131377269782807142183192644005350628141369853320200941410338516287088481918048343743092842446850328322836675853833117127616575890279722641806467414052565348576252562866140965308898774298938527782136650653271584749458532184278309160249647941818407949760533234092956794691368555475131977045368710220018912242733746860379988243968470457865795875544816514432972122733575775770926617227986382592672071562932866820870418278333110055859881504905284985593412132795801331468094970758777267853923319994987110820657547778052792406623037157189761417733230988041277284921988879841180937092854264915309468397212243816619993239642730777110545696681660824853778739737085393677774929209523907658514875218867101566958179203121969430671898752515486201563018994991472305208092004288537572744718940479552716014879657610845345549073796387068374813880202171474164517997883117735920719593855571204904878910894895773442105375995916118918936857236627840685304243184127762198043245336767596978775801603633039371574736633719870070928436802152119371692158441303201957823776466351995547392252613836996962160706071369890264461957937833233785321415410993698201682807706557489841354915414647018760635552456549605548017952493348854585883824097815662113654320699523323771123211431201546768479606325612095964388831729469183054299585383430511212149124544518023510651548102103854802276992659116782820009315209005558830208488946000611704616914161630821576535304280694470497114480355484614730755869809402827882169574513994094813503124427862496127294552579284784664489483355754295561735817800211944593931877038584432083702186457549851458725757205707735719608468883242328196442109765960349575820312861973593647721475971866011867002220752442754273414637132172329786934841841544247447007694596494625543993595357992953340031538737506667766713499169954029172052256617681203360992914218354131821441332623060834912168359818711507515344612830215836278877611997650233075044874888524335609342903893248636931645407695223539197000117379352843964822233185327725351082455872260124481282874471441733567969124478245631829168688725628760853914770629417367583050426112837499508369015391167019304635286950862194792338574582366681751399782861683639093053738298456780589691534915128423543424245138311130521121636100715089141349977011030055975650869734696149513650809992249914090868840349315170120905645290248182704134578861848373384351902838938272605973735629256944093709723585002619239441905750725004875205364873320876130684927852980375464293202127968297973363426677265908567456894886020630709362819196365370709791643412174771697240117221952315295022671845563141794996050216187335959972287619170522669762143792254024882406186312242583782493837667276800869382003754261026869010165990896033723977726259525846705893279785606255718405327888801799461290957101386221203778139408007530849392525881304442204958860103871466605332462045716025501395147233659542410448686630947497248872875199147426797904977108063833374162609581909776410726536509509117858598022881131661810452224966961295192928611306782220415902155562309236888746926545575291223597938248896863321436611857819637348721291521042368219363008986401344657280375436463686754200329833508054066117782718765731108019203667427586825210161779487582142878168375708906876859057531760745415703363497480548799889775284076803437202768149961935513307317480458513323169586672817993938969243511113124579513797891658697124656287965992328362537547024191625817376073834758917109204652839381531730464899525808757656253726090351678120136874680486938314262081849107015657903293475257062693939936441256068353455879172334585044089203630425452532518444176237012053018643894084433844968898987310639242675061975937466285388159861857014679476373511578687223730705719554263886024308851971518898467457961176746044365200435456504583715955940764653739983684048820283913958000381450913352045120093043505027129157063709630631819479246024722495082609836723451581338833358232642868425435579359358584139730877130447427622503713584418865318095131763787769671666511953092447908198907044798431892640185230155425729020948154459009088101309186573483155488929743031676266021274370299062946197624005180764883969509157982608537970630098135058347729318137585902789967444815947925383985853885202237744366321579595660495414556664608209327030779820136594752566516758670274506986230112307698821447242816770347100221075179265717892931914436223688310423094609606800961078644436375226261634459136959990673825174468110669748580257496010905065593318439519455224524726677063154548412106276087783830672362173666309004298202167191945765685650785511731433021383730285773332271191148922871309623562279663315809243960488839865464842692018547571442486708080765345894360676788696393663945783607565616536487583191553657583781298676132647868478396044881472320240101356019887031871431575137852865659701267565030606903506575397360941546767598565083915883302235748307532868345723863581396645760739745795440782137472315498326127191803808523957760860676416091261213432861937683670869175722760045439222433452288963741367366672602016333687134862342773646565195698068640421705109179037188424856753070709157551667425576201719340255659793017474784873728366259492565467048501517891533913334368472570265505879479490344105380071181743899441097151069930904162922996225140109148446197488775528119721036947912173730611450503148498648394676275581916466473409247228881205556656223534929543592349016500599282124705940041866945219945708755021185191624468359465184530847630193951845816715711348541018023027866749723588939296389487554426904384264205574733789668488653435904707473391333287902784286534496238427820211071112958030708121448251911999795323120435874328957045218730373051738445438995042728537857028843744891445222886405381864786521470186166455656026274671867284307738269801546505665789181755945970434728295331593163217737846613409890173959662612984752144129950320500062511352042717932395356227108328362905145792735282793332105319031406279408195376486777573649034790041443458656089697674740776099260540229176688999727582934335088221626685053545410984272458335635121021839858318304161174188750267704259104373535792238400394635725088947294769505068951604380463647450805676586834363584256001498987615561321122537629769410790253089442941851279482456716891633640496764114361045891138914664982883492062358678543538028861957060230202347480268270939761282245012770661822163748838915432096977233240814505544549746168354931408563868067637426406634637284413226067322758689378423546039364895834791447986808438292011643268225583461249685678987372022675765657350182808522290937486986322287248121151933977189989343805167080025159105715819271320824300519330500397710142581252910001314860591737276120673273938695694831095204385319131254233237709533018908208271876471043564358756680711893668510444716060643447823666270195372761760217615429362895304455065626364583700713569702502002100589845892407363143756675110265032098195723560142328533348473876300617066993374918813668157543107804249221569721395919636739349260276451045712579418440636579979484968865891531386944093703012717476851421869407551333302895103481570220564222488426274136796890914279288655991979849608814095149801987376049263289010194424697435222049106963079325598479749377214996477037152693731797553648315853761303599111061825847383933177665793505920244414864043712880220266816521778043698489193046329259500615173032725741324074432558931342321275546815285639939196070803335630188258282435977741843126522777124794269088949107438270030889333586040666631443560871244646540773972152447326544400761078153956762403382873861807669654583726923435230787449202886230354044647954706342297668818643886760347212168482974319370144278227429132491733053546216367641004880273974191870767683998189223365382294119335677497007557295015908501505500901761978398358090870209382802327935608934206887524373301179085882313936159343608204126601256653987430495267930338702546686164356412067198870027378830801918643980376843423194406788296030418185178920080757764857481185493071059962674112755552447428700799605380861243079193032889017796377562531493192528674292466528059945790747597448662902208658827032715633112946392151934254379530491449113737975079010759559832539125027356239117351453960464404341604323771429049880595761467487173395453087128566909701517306148346264025114842216450558769181604377895822643072861275296522137228427912560770314497995980185552625677307481654532640527223760897036114564663493045732395352386606725286470079103824438715099136605094717183018379439623838841163219340638857330229927223717843037094963597120563296692189693028976430709477596314999944159186385863927699819905944911886012346677214047199959728806939176897216357582804066860026444554345050910640016593393538682321711225798371232277312798312255899212012318415847286208517033550401673156944108491238716303786761463130014688755529498784815783244765048232815521029168532009989647240340496000711751696016914699793632503312501205533462743214671600295244605920794382741887840232243436492825860411458432470819368530035830629059089810680654511919930749006259745182849816461013616348179874614218312471426524636223701526921221752553557308163569827123019976800288401675238713710766637744791952848217203729069982541204619190150871080651988497065750037424003492714983882332328067202609610565564476921793015986421286121884267909191870791901927424897491817542909090008413899653095660523416501125706918382747416407009567670949238175976084780353638235185768682865212994616995774493175437011973415320191942174174583591043504232766527882851800375672585171287074637656390311771084398986621635912202433314783252036521329338420441594935357209109268562431005321696127179975778537071216153619694319433596641857602123085605921341007702482701357617436877219778884233022887419789484892366296035333121304320680899202173360038642485677189617500748665659638142426356091960621802064638546334926140640102918104081505415022668571845673246163360088828347847768600310010247936345258971993213683220069570633417822931962495433320366562254986726454032820496388700827644457463622462774229212417044274936419129574052878294546756094429063312899494083466612440271191178458299482739502923869661488343122837053972089631197335029632807640042531329623486951966056702957644341850251949925772288204389048980339377969438264148640679075843422855325223841629477896793373742786246248316263093422674891433992152170925890725943165392330675631255073001880159816024969117543373509373688051437300359602462672237595313538724975213445703760257328578321281472721797056623872883508745610375525604112714545203276264234574498610643091975212970195885069638536978219748101452111950845592416424943173363331104085388373873329564686197349955704332293758925299775733280528003764241321323148145115779611473029604709558036048758207075456627868961857895342122371080327394385809213897225451206670916123203481103232636695713760021196768232542811293118092392007078038648756818949229213976772131660804523571911066010646822559397510182651146547704219571583569817360691665248663036542595929232213533513999273767282852954266503819909160986451546326330973106343396609121848014679666027356766134193385099279271564515501279056438924225079264223833835627600778219576515689901562603095627709324868154784353127391550462962022078136416561605909463152995394346774838005046795948436589738984957792996524576617478263932357645414477539069389214284446487752121246315584167501310140045051408702146339230179268305542250972778485636590388940978531111628516045960186952176598361848272912112693574981838537468934830180357275503208020515016079776511683109201569112105840974235173152704750380040632153665130971554674146706236289019436465741453966194680463389876832021471143301090854510774395553463861835963414777711102272099367172580402714234450556094122025205399150507063336420732980891701111406910484866224015537664442102707287966972335476000808985279601671686059002371304175429602426391857275232673722616198936256550215529327043154550910414505094321842714147619798660908205980238097550840559289072782223244730412488595257994954008596420921176335516589843281627013892040131718404027445958052089652217850146060700145146509930168665644863436853893412081098722497811273300848900569885562179907159201989254215412170865077520114755403587974878462695310355221849643302049293683732557401726760099186947435663198217120726971839125502060808909742720676796018276979925900072572446212834451507123086440176415346976763098168666096797271509921599985743491241250181264034926938448791176149920288289094327112436504148978641857937740855709274590684210707996055789367759143774742876822976697306428110937529040980254385809557847273436296430691977968565597270245137274541926493593842149423815452318589065749468367863757808153731909040069716728606028914033985955094471033308695506644642771092796735945008625344528669153348560004123920786042318429260391225224381819687553465051138561541355799327948353984418022610574879240922460023811002808537573141838750074469941251525556430796067316588178702119600320365277957514999198715933415857498446413170047192524696671041151483503900192468001957432422138991790885821092796841332676629478881925088957057193824688005906495780628453378058239509945472284489846932024949894087269374645775805742436410775621016795721577841975378879800735110588161772559974894746777584224094404947778439400207185417799904211723117699211466720456700486961282915800041121810516390414432878251126998148841679709508985953304974308948580283513344206749364963548975920584113383885105003318387224292558931035588936351605374870578783176724851593026228205347871790119310546778187937651980727870963671360783098169275039844465461366550348968687980854692890398573215998436949390664331324368267343414086959545395005549766492725678310327598353365969019925016585212743539231611598888691468213620384510957699738093655220959234665066567792632594428459739889917819007927000324144826888202667942111345774740760115323406956889280543891770303883590080771647239941656412795086838894185089887658236160873248228267945150992645607494097638103661997879783154094715346387102107681824443137241349153058421642389517053211676502437776788117425078405234503508000729363739812149825895286234572473294100439482545849811733682330571900868996489039765960320983117913954033903225816981708507513820339552587782440619206333103004625951701349494999706368504024357715578615465980819801926356302470340964610609616250010755124945506829781132321623998873592795850949224479389361163999591724920121367767873968689112752133854574421757411120275281730039036644569070420889137395478952887128146694340325311637014812512189007492277274879688154639431588360262808222309584610267679793608138926416920315221060765857960646649513290178030797344098770344758287423210065591617211705704181526739389297111669909809559725986946582867462700977516643388768202820582077157692332018533398254280056905928031400562110417631890843044120320822537103311848360749975214500039595115333744251162257232333571641115514748524081474906485329191747072214841939928644153920103328481070793305356117422130602063316836860232559023142682592949288347335686463832851159467700593961975818916193535439534535789629345593362024328326960962500031176143323913440585560348728393561150536899122052169922524519870116963218950996964790638927572167086962387016772374039326901546164409673363144603163520705042369392660862438273348040966525781685945922507289294048167244385370563448686509179577917407816897366046722525149937974099911803016923474637544425344543839731501340122319548686072105741484453802714114368719035468714490125357330703896778765165035952750895479209168163247096593488815143117374089258730942698519322364666971825713965823037107562277687624322369522222043546062116943286629069304838521058352277163065504966279619514871460559174388511041718514619753728976107583368974679240241386122526310513199123189686878730906568152775599226623501080376835023688173538365151055085150029020584433801658529295047281727111833686752224755789776638338730194766933360071338415039224973516258740447692506139935921041232097235311286767416416545891013784660755416739651786731537574718141992786419031278731330668654874958594413532512020573644090289913976720890799769860601475236853386556253476834306020742340573381679897481737249723844848055158278272517411273517141068873812042195312658506077413059994050965864020401039198937902462132048862736074848155099642277840317307916193522919812801556001117715795508736753539830260187251867516895418816688710487471954700519843931248937991480613420177605344512902543171032189986088553812945898495451195185735024010490783758108778221649068263116051625367534317986143362847315313429801884971802317132770832574395761930078400643307575311701754037666702901972913734159409902907782864084373327473385899631103649625507304397893820077775504458308080359444492768352766171486415259628595718954343068123028945322382616264169529829168249533026408091955817711484984647812044460341151149851186524952579296949807430421349395614668729066374191098518537083996161886117771372231859632173736031089458819984835731840366277606625756645542991370129446680460328427505620561818318904487859907524062646757316494794900595863522582121582418414981848756137622773678382292115996929122370366147644246574393470171651664218401158424560972749179689364840617240711016723126504918996109731084649325348557079215236450034294640232177445591135878379875285021010525957444230510976499849986936392983978554115317151004079912725247513581625215244021131098052194923509198571386529984171637918759877195257699550943171235836090902362518708173919075284527045565042675954886258888124839330993803490084835349791252175620979018291365139454858256157212239038746422349260071448551333235047938737865042961256395624415302731173348014390137796312737850479228814232317032860548041675081968044291978575186960608581989590282544444750019818408847416905595132046685740173986713514060063620298465877762791070938518865910797789517177093051057771679680642142058925843492151684377067243347928670741718330423082188822820132393965538487752537354674773542931478082669743607324560664481424637888484850160118476740248712984158806867713057918516949791618597227915995856063685965323216579747536460580655273194778853054282212730668965007643163857288944496322992523800050186018611516750652256815145475322787288339377320589509534790959483027869001951317157761393832071986663640739340908852516510889898668092124487344058334367318740738892631282487373918975378765937006960000156365971925449274795640591463087625580229861712709750099715211700261955432027707175039041342900469512383393460196902883484267667791814174445163397864873456847636240333063223632571212995655323674233808031325241389027445586894059320565976608443946366597381742120533843497609316250035664097449242893669702151245477510367871613282334954413292980826978521583581260417871033628610950734806243174373644676267575640680356490135010952556277039127576680328814872500211346473818308168305044214991991489345478156157609437633410867354143959530492177552654169711137205439268066122183516583514144161451556748498522194700260051376684014297986298902383860590421491004202568869243038593747599298435467732080499330749071425519323649153580295828062423487668600766393818738120961979933930063091962092823283438626901335654451276929858256521062045840069444724781117358232068325101477892610697752346820530896938267852417534943167570600897431640219389727835760832341511278804137468577107073963261626265366598100573198572863083671413360554084926771061227689159120192508084895083891141985260834567840841011186570048082728568369052345675076297218211534317458462985928113603752711543019711601490748932338831564992341994795756022765492688997172488209525535878248790504732502038456587022695277947959319107307888615872646753157847773741376537953407434541584814918978603861446330274582605539544655953236022233799534347221171199186763758990495625908042556889600547375492721311278184017037018009255669624551448343956965650869590354373883765663551106371062458538668431246737616513916631991017756764488005545161218947954790648886631601423002955048560957963561370778539740201336388743794750766990745535673634965460481241571094441892528193043403738556968571754350724830111057177133685190090171147231785802628448245451185966110390964701128839392459868904142297440190083089291627670689556632199676978254411169140702252277223623627011182013414031396652564194312796303367949084754819034756731247167391318210114855213700032202361768229715806825912302303184132172367335406189209832308581853338981925220591739007231259772554627328814581957912171018146070353753783529913110720742546034355441563854479852695567639273213797196301410039944524452535320459966648365519968270212034941287956704101158357719406386902075412027423810861281931066083112412492681349346583203648696744420253675887355707763981429510533901282307689790465042023872484496398923207691391094518230415070960177695361362188722234720325250696852601578025619504096602499696808290403569554260801190966759473132716571520641858722472480741455341575950762829217291935269405454681319608410682385013150904026294375286033598909616263886578291872652550411204301362351201399228250024928179283437298595068453750977172970659535647614430609601603540718612723539088605939578680835812374302932196186767319838736366448768940000416653210027234166330003779503890945663765304356068927114551907283587451920971055250842647463196344518007183465907521133532335682621445378104997392280617434002073997377527051528353632273627829577574499855756561041750617072801257709011255648342224001444524235696174632045481150092858391972371149627279338325631436615467380001087696793527552781279294838642499821067874676552049621453894031010868713814423214013004065222344846587891507575308206391483644900899383404353362346875965253933561916608494336130917334421464826537136398128583792972343402341882220686759180443755810509987649156952137004184110489313356465343084378187552644257212397231999353401445051665374508951284852746160787060482274777590784418385600381431435291686057128990953084024203083419376195084136686903245419344916477010026263386009498629636945342871030955855713563799135206978260987088670164974812620040980138308725793316396834217798258518988364529739897350579026186447492441532474339820404906443132982764135907063862569859578256342666228095847505425287798871461411498115346354161436403560144395253476168796578780070303882072801935186214797551404579247708479609872367659122792477704116456053521871304958781312195124097893517930243401162357165413147596759398535611394176237926543947117482043595177440772730072376266616753699528827641172071286512426666781466520044443149305402857726925907330296162530562110818360024384316760057161403894420589668489490866242498987316679174303755780760579320259138960585062022361249627461601555037685505724045083853614767155445549934958165320506720243449295723132060145051052592881811209118920203943276150500284089075137749638506394297311719389694279540896820080665258335269464534765147314782979156374202858500829655527855752754287574297099554785077428143240639768768273781945565933850913808820028034620759964018986221844108884998338015577557322512447790755216423272121583389119479343986864473987445541545016599843961569497665463925251166922230173544519127549242414219850463389409148288357778407126227359800419928382074597269490990301399609494313769869278200592022731213695584412651878325451846659346642726730112001521957873509733512276966365961267612563820525397302907376001211336409483618390905010657639397730904037947927645250547095177453191441923441865981281023499418515870464478260948015344241867854549945105684858838913516214901861027651500531161511098187467046840035269422740685908390717136374712491757261783505013677224382015024930684164402883664621541539590921982393094084851901465767638536154317311708080102858107299394686804735191701060322058098400382279146522059334480404582889732776608408434702639051323266500189999574589401171007182210297658109043255713564194632141968097059676296742078925827580250040543074693526542403676725233488561159084809034949834018142396906545159477615057147134745240043627315639922423761875383437304701366074962234781590298034271922795819016082455528877045534926047940107252106987698578996674334773086956692072268364084275323383115378924275428820545595125933424093682293283052114636654391856035873630256128879615172158927429534249312771091569425208341741160442209199186966860510974316363333054561820695768075771922959171571128156026785189944018645221852567960223021091803593140999675832792735390314690837622658916378224725616583386088905933954536479209913182010959439953276474207752383483965457170396310871923203336967384981883378128300061567283699285981006897005969296017221405223957771632636351265869802988971477468396171648705287890628561509945808747452877045563758377407692448077107675964361569713620637320103038203772157895289290337660236138216017688132304845974817101526939384242436313270684392828748739889132353594137274559859934583764753786615097221776969400501378469365611250922442497590804295944341754505188663769216797216550115882847332764950707818337313013725739895216044854439585488367758339896827877109174343872227193467786098667122345696624325120012887674592915635944136011110094183414561934975936198254707874581660164892316472951106211782133318674771596189094719209859721081633779262639485376477378636158093481399793588537011313008715244440552146726420828807369893040282572005819876770487642459455783420257977365717144384773027980446040435302535297151257154349645215846614160781731348981383838085901682072500319562401389231436545565872336008059811228368676367078874923669677435026240532678879892814424735195644810752640906286628047486409322895347170459370512766997464899508478658951131789841432009143981821262980050368182627166242227345639118280564163304304796129956845867630350871354656344863374407596226850359077448256035726379709486246969877968981482183388713851772123103683568453564372619497757324998804503213949650152569031196865726456494530795551147035882089555022929429293973644287339001348809735503459379087047059291772935949268345164281279085607849082284798059562616237436002437665222312174644597195950909387905330646435528473412533865067204427411700915950114372111650479691897650250803032376618794425326241233368358788277880886330253002787035943638272607220142462890093030195613990779672567849575627608588886558874528440254224267555300565225622901054017100736975572081893649405042709546695698871764063055194375332644579315976472641116576877935897664079071086803258975915421959012984792439419359077131045431348163345456614112235763455124240182427010354004507588512519903883799452054603854096558859760953082825977486988819010193076596094804397929706196348633745546469925920702709749548083676948404622247963946050372651234606597106477767428576064714751521142231251448855223303699364307173801562794528911866409425391312621357359736364586172179466593506369771156824219675645001201678443200555091412899512110128462057123292850365707680312338833652984884895946588189639315845690651551774349936745274493012482260177801383324207665073834501210034687162651280340977259080789734381669664582210072199784051940964570794358353019752412268836887375577126235079934795451710824994657649193207004905733025154706240316653039051301260326041304360324333791417324795884799715615874899675492436287108844636888734695591347149242791893862994197022866930482381491952663270679227229579389868867311933199465346625141087003547516200246366286861083733600366292168040193929221413844824480916207530214745750689815715268922651519079372363663605002881192119770980240097722229840884212043739867725174967088798421941379401908438079528474881740002944019936993952073296971027300148699273517705307554950387360874404307335244140517026634537697769926958171854437287760444349921159107669409445218627610761167136967389294474754978393965168518050741519667625129775077950187707878038239948027717132141247567251296237226750110203173287089839226832134529456435256679861225830041688951279071164556399958468038152472034635120249908956240959452624202280339814960289643230642740490867915220665755541994485282541611511959494246535684324581813274607442737172551999801918411948122961768258925619232664690876532442432162962601287557970388285137825359477991018487427004366424322572831279630013966859060062563283931953049938139963195484024288106651800530857742831696502811999627341908025673641298834396212400603855208751345985736218994832139130451603031272347463697487633059444671913241666993778396273190787494747990148254375850732619841755185538193329161920651813420918705752469696531251219379383263163042768495337266103890591926077440781517190281160642213238871395057154422973066720762903492396696488356776486226314344813968539755666949671478766132229344551143771982499817913186453133072874677524331119076373536814697663070884918006139884600056451544338727432615363289727441186968925316122443219934183912460838980178474354735367045330288254230144549377868125521212348722739629127688324347943726584197220033824944292435378530046600634164984083507722859085974516022183670088405923477651068313581280912859396880863421115320509165612733246128690044241953443909475163067182247571510206268954627069448823136003862660877113872793810875416895150041076922287937279808072467741562467938672303356519333876034089228573837368672194091642974390933067162656375459579266696150168591032424791983975601323419570705426526455311350841753495784118060022827666915459177146045561070770172467726414853415397957798316607170051947947338430084613428391235544608360223351185281426031434026347652294228085837759747028005144176008091256760229714311281099631177919804421079439414748210492496138836547570638599674615510285470410259281685255518561830987287787545322974174622206255272958674987155197124126486358976514295967789335972359835099881980223273971299350342867098433273217469166092648680750623141251857708110215992116617607616284264783400643388850556988658186466157852359298943629382098994546023415561456079819628166895720676385627787827778698513773798878701009025276269527879501373992395147666612686456816135662281296670558612556970461246529781515897359977679170509566182367684367305096552928268207260628012977852299432000995592307517617195299758252448495846991877201879353408927499103073376721558703454589283161904710645700241824784293883451713455258493927657109501633706243137623247134550007690180329140765639267658075285560333179249178739724844687326421695475480866211185849091221980609355935530121258907277062694992730289131836352894715312917025564041688874269530871381015466793920580579166973154615958894181954378465069875764147934607950906898266134197740739121644467650725202436948367698966952605850115074852376200961889535902350061462487035606404868149108914337788641471615446848051966033766224797348755917945105302330887001703368574303020079143875086890276323695808416380774090015390702787845652086245905387167181081735417472488307039422996978708731292794440709149657941335116026952432386228021856942950752084487983777782465786682491100421008362221850752593714319052729620202296640940237298144137754933649409513682998323392294802521836716477607827363204862504152714708353854369884490997974900467518488214251184701819201041156447227968861752491579830736803900564782521238407297359675777276718756641311770810673979947242924469140060629342170125453427684848795383092791168409979842766375576641666297487483928790786912908402974574589063579058589907390519336634257576378602136372956056002355178200647973984772622338844821713733030295668619474225537976356009543453983933889102933496823335873932340853044738574811216429259028163113173461028830415755456732979792588195424714956703878746539321265572661064411875720649398221093308556314648354950617982182455927326656361496576159894650733569332138065108349725852003993528074219609717941736539921169311688769036660723768105151957254924619922215525330992009475739898295330875726267888487023302785521425527402162568023208641499233389342627895633693502888641178480843958924948535312658567405056644736993663068569781748887273077386437031491624264844572341521397780086392981815342679718797001023398008384296740293110144162809954541126884139873787313039927125939313648905180728067877761304481847825445582393913115206519702715115962251570507297751325759151281828049221767305481977532693138574458455667139291593631478215040722485457737114062728746582081077836068229895001295116938132791693114047049749471749926339898474455178975799760967500626498726852818234123408913849685985967794436297601347428176126684361499400777979009910591799119089946285719671313148038231826384989682225662704481048096427434333446493670340259049916769581535683488029208331702594976986605018809453714790973868217984261521672205884684291878637516491162401185880039984915137340552791285209438048197300826934292582354157643214500952108363139249894932138107596274025208320170991941987138337776493609530899385899712817884392886121925970314030692068075769016869155638694522539370310859802483875232362480291489134613298904238656723190701660982043140507249014250791506292756663112881303702678554563512521102990305085164127646912855115723111601233074903831087538337829036989148762874623587589339824101634967780527242787265304032632322934727648040425497122273046724128017233096837599639810957233955657874333529748438268440475863120823189951263073766519399917164027679951087995133771878771568021092097522753831285562401249207406830615791084932411212476689394418204669156552173158711050868280687746046684621476318137325942038635989187115231832519377102170292741032977265962882628224607262387668254703580548410260389015913737289878922224268555081136502130134594852629661361483085455863900158944011789812301015846041015702227607441696113930684110273743220077333056986876181033079065073903888754343545566719009520697529716289935925714839734546166994532348767654279642235418179516543162969906877417971438728613710938134631215727311672630681397769517979772386444944350476223341822146035204885486898243882379356841646698163017724439909538143344191914984226824797582636337795780885591461737364739692954685450598215128258644126856533118009559746667123023683731356304904892851601166946856209502906026029206173002420371737625006112486954741255923404188761064523148448288268454052081393661689766913536092176275820423899389451472506194641436565583481081618881423227849260097929025021500955154277472636347137616267163313697608972319812140067372234620374369836343287929614873090025728141969969908200229332985368450054858238955143604639980288862154143974824475930704133114127645012621374547841914042601174991325994270235910536527493445165413431223123497877456259203631913351930975400034724785941898133724515672930718844203602922655398447804549286918879495515358097660963013470813250731125330331025712332087498263733316616369744587215444009062591606752293758523604333100077674327914936761372158630467955929888538430505008666657923958357880981832237168623511389962862509902107713981065702744545680395158941681595459992793452579539162913818823381163162544067984244451026748989381748267090163332954174290539850586866995235587345976348948856727233631097245177419937985425064595329563102152212250064424864922327773354066504021384447554849509284191424465202250336457640934293732374727026599414954302117554077968266268105120241940930231945262930913231102676065137846583409346363580107593845845913180786806165558070459522582160353310272364297416140247381130896534520283431038377090178609281229822010001313353806585329660644024711363659379861510294420555199553057533829234824212655575459659135354383359496978694344287483765776113038534692755783488140041810019203876585078844212154923663755457480822544268580433302646832191016756968443066388828443329619868342975778778110723824501121754550334124327576118868400773239458109799766030214352663622737830866948421407892458477030802462597350114171432042978811099896185767436279322967188870645380456749418305971856183736940307763978033581776239739688396051175985436122551870570804640637490015755030641714773860856566013620079641252004377938100638216489345652533507067902150284414210627795159241090387849327244835424276894780356798015316248253149360516775233030953644352850244346034191421084530820120964081808885301029879702246625180068312734854763467937821877666616146008434627489015182634761870960258720950488230607141654693559578221042141937233921639765943988089266400406096813472732899588363622542273605373975003527097665648153131206770071088190075174039919879153397063499438584117289782778513924016590291598434784127647726654247711919411010785755805059332301203478599985682075875426542559997108842953008489149332651367756410454790934173428198759805951679868144558093305806643013333821108604401251798929771751072952123681493984420763572160573583018297895939592543989742710856236729972719080815569010543709962746188936279051328409819887071605159358031061648938517107374465763624420974768807423733828195504650101980951513631139186219987980568817631553275299085889767969343891082524931635545633420743442106392119808357865111835411251815239152405595054470496765421355537469798210172193385165314704550515739786935991243100848997697803717935961948506833016756514423178200241444909416691332411675466314476321399902752078903053890705334055509507872300503769433893406934267528139719778669698998896011447686024863983600922552559841095193258941302752094120953501481628979774063507478877556893651918730934078303848856238049500980274392411875205861247100663304971869990247865492405344327854848279199664366807519470890946636449028113424110274361164317726548422137547142707840346520998170882275651805539283687611947352259314751586289981227903289058676155629357702855232457670209530809217920759227664921638373241576972332217087579215022538455499728021245198748140809513770922720592614012380573625142608828703837031528745202154374104135803238399752901117877325661919248190780998706745261258127895098351852821178672853314145034484630852982985149079019613187193091157482326889264655328767044269561748485239645882101047470444129686718317664345811754152814826701265852419347658088700831270805647627523016381033227464163075770040384791213805440674081623810904413377814304831229586494833741172879396296010186339186262835150435806082872779590556748197007257493376137469804108773508809731267746716764833000121131495214635124871116377136597723001081500227435710838921656772825040862773066689284699232387379424301776865227981110192768835753955288484731661740890027876847519751503859355008533365367508047871005963508922052244494337506723314780028065066864550541390806534331192460070217842032688153784989533866105820029682491385871517687826419617989072910468769453653757924877896921113413963547880790805462723029481355837454413477425392236470632292873698096054623481293808732782441955009277963791015011606404336278854309215302407289512966658945725087819252256137557366006715092908174204295000540710179554118094126896660998594641465601761442927704596628115723362632953234444405155412400338288389763700257981936265739340687434618497266357078301886894530512844563218904146310093063450307308676887894197843854432134021501373999036510865654994958340611257741245107089912456950247512523955113118751340746596498132266565875716110804500992328427218613108784860234836431627558964005517564015166247389162698961987004919051499777356446514421490672877600798375097935334663961168677400985143334352479626594548297136174482507837813490677665301420398301625351923287585121671900923623933903873142343702658503613933152555074526164048654639021543068619190528442975092411864004289898432241202561396085948486028101983796450812950240400980195050055279926459226086314866747941648658150094798722886012924698302665728806556608495656854299201148883866789490474163089714858952949902550741569309542926785400499036501037010456935445203773161719357002061776112536668602482893553517080897809709198598766476789629381776490281652390502413014890579571700286299627648985519936559617265206006138412532551193864843010904462879277760314760631888964130242105277043456933802374460425515189732779825898181704386933694673987244405465426099851379036948829166973553507637219408562380986815310416761337795069018900384473902633982847134961288552084989479054619266439877562059186082684533447882397625851820216407866176169620851148608832294932238774010181692362008906240676341100523352641953219154987494375997024899557677118331640190729069366636392444249959425324641075160397176094387907420987742870937747163500270091368126194822878838252177657999736033985147760581085002998963788167773406828699316743309676058759658716447726216279418639446769636459993833719840071315757922135429706391026182227964925629172887471525078031908507769289678496758469013798138345069569749841219380980917227010794927532459187568228410541607144351136043716995475923434360023287309837879796995737406706286022716740641494690302480643988484860857861837672729621662782698282103853174059368388573233276763028833356792078367645893396317932499474189810807764839062829674573889824057569815555110939965868864276340870308935236344630956443609520358219734473466855098588434274674421536686674556904304722216654339382593468706242978906229882590743247882357605855573217391803529759121088531956769259013134819878429023876222003444302621576095393731706221280254800551466158620534260945395660065809254141472299583859628791791518622194272905730011657644274046609739978237814189839077881589098631122764432501170181593407767439750380506928715720877330381050394988916365057017946604314214946697404774816220206409219707062273668284585096131820733506577248947194914117940433587654179176785318981005648629370391974817524438589983067849681465988640610861522043566071611805506567910917670729059371370506518925310923551567468738655922816355002597021463805559696758194826222633715521175227703486661280314329809611872977536898688761346982429649373080963505398545768169729120975494281243028642901506492823405230223013849150992312786783821427764669061358090515163924254233023447092470255037742760975486161341485151720121493469058800460209282997874973705697344268248837015679860104357694643175774073404941669645198304990871803160434633955095400171562955960137829256617637865592033397289943346719486510741913220704108525791070361572012769664485715871258476387666504548933727474165840642135493759195933526863477253856808688453180658949309401266695968753886311657200659022630303879942198234018545713202027562989035854489486061929759754475248822591195223535470617508164082833206752505555236596606739011835445915852551426669160534251553197329846677032216304156351894643647565252649776808343426214136352299504550646055060847426906473141262719114814795548906570454042233125364570754683097997587972649549704411772867789721052984556436068412423282425082313819433973684251147561002461264945087428794415511971454400342081565202896874223336970056759897383546266494276814778039956483655473581980324463556450259060142424461290771910502756334940126705817448247272558664507463830907424497560099216066605593059555785873832556501133645565488016480482567582964566214046088899195956769694415477259563734277115937095158943874352697139536183897995957650682531378736913158681422076288656064818988247114666168728825512674008272707013119627311418117595462644858995789338205805283667253316357666721882854648021057710245975382859777953631689951191153314898748175139886433518932041701266927219351899845327984734957502139590947821849433302142697812655387554106823564327724441681131330554273523921650993144808163678565183813599336053231549333624596181474890519386124975093578096714241307693773926352567310610606540598460562523195062644312658854985056790148075806350563884297914769155192475301564788246962010040476807160455073295808875718483334601360138878014152166422031888668171118756717065448586625759846948039455252108800572475156012092113897855723945527615869352626528542040765996419170640015264498976586861261531294972583722268059148252488845433405380451519056665035284575558242957626411558855932936664641008479470007578569347357068179635356127508831299921956019142362891810650448340629131319547778141755690191247259088877992516009268351496782298958107327888947795831115769989282724364497210828288657213754789618449638001697661553651090399774877179523225837637491566097389952321967994096123587850145949057368845730346132731500376662030664216141979573739777802704747789113098448404665945710255855050979888819246218184056048838287273944272494348156186483000873604895634519273662014928382852836314632680239961273468376983139364020904344250856915980874942806622173403755249502305183221718650201629783211780920636016783804703421406206421159950831770129332513668556886711177177715680047351758206387262445173133177302235026852845431174771194955776490753453015370191969247091432890039361709169872698873284848842447431201464169676822123124737230500468363230010790478254016953220544714381528768796526037905494757328779835393747693956610439356736337878678898130130284163363840741547442323595094059871490445414284720234525402937851626551353296415172750618465478816586474135676565242696095664180660364276740197226143378805228329083904937606583988804761757512905830414457423570240948289482071758723076948243410832284240811277711307830839083071949232793579134357258170923660368433427463495740761563236716671564196512230900334249554426674183886052618850999750959588645060938881042906610553268449606001241473937421811519238821498213729871333512720401722841488590257126541403073596389502769812710464626684324555286336337491721068336057745024605495507138668694849740129661246037522015449571806930697108997086174332765376763637637360018587639225866310460436418034720425122305030050412257915021228650914348765623543886956010339723611491721240965201698238433143755299616776896943728875920803084009630016421914948568129205898424834573237970774185819006486791838673604982169534332666121845929843096535191496696143465872263622625459045747933107732762838335381741045796419922049095445897943988581412364561503409583948813583287006820746555537611011925304685529330558593889353532690017228285324429928681647677057853503526740867511971646827637084049300292343611819885976693065307920225959065444187879248638290779701161435211200831293313376828136519948650064815459254345124024289026115342276914114270977513607117971068785616398839880429790445805536510707517868471185660437112077363487583187454681370493203725662099512551235011869818439681958774064706554854092613718314458525076016180917556423605355453122315190012476884618641004189485515135863996562867199715401171346070627283421559228274838225914051984657393965316250458582641585343923168027203100521919379770454480705994472020103073586057658865032332519716346239897560666180734811486853929995533927904473071459005942736017919553114560322075253537250494568307571705683941201691145131428782945830785481905475346932721564355516251613018518250561572261289142534648549390427804346014297476660643927158922878435181930357904215532930042841342711362596653725199176975759920527084752230277476990797608397349192276872356202984794829523318751620028729396656833229070225597221886910241344249197974543331356098053034285492281082186161658956230580473726972446966101693784298997435118361433624536413146087216997342606356124996873710084985875478000959854549874384785403051230779069790796626368563442421216747583201748440716579476881881411369651491767146822229020253543308789210573690302079988529217680823296735165929171595112019068034912274944517879333038625120814116759730231342536267515866296276107724682656565004438406456734237932164474695530345494834059421561611540933665531447175468651081163134725608876857344336140600092465304665791064515895121123717005581168338382861116538490592446597075955634486108870205087030820235134717325840492404987539229154060419467836598943765567912426768923447670002838425150209647706889552071715097767362709157127936849170339736133857565682400708956174589267330859395690159435362384643198699048330985481941812703261539758018988630539094306495861250330290345366109493655901202091348178468506270992953405735107187875751829585049816319050344368050712108724094122689027496980930110007472657625879206124658826510353515779831659947925673396209833121794983225854582569320196708069691501567456697771567412617370898161025623767092674552201936944550345116941867122472571222626432740907485828375001192471024509746209330246568750293318110820051612868322508903058999219539412063663841955157161877689264630923825696614133602253919389795825726774752272764476108073007126658851078881512141703807267330992094615959692749519333861586329478371018091080929125429102510111932746750574561282328263454546275493925559308863283983961588513609626685789028444795260770831751881926278312185608237807072337951457178015707537397026914851524877476346883076683157262074397760897455209157116324625295888994630857680135504229338785015972476821041142239233105163277132610918473663606669955738084538751439034085724439693004663182654121747432549067709384615358600450036843376607847416774080350934373704635700279737159545529613345008571485989102533169352887975988333404522142244183480818159813262173406788832071806371419560822878309578822209935980792920767129285430365808644656815196332403928477032104710224472456060234877467421674218242961271831137064447586164380409176838150260733290832567211823296477697982266463477446668687490402554233134657234585342078626922109146267478680077688025121237459856809133616287632602016402989205048608357037852342666369279406306750812708486102712864808586327554983560618216121721296524800019190967776981945013160153206232034084865264849327400460919761491916453530795490370574203495498152718558848419791175372231857811339496820439304117305387428715777907260181346926642142816391438007224576312669610215665333086384688820834163168417093462293197587957799909643209070800253049026268929003115781635937462766844778104254574320654037173773185784055809030572477579272867084832238085246560799045488386438198244700530928864353107195034334000905200423207050712856799102835319725429672630821237589822471504697991162656446499435398112095794992649440338846893878864005182911290510835424654714811378570241887897039233975730058633540370599359706225989504997615370109768218503727448693094717330435696884506491575392882105433194958961013531118624839848108581009088663003526449120447858273357066699621194307781373111145939599786172753173014856943426837877891649846485802923265028506620094570954234716392027022672079359946302321451406878798942182980454911324434849738467862068476812494761307782844848425573610534285997716520437586722975828140864793836412658967157052365777064970503239219009740500524301039363397960444969223510260433377178553916113723309336382338080099859414071934339696462537546325472051693714635420990014170991506826005252146212077843970669498708805321240117564585939915797616991762671910817618238055804281666233557955631558691779035211818626098215587567701614061578167219035368725209572429136071512429043696702495816047403270877539805472888545745193372210047078569769107152237722228004663327393100045751091623867345196855882811117886268169207407946039844289862527345472334839869193358000773303784177930343369543100796289487077791394521658528035256590007333072195801678230020247573505354354565655516744186069615066128352170589591119043922337697479959464133586541420863160568798223716126741928891975492624544336797948396115054860748136786726505424474284624776160458802264168085034368568438187474485943534282106915696968274047802874262994919015028133232828246537994173910144050657283897783668401104752700924369491781344319486140823160343653708483381384467576636479500272333901270702707685726006296435141330810434234211798580895824407926808136093523301320749119458978176632527690008260165265861283352936959633393174887255943497875049501556201107670483041348095376640034982113612922969877522504808083942320278528779771422355824184095997006241401783219096994161608504193251204660550875538228377952037292993581810567343919496031521445159072186443643023398727226994076189085462488080664423869972513113875452526031322545109043349047521788338000613715698958640011346955712657697821918463868695382697213160297479979068832874880957075378508481525990210810811222965431475222855642696844619588767481507988039182885180937966102137033265475376797140971566903527472072571348229446545850743611745041981900209522943836857684872643372725444257110656089445610411958945135530057090349695768505110912888131346291983577732013731487208535982717778115969013080295736577672891598459683755515016290973646681971884668571251478896993460507379974986303319401424006001970831073228725371406528417774847263322307239690069456299116789912119228872166170326817551093221897358530192827980708208727364555374040486776246123741812835884961025578156382426586161988964583941152754223684706471532078874684054105253308844312185614212725634608591313527151756340000988400272869803260109686924755445419702080304024290689731049508633186243948873410379706895711661118059689956209893590375314976377732958019183625903718036725246894799415706533442139658198094266468225056790200717369268827189080429405299555412096762557699009222703613236566311520508561535473907744192922172117769784401814411547340593976354484925801703357979098019070233845674528143226151513861447662025429784617285605970692842924244221724147909225248005920253222051269134276359483362686720046662251840867238511474419712827754021751102812180412528190609881506417938527643374064264785262298979150035977007399107867386040138159428553664709779591664468947553416294263655854606204055767678906456057497527347841563619736246978830003795305924263697686897318561165776574196056866705059819233859849648876153281741200557853402976037650981089295518168318404926376264542607040487328969170518891910721530444534826343192864052815070889373805170115218373226590364490979969373189843044072869295389262167901824311987278687809598565367842892590639229897844628984752659741056210564505559260464573723370095278508142772780921415448457271513724453648418745027823190510745573136653407960397937144159006306718351672050582643983122814774051743321920238866171172005164649757498803353654392613881071486955731785466334707399394857650829644730849893252914721909310434056004753842865460654208453267906102573075719154114289960510623300301940013744751265998621651688709902597034369059852263804598081555061117762744486694764907318271693686839382567211446463222966368490408100299642663385771782930747262062717788399046981070791250116447303253923702571989933831976024762229364618838000873993158596571112674142931490295360154109967124111862297908730642960499593391077121945153873469820385427546523810955128372698740097583813048686104458042019308798537826229399378622258337387832539481000418811710048248116299525285759200158342800660437017170617485524167375685307100230002949766536796192197764337356722726172114405589262860587137497524577322851988277122154536793781530937072401977823671406809289034757301000419422235954634564879692279590040537182776577557214030542846469506412350427208531864806333653575793619051329048873241864100113566681669497113559059587994138788263568957837945554918435191270069068936613757716530865534461501479174686828102094772502624322415616592421978861317330658957760766686391158956281205588245974886296770184428212844389436635359815007815319940540897179791253623220457726932689324746690714354170310860890948596126041024617412817523031489607805644295802164015468433277349427020005134007360119704816941132380522855857986079026821847667744000745057893982972923810254242548069490754203788768649146892229799758182991709454869051242205430547319771381260179139520128253447381149048932896964282233707118009995833839512509644942393534715700828306933512747660463809064273595236516115390694269958818768320236685588649379757206815407637905258043419554624020694893610336047649694043546756719708281472474795990800995093058022495687761722689995689524586579659344874971373604889216564877943411063346250939048659823020934889430832727299500853473308336518162395964177505169008700596383296005799576365339599940049569528858557538191760050441950817499259214782846489464014860580019907063060918276379496629742377085296062369985954724386191223136779543281410028178230213591354198540803392275048694063206653086853076583094949494367472474752245644274944365966733221041667106761535559686114939952928836040461596573087641933486945331180254919169899633813923311098912026492609363491776922640520083865535901923499169862888009575021861672248781931672566967387627285703440664639389999568405423759038616976542612347758185118818844695817696109272586805359192788932744121556069822424323940436548465933052340875949776046407368921523178454971027122215833294327338045797699951648817686318532721695266672593911022154123289898715611472909368371012327126133562801036054704430847820871759629634371473053336533174365519979949815836502898817858241629698037541670233991086315092116451863436366599776233200858471527545592292062110309572384596950577632290360019283433229204069738388713898106267581109466038795431475471984845412275310390933996321746013001617030481001816877038857196207572613080221550800192661095661547807303215358482733066824253194164206242283233498007810683941042986383631717045013868446999249590179076117302710318578055067082746029510774906897979031137613512888432692933402264912614016794922902349557747215510826915128338939213026207098363830325548184904142193532598213835684695948013814110279839118252166572298741488629720323239697418563014356473080950780407728392049277698555244245899615444453803447244420883097362508336488909166526329447835638261553865317297110987259371675997151866933882619703378686439196980155112320798759140027225716736338331802801151730307848546247938740044580616827842882912906470412476207091268101348719649987231937718241679281781944353895170152652836278663547553636717213299191019489786878238810374042090719320502501167797132050952579587663600100114708867746257049603828037919211830190893468346901047354317419334227148174031558961516998619801777812244212447848374353328274396488622638307709253882234671788182970574452208424882614369392824545989609192572992077044592677982040844692051806070827675477518446042590902942209038081218711274388472620941801047897503698389712554139841759832313281569114301438506313859046049662918990299935689634338701348991808554068937937837569691005711054270780788230304995667343888934370336658487350116465456880142338272414623578795157291651782837677131902063286646574097012833051913169828895424209166253515368055930932533956506676080203367061758905879208567422436151610059961084742862307849732654478233265386386607301121388852547195272279689195596706706106730077204312712621037407265373621556919105960543695688276582345774180536362903420032453271156755210108363707579614400530174260193391140846183469823513656650917540823674753598957991206454690140407622535874259840558015697646055413413098693436621114205183438858018511747785963214917391653173696208996624671047281218587239053744486817822217562923342653221580243382874014998051680635110000697333160098416470032311353205919063477880408264029530594336454339791583843480335311669868071947828117351955104273398281361053524241368792604698738401447837054734255670520576965764802270562841908128764555661346561906313638088140620046249814059349732246070775721710721964024326364501925824948744745649579119313606843344109173801489498236116692248223923850345814413458885667955536192187555139692446612524939058787900022441599734907731700160029168965758005014462167376029674146465668301766435260097690725309345550652393431486338527303635926572191756922374069524710155291659222733996683849850489155656633775427512195057060494245722387877169134419477180409836019408447052856355633069642017345561064722937782097636788541275031022962996770567290342892085359825045035404031826439613602779815535493839322988798289422984245618968098414058656265464937798251880935273973067368183808190236214841969188065225702680342840343340514730432127017609522737180130490298447360935933440911622498863837756669916270959125149847973535687712144816975635953651967873078993366694131571983465137354233417428842861360179042205211900558234726314784101853217482627777462067911439493953025454606140994982028602518341781753771211276367699332872450945446319604560750737503769144078182199354496151862568839398227081260621401538488709639418734206526394836210776724507600373932584307349797908737352680625231956590867216861752870191354557502991906801835913412725397972405111122298033407600468403056301325379496248457058918337887628851049915628280935523618548573985686003987967581284630394492229788891887597192970144038027511587753546455345018224857169108203932727135987310312758963557466308113445923457742284650968946128094500640425278871943947939126085353421245531263170480883916996729390517341669182073452382922040301564526607847715293229853544408069528896528765167822638259151715861298110180058811814214899253668140880305830641955566216204959527035533662477061982565095601731072061888993891708680255482494889709892101113793883500464570739414092624136316915007040270672174604821201950667081504569216389767261900727633336462139008649766863602802739288240144276978203747357971800751692708919910172067623792872355919107666289672339626559159005760615315784886381885743663021049074387191535626554789025847624211040127732831184672747085494001371413037999696205198884765483035107064257344489682190747477989325673205559928714329600754694684327952832214738529873400299649123584836068431898611895763050287207230652089130199336916597826939156154687933140305748573281043425310090498606826824997872028094276441713444747088343573972846435634978431820254170928022694515246266106777165521379634486977437240979568379333957390318867404800640852758132710390655543585307622359612050010877855153977987811059964701522445953211766757181122796073209670659223733488919498619810704829281586105370634433949396803899830675919267943575288162909080173714650266553527950378744124861678865135058559856270968903550978744008818256968132587526578227325494759649700512417225809311974094912000334112546943740486239553952976403899663475500050282829205366669273960538475682019097413471833335973296984135228296687666961866999976883766750513041160945382773611362855124318051675981133301667009628783433256763543623802431034677303351630772919189099208406937975194518132500569006725548596130763514827177838858333910979459967165501638910430937513639645671290827200154472395750117836744745408928091550118908510665061059539846261910040405301897440397905987526628053662167242395996524421198460502759583139874930183592117860380789733227987171824437744043404838730932876206777113393540228504583330313206962391972629827793626797763905407576794001005732351400557750804642845042556788340066243897863465887697611932618831918542483042400249305369388418732426994065731035749016255910845930127506756522512424455449271337859931459408111894975707974791989091977068838468932635155659040204174444272657774750480862091129560831103221873460198135529605984466349402736370599986411421054403019815894433866127134313535744852611490226313072954198683237227573001645911060322633179516169041392928223583392198308685468802805424831434830947406803342709513598067582662390299705673278022010774189246496438215122114338410069219358891367731875192335223837523274627647253868527294558960419651416393676969987107888694661207527569414243819015218833017322563910898187566533212927979077767721414147141691123874060970303297716518044995089473602637950448706528824685783521173580886708451072282589479313407032326077221417783667547700859891180339044632975265925960716035135724049060321345563212924040242751534075861480870486859807340034322813896343119727685687506909933917745788261371335904858190850951441240106519346038234650691065024625319247254443381980441349859084879020687413044213550730833190358313830224275445014869799536151917957765761672387826167843044825081305715330821626345918230811557843093461240560309290453085944265613394639680626290388594578354610632216536039671660996129602153915305282396395579072264294463015317758936997304880069824402803121693987630632490767785074623071179131146933562965656891744741867206071840329873143769922823391890820803501514185631989630305706887533779629967471750206206240379750255099080810667702701930105473682483436677068686127442668266627031633574685037298675572147782032899298979874036144365395335583869242199700767212688281426388732193084798646015888765436938132471982130511861792607711993301699352494483889682647831123816645631354402682889389064350202895060430692855545316974861345369437793300147831169121192666727028061688898049756824099213781117120591155090279166052389620718836592112715525015455831132884855410022516980049997201801092964745433261842518056011225967133615215526161714440493355964012569528994547782314864635945459378944846215091398605296055741761982969334265580118467339833492941208015979229049613789537066432400478615027927473918987915168755593840635035210497472742118033620310414315523935910443629618185107885579366457754322577178728088138129680330299533028761093786262993649505581260177210187611200865738762356348028279615131119006034051188500811384677004432942986342228143794530568613928346611827671174106968074828188924481679537172664104327237333808338069829708053347767179711857317413538912744672426483898467173010329622797321608305707058666948826843736743202965802953976001126823187315514153584715280627280080635574480211651165796593291517394666157742341528588778587499141676028586308043128696924557053903612666125001944614319588075209031905731145506455387231512455115153403351097490096959229208963197496765653006036824325176720176316430913655143165794139626850506717019375607893050804792420529988959018240990213948207796308277634707173014325445902059532368800443271991907773102995788110565747609659990496366753241624733494553473625335324636473453503614894108455663074253141838236518629171862855572527002753211836673559567181423644285571058844467449334116177885994379052396987193276774871887573487584962590649447724349402247946209803837762616088650642981707448128004967292401559218402871761844712249706786939255656215948632947081261694437830601249034381950216269183014107208888762803014223035723985509246020841712317702836718799444884701924849066590196420807766807885388651563316696861449691936079404976953212355785311564755850074687164555050651213029502409613841655517115002767191117141486133322668416815509297756581111713501608001649815530487109472926454440107968797721422100163813165195365135117662417993035257377261905062741927266951181661626226516476146246972206269358980990798881379414766478466437113106655882594462510594242651114837649092143436508246923712945443668658642380568488993055213991830090443979994619848110812001436366696663987048525283415837816996496514906677439883982933690375300091756832267722502900762815051680648381837104563764921511293404165851628013528265337012989890418226256814997381731888174596806816955341243177489007681474722632984278590780188002758268504606808685912309562187256599106408970797742451211803727721569024462275582331197010711203711784414113545923013131844688130849074753531530840520837314076545532444987509323129067514674507692349527793602480797357684198795291566062057310972290651395067169156403537366120040159237789712424047404389673633808286448700906164670759613689017313392683137007650615883936332772402233847575921583125051266016881471049360188030402148649580618938307413395105310067113457975014614759352195129773472507701160391115220049283705182455951239876541618940849694753445478550393015924837416696732080499862376682808353892430098139622068387402934676884079069777278827146317894133515005485904296698758455360266265974025976352726113015971621594116132771307643783861344684294575566660059366208632529298478204787678821592927272004178803970305262463911932554326271375046898127562346137238721123551449617305379768669418094601071932712966278894748658818271883158504266311677087948209528671086184541658741625901022279674219269956085195110901590728930710529158064376879642096584856827968514302763389061088060094668488185672516573084091705054269862881500420623730854092102395166511101404981560532134647935891566171624623711562341140497518068280065396782857282750169205900460317189913118359254426270390432521639857153542656661066633706214679718298731039972505119848634296431514780383388480624769831232957716910474599151560614414289145089621899452851776015608207301017504078646270808155005008088770148737723959363890049999923753666066552465858874631583228934556765163989980278253051037081967375998228082705331830723444927925896952544372907269731930074484397446355779028589480657390040497063975920449886700879174043843828205875053213194946086625581773034177129455072699636571760924861938539551083718030799882371662413100439327293394036621262262711781494325352627474892349030015341498730500204850862731449526900903243103208882235286279161420739778350712115141510499763092989049867622557858138067120226537665899923810997604638992289580530398072676723583575244822527226436479685416024968197205027608756087721167433641081266198626781430430463120086712559952620303292687292870958751762853647440628496030688770967958963524550165267590572755413415440108249833838833751756586145418790910633518695812177826180208494048933727669828668805929790799800124717341536122730668560611194320686769268104527102923378447403701800141454463520127412801417390598936877211045115947961283392874923364745691672499709166999326942017619070853887429795447477376830736122310035288522296930257316999284335363994063049563909965786673002414402474196753391896782954737822598190876797287055792706329228250774551528860275138951215563792854792010103208251847293023843448983780153372891633053471181580079408438428037956598511253859413385438582113657175842781273423827525627827211777161306806000149139338511170375754679996612916262635817858074822617819185483211809288577769667530824779682906032189606097757548766550352551497961195264409994801141263285423601495840938685521247876045463880662721671896807901023104410038386110250842662877426969547412095221229402843917787434734292624697919961231512401818717481489936304364004221484570765407255150988300787491894868945382636485734388895235584026743018409211465549171857363211565445115468668404694143594545302093027699674977809071400910881423674433648319925094524567481592783198397264581088786645610583392492757468288402045716815371198914557642522491728610655658593888279400640539665154879149967866811138780741819969807575380722764896541782421858252459188271230308634844505332823537432509786696346216683968141861703388651436732881832127390583798541484440134362917922995730198579684238749065851316254663087215236620666112020437972518828069644444386586489887130121121240814115403439974184369436543216952209395457164906499811400499394038614954834994010046995499488284766497946547659603979737926774760534811940832979645948803691133064593189539675875979690881677670367664648584328704905113709295286488756046929413703779188647952169799693232191624048385454870175976202394758734728305600258509127160480083227282512686677114397858280954981519910507893056548913212092433857570527770664920086946776303586940440303875434541553640136201831907952800590541511995633368346088625820327781153246120065773317536390850047631164325184077753679432744688969014359002183806380604713760067133755366729635956743644619538528422686206186706770544444577911046012733353103478261168511768226537700431102431263917549883003038487700314321437077957080526371795748476203114835880700069095105230468562703474443457182465931753686737493229525809504914511935759235494593790154087474748618654062293155239025622539032833198924607457595702874157978447544865616911827925857645848425876706607232899309343618018312653378895603777445763460646012814572607632765100518984946517254785725757716998590890714125758294829647979038564429286947033630964789195517951000218079413836125775359967197642334313126449455617336325875808155060562771643760962549493660792965084576081012130703031412656177397021951199149304437483907981717874689429036742376230849465685219775115309694621861312841440885237130757125675793361946776334607080458763460668468404764964970131410252399751790723931070510404864388993107729344074919793501295990549791111897114476245741824325244677899136521120404306816533822697791075302444816700926263910578330289268304307595516203530654608009277229482930074481787716688252070733842846618293358400089828111057728044622255469445834321268356361970799419599326502004810219812186248090285607411695594580453488826511540300364730417137460830666236704593238437777414398953574846361927276168733420417926250330409677485620645386041656582655101523271074205034003471933686297786662471146216581513206667635940441837156811580892016299384993016972084723529740897749647768059030394783629865817134977720444501716670627575871470736406043276910520136075045233755260044869874772917995031567730060207078372351300295228266929670460153969633827535977249995561700582147032228530905892106037363253254552749852942556841443902562987392952598018363266043740219386761697292250701745791870129629766457896880634899296991196657367474482572129026695646335238410399388308305755838515493958066075451490758390117984958163720497583098951519040324589582949783703233250970194872687187129311631944099803471958006798254463765604445188185732382887136439122333313506427222170124290134720543714817153504290709487039472678422260436539757419818262646883965082960392752912045616097320103370945755651437019857981435489870091413445725308636695017179472895405914920059540926663241982406584459874485981256812409968721592463451814861842719473058950604270421486848432660808724773622080111461587287475815067460819753857941085581032602281269422383919921877813846649827409570620955253499615316025638773470105915440569048628848283482729388452066655531606985445587328461340180448025800114225007469669999474987503614694975786899210553609996349026555217939926983799879792493513140898960180234645198811786700033632691640856785251675754597846666510349633052242787564237246172909531539660565131087382037945818775909338168358022744780955323380485245525767086405216819570150955791640619288593816247741263540473521236025602001684790764896920548613694305920703849531323755278053137005069261314878662004177838381817613814277040523696035850323724355336083174533743741881923373097466351892325195917382099949886562499670066217281776271710431090902776085660662556047175520071971280187575477514698614833017009005348131876486856797026526962603529992289697081726281498754561720964954421780720749744572104230090797019687629127131474454003428069022021185586014879580723839269499071883344078840398524573745413081133665406968644012360606801985041859091838824195432513551752764327473781435043466453318174204263884593544568014097942022542145027128749888739519013362186827898571236556225860765204288404880460822817081433666947517965057098232169729951403254488588063692043847031125293916150026279564294269925530703482253126370683529397361491472594079320158218387560407931448763674415261635243046960578607679254395279781366817779119088046507789561801061249288803499905174766587648588286967064759426869075990709508174733467575460099577609732543939493592946809754859974925089247376317353667836584723200331820885858454131962174102853717658277698843358277727283769854751060388693295611480826827751871684794419590803097174260957609762180618610054253638600112056684254994250071589081655237955007670852261496031362385129013689567302531453832062957557677006066010266430532831246728045493494613347526086827675945904904685722371277189000323979711324458128950348674117284407536316104355748041814711518532695125867293507362740050517776696161410538445442338385431081005831847898349715337245638580932200890539043230768747570736019154877664603937091069260609616631161338310306720129959098513286722197940425495930356337748018303012165875712625944946473764861152656689384358995236792741144188133724285848086759625816534054789372518056179848523452010773237326550539233659906458954979523519322203614025388589838338863388984580858808366775853244598868014566542465553116308735838679207473123026159007859918555683388431318931108742084767858937505661773934222429518684016585214462128333829199012028189720217204538946218331142287085145666513903856793945397146898861820065560915288275258504359168149721977898803281124173959475792461180098047286689701015426140325194601156670681749656034803326530718448503899151969200710628063709008020235504411422876196271369837667958956934721207154158071613271342824669547564681168024097897354478605969430080125029150249042023956678050525453389656621717904372337959320383586082898533183926763607338993332325975117806937468401491733680666394199288162633621794263373379261517530421997319473884202986144648809909339009136219114024980098204562178082210311994699524368721417250800252518214048322296379284809423146330144580117130879258550992939719185729478467110583193456457495580711245867981623367371562013840551398952407597903773461521419035433772736482712707825419369642992484846009607401736600495862083110062787136026384501550504779258743738730493463040630189727554626456720456652316897682520745179713120930631539604694312138896584816358246904525658209708647589497095660725741805907598935186460563129162068307599198948939855682749446269429210431682427959721347237081724195080253153112116012362567643480401766128793051147662911126049740286180785856766862667316838812220034238315940459897516196906932835140309985963068022575138383352314312491762798640780497760855716357614496887307443277838777624204250976081345058934762464789747504689425411502353253718623960907751119529821714645757055481618460378781086307595296176116189183217869063487416848146838404566036859104905525543366934046239336560508058001965430988233550914895986115330787269859617974675614140422200990730930790950768257907397146231060475965732341602967550212563858117166969160602874336141192323942037108980100334899011621950101630385789982305528220192168378923679135421748192075876644545839776876003555132337359921270677266202391695091988785300889783701154950680799378854941657879674210655599416705151631092611250162245700511323261344289418212605240398869247293108866880896397176968217469365944056053068550473923988456115485941204852337956618469383453119317788880951134123352373370550999152908314065961689849837434755943489593690497770524139948662519787346256454039211476568986071853340981675716260445712365457292697648134783028067483804249627265029303915406919901849982117308154744221820930149824209957353693371848627501869955163248940108677932588487923971207118972575026547363248833851812326005797193034923540213527223754732459456446790657566763986008696440062237099574230634855714525184598389374559191847025946136181724741183426433067574467726103420260274363413176443128691393655778411398694814574107996487048734908482471647132057943066915644338048405829162154212918999218178007999051137132817621115189500280552198636517124361535599985896550158282691306812335719047783999714145481111076519133770816569739834817125100867808128359697042199235898203407938636649544097901516766275383997764967790269979380896999717140755627317465874381451349813389411485061259688252673476535824900690239737898815576341433329068343274060198483305355362719373516467485313457201594676850072224161411775843684963311435948757083810789036513407520368260027185920250312886334095085668509457569995208434007012440691358704678723078264213300971698269348902995814368014890252961025615261289101085888969897159329014438082175298237564879559008667121918717057215294672786421098812300894411976470788416119612718137268508845848258641073141406732637222571434940350781422395804890809770276394699581080993499155314042797001713597162569450281196462375292574208379639916700466970432148635540548952575829685497505058863187378987039617245377358339523519609017911126397532257060116596556058544943890339135955224995876399633403564650659064710008183865773262997935951125267214366752073475570827399372478588652970642545795069453106269390934416400019949294920581479052478852080291541598224656513566693604126709483686585238791204342454440569614811576520434654364457305718058016242753519936312308631079718138074377475714797559651175542395752725933379267492781589853517597908129276026524565578159136695919749422911022448692045068344185105613178631180849440460813979108163546283739483573770352746174537132843352805751482002622127707654090225723600499429269579077071609916962273594262743742086354014201911284989068260874720054316604269656225213577259500322717093599312609517113666171300874885767703335239702537103461495728669223691743348715073170542661289995494641650597790943021841339631051213189652521463006974201318717967047032309077172569252753010239067822385869141929040794884771978119129206127280627815042328687038101287268274829223407016709069591228774647064431571378876667995594372525477631887647209822494723183060336411902560476339881617537462349803906602478831600884667368745770535858416923680390951820790441275339837813082371728002335478892770961219657517452358130055973174666304275024625586933609139822581786387829139604556518987793957580859086073119288301331664800847299675193899063562816512971149769025477134590334542243002724481471371469734977848921012732182225197424708291890206328980051688695655987515034162497611589730775605607762323971111616165728090506071471163065552184491624635878831637807157466475084843658965684550045616926088717862934608939923106617720559213639556213526678755080197666070205087153750935775312016140969119258864236789611389455822203692494131133687432507157610648857868186483239707543540768172469086741440349892723767232031690183721056195526102556041153234066404401385892567489336940123720792051420694890189277945642941587468009095686770349035368295441427044398257886660105149590580823516842942056626067215190276867814679574698089738772731747383160982615471345657786841971827019165444702852125061500350574129038516133849791390225967865949515241729918293168432306494882735160416580684479978391742327177344918701463650758230125271360964477192414790277777458305247649700360568374234656320350578086551554950204699444030800571962997129701289642534271360069318606984399780064145716572750619994203483305214435277569436649015204971348674732883800956844960714855114892009184144511625947602810381746747069240659243480011157657613678685883378461070490439011890775508926279886172923190925996743772612517467570232351262776874128049048302293794387619261984998303616670165850822354997496801306937005294874443553284631509236377454838572580856372522606904948319773653836737686462078298844459178142565503638604809994735187690331953328910006761924053661031810748745743163324860860573306198746288383797114382273165315034127795444627407337079573274350143404604377200221303060416775512905660727215443318983900639738228102976974899209226935804178040805069826332488095215193097067600058568040436713899474405061485707297702377131932493220761945231509961985969722859490487433673900635317495187970204234718890294303343322350402619553841966009944058124451403139161822550907318121299506767961683272008053198617281114279249226283312322251198003458004649304019785055410273172443998990097860882665405291212248834958252318507508278285675768957005050371601681867756556472245168927169659459120498149719766887290263701980612999148851030843677688580170293150205737460578452507965947834776399448951919745325294765589821774000924304857423070281642825778685848723434772797500550222664928270389597392689117872907150867087726253072164103085552456498123535896808274589096832361992304785760345590989346653671743776166413349525008349636961933656058042101355919032108650349212621901036266108930535698385820283564508525327870951857872404238536719321844398817736856648943412136464954786905945676889962410074157090879338182312460125767645232016416316188346524720727646719894525498513217217631722957543306284970850330797409413156268235999567230748392747049536395174817850397437346997413442261192263889745067361615050724616298544439892765477986533749480602885396020782271813815651851638139517812738017989877375840292250379281030066048892324426656655410778834678388091374520037428576350488457321990548575403802925092990084983642649303094895398530279841856750982732928725436482966844701702586729524448593779149877542100025338441434590050273892256363822514041442505247124738582914695071959720683599980218523888224848192108549526373075604809515930964419736305544618626983749215524274558216160872738781687055886414663564462697054389627743389542565581314393474352437935915603416630928164408058589511061418295489138315154727212958282704827328380206477308833204654195800182464686764927540643430142536852115701265337366658268246524086294795410003426652625449589029844537001826479768052132795421377351724137001058367343964367677456118763982758627482831861476224763861670383858715334949726880326013386249135307459507487349664845768016771624065371570028178104232737996925685956369240208170582403560219648452521967617939337489507850430033269026002998863612032603042212244553532376453211497665315473221672124041630819604591953538342302044276994313189372492895221533561659206060521743954246068523955596165038910396808186972331112878927736998388674082135271113244303024582008475368473658380420455283483503682903214102940560154788759707611608242217533953377800299849193957306259643241307049874478780820822879534238731660986121559047952838504920517488198110973325681670966921205572094945287996147472355372630586424745506932065836398513069484694684010924011004228166835852020307425087077778579449310203340123691144352216787926546550765135663963193258129876917090106787711176789992248924602354328765358761051980610187341400721442112352580846990450921272260987404447936465359754183910954718522572684936677323177611706600256034298312617026930143697764621581216485603318955864612174599930930741519504077690561245169071273116198530449478802977019810952161471403693959423367185749256436052496599992993983556761755462356461450408378079193600814582675873704568875223254707378927018512315875463223311736132754269469178049389646705488343469417014469175257631853209747144382208836494047528640659179299457621581098088969176478178655906257306287725480376118897841508640329732620348959694504577757593997812618676779321770183823845042293544008710801121517419501393661348836368288876667062594829153271616332372944859117752956026035742618051269868669445733795243105051880582029644956992733275604075944159730675910347050538227506228197287605153774509766057857975751593610857154395791983914849577602302367440077225934228065188446876052793626714741725136407573079918887977844467477157612126502544474639577121518355002486954919657004845261813496222493139469601349680963920308941833450098318267992399016788725441141519006586197693315240867897647573033138837121965947701054317851109140899012028432750561882270767033364355821045403250108182340894824288882796342158446522594748795468424549937679972046769957971438510186229244711602803431430507238781709688994476438926529111712102255532636360578465571342596556893011776519689707552467919632590246987388725441584584280489896074245477760504663274718629325532614455289815155008073117579443124710706212208350390371563414928789251174707045770080563836448525126258516032699606895571949151904306158493752489056951528870552871996417343739393988060709594066431659911823213377712947668793154716301661920238650607642801558129029001253977892669847500379702659830493999225593460044004494015599040653659422255277702314046206464588465957323148462035059486506664792497167666440978242348899369049450935845116378649928116788699827911923271733603866093971288024893630738198707889735269346911199806338901663670186662905413452281218359370172172498156877369456553792532037660775587763054137095793013360593385024793292698254973703079088025688537433921206852375990810749948258496718812051582902685206211772865488611533424282958316299463623253672486288497877163004181769269908189011543405215392591252073605383952640945105142330342594483768700794819693963757579947275654181401326645422053425941625050878808846537782480078026846353727137025352635364193900873808632301562365099517477199684576967473347946162676041317610253735472905302451710978038488843710478107798884741373351478250473659507336560753479157711422754370245867125850087650548352077615937933537550198639801512186635607470450245950310420481457544443859573527015237511496917038923361356895550970377831344410600473574673120543349863644088915752755671605131276519464028286659411929707014929072211235731842379579613592581490309809080238335933869376045514966200099863793012941381017843118350431293262505186055465471421788364176930660790562232916243437069003406465098019727242358082033615817306013988335069812338297352936993212424513627453707623756228643843220991688989389622821804822195268394101166957994719473841609112734564691398299239219050875013909454508634702335426216472472696423841224753916712482421331883247601762332504647076819875185513058219197005470548829939601146792367586268654679625132820102469150523033442747824005143318332245025442041084080832539849677951520709917577000192765652091910348682779278937983895578374537816589794261576002801994039327142418507716952590952956728191509583967674975032863905935176742943531677523902891616608794598155372482655336492281334846807516416414408063242980740979442382129134592070620611013721504380821784497697421726017795192769363356378416305996558729213765353762231004738013090647314392856832259066741368044712501749813680344791039493160615918191071583013481451074499324507245748710655837623952416210462081834041197728616197436965796652839467364795215863828125356150307291072864564468223546120408014645193197902842719805961654125219013282329237614900332195258036675913242252488383483326926470242826164438389636358791501650273644860501313133971427162122645039158454646813794512588617082677324599752694047178105037952645324908837821393523162499888287702152135871636286886199163507537185716188875429420275204903144835892338849114502291503824489741101825673072474372406264985967423036869347995571761095387701414755317329355610929018605046233200199970448682660876471295819773803929179658975195578434573818230583664565724809409019199574962657669339380622400853495631747604588370972919079028407550168372135513565665469663010254564079636170360434345924493460836135112789725544892686369023750477850029413951279890883949129631290974388616856707495865137393189672169141247322244628107587560968521020165172262160376130489455077471706548016952641294564231195679262251573993913598816911335914274716444405927817073572715686209277384755977543210993828314279147928181513707924370742209863897947009383781211160700895108607146066752432688419012652522445654150109400341093830532549758751507460513944510791938595901550837249109104998188296433289649016931169760354054266456316127962385897665545752981046323572321380570859399088238177063279290860448846596553093246482064994585422682805648938453653618825120139362248738454341334743298703955217611249093653348503351116242012234118734162167660354345528313750962659230342415320249879674536029428362266474382106264590307699788621189889128761897450047105588903164211105668928382017544848525273930496721174653154413812279462019817841284729696689705290326217698315819912246408624231033172290519571173635385305840802988789635391351665848809874668009995083049463916851458285452833318773064415793406068151633625316476688123024358753398385723928861513418992605903294216848870142999541825592678428075941177367799787428020862430500532374080834073984598361263141825150394301315052099839608300966815900505733912229088475395641483987973616078743199639862639625998028265205140716082685910269870348231353639288267474109123807101635142370941694519191504259973191563251023646749919095825836222423907106831741813588661155237758301258789667690893901324919483487923079386410239999576882259324761706209548800206647443201673325793664645934434779519259026898641465548846526176086363582857857594203882368636281300977174350532581151365632902933756330969274852940719667440308302767624955841619165039327884762359750172613252525435200467441899363192525946219264718182744838256341659024793438223132570146419886848442291967791903110533432444105782576413958110447336373496744536593067512937891279138405232261328517365461647007409305369785143512674894666492999406050951777531375027841876036179158836442429338549834788151933403152641100597729299051869539349432682942758093641382598182557892018154067805115110503640924373268275843206281148843048924790692294578484737832275930698933940364116774214591123134851555487582392943693056691255745664799858975334356171874138003310694627942637625796413239638670978705790912013682428939400464579408603953374990398982407182233137564965482648200089830605356942348010339372233930265959350513322136444736941672264346450794390046740276019761226762210702187356604848046779093941316503290606687194874393198429009655388447689379267632905552308968993098850072729612561425250081988551309419552690339106023306306053592443311246138910751784023310984750875751462219987916539617905176455017954675471134417519650641430438407052542520171339410756260263717838124902416483995170467234910506930019113323933316780900486231021880166898730892292266544390955778419342032145281571132260303276701534568390631267732536997495802490349195002934572774327241006424130629986897848154797597161964656352605557079667121849513230101378788816070167906786392946756032655714264083394452560964188185193141815676760244090779037359425851033177098534875434481256857934920400030624440965702193477015924391839502075582089939100981126186053165446127004349279289061904599460579713587965939705829347133667398001387820363054324310549410697447060626981688603087476477306953310758739923895761167086648517826533233144713689871298894988043781556207688142700545364536431979217797037980271277709015643876192158786302705344705720233202326574306464549165159837092702323354858059930978145117748585375132694908288906882671504279638269629190976293627192175019288329216946715018827791184950779766512703536589270242939302534923287756325407654002256866521227758855636380739078080215848637099173500917518297404040761645328074976351592847188251149330238801209364981544295201461702548749528621449192106902404664666783935771249467652128073648973344165254180746378063003864430781363185029573058169876469215004772721623032502226135491327291421682980894660205685577226180999133797014152284896073010278282047544772641203550702614056104526149732481082786963500390657029884921588921125991343754280430881461745375269966919050444126671506419991617150888950611442285187279295471057932482292718253370600588094735697905351562443666001526368241815554016226648780758462987893895463525458250942583551386879371340496100048143010022807395486774871362645279726332271945805691817506250847633989420315867435832021178564448427190685707925545695422635152385457386103104715072533407712644346240952993779257000815044644830514018003000143243605799026326447442043270646807219356917366511287838448859745294209198008710074009368890606221266010041882031262386215528315213529734844610169799180625374318622120618291530623681476025360383905339752404049981223562693731152038434259670214601942053554718437737039345377538160983586400716185895902467495036312959343544275733426325916523337576007516648496002839907777089723395146123193169983759757064030884194901035818523614685430959611549184735287432260934875607260333147571219655830879182619489861424207163198132471129952014813053675574261974971330921947550696447050382548407127465712428807806321071368534542198885736488291218789567996456604780096370740038647881738370287018779293923397322548548910623164923770390378259227882761848516819435762931116254273442370026103590321137278137329491695632180475419185870722044602505060997333097344162700761265504148949713921976445244087598254512500478607753703895616353912129016081472228146540676713527808820867927625541005007230921620640713344336844071968286147895255791968171582542641297366403739138403920063767904617262587053707391407549627138016944222561964290664710406872921620906088899625281699423079096483304558179875705744886476468173637176398911029779488424329662011960705918044984679914423349375286252573756390520664998903527641201970599578354143218572203651283163292300510715436694670557275502476839289770912948616961019489862552719141377974471960121634815437605240851616798056558007856174891545772132341910469464948609176176724707365879065042421099887180705859653249020696752921231707181393041974682990174608582354047940348423563673120597577725140022220007254663213356740629267967514435078646790121801746787401413078613518345077199759286009538965157256130853218418834875774826497977861931787930246835438731558984712563647083598651973883683796680498065941746659791190000519449587324374899236506657058193578364487051848403795287005251739597697690393273011623731810956876569638361915320242560022018271282936894877308795286819122098122737680704128250343259112900349264253211500390826179761360541940197989610505212837442714151941017239201036356656129730737522697338066478814306024541804838936555383494349370170729160376774355265298875360478032585962998821720867863489758657834587797378319361483741735171390899844649889179191297033235551515908500442251788002928865069723142064298429081520343004611842079406760671064031086677723465151838723561042686683073486426578799125978391808094512866093269029694845593090657073964095190368514305264360623478247355129027783998860581022244548062496865903908078276436553896438651791884741440304598284539108587390675956845574364588086339069366985800672697790587318650584248064685086372996971053951178059189830150282719178998367142364557856119627873233611147601383931449854356860074305928105670791353905883066006694889704814080056838138319271818143494074899643789179911612873768744750449208719801659519289919538485325835243763242219690742532535766416487336672700555146223925669610150467525871205396702778548728572771726476409620345526100081037045147731385967291892674448991919039819081797442815724520699612636936921421880953477354982891617620804241820650047566800338814045801292430237538034609865326306043822637906953075065672956623345180729978044425651522189750364837150212855247936367096819178938446346896167129491559992099605408809631355378007664904521533953607685185170200395683185177001130350030348728313682538611692291991012855820380710019963454555613954128981819734520551762255035974774707102151534567480469044853249063555146975225997583255428073985288677790769116722220340099305590847600684877613028150794822742119975275673184640131078287138520344916556036850265966416521103447206991346920220781639506652913417610014455675960521365885425418679734660247590870373991076791100544347723937006439806168640988565311016372814904864787911564008473101652131277137806147219004949788441984766669171447082500842672806056957720248384037292243678385299552391389719314063785202501060105174249336329155611739588124018745845142583445853043740254075807294318367054429508867671058636437482541536654182432283866801466438180956421375332096772499438307182775079264104697224802228405562402047185457097332635779738206993502771532298800585118146330317110923560725687642310486640890085750158076277121852460914431070102711151715936340429355907266816967557787555715793740188618432604791293822713134598914193975082765709025041779444712375255014145793216676633094723232417375546769933274791127346371409138669320872428630367646463574497392708574588910651818468089783267416329874390536137592735391206603138835270794908074363651199862468516433474272784095689073723454318843284686008194231202607384888015285444855731495018977741033071164902996077617204467264610992304195616706592379006004580734246237096402600436939843964250107717092621903895384780811425433579139090325409008444281233014599395856888117944244806577944416542333122133571862645409103938597198836885096058753257266083325807070096263009075728172533452968989609856189496321607785731582422652053723210854087789323137275211875902879816805442340074172328900716140118780855282289597280703943558575948892694795028094485093728678168825402220040330117132894365089118590061300506133635165723950435062893698589804348372869206190507675171052320564252040373137550975436367713053895068936682391593884758085526698556379164385831836278964346781076568394459013113894356020989589671147856579464200164404718748955700874553016870950479160803643947575621536065129651660405316081491385840552948086804234120085519627292384977852824874433407237803456151722803366230620058846360008829447108820315201031439416655391591619130397780891336058587692175059531251702328323297295646376956818429734504176865972850594494592620310688637892798362835670473018880822984226975230675326589715902122824945754362099471004349442765881832994065137094001040108990571451427706746334756764936969246832173729117081207682986502075653704726844032283968405066264530323236486315335334792746027111132145487595316663794457943700195379735736082016068545321852033478434600585266386050221181381556571051701606259995834482760152444671334928928235351000553824994722452851212529194397674557520792431431762653776557177385865641061633301901485948353765388700728094816264884689233291949419769645725634271504919623691595942436534287659393870093916011259789862866343303373525581659240409342624395797355677254429837518283668440477017918770106594440456465567303757153385995126652399102865288530840086479605619176973349720147444630786940178371347665661424072220486918510335607516290164690161770163052208162552302132611862668611236404042906245270364409744861790282978163997208724525407142923857972897129743766746218298837519628903159153279886431366122065747603788965209736287940527410020357223244532479872946108518124685115166081099378460444144840466272901045335840881623853713216666583323734109631392877543079917885284345252334512644128124132834832338003656165271577164705838525024176206495379336870513197017995559558856348288305692497015122619690342626558104941096761308263956315867186367116210981972041966625485889802764882881374940137199109253337135095334206342384936871381500878473854716042983833777939248876407495964716681719096228158745809347415162303420524558067607276393794443834922207395988567362264580968305113200246816244073665398708232526607044063032680934578358307885141649201328309727157207227466263186705946496774463057214191335715250098952768134187736853415324597362291464628077777976554423684601722029784692461015937603035451867802486210941308083936064570724574839166913499249188479727332305420303208255482264123882780295102849955382354162991311825844748283887344138231242830277931741338264745576732126808696838276179020040206935566348813334273127646333311442483826642594932826160202894707231048053035130769456068270392703259203617872487308463869248374878917296134880047736055278364048146414961173928274779682694789388288281641606885542618790346142905957300699077453201314088057488449390156917972767500854082197649862665163270049626399227573664031177774884285147407876887540265468689026375790985549563448640118392960710029898271354747203237663133293730363308208255758323524251225908383668642032726268618044580512631801604511780620083160493139201987886225815709041511463219475244509544235239538230068177030364979456288759939561790595757043930551754224760440148721707063970351513920803928242622506160591175738870100641067960108812103345478881281837017896026610272706331978154871909004099775792385231105299310881138963491367548150837704481866262037784801086235980018170180081606002073993430675115578070711278532076690597814323136941137884951566781613732526280923653075973080598992812646395860268768935090732103614866892704863800077519653422763030530367459657445658469593227842003727163355112117935868925228731978384001107382467682930545205894125197600841786491888225382548560555902550749749766165826511775378603683093996900476974975231676964479452626148828595487712615821150458122559144487153783975536069382284225155605061880444496506693715096353488615348211039784477306631325008257317527532099114139987143458567579892523728499879062873057429383028772545252981543011794003955828120754477470448000057007397452022519839984707713662944065655467461004648882000431786932605334493725028057728396160781185464202310844585952521279212010084411926250840607140201232135659943649966001977208180370717180980895152729864009729223211617671259556479937247460483381328376819921368398303413387806328899947929005875814499120506859605063531320165155630538570655338256031975113639453746521148724441238427981607966843526113603858906666418799470680483161034627332667907665214945576608132256706007491907307524905097810507442769054474599610307974958122062431780301639510197662988072855377035851930097275148497795319192903326153411731294381388764678365787984465290962817199929962179414445834440583605247685413029333959391154812355608255866043098471580575328226213558651325862860492106441435207961863229691791355223372809910583351952421506684721487713872529557484954296659096741248711013036848316372054348016439095812931583698539784551359169048096785914363431084467573125129067743785400395194593318004183558960420292565413879306727690283164197533581936089279672240677268823086106418676135965500353526968883555619283743408712970718884810978420953477901969247507575812254949575362394510090223325608166395067240613340721164180875877760710455105851773768971960623596077764074303338704471420407601425595367701817648439950842656226596331984477640506281893551853933310541194704887433394527435822840390478423821523459506430504079120355083554813412150084808449481773460585628871908393597450452904862660413147136889691603280103661770319653128009301327764524111826768023065367357852590981749332383308375787223405079450608851304475087099218416722435447543925576772719186639880361080602455805867657667363290787967494614255883088474753727102487167288233018682158282690764492351700074875984548554066307448768104725061358996272005061360952665879176556050314126446728463722314578256065717833811976638107951591498487185739007828491650531224345711595217271548882148472151364498063473401579084618877813989446892847806895069246330595169674189638887104807027971054148567047692245965961760467904169105603544781683889000491798961451842570474122837990371035575400271406468829132009612921370615106294755011956847623707309951169372139268692706453532292760622854515918583384359724358087228738409177509024188003232144893231062134596248040718500377698343986423357569502774919895500999013246826118131553229664307095868889000038667734685759224772233067548895972394988015599788427340194634024471032408467246501304312300932368269991996588888969822418244312573959881859266405917245017274261239690328704350225680448944951628311492830892479797330788374077629876623049804140222043258320090516528765502863004114036960550175156252237764313935918224693977182403071188789065049522803408903871884171430015427115463495153565021891318297148220695018684332184844883986903638916312907886012531540810736246794895403158573552769444246100079981940061790919721012939697662473509232179109277912085690415543692635619186185343782710145721672235062834028207134927229353971961043172265910851974999859843967245945171170103543790416079369466752695584498992639047819333546558563130531900534693956693245390115804670743554582004892014995104646721306992726444692369497464379267516064503441568694663582389022306135797072737276425990574831639569599424081650710346693195301417128455347405156438166096757197108145317046910041534525881590297260453379833324451999977378738029321392736663186616358299414478789549589368976260688788132382186908907517903856027575256685022280721983907465281029614763898589726979629918509496870042645760452764296668140803724418961825323772430057566367798555363895219865268196954466734085455912720501198945988291775309064335941314794232676479807455662174876212085027916931341853599312921511017727719075944758499899319795111113655893993485458251535793266242043074821209575598364924493882485156657071820795165041441295581402640799134919490671624326903175466349129854012958639088310765017115762323957795377426334161656144836883979572588176790568123209731824396251803789828624168821656364847098123062349745473976574838867131446342954823344710659594437878809685316534111659386539206445593118129255178844465450292267620397779572962409026121029853213981967368889126649993854036570207629653680360514373078042019306572325909610049194927708340882042093886787032814540836828738345361832500727369724848774386525316480486069434474010623674263614104880462220833923094533632792533778161899550520148899519096125194500166887618450774932917982515388294237868773219174706349680661606333071160038213026690918133639545931640019602653803407593821680092904257265015499624887900738298452219277254189170154341313732107101884661941425021223865555520041176686934702172717335071281716050222319141415582278786382566239072369474368278257611288230325536363816715120174373060638508405280137142293585496390066362477816751745100049401054394712213274095555688058233061603374167467486396906226813876778972650868016179530243165819819562219402177726847954293050362661216800009794157151623470183089148718381475880972387735445949415514715264036503767110414933003541342360464338802479997042079973832093650714641848378062413741063889365030655514842749118275482002146636264727588195646886491891821103832551003397392865463769793554834991308783900450672896986466424868388089581265231526375678575632280281914305126367308696168049280711570659576583960881431515230063944741450512180851736251202317426888099900572707760236275741251574271351517533178036712303882386119924593578895980590682778454992480830534905958374147486524306873537077873139903224133067144165245850044287945426180620056068265736564506614107495632017496721030796307239714335252044656543648624594200127621596841211829059204442601945648804148363436699763109673899186754188284842118165714913306704428853361594412703641747623422117426194469053590751942631391854203374170635648005402348846005375490783911889642807176445007968507997038342265587555324207632230540005776620495907718060927726731320470039016047587631596715477407408616034472643785359606710834193933385054667426273773947055094583975401826967682317729200700833789436800050816501784949293877798103720629560740790910993850848066749293521999444090871738368177435185346374263162593422667364421524202884410037738360109925331112738889639733068792705051072930438051551655182162679318472492685951498028565843071912673909783835487121581890953313479482212126924573932938244195752998401906152525323190154979680531679237704663862013625051236202952282233627159239465836919529477911259584625579090270482975021729116654853000398668729804056743467030221633460884240072576843675977467909027063455815485092180498656364850578183746891196072613504656390232276464134941977043465651784144718609004407236174936595212911636949758841379988057760190171054095144557933756513334289168795557126929994818349141052388866226478975079860857017806861057198482940816320584811348424432450891572466185046632747244427536711984983535111525887753661177390818210398783238114807750456902467412486968718910773931181473371914692550826116520130867568545813629819840522435258082124404161182801157864800393528598969562795546851689363087713089844446834354508262933754785826531037327532567236397492693222318344240681456529341643434252871539653333947484493961375363096728322970410602373177149954328151305926103046292090164942555907614574813868426658292295191020164851246107624465716585118021601804108617475672720086321153555709712109988011974970861727728131209795101795106506878857132820890311739258952306395548071935975581366507048347950677493493147041883050023654549813645927945617518583936095321424013191941984439576130850855842919459796395557637253740280184017223959955118152345917319507535980287988796779318080763289389882446520267823367356575230908563824824342024891240759075789148723769741781990159251850120897844262595429527150524430583621423094063986548517224387725593438143452350688793433277258128047865753094533810952132839508066805925244279561065242978876516996080463626016917541271499879395344918121806849534362459274794792812227259069668580575910790247006259521254719574368805242720273396628966704527975211705529127662303386699187529236484244337989794550278744325999679727142739047809690027618818113227356631106437511517600679329573125537805460309330795950723247800158709697199900418870874771125355006799130280562238377755586362138741147733464093742795736433741354375705499375726767300552756389889576651013742900602754547268379762198211393974194212987804252704306001837798256631886087603241745592030595677473610234180020034046130652288738821741427698795450763517906529624922973825391853466020343894977551172446000791415261239435819606671273156376086527625508055759564838526852031044938813295589496191088302756591061832330268776451080631460928163007493999233033294903438083602408022456743803631064560551351882391522827893920141674865482281613263941742812753711735987048258945149227023781547170538679311277941840652497103232709640785103684227397109636177263643869151609329533537592100167372737312356474363445726658649536073812594503717810630606112433068254353805004911316816256354479047000288976677034747794638699972336705314768747821975917469619767377404679827243234782324268435251924138561581982701079475334402781715455953343576070423536149452418247989871049671391291658027446644084324983898522762968247501950181633338041074009617214514885074448863922932326537812772203611707962976433963193827598387645761266225595649852765541482093137446579640741735044515567962090267011530783967294650598951671233547487425443577799050748017923119411169023504224107695411858585066558108807898421833167802452107244468346115281992991114120394020049319497865151583612236454104805361584872975602044704635531345328693763311970790954969356742704972220313894031455557402385449098604081320235207322149833074792251613227673280853902100508076320967222550303121906417229375052095486525607939811793754478554684867827779655137645414060701488858988856376680604733242412488047522109014992659370526674879868074042303369246804479881017189423752759006324231067004088283944687594714818387536381337513274982988201087025360288098503155632798278376129285991102035763339975201065867138079568792971734714128542431409445664779039059548179155978341243584187798860965920554858284665409158055426240902886204258950518357393873594890329342183695077591388855717321054412245066565160346023992117794504297062191813050375666461475270291405125292728845904839354724132323288259087430524666366964368695469278985208440928302605475334036784811479958281735771769559560835616119290356237789983402422010597920642351626659519096992282269220157376545415153380617971950323963392408864292904658776008608708476354268382737371706815024891252999863211929341462679100734691751151882759783681710100226864270720166864284111013130438561442283050783981945482159304782310087196195110036171704955353502823555773208508542424026424505427101903876128632084442948219159817888777293067810316443529079661930608591647531485745771711555339739648913624070318126945276945028494063601938100801722807954529461803479258297038774176397684761851227039965435968533149402700897891819286653720078349633284069468719101796843277278658514525222885587156929618210093056856729665885765609241154897594802244138590574124279085566409112914233166450698302404602609319795023944982442203471515644816583795330981815328177851053094530407753635281452148939316286213744331293955587352557214507818439489728037520497897308909257322216440394566421073330724498452148123355588977868455912005160802575337519359028843241791170591718226081456350563322330374075204594472111379741311262014227359436685129142587684681202871276113432009936591807672776443402482741174728302620981786838125508615324753549261932036752229845506719656258531942054749858636219836776111215352605033634643718448469364202796525512685824994444673305121457923998663594847997528370878062061583242354997630999919800889721019981261583588831423711785122793903685680278334366743103478389378371141445593209023830145123192941902937081731536462452768745100118576106555000693790175100994755959795698827815882813985912909134572987742118264008226272198926403397167221010835435034990901885233425842904873508109998824346706479695307307678472598351872392152004767162283418530925228454810909166704444130930503357939555691848157873406893612768738123335248616558741055537193434749240182575679535987955084223336344035485863408144698583297353864013550392329379620518513221089333911502325566909358433634080599851165311554730068484174862194976193708804054069164649621057594503125748314729513190417309765655937378753251697754283983136550791631700214167589258244802282770983889547122899348630298886940228687105427023504451108634813958219116497771292057413980528430298919571758105653126492656529369440104221344230844180141551502557435615023464931316010332575902379355323529293798320308941407763597083284560887665970159109364236347120187024902841043557675236176196386434200544874685974805189575710557266553060544645698519349581866924218756755616628526710539586262466646649692081934642154205528555180574921740774215646343526827415986813457767056513790260892470520851429776887456239855778802099715369535889546451105522005816780269244151086156378881827515957726661477488671579524275358620682178005344987027411635216431497988376127921950664013530919108682261960901357868061187195395503616409223604324765885970083574347018845797915907257114096324316422987586785355999350810282657650544090846183121591232680033580991823503846389367940907756285865088147281731328899513294610941286619063784235795201408949561329285270238392458734472700194114431034742491903130940062091633240449217464832898941567844669724651563857556383219110124244798035742625193531344165646850005221314088005176770710730672998950492590095122172336228389777591682414760083173680370664599905902649871882645240788571325122622542351372494360826254805241958548792792973394083707367846356038618500647704826671803710266299452865006791765331340413952638819168570684310072198960677704004348858968737702122349932163118942889508559309798930255954002823599418906049741306842049332003012153592141715673617353870744480527781487696945817512344693485778120700479177148252572734421994175439524478407191993901083311118474928507487425411963998975739947321740733023737740605745310154488613923865828120197780487750197831651943972456222685770302012334846512132141443192174274698381996575546442220183824839894863079117479760108190189335750784943319237213046889642934218002006137658790368761036315210963795576555219109169632442143556591660636577073185851170977568899700822842056866980826129209878217451546047001462279143855415910949133565098252431497729511673305732745405789839285341378958271885644253323462590148962376604669410941912768102434938078520676216965112506277744922737338950489722941240121251633602102413558492009531370392107734498229696556821681596529870347793673574101753299335034322986189198953530655842061747348616194486616286697443160779061848393921350080870661322552022749789373737130252915211642124114498891305842680674790910940581445906599875054042941029402986511067884065732486244681025273010454118463942931763586543643182205003003899987841930341430417893502784728329641031370626772333376191451350887982911241582158886346238675107017115076147061796000107117875194217796406502424772453403729884802509675387276242553460186961035834008089351568794932307192424569888301849739536132815988106410640799562832365178108148367060482795802689607902943644659109168901496773439970487412132080178541384829249885739929189273632378190032964428618014713538791554804893178091958234119417774158629126550882723164734293539706648997488264624183615082917546271769939267573015824778945627364685123121016814331468624959249851052691231364857538198609950870596599392399028606739146890979832121062193507369812235653298506160978450565393945134364811634079548399380831761523144805894713062914135539112341018019360632036628898213733171561379568410945245585837344259807008475010678012017082177555848269780943607044938642617894233060133764724999716599873043532479859202786484549470307949727042985956159290660112739681494951995984011498642396968163280039525506838453572056362895514326122488194787167545879657363563561483898652870372905274475891560189363858269785926835135641510240039123285695055232204936592356901814129283097141023080425450889972449521658292645272508754622378672308004621234504141490069199270742160281288541135409065655827010751365994947604559737629027165566275615340023798761063474971889965037388361478164984311954128644562399759829619189293165860712295937768996713230622465231360800466083231068979749905300799129725735167023526674657238992393191951225637688380912724190226531214726306464855595196069848969323660070337952448591408903883382629927144995669461359505161852651219533942664719348837295310620311445735359441910065847695401841493297859694840696226075314716010074029625652374854466298451515749561329138335095757374022328932395842444838352789751714769709918368616510518087547279138664926294132936284380868008485628345375344817034033078084115952963452015539074982976778675702875314626922804545183450652836757213001844888486210975226804887729871534093602002185540314989939372739228241433958500043044600323350706374275759289156385388855749260221224447908599364932797496372091119943287078486747404218603287348383368270087246720457554143482726421185045493939567445373767620050874093019102011874896309127533026529359790704154476050488792683974127193504769369102440889834191219974403467936339056520171156381735607890348562409713881219686389090124526388188904744188014698469772934397480045461142204388924163984262925015981818010953453661196801083714688268483848144538147138942201904327056978060120904744179571437653674683910637590951692802847910954517066374855749175376955233336471184234402294570675909434871725125420404349070908869124861356942357164729600324433037245923391279494878165433013976149331664567844069348875661901947576470303694990040624933983048543284206098827406459233626236438634206212001601006455975965091028141932458641903686290402891335044483049013963235553803693531151898940351049108887782199202753041468121827718673248040172223487260170826921695716944172650330173829723723123926231828569050931402573073097229010305023519525084467126051437088147444260071486249656617473325696780392065599611670037543292625620283569638974596004354124248868881330715910518552441831656320554856906524438936436505878251810201305562652845575342290481543567091763292012374023596633532641982752696180983921577291975136207619020237442918294312757251404972647871652249967931381690876925861465850751404246659037056336415392790124368486243140338385915510456500911567265346378139395884410642884731115121081738429371133024477049003163233667811419898322288410964615305848172405466632175775255797346283285041162031535700489394105696485690070972554352581947096539452443381814207499724288330687116674656607777678956063663508606174740609767376669501923649591789286779278568671552418109462394947032169118848390837356800000198373368287848476742113115159500814793237174264077762383670861137294440336222700307273281444921135983050506338430185428813566541385676421037187116659038017773027499336274696434869707251139083392436365790975850075243855238713170869832462285712275428215925276176360145717961681922227378787981738474622074853258206892008062826221776968269479187541230787327234971847672802485872288516340156106668149930155558532517280272949680632133447128107072558360418648496572575289938168764533630703428512106551580032080463011656832486539288905131861296512304914708033015135042582017060002443943945505670848347647587520243112790021195678084770119328264655163386272362916581069201305411939955931222727036371154051824232811360020105143519288532198532464749537204160780302028414176997814645433259821070226065951880900205775241662200575872153860366932829337980310788418562300830180981946435534958070679369929201223466817294465948020658541951930805163889081731344392676947526422302857816029815776420721892357777948480670018166491201667407758286083944476075888777598602483483337947657547672877230291786872821624611938749326780128951407890246356582935654132873338226482701092771644354457827505104633678438501410049000326475183819967174736509734486656868759212680026028397932769543584667075993882145233628637639532941331763154864384191106028936758007319683658881347049342381309030304835340932889922567614351215272023450797855717560550332585790516056537548598403084699433696411658619144023410883468425174632208858387992407225020720066055960180592326311428620138263113455048208367916977148570971468864982757538019962825566600398462289834603470382079264637019630498600148898169596873562511337131659583262868080739559363636787821017611365186327906152058162163639631213120263709053905859906214370431221371085852752062536568447136720795370271546918454136732623375610834003353401417976908985354432779757456165921752405994933875696695709069766442255052385097912627438532258936311244554367635705220856366680281686450400348824793994142929090677509831211135832251979315440929390387395065894466190514206051268676886211218212123752776940465995669965236630849921446820867511114116649467254515426204119362369933142096440354911090815721411176746724366589541600534371191976953382581785624444374616166144020124591942184549296010420077823201243380535622358148655194099175871162750208537313854173648425499025219549996428686016343918593935388507356123640509691680851261541109025863060349943203458278337645757254908550547912107691577991131059568201580725633311986288194923683380633314945933233305515032736295847621966928980156530647190445033257981132432467607841327441456294356092204305468891268157432219303049185518808488236779788159289351558929766132533252553355245963125175982897330139153934366076255896253558452776483978649077343730235881577831104700249132742156149983116503304267410020019263384977575446902157143518360862317440302927279774635361671641106678957779106547180396676822166817571180379799781511930464224791707104450686266908747252192442539097699523541237182473427828847676416830672676381321200799781539568159870478433229984879612352993310761924101269454146081710507656078827552552496485299871382381697417514442412594332967734438384982152163075398227147372429299129456364936243137645067435992182513266582663561897240366284518814556020681958699349097172858147539704756697478466967997839792326605505702244791872852331187327702565856680975978902245950577211017264471701404694340687731940416752140784288783850859323067158557276851333522691573516570835146104933449498583786230168426193264264511672921877562031773905112419635229548321416172069875727696878977814130151008075828786087323610126177758391768861578370545434864896868751677318192151815496255135374131090588770138548364161003918067894531679571717196902710513461008320169352799747468464470533622305981905520666788238220786236667123554909053290963591656675635961901356127922346679087732406736012931928608826682326521541343826003273563098739358805308023827276668052342751450215088901873341303568709198652337831799224477616181120505368787124713862051507219976009340092953990741897037207884847366358481902673074099715386327257503357375893444981978277877295258038287613910907018028899130194550287127149293892436420050759620626463189561276349050751599887763184978301349064933266551118944625278172644390103355455679813258749100884999500281126436372067029930004772519586996497521813959155494790488286318394889347704376269025744829478735408158203939497780686348790279206025002510491889125995006690125911124533105579941043224307418831544099596200161713904215528366228713185815526896846381902929263020173626569258313690349180871764435254318707183668955994243380263016478950075927347711828074535357872731862223484803032577246890765450678611193254578225024080509143422419888477888619445823963256617164710792232167320000978717513846250621097104226361096836413292769660362890921106920137849391187152531525606469470295254771791146536282980608893260752192100278401898519964281615703887968924374451809717909019239829313138060736574040978815646839324472850196492935027731522310423829409294236282656916774047531280552681370302728863446894757925735692007077209644279778248279140673955730780169129004532357015351821674446106754420731284506965432622056351730788802064216168695774341369944028140671209307331221199193702531742348641052348253808342945176694368131417911394954576123697297692624180455833488917332368241505862344587189873216476791891679508322403662150875000525373016001017930276071403885542730014261456286145770893529767434848419934067102421636501124777445426409857271018914086266517453429946897062477550766084280820697592316046234180619403233355393832892068587268646367861073878509997261092196114849411951995258764688128844409096833710194237461740867172370495461488253520777364217555873677492725431378642576466329297615050720017946188599387895896244384246566092387835217047061300949620617631323486455385627415356017195903924560512149286617971050149611149938102728086329574477359616180536269082760506206796688207389626169428303645539616888217917002779980637410087539028025362574875969733895300703907983744603063097768031746614121202776012259230664862424361393381544242273176263346000157641033291171907751854610563559086435015239985255654646834094209283743418910677851613324713568886354490689950699376251494843422917896827112569773131610916856973918506195092579106031562030497709697511376311188379169760162975881064722447838538517461056341345715333185569739364199308221136321255462576478876166546206792902226095290408751058698911292374677810658623016782293159360856182335734133959002166457963805561026009591569916733486778265872730913152192780354524036224576806964753409772413668053108946352530463024864463515214327398864283343246160475990270629189582630837188860311141890083117286658084738544877307332730213279739565201508414878771212002278025258821299267989199084689843743546333168829269498568750144106090862854491614058294802954979177021005042506065097814603858536404505514213323253605184412458975314722058194618026308571667577301409837001185038433023626272793414972606471166562611865992084423226814540367917948418876228295022113097094892790606180119834987698982740521468578647259593380935745822542753745829442869589466853573028228427203740276359813826579509523372209199978395774480407404558570129992231802142987608801408900142302995904303564566107100130679651765371183124787823244890235074479079457089708605113096592338486820297215450777364984657540669835194956620824894016080510823198674643080280369325322667242760479535185865729409104129435872970665952807488899194986983067223135929642040065774452390699734804351334450058346297762800906932341852104899349210184581443171630807469795650367125293796053670070009930387399989370113235456198031196552998773581699517552485929859496599521006822729447825508272691431095865906555267774326584479002778396007447653650551218944498867903796191913664957400079605863864320635782879810600400928930297373658538010132656369100266255725258456710903991718355646045165622434596792860347911452465231736454144877701648073114577521967212049034626632797253755915381626644708473930629198790179026239358112727309229789301965894935934051701745537634652756947659451321265835802761772703079011442477786579378989791219332815712922907697328037784917503422468441348097596884267375114912823625085477366246239534054878731893973358942077219570980540502945496660716213412833466463487089546552031415386463553380421398413920014141415502866661309199206279299826239998266257362441492591332269878293600221831350126082496980113676074745878272538445688837923985288645878818369555642582596442471968569316952784112057945372608152326182602094684561529735334073509230806749597399655858767310039673584452369275137302046510001135300035260457332296283013250231093058055750304677087082749615082095256210836269860870186227378713815370075118231869690219877707076199826126172258398485244068099672165828261950165748156644403876028886206860402198748920445910391560358663385676031633576425204493292379640363866228589440404007460230040491239987000443428358704758829500170836548055273321097998838786274105522578180044156506358669022835365575800475420987133804888563622022221859541748195280658287924933560763732189301914629303253910177158563435913972534504838129674316046029063830965121464917366525180262510548402888688912988601674899829020545461474289987348879086719995143837399247784959250680821599818572623863636689600625164575557914543658966288303518826672787549908869703709066621905866555051142899006533679192418780191511527506010025013245591102787943796151961553429104407040245577971241459283142483017671874795641236604007744031781672429527066620113377640494204643104159910894794305457850536216895183367544993563353588790930750668370403153661917010778873676806530033025395570463044075854368653952449922294159331629123933192176849002547679493902142275784966260219886806845964454283868317033272244178521411732499092287872353581939447610937714706399296602792571464442505187214352236191789976260675094077873562252236291624052576924412250502077959160401697074057478821273252190670324421140187872767653391021414502688017824701614899068246425044805450611983768588443347897328994324556317167250673101073757965040390283588845997488911210736289896089843900918499908994156532772256667872037434055465929745933271289678491593141718174191663467566720284963212979115520523081384511793766974422866955607538604756189014446052567231949416264657071817659083658422016827721980937900971107907154460427297989714334479939909036393529288145050961876416374664863081648950413966928692409777149196001447571194758704271853459118600248674274130582434460823607591656002592874905114671758985878231684617057521778252102892460409026909710113147209687106961732187973975031936307256166647744231547592983720208510561037063067912047421571716133825136767867565296329964598924189847149104887978785943443224175523836827065629138667891274622093797659458355917660228640555494704095511751593325033857607179489339264428456201292870371122929856635727676150965986391224938959306816655348804015441250290847498400969930046866509933794766840922727329905323028560244685056505393354716140328408741011358329577566096912324123955825395665470526331128439274988971544863193008265894614668661157456414434284826405076170461178126501323634403364984548609851697196151319859312320555410862575533071803021937247313915997164117074015416502203610205710590656680538134301822979474723497283508911177532615749430150601861165948687020240091350487087052702291087154027006139662876242448263119678337632088788098959199714250930694300552943557020214269399866196488231248280012352465966837450178755875856740886799962873531236340927031490280013430279008158508086927056171344506631812751284307037664349172597034540208859306794046996553564312334940101419460427129320841286657539979005533405378604926236225680245842028006501107778526056915278812791705645054015025838147888520882786275905302317871151191614975768072927147604092118584145206204590882650889045966371603976316084074868580642806530171027164523561324144882473956890400966408379055192417529843260423089649197299227351285966367479971112180396367476610758244258102930458595873357246576894963194859061246599408706929614083531424352668604961516083112111598368340082417859743758461933230838276649396551559551509871335521115264793233939059598986140703500265315115387189690506720397000056401571565500167141756883445131735493136570287370222602413949714075967322695454475489694518560284664665971298437141954995646624836743633019945564520193757123204923035497176013944435256898959929003840728251121303236822823090633813181840121070681758318698397888642638146141330799107254173456265211248226701965704774349667401392855334299513385494750812618305854917175767555029993400554526397711373590008602966138445067620626245407029146141621909360516226355111619525048427071387581714206462563682612153082652206872362980820964289240664216113373019255381167237235706814435704736017378420816853520339136387026063714001589022281738556692696493610171868266265075863400122775025221725754013800007156192018336856805224884846766949895750719429844417154444276790374847875302887704600829395535736377146920015086444601480082862531215931367571147894839044717600016031059715586577292862959996877663151524234889089622270883862391656166467021973010925410336480458444981970268629636538523450898165629662356033727763215093035563573505874178831329964959077996140441579013516623488112967643873812391825987594445006295555289464106729157952505580742131075809420156781952153596544489369154606301641847280484814281030766325589863098252557123289946461041579216284078960459022797202595094009492578486117450227911909399955214190620206852018359940986128354712771274683221682344859922179292105724870932786998184893629927767635719939429467624309478539995282551781980251555156644888417467270010902275750905570125619709743686763501950415952768609357108312384996357143048445541437648178525096000430039326116697661231884075745069408018993074894688248539418450570879420809838338763151234198505594934622472914623173477277965786178884181655635152942981316706249539957042157689081467886173746182532507219575002266461414647039382624175830918726771832377786993632358548447839579416203334288771437314636229016082247598679343432252211082556172429036134828153256383101641532100794991452961578011618688529094187032045166356724176727192625953309623671450446281937931686985718198895624874728383635653457323915401629186988626390124018336288726580569696340688754493886664989312401090091355663992319520351313428814936694896731377431067889502271229403247337206502922755273696731482921990277421316714639094057006544394005337653291077252939562624575486840993819894192458611620621359462978475407573568889808122885902472512799063172553666076783271364954525553785579196560933502354251582977820408510665251290515859821083302904656441782962237144560049017488042151072290150117088389776800106971987969172041488643616112728518785154699564993375333235450235538142233584078830808758697075148039250038511697571502369800715803819831143712033045130797524099349450953526181124150945462970811145838999975461462978980099752051497492373711035598440334042980332234798469267233227753961653626679502438470257704867707545495343725039131494324964516659970864966179749041384029884968766053821616135705414052304844662637982246060440905450592611352886692224868612989773208164001685485627092607562755446826023629781624257632988711424870084929771542193114956081846723733162049570134767716468273788497272928818951375225691232649799071741069449328913389699800850823685094591670945213169625500144343447605469502668699876940944605468225331000224209965916497596143795542687052683105861016127346587469126382898773192809161476875567412088953391985831222133319408845624080012429503210752323435503343277337079701129910917315437320047696963674308970721393801740727954810873028250383737093587701564111800732895741037152971793983802772431081224288722446323580535032667139115558981408254747833525747101595692863494973505775467177390691014458635482652989998534543433706003210982911847840869608782870458937772430339757637630874680602601212301437615489277229527740327164360158062374838047048542057572000457371092820529413144017430334157185046174572729968100161419483706002939180257128815923488406392290846946819614599403710544583170753681833861887640272801266714503003168023100520367701543872152398150013734853101650032630693145075396569376860336470874711423609634637600975693757740382977125303978201154384398021654048511006469190623440307430967706591880587176269220952930839923128562569498176629963969101707346991572039337328624880455406859626823454376981480451846543961479285943183552528727559188211988167050136714182577194381009770848995124470614089028467985535351357234437831670816321138819313725828405534893776631736231848483111528325761675713551392468587905768750279211869972356967052912657088198090812239156690707213199918709382929216403663579204688879533312311138461470371016078913072178040971355496885434715041245644253041372264289092737879376152123091289167865577741260782163853591561735152862703823362413235587364600889219208050688002543936002708028542357329455042793703745296841580394904674524737895279587167166997920300550261132255535348755697368058515313960156790884117657573606707313315034216806290092591826055761576497068980902061381595995765854577610275635562427581651274192582247105879488814628390024900822521983320349948656660983297292127802221154173127326461050770182953294563354281403971663053664205472006524746430841603534951521131308651950766607184410194685702305697910895950064124916404401352536923596675264897756580109745223704177992052142238925244249619564012487849548132969157546166902080817783846308736352566875197699302069253748065613592726087894363293176121009366149286388994523476294353280377933496864471837206416792145825781963521018835733429443241883584076960355196469777117060263225324777305806668963294931885155930963833432669456920605320005201710168940828812385291776855415650176349637772967115849587493939944445545189304017169198882278775949211840791204288661212743652527221723429670479274348336521314316233649170910405737891235679130808714124599540289324580056798607362521690069811602315577016970225942441204879847138128153852089862788980951674861346258386427150817442923787255535453644416467341879328075904604646285165881214440357402745631019213362229233597445864024919838640520202191191528532339621241674396615063590902378764987828924269333759157609092285707265826136206572151931409249823141872569771366174128733257210428183136912101068123640655662838451538994004668710424785858332712700467770950371252567594529516650722684827192146368924914335701527333226416058877911588152958130509862759902025124483511477592220648127714479960757936729382065717267775745000220977278164171039956370425729143022883419498771259629729418984910481707669688082549058357418870284895873820687520833519453186648023049916404895740670429270952339195548927438196909729008684541657124121804097425932392048909097011432515319680698284743068335367528859433424832513696527538419920239931391623261652387186859272463699701859231243288362453969114065663231149708528985011500013605533177621540964274059513027660341439387628162802377220840294781825877546689598994242553406829429356671614110511157479538807898219941526619744568454127531237806847208564131939375978404138392373409738054135697832159663452234188176275862661763952947945315186205490360450717216227670664745051437405665957104025055416729156821364398336181555939732090300709649933527383431770612690276097812490920390990919945524281980709499009858403734248368495324770021289624042548253654728556559529243415533489004142387616060819699081310583152458537181081369470328056397282710205392100183863184355089693026246006386698844685060196844279926178389636260393796831379679575527994462778929909793124352897050459202871120832857241377993589588013555919933644293901209845271699422623756107300718079116785328066317834096889831491216247028880412896309325668851060232742498583968483869460977813794253042692708498702355430133204765402998471144907397586578337694066948690346822476317023546845148272687405644481159152797233533793282125731690387115699068912076716485315824963139026684986431917700304757722211736609019162164460497214548604115955587132488581515077617916584622924766682937923395468749958995079373299032217731182594850213180023263051137507250191742298012855266802402591597861829028107781103132451658146454776498119240790816085205808205491814346387476379980664484404441842301232311732526060903421424881324319810758067492229504423617721277443891114461286892048362713792906935294947680838011983803402499776113067435079649888958037117745911904524472023173474085801310787587065060917458373420380612985229843571866281552582014742839671498907085353313004225802900433808238181996355944747207930076330405499606438486262204310348905342108288522099771597880288008793449062228529111080391495360082299248969464682803988757058529243523647309282667086273783844837617942496727894701049290461768373009967719117820693157852255124420990854214594558202151063475699928707243822165625501385274667133562261358782638336855283352433437224765550691048471269150599351359614338659144786895939175680545670699402862797791258775194047558823373424894838121656975442257658221786078453437150196043182189473843342122879637200952939711603363903849565661691493545144448364907062004866505429759528410224706815819626349641977881715209325209193891146251695328341959308445274364895464976024141944539676011136662344130559027479614909004255557987243522465348224301476951294098306569924007059928912755423479093638143620545400508063178835810555783111368542800546448672315486274584562992592218630812758091775339500310518683406497900444869709713723169728106876383027690298727339031139042643535189360924778323183848994650218254961250663088433724381042216309330204544775010620355980822255603414439518898947205714645245078303954493670481190422417703833164150354414105720761377411602142921566683223495835597780465239228629122199231197141150421447349057414531372930379735421233236586678152294071183683446852026955383056560114810163021200385096255548254837669279334961835578282780820648191052758959805644687155179883000048643879304919125540615043098133402478518647644468972915868369101785722871736550905520165270367517994316572117153315770519804430476024462530213616591968043736887424003467893655640585999565128603610925479203656432475610119328945084590356524195110565446525986291302392692773458223212942724237681290327775554730513323983475365816174075266546826083844739731574241531226016352586270950509135830938339237440081083592774884072913762189908602526047570725220399387001747284139754986348187131454311802839604427512303433126687886483609529113593395028884613954869823519240768550218153258331845671121824541916617325243167167440823125292303462357500965357868712130581628023476369258908331973579540669025977246347994260718915449521669678744006291726331049653618309090577965155408365030157052413967880173638968614183183138183866653493624363036749849765742771013894933625424525972580363249862400863150207577932674652974828280825610563670010659521224437435258638365637556103870767055813958104589509134961288486506817777512133566888886882963610739846596077605575615550169735691208124829552377714850701517202811406820369745988670283238003775943371447508727927690481120118268188927476325087242257630395722445786412854069470042841608993660596923192240466805199471034489956109974288359163089833945085743332906779980258023565367289032137237142019229474511821491582634951517065007498907045681839390502891709344766962281844697286712204061684878295723434771840716372853579704037989328822460615144889574908756805604661795015693152818723758089402003770502387530021831389868474126315523577980857279285615701776768959912805582483612623520888462658854854112138129315751192221509909254673478708807990387679072196260120338626262103323912002659858491190341747797303051813908434717363055227576171310787301839226541010986375715860477247128441715239845711965603724425991928660048235145596029118847888129437586623668331579208389969693783986137330636257812315167867783502323100650635167820795827414860870544026951942244170232918482737452238201754125864336766182373338981353267171585570492678836114585743460884014920525871332654007594513505924563522398327237405728926393532022361746846154810619276416432512718403642104156164255323206651916655920967119707958330197848660650057218199742046317680683743176315431322616128963839316875966181289656861961116244248831916869719185693786543073487066306276497570956832736976182454099214639126635365109601748925428245735384520773276239829715626937237224485359057839214161452497983844224419649881012667011702857998861963783968709799060605094159165811993815124954935143079450115357550824382178782096579035708525150378953598243573189186004492243082423255968676547766658301357676949563048459194873105960878128622645988566151568397850062129080700166134411528884944176863976780098097528196363988141302246150769465802227155420780194297976562301179127027594859054040414827483797028738131423861483588559005112778985332233652445685879606696080692168356000070535565108389473190502435953354097291019440486387096496477501693015647593888679474331354078609724978317946199292104028475702278982922676197583240352527967659937153033875870613955849644231828632058398452655532363626662817399808311856640999404322249533083362432266925919817809627652747578160673231139774799144046620365851421076219729298963610467588765414578640082714648222281868415317123123273120257822647196169901875459848556482889191479972931665418950140246225322090423899769381890719094395264362504646183480414375920609701805972658167135326746584085754016529987008695225081764753950482786063289487588070311811747540352029323980729513263238989861962123596825796848678206585493804910124994917057853339315131287693417390257996320050710555848823566061211704008004226199098524558134821852750814872539754887134877306067300041754217650244904510172699525083562666776533647469210525880842950513386952236578555352441760830872970690085337052795896481138436795283118834279832792723538902051766042797985541533164982585470245734785161978988873824944759952992181923143178187249234493778905009395756595568420317519669947734955328028951390644714054565995312806169897695461261162980556204896410144340194559014476103470044362085924429120383113928881046697696270689111688148357602046180769336898697350543782991229140844335041946822631018431505951459536258095779971527507324921147060379644137659157059202736982491092494248213068047912730541483037326736658161464367302331083209230062025865568295142435143044684834104046336640181054650463567042739984583891058490829971215397935096332278889643923169715481695308640837376764334854306223394463699531446759141987451968493897694876713904862418894327239609898698597540565045040697942469130373164690854244720242062419099155897385239570097089093829580317716391037672110732707097635430530151638400533968687458913026087849919400677448354402369053444364426876307974371337838808353668848936611321148844219611514397360120059604722661068685943997917746186368957802543885803032924858738454236411271448656116771488580329423062929994452100324518308250791613332770343352278066438361276666892200205369999698788720801163704791027484184914648293295498470412732934897782317555656773231421617739405590245036095646977406118865748130991227731139746180905032318594537156890659728601365851522686930863410028745731844381585447094883935787268506876875409966530590276273411235709734193370186100632025148253149217566219171514913967009515400015598117383212209746363312324894110941622507836270042774993658039652641398661056137814647387517633063409303327886410207873020644550449981555905308559555062413582485302158998466598914375810492557644657653423268267473097019737286698803476515284443565902616351752236778760649054107890678112325769024753368743661980490962546337049668092961289156492507247127458316861421806766643919933458108803110992349844825916218733460167620429501342233554218282493061024194780869769540139770268661216249365466077680675551604555201938499867265988696931913192529180377609837750885321257803627011912419381050475183947890430045120154533527012866082823830618136037816231098439062325904202890779437188328063212908134696129390777379642758599512804503216304502149960804245317288633316240220958246844765158198502957747890036376033719556530315071169615338522314203989262390684988707697852773688024899721035785245684613331297854835512396177621353305715527035086260938000179949377397447891477120908244998094434874844183616076125418849582976389709141111163758562963495397495137471179620105566505767276137967837917329259964678327160312216099542704103083081875671242360897062744150676771528240775917006584987416183221518098552154019188075759584758050893040352881804831035067080859684764052233375652103115181914037301317607059317278876451571927251941708298937111445860280084629617903953748383546762074674818016122180603238082967530478881442257534668585200472217830786713902615018381093632606761695703937330364368992307368469708512102476066348669660156907423282053657368473080654973819461885335703222879778275196822474068421204674683865196747296764267749822848898743853163324411352485842657693953550865779586147141562454420967086879394322342469966657321206534215860892017191893625989892942817245161337844821994329429667891373385860788700112862394364735317178847739242458028708062449714478318773464209422293683690027424276390774442157487932739000413560236205782167980265504180653224068508764728929156588897937011046926547383097231845592870307779367725948467888583771951927413328796676831315375632326715840742971745452111146926237178251366048643567135888174851265987338994209915731342202357392879983585487637994340798433428298084469053554491084291224171690911959080628500585805945854153471102244851391243412366902918022320544481577653034166299830050015429168109206515263881006448783759889023148969585912197346240086677010515698731735951963022279366291703900472286745808779764387339588905771080413544513298951728723267544159442182683798939600395521413649855365485096751618853654832432557648977255495555133096951318194770440253707650784006082501282211344638003211552670573921922426884094144346562443214296114470397303280001430514890380716434142486776231093492978155345410490155290538481845787420282818506513638284417001866594916666692875185227188436675928798710248728800777240329366284732861888359405225941992662526661213764400269793568456818766033176592167593189127188973310067730745326681738647881901278531406826103376046901044397264373030686471537626631170668337783455632435061205054464024081018299301583921882574870469594939345978392163928896615873364357064470329093851531964776002467294994907426305401703978698891071221740331269088954196287493103183784001129596363994275999472534685106519955283575804552078442067147505164004467867735434261172737969687621368059281874183975542294796979859770676431205385253436499763405785818051543241834848664151720621802647418161661385473035688127464709080795580469060060497437324403805654035048151473800103653718730963813782218775929487396549741807513332351926260105395032911620225339413846581161525245941349092772760622584832762515421749371100251965869141884012599917746862148068928576727055359004267411191375846347257634168693986578391876213903506517113960724572834154674919990395442754700811884920861549023340249789067002817658482813284103552777494816773966899073164260064064593214406038973850238706610491556359880981220688809945232157989048596884982745641295086506857092777809231382438196902745988103922858318908948530856529821145356992683939865715057851716754923689736686234343377470319829909890850329182151358877926388605477457672317667851316867859770658431903830551968148378602972494775493663238916230565568861005418203339350294734463078260329909951700367151035336093025952398565956163930817951067880337233280391407891009164127000363772351290412793390335015537413433922713920339399705298755938099167029657559305412647688075313913479463441091675452600739619426829360912899162760386078333293245518747372293142455161932215228462461214242404680101477304581871559427271419079395726981959471386823621524076834564865540012599563252708571257555243088715753076627864328174885534498919598404268138961580686845895715787381471590041260618596676210349462129954811113471358406787985511100030404113515961828260768424393602527648621340084055698187841050190741669877600450986043805602821793853496144727121183286238166780193659389698829145791041408774656246696985465061469644748188510535357528942561037495061301397000536364263876385671992628414066535837420169540473029509454134461158531013162752243306186735887149536507419841716149599270426260756943641597086009576796254262053190865974788824788867605772393026568861623824026163319953357948156883670213890187370830073104605089484160660091823803684573217571873945965676053453024647601479851704677317742201473087791963094914286918992159000142348319223747742369992979308157378312622476541748681983492239134648108695225201576723972210927299175282846393476075932814756343868483051902871698549209616335168323147484076242555929353600819207933424879987429056386936072895527433131821432401634094678952147008337034991426539424697229262654411631673133349004708482913146109277835792944898912393073957383411826920953060514198179369262983576617559139639660567081084873780737500008869146950414037056147449175676624442216027535721342012364527415042607203353762643514022926234603366953110385560954052204889182580125771808921302863928721914035306842503766991721145828026103005651004108518971610552673585196291249336164828305641389150834344808768254715389863662762181173720758500226300174467225133535088691335533744865456624566726750394314361632465726728425628254462347421476080322413179327047597296526920204014903167137845417685468939982067851068555845339687679012592184191254161139883299667266116502411538945986203422496155137401471737523764434619273183563642951056325083363769771206594573275063272870691116993737813107596724097751230025234628827212169996446015095711551982534112615320837405189595715606180023747598520862595624700287667220660761503153464759928308702497640880908868439416864848724198512833703180559248738725036829455890124480280622623794957093660738032761459922222617127988608124339445252534891566574849449592144069767986897705734977435637944349306865115807413698440758805101118874954037521122700509005502283272663433388734732489364849689577548436251914434201695320281494162648184571531327254001740640826120720443257298781216160414797179504341626686055583028265001761248967106288104830106035513539344954816103057319400189943105297592518363158054039433945233541686211729371581465953800937790926293105686150886665021653291489718631385605605086012623031066216548902314506688058347353770390700776614855200564395661779997232441306229664244747210910983446526689810837451031323902874520137599627236303018243694315651331124920223019623543318977541285018967824948540104806752695822725093486621895145743433270667806960040104757117894961644233632047861306739565860261936723268933337381392009842304372142739484378053684941783909113509312292982115627265340828903534727846927709610113574004216694678932050331311862685174464838663152256026790368099613886658266726232529578623093614213117772939947737455532007117433920095949444333334536744581119682178794405739160386294719148352217413555464346345419923019881639283338522969342621011296242551161305891587866591218122331132952969033260786310817844667106706418599400716426456163225938396671827652746855189212693662834666033161168923288959445464802186672619980946769293315301701045912483470604527953028866843666172129029829455177058807963024813411889538462531246856095330618851768873228924404201452945485085653976339517295850198616126387266208262022268946508291966748755105691040983406171250764849494596617182580131343736964557645516841517471406522369993125635343870073057514565324750484890243825611658943591981450401541951758849929767412695283120544402306920108208668994685304764285669359224346059339801276231351388185337186696847839635447888649957599881042380729001441027156132627011571820589194378268761221945063000533681648439170941255010430443495222006252396591576785586793578522278363067259884652635360355191096558389477698205047054569059559852079545341866838615216631004663748145926031863738009336400958274073801957540464581661167438625551252747658857738061317974668349516302247263045886949067663671962026388101544537991908584690107572978663622021668758561918848997685371007739554755357036499812076155772476224986812311977105504316869943717037251842952170756709764330307754806212731024640429359326065830456931613294347976374684949886044522807443548418525719252540951482958487934159675156998525671861665876091074280650907485448025566706167304281679620595530204573542490942055599126180506002690042666085009261415211127419863406726087932432696440583594341928878539824126147637338181240112277329214301317926525684789495536939506247795595165414897548573363276723462730790671862118943821196515990039732995791641345094841090708189410368049853120502032769603748720052738629558675280565146346460205255178882074598805583411398948410713286841329514274642925932455686516697680585432855829551007200825510559736740745466892846734392067416987506145357983138551993146435222456691724165901057955954086559000456792997480537563007076000536805075780093932890229367865089645839480050540450840076435178543194180767563880583090267601626948656214874616805241700291299426267353018272127872550307216317259799517822896205464121772277287846189093294349479298773963470923438355305738047448150319692178964809257292454804683078466793024132761113715764035173361480025906232533445387341316350823309774287959069300634979859946552778864874927833783014973981465204913239425022847657091774612848525453064960550827865219482045553244138316415586522557491401714097305861849808492735603435719828349844579563881545078921148997070711664918678358165390307513078730082420278999534606114540885866435346264687903609441444954853446532252800938338359406896803181516934846340002332171813678305724558426895125911916998311541230501917534662181081196199316474579185575049975175318679902550664714568585534307366678235442013617671843485035568362211012730547800807245178719227291233294123114159689206413307188654295482443292534049664455246866642309022225998574820855901149056237538755313848954384056097807541170362563753687633094059340666359636027630407894874236177031484876558319763643487724068290768668748866930342191767432108216453685685607495122186708952428331626999221442481529954761746870319448199851416096485472324396904150720052196574473374678679360956249443512769385734072338414539875185337437282660307398688037390294002672826894525635825489999119394384422821555262950416266757056902906312704541600349235566961053337810597981542831161634942836842041633262188223470152816610436753223488254499504252637510659101028081662920932048653014202444720572928417772827024131031301117821854701088101831994358462625137373222414883659045489927143714140472346948710749255549346608306707548516655050565236461656181547700576488968633724969536905097952323336926888272453829636323889356983217786862380439378144896492608657619858926948472945656013536542000421992554890965240074791053337437337054694549197278575126790713721127397359208223677745297937004113932310479699506973050936113418972628667288363734143848197459575317338192451479126493954982579267039564973660142863814456925529344176306812388804376109131053920930819998465072998978651169920139922123353503638203954105064329852311654024611559233484991283892724819156091301495140109811109271688808915508106449143166008559322350039475893616336516126140009467905912168343151312792283625233732615256541046463462552187420910209579924761885205614748959568037944521173151916028874282703870352004702794930424397556735486244696828184553468594164508698390377444562251568443642729543544405524040162405824180222825624837545644886680980086773147996939135892585524353219895118288119076432194142759343580051023376837454563754403258157289031898631793850520692447789319716850605555513230190724712329451243831623957779813255898554507931523514840726438472641068166444775931571450788141512571243853314250315044540785566063620336371063048651605976560554441368744001210158761936936647661327943204209120456677028580648329608420103489543825468393471628844241528037300341389274773902165341698633183353274004448335147210595568644798189852662775624135968299833983045891005467194626995759643529851212276350221057310641921227947723703044916897578158471345810664278279941937808014850330966176105347040383254535211036214826620767614876224573434954417645883501189062873926744738677561639752301778130153430004669363458182085845820806909151357968912120482765898544954110335902123999773311099459217833057356552599741901041043025535350581776652655374185957936784894555394678860055784211302189270868873591694654101341270958491994351219425000538460193857568265390172284612582147271903375635018478205867356827844223308513576015733342778931199802904690324739535482428680391483515552342000907722299163525742994301178671274072726293501253521867829295813376020000130083149747369672278740880184209005058767239880000729108116574753354299736024757534044326522666989785086238391959422483707848701161771117781830977689019757499310406089162670666020653386369798064233685262843778221299420614989669113865934628055402339992362759264893198658358693607062923416670777934213614374372216889338655451532022285121942318970255870400567942925687052586437334178214042308126841437545191395924676199787202313839543552896864033618199797679053474719091110508377628317612986993457802592569752224139775418917865118567950438186503086546176967346758356763460828115708736272530242630657756254682181432161757777489456701117990250378039229253618316072119886929512683351995942464958630350722986855628204069076818408474021716562894530657093731727782808679858592873263989105917918432722192992982337596005410254446270794263811555331702036567317184343395499939272643654668740296013470628420543037679087988149352567701833618400298427511387183062766805642715017753046422064624238463936380074331245607347105648258603624541373248665071373455790726559347868752772546099872904983228872913466724397357377454362482520436936733541902392948329194917917678206468230951924414683673192280033755037947362655205427523987664710271721317422960559785819562694102203098700215924831108979431285621123900650447536842341576222054010871606006977672487577631299342296546326751176133982313879114231301849589168591372886780232446180528251266699104255957209319307746306774372226517879404279211914515221841635496282281557325910715727104631819354806736050154593237276270847507403827067651220137118505785101333096262534162196090660368248283805940944882810104819668568115305797223265576839493812326413129139029503516724292732822218030031845092378572306393679768203481619366773646176659916604012575243191289338579139172061554534873461629396589755394378632797064965441147859136473737588752248386979323685577460772148472166836173497792045100009294015639805173418546010762576162650849527361433593520307753881190472622533600241733758168647335263832011575419779126303301916514080500292110403914869053245727890746343435941602849735677347194223870509231637815207355134142073976137281328368911915254629916619130582309529438014891046619751051376832615509772730964588142365823790748647011447029670091628635151839649024424217053433919685192737037841461550583398199604750554333367973559012412046091397487663383680066627922778640527630435753392820438873793164273407503358366193269223645548330595028111794203864993751323815849399851861058036982712915152895108262177908336927519615362652873118586504442638809260444489248214332894888608457074493547264957145643039512706967352702394305822661770420263606239840017353434598517012153815698501399762043774906996576444547597586838557159163895950856991531488159444842661914381915930381547499080679508972847297709442275103177327528423339425511294017952287515148471630464721998199802756801562689196833578839078289312397051947226747651752675710746059579212047661845104603454345558808336634840645876813542553897320898462774163074171730676813617110775989339455088474869285243276060819273058388933578609796316590916716469281354668646743094503311295341370221876444211007840245056693565359615652267717066981699298117331909104995142940627423940487493160341740800230572741231581273881705791576903433752822841527025138888248568089709898450297643373816968352528996876850559595187466513937326352666542002709880331264044314672970797664587675758781843447096805255409709626566178602294690694489342065954159832329312961641333354982185381684683146704068891203917623558553976382731494886039763776131936039559661616112846541832882409150925801648531257989624088831211904272675915707141737277511271605570746838483552358434150758144714683007849394058492955807359530003401109027147861346436437973107519606707450936179494663148832152467123394977531245410880849734572775303550105720389671831526751581683650394525554031802349192372394409895483139646048520741592305165124209389378751007839057174208302139907964996840236335620105191092848165753334906269760647406306656942774130748260665687011270219620495299376453774038023219379854685008978809507755520204934883087274828187460959060585788672454924044673115505177394927100704501442879442232817255936392623993283549524787877624391748143592551800267810347143102266876117358743962296269208528243490089807463613675054815892609312343636580327083752311487377376786576474591240994291965106859698367849848319824367145993052198596069835938798133436784379511819831880003301279755069469961931693697279680343471797509544984877876449949852874756163603362938701697696969507870873391499101854708921457874146721795471547422012335476895230214812195792105887492483283404239271801020983407425914796412456499889632908880834574509605191501423541341183637048103383389635729244227701393323896696972957622395348794263128611409659883978073804619532583650634806200484423305049460602220173327721058357672540181425320279444920114991471779273408275058747650031795377395900192000658165676713337568887593786351075093276306143973856644146085089804870128351403273977316201225825442022180184548517971838247331962659020146407282512619177638839105687381868117764963638932466564081445609358170325343623832882487815366161181595106805843796015618785233300747436922439388739819404911161375036519848084699113559716984959055244429170253417975958484503722260899910367256294520869436330043048147384957639023061145412441786422069980557100504087456704067301048654915571195065282758340569715427559880912853118557011387720843162779512933691992864721034855743721025787681484266337282276111604832450757108064524375160079245494825784762997346441625074027297051797415215245422998074519672859520641121313359693665538422555068388295908986006274102747233286541103712911326245667462324639804128504774849197002259021873481897835219311064449778744827927863585180302842934617910922431833903279662583126736253244172754004062922718098047006039821824833144660311359891603931791918421999497390263121495276527867524141766486155612729083994116569794809008850391118952161202305395650387289719269593143939495693086507970667486932303910759618471807965489120387688620771024881921617762933641111293617072631217484304534823047676023377690416058085901382442180710240406650122757634857602486077585611497876996536816190587148226619254698153992463313831563541220463974237633592790262322754173807164507260664035434615605044652158808234439232739830423339384249797939093114038895398294830910816456805094540365310472662495588920274345835338562636731677854436206975930740185276328020041027283590977946935380301936571205516891832846600372810734397947238014837347177929268747505898150884952839458780506267700269643864914309443316874257116198022880551340809382736919120505255202272893842328620249929628064934805955629475329713817967141010029537960852007875450382749970179979826112606009013589815625002157360541687585691391192692810734966653454013565488765845399913000630222602167750543782463933655103576080177029667216807702386956284226513365489634932524365550292217458565744863286662072605819301231830380393814755274411580064411015165263421565950140767501336908497855341915332193979641668750768879910422500605758280711785744460239711812723084173084331724068429354918825672879497626404260128454171626094533611895484226017210093865284440826189202840621867630338884825083570437838490505561737992402899777097716450563535281613203127177712194972887387507192354914357500928519835108490905404600326215822205729939206184048594867093173337477809201340775778799343354267922804226162376535006922177615398923107705157371386271364836032075529381837085696474264042202975308457570216578583533851726426705836548284146599358868624345382283294652815277144568040145204380129385958940705258421482712294417909892474602903935198749793679652462866696289310524208890654342209066402308970399667223192688978101380552088956408725153947224015106301437384241704154803492823004378440826610873237520678606779985204650620044795073951605261579107309974644343985243676249010085987612728795507410302192509691357370594086895130905730924839748412303034292409734809843349885442646415481636537047506538633391395355824520028018285808479814486042176898030534073759859390574317390648091182155214985737631957145633966277916160656757991614986711610925656792961007852426189836493176315866203508652281336985869370741535942171454905601510885982907494318697776445194966326372075356892592601422611858347997758062920468277555575494774848955516259901860462713044367960748424464857099805351780838648466284391921060686902701382209549057227727234942462611570420723715046278102798153315944577207364869537837405734387841080284844091476205333383519195127122726297346975061640517950473116988745795675677452968689884029895418057379696188359661707448704459640352639176171315181807624937169509725902669380162877198041502287297010052732438338141068613387306770181942664540274612206420545137737168258303032222271085660611232261045694320725156662591028838426808569379636915204739588145989163024518830213806249190401915435750644287522090202536712211892189913525178107832624220436231859545960993020570439819832520930628355210246364713589806155366746377945799487672595887521374647564193642834971075180373958951039224243288071453121017141938117548771294950505015046443374176069542220736599156148914388126618279264382228659027577923908866540061603758480993097387893662696750615682486047121569730199638239149329100885933185908468596767050279751613294312624548993666776929009201938198750782372834338907342088905080979145883213482098139796596294782608141436151237325063743404426146150110768882942645107695071641579113674254051709083236299150111894096011321249092863739882791724155277570931901110287132978552069307050463213240047373211902753327912846095869882085513620437150649232998064769198476557187073659913543880774446610122655534560101313394501491108105103211449287791681487989453957522639459557563319067782179500173962212591877428291742671479339060144613767803206744463176573795545185188631124770558189436286758208188735937233562522515840114367220400056398646019974300025965395773828367667066367899389146653923714197598336262785694248461094528356743751640725843046250507477561113467467441871022372898801097894403383198013420077838989803622871110894448688556074878868713890264344404285405659664903027381869057228202891121224767067550805297638821937260251481587778040817085899222352075748868910814418043474002442862342531827300364338511351673318147473167332366870246379851644259275204077707138633174298108807645754751724069985506875311779491814979953073156859465085310825491837153476740721554587104106610804129031482837085101857027298216548367201016855715342297184072502836854250920925559161529578548672579133151705940823754537489126950514437876823565231297398645659684772776376688719640083733755497709873892021630255831583033458939853698693887204433972007432086742691928106399176036499214961298659958705931074974284221907418874579654898443417067893686307386833402142241836254028311568968124245714417326486707508947937023887000107961420896574717611555072871966504322957730197276196754070398435067174321422263589661269316400970044026864298881385453442652988326218574904455030433374112157109567771511787272630667494579733985049920640577074158908701301471562937944746639768335354136049552436376734107184449208109035917521861754835330265961841368759880384522159850612294687289482265435110901210646256806477778426001535941489253314250756718556905631934643640293574454498751991719732403617920544877037163947410477923830804672113332985147429348913122033150767993815377129948059932396105626875784240318701986066837389639556198114881873788065870027406393497337558074360321204797212955560457538213462379583685872020543512733072802417558935320126740368442172469908125338371339220848943198871010457511892633795537038305257371640898588624068000840309584982477624412464903239794293719812013830431361658531797558448239221161989841522038500529880428573152498935916526843732225902909317618620450452027695854064548764826770386312267754086784068015743669862994869274864458572268153056824187596043634925150922792766558423176205022255003461319792555961854047565581532047089025262565417122729617004697933919489366092933302930870631146038338740140844286957771492124831595918553947961572483274364985926902179322368263971403970906572194382885770966319807241903293923792995705965827198616754282869949893749129207684799578780252325512813645004383865002880147561403892821283212707950762657436866421002808344671785813943226484672810652179762468193024685078701345949779231477327914114694986371686533414268598649007123249086350154385873611483901899498909407210021412883402519798607954156522062611292318711887745888056470021564338156206363693588644323973732405053435465971294012981176758342969154200773271815438841417902507644788904406543223771618779741551044426995277219020776948850720573692793904545892312176725822664638167515348510262459154900357027794511521457324805653617701394569324631121024085664625381217120461114548243949707255904737955031971333219412974416300873121349579398421959304792519434763120609062430599901989819028809103036983915956995390438170457652653374980448381274029866506616243492673920595315195166465162476540885337493854879717139111182277068015565923192965935067989581031850108641798466782822775806913378587222924455839336023789507176355462722593183408901402055150192387503357075458603885341428062065786581981551820856009287823907054102936965655640012122098452633359464813711364896155279772273982577047906097490817295020254136465488994875302701530662164158884920333711772180077473935638969063374123252621304408060162052758536377336456705802068106673637739743010769493267338176947710136440777470340815679828953079454179428347593734224100703002603599745840973775685667955766221076183450386429015977894174619696842006395641094800094190260962989370421260018125881537856198667156168954657209598370261460742963793983969102421898207154066752286836047762266166981274574737431804928597961847275937950129366285617918965234583392474528592715021785742231502042101961444367147953411970505201947167365238048068767898071278331364961407864970007128812486667198490550107045831113364871610007532538908208661975797695326630761207477709789650770824082083041523011936122473545195639978573047704200158865390736755634475759996864951582602448893089247309424449481461296828760484791149824168900125287977526856034372056785419829917232071228918664741826134473275956438602097518675827732000714744453795358718922448130055114005012047026782039891890162843912658135949428104829351622298629535207369192022242115073016362439449553912255320239433321091209446039416108914049720468367390227892461226913712825660693229071033111810408778937995486461134188219819670673979707984273698761195244625843379999792369264167320654367864807743741203037945290367575606839964263299293648632224315241932393202459616845515239452603608560660738247419359272502937574484478128429153986780291348902669358801187924496015846277538770202722480377435023916457734168095054236956752479674344534242558427425233170929442541581014367221252554654395193673496268005708112641927654162915403257123445812504982142280396223276981840981473191573599559263690359346074878885023003249904568122490517468649469303755743985815010908043440970502672841899221727534872826131663665359519943378434271256360881089424125083919556799185131342220459514883344427157342886867098664355234239347643306283663929849227908373042083158602499925089098357811282118690400935852391407186997538195955296307557001786614660880792392175712956012772676850897686318228904537271931211998019535333959796890124444548374630088307255125329944572060831444848116494168478247278478504502166732959329169097350747350559188137777403583249075406664548199307802934722794849505135154823496878982989329654638988464308331130175052567081977267231545143321679789440716418349153218247478591402873704255981851004627027332305556870530967341986509361774632050097099781172677214947563477085350381982771881059306255864204375236600777410508433635919923752726021887359568105022327679379286534874275309637230893292590188110474970131288875110717499178768955566361028019539114070292457506088976444871577471219067340439903011598113129106921127731787143041859227421156933908313840160102830022265069481654400794821020461953175337010049808968795948378400710819328203731072269606704135924219640807315792671371485085691824140994540245674767042319925649787783176277518544040432265169406446143083781020385410144243102288444401143452137095109012698066951350987459685437138197547841365674920499714525359915191366549439228839726472667011979581058944599930400256007137723469938356709851890048083609934308338390375095646903667430533936641418311253328478495277842899802478436549261834988245125994466189214436675186119322725588033170869535825171104060211344324140406270090308672194686627275553123631136673594379716151255087199591154992299468876771294308608441040280442436271636551198298718013705410946754501461256617353730367688105507769248557904989554396053346707928455951005483094754832347350590819712576765615308219011901646389111887329453651096541620140966106912076602537329836560451853345204623503903816607682222371102961997322478131029711095578300536720366581905408502649176695294369078031443570913678113677380210936452283560593081171578553019830216255631885160942118755765838274253714274632570791189852952143462299507064754555141859844937594885201883213110238202057310670098219464477046921329797609467562077225770754086632755000132150104938279166159036783267226682339397103080088576773976245849786207131955349269002645478195972923316606130115043379960777348749493748088830898083368544134167206336808328076327758935485633925119167255473092007253095053536578473264224944887710270244321614507582391712816221919201554050482563939992004846528635347517012180132347592435947072792550169637766536814098161561403396033343336826261724884357594376713441933793590110763010426311367602410038950913377291139261043163708221618150679066983496406426672477074253983630466051917543506346944960664018402223292504470590718520724034334625715492372603320483504358522554986653291139266793423413643640374546388677171584906648747305383490238121047425438339259058443588259344319768840024702101680526428941398777002768128291534648198960695748205892804498912186827077056410080042637524610415800783492545753579682846047417876493690190357610087897802778584703969811174515688480648170532490137570407100147948402429973086596183031434583670175705262085751111153975059231861576257916500705156652596787934509551711464257722809182161583727114902802524339666883741237176746527887752363504950594678765956757198677051908184137091084656041033356368914954725076714520091864690027279556365516514540132223236746728539638798502000824444666436375271218618187365611337573877730758339113248406766910092024256476764527306045601549841279920779880759873253067527616196503895904109580663173258445562001656881182674133092865787608065645464056670026785608668404871813612052841119578486122356400137203793508733277847674823282017544741088785048710490395966242047649282295571530526242884793532558422165019142167824615129323103556864229584661326295044688609809125406242626551240198770378171189410436507865932838431373376019463156687524537914152114190788589552260237044085685230316557251199022265671446716531081960618457755860895739646656124201176415458912148019245117988987440587355089781424454209332730074364364228560999118201356804789223440545215039656413887558077915396543250873596063519335337553824788397913613715511850779573859918659080540480865239496138665126755322411755216095602916254209006420469341671633791271444079279487199208758262282454569518582271148091209626651222449021151191194224859146505993598554934923153123951432652886958609117849741732968490744233453310597274382902658002806244090378739442431642502890083433171469413572971237871577180337277461337947477297151722468574537668128559900492470274973865723781200460329305870070139011892156898794863893969420946845683808737130618948292551630165045008581279640398418359264854764652942786060477764546227278805904761373905917213580251368367347006298325061562349622725446860277029159594637150885514313769114622700018405983082569087674444615231685941768118398218065638556958224594718507874300275310983700459120247034005648214020873783752405260421902815320129086375457019456242729362278159181579955737690623348694912813827675273831861297854926383430088558217716407817290365372780693344181517923364143044445252977890966779574471250376044423612187498653888803932159816951255676867942182407048792098620591000748447190641331684569181891503569738271669348329392646084385714306266965284218440088443225451728235073333700042920058054579150087926107122766394673611925093136386316900392438242911216731491539712077405292541469338906943663015600535364717524295245167838337250335066027145172811493118417004162911062033343849040422331019948367820561854775649238107228624829101514916206414513754715915153122124910889546005321705955522048643676517092011837829184635586353046085445405253391460452649051283519490026498416097527944072254506630444581577358594715470853610780579760635121490677091572008782302688175799762998199652032608602174629614591146372739491301767741848151719364450072410547448617201429681932536017038351973315473708782204584757565874668581273153251242585798524555758101082843190176506995225300143036186564497856654910515460171374637824139763908751128807873020423112868366895675340677882794111599817356210578120870761343683583526172060236841249370206982345298285428630141606436152533799778410535851667950142403757189946274309776781295037837445071194388665211813750466794403498199180986658113979766656264086268908022361792432349055503455918047303250152486799038505355288682055264977987838296516040494944749631108819268407554938824260767592608285800092603580611163103697190740304624698576583608645976158830482180832411533202393146108889139687533348651667313295541633253521091773468056841002639206837957457046283199391603243440776147570086813187642801304117351789743612432174612996400913571034559826972438858050355411200658768672180613153678971461025247742591456648188723829171832903228317030586238162962107855256606523107599969476552995258132270392750687690778323717465669857009653145624694980260983051453707351491743278765694740187492014896508162235452489991182109584927463433776873300828397995370389665559469651240874221291528404259395886305041134538098502208023392873247102105388054153926713305921832233736063400250636871269345456934018277139077355407469849202315266646717245239701817223115280839956288302435266638384915917534583522936306288431025062920309101819255704905392213708065943973896978931764028353860441716352227059765398077063415050813528584240078487458384168727053673919387332037427207088798173963761607688484901512470340707001477935806814859340363830517775863653947332493931824124373486009188050446838425772194379270140550624120728726546243068883235163266737318070741123055215331962848344026207999375781894530772045125473576828603908435428621742802680209862469420899296469649070146260045812784427049720266095846474233226391120469295288855414980907941981180321618462453149792250606725662132129421878501696342973635211121054590395617258534252813777423959251752643064516044938650826841062620806108368444345151547188436771876800412936658769073000111597062619616100268178043848004953102807036543986438717624761865167260395138508138541289801541292811348518578292885087594952720599923307118880067186097767599794812962760014420190683866258566410848696653788533374364739624690704435224272558287354110388629748937284713343512443222910814280199743164786498410102942196073909427176051263857550932826565954433872295522345506030979516847174626916915014376917410730008347746368942475779827274879477612875504039365780510154900311867584823792501312434445416062670618397709978382192207815699768479251100493243766667700695761530362998616241574058342126288808418755284634628517524122939066486069877466624542860990151503462530293020060652081154985742506707004792139518703280289902294765624296398902399396842483805999343344468932855697923233469014019911109610949674505291736600577829294801995788648183719753843348467603083005438388871858034656003827992565652613890248292056759729152855567203805454664167084423998769948898873239402435581286983338809834631313813973461132386306758729588150666048578660100660242819656267764028614266204850856140777584573203474139349982562581621153435854700991955906443481608114454076464551475020923448056078336811584962262904697435042144861039818704568832101780151943216210623982677561156650591341076072807900631094303510420451383526239709966948468217299241629212883074288987873556193288015435945776774216573953860148601032739603681574569103737329720242551125080401473799260769645867330393078669504619504493039241360204273747827588965511205750339772963392005410253611186079053742089295770669890230134887642567471757806269605882750046400986524544814802418825229512265115075958213117310559781483072951985148119796547285633308398836693778904815268146566958957628363060870152923540984313684918611074177654586499765091390307413403048252589880999344719155861365409720946920374701780537537413152044957647055165580126253330631447931972259155897086546210863227314098660973188772343943215176654514177803056438371945552649654615697181393380760246403351136118286002755183464186855078486004113890678513414258553555676263774459763471938980829943425758195004230669089674662728485908100739982809475378037853469047492749517264660200855326640742882817698591338999582175828774386944475986250176542655328519484571073128514090308729355343522668258380283734210401808532771786071112618887014538362828476110825696602976233369143597709168170259142277589980915121977474087040296994664977906404405540393419970816009132484626832934392355539637045148406202418859947474015917072557314890787594464086611765067646666271861860601692751015337043904662405395099450343944494313100768210446721759359474996962596801728352544956828780538185145122556354006340258400808997836239732806627306294775209517539170580526265936323611414570788989429471861518949476212151168014455971722050449928503078719026168986661744088347320883075692431157053515181584448771995083917896909145476810932571153847243995191592757543633567642443777716257519969416990178371959925245347215881996336401853988449460503645251215075922947183145967119827071882720038596383955478003908768023930858467195176875368314260644205505136417862050914140964189119656927292698803909981797415357561911053698048292826946560077077506235890883038460824236106773572824693701411134400561292303939242390741919910979937388703075099623085869280391554075431101490785502743846591116438674106564399574810303926884166069443522380162570803210810873266218325958204187867621885379893688998272685228494611766603892182854125661459539903471846311317337633858556228886557975814519205618913882570053177137972825245684244708646260405978964771046709148467899890137686846954332109264238758034890642047765662395743341801114746858336849219639977495741046498306976328235478187062487339203421128370010478725044615261117392947842579156663326601451979368293072625952907786699200132501598555636602961938483592741672234141592674192912932983181793233295448379903700913985462795282532145275928481927290126350770883947704687172786657413744996316754239008263903099970424799653103610752286229911364637083217048622642629720442424094152073067683609300240663093694406661334104827706184209903901200511804264130247508310009874112796297442910736476027215360084440466592518517036683992300328639221628571044646141538023420850439610464679306063022023363563091382396027847005047192642324025465847205369662886511921694465177400422615344295189427541735951849602786793698575938262505668438164098207258414324724241540125196680861282947378350226063101519242575848840494709264516821117955997533587469363160301302960992578002369234435622653533915055374459422930345076071432461725963546754730071271807645590759423989059291043798430645493342873649263756772581156378126287341138558757588558114092128595722370547904028378579944080502125760879116866089820644388362305248968691514280968851927541123074559933183042624731979718205360159485965634072643149635526785900428398856424251264836339104850505625276794854484686436958268596293057443672580969078836995661782579359794375787428514353501917765858543826087483482792700762311624492402029850152856889179551599985269519388774424009344146244741714370252167039122091442945522610499541079268658483890949811841511518265681216672486726094854819633829522142069186098752426800384256730737750884726231201356426119795131851055466260556518918814704905360457960476033248870687556311732274246364784837796986914335240114500483993573565740817809742561592447870828842295356449484358525294588588642237922878557324468312075189958085015518124116131851288911104013404934096505175852744752713306901157709026360153169247562783628146483437714730507315318647683473815160042558156040141971929069732240634177571516945735609941641471111593823864221898090543928372651993028181479292426700777567034368490543777198516311718705154380792750292728729273480443837609739126902605072843381725946906058921822676288230260436807205350704193041017628439466675122308726767510531084821657142372212527356963880763289777988563014112989461123917122056072818881735863210941379602951200806629900035545070714974088169975239594956024176750642217946841691612219761668007581403399390037376987109385638155832868964197083374343678797184711586502613836570106924679100095811305111830507467651795759120236221826248837404627454914754421449811218576903150591110319903808294050109220023113030244292061523554954681014749068270423894990011061506520117933957594354229157984689134598138402103667030961369605413717480051961289544527905174455895321425112549436563962331658545208084573697974493783093298706736690779801509930024957900845582358949645409469679804197155931491191201394691978109371089785302583582535728810623869802477062997335780094570735952188228850974698133833909654685916313624964970974339520357521962397218013270555727253336290225855417263805209877310326402647069274388565090733685623376363470332361582781097373932799791343726758793396234620765925389474210902701019969138094911062374374491977892475164715861677938126001252867928323145903434098528337340705335362068413246770320636591619854032466621647406376639150702807663850829243662751363648363898105675567045616169218580880360433791548930150164775230252009158115961168899913214187172701286081329688761704512487982260117217109752779360951468418783989922529362134190344647232465745485590776426753216618364323886122396314893543774370970435003509477169688419105535972520000442046223568921590052353204455026084277320125390680388182397029031258776685058432499854827766856074822938961521767857323750194977705436656129418147906161988315691884583501829661421009574005381975494847722273668097437663693805266713937671244969943712483982420320228707427571113351619841215992956745669941620136766368464914952488028370402199286872997403701298516096242627027488496410918147882379467929503316967048456925767930243628534690527358176966584215457204309714946240288858849416810846018620155594684516081134726264761075538440337012892676045773380444658268205069767694865550012476639244509841343504271272250565352411272043289693585098618496257949569557972677466488388582416643535767255536872434389168974907364449628656535714511180648929231486651411625739965601785505762931164597224791599761287401652313658766311319183616321395781741133659144229765949960603125238069169545652561743083755716943294066631729273739242843057576373546013864665169266690147223723221392113492736690230136729327677821798284995387200283393841901692921779964417173922726803648761013827721528199627037889413634294532932493445393410738062903416415864847003222684986358772450884814294223159977950366928054757579464199241207432615754942003739763631875481007949432834316124041573218986006185914174041699770813071615495803708605701578753592048372041132741265302621806891729709363703377487283859200652076952145409553461574933115851838838628996087919797202518758926572620704019294666979100938951799192679143190826222776529454918656598519700366590977789439134228685365916558434381922380120835787539852545241486151362973303277458681515246535330545675450356924365239828212712197816678012046045158225860348347860305844038803755448135952975029585189441741325712713719066689521306548468046014411704029708661074891811592616399208509776472376471323870448318870927342533333614321281992090461226675861231821785952500895606874904622656958842222800954245716958558009036162954374570280904662224118901209261305954311537069417412059561150044332790137310888156085682471341675673671062499234819184735003091167023154170354682675721395896361486573563658029222410555576484129745816761170661256735369997730921030357663441446557943171589785081985810259274156947516403603058626689687205445442732925328693367968618046609252735221016841443070069696917551798597114833893992938118973203135321309172433403439204477224305565930921947568003612903595394136046248285845724030314140601898788165045981983676749801723184452756572015156005021101255387369115441538258665625011909500427164520254222633811267895650939059442095399906713479065129124648398822708549918082195538996820953111355750458327047276598777825534089354604494511691480831190003829644458725340140690343411048175589042040078271671412044014703413403827247725720701746783132168686412147753826380265711962046001830818871695977545354400355593146646001897285884976012234204147912427634352490508493070822683690199139284920362849889865775959577579422042579151169114430152166394193486547959528473337972788800489401634826828196886148716969531443448820368720154073001433487076888857727716032006316893234412214729165935669161154186076072898679669633531941584085213485466904304339134164623653777443236923765308106990631594866646561750380133665651284952456507741721139958191418692723518221207685087244206832932584291433881758290827152175800358857975163610856206720672382813490271059810495303328242235045011079779237310130645455848526870113935599480614691652339055541542986389191071251716351372724568875606406198028113104663255925156419385075645968723128409728747972998083594510524239334295397114507740724998797328218581940423580906396393486679941219209311995214995292891397305968178207734807963827837228904521614213929514718067263853207878749517525554109645328677647129514824909637140010372147783872644208331320233277160468936908620074374943062656265079254244685555274444778661437626366649980312847729403732215927262853607167317181584936032816210291961797308210240236443988171761637754618571380467599465138025224409404028641745334366214974748743721814711886671817917976171408984711981887122447602497505021938597217853485113683850753794560205107893608410364605013595139516738150002511617152887955348187544391273278169108192506365467797498572197242744383631854031990669335441043604331353584350523293615698832194731156913005241914809336723160923572763138913097314786973110739233415808714519654139237267272791870150390525402992117478328331950321361621049355468852421297430389496273284897689471055392944221441992395255264131753448903551641647728160162208391586787145876938463625898658967488757444008348265810843558192665413798883798763251711190266986782265446061702197110932279237810148364279313074149384061222545808902878842794950727308560043377448032186451280926414698487244983158978137730712463734522746135246073402020407083129288777616921198142383352318845302253887892409317616644733267364136246601129905455521022760050459603224818362047109684615924987752873551457683266482286133169155733724213782964640319384354931024887210026477626461672345835407020602889071682806829088698937355338810950915398604522589567780270505277597514459652923070293624868786062711376401527116257630264991724734814524336376579256401742330079627218443899461173741951841878979464221655236203333858277657206881316939041106828084221028058456384265584513580871354084876043235040453312249945821490480419893785048228695916103088724915734814762292060343348770009876764655624696133344445685325787601657397426757354947688048879440372453207748798275323855145464938724612683624299540494914872587221751933105582787490607702139014079049153692422763816414095369112749631816198630194322128543757624176583431254860887612486215275571517965416105119699178100541824514418776796187972931718871470816990711330517514080891685568731226788169673548903391694051420993461288086890744439834053650745450977150353946870412499240668991556227340454036329166346534860498829972051377553158053820115073379921376986873701053712819375516397563286273973832868109048560964635341112296032878337163318622254643537172584805088250074504985985168520133846601200242826763569515732594212480837957540890221200024168090476944841121117028882867776581533132176434977510729895073971970585405509723897447596178627043183569339091725767998441012431411962851162800670540285004902803907851742562102216721358916376392901386872535140801349088269805351533194716830397852975924585206482735984890794058348611462562095749574409055816392379074419170064902909994816512594350063540698267523581300999023926697352705983398958501422204077328006303774397695687132614386311795439862325339354517588499217733030082337402466621361823674973861783049397806506375877698018580641711920669973441485646600922958647594637884034530848288208510870845349422959694443712690627990372215493642853173437233350267421541924932934082440518648935092102912332028975722071181983616166515875005606071483904196339103707913823905296017545426730739648250970484186759017187684313087499158243625556846472770412625881778874052236813131292293541806040509750346181894225300600035333449897088040597646081287586017580254737856182115668539977699980219712606655725458837692724925267417217194808474891568681387308903754601947409467280903060250549849957371160186101415242787601754162140231738167075469097358160911035962939713652197995802980999760414017742355018000539577793944178495821966199617835440990104900503571469020544190534901235083932745500795994564380588783297363280734587646655475857805463362694034886101260601491146721235311152289025533498398153758037825204188457359728667018641556385331641049513944984202487557850655228539216725238227439117568954238358275888511838913455311805822966907294947062047089404968286988278301574161607549046540374919895357275082795120872256819201928633647947773993203403834191506455916950660554101029776903567144934385778688411823595507802005452258610585879930712141732923958386190041079052628256869874532087832509708674164983883419052283021018435432584852740837417600432211871528871840677043879656779110782160496517236174668896392733780673566769901341996030157178851691815089242642766077865551924176040791602958110386026999956840282626365668539689474669305094491204351485011262360404599712522091145019195954164023916518392767388627248832848787010403832428286575587376547041607449667071697905760965896310537845938236812663418278769570235503320121941535789203992999628834402610467175622466119243471577814857026784643278539380827603137690762268899892670929531559436037843499618572006970510626498674862738856261433662689125498127226036726531444238600851571902095253680157064966278032001363273110506673839003868837163188940869010551311005552331514519010732789493571991857292791578822070072830013406991851070462468749582779297588889223718438630481202978643481840774595769702645909770439932925182590124580268383824036518049555879913673307198388959050638332129402743357793984445485739760594009969444299723919112460073361978726068147034440205776796676888973655347688984766973541503177486905140427272760549343299940343780190089310760450578425678131192504796405994701933523413732622538874537300464803314380782911297322426829869520271915942781643848294357012344114325515155243460873997477301015927140486570779593669005718410007035160344205570226232110658478154660519738835595225223878787710830016231712331520603970828101606710642517973189567691589329804992201117915432214974751265973852520108869707162321564029833730379605269639440325795657912830612171249117632702260432006815938482743474783474179854831331258874079150653223801600198600110427017814642290914363168681236875077396941935429445368083307269510942154599286299690593709821438219235228343547822199357729873321503113575923152636034113906657427562515703738214833182675735891166237939689121107136676983020645402311810727055809145170169408468257501056828490373229477753048624886148425882720542719739565415939929995294788832346646151254242189531122141750556843504316940041762223849315017110304865017263636047745430349247489195087327378919220248439539594893563425957201950306133956051867899730421463739971636192451717765928248508139637840983566599205432119884927174127689388334358684829241687387257995211392042781261809829814289754590679388408370012192395205046954909908415703618493958914361812370142869212294811369121819829733267238706169190863831466386592478958095148505527821251080466311576919919345137439928853850849327043700471369770283017358641863086208433017272274542245148826482132801301336208923031962869972981203067369070211948877983405409763386527358237620242445176046340194353083815830743698708451363930807744928707022461537258392521232699356863636030689366489098116961874142122791265562998639701875522027422926809897197231872318735296556243391443693415511656534849546432115232282636028366801524636255739058478608818316873296878109573660959720580421377188811365385912798747570654962548020515862431194229936714364940818991384216829421202924247817220638355958735616625700041610292453927124583866858401605060978751101581170479753739773998342932349387146705907607099441120452865806358569312228848158479811406110488944494705745123404147888666797251879902042431423335830089777497840247623270995964475206623084452609296438627569385825668894718575622445711273715054940502018756249125763778788956125069411677617114885855921373513630424134001611746660516338686479849344064661003661167554873105035286596751769771696892978697376580924148482101928736463324382339394212136087559818561215171772047176768423918926431198936102650459825835604637730074224102145037583010202626194076292919939638996299051241760462704785410438059635151780749683312187442468015886107543691254416006917159123987402912980225776579624141241016611362683467777868106490964681117252543569013235223020349775799800646469992439164722194685040518633684552106567224595374899699628859050985604602955035650841484557060668061029031382771581122354294902672172435141081127817453628945366163749508056217307275728339795537449553554872899593948162221734658457264843311733429231696948457777242525820639791549931553490080444370639121064611410052773314111924769685099793691866386502860123236520651792971904843969058497363807344455176888030219596663300461175820513084198515522713877275941005934749414271856630895895002195886168889282916274993820897831888437906126439811594645885143884198940895174182526221345852171081353872848496577120574903834877841957087675073988616497983090679584293186518816606178882140945192036505625930713141024809938586518002297623565044302970106386397251172765957379253970537249041564665946424277648926015424244546057023522888877959610591876273723671611454488270329449725741061418142899778707549558217480275669505339343726358486362944820696174728805665065626110140417116568741166264636435627932561072114405531584874595824030611746300841893533161491341564821814525478799880655768624983667623569924255542404454832003298850270940246722264441428430142711381064158867795834712936902882109586978489174008845166561477629665062658669082548496106028054468015651995994144905486491966396899845340642657976638662247220818522985754793999401612625514238780470861185069516341462441426210395661707878645979133996159295561530303826560472502521169019062404880302678170592457329353543996103987952181447084656352526049150715433278098966940354063305766796015602831614573345516244795522064543534110650943643114541379283606071997780321416160451382917678523909182617842270812528168871736818125692486877509529958513190951196717594752458804265051083117017441285304693693173064118160241507576052060196160868804423387342823405731635396510938299805677318268768624560296449149014042947510922370633987781562123637641459939895385963085062867594616509277162789054048464511540629312141960366255277030778171668793308296421633582878220585440207516271526572545873486246215531807367216634822184463948667709488135828453930445091075789582251589617269007221831640082093242912867246040756248138096805898644098669204247850296738858971501581988132011225557595045219995464027640643622946105027273637938037722705659634684111103658040578743653291345918365604232650483336588901389266119278104127783826834646963433099009612003152832354233258196680255914156795885068742671346527876251674139274989469741673621021105311773825548815711404168267009072117214979266067083626208376465197292546618544503450837992857049556976830299432266042601566167074888893940899055942132652705079568610073865424769241364461145869397780394114504947327482514276356000334492853163430338062701363780563631895718734300878626583973307340098296374013246779331776698979750628127748062770903351865203966587745699443401045786351946146606443320131972047182022029813507109061316169389654421610177037466312624279165425821258984628718642942573180831940604851883808107395714722752605048659307212067483326463035005722184272956037577408430008916692240507444546462615626109447381721291439759372619505871664033260830602464453177164589431717935228704674587011785400655163408078603274150367032789274164898091446450983977531056342742018086230096141432816109666568504091880259033871459689690162693258240894912425743105791545770738269595263081434380468710406232533675935781559937018239786899614293363206534476171189627336070492084880372949386384374573916080984117266563334802393371362092205188409755584426400904578791239535705541699749643881768734643325205711834502925948911037181307723821900618824328913602578321432888236164458964558710376297826073979564958518412201091508399516360504111624953148427272532658314885129913121576729024957602812922388805220248370040351711213759449554667442747128049177896281585732908453817122095803057113687671291016755248337441764092168038646380646759037196914862344707697937825518337576027388296907307749592423810883075898705307038195117517040063594472964840684929396726673603969743913454463916975770980056471866450680057714958775802174856668996368756998770667791983735873007602793321011359396315737720016906148196512200473250842248461582823713840216065286071991604261626142097824272730824741052762997789416947250196135549867018340089478482912684088187088721561819318135527638270171874850605940908101324777001697637372622027094655343650718044155104658606783240797917260780850903716769423674868816291439954273004277766956527546022347171828897850626918719489205249881928106811658799531932490389385796955605765024939794400587529106657161808146117047203096173289768397976582102139572379033493985784012542559467090047366846108996037769619242444344203147819487562405395170534165623566436687606925503858357313357812843930108513171727507111669420213493986665428138356749196399888274113395277607975705258462734011971653395650958287467472086454865619974792903368159783360754022319368151686973155900683273277167544924717862709525901258945591796451360079547073834157526433471092860327090630156423102011793928568389346713001751603264346383135046075533291234458676593414818655934141552972091864282575388643519286853921146537863916226829523376490030918105811328299093879054407531455954341284192879648597883839049965545962624121832451624806144102464699657619007633242753904037039658451126468110233233765547850322864870404131419242485929488431976031278563030360305735779659223262434505999970327608229326392766203903538055786424223383107180123944043870917000412430038738513180494064258489181130959132605991455424568003751628597173806018096113028338720491523208679955534836043376108973539808158307999750213723733259733800050266272803337116016791617573699351363591568553365628103414857252625864349911434273096369958719623861007096506329640461607168390046261165718758779903110872031373971977227068840641123736889379337336397258984411643070668551285514455466395328008429209612385660874064664149970460172920669946455801398115149030314524031880254339846262072060428254565999352522464029425183770177882205998007513196100455513644772842965809363052218128977755547175999549449916685648142087347043435335344249436499001215186720098482260693033723009286926314507056648667226108301975343463116823788594068424467290308079937334576987848203964406499766932035304813966738137694692332794228778770075936313463261871812234869542961829773370242383760266007017649385701733514287124185663016601433617822533500993576799342147762928408887949934376561513740655387560442491213038525566351523065564122143211306019936034939176670983156163597254749530623798839748885043286865705213596809893491464675100041566807256529454889754255964207751614808473548253349476919619882859194114757277914671148417274505390439069356871444877265452205957208196047450827231775307002516509698344898818742575101669465638035991018867530626262876492814296392612066973588059204293157902714734272265996637462975369948255285398896327257186084835215154485949074693257820205938458662210862172474114326893974977189885603917841066608269744875969489771675463077665017310941213563284653193630670522740816502657383881365680089039392663256188586178199369477603031720045910412898755824972430833684406241277741628323046483712084248968091433982535353631630557508616683761358775320052181580635800486874396954916837106470146016592888223689236392654318818396845146363279015673045076317777603484310895363562619896008668431681495781532765140583211800746454080811779442568174676918719743731259906988747637765735351681027519050456068176820974719904821909755090989423003874387445449899050018767730394555196485836952199981610502806040489397869873421270414103772688690238368725433627445582765027572194427282152212607818460262602388476987372788505088358155520975021083657312608743351947890863286097347222781761469020118812996283923232576338445232820348145349745216892747714881610906451990723965721575241495595567016876315653552879364073492194897655330059572662857289270273393217703820800836420748279025314091871373821662798226777128445205806777924945190701149695995134254144057137870673381129226371901923009619868602541174416063850304162532629181053059049793885032616936474306455633999582969696521058182843045436170535697130521048987079443117914127426361623262826578351480862505483479189749778747124957337170146700864152019811125052849450941861675035509003844181833621666215113818923363156164563207427091261077638518544016787526100834794816885030519105903117004897982261345960999181575663615372615854058821846553978465662555426636009639912857656180695572349519059229304581440924442787643417773982607501525276747997112976935908103773281806128992960401101424884347884871559828566938717833149042847218593141243690649558370988167193563020228736785164162123317377268389000373345641037946413687127723969541314276400897287445361876547656466067279841299570083865627207704227151610538475753132986065691418071960628166848904951387227282440740108380430679627622428072341555795519471033131117893686935832864530941887639737219565283316494360653965357768694499040399417997461517647921306678720105547138391695499326065354887648737153509346409409921278857076065650229827439988622390686109418311590801642774260089069468383133992506620248604874293978126870436457143065485508056318358473424951881782488244629206957971976288574152960213366702907161685602172433499643491229945183849076312179043350252453114077926783056627461945029161995906754891787390879046135653625752486996943013060786854541161320216601365309155817025938661197132763132456316646820717985751056114271425461184542688055460208594001474604864159193661321936599130640919180822392066409958924781004395750154197337653267289160611234875636495682935833572747596720650463863546563480596767321707890217637757367487440014540866479439894418790430371117135357490081424507824475676490368751746254614428600292360155495103772533879204179314287369224970153061172938415408703343239555892580897305814376984403655603411881915416415990170188761717289391609937733455408500349464444967846220877598811916642028384714977331123366463807518650345004650515489803450131058885373594344948747208589631324394649472330133971585839552155368376260072200554507704281876879378626570683943554315886504020013737998404257976795218125630258875952943158984637608684559640753835648030082867239845648502882481469636061469611080561181807982338984757346539989693558392669509697266546554454403571046730815195504975488966000975603640546213342133604406896566367587233182168161510020472614770032918739719697383642894730800941000803489686713600857029472555266101816021221739688561239061788535233831797935408380199581888214293511561888941660135895409507796045384994661519125236983301141064659354254178670008444889070986596676962802924978992933765823857954397058177846882280726413968691905589510456942268913109396978727398067147568342753441414499320137556239917132534408899355859675904556502016824441206995261782339399428107651871449297078670710025017329927928811862138744397177907850385560278137454657769545967911095526670019833350064292481743858414608166454243387531667895721853792701441512727501735042325713881214402057250630578917937377777603855815580103499740001353360055270112010799055457030208694505175936534964468238196821141454921000909869497581275585406284873096687576634705831875912212190364372484707963358463723583753854657420157261036285791698684385826765619908178140858454898668020250162658038205415660917051798950765049949011949277077152031634160138344623413736847105215970808940196371773059609507068742426702524300798628640150161352198577385916213864237527644769078814645386462005994336000985790292652839284804858475379115882454976036694321559778560546127943848615109625570903220857275231253190333361307851723967117137525995495204044810920976912921242460733054849631176260447434162680145997520925984249468332993789451863653648765929592397368075971039531255522654390505421236298833607623270257188980614920600392055904915127411929591950890994847955627134504248406456826900457363242646554837770191962505932970516251393551369433955811717550457955931294158460895781405865705464795208024632568970405996734555461354595583559796069934217029036338724201929126575234880649869620818608819515854497190280457227410786038398043618837590153698193082881695790154062403624017374577675183612204170963107322990890582598131694231357984057838507050677191665503079288055119622748481022320469322431616954557299488787689605665208080358131101566487233209677358409657387405673173524432424723951429959361301133407215286870991956448911494281015953359340152721183140070492557364739362581710572333633151553471759392312502581473224722196314686127577995945417299873537833062324393954408009979123396097788568300499817032708492598257662070232027066832438214183987986179090719794989865983252746710168888984961324825752634358841874394116263356091858942262860854863438194527008824411448514928929935769034061267442265999624467750277999056490267208681377861720181625711075003993465589455187851450611250416157385550592747081320581016769455632193022340631468518769468794700113231825111206223146973989913268473965887518867064463188051484096675571855814626905191334527756717856284049385095330560612970923957269400303060025884404178328958714703498809699530090063109843110960550443352549132067675680538771724634933259049548205463105863174106619245036088078896424137638828792789849523161503565515687549986621869070830667568338486417906576505493534993016308435041283828416020586494507465726971947291360643278158187926662237741213480403767001666334703926721549925645562773154706399260886167440159203194558772061843507403783406928055248439958461981455772428253775401485076017611594677702968179227032234499815685281906172595626987469332814676484003454488065841996801404517180515831914150592477965161414906465592720833728568649544713053204655490784504445252659709356623276779345782084081903162224362884291142069870620885566279893036351768316409461977026745916133802973891416364430455110433879473321042429477847706646179790829257289806075119549901124767345245314936872785342801798469978511580475710320417450747705297572463402014101940134224368554999559945237986208724008360406280156409626241683073530376637917562057708989271630285109912840292127585703407361126486948575180398241699966746980366597674626766024437349843944689527477796723217479235746856770512030050336263011860291918870527341972922094024922560143161682214902608387785942518023994176200813943422564511982773188509073814910144426084096295138039357119785871001532085026372477710738216382601550692236982155778149735443888108149904694745974836931905533386416907028783399106310444447165787782705761908988216565156174159147762601837917995071316420190507985730094182882321186359459095233353427554067795685441136989623866205043975174779076369874984744141714570660779061645856064734967541780162813541278839499712605560182291836149133264217930488355775955598999517995226252884423270524580716872252318541184337914668669634532721667823726619802504227854117541320157525790323852907201627275944417365707783538503738534299490962576224001753316232631143728871404254276919360632610413953402735959254126057658258160197235659859249786270037160131625081734574943658860223466145155741147787877319735695374991780297475724115002349802203255544970883037664210462460651856389469407402542918320423490104341730360427964050156235212913282722732224446859742425031059336943600929366665352402322482771588450257456382417536436662797060242691955755822136763322080497817526052522239690439926079352358134737808106780160069969468380236304219702194430245114169817821415567373950151403604381573281269826072803605221294949172822666378527331429367163363466172417478215710770509537678871997211686820593512891027607990599601386009262479970302434864218524462569640913333251533609315562466520178846528025613980663992421221939999343936834318317138555967812649686309034972674538420715914656447089660204171270484725792112670084333158214583846369615673183283487258172479257181766288793257168738018764929312099142415832468873221586133480547187712698525203914305901407694294703845830478460315822927699002951611010957152140633692272328199559073622180851373132515783385293085353670505017237606496404861408429556689537918255784875403446352357797588047339635748511603339296693953049854195758475771269352184294024971646464072726938386324735245433250775274334098372328738724338583986922742618595082790450752217486478821467431485907034528456496557087283094312069741905263445440746866415009193320530248374284917440346708560544710858299334689674073823255850689101653338927263256642587419766179617913019907584120244182590986144959031977601515906626677109662269473558687963320263401939441400928850556247490193182534009243956565257494394845660617272426537941709560979287652996975171667430255257016346053339158761777382505782677628221310380570865037725191708456997353009291394485456957132000848941602024303017680728870950197074070907218437161944941613423727177238388631547408405356585790970249434441438451493890248802159018561485953133030891075684863115252327061268406012366879612091730203477035979447242114122791749987613060340355307925224032045992280465416043634556103425864905682226165383532396640954373813439176321678847943725262125871315055489007080255358980364031140234459286305345207817526625641377517958618579190692729751688709296391607341124842032726307715621381968168198339538056278945529408560811683966154967901047112521115002751817337021708335760760317818667192734487340462380830028558265261495957967925809588003738983837004243377935245410958066416100796143202414661846941511466519452183426122945275966256422163970501279105432094913099483473122987471642628879734170384573402569531697007126964528658692497925880476550130268989954007035743740206988981753087300380748710880957135511135786614256342225971667825074355094832320789481790732896049880530683294133050999734308385706896953434838392472061969136716006074716810747278189103789680746117550674081971947523370004079528298332241147844305827947952287623480916508859557568619600209998274179382999979954877149309197836382574746963785691858132331691740940783746922631381933461863330932908282379143389877470796379034608989989235880589411333531529876115583049013694835532812746581628233174396652143607865135477077971335979370626303105213992245498155429600887964120580839884814257079660487674462845203767772679314147900141048408811682529182539774971351388247031742675193198407854227776945867111611428468092692322216694502732546312401503648787298861352292618265231615206221362204563029276538357513600616927783728620567615028502107413363938757698599469757968540470016605173353252172235125907304407964259178877209482656103447740208186948863796709308263772848643824655476166514025174441138935033574834286238785506788380264860416960179349866344589217742344543484906210414390179190784357586454708528818598439027370918708245525032783159018170571806426082394155845778026043700571771773684405115269515480999738469734188124996666112909134786790598876105197361787096445940650730835666629590825605250211322894713011239780979753323663793642100742065548387863502252474786421025068799311875167065195625678919084223996997620876965147144474034659722083480876932741642307098427724224209205114821850285804693356144039355653121782137117296471359724064566085308449464040377597504144877076336981564876209374974666840450814910507597897956044496126309650963986381787967486883741650756053088879243201750055986831412312410371496250496448115963381633649403354610005965657215554479520280022392960271142025039822661902583634851675166201021026317306233758779850218366044592061815780118725018073958680362632002957382622065037443231257180403658488902757991851317154109676574017934885159059717241517957254490098734296767302027158033056224300892247331775192264970562942042857988986253550909847192466694744939442749532129371043348974609054125415597448517727962093032354564159852870126553083263298710183981892835999093219977127666423573195112752050675127729326225989645856973630544566447095674150548225521309847110962922414107170937251638794412150130107860880757092734847300511912428764119386090338145307471383226858138181256848645467882289751938420828622012730276129687370124969120273063954914064238706154300227341552972033981847872651015977554223584882639837907580572369126928637032805312499247999076226096368448894988261081960956349166677168199762681000645045503685416182430831574454025391297514606148796239655087804020806271912722057512971932831909393964169557199751476609340679790359464919278588505185296366914948293285845595410265030239086877383199889716330309581129901848158547798134637919068989112152517399387930841829997220461808046226493451216173162980753940213137854203705052159725920342243000479554623016488770764977605203410647631410703939957070237394854555578972287241441956872477711263468784075783989290007809957819096472712958855599464592218218621761628844183278877136590478478777081368683235196513951840879163896871425576038623267416433233273936502665658636529402317251017514360273864652675905221357637172022789297246057312422955504533087166652144846194539721188319989126422227899855080519795056095028058747091255529883774414838086472851270954228677351823806334799993542727599719919861252040533424590714855426001762828451172776498383678148578014077909258367143006768034180056346836285754929068663847077516396130972578819034556068462994734043691192631148277730573924526053322875379848770969108108169803718206848353825926664013079020779251085641086801789807564968056215112467145855803545227383492976193119311147536712161584826034976431308032241406459876970630814048961445013034628334198008955025683136097710417679342628949813515098187972207052362218513372837886896545564302204010837798264853159532435419822903804968350849520601898999536688671767808873923990697826875715499458658222718885454373974862153503369388739610197475413538090844110089035423282055549741744800133517802636551452790137130810494124125964570841033088494665332638889193552895079622169972832190044774988944643054319989578005249092665153686018549082667332460851956009366367018624657073299678006228183212079085359315434291936817012313288235635025710452987411152354397176120210589169766310185054589337936881065201578178124068822922025171134427187491496868242103868867185887481716612931498339867347304969962606686369238029035836982621132246701233146095862583555269869088159892184909779994358178798165799658781887247932765034963086842605471792092894367134644011671669037218576025908962403200583378702860715639655109348216228171767939108972746089591601117341359591690126658338364303230832693573173247485992322438003414859731857645697726285047942566828320519768933733441259382628707323025975077002762905430672263529212273412781163875402898670616132819660997271924370093123831424987323076444478316584370922636280004163419205042843213055062694288100377548477311572320403641600984683876869691910887058057098197602444499385137074721974797313647745927512618412006954793870687823217216173627891725135876518274284258904825214945323491876560672040550238768876851186556481026656882484330973027128683935881127856501307458535350635050709189428940453298989055034575039291479173338243041542520577816515100068383846035102805745648178174446069119925432896074923506585536543200216900932150624811306527852287964824384730811198387464537069886364111549856434117841510639577427979937063832043445099766827745351033456393647850994103117699092244206778305188335289597336713368123947423666208467475285352830774785348707120441837651706018154114143505759173805441584941489207107047639566803373238131355259730334810239723244975174224751925008133348098362741745028444591775509898992010568305115469512695586189531242617991156753241775712268619860292610233209667926513913118627780454980030101183963441337290850436509835329127737208524049333792253550483796921945124915335621687364806870209842259125341731547174491918859596483005856765692605372213532972892329056167950800015365756573592245696899037838848324450309637637510852111963287490037982472661963115891178895093393270585548237904335051526613701091206862941993664884612435745129360372642169142218456065019864118118022551014520652822741896156298218738818419698481475842639427327074880460705875553042465817298537629518591384859730617198148968887327044017454769814035668522584187628680092731919323851965906426433855357314442789422742825420482711077315130533593828756364765729774567311572034203212621764470275703445857859157758947595006594557097581980715993240849139923661653361598952592292753673384836599772833660252784621936039484926947557572166985607408323156452967121973657280783930713797737136479598597678319744082676671292046824229632974600620434026186636461640097503167160276031878853487153343773830490791476130827786415185807153803802457052357829318108184999320680829446060114777135413716652772870242413501084067401948591450365755511078319030024360748544655287586164849892891637063047819741859740053505789774973179745232215620783259376123624465220226865887898989278944629572249939502703470043163228964578052681466474464198529242891659180377639383553101149955980918390931631193075729247604687283925295770422923678553667868403013975421885251429253592467871648362985892700343522093645495113734921341133642126049295168574758362400862861311853893805600547529003185926871654074809239857420966215191870013151169612634650856580193162245355854574876127477300116507301836276060589688518945811815002174423497966536615979895407757385444439256873259252331262699544381640859496603696461188051234878425992483899370529727549487872175693983489366814136087202984627090591724583366661912784589251565906795899862874533801184114747971474439908560586428799999552255742602516826388160869461260249546615862386176251874156472629614743862350350872974067405129462912089103351159933154258004875209098105687774310009587591081506275373249844811819326044170524852139750914546903693443020098529100368865160782298811790462155331961730978323702045045199200168229647586203340665398924622493321135607407803490311999372719461023743832954004983933770656097562667422636808574731366130041964835183623614508490200482004706837208536875001322630776205894856217028100899293487000853614444025368805209465362732207974888834012313732501960726437543786020583347007066088316893847837866387759699472195380576504949911403522096034724655237578120948562722887587735346106280732834066353352325573255466661909039255423799597733163819929753600697663384138045597340782609105416442429314237839734111837675722069587913737886607932958025093769840162117501020647976341033947194089423748257313617606601310728090140272764020680638823375504118039576700668203303789141928830563239116625997784754511062384541489793088856209216927124396307812118640129772112288090260678684344634179830186623115845788487695445880350137416869450726833159744105419258128041869656984604452413548351242726807828420822439415166311728435722095251814409478432668900001122937362754654498239124856004164290629567312911272376324175339513063133647956175953716248414566699922147641431121115098932335286635530694309864946585832049963950132446192570028585739223670071873159530360782320059413312113560113796927054716340197188242792049553637926664970314623368604922282144792390948195929325947106423235018318808984014359390285482492955329874497817463299178326660615517050978048808702624300405732814091968044604523526868624683961122663147563418920108633598571887070926485091230869285800945199440122286495932531183137876883598228021464113648082671298672020058214475761621029755541618932508557158730916789257633381539497040262796627591080670170920390291004467840341968993630258005409963713600504501239552397273982724028288584110151340363589935344767241521968472343325983480732009545028375001505345830388553951353599592527946394024146880279898641806779146626726194023291149634052003867361950485296818834194271248702773759619578769464510249404822563492061077286075652529683518302410448093262421417633822254571021694336792566727652193454293958293305732765359669506427794444333767573690292921351805207306833326084634615491924149046470149735529660151118387281738646922444595955210547765253828328908723364730601137394811758169255986715796326420636372886635880320519623997251528973070654402979419943819112177942416460555833067663267769457222619565610283041484293194961988531789663132579625411688133335644228923536970165364232655053066688737986486961840904597760597685838446280800241699580228690510464579649474002328850918746589554875805671949757746251943785831495621736496803819337408371197290520451893634656295802349044362963261124232676408934186737320213308094637690436673791864955749894740520024883447929576362467866594652446348471893940624718961756646417843518430250540040677729526558018683306921022270690554430383709740573815774810408468375847670829257350188512500770817218781483157782839320674694042462829769163723838654867251466369844710541890688745068318625479107960039419014563737358705990987550998323768650519894338348767896380270740050004471930260034908056862766139232668046192988234875076399208493445103508752859162120868376242115134258748011455174414277193913723966861743420446204837843040725872858485670954236154868900254994038014892774000165134643648632991199219470219816929203189942359322687906266373321679864486276036155101487109991782967167266674640630234134729752890961419409649724568576254240517711478661920026751656991614645427325773787720219022762026527270489796807264017626722288432537093009208713302967564641221464894656452182782447311645921237756490616448372116358678238717595181052448314887451309015900320988280525402962833744909658978600390283585457988819299638936892600730199155824086892052957812468000897751251208573822831002603222338592650715768982007695254533348883502734559958398982486224262038644768658224236522619320994758036824196517506621325177456363943056471818688572424732409886441503624770598102320958134098941695434856311325970102930977435427937873549907264884629010524442589305726173693256746946033773912363892394332404796105863907835680997246977964128142559340992641679283144705982904574996842173190317712424169452902013240427281891242887510646242220051274251029638136367560436349552736048981893923142668435598615026592072943673488075432643196226706213552422612004147561038496985268375349293244690530971248119195057518810811309006618810971393512463535023637250648391812878673828428164354447545145718978704495967374024102420948482298959971298515042038342124228923996441861354782868074792726135184755688065595604222265399351548179208099853732027049688812680739138890716467417259970991717273470820082807702956712200730474171521508528492683324680068293719068987236687388638949231835930240080808166641664404867333363182276668322006019650052997680102021959296281260163533160507219279052534993653212250666060923816319475353649948769392486131120044153334366447551675987717529593441952872158685417506092374028615677327096953926902890680244715668889648947576463022907542560283067215487023465858055875923298461207103698471905480159872991773045662312358438009733240991503041510394658666893480720625920809920355971552292707160951718864925083423824818466836646903660250221621914936455321286306926159024914425642894415038384685486503113468703607542761536975793888742694889474262041762541235767728290135360067214067389028058576059412988658824922235550366885638577797646981579578000211354551922600182382023402792007262919745128064723118222270231975169418338537851984132294684296223087518236429702519371274353259456072096364934031117803700958891376457967208233086666065736367248635280737083426121517894319028557926758042346033446326012289545451929407611224568757840851522412078665616983716974809223378517842851521732209715156424254427466933068971025959793827583399106087304690934061859613086136692130921352174358203941969858355915513228267623036767999751766913333353488979253100223941514811316524198980808235685203603139886351650926166455539377437960176280516001658781867017006457436844195337362954333731920066215089151594512046919875128863517853610029401998898397457491249578944723372921273250521216721185560523499956402314362228256397159627528301585090689439326319991370229177005637215713609430269981632460921212838021920099409836880027517790390661611116905855682187757359430555675493585427942748794195002422192853189654297979374898523999627068736532216643562434811726646176745788704404563599570237713731945096446301776818496215776609213823364174239498331001434474149105765723868609406152668513263702723309726436206500558147944475758239054765094892805343539054110638595798817103632173631693165457314797691539929090445871782464791934269540745057409160393013524854416351385295911779637387004313249859941685883333428275578649212017006627306230407218734625657421978500079833914477807786144449091949076448874483316792803005267968056470275557645383189021839175644510293873319602863845140018992214925138305593388027601697248692796675780587018745386620190462189941776744188155806149538507492705569189959634076236504590175238123875382604911843968685780606210433434898823069071159342174500953853619907438529878636133715522925104931767198386658696316766325994232890353540342297319502906519414276804396391836625426196220716520209129040202473113012274982192619168479725752125209255339626695789445120117115639199187032163797827449857401986403712876987346101933521319792792986792102222681107738891362545185183057853712117871427150517520153656322448339019009096472420697130299936301720319985183329172612047037001543547594335546480468644652214593130527630653375198988085553424532427046488304339248231312320033883554525987890095961730238321155600261552769993630040340265147661364662675674888853314384099949899323306006074979488797311443091025347049321704775403671331134111858260990704958125039943283791199992479105383708822141970223508050491796880755691432685417693332415463939987169478984028067775903414387222440378714777196497790533485363020674899747525288499036039777008917837586931430186747969988072426161920919916108673489388181259517304391128341107050510325827396433061355887264502148287190473237800126419992215034425131046598444256744781957958440992363802838579452012990998299827534250179591731564981736998107804258730200621276827308835455624146816989942292254183679108409588134432196342157503756135660695504617792029697114368361307459833468098325042747677150550575032248891965253755845048084032833657569002626276609951063027410922474866097492412033382467381340643523319640196140321713775230944884634177072227963822697386756778578060828534095803346940132922598024393285726047191760189426763804784600242076707330651946187791670703596717362697954245574953763614395397307604193446221329034879472965107337783820543040625124121573229703522739635009996236705492793601647645687898546816760304914795414094927553111172494501726180388177158101052727974049675763785670592634917042537408208074728943089438851085625727794943577940426550553278627278497096380010625037965769401501678459312425807330833074689815786511129612335353620925462210619832833857734530400075153444512949651275045244833532210934181419333417789134498676509436655406618946883369886557131094677512529928881178568268674270289868084299352804289502963031687954528751547080518442183974645534017787696522322052499253423313039613144512995846689328109166046253418863878318560384525395927606160826643164921213125413704608930147972148830909712988270536855984047604458860759847600248680289414548955320965359383275197190089696001679733757877208561073138577014050399569156562557841629581870516592636006551443945375779470864727270159453800459866172593827230229634674313079756970342269139947657325232490908361801329033789750031201941316917820464477362565582675336174120351804855899352193130252166232766878864757413535417202650183360294023991113441649784791480247499462149396150247222898168707687870413921453060499847355036868978451409038837162772834023734023965678264698786181443181833586098868296108609208942620861180102809499076285479623033824085661071959106922603890035402097928356532562136638766448144687561780098486473426121324581172678801638941964213504092355681905445340222083617417471217045930296182033937660780926523468206354940783135339882189115145928728147544961747275703707135808097331380792849970247894561272878633093192063231531737199525487166441344218457324927219393659871794770851571072416491220584471094001220586946956111893532649109980077539017768475229054157725572239055332159769368260550812183877447226846407167517144512176828893082026809730865958286847034450169149129837969656904169920627062996895785202210270316622492625757123081051685128295087921475739307847177422341022391157112992419741180102005950026511136418138946349643039239720638654510090079110957445593273352045361464906696473389889582356265020292573293839035443674198385759278935125456808696598908611278334853524237795814175460638269716416746353844030448301937728750192305486984031929614683496986691027407731261265351774787763540378819302543753983766104707980331108713952403875267761605126878853967729175103330014193608825160554922218635738817179236294203407552183101992222817583491455643853900650758478033513834482238048856743041925377403405739752161946376793682440348208544066402224278226244593105208969804840245874112827304033335120862596241487505972692199915150816548709338271879772318919007227403165753480749692025490785401018137022323220681586567200182845165287014222835172290600956427627495075308250762464690239386769778686849411252884170136218279612813407806233790417479127079391367259943346244758743645505621567121847238974198622790167433215587316113356610610738705648594863355086822696192661953537903039049402080395068525122470711077307436550614669516852946826888805414122419635291059046109756303287098458757665062585354932017148734434472864034388792179457269702611430583765415001898289671606397710253721157587891578827061021217397823322483780336818613603620988182223623850303222135338446270607635655116359147519168039964781657493757745902433264133723804329422272324399351980618833825113361799203522206130480633498863663265501568603425300208964160407815744203731718686764730968436299510352170924889656700354537163648707849734159238275618189393094558220615251542664165639003255856858901327520910385457938040338324435111737964225040564982238919460191447166807318882056526729896395870951364815110163600165793803718775335910983557874825361756315048282299683822079657551550572524610813338299127619670060510818058333648535235350313424183288346751983819151090468697878119080071938279753790718009852374516477733998236998440564966074559089977925679659965477673902532572712632346019762542459446429590125169162298512291273174373525677127395599432317839668841345342744778705017777711728475645122644218463311533217978927885934534942006384256633493386469959479849478385920449155693241110607917399624659238057173377955074446080360885408041169602814013594718650801002633561544772832231297431992280995430341198722595203803167012922961917670567338812126732226102171595672693960390534440607280914051377678353471428596660396536834278454136666962138096292320769555494535280289990550623560702012421933415241781028300962298324943013780757807747653446646531472017401531226446903328614302994380639869776839807843943230673142198049953900233807231823440098960433628477638809259125604728786114550198464149992531106330646224003041381154939754972805545211357287555766562583420910364287487718922923476488682557746385528734942531863344915840080417694075415443149887796973121462522575787535219941103740843202085262352867527846127433184871351846153441584873132058097816483415997579741751570255756218298549989952349623928088368989647246317617452443336513238214338480538846985805365830130655208025795081138796666211256539793619758491439121819376557822190564602894439306713538832157666231432444611321462747865591682293109082584266660914709384975342406718211192937398287115422058571228665831536898076227443207168536239719582803734513791187086130790053239282045386909444236507186132498383572181026669088927489597501711710150756162220580504426807884091475763201255770419059597403851056644511831623117033430600070257818523919849775589606442006143612670419617724786358306138727800651106666338377493121395854710327581429239940761834746000778650554897180845807854501313976714212590054462011131143556425764432833840424198299966756745050910617969125167410910559211065809927384232360503575181560664185541124942748434240223807788786769570581478994373141143621982518337611630176166091071081122619763009300722228774053548316590801582728187814400407256240211136498385583126536835745027914993172897383811154028285984109115752415855449646065603321615258881832077232135882706753993512071981335127604944352966612492387893316291660549694273231072070784412207256190849858133175691031425806861541331732461855904361383611228313755696658641905148802115461407103087228643412365316067884468099886873392518644698881366202855932141860111962669269755781627197669719378793494790148718498404702392105390106744821371807392078213046166803012486196614785023633372021279735571895374615092916354874699484356281849013129620395938518813423767042191269751149744585019114912728923503278344285514946872218503338198306851083946598645900833335845139244198874826786087920610407885344532826771868375536309348277472073295934171103923842155181108694719011435925886427397853588618302233740118020723590956435733589198206635308254493486079359608843433527671354087982258757112498254850252622617369227921752462548005108176390794228445438968502474267430368402370600959250864733303816675432119204579259244483177007429212089482315236919708264925668856615072034544047853393748799743762095528586660150828860753069244851112764680711553523811575207492870518164564659253252520317843790742596223644341242683028327724279602710341116285992373693955876254567398637537260758824692819835742400713246032245816301148365230268677527802378820839910349709548241165238650275357974436469037844315890230237260120871991781470319557584981442619929870746372569258024827648223845709619901219372433854947754416985471786904775823289531159761490757418023969502130981004248182523228974228052835823495742976911683564380440065452980474865154778035452229554873254753278486830898471119191176584724063628421745535946125143456059270921221586526416407637458995628209903665893632274013109466229708691416728966285637583820945848466027172549241700929266688048153209731400829334115532116709982432075283376748071573782563823956405310187799025074311814225687348174854341264388604825177811414361112946051333654875570806916243242489046898480268436654740781179235176909340584853572351362975306572704852508123431256100114354538973894300168700057204813900493319091862143299710755588561895645080278824999077439366162581398299738557184971580081009220403893763750298301866777810702347328144478706245875735882635926380230990211223360888084017467868461654107454992761109226713741246491327591244852399088290174211727075463028277729718944365039346898537999324673042074599789028030993733380203322052808451661476327761512655957832015248003566502935358815046574031611867600164610845308312171661297759523730190081106650104733919068899680368375733508293309829861827990162405771171439844597082402386720714759404740955457681586720748764117040422985659757088371706500103473796892949388164743922260573057308648379977591259459376094595606573029621128677385969174868421023116211441513673558292539556974924149381066160121782170720321917466242172266881555361664239100536681094432440291366849202968395099805268632361928522510652440418858129673709785165034517057670322889991974791877241464246236621015563279141015712156007733974965213163909660999096029706078394677707191085146855713188391535117636469797238629321961752501572664039016193676417806915189561511805582467476578261146835629613320567291694163233234796351726933850887302674188106397004544190222361251423811152680054988697590197604867370564982342835620484213695269893028780405249859851481680902735848481419530327374782580143639927605408401754484294579386711201309294047485359255436475098030794244318408964366855714653908232912079418851329556801832469075483307719253614178542842356296094672298389089309030360826897624063683478947396487626724263909480821521155695033131970300732945704875833192033482866957843069739202026436655029722183841771474113481203516457583063644590614548996627776516753243346955285076303726616951588710776972927043421039919120672302240508084932569878259944859078968609144417395295651882909011942637723515231483888146137415278962137623812254751144468077372964996289937338808550288117434266808751716360308566651182144551148680582458585773711635170469178403511901911891289352448942593405955288984812163991705292016657128329730094258884257172462004891080908937965245288456254350959877868744818108500363533427562769536308578184941984486556628020299429500311064702362219024194426761048977523099809851766128428595481634913504110613450631328055667276743895495436757252446181571665525943083972684626275897715624415562541264757364949060378366427514981763941979311854385510723910838637435454515784452498698457469298983370452405454397862145539803999729135581463507962364313152816632708641323528686965241352744082313387695125791122201289361828910829258588889948394389692663201477842605173484009381354839462430274696305794423178621883389597840183667444141512571545020836369828565411635703724239007873342679786972452089896391504511597215821226669328142860912882321929094567162316484454590797953161553949727236738915235206078052514146846984800303939462407524970287904194035297435719414180774012853880310285449958849201878321844234441147354693930143611821789546872178174090639661814583443432162590297775728556962559650001004158024110380775988696698124163790179613061833324424967286449312964499831216112770014372261602015452405616851097411482811978447656159225154720721370485210737123132425476664117426576772852791773762035463428213679786634419244267726486897118457607745629210727919402371972475482890233266621620379866100777274476432339108109046710022287881212787081422633245012811430681451164604840177010312067362657906584273056882129471681417505768801031364678460677146183818629050065394590749810065163411495905748712925400494278781756465776224884502103539233673060374434544230864927400460627218273437217635280710577781845222941523041536608678231340115168012510139806611045551676970695584798562964146497123014768502030545273321263208797313610174380855253464782252454787279516199030123179916750582819663561369184841960015976245465345364522161246794630759822527067163932016020005193684089505422503831976765851434811329059375577510093644999499229327432805227579754130265042134113388299811997484541438975697699054027549848626405358809943668847793492324508266763855907404525643659541069327476385072379325807453927287647227503532463604547912297737444870108155984067541116802053212485360443639553420139668611247004423506708952607310307829416401726004942824111636761798041814685364604690603775476105634950890917581591844800683317875402137329423378724398336491441716366814866137324079013854156336865603380384672000501926616353883065973773149084938858342729922303557441094060792049177083344215368679809097552206766595297530159769226820533104421542410213038797069614419840032642539943198317981534354444401403032813324575282885076424901727585305614292780262614229576512305502941130181777028712721687004652221052921576731788249519601874973880143776478074574651274930314357424142350002233485229906193259254202861113168077998412937367956435406659699361632077629346392053898702469428762001970106880815593042572571713571128495448821795795766557626458064565028555787531911352792590069236273858146491250525872481506234965960765122832565532935695512904985838069829595668680890750623845955418026352167481727044511230532382881926039728451267356175246158984584810739032727835102394549379709189573413032791438925055703293334494196541895738080017320959619972981406066435242531257175843463974559411373174785107797106479483950117258079892722892784745791655858019714780336893031535528614520038502596693925983536952072727806838571472576598568767308616955628538047574242725378533894783628615333663573982845954960330703659755861824836419122980821486904128473235989552476620011097989000399886665183618048892441326963461540119359941945321853376145003430454441642334939346950303086694453340943471688368030292874030787427625191329889281241598217735941284633450676552875601965112687265115830238038641856103628751621472454767358078165726915834154702435255896360752733192429611490998338830483188596482819140793390681648691956538950740976252965041634671343475741002503993437101515667707551625191215603679709632471432845319993749942602260307769528483123416299384096966433033098050071390793596358121296047290975609729594841599380330099316348946333611763633315058467638680731430114546950499968733090619314443464394824775396317979993933093264837662555305128289253823938741354203452077700483637385834919786346051534909202717758089440655045886945965159196960467240110772567003606132420304383485922558200394326488459280783200353817698817354218178262694051186698480100515198235464507416603427334281479398797298152069074674841471984958404677282372501812475447285959056688664252992755969115679222874234591373266753212615912523976180485560503691145887343005118962216880640271369793621283244205257682472534142678638228410211395064014492449412414152699991507654993288629990748133907717158907042128310037386323387277162472129574051010992595886954049003290452190594235950671096819555709868062382169799006968190706132638357196954597309574029921700281581522408286016261468979847721255593078665243931280014051956146029559863275764065238276597525054122043598358017008797799621154644829873402503700987339377741944087258989188412853044061275749926536622419464545110778216663443976617316330339853342201690984381655009067790647978643765616417486357028427487639373907179611821029620904065348570416560741649032292052171772512882952202254460328028890256446897389252478858047501693124827511257773536020522589317378205694000472500018667663533954334653351695230594579203361172547699190738564784935311106517019215783727736105032360459455131646059285103129194872244770318550155846434952424546570718962470279901808580889643780718834280076453131356212703043808068997290726528116530451666184731354484657983762842542603761415071040508936915094802221902051916572416227304303026841152751623363642592358213087574128911425943412120731997236307958335385707194707343811255020278880988813265824411133142894507220082550449918332989948779134567158836447397450755312599067403962465003852378742758685996898775174273282968237284025931916915975766158021337211806517939031596189224784299287083552290427080519766612885639666642056034010853430130767540675633502386012381948877821280310924777694585941278480804881616592844528368390221583308735962997304530386976753570587010162206203208938942642500020068720681823355742628531350197672913568222559025131504714972360905141718112967136280310840839816937885625889158456264649514391763270009487864863384745867117849236735213465063549840622695420030790640909490333393125305111746659721103530407079771241675783300961645358269471916768357479283815753937985282182149540217336864164409939793705302788870015642386022688965817536697156363405955574472894943127533713657362027532701950261252778360801801170922809548073370729802256701545864498136782765453643500946584834616135573130074720836504461838240691914467735086495352593066356180473513843499803405512084352375570013404002989918510368279537581589097861608248577086256656206466313429573192099416731104250624651333049624702451669262536720193366189434013769174174811468660440035610023865641705676708537815483755731818383860141138243049699768332607748747058377453276258006982149120155281580774676790031730131769691266332186639349853909325992953892229311938392125262624045581524098580396012907382093956617218752280635923624352871725183356268192177105120466637601941585960022040146758392928982290893233973792136161301712243271588302005272988395068063230233482898223304933374222891643113715940701583607207884676877905138425226689305953590555478124818871672002443776908223617636915874748966698505233911502269641354361429289760139459151791836524191021760310687344700082212708372599054514528369727277917311630425506032624973765710538025306931966033508920230451626879324770976953258271971655457836547906635839444474686746467536087003483448595317680354201900160426855416660003274692184448492366247029016915570596750732174425946716210676331726692596995725729190917480233573216885413131457208471570243141972278045034188350015384441672401994590484082351485767102996963650569408592429715089362314692058625379619654210524553978036631967849440899467180832222208556859444363820246516049891248010909211697025944029295140905978768183075292911335416035764802023760197900586714589895548342111286813494288690880045254732940214774291918751106508464397584341059592733405445615490797953087417080648585713042400931112535578878214464925946488337862079146613264749394551254672308155902036618278582940175875777076451110142738332764265739929845945586176809845687753187106682186803169695321776218998201999045522188902326378969121306459570583856626972797540231963624700266411809815410962447927670056461883028314720028932777610239983217958863226247658235687626338021246526514734913476199996975836100157357160839687409148986458578386582456668285020179375120979810931793224841092945246660379005258086448726786383401932332888906391170320885415681962002643546003120249010017883560385784088533872292436950647066302981062597353092714552424332030906589132425988810596640787412813637050373705858372191255211320864455013086293928761643564359921842895844565412182755614442765874878636099784664630705669422382198895140994558023448531489693419604791106800574836037746403547143535624387560305822624395238979336224704714070071369512555087345074178526552747585674165515358879887454957735216424974630083049732707516334524718174351660108169762546427317486094502400080444142465127195040038444706324620216720634981542828744618172973350752131722975589248091357617060710996240489868784434811556733310624331296620497640372677710920894505178201814721339124105100139257652467023549008972582895063196210691845291510081439878201159962415439864698534522198619633150223929127582977358128564406294810703672872477972173445563127665190998386537221335771273259738177066217734856098142510035478505694666093690168623608535219652259910748853193423631656279725940894236545481423387048245095918496092875688524030104976316649554640357368016777595774711009646706336573782244014527954573516391644930226171761578271254163626508264441650885423549936950847078788007488390741736600629238788036555602076750068819471502894359663019876064181008108129510420057685405552624944281772541469803353423090665894173906508567907822945880812147818893640087629475419100714761186922013900596837535576127558620168663561853987857669080672194988349195977300410446964434898918224476285230333253970678177788909476840773339478090656538314235950289534058229179287004332565839002219412280613098382105726881054638015471034425774388035565691728272103219838436472728142276478149654160141121866458739434686410336832161441045344265505274685471094056763483949558841459463536659934081763692395379450895339663732466508791158685286514858119571735896826409417384629660776318607478475368928001285303655817832737624748161875321470996674829515898725681168271537923058978408472225643540768977588328093977771833095401256568661199315602306263978123310760301238821360741263482477727536387500005644759624280163160620428180405018599143148102949061843520669747405109189596450202135441013607991485469323181740833770623342607989144415214179487891482629365542410680410466449409140321102124585943638620715989324939025908435382857978148404643630042055374494226418452810848500118266606136724581909510730066204833404104891005687475375750869730233221566812840242283339196564516530230853610810043426520953979946656564998809061217908430493167600318054383603202134930397608154889722505613309890965020149588485846450035735283236200702467181518370925427123435777903568956771787343805123485544459698969611129657096393115985062362859040947099459643445160872441991407197794262227946714108812755053331607016739133147431919306539026882385393009429406647433249949699651810329128932116105368405986474475427384890496536069545853844782460333151744531493514761795923713620415669694148680557384006207505049353651096692046761521755296722775280493908664699906285019255614499479236421124202545432947053994592431179382471744043351773209200914369770903809228388769264712418015544839608140254563034284249469664765668173440591622586126812983097459162717186959327069426272105691648238972566673430927033699087865166354169991067272733577135184848048018346196219179672006660447142101424023362154791926069420716367735372450201078099204204800630898205992859015809690237249352539807810363987811592355071020085779261993435767596183620747253386802709209403124374070458125365223423669420246979471264467681509063509845488207924990096007153523565100852280128553113042484439660725235409099647822592339973148520931770395617179352881708824668088711154523134049295729294661833708465210658717593060229855791789741863982588294299984250608001750884013881280371001894348735321061621579969747083600508965381696037271749784722275210689860461439544306012740111834920982008343840886571941859318428992825367659986569669543731782180576106933395885285733259437763453955174520307987290552476499103368181246971977085692948250445298938075227247575841836734211367005019428342689887715721809952395864085568272636328421487679405414344639169449993605894812353350075542869393255001515005538763793778826681789027414745396943157609053785131121488540161346849435825925643760372315130656901733675428421056442917409042862256587801535510239793123223523785440022467930767365093783349248076867781993690197310007693625574380651629856015081889702829810663956195116445104911079068900609862344213634377876688110065050527934032747952243268269755024651081071651812511894312480721619082777059136662736081485593969500699063294059264614875150494106090636356001670951132831182629571139299455355733467582382692587896013794547100506367111573966987072175983383651133854125321582233290125862382297762012641730169015859524048229181643248932682701331447522334733771744284358443932190729107445819669617708254038714112577584413973793158787067995953498019093906178915851788426567185912106214899862150680895505302559596729457435936912660286513140123523884483594346751278101143837080487336990648055308569431052795846171822272517825051077093230054627933618944966070776876284671275375662877700983073647705506931599058300073674394281737298715904880436928220407413919696376259627135611027389097588068248351941102275133155753520486984190408069256730313835215217807458955819565646984526506958175335634236825462127916838318734711830920089518612494788872297317771047596354898334985792998114958569945267343762954175372266536829062855704048902975200974928477848054903716776954924425665825481301988701996916606608479762293938654928614851969217304747091815798420813167028023465669624330043246973179346252017101316693610786399033876707525918716743800446486589530788741355995888823321535207769728463405902863958814283256350539355762590761445575778084210817504719004727844875314041396890150105231105171459946929638495303818770662229985309467078764356646369284315442516812767412690548822639189929545644277009013556362887052951134339425178351972206653925476490382304491811280941819182104578953919335700604798125162996396015078487518825059357385512368740706588194485443923764259054275530371141586372131009894346846740766054771520886920581059841721474138312054004692237089429047891453671261229585136023599935145124504472047407467218940266138362680534209322306705962990819158880304497792504456049312998565199744451863422668119665723576723550304512656546383937405801856651130128079636872490124697938466414063738458110777211475958216430869616998161301950731162673470419779577330339531719770763428839234609648488032679513755290228642459243689508053608954613017799443590060241003283078296438837052808354618167351123305645812770327659448583042818061710432463495138312023238727847138039665185541020827918808313576734372926553007631986069153136114373382901905601969417923658920733015226888486969284313487903447172094968296330750413250126858868502085272279953606949117665185523840138555868850098661762689388300206563739258138906749179335070505628462856111169900130144883142304783136715141728590654857058770528240725432913498004212023396159214807006593322475233316679016939947546703164257462809836290597278797201734933219489366575595608278138430971670421784540667173757463858977568654616646096713897960390476417428597635559136544684258669104053260227540262535337549077256981717358972379418667077164304468624161653924528055279890420349466273900909885738767209451137200351229944115728056263256136964927025021907693558187640338011549460159512059632152887079360527057196803744491217732394622474355947778953337503645776055410446759159598502407277788521581227548658755130647016643405322313687307630088741911091929510196280693521858213800178492721915937634828652285232870381839841085597303475353800170762408644093701188026940330788130415596413049653591560985085893813960908158108732927878239719302897348484401515674966624639668662508512386850919452725082728878602728483541913716555756012496754576492440233769417130495109290658923861653286224381717435359134136446623601168251226203193833441835219644875239514539960193537930447724084237374098497712519303935449242583694481009793888420716131564457983692942272120002249061739488067884816594160356926342988838261253435634589226183541423477056309391984429290697156917143070046608155966356762134000378659689683889109842918026627822180540656440032387584137722001387931761795776971391945925288319946159845316019294286815909877498224716974834124866358905216784701455534184188675204656137105841007243507090834050794682958481476945325668824252692056913076599315406516487541174565004279411207447520174974733137135064262629301261103870683658106504697186673149697709164280618702795988051676969828341825995119883721401099655344092434870388974764135268108977489888080561273952218573576447186195164189600994194906815079272081873890565527639962880374923750326665181778060644102067217719897410341116462090340490053138611658558710114106332675804273243576772769500772147719010217871994628819579986870846727600003255413072140032653367753326135259299973927313001527917489376445168099262788452028471188007437520864094821350491856159763081615280498465489305494097789110412402667864394194381185347024809264265865858697884651928988736970352107565476007516393077050806501895282477210184397186021301581994539200152841714407280656202054528928041119898173927021055835272430144740427920145636391347244260443776225934519738661493978506134236791160987780665333249394326087070448511013915029202355480067833193638765465697328174026058253144720011799596171330957141181819407830387525388649975986563247800997424596214175626070386913863560101234517276465693210588867953132006577751829596388069124188219348876314018407208847827255490471910314041961499492484571265255314391745114213192481506613828217100956974166437290755194028532518948496061494587677516394056556272982615560519564867623355822148648025012214101651226367843170234009651934105110357126851621809602954140594435228975278584865657538237889521706379215230684130764794638085214933779403499382857730392955497250178548722819014510795602001735468749815377792878371469638897115458780805176492543247920909780808834981175030900432911340190629825769311029327584431846331748095908114320044165725181662698660024977751810640979483441337719307410218310594764933227309844856541698189366023865274704766845216064669228780953887389134990401795788491954720633482297550189677492716472703073366610982355744409699319351493484430706498824491474910618801272298777518470124929368482588263681276405571670659975227100904772632603627495071591027799899213148310810541641543555398010472166687517685130827769786646539835919280524641146738278733804105903223428992650966274098646740386535641094568043055103948776439551025763077687454713029182308613116753976232514094178621946862423022563255403586608567868523080694660739829146920682981714058877189164670252566982307276028857447743809906761699515996087868945725926512937041526564024985141453547159768023219602594392707045030235369136991470043324015184888101884960534274412296597701716327787606519919570731874650343233605610594416822992107484737918825808736256957452568421443624670328077559839395240952274381241924895242977242475322503910906461826604082847266809892249312587877662794337542732835878530474589202463237087758086537772904148000401661087006287318057299318809255784101936571423622395028564730524607042786954783826252361784666990083092638609017525812446047314113655329515064667981066222382743959969923446538790837215173640694475148733873850953440505313565956695412734052793932457453018962030711951485445824867529946403639890730722092817702290501738525882958520086265356050606700702729149131939812555553741664621166763707405885207776378103662318305474216393626512584422856833598901568138034838785934527415064748334050994657703418163902321337757054450960190071343947987368652053600721351127685464669465194811448185646266721425848902414623799358788795321005136859124039721046303230109961185400697134768184192496862097303558137611494364001902644762435370488127467188693559536144725927742976025074910096468214026248968139136515543110030775432010724000294529546270071959015486628069413374202720061262363737419229831928458971144077412655050450613878670445668957786575842974342619955361603146515176311479987170180875008801212808170726970786860446314701492456221879660284604220688054013256811580615938437352758694262959849004600434785740721862305216320758402286962460760469080163954614838888351007968264018134407034043076122217200839149406370338570984246055112088348418021749205117578809159744109824355826953839061060323401400802342310938741487454754331396812590483425557475863545653860911383219966606882837438401799710365419928212498639505517186466720362730804355880501767212499818308541424854640849005852141768146274673642017748545297859866532454636227803384923538653370196236349452840413924711633743097515520980463478179917516418402577387341347318442269820361181701242991383089984671502205486693268550013572981997593601041575280956544907823444497302637877527301859956042411093254241078107522414503924812114409069596819493295773894847786164874002538785264050869884010780383603760719233445802856209019248691553020696661201007413471492563958714403025140268000151293563323273867779327553461173187225669004226509263337468175382934473085701946830661319353546550648229857400237959419869081299105845077393633138127979548330688865992215166387358632237348760992697551460683469756965583404418146603621548740627633211351546406895199839360595401139027779302678559697261618829611903257521460102552565823759776858170433243294341436847195879364067553493186673817283137139412672576395636058274074816212791735341458734056566376339553091842622023339362811523262922882186198151695287477048686622929410474232924439080972424498237056137569253597323324852759738421277650458266454618591354671196316298726943927881493300524570262949673744298748185104842616098616675977793989453339878010965721405671628097941392017395804561793521858901522213639882640815637388412887294022625157302013814644027383312376888123004959014669255407435771838656496772655670080075504322613591943444367494790168227546572655469342474556487622414758416554144522021099397837542647582975745362999581517216329505650207432120713368868455930162601104478933628101281690465600398585793516004009066641349173185499987637766211373301159643284898996962171839503312956946467952640652033221239691362181877099383465312848685737296282418921272036753817445473467667064158635635044529590333102497959071930097850189563027583373258021421199189121600425764670905539279072111891571466279199112827777684731414196200199626164830640561072662677312801950127206995706479556878529724524062657198456541653937105184304129142823714825968821472019462603713136700272848434398859737065756246716369875386953797389461574214561575008912870162190998057033272727842747718198404794920240765000871441682444169487347419335969332587557950561972184212854315257273226244669324246048133551222309349699080242104830768157557296188260198746145871983361957617279242286172333243441179244857598029605265372458052669841073490259548747691221299621087285045913968747289011838964151976134682337611317144028310238196006799452303168414275623500605185865160693484784577392381972721587965326073409815035854840402709487245763619529523952123941763856204432262241492588604539357040858285380176463221322569972027128010110885592870588596980719300379502859599237511036440903126101585969689018983580955224495601688478461406272170530108324026362899626598692922127005553345291211481797532399587691748837042656336922473509749080715079601870892241032602439742104799419663392860566446809414797314479996083579589175838021355734087745412059612742360796026603982014868296865985714643778209521619344059685749726476087188158790598890188020986239099806725558987852348129554147568740602229319528779249768651171619522544659703102060938566486570945225833493483662401326589934056957510768912337346895716912624088374316635175164586150759215972897597975778512526903198606347600005465563765424288927413170002358708186802913877202879049733864002814993409453372145448777781127459846500557188714106720626896265041586018114829398013678344884414068048209950018439824021035172042583087741906256004969102354674206382136788081701244173199776020499663053789850965184903704331460760265511412492622495953907999639313046850630380041011523974402558741487554550592489683855793645430475964281245035884783340547048558409954833709734080641348691972324934633578525967234511935873749520262354591270264999159017613710612107607197618781885387178957205642885750088367076754838402712357992356814996824404919746207280855221767936989161912623516364697804986492065565323047207469749655162749940528174374896171972789433639544328315266368784904810433504725313133168982277250944190390667646652119790178746611921262169325013718231533935127189343815336491865936176044654494639374141288415094505675479571312227644069809465965418886069717455775986805169125660871647920152605482206508459175158268018254058443263553997500432926936278702043313821898542886569926282711600096483533396696511739988538353608483279768931994239190981150552043451733689545836968034089827115558145822322173802537974423380885435893144539039360383068745041639000771151719868508808152031354405820079787334636993527844866893496662247280809041159358989223200978266619895726901988172430612097791591941860783297769203436734298384032421170699531167669681644054598081689008396560452281411890301963700366442371375635091921035447450941757957988106422001559305876489685373388356885227554823783476959051079892444479414900829819504421770951162546670637642064906316132838984731996186488975000555581573052041727863254375638498573997069032547924654037819850886071176655778987058359411232652018690272595181948537774029205363377505252946319184766385657513414719865430163019998310259536301067410520587596028711286668032801721806449226061587469366106348383446347407442735917399956242594407899553425598628817107919324094505244811240977688801471603243167248244868573595220355805445860502910316953179732020557997899510946254462657500945086392802395157917938325475219099412555895323193750318284320921336508070265083595073226003638586608852738785620417206621342172437185357366966000747549892742445247448186220549669299871465430563489655385486787632301912807898648966911710462098503513189063951837060786248893844217508102331326802259839070589013861389499119486670055679009946704441928480748325055540468370774390342682034096058414034475585133766510840071470827854718939927701089917421837961756663334319809862985610029078493598012385673279319844124618472723286089936298169523835268571587195759002629001301191223412162505432899449231279968207156340560642465342276944275794315897851787791396794906239030793867321712475930091407355670486837384076769628723679822627317038815763879857000203101183108168019395481979546149415342996634170594851665889533022264323682342256096733670500058741039802609877774824617677195727129191073250469374543873597046052599255843229668680804009520941241843669464525892761784050695771266561819963166014473309252982202548353067665585187135926315599232898458614477362453566253553925162363360618250543219405866290520884450527530230623214815521084653353401237004966912132341961020790620595700599221406423410983139410342042509411055503134767513945275614371387941106644415670507106841420545171211969552117601852909382773527199170213020488117012481522304842391063524811686883122765230028900232888130420407890071248628496873328664950878868259084304863435093804799597509830240751688062030368017717690555842985231803777846673271224136672515425795145306804346981409545178445159392305210857387404506585071413697654129805373007094843388063431194383312799176909869558265808277696467527510388932975385623462892706080678445853181573832071995393268651221966117350325387824120037719974518591969205649184512389487395388598043901544846566461153610052449628873946028262912709887063436034855864446077276745030314198532087713405447690320946795961965240724198017683010831513396649437037601062051300466205336126502653907045690141441144113247341872541780453602915309141744888024469718093342025619116649888920676362203225702353344022314876390664357571336713380787067116978525931522110075005295510267791880795012436680143224141625364413485789347419905316440009219654108739878909641626749416982679815653216645419886856516212769348096215944487213271454852040087135186682845463613752505555534094867063179903344750088822063757856990470581810168803433743532729606638912223715086388867960486789017293674819807701142931322390430519147947936471100048892763499759805342400454555346433724653848855482516930191170131218250109900244720689274570711692421584067102958826046156141393790289831098194979304579900386879390642993819011357876826585760669231847751009535547665236728782127581165163822329964071252148641546063226912554483997873328128556957339763231022797923038962891605233849331574414584628303368088284403066508536214516513596053251801774707741100921917000538371426788281861969131005136787718984854287031001682102221010923859413912788339211361235897402222646927029923532115404897375435919004209048719837399887262061770467695898428066684772398099256824830231529757847122709141176533408855547205343404093520234510949162842608032950225399437295812239055078816161664311940808122049967543254596836091302033173498778630053447301018829482992727379671277133860232869618976309830549856826079061394502134667761246995005611097287730146256731124128153035713323509128982415038150903052916195777539933954179525861982335531454205196772781492428039434180603805600962063155516284872296239956385161578320438735354804438375932300237826470608520568624687396164515863516079554561737387608470868615517159678183672086082927229816984403762630267712752185606830991389540664973537688561088751210248200450346439985960792614932626637960788380696732722252531247013615750408429718611079018125947140468355116782721048145977256949940611720171084421853055192705931060672609109498908460679119669023648913278954679433363605117196044252367841755750582295404633442168802744725167109445236270290722963422609109075048104286279502081733757559464635666305960630317207118882241381708018274435226790376340869043054697909808001566853496070376266353091099216067256654754504197346374181628838509141715481978099755415175763820693141909567046589653670921934506020457891005103855175792937877285190615247713107180820655549124031966085426308409492288259650562707122978052947068212050955886681066679801273784919556508451723598973034992895739842781815543270071879779710790550314284352172013010516688894260293472017120581967310452956042389881698551874117497735394038670962848219321079362534358264618407561743033467875655447117675057437253500477274145367643124851049618352647596258159513056058584678775593122460994298542496403582850840105789293077701700854994914915495743393694586177499311951317550095874272282030379274897248182924581342236779151275744606006144350193555087972084069568090674889817831432255713171193966870384589644109690806149066162989590151835021142425937352608416723755385122913537440591464031727423119222549603826914471687785551491843444774929280262200377377484519516636066081586037662137393501810503541121659225181862935007073682929820129348871373437769291445880395260368770668658198177234962084935032414997577554599617819650932598906075723529384712149618108579177753104318076022466657902771386987845050126009597123298011007442901825688034978551004260403455178136912247829286119801279478050510802898364332915217217751460579499934128053726935912359379861320203390369569754053157114517400554935925599472808369929797998388460719583930860326606553517020699266261925073306047576365944125047244363962059279105719363078740316054897123495830349008940157574129315460192948906946482400366214302347268209938854907248825345925842550966354259303506025272466553407071585678931382217393431679737986248477174923593794252565037204617349361573020847480221394798274561406522063844965537694613678209841820297888311902440169700186167988190186015818061907038868610858737568037219619177942111887492738430601414007443307706786056976967344098796524860020022087203001208178295174309489691151187120450454056547296145785397078005029747287922945713679042154321727913819085098424044906007093750419759045372104236364252071968229251619346579304198111497532843761312125946158409113875277528908327004192453498410374613308968155000824236516582925906390629291863459196419217348418677599935020275946213895742465733237700479563573255467896759357514406960911525500728107262368343467918704303634352495537665716964146787664433491291076194061433740614574190459325481619138251522129959213950052383876556117325724840857831432125248752958779762004651926020205856828249553321479407587878726056155748753444534380440048935282557578809293545837442253942037087239607329860221284583223742023909819310696469905392860649587827935976059507039497618488781644184994513117495848416829192928371806485491192291328575229265347203566316459800181727716768290525895535856781121926262895855806157603622007147732892215309551000461573731944674590621004023929260446448900252216594193864115046074529970963937145640750675201657968103684545491164360275372899931898042815986185349138174656242674667387126806730438052513472270691070376754816922737342721170705812397004725074491906909965608106704853897179773775353073421800332436972926825676172337017918744352081217233865126965152615984244102105792547494459198719302810530448238044026236422320314003252765059465944967099325926773461588459002505898236148160120577426859264742419468307825441541497414041926339369573791166491031276796864161278484874313296437548174467980068554724964791299578849903948128445812194540377567747198398988409007761788347973684700199192664083983812553270547122066928041546250567836238006780416899427165021430944155521646934860168854377840504288230752475602189262152730122029505353553473543498091015867632462602349171057226090646797074177580632102516432772557147487680147093756259958422494787058091278041711925564215253640828737266830257930406946106836508743269407582509937390059333765565705876773572128119289988259855433469226425743624289282266546528640933794500315569433373889611578155199149150225494946544052577902495006611673895165766402724832317833439908241469025887776025626283106613470532566181262251375779704175407895959800917260984759958686892645736847772303638895473627403288688685774379962413041008161406352380170965528555653480266717410782163789618808302114256841159833430540861766241407092947002877841203365790323005797301463022012922203054848696574290732912074452042473896785366348834218567917497225354035823363843456108038012585455737094204880805671357938726138473471364784940396540878622071793570881101860981497910983702775439078732462444110552104601379629627470432387164605107834669728451211292655570954384639454830712832482371735917618386963102036474158068514441264357982237165403600883989489901033756535129773657898109542684718811610412294215263334781246869453906386596093723481392294101699855316030569831411205581536138401042932675609052126501535916490113104693947854302810760835050349730776593055454862218095433922428190369640856993828463069268944412244102803964341136359283880989440942859774527379823194855693868223909575181800015276168287557206703796935541212605533859212487818599356230314345159111514696308784902461679258240242302297336913611943387511894284809780284922811004287530465902942997773823484608008998876908923466724364965858131161592339725025939289861407030176715534404654105850135907752944434343178131663366256309619981782738859983761033891245736794589736398529069410635438213474508475879994821666142561680865192683760718429025289687849274801914394021455382304606312203686592102788612489630805606907291205804776252892032832466323328156097655951436566508586109501317958440366225076072864104957065869044700419415123415979558413209848774463646560051148622154213929243108120597836704834341790519657729852380246236590388526273029386165354648926326249027285732028432808296305556141756528082660121561786882253852631453179768554744749259685141618409535501791589676942492138092597520460712927483401765927932254725396378821921243702873255245868561303843380245246660406469539657106986716195493689605453915524136620766176565510480532293788749094124961151530822015381642222128601142096857333283334506901875963432443592801228796499141031199509320810354442606720051033795010093910419551344316717518979102785917323314815410203847310557216237999241948892133984627930942036670965318054921034435283187104502886741134241538576413362889941186119994511480037980774595571595346319961994849838056041599272688271062156945570035761195116400563097752857055125379736478795777648703846576116424399631015701911904141209047729600229714307471455919338560858398945401411013970576726492569697017541409462062064346730275846109788535353407813609957887581941857586192966964325925902304229459298936326562738209059571821217457410430465557526253811178474429027511600782747730123348715412340604674947274635116043582229565720688788381150391287033258870982944085892267877955210010585561000998116902850426563307477346681382675644827859177853914545433498616425877411438419026701779918693320795610474428624545909756825222281522641171248472633439809592713214924227290284411179337599830442316657316047839138279359409723741868082907046452808553678565221838474944657122498763280846416412266446191144990876449208481421899817799598619409147411320641080130048307633651044338118517502523360041141850029842641965168478725816013944428420905693841186756942886799882843523316550660321006320625621464465437276565057965660922391854426038439416468544948188236396493108747078032276419314760745049342412294758395687643381580863459189844517668543755714022150746949810890055971012974463281343073475557766156460471073722118254709545443788467274503824770214299854878085968204233502583512071662374790314820234480708858215861225772421243744836478521439380836701005279922841018885174459025019106967094066151989783550769677735142988480100954743684959729031138166124208751725936975707724186869627719538995062665450692919724169878282345758401226538590114080216731477958576658714637019644002495097312876548852609731638234289605734924861321694307998137435781323621394161445402108372616999425423050333551218368380129909080673625590630906936994906749684949970988601328574205765870838992316601591272009609062353826432660447695458185730009744259488813395661224528567223174295218967704494097313762183482442123338023679098700802198618450367223190339212201602554046822326275971069023194806796794330510924904395553751129938208783106557541786791411453533639851684937395397635398884987143002181739074092788604205894412267697674997675915897686839897768754645945035959517389007435618998860918473087845725740884869953648254597913824082550279353396852895601848124147408800916105491066501193541671355237033275727058654522265798026832089057074734217476164871754243661507653888597678948209904982395651711798977532670878446780494072740043949105853514967079140420526859889950498750001137891606258495750161021292428375269693589089277552638544322712200677841368777022763100307934911706747642990783835309053464701013240949662683004374223676065883490317316835084107652973325965409570272970383494618973933344786174281478567459012376877125854323211897364247147891671521140080514596872367696280061975184220764798598465461906035667738548682226942721617587690084235159349478350656607067608175301344352402426254690526188398849022897323314022561780170574352579980011814592229532614921792424946930709764137009651724378754650531825478141677867985473632144250968360394230379496294059594241413106089089155765015081660258740766282674846430663614681627907136549201381690774729173330903310897148838592270009804580191402553929605292534038900477437244696155797757296006622637508814669613971607989707749786207561259458622978644174263394488381522811486769975134400482510888359815570766713520760950767392109928096864147908097987141026089746293512079237896212935926244234988153679153681133727316876557229934550944241209123503580075142853646591476422216266570121342766133024539680830377435209864092203629142325483055662499829387255985155928484691038160957309731127130490840823452781362732254202169585424447507556800653918938017545567718843336680850956148982883695962385241571015208282657687771840768759702743651512719053816777314979564520084495934852925262705422570202458381108704093912317389687180604258018895021928132559295261185263422408695821511964187011077090825177963672128569747348704980112227419098883271875341395408023445718956401665535505700706088791508474597665437588010575678793550639627297996831292291641710855630629184043024649587816801652589253229722161801541996361804502347473422880372631105222788140084122346345100622256317115940822357125705143449654126236234008067592732123582987558598139037939650493066796771402227728190890146860197070726182970016100607194959545923171797532442632588355573043376764645680315670393995088569954797245306809510613860440069025475472516645766311708667809848404874614989143538116441307523635662887813949968236795416093082931912764709287273636042345121461117978712634584728256802232234920562324210529611441753250466825860821226015789651710736929092367188125969410162276480731487595769690717381539718130357034488402384453151726382448092270836600109215573197740271060102489354944241948222925705779040351515136390004906070787466293281624735685728238096636761100142713217287355507303926105944182649995945630328029833615110570261542258425699730438741493268224618731969030088065053641535245161673957110616225898850245457116632171554127616493556645211936583273759009963122504839726504858797391522389543182904719830130489950050797167751395126820762517367419418489487928127458540325931315455459525684587917407047771904629795833933152846889024660252143319268085251942303147816513382863329781515655889118189477278465478398728206698430008082040207745927759426095440869032317376617513439098152528990207272713375733232768587692341112849242799080659202217407615942253984205713584965591801543532650468918151176166224945476693219029322573851610265411919985059970489733497425725085221074372524660510739684527362448067997537883447130467416164424208024065227994139745454734839151482430559430550069232754891024000531564004040567011868451673213161265258565360518985754492901492920498701069568356058508151175511906136115190454746983917437601633763976843080304852998306106383609903284557669270791629050385507617616888208704757487429761506882778266583176776641442668868785844837906690659446947692016595291153466413013004763878109144335095882147672972484451568612285887433937802929140122621337814955787247461486388684661060169610528866604303873692548239253325485961125761021823946105346445794901807229175580758554101816535946315097312686120406706162783864592764695779605835909148418495226670963201279362617653964123586607736976162270123886070069844637030964503460526379348658882904750331136669947829577598598437547914273412542118786565236429729551705386074239707571386026341353389619851307335824819947657451275522627801124338248840258013660005447367666869396779511396319409396772887994224440489861800009113744779867107176174340551612280329663660514885543542095181443494116441016478985716264595632114251840578254621150691419235814827874954821014360020941484953235720431521406194324193066398812063077872698456341194359842703804218586909265341235998384458008626889233645458453606212243288152597486451283320880583869228229987319657748137412066660508889822824881358947733165985792828631161181352992405358259385584210892983258551536718484262366970911740495112929669193134029061675599404501576683391590838750856098093241382358436535976039255087061103072731096164571997192781773692403106305967872996877165906540291348791642023392561577342903131474583209579535634938774727587540136892207107013570208984556148325619778939518167333441496225320869328736038030245748710388151256128230451643190358365880927088763441126717846705104205992787136852313281501635936962751300873585608179511754147299472543020059002075889689837827840943120611379461083821231219804441391134629437241524707482649831175447833485424190398466393462451121790558152900540531362139504547971812410397329522814062669150801200247313071073249013510534036347978703049476880896363158713447303239230566957142647536439453421710439566503647361340317471976966157746827940539307789525412492246946115428295019605258022995568382482511768493480613232955714760826992195042379088630023836007052804552364738547681735042326166796968173744443185584901275626229117578370773254520841166809975227102420032993798700250437431088240188621262080821215476744432816420093927561303500068868236229316101091242125928919502919467670634848079507958014917554858752555625376997497419269723619746942978340432889017313668059639021575451431309993038488551221189043611587146838274410142644968787187732166156387518006481998736515588763861082214625678778750252431657018148815362918636865328857756919859137067527155440840250111500195973530606043854859600540329317307282835428371254794535011377814170624951267292737981415260743859966437499098973934601354936100076521119185212327442152352840030013963060479216114146639379917231871536117661151911635078300320616641401663506091625140054128428456051828810139868309657638860132580216894746538774755247698968929224317692341125585188038789421479579892368611582000216104423135951427615501954481696569561880652531651182736956312421828840457596686540604494511205577173893562995284128627675874159649571731930754481062851054955037217043844681839238263431669476848904733238173473915904358076538211921021695325233486500252980105024568454442491493222595993915211778076764515415471880202523958399234533300008595121532546805854295062294141887214913535755802717892085277742534716720201468319265245389182360820399549069086071208968160401285448120199731489064953699589514268317996576428645802294188675997547990698111995938512956243902440658936119162435585931854213723248218387117811350881422270444970435763145242226447729216219909652887339615155859914740560323715353812381864116959500600534963627567121812320321995514425573936221885134490391138828861977224573924700078726074516612251924549641963210320780407376565623808697041473742424914207482096744164899648481912834714316925991372566681052409415184776063680857918895747443790977029437779945891149364752351706874886458083419243617945578462269123039959066039689243595282555752505612101016642581708278460000254023929436021208269948954374599564731249753966467385171813540510714455424404852681540742579160696615162828363569663792120311691012588016092334941135365769593533196155543321473947248154117610581167163233585753579072613957426646874862990643995468851324086416821336032565010276821516868646934545514015910014420141766641736802111487858809724451880401226500564237653082687094452168917348765069246625276213973999171731076475494368706113658621679888764738853591827433336722195998873491577848039507951328111600156220020719885873508211889904692795343417990229580692562910107535459767005142427000684682192719107207892627663197651844105422402652098008715764103386458709987007899403726801302295394991050285659943749379540121083559171528315061425089634036798201824567925552111691784966603278281635486686713707952115383599978439315092640351871127322191647312902414157942043554674773368511105717378655340092551881075163013693337005922314635675288570036653684858178589716167045222238641064077784303903117823125879534880495220585006121188807580656600327874476625496317566167106428279864688831445778309801533872603787467402813065721636073860774807519636629152557069234972545812616119868251704967864575716384043761341670260139517189568225332236510598467231685949388096908256715980151505878645547535272798780422662269007297955805021074584513295048921676159921370303950594734128037746934610485436141134706883971628150766061127826321721580763136650772417805161711636827713466789228017837270588171308738660542488434954917269460168024181849674271553897405524269309008480858490971620395855664352983437079561473175563330036427744613359182256964114473512814927595711119571795174471145878292049094647558037785810340787759255240448754488746304800501212738343533390458330850024046140341363955083991067834136978723593681955196090905430257327689536944758902557410330083776067439377088882766487414529422499540741015554723333051714578549918679801967734832586254496400344310866096009542901562828920237236300551051636207948960135358511032382003710894453867424276558937845853545831624237716624909296554934784741115140285658996055173834278945111023763738106328097896866851346342569884236291837499848319635528911251996851858803445225297181015437616054258252775122752635639624874132221342359635338249141886880523725564501487815882892938097033466920362048945348874044142840678239963766772747156754434794622710107817231483366563947729575887238445072140082635255500600929825111442334997168654846425711462406245920252333043628576466081049031667942837756117895356597847870963775546661709304104357136330720495256698949382338501812351457597046099402091773165666656213756488417882331904667512209612123452460202047927819112382865480451231565388484867823102585292081102227446863043631099720228487806126535805681000887903832474603376585068524335626744327143746963281550820470723523487159270453563324925206554197655388445772156497926761634657512701353128262951742918736603727710730235357506495562096781895771623411589230928649325587147219939878744479588191452209308585988916227089206497674437028397883000377964989228890566340663993298043442398271611880905534724736988853821855261831953805184100224310630698480552111678176309824509493031389932921462548921521125415933820785942495497478356580076185341927682522675107613633208484689766767426490175523664351600800572496198619726936965191960347088075167376105242777916499336029655875602526393458192031832690623805209242787984139418401836885440501144954043801385973063016259693720282300336537397111875214837109815073182855271734738842302857588782371675657881874655612089112864163006457348123426113155523612180929580461584316212504291106374201543921145749206644813445378885754956350733942386553230783820110562978906663439354571500460600997675319058375790316695947011248595698384715267873589774142651568937807117240689693115785924261536779717727013700566406824674030806523293979116405959408741704523286410502857661861022010372059732511032856730014464074888811691160891588276869458857173164245913071883692452351711541706723029806437850004368789417874205348364470560984493148346958453466612768894453533260642900541522726982406332749585694992974963390066120694293660145247880681829357759988616145536390039611019957864806559653732525541558264049455034767508392501076349984820803358901868700951574433623217484896975573194070916795851495607430153104529314223528065309377881307111616277988182320443611772351291678383045163315105560667347849903659307365875277630574381859128903865491779497016636116055004405100408972192662368599680069959211202117495792434532581286236262455079426088747921534203213362465288629293842143665705994347462591643822526090612706184773220673301049320729074715599794348411808284267428669272930505584607295477369209181142971420568326317300876168420909461172163345617300150760714596616119699513932981746385168373575220314860951213195807031987496099611976258127199780239959151454672204659475088775122069524746062794560256795233052709757967871333246149205923415234346338277128416697017921352800654814963470722677646231859313692269698734370288079145784276125932213556765656070468395153124302401057147756912933265729983256169459648024831879835974304487639719332700214488771659653234188728936856380702139919268456322859961979017501583463284719910847217887890831050145429422112979511523520952452211141446228958408404457694915335951403271606558353614594564051431990760160477433259987337916753963588701334683047090397144312118018217682510628990753972906046942911315001340500333307594603871265258928194149649128585506170073114425251994217084518012344226521923772806738946046899533404742313134705211140021937866594572569205773215381392812853895977140589684975724648478201765431120373363182770771908676877773703165750902542147540836519608757196554063355058526191631386347650794947746818409404967090080636582002418641078474838096243950100209605726468495982537920734629721236195061117391809420678654698032362701381924379399800857041412933998318352242284895053505253739050338055564583735486883720440560852510124023829391196313315926326442825826745952734944151046840587329036498715507760528662004418894655265435078594355543108323250104793089459139486248219100613576499624611208173287446305185650775337970329335162320771385839023615538634176985188684097178791332189744131260165575984775049021256566114569342030675401082925184208036891020006282318650890768636860007569687834183750996665859424473734094698189439811409131522271704903698229627443530280119460140216144143089464310983478550250582022376487801307918277549804205077545450855484692543502106982572465374466796288942741527808511960356001115054204983157608634709267431006758805695367750720205424864169423314841252468185872557862805522943344439257467757960516403569238616814196559601925244005918155142633310603160650929096960122048271841573435716522458557913674367089408920293781901175875487413965874957165656977210232614782191312904373175445045903947178554568291317808078217903426222600682767046614960309413760504735138939580312412364162369744125588283920774522455011418671845317527657946406003527525630740443785514966305513078203366461098614017969439230517529223222846821194702243066250390139949610861579969079174852196323849647899374571305059771687315178180931410288270893990630259485392871279760239969104231922137011573710552266260520247461978716530885446967320565074003146762939028253764522582634386331145076608835079054747362143096207772799672662191763889652306512781020248777457059603233167984355715333958552415403601438983790761315773430344206095183257590438672745013524200083382383120156456597309325430838418906721832452474481488820560142955142310571741648450973003183554577852176446661781814184356457451864112596444297085836918570659582819916843098619896247848957035820631042239523518876190531867881817852571869371515663530898515730732231708397462223705062239039917751331661494622858198928263398904205457636185282025115559779645643837325242806091047769017017273515891387105477469377820686110490712194690331514583498883208553835700277634287069694220800701205667187923936286084864594095159889389316051580589123731074538748105658560570798149451156851174870677022797775360791137022973675924859413349018470865963074005521213157594477162224235294842760976801348099466118657568183224727872871048356815558959060726862284140516188902391060121738350638625777024455940203568270022980527042693781110073311845932568175875508257668728927961704892534733094666635772088969095172760472488106100481008757776565831899051805956139915268012447345354033070810384369010336997012520693364801415223161090018932594554187518880330784214447167686889268300261331599831482383191893862703125886961792645117053661858179538843333420621720065997081738474729043252765242336760556255462251940937939574438746881659624706699958265666342502189203832179062365022987153386759412524699585543937940054529347707941884450704954300219428106252677062070563002713847077397847651426397836009896841173954931533849844527219343240433680748621493332407526153683492120473537195852096793556440678555513327535347902647850304406909338061387733064775038189002092070839695047588029469667517934890184537955344201471331041295169125538538344769686345029828057586607171061442076916131865229913835928257351935836639574573776329900960570486740971163856803540197873882785372735251552637716323821473055362701083734176424505894169162569421065640810443378756464485140114705795860523428730720195399686268986979014765347155180633557197368947597824766845057375708563645445521467276388866588603521286735036167301345678421003114293646150621987496612831453556076659335387791245883630698278390593711914936753968014573664785366469236789684354714453236428257537289422333328626188969598603690106470367746924979717246001622608913366416996439567178170341618170664686623660057133683635448072093946992194753011983826363712231635938689627241620944142049945149442898450929375840918903825149240503400894203654226189197104174023384995850052148186049958056480243155485032571518688477351351385486722897162007431664194940940890052015896668617200107188240935454824820242603362432160338195642495487499582498995681551325386395576328443620887801345569317532907091582550847005515388019028104575163434036042750058473849640809345481140226325985548150769833798607636574319268922756537921684285014214970882194917607037194223864034737115716749755203356320248351578971727377734214761507594941913269366733742819135392082365509498058160845783027184040821969323905029056609523201010999631477428632278996427511082325482227585221267277458036253444313669575428645469862415011158716799077598893825010161154454996396059684365547764313604188698335227639672805546875024549178053427122439582984380409779499372919035089429510499632548508856461780851042876516425765229638694418991242656806003443895493463558511484133650124338158650627790198514411049823782843901641130773760918151457650863375082303079252139060369334348005219816960161732914780978030467801903005863214455849745231237739767738171073033688975828076029067373302406951044765507272980069319441196086119699442041460590779299723924793705024023555564458758767336217090415155868979401783519775053954065312699778994248689874164949696845832287843835874372878438723855878355113124522523127980990559536287602482378134922427233518853915983343582087884479887723156818191341848993579919521134505355365689618424486946766139978238057857005548634700023160955002591829036693496712340656754307868891641883640932014396221751714845200542440621168618104109543178326499456712199296691092033729609301656021480550376121407319911437355528457711664184779034968740580409963823839997814131125875047742139733766276900905711497652785998924538397661398992452119940302478423072890180825166962896117261732703794709212893958231795699618267509442322590712875453090527165953306909782400487981249452925366766435347699244261029631866126421193161387518734541827934696837465920932657237407435044884841303057579215854589154746588289850395600469819439593902169738968557045871729733916028454645746218791393728320605964075672203557569971091264798800069229129290499183541058334836960426310754228278225834374086864588800984394038613955312998089370336345426082313377604457983148592487367104645224225050415154893312557547371722348143795906913329892242518559439234680629054086794358204269738329150198860401729591459824756651492215038893581721151357501168413239091858113808368655780456238470672659459266662719540343322584578182043826768101577419641783884947067827122554987615909506016074937415327571317702846994622660539599644108170417706343752681298310348185459639354835239147173985044862604209846965450456278399312863633681437088206548172903274902993670889829842762545628891718038020669720591852452203855592032725495175821881553339093532259752472880158697331732806787435973997862426992787407707921356845229737434583328658322599562447523928251218501214970250127469554418305392838611117959340504851285418037569503644457113234460779168411334230262287449931718791050270616717625787324616947106686219817781816828823622533791420925313200408415538414394232680156333210440033661033289263411811462273065235035484418302872898037975695887361929328240059256064960405558160071779453726002520787977143544716714467131068487205934811249864762941254225771758898692524817240514582599377940131316666701757089263375364194007476863015000373106158581648030741917997687761483484471081979176352878967014004889079798442587504518230466094471579756027393715228432160002340511592922856020646964710476277579113925748263676397285983992554629969005761875120845005696602544128914531402858191482625342848065392984344987905770775505494315850764299846759754212531595935138658287114380746640788922562676240959208532399338511339536879473717511356145203373822177154003089550474270659387498025428060226306402336586727104565415934353151586592470658062435529411470234382481450628389572487345919199970952203453995118424290616225451069573083588677041909499958690456953222098445854760211715950655611394650778109233558779231982117210113370488841597735850015661869154971108664100026461711075113711783587296804322011802535801355994471720384736597866527679135733029354030077940928248031110479850202414811402292840820306833400104106925311118965804383339101935296129958242612778938977118901541489740179916846726052396574896607531802982328747030991792576264175598420917522408759860053804970341280982410949065579333192680435100925839137739677180207507155256195925736517448293386820299582593977438597069810518603778758728943877830883810954475823413127454739318591409611324224291942920088436338431678242847038639996065148122944031343051933249535383019699356431522364818528559110612098453128777376607282295467588525360278927324847352361966211879600697323504317077056834010744654313093144909481932526682176380576295276085603632616282798414715550165805366040790238861360384462746895038591224679089666383834264410506881060763263890915172327890715168886859658522017097513124732472978442360929241603300611281888676627339197378527225862705640053334023752483298471915959057303760154342557460781282100619348469155572613821963542387596707864242421130057574493633404774060439300077734365600013488718084889195582491829424368734262272956804658153216291377627270971184030886923479971339139897131905640022468404381108494832775441615098716880167162215078382609932348991403437261100805216177826814673782796041597878620913646818938886768658300417668129907967066075495804334801973350786283465324629186211800106492943327165732484815265881792095660201188154584071569962137926480374476769071755827107877006468341838081329844040599710012733306410943696447133338056557816885884311249793044772375566324873788688696281011842358858986349618531679505396860210454840445166352730977386560693003071564870566365467644525568319143939499210327776625238666563242528793242205677223073783856937776908299403105685356321565107400556386470141943807341961944974936197109132663244949067707710867560365078517533697104110877367436969854598290448032392364378200192852531196034868665698587306146969913506406760517901242374461749261581101363291476887966194746410795490971323333395233722265021184960476314319919998064419083888096083918021939921826588680874161523148349441410067742041792292126837746046935810513292285468108113346816310374021093498867510125963191777201355869669387537639435767159475091506823680187463287674864731864847686593234304852054696076621713521568783342392379186144165167159361374784392335049303456502854272955536911074454624222468296335829981335583977201082598103862767288565982758414311169230750847459745292319743676814536097987338895461525723869926817610979693314269915924523287126559903730132498637525928756401122151872011309108453530025672555571233780351985747665843063200124710999320930298444433195692931369862948784015753930310076475519699252227816911288523046627542377585292305269430516850911547344344922201704412243719938052923318766465201722376696810984468414080690290470912388633952765128236708784381847348654121828682934910182440963235513397375352932207165765827703881867206808678964453634569857185079655911413205847712493361483148356652898706094775651905043555993042835998430054782298754565893301325224612960924705272596553017837471731131017879025549263014798050895773701692550186544294541076306342779901418294948489933678651569657234242761669213717150754741875918027459966866874066642494852489455087501195938339140973980617699727022394198175241880444208146756905484537985054302938961349731940906612645386249611035599947976347125361962468028033590867381589535567786065448966186702388278301655842189671447777835547180791541776550705868416159605651197411855144052039705512815313988997147192926264015188637712618887386481959590031381706016417045091425358619266113397140382334482118586939287640083111240114469830311371284821470878620660509145486685835180907806848286761894988539698368525307265124052448326739986955349872697765766815558077648108265459067951361500417762293898041556665945072291546642870038062140399281649344007730899477954100584180653228500106841168362990748354456728935146553632707601820311945676878941102984172535822083998804172911142819005678743141407089007423482480776341381763989959605537524074556182025239340998275611821229347610938129412390131566893914771205288394442934154491365079413726958549430752009207153716584880449070390789118273504441476928516455634909073930507185680334489044527279876558452579509434644460938061729844007715668833211723831115523230879489428071210385426933962703882845876562698677174965256142994009642587561067725799690617665070385921208683730527400828176728608802899903582712364682524663473567513270510435493174963048102582572487651025094190628892866380610142683934594390704257991473855079983919334407175733040798342310544114400090480515535517052731196714468977406287702014175562583273056769205936596544699576970248773378679110787947501715494542630601181003833960228108055697525438852866928444328581253192108469171742715074355926118960168460940452157288093882682940229888905434017323737570264695865056468359243451440337154395083624859072608862308946663134236907951879155215038129771330618674782792980061870742552521231892071757445000655432610897454232452696368443422922088238862631328383161627213888219910048368038312141482120703384121369625401194981435543591778229924323124989601394349090498664655287991022503479134437301526723422656860942753990812730665603103571283897735061438114299716185101841400579961123246022150260274135749558517099644870706618225827035598247166585325856417665730935844605981888784216079799169631179557635965236079872740428677216729739218073285692333624105546808760559987129266455890057655210017322744717675376865036023004693472139460045635132376301471651627659578646037720383643591908882561387416090437528122700076748566656889663312170112338018468030355486732015187704667862304180439178917375423971462693182645116596938060456089258798523535370979810604152432508261216037983828919700567808444052983040899884242858018098011025040410028920438724683406151910220839241802448405619910251223848171434444978286982025383113754981935410056083452091982964830483029155636434490574076556028710013431737112976840627518483897650473223245824764280659976756430833354601917173393974368136539778567141721705154903181301322508914551929657347740254974402470399262350337722589245937027751766156742153818173495024691926920617236893579492107136636649751071066602978673584489845362014421418018237626024489596930530265657694393292229659347974195383057808723160188664507942574064333700898398852837631178165811497980481519179390525539298394785429660604484602700715968774870136982322597521511000348958833614786434440082153693722769571364730807126845685819609679359426285956295852897752921685886680616151832924293435291659971445657020532590964033211760881731524961844125367818630657139069088989180215054663967915076276114354707570429034396682325699460670899683880980446297803380368778210984967330158791046162203203112206398279997800279507834128933300377393625248727607699149142426381754080550890148303660425476300251345856592724667812175439799252125901588389482066400727477743068475301203057525953579139645072107845864484643467903619148345652037784954121726398155110583377708960100648436199790948685150512027859384746691674985853916619974558077960335235593700142339986454927109766233716184176077280262362890496653381957631328630902152078094570348013158380344781184789546145513230486490755321276765081169250529858333550774320182310653343845634327458504914091697758491085463553339263243332103474135582392953065245324648525940400806466732493579563074150760112489277695565306499831744196043163839925279753558927917861718738122277771831524370129480953940692514814335482227719247640513007544462836088603431266387176432565234703776193830926675028927851891265592850750913037041090226406415894840329974042760948872362147538764615381040771825581301283086025850587885334656966770211461809413891466188317629619937130714910346986846244535880807738221998336986008626152713584079907782045674235569926008560476960211985937466845872862926469572103252214115258480459855709834207920447235411579583821419658526687059501754929167795813757410174510047238311300759720785549533851347641419190931831741376504555654978792722734450476247283893234975676161755022096509100611380985369276360953270001842092470550311435022982575037711503677946930839531180067817097136460950580936078736021558429774071361890764874544756006559279715458765824013032789394185078655317036884132083957980083031966749958344568166815285807254272753864012235004691542077938821779527940978603643902161223436598651222618049040650825372191589127600207686813612013907806292228805102992840533844291388554127680022574253148199007336511464760490145991999149451558442581248341271803502279617641416768822645373580323236696800422813151669015930894921940519994079099403688100614231887772475937444324735326561053390945561089902569041650821481584047147728981047808942891887371743464207799087842362107621161030859994463272745195195602840657588821928046201996858138012459515393812072404833455574655625958880398147678215953075560976893160212305363238899517144346981753695394054148343527002830969361281710251559127405925351194410524787489882855193307856195660766168313875113191516277855832906404601316161735124491860495574331664236899981596744801094922725587010188558635884446439233797366449061338205199848699103167647506990286969391411810680491030184592766530228656568307791126152792156323801389127352204398828836899284024901429958596971653507230536504932881250003899172892483170555831134084530909002536218864751663844767587874028207419363857188728228138991350795312373471928602987801053694147735928706959909268834400259813664589344818889036725396404704867577474138542377043275336417924166444280757977582619699962584616865518656683047150368665354536891454577577144661030257094224520911057853176792906401960511276163925649105360170606988430577332434875377829504479505339936082929838073518483090697717573337412000994487282309737020533361477633491397445732570264946514004748224193635659855537371137345822148137693433276650421740371999216667152294102166798366102279621848075937562380826053977576762420176542876585631104017118653098895575828109844079161188083524248510189695126169468888535028583768205658580183852604396167044798661605873377923308320276930709076415517003497930292998254111834235100337737551401699776661576561389470138166555795577823246224661075129040290847810861122463082515497402986552062978272737539436613595427796787624458334142587186688521554415077265335013666753952377413734289001766469528217714841999390481600772114977845390989367215585313043769491209475624860917933694507457723280971131875190773836314077362893431565030797776568515502475803169786990871530564873626124728783901642581860632480868132995113173856052792472152132420569425483768726845880407997449639401902116052378829799078265636948119480001958304818461321095842262070563228084451319288615927376224952419589378597656542177500385785599601012689111087353086418704450243483490157401680158838400589351407717053557172939764022145797478361452610563479502968081765149106697959597116596530402886780537280942729599750923970767635416502008636446459090442766120446771301688991962748791454169257486529339080540658029168218719925982772538242092314623475812142801500541424260936858740136562050019879816503597962247159238936806183047759593733576934509193420263218509954117467925881808553039997026385250070057471815622519863308725745748596115569376270338797597826940098115572229932978877767910101661937708267675900433798041511602984430918637814102705457105198486361689897007627191113055606871706373147934958903645518492369103851890957043582641456328652539387883643509018310784333801279840398391031225762709909825876775540946472945668042850301709764240737468536644274799167072425054461307082871454711645327054675605607038295948051417189788079216542604424730429546423104020444492980662062141999096190007207325179074737848988374090977007766825505742561241371635632310519234176496380597531777467300386650203105154032067181650718892894723596624952126337346666143387202501115355128885413581821103745248586816663987048936628988073185032638364173115439418085240359500509672725553909801494384980860053209869029405022443465410334149900531963226928601599120025194861919702588162702280920798731834264901101034722876849864057449927504852088688770609200553009508800586536922880195327460198865465180511028053147229173012935840039686047871766782766808870835516281606154685487065707867219204236949239881513857340139632422810074355852342693402430171975379251822074105214063287884724112663814403651886271193510336683066710675863604407158969745646404659441832990779465022752506309861818996560963320412979168519837540097184149685050554406750006789646920445492982307587578855805164020103211364217411270079134979301583270919395172451661076595484656023361184362103928186847556242918199320921203393880141975652296931522748446828727479774573963667277907125560626992862358667469092537753848067790821127135452013430377450460081341223540768165861264653817420613495194138500585679995364812409793713479083144431627206176032337593329178876671807629417797533938880224719733871613541370144625279973395989522328948684550895479710125778719756514792060405058712220541114027230922740752880839018533771754336829090438759615198409269887620807616091957061809857185952955089083384712494721019781448525893013422964114470445026674013047017167561969255334067897662475602031095611526922420079665937453181353588579368009693538773296847170860382522642022869455861681368636739717307217409204779063283264375443535123347000664385214144903445783331691605959387248467889483425424156932589534984110575271905234228829292295181317180271355168802249825091043824685456998228891769086862996563774133899589057836530777978608051180859565754348508845249195688959145879050888569919882898685126363675986422128929929541432854319102390249746429235981991540235563579208135889929356011352796269964947187273827425270986216571805822581738768573965140508824624320956592995386341413521642404322297152268872572944389374102731601116864510613118994325358404986326527587453740497483671716771766267985341353188510875557777835427512836259328467122550030224124440767057321935600229068516262751152191033512560270297435915596191098594559348600993465861328831507813229778569399800547890810051330721436505059877520918933889935951299969752319889732403794204418109093007356558820533492845678114334320396601723746557248150784633023626585493218849478567692960600458044250317757126521818659209291541211042939628818551586895080060794321220524961981640020736010874152118099620279733050503082756236057789273964432143760255649786131525936690895553602746196408759258363548970656694921594273077314763023693004459976193747505736582196571516162116849181205973056091948304751298377647148545698090640735973909906878594848450132839392146567845887838084494989874105373252290793362254782308894138745015533107610055478917316857677452857857376416953384393481138149991135975684459135260955520863233224643386916899042395894909171011523844050355807531919406360887615943177444824326667961272686553689949261679120382987715747400984387954755595236921111498975555068884583576333158696854400570337562448158907818477211916983833514136883760969091177186921910436032132100222288074911705404364606276223676986257812720905501370344049191912847833479699821916802556462975160268312203569049444772987489563473259164299723736742039796318106260207060760645687420220074189639065269400074656007596309382042893587505824256029750215807514883372779095840455167429081690645129215398637906971230809968075214802181420104541258833657307474030221690181492807260462028797262950345104767801387174952986466639403534492721050101711914998796371495766486262387050140901723831125454537406315290137741958857994222664018964080247230292061304253466436180767782151713459033229887483895616257228426774661182692671724723744511885081587790670695964155168704709296774744123964537257450413697001328699905395303646151836440478572861499991714116909247853958200549358150172004671324478984565926384250298385558358249504077665561542077220237198281693542355567836050337260644289435684664993889168677562466422363194441612338086360677527862177153910460894828041747856188629828453290200591462228795992307442195761459719660055535934355421459254074910699840793007050703177908065744901567954793971687269428223234253690380906531142584139053219901459844525938900726183677063739977301342706368600239593421060109689086280337532707539613732218942525123705218063969068075165755390827659444124212111240918353098152062677970273447276385936124826522363852226148034223467423892102089931846624727627955531541183544444571144399263971875516104620926945677731888777923643611551659433058713721945617050519307158873405526076950451278224255339973586624338105447199517120295484676652915779717810478531543971309969213203662441044444262293184171681931642140292350264080163549189805932714635491155995132695048824367244001748441024386880310724192240339007610300918974901797590428038132894117857397402932867991642607368459917039795980696039881388340553938645039808482749165128886241554849147350447467082215264145667286543657533810178173108584856620504214472873457889416415344416472956574259379988843371876145286262179538473831821049822754695079455255964345171695051340049475260943101378770718989899564241070369832876111025419458874822694717629094681560470740234012419493726833971793954726396988335988824679507387109741953860495323576917953320516571458781146790876116546313984795016300567775660045996012622392851065134267450458483494848891685758352095279457732326846541759224570217204352542737526103624308077260270602348867457876129028633010236310054161749920185048092359633799713386965067180265145550322962083820551007735015781797002004307864295478111822193523155443443407860283771942441162812866707665496744061265870564838905972031797608838848533405387630513343368964625550642604010256328561242252198479812149181344058363894713982177456479069775323942270435120876660000223241411513585194485036172009655902214006183071489291388932150114690983092397951169269780176202958649873605567114207145089729405661609509232663255628649103306358590335686155063595684654876257405011926261386625101999586065845186266046806599982130630019859348785993436740578155687435995134335750445754551775779500446095237654499836482109990984304609015551442881921822657068018656639817585050114440506258672001912045295121303871427549246421034533133145014922857641833108362862963252723474948654632135544549187513405320649369495646302183854325136916769978251984938529339647617031844262747146046106800297475781052921512287576950908019673849524550840806439437391478045554454683629436554010847504316370565239317483058061499282457682493774098678698245458371018832115179889781308577875293593140760503050178083054552941074427780526570966032322945244741898449266715894651629089273457530179069897480934975535259251201923347007822389110905407809716240764685746807144134608084022719533487069742019306831010806492487431616686862886328434186537275215907976621690432745340765785686976127994801918883964962105847681545863887378383206353814199466839692393638775058065299617353399724266204747214763686014444287009258651026650633164167898517265706238541576516516985159531459450266045445522290189189746521427184631978567925264636227721167594756366363287232305687258744827099995837108717186646978878131049061129157795111840858786452031941301435810807155403702024273374442005392885419883017877964395987673157610628287870659766290829485273809052851236731397103336708023426591441912029870005472434175659147008570732988665234704567874089118643332673022520322000195020475839182651323797238421117735542138637063738828011454375540631786910225644631017560054172825235322084733988832337638964068829804237867251176095305739679936815317016787061803747878551758456564682986502133319339387694318199867097690328916967401908703239503224966862580262800869146529217897738541508162662361218438881385535750070647425789770114380968618121394686033370664500575530045719216178707890176053465114531761264766018300291568724681448440672152315720020257990405333573503750092182895777773887280763178410906730319976225116769929910132211042640594358897778290993203717498220799154631095298710724001542493573017182780123042699933141377291344270401533622565230407312991911005389855026049468876001109139261017889283921933930126983154916061773766130490049401940961124361284912480487959267954464791418315649956526946106875502351918088178456047086361429516998008503746772940893412948833880366140109569232000339004038669643935546812919414597661981380405603429579787554357872274620449850591329117916509687376215103963396833496395199656826308275881976811255827154777442226267704098943497025153135483849839276983227406427833381456408671869886430231118700561298776234034301339201043641557733442492963831961304803429660619627481053929613959129449344396907606773107946832579085753016130074190861218066071446464932209695097139221171445567336461224894643609408751971856768294269246542130423122151521639544760818925604003072859032986504320331340839768311145745509913292192087252972503904151887288574861904445355565603483802901431225541899561695534819790775431708154566821266965967834422941613128601960541508526329928650526290534485083422046484413919105626445374469476837830765484004251902648076191225643910338279304095920831188089599779233500449665325708093275317777058553873388502623809811330046165905922680718474227847156120755372517932683467060168372360940582503997928371708675450724781088359835530847321099847352407250058937681234750804995355737689442866860365812045000821390881531793128799851764724220045141793499576213728975807492242527016445205380754223254008947497343105164091235130279794257488274088395180488500018418389281688163264256030183832390757665784424588503620638505370081623146908728987045080158680478365702643255958501429700042864252180442131152576391574968383243515516113820597807037186950942993412442100835173415760262431336266191216943208471080432311934046817437676711719111183426040194575492962621083276584874840617170025307118565277588294590299096860103255870934315165181493222504354547659379517510794697356176552635935100624874979057666689003417454123511324859717542994261094316063911024716426446742265496458649318935475758186960809152767987890659777703539262286623617177503175481555989599975929391923475178671283227800260962962563153643583346644229258738805904162505758072249895529335150623896817689212948729299152793455392393741118022526282138789754512113877897755721568445342470725348088571768245248555366842636177973171224259741495602299413603643076598343495543875925080293071820820262511679948968187881736204060834740306934814647323508039385314066764056067433205391926282041644560932313676806802440336157329734097808386481692103932369566114558431716791658493270642839377524350188720415551600601215006370738075312361651940275668314390953774853140664119123549218319363006858079774824609728262978260467502066803711579084219235224076749940051244898544748316914727531211714474579372322601329295714189256684698435847058481553490166598335746475455749999824383589949154079888559508604261671454204533950603800268064635070716482980531779425144648957257850365856570040518655197376008361560795241869614872271904242527141815895168487937883053988648181225377772308132201964931061119548706925474864365791968802419742864996438714427663748205653261017240638321570681918877671545570449249285156957370959924185953216565086144724787712204958116383585482956900846756117972268231641278352704292309864690264041823728510050318306559055970619872444918253984066848896313180144394745328497545268336795218156801193853260732211717789082859662314164688693418389621645828161171723242633337194275301534181454378435817230377791109772148253379370005361533864179869845123822109957911768443123561830867928240622287312328793518366755245257598831198686572692168938568391310772449039346023086711336995744582788790149726283905939292382662702065076764460881311707150163036561478150217358125879395321210722322007079477688270366443367102218662184532172006360428251639393638040184939772229729513147224139461780403238764130060205756987862578272218402229387624839631233412430636243314140457286922820354294291962290635551710335453679179406580510722913392977898151084290802320981438768705276810273610979385443098224409070970830053246157589866588233665220049010731724976378329656067850056097550953269275976898061119897002014593671823001123036377142245507105500673801949760660056725261782795802156566763121541440771636487185493549880082114440306438530368734317482308034575978787124158616181021424857783613186431367300226246315745412238276433444430426100321204612343487241634879762161624068023341765631122952792189093732839009554447680893206439797579018151105010242516661115230658181587929523582466639552951482964978146293485871283547516739372736183007318014935427946066320965865656476859368862750648846200980047096062234646273746211490756987947195762056958447699223176442249441587856962634151446976429694211344560635883858721654161343891392882031233092801221728494088419570186139928047325154595198440128920433246735387754383718297461329690749760083210474805649439927582821682747428303107586012134794971425150446293002380689520912861006385482067544962685886471693015249799852666111429787855471469259378604270891439775482975009806025037465250445511146758114272180244960564351146840328996756781287106453575612967968745275149551138046634136053109164793865077932896824712586518893498489715509364746264587094577379969201780127972246581995431922043587587554678746939020665791644540588560289518644750809013038532152215886572177954702686520773020434889330437714725815345565069901317555810227687775394062642627627092641565199345645659839560101682650766389424889387133972778572051287813283622150534541025987392837449578481233398681463071204892235143144995183682985507226621000121687040131640376445186788966838727118165834905066424779175970227783333349780085605262563848789412311632915836983095360406211721732621803896979636069645584857796797888492254060898009871998732477835377109717829573393390666546795423644716061869331472530022343254917694819752218289686412245780947414701165250511172622369838073543270554127447430004000221730430582297310928285764428668806281410996206030562786707149293122967105749050340957754204313247743519298300966355182452770069809784571241815564963965775318628793101587607928714540625163819272770970839655834814057738383565221049543694887695989722458091323710010888933068775931011142042457306666798231977425227962615553876255695282290610597497994947016303475259221896376405131632091024228822959721948465364669412713971057360967345195065496021224798284353166813309897548995403554983064355148597994457202975637236746409838560504158979521957287463982907384051675418024499442775863779318928474786757617913803230852335917526805618813905503166346250738755234850151779364608043214965176915269207707755993141703545231114445152383982520940164580822813165696787068917172022624721354049867619568899723542962161662144851325446939688860897414547061657179799730466467452280274831566481828118430961278928925424287410675825163564126568625262601951404936158677734346657779507246842676193380264011375026846286525585270902915871949790434239618780474186535674357905530268918950787234454053385538416327289789792825259887784624435888026112371225259802569651852222845204786583619050844476019461324535193241015417965149573119501930976549116817071137557945454824969627415826130511145269856271414295776898267060051927426739378410733754140271593309643087569970117008229585397318186111296939045981112691558148397212279704286295612490565127803071534965662311060316684595460097803338562575173017747455088723697909215355633909580432980481516735082967052001795875948456402064923667575877938952664545844909369946244400131583417969595371015957049829969168307805018929756540288512296630415442959646864595683018877597654229775275921863782234134255658655489627747076886519822590274424475627133987396060274318810748038573654274577160563480525672369565203794105953967956611673086870329795765803741982742910778535063504665077897500097936700753127572958949615489498643443362087989432547074651770299111348024018599450691109848642110392729140140933245671847912744505928503850600643200367356654461656928323477460172806023452198414199342745737774232366149199232000700058394385388021398315488593268423978864398652826818909647976368129131214444316716644825466305575772837256167879488138907184384965434483786938454464171577331027219459185240954457070160569732906583264554520150013946782568661191827024805051257840990898573174539711540244291774896007179346979095633322402202055562327908996093858092251675702701990577448054587398533176309254971639573471317431511812434498402874600127887790464187554699449391941140032481520241003846097757467958847442457389568693227757975453006356911247982901519802658051167066111535076771982958159200070717476341326766322282660621528142673501501692070763665629596522629833385010667367167980071436549980544630632103744541798595632766357796924656007716430122107522497876068668951357817606853662350685874544172159250069599174218088409746815602774577976876940293706653946873303367675674637596561103475762998704112044991741280757166011920815636362197284689873228359593019490787118929852166297426618052183044240266735377149992038558367841183303312061749571243502555688242179318969331094424671803132904202732493729715813143478685912093864491887875879963198229350545093075641492780789304880024372054649685426689286506039783241845264068236466851643060394603667730124075180929501734468171044950549639853930836766012674359226800169468497392707430834109464058157583670237205077909302843694818905594897943961885643573701860226947091211156237702073890579516755603194018041397482716326347124866810273146946202075036460626911885064404208135394336810737023396225204316929762050937279142150147413244577142801185389099851315744465801013069735623666796151117020658794058702730738778923833120158014361534998468619745969618112214420768743850158913860155327464445536488863449253195474103385604593171767098470616783444188283413742553248073070345264626104001679946420873161794005140153377196847925791338762484819176777014953273425990991464288103466395430246612705374884671450250003788881593637096018440918146962603938534222844052749920539028481491824398315559156678404031735595585064213252334701357468684491625720672950575984954294639825943463083129098665292729202483693673312721248811457539555266108374083889300442187382887811201209707823527956188737019553810803675221163012287616241126968783807902784012604621095375268614079092592459602682412839552639544229865297720110715735384486846387476437145138592091881397862011965802530183187796924379266172864197902623576444220321542994463405988979736248826161464648474547610373659535535001536615443473969036740710844752191380364290630440762809097613881547641696715705675733175031947992797772578601805970667251693369470419257387367000651892071194612522496443599752421978485690999778801508834608962720072796649882837626484850516103263991544780191167265027396793740968655519819594072832503707783828572754632152762926061118450448679754870029454120353487741216618599824800322873748816379636308241454531506532504394801801969968662320270564944306406203569961235620038983718009202898699078475276620900665840500218411575806352568639990654170350984797715257656849444116849843791048628505474167612321935985704375850393050514407696303743974613415405771367304628829859904731910673110064335529849898923716706723406844077082211279685923978784882977262547177825708480061914160108627903322914022585812558883884185654724517030306152017867595741356089988061271395897460035713748670297986319277036645114584569011085900757449920033629571588554626933930217755640250906203189789717724132075505377498450854909489529608587514582864171648882021081602690627792839582127762595521516533365494626025665091507042780279541803825118152856755169870321302458767067571312138909722502730161463708440000069990715727916011594015648273661675213407619036363397164839505592997636409768778292837464137193370850688623838402200256143468646628302379838156392725336729279843689790285690093777892341647432509384196518664128141476416568883470722689737890423209719394285138751387867697256247930730185356322583027544999784668094315461048618925398693943595199684968517879580961252381171651976484532506648963387706110793394766275015873507454612008798493354942005659503143260750162138486107039175740499713953740080023899224134484633605634396274402880948602790755128413350874855228433466765830478729596045538565967271699314597177687432794435851262851856954129846629309141052102347765174442169154153974004247467581276069719231210597590267645567252490620958931886591704240044789248611563928180218740205544597061642052462124006854496962490705811977205205483894544263265283195161664722122262913419409784020896809033202873743937803504225118637676428622396595516910281277341764710644078853202855732788945250376692257516609940842331905184538682348760281686269599238269698092328000628904283833042369139288250803528144726211582836627399198777895189282545410587228712363801445846775072216909189600077794753611447258806754807016964447355908809238655067456345894404436663890680796467625617075700586378021664612810179907795399696445143864903886131446164001056932643357050561913112243398608408515077577549734992427316157730991365806286306638432266115033795292624507179448789461657577272435919511520146673174095119542623921913565136470413304715933893207969460787350507236614186666733044829289006289956821573796344829189259849999711724435889714682696314209266690791105292855766144436529079884098701998008790593580162349616921561839510350859419448035273227205495235959430086077504687816280702375432189453815586241422290521850647845604893030352541469673202350760548689639552989195111476843034986310228705171970369222568832015808373783210064363649533216727352599852281555185650983531619926408582035756116308866119471001558465874406011316156091124520721881518495416442649865262038109252860176592576373044247966857396090469639395035840036602936498722959004790458937034677489770205309871152571373648508425876124569634321446362583282267662326254182711941429522300465812167091647577153521852210679175093710311645801369947566594969722902702617381049205591408974478970640249794506030705437629853116030503992476027896611561419455279024872701832702304550698448195401729190301241934656341380025580325137734809398369195436368319910574313184590851430454707834369080336440231122581416066242041153633076695531805508199262327338891100924096030754359199205734497186039978777137133425048671639840077063137640166026816147053523421182811413851663044147809626879459973482634708656082402729356883535406076564187474088160317717098138819035729037666131015045652156434161880306344154615969604319737524614190297223198226414145461025154600592088467022568232581551227738566366123931126813217377325714786387108218187573360605462355952877841554929398714522108925475602790971129295863632058693962614427510642979199882038890352944694323221902729154915694960387298380192284935126606674117420934561783228354359830035414646257491369886376769347113487544272238202612210528181262120289345448620547969708035585369102264376492211663371964826251854268642196243493479106922306552203474635964570995842553514001980541296103870621072647060529007065127366977729151551735537561362621959642567940797762462785234728013737178895787380606042995000547788814651223254432916780770726140917274178002028483205837594764648323527848123575921996206636591997761847733244296296609867361847143403147373452900302096900716040011401000518895328437608955804916061054196085989201697417528646710505108441007299907505099858739737825390955463414077910174458408295803543928540010953677801836984194458751212631860728439718981476833260883210203795121712044623747678090326097122685459920415565133996555651526348745324303758163605296286332815284555677007818989779767513170737118390084351527475878842281730681955924730748610317355925281788119286822078609034341002069887964080961371541512633895218585610523424157293401782172669840938646397152376558661066388946652168620633641571794873874114813420922740017438528605936371628581164274823197943533281549253796339601029861571641145750352960139656438658546058013627069840683078364191256082519861815484626984084575251954101614491115260043844338813072563117039675970370232297103983227107285683341105556757926957111932224907305864004336669475772802302331397223773436257448333647435892508436776940603829090322909055431356472646755556101887180572592488932642506229336862635073333430583480061531144890101089398833327651948307196405171199635419267282494357906870716204964799739412597255476674605282224907561586793171729190055736511362722824367043129197578554777366872580303528965721614535806634095219128326804050504525058144819453848816134065151832256802311946433648403074327152628282893814158950347409300896224917143728542807116901573264066869537773536282652162068238778983582212823112454815171679351628690203900556283411156912095185555073673873560887918835924373823996350191849260285634346847893343530755229252985981672339520053697936928103017123751150168459221768375931630100951212712175164680188785250198054409116507328903722377398268289361091860169065209257807455034614495127240936420478665288249940034635499593140631652492067154184607321398710934855109988450613417250039101975096132796911257444663477052120274728066644384421455151261978071133492084480485232136857596474393581662810940320822337365660646990286001369145198534460410954626053678315095131480228177500323730333352845140284713459361473613179907801770863496712635716709983706930408078560673480134785544322709636811571176579375337946462279298124785310832362478442515817679777180152591581172036453371768782376344329967641917292625956961839420143026145420556666678388284568504781918696189517135441892576998518320567121837343613171758580201727799610864207412581122176045657618528226265537523800934369809246079234640267294467313186020726724764204045607455189072790915422269354046168964785510612256109136221204568132401889012802163786651939267803770980025552878640442696749354684474663146501469948821727958613688098136428975785440797820364878785638673885977692262395077626649324325548406923932805872033694258635075246954001495896555369404321989031170409667625721410029466615144669540988429638635341498144343876976834932889401550544369373253871706904081786550042522396736067631815386460362200127993513586937357101154697839694057360977121618763129068999645838106438359653391638477561649935016243407531751349973783381882897448198011855107914739348394323005442302213556750033522437377547239321373678602689549878635607062191451521991839432136744237289729381622815166965788756556102377079406921019233232706144541135016908146343698147800379739927818107653705744294708728262463176571131736334480957799939243726182907394108910480819248292616011007390680828530636686970908284987129970299320319070217859342682815607118031205079969353663028225754267664879397606554014295781024240969431051171414796033938863097239924298902712949223581169036651845945785034291899660940966963225700477710469583244476804398553789875444509991043645311862205791881579641046289998129946256191133400088340918257958890430736116313056739863402216519794794767589324051543457662119988913885972723581194128276366918682047925060706405002180702406880173402685403392612914844590573502543450313853710524242745172577318391203505065203299322182587136198868412574147619245054770052814473361827154891191003750611681486182195598663487017181961594629466046931345153447169542870301780194798292186604351425348696679924595617948873983163529893657154377969082813046274130503041795728762743793348342652717566403322127497736720321769015824692530255391760718502556297115809414229643636638952992750615416715738623865906963608649123590894061025500626543229533919723831976154990678244120384072533248893444651283537878756667946406558378550120218746171843628064060504029764973216145258517863608669704884229362479866014758236711075968810221996950498864025853648005057006900711296523542409144468019542257717788383887600082294035753495225647648795583148800593099028080515550997289290831799498029176177728347452854707862454575822832045094592359457536793637077508026223369942532627513081504434668091010204741459425110129034397409016030626661983151489470494728229554286665993942333418463856369668039366456996690548869489905911089775053729431800502440826936622792374853387554635595730236210462119607102534571496188949252302294104171870973897304575309810611443874514046633974471150653396914572219748264870713495659752663771768993618963030633342838680243779951237545105843286375097205896440797227111957118786305487319579222116090355265444560927824128854762821481254668621964155145831893032032626487938851546337306013229035308356313922740183394623336923581594370645083340215284236040711738774081738144771645697341844478437441510009289360630542167721376414963838740981227242124554987093011613365216156380442620893079616125825401040360268681768589508315175610829483640718447723146609730380779159135934562700049064496984613959038426223035245689221252879002633606089177268644788115399886909079016069179810856733306142908807895172067297406328477595190190692132847399594907484374033928235704803081969279144693731544715270490550493015807998642295229199273714503472727084197938244802460953982818536545317456330817374142349790245982109950550354071301590733474573101862275175419479649735155013143796297809034184170760677616489228311441356274681609931677019492701667602496731910511229970140999079321500000708020399956035837340901097354013868534649009063055763424618673572940842235576637638223885037725084668495325448190264227804631117390071047584728107124746284714492588612183313784870590708888716164734887070004135170483895716346865534068030850077358935123423925262813070700375687559078136310188481296340866180096241798044935667575729177856905545723815585592781309737306518936489174491306043870282769671085692927661135162499379013937903700131189232623121128175841516034500269742575590995157146706873586684914035287582683672767596168833851161098705884106459320881575290477494296717161768145678379866977230863684903106057338091620676535632896869295298532836096018859647571774642202592805960950324974738047248707845008362827750869510300130239496995114024382691560732599690281124590851840580007504354419108900504518955822662061293705876473112743832335267098182814338309533455481424150171014759041401455747757359352776007853884693962605817915844036512003429223476968170396146391664950170143130122287043017015947427771905556721594912983042344003303633475005886229618810372326168214392149333542670161451302303238639082761655777124377311221125235816392005779006067953016760556969105702202444266347593027310315140106431986528980792376623409941504653129158042405615438982362942077685535127007198798317881855325208091709581994422511011382278566364546047492031336863766536332676781324259977655275458299344363205081637949829054651372005149570430916153641933827823590570790258318496906830216615088114321051952870611738760929197556884775089934600954271929570495850616900111761793640568028174564340901179231215495530969443081089017341321424389326170038310829987410545362258454026580206917242947788331427843814379528866924002544587785336974996839470364578565400282172457573649363008502537691841869474235653535109104983265453890486485908399907647467825918064356416950109848072593476060433887138389722337293657244738547871157038796491957902200944202411313777147254785849392666223529279533562021218843435830843002942480218826482738752375274702693336387331395404063862429386790232528397847892276855348331366416572473347504847972710167704436130733535576860354098020719076430161624099829406707421631654777620753458443869687726476911649538178154839157175036549954773755346585965961526217000834011999644959189468055881118689718589532116747046751423173468218276384669492712276369177289605311524013820762578335292009840319245106024272361904509895086227544944819747614464430335360039139901111634577342724756478196088374632097862195173390958673915525069927753275284281511121154542314626115763394382020835048701993024789189040956541457721411335999233013612023500221378708326649983328106980831985268397390229892637197248491787410073294909846171400251789781595423790034611517423151388314683473232470109845536697338392516743527882922421436721251013831988572719939894682098920773133371574061798937344897598307141795119160969037676995482914477182629994287406594069790453353942274179160198442075011461941162580975710368871803407149326433422843507585529219178083678504863360810177853471802567661263922649746780765793959738033222419689982132966617056201522533807982842820582948505923958661996968732937313780816560766171804533905162728263085306054902901724871872971772937251487884359292482092016283527908564490539572831481163674663579970995163463799649253611594336406424087839580127761944521071813784697958257910548350775960498662899103590942527584059120182019395292636253369200958313040978089741809047005325190834077752311847245601652747943188006235200863495049537177888246905631370279659438012376517428316195198460159442551156446048978167429061298750329920152109183898859790771948626423153448078969712548308310133006915648714301043549899497740117587649944735163609083106625879397435952040818711453276223324471442926104349333003890915153893776115281308075870047876730180606393190944283787765097505240450973008193597678114625140445276658687086535287430921423754202567785929112210425668671632005112946354926812235463879076851716875371964998453305454326498902165821390908317894024183133734745233242231046682924699081398325780905914114446641434265284389179862439375883947420079918880925441096844808470759883811652021181473296830250707028611633668314462786241615780273176869255255853473599454014273262855101651487199228519694434906187500309644488803635568756386268688395949179214781282375413945030580721448034358726634939340063513086824995458199535497227227404304581362784235540802104700097196855647666825805542615615069068825493347385523630627486731933169800460192667889894976725158722690300720841302027994887344139437425940035369465863401823376533630264425804362125801834989015742039809474048406269306222519326454717049076974908748865236838338392260087904850917878992601090276075374314880452829783350636919960863650148357581405045619273726711949230293080516088272405960450403769129450198696037020264402634707607395513909042100202023882879793922150301809789967148301232945712106437505211344105690834945378697600322599815938617768611657850127640973143191310261492938422330829525944505209958074324220441159989029147920092191265736658041796402321210132880051548327986241426450499768535435315434639639831295678366919705882242845938282418154051453703272010437224803007842035448523694786758075372742501662503428431155956510441779640032406085155296394883860369677124653595212109581837427169110235369570266601312113031219330008592538123931825256920619378544694702971445712366061533040888206474512951057797557716439520529432350627975346988915408628422992236244036457741727942434480585063823328906019934938678885710530597976159104467151192704585898416071195577836918763843747371343093728503244244234289478777569659116680373587280391957948041477733560116251605125243517761273977829381678312221587196655829216816400732232283025634714578405338449083963696392190583375612734005938381765770117029932400283406205211569019573902565350299168099440111979920114387380563046693942651537551132139173073643257717949192964919085108682195623584867722014735668213094044822765002705188579021410278392943465420002244580435880746342770469714410024210303374101926114895268849289196624784289188749649685923060029917772685483027571280061325888480935063207695779299398249664438610425581325620574746172581115533148596491179954525099962107569788501454543169159270816279077463683938713824033920225766610459164771945827863039593428360438711055586277658804175591454816827839925463493572907771303375915058532623145788506496183774301934671045874380606353798483316333891433258381981880762726072022637190457468180954923247109751494436107932871473745792909016919705602555536669113976783179277350144737219557988754984775724257814073657652554930537050238919455463072908489350362095876230980048333151100842116869041794944717418197670629064381851789557336741467390060255400909849501945787214051873769641231632591653657457986242511554262953806160876470969854019126502297419884796951939410733597873910516413096785038121153255058455856437941915799177788060503088056643633762238360518127396104634769094830366499562305968882144726743178325043338519012719763311729333617745141540634501178232857344576369527810297459237484880601755688289542688480303069837128461963281819277734256734628096424009477568322259992019477197575559363779722962904907539563824886118118380654580601789817436858055731104196436781997168332708375869031580780170487544617270126550777780273141065297014721195450953831141667480782271227035698584529723575915645994220149175285954546703610808835935483198155726045501702880389825994301573555405872316797375585519180095966454406108427944653382556171491082145804117851803955415509082211068043078028511235771606205265560830168288017636328565682143322684376559243504012168956559478609367254134842152905680992877697106360234784913977577313150637347993252766159886555962415910096173722673853528950392074591236407684638907976664882024295289668179817276946162899083497281114587296102158458317945576895528696920899537548448149666368998953667041788399908324070450330390688552447673010560843714527837830489785103834308331527929711188146968099581569853234948170066611523783096532398491406150767092709548855800320244137607209815843653985886185254722477719665660293477379999020421959270594368986873347451519123802064236749595752309262411549723601351914131957824641719513181866753974324610666423169148773667339397201813584989670036624312719548250907798790011717786562827421400571728288047396551728639005968764379803857010394752940921370177734869360179650117782611789910316247247274636113494720933600331082549878677262436386104978507730459103312831889234682469649050411672679785765513090665866629828420851698556597699405139789614190123651180916627410811096180541241255155708019368974479590877435550825398123725708676806631426490536571578636435469910899079391140964830418488106462159472998034428984622837931955912579231128584096450321826626732348241193246349589508026974156405736373271647519451176417057746179918115722396305273700022683857170166153630711930675184733559609606212111614745823826078782572939938975663036308578705962218182598545593845518751065787452458207895295332577708929850911788483127448474522234727003965680924213684917032651274915109834657758750758245316739963653145927544085979280865646316388140380221650119092540854095195673769896669952398121187905623649341496224405439888807304779547818768577292671110516128720181005201721779572315431740847233657585082602507361469129811354362884125394856322778332833460816969148997066628937027138160656530483961229707269288215538032795543081399553954023480687436438380727063147413599366529472180769135213717912778847015141572377230383527975693272254406988480718138893321092670089335222744012318518426818268703446696698418199598075179027420252834787661960790322142903796542706537846740684529177127205482277730289328338183385942346936830339286831062611641811479444812785233858267985990649405135770141092425941675789704664257959292917982136054845954789271871921155092503881217964627390844627956176652724865146109037223921937890583157244473997186035298018530107261374060318655693852338310233588003951066385921711803250373519308875892893900637313572247360512908735107639505760097986366328626514311062770008116121201467505202385779706365058672105725497909082880203152101955123112572457778112595128508338188845588633073491595628728848711904588441200543366469004096458375315474107071579662449201012830070314873483787870252050648835807008838449201597560275901620712473238061675752861598952729161150392458301075029912547934989012798608177214737774330435984119289795855163913691743144819530497413526752420359594821871240482864739458568703526568948587159944421504732789304205166232013689349214607284156434035935995113179278547204890825455579026717307651957222527540492443352491871294266272084172196895204834033116688014290768121001870940605200215239460659266145317003099061669011060418692868461875647311510269255687623247898177141172997824852585823672271424815316224826477729676403055208201348402655829752687328404753479047191419891414233762126017408987360769937322691793461677624363621592604753647219329939448353560250095462231835864355229493327605850887665359071340299221784967807294189499578219086320223664755389721428992434811006724172204219895603541166022352954734550210189414846998427675632160859524877187249445681583300749256625260801620771422108617327059005145453449317482614279076368229885144206546099051638020266347483608268055920968925775816236623372368616366549197977739188705203774019927664772900082483707441473312007535488437556703063329957107761736445702791907135597179933420164407096182982137511187470593297311103877644130241507927568106479556660665176268469812343524194817547750990528389260552679779031083141010200771887090980747108240751702568311612990598525968624600713201094201985165823185919091120614856806263706503228214553010409028870053779151847369501986868952616064544523569734409967430629043240928219269781917235066306832968203416667541063556506504001280529131486571721024175768846572111242240456890415321034717904077883963966250294837844533395024116965386939071084701902446099969599969020683554819711779104600146357534545778711411458940419568291556106538669801754916131139572892005852773353034676916144332340381404343959690485766360475448458396221560758139428875653973886883626167398201696374685687064658765919547626017983707669681035391428544245620706989030776353077287900444744224452203796588573705834047297785429840729286683713808913241738157336371912235942581952759758851593950815849798834366773041189056313896453504666334199040601396699343477121383696739920253190889050081524331967830974303169329427905066206821836440437712887089122430734879444146571634873649359967722891810489303720422377656835930137640955316040493384855590201885853878688470680428836879054358971383140380745024384054045654923060935024198013784365132424158516510030365635299987257324249116118961212755832669490812475283265270372263555677244976084497682374825403070026329482545060997044372629323671122183055952521280423423284939640171473398434798505328544375737967729766320905492753048611956145968912594000868319528685979335093003355856833042939140606822325389422804151950520094463461900270098387240639567216739243980164750518229907177461257034355341848773242891004780122062633382359796699608760203507516832712218696399707287853061006592554118624703005487254555114561934947892095833098802895500434854265126677494018331771355293739115717682286074722702562081226590338816773079146705710964171202475204999814988241385418052435233832955472044871297059062548846519905118613845579144964242035870997672297082402409809950708574867674495757770392506510236255659409728693279509852883604615124898323754275487304683986259531517578517685412518079059372175895972928074491400621761825608888543886274496284672640012224102278980267505608218553505957081711864305890536493011575508411963817923331199938514629660619323182015313294617672616549573648730727805308139886163515958169800004030284615652309376006281757965544993531720242236336322529609976257929865491194554100323616176043920089531301285844887414609778618019744894765052606279858253538162054204418633557049813486378291961111463528725429514805652432214998225073520892792227350102919106853418434864607567218927311872632913682882498319972188773948758830692325052396749313831438320006879502445006332788786101119875274599155580627375204719829970278900931501437913290325555044710442278489772187267690397988499152628483675303081039647034225668629028208607106156735225769257456564295834929743372056664314356011070475628791431731152886890427615572643640747358009263997645507570772604152459861041734996782319545319815725219896632530841731415826369220020255208126230129510897698473801021401667973467985925654470966648089871072868578484360917855946100841964947999734749517623094550677396678747111568410832164093766789822399616663054618400054222855000599534231402424362071554139794828854204479933499182841369555794543135437523492298350401060535186510896383763113896770882768616518645386546410904669354316566335705914222666736721599343825576625129412715454180417724095851741285872011021231836951516488303383390653948913015752680489767877212379847064983397478770571993763295830713521841680551622404165147524634001565417050179250251570995567469393288857451948333326964092348443545638098853440421697187302704692778887750833415556899176041732159229351103972575614991193558038466583735261220937974820010143665519719469560857771769098517158877717449164753049291034088471402535983497924418580354029381856390064680359569488948760186826298028876199563364281617057887736922833829516707474301580552230653098012085025772179510325649120680066889497500099906093648394627021626126386441324383957076001104984508751758083112348243338680752274113271494787219532287716401111228306884158049011564346074050961017789502161907522199150773583671234729371467850050108335529122142676485162688079536179151078342868177807062625700375487140874707022936930177030595347353176844850111779108481904590150675069951849526364679591133637055974831911410064987025488878944388927167852851085805084128902011012122973905445900911902632931442654948628974807220439058510312989112580852155985945583086388919508412593677516634508910835432707961102822621058082719107160091638338505732119026351139060213436747691129796501296434635670483206102222716419878574131760366262387280033680347773810155831388400111771017067876380203523600275782511403361207678520375356228200335288395328578824914709588547900488363416541458168338906106647588525176004075565563220634029465089227246815777613430465228026905957801338771236404345219888764112621294212676712732139252952597872141064423520926680436913639129460052056195592112184439578406507468247952918462208768815828513920626147053703300644295393508979971155859048639767788025523051458962369264460356372245039396472312046837926721175909457116404585652318798162928381447734918129648996160420575307370711950021174056681350396513219430504638987905200249995166989297975986531832610316115264727727548718866947528266564288995477260914038000255538108588407656023357318700618202833790534195561897166669275102502835763216537474321202421387439791181243952486476778596021633830769429165437107351075580562757771183315996092368457779329234181014559757910120571575277971404967956093738293546154590491225956862257053646597794187598427838592622630016516297588454070457430390812951078207355430238076977871962552515903736917308655884697742047426069492286557505007582001076361747771349765595033295957583520056213432894499453333199991521646254336236001847523745995379690148502165613335394138193264767720780496712183705381748727447894567572028924276407006159589336951765895445273428603515322988618232508266518107187660587055305978177873382220504034349916347860286436610395473632429436292749993720619033019552405598683271101769780363904038517896139245843347871776353895401179331344282697672633268318213133837384650491363041558345110157173445491158050255753726477378318799048310907737175451192851464406487274348557616060899581741355435821118901758332019023548201839445840529643311422157587580825055530786542364118703267994659130917001341435913748255298902780561319233159138047362778907544817958422101792776393384064710325262284733906723097813163506065423400087103157745808115546602651356661245742925434731544410187229964113841403971190251600701154040541573518704050899573117539758115846757937684210205118211805410668424629620600300541319478090563021449779534848447679565311971750121564298494565747607038658762121865078719276810685447599801605657435013839028328905693502048213611192390977307018933581985778307627929934899221062634309248008816672743358389261303635880679005756813587617384507780590055007730493051190531998847363094727538056740370485097586061563909084233091347608200419094452474801920352180023177162640726210487033717443853344972481856920522806368035620102452092018053086683315786538431828463025719916284188476293753136729910436209615816627237529934489446433035421569583702686393035951537553264290804295508535467550920105490794498432515470888044766720841202724949387283650367458731938000976279185334582015064516804291019958469571392102159723584306649583647724625645673701151098866148939070223398777508840877484345409145965277853116514593968318253819873375983682097683050204838373222944443224626996609317830536586611851714865690868932544537237999233759061124918735477248622772360993438178469984270325243469988884778036481719148465389178488032561017866787999439975466335398080019905934036127187616634991367084026242685047411027096386073781272119891878072657906686088333786746749321193467081833825501535879740642477401079567225729530648124533700742958465727340722883346721885073279401907855060049440251114572691219233511520765241336407002222451659702698762915113887729728320590230596914556484514763488190804747756006058559573321975718842183902612510897172077946363334123854197444795326578955745522916556138279430568867873187239756469093418499685914455124618517518125091880712402608022272304239611399565512028961820479793760502143415794051216976379068174090579478604805602721545410697390405620632891774181781925846001940006332711109144482820538767328175022350046395577999937838948871385907121595114966920858272837157874273904777616085512990191327139574528140044652429751967500328216660737047701432931714623988532758443137359370525935472531614026151080685042631442321523383986610650027571537532966640616657841526146805048441193352322693397264603522072517791132269441051793077907374920402585955662922931920494087951629116319301367704156403503333071452930284870190659951556240520159956196358131524581582275923323490015001896732195070537407342561278142027106943236370599357156928508021019344566073825456332142499288068280371282146270098861350824752774739213605008114037058163546412713000893391023538133726970793748930738629200156563584481138984777834916215354380997660454326886979483579704476362345891816018688465588348980569942701058411235210793223329800581129382294021387698499418450699540822310396878678306076649560799926331784508376846582191587402091568761387554997865180837629002004355624654010652394267797403216738016528903102162825417989800415559970797081812960817400437313282549205533188737786917784887146353873638811053767385147982763352602368039590730988287425831243790605103996660691704557196423360946501473666279335283641005441544551545602396595692211437655305209760093160229862206377265190576922660521912944709471049628935669783067821353144357613923308787885304739725138472547217899828871433015256077229503584057093630431935993757490284493709025513402442304612822957871909771758751270054363231293300436506068209547019975120032594423411516816294728127523320282233811526933545060023349688591213938973745075854588240193508599483858245423814722998031626377096963962472171083391938553540733185601775209259025294908187562262525560746074847819729583764200684724935779192732926447029676559116056191766747065478522834634528932981184108959568821319738974352515701366525981128885007813920135660264902840552320629313475648618913569832800760505934576463792386403434473797351052209910860423075308283719344324176949349430078793848223413035892808744986024906075356562515595803327566421480708609277927145699954799012746513664963804071693239133532156047888475204595053478714822222118991570851220057323945282176224383136969801587277217462800458000853140829900512084949669935808042821696257748761719162819178305476095658201591451997864826532547378559771358416876631611563409376007971182233594718097932229206445805507307246064446527663292617458475962213196007077677551277962283128964514536844197091925157774981686549859418029003759224120221279561678293711214748201811490372884237199390132718644882083260482375652501228716081666043523668094208958598720054821186832357775739603023900950549058226840640839177995832653609468361839779565712846639976510556778599757109884776381393478911157770366355526702687482361049428420262353999023215653386591278701116530787676248959687309965609641314748342240047414662978079314031778384713832331575782020430224782963341506342322847921375686122553194638975777856946270901542393802161774302339724182678494548644010533572510503173496105333217195366886286108505209030748422152625822475634522951144464482931039318120969202093075821433644405493975950777056165458110818248239974618977074870436565376587814455160755174782528377077389864665887158263574572657023123253599351828439755647893540725543378055913816898266925288803206151223206859313200857064878877297059684459514266869659271694328346736291586195080551095383764053361481177413468799655621666706839407699521107551079706611208996683275042879708393055975691978225084139729356023653022034085085994561624709941935753216784894094102948305818144431360338472508006489851695243758999948989331736723462241019447679858790267674825180151554251723399563052937143063510351143010357440937422869296584875000691865579104377727694497410023724412435382004985214735828759198066864976256503093794581363989361109889114795764565877509855455764620594914383038606597656287680209479907378191286604278265939449447583310284318712326532196143290347862006038662341547825188557521978511951556187780315329128040224176670464117363945801075655444321046863801978295665109779699703081823140040728548483824199287919109130437863763010463319052782256859560055167292329159186798953970574041393124502761515105466812925000702298932522846987832837981902239226154932095741612721381003882368983083039315439804686528425613942988968430409562013119551351889583298660329784061980544000045417330423526014856863619504451585262290992152881713099719249512876626041871812942246422008596897450494017555859134827068141063021925660862894495813188711095157788029060913933226865985905653197731122182673499543324871347234663979380823146255917768039642325928599096500406531363705460253068562406189909098205838267259710291388675591560431967306192943220566643323063563810436570184352334358028802069130771307203497151698759380503109159252491608524160094595491014429711681831149885926624368772290017757597681208305771333424631193426230913224617705929284597989128093177869460472050340624372174037394487365146692834788966511192225586697015393215471021278358794072183291813628183113116853074829776252931978503226607696308335767846130580329747367236640780289484549565742233284468832510210595660695819056781101217818966000561474259341930289792977741497731228665416825554178287975783878307945985476794354036791017274249269181032239889398531039237807343876333366118571485233933918582312115027046042465008042467270784218797710844341686349568793376441869506762162166969821352549841992340933856312242881306691663842774846507356369193904515653795475202897005445740006111487940482889364977336115634841421301641409645678788049306047171882182791070731864373461528594590553194354954879835071500959503533224370161057718711351143103984619124424605106566020814294415148180298592377019970399422435093369561196333135305670891328249524330732633098578620632465311693580510165576333066194234600770067229643384770903686170629470006804877236248151744004444594187450114749784825151741739846956104620285082276522805209959934313171615991096489810439039411074525964964120983645930645325980615081215942397125389612701434834310788128379687318481521623037692490497282865466951136482176585943906974137255713532177220119975345759908097445721530373307957658690851133024103056082328951067945068521818542287742900472369767672675521538401351376844298111649806395878332997691645486087750322674444868644035579168883863041510668960277953988612080102252304922490661594887746163614238651980707272283930474087908014130113762912582750561927176730044889489338972099956911891292812326915494204255029913111935288497855855434767782909303858694297959007210526441305972379740482368223822123670781948533426202670871717604241940873456320738248677879767893488693394292424310879921242720514771278912682379787806711533777952269882057303658183208332576976762577667735395575337517838441891350786425573715599318660339830304452971821459826451981681864299667768075780135826022985301131443896084747848822197008158576981638590267248969963624444031409496387917623239824674449897133368003335562413116372207629293814246171492154278948685324240057353871084383694224441327687557157035759447740722147333209459324707894317421316392198313009112397877678196352752839117274496286536865490174086807059595256136242348333729637055910640168562506084055634204607710332709561027221959761696515912414861077622651864831781427213482107249566231253449041019955401219230904077228583744826223600741105895373200254772017490334250450695155607613835090537365716191778684923771516570855205983048177893403737811955490041423272218070873538217297772333638698528560496534290908456451059221140133142866923267674621896685825062023717928849256865084883749761367373101056003987248876394610761008757740384814219168332395341519872862512177638677371389531091053763220288432401371286432077484800026970845711505588341831401082898796339294348149257761849762256749784359538466107186613157575781523936876500273934591326648952145321154131927937528968268265578448195914381417930412924356241700520321263698222217424236906331339237471102602877121763396708443603028178235475171818072544252860554594338324870970600829541751968673098870248194029499470893782091954295445742107800650241161218769215813431280710557332972573196558727130222210667960383427254822749438406465071307369642602737887826905672851973514178683157231123791487598117282057143994851377060937573648064893408798440158240650050511296390205147319423459174802292519725828089219452141524262166954151594588753032650573580503091737233994358323509955937758302144978296207077462424421327091791175323821399452228081091845661938006163464940498257729290946608935277162348328075040332054931619631158385831440383009486664986502286594028321500008694086856372821294734121790614885632577352479261787969449247233551940524165755381086196641184115800202560338112755626078705709327178376064051710844230712795454384078113352018368342165910564892317603854631333860827724569756603598231127491739584008082850694872266275796629220658006126816860554316346669523840185187614682080662897601350168882500769563535453222370865947821294971120613588892241775058007282553507642572973671672361866949667717914969993795187884059796544257219267927912646284977001113734084136276238786656450437641550471830866667628700333178186584930432441399675769361442532242440208541959864331457504449515244223311752335812489878603673272883908101508927414207609061355678448708886548684216233115574177473642292521566437585463080449000422155837531790422876858525522612822669755407224830047493952285658458498045742876773134769190840382394077952929891554447348562804866730784411876715602632937573859901324584785602483873318406904096471530745511522637608231947738347289918015476920731988158587954781039729871460521064539827231027345947165447575030807557793473806898279871973173783299348751309302633322682645749775228671811459376634430389903503324931183111167519859120562066240925235891012719503303142019292557333474055467295166671566040859676161182073632318957769456319575193769676543520474733255795330194057563375722343003886837170391802660765924808775223184513522402656385060357440487720961477282119353068106732645060308300457276344025252846309772287343588918072979160291244165407948279244060868618316825119704488694595602048618755505679499314826827042081387869779606902601318036593189169114730924458192408096311433286395945144518461944245035884333961605657794279215308123845134165358023604627287713025022049048946848687113784604991536431615559687508214237745485274586297030536163854134306946192021023959502876381529637564350519235588591015215000086234127321923708394540702320015908552954426681422812172829774358384686365670869703112068151409271669026899423264187728290401556947130261987206096194882030409517966481715236578637607905364319234506822784079617876074309180205400732796559523683317422430643925391929014582765656971478638743794818082835908070588816727806042957454662760694443502298350417433719576932252504984662691609853338817144902227433311214951052050961292733451691651072561634559995952701801203058538327412777464803965934777501523448870255091818267046134016838364928047347002175351203037090926891929458831620828373742439186698157323971691814166293570951525395253415395063769021824406562582196060041492557203175614293855343569053157648578393474161153638526351394112072124845888597901391574187710904685485731215250211298002390120862461010386398249296605926269711780449793911553337417952824324655451974994211927235678850800013254914355534338058045605780011156712426579333208613000610678182015238212729146367443662173493512104209103234956917695897021757381205472034672284865391692375218243114559176820793582351766170023454637106550270611979177401921181782155578775167432456861380407335683453822037015429327869021914778212249180698589529492651689013826207590878859364286721286150038515425967820732392686698146235873938145434795168004659970085407780625527831388467803265404279050011752849761022950149419695095599476856688776389627607976121876955892086563833432047045539976362971262174274137873862453931245190321734795255622993528551358037515553417530090898027141808133781196101193363406345499019962528932685817391335332670795461384129208520045755790196399949169720565430813748914460663722758886252008424365933396598169905065136013945424594930265699983743049681159358452360335804442880396626760309148376438358346982046086945370309637446193665971700780350921035640120184419610334246681956577404562504223141338790132358293574440884890028735534107618233787305470345867580924901481125701423570016099422994982843410078691615083697530405361491965796154721673512449871454919353791133329126921743301502891095572933161822853743732769988997126492322962587299267065906481969766769102290735031447297103616856921836014239791032551962672500291382601605045891195174104111200536531561259635315003029123647591103497682443513158434858805628101684501243136275554984881703048115848507832111730556267621784316218852653235470421289699419194219704182962737146085900574664494012220472867588083721004341997047007764515715307719850413967060940123731008941611831994611352909249517066654095093651411450295194062854386016622737547954741812649996287780597094620145590313418730162232308752063713649814002700409106210747321446849753286450097715409752604374861519892937793567312070678302741294590028766522397772720302137948865096266168463723991876491206720382003414427118714774869052807646478805679081649904262370360409056654849676107542315341414348115246787453852365383625753229106251342251094185958451689909000956320055345174545395666649101568278426745189146909564158320854357176968553127477284823136751551759241074490188358050866498627791821100014697795848937948269724474284003479121273219288094594202614059525579187278939025333520974390009422401338684725620603757348259354635587823967830152230245750551090207144578749753249322337351149851386752784591577138227508151281179042108069827499260666539709428792212046141189381490335912562465721212649734905595561034453642821041922255902799634108779249553000544280933727496553619260014791873888136725001906237020997524789445584512508926270937488686728646499281885353793583755409574545854252206721333746955690139491869035035908237025113719643515706600535899349032675255268448829551715917071200495607830012506793956664429364354210527625898596439791155806414731682234497667068135732835257274595601919462425833374911782513356437730795951592439706483663940583641969038638187947185990478942667244506705502030136833486229959134138810592622095285245011006382595077142779542801100799964339535418977352652868004908827346461906996267460099428531648980750977392910036407221166219945912833503328573127428194685594430619092712919510436484973576913560091961611074865035336029396211679561845689509582008510665331646387607998663065868579903069154261767400778948158623382700549070409697511814070548427607587837698956005826421076807897563887710708111210674658194371424247776046358075316378874584642982912454495701607344795799638125297363103303031604488887638284544796532579098736046290255404541944807602852484933315186087944576657822060304422589694103364427753936444244114329791440960361151249581400923892014750302323559971109866025706235528837360632106429599672034322241211327557765381359986492572964554956834828203991916798013586860151943137206185959102880226656423052916423725902756783220673553592039715061335959233443566371177624496478533634050913841555454793722209114386207100954879811110812505488126219261812043290486766887212127787943128763903257245483076769911512466834000846839715251782184817015634771115531131643189727236916542779235608751401741308392020757905773943173515785234551541087216284795917290686136024661566654668562554470696598448376619506533207155610994585823194567956060501162945408519963285519848965164013205060566602274523921305167616785688192207134091367998938533638623802248779343236303465501854556890430729012537853803469747184629760472783900913526819987035973274298771228460506219935351805614517273693172975398138996926668419778918519357986636627766651571528487260997973613530971889109755217177113779228438823808985171035791580705414030926369908209305196523345904504256437559499249771272103542227021433798920230238229205088644353448214665581978780046848118807471403952839571526407943106975175803765128479902735320733624656224404557026014039561532945936327293896908532529138308116292112676190278616606617227835995021987123119960653559295150007480435462764320787999252517974311005618544013218212917425428440321083809260849613630424564413958943533328854681910912795614281099988553608143486624935487148010729976196431857403667151159149928453243508497727180581615834559990356585944383824543530300520334248956415900496079775256223334268311168089535740658581545517390286684047718076839096506117498765578963803583427012076316945265888422781670471540921298693617994601336113648444656280411117070131934139840137929561378661613596085454688003361955308105884547981857856129945182836981811723929926421982788870234963719605030100258596189252096575456076303306271007762847076768494806148571060499095945414131224085632513525245514650045454638598075204629680068926966660041160836478058892739119064782564926606777402774496347731950118639538131898190034211958177851956585727059960794411723685164240552414622458071787498797030376123851194623012254512980941963496575699081573443966599750076893312430782453578453824650959664888367547353434901555913904791679143341679770827255605465433051283429485700956376562362134472456107377213973376891960748413953008218381401839217305449143293056107952847636106194670335772799134364139101786534669349987787183545014003678141348540931029427949114035636469918991479247272808943727207717459134788253437533543134814194518209668549384575420408317083091113781929318706733025750539172116487314636223544450822533291446688094210405765503482551730427455206017445623559169489106884138640900199714816310422958272886004492300268413690702755947417005440371412745639436905344963232352275654844469359326322489788973368062977988325895244785416342833678385456685351260153594074535529688897585177264460490152612320377170190236430723917433287242822484961158227513917350087255693610276877183640731134055785611937166677995861179905341507497613001934816746580499907491165292944987045797203069528156086367658091066964962541071297361458977571013432626459198518441137716590805363312714229477360802097499223696045669061688301837817072974174990042236678019933072171408229787070765727669858848188962466993443704262944420185830770304298195880745153165384098112813458281082928439592791573584836119945687758696215906166405946979574524435601151155026531181674215660464538709820415447912950080361584769939985521844097444044227267995984734753625868654741896839146493004187225158937614208903235115085880259530706044652883616897682259784724189819151056761918806969165269370549645633925788545497575460766925664366745117034267369300799819371371056151785492415004523525338220074295271556111898852400949003718725198504497393277597819587705972734876533100782184666572732123001207561166931130359890716848597712109756843336385217148109875355520980580343421341171291398114943073465235776312457484831065957350348611036071649479468019161904169034920297773311716314697654130694677928653034134717318536974588672899126815265783717786758367425798140675332128395942979239225798712637219461596461168811530981054572245034144706172232669489433445734082456488143094904350690528427461005004478282357292377076593676694775591650633752455434958830450144787551700789369096893460343148821824384733040089722468341529177466411893712340938529289130119774895850015862142430290846297446853628839245510219252861044157306984726826988652859434276675053621349315225166228747551311199676121095696999806820156163942127370643762349378803413641826210043610007154381051767013131411917961034536529950392832097195493741070731459904840317056489824400295477176965864194986077276705071361456191146250828078665883092033927125443233244944953637134384555199395992714121757106322524943975675820310961187551513094818691869930227595108850104250595247608944415898104001795158508012769362459300646800296216353591011148802875726508187996777904959922398910914482267029473211434792336873797846140420481664432291006479723779155679709753286171366310065997392242304180364460076937728737792331479464675781646818677337278086951280747417849859741490559315004780735261615177691359203121447038149110438024961427160464310748714696534593637301193021845573837513492108528738085224860640437057000447068013100716375581938936118795960070198064897886260404097576915844445347220260735530031759376142574620771283674952206162820450781241677184245483765130073491278850005693121348365138880611908201747938996601180581202128129560975326870917681580775386339625987009964793882556029057835338569680318615363265121115462643078385546140532667109530288466395315435213877694464797786184145769910595046557852183998368445556995203988340858682915058319316108518453490644494386192304054830862691576848431856098555108402670293364953551214287633645767036028275754061957296695568992371437953354498332166579690871959611589258522049251452543904895843472395591091960932342578091621757242446862495760302649499239055352683373345769682083012385010070485224854063827987415550532512734758136106584945309733248233724451945519417272673688144631444284508444552007106569613164250766615045406332835564881964439648673674413231588435499342987741130614160849834912754147751327200841571302234645543855313830326869075929060155846042309845935648727074863992650277055203120024177135983911821409245891174596755229917372205001141088164923046817943661642223525459500601168434394101963049611501160405966977657148598655900305941803554452900979601260135146268145741396566154606061106642569055226877846075367512559036321222495455375581715969165444236565038232102825538932272364845868907863031102133476829846410569193509546890421071609258137675267466228770952215034922167738320861256720702468432725852451003525450407957291561739771119879328835548619124040286928936405068390224392468826093701916636032566678191545317770800180510105107067304996000457467950961754658030792688669369775949020477769388322480368982766285106894864507313619800020734418942726989259306453338442497867402536113780571425435764765650844245206924395769867891158415401853762069603353731465469260615779199330103511089702702259204505960752037980139204598213907603004843379101128189461735408593385841308159347437251270229453189963153302601730779808735561291070265001805253705454664663658085043980320827511386884300629371509318364787654049929808744646717177684843765007988553359227972927629286783945670861823577602475966016081499706842274110926971774538450264069596607220924727276389430574490481839842986028760780245120545168131457285091843449801404012737442102512763649934634297463327277193374184400386614575681149670490382120990674963937126831867694826237987707167578778134705584147481141788920175810227013263070039051315078645461004594129552753533793245043321890986180378526086328370823379299647737500276645522532375397113133656953122073717394236099036305303448120290298248507844752945854717538906672697677160675490879031762190033050594677829604335566905724957610064307064347623740727529280047177538391688259162809725346586635375697929436531075042198810610524713093605129603144860716445721469081917859090520837212086905082609757303484009114355569133954195758933988510784542356134848892489427253876188323516893603426650136404425630788754447391856690784444171466935489914870004942196743909638251400008003952892268939465662529199293044939298022751220082047228103425102015789891069739739469787439850995076643216307130292703308632670451169762952239209814596976491537360760864941083706831464301334965468005906429179134310440178355614744569657192341563501301044966319408747302869803282543329801876409399382486873372886525565367268872102551954500856732667432429258946425803904726881326101965219859244039469662322180013599404644190937307707788114736518195747688691578522245633387493057816078774343689692690086122956221919033826300160395861191321377100450730968424077924995693007344950519808271654837163740003434146140010555662686469571128682648502513142117964488576065659813201857025860656104863762894858699553546511509779095999932143785991993162660609279962708142024460388801450924401338825708003733577227511215538682899901406923170079942436724666179141074968559257152725385006606755225878591520926519469393297715585443204299265582584311587956526439360289842325421162686701717301451342533046573098962749204791290993717951852929011129886587942349264467488614588804990792052472657831069862257188077961357984606573469466589351971616366810830369550255406894502835268717951884323988958444111144123086448919407555702093322412939763302789727343845761762186269555335613468456829046573123461497884391320523088837828248748987100920942868706690962105289565293634455287447951088727472551946629068523126481360758876820287297816928465866112386114245816586715112613710343872374102082780893388266494107966297445222928372348448989597765874457613923105760580551020573415626603526074260199283166172419096029113447868573938142259380334999169899480466751457011567095344818297218500567121136884578516944827874728252326934154494627485402014524117765033088201805028098217534967792164830587433627167782097105391303496927428656628701915935530526254257974533729571664453934829980588765676486721308765736385124051837252804936826710811824386582698211066387352147938120286151616615572081746286729311600241918317315505888749535302190728577170505583028160644432768533178600428716659314395426190183567981137207599626918340158111279116844113425823035213041356803284989904158261690425020748338061726753183105480863290427753698318573623144942238824464644426778630428114396741067983267975707995417390975475594680969065350065269724251302015505205551864328030654066113866537084613792686126348468337962600388646074119967572567052318743219767731038012855228138788923423346980777290843540431449663111803919386607566767211672277057556854767259766551007241116168005250918652508724586236362979290560362034566821000868213077218973568841763112984006575733534696096145836976065737626720015400829492243438262902232324780000240728219280945140329087397524923250230662849135693450625672340511617963770337607658740779638946448371525710565522655744437961429657833781939078879055711248526858064153003663698819890959449538287690371986595198720701119765514892915497121982957573365792413808315370797896506830404014999261458781879656816510819233339012508784746738069392829681373862598184079837607934370642606818235631851339596900886565380392116681967045562945973787671822360350349355134002053462046620187128774448972998823613400027737456527384371575468714760383550499444288986827478811194649729596661852319834025808854759449471186227375121893784728956864012701664765670484722173865032823528169214646180324046208530967484076737791780674194684101050898981407474665813389691521897417935739503821266617731111775034694055378094063591378782035634929983018328768467368526581156298114291131811376108267817689845372030480887153979858899224097379760453997150758087650364765299048644913188369397092735664902512500163331651141637864121608570070277600450617131814869552264752734947783767092491889976431755088724332878776347278523328032424220878835934493495153466418778862667936761463006693577215292408690277559837478073976675874216440490152008576012542970790302407798168783215801399370345638561109447819443626480234373148884986968402499838255038263210233829331243665249509477150496017874091022647176162493839465795101327404850202201385312802653253138896869061154623841818548416683480779659958884535890885612260601804342558000665961222415991955508946281581472405652291053524880041286998618841818726437174663788699118294671198568900508474505301229937550627121235279369205616859945314055297702300173970754963740150296502637364078216162458412991158587498049964384428232196910447632560148339148633145462773938875589631797911427249524987853753472038787823590064835348405766537203978715179883753273252658187446006380921971113653183693127119867169210999737141320075482134008090629464571574973976807139450143492544589452908668851749845034653018767458552901311011710837480217776168546408909277539169676772147266077121527888511953846183865370800871979247730250573225308602040170992375842821420628911365239812396546057946854196760943922298034440612787128323157664065794088758452503521230740589989018466462533632240230193607404995895206014130801801346086981493527104989166995044339013413094377088445699228246526312510962175587994885642695037758781790261829056050752385713461471177977158197516490329865718039985549680575133002247888673926259170762968526582801296876435248248761010191585852618552932692210038652884406363004544494733220683418520782037995119356747163699071369006002975251205384444984994011292956574293905875403052512048136857296135881426129341252629603689074546793563310893055986270607402131908946751779369819328516353706753480559940187071721430973917759897927401258979789915534890547920436682801101600778091212213983067794549690240623249548851977490310298740850298744432052516041992062190086172893495580137365664935826167213273029864056691393912630308971585269107560032567074017735127209368443388595040990759278887762254117566357637934661522565988476030906131827187890209913174409894694354334211748930374908537355033323607093098767209608585002097655316711537700247790977755003623229124559114312560514530162890931383623319846133601862577627291081913066642392820676718549954282198421737439252249794552783182410368381857965266789924956613385392607533761577433353640939902847975978285980919805793866332977646888933721997150598013982397386680789395176137971133416789162581465766056596597263000213963613365628481758778128339730716144142403016994712388457286924090246166779409767886045531174869966846623757297798268270499511704598940709930775950417972187528765428125283242204316127812626081263720105215248795549413969872158425710168544431421907854005994938306866521240967869622810654941654339125732843606437404192235114889980084993189191493630500468216404804131710813970834702968592091057569653076735360025530555161610315131975273393163014423215100991668291182511647689229530069025171160133390187063941979764725933893396622725362491613595992379374282478098554746962179441046098306076903540169316269208136023882902707945967622096651596304123640308122817260079026893708390584672749700987805413021178210625895887043961841881533012633540865109122210065306807310907580401572499708754943090648436276688032474317960119694315727718534105997995811545803455134694005701314202248790056495379587801273038728593419419402473901880030700436794973896372931298481963904092309099485840028011609648502000426454731913919623543065286024919693942386587065805859568287777798741627474757504090146868597967526854958332918313398528030182906904558645629645998050794878191301274112004698409217546992170762226013592885341420502562539608630742352072233847223295305042525826914443505610241564558736800502376225144430481508245716910742639932265883616381600239789742564202060887302167233649660073349462217847249902313738643600912630962484142458413418485700353339107938247189856775541507667551555415365091722612791605347025652987001296846293497338669909318989965421097467071929127350350226905734754313863418455359209982538837494494325770455676545036028715047752856849973371776900575964497899999787780782093252017482658225328805774917414087871783890463480700977987900569692750883944733361018961799231140675416467933927543220246595936890644075932905995472591689132224271719636600929163051372989337768985975221416364712952163071074336902398696262051547970126507696434663585170114508797905830996569324964195633689213390574693547000364954385313875989575387409461311241498335791814249308179293220657777220231670624592330313203181186924543254377861760470932147971190182781040881526062787461008408664999375205164546145062135285886357062369983564757698424429622932128467569262202132720640522859593378533552347246335494461259444502259459515322912609175903721446111625806710833842670811614464473651396869831723811081875466474884899812116805351665921610014802027100726214481114575164329108279815289702729430913318081158944978318834741237925985347804171983327298638015682715883369536306449603276425887726540467690133235107607297409538220437969759467700729834091047572138405367800696269045859792714690218441806984571025749574726097989765542663467491082121826155624313842146578396610299493212388941646769021458485366699132806654312137569039020555545541788389630111493855953609329335637756290728586688603936182972451418485601621909204154943897364202828581706246179686919351574452786285652706799559314202192776707378722005711986905867489084677836843583360817884091476505691517209248064245992757982386460733264043546868523906855743097331665967221564033777021499803963232117616419238832385316035973872055251897529828299489734503546355144092057494621962359820711122232152003219261434197741747775387131231904107021632555615789161229556902829893096238709748132795637868804811965514089720759254293934867781508919350731991768101876159461710023644723468183488583127434368757992291278151764352315960159262505920638651803958091539351929180651209011978507130677553340820261904442161497000297322825827452082738761010935496326241383724066430862491487353183180533444722956097988521045076669400813132652665356860997770380339750946275832015254102972856066282953892218440215347588098645422577469320951063812567877777999485992521060189610699236053625420133071503217621027109571649452280305225112963519066800280609564018014062283209542916729850723673140008850655285375564557592661403290670031749224308042828928861440748451606274436773587366096453726990520539775654108515301717235436245752805781155574106260295815446664073452185478139040471740045509795834862421157056701407808603696034558443295782490852474379818823276965523659295339541904142393464226981765453189588296925327118011636401843919452890343292376460724185514352508432651829249330863334446407659436526602283772901542712260445000175882903887764038435423126500950871066071161952667439079787046226305505229139884403869982718883280018364456936379069238014094648977437471141114616492700066490114120986258804356432467839946279082221527698949049865389600134671366201010979895637506517543940585720901076593152177271051657541467391765972308051483422658065010659743000524177823353493862791361247670974227343371872094824836364777023152802704671464588908306519239116133907398142397788348142542131288203666619544654568652788885954902990689121403533239424372359510847749624332518311975699320815612660335190345486917166633927412762435154347063622858818443577367285617941896916662829922556537452880341019163567959432587337015957850517167570607992725801574297112550543664342172898246172935546685212399230044638065324069613378055759714784992551495686181582775445107281699847992052751328911634923514879949194264654071713602782496111473982936746499528937249642355364026666281952816678245546458438992252759199103434902725373962678738735975944300276046630479933534257251992967934404180953466126335501548125765268004850373617440911594746231690450476038478365276503695845043325330903701772810153248777002978025293911846803475476112793671785120345471194118334510430143816387721187044274336950845628210823056912457680165718066994791138217150192519881208893366227690668655919656954165481677005023515252416186298182026692287130611524636928471602410847516774719151501049891894972831309336425196479562688947783276486998073646130482258776718587284249792859295635390038442959400517691940118918618641171132986380914880391160833596192928982291252806341972090610068560401899951137203581641290861146465069167235975265222422179641175070484916422023724686085937934350441917968654266998228795162575492460702382297437310667209268039536968774620758138508335926592768845183326473198006890876469501431727456259373101978411478133862605574016805257580286419275088055600954828952933135796565418215528367597432250182653378090520574000455960540983200177514562881450408988036785151992624100632616781744922619977179635203915255434330722183651795415766952270605786371523003670844382486049583821048991863558523689651854075565440665026687888278211786009796111770263517751031642608018563659054282880063152699481100767703401022596102037400738816178756348423151278471358046205789493195942450980445846759840879501915313495661425682252519302245368402412478209259150012888685042159261217550535445160200414750831049252087742713019671198781677509002480452608014002684162761041760542908695772365529783013102358907376855471979464365699054153530578716803004015057485463252113219498232891842537977420369204254546289819213274419116982874137735813669828731097204813395876011265367649322655604413296666061255091941004074189919268560793590037041372676786028598611070172450238662154010488559491017231329511082787875420036383798757944400449855838269835980119384482196454872714464013344083310689702164993782790208214638361577538442100112570487193835927103816788745470439365082772322365958126755687604964873022720179801825425994333427017348582895745418382711785393438326085460857068567182484913815798339128048429849468331682777589255814921111526166946714742190061444371021346376586612380946003381590560068717874509363580260305702087410221064491529819396538714570116364423563439332738883053243859846085275710163787627636479616393202193867438810564308787970778563400307926244345311965312467114326760116502811771627834673509753509286471495917230484059319983070195809816171303886589256676113302517364177787065035383814546510082802681984102218803173864538627023116075385647983158104839556186112260833149591069813992636569535823050250155533285697623040533070707069265312270757815112118746237671627116978635485790229190597846559701022767104088810316493725657957691184306881811633853148966757685315154016745196484192794340055777046735723077159047111463583812587427877273250780187847004549733761780515351427274908613437861430807406732979098652295049577155122154113814786910975729375046513696772500598128943463047272223051636453272929053907175091368463168442947147216669445480103984057816605930142878523611347165738987812386678145766020125041838379633328273141723983352062871800498930112686930166856450501216596934306781724929145399862108797598461321317938934573291600761475944867436552287568717926145703609074461859201676686852129319131773872379845338609977704212778186286873914932922622269766835470149077556096786425462049256366498089523704571456051536821306688867691823609477193102976026936879520854829880827898807292926243932762000324704269576854805404290830487341819760427950304814501020778617326143937243479974804328376374456064248846444140095295242446398031647220276104503387693899925561731903242979970126525212297861935135863075047669004522374396731880272864374963310383227602042858365058221223452582897211021940371521033955030455278366740583138333869371738068888849354023906369325892034718387823177712627723956824784489583026396582565352653951514500537778829930617301565304686691506731505557320807675206847081286467710462406177762737692312537792288237190526597228160666923411800461772485048069585000421010801455221778085223892490472620867203911528071406739577471201487443656475477444793148824434754687154853068891632850693907973630869678488895483828990973577212368205942703062631005649901335301086525529901347546411203830719502213336068651817019457340063548935420455884949781790102406922484557353994106547064629426615954331286372201863683452861300334289649254572251527168479869823190861008579868519553308971739605266034996394842264253232733624948570068258532539320706590707813881316793856740153255583673475971377573977911777904840535983261748289728608475985429022417275334438118303360196579696765379789746521147541911703680689344714429927950041490257308302253465034564539679891520035805853144961472924763346529849149841473287789313780691797894754765239565869235402809885277015721319916906425449024546975139885322647939032611504812390839889913565771355329442726281605377898261485824084901222828671848170414667461905655199714177463355785406038414074876711370985410007151084686128087326203785569881843207397735783229682948601213428957413754704905254684604576114365226548168192526328626524947040614783419183434823248804789307605841343614665433423311775979494292977814158401869310322092185749306776878703918952954009159785355890041027630179600817767114677077401956788680818645213280760893218956544691937052728457571650862283083828431879841190744681424005377949462248765444067834269553490710258100080628744855514239043968272148669502746932049559264865557956508605868006397523544758205087877841973590914911176730775416632792101939390019262658911585037697377274673848298920702293671304259092794075551330107239017580357363707087241145766953260830287150876241608563177502959579845285016999263532968222498548608254918250589945222379426419339851399152856216355087333299168881403707710845934243609606749349981385123762041294355737810832189151112594945948445245692559374648982195820513817811909461950832494041916700933742997502336928830601549610902188610039232899105827860158668268516321644466876157410803271786182193855576601813307022771011513308948768023177895378115192342305119171115952031899000551592005466764550299968215975006533727354974240151295660210615414672436299220752646447032220551829264174592345033301885316722037861657427340924418131297762472283754845197804969892376869391041416121980853745609058002256487502726062237637254926904221957557648537679495447591657294682711635847173480477966824666400120796236316947333859683126354067275902286880124053512393809767283927981030455765334562547426973289606787243373590711423332153591187538705375400454265555774722364173500098800167401386666546548562640206557909319947404930412180722546251377487764493345975504469105403212381577253718501962816416492906309423692981547579288057376376616464977267023038358204509485822903155432469774930483486539042716666320328826716382557410315785828110036824018005992933000254641170374809444624500284985668646378659457341304821185974360504254452307385172111180607980628759972197841900024293733860530666146808819216418298199576001989813593246405707939326339878119679985016156986280534962074664469125664958314260775892757417610674928562687230353884914499762780175239119430089875799116999811868811358571416837596681037176105728132927844184410682670324130421225036615361321548089258864179752976775595222671676867992262029601631620236661196773530862771429376571518175635842987962636530563837998164211196708305117781185112356019053808324566755695207129737787432290464823543462989079267370312378901684781066114237514684072254575822331623212151739076409779959012424921780242937780209917312083501203505245744150881898412289470336146573720314614757170656051971464128002655100049075672145367524940075752030475606707489411695792244821978181234548669754253688679293888676658189580506387525482475794345840738838537829840622935866238607698791714285909743947926346696560128159148894699869986227433907900040780121650048366913152555627389189083967437709591744521689438278633050655363357521832899816596840338567137614900391104121466462114797039331020627952164198282039776452903451307212164922064958253547350954449274714385219069286464225857592698305580819306771076783130164017062496218320402132202101326062202072095318317374971370754605755087394978767019930809225992420783867738082555310894056054993512704430265998591775794335772362448334127619529576123344330060849476222486261425792559373580956491280989784597659435694099875439517961101363610879313300017393095883055103313943992083394530227462668776962841193244148019996428075786918074566449865599058202019627486886054332413816397715425129673865284257202506608331110029218812376383818609571416601901174871334337828260990592906866377087363830353541042277511543006805406451922800601900626832629471476652821931989953173051191673420480368177970500605400507366498687397109840353054176653930423837517480294825186335162780864047893331762887940952544132436196157126928892627352047002319148004255444587154735149282570322728731130040361638066040243455512179188359873529708652747715252891595411191056776046448121976460761279773855199641446096771311622015791145459482639550925377223093795251571785651198223482598802069479724719502953480712796680978478518971464185127127756020414091241626274167228538441022620337421868017097240858021988761980047771319478031513121728105481005159515652381711690431486238392124305995029558032605331247432558256721209799356408654327774058187301174104346721731617084220432578632086385001631235875918752185749605231461749736533331909193666986961465437152041207364594093980065168691476163051738577489245272319685730404242025681466774027555789751358458965029119011549749557906074577482702615773578922709885490456528272248271969730692813092605275215720044741121196917222571053731351380293419669720080330370727801454235127694635648139061173908334313376563520746724092574892334612426738293027695322504552867499944115252004033483914061960097649046075341573901438476756418173834353802875511107586320301772169628385719062566471549952662910733497507110757100655633342849952400749223709493123402780937100248323981002096883799089896311770859144143249094053575128679756564838958369064976861036172863172659704296490677469667738958855974864283518102730315988333345782128633888711141779213766162476845073104867107410341381962263416346916214318532051695396149343385433682407782108517173206299896795918149502800546463112059911951133425289877113212862349484313804532465363882524426808023016984573256185282527320108076282037662108689374538525987885187322740040384719532038493206687523705490106931864932464332177030810584213118063847378295975323662677993325503980424673945556728153358041384121774792031065256102117482910136985252414646417260279270561580556583925699715396404591725693401870440262699487959587694391670196992279562687024778484535076484705645061946624374021466528923764849969175049314327861368481904166699087599154564962324196992161983988872294677805101172855591002394108814575667054623164626206288770828446409410307686615737414884785160575498117361262410543958655876525180254746235276838831597788672162429487011584842035892729281705019661905199314325544139425840927913964608936251482311671370767174207913936199177574275554086767586208109852079128853941547391083479033484790418542540426059391176162658760170795473602741098131260657631441877274919181171452672122980063780569539871103453584413652868151872122301824878614162450767934664636238808675046990905563033021606194386640501725018629733267337057128135234264203102880493373331337921984260043633562689927074178998367909818962037673608738788623303701176198717869454992276238285214071984087878024069695007940217536590831225288721936947977927067235071946889675736646799943184268051917046051645639626148719976771480074963889234672494502657453911058489772001506219765515685990985604068062076252296799854515424213027170487156882638161000977033216958076977507742723225822972289355113059150901896424162499432822581628614224627245447600211811615464407047145064997585590134538290455970180261364160100445802224950427273283924073997181404189578435929135280643990535946281388898479781031874389388395267675471070449289471017420191828079011285860657736038058389687154978526027106094994490500942319985182027206794656116402292121727783531385196171049811945085341871063486121828261213596996078265011200907728973715814614750798389480997045572886729657799099203232416447020223511541611117475474343948082578391546456647782728852628719636496859682539521490350955275014754607037531439508470763466551800972376032759664126495923603490640220484527189251933483997634474760016322075906212686880350726384424250181432241643809188133346053405373797450965575720271206113546192770475632120228954127056300868408590491723940244064591870589474106048431246040945424804673841361932475119151275124281637378784270162580195505034670723803804746060671683114780780123089677979349675022768269412332647390219900299500226789091607527441817922836559684474043639584930820912705497057393294085124201306536545954280169347483485473899673993873738096129126624479569168848466717537136201782837181762663276319499066420780458114883349188678401570954935080362471408145819383752516863865462174996249366055001167722246054059610738527229877903547185751047127404835428597451523885456349240556235916478716666242897297445218105073856210901005720003979698830982899243019947040037816952534705479084389339373643715722521322880478999859345665629191492745760354100373431203452276023769342332160038474651508279559181477588622576423422357117459276691638509209333051580492206876556388561383929790918207859812318545074956796965438414548148294342834962754182886222486016302907623716434120362143360368216714813822211864753074062792140663449863395054486608709769995020829864371308817035139249486695873645549528304169348608614320329820499375753697022427524820339796829876280248853845322670051440944507491594623385272577747373641712862656812744146543528357563908193224361372490101687336681680626142410534646815965083038600615380470835484328748511965497275733660387164284941688490735353747977337584049186863409497799212097993473413814989048171469390624906112867333495290582373809568032731319139525045541745385034391861395478894764218003051994094225332566606545417740245922381590338697272204564603940849376545112886835500598232975695773655142361913195487749295973140871716515768131457152428270254559463430358351339766712824603493242086443266098487981177137191103675826611500075441309340770243896524221063953462730623829816282245450766853333732825644419780549873437192446941710032163741502369552904435781200400104491698535634229410568737840747607407444092490789874692222930922651693052125000253115956643393643745736250539283671615501399253830354439405441709001694657034131156713025370218109394011345109290660682715341200878680477872937412185438295604436344855700759942557558131061403361597186970972032080654415176463729727768235900385458768524832887624005189038548849479558896038380552829379994556367809719308936915145167361649648553843697406144459347890241502613688700572900670945441013940394133784356677904164433953968138140902380599909124448337582910104096158751260170613231302795330940192274042274851090413694432364319229466749189625606084264780228647977259263540574903892813544950593550247567478554531271988738345083413696564918293859211030312946322330425587860175532303606038396976099870560033952446002992592665420233878538185586902838828350280623320981477854826311842490394468621575099424047061803734556835684743903351185117296119338483637153135017408680885893464406589281324300491432723105740300746713715278568979542114810486140214558363254906707921259209865297085839169648681110974176966931689258476991505138178224879511508044805972206547241122091267226761437797374563877892597836560076631707592506582667214849417523161727682704706253764492866742067297496204022048877695103113823381130778151476480086964697620573857835078776291291850666285959382205507484930382535022232134116889252805087183507162304625165323872513699696827899156327765354391266463835718349943844927002241059452059677707636914052799345545643406407846438032692793910516273116618664758611136771923855099638355528737168021869833102566163198763481980768860424616198753364048837841221519929424450892720466488493669765140085127400622385860886836117583271870453731828536551627639745967638519625102624840272846976873313989402326507748789266557639154179196986561815352268607930613762700233627315755427940930620814063412251408334719349739555109996092330386972673124387092789266971543158856675830520680957813045073394243951426790830786424259476324685712449031661842112062106523722352895482919685981695393969963057024084910358617736094540138176719699787101009524007491650928353640723855491794158708362443905909375868113964816522904473382662025341113392788928381647827045816477757153715953027720980852587379422660201817453851612572797507797916750190542824100078273650677803661676261967968628594253515207306252665806428409949962702780422969207485402084256512842603327214168293720055637058793735553542070473788132296847957695108560936841751018740854111717511493731442787533688120503886393838946963656017650175066237284857674314938765432721639592321227938083558920341209773073523551048658624325345289166112495730003207042671005655688895888593842222360371180550306579934821191819970719942631696900793931850520336056313094377233233668587347291085272504329956298495147320287295907524117947280859700030624391533008206374612696957075553997253199220000038889677048488016526905489616271923924790505694867647983183492878287778906766089838181780934458711763560856287642273736491284213489736498666257561100735541040105680108048714054821400265874538152591275555146217826763300647424105143587882494201981741054343602655502547373425990998219295447345554720697691333672016611524833141271107450306167629314842726608503279317138444152996780986137219858222416788921864014492014893790790967458088713912494190133574640797535185014349107788900118220989175974292161747178064007464817770453859704962941284286019690455464561305980736810800281348898229510493333994576771696676415066541639267965630562159097439912061963786215201799475060393792694140958236905290593557994465727059352028418258151544537305748995537559806508828769615422070399643267181442738222510963660389142408521647962096849948479459081452239936864624723537562102908492646145605315755565610695255969549346528476785428527273163937450927860590888722749856645778980598255102249762977609889735202164722229251655883848134074988754821893648694150647809179904617382118106981297558901368275233779190098336072241740823894569937581314312124857027573688514418545194413978540777609897038356610361462293049290829491738764440883361084180922216167576209332780028810262026274668082085096371041778766686612897260397958429460641673325277868189813702770243987161251050074338200972693272355295871665267060108967255023964565798751070355120596516018422711333087381747905648694914954107253354401112125986969645446720993663538579591143840791437489699752105815523664118542378587050078347399519118508124964719335198767987572267880505429139082696688712260086032908464469818740102344605691326138786233393762987382054753276548313399041760817745081013957754622695271695522476668996352041537229747338807071777816461964102416366168850201044194564930211337858896095998840781737017663386794797056670520072873460019281837164631635158724231807074885487294625923986619074883981843289824787001457758465162465634477331211364913181087541730586560127726915709664974535630415615489195264842585589042574413149788993851888039425608920304020768662754079703212368347887799260884816805461096942314866328604993208325922789353679840227815901959546586312845948844103746631495644256143340981388204329509980865975191415755574369667210354452815751294522216212226595920063341387578663758019737937493169592118786352853050032489606483206376360990781834594828674286832823789848254445193450113100519276601730894039974130724612424340718016739155982154078422838517022284088389072316536607850442316705084830698500189661880624738905567412639077600776161455185920508916664139273842665674423710375106444379322440010652934337499050444773125997539318107410679169615837559299133794913239405833624003483270151425342516819609827359681327350209636779393229186963384723562295794191515681382553283951880086107505885704017459625728763841756559044602526809348080189329380745822732811135012612948998359034902616615286223311136403907020764882207535586886259685738195994253907596596244428039283520322459770557020459152319746456800469009012641106730712757655914901452414867148295336388119878850910366331777436258963943039217787584093827465059862937206746602835308569210827712596646264433476331109067868376368555721955409266109853865952880513892662019315707653733593394448134434144537877407763938145164772951039843223915629768899126691329629056459842066577914285449359563220108111267130189259593148619459271608153247408592088046207969937653031445797699985453373071140478120697240593710246996060203981360697077468678375322915625654464604567906296886020741737909642246523270846100547512883177812724560407328742612387424384790776028874605103179180409866129647069571651576669750612374137814982530092815710021942157817170245565757131846561035101938664841971526255738136114425780069071644047673579625001236935410612431223623330858270714145790212604507638153544552811458402456675952642431295771312969662081002352059638433845493423953883647324009983584403340536054385254348625181333968609346900387963045304326929388085959160578854126415820179421104923491414240013545208626261386585392229689035938439908821371603542146827548300373634964385397285288526568802608072998259062638775049101299856846880260967660031297845513986837312190881251436845039478162383880554283157788530934415017418128144034269923693322732989889763829005032301578261206705587116290372059459196747033836424988610563204962979235843670171544185822983342471017837792765125614538724253828942189136969872045271909774185900038603185480089775008775717897461210712715326693920933168453092613714706439501561559105709020404235004791574482032219323332806669450775075151495704064869903061049870832234689861665180772191326064212415591498144916225187269775960588390331612167386717978171809001616474187496068547132122555609456281939140321313842792297878979115480400722369496858674396920604692261017483041372203229976509954472299240061722780870774080631884566691171404144147022945148289868745675865176142615658261888184077423198180326953057650913740301650297320183632924987840530672743407910683725055009983367854486926085146368519285517566067616567337264036096142975341626991179149093345316758030774631248411349624485243817210708997015254245021632131721351880674417713520469960266843454031721372238729607689932814023045560015799092682311270921017521600087961802889224486803890164605353741693194812193336328228017766754180206462379735931458881166070984042075181616958217758852793783817681760122899710534363039461898622028180022700755227354570364710575004803231093427160566186638954503910892723022626228008444844194336300987574714175744872064437992048955955107193783981497584175963988680158417286417318882952689040074593646102894980823384662531445787770145679701395277452765305181716572185631035196165904499381270847563957796809238530653443173825705544131322126217782317675012233926566969619979817207171856110186050811858740027880158895617644803795688742331266363711901255085282181504045079157804959995079885727014577641869167536568932484726990535711012420480693661999484052115303477129250954987479748517445179408768066473838013679221676702859479934560299660176387018088712131339520188168319290789966965984190918586279388100259671406577390262813244900639376508279482856627502322835218827841049921171355379874605787104342705024085120735195711655049706501334403907151171198007719546166338510929804024658241570503658741548408636802981704912932085843958983166171988107906358603210956710451322668648088684956973194110612885560545883224653224129142910939963008369335323202669726414237432845827647563131086655406164876560251593384483757225853776780299869692843974196202907763070910471766017609223881428509061592312418664088514214153584983156076010771840228844211915889552541507525341462582140852869721200972790874908329875575745179444471309135460167526610942310999840701467768193441274154119563302335885511250077890516227294302567029354757214354700735611771406071740536301001239273535549190946704612643955482076002689303851408590372138248315232853132408338549843505892766654889705589390332486355104359193088139214746458521386356967363504387090539192094949587249945383242995313977757385615364107870466522026271218354444446745535448347756020811114574008874315095209236710424119145531575967510536306706236702377464768625537869600176371665956377027540176643991483503391730567172590269575673466110946845853948237207599630626674046451687698681841122903378681497506451677899778485107641503206624448227201799027233657641719640091074646214157319956942988813822794445510840516571518427660649796381846714387355028543174056568923346298555862716283142016110299613150904298529289057725384183480036126814480454882298262995439651050256085041439993198443950600320323131633229688097948759355471877001365418257832596856045749324094081148035242304635569412964566938639012629364345284176351136342051568288327484383226826200228348645847618113473248670522836595202039128193681386124576152304625745949352251877126195804163844012002756456844372076005600009050349870251371556989768236674058834482176209397748265107798270837605319732212339409988854218307157563109392109359156503063535096080433093353577786339464359724825482347411006934143163727550778450673838362332958342402343458497438673642516194537220659972965858071652238123396715421863323809748810846258119921978494036497040919554081800700810299849182423240325243593825464050843069805029953041120793439289081759380923165605388125397355182170843561154555123899168778245778731516198189105967755715272928327684038241186469504473973202229000001606565300713973242560693863936751565846334749958178659435287432942496858299472710011261249154480120676813374373896444776359337826907319260829780195667578547393017825336217662727666560181359305339649098513436053598861478230590289787294051096656475552882813493388724762916230877567805167593259580095745568445088682331551258108902227940071025009103442179663083697280164741703253417737068057122023383289418278548571363328400664439340937901683150904227006910146784490422431848698890568915766913752227999650016783734520424820029503956394554461821097638751002119802501397712383312486240710042799206057097951031011741796619348580907991078823197180948718020985946104990020361174910308803128040775219349931324378304899507386621936582346605494169045298154025794254114364961156916089186528361254174348730246757697983762771807529690215486214373135019655655449766200126563574124429043969191444645863599434946281604385952897099903223017655167442659954726656380025133228706008653579261103999334122157185604429341093466746207709587419355276555326931916879437524866813772420679769516515527681396345406091785301616014840073092970406443603418655803470151497888957553830695737895313099258067527747601286211930664937897990636642695703991137422214978402243997221709857125842005730764232035665877435741477698195673121189809619311264247212205090197953252436856126715876022565259483637799497784361446099412009356239173271058135489519456292306462154182135066660894584263720361571004155580913761637707678461294581638961599574059374142983362842859077321345058200829450380966456170429046080873873179920923901341071140701588204187438233654411045938948549261225453948938956715085814631028545059220535089838585606378706259514023670063808591159253131704966140511477031524827492985187577824070341102602325975603238936395362584036399642366810237696193828103075087750542465276325661657115221287832382908290645234989245037485210395804117240750068278276133356245592877821041679357926430303448764541089625677162594321572950145291301429555400117953689902632668445885262080925235448141984767754001456073764663978487571438605436899933835041027864873707802777163482130175977534427686131623413531284888588836609148662978928525940080740224472053750507653411126256636906314889743905096344445474233472508159270751216518397707035498660486803948372158763396935322549319559648901197343070814626958430864550942866272635279001429511885755302861419547631409701397446875873611068744903493890094442128454720512014350912515123304308973655790394781608136008714587316831825515296321822488825004815369619897472177226474906289265259438769233174564004530122645092798282603834553178368298733898810573115485171561930172865378414285247801374703365450514315781897263911866269746818179374604145655863477061756099443089567017962783477895953280028349632460813980156620710953580054885675065744464595330866725929955420433669652826005997131616767968000494107728260390151577885879765408199971053858146487512393455240100968415904921480265760455506704065175002351497878828324987807786791675225746461346121591450804812798665778755939851142307870900602715509960676251374126359858124921543259604860845467391268328145434732630062259001668823270200730391735636206053450870230903834902490563500851814041742450169895549914838506631618106939682949013292348652058945555147253511526531865889960515049186733909603826629521288018023994424365362879352816675683644924947327687982253485684839502183338888701108515757743672628375052200375872292232919090371638674757545144158032199895666063920239453957992550760918568954795989815362132095134138880095479299116654917515849794768897690003078295913144336359209381987983145407864307422703364653318211233627917696711605464246107873357139301795592375603577491754771527145847605774227792487126562201585647879397236809432100948539701484341572909309957823033409437221582981489993277217049962305753565864609704591634085601522601970380497548700857517133358635589650795081955976145544830328787320584967982275501113967017374718787566509453897869516132614589594314290128027812921771822105130604974871952549670029103588322162624715128126042218096516560882357404039983556573358754657094848183256918788987745674082525878818666178300142452987038820694352744966478285427860275120163450589677232266648211509521545722897213082621844443734451372484212665598519438138066753659914882448513017615087489147612860903402406358924481851377755165254749317828671623573543429807576730559018314659707870680134319986447047415612408584955563856749558085024285531982245929317625058929111578891300282111972094020027189093542685260874448173249266324147149764180167410845162253437920391535000371188704698024611930034855023445142551743513869394897585565430532543102002246661785816576957363868914499606649904632333060619280442040219467773086031477987252028496865785184364551424456743361888899383653156910770712421780737004284947451584893087746335855999975157609480121271867080494679527323184591347318237233292793230505939643169201258663763382156028506914997019640739987571822883513711462097227483479596657353253223903298046969986639082134773317424831041970220213010818685590201198325298648484095244874275582065458017224536434900014492794219400925737428204606184137454135105713244466920627340412520561260685728251379672603509049308704580226264231131648552795418921799961843242862382728480539635250991332595381352261143318436935656138343260089792657444444574300854141225126096868844290253307746971855823614539904052224917629914399556496041612721049331368425425406683836345428272066628731561923988012557052227216359615908164943960966394351095365802332384505295919014726934423669466683779036364335886782959758404986301962026402447732766407334657485920546045456120368961481687621850938876159302614068195575312998006823144790647818219727698381644362800920664143091171501005502306520421359118372268792009829097173326821296349480675912865144331461744083650062884313048530599982409422772157552819421734452822037782478642045551762057972646249387794901550089384476542384709395643389135564868255316298456239902767588340408800676536587843623139786851157144874237307802719959275988029443267139260667993067167903926620978724722349715854139966843612299087711076310792742611495342406045316174333532855688717605316109268992454144457296205634388061335500464104044000894147272773144645488954682298111959493025354354341764140196639162791536086212567327883663338880319224504069996411431512222519781939310797420834323416485530257037967070005277018534029198514801416577145090984696504608203278909345847546557222275098859284465934981418620998856626154666124411454275997332408748609848356163489550997372755957212476638868107705022692588437509334079950320295333952010119139951554192802809496715724994201566407814994083010716714612676689065226488115681000437897520845389126077725435782213245592195209980260720447601111666226786347093717781816291315963955322553451145366991212461789350776143402354706888005831776089165481681223822627959489769321381475771058497265874987976401921029617139606433852518498788702816784042713360109689706484963171104067619324794377978448915557484931681256695241279175159398070739918079504230577967913377911558301650430688942080753309716823530420139409425100394608493818460091477311371966682990176211934078420318854538276219831651061305490754534809091267244143647862276783249378865805683846876661979382170168280293198784020745555533131471588044299061864419606244421739566300664148980170670219951343834610114996749684886370098334947252931546981779470155607430228634221541028690611665603656964507739937907100501150219675351610973382109504285301652929710598712960860359567232443405276551487196411769273534066700727713301740697001725317935069467418132985183123114795758756436351365403977334797761653098258072828516911629597942245419391135928529841511234981036926969616373316627611646902323668719988288327098238195810553575072907750087210191718144810438021092076876063388322775582889029277889290031016955851140108720322969251749253893730205245520090018594250839836866505022721584527733634501056270053810937201004855268704555275638648115266522146336723000077574370188984606402703116614851049900109740174097827847130620405473921865672819691535386764038601454244764216550316258158003277915468081066317376575333700634068985858776829996871969607578991862489800575293643716122000000579427311013810892726839964699940137583820147774890778362416865747165002483266918183646095269876712876315791847665256204134248017430001869916817662503365372921252148669453784713117189771173973056642095806209817366359177876578825487262368751050159227914773418089134721993419286007168351191974371648948091816427335009041820216682786720770984832001312433557223250434937603276763805341798137501559076740633113887715178329036143308698248270464294188736132077655985088882679809183537711267345846896647088605120775509333932315879147632462045729447664425155309154556814545151471340388984893475000685436088359251637798681324053978434775527346198832007880755639725692092725721313385779631732864668201933103160836574544415776234700307846433924301068881314196727727231811127225145192025165219845646827783465637108358137824534874096688789031728729272513721388375112975034608352280279344689186212899198218568040478094486112002941955298463336462821114013545004681001940117367445131269210200396867954541209748153828049393279118232336175804075857998757667087361407511382531248715127665609847512362662559145088241008561277379335302528557863887534693271122817678783762828081292898855533230707889275759400573604140678433886386442848149809168759362147531841192106529773475890140491677762763024040203181685442087350651279146155582063991096841231399133983208534495606184628210062713622637020278985538351140918717817774215358118666510231467912997525782737536318809344887279023966938902824176858199647372246950155962480033652700449114376615875853549578601797067754515564317093482275596689318329915102150387589803965597957405267322033656633662322432162259801232878110788321921255146063637271244601596437330851649489686806080106533342680273333888659967653550806138270609075075444152385383392358897014648409351507697302706671793672960869684011998365564269838129818072290728186063861122406176456525983534606573695713464367967370694982550847160128317838270558385167441399528552278884808121794776958040184500117688497735316253344256283330504140693510055009117879425477456582757987129397564561327709098928825164623380333997576882213177379141559938567095579295347709284758046460511847410950762991953892470538605767678980528236682529490191431696241353982157848259920578664867939207446586333164241051040199102433098030633700137144215395384451127499870609840437898991363369467197845385583399626950217380922998719035684946476354328250407381044885199585120767337383168599666271646911695331371598251984414655821074105938892457422162101911244179476739503546754162987548407823247955893542923195956847011822815236511953809792893712904550910194875930885562551500538176537872241580995537973415295813033757071884697445956932161752750476656433730651941881455574599036155716625295942258818611225406366429835752257383334921803043246142621441590825366427533448596788259888586004898803301864927833472617423365419088773283723661863909827134527963105889963829766495104236958267796864416704603972155788436159848369653478278659692335537441730068927765606255212301032679162278718338023773139109542659931318337360747985214588564501426590235166148044031315525726783282972019305141328477250748403881288605293001406978359906580372194739568697018474070122310103795162157140073919018327074176697176825555938911248536849943447427203483997247159159161038817987774416830737775004592437993695805250017410259648581835044702176537596540987881163924251743507299026068221843105796593320591788817948473718398642412805884313798286622671398671115156479655472540477641647922312926585371649430082801930070422264121657893461281690821851323649736789516510306396480208729643336193959790556510984147315826749873714753558572381943702676397671039080344317703185878641894684988356289903328059514531782426610808936230422028680764649449404373133080655305875428696163536025767010442644574695816847589780985387644606884864238349457719222179101613556848531599991558401917220630192916949578587231581658433379294681863315325298882033774200787434338729422009343359852506118850282681028058780761245062140880463020303157295934025714574419351550059644247556431198700178631331841695034722445439218966554706805028997268557919586048993608868222768075903143537621323916855348473631269516038801330838035989584683827564062501552352448793647850879787239834607096755275718397006558872768197367105903832928982073785505477953850156258922002973795442983616533440227086691355815300338801921628453788757285953249335476231900276708708389022211183805989242042479706062031296921484677939294286768605046716181508396293886032326906513275185543849410127232400473351274600849936242180679951603908205423996116827961525749437611890275263630922745376346969946190630560384695579983368496200800069966845928202034457662139430634003591494852411753093838280500020827496321767911823556163001596390151715140188474854056340140555250487267969921865161185054600363032607460693040724742753238736247206827742865406437414061320787254935402801882662627321988591717394723824964932927152998747794015087800017250101572437999855879854002512173390330929451502794504047723246872134480406971137027013564195092771283829439453798316389579170421305286963197550001900142932181356092132145623927447259847832886712762163879907085189352005992890056888575881016567562710640814200855085963911691128910792933801076694635616260187368190548942362533492366377147696398566305422274757237482858343487018550318107265128704701711706788668764082155186122691492374121135364973716898778865652596989704792210705036334745811302365485137353654317965993592857451682658181915260557706267649254759849533963419305352860107810876235252165194639949845623445875997854998738139172568059095179651035504773175268836790021217239035094878501740762731045438992300506676732269735420411210196302431651155822914883075383213906468089562229574349763354167094330270141655943007070154411808039525140342310532859471394790449915479437769239317934381853904259937383464533266294671018555121732129414830070546584531435452651586802303171622815011059067517872727166480989842738477963373960499305976980860084670748663983930275969933623822833707853430070218929415500848279526609545307382371516694864349539635586860533262609865760105118565776258298931613510545937776515437986797579098704628245628667198650424378355740801661643271770604459623005860034754305803009578794704998446354485980400409885271015552271699805452220507768442257345920859769973629641923689466202411239776110963843379028686499800632604691243832622841823102353068244821178339674535752833264651302920328565542454987047212809441779224164549032704869988781214645229337600001310651399335133815448686920707812576930846540873535695621549713830714585545527150809327972020874057338760181982539438885308199110301163889339158320753083258542240925326468492873904821313242174606312260397327473206735442213295759939306436957403040340533628646725665743362244834857772494203583082207787098578370874365489708188191897984956807129431804661508950405568538498685852471864565748365291816910454252951266719202592700853358482459811876299580031535107691565617211036951329142875638964290441791446987999457561860601542289252292688189547432698205530854742367987413729681545347934909761194178208587769994331317169663066210188405266963072067150181021106885376340606871809786469975961510597859106025512285496282207018499378811384096209402321816562137307624080278066441142302831152634483906929567514068147304711767140131359072523824458605522980601082395375931805569662267592569804142652195883185596040542312453755100617422457392178531383108144258793164046795513721871852300221516562246528073741283942123529771558979114415094387737248386890709646337737651111103652953395677072066417299573763871950823431431297698128614704867294302594623283731191878949370404013629449497741199680309280666311254936253582518439802877171118722266572194148893447168565895739556265578761649754317043216515416020589522496550045817281140000614193202437498339066393768094366307787164143765680758897020698706321094380154976385483771980383683778099359834886043879097365631140195286679493972709582799697878272816443279138674016668887352362997384816867715136505321724129209844375785103470453314151908528506036712056110583210775478604321523102737960945749829798733658757724607003961489991277318609623444844519579845822185889373325991685011217225354621094549466979140229386369680724105159200162533157171023179623791549080744998033148918203561256258413347516898483161371660708311055135406327991045035067783229567073161666364398915048362382906632206154354148011104915265198693279054847850978593227489665767983345474080591808236550325873939531197155816189412221357842903048372721112168687248705168425764163960608554170496463588722883134049144281969803108271478801378656793228720800279951929556430023870132819608898307130513078940597308970797192219455937834057760965052971386341061605905297657952286266371801207872365466364040121364788571417874966762387559713402543057303269595933443328421577870702343099775224997670334888414228580895201406848699774100527491912744958159448043740606594917372507009184966533740026873473746618528323816967874685517191875703342162764266136150265675326015118663821684964327824157938320144570056718800992539381321926195401831007075667930226954136553200816042193722341515019653547544274799773271931297394117686133165738706196214209382782215263565096928114907310657205599368667733157829370065119612053269730444411869668265196216237605753320385639690192492090156650407765887174215901187802362326107499692702386053045107014331498807816080192760705187223780793318651523133829100555982427743026982563177965177317478813660096369147638720628484297051768800346411528047212526774622067515067618778417758788454784277043620057827917897698789205448584143577537460564891879383550843557450034678952022014810662784122245030292940283198289938287098105358570861581799379293129785911834482594092161983703622405885082622508802434060214060628385433789151756606975847888983458737092091363994328755460299734243057386263291491674888167580902446190958929172652831769991217613832967120861272840731768445946847873848541673246711120514029639399387942628188915366905496556691221377650782993872989556129819085413757908940016875500624246954625357549455370889439491677850752020655564645397798501659692320699635822566551068669755835582368421184531416452772682620027768537850231566002406171031400684617804143152727779184946133108927035398841004800308516461222722302232215675133076703293197197932443047667803894163606987866383567703075014796100804980032463369073734323379629064942896534443991935677970278602148637170317620013885424160102970254094716806836421957923120235097625950496417192022274847009639409799643239962663130845266886441181605138701802581449359074011506783612322905225197439942353452524102642702189655437299501405341387201266316893616604045670845511803930231030488397006642481016775159820248095727895279418502690974175867429369083581450052062635882140834278418934626386091857622606020458812422418835309777139810827756810203582389127405061622597120922356311580687263800880889836361535484753885348430080494181869755660255238558690608340086266269368553477108702595371940568763395343869471523426699936381560934214984051616323342054972170024527737899597782536536300860409457890215013698014704468561525268937650596276299394628291985389323598704558397353555325216200491066382312252197552614730858659129397089243129313813596818925503074140153359536132680302039593848277766413604776200047733771965641437706763409734596084176864163832264563654535483585438939760997194331512655065911953378078126371133732163585304077735770371033336159428579084171637660617323775293809184819607216030695821517869250985279381936548088934190677970461296174072445545530643962926148525850269856021331600515742709292073670046502159466717125227820518696952978084257808014398623182790522332160719033049509300528576254461073306370049155156444873493539676544646023312354079428003377935838519101621264828381290073154927624091931882721009952192630991147137088170764409077448866835676297406870966904403423826094645092141545590976502072314377570833332081207162204898923408981586387072220699577486930771772879255435719056195523297637053775992254531401357462279522559303801725095007987254869215517736924929616845604924049226496072515940862772989472622261560271267469841372229543649817486430434836050175213820254559861235938797510790982279208477440857743725941636816889837959763258453790626893159576701186374476313092206183343768303978980618569064588970622939268137482517278154838754441016873795932750470833162248894627777387738991136192090644735539272035544130912743084500252619073257789964811754828078491735071705549236341415798963976670965243669433221593158522818684331615667431505792788521093202983048278753249425343848276580911157715866967456386713877195355541916065452103683402095832949999548405935647537305761057595684882314695650759522725535569715659839771006342367803277430437779898815825800098125469100463698618610330981343601308088650900142237095529219200859149168703998333535010972739492240003736099727522564314192460761897761172606889938855931957637352339893652716102258072402807824142734250809190173169604593880085745939907658503791590523959566770322096456954366337660788079433192293315622053951417680171917598766612531961753967261228554091457966193330186050170702988082630632068470545198834078469585122645241827629690884109431013123588511070318044817872121476384387978308713859191437455182432133723386170803009079606254428632941802475383763656175940736098107056731839461541601739088807059420229133207074682953965594757912259312321831277207312671356504665924844440066933937930788940227538186083283219363505391094881976567826292617149665370865709045322768945526838310587692237191891055214496311803890133132151840910158630890717419819583822923756442284278716773680455881114689280318731042471710351293311978265789932546781194175558744330415112689297877143432966879864739259645359820589612381732636909856308550333140388284372662357374306028573270603440795548097723804518280531746528277924498437690736724334784783202987057764734156855839020235389184851191497354408690938573167583297614496103018065093631018825733093119884763525455710081575244585228749028519649879505523840018839587898434185009173965688456903913535482915631526856590486003668343859679932727799203220276198363507271025688252594488155435187255618380886237174523610059998764566346038159156220895217074733686719515047352184204941690295577781983678952337143371136331194006609883215409627271167567079272192446936967177855470818495627919525433358073045367219636841737522220980289683205020556289771412750531505017545453421458683305287094548515642313366073998077923726957704755972496710987355712886097069315313669140703515293052204302610207580928701850791602077774899802908344649135404982006121842000824408890994031417214191662503506674201898049454221660360046265129054287730250504478574943562989505540423205672743822221461098220960547635186153204310943555298266201582348150304236866896146043456765928447883113660237991272133845354583282128199964702372829924016429861755419487441481704392417299810653956040167056149194586239735026859029249832303900169644739442253304325469242871281954905199310329112863905038289521922469122394069575619905803593695599858084801178933415290255119710374612851397036629288324329199228119981836790139323866197093907822444878763317055070518483864604365459163428417165346741931316761203094069801132961167681664765824826704815322914488899160509964810466058223596335817637047545996492644447265928096053636939729026185875195917648997407216122367233228140906791093368761762304042918010523161874225190995787745311692444096936169419107375752064005626707414818367057002257419469320887741907386032422357502723119034330053335776490461548520606154777057929241481906681430819214877452687202639723551691328461567715292036212136065439128276474176317708691027414705686474169399267681606152944851668481643276010623786561880105956352115884651761446908513454868641501905864533093429847803840660995922290844226630522300624929468404449214573549461296013538860948866876726773864843142107321406356457939888453039737033669902792117675927458926737386407717900415073051995911013391487126999634492957832468434191408166099607854804368282101412563466758972213555368945208041445556420404647497486032623377723459198751883890079063347224690264696063972501480086496094242057174151493740826936048539846400575112933662687252260537546615352976577085054557053578795211555023280201709006676118785520064441007133458551864467917622004881811742570618923256010167389284229021345073724861471000721473060666337422275310640676005129989223207222319773259457009687341702822601920313099255201059785118644367643097573765848723796592999250056337350129053646371574781059870829769517050604203827372212563271823689977787881355888481246742576393604823651240206331448181600936736337025913562148608766717696230018756882983282614686648141987317653550058644043999365839093028970392796337677044675928064456184438284228535198785188417477368997962326724654458538226302164014190331708892572297106793272032592064313246063353941033637345897617629622316857311842438183490335583805464824351234267940177853536456152934643027960288452038306012549830266341699127744087127856267699040304570740899745734723459259404794780489383389331963741161418988054719734227457785552749240990421227675141529377430166714022720886973567859584200681114584876947970339062743753600143011724186227422729712369146358208339105168736006740897193170070584072390479322258247552040278647938037437581214620422105805998373526216400971681156829163770537028127688223537258302689929565239396656449215069485544741981004331764213895890759967828118026039690409556320691332945890681304349027798565564859859905590399666783163181256726050225169150143198154426582601200893748233291945112341082554289766769359412875552970703394871312690785239770512695951315492113996785574071246594623604989843177019861887704623140637444933723301334461546794646878950000005192825584839029753741594939605253457522045017376465188229613297611711231926558240388240575597211935415103454300969523728296647059724795654835824727809128537470347990691100407649693748184802809657664442638976704424115160127774539883468138360288754692650253605234049611571356436019208385524782139156689997132278759281549189463224456858091178036055514185321331690129243059784944027897865497324755103346482608154233098698588060372272067982984832072598937748091632789970364004587380302468034718887070878337885889994230625707724439608380480407449373288283737014991848812236127374968795691308211583294396008327042137530888675107967788747847135385762466772454366680394735376209181467846242142847441783481753384764810236471616963538192145778913349126670328934303806965067973270144008379445009394552306085382555549866155321923572176427835990538311335229862232157224806457036064189352196674712934763106922844346905282207634068256060827690795978328140612580234758391728089427035518444066454088485161393623043012563307618002273831486820477926977730919920376925595182854784275053570660775949078211635732209013671664572994631216715840844375468224743218603798540440787984503493953134142572405505208943599368429794838661161729537229810493207871413027168586223895259393024005102223279675699851632583931265005687649981825714862577068191978937092554870594660716341427841296691989461022101067548120323419968023188914089051253779748892820272875684169483089007514696485124763981033785897641181604401147728690935630086471537818974621821004381681724155179224967310592847135983773545312459043958422011712830658723356538548239387015917136226971635363881125342203117349420008563482722564165524082120543171782891436345093199907951791380808361931876296159742280059984459789523919152188905352992043500584457767922652088092386692728188428433320438433696604455092743951618713578698942355974067317834201853526149289067673943501869161074236233848782103856877046129904412261011235252826831702730150073945484848160422058280104577604784930608630024219655083278214304795325924106284957806659855295684881697449893400691666776448583074124925575113991491795021320002228026306101770785131525927943388083143865165830258445449788392597344225571046675541196406692757774376572742084927578725955678730347519369196455993817628697643590187373462982202440597642367261468156688810179534246431875138059313597036984347692854501961742397877801234056347554402090239443161447955756261980739594604834435276957621534223318421749646329922417984444412816072733019537759040778352497678985134026302113135698727909572876124860833967886312472518448747646940825966509972773652451667479913668706810220160425652277488083684786977549267411018738000368180385590754834052827955342867559799345326246443416767962399422295409535197805041610569915789614495955751968198823082139606746753111634676397212329325681580486455930778383505091423195183426851845463432622366878840206809899639129818607979615301107123103483418234373440568737751523445598094151707592396089571884012866214614998470218511045736029526738662732202371088070174437976495887018491788766592580283514973198207995395881786480518679901831296127221761060721969376077327468274791857007673894964580260185949544393373842357353421355582644486633654492473361569977563417785635191994402230976837727337833908507087893642013867145398763302999631427650930270069273801469210656338171328851971541181479813799398514933958441328768199271834648244482395056979279598829761678641150708547705314250780390646217337007389115440572096717202778217737974366494016875669401160316498429848335713964007856915418135174172557560416255112370471227001475652715394071252474500614361913071573950575933840423528248262718466704228832364666488385034011765691422706451152631766000787732274742483276862476248847186826369028811387433947524257007559829780196056376922248364287988659283735178904062508294646110593080739913320149660723541682848986448703321642290580626891304469288736558627914844234947653780945746633529623093036788368471829211330197844852393023797341793158131833470554138271434754966767584763591101931212957604486969926368772992145713686416353531643048842636949727101006592584269404303254676858057841174167278162147158476996234784883018420892505089368857273132735452541611128377921800181173728057441510453336035907819168731686621716372965004574810616486712879996880865021515398181863866450667834730596221170155870697232134118031012869266947281578327874407538522197869447541988352392255444671212364628882054830007883410254536207987758599389265333202699291224999577988478250709734879370366586069998251893254363164358670592477288772569756439011927809264732143031591037801247320049736771176791913275754809947467846096848091835893551193106394393498577450678915446421674955187846492134751675565413055963338708488350636715061244208028365842756795003916443454927266078441908133703099744016853426619182680020191951829379017996539895960418438822458769509301815605440431327685351759818809904481747182495721409047511563451265476546293127638861523881160777887318847224524505702480909793374453486807034386528409546578657111254743346810610296006654286209860499123819078352233839067498522691859069454743306138646665172657381033182455237581671842472680764506626835237499659145433690092737482708688080755438430547825429034935394691490924829834011090617573652549385796397688759533675928416757777359088386979146738700414322491180607370116259224283822113848863692577886562126266057615909518994289092322158492388490132620437205867928161028026965361532830295476835921628379289053849174078188169275329237731810521521884344127426572776846186880206800907761769470981650262699290106286477675370274938087357709767994319235040769271438872440298898785631299648792184372590429382188600967310525109361044511508033648970885603660431985696934570863699866875153269549256752420298928067802006556213192331987082692184326184428644637585109519811014932340093409704212972254641411801131182130067756578680320851025403248886395347757704169949945147432550838179756859984628523860751541040931772100244385724340332552033684343319905572035968303608497025995579991182378291599478354218235698066411009964998944768963466189446052875671300258834084266583152748588315250244264998213009026939399443148110941399550040036495909495796579073472240227072782315121977507121287234496485247933288544838144993145828035536163328789905688246815161395807842697173640854718494562349230668565355634719374471916820203495040019594439701743283545014123043969685662276814067948991784739522992410892586404738830700693334762088476297503569734931142903633423729530460026607244416143946974998345056791204036120432401103584332371053586646180219710384493048446191837037751626547776065084680559608858287380295230400389781128382008501030060607829729981364512665628881450922632348382805828395398099287336173225997187077415709432920160575255585733333172714508701477667502555778312310683726281822957047526539522481153214574782923644847269425317429289954137906413381746421513353438144551861410080853289287222049830376436284769457593084744917038332666921577481168643813224350935290505108467689193082712220740437228122486797085752679745732860358704220933769879689380754449852190496623449484793835119751079688533698568457997361864878135642993148953796060566902149831378262322905196369515626290942514914460263354275666341344121944190394334804737051398273567593062601782977268797221190525952146946160289631996848829030049889266931316187090270035828710721170346206912354990028156864942087206179509953484955452277468260736746014197194375769425293041057228388025135611561001012986634522520726026881745915854496600187407605568411634016240501021830115269126701090862351684781310710502247407585334953271063978626971188553284160574075823134423279166539996461860514899020495602168852728417904052476390556991181591382555309056516303966351050199341543561396893826953246087265393802458900464486794867045467330411432905499225344326399301739048428427077669846504573951464705716392513336036969665247658832996031082870722891362029303882315059790817946545169696050090331159732948468824857857783329896065716762714545809529114227419701818242543397122446359074704038663418430404466317012851879853742159945303980109450351977454042553399259053834378498846946188371448084596382124345200547199918523331203183614831597504477789922986479271889737995190475827614450091456933113634891523856296714489563637963573707526056383752660433735381833399527616701676505558788377597558299084284292089911165638686916862740620567174418647670792037251703677066176771607632335128588613924778327537790211754692129325073395585211478895953680868823039838401346771917108998381863973993847505719137203633922789974288150739059781230054207183090605669333601736872729366530784800162762602291681740949945052585740507533291885933549829224193119122220875619954144401389978491643631382462847196174052394964099935921257147062067611409851149703089576406571702397306352798971853102074089321584598002847929760587480892616552695836152481591748686487020156468358211272671681256304985538733141602654162517683408392470137577626288019941563227947078404105464023686972746364767441246585168743909143666518205204864222767959421014194048795091994652237866068200723520799231348423820182622858895982807921736773653688930802499326971769330633777464224455663429368043448112159397040561418631392215417385934960766319765043779196590492503466713760891597222659571133302554244594239041380064283567781212822087835962392106415373479678612610838182295073698293047242019002645322149740776256812970614223654421633242272466054611243506809070784408268196160516790332791607950587040023667551146156700229278031880052842466304969296524482481931496632499806239690284665556486288699660960188508097417895177129490565459091128006719613169797328932477047194054803110900963541491728529223371970186500864408384589149288751698163856427090535892549416892083376571970011788218244384480644211737002821964568358324299454723688080330430656140633706877866256129875683502459223428922301159535266498680052650350928723515740049397932930264464795651094334972602115828743688024831969764495609741443310550528533090081922765312111265715195595848280753244281725860611497454675139092432145736231542140385077101269318141945163014498493003241708724493329961467407218734677634582231621298824817460189857688367823896738404587549707998947763279742568565908219754074425666000384047496416032343369151650806433542931114386519609589574791745468859493648569499383973138591237456487071094867285366942089361340563311345478932870774386999054313272369066116800527829510308779241999286694156589341442885678110105363527982213069037517485477804074038594489836252674671410807894436312286057833494343495494780161771562375077166987273971658623396076872341806506907910757973393675701292975640805856095777632304257540883015229786604837194156521097850036820523963246005535849469675326816843168373680404370296830443935110897426141119024763060095694694321112744876351665496637707924463379920631978728046344126269132288983481076983195633233388762920068303999376986812661117520840972195426973479273911894004193885057115324310740681579139998655502166698211823254909046274550667544688545255352719295803594123362415312350387852756135733860892491480245953509056952554597482485130990082258452066637173980276819274177204584490952072595967566310305389814371036029870303587796326552777859369288200013672878342138136607771046312460562758695283357600145004406439475958399474513175872045535139828915174002435978814098946603590064509281539023185933112707025809382719929722232439194915441563519197479172599524173274849822315176620856162663370468385167408427399033892396088439657620726974472393198812734299759531220503039440678090310020891844542146191709316833131634448331765282229764325434354534287976209810951486827119204919250261965426024395976025012835566164334239902423192015944603616761513437608466621576643637290462249036967561766086784341349537833278553555929473638559735632014918327599340218255949122192214233465413538684145598002620501665309956289207190123074434503627355575386382313480771825441202276891641435521739208026913997437383433927175417579496428052338893818801426114539857239422199657212039754834240636265942646313362189339678768878300902371869587406034809752831743098981501389549145851964435350200803966779204001274148926444822946898922980659984838104774999423397961004665848024088710779423266490217195260945442441060542676521572265788368760420023115026088744436807885482512155073778065109528017601539731695306614846945964991930591943937016910304232907403569668267903006404213997380875780691776605128928282975029701309443391844550409873839961353457601698948955228548084538308712859721725255859863784522250921607009295271487402726545582758204322941329468844758558931646460278876167271900389293658988173306229620451290520101242051479961180865116882202230536843545117900982192959556517852492693400197039996350138580395651653051726701096402015830021846965862689883970709645612392805417376900619215709441652111511047182061032428342482821613840883969721585543064509616449777066070447208076464720578452676127700030559386052977214807403608804994982265111495498212745542093014134292319015456367511534574676553673502205278023116825871313462547230129600288144744293254267523826035167492437020269506444498213466879708215594448461146699219771782984350102976171447707015064118980371016953772099971194848499461291624816475786165350699859470012028797043588690359355174335025007296578244918227131665163153193622672306927676330830102660099699290997228156375239767082668292986093786387278168357399462191604924638806740854066261927660096575451544288759655520413954980090652353578848885055414777786484226333975841135291217674798530866122675862293708860904910559164111137733779106935276186973552572588990776775922373632545865885980321336775159222844134270521572170469153091910677961491227297884462466434936343547476746599124068726113506624430118164094289025012804065136523157449316818237907467078726202232192724349130124199526320448901667693418972496542185664465569420057114984071342650721384466311260012692134169236359366262979995668610206084184932561284365685734596095660350057121679156469450778649561939297367114671516070579833078030676887588791020354913366047118997707590701689599937229020619094096310742476458713459958114385056496330674247597901660085104447133144493796691026005440257536205013171863631041114328474996725842019255896159319533290573503918580230966241808818222228761675535070484687057292601401777731858944446985152657284964534439185029601423733705364202290742890752511336986490023810138903335736652127159060534794105810696441755683424943946399263702293393800406584194491284799372045888509291223605860642043881157605272139220351472034378537359011600815669806398502544171131903568357957499816115344956806652242083360284425534025916682037495765071507946070225495050189481061493981596847941055279577146190632607437765259121264811889099292243715666128247317100862372065515628806826895554554282638657235998471590318291458787706983859923117795337946222729174627794138966882752969613165826789837150090550649866225262266384269291718488913104114476124352056738683798028817538468456026663533323920522458485110584981346009990627712204814455547233499976882487803519664538681886788019738984582305730386034805781573370476042999641130330313917311808960722903987729434032340254809267639621906829947277418707187879446948717473250626126994669728831016463845451405536012254192866016663797335689908972756548314861530104947090434356849665488181839295146569260748996608960097004059381085121871901679281240741636841919781865374926332113736002806621904079718508248095635215765189211430575120406310820156000379465834212930096230841292890813580927193168308847938100486062729991107478392884195349630349279859704179701282568974452846961614251500945322435906186566491398497526306816477996773157928205146180732207830117449009028173057569628076537457099362172015663110400402260250571618189897299410759034878207388818340757743306606686261392534976445836633420580723329940132697151507700960814389676834184730492167573282092887414754797838700014924820892145929091281090885034638832357917035240398703006306810784770766985936504952892224625148005580697295305345205427363742112151508031175785045600425939414240848295649009859831441223595255778293404438561007849866968657674455513154550796279687467036774905781656183753148279966335480951915668311116841809461356422862282705525165530587039421708868945984141628119908707812976742771228091216193684146656273245709390180742355614823104533995368029719891621397425181537552253229629641622519548106811360276612512326937934774785043679717253522278288611446990205569339463653174853422764079480013206453910538397540793553959202919470317944663824147725923952781495561902904589895256794528555208379970378286955933973717300819524522193398079695953711522425326119953838345983152314010576997716704568697003300044562962169176931727952764126332376348673142274291665316406643732023415455774777494385834292531536575847312165500155702146123181186990491511704424277934513895947993144634907729402373194317882737902687404794160203818442845340307197374410809036565988704867904462375796637677153493763101023757595498926448019059262106514254161563703728907196894771943831076491769322138474323592281872098586478199375113253561384007646447247569075291210010623415278214383529923315208953163754925006777955727008190120377297780147015560691501332375152495705137795113290891310490871395124389702199851670558345563875363574894022360049366679669442848767318492457435853040709221905190882267771994230260284038639759604212660984737619912116288458007805402261661349828953291936544737273205106037737221805845313322365684562979985584603688076903067667659547371782723317418357389345380170256145265372218942519279611158007252358492523709613892881964731333863001249934992503267023511122327304720511902319125998639200270914691171986547370025267619930141501996804231174191973953268675385480752889377052972179315865370385298772458913768448149409268330834807294280225945593126057695258480361108489698383307066629923603205584431694674565301663694548085256003084698680623068663270682194390926151419160297272036313738164626241166420668148242333078267201784492593757262757790279124651854514578441357473917320462201815383726325775691018958465084496746086419063347514818842200767335986697877772974344810117236282193986575963624424315854463824368550121402256870031002315857098542889698324278315418333346936589942872768768612478490422049149909094364188906661881197371544876553064785803251698216046899071567917502693479146090573298938924325114505422656819185312169943121211155900736234780155985615102900534354558158839800612647735847251829603141662785622794327571769372612907055288476569155055341749534486643733928414988223941805247947941795331243920132180725437743501112964703034854772943888941285773513446453908912014802489741583881007282517222093829529071451440499092805932296054603465142239853869721356947244161370610112943441751188886157971632508178828805541201800423171497340689838092490919880625548993008134443101432981931138998223709659776198238431105502127278030320664357276343572195041168231271031216975097383285597148039075689167693769577478105258961813473249038089482121178459392574679963903152794721974108543405180601025633865381510460246516087206550936553379450169294093305867487632553033276891014161764322292444952796747968572645234048899323314706080415754026346570571586791418205743684817708512507972819373390351667014288521649924179470788764971459003379154515954184254870031883711231150413529061753046019278556392398880626045883817428744415673406138130289774378197881974006123184960990190233322072024853992573394001756158601218794094974663865830164937693432678193116825953550049929275367888985448373199963924053841662248043223571037002367354969413362081902804532974552252224455695050099739772813174526857749439270214197810974807266891068586972633178039326908284914751410642666140477211116060584861770118380938336000701109650393829740296302066037435072009457934633655223681769435284070964170959506350304414344969013199799127831910916451642942447960300136642027444928149654370520344990603639088888919654596949079219977083730724312488349408899857676475362972857881051664429607991746775659282715129606406740250738689625237965104535377017356409825470458276012766174189249921651623873987263272798180684897694691638097053259029011715163676365530272447513957809656207380461392914843870404271730618055579014006097515298121370164110422950380209647766143451744466357969512114402908076881473945610978545789717317366594037597753868675737345142717633372893298505408587481432805670788489402887018714747249593166229930104189600823989645063321641638785719055509446904080351828752866625705344224229672263544841735496540590430309241641521524917600289115678123295329783000440477626351199134781012106368792889019112714244735612194834264079216973654386845110420915689264561970063032139530541988891964531052537706384142259081642984889974729492936446649702019229188187894562714758785760938380999110982205026326789254810553488095666132824712034712367337206927814020621723585284723078846612548526473861824268480484169804872008515011909501396426012303532912826262181035588276277153810776575820368321812665811163083880690369712515615424767101235805182804829168489762488072872201242097528026893091813872412662570383242119877612194171505158017947843215202402162556971170151657140864364603674855218070152020947099612079056975498400068670805256784470172921210714429330474191124052454225737485303393936838321725207556837313916662854807690335984461764089739101501670415071271612179135785357517586326137865402078775186345904433637571723541309588903432421764060708650429505998830439507112315822234063895018726614802938621807157748597701030965584411664469132890758011124653035270998690561523993013751452681525808147898457350292248181153003875329423767598942575978340078466401635665056659366827186434971463508016768756660348868019277851477998092868231672689055149363315466492871238243364994618540064844055974929266798101195428260143105705171753531471974379996822440436663712093354553803186668015135514839857206119688877957876041853008631775619857390110825025908408405069512598510193052681740292580191406058332282945623081000390033512118436252854795651318476891100758074533414255146294752433962096555699561315489701598257047169039505301553388690932819813996807425495777394037755757173741492489224389725274629662972582965727619381924655616520303763500729667691819476539033909250886533310503653780551440680712308934058373748830329205055476642698977499593419200504516383636387636741379416419679827154729761003246830768891649267305668163190094736486829399742383887693818752899596650757232894294009596877780911944154184688545250300149038741079981070624529619162013080981432440737869303714884757425945769093014073942571911670242416562914974640800707188230209680541548308238524137619778368566933518326356097371150949768119976526612343403846580575329989843167077181802107878595659622442990019318133585199585821597599954526056590475805197643862285823526963461950577184926134893403944380992982593569099842914133439257759956292612287228323882806782823622761212918592548098630331033426180291792776645639285200726444938413573805785494221839083135998332803967453366701485094737336962899876220383111440839164328934015641454692201405625954619662088721013190251150017838929644739188744299609166691339788141363302146243380180325803396832330263355669183356896371148144621847660720458070833784263051174403485613652137508858339697254520814119935314546395641225321127188707714798730964291440885960271698392801242659877439653081663350095352023833990671046109688906755741357727250094901179269721680628566494840203983362002745095895940668597711419257712763794103599664086226942059195433833593506666202661355637986937848356875494399825785484796370466957634481072941758400961650348469234708115876263497940617787828273434993993265130084745557544270153039248420820894932149935138720486583533744302178262717974780303281005166272872871450827465565943644283039029662959535454020955099480929977229234046921245097525067240903494743219156323156407672979797355284990975487075882703955657208719942663570818415892243576458670204399497004986865032896910639357566431180287783019340327871577432141577270590098515660218959654653126399751117622159602084150684432083075241196646777055873010239741618563304681282703257098307017265780797474413183498017648322697935223983570747598420300957562988255003468738996187963402910230047169820064594892666402406491328877406314910444486558752981580452315823610272845237485438670749826324146908182707347491888176838868340448260633040683512893380291497704172932714508658326972301087857654552633484952245666907476667548046217401120445943602213041704315533248381396307343088600972287484168569591300627618251992511562646176122756757868595576278122626264994214064668488780834774671103974153132452948630281922899104921911062733331901056601780446516759308523177442030643490746441118853232275429982094078816814642961214146709790128642796269538515272196386269008564083279333926305959741700468529700137974557837830333696298950619765167715390684127959866452574938779492108030208176830597033330638188455584992678986588583019903655458228802051612174735091178617804471299675361372170151820742028875579245586363530553576791183147994167514964337080328888151744922750395014538525448794564043351724124135572827611669606319037465038753707989274865699263544978980679225607104455977310543661008210027871662290493388226251131517059208621596641147248829417138103948590389959615436143701039414785420133396980631709717223287927074088714728291040113144433261297245939342953807038189600551174201098327363618229962507785501358525698351653985581393997253452056601239267689109931814429114209979460327287030773098267214846219850214555686373572510540959961067123325558634086300048424494942308563882977893986796159346327798685719424032159141082254944868855347518890183477410661489175198034286899879635562151228931514174606511387486038641381027181276226316940711850108706183893796087817796628343870807216692007269218693484263772114908148499110588767920776178536132135225635140805725542945280693873549308065331312423848372701552012704290348940144798503067258177323498802486499232154352818084512291707424348877103053751685303957532664541995184767548778209389722829746589472444644094255993659077845077380034198755095682043984755714428296603753155634952040240966853001863951242538158676615784712424262129018538967579040520426016143531621655535539516513419009729505837149959468336969528851309668565042916057436236200174967274870854987697656932349645508158787096034962770101510038619661064296741774911489931625946789992768092624348326349370391188937059723152273674919048439588291485469974657131248776327515653740004944823082638186347124950976466399363190213461091293600775539255864317409840044636756486114830562035922249345303547496882893115523736331656187642520348362123993860912117094148775225750063293289923562322188759632747568196055394227488705979371767670047461498429585974225856383688193065326817643094231908861091201956088461703162364224569925882868360327465052580667880913137343732546253453240866225570203143956314748035378815888959708836535800799522744468168187501842258047563395598259580990526942540392883310367220951111724914590442433640353488013809207640339719808185018016218082643598937430403393607415665732022307217418573182049052488185412282072646779357358454867236344815581606969089989824615262336870629815414665898598055802708347674767350247911723256112365262263704600210524751301705644564625461870267116094279834285370391296409117973148915811668731339576356238239032451896512417198840142720617368854619150054107745658734645041830314686905577071213129403696284034489408659194569229257785403665162962340177373250478926009067579619707922433642631196943079063696782044422842771661727772942158654017740232166912333688833151209053146491805730731433859474131721996983413952314433972054454862728771552073565662029462028405710254465373709739069568697152110299028191349706669060171276495836494249485256953036475285662760465822871085989660485710961777410379961202037803030074134795125414446676914436100581220707966156652035547227813353745452814177626064621314496884108772058783426717149977680930122333928920452421361773513801446452965166387410345273993524300941258130118691325403167400915729268141427210657170461497446179914753689909127782637736483441046319647807550922290033868965030890097013305040630051527742731672710144721343643226038385753369564684463960608846068212490956539174872912269274139465931384605100352289858453320304955211565549435174667686432918568901320434348317610918203516273660765138599493889134056749223490581309503985030188482575314796090931459445736656966151570002999787041433273380623755889602663615893238600935640407707585408426292812459778899580885932461708201705350699954288616708937224538377283351610196709078777625547732941233131137556322527255805144672837182206492992773545168968275995246559448785331737021813949725580773157479161172195081543531042004703861157177653196063016484221336580388343833756013215890108957175365331998378311076205568117770408756496301440677803127623467990468170193143816567714927538528970125518255947107231248430275747385237299484863344784979725319758709595843870553570536592731664353857679979332372806946758618191181135364717099134779526171621183069752761144367511436437999782430135888814969317060180236104203323022918763156490984735944406432251175764193292938170617593205006618114172153644537068606217756313021531431361077876700314816819713154350228953976217680664203133970960731416804207912304329013643550364997070652257813427319414941905569007715475802885719781751356098047990827381819029722476831316440639142053559883904969491212787991127782609475326263037862813560857537884056564779135560987010257130367335961181427356924056833659378551534250971399709798408505642536601134334783455974824928621761269106615505894407915570814324715501597116771231237763973758363720747588877602301956729578247971587842633358044050858745606486257180868294828128481791284635269590154437120042698546958999218552281144231737125434358284944822486344293090811672305755525940935187899814587998594667487718756530633999282985159128380313223003478493617858774538818639891387610683288579943629393213212400912132766448443347826892701581799184149228663110143661624033845950590033415418691715690710439824155671988290505348342868266701757058505221387569217394900530259408697538053653298881961444813789734058386965706398511373221529454895795539274941023507022901293409269390262584298411193492442860436927190977753584685612170094175062449701018203104864126692664884147360619156880831260313782457238383572959822933637680996312636898165125230912923339650535807725164638146230731438402188923409283020617319945350129933676429402339202222360083010104018367154796677668274573514437178316454315356944560075421284247127819015603782839754939901213215783711313125634248867450428338695400187459051332958605066683052809596542240882705987301786606212418258835391640575689044690321401902376108807321384920863594570458897382878614880612287313872290318271170429509005869283204444459292773210849464121416645328793107660162134315210908728287692650949300875844936530800573532289887070866472997005073757629610218620797366726486658919504052268925192874219021591536416579517577356415389996589172005776678798145094408569672389799526291299918677349747541632086956900530346905836891118483666883956776662024319129585117122028150513472514056182114983940768269122179873802722655603004777577182500905345095645318309275405638030182429089229298693935012841333243378044034596060327131998338365180553346037433206720481889731985444559623692621780921240425513866010862226811530715056358931022639458425584660413091966596470532943372064614363444196882029877497172192067176245482352050913889199854895661659800386911590701981236183122512824272038359128605821140641512415747588008663768053290721311190847419312516038413155184136553766000378879598566980028589856172506215576850475150443058799299306235840833382823313991811180856037666658099994781032006742207811322828223347952194165681574196606502670186417069596422490417170922425880490206232024293091631656354479821266360261554901481120947716928440652326631006054940979486926172395680432348029195657167277669649800411975006720972929341314858901430031383723319418187007046229618326823367545927815852519506522582325868266507843038312696908285034601872990690256833400675048414603582015233456162506532553504121343662854207333683942589666672525736622405981741487313516599498654514059513230468309092580606419118472856030622739042837856144911587076068235960355158535364712523406108291714905974842459725995901673743713765879907318134402587738132985033445163556425330200353886583026680653364321047476984253476457367653259082265235138755677536579671271728667743126503645127648600059245481246473549465726313919803569231693878141371016269122420545152693658705978293795293800622947371936167287708020149848166719160751645012038316042843943092948190966744816695304550328028141876868849715111335656720260106153438210829803544825160944366831946596178697676777963526186255597899616858154989206196722238415597465518592557119563671557950345540763095570400373577582268771739203394432106594704877013860287587874947503199843763087489309330255070548619068565173235838753319907290998751678025097061743563927626617332765617382716132355677464456496494264422740963455505119740369279818858514248496042656983618362048039046910752403772637156765799358647341061612785345180360722347658646124452209116814127779509462153644484473944031449898677132604734471574863051282694385647295844624333945327607751973830399689540658874018836370180189636781429307983263590879984899095479049509115436135918902009908149778621925606951496175297202920360032828280554071207128538618270467498782876556817255300299625290084933003609813108937212967733955537025718766467613927387031104357964514604616040372819033632706618213292087749207746648935962312864122767162549727536277967247216133491493274954120798342124113914540319068511704517400189792634572924562295003177274432867372678726496743891841348363631720273076194952129401508641208580268857928013393928765788353362084838096844818864589596208829733603685447767492298304589850119460894308939774317907449932184513346915138358026075370662828633721224028236936277555165391356529553412880301631605322266187358267860954663332551891773749110693347287643339105853257471037062730649052422731452437886694996433871280029223054232718353180615892559605930855148183213810841033887770198453060065568860452626236260357208305322048586828308515048174438430489638902680310594391637203732255249785076624645625617348268369197005983771844593237173901593602823886622322618385477615205734037857646323676614452058717020500253835233469012550761690420274155246770165646514409108444025231728671783344182073487502728075472776513381772232910325195655214533333626961312990565552272842530660373538986245557883687897683271051964130528051406266172788586180239859659188210703127487746662688894292004051046709365242739717426596317222791017726814755578534673200953506141045372175893056582022499486966043088880171034182412972547976852891089186899608591393487087819751428173522660434234963483256924424922442660552425611202105364751773265586943990391132529670606243334336828446638980446358324446323491394524634573239001220811656205792741473873953957165063584392961302609237275579298999454162638782535496350147563062541427648333499255051159062100439396457838309591008773063970674159475551465113654026080328893804608251154417964801712884262538602855247118135038726195539268620461628907370372693125665066185281964446242614853425317157864992151398185274321451507633897899349289257396106800783806834126488261361665335263349763479088564553811642960425282215647965811826941472291210974867248056170529346679216145898290905061408990539147090268684471885008371598479194343504607937937522342662338364119717691181589225106880754331869686985454778632209822695895968830373098596353784304446754225588006667545383138484204599902397419839014999556133408671168627379625762941974018418798582379682654114648592622311183525443903519555590833538820551114215602613774414157952741465635610855092152295025795583637074823359454627066501539474715064415949654784638815965939091039036010612847468342477311564844019722721276110380411520130854582647115588574811931175870115408410320777040072492169706447885227840620032832685668302736527170797471892240862413843869324693352064815052904003665562076943142516730784000847245087485357159034433869244833312509943701278946176267692820036628632106547547345878152296237940804497183419789179922792110029761317520874530869569046088537624949215847643750706386745029255013460675068325673221034260757226693808455491778662134004028414987234803653199692206730918990216013607964880176865100509008682309317727790359162243013596174695942946067328827661041132462466734803824863759779977428443332298753898929488592014957254144284491249354295009140257203683697231095539588989848096099070498784969279501169287066255770505578245838023595355134193238222805227930348269639182404117410637572272792090882540452876374112561394403580730015758466400413931829236522619868781366215888933971561321765382408563898231181685482001638940254876382901973769066353542979048258179198949373754769726116254382434260866610468046018226845694855087016447839727496869903420837810020635185397746491565807822982478811408510127344415378501712602782800250136000875064055195551632835166369156115466409064423050937176766981262647871805041125736849314481537803259590805790899852179063830237477336546612823602213932360164189060547364573400073816317108892676411763885629715629823564328624886377304649197484428527625838115941586477262641587432687314297824760588202370482433243854687826646867270709540832347067599089357010347395995526674709702819943730667092688112608037341351604890161404659334151150554785780356775756936539066219047750910718040862070936478903405102535138865682924726925079694411207679874307259654897600095036036393653359916223700515684701264191655798205089745332718520453579825671327359033453802880976111116335484959845482393302159262700178787382830557285274928954850800715208794710812463090786807534850771110016197705204969524519446340589257175208734074423486046042043379937067497300070450010767960777365701700163405480611072866115625594932354388497749520437787222457227332102434882163134651790497814320383847261555385246282053619086479159593387416256418865585369969864224001848535565375798996665616011115291968205528440336524460036383385975829260297361130023971699960390157102708866577506218946185554862281750839993863834523494345366916014892083160532413200893654970142015239991138834875960050424837547002846315662395365355361215292448526123282519138042186477292244174448597919981980652684737636742397051484396874672622089139562801737415607576985710453382873146579979528158494902697661920346312242363173242818665540407077581933975717084734668649731773958973430761204049722976794556990942326169232805643363421629692376397220993519642888152154756534582985694558026653042931972241025763653673983843896484836390394785526943974334870931351212130402799769419963950333716547912631492447850763978055267936124219006501239002145848916744339300565569182744682494467556263698854119223180882720635997824440251736448893158305303488377957922949734204123211209526119187708693689237250785169635787762637541822552504872943008085041678995081664188232504458384755012199004106810340359207263524245410943146774614641761830422633410014407073198183867768218403903131030224576144757490568006237617748808603370571365899458859056202358092902447298128016843927514782645650095056679065830113198150212618179570502346684196230646975351573044340682860604314116827719044794086786538905773392216836893903379175990060521980447586494957257270783426970937099613592236427492178542166044725491286452152510722671058458598089115087299932234073096837241486991931739777689335124595132205417561806094626356077487403044023441772792421091819370819909767976098331566467995801523390910519513367975515776378592325824700608455549106000977021724559528861986660688692141986315277174386549988047142489944239713662330864066030593691789053261233810172948883507979188273461564111480041263393527915828165837672027591771880866239358362321169383512724045663010872412232073251265403664877029253886632305347637481205822930907382187208559551458015618007314106744033901886875731147372464634268220698029336722749887199686283351081469612044885179622006867110559393723363282713184491049618302547237059895935472982137898954115835276084052992542579679144810903797310713577568639538829981235000431385937480971673400565353674766630106233832710704081429163746855863894778368996564414958658400209105377326167461519339034813751248370265987752764896250324928735910774103765265479250594843327545012587231788214116839904327854487435346866216311425316082649582748582453857654158162673058548032833869405781247912295156452622810862116324392953338630159393395831945843680954265137543880410831097959194522011440057428915609134664903378159310989827129006279857215427491516756438974558109477358938845309938014299849376407301453788611347344382758100239754440427201030135528152625816439055461057867666585904831441499124268403940533208513535571190674479393756040713132078609346104754093321931623468371624964087950203700767629697698466028430991164644081177117062903688570518033602005794661869519082935510119967705963946625783263343405529750149749330625020631182132229234278753880807220167954143814747259498317318760676438839217974000660386202412724289231539607284377346676371981362261541383309499507207929305530238510560127113980779331197332023944348960165499670855054791150481566316528653999561200817033504213241315509084280402586168398042737776324311484024288648634517523755049611638290425520571643368249109115698684275070848577935808433377862599493583626920804150371076156923888644951705992743698715313847812528528779257027457294467762548400121934350320152431132969178016846681402779467215971338052046870292938428640163462449099626652597969395273572062056184727994621537550616974927652859008529817101259588269698422546545028830780469414195020209917208619865933183222665121189778682754747263558255338673461928993033653208608533033316547423516786321068540978071647739695869050252965915483482831785776429092980399009045457366430856863270864798742670760330201837558415229798840205765228431684091748691381276121878980170072748371559673320867293901932854298842431347386964821141074795837822864412180497927469582273452457565286580975321467964300916053782369075439333448067258559133962797556217478712685744557144600208925264399125943798197590337932978710235430343534515231053002069615203591392990523126216333332610737472648397676387532835739216418738897888591467578331250956766246475306910343069793981049415120822213886494436855810388170292435893473878261329834141626417994110598415880855954689942364544805811809633417998421276078734984195357444546118679480567139240241287374619453092446745819751718482530055107971084519169375720161762280747029311201828203729614678855835785387903936962444411372371660131038251695292720310766225117184291361708875510913224807442380089794248829230626360466463975187580050274790124018930593559500845186046175700642178678122126747908843989280080651964178003774500478079483684967055134405905398304314625976539882599792122166412796383954786910045664879632191346312353388068778598709242148509959128463929590049534954280837435612936244727844846825478018109198529525606550960375442728680422630811707907389930489359920488807575954282887894535361477955770262442480796853995090040433007676076203937746562621040293566445460030496839917867268486847363234325696696189732744176586947875001530594451917751207781513186098667535004712980450410654157172674721639077515235780991515638215665714209453023202169063000663506850333627770443553097220077880040023898068223906414159135574379763974040470293777873199318746586880561599244757658167349930535564188646722377521637763548509601361032316114583545295558157466379643633401061427472359864201168481299398579494559967035620510745819122623367774655989011348121785107894435059456348451885085185758190464859435158073415702696233645166836183806214231529191766800272627761889594434862754201335139874385481724879496417001039146701418941678460639893589568863307022172803727169508772328895598598203167775589501985078981003167450215888283545503707193553363741473102176215758457180334332634958645436754019863458241742675889124728371194916849542297304891835098703785547429770204087208983528758107945083485238712620077135086182865679965315048888515287986800562720606036560928651555378155581982728556899929780511039780306903304135652113297047684460337312902171013814762089184387663340674565891725274435514357576306381157292865291085891678078736004568998588990238411514713299707072416947007428736581746607578590649606147684551641739979473392073426048270600297773786880022523836894699893557077333381150193195977973098593197054371966043626527401668427478467669316744311265471182922116635194279643555103808975677056036636532306747398140365572928952462606200516579302870672120664524685779725202610004379641343268795911155134147466305129978912457919719085482899516530784605713309227490969275731606933090636798737365021396284227929119193242582747059494395077576269701261946076656835703510804010380462716238581008898294192125446628635164782797262751918234481769928580725551782852779714660510980777421212898005402822362468970583244992199412127810554898813921575672716857645069884098617346962534171863543514440968051040418133168064100916377045387585580101114372815697497681600579320184936707937868948990195731935610707497426064208579211832808508043827991055572643618549331273204680405477608211408522638232478548353928466767236097188927889520044566643734201875595824544088181847185388418283883800806005428791075451209344796593385179709589889275025533511801927767083496906534966070442529809675561400314008930373310866950939168544897127972339234544405741544288641640986953756484782953949934560619019421246919874430162756345734077009800107462415614277705855627503306061513916968039461139173521024290277842898483057855028397188202012715159385081773516536527455805861285085426689643080804454406547985375158447283224720388832935319311378203182534975839999551926395514269324684766051063760061888053849344389126290637183977617055275720043181867980548873600188283258375973532301402792526879553548386466750670925102523738279725683770304311474095673510063913125830462282330384972172042720088875749788491482485149834982272344833956822657872192475481590539190875168636978145529706093163776873922766158373452702674948508639390110236331570411015208206713850580474242474913576027089530835861134480912612473929531246370511389122688104516093257514596885265859801073396213012470433361680538946520994746263313031063058479330538739650799343741881886002591140684284977170414370940632513150277278391740719697476748947584499015175378916432822915957917018864837583126825597140902443436836080770244144040513199356638503240386361553900238289018580424519938362779168789817250899062579814869718257264247403549994496108258935996618322472327961672372531308296469876810614737956393417426157939452325027938673350542577748101081550075888248366411639695529212486285467171631305908029945542080154229819081988921726861150740786909620710902192289906301224889466494491486807372641364413542644350123266199801857677369752163174029457917759778084834995453338898551566596978527071070399118588103593089887370273363887617128656003882822142710167028598693993657007964766086169122871563852109527760602553624040620945611120325337050191173568297098676880469509158246531754523941075203907724351211071918669006649589873674336915922050037935081875616021647330375608790131380651674863303609348402272187534134760194942081564913882989053240495227365192818941542976478925932233996374286112583487197810530520255265617468383641446905612523088678883393191923885734157167845288432066402552021873589393933018842951503609396083219411055170111739304365263831338014226834181036352992294972543128098098010471715346425792470905178646751082715498447124068863037904210495813266192537957316467564808238734575906906341013109952454092218589462548417965532351768330395262806550993893074589412887938046200755488851445938913866035946671643005804231223191653268796259561670091196571104008378568611106249289624706623616442616817647599484393503633234858736208165683072134309823664706572973129718448251674838175739306695127732477930757787227157893787525434152252570328623482954180800988159824986224247868757349612892987335324231999163230651073627221402716729927056631058699419186225753279535599909953254767130162536078952209874805270372729925067308916746175601965256723552635887783400384175052123548175348796659308755652297015309052045692132064205231040528661779718203092119224717869690531798487877333430241534313034843691736764912070082236659671528843153231061920397575242509730222134945258955108560618356247566166876800049175900571443307803668574584141444353038618874514101959788091878970817769404480083813755565554685922451497852583058553342518043807615210847812593380233294347478372429347890995004707959897945570563016976670965614036643841769605389413209956357238007452501139186908926936437483383290511191760140409851942546826383412129948376999545000477167903740859650007738491638925519418400355786610514003697632860610442509550825426106896993792075913304794215849179343054806425236991058235620875437553008216132393608089388095433204347407344030744113243199530410748846283308562544065193006799151811115228066285847670006300009685989847523317554345740664689542454729836735190541267697548991590419880639771298570134387260906233076401247117202220232159302489743237212838528760331840409149381003132190970276962092710614338588708000489078324406361880295090859912953977797273578293545173239025086359808708034833300472079081115862352733291571780894908062994364492212008515570935600870746323772201769706037478639726027366854545584617979062370679611367005101541064181885584918378957274148576003655990096164564614989908176004161079916423390538843453056898791458297861612885803058665141601377211409855140059381133611300111399194091176421845576886891628342776561724746897241753925398097815044053958194920908786525053830590844838881657441441685306229550161958365497427013431063165608359400143142924254545245609579990119657923425722871813812671257857758582918086806052219157713113444538483149276733237127846071551411405097611451426188881169825456433490258277508798043533592654358298063357204109868334464353773715179303829894152999457019064498584155729464094498126984336478090219139866561695394457187862022310410354423214187357333826159940881154203323029724745755140450634170508770409160816976447274458485950696411254879724438383611159260404345973416559490576641633176439310280106739740436556702498840239510499277735934267910574526210770553908241415055382966625706727707645486724742809834971555154776618261565144437556138177356541810260881060995163511484095779795880062392212486709574970721307859260189856944717132256344094062172342777621337346566801716873014862830674210631603499277032621918734457201933158669291032509127652105601527881533569449318160476156442903986200839862453859816719910218558227870433824719889913690580043314266425740550282862684760621153442091911869758170396628219432620665445293033787731414472044448894413527552552819862255956190124718566748811786486799151939390798890834447565210070334956373208695633262999536019132276913738064554332206657161703812901396196803353912906605214016014650517525502034852646334496394814765326953241891056497977975919634367728239223522300963478290742466356400022215953001993193356928304909389640129510895065192989080577171381468288636904846326238833787659376717214835271856300631756769354204025595911661938246905281517174746765743979874284129154584471385418399250834283190119376500858753302044073595458674938590042262258399466135813261016861215885332390201894105160801793734141985066720241963019927541916329326640906048144382966439222499701944603979761993314609211548881694222092250899610758947418948599775783233044287565828032687061608329506356938859735796412795499135085049937620000672546382151660069244950463552939211457990865620969644482791917064153023820661381768691096505468388831437303352926316884718467447379444325760658541495701809142369178018002838785212318739526456567140575487731757165824677072536619637495186113306125704193603825644127878903594400164003846587373761471691298612037176041227868151236367272649086261085098918686854594770964607072907513912248445120747262954964831485036764147987171067697942923542524483230515041397495540346385271856109832219516704690914117634626958328006565750221012697376871918399359421319070283900817288923245626922345643392015270962751556313034408791983792907290891465944520387274984520969039177232085270172904149203848542318027652027922124456496138150307720160808336585936637506534796786309606217017940769505211697539938818221141991424935609594027751004481501862892175919672270721671039153761502993875552995528688362760213962698350448299886572844085121016030171861542439688224599672349044190391156912885458577906963782768378449938350812855560894492639829481097231779839721060597472833343039650033932761289356899158816913729183907127712735433424068441805175154136798071946851407469725966260403274118714620115746864853181948691659502081983564974396209367252804712400430910889705460325282972206822086860641515054914100707699665619916197280361050594224244374912283095901664932341977560709593107368882482227398046180378010924595699799762813455647491391379873367890413333503204283316056207393922124732699363145758765065748369107181759735920854514794218423814618612219429981614017633345411794710343588512985027477090292736439535366527122760406397639498800035632850414599993239688188803173044529279029655927316005053918267009489063522986237320617899393873581125589337673681092443250686123331900799309748104933631917555040465284343388299631988481328601689550146659802426168335614297533478955315287596752617908210174693083548314001515166688638641810162955411569517668911633941705633333986551056637044056449358291761149060482845940439692816537315197173287631501095145167327477680203153030884363086935356334216866372893746456834894427643242945733035431972592115599916114717781948358358736914267061572037827928466993687100047614350219174178996002664212367292568324587591605846024744161399992025996079572308680475419152104515911828142977248821566825813592353073153634008730550951991979670780511714438032131280741413233527477341614653767750536575141226418192731016366905893252608551157602937230403958437776447793223332210890709268155049686138428320925875924898283296403906326260155673366221673507347437716195053255396040122842772931947851833119116383902798000163162422848339805256726131625114848399831438827913354241913721868717504861706969078291781036394335268277074714532989688772832494260615238059571715274793245144537856520223446607157691030990521912821486165459918647540212737607967963507264244377238471624224342427033948857941627533895893453949328800420069808059573030997219749511640035132693150198206534825605338803439784905491187655234450568217746801071864421726958996440353851639544726901734366111866196236561950048171052444991376493020761958133083646211836484428427643185336677994729980566214950675958500446220807730312612115276175806659721699327247773243220195652310380927390263611457523173708975884628772792718026143768462263658282967061181580537142044706549542122597176855656210694503115856132718328848398364424483799119924079781943879327529234487852647365456326916193668405487354801633791937121819421587094038838307622286133489359225144825115970877552825202419248691509581009814691429713087712995170478401558152094232227711377164187703171022999294547852424043167994091340891319828753690518436716661671839046233536992201435159473367730427382495674639467182399620503830838350208559032279609646284779450089922278107365559047495853945692460803287299323477586309391546765735807749555253306501916489987489887375625474535108570573156536492850783111974630021946895387001475942410166688734680183088802879139446418836078799699080278612987246192452693191895166456923453476674794343816021120976446106967364321418419017749320456984987149471109677503263448363564938882367370644007238104031211228314699670859496555325880916395470541607569287337629526966739779901173432228684277611834231468410507395880364515978954747839074896145536080324380251460742031714848273867813445767564871194214434287651175101456842849828246945316048791759195015731924934791956604499113011263115818996547863630906689660881512396801404538308127474001909945656842842634027485773922090523818432762024142132213188364787059251469374219925899122056829914070279448925413986983503045056824108155252911690065185369659842262969094846653777217212785134434580292404924957526875092009222570746149166637168902689222691816063618098462002688598355457344595904652478284201947780518258383885480324056223605123196176185508638345095128630398326698275378939199309453422463842076889284229841556325368081088786207115657487126118524204072976348483601499124277773931780254007437010340612993743489428069298407606953762566291627483993030826548810649687324135108307422606672866333591527848826257358559726350557099325277469606108460783698226509326772167005231202978934548112608191941376323382821314704359076526324157807237335954525453554646369415840499530905698735778873673300441497364863648708050809149555991684278149429539244397890939010514644370276492124030046768366316666200283959152612953858675185205511595757334354924343148618545922052391125703914011838970940012050617096867006198215072095341507328150842487873620245708588692057544707805143349473137802744989359888882270801020253429459724831293450583751522160180322790825607015904254478780663676946775326343011616341794944619178544119864020027811675514342005889621920018157847382512324465673103968234353733289688933765968386228300152574556448312308903205741903905703801603737279309040118420448853994703994977482973132228267232091214094661612693868471280244429241945893143987382154533202007080921745375445079126441644304017477899743324902784664027092780340419393056686657689282464056977362007623394201271147782382603510333733766782308157630861357403294623467734097964231988006235419279460819771724421678578242378885538059670864700082135326362460427344263184458996257564482357163260235386173705225419272992135956845398786705181643391563861925582513492824880754070269395352588289440173260506803275308189831928853363195340096384613096698307324709355331003761500000952061420698810459490687238597620284559061970102311542927170158861262956690127525043310638871679670608802851146174906083867735849158724289823686546884927326867839264371027868030250301450301435823506718370855371543991362375405763722000468223595377432549339376933636705941835965782773167454502229052924287194172489319723434250940735886380929579602950262081920936877532947131399552222795924514491026093161252626066032608464640626104603280506989523106355770587486431606481343238861035074927016595143001317839629738059421373124868252671042102283675572591881978468628556850299513293777137340371486216901103784409612140839892816247649789711923279469142907135598166757462489845971623973690218767488541860212370209576057606763908819053890280183395038301171650341344961961502746177552348407945353122924247111276404794930756433988009206580994916885738976042367681335355490890861568489605304136967772247819424896192076657318348758571539228039397267062543916260347724335640890170221891491197547248202894467713205831264190223127913481815111374347933811666905952489980132128899432545278163672195073198468393359396490384009130890635524194321257864704492304447949962325478318854756413041577281331291297984628479023540446517695192872580484279490300255747910060061264265516741137982044964670443109015550153613809019762044124356556763515229214206974883791308094573592642131053814982088531161295551299341269635646009064417324363801450596978145763327122058817733935354987735536842298050909677963960963010670825951541016514868250457681676265306469056955486325362325484841772206653541641330853312746509452788393950788899661340802617801486379218853050988441305084374639249454855714928986075944026966420467496410586847198139610888316340426918444917110514857111049321384643114316807117481739417642861236320779796756593425229379083697449801442607804395694815030239988983986297867344326807332820087434681552388327361432466755441557253979998035611067950765076610263137044348819686551527432804050723728286157456615769775083799903421444314981247471627127785581522901431174957761487967820728055799447210475188764956662823252396739094673037729436172911276068653616352388333580579165166371521849795851316834102016655069398642118777209787550269243765680667023334686413829606174396387323325450460329782300518634917795263104691888735952560550938517691237876395992891913500762477401674016827140405044647355351138268409848689772732713476278048436631103077252685569553360403721938413404575054020645798698789922841254444554835192387385918819465458075963023894457258067188327207605319892645156285450282224156270187234075275289468547709650614501828982282473371346076898709359905254605212779264468747561694389374365324960542716739795697919931514075507811978300334744291478371300759618953027942257275347803861920295859570090522735112624206678739633271733800264185002250690207746520056470922284208307812676924810338979055439410905366875439724144638152386807566373106513828793519378813417384950387118390311447315397326925112890224191111675970793465699891804894925376079966873327036623183354458966006925855401143337493046520943318358352418609988418574887010396343868116799098272070364789901517539111472000184868862818202833492218765046419675851033676040720598126388980543334988076195871604322214471359886110773059137258233763869961645011410200807565883681104689396521147220934794494199601911373280326725012940200053375396309807956995186586420453738459972717899976228874209667515039591384688940588115443614580356561007349740783666860794286382143672015065923799312713232648652858260956111471095730892712901226998096314527094551245230351173793003065835912926868474182129005382799492046161279462550309140847645607708085115176414541823981405511370046429589980021050390325742566373823887869736624410141442548504008033722591506442647861748911481754180746923939561187186822350697629623544974375678492787926822306179266091174403967430264686378049594861300191598359329466093425448780798085619604166088694903290876134325012711144248146975779100361233453776156711504995288357298084498856503528328574411213169363965102701963344983361986051255586029032947151754721132221634302446039438941020503326289744745280564830644812327359526102240086896053968125754985285564327864895976415993961599175464111093734001815201749135993955715641571719849021482470054126626935095997035758113770061051633071406302718297681182004604506002499549890894190211096451478613222667700159570482144274701517978547348522378540678204804699709300260951736922607585918655585680229216913562721890292753784527669882991374789626519754627975490598664487026468810867738749994406547806591192552853177230040138772303939897986750963427922128965228402466221180479363773769110577631345577704423497482549352322757604391431085976491906673082205985698167852314395454873561028602461336845464969569640626694116109317526536169209314166557877492448860528384276896855081810729929251866122261908744073836689686615502079984921196446317561987834741225830837208384193158103486691620954722352338585767907499364730785676676582541930846361068644119797634609901366600600795486799052640314721447776833470677171793071249077041661668209034418518147843023095352300996182918975261563124928887651153195126044426931212331773913885482809743294057065237043873954574286728703979281560537760999995549822551878285951839373220947037525186883000323990512116755555984861446799862355596732076347984868693877417620233724656409730219214662721714345023014744598808834392405086007424922032133081531572112696675804761554892485843586107436204572320592172724865574182068311321584156665676034136167024500891808853559193775456509416854174691092986230388471882774437987833271448875260817710540503764270892473402663668831447384892989274636958592183469237807758197752589991670493552997641982974847990490284631425000134184623817928999445855657703559966888986829355616468065986587052408741466956897883355722129793613934202147953412918744086158901905560987690337266712754189464502730265511550513790564648747259936648845857435570350177806382511704431823495105992542857926244558634738904884918835838566157865581362132323028828395052596229453991307338415936119739999790069836046925125015307750004645358210232784607611369635928445860582956310868209272046309879392688014289501458121395828722594620712455800341316435164780441828461271223839394931104134168317706643035486640547110488075174558627319662068932048468042853742747913908385427657851207630065702763943174230173771220060873437852518007271237009476271210718424731517328439695376932666457185097963077263640683443153080117524324421649812609896611704197482055848642418730650853647595629188242596069201002148819328424214265037050870185142910804486367818435172360177283860697117206638602194315762609240750556727336671398340558782394634502395698901431591006556670717788296032571092231559379708497988730223908907222170249570121814878659706342960834679970659734006229055929115877917684625592559637945677786316876763873691459456800062925258390298545486590235206719398332080071892244923790556594834286566814808441901405520041989856931616443563739249981041169393968097112393755673106554571054082167060338160150399205644216719666208658006778971149829222548782306744631726510200147247369466613496296436348740775592069546412820982872468075788636136981879160387230887452024867354683104088419656676304072296584847536633606358075273144351791273691140656534179552923971602315258201456786984602114256947937524780743264425602083073182991044430997139878829559930754549655090187055475664486672164717394468199397526703455641379631541718033797259904880641031594187566083999189327619629221396395320368481466052216600738262671087442580042310711179706292341651498592605733894989057886900372303041557634048920285977572573119635912646985816185468508359383168697293688864330513369549663285705202251394943956296086420369249829393514646627460965240688604871594177084936415128275676148160286429775370112741393387115518376571988285067997805511779483251924469655805009139320649213529676663772680378917341947192921166237375103484271428040708072728447924040333154128003519793597432344952289592062774298674502136278557487557416821368227500624596928932292103804799576906290697663269914902467453594757743758819226269477278943572946281599900558048174786220773528167606722763013439605666299854603507023154512300751372777997274941419420397749420009363458935020008131906442820494018593850057789299157244042437834375251323640799316174975295832821743349723351697468516563230442387821810873866878199377956232411926557762328021435243977320025272284746909018002242641282893383855212827335304765198749444025090633771183742555084874796075896240487383597942260793160486508201773573231570672042066140860786597908251697870069189519187326796923486765845220246106754962313541364553588630568766780240956572784446834932590819393933680424262184872990269421296517025556815225142485230140106906167284665353908660230440225405698302715775083152468717479370592881126173269553859257780343766634234502598666038367862952256138116574893555390332098736277614254640405953329301210364398974558861377528936973475535141252646971363214339730294018481618988316769672272660315781043309976815851114910596505573650038375576908761852430406479898500257339407554263644054520178887448180163916751159741178402862274549549162911649201567337732967396357576603599642794909615063888522744514370571924259734538875163461920656467703474015492501792840781892495451486233090647480537299897355779921356317492954337013918807825929661232140495851380174471370560479733345522106311357071836473919281534432748823307334751381663478566000803504903839790886132791345120984919492475316322677430492243601630827973978188580333981307919850350259543669160949966139904930087442564093526707904833985798171196066779907079159876081285069935665764333006310886814149726652759544541330447269928168017208881578298560732571992407643271736336918917585615673259499842333643430826579606187869059569186591919581428896416326324459786729296740401878609985170180263727753683023747152672889014431352391727496285283686492260013421209711177746380291766749083782902126861858830662941442549221277652080672740023738439316418285114815427954672641704591041378277826110839456933361470869456583369450408411000697689671085248442239482205526424540950240397223665673211956182320026709448306322178214970666100453190945529992146337264520128449005750711743089506435837588614017100482385370538395048079623920261113309553232105816002477213897156199089691234963792154077971160792128694980133223879001403209766771011872315182212816428473536650088630145333376019686190786261708907079929320386890692151897236820735509705596084130640004919142379524361692396461246371786609846843279264680954503076311466815744348088875887351838659265588130152925386845189591745003376385706904655186960763621555620139004608045848567550764689861073555297982050067534182773890738328359095624562586841032992850087166132905205440792391666246561445908488419744830751947311814468846090383041775897568651410039105596479299129264425493049392615888400924403590884278820868387249437535397798575194087538720095689408077762077590128921915281352783924244445510187994665555757676915901767927495088100865247250412281267474126392468402921020169326133264712914917470002894211719186819344289117056863279362753569288282909260664365504676365668403408372241209340577127473610647092575885360673064904133970906068510421750978134688208732271512808117937383810769073915260568454849390964614583347598803745854912135077677308690427447384996811058520633139790802034690227120120346889473162897073981959026101212220379206075722155488934865685105760168466473979022953870010058735532676681878381787849336224879061862026734204509888685299526574068147437165028544559747982783142488610769219148788385284163557428221275583485462186380225585664389777444970385872277341023722299852450365030145062459576128319728844328205298942020691364160361393396280655023047423433073658845948371650459505356278617781377071863859238097086390206379048338039736214961750524266879234304831218562544499576779766639800588723836611533470613801764621137541367149530730897273754320616266137935015595577368941406768374650044144187947982546058937318664168678080851834913939381374735149732124141909509995899515212010181943832262456838109744034553242451896286248877317481250824009275444584970645486726820340547419131764480872666991059795420595064320041384629142266206999674073191315225417465983899793000597237782704629684023226094047363401258852366470549451090299507431693877431492530320866898655615911020443939244853005564266958781016640995208566854010814726033555364389304929714652830092195946734438037721268874620291172148280858597206549999200034455898786912881256003054016482390159618461980935750278606800536340520071819746686352389915867659654629792983351808701998479861914493383358167927016577810423571413271614555052444185793723634758321489019359243478526665639938790483066641945068150309587953755684370717488520727093129104252560640340494370255786773368314800855846571230438724487308266106518475633634953384685160750572028080600592859664239505670344366007847006295227208316577416830979541954768731887459388511972556245712082958347101021107832339382064176689794008080688103378843527825319095289148755050003610878786653762473679069163935965088804519880799249123957433422942430248109634199751080600544948957080646624165299149005874530253681598833432268552532794352872473253016983511070251888962069624852883390463895565286439559440336439637794998688614468784905975441585429905644992577899164052745578384189956300101028467551078098534092466320210642277623925145943957122693854553788087529161368080539937916118567034740696354233512329196233946548981051025925645445375884348636378420694556688785383369542511372409559020378895699033165561751405967639629684023125762765557133709217600081272340202163449982110981325367032905328741733206784650544744651378079400828787480593830336339055264358197417131597701634579510981208410879198947695763808729742009700728816812895406456908640541861584832330574190494416576534093304739844704731563755368140059933132646331077538732203180270241419720512652161835177622574866962445070505347092705124354057987678594158622799845565395719983273066132942121636740002495229533613073212053528271729378515011477010317569253348679849978534835737880854228803270829298165135545818227533688060663169727655103268619622716266718015658811766258248519563099903351042018918876166410677322846174840103781355306402498240423337696411031322708625039928260043905175021563318146367486487562412264136186183080710276153744299348355561996190606606109788474621650512294309952592151458059207005488468339199917379972966287976277261417057819846401550917682334814687854194711704736906036036068483991420307388046196681522597030827435272427269660214479251023004253195291427862314557912038259150400706114681924985330794429749079671771355386965240664939179297388438697488377647549458461220895602486883913931799921692426132880031878103350120648766624602370916672242524790430691771006708126426965787723143712603948248971246269602009121429051951874986558793535574312801990811458425869338554294580739758770338106932769436030781928113191350979629952249903042594394365756912637084923675983043183333336173290174128870819821283593687107248542165412119765671860026045764290982505473266298772220447957052314540143759582386509546249789620847365171596261718441986053716972429315624815961020879005871429595451664103241013487926490579974567398765122283613683559680020576284776602205407375405790159707733097037254826135636210333882803625094530396062517480442232706642428293860266252007792730558144282481874323228265787311615886906758236105966904179813956522823635913064059108350345759502393709780610964002531015833574943596515460374756161176048889451692357889536389893992944788338207547428810493884623143302265840718361185711802191720621252631732458870060489152011814064638922882190582937919577590658254775711191258997305320964254378621051959357525438127843069259875010158840117990294923779748241813891443569989045294187564065347022570285888598557197178552094700430430114620364035753662770036261113639481624341795170857827096292228270720002869179518938563137302905135314817841412576290108342766071598238150496473363184130368064222069678390372221417812661551001252894187331250038394599796186321197140316829766078292010708924142776323076592862007628822316434407210896699394953860826182724078287129629945882517467072453224097646594411166293063309778024021665448418353496193815642896754894048134146857505404089907271960366410876745341485974952773951637919551316183078052109630799722818971817399814073796786750098006329481203546384629515571291737834947425761704476818995795673243290734898690752364743770786830843485444518944690002302849146621173208848291251156197402712856653802649367956397468874769321266095122373747525356033338484481111223117228599258182944981317770738017037546766155512988892088437821626792492071857211116286764826003611990102821277402005711010148851567039524497392124650532805741972522233170298403754018304385115723555505259358006756197946169823055733202931164326084648800224318184191711046234731843076963113653019639714128188363980824262016889180255928520312542082076879153920075495438936976177213095184249024327003475609040876668960327400611685209749060223428934367364211131250878711752193805119043720388498904556805497787356994688331493470500807833751162843696044728141486317714245787542954453356069385217941544417264957421631405141887043270133720607334640686453601831147460374257941221921929808291236894469101964528470689306765469479358199150583112313696032730714334519585578705139278739271881037550946643808730814949593040404027253074497325723894672517987857987654019133073190147558433222196491075685978201041177728105967176465564788937408858451566889919255725218665634838522789373095695272187037363891297208984159119872553483415829541791913955457993999196299732768987915197280729823021694941936742238691850871902759849416812818494068419099517584655962634408017439633403958054913576101045141465148246620859215772975834036524770493993145144349834057102095568103248483246953889999753682481841943556163142715193279140816949905123489492178912453486973943688199902001913203803217645946197512562071956693877635875388062847938401661173325202800591385043708347468338080881213200971866393235836703081155334443299500965069223313885303986857634154239243997162747388402849311008427049028092342164795893511335335546492337078598791877784655677512518663519500449795084129342074216466353671042500340479492328476570109760253554921531839293402427698365349531287997563876160625060988779946229278032767045746250412775185904619026542883240388517823466881005265188267814744952892414543745329621834526226452411424943325946699186362278431771336325431496169260986539174433494586684087102783360187967490073672827033102035764405470359274513562668963850330667207993157038879754280845921214881990955123416662081376681854521182111997473935504050340733237904466621967410844122527920518044550311427268415813738640508981553970740242037273387957961158784737560856931196280893125092348205571295684429907262939875000711966296261768756250849831382484255314176499979027609805073099933995380278464363844549922091088869778655436208518152234566158206666236865870278397741419127600999249574432609709540754998344920827626188654032342812671602683285042471287547590404002389184369195497141696687157298824933272361903892532115630882376014161110007774187978563432688124186219798338409682956777662413042176888728077935778580065731992562713815161850206985770752364713049384904032337480816874109914778255165194622177601890506120827275175644528951043763606806490539268220108727720346810970902113274264230971193898658970036309269619743076058529333255812376898214939078449984846651974511970523471950334522038375110001155939598584068129219013421718377306245379195518168127081519809189153579246456058900329663816968142100374307619130945446174473643679183693054500201861600398242589076946691164902250734132490050579405438424829392856457789567051008146517898477009926573174581553363209446282695660087079554240025364450649364215369688728293827862766667743300097625920277135471441971088357502146701233257881718083764481157644454827414685323225886207155553342140737867970647791536693642770000820918102473010156653253479084866452810632505772177408069046335233914940861210269249010867709155220974016604435035578595596894432560290455955358938524713474416725101444506818833116466476366724255093499541156688786382948958562004512855190205838057660571496917325790375717122958315981349837775534377382750262530897527865169779932065979240165813220272500338946908059930082428190671601604880843188143642040858713119506761153345688264974962666747577914835148052668726607836088986626739138327979618629132085644094024649565756549649705396231633845438872412761544933463573466557986090149160968407873912005310971734458444645283216250317622088335320706688837326977385635795415241712567365748291128988473075824949405777539605807386721687056695186067912636626636406587462756722552775601176680247988278389188069943285844415624681134379945502871417793954312909759557679986851030607258577489818061282868013288269981892385182483057741668531979981979115021762317304746271695485071332617642896266650807054070870801762564627986235472456410032201831284137484615679170435341313374674952141410446777788652272760638594070895001621161483923297684814732115590783213735692133991876483394031788525001922734660629729113634882993327393882824921625813433026982014236751088978996502342145681652887096120366400629390598320268080595784262508984497108749467142966005394933140260590028732679997002425460691048925758662358526884875352086408002764931528998748750078385000578544536671388684159892156897872899124406746503551779037111244164902638900302950804784597955551810454289439829980754520838838751994692538352593973418996265116231706294095994789240834647198214453154874373310664435898368900538570528582159770101799720757188230441844580215046137081399008678706206784505500721289641806024997880567077943328568646360648557548544736717740907780109578497468909513672227069625326883251610121374265764790490508108762503338426821672126207626384335959804543036204490117573967233546927538135837439447147103987107918993682231306639213614283595372658221265308019054350915350297421975579153664969141692370922468279654078484684297388924780625747049400370172545728460877226817717046676114642437588369799646849042575067469977955842881280198697798801118656443055995851591977870381817789832523302683669673781316681587665850226619141384253711317049093398437807291844989966517813871895120345599562052633519780108644824999026944119315363365939352975695918009744656919320987392920817608326718974261182188934605781847337670781236542152802239746527459592622376560673603869950907189804788789803020761801134273566645308228791677261020109030568789692258695049717387044381119473706784077921017108754106073875802738800003690076408381372345854261939224807448041836976601870544410939697921160169452944479917920091406604466778753129276311368791322232128476427372199767284051356132024614077229664457057147093030690525227413735377087315833971922173977418505229482458323195991126414202665883821248312049738175750446463325221860022911382712824263656122569554412990593291556617577312072031345079184203936436065090294617164611976232697779702434035007538304747228251597232581348478202818189950311086335518380553782380101479641014206022129691245113588654900490799627350289634563125310320107275728143033334764334934006470837469134248937054452024049912964848150657728932735335717283247119817750212622597835133165432867485265857366715672909657203761391494302729206830001419986462149633988482417604985515261922444102582900347508325268601517205856469639613885849827612387729039879442617242536634417032075009833758649552156258967681666093825175432112294108704558669078784471699139957741574271670492597903699017812294605693235752857325184580680286693163210393181502710652644831701499001286735864480276136135680118280024789065812980358936793272256571021584581143254664627725940992882425109798068087010010304679910123381764196733118134695046853345519005512013247318519115771882389807405832668041311391170000191260849603865829167731320531674320825617740400006826860453798152539533677090267171630656828942802927423796029810415982558991400500399490352468526691088726629484985828370379518677961822005445368319559093880403478889810069729355298456945581466540087896513102580780338412195160846897831093000836910589354705683199152813369468612610142573492841501370310047980235675983284498859705037334785685117551133650798110967006728345444566961974929828239961543715180385440586338938388308922743991083441937585477270057558674399082573435451651084199274858586175742447798456276874497202539598869238099973036297053176929348011511740594350977736481643673454954414051255829465923810403537082977372706653996627109109795398791969506839007979907394993278441291547834988787646429197281970918355921217518619027601948973654992571857100160002293035713935365592635988056700839925128233878818116672495656370526939640379901047887275579477515410522793425247045469784970333502645939785729912496144214070993240079556032639917556380508194646520311003902556456487498884907163860598627727441958620980430394994538522828337407577995420673684022271608439313463301158317923488917495434562114187840864803024367901701867421064941868525133975380693841154318820467201717808549037243913412546792232522868489653453903227331316226353943234348915896121397713352261967523742417612931781669986662166774271338087308967090981977148374220424345189139881479929674276996272877713184300422584275169014332162212620471854531797112545479167823670955812898148979380456628336203464539078201538063003076055781240928600793420466205262643164968144351445264206086981276239961009709658956883838790510839396241923976154685076082687270986688280070388446965539261730432570818160455228756691777816957410085969734635493388458051009546752453035076162845733690233497987092466933818701252131462587066655330116438241282121897100496685672977571167963566927566976716518850272006343323316407309064616109921862806765177597701687792246158321854178118707667199341659971141990813044066355616790357692453287501925324069624533008164588782792736697070647638538147926389203640358524183586969538117112630391320740821230670127233092072242395775820409092876553142496883165783905679406356692554684441349595439380592082380918454700931810552172332108920507237578098506273105858617742705268604607945459015341252819942739351724422034278862033232386700233552692474384808576758334304143092847763934700619316930561448480225955656741527506785990306779310253983670622325180532202511592463766345595651749065006851827258332211720387486944761139922955835229813631191861740015999063436665235019618584718286766848532661189648727816033982719275530691734987395332826838280588531847231427632401296138896815322399613366158478989218830857966579635533915154124443577263089056728627242242423393240530807652821567422056707187493945153166119690510607760053057964075634300515426016498696417658905912741432934730495282039102944038547827037744782781883577961282785577677940145956483162188944208650602396544798213601623116515134960069396406369465326921409856313495199997622839065217548239492000258760181884235792560539259197659949537479234820006594187862973771199748445321278462288941680964777145146627626392985459475218665028791688136092889818309862313407040773088274399191563256525190878100695205918601811720072355215096358098531403843119641587364530670013985273439186937793845607199395268475195961287819797995769508967277981863462693435822236022185716134663657929735817909353439855819672871079106456794264648874128497754265683697997189863303630003826069370261851284207330692481431577735379499997276073285277447717230341034968208103809883613552750576559549200432799111527676307911159262976975277647482365802173366784405449811314197223513078584688366248228002708861120101065647140860022873829749892790470991249359172297279420496123078133313481302293077937287165827602194045214446959222199987154424023870801562486574797586786938171443428325861139982980180067682386852508048480932614416634580698617010714609043720199792443766683129671544747329806157913279607843286351443965918954817693827189340973797335763708271751121937207037748958370431450074464955330030093560526263665412933541123651657375371533763949705462873467841687106987505101341889516080013526257974597366012692630935590226095045806705945203818765591874844819539546509344513044533633807421615403946931548326173529718072555785472493742414376136923473332330016307910179953865572998761530931348312050641524492853989569722654077793704987762742708311781522685694321648584412779599858811014022734065250915479698607368167296484777267515472983637131384032545009040660093640431158319400000897656409430237931586321713373164016327743030683000149399498793359191900868948085200936226620291193025266934091957057967771712891465502498656660842213613114842234657170063831025608972472400343856317646881978197879037085740058037222217507391165517100092972879207242961864353569593819582064039359782050020742520024614319548770784899839051825573152566846244971061533343140284435116833828128631715840948292159703996260128021967187228759995812909355094878922678390901222284270695712747571023128450809346036359634943158925486820006296369491771855036510697577579160679918157285864798929403195544228088758718371298324458082557770213549205814611062490032842319224842783172582339689168469497852856689874416607378435025880103767133722415764337162193389490515575748883423618466924145638492114836552269514337823872097790715141606101366990278258804185912711114800108108503858458706059860117058176326023953430157556380471424144787754599197158904632916898800183968054554952493372583551311132440956307630656126567970651280458753949398887456418272187114523638023618501356852699091247876070155904471401334528218316875367384025639377926437817549713760509134715688508324647615521279958357400413212678405367973472728572565845818794235184048715914452112944452831501870401638117427987239488949860985319377060671961917580011743941783917305951790710299392564715100591021601284690771346166289799474542373849187881865918176528362580823575351078517399378827598189017030361470232577587789388046263618430033311180118634861348007876797301800479417361599860452376045693739720213382194973445876690665702820389760399993739642552229324356101555464036975257567953740512643100012629950881045232125443852996105630457994806277842035718433018031908433244683507690603569463345570231724933015649324482821739437045662322557971967022828533051354952223540273837229048948890052001453046378894153728439990546973361826902767935767149039444129494337133445983112308235934799449175448042376408533388029809878044427356798637537181708317723866908804253229501809709056235475564691606558821693832148259703098495152771000118825012596441331891525471173938815203345449750612207542083413830024047213253835373177301055662894602158305896549118779280244483264066860482850787904417380319192017939203681912173377521607203389223376693013697960534152437231593469592192038761285978019671722810153224123982716658541585981416036572011740030542858458625486120725674170183266670117641966510935793139873453749184063222603218933237041186449711419984415666067690329699745544253696039537809710780420030978468333322323774522605901064980705737401291000494026783181549343781288638914823332676189028964688324921747563347169512730852144216433487353369687510494672035965774205228719684465259505933678264804470033035710205817152914711713662355221159663416493772981148374775557768185220271645189920232036526917724174929950795323995601070636139099616123972786279421057287484429192296068059992321856161475256631222781442656831775489280381580678014553240399583921427867287680394102656507382567921094512437404700083713687031904151273684845994330655794271177513468612644945064500364230398400373779518003345553395692487054235344710666964324939663175316031709843164542557948647605549439612252661466620841422690783480367365751200642741053640652374746062844429722252138098691990628516181660915832496475714287183864952404629209353813837176873284289167624707891140338773433061537396298012518490958623583132768358936729390310444972291446255981278021226925921644957383679951932647351666471222972787149217512766912680004145754414163995225310330434248489112907517499807808252082015298266001336769049093358758472501464089627986870488228705283751536140366906930669177425364105482653138139096519046070890581648278240011459903464549850128779515964767622558349343974073037346800634975587378441423900965771380051792503729628756808170047112094997586935263452386429013200907493295307534040382382336131218422358524595054701350861796373286588353636715365323855724056045116739275718986399513429340767405960744544129010289790557825771401370118905573856342337386073643652403943583895618390493822482123261436650022390463161637135493866017929081260236918183997554533795638739508569271913979568962139656110702536906526440508546901314144169816923455063313511340545627955286241388766417260391977237724983839234558306999615192643702470302897561252753503562086724906499874215889066032254863204342169846674214558014249447370765552718061776009799575960484168737870851181370979215010877527605276516924858419926759198287095040145631153410521439940538226505517183444450114420858595013893738123376644385650816297973008785179011887751357577423971047107248532158314170186783451393258898363210467650439489840290035243514118697664941627005522521738568293732323400798178003207117498313651735204089420442578033364565314672290627384388653026506436524312064763162533472534969610803174383255340217384992230241676204105055473222353302224903541479515469531796527851645788672825268037685630549978927500805893999773491706038540544094916659163277186901396857496678772508526523779787560477407823629602160495439284730668679756062773658260745233158374260087259850182462620893247483815558207360400337793797996146815678078767528122194747829987149787790085388675967361920570709351946932045749865521399957885386081169826951740202752209631192223302992566135141324309311744475290780739376568621263607416829492060312337056987205151473648725447931719310574364058268222317335515191275723665147551619548258716536435414240836047371633028242632381175281112418607433104481908172763657219886167442375228306811154139551784283905622117379868253205585784694095246302959420142442467101724927883461278740296100336859636159952827711322842006775497339244526895780782731083497058357856909790278542297027598729068814150810403789035694490081417985640450324431579498566001434149787472921003084845935129516755186339609137452911109499876173075737836130454788776280392582559489570871479483009034431980182502728472901951356929167340688422411830170047200466870057457715273858209743857438624010007293436222787252504064911238095859617041867411589009975921947408174451340339067288000915417590053372492463334916672798319903055303044279555986732045196842926750631069617180563251696350053307814873400753761443300117841755326218670482939026110775633006678611251770654268708390406599813684486178706378356211432824083276118799999087138075802967027117663022150246927235582905881087711569803677952985506575961618394280539671779254874316249232398794413732941065606184922398739158853153835436322554426803235151706966724259693609015826080664007111577790931990818936761215479810297694461640381684439296115906977273391965105712505346055501593830882876015298553986061727073835682757972715358973098622860958806693719949716566739399780212090320173737264036107848733807266602236780821348923927187865441727192164696810574555180114756105658049902044530392006141998178169265596687417594511111965257160665535740563754049028032316350488272669893916171248313245193065015897968486386332556999685624126232414726921458571371855478323107186427395902690293058973339318539066660786472492870844522320397400922990519278436707143357614998107802038532638758112510693258523834636142690442208214068064721644659252650769163670932869102130623679433475665867420803921320928683681905476416963975469462958245585476199253824279493757589972057928727958042031955100249324306219306979503386262767665551778266970478354491740096911952964121324916705242811906618512469566613314781312601832963341188903573053308599967741492614486451511693568490587585944290261772228970047870516877659442481447576877190682576840506870877272718569047782039556533185403244739268678613119813356630738395849220317316952292424792283159780323803192772672207872264871612768622708989885650835260978327252347485425729195566282409110131532942454747573462017061086424227506322309811239897955201699309688638060751390407474088055680813698664829371289919290121801055332420857424393044243279185069918442736077627895484696296870072542487721392531099945924330079996346550988971136961066190759434264075529755490546693015619898972237651523314509456717507321677446471997911872760084251953354381112150515604156654980330117186805368098283700955223972062204687599416324618300189777344597759957628630007914713885578949615371963311681411322085250788119669169443862038010963216184333345730292463383279925655065386804731258140187736017852414231170674256176253138545744746572424640314700766290161576240511989264458753322500183948974412739989883944568719094103874463456459497607547763801474439152959290850074199636646331380526528176551786835443605940647164896649386426507574243959968087551590834433651665948842652150957705693333589416387633824517967397389195208384576222565416129457342929855641339025112344096056832630304437882519428831455035689200486696020747399056646470428105713115035081215134403788374783981603606189410326734985205467580691504390155385627845560469311563472432732816918301335248829385180208301336370738134320952139657430628859538780943719393334932588348672274536848893072773490619515760532737391617698935423976826946131120396737039677850531175482032347763808890102086550908196650873962723556089851854354305174914563723585660767497993408525481849799910795900890654914789770711189162527544911244511913488885539673016661328661018919557305184038486261360153430440363387441070101788968290841295339373932224070099409275902653416216671217801986206671865322556641407134678919231735915571664868451816379021265805030557778902197670614150483866606437982570916637735601350977697543046552491531979833865225677568843131142520079630612462503378120380551013073220381658232553843288821429755467149730258879748430705103196683242037127477352877718019473342841892320311839356665829922406457610614963873977255600454533056712756406267959343574036164837862941751209301114561295409533409451925035493756777795663777901559481561824769910840238081097271438785949009716692717489849107614391968080686988322967001145963254906383680046508582516034415080628138261893917553400592113960877846738318289228388735505267554856795322449528180875380238824414143826707237868466531583543131259774080431223741506383416591472216525398637669668116786172696537408714427721413428053648889885011069160353001711577975088571834538332318978031833533469388435198882868799560915149221330685682349016293049888879874559288176989612061490434471913515300763662599045742278375118489847671869602609381255091663472402922692052662089748810091655237652678188864584673540753435058649382471791742269226714672719129053655848727153891501697427335040432092156723675949753408503644464007753004563620689294769410582905759523982742012720522110707990240923424803009573831858538077732642902116235949490927914181530749422239648244046547205277891726107254621575171839671151110278688511549685034763278088803772194723103515960234299219599714154560187472706913596456619587572976865409281792923323730658705499242832341904357806633899846618510886016697091771382863150877489741843959585559452800979408360219881958925211018628600631760764025724546945888376015445645703001099958360595857151605467878717783693544141344109084475584915954290728508902928124817193190495381157357391403619215609786895863585010524955336788337829634192284943683583057943336596496706641631582449005838852455334678697979364926454829788414445947715078800791116653640825210580369406166748631246163957321478121708447815654601419785182149100190028544470050858173708122903171351910762013390235834506472103029156374317688808540339130918333807004794472716882364904692431709510811955976773285683234395866164784276743332591936662052190670399877189612518589773603175389247818706124222891909498633235668540064968136514593759310240909993371978843882871354381831635900697385186852215509882982414614270191917875196041350718332893689600635586126684049279991071751138173434068218261790804468805883378152432236312967003997907817700497943283382073414712689700250068981178596845679851006752813335624952551204091024152469018132543801828962515091612104371475725240051000514540887269334507529167442677170407956281487240255822850863854282778194462944409944929555641450484897748346712507034794168108408708092571087872980475721612486706242979632886609670860341805943077963864624397879801870448881444922404486416660939495143632426844717769142757054320015938083733538883846353046930232931953688666150289031871078427320272751622819345304255304037639380350609250929281591713859047243907443740804477131468424754260984744675385374944058948649144503947845614240092922825292437277487449465737850474836577375563179130307103037274478409117883920491891277225867191790272785885815402822727328669296895446776400651076948319960509762073251411207720164116098230780785782136459782838383292611266503740012747050945175017793472622754257258871378190946559565017939684228067901963301761408422380660717020340206547794251876174600117636078693338232338692793557112790501549525048027925360178179975546728224540748353389812793516891802977423606837457975445479157801350722065450109562280426239053503016689470621914698824196139887072953433168668211164540834144174415386167441766706651853884002102402876415680074746363683299217698670815905174141016244605414009133679190209968940430562320706726905792153766093651181810356224118050126883309742296893786685842638953432303590633824929601134844599253235432015934692817576870991463094783647148360896783303362089509535677594474469735035181076227527806551679484366587588470670668228311247202183488237814370146531168189069867796164465104285959780223019517366611163634059343646853706225863744655990929853309337621667531301665802248943245381855042371241751178241561452448272133106116888701816145199078936160409139883978760723235256076673802964801181332614247249762490115303689681385602213521436558908395778183008439913138752745340430487023813222305960100099716783259644865820463543398088169081153846967242258217908792927977300806189638247178990387447767520858921605860280604553380408467635358867433131495526589450310679936929402025719358558854808398250183971218436646152482779039575482874842688374784318509806652640043039018022039977982057526251838284996030019910690634230399572004589384661319564459083685415182399316565255567082877778757170679087375442435143334910620364847596739015629924607858726810928895116057528163531011604788581338476902001270294406521346283381708795993140595923372469174967542540342578871757701838927957612327554857597722520693523768370523633228258982649330633513691661059485890787480621221722423126592082582638628470298004597900597653634490229439880598876054537990880409621207451625179644669657130937802116664347043658254140133091823332535540804127267015368636598329990023093589683941833106625336786242589883792445327243473631781176469966149855450597278006073218243613761971676141450268197383714278068784962879689339703014434863061129621439656187549550149415942461505763912998449287743539975196520835850758032686691892244648525881892064289623430207967978517558023133805393375145290610765238868096470356163068034986772741067815245796083308490564401195371549455575909160298076398117176623364794502827152092457460920000320050265389024400326422069484407395738783615884795497979017448953907415570141194593117087171440595088725215043055553792015142948391490870757501642342501902384952945065330020153914628707798515012477127227818127441450575903395914778451464584986012941078059090077927810977552824509727001604515453752919547972308955853171100076699530618025055222715087902483331022310096292041505296987282907927224679898022868288007039339514105581206321847301784298425156992988408734490454782801851424838105851998068826217570819682640815869240919861221758337931214316190910651797698882651328055678115371589899256887881401225019943932684678445829554399097441982725394729454306196303174442654319888116529866344067606852281083368705250640558350954608102893216207449275202572365735794047433030149189833154908311444750625498456031849865230183351410469025139631728818815924756264326641332841169387989931481423233949599550779245162179866144339549706729728230983932464145821208233320117874145201200657297034339668377600143092556643728268628641589448613821138558188869799953603476325557108124505335070635100453738861256692944412786917066221704903842355023872130893037403903390741144053714150303177915137854737181551294050586099355223006015036831524381372613756577358459297818148868823419891683703476508956890026073706344946341925054531484847897789662745839139269083127201159456767885824506138558560852926627493117147651176076961590350898557129084470909606354051440188324791654251899547423784059428143292969912905103165228360012547816879124100372582328393511819445772044472564616780880798790975399129562423953264151335123528919368174638309612111377909430297392617515574434604096923886945720919586038873331338859724332582673868989695468962652576807870290097078141327488178817532800759577232738258195400298765619232629150230143786148468703985586095881197006316140411406896947723156309531535672602923984648472721559256279926551966893021877808349372963261905463460502385595703835777502902292932752273994529985260609349186366953297107845628530565995707611214374478179730810307045476332012116925599580644939297905175678676742551999150139736646695203501747632292767256345120460000199037540951949205217207345233574346973148531512140126527909429407316886367917215560149490601187822151823849804766793273407380476288628868828389360333183114895680821005919118783791145150243968458540277366630342865957170104611241230343103681937193952331045209137328454636933076413937375629412478169546154643368573637311239951627060774491988751079920661778870935151386842973085781564538201932118992828464059277148685366739359016385135352458182597061416894313584544006563947190685986431209874003833469816367317585316233388827472982802911094451665562756082292313518881928146934574082881358960667264142966332309609547332676903131269484613633374059041095818283677716409945075972284192531150858256450130032538632432071085443782622507010068576029109964377671346982951388636377898191896347921919387715153226611733069639278818768995182581430727772203157394762104241086822483876164252035000947233424231937515689826954005142114148270704009309777575871835118690319325228332697277357675275699551198645236408900657846237242243187161866692799142155600170267017882356448718478775978015199562543958321012982655130498741039157937896432491997513480158102264215516360486083313819983152136630565400182104200073753181265919787916627859903579984141932897816117937014813615245366730884419467976148124155079430829199999257397801451376583823988124453520682566175398429390118867494517040885321154322690532814356519931442395853688618833746457593104864400374420895615675604310502032301371078229732829548359969093301980281013394217480049076073952050431905922371785367506566529032506541169368172251846302853228193140773806793227518658125589834003998314291570013319447770157985315320432629908585513773407232376799103877187934950043551249386396263784669534145679854456255695859373604215223331490931848928195997847387713848058193331989556037495973399869232231903605526969644347829212568825679148187211625406494972619610239356260392478974411398117979086991945954829916311424622969578745067749665974023786599712092079249219665942728980186386388142346236944469368781187226601670901932383130844442070630991894456074012055548954680890218701077838686906727330923790862540894576492679680085575062179084557413847515294283881085426963378969005154373362216505980631783969932418237937145628850661506131385171242182954324117896614993032715310354113917194023807161859362387622175627721535837973557773725109346680260321047184513878011651445883878992965037122261415639952481290425793835770642946304889121835178842851857042589623463200434635383162891262161947384435082692344750467282131690324576248744360561642174864778565439925589213188612146307589622669014679546624967887241829650069769006351274506022273332214724976171383457833172156997806584558763249059580690085256467098305371487261421510578390142376938877171629886140933176588636770368942550112105767643615253135147836821512989599353677182964448634917086949526875009481260955928019295890341214523831520708921080471037673417612450689837261785966844026842188708141387037145222123652388803091028544510044301203584858787931411039265152221847656809283096788688509411450644344072892921936022639704577648195294665513115460722279782042872434164896514060845978044767954619092456365602476097271415866238972520259541025564914468568586193793764268663765316589631555833392708604424038670055358178390518952822009378011284222778900334243353009409746039040803477659775506451993731142919121988240693168810105209457380511918371703921252377780056549066122539298346394603681892505051489069457591661797656286857223010496887636887167211732622568969857693429432842150334836104211990448365808657630383588617524911614947712654428428396795879216843601288310420248728336293026273780660797178526316295324398009618147050578372576401038379701491653329110183794249416720229850354819911734819008207929070879392328663141893188031877086559859541734666211297062948426657747394702607273112712158631855426954827095060825552929582229452045993840196374203004667410330875118775219231163224860756250379897877976145104010289624831221066651113984340774944132709022412184930979727274751181253110406034942233027633098988533232521553826457248631077481012444447271303495611684512397822546984420905655422339378565736586762136845652045257564798625902614400925330815505367041675180368308887245575543151255219547865230865804848059692260775494806051785015569155621138756111685053695720896377966109446449881435625860085346086630682673278409416915774804939723417392113510868433523616448462297013322856885531268415436933204969773525387699596130154756045579605206027314848809071097994795411899618385993674519451311315760137063480351363420669424826647024692310326385981857434519362301079406607969194607472298839327876941018172631082889753608481528630170070089039499449138334894598662769516218156587691112954456313417930022283620169670892607010353830663698884757607506630309184009053767934349933974126027949174053654862125546254568714038465028847472482388284253732249037223616095197897592181778739899292823640078854087849230046617130227333402096842135282866623384631838726871315276119545756958616922047062473952822681999264002430322658048522689978248071612211478580768582510669041483092736270680634823093210644930394817759068203114757447461379065080891763435261531767187372199134412402043473282705220051886161672238824264087993548270470482185627482282484468893328664442177368131503943042065977554342606306167017610452783740908522785985447694839565560712818779333793833663630335558644412989476314111757747654732115780352054304633699914675226166932438374634396107358654423128070537416987246785321954061148960260772881175459984061217865580811617709054786172355256842344567748522645852393865279133159772004863110259540040144126579717464643445871005336761382349462122817895874574971356992567326730578244099746258560203981463832273537962203347662957738494209953819776928340735568772286038004042616876650757878305525985675849978637813911590406913595048116293906219867515066985218999527366571706971586668494847210688427233172858221120731965296376202130703857526491136644316270642596430795455852372482508196504411134867328645329848790050433892920739766982469707752570636696006631991022185290434125355367672567688472387534116487632909485229739614604548720853744615271613433694007372061357785781115321777116445004909323887048043412910442964445701767863010123756812007721418326754538633746951832669859331915396099564848865017918288404296741617846580418289352720452552988366897572142568610555196480728789339374523050302696454405569158075736147999308935015465524634395501290727817513553619398745830181390940381382678580952581150125177704286195722089952599697451545807830031943831693189681320717725066175316499464609880451291167102355497214301528203822006647298024854283512972682955715932521248308554710314938988770371010552745563531597301397235826541587303150022491967676426528635591924511668688826184827852997057667933502037264123169406163085721848188299938827837615868577760594345387357998831813015420479330592821553041280590329486300130452747436348052521067417508233227450479441613373013684504817206571468914448101173580931992005673196023193250574899041701005949474708228597244996667362674353390731003575763501822704063434626620663047949255904161468314964091053278882726272418364023541388198000639372317664510041033879843325835686129594661635717721647593873675887391910453556996208581436075124173452173521311002083460809811783110553570556486843111746660563166623098217119554076690956455978944145005895124361344118884756444593486037054194180868601554489129304534142594476440605012959922238228068104546824903105841321552126880503858399730347883770826266027642296198892961594055767288226903184161083363765878379281848136296194901974889305731254821696759158034663789612943602117550431482704962975132551214417125081000038519686564697502149919665912716854546650466078120585883442905770317345061330246439371080261659106594506710738345291189432398504020027289796877126356231864207092163506547133446265403129315426458618628090633623788980903106872538481048630555125107003407192349958088365531355575973956468796769297721812493529496258446654642203150511765943718104577264848711392820876010601382711188536003186138603287651976009757048944074550428758512600256398456079080037425950726547460561901574950159707524303138149579569494214496865215913370043073264163250973655678847605508058007773976434826682280391733272782407310107853482786301403929025134002479565196416896153831414378414757075246618543868260262826906588907195046668188972354302230147292270141808994907499784428105958042591735927145497532127508840828758953213474731922324043736848337643188058974733221611664695420013979190609365856973400727878968679973566103198267041445732677005813417254099728492693978572329932567916775582686533325626927956698483761500296664895507616517760921839777680341121637605560070764519141247244214225063750031839151412551399219821506167438942875782154516155428641238422197286970391733691158970611623579284972885927314210986529197466023530302577369660715361780426748910963803009006686548432581095506506353184866633746895001306454010119100112988670628301272795011870646669821790913811920693787821068540441656306186995335600724986719583637174304969265683710250994394664255803640704678891006008514699109266172056529805206192270734686709366284218970136863507685341607244262758067391756855739673241333721882628142600383348575152534328139152043858092703903649387266192765885772444301662017210309538051167716214724155117866161544198729744070229984637021079883797325118776065650954074965388642998833636781124742958302256783338551760163546334570136541595369882752295032943516602513030804438489321614900233953718502220233817285259905049424035858732516305580071897207308064938091586012969836826749195887395500941512631002672925065209218273129351379861282790613286652028503666075164780080275456865572856412444785096937144483123742167721392952788997714861914571551909722021793217339669093996484042942542620515482201314618468218658065382204422969397113607747003876289260549119440009854650415394461426421281966251456063984226113009621171211144744594831110784869449261104113783355867815512228788195273222781835771024040770387234918208228979491016089099073856378793916626594372897202912778690817300519698462410991076254841368017262813646174434828204319118174166047641558613265539025248527002128425776702748574549437171000172015854988969233011794386515986964680004266349021686588033619365937185647802496273985024226854309053947304373279702203195886643052002850784111783027684110260474769303461970029571101226033112553109011260205212612857257738886974268028627494422445541847085610185200170323722013349915696934218015258813820622741465246990658578234417867673729549300221393296798346194923530632230456920879887321334779710487867623057399584221123308059572872400717332241935264546074177471323134848537539322231388094847760700823588131533493592597636912205327557459451162724671700802137189207712668352151166110107075369517931819871527392470625832593010515343173622871841871205045517129652457386756078819377708865087660760329292738320494485783801496140159450852922217454606388690066142803480498452408874922302844722314806917789767909880654194663047075579093393482314229964590711257237674395917498686614599287126832433607340443069615166354203743788460388969171081958583266621694121796418289765089340214792754482162878023527902862107918804483815619443005991405651658071528539320781550799860474125309639574849070706744000387731582070464147090669254827045184797675876557192864904375773696955310013494331438574872430625454225479809316620289864016960638502533379668165462163916507478687076448283641328058810052774960829838117863305804971399013477573608181887792328879091837421571140383094821168347287970582261707009596221395123645996218270954206321158034381762264820852956535598936286598235557810418173871516655847986945582122198045860706921231851962794422684386779295469662974727391732075367356084252380047496526561494872585237079544069849719864126520191677558822011288133560043793253987717789679260508848688085814868790751895227233704916093076113536425049888519108730885580699351932493509700252902840033107777220266735664509881184962921862357016796843240751231752594853097431141413360896721585501553588856398532911722933514335831130046079468032315541823318868197911868022103718991896787792643004912986189552516368280576039109221782199960924365291431484011392041988737862193028337572103517096732537141794158619227367240925066999429376386164197786074147143284515383236321808321271908893536997252372652722457259379956734473845303403636801155636277054708575968882331999204101940781920302341587457267814055019986300876157299008352496202616284427711799193580233649590267450735602251144548597307038670213276119392034155072093401139676011493276973725198583619778420458399176236723134098358706657147209560048878188543493949101209220959743801020665422088870307200498775665392317923473301369595816452081585525773556440859821849734577690020220253927982329300044691550849141503487991995006939681348702879509222569607894878100737949312207294672686602407722528679817732349427047032053564917053369473366266310016729565329521495702515262903238414081367735584133613590187414066674670237524738917640369718653359416401687435944415922157717879282124311370302941048198425524974418942535828282840923535497880833846453245740707228985818209773000684878578909683456414249144634956603319228543591780915223229795860192727015906105748453185994444223320973736235120774088578991792358602189591518490302356075126544718486009802647027026016160856379453489289135882251969533910306014262090511034842395793835430900336043757942319448957365749879925891760939705280241887255495544515021320167512966822875074002474233022144847346480812589962371911423771816487014039701897312610961346643363519536496875648481449842324967933313044176386632022622666834876817132396265944668817520459680455713490528008092742861272808260238761381728173422760406662873919076691678995120709016920008092506920944917559742379962949390851715411527971451552465247698842931089418582703308486887602456416265674290093214194711272691809362265076631745360138228319494282183433673906573774830583285144901535341232357569814195177060940426725460925574912407671599644278554007951762333020633526659600317011409371194725907637090546055328862975996516135482065029914004982180378041294528350967618286562460924493345737350306683408893730789523537684763389652194609010931349383309045674446305168695449585840311492887802508785700076320397719592194473892547804298845416582565146232607028267567353014874931599468664948705527870021828565262821396616820306387260716332726317075588557673220290879818649546806067970076994805851421372905250394669241549244129874820214902129779110347056496824667651802410976274920045724015286566979450925724798717560047074377081878766554279232780545119030096339242280898903627659883995526489144010194225945497602012821825203241911027287230445463536024679448616739260930096893436879012658448517745902354229544902631722663196388401753670704866128033626637710650367786885814836228771753194283971267529887949824743451428763590729687685402898145248302380219678266163412090054257509523708993433783797329130944741757862614805799210248824194270729954430409722416685136602895885763112358514811138816955568117159518913220729969037593505158890166893249378502982348289517296688105572440260264883207615855863110529944721280796014716386452899451485096959782269424496108136990725393900184210079476236321772251925742374476997566583479224757866890316828367489963130011386926327081398794078207416734745746442565350113426229241816075489980824703059532788449932719466537512552324759860228942006926871226605767959020885129163455583318418203546914782124126998491103959339687551572707968926463799248304699697740001846740775140632533388412576585685812696963879939147819469410231853428266319602800453009464730630671752182810752602307889648628397980178571619182052423266372263125279223273004164757181043170892969528843040899216621715412203461076538468852947321282658523440297425348247685586750927818821801563375280335751835390276040083626985584586049486206445722505057528509536449266208067863267041844275897828083443811954110746221372255918498010753480799257531272696144421922943154525995205303297346860489733253488676645534479302210775762745487938322698409345142764609919507908951585602636271739190338828485688845907204875033978195539442924941042143232257439038740120432741129738711964740984632488364581536998071885378925688997944958713616516395829712637052209158999820050582753361470629717589669697297845489281926398470577722668436726737312814224841700172801773282800268033184017472494904730126527727370838339952360872134590185086835441421161969025743454752856303559806037707299887606657119349026572509911108179855970794938329150883314122765768124473339336788283973314041776073875743402289935265696269236217231998510441113321367203402317698904017127564096460144265525469719833919052362973959725707137544364339378042283624205678442270834817967448593466342874058087794059814108444882294476011547749400139719470330988798146069842693339950143196666704623461252215366313968313882641260303504841794316170535128493713085553449246024526530515307414741414418515423310937102660019533747481569219984981316601470919445605279651074999222662036194220720349136789493235915196999362380379506818686639283998206305564473514304614062950392001305608589095675644884735680400188460399319394615291471957208317990898524560868736488491300455155657473700217794383419003275463134409507180157207805028774546182668238825807351228283649755684673794631906343746469879825303058474303403514350499606159411562626524518944892793244084722258393203473349002652962645713385220759451283155377879965217932673824316361426505057099854828064082062493078376012093297902775454793409147174939941911789205682294311221593000363776929534650755825109027909451895778177237574737849450176397568817417569369180724130657677890098908144203530700253861498994614685781457381159290985727483332335701825735278517681910421737166119801510336270914422999867355047493652125483223854327971905418821261338958799315207602548315187742296864752699845664058324885535639930433558197317498574722557437698301977405649462833162891292526134665276456317710145518828225503494603676067874383717988067238142304835897160656530339931357588826903774473460092655300659630345279902862081038470532546288995320485461099440033066906337871585442001771270101329363459177895147538165944419921361586851127908813076518242137967330262777361503415198644037387508041613944202844464413197341470441131502994005992259938546723355205587068572006223549744021990799752896819882648594007795847672257490808631723572762216239483492539429173051113599872714266021786139110933695521813105556871978994014493215943584617336439216676003214556638460698982880089075386289285428535927626070776369166397702054304612650087039924427528394866754185174198467575300068000304550339063257426256952254325864582682136157749211181606657528874527184326082298238939394838423875657008580189336213532882030735498740235494904175449996572603053582305064955564550794158309365480538723010651086696646189317823776544048676923564219990090005075633243848360462520568057634799875742490546303104590879829828624424826961111711967306154597953244703370287029478438417340957665511831180548336026005755995276945527490439713260100522251719545671198505256275945348224016762010857867955433868818630543841667470628584443007917601723347975299229395029016153134200077100077670308716311537311140493704829027529721518821225109147815027789977489849319652643710987741758373448777237204549263492396110618137784865938787080434275841684840390752333310706998841336881381981349446517721086680379323986500290765586610782017926980742717023842539330202084235828190156718644222801056899792736334938151898661690961692987730865282845432358987214509211891646660466761779084288811334478865386823098374334007504808876494730784087029010991253231599510539194835640957801533580936727102866080542519167208426941800376577853523337368465810625497276869540929488956163363587141490006496864929815476876705579244621318437722477150416684167712856084182537216513896494667452789046819655585445398277909984112374651418261529113748395135708786813504003158745909626398053850639402908507562246435490808070669199521471334205868073931557397967468775920568268316938269859376532396215501989116346448646206250615375684921359091462478576903366770748413545862489446047691701984396390303213736891548021163441096354283149978345327230188392356963675344523457951012806873773109073276086928906965729453395451538602412635686229428522732654273587650685723630562007019116498560423419748543978312457919244210254795419418556388361978587199376965775216107646529324633666161413941635036001860610043601364306753643080861353458993602402412315998789240404098935753312935813609841651117507905611152420984040328489419243784326557183724721803388593258633541115081548254919987003372738477097822774350966550184576136715957083902334209105892132192605879487222551591328020769549298687663724308135520339907473913436239550284580265659623667228964229340102318448701960435062786095954016385715523421350638656292180626371622849750350124080405584431855298653497520287547827265190178113877657482626213996884299526233878935644749478990167253133775115510767060035491185887474020801663634748053843527595708050697727544524011852089272798962503839363138669576010348767107437844129516617226471536911562743923979843170509564552281780145056220884697124892443990647228574655755785583311761774546019778976667585043285505387598290469303662416664074498098338272774421126697665615306382606741803964664212245594631174125598002613949127817250049322804386940167277175634907202928117402449006769920503580501337867623093561051667200166284183528692275361257270070671078198599472952438229462717732251619672473408092288825663443117535241716796472447602499494992943439025723396295469099194415165569126721193629548849282794889225670972484757268300850572609254139640128243476344344888672593071565292375168083767522125990124717281279728659417782970618185288549846301303555424006328096546901199258002725392026095860100033675813534479087879173189185612390839877871859899850822514997352696575327613100207632672162604299975141324120388493389876262872007483064031190187829751003341368785367983773040620348594089298146239671494883831368084683806849994509812522552476514446680193486661275764783123627139910574659365251406549204963757990174164514817945922213010220328018016016358196808054489483488426092266508500916396491509640084316574525754173307298597895830554374973015568316735627226734416388724791970103175311649737064975957890723942035790588449773972161463325375732409579205515121658393533440316910034141600816016564076762190358113818347076670443626653512255570038501037731209298634876145100122545284879291415473243328636125904031623366809330976529548043952637145916214010413213568620619845913671069521917099162345349948194608300060975745223828399282294118800312894419354684304371732063851006191520448072325821235076340907381502034366549973274296148345042022928224226086861438880949467390244125233065465476912339546856873288008285027363406327799415102209809446897234088892547214464413202104226588241603995955112050479026161448835130536932284804287283245552194294167901664692990264666587157694754191539696184827685599757437878701348732688849480102798287029514630324750136506098463273085399943817198965918573246630765993004520220667607166356483796603578546507113099045243925584144665180384506327139988440824547313973097465853660547458510596040344782880878614477089333337518353541116058932388151138093903248292135973844464390649139058423705441741416728047800451189346367388413237599833420809532003736613430991032142114195444607462385684541022106519579092570058637470440465683931154196828262376348668719878566709661128626538468154430201469079328411245538278877441646386626137952726515978200108430256986819599930900801016144780126604376492976421570066955769627832666030100689149937515142997393720177382655302449158711088342184026269236417379185088775994399498008209043577923846385491425745987227866295199963583537591289214401924209423585803356243289556337302180343868854712544981059063496049594854858375121462496821913206597691116347016423123429921232270477260229326876644588741395285637109180713891052075466400920149783255928964671438715752478477327376023851238429965605863796361154681287174959578708664843507849708858370194144535111081741301803194232999672566659982317866700780489309698566379115448125654035884692089301292125022312492830309197555208076906082702465941173901174983842890873748173080785116729563612459297041298604207063603080590273310901925800993620461582750929118218079910717062894685042128828462852646148841208157668899349493743967051878968295066823107857111997894431491262781816143876291335485391499259323635496736229879304898544160430308800095021196694255641124427163073300043341935834365024926498069701758466774232851248791691397540465252356687038150688233882447038111083334098334390914492523551940027871367382457036848625882895458801126421732091603228567068411443019836332607126646113457073246841748236478689528195628393800261631933040379822654153575466033144876945771940732412229797288933192446431699825110675203940447305266051280301430474442186279570670123879484535735909538475932745954244480002644518021800600486734558659022218681819344602088300729948244006265569577098230353593859502803329219022028175982077390468855048426476433910851944849340344295587089015421726580357171738109921285074082131197184354293256440718927517267188921146246038450730548699397414077039700527853159980119687452989709238613698478083802389588694802245860395486321080353108067280145308039917632609791389423027085831898794913239313318359871715413306859524444542762911907721854821908900773486596112861653341419927665652054104999895225643068075451746095316424048759028002553090706871497618769669119249287860921176253174902027352054278701978251379255501983016839343466421310404078305830975198892683679725979545667693022090391086416854413163669825567970273204302013614447577988048069555751580036161900020721055667735072247286666489901022984696118339396053365382631985893584698817969490783021636982799899878300194021219819526434840048763020393616773136895072678566589068205433981355874337773818655053883435799375952672677002654169785527430350392001677583075159828890871561525142182853195798774483412401444284767266593004426475296707622150401197059672834370551465006945007163508361317259344309730960373453444003706486912438841834261870513278119957314519118737099881471860050959653009611146443056925284705722424702614272331153827875508294591665827515343473236324823706641031587180697189612163721471791279176248810510140494661172008562131523903542267650726589604150246065294991365210881745820131516248144873699515468159839173785053671807869261126013868337699066154579384863935758766984851531806759461789899075188761016423819729798969281019175262254795079247567705802791439649375536439041443460581809485954294860027794406010759073443094803444365751480453645080830139311260905690426768519041652200343091554809591963099575868343457323813609767212766767736697383119117873825089077448824929391510171829416979045138635866964134193803930019546728921720295103301724916881852478960194453891393703644208360131783564071351474633688829815577889979170002927077039518312510111305761041396175459495506570710055437431791048654139480055929219918924484849552635637448712613548359732377378928761060059017165971031805064490368715729475290955013686649236850577790946130061915682787031841657312776272597157223627314998652813561749277441840681830108292271464851832926033012739541398651169805247311587239577231778777320092608568281653550088054809247762033805465153552102827974394845957790401705728691630821424578882615776048070760917984326419885657955374324360966993602741079009299235928724820219608561249288107232558494601223299653384240942351675881864105018388247601745869910872069673725024211274883179293093164780325467750346280848256391217432045878243018088185480281901899019804731830390386767719409759745143084023840293412714231595070884507669529645515991817068207305002420259954040629569974105565704978301562972290668144709722542134874099331430298641173106140447528367902283462103162807492643858918259882124005922035523025357883730615422432465234589543458885583629381542911749801977382623264820562378450636187622908339154652333988000366860351091880522756404464303258938155895129232697553017090846339823752085602263786595436063740651784196554167122287170335642108729152490425649119621163514623518368931935391112220067295044765796896322961188637660508491391486056451500226643607675810228765502112026151586483482547085426560224914697693414204881613160438301955850262387304635594327356772109244375601737109264054078283495983126688865068890375380271045579454589395048032998093823403022884999300118882596529449945648169083040018303536818245750331414060419901105658261370512169556524930785436908513688646100831772650150632731447003911960496038021157586034801164979375483682117413585922296973308641680915942524295414114512703612401097142478880450566640109864334777264871939539263196145577377340054595980938664137471291641666274551726743121316982268817378167467450313105359584411928865322595483523836313782383599388247060052670027140947030730046445725292659845282413741606174557452868367564232125816223809038354692855701470764927946021314726878865228370674774908117388759127955569263713515265311521546346614803897780572008319664613329855151749051300916851512204231111553580969202961777787552014950106557970270466807966845797319330453603529947097914347868568524749882826547089757526816988311133986768578854622055331470680873816174199637650211100499889100903580984629322408545883580568899783977898910345031873101070740019203661719193033027942859085228716158376764171334059964644708437740406794593998626261548168198140256477552245032777069100060862274254027177670927943461497515575088453215994300665863614936838656665590166153492859782088510457909600311458231171880499376307262032911160028681114341640415498332698071591837404737741395463409560516873705373055651278041339981447628984399331034121367947990358351900801665006856189220096416818207047121246545599130280555160598235153286606643603681658333553761582227394586889343954811051688659111280165147269077597892149479098235734690585150782008152245391837644964965730652009832840260177967869978791680846259632330346123538520800625804844386847718177842461123896423146480784537417987958771625611486830439310188835201157574654582345563680080911536098207916950261770959346385806206201590065074790081240859041040364036026186807021506964523129317251566695287523224187299674235774558657399279441192132413431067525419911481929194227117262086784947333285453271806287448064330770874049106656035113290488690079771140048215261064747206338052642255419248727423537691111358062190341516199118662017436625320610021020509679913709353150684373525170325719885953292173291146320613970225194100702670862653139442069565033783885441690340828665875051584933192567431944399458477104357722718786353036582420718233607993885114153405062565475886954722095639669735272301691205516479610033465367724110989992854325907787485216269197375045000753530162817478825748342566113712809012574796708470890499706205976144482959394694062857194814354533875157394028825615198754598540749573381741448211743824533842621952153152613096740278678573628460275933397069623740236446741675616398528566956773069441803015534845616725933286471510907967479454629546274476609191694024944586322716806793798158486834313625172334828248136510517578409234537129538625368052642869333211027269361502316469736325668526071987384974544782679594038402679758638844631169341505517303519851715029129866619039692075514102356944656806601655944424323933637210970157914155384054372208808167299992560434194781643365171592278232668516542277223112645675599676396277908029635801597162670689786538532430695864051992150775853533940786530995626842545529173871460872342369587085883904382110958746687855867305391160610004355715474686381105697374927281012521514451687223723540257540210825889675667199048726385054505357758260802140024863335740948562982474406486850392814551689098128843221365476257015440292995052159613908735644723588122217611808036338230726473783509697780246031759793852584840934194570921699534473318102108332577030331814182559233869290938428716663995212327928387317953608588711742329171079835643304816981138412508444539566709593996865524064381796667881407192239364907132368267188991839420180188704699243164656117957667973143685087588153416969655244735450738454477031252807162611595454842433481960732125829580188782571935788018430564531808172929871245963094424307505917916763455081996584493468571071720978788865577958209912740955343660783492025935673232722857542826611581417639711463968896175766015643528867850291823667822196898632474868272346054337131233057982670078221524350504900063466184533353276070549550022828015999539087936329052855532331007253471937618887004234054184228374386435102824036684072759366420732923832099729294768645880408437509450608707001840838267917338714165951959157527153005312258161640399386793800699599381785993565619516694469089712989000327719196593060475167233939641324503205193018081623985994811014048613122416473007274687749496991716372118029909534236031913272185064428520797703957098613031092946390762424543574680211664525346809592561067616262266955294511821452220800176416509283471451321646020487349249240842692731450881159828991529844239863405241840999781430338114042356954569949895075198519606061493105233746282609313543329471807321329195292342334937830233509750837038193994881025594461436001249099221896386682170813958340123635339771692971811919194730958939234276274084902173971127322649000406004665216729915574134888331969020993995958467563009177115522706896514570683827985503195639579746444613577813215356018132537532069593056191864306156147901223346638511780781664138483585775005298174818824176207994211497291360095230711501982357849882582480845548531034095508188257299527298435979710664718412943646242938784544421491968521187905504225775279188360912889863176809075920380784079370551035458115936558699501921500835359358960965256253495265224266793270296532359011888012257553739404673298732840353367073281048674171458688096718949921542788841769574606386241681604318814363773346674748112774048349336676728563762158069905209898139309508100163100432146294966416245209903381288959300700416542962207152141429744524706548796860677042428619744650677722534253971511152794599090880588702900085148581669408100224700334271052997123492250769435777076962692820684133591724158787487336530062856347469686004180277960253654048810294361315923796053109796070890369623041491289139758153220626330790734895296174765604214822632721626549819156934232357596159567501368801313199987879627411978175037951277019029238577763816382192526427503513749204993898625832797313455555885575580071262425060626494766420822236056357617824022172363713738794178723067064985165070173969826614337976613851543907776493435812466487375701046931694743274363339072163021891232325959656450112128305724978433565523661313416483775644174482928308001364894260145819577443408347982132175508711780296154096324458876240976695622078261189710724503297789331088085201071687773827905499089322141026108229554329338485341355727438286598517820534650530109171631531475746206835326033127444168731778041471618562361967043578191447493990311681323293781532816431360224912446848455537524342092072221120365190505601338287266070880155111639241463531609450377166855975939048618678785316494007696905525274792648145089892883450508931669192263589603127485424762814072618931924894378891261144558316088324991195233208242306556626954538674818382517345705581420447354268855546456433102192589086194126939959147192239909259934662726714510318326082180093151038134186042759743973989783889982947953780930962089879207585734857369139329445386796257901090192498437769738315381649473900420631360113832928904800479360661767191450264657130790303469043229570204955542819709522542350855221314253014311551182848331555295318607388672923465309463991427242989185617024484974267286900412292383931396578538133456748250194842849974977071535880791445945224485629584932890003821224072356373706516147535414714983992079231795070282777088989599496622374125683995575488624424177821280848323326058977500787016707612778129576547672570021746842207940178023278087669413461296074268893861215480947242711255354657382482606294211527514973684342060079398142733751409549823017579184159161327728494559067169878275820328151701632121175409344630010650016211152198586133173459169952060605560620937821460118910552121670186310618806542971023004284790287860746740080353440579328439284785203223908344060832943548382652586469414155479253984078774196318655657607124027868438823432735660535554622968268304908683726732000044599705680174279615381029877722973111888279724945081456136763901501389334791200392795483881552554825235131271792036716679114897464966216559799572059058643440985494480366474847543798555147157012394593091686907352822775889421688837530258451339284810641962923003112995558197416428765091751753228124604928007207965626934420106684930561847546552361904027955541773632094808245173754270774335785395865099324969538392926633909799889208378975972205419126284322142041560996923290685932439228947474514976461171283831854019352999285674182465282137717099629029811693678316057745957181954398025531079835846071821533897147795427760515110720944599315209093585297987155762532202497026093119661911203177399402749586589473468927394251507608675208600428484851407745589088699327240739535009678931488284917470195488002261211212152547055384343648774829041383458412005936250228697503690166532618222551589370095537789398329685415709384072218823293557640335298999800701306204503776395266516365991981910923323682326858815492973598233109279730761470713324424301208597483959551402836471568872538372968068799621729736742538824208215752055888414987664179436303917641859110922251290554957515788173649270035494081470445054891512063563701963851050239372218730657253422886295471245971495067687669615263221384774278998968991075602266940768488897516338907668638839143481069573940003151464490814454903373340910584336262550231592494513547999387017141197229852567444416818340597607660629857915837942279359321710233312455504953372277352333123639198207989560538217868258810591901242890939173355178538911472320163293824406262356681253228074268334540927766113596842681211463158830033244710133511450326592731813460411744071521211269912186729640237635330581018055425773907867950939069854254650351647392584340613051650872777434754958243156254782331999300610209603896194734968019672233657327888476848699351529245376706880490137673005645068014442711163959356830781164195060619382640218821238011636123655243744016959600676741860863104899575953234997582632282424689672930582687322807511413338754836840332030756913901514555018030893018353066983498054741687032469269869371626591515201864589126843273218667397789511362960975482557127823050272924461473638325772412266438073047101207427794227487362137035999430656250337385016636786888601579321447085853389974607036620066383074552291854935702215642802662399902190497489152618823578472975701032593421097859580383901350397995954362128599842315701367710252810683514405906066201454338344573958565924309441324624186537488560348413803631524538450043277868660505055530575741535782945768041706708893673418887718413963420106570122470952245041912347255841488033226728861033258871863873515911266312609087132239082043418251011746816671564857258560885133301994079759027865621657879295819359509129125376821689988620625778687733155048758673202345129768343026966195738546325178572347679849997844108045258408069191043411079949599910134716642279317887082674074723507868376317055739824274855652624935060092765011324613772327286529394115218200614365350204274016700722391480071463538071542272179641080253179912523661883409994718688846288318265698357113752198884855074709949859835071163721369388893999766838586156419731225803768995273392913666712032215738912866968387813400189864415864868589305426416818199744470464847234421875895798121144464066392394537190275801933114800303672590638035188914498620963936157205425375967247940784404267240167253069128575926393150535277224846536022996696978582464558649655779060925134508141198713443963900162499834563802773057199467542155145417320309499548715437874376883237129559526995660562030111872703126975306699777487791955132287065949285173632577356326524439378059426816520545841723897243385917409822297778241500197735293866297302643736766012467997385915596417824458384704857309387616368904897404582630023806640656842321959190176218902598807010052711640439366733380449593434261660441776513259724948166927909294423012593393623156269626399272320372855715426242013462368945783255829265950733894985431101395394439643319262717079338771013300594055517128501763856905606885268880625627223014326881287765016222087517392613604391781093104183920932065716807356912192473414208307570808068056869694990633038642081780173695553530680191009135469049890663281075824866622133332328841712894945973272264915709057918173369267000336434323512080432201417805040505915185408771306310911678705674163091616760327697743124663594107750510096213020024138216092569006313156541837442520925806340104650559989191382711282439610196885920112365735008041079176317624860338218941435602147373700229140537003214528748772126671757289965386724971865533685033394687386335800728795475976107522179142740058450803822776103077136383726092694741671140328507831799983191227756823803227538268971687567883492690987806482075777032192352614118643420076088534495931012325425321632187226746463329444919898595751053393276300431818309808156730557479197096080387451361358906712289887922309085303901675150050486393874471298352619979015370401093544647601643322984124495522266577951877176677514129431454612494384899999254508846296561829407640206088345130208338736011744090766400081410132161103620160801543748692462330846920220176331229138466161501825286368369449643106178073558341102652246395600671106151187286044974734465712341223505155960073526506694216372547989593563613338521962116670883369097690915647808756526754679398305406560908378709869230384579387105568964711515697415244451990936286676480278263472110280887547386997815882238254365057230385380565737809955524913433744549548278042563531221728118080340795183498270425977922635320183739097034283929780294614121629164241409752179061920505499100981033827986977440105613684476297810644322231429339241528185518619476063536962568101004996828025234206713468808687729924078998690638484940087242836864737046059187615766177936500646928882040803631020705414530984761138575354904518993413366656972026519811027925417287007737035091375214504407932933950905041848495720354270610452441487110863617738195664056818524397961119560386710753015765413895950376627582357624699681240074047736661397782673617011789970842033465106775656210678220117917994731528319612001889327735127928875552555934683222843135643978764095723063965578811627598450878173164364474104658329150117471104753226995493240270966392911249871408584852453411743946569686303306595594993338881346648686491387827711089694913361028862169589378109889842594588920942861647873252814691943108555003062321227632691341738220964343621673813049521060063079660938724134362235657749451020409384413125568092223935430401644793492601065367187067162680931208370284875143572916495361141827767226872730926882762133708772817865990270047900209962565533406762364506981828389804935985348306300633842417979214122006103604981965813383459189120266825013603079614407199691303770251596954732265052244593088918749271855995279741250056594952538465602537736676696380510703468881198389310864136415743090513279629800487137854986856358395622827066157801273667806579457668525134792796696303352804420903358927146950899946496005193306794491191281714967944859672777622330823836704571536583411474793351995770909247177306535572963564995471952736981776887014153932046615021945529924291711700657817470801124124412030667153709503387977147277119758645004177276320798100167017471865560376493211221765981381787704095824471362950871327611835154589080008287887442311749957635474840319367811033195255788905076722218161508823998310662295969604905248999836452157520866303009634748728013091027898238637167857997431631699768442369506041991170005562314425182886791731905414764653901063441527382176930228411064262916983915284010279387486374337252831251446239978614657200844060998850008516799452300455610061689243026128703095210337622645880156705008870263389560990228271936256629649493792273698590711906798026877477930526530491828218861338052908031436392089199051210241345658453374234547213285068136578196569398705099546469477305666571774383870573745261318012687303620168903562455718254473579032321775060112330242456927510064733813240998028822368923419649756789430526735886368127270472330235851058806961260825992091477593706505142373072774693444512845066870541653976722609085978471654903100600015341925254543185336274481092865625150794017885770467628639768264958798450391679968364884715975565243172580184430278277442062259669254247768490870748321621193830568252074968016252673009943941338731565604379277588253839799831819837150595345213267274685012087084155457690755682607445500851501635063542308054912522495475361351826146293240660412603083695095722663079706557954269093036578912499809829387653883506078328387129727569144848567396827420194643138076110347334078464962632625896700934929109753370983948637107125021316675272998837908648629638625031462976907789795412041474553725982971772868825216190700919174766655623083656124261264276082462564113723008815512509926099178888440514162245248367879989909051888023446798147494063604922815474883614262662794412627799154075757379892583608942709610097531244650343438658109679535945392808826590164400329665159459950972863466103141200371163004033191484002878297989950610069777712509309783860997233199135922202273723323258805658466275988058699807412954496234948290347169321771611398148638529299794061656397311520244157071285172086292405225376850133113005793480201276986825968469904061676659588422836611819721618098421343697229963853117619767403725166497497060815152707184952515753937364864540016441992044684480166495325643242059064995270613710155006695875325446693851240276352950499556515778891244452629095103802512786448410868306376393304973505682739545690163688071287493238419890332295057145155748280385102737319339976261905432171193347427833376908768288546172700587332584891940697480578368871363890537363948931084238068257461837989963729135719758879145322835869075395972590534830718430397263653493008209665071187288841952806870414558819613788114270236092382914299756205277800669282943791874084140466103967297574709666236532246461248586410395845633536386846691207106720352213627732189428306757141394771515094403312614774919078240627871397695827556141782435931823184891628266674804753206545546588937936785486691540905893188657118894394505833798056713317902026056183330867045418901450956564290108575338469900897987910825556021152374675902951474461098098537706738087685549509031768908706878194070346773955292578962229384200151630922916751924503977849739960696176688607795885718961131862475435441332038395993006982662820965312519425793722718739886721138080892453942768657428747428082148084750379193950508065121383237545758611705570372792371410255931162282553124155768069204441796386117220638259686612642824629964381828215505431585084437468312266667126074362354830917584336095323740968537981031251678022347733174737339149937941497306667978680275005116875386857080067606262824549992195934250266482769546012424669162611008707885584275594889172286800773598919597627393118206690212727731999422356503478127073643283440476255353071533763633833950275576505698614148609465468685474972546323940695807512206109841264662997416173117684124607817151172659078226031697916042007951230422113410523063972704678500580863801255824071313183363123483455073233291805451571975478183288883219802386196790177709297060324323793573963134921322532934064367117839793128763839399005993222599737994988210106044202288099027292763261876558091761032303321288134217286375462992773865630004206690566401567302119087229407700141720585169336617299325188332674361637521407906331487474239314946505085736402709647161128869548465589860503445516297892856510439927467144666053085777101653436646317502262907703115785843726772962456520192078895878785547836813959853597929156775870997320581653536636162864869822761315823899942865044346020075625408491137634108713717781637560208132485946068721803813918678352642848381917881277308909336542873588489033733231856685221759187438112262029062640635598393982516778717534146563954553567715889569860537891607676184767838188800232144234017932331681000638751056956514354027874490660057170368952802880063688802365919446865592499324056929907472323456699570421946653845057788752352436218595150026606297086209602197593811161474140227367621108866411579747770151383890122650871309121167881457918963689299770079618371729172055543709335446429195533532823272794713976076224610216479785931376135473524767884459644103959175315669847683654048230090539163726728180646107096347870673136919578687090532690292094628835327970234098400520285709749852414652558357738557936323865623145761557852117509707176292653376616179505269378147763441085630888038473066794353677371947567518217370827985391387642289993463569097746627657714550254541060215587704170075303879241240130667126458047037964198969997441365685311668223947221369261619879204019388578908823205497379198047051149506552281360611585746377748773128368986539563878311545117034706237330681757297484497191218790508739226122512948906533081754940543235042757661988312808178233997531308222990810220970198864804400132499632898209460766026329287446179256605712819596479444796502477384768972938111197113309825362359877978306707708411344300561410343621248349970183719693400833295766334712439804715952103015932961818811287553945613481129829113979033383034290215783746854077937389738868158602636733531122127714866427442244560101002105949803596043422848119028731770789105922732924055438621908309814404684804148381941640034799550191436492784516654419641693425391136364246529558443312167443471225646172445268197982955032569769790156860295405687412840264911237306467046944636932013389453419299774384885803746468837200780087513339976196301825734810384849870118986435714944966190790268213529864152610893065467272616415597273117231028929165706587086064487350225644690050602766398998036869895598570548046388342333103288069443392110038487420798484201216918680542251156049552009777803533621042352979068452625413530555928796852804906718266826420302332393489746451507353459965583288991558721714658288721036601806138556197335563596989607065228044595549837530416764326529536479860352942577199834000231471232805729317052422028876871880137714242665314584450603408147764250909040585167812558872779136796407322892587708792021135279051580465917519458340147120232058675835115531210190551690512977393965617188749370696906249619500646054363074814809016643712128886710825814358853543135532584815414081361946495963818796750202535101243813842795197187456200316455313779711875909793617062682650304735577864724286772417452622001829641708332592619201209092567668608306739630699131457946326117753058306745387241179748977035377393752456790760214610358017949438980280460735872093504949140487090808155947735945870084141280096187515490839438663965753646976080220477523544765548281868516842757807918933797841262236056019178705115062349432370633104445476470188038232791891555017481197962358349245002653398389613679253827803181924399779462638104996594780153135526787606543694933077332463803606700163634742817959260541205647253733376857117749476203579422112214546825749983155545966856769507930897585631136166083638882270301910741709613376602980011285789312300366948235161339176443003279635395133489444966178859954734378891868924806448786518682772036018096049683594322743637087794927506985046365791203287603199298561221997276643176559921348064992307023496171064159261895315836224108690931412773059525365966015851277865033640959605522643936329729452502625101658898682756998117501301020225530810550157571318653588635151721347366521876923563252706795290218698879367510791901571328535022157238793393329089000802040571864668135925092414938098007136489504469653395760021186522733193424681761777075360198679616535089733920710052112256455884723568330228890478409476601709770855735316359686505197546326377520303287326223881148862733301718992589695779785098521726316496362027058254609241107296954355856875419507131608198745998272604387910617747894143589195461194489894318543964679210558541617588000483451708932187846786373473038536776371829569596660329551428372128764478516786060527500809440842424388153212716488321125214857281273252565542212718804692652477404503051134880151911323775424860632225668254539514294295938764817729044518824305686106708854492352429451577275251432618376068878642836847433470412154452963628817308477867605048777800156233952519093816061397308520273939589121486076355858252017422657330179578163790801211385075328580642512503765908085154615498937434679880250261412220604377836124946973553340603452112388646320315672024649761168907814290607623973841621539321161335680668074650572139177258004611646790417555880385462841140525540987585903475217736419842097440375740169561640548758348584162019806650559932818411509135063778438515306453747512380995931696534073387433721489034974199959101891003428818907832410744880515721926350579634520176853705155202420760665120573836225997931356128508936994543108173929167840682786047384711294026503187509523561709098612052364945516730332624509491058948760005683361236618132179268633686436981639559505073977167050907973626056639329587873620715245892121522568990798105215836703477582337291431258061419356292248228620256275673462597426307998941164444623667329622921738013698323808548317319202420427316805892243025785809139898158778512195344489654573133896651321566456808045490917207211529516284586621295452695058627018655570805780363443195199737979611967899766029371588076670766201314786772094913251859793414480279531750076618639201404988643127219628800513511416209284498645708111089391742646122106614180053048178533189919892727470429544612398097365451533346727281777746842747975062229398878313571632215835459066815833904907335734534204577714668980586155188288974591646801432447732129031012308716375618960323666132014928908154473144215661077675081100580918877410842569496254429294831284036621383053996764025820549914211319073661679012248011943257810424176662238663903088830413377997522255323610923950674883724517929210551026993816557002761556102517598763524758201777822784105219789906419822127377292084598286090068180822457765151124121478034307623516380601026094906539533464890717114143169887050304083989438447532795598225452814026145817697416213285562579820132623846180724179239163936390858250711173819367113713226754001243162346147639165156345303020521705035672895749221596235435598671555920872125617138231790842289785408032390759074651251881329644349848738129954993447978918077091249004248486082693855225533022811031862671593415572998571903042531084585843391519759937568483554087970727222571212343247291578500180192684646624923433918695315584902928412828815092020340548315012400174756218064717305593169033105000646871403829094042505576413791660727694708670460351321834300103369245804417444075161698797239899557322923209808687402140206826111241961150109884743307594829807691923140124654334103951798014502236169469936500405535038956850373907242341026499206749275838637378292398332663219460139831347091940260150469157633753587690715598989545770484325506862932240846723810852862605081228472696002044840749702882735721799776370747136087473853588168398754741382657383214310204244937936754423144827562640830379429762777364308483383409324620609867986866983951145653485687537379613649303162539445545257257599711280952070326360519651122218092801785352759613295385486377967539659121649044409946233769437758097135940090488931803861033961045017295013022526335872459524685067662332555587252177919990173975624338615161021195372350188414413525744273911394250729057692283941789017286906099713259635645920327692811293901066975298354226136697305916492855307687435307448891112051295485726876090934816025013145778960824009204751322739320681522601740531570255830476725227564666234371168414788327880344037335526187433838432551678072822567849057354338718754847463028998985224896882142801422817396810294635867166418751607533359365002372437610453145194101474361593014352497664743001267503269165527311789662569333322070367997686093063734168623621188264380636269270500144734767152547347505777341929063289410549895437706340256168581344812610793656758549978710369537469830602183213855228921549002600902663830358702436648703903452720625841192517976640218757565565555435649253794132700618330026841601418992937440431615439538903501073196694349045859663904199470454368813864358141192021289490049374560457329381395938564492999411124310224362791434837934284667067627428414346817824606678678955424866180369681536130625038681948957066329231854821533883391467170232952113114058573436922437200283428581596726565839781545186885005318680421103228292710498064244792756063171458861123012171822370991183484516501008648391906549962979382984890006514046904606752068050337448385280707258814419105653102480307660886020519396237909938835321231239781209876122800826050842309817261553545011316926958229513633533553293740077359963618958080813266599423673869919198359303093641836148947603655376750686941955763028471582246866739936672958590331448117323377736273558201249084686981236888434878416780531143922514192394373155181693862725416148742186153131889574966169110478855203606205094814106373851693812108408668670512573256387542668988348189625915889532516015105060918211571657762628312830763871764493581737939343878876619936696432596270185706985665778788808397740608286664175561368577995125111693372345165902096337559012051255569339648699452510137278975645063364380582613195062980420847279793612403446593887595074097231403923202751650915973209906110199618968378500006623253025228986104911044400026523312292552205937051654534240218873611734306500892928306169359586830073702627599072647893684193396251265655437853060616038689580006147235648231453496251453438028223333810940776022934340135626801920088195148180978308921312191868631607670789298144156847485282866361079768459190270653256688380914903392888886919414994156703312215670443996835860055547111592270100374978594337880547419143367125579866967853743995241227192973957983638970073924847959283144605677831896741931812139866418057788358689277858606617330289487911932818105850236183987743947390662561509882990898642568056882746419373905559339124053434037290352256447756591943548552309980669562427471759001441976719139344641031223975691411533284922523196014225911660829318695625511208470095954605493908073781179902451354596284537524488746767224221851820344276322484943733253716709674602960898447544832712550150459962089494415060142697191113511570814352739456834655989896737457327045322756097308495614661009189090713684947350928198258158338105465308883269529754591140100948259479038130640378205999504563245383798302705542989725002207399935570449508863777394706455547472541129792311899897710293112708596019908931943947165753996569749683410302108654690749702289004186358803143797298138473674681642916568303405815314933737175683290620114627923437164985528992809367232485585227384972504919504685316142416431758744813182741512757453939150156523175947165345386665507091115792199265129456509233396036895553153421543305720428709985705554213880178187463505266672648629608288934554320231548955138362974385130921535770168417421398111843391005389908515251374313350211268382000557355301954244628532335065475588335197667219109155964475314915331853243029244572474563351678235288696086417717807593135620504010725774669958335509089472129592012591326430274777445424142278740816819976146549287286462081876715113978212797070495734056005528242177329501642391211265188257302790392805950458504247029745388494190239347305264767145946384944169484688910787353564469594370841933015669318849858923588576612460342138351967463698009848397362145497194093258899737437708016099791675583594336150063335009195611857110521567960848273404907213422752985781612574486251989018652493546941000098863032322404249210620533133263224623023488722761818477317629441767405826203788736163333099430276058479089332279134700394687234636520738816793632482682207343879004928856161557185204188413342448903117486478382987583224002422542840646367582694814028681730190539517907450568898803113181003230853206643348909865695521716433331284424982196668120447605634226748416314941036331570298220235598334360471451470823948439809470512505595994980080980769363107278001205457439234507672422647254629116128551171716489299023123818887799722902863220651799528283021084718516320472076958999100158255232331856405720708954613400448225818567676436132021905112632090402145711787619910089343455832551915994756741013894652710192559596271670234621236563358746626942600336861793270502048553952353289372728747531327538561066032146260591034498796239224002487457856219132977859919353609068845680166442457465597101984659494480621472165041718806008996545748294222027584501218353196847992736991468356949251250961789929142003194649539836755415061776424562338399193659235717366322372035398292001682897849700879012273654039993036439472055257592611100196688878331675080314207968746173476520405726726025791565716845671562673841669529890454351765851391805154665900310568358973710460917630142679957143922465197056239393170269558092967931240648889902583817383151801268485205784403401165414844482566657416115945353940773994787847176510334255677605113537059436241920496226217126553133322830759755079167253504527201473508543697065299347576923761649341452400162407826487561513914436350519570177351487478834026053376545852471687844944959077252396681902811966203647820925934868704224004797993053364513207938499101895400592024816284902617137892277080094384621366170460703831164175899926652295364752293530312382000374592093387746746870632406753495563105623364241312309695792961566261358613686414332424066225769473189998254377148732927065193032387356984135015540002521066105037749071370228586918208521253233545609086020367560057008038111866017191909732348017603658793200453997309099219481891744155395484630397202268958249382443361721039866231470247834820498751866402502619349133609075132876095166727086438588388056516690344728586687203291704635295986925106360522440835718820659688309421559366835318704105260374186451140023101572426106717035597600267394055035162979243569008845493817105226466650358238721748795109185127950876757869460894847037286756597396450799725958442706030749310938031055512026611120775026525271583313853559977655519752463879018762805763145684310960959461559800808102450206549231879355157904891960983575850555108354840835316159991273186771744677115257888564713915740672946262958899305305271073318569628420324001646666212369049803710610792514055464431858383421282595287431101682891736633844974291249086405095963195808763422489440788510046433814683673575484268287674096317453023770052469430328624591226496900015946694595232809096242981100272833259933669863219602684928810228997496119048634803991134267290288810271281820543378819248331613428786000994845079493525994112958642874736193937379958933878979049772789618246567664841864495129923604183927298709044276811885700878267277099729293543526534673962324556237422122517242658018354121823704732973566552416309053658854526349195209895880533067188400112986128793520352876064915023427000002130030855711880985121917489283282118413325705081934599447004917243105036604341588738185172708580894859062268211184025306753830561972206478501609641214719669841149755492506062433335972466471371055562816546494835068264888803977438746566751538666732808381957411336873424198648907161863729685837267473749567604645676360380212632158064597807484232908272494773952778540888113987195582705258439702817795947449734418351095555465627763739873751087108544500802698905376763607256431908148989409854860155268829428322211988907387196035168310976293850580748426521134550650238793745289093912603074062699291994176576251728058896874756630603659219097226033710201364430856491687433272332962489893893367411709299567492287265438136270577907079679398909748560529298478529665440124306124277249248900961292770662882843515214922411670965936072508627501804268836515211753565874306206793183281308234054486214392606922428645164924234980458689841348281510085280167850385766136296082774158787658360895954328719568243145295729564823029017077707821077645167365420412547971687689071205055870790982320788849017150955733840522587894913070592503201226367735323101808493401032903248109382167239328533748273707584960755450343670849071749397023869619541452168244088386586860361163280716882402724032879022215534029791453485317501107658474852345028832777225173551083858003697211848276623354971069564078953136039502748178840201589420117048582159301114904658399089547960221488300910117646430242562560286635376862725928832845800421907774281871977881728376959511552406112979719912442952523780664974489125901901349942941158741225101959351041355292749818576580512682289045869933875345040421406453709397352155006762427026668833585402293553017744988496035501473426431966832292094470643886479474742210622192671734768541445335267253506222136244651612850044256702558588197460040579475173743619396059599484883206624762792899770102709644765470486671971294577843406157821926064598428566114808428369051101597725537276194712815492898475989471878617820186033717349014213658265334390743795140687982637027887005220792832449328647867374602548647109244487303163133866021747611239382164301688655391885950527561181098497543749604584018720254740486062762049343449151677147358444026020366558241122929620527297605663246908846638403625753778151531113881248714904743954193735730733496842798088646812150257774840511975034912334953534570789927555194921961684843958491656767401830917184227223241743790909164323366622813973398117967801405519849413181732793188693609024092387644184452971306138529828891708189615671325048502055321961117691759760422136853250027436976711609911967772845062567739977947113929158962825887713821202936466811806832683663049512207819752816385402807506867999090857317327694958053104790033574229089954670136897742951742163973897166634184327052547344286948078168494746563659851896250098500423637535950008297530158477840620054082718708713997141007802154676924340143197740575107908247297762129875566068609153721403501052750592137714326167785538409365835173984543840816319468991007829471002306039394718506319244994684547609113277932125219579899036662669901510213657827375977395766438967389349734041585968987476112032395400780720728679130079229793136201824561499735979995070904299031262199883655267003301675997105358572833585021351905750206124924773232217299407932267135769812822471783082093125767701305115039420144527190168486152822803163374061764568456782157120068835225085057899602197475265221513500572453698326058723777141752682539903710944398805984189333020089254959725635399611531375143548903237140537041953417550869025982762180710593580229265931711085348581684249644999141429075989817214385841129617145738264557774109953618435288377902798313441149019916602112880745497901185851829262641687437283125839953334746721118678645874126811976150397667440745418777558728706005465370212082760104493310247983095508355545761559872778849984518409816065483698148592162828227323442579689278741040447916047887454694055095884632835112151363729144576771612989888149923613909960672861486668981439384356406581933560543983538624165375116786679259364109447575615555990361863514884317639048646151568436729297166532331109180720639454293565746715831492336192827809117789998418088787397479807879978834548432001321709114472767709238848401366210212576476080403248101122928138873486664914996525611387608951128438048703596057242040827029692339103506755916150980214428208061114479489090280124371662645041023859064869698093413956930587694004249583321098014647227838447984305027997962510380612446686922185473432605682844734070935518246623023006211292994519036253661114812368121289731825133577353174632718582520244168486820627755106167599664286381022524167820467983801809614006209945077527970017883084462273326265776651636389111064732439495833712689904356621855538432920250902468075472015039267147689086828088256857608490976002483837684922498769523582808770130572996171100879965221397212726783687203888075604593171384007076494367262002272515886261787345343080373412314094189973728580098814811836314164337414623174510407494770144023270785909943539794255544075338112229518379444448528861235535145175227847434866841232078339571111990551214554335424459122205681448461994967253745846727165800284831489215654086273617940438882161863608412797068769238242735876378781653806049491475261334897182239449399186469075129672865425181041980919774128823235661461442582427065188622323213547598135722555044212626341452208533242348007527721097365763106790931852957428851251593192592650111807950192597089500178319007180999789531169588713755368113784914986266223463292867578276743732840250009583534902467370939476641016422065591422547077696448053023367994846644914513856461666892605042930995102115300882597390799888003072520225591043288934391081772381509890381846660079085980898232890854368377680645825933142413755192222116048021716163998450973756434918972780300851997665169193638902604294307943303180067022170708786424362875829640008944513328726638489528292503678737417936017156825468376825646251300100020051594185608882762384977894660239752723031487503390676705695635005564369601861820007348565908850707854571265243235709915024225205692799413514475948827351660027039129664102780907332446687563336102110433316610707468186195235204894893941872221615174116889800719363141554907055970532351347395875504616132066540971814218349007215589143083562855853438214852280467885170603225638009250009466032921807881173694497520399163884414999228509395793338118910737445093638645323519945410643765211556882357565743371157200482802998346488887884616368192284922178142072311541521435771951503080801827260817256195713247321155603493538374934611568513411026574949346917786035722852085597542874049875722477842294035434441380432401762489766240534845003836881210804751853315659661710167856925632213174784055389201107600133134913428371148492650355475372870265625445854307550559749999065599532741304190824747073566606982822849657053998209235269089251573767229967472540029039599388265721733761337986593628060114837482426166000343736602490864054248914583110433426003144939378748012696656106014921677892552933791658106594168701530594227439763440293485548932959449614960420342309210963828953822885902282236252823081880683896002068758487890740735043683183425820708822469383693903140024475534180000730658952508000828723065694922275434173667869764651220524387696888188775229581362388082547717057314712457901355458799780170250593754858830611109301084741367983513965847868746196713442236912251410497492427585019455371719656289791035815698717404215542350327056388894673293370145235433707498772988260094373967329215597652381681906419404996141420102077885918663781531011574307362700249959152253642018296971510080724774542639023216342779572566964424486090327427458649386108487530234116093052026200779216627897674264891278558442761740178485570807125917296322460600074640004219560447341830605288513808693397525886913183142323615945475610659859908816203949923250321835515523589196178567777132202315526338384416057858624569980373537074261882091834773539086929302535018941632562514780077351299870754775117499618311775662319692669621726157386743516010351180498840109016015407782262895528648410339664643792370816387473764896519817744186669181110264204993097919025054896226179454440046903048205248205461776533959057962665956131699031961059677900987212348235479294222154287055724180610301428916784028823188696507580104973986780718014559847053096264686115219082012284927733524091271496109377536615339982766416697411792536593487125086522352679864209098446775225083757619306801500060070261754236173675019630174576980990827416963141889097779919862593846898351785691989573711780368477017285389879012348972292059967791288704681988783349285310472352922003716588808198411309431980828039152441190898126506041392224015913233308458846627983873142140866489234386101523170731144602923522413572081092594404900946078528267230650137918987893615319200860322485076737850271564753219502199201737696575658226396193789853258508854349436479026474021597874470938702397492522595687078035614964762959552224857553911255240542482156066096463420024304347692931788560123048287290982381525757182714098069960790823198134646927168781145774386266413567621780731911302552182070437837133021730444785959370725403437101309820609565621053922540276795290690119494167924045662693734673610457920578642438059532341949513903319226282820636856775874101721418427327358368438641504360111594463870239164102327369162295697504458620160828996864886825295385635183650172738303658349560952025931578081713047993729315897026596565730527652939903033736648162256753701784889349503096622336903340652211375923851262802209621562937304583467946510272695828331043874135214541454965133955433393566932621053149618418040763835347058227659710852823882277519504114155922783555372122782798931028504946206085115371035877885647437067205762380048544594706505469444381521103076341958093408604480690178279438737488990802384659051891577393511356879255910766654117106888762173705782627664663686134257188231873911515775227782679957903860790369218994197592759217785894103754021156221087706923841657485938556113274556173140993651216643908653141654208072098399318750388058724541342852991135620190056211074989606891429763010737781312949819270820180898712721951351088672456033410765917733321588674335177812801368184272236951628036163549920009541494156708872933445387767440639491230524039778130057231824167892102834622517043885113706632010833834381947592676414876850847016704527659435680844789791534032786741993210455322584223285487235059233476662409179784966731037418999635000720040384600391202431606934755574998510982521809535337031759445320781091717638165422597551431390228122750631107460142258437725757764789277196740680050447535703986552619305105332754869004703048031086810609963852823265115867236205767520902174153820315164131148372589096000882583799844196079638840574063872921162675314755584560250148167875372253399008228394136861063671047169719042949083946772868301624037289110173312357719018742639879188023689255253767354149536766280952544840223603881813111911827551154256759117882326625244369050783569001337166248057991094084097952142361946146666935811092448082592368061406242671842833351823058619717536622404775749228207451291366533883317160842373506372253661669113676558980945418109215456210936257632047550010048801576629535056710230106288575150928890724011435841799858137060130123572281977952403712878607050531187177390410593392248999138822810940504827077555690338355466696278065769265297543133283748355086097185625027608952773565982563390870871270548621179251410089938120202944590108315331935074534429971350555241006710037776479166228418228700502410668523297797182691268869899047084321989748663818603642462723701440893431138491869098996797639554089496552642986544165088695126905489988344397818694766635038673870070449144028852747354620932952976084853826792786113870982576496410276813978741416021942329422205483568875408830957923196557442121680737205393364061210705461154504559608314669341999895025942172843073534701934581249684947569968659370306191747639212841084073330456060877686056382176562986173577432614107325086283893449878143208099572488164908458677390334259449164269219828509534400803603860999624567141338565601289839809844774507840539186267113415096950631980478496591215566713569675528145431803269059681527651628167258176356314845225902300766009565409410533586041491640002053440439132737907706852736149325530123838696149568367667420948108174343700750499812598110408805593902485277305618836572293068244888304629895225884718802827105920129362378839385838844539839703377920818100583514378285712105406696110791170822256269245507703004006495377017216169049208603476214513524271599811565709968366753164300438656249191200091396189594552656185295684953184911173761290620863148382532628998472644899455139916582654281343204188620969436276459207197207458579567293398854196103593918942570367497507389122047384265594888416853002868463526514188964283868832009390300320779981044159385495618694981425499509674601614690929592340984689797211670137669950136119122214684871683555780152285984226109155411649457620829354839181198224628777271589672182232049890309813934911434596372520462496682335432494211238011461363090876342816219036195658888355333441909583023084316512532959569552024678849530474897338260960609607734472814624873498692759606391867392470365225103425819800631096065656503842698372521819652995637647622307861037924023079860414062640082212440507984809238971279475659829478188805546237238263751501701893238348501000982843236391618789950449854763861659211017298093982854396302572974824761651818849794519706675116387666817477043025795321664535136746028936521273610974245758692386866985890013504622154804138599458711460878439518111143782043246072133480870723312869954035912095919224661949172693651187224928977719987081759743640974828303176457813099870860843638965020515114823041904292413625625974625184112425435725020867149340084024752459118921924845382706298770190468603771884401458644880211409538750690337091375637708686067799799889537425370052652283290997324349439464161240851716948655204114230666316854436829056760216870897927528230460533094815822455802278753883717857225901864865774657724674203980727813185831671922108867727331546704383831248722923445753075063695481377347117760204320524649614395502391075424792436817567592545774956827203481311323451228410635129327953426598196726158827065480940212738947413847174235774124254321317879987451197879396760299017132951430716994875092214957144761071757383291625039432255194123480094226689878019457378859785198286283672179667403296340323604780439475027062991343114748431288634473156343766676552973259375428713960592687776948504261206979665641235690087999946448537319908099129412145650535858913117266171776272494490228051476651123724012849512286652941029077388154371858068320364773512477239498982062935376149873765182653755516437575012570667681295251119753428696008624501048440172270394191301591495870954600857534600851535356695362551706749734046370511234652284964545816359365962436913042738994989811572151260142887851416328554821117468168134994285693635387640657869729124451886558236358440181687867805361719650664985149502807858850489355977920880536468676225543835935607059505626457232876006139064894175321237005738374400586128593644400064638533014089701102449101035784418604207184538270291670339968605847244434950761022713205436561252950983781576356954633259850683467524636719798881080750651067283894396560735855099771268808427875310105223249845540141079274937928217021256218713993692734766277161928180504461824354570523131999551566221320336505958627787124062497220774387992021318331615820487535809295701491165857039391176088713018753418383034664242193240331973493269063548966438149573580903847543286222886948556182814120027075518808141175904858679850764861748017030933178015930281438252267613119949973321867533460090061347280177463475987852217916682911207516632455034463586295552981393807323727912758177048040251996504514060255521171233137348787999426483574570991469517780593285942503840500690743262900308975310288357985642417088074260884207940032188039288139941717644090901155890705835478686055256000437439030900928763219604455492635467358644462545934786726592011816435363400736261640445557799365353713654258237589181317670124540583723306656178749127711990032191848107696312997479825776377841073403442197019882857356275794685092114422449702375467642307930681051551320896566168687599210633825795751769299194903290519933492061906230798949455493084304759473883043407708618546218630230954766306669807173086572910121667607777843446616837204446009842775100988955105682586525103794113901511229421131986532965365670731466390546217095416770374476437616405574199265217932511478124794252757493347524673303377318275830224082928278741785825514883397068393073504907947688041235437630574067083282908653818735505987950417657677474044831088802109535670259996911317203351553359964542728779991799436741185981099804008815487664317854114439091073184409348378078585074625591873939795797163836287769402223526629429212889944998845656813832570561395534768876265167245760910213724974318892944132640820633354265616356183850125682093272157775248622932902621833944273804486632326679505153871765790424791714089519404292801074561369559239290588473746284675584728833339077855691374820373708946087878299605170181297654430292202749837550278574839984243771337572221921652026886448198787436526439076608602278338869803882546538012958136058566745629450119862786928512357433396420641764715517853483351815050825814272294393960841534489060253783265173643790114991046041265195241549699590069504162177319342612520104853177253673305928882964806219520354862310219052636138279606336703697870217885120838401173025869073483503588389403360049141243718061039474232688874622936210077189656343211829889566046896303723417585680988994760723149140865615300918215119382948704068141897329859204491786741337955761303494037410312992912531933516024571812169312317995463461749392729790258844974129127755468884215702647654663416876473681566196489171376120846974690361125539999593526883201576458037758238341173516024223054379528546419834669795575619613744263277268563316618523096576447897039397895073123126892894281884787197114206159354406379389383432318207185112220098125241485953859435589462452470996651527440884922481544805264530099218348274490127611619110571374011725342448809068341238177551914117770371303949946234974723595285009456997671501756042375910555169410140716237544312127742174481974383049543150166763719757489205459610396336163669763579269093109952759889074783435820978104772046596039083017465695095377105560680839692959831530448585176818771829159236867232616102719400999544253825890705587047198518447323349375435643237246562383589849198820864083741469200597696077042329366470059852852697351391609508521196675169682727888771279938040524007983123840114202234467989242025739258631536168770842528883322775266531858994562312041792177480686890515902854172664843032428485699895878992482198065443415313676417553034204772391966058125622679262583159917656068874654421964979397508756594737037558204694382984419228626005463004782820523210028827305700875505221768862764634217343284702205174124831959671486088202357407684888547270679309348182278041485867635114958361189686757692357066431980326044641039421747391739500500895744368779213210456625717450607187341349558120640751028252385026158580320381272838512529458723424447434402109069768858015464170158926746011914478612643070877415240348794261484615660131098539154166160813780885287749197948358281272516488850244697742281197171978282969749873905554758890571578856162987821446557825119652718029582394393314421329661303849195681275916531282519558319638304472033257589597423764445553356285337486059779055238041245683479681223939177802875501865397925572117775587178883717854953707251187892006409580816195494048043746168897984930210901115671806947521183884935982018409280447196472144635716909364744452735767841739991320415159876165147533169723510875015430850987978059178272177480705992730510118867856766767049455274588186596643816797847152770391148623951820123529878660017033510506028073575829774860264995536618759568950325200345957539410620494875436224132626484913778798722416671079236423780904231206250121277015356607665449775175229361936172108466279482942223487791063334045536203089017122358234307316950258461811031637140739625460221088299163795311130235422388685689764996378096032784741425990137959356696214176498627471931566880487727379851541413052255345740670187950480427072856850678812090634703637111493070687651322515634313080995506977406649041731455509836229720840372266986835698745404658362338369870801899229273129282710899286101674867242020216916796405054153982787923731087236748373187665603923593843064587403317664051061862645505080146754898934201857735884575619467673900672891174124801518526810021253380772438291620267680002859765201728271580528799287152619985700078765250746957806717265949140940513616375230443093241538006908455761117968293268176631105003651645889950254696864280142133600406086644839095833331235583065848369694517633223768566401191387042727409973810104710123780051321281517147697790510587977611356834944894347759222256043809456119200247469905102060215163918074768970013931715994434531901804391016146763263039213665570983198673832384178971825983970002236188927275759912522528327117853027829472791369011699644055482550405914783619278580275947291999479689901099995322303500608188244579604005186769952021510625631954115537697047866128080874026439778854308872895765728634768496091643995433661141020123896220258965750878754383373782543034780910559287284038967921052515123077716966525762979137161918765056697442696905747654002081330942277468945915938826049755145024543086880295940408405417576504975887375342418950738465362937553681048057157008905618038689160627329022109659328406903308560993099829523722420442658899921671137358357301169519252608964297609270318029501650140228800121247388910527558913836032779776547377850188100029814346364574363135136372389199432943863304473159866811805360136288748062252843465456563170594790520421693426565071608131070282815504046969565989272937250069046508294332368321789517751914950863878984858075111423724444489452120416298984704152705584824167894755226335177487325701435877965444327200853152366387992641389098725922216126683194896718497534137953967797844174681587920559925975562026688327743829390203152211791790485009050349517818646443905904210348131357914487126385205968095826630953075301739778048873197900934069031480719496226917193571995707417145232199897287659292404216546675076809122190127977955647565949399232737330769564786891570524228877567982925058175976351084777604646866919456249323544137018229480642529485979128197770838087251770013184601061916740735508411718720940673498369504974474760393650237353025015250292259069853263890492352930048582782721259807342644093378325874239418322233080130064308295738823997491766750902682483614095440166529587904571414430018165935188743247769187585025400981438648937211431908526870012343720018589227174810484907813623585145483298769449848032920421500598023885266319883756720602792948426567260955395652297365305071341556484688582289874617980469451035134649164242555630899337855560814954066110078555279129244802217200958781111221288709142775775644394723550944064276609459209638319764393761830709119458699625008355039650376466417213209227768399319343259015574400143902646272792301162893831434313681494732014960690627371374393675015968476356074897347747753105443649866728212482515682795153538325904211822475683286074965437355676576884632616554826730856239475198530812983389275324331602832160718915434293875056349730924767456910585624451107405530567186889757665298102805896698857392528132998248045216864620781511245098565296442972812892130258914613667092255493620952437398209150570651398721749167175248794735789003942365149829844103227663491832420375890926187763970253361744597748641140004124794433929279499393832326375777219738783942770298600057576158578908844312020889642965177325912101597131847131588157651972720564208804604259506833861779903133560784978804672438991857525479536264539759433946550107604867233561515635556473733725906539652549831767479344316613795450120447479123860983407267994138647229363812260412388710243849633247602591187524221837838306324310960990432326502131052491739018384652607527036682117835187478411760422607320525586368347707848795035587931865178604509020081163889563777512846890635185409617057406155675335885633081856815433283087972959371870141732522051340322404662471601092737361711692659373879644052257357635020605600998709861495458275130286475799479924417712233445927362058844546905957458561417888393765014786270477745218303771122446459320493585068418031320512276704934518525211597781410177635517669986841225060891005528598650063387061823497484962945004041672494405449511938234947580068970621453734469863775446767329040450805839860224640005476011591194716579955800278921916932555806224615813257255278939307843701374820744734525756977753662905453863684497983466663058434419588337647015940497905057509719705977547577208925256754747767329574538153352639754505871857277374189251188629538755915689679932498596520358854915874373633851749145997794802239231868891485337807995578239008189752911726583989805561968110934015349291599390276030293702023537762117368670490126413102362811322435073992533328641398282386376171295311529434546116296624204762779814369007421707363350901841400033691868769840122705225385370095074114556622151665166552538102479013733145342907857460703941840800886738218527101892276193745719594090068998119140753245578147560873170789764681882963640412534678526217046506043184341766349317665611287995362888071188557616718548672174016491142592287060079193585767308528509156127106663120426683795198185086265044391692522045152144979261804777382777663000512199579497253077469034251475679826445006783165083401062830366036743647467228104798579510710499620816304739954031831964759619090513510983579260743974980913290542195709873541319906068642168810931113372450846945915559367587869216572784113438433098903219156843560641781423402244717182833543556277586946439013771763639967794437152635471306752461122386966602528310167871412766291417112427755719536787073518309994945269764199116487733801215853675110942698624195030052421612564771544923523564173759470393501823133499558873570690742270076466030674133445536380655138132673860751981919578733470089329511484337133714292005420976535080749676021744237860405387974669758998113394026800040725275742505394654732020973206475547338565747873957792505049040674049739997029103036022558976065519295429084792594300833251791889413523162619123908446394537137062929816269375764406271551682880449768607454159631703574415064166560463219120371572587615589706656672887164393986677803417344080547657609664721963720345752875983851960086043028636826960530415387057823360408247382503318502185934991036814114077080930555995514970001890614872586198880295875012250525334075792563558599517236378921024686818748015068134702153266531218103538569446072698399541387379600707950554697877347141006670818465167097679686160118361935433068479736071095019352068510326589647548565061234851276166165453535489227159636244879929425598083114480084117074437751850568634257436685652503155602335387888876802949777755073682985548266389879268362198144988102927808260872291888175172983854976623339002493221867637548725936413268751241121502427163781083696074372946831866459760264221181957227853701758773034773973235570577715010317091634717006736643871793276610730344109871986276816394677137382908382879791244311016167822887641021717567549376896044033493370050403773593007606342596092391875483319082056258951814412911915841299279219678074197198184408959314240012733518540895989825591967459642468387798994591647822538387301736873614976369113089058224108440376343478390676928671751776250523317052616799442631822625217814961754258178290089367350831327889639016396494838225934659168578117640852738369277396625771859236961709264021167102017910817953989248778003181314628548755588431857862052296911114473337277753264185407211501800641815300676947056507601364845739101385179923772108999978935572937966545066173209047561757180665326362449188983374599039472584599491297436047409541511755585150030285445848733460232908572209447438342194357054305603753378882524521013819371189268464310456569315771686037665722718939366656535517520715199790919776824075514040316879506757513694172304804804215670991189192923410067293314631803007536813743366686425656058636106822954196163777402726311061736722800101917916295511425069739018931559511284326647882510731601632658149032612619411853892400934031952637264486233533118580367063627405972146462792671330544586078752492941052595571432418726143173161475922960088101927263042791287301358434041254655988477485638913578139643869211787353460911545117430784376887253030911269224929892381405652526082747668027587777698559344456807000731600263623913041932170685478051911630579537975439237417040919426245548115067078810142114133954880229969052886580252252548761763933639002462932033605083989514784543803419371114208867969180071351651888338861872302016881606158172440702974564698742383902449206022637628388893614757751455841337708033294185355363783230456730263652902818863027851796992208044457633904509467540700095228294429954158185474710081806902936570732653155320734975601938077831093147323516970708474963138312940131722394178201716130405222453356845443099733685888306713882295285119589584524449286955372622699839019685813587227340892822890445413285074540988572744530461930427020949748341304082783108551271939848169821859609333604167217952798574283135092651766543351677587087095848449592822989546903132726348819901407603191311773552770964583897375334730167556279092932598807850648099086607960575575925492154313881642868080673881180364936807960973983775105761237590250653116052679843515115321043956488795770897692152311478996133095442778397103212884025524164122151280559652365288136779559983369776170613897101524756496353956531234043226459618856412019224035247960469027367443955987082312427030577029639001273191802377013095207859464925044004016839357727682439310450477149960014201324510113994362295593139597553693099758202049550857017535546856995384947842065986171927532030855136448048395157447123064195050394780891986801723705483833325457794620721895714405614043102120330322797678556402448352540781598823202568541178523845753871040977580703026081567290431645450669232805699524696481282100417831831239379214775456949061688804776250684892452786534908187606185997818753774946952308350791016034155056590380488303618965069134857623506472379001834648860197915736928223138624048005935920550489675139785061978025792522056703637467748771705848727299513427063052433745288892682216704330117564272024277522899465750567834509364493931035037254189317660130918980091935036520861345730529575764134959450452635234227517349317826362361846797365955810818445079632590875866818387153573875525479342643239373372237972352509867733563314123603563070886274941207586974846639884310216830088843819333250300982047622706132129541840845849881432287058820378265920964228993254561999453730579883756837921039741027222568938784077042481423852450245841365225198485153462543457611257983144884155879993747128130802234599957819852944799366393061544073818748532802056250237781990752240034094439015437211049054576115766888052308211020362797408550330671152731738669191036011958525878240391047496773544625516375410203448067661715041865924270170787270181290012002570989636382107852780573659790636917966965913202797976575048758441743206650596607612798536742901684164168893937919162170568728161799681242163823144041053375115548941458417519074678300571851968094007823749855153355808102158824274387336340973323953173741185611365337572882523524322870878693475213824258500816218384613449466577177913356563925825047212749021218115009013452925744947657851493915885182499624248731045295414101417944979695722604569613555652617362042857819140527726784099135125530360511129806555463430730973352755056342957887816479095394104243179659308720499032294614063266100928274102351593474801279499917008041752076434297025202679089735569571539246282743814360831931891594943295631893109800450626464064972827008965017924019480523859873795510123523520288008303863920495488171903103176498328150677605469807144452276415569445386946703880875535083158627451732025908920586835084275058912817128901380434147997012242737819747841453644365316124045562661135911927016410790236880717273682645435792358279283968847560231877204616865885473642810434235015088367089642947471491566544764704002997037594356416134786168938546773056726827943417675978917311514570911706754586840434022270057498796882139867473314590470463629829969210567838002811825723612885643010266875245901872572333828938516079059911742625465416635619988229563900471630909409840344376914962268507776391718731273157872023511707948823628514205250657290225835528604341944878543112850592696405293684119085800657028253450091791735705414924292368017030422102650643023928967438273414408849176298108424358607502805275179779024812454191771823644763179010250300001818715814251099946450607335534346468867362847422173911662874704871003929231668618780715203041942421123170127035989872906942077727838207901062297268079868464478299728449774299265694140431215410612614458823755040050973612293746380498062198194297757231146162963303026761499859027542214180218409670491474750774856052886594513297379640961660768945733183784273665304629396668373091375501535066142773349463239512331165420957751853596939691082880546853112106658251742628364675607863613174783633033657502609761696119517433232343667571708314597222648119323973096452170154292126943157372341483086758608860039569455915324697799023975992994164057825938534295813090775355794128503908304497748285665003357527808519146823705075776946484639619085202775993954155626023730815426037867041003890098140639263855306293139080805304834057080681937567642966842691788472039612831222533830368271791941600303667972902015005976574763047779103910447877435746029318112096918960265206425363952307265080581622488074149428142799361712349164192985844279900592883118707550799399030100247330786785063078592656436122913309459219656935921642523990922298953296317245849436576734017405468750218633033415354538223802165236364551091531147896590910016554259523779083685140656260443379346296964143219712224525977360052906365958953470948205634752346761248820600654171936720840329416264242631664496429547750182935262939031036230034654442277315963334047535222633242916756474551343161914236252577651165728999175837870583466204619402596952913799643118818385953940833977264654656087299960336811270328220864264980718216056788497166709586252048334547418267319911157869716882513804683510823870891798336668399273816096351509638811862418076902200917118344902474758463117010352638212386350809302968121067939109374260118942195860018425247743299738225393225081211610096120096066687731061780353042888097816954228253550521616410782867125374089336809579251018246015102717414460893824477048498854970147978683906039238685122871401083909062283431010510591207930249033169902671542524689818349775018556559492978821726317144945885535609129230916557640144333095113442052330016773049305201609000427254837500306316922209015663831877321819877785129831662110787817051430402586045788517204731083024454500534412254451577331398762607978951380607540274427171048377247625346998222658147679953984665530085765171029305441384217990346066953581213663117101098517262196661577685306034208567699580865722360928227396884647677351836819169945164413477420883274280241664637179332324020568434698793211723847811704509062802816234088394732079196623808270108168933956617018593346171136529368962799035096435342110480268720333659160756050825687338022984370515597472251063356486471619103703060843666149809548470043876705083472219247122933933637553320442686633093590386377959638360667202889149459464874759146197979656248757292258118432674321436846267127701995188229184830883447389889204388026954582215899569305770895631223562032228258016829859900180154564116020395464824740227257638033179000102923364447858855497477739788480157672143549517531477169878067107815925472216558765181283894901795744787406988068655817466694450034786948343494552803519953595778801823856496737891348260553263298280098288371439163705396764256260610326411856114657725938025252719894396340826390558627257366104338084765396518729643671111864435505868223633291094105135296383501377910726391565153797164996818623730686839325246377531039853780790272257808428107822271317403666647814262648374170996444704143085572690376622893671461317901605788761753260306424585073881054705399976709458681111039459854929780920690457030817154737122841263475460651817313630499904272431696721029859619192152823727230209514714399483351053356411565779467121106937240930927127735039274505523497824161531848470277180475328773691016661077810105243390107759470837046368394139178657816591334279165160581722856837538321712494062051093720317597892630172447621620507910869497299393172974739262826776757835718455059747646598035071262024039903247093548257495101510169062674448943831161261922170067816744404443762850068204516957975885679208202092874750150636337061602218311981787738453925570620257517620288221132687639202846256248688647869462012064477137342581553263652648616641071868322706510723379960754366387482677706378110829945310053089757368485029142178569951152857326110154641933533119404457658309504625831984420630601447384171189934235809454733420376366300772894684427186852600444055595956711067642605405525986475152789164301308779148116928221151045148023994735796139529869112390734897069804639668479412931152077597233411832881576214908392315564851446901654121951649090173180739096960040986694851231188598739713232848685364888994072958993932630591430741655907030585454347950971821631617400932841967314096185685367550722076786127018842847735251878625353861920449944280318002656213468892237546834005371049737163909601754752991522988271573761155366085891326786758735317369044498612181479676781443219887173141145439138001182750818671283411156745080082699242318613409032723112955744456514206227180639164486180520035849001226809040228524787219302116721910726729828892618694129813427387270876573938514281411876861131481600728991118675704071726789084884259581447610833623395046641206737181749976689979691712451113386901591823204935004899713524753910732469891779207926146991367997287707840817473155162473083861041685311631310337762749927657219879109253675153401278947243054054131885580908998100822409936161985410701194743760625377705908110596758865129423550527734668062254781729029995777434063866199716041917914847670437954256839150526415731607499388625941385263297088261987832936791806277591272278833960382686490088305425942688880073812306388510711511302419359002994788687451057081705116536277682635144266161999823153583017829523394349362156743315262834535698581493108069041619073876638410777564434507000987650592895947692485078755561479630264981060337748613729995061346303507303487061847390003100313624095990779017954660283339420083994723733304762176628216924347049177166138933532701080219963051718109062801863989725929800535392433209408663637259539978854629663848026232932559019079058494105561239004647610872351833808267262694105988796893789769082378738283618296791464971947097014232475051191005964261503180226055047614450439353971022679751403065181955632417605145648145239612302621756662131318482519491286861313756379962198264276804123459641254633397907614281080681896884853640323512079530623868323687040853203055892332452571060338903233876115839147803203228337718446608598452042465370999310167243100658842228488495901030816061850899158790662081030696939549299473877070714781972049000634203185453748346311134112835983702375731632982297335408901479753012310315102481982959259413919914823010654853325676976569865623460461883928960046855421648434925537946385734842380798421507337445663920327756101038664567789454876932793199567684815410714004738556868231011948918261891873373442240570610590226176494534307751949673263989948313172141604156288217416029765408172020902598415334107893042680331673369723970931254222307881639418785312261132927045473759525898132203094782021002596115092189725407047666047452790702594546226357412348111666755684178256641603507554386846654029574486872249535141697183158078388850798582940918727976214794584265567374626839746894991783654931457527618561412529615987912607106486064878243028119457630106514076844413329910036468524022007484197622001666395873271658672503043925094558803931710554608301295636111178048784020697476123463615382727996131244753921267079574518409076575478273141479697290140889025533921188863770622605602087887277390023324767792485433842726235418059020225254828325063887072206731981062948861607774319416393847732549638983651278721853752191398326315669209905086338222281949261116790743490663534514444808443569384859704296743985789163124932963797985084718195511987644671125869754246358272088994238534524613497298480227098502606379832943909074255684204754883902698177026123255865851397321672716846383615550214612484475120866616833096124142615208872954564873963313770589812034657902704483965718888707847713883205330795306868474726379508978249406043483116428910443104460061833199838373767226301902545980577513369636358575049240167229303498394181636494937664039264151482541400701605871319286076809491745640101615054942221043600242757881426616139004058607902647502733162461022593118204839953918328327422655547717928025929844001994592589967882205434890927536622174982062180931828392554407581567897345373772246624230083960497565526348902203550837806864121283259893468637960252896026923481918759198836702122431098756993485670592006423767090591205100896388581125231871852305659860950981584733070035223639809659677912269917204776745106425663263619172938511841169217447543933101817984965500642827654509160223520384099736300157310808153787402593724117365717420290367705696687795608501203537002279494880518573410090660879904352120845774346826498022357844103899617175894249546928945464586194315022099454122134397711048677753458761480305561813478547417802219844256219109538373776410113300637852530818539931297056403558699420840420145976069950444268655195054171359416469014754446862997074123744942316761780855848319945904127399473498224492279501741708227097239629174092723754666581801028972945541817741214375568641199666099061797028812189649798525068375346524403633310674317052789327704132013894401472751443251228527994598137410472358897179184008696760129432732380439192589322745369441997175078533846063680221324114148199947986494519907398547337219556253295506183907272604507301432405088042860251076186107366843012912980451515327598218102505815017979858977094598961263402389719487665844333014995814090913888563829436296796182710572162376397280522467495513962459596653314056792388438526020112272996986705064075993985331952493210415311899662686623758323725515015522682696598744047856879951319195443605590914975315822209438243317296638192724655619525598581248530823007173177590810350717394426906225923513314032694603912116361341716939171304678101471418184553202632536100110368557679278217089225190701115558964959592390238906901258010116843492897491561861574384339862565640230726769571062359456556858831691148966962597872873140801970939139030626974157144593475176044035866758135643215550609707222477031928351792038206111764018781628687871466146073704675843804918634808084231079970465746421650516747805535123404046938338745241400955479407916304078648343330577965355567771943654694297436563823920106305966895670655985971413506242061833594990946719514574743561842802725820549061544062946146004904246439560929730084158872026798391908389535201767122282279037424915963073113533716299020451378664527473726148315920521124545498183498530647527407077344242188484402532955835006712492018310619118120062902197551413713674954262757628810446600026901947299868505987490147528830791348310152892855749093180787087645368522097538499382615910989743106395663235016752978995915130262974498644383306294680998612602151576709715354768800536595616253287716990267724814299594971063191648698395536089904913859334742446207044638433681635359079519500987456082594850576469216010053286706433924878324097631832920812074491100511595757331155563782746308651163968757547571540916601245067713389505519285841225629280242575468175982569255207921281409601519883459540723385198251433892639224128893322024743339972663950600260026120376698328521088912065039960225359659525460835362786408494844029924926051877147425480508334043362927077931749387999070000706428664705506694645526688474217049279176713577589166023850047046676765733218651363572489503019988061274458569790233796915590339468064932540266349984339758071569572389810835560856458669662555708137713807587175786229339681899903603923546650021166510453897290715464489073297360162312119989715065955188370317268772873459008276602424152156654303674812461976209204937173059503408270678237569790158867212550117951413142527406775907278057691542673831443723473856543896831511274738771222764921186395552278082064249768570391607290515858103913167480599858564169475764044804338915381236476308788719738395192233786074973133927778982813310062625314168307479981119103144273440659827216587304701706426454407849737839824395641545121995202150593468801171392321263755584331051101604240928628608648963986067448993143208474488816287235524631465316673927574968702785365340823491867727106260116548375466539076009589120602995002283166975453421725717492823942983450133177665126732004380208887131603924844550571665081354724243319540492253936624847019664942524890446912176934750273387928881871532340877339750471001967620149723436406150425151831154360000929528422749805348992319524515725745707371364446194594908185336077847411587282886793826762040068541103994178634917339723132002237913172199765595961766505443490430955391957929667037166005824765517248747786070700794112849005096603771465760713491589564117120926815925667867168630678740650374559169693302389927487384178499146387411955229212044775235711179798744650576937137725319627476143225584671508305509429018446454006807038922279077071057258413871975813653942778520474495256417799371301695609071482251970075608596101113611197174650112947966152126243856247800157645438282442833963028290861422101959449968996412471784626682263111369385794621315127297553354311116755584133044405844056832628849013585151599338834535770763060126008142464958696455256926563722668802356215275064441238168045914073276678259788419722561187253457325192600008503838601818364215722130019485705688025032949081702163354083987200036094379512709323117824647546926542769769246091099488586775468379442271595672337529789117229009863188314715757998919414687412758829862498331178713942717283133755351769471178094121696461596599210479452098047493637281048530732165393278354547994150529291073609664126457920086087252453242640087417119061936086295667268849482294837300262819285452981170312451620371752358513029701838976931537667223491415203051910056058052295430860343171341274978338138045929228525937542907139025307329078359675913869990549507181805767891413185921974127945370105738823486697869227155591992265486647376633200137103346864951934424003036516933545284634075559945928850412951680600559870057612063515212479511468840420373661393013910111689421450884328333330655239855013496647940250436730451519197334989959790039656863090021920718413997727689877951713756746631170291324647746109636691284493880280376595285368985237541822422157968821879786504709969158631963545564083300141533946241379256547213120490825549461367774138684064413760362477431592485406082045673646481595846394633719908991520724162001633558942215451654496127579179863647301897211242124988548745240569153395947374052312964437513574298420111283872938913938368119468800899357243063838310144273057749993136881631077000446472461635950284575718540963149304552114142739744356758800909210024650664650620382384525200200387404709232754134746310886954928059087485351111956794040094291081706695160517507832711592239153109636625218843919328936127835951570014733690122061419316261234039071085514096752975617967952080266628086793925514238090080753129333001728486948856127692703117588662656777045942803159012050100661373805690688078029708137318985559957222810267486900771818282199411837198624890016868794533738594649092166820547489964496631071610985482925664876490974527834197241113388452501972190979048509381586440412090158511599343019604951080237184955325469142019504934880886401877193705208676943959981908140142885413083794853986137576806673054078944331783056259075807828491552387010656879231039661155333533724008668249080297031197981031873518664605018962594501960913023385545349129137212758545000923406604477716078873410834353794148431849960289189844401214897482008268937286791934105526172642599507676577852516173125257624967090609647094337496716160932023504304196876493885420853673196745566771717635247813043497856636938341632347903792549503608269599477460851856844813160999628618529378071857439936691868444964284315483192486839337198018755183403913606105325033785327161108018007168037556105461322989606653410569402768348409569982640312513501324121704372704100830951642818310843249367680244546695926219884949252384571868780737899745219155835969445912639931856139574294945148616777160199537686401911982983404219630502104078509946710047444371890225901553197030546691321215434802557510687396910304707553736875918323766778020636529242305087342209180079760406407009824988762978679476388970146619934293488612900418143187231363321206120197350363874343105447644150537952912260299253150245030019652651292059514339225994878198912580560197844175024296320868296731439282131594879423655912490598475579245068028906595242422705900134107302233440002077374051332239790931013184038720211115297409694108209536194794690685137177777780137174069848405401290778491061981717768397427383847822400201217011679630740254492874969200053557853078750408146311849558567174262449395040579486607464786389536149276391783588081521228150216172680499219854372526480301344817882705602242513366211720605368291619829970082296827019005493165431084283046763677135744265590209680655335005085967705381925910728134003819425723896295932130387477662525655073447346788000445050199067694051512807921241989835185699873075696360876347501647699795876029529183960867958250510058529064212122831242294123178614672669207534114231595924997548294715865501900591328167258960055673117010245985775376525902267108180130963293284142523472149986273131210917938324595337633360682939862000092117565144406044548870289508538812208178358240177970489815795551333168359449112828486557733948232238671780170675933864687572853872061675840263014238144254799350831353022324490691926852401723677461678081930689437582331624579609258685910275331079582661697531897784915219914023620694256790827978591688242697968580735594315239796315940344662330235180151986934449792096278808461623204059359380062430281859123554465704720503842549088135777278157241214640795014254420644293133987813194337205748538175779049456112063940773535754367673658644437382796913521023376032768397544878024275083089591793867177823439152897148906572648815907668456996996307538180421476236859906973145120632802651810145611209391246169680702072568367932813723885914794496835745869452313752951579384248792013805368947055261270038875859765562910772055703281058014425864820906336578309614835515048556999261544186597837077602356055443485626838730536423543771040254479400995012546930095338626715108294095504848639184350290689267503348841098721580396094790115482687283113497507762482220768105182004217550787028996541653421023755474451097918151251162907239437934267910718281228022933054504161474361414291280327651573153151332457010640706608172908387226905581261696736014439900548352685200919175715254040537505477506674073601382174784571995861439764849925041478268480513329443745862900841679774553702506126549049742840075592971136781797728814692339954117709792220499400360663927490505668051939774048229770869184735020069682229965483961388222831635590377288632747413622329151509192449348821676234491316345890262836926482063679130548742756059557298843236060880696067878776900658638364014207055070706832050696199629359434330256461661497808321196655820036011635355996356028962892369451045399665938123442088115795180799452184787396757065999320163153955787976747558145963669462968109973698304598706381339845641975080187378863558692443653034076352628946546052010256197861987256441149571165417068545562444006384415175248591672176174691864886886821220003994061158290154778340402297528600821746461134797388048309840960988406706242322253362981433695950948808182381807688301565758026050410154737173809849713112943063572690645059345401400739064463380639718693387217878266544676220480858570531901589797117962415812985938982716177240583526062936254557762344387297147021258831351352720880409059339390658535023043014651960464290329971252432691775097338464699324341375904374987220351720293167973778066046685853166404528876154150037620678355216212970919998332034108342732540282125524204929569962598012011540965724458353055959294434796369801574093852273504422268569965983519813696203543300640304952493802273635217243454437661920909195229865692750564326539989694529212754514137362724840351665714065535866067403468322790224166855112881584534665223676550065497186364623002875503301964422059189453411145552584605609207492735669855279533906349642908729782105015582174215788574988691737545564160146679730541246287659656186988295635916849130203872239465544578700442330727828703593613363491835649302843660108212516488425609741743706950248787785022006323375504635923728901708963823667126542134815301882343239396283930524627764417379474338141169215942706627056274679355821450429348703511809398050334681629028380357405954342964945883845209436133517140761368865388060028799246230514185857183426649560905349276108167317626509533451665939673305355801910551591430002272767162645866235946434437158149051135381256459587535879643874768871202525410298926081159952444670492584170222227912476393420739198291082544679893384083865047589206716237019598580382878463993588090863743189675691709067072586278969156748271919088592362053479877285635064132626253398059106999630875458837575880451490978557182000829099723070532137566336068058785978867324179789934719075425702951245268768474914095387069893578938236246213493168659324809663469210667430857176682026641469752569088503567223313389586596203104725560104658399061268594470182004314491989206970403578902388904533779932411613230593776046998698832967828321228198109942162572198899798434149849870746904525821412117842455140061146132648244946363470198860941454306278460465880661402703076944552404686424191901211114296196940340061949149104561553283602193887948948159881742827122936394577174648081276219220551467815071129064417468268516993483127454839220222202027239776018604925953760875486717755475265230042710642876827546801460466699282944602986717377866181293520471356670992399294875472430766234777414542287753657165807900569405921132094063774320005260183953701806045803484287802251115781725012442439558622986634255339322954272002387839684733812379377356064539765332552685886748195084826328863699409657247043305633166075186159730920782252506436468456586723162647980976260835006326089413468932259182529676888437002051716848906083727280324971666838117642365944602650434827085348936466502349630847286047520627574439809824259698073265162544833528528064871420851642949761752589571009161684889245568225524570424795619933823657160601067361723953801338138585448525899141639388088102758675751396614055916223041635799570148123412223528987856890467415722827947292908800262844215232577162048614723964899127351774414121746165960963059282120020535707198470084073824965301513504959559352641230567079304611098383505497837157182450537856016499161589637839445903797679804616655675016450415620497263031647643312030365006171770010545553545972123359564501314911720118216071497573630323054004290742846279245303571691149760169991240666921654754788805518036645874109984912966783231355200067259916678518421743841816356096896761968725349517321150702314282182166686945456941546525749413926342633933605200596803121735452159369650511067291197266718428356799206463180648391120912829441528564002962959054394476040950551270716255379827093397492395919109032684361743431745124012610124441267866425861081176321318339819662947723246622513885351319293495686602418141461596168650853853016184271342540982997246102798039931547005800852337816925031053184641515823691050676170222280540696267604701684334407927977823328293733215093592567693970892589782412580796853389327222719704881641234444088494869384232314124007440443248271298986393698460367807493355070946972170324043955079616397611490971430609396722931196672735973774994393239639555873982378201664089197184674643216119147782952619640669801805027789217966881703496016262253978874501014076091857681730382139570729910593989061848081354037579530463572396624519447660423456326707796878011947438225922063887544302571230665916632713945981971241217946993951506560447833643167960657886522500430718274834686492618999060250740263969091172192436306801794138281613538378211221298442562735771989140929726054288913781195342624208643447879020880792769211055643977392256272613114894199129719540716807397504372457083824006342813445572028176618431467811673893354013174235057095036343039195392250870288834583895820219570174659060007660380053538814225102653504826545254567178782133104322545098632960016223672988164799581870897884572366834721482419027499950070016045069881717606925978443798335001326164568447807913154007498519390816607011412238425358859026972516661666247714338040012288209616633196888140791297055439397466266212976873570761630634037075420003779183650762483311175590636174936963183095552099884250533613406796147083735251402079447722745852040999747107287351371158316623939916873987120683045311596978958106089048381876612202507800675022640252617878829277522099710209841844543910687250433916049340933423952028476427504359064891533792504309025502446157525769364154734806109073627858787669236703017622174411844274047585855563802485028516798651733933788485324401482058683452279410315267196497386163124763714292767340362148713572890131800715925000051000484900931457312327189888667702991846561429576260043367272886662224158081838364890643075348872649352179277616771813046232148437519990194661407550249907512312043519866508084058207459996906878735799357342026861147276862435962301356608409662061476530542180507257542077310848439631560360963179866478601325489906494405580821853481956075732910563771097122221437858150079910470460581630202649588103065888665195809130266114286724254791537010993738380838470140091032788668765630791215644808055884920241052033280260725619197231322910214846452999186386069686812639475861220370171483761592964448052556735504636054644807419175166284565325322537260709848143178745710131860999150361408676500112129744861231435129482025431394496643821086326688587662162197815468984232774378530639898902250010630184907754915913509403216368822730435146243573640479845770317446307643957372005256460734864482031497510255077774938406008656143408271491734931638329040410078163805053545679179186701750511629675337319799969238743144261012192649578137638425485284504568919444583438089534561343205737806707037887541317990304935470438944930344402200131958371453896802243283912992498095069134783792806311607128593899817019217197507932886099133958392714849567952908992955052806964988127345802185996042389811282666964285029024800589306730267360713730835115262482098879506196041130044328952835516647807675549596195929951598324291282656413387015587354018843009065459800413301860130385309861168094733284800891315419457268317013249213719014994714466668661225995638920482214224494557130300780741970738295609478881248427211483574634621926766064708727354048291871850071815344612419060341218115000479950781253873717727657695174235850410770712840557122347402781825043632668653869726492823436201734361135811804421687985150029447347700274648300419982282013134854841271016729435454213822285291064289083344128340065128038722262914009274492540477731794472485916472719499931743329736128541494235934106162041725019029155299881852149694275858049555651001115847750999202677747780803814462632137281261869584131305640337929574662087657259359627569955897759716616068367776852757865314613680305230803496027999191612045382396988758883866262373036580274724119604090225229743123426473523354695455480609772812429439589316817722743427970184989057726321987392757011755742301267853975689781933050396985614032411416340562710286034621048384707144818094877961434904898862004162084976873201081755726702062321846912131182461700282711585097742899709854780954167663059482366177266018922278798388482402450921921393177155014764157906485274749424713048766314260501118070107967875187233715547445284518388379901621005655389942639561063959697768985252787352995036657406096523465830923106981620075413316182709239066778612489801127160912735810088848046888568108051652986264695453657812764124378165143139873753455206531643102255328503381805529295397020428963951227292785678108614967179396446105382255472224011913681738126178392187468249516458356215917609763525172926725315997489691558659342222814148033174511517260246974573216829956438981442696943571743666566679089068704959546032562570765113905238478181655793270538452873478661076637798061751306503757206672073489202158083672226019457128878034122803269911260080370214384785141375008872468124324747088997538697310702155163394984975789740075669195082627410326109030872790437933312642195753423652329065534712640063356637211468463374970623832009186967369954907270698490487677732958483645019867782111026074413095407815713103855743739589803660229658532245135642352513804123933139587136936148909806452660591202183210960350905703088436051673202049048211103564182911647739170070623529073673399051184000436553887594810645281076678544079828432726247352390579783663338671032130673099099432198953827626972212727391172859439608414012601556037668925085981884791247657477421718137764416205607185074010982674523628981993805187267274176024302918880690135305889802359519512443970276851669058533129545850333787728099565872227169230484339626917192527151281163011053461730198557012801227127140636730065609019032930653252009526046992368813721012256285542976090347706961035697024384464496080112276506068320020703738735958897052775270083030524324132119023519172634555057135455670779424261577505233479748793139700144082493011935213433823146827735882096377521055218208905141439574676494408268991787745777998141092413153973079022013210692515955609979832395665132559173207018760495956688117302178464607204052077047785739172981858200812685851391895290581487104593750414211965747577216184819803491038030973482578150061163484113868211245988403708177284271401784671503040289767429062170104965809116044280707435354189352484006410474195804457420554250025041402613257493125509104392483153775734226571706666099508619344811939295523708685371496893163323702740938821211167460567459061075877359724897470538033028383294877914807821255751134397184432485421232426169758786488720467346313099703286799046689174784131554388889146712358135671109583879700975278191160069862946485929000534877413428660007289226248949287574769455787331502492115972430568011960900337771426911906492380891385223281435021939587302813000840107252202839754731813936965713431571285095138291133221419106528742510437741514526150374879497587769344438568567413200548105738775509868483243735308443846039613302928698047137245223181441819116663952798092821622554944943354171565749268259025741247829603282021306434904760848521194008869201900588857471493795117504203238022041615864045724365641819262636635602954304161737240509160138671386566441382512167118895309535135055559316928287187236698561529485617213369330461563305371608479657631345306639523095740053586852513067386101194847502447869863058517506892981933966263214335103605562340829608477122748220256442384223775586837003328576039352509720575919104330072643232237442271351174577476442964219142463366730496234979946958341285658703079986927910562441605200001292339389155532627964414696927626917265725183533462874624951153552757554938827656670676027042120180654611492299889154864419564173726005977076689459371000250426956650181772120709263388935886015024030591024221251733907713171739006210348243659866614725975483750951585136802609115265452169904786253913120485923951505948977599220128103233541979589429710327203302343380431346900991320519743931768999791671085402600396481623042820193279237412827894468418161982165479513708872690453678310551669797816798305263870675057985550068943923371401175457540352126724357516111580468903777607903520462056768163017490011932456819841294133471593902602659998896291617083411828816069327276202738902901035924007179293414803410073959844275690901532232328637944862238678235729070685216595258394662625165769863680684773422839059868527224955224024610937537465113963229994705892157112837961903423393781626499923491933797342972611459814024821836725288071192826066782863826265913872893635770584789700364620707812727382474433929637657936384820719692943175793892120583917626458930505600587124669687989641335475447142329550735688408755512233385837208266254600736893606438849497921040221740871898054235481340580358823659565460374982016006399776770906896553222392047676219004733685668707221620986561338234283014888164507951274284329727286163470860456371314023573126763863476906248539327812923189309006686624006710164556963784614391744897320664136027478925440393350923449353217509099111999542436311096164780529877757885432731763304279629819686020441303604306923612471158434277807487505906279647126135940377440014676973034746999927201893472996899025068404876073414620042472902478572200719248314172010296233622642152067815622043415642450338781206265943663580611974953688079954116455418665829807143233824358916369174366617966893100055574953834877455960600919364371318398443718163951318033495867138300376974973569185781533922866153728367457511905735522752711451861858945187042451152281859936962782919997571016639315944998387773576034760123899651940477573957311737042332265011815464930113202790043627625415347619512747661004624723584168118848710701013199505356243273749229635480554112306385044903708902100265035246902285869114036749735266566876567834179994775692805529816780646940780420792154164918409709806024257630570138112561334643314197556729221991643891728767085667611428641128786176220245111509305566966287391072954547390100672281986814894958049676068166426588485170963182373854694079070914314642357917935697020683450658880308803070108414563308426240035497868992318763698258253392059902842451135528406097859593025190039158854043929812934850916137115682179415054610954716042177085819615135365646788618836045652030583961440281020341689340566065320063939211708390136516126915431722826083382716198990450894153720284490829737233624888899124383915414955091627306054755921515824768830391973449705635881098822175580643844118574378157772378149039930832222368820811197024393887929248493918957550627435009214018137787185093189600293175400909748406376317780164594373611689142845785782007719197080118520122244798937291673636313086542296904190879007703270115684835103977048653528426718637837548269024210547326530217944198703277653883529349879158430130054402756413043530359196972513899215450813737128718400536016214818829157316999883133441546433808392093369211268507975398106499258846926204638015926324172893309826081551988731339987343306742058180642848850393282363683410290121959849060855293803460679602379190862939698724798319912773573953455335522428999800846209450817795644261879846538659635949791552056083559302422228619264555967179043292894136494387087233409553789590976358892629041812792629653674048004389004753378865583333936398203167021058244249671973434521116176360282628590736884927134181921837497568739465147449379753596806183316858334352338441725115257758210120003122680766747031519630097052785664165328908582630470887570041360540122266603519314356554545116324127938483573861688196062876024030266565730028923113796538054901116181620797026684047788256004320296585083608197350275720630207028479198574306428300501919182926373475100516361816905341849171891632414360935854577089073200114994610527999229444756128144997547719337936960061866932743601528185293345740674642040091040208160378799245126170722133450653108355082861590093126403459091208810832882881113707102865412953867154160522830041012048003306845846902425431677945709521434276010169650764677715415577234577514427835248256964533409856105480963221563473632095974354080534915699903564096422598833276911399195912930444591331279146238274890443981354151084644801643113280919608695728816802511927317206233188827030194448380617525137324087453549220586262721365211860675952656276366013023644912568160808364824121174855730117750955410685713314065570925808918475573983643100725270783227869901200718224191268880049450097923314304996172422550884932159739013582314259977018329150915753160566469794467295115984111699198604929863300252912214458734418400106856370780161283929442116553284174109557094324734467282433745772823401000433019171755755771273504440332066442504533830631285940939049420233479081174992130467325579692002826901981257650319042068393584658838865236375894361944895340876086921113722986659451641564685059869452490963649909612957902982940693397377848068686477762350282186776393893623518090574242808316637284019338198306340216693835041165726534046711404621997075080423716727034620867131586865435874306955699778769825245331656113734925562720263293337379754770902364610793879949478865613590411773091274905605970981563864681850196876830691285206522267469628176602327046604120497106381277634114942253558417981305330785802801702466252280954335629871242397547826592581481707846647340338078805059189570124092860118315503311592029755129129855290002915311242978479338145595543172991312987476481797580826472333478141021990994176052374447866618332659249778724403597564232469949772081255116143102617225112709505057912241495654122464974187578812704418148328350651854779607526304719651114123215206902425113340174099853572995374346377039854407308971231190615785213684756899305934583551800970556917317007058196325312375949293169994914396775937742639110709836982121228751181143461673191687466096773370336978470659479254828140288494571313351593347689538967994266428533577677260173491858185919687091094478951120526721708905364549968326490637445030415324081789820901635635188442567986905107658457491493918045973078615481155510201733725833781431255626536691159092398970511021459774691725634766797705095658926097171114018456451287303671971360116404432398389541971049186949623913141918195243963159910128114595542053232456495743856911107132822044290432188038377937873871225351589308891046099562164724052157253949560767445891497740530416277391025603828695203773971383116332758201614569510955357736833444459559844113059570580170236978388764230422737725056364106831711572867805011190836551658580601936436518305239393614485121005811263563999156364962683295051892155389797078606982809971497439577343913094617575249728014814346254706723834743654846204281159603157925414701710106340266604902433807751367396781116584696197903522928551423330150507330466822200179930302886226764588905399757926166969969269146985596994321420479845214488720530093497963745889977491943543933410287979386532817531512005741840763169517432209405314031905704268202585588585694333084646475221558729661782625373959616197341653522074314771291396632865328997646100581796270257701500948939375149320874048774301436325738141173016655179130994659439694970507727737297482509183028463809451901771375486469151624672525055078952076918801571075867050743612237712689387206454369117038108122433622364855475222159041463440203387124408628673586716824022363552803701086919744158650168851205359182902737071219741908870804138390238439314445961402072693456463048864928146521848522614072165902020525508029455847830895629503596220152046289449315636227346480861545202142202032455810794793069946610578721426401965910703969401884703564079628301970836622508241652374219341943812581894669145905839761417400013710806400825901023952115062902165529399083349622974150231560416497038944655697776615817089262701446137024979705680718738888184062455446657664793802271154512394464336949124889773581889207239569218260045156472581158455264077658075010826033557250829665470982746515501658751085650583661523245174942444876853684668304292597752930487472089572055272917652905275051212659816859225787893823503646775232585944918289084840892164640619050003907060626808654153124518743444859135953172197346853397415718767869568258651924927381239026310833896597413275070629857679402815370169727906318388914031472494473965548944080769276688291619365497545115608429886245485765768953585474358119180875104388469008596916898227577592927534679908949669897168253163582667755384790612401054381683448972439968411372826050790240154379756044220226538620334725781781547971563859914245218353844243044457161378704189235476212616005808010410090156185333432241874301919187377299039416606761457739176362910729439869751826125896436576858144656494876819792639005086549621452815589840031225532769098074646541584804421419613817187668818942068554834190565172415271266185075227703544312960132859055330140654702469796441837803547894876036483722889760356269382549947028806759876848100638478007502003963449414695447801295574546567434969642691535899758689610868549655938751150191537535648130308699747988350612283891438228601453196093783243740451413082144795149389482733532912588732401893291455798189117359849221220232806370910768920487330816193733104517973788541324347784120467302304540018895254031180380461517020083194049693658781747150135521921218361250816190949417003463299327619211238508759090236406091881568161699501355318566575626929592064906447281317440342925799208169540558365957881749373548137320927556870745878290338702382230886724619348561174682690221167274999921543859772119964093723219686278822110357781119645539848494239606998268799633640384545313807772842501638004030808064890481870736360852357194608897788016054506842455982320092824384431872567869634878221059124960115003688289210872556328792971283011544981684510939939757275212621361728372687192301703150735976875943753293079814137329753052989449116709390174082135541628533797858063913134726321941540099020018332048423154037935803760911967369015510995335436141689976255040605363641708589353734532871759354323708314021656595278314654928925327008187278730457315502537366065042174067638074635417610591650366628088199167001562585645866312550576167062562105667970975374364268637377285613632285539212715099834207967346359195625094226163903501976781361353038038022909154352688161694494820109874968896744268818951952180269356793547802556242946458884449884760407366063004572133994331370120205751601373230619022288906520459298870726551130588473175702747249628646109654913722123372770983180106342599691288006471452837097997965123544814575430030261451125275759861661020058550274785152138295231711721792483159272801368971587784166691818305287004852671185656319071740810063918507923037837059742524040436335315445609453778093312587887973294264372352395608098213934342603207563826946629704465872455270416909507881720348566776408250917148064324492653794376450879303518677928143603358592987776591221079359880710574575822708272012323203486510113204514862228830525563520723726160746350203804124689718083112257270659645759599580688646567419464947180292317358527802364066656723005718073001806380496726140282225611997334028179485605889809344872825453255881428069732317085241848098302597757630073526192741627448964979988849098930168225035926525581538415844088983534491719202996186056584710187528361199487615491206561784359470815854499329389180965771184160939514660648529339196361850810430250044984753145005605461149917519410894729664438045344643613239322301916777931107265398215533341991875911828008307617799477354452340530585120636861778341573274394794930012308909095103945448410491509188822288976256204944442590615499308195323828239427705820272096617614405916194660967718779804927110885544276974100796308409421901586708330198044875329179842606260871003221835408662878115981417380335189720688771999733669985661119662628989833407642225732849007339851508332649666893128079894347690044841570839273187547911711552739784712955013355940971857948715862687215267453267463863186069472378132627645716169625773706822059279826150343548175488829914468421658047558120864884770699647332420069397016525767532803124269124292781059444331453669030929101926870314293718981430224329954466503741769883905003795549912828300689586158571884830444592702140661480167269954516745959723320289498350743438740711915742192185872562571134433006516714788609156535467070548883262245480930355792611580791600995157253283865203761866843309791784664599769814423140260584628680641322385931451987112987863516357073457724227136241170419460027624424276831914067711206622355406680369938431954675962009134635270348768780246426985209507787903363133026422458438606401259934585358628461300520119506676690331041057305506021621768356499350945470114940564713398671505118271434590849966342558604953670961150629557416439037036927328565383808405830893459634800286437366894029648803242694115993242388659052804176534990527475276523877175944159462822285676286585535955851627704077868764414835471442866783938400081610901626786078094045220692861225358545581180565981754201330144942934697301052975524855664563495152714718355690843289602749023026002959503808973551510964570124237874700044384900110725898756180974305810781712532439740108898720463834196793844616945665548610021458372473823601837782706346096578727165887082318669108276937394305569655182584204866546056572267786330410842073147991036275528293581391115689525603594669786526323539022613301984812300479133392109722608381098070125073724205071712685889878665459388252257517029960559178265577537685810591631910938799909971519849173347737343782440074315299684003484779862284148989170681714191686901651557538619346889505961812631716027060792681815909424586700524525886184708076818133616363739764620342968459746014400032158112325603668133842888843706117337005891904534514432513585827685158297557162678590723995813248804044542677644922220891497505320086140639709799978742298365025318472567326715654093263233756297536368569473821356336449617320550679965531403140031907136243778232322717180947433050152502998685679528879717410131967622311586905815603389535754372988014390959519322388697934083707667438800481118263997732566967347814036508103968419270614694538006849352521020051585129916546165981325080848667348634538166949752319412480531615550009730894206651467682464711579553131364015354876440623599705821997524941019504315593349683205886671534492235736147076828909949955230400918407850813517306366498944700489883197190775365081331411603913387521084344764435841965817918682476418351253200698328102665982688631150659210289644320112148944424760477653870009295731142822299713148851824644862024562701560119716607412533205978245553206201861362179426566013584623955712487875139702908001699074054298349409422499154478493828531995331764261065370453426900328375644133146608749549534147813640064904091610329318334709144069640164977198307087744911117841586189334319448973192426382876072802326048991231361711504418230047991115692858918044935124728275755158213878937432823199578063712775627758755254850490863214276824749137006512478019672139350566910485245356513996373185608173467757035193873563232079329948868773851081727544126658415577534051095270883108406531627165415040132501336049954389886746118206287333825315481596432660574546796080069108753266361661032063392179957769769327296132012411663860991387177633883101814669383563973936775088957437818373363800669478422074971324028275530831107716992388000015232264065336127444943426117830765235507347136867887994161106612055010403519959393803771932624033616580891664365820083761545891621105882442562763756980263881337984930241178907000603355897062556902066792192283212977009249478892900783221198514642925550347152723011907973754691849537813832146414059505068301444705906390646463748966729862076042869520591010760769533524268738955581587775032188481019580118585968051414143443860778590830300326471921184181902092716333300231261099278257636399027763405887633607109991702725415443109422837213579901097782716786908721129505916034119621332864455512542439149410075256004633091793872455973157592282356119093163651237162476100199661685769005969462422912437679648233846543579000899615418160810156804163114886572804090619280355763831179218710644600756152869733055128830253313026437912354118109632791880006884620270336237983364410971049840226870976039483448210139625572821605431195373995521006862428818314307836951736804955337603031013337847452729001627636566263377233182206929347166045401221949858410569976221285694345361195460855723553485257752589464466386582379037658676464440888739834984863406465168473155765369176275396937183504849576342639073314371014778294401264976171981148195887027716610840197898423215774066657757934655672230187616130628924771402173765300844389996087785249564273616910751178218498842434113063161987280104985522431485291131847623086168254735898133769382315948167641729952712852322486257815766815425353160370208776025216821983071022489568873353178247052933058300622358523011662831176988484811032801203190391598399000495022613858854229825584759005066380112991234452309945499671518487696219951207880455882743714214433294672641834236263048577864991258603483417579636102512193745152035148865300656285666199264249825979812177360164277144535483897232235938752185149743582800408410826264235723206783954733914858352213158241695779818138185498809087518542944746051838677899116193449800139376457601038896159023357794896774736007296245115637912332377848591591599759411291206867395147752092964954780832270958004108491106814368673814146750121839094275002682259542748696394150127566602262764403160499839221114635245058824479123348671187332187207926857256998606923284195359655875677076522570658617578653563357901215708633431454092205671177405128708690737801140168026873603652325881133730378225008187989142696169514868534073635473249692364316568508751016750795491955227263410490034022937010392253499294461927658552385504912063986646489645244347120812951742052388729294416706217509068893816372912181470738010959739086630748842162688830603275073015545501433000470676168638100125852474913455171560819944078954761268518753792620081769988722169482097207129680275183140540752732060326717697955590607599912986083826986906106434932032914790128067535248267181109601365298866471903406951905621477756404476388518772465335773359597789884147743122340147752077805608928804084159824609985218771310980108910267534894303609934358709221309212782061227869336931173415587540514006319680902328259966832809654312898061437607751148138411045274545813423011981871923650258114252514353452031575950939859618279467999671701123260987041409472882776116425413967524653555700152933030060864943449983935797160959415511535511287892991432800697269440119158915497759686720816997464798264205834072672033371679074767632995081153811748237751829418698592516933349449750905540025291801622605974477619022026911274968512264255922113080038777317167917808537894107805554209325079558223920197025279659338702876315840376543678475142692420379439562530870664256479923364604573024080041046601218415239975439525257770429878690799719585541974904069579141444825666102852747744800585369713650994727103832254715896407869178133737715535068707443744679742700841725419099710422445202768619500629471314355743350202351635607609736972689399948564762145635386218791764458244393468101074968452271111847889672008589010245474120352926411065170488943925986298013993109570093068564167714162133238812968864048065570085110235644968149539908422027382193471007935869321620393487301106110683855933867749859269882345750664540571252057114011149927866339788738196267737301549916259363877774595876393376356096473219564290547839327119366413737237490502151449673342325414522406174473092535049866543150384284785913542410342332982919273831708302183342873883192697700911434068251503083816515287403729137170644970697424465368010348854346424256846482417490746783148963675960312458662455406101351546806314515163650193188800774632669586885190167007362115524330849551572538797300661597644306377538575231406012030537254001373402272357677196386878564396864110592285990503884424552284761134116431976932690812931066303552497571786154186872054583702461596512451242788655535192385454462142864416218063461159697995865045992153741023988790895393876061009792547399233494532689794399079145235601892192641894007251324276675869780759288521698020604916734800153531231346168958513752961158010302460742420716854776417626094309501125562616538727246849114001612133577844950580903928676978697003448429608551686670831725575306992809450399820152620048562266659833382933745511246867109612757629494606163931470675775051512778141969884321153507785915576617780435718368813279535109715261299511711271774795711917770878799413739063498509532423359950647540472564210624580112712397045487831051616777953559801223173358597007290992467114973433870173139667018064204071474446645854566261147901934443906307925688109445826142800106016517959000446286237005334994782039340219690599372420022273505780672526688602436852090107069932915829674772492714631442547893003773622084463981658882159032073396060388530781252407892269289798769276128957127321322302012270728566440215981937090462591061679547838493362630550671252671332760994059280290122945604490872475494960621972427981193967278733076530050275587272674857613042412999490813912401499399756892629897127487673588639400050673129754015459004786926921563129459682511082211782046053063228039735942529115994991429804651384081251682343259791880967980210184467901117174336758804121803341797743382524906608797168873435109074382506509636441619131021162683612700704997195947019640534773639491911563729582394016464753666366083491061764735569377399367186945804695825206125386966911296258473401786224214269215951532316839350464042082243891073830134767769403944908895855561728612283135044041916013952537086946996108089330653889830351964666202207533724612340700287840353181425863319605706845683175276615973925384720689822123638844517623593642803542386057096970196727304853619413688192233588042132350807528967681299348864582307014883245850313247129950879671114138847168837772895375991206730057930787137985634661607924768755372575868752785548033506292200682650403823218125932831176326806124883751712588644933276666155728617502400512083224512129534411828151913470714569806440890346092544104990502473877564433308990340580695640161540788720156118320187683503216212103847735737733748427520787521956344003945354651191682229791462935368481911002182090835643046799318423670472183960957743117327946779424319097437582989618752063897557353717285738233484538775287245803400011559468114299635383725269885865571120676765401584807596695487237191707638022001908416458141739272611985836338813572715260587645618994283502485902645239501146604402409389003743583921904764255536711089500404586830554884874419659233878003369418346675562343939193519119455849084007708959579700424942896833065845329853660031884691235382819673503027370855646174023516178500208287686079898497652598962891162024718667785762571302702365835339954655658305161716349393433118467133920335826096370334665364065032909102924083231100931538883290963908034172074524867489072243456647678148596927658113994433110529985498591439943519371665742111543805938891614232744885242347424590567477486222702085669571797678650444918181799399289563753947462103469500670172865536889070569364957922781975862825524417396444804300659087308071942870595463466256455426804026836073410993572616495848391159541927189582907005779804844963313285691938020264038862365585830168449546101819445624275158844778259881551455935608346146542532659035365192210951824645027105299183134402985218768228910951731359564895274421779043081338440958829021971025533085465363495247107909938733228788697806137139062722365031840961673097677446538683478371222548031087549377433463016977401441354513235279801619036787254989088318892179468305470931943681420858927591025052717916954919670975416221183471828384940212411054938404021115453672339155795432900856998127705627062194464094506729520311599908816423217652621504774293158278712492862664492537512081871691763427149367230208927848208502998830169774898156471233412469635411363524968846422887974222103696297792318739921656542040573643184011400831002522822658326323553942142278399532827973675430000585430800624126510971273823844125391756993859432571979019642884801234862336520433269933711234646692689505525845114573061675503210498716338068951071486247534340109476484893416505260885880809303419971986169666472003224874271185091774501381608560768079302780598760646403197193106853510043327727579479725185426630718711436540759711093399643188743942863407085345247628327068449112567079582203310135122744039856454427748087943885715558913046468586336058362877736838240562499019845023333859457479625008403910824205020435198211963573408439734996688802346981062153695705193999718561648299564350340173548861077656035671935404689858426583515702208292109110479734671572874365926714507701523763971514536983866925126743272966522856656624380004299333401040327451654657631818224881128665590733031274899640961756515894825876233625717946404675925209933147242595138099735815733533599870439591703067685429269269500705710236267248556249386552655038218357130580176777865598188411501448227225670153286940412659899149733808873966314842666116540089190514511086400745663520890223537566871674599406048159364919287030559109368887940075846218192493399143310568532059095132299806223143983375967415223479175103285889996597838367413877514536002227502372969239612744170605705430271079408008148592463292342402405642763033902022884225645388889763250690630702421307821923606420268047113033739230184746697675744173069133734748438188963976828728744639525621118319929665413775900614802868673748882792966585214697920471580614891206604496417685078266127077412328716726633501103467416713771183320300066417204514337116401319797438941019311409508767629322370060428420688716067746354733183855618074361024053357131561413215884010329927712184664825179093541089263678245996136032779595806305898360203348185941200946978709593791157590697847489789733959517972208622064430366033423836445807359968062462120580775905876980468266457794012255027952596253631588529165573211308184189402642857752275390480983234681379497480911485354529867583951858737609470570522036003532203833503105605478085165593120449208302226860420851558100658844092811130005996655100334612705830689215950902394478876173811689012133359482383873521889117410041261913344741829976798246975078261080108543799318879063007220919398440050189609813705456750294233078313072832522801120638443019323724023916379305574801040680353485947505730650600415926366803505888786112108982442218560418267485740778013481783384883203233293775005563214063662430598726462782082414973116380852493145458983474817895831654057508858082812301007344989953895349617667021509085951750852678355764042392789931044294743039915482145742677683460923771579448693579266787047993716206859380567067188332423985427747203100423825333538016975858523007190498905203909908000867621819847765875791221126126220612362831773989700859015769139992793040688980416263877762010560868941724037909685170318593956641093187840370582218393134517161673473636595390976599302879990945220105880328611687639035725568564432205430148987580635254327040196368167275111239567349009338205613961141445768184122483573621762408519442740322520638340197027730922307862208725972491175156313164298742646470511810745255940627447424634062007172227564779163589540266914088325897718094518023132546398346573386826311407906243566721802445593902956748590775335199567336018303985488774049886011793791846049551188935490119917808657620076666146679549768789946557369133381053068510060136002336245212101683545928429876325795554291374312724168127247096700325869537598437976022755610303109638229019788554660301783698076754781827469666234969635803967003904453521528786605863159131344877134951760974230235080757375738891461605858756999028029232100564334217027596351598172810975495710207973213058411721510222587161965411127984697598958631518807633457154659933457687788513229123687106510986924705935508279549454251880576093472684531098098948721853748220272027111739077073305555504142385972280848825492330010497574188315277755495509987540359944799021038351123457859409025722330013170054395502915753154469458722724416262486772183149394633043578694183419926512687684572626678314512998695870308449139351628049463987699524431169667863943739966583315979464013657952908494035934539203271416675702063645418736457175411328250545377815131328987115078944235041193339218924474855889772985062498659579372100018583963809040826040993885037085345429045710432046158404769302774769277947725933664597673986944081122830384281990112463274473136148799042919376198556922317281506604547388184082576015866503258061390683755219061706541154808632636218059420809196061860144281663492931341262614926333224983783865194785654929978524626362603159790522521652006689777680227849363526813166441333774595205507545696401499018198593858910437577185806364440258020861933031537294171792172468585622548303690213769968249351528570111740683914192187446230603003605108794488633298323528407636638385689239396852603744824584652008785113148652724464987565813925725801881631597920507729340725406706301611293705500172225314672115555853861492851170909884058419923720981481582139368594334509977975899259970533443647316979067126982209443384479038416805504448503306101628258229424908637285774383286750121052970469423474827855088158049974975849221353658019561422816524647623222124675379809738299011217394897310894940821114958270537001865760193226093426244310921206529252171486171357450787783933298729588961179889300078304867487388008606543937931020921221081996905075767695433521437143632509588077191594529228174035366547111844725004561977147609577985426949112371570516543422164157281327163109636128888922619244974440378224904552613253595343807502427041126706640174960302767289809283504757960965423276523871374381256206921445884165239326626917461699325333704697328518716906668414348911164117380253113355684215920444095467018597485638441813622864305773299855036789286037948082339062425354950806252930875050479887491366065639104056369471618769102364122383387175557068160639822927728664188673372106108557276869607701869214092870906136249937999261798170034042101655429385041646203326459611701623519175152890154675616838236529218773239420867737327023762481528275527103744190019049511697091440505604557091550286453630213650450174922498819124488702293511409237886421561408169350732191907716637488871796120349338750716622183264120375784526163608641199708589682946951210492775050240623832344128112365780270637092948418459621213873946197492184903214871764132637418169582014784529539416678564855050753650434485513456568211172160227530551782763143181925888966965028605027477639698539773262615012645925429733298756965608844316825586298312286052262062366988714778470813818065722053344706320653171788314839062958329312424714785659601888094726477464864953804116140889115180515950482056881413608864986672993446204702461440648241521208052421568509077227112648214039496005231766288723723846089991888261115135400916703044936907052692485859202553495135113359205979138638958143429490040417974898063959121306442081330237956719499619492285386813043517089146879940278962052266404387326306927670408737938896346338189777892996502395341452714919274120120420517402813916375240561412428526472399645848960931910295112113174848841183931939592783158870880245639826893505572254047018104256680242438305025174934937061994994859404249823102980425364303436001483637411158363852143031019449627942853781349704924501085692935028328262210136204577286894409275315204262786613088760070272569777790784287766342668808154799128181762956743100172961623337979646573741011791222420951537834977925509663056729333352623278470624342575375944319172679053815155050946717303276871711565252849090861855168638453781792624764536956373794890266471221112139661859554527066816264151431072200622229003979008486096930122325554946493548211866212236558324951055313238567545025755713510797979460998517179152233422384097368807878911912527054844723448384576793844902768892359062136501280805241516436103849619417789599872496715835466929033922836851954781373778855582594148131664503223396354923235804648907941297175103620671358621763048165214763643941223204083182643292333616053605240020902071220089008262728986951643277118358490311792362261226550625608204607592367233690872764546939535207769122318819292330625546155409064603068097488083518598853494897635686743525768203632633846529001586246505439924147560512434527006990392230840409924593302407077994435929794804155551775060215612615850290349238731890184682880528489988433459479788345961333323132203421659740453799122580594149559294059322331015005746762905244682061669157467203040538075235759222479894979240574275913061296738116587254456305531898020869928859900056161496146556672528576030993865374892436194805660170106887828586908117751235970346387497545413993151472513790614988904559658584093008460069836615826300454227553164545875768376734463030995723929468704277765859649495287465011045535366069099619126702309411353180282299644452664169962184495715777830226186573881653885602816492789708683656800414881228416687310631139895841773954485429430799100933023362320617752008160589382555985510124913095704072338449466122115926883802636739341685051926607204159781326925740595354712796479514416096084211807332851986286271290140079925042737100676291125824943829143288083000139383866810131655215485594419873790627366204733306709418295062565916905282527910781622948607292744461003305375603368861847989617519524616736016973247070591492533530314819479662732819916215639281830266570065146629728218165810994717269350297686054870732368454111087082954658597528812064573112849643704313091055651142637204711787162472352215862049260472077162604077609506521335664132684538047012125061282593258144807749716041443061082207213928998457194395992143521880179712797909235487877843311146446241243791207384221955429805345321512674409706952415434927515068835910358378340467397771025606476285543390668903496738809182963733422785855542595944477903809903698320716812910973346910747335686074307927273358199287057859943785737455800368436335505967400419911625047229932557743536193038994981239833359434960902328416824523003910226104943536599277702816065741794155402342272279566500959418579104711067398151902813951614911152923288322176069837206586610853336194312457019709483955073473931613375399412551213288071774957572388349841152751299772855551513915764668158601720924632440173393498013126346594863068039190587339013904147484514052082750062432164140449404091892663502220922334055521984260236036315460125321724897595584777985981739913295383494857843589655747194347714606536368649441914146078721154988548186985285559112621406880395451071938148097083310748556391703235662581358994775921125552288725739703856881799834837849447260415455489406177558132903238344909462563508517839857903663519694695083202356363817938461115106800570960167947647577255972063319344192327165903393773991778059079244713082364111170848292620515844506558361633522170795345683457061795367981066243302801056526237715045990770945389531415480589355063182497130514252582946701818441656829968188645161355565489182320009772239785696309190141124616462670477724487222455304802781418187605065422864923284308916717813047328498120589874391150071219510741320975789461536188008340161633088229317009940037136868601756355125856792010312274981883467421232275814590032109746427567818178194920426889592613478042199837648035101131833211253885412621466593303887103985528054521773407422227105547185689872645088404773012698323993392261445370950252386152385983526452010971342876403995004386493575323448784348131813183077707347065224891182729088351031078942961958603783245507554176299696398102878503806067227236327586091671921174594724803043533692621725132986542358665970369087457726955627989152174127071602745854596113645371104881097603976208271538566395569485238678882462115636222544806625149321029127526856442141765215208081676909404420635516081399411371839917035202916959244770972550725998682701203908299802822945175999758257430930645774643408175313755550281316580566518793473468695185289847419026097486851389153152913084580259723369989703642068779626169466705405935714419145695146669310593999801300497007906710697306302627759638270103876078499130107969675470060477238901429066388504374896325156969818938343006469253635341092648617941401022523861529884620714739389030879989705345666869401725826398743160345054443953097368160574412960221481692407623155498635602763559036397948876182729656101355433194195868110714848984121197819164681531366122586904147116385880301450235006186131388540273975248179531273468811431357479608436721257729037982251216048109215494973409050016759941723010486509344286109482564688843448528456207269303528119301311585394982353725425938756405395748288594556105762920159661297242938165885427238635805578715802525556593627004613353062649123707467545346600393966440510387740094469385116110542399164312073058716248676030110790515154050770440724671883645512812569701595112038954355277365773517657268099719064840563293961319914605256348380289192344240125359541275366501243348477028791766950101858400221451269276370323865808194343865778137844745783635546510571111474027823782054495660788277312268734398636497125315236472613824513882762913442461627146887056822977417910980659172131667728348576205270595546598940999012013534737417735802491985444179079743872828860546721639294137502243065080830102944135419237184304096415291373646439395432579218803040493357730210282013861676266859987216475774322346573303833888966236287629841281952614328548507987919527797234077875621846801979195598041615897058406484517012794165301734544237709696154826027132684594747331802189215490444521638489134051709768704959202949320440141951907532691875078471944004183837035592381815002435952585283264855599698233088728505627876903215621237469598329855104798271615454722830172000881192598922526163796395716667834669904490956752181832957417658529106896186274406488651935085246021899489342046050691575761005136515045015630523575980769119743220807369566951982803534355713730833492973753325643362952563992227878020078440269309462649944650002284500941153846534208529046187964661217866775704521170059754936891637591723028054411750286219919487250613513800794286584603061179059331814633351519929595096491193327568195152567561955087553304019935498013462718501035262444348001801120955308946661467769056256469892881926081217162984112634921405260622530416594997537194874597867711083478042955189535189282493471679434259247582312439592168528218117825297982981440339049478278771783026393761439107116893165994685118643089142110686084690954590678570851100047045824953582608494717268150755405727524951382110816145808397910531917409703508657490903255874502107926572587065654934025544240651910497610979454323334519165933393832321236060285106391463127946419319858060634306789447903551756615934029408659146618723281900449683237191845158017763940660961251441006939843579988957532964959738012068041646169878732636205177955731278491397107065654425500243476285633802782110327175387301209741646099477065310510822988823824771899405552033810769365533104949956854131837890436088131311688731307851676523758623685277867300974664175277011387942932922896092108616388108960468223857884887195827498426578559642832004408064250975488508865564429842888708732793915286319353929221694281772787650725028718095837742285857309762721391825040949178581523960612342536228427815507479802411498826511520211936264297426144591199269497803048436966549497840187288727226604798986856146956547228284224684733573719071096988805310334866663645738843781453224251437953217011051835798017043539560326954497262579648643966620814386077839744208893013939238911095726320553652022979949945410067602159561795512858455993858342511248601763569252149007953550956094359217037243194378704394325821856349064716982383234515289969140792019175515028926044725668406926364100244776654705939190453123044852210278529967209133395835463373397798767546688735641511297552670108209303111624531863774406721223784203873135859116606963519426473062739770108079000484043873586355869760236861975105622264322938647362556765692719240208403536569513903120284125554718277851254892427359272125447710479896024195372601707223904933758288179793201664622165650510032446262888042852828229024751415044333254186760269170860247598151341686214769838219120196845052222134124397006960029920800534122264463471528553727052150565206468860606954594683690143723983631888890717573013125307325814319746984242183689996687794797714187041235268318602662250409824285940504553016428688260775855011852789998081155172906868132007771629222537404258724797124868510854607045789727660021016680250953228192467197438066423405889843310349219561129704102079457203046110215965757937010907107250948920785764114824869720197094713030362969587329352697728165743642969510328879552314480086767806690107729267011773142330469200055547716353677855285010982260175709010772428843126057372170977447917428806025331911792892028632778778344138792424727028219577365239555451616138978785754256329824563727065291380955072045579410114537202300895990036335686445528491044353727428424005119089367647393959674754616877581151271379675884407304827983179165437466440373304411985966247161017156025601367785939611820170673017325778093179344232162471041278700246587234736042202972392288940709520019002761919541203540309248014684721533326117682090993719138356944906111031423856790040283924705745407056396313574309224201528080805533097228960112875472347520868309347499150919169571795325187853280019770920340362494378660064079896900656663940119340027740805716938319868396068352961023183805279966120637958763940054379520285925922958074473794518118361746086421625295948278167531817629321821357238920505109947317735942799066853173448085746481056394970126662985800169515847335344516104915479156264956547916390146379959472501091755465451309975589686705012840741498748392179747068008040436102912404420755845749680342744767573195719570724008135490337925878472731977055308984823688678488823251786715384909984881320314687679753847653191389216990984417023767655575753642520980553572273227830471097722823917178400263840951953322244343756215546952255170558199509555201952302686972790363878041932039478941424781254442767633811062090735577694668265121588921150402154210946018192704510798695148909387731403737437320054561179691674643087471433962709295875200464270503256676741404150933517480380182442929753256611979661573873244351924392088095600986042921425385835332953862472773426902551769706804131842716467460323642067148178888020201701068847998491344798916111532485010871235441519130626968914637235272361216313558507133383013408119644743885238751672949524076549270616963203442462064393874228192291879882541685670623071998259890486426967274402200397263870182998504428587125992757157815564594057005714143176427649481074032323033543591114040780468334496169328919017736054377377123972081717596310578580357957443115327828313410201834895123458439638802632099650330427746363426888304266921600629122985263295783503821435316463192181634758477631856659482160182086236396085183255224070025485831556884279426722856217779202796735959604972644210780723102656420694297868695896608300604287500491926904360708968865806138567187681191168427950171293597454505016670408604080367043358189644883737765257886729756138645644595723090039012487185399001660052479837710470269083906398648046662899016109987920803530264352167429907201662103304705568260972911613698145252582353208375676886151913885224952734443813516352404381696715569434403075818202072680285787214070300767693268189596840179950846071593627446117069788515489231829713020169740398991256442174886484064066995268704676720323257345754309047510368493570666367720352330045957693460408710272189259829065990318444108791512303938295946759962619615398473407573571477271793852019220535984633989106975261625646681886646232367340865660182752491139113697963265412439327961049447354148810859416996661391996057397103832823775199598470518059513354988913079515573464384722954024489002728350165701516166767324785279037948465850200849527395910004864242933971699561438758967989677361436804863221278440507851476969787404036232676464948279637837094377530785314679115075842139142801825802109799415995778014894679654060334411429870695541719883795620432607037891990910124731935704622624300127065168904170540346507573993505890651942611552157691116436730807555635751016833934994906836721896503868733717654254686671805231601867958920087090868746984588532706843536183430493663349607034595879001756332313070787862714017747358031137238587526106190778481560068775217048806074129768307622640112470816355479709044973140067057144156346889875091557564331156093180753560283566178183473170165990888174347654598918542725957589129815602303844987145377672840390635584930764080522989376010940399393723676423226940357528911786473087027119401681523054696861261315790016409192233357934406770334022419087925426725709213312818461313369824268697699562568646953603347552928568804073017843156229934398627438408218914944274339329403671355598820567518158912544674008746289662193953860250889783881611897193884661033576012623281601819160001408364637825597399365934715819123039769961854085057050142687549499364422429123793415583555707092416433127711923327048075264885455416988596834075979881023724867015984023999835800717909552046396172592897869734084223077544226811191667361308040658865287512813234145735960516419960697660640071314130679996190713009549433177930817012575385696856903649420150224553847764197710983376988699548489608356944219512935093384031403902696802888578393534776980361769005568165512812230064565470044001710938021694681798305081712922564354182453232166495390570574005018977810492487003734964771864128802996559864144948382517725609626714069627836199601955900231016874803808510663348722763844065016983057469767322348611655718741630949744785585053467185385497979771993360143881008518806655323568380117846247430984737101150628233210955907911891658454096933859945343481506247070773374297616809204167088670937341909796668386756967942242335993528767392039890697725195265675407211843199471137008098888013585581576681138617697805384153493363028810506680657029135691381418769576530373101246080682073343133236810831039273335977043576575767280559604221773025219369165790282361990953450029792029094452830979561119331328917770779837546174527703318424192842472037787580292507368494553291842792683398175824189286365428778956647679349846759373817402212972849712106464489876865033620721891172572645581145612467575059864894271957747542424729668580275014227987730364071956803108103152975014444279553259841369118093725021056143175310552045066485920993403277153989412754909121122148656233484613635012284915175048176937026319511400874447809566390991506271158814644930131330219065848419465720073915680427037188599906063829390114082791996406559476143094703320582519305476698583119253603871976957479901373521878327694020926890636264072844766603099066087268652091390702265458466897269039546775748658557826542785366815893293075749028265899516542764530385642405952617382386577955506914615791547806838816523612181492782656176027042891652490550579092300250851086308098565421228203582943251797992354224004862955894113368486926905173816699453258824442852474343902609509646997679554186575545406625449759661380185310218332765094644045883372743932544271132347809247696576610817550527422276003111820754456911841241123267579175456649139404809335706998177741420503070443664447406618030378798179384549478254953806807809910629519804395827182461239341283166645473866667657716632547659319659229116013483478820989846376406352354772250900122468203410057897721073022801177579046280265879257014621492957612809523432013712426408950910726525305025984180221776528323951936483402588511133586848521343566739094706137792275838844736079680248376418353907532927780417073969747077254350657616853000028762691979190948733130333315276645961806136441120017811320940583003750283602284100885953782849607663236799906566264772070271909908435040392665561358747359594859153730035449989111551162926699984140945149880670051880634775339025675991175951204603671520422959765296020204441652307644916465040499589681026608042818076156475947479435365054296305192841435400674440629817927970146410548347275178790396862674129897520312989167657893562645350665040536258588319875346246803500146517185644422363368684685410899937603145659061503127734938001639957443385573945674833223759960665715534831347456139073754896209557940997715700188135290765584051545091110163957765970249746333051678543503301746731915080079997406146245516913605777806309546771478306057436762194178334611693786419066229656942575774189006216451054932511966759601044785258530852676492141497545785656080286598098404528270353077653632964765620710039474889526779137094690063153126282767020296050319710951720092356068514257960497047896428564635326438301060737623305333955229020668128289433795999337330821211687643860429720645424943761693452851500528472613985169659940111952435470433649235892389679740467466289469604878622761108236435015140553685253109340140701126834928680597256590208448926824225994818454560233553273216511846091247242723965004931760747937191192764697684544259756318880011242913459328687387468067224198381747845266951843942076078849089346408080408528476945434078207940616178529564198615361542500524884920135507365574036607496366803774728748181028225523816732593876676804910209627231284436624547111401274720164979798384527728952368425917467477041994981803168782640757606996738737077474226510606022825478944089283278511201010163501300702528965860185304465400558154001452655800388823920926277264535557070152391047495103511585340250795225557797746955370679400623918447438779997752239568560953682322025384015298807259193087019539666288240738346772935601531526955792404720479831353230782117680738750689657696884587202402639764240222671003323589900909497969565061263518319268206335959943636427711026323990662230136647855484291517912167937256004675761067114980532307249168170225960652548011852376809100038951964034898529351352344464221602390389219778324975084245259720224101075639539804672570527970148220851268482276031736600997435375194860447282435735464251563588193237156200124362804543174856042792953826699409782562648588390166861806272864836884269611000963947975315238496526611095722964120241557808770492888959474177391903722045288238376637922356089178572809255475317745042468630995498717245568188763460111344049001205658767313910099651166550739178632935136252177994284232286110625630519499442161984472029568167053576715421821429178956286747777746140794691225207485800754586880261481783538706687735984625523272208379427014306976724312752895885769911378348532419983001216057778590691855233806630804122538052596949405376381454832639447995934725993434629699754733010735650496924593844943651525734638813014267538332590348896967640011716299546775095755677585119363605454818601252512998199663174656019606132563004027171675684380770001152734917906958670582096021057779214554664057424262429661061478071232200172098758403881924602946406993601730814665473642573293536459412860011837826662399219332599063165147547183171725386703939132164178945100329300436135896514188887189107540862609426816592738611642244822316418000913098501576554297888814499437243196461865823665408040743551272938051042718294515610460680512943086227682661644465776745552462037723877881072255308182271892968227878293624013973451451244269289985119522867230359932965419197580790139346217847241755215645792577531917106037880456794684989043779548686304205265840262913881179251062044982426883322639472922688113695857804314506514511065355495022207860818350821980784879946384989038681789574557317317490010889600289690380572542138833643470952741380949088640371369038912473775630854689909820950485054620150331494001993065879493216943243837514987693146449894469550037824836397603757757124473676700477185178966215301455515087264558165646480969183233658743053433591395388752088861157491796632080463194871882091026679954030898650961283913300220717154883861727413731176151008601618322788855595232456144344238622568093842975959587809017753686531571282122804846024072113563606630998443413487139167220083264103277090802543799931497298008783311685503278091672438608403769974204136541392379428486205159438006168438024690811624982116057463468823939806184349263934853002504451786878338651543030223054251531382208139096751858951749370886673136706176882589329175099945001075626711161323536949107800841741259686965555962621109992361676331828921094788290485367960141288628349583058714826471011737798480563801062634577048333460371864934852704126364959589577916233357448234774935865250289018451544722956354006779242343038840485565128243923932090195307294110815360479015325936493970031949461805284942532485395055259681897767386533631725721332690874751107015761154690809677245635350773023207783073142288874791096871963298659937184665786089360905286058125242520644366853175838701329103184315941282221211194812053110059110209858901182036840970511265006707458969893501764960326531233210853267921044642831997539641491106428278712357981471898153007397919128782879828834517596229902738841777065968163170038137190228439027745567399126119154120419670966337500826484703097272042465687370671440524767199122390011576879584671498009551046788881165307011382285489257504652761847976475314535195122810909258338931467555266787308909686463387548675172896898283814257260470704599631581467556623528506406858343879319275215780928860921854354418983081059347578654566156956504970667285095960113934289096239532154742288754654562070934130649183783347304732285466234707784452344472070678725425393586807687422620251925044951340704240503408350753870045528882820347614825409924157256442353733365122085714186857245461846652118897477457766468742815519219599740084582790471790792741989272162682021813013648703068805306501385714251209380686108344402549830417094633714582540323663569115717339825290152406559959947685634522596218197768394320824223416205514448061479631256477302787816314569978012407278983890385358489211537937156390575807165381326254255148347802787546869613439952188040388503493195209744955704755752378894222942893990994900843538705972731121601319372973267103344894069071926600585226674518059681058620982047881646353972808931279689195169996936391106241386127186473634491694000232104039090344937204567926503237511247640463929522658936627673095685894156393141093283877750961871267709846913758424844060375929241040053318505224937332658727746440298390922637866903591910345494695253144826974998811538325980689552490057222512469064616973415148979023306162521558374875219108585251381400532818335943443033595983136774383916065795957954370848850427680347880725418423803680104231824238345691450487027509395325884830494357832480696265401760779475931110582443050420853180989784561022401434783202302630843950033064596888631378289623001924336540094465097102967645550616921964007706503345460412632895246113272265850252202835041323098822286409052985263276372361894204185023455998999339683121198379194348711452162476930352758200536021979738398447336807866226342478733788182167077042081367064616708747128698580841085120630674264505182183258657784997015715344561438488047647490605426020836649919646304621810459213353026071479197834745977298382284681932627453569138945359925687135453430271466537852088745656622709459138501167743883374102991463931755462399017463692435468174279522727002312788585311645746708334040963008350429040292904522508212952742467483466129136072167923765766593873193329944295227884439294131248983422136514980163285113989498397876074903514259641582368487000502514069605113855694316924897824456011247724384131519057345224437220606771936708990011478761238360548850616871818104313394328868382829260732166972087125978013416285038069335889027730794211997686175884384829486962334598700683629411343513831302184736736413127345365296249651792365849959004653872245975958808469365419306888759381473341957896685730655433734171547815465932775531838900916976165802812029264058217401443245411410742218109033855995343576636385396148233885490538738179418338117651866871696212524640001967995720979819534718570044560580559481673278822298075246317488003156989069313233249110739211025394580489167703082899985005190077426268504179781865134347350923716640066091110835763998969721895722217275671627633468867456376692481184964908881940442708203540261543237416533217433204653949112381472986726851416849163817728190676809302986891228661229154171999852250224203945279476123626619068696054606576555190592124867072570955076124135643425627282769610387087186617511899399680561079964853182280653846845874200867396499581240532597836741760049185657071647725655908193184133654695839180110000172715728816584647811258956715352113683222952107850437324879466112046335152969024823816413237766734335371181058215666382954148858619827240401755503618936188764794237471873980854908621819938357605041586445784210776974088834635566193802307686194721607166481194143567741109790319989736565186451680994632465252658212562388403668674954998293922734897362756593626251230625070459406773130142366597709212648143889811602161714651176895698932593122657778187621430618709682674406007353733919508397334932116951039359554357293121678522108774990764513390448158830191291360781502148688957060211950886895391131536458394482135250837705463153778381271309845875586022820809001846307303094445449984452977716341151136252421719192491946193183245484079183841135317873966252751361488788457316426602764537111365612703517528434571648372498651324457478494809497667132338941019501658082907454099505633631075041573817484912930531838327533984617872172492550000030105556665282318754416534517765531140074004510417046856112106633712434989884897548822020550314601895412588055325682579991680123021967223815166342980619287979676018302662074769613021521813490722612595514630884500952022287730229833291321126233375225724189923131989695904551157988233086302872074904504351600177250972836673685342172961395013076836648837446504031282386253013968878710634764571865949367474390415324384263357853336603586923242475031973754464088554544303086543245920031813191177420447587136101348948640226561984453726280745458946060710757618301334707047917153085743507548778945155013595942808871829498471640317402634911318235913020523039397517678445914376283017186483529188064734080543771746913911113015967616759521680686089994363239874861894206991524819741950320582427087019710135396680974271287423918228233176255847921662549274404882033142240730131542817547502287837580615801293928083919517581598897832665570194076459251444297488858439845794156002006168663340581987845025244457270616310055862804851853161070196747252846936340972988139562274511924217101792672702654063021721146836201765875249898120785421607324562858900464730142563389195406565995314161195868845608090153960961484559744664800854306605311554482271103299853690851249124843834071573183718401095997061797849948893084563887435673443045110198911987326034717276694992131620271576477117286062346351578870841408678488733835899885540111029947521754720222258062638616985557574940150639289805839037455703033631512702141269753020142767815618984963892525997709524195910638824515081625628156187771615606305128256625979148198427194962669944832042219746776678208436060505014110504942237674163644411140549200264370307967748030043993525044810950700576522294290647955767646908856426699513266448296047598502059523947246322759062748885903162204093518742201603122982660243476220165169430859615577299675727341509658835828010352973302926112357895890166798344560587884678240966827707514087430450160474285142228931558124357377989925776909484254941783715298656906972860027981180519688207991024044342439650405361158185276514452211242095087487089055702505705639689600747932926568567466460579242031197390508530960552840731680640836465679031782489834574203882650797153300439047292337007239172209327980282879377479058345396572505095162384339399325802217387214954998997479488137597368375339369418117851712950185136337811107187318186364321915788189675237588233769467239808803281228158390943350629608804430977202913453407124812072923854220835308154556121458734862898973014992508280803680501640745421052859529925617316739340252355300633941213806323281652382860352153285543313130587095041275496016406035315710703603267972695854656648808199343408743062987222587815812826658609347710583039879654742082124369014682814822755963529438883109902200016480957584941546124560261098359196689016719380735307932625385107891235519866727086237075367252360190701351267322802504425782754357001068619576149804547727348419580919835416064480946640791652470659910708765345148748673733681545659799984357471508417315087885033780993498655645132182474654535162825158723972597592012561323663218301843781058502665544791425072210486275321153021058374797887715938134620271485147205804623287040397110847192314456186749167138652020677492850213283898606431655537842131420451247159830307250586216198447153190146354114157036385416901036193587243308520831897694606874273056021995853755163276936501728090489419936860702988842109942791352114845199406894001709362619416689526871706043793197251036173696518647588080328260619423970040058343461030510441718723331868977357601700834837072585800429709496285376480263240169001012703524351852545968589744335100479616718782401025086788821567183672787291440879190055713575115772418902820248062901556057331037742770705293132171829050354924633454178207248349652605629117166898264262213614290168769728490501456965165926748506640240446397135001395425814361279783107739930558217149686229406439978093799335683372635234725178931033043356606070529676074750495132855067141002319675238013874113689472925061024954917198541471173622316725309645560643900989672975500114018182787475354108016811571165153260606040257311369738197314596925270351470416211329804678355311692702499217535565186295348317055110116064594282403322482630885932358971114411777063391402747149054823751717797404924135867095531473896426782045304482139375236250626822756388422693834649314182231045967845393494645955054203439857852277369076630116022867097322676880834987579533681900284733344120742990605296234356531493243090539940656387687722994319202018646529128330260552497678043447715362939734002601253234404203660424343913598260128105887085000561941319254905435690659386254374960387689527768783509722613189814614341771527740138776945635927143022976019663423047569390979402093655235291836454854493445547356769303524071306038911132902769847757206184507348085880419279071926259837694983837465107415584052098646966036650148838906202637857941817010261260101953626395860866364077979114462535869600748351372656800525555931556557327176597202287986477241311265841311899476180481097073803830708607631042185371871207636196629684115181432903518981728900850631196843121949061738738657143508727816918924044296489980338988390930432891856021821436739963757366688573161189603764590054209249167612839111494026972771948198688294396983719458486202682115188639866158061725166140233410517692650500636280131406535950174882294114131628959314440246775042211688720275987733131917095303727750695344907967832138087708762488378365130760604639912305600146618174400413079097375002049363139089004086294653055589917503402273533212831589346460686416577419710127763364216650551832197989422328214892269792241815162570061657545525035081119973833393720031045497998631773883512416243624191575188507837938317065159163117144538597584447151040778505075299772668679187330504099780414169698617607972544469256274521131043470671247324968724133766925164873295589900314682698136671736884728136096177570325974757440114339298071290170107360026936593244154348828341660298451094517420840639888305418085131198082673723081541461710208342803605120384128358280701825672457267211444855968217528435561784798842140768582448563068746376390549232474204115264774549955453095350136977032735458093827141812244976822262882333808462251567960934796982537387616348474790651003472270937490749343394392009504365982219016059049684582595217411503786518460278712855284662946344306877724895333251727425368844704173362627006019922260705941763479031744206951127156328293111121090502302808360251589114260341473568308118795491549657953033355537427391616793411809648887844582463533188723821165560607606034250922066091904454767739231211923163755686978444729849535190336269786585586343983905312376903524993682685433077322126446200491399287985614023631496746507648461151512193913650681184982027067997693703581015925829660142198591650714075601265975467416979700042472067877285725571098709002398685645304406394026628015291254539455429742584779824935327686478894424862580102334035606435696746475316392656358877317552553024245182138136907393765313212686458308027920841626264722835243158949821812950595532579835720579708209854408986875143928682553402555411656810573777771407909032231236025833081302540084460855045834798232335050372555948215897379905953671088545939637327593297561232864059213720295108596085930134209404788258988421808314860520256196673763068657786566549559982323341057395184684785874798882509397326753269026891446501758619622628051051265969259224822885241256546385914063685874264759359499995913224843228021845304755376962508340677979976133402394996499247983893192805909987365678234685500904067928466075957835167794516721934019754424251756370510066608550142230578799909398707029909941191940200954726462105694069501349321017759040551219680777145025374304066911556731780206864949857177066422388905590760755693370274546368746228277517270323064325795834967610627407264393072579725962460193018518653030163620003819713204427630296066469519807005105924742836898485452697536679055831915267060341336087622027592432270299814242849481841156694174669188603851553106249934229757409728770963042783400171699753461155901392042656696637009198149288542183211225617054191462658080622163536949890641019756192504716848016683528445267536212604931829432311809721927693546120096416093859594359014876190399876301650840443373914015581194674581810650813807876614599839684140037124752997624487827578988653650421021263639869238078307359486877211203818958646644443768493162024468067753413244161094122518352391836311565415953766638573827872570834863024548103296154986128606536483309376125247732991296251412238366892863466725409291628051785540599212109314465364689995068336570874314487126160224285133313590460246178390872585253109174643450837542052214263736266366903579075646528597109642931095490539794621925405815832779321215002605770053786916990694118476119104795560843005956071226185773022740872295599296817608136972907483862195987591015076664488410895008197202768550491584811802526874051170589097855063400171552929785596879239236465411858290877667186387180207545462363580689354985188492722670474740304083231264040537521820113814375419167897153817865946207613640107141822160926430709507537482544154016844795818624276174196261930252154381274712770634990707493547290885991247556506573495509200397291645899920604152106946139294178189608319845122937757722078621313359954667461515565128462040798992548573940511767039313474881037487043876086837002151869213430162407682105252783995557721183315696048620280211119423874305397858937248931709401333188415098698234422499709100010604437315031986053455698373250193495325785645105723663648808691699717900147163887807918153372858910812161374599867666523818626399480885299206684871030861962795787731803751053454189424697566962987157633440722924327061747793935807484092141417906254095127769773118255281228389693530824924989446705719076316038783180796735180852465973856163740104346585295864907862947420421469386526503458951230541280708789707646287342906991482545593112558461928320971408476447930930298831019659311057517735218128995264484409037664412895836437624316589521411168875060457265250119796102470271829572590238119387769339375016929400583357746983846760378549895290007881828492701212585442345737093767151244116282144196533115460647365419893137671135338987467323320101531484330260797306611318330928780801410267513628642629883106082501448529805392596849667771204487877684316760343893368427254980902782506785989967888405470893039292905096514293224651408828274949724422290730838957885248059941352868398801679964521841454306932152101123226696234263382097432252121749460519160919532801644426503182831143146666257521140615215009795369901426629051329886765516867284277395515051145362866070152676020769504661116064353581565242624989193498953844940794671620365952321549869593728680182134620341537880062325479879550430555734234477906638762936773907187678721630488964763369654146086206922234790769746201079387960656165446231192311661272126849947231937991182401376080344959529673297827893523696778398028872845009826130471988240162043265966018924601434182521174712627298057542297394679808700491712939504885338912114512147404950624013365721048948176767802813601401040302065240088091127499432322093158778701195745636407288112252528140372512324589467864334751509188822194095828712524938635664628910552095899440239347307924823745315364118662229966931500073968369647381273076392608823495936422739259107380058414999021076630355061112034095343226712593719597619092630568164710213992573675009940266702760744545176213799618561466914698709362380349055928268158590782520482980911735556680865302170512810739247900228261224773834749993276285795265046909787269929709213881026086401896383312774159903067908069462756441210309548427601244640834094900323239200174823321439247510133898509424745748624768366776246125013794846649477610241323877742845026370768140346341299241095566451978931556145525027622639572892193581877537701127147877947630533571751308903622752983410543990928477506684805825347359700924108031126851486555609626829951512246070201329031684721095929756867150054484724631522188405016833068194441905071735792562952796469259303242968935185107573165877234919250394440036411017116998660504063071516752887024639707699354619244328757627405238759367913759544487897156933685545753726289014530163935271287024235051819349053154723360041160413208831815782167220374102231314360732985319533737602561916626361250870979827434914123701931490137883984953547055192590348592116764320722147956057621096652177371731977058330296985775001267048432682998711503946934572871317183776965550621943771726817725374783093474687752948233837558681700513837238085884070053975000834193714050684714725513824618059629836984444377453275922058710394592420999268586129403983343566699622968037432763307487397272909704491318920645632851120348104864392175030976165634171719501263314414123408454964993023762666591638059288269972701006484943472037044650283380955011536524166402171916670618439973763197503526141199285164690514544619476425810177951709446462043428239604980858328246011669010192426542244613213538006629400901878118448940727894836787748834457202066724352342526068794461044362638820153627036204634199959536788115377906440443088289595866155436282011837660532798755857284144858787046534211321377431709642354790461138203785019098883412962698062489022208591344570982100632623885932357872117731247134503188162625719452764399147930157378655370522155979627682747190631339830409412444104283461619809988265527195561752481793825864936839916918601530696511582872987540289211747479487936123113711398138021839095984766170431618388528109175352642961267186957728889314541585658308819650551972946965058344949220467944226171688590413468358962907545532570539140653134059617689271777094565590584264234468722062692788868577621880475245509623419684891790539331486071496575867149940348160482328662556626268549349916795460843423183026997012480532908427591887606562415327295734186329148369585370126278771308484913664926578184056781609380898842852949942814221541002332966930531273675644258297593921039530459754541227376296529948572305412431455396963632641045345488025989848490782169545190985392861522176470867996053646096419418744048126201838911837175477377523023897035251436503950184380148703147469697724400567088204559818539231207587920837749412891274743863427544460329869068425524149336038762054297153120061108724451672240546796903452635487383774074833736692432346612094450942577662836440873676825412519626967282096207050886567442814444858195992340058957479564711888053785603982504707933684767820213251332997597893665261692890361658411252328718759707406745929233686413950766448620311116900375761184454853906427142859519733344254991385879594015973570585169444211196454557995395810229328231785693101916242876756921530595231046937838500766151634040987892779638822450609891646558318457844300716788782782794727157539629093687088735671204876909235122780592381821803596128883484491075349417726173628890776122873001191485161566341042288314702036038087190096477709060500664859569568258649133552283724228073444795298666037237433045622682256742918246546832395676496932706382737564189193059514734543037608108104646802914401727087221232213962663703899362333252954138915445511199163912278919791429079458923031672128090422643473730963205927698018213628539319687669705899631384656724783344698061093068528150319520841799720731188481211987731723077947209539730553859738166719800816560522617357127932465698553262696576954175111064208038601609948075905423729550551861027302436592898152042036732125628556616095407727073662748897148353234738407556235127715602211086607326536140566469125096938348314105849442766392371948400456440321822287148422305732417113065237992620358249039059164847364330087166906577048553737967433968007046266652192116055090708256269760913390388210678647617898076867377694775369324755579068649859488663165283885608407827309221598230999411855467240035530167058918013969843812800325196739345599355523542093777907123252725326782823495629211921865893331340653045008075331561752226723689820042237682096133288027857100811700208649247837353811883507367769364727079080273369654570800980820792405144638816588778915896889413580105586710973287543871132148114744233124421686322169632028905851243626216936791281020212252089779981017329359817565752353052941015220566571420391419781310514152220620291116299002302511617861032423661726910162936517906735926375486652286478382878417085325560514762596629504771480486128622368879338631289058483581689978618361903024132650102527521737227679105676517447299527656988536174677860950020249949164495759707242460304194833235021237479867645362307070094416261372473920420142277300268447897765952821015887958935632606737339505049860737879297661306930414919930662448387096530374328830236027173178281681478587865130093356994300132086457812849010251006925579676479208730453944876486983979187051625487899201937107961761312036082699601474903143125308443599068940864020259176678338413332235783310705569186917392318971545231229158648286882053778661207796958774651036407678966470917358359608905009688528999603745443621147455465921780099780477974981679626922978369874575678571242587304089645328066505434040707388998080876706156062733694745861664758454279184144722434101666784109982238188934687207591810977882258125442884748354973512240475004007029946359518865609563056806514399355135623412893901103639759447596639673189883975149573378521779200776677342742678049651439635371179947248121153043110520290472334371319959854844675412605089775248517713653547019416203674298672552239919516477868677466570752345015036623835130020367590849223856756180862893743846749431285036461354858815100443191312764018500262527276914414046668705208690322919983120328580649356333970973185204182542778970434259972933156735373655048392702806980830132911104234460216140201493021605340637696336992484513505616132532672811813089468652211984043034252084900876255398867259138923135060711336237511299461364250835234432079780169417514732116332241157538149529599977642747323103159414289852117909217127013980219763401290034888179959196055079105222180996130695876416140777316453705855842270582583377289369818263963134290520507825276434690553410309079489409803416697916660399189122051874407894472192222251026560976917615374193770870878548697514068623717808757486291713918099498238372611605188815985991837259118412235280004671178224806355021023017695490299877590177111074947096953994531945789094367747331873080149356527418068069415364281794234575987747725817587561795820920636644752936679967254668686823624162744724644954367431469905799779734287154597703735671024105875110914204407720423858931565415478727440660315191590109193406653438534177257628441207552342322035222540112537405986764798685467750245683869078464780750456245045051910023289270425585855305198802882418674061806823797666078002357708470668782599799550361482574459255779997536072188975752922288109581647002122975955261831200795971087407193429275155123940147603238164684400474995788292343665622085398729678979712428452235421175531149071097346087336082304300193245402578628508235964590055041379967121671929793115804402731470862416229532092862875660737981678985183000776264473202192322334270365907785231442300757735011805028535350077252679475161320111816589224670302961444819351292211126026303308849899386791529716942360601584718074349956023532847963118317061926228191926271787992311471408527084448076110026537858826955850710817161924107290464899438071165773164244736308448326445374218459127130584321422456028437849245499519335817299097192940066116067245099895610598600752912405831037033311756185708877204015697221530691335934739381664199462591849469797344019663530311491765311409936577093357145236499672227206889183570186178100639859083141741527948815582541134951051111223395065867427162229481556379575844785546826223276174211508884580375884816483227489849546454534518565477925921689835589094494127738877308232205738018974047697248614354434949107809095891607833463002698692370770415529347779204719289337066813753460573630296502434099045694658184894407153516407497278440322167942962845291109361983784263629013322452837897134348172101051923968498244528867952583646354329102434999978871420290322872653295007341641891783156458864495347689570680469760614072395491215176853646134401799032543607963478056958044581893885504874004322254722274174678451458944846343292382853387553395807214095021596501111575748368981327875195546107987962664408146026031704162450752975548898179040749171889661932436334737195856553767126058207024821275641452392147363203818855224327002744356224676389701532644927222776102990120881438130625168019422211452579051600543365554465664914311868940031323432817788827555521111540677874562815585967051470694055942259313124986803964833009064154809619952976765847597974089575259240341313285693055548687596674515366446967505175010037610439734353938567974531937136582466488392880608334047264111626654733660008206032432585890627166984982490140101679709642250836564861343492524922479458663735522332640118721463989546286730659273763891616630658553362525783489170806394358286599317421534087380902133936237155192266892458739234869053684441153670114812515420812916778010637769608499898315754703489134321184821640480291274754015333716621542350050642735826688533470359070444783163493302126211347492092069384637965725919950560897935671747901906992003071627498990801525422520409774080251595453806376641861990927823505328778529495391016817178598662664067792408314574905751503556485542031695587370206872353116028379783982813553691969293218610429262493779213061947739065316913434150064573975650010018601306880922829182668892411825211202621535706831763394939186581385137182048811313890589140233259208822444669844473595529951859506119546223111841453405767746550099247628580144649148864290350531113560368595424379003703944657853389901358539258364749402541862392792365585139793018249088577901309562004073054392990053140018489608000616801389881142669162013270444514651973794550467282073905531190137829134500422060479490380302339611868190889033069754214550693484857314065872440811979624593216042462634290126722332597849775830192422290918082065891587109076893403542355592398331457927949963980850256163762438161129295342286927739828394691044453273087786794030601538537882645200787084433680646407597611976201507439725010557953556817725399095172921946367778045425774255031958148993418779679329059490713607535222233903876251463723631457916239817571101635642874470026991662145271287064977560587123315813610311023786096926693939560515543784356150841121338687510434770053521559602291128983199110206100626353731565067135006427095962126646262462764685783537385448619898602087950677239647081165714767605216255128074720064577341333352010270378125039238462030853124478310234784440925851712422258298009351137526347201351087894187778492786287825550632259633934112632111055461162929271107265285760812107543304186824441977687068980603976482451990005066033699661039710654468280152674431041384607579239453127522579194944121553963746545462911853840210345624369713651242712312828857736293796122977209758141136614051772989099710532751164167338066118347335436148785986663849497898222569079105248144639824680381524140098160319229880750517130373736069344732386213558253054778702558622669762931228788176564536520440937298691339722682295378220252532358491917932284080796027161078217604904128659280150367645391412063113211245919569810724956207133039129986361492019303654163867602005662300554684489643151863327738136389403859886993843614586454933032299136332811798556534584386035578243490423033215995247737413341958644002874138831032279536629968332640131485873962552702314655127152353212145937369879303989973886650084523712952649415763151325410436740484546676930200862391657057841920724914579106741044318046635959273667743902385391392516674254309161695987177205816754991948590911084683821991845787001906237602131133763182457165743320341464813150009544757864212813209936571157435895360246600797018769147373033538884441821581639546121069978495042666845475411200061000947494535705721201847995926852940574066763965517392843291019422009191479879592473554691525261312239798661655017128040355690224958772938246534131334938920705425859212466246821002043838175787010678496937384644104759806622789406614878358045363972630895571332775875751020852864554101513080475808957784532062476011540432628718917760710017319289109341490314740637606316797930280664226286411582951575073442596293571381783237535690251340632299123510778165226822629473878621031597698216870358274321128405912583892792484947630016543104105855635372329340881910053071932910368603294849289386571907935075215835653417020876276804685132686894174721912471852344199292178092640534739930867019221020224381950657610465354468115919463069153877715026139987820861264038422269817960110069142976449559176544850795277773232837665295836791560536127667234396924059676511384570742106055957359446702194740008288334555949552289112990078162140394147920319708568705783348742217164867197894315517545533627503457022920482064462027761319886251979037464147648926587262591473802791364757251795311653068393371934295354085853271817236335959273486483460780109784052008425891002849518552021328173652944068112348727585001114614994380925984985185971726735076207902127003764430324468350999479446699343982387996311378197858918621584649247348849395680639644640108415238795605426040645917579173733562359349973412213817492600353157301865502707638377104718320378027808354387567954635272356639563788568136612868246616788129238583375687731694206435570968387564953899980567801622687278794955555242216540761684585070456359584350609271754468143176660898990877242205044045679972812484960767220533577233107443858858534746163635902535763620852948883816937375200237829795605083356001727053637000648086915960554140741530392508812655070296752897708884465820411852508732722559434204453253761829378288465097978264439601849493178247711651291549246701541125353731436435310153679990632770917070694733527238823235395428272083050387976882055194059082664197481296602605621240195111650375685472728117464698040862955840788238104511768032200119817735098753016355705661452017068524604498391161309320404676424313805383730296690774214317637981999634847940610725164689773453129504230500825491347047542790031938660690066429834472047913144298102207837186890616916765068185399409685825970994805305675132051471705153396664542648151399134768195584223086876636490369687880866545233566376859059596172924209548776439539528714494537660628725211433978423287954794113248004920340201787035650241381876112916735486381718207167480371257869034706022652107163528470995388730094784252146773238685207219786406518842216174020037365735044587844802557904405427556489428557789189522790267646154561089621625152423793876053890472340019362009704582031998271951220470177765795479837078176372058748466742766549614398169847072650662233969156604511475047736467217623587228589394553468615003529289305339939308175622288277650168427578426270043524326209746333438998241606870699452979804726006477617822293397841639395066466601966350032889659448281787927681882281910484181808616637227410927405478697439376518303397938483597451406598157724860300066171154970076026225676760490598824412102232207837204118520914301496860989871697170189536615959562434045359230537354831004994446346960124701348262927669557764430382743532938025895359391530520699430016447641484279319862919262882404436756213354603584792371930395237328465657232882710236730787687664104425654212047695569782915488256415095274288068753663630394769852200922456917676989770159326476351112064970585707505165675208603284833742524159200730311474222523265901924880738051378723823606959231421102463892605151953959426346456776803799497814356435182935915355777183532270958383794444192136522230003907367282247022169005724863545353791822529472275932500337568650666841503546798137480655240604079551268113535986766972155981598017744369688117393401424033552535747442581770511834381224234818696214270375581518888875094705215213317441867076113811079652805856771241426496109031421925504455158794984759202025131667236967032523626959840256388450017627919149246600930938397736669266739284589811009239714748502257395466510060422833891370176582602088463735365674192689409516201740911265255193114684308339800273808147396406385481729165071528231975438676775218618636634966037939891154904623088673043668685942419131401256101912628339529418270491849378170317916301580030154945759815793072179661414978526543661493404312421982057136392791912017170534435981095732768443971957455525437623192021591013107517577132245235531688728472118704002909766255124839578127530127618547188990616504441490537001706586363205662461612522325785631268338855483811479013860229050734409464445826396263073170729451515345070904019163240146134398439038711852260278402501583364418168860502707187622908955781472419679997625610078430591680790885763246743290213960127258877408947826255884138399332680291467798878920594032205868581692932441887735621308878434416768048893786455793588436987422477533708774005741213361062339405216498349780480448507708499750807138821573592080137806231161562542871561635539043098548770624840960383112915163000301265443604506362887815713508819040534006538478434859166669693342797158804689304600015220133640324017047800388127196797296733182395876630595449193129218168666979981322866497310483413380822366191829473614819886111820180122069255224708071989303903655179932118072567463425460650657206758998216227914649372799193834492116389285834230953710616621430513324540344041682858992882383318753466228028487699393335641798989073469000028219976766590566559527636407936876980866386221833409452820932619569735943488838084051370666249452266230272306599905980058970975215300112945152922651057585703419305784225094319981449416708252920756622001940942417936021249758634083053935590380175149018045303356704042868550938417365363479822360421679106197750777325212797545595053555953891560812975733293898081127235766428348137857142860131006085040150260285288798692332981110988239780654075102052488543337136974778974559285292033363567539561105232814016463092051485757668034615060101651336486343971073472934208564285148373251586508102222010631515976216157575812600662092844907934217555708825877595950030072294751706532492967616776267777835884601758023006899323482682338118696442830897570120118532043530450257019621233424019074784375348279148831390497264523165234574137644786827072950078492954856103081036711388789748575127962355814768799446441200648548528818177882739091084263281708847273583870983255607907024908762349793782756323377602754973871693237496745451808197998124270123066070723543553980898621503586780697595716261584434661947276930347562574764560173881169686111635353689526579481802245267709459852591868600744980289905841342885522763003754268280773692019153639017146924856759048852023586837433798114751590461437135242706386959991644791151583405600937075472392475550735949546764839344733379578495172647577554195649707042198094212349481284546581305401489879146056354613907115299387879878700188347519541984176683488502406096849253218491414243130387942285074187448426210851071514506442421939249400922681037431761381175794275834213922444818014670538589565063972404470471558674614129758749231448494217581667418555612027007808014083418860687564501615285959670746223577657401061288596796655919092160794588711666380296223919797081041293143929802730738299117798584500755706108966306955537751712835120362490533717287651553134000995573230162829409243583557561233866281397006304811263592087670469471857691254408860103741949319703698677921341831989411178529977039659874357675646565852446680894863830119218532428769766113715556812702338052226473119223822063515728780698259961054730542513659484060134114371442010764294433695053229911591861364929108327358832284121879792958044628402239165487421054790242564314294962899621651454990405395692861139315506559241542875262320260717700873793670958387799284670796224794094823532355534471421945817324222563124695384013364314977422304729070808284830361813099971016417738950116156756275346649288928755111417693470507066369378446127279699318960779051495750353257774079996829805925003962894774227369194908229139001363354182102663882650197311130373630481723446534871155790310895635978228674593114129026562534864668373664246445162943956043021585997248225511756601150622368075300091854568098328674019635232387043175423739958421602001752550553631792196609049420249131899421975359520490358402937822116377740002868372149941296456153340605956443476585480170525228437682417713999440024518100046933087986719554818835207444535390922107315715713930252614653898470299712320740660863468409364242947568985246662473556464275428712249327176769641375299008506711288129052340275940942793005846697660577947963838658442929990670231069755013047616059451821414724144508271376173871408230190926146816958517788294981775177232756766696977986599881849521752467992038305965301888727175644223250073168748102483829626998094921986280039963773203382617043158619441771798189468213099859330697144614734170758590094125032363571624216104034832738212700795949184514621909802121991200120697776791987955477554660561677468461592328609253029969457224286774115596958065608469195232944410873014959168593170937194851427296510779585000008754791488988205096103294055070019485797090699122001808974663390242770566527955226409174029293538675795840822893467845798263541263202915883087431744189363437842274627560035448220372756139910175664466533128345412506139673905304851678381087219317887529752430027135722214056801950973048588915373841383874132919303046320527213160295170487420143286808431642011816128758740154234115621526247585548700417903104783574852015357162488074652301326921049499010425037002708743408154387779445403147036290146836495908478616805576794303010785125446198613338412680848640262013967854293613518500125688255755557301779947705949180014424572966698487655767327935715187075829116500996119106904865649305882313337344735581198658121348083035449177939113772523760564852090032696833206192580036965039908700120729905842105180520652346474075893455872639543145715359437297274746086801387335318845491114326760682539762868691044415412324963634371531169446728727376748696694610984529411700339743481882384877950501075115215682083785663834176244364994839748997855066415473273286265702035293270220882125255218093038454525399829144888639059125634845087537893973531408602549008238544661656250255033932924991899804860803009042858239551138307530353680848112845598614463584308443848401430978887925420902510573979528181818176987532147635643979965377071267030626138493239477122124833013912075370737000779753607778194863644943175352066007151877070594225035109174889533836723216513335734288593126671902161152933770830497669114362759058554073218310049351612997180296084038572726336975353002822330584092235900666812376774204274754595887646139813847582831894216587533884203127553650850517631555609370445013812737088674730765401591024498268156170894548548136166305005323561892141045329588872203686577509614834282479441050649918414634006931189351101198755199476116348849991285343175431223129971345199584481419369028439736101230466056540069415587520120617842906003458599136559671893159059474783363389766346756898848534400917088541775714390412506404207176639334197435196387960317714282256578114785612504972098661598614310179175942143422577208918716214611815837809944934126024383522637508008416459332716256183283558168306042527869965195960785372959347405643241838646517363703108269641426684194266600273048527212375475127739373741023910538746012464741093933535036979244026522246132070505861553727867650618970675209035931960348870475783012125606969273493846773484712908115365538790677390515686716029567788338234450197184265419879592752830380480462130620100364361662128045463954666585372795156470366778039267799169890119664895404130806739403720527259534828041812486815331323219995741056722478265561337006935874682163056914054954089421909375461541751269409161676266182026928895821236651725038000672532723049301352940087776459342750276412369855524709502854502713189235483604115438959575103348409408609281839834035812897721488090837865700260498134499436489533559104701878291325145715698569193795474177920025050084941820236105169628010140112411581027382562871421668364891675832849044262467662055922487443754774246235376794667074097534309106900453706886582530817614774799450907695089465754555177971362805757896314595079203329267492150977266409590658328245791413532354991785063062646288840880782238918260941436815649153569498345154943153365830774860203157144134698909791872100698646219933447548109908468953255586878276498021435408530358994023840521006176230386645831211320516433417190694935986484811517749694465922771001157088131974290346736978174834958540874181105805398446976704497202568655683337609263696814789412635328859068377873396658277293890659394940611711795039648412860533766248028416611694233738654524697503585739255644824035367288652604904733817364376904207924673354683642717083164744881052740641638913133464497237012440529861546688792824625036479961724035898403818018735769657290726976836962723644546751661279753601691263732679714052023243231671433973135764352823811428780626686796927829505871876933185032276522447240910786334814325181970604471395351341845154886099032960907009837486661317864004652585133338735595504624866777260962123638205258915647947947943288685114483001242069064042193284176356039494511477284423869364213992907851841365944164483131650083743697012705910689817566567840794827989716057176344084655031302230051314661721005400022268075240906012415655678654628342738794440594062070322512505084991365307504996079410514788592026193060539821196842730376863130928781579297759386282642186542416599348182037102237180484720388516595918603616009127012952916343366079151180043351397810474249478561335585656612700454714361005690811456165256962019828433254653604855391553946108381812136552458935954098177696575764305097733725731416418923669786849073243226479872748020506447403179313681434862404985486148724628932941190703932798649552658392122868875085621898143706293117451598659057805577627925724497247008260905638343242280079204387636336483874733441635326420312557579397005332717361388386209646702069962032503790512676357894167131102097910643845747933936875885816368660594467617015546236436460323898199501816847318304503667546189625748910520116123946970145181811800459278395804754340385637177253009980329827333654347571602913700685994867840143820381822316722448680347166825656326204092635976340764988946528976150743924811602479912201315403988012802900186930318360180456965562129370340614291097735323264840588034311023690100404876263474957365906595520192109724470915708539454721811933304534943639577241965806963403854777296606365894890633365602084529462366182682871272860450274596285725282878985188206596274660554272332678747178583657091101738955083469286118107997102429027660674341856747678382316656716459221447594531518140979863407471088336921287504964351161044093778050492818167662407291280527354565419331955395588988526539008701274441481491370104055938734007670370076163742529107913165505436171184559805804028032317497467864883087588064151571660005375832231784542070997090160820005637366876691932205884567483253490872441505885265109156571254100027382448931357716099808345160007038993461072820627728092481840953361293321428832577054130771208384079014343565123414027180305105534852113367384455708658716708995679436164523796433542998383219799690383720952114190509020330167714505435480473070265617742083848116594926080501467217392784537811703573423872420570048571820824176123079167220352449660501884613516611077410362680265945984113922965320868713619452248955242609369095484284133173815336995584915279841412468836994305652201624386559350784013040806420238222547336455631242620206976353820035651146363193271894727563297365009022320890959490368341139370740922885848181186781716121593448836477819265458380666435746548230378516822785036655433995043408990832761382756615868842199897076140915242763717418406116635153176918980303890285349325116834636560878980678436950336640424400290839169321358385619909368395405992004623665702793053198934892884609566610644700785120771360639201162910917748148556572311272477170462248753277283504529666629310258746899872303573408821417631100550016576192859986605324994430055869656156489370276242287332524581666828808234005812771590498285130990619424593365605463827558773747239958152694776753205440133583160050986892900495732652306305830088213495046242362873169839295399154310004118386265513957686513110272786809587876097125665209657141839089975521503073976646469304659672735399328551859030552006413847549053946666608944448472154969282044096667092007059955152309510078486263656891620460080670601903021711901224882833754402331406063343370014393069768035088823214508995303605402723492695341283523523757391422524221198794609799557928736551393040852214239155133385776677919408002892495550574769289155505957800550821522807377637610638301496779527668098295196021147635351196553208980605513378105263537429696698494672456773171292548592742932670729573930757041656980234586718960576812087926391964928540856158023423489075279276053428257469764018342139307219182459724620791814189755168728554016150028492932089264044476178587356223543098062780296880085120823729133074642534894105180365228970734235668755235756903297278783018321805300942121568991725709448206427295186374987901880905925384484284407908470922627646492810869365236446550387251854933567833462583761706007753017089408104635120337944269870530669191375637269613649002380297880451113103075038072744128572833569434872515940698005662858024778898644154105379159022804113732044865236663642238217629496585008582759256006312028607516590183832533974527553893945649668036361054284057745460910546177249791456255409890652431742593058408541186169830776643496672460733489324930403661392969026666389250759401142831747216038116157563174991476215922450003510313340409908861569443416993504509472981273407788600023213591374741280727937364798958325770128600895256876979479021941622751215803752980743579992529102837771858963291007668139863257623282081079755314206799253241787601496889902309822576109224987889343976226886391473261192914757794549343168571734970679241889627838397607289200721591816836178570735706078972084471285476542517288219095853470402747805354542961031359974862999363918436575605766353554479283930178372455545622725623074002228090533498996552289366890753528833025000278109479414409266789334773610323903035506024344019452376276974399007969212544855560864107848173074911422157783137771704368512941397615843435500637911416770695607013317930150342427316925824507054148710995902205078199368640919314378125180758252782083032970416255827438129599428570050546792904079231586935773815800060172597623341754389390571332771629759583561427857004174545391408903522761578740139534665009386128667576777858968335655036475042710219886320706594790548791221358765568241891356585254485281003954832515192569395792610267447166213407587417646392545782515027320367315920574197204711350054019375709087742463975375120487318338625240860450409677599291590968533338512613225050607381651151960878597685574323683200020832045099917904303268705648602348757799238608290184128608760242313370246916724657218960933682188860390209928690562242735064589232098657608766430330397037786369552394161761412347007399065837412540812670061410662137842622884587189226158805393027174063895748856406007456382695541092566457847251568806462609073976105368899984923001221554684124691313849759146959136205880904072055547915565805134797185968305249478270652120682671447267310727931554333855215957114205434180800797453482047196693476598277381812317063698361498403458726185504621238340402218072932368919439648573350005317296411985123282870759951989363260002022654321039748834898473335216435570099594062730852125076380479703131964990951523169171843116315600881759720484044921812507283634363051448938427852773139617077916073305647142389547730379344901422591255460885713379258696585127773556590643278551323753084446157587200165314739548841669900617957360300236339290083270439506656698302612424427490800629424932375089297669561396571046670483915897368617231745781007949801101167742222892250900862764130626375533279430047255419952566428911758115404042751733826261571181563873318393319836772536145972934690245792342478749937846635888945091904010396490137788686028113501161747656656834762272251123583806869534709039986988157421682290359703404804870653720089138283341836717035860121198448164344856590893269469439329766138486815538114288453109491676832795266721782898557009015849286024494623630305419195890242238799347633289311344420763073140934445929982518238301469369704686540345819035763671448809067453554492820981408498433641484352913508238239354626791688860032004650719864816618660246053093706659528906807151223262300130823933238215383811410276824944654681394760843191129010084130916890845985777581070183124165225334067644686340828167930336705245997702277741499322316588290528353101540404284868266686979528777216438047631027982442483793131906680704595799769297210935062309469280525046809087340950271263510480417607629130091513065472740414020983032111130868060914009404222548083980292491923409126404892474984427827506388218085968901132862119705645025243945267696966224058619955225743837024750808970605207710690637035160500136028578029438324803605293050702579418691037371132739672035609112585423225240453258271882002328245575685624595753169485534435010750972920499028405311846363194536270826127851935636186401106571106862260036088008691388444038408012972131042982338095978589783635091389748625826754729834980841267151353988773791434168252298532923806994182019324552453530783995945744925433915337479201132676062084555478019837549966812935705764490138094907001657750896422698165137862186267528482691381250731043883666524984582517672411441655734566401451128936903982885765735153231257012981153300266063222413594463853780380035612236445782943970182782071585612253098242933813343110931120038493866101671594035910989056158647528586024156251663057990298508372380485988088584647660981599748874795914812552883063572011577635307422746655164849856307536740026591297455266815833708226841498393865566853115459685114267456503882036867820882499197370983180383867484708571989895701120757019020524244497961291589050139008026170284546252544114552127065668098778615404151639106105131584754900758978267644049466768269780060261964972896295388169643473304917496931985920444173211354215451930320593550719255951703305139967067801231496157127848852739299666100706820320184406642935823981667404297417479073075349831864395962028851202611155994221631789930549992775670598488420284029122855698853965756996994627399334742271016679835623104860762374640362381554816389233680035761412656776720402584847500685883246275209495090939391873415158516102837824722413320538535572877655672856823344274508637089491370302791582168554942418380473794342241179297811913966057737206526007580004022504962468872880933545998372835509137073941720119616406501435894375599205392786175649651800973324242230062533855946611757558522965924565713249095103544335430256117950324233344240834994757905822555992477652281077461659207709863078267540972210772032574692518514006111750049518551959395409874171138336953220869867620255663570225389830874354468653023705161229349449747675123030071911546792278185803102374598175754239151538477527771539763510645151380692717688547267218923358242071684017543566670001171125565816209102275101678261852874232381561404449217946014143570848414101759015799908638033920447200347087286129151177794654963067721913097117316927334869944174615756265664363848584480345032677771804789637695683501411799006272034635495285699091395189331945049727129356925171956894387877745956140731216512311749652899978615438887150072511211797705201320615735966416927745401480195696740155503851225822054532181832597931518390502332645237878209613774186250634317588399682952564798331658870077628084585505187044822606880484745854064916696814765812820371409949756288869230193508291242240072158065555837163258920447400894601793869237981841640720335935515487283720780625970439818420180890750249859219751066604606139041381526388898578239057693478131707809301165142954927252635948580001585425262080051371815131191730769355058935199664197548198329522877982640711620593578331135415345770910607099594539026558009307707476800422870605831094484908549075435077459151826557577105863502389276493138163489012975443960787809474640415554532943685147525768816013917154767673234815285330333066317187183569197263333244237316841473089452237128670016236213143869009710382463133598315457279218940689802818177343286672489446488384274184595421228892466872346558674719436842728450651932438033030908128321899045064922587391679370419413996922600010944933989037882124467398563042564442717022879181878501158940043776011764949097838103050733350083098000715647801920250081548314443038293886103970109119951070396741176269587930915875606445444613035945085955857942651565086139747285894715758353162210076005835262483782980094783612989596975101033716422829312294223095898477650706188401212679478680889489160336795930399727115899734246551522613386006932969000787260234967700722103764318730169321209198330254137364611380279763069354264307471761460941624698953575241759029578914867252582120185161520991404281755791430877669909943016124215279111097007190478013740166484745060739296667205912440402055774802188612090900823088373439905147249588026053419872071661870396677528563730651835480178764756227831005443738104829685234437819431633918206975541630071564324378103583187570490353752539072485126990716470418664803059778507060098255028461053778283802469635803026621474804422815165416438435270904908674576481269705914904398299099085955808263127117980429791476981327023024924549574730759778420107225785866727806421894838733093214237097274028844912138301139618430919373118856735543787617896064193057992060921348732055712226905596083728221265980508792883519501505343307358995629175557129141691232531339432373798573386228435154138790504799774545375160849995463617518498536504992794435025563872141167503889852789972196277575445890427834241811723929589953873656460837552836489275826828024599793865732358607809907722905067311696880057134153720335520197219823142618011788540700183177814701825870478832916820987081212905772454316748726760551145834171095682038763136635436867365247095052757508550295474660677640797149028750766353788995854009155503865714581669037646867312819184188741707607001766015803181067239154678062057758854635451899188710409194508861879287394640118708411526991876570698424454525741799969344240087354713039167128844983002912573971708732807728007939342520584498844282227985617624963073901266332294672270705826007347416857659044854531494850107951575722618415839373825135126692242219673915722990838752108189124816549754074221943367338384127802274970748398736317737195856534603399696140317942520743088063549390126607944844478422350366929695197584135875355064594453429327018271347044149583313014626535611877528621307416713250819385442240673208771076688129602968072853823317906660629317689122268437239715868770458376695229229467617942631708489328091966370472673328148349585594250900813644873118213444909432894336318696924164951614576610441734634486569593466939495185762354799552931027055439259102044830643821952307833377869844056442235173891908817214244272938962407017664008991423723614693473486318654700262715822050672680966027412555357895904498847686066253475991513186690909142391352880670714874126521171132027542306723083431854624319449605189629132503571036110328499081681021037621527848020655763393971181472307691966879634806281251455231819712615814454576762698129167462577739155195563538168673283581748803771853092271852926764567566082418312051254127663091656069643598816830215711719385621057834108728753399747295849735463316832971673229009131049590627245019688126970197107400149062979982266806417449193580858435117634242978612891250042107624216916148167715317613867567559187857308418845827316797802458882979851034429618040262213180926471706502673252620817182705753477135981424566849173090398423520723326524830439759211936667419377128288153551554858113345623376889389646493990038822728116474621341118039327833108943999572075696223813941867964921324374526859038842916950720287460210606153303814738710742069404065202161858649635072765711481161861543775367544064565960178496487734341638634715912754214203655945500220403167004557265499353878583298854148954700283872846557007375561565694079295251925325948076116952602542417187277083229684005890125570215723784704134836491073386958075583055386423978488255058920466918222443748557112875099360660238756105625643216361448327598698228250702653032418031310972385727797971247354644867375712015699725737922674752110070083520244366234130995760486094152232621914756849060859768421200366904489750463548231298407705448219344230553766367033962868566613404958644383207115925850121200474241516288657743007468508899652443243688534864646675926972732873579839066861440091618215012629784998047512128200659838239851084738849720321833726236741036049997454110515549690745868832029583798408738807622507301283020019277366868890548199675787885058917711342087568946059941187412438788336163236995359939169103191702291508363419404281626079139237467011736061215249896866253947175418905579472984861269975212345965163411011610631144735144170396842679246472782451823555180567806540260452371944692709511753345019812065332065837779103634572408919968060148362036517759948511422871862622627241561107994587746768084080257004899984864600283965938497169634673782939366851446651297753320099562178211787793285659587930372885586035469130813104119798858603811483260786369466646598562585482053790913598337472904308856855190776289932879369893331251975337516606146404405752570053523478663962469843532747590208856940368660524976069878532294948113464447502383346508492707636421412068331679771641775717264796300638323823867380722178938718282051159276248069743049302059677604594656690891555103318603654038964404442168636957463670929890499305884089462382093159364052047168936645844836815082072869445459644441036569734911983430363942371114416469694526320117557982848789071054684471401543819211515127507396653483680885926690644215621331403045414486330347260508991256116897142510124416746831845013287880246404772147959728809373890490012872629348691510587862907857522367314949941803774212700613773716057768690687488742670284332831244605952801048898286770545145141989955136338956408832055787677489239073242513008979402186556306381726545413891284546482815221230307521238167430068033631680326484447734407069602674145638730366104122824235532223165748330629301358142262860597735777265645009516020503158694193497226780998722547749571431349657878159286568743640818387572986262546936509747766629318031753797289180175668238094397851099907386533114271807458308174437873663835169988044571118091155579348727013110299995985944174625050341964848578908173351961783795072304031166545321872814392305309106240642658549622628410875982764157368445990428428076826526776308237302731812806944106395312557909375268525419413973997746261565798689107471221251313055821543561399540847665078563026533793695742491327412675937662827945573271255945899719274216150475883818601085108385670328355524276190050154198913891233877069013511306185046657573059110947006423822123137135084647042923730800104465567398435009995745007920713289601931885230098437640856626320650325925425542816260282769299646451479600998317584319725149933906090668947565733669908238422721699926073410149521348472489146670847169243630747860618572820007651414000732403581022572395250926272913325611432546293004513617336979283542974502236456222417725098585190095051027348295749563290396156534256204672348589132641136677379919365645420020686705317342923810516011877433154234025183276340240196043937113563128721449429654668345344852567030521236357241354874469266034159273476676085352338894849519392286762670592588559951384193358905857482214562578383263842794752675470976167819343326041816270325423561274377095254988692242068730743872751901494692724786631716991916752045661254523204013514098470437323764301616669922942389206734243470428745955420400396516821259424919566557027994611725413983106251466764919344355443614484093329074107720007538196753709083757334925023392278894734812050360050581640056701723192133779656870311963348617097544648480600767191127237911443658233867015943574704822881075961920190143669771414535549171798118502143250656229922624620892844560856386503052951011565005115972695203112173743265200742915123617591313176166538789266935301837244444500317062556178448933135088511754714282053526420398567656687075578188834689943144635020296167081869622267866082716683935611603768329114032520303563008921645106020851290145204274705474039993484797475795170682024395207306675669562843920412291141718094606538452155792530991164382742878499946737602428096274620225069089164215963760050435892744504559104084280250759990473162607032098891120022174307641003236451232576836244725282292285935230422415377804417458929688173798259890821885556285343616572981872712491587058997869490911888237096318980701657785134498502309437950324216605132573979156692759754749487980602759950475360508317327314508667584701970439123844086526804256622078391837187528923117329844848902505232314544272194300749807851910817499659620698464126551549224732400752410268659901730937392011941798603493403627381053321783484318046694065508252077341149148379968238294473965194915558561091441724675629771933904682232608329478939135388646784131576685712695880695115677151550150960449296294641533384936947069740790539440089922165349428761618717560355618814675413194844936242809110888082583345326979845520004846708338021642653967460474196060165035739189077647933525735290476542066226933391922173745298453232669727843438949344640369532661634326742095970206095315192490868963828652955313963826624882484559500728502492673670526222732119637631241253847879796223219006737750100981415905071796352404040901737174684299234862057648010051251669713064950146794200487049720831487201491114289290286948545578310218014062885029502913603808230102126885490564696721179467990328689936539117248376838418100405637428093356401289802272667083951959194076079817672514525997948388332959512802362640347718898896373004479672743401005198875509973449830483104770111964775605104511685309532854584993891589768201599103381076734050315942243423215254781284074971570969594856357946909777049034429995376905387895991452997219811560558779825593168123674650837522238935110273936138341419308960496514922397554163747651856995776662343214132226641734156001689577741092800685373344053938646937478069636716513410654659823134824438532603715432474874368357663229025141364777589233988079141344965241672079014609998885230354784270281002621339723147322917965276347252598196233947932056825750449623067700883680819885470062038166997504101088533996655432823863790548113839428244558191652098732209212468502739258088653232544172123872512787503686564825561054543260680181138102912083722878505909750802041881587889095264593094269532287576522452522212316685641136477779591675945114252561185051355487278711986447715131916146323925101263865177036598712445443801181962033657835565217987947167821808825252809772843362714242303096312200643223276852218812601736588341804246382032076490668505613526584100905519716716846233955260584254581845793858812965088167914000711871871692936719672577602596012843860695770052820105408518964077259236679966785711825506303030572672897769076519411169471163819239068598636439508426264330270127237760593291663841226706232502296963214440166180429618489873192335750256801727133068973666841706455487034606541650124238778132408622614879306114239775928877275090606114057519330344365259526342749533849630995502276784471689864517794349697507616162055396774557249101135632108692327338554412284654011038464517621085814358871866192876050169259360914677774502405742783477377210733244783918479849999884239644266150370844123159872921873857752813396021554315585652060311171347578256672238569811776935638193995586127171008062493664431233244533843609844201144374963218008946659162450837291882646728121384989909724348432140458400646343572607468045580618852916937541008536144587793412318718564572628480247847710402954383781823694709192614685765033045630221650325594371150125245845044207548401713559831838243606884968273004389162789504886508140507203319577327782605372941226182263371654671685440609049293213948139974426869887824184346062880267105348782588992724297247981339325954127191345047462303280973966113390960390820248662372502245270895112084537185687642689736280884737994355969514707198105437404948682964737191532844971299430042703785801586368363414519128663162002334242373974124640634530317006738395145606847847709768825537549152234708111161164262497844640429431727146775833756421377350735556634465940810493844336672546024256854388830659916062656613381413273205847729132392638837775966290419588921928592078690052722169364019253562742218195893315804897095902477097823276386767848268268273472838880250657422048108983297658031046580539110293719537457431465741524059318278858184152864828172055232797783404920695485164111257274275545251465147082580395589713844764205326474761697847259340668272384888444346422446073630834556961151151366830809024195897776240332667534257993362297106134494691407240453078482634566729442297621803404895379915064542491047768269555537925285155962613498646160881918365576551119518538031041165483002885411345421616134405601573497451379696764353212302992210841809957523872102231697922827739669316639281687887480735798701589037662749781240082738086275860645776070278407985119228100209173203310858160183875271313351544419340898739247069488282095811478048996714197235714517380800510779487042123162077765138357312594167257461011085656928490872973283710913324432023007151891309177909483017629104832843910422739081956184331743374115186976510221865473793856696541682890342650683598310172134239553048279153456687762488760179202021477432715918441545481905392542364897838047278310828137277777717953925582308939763392112840655217509740721729997626555631737807332529229486225014169956636202212052428048445184373499134490471603221893472764272186721402540157719617326738710807204582138797651471228213656597201756215074397871237959757163992004436200887587736229217617147408910099015345867084796894463688431399257277242781052502009038886364345608633820464679946605438065572843695155180064756863495684473593795600457819985779124643431637295947559019145216162752094855752701997932360942610448007499895667349941491392174173233611125183657718126147161631169058151433353183582485553315716313069223493772234009406994636832359849281344119607581503459012481988702220421663370716128527735091859085069620328128050706746725385769400210267561281730278433032547956924582264580066866986114533838358805915150863393953106765950728094171926327786514135146130804603999142555825205648048053093097426785426742285422060087627321767092225129566354692008447038269388623226767993799671766017960691241237093775360784325374911670068981928652997803120090836062334194097467058013653417021883753817703969926714783829372824017256255182470281596804194834836762542502207030529132919234608714607893020880887920886738067828184821691944110496260664839684833033937187219822465401517870196026814154500619604883056578565469059512575613415861578182776743315776841722963377275200731413925105450793213941717576521638528320461116205577804683090035698731072835242231598903234221758114049508981562992245765985676397950189292519389512914597555929596761786920327624706940825902170866592186642621383956464926086110481577925180315437786583427955557747018072218551818248536903120687963453091529720541240687254518347203197856976248063478919705855673846741849966777775009276929390607668271144493646250145031801688227192695796089407333764384826359697096976956104676862547590390734437367432682112870628223368487658553349083045518182757379780304971459932287254043031127349926236475842711732927508591001039250492522833593858278212738065217688659165732741959881253857208739000927697333314050484341231494160411161122928397001364781676078310973197726048595550977484125077123665580973273739516951984460331356876077824018495313561251965663610216701237538273019821862532538221497646028972394675468353551012144029753967095638073186645134686906313740508056751861692269993479487241349134018777956199582349102745325209484721918777979734152120561322542407279231543118243648510664969905486769559871078082059679414677151021593855106480570995160963897671215932261293795489774002219890566151577889570489907768701567675727606042499371623415499937908613458186521754941791017900218380083870770632062927211269631062534283470838820794326952407621825117772567763687710110732962427640902268311529551479594400707623651290817940485711970204295304112919017405105576046891620432733599925213800967338361206003600106972992236015662256185611604617873575005673668412101117280631593994111030184783673049864162993129198971556791366682547573636706831394240525916913131805826859237800705487752361399276023051821474821415329734315932152827659413299671746055012402576838960758228770326493977248272856000860957649342369930776143816178786854297020859841993929201876622671867758777053168078639560389197094576341857022225769163803616426039120316816189736389705289728832579197228634254685310416138052733935948961337835291515918790854758667272350824977577715671264205077102451335763516698923871633866113284880807718637865010815607556276732277820485942199202688582594365773013271889294524289031676571129088356661372210979926953517293300057750601391218696803083164787857800854811709306934524048565408636430330481766054370717189289319946351815049664383377431427399867636900331413981775498303698308670899587361588644293013474040131999280396091963200513052672160518461383768037944672861769651471624976082413975721211039960715413130896376764138905461213081476502775628706641217337018889106534502745048353695081311541341739757798217813687978335995680200962293349471259746574544346850815043247306066776653979656704664154472540968858779042320793640895508280894448015394052312484477996514356862457383154300145698692738426690658935703935636928735894941517240809894793259581661103414217136138998279694667555048326656799352496349341175089057292915225193100466136375263488478860492151178115467004775189385691479021745083174488302657945570608551534720054332483320492101885618268503439493857796801597466281165418310743808782388181929533492185454454126188707532974762481122328402321927505179717584800339905345127070216098429585329421169132086102357481001609749451238902952785079580080799722159714365202942746323229699242519491555116884261510738002604047606067155394621214612611780593916119624397205401377067162410084242071462068942116260536416496378428012633998211843169403778357355805534889113992876251405086128538278334599824332148307413802731907194008066598533606384933074999718951427868859034537328045680678975045981974918571412130493158133418016849760158349670704642983304377614953593413960983492071173446482661325882635493397868567234092923521126621659232139994771520646929292794722043017674285150409183715182359196297563875249274663855253688616746894954298263428700689887662780760592915004435990599295669058107388558214308432848365993755144026521882391087016504747539178348663574598067931642032780251305546329282266485580665560653251736759420693695229653337347209749955964079566371651877608726220901271054921555339587789526878680417586797086009510242826795200040051536006089521300497702536907787315678388444116932031841046104154363057247893517804799750483946004294464502223086831140848116415543714749260828796653157851967870803937596937687567971928652118716494747702530050711329458143842637587191307030777871459767569630702027901737458777481871843199997806256670681339808156557582264790655792875054089047643370185107387752235222067118169459744910777740416874866636506960186657614038667638151974005825697530433140378287433224440868626389708539666807624826456965626910823621239042263528193763004112102302941812062438138770215586770226900871103399678448904818353567026542796335052762042569977448928268211724785825763992160690053208858497568488284566979192269080431717707489590088211510559866368067050303867609492204952548176551642344608713116677324156940697928944814372571584359911617946906065802059755838349487685875943115144458585892542249225580968374592032492807756339754073201363359184476387953953542978887360239223133043773704624524724912708134432711179757479135231287300752503460998095196748713907617443437981541202164927928176169214376889160375496295404374610212653794884757901048780246444350536967233681992797548924462410736066044856533436930817173483870702114669155788581594952228512839180151482689153584188676026283332776065907006775555340149927674920148420710615694232145501242810334680931358332236010668472347596005998189038916313622796111955527767661247296098997325341572464380687152393635387136495820828056538268063743499522410126678904491889184577345764834001313074099220608204707180178234879291520192496613534854582075048231077725758076615494160156040557685241914129260505838691072899695887721201429218305413285806392651393182952891142379681877385180849354610096295235461897861175706155492146494436756567641943863695671446008118389906482092840059656864108752131177643123729007705022147919005339307223832532349013391261921222521911809549511698642136828169952874306271884730959603087554063246567785051514676769923471176187889418387381991708119375356766040190772219759035741470883988988273286254520784156152946659426736786333750640472916101423818972334696428065379011962268360188393590187293353170215451200284079845218252002935804173710947024673522662212370042943050184041031956564220083643949972320178092368794007179907133848980679128895255035489646625218943766084827940207050635305846258588415293099229180779630457737972734879583074048032482885705026349192617246637403095617011753974406366379099071376092452239978413936579432167332578096631280906901225670332472711105813227501858542725035182692210480666834668089540909315379294337385093326808443950638371005866214906918553939569470697231410828116319989210992014580183143380907328461044615563647950464668210145696397400549120123693780079318965849868735661106829465539485433125070311929309891300770588202662568113574393922031387658893641993118650047725604052179126278314759520038255743533607564654181258547287277571595743848335407816648161549939444001606874476547767665807117284218483821044952698558008285658549268280286790363376663782494980652283398650350773766806249224280003992922049645573807695377985413428772462708908122802443496758854699732627698256053923581606435461564084578753788489142126061530496955861278085915822825780575900136016274581416465476067944632087029125017379241996928443525962724569098532330308783229941260716497919562584968556962223125836444719307823883627004667358257683420145857581863392687516347884669100086716954152742685066266907999436940759761623997021195346172770493415892372128772442056167481453140190554086016809099662534087305754040426462697368225862528957990246134630910093879187913033454362043290681368591365525261256183374477773567687472499957691199525017991722116371157829088207000564932617945962401312043209424974313725980218109418645265882229885649354366856617202966726137792138539518075540903155680326853029729559278432974058180664188762662058092183836795828907774001267105540688773273686505831855342245785536816830814730501197343181429764519326922036995597450539596691991148283236050537446689174546116028730853711569897995599838062825436127675291197242084085907627793138570270620857165653326492311483412048106937773770270021579069202463563505402851290501676353040308537925498706030529865395839340291975220056285308241228521808897551755817462547773883024725194333672663306128169150275325898424086723286095218466543354152850623047914832759492767624791760536684364086699870572581639242968254102222413281681247135014959570938860589541792547642894438516052804305705969194310587548939174091840995500174889100904124659177841036205852921638061109207988177525698799588226797289691719110873604800439269167627717034779474802725456379134482498561498017328394717722720581002373150491006612628676261666246018590043909363972851847253987792332603994683033088743158973457229312380367978646946868131959788626296173371505162909053821123378244660417085804003788464237314907775390732174008952466118262903797257486745039119553398256516593188081678562345350857225308330303412923330381594033735108783137646980768334001679368328320455801657503778804920120908076958359827215473410984018265946783093255924409576646915221309689955056612720462574094228023554772944945950212623078950892567377300277245047689202292335396691710752337088477361422118994967558318862391611567069750789764895713146540856629618514910230180785761954776091499808526429447619187583689991212984889607393768373834108040398429605684535391865618039330015075487148957316857946058396883074371476519763477217226655354637554398444519334683142614520582062225121903696347160101279354462261365994488885966309514342265648999800542181149873361667271608692324824928375518663748392547135819478415483076156532254628498321326756771805396384849557250649066124718329281167743533325281379220220971486365632957729791963265007227739663102816294993984911341995992574373091208216419261304294504027851205223165023713814398350024629464144219823818764120554904426067714932900384345577917044074449823085509803383003769424830984433309333075553396346209929621907328165340681525511788225464004549594896459911866490980106323378636008685913909142726664822339843246794446577394424093734991060745164303435677727316073126132057273770821074682648755896474376726009435254750884240736010530928162496299741849609605218755691806114390767141294788839251787115649531605888090018503116376440081661914190900128105949615625837449267150037507892434141023889841286107768453947738594554094549246617586133615544418913525634324803826154168519546780194426732040778991108090913277447170784871881505776908614607935912037817318902565843074823506641417416951563212904950246682394398433409293709125175701421441636945788199413523762879047695789810238892247834694754681591450988634091543934349876130091680388733513588209803944937807966210069780814683669193499222920610061779672582823331495043916892277231713163463660010657500176789905903034000968494015560002433948801294928389297511272649415384673600643164556705146444297269467978857927915310550611561599030204489908774147334551538472324847605754709859154465549782839674711178992756833186881993823905932354534854215640341866006779032992790029661513659151447524182720498538649462727132476702400901234129758319441966145651348415976759659297249247634622455507266464276446892404953234913466402511804035777800506225668617674738666574349456601298105499521856517427792413508125745056030174046037080534941763599936342512527243310417179298065080210456305294713903270795487594819990963594609389235510758721116648127734977614565598802030704417330408040459550973508056864323405647026399966031505710238308384462946770793142641292257648226393373719757274051676965745424777950863351301207149836497211353928484819314758191926353408859464410593316528128203737526589863404987685790530921053629819215729670503308307701197274410417051507516810974636119643378479628736315755379453373581883328416273670289673238305364539846781450251674457347669625576009413233787982331142783503889931386509755132306264216131489389413346736436108965937219086655049193068718095703205444398278600122123496282685852201075589147582194745337811755055045087222991833008314742028944629299719751412176623398812978252911764955245240382349467894677145642616614371255094113256386410947959593180681171916732321228385712855433938408423015197880616800135430522640097728417754805750405483562018794309202204910961101080449960795744303945646084018435463434385353919373917080166587670314549422783285304646375048201190462610932834824726443157935140261148516122953515318645253629190464366728767447591357773880249203720572133584469042121463551711650404798716976488324758037494427492936859427558818786463058588562371202545118035964279463486887566732677726146556341886075941280871379479750848037198562437525186056829134075555772996642694852329596673824291507787837969447550518563017334032696362125372892880044051164871108507164300114560323421411161881630358634364063007241879343245343648502748983627356050096417737696966902854362130235389865279176407174442147280833856694259228927495724654771022030408567626009869487204819165721731881591229601832760440019487864493298705263086526405728561066164814239900217900924447443334613842764051695520753426596299953023975389268707150709736394174862658451076375276451905338914385850618463543293642832215129117264498402780479268906840284038471322537350303504258278037950887758070305104738142847614670828057993579393588042386048977885769709978131491072571340696751976754346457607386519679575462862592217836697631319517491658579546092242167079817358390414467448852070555598729509754548442142078136905130913421910624889627613594032207973280863956567148266435016133929921361697314005072297542016339312636895019358622246449537242520376661169006435229124739474791738193126179503735297529134879520197874207555000439184665989699816941195120236293615919597262866289717846338445609821825983388904200305667840523102469788679784519273779082598089789516346922963640787349486647557792936689174187058722269931954156191770744831145513326898241594165760969036397806889457255075784835262838246587842678777514638051586790123522763129002784870332098919686731435402561888245445555458726064913076223070786685026142120746603426134628428845933790507629888039713799562889043056782790180285514725614116069271183292155910379095009400253986637058042770731407645562940239577537235962715289640482430797514499197496882909711240842520006668735281071387248129257081352076881177638979024650205134598701688542411922913539229517822485026735304969260811067225477295370726729331924394626948469131992305142182874768637634124739888755359460620322857340691647472921227673304489455968971226741319832163214190171378208266638790168992682074641020594508845199671828292567376203095084586246698620214326579757111323140745609793352254180740342241140376626661008839106037999821687041409255663167715225648110370117404773080616317960822162996574483312542777412576921778789669320933940489032137645489680963322634595721380179156609848774156412846693832688940095725677274541335879577912167060166942048644361610089775975556625894257543613547643261876998485971364790942794214716785727575225693342751259708324375221256668613776645580132330812266810191486146451140431852025171874072099365829156835865330482636691066820484656065225008272140221038364897665084180232496627128232885953054629378298721152335399799266471760286283050293549688929427974967438264306746248062743439987804067187299322093951162454634965197967415747219910071642137997868019560191316232568819142658794177523395107917483358473129125985069514234159837764829705734847075492992295131021143727299326675811063914692011112957759512087440531474839466572358004827326828763741129799496145178972496623474432005833235656083404809682013154366631362177921170261880668365930565604958798828877630507577640486313336277256886739300463701805502025785366234929822163748878390023821380758846810392407131661945633569761916499270265661489221983231632124307932518693898423533409167931870921281698117148594777318553585512191805071241307852184580105987062506977459648156969772354541916033865492571384313128191176862303585684393619791971309879044892976208412705263706911246987578243842718930836875179363085501368958976105574185394978619759151894029026595860179031505655103591272119187039177025404946743638525523170569804924061900729499427012669419250616602566239460043925333189931523860311576924421340963952294515029877238722991544461411528206269083838556477594567202070458151391035825074086978793576062378534482417551852960109878792252171525360469249396065248089126325174205859155828432607095703879156584909648267295754823851413911620823340285271827909858938050503265825012883426824563192080451724544362328209107041151300331393549074620389485608794465282381330666262702779927915591539206831059638544294614990570349784833895323787813694389570326639836117047537855444391660610137213133309712489028641629773421031087411307254496632705037941860182306112742765309349539426031269211040673587539894592129676497844875441084580642520317280748673843234159837245276771218908924813363568566883751388632363715761549605176519590278662928306759342093861255138968656432129111071352994383175094180679071652904303090590470967366120908142438686647150867344575411913232859631406519181836734709411430387680160580288578407695813325410322686294595095502209309772734708004030683493301095657088385757735580751714644108348499684526715298351535747121892474755161119580488400579153544643522554399208001161463357572897219174748660416494036350401824793192047414440705345882943018836192441294465759484602034950763788431693732125714131379891817477056940824957847035541405965993938884072323623723078922085606359058388144833236966188394835819254069910934279385730889481529064289595157018532886385307901878272643215911296482264181928813747046673203603896510572431324793273443871081487832434970433489745784495760357061459620770932626856439243139480884964071846554212722612479871401798181247788363400202433184759942328996045421788504286469710339701435246545920585405420673212767708611012762728268833732465260288752719450000263235121572505395740169419329484544402792314532208379234974262088457320199356182163126191012712026858215427179865493727409925653356182783928965107197526010235701741396216780184179831346232534952811672933544955575770823805269192927294081403253488457349513046458182984521982692525215111800342424472050865986190201699052568251208817409285926488619942395012570389284309900269566203043338006751415645901650778954782598417763742943478761465588060908115847123577379913772021302876225011882519482858764653616415576025002746799841396701418789572199956502276045757446132100201552097228725849342409621110208216148118662596061380813276202406202876911535649220745754886650850790778078959846959982347035551631356120978521176143707323364694112685847340657454522358954137490129435438929446689010844666129919062065251372456354738684754943841399068058097099325907770703117897399035163620605804735008764426849340006652089013754005197185667853690144370125359718695401994410393148201409587636248133561184949837114836323145034311812159472011470461046780694443788785806128401329814040278425817706340691752212776088192682878070889515535164260733422570089731021093670628513260195838931105907562613553488675261260768550853242985081134880141102316978872054595769837209008021306855172848889031102559661467818661515389801184046223097728987960509729768586112438646480838562531548143527696573286331506370569217767498866013011201847441159419238046150640497468167502948599958922673427849470515220319124673039855916252425638799072074772803126933510050037709455604249909113106213772003070664576343680286094510890871448025591357748023978343370415454744173377634967517436336875523720836502707281432570962803055223256224293002602866695265371631736952334507853701125811748228011797723611562238015516901155621379973158909044400218209185884934525809625383736470562345890918766979579379332645451265013025355661453624510003898167893566827213939601899401480357465575552511861595425638922134705407826402877547052508117416122174076379389434923102457399876916204547029408731698368759483573060432472492509514797177273449103665215776548435674422355806764736713383389245952900491224585840649745920687625478422772302793383095455481459568008661581475042139502830555481984215868241226721686698940119809736865101575181546315919076096070747727777851190423011897318849101974894376245848297148564019986712743667857695585304133258023386152408093799376387391383071116999960841039789228422106176085912976678728869679162341506175480586646307542076764415681626947050227696935874147537806861873204098301622848222226068187992461466265421747062678717591468483012347190193444806928125938994919974427362746754259382065429271579485281018135177132860497253854147024953131370132135829275545838087580343835354883097069224160113476518854327814084249801530421133687660667114054128958529309718489472532123955291629986247949558140239757612013359322405784466611014894846401387416057465005719532003186450463711384261717591091412557709981203867331942748291419526082636618158150375543040649187880981742675000400774625512272577330091880848113603592550961159969035192212909982967803792207147948364471774351896386844150671668772121352545832989186938273574678024032819940696278729651850902487801694643068247704380116909327900802080766930339775741833379804114073890854518636318454993445499807319007553003526519320325824155948774020602566849241334056815590439735716138816018599941341500836697902354679152556509362358840217151990816767908581312003924645002148996006711460038493270067740733647604399683670666493222708294586710163400093722078533188754898429732583173931196290054578542537888455590900351393778068260462612593906040554193999725002022257903171298246372832093975552527006713615320565503306530587256906907263431697094086826169707442102973456804581230722569641626807333189074503984477933433299937838180507255144835492735185776642395009495775451859386126556695459307053238449528010768902097300215520144268131425134882901007585005759103236432052522981324403015793138594495376655017933504584988926352048421584094629617575563671674449258784388224104737691173632210579696481634421128307837151147798565129698255748786053956635736238618673174274206419027885413069073576495614189022070053387402946387156606262107187337026092164683946789662899141766116329248170886685844672513567960558209865128442981445911972634453679788566055063482969377170587697339399637557281995266727825208567777175292105094856630760973682983796962952787148513458705137671350565992481689106997370775444394930632182055242584927850485727976328536408984395287593130898587119547796271059843212570096975571356383606722362953323498152939411266353353146986811516880962792782734205591836439316700106386651257279409216051953986716733465812692344892068789396262202380212360835534058199840130622246604199332508924419051052935508044845215826015171720709873622848438360504323107625644464712356703868267978343549684682664361014829848645869212138810832723924106360368173250580067679516549605312458212857243061532878766124293837838833880881212059374647535901183629222753275278793651239721211812303452039169606283325668004238770285751590549493583725134651403342655272943662766757072311055346560711573970119786718461242417002136278133668424842138894449202655325099646260940621033561955470939767317964557330450968255082471104748229296564214298045653098815951975608852316375245992903257223710766225134567802502042380798953553561065685200497764662196692777140630554416732428593213763273242970266530782092910542723323851921564534987926403410025803133556789998398755648645300388491274504500617328317662628690976826903434787622660644443898668497926941172493951121650638392155170697495167258923623669450113712817019527586147607299766922297027993895702679719442775877500567161380736503177278736247094606110843929802060325603294456181960940359296338941242549905629239705977752875013368261338604876369896765811095590634404093286798573919480015846098882424491047699720118711173442814367866314891112885237256226716076296213868494005449598418681365295488083323747553412611966492721979686902944452004277182632669469465502603309867159309633237456201406150959397174568245896776768176177208786996017297178371336251766799531369986694568686730994489201121170105841360946737001375326602371584924885735319327301814002697050796725898285917503177944919857869219026453562747630250394184237026965614879580266022939918253396164030329972480206178984899994860153588544404500194440756202032333979299996639260657840868048603526330149746014838212225376251258707923412742516704536961155660935803886637600956121467971286101788378710683964694828478497610604158902521060944596189167655512590057890438445615027562033032154180088747591298416922054593414822207749284370622063663917960354313978549344218361267952640450973991170203139225072025107733231865689044595161795225080730549640135915326401840984615320110807627659186188425796412446217268877885104189785440611456416849817662280897327361327259055209042862224547975512099258987313961290185740956533154502012182432464807648693639908327013164076066962552356179805446540039360050964863847079510759989490401869060853515127278996402212574958224145344809997898866563940174373731141213828888203485255835435415871917449767566628758171967294951963122788866743315014677561400886060294276709249744063273754032516920042006008436077837739131517182579515254740437297670575781975756080207756941807890719156584162407080563292802231209978114377043503864502442164737652770211334454527782303211876568731258602855265395054132638835607444157170443846051094280070130117571559858967666764273074471339502621755350676121464030835422068224514376005838979805796973652020913705248813539391983034868029482061552215712532461910976561951100666742280193534895581986489068336291748042533087727440734646289097545678871367727238370073415112863869637590367355824167939180491365036972620364521463846589761596785416431811791467309999203612537665036894209033058590529361164034003127950847425044367292812733964634054594008836440969617736297653757011807305618142197317961865908570807204816996731678888200666266158756063262884405659324949543814594898902900056919888589858222997409493416955657158547175248210703919413071506321017235127063088955357687648456610261620076196408524192235973068199674861204378748333196005374997984920589935505597109093484612532545644475263299132558310611818693649867017814018379777087336126758380396769584700153512717598015440112247675089201728139437128468148065542871151718550557867796416230935155483255861598557654204648893238957776911810597883923568674501333237045293421614174222058885284679698760589755806758067747670074084295207317076446433672274698417936364184254995275536598215156984743421370317505205163682059239918386230939835361854458440199539110846362955604149699369605607787678055620302981517555854897866654608201769217018382602301121359845733948498274832317035655034100981030154639314300823398694735266003361868116463051654317261575669324379945461837163629416441262934905353398066103959184718074641564822785855672285245401746981828836219196732623584769845948376227982228028967059339759234473709528723710355615419238653240628386186954275294413612701983216444263165618403535562167909893526181699307258643049371611055284321545919633888710195603621282715260556208291603384511432310039311576983611611566649723559956669322543842832252442609174201481053731277438438742964893929968782493311324919352328398686032341680258589089628018595558727332128250555476844326008175721092826234856733435526209252656269007806184945731172694112584153929017811429865856299532947475086031892956797013904026876745404153134832859646875997561103749938191348237728908083540650229589247300950088432874481692324384045869059817899422827723792560009679166196218210824140309603614133723620591779960813066766664372562243123771560663551759147127158402623676754889649324323083398992370494308134234063636348785304929657609804281343471811481343749326495707519584026584123769082032180185829868396451885964109430400831908509544066307431890307851507302468674291216772452128166363798754901195223822989821720047770888197354162772780657083679263701429233947823043760597527546614190345240664265730532142030310860117902112167390057430332327134937083412985872759066368693723805407708320416859274800972197569946052284587359180871904075486969396056325583246968921548705262038820084190926034314872692392860452388996650656778221529842056120788177080169079882090835987266864661050942296454508044137598114974139570535832711545369529479273996009203584378132467250051823030057416739754068675103412045821493896897372281516652987563511463049514021036382672616476847272089583800338225184730034049481156479210590885614033269457493647153507985470312964798595675250209626243759151717360896632308596116599852549457876144337780346495011732055893971037754886863591245924988498543296093469332643543026017677216509344988793830641364773793859182291044031886087201203605372209031422614794386746986930886147139324397156296292551007798460023051084620082838411425391580707175668702962743753646538237578449377387058523931847132424089062115308778462624706003750826904915327239024279275637836602020078328985244327868542597414608675646485947438087741693389810743783323773004316940901157720357222584496777558226021914329307379263933040792142104800720639050704405542124355744911961887819038612793283469018594516384063922675655710677416707485793410510126620134560541697089685749401808802102546814535025571011654365547986897258411422719612079007589570776593475629667500490204727232937458289729320371615047922903653910288307403429928707029734252817712183355364203705694873492161875407159811454655126415422944690033228060411199643324061791854628083125749743030863587678199857600755087609268859749655880946781227202127154874151604645179400156504572730562370684676664763186771138333616737374595211309659150075972400020959185749883404473123322261251502625419952951030901783784175588169614426813889580058704582515874150746869526843617184880863832507151820344502569836904844685897484621538905623059042404870299729268826077566279391431578229440314998522609058059842520511210010038221301867732389389792855593236701333019644642220678320967457275471211013509640978977704806328139450655634250718181339088141084827755537127657619796128293818410647429335687846406827858650951168548783407053631565400692254159311033748919538335929781679067085279172119621379062471397215641727077544923695899625819989416101599742515875980411907031730289748662233580723455392930953078571794815299808555411766015566195042634321549535575873422144527498724639283658035522880668936116021751964014751825942670690375688419086316004315218480856296898629967373787207965474983943209452362563243143373362670400955721603934041374699118896739627527770342471526983071909370781539842790257715920059436927223885452080106396764540510576748352958617205418145997383581817851706280409528273121516562001471980202371753235008218509503924720807857539467101226851153313966626366766367842099358744289314918692604943787491707023674611715277199831392863763282615386070399580678316861987400413438686266595258387910008506608217086747186712267369117804200209554886459918169241367148518595113762492058474222869484875112137188572150001468932908694591134261047516682174478692476231388213573941155584458380614060485967061141660680718844805618196442075912599204290976134881780653586441004951766246021081089728204311211025646208039187541615698337006911995556669039858383716720456236872331514645307970977402329389657874394413756322179788981150295605354517176699235164743526672185999647881942026005011603475388727098678241018536440047480081100038772060659933110004942501544385988259747032466910142241676684120154645986995914282141289186438946891954980041753385533790412408706572934037329215613114826324455677592991838876604183923972898091229479102880221890800034782469010514311777757000673012086098175108197899427540123383128211272299267617970644160095551639622367992908541763176418584708385392085128166985053508139247025297033362282423886193577360381106716703788767577668880893509306161705347139737279528419752005398887775037150938755806824591492329398686872349671243239902369314719601853787669061208226756588689426897246154463174814844692328726867327567203925819763967093542979410030046421161507984277108657374460177616041301227983957950473094074930691384875314157982882458879460367119520104274390848872681712433134154309546504605426817929350146082282953785937361401025072554298968304473184443596287506769807624834474769256818379511020118479221917674469928991988708019019661074669682237024627258873620148847439804128047381861695208838866848056094100748686040227539827625252422232439340375437218615602846234261296079120849695518631390990151264573045783418765041673418067523127703969254539024618311705051484194578858808046081339815111323610040528102657151533489853232375486147141514594540601484812762073817745561289514298059176210590218850076227905351857990599558553258915912351707167644235562481628815587836267075846710542077159873565254063874294925000750866318157071931777542217655634306665499915902585378464396411202974604013870658006168806115422069956079699668037607473468478280098547869391868176631540762678962902299951861470541238110054108321816740039057957347384325121901084411827880657610130096893458140144124131694585205577933714677424986588452177165080464213563058257696741577794965050195544053759401097553540240486357648751046074106269207229537989017445411398847497894770983753029000455556489479896620881426214924671962873827741925572224515902231576569865330050283623831008088010778923298268940720276299885380038215394381617150214572400496074646594090995658929096264793185250997752980394647097845582173577299119301641420439379152660534407352373404801495356738378318208187416420778397575713530031278659334226048898049521511463799737384290321633874460446354068596891875557321486149985345133578493605946612423538253466233085496337715025780895105776023005978971170453937633286380578669445602104915651464171695731014137844705552401419978385111559594842979410112029984708984934610175935817809105400751097518113964707236274835844951868260320605773087465540098654280365937824628228847473723121935279744288557691296009725004237025753338828830977246937987292778880999996136817124843766707666843506015255400368096400415493094645623693933203996027281612717412692068636758277438751055609962942216974040651237153565885918165762004273005445410788851168337585110637514206981363749455959199660194547580231845854705311588727378388919178439660745602319795979730000354256204674759139785735674171986921754747842234104863907011406387677604613432837132906294397563957582710073117341302461492862010380342196360163938965239443276927155806545358439991724051689287246813863577717299318181740714482558616404072830775445767172092816809930813001198314971842331667765849778929519019210763605051598644662775897512289746910910920558241815845459179748404804959810968362473599974329239969979822926494962665215960379169370268316578092168990670838370468827659402973397011539789143590724763075417086967817362486884971035308461842823250510659801783858916640883673370688668649112769955314127059020540314792103702443505360222621051357583319671678753543072553703850583030857266239061489606998585697549031939965360818965967605426289997112272712329198160196647097959006291888707217598101723940999216944293707420676045966846954678710430797811213637919390534708400040395878485413652759351527397885796394220884883729328011819854906072209240464489694582186521532474491550236789344728184417117086495948571327236459310346110382212137741556618416903750298222092339946335109543522357060901890003551420195369746582381530187839009224321340373482494023620338993114594033899783054513586574185684570253110229055393775862650271167493914003114136209353864432123833036488114087538437573769047946723696330058671618266890468923374286400385301615748666006130088424084208404696539581983592578842748861290465387781877929897354612247924437935933753054112231888878156792876838014170354655943089240503642369404600665308777530952777248684870910687656868303425983440519632582021716001756731599350471994874088091149960591259734840536126064580304199032820831875879779290139597379557428876130781670776270666044948203521976421851104759618538964790166481935667390980199981177579096223641583996274735688692000940691236551518806582252585018538133933444996745886019567944592069137755503871679691307889760338980259997746049575850170786888938598851500534312052345514861122457868992886936365526589241253472754235955058806208704572697158418221589899212133982146058759701166882431806534684030256374426632920088545451924436535213025740908065004804394880831100604442750548702435307440867938261337624504890942095670733892562779248342042969977193035422266776138869551073868221531701832477302585275927178241412498286372651264221171057849848691288701631329197996068046831512765866213990841860704506448940808821673247520948452950879525308397671858448467974457949618569865708154688171796787417568411910896918187122705125117839438440128119267667614002528796470809752414558032995510379210721630082035388154373580315227417381493081197343219024770439938379859622684685262847555126934384788957931979122551582540334742386187763665457296304712480875755720057049749889851480700252178790210800931700756389221730608801393993554839241455700469971116090534254512916751769588550250138806929899673825379948396422231267261438993538063090487298136043192769916180069725908436443516032679424968737650398613455214117579800466865393992903582029678740301212369139666051263072747541834348915092969949988341067386331036047260179857472546766234489605090441350199394386411395328994869099905640655187933558096609461159451016409333131301731066711691532108534918252492277512268055933387508219523014966371197291319004456480154830056105418263804457240185967764715573427919106762307619173641946594208890802906661408379106051520205577332751738895297218364708340994727159394258129437556606550751796360885655661590205676330356256220407687811195539054870652116486186761619011530780492439984716103382762150213219559460333778583355641651075028467355203849622789275663741066070287274311366242778985609770991145271895798466754117841069390935339464102456804023925446379915724563509183921347766408763254603426980757239019732479823940401033217399013010700651141944205243565967527237693003450166148731271703597372153607697981288950089819044358638200851225548733820439616545495866561516840092832081297981775393779982390805124867309990093251906088518957041566745320055218427044145969115218663770579627836859166559252446757080773268590635093325409420881587960620804740597672567152950449414039234076035149723713439240226381585595993557807504407832264995096281660126662199058302369407845763720670158828206216651629723348958385071091780949849715238588482172978898203462060958437962442774543994734632334330824749248390190973393101234556743213930491685676885633448234923175763108763679939080852002789568581937844070827207566727446799386443814511338715007318096050612026206765840032135774046035887096972889997335439486849565170234474889260409972587830372824651915736596081053544956164169422746639008468892269453711695297110979388762568045928664017757153063295939082426477045250365966707115061196387018267812768703825101171066118856725646721980425436176018156414571514979769155860298173489823872165222107347355684258230881771031006181090967615843450633548945658068128705619047819303921106117986212731071373407419632663198226630589202688015886461600526548966574703824283814111563280724320169761726292779649039619707769337901376434045867145434888146272933376559383871961575206956616331313268147703080297569765438167001539102792701829241191016879807107205055338931510513439166432377976988415309537393335624241260136536439865813083826049883626115914347689360258540023911748774803312936859421653909184882589768100505816317539748735551300451839407401816737430779135524762521517021840772183523207212484935521850042930074532057496691687335269552204476245468257421106688528821550284948690962886675183598866081060511331155933183434165260179462917055039894529695610679844967368413228471167016301972329686924011096578346477994645655438324986358014605215317844806918174606729084438752575192966357225820343279431044238070442944306853823713298042359501006881818947360375818941042664742528131574467694530076370953526079246558265599630616124503030901735118789268694625501198316620615568829231015219776381878343604266619562513339436282527769369203111834584743733263963032341824948792754449420305849676435515166654612000826123127264224658006792819431656279273116343313559974344368532761575013810768681338669433891339777057129485085013580246156128275679838305927895719947352775071621744244271991259560187984788850145380554864760290759668269263680334896298935315594218788037449945277701201567005926257797103284791991750087868564215244017690985879723144509655422320981011358952078389464882535354654620986841842099001432883221109680205159585618118238751441412744131610467465736300198499840715819537263074346996485177906177184757072883810119732368950968871965872742804211828371829727474478055489583149210358792028909917986000474161510998249780828721945639144571586222856767255691514497723915303956757104760209606427315811919433385269910188929701893132899512611106273669827067326967451005158942887048700655253511370165051050066929063847707716717736595230295216162240779140773688684470646747451218271761656642556567869886534040016213682840449263346143679816532560794105768019376449448829465778528722630467336881380078354082641527210156418803953120810903307222545228474500227724658406425631856923311334930733425625648774829258439684126470044085263420992617321550939370454667747038778591570982984654433236274439591777394041948623374178811196639379489982239432017773881005552789801568637749384096499339041468547603713810289351034583817167975017649951591821394260044612896608003652215049546798722760063292241128922604333655111103258656995866723984262644161877793236229562689709620251943349039023156975818699335596966353339428249711500460746476269600740773645062431513242137039481936047954706692963492142358040258718554790760758001134060436792904658163818280079469224958883545679944768753569008161902955542867274026746354732057624615599967764382729192542036653453572454190926670337604142180503070585419312649105942096851400827257644650318796674956613593040109338310615613368910783239384278740658839170787076706245173607734490119585968256663770099005237782601513030318199467567284861488353624378218505984921161221138348536729210621962031859873489304856443164261609164124719897147130226947610414439962230911073907420456518818079595495987626914415996314387559741101959539237349968577622756643852952179916181886174672841512752961237351257497340981920293549557045283851068832820442771351637880795017818978223224664737746526235690906246479181745800868633548834612804169205601038580001072460075750598219482979005268984066686846754758628755374836057563241010451070353249378059041735355457903382937776368150902375392297737786025256211214737726730721373844564331501526310988213162698377510875302731816559143036027996073814972539126216918249393783631939432309343262282813861422919866237980241576851025262959629285735580657331629036099779811939761274902384172158693176377070962897889310739656137028502436342224823754886180482062476867280265267763047410336869530604057760025589777798334228135039355566997196555447610236025757875620213691841983337629365870434371724780452726872415268306742386707717780479015675776598627845230032528602158784743010613877206011035134369993058706023194906996048997103041701452991613650145097093436619849826708017505385295979815384754917133310156185152550868522365276419282502473020809152098307392484951627336682989566258731871037307178601864971935642654154897478412239277561341569489466568666129837712268679082638200128758718156333317409752670694646185736543561842687593206705429981988932540209355640632189742523274895727315029371578891308775329006385975513678533509076319573685468577538159357288003676192302044835595974600876066641622770871427316994773900984882226085574716993956848382064482156552018322901846529206437940460014991419890527325324492375573689985863561077160951392563013126354967909978517407946231829951387848329957292865257516939609576202909698754029822047664405079477621219446660381444510867973583837725648253860294368067573449687692578175847585931987050873131485371121620061696987421978377586754162492424242161079298350419303090163319685139405614245062390063035192406662300506545568966979966244134631930629325981873013903688582570368745126651661873475172259130790652700703061094243965773276343976929965642487291658181709341071418893399579173497022799745413134599853215997640848093143361458246881398233178548635634556403631816934161673581512233047845347699334245206225952491404986022575873478155096354631336021830124049971041530609623123861093115432660032971628748020336693301253977686059189205548793339906126112695241203217456780292083617352606038530645394075158079071402865553466950743531996442660417294073500622220362661880074967907368664470146038487343849690858010036054284265857757070336067172091438055834155460896304036098053059779636458470492296066306673179576764850152404418971128035993814714691533275379276246434172217900730953508477097749502688863149826245057948886482625728203976267295172077435235533593373454907145885762475936719602221023603589487360824974780701087267641392534972229451971088367686875630770991406871921578392105018855133526234442237307205842078135235642593849555001910550529418758956755295600007606013354825844523056274505754886567603067853664055842039529434924849938498629179055585474902911310788647447072926133503529464809227501415219246296821253388299609297270697454451306870950476889196179149446614278649385166719247856498748022186544961454584720644123760422813004719164721708763560490332274979905853520645055866890586678325872100158780636054409587814608532846853181476170548142491264398400364608669440312656058171192103251128892529943490249804453311692807279147893056344932366246642750191281045565555846783834569928404674919928656264134600804326005434655645448837047227603637055520493900727824669033338197346957525686496234405092144556298517144515189696698558797892893096450663000477056288106801487645609740714875545922575482746632586034826531111827873292549220135980326442308147929159456815595239612811577071410394667677769050963861924189954626592344202058749444838830328010837386531379753035554422618414496205394598088986995630399002667646859072001479188205507794930646384220588501600443972003325874998610282930569572559720946754672589748194786798817371797438388487478508989073352865042985759806883662671299725415962313723728812706599011680307283557050873369579258494681729692916990058543671042340869796236396690247480366989212895785287085667046315364762247667129849153759703997993577973465447177540248768633960209876648005693952629319191815012490980560733097214766337744807588822694548596784099395110807670436638224642681940933765918352714498843081972772272093112346512156204012995065409513835333411105630657300649963129740090681822168389241753858073980078286873404073707413292948524589396608332468348830832197825966593263311937434312543711643333397158658272232924312692832503496989629703544538956831961526738523363982585297176722547864373970036304127736996941041629140032282650554871355049666510805206185807127701309777138707914441326208933607599098733028965242839278478351085135961117020266664799613530741098150850227958401587086984581207852401623496247716517881878195388617682775264120945982946251794017905527679066631182908179588882770296583699827203807173622303674856588964088476061430809021986258731647881014615079897194082728565542742831507719040612251075618766501724264250171968512956178096582241541138399191299361335408949688669768601538736640780136150493055210307124463703307280506312898315671601867551743855213252263193657070584346869496224155848327241493840793060879631317667516262630751892119579650864282408605492080518612569583402905208208732530381217740288424056833145937029936106347229250830746284725183587774357455404181187339959310929487365532778780225647356607284007695911002517248488476914034714569144837235669594600091340857726616768998128676544145775606950322494420698382833163045172112721032352489537532487074020368181601159271508293107718080593919038220037227055614985985077140299471447522121594518334385554515497057395212107013820525020502098610546130454144910305197776645162303521976817053213886653112392912447629199460210557156913788864561040305933911038190317773068468118636639462429475797453028843602699586946305211802984555149076263735159954519076251436272296088081472097687497744724326295299044261636595203438292240157434252749233099921855812057381055222364381115852852088985355828948064487902940877450256414769850212774177761394273932344233371994174937567833393379094751111317865079047450730748994301399519817421825532296345602989337834834984747648273134191356245636561161071480775112627840105214572532672898779198537272872830426438927984805091976747553277907685303947415924156447511383663526864713710710770929114147112023567644463922868819177974597106270466436528301618408090145390090973017250932080740313921071614203164396332463449297027026054113470676181691208198885082328016938132714713505868185401484178413318488537936082008976261496211305458416706942875303908574002522984386097742990676767121565371418258790831821652819404498779177707682002841414707681436436926564265695325404658419167657802089727626416503971342494305009331803274388698212621374156883105066050575941279303135596417520018375290826093130227680656136312148907384039470900409877464875578600614849709609600799229311029881517418148511550599356392700586433293264719696535016205932260514614473898220154218817933172482526700450250634564111640390751311958220409731046138088242244689615222275984891389840101493573716278770171187764187784922916729088219413423029774907362235727076718550290899111599207235986957840682527977498441224366856499054395440401997844227082417091792180489529297354208768739702793488384045036125779511068154334446358538335450645158271712072803330569299277839646243078254603928454456493842203422784401750857648727468759780668514460498820074475984775381067083887691640829407286645279241659129538002806917040180853979576636021675140011360559450469675139805192643621860386047496782948788305521136927262816750923457147166627729864225256404652678739434926552318413802387659507418153371050251487666179104038783853885020129062098596933618879036107702497087024554336089440691736589285667002858912703535878772222602018071915002794857209013512831118600413479791139841975862336779173731741030753835768378574701961946648775915717925738742874570025994069774812112213827902914581176421283997145708572657775311372436898344353600765838015418346039353344294292252791520232118918099567222555545951977713691717618182452042033061028589623033457982367593915914512406500249617286974247139264982032835450278277331252066037416245218802106199331809534808579172039669289090105106071912884696563356599215238980597031997872013211624079730493294584573661914383558564966393810022298120329593135666931331913711064804568948727129618112916062941826010009865624759272134379006202284222593972504242392188604418979430148957159160834825447209133661295436452466474302604174934073572190114838426416061158421182650120793971174179686777886065597454402170031966195910763834304926032503923402139683757045664752891528250422862752969279928568576723775201994753940638943362252243800070915579615500919596194012612245710192075559611696794150257035158636032154695267871501472785836313214698144136661319473082973352078228553217843130201754188421257865477125690595749724697480904318289028744877874603198529009542681342773700716792022235836293263225807033527193802296695047359701661212264115093175662381029725639071437420592816591228989616266931392933747804561987913727262907588658982753419094375680823795896490217600394537426809603497759913563981086343587588067234820813542594773363765653175492441420782897897392711643385230292460540423356302773988646499941033381329741524321577976642484110479121561414704776093048808491126712940911999776868894981606018525474514944406722604732570461762185456043453756015206167341108882038953635060039239813946788705010492385966772747902318217782046240305109226347506057114877681974925729175863337008961597390106254711577811052139709514596684465584660987078349255064600495665025204466602722762408353012843268263441252670833112972108780623196629516375583432603251619015829785801187287067904538753383425016270016354505236475912549551518249734188050335257269183591819292746320515373500713383009938296716645539333518359644569004604513446831914917490049662688675257604039908528973756328749918950617824686011742421509408054995410539543594389293957894108920488074633874419448207010073451926687131325493641648917410230945123176998060784662878481705509127843129036265420524220748177478370804022362921149991279811172022001315162691227397152109398419762679520542941235355941167210409267179637103154838242086204797892070244559097203299388881799631998456142760374159912154616191462603726940930546700074695819884583707942192872724835418493231184047994872197857259426777477394780090377643271481306890469463740221014801250621215361622268361396244729629424132218880978345610346214667801579339230013465518061692755186508838381248619943497271195909443937152383523091433860790820572473618460049551614995986874055009870943937767092710479650609213377154284869706213178211733263008845451655958682714754875974989394342229638138148537574342196629741908229065268360924705488421203963885353383244116775513628903477102000614194917871019958990130119255973629482108254797761696955600298944821335392622028197413923067133984480022634689697391514796931139662441858214582904326561784505118085108686684891719832886392260971075623635921511055699210882432038080292313214464192067459065340557670070473485340692786895475161825073649574538067230349710669975185461339156511956571771004423413038918026402269713794575388614609543728398731237886476237893609966606649232062718346613878040009603213031798642100812394054854126012511997903586379239230765086328959489880537628551313051771883463412581792840409570050639300546143503313742764380852834803433406342224144395068363360735950378657637190711914036407360153208563596002617342626160756813067278039273835768473592398861270358342718234737348983957496614153571135060207212249838049055575930132193920616075427555163457379190522631700862347602401364281816372659505544480105940355083789893482537247866106861469644016375363635627151079814983019064861595565001240005316553423779467075131144977617004422033568459526100532369244652618396419350761659231171462592915780979814029559550956351640384290344404331286498347601019782393509231886346185712907375721173491183320029970949421607713379433874003709195761967489594139208280099655371338121580946142012598809261344111974468970166676287876739541912089964966423775031109287760686398802911889847594924690814018134392134065531870522778272769430026450608529239856837620454064460883251088569882947605384303825145241927161870464670013768000284008997954530066348920022152126931139917408937071703680299992309437073403871368810622272331650592489524983485552230519469063639350073560865500688283738755625666826060479532612112778040107093059840648005943700082892038626636258497804316537752228652949762322038157945363278896328892348960995165014680696171895364650174715013570289939959719718422980389025566174451916187789207755407938581561999883586633042568830349088830926510505480129416613311727244985873267346850442724699207659541585713859076408569544702575153263227162503313784333438873237541536481803165072025236945500285788317663242913656159458006537937873610227666267810631546416257948276224635473961809309718372167844983124922105803902415816436127144693452204456303616944003536188165344183241127862125605665610158543507019479299783791157351493947874997422658665160147300918388709865799297008070580033988070007034875053969090728213490802862598499350960348236645585549803617789656984914075185936031941149053525140037154158335654013816568043854787247613364801872999923228795484261863663233471755558132522095255824433305836541376766213337141367027256831341239525725501066990180663288860426108728223547568376333463734962225104029961406271984056224534926892884798342806663772612743720784789382513563000565121255140413595082014325691664512892106581066789096652840996109597380626730017813997906405040964318287210534293589810936129203542528118213429595834343251216129486856074996075934432574627909109823950385652858073593667506546191013657657476648030030420565252262664215410375004817871461875697382005623851085093269578377019010245590325087803164504394890562395902179597264206548133932239073301703379520387550382221100901970653964160703190220845898978450805530008307644034444271769644108130718634380339689348571384285539305785400615990457850216150849141039172768686033964928009662912879373147850651274173522084168832663722175006406744063180124013695411212056982616794548309519988956765949034901048045498935995300915644495000193414607226282649055143774563092884139397550041592540605004336392982284079334040837850072346682931943591355132756876870129527723319887242560244083445089609494704748771391422218936446732748772170547276440063647982132634345205107888490539705375269960369534486426286908408446234561578031333116613771124423003918000323871430818162670705756485089568083340319121276864818708806706261894914496144182291842743278709939658565039842733238987120803707555947084880659588791368614137467610918830899852874278553283705365853955727129745542779237819188073982640957940629171520133091464532405129647808299756818768175795184647728821046916693377147081074587831572573925731513977986362801646671035679965748409551334106100229770808371077345455451738921273519839177427706264467211805588647151995571817650372681787213074662518920142165283881674718480505007082864362688555007348969498942621462750060365146956687572792576328959354260060647010416777329052593106547540716719213567576885945352494791985153098771543695397593547769759052211553116877335809596083327785065481709902364071951133349950633732190937793679130826279827155792692392729314154621471188859515840917392945442835416984617796986011751000297515753049363292084967851329851009839165883081513398645880351500342322670354865291202815867558339088526116536173429377163796534231756367745754545004785819364147803943107116930460339330828475733845330327733240558167706046773914243135841103215863463973834527631328945118041938271254910575009148312108163414492485993909254432120199640551259582670096986534181592049259790100342414977195290624591742511482049732567064824592162557285257388544389745390945668459196629357826802484764635970915886262753061322031682093698486941558282493801826741255799557111749944514509447191317706358558292341315611099062359853176538879457151708479239833391052010901937669439461170573931222163806577094254040794385861958201575993664046429161799731717947153855605192351559372166813620152032828693535993931205470291253942682112996783177392643881464084187762978746501707669019644006714935936287749408199029566834727228204259493953098608091101930041826603211568394396983189014837418057944763637466619423895889932847090452984961750077953324995928436508721575071279642242114794849777250483755408422760120050405677993146729742679842942763780946241893561890147391928704083390532584478376502174203547105265368408089027454316593852203611023854341691319280796527071830473613035254164469829759900523982920522610410780476597260827080926635153033986686707965889166177308863808277786173931055894887908831880021530891268851611421605940881264160695055414173109186199546883052712736806248236767855010864747247494940654734147313367205913880113835331178417899785804625854946750869193355524883695126646636644729054575126723115173945485083351865097451865601696248474216362659191955033446539225900479086021815758166192088048546602178274413996336938826320799257376922811102160150775920650072404154863964853108188285302248765611217937916445017065819414528505715943458046217381699209207961046489211136760595459326788368184241864766213694681829459794367005504155464001543354629867735633689401393666889270870873020928668284113127154947598342050372022672762438677082858849239384102330163156293725501873720656487135766054708818952897662744309471541511961060148583453696236403376009080386074150233786157960899650578749823504017775139459190745262583650460019716355825257102157874764309538135530890202220203886449922511861043782969109004555241384986641818286421173900599674405524027294474796734551379563623624481472324161994085438577603933587653510053668487817793312498216882443638774653111802332210929757563824203341268792252036360262516298097866697039225524010716952826169223722543454080056022195907881471646712744518401789994960016989783542673243359868398749605696516142626376936519770505632941142084112879027348918740106425658546833559341201144527160096331058318049509211388652671994441681387792980484126553847330384889730632328718213685491463664954558943344138638055969037010243922340966746549883422301031666077751026234435322350773738298384910640849004138761001884210065765489224138017625603019472709885833843587826543464996300182445269342781702404356990794137322404266234570529194162567112175146752196202290005148400557293540916524431202726190727964312013270602227870844829406486784730674456143590222893354879432063640872463406726348474272233788069196039876384654885232281690458150956813276153440136746604163061666462933193381673122303819008028492729416411551421353425773190663523849539041327729733151289121994490760052835468476872419812040713748525471915684547561062350475162023432358300458292615706662087867624674799718192038005269002322128118797923384172508412246798179453723486586304737695880763054884221226733496128949035513918589093990704725782880994837800717187983047450956667831336571133464081463618980534376064871881591366722226874027553118819585260274069356447687063404427895814096043154879170682847520899488554224592864373344713314944707112351823453246314697245064226731825437707387339027061559255698360222259148568036989975476410296711189219874667241350633104822758848386292545129468942802688934661213152162142059034278163689477619355665570943550881355981811120230916706542578797445747321721986362057738815273361277703242977406918240059672262650614146066222918386428062756998389459944722282594750076367673101711109808934113912336022359842718222587748708626741621867578943299209320438096713845036174476600311457323876622068453608012938525451331865126766436533609897062160219879631334441572010641141966859748890444214791003709727670898106092032887726199637820523586326024771327972258811191051971521130268844421525252528887560419027271574506768741544425105233098654648095969909772854529300317450880092380912358380711406315312582429012210959040332574443239067012985295348437380702946053240949865593612399018306286333183366366654334474706643764501631746201656968920388354996638984271029027897177124485618097070425215335869334440037529241405600569146704622985400227420021796670854613393768853760278155819261469438726419184596001527644089378849522423556332428461982131437567934574187397854741700377893689697888657772381258378609506047550336210632774084906478869251784881378022321164356861532108045252825910284022051950212399786055168990506343786005758191201419086366739807699642710823304670439034005558369765238789044573274342819321274008282092896580630524590700788540346226771167913372207037893969939927698318382016246422775533432282041637313100687913669539543298330029346069877190035160886123533860002320201367094510494382081689187888476565845026131664015387129483243943383652675669941527064629441281119744146951800772192974237300633677294078764914382866630359639209169092205344148368705622169980356009375195258869836643166324376240852962405592088473114497468109262193655911210296772949546336853266281401189284254235855013087074368940376634372317488995901925790593072091474609397837266567970440819149925662602141483559940507447778304305227918711294670446670677759422131272410153591228791243943012253527724407574734310577303659827780112248036333812566444223835903000905130659863139580211570305823528211969868491599199052400139195183315448573991738734327720603042012333763036191398199169525849770798909429981664314275916696359809479275193883889524512382974067733418527516429704899071279507911365150738864799048885721698510681829085122240941678243642522771846158986208239036241988707518373324769728950827319617984677978031600075259807107401568161812295481432087915551370428681098284871116011829509660417615245219407982365282661005744648451430228813413111096718430047193540466876247323796452316277451093519722410534298427956605182308711853468089330905498469990284316303404386253012339676730086853819324181432462116198768005979324165852727672644063891068893282628356123333741068229505943390016000020308804053086368515401187804093451837618166667707097655820914407321860527232710315508833736626475741322486185183662537201680426992021811938571237060152854178321421770755156550893009824592855313324494816848414066178929313206661941482446744120895111316482789568331293315567717066466695135768147079186906711293100153106560253379064526708631648766349441895462554907777109339017205455964549775762721848578005280071292671262458946080506383352610209712651000749544170148067060762885026050241268853063145737579767825968544260104217636649298532552499236866474386963680012361734514896992639088951927876900345743480893710740558282383939027825770765658259126888581627381110517124240198011917298944744935037383481632863196576954311937703997866260720353020112193169541129417669833658600854026269070970443485012295620901510403518950043322316963371553801886482056497580979088679877814031580515929344190798277977629341685725333726540904476741986696004731080785815980087312152706509795165446866346201728444188833237364437558088335410936159144627841673960489424686781998123489124340046894110102169031439123430944605040969850651091635739742124563913587597330001371776038042306317560422512769512925888898429586343344592777249542241204714990293925105495773340727526101585130431047104521559296042557846213543841417926724742889985006610908017465463935608077835555706264376760352835137089834202889571487954989762668686885532546192380354692496957165449110242863141882785206300380031060274026673821822595754377867513427404138887716079705869838456817701448899547525683778847458097355743113337096837474218344721153984795335878624998152594918690434395152720178454441633465455806554854731969250071097852439417322273508528406000469573858361030005558998271309760821237518711044924284078515867464328220872861172113048224597973327029038956372272731176721585732784657632662351699355542233012117972649692108868304847729808304933176589027790388053386101123850471309662454976588449074639447547014178732083491266660920796887205178283560711248435575520244797763409304475692311552191432080562182941117195508494849400483134380529331842621279483348553443239100800089888706883080878024538304770872425470271893022320311934614621362540752351404731869530076206442984666773865215129619241121892716079924777417397597902479588621751117712136769561999571250672100756178659930077478024292839873334185239465852533496959227490338336975457510886488011748784314171437515479187028452129307619597765638375651032989693877185200300040082642404685965227339002969828681480819547851926790860210038093438643895550981952412708817327598604524554669549005757373590267091904738154195930344178906109716365381765332252164012242950853161733873382853078882453368635250809618856943069662535641124966847463530752028701663253678935586094842897173325685309215811258085307211026899055305953613619915911733793475125116909545569168782683249126115910360617785531130734775362726186196756208972427872905657968125362116407299017024625217051677939453227593111929730239238670613728927587185293788556047345519764796283728588934367502105662247931312811311694846028411407731717489632875086920182586946636020257102918514178500964034104041458648648536297272819196804448071434399802105543893804963289448848975678806934276184837182071781105323377607684791485205240102188240835133013419506274830642330898852392525079616261519191475979896851591993648495162929395318912512388836221459675501987612633324987119551091091779128616711057747634171106159965688730191860401867007926492470414838048876619745300948683683713382300628507998221844323341840914390662384604829697170240582375667480648430644575207678680691534554417837291565332933653683302452913532207088534104295710208958028640108197492672431603356657946323990116143481547143003699347324336891795096719464792999299749060314342394134994389890275804798360840663788427648293158822722738446954104148701134381907576175894961289720642880178557210328465031205660139557002595084490380628633504485029774008799744268702940099381724178931761826703569461145611384555656529906434537825796070363001075960670727035395953942032196901507302619952842141395662571284349432929986414032122030504813815581505325487305405574976560296609240245056431349784136784373395970714919913360499642593390144209277135647133083978400480057192929438488955361609759885565953241188927181404655583688750296809291067374573613924357007652105421624617974911499658990107662407002509997196836170283644401457157111272549408287672647188215284564287358384827249937674894725094734679981825570600927156658219602480212414092866792268425705495991506581316420121236571733371686528836945675192053347251881138406668424198675532377679991383400546399278781769094060651700444871774599044047616587554992254988879908380098372190287351988035072409452818152750285647728116537356820639430494857541464595927653536093004176489681544343951047657616977886168554866596426020593172529460762492325903845560016447187541720750388258846978137754700261174547093100783433499654503619348324869461069362943042880336352304079202812584139997448299285501251065387981718237362784572837510171948644545541618354357737090291133083362022172428801000813916508635158337387671801083971162663568748739856927520089606448093814803152247678075467660339966783119142907118129435263254211110497318345702291115962358624403678697517513396528124912200985471797890160798214475038521725440795858424987728745145577070837831609513433313780456712237768575357941497251973273851101378817438295212342906204919170790521910551201028264119956801489811770343778460724326804781271517881721526857118976917975438020989050511145821333848026288356104156224922251381593532848304794645968476629463686055354438345013387444635810792343683045494392854679853797589497803444822208244109211623788650090747959574874511290107547424676570281244726812607918379480471706100948358454519877409359367997692986060637240058539289208548575936309711126787555546837524796601800209506430446371407179203130456001890308422122883930486959679512425641837575288279181196062691123994003771242627954436237263722758765969809181095282895525796005610936429234735161735006701928283981951132598892152004905966881869960200487820695060232892589105477444366668131598429585913295007989345839355090488610621098053874996742428036422547717745441689861498712248254377505205263707284282395891617782468871660236091788497369650979947539085034791395199337253823966811314737310301365345345680659613521342835908572962439786746187519617928350181966610546781789108991284389516096720348602869843412095248928089745503533149066538858181534231896715591775582431862204924488038604651997467903663480693214998307394786704678655091070164935614013421006960792828165696648653507396465831309699651943258033696727955552483863122398676653922018224383478283451154901549171017508133641539321864668637341463111569090019935969648210575779490799535335584308961004274495142893726781350492879556796299914856186905383399818786542927341732819407004012407614889907208895384732738618319159257602933372519531530066699039420356515742949195986702377752333744937629432868254468351253089252785679858509600126274710316404153659305853978081453215782767242129734832602810331173560030373872669675353648583041276566287272742046490459819466604604876291059146075560715401599957662847753363568309820881098274693691066641982697489175834483154811814745339390110117433203916881890347233077311781535328748968562410994564601256506391969358949709124913495678247934041759041137658234948646233858614424315477192473806567747854042361810147858329915757427108370815432433840033178906992608197848061217276681847647265828228784902362322985019084317448990445260831214781348108821625088256222413470677342195015341726620391309060001830908757914371472681561118493968009038086330610487094060700030090081639077256168961600596869541049559699417595818582835440369244724376771077493149323025658758215694790682891000063440524647376405327094983216210242873552884540261792243429650184197475674169096280167821735833799414857536125435259164068174677103736732043808758210370269713105309139916914900801691393579529779477243297082816770963760525885899491055031112779062475007083756715461532859900073868559161278895003236830245911729644374720585702207180089564654035637065927507785337407635266571213452997712770261209061467985766941482105337955734307081412038239753698159979114120070317352687437957675164035554487702519679976182145895725703017659002326305162816621413102239942952603208217307010657418165645807452054665649951551901648854240766090145757170059814852654330853024214133705625341301653057190566128342316772433862499673813949388050446297980502077989560403907302835832834057044551835924151217617726925343715309554031279442332947351992907752444919288467405288838827488820813323875184691258492822415094545634473655308718408607755688646731097344858171151910251298472500658477982341991309525617355638601491963498363610616242043428983277174191762176314786723397861999109885144560766646434404512548760410071135661973118989353890117193533905798675075613940805062046255607373230638791535542787329032323260665740114394512491455957299942758124004895297743709884306005802984565759701504830177009760202965774232833975712324547299757126884744660328793089942170181846164805853441572728262352223850550385332564446189151677973478776003648436747193863970008876674413132875690026317505726796228757251684016106987450064897889705946487465999405667853092041465659392508733606882815025386171389282423783545169893630366444668552490193603555152918817660014798329350063912265335469788620737542565309237085998016141858103989399098671478831486244414985881745188723178228950349458071515025328628231746230459265113626694973956314209046789832796889005627778583168184226775886300755456010755714935928896027041558474832138896692745463461673148342826981626747163713757547709180774208743776362933945105987782367290926249392412832887397119588117513303281815974335981634813181692041588652364784205939123494341841300451071978449594344844336777172125808616723337777273452705459980288704596313560333092908423330856747648708574921201142961575773370456156511899577369318842495937814144022070244243329900092044644377310186221390904238255112995653416722884140572758430427008433225041506388974273994249087589660742558527130853228059580190183401662360896436722874071262669776127069710095558867098698115930300924916367007708827193592008238890227937453452124636700044929798737927444197112146470541187619929612314771130108306651428995942722468691863172412171312107697081515337541679195226465995364653735339110295624066252810286868384092328431124481953429060917489144288585564826490110537863096819973129863425187801214645565464253285254957463946352779736676962637705933736025943905302169326608880301205433219039776997469238078128405362267871654137824233732049446678181221557621033668887303360196185029843582495292630143987238387450049729934526871245803178431976309387351479950321221299923606488810536004653801878817855662192553561906150967516445997133422426986156135388770413106065498693210843517576970246967853674072521471661686951712394807437167328380342292796276001453615246435106616336904393205569199704540339922133174940948530359630132274789335574137467045166743751507512158296750055139883099780747029871264017408977997398312854104594191488068125040166309170856996948492808606589402780938248792595414986770178752972108511204007702337884224876964747485624464253393333442084564761433584336187491242472437212565211733553487249579262942074060534002278524880801972210360945580251166257338743595212568988253058368057589452972678086624198649015530037591590824063050063122408588743665152626996639355253270082167991610361739029211540150296509953627679922417498586023249382529654913313829003283706423339166806556715361644197965828012186894951965501420385985123991547793890101479393681668067333383805948606639559725428348260570546847693922133157911519660810366526866501569441015681573047934318041535288842699334099689762232887888046871251466970878981039791674040003633720599970336217912245122293772698592556092574539716911017717819329726527913482952685898877212820491769827108624999684601593314594215872307159561404515688935733749986882846113174848215638706314016367692180181391585126307728012334702825591519888087694573920867245507268357091541734909139390577024848960873244723056815566550209684913586531614342907718844826360408692325053352359800206050642544774607603355841841897668540881088557894095696617392892958714189132236349812433814336185276756404885772883992124424547613481090134407316558247652417551565588269003441724704049015748004929387177939763624688104911746839569387238759572075642411912494707883189501468776500331588429030969409920498955926035004686852135052465749662367568061676922214923750973762908986063863078716310870959313797567837416755925824637178396128538628647032478983550485564639785636666598613384955246365027917092273009824304446127907469496704292848159644265030964179983274179213637271921336217667028678508749306363397207135546243106942524672388554963124390645568097343978730773098179209154489680634394526349212924233989326975737414401671067739598833365346718899964982016853125200148462207501074879179450736508030934274539150337313965459886787595863487156594452130175077324289622766713791631562147768953165336325184922462531376415298054338249221271757734413953143918449823696733305255915458418722380274796309642723236283520652647755784383771756508529902991834634871477248537597305768940649199556479110493341810933254181111772276760415609825573884119578229237496666113845071152308400860946490880550937652186959849110747859408704047225037470174749208963996882972619826793928765716899347701197310854077547688735026714977316925793730652985711513545478131270142869981549662267158494134734617515122059223727761833913349465883942101561888120702639225111617215135839311461494353634068958958069064994231760397509181339696956033834822626523785967655693388373245122688641489435632881184471228934319729368778223968810828846809516925026299315105816218743747438773574742885601497777932617356603530269798106015840133162079520118044757856138761068776616984641734602772168044441800623525134179820698392227772571149748930585718224805115610699128030776671389487190547777869034314345161414729042030351350888593235395548853723816732611372672568436393418058047140787094371567052918133391113414259619819247291162483372501380960757909965960819360380623822778403908130693276655522094704988454078185542624839575499506856488577716529004737037399556913078093803404869226038730053286822958036305461552699741410158133688402560200912349187984457746686693453245013520311077327971995134951063950410099696089721751582705515247713064069785845320304653100760668097113493693248767203472109421584343180633278737330512388670129076733778885977981990629370664378928280150865540339424103772141303677149312971559571817223263186329189786456411574975651551335508690897252358619770578978246578995309856116997306570102649469280563864627463627286562224580027029983429249924059632397776263656967038145148246089312598142662093455403106417502784513403762610552086685411688506700148550332285902793304411904864677103743312388305210505906296582218706138222393168597137516768094352452462585507377815215976047098580826944311913568163471463307899845780841935183568912245211264773015890255675922028412663790953552501355175476934172376934647551673949499669079949362041572990691365763922006088654430009198083162032818821462072708240082593848531000804127327265780689769056096751216001472257160520676236621050826032455163436848145088564085011419509725914415594164733559018759912839221412119043024023701377563885135391312325760906267663899199681498612735608279379257756109980816261076209178690975227331568233551094827417498839405122985654522156588106588904851583079531203900768412839033001341829567089059007263570142789873276334400679040751382573475772367034969485540655578406125072800745603652139385174675490047566250023006701957464614432432569344549107993190790315346230405171002637860263229075827283866872572509226108996315895259857462634183539517632441851263728000018665633111643150092724414786723026796707658303164520567089286934018971920756054375901928283272601843353806180175159700612521372933535186322570428757060354908749672137016965956284153420523834588349484247868306126215875532624162904529412156811441034588760187888883312382781163354802359087427331870796909134770253875805194036183927740757032247188629119297106501315292335321887890828336965927812848259772490177609125585483699792563594559937508369669074571392969395693893623375684211543767840213741844506877247200967823905547564915771838233455484369186370768684431093868613312543176275371124684153765840714631600864760260025619339807134869972581751811957179306425683193909759485582723107877236488446639153058756147474639287682087976465824864040671356615586909443259523750509958974307437394190362604452681979086652960329550435610625777404440144286299983896562850948707323122153615666432091148572879142632198320862939825437545523814344706840984778223261056102475622486017931242203701581773705875132117997818084170539255732331491623377419468608062459459115722129811656915218152190729248122853652382668320126852187499048519857147425957371375680958455826428381827667765812114485109182725966325292787979117510955113959958518079119475927334765261503231668507848632146413682728485020004382803943184058845444009330431313582405596116478421450365977607708257602320882872116652735189831630116313097318857588883399229761905942717131107566831948485248375576244424335534059911888508194585838464803677982757471683295857958044367826954629415752717248047382030090170699278553880030775248975609215348284914994622367917707675385114252909944062716807785300149334410786803705658383133567022886138679357668427471180561873874407362176072144882529247153768361379425137033770852260787300243262617250708909564344944861946605988940311427376338569037872299972992217510423369482217082426533732061604954717290566098169558621058940407355722908534671919307523279358193083444356762991503545367715236233453537551826890896263393008232971463408937748918493763119588779093826849909302655027423320019051392496316722449028127615074114685225062409016244553257833816703078117003675093023593435942355010079581496782568309114902959051419041868200997091302736672321269840315741352420792280187980697206009270071886602563509088219299638969410912162788390514114395703112825361292234004253034220305813241720547859803638968610844678729870775200961186981002312980176945714406190588611640286073677388614557433283139473368116622430978392980641371666087397177157088663486867411892116481302936093688483179327076935624437697317310358666670412454382258604720118872013065584041456716796950861059177719143076596423670944158508464555420326385833018620451346631855316302953339123842590362365224408593701825900053256706529934180333667592976295088755081181900433256395986156379685955652027613483658794691239136129423362573854897858576788526480532665469677279362766720955981252274379430848457467748072161963357541616051395789061525587488872199152362228161524292116642995573701009274221724022027694526697711504303332472116973491729128609900490253997109529882057345508374465056451955969857736667713495793786955333181105941807603015887810700130736988934365560454610715894424070857294705529070200710383809072117601171233622184481203520107827837027970155367236809909761819848739804028051053718708196592053541263613225378201824588032340755850418474386880735469534010433672034607223223705660049238746632889106927668194297378779585787815895440582690456565172106724780335236805956841361788094090340607395622375977691452473407903030332387588935237880254902779139403494640147382288672374598645892604285804388897313369124935732624903768301651234837940137586450295480227954561757538740514575378394383965261397224464599954215839452985069844338076241946165227523605162098748478288785556541484895787380939391210729220145450856061050453692494271887842244561228088542642941916330772706346136821350472695367942641280725821481014287846234493443274016214404021555921570131875633553002921032818572419243452074513149602757497674464427550376697304201967023965748816600500632629290069672858552609767743815001423361480777462986654314882498401036267045831220861876745733453681972062137815710164791715563008912917451749243337817068570283599503450753564729156090731957053739675729116117321941731575898530964721688156898366228399848418681774392051632084932682186173038194955338528122897769125245582621697850628721156804441995647478349737482867599795149007910566629498804330283169474492058513519298487690820228023966120967783553716731959756833146246485277696746239543529035884258990629702688741069350276170904465700899795583206213376028275938535241273300744054776054436822632989410432960737939290823987253197735167288325798166220727862462534640584301928120468070856728172944624248880377070797229552449189481251874734924060689427041969782205524204735884554111568128910562595925324867046142502510655658804514228637035412060872074592949041472514706638985194081713952191618833535056097229978150093562140436757509383275079051897033572186233983329280751849719126032831999857810399034663563600540541791216948436883470577524479475821550389253074142721810416708828871046320797003225293907496948007683658563947077523669008030988159883893877357727939855789119563744673054775626371423789781580910348312837413787876721079930995320329482748117578220552130211691208209264486006972125318624787317720976152603485948770049317736582681213683780814697189880411073822189137945770555297669493967903660850594845481549990381391646461234448751765872553900933117153259512098394090364321195967702940170024048594987843975200165848290009403461211575195222947455871941053328245441176831438416307342651648088412519978801872372771603570342173583702192053983820354026442869749004085414670302893018562611182058421667964032244290558634447184758908948842781735541205499533617626852880386095184931263653023765406564279406254330612337726043676101596704484593768204020965161902187048886453976673413433812045383475494058946471827905651086804398268353475637329622413122342743747126993969842036813837080009444935670010526050232327529094847054595570972664937694113870374867165182047602401927951663667710009494559657206642302568117299399734477445842161592354773383827767635798579719490063938636920244761275536348326560461782803452953989428547013580596622795335153943184265540773542726772666669431709960904528685839188655962472983542759119338975696861530841482942823934197061321393605719700746272608233628620069590301690162573462892417887766918955480752095475455704595456234939712886928291132636055462156788623453595406180248120491309500625333293256825617449922809829516195801798000068816975508729404060131814965283227503190671632577517396622056159262042912974706559200499901468856110195892325060169547675516408127855455847184398608162802018038691485829936845594532169044952978009095958271955852274688560355092568656234589126097142220361889683697446364380275144931356637461041288290633397013455055629167627560051202117467917712100649095882609322954411383622966154322440521710762027858855258098121110349901402158376987718574487266900134724856314508691311549231126057626798646892324460713089149611919894818940988509338471474334930102261961633575147458303990829133971076756597399221846482359797380574313038817941067817448008616492087870370176090480304540544967410302927779503397399588083807063232725181581393571465507778943204052868739961641903450458521508431808520433222553044067186855788084465563890803987281055236360004867906615728523049927415448326252814107721241237416360560793458210558084790536693307545701979366671403243255481459629684641000293599440839433517332303079758922542135796299454705930764735023771289415409556646815980464778773885165523116859289942002524613786489918959718629162302162719179466168037632142722872143410330766638669193369918892464020662148901946660702618458357238178810281321806342775423472004620747198893796560641848620597547963327866697553155782257800245116721826778553473741154535529160703375515785897358623644846928164412946795933256167248321548147661584551254126776660534713809262956679881385333626221223666565889349164936312417467005141726336053775191530763907109253068171508156497153597823553436249383825884014596955457070445636151495255477788526068711128739532971393151630184256165980111406952856585911247963135822246991807826107322775969163455791065596776504887835094545031918115330983096146737050164989656914397398517826911409202668883259950726160655125061887573333299271986934010200610949106866179989865203009796177687930179533627265270389791335448767098516901221706325840534598088413002851738039913104372527833130970929719529200112163211994988643073761600302648919383821887242605930399270482979965535842118400505025012651737255610599263750250846754733738715207424487257469672766027235789497365290604840401773514315341590206091297665177303994085821048896917759576683321504433098297388505888900837150735221919110205312234364257905318087908645221853020591755601867048350196215526665672856608179588317025338811580939956544264105589292229114870962761371064959607053406344618835764691398928520863616706122874302402563444594978295716422680819373589885424567101741817898106813221318579629549260366345016026311335761611434374938129080911512545639794019369011539071745766250211321898659651068072787936038652827635266708985393764438613453205815175644245920357966255232262284397645697625095583461537365380160217718546780752307257410385427637273094472776096292615155835958501946445531223571998538221237690128313664033932609125674055551875336678145949887571218936046103527815581614717009027388047587137676270756908568177670118556101691766245318560910212533474463998500734777223204140402364549797864440475231663101025825345183493995817113913574570343858040207562468260225969179695903795325676230218538827979517760530176112561311306934594656211937469724773732665251843875892616818788601080698799178032912159421826452511484244498654391730019186086141632816389230374692091419457551070094997768796665403954415551693066579841103067792721371411757251117353942821061032708260740789429637138691661398737198013007286541100897417016284173047963899194082457597185304777777777248467694259310468643526089902102660572322994742629399254022898431532719802905476989309034717983230524411302767822677865454895354177789834010012223157843487888426547870403893244342672830584823064923072497226231995000564616808302559920479258119200774214717089333412853838229029734594560684764348917586717330889203667918528631855665889097869095339721048508014075699954644878205700840273899502203841609871252608544349485796025210452044202497903725421451962130367216506884592595217315972992600255454168244875814518803673017293869845841101395413751722199727918312824710994042890380318447643823520518182088378686752011914844935733964858985461675423316847607845109039595678639965526954279161343325679519319936304428916007549531635988821106922904407875686470522102127193750063518207462747579591038643527595306706419063340717165907472180071713247460247223574298210785874609293547381179484468397874666833807304521176149760196644647100533880965500949534645466889351113037462804739041386668018717940094514319122777778382815422645999111386402637993365801282564086909161924654698992521231640354886811727437525745967426278220047348432782486851476154668154986660313654668029468369953871496344166712148438682306334369580586987948701223279559045887641167240841378269280440173521156119170726987937270105571266709034336250789221628979597688756569486130743198317937714605742351385276564338528526967689838603074194400463421033922301530669666794012777561836597676441790436255312597725745869314701454041807891200830961008411493785206034588412635264171218168195297450286295306485977941922685797143486696015845845612080852211023190794410496659571155423305039540562166012752524691473346321140340542519564383724839834226307383339813513438411192308739747942126658192125646661361612400849158493393135147260967842121397313238524257648108381875308168989786377502131640584759400533948465443242692373441159585190387349483548403804638465933022357218123250787314920822137755057275852163608525043156353258171806095000464680180960917809576423234046759814538590362162618392795107255997854545539129754982884897524033072679337741942475228806797629710528634536322613674812991573152010238981658759584449467025060838722350009478408726974427119545255797342133610329940569018196432762233492780312284928867865742505760707248776185346686948221791520559531611507664565086932213560779953999248995886830386736897951264968361205314210378154169410919565930851465476025461465640788211544417391819047194573221612625683561090318150220701408172049972564464697222091337390799872105004643886472289180994762289333050267234705129510707177172462754194188852268014971358127698653132373828636709689928156130198513344298039241798843363550638466579590836531880085223518926842450334155290386877919362130187917065354767155208042928132879117666193489217506906411242108660317299834771219513767993933886080572812884772485928523929646075895340635109434855826341787772231946037703938301146325544258193538330150518184773319223356804295698223690550244306985150447045720160803547344774479368706728270765018023133283859757282624263813475514367494032152814808103599359053333125137601205772891625969436782055204647705768443882441057982471758684589541581885038468512082767444454529455880931562324465049886320764731169670079352281146838709185360358326426851655489443235895257468588488988988689107787762838983880408224285434389269541216581600061685035308423862891904259564945256621103962157726260469736159809269662157225475082243694176038601171475364374973376059506267374552763858157686227193155027733349093980982528884394366695128901612493328634018867313069353147111414999238019943601232093076443815573709199487773417150532776174355094788832050532704454529752764411432593038181224444224215273521635343159663819384025138991438326838201962753732069371654575132080527350502832175718137602249036966067301516076178759237258658740938154850226528216527617676431308327068830834706378712331758503847155978271752171564040419210301536365712541034350779047836923473775679492328114870167619761697679303922990667270439188459011332549807958130814792131332466278800208859017806911228123030406077556662696844951613120535115252036478257652235436057436520285151205049545313643834997454483537999588643848602317602717464431927315746215086825793824849943285382476788419364370156582211780136313302618311285024920361007434092268585910341260682704729031618141064727401170624984718761748958808648822655630750190848477678142037778452473817162232275691609524764196499630564372052133571604308337977112344676977017987329169968954148172876858031505299894114537054366611403779065381846019219474139880275906836565806558765377649204649692329802705054482756590950407882925441138736254231146141757727770203688587769133256770296530173984517101170455807515165974833992043126063861704681807970569817439379646091990468737112284619248498186992973070651500611401638522620254027959222764664704135075522016378235852145553960434278806485616469101352523560517449120896297316480455694300354562105351873890156516814042628489580886548203830203550334685154733739079586564157369452707390869025253947408096740215843473780567702055310205273504871170900171796323791544276091157335928052722941825612594184233774185669880749552130423946309616506558506855908871604195658204029541950272517921231902457415196643604824963723113282510215522206713676992935263266957614231755328475157586422319548691073229626356880099138307981146237251066322869382485264880058876746365242636571098489044192952381269489886416464930203645536021349518599558482331838059515632365674523957502102269303296609200268374583279966282395998962973554337643986873177936947766967949380175500017506247292458673982340414792479036649726820883578173212948806033002240166946719983241588467853128404793881570471493681327350116381802984976194231599446501060510565236672819568276648453477914034379991060380937505218254081298645240838762981075046936525793123759328028859785135651213507396578933636057817081630110936282131530493326386754082288058038616454473705029191668480885317792044999244057280041122624894213599161555175783413128208174545255511281177830508322701175416815082034179624415453631956262062108295528851154956581602664223686136027346090518217577518938271855650481927287358891758576493321898250262515917776883381924935274057417530077918638529551401344651202443696525105484203319500082490605535670125081432293216018930037153542407544549498703360143549468098384009153100277330769122331107315960526361984242623042859648099244701295095786308651891030291809783342766148969309075752025686659371683284374367644479004077751960560050427818224165194243751021326946334832903006472763406002972863900431176032796534949774675097647765224612969443649557085277956793232199071991203459786606171064521884415876084993247547726479048787735393499125563868698243400409688833344498716151180524523556929794746474715007359706200979568467507524705775417588781479956370273699693916448115668152126917557538764053933662802996284622468437574866652967937202167696943867089386912289794827536517614010638764113530611584663983530161856155246916376009297814393240163464141746614314147373722038324129436850063750553338081968268746510398715104384660184900057358490552356417848496861579257197189324688861608627570957772112732547787145268587744387691204096914275875188440932691407737053545096425926744822787513029575950086396693875962218210023276365822152838530806235311907603424089213439833769789681450778597750642848901955566959980948676470254241590336210346412905373230898446108612393748220305574318917479032423233901189546759600153500153798072982001192060839362389831940006111163211335783732540714152163558288346594611667818751993945407553240073270885098946149174979238938547172012086765311779673796852263761983863426475373734691074488130688624983158406734205161168821608482402442181337471698780495720868164726043479113914330683191117727361311341120464946347201440284821395477489356745728695174212131591573830583213557148621739686354905563155109311348792379718636357052827651132374675286968948038763801205556634721464582599697245069425381069818357524250360695693447374030688915219725489309038588378037695317102921363389615273724339840290112266460697500081646642286765043188188103267839157703037862982969360269892612343413059668708911623253861505113099114726937658969404893746349343170078990169636729686892645999535772412307276641650987693373996275562098074132746988180967438655365249045571925204924303453879332877400504224810363172414937981186745524915194389070901265703961101742703940539338994768201170547128423014120626876581007511001557578110387010146650406891537848522364040558490713714844626982380937724496115602185098097286447390751750614597217406044470013348058998592021719047821899677141760814451032264887123567017096173532030980582870421858855459441148460692548088430636375845778393607369721006740600789202168419578328718239807107914258922189847211161498907109816911233704188477791759224790646740323878726430284742912344090507739873382255837535279296695076016776125989710945779012916298711164817200971132136633055141799286146133591539793566015159661309914772688863265532820024001022088755861883218376809071846933238496994086733893608400682149224911236059442820702640419113327033127743692359063032681903538158586711912716939751290984921477403053177686474579847814264361155322092925816192003008876242675707863179077417149983063230720272180596053946518934337817701900858953520966535841134368868913706227426089249903295492235622372606199675482747716075942647655400819526825886396620494486803668008231991289883336124273475023318635461681217291482546508123640969972048529796918040157630266139239933159164694314811511883272255878707134658752630907859029806675658588321696602487846377075374716333814732528893368594428886861062698947602583352687493064789914634883729449444279164331049971217111113762073138513714747917529506636690423381037315328105421466317865457446825520997891676194114636528896753399274886628026353711244405088904673371017417471240007176704708158559216744273268097035722351019491108340780979641629792301123345178882890784195249630031493000177084511718486135814653497286926738713266672910480386874118014579477810666546173551172648386095016422377684967110470262675474432953252316478439207188147416257169768353779939321033783779911559734997262981043919607663794689574966091843231929346908314965133534639790756519460213518725012624001415823444963376489072209230837181464015463025483981805735042355739726529070823037655738210683111238729287997916191030637472164766750113093777479872812098344778930021239459429823704504996925177910197275307852807703491602874777107081662207590393502769707240079844442366198200884986696147512822876031163527529971697448881908874225408537410900259100679643014328729486391218202297226859155873038719570132839488774939213589627752396738772216532325949646206739567713399424959684703667172859122748711787485944853551762454597975599011320539308899252516825128104552443381333326180575167731363399784157712235963965874445079097320876796207485145179140684689552117135791809746414176637305224087757788265837310595001129120014912110066009019074376498231117496593438845360341768403302022299963279670722295217223449113599334928162326354463715262239582522316828325589221782782687399569655804889909410587460308324066738175385257072264388841954412138210469168119129863622199648014853820559329565224272503552289891486820505064886802331574375178253534592585871312999493917921751116993204496974046640917724240980947798032909828189296898238855183990647085469083300321904449862169515742570813152527594144357828018026585569159354180311408171184234455146737294826747696164232509149131707999736980063370485919720662795764194417619118765274453073836282224959859762703263265723678960594719062199782156679777651410317079728517608185726571148952537923283284814920561968277474991176212050304069755320530125738309945511983652531741947868527681829476038912777571902347779168617243830521469801730593876514716241994351297357946270896880157786003906493304742667341902590107345805388780684764959006745697019629660571313675513438580918179733314260260228803969434767346987964399675561386493326254604117959672340674593923024158786624272650976292170522933246402783508820459975879383977421472064318961757258727061588916274148367045105045121855935402351807226256595241078327829332485971838791400753698412817880770531633433774590902991575903257975128031617194529506440089887877279025400857920691731645869909695017328418841522126565628053356339500296814650395323875644566259078537607692776177183484378032185203975893424017606983416493342156687298346272107447482564780627964609448163582329129635869951685166916734955256529536408891519642222315434574639914462441287085066222318570413853774702795494885552393872945239514998992903808406551802588484492170257152515901583107234544373881385838346744766991530169155040907892927091490240648432766572552858090710612243249239104589382735686614455622291914923118937594272502882991195725479730691349828806558507736704675377373315400860961768276320892745318228700422772261648639714754884601224306699316445527874097672039075009004148742094620147404745880994871655431879067079509576845177960725219484162833422545050782431451341026970422932098470578582360538465777103302847617153839605793989331190348686062241105541254443188703569148017140632736107065021545297321491058686216953792778187030164758019382830903264515797412447810906937623928496270600120825827740771277163943159558535707745898187351880164934288488088172280532408043518331462799486105388686041410454732341609022388657468828324029427361205659056988142542695052621256473864385540501990150809639283357856567531489330021038817663335394255303508448786549560434999092839852686126391665573347373327186790252330418517882525247979171731611738154907667842672736006846359689632449584704747541887806995738590146540102003324444288391723757199494305173012081825121674802276893375453636586208375679921214979488935007824999956198683556010306462288415023746905856648913579120991303040922364858687879488008320626826556583047673851000121525391718010562635931618518075587404197406699727349548744047100609014172240291981006107613073023701789521997285076181119044222302861783228538373985631340051032269751911305700805821795440999469030356138421215651457767758495643306744994981222054766284235792012518743232591353986148140752881071223530375483837383204257425610406396588643654636200922832196951036006131346883188313186417691751022284018538345693826657622709330198586996203561303130456856052335477521954715803350497787596137695131967750679885915440202892391025712178691742179912492723795020289292881313118898050636313656948639868757076498349616271193586227350979946061708090289688589196047621529179895024791527117212492869994329529667276145045532530200225050660283692806240608231916530860317340856771888235966574566721966237948210091403379818795202217117011692911415486809988751147879985214307466459390471155925181577188611911361865442669527790762342496963323337987314448531220788338913533550655331806940166723777191158938968827055006060797742761828385008260010136353288301645799656649375746798858309048680807852299400759409943745521546724214298861530275087387783658198132819409234211215949715813306086237431413084764408526821314722183226158052559850348160883987663170135888438015300893989517987209228091604049470676330277327179881898842192873335415243477414277254845153148324322019365429562444460295744013193168201781821713550552338525349708840348504480613004067666344147935706355075016235641568912950803548885328781932043928412544418326633566931345762999914595316111519753787120929291890810076923418406463561345255661512576546882118055136038517891512019528413468238570709203355622183128674723663926659786724308687493265525198002150802363252249960123394725193939714195881586749953367842348842539661789697658525699350443526897649512361779968610364889376845783952009335956282076252599967313838045348136973445436039350838125221362956186784763808241022682231438739709154854738571147380931730502360047232780244902448354274788547626290957127513629222559847017864056960516440019920339916418379088132801628978446310613156309269692585503960278490322726764057735123522110492236486759113381711580531789868762642250098417369946559362062023798238016024142773011565559682515229897067748469204507736932789441249446981871790719922019297545355668532779554140500395727927576317772936699597917381238192430169641235205672651021924375589999548377030168428718087584722910357646682921291466801352105998020102694162117954008437169788313718189110700988243438593913769154801398537022003584208011295051953061830716064025305269376261160903393902478659417697722061693494726464798466146247590537243042262589821036475379651087620405437618803440361088465213717455737608971858341605531848872080408517183550933312273278181884310680109040696308070928042458867592988337370963675105191732330264797870286715679513717895494987146844227932176958632121984164856617021614096220642374387745129464753456062923666914276818216239099822506450292909156731752383482893271988973836944444886182539491991328005292970538466824380076023325001339705195286075383665169375752554155151506008280288829194027367030814080167942755948526996657584449092149695574564459397824040778616776880703769850950621171127628265167932084391685726373439121888877227134713526521999506600811410617606321163552592462233876368094353246972814932448496886347201765408459952419330041766654259381692740496197067532166159613895984771270151525048068475011980584583078759479397025948978688137436398650281929510342261773213528897319491910312470567797555334464421265654617777493065431948239862067880920191852256550039657736634868802571528503004906420574566837946428995736304647888654845711692380197871974734755023906565373773315988839869316454965620001270468998014899212745934476472014384300490979841274135735818820782741806504001110780890558920212129398636357937067821731246609412190333413735206193023410780444325583398459497579304958901157666930938475223243023467198482418047631477337983923289415235909618241890507901728690877354690766904762183188522587912193575769120823683188948401042098462818538913635641010613424496060713906274600905659930433724348581656692839103073221187800222822720749796697725266873876873424174028734617824636449801888138305399232157268092021894884761089956693728285430868389185892017330442880167088650254523983595716057356474487880659567526090484576296848501690799493896245553177388703463833073802963400837877899968089136500431755817501417237128536277143566354516668735278210815147296184350620908593285769527017519573731016431015282316842502411813531690810872511907629722251546768339595856377944515001614272607457822212466185194799553875521966103929252836458675157563247368871935583384925053758885260131146888298708503558335614858815130409002247434183599970237409946983331593909406392006656419140114647879239505423020472708595023764310578279230362316824483849267861770177573059171341622697261869838862142330601801090606775586367914446137100310699869491474967933317122162743685444305355582215254982831952483030280226796797029601087783857656599002447968188345137319807441161223811490085661024889574590070268863634810322834163205018253178367200097649461343848165927387937324457073811945652958768097636602286114394202522561426405661860228511617529961954115643865423441311428353145972434232734892475860634296410163229704795934898614544019609681332237154291372758646271698651628962552165003684072874075687424442910452595192047413231518536729674526178465494283537721798691664014162834822934429725493317658435351044858808300642366678544750533775229697334057816876746203459276643772602294519848546255216346183285749729638579040736266226557391449548995420331466231565733410117129749893184093912358355484870001538642467864099974771125802657084937755501078281517070513427607253500105883413930905183862130418893704354737643377813899613836283894300240767733991675327022046899058578674932229544521822653729306121580288901182179369009198198851264954758107327917984625003380694181262962674198201736158775435445929721817168644742277996947885487169370391715403641114564024877762184672852034921874058435290723257375396345147278641287007377408904494086676480637998966604121424831170668758298208305328692381289057168661573477398351076891690802300797521659215427377644692246398620597272258299576831918826516611827642797643470631762057931707365530035288206000996901042196410194313229399111898210341374041411588586342083583796859703559480505001448957716416831574334286647367966992472366863828568740190558374269724085670944681806388505889854700210744571266203021919777753733377375217844736937831752548048339302826956408216238862768842786638156038690649720559962693018854248410743634157308283614055943522663558812357181595557887254693199542600573441038174977371665880594654298337976482531494816060987267366929348816924501021432843639367135820463435675343274774590845509985739477430338328501534227140411829392769907558260016929098840600728673051131749595588474288935847439265732476540506088622660989858922384800482509675551524789097078209844456767724995825924996717655143119016412238614100509715059045548777514131392653485013742248709008373046875254643428625056410183999514300882019846232545186958415295686600686679160623051856109130718736421505216372951032936452984476610868661996706318445964280122237153743639969717096627222042714790744603273885738952279613727292356155410976538894325471845989004896353840803414830490980350504005340941207987675858028329576387692099583843835406399307526515862761121143783639640428493565278991920311197184372489587278093584904690892918853162117113056492957514895667276795896970697152448196458527695710167362711079943832660567566272716693231387444686512413151138093150708990049238562214440347075446558309664530872873155357045603159510052814481075639311689682692438731919921284387230607299998068594203972078977092832295872797735155747691555870587553305358766654963287655394372252767867481557182947718710082120951046129141461222656445737346537464535730798613884753755728626415809876207083594188467632853508172076313331342136452206916135095796533096524830278527100731191919018779911898254821654329492144637159240899004664907931467497457847928536031357278069574927067194168322910072675273584294791311219425323936658543731118767019734735449460223197298592098031931524025779177009308140031663654455657521377158160028864115741809297333950453413290946415291954093268170936732605459491214371121201697152701886761749354995274453070641479398574602127954679382376140695628919499377907817773137318931632142288166824231479991977659395011002598354931385453309128694262764466789340757890027140473859178542523833394304556788518883130736549817355201133644568738673326045298980386781838725361918844155406742164469261415567584830772075484566149263854201804846085115090534898480648239408195582970368589686409840133007206218947273985820141369585647065030910794274367334235053855804068681072623576265012657061425053120727663939627058112295024576268910336770899914955119208234049098630049716533363704086887964615923683437488211200192123453403567640882622374188887151722264010488938225095019186831876265726094704097538781415174893675082581445718933302268914138958570551639412140605331583947651765468468355386948128106429062513352094747108283862637161033551631361118160656102284880109538531147914566723952569112418887632557388302248357708370653848156690016549292499136832177382328316750395180342197569029819558804466107653433465643833768368365746958172573022119590882534376167994752935308697215564834165726937376365420733271751434033742015401322700294338293470158769632819261483956870935481672979538816992506358146899394878549603620524726930910384671988422879322224603721626904465944090291742073035876861536194166196772453762398285275391234750276416294651101009720931215223347784103508677606663848696735216793153551026656756192437510430991706727211872191334666963944874881431015477160766491177389536513650879914203644139083158188983374516618722223854890501767508663525953715753600217915299833045895704915063515880692557094169300801595629046475791628172453087672813667348494876041261213707311059396262294487493193773358028985274936524235931407048797994719098917269070827021788270306168918607324468411407567225710674243064371919073788712662697963096636612346698077242466157688392081543232263622613445315641669861688025272180512207288608341561643947785210845664092511466275542604010431972375292106748951382042104887813725586948924582412094264036945233448009415934294989827770486498268927607687089663695742948669781208522035156636065355572994473458347916368450168712373768758775195514187613744575117663930365968426876020686687550827486407661912719979170415561367730190023416518541318198954685112161219425285244846162392793709256351121396892067566986216957457318309042569009183234307435080480879044294408295893581304480114522356494717001935117991534384229961451248263756683025624722650096131596829603019842550860731702508551578405273132265365104436301735781248728596035194343809398179967255672717530764340039000006841637045776345053158866961645689297819182059429579639565274835853361397812201075921837897399209942145958099559048363846105422513819181474770107025908861314779889798351551839702987422305765363133191270160499728916773986784160126135100530462906137155261190198741927512189648947625301640796957541015133060800543084282753771821847203357515284771569255688041906813215759241604393320563934649304721203506904277037891856161853110955246290510097540095062820720307602790259886095057532967543124746346852377266765260329987004436387207285004323570959812969854506126380478156598139416901473626896243146837433363501235728334713575976919498223649197033284411298497709396221449835706005140970498046237587494396006679894353831537829699351556321577712782110656364344779770503307226745625240307534063219640150261347816711413860159110299504751585564677169856828873892755756783613591923399202860375071555981077540662604396072255849180073566640518522231572928543675224846909304361651666643462905870168865297327294477552035865179652648578002142252954410538052077169573596007168625306226314330995409885773961671231497697124141320544179223927514648838327657840132223070179818537872316485197797232925458998707583773947499803534170592264495542746392253138281126548171122497120569960541984956547060518235851449028320236093861002926906117167535331900704102793904178670470944068642948932366884285904852623879780864436667010628102962321891205703178867397368213576100609495595171128953681124279333139609383128544992931123782547172456224607081336998303656380512096954790911874991462715342936674272579080591675862300425661773549262110727024965960968278343003261270310825676463218653404080895160478830001754491526796549520427703771354937748029229136355026205423700289485169047519990862607447971552639587281111532394600797121406437433613551306141329407013944062699801914823762798395087457025536792313861437985625263104835614503991201120103576952933661770915196726868621712243649894359998157685624578009687594319465712003838531989789108427877747037158933839146960497326982751936434898028794341018970783066752001976995515211625497469985084268275066923141989461468123595974847998047516913953583585734561505895419164173709514766507365512981084269601512847466402925486223804489129685523138802787342982401406173787201402260521198485583971305943001843476573163361306382237832852395639566608510484953507313761805466858680533171400170833912075328049499932043722351020909102277944878793326009244428251056094454308510056727092487066442774920403588511917370618092061104946680048227391346727743924714090582830015984326791721037232700841068778327781568701874645106097046584115920669676485805492987466013950791081446688042788381666161340816389126303793047404393687386785129363612639797348132406565037346316707476323010339779614470699507260722250868055962070036416494854312439206827846070223228250153644385510714957601042495708036776152912117037922003709500536610264334766953006343732400201844887403826863279413465843672460836816546743861601478540132130168066534656994447899360738072114342640284457100440602263687053482786935133671868471096606368491224343117063828411817121844017162015832717924240252799477025899100554146195151460272821566729464151535261096824504676946573153177310777642576424444584406602224588423831167879999237595035571816602639944971966141761966715126766165410127688322582370842834544622996956660977663087254932216209536732801832457825335793067049659475486922295784545020914068766794962417236878159221693790894905206048821464986121674466496724614073587407002724364911009595552559985245456994741439681248851237910324370609262246427025837658961685262687549122446527985053475362183969545466158582863872383187863862164726806344994835710812523645968963955949580704050722779450614888561400840559032425073402201830356389804553819502814275871688271139100405461796191076444306926265152616042521843568168335232448508586908859656729483436963105231646530732857453471068784201183394082717513284951944384360676205782945076133740491224073035715241301741599116626759553140357955390668913924956835313976557044984992043588671179991495244239174816954431340980287907126025298926233660045008948198496252965522308876479891845093917146584493805339268380935838812276003346696829332830325025772962701203770219257873455422906716394379176699602678196810109845249720128425518526967652235084241148402519527064804403141530609347715443274067825482732799302793334567649568822840037691405831511637253892572790925459281471116069378247757934219359091420451888858145036176979825037310239407570774393560442903501976456940732957568529579454466815115064846753825614101644026016976337359351632058453695429260484488450655758584577654415971198813206609752163421901428039586123254165803044122057501405911030563067822164999143547814047589054842394786034270869941797248560390408719886293477988911953412947908175209630096401868046142792237121307191435608343134299138644502577764654143291632753745842696550231523316957321756943031553983595128132822960133525351106372305224676735118802744915371842032692397048787766099881910703746367877581779532626573843823922538168660283056181290336916162859499685270115950557909996985762735872005792797640673966013484143703217562733864817088517308987342625231789350961400934861510633495370838093941739912274050054900964939136947464306928492376107746389615512716338176318801125671250653091051195605661210166284900754306076329307262773963114683051698276478796049129136864178472450535861157272003089448229416357652996019172307384927873033920050493286788478298955560777751916461024304970585713368587218286192508620084236575557201121463984207602483856202631831293467710703920874881425814401646112572297437894108758582771947833857847986523026715045275075470585276894457238279197671018950923358517657699653064743160080140973115461489948112867483342237060579603290991788428806788918065414451331511220528200136557260795500649624703139338771548013625264781219702483556408555460944958389849826206848363375334803406303750187484693435191633330287960116521288101483458561715657367342442267056874877230995687399773739223829787489717335501613669744163855996728894948786417465426002434717428592527951700736218380599359523034624440526255562774911920441575497257145477391267367069863824475556508133876698808130905674999410601375936441874698249023636058405007037022704764182798795136047310861550345548109669115757714114075316191941285694196504775875697070541325415758740407852763118475604528274460268254272736384183225037132130859938584708902917733889359673745878668470168600264624491181112346364803799267985710045200114160738014262008940325166048611332501604462224514709081079801937628551067095282805161300024590282164577431124901767643686079950002460344144513241852026458786627386098057621023670262985423436488426463508497235724133726207370747143211694313788486765002469741283742158044335881084537632758374265985139296417548611926263672659544640759686181136444812538833500710511005616171861217702461852517987026445291231806039136155145576015942506445893554297888893419880285431405381648925546295177645430477041339856927210660648130366594207165420020938116565795568549555785561120042532706039191370367335845245709676107254450531219780308860892898102442025711633083699474721659595212347719449920990668099776678212050444155193936133827871234149333358024994025537427699262288991439396616321336343007562301463817367698641107308497279342821507140366433042751715862601960636573518353998972981445626241183800886758920030519079446798757716817381072645116954807173790907936292284559696670969875494401909663509150163991418328793215018985544298029298927117229677328854141250762133503304905745393672801039917671973475109713946999911419701005184706236910415432463046071593078347363259417915336815544507506181382583807913521128098165885126335653254361440142899198577658365767968330587874792198276647282300147882309252161887788625896180115339116897792826595313828141681928434338460887021205558635434055627648466408956331200189925569563669828519083001171630140590068176702269166055358499033494475467937111083930487430754058862872051359524496634241119318605989494643825825880128588111584728230406064273531670030612856371957651671874060012350311063124080946014469749464032782496214666219431080708039094432739585431061050312662414182085232033036220244704849167095990081388540110535703972332020153878572256223863288296093597800162749095813301608606049072553953806666511381666994582470310825100905704285891790192073594398091254513751483714629052944444574699105025161860095206743560765663036395257814878975572971947524515170794619613032636052793238722130191935157321267545324024271810155285322055950277622533415052850718929790743005804665085366144674524450343972094038908260967289763600623455664202419122165787607711877637217262828753920290321043552684456008154721366865151089169541470047248565558717962002794818461909588553708061697539527025277001453097249980854146839603335774983452707216262557598305921429498357482399664468670870352179816060515758263526827458077176842925498660608831632399830014097226530679350647216543473307162127280917518463834102003917922228033661645502963548785922802394300487603391396924556699756524160958575559017533866834014165745653017021520249735296043024721463933994434520405782633349703293414910457526580135549614108932646834861445336172237375459417301624715242588008707053159758255694659187859945097547058359581140270814198721983929037230156680037441327497845290672196452209273465908482950507361558021920268368255884141048156872793922056287547405321112650173684848073983111277604579991265378121599537932956110531981055643832548685277006098196323970077252940555859503465246818327959910825177777961225937174267754866564490108724231201604522351468298099725444092784034955707155321395728637306305431667292549586469324782719815119591129231461317457139650894633611251957421318351878899606007587775830447023760846335364462340403480466408473895300880975790895987033685175210318903434180240935641948975743745260135475170084132953503918057165882737882265518128067131806359563227633909175095917196988835880037520432934851921415757726424319822704959141615128902732557070403344440400937143920729198939068357289637701945155217404567871141675364675236307240406293224949361572432478210161462095219113375599729715642793088837973978064554653154786371231064633508058762789595361905458386932714161102134624177226496427433688517398094439949092492438814100724858334142229006602752954334082425013439371028832849928584588247081878321775424491988015013944397052080678814126917941972100035098848809354073825704987928056990809678930830223426611452393412033917739067721799867345020682402735996991928489503350525117782541815087255478366731256686418890023767976763543347599984909996831761934798888796909969999547377394368145279695034147282757992248664070708612045418777123973737778105784466653236018883341637700729765674633613178946310038621358469487144110227799018046798710166295327144661984126837213327212530126710650767131412074435603211903973803499909694524086358106741940413407048805937383282676453903042703579023213753398972405104008178089547155179929216602767544282756961317517575232419718263931841992477082074880650727486581514843499110736383722068641868625904792650216522355366217630070404696638434805300257020137873383528326573593537870742231442550651681525730807198700996786356060851701674161921837297890512445649884454780591415233924051235238229611146479715403077118483241742679812147499818058705798077254830414855682647617472392295990714949632250241660892126607341489827306060131476947285603605283977948468419941954381500894052325345376112711024903082012598249609426207983779823432860178665215692886474793543996344521559738802736447580679558912433085862181177728845034378609538146110940125439563515425529699455224115584244701628041603837646674972038904393680110154546090429834178938254002956352733144293077891937500786239880720962549502523181374295427238923045684067996775733468704245155836748220210329439136481004785543125343135633526495456248109440050621787718177368042428746336154686473909832820336102664073317377688370822210681038404840741947559192177100732090410724190213763209622840913589855562612639085176276897417882087382393152287753227841451414764619248548720481924825269805331647037441649799506351223077675316412900792982084573649879516512742082980525081407905559314970316479501289077755920241755711610397689650506554818259591324917250901318048702767923438244254459160619834244224612840742286237674137873850448133087040711676200392189000377058101768963638165728189970524149577025778671531993102272265253488820918363587454074128533542331250704710111189909319924741184955727205158225527809257899660898811365987681866041482494843059330956836928173679675975533575287465537632970120549540044874114936659398068429695902877658942456929246221427970259076159278862193319931135079627205647558961573654926722155638418188563073879011177226574600264835366849642818374015883172358800918277264122298341955151254742916854995346332808525923677259495943097963207307922120100493888068452118562753668225661589610674188054533721154015027962114012461419743629190105320240725456387636315640879609782118054460249025551454951057462836934125604930352579883535877331477125848492332967827155935646810112330953081645120463995473666499633955832979930548444891899794510470196667301772941848257573568795638374889545020431874815559416208931906332337074752130921609269973025956020620677598915547025557447518026506474074890058432248908635170620142685483654558965689901462165340351642938305858050920526461630345169552470310258029013734208075413918453674975960577532716226145131823594809005264408008297433461552122025685133188052658100854503503735768509213763497633244324431949503711564926084028224914149974025696402697790575756840972484771039079292741262464703800436376503080380875374549200827635465590956232081242652100860956774260850749190807051180067470349612618270400975336108230440329686122584894692727550299075003227122011773054521864637267044007661463906457513861862512122546896781076949993426119310037311671846490128259224578936291565447452912374227984884794673190993628397309635239617517747977779212396875179244874865109087743630555631385690135882127548246311198455589105747892794159234752084574779957481804030853550050457975913247790074540171141869050636414182414306683705274420438302062838978569678771559838794438441636386503831041328189564070525830421899775030779458704724348201211117568886847234879987002335099623696966429223605236319780416675732450733466251670077666880546826559918385263424966644862127350589778860455078448806864907461637595938129307459690217177750244250208662943676347413412692989945949480054187311813151766248288683110220961517283088570521882991132168949292198372410393309507625441823508434430247638492941165678074729347891661499798208965763502865407968798920208934451465065059873568931254712974600269292638495769713407570727012221989019628308923100121738789555945363324735948291148789898319744415495077032315388611684307535557129146052695185428851888243424729355355090188377793355445820720387247494012395521073634118579611439501260525322373872307188030292336553173688288824575630163699301102640320903054909675468682959120333826674798231764532227361680510739374979823545161753234646643215589212569449784339959470599345807895047545977440929302925439927499949680244691487901298422841018432669623033999700201695188454763628145242370813560827417205828184799025431671562140381244186413191225455748033677831124593089119767793780092020694339435203769528389450110129017575942360296446538701355435776589908064070113921441920328151343568133775892472138171958838368237897723584886088072553118926585174226478209998649155064334932015058163324962534957824117399908870513551914645879177642652714916303497601863787811263691164643245647573155480604760908495977490787197832761652584290482665811349483923068817753398087922945602339805874182427594627621145840330584993826301826601956705032400484940724069923761417113176386361176742557218241479602956553117927135836896465684013090207408608534573746581275766620017348266070911005468667342453798895183920414709679864768827014022428103191186149204280177974780799103513312580261587287932669630432671813535954962660889359795946025564873690450106476116920094363663386237694875484178590627473672486255999915012499565430942358970513430812031070696811091559785621421016667705246353177590366641128151567497261511427659581404287313885164168978424966835270359766341790495723255909598743223348915741297205210937808034367328499168606647786600713597790501554518341362216230661099016305077477155241598650343924383076907350738807338792712313924005392153155358871632717292210240363954105661656992532389476303778480824885152691912245865091142624644898940113320077538272713021084428744331018022348415675716629770805265625167107024141374149806546150309716685402257815930282586410505375296483188407618814006684424239471352865513642475936785890191904265246752835956155638289704858852144901247203220598827399144775836575408389568434224871347398330799674624256959708672794206022910247781887746229214586253145396119178596706292015320851859109935375835071047269830883793684642001626478910239963378907121931487564539729921278048369874704415390945519634692379410474186081347161013075779466591471017453306917481560663417721842085601073676198622109527251541522259858506572982646520152591539336527748479539421803078455095047958836344883595435026093059015794469976544096462243276133377419292679023537893965505140909031857810974874622214223670376459374241646371814001860446998589209461960979599299903082670822645080589799637783524203549673817430952217607126064646577779494044201004775593064667229054648354643283896832891883126484393134695327876004280079630985031885482059358366759504125771366950514456701499991944590344035595990865392850219850778485743567928641109201471396087312303026072509275574464798306675274099978216289739477775388849868221283704405714961694500246579138954384444306018609871005977579008695421775105621837171004853098343678708013378618647651488154087183868470607734229711177180791277988453750785250190769057957877576008502511647887003825908541226568419626860518793474751530639141135294316929323651050492250648334333740070489727151982221052433211177617693655402177725459272034670810651487112825280245461347426161020704529705491287348058032527992380441606501689445336497286549898721585164157189754488810831912003749180880048735440102637466117388750293667781548405006159802409422348668759406681915692527012128017110669479977847457698102759680670286464893192788503600359709717287308961102475323244550630838053718536401166138523756556994772963534369686503233392610797240313203359941883066032397167350164424500297916921397155238488761157898450999679680959770445866382124578071216382155227994990623659871086550176363465086814187871963938527036743426777808186386882969267005884508082642872963131477530507323278995007796468984767132859745336296033794667057866153996591353024293632961639122568235949037665514714143263064218572075969776324642541873774709364329562853301483457950982851306165624691453720849913150629955344248821005600277708124263695849647393906745474632070950354833924630941452813101230973801990146135932319061233833894749155976775055083713523437715500843550448287918737415515445954596920660717500602286586650638428827419173218627692099040197113887677903599296169842495038833625232552354681944368332674664555414340446155761175509285339250361888698006894127957194619576332853712300071725510728229374867476918099464774912284248858625101707246209360745224737960181100474955780839134489217973073793530752802526414317727302978933736217780281000119287749027931919517456152092602055185340123737822092192917814417832895651121734844463599363854220132303077906772631329688792589984682916283937731103879557601465978259926175046593645779627646117523296732294780973238106437627878709015052426726750551809397132274034070966303228496171078179376480975216100955232638094994002146707698017678149713763186870718730017112436135346770726463606799245284833720147818997104528655814049614317148235233503838022851649577475890580416287077068617186180962019895372416375022897203532381765087655167977093999782986150633693607267843846709679477715972334418194332201548915480731726146728452217480941018550063626675075636400271813962054619141152272778449766203786678330581172183596923277488843886405297720496302137382947747533902879479459968309655082487640854685387936344493970254841564375694268166412825974741428363861399159790832114770022425579186099418611510874439178120097332997465127835624204731001061355456088250219460351106655828245081021899112977148513569667833617862432633932499478270348101961417437553688701408349606565787474507079062332541449946105044641276910839623507750882061593540992525648440306355996946702280644778993885810238130877038002096446954849623103127434144110112453715482853218302356434899791070003577093487730935633061543051758893454084001969663368496357654036384560157762691153594196312028685882146055333642530518871000070902963281136535123242819313500810901489337800734135978196693762431144821845007670107329824047989604836369778485425773780889403709504544286429075166091565920082975236009483390065463754041420540994218755647065432649322449897336527429913670839185126472588290864529864765518370534526001682462949996771100946860598270502065846177000317128172537824416474925979020749292677397491070809899661118613179445200339283595450625701289626925266867899778113471371953016327123365041053187928843428898177727934440794502624845622049014161241668151389144460298390417345235901445377597138162667767470200323905306461115658791927399377837820280402033066664801291418531951002221525546800931732189103362443193126292621018074104640093147152321192160621796715946669543351194947951796116050255411294282114978565756581196306294521946384845514301716895890555702173864122369059882521180447030345782970395170330545051402836754217303977435071719104599894995889715219585870145446590969358250905504192607757387889281018965443950198233905316131463218826582667122238394115332559994411202727506602508928591058843959052344690946553552544864221551753142022033018533745285133625135724920789585969235093123096200715736611602016398271076759210158667300983183574348980135457899192695451550750062144918174160185026773420085249645836133814460991542899928058564908029763548104945069400655846659837982961952070185742410290251529202731016830743199656113681384045314162811036765540783250599626924453829749691343065188339092123732620415281450568071494132522616755548277520334312141192580848345052098797494111516075823405644166697586141225955247147911056421327138083531842674328741555747349396386493153743569839071904128783211147933952742909415154429600659844388495209646768249160013807920047816369877088026742912564283873979898910467514257140367338882337141456051335358831860107135043220632284165493861142335160860093615047783850647521508173608130225373028498672966164100922328234034425476232908484508585596056736695559226996162145662819197161582292260841641001244325570236784004125838508810315509659684833038922443075599978862633400051946810130742329224680702184855253049172857035879620272279663926523435960699926122202178044430182135786025556291535700952959596740297443693748500302655027761524587763936147897880872965880748576747800092967771338917649718576381799289033662614100644174162361014709133338519243262971498486022871253914064508823254090762834777614686676704911125054869976087914888909220157582249490546888455019731012405423585297580038347709461861886649422471837895905534716176504973860741985083305729919044676197895481294816380610704013016361443080981106375774419491754995532964040518160516347627148891698224597843874415085380713205939903190040048400913902245298251678054323796867979809854086065482204306869812722111457385934063106236894501806549490201457081063643764060529212413387391497894119441516786383680104430075941957626880643465588684132730265293634074892960961017229900096586224361523758698964717921127160437165233627044519956236705554958878608416540375020910792462401922731113094698761521975080200648592765388025157859793250434769629062572819574034467088858754332734253752672235458764875687101638397851968042409982259411696637314408138759481323361185507392025052819963776998712170751690270062024279797284230491417736961671000845176316463771033592964700095399985865440813908385901746558735214129906990769212997982399758853974444704566364072361948921488001667824150612103179248314217622006298583666243098487854556955647344974055342682493625233490601946552683813860516138570445556710036704433505312495693659211553564356093715874817939027798740461275966647210336028574975760251627131896438804261504965603297238200630760968036345924712656326807555466080403389406863442633420850152436017785488895108362021072999252217424721418705282688405896378325519300002986851269897305538572507569247596463161038952228507759116106634208213165397002820821198134417140849739631224494785472472512749875143468583220120455686642541575585671215351200507615719057358242890798601207960085176415743801964011578404273777883862358549359678104503941833263003435895002580574242639507795112803649913647013112520741424390114285966981976899246694752245151795101736303877864799613816955145786829479424301365270168427509193100014386966749321046995713715827726778878947815507880800159567973159012910599932312581876550877843742747060364005046592335269419144266916585303226537466443714834032621084514535881840469429749467986981405615983911553348363745460938997209455416176281904634037923570154110512917247744995538702186190771061706879271099048702489486446748167525180097166234987709471592069767769851105873137968622868176035644244745056982447645258513649026819855533434965021847142040024395891784280899072676205356348204687934777643754763951328439500661694817261998772975558379469590148729557917006152781471748240689202814849514192385322324316208384716787120355790998933692175021740532807667656247094228752499456574299654166614271652035943465944017791199596489399009411314039058968846999808017848680017075413216977814836531645768335778694341713504846784915599767886966050287145716613169981584727357881346245291488372128122621940230047351114920629704004238584477679561021321452000531149489852455375850694788652474922242135254963448714650199295253332396720683001014559827805880906013862585243845298543697189130110758394821488307232205835790157763387130623681766180814256386483817866091745527043416179283751975163752093131384654679008326125903455898490172908517704302374384536543773944007083440416273554832829553605718741195959212128953506454252711421218911604004213883634074675166644750795533513668043846176180545978694249693315998210162846424169997360325737264975736093250480680106000791773681226218128879796411627743575776261022099492241817512418130480450521681731414843099412905564355150735781829507625995463740090316223596144003656963267934762625456994228305878115289264345745491405625480413692425629245742793300471213383360853168423884850788708105771451161247293409410418079225620500213046683678545016880859382844687114558881113410728560305720561143912184534886218780485054487453483684582363386080542123840268975760342828593309520579769822459111843764663378255331618989346536945629134921402221829352778326307294550423124462076925043604501969112510664028917524417841100401335885607386461028678673461117409704388828466549457982331013676549687838714923020668941686910753030711780056178473696195366029166105887297322240121770333394639468544795656771060488925084141116933903899929652726346111639902141205653756769028324282937809481505138016405525191787237930347842487610709074676954011899019590888773188563403134773654727046931001258684137404495749181970531346322708120358991610299628932893696003902890328312955027542427260198799069460195368512983996997864155192401081468347592969943525562647795215162459920197311846547652949303973780801696270416266919667966693810149974381942796721656426184924539529794779099559106522933346263338541748990973885313166831965611766321438891428297922484182897831785268745241135643173654772001650583442366057598138785089085425650400374738757350399403992509520475812319433371791679002586495444603909091041448837077986587527940363171019348855210154810841198874375328987662369046197714490889139093096406288393619926508649884382846569955258711834103240009826676718605229372481924063473790747074588748368730421917616494443412335595487289142676764175928088723325791528049310934737745933738110365773151870995343713076648757911086658624047636877382964679038128928685292917569190483858008134983608257928654030014497561037526392215306007316141840962572399738050114743678436970422173798158014088659486161122227074489391707443747825437737589798633542622375676668470528354682907215767478001095859187547898305614574329851793146397387285617480538088854643689899078524080791904328829924583657149771725505394214791097203427533055513384603229681882407046923290752398616848829185722312452702757246269625865771538114587033581660883572217814113307026777161292908414965962536128745776589443189707680148953981283036536325500176176530569548060803185254598552507917009051410992418916490145086775515003139927839926786241446601747607399995789921509307377124964964674315557558391708112369026892674550675517883476709439822165864866356773159181059054070326324517761583412155152971348691786477281128845840147274581582443211003350553060738281736640173599767563657007035282992660936680911054835807921201219425868752067668482833261902418003448985395289011530437589708443827328578071904607471518793111185776000184652360407702220006642172924273915015471595449694852180896522500656366836240814824337382562744465881900684204508918315539774659003708951623346500917256992088792235123326111752765442156245779043126423444871499900761328886004355738883910130694456847955129258511957802455930361970208249684128672877963208324879209248090449438685689026234359968215624151261282228285978797376162404252055030131434040956236211454129180524097374517594786858537492683082722649416107710979604712705902865301731881416401914393018076327479727377803577987384663804937682737325274387662522110524200908421853387229893060315727053114256965297398251120349575464062775087394541022024001991245953186240211813825018270859975524344554793995827299483006532248525559001812693342249300575914844433299321402230846521679481737924683462803239410329186903965866436172125194390014951554479660678766557029583332360876639170329946653404752902481252067568795507553508220087755592517141441979868240431360272627322327958385501957871953299698732835530158807840779403055127642484979722540031985785431531543774873168804183886073041132082775717873146712729778266982302098807101413867346636187675579208754202583248289117443887228952988548401539983871378964159386489134552456263533410753706321653292808444547932742326040142186007371829207992216348110158173341728808207932490939760262609517470320433258246515320906260582769486315083246902236438726072416068841676086737255946248155154234442295885121732047625606078054292783997464035108995511957098729744487577742593323416562991844774974661641049555159788324086603126091298077810520493453430393453270653743822594260877237250010633060177293613490794613941246483919107524642205192691832422117964272017796736199146855386207821519598148115782659465530484623970832666505344674114640389162665769980588868707790142012766905258182825296461582479655230373529468799563686421357194295552848328143200415162462815146670654069779512426876758854187826210158802257187272673051789278019868468871509978760801095811713398401467113317817193273280943601067250062837645502210095165233434062803676374926238386376357497354492801876320397624741759944689896444643506305692206252442321564171671067385813355981243735419875018293159895221849956778679683942048552702881875263836681399845363026013658051069696129372336108323668375664285390528745054229561384622818559556170994144474715239754550604273438864471826169803839241211498572791925283377410820620537938094040653034287295135654111222282096150795062108086562132541436258540965582736495582117540149601492509191333312645881263989377729239106934719102342126659276501367713600175713137618092365600477390968116835379324375928298310610662032824655726064356364802903729631943338056398818546590523526932011322209966692849555684465947364386904305478982254010089358688685369829931741060933473205157427170858949228040987417167087510186555777880074408273454904974260509707757342746847761782117977954883532253128070612486829798222568534821529523713959180097376915505493586465866758023194502483888110574437556163902277236448593426863780199346751804387710899020477158271132187663700752676569506888678132319345816422271768334937670949589800498066951529433538885162163680985254913992601024847549393339278305711606096602387483397549460546886320739035965026043117744753600173616447545613462729460907332478744740827531995815825392914781821955706870032646078758512937489006119271605500157472083785155523360294638817317289362211547097431879522455824839025169056577103657155032949806110414835620877986979977808868225013820680421228941955448680405754325661387976368377877304663092639522468237726566410990703828307503676157415531937592112576851723668479358455176184794850696457062167492914772072623045098807616168637087231696872811464375600062955907755333096816086215518284969185116001504952617648127199489888801981745262229794076139679538775673705949914001589427319751373483387455105517287893606554448470755385639695234502476328396305113936861542891767839265457096315661571687995301450955430757723418255248252841798582232592763636027860224010215638231426748628538525911356239804295025317070352656988849808356892640996405515690772167400049481173418994855690871151488576475897128618198657059391430627028704497976545180088391262475201583942065449090882687491508565005526628163808703591939766789192986323075662401252102859872119262609883048310376541968234936986284916123827150761470810103968719009352124299873368065375322461559262111194683646825276447296888187850595103715908148950822455224510142724383126376804173460421434665657690150448757125139935244725311144182119880030234022633523324342784127202333961286703158599109015419431143211563517198595601463816028227611377066661307909597304237827984403758501097432623371954333024435171306134585050451772301419143777244867418072257586088095117883698828895349129069806847184047526165853512477105439304469187823181803333220839638308248529816263331349641774158413036593735255123991155779289828324652246580316027101319995171821184692377595018146736075273692090882159174024528413590828144177100062146839141325058310704602835003215678335928806054653378569350021036516464108201374236793809604039549621993935341764797539420878896289321477631962693792751295509397774690996018441347125420869758458636350771040413946522968586152174353408641855132635709613383715524274307884968516769853872442029079195317797086821314600350202122117096959303939631871828811329424057386475973183959283357615340408258383171643997911460652065198928984059657338883431817425301769098975415868958045375994150431775231694624475298302472127833873202400646154148815690690014260512043275703946559138717002506067850872297965003145839779106684294952533090405532124434365654288392014637340315434174281513204713203539486001384866806737922653228598493575989022176588814030364864573994738623090373991971969028486570751737458783169144372547930710717590365061522862167519504758157121164623123312529176602339588778799136741896263122904565652361000403782002965149866242023589548767176933686716293959927391800285754114957205551272531935562354402475384682228453228105475605413699098407703888524995777100707628242102973146001583430654685413780128348823001883787123547762611871421401092721978871626200173669298199164726981026738839785063020602677093950980599856073428785692904418755278389147866878197219926885118203043815939453068954012508229913164775553779714984629666815317592298006051132521298091900294973347887467043541765594785366617693854543160968771731630905330701683753148940141623266386223705183197281181277825536450204006092310172486834500486577613381284400984482751640995868848520234436307017315913310319915908305855456295469896708807577587870460881444681566419681564913593228236909455814642545687273977107225594747342241674233085317142597775533878285132472227965415483169889294670325769706778186643840062446381553161477145281499979180769958997885374836726663335014953620898840785415988214553083926019956488385321629209161904101992345040942870225029613713657613297718893515367808920568608943484141934161391971673804149707310099421621781921037848819980917177033876611698032846511651516935903761746598725070549378345308731680490988336928324526481483661082743395707165476050595513357888307864671244018311093835751533731944050033328695536154023702243990363526150768677411793603624477692122638444470547436449543948585295996556512137986500669504761445195640236911286790840406669516795446957934425136023830343642969079351598754167880859928747305274094530934007132663883907719341234149859428772400923680041110178236675657956857227306775474154333122039693409146731539196754906905148581747963190953589807261056592588764959128014268385592975223305424423679570666982714744469247187404737435522211707127655037206675051986745409971810541724934213645946326102421888993193276435044754178888532359230732370684329925977803188183561168220172351059860269587208271285572460018843942544570306789667263789337186089758931728325228655867915274341224341183766292471851008656647186129071040227097628771223463529043537428016732210361684893005753287252156895638071082873996751731168796723663602939440542439951032685522851549624945698318584442880904165030534294865982705679810148517229428912068858343519715924136953352810495546966839107947491555821165816719578942021695739966473108995675675175664233701061762835072358181638278614001305424180721298304850225570914264617679841569223323046944542504895045412860614360596332610438009780989722914568139741190426550549732996167042874481857768853703777149470751803479936611614938598230115143362408358459502714429925444064925771269946960384759304901528704388969496832323200823440819714807646855547008925951523447980621439020308292589056778506836322940548884727869775226729412597797776161554073879839837533198156993522587323108161160291047958126872028017968036580872490680751076948721356268412235509163564060188399868537378355501453938946848920097440748883673393605422127964326329369893220550875449121939904712679023680414663392369559082618511753413501516814177086521778177965977675701860912871783457546021047480886584166861260533829199714242097964785283868964245525046078038589995479871402438299826075763072606321857353011963531077886511907836230796880146372593916431428868769811750957481453584377684676281032688506618884991647229405828879833283757524273815337384296409644824322325282906634813545210159891299232863408275797663139095219010827586233689592160907408535072045242309614522911281818148948809595498953136726955012437330486424771998212017822805000867572255999312957553340981481315861308131441008376825494001125654698706113258370348447195484664532005017143249130877661320037392917976248690392262613458988980263401503652587395392295136185981721952544494356932042567618380420881677968088717488056174530274108075802773217332524112265081222480965141605807566083337854618248946196115147467220714272682260162916419310196631143893082643544595647807648265574694520437038234052968938455230076404782843229195184725817746319811440524791939889263992401914483145616104715192749206573635639275041398158124770438304042483799115836618844722326677059359011956182180419916370532189205686977301172376309838130005322774369676514826576736014633911571535122442044057309441188805522847878940053747521102316363345378246499920394204189745684580550295243950581481733837034166861220911744321091435017610214371574822596173290514378331943265048722523745279963347422528185984719979815795226107091639924170972255322817702820595975812864766183467850131455599714214408887472364936175561781904486193203691137879331879952587628893369562769940479976012663572694832630745658422789045016576907312572751392231761815778327604309261935554140423383697501596401814517720601119515208187984420642107714185677500768872607737558073653761701498385059134499673446661357527312690591535577189137093808158182910490214685400121219833566948541255495320293371432261565893147043150571153894695106494504623112625836686770912441487954553809993774283640204296533529899881225788421541354160710626388701239437031663725632586159756315150531984330051913856150605214304174696387688995764430852296451933533117842181356630445170889910416477084325140353470594464594439760239221322930626668868918114338840599910281789036871140758303697850721904585255094109495867495648858443941306366346001279788101797029998662212314182796358153063389206147393293754269311528115860067661674307764049158766076675510898803952733074517962386047946842572318179131846004410557796659120980710902983712095994710114569915585856011136749540942679559631647386181588649266629540712349516414125194216446366554990360985128413919998648795330926269436860936225382029601175362566491909963934355762080525836098989374499899699440526817359819251795187749314692281660369834715887945059667616288949556902319984211198445083519536266429871528459434327342291874832527697554484316640862604011205197970860660835695611076962276666861432125436559999856717079116402560220494708027685086931536699386580244393783257595500193249243022193398511056663664505866876715863299953971967736559644247391044584930149156639809129040604062403642679416943123946997982660933244273405834419564860124274013131351357962782211358552747495285709416170992006249815299295659720563739999390028572428121362776029821653012832310772816858497101489597181068530679661760933699273112387885023226642740000273543161627435746475666407016735514006132392176657168146628101536899455370695593561189814758534060845641297566311571094399734586635977721908316224994987212506702680041970497276503696429618549357940176534775680544428246557761374480344803926731691397116502575543484104227010908993274568991090400585233918032250966090768173223563595065503716215793992062608747681316692051716220779060650150134442352241183743452216813354821441665089037169270341165177267475186010382785664137309174265545847483764609622511753488024192722645825784921310962422431182348470733069732773628994351219999082526431439890167226428132346474926608928341566873604236460896091036931897401425842738199818347606092384754806301337194839776835139764951955153936155915234106607882852239290047354928883212276435697601419239571422235677237842021194109632372841306409293160058633572358511935923858835867384338444221356645593627308085503734142892118711750095152283846373634566625258971724137948806130376100808793758226450323997064781509962943229162073777332637721665841495665357076979155092116512687284743637352173554290958297791792333697283002355757705704699110577124880920011150370909877769557880723282670435713105775366017668274732743510296097108351651442971145245171837957641481573955826485396180095177702965939539722562245971795928952812469204027472571575140712183014938555529918900935976432919993793805320548505834638610240141646331969755101740452269238724481940090559080788116370017313700459633547534184264818040095027218834918490782974424388430191352686335283299005252643155394393653504327097504579914404500473482511787345936619777837665775318307281113476468212376764876018163328688287434493862090206776805963425785371890936348569991320227094357629450993155106446472748011224943626531787150454138997944330091463628349336767253500423447137159495520964412021187892203710476769659252653574071933005166300755242289497988694328646050009255513576922083496919640442286113363915864575117737954012409837765309293925018281370992951630258805770140143041055895421945257595936316470319588082904425026140889902011125328690878250044023217963277895512753532042290953926692297571633052632591807993054287586404495856870499525696412215809810499368616644540786627635499972478835135071044097107367871689320993191326034540571618515585884173471259392393286411701091338706374767037785556973172832321821799573942186084593683001736015544909178676702569121136035106932254246689383071523266404185281703031424683777664843711584565146340232283161606087046097051984635459500559720722223037236152758149070775414919010715111119122897009863311782841976144647662923635862407698524297070214888069080353511319018701353623236432341793295280768558449569973318172220091733811138322327218382960925661841484501108022583125587499828294286389297668847734217537466249114957859304896493640993768416850779921169034061362830443616148129569499249204073950077996727762854264081320355800011690017708241938094300980891246749656601870809135445759424946331334143123463854725932177174261005300409299465923945774663132244449459374700678792317581094776919266761783972253511720105642613393250972108235733517133557937580842386655295102430166280685776361962125753414997891643249432500536803908160814342621114777002518924323790180220481282024673622036750820397218479217734473445797522092147569325289573002759717530800078945040929137173451500703799247018632749962937477973441260672850199643287821246368404248136116263213727485366291843046018411741653424751257423411278315793272953464769935617659852746203499952287331881627149876365622590679915257970650824697628957239299107044502179802401792018494731898879570903703057213900701704134624623246632813424977523115242006520339396986637152285209517551987759823853945610051188603796011403058125607307483739162754040007111764748206739766115797008865106763555375368639664577168249790931762040878330819565059012727697641990568354270716503973013651021568477082798319949018455735293542579544096442658918790475412975969280284488928650613115354935602966586462020253926518464752514998357589421427768310097988298177617862059506174593089499194693775447932898364356476565657874591822794602385545917400105748812243576801702250168040075475815192619459064511995807830140270473035061106756053838025516447509315340223324304487113003230234072957259328645187242921158431492064626530053655258258508844329920636033421713179473822253967956548709743871337295962543628929284983545486634835102234138699534253791520448051290192895645760269681128294278724428820613908147739857223316366406804342337086424042893186236151918255203874167592230559543747312219482450214918957987553673849244588235458970893610220687865133725598708120960403867326792406988393017485324318981804422622219192125774443506585400379069031266271666868585296354480478206133760934127331992880595272659565080455441715643750118272311562308616486819573419625255421413576976317294397191626105795160798916962654333954907836464340452247650491703649247001191469358682290302687519104520507888640526415218876136730313849292564777109003192917775590680332784510337701963486153487602955582207506423094384784158284248477948363738052546265311377695683012971311157961160652377280862247204295788378170520171771102516846181151071964444248465980433112063777753523871981995541001942988010691401131627945614029120213634208220023796622414325768882566685677176222472724069274092647167078085794087132542390728649804788553235375462281473684680598776938528345057346655820207859897564228632980042224102204569988220340080425027341267309234674198892490923372728333008416203162813128461501274155944463003187941066458027120161554523652621927140191020180021416551524890868596180793918900139280088489730625412752291244965412649155516571098043441815876240089973857698086189094031219762441900225581323990347610605852340737119200532415104304579405877833918621449313272445988087710890417274600158707537678535604865888229948930823823688801022720984177725460174215466120209385303005647784748074195470050860118992146509007319469511736273120238334991071737345013995912659062812249168156407605116440094872850554794235319402760337523247688369302756868894727999544359928907373741169832951597977761817669484600606375991680353974367903738981076663304563482601609470227805630908685913036315171121337679299843646793327027846534037743668916422291461719662996750622375164274334640698533125847695175490052784167523848213615861075160811749650439886716620012539504990061315021220101308655895390172158962925801774010052680912170379537030037676045713290446153844818913930527401570603844078579023231358794601838336251961021250697567044030154429875610747294880990377147632597818306404442108720389846962428332473117213183126795714459282646387259651495589167097403144057257442156719454899143152259046571130715083314043587695027329169266183135730631531026737199442002703838534975690524219327947763003816279617476695567497730477103109352034496170285029567897757603693015525312173062471242782971059030969961087240428915948346566460889925716364867567926232612277697290991346855110637419743261324003628334525291556751533756463101615886922396367462786687371271904384304092775819833364839321381210807948412693075331342251678475516799524795763441697698099648018725962517949470124820428212370872444700551299536918345602016784459917712243514007861820104091000878202506335741723222966080610129199577608420763561627418050339703934115549014934460312185177820350860262578960986151080274028354686483597520272121516614989310985525387320785177796002326455761122019185180427698572564974845423292764904014606876756220965538331244463182474808267411351102123420707138695059595714777900305916806479334662514123926187585478614538078300754697487234090304448571246107114293909721094633608956184964517347412885648676160749249139474620069043313839604588948655986335493476949357359916166967901213063873275910047148112770749493654032294008806093127528704702910662735374261106196306335741106307659923838535747624356267916223803383895117178306420050113835953541820557538994130805583266394241035058131285152329549024506188010451113593584955537223841386047196899163892836698180096550576597153630013350697136409649109301350393474204645719949833862673773390561557444126378118186194083619820344836222390581580339137407532301141851216216603243769787948247663390221132362117597259510997269068754303479219562164264508374842872038613807654393471721495057180628558347453001420595658773009606680082342265858506869031623349579624584859260908634189340947230777855167472097203221502730816379174336215894301376868966657117457432442989329875169603387936393818059307650789060803128279465491198876573514435491339795748675387843591253892831976699218161863337047613658711415913260466956595744524827848412476044274465794761108330183910236308454026721443229329362447133693961844751827045851465053212334730274826217233189552811554661490750510029287435661100282849347021240880901217160286249951321627888956162112866189712880942987114357686811828336244522969933017405684678300050331607991944938190982632221675511380884482335138821315579268727828131296478724037245351961094948368160387598591704042670098120592128737004297942877709642273911156204707742066128574377516521597188134640333828954353362800322536961143528866281518823259436149116964624682852208551826308213337423102667079553680685150944621071441255482459812546799168794037961583759238007927342772780810030963564379037336691935994696838725701930874742672712835061492676956769488194461630141037089286904409827698300707452333543448246200825348173812603382705471852237111932655443963419914232117972914037197393945762581982202526938413470866580268573756614923580496330348559510681580649315379001406554927412893778262443049838482763528616494665048608430442179208969322935624431806613314096808705548538655824893239377012207969352981301931861389852088968623524738234724017717583715725963441879666782343210535946543067113379534789134641219042049440859943256195527712394017223858715415320988198992446922501759264119317331202846549608026028053864426856005617993434283702046029102384208621393063975088595478264175171997525573025709429384946822495377016663486789231365267537311712061798587121120218442525526294548475469671374832107660653764050149049894670084228895124423409310897066841111970868618445459966137942783003088253682316831136580429116377293853286373832589919888312642722811716821699070306264652160388430467503428516896591831295295867495496214230204357925837632946970328185183642363434929767597989897920586134683419381471495753048837647374492944359856097482136670703365390778882296929895219255345560907294336096050764679550847460956474448158993832803058415788726261592798913371826313022382378232116055289928158226841873351403355582582309068341864837300166663213723951135747000056527443238216189305229862935443518447105049874078184094584951173363451238610212128341296949126800169632965501040920525040757971062468389608555611289441833549765178806452025587558364229163828325691334118688653723285651996186451411466332755224333355586411542401086305151934687924488419672060109948708850947456391923981449021048690134729055804173262318578808138848651137665136787570106967006158358412113154802129055332877231128508051332305929555440235293077271853031327069144439529975435124905778872606447052060875088824687477538603440654468614688245774389039365939563071955817457680259325967803197117846638255017220128432556001735227681088981507551648918713106143228493849855890906044572474908726329300432704121616477113874864637694521609838205716750626421477355941141748893238516748768214820330685487241011185790040582807445037341209967917366972916111049573326495840324659330725951171792650981247662154638373346919524153070669214391182278494097697461452243891357795331891602991089684132401984060710070913904170542428735626146937460835255684218220034406286698626976156671210564969777278819081013859086925238370249551831090953803256089122703226530319119253927739838197775198685096150987959645115957141395315286721572734258361411995230129041127082286135812875192323643366619943892456823868620353368526419195529340223096542006164679950761735383892354802916354784103951933760630117162778897562764219284091869521727827475949583607804071543977969597542225583421478074494572346925786978281892329515653803278471681164544963843739910443429551237471077743724622253690032868313081893680244065395714065514548497516935372256526920965510324618594080802625481441952009146180134408492905540162387910821240902075707314232921168557584491466189688972699253381822089435905155098570384642802183230009267887586839614512032865795467705754002053117781174620593442391463223943178461804011918810979816871703951707638777680795266002825165008221497313898402197313246090325771645385597723368976007254287807439064418209042694477021977827038564376497039351867979547553262916827385700661677998205652914644421517095121478934379583939875085610379815241018409752194838059614992620513222854743307733057432513415340442386497388448773248352770136888624178134100254213625162318367925625245109427963154850229061350875089300567475337161830143646331594150315516579223865820856987368268440737705435595974311399652051198775300958987808415677828004677275558802741962798714282072699083913938723548542460721383213404319562694749115162559133555619165762624444516465363413185195254281209177313439300191513461211293035349044168139169710758896096288356538481659150318255179597355448700185738623717224484522726775260984775491522668703596116775468966321428022256106948678975194627653523494581158810820819053279016791198223554082786309562931293077912863827577250292516390609396972251415420703938038003764465956030691032554152276241774968275972201409756255771110842499055396779667441650881165257026971424513896640592597464836715857020419908590055244252668519602756363657213376774369077310329340848259440962388840429667875652925908876021945912135771471934111623619888112487343843142931259544103035164395497427867576079327593994192180388953247942066325205876693623809599963874776712529630569485397914329125457272994464021617295465289087609644561333856245959710633207854937371926904692129580967133768482309663177688276546740322515635452158967557911010004257531988817791502672961218080328020877354607837185832152974163254736380653858472848804385925827456367363342335684542031311043524850894065708474179156629792062522468345105006565523534148387299447193419190529384813122170468031332967522838320516297512777115209309623879689314779593553479310278667555113528011572243285475844235292112423895025502407583813375528976283152036813019702051550628635378517544631199928208830935477485448769945978497347633068162206373420751169006409005973058437836467586270718613422261690558002945935153185544453784527084975371188248934177428329391198279624272057667000684077567976378611870319172013934015857727116745050292679743441652414477756527057562413445837294154343387051680248452187288084251182265526154542234046931377389094904345874352328520621655775209526808334444730755438567114634477746046780055308378342902317797048338511868244081802210895546791202984957970735554102098734799657845259713902111577953313071958730559154974016697725629044035175369288658541589606084173063547086818208943687147912768050155793052556568151592738745802174059905097818879781824188570943513186317573153026664971660743450029708005871232552703145593433267550296689460505548981215476273747828916482958701299553926276317170651134088392593446756781488576534760355373169088293077029626695388337306054547236218564492547664539880463629351254537818040280096163639523894962234908017905283064487547508244048614236860770088493860877145326336131594164304915380799063367431501511517584392834379018569989825848318696615548747440370432922188023582365693875166277982924174366654910067784445414912406515676393603046727394928195926956876249539106743487394610994624178996231827990284581150380742132420723615430793862073805617680945780077603676863430787324935105198532988290075784489176222787201968900711211499881687424760690316866113625945174845386969938075254842158855698708644638341327680896659048780256887537663847181990585520980989864404104113441700235954759112953874196746347598614311152944023646906084492873121106098959849127646320694559195269220016325611969413378346563215359234279493423471659671936600208395428766645178304804666546316064696305985217239124348423877917169255691705911961383424417563228035780613070924423480596089439208917005979754621228870595889854800371463670997021678667337601421674140567763200452204392306805426695220188263704790689357813895557505151002826148908822045440094954747206747861063912509410791697734712765979125702324698935359533820933931712647725625722743477691673324837423411160907483611456191812354889517690361577115011908845101948408026093211518901189917016397322773897199037371812239312317809444938205883407713332659192533492714269518514855741146631316807069451045654384643348872998265547287429465023269079321867281956805580222974832921749534831758475258737201938972656240255789829069804334367888866242625185782708414554363670897269718789149932379543638022712411725162958086167896110848814677390114366294916136152011698874421064410357388598022654457116060435772470880835298031088077475127094513288642345911584309116542283716856730480090259850746383424073125504503794530429677157903115806371610589486106824382740784956127858308160592669668714958985510147661812274839541357379522516039714776675398268529952041351444434899759202634063081088856544226676191417622911680480554799938462996921311513531287395216294667249533142196575782570648384633987076925875098069231816402240975788604941206712207873916121457869750439878115811344247723745754850523982713220938564839353749664748964539389335986468449935988965313090792656202620301522352880112036670625990861292177916403562687224192643799070844072287572435498473975356645194685633617705686274804584333163535972833995266368147947794548290930607979928822947291617934144788202663199614343198641065512979427091556895699500819643160224811666115265772821508356724554740500714228481713824194407919412952434409721485988365584209963233399841373605775093717501314418556693397887791116228530984482195908592206193769874350484777515025372086768558546832448841409181630952100417904032353269609982240787065900606329199319575088706787507537466760599568002396653566858250593688145014489798831945832430616543104559634197569627172248688071579261508377634254063013961631412120220491546960677672706618375423202756266122985268410828867743920636408728936621301672428608048978484126833696633602305696964843751144227055073090573697192131297339760726713451782794445940784879778671152287787557366561333801865288484228588526244871816644706612869980532981984159507300211857341810793318140086081350494357494454255476829105776763644237661953740078430851878963140365626157480763621388584459269233656099697203051212628658268807514973468918682428807818759708698158160075457937201059334117106440316864318242633916678093462882557860481807601499228264787807313447489859501870610640031005322595160311468268451954016137811144302457217895465395130140229524409548343174985699229504840040655018020534297946028963856985917255133628400696789438102671528622104507891814555340338665864428495109104615766797117331874218892376623135866136739857647356058429718183968390331941712327313736725533132419746051288616661901670374933932703557427884734330650269781802933285408792934590676509895518249281080016483040791176270533367077782134210307623882224301047569778861819293748020974414106750140486165269545987398829862853074981120409216950416648145133240488385118812167856322095936561768277056675527977285312835062709013186974787686046408922528939485123835651760882521252681273269837740300295055441669492590164183868085909177192102922018137844026228498125797666935537715607321068608153539156245707724032398858688533433764959328246745396036834954841977461766980687871417764518664396020168556462609756618565372951016999240341950680698025064385526831013642098449020735320991814133501106996203874635884050651461905260314663658563293210390209698365134395407389663860284517259843181660453538087097630143358943678707188053968104638130147479954689882932606369111487823725318938359211237918038525064357070328575538385151184543359825361932338880207618230274553217074475118026681489686229058713673611884297650175571422345150674362694198069319645966297792970128542224788405490198204204504175585273398376314708815898863665138621886004187268503277143550606912102748645555840323584921497407905386862991544113017851587158517000239928508721904051160141401000017740041315367543493715740081979818698374590167319563928625494410643975735367257591724920794016674157068411036149463684323537970491516836543312774845131111961320273558416668653146543051328990572704064312218449149597430417691729541055985389671878610486417298762164634211215492451689895502034928703565619936595230557395683582639194654492513258638238496433801198594608493783411525799153782810638765244315980917953247084100749185286525007169653600988180693867975953670690545126418650918448208522165976481069900420915188164269889300257031915138876830684553186355756764014121499016219076980019467694433693428287902884504582701068047439806407708989139372661432264711927943070198927058684257571563239671503458109139849729483531132289300240851281878126499017818450590106052094315647415297854761385876409084368658015850517432916047920883170813450205997849750694091425904275856449265094461687148654257435151372529092469723491162896143674175578391990578577192035745228175713347601911517832826113899725800532033790353621095243201642202078845479573418522976345396398960160889856261857861060858714677669813315725609424098292115017893217313534287129572161183727929491130809307050923929611555681192379601245881344745792442844373105066391614097893628721080948847739561603450631887088200772452906940507886882588326885221040543222797015277358962689096463732721048881525113817375031758400282047151631639685397990475854822815489113950372126168700198893279722274603684619614068197149308106482858566397002010432105404236190935072057830735326594766690623035985015338086085660888517113431613890063054522640558404546899893218409088905658201600242290349807477794634444086290821031263752961494238563132713617527597410655195174114611803001617843806173302817557359888825976742776611510428715338519446176965343525672429956013910895831305594764568515247021635130686881642753247476896583721388853131556118321718621232009935569200763498818654731899190373825837768563067381316108887739822088115487905879986477225733207513065356801892250617714593754167616529573824344569632068554698795714915139401292040265187890274746867855914833601772672570079455302174697197191319333448424661137760588226421123371775832687802000083702933954506235423242229648919079251389029074978834196128992496398725721176199709891223117557987674869312234970458986962488404950036898207349593010727679312543389627120300638341849740517228737064163079367858943162396825011703856198869669824895707837691715263511320714911153252170884024211255678043138141666366490020766591257147351942380084104383385016125741100282046764129264527898425811320459839823873577611015057108700614948657888118148264936269228164957669425266322983835045916263058846346698946167069274411241108843188171546957633752439856913269312731029950237184284536997974634812024507702425297561704350640766185538300684287777168859207598065345711780156209009990193315546961280445030143891170903704068421272111185482010149678755014413663298151904703991642283944226049979168796632092271140475864604238699221728952226986714132355157568454452544827137226372960681079529009854287970324233524156924874287762152921410228119036487060415459412359983126204081972828080738270759077724892903357907687558752390141754441361573540346093019103196101125225577078878249857756611125514269401952593693227208813166577321396505959651768008634084127900516701711061291704143202339522537592318339891293692972188868402613775867656614395603420812945520840743008882211954616277474454144415275607872135288693431693603503107499614450401578861167378767708036538435501536250990232484385912852468571001351101897543849441652648325433651014770570460863459527264865005494558785017215773979029003081824555264105536851217520605608681673647320426803236728100196139368294231214629044273760097333282584987866551263911095048223420204717736905801801362464110048151012105807424996757225616965887884326010112657283969002393465265852388493133117824807889701267852091024300795013685289516631992203511752284549248004814445684619984471348945284897374487826620130814596889687264483822606924899928590921671046459074338043424928492933709094795259294784640436713192660887909060123657573954916416484439232393951519701837717742604954081725693742508670272476632173420678024831678052434214689816044877870510807172533736276988035491787293067620998528246010678637721082017140852562423049280958285864840208647376499484280677009801414085340933996489409615949436958695205054633172988258544533774000554100438376978929517669978905342750507688212600219312466017216850900859933855788730316210324885520908907647870098170092075833735030052464983396493122755115122546714974910321712439525231094764000705923210637727766546872444104661540171600057814008551471619218689584125694215758326570800257483121958127926990421896032019808508459769066706945378838506734896422648637718358804491064006987486673529053998320232457069337160288970095976372311409980384545842692923319571527057115806250819134879451550110442648016845577339475868294630410970066883082297416132999268913497738719913360599854266125794422858964612957923801337549057654576863991440355067336506658557314346766504316578914474631175033639796756604477310890426387046870901386179653400889282095642078901559474924447655701022750156734293774334277550539932995542236389319842925398707705373812920470012771389303260410538557308877177211102030371275462830352880727043248789499089579129879807033031978668463301264647873572360214374231964820935404370406914151941646625138261493398366583074963915240886537136524968947057252488193901819766806155627335710403014660715842461056368275648524282222108028655659314222691957483518870659439812093462764915140171979348474677747635567238869169011131442391089054995106270461392360499183082871183247409481926958769429198683652823051563857038445380705365390315887251569074860717959209181104538439801978975681564706310431478591408349308483669442193032824907778970873672359430482193348995119728220316775275510841822842104051361961809778327420766031830159217020626694102193256909780427535856246179477770013526172397461242277447739445447870447982914484807785180591092054651272389548238715809749246888360038685688162693325957703317669915577034810160844553628111011718937716758849375637569633792507831457644203666034002884446225628004160198959148475579915240000399954468131013018460127137391918620301827833425748598923475044710377080414094461710233067297665286342261854973628344527056796159146095351296513808862213664309993715023583828713434296322189624790965695354443885703641065833480795962895049501414024513257896181587782367043185992857416362893192150505596862821676125778953968155850791712066115371308612213949109501243210215788242991992176828879777225617898649910797089606846728164363325311956358444823493763198144582149916303275120912622048914115039295231790001884918557689022035979614957430763309205699142227967709446740003369466328585808730735574159429596729288587795107076857531940063785697675597469519093979246221310955198247919545860979332820297495383560452653609977330119085652306544591331463712850894163358399989300497764637777913182619704096965994051412960695306748328868311347828465142065425181893571498383385036554815880371896629750263078739398814256760435025074010757118706569582381077157028941203894632935315524129993534432628294191074552208325754476871143169774355251465801491520053595182352799342156620401340377883218107070701335222120113161309104030976875920252272893516631982764881526151857155629611125005821585168296349753100652175136805040263918550092016595268242485752583900626090762706340853691291930849787766306119389503780079034574755881309037673199715664687096496542503543424941282205454116392747833079854739270947760829061340329164352190772417817523954545786873882674584133732625120221024765634460920086719615419422169808453465978432525919452488982547681413037692736947957545370726449206969293448097297598089661287561637113414015683626683757301162276233774018423214679676305869287371821616578995290619972245113929346895517798761373616954332629813619333561311607614235537850323944394092443075761800677289975525692404149606613485775153595646420090058876769342843760484074187764597970580109171488816160688175756092540346715143084435534996046097791487219735215514305631236805354178525416913110761330327027456128679533398541507152243326006777935205024588717728865594896491392327163056377662576424427473309401375485545395152853111395371829952375370844480475522395833751604366038194793345891274087893924381938163311427616486463860974703832326849487009737501203092622607275162132722783133154788733306211789908712614711703273877638755087515270944158670447206384421331618142071186503994060341140847369735386260545412772377909813833208679064044439635924603008404746681901887181555474902083153792047497439223531012691616896205697244548667269522932402839215551770171270461352970088023253990429109771697898113688059594137431820055623141373631561066795438792233067688908267846404902622524650790511658146158896591912913715608225217033723483806920968956943475374716603243979734181076913628369548711546950609152799050474465463528044384496331230838286949819587846735822757391013211303163746184996595568662726871483628277629681581752296805710879230339960365720588771112730205133472529399703283238898744448557630976697123572287203320267938248689503810435703349771609368394361609503896918468741473676588291787009919592770325302042702972235138906469857139289247274133590302610191319345893580999661812748752900514358641453799821278738987324949937471898384095596750903826835418761566259817679638771013248194013497917894667481245680917130746122125748521961973454185677168597464189423401845443041526462694049891389624397976145936310674530690774347354142258547921756166795811856365519515432122319646872794670279384610129949333830214047012720299690858418357924736382360469375697131195897807984869777323066310509281141984633817549908827008176730227293087654568716663808505941785383673652471990248995591274631459916308473092125560130596408367352701020187054681752079342811698842293119909318381932619987437341944614020106729594675551070476527127218852001611478379391875848273045585009915276465714322580983438023060342924519546671100251510101790263518620162431971213376485326087690961896712728622938254427546978308007638967814236708214067526757314408202741572466064432493811417996153790747084025034145345979796872062976573185174091387107746279490833895549824835014258111176394547901877500147894250537275405347214135871849542796361754881460215051655319565012916413311625816650133847806845658487446661311286141062330824227815965989126109706940280761277530851617011095826551961722304029520120716842998483551809476350594998507981623192349417441453916408607820346795701026434028075401352320267757878422585361680460975148992908329976906061374185689251621316253968922735036164322096949520792377013657693661220585197165652286984916458624832414952718875500947320947569676202777061984029129633008753463947494772056633403784802779007045304276191246550623850604656499215902339171133824992961882783283988544475823540348582298224042334167211897967572729909132036099187923770689745580243856700988447784586444559968648607834507955366397370913309787434916451080255056460236960233022687684800165040853000751854998465190330237924584905049824171888992362599197450317008921795409803926601597957798810396004296905783429422887610321689925864516319690245125263859940123033689834583813043376115031322980098901316243230535973297997057593178610130505019934646083351638773592665597798757187377848746985143028969373245730471629611401168960395118996414113637035844727256011638538355929536234625140506367060538642417740942900410167438942927148762797661666058641961891041742836175443217204476471067171884706475603120892751401269407596359780549693659020160074540669568488947500108790747620221743775717146596338671838012488924885790734135834651399984715643718583993627220604233739384472142430930010114490879000525310464318532017657967810400320950819722245845762415055712206466844792903026667679539214406092629849733378523046224209793265903607076414315014524440904700951835349224526393599158151010430198143356182922917190429575274893701192299962686511431276364209588816622068141525643197455815328007873622855876747374396226385124178993603828185869172031265148539984123557341983283274136770430803919021931213530866958845983560010860420416754609733682816233732046064581680783750880463128630452511229906996143498491339123437034118226299427140021339285042471937232004034126373807018749200189297304388290153573622890455434025304052764941904839388675159569713172503522010676176378271468070488966723729827464669578454893409162137005578932168738210410906235645695569003300189301844862254780600542015288351794999272745243665256014354873579095413472937051448772211658833271125067273461015022960785251481388745008752261867960713912131617839375697427815539373360598092020093376639719038675225969315296544328532145769288391289071345934997077290330486139913855138478914159369481047128562644202772326458462570816461913906783316443518803603191869976180639671584614355535971719290474119892324723667122738749380833742913396229601156570729995922736622918259089228838182482702919997782581813792941830919822943081366710521216057854331931544745672867549265853362958682533600392831125006401860996942133235920451444090648764977575433736222909736419248404789080976878345731599627155189477425213134401385548617217912325263989718703758251991874598131753558062293794745167093142539136156905537422219613125893315073522670508042585441623392228947878550040080505727725125145945762339198735856205336915231924288314878407609782994365971280538726002354988833772374682218977652365697755190613433626060120139497880093085820071621008451143764273736849499651586255956165501758351447906850056789423141361173231480993717043496752138408692469587968424156106959824200731442355063445118685045237608841074857452229501122350465386944105482227098696351573823328108620064005880623484426123085745081489173646329935812848375242282208808520361396151117244256212234447224780874059892947003361617291580023729599896673833295724932566808634662656290796657158215060204234232223973099331061733293346069006282974676592385155704521094798030271674516401301884899468459624457681443872065529070543879790624590930332032737578516763349713329046964200010245345677705018555580444535754996143796697211202285712542024232528660300477368316429705875760536110245490253303943643311198638093683260904374781585398778458665050597213297624349240774381746961187080252005791655984568742223409900290181542381676872855649611768819079563153524867662946641839575761871957113692908780950062857081609789855780266771308820177574883760184720235223758429911804470459335193781715501178793990673579037148888623888461283178453976192253483477063834597950946109079988092798826661624309469139798143504889406428518520318781509191545070551526597460559350397778287160702581558951151333642126332966631569811069301784509459776254212740478915721906282056324917159526787056032704428871309034369945484447806041677397063783938473634456142726372635463757411528133139053867355505601624201102442685963803473826384477378346633726085407572660141405197178603443815092093892566480471689938926566410041177620369009175377498491153249948671289524672019237793759746953704988831210226404869804763930891565422298609843283455644669058573661752129637735820778408958999230875900090634811003432585516103154709553444726136183981378509376075108564095381944281301347891785007467151114113011341489957407187969461169750083650981701570425724114800020847322865407722553243518549816913799851926636290627330054284124210696238864761063407641418326779243768720627670114578803843287715232885384701873556274929326021898849617570392505684575485767886881200004315247300354859614235711564250565504158856204277638111509837873496650141670218899408497102998856353603113043240045651608745681178293813112439675289258785871705115184061503649281943089311279745932670982683695856034395817383368865917080628326062595846254101647662300842231681971290101321663298654520853587237613699895788325356191698584683964715308881252141670473891149351360997726399293824180623039945732218401627555164609544066892702739863747004287352109808987053572413637693040914150065295218131488897584135452342728697920300901328618310315586337436124303020574540887596308098909033057925908726469795042454561089115728142718359165670786359460873418787706032719845414126789786117661477534700561865995368236351662682315255073272982873222125765292106394669973743283049091996675527687596001922657314725133585086930941164066984871197292805257800408955494120248860200179249235965084225160946347088338927508885248425134936082789175030880729683455353238034174088710035447581255176605326709841934402386653614227608550953999222305928854029245655938014136398175166204705252807410722707616433528552740828382604782945608101452408332054173385505238206751620107478110210229985212810136000694687858913150306524094955127962381475688325658475433775461355049041469172135569957519100359173249393518299755364699527498132551853105012646745520593125093547832934998616235469106664577035030566925511560878876451154623123594208129135853535390837965819905762344475017702774563819207650356513500137223827952733352842473490981181123559146907582151921101770895391541036975266882750716594984029104418129009917257942761049555712101222480697990913083609968775237930506712170442262608255264213092769663431923998390572585756618638762222039841137721003500793715578692848114555407647293137072311739773631553851357899531348689221807460045038594695323770844801802857208541219887984621014688238751587011677740072099262585330610186248082186260749486670872986722203172968985437520260771455067671041635688675079585545869318420711160776254747914566789453311826848950850099419238195992913356983214938432768854056709180508939875495346604839442794945443919232522681424257255646697364005928631776905056117942489374764284691532813495352408360621313650551731067202758622492298461116962991419348816485436430871353721153975027050872306869467282277699988981147892205459296953193509678108692867769156105248014392480820024845457458375771920776171929138403307387205481888456136584936329267026610685008024703296299274157688600310365669923432388363224824670147969823450215745768759270342555868777352354163166572577094029946940578329142048553627460979291439651832664051033930902711131948351833174538152739518490257347233543840057500176022555072177621214389650797476750311868243923989388529413793827637346969598300762054492284790398050092661525971931359272033858609555171564544781321402713253293826834002914090998103354652339402320214655803032012808370893814309823804046126419018559259081005471859954526515406881373102130920970260288429773743141120055916784939802520669941569301495675410298708038974692011075541859460696472707040465929787437471822119135985536197476341788252794436372741179376022513265689639888592518398734736793703501901236206320868539277246090230488636299407307794508997482152327070741763077889063553157108822185501874801123020731131712153592600594852492735798725235940619223644984989092875528560793088723650003609593368259491216921731588588643396361783349308217563096736155241448870102132509061719177034368807654529544630942932396611741148101404963000524580032579702316287027214336595427744644475420286013681135638157320786316189582693995037124001893664212380190282016003923703333798192185719710991086927478219949360160144624222696698185145152023994025140589095613248707745160462646516447123226494957948054072939204192501038523640102459049316519321982377117127278223966604193389822689920054789657145851098006917563477925578970023204146804033640668554827574130355367290454148180701997274315873855453426727907359822619098398015435237798365778292793813058849157994695122434475531912177522726553199984751147577745744841931384655874735835445372778401292384927022958137221574156404145563035967183140060290760332323645834555029947665657982256817164772750044219390125090780707490257326358044885992497358292135317284398655660440070151279344256615009923103646029737877958881287754174019812334551100946121434036786028353578959366915542476735916636423686352914782192182959990287780955815983703828579327537474508479614888591429110154342125168713405207022515718117033654746386245959067681466651242109361960003682364851186503004900705294930400063012905210971467023085060056609913713198548808235235508458865167377615783312296887733530906053166188511431035246342479820843579571963527724223711775754237840308961492671720494707065450299846276036247754950940901833972217448798670063012433580699774555951083241979131968643933053885347889283007304075077352981684813768518997009224815127155282837286073300993536611347933583530683655488222493140297713489014365877018083081778660998398114214620277313454308193021116324432616825543586174318175818755259213723116987181348322525376023403943424355371045991464738117304181350361833350705756550283841649447154560597579215312362579871068088603007142033593107998118862605874207574017061933010245131507063851589594687379306949883743075088324952862646422818403469952368404680284652854224813893500800417447320627498849752802841009319433357124031403787076506875630884677230334795659778907938266059822414757530998040103726028516263781428992942957482163588790650919437919288871436371808020322292174013033160709282910662227707574331331389397695827568952279526809785624753381701651617517984522926137713622601961118438500529773686752023442786177890909897257184739569365596625786360181609406386755132981312634651753479191552926007762648710660266914933834010711725120697166610529081508195565267317935249100108619835621072968323078864232036951996629158863979954827091961871034446561074375139998763490204170902938829105502981355421288580897172409922768427875709716477473294518194100818638872272141086595192031116781097731849573570895614497121442892266611778710765027530241516985389908600440333816139771082210443310682379990328661379469218247429145012703389543635696738970262632856269957687066471791730504956634577590907437648565022225287660370514179904294462916667898236242613237931712068278727930037971238366401736557190393843293341050651218681216840650686539612509081116778616509389566704169147062941500275814891768025829778235377046055871777916385786743913553368713078971665859948471955052188862222813111796950377144874830496890641476069549812447010697756092758187675401689264760548663611535422124185888441549804841340787278144691035652610927946842768332843236631907117579315603453809238520187626151173685063171393943791363890515940152365490561656430269027684852349369300274427458448590009585793914681923748704411976396456382506730381070063173637536788864244997573619508319130469777560605248352163412289421941215543139433386220739254517597514375817156947338415971642427083283159290586420863832084592959429268549144590714904718030457655583877442095720205818752821574776718125109014679313869000740550400138457662927125016309432630541531733642409101281735500072553904277938711420026414198635105504165725833306355720678855119609229513467754150098846742014606822612772150742814560725575836116901824518215284069171547035051223700726305870102197483600790938177804048316962875759743388348529274937442008914164275757051465649842128249582687779504230840033246117129848416579840659659494263109580705055896859306281795976496419340119238977544948539650716630104368920400587960344126223244584988645571873791340176111320209081162778278884372149150296122299252747410498718681182224146589638992166702138257427046158071390587346326189386526032469260415293937341683060909367847494700498899293949313357654035927739824278560803107941983433781763075232809462099812884642172446537427561597206493797491009419252802696090975309077791514729253480524761167594394478653483559082072481050008171191434067810956584934799617520291906710598312944258882062925845064206385927158394488110789758001143503828897673849861611462732163019154854740690673187393717752731956582013201709503233298376787980382547574835837759534827185811069573575988601948047830805205087446991393811463354863085063650593134616003753936850335197588671388983283455005834818833059602220185157905217263889619600138956757189343305755541506890300078423425855603029399225862548582945244395696551342811126252107445557385805714718522945117974435107397430115150440644867878017876342860645121791364377938487578137567276933225344636543385348469422573892452597227265242590777806255556159321282439712738132033569620816936862255928315194111634109990480826380813041741737904915958611607716470848963684001226284509458742355059645769807902341423999775272848508954143973357425808119117873868531684129697634307665873532122844803164019404370354879358228802632312598552643039116930767629265485533323693847288661878463849743409194120530681141735848909311806489939141595073389329989060933487279163357205498456102474970227105981111886301393460920065340256085864959371265570623865003853661184416244915919195230992230918510716971269911678783113063194821124297136566959395886666963179943415221998449779186007299636355678629720273922991847988576916219872370865242552282031418977976449193288045955709197332935541203180723534456494612764280382074969744380414602661577635369588323638488459628693809659189138762849216089977534252009894476779945760961527564976952940267463147691809174538558052989381071967913888235985868300575853800387325089063672016999950443486195962058478808623724072879139790181709452535957659443214475309369179701182986110686486032819209858158661332211394507702818029831221259701127848579829259918941118346772608742150954470706442285253095466194309102719368102100492394080266655265908515467959202374637171929127728309997638372427765376016189421267981514832027606001271332632148967318240779985797131988721367086113976354267518605768395577088668099740047601117239941410488604818807543273153445057769477194589282323913545124942142945830277977393614801592849538599166091463208002302406222562536592859120710174784182744419484908147995357197567095012391773756651823226772668605414593318726033408247690810060877746016543648803202006239993961136084723917769987015109812439825058344784145354883144488583829733870211031155679453198491281361254298801406235681733991035825974105438652823645523045201578169677251948994753095012393112686605470660458874722368419417073109190083869397782281650732821992882523269483879344208823395989326100418059238731887586289293284342915428504409472844623595792917317803320055785878438267653731144902625013493944262314962971484589720650190996134166775204864424010830044664413358837989946682535306579677161860827656148299674255499490377533523673458886013159895031294716092232239750100345492453937288228716553433478359243588877060741220958830198467288521645127576020736414819147891337488912107382135239267687869746524703259944160067966359185141401812528120371181312580704193054362755878804634583647978391668066749421344768798416698641240646485311965002490644680232423850878963753032772245846951089159487257810374414541914214301771127906652356135414635578066632859687029029407251649028522501035468978848924863125764511595029809712733468448424310959879041201436183675596875333918365678466068944027537643868144582098013500522990506090399059901402711423824093133404767443194592623198863733799038781079138039109855075756256447910463426101845174749618999382307915217307072004094206283815834729610820434658822813771572588929418649586358637456350998294702107288231344925791920925015598930266870183612626558706572703153818003161378778187431676318133202781367569434893170702148303461171176211722120980737359466469744775291700104329401223692727120880364456264206719890383528652820620276961918059762003979967580679970181960369258084294292458282553930674912569490487430775364354522282577082012990812700434713997846507663289225784758515473670883583526881656040330060244840319434090277449800731445792965480335626525782336849128028276604296676233819889836692247392917662464068213175946361557344999642968281917397914714333954021233482700696991526159171039512248577309823397062311916201512889215314244399756452242275959117870394374896696086037396917741793575442823348199412129173301470133867924809673146055207679461230350485331580596029599393430369073219612988180700546756373895674663086427311182043401797373422715192825505258921466901855676322081912706826060671046660821729734727648267078585430447592917711504753047844568385431932119640982238440323017333677190061101220145767753068848387066345488316106179196998412403464030494459429119907014045669478082876873276431769050929767069469853046334898727641877232340145468099084539121371387028842450850873260877009840929657277583596043253245532841818491378702366534248151527915812922880359852301631243309723843129676652323449988483557992671507833629989316245510918361557989739579410010355579802590192633589143022740427270628773096719242444543502584362095695487482240711024413778125575202536755775092983303351272470008751916675126448550880407954146619606825243350012182569114079184094972049168881689845085516502325425696175814464011788097122559178389116275677907049369915471784843352383144048002576203508712090524917299847538025735022509588581579730801284209171025469133878362433791532710615404598416437087087668267726930340651739704453257374515971821722189469361719918018468926652575389343942411577690450513655733756790420397239892727338916809646753890513889390451258388301108877676799063887024487360599630643416101393820536267920175505982180173522805642654443482560326524776827645055333557115955736127173580074233940128916986672638814976545184942167325251446402114689055770941536910205903397954228731972404346823984649014660177703394274958668974003234866629275570325086507408026247467726244805078184881111371919865677089699063174337646086131838891990273577612466706100655162790245346844040495697887553351994926195757939044602316028515413947897052619871074874133258023024679250323465156908879119244276702130300523730352126222796297676952635509031320008634067940552490189146704076710977555856142071847181898781076491341324355836550993403962340053528292752279022627900467621150329055992292897790038485658643318663195845806343841442081778433313932999664639418920389662857682261435501139845553854348662282800612936273292599817614708046440549667543794454189051209678397525373655672299672322825379438786807503480767154753131919307190446393424902112955183574623961246433503212777100495231094095260121752985738546780326950517636197008032029221171171146663210304888571145918952439610369316031327293295814461883946526400676553691385072896277575235837371848366200008135799220089737635493248185329557968852231388551569733499583874316801199767801857136225865756652277833965321008239731397776569443934583141296852195734965299481649843085757342075871251152102740251087411738238459149819289065704640267041203354692281041968235630405261407280364440429706043761930050986409225107834229767231062279423569156455731450357597056801511303962005051649545608542105588617373657093132571831829249752003298244583828741631074573655119849810129672116904778915245231199805764011102140521719631780762687782993605930878999328966752113103141873111251241704748083482113282881487055804786116758464471141591894032669120693418254338721262794235232164561400959566000754146629901257439443830194200946127183011602100557633283393571665461226628169369479938899436018422608811444307778551646883836114276156950675722509949627017277797950096735644362051509778859040602378559481675581377072336572431677317294561150005806852745713878017944241536993724505896031408670182437208002081350940384036502442322071815635411925493843108930944749627723089590388953278397292072178509801755700398254296429496193790995215734388513233207650702772773189989463785136008503966536885684241735980548585008654550262250429261788398690510832126942997754916986734998684909580172633042813342545381933916992815753035968310108177135915971070591431798512564186836649630606396004746340620838170563693263650968841051318177674600933770906044290748935960699791004968622462180435468853573920788407284468172252155418615831031958901801060662757188732725323045881024220856484444567017812987254182412663348951984094310353065669781714841433688637100979921506491722444427847203738009210025661302040698383485627282409880215762808082502151009313066412987232772164032834854098592946123379793302124339586028492429098404586593280867979969538695604576510999921458431910830762993529364515108979297372730872653588925281971304357571047138665627750634212599642815203047166015057778664242883378994392800797891848707988032862140416728582806732389398580201150584127982388638245758637033784205315510767030442750422138113904619798007913414119195596205968848693489937862357795733207687780609920554093612374496995413887030443884602145188631477306805136792271169244078335467672034749243609590377027432860662816249268845289447128143580015810216316318982448803457978285970078020453396313826970199539422368601446335367256869446539366263639591610001955857757450953670803316796022730990613488395420105886241939110668936828474394939864072846963850578930459432629744161500869995517582494244542023276442506734267384364030086920401844873108084341652050394517398303519303711336824905781128676683614402219422996378305220399206671443515554558110316635174154166787404518985288682553380845465695361590629377301766937403921106096265552134023440173387149750014213826584968037991347312052401945158113139535259253383752015804121588819865449164698002798143849643611503144006420326142166182059375561704612438689730382300123022154186660176087918536347674244518378917394962200193062989639912188400308935808016930512633837390557147220755648597022129048471377473180319481639981440703739317607095942476202310066903567494025133403787215695266880430664585268179315018011311960503689933968431256158620395635848152849927597324369143822956886075974719049308278673038638549841336136173719518900341979994696814511111879754227643093435819119817932229178168157585060430719058526012465314060574251382316852094155312369842846674483640134293843647174555827724802112223657663439071412594251707042405553853025050551127744399253348024140402519534894379998462862487230932099089799260104950288873364950193579717167950215587041042294109765195967046817075218795103789319188317999915238898432496986012095735766506012980404313470163821991992397644738301751158312351287008177147166581107952737838830518831546887074149601858728429269734134715316729234456922896489652952897199120408078755669696494541841255797065098913393144079609657749113102241620948638138617452718692307586666267813601656548807934646292659349444273720127651521501333166066798461488925092493578230690779098205780390705837794990225785033328939334649101053093690728871177632142888158788454659794276083942972697260033668061149733106023693805901558873765695633462035727591243632902165269470079776381504402625210998157529790172948385888509587155842646110650428389346316630255111454989841510049209187225729354715417649109727609359515532390497949612512741802677590712363972660964625703350196938103018224486574049636023952663281287319110974006653551088913218875959338780563029116054076336728441017323369950624505308741631570598219966466579566447117897726663554887927889102819731200158351648008161598101400554671724822868328011394715144196933037154465990710271212014747018895214249006019061293845045575293563765383845238271845835720000214647883028277776817454134855274907733087044083189493689508118208442842008120039463657343262405136951343595475109354878685888055278480326031997498000669399555465643665931135751251396616109359183897186863551762808055915469186053612714396329988201793301983410374514035367893646966427429012833599485780669852234900563078137758249360672664896591905389344657223288010511283633432211950998536907099431292413791787852311323005891513815769134899452025194235072296926672658173501085938395448914008723120003113281333247352742359118060635782873015876314263738166671323801135511370489682889447437114214212671171413155640662702515900381115856631328229910234051407559788905934773345308814828802195041906377007995175973662974007319763954752756075714305776748898322236224936543661268311708666737068100113946821865404923851035655015080730843263873832101705584016013338397534036298799768311402914581547100629948094046936791759988350918952790335478201430096686425802448203801212203996962200749752820448577808180505365490601167219925293129028094575546879328540137804230155226978380753969126892302528603225855947452624152936908842244747424039601901442017541166401863108344975388465206425660475700990795820478324371333629930098381355116119616064013044661537629767511659918680836542323577635757878071762279370232640793521203249817528859419514897534814013712445176939892889235797352053023957545548117988797506270573073136524033539979094560547166237355577580679653998779896637102136205319125943772180962648955061335824726533718975887355337180466304065874065320643290764688132253903428239577056560502691589227192987313996985680697675794776151425140930808193919248715677325643202519251223149748095114184982262793724844142028426192362891141124018384040267926575491754543047593603354674200860661854695177886628208437313614467870636568007099150684288457525146286649710556223591559075713716238243292017741623932219467314716375213369976745119498712532968661054286946637576264093405206163104420042696370593108489499834531531045074441924468680179699030025597687389683350841346793003963829011666722590474561678516767395192432699686289530677554357374683140859435669894308953780079525600970308793171695977037641120015634863409030455005911332129494842760506582982267708088869175066368476340845286469132298057658555067578667288266273396033789705005056102834797620130252136935464314208581476636915476417677452767260862819830410430610727320256352460652843570736658910872375491937225918452568280889104128977502489185255301988892715305153686661043855703379659101161446393492049033287481994477533155516831766732610142296785697575365208971048084875538008366565820745989160997958966536917950194880264826774338598434755414994406677281382451323815208779941148173489166163968103283733849825427020071364865581604056660203755574817038113178993925435384724496531190004324348229173753367960337631985268856700769066227199232912927166852485721375913137291461983891544323361007395317655837483445747975188467786296009963645392031807673899378886666512605115850762734604879242301532730947568019674021653601058225944638574665417990717951673774366738175408488201448892897195431783183007423702485509135714201892195171173436673288320929715894552709204960641211634944409480083392227707784801297905366751476760515463979305402161102516994488009591168119867518510467560216815362108246206106358314267921997365079370967281970956665462834906741624457306051611124402825554706465643031758756080318027862976936163421111749820013674106911081109436436436682255195223891226134380856645541326952625840524358386658117410991041092138061310168526786417706483698283252725393000750307631368493096118230211961999202511829717366122179337915040302160393853396265562868591122966242409105138135148763750246493002107434505333855139328065024720609432192062509263294145857045223776053073118210266528625451534689176456672745250182095091766231888581402578526830624501380997575099111563568994147414008530818726855606182642798766983655202423919105915519255717303590983512924733139784389148620263888797292211734052172255603003713371964896599037509428582124662370624649237127591436449799823264897965249230456072099814359410961669095556739223998246116108532863404889258495596390875594201811388388437993108020210104558705172058736617347174039680628501163876636940343677318909174174487903478207628046620391289036988219260961617005527415977324741384870207450984502860256502583616527242165065962400289032101464487928621087519857458352509504434425470466641839167205066354481098535503742716863143603224784166406544859736270056502783268898809845529340885172269785133764602030307962698444092794009222871631491737709392937784340538726189283783553208591065734718064493507869579673264820365816535445705663268449499286800789121123159013270624605873779767904658412392484932129255072989583311837817170580679288629721175489929240923283739060908235589775201283974286936002368566486594965565300978420878580605852239221904418998003213675252374788953300676061567702087465849573609024051492537592118270461556807791600189814855713197144560842502654300213166730764091408345368822425792578737986488294465386598491156130394447265956404416576992520476881402391498480890008210649862103565036275761284180058220693149608765387627372490493169150919582503744316274665165285443557288501071885891945862445322813332975841104841634157205378270660096555163584051807039946664754303311087110294714436496771689598207451110974355197324856945647792813584391096809554769934385440574584725725931397820504552905327191871121737895005454000161231101546703324454892592442746787896652364505762751883717211155801237984610009243960140157321720591350411148390016891294418733580852734971618271584765736299515738623754859849200738912380059979347100786315505544029846595894310796812125553883098616748778431802983833419982587831254537256868933455897108063891086582555362438095835588471558350712129601179532487052285858450482877049125143062069902586634137372412351748031219346491712493108262675220359633052726270911176194749238089893033640161449325467232930946544063937133444683270934681625195171865078018870709824501497135347742410454570837503134964341744676825899334022923066650741425989232119636021734285086681305145146680122654172740919626420581218636539475076463311442048049815772282543340516365492101152605617604231037615715399684269004945787874167814195163736907636998699210961007886401819969425548688670293557553469984620212729738623457305111868604571518928644937522064936053988994312160220233293952964119933047164780674525280991677359282497638658312288794530488293184528189242046545924221086820219510880777495626507821050375864972027444486215410621208017962198386738019862947578274992894084406299117115916556965134283513525094522818914289490176491252945391930430650981544520571447547605895340736310366930982142574205238890906384659303630527063202083566981942186508515275435941837566516441427854561872409305086570136894722368789842560085366829275427489505998065264135719508730241008136837428608708704726858188719451674791013716667161768884751213453560467510247499920282926715764665480939059998708411535596225847524265160912116954475674977728646287800900212306874244140629990857375987172958660606537920213974465451388550525918529270322504517404628031338467450923636467316275973656274522996368941543739640305878254737453860417577595970143027835160250722196614625526965144336234760096783699098190985991523750100502304019046319979080297108144025640205828711212898439210452865642017854831918507874170205240093427105152848919220631828044780009396577631636880308580575533675621313734211495893767578257225602186925275519576890799260586363273559654405744127892795010717010275033462369013684806329501674857932407635053320048883910114969427710876525987499107866325606871761293642926102509525120528458982215364007366328727843271121233232551175092435190663171117382359896557299654038789611273659923201232163380458595644226685477686826140118157259724727319623114840079226774732087366155737909885099011603240402727793357215919149605698799500769106505980736636671498342072383732425860157312834185265627532331539729631323122533320003309898857691950718358373996903745075209755934467661574940418054965566544946191378861483138357530000124077502815606236296101210640828833621840119977002934441662567348777150135413214261517930041209772373092773602355793541058015771782181769732452967158541829129166073016214037150525114894785164278553479207205712048244943898024575025376501677540020596263187443995414496956718756880003911033350027051505345197017400544463619305379369274507632738898021479737879489744913275721507265124907752914581389279280548757326762936422847879871586770759014212370715252313801410440249920613195398722071132195609284251066458890343366396008263667607224511008344057270315925727897511762651610961720777744640714176751421591863447774550259215670885235852036104390153920827605194933725963285408148312108076209470084023647574209453504024281503251167738437743451707830398605950734029451719491155230571907698625200994113485273409561584645441249563067096332446819347984495693488590435652427705431149547724431190731750650325874060741118603176009191358648927598574570061142010106627335728025990120061065095660210262248486858879505964393162099453554349493430305893822927689254973061014445172074603831926104145730047478164008432836285467299794833225898774601413520705258727426416190436605266258853375522081333270753412131152274372700925442249492221204850901466387092236985301921834809710440179713358425878958958839050644545520672012975172894331429273548602655254109331763470267212321428287210663291939348694596247538554446950593571930335261001268896636547319923441181780601721113244907598881904016810792023688545520849276885063978148478549309653498518537832964311543648805690449423197635219391829039396667354428173808532853173514846547555192289577420015031681574615061843933383670115024772359716527349251515698679076485375364473717152616761036848557463461468316264265150298135913432645383692971221396698998159456009545861239574448436977711371049403411479510050451140110390808232009042755019521813066961870709247763767108634982258549124694498248619514711323472053808374518686143357812021800380218594736802135733751437113655565872488692775392233691772360083137446877715879270218167598364216650185331853826685518391316873746520800242287614479733600166236986165603372483287912755113759486551973055189090983244091531992763179607519221057464846187362795976681407038154156302184201233280887890215185530385757378496848313698993069607313740842866242128670895399989739766039024705713351785536416244242099550905682354134001211116523928131993803737391867810174261699833671019890309722719235306044656384085319162773919132574970648078818317321726447582774482421331016606470843778881071046736764019038841810579572940770014800311808267602918709297394040343743547755860104012663652448390479859099174496478099335539302091107385081890964589719432881740006836176051041767790727994742916459138263973167760177135913443905339780128151151491834785778416938909166431530891694712068076830186624812294063750387151545792370879900701374842820428166669682472446932794333425365828975139337038017795293677344144223272720099990320393174098680707007969807129038082069186926642978719003307459025733036359448744745922413903211993338337842314848309047203260673398041162720234668571375249863142055747540993770520102929786578726798910489981613266067198269831907720752441578233783139983035743947579271079401832635529592328921536293609947826934708273202892594642999462499032129665438089560524224616517495464281032265026496759238199024253673314357948644774974953856988519126519312840205873837299182499937928673416490372574263623702800825381410733302891446709137665725582765864859433524933315331223049004292970102064840548174715681066561348541430425324129510451064406027804164130766643935137783966554646413258457835393315688595556616633828552526521963763122183577320851775262457469567363240249501417573163942723458014916101662857524847381489571828272368292756846305019150567605151450338433597018999927012430252962538950101720631595711454782204434104641809147381818205955751795669646775424559784750830666172063786446538333929597028717198264580012218264808866583856865322234291097803109041856273542221376146326225798355142044946734043759829494217164404756664470246631318768425019008271712509306234687494022017524700861879443950864890447586888490216488302340533594530843929871576545107128297359165669375998065569064078226428781602108954129573564860472889045416550728172578134841094058898686121281691397422722571523303886553021052371108181278753155416383652266888112584264436452388217107254546534763485591578756554247341261280603522357794577370981563552930142721191307940370727191319098394132271043845706644597625129423309553982674932911385840841851837087256256372297995984795331508605386842968113805011692025920896498909675983670979687127498400573219530814511796239673854723289260131987941081346718337665565994615958154870705117801891272293369708156366364803395115599636267819694926538185460171761579544197216289901595940851891087429148713516732454302277006176015375554064594529813451606483023436157484304412453570504103821132003092933867740968480844554124034813035179228310929391773741520306228293135916006318813250404705351293971216687500623680959932853483227493074535976791604658686962781119449617173593051061987618713897435248671196831121683984131144819277928696967068594695587188704337924187481691868099686883847612517897222636129367724142126334531617633001104736346691932759030206980600063796867151879038545103421190264206617989843477544392018602687832404812309635769204867141116211030737313712062462583481131318216544030478842748510421145151852910920522284020384985868730632226739006247230063401595265480964478735062472025407297332195434557684325424694227430732656946707664165282507713881573190138565547662059932532642044870202798898058544337475699845380536103882014495536467266931433093880438097241023832865699196719129127040134272083548176334232822436090955678099096735498497805603413546570105869346849093391974994083154102958062764797023961692902532701922196251029140097973484964586350700693287926882510251540106736941420538678904816746570470193702027087963139165817711670190119344875019423784347789592711798315355369453973837484906672151526260977263486348799473815089699438072664766828533731262671491119908726367911815435445191400450438839257426219125034535077372138232477806425787900614457286534124822660963687391572202836854027867038090669383046726371519234124177464640457261465694515040413385340883028202693076059244881391724885289211072186734775974790155307080923357390414963467096654857814621698182886057918343404497808937313651976069967158164612722859963073944532846082887931849146157691106422903346185135144789712830505680209666631687751372255897572208806514736127050028048699120654424376626484201705392800050978213997886502921425047828357279375333896776548859966500178956244777482859607539255811107141139764686026159338128690755405338565496034135126247513034822570083469531450225250882160424788402502483552932287787625458971071856287847231066763069648915947708414990124528848711065345998095872826113663578419167744368332761714768943498400810701692658902847018987089496495064352330996910877101962075370068079267892039403060167575915802903093930614168720307698423044908134605448702987975070880586488240771251928745018366163170005158176214970978351645763803096621456272221249238341949881200284172528344780770963504627068505357335073219340281343004868534949808061505846706359030542074905061796673600052003473039674296543170351366696510495401486504050691641926281170746873940605491099404561019940228470533023092189438021278347584187827434355834947990368629398023787748449492400382750023683483296583474710233749092054792524834849006323589162613871150227843545794307067197649817750498689757878928886456018790601739196319593478280465809982415994722139732215784414975782533374026232703000493206130594774264573291372131348169184329738542321386201147037171898336547714136548108731751587729897714478289427286648155288731082023922100319177743112804363245717692879485018791643717921478689782883325523596201759091773417022506784842882027098484927541751643582729126507751324296765522944690300756665477235230416515890454899700492939094416000964040176221999567866386013553820942951780384093838067056291364867112671424596126786999721758513487137173566528297419402252350744821027148923437257641488889205381390031947339090700775842839706784690648417590301570155981835972600695608203900380244217846681495105232859690416586179184467159570657593596823472482802460937631858725828379826431253280337483736196701046329751204295093468849249837651845495484245896427846527578543489433451045606544410307007982073241230579885555099287576515985501372920570084172506967293715874252595538995542092506055270522170472139666255053015622780834896710639819473949066911219064914282578211055252293910172114855125169711381365069964303481342273507596695065190617435335574637841867393389380346228227281333277036569782796719301886689243524022394225448866780981508872526378811206879527956729961984737060560113564392100092972499950562937665255892983825420102701718629768697999199969058518176448927567420656434597663458597291643187792978505739518407408061608993682555755208154595766002794546701716728317575820234458514229834568638447993110916237032285358355060237173594570222922011163550308238128975544799282432846425600623636597687215453944258794750229080385026343765643935635733792932677951172017415486742167983874573659992875385222123754938679239576676371723350075939407508322270948481169955122611323042697645153262929977255901363429689611486814936617606807089163984874159402503248824805528795577446433275456232320080413700245459790768874363784726546911507719361898272467249681821392588442671567967965618715394488490980289571274456457779755906833177103420684955486981584609239973241740744242996616219679940891651162640426375276214755892629018980550590577033009900033431734464960837102368612232038329162137859016334288336736173038525868679357074849513836073441157604402412210055580867363011692259155108446688128014054080048372555956096474318947217317155776221252231221157016079563304880167746103076866065789502513194163659860484865264105928005632822342972838291913693011189534134599297794436616594987263936500106626618638734454934098451642055916359851538264353991023875376271022294015939105729403295463163029117065347548758819921347773346109287706240151299427035632446329240655610137041031092553121505162674878824237217840337135134646726535796501458388326066485862154319348480147054358013375774101290389014469273886630948521169507314567060313239866533201846038954256407676750491841889834982336827182492771102655015744621595687332606913750923632518719577748336139859252557024917533762723285520396331831678387478687577195168893911784902743080695787126073488040017578785417723544320632892293172511550946810688254474512312184410134624236770835075642658532749451065037431906999155836049881054132586429363821353144364415875722993944054419655744799050307605105090712697500910634374085637866129186612898517875043860002508786454631388581173623767967727960841829133799234877908413705675757580900270434537227909896626775161981620419305902272102828639515262027802776390456359906327835626688940888947450412936564895514399027188780783541726854027476653690898485617169373267916363538179058162106293112471550557006611791940474031261478143208187902623961052380962307668808690409791417538836661886047903039267218678448358217361254931051286018507370307605672235961300200556520356091514763469362520183090650253182382989016158177346080259767270521142681640630049523921576591829890465209614443820461710558095797959936918761929505104666662856840538217990280617122654481621170434753141872642763961581855249377289962175128957079170872178659451751863440273780904525668435863642907156351350180036407163403192139562427910017170124273012131197444646431808747117526968703377214055258809604469063683452017670977779898635966954262635947063611621344819207930686523494374438725171269813463832143646468537711041995389975043099257829464761849053194119383079061637416556635267834254316383593451091857426863450809496279891474824384826493205775924376795573231341505735911298683360862008587635905880169744889776200813884995350574157524159729903963984602221477829879081682229450286339951962342089040789662684604762435579647774792509465194785073163723084353111347780293306440864656963983989778923056520553531412078782466889562914157765676630797209723573784963982480845663592359668046649431409137175748918578573246402588209428881063326729320090894922551280231428593918310757831725224660456305669990863572810871650129872849693076483993852233927069547634845412698290545192818014915306933301866070400777743478653454508322747898780193113972904603337079669519052671496563710660055365745165814549472039541197926096604159986534548387491515311321125424710472363925889715347244365132078862193506636666843445088756979259101538822410443190771020452962352513102369679637196253080407958419877770542706854851067943464074107497193729959182370075877895588661695921233948508219142974216332527985481768698629338426616432748260618856496302120674224441725781069293879827767619363292112888644586473314358561046774989253968678272484916621576608032015244169549559048615681126942856343995570457094375187317551178924530443297511788748184806023328704243487478563990676619487247511966638357555874731772358894399746321991321897928396109178962555903569329107899389517469432825138107548864195299904620664486780287858328225707899554892286658400013964156336252311378198565297763486841336822325945095021398890224554307087512120185303087857636324021248273403735674733538122488995579941115919632345469053107233023590338299172709534573921351547588164715420600559909672733578217959988367094920021929794453552842377522820081638331482574861441718816166887526345792519992905839168546905501231111674304611498452596929783066782202069680137124185638430049140636064267417090133554824791302968484873224348401683066674973955706160880773281476808128017673231808250715782368524850857583917552685968684671520082550632365321418941468056956985851911271868260557199184504317864847844127781894235807857189668780426647620848073283822251556549164043978406076947245887812622135613841146200808511228020511554419928281745363798544385932464042065459484299295519161264425443315925389798583319433974397245526065409791600936411275241430371316266934638862510170251543086171784521360027338545193242012319201084853899397556873044459105354160660544302446398161324535723271257444950178854672233532218438280384169931196938410461573991515599377571106523672500915583646271281135090265823650021476245366833258076626410496109501747061958968442936857062478681923344781798166393774748107899192240275613515355253824065335370660805849771881125464519137948890530565952977599335319339468657821835607882277741956950785371016930898502041091527714995456606167228399836013171540960651326722097566865517970788325950964416025835201998384227829539493989614343557260403784648929879462691432182176224540335419553049688561365625386012099799625783229993007309340973743998373917201304170322991613453095139942620156714208323099880513684316131280491999807152809150258494502745273429320933306376654285946733345234753365831826743738026454641755097526160697456689584237425236782894881737717376155145919522434073601721935463866476333080624634976093623729120286215966957353324303473224858616758782569071358522390848814060013725197067183557956707032943330192423104373639704589911194105184166865290115891084598085277418893043464940346984922869068818825525684164566683469127235727635884817256808560402708534986289040737428750394340434261832856812385670848078141759154485800804582903629169181227333009150774023804497164625461605882712567575564691784460928275743225592659646536072254023472214150971303725622845855454910564607255799792116899901998389683934232111370679827387632393980279548057617710257053224319385976984842623673100866098589399577826307330491573291647386000466543630601900385472947544226320934815671090865842706046326903547993517215680091096730531892891356745923464479636636626016860559987956757928626117076832349521736000251163985596976832345853863534115514789115363481855375413827587640910730281605367080241329853627978745561795276041744245396727044180200538740410726542397762190681423697880000959978460076588744101641037791209313042769984710640116462475897644153630786164239233467090325425495635287614265826448198080695183135370199301590741412889317896534868171361651494200830691296502182282003717857872202921969883322831480333507583063861395678624843745057826070090342808431955357801671135090556567304598680975159912935426120160991308473131384201933015186815330420776964137422173867853538690815400290459090217437136576096691144703509973714697490192015991993109644686149437375283005999777799700936672524180657737902913980578391685143522700197895285494568703073042021716832053013729727379262978301927527219622765820413878796649779715509000948541896216784149529884655831897137094658553406534190547587243266954821917123830432952098398639667529251592862906922307857017969149200105434407225329924595246035863019610696315044820920054816768817079605332193205447117815950118091196342280166255637543489389148711257178485010206993030111814213709405915262861966551535528411697997876717458209089505576051177983264926136628879948907191562167870249146292978790008714500898652603046721319337011306659154883196365853372379991477620184729891967814960943906803600488317673191447391044935354740457957719366884800561594058977823881684488506763651703153324632405601508845575174526786014187857244240423151514148307145913151201277866357253417091281187663478319621298522103007153846547900322195422204677477063764044449839496863352323247923996107060461295391902554929847113187815758966559569637430310178027794223307749755776557774177407496213434212620375850246236990462548642159460828992815280518950223360768116170346115052231086507451351058638268872661447606346173870511606349732338732674687895045251322597057117845471370718252597078572753240369213558679948194111451596692832735826419197622352520475277322522134377588245683565283332594544075167639702288093885084128112718152250359768739533719816289870188633592930536216188568348188765561853317896614556484132151681686330379510978614361314711487077812729546518059095283865003330817244792415582947041700559742873226156783636676537565244453516397171160066968298480848268923321874391479320977297114914732859666587080862059744842157698235542046801227763763638828313753730236381940417883048117211573407130016427666821729451572590040849246514560655619265739932532692698093627754372282411698126462675852910510281619665154199631898764437641416184801765689957050448984798197872611495965864584088509616452316501874511858302844175269954132002064206496593849562465627669757705163756077361853749144151714142034501951141580167259258347034552423221298183273836645552688887959925779973616740461877878230321696260943362447563586733221500672914278384514898473620805977459131612112855891989547854261645990721226229337040145230395085463770804507471898777901398120110814135338936266422138319385411114007729984835262251967721053504946233617777451143137609206387892327593507792315147872927039107091243578670475201130667782136912949636506806407499664248180860127334911663001822123238927629585368396005114943451542570111987975032546106432472359310831303496438283683156088079388854616970528347876070529917302173299791294151740527664981765511873589421246756873733908851588520667582835756059234735841160356318347577477226297605526296934555530343966453128046064326350132037528502313184632682153851599646384904377035479718803072249595223593646926199906787763061347896904781527620550893965941965514012826577127275422630259071667947392532399514992010577382033751199034866898804657910271590111216852724706352362496828723990171551214473679218494587997434441665500631859230419160887678672818975436932489033064150619641207373522022189188776223129367769276130498738079791905384445536727448522567099626846529759716883065624664654919024801571407568794840327742586195736455849927716839131383555936561837845147901741852868786735645286881547889501741313384756812641171488515975295421595748155997408949429304237180332876187172436296159575558657927335998104987896823394279090886152436227025773204187440414931120731126348588069749423949897622429307348805219697426109966766428049406864672553034054336169852995930479702001851942081174672895560405491140571188663693214536911306447628417409433958177153194310225433236633696875668801811297713169856126633540821482156092080200170116984649390579954461922320181056870336213167699232140283005135978025063027514922741491771606846496271036217071328769707017428318892399534742772863431664348578395434005677460313178049422359187712475782458038992909956941791954077630984534831353695547762681785395156830720362934270335658312183639409774334089916961109034831229091674347085950487946220347289239670895933763819702675211207145200956871764004003755346200583114478205889074720838049429993177946817946133493753888327258003231341516692960162325579467001367994529275757282288789659556624915150482511449726538552165530064434462803399192332202962460675237063404722991220276746898841330927453481536702579955020944015826106163596938822340228674395640368239410942640233141016374283832887768037564298770746335762661018005140504294564829957944711905654413970932498406503873259319643027124000297851671840568289303962584307520305529127715850210374779906659516828854673568062639173631246333425950654611109476287517981202645416127924756678385572223948215983235038006331994116694254073166739410271783825356143583301130344797333084448610423620313622861029588926859545366464720790102001801018228365748183345711407116915900097143923608167675876994279799951129400314009783198415385568215702508659272162205375177182140019312147682051434221787959808332365196380203760849312873374987398645262129234609421109651630967370583670857191899400039420504888558743004115721648573971173240780350073066542153108438040674117939221935211543118936643028288584089618915389388240831692082895359414644717358280390450092478462561069251745322698360692313174363760559428586020486145065264535739420261533058402692485717427496662283886627241449773374640582888904587848937708659087656595107907870616045836124815065229044207749733447942196968399954263786593124950311443465090747149855687176480894971201254907086736492003037814365716516844146219139915941133919329915550226823704656421250422373554504077851289120041481144790304715147662111775743514999510858982275619284372945248897326438045042025892326442776910081958634073483124921050566746702104849100763425018518902846507069099860596226023744853982118928085850958143123960841952690302673313985724135246481996098380927471280780507429974752496946317100695566239591655613776712992884834313130956309232757854949266032687767767242193065110015892072787301272489422181973836928066518570698759565047089518373222063430123961740137090340309390880768255873205971502470974409118176822306492258134765696273595806446067055490944126141024131514049813133280745620468287048916208135527065840377981269876577694627260290606380278467638785825980976453143434857929011008864399961428003165744157328707746014970242603451886057347116139381593258577544672695520125265022689518774295897080831462303575981026133691236251830667778063089478793061890980772257088757584100342960309925961700341554812264877612942354573997374774719880593864466084714985398904868337709327900518464856372432029105171530442338689168237831157646065437115630244723537962916000082658266898679060330985038014830080095597962780871133123040329472169023366045117539310036352393345611218393415663375811295763450859826654735733968104147426101696356306913535084635910084420125457349280750768511010853366330934058817040879677830954710110941085876144175508340172374185417137938956915445659226751064277538850418047664004753868652689019055977760386144950321188778139527058265471927942969245183385147050124374867388895305610174090643786906318331010501887441848137614056976043928277250598953053392159768855938397637220078127291684967028684375092699845048150215704961330460540148159888598774163188476509658227160342505950808259982727714448283542250487370694395084652023675358292226618864482296764909781217806201333151393428631199608968086592558895488016123228874053941735004960241267277850748259389264515089259761378402167874242864706475140744394657889318265894117665627151536707537112012003856547157272648028774616083669492860035899206304005929733211501798829889365401241339532120743718831635612998165692159346496591760440800459043642425525212760993333752809546877771576025088974628914390077789418126593647136234265690928750129130357861074404204642596058437829425339430960319246280619945031924663567423639983613918187890702192895990366313946759681766127249692740221575463528912972896779952638484029474836269478007004246714324450677038279005873592127256756453753960547073942471787363518645076076245898553933828261761850693211418860985806117208699526448739048952606453815633650871907679148590097954129106064636454963779951994737561426956727880670928458051189426246221142309310223744419872024177041842049445507253637201842318169450394699146395924260491461886595846131369945590600246788247534041271756701165740315729234660118520883136747940916425666723644201627208486624589428547392209192669731741129828075746908272736371575161252342779108509860984307345369408839542685231131116278043079333453217136310220715906216599911853677686506136535393710749043575367292239632081671067429068643066843255176802712799564054264626288478927434607511887213325619575624657350326046115774262363474385387202608094313753989501557872272620195979062351473448038255329618695493236163099698721408612511491835418010984075638309586802925793703967479238412209432504718332463997034653915224342533411801091023959731429634643198004437065899186975599814569850729347179433234800161797971955246311786276564840673601877783419484694095986024675908203892802176403448649645057413170119000429310342506010199151669814935680602663582026446741579550819978945207701222816514239950420359860939648953842980772913759092090595102848166595348154272704367724365733001283059891583694978376330082402060427881304864499939103186840359070179755144385566464243643002751127720575601593333607050138476738652238384353341645249851180459007055725235686036015956946420237570477942220015103326231454158295327476985251783972546506993661296947439477315909202369121248563679511284621883459520596463574529165432091285513429307660234605738926550097611392883405386960967145828587206858727896357571245429910257652570198889600309584736530297074494896167525821865547380668842682746634853090237766058362774740273886017465427919005087207455666664585346409632634520540098606374835503820544363243250859965142880408834015369094829718860455728209334721280553580734045551984857437129188199725852618848079309699937396417585341227272247879313412886262622706794019220012823710379763142318035733494261951877043002428001452055519628697698344499613987977727269087370163132216656730214237179269496112087716573303189073416421662869028500299107516886889931217392068005176224290169434064011063056555866298151382260518122999690032139500189379527632556841998864392822365255858259588158805115851424929077520616881976781813454284300927938055202203446566367829677877826864594064126402310894363188149360757018139012126076694843993193244607596356029136084064370301141254980007024506063109599770170319507285348289426294033983880553860326775975235431268852502420889893110403036109477741345974271972991155255497240399240218153996937493807291757411781854522703440729866851017159997950954695861727832608625666890388569887456777591680296373747699135992024995305550019651939506883409570235729306044610943325944933929594803804801005584758153183852369229372572685358465531180342801423954731598000626612111278269393329818128850353906418124267591922614378056677646011727808904018599375681550590881429154744130314262240750061128998247989008518822773556663634287998226077545128134982213895484695865143929102963008643344462554515691636340463468012660422059212013773303244530582073883550933078226802771144935853755353137559796854501336272820672739571146847996603616110267378400179705092615321249057182324809773492834797431504631703920987464072664362185845915409094543408673585252983573400430002569180471612375840490951546250100558348083661479055656489640033636828012044939901210543952974128216383672469221760690992231187515777173487919401173434620933435087731468423827333613391157053329712784402273284044563822231787723240313820540984302309284367071023426909980792659489271503739061533718109397316819898358525421993927757044780381426948473199223863226693168964805772054489260976735739803173733691588321556150737553060456565648871057486868021708498512329536208478659507846433222604508839235845629059872454248902341796534421823199463705652962435523079018233898062503186875395937180740200102561671014282625783210106161353529753159767469164847800850465282285279643442774889951569972366495058129850798461053870673350678963639808827138099689979321160904819351995325272719359471192098771747932272287298790086293901835880636855123796402200852872976481474386061641586460932340489664974890029149356410009220021309290304416561867014954990755171511084208264967238694901156899839974410433447976042877901170752788626366751683198820874854770220274027137377517939052194212101231928989824905737733550109884473277037596436198703016308250837806455296910627034094405799179490789088861308811106149610499849328283276866535334490322643498582246756864809398707839715862126058819696722733578635646292679587398927776233917674848105800926377756323967213377773964649163920726820275677603180629001317227868112359337593152798021306069381671258467075022734152515197133426299852794119000082267229157527906275223694064753099184960303695195285307005225002811177469058923486078584079514249035195545338528172434354138060593446771382407197622053145710491689645840294424677474091907984185473519096374382848618368627054126935963966388978334276179745622060891506640943312637457920343141498039012089408736956533386585214755474709419068692845675859433377622038116858444907833381804516813015762748655382108712821627775895918248725661303897552438149378566378087447043287579801012806454159586414739000136928906142740055159898301737533482001773653330064863955698689073677355713710889751461969506753824665390125904714659761899161341509223431709499971679093453377584031797619645360853015478763732939796727047741647453698494476112387444447028090456262418341455136565180098272118989452575704368366290444114049363218459276836702388662622352594840311015720577768098180460635275828570241925850521652075163969870904747818591124825327251336548897533391101161488564853724621997076074699203361549857188228992680747783658140955815134989072298377732802822170968600976496595084428427113087118406467113907121812853750840513830372867612252963427547363257397153606802210768607262131859202659051406306072322078923076972169449002329199225503460459953651717672572318273725944888315336663532175056997169056065656244147282418144638812580214113609060231486528038570615813433433824902099398444764576728660286161169993723485444021196802314065668168241996965969946292309146468054012565931237008475438920363012972108410746616071732899253047688867669060202618342612414425696610001974147192543069505022500099573311775353965143912638050748112843359995932864631369152724338622103724650080935251252152023047148940065935858190831475233754089375254929784806056240233241628900432972665713538709082137575924585797688034804677441269545206276616116642666688045601510748821233615200660920715213037566358769499945597380943260519118596769391300588227694825358832722539588739363582415468979208144552256689675450700219099841619712903400347395861990909243389481064592816696193667036257516032196237086170970160738942886876322124374932416285100110256977116729051056345283919367762172731460309201092678115834043059622299940311160079480232669887311785096099058813613344931718672944401337706581366215306814847774179275645467328727375713484385112584161299813370906911437603539666917059958291163432819552195373551194776590007294652502438747077464382285843671476086232055094524011469813963530133794186119774013033930986169176793011027402241395031054885347451707632698971542234115068078341508381481341309661214305315690263292267860479406033762286897306315916437785338188599204292324981648713354931386704334512809658135870377398707157490596564414737602706310022107090634265302805819808667068406651390085566531906059028143472460398280890364904657688585782912909534410289295336539339178497207918708650402527145672970097229380126287027045150275773434460736448346241870768975933298052821959063496321052307264341088496433418709050528502519947714454971661599180142810116024498286375860897117388304196944815873182526259538606297655473681906392790303994323758399781779634654439558398249077995228053096907530717880347105637781942174643478038732416741218315032902805383522761709603253854657528518690347611372270907332807172768532659571559364541504265342582226546282925125235788772819914654725771893658388764244262168126439297796683993356658679624527316930886502487457430204840708811198539032706521484385997056447290928333318935937247351279789786770060569971874700465086641896991993111551482607296982304125869202488234828625946220468286655501733689087803944883718888335089507458817821365073620999932396044743488273346908280374080653431376897243288714344845168587199811547863907138995273979814123233047397216778133817358274852943344150318757031190409277477639312600097878592205670184279641247506076457441361326175784968943842595634165771675816732114848704400773448208432022473589803539380169068526374379642258241428318000711112770007938721326271668892111096073001833733868559364408323820635866867417704728214765857338322763012958612158246653573879192091989642915428373615282734832253930181224294023790372001698955591787422360904630761549384974770711360175787990934190936874035492552017018769391353067600007072249035336763373872041409145121473005479617428498863498894941704197223917553325554506105649135563782793969512080825934218439787631620234294639008246464522476743312427892498426050795775700598194623346119803450315751592152145346629123480667933381143706368417884346951889579301859038965285623635263342217304828992152307275302513197616698710752557928228302400299927642792366613728183503022807774596385099943051780004670177354162887151629871735521136126024465269656816584230339017236944107019548227813130647225931477575502018638930031214019249203832877268936022188529649214969177400300354317769217236083605308266856044318944475885423483121737140154171796345313120994399656168895346542992683642234368415369031357711528328881622638472825140746605597156977571864844596172715938491309381617164499031994643662980323298339509680080690448214189642565569755815457310311434147418560380565107591816794010816471517439824154718569302008316411678689000291634061289448577069816635808260224226288815471288368615286447418688610669063183874122696060048194550813958510944401357818723782951706066829013575489964353767302331071970428602097391166570000272503131871717170249990059678247921811459416616447509914900015506365623685821634261943619510017941156321089417593957651562895638546193458100731381969366626290303635488810045030271333627941664147330428205666116111780998651449937289278502190312356448424361787530884228223043848483216783029773093303734708049199588954410417300302816635922340078663079838175316359941830086009133563780113137928874193931277773165260018385816963751348662769129746346456450449101186532845824000084462897538864450122960201737160153628330878430521133828825157525525875841585799895516167989509267453204468901978798404558490541739332141615193646886414342249852121294185342658451491917829513218748259800794747857440295210762068403871001104328982360717002408027797503935922206953593028287582386739732356422731807416341867856929610821229022098518724665961269313713294715070190767653876752660487168246291914414043324582172789331741035604811233842658838981261140712439859658921687620485264212203422467063827267936993269325712091979528007789444460844964985250203973650859919093940185254510556819997433562247975430640054032768616305506578171545393490902239880021887995819763202063784897162441703184646750423035494665725057904364641090984479486083812938697292327305656114791558321842313819894769283052447583866357760800240799771106241054244158049693526788681607963154556616924814276081352788647149506863032830892709199011786641007931839577729493188486069130066298154732184471512501407847874328142477934537342800467226298504880272194413118165812044968800394495312299430627009006976311765837381016822681981399723092496391851124982547860036767477401100402547538565232236950519678575987030161568438565370551594943738157393146668250304348603710092507988843011646880428822885667355297574297780013344514949829301020612206375220867085074104706563124632867692546473047835455361898224398476639487780730967996450307039264628345207925583608597361057134594642648862705682727101415194620685780405349507903329162787200785135282880897261941816800972649412797159987474760790509042728832248972100484755950798455561870567908476018596297594872627698791970453558137023270324766538807194699152811980247657066406234336462694621837206463038916039762772436441208021056216381245898076008925268794428669794179325823880805616928740638838007462905076054745228052314290542106198533568345720126971223497334189820335449212683907173166067623221671027265668070572146404980706833508839324235773346459469971695314187187016086864935204511753082401453915860965915025682331835577308643746898795933492383676145152041292628068327319199044165062371879029011077498232630790475239947092159256693428173993075706326879951886416417381155661754541964174172367461953165044628467669744778159293295204319435155465813238096464527976946875149222234974144602422808822852466256283265895643584256826233824319446575842400429866994363448202186796666742600684096652598812934466802046273502983407891290595843089051491349073816261255354568663813470928260625403097026195526011209045393786116985270964208783798069086236088311913702054613923404588679477994438551581698702399817727405679292642521773435947986881497631930315754141334260654613868630419009980051918383542507307254755069899567825489380479042224730549316904113450203664161348558855125686411855982671430719518681169061712808768975866509555596966908860672004048707136135734224510817203158822676515005042374974259687508336989743004482539936709011257520517282592369644745178009314131987762236772732670798461274973649736187058843388034604193701025904252388447165598354859497072285661829228077918768219403825287877424419687095424161622738008556836374574903357742993697181721901453237075352948310002957487909299132064407866539153330625603454734826113699940864098112896573637402244821525266889892908712308751218908106492060498039796432001325466145794884036596452649608924997566282240140114993376017326643664094609538012056764943891551072718436627497699207951975966118755234085432335702851625985659351723420654202179471229839275311321842747130661433915426127897487734052034947010098691319001304843904056139977438438599581995310577052477497960196309485706486301746160516925290859832323990565164866871847224666228011942141929775729431578673851009355454934326460661688183247119031459458161427895340001737629242943421113599642089207431894922634077407082702622768330885239188994789877849839080394839893782574976177633124121958244100554379701873088856421139628742384180802860806107634664725128370408852702527430507977374293884537348199353355178179241947268357910989948600422742790681873033519817068446623920675620536583057903326790163685835717427374325030123036949105559015000933310852219996549874447430645663037654095228353695886718144540746572176015956348888055893389624010574012588854211668999512229793634731943709313432717701069498488464305559812546390071779963844939913479908627588970011372919760691736915530612744650347264531293512236123208855196833321663299115038991925683855518431288407947306622338699746576057239547736351090055655538833686666180721607727867556867651696089285732583162184586323165274830970093878108349832735154907729448559329316947731616765664833884817451201262977001458520260784821267321578371121327090134271876578443236321482966876132340183612049837739829814750798690891284755140321704360407833892274059017970039313298630310431992833122426028945154543360270882068708722631312367279883080454172222987796914753940566539156337672900365277039097445558115349845196883899034730404959705693906912077817469967230712363017032043180445431932826234833744208745853027127212441809070337998722838124384010450722299437930038955670079027033744761675800911655108790731831487381053139856379692283152506466925287457235023229810312069780092823062839148531546130333939489267234395713891146103952651600985971257544850207364355924004212612457070612491133181487090106541802848717760758082000872673500999237774860122626569808307785263095954885732158544173458238140240633716679723553091071348038661251235595758564064926512287776893965660121322789661739706208718072097401296095190593228007724710786145033829756217002022004361500314739135396994105498057481645275615297083519147684470515365575304946970744806916782900770978718961867490464680152607084350403911813539939471920907117254282851916093367317691288892680660015221035658546605094422074868835100912866831508114073958144762521480495562364521935892103363402507099737960827319402937364656375687607705800791964030526281971975922100581469864868223655822075623144107172672885339330655776102602095429787738820274880057130257185288189375563848964209011053067017693278507412455805460713825778795411820799976518543895947441200974474620769037149683237796364858846921143954939451627168160056342053298719582940365676903212290248740517970556810700204268017384405843187417775311953645396054698860603108755178485805453203042415011514206276051460905451401807815217363237182014238588970135805967591386199338229305477258331587782367864462489023535005933428411054008562744752274794995842587731213959800564640311981468439548415598332452579091082759257497933394231610677903984358206297346120737813895745457014127719596608417485739470576003185495194562734231534504849402500024560041965891347541999034207205134375294926232668826311433012480931558512737811911898491550770523369258576887163808859165127080052841236898302903914860328247978396250986680599435169234309737356055016845467987425267532641176333231299293730381829700067626066414772325428183370391446646227295492700977941723060675173645384753197476450650676083397847451646877916441317887041289128654652906536928802078718812824004528602180784498884908245232088510943920598122444919652173113141184683337482010365096910206828860246024398033031517594911130841255872815832054179791323157882556150539831894893174977674159557160609131477030208780606894705578612919687387163904587300025273553756839167944964679656984970998894533375456722198063613266607728286461657558681053225110062857366263326839493130033636855286569391795526771862281667567966907113455522800630582915422698404251597968599338726656586796751312668299397061037794315754207120095139964850822506951797349813367532187954165148676365125907846886910949130256480579704179204132249537615325451822968584969602119784874111509891983114395632874630495869270493945458819155076330777822825462955220985417436811067978015471037121062792678359885946368211439521762646239136531457875476646741140240206120484130536342099772533383633357408571930203422332810555840110558936212435569927291681205810906301887479972217756815815691797627068622291972320658471661870208871370609113991953203891183200803490283488566589495542208353142895107240104644892280799267204118007316231583380993751729732114199411541127139644780202097479197908697687262492363328547848849560794014845833215751482044890523700485406030616570586324209602140596919209983964322779689635237813602030284447313511377356010929655646055650049610114930471131789705222524966198155072492491101696404683767073164292018487461931414200248563402538913591334147831131583891380539154067070581488349548984301026008230509911229242568896210508872825865434967726377414536535842204225892687228997733831208052758261041214408753480096624243219858718949685797661879321318013830619996140886962734900307157867027891785144539075680853751992837608440188615676413328421975378469503484244363254723565094065835965206791996100967742178686457978150558297361917233154871683872197639126972449875865151396040309138070271828265239164752430243690623631882199489746624905682102172102326576226486070435580300758018852566450357306082655806053620883645046352662921354823452893582188041374188027450443263905506448090149906591956225282289968717699490289682738243637374150176218793894955421857365295630323170857441558399656400849145096336409637035984504805543347879100513950379094733142340465330911787474099146956459881244969223406212246137781884053564383421095835274809003589275351070260467100184009789263959769617364187426660904632043272219071988539979568899352018934130137621074759361413559937619633722112964471851240607886211597486597443903943977810772750977579585353774542220680288549429899845988026493918832789993639338093964729862197065109291716042524409298900761974190460837220271658916378158380656902162038003574861802995834166309542773922294243718378283030391333860998098320743952256508183161548606896636488293905116255384653589215069734709667656461795147568526239563248867005763164195528907521834008308542936374796303261927647050365240091650228796294964272240542160881823818478094216000548447666924019436324715615294571112816009695649755454609954231232426458482684188119780989499227835435665676206642737971629830908576540622659219925426977115360727504124629789307232966948356345937070002635535068035268156014461636362471078996533839186247699230967369807093537777731299572235821259084340049789070959862892448880481414705652241855779372810905710146436587435446438183445153050823176145071815859583628654918442199753518279772536456013472704357150569671726236445029569317749060307340115734442802004567386623203969382287744043923205416182533146783911466262179296206101368427941009436705023281293680038099100662029723939330942240104960835803052188220734315066419991088465149073958350437991038174769781703521687879444045113295488289809731550047521466927192799710969737882713295169768541018600421316083456004172435488768051325748308208078349003403991571718104890517042049637249949158492172317324049721810729134159492489302056791661746240732320633946649067756674447270099492434035735740224241958821677777528540060643195335571754980233702166018327504371193206894046367370362862162078569106472034307076096431610832017495431462414152688368816256683741104125447288260536651234450757800463499129966878573800788724624265550198916184363224677390013155073484077378581079632644640252910324024769483051811099036469257023472512405309303838127617066279466966596527359836199007175045341286404029719185662717101097650113926033479916959652796915460668560015431947449669472652801168983626509234429045202613179181647917155888084159967996977408525760902881326432197256229108579413259080568846479482419080535876596714319611847306900346109357996200381204835895412456595388160364792734846907582543046037484359046258553873283378956355202546960445143640422458791377064239035499880938914840948467625659541207815013367955199625285852977105976382568352563641524452905534899446424753655161766964298930349005751647916058594829130969023583730367538970658889706310703002220362090483351847339421608117900834370604239384696337304305774802738167393226932086349643160329895939688509188862654264784789705756171228358745206322903056400454386067809771974051080657499703884029593315850593294631426586710011598559783731937179189231863740696888300518333090567732299598640380717143548806771370900029206786488366775696256462050468944317451367682485840006118405137797748153341383065804974314137863567039541470955790547337512351521771471635315824952472982346731941700207228217004705913893349844300670240991815198210868852920704637892941914483879462915442066106259941760195445939548368968393800947077071830418461878084355916634079724558459175779628327298785391945265608812676141881723348030924759061843589759047177383474591509389145894663071502284481886957716858603724949220014687349389857786477801513979315432673240960591795419594335700814285515856420971491845977803443858838203910164786925922784439136858132671419150635066349075972334200462680988735354466565955753841385873497672009987510730712132036564867593090470118776131539324159372459805510067300271139021402186491289814751806194294820794316315757575731845207950619385734500042563012737080816594989155808701374084558322372684101456245689871798683098723533039701818193218576272423061407711657238880564433878558318678360330682283211250124101212345696430242960030368155394307557892478081139649437743255609241789801064037504605465136251672635362308136604623010721087340593476752681773797500545077943623234441387616736083316351156088037069442340987622968139775985931204069696800466021281337812197102892531039393714859154914414939667430996232418866266679968277961505755501547497149192533210531192315996092403107986935303115027433060105448742106376050039035782856665133968888118566245656030888170982844768712243488644614025309032928771316460542574805210766177467661295500749843748219446249017118331250984039558110522674361740942436035116587289127215443530615182802629719131798174670164932686506616326819749041109004046455504575215124741468321299829925718601765591375853573662551429326116145201760421503482479650146862085455287745633654537750033473767294897049607525835091348576193816697459722320778445059792673833837717279558396710629079575803210538156984658432664864954187958909005286641109988567351533821992959713758078424794574903014575641714302270648246759621548038383212530229871472534341233726087634692290144587773579364702536142660641829154984328992746208649838474126527649570829477502818837377185536885469797237384800308886573732295938624349081352567598060252789425808611612113299975525751336188112272449642021550671094577525435795537963448106384759153248238540710396947830004839412867451544437531989265726935637484219994131305131074338707958300720336530127479407399143331130765106257978040206363913718273898296559043645668999200854994796642432922378008258523331743702024655874609741595743905597441224146166404905505558257253694259966724690768909910860960458310217877501250683708186200204760406132141372514722967761969713526593934020275611628475494086217092024048242779534620786469562754185975288140972506421729716078353900443618307208235698362394860686289490736172231459881923869949568743573700515848265655491655016654121630789506018237537067821969687211469310507287529332819098951228699813220567273199703983912216031768630002495394259062448502462228821998746816599920871472894269854216466254945389319896952713234929246481335651351766533824529612433421451314508210290545227202321504189264438039118853428412176438220828604748677166907817828023677569206509247100138557766510747646028576369255403451780126837019338463698732648647326207509470884964633250001776708820187041227673997936790827246356128103801047406493403247504146029880159006584969652947420222477976528385896286347116586920023506353044167958099464086348158405535804188667419001786503221119132025782097832594695400556926166836083226456507503687256716477245157417611760465821314408490642435759189981154416457797991407757101025099228805853511685692774926282092790081737432269617931657643311156768513161835144132592963484886260350876780508709843560930692972603346158475261058083929109188949557813073121908744502451339535287160820494454292945132653428879779475317828189741832591851207704427779960274443851030496399951591735308652753946886174813378543149943645185445638183312796463592611089702784594911153385864142202631395406612836755506034701763194835126315624232561084644822895017124500175614281649091124482310928021053090694136905104321744901853326602120479004902835504524128812703831876746907824169205614897826828685597390749463184269786934323334472854947108674076171835383909415427178606605808124795213018159925459375212877608509639664741114176260226380618327960882474777478917590315303183645727687017516544816957153843477399438085700537432353279669191202820283488551257473798932102718814076384478746338380445132671143050207431270345856110474528594442760530072920860135796560225037625596627389411008307719221118525753733137840299203042402338074024716130812243322059079545442379687958127146314919108609175707061096247732344975518055197209923165388298530313335019307622520045303874384082626619531649377011831780186281779987589536245148218686313688823067474445928142042578320698335091131127976829481393603343021942155488641104356572400588937928353744156462352536570760715501575031596966513474855198763400328422349430817338919451365643440392015668102908463686034211027464200532165591466783089821778400157530972371085363817032794934436670703366940333573198639736726965000335137063299949421184992126114666536345415169852535074791402305952211082108576499495630452333382557950480538974289546555364232560797637594274618525081046586313150720733970172018320145953337402575188089265883366595727926247782371280186024159411474216744277601228980161780399933858241403638843048195253896884029802259736038334160601975734110846506857365060787013057591233712416552386304585198160662300694911000043022987192226461939273912203854975811462351772550937545443670334931408996758125324749537529765120200817916690609438489644524544014833991514966330068533392084271609652975459933618553359478400296368721074223968755573644228227509441029251230631585219018974235421865068159501322128487136700463134589751819320232441321133410788822625386816722362726838899578115191455642564864237448685056265164458518046874352271212375148449576625361587990639883963168330698280640920865267464788789385692417192702398670973368212701097053421562649328350951436513070283450002921644177399487773230374687946521544667217412568729196518430747300859149044707387624367200420621155693199066691576195847184875232430969252803079898654645984400150033550277585926973937943855722155767862516290043067400920033216396476090520854504853085830852927587608554464789395972740099438089795216374109629793049567275921308194645334426330273013969993221923826027191088492622186359277691089945396487618856895153177429674101951781011122843608244195058476203323525278025545580329849205138863476175098742275871588402684426645474664680910366073060457740809463616925407126701979861072860026131318296918133177799410042597806708888982602932731004631624130987793626464923906213684825096752984664342025868861056793529934373890256278504508257023450059829011841559786697473839869546632473508818546128938427667483140959712389673273098335102464291249047282837125738667779256298604514961210327982006675769216087025764489830305799374857149015281413039820550481795532804054341941838579737401994175871961676431999667111258022215082609036068777885098712472034488446428279711553092946728678546114684265086067579549903914242988526097890905116196658656546092575185968516531317134241267476552368868553807573282931644276812038900961085895156208553675177004373581934960548706385968758104067693322821952783888430936498879892025201286438228653499705440460348254278489543469487764120045646044032875022668041434240851754750589915443922638958422593988252254615695554831320338504122798878248073065407715263696464237026815975890866464726399059702723832365170501096903167348560836146573863243758406382575052043684801887985963675310912724367557294526245308236003140729566827894129652508589805095802700155940023820177574541249099661427589309570843662222728558672471252555690727669076713702268730740141568466306775902910716931029922680867735804568272497414135773333712487360347834550041987872428059387234766675002305261689607588477136249084048516680188569327936963207183852042146821901793830589491013025927054794685212191188728034599848036059261370943313776699630636098660897153843526581850298559015127380261752539997969963356558525798872263944677184913773279196989737076868151064115369994149317494675909843415689289071131494346813015872181214422902394826836952897075997376159591234949472142308197135565341554924030599672275708238217455026537761037467542930177170485719362031216522643178983633068838691981646398253698982193794637944609328196683062548756624531615194715693051212006297486701330698917479606792756074475701384084229154849991793405289429890239139853333374248678017403209591747501702039844363717239140593946990260681172231970596928273782864873877658309272527715126839307052275625317692494732724543212597175042160995881986794526363171085017089652563539809552602970686186175403704275506326867815845148117915344540533103054055887342892347582402116612186363955502359522800708970489753313711223738793390046806163388576885206719014005801010415456499786734435034821510880380012452609325058611070814226138462287551903567954872941944269971406237869309774667598486086634482172251318187727154922531650817550211474955182368676795852346744297308036538565601652243434782870621461249041513008169190053247749077556447953876007154788744697517716726112111083559945945715700598311681668590133004696957404325528418813126047554428972639857860687643551146015638257653556339407234922860490468894322859542067192268073619572417189002645506954764270607203804213509191541025644309747325647527276390052572641584721745589290004279110423010406096050808592344894410292521511886631308002326937533485095596448062130629132212385507494304014604803057115316006672271472954638906094199873689941633055982106510992622039210961599966498245429742920634112344443462957165461389550999947558003118842569342561844343084703439039408372944779071006672334470010742032439300052553031966636668395192103451783838212863583621368588219076008810191046728614219634253301965155096213949177048000739002881650102063442519276771980082315526038183501078439242486695730175675810920018578197438943066562006426963445941248882951957099420552783566022777007794131384431152962609349012604543554631906317549733226501153613884386339645668493053377363323887582939202074221773074978789588042267141443977287850259426977761856613823520068185061942373438644426460986816564233291443818221867773740364657235959052955413697572299579929791369147829591558088088866669545612886956674450427014018392050942872534409713229742630198726881095641679714956922651899426578083860630737988242388452104629151646263683997318344832685613290674860252610017863585679912721399917529843857284741653852458802636951997423272074007366493967730919377162385109062348486228297295061599101399933670624665732380164728474492323724967686785994404105214299213052904258354376171470962480288177948803465704594143785996732880466988433226975830818503546288054276670503309587500337630039504619710669214655601293797361639667948428325657989948377961272332770131777973386266450065574951366127511281695247354440051374313731446333824334744978245500317916630543072623710401555246407168462648287722519311428735249571727117684790045712973458016385854444060652032696828853282568872140832344647132716887172776634336073512340115360145063660022943341957037535559327096363935135091567114292040149548593542662206088059664357110250945541282700595008095067051427238379246518850627084826737279350019483976761390087337200373300744320554847159564784056105958911241449021695722211117104920151300720031068835286434077040754224913362257052991154604466748683077297325605911648190102869610315763702016479026372204839445845942694406515168745403114412858882745159783291096780172168655954434362651403360441718394571678570765984994596480476713855303428455299643503914469710289935603370275340911209441489805795947781616674187132727494340740509055683974624854829503391538574984050881844247152221881268542513865579711491278515061996379294675096210285416140884378985050967340735905583597276434639803746841090539973630235961756193360284045840169996870330357573747810903359955477667745592622372127553277660518879265727676154762212720547893839429039738028424983505717915320591310509049705718137452295144564980448677188966638551317449945471752557654791152275556839032885085955808230320149341149245259763421684896657960784655671412279653098731130024343494008175178685105166937128295491651171658846642369011794239036280308665534036869601770253163062675829363351233954554763187549049615166587290905584888927413829327975003585389051082035096782106586349177942028206810589149212955930880556462533194013311068676996722458257657551513311987962967423593619879665045895147362311405621642134530381573898152719603344529757901620299418762681977434157061515380999573527622171017244173906213366297011278766811999208644384838938907220951737367025932179551655250355345067675940570048205295666845492863375573884189943410375835461051699079094771849537031591655623562324428493805857096993247014778750163992411405018832366511345534651982979266462819245956580579967576878299030459868611538492232809480414057830010479005856360770807798331906774617943975925537644096952857640170968148072340708442545204405820625087167437772993699296723412978522032949060270092105527456006453947715229252958308889666464492771188915242404183096061087841517069180549770156238116867800579182462493956707884264723827997711803806790422802727795423169496646761552451690141035870814008070038281132983827073977194428059821830523925954976796280239800903465477976436385370375668075476416551816115632680791433226054657549930012557569574937308017532364674156535594764751554086467104307776928612328399731427331064402507585406530123850921696377154189609398608988913066368617173119959045619669289296218029068223406610649046245281560164085942743552792631271549387048445177961858406969516386439319214524475686208004500510925717555396149832403511681523939321643471007784148611461509906733841664990806729390251618321896943077738414364259745951049070091511904312662206084701288945859976774617454647991586035025453633617573186083634145227343759156075522311872253055485125238075480687122248635686857185739326976955601743648666183383202790720132218261015246078039655453519405963626863424322770029679596279379301255490124391886816016828645625210930222568273855214866354677294465318963005960549614549922448006202579949913520102887585748221887515259334996842968610496763519049401319748852391687942661582481772802927056662395225315024470356731525328811669065554413955318601649177975875916490740283305123793483589351586183431650523766840889393034105625535911020038054618411549525790950371971823632298095242063273022733619816151297031745646406987243731486513838286528692769444860368879429529449157116504765554554468678671903567295088430699664795809124196415425007764734548116253995453778828809812625651336692462431193558414209549424273062627542394634722558422212699332690588418568695438407779527653058779148472418439955483685826949417577874810626230554065892230403110206451762783284374196607093546987494062528501735154564704655482211549717370877605030123496403478437449875631471628056507604685318981710251626846251598177335538485180666314060350325975789302958695496157057789565182049764000037516078617703312457712198443072809117046897367900827712655467657331724361679457834826295433506206254470079559789642440738226810863400362818608469455788837417535271751091567353573713646147636652115883681187260612216580190492560637526712124673889519191375163515656565814022877699800968304467432861396805977960580564441503287047550115718324717052940636038322511267208838372414889210370208658865486389425442906525503829831423725073895067198496682736902312320725076902601993182712717220283637122502297220913437423573612083731474889153816881923366907602409319397799053482990003477640001696856552408174040909876790116807042962815314992566388212164393476703391492382008419459419310102303720191492586391631618718157722265386706929561521570836226111403753714053722308702266636393649804146576011585925256688253742608910017208234507916216951711544284562412538072493764643329916111383193147176875181451629889488735467991338013747951760138187770871445911264301552791774693872188411443164588979794246883991394204019883069986612122410233027074205613842191960758004717138635911163622669285052566246025844060596161172417225423538849171118587083234841135858031333981544316979848268211925426585552306804430475665608018414227944495447386093556155987638142433360446261378703725235707381197778609923003900971377622612688585885890574712242516844067268488260032808802722709316562130613125223592579338394179703480198741612796192716613328132837269852490270184496039386437386759564416582340055318753007477455630603535117181315520002054002598727509367902588992530470017568093187031974639545450777290507944627340704750816191975588819485823864353401926523525720766169026703531854690691841093600035210524386269045097841428983231666848982195010780130286215409051182174474697131681532369266386450850085693106512325406315930592957056455834093011575059446771486442218013279892621794775558107334041338033515719767604113575903798621067668402611408913424392336298738656587109450786915318419305426407360088509618118362057296209753600250122014609231334550223140578434541920111614323364278727037991934069092620578412676339377772594010551734357189613795136605383034935009022001579136865522381651503826452522601082635678451393107036506209333020786021599002885759960030516581385741082886793279567813596996388260543711367877136317791710334748645771964206015151412666413521715813421051284929752147866360184393986905700093168405865578778820737065462828000156645269609770548579102683362165947660657887365766647575548453456209794796795914789213672925567416193806981268969948675416224012089674874119650600491032287155208650941970855980969230213548997879753262456930182204963761273940313130493350132423849111990929226936253147920523938502808912517370111273120041470249862707013147937779244591630697238062567283709584653650005477863293401388772950846425880979575249714659734406507338927538034384700519735735608863584104174098045029592035146243778954563077293645856445801834441630161278456358524717168418863666124891935099410565618821338799104829604126653006532722486290554048638935416382141311121444929092702060497741246317770933127821826039037736229008179734534947280022062587810044445440615726239295182716502598683652008574114204648842533093401978673877944051167696638807982873125487159518445053228793802341919872943686547569504045603463875077381872748259052009692582601199268097138862413889649519608745181252782404990690124808945279972591705529737909444000660727678898848428054463421738650332451702998233555211275936457837888300410710116512898554809162894793138392577805283688874915158594351777340768266721703661628467268792245045883303996211281916599849495068215014253109366498209388922544681754550377536955200022270138257983201229014711121235408449182313865449651892053992697606166978668714003764772258151621151007507499700945911950225454669361689105635474504832769306011136630284275460917294235423665089266173249813417247173319705139146854218925039895443482651340329199183655608495144294141543109295800264838069435782942731287318521948537426003929683227071166319572129706596161448745803285303848014469723074596871637036998211351538751103602711396810858372946516313869494751708876712064222495805218833182380067895022221703834902043940591789675177882593639947211911676132208241125965759220951375846846696629633102770741849872241966892451459614572730467257094993000428456279233202761414657163119556903279400869178825814356309890233070923571569193771704604459725485410872413097531733643160647362929906432405405765667779850826926018477137214215472369017433263141708959756616840814389888247495480411905248112919500929549963995082972704551194603005912082656612024265487775033366451662427012792726052190126358480792165909626613649397914965463535287818326000992351115376239955009867147410226967936668340296583167801614549985336918164629906056271041530001273069407955384951658743707495176646783488152782726070594461549073797109160332880683352670185767837122993232608188928067242670909078982015335527924798349558439827736065345153912899898483951693827387371094334314163534772836924753409344008624310288616245562118020651235440478304226693130983713469710993858734608727429351741679662305906597409753037680647541597554723631965238533732345149022855402156940589984769294060131171374649628019461858704173332041399308574206110331936805933428759044827588761546488179772965999427895854168752749769526676958566986743313472652490386113103012077710238231747249825657084765628567912112312454273313156560172730764719021122554615045022172827280134502660629037444283409537758816252612318945280255567096516793704142459613996693227936650154617329517694232983115954314525255910861264834445595102040401648120592802552261806375247679700671986902795835735287345031208881950788481897668844667363064667372285504629152191456134104772437879587553302140880262397947971904218855316525108504844019157684801055252099241121564687610416355178898509474422836334912498449185524788621306832669724580882732972619658780216540434390944718331972795670742258339067572998228994502866344284701765683431790914276842090557661124291173242762750447591628378659562732468556883829077242940886819475290261191883206478106306084300500148652121551910458980424646566123596904670711236352060094692570388644621911663367941704045696810856298218690260364886338016777818575064755475901885194267216157351902835864296989825794299841313539620254831857575932284410771970235741122906562075010340121895185450747441564131687834392180844141836532519654544117538499434606281635299710080854091804342418001347329616331759585132591530713623238736526631972536320767081624290279261055949576532035515391170585419564169413111247526858078508281173992710691897771233528489235370544207084283995478081402511404043704235166947821832216254703112058632221227602309721483316555216826295502230871324131088708644272573558085028602724005699556703025909193256926028595817036917077350603595003295051231593831142611674441794236335989494756031849156133806565082304125706223638562934188027318320417890945797577672238053003189481358239559422022003277066268585061337702194972988858508626602192785575166781286541996725485176802598876044559720774055060858653103317443252086074383706090108664217022344966806971693292483171449268268235074956192762715923960562422595639742815512426633901937973451055608154614784004647751233020899609772646833295246976452760310862001284928359941928246052984847206905643637393691956345903793323161230675122742024653610199221627316591011404100481732043434578410502268303159414236432629408680316412427379383147515134564484524042360986835079100962966494746264035863725115313519243882901602319856201038376909672874704045599901308882419998246953816414324492400023024751665259853526188806784328596205512992878436410530594584401095397706938700622162194194487298511796539419972258378676688499354796015930917845764914628888553234793634773118246483797719386434712545922727319271270414319886957810774489527505788414068390262593033397526064579817061204155233528368635429308415186848245190088491028134086532421631412993602339187896962878529850995792508851776674347381351749001743719847448727934564151133887743187145293386727706682542584320397802333433505703821810933096147852899820737799128855403191892891549665915998573111507232220321346938686678162720822436358937274761095333642278174964664072311640504459575626260488285801421370047415955682790716655639492303427287130419348156202020065164957959376688042536568401695560631690756281020311106297587734301679815591681658422546695611743544413468641448302821701965417351406481672634520683787567763162694405076918285596074218168848897507264728964104809425721110891608816171499709057231658219784752302317972278162855707254657482457171533530291487379775488032751263805105874356360345365014441903771708312883289764903415545328603802057094524585992366657395087861451048102072951334568911034235304137658233747865567285216704178495880932488067240877688842519968191503246413180323218591152397055225581632890140618848047133843155861587205679761190303763213701920081411835215634306459523092901493616818342610928181293500080023692313192379787785648323575786148195079339808354625473314015326934896796014364842294856698384705153101296782698055427372272019982130789502561284820188500680963851621808636774803367617169397217949962524634122748817998086181065100921980449213288754134214477417653058591358306576247495472446355773711411464092366509108427760060879588178372121017331748517547667864436305600087390678335789624951995651189973535848904522980615752528720762946028644058554786594100873235023132056771818358280123336744100157589610020179501941432899665008413714825230666316562665852568319531111761104504410803436914518155950792925268239517390536447523575340157626983162830042232038529112095216023853059509350591891567487293622256371393601775110391451953577808280986428429355919635691948474603082481460450954169173438764528906376005352285968514444862582588290175425538489362409536026732195793968493664307316498329005441220431311199519780361557293767823505209140724007410532828907782937338818378423235624610046429837794915364786141864813455773906462935821451914784056981788288619912123308337331324265824168366611298249057468206158779487226796323618950728033063103320172603392786261897486465614210523397901186966449985914606705452196975475211417856934773036602563976619385486583104812366042709862111681205992123051889421961561541609748445083213592337128981075979063888670682307565923178215296184578335904193244705488967756110224825559447700889602668027943482171287600680401644379064563484816718233604864705487896454661606669699471883668714774430543651525830067763393933181520849323862961112784298480855605045720069775626207735765412933794297862634393030846947826765272056025947517378192961820910670750753291419828993644966839309437585553240255316502113564164630680761139578535652862311946257272914833123296458741136546284867127435504733594646901015906930773799805752134417949769458389733358689977158428956834518726423576283131599702309049282108838747362062034706850021492294216845308590224037829188702881182308135127724540546029542080347822331420625389654573315134771058096583655990918811035399724972487522761860056279295653823704133072573666536908242391750267739757860616619194053831782666264829523569808081731816762357657472055923528985608286326663184115919467019161702574249583343185019912402261748649307882574359476862891612746823788478753732135272649011486325182076926116803769066420147065315636497839744230645027614705948393530235793729023324477182914608912471523324686411236846657969825287002920519943176560345804896861182381638525357034730270958762309134668039766890095141357417063457188761346520207150587649029399187829013432660634671048987615019671691907287954543202882234949505823192072236892516887588732448401176791910938745193501513689494859962773466946310551720843577668895198273170898472365997270694332892001100947430664378723730888340175526819968501373366542446775470845377361960520253008443189387690149500915087652612281932246789361654152828402963080893642294406780815077668693934590560399085211082759297799122053593647369727133917778706171760375711942588049945657801338345320055212479266165162961174326896148885699344877397647723952369168681835937590619369284611499144555061389088586805264807778397367490579415058965306412954285053626536395652073391257739454493010159179796172418213241719861089270895323132829371831012056013417906487552467252525924256172009578413586208589567614052832984111848589092616356278869039139984005877988565966250239827321064657547052269709963237978772983899149456897180151716581602652600780260693742180524207598523904001136963271846730932256591944494917805923417681054348565897646304400606512293266488969222327776999059375342234567989178904165088712121438319174618237574134188881382575841136190651153597058884304719015483238396897470122837185178247291229865929891224477172364472625136757580618499420622277891050419348901440899656789420881681936587813424357780358084710505399469145467124604601504342468748529839774071885722658795214563263274411161127253687210839309013115482969179459522212783724579158506214790615170798923130967420185642438572792582822025384729278614656039412575374667154560156131861776386455259913200651691419615530264431963236043946354640870474336576561225444436462470097896601910728102428675049989336464480769452911551180567192483571727280939033600307130578951069937839346959292203784695143236802201297168665610361173645736206186024474800572795661250174496108452649962664807065440326083011539661230315410613502656701525204557638147875417747492150372898353593613423766064388330918469323333697952810251109890507413462340970853641723138587711420404674550001648713722408806790144145672894226658986082568249071021924014268972293485703290420377805683987287709096488427570729988431758114106914725366275987097041073118924915094878996321617133762926308340472790166927978802198938456914592779514091328931767092764912659423396819282028903017285382532811055813048237580675663372039426731312227357276705654542030422289022256918594303342214981888154407971194846867658519672980394853444374881529696583456719359752410332744955819753426623306311467772005075682382744656751300925038925094795965004405528497607348560476506265190804721112724542162500348024032640694550759108110438132656864673087109822360910720183159347566211999201923422615724724823750291706766350618587719193476760819974682479545058063798427929623922989005760302867786345829661687566360597912962190887859084718764748895029278381493715334043034993600416959812613708647159161213397866644034890742334098351587103340831971573942932294165967185200465611749101531292989918793020512747123822667330767708057664255830707999662882008108985327822828651819422126773292746459471038565778110643247526518303555224863319360799095358129721096746525076805230643015309214193300733408022527047029268100106673054693063668035055090924070907619310703341010321494118041025341175859143153824401883759212236887119142415085614103373695872404365150248306507020231664035389002732284753141054947808989211627145798955721651613979087736288613805449227011878106810591844312253841179910490426207235498753383295096279802011825533181131567057654184272821720951988896354583592119414505628199679903069335605430670031845150730195598877965928305387955250148837013208487680517797219825145988647397459598566315207390575736858176766617181307136026290336345891615394748601759602170615001408250039600471220513806963104326720871300874781264392125654371855602550710215950018740684787684716221604028896347702602733756139637844828986379124137947428187527199983645856832025969033626550134318511648934335585783822126834390497892288241048327974018262610143327770261020961364119714686261237452469707864786727193099459489331761809889846507907018279988521836677497265229911160655711872617229958308141020653981789042310658986992161230461343681321802959473129543820682342229871013294180603631056073675680050920745993156066160208770008031787932966107481344478025219360675260635670894547978919906583584157257414078782630456620039141086688464672082495889495598250814245521463543815956486968778956972596247346208123708101780192362244534669329048048421324056986651859502639419088777343562628763107055313825723051540301882347664279942700153069410856048869942142647818595067716847025743192665781752544128725014429019814523181544134793921191690581653136594176965690465936147809015360734762367717085668896962113182590859879438366868191043372175289268032162251633357615963055780290600171504562934583246306426128601841683423920673721578364216520851106241974292270380661960048819835578964824742026687199559254324888148465273994772728401676144303856539743207789528214520546394753181887282364018266983283187671984252754806539606516291009117633770687572562274259112008914924323379203414678409394417442368451867954229357014818232801856531129494605450464594193958031613540517169539694501139823427447167394657747490343656941945355015588874538316009669054777805811997739977000774517387776008766799813783053889007929384434451490264528536188660089964069452439983750194929071580755222427793632676482672996323957125743518231093813679629215501190211850535224302022789905194553085975002204080536355420061270579273381363480538489227726629155324274130345991318150975090258379353115309247565468360508066399728728927158538424150557196418700264367080435632820435868923719715903501743373429718151260381282814312363069697000726776927270265210487232834494842441912663305928237635840130432367884139314270940858632086782003501631140975560011053210653206307362532603374396798535654792811132539505416530856934597449964334928465479297432265763416537043873640366325096191431263467588276905790589343445882100915339438048957201259327201316334168601393470104509718075463114051414423707188095961393670736575096508373990401047019927117626666622584590897431980839034895740631703372115914712286897943843894519410762584819948665923952550826128665858484606255315043818413771302601553870461651675932043697612177631687264771072908679362360792175708687073010435973602487104792163676683956882903687514318447554100687982512613869710295377074330194798786158369266740708817003128690966612418172155087902732412408950982395384070352284513582150038286739627758293627077540526311375037537092783419845373634438488610387000683113455869197471212676083571163589332220967256516346983317874050038759037100188710159402987354411159114448230199235092433898983755974640931335839769777763386360737037317229585162599170034180097089689235218036964035313202022054021917493910915195815957078185787802645092602607693555641075841561164042948111049674386907675729247847553452158271784573648318930246890841344830985157846050381631003006034665386428948173679084732539803894063088935115027047542525622589760083839463929578379379747544809756457111189231038365774466155979836113037467055486610079609307544531174919372847501198188463046050681382749124880978141184150640337627951795069441704254621326465889166116342177751548388959837157182133762934283862609038981050762786858024712801054640172162573909753263609456883734263880642509322597790046356534995456746325622448869290811976604673285012413314890896699607360779340563484613429576192904634881192457059998852966878894680287475485653194585737488670995462353937655901109510204272187051209681501795509324922935144866711523727237569925608714183139185816158659257091498764681442873674035752091448089307348167745655229850285643068380586340533382845385014040346561428152600836560593770883708940545136253053797163817316769409516236971003375880619218861328515277947206316755929408249892087861986061643693512164824742584362712603890618669060328848794761464988154114231313468592519246330909523504813353141437865637558694230535255634734853761653914319922953662213122895853016817127733138302174335895960380136154514811679782160277660417082042937458239979690188931785911481948661195559847902484356654121059420851534769474168007831463208770125152627987117654818800622168657635401425564344402242783893532352723270053548503763097466419279169785157881500577920041456477108075760849270062924747769290530033646967747784955129930171295170753953732374964102225635008458190528579168080625138335006369887528743801824608615075662540532014817449158744188523239026344877396996908631973703849454160957490960675442698359252831351308066605250718360285063117409907271066631217236253686784861423311366299501608791034916126764503240674242203116781356877593594274708593427545083028215722985156875648371224346670100430958788911598321363687669177556044922852446570689853817645567294194022665185456032487345083587547237228864028858344920302034782895661473505051566666745678124160273311559967548158337890682026363727771001254887218532866536712334568700676742456826531531268379453896362174697579501130142801644241330828941919715880261147336187768293085068276705212058004436595101872317712624962825543274267800793065375800083967883856036436850848622009052094712666717462139519116099690643391101400577101830678344490908022541514326501550184598802507048475048297552228053415722886302285439456236332025680134044166184636382116266209582338953338044370579943787265376412473098871320169833320818540287977524649880508099944158088262089085340049672760980336238552595091522670581692227183912765085857160537745434056643007817064365943914115235884060151080893110992585130331886974927309524709911575495707796386454362933018156154094793895961955328891595965150344894622430335335582007422311957887924886141822688205524716738207865328985473940369300860670911588229258037311901748181413362455971622047298805126385615056373388038363866204366643184362912176835926241029228169212974958309010672129027445012187281604821630852220676758831274653290875806694702689626830999918374608484264221154524533732669538188682500042586929497747904022015498924111558946548712503515166626668478025823807731404709604111067941431184133626994622962004749509814379837168431658740031868033812344124953613965436410413863031657512589918219198891627571482259120272974259057377752113560257708077395969519778304177841467108296120411596059928309514507628922704627053120564750721485896998168603028256857241372037723047319644333393641258427593659915236690668550920836226018881323893837941136552331169464041103674474185460237439998947733450281567927326553553552508381861569838917004277771030759654286792551941178311667943264738788376132333953918076400386667899589835884788517836614688309016467280193812479870591003849947489436051435839745005986275617780543918583947270926849681932762669714550716920789501000623842817220156658161791810261747555230175961021080327292286125346792942615462715528066452660680037128581887535743968345791205172611220113540129993529434707535735339829719032570871871514462712094247799549862118137122294300579422238699796944460173210707648030906280085177503660866538497168134566671065440111253409227110008165242987744927252466915775357216169114082294314813245746425351569707698884087550652760858392240385461962126286334880424604499484963762099877393381725734861080521369081033724190304869905085754786351917533842577994599688301812162034974355199846159057176734613751189097867792242190889394728154900296860076383117627008389166266937355570737801506476729347253696520146900180384920519832204407630541006269517982950281599822679291961146669093878576085467124252888793327605710540705325689974367227069947031937311446201215428984448141005352858164045639433215224757094793630127735853325322430844414038040773172921547461751081756257099723649011195229865035303168677511148609543596663977542913263983922629472660188222776339509394770419415461634992080957407138726701999878102452766064690606017193623443526252376831273250930652077714634162569489178857841971188162910061926058600234981862147884445893787976354233887765801381593924432842070854309974754184978123963270406764470490315985902596667542022800928700928887119348849677033138064839315946680566627696383272352882363637671008979329801022840646896037012594592204381059295450393153458401662082960048146741014458467155822802564537411812716712852727221419496587565496092121794228975524766416463989094204234778308742287051185387641976277469025470165992184758017911162298720222033180404910018133313772327164776853208750152679297217812839692599468341511428588722403124193218241363226327255789635536645535894766914221067534083544676158410318086235096307961227579619350783409144397276101015683997875570033648385799108969816882569517245409876626214021446707772274297991220370181186125435147043832759481705016975703448356250039154949565965039739761854681317047133611857634272879120088960995864008538470607100392390537362943619916614514771384910839110933390710995563132988027711238522566737420646267046554478760455855407732764564721648514700317030980553690220776555181702708264526745995381181845899630735797566393632234801737838379343094896969187409291718141915820241590240220186882895513815528628826231019378086325077445886106288976334671127368220073676466609481710483135264039795399447762766518396007232131082739342632127711943705234467421363980217756924815010815157640144899521193186159032079688729383299999494568699058369392631173995170362462324977089717243256155049172809429200595141593351922431677182373144992267951847327749646097487583075520627443824428631502233232336120541385946711219747224507053713292105271536024258410845597582929825476515937947556189538983957800905236809846667941876392913738062073401975200521053799422012877014866207673205775904063011626488820092316908986179089360142050369826406986173583131639449184972827789306225647792524080822605408036570204545189523670703421434229200804647525394011801094290671437347637760964691547184817658709665494518191268046601882745296121786475281694058008271320554303589320427463910547674555083685414880304404140545987427386681115713319269474148880554518042751121565456296472527003423437411081755329676581032531504412075142917344162862188266479963902037531039884181966549167743798715577002292778034062223877681009488686991094904260030719954942021030824485159867889123008619710061203701071517829845548712957784054084500063382656671847898313349529464086870946831083763219034476182091083356850872089178165699977212870354941530669753784716704323534375299388577438576874587437711476040298337549922711044355162420218935964404904799911922416828011322402866484029424341203873434011682069683540290417872069671559721196042695007944228685244373707088535085969380818329068901601310919505069102070082717541527934202488336955533288668080588191935535748243467752405601339368958697176900718510053462127873167447307197314444073058196797094468569303207349378075406929131145603014967959975442436387093510308587510948952554439860407539409792547079990585629402991153721215216325595273953929261613213026614540313813089124022708906144717839616369516945079817187396392163522866537895784498320019824241497528946853969918744468447127364217754092536742197832786113411166247674672158375183199910165335395589019916896716677778243924041171397511547339450001612236793494983576219195115840282274809672121433483579843124253172076822510943894538327668022824181394179239672455318146031452561453936815633804602829353781919214644097016977235673984573989134182047099814181558136272584835829091530857425162357649008171619038440041816283192788604234827446273583349994605352549203425777743431785572014410258098571384642254730428581658938169287765685952716091804924425905874718868851245052400588623427484306858528010234095369458955606747395291396679072144689383391496756010996449263727513245480584384135296839092649444877376371401396273525320229352481572484232895865404875409982158081393849210970502283808296360590200446025389383793371918014281704020006747662322974617292018168855785006427971244456829934333486356043902315336027785281238109295182546021791160610297304894070495197102108163676226816941800244661467907323412582462398111790326430004876752291202635413175436690981647716705794406078042533001962937337430892431641619379898280404389307994723514231842285988895564782101346923655562442807797341856172922199408201573389342343088430093796114032689609959678623132998442719252186171365768198625848767601607823906407367348497857300263634053013922890472223935862387623044227366425348734904260125778584864607462564032335965713209774495737491397420137772848598159762023504447967443662793714908876563318274063050473795440628847127976160006226627783384141665455072349560325934748918861983115248020400684824303264079406566077711083792131686695493120504100457414021756477900206368656471420445858411650310876531379585291544339905841028437770408414338528159613187968970576858353695696273196402500720784124199229415928927791857736449570245836352475638784861860594786798704127878461106604094570332879539191176376414550855540799910546086740707418240191772279577514767439404922228890569177532688399215367975789363284999874270041485366086233185077854650180951262727680400556822281860798208256556826580326806323831276208659820201936378524332722071006847362293891154463786198871834916421687869922863521759547328910915074137991323869595644836260442211888100248549636195311166160648822441641269695612786544535366454436883933460748134403963250327361234911494127295946612562640635705268414970693655424934957656773516356961220181293122825996099994303978002076401415550114751310301344217293959182349040230574503077180056469794592941051279966322849131219748512293142086393599742222103612674112470555687993067624976583499697232309229984123645415104092812954866686906527528904840132296118684961444997094163288173877210203144389632472755006721373262667179576894580389406358549906609237127845128049164103010707939069914940342809814882855453530138642618981512077370042686800670901757338616606609364213542778625597237178937981482051327221529641347961751917475158578544042681776349133733645739602159002739098105292414563625172851306088133418072067731839984124012638896992658370835840305636049549123172440978573834692371970476035908737239569168009967759034591941716825200893164764620758593828372040287975276891286194476104705843234201297629974338725589826304903052399486056087586101912463322859645222995894178601539486558671817475894158991725513417833966375502010091968356712265636081529773126730156757791507512658053008935842041412023406987805190091861906596667104860487152153036012631289104549451856065805737691281463847102232107702344223079643638086555316242814900537843634779080036743915263825682316726588327476315152305133590683103427403456273322517465922064757893754847983282989066883374909008694483874097593458051836164157304679090591900438858183904737209961286810248185716916377903721976645645912297903472410836247771178281802050074843360212022580950687047431408208460810879596746418977620761167791960708723512081662102094181348859502383781207244599043660684010543811501057870211487133885741456314793022137359294908756729917019112352705718017471087089523848540470138076946444867597581299229071773992979166103896582549974785592278743310561782558378428218134376841698724450856314576629972985397426365414045747449532420853553448861169852598115753208214261337741367863494736827641728896371898512476251183496265045977968517880507600088984996572558625937438290297923417478479813860912098932714363869383298711899899011060809833945270159659715956064392553485428696891090888979940997668234382800934263895892562621246550249671797151734666958861985066989897701108921743738384401544269098362481338887278484869544850853175235620748102331653582143303929787900537101022154378259658937394436987365984900464677794728357556532944911917320794326783355248078277591286901338520270542035281516321623566113752981177843922492846355628033475342388951917945081223131756379325796351347471224784972128860732271462642081828659200928413814371589658657962265808926531187761164992392148532770148021739981280965448089272675804375960435802580178595070075844923072922691635809638759919804996057350637392303459261769487178816442555880281116845492369266729221681444278853240988460040299234840609358221891794256404926636421414500247312010368163495123313478852848859134814845560288184865954589608440907480448290717579651572647263220604339241656100410747897660819484574640464541753208856937807160821244496919304733651287748884988846546708041777106644755640934593061154714881232435546251402193945276210108891343353262851554636854893822981054354306665246836151541572333646215843313261383824791891058441321379027933235006898603070739917574034616639554405604274427962914393009179806281592921311065828783695272907116016153976740416382226932896860519030441562454559646866846265599908007263410588820189512216607280707141361197611445518314665550318780171892850215980600690510369150386727189836278030695936501579179967821895118761260342591298022130904487710418570414708614011379438322427112943130465640789967071577991787415504920361584699314694922961509647289924051236450834661403368423660966491210007761919306176853581937365370670111457158593890594054914548014211717107984288665030131735618723638793712774921357075843961846577240795236190650877176618709030356757457831677514611114432083211680578459287771820127204037220340122006434192937493373600815999625531413645529033670524460326396729050974735785224846346186363620068900491625898810290648950987133041114443510335508224548706396334777345559487223097074082553121147267247688679238078743505357700406412743165173524188134609699394037238400495047100730418516766463140687431718628659790100110829786889071662162509148846368987172006231216241109155578182749473551405191296036998187878639175745502245315937983123174400011584423264097989386784708892138999863128704173260923115702793030056401720170850275327295793064654622385065679535186785423091073885371732317343265987780180517097382855797259037564037641537434065857434783464876758717027914230114552586576827993395329798749205728732517059249048706182295421609207138237967533803569614201776616807052716024652826914361699199122808486058061645918823070380583495836159835294479371862136524677877011395505618114391577650393993470122801602167297049379111002630706043852468745983984094803371813938809013143434303387769550286614755874456619495200855142595327343208473802926958443783899047900092102964164510921773876500464425932455097113946718809892158581988290676976021307548814759567240277437859357797544213142875765454104471362960532610550912907005865531341619232535020889892313015446881903010412175731034141703448882429558901224034307391712553737389487917810028730603361010975593327610743665618371513691032143272548114778227929395756672974876277824507403093706077190862344115480772477545027313621521161274404447886660753617812161704095526808119758100552599686823286050122086543170102512789563490454199836056269883149499531553431132651161549801631066487159766673532892118818600390198512477737473731372099245323154243247771973925973766885144668227732227226818365317083828498332136603646507162604754479363237108225786304695855907443089099373250797607223337312085995145939913103942787726651401538929422336385724185545769288588948162329809089845877062095269350020510116447112459842299310276251540431498467086691364561105799448645880769492352795606592207226861655474763058048625637606569770242777127054782487158590426726650051628953697232446105211205448611249361606904989483444871946391011590544709161502849929850879766644472403616257692985922978450058007345695715702208363280776247203735000249220630890443975244928971322308577083257539034488445558294640225357234004621671349368107504874737217419887718484372739439045431961790451464189861970027645270259640827078272306809407183934688948886996982417649048273223056350495181332855351218323383087335331094392653328543541957215456586241785178049692078986390533431874441476106117198834498426981638632726357290889346963306917449992427428660702480365639154458529164913757101693782499766190204078036708761370880279019371767619815676369158980222614790412825252792201063176355080375953511886855907175938863969579782928394252138916360505134323052045166496099222196406253161067157866605741764525689424429421256805562090463921929507952973313331761877781510126115780045637706455365002320753218293925581501501646657315565038334793495448007750680129172801785682298126317702964376164637311945794673271797182663288826890872264410850464863004736613482380346293180469275274060646958109497621159181910352352801674573946020775333342123375025105682739050357126382036833270974193289701742013645181584956367176870914292187361804694232946143210386660824330235152378138452711662501265915648852153529903666332974733377348886606148842115794910778532859669934494301011974634590661675056064845176180038362061972459063442946464376595609304055375574038548854691966432027405771525889989800079715600836946972326146317426971033536821559298188773490160081896135823924742494449225747552754428467604217128261240426009320777168912548359431870715859828577958517001720908303903372364256971339447313262086885411080018497847532164628745160888901027661780146851839167275690047284977534347536674610730433312045039546587235374353195399658387176987382215863458590264449875389475575532528540140562749964088163777714941570287357376148867666994070212947011769892856335425546073492070385683307250012311499506515572294058491057145188896536041617604880882299363146129587178141570228187342780286628718718491865112552269748414321510151440915114276987896143574335985169572038355189565177744608612016503538973701960035473539452068725517144497350761325005597824279015143859372859451606017928346452441080282547521954890293717218040152174781399172579379219717877324956202524621193086450969559466963904616518723218224971826088231943092521296162940054681272127362650579913065408037271332792393758050090599910025727135910813660355319536618418622621636545474593187745321968282949024323221725532466323706068770116401362911950386689099638910845333647911682232539584757444887342960682096058903595957228506505192920242346072811974273979747205647822719694669213953512140722715077977476067544292207963684377475986593838211661034670391273483388148009054847655886340913631520781276672534959316536994861891224292096621481579357256630362506354600823691488150033625489061408574989643447863087120072512644672375739323984991134205768145388739926748001534653469401927639766136950360147122104539507585343927074852328698744422866010192879741667466038804067651356967325598954754404766632723735620101809144722784806562355969897821878464814119561253912136372194763550953879862988831443088216203733490125813188929092327160817608796319895096321596087280992579367675382716617875735023343851214637203900969645468742868187083042454718871821366913887995374158983117859616368159429653860654717324374969362520491315999937750408556941030118897404251753527472068807680642984768673183476968959078192151296348682410361880087980950438324204207855426792763906468220610156919542658485440431663229656570017114376804186074854560528847396022511453338632956757681939765597647047189188345884720097979489937910849672759294329131789761551479459627575204316040439559539072442729016187966127257232063259071719800581060874478247002593030902350741183118592027974697299205252565137272459520658361081545793840571393997562413476781841799968397867489118795654500106601293436786227158164150109160156363646827145933292973923350118145349126922001000061659855843865019222590743713085981835294840356253450014439331792288713736480289007294480619148373833706639091308125379534097556654694296770092895318518243827396784109491035888743588071998024379782145007056584384011747240673752937467202458426743548651496604011552676881259219729319475029659621626583465545039367542929763642263666792955281428750315128167512870673651874383266993646103259859398944563657886831864834759723923584453042355363667676624018640572586572620309095096954160561980280207105080660849166025886600241949139523535763788340018668408867104427478109727840739151423791286081534691095233446422981197255595234330621941820352031080382592649469586142227862668096155017115688951525540770815350210122246622886298718490235680282385933450712605524643722440465812313126231048245032730078864569297876489790031382825386285106008075271190635520927653276715298098525402214058504626409074760347865218197112338091276268733811525281528816786509465680249055314258306340075468224146230827316765022790779608578568998076223620198811660655030450844530377322584434831974448727385503935475213273127705365836595010517333030025626834867192559046064853327285247712323725491995114479360876721777242637026134262798199420002539293080172127306677317133799983502137954038615417044120747191157888542249542642176323361963211106929217454106210865394512321412378806196516021026625780000970815799894677810774285229885803612113421811001756181381305672246826389297282120331065731356005281811316124671622878638957186558366909944580163172835579311708035503781247497649059093389311302018342123479879118506080169836079700164748018443791992325890434614693625991623522673124790515959645272640725205850482169258854942871361098235991585515658654123092019839064679356480173900543020272148420490335690060917439725049636391157871241064820757006651090104274822574159388602583026900684543731038480635894882827710492389704070972656672293964966149104233093075626211470145406075524535210491894126141002676181211165906380753534407361927302088788022805406299696596410123422797655335913817534823265651019202238281376086319663877138605084314202426655362526418289328032747612958984291871318576866370233014047578418117308662283832804634833295686394235152261472043933083919050810960518572073402218222869459762555085940178556341649772459161129637176003840028120299282033899506230296086893533072938033587169952591132072878656512393503064562502787693933234046748843782053990927855320445335307880057626060403629783468235327877911753476748381661900377069881879813162617607867487505380414897444869516095037098583118287833035106685789075142774145898240556422600849208361592227604274007642436910764146991300970013299867083007626022419428973791724142218874628304261563172757767466006903235819084233071787916082327950913067129755296748758374331783480758870031433151087037945407508874952464543784633315244403517730788770272671147250397716466847223032398555213416079048437771336035986441641137527948056470343916608256790015553927124806691185006929696326722668007882662416073594452568489720489069194789447328767747375941244510629834867168615808612442529003018982081141316556235915082994620333410712369995259921867483026151778549044608321460251370423439620474392887955346025808869105106759507994887750240167708573381393222128616189021498382443592759981717719066358213604071894552810530119555584549082277025224995543783548996552919637895191063902788920596414280118754433783075628465493946576555272470878910573140543078978150815326252463132984156615947487204708600804526789972332607392144355293296918630178990621750412301822243462011532615058174056612306286119943742861702265555293242993914705344381105460367646371572350320359515315496865717855517548442659298363248991408558536890989965454298593459000967528601130403603230798237070919695244537525057744264464952769088438833428438131353631396619752595431342072139594698500065730980051768998914712876024833920298613941595500060837014895509293955641677187758135582353917384096695019037956866112035255883004540049308558974967682638025430027281335347040215085292218859681387416890036583735470673774274475429726992848709057757093948631393883484584878408502959776684352156802408288225817642861412420477118332301293838483965808894309382305442318374618930214792681164906998542639222964153621737111442746249233713520073636623887078862650211980726541755592392392359143031948125721353379322060343158787123857202542834612334061711262089115312956410482013971051559133408780710623456504467721944199245530549834304749971358204841846669447309716916524688809295606359243079747086647823741590016931168662691884728082000078595308141087265716116310010477747834804956839433184575300719933557200675038719720052636605341801367027727990071750444044255677907944697227416737821848570787744058607156673394508475611866908256704848782817982584408186356118235455621643710881260346130659409509691965844542188521932124448999836039789452343253841172070683198590373606456456449292228128079510836370585841509884903029974949215352016362165928080212198010561045033966304257709826935761599811363144280458472924691632160784191419221463375708368195401169174018358861290546010903544576968961620059822131217011682019933619711221606216536709243496057987478918608247946548244950066639195508208887678234001932334973103899988355081576362082177620875296506129179542408024839281863853691772309727780617913121770307552243150414601382542681226323677559560199434768751348766787922121850970218584280207871749208820996779308227722959528349974378471572099918728857172704112300573312884313318036174590666066979254617526882788607376645400542062470379625855240122183120994304494909221347552762287389840207004283092283139899840323624102613662731016590970135852458351765370051730797518068844654831095166559155841875709837858598095372157228530555064023185496791704369071496643626623082244956641231495476486576610523507980426279730532883346548455706559817214928175792337955262714854186803535596199696410038973406520820180100342307116825725536150617464472894074379682911392214026042153894723295512841002895762881851101841224365161466159212821450029482923638944614920536673689690017455444839965978271792609094316130786280743498296463418558239854738086823886969471509820276065273298689802008766602978405912686055435472977006389084664354982237426887314714310770068177189278262365667639809078877292578830536156832824296334571966184598254736547974047205247007951191129331525879483830180532437090488008123358940698988247263865064074412794043852375235781595576878941886467933300428290018062497675720685334172695578756964317852604913586219886490244417160393002151117914974304061890730841599372426599271956375359313117430289962112402422982875693168895059660063613470478690443034915334966681301962676117150872564023091757100174679831171355171783543883071752772809316441767962389326797611326067689433413281980806101841432683042910815245464101575538458793857814755460643185695515734497075641183006220579804037739932561204431396524952635272826346160721435534200582583695144831969666512363499975438478358502729281638024392911449420021457535450506403646325681416767409778784299101796440531498970797920483754333838264562429660045066910807850655004149349367829274852161839574514001380507956623261243310492251720757506868386392364729387384901093739429570783914844226787300122195903408003634039436479815028839705493092972602000469827047547827857028221688055520928266470104192067232608397900718715300054820741807055731048761731787426729265311221344074298184717970445564608731437891828344466942036803551169087366340711407235117211272943945408234460825292736348068913986216954562833469720023131659746486816236428747877381498229495511017576333842398946544818234099799387865122847532142647116173935568703051314538646448214691409318558840860081774418276657271048309384429354222087362541478735821088905732620080082745895444313157905373219869399243898174830623564873266562222526693095567094566969185062128195622285880598554444220091564615622031881685783984314776505216827062728667738334714150363962128374263022489985794743149578622417731878405742554263582388391362782364723423485548094580848979417650407517467638588932782921167333827652329901563847164452594710091578689439141733417904535386190219369396015724336406047610244998204955030213178327856025577086440195999682118906626699282112230497590952688864854631674955467955235799563610943849748051048611999914264936399500304014872787971485119634980649667152865094416188633353585286085696499526118918835435215448540252958407811256622612965697333348195959122276831948863018282856766539492271593469146846760866531861673982980161012103835308952102958460682783380936635881467849603936575308910657484412075951500825567358902222323068967363933332243145152737113683217652573275889483781036715935131727205365314241800782504888369490219948193726300113791028897328449709974714291154649241547483097808141571682120836940761278517044056851131503155237260402291819474398198933442780279340444373064874493892077322886182825322995097351836407766931023660346965267432447583726816068853450918968534041646658525293399784736854783008694798511513655227372396343651638521001681065277263583843751450251434641269014476359091955050397279621198027489036022586062052736829099224170663786569673004959731942892400445498267325178076460067728306128189131039244661955437814141693947610233398741663888485931719436896729177613077787035305963204108286392125096789790036889208036459950020638319772111753057142240483169255359398531365468313226628063214396137838431173397158377115740198667448632799318373435349190280955694208743584262176383975262664115353624278302961020113053251471649679905163024531609508519714850579886788217500593880822251144369883177594533019909887508026686283416635370710400468667706340884373909071908432515594343684853805862240242309569722455064152377535385009655511096862780261408987682702744440374203882851518626010216513406151178563056232263502809822683712205840272349602006914734736447718129295959570206240188143248202632250836629771049697619250152927655318171149502316188696640357104560122783452066768973983539540063681615525297403688247849931677271459414054513177358694374070878194807553746394290049481175886771080207941954350547796990283809998219808855369191519933295151806559500040260911368404002427923922955600860605890606629633186079291764719344662990954920087282311475992962994925920286982974019045002496500285995807604146518382474239190158074765418709890485298816029915896011310018711272495948424399077957719851850451670220656850767703820030295009607578352087353937297785084673395433943344338304244346567132373375022263371674123131620280798403817573525486363080081140902324391640733170565382678961329652505691039644585550237533550907683904822226284393924076675552036315675193161567060396094975934970591325930342370124398735255262034384897420936171155660299454326410112033735287681524827850662461981045230722222366759048996776163747944532957319439863885495366621552175572629129629994476193665720020805306859520773155020911758816329188219987874568679349843895888352885230502259255615362506643882185959072004503855945919644088072687994609696017373151715774784593271029082950580033964933716144535385406206929609456128699791863155483966444213063715256142605352610806863428564102362084332102202655041238954901163269135458334926878946888212907109940348669437774412187493648799547077185020777812737985297224037657973701843143383230046589881615376393573461236798156195655071883724573147857205405453944914156797489545924761189334581485195812179496946354333670815252638541923769322849279690381862084218633513965090449114199899039616281885101171684271535033663301160799223381559180244115770685538745830733906004983112573138771952383596297314962955407838693327553733496181532389365140903329516793909135562066676819978639179073469298723013730224473421035979387574405100987453388711050597094245692245627312742250803141963843225902670785766161113892077035735156047941042761307074272756069699671275307122257141194703357339088106601029409291824455254469729859321880060086107073899375170066470377310411683508282819762174967281417191400044498510571280644718861185568268995428614568058104262299880003597854512724329032788015128653684312630817260163268443470276235431386012524241593958965709210961138386144502045595285953202273774522377251154184015338081869214680179085456085573834808839501077658456574121068825414746010772834421692303153878393265342737822075654341186106675508895315129273455545755529438310916444818161323456583561067044512705473592663813985277059373049296838370698512601537001129564844847300030163819065552590705936557972399848125793483580102550868308907082316428939112984572661145620126419581855360625931484710470794650473814394570747872488719659810150508839193999848599076389015671785517529122410114008900101539904128572802230472863912253343354565217470098354831675879458621711598545077884688641936716957597682397287993818708921277035253816576148938627632108256433990456892739748686624235369926713994036096149846682043616682449280464912894728638303111476564830224986024947022820256452335134097763317960794353446980072785837650033137598963673637798750407052419547998819059130070770131519607091376327351170081660823998716116429902644628910419847313085624335704468000929492858391866853511156403627937593877652578972809800415011238111626730824786750489394058744691486382859992215680826081150080521581176673447102008030731762233115571380583961430268814733384016957859664548199592207224278259040080052217304821835991780791556749896408738022141294121976165189693817316302353558664352158324540671059414207677841919318638715356012177205923900301285876892252689840970166418115843310646200596930420158533698223854779382178094574629665526114113989245893703850454480998260548011296457695285787273285895026178281109619157537948982210713382755298757484047910825415576519099239578784225942962276555630059799608330510735732084357704038314415319149651509883320921253102885874049092804633430504733801747821205295703886416476005735470060555290975037803683167060279818699856205570678547294732198071218761681611384427005966064475114620756783371630719990819863275928725426335893510484285360735101514947313155448445555356625374243426223854353420777336504266210316674228407783771795030367705579685559353118781727724021877457006678443665272654501673239884546471157240586077006387967963624215516497469384140997247268494297109820005875981837595120687623714731595992124391423868299367739704301138632443361538350156849647029856978234067799488407868068043570254892322720753948710760156597729926209906802396166121295494082807832103738180609861550647729715285369032192067017110941331350455167622072890746366152499341127636666845653313459913858945914718560154985841940073801299184607961187062052165714641579531400099622640743683135070809390973468547713619300347458777153452487352494490825424142327311563749277140904600642941652413748312620060698607931799359191347312887204028017404261449021368004686289760391521817750012459881617667027823470049485904012799514057368164734676289406595573610174533130158515741518695382393766854213729872933194683021958764840983152840290815584705720152299106516563615580552689566236142237370048772235686471871898165639183456463218427862521728647443298610899269694125493003859590974977912736521347978009352174027982141057227530215351442487646438522943107396541991285180784437078353855620880873401886093865372385885091110923910988343597109439196607966415068123554607816703561206007881379653428984249588305088071731881930293915626978881954749656152272791258625588351750615653241748527437642201699831319845639572396442703459589407801710506081621591592011759508011634134960431284380572879653485230385499580368593294118201149947240205605566801122030591155357575086155821168550724503873275911916287731165657123422451548726563475247635685719004085801103168493062514664783449166579781949573484194932208808094503860849170362792980791881028001121917777234413347389807718579977576563167557741492519798250005991716344377443286580896791322834782009007789892154363609169553562306112841199347080443429206250663937254179150181339047008023467606410213913765026381624724138051154771851117861645717692355505868417180565135887625996199202693949225057697260308345686323328683381257845478071141553407383680239739285415958350288794638376816343501544256633563695402729566862049729645735619599202336952356080825022517462453285189648737611768038381325163654666490503553598128712073299388381637433163921911107460408403418575675851314117091585384319057910217520618715166345634135681276647318199636456621971156529674490422443942951997577201289147437162734505033151366804584832467663763580820365455240453473938872516744063194422243262159299919713619844716395932302113161343356239171238613457823947620502426754933564208952171126893678611617657112064694092303702774732194746979651218808151782909813244323659581862563407499783154329408456753100306744617235781156895420952238520619489862220521784952393226911280219049628427845315598766317089806887191574196081885202655543164942803341972480226619421822810344280961094924828103575294025217826429561122317509392922722288912857378790419459055640629119675464470525643010731777885089531148465074816820598805898601763031290961878994143018410605192918790484373290068584034625319365649892851937843179985605597656432737419929393149679656338422296092159655282610441635584477511739391336915443282875863897587464006383570991244617004432077772343075955593013753910303936339714439550209356203403271024948640662696521583612404792740274859708415477388284770831049485496970904047695369615471172365024830179581142920343473043086047007404956414393969842896629811004803199284356968901126238264493545895091546961491478702915245380720508127706718118503264441660682540032603781873418135415082244161351932366510780535531925769494182463724313512033177033517270197589864316829571912098690689208396657996183269260374767529778013659821711415339447947488144071117376845303792803668064161363617420679946416955585940522814287952211685748571635722376863695603327046193679531052137109404863252525831243278881813522239063938519976310687277267050460780616415393327676741804204748301652208336492771855727565462163065178777742603644226839352861804126382122652514066151131891738056548993257759639395127826740834151883812082705319792707137677108313803697401093833337779834252774032744336181166987717153961777556006297266723287031634160086828843925296579560274916027899993595748657726832230908362210743367190254919725476813303940638251287976461942657836823151027071113832629151062263533396874211497316645866039375047552300218590943890817766297188875331925461780701645093177742003444774388757821548156985953487141105496438202247121540307574685341389808590599029957262857307053480703402814896664415096565311903231801470215381008979281626640223748438093832603407183212506138805721602191298285087058765559909203724450363146071630128762979043076864669229279943118332227740014765092980515431777516682762742427822827642587935717533671117637519497840777134568893509299285589430285693534736695026460043175075119365251102981015352647342802446883737773056091668398550592708594604819410193559017779757017490270616055832653683979074606319946547349299090439714664069649517592785837669931342946309975002768916966341515910243252181396323341832817262076051436568634222260124842296070884111993107348874189234138581402687981668995369902727552447450704652120107274426858459170722581816974047988401817973732607463153838177497820953309802704424163583716085314375864567256793039883493468299129357638878527037134720247083498863018948224776590362594472510269675012533059514678627819478205618148893273986758941680350295424689520520719100730805769333714492201900001909632805981523164079882418557474076811925039535548700177165492257646354748341390174158882345336755843146772405416365216097082292792082506367353625976923118689694412009315201861760593103736332824742132827131233090769385266731116798571831918230694515346425470617178218847142199907817423423505229622421174477522140302482168919303860744454545986193144028702903888490941423646874903992574281941736763613889500836036204786225197590429994488278546917068378706893259855382564650356524451658013404151091188401397133263996101317589509201354562792532291592253388286333918625118091063267123469565968366047739674207286949795934193066524790198846198833562471770821924020251897015128618078326847970831256870967984811629690694268526711493426611949886659960042962957503205264328095172745219643898566451746762819870495228369585504075677780040191254077275759934070024159909618936912749868437141665393585058418095528767670608337837462570810067524726945291281740379146328160230149133947745285052269648525871544432865098643384245667074936478475142984348453074365651374512413731069488167675421833688652839283030971112262915601874360975087141007203470008259458760269004349755015089067366400509330125706838876543773131211710666859229176607212602234430203179690372376178846782532018098256429847226277673815107980597691457966514108006426776678677418018296162897560193468251381267304493493010065054297513163988011798672085363400584651391880289070403148985943173870735334259962752967489926309534882116069046897702127809814869517212970547725657754994180737152598321816400279747504057786117508681724826047567708122942236316096672169551365285916121046821117362362375721217177348147499034388341120560078712421177793307916727813160754771756205624001718601286960238788699458271031096719130947607388887930383378793197302296733654402468193631989579403553946232367357789226610202759926353183764717684610071269328317013938595860634484685414387876252809901349810429510669097164450922635375317308455144420054215145170548581505098534400746939400704844512954570124752730126483424570057788274112720507907642241868653243235204916757132796704931015736833541555283974636612332056508268311092439033176285906742363974798493364820540775696838272016019878390771395293251876456432643248523813874966652179445149981246912274452366662595003069482704347459054752677563173928586178309422839477424299323332436875437203329719738660490985895739740700671776719855550162719161590466940149046232782705916235671664623411669206804628632163395796128947912078800848913880187574556222976988736005556773835591744062298976566925379075988633868225888158759700476433149875187974294496781588107187810571727188465689920286779884890205977338229582667010054824077964794806774156317011802897050690435790662323301268696446071381911848674872013725736118640312694640900955365899407903028737063999174935192246389283459816837001108634989948003187937111553800978811299285571102370873238943159108088909894733606587955103611119699609663235342406086969986741490190131822373856525709659425348094412570694252652883696333143331823690776101651529687735198302882374945468248284331804668062184297781408450720157813363004146886645930269312359843439387158724625277724139002402306525203429343441387777074602806847774957013727581453159774053653149133006389058831346818686504920430165227886378915244202430998117113046660383351547635950311688468084212321440159227105993447571210827638848135787497428456481986357582175647663134414454127706711184791522514810568691362735639125837531619833149358117435392117153439682174772538895241768657372168589030247142239082630931499392746908456836776428084409693581025865518972802601347883531032085322976527351764049787274301669072032254978898077006083564387763217978524128739366506949200162875662639322655470495596962878616401471661880087746006212980913699957925692857921399666201586598467104329590218999835503685033955494072510094614033878884169178730258529250064676266029840070171825529529047872335626005423320609132310025486879893520134541491140928753422792639208840550378595617275985519199527769156051887747187747738886375190089332774163946353699056141497761315959033213171945598300805863032827803819573129235733552519634212972242538973425025436732785757461449097102720111661167216163601621942110319171707472768981641326783003030297660629693813890410467253517807904101157041531631327835089292026544303719966701304749945483612228461108576655277947538597926718849205034275681652666545844418392871187433013082134498205981133418231553190236624805301130194278960349851123195191796916519439065061706617298136505836546292686002238583004128784349790037981789163584500372030708530013723229667448094968187087730460145546799805218275459539792925806122007757597277462632528399305458920858618699818631337275084337314622329776341439565984544551269804916106736793255303884664476588654815983652221520369083512649332173972242403132634291119733551977079870053289140156232711626891439829830758950650255118633645599771385914316634166923418094698473848697437924222623140889616152655532562130221931919179374695380645343043404273081145624560016050132519243176342625280831680792742976021553906751335255427744764414325475122710429098690650275891934708137996615659443783473550189486797530600552428958887353247702398453141684529078080320823870473812611369522176001497131814601382676675064126553059221052031064151830507076970972137082973383573641134663060947038657121545078627937076255017627119269379540559283653246165399907029829897858090347376633355911786869090742677971992584653066581840659967826371206772676151751865331171093616169913127651699350114630856332508802534068482181427971798181177334505555477718131329230310791715110017049365817003776217604625069180733308323008242527031716917437905695398455766850091454523761543154790657371848140635677874663960752879088993043055711187806681064547680863344346795449648628675686337563319879143181888537622553361731267953390822154408728716312877886290468511305826400859708674394669060668127751272864778676633864145207360839061146778729222789655058148996079270319023103075361363881984013021076529746795931329815218162958952293258869159931709241147291866535534648880168642019053657891810092594097538730813580420068268914584799979667736700894609619219782527900963670710956502003419226060681431818825655772699464416965597401647520538880341701109856460913950982826142634803409655020743982151237106258172451715997028843233966312536548023467380555487704724957859058292443537537061276604892423138980308846614369832019788330324843899610032311142481175425020710909749725383917166071127987019507521586214065887519592735871438462183609057919160905724322341327121141334373000561394051147144534090851666881554908641693657963109182205408674043752223545166014054012784916423012925626003126734766951382704876726764828884591681494120750726046454425743090876140111425863630529445809645720645961272144369579310127248246799707866130907968762939215231627160527759222364541661726673745047286291477773891220450973625069393751502836174602627510109155915967331069507069469282648687021318005955978088048755533923935810520223097916055069059367452235397382892722926598985987405751295472415653879384579188540646172151623947586609580485889286891149324749876836096915759157805508309005686751340631878056573286606899508959784952143401513384000322764822885826644942704338154396460446680486841698798639844568044611676496316146088097772637200942514792016047146690752927293255825088704583747843395187777975737158566829539084951793914910842476446653195755757324379053346042312236592225665140362595196649712675629850892560052711075698018291970249252630675244147171895319849945525053522142489452103350295896755899828557081925434885471829746293100437076670905414030440400210796722111598565814008854990684077866295143324595979976643700167734203841200531645551190578892400397939289816058702691929338343222107914747280771228782722995992811420208346265891749395462232086054915123057989097150951935947829506230190711261617658028762433706428592232525868233726158834179094972522757583807600936122125512624762212032226020983440237166146671032137378485387823601166222011740065168953532023566601503812150642976064761288990128090680138200269070858869545954758185186922709824437964779447224190317164270529662961802442099136389146716817412275642934931527243276800380700488875897777011694857471329911825142184841901535455463180770380260073513378096356839714264815732090715957202364757082739635892073768867572487465947950902786578205019307156342299615900745307932007526243744813448349996958097792483434305356832861330450435525697020996720077134534040433808728360822553740199594356508864261318518315354974336263385366528120085370133650149775523120677316387207861501955519741100888259836560505535011434334034886360673353697419895140208868395848099715932303050075575043499092303094812138685521857135062494151783207797709673340502495009803860585884503046751060890816690424008025735879954696551981327989489863233426344801435020092788071622920119118048774015683698478648619785055144272635188080201056717654965876244639462309352787131223614395466769472413324881103402635833495674305018579051188539862837992783649048809086197096982857510276841217304962743139261840426192578086831273937066580627544876253200358822662431352558163293107351191299432929826939826730756479097642124224283993659822326343473210819187013440437262018687376289892756549489340235299377015676291556197912486174402566518346741857386672266565311200279374937044868163799664755153025091859643161326962942893445526800467255873769462968293839026262482086821631039081388126190162821993975090024392730327798633356223423527238761003770607744433583748793954217785889219343341287681339552148479714217757128830017924982280546904626691113804676118677707757830221162946034987370059788472140489750555994359719311090733661749405273096276064321897217872201643111117008431988585448174541050751880253835616078685972567818721403744266362975310580800934784555253656162629438968596502476873241497432703143857349521550083299839834162382215988703439755919417429372964973676624595095745978298385835525382823778456523653548202176261330983487024806230911225545135820212591172322092382424295077533959497266154796178513115227685492425629700006570393440443714889580421416704775556873316262736878116508938751777600506266298497262072342906253376386249498834502795004355070439916825356729522671466787133389444541647593272598089132634765808575663326787113302188478442760572773398333436558745455370145618887667642662568029143222765218956870917116383621351801402557214116313288789999718982824862947404386316353889353501676860719061445101582722041756338908362855826747401657982673938398061427658319741826715373678230012261299465178466439938821516213745316110828453899325550721464524994680652385011676581827985681065419842247461679643919447896692535597304319020228048004387571589105263936733606491047696395148089930543929656049699147135739042541009578657393645885144616298432534623834311246278638407204063442763707809882968799344552019299072489575582918196775219908792934101022750803253375020678026646698280062277094472762003634472249994661247859119829562732170842523375623758027404848653396783468768449828999678714560559954930847495667338011929708812983257715457033525513873465466778316234517241019365655091995859584070546641939152681878200277326340801751340890545581677496603092054010476690345583290175827432867768961298445677138879997564550771025703324696312851850820187219895769467264928422620591295428641894272829940280901999059603420843489449392798706888577889274391670994197313885730775442440570418234898599494627176235553111616186552896136289336648763118902847829826075199756231235915083907535665855726090095550270234972445089092323879285596046040858502814937455629912183630991393442848779582242247988879729712037382197307306199639288264745735961055675947173797058888361531826086065688626853262395239463023173828264899866119404786066406238616729800910580667300192313468909828053443671999294727688589866663978522263664382983129936404954716604318375952782601488120936169193797546497772469439123346822821295591469432079419546633759084275720550183448873823988432641368856012602654120277812223724933564546507986524647270826011955895433145775565884163212207684752020074384220506834977390607552003029640588239388985682634176916997690877622137617389290293863678684270384001152745337847716818013709897474894608875977341494060773562698444244172238996550811661353644408116823991626684189447541171125383021607700850020582613523812717235155229612053107908174683137770903642141109115705909481151851862666737511832091644002680569040170022772416168810701278803963827176330235138537738905024196985335000545025427420082841946052293141566525799724752950558197860347468241504205279446557071686265555337205569299518078930147683554456674347942496743205377985298723632696384366911941385437239754513496797301158292184512222816898665047999321853717494288499037654579136011275298605486044850730045696448567520055364582315102354139260177829210948402822398383925499654468582783589609767985408155303346471347163115443025728088199167758082883805668580174602620061162734287390162206603097530397323522958276481778417052357682987325505976370201545572043475194879613713229882435618790486720104672240092754104397154376834556777108105055560279402902734547182377728518228046631462765561579448032807971586285164917133287423628318209660999490354206183517014353222800562779477462878892866711476595080335285547278230727127347573608097669558591865874427694560243988365133337942258886983239678388656089440563242117096018241418897279527362100496148258517170976735038074218589188352397431494241577278882655141977942421944612212296668882013996086479378553727429819313617181846185878520877406127295729684079323927988496646856082569421776043365967872993622807552842666417436151118655453349359797946665286181346842853590606805708442272456289700861430020831198010074461985964419497696945826745916731050277440464169846607982238234110366580350525112056061048083013058749210062387724784113984030944718350610963001935147479823952799940720548168334395776396554908420855121534623182487677127217890949487196396844457981056745024940043106633953611084269523074544943001847554207526512497899253848030262319065673261932675158945816421462714051890769126784050429093041116954620432551686020584840929170345553455886805586296501470471134247020106330397702519241468401950603667322667206104730291106880926924353296922669773250944299641657274363815432001254305379413316735042223483968579171665735910689406629762246475636290752927216559695800116437262647244426532181509062762407985809759063246651853416213819611797996528436438045165995300237550259331130176804200066779895279239442703336124603753134432166566786776187385429473179920889050636370555449218810420073463407906509423628933252975047042779735094964312350647011251375298087321595161026278731354398531683092314085720534432344749553974659841390310181989425341045122332849031431501461565003196609618813282801773055464113147002959165674384616335903531046768413141276615925268135362357958957322978875650746461623108396522445738563917736499337972018380797458714456306850098667225741523661672426570215739788541042294335659201617365326391254214990539640484521343228003075914318328798043094294902314136406545918496437327831344371837224022696316544396863168459674243767102448920670957158510396196096057825249317849572299732322984660958488978627486456582407091153406340311084893797932147893892422882273210249598186656687744822367542186666836223187576319960126729036641254207693161516749733383946577286984541303525788296673809654175964385950726935736268796882711660281505421346821863692730487371133668147667988169713836292083665732839960110378299591044795053638812953803031254271572356696084150187604988026606300361783000901538264530976544173315152968343906393258859202462336263100063146849717908089731871129288739115550020551724114719708774258955183600104180577757834193781162604321411073223212332351788339937010311824579202114176090075963543730798858678686718571626145664088877223903130356235753627753762706574405400344924522810250709334031941344447800776323346256637672762350454870947148379049619739424680313333608499583428385125001918496506844028712160083774680001965712113588883823704817626520889734613394574046504797316180137242054153040285139547574764744876230935307367975597369422439624891079612647167964301446733499738138586840352123991838121583793663814839579006244162244512973652320626619321932178278824277814580619883338142498416849884134168132032164176365414996932313224238893803778177980297791723435109814017246584311581692569610428318841186682752632180838977284354129115700693711063238916351160446036919880677707889460370226435766090870370296043446060949480054300437605920728493131776211938933214556195678206033069610420143792897252052188578122238760164946331622186242444551180335945360821697888114994030448713956442355078373273890430269071710149928370364256558049293264768825442029327235859691591306415144452120654244310614873261267331436040579952464704749939463843836713400725174222921094129901023941632097010289016671803168135888396114140823726183559836695241064250300560865850247889273759150908437066409419198556655323982737249799659400768761903097008505364503011904369777784648284787076116503278219314183675565442300988505813288495470546673698838950466161936018361063756145205054783702272779392536008482658731973346249657056628261269367555512987406533223183289826693900686919166228614801212901375508624001489768327163790883512118833582445088588960628857573543038185356816896639373082315451146859282061601045811559666044427654430099042206224847641485111257927412652489622513977330601400161464989911255618101289724723053929751037190424667818453028439231712676107677844216726637507491220289378021201383783006430952116678965883556266171120696533752920929767497241548290980599547648073090430420263913902555128846726288199917828190584710957131174457341663735277158478465009433320124952374554043509332931598939039599571630684840750165760596027558662183216815029615874094160877560165846776914867341199249682655783307994471088687650097530815841859136507736379915034318662780459083200967586827558177857758245890976607372502731043652651699301443556237250531061006621105638765073638550239841076963125628123691064146264425487644566846948989029009453999440788810497450479673868646035626260049781059875616523616863586113541589127662025829100643415540419377997640648163857492333505161417958049356857642967711532559219432633485659482975727317551686361321512140205162241271108609147115616504160522777918103944009859685798527928405328889737972528976834358937664148146731193538233483754611167015316443100591515645634305915209070171017300768960620798708287045642744406936305432083870059648940301272848753574451467497676017002534405043403682000748705435079166078105058201671863471111322531627736104125995833843057746644317366574815390578356887285371321212204102072450925761993345748573087506950645699063271901085598898976498907970946260290749232072533040879004251471382766366333901137424814118349533529371360910903765890275571930070103748900628524125444963968184142669292837790049959403118127250915434595122552986136984153716541291029277634992069514803486457528086064495473076359931296913431225323057945404355047310546419540008610198837570245002159789740696811473286861423380961842624112373778133027030255054587190114156282512257958850573776655289183567752353782810838174619637726530459090606597216458894984525706746096887756211023554279808020649265374639147146478369331754287969568023006774387915803826276539669121887215447127345108485512667854778672710486342051367628538975179544755394719133425236870605469978629844024053329907576417953839906786109832793587987767311830537728984042220026056784372865256031558395461568500028368807366429723182198835174117428535512195952836341747441121642386409724056862879772676011227401136734432075365548211379829745708726119913632489588299683589729883288842218163057321734747323525113767380958362435254300447977502607192731810286542011714204999453475506278917759156747937609946626075153723419063301567824451619723018538755103385851583919733954127240463382837087379681761225105524905337336493854207714663418952034415250112943025272802870259576565262033486938857798578783245445121829357592775943346445480262145387379134668685720029257407741473101258415144074678527810783919317369318017720503646269495431578491052193436558392893008430795149697759158083063525800915703785519469913445208444924953457876129719829397801897560607777652042740940684252719990301108253553460148355535771472899299228703442991447592884127746450723995364607214128913245450932896026750978744791375581990670175902942679571156580137074903934860905451400791543385148018114535022596527608252184955226530446347978498625974767441015659303875475847665977313808160641645575904506194603835079635082481538235585630455927186855595563131911421897037097489070493122358115455855148722647430996623996777145076750994622615041480275724779586615648522081686989775232476654215378385970421441196135264296268349753485025359613990005446316676548047383483633775250191492116965997270499428169761913435471403223292595751861513579910122304019415226637886599568014171723136148084211418339057282017799508846400822028662498243551008527333179348815757996609835476706260034350984528134722170129600003863584976949740013358801767667302902984941062496075676318447983265138583236949575100063389400935978222381176560234068116410955231566181780637576506720033858589262954239477675930069911670894610643121551717078656573617555989275959156589398920188835835839697723167138517785843056471887649248392397694134782239107515032168832423751584294011844468702313175136917919796254994563363921708639319951365223945932935205810600149273944241042681012970840802941087699243747461646890857935676925755851540625446543657794887418644648268475471908332231959953211133726508426252599368065867008715264163541120736488815582034484181832220378170496406572157481314285364714460986015106906901192171178880839509038227862907583305225025346048946936457446322136545232728171889065660707766885731632444436994013311662564313657614081709929336315450267604887177205115396147091289496287672194185072161910705722017202533754412840844958902605226523327243842021939681866013597101802580832283738594635811564137016026766810031369593581214845311864952790516345526296954834175516296880897085020241992008992430368244728720484143172098036143489408362130627670309330277414223316657316187745358784620084180371244415683096737108434593898908007579343515230099426667483391177934413360360117902732492484581147451672749568366012709372119119220470075016302210751717718146029139570739370091470341457213549813735204748468691824238605075908599410265819689511363862537424275180006183568330954141685879746732429541737222416361610928295508346605041906251634543411973812978149448180125371881154162509972534229657718866750588219774577557888782660653065815863770552964795211896047844019272698654483032106460377433782031948854996946839370077003312494072332371703437664854407722769020131734182407756294909896037326634471987453356543931432577816211835092045377075699265255210778686114070073430036652686890408153615867393147267463317774452253238266394696358268607485034384275980269541880937056563332928550328063684295953914085351265672440696966722584575054292460938777504428232429353397885590748708122898941104583376136672035000864125510096892555961792953107740166628715743013213303616286508299209857911411356160706777297816519088618600570254993063905130362036893307750909004916770651775417984865444858802104609021390547938537371860557292593013624675555827116481763449877140710519754055200132371286918756706133235642358570674996799648700290332753700933457636752037043620771112011209802977477373124374851681580612844598955619140993671066112895604085621061435222946742551838929087145015023494885754613661302587569602359565702726435932886716459735482403689188570160672855673703244211951785279279498763819322587996378505977454478801929892752554821846986051397043366333450670020420618874116873271161751292865729180494820060021291785355949942533434106442468682980152168262615353043243257152290205576201588235329127414310699972143075161306035872606359504706847728204908206883339630392057619962178001531426324215656598715279990944186392280450451639904399079970893736197789405803164575623864335045795794645308941884726544901365434567063493625589565951372599946089289358050874576928831600633900992338311862203113843767152514289683191304515525095112707536551014767598637687184307974354228939774043245156837641055419316147976170192436731631861373531403248815902442321334639645528960039044913255400784369811597102751393136026064519709185174086865707132584450821869453787607820431433870034730361453556753213849216563903588624519825751075292797427970794718978473370638399556049134517108529519804062225680647877402214513137832093121635386908828935884625833438044450429291921948277993875437697709324098737067420382051968833968418791190468273308056434437076767203022536520833655671494445779264334638902292074366519338049669891049242934017640239028658026248411365758893916258245421502762385192140604025072052725057058219687869855548891653973876381356722230862980882597276457135670067877627533337790615043780735525083065188083702667959989870434982016553589438126681458414478819066566880547152600811829277642759663664229655189128544046125412427791621049430277680463548708566831949842021618127493757774363598902058337014354242811769713549267323321825917215137286444457728771299438507732142491073025854431028477208916969708027247636387046107460087297955033415765736039168333112482759376226879926006130738997092764663139649200441428802547741711342399254847394304801325040653425160468933340480171496521581536267657814057686919024209862283444458957543640040192719607941325521589852240357240313845476963715563919957531497605705145257259081691352149907630301614804876481925505631234855192553336177749737719240189208229718254960330743753360895522985054017888483299853742621788942240818219222800260749981376331196784800766379748705753473697028389637065881202614288609407198757860479970658942059588842195064007379307340425088763708266424789584564616871709622042023568555237325003793291496769207927090315590964794295573806158199386442205390986490311520510986159069700290052497859046101381604498991388777044318611725521234291426198355144884196174987932457462600564317453753037611637170954752537645013512440515413446922934748338529135568947370995639222025543987884600652762766602665119712982650093482808169260980059131436443732723311408938174065202212340256341479732877348199335955057923291437169283871500107506832962649286048347214859540386929630701419919386121248854019982398093612350808017895200767683146275290245035964540894593491522216596480979864933224428754906307776103648391894947735077624607195639794499069742037294936237603517905601458277845286232174765526858481945890528900734180514700399963776101062377056159688444417542223953660794631190750679730872592061770193051796004220591223372900755525531929986631522990431133331402238792040067578469354875830167619435934707375716837165459302025001067836349891013257633893090131763295807907749574648344034369775800412954507021857842273125533116874942569090376269587535614927438735373864567347509465900750021145898725019384929579163380275448926049317099469278150138293724712895943587615755045211169789928713555028303759914104733413838576845494343755429008564532292400608207457324297087166357285068471943528360601412242678922306422145833139611773211030420169168704476653482758486541589628879547990390873696229598918067212350790430046659348748109212454743718937114351280965697468647993322374157283340095371328545953364863037890908001928071616821407301860097255201755922577900356417202858137338682276416042332920806694899372721037452943418778648827984539293330189354243297887410432474868527725537383772233856522889130509234740147888462302042165104776379359374520820251597276724280798159168245755313211947791542998795040042179043437780159532909804444767229370201839869239233196907118524155714417403497691899186143828475084139965436828322575728114548617136334323009415010720890806062139592280156712943654874905322213606580458272092610922567999776255992759360629746605273676533430054139178235288768070362251504461153305274454993077702840704519172699300679527357439044663163035406227525976064285727718538000399207836151825377680982894956156435194141641526328586924589130102501128079257395184664404091391193591832748801167899686905772122906989096273854603804722097285579523200920857555532689668487018619715126865504200259717298984595314069937541194405971819588947455404547115063500987383196585450437779262084555529131737774081293463956685422707573540695093371760231926465536870178153159243292610251160300987864411003533636444564285490467956199993016729375237807919925302887867961426487116908315938055820790578410618751128425967236288349867584790942945103610100767794731593062714626915343693384264241197167989239893555045787561543948011622517776248541191943575320574839844975782574812531076848888034431839792032716299097998736545263083154669983289732046995396779497692750837943188525416370919803302574999401987998912521971988237178254342186357403716999291145252225355066037040206162178195825095258620773236350806199940071144828963361039348696421306029020174150077594913525901850112507348479778639926381179325817217091338305918129487387762486903277107288569378671744042779442285341260465339085682564934211207426864870976376295911179340900138178097672235589824689750903525195399960814160788787050421247986778213020396193747364200259469803978257628541701325070343458449755462308579740221033164809265297032172192181598051358810416004099693290510656869942434259499173354613829067224274001831702139768208341878035018748713114200047664328546680579277982238912467694792268844142123298664825686523587046469775219365290871138977297770570094377904513669087490778322442888648859313872786604049243669639389721005000584901382006422232931950716700151667066567330239913139950576427210861864640627438547814158735158288495700212779593305690274349637249514256771297815268015315774941533104464516890872671692071765453890468368112280502943529319795716189086670987140479276488325347801064311110542913479492450127956854038824155717595776490007314769361992752195972518352152267748037747899345697346382630639483890892032931890094406009786876476568870790534248071070827121002258604643452202913628161526141732641645743538318228545289981526297956049703937378260788189764479257023384027474005822494494035342416017749957486233725927541637601753790589785781869955477281588544667812545636919003510556211336060653877897481307693162152658151356362471953190619526443784686323785153001630103967555730633298241028705008718688065126210208728864567645898536695653048451317661599666280856979164243230589219172149694400613869773651752669632975463127163250354319163067450373436834067127278814056319936874167570730959323314164779585497622565406483753503385020729124445216062977652616842089672011341796269568552292075041254662636047458422572126569513537243275766985643689787501640293278093668954741006954615009500860236824310294707055457715551396966774254582853758947509899677316268373656450894183603113040529662181639636603472595229538291629564278359258989740476573068232720152483013710611322075643970208340340172188888847434922339854943351978717183145507765374482008540298989275424916961518585355007466780388954023697721246921684182952479340972825142019129140064236423644651938707620879644092786051063567564300873713262762717862621191779044788835639110272526672807316343337201919819680439726146654446657910770877152277162492480621251188354998686369765776705368944870104921116805414404070329681519620970127089530700146368802206775996082971901185626563161828487683181592167114829629579495617124843248438861793354358102856370620936086298783427552178305609871286636016372951835695306887493412822733359967114100664960214221290483784930619653958758651171572124116101332675498690288447715327741127654056386386134774831842890736516155332175499785868626815454188034055105368190053608005877013884152431329432653841818030560404180709588167950644021623182623251371893993787539160460723424727025890606979508781466870130587283712682332240578357271364949129085564167719611588806040736788743272759707636031534226742504178632450348237659277031772683149037183926858417236526291023083252980819485858942673884505198008018332431399648146389338047562548280922618522068903036049393055781976815502652509031613832139366033510315527773436255273350964554943000415233039913480302288067811119532726456716312227577207607414310894355354061711851172441542484219673737025932327277517819579500597670564996070756568046506883533078047234481341869078763393317267826559053589531541883937603565057748604027300616624802555257784070567917935427996267975671564022350793592575303418925588704514507376996164563691621809604030687714099629623243255477935986296038373614069259439256477539528580783763426277939132661188069271277253443234496116553604843313687935706154174215396096538090905316172380153349785308478405919078857315938518510150517443487091401865390139632535142670556450866204986598000914447553407772782177231549160355333010637426264551594821496620963105084162217465617621531397729335239722633348867682718305840271546568389995296952384562144682346933346425629127743847099837650756263610540536456788535272489836578478264504836085325618515497369960707090526422479425407491929615987042538250396697189580589990574453581154188868472014457649127321695485695733294830221576036248842601408541646910159025267819708327558515827744164785279643231349884093979207743431727764486173594907720859573690304600289567206799490486647621233908879556208254319173478953050797180539840566590208503761178383780822070065147992246898924580298721369394298162122021415518565549907682232299637332171414566549461394119197876394368279308627604655341877789995995806008097467073603562596456003878510751345376863798854281804929611717909478858917811701310747559612045216119409624581085330991548239115716190739720992835304214661420952594482086125490058191691158677723004904950119837374568554468051438197522041185154625598818443997576444491301885506234464544612914841467211652108590408978034972376509627194943064633894955713717770125088482062384979850429657608954011403510734801735092910939882140535825267955463971602652158233473557904603305860389310116724835471846819225133096784297069082681809915559270276966811044745198830636843769042497449005787115747859103152769833885937973248683496955295512144452437421679232727743961661093958846270558609123942639985649438218383720971569412968842659474653658213570032980552454491180608375933229357691978982168139702484232971879805855865337590505290736737963211999818621330166259739889613395632958854040898602068451942688359189286601562332572965382702892710562273038240574222890664432566508931522667699100920421375200637634848880109348248200852163507947232975888370038635466857863698927833898452593514416949322278858583891546113134581050005156440427207095209877712114463179630461357397667445819237357849951040372322293005585595861892104758700200660807564316223714316877358660518357876676560672181606746769927011153895079457016205503039951883083434743391605477932099217243880624661127625123296659134084659164393984881077293471269913330844758232866220961651302951463209692597262096534451714105355194949986783794007599886514578637215277985644534634054882329797661900523252943055103374719142356302284487373483375615608681052773070785898222865941806929179202861814957638759421956467879907137948233298493904961317382197845904909077845966675141698886877127643759494228215459115140808968319974322627068233439508463234313084520852160160393543146675530091149612464821780700513276558143227644469370335644231570884142951388380016549939618625303604486062081784572724355672350150352024139413769700016126084502229676394065843131878741897081482806363856217525362913573217242630198650662599730758522079274289341922041150884531298966633602368948339799827632142698051006068730721903057378755598590787346778068966862101014976552920492861767708656430153381482840442715711353778327546860162147226972779883545940293821034600304435650273683933518651985428501945938432356082642520443453331088022483750131740321493254870088147707046896418387198101123312726122838647895211269184470279461049375261522075134803496355308056397815481054595941755904507309765928160207096057832278311566845891055135325973285019779602070597876178377280394171437035215574785336565865585165163112156948940427012081251129847061547399639644520599148276334938691019678729647128746365351646377279801030538883982762789987455274671547119446053527054717476449015018196883377597391210719496907985116308034409371379148739898151110030409296320761469612278583789557177441831108991430669855695088061605003940364574317855516523133299968087868072283078746405296024659373588529367368972470264314349884669005177073623239292523627328329749766237280504782261127385129649371059620663391250658700442156275037796283231108743867861131954263651282638562294732381002073599387777546044267215811227955015978372942307266921380467766964673491761870988721010288907420259079794871464753666852068823884077482010198480295736519992588920764928209144499383221948988336513968356330542804325368835504793309426672654722225193442240155450737151904174747257118347559845358459210265173988914831643254664145721874075604758126094917968867171293547096432185915953832443993683821731702611404549290345943557484524903622120032829928098429094371448801280384423365680301332256042351476791387568279198729397628595753370281675084092279545502437791937159512559309268844191146188935426786663834429827081040392655654621401520563748180130641106359828997194545606013245866824877715479530742008521543707195758659318399742869508385750225349145393065324087042835927940148775773427079903242861531546812638083868744404226811656916143426912827315449624717897045919028380571185852412973042670073265134601488636043059425709086765589075485823566781513301481903593513878420223328820872247069957888679794580311261410755746481187873748084899948522637679911202254604067336297159577648069606384522794444887694662923456688911607503595336832457667273567952259218630793052434274107319212861662700069683417523509402128106946275836948532614377908746661114750794839709481663185103974942826514958159457684859806775351405698255560165291382551618873880030401255392758029339229987004655648328396316102185392676737342467084950381784060588958255656471689156869090324945781591792726125677209393493431470010129797372470048345440261792255395628386564327916057747277798567564612951958557458602347619781292125566081210522507405800989600421568323254130325350969275948281731733498221724000736067189050530415748213448432247186558045569743244813414033590144859033354672886593943147083399632064920293521137784074190916736523027568255491367946948233735824356590183080501653648495540737878099971712329949700773274522551045203436041501284495023145758496077326137874797257086548992166040380289361844460441646728232083519313131881854203763621649724572437653373826764609617260018789842880311393900933319456976443312640741784352206641989486657776518494826093821426681008595676201309010723283128578446877531610803874448008635835537694149559756942842525490341389801075365521787853502057337893337240263235434621153046271568344716587264922408236420048492713687679254354503736926361355405545720152775655220898248025924285042461224344792896351622045299499414694927786310590737440626854860362304826682900249578684519476343166422034029626284202455056629508930520437215459407719164015543109857117283411394666920086164090092892602360241067642389850872929631122142571924249135866328610383743158432823938834334884560468204609687259793849983917392292665038226322569195897015445196032173180641886618580467926768299845557764784404105181797594052988310531345169844650289780904407244337151041702733914693350093457206613364544354445848232203855235039162006353022001080661824206665290822339644629695875548053638268605791146860761200988994959834768692447099415467968943519079385166271010935708434886091256713932613999460151409813273262720145422625983404254697693813278088837312434310784146764746848032053768376048662733915118397040254672912689191888266133469854157648549845601777354590811438943196032562656633796843699244191449014167349460806162972124207268941279303307089665786574018035161430317657474271136852066057728007537439408100408346263469446977413694631452798449682811263193382529123016963864152376054555808861794495072729872437194550510218803792914579767116322292695508311941516511268703408568808276574568622421918661437602411322855307011463385305861333078157067195239766781999982371496047115947614418464062755475620496749594880492164859268309663826066613593798557641302294257645640656623075624363048619214829028761012986189625210025516504953839988278204632426822705151897009573709495690408145570029432486068242963781181706324819527560037462560786843167672854442037022652059018903260650841770333008418634774743192907487871449185035904917889216987651309820057410812911316850276131017502372858093048947278363030037516480444570133982125662502519821285372924544159886047573421213157112685220083530676105276251594962391242419606021187978962701240908179905794017700389103562310093551106351573091960741701786264748755623779112447248508576382545164100863604092154936432129512059515158821168193053640277726392288397014236866494696626247477152155222938808235434601328957096899865592628479987840137817220157106070422895534031802077099680523686927916252823867396443951646933258422317181621207351504471020737999100648980510289983462475376020277677224109550250446367943486801801510363040342808756088658204793495513317642356684592010529716076595793179969980527853057490421688153788244699445454387488244365953614844695066494931240872186470482954275274838529029170587518570004383208658108419047149490416526988323590052024807581855541032653143141209926863685458103313414928029312266641526069040982037863642833788067711107596450104389844973429134824893455245497037661068924896603646791678371066583394300200470463565624628436046635576896414156241739751203098067039047072992927009455602154708587027506264299586712463750757995078970143181138781120976923568200831623943018955342705926494442397071890695314432807671299424389259776929596372956363829509877595238304052271957186065654938559805209331580865080819190611046470940006512797881136191532868135722560200186850255688483633836830983004324779763818218720466862395611647706236224015522055111197348560628638572391303244533928017081750883761526395120348443707897193621530263814955456062912970566094686102112115602785133683784081264762708755895091539668961592017055387208314193736312918805162865569796032278362723949642030581522922242237174184770536765494324093863379835574665678335532977618554633752188359660945778932679161268187773725882471728484672654896632904629246500784750163775167554557234780263799173152133298312320163507554576946183567855612980498801735370133050025955113838357778340889166072108209433479683596524472693453290908470565892093646569224752315950374297250444890057110605231210443668196731906716729007450946346702067485609903721878722822232438482280595795197201806508910045960993077931266321965704988830446342750620699363260411420055080259729517077518344551006922189461525978942235002969290362821495099352487311029687472903321374019535621877994289356341454440271995507245342949710517005012724941653699235020009091589925992501350405234435174594587411566614177844819321667949106034769992348250481547782249477925414162687655936519514883805362729465982534880141255446657038843338917045749540551271522375309389242439686913394449534164104119511335388290174635563181687604301073487804078204086474851982586473401496164156458315350947411468952649863332981447397346250442606362721843175688832149432784343936856084497855518833105257195764275792661248476763276077255110663373926056524075087218226311303172949336639213804874950177207158199746770388229854001826252191690343283718102672660323251933443606114228066998182643075729044156172763615846832807834390133209185591747267345471428585355175790236305794671161422131454345057868297115860900699858851228695965544730478858623321208902894429675636701772971564144796765798087816993474313270040315764604973831466876351306041103935543935867020977392287900882737534505278267510839659974725984381763963492517245890829887284473951167853317466103478548922154583009601002094441699723146484551125216650337394300370584629623046251013528362724519845293529639459898909049601885976540215156877733000308257030252977949468752148593329558646943629577004993216663302902204106409404780824182974076889902711174441377506236140007368257319076708636431730578933175668323359948608462293211853381856696041381302500168839251835045408408327738455221674941584975856007640399886814370868223573906773615009297370463292246418863914170124903016690412881434464912066550409439377508042599391561528067277275521080932270650579765915305338124847913433648319078504228313606128107676650649807608839076516800226169532260572271964275585151846054333712372477592552223450082306870131110057313586002044814664757759175641739575247846784007066831102570512223909399507946382170485062685213178374096287394328775255296445782913690123873552567482727112653863502203788170843881680614762006216597552785702282261519118820716075372309929703637422526970345506781629932386806429874941099482870667758673049652781840436277296393448310992455120098627091318844630835301842969897643687649648910296996766763729831077632063018105225061972351790693899104857560000044565365967317425407138082596696032789915076737598934715582076154037672031593622357086161407182889887288158523656766681453120241950915424051624250602174710043273098203306009817058359117895165590372107480427621016682015986517417426290703850068889252519420329387295262419025158834550880670242067231370690542583986042008500379790604597408552299848942672771799596399463367171905752905198025474322528549308934314282014297048940899284619845934720449468610720643867791156584158227208419160228612683527606392185306013040369666242114589108552825112469976311340990694098380236173822076412450658125719143970453935629727830808399053206672506696865971335763542447771981440380017153666552564098949607393782738951199167090551695859626947781783523056229608428370406583789472232575413002385553037260078595051724657589212253944869657077088508866661936552481510898320753949069669214803291257938328084894607157160262169667397871242074016979468807625089585412692902138626663526626982312300110080665163211682701995307019313257645550536446565874509749487823089358688502498255860605267480423199751016993188849316116452041569139937032342343483353473199681416560156436430201667242511202142779144836485378229253812976828292890671990693454444248062315657543850855533247925940341453042937933719396151081507081543329748573053570979846313729623442360971642407741825634123300651381173660683993229518685396339776950054111098811261038732754823405542314182014392618568424188617783506203339396895389638801771727942477491755821900796351927495740771846804788114247710305926660196489213433291165404670598770432997697768404795103736656854887431737461753537998035393955006727801301910384269097062738491407522609508101321208910039043785656622173006977842169682431125976941134271990432209656597084773468314384569708130898072132431739268961229209225211081712630184969291938638398347474704398676214090704129857112440524623716606568046984510574404240246144049068712432122848190907560989093254316614789388237046443410536841070561151935157348697142136389108365997101340667547753639419189546855378854413407866076398432454864830022160296719148910327908732202352568499045826310996662533960201089423289171268389751374199756700781110260067959124168006774496513442872164511965159443961318625920597357345622905697699280094481731146977335650114145772460251645781818990168934291253908106005828780438121013011184590532164862808305909159928019620928600901500292429185169014464745102066518203350306543043007034171840093047425106814203764759946956212318968596784013326493841016954587570690090602248811761794169451548143867061749583398956324334990135497185085356119658431328755982535246837488270842923880595597592142859818058978189744496735326664670529419098021953326305858581218717571075100895942729943627344798860127870547536709015732876431323622297289211830505003579799513664039828125391633244686011597959859375013003517732753384705876749096359364694424345469971940392402049163923800709108181207431103174413840591529641360773195541714004150455983715335205263995883751617490730216285673672054707548304856395374276183860895791795335125954767730525417357458611517516593731739891658329726080934395513575823689375587688827850901250852155350457350163094596424308273299884140521881760125736716623810967475252984295440697530964086901667933494347742995467006483294457344822715519990199428692291429968291131017882343672407366418703344029841432499864909788450683713356320195359459869172032809718961244075974528480561092322191095978460547572449792215182898411943961105081762234673704146261501438294792116761080837810640438404833087391184106744501690300967280845177574399178721185043871208164401086277746192363147894835818300835963569511230010172278009621558507111375107873977198250893120828659955307674688348115340861678129053468933592322226231760199931091410717633204488449868684136488417269490692454054525730147035330497225563211209390148887275523259659360079406131652228737598328583237386528780162838773682870798216177662549193680656216164130798626508340993582598355428110921074553345385661930634927162408680067444590036979520207248852904428239156509666006603379589180806122540249079953326303145150200516559562091906099992568243194938305173955291081215424696541920416968159383193643228654912191797801752555233193274685222769631796509545727279228906768570332583921179097675888094173978844727328677009526289899687891909892483782074851058701314429389631704751712292622713729580795361926454832950601509722426250294826307846075407224133539007743665756783567403522759582346424282091156470423435781249080494175072664708393920914295524592604475884183815966535964812157964823673566413471911823831644832161384451435186087557722925674073326636496949786237401448481256196765857791692874010162224603206883054237311160605433844996612113648686508722729510589737662115510588876842399398867411714145459178460213202732596584342748663646195709390149539336831567470911409173670227958570114342197973514536484723127971197141531938066633507548552387489659776652360289983542127649159905056285552306280101425801680984238859685964918805082637989279469411676972493723853857760601295948489870296536191918589516329567560820043878995676044073966366477388952561781722704922675289494202902369294887308992378980017810400660855856877893425217417328389430992272114231214213351759624080360330753077723232731512346223927235039275115273384514773032832351522583398422464878432836209847769805961432199655880128503458921919446310213555627482754823520207067625550114279611725997848694231826542708265293019095811236182349525826711381827864775825355732046493841413051302632973392616079945660980727084704520367119616694948766298357136080787570440410847884295376721073276767562583969165209261246456857510638910962480155008507730212628207496212128655645993487772522390490528417761349736721731694625163701806238143497198165766331550312998809220173322958193372982064738411457071759428712980214208706779065445505046628038674158742824783334792421705976861930592740745252203291208213671825986854600653417698962316165541217585088796143355490741669825083036957504787626494075297884706410365419682323334858908087478324641309939406160739324560155955831058283547258816685205234809328356086304392052866458815954977878283186031400761131679092268295951493419643924353020971114413995505506955011640885208159827148595090886569007028733924725468357315417946127293924262900241372446925700876137019721141768189220512730708644209812095971061450159139127372056172471072581706753223747701635274295778404133019031814740957351083747124215293924335129741218996541666994520900067225024123408462385651358387527266092211907061307960418468407597721758439435454849743837175767030387681867474377839956588589559737176730372346157282891907199846723302092955950401495150619715696117313451400921317771441307312800623295221292428763036282829121187894783385554354167102414822537442238746187291533073565017495314531899288354144336567891313139163823372151502516746354061956048782946522153802310179518144735528615832675089312828825550881259051662697700455045275375176052513378391720876644717050657368675412173890854903648472528708332163432570057473837514532441655667256170970535325896892070686026092308254198722991041350624434538151572092141706629628361172257486209897610734889515384948300673882271946249671682574527840984376015941697911311443389692998588537131166215020720851095639466376538034246690312484831106347926913894666755268277866568858186038353032870337383709476096382521662462034206531936396174596865895140039369747058811910594811337046920941525462916774090968056000422423735969878150621642188352197958531030646741903509246908049595576350749398740772647799323344940869582505096080365822211508453262680511629387634184659917086151271368009742389364025861916362288109813340008619565406074486672953586296826350981336311539118602158331858176972499807337503816282438694244093639765635300304997602681485174665768797774307594585483001531342143778580554497954539780452956586168793331582191312604384311419231125098759316418742651145201063961571249662054584042658410681857774495984449325742548449129832207700011448942655842758781742860585931207826188718482353218152547482323780958232852968835862634892597961738132274897065589461877281933499146105243791400113951303414373014679417603443164966853506634080465363487568048299880401504597283695266671764061377938771381699377472484215710129931818120541900695264184415846166061777786033727804960945618056718313579027193078458599459974442919321907487402242839836225110670363234150913651657844144236665061782180265179118953880045110638809928537515545485190332992490258963406700393703963919883592751504413392913474964998432135003937795605252176241641371382793607414562045749961781337402763045558270185450651807987498338535738355862493425045603263754700029181044371814654975978890121493872121413200972019559894952129329106800493975451283673556533162763094824477916219352460580239983705201069264956947343949991407044362213090003205971973566222294849816064578256085289169902831408033371561184225046640121338290075188678038019387105743889909813961125365117862953126579946149955796821238717649081767881522822695743874818289518394274089329447944510098751370475195225083686838223568387734501916272199253569526886638839101244598188047503153088827071441692668769047692738216153376781123630143438508117148217281709345108771902618520376178170907383187729150044388310803208106429056922459136082595108202931469327814339249526072682451431798207434500315411787332990801053893956835239880249429550861702720873370733965725894319232353472348683427450055225184882880441574977777489372131894217902167429944719682468055407853245299901660470609671338611169572439599979325394313983883567856737469422855195133366627681175409063737127567557753296676327547287201659344727537178356751149011430017891439099583160155438630355743270501767190049243530293593822044950665497803621264001762399375484003633707226425461277591557546704645734574430116966799713026908658457622812626002705149448612408284528117846181275168958424736580180004571185986314808884450880350550839942592830672648555808379744623935927303425216389165156693771604202292431991949345745700385596944254596373051257575728083286550480170648597080634074610985416619066170153132482046027726093381616919967233050626423778023595639920066259857774232176747184831955977842999118750305853753496547813757973864826158749633987302712574970779947950079889094112052966017198058806325633378509680194683206428675806582367983186001457223386291810428612306591962888949480346737009348442739737331449603137421915511574019242970870199813803546815400374308574495193379125312183161928156420254980895408196932307487080151643510813120782728445235537571767316341379943895201355309044238019581076444677037429140812425271733085733484533737259878179178222149082462419437910116163771790482655820586236099526139545499126312468281794181823049046513763817662918886110379636356119355395197141717180462984177215269812537704975183603664789093389038192627031526009241872190173955895117338843944553146678485196032372474960561160566015341406226929039194160899982969457896488204862535811261619410206410097627201862220697324060723471107331797623578246767377018226703619489307618298026921971593740016164830139933928201573631690892499603727514873832614612577475159559647513064327496785630490248455364426009995320399895745371775373829294744020641571922060626418363709866722345556055682830689476864971184071472984159436806539621199396058641602257217240134905420702061929050243347579225232218379866458627314261130926941737071875331524072070521360781684938229508762641511557813898954840991000330364535082545344100062821274397416319405939498897911768166575060940260094060603780444577827626931720735236376001605512683302911961545096491469751365719724987947559034446520391647511293610475113895995168101752344650202414650171320668148281885040528285477854479030629735571147185240659956170146749812594099178334794082567979177734868630816829216781284090139586737360146352305007420641566110396911820445430506395436564243813133016383497558133701759406238579840674306345268984843507310835648351753010520430207767103433427985919305913927513930563676211603728363848124374564237678088556682722902482625193129016972518908180255932193564121364488388583968250357619317318335177378838908969525251472537303073689528283170333533892949404125623350215781125931958094381213669433518783948725311930263459951903146403756695179030953039071448797027931394889141642994106147811140119529310902113646883311860563044309552504435219966568412884424093967116055286737516648117174049403612448902580340345894002210121622095875748152897641617619636626603288273797055068588248064546570330097365795492927546880694259874395934928690322330841707023001131406291085716809160731388729607101769418956821239668976535917727373109290779323094118857684623730117452472265426445589515755457809980717693398572294097423976044559655059965930800918942295437549332101022872101596192217757641003091753444300822447041899012105144655287991760190989779243942313570641483455356743179385279245531163540038873713399991425703246971720513603931646410077195334445433516605694953488807936883189439401459043524249219907739881637686737826873902276704261105141299273652769499861712764308004884637887446904266945250807500442654262921598000319975416427306994640621476039274538600723115072040364200758807772707846096634133814017977952600726429947586310091575811698595564352164334222053258781193368823722422144484904982088721769964232279480247709303511850237612536663758803726369497876358459631154219048150948348264062918346625703545855524627093651011508677175714534775948356372723336654642784427468370771128541208590195257166774056578978257445893725262827619191932921000076796265587688080861632819646104371411341305097996385647550146790646701155010108314629521201092202387351495182273581024743157282701128766068635441934358244111947480320976248208731263024188750702892516798829780264370585153374915281232051792481661063526828000296009593650039995955519992650802738086320160322205609559998831037755128089705530682785253700779164532812127736629211006565290700276656111700958464812057100637449904217846498847837133253146565129911560538416178997121116502119252217904868866546678884759787563429731889765352605846664250009631281600043629743874306085805951189619314004726742173566951275500797914027107536406716334506898390279705432475256031852647584686292793111494349315050407191483139525344112013810454352595921064849117963001824689196451673845413226399266567977051433006847356829613848151261279953347888513378681465165858513422370816440437428939192480113121805364999362491486928411228882422628639515587403844354972413212303358558789382162669420152979517357094608926818120092553934174427742074813095967131594207857933975443102649746390697956311620594009643266091090267366817709234393331412669230228080763075364864949018965798685105587059375922256560233214579831999488676880198222994134914154168932063616277290832203167848916649145042732332257922109705901979233692571010272531452472736948111787683583393096173891279599442339238749048802015591083396261850364351875822696209483263061192120188061287508036726845321653030263005542330171593880503518262034159272752173262636731176850127304485677502941406978607511348924837236925098181498042555587007690439980725713057878903172519834176647508310445384532552135435558479935555426486882134192528707400139577447944114123812863254140861000589624414630754235055829347761423118528785763484387409480851354111337835104660073238086701231874776317128238695043015782008716408074532926830395814965968667100373450417060854169906561736169360194503109573813482511669162970517263650127779459791982119800160236794530140187011491143735866621124887894996453250630729236411179605311712646517611616431700627130222087261411919856334434679212633363548624338383802379339496695004867821479200261663082394234146751812283074144675644908706887296904859997645422683345466870778507241366110322789687284247819312500458022072343956208842729041487722900734519932375127583688471287851764706282494079409330462372118134622394599885581195266261664623787383692714737703603992785187007676045485739616233021957509652020484952542007352314522929545006038195908417873716482948393584350242643093285733686908636851739841578769253838618677943464632551386793363525555730321417564858073937039851483787914340629637859633596676615758589571874309300634101156830233405698034199714081598816442572321575565817665980387432935016602209788954682855080365678018582354852841238230269166039544206055581796815905697122920809133423455601727954761427335631803026475469315984231512934592533032879524026664249705588571478706421063987538064227892345459147990074653650096940210354098417879393104512675057579332802339259399479404864165507233440315730992710102232854824123730666187812406086974090029819081551552199439547030655464323674464408542262862164779309630073735926682271656053946042851794587980931203345477210829319144835426020626166393069603096333303138810067439458548732501530572612246878872532893660092023503138630054365455339684052672614156341359881006107235313428258059888697961642397799461609930375228084898356021430217919755461359580489609440818571322117690050790758623825991196961344047424954120304761494714262897342837147859613244186305814076735792409081821679025424463646228378060914846782881294763121347640134203086083884555849299151640343896699599153405591031384594410178428610032254026722087191490104236460738918699867027314892226302364279284210817798126919075275230078935491810319613906075372146734032736797408570704691390742725501929081162392591811849153061949533376736263066879926477365345192532996092608935343559729932578949869079952943032147863968267972040996375288496322037927924027250130744179531566485390669468927858568634413292277082865619057780031688121136095682795089829437618301310822609455846096044380382407072800192836426291132784619628989074455030886567336658900651129803771276274382097799802310607249647797594049187964804252443751559466797261322468710304871877920402463612409254391202139562833000136213595610446723240803336530313190320790959075147858786690333408859566476020954820693878844203683633179604131337765244931348201250209118102552342303486287881089510254876920232829218456689382157781697424947274842331166026842920393128454977242323290894761556653470575095407249735764785568418506047235752511593389704307494768028075007751042278732821098344293071249173145870084002181196209933618950886322271715930341253445536450589267986585050733735957468077725472406123438874969411062764046934531749725486432981903297223420668939227309034327532458783757232330004308273217098944892543517025053344593564312992840365826912778766492738451466868001591528102276705254680515319442886606801458146419468493248176399587589402690931109321899076297079957362793311594096718599046953238965544062053430164255690018644719095543163209864150128694893761856659045617434406461319241402246802687376565575594745027321459167549452954095671238906920472792329469172519626005545581786967395869644909197992890290423810583931620198152735757509457486785758919172669931247507990607539537722930347382987320429569093375420802353756054436827911708486483298592303219515938564591176509105910728342634237365158215505088724447973721165737381219481671074637954246667493139745921763984883041786177387581684730248754186669913713625054812637828033194805280369450825176298186139733368016019973094438561004179837492075772820619620865154763633616575815940326922442918002694533832006474699763937700001568835822887242789320520493311558892673764973248588073960446358924727227152099475131452842428469671854945903332874225683550241406144154488120888805804363028190046187727463049398485463015896760217641796637226546911441090524100540768946486763419561634297010297243059019609972548526716668795170663766271006799446259364271561150659248230638278338201835885109562000941754208933184213871373938844304667525927642486705629620524932995158691131373615477191233730988293500306046564299676793928524454343327568544022275073039740488428488557638782757608251334901127651057125714817977642447057094480678108124290300129413509508468327964064987674414272513376912453536443872399998331245892464742211300269090385320186107475373027331163696813805869125353581627315757271639511605485989812029289280154380379434262630187685020921529091870740007791011574224066949129898352991248741117499255020166902692183776608402157089275997022079698378819079906558272139119600317422948798969115300543029542155311336899926650236484444437473042003125103811413088242616546006299521592121601601005449918439188206601238171785519514816219818961408541582815889621849703335986056375847480328768672800974891490883569790598747428695841052009343788331093814510125430589945472415617188532685271928057686292551586199255736662443413233201300186868824235916278019028144698527874013905667631288271247204184536220773823409331876546499364887471652590591831528355457264559293399962873926902025403370105761187477939985575845779831949467805223790511186684313598955664501304358708096701364853732203049219297741661630585633023241974906595095199570783659458806801662308288986733700260944093788891466488745115387719666473668953071952181905553868947498906892065797375035288407089298036939649859655807456088678242995560409544130645415723209395573773231811243871669519163280472922216763663624780998159547966418155415972707631855789948875418152216590246840940228803947730632692045846897297314467207187489490034985064669358806179705278000804655846373827735079812755245395103227916101498881243880860800970414000297112635559361441101173730854256029235151615175431227838082401295198896773720320026187453178046578793979282629106861607427399250393136260352678636791773192669989622142861160508704280616863731685663263349841140290046802158528660737040360066119649563756151795490318727701939457454431092195105958845661295650656776442667874216776573617960573491340579371907918180741043917421604019097865622051248777554700839927550683329557334539856972385941755685570753969555092936243141363282295561783253316014634099898851827873042033798161938717611080979409986151428472551125086846601694488334526283504181161649307486712034813452091051314068587240376180112201338134815880342926768811695565403972871589062640880046599930070528044806716041734791453474774064368800522255611971337112384075362287135660728342507073110390446084943688147287858625465824404435059614174699776790435459554087312482813047721836077257307138000428438191362189382042295922801143567443487575608376558789429138866930394639380854143121664572616710995436116681697118655586781924187774827082444053146175848622110076064380479147388897998986970798377603483509226169890047172334140289323669710175254373873217401090635462031840020244225615962458551397092414506964654192187003692039243736175438104217230333698785478479813285360271287828390760074018920830448799071654210722900533371212312106672249689349646835780022459493502527192387497881676034423719294011149672077426157379755181092490910154879865243018728070993497678863277952988655081256575032444420687964678632818858879239762634222591723714005825343707311796952885568708278300347335471886868193798685441974574265190243768057097308316638095127475940609432738225937665626966022790636661677093743042655403191927300254251627147426346196453659596469232596256129445024149161960120356018900367853185873709814978366736420609742165412498865678726528449049039759186321631374996938656502960696711656759831711249916555123866338618100174727574863428982788359733103448602298321511915992642406706219155579235021431947111930441797613506711736742479171777281316322251276141402834985658786357836641449703227869344870882334810756744605604545447541035837904059425471868614232362227964259914772069023021656987270696159405035895843007078227208610149947879103712722537529128678991059375479415315705006542973950198710230865531599909496237543454982565777247057076381063138631817583043281530523536285074213435429828125830682838650962515321426314504195203743243581540441660523570455808715556814494880827410845452924649884959421426837673836112452791414878230979117578150385150517171637809165375817868124380480343384074188477003335814794205867614125815016404847737275349836773095081294683197470040511120279974875175059539947830757125172196696123978092774552413671705952148924434023845437349891599193187965735495914905987705084783834209932425895090602905239923225869087213222320666897174681080271793767046277090801245512728573537256844009689899213256147371050250275802787224692486172663409524744945769336405460422550991597445099997203741963393312822632232810862985260279265547418841935173345101684629220587359111024783328395456404611143719288464403217368133392455738234861298136707594974839693082794467502164580029632441252562382336827587082721709918483674149247920396412365243895202576674352351819200784510177791858545616674208790869339925582999059346084842157550466192174899501687439731553788217052822403956974821398593971748667873456146083815536032523701819206729259902006552562211341389543832728387229582466887954766499161150055633079012679628506923147440562664939116193505552266334226570216237856753604602226317761120250467787616388056806768207974504055338527490104520458529596574023245286653068772405314695800537943985054499197461181473704946370393204812903203402591597612438059220991197375829670618431148439963960291322194852989208498003657388523812191972605689500308681086564553849399489428039092582095008779646393075467763837795561836488640640979799612177489361465850193069586142535601723613738527477910897999369423609800571037746635853091925516501133898089587474125551855226171564334387537058835537678791785903368745312526483887803959422911795694479803679806280838342503785962289693552631894807151443509642020366324289249973979648602775813447845930995969411018123149965019295264683985774382414075298782853772880261397796598475661535327126492314041363397402299639379011352913988173135084834446742202844801966854846335977757900428893843290794828621460092198954452412399845634687871878640645745346764300235854295753559446243570245641461624789653929282556626118172450572744869525996285843306598622442579169637789860485779651958843850362679697506462643134974119429183814392210737998700064428493548546487427652032118829342398442961353593903890196239199018698557468335643221164753039732255780378694765325635328632328563612121786309616000129572289465924943542128280564766145462875441550697460659552357506529994998750074557855844796277628742151797510305874187967087368789071943517949166439253970973245946068064331333675262841778780919512166576431583145000073293896121961758678703139017850542290957844133753593146498938374519075765648397099661567580977070333149108069493316725307599715998449975050208428805189348307273306063779384385772129565835044037766082983478249616250274699042133854142054413524178370537810801787771484056229152979584572500592361208027001412907028584462821898605257701534684795860673945832873320417433613790835931410052106658222717482350452105972125026514542269258112665966233046435042675752838385082872101624764654431205781510429091704967800148908828117303944618387367431510892714815099626723791854016614133798119079499752810627118900349326732594969767917949449870523817876422908327780500561275782346837678912736468958745300851946699393353758460252349165904500500785448814372612837066895100613388009987665212696243732435702943811453193793655242719796501730504850972609502575560578470539886000929079274441801273584066023650558912368402740173996562373859056598330966229403325834522141993140273712070767489241304922014841841288919644843819421444232893871291966667380596429599599078812493071584076176101321297511048938652787932134202922886894561074045220448090337775780533229021047403266427701010253879600773426595484447765967727903475868108838249216770388074300921320365346701203105812958246413192464972490020676514138734149635600791917300660954746876670372474734276636508981555861322389531979035066280954029404799936620051920409174568410318181131207183045838415360727558663214794086718873147795432131461183795903407390867921508513865287448198172047486652464489989595823115358430303891824749387075019160644427465795729677430774017878324868855569986355204901068530188964033521877251348847993381289568212494848814817339178681341728841431024787114812058811699173864047239957287063791671452001714035376913534467921744951770427825256514312318735863939537532586732862247270809873757835749494309212462876377860235033032990979147442366140402086529675276004643931893412228158149530773130937941597135612900512362691626984873197904178467704272611941125723418287558628503874824776617657617260692663877568116371822801547739649225440525080084838869460667245415357993514053745862540379822572087217080028964558775877701033944076143296213412209464873868565442892838043482025539629076063929694772581360184244377910354989504368127118720358250429787522700947122604326802161647567700115187117563603730563190393653570489960600946072957312467587923605977119326437673227150543903574041712549172165088922767220167867523810788063352267122941951672276013758734354860421517118054275683579210543878525383790872697307097277191350414754408845950237397032904971756622356339661040781512612588856492782536125713673238037264077070719878795031738436279306430603845524738612814640396985266002407964086552526015046490525064745476224952804783433572455921463601999797348060564567438459742972070216282487545148282474001645819489545900624600884996196862477404517675242440833251961840702534767842762182342866875849677528014544249845823845475091360000688598402292557414063603203437793648238144152825003197442795267696142644841201755582050113763415180353360322588190766607069487334836422875906759755719565106529792909936504960555397332932995469651782121937420355500698715675143652642381723476607331045116819667591713663809373441810192166833420392453320863232122517349031504862004129904844244156689004532942295647536503011073446145894100850683531866266407248544945413067144539072702049677311004849164350110328461847450645485576718871397180515706983244331068646879882188311113961289600465476449651387185516475052602831100012724205134834084930422555184209538493610649372426689782071917193533323157605193852927753632900755441716911745765966827096728910582563200899771054745140690309597473892326224761911413230336087127462906113931429082662817317747245614754567747285362755772475498514685673130977425902497861822473883752637199456203991461025450250757291582832441313230518856937336665017463841484581566046107043522571838720067411546296461868530586086626891150642662559024801968110492300443173830422574177442242081581929396713443888526435491958215584017638236328575001161346257077271831160179734403645332572810617148692328062952356991705293707806619452382162995810878072208469866009917358159730081012684210289252908470010264578839906605240804759474853372207335153028324694563688359728137068792970929004104141797773827333029610029957498157531933919684315663341639924372363975253369819630604112047475923146194747614928329332606435429449284044604222292438974010537338424689340061965510005391178924131135219947487019281370579189519919266285977157219620205571305540967510225172375058990492184775080120981912989317520405031648514500690571874899802854690514774427312392161298668013494571635570737832936994870845240943806803937006592850866724832935694258197767499724936468062304207592137954996504942528357121580072598056891673687550914377533782010671009688519513475874970945037080247258239175224552513599915604266451272416976719579802472611587972714994642241506348156385528488629408085445360394399535027465273759225519582947414261369939570628467634972434940706247255451965334941007761309552331279892956490877925669122065157532490857202362629558355364127870872833199103661035663800773465513811393273446093614863721576719576368674605945208123137617781947529105307307084470899648639965546686017934653829528353594680680443868487651115839259111189905666776004494838378085688301089951110106142951085757030290961796900607793132430273177455730400692454888517730761144649556720224025899337253786307755467577306172304377821599949601994748869091865933428283483045371499209321225475252989846013229469693328977277514643358202836528205942989215523048882934649893691019085002421676389184625913276053973439666235047081189724545495710831962008798968461656799347038294292305307992704150927408635864260275304782175776419529293324103601847503707832788251083255764278437697728921310338164513732475116928207409849832123041313079279483888654375150608694822031043545656332381204732888807447749537275485393993342718296102829293539680240744842602268687138013751686130676293744267457823080817711897850277816913639344298385584375783806418839054078785250548207693857103908230371058751071328747783882939911164114905748583834963204136012789145809349729601702393387097651910031239612452429298243125603227059461865738657687578447618170050099089162653020669790793528859368015166864236891802744240339716509811169789650608449776241201271501874242893439365416535890033143694700282878106210501604176552322310722514170538130592616543216814072572229888434365725091021847132206856457299144370582939422261473113343788026908335627814567567745124332662343160622582193340846088564062955194326166138183975744199331816092674545129571167809490116383073239756351483475938442592039097848353424872408432159410811887491838463513608144211934292401132796492264242784866650739666975974659424044986151602867226458939144184242528396469849680981594835921474667044263518062441409466665417559903274680865801094307206494851133212393334698346994000771797481079049048364751132714290667131216517877653495817158961794448565861981561968411954537569393200584655256336454510580755725700551254880463233343236088127784594002730793089485699761304225538372071127801799088054577605419832499044548964282920244786549679950752276688507828114567141581188582438762861323886172726733500479574298900567403515287037811785513373140766206953566245759977052818622512348362631545293502136240946162611831297622750557575810319305556321254628341222225824649302550479990321284331275997576973446636491845014762345717708438869571206143141722872064127058446360270064343729171357958726310864650780745957136106632853802922450994448730095324198483897412842958745294567712990594802111045713855402287754329049813363999340995886598679871909275938556749979318646667588590637794320244485336273085926593861986449181067653281552571682533853450850082442564696488583735407656770211306230942466111022101373574837795484150553047706590822188340394614872628886828146401314795931959559313862603153518392499654075767233826748481005160110897177765468281269420748545455543996074241715399955172193074151122101654934842143290411049020889842236065094307963679160102799869781373745734942615359972178631841363765705703115013053589281670985794674429634421376865448463002034981542425847579420075266040535224354106929771544438344467762173822665666088543131329363051196609787981742233036602416383866714083341883551907556238084671717283004153754647796441401027530966804014951935324831511935557471725484119391182168962425157015561785226628829093227565062714267065754378345478845346617421694004341624021316954661786933626600029311684231040672345543286498819032489209397453029322644755014282705759794819519567317309682731970429630160420172695889135947033865340495899632137153275261897974428046242632154859376552129103152355713753250234094600725918212720408103321887753334233071611137203765659273356155018481180100647863910967122026815639177718597296847616427548604052234261751458877436106420627068783618924137062817114814769843225104442789428358863093077125728724828174993843664979459042283443761227205647203351873387098146566250921158032088038816018199654216364330132240401453183336549884564558225003826602163524402233652364664456274477167520657984984429289283078219317172391313213986940320887185865320860795677373208636506571647179184976430114080015326362078796282854474772176010162369057165002405827298252568581205656329572487627484989816397411784276177460200951252621603231131073922439450096476948909995755639312523647577726717282137966676017962380866130738848204401556090103658307706869770292616020857787331920912964669917353014955951617509392308224560491349050777574418226756370891776562991091895823872085243454852549990642294774355522807235902350347947654338518191784177893797772552023870540419125504849375165168083093245479624234052745664372550972352587929528530425185103773070799243782455945495691477613245936971470531435718898852189845395293548442707813586371503349369417338593712832757745173930518437416734963782137011773265922872531776200282421654669353420510538837778523699668691422875634213295024844312167670540576522044741182003512377244895726812920001022793463290467178407689356397469321400574536544937142058755855501046584756219787292999671636541257591249049110639316021715294483157709599937974143771503625885512969647602947028251765319294906129443347499911676455086231847988561027070039858207499721870719067212294894355641041064942957108451458379190400270361158745896617524293563252193347061441080496831463978165979546579966500119194227245673617667380070809317894890333192938993000719374420652467599390312358877046984032819115617753712184262472132291964336141789348368813146953360140349272363135867364528934086150031822207203419846575263489776091825527260601119158846061656815269484530085003094012346969719244307258090918229522580425811006708101448725525197516412866596700862266369762661614005739376576135658782855010573381237809771232608858579568478672773371491751557915370252687806780636736110015019934328968242476028643324297784848352431168532751336959140616751814338242868575554162553865163226185059409973082941415382597321907961924237961268072430408105318141280139283546272717178877761701428861669132781180148251741583809823588840176193963539907611592961552621729704252770141702773957554664383167389718357796412986067126220479281874995906860387760588727910027734669361592507238531846275481102079160662060736299196450653391396350454415265045685367285166209400603895810688481841506300784502015933707545302337782049142466071421409444201816845085769126673257735192134088008540788856780421691724937755547425594139815363358767592906329385944732107552246766812046703765217641509936198956543809135980734592318999467727840258183161575015501602591470979430913688197215403213893086191984220786717205952271430477144021112940408570178163145864784611647237196329595572754497364944198749682851423979763112012408651422399237055604966963187247415590811104316084944144233618481718437666633580161420635857795576025264644620572871964436399347931824711406909184000343503676866305286497252142610600786074161683000622751313243584045782603469368744589764899529373243248880681707611420727691260460836311331194030221124311551287458702890694201567512431782705500937451425863159379568867600229734416915673496707592659246583652877297080219318423210319176441780736627659470222709876795229943758339133529925651549942297408775988813718419334312687468116476904286538309866596255807045881190993817752706662799042893674963710180996952228924188725460027178868673716893144755750067833253262842035314557328857952263588075978419686754362362813317549197858809590772700866291637128316794632161710822304846976377760376129918361359646001285486014903350016862499528389163182222243937020989362153278060703237990617689823650561771313603724995321039479494060115018678646078064591073280227645647599005352530557337637304283019773401152914481843337268113394124069283927728261547043278228814158721927278944017744817396854661433604273708725771493412443358277778340551001641585940216374900523657239206970947091467147381738724635439205560445898106249933257642991180519507092044609036666214740667447249025812646539491744939075189403236389806070007514442617119619183493604911166987693255215762000518364223668156958818528104359391826643384423075438469584398580608493453614715857329387585342265381293792361465008140540926461303270747798161875926615284922012772380199039419178264077849806875653487087434390901529086235003474339720859723059449053793848885553709392631071741398933841424314490632257354207077344938762044015860375695540215155070170851265300372655128042511251450209929713771794284493551551252117271014920044399200427080872446113410603292658340175479327831137990722641123860595220197068930621920308090893783138222467740132917987546175168899561242256285291926000280531890071193269540374595977171781302384590121223211063856494036787384515937337439875716393767042266422234228259767409073431946572921849038948447141265219293365753998236868070835903923838342526921138789863667165654884187544590117741158610102215297742401957298804778846989160641996226370914043507019425234094832994808428634037655387618957651581177366170624626037791049806790336446435012369563775772263262086612912194955203352456067900472207921695117514384135557462499586873777195004341507964839671698393499862633325387196124348723255445067685268522484514719637695612885864163593544164086528471880560517217214817698727489698349541497560390909850807567144071555678394387384197438481240443140980855229072480033230143477030384229183711531189529693913476811952885538472684265590351677214378679665836541866401104105763859997931516730416981852193018212879577706327458874704730357958914711547758836175991336109463511811927495254080517955104629120150849068388627752576547174758430437228493318345900351036795095733120814903427467007570409082577864464086522631666639388575812077843095552944466233043703468216785107020579856154670006218249649043870648482637729590219904733434059873345699024171982952204294860878383162200508480254571685830017116984344488555466994889293945746342950096348882834204100046203907848589390557337679481692559097149570418862443108139985922190148486082779725370508841207610053113049713600969554953951424351348042929834097104194747503467716713060950253441604710347354603522914113839775749929245757848421142654981523116955743628077767219762914692069999495473834128702318376195039091277314174288233237867877210463704793127042617290875558741810006025471644425411258046799388534248785282373811388663688626024522192807920714658786507555419749784735923328954209909452086936932886241853995881742236956130231873585014212327757238278308637302628246003077996971253169128272356313553255429336152275578608211528083754177276393359483989480972757644554667367218447220463932242760262449188490172008823426377664988617571646462637665778840162687203583515025093238112680413224527774629670113871130617683224437149346115597163910991083622688538884847037999823966041879542473503663585952130451687270980967894865585340922844286324948936001342207955968740967092110719683856558205308160481519022408560621487741235510235299858107927418921472368520360212171399513851410707937490253254350785997288413483911434952219864948321330490074601464351212543112595739473011425311845709142240807261221030633187256717932716815560924998903813733366960257521334843154895361888436208731274888674781183739847393137500771492690114622196157980470675143505098133528364190975909061446472922766212937024647057090874450108027231969863517024941726518038367327628917418638221492085392263763829073059417396390754958886584916818649174377627828726191966050592392475738836587226649359524383297861404378228288281735963126425743706119568012973560363426377935627613803750790949156310823816892267224175329004525344607864115924597806944245511285225546774836191884322700103117612805717018574242868970962419817195252718148762975712165437451988579473498574274546471260011645012752763452115732436419242918792944531547530410956992531129522404386290303426105408387047895999340390182898595936853528808010431527289400749104439773506263517929027575774690635991528506502533777761299720297342901354984930852785034413519590122444392416398971100846454621745027202009904731169558323868795058523214326399134037883814527077791865602868950688625140829119357652859957051650691518056851889193177311808193073598961655533196558203977072322809646793508387339448417011715882167993429415404539199542434625434250294324459522187487435119738410392200215640829498440586601413423611018752533053692030743908651512151773092331176495707539331554585093942370454262273926817033401658356683434814263632755846260325421760686305236257218711561030338253929438963132818337969557747609640328184548508959084582270526817007528147802376769414591395557863933847016133463907661263904964657393083442602178867709753654132857116471150187183123417499311685656491239335221049002857249583068665049977092036106883903258147291922531373461105568144024956251337895900472501061505710075721609621445560147213756162538756605108031744995444777111958113484338390774551007299888273061771393008563658352229028906177836811937511314111680530928248468511423943309116803786417690489906809447288896971045300898384451657856186329345142066922853065240253013611559879581699827886841481869485883666412183338898197249457312414168728229633148088764911798406780936377746356555947276798330783026241131051186577368018048718394786229796766819586706980660223879694151891226235686588723427046528776745158173469046918923984533329938792136322478390698841872867397829318590662682875586380497561344575000063257971203487311772870326428729778756235301759824997038654359425335532965036455392298175014141915930274191669370606345700908983550631976376978307610738316417555079028431416625881306491942592166219714087707867125880669202114501465811661344005822173777717626847628857172387255361481405117699023264689998160820053314596728043327884240025325873004139568732744432193661328953599749278553971675957749898848287141115965893226141980610655872891613466974257520081176263692582608628154475152030588490453062438997510513852532554479362279253091519624338073579614091388187099261200721746788505990081407140084963084284155193464846230659341531989304812818880736741293610242315788058477982822501184111142030010045645608336630667914532796577940023763622282864845136339675508638182420296566240085396276929712735419408945234478936935191809144055132525806158247733663340549310809499812560654598556455930595852386565059421045595462003351893426199830056721911408930057466552160024890444665815748092836323416441901297821296995583380544647737532013726269352121214369462750498384652365534378597055151080808672333493237732757322409601420282168239614997783453026880591668023749052563733536808902259941533778226300514220070673377527906863154682139044232599413709584577536543816183674772623025791647930062379761637379447886689240064349791263544663182047736662228246758889169111592572696762779756010158467753274202524353470771207320273902539057764957200897184919085605519073070919984119027377396277693392478635703645532761448422993653483143977892945406012056833611190301604069240879214097810567153400855115038422727752644142496768511073381055010042074426520689354234415719435658582925792061315501440145182419163350257623023538671312434294807554635723997187470380380991673413213595357506093740401546618014220856856010878368022606275581270766913878440523439721121360710713922322587139228757300686925566515147277102184936476062245511249434588091535623440552456229233579036691276878941189065543775082408429491406130449722934099259722502962422738988833894418109809395895490783391673971810812924280402445373933774013341499890863398971243949226553128025346732331453935085094800830225818890519211236128614668069543216541671226564813432023019914097860222027936866948157961671608738721337942412608570345055633226259965977775853984872699368656471603271503764570997556791285958181340668824847451268716889903455412603789694874168023974874341351190955514138491043019631979191925395291701627621524922712748440157762523670451187867708949158124512096764748701293625284688912207544645760299751029826783210985343725213206292896704010040940879918048225124713290364474534363237022584543275228648663322457500396707732759390050855869138349397341756075112337133426442082134191568347094789062139579642518274795096711559250801968391806835291507280104358871547402219113495690805101681088729893631640630968886791033573151578101088477142398502189383823716298999872093881857841721125200368835826825744671142616826437143233034552497856878553660321326125736063092553925632265017505052993963289612990840878911496187156088218571666223766045053004145422102451669671326497320769223840569085552163239893849950971071541164227249552301611049264076639527280284884318485310517085692538491995829535298931585983805788099512402450212409821418848345865613550955194533820984842294178125204976058388132058864881315497048807615981182598163745344627095310786400856640369862094104283757077496001435104456878154611156436958600631527044267519580447165321164881128102950886611088658984843078810681878156540815045607026113422530165298315703693533121167684281692060308278196251762037897718057839336511488480583674667010369662473634491910556949744162359204842014232713249047400035761711690404428406419721347419085970876790644015698520009260945182003472546863201973494658057738078345156518410018505888263582754842856857819033502561518847828278800522449819741251304906364179774422614694738946747184198788215024205165816393278932712835134016010928656268747054063072203583627817119261508839397465498012165026658112650373109952874254013785997308227262975204384458592266856386411917331433279665954627364235919839564033964086130384443687068948841350487496612076395259258571766352403440874704105214070645210174965129951751061839659593071670627625567568307156176933331434447471432074754636875094611436716055765921873668941593735583941387591308404777400199511646164729784097106002986311264753310523330931689501476379161128826721865613750193303914544448245145813642666051709111758932209144280878605440507068569777963332901806006610263489786983572206000558038020580453686203877185686490497044156159838579731212427048473262021378660772445408070068950651469772133101334019657676297408667423553493182751525255879956790926354775180322039127692395003826224670785985253421258381992661425007291476275485754160940917541831608976362100520954822528641957622942186749568441715089966453762660463061319021800880871932303629319415002038419214804978078403376064098931025987266736016039622203143500823054619316729066035821680479005414364191710043019281083125933334876093993190704681923251236012865414299418568288107954190489425809924865171173626220368086692139839944532128773066260038377762564207317181623983029815125983317624965653427419417232611953314468897113755281048763979654535845407713856916305597641694931195683291302311108319909311745568450166563131916819844582729768299476245193723294444834017364376406630865446365697657721843891558525002033978297611813750271683157124187702610478798513922399489228561749238547572630264440103948299483581347914165521445771071542681850659568700839293166937479359012869856687458983770435385712061876804401341891153679408235957466376743415265157846053673521874668975569530248877746947705060578294337840867048805096574521798079231532702876616576682509126351264344520225714456477071437151869037566696154192428468817282400586564367101954753838513166376919483186519345506332374984181717650912246615406273453339754230662868665496871917767289907264560402230524410422895259746718616995610365295312690670765183343657100120617881895825469035353722329608066161296295216584944942778213958304423634639069632433788124173961886075147663896517611248161746787101238994747255609294193660911886828799262921314746676859159347420105107232631405208197270464400530916565654621438097582967327322622906764600234378190896653307933880931353052644444943597089782476961562860882659085213670238191880997441491610693907740380663401199608284180137069628007145436940977935831343044546869211484987673475965590767514223414192343712472095029807068914605972744235803434693210903473704769554684323464553353318900737287131270768556743455504466889965744673338476260874194692570941801256889254570407479000954035929395751727151999693047387010651101109478170441640906097636477463080459998738542319781967400158668867128331608822515721675959293595906841262241249378621756184543962107319565773181854960999950436297468963900897971247390259135497179668257010474141772229126944358143234085845043270671415113416684273510685458568684572234799960779969012774769882921842676781732205484018363577636221700039798485934894058694287996124107694600368520135923941024707173235417903679076064215079354166715933378108767636642880277740563735451977605865446975707642007186748841818557670282898969608550455806548033400476825074146339355264926910853230711039136558895663458571024367105831706058138453340046270467892672413051300114171281184362454463605183408168294525813588717178806815012004535686438813140458353391539959848239777117995587417061559517598007641971826936774801597698222840436193317284127343478767815184941154732833988134875196071788783087552811898353912498534442554827018027451488048318327203025213097733798180123442133792604634698559507878351846530699176478436579924458621126416551452342873692478739430130073896835195150755869183630780767599136330899239428946780686580037363068534220266665469676344275612385604793342310744402887289038440906579394498301310934444661528540536345889899127754712063311071425182288895688993752430687816864416927021379550538477639111389149423537474857817215654422308777823590719995431643203613017342007099226449806094174556775688142093412992814364040977211963609915743415659958989353323935648874791734976435077816734088402031180094305307014385293201752272473379727213320203255374319936201137294311025567737628585989476107773815703048566491958582837563213092311584831028202656013015497589413429391440100848808321440458501056619438337381771947353155463063429160945826065966547078396419951833622326385667237134925132818249334415624739256302901666418443699180763623299853039968503317671759080761275630901041912523743570223271842704028189973927778362732543200013549324265580637010753523148697931016169322912986001920321800445855127178227591646314973769451556148396994457137191752585646832652819409129180476920624666766202429387795097802450444502121633220884458556528106934100743592303328176748368824252864683938899471061113242107149938498598676787498377683910902452953989002480821701834304734500455443715559384816329918747916536850056869777987597950077382684415676323581348108530866094204896658819478397298686938240257993649541723699845249127373236253315368636672081540846972815711765373612656729501838427281568352242773159574077000468771591329275677182669857749438376302375483515588397942961757934332074954435505279468234656577248896150776687829715748884029753894490553786440407656176635777169172187960475698886223716971204436419049605388000912462013822044942649779068701341444449624173137453443442520626891893116268185586338047729437045733154206182960871371228512779870342967003882930459131187603705106847942520703098921555024368188880435435361670882646160093579501180685745197156422726868996259879684366564509432282234369008835632092763037858910245756939930535371791457468245027375234669205947576607766871003443192184315017287964927185287877320612228625055000104152649609399020887701471214029337309837212641095969511308352361637957921020253215641895090255676191713172266299697046876750710205783396570325435956522562365211345413418525741155221658080945897171754808983730214246765400565428940484219662824429498845935852966293861949540648238063199837499183383657430688013556843786701575166270175322135201223022396202507656459934479772694946798230352939674203760190386975427490432761569659688430239520436939555078342617831751566818372926685176973058289628276393057269029897045022116237905982942549767530625505244544344612027666808468863796174934917742774953816689984222964793281474913729037985270609925566758674587490121087911521436685856139132782510543743728797584890688812361449454431453015720034574443257016010399303950963500769636419914193326385167107754458287327328250738713696642276440695902197813588251007476398920333448988967792947577453392953322392623783799656935027151215459823996752194736952422555167223861152290028736273896926352792686749913267518074510580945399475569695411682547580283492666421154366386591518934494228112788933052648236064789098399168286093306563486204262461481498582293932368570083093852783379120810958079893676616686036723790668083228052692054553980279009126696262085977856643333481588089349344655269761420774207170658982470959130045528446555583861598252091230145375378185072955517020551643525652962559681600659613164165238469995143039683484357101399427141585712212565091576194352446500617867748446104478888066835600378756347799967133075102679064876326996664583853784189465962595062857444223714891750991454662276451193238887283334627888965528727515626747631252488948969996869073785072019376489368837586146520251583099357414793781824810910105224744308677491219756004801658902217575133977766893315578951114577961122657348475116658737925944675132656756830194780321257230168690514938503154572429464449778746262949416909062589517562335145815944944750125514295114989702713484758571665083089969393589996645476932516750497667545435929925964845213566579761869677735704589711925820406807198532414532414175318808594258145636008843646405383774494202566038249935385849292679734693739084736976148821457386494384360217457378785086811642789720894973469770658123191794633034903144207368050855196067720256542462359572252494295982160699463573305729324846801132111087787934446561364764538979369593569508925337082665738402651242135839243266479124436614072267762394305215049158557441440514168739685537492848304638356234328831030075407502435295456134399645646972578667044001738359814772066092614318075423397119502592696994153369563129066072446447227819735427188514061909632366961485441613226595004220091654620800285162210675846098673783905164361733404110660409479819902816037592729562411888425877135151419930481835365673397687637450803841436498257286830218323956938187901455868860986474047590666423196126772449750458451949124411560398000573184101551478641432179705035515011886348568552538073035966668366098616575941549604447464541148133070335938041345558264425141574964837506835201149380412876906477460259536395128877689459514716830215540082616110874047145581716824975061749899763724941468664805820218394293005414084897440286862818914815383100161875251442594428795478863890654821741610828035868786745815289617621704053908218773898104624877427800183590284362604835100590899117075326724783768235842304552215111283173390965012467128541433232894705684118501159708674223594684429681650368125581586368520543199234643192177310200630729081314497767265951598181615001019721936146922224705853912941695512474808155231217907195057123532600728287437042822059577964256317932194214671602952867421232686195015336129783148278564314274696028413752592186423010876353135352283159003734128018013407505911337944123656015107432516070339517806351102896797269752285841197260284724835347974942421370396298488030450104625366305096871044304892030432252386784056904924859734933107342114921833780287642986004743217434081036544735121183093446436831597593977212931306190807466562044246955875922433016315814465964721752626283304771148873987737087263436545235010616896007810632252794164746895672787233582622406797271586797031423226357818426102053857852367887110435214208299546114314742216540723351552126831659160227821289398613137854291893357836672862775801955044494538189726991835629232735561698940534904489451134169558723812384985826606752562962993434931699955860765354782956493694832111033748508331501210767607833269628610789156722278961937739383820019781375954094494984684108838522574707087324903081617098732476704479608618795511221002730555281398198531766103375080717960668976241319640422274175920415593540185784154364245444729692626607904605927583161613220871208191823406622314250558661067840954446001312827042973144700607639895980097929571299707571874859508659628555067801274998067530535332070607862778814616488384944049420190233414254182486835374794765583023400062990873272156935282321615768924949689990931958728212289883780193814765609232443553282419340692410570657064391737654989337305125052329739368442294530405947158879004516824878698980823376921517165210724022785481724447802435505446435742879662416136119570841226340189911650276641671306465242462696241276586698058188984387386260045512484313076445018701506395455447332232570326262236462327803710013097253351843178930809265325678657583837959107562644567971491248456416114888005188196506601611787877170305009739996030559059956796447970439385760512677885630145585293427136352622698158559144667649721267791242779361759349884472177982043037224826826483048226192481391206707229585174083147575352577266601811116831085472381883118429058429266814649110142071284837150977135112701163078809008171801994273589954964958137627458470457959927307304517545162651258407183939157143715539614054750801939610088601535467325785055758897609557174676579898191821219182662228067230918562098766643116841354955235787111838082055214848154403782286060226820081272291695613559423908122583027967791646035742812132897818623322399426436210963577053572537011970479630272870248613250109898278668593210613629994496639903120934472599762165784141179320486036678444677431395896644799234074755292237091116740518509426444155160315269614075991529417001372284823360224693662341278632724760940581771538739342881517549719478026169179110439017584731749348954987453752649531598198710768683963647970065823450963741540599075764521496691414451361545355516876270708242675142754984386225658917762740466861407532618705726080391991179503962409307843565051264798436018598677314840712033115837258460455940232163430688677855086971110355687434391024519606043728557324674832598122907842135060834155023890951744276225727158937585080474106353375798308134868383742961800570938730438117257782190436449310781968120084540547185456984698946479025790981492908153687342319545316311421833484131738621488162415954929696540495556128448476997887046723759781491319412805301933206754497213782228499795049579588255675754706997032042600319058781658298294951277686163905743731639437203335985712592994356499466906309699971735120164446073451601363337867732166366897505003875823980548509075822865543042547351283350040901520021528094667506190307724853195221115181026143835239003874237626298496247845706512971960702944796651918044039848790127312394982304418512777234060754542685366937511397148699056300918697919527472620579051533916762338948677905086227596017522789509064017291286388991190022574678571837518181795322984590169949198212986037994193390711450351968050043573079214843527003226311154313788269718145078912482159177389121552255685141217153935242581151324164067791909336717118200667954439729411733536753071475087204339364653563904163426285245464872775465207025894383436396129522804053739222885479742980506333900223042619203786988631941501703936604299901045518153403123755964400642369957711809746513003179535721069685144492005314150028470751622455854464380199722280876308588785882438542499359549841910568327671238884349422849136766484127143032499631867691601437148147324541277950241415123787498918525885623946953659057240641740459207155263205965896238075421787536717493284273339262016099291539311856198657749905115445962912905880369361942839482346222691254689551519515102001830965829692688317617794599792659824359877415536518287793012058533965952600451216046034331012145844590208542715978330439768362187188015081733678162902387223241361338255208815252356910191476369946551453383481608754123651389641452022409152742456551599212063989546480288408718569286415274624768721624335345819488468279706279370050936348327536861647008179582550411744814404583613720296326602139387576097403877700062052047874082325455644096148209345213017991808518863418365456788020166449517497556003835297361678987216938295098572649579060207987899396749279163693369613118777680029254699082206553664795389309095341378106631145587536525405545017672235782569580869651528516909976225177660413061906446483047831991141452124131058630386257434636087130298459920558585932828519658223594038960183496404421441135477003233049089948496553109043668210041369689275781545547758868758515413999345540240275968553088551351302716966175225197503821031695652579562142550563847662417809774118683421831779999746261336054662666248735600841154365299245618502545409305499292764712679509379319278910751628424433062025046578200606045489248954826279764966196690532171271076202669651576089044149768172744471111275372453115463192785007395466499097062574159925984742447659980969178774671471062481456098787474098284726311452573246949426974723284250115025253787063067797683085360414346101405541585651434079770286397645960227555796239638613147028909020240220576278672560277845710675597044290216680417512008398244242605518798138292521878337850599358998815350468286299100186331508217444396294024316082784247153842812002624408191616771036819365039268414708815496270135129824977442535208440183157012117455303896499696905173807320964022314816534626169919185170274628764177743709094137248513884506587986908323082880780492781542377440675377724423757424646239940772841705711755554018721796794999210178844718021411680251215426369266403631398156770751967443130690011012881005003971694073973930396730518004653760426987277301150850488111479640386407991282199482438810013368513166990552989499814310781166213737232212323733499543403519683591345873661882572979449825383632155537360061005410649514441753538189552725106731677556106178929436239623571133167979738690947562183850092181715630001686471197969544221230160072324420914079459658288310185655111901460880399014818842873206230026330218598730108411091633020230978136337316540702590681677261210220202016934339992066001317193851384248481886213722079673764519454198888900510647188461984662902820114140488707853894525361886642710397683403381875791781707693416835820958197149620529775132083111178409376351237400813331501556237795436918762055025522004523349447819863380668232552348333824783961410196612806386770137305371297156844651559003567980869629738498391907817970672358040204723555699610206759938686585761641815197288532940268870707327631873032369587568203476660925860688991246636839196374531194189576797323951424293599128297839072639959042692820138782082370314012351057341535423888980990514838823698580511187585996628491497650095865912075495736603997658349875965399920411796202870022655611524449178972140988223562194733868916158837268324718066446195714726269152910280816888064983442637554929558997395175015585173909497211962232054625250308479680390763068464183658923864944977572084578791364821317473055573858275564985708636824866364680012457551533705245521668297360860424669997594272825291666930066045614451245919698305306230088332345394152523934995063703817840446022868980934841483429914519984845818330439614983673930420495825410248555843884739311725621746327250034415037232979735137862121239970656553601504056759626398147228777462550337796985406455303878680216925824009110359464887315177401438067250021476729010579893744266414226850920882842954195257481695549018665085097220825388462694487071090811374235963480709664210153895745760024660123025501205429935838212506671726776856771140940404224664325778576637895003479595295671842340426005103371886636490732490888919572516424990234074820124951310645091403214884153556241335499286892119469698705033304893520447251822042008911831273902832958599938199025638460888956203894413230642132845848375543524251041025610448339404280993576141804556261749644547721757006934691853151064412324845542915508762711276693530492230551242894966650007096902092327878823090166077884652410714971230305825959051370878566370936384013383129034215899135102005846673423119566426723530740327379765716346278180007600082432945446436432975982102490965788787361779537998506548621480619999996330920451054740465451200946043252349596351437299501030432751493539892904172263989995323820082302270506910295674290155781983351359079948406007808283750800735528393866471567354101481996873575914509080898297453915296654975591166212353026247269661273303960747194648188131050498011626139181019461656781864738767096775261386638957882598295706338533770469437941716308073874972824876908594058076420968766919580006552337776112780859400818390930647757522998702566719170385381131129486373373484929799607791282628951703147639170430079705671657490748950758343074220789984128702193117548529938617739200422685356962139726381433849219777117688004396051571852523313515344042604092792848923612123365272105076280486934315347663865660475172970581041089455354384083482269252041682088818976282141565469076970781483795902820314827495208622196075459048677386948782581215584554829321949642063799034368166354423491520763163152791238184264709996697545589307294439812032412329393200918020865728550796573818740445220012981742878465143935235643532642295560045931718514206945261121814900235701269111862299972520426208214331002909551087358579900332083962958446971340225602730389702072934673874267875293577931461781304416560797271904241918206832592538204881329965167515959346145700868048833473824651864435565463806977228125013877124954404476823286099553102793883727329390781995529472994978632722043964495654548843036679989254790118168118806024521148629305140693420613451247781872193016880494767063934639725538198762464541570211069727340911754767780326827930120291095645109961419758538837833398497723203907280761675941754779154739563222851173886838158315106021480120851810873750790598978056463102091352276455411503693392455125135588609241725325687275639226902429548953890635465736702749672956932736210620462796453409023753947928858285651490677861252865811063774649309409295319484762321979990465836903415928676084842242500342540341919151894391492362870976059237768326137104067986188136860449615793711713597391329696389169350334465438377901391344244866990341857190880171263472851791388995089353054312142975320313525152206306860432584375875452619055927888799098966234479268702293740865237490689675025222974325664944511145039162497822430289245161804758341725587187182555081356189048294040574089607515672491145553910944815886845993172628523129679098754585125674573094023078098347933242532205348721540820994407473249689320862553959113629692469503358200810067571734348672594892390769356822993550494546441507892818950081637748660098464811660943601806060811310278485919467434695413385453341067334035472437975670471090027684542991447062330326500898755290323751831336147236471682587203420529119193058241353040141995469247446556371011271536241949657326099031525445013375918129790715489486931561319491468358736682146856865830462318563557847377439923630193609767099622253071769893639949168548007775068018878856194946822332468584667876174890256758765450639238596510856369015527944323417247491539230839482949704539787865645689501113078886225547363441464245010347745500994705167485519208949424384764233219973378185508791227488793828174330510987968299900676720316364984541823587201358784664590594117528428848397931757063880757470385983149589962752693605451046108841307497173385603081232304176146795277939781668785554861064734255937323078941783129442238483556247817425538552669430855270664701960857663409067809455826333328823016912444240224425643310997986941411374649920865761481966111232888187930718717776084989941058343591555984095182197970461460039034675403164608611658662689533904205274256101767328504457739624479007103621698464908808206080210264174519558895918159692856782513964327064065194557623167891155186727655860397583534458330736509737477226966529083719572438228530385547125336513913523596610447428392096928215330868329958760003697202072123920383507384802057813099918589599324252905248028937396537235510153249469401071166245699121198986690224936723716229135381922886390363060802780219166502019898025417192141295978496778721279437470305071141675816372217023700308314290730764220113953810488382935170383460842198218764153112324600873474990212252294775332957518495821084445499830070190746326104029276644192074522947755379009421200122415470949902142763951805892136895516513030765136848607650805919624818014320223624232922140074489923043093519678203174713063844940129426415954922542360730294194847208053561162788476649217229645050197452035319803319788668226852394187068520443640829803406721816040387178661242852628531393377436961701378110669426427755769746540740730680104945332498804085296022018132215489101681686531660783073051997229677627247826686539817375963289717772505857828270965250475062921878325460746281288769405899877819685546269270819280033735907537921768798916827377274408004453098857958198370164413373379646274132428449718971677307613158769022812822145144805486824755710654463956607693961387317361334934353939253552701677069590155441423082857159821822456712146900770717834473033739071175044659777975596209953851775825349035955912740311930767294422876609389213984042863489581208415482347995712569725641821918431512303404821494203071107233414360359485250785523040045662434775663848821870313790266776148858385855859298872603194553977888009352117055995192511254900203498613270470588471787516432047745702447003276088096023319145103336802177726045391881279446569277780191609863945191565902583014753185727827399582402552385876513090465503858703770949881912066603924567998859911637456444690929947587477905540081517544985802966134091977528340625400974760990343943769936813257283153481551630302822850720218381015979798798103647154369802710590940217171532795704141569529718311691229764495674532896021552858065182465713383224519695131328702500600237372280838725488588935643658753410995169365240973632325466241992049669386695477308812156215670638684391176379907024410436053926933583074441939855571560195009182590263327915028402713265835966544939436901049482984488589330674686120365962382989811302208346627532238850951374665792006936447163629143696853793943967693739158337753615116054972603027180176820138749017379463010318988160669467961625422539921960662622581391554876130204680873802751800540608707686599266085018138240744789254726557972381391398691060928598409406066312967333879435984831728496184076736650673930957086665252407757636210025063277874097307413393026908209709396028556380280664642492651221786789333398255237148882740162230794999354438468342060366220812181991716695218961120700824485780144442775788969695539794072898543653257811937963120689693554141153420184567589140855207915609926250405911092944115552012814110156469631436702105100437095914317413281599553820127382973367604686904906527160536875055314059037544097139001685928283294266665776789864935167501271748431680908575781296612605656460840844638614636207784722119432908190649812195157545549851232310580790745397904682080915179753165138283206460426679040735006275600133400343078098372519315524903129214007499644285650105195241228602336357409069669455005999201467716832355241422593472709095288399294061944381539669545658069176700731414436978598178133184551129935362454319019345569335192968728113427426261484514009222831817983584765241219737001924074843930356978275817556405415736072123537955942392694669126902994969560906371024021265133890198775980290545935182104544261467266765249403998713543174082442173906438306622917346987530380476015242971695035564752715144369411366431835814450067430820262454959261596750466289577896100573662294420377834028359459900983859258697872144041509839441256707230395180682977635391625213440964093579640634025412671536724077108212200256484382316900542203860024359315128526701576123474846425795011685080357333369418588359030485935355001399840041653532883377244401510338032072979571481411857140775660187520246994474510790239745888379356849140590905413716569556158597261167767157392853988505379104213638072865992215273724805221802310073211836824059523232527464788975390542058329189587555016135562191581899343813290886709813966535699972158174330569726504395786427452460587809884831357327202417025244619410229644452890613935182492126316878327262966102007240682516543369751144630854484327399793671923746975678901870023613602805477296794612172352244511744149364217897885679453363586434405700153542698489184490936182944835026642158110958564310192554463204702729255111172403065720831732828176995283075750390441322776835112578668266132767252314898990300862501765255034614323089517048795107944791002202085776772906553117206745729345131046394835950579986142897602350879668791072232902053118842840832330481365932798007955281485994171548810328733902839478126630825420784939729936707597268096970465253508839885405016182144127628854000621827017222490029073452097645873981821404959611522672947179475762765721323524710255180606102376730220210681335592477629693563437362187533772477499375897977261377575361695497944045160034033353302955406986156703026901672331974572668454405534897315081590042151333981495102246892719304860841614767553370540790785682638561411898140417869554705780601399507601712026386404272172971183702629584446481710100600464911143326122617335922414996193104456705303321043848069673221412885286441595733876470611030250157692237841448192292513404837736468940167510621905866473134816201648928096909442103311201591323011060193644900424506727155418788243394648577767909020058736026875980851423060823732887459268971028320307558109568261290218513066966547610089594994498222354635881549154544312763005565406102675840806875468685737059289494149699756316277677042931635087212231961941272422444858147861889347109737173421868404621412537764346781288287989331845424018512086747626708308157010909651641436516068037425365569060677912633950635546645536061403807409099082508550058998488414583415280395490521321099600813238256427757517481644760698208467534745845302907755351840175686339572506395186209304775153573939219489555482395577695592617056023802266194497259028243202584897392936151271451963929085925810826457354553477689986254990240289185158884032141994341822033922733834974645751670940855547467756964994085597405095034781700929172289907254285151812945985224931051464750558320012811488253732744988862233161109606050406015802768491508793588198151324405122876387943490660691779438967044581746077390352379751254615461955568529689921485567367438778585612389938349902074365969407253269778469955627879711763776842364144953670547109304948668287512860970415219502745395751439993733842930962992870136894960020996720483200480146935952111886227299153752208326376973074228682605441575650257995288205234534052138036432645830430702113828627378813816351233886784601326646373591285958095182331556218467784172035599961786058943933471096158382090226398313038177817113406828442495673003914473037946849250642335004663577200029533883188069023134110455344908551254768509433423753904203585782484452823066669334459412659597204114394389461693567843092309869218776517998148166085194865074008809703729607660256199650082517680437576071340325302187434465576905503453095685268491424754797134956724858776861999654927175054482896997223409269564584717896149286689158845823207935385378406969883420037933548255969792638891225314448709362080625812048513734441022870561052325881649196283466308211029499489653264090461532575239741108975147784699896901271531217834333673875020780715609287305869223164361719216906628086056326178313986897924552483868577241610923546933192512091338197945299243449780106589598922753876185066252710232866657363962937044903426912318769708611289204010979821465165137074881928097936764501171412632671914579415311078385337876936361074333003102949703174407016816545214722965313831482668981827303016926126802521884579095840264982408702030767762169675476952411345499571476609724356381133623920971663644523392390184493789394513514636660635593862057183976706593973560366396495002990709079876142018427627431550981910528393419762071793262235334957750424467283436174607957994734215045683300058852204875873027667294595155319650951436646014436876903049601202699495559152302979649911275022865846236528605807285057557398476638707749031592140779473645907019156905397671184762542006580947654252104262891305633798982927402644044135899046716937340277590620529664774417885768227264593317956727693990945238415411234079474303266893399758914250313893911618071240560208505280427165376674423537535769348228855678158650783603649620922331502300187419553401821029965464295679500056010581934542376216201176043485661277805459714388255289835062436106343709989408200325245318329896415142325276398105494446444853324105991949585163512162582482506089597670663231485201582243229204734649576970815942214737583277004172921250781580669386576435530987760035586561161683313333787787748567332480966525700707827869220124783618734599585434636856736925185293870704273293083532179294726816233757189393424943112039304424379733702989931448854396336431730420678812415441709890178715725405571748870009875378099418813770051930585408721612582312501852355328012576261622792572035011689857234326306711745391280893915473727447715198170574720052472445271600954683778441006557833638718586561989603876569252518395034308251118274890104191561747807888811795986374297711381364089649372982304519556385891143457719057174374865251348322704963596516653981737346471254368584923255460547901709784676915363849407833560240715925975494577570943889753843267371673285516640110336924070506207872674787241138139948057422188209152309634714684419868173938767464042783635237597059179491208240165735950566710192522221443346838053435886793026919486566851171818608663507720379857960129414763682709615435949635704335060660091826161113454783800691885335152258472164710988201770840928037348887310777454166454246928359110787062374226372091475763853196844888678736083148494438751920696798123003420143246634998912649137955791307288316061987942126902832864622509995817549281978706431642969598344832882501770028318649279114240108072829355303608823525029188040298992324260418800509667035117589581320763470896976943911888504536737779347480982170063426407631170979746666887325775059234100681050825888164404682990851624469447831767907743704738303528508784726947756147254017575623167592813968049037674008623271480587409255163193351282956256730459187541587855970645237634875131331728278864031185017912240446855619872540837330825677760159752402837489318505051991244347861999338346115402498895764560583098426978276492281505276404816532563259530300891466828217722430677430393932069241834829009545755198297022556718884700161379559119880342378805318345960029457299339091516109850431796913976848159617296504000520921225578457068339961155851422631227723946477139861001359204036895916592892687096879408391460815161492901029123671331455396725972393163466825144254483884178204267170428145347759067047614128131685944190815831998077087636432847060598929459841495013158722715363090580121716468735989654439642608867685579015834727200802929575279731806087170529646656130810549939230170776732411836470073739682776429763557614939098878309274729817527950861832445680810908918839262767901156936724113862237976201284316820699995028347809177286887010950660211392925644515260636066707411031492573290403553215368200085989399632066189157698642770993229949951292521033442909585756269274574597825636054108228596610771879060417644097448700581941326541072464788723080519376630879980367203069396415446542061589609249787014727600954239101859902966505499715463766826694398120041393794972103417972352116944443515373757925953408240376381100145332277172605848172290760244039102285397578230523222432873789840812628060398421724041259428580460890435210690174292191174707918868861305176185542511162811653823808814361261761963573602430217682621648964000492844888644124844672151510501485998869012641914936444252134489550358489627920498859483134246463975040075565141704571434023402944235332592071941615416163907725633251138488262980639049250359274850564581534106883192679873213635884238730301245458019715045509417912757885410205303152436919699034007130868126404152248377530783288364247649211263787172242235512408395933630736826593095232405323404043089145085618124090733905589714797539745663751715499604314299568974791424239475229555066232064837825342061075101319181993502952675983601629392346764323061453868930071434948901899487678934329183567637844365675567839482190861698013299223310308610945306119434890197431003785849836850230708235042910805672781420754375830741299592351122178942387834953225869119462350278124746777274083121826365595497702484122756947081686864111822141202753825784526358272036219184001647538179044790610448338023788689517037246548945473014659959684090419929390238995946766933909031669266349380734110518019233620746370170386135477487541881173437303831309124973283078352161879440555907101484525619949463490750735337068216645992789251612463600964689668086315215192602002454741195918424827497141730370048228471027999112095085018134950753951310231080490631061437660646620517165428310106858093563315210824126298650341071071561072655724132074989184294649387186878764518623381892235921095826281396424120833205516811605455457462759995262021299927774081309273954580536589591943616232703515298128763414841377337247777898704764219986327556135980409779225608228048242862889135285038920266437343346402717165693826288282551316902936155351810027397989295168914658518359060647301542022287468072613641806692366716315332906877546415789543446897355405265407666439782333180867703862928234513399964240705674795308892418241817092248463363822699756161839647512227177697748842004952487296065946395220437186437444706890600814175824444660798067799993395273372175345456016244955797961990685133241939515348995072724896521284739306887257305823722457166825243665278031588731093263666249955658237644144361302955914981252015225471594614177152611550171151136080191507099502020226403072016131274036713704217529235188826575962350552129282161815830183156105378606222884008555407653052884607449862329048918520316901421071467172478745853267752241204644992291287634048391464967990076769319129026258989978868798606057228581472837180936583724418183058095507310846259493324872692366468375107688339725680779088847745500888672930013579450396554183852698852773751527107543729113144272819477559213806136284080698054660042806003993878382451716162455582920727376982218333698457457576438415744957714412336030975103736785177556396225403215587752440306152783311565132155519898830369347880061476025187994801727248941252366257472498299409633333978941407721802032065374616850529058925468362091899334874261394165468054597279716565934917573106050679425993303015118388706415691194612441957904054657026693721945442870575195344779124907746009718982162524703498322643565788310884988507969807065844533131449221981674049699850318233994191792246281903263871831123203509787181788351492418235729130993488941803250807022175354902401237762569669833410433263443149428919974449167873932202215384797280444535417984241558839706553477577669059323664132522332004452984597334449877823604932240208907954217402947349804109513781199597825376058569489255017464970352133167337512049697496998771536521701025070440452340115998373501506702188100465096118068861221469695829733231330248780906890907760975744874895578780991871795283648478643810149469123339362792427468085267449907479755758249793740863709695559901055922243269378651574090026080859769819043934510009347640120813340842018410977699596819982808186284581973319576237212892527513124252888277154180634820725481307011737532859771381987679435668417741212166613203636381616771284129675884158524308426194595035136816139148718299849526785887785084552342057402610550628167709769677750956139907363092158063918222005609214100159601451836330886308430028384078477237623772119688581995938731815103565124398051495247329472208097053503075165802012690256843292521929010812078110915421098212356764083712076481788443121676709580340584879890305175332410652365857918516502476078324606329722157460154083756225824317800125305613404454770154519512341050681619203495650902464998244404076723188468163049825239455480278686203940580027722974319859010040889411463210668718530787028480299086727710750427477244131211846760871715068228750308992323226794665446095473773435195424972897138276608820570555527341642947777918235822868048604451619715876158316716066694739546546586320817907670861890085605280595468315218502440246109657614481219233839599029179308072675416834346054609471563244042438117052234358744244358014244355961229640254429275998122574111196548682692348299359975993981262057315306770667967287009370530631428310827175936881792148165235992202981656052108188124105705673778208004861710060072306841830422055262068326016642989696229268733102069846923577453400289116123077353151528371578591329397756594844001984828792860570261496140373277600088619317913730523134871724207299307563415874648322929415261388534776394537901246825941227344712779898024905371848275756493231424541930983421314258075153815173241007912711718856240692234731888204949591041984669503129778292766117522401411165648155859335127245612016206732259341352431534535028120329287169163749921113096978452101753862642194027323696782210496886007293078224512680046997566637129077423164172013135392603232994061817153462279195562030043005061792666407108612366093417514122430271040474650858402930932764991047438100056080213876748858623530646465601686978361267638259115545242664664834402697743159296697610255818983855901112080644427163251123151461593445174124352526680834683454637606498397109836513505276953086215104894131805655868461919291574236608081698214788622606213119169415017706792632411097847782219972074880056638753287485919147794901972742532962276179491746248417174830102014315414564787326238358467180295884217502118216917955337505115828382771271222697008929772078665436726918947573599244494808649479896656461891231539244169585825415642486725480847016909090796799140516459728691246033829943567334548389555914915032892610324832618455309098752978295535003256626070887568661799088473289444492678557631677146363140178574219124034694621299543358026477725484427826877025358556623826668095840754198037375676404337700492711713109614632830901474809116131551575829466719064503272606690283855987487556336838616655507876939945554537541696373310774398471880506294096240617329720545923854691847836395227112071724636619253725649328197914334749188001238093670375405510870219936922399742904659172280898020571682764245068455534224736816407352729245536398126599237985317734339479123771276175723074750116422505564065999863590506776296259990119725310362579303985680279734394172550248530122055642462206680985194629336374013780079440987352195437515486800864467779810416551439358222429565928412921849964758480975452419921417106897691259259466809294902667440241432810553442793189005135802449020606916549083389945181487450567774219538568639864386028573370164251560067297231685209262492517821245383537097701882833158142854190051667396022470851047153470223222439264045077108033921651006981740319295649667878446489936474224095958497319464389408724283759787923396559897842808411783351842345859719234691779736038734958905865945004418111207452547789771057057913250982424143880652361865728666740156636614916026875274495892510393248681810382187136186568217792569136317898901437060210277651976161492825323001380790539858564599156431217520779703280924955392779980545296662532189774842038124263569667944390593760695195112712001573388492477677004197474741886021928798566666997651850499420015298042603355757408924166592533676314586952043749299378750785608951942368293039592411973226180253118320334484303204541066396458574491885045637547211188293438720652068212275429349202027756059799128778839048025221119501533704930133370306122131531050311044943091438772763875569870687182936947560400194995297976344353402103310673397234830662129890184172892837909924482371905444553788405907984624093812092508741924169745600532797477756985864082576617655804889507457213716538996220067953829779217737929758305479295885973087494528162725689545161962363200475615393844488955692787184395060493611048711972275396805081406058352298537491470710177474449422800798069435257934995395257645615685232375304142255344508345730870016131025538178534328505293870571562568436458529667073076345169172918155682021883936586993207540283255639743171773342087016413943913797915660363615144971831395537830989264653572372404702927798920021620758165922704839131050325917909764136162598842598144291129441646219048005561587789065847904866225361176494466361432778505379247212586204956933382268327776056916775961876371111082563688597689915706002561458622592424288026802158995272287538731706047441734828066844165897624247831439167302976020227092898478974309822081538042614286635629987048353756636864261708145902111956415259246029231300604529294275549474153342175540042364004293837890155942872510960076972402501923717310601136762859711923419831704969130535337608367377112131687313362701472778897383059733493484804732258231504654589282252660926516049156783636254016734168235040564418704151197496980402317279038477034416466785735532723782966070583943059007782119603849740493918532897634942743699942200842224978692328508701054965604092237970249303590702609602807203525145655020040261526372097246030965336509574524083454441234602202606752083571306567937599796268917457907100963327799210734701211949917183884691593227545138476815898538603181780725694003929849510209371888522498839161781358760041048608574635745991242140068619333986663316292070135709692001746064068348694849620114619176127476286646200662612133095504442336393029414036915252653249531155296596218269128602787120748016662836611067085835939450357096653772997565792117523109183786321232843253154340177751068525821570317141102826209754596150064505741101272731980524522149651155356765288581651786133684605669858736761754890726107297204582964274576934420174529334668140363836545647481442446611752113473424393849519292216565904772779747398128930746695716780129679146651792357967420156176071053227122807904090611186776021352728037387695979689708051725185963906836091938998778948236006804214807929538381633623870309216951889651328022607736653792047592388349780767882129438834286697405114085739273961038449481972465691482215852120317472023417185450167190963384001711507989025193693290923235875785009426982430023332585486410994667549573801670137514589216822068891138791320087182003034685367904631434941519790129183091020487918022984709175276960080215601108967965579128579166729010295724639249539952476866019995941293125630273369258313029487979404174712553480554034646245858986719108383400421600029080774304113730224300310088496918450770175192356275344851044213769758978700382909722178268317703223347619384739960577003530818357390616105370193506337076313129043472190936329795672056202701854053276884531094915321202397269793649003101419102442986859389412984752282498029048578271440880941084089927740629608325287680567098208400000045653678755649674351318738785520782644121308617697037044279301688164960376305650700017109074545425945945977609998982776365190991621568316503462915573033150819243219339160889204256339925561211022010348519692385664304429363240967952683529832348100269470245914869614050960391931534002320614065090501641284889138086318782197981530595164116113972504354374913851151698252753118344863678570829838936691773939503939625091249102795857386526227336669247499328068468636588479107862873355807949923174084404382559823819299460585363744315245230905722565198221611122901299428689249318070286274164080800343277126486683314453200914288660167902888533882525258482037961680960697761437644187353137079828617899756961420342255679864346489944009906213141870494424082968834602906846143066327967287226662901255145593743795653523464373923747112091635737597229611607432245394752614678861202615969965345906734125434628883010105534031868733685354615757978973045835238078115433597656220244801868387315499999092797717764045073937443244905435056819273853256362612643619837724319471768241457361931773693326616120927614290633213410863070274507778352541227741596931714211575800121966669991905779686274323577767989059578769837451235981074022123152463693369061706266460899682259818823571041588720489345530668289157862174984479837744215377595156605986546460449868825133249211243803965926221435820723856665433878359849333081214380574271941382083605375162851640823975564656436883993631081972108594527319583573513677851341995995487474627287299237154520325695561077222120785753022077353621571588487163759927330276554627470026328482531042183210260184442249606255768959513731003899776155557885284777252189601550930567055194111288672920552135429272295572213432954820326675151415775565023773450800496111116142930457139916479408428993122614870436338596083477791293939904255917340888829912288039931485185598993049111833690531634554800432121678810874933678476845366655026338705816032592197260769249961440174962753362069201259397998393960113170666323427682185995459561439599915651761946366639810248968150585490400797325010031967890761438272611561315696382945859635417910477508471407526155731108538466428642041804146799027402017015203490664147019836459603328320582646230850300937761344818731285778799279654234933782796801869014902212604546140610038082083454170832388070037303507274032872556050813958209452955035621496840050952798493138581430861875841143876810412712641548390136536069354625781156781771256405704937279720850429987957994520437128269751239978409098769622525223318576117109612368322563879839360650127903557810313599964435621652639319883854265191952146243913846323810530933412848609996974155412080714223301292829756641542205889541661291218331494011421880046876193191076496882759719845762112607546499263367238975089288040704730180217556676015959402420995449809951317526050845968050128986253273651755602500585889735759357602528604553942267887442645187455006226541282541013517119922465307385229048012322490681736102731093772921917288440567384408254240324316192894854909431399893999056392361071156758800651588759542274561468481700077700267415851352983965477779643723675090155850215993249248553027665823668422107770353361523799824903626052499413069354599004203953440132292377729059957624956111525880216119950268178565881736708184170710609335702520346435369738359590424843942114028215635116578539839065506465001218578091992763507503178699793976798230723330419050001651405847325537673527256773037273664187475683884772249869402196301739134707961875989619878490735644131098520295020546486581891620890753736988366765947094479941262496535563389210455784456539272915472045671834599622528973623997211382702504287037311179230722801066334368567624616890186436944388135065057894509515267424607393834348741039468192857887953653982810296432304640703611065939412049514123452372459845148931464802325908864011074230440703029003943633258171070550772041077807833729350835746187199383663399076789455132720164065435381913695276797624445373385855159689435663522892034031268423990092771900246929605245128559686029703137769481406473947592884904461554964524058033852221694010441646904887090182816467818505166861249328411178014088635492523400732310609423132302661369042083709091771453233003212754755581211460762628819814674187109289607092021289853694703417134784742443323435910389370434791794721004070311188131165578855148963779189138437582655593396491541060425285554418423137116250476006667139932628494594158958037665137334583622271688014144329487937951234759954334129402943564528444745701453564716383713072634079622295590125172376731999431058650550472064659058018717495766031892526659550516715214005782469963801805683977152447698393769866438988513897564174696349824851476135199265190523161735246159528212546247938132453316859036803110105280454583473591104982714611506983839832307052424875118374654839599465763429324597272368312180777780929443083237247761124198698932582207244538755816641683048420044818036039973343094927366845381911353943272777589758423616878550861115344572906940370453882317823574170107619361216139140721147080816863846145002952102202953224320458155550382068049791817366571305157269147586233932978322750291631192955377885387064681565069933410596488776742975129783796077973403570839028188608199956240743647153086952357416582908269517901105854565011064170319307981444175631986415513269272087967497765522816359182188322483370811700346457108503142602419630942177797029308786419708159521752369523359611456980029265868965758473386815260326046696331186898925986656248190319856027151500672626984437114039604319300654264215443373600983074160635102721330412089988531178965076373209234060332279487633633772074358195455349029774914344128081386061414583360739450091494231671191206801036613738747458322337589769685085611869332349105831151388075798222298116317301793783885024589919579575371896943203764405885563860653456448183841351340128186246234789225095544661761732776394297578518770665867327994505670500943041175852571368283976730697206049463131143960543425119222644363700057681931655972532111367491421689350092057637205295122292008063460851011133923461060989920859990976945565312399617472895987929629716884370546711683813398369071335997055343097714969064091000779497244489184844302201486149583104235026080981048631063812392076186514414519184659487847321898388731438867319877157817061898026183258774725693947498857855692416169737881871154173648240988911201946832525031336293487235711599544003509552081083399662124533610550610430568689629916193003699243038215693164436265142601909035442051350240317965388603519747983156315437163864020069383600187382879061434184245807427914456413146554947153760167869324137511839095396647938838673057362601064388364287423108918446644112745862758248273568552151877724857818705461616425717593937446138630449691732770243056254648723528250228053481892826712312821806623462911194113074831969253619315422977765454345055787539086810190015313576190714580105957184380329155933000482874091280655190451072860093121901567522377235247409063946911693645838837391081090729291400218729588747733310251688382844756293871797025159637038905623303822544273191056493382890102453066256397199695380066073485179869636967075468476119325373479104345744015821428458037402659369851045701696564658785596601560810261886693577151985959201706901851717683238335260637260705041986553763774941072610826938095846005798895048720994566859478618865398983724544254621437861190740553772283772069920299878463752849423826430506930076400973991699161666942023029832769122134025343217272842320507814870084525081198190923308174218836562184179268575251288324424565288164147734026684208578794182909244736830057301229813313398194225471376360256707627546034076582744114305129049999536711899293571646328873823739784638446990787899620166514312237740045095189656478270400274061448691632086825202145504413096906145310157582982757921574587621519982624183932140537709568168242211727384658880501093996951551804426841729234138928350340995897302600746339937004344693255085906900692363139385252219374827776603071942001554960002358854503552689044266429974728264169815268720615217901331882785290299679760841507925432391298444627279884597172549756861225435437909167075391297621713021950259538989594647890005658676123306532101433942569493745835479542068454474815645270087333988902613656163595031312019156473500375647957469776639004696830975430028185126374860319497379992420999200447006604895995283550140281222445826646772435312206893578689853016504946265239797344353972838054181310350151041263784362417327450190480151267594504673242473892549844647328595253925908942532174650531204362154501284923440680153882026092227295276506163568199724904649668865377312817364348104395686290133444104772009105358069553861483210983869044685725687326593047897018416475810649028632305625596005049784696650910416161310115775862440593614499809399011721920673239672225606873392902540691752301613746970939322673227454494936773234718299109265307086880024223789410651957498683867070231484008336305290954434250961730486106404527410467506548589534642432415155851506773451021917025102168584950905168183682025208971785847785053472073392414146199565217350149218309102461763010651932323756326471579589529513098891579306426464993239069457163577945134824187831865878083630163658145313040710803634696992190789970459587580747973517429798614558115379612109324583127647965304758648317689255455133820017510990108739515115644759902490971357746594678399521813425464538510030232307977395599202871780321801674200674916221691163128652466562387095398193498273278382969042159783829399513157323124846682951315749767128386530911042082719064945224564978563607832165103650882239625637382550965196419669198170910822343986545915316928513920271995556639181501574299282113123577670159998888048323464686219456415548972623394414523662142786596818533431421246608196444653464054955188905670136261515214763664103390902391380040250833766114800983798522181640629244166177501816991565234732632066127996689522278438662779315709365767256284649198407855005868688270318753874788269291210690357611300289529861726019809726120880376836626440951594338243829888681637038754787895533535930462986729636014465153433627617273336674514169770111012936103958423759483000263827708371283878658531888135612766382752098823155882830672964174088249382601679589677071296674785817761530525187481313545086569090979213175298527329044783352213953266902597681687466053274466147392492910220651319554947055061230429080767560309027232437053863792082048309493617898940032039176198472442351386315425038442796603009550013403541210762006278360021367786595797235907447829920276166863395585906681369349192963582632115275449758772859104788392417289677275064938071599705532150126185559161821152295840235118053237102029162036071568221299191668518059341546042267288721430564384904578184672204467700940484264066186921624101519470187867038262313447858577197829939545808735377671783035814398099809331463583275758405838859029384351335685232655464027579420432041311393877910541778868621354018619745779651052555796284534728631419223176524020000886114432750678513642816943838793789562929353155439684246721255787767932033255862108527594853356080714054534611140652746413155168693113095913625237129993594596586792571734406440620821515514075915555919967881277637306823132954256621348063309066328549375367630743780579916954174381273812803672516645898010464488707668444374455356651880492227820228599382068858484324258966129368631212243541608125594469103215024893427785685213913974235530497351756001707907109469535677731887904501510895668712549466091148611298778959074317023727282132782337863775721464689378367653645392617897333130124309691908847576102033705463076397132993916917273389414871766942441981321938808267968157764638676215726786727895017342498536641167881674659425608406931201796354834829924732345230856504423528974335499682828755644816089886202541240469044979766880022845791662777482077534133928059217082841690459236397802097289663700648306103650937005313836971792301150012038474674938810921372774902347433292767658051576956480842156054184745035405823183565415112945103116348650199341287834393887191252575888891385000798840335293641463842328707306649067812246940506163626157878827721757779176359744409068273190788939341959401595910143049615674483993084233325417322408621063890138736171855315432709644369445815521512477250285895100434392833399175833399055893177397344906338878177031573069255805148111011770507141117543568021515635207353960759286730217612658185859431656401719002655761230307185639811411491673625944593055825896831953265557393120899458788314858255968855320069482620531213700036089094867612758211052756981748425846135026740378427937490821429356103488473068927964196917612161515890720604917959803631715028933247446106513955952119265986357386724052530672289528513167407692211657922270667288764942909811712931370623193345404128412788425652463391805762421124011971940381191492379699901810598658234992889857561188903867573469171833511249266059428426701673241423724257811913727570187233986188808764337868681851696500865234195795532176288461236875394728842694811041440466531238846546648480141081576101152958278337585304485963034895024505644200640152826666817114299483120544747611036945221375198360291051845925739336785211169884128056796938604642216508692438211126049503077464502667534810599494934086775814614976304232305894187530628071564495265848675699857444331929501597197465867342716118625593587463155944034529524628404744389961338208370061774733815460234946427946537678281803251385363205261920031046973554493913165228152862958875685126167376486917664887588199063772419268320650115682394923681068335072987736229256552365746155757517230992657426592038516563702533096041394140482390123299216935991054295247290014874127010363757644565835138462954431637882633462572881100136317601077941131138494031678629922172115300402106051901787046458687521455770300521446086185957728474779822243580821554758204898075146943939364696448971620619215743747493916819869078244442134156134067710357792856707591531617089001438605229654996166179620266291939679514637208147403121925237365420736665822713803853041388333651307901641691188328553964978595213416274023188354626811121316731488917117523522727061327439438684502811269667636436766446508117335553029795531980481883290726559827759258776986668954909426203736896048553731352859335529743019308124335043986657664681284664751608643127439853655041420597727676248648405308808016631682614700653746704321776387123477663662110504202323574235438663746663734781008442454084476893927749167152765956131366410440297503767863173698426786695965018356546236453444305786602416612277490549106343581701678393431941027992028105999700965491122323125030708367152698405553395629915349930118403254181358010296715901034624354472605171414325504750777508324000263942961654807079331912538142465260896677122104649600558295155127377901222724537890064894431988176210766523455054520555956085786019450375103942577926354790593254693108605522444296476852049069492951842903908436927921848340427455738275286927200921107571171392481032583896025805231509170943420284168012946361776325155944245498330308516705879866100916207964865238351442564417042051616388896999350553083164703757223800387771979058437221751165212133975906803019161974890817058724449700878130162392998423139352622613509929919936991663975736181526844578316640156163499414792077176306776321042398742868165300596694043583492765832670473334617438175190908731089158341518211653811867101025779869357297803805491198800246079418621148845929864023175494624815252960826203498311785483486239406936017373622374390111765828931279557102515033301617405362123874620124619890014037464294123796658716303077071401817522683752641091831074413815936754265378954673279454962692753719913099203632248799644270120425331582196714517859569777448100715742053598879575285606335942306309394458342981188190351027202905433370339819682916203781071442563402230688315109099462907224884373896948726121216224266224511881855757132213589568978486872270356667438144838737863651098346403330488995142067973037870493470575144910049576379444466907824245618729959023191269585256114834220058070292130543777192503466518284525898995891914868063719981824827119655705839804239482999851733298963774750208474086413587012447245673154988497479931462123485443863544413107692287627759667581991916278731742020389871004859643158549768194641877069535138600010203918532604381534762321876987288023063952489437101039990775881867054088712152365219532701986115902657166155359975938144547684932926835801940893338742543494648075031023077531261307950725765349578839663091650537134025295134398570646472275955896627125239098801930351853112410833080732513429149190389959233891851923394958714918317706529791311149506928731271060790927805779916767302350808159661749547425575783900527647821554422355934523159622469528725102653753259546921093021988681951786626773122748815386863915088742145524255590392596653178250054688977262208440536157141841408458159715788411162676836573828185338281467435491525412464419749973285476276597612329782297229634933245269758641514004617864541546644920246633521695586737044013548338589866349367819720249979743878606078219621399195357995943586152879081099081833167929074108253603816361688422225509681695624118352190612235802801436536400247118927530621091032653359183402378119359594216494688617261600657349778777830689234197899061091346665161283089171438227153581199451521232871526690549336208618759591968570143647738635899127071322687132466266124856337541759720484383516713751492676360143716460840435971219995557475474310371626390996653077642357486278692801529074129343290350216153727200210899393915626643014217976807843617163742512730057384661658841355862509270369764958514791318574733492746378632154119084603326674187112013410513929657643617125341592168352552936628625839531609851126703675905082549996986289090469460518547583387182829594521623516387821829945452188635426230593197096826448024486649733168876678344465859089391080369918097245026985763357313092675013985882057141273658659937090084972503771087941937462162848074940202911743260042258675241390427204711007278004524872815407400577249173559926083842980671407412983668970334491377113779104911764544058586508635468945125015886725799705343387193423615312404779094605772314429327972581792525310615696899634488361431195189652146979213856259943682877280761256489277889318466946760082671335559373369596530290328009176464407077428088145302645555242822282030074192916832038522416590220917693915647748036129323645936236062000289533607521783030544769662267455840706304229424842391854788248542313385266738836294633415195849669174342429328223585630964888055104330511439638760645723498475134486516081933577418082314562115823546069551843609699616558552243312975185713780814887671689424762783160160774541280333759834008388650963937112208464676851079554406447093015439173026785127983853054064293266239205004718690133285104472305777806979796126857829699531538703524375758905417735627237893249188525983951582527476289745077716908528891163102468812222994765939860621921929767818592108689314534267451439345343156303150083413607455259310006406386987358811604756470160751703581780971515691270291331426778398135999830481582190504865456338103931353152858352765679816179871564373835931996713271512755691490188017083969060392831368422495958481648828657922765918530944292336858154039087110377121792977134348479030558177890373876806545455171023869573186421763261293217927965494400927295138527447405565960380107909375436255883875698912154406485025061467854157829613808996725906685312967803277257402019859846453302118877075526692227341756650162874857255676237761225494077773310406797765892662497113450947064009773031409376178580013122925958158702173056959735840263985798171151457117500474056175378489340535821137562411511271473047418346937623635488178632685272922760987270494221431740353486237276900807194761973965525110469243605969739244459259920968931597661501518810992628550692686350821501199017484551480186460297118335467162870906656493704637793817537800730154227615451529893398159246883556756042736187378520895898939300442317046215101768747500626918747931839648758626715094628949631617556693022395699660303425540802707368860098441876154302470978804414341516961550741833887370150441284729612539563399733080008792706196802967023207943485887211106859954670399633569998706638940892569425332558529903212144171255166869902756811024589059155908719947775294137786497513937351805094234363113382138974536569002810124108110836604779042810119296118491282582068440237720001491956961292886684865494318491814805478521856506228463570938928177989575164249364276429252947314094334147266050302941452744293120560123747401453762106620948195962406593994161119952191200821549020221264882573309909849854926336305753723132537703722205527794764432450794554528571790374580762794659902754289686120637442536732252944858412793305421414110633104600112478372738581987133584949862734751932986430520721037390608584288328865452838785882330023943917768910760611200157670502620165210570135669056959651989514440663405508457969469972493186343416671963283981454649995403207116333872164455834461354256281089891184813831477901428214885510938693413872288546292468505099285644118162173242527468557600806376153557614342178738261047660938612763014846872185151200515817550219589842565374896399736298506364334189690534122043469618815037973986742911239840639918431915140796075389512179518354625627600734163122157950091338003298772807117767922410725402725454525163113442881897230918915822463769743972615732521142195445386430018612465655297085221882057061338637407135939120921667999884207537828165159737265395143439335091340418829727749476820321478664294786726708695568792795372051845324088484316437798685639351219513115488917988617268359313180699171836536379642569028526886257700969898061005796023956351132344425267845390700076371081285514703505574334510119694725009994463844056046222193553676017381508329791153603482457239310974759798960003269014403132810480682178077057133795668335445057722223290954945162068988547077971906085075193078279416801751983313388260620376401017762152086677898938596560637556059005282752596875349760549249531978460132846773396869857707721799406781758865777658242761925765922171270257713683290971761586210686887931275204094579139019775859476861143172745021951012007358044858161145327367514336388649857295320366514430240979623362434747171149450163681521691312258908003658564593765266691111366563250464246525616687374254696637849087471756283872079980874086608190257384080969380664362345201369532787904491588237246130586970467434533757091151561671075650066122992648573667142682775766885879886081831365769005117318942121429882617871974133542560671995541019058641288877007425372260447970904685128575345314155799546898685708202910299235841771280189007118387328728728085203084639281124169464111158341191030295568271068578204824367654102493699933442565081490818495575557328957619524597234686235466377511080831207355825129598483107228510504923520171248881143331978182493174126197194192572976989102349052335080116030545614493677371725187380414159862396264974640172562412797708355922179326268291792613617563632235411383292652792485660583731543172850349637000979481881670173890866562066496801893203477602321666523473761051150605405147432286914802999076749473697475394131239557449679387744843352131577502233359747561688472584784322090279415519887880400756134753225719615312517659048030147111022730749353179931062203256738485557557678724440849002135508574171327893191338300365524021233613702546413496032619935095085645365298195610697464250514537361016428588134909431247676884459273767035293178875535948466366774678549884258456792085225688520217111938839004496025575055511734665606066496817862085978605819352510688339638041111233472096105335230049685299904604828901067364645725652390035052489617253511923172798739717917302674696319609682293276521616217043820179603507604639219937850630711374711887729590709595312493949683382494429629093630737655190777092527788586676648891163970695190702792876797062711822879294516937358418545846769483767219940410776697552339003103349978237429847009837385596566311328790080343187827759730457563347945084494487861754030681175072565751681375559252670014188309489176629131694985154761402832211510352424683858313793923967605691385259170746903793487035067184750904241894095319412796343709202641685162585818697125610263320173314364557082666437984302231081365515842465070384987606862363330380937078761043931914031572016091048894596342349892635625866435882122880550651278949916332439345158881541845170058094799528803660527952291822047853073559146796490728943171622661929613825019439967147846827737275570925178427320271854660542470638277016354822333907677553822738129100262958938102913229687990939307353988860739814280285673290264585353048613632489019714100472828579357856702395764264117436736396360990042901599366721794930721891007513119189880797534964218027485940969766839156242406165046137850735199283077855280719422400311316227727393003969007023411617039588627203041729865542346068775911833116135768345252705376232702560983534661106238148138991682024676275452554343691625481902356339574120693450446137110619882075569556025827218632751911525399751509956524272746696662822002645806713302331572673465868393128159600669794833719990455959727697422278674990529227556534010994814358646589611870649547534838463184366248883163201154406681812341092353103937527399658048540087830510787058843761573633355175106377010982306076886329917977285403663775259169378580684650142856626404400580114507118538310612757123080061371336244630711175849225551356373577641624131335096448719945702632113216483380216269283458780517470000724853619256116167869408791431005122641336360112117016875210456609476799877425138273208977154793606800513633959018766436980665540294156977453802660443024428021061055810039480794458404429719092225943986497836147690373810917806507812366933856296564330259789710038657318116540256674013437903588520014587017429426913412887428413234902998794671738645183937064401609891233417322032471779368906685654542215557776696703542283421342108134266357710371761475889722402283147269167066929493606219455311525556911228790020448728276475136694093599433294443455909376933373811157099890109413103716664614184263174361858628391885127424270999235931734155299194282063241621389517250811666144184495289734729462619395081415084176535418716296162107812023804217283104944838680626102747107674490216405562339943193910523847420427077327040048707294102899581205842078009101115290981324152469966369074948306551159742258801566978854340056351943855972114345038458516480059120626830067064581305563153250682478651221758895402848972523908400087392392352582391236438083063284499159171096682752788973083388318046260067661282826769721439418711555169468188676066354389035532082307193226106193597224000794937051692256144054057416393254956009786439313497806284132583892015019165256792258996273634865097826861875559076759416560511128000887002817949724071347362828187011490875306286192597178197783088486412755927550011547041213083272595487029664742591228995612193084582089951199406076547607989323726571593289246916785818915008132114464692459280952299555848340616288578290434166258446139037992208276083912855491062302429773211116667191922128263839220115498320711822824523088649258101841125044448514947666202524311114289377917999265726239232331720240020752877655151460040281480653236610020303575383494298804006505985033771005653766646829600359675550831803854768138826377472165824155453018569640329792469539555907982084461417481726593458968073444543106872066611704001301783991553087115980826040343171024810096265949950286903520794727889915169413415864287392099323066954474213803497192381556913754382215470990476203327802024775739312220319745423157347529488916493035173701868597466724678641217394728355576096317412395673545094000184068890820766098907386397181575658917568596102449117332167363259108781090170847890690512720904690345348625101074779749928041096886141467640750814606554211236222828443336681498236406249962163504255458920182223057429400955056897594215644730291367689009164624244505664074810207101596238103004855682741800882881806011587583501684604844047001320878040912923589775359185436925637948598610929493698174891028177078674474274005637798868029558016700548920776198362115476809461682103123784875773751108083806851270903219358331567700336746053863166381158111109047563401391615319117306713686221400711061285139786391559119658931910244170553299736389412223826319054427139686949175410680942216602188840610335093933142445267760015113070728440385147251522837309830370134063274864537103028214129643695396388409165157138977346774362421314200988476550441806589696272895183723026888751411871446931119118693382699629157622341002462239095653300209803424078684913192291996802719418267935789793786966513557279554862100402915424637522112552710832631831590744885335763897069529406563399855415993247014447167925169464321581677899701105384401145592873286330034319023029721882452799467378146372465485919142975085281190934878194786806584367779261594125628318488485527815139360496870591484753222811755614929253954430202253258507006101894733838407024000181767076406072980528101457762119622221080200592440197377200530025986413129369553640539709020647272550606377881737502457572010505276925104552689197207820442669472617802793410867790561981961170046571580368646440917839396262300720929010429820733696942970277915261746552630826812066099556846454366939726700075754362901779377544794881529722406828675533858062898961298644823033887974127018307618921653985220183015418775650687332969977361080932675998417754414975259306662088167788695950785163790265181659889356136686718360265714916226000878694185374931973777567429215142430058922669314122562961123866582669646966030418270160836829988022888571873163927089242794286965887705690724267459737349228609312684208303432670236185212337886264600446837104324749752159044801260845449205259743312304903710280058247988316479551670609723745174775191956411740975313871360761742011696202171372714144110639696817083182018799444920604023298290394506119232850088426348746050481953706589889174369012666818704603678502792106523696388238266255402318284184218640329184150595511175604049543687086338385259452185891561138771664624091621466713028565551263172682141185245259543613445890328363617832878149249485070012077702908244413357546299342366044868526379588243035893772669329689622473912887796281612337650126939215637158205171688843328585952248840156017703679642329787568586772316466677255329570633314631186046829986819484367153516935439973070148441049310811557797046596395028106536441057006814296052269774809917742509905913936989462155989587534691835005503712578781371176783678641070793979259142645296252083797149375453835097692066150457158639925835448774246262337304181044658639450356098073610544317714565315929870864703391927066237112984065792609984514435815267375724428853631726976745244963073430043798154440093564228392875346885874482699016838897045235403097888202796806244602443577381385600741009835420973080635994933752648608196078797113407165183711611215528207439911383356995098937252176624730451619660400598496871050432353360048016151515826317336761631433907651007190869290301463436220834368546155048685820452449905516492425039255689284943114172790294006269579978578817523502000079524433367510056286180642116966238043695460226335624651617266289060975345856151351422990193120748200638736172131912824727038624728351144455277105285450130588124408257888305491846685725784600179341252073732765161299167861249378541225713078853678746389827304371854338225458146189598120206410210894383092961716322855635022074022803471374327235506568752364081713963750359697096703346985039239311411472109535067377288763445540139440485069151000809838989319150110535246590752890963358261883162573432187357701192044819072085096153374626975209689040696154788788263097040532657933097146371043730634786935477892552942567974172709983146982131666285670472858374787579555534675401965536025597568402743325894716231192021236888819302131112874664088340340024321072035051798085832430003402110726355844439256177660367130180948448655449900958856472970272493893824472995636950312191861977199334347361732436936130349876186903208926320698303224887046561025599160377834238254226411513481309942030014821295405996533081348250401367641226792857680349927591512924234712640241377894546848993772454141017686397935040822911555341554043529060190388374154033486426372417096585396131761618144326932341306723474525522844021431027595283169105207628581187839700416510232891861885968570060934406796167931977146373512933053900514690584008860882287664228691908914502789709445074768383125925064750512732010918263715202686692091885044558073436515756317838793542726137852564504277379019383139709024593260938100482221374941009801232587150129252992561989991282451421669805273122433914951564934298039710384489480372157563462852336736574620908594947076533606909305843080191254705179328939274063984873690503121239405951576501776389512716731224068297005138414218528999553724896522466155713515765268802017621657197139796766872621397063375410652508329412917726646932173546806415857948688831723738692533609341301683237873847295863150360710910700374336827619234207524613630401284152821422280498106289498842090022097285943690469436871359566642580843221663380296348321866594008636671101859035489813268125948558020020216423114654458027475746688702168807685202926234022254532895460522334405424583353460699895042154023912793023421667633289388746825314628091642178463966012098701644836705030023738027748611744590342179172785764144768174375726081126690609654558776126561943322892735944280917590999370254670414767187534252997742625176598657945413715902311229167934388831677980444558285526064916041386503652948678075698007967877853004031900472777253036708655053094163078125248793539601872298900508022609108818137372189422404439915100399790309108756395282689103941804144219217874460600589990974929189738009855474111411624231111135588327969395564947093008695950372793917125386025944544251309369623390926082245274734005046319436826723231668387682840480713675512114954397958765113729813532144915642759274756492073925602522199731306638021861846255201137147830265394263286422836459797449780660496188897186900923764309206704823464279058513426811456262246152854146755096661711086939075141787646525642747202634538464250204421272116309758962980605114091174112321762097587320355743438489556452914605296116442708262594318126417580452456257116403801428713480596883416705041038994567017306391455888975497398125857583940790612874629056006908949357905980507707992163989339534652839751437562533621958116105387558049848317074106694041970741548210082349954342910002638923929625024420413934692111677416815821879120540334560878073239263833173846893817585382939976023994493437436179944470420159658138226739604793291066931787050852895694664144487279750699505414071186947738872740118139850928971451383801911287583867207152956232631234316670041480128785568314289975006163138993635542235451795592477685699471048230872823609533681845451969239907605691039881272069304970274386415377896256463528880227958088321184890280772670302894076897864188166695046325925313073007250009717664816334556154246596711387444296315789008630382118809908738949261389189047532103201800723935055407366688254913241047598153463916701101800856713391888409650208154573261846533121167839598332697842662494273087712878497909772538784943353965349450914318727345333980348581968891143614185336547032143519630399577266920736980048364633579196621503373912518100256084743050526554547539186442327223403016680728789123453611016673309370511666275500358812079889283121747888745343084598907462779372007361517895026419664908318998834499378975591836260561194114891383940930378828518415463166614409310434794436612588075426965338399283993472189280097951123214689134425767093336756387437224837968394154265960048514767696467444119857708444640404817442040215661037278542903120137432687482065392107103324115598896874774384405636961660263682407173648356212769136887410224763505662020152397606071820090061321092959041899613997724733308259249666451292567572825041560689719560021107615299948466114778170304065980979213044729179433140413521032452890034321916107647107370418467275610974230425031488423696970480459956293869503836162063122157322234924077087106081017307639834888292924054017804624412120398060059269840673392505534772496454401498795453628054858472365150758966639631756118169673726992674270839827835820330463271390029846114295308893916693964770474675572380170219886656025431556670925376801222824063585992043995125679572890747742610350979550486860234499284466737016560562264682665023176755806765063762647721146395573684260681649167476694881232515863686546032471223258761650193775312846591991722633860044528468121513215575538001108772967039078051476318189704524580998604677379485143082139718064023267396041393550166914037918147386867486217126652858315212388568079078540266431116357639459884076579889817501882223562428696778048495802223273406400980786133698701089388732266304209111904252805188070095027958846569887404280220120819346337587656357424554978076392504564053557338924787127164568858286421210783669385305252859194694639301604758089731266802092623719962017226788663860175012143541615358675226687898443207274659089825175902493014486218638158523752254540298063426131917851626086006357446463414399544874160330444974907315549669422812214802156766771162205559941421572863011695699402929243608431556392394550472701792510254411051513929896073914237804724391755321371700516599026596085717697710254286654962475879023867501940595023919787917438872367179877483731274939555071220549148247713894595905320289032087447731473494106186441612830928676070159930638216756286418548468014558923233485640481584999765558748377482325387706255425759297325159876674653811388615475128746303172543857011802953057454220336763124777471207254544598949117039347613532433759947979017130166751278178583268063545077077340942557671631308045018805891992592549374175009244803420422540356141451264620559830116392965855907839225644711173375394653529290504414896770952089364472062125046471288670984343946144081148094518447381030013227608112396166842331004922041094781337650135436532857262856875617503565306485252717116264298225923210547666079267316685209374956889462299883833030719689715198530568952109645490375004497182045924617230768850493823490014175313061360902564643416860909189258704646854666127412243977111276084901452540412879255676243459337885189221105564031298194265847181193485951172964953432220682180641058754315456238799978723700010157068529717194429960503820775927099391648103792728749377688144514960277053343357347917943482788571075910295741735026126983706076139461078394186110446610353623075714439296190704888785057845474480623532992696899747005190309455833088910758920015094778177676746184669545483392682351903172047529694896441347976480883728405316598420637068968085787234311620352997014391564934107611138192288332740110044596983100583276730887012139392076514636726075883118176810127489489390448787727571185834727992441316615069971194281426804063203327096638691863650010915260974212809957825092994991112683681335814143933873522363205371865936125164194539160168010121058756219141204866186956224459523399061268959608032109507498680761827706501388451998890013129939540285365829259492873002176909161175671951486928197225186592607796710575187842475836894888256587058042960977610826852517443989151189253984803205719423269923421848983125786480418621941514333663870151868518304113307871467495723089885579914927981395697467098054478510278214705300846432044113873567540297828560908026979297384259992867849722474811161256956233317526336647246969291112395120360364080113538146939300995496235346731809504453020806443380467239232903376172659236013166270524226322802220955270757009035872454081353048735898010666576233872065766936660169381288371803072337658472152945048624630460233990143124652971331998931939825380057750940651388926444790103944522011115591304695709229147078096192670725441984118909675220461047036418336776969873706209456697528273680360728232609287590806586083091175837643765013027502588697099480135129914783865555421180489926805607471914284569429679944878377283765797720711639312971375899416933425802716187172755475783722529079634339662776701177828047830279321474764086337732863797995540804394989446237784637011586201374886385680574321706509698213871262082441748863576945997275352979384666221875774557608584363387135805562113164295572255712029026774049725923129541363342994191458933709789713842588969691042404878243256543546929401450414989587852060262796264786101342811152972852467107260790102581360073596043308732322869194121444303852092481320419850434928332653671042370848321962845712766383725588120811278555873849006349016058548558413651560339285322236556149369789870254191164550808622019837518453819675609997020758858972220147559770515131172461647637506849288325967954726483002385488349170814347356834575641944214068485631785317829950175291261858478573126231061638809165704521571579984423280128095866682210776259185732295173483890101827677938189701788499779826703882506235470358254584298536201549074834055496485527642873144356169259416042769752714859595892848347169198412612471925614234423812795820152876761659236365206512755489071212982946285144047449844386252155427349215335503634382068563806072126601603888999723775565432255577236420062592159829929353420919051785804048047204431262174272322642616180065599629146237119398656734469703530285340175876717664779542187984743424673277002156993670197095210604773039527871587327037914362198849846053581305988216772217261903854564473627189647697367797164744693251615830335337913861715537966300683468743296923943867639475917044470214928686127407214134300580998377006485291917286655146685068550057873997442339308782189261438246612295003957237068380351910417659695337264172381213985912523003288242345912508865802847548846990078747728948400457104096090145194743623952231625305136613522728663801607500006941549873681194624606126696705809692550358193050804675106780524826862222883947737068308805205664252048301018111879618336603400331563973029235421103067009124503771753852707526445665069452738015200509385122445503620905328782339124459641281253039542775105435383146626708136681115860007198848845260766253077577838078009864451282835722239211072891794321841953369551823336679928955074607926952985141919916052585257526250688052097771764536046775371182340776069155040252793354581114159611766983593343632049558537188086179227964338435238193231693707687990284431217968278664057055388329316416389897444893332739212511222392662733101648635685010775352687712378659857383944728726354114233733901567104905661020541397233278285643757317326054953495859333351319822225760556141255261366006396976062719423498717660682244688544399070207060896419334166771686809107560486737550903613015775563272536638386162059570582424152376599837892308314285916688975533470319464794726469108942948043280663937865095415795483929014690887742379132655844071648549359962446705808077524715372620583668146825221899174635640941547544181733042575096508140324292453227224206823431418301364004756881994175318608814845032516353724660162041560186419292239053841000514931713122722781707841092028764582550531608170146703604276068069401872899285066089557937897345990484908651012509912960873349064798843090637693195650415265036417611592012710403459966747746394293849230342235629995182211735875194176331177645492561006809807103453226653799882938430406987719121842908549221026873295924346969803323704419420824060650814720844041330101523041299733627797644928847250960287664165783998471034845028587666398758930949842878829905192820439536619337576385323847002456051047569647710234854356835099730018304613157035058631887628647421500020072802162484780450518291455390895868877606006701247977502004149980014407559223149458861801156112930070153645087881105149889223210658947665099433562557465098779854668278857464190707497879020590764330174784330111806946989556870642594946875955119273651884426745657023786410127157852860859917711029900507894101870262383925102391829558608050969980215954008406789064393765569868119250703653106726847766372393567163038520477763741458397884469808263879555051547478569434889916544503695178684167341027276788091553629325308402210959059343284015927144559273605296483148614902301214883439120838008880231038843724288179808171356426771646850454052216627210507917164275006814192161717880773272821353489964296829050709678145790459996248149751067900057609913685607442354736949222363075749988208139448319764927658259945070925974445087621448893654491489666319775049182389247624129684400917537412935368766956202319737186369748747658582209490246071188201507280989976011350711509270030878880161888711808262125456455838508873075282408401485679049972902125482731641091116242843261392420223537792285873849495803828390835465649136374205666915305088028890497519628681163615313790645684161673844864086020215670330372675795656189554327383606926144392018981896606632520507125475758640087642105093738913702990928938227647658942349569741075040578051470291143111596346044047258623570569925143746245011350386920847172505181807643169028774951330959101453346921369016742075387756355862671736881861716973703811031852186742272857872659220740913324706150589052839270153759506947636727220444990455137624888682955293103879057716743832676493899035236451190411007721605496837693451649475481278529797653961144079438599595694296685707025461800320784124586259785353229276888354670548155543529044818760276134804903320077042115676466551331788089076097477664261702256507460696081901078781431539566487371636586969801720295494981263207358882943324959488525755208185206205258302026546445440347802592620585800918448342161844224920123674030909099344004464008705101939407432587196159641520681153550262506068788126406594212885886892611133858040606321476797424809695573682630138906422377085702117740111177474641681421435326734611494411148741255523032787131340538089200076738190601745718105027901274771764999255456526324888111227689444165882678164583720357831485738794317713103977373488633913710722676267621327084754450431583778075075781364479387279768243150894813731392571711683345243305460596880952461677311400396135177250198304960395622371558884730521277877349751585493281332101940267230415717633718024081924163098853349271679168992803206029671595636165148473852053833571330929118227664381954313671089599124046378929108336030242026763295263930806959914649538981792740526660016643143141632328333693655446822361866549353085035750455021736060514378060183598453149623770580977016952578868261073070076754773263719599449273699938875239638525022252230457944995325692139402886052639290518907450685458630312942287361377613780560831451482049590113541234397074147570467910809790372786457058100052302552572286894035623316365107343883048351585554620275838644666553277172876922659237239857868437336874263774103410255093802355582129702983280610197065587497242655906854893582204449712289549536086225286617949081502595250873189857701737216956334142528802978030946886685770418039114276701135811122121370953182921336662011785989794002942783916522220929723662837371951105457308971132891857905311504860758963821593860562114348868191342108987367187682984185480796404754429413091006154492264770222318537930578946736585568396369612635638034382648470152086327255745271044567101138357393615117826134908862150606947412953585905384179275258493278433687510203550429311562287474522908183606530155231504607306563940898783174521046883907407380301425395296793669498014523961139331880252406547034977789665201166379529152732622465922727126246377259424769096831994941143415121598788442661433527814115456358049915801822765573750801743763178327389017265452025003198561557342175488551660867607039270147856374045126168077195355277059083840185082180654752228102202817170877966536194902156154737201141441393663322021811487299461474087698137408915901374457344516598216501208175384708269711902412761008989682725992999866382210921160576669142080013546168761256704639250264665827461549180763671525761144389008708791937708905009657427972192391632810569106787103151811086554118568627193806381002637929289680396594212029853516637171245778818820650081367567588978638925323429690780608921618035906088771107144627135632487314552571431773912099648814426736073785440567365936528112558089724867958482699767888527959720266320729292500995815271983795271810264977701249552402098109628317635250302720418008559832653054277198665567329779823322115445019986218516695308274233458031838631130032474259625524112569810871343219715075632480693865474762040309172052937226668441928671944030109155269660904050136191954668502368970005304343432406551016452054350964158559299562762915060830328466098223260953055234411365657560921818314038148790100236333722018840662185856171771284895717135484569885176310099310058916553765478484413634888545875732158625036227401864844053777551093674291133359207385027400428929579942035659952454817145757942209785381995276218609861036046586167571424553613226909947137902069961831296323596681560936864340648931545978991761015486627075565292860186380920663582606958201327733211765851650504331770528185395736500906840951645588033526703617406824243634111075024574575085218602831172859673196184145085949890856925965707127977868406395876633504960977021244286822975447543886637270563781780516832802930729896832238174564301836935887998429805700302238854262343772678737103595606080182476830735570296376588467114468371280047496705486450658348692034016693041860378416993056131821413925431060253321193813981150210838790785390954459221889265842522185420382656920174159378566985134078288771111589875660509985531460499689635173280700290953397748843024285386413083764583791079913527423597081008575741274800037673315309958696735103008890752391306083845310388331631534770439226944220337682700158527473451471555393620675554029650248347994471029262566315463470047955378613248139396039289484623140650453102822818943043565395063885141288640325062466028300562138256559426734496257703131544327642703277208522576637394741856133045804171180457898227294024133959494029498644943624195244341563932348625413339780611858509839275885869011551049836362648711767332845394375800210364110404326849944211471268659645794703133547734103510860199205052621216881841214095622115306660729331787062657766540912669925585275121123357875032452249148695358071647430577196216465396651810295340791972683480815846575707635846502118996014493514088622889721388891605162001269970767416833172619468783620254300523214306381266868371796009157569422808195967186167053229208639730252292430156708693520481037891897668723191913789898510806188855106769764411760159793933352797577534885162220819617953593425698781211033547100083305187509855438985296365032205796834345947398429945252070876984578808347633863430630516860189467740660750576486749403574900768987751088291864659646665520446825374731929847781157738681328348866647733758819273520416614862335407979858525698509803882259981540254688720776578591720806410625338351529101825780755621972743068589153974509257105224458152083205815642155836057939106581673780800635763961386415231866000791383625050492891635342211256852045743454557966030768993936553783588347413733309714998499319434892363493870741653732716278809599064024045592001917437225802391703697027615571799142377138218371581047973397503747689320376135221581721655586043395704941409292468486966722697231265511607559659152321964553721604683567262071153397799889589228446972146237037412591933089287299334992077148234229416125906688715076632164638297610335317401080048377084664599823351534840943231981436909190632993386970942169455317101326532559703993736632636766635373474302438363123416511559304548707239743919410427234337826525481123534297487844766676494035096424926461306179553395274238607414571625167416022787851630930782790284344014579103674431643415326347744350729543954931589665675628733250778597395980894142604368434184808432015034409993903879197728846844596988801414144570479950936068390004058633068276134253528048307577432753768470179414687928608044640349272304281223441254397099334366202692580543281307934873362863089383624805142475562520466779107870161286185747903299020355264759736481845686825268560042316047856674903885564293423277752860747489773406500102613223210906785138419892866345094007681926860339079077186076908049155415852835250069310199986764978924131119895325345938980705412361509850694908344509096217794687969623621992548436260162179161818338797131465509470738976865691090850835386533721184140498451349093582719523548764882693186630418788563541877652144522203878852452888148297160731002933992443009292394400636491877867009265638426891386910818999683378018564766970371693404228728962590981452053769173433759366759052368799895489021002328919473930217019940487792591373074260918384543789603684146690324438707332414948645817172510430536654136713129566784693469757992037851800713256382708868473137410181136389309879718130068489637667492631026799148561990618412176719279611867197423937409591724071569234397628579993814490076245957069841307124637265102938895248121307371687409384568682778228467490221188608560357102912971950280872945168889080437568192963418195863427453208457447053762148268053660329718706527633818567312038639537318285183705777100220047356929312770190650545533470551961167649696651492897666519437683527753799914489493325979893995571561569557748230742664011760292165755805684570800651014524480871057483255763397003666145833586735709301085713225556947639231540175616541911286127222988361588503839905156305346599003333051958760753685448297662386969446756221088988972438151913718920768474549501337181529423113590141246107338327829421130576322239548482343628215844439248515378383565992058876249452855656262811933413533241795759805519570338938510048791932914204365811174063418009340633838854545578972054675310555436234477605982589154032724844522639424528288301705904461758389189778843412677921426523126309109354614859415949247514370893506588575533843280809747890589032989731878623761124025613324432220150838975669568476778367461814284121509936605990824897912456083626372913690369961976891146199016576640727604773169144385447737330333974386705611839759626965333954503903411590161170103676889733146810862951265930265783853732175874232426749680848626564164329799395748906360823635665783920414364450284103374504047938542882781661383834297211670360719490940609350479996918919189581747957734272987611028422688697608050482439238228509268820266602177108156148339585373832250184391644214444051990248102705306865728550327040964940210715352659622362471239179963028920884322339688104755410648217147845607823595194299883389168110440544346672596816982662669983706472937925311094482630748629556401644353129316801944624730565167826285900657871498433839894876797973052900626966410813430254377378076515337744305266006444008189266457569810333534338019584661979304774011012149005355175633422785465712682097168866104436204391842673593698147026727068650089736405518734784040565986269496486090009317783952862404358137963461574781483170159463476588356915939700253429001133570858972784305831683012852047731791571258903063688297673047366955571733065127896990357939518244299660431137048090791501648354964175317607140194141506987525570753940911497619043036287674891533383452318911506193044942062175993021174833511264043930364004378251493096405434914255489417721396151507346690024506336614278095918542354806911823074035277166751807202608343702413604241222361054678584466164911354930059237924152787577554008803005494717232782613739620936656935738831184884101917616983672916672948721954609099818815240725532722765565661562260969953268159688804728798263796972046779043176676863199604782992830642061335867824957432102341317868081615099237731647659480280063241270632781197476737407315499382305890556112818408330314076702150668596952744118571321294983154851091941266880713357538061577290350073189994220082546251377468558765839296863859806318500528852710811151067173547839994230197099505452811783329632827053876613319671962355957871798988885780129506146757936154281922070460458016242130347865310134536467742112041082677613110429197609400252074825618883400884750829187032339245301398351407082766720684274596904960703722693933391420940913417126665946777008592354741801939388792522337164108492734776784171967529059215318535206502121652642640777736879726327006018253094581720981046486934144029618023766940830793209868991386929408343071430967782071689692095246957009350746893455028078329155573196868375594616612247294928725460503596960692902389036038200723916253208073360624272985646221660845196570064916727183806841487795430297926714006290562914510686606931986260726896081555567162757974713614604296108094273972742963480479779446694188912172980361679048016743446130534217305536106022943763392234046529402763154700463422210406287094121176034193531658383102056441190463728161269900617398184308808229843701669195988878624089566554201113394349510369814955795680841065824757925057052811456165897586358913757066771193100417698011618664623895338405801463680251261558069638979629761088160659694554845157097908504418951225218634135036289817196695193989759066042111816362632966909117478725472877640776959327480722090748135659521325472766286931284161904348783506441424227925977864957700545062752732197780980256506560729977608260147625662699451115389253228432874223606338891626899255837056186824579718197421414226601520706924147597631211224388080391102897434829360850777569725962785578432903315083429012696270473061548580310595485783739806019372511064063869546536190205252798486474349970178107424108224387301943014482383467575908743705824456798209432984001935995375062887824047920139825588949739464089818574111473045525887323140637380875902714311987814028678199678922976933018454791121434610051927547293664841263688225806889353530283706969136161499382285895628771254502441599372315465598243750043822473297636734346720481678938230213464126409428560829824795234191492759840929799533656641685325938881832106577389529442157167133438008249997712390722008350878012933394806389261436324271212077264355469150798861584813914471029880975097629884953936648983094868222974025543549603293280256714469995136116818082471245254322866381125333237452966229096733705704477653717827894723134309169585787337845034366483777944015819786503813189605187849318848289238922629570555318257608857889749847419416172273774629151960780411010141411969403989855870650531100285545838447189238424046859204379825814447742844295612839326363144568898896253713830948117889899549488194068592822875556897438928170592423142903936807107686602206508919512078741832173423172201250540469005140743983830717019829791899864767398020875308693587422002711499534681661075966859927256444491527442627494828836261238694043490273533586415315196581751965562585607005014646448074363491070626547191208090807692642732625514347520526043090339650058351304859153750012447307451353987686039848846572269859713248540390412292307845865217467214341835843582971545814808036438550213879043874999324383124716431419986976060791147750499173092831629180863946603088123883809599480892664236976246253294057902261467597463147316748135254663964072750072918372612368184345271816543905765394890680246685749720210137792982631084021454768706258033581266615351664387852233778080436735681577310594750842542776664391103095940846980010047037709436668648444726890822610427506211376181810118008473168261185739406157627521863974637403459683996946652570323643656153584984454244900571674380981310920410844582229595661092159645769893157665297823459420982476320878257950007112838598932708244861920681164248701965310790869647976775176405759299128838592623813395222348645085512504378418177801754961443180447259708254617793718217698645169785844876284024976679070794032180406675107378185557823723373607164474090683535138160378058461726765803619106210393027237781376188827246586836633271358642103762503337173263155485082559291677580090590857065793713675640495509197027471372098697536345204160391985593890755324895940746359962505459228329439554784099013572443527159852013871898783582263829427368291605791840724989411251925881022225058315370439131101967007416217140997705222175217025272077466666505878388058985106167467747039585214996100418714213130937182288193374437867891574636230660291417224346450823801959085974541649054539998608167936161752182515393534723297968244812142697937795068444947696816409334723376919092376003528609869473188854687472971973949134057320534246449680175274642726141333975022412897768054592936928814584689065050838657853429970460794649926957852012718635871668215939779841874306533048533021641112680568007016323191786637373361429938961600815515075738714018333790030835099292855641651707053402601364105473881465988852806326908599265800081155281642787451462352746399689641275096533289969510579904551350754974919397519474125675089233211369375239438450137770576457371916650429517128499000739434599098978181313294348480599983833498645834415890522134887546305685971090969301325698300179498568885466004273245295705114272581299954538132650806848131320928620883588494350263267664317434913932682179338185641594773684881248351890697514221291548714325493690471158512609990484708950825538133122002836560528155862781187683151976727039107508201695742285515264487408343399427136933369879184625915258142793778803932456663936085655288016953246944681411391905055557469765948988172409385694385022430938049243879884057606516205982229242075790117645658817009732334369729899069376125294282883002618156549273284297272340336231755352237030111825170463447401847530347619687930501302350769722234290116902378316501977029533364163237574584709739059831571815588408270051222780994550075826990569794178117865064651682401845130561993154116443315723255043103641406975232388795878907145975121863513837394410251452713502185224356190939102975388061107256012831468084578287104080995714212206419053532367355154068346675591046393679637988313380069373295506064798321412813898620152845458170671364477244312374946385823732454583604367596282924076272099115105566379869979132209241423573481432830434507613559290738623927838286439402173481444315195258180370579103232610823011057609211483102361857287261130025879432699688557202972776515011457067069910633847104299377600093699938009921341392046009559739246814464041525803142508127456350835787433839155722220216009731637427797365990167386426731931466399117892996705211108394422241991456168430640550633142971670157106199568961431364696124334253727230139179039322335000923895991344812129850932907696447770366960493110607042800602650574326681685732348958262810349433010084894420427624987491125354076708933370482712284923020317809816894421571778575455193376763308505663435414248884416446623474964406075908973077993979134814412466625180293174344619653259619148931383486765437252410724193461150852690154479783156119811163253089080509818875087241288007399299965836924571275480962533110286317610870259434998967879396349642518842908241294245335976777146695921002868414914036361068654862265170074249299803129731367761136599142754998054892543349622682224917752843533483137127023525654748465144138548617914529746238109323076258523996511544937276308945148511671633714609943133408276364802265440535280094769247822151836965514012954907699362868872709911362023503282674250680264134550062897042732130846692171057459874848811119388046356800936247225246988253192187345703782347105655016400735995567541900985696369752353363144663011709934461443178368441008508867818501458405836853014138190743108259280232804887603247762422006228243847391762073556909470219599330993016017922616600148862512832747508446367671837929713910982748165043281809637493534373866679422382497429829814126759774130483758733401811497850958315560578232698803769380361512128728288684755342307995749146701065515962225613364101091716402786085031970940741616950057797707761742767865618793902372731350993924976353627935869240354488360120881355041076309465105925970977172290762940430362263315144765995181119521304738673111412320596205207458930806303339002229782595056174381265442100102814464538266578165175712831665711126737325592732455116394773273214760307900526864016703574630510355200168284562516129695486694262578062887513165407570332540593724921548793162539014441561632822401000886783245402531255708297296608116008982256747417125918932025496006570148677720079640317022241291630530186628454302857606406859584439044561194120659856838280921538053242747732227923335678886211543132159342900600031266396505102433337956377336453538250251182540310384466985765668009150751557268750514626565247297357696872961192664279730008887614746630122539619929046914678163511533907538944138822397515227104033006502909837304746615693895475849087711736576685016145651245181354114285931974842197634533310400244095647076207629415594115914518210320113982237507626881014874286170906384201214668967812136737144424102312655598226773306918788239134416389628103524803658294455563737493993800448728393848433722808444345331211903070788480037979452242705794877878562305068634302264332956475348384325278937390817463926095885509322809966357546653643525885163266776136161211667443102925942565906437966732147111868571351695381494433801809276352744719085099787996522453311060447511702988459490337137530799509740516443179303439430253620825097476369955366427895309682405691406661698741513962149280350865826300628759372086185056154658325632199547068674867895736060163023568470606993092027405202025153615255272317768656627050743422003274283867931310921013332752118166059082869177548550031922994408856333145291932891227143888237859818667015135916089095601625164012755638824668440327910855587799918752916357705752080991723770186926101359574703484038333511002449878365541538684666787966587980539012012155433257611601068722466556625030486794101615379425156905584122878531427214171206257778383958979623717505765415558611276083622735228106083082556672493676536069200064866765304384943675882719261122111559834820871914080473203116456083401361716135494276064822905225130371210474453698884460545271018325690440632598671038688634064613997503934812198447237120143632033954586938525324502365002501213821135004796306127165716724979617943087141179008411803018396713097800767474311293422755775110280876953784932368917132113210410834348802759998124634245980438739127210376954034972651795206404756857104655457417287883588647340530788224535168297178240979337668311157273444806342960202988392031194129062487198601603626825188663575555014918655888312300877820025546397643696398277975611430415748330560851319256062022617746703728138615710357803373006416120953103855031652545516443225324348675390875710500844475373880080987416913688312644881780195663981325053718597325693676466956472351982208900579397529272131551354820736820706077352386382669804449088958576287639062055161916683130131773427779146567545233720549345857936684945198413221028449497903975228114100905561674568321837314706661762281035906407614850854886704444220923840852972311771448226924356885301487226969522434328831809669340599592500472766909564695673956698955205591172770302538772791800221614787980260954196408993956095710048643751343061571452552730517814252594081492609149497937651933476431584693396112830977821877169232758334598218654240832665735783795781777872618441558503538939804958244289720637810652393993217527036289107728649754423587615972219789021159908273512223271826415617280728125154172782367220825121780088718723831378306427901720751097080129669150415944625852711137138450517129912916356992274462190812101936396294718914820908447453217508907606917111534405238734115637861400958971354194857134447955781094110212329900929328576911597032608408030786276011734957642009864964628411915658675401211160428430335868449046768811368032201705890172713937373136753499263237418839486994408159623578771800970515524599016035666478594704819593241794412702416745989567018900969188482215228490043350370254654735884425317761619416403387887040425797063622761879299579886425277325162025143447532279843804253354885843951886426839281740268559490388021672672335544111723009102929611101983593494032231288336239182519847492129725211229602480271785904807203436475104036229812465416219872760547710023795737725948109249796742436899790738457714278558965635688538696396382246545555788621731513298038255210011275364436181759663581017433368984511990474409912507398643240773979745147485400652629391984604505707802317767041417289653737117774749192658954041938710007044674194113929605909046268167926696586577393597758730274657288396002822561561509588104342867921207805367608175148158753859929866151504976274204192592523779496062253160039745749550423292763993142012206182571678405482227256936460089710546712450662061056283957104687469465603990848478817119403647914342610438771907226295121077459538659003716181436446649026005399698871352816356660097764993130987191109003701103559464975124443758673348001968225597904446162208513862516757553543301860943660055749753480572382174559710249736360012340420475448866508799556253105291412558438526906148154143216738114174124468812009818530045530336759060754097352656353973711837281223709561101373291810953459942572725859273708263436985314166622143452463599805138217191312579187998696514630923295529233670826025100473130974228222116661202773326424539806738977724965452631209609678067668332984757893328928288542300783491143889405256733613120437016835969388298050792433975122012766891277831491594510518649074327577442974134999595307316527544057880489390730270077261579260196667187107605690236406430644122966384481421831398328035282700141490544689309843623978770725222721426367698116622688879948948791555069548871563608812269552598903789387470000242911983541942650880085936280962121876781024524098067028242895664118412976777796533499235313647121831260470261493937003227840769441375954392765768519997917613098881067897658141633744271476427956731154769458344748901580412379672917391651464694405094021112163872925870268260843935790330919838468769489659224023206531102853894193577126737440636477230110926853718025469781239745144874604565585067813710863682315186928990885041004468457070922707332818603394529740376474714957582433858234112721299740490619173211279330562921436299802663106067468252361433366426694912141585492395643952746129468353726586004008421588722234873064019557122723816828230397784020417965232828316462819411312079565281898559088149099164187863076664350711508133854636182225705365156730135795410780176770525941966543734821850552614106775717462223422336611344124744356576246806151949046232765804433819412511292999703040687236942499027908529792334197526113491772994305677794311834215318487453869236632843360063490476802575924221776610266909296727965596991390572282443651367917637380241478198556118278896726793117877538495625293049261502397741417689451534754579784399465979765342895387513624142877169558564964609992675327004560044001474865429143361096054162313992723687107051833134909091433793540457609041092233722329860466371047061598707292523478482698029892379989513679868480703741414849168165674956139035919824136997075821364244897596551063050105495689554737227816529547604298849071380179516536951143524491743543894311596672641089021918378382364923092456187539907843395130578770061504997364798780619614795320551979836942135436256733551839286633017965762959644675844037325756769346403191361749248528597971963081813867068669283073148842429421388202512176722592705303221793682038337960548716723511160076686402692729247786347826470019265641760127383138874182691497085859235211159793233486277025662765446724940338031562057660334168699928914129035334314844521853913159221449612909140495615643823552952382067925809914535941985181160665341457207205894641089268229896734774273921373841283047549113802616602240806010695836048148251033116135825529933700533893513876797085923779916646552701318112668830878491712690001810068407122713675339548504788771507398061537145065257869766281892375192202273919682014936988315418955291364696406045590905796998079611363363520723223610237064445705794828642261373507444999571208830465057019943621243171316711043304718407868238842188774147033130950406051469669195501232213412642640491834120397331978275131883770353977495432056259297856016102431702484477835496231324104505394182756589327856504540891759056300235116805469486636862778990571992742877810129803245710324709973195666889869432346368354792021587135673533140320079891758726914772448135630040953717634091958709082535278363893565251933496400849163121727622933459314819725767820015077394833247812280950891446625982255104524668634680984591958171366465961629638703328087898783769893727990355786445641358430131047374106983356174272059596297906210859597376961014062060221864858473198733638008529598825076593168904856570930755732679302563857618475135415050722421042737355488171084428867273726343261286524612512606850496096426512593856098859655780315630112447067043842742319803151394946710132579884047827209996497319266472429653585432341869629837814806153032473885866008730869905559729863656341863568872440201961731509274464186301645427853093252375364617482327612798690621510872949258333536104593381622768707232441019140729157305845098716993401906276217581711497710034721899687580286708507082567692437039070009545628175342989891102796767265415797238386679036372506160174246042739273830665092121409180275318589921848799629554003446529635606347637052936590593364269632985486682891703413956636671342886036726374270841889271391897202091969778908716295687702737769312973626689324287765348876085459075353400022430059045530471892450426946364628660202221397359339617541905200931704761802301235897905587983458606975641085370941045133347473312058665117873565137709485812086499525905202933474495867504588789478766951330570992311773952895746762014128040185249200658427356186435782568881939878121302993694667385990523465679613935011391680175565342887517971055828637057727884121428579101908501438023359580304572451636356910529208655388264778121801825632414918304259410235463639295153211443786665216413972016570543026812044037658822732954088940970789124836094323422700480900759291448914155270037618170789739707820891702666533753521750143609516275730999219591072496413495456366844459338572659281022597198607831116861256113322869677450048504382037745068705360813187305887219561230556958519136827242293848585443844875828184006528880525454603577212059175465897403724756010862162939279356082607980936715195460844223932670804213223989332742027639762046833946374836701933019616751372656003999267672225416193423746601509161951553623785603192875459929401372307675472173225389594095275638131661119236167181807887143577668851356607737681447615611315316886750112887981953405778249496299325777290936245797813093561131617079083384093441017859916763183260362536069291047313901187718717987477676997966908717304784189872945072199601792847643078009337645826361143042448591164867683847264022611135278323720611300948406430052926333470156899068101069264963431776958946701333768215261306888586343329401336475108795079957178668710692500851371331196812821420926142042160894541560812064349607783502545414868778348736039343676719536729536102707345582217157099510714256818060528165613233173297374741330359748270839797293607654488279924734681030821349708908307624718819518181772371364828460324922333317078410252206354759511670089382808182754589689960519417641116359631097662436737782150634516507610956792437662759895688275088835728552022192477521785605451589711681926280997449064954777641951140087454867088980127031297382606870598183401804813865495043993256300680122276610383647657965288357449085277613050633612940412368269081742159679567088821638528167679064155945583990808074466471896801757300335043915361848154575758405682815152479252381168007596868154092403462203522300462502932744455812386581574203537994604168306365950181839074782536630637144465519909618158959722309658260891550436150268362347149397190049118662788912909505047479035293584752770579870738662988029411390748628805445320907896505080679813642981818851469017819031782467574883727620561960590198692832995590658489408442267936986010848496003462460499410765504367360699730951154006158729743765923288148176204690147050426383911204318380807882820200084574036776094030546762141616141107587149458345846838473137670497772458855242790993983531984644169021787431628965360116101872534361317239924853217414083608754343577609298425722023606425149549259019808842704797012753485374253678175410575612756287685473978973315473878652885772280057401497168964864400206649435909922490250252765455592013032039444369075282680604716308172361610538136473345977853995827003924063454821396967692728304952085006579050128326189853695205531722306221836039983784283850737505355998456546796655391973026289928334880721785209022948270222269229708764757589655636622760168795562898582811830688488471468516680317500501653180366569474799544573450430271215142181932009272811588114536033418676200008630703369035598761045310304990373667508229797431240980399121856981959564004037493647095050085191423886304518913538326745714168361728712226527640660175873615904952096029747779240251471077074064323603207780507008237445303341670730600176443436431102649919121529696667543451390395847088251982961449693072840906853033914797833113609490039472954121653710947123353126479202406682801205940213740638733726350549499550971027256733337468685173313106537515423276605204817445041200808006894272318721651825878171797734913212284649206410396137306558276778258935065854679678879955905001986935707597910142536367200718112633242006098388029489978474300826291120409918905170451538901712736678357454903320195226889307776718249267328164573726665331219174433154664089273717072964053113784315181834821871540533973542237536426890709879000010148301685247603643460570679919969967200627187574863231183979290330723915596868806327747583730337708306817608480334868536473414758165110574692550825257072308447157120159908871349705313896292406128779999791297597704368007043741541389033368111909044902687056690751079809819336105200415838885516017839625476219969257799461665815780121357408430688457283839553491511752174088784867813032066730995041052690220397214297543895392503165824700293446931024092081429493399246891653159314297139361657948158741918626347249837742584731600056240042464720210240523479883407402417317512463034673111425832989651618062671639140471267680453079520971888443698156768843411493691664548768857763842328399420190718990631315623321378505979482930510527736829479271832325600790341032476481018179277328180202369419202136013452295538449117788220190497377967179222647126768707437257469581302143294929415401004409016178065441302165109321981689697502722748446174752724155871016341654172859753439542360575071873728794967950435836794284870037885615268517306551389868733385743651650240506024177609942229432749630125779646887958892354676817327286705160294836852232605094955950389728836324911684087421655104912757711798451917754751266638012409920888208590030621634082829925962988968512851337564371888730537133711038311756694369085813114934022044305770127807068028733463386726305613089093005065906945797465630772963624092167003559326922905759553577857350300924221812735223408654278470728812848101715763317791038630939264061473549118375124503011120124181286998069376651643882946699816390386928576702368982155283616481249813570433655166698378543728114740164815209055209125548054547159756922808219377767111507220823003522778706447103476822974288371919517029448738843928865523522859386217640635600580333409617312448882853501473254003485973847891626063788599457362862854843612742845695376371851509967514948043816793706074005179250000428024266488564134110702393954564093139188702293366889625397380674650337840876122291478169120859313069817033126407284194928027091041623455418725361083616226927911222582894646481485875264668429353340593270234279362716568993347183684664267115852692752742172755511651987525518607422767092476235167003980944965141185219825441916950058221768761755300948863441361807631844514256878713780825302953171965694951882134804117875529379849239299914846997836073568011011105294901530079943089492680561586473058869498716945188902484325222069697343580232911012483941537819115077899444416288677937665245665673653099083508921687466693532515060998555492572375962125912816133426097361009262017454069950350497260428805590455698902618291080792456439165230608403114139782643171997558903506019860186034032890299043580170643979794144139490920761277957719618717902689836518924208698270825783057421433495163440710149815907054071061702693832896099333674570516226816724035810193595336196142306667618089411249802007146557460894017620436869099617593957879045457004356006214704673187125433098276919793990318096225799791983860864393650600294913356584242518154127698126845197995951521160026391093884899011465506774271978152786230076943916911221211732419869476456168153875393657356998930926534948082316443508022506989173475526542491398828085732037783056240611029449758858122054344934537065323152737689457293940930671006190786424619231423474736909979774456714916037902688808451059331004871718969269656229498471495176222926169675463628326059133296799044538986725426228031834891107572219995895594107201559629823180258839699970854005937255810468631175153085074012407569096634583758369383358212260660637145260079805258313626080609731318086858080773563789611056855267655328374551185164114392995203857388510247902407905523486760701032665666717548079321866906563883446167483007024560544073513019557845960945368945525756213490956552189772938441903787367454691713295355151579334272846309834416160078073062403773385125944384402612707758862023096195771554079936248855386695667390650290835086686975930639203452748236448736824090197625573083384043447494438176697292848908874376502359381021303084944897115949121820105462943136007549291571818020225899982176024477125366225494224863529420533490460525980498407516457642162337425588284571176980560768170251172828347159748136889846680545210842726376337911546193925725339147513716078829462512999804463802140588373715916451896347640555349153730818569638350716438677639683723610439682806525159950736637403430974429519647049764899487699561253387629408407923176907258762269149453516191851227168218130508054330025137793621716999021126279357943296284456668592047898203002788028583801030651157424357792992063657744817460411943977113183450896776690250257762001466579446751370088571431420619586758636005233084398609689148577873067246392553378926020891269853064324979224945438022322633784861632288030224506260761421331271915870485187841226688096133568482818574963885542617603501589367962475344965061433168043587379217287152752032925159305816400845724963403004347463786889121194974976679197185118222529166882474899910947666122755643574554809841501339737623299195164066571825979569964014700599505458013837020920392767444981713917212348316242636717370694072316089986447280194437506218404273767227315654767239049799632722727684075811931872984418335954543136349085911886619538982955657065138945631940764535688346079836384673356072859928836710470384232180349469908069168954275378043730107147494234600261104388355010373478937359150854940461161884537958885532407695271019131932749887635168330563838806381220279890673048054053120368834705202933584998694733925567912926698768424391494191205000181296831435059979733422020399071317946719024130690381067768557356546518268958013757155189778129796462135358022482435091989329929291092780677778736373874330888816333809794709816698954525315767724861977544978501582538329591670803910205142552781186581830617109444300821126186825688911164520275770345667260827486331854798714009677602118427411462185479990480533940668488103864623384974286847813751315561550913755502574502577410766436603756418913087691537476305947444810936048092959242798958991135386202575535457110831943899281777688274662222582288365687935016741899010836124160788056511445313058864123371188180301277525746401559399687710365627899173837792725308317621332880630684104826901852614650771454081960925761377055766655256729339367053399215770556075059960233182124695352926782473392781189027591669511676000947078942013312272104565533806346903173897565311985914482127787407460693592763307497617381729126955705037990395491340280385442862679426070497913289959703195405230507050436125929015483059572297192715797130239634298010854692421119963809524004054447683423883144409407659561783657087754946990243687159934033576640597514747393925647078267056330383794955547107526876597457084687767754532316643519813135701454508939088228832870792768259895617648424147634627440922463844916834831115664482739314517969875687642489048784036749719998415210499914205496923478930966970753446576218675111678575457556941750006025584612204319087050481864416926202550588326660270650581622876712679802706657451478856420276818237525656184114249219462730407337102789109937183829030937668427393698616958249095984409471404090398180850131992735245108534089612123078058636165754246921201455059552817401474735228151113208845954802425087007699737141383953476778389080530892018647058812625881324748003566393684502674703503634207546529334573780113289048192854608855069902160252674077383393146180750459629349518469341277195343625595655573347777896975271971456189320257783482723531481863442818511224858505208665471083764407035981895893175782240161837378687070038843753405971020456224267275405962979899407896226721802085922592633210708271974683628742722826425230482656623050211658978608895575363443111653999004169749375383871585412891527342829828723308961125650003076704971828120197305418549572589017890731805124951777411220824302652314933235381776644538611948921386569710686671117889776217054624157607992630674563638347258472582076292955332050705035323386299794103187602081541601682147807427174422372674525530026690809466905027402791406347579807373262492295939821253377293871367140883711401604757875565700585023060693098801212051944206617395317931916945437050437132471592146757228915202957776801998260652504416722971155941609880461047109027603720932238677081293948121393304362289594688340103067137967100523755089068130273756440296825955675470722039897673157311784366405417073051258778387472751045986260621662200470500334405409309178344091947413458657221755210947882828985134175687373455527382071829035208817452261121004197400119625450356174424088005640019067291533834031197599207126679264461549822351082150848983513704363062214551438347947587087360668641701330302733334346658639931259875310771521011782005052107566216620270738054747441539401306338034839389422224919943609417761323448337095935420647502472640822629814311586574548342383497383005677745057128739411188557086680308341051914794710108876832058324186619879930788950568435725267502246927420617232778941927155680351021262894896157397691860440753870715678618632169682258279711606052897312655719378621643788161696015228504216056840369209013106384037268167826909154573487957998526450904985142840183306307096917704719291591607459885895816210208959421223272221299580234161663833344089700488606089334086530665602057688826195532193549831667355671155659689040900482551169165583482036671153092679343096291632436817296071687848448290056233590292687967770523873404512953472653770842920208982238167585581000125528422947502561693122235957939570566170179100870368595398306177820528921040250179864839689555952588959882935070998443396865277078435601602341948918821708696131736750362601786370950382444452735397034176337181674271053135434580963442367627068530521380872977136353629552729742401914887918457577747558363729587373598725757448367958377879353798839926886545030683725145460222300582876443840384807649933057404653632393275279629009683130267684128220893290886735842992790657540557605895961748943418226234397992183414885176014965901619263884323642267272353677136036083570802775519277301426156849477407486379744185250775754084376756798200524637255536381018698333268284139490100531229369147663858731077632954504439866001326600315112778087282287679372972543309787857001237724669811111569925553632188119288475737727220854659926877667520695393305011469009059353420276616691522845148168401598194063842938646527255859167844156892682674958591081674772402812222118627965566719632948115433749635160313893527630120876977863731055077757069208937292351139771108284010374423069934772613037916490604265873211536899802356053129501559811598977546701215610274545171225059515031471110125269402387391798963928303991874489027564718583726834558288895002701848477000153245296277194958720715354816245140976622650332123898502521769918891218895084756974901560184306203383594059576900386985155446057369892172082811217414270342684605807794534857630760149788655017397517411597788257022357588230533198307861609168525024281438382314811193165190231193536168487763023033871023597625514562967805552319567654933755417747591165420395036875797513633356959923776901131142059726354632941851698965506981440972554995470401797992742916167939869157845820271025889342697482071272336776811121413552859435417119139547640434278772721772497813782346765746881218104333048559823327331971602158651100195982075314209221797126979439592745401467252974908176420198228787059539468906651787759617708636384613692243385288362880098040118405838252805264095947479135245565094414741217683839902726651596490292119220213288892817519721241011470659749568988582305115855334751514201466680399782216653734161410973021321761373029388263122433253681575697684576657828637582829322184812232172779841687435807615777900019558631716987086851713235394165163087052973742050320260891944226304971884144385094641816950865714056890474087951708760066888754513946596902866458812313339948039660985861697105825074198238759117457614922569525954322044554194946104272873872451855870842910465644202144143211879085571356950665685666716429137577217791009135912123940305675889990957480442770843216132784696286648405104858148489372797699292141501187122566224531058231105498082827102780406250035372071042211456392629715069839723245186327439687239594671753640108103249484074044448944849455648035961057043910630398158567537038328852318302387260323298056044471708564293170521714458404148697411620299645224467125818905358790026157090178115462876598505706829688092146963667784332040800008909036565209872880477816306098817368072382778401528044415689950417666298942930240686540870900086996090323077904947339669378645549410522906588183491644378079694587114810327511626796397313325340004605051831817062015451314450777335305875486368528926880889854543062276223348886538660577373590838124322706883510489228779681087418093320213679953935859301463801290274260397393578717257649362676582046015225283049653706049906731939083050925932364128502327163631669438511567093401114863101281357808696088699696876726931210569915836461644086641176426328280614429733339347579131325653813911204273320016366095062185500091869947095846467452795825528861324880417968529339968812149360706460626875158726238233119143636981104555533929951526154875271186878703805886153821122976414714586956622272179271081026615840389622045644029478386089221824849415928586795939374181293446703097262498878852762125649275578924924319210628112942149266712262934967232128514583290311586829968874922415296860118055311206414699639945240021129910983276521719597103358258472913284416287324036363182164315259096446859151573329222948119381367019652715657691976958046612124789134335558061389952476740034651878217770513942221138898271945284422199714809112246317759483272848649041161633076379915329575866902910453934687343902653907356791409018910185081426648801425106404104030470442696711791950067745159522070458631550433757843260797358673421414822598847589610458729423735049705941130294119314268498774694627474062358518060883060680271373216082678444905237738485012477352618422261081256580516143284092902530914055314033979503970958694098507735354089699430706372719739718879569896532317389783444890910283117599916044729625777107780551196370853099643777477455906935527459989715327707025490034624154143937823271338968275022049426687940660573771566609735775463351761583863011130261908201463359552394442608214052005651444341156834947191582092475122484342855711310033932481048373359720681824163147996079890032776815344790375284880233368113539972246169447479461236563774458941629354598213680780867603005698305201985219392354160564414501240555704293049590843347347996279304104431761424429931102092188205781429283285511832108588337216721214367885045223934097260417538540328248531763381211292590296295472908835241057949905185483003333490360035219818520561518223877877423955788369740683044280227222797679305863224631405597550430531034585406664004165697313747619351557490653493317629198130231661071278251378880588717394470004598358907282717265194490928934964095060160750343198299383178747554215288113884604717175721399666107977664712808509044406492500134998911223243830893154655439154223701806593987688845918453970159143147659827913817884640385547036481357651264417432882561712259779801865843221387448966641519563113900373302230953675687962812694559055680382257142904088520931222433692853619412586597258634284279594089392351978727159544437939867641197688017540642452089922226237071727636614499630585147568742684086457901805405658735683686256302583707903932153840817520822698750212715740687678316809404478390994602847862137118113562193171527670046162881687920993421133463847151337912082245962010135233158673632407622440535387970772345208751707303860694384000497750014006557044535657742090665025362111216022547907192342012597732703575329263429838376446361697616633324927214883352486615447504183217848564419606638266172770002692558383120378908200167241894883587228330163462667384348853705324452382936232231953137704918912323666564660711915639365401561550660446038508466573294417832909353734754606883046992669415311280657435861610789300730622000346764505904339374530050560115075676882743098462455548590551218780001393790631494947571433657551880410332187101259027113502817012362030734731639662834107962751671948976440429263549462817443602327523839509684034033868455139537261062523086812140237642512818259903367317385092182982507325956055631058764262932691201868428065365295311853387888311369684098373777667131677848477575347259380381098411841302478151045612829662472673259085068664608638913909523893347078243571625700458884040527875571937214392704088707012027831269035679707123190621676626026631729295138914395782080986063029828863003413046698089339838712039064850701635546625837885872731457515928434820104379491638812240598835970926777878239813656359094189416507665379011399945947863886445483848314201372606522200956313921760876568927479142611498299684754078212436075507367603619628897815433929035020667810452003701994209535102872516226571142229654969860029436031283963094581548585295860532774391642520117712850506336069681643510299842082047625087439636354277865097134405847094980332497003116599999459681006761297027733044888851161793541463365594000613685985279560856694701797845886812136987442538099844870038666137239091632353171592625361235235774047409305747521934085852891912367461536522717052252585551349163939510564536568086155630783952929216714477412874180480251244229847201395721465600628291268417045161825554385128391425387918987114932908304718454234675308506899139464445644485100862332039816958988209518769912243624478719781068102103676044469347422813569943800359762360255149094317056328619638765292845059316212939202993270854990635918742843980777759416112879032318638830515228781900277329104802841494446057508804269976166361229568484971138367074353733826323965425534089882819538738843796110462515752954741617771523544830408817631387629250425522338797656819379159525574918684266744202598175917972616156704897641477896136984541960366856263175221908830777450924200575032017452667927445727958957953887215083764049617784910509901207958069306000549120813930990391815291948109892658952639595573408118912331515143056379543297485073610466128005395662834210490283973790508195984061750243323192807269474467701398080961119765836907958361345393558826527385903435412338331866107289621305885985087165362178186410255197922990943878977312308065512867317363746020559375589686535618009246622412037300732983933074974015114602696767635699834304128664668653646406931483363974832579002802270727727190561762845635525234378800633583978439468222461138826079317655134787705352269776699471548662022947113667300724810373150567195561682495184367348997217046087457401851489294234516710689469722019121688293771483038171768712889159411975059780932738323656338597256583624441015399688568637951583660081203058546026819661272820106791300767076048578703146403161990570685629919730096868807073846342055177304762621204382445664534766317940650096471901372753369665164696818451781528780626646884264429194594327816335788568172102419776774133293905610188101592526920455465144859459912417529350224538113799388193735902797947240869824131866450936748564599614205756206392288281918245407114261567691492202451870284005636383600975443794986703041794172189850937680486924693908714414638388182724896412734738465662197243096977383087002239059983584543159284022260795745870172932617930667999220320955336439733088923623673172571878468969086606821590365018799158526782876051548028577460723037910532175743582483182182401231227584247472668066074915917224817257213225091200408495007585641291283520020841787005711979309431970080805064769186833033291900439685185791115393344928316906643762735223697524239363351315123704462799698895683458097260897657480880046067982120754260274191793513748936164866124853233876934282283829909458857773093257183888069809429163991962222181522882476558447517008401406980167609916331289921647271310081340229653646172968647243034237814910107184826941333996585401607551959403970886172280996924875646937811569980641951344698262993367337427511661987414183517952416519040024828852251228258154182483753705542637548985607678551411294768214444197186734100351731453197311455501904586679181734952516802020858985379495656039924987160049008698660270623142175358443401884862529345194299859956197074713595689896230775696585951495765211531930799914838699747634533078139386077707880525600752820360871034907048688597453721439663618102772018099951322886253857661635054814376634842695014676581843927968333961195477440643235499580809986036132599814401697704678940258696832092882934833693800336876122604043911827165742331899106725715648622617578817351039020711374418088772730842381526833935504638818312857844969317808592818007622781883939652098650509377586935116837023937566009912695867143069628162479499348297192305242469830510759523641216823202541718899483295771220040704114154169873476940283316011819760658080778054737571645926462215201058757297266643621584798865560724325888428501413681212321415628979885259616945019622111501812416146874295548814624509982729607077215802935465214364768075467712439884438491709315295620270794515262415309177936824913329780485482331250582455246463996251934430370672002005995380359074288205755494619592086480343600260198379841568900959172648464843022304287918520415926659827887630188280028074438867703928676855785942940550335686915305153667277389348657851878401069026978973368320882487271173295870630225593162565778870120881692030577159263122131815404101523279991084090698653021696610593766329920981784829994711185226315538155442622354667605097969879672055195381974169525992274528712056188626293517703263903897940803263855309474744407834083331128705129707478677464491192962244132390991656208286525171661083097400185400811220341891689183098264770077517829716300817488009058146179487753555015416162326848567191234914271843989835928479245101708042476967014658194101561601810464209146753752579151109749863270451114947112407197183270046469635435664261598224393243565678120814600673675273589572739220511298594384690169880383771029330700664342526820834518554475169478775130827299991752091702143504705494937686388606183895270931650158884586687785461553774829944602089409069714542448392796678016295592674355485208517805343043151248684327107092129323732687848206138661980763784832789874058205182594313809007703601281253518552100075709689264859724463643937106956939842751414511814941114461428238429876987944553769996070937888056360393844860306473109683751443196784886465375631860609469417094361909216119732842219197511900928573204880834898855513206790690984247808728520608492777015053429226344330373596600677713257196802226299639444290546741499129931286695932199519338176981645028003001020039008464427119592863588614035371249002972353598514352700131603494836746552682946136524107669376590512741908226372406140998331656690564476123566701108322447681594763456959061638753350848329937386372250424056996714913440133641363346785585787574603150808054742228695836363471604735355701920550422335643982942171633929701061123170231253650048054304604853608529645551912062139777496929148911050840683945738253835854068146449273222543340448565433805721543484145424074003657441585735156928150199472612543075917591829619004974334217449896809790654095461219139624333502007196479875293866705582860519525600322898488634449290059020838751095053370858432611617366569359252501374987197001401724183284801539080863397522307465552123246632699196709808211274573171749700757041311672279607998371104278572553418851864815927419828717714579321718427176944955776589806920970307916373024595248637237295091537624859273979911639652412393280731389717473584790444936406528533737443501723714970118834199825983610375705592089330365822209915108603109344639679290194288526261853801264049836955768827822484254154725475391315087588692961888249524814472155562007622349910728170351576415844195743712072687263391258154455779497341963333004529014015066410859970696025254740414619965621262641093512048914971495903215816194533892851344311596696124101965809705688485979715859888714291829764459094198088875003912559844280841136103307408974071232892279272739220704098361889552872913695905739549874705160399191266159331353301400636747315092778808866024188661434773878235285309232672828954594549745581113450418491654112428749615364459437443857067248307994370541270560776854950418150036734574035414712811842604973393219569620164999176791464189721022553161376310521119436564563282606739894892007506320349586741601510165693071555990867604891863458270268845016995741244419985464799525108432231578901586646489222194313822053061023093759887056141940067006204125772709260006545591715138734271818464474977569650702180005991040490459656775290346549480139900677163132982866738853426012110773802172797694011895832123182313752575215417845909925638520179552758044331576211341623417736833554819885398077257225530603863968225408292413477483198852166364922489291371308019261339035507994207597170433899882495321752976938744393209685541024780473100592059099690920011730557638345939474611377424031299279099068366708225442175915349953507645788089711255323998692224631045031514850708039141937460792173513507622895461011526856234233885751243183256072441800512747559171979940947790744998822201321598349195994082518517494414066863833162053023690448642416876089747081824014304681604687184993192290686924033575500444486229737321182851056919188994604576369663602024033026875375539123726228743202612079899662669016330331776318023777346325918210810116308458030490142984960520899095723099618716885440258808572929494607138461610361909451972041496767767011054139484540114545958986426359195390889662075539456564581259864608179502039777940494342120077222519636975962726309724468629244688504994269825572127096616325523641995439114462646206406028813080920227906434480347371585567613439602956792818530402868705708623094330040213916533687830797606914857928681082780406983663207309727628778265832174564741018250798455807002335354535029431056421147515951292043793636315887739652153369964341388622642752874594798340650329429589690865221199532670277265096224357691673827449564061790015156377717924976832581453955661272761856490125637486767496922182110373216811356706768187413122363406861030322791044847827563472361872789595026287518742271812265029106789753608739111385913379325789859095330697367929393767859052864060824712991735041491886066931756640791492763477504916177722969933027511797340783105059175121860614230243306287418143970981292721173423859559673257524339190319592493147661848075308778298389375419939560171291255482610291876614743390489047955911809575352415640144544581368730382465952808014636146502087443130556982838970884048751954198114714170252485364606720666480689810330494266660286424133152388777433121903983541251339854447717131176887124896905813136150817140080330939348632691841790782640836477606893675181574513189742534388576767440362367157091822371657290136986542244655841711004217602304455184786647810271700329380872906497281213084017967616599378866084023826053084040536847318319392490218385140511597778915658696284452057656928952766056261194527374506204602384323688281212310503301491989087422727785953585878086346960495747804038475017931506400999678899891565344845183634611200324252810986508217596733140552987612913120904683548552543017956310753343679328416352668500758767354768764619461538296542316338325473131020339169064534754174137545513822019638678073483580033413481407655565084389884703835987757590439642202507925614721543089252550019867799931325338775642326163485142031595466454860264485311376351593338369832291404767096714504867742837561749763331002969351555451654628747068682006517237541510188191425017164848048605244319854337938178614543531487987830585539397450667784524279993869654065575316609429029019428223797814299042929049685664342731048349913066312735477969181194475375588845079402774437482263677459774350701703749855182051547013408439162229960899263674794393167492930411038500192199724789930265793623225922965235622706122645138840464742363636947539931361754166627526370345720690046455855124825603195278995084235057598947674844319642098236249620105293096294115853894306432894681486190377990927721253055872986881055196390205631309505291634353158382043279252733296911531593211805917405963595969778448410808770535908856933671582708193333015882972464739575598367557921511098422315884647045307848309834356126023097671859090562197188447396090992341625991391886266392788706678211867002678839993206848934162203283384909093066680670302392066292539660140383373557811744039343698125136846253213315223575212837049990396289976100936634289124940698768433555656698510513482517825002118528920956540717552131900321268998275750574818066709263044535523667057538803252560165476060411371977989270704780678119115431742241912359468905704131593317238760449821682083550051236511727735464287541251057982853518227498320103872952279472095418436922721174638509212872047538309551848907310935161461507302324141136514974911063289021117150520248961214987793360526422699138382570437191195234819478183104030689545997452419921074066306864010987877989277687442887167127136165740917927205399384091152659834150353892882755271737053360169744036391074228233034599924619434737263546719370122936008645166476624306643394249240287445154565813443650652080100513240866444863769377999450961337501036255474991878067408338169716042077044288016614535536314212014547386354908179989572525432618017406449332907669058808854636615939887432131596570082660163160123841078290102319490547266495699704626852852598107497380884553186980964135687101624793704104089832460235426035073021248455237715242071737816466148683176393712429842023371521756849622961403209982083849724457972052461285937268775978003536565380135038756607016567077971382119533240708067579597285466301795713352056831701718773721524455075206359357883064181027495711461053423297896185898082555695278563961203294228783644472604083598443698935595456857467844342084086424220093946613547870263793757703661199475741403444930052273527507352605697500577879127108535320395916572531596415984272992641849082941000089664557265366216474517857514892307927813986364661839081637781912591502304715636936311599099597085851239014917133343506229434028334255088195942790743738888880223117922598331369545755593180724186601726343101802861955357671808082451919995777490230373520998707525112931376889813119918594165939930234754576168562004188489667875220727517680776547315660551700973877234581086764631588527393207921181919963635255867798613479398003907472680261227066355641581740143163940078263222493397877224265059672692953936337886601321545869774940320572740816772331928688028587813450195939524552446734025546158205774743035093960491931058823840174854257293021140818599197834316870372642719619718872282304196349313077884713341161078796996668763104346537977863678434065982941586068880320203236972931574366656353720106415788512335145672026779705028874699726185903410388877983882398943109849307531008516578925789529462208993332505762015670423215768518617351690039513117943074324563536826138666255206426504125928348273927151800655640801302678592292945315020868847548231958704310548317776236473992590802536603747107636692035856867073768581931166197812436432744752001905090068952083217248136293491645031368921897532384208317376936677894322348441659184930850275609173689969338900218387719044391216963000316696810895513199424657380281192837793236670535087562578702471199640552594663224654517798573343765579608422286849399309801189718352467988260532789015949331601822879918716658243097900149936826402347524915142390948616014125066798550047046427648295751775547391555799634956547772777634875989743578190532567455801564552461125635429038905563933457939338181771048305085561074594850219369826635997325931865498380816688298530437105082511891551720143759724257482654728897588537065166976569388438996273887832624183847776234930705945390376703404322211827458826405979984246198486129628697722921806822663341644906615068651914010639538422384817332598950468187263670752672645791767864248245347663502395439902641593629158524601156809349876902243750790298714563698581553446222931697086914222595742771547241322680019499977971918597066818594043932798172104894379609799960768752603264612495272122359909327481404138969502220244663533695588483583576573948919990325893222902574886702307378849839182929862037479290684031563103431195557555310795875492505524910170779756152014245630398965914363058535317086528832591971564767150757455604440364669077827016361878396933880320751022227652127530473051193419595777134309626351580951383649925598178035689342614424482133598219613665588072328916916137417840093213548922499632860151082554122057862309555645582929880689448923491898265310674369695965877569213972332810538032891632325458282082202051199915967311984152643948961066822222549913405478828031329741756365056476843238422773265461197179146378825764940647369480463697080114571216764590740876750591180292428507932670459604158764827282218231977521461933080068641927211209535420446979896707355775076758100149905528623799459123024673979699195408018299756616454194688949092130825062306595905402069969825968951988080503262585655993493498358944329103902237491190868607510319397770965675048243394084778534769352860610640880396629142512316840567069132791958177920826141361602968804210490239622518868171388006152985889257133593716327100156291393912781671792415823470850394613738916117446668610469600310303719506670022241049859925939692516921617760272478292715890451783305071973375317288996099790137430832871757505623314474239488982412893372736795950306696580974575128816339821407388454606340862335633674124196390692190589549713535744938643226107904574411692306181904777803970193099204439995260296131589866243109723786247568018124924828435959631585862797685802856653855595299628148507668243001389064225060414289148624670382685118930572232363469793273870512498502780735175155857919691726663123354510959071277261466189811040027010532835492437454639564691360523027865213525546900038517648517922610836672327954629647266502651787365225516740268524572413362109925495136075815353102839243359635348064489099290496383516758176262875154382756790070381813185388351104537515444823170335415268085435952581671403575431788002022660233811903899087417616236759277286935133728963726297468546780341647609394312348047671793894714836408826989839353677016503540551281090006587428047880392275993394808853410538160294297294152608544101451477804607411440610413564348367214068987345636123323099623193922210949396160237359988151287015470683182021572452044696540379535203760049985161865198767610293798542666483429022525941287801806321821336551064243259339863983576545473814469503283557351182833721652160099127480350154477069108520213899587912036327704558096086714637558189230975149782898473371033023885896167500932275294420132103290628428949691669321424670391606134933833281974718343733468084559331864340270623327669854838444660736473792808343446227079616942153206161566959741603182141962520400338744944753411573038236516109423441476032239554779596904007966368485091911913554462868321215776781208993852702384966112129276055040006814785469672695426030150568586685689909957682858596333031673898816327743329280508466793114071102043739620446345760965108286007192602898919749850069008728867574712540337049652079882015657902405129933183980307005019015700504982693306306874771822821594444504333931160310743629751389081474642391668053555838957029421693601386602474588788038671743444955997215400716458277373445642975216877863413165168785007797666617297691045601538190139018593131845171261887403466151090573689103478325250177385122189585913705271216699630725273855176492397761285470259458283693119208823530469450879378842118781569945888328183490248726023765345940221125310376123116084353243680142168739108770948096923814836673473560903371983240008177312288470069745652234295936885217925287828773612204620331279204303674466865148421023188174610954120799180838639768093425348967825918736128701879324508627585233632950304488810818991895611284652152964009730888593319576257059317298865805362689098684894150237757075048590531253597414036845485570217392803031724882714086966951480359176799752950481655667375714544275629752107318358797404816677241074052014966460054841498008025810879210862133970555724309151021293176483928952384912671286452941603942776728358820824280105944848129417800575708766344551955383848890834835177124874460293554473567088262941309049610123017301727776216408634202113936290714207744131484237361661076478413952398566254831676783046559262940711245358760149983260360621083463423960961158048458047919642151761493881403440113520343366377975884396040370725253731192094380369520312796947877138790975293765721681599628804855829871969903886966230779493669289434819542954362704493195961921873281907836652666217976781104493623497313184161499678335458776694915090720837549776914009172038482317968286877804025543792541319011368208993350602332093968680033429335014352761615269297178453971790746126346255442914315031690571027173330800838345968135236938033288902650027675780199192541585958256914968196832450747192755629294079095398833282739997057820297699359814209921513792617261714799509140432639016852510064932263124918868174494881857739540983397742518245025507822663902152700913381172643691258266108689400631511010846210746085954230950312333555657133299924431690289992751312460174730043402407693048213218650937697455302454882034559681287469277243704202184297418398665100127354245230204529730622146146524045986423680079370464038893988322127997691410198321003519879206749884121783389700986964596303722911693880338590557445436076948241215735615416586971555628332279902388665058124952147980869374925587098572829859575580503265478227813963776583865593084314984715246751879692964925577880642510131143517539988627991901697586519972566468064754654780496374593186657104430454841546326762382732613362733177785050353468947205600888428364286262232860668099442268932459591371939502210947093631189468260118530019704161982412418658186178003212981621616009706130820053681244083667449377513130923440121453829267245819784311076665937218057269926424697454156663675295762945574306755519136624183057552311104853557664288765690670568658552947991764912354711892157345636329020337850143088512631492173818931243338808045000362973230400619150609682755550039555637896311774309988566656434520260185579428702895277916039463870347765069816989499082528361541379294205620344844003282802244237668120293782589861080990536311221366167388746624775287218700045816036268870576699265895006438629757851758766622700594893048538312953769510431164156116062648352127521548795537625342948783609251321619516852760063122038786715907604639082617743987167363325952627747569035229891092301996632236352172994067505463587398759851606336047980744933405035084879140796746284413543097588196229315067407012429456548240372997108969044621791621584964316040222874058913907354004002929283246988711716545083112184724890099624289898151848095351850065776677318202687725430488626834352554460655709371983915385834631589962602121656151413535591014680906931504531153666306750920056310451956106620547755820001568487042396707396612159988090938508696063608957372400144067576951976124522635772150640915402931549651089059846849408688539743871469305424239787314973216089826131742833203273190400300361754462021054213652456634307716402210866649183529241948332307987462054453626441565336721085321938236900348862055553992177691766679475066353974962593957200532379697911230445334395461603236757386639760096185224698885386855767325823974513248948122669481037529765887364785271036730623860665133157123505364887255010392809356519606753740073120794464282594128327195559242063737894521858837434800768816836770924055003928958909507587038451550237909243453912184907810430735419785478006853648891686876337568259188669854707471367214804507102483141430381854757033063065677522429450014838343642709337570742955321420863001074821404984384517289045005416088114895055268037858359094778738551002009088456803812253363436229764495694432208063012929658099851851985953208107823943541058444692344867275850355713331877207368439538573978334151592299564089933980060327617877852854693385332739363020347744534604148314939997316399233404548633922811345243306467837352277738019101378369753612601930032043230026489412751908943588957968057247063037045799180095226276279783941264114653106821539493524483652322552389129953740959302138689446576545988764882873031406586289076679750952689766095048947156210574631970920152424510192388768401630207524760787348412264605386316164641761195247563316721741232054574081189622803955910155441202007060326353255184418068981270064695519949552458833252937902816466910283495870379441457868137428354217558441518659970786732580913263330636904041216371246668204791829767988826534064812217168158953267334867515700634295773089826926955572336395082666446819742344571624376168467874536706778241906374092060480811061285543492676224936793771662435505621636597463386349077014720936444976724485541488918055076551501776663025630779892037076237135474736454800490795560943408205528300855359557064617217671630539620562494752324226443385120783477130688658751371659069489530842819773271866238852290823345597741963349543254023085618773534419046458286181913214481052202273301894032596623494709851298421058571069997154112351500274144228899290137273428312430343772328346559307317165427203009981287619587524318083843367478926245834444582365504693421575588833409746091295850172055890448756388999657685309337419386599293161676679258448004115622066441738378935108130516668773914193033919300532448680709573127093400310729816726955367951186356438448026868547752143896615709602661666275384035081251707799874761249289048524266916194738570942650885365081985525954990602804353488227320056997870982743705613269878014712055496203512078913172925992452814724673640815318748085581763603426100327152344201865102862240075631162366774760135701322831136735165233719509482345996201596855912514077395460923236996497415275268311978967092020579557468036196882998450581319718638869295965768149961667686752430003465750313000548331431626103253462115139798739434394291625121492503970033764504297107756051944260238087987171162982508613151737687492327687801502321563355922472998141545931468514611043212890096454977383192623081090178186569766873567678937703540841846264682893670106372605622455456316194342687033200799240194481675426379314162856066419372769570951880283308115091539498011423997223131088397943508743911199963475021381239859801552977050877831982515275993237413113313413202310852044234848397200891725773455197766232922915322237435669602852626662721899989871890640352024452874071562360419364546900754536221120853713790467194117453606219815965181662063947159570710431383642149863600328715815964987784445875349523272789280952449345589412438041233183565447595513095789048463156583118126190187126350195539995357245104432806319924692391938673521247003105908089348246411820723535574418282260861161387811311834367458592877146157961139384935352817040637549249505641858439708811917212944028756852567672015770096654331552314190303240400177756378589730179966250141234995574313633239262568109277193169151831294526188681035864535545764391762488366197114526607236198951010183331328337360089331495121589580212774440650366569326192066699000522745814875872302913529722151258281524677269833264818095893676403655936598337229932963104940851206030585031150442587677095347908791560541164423434051047690349508676090805667139760395906192395505007561965736802369390937470475467345058809499420215772168676294437521030803532440547584188031060007847164875788624201077738989279836440250208833662917406194255539652429345603159569038281788165334597090961769438744524280683496881495823267691714933980825531222894825539107755438273092662825392916871267958251868001490417437217462608410321080293557047416048258124998646129967266518025564674296940498202803933350847040679946904384269443943937425434322278032615758840553728487436230083401297510959729923870946077808713073308287193992576867235428561420799653155253274937180837870224602197769185494280220511212139380198230389845483972636320500898430279980597311898664455883680696798394481454441667886307347945532556693276646011966097311498336680195233747286881509508071444936578527233159147698688065216165148591589617481412860172831376745955372632043596194512985848822241857403421952832057124709820631637610304665479955971373156228264167161735811357077467741565385571731469444338693325509052159085597934224824031029066601996652272987185451091286189810765370302179843595134128656397775099703469425970001846600429437283105361242494467060524236495064321805447811998942597441113450454182833286271585915692561892166408473165599634580818396003080389802661015006029122141287703475970385804520331446736725440114384747335974389690120699346318459636788491498711974135479497866599810570672537599698511444300938761486222777476505000174887296383159058618694672238287796664774630677343996943495826340259174371090608418839036280385793741572331523448755310315323370335611009573132185901531746928766531201181423353202341611569773071590359656828319916149080869891747941251744951917273580981770254720866643977533390369422364887669357214816342889712475109120757439751493386740706548612297268211526349599161087747879719167890570651884039411689577824270783931887502260418483625234330077589081456372594014224615290124381069785324059576965829877226306556250705219476137694719950498200315168867877478551039465687580424308625578271034274057019793868109114534786201153235498848170040454306594329799705095176077087592513985155101637354021878866388914251147066980903347937650132096262187780665787231403716965072312722237220147370773415586982728076792298979532311121228822341668379617476508667211927417886097583333402574862088041489995371106143525178903825081387286749836625754464458994872979437044188882770996037818411564904647333220884433534453046241446975153275084937875924025294617322125562424573516593999092984243920147521510152216536929571170841423685644848640161682473516888790397302325843896897731197943647278532840891978559423661099192272731897316436011601904724431346408162587126815490227282783176427873935515921634848832226171740151752735602783458845911452952790888201465541539313742081704423136084273241791330525341129742681263810879911849521184978827228736059171455663796493609648494036467596168234922550742562269748192770588003050039187997992272892155171637019821114852352643492768316003703233934193077554286848071822090147457737938932962145097921827304091397140758426705995797856962567528536907423126034680603673877673907729791105171117799407678211541120078039814142981235809938608244521003487292765457908323022449137400926861465833495958041648215143794181438317188597519145193513603252270090761440347341860815647185759675489119349962646358357409590855921810680423201213835322286149348609059537922859857162066918638931931800446596422029837446332522706173712986803565366155746296168396429335618967662936140529560873090282795615115291394941225317008015070588402397234517988587516488093738881395519064228649790123315749239816279040390169711000832668955766674290812150777182344887327930157128403389862497285293677284210897929292656573066391566752206429177890983686891191890388838425224749607041121299944223904081163247932396803155352546588395507431519385803478994257443057969232758538237444814718969227509874600422482430458426337416712626568857897105643184044737634482795504308153580309709686749796514396154464475254198926264883927368826831613346996759151529628421174185843825127414508751134121938356931836750496499992548891487633293401883889174045996699826131618879732802724101772130134995028947589188546387424139298235776665914882742358631408025647623390363341457048396301390688243353804140149266874741704745320974547122004380174666095283435247534853502904922665662781150187165868014534600625007440999785612762500268875378115194998074205677500110672405075477328572590790239222988607136053882163233943701415786028142614473635530687074747543696899763745990457678460512697133437500320443723485093432506023384921983064667187882584393914480463216634878528407368603468338811491430426243206688910746213497442587322422645429634286714368211020595162804442420064517265875296713512984138631820431220858650611688025679956787702650979900916474479384937704335932864838882445232500251463445908722272268652630558521385330864802898837498443032575860575096978355782123408398800809869020791122336400656085713157197115748985553798674997459925318646094118999354401088769309539336776330555866931088929930136664923143564431817454619046996819779500338139392988691302588552699202558906065770461222607978305941382744969032036348994320308406788521921526483590565449845837466570632951495548517631249249465991082623795351662237337706113046900570921979354699906316741888212852092335901182791193564627389518377811402855389458596623463657046847774537140398242550477055494396044218109319703916242086941443400255848473771444977763416365284278326592965873354678061272658449236841441308408036087808039627398685144439591950409527258617223265985846930085947497474693908328046243911559413417930555619688018330588663532453120747064651855390756124881917172648791790941499938315056719960523388310168091735843671328656198825554056099475466119989267528039655111016788569378550336745454063048236999339383900980695885773684794173139795726578036022056907891852336912157148060103584975201381387459353040939869985365975356238031389782985697182525708776233992897766300105255059124851986556404090084491997183820305711528925144603543826611530274687265530100464423756192918418551553649714791376898592524144830748359710995572501771833488929089904826882597132310998115783353321827871452263550855960602626597849802968837257034529148712967398317611660041504073846063815693370850998335163732715273620267806941316450100687444487445253107014634554648824802899047387720470746725290480437792054059312418406214845074106140482380663181432549593940832638786402914971023505660074212418215296981229835127039855674934856749437470181083035639486508201112331149392601400510217645435938868661504114185204639871335063492554479005657852888494344029686194631466929951114421150976914210942780078666004284567579807525546030757043336437515591555984768429163568751915075744298804367083137850386428754749418521226178180844695496812346098842712424338531928472764871938304886524253434589743785479492449370268045873699123720332854261026773593210362010481212683113982931367017673672519870156166229255242810056106302972531907043163409116819475828298955468804073246787942861153567262557881807952065818866028074034711379766701448372519897567756743850068935705452355396976596062869852580599635510915212110139112308456876020764936791336159402241378010893431988498281141897454605293717066376172412590262710668926164018269696071100630812512330379320943411454030810919420934239033265730090566622624030739633883966553534502803184606999709488662520599002378660070563256698471150474467215966476973233711612026751248050358915307259099928254466849309916550291269407817707869108667123228752174040173358920683053481142956273436668254017720456767459609932051933681219820079545487621721973660091973048009506754524210962316951759052621616612101121649880923531212496509479008537303635519229789069268138507650632856463987466494155670031542039791020977319221816175227288646725945220760654103841727398235292594120711760475269012695780932138379423974866910697089549671127109558010611287523393541125274544282261904140852543293311322537831857381993285643678207896095842229235975435549488508335210953370842755011516807197299585179386837391879210891489186713947805317141077189488668051029627534280721593173089744997865583162874569028843988810626023512739828043740323730917424124595009210410026791828114037223861581766268289230521611615254694705546527876285734576711205023219620443161736378183994236383440175696174112661010384326974208768207305541648335026016726333598620821018522117899239552566923988963067152714258170727995431768117112519781340727376358612565682597934376725913191641281407871222858076592155624068085863823893932316587631201787187435777883030861955653662348698163546792834011321258740785470083905153803241828441631054456736100285667112665775586124769447242931284292710386335834017867627915299567297408439084664052528355427226258260881591799136625178340338202723995291692702086883844452871875188725295751534728380213263042658937801117309658427729624539234891290527470958221652332750411278773470465417833314139209698715390889533475678375743382534951858308072335459997778450279281476227677202750954417821563704054554626571627687198125343320273190085249851287466013207605588064252536686268789394511004336566476761512565089149569997381056955580723389041426160003748914464715969290995964213833779476223676841801647655092129634635437685729685012788574960656627215583803244018216878552218116426581929663570762282927119865688393465203790412657935340546044888857625086853780859065579401779193001878494490324201292536462031055506903490551532952246916136278953982138860744847000229520752078899257202196615955875775919180441294606962364681680643671833400909450740578574243880635446325666047239058384891436816162565961627997904175805462874274466195716518595092042407913731340756238550278057412321592283901995431214858581943179481377965594440810359167577320836525056492165119366722435290296351543607013659354565001938693431712029006746023978262494272182031853519142828026624583925804711911281813544216816395195725465000003404652368074837560484957209840734167399252436952576138320404626337854342266244640684718833905637708812148337013815493575599005613574939561331621249258464140265605564344090621255891507756549333417351098885090319990616715632255595694235832863476718799712116718266701537010163187365264031253727087303682866688352735255540453115630437926977535552225871987266328881867637297873672695229742518989030152661080869243563796218188971013595593467016808219220777410036285019453485418897214872002301056602033410981870277723898076099117110560049267423739797626870124274284759585950517647833066943996486149756691313459791430902503434814125732116851549073300965748509131387569648666913011817306126023316998565961360684832801577454767924369672649615485779752259109435459363475250367583639024023262397111162258099498841775090788660457495601491548530349786882037620447981594626279348349036906166908078549542013922664443787064409994743954439683955958544771579492388437110764931301150504832505315479605109572145831405532199052963662571499582012478813998933250344469457601818487276453386005547342983470150589241065633413520404087388205224172776807984591856646355853836823254430213448911428380900159736376264823671695395944498621598291774398290564373501246680483319405463076031746550236050012955878080798505944596797712182803813361342391916360447232230676630788050733400595365407587689935475166142892504628104616093210244868037880613308804643412946535847137775274436395425922122682468632035342531350263478769275597794688253978088737361907928163180308760241628350378930144633354691337821803590552051832380198271411092160898316667961735059590210462147682193396961694774771735414241094066143553282715757774668905624464731500614458034895800186304548119831553872369919270922528054903868644962186408098893417354723393722991574641967607296798614434460121004872829806595186531855068394535933781281612848284853824594895864265820231227302382836226352581864762824125469490696847064582611904127617441933539481001280381347033656627965905985037982597941270100330864936470876742312264428892616101190463139671148485953043854824480178123480711915188030431114435976366145371579895657813951241602077932915281924600099332759535639344201152690964969677912887639002750817120492513397096469308984311851650474197626135264401240866500013448505954917673942562174156452045127635098824944899300862830521554965565793036858710791086137091459741480084640924261916673197472564363128333483474443447171063098587210391884266985701388207786122853298012272191997933170159286082793538864083418365033818922685600843315577416758606632627628296228326812972232295060083332092965380736553825687516781281578539759163126457360141013652886373907077946405339127942030090570161494057770543729490087818992541927059426692532544337705818715171269494535654441441276606099986846729637981306335396833903401882425019852435110222855558955113371555228724713142875923991396536930699036294170014663519495726376897811295164859195713408247041474208879845236599421906612600050326341839167605921244668808284469898818361221310765535880858487571565578925099431689584927148946674941368707832413314832986293026223218118912855923353577672406132903766554625607999406088743425989929205824705795347623968999530621438309691794304828293122712724634744857037323754482381489073654107768043089244558915617141219491169675402209606011231696352132364985509040421624384861229081093840154762651920574087331717956477282124033572811742702059718581660289921674870482476210263229669324238223136400079243893757544850370293456431290440452383137558757345361518561345024101811190524042676149085617613984022171484710911674003600323511606665635920456820624317407678354327335054121681784351268874731445732387929270255620576666386923295582627753619335137148264144177978479174670868711715465056113196149564192693895115384796505193097957412695621300082030496437698731545025512644716183045499693591433738237785534638320089673790088407268175779960765186258181896826132360176633695394301934647731732343618490318803948566692941150180451773765906149688869995515746887473254410552563388630633715644753895676025621279019692375810894098976431464345776149402908811321334410997165731644265468469216670326504858557456666040852102962767988362620014447488522954936416111420906400558227163603834307278102411531740085065306818144177532720800584886136527972710955259844020652199134700939441420123424630575018159534273048914418980523092938037819471976693119354993974345879631306829995386759787882829615494483223981985737734348438487717413818398311792824065084802977122731000741363244611276609522372506158880898884909507444156080493501576501863413425220716086840537787295801047322411802095365712850297711983511025569178313921932932492788804871128299018832287299738375048912831345810461884455966390897598776361622096638442399551924854858666246967369894380868327945709345649542918282389832513896167711166196920320061695774573691767446056454164906418595656190342912097831620462037257359002884703373977969428456606012025067901081557668270900594362307186557015448876347289208602193571134508556282597861868771481201929033946097723846368553149544678934493594558686176246152614013099054857635662064461634350484590143167394782496522440202639523029313204128602450286547087021717201141939884915351279935237584155974070752423270558503212603456539680410410318652224846407578156040344588788809933892102217210902297812155526075312153157823714967230005616283799494353698254607309999270686245427061641568521722832949618004577787455769776742434199336419723039536658255327824211798239777602439283918661312277451230618304496058711581432903837984872738577159394850321116329463623600587887699055198472698148266402008573979178671529168959759068065452487499433925870347680326043726575005315223964250054443878731700101060972554371687231221006227408086612623297313890997352331858804684117426026146485176471792770431625287015479223526002703062881530319316903840786187547382145946224556651898416398348471122479774338897773591883342701279716744999681943132739502672648375553666128583274556060741592013606795234292440150056053641287744101666562964519704762602411564173311755492130046997662581072475732454648308997676327805894414981592347756759799443088056775044421749536572281545357579874934442062205419666821132709234686535288828889618574992839859358479211864584464457492654096267278302603278723796547885038569113188748231676491789533409138906059829882906187999546539472594938381490428050916979130052748553000878020152982479104760648106203443023288548773455869600352369023641813852107520693009244224501742779240506566751966199123148364824335170354258258703626323106279467481990876652534340417124929843503354904255120930933561690024157344228806839694739464329761673163116455310965696438224761552992336177811871840594170224643996550172907725721489995616584270413284288460988903139944073286083951065821252630003283794607794043294654502696863377525056918232876888158862181264149864659909886221596689616424443814709726221990985427623937813745123494807352146069746278526236516579996879676128049041162394810863395289922391401093959843780603287911505882185641098588687449670072276095689749787491617690520799544905474878372088587184210114153221716419162226316593914709890085597859434026896045009618083911075669972211832549459221445787718268897580551412227142560111284494362624973358331441031836503954063219123575251153490025250338439098521093694242353839427254437043495302866281400846420121482483559896364226243127194022314735090052770628789793181757535472167161359839660435289530358270377189945105323969223847023273176065749529482180563634150042511429722277531692010958805628684743506412063288069348602826867893808323477863268835330781887804389125249654661557233499653422052099372732514495155388947150451358051833640123130170815452653398046939076487927659783812984673377487520079650299056819130189704383172774614976002251785603698308061898211506818936438223941839922031184278820581296309730828419898046519987204288487179606691328050802777831267634528056102233286751373354346235523979551448775104820388587112654515282821450913390017553114923973081713976384750075844560364507634941498401968194786002391275055484858769799936692083296353215420397847811442325340230132309384883306391362198625494033060022104210271109620892714648428066596493388440077594405406242303919627009058208942461302185361792604908488832501215438653492643424881862720176135253577210445524296448622491367158354974193621280805971303576573778440031721057298523635765294919138233080481608947646141763386049082142363085651016854635353213931839544662758743294581727802128462545547417221761113703882464961627749115276549717920167952043843338104142228511992813874597430586433362514052130354379717434884030145052855565614928229234715730692092664389197386076810941201334307461094237875262124335107791840544997910689921627463421745838397162751009863276578357277762877094649552525133093218001808732376385487975577248629406615510072667388220022984798029352031476321630964405990661135775291210871657225905229605277175017501018652586308928322792515912942979069759416314092284072635182932933225320862889107718727198688338387602739031960148555838748232838098848051194631674709643243765149879674840841338306389695046392325802894953053696588487265709997715188240382562274014501095283387711365665423104392578386971472291371392616064690957675193042378096216045364865067640021524950497395912641435496808833104302879981526488756645171517011095253644000571887582829213277215322350851610568037584034174083172876108559944841508705293455277987195277549176784434486736210406661804632038954113972059625495390029731687955369354868224188376979163738090184209005698220657600038020215703845712847901898098752297418017405776839054661753920842453553459779210485278810076786402900588890349783801275857737036973108276391781095542954712799226512891767163056099448385753124022062309028910825668572306784505914327636766197471812248494248916554851764936134473484252624535023392881875467035110536420261394080817789242475158800289138682665824210917918439068477500882920385157042927525987532416023172121348412995974310807128529743069319888093473465191224732951105068259777698953846383426546900119864043631882376842040090034304794791987462582523660076327147197861721691918981362404749933005440481882966181318238656150805258877701980285313119596511003039985208366437127790000297717223153597753388626212451055587134156877378026014212224013982987823571753991272932864064437608159817740660341310199303475315532271529152242360493667552822156774765680500784566575102696261129799958941511872844100021539567123606135736796351690646580087755334117099791793228955001189804095606710579701513556240381180102909290275339108514764120767451381610373374836427959239905758762748756536761086772272888327429401490412281407817823626802610899188811155229622236070484850622315121016800578455058755236054091043280685755510190346070721583271313845883016818206598758338099983253902140994616505393786404393983007904705910455058038893927119543020441750154526989253246661525659807407388560911291494365842586513493070332569595680872703234031932700847680456361133712680141866920545354820068033999132902852072852347365406413636631946227176147880715027618506543754983038559206611606650466062992969463270556215469992597695160961403482480827700528076830079483764360426913348625206666371529369515417850648661200018709672684263360859954478808079784950203415557382947373942958632138746006821835276312444197088306566582204487240680432374998987577172443200628850256054172282959454921957444344684515208422367941279544080751300747357231934806752074416374592974127580652063039413614266178471866815121873920588313171373173962806327668792717888707031592465029952281288250343149311059673617080940191123531185638297094425568276608477587650732971210357238605040288287247260941791772189809512634270080712731937339696410433090476056208235553891051400596855937925161797321810558152935498241441467635035780506912095610595466358298896199528365441543289418185929865419235347416471010804734125447019894157104573418809319667806924322992186174427260913977204785180584008776940454732752479307895385126157375442905004695227310965620789978372118248245167150994641582064061960223831491336129751895418279837120964732846118622230739154125322919717025377754459287383030151267237330606337594434032770778034886315883838607645076109315857283126611244074546548448564526612595145070498549955623563797013418457560812527222096816863300441755947530279604425955016266138771248226733867654849000974552361995858339566836341335138320913869698389986012439695196781913278378550111262443501403654584773164636291073751067280126049039668100084769306484277024919330400188168026976371235452857532983484654026092607442855192840022077653302426650339435762111140498584838006425766336111326485847535006927545591953269705203573785074983456170453506850260998784287113485507857731408064244320092883584915490795831138192720280910120577747095288174766542088260359521871688722156524993487171388560227964294165191827798441653527374529819158125907237036550873132018169823575985979576439638590477676446060662313107913668688230754649510468047290784010307860195932110057465906414756073937112870945509781356293659437952782093854801512451744970836754317849073565807677551256273638795998401949296060639563927302532400484056010277406270475009361903887155127370725861622088015875220240309673361545133844075067535919064264665159316729147048788037408969475395112675471946877782948892972196287908189970097125444051249463112517021309549944816737895979325901183283915176907400833419171963678902526680647302405234548599335154695432034753001156145273825376379617554535005282215647454249514718227690084441674904510136799213421347669161151493427548054883743960951187897435358193494558737942520621649931047768800403659915123643052892777926363304890340395483902953280476688698810573193083595278067517788199298916086336213376119213943265252586014392629897759934034114046804179722567111686726885743799822045371583728640081244485496023036136324654590838846966425071154959188464985701598359459161910113284603060898225307831059243438646956753906906251421237343287106555194082297933052230420087280026654319525147390082550980632447561059209409900872460766074915630073269270599989856996002381089907879824496605669178135151586534996395678233345681703279644356735155401908757346477681629865917312618503871901121472045325275692365673708398702187265866070045256649575334291544712474686156235787351597324169183412400847579112509338969287268822587337899658738161452189560052818435808584541110019856899343419614580942086034212521494669284856037937141954459788821912960999655228541352300644122706572035037990202977425122391742476590269445035295929422158245870842816826475245272303183665980000946889731100058134555704096485793008469828255811739259160612950453256649169997033992955238546984536471166240398431613074328944275453004571199136829100491077484953521391928826640899917080005403966549646258167057030849193563824680479031436979442131756804585928890460564318797527269768920614388151702928903340432098509931263666897846971205726902374185051277849919294701821195196503737487048272946814702167882391802068820948410609902699530786941518928971878598401131020988497993781833571562137633293517837639834646473441908816819338647138595904056557137482359134423020977838764344837640173429914027231051884342644430642807919253146737237186570066189769479807849216980431042290085874953242418818427091392430559227277843266374715471009697133278577130713933776339108138056748333581905846891282621583758822829112646762336864639697117514152608311633287806299930991867672194407868230320172544794865260813996319517729540008147491520039970874239966233420515015775567420642578632274953668865262819266025514432847788198363075399810621280427135610253181238259141460732691333876335105758632482115517007852222395183383261169199134235865023341333727000926269400068941652930513835514672680923905136033999102095021957274775621809516187397070280726332657853472886017331415921451327202801267633343961391133124880349051574740886035071653248433953848138751665948472459506478799544634128569777959451204042372242094766502482013160346227375226591596920216061367142797583832045505697074657782971909744845762026208580606053628809628839076091029535345254875789949766201433959704118192494340206724466369282785302197123160452590315662406838849180400925807057664738125530644639022010187561839603960276829371463248862932387608617142816635298847242579431739904855572275176078718534953066049800411165111334848741830597348281961971486394448450200945553018877616955580329943941368390801277510015180005655828823620545175743974135501307731703292935621880399802412690775352776112286086775015080143679167982299380910205539203824673197415387325611726192216599050067828173141462864745543465350778869800456089016050945287039391463136202328272816330891760357363361224761667547038609831583234464206269818461107390516167582449591606813814935162325012264908659567616120673657562213302484836102780040301616674065004640780190811595742136912434542540261235825589402320739279771180064465490903599798780034887624782510807032684627626311812471955118776347947870958564801194507661666808919260837789025665267633281659872866587985435761869743765462975316354375968728773082662141844758197009699642587659345581380449797705392818415703144221822465070350137987507135371807439893245149604806097605460146042898928817693193736869947436073449684804233145828736930917762360857029837779708367945383228193181966819204536741374899641944869295113733481154374600781372478535070825590040925581988967532601663058776072636685211526056978104946423830550877233283343112285129873138899881829620071865665957535664163265094012793114241207292170591951444892154223997329228783561944317473038484694974204224438366302884355633716083950203025422732470717350610081837144900255038086075659162500792696669609169508120503937170716110070262062036719860851166320933638007597140195561351079631069087679350700278469910809068218681640659549798980602131225023671290709194268756020095793691212537290133831497966334637189625221058616764708110272559873758327979389134386281491874978850300504706363781586478668405873741950063831192084724293444222656082133488003370082473163340789066396517719911655282319570468037769272983371136050878278038885465098538333061542364991203654122761788917957849648012758777834575732353938711480527298806661124475983247543491406174872480176281663533488127904622489220228674231315688948871567650810822444886928515697532385337632507141279812064330673558461758872970598235356694852774624914909691019532432952313367890502242952307608195740917493268456892440662821105645430922553317262804432984789145476188796422619938604942336742474286156149856690598684258631603734571307812035640564583913298374949124578005196692268326362963340779074915524371233160347041061063747014531060088897365550885025476962085817582221577993020707795639051908443201722004710633995677429541406132684797186726557346618333142729672082744581482469888554965463444261169850242458497351803365629696489124672835725644846389477723392847381661407005919044862760656711720349812405626831430758564929012881297281348291637138262308839768746660274101386913894227815336459942242841172072337820539210505776278508134269353277916540346867424155923747310837176554490577684059436654051935345956796603183387068506836546199636846197607324507968231412139470305207752775360377982451698398239918588159597457342213622257169560010428936290710863464061136598651342155291682376709808838615669683775349442652440944821970094377166129017059096185202367990358009096113148512025460692930617405545910869879407292895918010646289499394150733985998094329697027890515156667387007496198078911223193770859817511590072984109643627644897228145145443781677092428849835615370101744408775274252351194802137851995545448009432596042170232341590390843893317493313211194977363165804855469296670610027688809164819762428362662709910048126346509540872716918321613318097207374515899561477151446241304843537650621428557996399918181133447748337709119050765888578872557642538383932640252512304729622304710551563624926316202529216799988223461665762438995692482216310571677154215882213432097794627117780515333472804749701084004374453587057821120273586032932826135035485027738310153067476978121245015739169025685560104528182847511052723972165737537153400076951728038790938321719579057076958185974045005828733644399158157454832883781398704856220947264837185765364387938410159367701188862475426965265727283367243294742756141435137555423896678759006075785805240072103412713198732583081975859095671602409284460851196174017135889005331811009613395919143083889780040115974091498659491073055378602562226730322490053023709708560783747398788732670498206843245895854839554116573636795055926122041837842450754746296121262215829194887004879940163486430427422126301472582194639428663330746632992418550692570311880288061791992283006740669073074100830881327349848943297434819958593121499694271530281990380349002859138769741623724445205840815790883179469720470136312744810626204012276335748247516751359065312056714723195761258802567539154757624607856455542987257008272938958516434778503518263886866274032604145185039728979467819870372620314100970887617993620516645678680842324325444132714253811636526436850996088563837815334181030922548747333717089733711068671163265567033725323665345079478840625751749866910338164752242156840152035295488572931320712981715154135313073431398238251788265951881674307397322924088401165533978437004737816492059704485369261851187549545119628967844586915650183409008085911451690755205195652906433773604548705332698912180475868492050546005084378806032492569856149980124533358395077989215761954201213010437909671799820156260805301848967735253267095059165715763742561916396233849465681078060809527670774857288404087791067022344207137733476873398954975211159716769058443821327064865345747248131812188119995286843179821872286191995826318736250642450362116621238972058365860238167273207241739898587714703110687837873566235360884635939110760868873556360163773497494928377758503024975159692493625284168368646538528031793834858776135631621101633965981118369769060126158514420805035066745920120757889865568717801853968238507911122677390269723030040550017776286710449150199031341029728228768465873297772256562628418577159292328057317631569743892972103561332639916801930656624224155624398755112502248338846869410122717827773631259481768813881091812925288012375575813780285241643765740404818050397916273272902452504765879408456340994399773656128054880163598834928445180469010919348402005898306062435135856422329528448008799132800829131553750184855801467785595276446951194197234000066940320313171426341450489642148447296759272201630922677289762531238335657712517660274357025348670501461372371056499612772863393262636478005625286702467413901160706935381179696276502660088203371783911679670489024700840747435594008478741843324040114357187043029460246666073964947785458884719715033371844842925420684557879592546173637040159190574660771233330412610614601118877469323097597302017472244150385020823878728197082077863805968819890107468847713419904564175060948183507082090723708626656642360855790098146367764027876624708673006852152857804244970549930409529834786700193693007595479268720093344902043382271804438419529726562518498939526204771836634366454846226635286277689020886266345585679099987729432528719868312627592991975845686450942498659943158828314188131804113197449506050398921746259832857067795010836458133972869800046554569712301911183846945784023114292232779565403202302039798479565452424340277501572444076682024490048177851139619095083995379902723409929986069114353770499356067539088486891772339508203807085820317035428728027125283036838386530128145811753894765920761215833214161919556873744537772919108835257910631287238308308160604962231554785004902429688978758732878499737463151111402213210588417099595283353134630793249238817788323480259187385143650184788023118516886974951781237711005429098026517565544939618427440230735838221618232816111076283874414393147465107469295535433703049207232299663938061242966882784588316549650951764415986952204081345201285676665762743356024067507797823021972746657362791782108681542094866975706721672636116708641779804656240382607191945755925869386911029074744825382943303776421858271413505932958729404637245859572156100092495050134296194670721695275403732910944674627100410101208543828463166831644351707849289543112329221387947124397380412320691222358698028718297694204307428179585361534508186008623361574453556787379145292858967971456768519902848892697063571678411019921483433916104851615710294397943007188478647366806285837539927752855112196710093014131516454405836600584574423879183418690314400780422029444775455623376518347464310093371230838746042068472493189565308854824996960388537415230246809897055447110276596622854596963702813987136765258502492180951679229684941639259370908410044526106681699922256544192548139849657312992314515027328500371257104189693604610604856039391753853589087045215148623013498634148024920939617016818645760163812511506166414788652863592799237224453945995178639799885759866045282296322246374807383605970973833932709193659089458110956167823100883868431108922542578300432067187387124588864092491271446025389392437667340460400129603029365510697602867165422058375407057830263468294243632682326074765573000888649308083679916746230830872032875386520664590056293975990353905728818367708414880084995402540868406920424035299042343912112638232281294965765404466548383945041512529557456485146386570855029843669695525968034638748783867372908523262935388302907490985451300826737012320176624641583994472451088318980234945613850322322299393816612924097567640353146762221133280604486638668664326994276355980973857660409795770409182017626261058575297927342929105232221650001495771580256329330411319358640493272349735438030780143404484753001781312307005533547063278693742854158725390184945072761146367280983179987021849244499883433185045985910151363499609075680845729757403006845551280041661360530368559022375285453099999554874960693904701964281184262959834204446258225166114362770693138691736365139602348810784826748426088870588402085589162891524157470856123422487297439554786761132049660565746738803751288173142492453913358837422623833738999854529218570970378381566547287932718161777756223766517083238988286488451939913225837549141276986035462638041647926904364485095548875692962650735757310114004469139668159583746828409925865324408451738852207590573205861776884529964007735453707577245755748280526036689450537351583033573920444156796486278453107348097148774578151525242366622147375346423355741548466285022968167917242916727451125283185874744475348222623749051094573781094498231851750761129313523902911113265073772827815706775520325619582724090911118608975298452876104510977045768591932421345785373651521390466342813212648459534263849014203936723133812833871834921186045633654443078994394273604483646854591749645462075255298049589598656878614575929118380356458866268814029083657768492480217462582321095487148542094468143423448348343595049010955083268957345899269755790308905209446468012641276476888207739560259585114960096924708111903847793665067907423680190810449376295955807518434861752347426474923102101458633058186862744452459348258276007162748393760401913407457693048147813681424699723832684944576742344633658956152591068847069734931659628427600488844924011290209145726626949573909435922076756812258906477924556537939396372285632342555967170973675564296316436415910386274462850978957501270980661390340077718068129536230152425880883569742944560369765670608661296554097717775882873651344480485247969799348410383101427456299758369570359981607301288123730355634371759462577033579899303979349752458688630451767304355830715343730614269449936126664430548216329017626076033582128450801480234701112370842344379647297701797268509673577660066722950004085317866006668991490142345788658478107667087584178161453662939627386186563431856008223286659317541153867729885439079204775288581461586022224873858221906780462387826327317667608023696974294835689377457389666887720379592570863311845535729937593089755321160701710407197201702109454718411067968462764560601602826453892556519868752103940919687569555115412992825664867777789460609550741896619969862259194730079877110935170912095545440916607045657697684161084791843909821558321629470202354456050438079173808762802482478793777855686365155388530323340900250606937754607764695426747502057734200653212880183306581365002106644161384802805366152852046557202976871603862987572474502357412091666567191318172155898737529075490704106097596197801676990140082151113526527535247228466287941766593837876113971108564984798371193768590169470334708142147138617812353314459228700890129536546487838084728108263603897770353112170131752532917841994028854401703067757758694605405610893180264439605583562172001797774750911335563277176467565570020841185676785276058260916097203235558342950092525415730377150906926754036374313565628677170242420120240692647292361248101489557119561640581389701854264983365059478695865192813350010669541177184779369953417492351313928539266328870030413708408622153261554962139513950908041597197911346455020766569086008896399228232683337491342553200530672702296187161125022236602978308112558725413719728079790357201191108981812785353859790163778885328697749214779032154172704303179247048720514711652745539556167376588958740570718718656834007129155487642328476084047905909050577386320994101242180438099169138582711198351641056504743624275375065827364882114371445039149310004181518659505196167746761707315991941495664299029661314638866163445260007124525871161619691434452613452447257991386556625906116155392049005151103954615884945786717928733134968582145914118322131616456309266252190563670285920252464827462440957825762134324679595982991839642430499948901986431565625087575454137987343630285030335855074813274811134634531631646145004177897578026495348811656134342701040622922892121978763839864918071496207576722567292993159592632581733382549551750392374728655342233942756063038465705847539791382365578862536960783684963458289810884416171685695251993819918463734503166384826941006230304880662655543324302199883320993553055379879265381415572525685079255314794941014703775146962201601184575365344270743852759122600189098894141654796093560561729751791065994293223764719519157182848704666410174359622538911165623925899927119100521746787751098534760780670665682325719652395429309717265576768579547323253066813012984467457052159707703579770427200697966050109991181786989461976833812638922872085998196742656377169042794631998205976835684426462000421784077717929742156721960573752499521981964276323769936621885241879375756189863520908278471666649854033721480185910109220476387288481675557592033850927101302373759782419324321416551256000749659566999465419772084843868059958941327345231743472116027996089303690321569477495610456597946238400726648479694017641510831530713884686172698092014654431110300354096145371755367764132967017283072583465959706823403342377069999141498429676578882832184393371535372089708323054696061225001066977197029195168816460285349359961286842442599503741010208566335856107895120851236240103098301961961103757410702212040062663355234641137562951950008964662152415588013903533365910542055328197765728185070560371215474247123532449869556359552458489724594627099744811745485447152616933135879436103086962806171790857684494542225858554370476004409984373808893996134242842195269774417885113881384637457278656354088608411647843617444510836301138694408247388922481544211437783421359328455633134894908369692353571293769599264168101269764172467112469115424610460347058866557613375035327860321443811014579163112936268575416807356496845972704526158310368485850218826716363528200674089906337235553532248088810680298309305040200752826349249056444957005114835554474520229528310252435582081420674747565798592259661393291265349096831074599928109964010365128594669806442855342833611518275555566258805953742882515116223094194996434130155202344503943712144394303283643962751612256259456155790054993529829023896295588491687182719126747962527981363259506513019330167721976673609313687109482507632906506447750207994126683612382088568261114464288916118911923171430370260367366350239473491117366395830226130314534330779314130676971672012858945968053346346995238406952694917260833986673627923534640016777712656955041004325447758409595022715059432384503272160477383377786368287318322966320544998751902097376608426315494760060566384812257500840779137504147735231507743618921868052968663067433200747539985167384600699168990114858481739315448744929707695924768630466027247489802201512990721080799713401799458023445032631704097545707533105716433769081705244420860838731880375884013115852720161394277921658809550166227058335357155408752328691070545738333712568460377454280634184445629325254220585374725182306015930115925521729849357158080019474731612369750753164175370797822029721044163917097135096995334546059702732399366000948707672846753355659288554299366893404313181424423169810833622059074068516076003721356983969551310955781018927730378062605884114794851352574929440408945518514094892345098578746920999878110697005235166659537964688288419793808490064509341075533983708101903752449514144139446395423234827110269181735792471147568079194085160527877732642423256788771387313221213757155080843278208974555242085950386163638805299749063761286490309099890690171074884944425731792381511938724873559844006181070928187744122329087196219193508993507233320272477025709616094729718015908702503681383042134611720246772277563186494534507532176332064284557594644449786043650582794105845518896777850715382580688149606645787494046057299172519788733676278082523721392232179991390833382737063730747228105542229513841935800351370325342092784213064180965190570223570909807136858811508461882409363125047439993160588359739984685279343258173678165200968002303750550913109863260828894236694032779677460048871738942298936812376156185397780823695340389504579419948479479671633939198921616140970803477798399907783866420633677328245768934148270525926564896740968823923328385340145065253751204247333686129321233824629783529241307938445330760265009795859169880669759299014333903781072708287668659844640156440695692474331178960641523625909619662189180150425705217194291559333892800268886857499982815135652101685982572620828950621714027005700877139569501652131991496562545469379639250452381993523763585229492015132897403130587369114724438787804063383992301708085104486192662142456226761607822096333456364422918885099444297839301108723535623887693157828767095799807714497268151242497870946589616969085241818856076727490285299879568495691405625928668736828844497775775685647464080113696072496552395478374474193208738787629649113237930253482288281889680798966687076470380429016141077211757723922724858898065364362846548491506208263069734279585224435880347238799852377857188242878185970930944463926842184575949097742383403381794333668900542941615397050867315814862330016173078885427619988093055602308918975805170958777003226213105647869392655606421719893546521895780068615949334821462098227101707758649733878492864203732018879349625404722972553067041044260241536618397097890384297293236186285613071490396635397327714460625950814687968626881701602458154343461076807208640919937809770090446001595280396381996696589401059691445705661978044758419909888135267415052522099748630393525982232230393004683686641609247474086403553593227680956949884871863649183595308970064999502308012544123419308722300602507436663487496433989781303148141395610649101191738350433588094225723111811773559527646486614718736399622214920510942293723258143859414132156286864469643874250186821171709753220973232314321371815427118263118864741661044653965507291927720642710275344914071919447960380410815741255652506926882813900239767306464294439793293556513540239491481363762462911298000989979754995601182991170690982403672460029998432698545807245944639869159085275430493634162500097144633423568539055035154963543647736286002568281454769076085456986285498732163517927350708221760810463200030316676835109320008250717367958789817219696509425812268774576441176798354735035870051285467997168237603969969030929990403168783128089977820421611971024074941357582011040316134327686749989914104362699010415086732225348036678627461202929153130328890837897751925075089432974867837434269462725843007919238687773711234680741088203625686021315364682770510420888252588524257651776826177096649637008862014323276819918074511353487303357813678755898584910755719996989399965905306945668643724855845010596954150907582668592542358626564314954110824977325061047190390922624142070282516662676118935185257299560524340925152492609013519179047242549668262500599857128174870256561951981971227126804687570381233224570305295495339515049000088771365215600149915941835744538883616695150349637184861036798875141419481480934485770058800618538312797800828007422792302616523938606279596379693856798551447535190793042804607604274401442907017574136926873692096026132112728976380991037391181132534496993302746376156235707600226868349574840491489781074592128192823317904361125729485396506767602115513442640633882873703319677808584663440253805944140614806779653215524232851070142262133747757564126742818508640692978294738174625014273050971267432572497188637187987597132956072441265785420570249185152144653908978033887297282763484627750716877015562331939262965996054182368662907756442829905037657974921796265954532919623127453977590416158065021395651005066011167140175637198940737467378608026266699695358839671225394781174313926081489110752683167260716304615865695304178226343383064518873583501771558751103246073188509282465445906418512241207101475436636838529290884950516597256972827900394030276852104174459629886833577202378612214452509672587431652045892729289487986601765205864211742690051899684996208014586512522659765627097019658369867057714972595159584225138550987126682481069639686106906440385706658349170209303229273642994519835841530326201457946168819315779118897063738505370198585151352127783304836658975990869321327460325562605804105379546507673235683490516948844179323320597972939346390765987413066015724121397779428619689127921001224006296048111411867441703625695271537529315362999463073196640733598279553506440326653371338375465951750652592297867157102381073271610540587472293825543835197869523264190748742088414974290739133681631882225623940875090188810605130579886109341974214122135436984409908998539136399370612342493940208756877692846146924181338838028702613833490148202711432580254757026273677581473007038780939297829827820413853798278334884435152360806629598406276749492865074065492124854231185437787932164660023043967155349637848521890265448167833608416634000124899747134511729212827514328169407953912500502105610824439257018121806339781960225787451797362519795312106200276428617431065012673882594258975637680831769984707761493822027812868585742360571223262575078123003997516631378236937746913030272890080717733560718388178821910692405056770183194943048749738221743355202575764495954703413686378410588578732036226847124482343214112412394780769563999852916142649484160779554978534212019006491229039235819505451124325634520297750870419132369195903333196614508426999097044459970181566368448586424702034069709234845131547081602049105848918148509112462420881004070359967054637739901902837834982432139309561981990699889572695752299782771635029154016924862684375565232988246763636307354992222721971486447164651443579845940317259259029438007734432451063209773606649313725694320181671998145691010595619104315798628958649506803335185459504285757441621441472450725990343862573479091955423028715875524253332467239797499444314695871982964063000239981779762052636664035092866852804906674047650918890887141161248647994728102039079670543689113381441605914860146496576599763873922801736395355860271137580702826535728486695063253796932806959621131224627073871081914723054973406106793209381822761273055597229928727321523213889748743539193147080558824262972212181762600897937046249430612395410049206559614508809344681091107191290912119035027754364193253606451919529182331088384412071590044053514602294987616243497863227483194524701447687412507367801951088199216448969103698135766678908232405931446239645275560222224675535718712235459622622752295102345538065982582516584266169722456300915017111476005014789435997349228358999940622221478382084606025187370370334881782186792040335504032349003705929785659921538903177362292241716300699029309691598727174112690247937146314247722440009988653251409096525904321021698706821714112106804652371685179265328013960898197063054254669138879855936843036665377646264948562661466464587643927770665905508282533104877221259474049974423426698305808699895551632156711140459082102430082353598767573789896548890757318608225580942223588514087927772470286887096252892621465030404377185357249487403993978692923147943533702109710297504975913466048191928731079917634181896470543183314778717256837367681684735768381897213858914283944435319114875484513316602002732436221761908982208380188274539233429556388960624258116253590388550908077039366966191167528323935938683228275492347472637712614782369164814581392437334128539167424890230486329354138302052529351550030399084566196387659981915624045931288398858067327017244784302845448098091913271229200437849951954697189783151110808175486341847357938240303273567493627964525613444105910264644757385030830276430011618422167066130501902655746779690115014652025959868251200895261779794433851467858202739908400131887451154074019486216362145348933405518704282666687355222940401169669464217788338459155896124006354137531236982705551431561036472482719693459292631242659270411571064147974865614537719158523066993313861615513144306304318474645248063417914093406013005090454346786191236317884685150966540410404446619245859820300993950049743410139409420654049341958215148393015889337030070746961116722712633596784017145598600695005750695444654142197672620166885516741415297698497914148906754690444249725981177265474848534118753881355276807767454210423208877674472040118836512278725324882624638311030925602732834158130783930273194294964475300429265756067133066867320460938165348344875317579710101333340952176304019868460799527849998897916835286144490319162772133486690587292576827693066964266442240910079025078750840081287804597555750670709807393378029653053902387817279248303015524397426027686934087172076701839666843874978546649302899839678180167719551094421861063256308337715095250336913879615103462016998191150262493293746761827308932556556247159577172902496747950388180877238061645858208139425874462299762829131405668052866487800776033242896233743676355036641075797681490815182464994779192901843223578365717724861511608809953996464595330732985696682778455478106492244856142941659813016323244794959932150052814232823410784800097251218199397783256367205537599821497229295317742420117401698902463571415052243077284420613977372040602875472719377504835560381085488811183508023921159259928011708097093885397090013956378969563096810829210874857272607453265097846457212654093554348533418671067313034730772300424896413307673288632003753771457142725606136636588307735544262856580471954383207121652689390840232173788373347871474561099172981219460398473523151381280408048204030400178938415630791948352721477144449622576235085567139461397848685941793485726547320937566178327922904204330121876052264590301258398562892943864157485769053858496212627200991309393584137920734561393561379711749304643005752081776236273141126997012891588974692407305287867267771619684413084616565628687536217517852462139411328316915048484060917841154804365874966001444082332918360991746663875959998580860793217202710210095237030025252496378305667190947660189180277756743862202594119808792704653834178950224450993310523352096201381479136415833516348383898943976749615120854633561837776996096239767726240972113677234997973984701739391651259299571340548618517731580522977092531443478769091981894544733507679446562582046849913854024560719842912227836647859008428896286251190579632768031487007196535346933829062996963516162489267495750309105272714313758654093758875951953301409808063063906523093074804547309932600571854888607012173978930394800996449476893023887859360804971539498977368365041334051457833413742646204158048604610377723175431367790056617938779607492862754342408010270090427824259168334682160647672492354314166274873189914541251388752231230530563485717320066448926743184647279304993963582060436434840761092664531499643025036122806305253255357036596268554698200951047206878397065912444932773788524524728033623870644448777022212784811028155883933981492063332610993946439780797436590188585490528736113563589706024590013595065109356711975963476613993467826944501419407725124821940258835155898623071117236409555303001875517106999141424207468004863241192759017105559730969836461599728964962840227079872503511600814462880757300582270448180177637602521513405824295782834660411186212016305147536984451345791624243818167153853615912421084344481648083335670120947427924559638873381944595505143262961943053047178502110190156373158623365118631910632755326066110322497793043272566794007997278696685326944886339432203032062874448312222418633012091472563656506253655499349585601730296229684459769734874738938427110353511067548081738096087559070379205211941521887409872730559128447067668773915200448441293367405337925260614919206809356930933470290495848743670368669771898327729445048154234803761716784748423026725394612345790180006811952110384771886613774993875521778653708046834008903311584818390013640380511024642632961141384707636118822787010166417084128129553081988392950595394314142160193834432214608663484120309683182555007819796280476367056174610800089711402671473145194727048782528915458563878997000071179125907016207288052782563936437907025641152809440689066375319986983483803362525453222078588346945725815621730372343016964311536326043975583578200253197360800614983307573072283143380081973263001787641186181882928488057669309351043079033347083181894575661999913765286590722211646369635828995630656040246284549497075566591656112307542212196660848677733448970833506501077810689637916816241419759040464458861802502308564093099771711151939018190515369495811173240036868986844845715309535112764540586106918261884101056321361281480846135156103687795683163648872523142007126391401936412958768484956290238278777944204484139305694353528229382471244128474568589608272618688681340842437242966791489375963831203631444918372648092411796567721780375366152263879781204266056368345611415625836855733467619164525154303543284472360966126650506123227198958932609401122261284534481906587183175087057778740160327178950732059365121886091332129199506162283504141731601574469794423154811811536010834603570861120843374558678161216046650663933771769076224220253737082219641445880489059709044625537363945433886825960075711819266966482474035525797189522841345465702427228598656489395190628985115816697782112777440788833848855849227436425998856632069742093688519984640503797871874371242453299390665188605925064274167847170783309911149249100544360798932637646656304889841333283005617976665084781296644745724494124039092397119548404379097890292933051881451301412629163911910487045609811997947161621901065287528029352171382520633378709168042529253670716902134245715138927688920991389473638618586657199430784663352184090805456576644179527424036434682077913683206727797284280881945197256896735179095662699694825981921259247989850549392219400892263855149016098651722577241901888107415645703506761959827619116137480169045642132142531765028587323544195904510941376126659841312462475121516499954644766355835940702055055175814205100122755074882343475622336784716326767314919167565319150072051768314970661999948010184973229352572512044771873213596301394305515924836621785665220843176921224002043611473183959378502922797645844619784450276931943334071662026397651298147485414778243241768276674828874494012822020052007528363379813452985147364752403391602664824061807823405920229940140639702527676852626888538040576527276851829784465596468917594872517456306998045340206638483429833991154393156885936503611960970057122538364079585651145140671689850680350905836798947064792947060139871419779302787637503125430234521847968207351012938713901080523604463542571326396845437856095510028627115231448500369094471336397901315848869971775814440220674068792911541067059922297234913565095375278199343200316256166982389611392852062286080202492041694246799962071852935115827877933550387080472478952735684696875037238386936116977214175605923470993275967530638576483336294906879493149763566342798692663912829318340990789659100737192299927412274482070147939105786677297715635114829995989061160814989093518609198266805148417335722388184171679669421757581159350866756374862503751856180783484582533164569888828438756323300744943897240220875243065642265451706235565879777369601317880673032454463863869572306747598558440876391302501357161424961953477687060173822998674601954871255709565117166598311657833674299706456120554957559130843913391596595986319947626116653546650160733980785712583437101521957743151618739140700066907690394708375056523421164335280890458138160978971397671924504547303053054473808779939254235952860887448620559017577064833814701683877298035922108922285457862626081426507629134093402624783651850716528381782862150608583512869817513750605439789672125829816248869208051393076153265969869893071353439485507859850896833455873049134206781127895128890215331989313206846978622952071847475358863762482507128148795714891407233599305208214458865652232101959140240073301974371054553442011477307323658753899201370024570579400517892153508799759587232946739392463483020637077154170267518694518309231183219170049501873340120987975525806895774494763715204977307654189409217395549880006083683138499487546545066934609288972812042122987674612508753642465607167790523519166105478101690437322374310892190938779227275243458568874112791262766100985266403350177052989308938972811562399592209127471961586225969351956543867376145021898855592398186078501876220536582679530978661958731123949106905214446022917029001761116251256703283839200623493591976696595931493298798639259638778864694895928649244212376141228163792114265627457193511527330599677875610768896945957163968833247630505757641520873155512543634357785586696892338368295911353579898058922226982569500909954131272898998677653166679261512545338125095320867144899966011268504010744824873909811988538277145178428245692478063623100888358884604922130685917306865902802049574342808734653928996970497133977107161251554675990463338231188065700517061371738350082523360920546702542762210608298184097458303150327385524717124873529756421627387647884146517076208045321804996947076932684027174157947357091826853906163124050150690053729521600272629724537821858869485719948233117549251435267567277122449682877191227690399645372633042874760368317362324088707233114001420818238202536261211465317649905536547810203805390040884464467192922610980533308373054091405051737946683573078810698796540147569243113322281211227994908200676955356097680886237674199597292589634374804942227645296522489127947766754241833286366164623253409405940763735011517297640411792025936760652942197677848128943776512682711052743355952236576819171242414592855481791420092702449474828401570208033608236151019226141418868833409497438934397119355966601338969124162380154385267331096760214346158771530344888259070094324048896477988462699685517192307463368827494821387259782826968031506671894244249545371591913136049768810484735613371858723508497933275100193595550620317320591501123972322719857490639057306888427328144826711479610919787334955445218460131956283141058298086448125431696961798487466264233367463282632893770415691473563367752354506507067627286792691933838531375226801326281463510913527810046197445851294729624423841487956303179282745372116097782080813397794109623758495340657787201903957011607627341352184700032621031662446051444894526078331503720393431671743401282656844106389751490276949783375001119730975032936928520019979035575356226451629535110558245501182953450123953393231246769832249013413723801557046011773378784848653041617156795375856281703081328181035742657650697378973273658136010218821343810390996360926934692595243524215001265388492461571774434858619745739156654148690032074369717986648824496358026121028013496373636561518160713037856056388617402438317962686691223925411602830529751884402684816668468968366183540079293679117145120514265048938973175958841774552908535115799285831245508481433640853985510975934294406917975453966965366374621069988990107991338909473647173245744151467539922673128863761845292184337013954107966146950276802290307664548312662091867853607823956817575472226545079962343916932442216695177494084557199122023408212926953319526692018016422883831257684965300226996243501114257584257642063718276365018679920698277772368942250733977840101396645444188941195347743943512776080205990753659840315124045999699796893968049257766354860335557769226593941312604011125356721036737238679212381978968250716446981331826786959520112802035521325009351294633601698401334231733228602124008922661997067163283965957783652146658107312583055308666106715125959030331409357493204278079387976328329399461484652980766366225058695895501168414395828658622686180400317434456785892667319501380097633877672664046853719999878222530371598222152889153496561512861037765260546333806552089278968608553637916101947503411107178122479050348641263950919117723792134316771352036941944192768165632501598364757542644524046185586357641157016657711970933574212720680212209443958540764768712598374172442199394056505406160209088173556569337612992019571307146964490989709342087360879960015653906158408408695059545055144097157656446194848082647594152207469111731906590120013569954755429858274035989296115941382897383187650492922736011233804600549857045559276989100219843781398926731330569156086802839611673485487153632361400585459111529774822798013539725686452835421393226200541542503134908613811699596792045990900108619458562260001100841425873573635597955786022146087784871476112889237524047836793251433510661515176996078945834989093362418792233116495742863095458641849040915503773538210032745063663905918295564655218316858766869957661215268416240575832272332201869887998552226967859120169266920813516754941604751675580986338053153652269119802933579565895187032687928630312758937785889341511332807525380343655335075472467385774936032583512364786908370609284632763470752762869056536192818838878478786362375556060706423510699973437456621330301620280124126949881660302948348752064532927817380627155026983475264303170715967740680457449197550749981749569004942808685039404694609230661264566108689895004090832285936372336828400904499790114145531654779911512829320851762320850723469777208866911242574443239864208467439608528897086133882357722328235291585537065430612179290898797711720137192140279151194878427950856399598989444354576894236221533191946720897725373014100522209183815051953618834551874465047921035935361352213379174810358100625219103645370432683677272026596977912649838869968503247880155839344548592574641223228927287572737624171906871437995211675921460463038863730128223695478984862188658243778599982800183386026076304951403701881684631373719619483991376302659693898211371787800171695483811700323697852942260519923123523914503767015133485986924796086821733401489049035504144456858611671230515206379717389276457537153849638403153453663512497468015420865612312516344974443901500294355901855416793325184347839300809329520093790121881940217913596122591520656406141532917801600543270710982292669764778568957634057283839208015792454602739172470177416783260111045210347125825546330193390221096931124416877608429017652461996839923948579185612448480536315715591909780204616690806596372067492705550654230765815496415095362623723412756032961213485758338938044704386610398313537266711176029185337339154151202622102473020233035493012362804605174229842596777048572414990261727667682033026157403508127802873271144205175825559852039726208997787076838325106773494613633452837121325469963550014053377804578269401122609353640477866730298308954246048828426644889790494481625467747808280048472825667870699854755920771459820298119122684034911634094873428360487996600697659384404429754120646784471742053755877195022927340389092826779720641961265061511556276095811140790397144036148331834055723488402120671892686765829713866456028284461663335191358187539655830148493372318432306493577576912561220543437593720433301119355362424637624209569327344020466677737677736594180828485418644550134612871929408531092655229048355848610251735245254733701096848646937402661107087154870882304768026274940240087998722021994876054498188682560725096004850624347109016880510753923844386038897582382576283048444393216161878864216646647964679080216113045946597457842443881621284891316646358334476517737050240772911116419280195548030584667521680732434817298163255300345425482097190438771285892235474802033140598499151165477381013586347315725662276941266579963152651507201929939643377822794704774779795820499086525260264942193722222323921156257872497803169184601160057745357148100796631410275638484687318267159662074305032141313912625587851480852734960446574284230902967639975060148749293970216673644464665513320371451887582471192432371094372642119808535058046134601678103217802744432716354727435491496817837569727603609697119814405603360193867010661954000563298023986773741610678042785896501322549617016469052251592702420719488298590138206478288972459071139888738600666963357807874020730558317543997537786084023083348498972514656369298563284621922222416784245650229965030108940228912775935354615967427585153045311961699042208448132757585858341464758689508753427147768131723343475680229386748320044913863912843702696235360580119508388440293512424112218535276690425248181796573166655999116886328427895322240704089279860173304209830979453641911794628013166843553674153685784770057426007858369584063039621951906601953803081717852520610825030674152882511797094051062617378745365098350036754093696078733164191564756654581720653227599767506223890090473074243453861738926454010459105015650641054180072959730110255940777009709415185956464276389949261573821349906552968245734870871843061895452321299103593411562031530642810927650954897499384464102075084812084553410536500615536846700303979038527823767126176809533136276347597019633110985741837193558360451746823714949785351506133448081922437562182993593234047624859304382204427590613657010554312602719837737600838747732330948447788113086143352385852286434731339406505060146681404087745635187747526013499065293435893170862991124220776590148985990576265785846207233106876032929072043775598118491500699111797531108749826002702730976782019137740872443207688644962780335855070644870239347656899726200559180604094405226270792690832064107179856200745021647659591266329474378111494132427143259882821382606086023105577840056827329422690832322943958512988967792910652857806679243392296582233420951243280067568035020311173236766746756889850411892619213516576991351975179916410987391507412126765993293963801801643143600662310611328637261965979335789842547401389114080832380536429790582101733073952925265975732549365737692164534428712169123708125267716802499599402243037436236278681812584967315768224994188407666630435579366396062984529792016332492459627277424122864254176447795007793339167474016688653784304751553973787315896644901065381692088219358682850565834812212866844997431310107983733561304511910314988090424223761642192286431207472692658202639122775659485883396339848740941507289829865967847955574318936458219428291823697550132077678256353623270915786843409426156297477672481518466010565610834082342968760184987716670674694973237928128827188597765740065243818615523979675359103008303326985293345952024999169451896472490944741953492292824030249252217442655996339091758864439204743341702185314780864863918699664513245851608474875980596280975783384839694911866320261604501330903530898006110342609552902006319087170235710814979667875993290347227588290059565011304092096723700787270035587506662971635019480743091984749050264731409975851161144979760262596193132201822594951421443016887868479481630430223888499367719737751283967132040554539099139266967864504614749725367039145748660004000804686720463194062767848469661820601392356855605324848130872012803329740076230563502162604508894731395394634753945377171488956571540239414976930618794912664144294120903957368958299628691441473480191494097924292367073270388903164794781675055123007364535295017058994374870355925156928161226031085748128260858725761307676776520878832585427641873246598042983369859831880312687871465729444890526411002656232497175173053022399906491672333455450303028781977634921943107279555002303647692773240092806143856995739102375157667175084767755692266465548173484537209542028587865999172194762536815027165519217014739123932250718404968597993254166713619578306687554469829708567126169529567870039680611508778017445044560035921768285146555053035087755758621991343689237825879217616620853076343996383271470156891959576110285779456142705402902021371320753082602095836205653668040342058415462702162416106932822359710082072699114654046052412299434224946331382701695400531236019801201308884200907672152207266444291873337982169102447492177615552190935671135291222637421419348915070008982537887959828778288471018112810921740628597230248625438831982434564845010213569066067214034704563503596144381351872422053423372307153706253807078692783121727501221407144255656010515783770030152774409072881476974693225722444531332032598109857171581502606632969132127015307009869022609769125268542711246368661934017101952082111333482592804115322714127309285542671742596281959682647059516288588294828932404851095785037549406964024374595895877369009599398035647706504988243542680411967461502572832605252673081304138948535569900773614277156879322433995622805735867716865020161591589058585660955397745332845146117998265835904519677691881908082173028269456593143859432358654581593400899020976142976320709592919887649309843374193979536744675310981943880022634056582071292289970608774556730218926464174828407038319427208698078140346845812793460275744164930984658458093950681700009341657049257154494205778764284740730762922936720423958872485890784516386111557103312836582550495154059193961762017235682461286285565602093244822117795732639565901412232555259344013790387492549577847173496043832481173108128117797282828947427324179678735930206196178318013073792552398556145222994429098107725241227827239869500585029467889638261440198504663459609549487952769572921909972307897653605505197819393526922137809512111290034683924159238025808911693210936201546365427009466272991174671662487764245216573691714424474536159865656339042687462220734807889025382743164977567846554539559835459302471424528535308902713846781058797571827359939209321882008232173999568118045441615170212736050176682112179338864845418672077288468367585974794670618648794493172274523716055274153498020700338827258525881485533092227209441664518868252504159359953575996083349650638470196758808134031611482316043160121499382503946842866141791389392772746014198392959442890672073027985870793677225835997714664716421018673962395004235882061235313449070060045194622153884621393641014505154795002036966579332831441536517544377303753524062732887649479357619554932613969507489241619169687430274275780590554176240844096829606066392491526275418190371601655434184396175704264818877745387385382495254397346985268779875587253210388321089478408982790454634669941503173021488035437405362375802289546787403402702028096657039062371259674333700748798863499510823319157499011666238292134476252294241397724324697833379454990553539901661221081116815599180988387626809796671711710449647187436320289965327792106650639715293636436660782327993680123632079586563412695834029479644457520274332968421256767159502554835513850290771319890849523545646203029332321062429928381818679419353850040937129117578532628043426949727361263540475534772666141659560678045022795576188644919886476554735234882537004913989126577275301961234043380169225164097494127872371921079205795939330395003175676477512330654010667370486499188952663659032852830553198376606224310730229989300579917047544586125095022693562654505835799502117218273906072353707685793625821331535574064188111144388916738893745169217149241337508680223864446269864319412435212471889316357473555449517383626169556953697109559466327976684633073772590600144890369160452869580803714822595553102313726578997697564090903000789040941624482597702696106272555892713275650941255733900032891475120391091688736446768578517889777106447822224726102600007442674465436274746979165040157336281606057896862540607431646377034090725310455198798430275632783323191530948953107069879376355062644875407940621115696577572021520024423756451586081435976975752131209297807494744555852324142945372448545708665841938217902368784854630863241688657298605154699582343434292353274065043783521072488057121646759366149175268588875004804539195861928261876209408381911246557503633526188841988955223334551589865165005095537211924405091619328631102458501495417152577798209864522257134063330341690262624263997020507836096657258297730307176181427877169265020430944306506885686885286498262768442072250606946406760274164038100799315992167081935408784321318715800243673640275621705088587057922755151576697536537749776263585746380716228486943598076674028622948229170701824423586437140356998890654924292273730901440473876569050529291953797947105881678250819025304974215986624628969407826062743909335731625051671984391732740335605844379845948909693356062060845867886425014142596085255404698439584322922376267811967420389649709693273986865623744736413911708029977451188117754676477323104762460202038796012737949118846756948803659314965939323437037492399039461490804504371771296561030702423229369631964283042185618093712580117935797943849828789378255579077944652060913263190195077977519698815508752238267773911658371903992700120452227639746896187745123621526312072529384336846810228874454263386432489272989657283817976035591822168347926077764893462806302896623758280230038818528021078483305421379936382397733522397901694206148258501828160766142157372074948460488241762618435178467092292457225362019811118194059232798648142107509183494185070844647590835965021960879397718454802624785697568064252593199588223301438880918543906605439994159855530438413414851250690586501511196281590766666947927889224594070493885919517141218378161887959573134172321639363231179772516030532585890494953711094541309940914641360233951425011118043516822148705968917123956112371824409262877087070966800116345799443108359294058080012319471941666802785049444706615145262297439632263582147403272528350302718362760672541446639192523386870673338369017572075581084132876917815111534110176612633907880300553792241096888749793575464218165925378057454797948341873351768323116558595484149023895844743732604148786552212305188925233848110491075352814122275924509704695091118879734405338042850415998399273001371425445881091020604752355564246567976990515692557593780271480176338764677173854889597736071718610477460900484946664773176507801117153876539276131800682044982032439462632212223744595460622628908663586561611651184466253758401662374496708234037990768073413251497024620793666296661087525114858447725309042554182337177284821845787929557157098954827195540109456307284848103708916631767566612427394699288517200639698511886671199633546575025242524106562385363592788202609587395004631450512946567374930785283480900714700579831013062424436728920874304787853426390367831788130280827513218522012346192249774520764781096507755004840807903937665178416834768286634489795721330389066018597131728453877032197176628087069527449248698263454550292945822291693002804229208103976208811962223673476018266525719498913114325948636450675655332606951080770994779066079956850380612665750293763296726020458385935630093740786791455402782988320871819115763248726372799736720693892105231868254321541135269129941093727566263970076489819991156243021253617605776575926538577284846693722802102830570069655795658061038137732858711743831505529222922433682706750264000105545443360217967004899397595140268463198948067932354479619241157326659689300006599832415196083463925851206505363325346533810687940346693354390299274889592797158256584820447603782624213831767682152959050037742374037334586253579410959199211143417194633649530156052686594645299940549245604452745833642826650482137653330095576840805455490408553040441336764235311557508240697643204167786546408080425021229482105227644294732638248533990390387917134494165048413800204020324955804356597932310950222199155540868171307075838309545820637451870742972173607630264791143007779173843157876823297399505366767270425137072460635903586747109087280819331750207463679053842675748049666855739464322216509090065319097357686290931769231275492404811620895295138148793930433876044287142932764188455437900931261973185625909035578523224952303229074741280675751191379485779492330615999891467998383197436086905232222219746821243436424871404368941509744044833382145163504094325109133884936865308897210752572545589754602833119952925976139214383599115264963604458604213653919930207846011384669144997334982371491130619222205463884785253451080988430153244341240325375747558236565919742776742093389179969689987838657104063467034953999988834502050460909160774924523720966606745082061456495606884461313463985533538029878256454788884128778105139962788549965400250197806555263949645324855874211853178881665938993540520031883553366740948213059668613558427614394747018593877786266171994545500947224338869685065656562472306852611553438387337872356749023632526922738675159219025221652253795358329984696147067851333356608848267194153026081872488052977378345123485420906851320763307080529615241110014835385839801750526577914389093671644953217230970021984922562090775672585330835059952443668701621596637816794870951415059169221096209772373248577203863447876965692124001139086331639265325655088045257919896955978489200594121960406475022365932261551547097957270309932393853561441445399753590677369701120136126504775484203776535933016521556575704363286441791099460335770509529096980706029889142992543333664249081501350542679036085608393379665423199655196936064790712654270785533366800693184544653941184888659056667907957547893999527509117630084165731596271878027857831434127225352035792229822023489432133008476670474744091573403379661783845542604095790257262663933622257009915759528450820632979707860332945190936816711085984074368748174593426125227185405663781255802924415030228323069595868274637124742439417615801937379024205858538677300620073652212191987323446577038485791881151411181495060860718412139144048100082656367694608033621516265570262245129265697441610835394716529061034369745826078198259303951363069820666298124585345267701422253439128396710665146318015501861591235455750238397369719350488508276571945981382114705086892893408870793064844091399707834345508502968864757018054821433014934117907323421438261457633953535178941274644125799129138885900197006754277919587570384440232694846499158691460595778479621064296646203386415900048057349498274659459575023903215209675065234873270047375141106392759139274930394900939310863333214692523975345415136205751095902051844322052930336522711681896499156463210934212782741693810957733555678759696459330293033144716056489631955308559834360469409497291407741007484011326899709321067813302857115075565591326151786546911331558159758846892462621363998346274626773781274778211505919806572083818683707232291536740385030627028063979273023939263127733549977393667198807255401074683997281153466036393569899221538396270607727824784695913033415031410808475393899065256692266951096608003276997176184012797886544067506754539184992891147574111036063314228830927060164023469018182694904903889905535982219843251553053816755473162308405024695849295408856171636037091815493502338960715560937801800363124076829911476016186038124456755977783451296468629910755869157273351432787903166651022798169270057217228390462837461938654659868398783496452177920729710158698306551209374876023239953848216436741813289953352656535732943686395802881693947370027665049047957726052403039128977601635148713797960272045329082648322108442773269706240126562294806481573401993480525355554327556630777803374616544016599921284774910598030570801889519858104397322013010362156382822927016948106957251929627275116160526855015522847455415277144059415083352227551061477821588173142887182874544310141044530114996402235481565813731731830287914005887127095348658229578024617142383884026290305178374377767390813807018188573049024311348597500525175613850671625260808909246726460868841992174885021371596071248345038245483962563007762440054298544858002135005107261285069223755837291817602195167893317124783688679037237906343025322773560887305697761415857231696343401330326769915440359817447106726463226496762847014441704120964195801946479457856918902621126105418856522399256001629950575033021506733822184147029975756129250226158040209289234048744902728353321748608781399218544607708240188607139410016944750896760141446799245106176834002932736211055966930998040848535451964532386822006329681133066864840876740046318472171285498026530851965850713976732080424218396924694745013819233260852520419911910033536821260310860692770522341580800680167065471201426322114821154556040978149859391884045518498089862640663884463428335005042467651622560980755785131134288149678322853031616970529604545604076734000550444279867234241682400079491086972173063413939605131969137154969252186949428763781009031103835184409612634265758198811062982367175918077817137390282586509236738930957384016585214519039361387054583436270433052791676216330328025166016452408272394876445971493649564139508276877332906373425355757192951860151247660140459358811845134770872301789427527992462588348253277757123819500185929357506807654253877248732589849942353639708461901033431820171513370319344858208209503295677800874485792656809401430291087735744179602804848615210666631004909357955465813435441039703992592601663306921137611026482221913109709716650335867752622496695547342842357174120421082177955504749828041831193029389070018429728948633098772745689583038392669606707955182352851206734909282143378207653242894247047992560269610215284598847169905416939952985890117281116746558018604177773294403124388921240739753974430095843694004923168669846195068281033032011353011522138607801696190471756927837589276938139795454896828784016188751965971343383530952674702210554110301719216528786630432213737781066865162629583145225463031967651056280680121674063856859159450627314063063527611097953764903387897355508439357323200297116788004440420756625393535727491645678431369605102302604290936372499423581899993028094817547127611908720943986119771761687073391594328670762107981939102672415825523041412887647132271766267622255870149330749169687158355618808665533764206194774908537960588427964018447942279744755176892266949779474818620574543602376626434321195133801674225879392937478820925154529431105382010315229524126273047075498072186539571888676024983039262199126279577489061778720613283352888173880579278261631046393856850058241747418607054208359526583539443446962532388718983615740537533247885106471501414302829826162043979461024924631874524668544959165433538331646067141321464311031427193161668430014189939491404736162070650140483389722646626964570986478536930322255983547039610783008413540588785327720744534324545167425457832724756585193400255973063837670747784176351752281821898269131120092693026352471185067287135030532209529623115141161307371439650229012040535327692016005288538918241287097578010408313706888944950073106610896074493379388240783226785462002791199034896515708766700444613445028841485526154511579645310881684062374451758540447857899089186164136900323352348732565175073818748635739436828888971169059018332363769541220585162585798764754370086205677278790489339666979741057895547226879314582316442473297141339116325118943253079261100729776650643383352469815557212616882061081935042650278353211634324261173594388320072978673055782634103468158636013646243884405908970453416821372513610954863142087572470915506359029770013173600396015579868219543612716980409857318435834901915431704661100158526457652631447888165907346896756518400357961596489283430694038859520572966849686758711750470284058371135061572540580742405475238971542053653594847625529123256339802680727807540856822187666795787413084539947446215254297979635610942462469564327060216038493103151665642695059318822674975464938124866347911666838609845473409899947005629752156832475550416042089795439197859416079013663237279385218744254222841406138062863150357384644434872341602633768289173041951914798954129051889857324226638699813113374709181628443236412494375969912172336152442902102345471545156564448766671616497016949806607420191926079385453919791526831119710149999941909062615436578082738594776286289265341801339175781816993438492158994791893175596774105399478917476096787388224427057059354317861812156047814881716234740752032800922492413196090898598438500147024959657380379292595022400590224749367744160181524297387794837306009007689994650027754429121344240371231145786810533413261495215188417728603423633196930113981103484573120094022394115278963500157614138650098308447059968222039497329920809149883439097767211322277837966370966963534631601845650915158506272904337883115441112587327813090982323654151435998771991397141310039248914727371926639898490991671700491191161990139036727404293917322177015277363848777900640521345555784853168560983320782924571082749563219604367434103812174755891091487594245506160418108273902926298539193271898160825482686273755121823222936816466299410302072144556525467611846713740247178412694893397637635996508799524430276416418959088701060622931607615497957609168071164139097197931100962091277233305211133033415259541641448381383536076381943907457391549005710415258689365123896252095929159335454427814039343090445506727284918905035876190232452057460521585086318726456142150495587947762279871786909927728899982058577587682501728918540411595963128198720796978435566425620841335456671080052670723187157033823342842608950889070699313726309376100836771359873399822332082585357334507440358103803877223914952203227523212246740549577258994680724843435644745028880576507488776640290779444935912898677919704958286731823759754299213474448995982242944922276397058925649171487164926571690084946390982018892590383426266484827002292474801838871675747403069049628866292765985159005465337604239039871733543497343339245281114096752967511711088301977093017108666366240074867655398768532413881661721834984981985447727837101801298128737276557643812185704737183349633624222130451509672743804349749241637638790490255691532568783684300813401001862284630578226208273736981044776471559505019988627207317870980073365428922803485001738269919079695319027988201238185726510738108560006437784372534858754240488130696338663261714641774061524429545224816530548301916176800114620036867413693006827990987084154159195532824239619698019618666931922975718407727707559576168225766064222973639293937078139854140620582439076321293542896462186859569365615357888236095213221872612769831459364984927362204043723041254366899164836965169807549726930558800081917586291569343635034537370565989511286065419592624957590394858065825448014729585968986680614969801911002234427707301938430485790328146767245211433201712678437615386174343004199035606189389421979418201336003659343479864173743781508005584984398366419127193593054847727051064818673896556973873720040938114883896854571808037204416533916521234178423056641335120621934410131974367764432772614356153191247396908693479402843732106819716719425538876081118301467562255196751592213667967256776306850242674069233178819414011496765531596334621397795640401955329759727081568803490474676637758121461983063520969463914432511052240041536391290880910600726718569418756387576668482439052438724138330256236654183652004263289845270435493967675652594851157341842401785443873812171828870670381450441194480870625232781637833377216334113224222913997206060670847919123423661158275041891394841354120057016043099482514467595247112270217269394622503540589210240998770455245101226128889129815672844612980888354425491449666131209746427897633651804109729553583631995852976420478244917116271642294175550530225868420153310043022649971446415614507004592244135831547947200389699220927031660107609902902723468785259695864269401374531933239684101183344445406648226717552521791818839341402764703729201954973656758031214672323557409639691313301237638432876350274002037716840992174262808380431601617386875476610475384823172007064305833860730055541119475851089401855646913710042883712673201070936638783885583280351910503935769784168757111464714452910497618141516817070727558031303502738239834764723730717147294731683150867631197174680753369550916321727333073031238045152395039697119812221018141838216291959867725770635658101262065050898124753675016273762976856912229524747285608786040743633993226615461665025898860614797298161626465239933841558993929752976062979907627612509495274403277037233196257761768575835128098111537461214003381716570753069825936602630629334764839121303764193788690815102830083928236691698588375981641958639372180643029387688521500119177371406495502623486107804790973089954121408172334068469163739807728122903279592266788609028256266214449836922365228546928610510125916721338792177600893481354840970451143336913604090732973835173658988858108638573580120418381573007145545830650166509449268630037427544612955327874454670159784583667072498068638424053290665484353111963729358067454592676617810350837151951638350611739219494262871514835567923611047174254311462956709590526304014432434389505904713948175429491455643316644072069819942259480468338161511087104155174622122748981547031340376182395186883382919862825315790621681242174463358867204319085329651426172504709868946233754594850247044883877894023061922266640224063214703339470736865514136188465743763042111343878365848472990791998158794933011052941324302342834763983729770922772761838120956415823691416537706358827495538266822364289556608076973918064241125222670586970896497646873501531265781116084596968243432884342213152615175974188792226489287380908433821524336680639673607731867196357631994456369102744515757823578587015264338761214052217109156129375036220332349179182401582785967009927452565406925827104042774356113367681943803163379560660820044184964078997747703071228438056553697890460212373937319974448285764195454848125642170285860070252116300877130044736686275780872678340815253435694719734269124490374020706751690261436838264903990192503248747546867474847938538668994276382722695800951104441500653128787654558117929809193903756711076407783409387251984035132566338764878612034598657638611227587728696622485939176375248652261563461381270791399688123957304055586282648987826845496740610042755075738789712662188525840730760959746143202902838015720116055560685073021678316159777378874514774709247745497236621396627004288593485076846268845070023487594389806312347622481120377071161662045209144543345941674442914596326199306085403364680131985158656118273509353463612016561901975221469242786101895439940912312630652938500201042046763627643976233516307268439852421288035307796084713194888919944105826880808317218476592775247464738436869828824505089126535704077822533401645060360563754780099382590412859347658300170288953430766280272871428362043709820683589814226049750984113474909272178983869458916363421838042989928083291535817529406975321414739131637823077455931306884118107307483111877268286085208161352468325107226758225736811507116318161812989147015992576240156364058395798093167408328969601568462692979603654329543744584215757362609724344929174230728773689129261986787596590367200829106960526895841542388219172305080581043098932750391920832416542438491352684321417615978087516388402844564991384342883743349679533771224215988458138956851342474028802586883882901195569416826107436771984752127249611130697805800411171559518887044037431510359470375416486115362893048924036013490859834086298514066113370927100350312210435470651100132085841147334519601227234734289096094729147883308860478799216310004964882371470920480762474317437719730986631078565452706388920877702804397005336083554607662784938674871108561792072049046987756014750224406659335097235480780248664788641556044026549299705258473078602095900098918508707573367353484335724355580844625238990393799959648471138426399012541532597629413595806563888679929852902924854767934787253869573722658781929382490755601366558996482947164495480827802057060738571022935910471194300540334778374445871135579730583057997536801323264704191392135629452048917137595891216772426882883337490779518725322712283641732198211103404099226854223225817922024346239570164375944337316152127091765100549332796336225245329355289449200456818771167015764429973460294224635572998901669807676803261019583333818825647759189217566643807865717391263598535703724195941928070124031712780008521241979617722456557587154336543656789976028307213439006025371728273066748410281640345563942394051369405718472920238954223351314895671987392324922814122622465248348954377680457269825086246827132939164929156168085587252845080787125399628213140062555179194020903288505511546935482407658503048050572273437671841504107692030290324551474713825833627736014857744474858944193417381911600972744804580994583466218986960240484881833048573558988584780349840226822345249302643907246263823545520476327241978589427703008206930597783782965947288622436290635354537666675909146607882647730682941237131852846609225322704304847673631292841298480663837363339465988360510272416219936092252055619377521363921173709095013521222407279677986740171699896657416341924946435089292384223719289703485198213179943277344102801732569044059965770689651453711186912698498967691870401515175789454536054260985258701655468533634195936491490394730942708801874183120734486837211294829846504526155768176883604754206505944540726228134889311965245106865882145972368979288827559650766175001554070700429116347980182657351220612664004620834975752112548903933663344464910097769359336906807602711079018634478326636818607127578526485659815135625469392179950952941415865832962801129843942724911806785952271877415820199436248844687412694169074819593041108649263231045178596368971494315165817842988972854609785180395819111183212089238757974159028894970749721233112052992023519030030523161552317134491465665625127785246264919753089693048998468507423490962709356509894358901763392431712687932536300033460687369584365936350900609690178658045513287009243926398038806542407370422362993428853288645077473212260955221766116864773920870010029156425186077996714562637296839570532793318600074593404599822981725005332590385289427491663666201411816464523956397387224570624310758808592265597549636373631219033860931245389921041923134026205182604525466255896049221531694465708097899571080710314755152207533488621487305481007473317589032207112053221135389381120929521075680233081637328098571773015130659303778490632341597885589799367195222872558877824549423146716738045167738204080405333516703933558544822788867805436546535925356012917813068051279361285912555782784064608320640074430753355082331959618457078322362527774003229953647624402640494853480262054518625086989943518665086057290527964752944158138548799297407946866234753082410319588880946071054030792015180653930460456405465431742904255295278924407474246970912366943210879915350446665286642733581363853769921601459696332444770957884035864313228394180069179272150220096014326946602682059480265346864389271097676465169810930361127901731058918256665853319011700902476502714483285030113478454828451407943285033803630564984016925645680280763024556042326494910072587210354356572560035303524755262091381202923926685694141107985520554731005273618931228703909976503720075708980777996566449332687361789382462643266551497479481974370393506551499307001391748024438120445676068723466526248625887050897568769547652028091764855394467328938769085839907072089800736469230698875228023142494283910232802120090261654772465478224724451122111105174839688094151013840339109079182537947033607633089475455904954084218129108941687634007441553898035157416440791546908731102750353376510740275927588930895323638288389819149242974825013920816871967543008481731863720229471858926480529728860281353213270750758375404584634180098218086677732648421201466251516367871422765686112957278697815709287162396564040805969388704759453978931958930932921078246571394496679820303052679412263983443622589776691428570174822371777676242960991531947288062193724094021436789968366951399881356825904171412057198605645347347243815993934363789502091002319545873971031270199645580222599645586045482042846630310892027128377937746919983373615085305684464504297136310290866735835425002263636719839484764647360628706722724916631773178289239058575378211452599593070722501424012293363266073023398722966287148009476975414811680192409616129453573801093083862725433630135881379163191176125469658882899713792150734146312022721139001278045253016435936489586528486786373579374306482421343337128668788265540669589705975196242060010569341382917747293554482250688808683721720316810095337063729400634345763760151349277658290415120990365991599223657127577429309158746066862581778701181572738362381849242458332444565703546467447981028842693106009195088744102284032388801463116713791317834446095077213578920685010637923615827065610090260786082456903485844172693548605654395282674370156023515332420165188084998160806625061752786593512703871374293752334059502883502373367364789353549375359900441421345950716113391339126751885429000849937045468133860304829968831723932967839302826758723648299831887798104629385893443458298675050558981099336110564483418466186634290136884228383715775790701871016925679027477072614763757899304674597313995332153905863993327665230401502690635328983795541068323708207157716001871859357957760963361598433592159523542087652704209430818691583742285516618918855369869378697792400743211109330176333666777913227965856021288707123136833281982698463612319306088181354565211017010951305622878633569491019280212827482556301751403709197044957367623888309447641968849757302425699129150997476526742387000062093717883107731724848882549750755716802047430381693220878878175023384535522536340610108435650627388718861637728855797766764098240578139443760965624536386481849796891321779254852068990664162791709583132574442957427548265102826684079608423677388268537265526385593167879784238604142761714237816954549780842560778771719968567661814125832597656557036234472067268567887558393910684334117571009997299426693976420682635618439392428017382745466755831021522153581359958525490173219018711853465245601043585302602504931566074483257606086180894578877838044512965071361854378547428182510410325992503705055310781760720623426880636295786048549529216970904015426392784079688339869995438680581090490740920458590285262581097759747106236908864327026874123149097870922429317746477587360949371551394917128439404374566164339717735105297121630815943215877045527682185396530451698541029014977201358574112965967600490284314595074037999971461133445522129465494388995516346051508133398945550921755039012370951034057988034957812065834707378534192383392865474207908419903825373859815928208022813597928356137790219923507059198656939679750673635381654450825475043232590785263922686468336178248569040511535725307889233076487192634571489800732641885825379698672258700159259407283915523770633641423907989400125580686939098056666649998266329791339762431159776642326903513433522939413506334646975319978850521849387590033106760979212457661292738275245700147835618310687301024545074510910502519092866399025198556416607092829043746742950575460019166429155974010402778182823666106663851510888465727602908530500616307493577026439756131767207577143274876244711133639540243917868230271218760634707728682050135581156792379784188189424890411542283091831310327430745802871488586128510914916134952755234013173776577970354090063327308768361933831629754176722787115756070985013225037765853298950712125901767093165845749457389129385108026872743786681015170389257227877029519662458522215187305514451512687493430590367999215501753754907624838519542621227515308752230694394713362384774453779797472876129494526449663848917891495494288044836141643046923537016113782931724847687143895197287369371540422651395429736576879189614278490932600354288728432082151435128521554078559745444255479675805243959706466850655438570638735434051177090237855318490605468007719489718693495631055650040745712919884390547464432401355426031324741200773977670498463883656781968296112059582409887990272229019540121154196891027335746899966854925230239142844682505874393242694691283115927559717912651789547593958471666441389130481058317942419807129676189760299721483652610265046063753851179067980066261203186983991720532872126148577021729763262899996667932189907178225891779973247761866450821109371569773989738937201251189060917230513056877033096717987133031883095244204861822775635207233251914937549916155051323072566593262804080736144843958515395447084889531194825226155469794796135882050738764721913052455279671185760523367218139130897796317500094620312367496628584444650414642855337688700773613158605655602681588603398313351412803862008109546637937300850835570706821415666806923235165381803270312466646863375346606465400093745423649645404869873697793200757641635323771493082199438471833962395045340899918915594690157730902808857258544487058390263319573907386792107189795235040150521634875507761031218847868810996902521037013800081265090884793859886274991433762630589473749523942816702358468757077335125998022063158847714944298193726617397903561522451721869892541970462071567922249376401889468035337854972737368610384005089090779713698261176674475113478314978860024993888059480611858105287982887773960506460333325490664095023313921495163230223421059250907609483762488347565935673220174713075089306722870013203797195033656035873665876697285905829249895679992937277716161639681579251106521535815724836400132584314238770845061061790452321001524766378690375829203849056083496687247141398812949198750460035289102668322049065069658546822636610492483638256873771350445776103132424386460008224750835162120835386834841410610946407025076501843763338203631795190028800920485261143534814352820939700404406913738249264325460830634050067982759288729398319614198273387430375091647175891541321043855398466533173572840140066326554734807976305289169347664335057185578233809811967030889118158752229478281287142584495036870431466752496946645778870985042773264256655337081418007946409980612508652850963936175868743730525489539866576553408278701431454066884763287436715434042779402129048269354781289815886930951839029925565708301173755096259504388447911632969563804118969936104047319475381176635344861591624376806079535057381014102201027919995697159770811995537318379476421207647385519980282739991012280843968815705674157821914444797145328476503570137217285213979587097291861755787774099119660784029565946063366118932476120016952718948157428222741739873626908622157885204116134626276134532537020849926450811498630428627521365544726093135577712046463879944873597036953204897676646548228090594308155206074189959316076521380884056136022364944972611460257597522502630413365646116655800403426739967783899372416251312761397335853478118357913953740015861410673618142075297650663851909868021851477953693982405946634001114972468340190999096956049048532537004448678875360655498159426743347253792979644557262440298006990256221685735899013940303100550512595180833451452719695242103270618894240713802270994769812072806575141535245252484579961402682473701212623408415158757174347372336017325329010466844733533319114516553033956521698097762465386058466563191604654392673133056479736648049422588536785844250856958013544589517657700856882172090108541821749750884167183257138987722805881860538427961662213935601145295233533954665601699869357879678294023175308273311976832663599180044373949182041040232169642978677298034559125097215667566895228040304991914613413792106587973388051338902178958835335047126434714094733401730302814738400611841300165727683054469257298056843476154358339920803309970685049788270459707516731422203796267936375679251198109804293692907311697091492826901524272836339463570888351992156551455230203685781244874541716426154842188142822114959253630392391639716622174677374792667503916141687762463483551475655383148515722701462488270894839865871632542480120316981191222717280047635250517503509620938636373283684835509648401313661026664319110744155406534816885534710563277974987394835549359607125000813903847551197933282949486158095563313454545529479538058947118298342771956840193539754358248115261846127493762546680836193767130865228112337253393400486230850295548090603091126960413133500862856630712054873099562271144997139623878511292324336783321137633633385851286929745138372303856580478372058478376109157010558424655005228068392363864761451318677873706746066997486411880115429126923654445556813402284125012094456582611060959259859652272835003224396767306818609020992631025874353215440378491880998607293828015973120967491952160818310062019370220517718348448158302381512729103768820509458547835171787634373955006362797836580079564577905893543748601124476841087890410089698411989322230971240033641782536153088682495887059501886059856317717210867270488787950362624456896391212743144808427292550165479761643942693018485637684329353412768715554503607218856253782811725112466787965884088514417089514463134374728375396545918900283628947240679606234689004675564927182858389816486877521700677515926538860621111993465259888172318786653636729795178408592138549051845218450434061680271323110276537710251897084961437222994992766383021474009504349579554251298986466197101435892730789619916772443406997257784811980968100109838025205183588518531740950006202825288669775951603293544261634132305109613315477323609060470337739496951361562861089128157499424750775638609232166151758461431017144149065899781706461062222239556423183751524182561210533811198145696718108169741059989326729855011422782974326656508908867411874345913291255152250668568108708877504525557653147186894586300477229341428081467088181415900071098563254596391991481581426623279007721453437228123646457637629667521356530239160388949502521590437894950811652447332283987266193740527521093162251569187939181727655001948670003284588396462464860133300368262976890852499646752570285070225036394846959890926258068230368108236002946941822384960271461836851123829057050569742544567782749107131033562320876865821755354460607316313836385311805432022243125104808281929421370032393541459865023754239031576444427579191379073480406746866715090190196407111142506962400069921355098995065548641774662882522825716041965960938069837967503092155557079963463112927007977051829181723616237256971713298296514339803374162089720788077051285938785360905285241688918810727931571190337087329673210472291998650484341754459972991620042701619678753778690181188669544321677459627708925868915245200552339145975728600350231013648766156960987235164071308058416389824205013450242739177664658818762595928374659482267510919070583910994785330548183525761895357710230996120757970988930126915894217770241183072916216184620377156457239768320860678246964300938444176228546588188857878318016020726789738582061820308786064038797824860164685100472535620721426575698736937638147742084479006851958239441988556572593952022244469783199146713911939903580122967564013418847413890387250899139885680947012305819406405277034460990014581112460851858292183488226515504122509479901997057319757851356701490161894208196962248219027966176474442844852310651404582698532890641060433885551429285551747537341409215554257666461283465724319240724344912755591289146186620794582994264161541672872787726850949669017196550454892751383322066504299117215987701046006546163157419335292723307499342997313346926220682174131648851955962209349587973750414105603612417219241762012262547663390595577090926435365790376986707314058579734447052154737944706248736723696224506392412370477892742930779204205279915281867795503559186133799935087589794724741020854536650430814130760776734430614351754675083605093264280600836780973286022091845311278231116015749811478263139917516073985053183626371874470035926683767276939786401542513092824635409117664900431987490480678191781612772289171216620818658870213021279253016940783022612118484156534567248458145350421913845964655015978106153274467188751906094515748781909512032020554147029684937301558927545623593625642085378490090651211193237876910597828177042397131433195570243781550061651005449304125489575211370573222655212821097921658412784157453400278943507566912588962085681902238752374879944004875562727164126986038927937487323035117732661448368984286690758158830089936686408610766400715041581581190373861313223740105612977626180313702495656184411990666356869140642961071736418837649210215238713782532921582404463457927922986028500348725244662425532039551574805696008993118382213514624111194524337065092905243019655101175114154857126503427509239057802007784221087338145952052255271127548474023061194220060420085013999102438090062261286367029424175549386130477094079265916187811638998811352439791662997717055080985187462913646356390566138591978131688230159719191006270202631073366397534229939912179680698747987257020065994199658596963870173003902805394223013564679888602906633739471366497770577541260672399454169376785327692724466709808690061591483229873944941458914424487413208537928179254644089365000747173670165087014587654722001659790466394958575683080176621185459905794709025350024978902687681038651539825950765561579820625228188655170819909377276863840561522159397585176372101442412627815912971901250243967578354974055645701371247035687694401636259847931130338036392309289232133947524446909322418651596848982300815595853201742471183123124399882231946777549754405447769340174919147595133814770298928317315840190430381215636102259122958324199202253689445403601239369174376130056988984520007193640427803308585952716863237456442803965707668494349783496119617382625559700981188750289649540619691911337999836365352714658498028244567609758565406019494107507041657092885555660749572746831756188869586516088159643283877574851083588061500825586967039965728405840536593759143162965492483547444721104486716492766916489636137587843785852395535205754288447681032131861123786887217121147958761408952887646387913449022359168649150260393568344226376801066097136943977126863944962781992562277412498239581508141450594816696002474556026573390820292383629366104423450068036395356432395294554256862776732438268204461540659284343560294766016758298281268484914286546234719907336474733434066178591757753600022633467046578944995040704813351786937551993928935271410256339760667480536972517308204610013987514030838989593446173699161894922447326761301877491110454301209544057748483027457594745159010327782632942775219840499084619079306727837518940857268404070235422153149464372357108499447907153684022310955845816602045625182427969134994230759694644370045172198980182448090982508014251310476966169928204494415866654337903067082732535805453464638852742459469345735490685995839628616761958905008031145400688487937985945731999642976472259932979665645577787064926729277032037412525403596240728288583320194093269853209010156409896182914289648202903493911350945088634516769508751119506538687510346082026182313955696624164604606972798912523108035339262066959763223444401068676434240873154092486142069867930015704146356081823164366303460749045844471325845734191506108021283414311975143451853327118899758067884970196109947486537935189840628355352098848394935679344746656886193652718385724721420171049350938395615197317230210707018432576755587021675863470025473092185012718900909521198154004974327845660784009954851444208299480877012151157323634125373157252851384886777637789697293472443079952181944708393166904915881950607805999396829317633674240251014501213702968809122512104787659721473336792649754796643152779341344984223565825152711433675069850822559411394467652551326413108435483989682192055580012433082100578003705680654590981993496328151549947021110903381041026712471696156194455625032147524586174911361547016688909351676580061143073010760543487341829580404558550922858641477969692759037123175435834633286889766489378822769999299513759074154932319016053544562719770278722786836738304708299347575059465093271900048506136760372208944218992863266252175262147626681934034944929637126216910124625027518332945905755326729428595233813024450145952061549237300962026156093808459370182484722696302701964237041243054275507757085888446133966691464034648804598375418376739431118961124352355805116919373784086896487072679169548955643880925440088772151793302232997968839073020519907659799259159319254539138061632701516331387056069571415854636553126550196205088150803382765673093440058952235139386660369432925760168162499856178651859846134658176460691393649969315047251826532134995127862189167253464550548315018348862573320187459205755350450314678776293539968694119587599170343500896904270487444523641187060101079895346411665859304267721856450902181509280556100566347771528101014575830879493377199746774150361372046840802303228831582633511125525888314300837151122148868943472281042971068053182193078870015679035966277574741957980700274465444872758602967326043589434263988072534654739904459580485621585652920791869574060275311441448826860774473429192583073775277380697241295801163267779931589440656791876885575304030894896730010261952899886094201613678551026539738370901141360398865877877572497564732601920185865314608173408880242379736642940243040893200947668590742572133456787346847106309563722301502396734140410082734072789796984226723726709386164905501266606786471591272334894297091267686119562222949083149382730573723767254234623444064733326096565219929206119532441489308881038167638207550568419842174544189436252095776242164121680095111608823221568289902487254667283828619847301760807322194310449423176736721404844347500402880479095163548194538498947901505319725160800738947373060128825810794443015430373275433889034070136321472519831788457780457106745796173631153610402866795164527580776511361423662424800435232517959728077830700178002388339537181062914120245183324218710256819404720792927339004206728308576813185308845040147093798928927155486392722303389108244808805998452763953431007823244094778849477146068657887797510487820630196076405729094799635618769394162335340076556966650176660163590133752929816986073329187618111287992709818904951411628108672462298654474578060664824019722466320682567495496591167778470092951368652932623078081862124514897255536229037234800093623178750199123599190455924540787603104828970601256280044931673700828819039089152147985160749742334307638623512190584215547623076603167395587146250533154434529846214501899237697696239038018730218672064370183659766973350371305573339482379653151941821148748407650670285786581846399027212002405942645654213035186155510957791838769422812808959214378679166488372831061302928712388400463578973642792941353307427106767463360741260195021837179944030229307563175267423058308544015182601950992863993310479329162500132462567187911328971843245555342943204892112900686344488766444676426883414831701022900698857238445813081358119572122299389524473254726755772165548343522981862248331616275996806018617841457350447910784064835247269593098675360011923516004964206144591214939994323047102796584658727757387857151518751222723873746015961662430511548419475620790304868302264351278490418813694646630589133666579704751828102388779792823468234650901550763489652499702063144578790888108621156828796637549777497067044503627540382358600199183287010599503722981770355515131573731463919106409677370270297732276771897811347661893841448984348208997224479297462284359557686821472490510950009044169181583308577553321339525971915396370753024087670812522261817718335109579875334424983382999253128609435574564463210008481504922985092857503081819200257984273358779486572841064942759465160952311876675132709789688202921827183933807929008333440921004459057813063563796053331192392815768314064629254688548994266522723764137800282029428184683073966029750272745348274218330579462874381379525259812011362407108274632702761418989289952153694651862849370418754377641985801819483807917504725487841417554816839425232452623898946058305174331702545463706469894753409362259788912665014732508561981239218594573848479643663683630222309659569420523491071900121266940826679725188075721373806497389932684594902628988307322067733963641185845069005749832016193361250405695997668783626915851543688904099410286574062068641843878221686555856317043145702064941284765162791475843126101988276199085878398022527779388340653509122369697851018215654266028235632878297362631316543777433875053395085534575395605100619177660199497862179308756317749144889501436769088689040457504588628182385379199959133303511539145647022387054381500121424808715404721729615081495100369020604142514791432659304080938900307485790007010367755061098872166238943252355076549505998181613395127746791159407519418782741843730500322813104695860625223933663326594487880189512663344870538820004962010825687353450665485666751336985903805417094740431049861779679565814142502353998805081310140455362318593980749852160705569872134934282816848605547699115136515356137743073013438373010740248036996896372167796820742399702844415624646912378995497082293461746589631631836734815993529747282609781207047784599746024241839687426725937645849374814235734173486593165746618913069912742237198948655054210880752015380743276863774467028644454695444470138130026557482815839845779858284214817547942716794293232775998275607913402098702771694822615928569521479313784234867494177685527482978673715551696746183732630216220054010681322544523203905379414115784660795580732352501374475403660326746620087375592937515376293155293450637210348108647531308578636475941487835041819482822137407947601394395765737109752408749049644971622633262008823377339997606884832335299928363669379907693530058028528164467855991034772749565511097168550852704456603061662079807333811325231375154143866896914705886240958443194756082280205135316059917868661031338280267468957733602011018781924684031161052482952883148829882168442846935681454829215607929730394581685005929512419553016497364242221345810007245054412340427774735955295744382731963826824512961514430790334970717400461193687724511261424729159075613973478294895948806901658224362882744641148443216490740818472467632923872337976380739309293177140326921615483994665714061435048101325139709150685648550977325671570974545289477037823790063160344065999986537609442713818427078194579326788420147880196463062661417531177500390913862444983208525363195833600979529882007337550884036902771299817284863905241221855326422603333482387025294944920452821207791449084175382756668069058198029516312990359955241783672747644251031721725769587746031777015520692726025712159266399648808647288130801725840689412088472758471031933929362492587029519014475222189809140269314990745263958526980940793920637884017090097322088513613036780366951823410926046659026783263162721788935853100621087038883836929812416433852748107177287049205326116952022158335006007994039759893450645125173142384423795878209020981852084291757006584475534794994131289131207665592072944851243007813106838173237252038069361643610834520887234825244174754379832926848069529577458669613579081195756908686194207805079673890920265657566508996982316954072477430000321807763951014826991812260281095693273874312406801608654655149076325363346051753371794850872234857035586065498980066799120907823543582002815806587181294590456241776677621616774582958822788114119560244796539271466961272415169051042749163422934373403918878640417157595195117987184251914606640583596452974220057706518047131458233704076589780015162235388330295472353338605804118967873511013078053904240109335337406924887018293166359549317552477010970731863783456532214028591502413444719088176301174514950117756830623686064467755540330315968031350668049474307996695522449326310367226334257304418066645618341808441223456870426223991699452841169478387478663227749193064052052446863885715114854646348735028558986626822496595953210426172995793224941472852688301615889627581590886920809205040815906518727933738898506499550449284143272389192617083365489437288495834517584749866626963109132010969780511528815858674872158281320897544941011013319534264435549560445681811199384538436853823197287291055954433196013266366996710575566707980565924534850496146346959308935633013141678921946685540743396288651147501472196970481823045112557473000736051238932514812555145385369251844682891085130343550290466690568511708494065442258075174861518749986414705805687705600391410121653222614032618901240548685770725526803367505941312007095092530022816274996442370876097247524077018015666117090160621673875749218953008142652961152590452008868598668965653299273985517762777306725388355958565256916306288672404057071989070474007510307702689553281393117129729354678384501524940454359479000241686057305928992059250626104554207097426985071139512342311652421271158901815595256443500236668001769836813950020624957303049301536149998252744669434183541591304550698935972251116211779446266697803487809201510855932270875910761273547156258749996754436930293456197543009669937085898156616854361328467382164410156154666727340088954113698636261788448946853093463987253642137303519485708345412727266484456189112631949667282115192879342157788740688950316389205616750442528014694651161955551277906911998543988047297492688912675768220990888536987281833890986096355495690506509448637137524928324234076337351814386725556824368527539080626934135867651246609125103015565651252164798237994455429761207721991882853180595838337884509161220251254716332477335591698381735476038660531072776136721349135036832858349988850140158944192821128454812078683957951720052806254266239766123396776292997257425763669308130660259492252699525426790029450927097229368887018231359132632535699995765215924957974969149231290084815092117784533728101103101287619946083264127827252952296213435352628414701273837817837253506681675653675627697310369678647069495860537802702015521917053825189789510105661547613582560727969119240324252052304382786185401114936828598898347062653806828901164994377322008081789573253527667173548274446915200556133900092214147408352399182165552550040766105435362474461801282719647787156788684630788101967734477401908556198100828376984914700169924621501055595634191091256893237642404258343521560600257681015104421670244349516874489711615389665668907525424133552781405677543693269586570910750553364298005515233024542447863089351657112035143374992774288388045181087892591693172727759405826906816195101326398110862714276301052796148392088325950304459732736261217761212059672490880838415429804242088118127147990412025911829775766484876417467045434736334421290973334714682776513352906062028732690008069058139215138611761910466793725612343770146792413292159071796048323302757316003245096786458683722113342838439829426221175827214142683094409406473592296271057783582564920403163377875150020437728074018382063975849440619187030946834149088836804219515666486884442398511724896886011811103884490765599171264171536279169282525036666212314781381999628599829346357210085095653279593348173865443730015420567169675596467554998462118247257177794735116244810120430938178539701294968594960208741671199858304174794314050145477141268799417583933353040473070825874272368475492080846323967610007696547973917030658668961892112986595751487351499634126691045374365735655773821532859510184309038635252706533432478247131892156892754875547065792579759170876210716579532819730484002614887397550245484743977703816241220179718587854767190145857101384670093599333541517641026324150789609595462101037665947778644703601497312520606648504569092991709877525647767840175959355541751451934219244930357415604003031554781321917186087712065641293676462377504021834301290237998927282137878938862349774471517488277051813814054545964973538161986278526693068484951562059336255261042399430629217942625488187616648316796911691066327283902721319073382049061820495444576684854708894629136596874209651839547228674217437087841053912312263829966323679991466854637232457682779426494027515035714679024449995981875773848157434060634541430971327628661042036950027523737909579507839480076736086892132685410682819053956356297120290996714281669814243045559748985112125691803685348050675654499985215620490748709029019685570027145165138911067534915632331024011019169357064126021688722519108883858687833707555260940767168542370588459465390342524103792320900860142642507332379168014403610236990407668126943294415354340462198204906320137571620850109755416226559791522730122015818600384599752051602626992937227710348410566757064840799358043466675643281424666850121052654123218847406577859930983155754666606758195588614275995594943248871673926157944775449482724516069605524504272760689508630711751184082823445490499777036466812716951805030223610127277654291849271880574721661770933082702138766124547906846653240967944531550882406714514141138262094839870421184853791566902071820386252969038643202827634197319246345294376934417690806651449903664178580542996638372181204237972586153426437207441266876113488257206932632214953156435660064005294816512011449952583151060440829950582088819011993398243132651593960681472505612274171456268733917796031006518967152653965967368938453495349740218529579324762283037031294241305854079580567069414852946472891755587945621049552454419320455967505852077231611176754480974970788780915344246612561978979020279244854370336171893228252299767423379923115977788723946928845332501525735441354099297374129433718872787924327487819952903882112285235560425176566322149562775012173450258955781535061417961192479806682280042613422405600865118318134207175238574992331728896802409600278758130724367119138208846751361821967033832931456360334500286008329653883245878626990332355384898769407043756020983632269503545205771835901353241906993939512212167110238853815127668824672528375057463251613925500315889043848671892445185869365389058616209990595780049041855551134552834583165128045344800004532376543510017399594454534658906892714004003024142154335985541751436106659533354526471085457314499838756405747908822013814139839810872731314943277881559536915317988689889384787469309276073388378923547660213224422909491421376812569610483825709636639893942086226990007663254150920935001730021517774358352625395282642503344187464680640039941726212161116277042638625338787558218396623536763105587024538092034559829679754464931405953802416121535584093174308711687647147967058170524282343657628292692416997672609930180690331272055615127616606103793672263641968357235085964272537246222796815394254950212203551226954645045370367600263799275047673798973722484086302213056530464379050027717010667808533699590563137705842059463588333705423251816484195582511367166077921149414695576581683086690129038484824882814096480147625261082449170274338882934907768055482658621348843875456626613221733414384095885988375019869743713099412921396911908858715857102922530473153132588506448426458764973652681120378216948799325341315761946199364554815562372420413538694092191543783460967618699353598964161513382449100916265985110214856284075291284134954003843984327429923384770023921419089734759454374317008890379782121463421255758798743149980612633379137585085584660741664255967390307669190070161560169506754255172522357385689260817418780589985069200622617645621867429113399086788935537732473410899193713680071274449950628552737129664991774722948779166665929924957443102472703179655972592028394699119028276045753108351484733435117823840334479284511950168242700629022933021183080065737619555711867583175138648841436554834238917508421920096597965491563880921017832660483163848892521587134844135670005578349108055126449524569382184633459336509241532457865050399780650021516129479434411026817979741252741221865626904623655737871244961460434199633903474894274788315478375542089508629381680891202330723666596587881604969711188842151722097471865968409594684420144139386187207029145410674555348527811785550651990570513409992617986866006260323998288567083824686238890571241200751898960726114132259039626428488198056798381110521954216124113019513096275968733160691194238273209818675770025082813594291282485913591718217803889318265975862033083187633838572540479066913756315329088070978313295343299701925556406203670993678044624147637283259590320352417071045616918625513397612649389517988695522462161810456214305447025472891313250138458587008052983898151073975116784225542459768659932872418947563735157018695756803408815632975795226823901692104440412120938396592448684092189458045986589936637282186839168585011533589694112669245887577397697123965074690351957610692632450919239160101379698429024875656399021660113630279488825284352708751363496994132566199574167885849522517807981406217571337622492292029165646715886001628769828308860513027792074656492631839821590687779049929265130256582485947659714312923622543612354328783602123046063706884738857136339574329223083681147170630547198447300659390040170025824080969402334348371660708897780397722222241470056619086677340445241821552710790250113109087018249687089156447071599935027176115145317566351313177667703518829712878864208714757887027225460461661796044839519914189769799204574715890701261192708103506640936279354715293851905865966116865257243345569187830902743418285406233051539248509300021074640659741220651038586469830741134090930615779495475456862241345488986832388650817725623260196239818777801519233844427837400144812216088192998789925057678027993882506259770102896508801297808353988709215418070333687815224580198100841124456792687454375208671280411361306719410087374184634067649677061910273356078188388956071108759730430626815403627244948884851426319679784740605611133264401361466579756337502466903120382079069320687827814870194759492810865430705590236050123104362613028070514838378316172566237384141304684207282682539660657233513765874792590502024067831776680844426130894731019409267070252798397533600967419155732319836263226838832947685823851469451153941722500397134004836434810040148624552680836385045054207830819382187730044434781948566355312737138399407979732377431304633192092662544536287591342950199070497829679698922737574568665826665166365661231707447322291414160828069102524169327371594908955181126589587964614664522637508383513177991464269402294559918242268099162290405240674674186378229454205659546823615966228196511401040185935193567945078560650268842987382533310203429134652746188790582396723142004586338688570870817244906600887532422318833652156048417307032646697771031266330642938282198687861879187744191178109054097200898999340894473040112823429333861583316587289709078928131925685408975159140813158612201055046573465367000278044151934729062099214702753711715231827106360026250312693359926361880283237258005060332585789593634660025653550368861915902187490618111170722163198858843105177612519917732989297013127109026480064618234814287360984158690866354011557297949662336801047830902211824330128706702288631619859650310549779707152356551082618484518726145303839932322541033747577409803376204400165417441851566002435205359844401142180416010163835944011222059669655082811380638111334937915896707502827655251641855918489088672216572652039325600038067931103148386795924496750370879807990709850959344107989803008562222565360579005900193949490411212620679379318137964679247898572147723148180904109397558535587678500343810616796131576516835034296767450818901792822539021459502033558414266133061072290015532853666965894768420643954789426103432917485689846448342997704832682729642877384746777512363854290966114671081535574939398203727236850456356170295155761597426022376009133642350439077343892297382973839731031828974163313356587724536370954308323356699848754876458072133148227518446041873858157630981226613518022520643277649970418277349532909459983998841647312481641755704177242379782068483415624621353058518359853480972275987127893270129334434468541521938503696799127144998461463983317482072151759028261055215183833516058129678198078169510895653597018255702510350973068062054847926189638406704988955001976244628358262454406105925819087061126196732171423349405546378271240707588089152105851263125098197911389657774518199287761946317703895678742646059821766311079174102668684642721171909619669794586434765905135884126554316846079909872374167277311427186397320776130046302393495054551481551194732986307176163068613971894288116515273701239527396243567212205723350437482271462427405641658615631536581057681262308991160436175611824544101485829940839111726630111506974785144574964318642511389763615525099736694428264054502594591363639562284434634935331411339502137942709564377413635428992007132827835493401025951039187519722394412754068649586441911111023519541279262697286770817257797429948531897773591569116438182980744708151145686898474410284537265487753652823005572803119362233186532106498272772483058953719385025090555742221796825337005434075649291109478489079320766113604596011077105289962745220115883697062973274915340202438428397664605344244116808574983107761379535395601575484603402975197343374606223129989623658615045674823415519324393240246518163754387323453231585787061520157690287367571579019636894912803269733316076532604480346493958396099008690554780439513358101993223355374171257165907923622931827593191101979602683576847972298985711063877571863762212197808854894696765840757693304010133029797568637722725795811473665416032954149774989064373766537434621238622930773893673278474779281152350277901172875691414435367362088738856695012230648377777121980293294820836385445921100755671006486504772739516092825309243550931688899017882712696051135270235422440516169168904733066941929437706110001691517307357742200473316938687217516740750830420949583288714218023871870816978400910411513815550838929366591128335220091546441665230543532686696338530991669072034823374303814076912812287651097965111654661739863831256717039169907107957967672366230084372091665952194886007999585590771036806925659895832545519909599884550009538964723786459327398494694191303563104760763392538669256280044145753215008664344445976536504116790802881027580507313508097060515346745372638418841512175051218230333416463756566903477006054458996147283723617202061599162272074283906604974157642694332433728124675376802964075104288977838309153020457703145594496664352643813672597541519962279430826601558725170816018915947329943893728115739161660593704640534610557613878849678991265516030891989592415784641601839217681772270550802078403682491324787726010252946483698271195492959845915507499497778640485522363202049765120706969633183090675161445451013741140586242249968122593224958552809269289963372635892884235637396227311705154187162601488413477056730397970493034476271644065863976277661448282537386750752030029842833862518591835353964056788075873387091847011752757806283305590775954335051152882344621838206446391770846748955930745149351712670016788361517805973449902891647120581621293377041340028583967990843026625613578925111787518257083730975071997161888277884052703984804843093873844693195599617819112452901268806082839968873784975697481961418556768232686766731284022835365032226325003060026912321338623983391495699853014546495136683103367477973267635912737192841657643947609122237178097494193842015551286574740659539161978107335817999631591802140914194673687464162815515049717152403802655444717619625463370162972767648614258381621046713374967864525848453287423704167894500031878899066708402579053462403001913732531884136040039731786239262048302845608268391729478468110835235641518764730737755691436963046947280318917181610374770521682770811199370449675494799151948619032221401614456257822717224636670265338376943974967389035887332342336923386949909660753362736931030233972650524237281405862119644883119191002098151247322347605370228186032156077289144910180254872384042889749057379946850745076518453316068101360467826384386342297956852915770571186774707527454706043894653123611906065022831818144802489300973018134067532210120302544155436300621443931086554914157363618991237279889330605136941714817286000217518547613635466967784922987669723450854067902028281624442926710755469146597161854257579584271006597026175242445409251631678902367748540749914275076928855737257674673636978426096679774258475841896458955589003836853754714782440308814538157659263507948854669443500522410808359288393125397628396048738876471489531027937990426502954041213364596819587560541143092583326747409197286113242811273488922008039627742326263311921468976867741569756451980293855689864723349176026235330729151190857054440234210655402002609723650838128090941436361883296463068211839490603277375547591281525984243823949370903716175797207056829403192130282023805225158816183903539114584852224596937687209072546320457932552693019095953890732595990750785931507277821195910782964810558136429258695592483388977544482749822730619846999305745209740863979755508380634589018461204906223958845418535756906693990234510870094977376510799216786075010064081284212621421881034506132002232852410972897105978864155341567864218108079985913361237024875787584015736593044020368597023002752546358639829886102708151396416050853232114573768797422581626608961594817124437317722849060665203218933663854291254947952974279350027340396665550214508867695055783433261811320861940082557369854710256326029723664151339431207967588221129017350122824264590482982034499900462336526534840451595055472448176015995862526304336507564043805810226798037605359011905651569445204875135516170123286989659184051631856587647389185321093891476497018034022770565789460901362070061105147068974065990207225346900135276408625316122969748194957205399000738527973330921332368398922232502694946804553395713844309049574960774705743803844825195732939037063831002834640331921983652639900152359758914464141824132301740570091847713950472239025226583033841856128967380528642626596021695467368231174934077909993611044474625541245879243824086310850986132339391299995063334967442646084748038287564751833632442209111217092673959731074531744561729511923276780736631554790063594787954935236100957092136868096657490641277589198622465467653932368880529044755806423818437055561475809594559735338063242097784767432725399032664216286180026941863137843015005699880743226569845572902723651955806234510336665136267353239131824665243124335049108188391678645603643086137476700403804605859009685613135872671708140241885021751331468795492372420472102660205085019191371976724381658291884670366072592979731679936120395975348303800006128568273277948938958330803154288863769602047104631853103970300513670399559689820408045993241988615610672435101488897589838698602857161299803985006823494310459098193063229691271869171596873363414457744513094546335619393147764434341610170042387228739596611383573758922537232534730344632733217836799390027886331465206148326799934121955661015740690410590963927336157771627326567850940279967510308897571356587795491987493324037320684157535925505830275220508724856245058170272670995628754668096693392822922669953425911253705044466081155532498942426168857738492805846512463770153846483897515149995184513668739279490179142335076595236524644572700146892138775694236245964304227144101151678595451699237099710363718107187356499571507634093206905018920591953817820543265317216948381559822246519177544170059049922131671330889358409512083326705001624558572720456830609633003159899238967902004343598830465302591472857236296850192835664310006920602718008103093844846567181495666969376471551040039860332278207283982479332038505657000672237551293252080631871860470973515273288256924384943663647683459248501553340293907903837438158962345289755555933273467604841591704627030369407751492684268609125062151761723391740997146172740914008819187500123306120937584671415283791660036296146115586994839221952750521370183328775304512484373417112736662793391244840263873628850862558088308956524545322159948729840104611276505331520570000146123183314543379837706360148817684994583634677452153501079567023554485488907928893928221932164678877819776612799956172266082606321267564588701636008140989017353424197761609993250569102203940540287886651149287484838740156563123499965575140151697395017198840527655330522547210160563866788377964164589111580731608435077191037639751003945596955582497289321768027265150075766414147322437320335393153664144295986125177829456627546341546649908103766987920535064362079483256344275272862522911518940370336020689734552676072052311407492862886272461699806681592808609678726922333157436222475737149018077770898765580671984251992083294008787282703787275546003610557076916071261004895720337133925018338970479575005683793121040677726727041655769344146288489778024509422273296699332659738028785048557098757444788310519333415243758129142526942484339404267428216953432365929868957564599105477310497264790390755601717391587181521208034168536210461136919027446858238328486344801441288033621711181141350640523944380177295613525873808966849404555882657027417154849354145020687359465652684978302567956529539158856123414583014615200650105481742333212463534136664282823340248064991400730026661213900260515711842230241811396832090496003217939774142653704372716645863840017140302457913029189152190056326510133382822491916257439465002197331756812206089059057527742437726751023850676857080383155655114608197258188923316767479728197172075822913501622075219549816593662880984720470529331676948333869064556091521609162977865756117955671041022531401060822212615366284025106008142864659485044674366275885853566738132500458510350730205469276664537418457534699420689924861694690252559435226381490065691446326440967031716661661018142700844908169364422281640134982812849202023613805177665255155013170834738830281954367595663085555553768986585317608319322471568637446997297053710871546817715057135986788264285822914602330409906702311270882183325982888573298017984249551297507747435510464743303358459030767250596031915252510253533928295467549764534677781089280298186558626398212629124086982701128935099646004508521983245537403718276367745554332014029803536797346048942625676329067071894785379332529145453310721566947316036562211610734969052116818023532894763494485646471764189101154927291852075879381428835229943408259974914897399823394675568988518996646759329920882156087642408427135676052582495999020626247512951222562762802902528687599924353279711429842026438495436375863816570586611268652054505470613502992990251412901249978819084314942153120182699870248828106569193897174020516340882978669938781552698070746597404939943304999738035871273429952692051916640317514148724048391778664659736777496353302678721471729958166323870772538533301810297174923002113860859145274703947912018549731934940468462365443627573370495384514550453512496677333849896042288800418516163016930611454225203542992201345604766079843732674136696562028715575925497516165188815031705950013157706655238447368875622219209901017410147403221536914377422853689001734631979408198464718160269580592744886423775322613737737672693875729018074002109869623173240480985806011941995671232923083421171695911434444779549078068915975071337580231582403170290708730879119475622765421372742157535850651756451306893137515665392176004208811317432175480307683704783263500965496654278886006902650638326090979324940012536019948381951541619814253042213939556113355695057956101409419328603810744304352698835077002190180419633238581600403284426368096076986336102956249717109340227559504741499642825489394224804299319770151317293797594326760350207052468815076335406980554280973600347176579613127221128219375393698212997875608875151834747462452013464581400633746857082101260322120201029355660237394381174319477529891482599640900042263537826205669910257384496991856915106112615996220059629807227669206846334451377265143981909648029454025476625095477099691916049978414666780980864058959268086833714139097544515480364805883265546350357476173365584402347394036438518471226448546214604276075322501384109254362203994789652345521427349234180588199879402009765533583101899455479813357135362969418163007753934660583776306207365378671804251444150384852472100805642493549097265842701695490592796978779595274421047917309469756498688131796244504554423204071810533953953008391956844075719381343153148158464903729767033717647271629996862403009984314493282025749467973902770650066846739001943890448391665967963236937849620798233283770886256256242732019596034444488502323117175859935184818481708313874192576524619370626081119826351784505574137946571388057879784604159796616205870868605104559406495086854399357048771758282846686781758451311008178945399233309988385146837944834957343796985952716966473658660803397854348556273568958599497640130991737085053438522548663942560292503621124202829077874218038501426096400043372687764368166640898190088035901499370691575188675039916324327995297124292707897530298706456835945857751614045540957282084264501561080731773027198318638427310169337373613971475646066013237606775531918103950514709060424489296396255470487906011014753504621410062696158155598096443870856417353013402443760188254370600084879141423384162554657599488847368551919325187545382184373330457270868030011776176001792167593565624259397336851674613745534377696852010041104909448734560100993233178549828348620063430716422885088643659305964021475062221435837335680580107536616174689807384763582664618981219528983386793104189526397286003733312988107632265839807179191862668313013109929081710478802695421110470127509678953396734025830804686638774176069910971443794102166709300337069624162179755967635224939285876654011949949335848380903106403085079462690045383556734963863312104390443752971658893705677640094968150439560959816399131968164756030624605042072698973567651258670582255269748942614224622479343533943996720984756911250068082880967244883354952924516186194205805593320389911806817386367045938124411286281595677176752238489987678303393004346298146465111464859318892080676299476697005515125292622904299095767187691760809480585976064521326237215471414371902202478758401012102828943936900330558667666863013124787427617440993749236549874831001106976367876462709958168043808912282127427447559209708702477007255732783502441190875650691305998166997517340825424139440008684806947602344833426349844679508181599248624263019353175661303529485902428752766079014391126278856658272573630171445943783803542958023283515271072354205639374893421037211500017002165635241315964066324666134591402086819500253876166027165737488655115374520059392466021354193773156919496381462958241302092986444703389164239572377554169703139112561768035288388124838186426560463585643109736834185687284772103486907316675658323923870650264558619020027881211666255266415440420690157791424124867101224520921692927799027117743933659848266968638833663464018778994981828348246820733875471423899864086204213507498037013438532409199640720361326245953117058530395834049327100491342335556945985280247743675413515443421924692193202419129608057572227156118249834587708362397481057087662138340009326041348941302665350069338505407416988793657644922882001741736637318875400278081345417363389616884580069190369454061848873060630594316904072292443789818756246032093728900730119424874869854916255942886473727665783375561045080263325078026018649198289572885811897172266479826711896450320724497925140548323432469979633228626075549408194834149863668740706001421574224689012648969666822054107547617601869355806702164191709052305135452709091728188504024053844014619741001285579048383402018256848367051278191636271789569974862803322529590579973981893092353217569957578484253116837593545263435910727295369299446634542344657183274804277161548223345257214476459235438031464178971105716767278223257429680196389771876441833102179519803151156517459794767689358511026561101845846611323025643430670074997157949616834774560185180408196048259172580130284351669677340814876772126984597545287252595431757420452338875379665018033720562839566305229018096478482364861608781872734508783800222232064246900472992896576757301654547772532924645727357612347017345589070321532375431124494368092598859419912412811480880296910762491033837548016765196227199492229140268786718032605585089953690027890817229480649330898819892953036137866089632338420629974930646965019308888134364500835728276837198600648572207831342509613161069083565785993453081446138501197763609673716943527032784774173043210705912059403708860270610363328233596308156657211557725041368631262377732665017141375818317627837607317122220542420074808638641626892414200995623342818722855923852143552006865818615897143727986468961517478728731577593859903948649270714061907206246744492035574656832511011906986872072520027754506514219468629992460005319400857456430053830527850722532133306335931830435471055221946316499373509562820597719753322023271650005448289606857510772073640477638145250216552946827834191752105901327637650533842890928021983358759699157618096844408780559228078651197393474128892151995082583791546080731262746272940072406638248114703133841253961447942676279726454620162416177688610658510369545603378684807489373020003916686007873955095798484584874531784001523755745990655615379708017580996393578733570716125057959183988222902042013602479800536343366882092521087132157682320355555963552417520103259931190710692127835562573594446252340160854757265195796985188831919190131124456927786995531007867151501900690687476033226852818834335200771072603705085942896190298658826932556780378703008608758381832718061290002047913155176137710228974831807225493897219927824082800362845653506117273773343372223663092294067677616734689430241244935167768607954259081161852868734432166325268305700025571236359018692594121300644475031972482948465896440614038939148104056715144058299884684242431168495254236954578516538410491960035334811009102078770672372283951976245266587633143008900622303237367577242857469771155247356369189621198360025962301010399568216424911403533763601600375337290672385527747176145227159816065329015338797065620834293192650013249846683721187993789647499117974832196396901842183414761429383525049014594308846985657341603408070072612273832207031599099884488133915058801885838136492309980861253292443949294886902243141612513751375476465728794862405035582652628369525692342228952871160513974536113120302023451298539200627231563685350892215555167878411904178868036802239626729833537596043625723951095899138617071823457021804289877564955226824877078445770406658903257196626384858638049403041573111471982587569661908080934918927107705480038301255692730883840105242189854653249757753292679113720682435828895303764439688813282440320704532220006546739518530307111747643115586720831852731454329649963133301960736830316350179699883611559804470114338543799586364488268481695380381505975019460309113025501291518984327730092204845856389014504098969495991673945455310709131239389763552204915282858297980451399781168736300358058527533263583998350806581175369606696635339117043960190723087333400925388425989478159951575836523268564071491051586375793135713176335319339293991162838055756968644301384860276270268794076493705818635391970178364979981242584016064914515668353892842728543370871472923810579975184706231387526521945974642605555866055942398032039071584080682941506518256679782611921437676825597189617731335920560633388185681887361980654270400194362625264993545151003895469663820737566329093809050331370865853607487827337023426111671287985783177303124812989967192450051718118575552615746278268778679363608363654877789640848359884420135425271976948175812542089004600442418102185088164002631542517657243149068060458225979016807651989274632995561194424870561424048675633416973139937525146533025311859906110424198963996100406852678805861975852440695592058680392480956572655200844786267933585372743275549911088569038861604294329897788063156830029246295631832864569997323909469942153218193488446233896333863189201348344379557623117080408434923325689958393969777608061512312009303848067368585224424020493066430317641087523073997167085112685302767542273467075015304336213862490938872734582350330871659437262160604469065812130808839994602566490926539485021889875014108025527021102368094801288394632489738127324083558688689728006013521271808241334292869534063863466891104686834741959210804470725755566151675433615076325878748146652502968833794808116929108618953106867522977410769163025875220617018099766476624363162900648318352192862960742282539005273685303824254948677762551804334919930328343718411753923109516321551719815077943875021072704571260597330692640832981306446217995366158307713170119990331599987945382203116679687590315538930932832220680535586524595254669474818251596000251796728910574033227166446616290751080974275263977672529583875360567838775455688607361700850373086729456776680624345389478657645372270682827726933898854772377809822486135631506506478611967747948276521424439375676130997986444143148734515406385651458012187617964265829529247180994105629325371907631149064723341970233625958307201515452067495491241788602936678895522145029834183763646115347428881245947557245785425571274207017480019314708002515054471569973392983170740769125300592745884185383249524663280547746953513503210469649949003248929372107112598467913231568338864790500653039216303262908081962228876291434169845540086547198824181422132599237428335212712690971396614742092773512150726138051882151963189010661273048772569691853620454332503526769032734921551701987747247499706317667285433530274060153673985904234040625513138888959164676294170820104024728346864418409501092037098345324221843446993892955971810849712673939917321722540938325010912216080653676172986582538422350786681119863856336448872680594868413877608986151620134042150827951580498635480897272793077767125136890620234372900968877394871060600375850606359059838973865422637764171981196953286494356147713945315934672018384328138769315474721246771866566143689934252572499761704171646058631584674942492058432572867416374547288054094472805514403211109266288869156093176462081251374862286360061200900369402423901782485152415391984640505588551824251822188184421862071510649715407289625227154885014547579462007452664415834464800202832245147375355117298656915522447508121729102160471015939532972050797363298913180460276449078291980016509652283906143463444587191471809249457155356987625976077686187541863457469774812309923414878767311383874206748160774734967783253497558585772927372919624225411252482436476832271251089961507109939693846427071501850341435911390604872232348869849782876951938322515876162010924183876209230654338499312595101900884940618392732285978833617687391252122484230165492763861828415876835305910980274043560752678251435484956600230367679642935211042748339716301639947114040437248962964455457512393261333843488487008180720907311446762554315430630837408344703604129470287923306594309043940724771167325020875001136726517333199120797829514125401844028742353269101098362518958153905428713569089395994806044341507580420658147066350392982030979041214070670844965497684678905533834921995464032353725901017547923337521830977782557323697552183266157221519999906155849193431906211840226989417240808113015731550102918411750974833834634931160471892217783195834197936563781387534301349860380026470961505874164023854109710444810733134663211311072210506924438280878564666274026567561661449655809585239568914575232956730307171283740558652228819990085935125441762726314981328157315913744424134535359918031985643106922563252562130757492349435890969001023384301727298580482250095638420882713630616562044913386469496410559953143239685847870755240507836989803251490320046865217187640385205711215878706149315942843786436094525790972888387628285943775699826357500137264798193256383990491205893670865739797739656824651353232598322577545664643019986173766801900900244212531196396972450581966172057584238619805373640351280598540650568926557554780299786874020756217296627478545409335146315944212636416635109937771327047814902727532906525930628919264085239538740068352700164426021670385168205155341278722354659688983435738190584346236768505606337223323834921525720578843121324563178511000828628612045729584704482020836143041878991531966571739047968279071673007065280232510297965512221506259428267800672598160269543148115491538310712275709766721673330303491292371292557218728366909428375299698887845327366156122383232520406078354264594754948358202372239581985452087835365214342358586482490980171341689149414015811554149994527208063770895590713503454614052465297050440506404797287794563831735608233407672583215280992941956428638284518429896278422502548873167756952294427989042402071446015470394617624407761818950851879235219800746929082348719432327858396557017159873639150762199841415892041254685490454153050756198603493814176601277498820978112272954200182941288096408181801191973279544703589245260551661562258568621711276428341990205606418896000042769866628208475662139281289203886653968253928036670697536121545419437603693382810717491191535343197002996837506195837335443860887946696260693324397884161285807035509569564901370198082592736077608080195537435450048637314527018227227138663956769465139299985250977481614907919240193217659066424571690202685728494914076424799142680008334254987959304859263434055271711950789830319253863606628023524936218048072107272547299747845370495569131094485925560930094687220090660588623765920305129505289156198149807110863757889678349234604935745757588591321419724792560316804832543700241004752081287561254629113606252380190812756718300931903541076791846652172768618884523012997790076799039895313833850240095218401231342980974197596437927045251196171529247998351119462084983657483860417724127931570211971848920605764955848462807854332173522946357815618868874091463058457810730171830905657798632665036494161025428336324151629849149070769172471400946826705914581262873891455216485657656060842852709519029954475185948783722282924743451315327046732732816584651939697490068247642644528754329321165968905017398881905790539372892700878059785257361072771167819010901258882122947578423631859154096488344903888109080720661414307111303226309611375432725133677144530295462594290270678422792798432322093538256485911710790436516447656204398598317273271248337795127679756624121389544531529327101056648847624009645468456199024025926481375810861303057229863159144198025583685659311092179509198785066404438281639518294637761780823400987246958589862336709623323919169424919997547240702663393047837121817350300412405421533142244789035068234289376632833870494742022440948391545213934566378030654060678160037791298590677173444553325411707621156423130627025693635771175851875417927169692545245964031515900177655596729251774429907200913490279829847167808477854723713068747695284607495663179275138448591790956808483791803531655769413127538047268913933567719411552005310470166251542063707751719770368438462913441110477324933944146950549015719208442970259732997453155450274934369026856349018591651912845376645886823802186575094551027488778996496472504983997405479235471019731704484631011565167307045680609443354796285174088085444569245203257099775235225230157629696278881625559347505439404724026997565454522607592793948578715945562679543394275602178899603633378392869730974199776557376291021117529858463258263262153721555290234488152163715068529403201655142407897575407836398813084192274114789164913696447148598178644209924846226982623386000706374840486299748569519845707641200803484797191644744387789670940156520526556771939713388131499055792885143725311077540264441030039250087047219803482018573584989602297259751659137276848265806899568040871445931801443429850204387525691607514728624919837876674740195767644093715703234452635311656045392901683253258951454639679835899565866322131597616387814993634592472808771227550498612498289684619978983967364958254051065056494636208121212746235132418778732294701032252880514527010776583640250262958862252450761665318770601780481240512364356306537861364716740759992240491905631065679266866212068315045492533024033425381959954882593746172455146912865875789101085945656733260924230246353761141999163925524869949409710071489609675864396275096099954757765332014259347798191653050625147639424961518845076969552705726625915936163441220838084625176797172429384751040949995950557774025147315206016785109691092865709100478820034722978075213116624873120490771973123049735909467277866444387496381358532778191551000515176843954100898024287849673995013421244349959329852164193248957056763339036988202763055136400533537696718120667072342624675418773855268006039078260156993668698176470114205026845748410662894192657448293838032436237974937100138440466996543376940857701590816875717925790778856244788650848838301798244616550784388470294847120633648188269474536884195087234188133847933672229022708105656605251956708276749932024442143131355612982856868710976058703302918878512171968520901827339459653837334239346634087267280032596864300394584397353338072125587114841919310375788803356861284381025065958793030162888557561722626647966492730254346381372948791115630674306285892280793612362580217170690231063562712179452977423721968831395681110372051676744260778173217895527017892774354676967600061973253936591666463816794629777979978345477897158790937447524554612252280915957311273177568609533476705092551284483325881373838671993800411477183288251400794767516827291211391714621651345897559165730188896845486477005861476325337192197156018105497771129036486751017360746295441584497638753437267190004042025297423591466178880145490059929328879030843221798046100119577447578672540898674890876473888436327499265813383663725638603871806572346819949207088886463536663071537370597478823444822596287934942009835039087604862619154119575932854295330062442269238942995926775364688848852939611821532100614492770093012890971218976124185968776288416074049807843297227851749750635330049870847319067539502099253783382042727702899812868232736022697420668902803763466873778515782455420602290179906688762334662465764856884199385653969574548893444427186028015018401214870211474132880248053543350801606581431083097871709440880037261682871293113111412019190522422325774426582920233756497206740861163097729006227567771612516906597347513810896388790913486819444972671684332615646596542000452304428937659154861892189612789347802756701323813283818394343191684226441273937617933417763128007447269333828182290702378460229206384457982636895952886902108312613559517302524544367887395680774547593114499844263274561398161667938342513175656052044340697986453784008195468161721740414421712377931234753224408013908901567765789016384611486000418078993358010577846642632897491849260354475515297969886302614424884856845638962198651759097124350080529692480795704717642948983191876361155491350064923330012665471674293752948198099252882437773770924060838248221963882180251437185863642470887578231810223112512304562461831137289682030282593116136749243836552644082740069850421960265634390221123367267773753417103479819664129399451645136877117231901321903855752610886226908677004320884582402344607384552588134494382165129294782473105911022049454962121542810559507659876956346100659564614966819607032096017060365584868567139248817393262315818327260357831989890327090687935978027940107821104220172756807221582633071042083311750553949163289154214188391477894978947842868921556441530693721031064525593610846854581333270477896028899326108633359303898231780450298217726356026261012261528082816492655836754796148367092298140511738580256626835523370784370246493544266228764286143379399996874998800295693360569493430496698801036999881837089133759129399758584412406889999370753472525725285891518830121725872143454709409425994005724425179272638869487452693615250620372566725952768776384000221534316012122112696716864759454699966708097908830338269747633603344864134570867998724111586096901161816055687963286352584402763215116499002378312447967292060238934578617455134794566478985976048805266105368367192389572062472301480619034866313950871907321240670613140410053674993606097857216884726638871420993528175463293258730634220082133458303497229152257988066179296769578377856935859676157920193867568940331675579707458218203240487769886307786372344994645165085041578954371515098059061384529249727901719420079520994852782335477032685469131952279451250705499683427328998242789610797472203062509073787442200174284389827204950125106007672193563214488761784339697167973575483465440738079960543865919418307689725356917389968383461426600304172603564790295110964556028510475364395412512497116409430487757910817100927976491337435022896343386422857047880405806498502961718910094947068008258869463308096366746512615836879190604784380399490158785908985503961554007899867348963506694347037476641040833310453838636531043902061008101377079013699866078486857306601576073328595005591163374270079694098679110018073278946318288841330738576180019272468023865537818406230421841904997478252692287165896029256045882681448867883807390537682598881945779158268652369558619804679824149927191219273403969148241719646016905864616423357961776717834827093451944590238586879241603732323968153768798056610664625743834107784293855835749681831366451263450851735112790291492794517687926908101222349590466835785796701223996242960994014709419928439065287129598198933043963872526724661587819683989898832804423001050520932261292296773141252016999893876153910827211703872413082315207437923670650068757462640457500016911292570886821772883289888318264920870134470119623431201086343822241810292105104721748737192192619728098902488519529497160520526825221946103942880893873480707781433775471782271447157317882541758609145267299979611379140018189125750697069355729631532688198230768533733589422702013251812329031284477930196398279638297067928542188579754461338860891431471778008755474795375196815369930606356282926853770573806065968628751448200136934548823039888294981616700889196073362851203855799231385651003808772935664576643943121820913420580165991614116785622383093117895043100219384722252246478221542865667599966813297864848743429798166243906729048178970823292633206053183148077794563387259775522568345929785613464129445011367193907055948475793174086303439434009133723786909369540584274599046169194095363711307643423472545735271601040043148880437030209323887691261307828352985017604725036336620361047466029969131748896513885907908728730049294622706891836312960485626897694271165851005824189404469630573060596700404449348863295896113844370343131732984783635912015271072674601519306619062233588451499841541192022743552731616239012199289088595821686553225220281146074577971684109376891219957335659516426492886271283361070535755213716348373464547278720989670964358772931679702974058311776180478997781071409936057571648934611241592645625674832577139227196876501638378469406287156044890404803281009388569055711379568287554925140628034718235882789893068712596913075103786742443199803086940751789524419510653458029459022228773819593107879127994298341676352055959352890828902611571329217958405498849690484445780079385563817770806787989585479413690714078957081946897721923422847877304834291208278818177970402983708810343610886338031636003663446950877374841870198198515489339567230595809671568879764204107924091329758297459069697510764722837727240454736630331768407370789273596218342426253011274125089439974527771188684659643655310750171052637950122383151609690011170372269289763623751431873556995699691201399750364779653529655709314153783023813436454149192073977755235050421891291608522573021769582921704235370823604072788869738265131175614869769459433082683485303267243173931105279748062226238954899157945471572862678349127389796595751739999025852260521451329518676844830134820421721554870287302635157077386676746803110444223183314180495603252884881475552704185580696684237318736756169655089818195256009498665480877642789903409212793411789466587992148802829219612283985332653379692386528575684172101516970679632971736066049395014914948159504578433766870561030139275120571171495992823559644094291275933531171493631669857623280093089419288691437356279565583275241572043862717430049954028429938143090806192045890871703252174687019037394661427795050750732697000689324163040208986931453633155173941262114207761196069118279665312888527571621264963787463558740938940535161913972822218214081074988058740040235129057630644080884106368419746325892637433032838642414996440070293252700156471574750765474430648953432883716279645121630704605911766545752123250964260222509830788281543022547581524608366014293389780373445321917834706204027132920317885105206339897607660393310004410826228117207303953455168413603635316374280378768633779286345921410251123021413518795056904564011167816022300179360878413989393322401965912021853818474787478115601856721532352598844715494964691727101121769243091656103152468814335871785510577242050508521807111558237647503665359971125054347864723110223616004923648153680197732982509640553831147655797373068037338097960145448551828894882882520205279922398179558319716622276365417625819563084024861780164149718528048386932946799508070175938868028565883917135323602380613694518731481952659897091323490587452343481862995170466278096869339474218310589955526413594327624521198291383250634477362595164425443957214241689119171804580291235998269361080805522396690364745832708172958812464302599172013658898931004626668236435689850926607576778836398781678657502483448137882257083016124778973823506938464199812880453250385701867172748081987902262213385873067776755819327336629135330892574130800873370630805284974572922470274913336601735265402404666831594686613435738869691334124347425786906170515149950059446981003233311952197043296438390678759206836489599602498145221542933297241967676669735942785329487829600550103127331545028304510862932498251355975124778780413727187238850676890172773725722850420099368636010455317238491739026545298557364818813759985618726413510621939187617148824868294340669154982767088196522209841484136814941110087918726942671418136235096826264218156901971619997600618239652294685662751310028224020827349452136646492337269813418275893924698736394811756680456398839007719222180053606548240176759805704820124650388194505235826861814884004047838614749072606697027415884268237924335081080665967972339951679615721861171070865381754055553666718465803386801994841970056119086568198183856664663567425573020821849458080628726860204505503426118273319888146438690996091021740714392828082512940744207117424486897375141778472352707846516665817565981759171757113127313334457738907936779803826563284799034223869460357127021537578331290921049490641093067140282634513319760152494825290416868888390889924774441455897419237144145111808123716799954473687571102014048203918196068780883231122980806277376450278515310407585335876385069887468874012414613595437631668724831259852867946144671492952762824723587506237361417422461057299058612555242369177038512531466509100177412822267184579314775975616915242922863952627234984456179917543702507559790546671520928107131527924316591255679474995089179405767440214026626423267594789478946838137692176145042377523209449852940388093157628059073490317611551618707091307121084725417561692041062241117530877462222197236092988495718486961265545311923638222586749812504755702327713881319908354220556370358341795400713218626662747838422075495170571926685719459473057297737401917309790486114983945213924804771416287519461247382905330372945372230004951031845079590552086982842045162707173295485282908319499194836307406278106759624809593622369007427273217230656729424496460144771033291424855400363691463571742320026261459155747497020546648680094144087043930422180988746167315986640411252991392660386340082404624644532816759115895238942534586420161349323045557076144572617817951257818990999011751417717326961619131790645770613466302577397881917645437146626564053181422409808957866453401169968658827772984679546322043754748910270211519046135407515326198529341505697620634515438177248384470519447979100812278878982338740003613606993633921379552508092562831769863592213386141627891407963339649771538804885106862132066816429913679957024055829701861093389795256704678038019554197385223568917215766320246186077635178035013138170386969325405169798205324608208795025214386066584728671623221811102696784293621175569837437027118833925860185775632980643010301184485069263580170329078492644897062925662458870730528564065784320536585343534612909024196713801657125819046812086037501825432647983992002363813313129739002296129985515742615105495690338184814038817114252994151343081257722380300571063079350428568598660330664133925839615634926911444803401639528853839477655904018154112995250530531073778201796275415297370349963312318364646847214117074220883503558481853246186239436206727872990863704367711585292018316190421142980697028006897472646912814279215805969611397722321019693128976224237601420444332121434716762150037964120804959549361517995137831653621151138708705640108202015923613929996884381037540761007776937540393743936211245930416620238203152891768694781296304475663232021063777151675723489588209138222122591400281627236284880096690751553410330825333860840277577206390968861618502185852787543378897891283020704781782924001831297486270986468905889768570784214800487542952055232797260958323871650066587399350457730190951018815833501943965143047275841413264759424369722235085781064039958606329334934928279621423328159075621083654301412515464226880165609517057524501175140103563354308159680654131188002667115527455344570115831378655009224293687347576985733464208208011052659534866750322658651198375865443012874640254600638436006174207772149547803898733143298218276814149318097304854034506496755166855681616349775569613923478837886890908710585332959952757411859026914174748793302225129652252881477400501595175159693341435920468831386546606215495305055280951951012217449311031320636764558047103006800912435823936256671009568611858829397072378716067986488258130233268953916507650404775994786665612832486660498699922390051473018476585541323294434115061464539348953352778395258021382026128732762778332122774303229504067633915957681331221104749649991632525743524640075657097740153638413563320134383535491313578525763436376612996471126855241107996674592315188535566685392805091354477391197932637764345233116318464132857830979871783733139951053472778447688012707629240196841936154112214320341365372213904719441725440440708708578162186844916959504097711571676679090888936202865520444560754393560190408870457585166283965617667726118510399147064527315271094359750227655737305425067676147355285984311167498780386211209964967023628002150040687551532234022354916660299951886840359018273655714792430052658519025408675129382625765212377727686708388997414408719208622303827907789339272782983274751157128899654303860947476664625036804301127754258719574783583794933522020261263661094548588196766104929378021418990866830489454381674262309824544399471717277949830027005101551669759647438410986738293042273590053353413837238219564096087106663184016585825047576694392562515630888727110625434390827216594530826463266295398697670899602770499057453419251036249280405689541446744510595161280905346634138272253638761684286882207658630370575502947207415250310644599725900420686738813550264029244260830518160288676239242808978235040311375579507730646106065381053729602550055426947972288579918833405723031901140556038972543586226080353499024180094549695156320482254905598581316007719668747650930259024752373937667985022600504482679443707092908816044300135216070431538219053757489078102441485373430870290343547577015093814084383845045659266091571446185734130166789602970433156481853841305026146012033276646823356109608015128860885656868642927147868935288233480424230917787873996952519375194131283622445797247470391928998562682298494738667312014718763998733535054381687636873892063869210341311474259021604261228259095266310839175428989559928703815363680956851413726048686313638286962952932962500667900269551844273367806802199936061412488875402254393831953563355070181470708123354851578049425409024446642112488776742151442798494781098707374490880872959114602184714840649568727195409883794150332287125379150118205554713501532453424496675536242630809387794799439581232224150153468710251786406687499901228878559926598365714585939116390620434886403787886402072480474342259498308303736179462944021671424790831892968451872512801998082299661653278536402883412573202612686781535172340688797560756960839659391971826844392912638120396024597880995268832037872058188399616564204634718337515285120264007050159368692427073941384491159830194104427553867491105535332542059651736795369744885887997866005602163926072605517197242294985979764197205750223555957101295791069870774423721148726117139832578545191932521984442518572568516563909487243163864008498090265691355794422003754833178672018718748275684822894282879863404233394878932696290960245659051015266179416710200751824844579296588504013435871631032574601062773492388835225591123066781104904480480712067662341809948211789783657702293042448827084680769820061108404522418126880853429204502338369935487584954950917224236772227830856203993480541038771126262821381282833575807651367396392235382072027870278984028879624524455510356195466705601304257402189643942033023031365827278114380847844816497872449528969765180181306401196305480521546268812571876427586009113015517789470394000973305844056347504027369716450669630836670480302339787245170661477106779092500471727370666985141940430869353942201969214005165418017903479369704588160415591934493586757450459259607489207483043065017763337201835654413156104383662076515957153461104801058643354356091037813300951990969558821366875554098860559437768388987561491692044470675055756984721501537653341400263497730980060285865461420970732118228444834648990526110237044786611689617373763958890218240555465233800215245370395852746616691842489837697163699066459996938463983105231092010668701027128626965418473004851714060291267779864523405300871978529061532980043067336878629441271579460384968051461418596330888156353780357039746929351599700994801361022852321217485752238277362448681232102339323226351450776285777872120957152125654919168882614136695896500193267154347435585433291632007429114147136957768815620672086017343882172100478308997777879116845965461840003097165242726898738983345363948125505854936430746798594803778261812928299938729045424543662265465622319689234898002643553242591941979666258067890900354508993603625880916079725381471474232881853180546975136592006021946177353345850548451419697201993807469802109381751384399796611773267136713118411250168758310739497031401430031999767118681923189834512261887551402748880986704738187407946203628500325620200910493057432467409391568093526186844826830411665602329031130915412477782023132299454366757361371326993757003865450302248056767224059195876765937645892618452631120112940333838618677747295652903247123130130046211714179308666294759247995450591725519908126796545543831911140044797032694057615547930624913206952378287208561262866011475825871933517188957150985441391182022947411916901689689385472485955537396325910210467004157022670442120768498265915935616255220352595937454388601400420192739311695036831368376788940541375649014898002226492722182925511253705064955848054015318908210928656920117791538414021014846511110291276855043237973585191277655208019689278931974312899952846783199928257050660088187643480926707267342799897028086368493222761318958722273147977836075769207707738208918209847494633246806040797445501540046128616999458314458719770782817573617902992627494359457362909580822082523017007534260365639320965866096399435841825632985757958241531763886225203633068321188193237964808400757125113525366344239280801963924237995430423807895063558851098709794572207400926085306316678041186336457329955962546806224215365652033339029446086873657468021911527885123516291862175928861704357138730671884037293049075904002949471054919118228496541980168262685510529456665138745856030060553279367679254431088864110156401067245982255584028976735866061047696590942099675631558774993834086094699081210612661880461342752882049209587592432087784879663733325548728752742708049274378361849877753084445094266439425305672125516199976200590391010309121333404428112910069420091525772470441303016175901779336450656684691970756051345469503047555892670095649617669601967697643102867354262793883668072542578159249603128521034983380412276720581281239256826979260890026802486628469681050528739243513226406335113222685302815167983155541711835287543778915063923968746353258742179671321199951028813498799232560037082344082268408492979145952630140122201909649854003289577319911252477354940897953661203916265599593849216941517840026469085405846171510151361526355739528709311949998643895521012310618080222791468059854831994266075067266848795412300234004577230707423968920896803314268998453180177105284285780090776326435936412161871623816307147241853923249417673751167398051312544744499538286346958328626218539842667321476690451534987162033682307559997280671198788608472500362403557276396326357660125098088865780970114365610308365391946414407849576554107073404169772297717846890528220630448700540948228002273928800511831429139820398713958705010681921390412478026325684817784215159510951380588514617194952652482319691751750881563418014098102500231106662722566664810806030634382232808508579268187513587319201512504471471893594685302697539626983788670220739475453534256395485412460808976000535889150711842282949958150110834327049962543357161753689348467272747560555648781882722706395696542400834140156298331567024104300013492640439371024812284208923465124959357556533209793108277023809449584564449863195852042514332686437825824895346536902688595685420758106406272332664204755207974465755016220369823897770397583799038856507205658839038652060875032545199695167703220080356426475269634203851086114437480205168447077406508173676966953765299835842245544794267633275197082280347243033333122916281985386733610408302348206228280904063287176597508788346706542767170544344341471064379233755842849501889975954330069186039654578069510965611858397619492146383214339751902705544242144768718001785892208287354503487420513665552609522119651219519251131400419674203651782002208050802005422574597333587542666427588875454756461581361262324690524537839316779575415570893987376282328357094607796032667830495154807025108171063246565226703977722915257017847678337757595043326700506242113636248868155379519748230937910811668558841989903777049734305084300912001670746362714412464222388254854902198894505476998743230136936010563634603686748539703444675377701554686890544921122354184364970065968160875540282075556811382438094755737082121733074233073651286501164007089368056577965598001226001735176464573592920879452703276067494180749594965366210848026263735589775015719854662365560822226541027142728391305190861894217336523062117202165203326971784942992856196135260998320212581200647842287969711317060449716242340878667626673641962279769173052828949058636899953806427648751582129245669650026104462463378378141910846253807916897958968835053525009929680485377678057230006538222546702596056153710311048010649781169324872106160713750392071933163615977319950182587068340907960534106042555087496216027629438585350806297385955119116772101688768554306286844818513353705236452587498765847352978683968842982187922028597774827379370801846430610401334971751624533955204111172621158681935592982783065084106997796544357275921498476189495066883628673570304968054512520128043873330001296219808330314317512857762387738621819915413305141650585915978808831599327938505266072462926312185291732832669211832045725256583541537084067958031315097672213211811693195026685966289921408780673767344181325367478105473585883510650928161021426800038315830213294951982320481027262988307073761093209582922722855486612896078328139375257386719840412464747030626614483843815470376163946763310835752308115923424385821255507784031607781576853722755808123694218769511425539553016972078503308477808375017989546595265092212386686640249806388146707924646383431550031060165237334987774618969716140610707818561661658696522414433155937866116543225276698049830071215028913739540197303151373643114403944884980514303982442560861861352925274047707272903812722523108741369277437622905414017455347526279711921575847569932578295768090209770477408851527138983009856111573974703381303147196202598884138510960810343134920041389226883790746657571908402757602797284813619667829080228700740755665010014720024656742182501705818688729145525533957748176362679646687757058562538049961698711326573335279080600615809289846588596354963066563213024456023400564287672150088154862062106931089236952155660988263398731930958876504779866600213686413588449281362271573618745923111462095287844190248578406082726998042756763539029157116640616400521509250811544222732286737917542538680565937247259116356809603145752079462705591474347500328538260188628955126545545416937815340179371551282949607535277800175263274090038739943556062019612693240974359151328645190062778379622563900753682810032933375385263049143658920879270380432241756118970632422823026060831297297394227870154131220290856833556295865489984612971902698428105158950958996205187395844909956145992455295781610059967336510732382208067671174992052698405837762311539399302298437464286683547578550882335959226733719119354746000424202650397921438089400478256454263451443787371762615664257951090330513943773158659419791209984245993044365625105444561638485435987653234555538764925149992480186393825716509127302712749553361768099306643518377798448857549742693512611192399894995752911597057227646338716350388942671677661257059360605912475164295164352948230829995324551186890385740262195591419998692400596024900664953081573700248788117925191816670476249009885693066577028024703972963131359271316063835953521897923105731994154687103387442520753011442351849598925793047816230887297831727147523984779529732026269412501655935473886702277320521552985026263244443009873625960403946645019620549467115386669682215121777542835523855756772877353652739965449230583660523608442243514900160547144757160512201000471296166498949573975462053268789409752511463817730177608297332412633968893643949132117093169808693125164571517541819279061521877873244223879499919630906434254370384967747401403086909190463431258300045706043829217263707478594544937804924317834069736063061562819520019923156086759528592577170316945738709343727474774932667634560849671965159828565209160989616388483949083037622945536545494906672136635199017597266367093465459775981627954814707069280684883863021300663899826612825323075234822790477994162367204275704073498770259291522000336128565086980706500312816944566037707470279097263924818801760144738474228508503255614813656340838972665921073192029880821609967242673166988319755372014649746554374546600319395276847684753361560685059238417492441487112213018424986383094716888300987103478531406512220578612736771264120387444112824550207820431243458980293707136660051017183365515501601566591299906114128148152842212163828681728280520130474708278513303472739998074739610823351284003706874166086599237028036029317047561975615118208474190358620500304219417046981375289016364985540299261578448533413680403751083188694960925679336897863789516058283922931611047186427648607360203948678999529079554009656778162935088699877918536980594365522989398992478296056156170997473751728535003863827063039197936130850248347448779179091198226142939746049317999617497696609966712635067167420591269811285858756119729653470376461815018111788845071532971330779888143830581945529452400976551369587672312422437990300718013803492840551085622791351311312078180604089054873144529299288781974023429306710170860759777463658309652726676526206428326855447935395491276776670685875413073823556882596015205413900735826356926800318281578614020231059940710579703103130277927543306590090927239276616818656900988510359229226321553904576194500182963306711410733120294695496650880127299301048994287918031374328269181815392840209864440121781314721290286706995946558766233845918056684853173119878429110747097957725887024435101574722920245046035011160437140342826327916372077647859226957595595481198789654575558417333441303230368642548898188375615960227504233208553274402574981690814688004804728429477859771994936990836563808617287799641205958886411141573124944079416704537240601310731322936858506583885470928839016672945556149743494895318250766282439643170177730628841396939631478076764106677548798451153915200008655083801887391572952758687092829338474520445455309582691641981921936932607100382143643750844926967338023179799249374335665868645032879115255938471959427376803934592147867357602696729266247142248595580951917985865124079745670991427239744867868406677201006199329462543536377564602535617901881733415112576602187772128250177615663964244494656122079288247360424598569824300946850172533954487735630717923705089890164022129975344641870554111238943077257752817980168542329592266696310839569623449615614760889003194926470445606166814244850469703088724296994601977233408943446253770425119152413349915502652805595389047905288916181295303493712829288889689244041218135790265861456332221644435729707236708101536088331166429521416808017934920101337276550092216788713640307969418178891115148511329717676129983798406004661713749410951656110550234388831118964256235223764648131697188794950756633351667446657628837739598668379256137839617897270640569006637168561088342355887978825712044816443169727295566469122864755894642429941947891474690319841322399861075196062891110582869453577884625385770621178853286190056097316511716886005276573127636475226391841139284537369363427475703205083600222339969653987553336233913163404067836473400303164716745422400979625267651262288734374201447435767292473389584150029760952960645327032195731993368662990919651902848608076484785214091737027790499817630502871554383339475279574391953441872157652261156386584628624475037637325140835267430142365140456154161517988829506336985336362130729265760429450521522381076767666791430137085358068728782517166687438135485570987326369238445290835620195105493175262772818969770966896062159369155859653260764922089006389871440593133988364833114901973926854364522003872975558432594396552137721083694247620931633049547263739191794146595212049174471849440668346977994804033329405020518085124345214469464179498816344711407333733324720446879394357331514061662003578368341956510363183369549256052912976663951023912515036054787471839948072172788739312318517669009124474678978116332572222946250206008253296978959036082066573930439894276765912272593696501570934748216020402863676860612442630094441102415264527426945094345704570575773589954461596535800427557776949936099915577855427332266694524709944051358893093414619696878728628488732306515667013222565391048612543225333833847831720766545239769959266764600232250826988488356988474752112254604943167202490279902906834064259890629100841155513086522617099622259761078830183119053273728749244419161599682581466332884425184851096289833934407325333661673022443477166155446413560036069372677303938882516637131720881452998504294532001999179533056931468288259506604719844765843693535558147671191344441963779669424732595419669143187657224710736846711853922551136830052201648603553224197812185804203429456209452607443715014149321213196712800401897949949621930501827130563351942652384544344076206220267790294496152295448985951543562610901526812875598422463491660239967929500142021303173074469468960535371287783021613899223676768963986078681179951392484332903079894785291174791734843308598797005147273903790214354878324047840369396575831291806871155834241990435737548683399186252772152157502044673575366346562378069591636889830477944523397725322674492734217192180317181453576982322980411956911638348264658165920705483761622544110241451085655371982976944741757243814066923459897751928143262461182828819874367494765277820247170619205279750797168854593999058789507066931160075204031891256644680425754192920163792760596394613425322765670744987914205830775542260903872801226017283949613089995534673439298266059880265413128905360819313671872399478742752530365022979208857072870919977355378909792540348978147724696033829204040680800094966941754644714584902035732818667992271470060026721739945517900019723769772646843123767575236270391013400108226589352864921347821843213432820702915782655380618169994439937180775253353862198832509064606316711211947910575062820084653711656332364260688337235855776005663339536433518184149250724009369658666818524428453574342752425256616020395315183044075500073114865207817080168609650832357730994996502766022361485161625704650658183268919150420841787588285169398138509294466707814721309414938617421862352297640852018397923686903466238279512329542225910673833141683839646324929207619221930566437430052645120178715174907650838847434650922345058012945986023913764175247600063062510254406487098267964298843843030438724512674792725717237922502604522415681245626187164037512115413400172605009390235653493398170961734156988602700737511668074482658665403900083813152935973486985456439820206670988103894680882475243005549490873820426128789568089027236581288347705833486828770568274365500667277910754142747349877721282222047302609567902206168049505988209552740199058663966829984140122786927838161107033816770965278217443904369298561622818536381434765049961679789854112693544899972140399441791192329409241871529695942921961791631869383687092314284879514449369940200514224341901774272504827119695970424647809416171322543864303965155857346093843073000192811644713019630172668311000441434129402653545047098941662214077794731574082718355925483257858078894662215423345353164347899229708320515539538871782819993953119072771669440580208587397334323618535532096888487350633441418016075027671392358021069962342532368614569790569341939283169231078180877986389590853972525029162265649478219436636272999506263088060548443779772487709403631825975282845837369493168315207816471848964557528330344272124282722049022538651631328552483477664009172065356051653991022614014400816312484145806137206709350451628852389761358882461264188958647175159619698795555903775994747239764225234813649945907376901066220067182362018514623018062465989344132973918840418197473509615462512779604463408550804961356256027539616679983617658887183903158078307347327068654237146408685641978766295527618609864406157480662476183631275764345609598573652574368483088200512160447641128541213758764281727507644841698315125432851104032075910094756342312334252431175598122777479420352828510729079223608328627666829936032377216201693106174725964539986365720817053875586029247479715473247957262139762126716207535082114117627849737199723640584731940381078594526650641932991591747215185174092877575626423200721798129377587978273457430122241061947123915114493610888845560752554672773511689720103757246922464384441164769066936064280678190650201097353586812323181384230629170281995229042046450621443566346593963015718375368483636045706027897728259507327412130709371613529212287624725817527651820054070609648543794825345697259755048316351196899357878324271290147630244753989391427695972973619037105050004654449366135201810633024957903963751017080242003624557839942988822083848149015580827870743567351421632005390666255490110713327359511547673585265012058916436432925848744176680476568279954060518911068851909553133116667131866222698023212864320497043100190820569764633517769936678997663418695861838547151855102061930019078763609806778192241018669754159841824454084621962043899869299033750587132253529305440420940709409570848577225120657280088175311230660620675761118746120365460189863565060341155361999637957562157765003250900703645050437302418076796113775199899412674674284358731432594282859929064598872976073030728001156092141699773224140500635155408327215572936155859873399911713615131403425376476374456291058841171751134442616101811442064000236139595706111234651792936559327073783069334463733125520261800013483893278231463566885349365264605875078729121143944904010887663189356324102900910472297606015007397606625109490031961789685217653913903966032458100226693128068090300934674723319682466725219591403786738943472964324132359248905152134106857923866964903345334625842880508664263551031812397912678792783616885879120374657537529640901094940236062299265325085227543966324154855812734385504472791810399065072822043933711142858638759255805172192608538508452408661840496928169386865909970956246306188126784776091441830518382749385938374558925108713414655876638602805824361761448578200590681456514076533931397872254026562165894128453061470197263282048646880561029580425811485058564665329946433290458130742463928755854294126007803231652751914845465936388563839556403112245784512443397557630805779648781355305664214504929749882935056875274724896601776567280089388497138735376503138428401860215508622598171586364136302585316014141630654183583112405785317941941355807228382648880216426002509044087038018649209142553997692430720716430662962724102978873212067172163234363320362526880624356761137576151520427519875651373393935287907033722324727917191165562548464969971164384827927568485010963393116253271778249082811533208051237315954257560309173439786556804495308607107461257833208262186333172452484886602933521395730273293557511407576320071838096209627413901331748450270208065148161199482866030255567161857995991974532425618802583572244290663742452849274567343080231429738619499644111022954037134064127818642461711815546281833541317931509523910398609065222342798591382861765093137297336138886707302789192517652045443714537728009899816535723265589414532528313469756964356895148436449516990414159913647692572192278674429384724797323453342162516838655409170984368190061608280023686989601118117648655574925119314595654269334485359336252992159524925472397208805674200945859847116402769584762701102178268688268251727624263164620536545738747998917264052621309965850587862222100028342521225291010496574915338259803181398276468957883700051081829282270599569065624327554317633534558920941735797385046950369187628518176822765388010494028455928822908061249776920504516320401292596998179920470962825012019079823602532423812711298767805757138512154128211882155661695695751795934227825766208217831599415152189556278072880368910150022317328302841793779002778618025367557189614746306999137761397318962478041954517166822176280154020632055600269607615669046768438649821889245841494681264096417408548102136413284767151335038749572184641100774124741213568181966582323210162256305739249774384921807264356010108997521460454772229509011677797520387790407652944886325161227410003683590844034542407779326593884138246290359881997063925812282540415524670978203820556817883277613569689135806454058554027663359249862794085724367095232747902649131895480518352667733819519420688927197901346031687202957768432673323494876282802552806315147704135249954077919656356120470606644584541927576274576737296503447574822513326317386792704928398032035846856050431836135348437285153060060777563528428763109120372690380412142949526375632907299042686874731645466908946132622018071356769163664429613341251166973460971864626421889926711351088304443853676248962206877653435228921959746230459947366389061107169022879403350640707120141469939546126829992893754788106270812756757394366337448176172166592702947739147383414362323668992654490090136217641070616440407739029593233464658116481294079226495955996773969192011970317218799756556832473208283727731875779202460554717999974772372944256484103310404697755275786755560912975621729904393117694638143647586938226242894426003054511798523200347920885587643029048212114055159895622261135400658953968386873551221882390988300877652055625097590762807040610160494121847292809814318986092424419977898236678735777230508414150321117110481849310412045878035255354931312278058862104089293380915516968067597518628490671004654547779985437790763092709660734751693238117105448465671023124130860302354214648843082324160358347280832085387914892456831774315732809198032019900607548161080498225460051185280646197688760760345693419589619624043606373351292995592687097349563526259069252571232867625045206781956112832295576354371321115346008325190803746243013901937399228286645613198335154466713698751186614139913317869129323247955085506775971677498587058563166572625346017948078481902537899250170470372031303128778325123806431933363795279957325863599484320769955586685196884428768082045450190419186363102612294276019856339213507089767485249009790663174722025875074095993077890070352662524818359770356044218318334905109735814340616942255082075620011244930797806591652977024493989154544692582935615180903093757019112193192730804396203902634403504744441670693427057383620903717223854323833700801016107717841918482403437309940950459610127340172867107695413271071022637617869813210557001373665624543778199358256223789697133581311327047012589853891941921321124523613563263911908031431225869077012091273108419796818528241248876597583294884219528873789879923813678910780336700274196337795136013622315993904457882132867580511006191142642011867850742911470240563292685014405969515573990251633084796253839796921943999657757357057391677359461588133403005564083015824639503958159321316128610058004435651007387191981590347907791613126582385087298665186394183304352219758458769795247217930948750559000152451584124562568288409075746103200157038930877913239429098636758341821936020704131195372720604788212815554449659312814207703263497089039017480673747814035550003502573561486984171766638070244628469107634319123507334546156113739302572479603475752678765008895166454360060295424438887053086235213609900321448555987571418253119518878531286745937277228762186291382418502386751886842493329247820081793467729006449245807119501157709692120928520598731473491210879284821444607483235120125000021281664455380531804303301733290696183798127385230599906072181474860640274200293020086564948417653909266064689286300197004687404535097842943947904135737947213698921847594583412529708772268800229755500222793519109862513903057721908864981009472002185371456974948334086956937890822438765624062243193404607882375144753129719904958554929357503993513020296985884017605066105175326604006017363263598192918433052806589459865432182668803913523616720510784587152274140926474080463093668283014608426501594921353854458061353708750299304215638500439061140480761141684995503805017866551356111406629463573488806601209872270915711569177155453319492638105718161218421116505321928905834481920532630421116736417914637470874857998557651398021961796817742433245133006150006210901313039324435960186897756671424915614813511443718166416688060074148045698368130828538443506101938498495493276910736236391080516298683705243522711004724607732423131066546400684752432751487557176033224372266660886685432558360075857900379892611242679216532154196978221964574570950106131887319809599256921430306082697485652899516991848140916161923586785337446601276977952830207323179229704310541421939980926632162267884231164810863405727747045157697486514643984379908710370966450630743717218067643605289243878355050627038864130727549027013982487616511872255424188520574268780994759833452111129342260728452078992111588029915572027955216314035666556562829575353317541926592199449389748450084012389004630730562185790091381573804399386133235023004478019949259632646263471436042899114020478502969734523087842829403236354028282903632307130961938497213826210337254448695456869558033870687675026109741627268317344811707485325879063510857066065765708421876338365249965795542121244754530862071008729827324952829518893481888805050542839346375246056296948915909256300576689963358020103128694867297373258635561930721816273877807322285637310615819596529299706974244641131131001982990249879616855450597838709184972894168224336101580141862402929710771502689123688359182794158952640222513519832989736597776558514797586233796997548157337029590784698986576675109076107196414174828823408300864610833678989106590947991273549123969540153227818517765166408415663135687418627555453535449196001969812478301396124422610001424649841620567468245731891511100491717736633091146031248719038569277991043422518803706871149642331640941704983865598351865973868896761134164777506289909144010448711110875213214702433124542656201802238259737914859662662710818616363403719142163972054239860364020877695611833028941029883106325162933419199446146604045866032228883611904009362323182039072863784841604683001523019015988219594724267065449133570789561017864483982488013110145387915871300609969341751012755158672012523929693082684835965545412236553755066526778741430264982835877329222931524733339133336735605762658649387346385054530993811086493064651396800647293399640333433424295637232983337989911238526131478243823142791307619452766961088879719334835541532731030149322775466414033194889786184934262469036364533986951158420539107006049951096324821424247519312537052204894639171959258218331929786569917976550203233433319234206365997298893826204979057317004068422779699990885962914211783852917626727691427164329274957708382301926870868520947507123122879038096867186996815582373663611918058909221800744038444404402688207596215024405521768446853259914245905171394576515007036375015972253021051837543443514581124415347358478849621302232783510882664899375335763986909676680141862149432008021717251000386062034401724585416443836853291671246162454263358583717845108396905233005292755469237823514115075583131898171666528734690246540534605574552909609664513464134546700171255746102154199767672052678519246875154155874066366635311259653960454472721813560484220623007696326282464932892859951327042591782781531558983972982592235473933843424940233571760345451558903155716409179099064547170483853171988562483067533532601511239329909004746262580770313821029513450343376625671144867667768227373906263707067791612048973095303809613664210202256752631725883402689703642575819409261299527622357640540092688775934262902203266729023535443114826664828493481767891041520782580747362723381262954092063566930844804409861230051142355846561521977064009160430645146522054632063498793190818210575194628005798311590095653977719905169894160318510971527636109814245190808918645274188086600998743820438107263372426101334523564383320488644104431901903587276860518025060511056305694545608481355639160155229212733787120148579166393264062260585279715668089857242458922532307295711705760155533115957495652010765346769701911098364753506735689446766983304340969009388762752904898874943059158633531550321878922410855583032319214863029050085575838092440338421651302461649557900815894979561189785221600772826311641267727712699649488621973794816327536692122609224034160547527288411082818570093634213620515203989365943110451704168320666201458455708237048136179649909044063452763702159394351927106808914035320674832988891832990916123753114047731546978575286339588101489942812424807634855889445131756761659117028672933616712562847664924688821349493527468712424561323667799731774152230944562861273454599901859760605848178483548407596790414510154040934960922647827182486566492683134276714331006867798022958193892142060178832025550188069506066256517190671416449087592802545270651433330736847622024107980436107722836886108171867457015217890211237305656141185583250470420258474361978531990353750603240196692615095292251887802989243202451365778287889523383524202220514820606363668516947498458840964879174700322708406232008727848459185548407869190592641199860569848500764275153584047981178162081937334800168928057516049343775680208855236264064678974846967073609677739549861848904266340550607149603064166943976940940786014551378876137197320419336593992331052984406252632341611090529659530917979255496807228406624539578871180380394030826651734332641590356143961795120251697102226533021554964668379150271922451041487751721350715664310064124489380495656640634961675917958611444691352534582802332834443411610730968986226557682168132118147600620102968462385626444328594823445416717961099119915719921013640065333524266097613944401974210329206915823246147738516667053585864877247305866414428323125948233468751465096143146368878801602225233071562856464737885543818652241492260317445181708687126475949742624000141134088729949102116858856829849142562507118329083059206331281932514325867707407844136050886238380546749518952608265825324791121379595036787169118352498856220035377247220191802812308027300751960901729832500279380327155699565547676009302089827817895180805733556859620187158750670870059114118897569665194775227683006218978050861399691192849672227427638206946255542682695873887461435342300199751650280231681438413755296725409618952487463273336362599930463933845118476561731404752191980892045629561209230692149826616933035438642374651404888330235590012728139436235061633003253464314836286627984430423981192811860452178745228102177002079157828737620985502314436192394764506400543966323751674628565634961831218662979392113275575327718936736652916077590001354063427796265092540284776080403700077621275088378015806596504918903104223428564936592766500647498225068615326438770850405772071257675584765479084854628238253815628888982874961898066305774433775448409787156203613383307148858606392339035286682413712195671116412486443123795010798563209188847414039557811837785714804655103929894866965216810820373561946267231466229587971280342038589900675487393992626868462706995948016180350892438285749715542557943598085927884026834311218333817002858988381369036966787455390912185246745741971088111719295712245635012484149916694998607221671035243545604476488976143274023393992587682056197308362467849981573317441578505747200731519110423678040970195324924842958126731087067713345025614333625688179550909713832142957309630102466388085295312843197836054989898852296384055981636245698196148343411492218164501081909411715949103641208140140617294869929160532706317981369260376565980367440924309301962371267869164578606397791936282724391383867900107079882469361090842283309855432458035538745467967611307402470307564306152324857235097772938227642726700787729640262752595154076733035469137738819285238428956714610242385397698691320603440756862687215509420113138830145264329465925402852121917001488495714652954327313887001895295022912021318131865773497180521112798972931610306302038710095292008109111530160886371535985412990168398115566172926173089364886999800370666112988882451493385847714734978380035321520783403146204749219635891414289558601954313751336657649850518543116282529217816128349181926529997374768802331166186376757206752972055220448083042212103339399846829329632535310564226189540673870096280154443486112156227067039757557009524214422042377283649957621079681868975043596093145674450351087613757929088315708178358225613387639861072108305965136710284138701376318338231035370034390459157088954330685448430562735555095368855063616326621386305900125043490886327369214524092772419515151079494239169871962864460650498864113283945381043708694554474046002903731131033423658972357641744327120924577946008372267351452712786532353767728279832985103288831030139630563165989455013579280193995711063308583016569696312639670957540665647392671617438359857246743724273900978144530025788227711141569147230374739316143806526473732321156208756583028407530296013480200186872550859517151975547851370090135196770278441713656117498598491511340131546942822869237462042229754143437775707629971248945547395375194466145901521395821934425098073480618824779615516616220107251716356798686332042645562179264907628227951241049244598484906507986200595945349320466894032446638794811515879456349425303616064250426038702502220657865871126345704566349453376703466227001909620516344906644621475356585253726117735727798362658958224770070157933303687854768829880894386177637944302374079254309707134902760942646110266936821428304705931327936991343929372066518404565212790933855316051390993268517190699806927661359994091749590604578034112620461228902952777299568613097584316037069066528810532425771802988290796148803394578305042865665462973818266554337717781142403210543888342939076303665286074243662794927811176462946058646692265813190603886857387330387555318774819440854205279674918487328342769626390936508605828536413642515863888394551663826170974160638749321002162485650809128883439187510847386355254759001592275527057946496462345446595256625102786634965253190004812089821979123340460679036738676857081101228739487248305824540628881336828030802018668392831514445323978736370926859782524804218008819898471657763566277993241135396013746440844498580374900887942468054434199192858458597815814771754341116349660825930634434375866947158141667626754776769204813301846526849120263774457777611304659145869838082040428015017856062866604824779125420019315774012154089447190185038162220257041618340945157440158942123095932627357490447886909501565272895147135828394994553051953394659902263556835830253290687489870336784115653766975934830772401544175461993589326374726264653903963394551562296905802825325254325360416293650609966966138839579667956654454272183180015191707323792467578474167136760858043542414141802068143675765721670886901285194296087173994843843657433355523796351876111654335250937621874957672115656425679412997084445642814589051760055880609366635243763966832537666827660755279330823385923584437394519823574707241450644760737905190525454617312414411151168470671748213900116907350376189453911803085270466450384037741290106093978006882085276796441217960824642441098721079857270798216653255092551363976759369203447566544318607782659590246695271465082356568821097200556248647726187123968212574196702340361175594359430411468633282090195092071908107884939807956371339605744942314174641457066384536135964827345879291930998577158054355156450000259048150485810805988841892838272284492499883652877298491323905156191079685115224751098258939455720941142645979313489989288370623491722541995751245023361324855490806103924897889076001001166237406944953505673174593081470135142344568759954225894679276610670610438512239811153595986291707531648625949686645877330097527949857154424595569397210065320453884829770017781834529214805224317653083369345073774843098629106675970754613854383305186372270994189704094168284244004676121198415770663961094645584247937929224929347786384487930930069656233420681844910379827779375792461811300647021951502694680807978749972613823940601193502606934974105635289565483547319587120152635182706680061261895895569173798507032956635723074793589471223559110653456990945897607660874628985385343617375617714743301746907109577654526648695471987501816025275484151723897230799508041645859946257777437809018747582791901809935283545726347556905873407295347711341897511506529684384866854864426456963190621607762199115295075126405224456582274964225372280735525444988769887007661645050011026973333934274460498067385514611568204111544619339366470687971629208651048274989603219637378931421387807465559093248180466333307727049531774884371456699357205977081568063895083965306349631936762349156096662620363105366602516946361655433913384345691262812553586051901501697274193169447533055595751097301921102749145630476807827065298775254311250354850025978512696408589805473070528015787001078413532803095833465726072778149274852228590512221440864391391062287218955457658138276417671085004582522536047547652748216481825339384886822667849254813443857689384348222126020143743266925385092706247484615647267335596549125420372631692435028389876032914806347026525937384061276807415761599935289970682076721002614545851172393148052730047853386481463030309004242950300116068032435133875997718697402314238848695620527091365081748169292908207683126497954940450631748971253307535552816387415938791783714355079639519793149336500531718135277745558860477660370266717593153407814372513852578706274188237938716948223742729128975634279781356554716599779010987589902762482452269105589279615737214294738019038045566937175988209079032089241145551648684069141942092031398763599358390572819532967508356616112581589085500653705700371570189553175475311830486644460578465386794673906563629917984340909725578612472962803012635177512195488999704498222922356990614296597321812262844947030737401895359656241964827804666991769301698832491418804580280439998137941131210022767476301318747496170194962916756480755092220718684556138345526840610837965586049009756570352910466006896985827112474616727204295864746863314450574515549705262063858002901046390216730676771210026588255295465246399314422805231824126959250574928157640543025869859395344778841848229946367295822767844242975241324587086735179080158103349311822637677065153615597837519365642639838870323885936824930824090502960652386349435310098430591585359355966753957808460188999135650626129345287091460125735427788263978486019321564638200699113831443808093240218954945474197101724776968810715864541241302118360047984420523268613600200904098527526269812575579192132073308223952234657723770990309286039346339092182120958251251850075205955462797143314424096173082086412084353145215782319759495795373964811080911353899225071201526150269840499565268409013281245783340942451117245282871342192139953308234844865463471683453920495506107747108888414681713401826515844043854920151660684978633733154028717922233703206021746758720286143328450892786326782651360603546524045554449862880961379668849967501282564220657036611946152080014310622783354689853939875598042769419084812496719629280430910358362603832116585596657687139304348733466724797962130788961913257538344455286671204471688219299868678017371510151441740329104665276047874108371389787337047146930110961088594740931654144747795178875122674132650674017581905021223043953191935805348485196889252895189281347235483848472978393870909477475223300417485330077911374042358436704138853375987034841965069721651409269590493882035950167476088698141664739959976909916531926705390550314093060149720994932930587451094012191841535846547894430135211888484196855329621381765438009094610500821534883780336057954670029995198900608669480078914673513916896358577686739983938787711147321245451832506751513645755269265041422989096820347305923026290217540087400060840610663407367567768062346577979159298898859048415248050624005727779236715066189071816727373765406092232091268100823370712745112998452288935564285465610713803606157778420291453685859929928853837091862870529225480181111340555395653716978753446876081500187634764111623738296859788321388035383492997560532405206683194598669918427079223309210780380776349967063465979900461083572604696455508967317269711703326143120010180141400239187704595427803117314882726749785156835522364147511514329253854576969414238245032205208610358095151182289212822660249603717357681161136372468744999726102581933101616868172300339218172803011563071411254538748667182147843202299414093393561648936365018080421115146207936672519197136725824466444436376597810839750934667168863079408601249254789270370664061874203490686576735046057668016202897462306786158742396741863689876908645432250109054897443420985591790691123724300194608278123282532550850796447588447067237439921216038035100687357936091545299938516390068083889436587600321850026682702451972114347828120533238110976741051915068658071846530721989000836499845889124657634423961700349805499129958454830221002618703194338866885136599407671121827798001939993145570775845569386892657591301242019051311999225697474864619412526027891085522366708345869739413151041221169106465050432387205692177959984539504993179404242730998421565040899334722162507725145961897484497344702078336285360987091022507825204471951446973074970651767241386140423330910425714110108080416905842864411422661512885089638310625076768598156662934692875253950087546711941763216435437799952472655329626558267282604081984435159547031852039348898433560064643705665703583293494275836072970268377731672602516313196596982524683760075481641089878735741033155947372537713816392953540521148256912850303957921612407098945307555494811672040098402213370084876681440305700222498811383347221011329480137796378995829143193661167135003400724745065755447665073807472740425362041499317854624030608978367198088178809798953752955162471795065844072651843614518683017923868661554609351544710119984414927149287650377917475426539320050331548983747893882094069881031803053655305946464305063714047675918398977376181157277106141262896186758559738221885389014163447191924606517307519783802445660561199852542610122044902809735909688352918196901312740900549279481416154672313112829859445537409907602905488795594636355452899502951046572484144519734617019727516287860393482596327366190117534980892201798198074264279753949304363192304772890398354835588640415400633675696287007229948640760580674289774803070973052344826637703041101009789463849315811941523142599379013885736257936877961626696831635126592771562119868340616564720944289548136670521484897476296972349986884591229377734701348477270507597626191038776838356868816657858397224683185111808472855771169369179046061998047416944414899384755140518751489087154534073486808156605631156280155919320423314255750287685454251151291950316464034588853938989530356791155004676880787387896816140985888475773242719880488195034606700690431389910799596525446928583789131011325075626233037198458149558575530501909362072856333502595947705591454859435492710679874724080102455729173644192038030843492874487811788647333469053266759934418268158674642447701777091736085724505420783078106535031676425770564003782725908149854895713866763633517460002139989496550837060775126957991503550882959914953234106513469961122882178500440327470570669565730220947066212512376790901647586384509010294555985041345510617591779132062675164481280100679294646250278443174304644399419891714594088284590195180171655040059075486302416247423490965302438471844358277086104333443096705274694120595810728904347363582682026048251604684324396060679629860916404161627062264145520689947741790882763984022136260652840395802472294486671768452850590410006708222442257903593793094413936534909940039072019304548790729565833729296613947601521530242241830888356134500437352235921131908561195535744391338800747206208391351246412786475234027176023581280598679655476991696654321985966252927971117703658392114494291151201757517020731070671262606787271941266401682208442549226437181124572601674605065975575985715827182549175992981258972215138841494375315491582535382458252198697588739534262652926757518000005048190285874740766690601621097022783205036841924579805395646685661751844675104932345268096487031525082191034061762800743674225189166138319154754093656399113972644024162710661575784369466835458609349969582175875109479732143725670639680282842078517234134487192560167456054041089814601525190038161482817290883967643849269750839447200923254581542500852979406368468424522029377284504554369352575327209215988335444038466933799359787371553760395254250022077653754203094169831420233524747786064908776006687605383836166334941749934564751843570580114484171519763168164485115394781321310119684972500533775028919485386408438174567762307414332560791348172551053583694960565552890495582744517218078466109780085827802905228652549511329587876793795198133381393732304692769327634056508982634890964226998712504598777725422853011771247675839023699244340467061421748652796339451155374674826554909927606539070933822301123627281157866119525935881324563832469109491443307061295253513558369510763132278527887294319837670217495183793751426780955864848208285632329729656404983569909530863052193209207370124123948256720508533530491495355285778749032503718720081407736352096527769517662690588896465134604449741097088568290807880120682740311228757438999557822934064723302329709958398425963014654010516124377727241692426232624505051736751170989272311074299083750736258305629976764034831592251603186204025616080039103610161095481158837594397663639715338607700382004923056490748771859690549890293429571171276816461301445237275458052722239872335701488829642082522931138371748703544969025779036347163477350645162808772588255825167804921698431431774475698200233905036840542650471176053058944197515918364960765150797783628601665970888689810282289587138786538560622958845455385966513647556640424250700966917740878885209417028409598647158926453864199098991405258866779551719670297022444752256055882553885641308239674919609177261594257695446188685270037580939353353851297367812669277136793465160586214008355649610713432684171659670913966498031520385866150729762780753947599966520862690072738139668883865744058233146258266407266051902779641093027817195595960677614195414954911430999213408925981393886102328778202017519229546337525647073847983401144500794947306463550193503384193022122863420615040689678965420204713278143692166086947533626456081254824494134576184150469178586981325921990742230513360090146164545828195376586270455173046055370746423679771302530514861083430412171998296237827063403143018032013987328283232957726795158682176542923026525592698261360725037388537760572512229843211611188428838450448707419149006203180060077920883618155969922492074323057475365990720315651928186782817088767125913492450725232625499239688058927319232513269770791010508726412595882751919607573732625664221958929661382934405886019758053373851884596498679484440147328060006510383301838700358453457419697366336060406814399306052251852913375327828783426302294763067719356317543838595135832257266984403486955596250403453642317940571997384911532169739758495043928250421540557448395516930765624589544083031801551205378678985761791207449875722203007407944246173795318691177110614242749206946192444118113590454190816323727051285891585767035538681859591202712313132619162274138432840878663043111338217910931174557702523979753401971396777264763188744358543411969302259888950320734474247791807498148713360405966804518965072440830377134751782523182509195176622638244496949688971003387604519909382772532446723706720634168727065921191524266669700905742308147472196833041953340181256053762492221175863520260987271932551695556482421987037158159058677459617513685131563644413795783100033399154699531610959869044629233083688921758034423159953858084951976554827619475963732385740310088661326648691860041017455069126410094069483377045673580036577153396107764412715717675221311376289245927566895103155682178124021817584353015132285978792521678288745491090135165044147188972026272035515320831750265234542939112797040744320800486249417713946773866924577161396399704297182252809139455329684558406326257299703491178409067902855945037031206880110531879929532936895212693498076527205527293699800962475750947893835103433570458977239667040227447398542048227658909391674734599035822680651210599670766591949890257739609894006092159492902547694185922145583809485838935077204002833473128214700552508032244254491616927811897006328692924042041566310428557255071454631990572050349802857215552998666220493938820614127669622642849801136152668706032427642696762741621881871259454104232853866884630811510092041310276024335607287695509088633094975322300842987172650346589185566084305971990010776381382277781029575047858968043806392068441124635679401135584270770992994870962566680057095185453673692554623812352851975519571184205791916547335374040684095195043901080835560567354659778358881359112116641625388067378907154892582919342688789943034033828345021143735421800796078382266619960695421339419199216773406502418822211146069133939828307976040643452464566943242300523485200840366869421764142442000926982420216826325321925850539744819658334875856918647328878565893881239965446577204190393282350843844929847162224777024435862787128531846085207066355600195015871306230422078725077489332282755040213119960513254923953713716274913252888125618712220843033251470384254726714876781357875365481047923443294372666200041971734250595736695274760160121138179107662468401773624863117929871765629388202232507400884857166160752044884460266358626976330983263193351696974182214625430172517994236448031889627292229667485408075041303396983057407069884091829063481883063628511935401166773702546250928923289098137929756337849917324447425352063893514259823236398896447592009080871509757786181826506626921728554719023889044665364015706290189144660756380475093243150089424628285852952841329115728073391383252775259754823826434471452996210683380456888856384371679127090823811910118568926221881239401081440998920196283996275020800787035956916842361311764046811993726375901612757444619464956576903232212704157937754321143743653026793947793108805065029831682567912760458034770733603327667972335740564000725798772239069338425843354462490244856308321719445844754927155412702739950660393575964400061030787126796501471680186265298708164263990358638113732230936141325282158507075057174546885073615422019724150949993164798340663490300149241094558780370102871348087934004669284630579429660812645690939626292920190757516718410545719710123618307598805736572736892467299597189536510904307408088679861191859620265971278949541916787007834419841881000864540349399756203270060798033261162012850493595939705096756152255587762546539464697457855033688500699550300685215969691127140128737838609286250736055307492155899721765680696267664087950915274287891339793166536156476852874038707931091598873251700432538842896301718022750270581584217032001915080711967363637420233217239825275454623195148131994615334235316312649830907530767134314239293404361976770299063300423016518916316729776807995722668874608504837637166912636239515649087765455930271821667541522897685053553071170684649747691130190049111333507803201875353774021188047477139234919995287836698840561463979286967961551462566396431612660876866633350891955557229169562524789707191384962403490734670018835555041203349902463045947493285266389757895950967021419322893912084154955892012321281042112074312579540730245158215627515088457326706528987206830951638738263266843572927713241103455607319791097585201996441549300145077010499380663699168278689742042607425456845122808302213041480735659662328272059257841990083197462772303612474048727644451122485037049944965633609543217263694571073642859179580065542336289011616360413208427465209893277439653129214117323147439153190089191119606500995768722061699163967306868957194626024259885890029229578002023291571194508301429263786436589604860184381590042946793386102169939783920818517388245133596940812480433210949425689010531942252622517904889862660382287591297761626430442862042498459975864363276506976235655165480136090575132474792849750725586367186184713288417670713069825304804270442341608946984010077266975131926942049238549125503789458278581043079781768417274183722810700810821080368557906241465495903891307313346732993796464400871082180414838732918078693203215489456614182835311582623652208392570853451925308988508174947570801082572522177964569790576295569888136888935757139320648205142082769776724681075735297358934400419191965212203675921839877503968535123665315320712749872914958596779672974468957155312313124908561865476425238148728140665817306949518759276187643783061569994382904763731828190797370886668392235733804133665834793436539055580966390255607528746078957248829313234523315129747025626686765025815961876513588542765159796743578805910471845060216444691942920357647919608278340765745121705390919828320823638737208422243636513649574294044861856007792025348617358946526065205569974887687320736422709254912430236516758448938249218778701456749586572235006824490310961892075008828093836658277503541345489321076037801732246053630281453176037364773874941627272105886149508502643316849440091312642704649169642507073736699546257665617960390349414153883637576264352465774226991996427713140297899704099606864940404966322517225354452385652265721563640390470922637659468903784753760817315984484210250153371525963716595712960642013416938069039796730780875974819562027955890556744458434960662494884116695435290991006341747241181753287029545383795700668989211429421984117882796859803166791699038413811335595063284961454150173864466838744996032164784827334363920680561045343383067110744545092690868236300892958271494504132054655082617864042836813796575494540077853564035160917299460330736764074081313293410091541981485145152875227687626263860262013359472882770631158077922535909415393981304991818736943397135782908259170450760508962352399888412680462303664109269588796052109512300707469658330115969215779013335565546812104000845120598151704116491005340123077696415559352472579545761676624635207203620159081560860382893034497830308132426527521683789662383565277255984664038270377352397025844968533250213201744778154371042029772497448179502282238493547624256208899411436412675819623146199602017424112443281457823862893113516278870546700875341380764255373288704973614920944006481242253923534932006208362148656247487307969615113426911252312264628133535041576727308524229349799219084912944831513831005443912474347018924058854884588368049574978170523459093833580305146696550740160497286403416079025497483178169192932920692018434397463511240551898450233254600886481278882793527683873026750223398156468816787813745973798577315087208598941214449841135468922871402818470398438346070036892888504529860084045373798651372510275018601205744887306796359147142184001001562075183322515410238270727096917493210775087731062604621301618265736837177984124289951717063195321518127326626800764708553046464729293746666542749947628892059893445950651989493431554025555868696427147723914787899818894312446122715697065956461542907825054792193961561150753653579007261336566971908909729468211341521420015784924643311243556306653695984881777054011302366797180041856962356614740637415468984967303014074018896076576707743614059940851588162508300258985760597668527852479586418008175106619862574167623202635854750594546947645820626868402734756887078749262132928864067543001300671006916565718915121846001477836151555863471993992658615112754952306189764417273695549385286940887941501243331507467836127731913006747803741360631711881764578691394497474714822711924340671285646466349691553736917820586339286719771979477128644990405167317940850014638763412091086783899785696577113549488277478372382831629378965807457232496669596206453144903075987026325316643799960651945356117871241031990726485549878184154849488531685088556997621688576356694598981728187146339060365065803137911198174201173054140864574825738137583014114397372603976701177350503830699556958571586821424687987941158824832838603514200509340449502007282575966440861835758481815540393279257654512972513062523702885438331127004918874186170218551536551667989733422507021666370147138979568998359211915575936806817154198522567172726033588200266001084121030910717411877578715653532169252518923373820931303986051206504650722152197375743324322432286763549239981823885381145826688408800483926725502577521773734395193585566045583439287299070735205103974698067302963169498854527419291507339967601751871315535494230552722358163631562327907060257145144358811130154126681580256644273969208013722779642919090318717877343846405510761282338228312521196542126183595714972495301496721216566174358864473700167655751991396532988197824983277984347425993509126131965124088442109888760276260335061856247895861142700311159857678310771005899503319579020446466616645282701444862801556711040548869475542268887535644889983773954949348832687784938751547682015621380663625047785593940427284113257984233674155527190281657105470908972222766816826596885208428668206126832995652489577208319865227449475622034164977676696108795292448584856012681327442883954112554883421638993127327222363961442753458459180313625853931503525942130316080246495061918994365278692402845331625627087796426992456126393461103873097859940982263353847444374446756646685159780814454395415996920555959232418023918750529799576157868592901274644139462229210595249208716794002740011971199155079433017697279427157841303941586650043223500553443367674943834909248523554771433770008326187792643684596712860931852352561359547091145965212453259851204782813976383734062682957428542611174750476978782649328767651849363702283652855132172482044592486586619037913013623908564772470619154671988750372273475115551432302709578308382605663629568081866866775160652890916333218030285836176625924183593856961527687419684490244809986898296725166440912420782086916914017283202167126633463590334821694743579053783144122122990985941207215697400640279999913499846601648099122163690180706927304807358878052881195974706073834418902173135629236417871597800892399227788683019268420761606657007978403436687240862697536986666123476582477792235148075408957907909387699104503337103317416655338260693636966785633793281167839725570805684077640754133264801529702005836514573159508248331351195047546425550205823949337284624572249965902779534503917317360835739705394672805284504693601110429419930749769579634212186543206455750773566948668303380680492329550954049268614354643023846230769934076149183065600039423574945373754189423689150925721678011922457731188979847780339591171610251090507556631242520382937793103623025346166340734156899201984049204385491910900245871067787057387881444239617099102773780161586372602095867670976045885561279292455437367162138158626331344219493510520133901005941074173429265926672148315591015369276283135107374123024072871193648971960094902399704052668804459472970873926972490979143132194300928938342429526407138196797154548531956575784182282844335437717498365541760035032783056070021536935407324293311185677162298328657225220752316038866336434596836990180471824541730523444370441782294527084189487768447710578089207536672788049014476679837212408283594881024797651232932099877388468793835296416102683387057066031316729324166446939858915575832058857883217182920604791160161573484439089577746278876825130301551722714388762381932654141485642709019155775460734774079771401229396344532840811009863603478946325161358831867868212908380507929973218068373244713554507637453720233276231436248661116103821112724812900236661627369258558230523543851517360169585204102678139395411496377166752926275131986426266317905977712150838232738713308712627334322959337688832250647911637622765991902576183251998792143937230806923476070312854423217274238173264961340970003435222089550897478290318275975002339225932762136928324367651715526162198116751120705426304716480114592357988825387357085406260441861584584075646458552635921228231455049621525238264099900526099336179735289671389599342256016306199180161002842628035904347493587879936928050554296278584546886199930198404956296693408261852661084921141927062915204238141262600127765887464110135802529193486007828535573425178091725186475952202444562381020566810319888220611572545492574332911463837220286969075459447166847100703808597461685467185637580378850055693798746312685109061161773780128592338585892962473983727388094123340939094442797189856791241402712464661871834111249499618482496011332299685563043798759716668806206589669998181550438884535146097983730666345191737434355350024778326397059074603102673203090677205383067594246958263818772085360617738085178486584757496253783562407995230548510547825511433787460246623342124807427471384146205265813319867658258045742639340126860456488908091091919654953561334436124243502737066076606764877784027833814613671792059764888415401206365887602614884529559375267563063794298846016550220885961884328552110837785925852026713809834540356987256998009256375634292578760210547792398059868319212414084173426018444637234308806889786695893153987507430044230644440914728872649897534421762960171711075458443337964643076577852163063593371732545418494875770947207337952843550336484024925281812028211749077105938325751451499100230428638319670682754221170740305529639003161076922402607180549734839743210786877307391457230895267821278411845495243302259441766437962507395960241366682740728979637964531906530139558312527506300458828513603041541417323756114098224709834420838218938334218369757908899149263126171179457210418414856639308170917806484494609396738825566093656558039388138785123223946735942679506597692721647795786136876508580865559983355592697312576130424511824381960946551138039819089242194840328546463807618194934593811635256434147409282555556046867624487514249698286586297112901233673365649942076398130753397606938301089850434544158985668970102284206107775302046167209064694562510627804435151213689517904802924669251228673500313905293663980572797977344607169991301053972334388823312119452405981630763959062864167975212501522957048439202290083157886090308797696599919327876249746764650039029157296869977042590163596793493068345322881646184926365128900088552155027764116090104056360553895240246304662001653488598316652910252953504616640653340763569285864873277482486840058886839106992074095207748886294763028344387694334061255302252999892808900067892493832346485384729935702754987434678976588411283463902819765060828795977120401490312003185541333752990848239208589577866399159915088981577131718983049912308778994059827411709065391001894471764244985346703730132323568652235133809713190717147247854842016315848482002375830642582388015341262810053719005114195816307743575552068676704137128820712359434041862556690305940242574319883662362731378164283433239176175890761000824561168296510071621462095371445880259074839494465533513202196965279030476665591132092726420637275596991510732475671951065567194571924285293239385835945527199085099206896877801362803965254513776442528035709266489166758529502709605916887959458893127128027611368839319045818363560695910942783382951434178170996919318267104426015747479862856349647724471891767714862487473079442868524392589571993396241597123600508360310321263933476399664567409233193728576618977856924521989378871136968638550473605804726927384734245921728136126685183985321303681712031007425914042112465442046796230240552686844230290200735642652709437779370556639429502745086220502138816570278293817178233096920648603473391713750854612306186927275367857901892126063151456118873205222606502990932714283187922385503407058563690008830279788135434787239349718566644586888821787990011997679780564625797229135946077406877862364047635843087195385290290582333050408855420844626846040318945825855469191624521174057509221228183043545715498710407779597532976771785538373337474922696490998384369232307793230704867428046761475299184161531568402457036058161975347673975163968606237473702501458164202792601669248680311918267246528041222384851329086219825986374884670229120339302405818430582994427412392942538540587120341039622059961803574359074878028995911163604205042139809640845763115527131807711941550410343216899035283836476559054781251100836998555337213220025928358156472874742456166285179164143431529123914804213372728642426391749555268199767722454327917049252117250807285174091170281490707444142092204407051235873361891976868545619950480326785313304449018904178320392895055750446197990053616679717875978759938618092225196047268918230359567982196827167984961008387268198922531296730731852810028144201866003141259234472875548432710051310433954950290093166942288932256310053369405620994639919755807210729462128902583633186405458221949150529600910590020156074551029889436704595264003875874007735241403298845559776908276830432477970961225558826569913947442459299917985218450044394087888170530078787245419405216088126804296396058898299163835306684553760360071008087802621749144314099780153997232215535420440772673790637514133568092061587158980699005821803621475181644547124037552673743333382140730138612897641856545918382616098504878367743271207542996481862190921752797992663217701156232139820041549407853892963667948244018062768603147826299685609588864887417100641261150104066590078763760249401769310983232172720224802040273442936827065413233115028687051058376925261855966575727117705226725765742022392166113057839255471763801955843676194398096688459463898452764582150014451532368067624807198128474200904033585629708260465447840349441794702529004381233077437298291711227789284765505354477771045564106939366255100482660875020849943378715659056783052897575555512907056277881556518724345744446361386825934634504922369806352394931948489501150603039024804837437523356195858434063005905184537167213560636691055817884478646337844748727205333076579118136876605360775397821413941108581024382191975246452370927421453997221215148547056965738388927018294844410438784229009740981619490349336770870050823611168359855684165541614822799950127020026544713274261643467849225070708626285731134457432130020078605100934536330846410831714903226137275358464669578474254698230967113162291984497381778032203617579464578963542545183118542932091780866081211805913294061217318485285365528509631485885759836343127758917260005482745774747627993206644730053384858207899789055023585185094968804516076498782328205075367279573784240396155628434533255867841073359932852566112044461948954934331863315202026134284884060509039110996525451011305658746956378318175882242779606500081053410447894474622729645188359717130269517879995181901637662161759470387590490131332929823895846134559806685021773230260535274602780471008432824908888852891613030174303852626661566689478656846612979681597134997113386677171426918312920184569676847679514603688042958834179419972768922208810411311358700601428235741233204858037223037700162614777687770102026487968520411704388518239967008533751686639288285464633381111751858452007291070341892009150402602055712816700827915676821170610705227001022079243678090898612381206990787913140960844533088004171001481011513209776803292090558406431977998501028740680495243255565457988923189529861422511760188319986813229659205904660464184101298739920425528518778151731411349687651488016751389216219011557788302843395217660821148454349882222838505372915846937023571250745886651456603370350691665845275506289755922298405344507438906387246307529488771518098214580318652396440086578292740066249106344525466130043778640164310529895583384534197807379038048350715581568335215268652934716617450536172484292562163337788804703455381236921084141896181201828273594359076815850181022778775231636111425446856872102443032757497145924134912813361969177725239220790760716225503200460341507656842154104689763418888179082184872893212961345804554345130955444310622350336014874000145636234943592267065505320690587001099779400223553069531734157597334431967843337766582141689828382210989441582087470294054679258823673917551085585252724823612968454937174167171947043174162259837944438251033182528991739063475715439146750697966645540981377108681223280099325253725727622332135827678080665083490008723937543315266817060235346655162452002821803277358940972418261531864163070694472148236549765228568089703950837833608951377279829111581272893638201450881468980132861273841339853995428181692497144123106157408012666038082665999292482840986805513324645177492004397355161983509066728493906879947941891772788595225513294359283810032166244750567744955132291342897919579602215995230417918588150076284785271058599533613472198890408313383266659399028121000937769592534710736733212182152940009584567007733560239073460604947839008467915549971465786983545418311500267771418387307312121492351997498346452085609661795973877096434331957340062303077176714127145006550482414238255766952446743306600062236260587567774442932635771318003535714859995460822239451489203892813034811492991127933442560603505317682100054479758162450431819402117702517887114022939739371751401986273227327522667059755045687152374747573334152571899647004655296230476734346355662659183440302684195229978039275251451340981421442168948679483641881355817718234845097123134454687947898760068465156547817535791551085591369721650487822583480722104409692037021240341972527960695700942876134332315422169975944239688743644908494427116857022054863064017291192111839251929948543653551981894345040654208438323166328391641336692080508787415381930122729960019531338213970851231307671878938817652412477678067413616485674404194209797018822529055939096796797954019263762384588618322101348582491663921206590693939450286486234361747555681779616158108420345963402240829501961003069227758566229934825977864027441074406503100000720685847930125689275456339972960493668769541587166963356748475978781916640791281127765476352576241231337974102100023219574192555797576482759602494478307329785518098151815404949660804175166678903291416468238460448021616809067030598091268848338840652037560554190204777880367342790629116545253369523822438207042454750206221748656012467843596665424875476855356125809209335021085502274513168147564445949824124297989503940404865750930231333584861000946066952480677793806749689839338328109829999608497347799446128003274364750305227452986098097722732621105215467491980537124189121866553817247958854693117650033573158403733310468781009142949898454194675656457084310666941330697646014104061394637245436334525197441276204254852840351432263428680271799884182487056559413972993524750878768416880754619789332210750015779864092159533105337182431060169307684583916017801598450955557464956402605438936094753966433711925329260196040868633211260393760288700657879637201841812957163023626776127393632758872035133778583021119432860167616693268488997549753948314819246560972708160372947962870449137639380523261321284472107088539450019542153997429313608372435781090732793852112889537825279409060227207605841351761676968808102393723786217930118870911425911678727798887513980046947449882236523361522905931844057784358844250672178417203466255589903976703393325337351053520377024332888412574008604171135854579897631209136565968161506561486209713030946723777436700966747405781515866535728868877911539143137093308755045699159826738766952707763037827993190374953423514465790180434931298038212178890846651757435554868352300821611882975574933647185901730580559658577266985830556881436893876881771945673757785586532794564586782293400869851465961672631740703754491023723902893086606064666695419201152309926382706431109134391106953611439905986369613973704051372026256364823207489970295053716760722264707284722631562966841281820652707472700826470515090887578768947406744360770230192074562284585114565446913284318628388312928632562567079957211796509905937953503226029264013896010768044678921539300294376966446134204336435728456415787005034352948711939724187399394377688664524107526874053738263460102701268355269840819256631146131584833782565346453443694156071303457884455108830516657050916338964579029387649582475334463804936099209396014670543151729229322024536748380843654422398031692551935823801760786316782696167425288861830746213796105005288487941060441185454603116147690397383614602642731148503726996998384431019634640901579446811264669651340142003898354954375669237664794949361337159183341265498127092158485688808264184052280852480589388126071378195758789625793956113105110877575710101095496580197067357262773862361088881423360524613663481569885992067096015883757789012084009788900612806479859844009533900195551215381355957350101994943094657477770802086478130035811349240960419567819958896773094056497796497461726710603128188272904357676079109617503540737279558300264312301785761807770005211232947378721323588241279009992908122840247009149449761095954689347860687124377880648957238930991260188354259497003793009509396973128033036333943599747314862240306251584482229566499580637314707429418267174973551243265521093773285808515599890947501253420825775538447480704091838419448066902352781075628569228139824789892134291473229488600074349265292892055982529398988248749267329327542476158673752263506934337629730634105238756576126939345446687562278002342434878926063147315748457300896172955515003196864310821869798431360082841696536683490547402435553968374139703039721240774922471976072146524643378670468489592772999624870904503744646084750999537369030717532220927070796406127461356208185189213913851352607790037459778954286909813525148462878477555560851354601053265138296702390058818933763778718619509697944947237022841279306038501120410071319441058668330669865592504473217378202402966622522707801923386272209885900265313757098747802014307795547902820050993873642979415461879373609416814666681200001409620878675319360890208504504771376397160900364459924722312165932429503562617957398093858009614171825475658086672940779041430686114188146445248291411561242415739786649206045730838465446907011953430695069320561079482747544202869754864921307585407659866169384271621342860650272079168780003846542371002219505326389451144005643122233552774924843325706859839410209413271371271905640815695890576100097098913778467355994454190737820462131769219926362167583140466312484616527295922550649501844351546107013120078532161596746124947022321148511078524231125834054287673066822200854562690854148204917397377515250805638721492153343407931376626628316838810395421931033664428138144032088827637881244161550000569510090776874253256398778994779751074682147394963852502771687031910967959061904389420948006576977175927545364531736281631397376463950508785377244677516149581986931081878355527901620181196032718116312844854950137016948310320707820551386015935734968288349824546308924464424620866103864368043496984107195605458689276714276513321338502658452347061919953445863576587665277643410298322497627149727107568678816637049795404152349368911553278565260127563894645705580194921834062212703022024654062259981936507959974288539863848663767505100626105591365373254795243932388798683488296257866220237311341019101330512482174153345402766975974761954993868235611448950330742084097335607991443748458019670040672771673708318272284678111095423279313331409752133952817716815716638504528207862355281090365212837805633144590109826585592218627817025162100654212168351184958767147479059058319787140463283149036575649368043030845718473769826190166924041826724137845111225987596907219637674871708756818725871099517620896668840609972709363750471216151789075668082741522907758588997721582356964289163136849163828444003192069063087330789278027546433210854125146155326228562632152991018246808550328588358855563527569210530701034028705454427283961928048415191577501990986037045411384913628929160523950261365225569904769465515343795279227609958550576065411137367902217921269323375800622407760110762499056008235347949875378622156211968425547400562749725004169745454685754555040532893642347933643738789634602162265839285618709195140792147488779502955883182187687010786144110867894714785600999478004255279052120422025732704172393908390185791163457033461487354041998763803995292760546185769923955744391051644405845520129000326572150142025633359792520440296199983241788957297320056004398092617831170560455823821398317499837560975784134286290889828633829801940541290605806784086125313184319256426833435690704995621018331785957452751223558980532399505311199531102119626889984087339172112158983861935228401097088883357034924778275726200337135108634985264454115993718070931666097914427580415884914385842270082786526612598727678896950908686998859663756481008499588954941301260472148710653369927383183036245599333726818295793519245198100281752047887451075636494279222446511555207127004574314565654493016130119393867835786949248732414039466218553771257723191543053144310486060905029384782166039560906437218535409492718468367027891177261207278771756042641415829060311727047542800005540219632220033974795584885811101390064948885756109141243912993860480914774961589292598119564917698239455442970864822476552484570881329908129379325803318048906625681476300890411508343667687767462957482618198211395230350719809947398449812623948882110488715347522146312381031679036506425527398474652636496191944499414002668417243912820147790946956208292265399025291574800580616888972487531389416770824715348012962018519671460461440259828585752245787609064003718846977605108578186223918313596294540995594567629016908271544570876923021600901369389500075678176570767118234058872142989173036821140708669455464687916768997817711026817541555405470554887927812637346311449434501021288425601421528210534084326592151581583258074734460253355561919560322585723311492363194704885755197357004935401210444501531946782451002750868223269693631098899051432919628018479490248177953825302109767952308733372166723170613074601682124152129685432201053374933658825895036871422824219535553837876468510131765345119202820531736974305436381944242697667224734051087863333929966443196490608798816229905404779322702811077773468605773217935349300099672623764092599617340611635577744059370029732026557483976912877337470128378818482461603639234751004269760398020352963195766216969158469133420811280952450585735708587959087529285600987382655798721346759973005284262220331678928335852790625303281887534338287982145712164999760921278367402345928974143359747081323542817514156875108269472659400119462853849418696105230228657084369954065469983126918972234265400520857243823398766268592706003482610267669501901703242071518550158179484438599431946068989329454744764858769768180557153787785355425544620944550606344126650729346996890157911523601237118580157924031514428056618917255311611987410166601712381150510244114610236019926178598003044627584028870328591119485824127865040440410673700788789216822893180240460437348954806058958538556513148577990633213981948153576454487660154780741183273646478125191859994764474337731238199963419894310109121198157930162210013301189937472497801601407901662485285787376292579956576914411975462637546479394200147159609454831722569641329777676022343301643296800002228801514195219656093647169693864175042549863386532422399627939500724252484830785459954232487297349817410361510217826295038856616006438561829380591567907312383150691754123175315861165813809049554200417379029929009320369436319992226775641815957062815744452173647860671828485899863194726240058186758984396955056495374170689321986151253217048786449448836624558715577467308911898277508802879141586178855856763465481490748770277383094206478432201616974134198906633473806721427121271211933785091461908055612118282460911160488374409417793231592621752998799195398502780878014761674648396862626743618368904452929531822438083187724852305019539084764587296886808438369300003304011178687828726030214351369596858380341193258747233783542793353417564051652539309712832609321542001743588909842239547669899744965133840761186453207084245925402495804844365008709422266880169212124386279756249200002648145836466504855860276486085702068156246092604014098628098557641059602358010591656804504289189615813886387825828557778165729130748840542562385152332256349179732254026435156696947186618913587854634939264932785240819214168294708885368978292185115712176238666265303730171658334131520074095125638858390222872720210889000875187865302762095305638687219122194965389397419069760875381736295775391567337983689314132820521902759958622666904355265926121249903070707801373598400278085589988728178603303301038032846509682628856154762415437755426022271547036862992557422100632785252662621168818154269959463955750890373674300723693236142074616665034352632366817548121151576735999454281863663288532942977993760953211707653196270032803561376592553211995626519797696185427446824033940432940850612319824136207659453566413317464000385683383600064790590273964388544501748142701665306679031616147880174599594596783379535293285637659669105111486377897951771993968637828247255821045258845838209807462487922958199036887700123383327363108424584719973841664366346164696600051687656513086982293448578754544380178836359562330551884958873165986355435966503101637783260976008546968666877306184355141722383885337821243346504010734285298368294864216977811649349203027338750055695244241202162806258512846803031227886460228868336475153336496491254356676522753275998603861136339174317663012071401420697881423171767976929600676757683817061784121201226773850279577134086944608942470688768041962055736199860315489280961671975791326439256084547924273302944619721083936994128589437777668751171167311657679549198199477066936264330753061017637381749788559855804861210276947548176212094187296423577534686359328992582461002783345026799617083265517802869056517612633524603641450533337839783483718084913901002395390374309236645608058443671896514365303380956846145641741929372030392265533813707452221695636122361411256478622912281870995939260236553210951028417965720346863001814031716448027487283512519744038237873341348290814152992487461535379603049239173608105698350683166370121351065439858856545284528411610658475062084832304669147981316333211295971464715664458538638408230129024575196857105553418425383652183000735921248824831411983221496605859381723061551282602113055604232138667381814799182796698711555114394982639699105578231218438959792861997078987687074807787488139743993687564234045032872081289758779928259916810742820771184193188974766743564579179282488474873268825954589246003071804961054778977489068594989772655226918715035385988190721732433986000056952258281119692392802862566782767560888791515783619988978088698834467403898931613048025493634414519222230434995183063397795936659600734752220563346080122981973303867087909910232610321729582607491020637030182218346912070850603742183008652697986908610644689695891386564403878926213717690264490296420105990538970069994937887945028798811456243567253114769883706811274204857221485874117232516735580512430086097078689333842460467913000040726493131739452143062116876773226154074081485995557121575916907485554684936172173038699233317153441812882153425948277827822061485221413906380142368937910362051449405834539470151396033203630576635880916222487019283863243900159919683867513360331668079297764202562881124401403852484725783474962001839114226927131785764169771426863989826071599276054677563013688614600455573327909548883801555354864200417615557665110557125824458309138912536897746093201235680017452208956068124996810389282774600705876103571485650138404422608733715451067659981508303623335608788014187394468199238393652809344146338034891577465659695793657966458554682548580790982219105184032966360694620024798577680006904228285301433578110241538784657040904301831585373245692440461761681541155892744696334206881721819512381130546558788783446336353848915567546381132283275854525342538517530910003118300064393724847340180295870370697274550140644179892681854578265731049935716760195503803735907092396646133855984809317255122371067928277190369042695530696954144052765295267369976428539579044515252366642913920497749120510541955977306317480537461834150140734103221797376716208670504690244861305134550336623217284779421000633942877868328202029204958281974833518598979511902100521465996246741095275013581426829271625814057282437788255323866847402747060730345573965138115019300993851991687955339838720784234550369114475326103832580711822395379241270123111733372048297877892274549106114479335819198438699981141962649196409863889000070082189022465335484940675391099616283715885503657306459702503635085385582907871168978006703756935194696532472751649855360580056453617570525083967026639275786988982007236442275964431847707449136378111680725858508628933976062057688089750585430776366793742594809493074019931667375342745252066160729327474595935292576289859950923088198194669479929863743723954775042850080372354199136064480721223814545544108837367332395884280496981292314847989579064365759705350474225527095258120724622824527944811629437764361333879354447610598499897888254671656033561375197275023477432838527425651448789635268156866129375032878771546296977217417458433107384268606215924924981482920118812519903830620167122055354914908779144555731316328209667186380939561860131607161925822910948575345640851593508639616380072487841242452371447928834796141009877280598421874548651901869566329159955488942462245041960203814272304142793540182273010602433061892684479593764409017541329889864157759529757701899667861256317094495605110110701397056702057703305215742399713778783467553156291047824430717988737237737674436458871538724909727288587332744791183062972073793984835776586726371445012187421274058817824725773944362516362188743956801305710343461794527896187099955391438779716765532614109870241113908850515557201050207307303845992067815556982310240028504193105925333492405844181905596919015838910344612005772359793271827678352110081825600639337091011867952434045936795833510809237932741613615183405405503424731555701265245533193659667301404858099878375906356570855361072137124898468093118870432694275358001716447066501911883573060440453666730713808083424601924354074778427003162342543276681569048004316559684340007319214521085471991777404784484630540635007945680126904614045204615792425095788291073924999834715065309906769615423949378455515633795685699873255142537642541006221755876475293536048553115385111831615104824609126947908514784543743140942974708502903742457902933765689966378202325660096084601419892153716624367305893688640902280533848089083245828031074118893740975825117257994343154655332134438546221809316772934779329576683578684221531865059190017736121176912760867567870353254139802288178694676801284798799487208396318895240907928938483365149028932832547682827395242704272123126375710042405417802452268268682288153083475346468496129284194228689549427610667333613520031769135393566884264810967871678531399629002591303261496852516271747985782918217206004959922155890873835474938801198162532872693006963148839671225211393656539802842500354651507989941891472772998349667499076009157998565225610582608104099829231008544763197099020228416186708704283852052015592814997364491523222285314937366402377589015893696069992525811532974711142918393274770470783765126255423004022419055001011604013118279078344370623756217570725528070273997451403939600529474424124074586897895602397131929455220360117002141926532255540694375408081784553079520687740596103990353796338900622549442179541661539561394161060232560363395363607074572523840426898374569041754876051791774072401203230919043294648514489167332516325305813678648201469953531630984519928764868988384384533389754750431412587138679977256577774993747549431601825764499766810329533890586373625812932873875974910819254406691419405321013675416702451934407047830445095314989764996715998673534054330008466581008537324508099165220597048330245524057673913634964672545889495194523124912646309593184977133665166120967355074876712609106777968889940082700364412106763028474055303756768091173711495103553394871324063165028445563060661990075768282931918885266986343413518077711175773923105376701773804693450069228835713917422624723880394639938614971920322976202012889664181769615944054166920498707815632082126639371610440767287940042563375216727282682250165343307970879767899130128138871783046851867845302457348353610363175320486138558064926534422777730470155776627843012983887996221028487922776261233613748424481807812698346788218482589784195184911874445301930897766649757447963664274009278635268983878713733623878984823207436024261584579380754746190540157381663307634553219493249454793015196442265812525581961848570494808649188801223970427708576121191679321582553746401305427875090606698594161016032021090683044453008933811215906789484702637494667135779180891206936548918530899424789363975404442090472546032460870568184214358950311560447598867399975693275796765114002080839806565370705305772648617008644244497328123510144477460309047575090081735370799450831817874083013078465140873974545065158011466806712185660449641270610453362143962821452825212352125004910491743251184004610709207883483613101797823714831926064927651183047485008548496304645691242463225042709470582312832707607911538331631197648056776084655877388166077700618208858474952723997431497080835665155125976016076360490569770718827496271394175366525698470463513343073769968877646912698866658370896824134215553435204533708071607883193202416767676477040062430247165274116582117075959660102046103965773917079787228705178198306057577329105802806102097759123793858745421741576452484503915521344330840124984032252262658917788673274528588962989691679181576093536184292917859302821167596721430758693829617367176873307550353953876363646726300704740228083775679214848557086325418969696921876669427282346387425909453284242886954792808174035405834269994581584959095875677137506775176075399861999940394486650033205486110235733454748327346964494398452916572116049551890412906564280906982040327689897048155327042324414154179782723053652679358177442540321933281613361155382919733668781422780926351845152751591203649367076608096248101542841243724795041322418301381504828337381941216280031201679246826074197105427671882363762679381796593737269473106258726700348799304973736647429070091869160891175488241619977288138884006087020394428413285123952094379194202665058596938833812559867775803088092539421484466107094262237935140286048441907756385523441806734982588551436172758551739985173484419704193757209427056985642290360872210228994616208787698303337516504076673298977568867938159401909972753435879435634217707500861052325661397247569301030458234197329531242621392198749343319187014837130753811867958878251958484177407902960023811415737219522589365031086119310221041301080983722999367920053896159897130955048297251741203539646826361821978976896092831779212354792394338207432113935707966318481779741393309567557634648509989886077431804768062992301524316727751884764775304972330647932371835907892803578393820216859030941894259671817778798377374185829447781975697075996979162320689442416952221661205984205488777154480188095331951855421623833818162746623463208821818251701715436254312970602866783824636949601520973237428205280539822626427664562446645092396033175044523333091025422251641321320832723336277648938671569001869660134463273419253253202745793553885420403263050593626851618560654843477439395014795248029047210549434328546128182909381168703763670758146454122828690867097577571517123790590026361333330297952049666276689782475374948518836178493067600393783981378572312387073203971228646465348797760017767227594612339701862348428062979830632943466864134321958510636437387675770130386403085565214150757324025178550351470290627124425400489234569238082744595725088658350840709428802177253574644971452994414401671914180905096520774306527619850700949347004076912181516238688486311723716310094651208533321098284919329009035447363951069165418623476703503444412243754425844143544151118439218749049176165507261737739754167456994846315234653588195389093954191686489422988179859258913538656470172383146936390378138511511041161466323259057259668659451488088503282924301869212162417122537944113146692371683679948306665786690830052068431175000748326203562021383183021225645324816441867752200847648789553531330088663185101977140240263536866948791634695931971507522511317356340476807077896100775314400454502295987949610113508732256694435986778761614250549525033893245759249358820956300355458633662826344591049050456944219577112341002935403894156261272384019606101351280715084675384560384774968566062385383637138457350871107204382727959909789123332148536368260573147133615493656782555545887202563667433884517350248697038556367443718761484570994662959484384746157863964089839169101392199769480783304548042236912335620345121307796021707128646720902599423427658216255665778490997041254111891176317027708543198847477364890273388316407766006969274390435505250008768287712099156573706316575626413567762175695351622501734200807679036188423254854890082372888358190703009327614175886688918038858640455587265111768315302685855554451742956098842879408398955757586563544632612440786687720479015155578841183969730630597737739793659060293283865747932014345069863477495657455375230829588072009875066811318197775680153661519626223701065905916621714677320495085653505377608635373198965229805676873598619113682128335569327095603228659204462217651363470321631434151045880301797776193216939432627878043924203632196156266589438996745567929004394607047203586164527948396886801271100077827030197709742558260306634427681276214736279974609169934462946348327880428898031108135688129224514030235379668627791567017325290241002257173922606254143957331561130406805663382089973919273027209711169859765845737886220028080641896780797307936233682786752356659064627002322024219811327526658523281356728120029438186622960709376812788046216333277324877224234985149462360014959188881805424011619859213650948589746696890335384320068065627869770048050254476404133803579254751993818585303654506813177759689559984031740700043545353218224572293374380607371937358444919212533678631281798911562281489074916998362739359129651486085802777810710555005874073437438775570650490424349401430610424903698165779109227424410681281848649576789763288599362161122390783168697495732310517486697297680063633485479766787045599666093279758369480293137799504575521184702359436707873589401691602561875754995212287587906105027316836331409281623947092948425432088970527517747350250770576605433510598130945642352808031365768693111004575569473651581771020637412881052370691461465202912551246460173813521173370553590882277105394360744788237970026904056953242591025119226986991935810400808238929014962018180881597634865840440972302330372370849652628149267313820449311992235633986469194151765596057261047113821856341134632707298300231818486567110878764160415884004740769398744235744609624388009654471951841824377741024442057161123519462130980276522356840805548052730212377451990491053460172240931656324127615199270313377276320543613710297613111502718917391818998887025962430882006312903236821189545877198236711799482737727355868905355700015375558692474647570691158712238072433654823457363224816854406846092181430368091236595031402262755702448896637584799377497998836273424486348110404783423937137557310888821065371084302305388565199392150083713705872794830549887328748802192706546288673994790921078821190670857832243135393029995698631380926738920882418926853442407287955766766742830311455257038807131659392115758776781858546566737089771932462456243505309183750407471120853191948250664480095346208207064156782360509974054368689618968630803799537428422826336888174192497668376141256400227620588264630455564243749360688587672884391170426519395916721666693325788888131576091957340730566736396033064424381103986656352164240178403553677262659184805962024743397501441301422119482000437389252235155864544200211123497902471062160622217026292545757916050647517795214641042181308418416663815476703254955270921138263111415349901874148933337911594226601948913866294541083649413447543007653326163156778194137194006644513373418473466229543202692946382584527430602200209038378312059003225807269243100321317237289474108749836520482018966894983518965922051386981038375373515897951094834448913920393791205237263191794194775177904408575919472354841193144600575801273858383351359589981557588837898510803098103800171503381072668891346681209388268535453715035135240035612186834286640628101445839644926210044478243557051607083086723152715520647781347222101377917421750013144599227132126282396671694188247271647503880426121437660190259087863720408818614801086392178158798863692103233467652164821748041316086699033718789024672701428257480763719835007012107608693033608602190203321770389549670859407873735711788320965911946130842577781645734384515756595942908946435556087216018943589506158700978343803786084122214281516922401614575154731085482302482760154863821078345265258945773004876065654086306301690101494038170696111309859548843534088666360620601065725612954489816249730082456863970396753552254687900594483566499224351049941824089230934616443646610783333226889192780153836939318524294390414527164915575929980907610233583048042168431713465398504985656896644344199303957978329187336931293482973977935974851589828002511690716658175068256560044571243582632794772406511371914457278358357760206046347476147100202569074952909198227657137317835744612134594506116633284345378055418891316690041409942516359200836749021879367280111582356637558902625097886541757382917673849423105136018285859232872092870665156677509923270956808010995319099064647881373999030739964749334964242919619190343769578450390898978946778691764405688435755866465256604722192759267968530358821508107527534406529330348486253806174259242261967639796234906267866120154809665608728122022017431070618810485081228078096186571779749851225293737971454261403752725280544725144700541770939980955988760461031876256269872135220362767718178187195453619321523285521123608540580948234553514380897981381790888906596101449731692565333267875379250854797485388376684750407577368951080259895845892338824192753308950398256583926384218662739143263275347974943275322707627516311104989312843961413409730780704113290973277631321933908101216843050027776296846410433451105625046214379100657445751201920952123203127065990009283000661373975600969375019184863756481164449576751684270831987690721838961416882640723900603353701099077709014931457391526081551513561151681319679579952112554747055333149942363724358229689632151672603676991115919080195997495897446374129934760994846253869682384384769000394024996253603537053486294554913119936888768501473055975457279432648704184082011573606205153628185333639381533861046160820989520585744345639912943167192537422993110414104171792960962317068733089021229596880318950547947631965849516766843512913017946699422496096380686495502800409278416966689124981278787629640346724573663558263363835656112437135241829319921077075019041124195878364138392159713012947461551974405014161622348504713436629971804099814808755123890577010330593474387936636018474246075509133116543574656138560072177251682311902120147207500583707664474622940985323506590797998482673935554731865536624995834995622145694664989306986797789558817911068759530149434501782525092049485922627646191608286939334237794407199484400460742809066759933750946122445975739945482214514563929687068776088053517103797230775804479455992344786850901857765070919149360726030214030279919078669060090433490666432541081424769873899848324309014366833571047886056946002924481949657708734274001519800978728186545748944377869422935585709062812220237128628593186511379678800207795440084873484184201481016936373861423685493197085559262818418416865404141767046585264455977205309263219689259272447809590580045312458438805546182362956114143620522951082098613155483815792457038686189742366618688542785461898175839204856604041418624552368644332115763466546968178010963427018662490732321203457002926574971053398529646466364291452447606166041739719914775940095411644530212288104615808320987318860009796195201991744374972430166361049614587232262290081396819748338187386380884338355523247713554627502776078887730055965611570548229376263843009206489265446805496531278781567226735006182411383966228471395849344037098354367319880743792905831879975619295100840200952527499093600805451551205424641239757851351078390291999020015595737476850550786716618928281115529808144929080947341591598104892120515403971362295680811803046654800495409115788338293514547220302130138084357384107212057965501985278577232954121479520801358785370719041685989320079643424465039859242059988887266435192701692930246551647858855525907507820708478137077967314458594108366426707342312266551723659129755451073397155734729611727843815517959590818495780073456740747508133714768915344487028831137486318269224405861502259003608659541813713926807481701717315951013340270490062416313177780218433920234823770238018778137033820436754325333707254803629263746775818835161349663201397900500665973236472858133515140300596444859441522277609368425121945936692564368436677459400291792531833194743766537652583749065239811209539883996864380868612971403728913489348539432973779452909352126882483156279210091618611314269397247525731177916857544841011120370153787015782293458380948641466754279542449151899814008365133104517531333932050938769644155290846215827614107402702691156971931339118258716087849587362242566986984161661177528379349210848171736963234983275535372828290983496290878542998622952175708303047598309765269393035021110736028623084142496355741689798695891336404634584947868894332972739040714301024079211117386038037747975411308725292433679341399763431867263560535912597480664966664571029749348910927974907522651036696884000632062404677737755667249049711575605314638210299064471400923014992032438659018943208818754554358471419306289466714286931701299127404725202355815685842652832780225047902429275518998392722653034047165546593594852304919043095452155719009276874246189111836633694663054260336345795345000312849896008830659573548400291551981341349542644589976308975565817069860449935950459177542922299249206113117799680548339876777629166762808758827900482016897911648084918590145963071028364149349340457108361737657098010285480565888824164370491074967953958930116515917935595633958362965286370548161287991771921976157089382931335475649906620334351863361484104414394843876198571948371093269349501844150702345077111233187592407256860716005273879230686450501375367903775388466849172648984534772864650037350987832076382663186309360002398213526790153955608785101720575550305468690964949748746867802263614623063397032421927304173318084666029918603104159145564516534623298777438863051980914491927707388569764080369224047935745192600140467969509121888037969801065128076968163245610994291210143341724054705225408401596285491006580519059208507424278286024775208141417111057868837034545864681535503429730807900518793541931344405893613369677296808266076204337850472768585812688427051366047823087761609562358859789750666859400686931076304286588648554861560482503957465711379977029284936493578817724639879606642984683784051741998402762647311930275845731899872701831397249290945688001714334286325346118639384285162548747755842904703542307606290318341844846089880544598806367254958115264922485159500665427329300304393106154603385787053878465306480086771223140048307354842945404195316115431289292453934287782282430188760204412192982223552554664995131106124333578697575693997730718467336087827587919628874366552160846524514215433673822750194794465386706369466080238541273383306301545842936865291168157887964687126678261688025680026446392102334996680324669036409536358784732051868730735809555181983536472371185392326526136936416001008206190893956663599889121411229515871127096014501672298261446677640802955189669560505584148581147466594121087022344364766867686701300639342571245862485632231381677958961973896832464316212897954568978090839424274566897131309453603609090491824146521361993918171723809197351540738904842359095260667267381541288676571316639809767899743853483122583104839858417074507026882191109229489205747762006029392970527608493292325324923071798398008770670483697523489232678434920920184910267861328881697437583450827559821588025076775147290502954830013599917680080843604936907348473114649672827621061504214522391739575908568446653640013130576804826038563374464615419661068104148882272206625970762491836883717639155543535687371715712068584276056853914211983149761125448643732415806808228698318086884067747344324558029705216779174123471485213720123673893864402441369872135614738607570729980135650885006831854765965247716332506796710313842097057449991031275940608836760828363433544991902172415917356799183307676189922866417517270749766971464660126352532548418335633265960738025193800508293448539475941265313867916257616036373793666812724185531820843579500551013708844409394331733507964514127962359005362168165488017637302506067855551705071490193578637224864749509448931089063223438080360577799209770807688939964221578422980392194094401048486367993636874236682465571208877747544431503788489850988138930358473042891085099383079249439458374756462473546906319331845476531292792051786359657872610749574336088848524443396861832322939005049689275420951232210358702366731288235270823026574827878601727207055273427032700627084111686570529578507061616942849213628709843612977362049354281064473181762750207918729636400382784977591490307035069215659854893614230931599300475643156150373729414650036447233125364121837747397923079708330035415010626531253658363490238245318268874187407046790980842262872301665517928092482534096619017710987071247219188539938090227206088457779333328338723790684509627458608420565040353641489485187598118440419484536447342894604685795088678800476256499333735551142441838366829875296349533552433704862883831741727621855970324271809422709995991265949462905410616840165340959766421065967775164245183435967549990788654722339796279846183596170574761282671574354586664289439640931149707923693563985017982615977777486160958406790646075444283612039221006249404376750657965081571521007847726542544383804380155301330897596166036031892864133017486936105406721876269026885852322770453650244352997934854399012759032325384687084724628599874656940073236674985089173991595877944625617172771025624184322723422891249727227788710326561566835692404771666303184103618867935118008834892000439926030348865640374352898622954348285647876658272032224615315568247067761157780718236874324152640572623807206473501945441247253410346853134877205296239579940031906162723555342104455100850223200633400369189787701214669065576269184733974192300672223003680456528330328051587693159151928596200621167038972163864819930727768402913862239439588577971720323060896626151756713515719787113452019800615022181718186051242695853656053422377228472705462100341011978043692148669286070943239355718458114445977222874331405444572970022806541723211922198987738584894367122191144800952534087440094322621139245193425182959775070564297544976419392639963566508305780506859364345673984068485418531835911265621129814071986440736349498356962157555204262156292014313738663600813391806636056437550195758572489406610413226750156987185504591211957674611422598258735344745603587391465535770241112269894146578496987574129782582539816062625631165707388964375860412411364785592273262842334608725588352987854988269598799898219665200232306110317082504319978165022148608189645905789433450213850706904470833148725414815150145104450187249769652431846173685215600954892343120232960932826141453217741242451879453486577441200395468106051815446659955840980547391543521150530398378570787210520618256236105253432182461936884968367817498657340893442146783026866161594465590802226572591235327032707100918414016812539606042980649659011539393614855028584393655726902791544815795456187594652545659235664174990156678027300950185613853858970210242519644103900822308657316850746652546958687797917070316671998529999252356829147845374792607380878027952570902312136431892282438811778726584307509536849230786272420697428359869951600961159952691408706434642759005474303108026930771382181767568961447750823117055475730271048599597673589983284945785686600424978049200895084121965604619649675699351411328599624154461905905109661695611612444697384988742841375740318733384087370910585679541671998931723376407139145236936293278506515840316306457169182291388658331772775996521958997036917818461345000852525363592604687832593772616958081516514814112699296234936943510745687402880301800765379332472858217821114031891378870511249131314464365130618333620820080498265643071500449894413480853484089128255519364587234457569459952178366553507460215093075819736351927118121006858774107346850286097713238756450015917928455208990487517417166086166805042291119868101606142499700852774317732646756287646732447952495087393777131561526837329863135619441688448267121209541847987907555536210087286136430688265016655916958277260260491879560826255835052761165730665037080982084133106803853736658426300662856500464760223301793455391878427397829242376823660984303110200503798710267773269878189679635539945764723319368522100582375873404882398275199956164962136958789320713397476495803096783311923754118712641438513406504059446083442492252518005105256001619881468995645490377555683783878319331243458594029709372063059475990217282666609513415490461545828742887263141469170206164692820603264490415853879311123425980018410286653476499166411558177742400930239030330997160627544685929522715889985503813678407145344454743292388833315866213320999189926149764964157688384974742935642129217589731432572130810369341950004622524341938549246260171480724012759147492859765823851767679175835037775325578310563662894662640121882983569970899189743273594398893067117781168737142914426160306843852788702598258768528250010834572092147423363991984639921910817449783172036968221276751016511460505390298450581512804537681072836479926165635178805131852836652394399362942085312953404804207103581848668588436197654624668057048793316511392784413969627222102495274578569773241269111615354878735990745607196187600277862458138327646922320214275732764989409521630676250519305773588605396978334522427846028268587655203770676880377469833909765370213789741052743633604580424638628834054803253053498307447962099163170826762157355471780921446542204395179311714578728496471552846632004793405819421520753367768745285135666679098100563842871091424063167203104974181958734032826189632774786239249737551720318116092736785079677568547362475383423575654401595001600428256422351067948381693353269707963230411184949288138660267770671269697416450119941164645281068652494207396024087458884442858532347859232588845684858320889556476972011780805194558762395211851515112756647065208750043054299377024351473435106220041572506359423135270072899135032515008378071203678208433949037859801104802410146365360765740583973540091648545030418592400277198260349578803925302591229344591556790302362194255029408400498447923967335250976699798046865854539737280133262041019542016074409513316286137063054439598802214643039499715625636494204273586847383201249136195989901322953160123706396717468657131128682998071289031610067236263065098765322067917647062529070634818918169998901731758783351589126977750252244434055410192198489761858314603786406442618488825669363434247696500893475338975996006183476390521189785525765103280917726386229629650210372286184864133484268711531480212507049887391225931122947841398114948801783727115521795469684959554103754971360698468793745721110254203704732413232057339455396631842389283737253907767890653549227870109310561341560389395837381411635903172745209524185348081966800920853264586925749601072491734189352171852319703112216293930126558104966855412120046382900148469202915756114885853699678350159215551969730899983469234283199231703524755858116450657132876412014015714219851214138389437330184361597871191347456756279752568059960403156901427674373701648894433330789989161114350008387186383266895514558316223058635686690970262548801867950457082502629736259516238667307013934312518702184682785133580574754681602649568884400323611805528340605826095313945180352571748227968700654422017182131113201055346290062674862050940360424223199987978888702434671902556894541022256358631476674346843407003157801628843242997856386930457905390083008552280368624699012222027771947746201074015894315579089936214375987592655309197369269300842065584146179128962055673154018823280542818245231991523359166862208711041798856362232394833554900922253275754002656799152278496726667946411403644805709738950660198862486417693188803309952052040516904381958735207213066680405712555517400474554515888592450527602832877707016896150946905833042781091700931070795256599950822721945679314782312942318723158937663080719163544024383281781975316038961883923148697495510255238924359907122411079725043745745363932315142011694676117938847544328497435152143251798633101055614568814016057713206427701533311190467493687745622645164987387152371802994557596104716769260723618108331447044695631524194180746369969779848935342006556169959009269771553167448590718057055336057616068044189242694664018871908240846587754595843446805150565601852767768716962927759032733990196940287707383699572592970465059399578353754821614955313728095498868451518161626919354249687892298566537739108836101587371424950936713780922524874257147751777591493484608113111216130973076324685321990674286250055625375136540218732483103330285047311026745217921902138731996773636493466835793859290321924634796633233456916595105924839089091256316443003441884221444707695512304490653219210829929506261856008075540774250354320718811490180654866907261506027940772038868469657705716055241062623896937535547878980586787278015748379910625221544590701220931151470224303766685636325282337514243165101946001162859580524215193789831229107014895679625066257761782524144279041931114996126874767356172291471500774848817841418698153126912037244987576333072726363160643072626956725193442675751532696668644314027827278663101711350253859998143825723120491125523288538957012693209466380683314368068351700458118229163981009506073986494097897065570271354560303502832381824675287009175472320014048539260096767174817351323650674354778809141588036925662795098189908908395644151546273743376621384653965908839051276406637105906178833851721246539473559237734292177303977957471234232147193139895526454169758374006872418085553565977275534585829430509703852678105840292943337515438337821156466678589690601361002034845234573147255934189720358705145374396442877773165145804132999299450375571838631358300828678801534432885620297281467817120333320843731847012374944448253065445187466558912171299951813077121352170678267654014953758672561228868116759727656113293200987140170286166957105054737108721303335294352885014038336524059187889857321885122508629176813449212536111863525760732867423177828945994843724346010851507806735175918920042575408273847775795017147429295402972305256550098744067448851028845318575843603070318010504346876862542744912257651829910985011871062402682130233564157364809670990178896807912959271725439274240028815344500983256209611629462578780525559745731239395751499651744300464345286024206962505442440228312566955437389367231690937936592320270127564169893031850827602679921627476437242484686548909522481662413026015487482549536106873503459124945308168571445947386055046167057665889250108053896395729136728989111730404566638498424136397875251147407491605133776985851520375821300110251717381050227265787114204363969468780062188117381130697439652266946159186500900786498640241484186998306397874310121368236239399011443168945403021364515284519671598880369749764079953923847683556639769505671232117184431856087665812503819680155654467837926197677045727849778397747069141266933552618965622306585906136702733987727383210393193397470945472918311073480613978052846461273044229905480935446552332011364509542995383323142368741141254029465777525509713938461444239133932696206021164798629981588438062732335507821336974025520172346701679063936070522762713440893380955061931928440717533768541838690494466532466132408692012542165581186626591144836125800614807965503246355351656661123847785935246934448341329512340482888804758173269863890542831106149199104793208310438654420851380485719671037067029768478498540107676399349852583775742945144797049494431734719178561198027120934457820827905815493368413093674081423261788812222844681454306010301432377631266752642230879728799310652571529236809315410604004095863275374994484261086469187205673627518569048942137599818376971528253487882100295810706024221535154789375974079463249116246451469087616816885092737727730431635623396661003946157179569635903066608807181971106468543858334299040987625426067073753286748042300004488203800232334333265488793152365281236326396364078411226111750594658956664744199577433418264433113599303521473277839337983921854286252188376590381903112968177920237113451221472240899697642213678770758245289751353785841954129762596707987936933572634642227649208820847738638908867164986882087990949160564878580019250379699072028330840118130697396630449920150148611865672489116825977240389763854009999024527805757471236995030844594490325002817042426072151186257299833361462036173398162594697318999982657919853876703962673752908556707044979848618142472071639834727304834739147035275306658547380530980962755152688642135767396812797492549270161379806469078503545622511581144775174763577202715685507903163151506563451082439551848556143225591367047892995688179447003483801830573389104634950336889677767685088236382206173296189147886520822258982761183301092871137199938663978030591636540275008521648574446267339634264552433439292950843367597739816594939271387372488061734341739006365531408293648570837606198403061561938922682765228820754332562547548335957619728208027547173428376222505832581376239220523537896593773283487819954290723555126910081043561272453594928282523234797150398764897406228381361975900253987120258997718415308468852354808543478545686073053374894099872976725086488954500991702673703828561026612087974263514518434199728819045794228281414389359606285662497967850817954742013738094286368479357630498642316949827691940091078031225171809487317946967814082980270736823320428935664267725785020428892080423859212138747838760972864406340147833668529921814333373329396224515253613918317767838498278380191364839138781379644024819040671457192060884425089183584162144039252831207954343262544116006601167843034176528210375390975954451553219333614050839781291167811253368573476286415844248684826918994510786058120750143614693885277544573669239065622310593080522120982630531409621488393106486981571423828954957585053484230539211388450882396242687778442647878787408887969636576422830812077457228023476727642171132194958313221485871625339802059599622087416639573202965791875514757888503118315158503627063409252650400592920051050893705516724899893342062496637841312163143929888914782782916377738058629655816510949294121374783989134526306946817443473344442187064716111857885135587420795208103816092989385085899668623219208833441573308091052412041930467418233056812726344620068251210576235450028730711711933511300038639190434961584363636115856290294103364761829934652051518108441490456099971507641021276358875804868215032307801256016008038976839928667959979311462903495531658319484228227899864212091967758400320245167143922570419838539623613931063598363528749448471737371152827774858397360085476212410908188412549060881154520971412477199882075908171324416747724442673991737831848871283319206125362641413673094418246483612124786734710359734042916898609085981348607434488257429088689642897076307180323100956091419203176648965691570215876846655899807506717663634663718298888250182638203513929596950856339967947901295837006452907211723768040799190590077106498796288533448600319925531070468684447728738340752781596338289362542052551335521930171748122804401303158967433261612806663343430742273338280654217023586208576089579222834009295405413357653153796425739389956440696819695238930695466030590024303090241167983365661261042985261265629891109949138810895326835383085138624516599169540280881107098695073392131989218590523134270880033952882629687030587770886746661083842047473825838708200007019468165702119729802611975156160244931619697003266650164759901599424054663434044314755226378668984364839621037490851705619701863476865970649713130129935651780339180305447656385620805084215469125495403868827380525875293409898241363018869910226821844977580353398121862522721452758308353048598397408702898933325048739180412348055012471662195590384829138291763168416862413143297160503308210223982070654891617286242625586116511549148687425889366553782992399813027176051072624411752056046803159017384561926135859755850212327668199320064078292426201455447379267273065896240740569634932663895663479028307975155193707913947514329837567684808167975315704727785056652940435681998244122523269770522662669764284233013372006092245849039877473479513931710046151391599975469726211422756265675828316411324522046245349061926689436670803043750701782494134141538626866007533938437684449394069272621760616477802713119508375310488998002778349468811903526310823757590305274744251002573943474494257926667907562232571941105415308176450016080841070368670845165831026276996411784785104964824586868729450916165927493952012883607248249405441432449766380218199725908583616180336250746392053716323854884605942560499037737644333814742472399932651763021554650193429922265630852947443250118579538369456034216185101327400837180893718675590412522914117637093138248662640007730408742708972155309101983742788156945832267796206741492009791774824787121365078634566353314390301217871184595434701489397985536076448409850722028667487922445052029225677878661671583786153035626448296305241684326119859619167024687103721757027118746408003631246845311773599241801405325400270451899521424106384869735158292965493661230250974945911682849847825892242304460872626934334993436254637884076533310127511432052556220918406323480606543621416483750727819079929367324087424103765961487678126255699347757188835197540893071738441163819270396635938077390153351204287731576103343594927037803178987607017108173935111845560495730953438620770673813771348583309463322394432142721576975349286751804737842152944845804612685469399383370089185649866764242857485376163493105597465634294644237699437945362313917818569338641751139844048572948927623982139474753911448180734094298267714609882800711619835931555924219961843309023748559651925844444683673233414937070712217945858371134686324640397158086605003459048570324066482422811431544316891813141578575713454977841002141012831545924122792792554053793421503073795046736347517982342031365343514251625997361814108275692989694851892872429804371322127648102583811959433654769078468685843879638171506548196103115551245141365390055816979973593168545556358868855511255691491988094670265844359475419290043455968358816856241936169686422246009996912606258945670214595844713131354428167781284255969867247504557350352844452170551759334742132739723123574841187063634486454458779074394044362209894146427306689265783272908449389112332741981125770977212705851418488157467004493960311789284030860583069042551526244067177287040040584098230626358657873566134533329936763790045302954225862717867314965791469574562661347161660676495630544205153528543672126880181946210982309059556990603184561837916651349091837719657036843808697329559370936625472478796945028184512576848429626354204329555879495693673313472895276168336002320317244861662351373150147294336816478484238978431136193659887561824486855026100558620445881638093702038211872820089294373582357358659494465333202119359163487446465830146474789809271494984082639397988095559460498638505097453108443512016895852517626323610879514299260009041600527220145840734834740664770056908355190244490303725030844942378272995713351408270791631224794054852610759894901310368162659881041760541397245705711789043245281527400498097138445756601044722965431831126097185066103872655927549630019142031383991881294156644403670601927360590016125413676061578939602825549426890355365716403491861785746407141427867722588654213860427161755785799755975066592864089487881075186070622729363193165130193365589973441643503702770986768204919288408746075488091383485302214330240676597348720555737146735459690586944058631306204106026171486988555937132706387864665805126658228598379953215376782165079071178922025246876012099428772698425185058694507076253259890650810082993923443114476691685625181958024818362164137957755658918731413141231001491344691681998858079764956903123419889461846564768978810961142855231312170262283259545619875341975024733836941674459040789675536596963557553220976218464883905361218879356646621893787986296420211399656218752449850044172942712325390095539412559171934869947853181843002563960437434783356559682560372127632813987013170507906061754254234444680536890079918795462757946615008378628611635457774583743010118668120347631938683127392552031340965269669015015316171776037966302961374559240575797931138206163879222323714116094088611745620417070383323412142685252218181731151895975628153882336796025305767894845738446958657991250775539075072515590243837284763345674457312493646283286815419876193458348918691616262554979647997575190520800910961574400540334434105860979421575382739476459867722718788733474149662320487149456793294081876875271252323250805647577594524182443758416044199948665626152803380958426583527942475020159743232186985061488927672472385978353872539794266777381280774662677132336427443287831689247006118630717983149627452144053393027178113031753803215042496084269326255075298403844472972057014314161183404727468016053764778216267872079373372790948988277376062664809856888793274921283050660160219902380347204079180882047222140043511759356596707998691912575467724168135421560703094345724214780357637296343523222893090574511248220396864462152642671519196118185375402500359006533253708621042402115425039729567154726834599247740235476617409958818356965152838209260959095568216841017719309345610754075771759740549845602508307741527708993381003236179045164564349305910499583267740141430488056289559868201318003736396078843617842237318430964807778752662495283717754438241110695260286374742413858288505643596458767699544883896410961259938573585936986354221847878758480905637868040009071365892341293329018260663732099158042566890751432090869230945784452796392790144164836984505915227293608849447514619726962636469683177338480428723884351053218601536107492363209843473859128829799506492920859608341062056072759197364958660373260684530035631023201879582264212567959919458949249691164768731296301200591284235285107571669342860799479024725914960325849581562223420449571607324549697817270495827122016735976721336214001241358391307986765937168706218870368516333869269178736291337102059674785205612548469693267240367154809432342812972180951730467918132000562938939887295369263454587008230594815508318456750125767961463196126475523104179959833674797484326053068768650225240419107363013322817944996233022589409038979898484650939765577477559068821210964182375612165106416615293465385648223121662016035623454713290918626167492694183748712573817038536209959568789923825063955947628743260338372080898217285426566795400482196603720444732036262217344875621232754029418756975784681036484905418374568931003408805052425629547523726041619921595537046892030365020524035345184927303891251654514933137933834182656187069340489932037123233431945000116436037078566558199418067711211776797033577226539881379866506677451756428548543085552863974592287391909489661055962615395493467349469462827814710285597031123958816738095162317861598887240628192030931969951669325109487367410910501644957208512591491068657614019574326625161694253997959106495640374286692273464982280200974141931527506318034407745759121877437484462524472152624978029601353534444369072303741434448348928809067877872080052938679980189149350659292205626553799516724045587585041207367490996853404085497273674972019640896937902589713873138441273581186312257328721062985401504454490654796126302472972514287521404979019449101888499970436931809789503161445838893840352556682143090223426595325244380847961227272812137948572663077503463087467252964959879932565262284172119555013710194156095386639474105926697235342382353764476976509561433889648196279705297083490385319582391696408111998050112841125632117897914312662934799094814438922716188757607036423619256403615365725233845551799947538448323452335870707173815456574013181927023751548570619225263011183351447321774925183059212939197088449866526400385909544727119203402286118683966506057010784575119793304073683937206717482178713725043119833592444053029495939138125709305678417610075715649957804360027769821246486160767061453845446202722591221325615292459292207942747125800224705500932394348326359051120823969782199626203738838812492090560696343325875666876468679713964262796712314624282317906658894048893720154665649854818677068492347363526086363315525034746857749448811846446772274353188906076212001041923926139742377864715045384358083680309542496871656019751100530037983458333280795602275517481282411734171993759607811259262914622364121955581504726907246429874927435981610100465834714063566850250081808058215753453703953006885814829427278230358756727592807009268854610685791716593777674443195277610430478255164484349261322023435130016496928801802555529572649226818948731546358455294616332208334392921820865948556289332945627384146783940856300614577160437298399810371598465658997923826019749581715402915717998906896138066452002214959206292744151385611722274189788972414396502882974427921644321479501313999705470413329724015752170494129678552233245003745331435838898086045598727905933493690161949165470285586916176982867583287228340470709596317486598883672864786428197013384168525460770437512605040373254736607116720281762418748020846352260458744117056331152297512103474201452694836136193587422722953411779307246438148270685642097978976633622922705317738446686530742235458413726936157340985972239250044218921845437082584947406684978205031245717967803064212429554149534393524054079996411276696874710980474398926322992779809002382317566765042727503003426199767446933805341306121136839068825902180555446961640219367044989809243790097464930595843837267684150551890127560823814632567401028212580945599603863833293661957409593905182086775815725733933829520017414368640694498203066024149033730125040631122966605044830234209205542787344025781124798808278144071491733912186374436873936150875556037882713314887694200234903522868449570136908402078988029208153790545946819591328103795482369881271670922786159634067096606399309640048283837508167161817518891184067146865563259821562267937407293075487661936960759962131737910661005161083319259443893145694779233906094298126373691941429412157128474175204287182851159421092748983832427458324430960356707312349858133102743937515641472231726612877502532358843301636104016748019788968660170777110024787198028946427738933790436890697436373407545852110119849006009088230971966414300606744765323671175577732468419737253461436775882529720487289200603243388071353023049702250637822100372011632543901803747577100830199883614878932168872740717623833196146360681054825021193521537625563988257120783004401301985916943545218965257278925720631845018199061857212348030132708342553420423953458663119588928430944295867149142934418643356891848083363179919153340154136482308798883621258649496239762660510929861205250337309191712946315837155294202105110145134957671120286472827045376947407877242048684648788902325622566669650515714928118408168016264601034273267856290919945285156605309305623797810837228147057993484538212523519319830435176623578344138083978228495511769888253751752821376000213844981024589725254640712660017493115055215107991916111422024296742567771240560342765452163943607103923883819860077773070519694720890504327257981764243979090005502623330633428218664109555181982394176748591830936590496809185713978341311580026379927556989407372597752294947092932322273066052874767819604255605700251526304209983127338151829002496159766993647158272340199224278411285811709604457346862691398602041371262883505802655869070783651594328593883770994386819756796849648765775921377704657123276488995839912104371257321618735309505832436413884300369492065743806890206051160170370602308299009866852598215363002743493425453344261898280756376420488834253879098931817138234685871510332179982817148388980692211327796842059605660993157736788889018002223334498213796897029869299574483390625396922470333843478725659949546581323018207911699354322834278799939025288235635792708464920108417075238323196391633086393206314673379137086216966441662355938923771940904238969205907357924409087550453194324547921348418412414314991475238104045510038862427544228260882979686169489369532553033386224748320623084220357684708986341228328687585294782026536532312366772630948072041271922546131832534901851707926265238254407260312666374735428123996902095519011210191766853146075704687974603270705886877757716014578549593836046461169710119723572514903817550492848368356332286322126361968366076258534920218646064500748573757491461517561133438224373976963077423436278817375164190215296152041472347166644508798907425547910260317964098889388759679651622630205661332076800380135153098329161545353022911821327296294474455530109415287829040674444748357398302459133432541038088095537884608526300724472553496640472577787983661833650825129283502008924619393259558670611283406045834717537689427659132989884699634609218792288258897803356343483810599844764349938458324554052478480454701252502353108852735573877485810025354884323062267807673739421370497320235815621239690779306131816016295122147789900854262459439850338364736036426927332714175241150361419704110045636309102004681527263819202477652999095989458170671839831437818308809645661005453500716639145686685970145714274156616561668195374760298934453694255140103345287118176617772122870650620580519073302155036570210865182891357772508437360837733996825170515901675567945868569653660944259016666182717775739410516419069044112696912592323738123252130280842074889754198944492897913994062449612466277075606628561324855642670253935930482386722344529244553843463964087496845963771621252614352535600846790331662847612661328181150734336378311911380210397795638171330171162630555288821209787101880886304561987346338803391878034700952719690779165300830147923590705431641289118540064877633975658303904641812072877548155610617475710371156503402177015304133224696811627079899509069103538587136546252383897846543559040896552946785460965133035805530029634666534985465412370551161403465733314109237813771514320184010781910929038310802394126127801537117142607987849886399366869525979093439233253450114017141060596562525379089934802663867297458604347588275776537323307236831698906319611224845732355631253552336118214587227110700424245846437315737165707755429873517600074495262623759291393505414370970549796667826319242008075504016883449719957631819999361265121051647142559170344560181371357403990044442344218510439802682756289720779420831152706554879567101624305718220368348263470598243433383158718336965247042358077809669601726405217005420639035696357831072276523917354674794018018542097324831803901551592485126527067872134180154462068151145949574053909087646151115147073040396935455595138361911928441761768017169866332659714194874999180428619260263997269087008289526462010874947825135255124497576289080615048836804325830803475979008516909566651183712749911448631382878875777845319918046917591643590973729888082225782042071088019790642038751714678990042720398646557654339190459065872437911891102231080187580602791474110426527061528515082301868895866087220672423952336378947943602531960250444714240966753491187649062193510886126615434211620665245664621504301598197781387535654041977265622279252049412914898317599839664715297466519494038286220675083459369510524394198243210320189372336757585951643582162095806848143590983281758463404222951563089103807178058726203110827466389943608353947078214961486755688328580737188039994882426457313237386202557985064118717560881614697858149271837030043497794741714305620666628458716935016864716163363395016156306860960791442851011217283178603970927960420030467897182182679227032170276921903416604226462472134290260150581966125393066063832841732355964268647019872553321473543216034602846730927043891728116384536694543664323150289247264382533232620303146102021537182971464097176691411444209851055691034300321486521511535356940870770290419130136081140906941525100804922761265239636915068369371786126862865547263734008141660637756620223720682988638096869683492883375625784386573005129295065425078967010620799320725443646402353063833601761895885570933696252198292873035707916393389389647957546286730468891877077336697484793423382569687620506061997707049001491796442235632694825491843424140459380173666142231635720045647781565838372836180184300801797927010790128163997137863784024596481155750855791025366645438213149410111743903554979342757795480760822885068989904992196596286783775190147895545526399356074722108677011005979579869778061069964901970349944854204603562469325975508138166503611844634215305321613860932421792460526718893584368268253256973931139148884388557789628110467884126690500959938781971989989131384618646683803667019258073126782875330214678170681897313647596245936422784122356660944405098413316593212827610329687100704653308575247458546094076855227607994129965029506672749274928595861135842354441399997905999028394531467478353857551422153567489306391777527195287014421133007561895067875480272940995203138281539565295846199602126670615439965487163591815233156284158156407541433939753934985929742473322320609336232324908553415255697526629329267321712487411358534145673771171359881362320086917093463853176252232071157073908070178579122762818516290090340966171240925170012507703020812053029493052713752967859239953651359170100859751934688807286233096299039680681025173306745150411036154703013906816927808107712688471004771037021497574919179555969926048245231867827875866944959016813875559956829229824052821284407733708485891263812338140952677842897293849479722293203782169981671194339767595050411373441636406114397763907379321272453579850319092208086130371457960702475554705049356107722605952000246558849532255838106448546512978615734056748580480793524482678826338519919678132437142738600967889325010747380015837211535137622629575187913576656678168779470433198361085077817868224548405526874440806234812696573394056234973524276877727239298801793425559235944757381666219169620421916679341739774478115188368843652944936681261473365523389731531803416623304963540980383879918471145398220892434816652635792759012673581158325136267107395117500923947716866401314306495618534693785256258176522614116799987524560878769099939667970070182181948368007907345048068597505723158153276804638440556304246966083532435748415786050705221039539126909250737558800835615124746485036540474566536424027032838148790574961590608770745565966908019655132899814347907356647634031239143266839837166419832940783530893171807144255656234027809930880355275861094657804080160376254090661636552388297189863666198271534874155142664050836019618222273320701883739173831597905886544922767098930971676031078413754590559156244333006285397505657743622168267565105186933469054824760289903428356704306759456006762853513982359488551709070563485554630829860447249445729096606348661190772714067994288703506677525147150668333325732407418524223916014738610509666264123148265963194063913694463436495864285838274341746516951629685011053739784418871098698106421985559647934934761645097976796660317723182861501590497939656822756912082793749602564520633248181003108599371969461417697475204438259427005285404920094787990926711211937623134569548697124493827794458650036808573814334364238006544844673783832441820146963245867658132531789495976190319803748993046912299278384851918054623947903245586282955422013488881372772041136792437301048421797977563304138128759900849703635107946060592283399374174303308544163124322510815399836866382689669100406938388629828880451566838009359128408230475622054967394120307618889960975174516760885760906211919688393035150174623078379503906448806992428694304397421869778094679415194853571816210799371075067436908645285481326330588972653662651660457709865597589966925571891099490066526174055563412622492497665364496632451858852520949324158170095532868791963398848566450816987620126496258017529096695902937932953627409792393771289056048938345109725404029702137391276991931290619218555633626844888253044439936925916076279107864010237123204680693888298014696317849453035737631300468965101905560026846806572989049617814899146266135163228428817835644255199119654780276723364662632685359589890820879123339587744113362075113063481906931643077711734724694556135842374162970749558313060450780596942236460558940414331117712450903410194845097546555489183405019282312670337402213123529213687013839030728049414635807559954451352364377562418272402474480987871546667613868836160727264994561616963924941362093116563848034163671943382429422527448762196757940725867971167010812682427700823925479168427230208659052552546938619150650498143542673091633423933153027887384020071599803394991381980514041801429347665126663340294847491428702998696427967086183786363832164440397290436099911374077605004330359355973818859226206602974158658198008102142146187665169069366803435988063670565312020177963355038481577793392332119800799320859035150811840803683028505825871564379101612703577247933221920422708727614469435211903335489241648137963000997682302587507006780765937501203700309050810061809819426876990322819493061044285167767385757587323816725887810785889581334198348631800767227010270882244919106991511110248149605887938407074470469156961622515981146491520338659898541954953106988496390412564757294874572635792293216386293768980282655100855049318191219033153309201804435748096752368801521302869022690438938964718202766075309068925318160919065745159448452168140098107135955899125040040212215165255192998476120968148161314917605813769889531058492661021934479087071404474170625029918417483662549197767264212955262392467056147018181684165987015260619908176905846704498419038623174846887952311027479173968503150703023847457547648866083444638684558328316930592859989702241206243023564323009758376483706242852858836533479795237355298459492293113949203320200234465449129131066472889838172875996601040111948456346753789421579374472926895370774101867762239218364826240258644823736483923126364799615478769835624822890043979201430615322348829156574608995081006643471018367022412578444045308974410518200965622680215155799470072451620447651556982873890181906555622188467979340244573119089091012109701875127441556933783764657119545216750269824657269328375596695823542488312061862088983089254045217368960615079117100575807476921135850008443729395965938602039142994873484000306033721201907680718506045638896541412883701766105242201302766477986578032385650461033767871034814208703227784574616664384055288741363293404060528091982604935146551921970833312433034412798886692316599333142641891676525468594142907297032865794952182588964609952599405834876676241286738731960121441482684617268294251185902808935621748812120926974121904334682579362416567014539986041248081084625956682063058386517062350849254545837350081904087206234475008783963533163194921020925598104310656113764078168861626493422661611409372775138442092242758012786393059568077955150898842951808252066867639054127537776838271674829175892665657309490770184450826777915999616324341272831495384774188200128445718941626587623172796082170495733268295706719700145966457666345147815812275797008472614644801435193378134446859998874570621138409182435714729345173033704316126490322742582688749792633001746424216387512883609595776628995189855886990788425202684652298988628481541068129862029632043923413923534752498556808932140816956041516164775109649845201023968736475557831242814917317641974541427660488353498088421131313843902874600777262214256004858643816637339666627751573866655587232428551162850758938634328677516757254272711221481461749655956693628303718277565838786911246258073145877903598588705811918506264262313625177578495351785325156734424706569070893797357115799243007603147379566393405687285289252874048485495031835801593228992895793439327377103295535891925356040822884723852388569494516294352649968250185180292010422935939568592867287757394658846373467087835912976482781402250398937920887419238462891597684824706966213661319175459956421332578435785019681303607394725519085255381475819099111312850233795617611968015586771026555155108588955457846388923580723439789748947816444959541720877638259329275637133336395168784536751567638967193318561998497596344041488808216485929789990394218082561791602210985232287853279767888717413718191099552230532184965024579414432470017154939409974878954912863343021062215246050580148965581322039946816199870549121012473374815538361708539291968617099663008906620058050012742019398647612487209050671974779588372763449157474490696539251245102190008735359505067015038353018189371959638483102447225446191515309013387299981430146954212905472397604897653246428807839021012538166525848313163034263573903555924301919834373678274428442612553218680743522467558809501147942131805248068524728246966704444674268843287167441030166289274203851062764556578797126815134957306744787819985592633814084941866973584291084559036433547414206437033163042418918583446339629976417860615405651317396451063283070358159368517738951713169096306317755311689984038458707905235889080455004125416337393101539730717407164945098668564303166068968260171128761210371395884033407364554637944592380989124627984277214698908405449793881046066138136405554270731085712394537505757191498157521601009145187503388059529219215523461304448725895652439911001822113737444570221951471367684584697634500781568073220530936390203911273991230048637093517594676932872362164221392582692893814511732558707034346532268629929314619686487279794875971718069420622396280982024411478212537031107225317216841288984385101229575952060923252771295448615127368459762951871649460162297862137876071665860052866640564514102243161289776826984678385548131310677425820305789986928800953021395449561046887522472269333410055166441833316934201708917279451393749449058979907749832543026176720890751728230489897539614652489680745650179831044213056357963136226743583724320425444596809065710917170880928141845002621269801841519218997612287406071904316727467714541282935791359277724822495092836239782352664882540535055092844802074539454799528642160529088959144404411371607505143907225739475500092716373306376092772117158151647299032753487565073168361280625530725490592407274747021372305012307434178727247778210076724071750894419439483967214483285338824990744049796019589815802450688193225644078645623523005298493473824723600653151714637664722059234014794128231905057271400558934014864008215828297036261556678331886814618939265093794623020509984839117594004901781912807971707066694456210197406983238792507051618263276329990109147402204570797465753507355147281180992810996249434462153297106836683040844878844910884342588197861923376178157010916443115829684078127017337100821224115948868416083096621825918550318268590759022153807116272795434775545680711800211216974893843527151563838103396112109373392714017094119091362906188837768334052762272413258060035085296961339715650530683743501064944333601541352091349094864819507892009986466310921252981662762017543146330428262341317059371217713509561322434080705937807133365602537940640686350164283730549138645968268171900154633256268012704592202257476494588227578961150568713105001266802561416513288983921618193419738959996745389352071768481029624624109395753002751595953975079697789981079445255330820736088068332922031949470016279923333966059642676899642218111664122712295532525021664872743157357728256077316596843144221347891346831209033797534032301542727427461355657134459374236856493393002477714900183465398943003350651164783348820580868990438151116496210839768536956592041767313010672077253507176727024858726724990859365953437476604077853861147854485365060213522120898917210503879670044047710902000282651001763436926586848358005247739342459034087022874880386495387395562375027624396577851511889238404549685806693721308325398895973923204972220223750595224457372941442364104777247093467572248625527329041498453769200877700733865218044790564271310469392941992904579177433313770141179486553888238735759043684350380156236227407465992572592111579186229531058530091769939567057306775724361033721434885498243669182911511816456391517792375420503597580482011500962720137134625242469516145616658228471884935180590946511583042223581417797705477051564325716194090129197025039574970615508580233112982864610760048255658434796061679941886294267857739190633032521200907501366702225722971891840908996951868807247322978071679906940274123710187569736316928474630291744532938304506553078717173412264323788140505348849538613193162374132250398350473999768936033812763846320215153908697106283511050160296113124503485880662818179767079053392794787702075666990407668312054978408429316267508523125285679295270971768728218672157193666551936759018371460600060789590945513466686390027235215688283992894077758356758617889770545511598092053894380254212628562528313040358039499785068521887289492163406556890337595004555431752257070592492904120280765924893518229146772485254233178999413298733679178513951692467254940421613851476817309990933573919671188246421697524687584310220475895360601689225717021373955693039717682500111095373740205154310617435194158281907719516340238180723568150582470665438926123369928882519009924728263403326789277551823174376603142451435285212803134947684606663242627437994073260695156742784853604477315444208277681758364473813560666526962598024712632556311797235715672024854345846938864236125264051541243577644860990307697831055216072682539675999359240643012618013054157290450988242451705604759885623638397337166151025548969920148578642394625314575530079240601130392008575692916707180535507115720099345215847656908613816689721910591686906885683083805302556400688303943715538515782340943578930533371834050271882552107239877575933164112383812882236237756851662650220677082526284752385172257881266446223666200874109832281680248074307554535182636349053113818250024471425262094635743621549460491513223550534440937717457884694674827098040133415869892179906240439378002393594147322316137052559327580086631152840967467553667516583606081558049471133458572292611654792818256592472826341371046989027643005029032519945128096227102470336369219734361510194863451574981242593610700558860569741884712918601501079105172597361079654056473120509843622684409470632520775358149685118652571135746268915381136668474130121249503720562159093359032684487988310381663969649891076993472865364681893788111812264027067453327438062663724874790463809227833061173326359574589204475660744456966849196084889140790072344945212823478389393869996883231848729469059703090364015904919377168097981941609052678234061239232362320991351990462978624433964160769236352884338804159637459619063700059328868759958559978710717181438996860132337356298027614537124304275063341462329668206550020566869065571862352675551541955098008883695152497504490088651589824463307218413779349809966242815579998477075770284812970898534657944591857172614287910304062288462526612008869113052514401802717785664739456616635014482853356687617211871749033690586027339450107784106211078370184837563149134647571337374194918938930855721948762542196430975382047661113841818332294209406705676061398534358442582763758472171887708362947609978291683924536201140698834071514496225702721542828908147276920828638328877869757150329473697326287104251926904177568890226103738764671811017967847836830633448753085575255425155599234474946324416112402743548837380330185791368058844893487748450152029451165094474043087357252329985475855794422749181874237127225144439610243187883114792868415736293994417108799150680782573000803699599571510561089657301279632354941315375100117290830621456793189059162584024813412576743851447917504039853438416400729925013984401269284819023276994567921119384882800664655862128226171037019599574084983405696681451265097370686351635774657667049592889054959274810243709623591771286076068750846813993537751040469278354064941847361690089308049148293870537483968170777033171293819668930457818509265430168691287413179531118590816297929211703937668795762384634132775942995891782080873988587565802400954763252940247584433851785689377967512320162999686756648156049522193660415989825915648245853816913781805248740893836745363956533208382047889450129873719172782296126910802117071222823686915665872370568521961406286872853025281291786944309956648636794708665616793130331449329114238358579246543626689683377841554846241630886188033250225924421194355228178024271710613371529811069317466194179149839888788925497228802606042425498037231428993430759697615784852651201435189986084123351867276278839576027694064980827494849033663854690362946225523277283604306922374766599044559029122420761058246616681160025300733905179089014933612869595071069762830416363718473749567992084921021861733225762571309892539843360349965517241204221120844894436426405752635418148243699731159911511586077323890977845354772010208889549973566635333971661634759036595303282165954218539546001574245084587197916343665204365320824000359179831274746436464476221539748596056673177258516642848489280094970091252657419256910605843478343186639584217952436431493560498415320061548064283533803162133341355666014663443068746063226400587518194226252998562406226777720598950032448464663138737039313143352645626249629331771691561059493412215075640848405098898160900575351433520870222818477878223113942732511504092527480563675914731841998047642127682704831465445883196833812727091395301237841851480892252327750241256537537511395570836763814690763606820762662937443960836048213162825260566037880555970364028588835760947123514109777563111679112638548497970747338319560939453884697406154106647817436693515472301468468696928055480433417163094682712167171218267153217621030581767884620521824463583087424646216531935875809699360907867365886919406602123435452673999225299252698491485985075674793281361322811127361247245787637332681553206424090232346042027223914876099599599621238874618513439577304792041834054892063959028078032882066430910803831134423560644128525971402460870418312684127374097349355580524037311627025116109432321349170780249015579514047301354625015463826633117566410204763069491547787148072783102556527186810051534845838180748384358251645667962144657908414376495521128072011226427687588881485359995631052373911136390190470411598132175282342124529963110331272219352027577139295353026703746250043951824390370771503781727986956042965659163498269211682665527947741502330575967223866595342855275056367533258142454920209042308923450168185691892515002761358059741341781577483878249373147942912279832353055222798494376076472468156988784128512596105424211158061264201205965319660234670124256113258679170508194916508444066863792610381275482185039496604550555987785444125805201330299105400096332647218192448761285398543071515073244823142404673287541656651747074663957156376887677246618799641684995734752404987486995148635887009925734305688872795819989186590284146256545706962324214095872804836674412084294370424476359394705637705835069899482090008999753156740371072770358440976795479697276372055312737383541353590651360016836513678980764604941236447007636069824129612041129863776439135786874181163682584010040669977983154984788341319780318433850431139244131056950736550224579292232316810713078533698095538833942872076332054037358013224122108059044432083387695591658309650380731320028892531572679090275799405714601536676606147670282525497256897106753957813462637618666067282720939183894305326837366536637837657235447341800695412300950866536446815392113571327156312265483864492969275322312958052594603799545634692931817909773420422560248201395095208529707080597695133045959197901473351467232319757132751355802822718646734775472010595352708559175393977528101422584283374160404147347468066217213337171851046238882927718501662901352955649134649956387630381960040445014496484268509663600803768069356864122541128637744516163259000330659596469774103634917210852500011757064085996361663308106076099865865737246107634777926295172123765658818543277754544857027614385013287094786850002591711115593623458079200560062861811295647947986852153601898233170540066500530251061601605733092301346657158470590488799323374202379493493605798445264235739685218772018095892521387211620489129363992689129195705518494009671972387708875959052231080611409626732819777114687724094032741800325742051814934847553560862701459058973804843241386116931907349763943611923646868951839321592206186995734131539141976368027244791756601331605058905103647626193596195910447752897251965517994561639927826859514483178393128605427067844491440750084958852739549680765849894695763864821076447748899860972095217642972001790832804584546142377477188374527200174131050168110991552230552019596169265563588083988401795542005437774046361012982699727946092961522620032557665332046963256542724354396807188840724737690828376014316991321762720575520686066645793411380200866950587219774135215324205253045201641683638966129710268674108087786743412603570008971706761491928823698793681933008385260451717208570209131040073297683826680250850372526549246892091066618696796697210341908885312607751139442913844608710505446960949548963488376096058858244924827914024752301089037867953711967766509572273297393966872856076857448230366033355310071679036133129150484925621267343103350574840138843579435178736781261780333657202315791160044722796237015035536681185707479590902727865691031564853589927391617839040795764491968153326046177559256083129666602004416438300543256813688691355022304723626692726701524373652384124299837403510403335852290575179392453494855802718835908287006263830409591344653484686014955216284083081494030110706404472017514748385957563373224732411895686020858573204895578332901473713225874780204073059751829384468953637946000480811060586236732209751757962854669045833713340388479449814808069984511868061668534109683746762039815079693245473481872390318746998540103474551304151120955684805119872276079162033898563376355088890229223715548405196212504311172189282775384788953264493275271039224916288948786023221309735098624161401072163474097802713962264411858895546901664640253626249441269920856589162895030286062367680790163575529154962435342852835090782460600578996634064259437325689433105074079210284896836023894838464535603335712525419986945468705981422301642919938424451605808968885605317393496516792926569762554327972607550750945433506946990793439941450120104671355518097290775497098025158562512991317155663674805481746064627726987860972749143308080902169986892966595071665413093029556746509259957421187859744043907239781617081801803858988999222517704027075040932722292942320767455946024067326210090841216888523888384727496515198358630214989317255892169978607703188411018266678711597407224565548828029406602203871620273612038605190520508885347332931829286354564937810343574800775186295712318438540184108688185968515548646903940421238039655738346304659539165258936056812362369986569884190170100309882367846847888914184046105685919204343428701870762441822712103784483946353890560648381955368217021571311397290140202076866362257166767880179874279544871072518764737057782295291510621175795433157414151581214073410379738462386667169964235493308042731494397483991236987886893696010073618793152711543320914271804744697417231006506022908270550603326596950687347008372343867395711344452439501104939249067164053484735090996491674040169868859877232900393987543821045459186339435827809318473832624716999972039788615135252630498531915628086202594975397762853516217839146974198536447035022229007787369825687581599604147465534734160318561788533376849152592011236754692961973837779859219692696478694306271986528990172884475388788586437630670404567582131647073775442403385512860762087141984060495071808142935507040267517304706875663596260589968836552457302274714998930076734838138856271298948920367645621517675444363990530331182101204342723049103522894387416979420559782671477466865939308895229357443167509949175360561679329084845729869123136360013313726150317639085558602515227462971680454927101748850602131143251926414876558291267285292243930410835018152877870333158213916434507520274565263550526863198776987649957958023867386255309080971969742981720405559940150869212553615682745576216807824796018166390224293563985202251114730392486824110164222479242616472095498081477013567480898860354625848178305828999088019362015705458362738792220096726332751844088030204412070434465412870807239934496544519464911929945617847287298815095371680125405036629958019689229020472174098868102259897129622847381470880431623003547602337757384376752919107184596285936799317942253475418845496860437178870628171295104506250983451031715969815136853481717507415754736114659477211730059030106227824462600796719512033974658943945389514467102565531822617041464240215722495968713395129115867565274179704788473333999626367701909462819605968014410371883685802436189857843945593168167217814120700498436345905363766296543338136237743554631478350679384255802027568943282787423964466855341631878225373960027595231584964995428401742756269529174893111729217281224752717816081844722961971938482056201010191488878480743743152840276569132426708001522049062249003511989285915650470104459708273870076309418381221166152404211492456016147820492345818074149174177804848524575901742166360781291385619675035615518411872791543097686632488231661629387094933842134497328943324276279939905418905510652646156546147194543847125622583519053464302480048618528112311762028031950948142714705900862034142747767422986383346895569284311901952394047433942386722875469864139293464575940677629201196804160997175616611856380814517422865932705098411007833964893610332123464352152632171141803525980425655393271845734475792907866944625466302542437686850622716130346281291918507507872938696281486672096139653922570985265137341205197919013032160133378984225573371573340553184210849424040277821062782793289912384162905754438723824504039210347532025091022116546436522820081158437255389960086001027397050006235058529630947809690119200922810934744050567897746698238342971111088681001851923104433781597228135292033418227020911573791342704797630055812063507993625198141659068106568536223140379563537635883282442017021497609166181893872384711302852233504620562299471584300608680047302835614969019343239036240711681761554850552672201084611626162636496988783668300988307051056269273850311660198402854176632092352083922581072847223772072304897817101298462172414895562710238936824297573225879633709346991932790632785241437723661611815842800976761702175191775072940242508299581620519851728300853068098079204228830909394386795594561901771853958494728447386861369707704201936474332449907410910897509654139720727451717873826413952099936155368310820195767637260643674122504467423752141590777630368386204255047004194059889379019536267291961137601292358614647559930515251879134781418258849267260247806344777715114671422734185588119003390172882564944222399180411028864141364672324773035347018207582064049889300887052475109725560526840193317239810346906477587088996353725958743875350702483646581229320585400411703869600886753836406474465246519388110088119425809818807820212049407373328416992648244932945694771042264639962408812199091160989398348323797560535482795872030252919349458748535812041937129456982662218509997681021115729870173187610255121457999133362197405557578440171723400914917951938346833729539249633468600531642602957340564581384224579636419238087759825097050611441460562990409301642098933748875493746018484822351447856880375544184911358366347008713999560889564106094713736631580566522024008537414321361248130130999505798394017945308037724992169635531686723097316465758575583184069625907066364148618553817451393109928452600634422786398838701930939637548756678285875201451440270503291220075223678314866696914305638486988036342173371257970301056814268391360012998199209807846365067863510448938881802765312403470877779781278287206689561051856063465864873282429875439833630983527252023920901554650060563396731248057508247549425000995449623430010401944935985773174393853607402765363957410862047004259216901019414405425269658662040516542712472156687414123811065441828093843045034959753172417380808316793645400301208307638491333392455581738957701047592613801160810355020285978957298086341382956594224659993666428563302219228822361169391062793767054055681329823689788834697499620495030293023383337804573552843887726473995645019784490108804449848810297818486212293663134503427435057722451372904036461423544205570711415890015618712848780336663187064991587022148291235995557805344988683004657334575688549620285615663758695764009325280660166877689836782621934453915949015128057307627130453239011420990923591767692918249444130756938088783618159311809264214076923562903632253451417493738705682091560259104896820637357942087575486489678636995105326448682322805996346334610203941427204032180670780614720385192427359715552648600956373497136568186522367992155824806169681320766066484613797373475299585843083333447422813992253001145274502011408494077107077765055782336656737417146906501609332414427735569644754130215199888013489740121051722158934037273009679941699567174273737776994838258315255363187529282191324316129110856352128481995075494496696691985667263777718173031491799104511328518005511980156272560732818384779665635264794394694773812704982213530239461845338138164561925562991049463665274171152067226607794310516309450866816134206110802112355126266180133534815331879366850218646059825064820897499605027908089563310246938983127296644526827588831730464768526953221375285506794603976928711238668438835159757291969801037571690270331427939590903457989112044834807751373275915819014457943052472096592347107475559020720549312601042734196395041415970002030635271828884162878542248460698817767812537559981860487686970460040111091351945988256894788780757968642620827221533179818830719016064778488589632280421189672840830880203852162483848035047894867980050274384272298341286777235636303667271822966435030821619661445000175064744628235134806759110001266132515551365256769104123623927197323777406042991657441327275420414046523526861661125406581419434899221190950605749859318073511595727220441228852276894458160486535719473635620476084657277090357089580873957853411952796940436060096649773712582443254756689447879971540279992964707345882489042322283584800949671260963053212634898466250358965170809884053915969275398735088180959186899623802327151920913596302939299215704722194585329828635083453510846718538734669915876561350188800213529951133389944745652060161164400592052814794855589680784331265644048335918585811698978415449386300351029100208779349593224730872974442036519828565846557682056966809782057511906514912070994439247807041957759488776381297004735444763588024838633736840889561027832600170667801224207278600791136836185242217038756404232689051939567994494966340059103673461052714885769637539635994251469489898867902469899433794415709127763196635113061386121643099133635887895177602956785769682602599498619642302545790889138199098591554628705049503439250242659923427079180996737256053745038269566223039819936210802317945731586920402357367641381667310078889111772368164291633406565341071311858940026386361979288569030593300571496477304678079381673249336834322646323436061073982586859539653111864833476297705842966274228045084540375165220460215153363275258919986437453116510868189016471410481510233398461377895777488926813578675460046741202062832983026137628496314037008056190115149469393284559846063989183457912009725446183253752470554668471759196477383749012835743375377594652911884209739316491325804044445609576824532457774756049248422242061985535637785426707817614461636566790990588798587845280528445137512497467181957980856347520345135342392474015821535591505361822744041604193028530120473224370117748089933534033634672220576502915707903775113758417855160790588881133712226874378451949392821609409714252902494162979126866275741314353123280109544351906398963849390100310810974358169015315424317933732322686136979210821592291232194538426748901898051151129447020320525403131498292030301431783805570996343860465212663820318944388583571254101981123261086339719135124658693861809307462429265876138164733741028218126276772277052606193051020791729866948637193996035499254851056273322047544220750418666753208455141794514806370450596568888564664918519622329468518511011348080276939224873542963361077132402335004126846449424610871973866648361626429008545348039278987510500819424032919171881944961430366337514757643515328083835108739023331792933864825988415692445148739058670760258191106601586485674286386644604458268652323990316849987520933267027158691977008628407286731727059981104122485781677374265951633697341470052497258165968834985434360908770790605832543154616242316226680201546800544539314825183343856278215741431752157624931853650700960466032169829945077066476539220756016642843932711472038251008656603684320528807164660816747001668789373545973437500296270373515439771138409350981552016793943982595509031938848463273088833613514721239013366373103865908743343350065183966078293496996876220063928517035761110106480324807560801151949978072007678906427730238669442892727148228067830886113001989367632121572649593097532202297834389302020502620256136181235183669104162202410412571982955399420046573338897824471027811687207191539067852175836865750120061774640393861869949060743525661867213133047994819440436401788293770789816154612740115439317161412033652445833645526265553236892137209358390718483624567427925470131810041847531478754807214768328352000654804990285042181514024031555050468975885706195249030250393998077773339777586548235955376382894266210341031244735771011987795827985850029630009761542388320329207222108316036469395243808914126336772029009449963591406584800146620328904399920674008351041958019197358555162406926637855764415180068783307299559498485431899033606464705254004956910267073747183421145288026502654025201087348117573168242524246548475386498564816897682996396971276766118606343208669134296621023270528890941308450957909018218703395684380250122568787634840173159561104921563257600180765633322896648309189253524767138061555823132412253331099611125752045351185679704462543071842180211880345439606558320591289490105386592339030829866343656624672954427011887343231469349500499923138748099000736754506139239465562439148518321777904948824870705545201960613416857667900722617067531251332211088199326700329232527179918338798081241041783742971295078290011273714761055585294455334534014300952029489308437750102764593236740768559681658608514657326768042231096313005466179675711886653737754335400604592462917545816775379071438412631316801036319574437270584426510094313100940804752232553261392835864529707791810952964041393386095191270884153490998091580655525025844773668057253498200167907926213008670710750601687791091140055423424467686852328120859217835945721690842051182285682520021340144058654835196599628810151304123446321874705603618628303403320258295198680101657880226122825469856015651289214987121093436644736420558518473507802291271266237589748435982601978267698555120854029123581132128089029062057862091190932286167201613799709025746827374999705097060196078769690377071084118324897702798295621255209647682006732514685290951164324499493963329620145421161288119220061315340431294906488002670455732127119244422427858095089472987789991424579586057644078854469877052223401032333471288018685870375772649135792261954227349616976403949212855960026382717217682780698450186184652952144784961008568372564785352085341773087041792946147467413397384167354221989355625400877527343974231995776153605768312986268673129794795521821250742640302130546686544530230392503767214077115277823137065254025111574465838689659418207174991863501006953721791957602200150699667910469186323233464850162316712978319248415376209969585492961881440633274731490408156986233682463466997401361135677321550119464283872764830887201188388303353562952524190960947005270884944120712701433536694576428841058217644094300794436873662916669406376296636849678222838390868772465872526415837665169505671754752066789387831617388317552466564183605167272623077368279108786928869804461824559401472000717706498546866527308602727250268765275019218837131706151530379030732526129595926609775672601323187237158226055156272924107460253834079980964171794389992744356973179608973725613357277795479213618140694502940586096266682499713222340027116211870351272685980075489053641379895965608321239635549627355880926624374380277774102244984635114963243201134291262972529072665896284873337918794320336035073305034771813672947662607300196783088489305890255663020133076160306100586662569824823892813069741785347099159874222035159480813997884227688840679316610662962515009659486805959306332377793086237615971895790985723143085826036163738686366944029314605086136026476013414226398171801225153953217300887833201677023110665818432552841399198614567745570667941636527430149797481803628585817634941985396869308628129372134008516872357495244326442790672445425958030351488363218079533235443144490021977833636087639552510030967954326757511500290586947695359120391516597565748561615474377553248602659350102174619264677044775582853314990521153404609779543804694570137422290430229587462390778854348310481185825069829741059159092627702551078334083491273383541167219410475192531605197876922027249795259218931717327016227270366493016077213861422476628794019493007393587237408549988596364067765838436376509901378674061804487282612110861532917697671610958026396317170792438712273725988395980581040805509186430396348359068513031893934700929952841177488124563988323363659425142925013787881741944231533336133745737964826901134208273378313743453322659456985966321457044455278452861704420227145972053006686510690327795007367961621424098530538562813806603050285286165927159619987793330339042176303040543993071267359532810458402512200141192411917736842597791315808432894184069169535518571242320850925425928925600029247053158005620572896582892077606369183533814795742009809680059659191435833719379744041970862783338894225278141962818685364850832376545097100617961440874898115294907257590621273321614561660444452887561023494748213464974115542459264469540174157138843377797248837749994152296686782917687584420447415002278508246864827321212684584830790717838606390740593704440716817854713140091093185708083453199080726638547537253986127988285566349219778065650177573226988009360705019023168552789009478033418710947199866213810733810462847486723306648685460664010297911198039020032767876444172350204465228405930581039907750622628508625681654297065936965260393099930033543836359297239251900062908274984597943317407578452659792588251637713654321465894726529205971187625580292882159375013556206092157447367911970370604616340184441668928195327268340022408642385522770779121902673982041821896998717180798201562156935156922418106412246847852476793551279381790670469438916225834877160980368967697750415004728219531836783870556590560078167916507203582407638790948251570182854333621378433430742150847738037816852559257792564271001610620952532306420528471712449435482590947173128519016562598219844800848294963609218535077334352392344293129294189523089876731124240040918175178106671875681883066413277103846355766976179924235420981194186253818731059207581814174728106954315754717900398277747837737147980668290296330911548604628301556278271758585475163051632420207222355008275156564179455323108970840212767173749253357996336264351154673808739210908248500848547587508844383524863574759785199810544480007612991586779104504384413036539300227705954741523452501579084147756851097214042978217094578406637244634533929819154683170238240365946771835605073359229228650847510817998907247361017636958383401287722918508312780927660926834607463043788837419068158343024762946391698145861012730295082021700889459754292196279439046248751464109709159923466388915492283361085586565523986254544466962014342362127022018541555990516023117177983555572524217331513390206697779313985248012503572127883570566932064875870217718589224867418713108967793937823647736772695910070188068717377190565954518376389133694480251708063475226994679166021531281685707720222960309499647334787411093356810629419537872694584544095655740362884905766607887336610324181318299762865718880578392760786935463894974879294713771939075221021036542616623344005189389448305981137474751872870172987305244581885724552194870574771264457915814292537416246705425545324210962616663088333935518719422549956455224005856423516390584577331676197815514010557061605574738914652242593421451086095344880471004315767815865135738197693169649354623178932519079316581194959838004779328556094136869446754992039592441597698430607439880019644017867067778494862794064009786810408673332597049337029774701368301421881851787338116014419614484935842394254629136266269908651338965056621522933765584676853581972381347314401279742089268557894781141229224991476498886464845493342454354903695362084904887913096159007292077856806271333219915557975320169158222344622824889703609804742703940587123344925240713012814927979380807565615212875470677183689152056906657954969361282063104110381769309872839446004850957102274068590889706714106264085820435931699171655158474829837081895257678214814580138129036877919407840267180162044515843350040666224566291946153933223963142955571653983757131144051829341109489659760886717572802249509614589744943182162368567313335138908984983631206723882434238638497306704282986199391893055477794210210826957063474773158550033078946426889326867269164994462534668115039337804900341559822262510911869430679232843884262722964538638063969889424369434845586164339178124184534508701450216425812911842082202644997553474601046177119116008919955910999542140855434862521293917378012598371246665897628610433108203884728794256701189669611906014335053070585804077227276541730221457065798580120153086223270139958232975029686661428659805140227801639164055688553902579697511316237673210743548292531530085571011547263015220169358530921206028730615220584027340058066330218560018707746519242737525093981912917486994915485376617364901826136059257348292262275167604364368522643952536897281799293492820148836710966190647323866927498872116427423920511213482077253270052392313374206365818807799851665927938532256107901781793469198842722485057443443165548197950328258416273790750425633568430477691056068001043504028746252223179602072593992455536478952814811282199147085765066931585428823582097650425596851327508510065404606100308054755916772045903801203877426607371962001730922035346926894857401473901736877124168546921184122726793773893475158665638349700805108625779177682037323907609576940115893677867295994976827634919457466144181892248991778818620410030312409738323040504582421305086780871878223478451551889960027351954070494014755269321899619885637424770479860779481635125865273680089331746895722847734536894821379034826115119587215166341993320156718646622013957516075791874340153062631310356501919858885140425292955588762223830929359614437622592666308558259099062208373427547488744126359648781616927234283600068602201151878690701568585212728548387070075658578812449276679569838921101920961256252457791381518189612506438949243990731581877507687710102234384976052043141615922742560433318586602643315949382150149082593107845596268563312871089845104059093770221749268149300331710280767181384648957825744715039771890925490654354699685323560346410382541733556482097622405127486041531790734732835814587149019217943235274459692158400935576258940051077395376456498557980111406934066962699032783872231158524038347475704671410180139735072232104057872650318907694819309748380483450332411271137285004904906325341727152563286479118531559716262327529666360500912687348277862324295823428440714661905393904401355611291787122364019258955089815302462761906905482455549804018735329911697669933088928961165862174340523698121765695126824469172688692379417887073382441556646861566943447573821092601540432509826506870903265311782916413936713801465850013108388135305620757738110707234127929005948698036567571601501325597904802244228436297105893147528117701506882766733117678143553362110799401548997990653063265191525121243152771409352278120715585402700526806255845458680815693230213113876788113163892671814692446776734742172175206658368907947869980670836469723318824673011983468288893392023466199477470464175090342932987805010351598394696622137255566053884624219845454016812886222607734288133199177169503428092628263757034673670623054167503537785807280009094244989364096145799368099028793997749087382102907398505293621097002728999979335589954476345673198228006521631759865627642890251140767244985424808386916289205652016354496380885715376824385899286887546523867135100660963676045293639519236352665964575731318441047768534479651060974784483306427106082091973286384766054560565648898477964699270881662672671855592097188207555106950459968474594637484704988012693264913310347881869018257881613739503195341901408970943057807801269884828200452762465320573130440390212869119251779510592986604405263115273266559061020116850565997137055594233798082586208943921896773107460703515105966417389819538618217669448267937091708501906310919467379753397494546434674947375764472828572368334053872078400619833757908948909162370370932708280148290191428436256895916782449974144587787359937854581512600728928149074989447276007021640433227618469133013431724542355353984751184740612604358281568951197532833390586055648028193659439514190702838697075924769305128758317876379341756305514629094996210249198134997434808679373947477216684674155276166653691380247515913553246165490912817833087686406265184969835673540894054090499077202721822747929099688763483991431962100752721447563940356455243042070108624796442054660241330050775843547462390263921646872119365206743395572012631435306743834453460541835559933796103165988978703928166725984590855273447397637567144933478971778505692227808934648844029274657564770745568282068397557742037566667071413895936209223871876934203481261291844145626468330462743006231337310254571386212216302806300417412103595982397471588765645802561763032699501146900613030353007514732029396585637128726518472014106494116209724229505052344721696326494463911772175033099177485778387286857350509271997990192800298737018825969936874690893667814364150061140002255055670137691185429599584266752713148368945570239099765887215012299027991975172529665552396155778379132596403089403553473047365047142672585685384109734153102608193859356453478651071990193397661537567785728943177886809875652806022425462355996956873661271386631663704865129101701485684664041644540869989536955266516873846991243287302874081441501062784906403104786477726174047130231419116703789715438708308309148257161039003159671682423125821993078276217271189177299271641684786783717285607468314535128040103186505821578251035206207534400922915981758036023608987607216309328147217957697923064080327976120719873647952678804297665144000450538208411360758203196512675679596314302377264919799478874801675840776675478211020681891698752079504765907189493643886904008713619951235011704147644340869585212956028262695272608475564626234835919165273285392826511737260325583167170708544755921627378910615212006575545381322138349504426443162120843394691091005299724630495513466290978705165821832632422733217934133294277200962336330533682341296160576108065813345363259970775805468509665202395596238304779273196960209073592925470114494420924902306552616167838718233309042238094138137459093719095642550391685699518025441089297245129326080398028090471514132590344885070056737573032501567238804020936349853974318211405483355792801719304709316527550055787244315985285748754578085925868798787713143567297298106490646980668029461171246293041302022741546386269162832704123356174043726755176944444721860570696019306323577659342170298383474480040723134498227368261115765795178195452718791757638216455045788447251494592884741198147975570916882602289561689638388600772472989762346697973801549581987789122689703214819319783148023531353866540402834023543864013482013305883268256686900477795421403031233273795424748471971490522921260615637192824621927726787915535195675426298549702476452771629041230117090623422424659305375182491602980522629121616127460313673485273031442961510709328619972442491378803331106556686561498429525796225494006750894007617371307529670010996673235534203733403142354066491716456014902391473605411798440087907560493135034360966777788308829504867044831844608891916198283043224825596403680269624161777310190012173802966286031336356322835531409261265922111340652907753179783282998332526043113205970674376460500904370049040140810393361721705468670944549752610002482386562705133419813187206661159170506243658700523522467593250463142405383420742222457979075368736689805259745092044207761046124425581268484304286102459055754800201838303673953496096100551040078582944351777324949708214145069271664345142783451933775051723617383018318186206344016608609763469272844754318770270180002825911633693742459661508482819359858150058886353536997036665118919922361040171584923619036809123934773335299837504788438491435424985662576845485260802484632391622379812607361020428680160756421780030345300131715384442010570438480350823950438294841073936112243725963264621284050763430257749565139246531344058721916520365873129658007912319476993914610301689751959946475297669490190807014249897947625505585790812830547282942977510781500420165803207788609426557423396182132117226528858256120591215682602451497861983210326071029272749168451631438422579254577810099754748023608656279227400397367575428189834053482085904369942179376286801735007892153536383044587795579985225788772052622285024664877505993779339073450328963993906438076972001869435114657354197913211372839814168360378205768266563042550477569759674665038761603391067226534734171082864362026341368464302104774898466848533721024329837455626218765047243725757069453252455041028990667192159508500285980188659907268723932345088173979965158039748934997935124583520957599901545448759435728703849103563581444453812609809913396237672245729440322001212756872901927531874418092792288151655644319215297770926467764751759167649890926592245038809974524174757089047188711252881219096796990514465539153198797551375808553323678080642512650229785773599362467097074394516513688623975054468861310328659142405621956362244561531374269297355685243229582914794443787068985528314887255733920658620785532587423763196128935197897077066226570205507461814805118144070797432552267645521270358485418799767851334484739930521581543489092179000314921467426041233862430140151399519213703380226687446989613242566957907964332973052101481666047605119884625769868829218648902388246886742647278441566118379657089321072225658064198268193821213230368042562460125885511936825135513943016414281876329290826954960579949521756657105844595207729730198258646394957581531503415952010531382511398487148648162903981440632499154376053237832797421489397451369014818565754401135176105452914113088447446935415130103773283391914378310954013282895322548363189994206842692395737628940593382043783264246332859053464431527412817341853691448609307805456714962964347486958847844162108035854902007067969458511027915120062360047402606962336868300973564450915311239605541554555946264395455734875081523730455877179442027813707817687665870302079233977963809678882487137931090482750459781533540348059538118903301305684124595013238677382483366059663103539451794230765005804370646451636499036935562322985685137972980240113914711206926506603921105406427760427436738875232034796697326915382304333426197042590241321855573847518389043786853922859268888517635573015170843299756974268786473696966266854824191989801732635852820250919798630243963495031171623675589712841018790541304512921386433006363295175516373990974816186297824813209922190904944901452837647375169050885077423279976536483675793302396321504031129712757957799071864985948390760543464261733061897970398434310206330867892693110609781372710128797365801959467899987774724329939482202368099162852826571691660511934841100624073095149528870894111254090729064248292722720057377736074874466877713705433317438064455569465151836542887533055795521907479975021559751627974262404515786868731417407381814239755783334010896242445666050592988130543299559973425334485844852934092832300801377340685715312633970629537913065797781449485100900341106677788224125960942625994045302420988504274654840566869707198832884685702965062419182168380154951748806633597662908674680831978551737544767596325468187267685775430177611991674968826007831410578382799594845819080039402984966368141813155090060013614597648130778629540745355974461492601451962664696730728027848857134198920135578836698150381305479608115995691721286395063523727586738178069172138803308280881619931749555388602288928169779689156010346173569724417715930766810110851505044255482618933565772917495327781157878477429852521196106148898250043706618447762115152689468418321018382531934395948898953326629739257339301615043003661858663287604313153701388455011571864793236839266245601413190196821679469310477776925424844356857077063681121151401004835498345738511179870960031484034488627877763747198316542773969994245770779261266254702555651413457513967104948983437565329992356586145426572650557536477960118554411522379853847531002048880504860671070109794429687973736461875871445418074015953683959958804624758378872167190052709478719577002974332474238020926718713398369660782384790588205281157559524643615904259513351364186128356830074934034821958026609339338521175459188585601775170403579900136366402972777778356438115971158312655638232365157459117945654437731462361406045805257494687147859696858667403924956330708166145844043369406368476822182607861249489605166924489464819004615405232557548220247514386783522377165245094934381632028569389047032737658646838501992045173791209186006160170404729739953127984727290269313474489102908156379697397382189498126921626951785984270810883592582182584963086700903734482065085407180122446574292565567530301639103323928659162866777143802984056692156783403350627344505657209557254005502288659629014513719385594426517910471083678134013224472860089726454380598786935406253510236742292498989509703112067852283999269656663504819214163821284594109428925461624298233739886107188937172443645398318242953294854438505389453458772188245353274905822807660377806859405655766955096893018644688550178087225725705286111155646038382960402028173052799866902829944792180522523160560611908283859170480045685137649438979209308712880523258790072094372764906586928176848478233945850172136130417614104700814362337155406260064328428788646833459758822772453307782177269306923562795390078456374863251819663469875995189716301760087250325764491713320053707905313929014623774123542370878661507905991968924331851118690284772474332828859733526812235741368761391311759306265200585017401536549879190447481391263847673881327994812475255965837125068241092647542276913014829105638700880426236112928762033474291487450225718001102144748980649560783764774864884506446494483795354898616802272585440151892245442099914899078158301316699953914764372690203879674165763667001486206208135359430135447406548843914940540664774631813173853697952663514903767661091016590449785726710264419367893314908271680529034835545028621705059212800978668523798213273949992528347078441391188838183612753146218641010295677680252588753371781114397513432136034806971394489865610235358711031343039792625910368490075860672264778405301678005669085846992856999020125117830360696383441428174078057282125176872767014901580394632584010502049092931442747439040178898744030498691687132896671890842622636695764572228790121951946504112917002377358097656486300961712799818021725942008055485314674389939566506434922518292719057317394807936063555402052170218366174240509956486371022329608365712017099709846948493548224947271138084977855627608006506673992592413062981071850525430722958226597554734757393545793991514700268809107593131775315129139261105961529513216043113007911752409862872787462670217987674563254473627493678256163265481062738417418361629592373734962492528089891255880485047955964828624744838538852333427015317736931169834088330484617005903957209033537223248288110617215826856692175762771703313971287853904064356680553643689861725168326700564391919898993989540158845832467318562927759536745713003645981537528248397578658863615065937517421273872738251740891903294426832528020155405809946923057108735250662088118995330159672712517915157273343501451962390197471696249267494795495750935607008690505168800266966801133862155021300478116395162416895987106741896913779539267956458760819197247904557769064071684722194357987412555028988750764104569790454347183477867624137758423371420376975703350383819186428355224800433793176713824311552147397603201253697206416174791329210951419545689459270842600516211249486056165859049975579132250791764689533582657486710635072614228602203745951175937243076270903684601240200910321901827456543768239051262804534441486717027283222102520126251077920044506506557111424442973510676322197202017921020081789939316116274385456106806818618117992391839084869713919531464964659969744627851443277143491597496323864509385903115935835674160471011954175758020007582117022887485278715700547705936661598995489596230037577382833908565960340828654389569989857094806522796534881816249673161941064522545918692327720643348621210453897860115039793698009244875934080935184011544470954194990691472317092207484955363008665077947222458762491459836309559350993261794655332118666908018379077174479851068587008123973223625090044932531994033074396565767425505772676907025252935944454513314312642842740314663601403240410571431642782326145144421279199283852043611515674936173863712312045284184399778199034062663987447413963017810067698540786467345112031535537228701407911433745640031967361736446102769438797108324929338905031113025187378648583001942539557127053632743114459546201745299053090117245431730541766553233420961690365555332744419771707500133217692279361113999549964024315420036263510006556873768183098901409407050444463856086365276975138030609907464343936958971403627747240234703390827313105413661621739384856079181657684020737265185841575156883245478594316313405410084588524350125132360813482335008154365753281033861281724964234762994711913157729258068853582642753744589387753889475321442747824748127467991813099588546412139333679120290480971666834968960491227078717263740454616989945267565013245563446502541427019223150330901212918418945345325199780689405112805501831675636926237647126334365902290650246259667947327111179824199726896545381448098268026733886459393255528438237760515058306572539247655315986381521466738845016030543459512016106846412116053928152905731664854359033703130923161071514785978054895574254495727415143346904240477134388084248786100101493248973440583268270550019240116817590235308552835661661723743990276237055528724259517515628385744597977213585702826329122230296140333380877391551948382238982572848370166199882903676961172126370242260008686228760484850333325054993111048740031221179556434791258763813625731937305944493772310264892396235293846817629398638959834318869577069197518038364592864828251225747652652972971229504339309995130209270923764538687006235978071747385234466885960739328816084364278321279984835940114275158186321346084889749678264550805994332536151823549822086822435315286619152296994832755792787780979828397484374139671582956425872157757828580508344410545987756616024665235941882980130695680269519823982301117834875936571789260655608345237166590098857898146913675309659843099292406537721207782361718247848557636251101839105352946962262705558221277104657802031283648286867822174508819681555138786892372839405988308623442716836274998482291679153029069749317186110286895340092250322126902609945660956593441319084628277885517659789501730102315178846495502568798954912360060942541248237848465981440877327541857179117434536312017041117869103568774327162861553589391213550777877374736583726682063508367669935992716601513081794817656510764408398134373850465948249813190997667846931091985808245929152223914744995911889296651762146158683115191673483904220833843351187905053484355216919729779886552836054494675230728735023998046370581948210343291439699170843625481819985279482436152379782615164514070822661663834641919742314768715096644323185399196051230621615071157359504456797979218513632853476812352557667638097371609112747594888879834212079076163670841052658859101564939265326060124859494835554349882821698709190218915902024166634393378245065702715415401571970922885555806631893471177416004349341795066548767450026817263958389347088532947512835724627002963395274533714889067609681886328928832209383725515782043933057018898078715222781659457005712998712945608039085702435750216342252071307823401168674178606074840793951347631034420838401569938096186148863888669421198930242366316893900770338912089689371339035029298383598035250551180563647674682495260763167836315680420903737614083637758963036313209863635467171656635655277214263349313032739248211631146932184361151909179283819298671260202170699248428619044983383693133816361426181692645016525360643819598898270100126489921502199001390136014274638477936637520918928236676954960644406087450371838372295304060645097286800532054479326511010700891347837741601483094985551042461389693792903857673049143871838460401690302766032379699400469161073695161594364482095401430363533101153761683373224705152665381554829298542892620115948493124770828399667357938817339421237718451962052614102412694993678344983304206863499580714772812206710757633395872993954747670133923636379084993387128215146411352811647757527645180099935350453548397727861315664684712623313869884508385755587117729755816760883317535156008582913108354647170787290459932455694447208230743952693648720056467828484521655140910890622336721925413299089668835268367080836088363962165525248760848770916586941312961109671971089368911928363838679640803465043689245709024441131019423174841604068451037645419353849004098746836879951490267474092642017108161087963682257672442763281081395158132811907444033447538311678580577475472004730778784093285504428701524274099281002521170974881916852708881303153894248965788214008689628781193159873296793250541637873011659668732346114312692894627711203541360633226035534096044662880609616337788184553823350458318568567256799470865535691088639916035899415235544728785615883420116878912320748321914051100925789799871339967386164645844661090980746374540839679556138585653863486756335669973973799851390114951531559073257406818189970212698681171036380543183816516562246951107483542695667710159540640930502517421233860794386457572983502300077101276581534102694440758673778125418643556224178833440382417487378872382858602631706472672623791983366260389187174711357759877478003151639069444350213228209386757904954963468262030493757059374189423939489710589869135716068457476176842823936055857502415347493246878567958105990213455081818334731589483182075284619527469675566553795311673254340356222383310289897218518652354734212908305208915948157708588845474779452115701421536935471514956169486208920156325646373240364967551953808726312271811514140888231531211398252659563345881394969758337934655681825232924339720477878794871949613232179670048884149162629793645415687137058864811817499354337973165034070484071188512963718564344970917638108234743990910001882832884635889024821482339782307815659439998590472711233820693966180860190738346489987270729646595219997481327413766143878245208045699882412679104195665467546579603448929561146669746233174768198598300530384816839706628801569453639765990602620616655179276632949097304578540303947357454708629737775141764759044991090175480526605501149494349466625520148134923517351281173726018962543778963079941118132110282097012389053844731557220350675241851488526246663084106755989043596443516554384595178404488659724975525288301712055515455225417605278629491832437540321195484452734120967370823827593842775853928622736436556656261359089436492600327410520529798822407373625813271621766098735058516742870199099623729468839462603335832933122248890774045578926325197876221588196790911289057030845781734690515098359888203725882591515542684173047400314437725601912639723717470184326358104685553827253613904711671450719656624416031623827203184597330251226757115757800092023105500420518231390986948663550042821608444294036918336053209477348732210725907973232307261222644599858872472262880623683666363412467287376977609694608234514639965017793298350164504603484276203148872135949101731545462494699968510009252730675572687130267572903991356805715715466500525485204781541410995131928573868749996094614495199804951970051220457915216095222710294046020276393427457066240366571065241360309359961302482197525913180806114511089092792639414813804024354594752989293491285635592645310725668304789124252122899652700089834047572952692276602255606951680447329902599916880317708738722431999026218018409194955151339733068878393863564359084379800489835791769040575821596786873133216703352336516848485991944212160817583806359223582691085008169082855339842977158572766905579876935449061971796146966278808799574680760465818130533546213799798988435525157093133877851052844800313178832125636327430605510570509724668077414550163130436098660424321945407531900402130111550447690506124416810150581145359626776774250257264408841153096640581426194323703911954446933839111277320249507563312548122677395094526311355053512054435868786548849705821456735148047573952132137081735448010155547295589240552054914727204605759381210242175633411336835957218809516153419001662458008277869092933288526764919486249518181021503576594966786043849751414450528434578315108482302427323096326440826488771790385124422132165354018025776834005912134851654111148516139616590885925120053836047574393918007592105072804073071318759554090699210391382164911260367176478248047191321902486205950817645364861765090663115265626578742672576069662427518990882509288564799265490631320613182028074310573735222866244675545673067772790469857154335568461830162282642784389555405005945231172789829622588587707057826574131159080510377989123624485785888831792404077494426972040648995887818738137883839529576345988991021265636833759782175267785142270995301271007963961776213450971979494557852693618950183166415080787491065102523288125383536704183576112359408631710086077288368865500633558172616620939739649855370929341695545791927126536573230284728477172017969201486110001473255973012166242403183084812915431462489293755307843583591739774945190269699269959663262752385829842059645829476265444236687706021394290620395278547341618902335210005647956398521076632461011785314371527962019560697599766630563767787115907489648985771841267313205172327941581659703088549113126648148838532512905042205076014338267417706038713274138291311141943600876104215213922709775583900150193967677832244974903528977171609848601820365916264871993205907896026568040816321734167796616201235697960196191669689113123309960750613021841885599642941733816224595839722611477560604884353969630333671928590214762534914320624614117384221165714936592850808242961300953468937815769624786611056791264652328999403599701832497497746267821248756137527118166961367701502194714820103209584274340412393882725569154232222981016350187480832050205731276628162626750007603617787835394131479536875600591945257773769724568198941387087407836504729286261385039672420255262274246188294189294598045498574535438123046238392832394366866226413331928100748863266989946023197996915786662566488442030828324825839716195187183367750087912357518005646959523831278168491304208192614604860640497197569235306003083738063471997781701687331749648974715578292856173676341857862848272237048940215150813318368602724220383954379741838418459941598540333938643577426056235748324547587045822924413195276315048783262292534861627095993781945429114565672108211171318295734993318436022964171359055484933722615904151070916342083149216756738362510179590955730677120587233819029327139533676962126753223665644184050653200517396539451580682903700094119257629985416359171482372669011362946594398890323051962432116119067794214138244112416878799379307471688538691010673610571266184907007159969432768920444262764926245286901540046799069305674565164566363775708045551844170710560397947003972956499932594448973986941452690653492228184123740330579372030924606696126286034530874799928515663856645207112487586964492204786802402443239205627964633023869615632447910411681465769368333012645751735296097973921144152831495280415526958142820969699549427246254322856721028150352902516597575769221273222003408176181252646496545993833875803250003332415447887965456826720805402965818750775260201799899787027215400062455466041823812462852302192121477312797160440060553367990346349032286228312806226888518232927117434812573206122428185784224123186871617649618125093913812081576547394816121947765397352199232239004851126300122851797118587246131691196214609263489245420003284667488632961555461530550060919711040672217216243890228629605826877366441604276264089912795809443894779697452396798595874518437321340941818581008420454037243024935056109200351782814873488973246218226539119739324747967982565689460757016187413713341656713719053379546315312084627470230363314060091139374984051964942448223640330731512564849919328642676512739079479949284133739115762373334406728401884475335892519611440260084160509661247761664205871130725666530420026080639371034430983567381988556775216728956394784246055694242861624048364320509242992694612050763824463591288735126329760450819387332187796832118140718846911164480201650923652420068908909408991513830308453034284461498697109752749113609638104557392574682134268010488134464126374737831023407714888080921400299712377327857424710992763605029701283575462994555796913437823891882594613724151267978438672116199010466012697146224873364595924930778992949296864733024797461556156782147062492562333669878717815084143712331572945846853895481643878400903395808247287146033701308983117658448870243111615315258871574045280358804019798762470760274314955449843418307020006721173912193262997487316677291254144877213770742704829580366712139857236575103708230762720801719686684231965485317347939231384408931581457459922086937214597632949680200550875673747041029061179430238445127984351903810554718214150062812518723884665404573744534121066765044816747724749311773342398913146103355249083712386485259764098326170163131326662025633449619148027229990747000618160284075448701553104880284364945658082164107521922545228496062945203472823553084165790067386847402373951617258492415730758913229133866141741851173764817649248693443054368880106684573233554833416875027343696746810427677509520799432790730142485493477504294863436580308989251927255252487118205578324728762452399262486500912721578177617824467123955480650173990519623114456542888275006984205071032867952102051184791180801102348681157171848996642465697456398607886346868989304012428878088117111920250172011297668522519651014519164019491812256580702765795446929665261855837887859450227719400407082286133694306371710663972512048634807278263161693601740650337150566190087228973797426117648525613989034572504693842051870063041149946529109439978710009344307372928448919012743264455552120696307014371619260816745571117435106213222722880715591814230286611525807087806985832906067889549722537797122828859797694914949420140633944253115356606073026757329084175934106334008894257270390641371547120827789167623269416042972058437341547847694420926407496794506925629462161515234542142578079895576590405355257786065913456398511283328361190010772005330561020683891371533788703184242886896440581278934083134965250783301443643741973339327712050759375028297173479897199502888499184937879660801072576590948049507417503509734100424339449839056444826604965498624990612252772806620271016735330783035844225771984630073504653953099769861921716688821568428271302998090627648908244200081256836246089670920081404259599454271433807602242566082421338006727959953587650307984307590310478572810978216840628674859535356485619220831007264240770109788493434066343581305521312102360030826578739539710316348271042049874415525121119216972469892321451014018046571389934369115874095276928523950151191042345937111183506596055389342006460553049549784714581230503411072614247026089038593315809141206482197752442741636544145995097471564519279645568895755768610345218408837878057449793626448229336498154207531196071713552163801305571364042365937651491066725355512743689953952184702141332494806873709687790183735429707047738978587428573042752177943581168847733638425644907765057785485063414968458834205317588791387738785849961140661241428865634308608165023572622526844345332259314616794086519456254084034032033160108534801558182654128422483551113592778719976750519063055928695061929119651796714282190307750041827749924141874084478853280616834902362665689909450179686273052738266122891232459397567751624855836191502657858027585477376850607060632438842143590465797563192356910751282732154600366664492140896372102601479502219443045612668965001394374068049580971430075919523680717600592917373132519501485182504336142334646278088756399271711101959323859236741217322222112008033926411123510719211155059511284924040138572662227279340124759031374066140607267888035400232461208317061667126917236821261532253265470962388987782797997057552835792114321030321082024724477875005476046508318202038060695398227751593017806224721338305986956748019216657944745956913136314001028788118786172325221700607360926940386984503650573021693134935830832764581801131223958395217761780066284839741401678360700916246831440069631331069964560493242494336851102624464271564526863742883035286128112685174274870073007647252751054441003046644810813284912363939791742278941828354092508267598322113865069850868233299847982502926997861129853104634552762634566172546276179712526519810167638322581846946728414220019865539071392740618348011331446151207767806714712911763974315061767266795061276903182166859741787300694096432792487918745966967905023355266313463386585760839216050897492780797984771324403644875388794300540686417313124376305249409859480908681831210750193702671003649938462138110440883820445758311912927845933812004304686595226987751322443405526483488171049826231269852616638486790665087242887200430123109503760589859971608649656406827698199151951534714131539304722724605263956833279028422747824964726960639157114462198264546752006390768853298643769100151521452711962252717990341299325338184923792216424080374992240928090325199007329844461999833339011953845202811289131538501726136639450305404168039624940816901019508223482578531380615707352264967761408262308857984092785881145390100950452298508213539198657863898220849123005050754295038411660765334245403383686963092674897124135569799670540415653951130419271973945073977310692032035390006041038211454975739044946644192052830021835199450615336052600829484721396379463839571271917788675464576476514313161604715681877638425892279970424279184358571715992673509755201775074514463081916563258133549650891440972205615998408190581025941189579626655885375912831552678162718371324936832069230783507312195211836456965220203730977404452199190483720663610222909685244118338827360602201667831496204472653157544624137800561937086560489697688104130459690545525585601357891198973441115200330410886793071244263168361634336698868293372469130485187330218962682413531556535815474493536156506471887763944062553003557556913640960503782725502840693915166565879365947352822393880261934204943895949938522350289227934626325414981212098469988498925959691084988930781114843126160250003235875531377118174464170142005150746311191901140706033666645775238452750299655031103094878444466965147573700261831376583879089658179073962389370341845463938402012500043334088502693044404210500672119268782293448068990796710037587745107946386195191792529671931137866440762668010249986755870334638308379705660905182774805150624038223457606560851437321453645389988512842710301681563301195207578951594440397512000882375727976792337508915170307333071272313346933957623777657727515004376276208803714908291033346510067527118783431262994858041412517668614687190959517650445294728684836820031341796785667209371508401936007760569531476203891754119228877407861716206680390460765617660610970954990177674760810312327526184252955549819590931943691761669682253037653884327331993890748079403355995862848775751573913268438777779065878023333260634227678597402108022251133814449606857955240001099787932778510787552741567385169616463457285052416891011590592481096395641871340752785085239150120566875277919813630811590398686623192548332502835907810204023543012853488184840986462706857540342973436499914505674430532225095911957769336259807791044530713226124729992363322121770025728451908673036588436352137239325700366967149238184665458840235744800479084789074167080680367316144075403535798262898290918815027113878880473744706873433242998105812248190114102915751321307791332815299701011718899418744269439464010264457269535463663878848661881615563592483685555120429705149083381586059327680896455666396518834145404568107538621759563257694068140316190050617555341308354149479875927177000625872257055648122079565911528049616900415513152497551935846147760037000889534154663045984468743086923457129334496225731213361506707087090633107283220395363951231509369878238211946405124846352580608060177318915925460836074189702538254068472348674756146968915330373327339980253933444162102435696903786123129536287997472987718888534088225041376400782717559055303119200305958842895959496898204104478204043816909394338929741759833129204848819552406384302356715189574477278145008620897507037259274739143697706228056514835774675461314806185851913769764365561349827115688545206278672405186047827795585092873811728424229735079769950227949242295688873592475039649978681165093832394789039176151079537526133610052064267158043182354218139875414482720995069363535541517081996808111415915947862127714041314688635150378104511392889919844183213014566412820121301180927962874584688454917011001457463026224596612165688712162054776527453432478298099182277321702452827164591688317531929924658665372718278048325671305279202177145891463199148837493485823141367915762523308126011344944140819851877768666792814071193566562009209939602550612023019499389885864161591813107880344745090295912077798476887539889846324361115564599083974630884718673335235691621229135029830343506392755383009680927193439638115160052436792876342758918292921232923715653245174436509084148719811877101008439331785990610783142976181562474969034123001638439042753227437566427988867430099826121627995545240834398031172684593678324269131461306073607958624699351393820980167277949484129725229953471615533182949878131278449689910505824969751212960765701763718002934857637579833670211523555972647321743978439903156760341827056290850350206740511156709069799714490702961181502266190558373877911262350119946479881630090301464608907756955773316367329609319373941259558083111744715778364672925526924745583454832741433613162922435967251992269491111044378245869242541554210579611556047543422186581970360272448388989111809708008976560064947042233108503492543081700413073190216636876154652233438066367374499609790735827394067428816827319611329586773300790268293747326055395711931014759268355335158314896193279571896417470687075102441103262541517852944890056825560315941571184806068232588391432627027551664215650710107207278949626047745595658576777329985952421089318145948845749533516950916420128366877383296256041836241325543450187205093908689288613249855853571128704711186298151539804172763691215208874782336596526523880484480057430427579977625164560857097106887636045309719406102580260775756512161495823319238423327569834889278859440419998957144928709115620929809636819557320329757983920335642314938530011344105508557083934768031486190392339161064108893942042251554756669454783965814451003661039160490724705914479643393427099504257105180903189428380754839425462387355468477199893442019263089635745113966003871088008603252241406006340409058226257336243455081639864981600932700313837712833258854768256933138666664673326636220447848927336656112625000414408899366555579882844767745145599482485646296775390926220504504978352032714918124465935572920433711908871821757281500627013476286457675547546245005168983132607955917567212580720608616690817942345379289492236015583784200409375484295182419150678044852577544228223662504504276710102256933314423068487126440004353488191502449780989411180143190173165612299286105867074512090793162150078336893816156900058648346795726278745779112606961663723830501206940103102831049627572681887477665772194851018269420192003948060972059727798160474835441191704859271949799246626572514037673638930348874260941308778098400971515596425274663141655707181440940518972911652332509185780360522046513159698593231741786698103765685103348515048079901321748758594442268697912866303945752711975856262833757655878061071339749523112092830400381896742564967208288555951850212892450845940832699227677279490357160742542027020114143933985367625979448822811483022045777864393325384621630412100054231260523094968022273429036299998631603410208808094263228871616648555024390589354811486179461889126708792981681581188071185339578020820965282753619739343146174017812319312582419699050515242371048979199761885712950148335213493113382135250996902693550990892100814863295497324831310818650925093297320625394398488008927402968207613451378401825733285743871496358520091629072858057971691425370172425166735986770588308967953114972733081434752019344403091344874428802836862262216318611283559605418320332540435776071718684176445231611565982854951237021622691072175083502435723703873903953229370796112410924152084889526267349990204310046831511695882741365780110690179521245143969475811287964889986282531354373596936493323832956021703888573901623305000101486417954608158283096983488994958389741382590953749160952709738700332823911116726738572401621960750878919132700010894142924940538907091229342321263255528909681554432713448212653718627125886424233288353908507639046433798327229626346540970302328473828539118667666641688088790658378726295548240806076765548481469175554784515535634087520938160241491395858036436137346465563598192990707937343550411804595586320348932510859879092124705830137812881692620735505477794658101142562744482683294473452285329345146442640334339173302378801941108138074389386115095414141730167749491019644621131000281859685932911140335389365718062697380859801396839515343059613268508082741567347437735033373500741373369985850153170488212688931984890611986727179447319304414726117053001631208131446737531529843508294853795889081084526895548042538686690527280866366191925712439581849077182871851177568948903145388696099998115756949873079808341944087030363785238286421755429468784207563939070347033135299714647720280920751612714099877723475755661630233942177389634755869979228138714292494874880236585140605410029979290057235853732389412050037185224913739841600867905336881142298835955449740222524939986086381748467602654898831429316667893913495801178765572052739378714413513083425519955820369909025502410897547927258615724356063243191857617264232343489040543361399369639096131242912473980422694518364896882894311292192936847545818581173693244990844661012684762011210394940119343864611747503816448125197245414396087929573255338780975091885729268098575798598086724797060543773844623517396178994142123093433665667640078842867921195880361361900352321133951939694019345234706803572582682038875197329739003840677857457388567996241407317885751587077591442894975789192826731334533417716536407912431687678984605904886871318545474743047855659289506991663498894272976308752004429267505787177219316507824225189129302640832571293360285853929910306305482494943801516577562986350029314593767380982781867680036899816737288807248895118497577869946566757910313036605844839875992908120314515822915792768173221092160154822345551735319290126897216419826175175774165261896077171555186728269580664568329972143920283949489395460073592030755182692526697628368211514965015787316105437642525224980286093638517608257067455008922283755329951620626166313310282926346863605521881834813430883700946216111078133232360736897624072235385001361598448671650095537022500384561880482232785315803591335099056145649616500899482686153239047651115115129901841374635003322977417341025998868368895529999386381544860648702583819124194201814487949549697347403159865917533952205038943488990741742125683264357290694296391770908550238121234380604579902479145865155601556401662027870753346634339138178074692817128485947101105942064757556799103843075705344657419949240250369054637464112783355251105211089943057753235690533939109738644146558319816392619448534011581559816484505264179082319944347536130065763783672219760334911156020633828183094102845731826620813510925151435571309395878293253224673032854896124371214580134053982848470273271160445159207094869100398572830972514789253205223720837627929794663474378902300339435592310506457430994692898675979577718574684721246869349262062185984148806972656983067027794037137247962995938925999613919754057848421704765454790550309371891003523435644725440250163766074977877007961860668394576754668510826303644216017821820351646310931623695501896069919445437603426366794272146322485562518817973943627842090761762767332848999337548295686854490268137026568349356766809010654532160404463728305474050572019847417289779080067316766040440644790828156761909540671441589941324068187830716335036055264467769935888430623515619534366397255042500102369900783939149703714251089114583589723767082076069267250624405594949635710194866330739823294861469300179054702020991319736667815011435574151841698936427822069360334485308433366146609593639254940259280008107629266141905909361270014982660105587826130621195335676175752672629434848571907196657867346329406231889580622003689551893604652667314033565650450137295571997194258800099340005835737739946120712992611654645491765373106694622149611713538481064433591242861036590507617257854214517004050655562358444665295555150281702940891565555417912902657917748704306179235768339284386453850340831621528869628183398454221634232053874353990608342774744030635397074889163434874313653918841697012857050408633566163488145365436927586916872297264918706774625106323219779911795191682497957021624194523205250413138847343353770388843485962291064577770519130283240287686448636154852764523358980914361812334389820555274852692459691246853876075339218053654796574859410756524630649713064849671698508598772286902952054717202440954462048534975261745985025897203332583408764320997222087735616320088626679456897905715163982968866589889016467755647597681573999157664301768804926509628269414199656386074525075786436416934700382841523935772862463804786122310152711399083700855408352341197851451523182166399849642631728824574079721375125547575213856525453126649568320674877036071252713721116279794672718454995803409191991389245877277914718414767241549614889112118256502496232861370722532893057954113190075264401975077315208246807730645249026091751509228610243309436327910662047689360305331189887836111817130857267545927768891538114204545721463759672273092923875316080644949617528192677830916578068776700890765929492639582093586169460497687188088442665939063420756111912178881607643773052416202144442598773540086876348589036472954884928210592482045913728370890344819403593556651503494838080076185165179750563488383369778238339893690677889015343578547150333871608631124790879197745304479229248797814152738401253516152987115363724534606161185715182623185148786000453164398240474456113175649010246129453337139242474511771152857915767400801603481541751598090823350684657990631599455516047422857004532698274507007900957184673785879856257672017386488987338158279605075523779521994487162030995840770791342541922405142671372828479610575879268074001263034324613678083752343522239630718141767439837770463650829626966949207455394645523625276677402794319926771894260732822055371152579919923211692414682029324585297349327597068433860503499877438047572774385680124095405000404328011035457737546638150057141857357040592353237835379775030815719608480139386049123569709333219215648733193024304070564134317090698077269631758024443611102003760408641039653665286867951460428311024665709404213377183999813482768843451228173605692061976789452153988998739075318321263466822115336942102054190944516207695033756215661365315921449960682548995614529410869501870934596983349742251827921483783717427296082304487786635676875785606516937794665955412006507346271663665621449611072821581238355788585207604860803047360163569470848036522949296722914085259502537349939534539434181787597370035580825835929384355540752306551083515847121340923780956000324654137679702463102965089789210464194022105299528244269734264258577518976980698962920565914700976954000978899417976138002538818313761982341674511120128455050660828839267962486541035614665119149161944009418165077744534893449974744077314496920061654037207103472489971487361590382605553190329308770742471945082439072230358744998511006267353826822944162082367970404562512891004073394702562042849775296259546859551294293283719106578895135036171453968498489203223010731734173795761023186388140406361160718729129423158230101829167309601917563896994317990833924771265926307354859428997366594443071746830237610773779310508608326034483337879155773202296162003993234391852011557511531727308226502718562491668464282737368691692675026277059988860287548489857498389538902348587807287601052065734629870675098653410113619290500950972734016793567392875987214030455529509267193678976450136923388929399157703570280395490855682165253526479114074346415754333270776025063358039480347809730282988252509763585932860445107583027705591971795426936941369435584619475772626285419448235490549241551780938804816533606431620961195596970945991402165854734175567007906994378875743686262322957332607850749232779606577477196127668466794074736004939845932446652336843498070628762060946316179907745532633326372879966959733838435892550622523183956316079970009234877154182189496190075834880712929538558951815854431831132483791097359268471810445022219257600662147716005770495326776161206286537535832595622374034096711664429231307231674509993090630551130431714298415228527917590898392122397559066683862138641888671757605813866584805491532112999733148745529909574831471751750263397548265290047203494119040067937043489214198423805586663283923102992359846500779878846058968133912854757005073298758805334596073738982108367410417211543006801354730787122355333411375994415158231600124524974041085433270677630381528127419840253592194591837729458820365680375762542018495435184448067933093617331494202391813733482954433401114083691404853759842859509500078905379871048343235746612018764935259502224011642999001778420412457482630924085475372184479733536796008314817072038470398320809077262415039223802742013780625956125149098044105557590852742409822063975063288002328014068987680686386823991737854808575673084295360451449489820637819283071284092569517910860050089405134435696140853012578015980588537632539481554210602307764123705174718133203895303351920153302809319827656729049875387863124073276804781106322606462902899552104006333695573526946865079770287208950152716593207284040175506462211841697367224109812862348758813304185283041626929569056925568512602191436141538852244699408839628099605299648403549496270788062362598747186403488585781963504842609380603965541191068895570927666352088036284705067651150480411124939453147682755598900506440762145891677626276666380038838995115701613479260917682585386531828111435223254691428797289002748586528833721721880367888898560651576226491429694380195397179843609540689566249712764936775708681069071337824990648024388785995758181621660955258388517031099534311371258066957043998303091472779060497277945813048971816349707302646451877256906510305757458900782835327472804276104657871573564598964398698154291396623932651072513033648884621133951257200765340103928661326455098989196661931683143320729081419075568553890442174987635019411989963051683348439995171739251298269871458844510435763945171873218900963023900448150794337312205961185666271193622498398238890045318634087551120037276568586106849382888290436274774712523240676156775120867060985578553969981372024742304045460518272095582737946626028488324367146782363264894159243548073195783268981121439192815056854103793283215034361942342395476230249390760301688492156201857015295570492655424312813414238263853232301026813239349710022268535116518534198772477305412166169190558721136712423877217622553782176297440619477825038368015158786039943990082245622342020464887613587795891506213801699240673124765380664057811903721609104556470028015364944875946827004237873367072241817027088750010431402338486989307752354107715199505388073987171910514269466795142914017092733068718525363337959418259499748436311679431482192095272661706002558362584258043814193601876443603676022409225635952735707898658676133988242638645500740099727249533967754356536260664064976706907733876711205726300198916268970042226931703042009537633044234032320848549534569249995138427388041394808510664591958429386678650917104942945972426420870481233736793031635481602043792633966241146225617991956321958902030565751435042558551140547358001730107501092897305259524600273793281393540304789396254588739451917074459786543669445615550687635301800537178493932883468995013898389702075542927031231199558403117123706915400271927942085160142172848571963892703929198988844604915091735723938301206282653706858352765387676497517928424536177391516551827734613089093981377232979355169830358520421634188398795821598843766293272171215086844268166514734933612690605215070906426337580279306653800833598022688083528729521611899074947511587259613711179422613409484752194520673695743578861122932852530572999546569600641329834817058164656613622950801661837689006461304518137662617751843403167406693315723322489040458648089224417116348710776315762763468376028129390442245040725714898037522980630758930824059293657135933892387470693063666629193330117644746574496882639700397838927041582918689469476392195242600921610620861191507415369435798434608862518327836439358072619920336626070640411330320548946687682461216202299744765447647965000412475576641635619225168132968120827975440169177043154642190482957798277085271049525492404718393175736255935144977072295257731419110361897443991393275402986793698368229714611250398674331849946755907055645993588669742765672998157095256953777961636423298115136916855628810086168440060090779908073281071580081018136158354676491690431181809519219052101792613645454945568344671540218104244800505982633404589282141169253557129093760348884401392662167450486883538009706487062738657639860482812377469296475889670883720174284986203733788097702602795840863787704628693038830417331165279643454372925531642983132375436972859054050397696056408200801835246064046237027253304056278288432604885923298738521675171834771204950972092865065083265664042595063030922825170856618500932166207629835629347667083625717008029356310635430698177835286395258714958987815585664705223536198504421601598188680113314336405041578933885938255979706631417171193280097682485834911032559775494820275901792643023290689012706827207199686398173268140823996996870977637816057708130769099904619498850568877378721835778351620937804985549582267830443005710722176091200922856532596439334663032370863597379496340351183044251891739433074489947818863419440336684557532439250328479176831096189131053233561336088603438213085924464762351581192213931775973747984969026079424400953269521720545389739040875698241854073432711162083488603833634795769322939238409673522636290168976987947530817971344012130895117781877090042088111361768969285348291392773447371688041730215325223177583828203387279073882355170042609820445428882845045141487650856204978979232297407495763582823684842810863903582574389723392837521212382360591940586086055890958050698488657233594046653125370010720814605071452762823655180784037274592515866251179663264797132698973987649240742793414158607474358509065137185414088145810319545361911326317063218235522688845575304095139229223174643793417832757289797185178993337929501068914738713870983239481774247243471835235145741546288208579664176513262725891537391152437454453703806258396955901096873057963518781058711056429292343306656575432397587577010298679297461554359767805376108530313582048818697457500315472681901118343787976054612558702497063133210849300286932994456668002694884988625058076362712099669382962552530098545589335283138061524477790642427055171112778345900424909592379165911867114365249830488157478559783599679839438664268289619294226072687024936305492603898084411137809671018660550500634133460781083414397749092887206367828057529553627181338612961928763527272280533327553433014963961505651108642181772466252390317875473531934018921894598362774096643744713423106392057387482928216271962246596558456800210785169316599790145101489223544115343584218689952485048593770849732700099499600828459440870643947330894541326199606329867670691147921977864958784379030529676248874101467274289200732102466940013044424091847824542054535677882121643466020043220148448302255681236815993476977366884356127814875921216506517791645878368418856948096924593686135298895465447166212353204829950279169099313885373666615363020514220299402450908267404133603430691268539610558305453927423606025219017717207519386933367904144191112286133563394006882823767124831989569625363898232861516648168652651082506977704796082050222088919442624080202437341734801906282210286834470700001800038068683951175572787176808079244408393407695022772838680489663441049904109335477209795011099652494222090946265401975247714713729002531640152450502245281314019766622455645603377197078351188611235786808227029476512148096494052466749336842563306610883283037343274078107167586236014040324341902533515399495016271348097976373418538825211463658536589096858178892441852068496544282590439274556082377729200685539197414231977409687576008999675516897024928095985342496215832875185316348806955718309680619417872372558776775714065917194207115608052902688599434847216022459375701566161049891236989541456817561322563275611544041752677106177762800796373674898924084023562467913908708208583831450000031542629346995444620559120381001317996514360000446004974471557227433085219958132863568893399661064671065471149792326233646360717278508259061233174925460513189146704972532696491274324888007299357336408670496323617037423757815665843887925485186541819912019438962886398299838578169232997760512949233231775238471640390395825299268245221333821104033390131748039309247167303591308153902466145815967950413594162326669059094588649809908618334434655536859393168595642643999945110645059388638018295987252073812721091019352530787643327865211889623448809738200817582672690085778336318911447220802571430171163667493955706707713507113401528615371237037200308867813484166346762927430030432948908390211293170079577057915091162576408193099332528587346435919564752536174563998379170920915834616873474105306569570035100405607119132428557516232979766233906482021832642513297533196559624373739075433337261399055474236789329462515508909653027869313630667624373399771244378151309351254156933841684002817185866420713123709793656763346398341865705090347917731802591219870768647990342793546355398350260958698523347726651116654390361118826639344976412232249017716579847394262158843467482890929238258659942446117127016348350687579122856950721803398219399868611496717003699758349093233907233554768974761341178779984923822101240935395312304202870705463476526992724286304035343448110914294074604187744621877434608803261805468709592447333911764275216032474179423833225044362418206943260810937497227757763595608276350290018742842119766448789854273157166731850053855779949183826504431868203408824506043342947420757528411563375274625583491322286739123199041617936940033582421133433764508646421977077889007144914133810637165362193682705154527253175998915501570543894344102418788611521994201303607369736141813274643852162554441592988853694676481738940892486381179934800715461431363505521238440148471223423078924810892276451075184888796056464355458407883968347585552542210388678355691290783777808336828929091918102657939092105112472542070057847882078894418417363095216498036286830260205142891926494645736878370858252405295870805980299373979216164149771126221273407983461828054942681206701609713170899001387038764973517959192152330402650856080736515397002380507499507375014459653038682497177024709071622942090326893667903225056307197643327880902518592093378273614043538303251591702924335185777906387341518296690646470736737807501433794384096264072694013207883446011684406465884886614682614871884975675617412707316106735481926814876634416347862698801449273574749073708905883447830074591565925146479697910588093984215800008326817868868924640756950371931781463872409002781302485183385774329897116173184508695020988930440681026346911033906668463059657513139927312193359362701134100818255052247220807963554642217609472604606946503600490915242270975699323190267159222333145138227760291623151226277574456945957476792866411767820066254573103728029420827123298297057424246059844410601666319675624683475333598099327312266712888837160434774162986185372179264575999710900378585610596324195648061790847755164949417391069801783733743310758610013315961441914620580816819108222562596964188740785667743564409704660036120661649590835291752712928872835189583844958340293611326014504993661048357541484963137268072239244504686224313145843473662944878947677507518604504747679506599609457539339786505780334950092942753530658804800869854869680336435919873144914483576416222461880900023503087885171204652408111274845019140329108231731541264964408889398863443472468740320440059456295977298036022983873705005776855980548616220577680530169588566642737137895908222720000420015888794625020874700788029097934387349375305664930187515115574624733059818930407014547680158147781846480693817923008875610574899073440141923671547330613399369131462629844779610347669776178848509816747386784955308999506084136156126756338598080608088245625400026588659522435693647243096355597361972766549270771100670947485657245493663824163082923771501054182099215604239988806215909709094636657649913591803288198944776562568797137749617027433088840599021864903023200711530979554590627619706561045665675051496531251944708782159834038040577477466775879398298108423097932425848893764928826216008405813397413426784237819755969738916780227217209944725114564970008053976918337657139388088052831852525616291039712974441937544999790303046869048824110138039508556884861980143622113527252185865167907034231815801339804975996547045193648136871015181048629491492384736827917541266870982948419995673763073413029213650000529742776708223136037550223876136210343808343436514217371078344730016485094330210277051964259560401964325106905987958444784595315255643261867169481770098502994134780990762380375207820988840415790933188998729805333780993110188569955949222938971727444419829554388125630856347560574080233790513605228185224801599892132817247231987368098332774991433670700413849596988272819759463585770650910819162251789347442334381454640891292583939466950806197645011666669820898465598412525293054958239741109468095057426018074516937465037293375156809542139876021362606177779561415441424098260031924905174144069919997163182487333242469377573247608284231413975633265439949705458034959827852715025492175429583162693289911603529940087838910517538271721864850186897778054570324910075041907783414359547317723091274666950071872367288080826598142819135562738974258889816953696445686892419710399772112549099597972806267628455130688262473513117662978432703769388435366759194241455613692663854035214972010859246078523834695436295549402964461552964175997387380197624010599258709668396046977317308763068267392781081839950985276620901934971808735926599406907569555685058214747624481184462187179653282922416575034922358709167112029280156066467446530900669821326770024634347971116234055928223403658768186561165844524270318690397008409691396766107019146454265097173026112278237891085804042736460902068378217813145989472710297670907895369403410040247941114055124562522784363509438419679677379490688676010524636859309634694507797694806955353894593673683691855091874591992388863232455524469940102542119154806820445293166191315264594533060698811101011182841725562730498322395595201941813359644531628947206462196916606103706122513335379265578189700587241685734550586601681622788353532002706193577192744424717363972690870302579388755642181073529092037833115738386757505802282052401826672399000832841319598805271779521486787762710993771848852885221873100073289735240459518343953013130222377361013059502262039947262456487781727675439843288217906591466099332312740004507403922205039585700584612521393701164079876854046513908449022398996636568036786763394943938877695765023051257543343143352662975464291726389818879398648382749030214256902170376770820709699728133355267147786615615709205613098268527013577548854265342559294830960824214849605120228130567461013134648199078153669633504413062859049750725432080308210627979067891085767286884737533581938546817752718407199684482066943732931630032177973327685718085816580673915086317100427914602132166535292723989672194070659756900955848510996357050676038390059642410399139290276577777615146491812749456142309517184665840125726139259975536413971731470537873666701613496671433844202188370830713582942046562653933767605711519732848765708848290094207632429810220852816355062429694123434241344578042884229502545328585358939478276071727380672253623483973206144336179088237944761179238574903989719002510571216929341742160383159211709382039213382347677983353062965987623845326802103228003871493518927146689917962421472606465444094374393244634159111564124151929809117054365336360163911120510986912983029060834493219750620254721316148276441840852438438400290634780297677368588615908467075610768164979728613310828426117971827654343888824856869294969263145866623116202260349285297626087275850398971217907812818662210816024917742842496925599502699512802519922829017113209017710971900233279578674104369014068918656584103278069328891951489976347680795770023433384073754949914932743436677893048595438998144127909853022276550099083165659108654353622529009007633622055979771675158832997521063027432068074934816436556307310525155273479180033277244280471499425237172075515807966409752614044063874060167382716320870214077518525605946778363238697468607910430408342709429910141824851133202638029743552155750659688825056333604099504680821987283659415262524726042270588408271832382106806564836123263865981769286602620611324225608334736652784485904252449404680273893912889499196396804232251947077686884250746039764151007889676641294588119424248706291803719190551815695309644058438914925494354559417220467588320668724223150588031559297536580158231393571722374635512563760026904506999772669410691584027722384029963915835027383308114015528890928746811261795623277526468345571838278907914304706268559071226334374264328730730104399271795867574551673787945182709324558592132031872174772120068377939664116517035585238495129843872916110532324403941427253936706693191138245999202286095148679649371960591031158729804365860728412073607468670397284766780703706080568477204379942900927009306433434097465250320546547775860941474355815746690701734431810519912675948868906399684972109222828133048707497740043097003871118547615574067041720440809786645291739317125226133641518021074508693242026430627980669785645011437963794114405116090819814423394321749456890173400754840099598736687962920304092015752454689247497221781504689813892568839726895808737131491246351357354050399049966759340305772499202049655263061528418537852014886034050955504966831634147413669648455047854511962454751846314184783410909721245618378358103607842344276507321622679130769680536304032518716704703395029499933652802691202848522080369573827277228820412982159700057559099824969375984396933860298047489879282693701497404048141421712960707004290287552826724701153222261818697759861333795697593409830736452291979739368541630576021611978292028965864307215670678000784109029014892596929158957430861277710942753943082116514365348494537009349059941455551800529059373972846548813236306907833381561285472781427692094504277894831130971604447809210624092919092471344281344076931517332650073923300154293792401417739358360356013251647573109190528927514538917670402956075337577269065331361719146983619873477255867840432002863817225659951272391648057299351723313563874700495847369908165806664470907785161423702741793967300455370684211425567104473746998953741623361225857207600368941692326553857610770166576020164608134633609971159914981894297216327024572257813288792701633394064968335704766451015687492372423905632524116783801927749314103463106132293841821021166785803045532391897613368063419988652707533183453633714577378569870724546476192052478916967037911107073784490488162080269547770446566593740851730802699958019407218123632843714288060934881341017512513532993148038079078564358897188745306259661453863749487979634937173845863098547208327496564976241224617424200683570111663452462705576416342978582241448102211499156608490766534915271934854448498028390454360837871518223428558886173422971309726024542185416105319175054367818863043248163120820315711778960899327421357926954694933640424008235336908597228742258846450006844762993283429644878453030448893210676528417336046384266321853952688640479772490415980755033065229952421281422362290397980848057098639272985006935332161479543790660473011989408046902331143554917715401896196168223266192918279690859378948029112043099641672510332752152724179384347686803761083170013768821185925669414828647590159913494511205900488549566425775535866492902770601593675805082983000831304255485310030306228625374684500573234068984858722460631954542959060261426937713645515367011323701711972661482654868872174712218566116587647050876518888340609705736652665954337179016218900446739306428843535868425034422007424192490723412697951793528863918492713444736783920248419250188618852679321042060815857300593623970910288382979497947267254882132194788704559091684165568164107106290478133387341404502755226049822068236909697143568463838487504608591574869121751444091315140561276166377572493314910046508506091590916813789845430169241599252603917683343693532778163272376450694706803639225893334296610381589827408444171711174699234011094591862382719633143024520417125431843679054071066030183389891192903420577798626881890320808338847108838036404485223419741547377256028441991588582030237190222822895949984301875296749430702560971761103650381725033901211123777671882469676435144679377577005680235010234367691704425767564566029554479347545592360246817736953252244820337197712331726847208052571993108126427891700627179856562941956596918190891505459592617082669406968469269605257170110121869319335772137192914460287725888473003952972474579568172177856982768033482641743040017410855250312605801366695471151715316176503071738690950095760697241250294064774455022074909026939376322953984957303324386041031044333937750943299097647667970164634852007919285798836320678175510134548863634092470805095720296045252815946303050845098595074605609563846972028173616003702742075335478447068625871773647109378286387542668326201784703742116262382233223565162184099514449487831757970825360695454400045982970333060165903599254183713346329476208788319903380216433266599123629848883350721641267253570403991451643136544873130294515597191959085483940797999934643286724283027401419739327502011884530397484279943026000740526601510650288445330000843566604090924580203674556983539729110269172834938652565760316503598331310978561286212214392928489050788566928586641714307790529905861570528098685060956409604875274929335386709441304972217777447076822883511238486840685117530560758011104839481072170041768052199906115731369232673269418827341660473252589196340759457844925981577076071186464306496654095969969285123743061470085093258931675028916522579831042413151090318656711701835239758231531232870836129648584812505310249287321395677893099794292441853915530312768017717634324186815291551583657420364174621812549721727940439323868574230961832808131100404920208663264554547314691053930069790130764901871863223730919746047836281964369371290807964678585332891576103629397354614526820021661605554276396812853843817816282216282602479945908064178684628762699371624909049268986734434736337087596882745738875683060480227167654287152459296444268328399291980688772612422011462626922308388640753879414448038077734906852008140055366419490656658134996291448877367147864142098227860197247320735669208645306577063735895625435095540228246108623086693369398399419688067385178800412290314349439718725814038758227445973998468782878512048787680917249791264149792337431903303960004641258731806251819725418480715108181997049961065487838138624291708330772029619710476362748286156485109379297622387585331484267881579505511094221249701397487702368423553492532584676801641648740063797572445379082959026885448224224223051345780924535585988221412598793275944851560304820189289699744931630398016471251031176375296635925405292906052315570449072430496217480274576198543527009568369451382289712850159936252886282495089829253312322569421109030668459329175859687545933869605360267594612919314108566812004157305526925665695565830024975267696781776565323355024196918538880959843596093848241145111735087011346700899264803308219714854485548158663989089007397963305757483647860977788317575794047134269975561380475191245555590047825704469162598698876032147775232670590156228468683596044997388473476378900581961691425071323900726000921191981817974764685323122403623362452483444558390646056129747910552009502653194356728086749502550372192303174038216380784243402140339979978251070814938999841543565987917281078298939375873592377088566902280355816969846044325289386627790015757990548026209126719719414549170310648166343848570671547632205682343169212997490324300743367009395094012279486081787369474686334967107178600531577100974197451856669386932237561167844880895303029109665638128417737918403392751627300762827099925296391529850535260084809392525868248874486680279630308447803023458991448726750592183085331288305454444673579491243996686201901158356734159240477171075268656401145557801355339102117096302821294575903906766860353424450745824079222389910143656808691890377804089007802124436109070721198918384483735975006344771545643162327833207909751842501145258779721641796177545704346716574317655421805689038549337353745088370918978699977409865141925647197984324490447222820869129967418944104709878109576593215660954686093816298085698524183950346049428204323584312179890411358923125266300032480952290392242708686306808800534087847367942932771674836826882635046376419095943698334364260862705845878302011470660013077066695324308304330128833636977276789459012888204672943968270500643280979092663252148692146053827316888301385403158062714097285614819304274564242887907420825826802699301368838839128692348834896775234875598153509933227584694510759616462480294587625635799935002138593136797699570647869027533953607460877301944444203830884337891086345657741651670778766725376489273980204943369748588628413808314727216222870432847467443322926926381025326739683248689096405837356233425745353928013696129690955778843247226624184851890231640955582888141800044648221752602643563852589468555531763236294491443252173376037464682725739144529829398267733129293839060287604537386686520261779363015946187019891396296731011129087358172380000325780839778741179821441378933959016816958677038335145269464975659218206512408428997669975522168515220801741345871753513642249782969643404221367894894983207464000439744977359252339938003613681456163735093064121551681092299472849132936696726733596129025304212739359268057433252933775652951557004619127777988321789517720481653785317230445260840292167882744772855580131816455805773541743751086717949253480704108067132874701497304523292223867792510560143699119400739392446821452512004909326442048415073245311709422210425888136759790447654843689934329581886322186725951566961826687845817255104735823103191225006736995967888527123676935883009384619135530620409691977244373598132731077120617386294124982061727317405867259029773295626090590166093591599205365289520193446397113269999030860038319522953967072682329715590103077513316164275353153676856925677665579972132883508870006103291743076293580844088480536714346841526288620802272637717042385369953856617303536897827572073868544660230947461046944777291258352728219711280542902845384179062265496765943931146575530696784668857009349470625415355909529260442701238971439050061321769718738197452759934458392693026399205264869989338213637365480353316798819921497195143186302398992557705911550791751606218210713025786507710671945891179742888186411432342328666357330859624692833407668072512787489707568522551261252548360944687941487540862588326071664386391712476346145730218968292982375553825948827517543542533305709138757980374030192449190182501750631156768517782070580707280238570602056670718274058329467026945678234928875937766044214367115166321040390117622216533173190617631255904098267715174503243317710711302041995233970674834091357654719753375627418056575734697087959548171200370094453749922053195336224457084941632998569180232519031118394270365079044157911519607958328588813480151205122167222580670740161288365186839148449581532110605194056083139950720580181899820349157930444373536232117633357900882301328949813682010018491413867771984321348250653323992663206034047567076881276824316922694146816328188882307572561252101871230112664219360550014469473040895003497001814326054824469457798961791280828020955979543796945706407852440701098502896868380150933575094335733941743890099122029730214230647796343321274611137083390454171735412613640523775432029050508797696271046930815652029842783724074961698720588450929487038087013484321183932565817728723401413001123073904088071216447652237172935158991430929018917460068571577588189124239624302924507608727347243142258344674412610035048852889346145194484608579332481939452047825474340380098083430720123084905637054132329737479578387122448186157175764937261857872754965914323014849846062128870951837332410756244048372802747546706606749319794364646939332970089899027549493165067760589046334749171200732144065040559620624803530921735778367006802926696589759923048628026890946520479696263435510456731482077927984778047554983374656668630945692667692636728980242568454460165868755837526810560230390962796883251562637157116368928067674476652809732088179253140260877372332181894903580621505774393162200722067043816512100316291025539518108210726490054047688244680316944388866121610151396749966235235460494863363848298675904915285784381538139000750537904867567785211175349752635227833829910552481718453233491771734577096904124419318112726778138324245829998106380078869157721262120846291553740739589353023280860603878784794851530532458417103766311915253741316973296654326547815699262692220006866156621478247419645614517194251817318577123402872150101467585051590071754965638636998991602684825151257312348701527125527955605859833550445344629002402982250889463946237827503705459528766710427876353592381869832454826841724821441435315032256039771803901044810966235767351764268075575118655011676906382749388156104776180653489424988360901414357284415936956774853238146763867352123353604690499686434030888963136115458367247645654919261883311997343712301052505084355497978713602738230400375013316056496485749135874233381689911194864865403991852235765007081387580279431994221629893134422901073489851209323349254525195422114052259822351403621555432132677447760361008122760952118100292009179813037006886527846465834998338546830184961035242593350568036890291038760133170460791495586739601542300929660695706188215046896935315694352439105358320252934188642688381913800111283444163358954470112574674409729168025785927069456662395611434497359135800697984829450350352873348668812627757476242583347334079567521273035040360734195510331029575335769502160617829847693218100625311071811422758466924477002628727936444257477553694228314335407984151557757400905536368458256731662586143059803903553832692944078667167297681348419479932311236379519640566772465495217672829028900325614036117438838402672127197465187732191319967973288975295953089352552124933598720918259115207157967197592991383934740845794237252936482733393373066825023930122814577403855939407328755775315012462061781584386057274443119407668027880302271598424774983773180593714042544361377367492527396092850302332768486930314983813900359159159151128964117314439194689816620076919653568462133709001491699934977693291887310431651587758130019377211846640025150932120267172295016957641969061737909691457571206407233667883608123162291083547074044255766795023655991678506787711126323367076085182287795475254147792427256043792549870687455778090886728561300343249968626386051513823063811107495773158716718389576714458150205348144964660715995197946917453072701554354413615752973798761587051024111182519445419670631951005289934633003959314416110615547726796098176962817050890064905457799170766158605354405038059830580907278308812086083633772332157313965127201528087936836132787282125068643730516694140724805498316190419523984479224451262320286227287024805329177427449458482740125927455828802915733275805194585962690230968444759256204529150714156436059084602607033575214750596713518227862423344420966469656903639811167958162315207489984538890626032690773027257027451322226016804129598196163458460494967508033525769254395543875125048462777920079480629081499571265582472033358184875786699984996339440538713579058394963697098661143731316047016569616131955259398780456669105627422179561119409224446364379409156199003591218927600904589808630172628214675826129876527198800131455656877645772273248363705713515283097845929668328053021446367068123877426555694360055984090560191900276697320167244483683366194885178741464359810746791522300301276251560406912922026535224196100450004130677675641610268533366197355337580077199694172585127854161606401820956289172879599116703273259606504384576797557849551083054525295908339118498036490154309734886741905498862744676665018136978345196987258290035087407512432941487476754540715104360250825725389072117278511960713607087064143156442090749410985250693766207590181246217424700469377234499875783785323783269381732451826160448509042857703486910481307463863168826689574012793269132503253705033846411829036071872261460282623025700269609459649177004682285506106364756584633064787848961100012106983079107758571863576328936942885667442321933149778516561992446772587544319993412178778170030219496498108154364112091965565342625760817169980811676795287797697153861234871997642279537299226250132281657565092644981133523112318488421759666693372983600520510765768119621114821408363176301328824615460150721488675057971350787358639963764077816128271044049105796045762869925450298390172221465437919245756267697830396183501104236489385627073974116213990537241727157337934089964191146832687510628562101868416033703911214598634424382289889829019942046874881346065072172259847930660457143719461902207747628007153737073112050973373529658011875468075407742948411948399756568142001086159858406790462796435651043757248689410724953720720504624057801445097605510257884044735993808741860755503146141115497671596101070748019691880644620544417222248959981484268359206515179820768758047010085795764201135926043277893426471987547786332999302680614123518866853893584942716066848195137739881408017133054755570504574304569904944171167038496572765269995693778611437730103182605197219079868751329359677248582836432807449451088959978347814960535166266070300423791390183402539573821907524055945627547207523705720701319941955716755746286620015014958311300500160567942422748911290999164781661561738667933402535758035351360626212272810232163417461069420692766868910007304631637520065018560529537685682883202140875531428226476930668036750272421926436311330104218767982389781188512434065799480784855746872619573457796715968842752466086220651681102626479541640511877945882359847499511145651664738319108459685484791440117077819407678206026379994624199280470106346376051902996248326670772580607511377094919045181567229074385808173478992623820176602548739029136919541119732516589354201033338275245090576578412482702366352018908008070039412899194552713565456666529378601661153719160097539942451607547635656330463339604417209306715939206993231242539258145779253265410994191319937084991676084686759487588216087127966583896661051184500000609882331909214160089295819387885345031278545860075463791826933065185113905757045932927435587782989455462102789891407162776196298810999836810194597868228472520587716237304388441174252343713645878787241644400000455888213521747365752679461909366642680777341666860592464069453235057946039672753847417388918142325309163676208010847032639277659710171344591701710435700115700682821781932261445117181640899559899707229946681860167874621717216138253330005121580795349374459891539810861100133615262391665906543204672623956480706393956463022171082387941560570164956157789022860454568771876836617672921967063854233927514400487996667607107024905586250992857463685007754458672601767086339101720740719421459202593940839706813155088250698068651182133638625441715609547523172487261051431278891984481461970475132954653857577892868437575307007353193752439195902390688682542806790045295061001626306928068427049485639620800500305828055246046725173550642902292073204512830076488905514474071554814552310371275959452152004151455990600435921405824913734197417242345097649122849892011416989715648669533935764327505695836962166835483406709024299136002016908404957723892919686107812031082127667111811283169213277818934975701592683948882899876250768467847357143978139242175381175398041987473577678781760254310530309506821429983893761525607723303936966796677119802726234794084348966199625316734572272578057088679538382392074646706843376961707693857255697667198962584364393341412943309876243763000899068807474240985931704789539474026492860564499680023265221293967165883850412746080474746007448434040158814941670756271734235096267703516746853272171410989971421723850325621326788078304174160664141775835051553798514001119806703889227623829917285116247078722975325175907775270714124291793938432960154916847988457274099884096469248734620634141915905509806785038047629239041957488933969883847028959149180884193370542558660048497404300265754746655882852270495206280474493785117502786369519325195028812154788579385169412639529572472604955625257955071710008437375734431983230078707913436095069999399169544504824371493479520422891503511634962798458218116965548780532810670171080908782133523461127522643927533264248804880855117265409365064433133755836471569860635570128183745612727318714284521882904382401770796347269553051388325890016638088883427580545255874077773326018958256561528539865514711322289113895193992103378502925559310474029067211168943724311307860001874839319959013251095580239292978127008153560211954360339838410072423622677110925777762494339488472741181712066263703870530987224331570450659585618177160801052894185178988376649384416057476215255957261707871978216189086055087809253263762088925022531972408552301204944500566749236297837889416868639789009718292830047535820484562587148326018924963382420592805743453533441616928584475713530857435162483110660620477143777701216218414358281083393496511073214720522742396138858265308837428764467100659672327329200753621428902901991221876084091486572807523808228040350490191486183812471695667430813501233461673281319133385813321314272450258494143729312197742079896467841460749256519579408542563649859107970249973031389986045340803813680851464483467024554232147191024599118991246217152238233672857989117491451251645317397484784588555863738553131506777721337242242736597657939075113956103034942381574070075947968396564764630547160351963791005566668994229464061692335975929155442538398464819415559807015672701430861699266338354463848813334005575326419763857724100021425675497702649946091071011088588370037615883698194192772847408377499860917972145357083653672432603215662072415808388824095119597743531984569651181314750734295395999054310523576028553173258181728897887088471739005999560725755795433544732407851668850437267978373706071136436800752090049962692600335999774461769087062594047027414580655512922958418580722638452191360746155336819155824385739871475694708666856190612306514821961046067324739902834444028227272907457389252746990246592281928893999644165229673337189898281359475322891273124095650931454193265926912033454227366507598385140901043180030531682796578305956313223179178317904346231136764214303467304202343646585968175919044689707863247307095658443895011578193999247537016604520685752710009325373167264071472841852209324990197573318430090398448802703946783273112100667995168740042666457183759467596020853687704264459676877667514285820861739068167482518749461826144665678333254037276370364588150113430002179976570645589846268802664047714216352107793156210114667987451938625546928818061231710798566748255293182468270913591001467238806990199542582138029730449907862290742621065556933076098210199897698457992371513815556015123308383458257187358804593532449913109376082529779040101579457463892651505568784383024141980913324293321425919117755398891424321467327756575339677853322429274397327382607645752437199300719859394770599224496469471566299631058095635824815418475086764272988670258270180340079067205579499033855699936187337190155694433338469552934094943686410798882949618934656008932242524537638950561301501156576501055013851314725061491666319280550814712971467888669757698981676981178475342747435011854800674188560524116036922609648805617112028739811326188790558713398419280964142092956042512065976430637739476366729647899246584597334445443911124586074331382004276083670915057005071500703650088380336200173460992181480590853391550474230322241419718455052529170231320312247363666959218233777873353607461876480950308283739585636623562070832727402621782766595656724272854810601435155973808704577119253492580900097538406090586763713954124044339334375193275872242705985560738787521122969469236593933662180769783815034444163855791668989228374778486301066980565261105222558910733542105185313258329250130885261422789238503839146815612184314945050076579117487414938362548203208191035720149303117210714160910730457269061159424659867735506537582704227747032239576888812000726881161489408287525907291730058152830998356071293495686562394152339689334213788970865413224061028135614374227645370625894695387487147543199061096229726170924204459663917644131293036064748734330339184061772722959963815033244561812090181632183029221595147330129379536413647522198782630274066033436715096546527048403824505299660815158938646609757949131783238429083766080258945688974338388101205512821919259506934668511181334256229889062765208377371458951286052838599963645543061543158351062937774872729932206499314339602725612769686590944543150327962079383024502446524806689797244393011007652983617989730592657233612642779592166610728157253736965124183450223225980810326240300300512022457346689817794610300830888033393478763701871091410853224800884502315845357027671336547543229532309089435652055166791239743798642225625050448595683387107059151039971388626441699352920076393325248040954746010552847996315002069399599904111184192303587737354973074519993539759893112827514229984509062772126831028779753431522860824142636731153056216427210695171400698789516392178550907083912021084719407022751657248341272167246177251950472181644181686526066400630748529126581251754599998332949039043985559036180362567184938626334399920346170346808022362192321225156420058938800177257871808161912016627581887651358018850988171211000901637544343264634334851378282472528737643295491642909574208161391955490521567472707157399795272095021375307246192884326064105069842637887483936506562627820960278197394750402647494395190156518562733504246823576664738253245707453068750922127682779187040734037961877441189529867534897534099632351665488123848684729113809102376243878085834968145633161832773961267557857083111377499966958404336625018764770072532205762866944895130289402152265856102795891338125348900785656245214976094351351032311115746885554055272249964343801246111954403451521685534540563202098451721263423387272265550972406558352932023726884477851169359820219709317478715509737938250392389879222685251550350503147794980689835994848865858147702618725295645332195462518582769446056449674326562653557436057451885557758059799946488255091440338157737951210908339758399766015958953240461041821049539132595225495141645841678043163679791781648705832603108747639351636541163561975633932605678664452589773967213957828629460690899550650684675758255069703762706824295481281722918742523972775438056975770294657352150035739882879674679854314517775942406085835478542923627762946341778640697944662713758711318702211591028313653139041257112629711939962481537652447546461347408535965016233870625119424863169035188547976453054223148424003083965180469970257754723182391409152446873843413014834801007856365725182957406130525870286409982108042134913481710286121701640447938610904396816188667918867869497104115301913315193061512005623476748964320745599666176869879984878106648650143737188986121605023853831871682592242836125224170704605532385914265759727330399404061628013474075424802840558075497908931347283169452141372524960321575969355247950311576613810852147903551501984705671551683650710834375789639342894560342140904029426660713423585435262176014533573697847557382732233922743702276364523330031978527443112097953350795794146288433897964527249158997199262570073967161353578030725217928714788406656722429734853456933805031521611182077648058826069784859880494902512409147295656750282429152387931223400270896808848267644003723794026288692224750109369413712669405418441752266518043945918519249120652887849227396367897193001391091219341123446459757664493481066359633663189542903657639784052218656431353691301103684819575429362124300822333521506319833167659924854250940175457145343240253771743010021533645369669310254719151706420830479755175689269446313771915411397145192157487415015079563091860868049361797053375764273531738572715920686751117965605855789439969278944345434151976280459682091140662748497965671730875874862187632546994636410643985422448238708618111633226689580501711218334465876133124282688031982319177162164516122482804014537767114598215917933454879967309482012722929240631061093855444096459658315940166224063236745172757848051814965956597729638250800512556175280971534358506533918550601568292736696505762689363805578818543606627392905021771124797083827617148980224844970468825147817879767309925529760478267193726544830916595721545804281566271704556981374939440772028014090945383267732202736649382100733272811822815109455580075548970891864469155281934953896598981860011861015786500992304091890335961473259961193518538564607692395544800712769380542495819119239517462048667810810646597089055406044480484213830359128901584844027387524392436177890990154924375552566004168749870544900727910246048628766584944031928149988963678670437395824884896975963903437150445440276910507037517087065112773772812322419991217898802723796123169659324995549467065477720033614458369824467942361327840528281080320993844488750170302023190742559338866867621950300124668749277285728573296383110563691221855487031739303108431112445816612500774781903276233141346692875968168512713172092843845647335729766946933140014862509321967370959214496861611969327868153453452362912469708739408312140228023789064974501568652207850580204484059776455978665937085532763494628387934993546256747547445945966168102623390276832825280419005025491036952347392614093646738164978924172838156818482452289134358826603591142664166178827994250352192717746896394453740118311295129131056710100223471600567810430449936261016684978218432768067909912933232461341345435010306436149189607287572070261022117780863219492567329520032763575462553331187305396484219999937825927988607754646924794062427661419201634082367995140587284121083128397274675161849532597666309838223617160762912752231443909947897962366102451567099669537922306686780856805536580188839729520132426952921190855659582546060397484019693600815871004573407386532434346929336969888218193834988830638119674593556788511627982481425395854160773902975653321852273742168996519519022390121319981743400577117930750993856901657053975159377682456542272153204551282960974388781590340270116177886092040296412566876047775747428380248307993505162337043737041075392117277388300490447713376941622541189173227800447183268681767739278063740197951343183446942380708970805738281091691072086540960721261877896915629420549402047196443570937064665126593180817723427487607304460890873813992574262667015724878297546159055878321766032009041606600224009720378303641779049684115818288783700473165271002579156781589179148183094737317838589631669285080504652894066919431094715546320292202520390101225875026917604836531125610742200848423303852257736539098483800789355735883486572461023815541179174482768779721194753397188904535375470272454430212052573209516425717448688411609185217681185175942930974521742559524561911829163069979742787854903112150247753561025361668892699458432970773107630829997739858958597816074078321807834971851952263641372762661985999221231418360407711290674642957762712390056570634503666959747026215242335418239178090346853574893547285862386504660226254045582762859899947918579041165387837436492120274853767999598527990668294710756800449745174077753799608408788730171572733174192913502539212546921374002538040179380917714982384794661580606326768777310706887521789001520167483304223558246233357039372116777362290390620167959264194612034763193631031583375855166252606896478505928423535051645968327190147471321261886787763469133958403518502087060696784597110958507006867894984796676606827933054303359960264981889825829251859361894112340392374671610694663136823931156142844794184806951402956863205469547950372786143358503412567880142332739117551665888999019557614114049948100117498622884517854487228296014596361763871305318418052096073746378254104211915543513782087856687773292006161049335269213587892807098124410786594206962148318072318463869870503727391706535262154429034174107151879529913543765622910226457846541609070116960972465295559789284759579365707055608222146411002822353933694405040115366544236837585488434803463747914489315418430472758654348987132763950284813985780960650381739519265306975449788702200638636152849639547838667188788949109594858079550390754250974312870642965413681242828843022831005569738412366203669035648755938083740301131584439410133533589715825669804537817323471952336734667295196509494578833846037876109610934713371426504986144557051668591644274650053518905486938240553620906618355767152833086780754836565264359187850134819718607436345748002736624513705708116405038212836858555270797207417004860566176677648085945447341090065493237055547345043990701303423498701443699994020005538184697239022873746088705437656176886940935049899997244532156649567977716156992480532295037490711804619375788136978314146979393360695492667910269304150177231305372990005464515447150476759233623380151121915478308745218298830770295486094298777901949521535235256133380138965739738836917573324475770962220933752818650792718437881860539745339269475788601944712268580081943789438029399071970040290219195394667602154584115736827463180574120551983082028189414413527116880573629340912058913277489317963322099697153146812625519126919345228675708145145694290757004709525647823730811771509070094473796343287503682484201027544537405639724649556422647016873306947917303860451840984848662148679631606830152553181510730714242321437915770028130431803737900239095953215005560828866418590605108060148836049373458999170964093423133620870672954231487704180250749796882571496805056017515072087069821201599202229122693523507509178776645979251896507657232087888276910801209688419218496759381864928334363724420999982357258457685993907479419710506123207779612054010913844528500544237599288867439773457093666476218771474611298380780667845378571424186511960993538910337390054061237807204840304912053961844067860151619790681422169975103377237959776577124152023010721593220498166435759403504412018346809711539149423311489296233024954187353125709049595802051461354498379574434207712690977886398305385965735064245134235692193865741070064763539065476169315672559921928348327129568802635214799941982787487502402761926394963468238170930697892684964966696345147287584354524236154502082910997906163148850323821434642325124023716600180164085353507311932507566430342519146808062627348141468445752972920543376966886738633606284226041844349142928330864429497524759539494602758950295505079899161448291939172825652305555518883918010261781065583574808303585285911330280898550278620900057015945795283003637238181583532158749805459196655087130436137067558636618693832822571656858354171290878224682220804104833208859984544080808603982900695344088878079895870429536941200788347801056725593850810295976712644823059088864926032025843810456072977475654614810404286966050708012797057800681911424322935667554276063094674716036023446119199048297411173452402794733353119353759552025837807829945759835649983701279226357240581566867962224158375802734052901466430628658491789162390267191061883817543906460225707461948582703640419961654106960562869319322084209224265938061385664811216155051908004041934380386036057582758860483787259201361689950847258641764143667906264109602287045703801046315287949772060209549144339682150845251647099612934402231882053110686875288668409715029714674022960741858130637108974885499799775671793231540562651665427816976644671462390473152924946746459572290455100818028813640702956129956819230684145671344645201076147772475848379144412289673133888855855482087136396951075586403566970190420944039291454261151672705034524170009402667394337352942370348939686612416238535627173687535141188071747774511676306379852934523375934988942261541259992379541992458266302643876077337636931422003249981814023021038573665717572199709105391219298884171030197806399252597291029874353099006052256670597876466845993305960779489850869786246237078337828196373098709712039598708109357008659918780764683441576313440773743000417033608563292028646220707550206302983631652231211105695305648806032754601201393927018983166251939387948018760550237178946542737152176286855515954911435654005534234064974991540549850504367821322789207529966972090144662569772800162650403467925074701485798508291016673674898371110360213307804348351251001133139887091862676293744615848341037731618370366383132896960344657575392139691647312442215092185616102569224099084679757327219144277360189765462961208258333846562748736527237686489066785173979032342695153372934010895687704862899373672056085459526668943053387324010944934460146190323318509637054044625102067912807983105361151763946123136471740905742917631792249624913789694614401933743108459602609557988791096487241426253460433348928505558899210723019075684645991568195841973227756481803003009311974554795737682392543091993281449562111045087992530984656650401424792027183360810881191500814767216978079589665979299010584238157285372056152323268769756575257746736321475607510630857952279371463148435417536368810290633820474119346376909545948935939517110777957717009678260113810646153640076785002780548205307282781764632450271625245233870840980770516065727476900417675765654589687011193512004831922781603724335129839298133628064922262028786512014207245625892524438965654281121424600295956007221426450525320316355163778943089980912073723152354746679249109456543706872499060888285377396616242174436396294356407276063388123775651807376847465799002530108979076055087448491811432313901565123503930245018632314377518337681366909246568502458421116817939783989998508042554730536080639475546372171996106225480645259349846380641999311601768073104258463106482519973891306946606832081335507107914962764137076265968391669622084115079638035118219487685883499528909132065226340518321303020710899163628671512118451907882501312200320073941381707044493822894103720639419373710784510093742016214587774991444371927255450173101277407728550748512477647453827898843586135383961545140025314737500318325720504872917645740019927118597983662701438126217753168494211455465841400400663854867507196852853870160047954093347781888780987650674661547700011647548043949512771547407503841381157546330314318806944224033287464820868725756206025777034041750575161775442451238203879608829108936320233929197442397373042355418530062549007510543123998160547719810071743602729090036266481430613027314807762432586368516439595495087914344077028986009160733937337110449520853498582846435925602985899695447381327235871181254859175462467329761652739328660746035485575074961539670133042317534142917035075330807993697078579040036949238833750914669555036164327232283979143854086938905507018449720277430286826241792132516207978640833909780345281900205085871201724365348399171418224988804998070601059080439006765677783337077157862154094072769070341053024818424174095352879881470343649917681632844418984128244771001029156080091461604282094428701309179964834300979672241243255940097801582158765035477248028512907851602456817152468866005086947476055902779000481130218474951550223278421791298420545273221296313468022432509712635796533183260739171636805473375347009673827111350571395673516645141382907210870735273476882662929827064746265372190418378803414795733361425714958957006317801919377057884649932803214463628778591368957651468784371285975634086046343990296553417056671506555508984831473091532134624108894331332867573067734373901687097951040043322923025522953944794763455564869019717845571961016928831786846489819465276764192154486732049179711151403561234759274062395479041708088525118346757151308676156984089471907138103668601101133085793803680590193125559664352176104694612981788388889950439870572088596152263640506001140852062909676996035882345313376976663957657150876921518651184657651471527894536108255880429966118993519300930041639798883286697305791837301709513192077091956304947919014965498369804498739196842439477879368914027468859277108060447921868770717946756738941508901631081792631251759473178633515552754220994959398614324676557754710400812301533999024961170074289499131115244802104587100190877484942001578550263379370266337397860348511651557897616418266303987068736939079428166410384785643017252285216848004038062107850461512422835434574476460521839853293469896421830331744924787450008563926212075366229882919425385350450449565712415082731838880000334044607659323129434350719337749155910083232979982818895641689122487795894628402549851470845321521295527644226735095816647177489421077287172833495254693160036820208330848572529589077771397349760510500717651112221086995765581243387589703046590435227743681512070777772087902652001484923601229480077520068394620320532132746238185002262467910755959498319075025939988943417174976654769058281982662003581277563602627514756063364148683970354928953212171542472597151476278157005262029892734795866702757428359831704239415673275413806336232721830930296128848742837280542402152976339409238593967640015496234059594277685998793033837114165339073403882023287111776564101278516521231626926648807948386260789174904944824985691580380395935189004218620901117449783204097154471424647143923891910654536676817225481296330034797803927784094376126365136741219305511781363409129120913201677388443659539603610551282478332512264168048443733124070662947201603470372175999528375119214334641032590701357290489065531969841842067074839599333343396116338920852939985183412005166545277715371070416666358610795289698703236079898379987631271076226855592994526867722048438685674851662813022154232116393380323823376797846708717497093817829230169552797038138525878296121309202733922672939465907707526577650410795663324147320776697520144159480690689694034120051142875629640991756332888360628601336143783351325800588224441927395141324390251584073215118120398316054481329941060168702787277643845855912385194112704097751214523158029503489850659254864654289725546323803676992261010051685391263112804038697612130093577631748091388886252366000672746418889534776392783963990854989693122225021555520009697718786516127982298705970270327720154469934880398601695635118160131671444791979472854017083014769152562259565651013753522856829266052287383168272607423995977608503944723247789918629197675734514454406783569972078831413404980537080970380756344083380540066088354961630735665332468624309362409931002424403508536853880924633885367002026734096786868064392143291302576902779724477914655378882037734162136626179173847960157785644043630920689498530001667137337314054574175516347816205831304573443921871178822215785386527844966478525345708090536943498244703346349040821989591184593173882934890712061264143568172444877068945951290135029725020065700160066580371039350708419441963864238784341767459380293214832335937999244433332130249509696441827193652870770064657700509646433640905777406154458256861843169154765668574958568537729679233014108910465936557883197079331110874385819295175416875906867720675636574091434674177026205276887759749106139388146543421385383318562057608161500638683049418875953440538491115761541169438875024631249670058277052667460878096720444082049035497966851856405070618986492570531508414019084497337492786293008951059486736199904955819207026705160867756707512675529124079953118178718758422707713997552245409406136119117360237412569349044735330817953933729845175451161832801211897345552552293407718799301809825369037250351796183195873331002186086146285497793837747819368072030246243813112089370578136477241998922665249916281095595939583267071826823773217339238453836840524466711687148919611902318573601439863678595266762992250524108971735160527513574537166079105628513880481425123853361314244352706813273648959612690885019766580526125090176966356573482677246497015288561494742668569340156418711398505011794013817076320033334065294933499171060084114927443236451292274174857408429870108209181325260645842323191696221491602564462361884403515108954794609325360447454901052820794532261760933051891472887123559452342028729768552366345363204082030263400971200688727758506327027841704178909948911247766823357053046136971419147376896670430045028660361959332619171198902335795588851388087008493150477619877215201044493406190028860333920589532778105948986135484201266494806521113363676364120664572840772333418315025303819176179568555683750405119060902526498947415469673938050310291059828936424745874700161187050830381628735984586712634991817706849290161531850990210631023203268566271738762606626015226117360671091413174765870412867761131641988436369199525443009482736349559544623987799820410393677683045981103458711712046824153637170194493571077843479578334994336699153307643501946653923719082270939009007868205080191613228637456476473544588126449824841656926173326332414307844554327540905859074410122826211142380067409351839126083400677065196290428368880264784596757199489167786345169238991769067284973692074387593097276743615947825112106783658022039989534842904846725961655701022990272236658883480096510094048483656141566205908805804060777344178656556505981900233205858721353459819983252992688064662017406102601701663934906199740297000386670087694982920285865253988706404845264148415599494128572418031606351357134545192811079407156023391157096903008741010329591246205998701752203651496179843971774837167162621945722659142595534239563215774219405822122269204501441268539228886874170239983186795495407911905905840405737089567327656916544906701611891681997418532604551531510746799402088231035648178931468853044169630361867125831021308008673084110199916428856940510470105736919748841178576708544317892580114674322232006657526072268162742456490444528359885007972932470340828342358944734467329854949563691357683102164082839262239088774399770184673866300594268638868600471035758924512913771169543849898713467187909530844094092782092593771067236150724780451236425789853826558083654085509930600750811450262463371807539869144839936711640535199510153995270622545539498848881404795072332491053532275685419492835121761007232312776101451769875591309113457747963732149052675596530557154832555142702173962962818067873871218070902189590144018495743541955438793381032225363108519313999734331778995115780012799143004475148526718202485192701766843156744088059032967302228112973079808758102669477298109763405512701864190369530936125211170479801573622398422160688510978078521263607032602812921836808064410491650361955063786161306729626981158847137616959908534244372259960230540382843936348624646447301390369188870295200896592583818712139546707055257686367883128895464772483202620757115592456482203903174066412330121057897374387602562214227824615136477280760039551126423429551308230892753913295356632674522299994122981163921616400794105011569503529752502421996576560667074898846879725683341589411602959363490988587453853539623047001399236005609412959857605655000409095711491377125344695951021657804091418531894821800458663977914328742779456917190590104099882349950914372608391748175029477854490569412264291325489227051855489681529223230012584526089469382464543671528647721658557667931369050270465878455797551238430743476678283118380032515609735114019568417940559792699627975458132788533839275431401293215409800053120308532153773171369779628540050788983001572752450838562367162853696615231748971717004170679579597093805926655783416525388365502657367239293474361275608920957086596381396480767114509520069027248596114705303562670156360502084829452776475411776535819531751975743999375794794258111171125775947605590593170724221355202987654471365364239223279896419911631570823145469447681202318340220075875705372153848710951209078615694637123675137983424325753540854406902206108568731997418110513222685689952811383226809636783983020477452438309082464550987197811384717884729968002085496566611521693971641459324853124295332207977516573167278076032805796263864100450758166375580218002151392865571837208067862177558610395851041780639886324008826332929560385996799014783788683222218860518538848876074908519793438227033891298034188712623949834676246271114430706955876603016309063746715511361740690114999440479927763522294411962074618132769233616484476105323935691217761436862896336347068325307276043921147250048467802186436999982799333652110819237318062881670655600022936774133427977021566094965491897763218122904238112727979850818177475545636084232673525396724670151495227443987680453374399192305913726011372500198634723769013604679717296467462994672083513140501641013706654145931436697660573948316640431383568677572173204836957949248909597239180682024504028690568267382652096308863528505275744432670070912591533112381076315354325514824540975998413999151760248733626359294221144159969685352830074610271805760012093404902003013969494678777347032155042790129330566539512987792310809684328254420949733903020391889123236947067381108130130019236109443714502188937067320190861560514081830746890968424133173977852749536886849846234872426238471834928001533149316002288886064707643128936463981587464136343794825288372791021137051645212295052227167440606454497446050139652276088924345515848644022297772172103630155974713543734999006824626193231576378081884056562180255346824593267411688721340709155068079617365478148080842713829304661415141281062007260911177639203473688423470606318034991237256056712118579368690649388598007181320945173348389028822799207655902708980584357653604347834663206511905449778671746652052450073511617957154046816747373569009655309197038383049941544528923078666031494209879411255539069173842848574541496538978396198468617229888978837394093008074163913426174380768136946450870144701160802169232275378847587523122180863517014316310482855089951824099917386307455703532138720119751084097282493638060484780371633946692028060498056844977130948071417464203813490316524801750379372329717990237823980340998535356042621869854804321539917847269345770069707374567716999090143789134663842526575643705578041273818953418912235829253477883980557080934133995530340464811800052728668805040235837917751569975468489913070972449385344540978240734249806110383278051850676512493513077841023558796592528107793967159736843753220005414182548272783044389548235319632240344753972956412641741078777177834617038788605570235466940709947434653101621052274736376071544576709143073635400728600418984678182546891279137639226879953218454958085648885966649330128852973962097437253816396040162227985793046741291647894261964849349891537224211474535482319982117750159673959399639094316269881575800503017940876982819630708974303031669310314206985158560643527984096154056855106324819275111670578873877797183941225749428071899462576648326264747780976718961959515269996765399805476272195409985653069508064008232928732621627042610294853350709131482427172082267032955612417297685529051685376178671125887733307170754645603708128949588551777719620204742636599080213869518347321672588392153562441305723229748130957426966336468590156095498317681265718492900710561423313208715533026126801525138060547928776655957157716789707383136341828704927455407402089330714919199111752163318644381371165355562905545158237208328491977748835903313072289645853103616158690558761656069839116027680054914419276454125070015587748730352005083469042611815156697371880269509856918383451695322064693664425791448607508827954019854309938760232956222407430014269951214716027527947803962340052275171029268513260317924582223231355055160405963854315302097633002438770066752229686291719397839279521372286338461977621731142953313032604725859121512174954166971471011809190372998362411431399471983780091332918001563502058460600552175520431558527850007308009056737400425071643859337824739760245303599871312109276986976582191306399741702158071272196178104941854548019331298847800429449491189699933596455892524547031341093459641912653403970936199842804068439656885207357565251030093579025664843953002585915624834636003185552913148998752764056124678120811705258619705340161370936402789754634088802944661343739716796675314760355641525466417796001178772267914427771984997369353499383997857827514637801020541982855720197735430360797877157188363292709927625287123188213459127812804051997675664547823312601681568441050058622793564093896529588023963840776350381349968300552353297036555316946396075380954419963871267057683065570199525716303649547930934556655328032704107277067028536401019508350275124255181052918428348962374051047820235789999505608546253949397147536433280360320286328910826175496585979178462782181025022976500256827885621611173852781824100578486818183709885386481389425490919564985894663304850343541374704887342447844332949436626439648626354377167990350884497399751354262265560537947846942867179918010748231318843221403973901200860829229963776597334653583874501521815468769040588865646513346232795427417191789448073380449885427851496059594066627794599429679676358938958217463043370000640907965609740751495849295813400891480029601646611382670682431684026501777882309834195155113891019612203679974993724424010491641772520184597800840759038148664157985059101344148313636590847096460324167893070606733082270481457763629659874228132201346838263377860945205153541710929678286661967679336830724936115360722363214314063868534136034568116534884612956264602539673064797514677870111998758139208179841372008870778087669001361825335079835861531555696081825999064817199106459182776172599047743282418461290334679252207116328930861132622210826951339868134509281935739775347389729095262983860513870221141003973500019966546445125350917832191601991187827488946515487159610172617807492619202279518913925470227051633674156569308877387574572710707599192562485744966375891899825962913931398148873059294685076366503845980223412375173818164986933486652090767641398065274594208476140740973007185886142407424172080375449677600249452668454846572065947183471676333282207048172002871395550284139851683790994934845182455400932138179868708853645007263171116535528473960067578332562010830138202838295423027838274803136341020153144427356237226248970827847649782138517249256290759676238830449485753598389027674541432185367410508697489675851726787661003615394317406824966648629187506574775713404663881027426202655658686747284981715878201518044424987501178939232449137303400390851964815439282839020607923337435446288254339369106334355548541888283479980133290792462440123169855042284951865221162453965544145481977518451913419389846964825319829182371614871645286384403844222022458813745868706260489634950205361559158216297540598896339464732295797112764461322109288282171325132476117216858714850796632560091349343818503639841489184657273865613166012221376221593032042778085366821286802892656722400274729202440535202144031345459208147128037062311628532878101069802884288394722149698798133356766610833239547493735715557607585418209838276511364715619813257284784653759094939653555337768618144040229046552679684583458746279938718153564911707296567427499634842627467541588611906292808569493955536727109385513083759631484604495621520341014719818599566381786430311427381930998077327105215643014568899143725275812803367004598726893526657958923926963255188857970511770258792500618155086297384180649216221089952333448973211223721609194162166240604223688454723771695345333466106723869079390248821023426537685006131790064466472926458106713699886363703122712613706408212960996177133991333375236237497727828195899481549747746251216682243595528388742049031453231531373786155369526030345237356410787360055920822314633905293427584575605492625337254759275174891553264564492475406849087034550886049286650832159315806864632585718642600107547430821539869778159198288434326426665652636274073589244135594390947711705347138716194128087173326037937144169848827481439120121149878377451296592646898900147869729712229354507779228366722536972341813741424224494566577169783208883554814631066176335793473989395932639122107834927668467213318591753721033695167000361057417407243524339978495223076374088488554336713825853516512210534993458174564203452508276807932179432183682063692665080155806702283185203002049863887543614987021206817102486381457747594090344543865594831161269523818701902743893589700462139570174716330784385802088846035206090928525336219387067734236953263015292068513154385581987081161796137945570308620651259114006893426468451023942466688716503737820247135814882060112785042485511085046024359133784455016357106773874042195953562718499489671768685212073248514759022349945648410005785329322699591065742492904006478084212542834700612731921735332214688115504312104021338769257519136686047896117081314003743767036314939007045449889718103772698870281086947779337912796072155022472645146124125264504003859312062159105128178085870674902404028912708862050283161316937471024534243113762954581922360922038645942043989623344723506926264349605782189169977769536354872551216509815385560602859506462782448474336356791075714585736202280881679129614494266679595486777131469381285863009765979580869192984485071898182993455037339618035289823343035079841478630420410558167466638627028213057458100427777797945980422273932654842180230669654535657171678035471554803165773155781024381487284601734344145463765708035181419365446694090169549759870436490313113282893954723079625511493766789172016239969357407052737232471911644820049799559331049456315691296568933239488258926233881686552301660347464856951297472031659742539288276637720916716827521609067249487473446145564293289741229913277084837249807597742222391496009919734775484943841887719307146663632129102387498842276853881486166964777278818246425580906276176570178113587008406260836678617383987711304553661258691204976472268028330463495614415365848826040856219885630225498253292651977131439068824211696794587907148786011892305466185781113830513385485362074119993821997267927077621504751922324462612166462017823095076060712429614137492659113621506842328088149101202688690880561817588405088946490078646419374093142067182019442687922704805032483504375773266049371281574428101220943638948629268153373557364680944081607857345618855194874116122393183862823248184441410367478315120906865033636921215303199193655870254589962560762878970947955595446021094787109567684298746700738596493643320963337135663302692498169071467996895245942461348978554258672719345246045280260541028650480271770437043909354399067039830895842451219275841257480668321748046376601797852243095209922928234385635315941910039932033037332777870018450166608691356096176630872816648006892867363517843982833976432829923678593477608742305756581636133708636670116719139313890337911923062709149427317255301154416504142974026209733574147764640546343254403793777290958129346745361442108232466230700889170814179321964812287861806522399974696262069807173598517197371633729486222348957048248969749626065921657736440036326671913458849031127157112181114237678895562742969541528998512089534536724010390932013688901732206460941675541945315047513872422877623881226676183135195739545770880030154730788269499352665033383192622913285207735478808370468279441188793685020913929851643421671314691367063800852778697496033632419394591916399220472349738986205441557810026417073144296138355124745807112794607467675222883261177348856877184206512083245961286260104185185401034426785011129610160258167996158573505581536443520659172535070978782619838120495704741921499140461566418553992140973425191763725281112059884758627613945489179052773458535958168032914865293896458324049488583926719916717214145333737309486288391985639261946631583529857076428410980325540179937680200021636300045368613375634376082179039835002312741094011181878970089691800350852318941038604076604524660896419463735233510606180822369310428613305643031887392237857202360254808195299674448491553473483913668876674606703415267846631648355745362075129019230904656862925477938851394270730100263675586277812785889186492396813245110224492463197231929848205578969258203731521526153349859209296332243542852549350114322796021242146563121274706963869546891427730784302903889621656560312767282525486003243156878766319170737603418240676595687264046998123377396290629966419573587249460573138423008950424828636979196355829136957451633289435796273202199246643307499720242853039713529584234611984476668243764503214286248942943540675637256116974155366196941757315086278059279706480057441452478027713756126088867902116091115640945493844245774619828789209940206775497698245919570699927298306775522348363474416774543169491636028547011902499766794381670654717057007794594381733846049477803416383958635568407255289833247581899923531974913688517224555842183511341351810419911433439131286742444559008251674408616634664602975978544179537711497844561384388604677119580682053969837460278356341505926051986540511435591078958648164601089619683636883431897994862315413597139987685940177244332873628667454734238892210351035203767158705540008901427451855734255439028561568023487509603690128470004167140684989052898502412131798123316192705313415055966093435222725045045058904608823265638890636039494904106988099894487361451203510877424645408563771519793365496500469061026851087146578865384546873197382755726483793746583580346330454219817424090458445165838787250037754053625723259558933658870870357807912313150442338907079993117156321112294991207511948496501615303147551695367948779385221574476005196739232781295617198214999684045893150023567439024924320161964987729231138565918274698953681499719903265733834043998823548432598084749070443720466546032588797676501189277132156553508823573295268370913447699501317591838126741436647980007439254087383013347659505003672813483742778629793241350185630953274781282199352317661895030129118420578275048779292187162875452885057281294465081095643612436524859356194633859056911571604614598106849238399799661118627545585825586399533779135278916433243337652813199661562645462969198269264116280298946143213489176957002449454383945135001443555525730515394753992066805337522981474017792470893460795028097227258725707500052084146728448061341132967153338076046722520572241088889638897947101536129115769120255235845994202004247615557184012326682981339216275201406268017719000835685588886172293322440667854908152415141622310360104253717392484341711976525652361895659779561985914048358865645340500417959049836588821963079320259541704235969905804887237273745464591413054879734595588392285110532011892638014048075765743430449323976015848191087036826145600235588828441706676020577029510464130388116209620683435196592019882917259924154972826077351692102061537827339831577804220476096816802697284912399940242536756781847554739905004148473311352827045368678800537206440538808967602761637640189770264253686895829737491096193301931923720501596745652280558102572605245665277596772329178428447279885917802237153224806745368153876341302409018779425352834455232136040162174438062817940177258636111253493903500252998561577726284847945035376114806193493315055604744940703597834582974950871512786234403449554782945469464589557993051270575090610315546312983198820597648371957589264216043355759459127699659107589797129562530420413931435382199773265311156956235552137442534988670573782296768945569321245677787040093693960873620588221927401833979258856783729388151648512838344655893440211394937608602331308285105760264185289586151405181705970769781268964051180622802063681794041814890801096991669704339435040798614211629207709619157816781320612433356481043497729267954148644741047341781375913742273865829899859861284417963131036828757927846146257771377617106816450965930907867487009248934330642693985045853536113792679810896222768678082484255799325213202913599891094412368619665259809953698863706460245256448664926796642843806250062496672499766693998315863946390930399406642758616658143671787380155139135185589840030830747653461610828989388762643806603767163349390419808214657748452453300896355618119531615328971827092411412533328504634165321730339982341962115473517133913096576858349525043826911332875651505515034797797157647218303404357238132615779731316596919078332678827020445517377662114013732884857058197111282518925231822150314693268812490873625116832781589299900611269020755850412828441414025755433702200915557539554269125768836426316988913057217750605346220072563627182406662394524889520257861806094344907997591840252323908152221523762823489654847795836581597278596780475678767620262103995544502390742534892279630615204131456071627072635496567465490935132636637821423615627663349329270893834125921044937659510123993397717248995639840762797770253961759923130014818179375693872936362179796179966281692977640299392918214888040553171758983195720069529484619075538770206521608955226353257703407108998900167640703834074280872184883081983447353903312134560513730597380157957433632621479437924493086070870145201023392937150296881610796168090650170613290289348211050858897976167508079592970742791169223843375183431077218980450975257956012088638961855515023994256238575242105366250571401296866667563159111216686302562476828989888676133950293105477457348746078220888093446010686001229756336434844009487879088536463630019986397564265853233129815223316285106882778327830164109345705750663372016501378824452370689623827790765616308248040657876949159608875435405173625336569325582842101320476286123951761540595395752179978801551479284468585991417876641450159361530905781935510746016494002027600215889752984382488181956623662773143459878618891874998093497257465142604839430011736849767045214417471912131469668732523380082515772231603584533272097584537430949435479649125991145068712979466576070988149601385604767642039416126259736785125988112495559971045220504040483702659239895478801477489995564054430124951185838751626938932864104110610039650578335325120260448673648967502047086710829267543234227760847051290782576112572517652106095211140877037707137286242569037544636890195587067117977110286093464404134913420638697953682640590115934409051997248420018356982790157494835871198157959150685336915176741057491748088734281292143608256393443086255815636489100867181766077589694211455970900986705334562404597472425558336870730315819083039252130686264094430807197934964455363747827142374143608620477770891627843502046987074725940799484681533638012629544697803433257812561178512887807945562037325873867883570179636650646404242908531112295115300443408906206365312966024341312330485392220039438166239867339781701878036789687555175508211477466066776720266658533459842576465997793343966517038752375686006308154207891101741243629553962865199089988142862086639676179036678372003704936282386455768583885021819819115298377094492989743322073452747135855376585399636860904296280507293393837845623615236483547086365338074863359387988507483255910879023790241243822196026120821055666783110778573473839695013170819308730693669115299067444336831681047548374347434062806353058399480313737127171574156842221539966780322749477599746071627381856804914055233465252179351768471389623115859388895278750571434928066904396613497140598282588610258113212172109135528819588312574088368539508796161210670773342223392407302817685557849160778249504046048694112540201610427770856823705149889187312575498027479946809570854146748904300471303266290716795602626655936078952545995297447401597703199065573546676543667277204968161775126578555820521149000418823223286980547370924362659657321907580485426554564223637130294303090094240065280249978288144331197796056847186503955497584051178219141459953970868078487235981326997638598452236217164197283943833985994843640123165875597754783195025447245360665187720414311115914624204818703152773449771205665969579647271938775010752304538282341358209557528879679414919120620732166619849319872383565513784176712169503154980159982191257150882342127822592935063507078755836960783514511624662400571196687003611359798386860221843760948956051016694150410978100989422567869784442659729676297309327226818053048548392813178670765219526003623065133510082827267047548322600697175030406375817459239547178646508373523385742928351790610922342033672572298990726979046768713254049381301865615743881728884446388928464846969400886390495869165420367860238860630379266240093207063610372186671024962236086766904543830033937819686739575832839850549955187277176062768074677970139377590455159904596397782264506940339709348020060398133224726679042765378309981110739712136077314185052275384198886523619903146423039905155950172388529715658434379651151783812498459106039761130324617371962191663963662592036901733592104738054479141322552075069597780882795948521297445683527050446325443369148946546357627266175258157464044182320971140465887589095327769682130024019084128631962572548193686334189448362463455150217761517971533168109176383489695389092036446510830224682503498722257398028111774144550327485792702164907984744700102291163420505112665330617396544383476813559534881978127728515482830573259231645227210803093773912742193891267075538849425214295901953777471127044222340255312491535192976800058803399473784302771175886155662723479340493589618220674616064357665029278897532871732061384966134051107553784180714896407891770524904527423362973906551088239505173698577730025036210707382900925882992294384180725098500543210230105432269949030903197296055002090213094017281657737855779957288081843013691769027793432139063603923047467377383961695611550221475630148723528919907219686948549484524031488976364744370693421353381572064720726328094418639314095018416188793832578871276773724425701050780467719078101681895652436105088792765860540058359459204318359485594912546254535185785820350855364566092632946714584140924607570441098476795742183504927480062313487060337752165191207918445573165962668034919390808872741896127156820306135011096798362540866865544430198089677039260758901919865346785269761135658737499710697878874357683511322191400364664093845854547293256042474506129479564291796654131399433061043142946404285824455817068985763835461904499506937111407562758714554193238596823741978533408674022355270775228018578609317869121615108788330989438344287585136667353697782356594732739009131155929699773978897132054547465849305906031531971033336347421751962395690430281311669965487195438462087359206016339897055304814614585672899208724686551189212199486438693168161539045807749656190590069108363344305800780781800545210814450444313771030451111376528185690558828639121665967574383226871697123891675679748088955967933041275044898924426758337148459114828745370697287747913426043206582086132437567243572344103659405469236509376834030902065636424229110623661193892450509535652092096978424467676594388628979254117791772168490640259860868652172723865157849793497885593724916602386923231503904905410651104799294572104182007569752517613167345829933128313370323411700998911759975300482670220166653555905183764698387073489358041866827458600485647812079535056674988896410713580715784328783246073948984077378057686436424301418672100769928276767368026835334093821736138847779612580711724272455964077242947422701360451904261191868050449446461177039908145972173827537540340002583519331672012939462871858170243229129011027516830122951398579009070869605997847653526265254321095328128602392014196852684761612174987822098710941851915016628267672312672755067860724933949109186343755947699648440995138939755042901127560004221883987218615829414212282187398520119009318311468457158268785401785601125064024825911570015514211509627823592738268096290466391927565279708542575487142071435804506029729932410005753438067496406892897065293730336429730788295208248807601636861498524266724600133473047533987718440744679735203360228477082852611379387075785534980883760481523260513619812496086696154688751837596772138046122130049533416519480557738465081408889026633565177780620086133748693959506555299314570032277184569703502181957829956617160106542952164616576732976621947713072662079749165051717940585029420674184005730223005800028777404275122814927938954898927021585418341495669293441196351948288815341977146911646270622090858872518623566865170212256289614964969384616949739795059574964320363412498347855247388439644219937917587766905090347811533096357312946976385089384827716216444620169167622782731679087141398452837637443746736717506478296488549380402194520415854379337885996256737176106077072368835509543214668205907457472721962908633820626411149898710972603075152133109214092723465075181532466764518120165136627206250029229743344903077673767777208290385739392512461897602602541635681790852129689592738476294043877619800689778935469335913881205857371481937208128962794320819177274649938552139724319919180535719481836658380708605797032318246433894043637128906434096444990089126790889095583764589277652210859597337646852530578854087886704705196713150042782867800072605724262231957009715291796648012168409827675295229128155960139679014265239928184453237399121528378374035250639897005738002111601232450024959725188912122932657785020440841207212346745240503802964986374931374655343078411057309101489798883726984371788075651787054509126311380599396084064924184712471944004097125224449462612303580916445049481787694357495937208960192014712249117282442243391923037725128145587793046684422211308098341718952292409963116623315661208609909258477619858016036832217979366959266031197887342756393242945965728876096384510147798190242408448229723835763825107453481961029936549390869069997384136066792926291864393245731033510752955045766136538293361676911999990054204842157407335112971320038526743652559799657966424462917019142127222332773272285098442780083106445298164503381306966127369495711593543267155474913803852807274865406211056893473059229185922047759527398086508478010757016570173099844115071734230788502035011836063663339416768727566453980356358137521234519481813532326639465208455415072854968304025731033760873714649027519608061240499201246326445477013084899642872377765632739933142006386208485958459030607136004203686609982069582258054069197170802896773929170270641193041357966272938767556450887607345654803191950236435656833092095602711537444985685251198316682231736340325411039478403410772867790739701153245757716626204887961428973692220325773000503111209618583326933833935995515759902117063790357097946328499257691472392921152456437571090478394261752082941339847297821576580093242984590281828049707448455068998434532418244243463984964763100162908859387868015507479406627720414570346487154890619905809004461951490828952222669114134397828848707023363119182302304353793371271940982187491496777833353025125510695184351510097545365591187013400007805965470660867905985937116151798547956990859311540354488156722711556668509164479523839014973443175368955083214732043267587863806613079402004893442559006658345073915665473839365846279080683755183427057044045743595576959388596993029329417150795534605387943174158537570165045921819518830217725782717208770149040930720473015031582779823500444437040334257312953642755113527383359121285145749530871724400896115578570483043043322466562936590469687248428200160958004551630544209241439399094661484373774999111695708834318689963952971334970515667500884395579575045811498541101201877775990180549921728548786363095945169802426394577166368912068870056339818888513059103985624206194726027883261273337631149491727305801859253932419094229795959486476698004443502882030306693333502950132921894242649706950132386950685918006017737318046188889504858879889022106737411702595848485162472896401154335781312966207516116761584297837662350549475282198439204411716536965059601437367794185721485015967807080388691833883434872304928314043877204253456503094008082238578840876851988429602093089184697152591306761175734704924489411028843183686940867812821066148792298264971455676287794855301136681538935863458844018834114559026035126917307260670995081888484743834819629729680696419571683402537993165106257706455428381121170397066772014196160195667255055639817309936312595971583960883983272070199687344887035248354090206536244288201080801595471622250795711953378077995214175412727408095259374904799618175517012536353244046917444782396713899470893211670290082211981339318197610426305484359013368683074149685415365088316756596034823930788684840849314652513090619773600817448418952713452006063662930456547561529273890335026129088485696957548657358487462048112654108772683131326194349992116831890120998027266662320879885171484846902224229699028483140536541274713303853953115827143415624416740844117752504911159961770814789743345881045903339065200417117664874668065856158772163679073498766116959966371486039005270405224828810659910535817381700405054832698080747850622471243211507573265105656893845563063041146132905881369204895612726081525688660049408280506927894026700236103473966077201799703665701520745974180088530665806151131955459835301187536756679403932823124421750625875822552344984663652615603796255281559614134053081849206946175294851062950257798639250162138434274802166438699050666678603396206148974653673695106274588244731494386620395934967159763526299636059608312770248294853931633788543431202107235335062863137233303828537706914363751392740193122398506208803524573784922692586887143096854434453774417863468909063728211448834689760505372417979940767306681582151591046302295986559820793927980471185417458868231731519808926113406484805932747908243263575824043613475414959571774972358122638108483847594483579593246655072037989969325268205394878601169546205465564139951601462979105388604114391691903125585997833873493731316110467814835398455736479185458247987099795761450054538790858002698778263734394496597959421932437151384332711085874597680152954820129078237700592423583981523982819844262307584861637201429952740310245553519476239083367634955658947831745551357982501118079934149627669478048741769644991526920725224903612911862091431445684237803280582686227708093577172192146408820515125006546809851216487533779583830114461805548741198733260156638733188799701921200929907970830186901202470465680877698177132865087367830847836126442240355156089853969880604706234779749118553268280849431375196337153025617071922302159343626454148857661060145796940166394637752151984258244634973522131118193351826170332252400092575639387317351455551577704451181401997179984569338186859787128776451816770271808098738939407069574395134991823274376897915030545902251070936211734196842404770498045398102994893634696394980100418698875761230751148347482472001557774811365187329007031981447392766143144814181536107411647336251206200236304637684231525420189903032177620753144444186471623671880809218580757002263566775738185313027555952955743126867371500492687664175634620633735975721386240564381097076276961727068231782262017717441645633295004009405851131597946103384642391388570533706878324595816350045838507506130060035103002989722245700208552540155136517281755042083527575331882550632952230609058268438087711157223499253186711108207435351590646908651246376564170644414195333325548219882526312287252998422385897106140108524039050813203199261976183221107774832662455866762433004037704856521922346345304508097212175911001368658704884572468536927470096328192886181666180732016403593963675223845534101032116188722055852459902160054211671381962138263643630335106735271289324959134127849723880586093176379529269884627815673408315000304860558663284873087169262963434082134018632425156157760789714323681800206738955810638318242124441547005813994960806922150986671132769882153130980684619287837155344563630314144224801716636327653351179576236742254683276210238837443530330882943697823983648976411206052479139088988425182516941365610572962554542457623221656610407566538104030105205020676517600751267363222915822944556805370168648989352632415394029634697012523333149734888835162288480733732047140251320341166949841821824186402560646001100639122209214995249133460474428807679457084196013979398249520364889972447445059479821027771404645898293606951416078067012445342869858151276108435936229314547016846425453280424497604884698779319648522231568385256810733027936658591458413606591114424120391687520035579376878258536938758304722755291331861635127614481780284911818239116421305576217076022955677026736739906531320101368049491472612168949359280148047888636148548887111368216855805651389332633077723500072804705073045044180358858153999732695559426919118043098777491978845380583315521763942761009857351905428646192093855405779848086637305682341867041917798119507999174005985845132971726229341668822565369360710391711013772937608398036554941066635091081640544364446934622099372864624000505586091306727310734979474683554772314744165464325123287436155893757340813302978668829012002669390765359690567645959359878592591961268908617031619639505980237266598701892845792646266070828200319534606283092171539398809039503583748191545542276559665034017542397364123366367760400431203136000976319405141848843315845466037473310603016187409740634012187063808097978976136775657130625959845612118813699301284805552178944755013826674335890450702523606901476606886453369286848671023207481617486912973198229732370594546672439185409452047735485546916743974965578562739522581153533929741402229709507035708766162089254684340037240375425296778075309458852495492775001616014648939287824245198751468165363437424659276324577648736356286026028180957113153219518212169297207600541547505827661078993849479626323928740636116120977690651299730273486575680731037032429768063129835178664863711229301997637401094237122112934935706187387592931509973675842602796973817106594264471622968670091275730080006004507515441172782360663835529145945331402641899829038900593863147018597583856010505604290397366420030286076155180955450223327997632313788846964713319849390716392208506792280277740093940618637708735208619870283704904800682780259630271148136594289559907156026614102188189748662765222688915783073139356345586793853481637530970804086497524028241888178963309942898087232018122292993359788335096146975098903048257870695692150492157663717632267013967968637666826276564566929414081935713555204110954479673128811249972075231583500276320140356025818025281373066388408769024222163311479172572699860396222161209562844534795820956658673080597410490801221598558592315890708516419464844882923170811196348105718731790659110259995882134339348690852496561899308572341138326481757621608536287095110028409709553253650913035331668928456261880448104038030898579814543538029162469060866244944443132889789696201234134417380385467777374462331534949410055361098285554097006144216016993569368689187066386986009996107304308681397418004428371183729929820730817992024515437893410998443304610266486543198020099389125256028794268899860365624689844877003755207081589688848664736801704780453538414655254575445542971371223139042162329838077654787225621348501479541285960475468667800327917136920350359939876632443588628974045014309994114620522460000968395134659446501754886336289444115819621088743790968634348324283415799192330667289748250428797655952273318734507511363059314888770795608419179512134740517611836016885023956885988200205554792133575015410851358248067349895324634429939986302766666111714605820934043839893319354600513726520491711959554108052884410757276184662027732714352257467126571829562812050455466990679953441514843737994473614892702425988056822718499842054198388312769781122537380214648081516744759938920777746245878014317471867236901485042860485612711180817361304278351092190500396575470308693972654821875638448439314580946070988791508987280703933261937735451858658107806829961242606855802258576199891021573142492635188984588232110288848899256503249909818170877685998293250620212669493436529431682108952343916538841705384785197286230904099559390009631602274607932989000419468115810786057572270586921259442826583830583750212130800220319690004003280764017124231910229947922428283262146268099576442071201752159448933482983994477072378843733881676598799089381434305425283660322534233539686853931696696931357581502157628956433187025721203346526637876499867709611210966189484053602627189302272146730319588819758654411861543685493406356818139406676700299635731646896786893547085290898007441510527355968601792209663070572298019933745239946792167319143515428906632029962353090112316845798302363166175434658730909712031310395148768357935325734061463170482370418528481532452248995232669311981660873130049904882804396019408642955100993021333096784765841055442314854818227572118517990075205459314419257736864029708269316145607397301175058901905903109233082709337488300369476353855640411015815974329434860512720996488400863323664911214509293179019052025135051690851062589651512489978436704877130091026391510662391598479052184770047284491803199551226776923657100135631203974212838317228209782748124116144602571316365996563937510850747495667911866019635083477647812617823337036659792490115457562641212917597555493410686389176167838792752939865583348289349449304525798725536286623102497822277275248310904709794024244338054068066248451171940094009762513555483549556900320970578005588718399971696547892212489214871772704273187334820315969644605269352114259867906068893294462447913838108224118120040587845044492104188817934170256929223261206691643962710170176275326487073011466951464276399705655014677823500036992563838908448318362783733722631597701313473291179765248526155015264323772503025834438853109356424823083453858480889999086957620081209943314609376321604882495241296590667829346626414187058035013301637537921408353472183790468128246529900149963817611184372414614988779110191183584749569422425095828247783747470891902403253086799792106416753546727472246854547337413820972537682765222318586303892860522525552538293750803565709100481380546191945320071316193630206847855499076046303576504789472096354554961795123269555057724697672533409995548913335620689521306780810526056588482681554778505715803018936807020968202246600025301897187102853717635876047676196750459941686705168022275886079802795978846799863021641629741425819542906750309039338202572524636976933259244050453675907011011831457079339884851666187349745469134685987361860368061118267103926212289211223420446781076715415623305920746125375756340953149563285071302466060568853472060233158733027661501328111214294731797858804942168531757981812203051588972198579973035854922308646919991561138581515711988961385010377663248822803694277947044862626817742197600787399732583771276408877054086875549802602643517126845852259758997092475086769621918158671765864997048609515245897052977167521904882532993737633866085710438646597526453432291092553809381704569592168471214739624394564185794856017867574590558965211227120259280371107073871082512439737907253274652854198223435554608904204280609698953391385033858564748299353402018623010186058182379881032802604522247959747484125309485419595312784039419079893674158252874438632156985673386804891269817152384320024667181342132803214391634379946446379988559195795933431606060226216996050316561073634394961377431761711205298332543460187436351722453517140860801141555970992310339564136581498448593996037561146737923992881692174053495559002830964188355652257759763974791702053994016409168913699885556384303474571511538829777308481902957246625452245745805212516144607641735505367407966228294401188695280110215220728062801996166821515574937960077865576757347388395640185434144917623392425162138880986239377543273510042860122538009311806666334448361722943527527124024044198547228206528305216264114791272662627369812807235453769710859826720410917973091463303990067846524715993335887434586719309152998662979169956385578145815588184239290667890928693695892451553601593458071749553190801151136448709179350384841815520210766173169664375514372782122274431205690899359751809214844473936097993205269622540488124589984536572555747403629865471372586583337257570397639896524945884436028675666069788996284552268424390742602868027578714554072981280515250206395838538759329878953251113846756671511123432709444025349833580385549973326335401885825280374798857412988811043470562604668278329895443027647427977547420244424316829761260046771442480054268952586082211618558137441489580100825747242672835280486224229524476500351019918153005278173939692165107310638966696661224547206359337147696614809741821480205398322656044467752287534554570200538634305683446729865495381146540788238465404478857775353569194899592564159115250296339383275305325099383908433534029385021056947344925294354383437855304013849727002832918045209650749012820447071379491873783387954621351051769457353958534510047983217685577984559124399642970042298843184355745299987469850762745170502274197718997807988634481222534035411929943652836368968315304110642791738316267383317428261647109015249403327626566117853908823319827477419052419887055193107051456019719105324377892277828128448363379506821232199953846770819352121125803729318700740706378173616550687649224626550744050219642643754507574480407444539158600339416677249650444525213755148278774696325643820141119645717806141548494323955211733379359278522228381255877116824656919917059050111169959650257426877356601201495931957302304532984654949817554702752536028230351974402894028990823552519510300782134271382979484746075500174778421631123154993638422440547182632239328508294137538632921679429957469803121275244014784624984822958670078242624018839639079203692659531618424588618848141147659560827950676591684277049908762321380665068105201791271124135700270344556713096259970463478444145983083327032087949313207175133548939913148169676703715963608129669868351318322599003769621389808752655607036246128074634523741875812709028897640184703517121210765577539483485625278079515571582321193784797366063335191696122545105974458441096757605199962038088604943567845091783708119009256665681191730521271851135185051650459048698901193407816288712497788716920842374392117064446665650106870211727359549669370056112475747504248469899120321598210240815240148341516412529083332673257890874374384269873409142034174627003121296575141293480607789724714708060458059047503817626298388508726703696328669308502310235701513113514936871910026140869875845521503053695308525022929994738044625227789823053916021090571768364445757635866396652898349620164893047076600482716640404396603205405068057154710611774085487187638058379792245689980672414455839374255184702773848331057834607197539448170143005433164551213628979705687074160984402374401465088422830892834921360434950573965159200385620430349980408509594138004789239437082845145349850473553456126337890994391817120431064477123394431820872433529893057905973675537679836403981641893446739928678096204968155560056646861588496521882701780376750585441406106339053736141803945086039737445733471402247884920228075060428632173273059085519139542801813372981433827532725269226788346482920959920894071686287513304631114012841475654938006780924671748255422626613460391505367683152195957871542063966773227658718406429611223781148717164908871598029503529668995240136413475513452553413036981643831073635010889973990135110392268902780144735996457173006362475017392743501693037045984897750780332661894263662382400719520187326079190377783508133146743515792089231062329667552923478912710123724203841810999081220700885958086409314289305877147808356211832295597112476462537131440709967490054269528449574961044530867263441900467742325181891642310700041321875858069209164224273234251899448664728959387279260013673071404721967428812845465695265828703822453783784800340101684282029062085846278845987434487192354714975369401951733829975352747559712696277767369231590773846800994593922077768675571785928668677640702584802074903978402565978386980434709996598356448760339876032537920050429959097958516966506472598724171457398393551553010787855296203082018040789201882533407966709166376412134197075405852744552330698669439351247144358457259074838300165551106720405487088294425782289007953559901413898532052039319849975130872312632237784460641800143019820638778442330585041434784614520978929703363779682751516911718310561406918128603037399775095796671979664095768406191359234508458231278533153619566798519839467168472989616879881325972505376764816214267866063507575283710871640440126393027826378096421264339821552330030155144502566560702613957249437839928719649566385941811639317945689307169854576004061588667041825308488503493821767354254149384629964608860401632556085927086361174329097546362781792178316376084433709506530853828954057702361860038958581312766591498870625585508488081859877573927156381937710723693596776669881321033426036865129799357381919797695741236386417726944738761265173260771759896771431936408877873182555476107873486264777865376979849852856881566074623526650780586404938293122712333765782516222894266931384890289597146469107915361977168248787126641318464290112965639659728158259210310368203716939203458923375230921594195912925774610475963744797021760012742160606782654371812229925549156519549567391712364557868266628509542358629348120279405501349716525894569653851879079660669195372122748304775518843576996554778770682154969090767375216529877764053768829385489716216300962685619702765161204706875144943555438173112098972323584151671496870739915899181892873391508664874480195360562544542923030701202294861012786042166074586958841698680139968698836030097762296141966988458410391043583736298859513714729362535071792338524963944942636959592584297192018448220025327759148552160959463769017154152578942057130738224111403247380342417243905583379740698867064357903387205934143714747640811307279111801404687813961506063865930270065700506648020117688381325033359600032803646554720688267475487962733261103270504545945312345906092686208400529980039424529546635864074373838814697255824451258986698041434432674224262709098031046117367514567294877538138555365683870942142047417851888486471010242593990860330185482175876209142393070657879999583767109321723291665252151510762116355386239509789864939848761137470538403294954611200455214779207118150439441654585750985575522981357696113140200978895119427438942161970735597631129111243857418972900825093709214750419290146885829380949058863910019874375205164269065655194395924215883882114398403848579519935276212504703394834108166728924084638364338809171326334620361963410368774047728149661076889299860686359124657779392445119381171244931750255731610953589993427810676478759282880591162867075140400612892538501688436088972063658267994205044038371363756134165410286729492632058161296289581225726970399217159777945306192520588166949303287676999173447436500442544921336191911722430295245255022023632789955615089654110084189043811229236652794250173816462549269292871194874697528302641861352639109865297483926334150893924333268891531378488551265321686411114482422376005422684722789324666470728146408472819070527430748592876198409869144840520428759219987702779572842199851065208603109238298725387665461134016882861386776212378175763452701751011561373158560240251346545474433404683515901972033604158659311888733848641701852220576027428315520868030072057576325629417926077238659494699072543552124067756006108204290630867724425803041198109498095345060103765837479556625474019812237124887820011203243131305508032843716723356942069648315754076697525629366926800558609716641114100227764530060537636451614266228138358943349286921748466192728817000627040576392644899588851141931107612606512011586943350773045774376980187061340598353286592548658692457633953457825482186906080262936543253258681946860601903814064236758193074453913818427954238900261124437138554371643762633164794724491711301950501276063217039920221855563224354461426642365413732187832792844326433450294996266615009743250329057217589201916877744561098711003175548542080557682008505956904939287431082938363079898801054300665567747446700024631657358683724296297819227473044109193960765721710506362144762715010410013638371984063186452312147810921176845956747609752818400275702589481370426019109208161647034928274773047267726215860177642378454180707066046585021336114779825278148121089929026539949539493369138950078091644572286302251504662784166818874506755517933787642641405837329192127597831606829111640726810713562142077439890713927861050379379987653794513548465093603042414499698141483055641813851007387909007920129118412094841462688898740930071273277732240329675323072992062319194051994765382789329316558790727380424676395237704637692585652073206313121102117403921852001818395417238074235523973480180611255182189440478662655900205259850281266347799911151623674563764853971861904728121999615571480118408910457472287746803843917462113812554857753833749728226607705258400678185589886881153525562410361285817526124982869795503495049679710720753289224254051781004976133983897333207424640134922770471301902735284169391787531165715473606300424425645660941313888776732937873546972720673002119472580447323105252254746428878708163376710555964183418996264498531277751974842954122456262646470198188080433312214778282172775731723987523697725836893164167137376677493509526119998328257738556510048443751522543158955174537648644396981316984885310601961820217977764699160095660868707053899206075924614205545888922235900253937846678348381831291601369754638675065046893033702288415374432980879122864960980759299430177822151113063609485128125380695047507863843523444657298364745878425877961341091025084343915037737440451713824744043151426332216855358925106480289381758564393273243719319541524206080566058373662232650488420885126368528351782807100795114198203124879483209648414856997104512267634749486881874601433688070680578478698205504702397720232034558719543186663148539256895427520168492138927276008599802297780614281418813470615493940291422289141372748855516839090249462513216743496241243311200782694703129545892802940900804178047926920948079288621357262198421919028473685559498390226602371044463749873641670182726258079792529114453095632854672990682964414593757753850439268817967500758199495389847107780531952298265981082024903671953163309681418053801513060854581871400272156056383929157860010190405506237585661403867037759900859632085098871578308911330786327001064620609608641162209460377657824454833155874865925788720946564097330192617412928003441410567555250320245129085408167636908481907063086779525007901158246182410916897792011127276804615002774520852092957347204300818351837414174326745478559151487678296961003344615756230901000376521620088785412863253732186013980659024814079363604077934772441972458237305380310133887696646885376255620539497499533491656666265086633400155779899893542981417631800608124529429076499490815373619124168539370003623271825653311438826488391793414952379087492728818831878980439205205735373630160246908149612611140397583172622893808813518386917484272466769628289183791153023701833003292937411257775522587920007215626987270418847156078222799749279205530486428898847340461569035527548770464539745475232897086347491373736890295426475403571398388954203263178902702973714039289238095118447512185634881198511656931938571506825267957178335551367242179269599616692342020725101224222235543184423711780570600024061567967599801696714759365898375739806314848538941445058441596195679018423946028790810343488996059268165340391085554170012555514845960370533976824032775329129185661196743766531422684895670891224180091808659533954377768208333935420809415700275786889359867258208321854228390002840313574076131537475252599940335632434920597041059600672211003222979565448322290198391609710831584879559632362614001932133241948612093802623808655127330115962289665032535671979540090714624771591466891909862342359441795006510581758824248627454868443607951145734495228076602609947539850331817519043819296937787582372753183630443966510816299852636289577702303129372773907642364940346712167681948337967359584158736139955021195362595057113031130767410410774863329633907618523543408306044600001423675262922854801949817919566250514260810490995299626451216814817771059466142504842606539351296738525560818637121531470088239028432875906086184779940390876987600292565388878767585765862077500145910773829423983342861477292574947701349880846173164862036802587647789482081405354997957267027964788013583770919018568761003593612824830296794789110592675312299430547896995649439039875311693161904736138659880899654056340623836145764315533914584116814664004430098169553935498102259548651707280368287272717184407639280050658680762640114974761333637288136401022165329219299303665952746826124135104937059853197703326335463711543416171814434875052287839106206076315029672519549975671440273307531628717674413881013302597529923316287799183353358793495811805989997918390788102860228605707528987316482353473879920214238397324422680095403059022614945701747757569720602032419503833591650300006289169598516520677985439249168366450433451205736511410445411292265640599079122554444720848641390882256121411638864543816866709037640269568040804511478634400661453480993490886866542368593248457461276140642396170467679816583790739810294517355536378915639967442679776054918652481879686175968346361159908934964174190503756736801962145558534102321193996535867623085683645925416370542167530163712600545960610453059892768958203004874157490319736063439853166709809228134778926265244614430793225917479112464747402192862559722602364401916414229466883332912542590615807051751570772746086760900548778820636885041167127799917173723387875205226152717816246035308113794246594487705251314240819862542393809937626854301815764838043001707573368870395621464277981605365858644835009106118577385559747861754404937608015537139824285612294490316449718889370663591495524759139311381207249872402787545168091302939385772276197031036142120958877397609938352773774086929895719828572824010876075695492229524953208432931014507368217080528214876575241952729666976129681151554631035940146518631837572481480642620522744781569346241716740363545851101933615300978229801991278833586086467864785387531083249910593874054948193504680116034309315268410261434506095812689096770522530713235009172328843438560899981915006554426913736156233498223616678156355388477317920417560743647696300576463645968398176350318799046669702149743243496249878322376650416153189081535931318368470658275281970880871080211776649567930140881029675257904818410928444709584668862457609139596359025962846868464848266827903567053865332577711083645763637351851621524502577528208624707129664159181051668672388878481030171374925140479467067706637042471833263849481661166591300248299874394658198066365502508206473705699435963523122568073353187200959215490171936848059299840818191072055969470898635313129161428062821060429621968131414807666464827060075709561946736686716753847916127758991314190859900595013685401809212118702928109871886703539383545462537811355773830290822628486511316396686205423055764696373117858603446854970829319645944931487641481875376243318748202747128758927458886425901007117382657354888775268129288674507928009049437530955705294780731915304641672002790170961747545388517995187099136355263928946388681005931685396407546822381080091990187286278493745964984671474117534212289133133620882176854560175422268558305536372571656328291518419005094215461691139219502366527632422950647192755605320853799633483352857768116034679311979318640659892059144363592350506805179310207206015280368128460170566551293340947261546723666929477434690250167758719695973418284416669702661223402132923400456124490587564316508804801074484114050072600866763403321060100739483513256315264994397857559714656245687341102959283564334569480090144628981472983535884437217336474437732588618622138755280299440694794285028258133010572923671442484037331290036856691890837077382669718781273161331083246742719037781795579305402321490679590208411450512547701914991701249930970801868308986424868634033116998349192988666435559749024178867107891538597362926370701361276517358309652458118179773452875598044881531318391871303556175449807890707777206530321800183436204820058927485872445555822355049868683297128027615249678271944915534501111026592125815338120536198192603362470584441892297515449324624812099796046320379669276594872876663451392362821954828723022644519210126425259609626968727055068404881046435530130061484743206905874138977549729540569767602666413765534380213471185022223836152461098923646918597517760140042035655852638169244417094478150782171562453282567616416780011308819772210643003359822528630035937053097668389530627558474450749826914528730255462417936444908177679983336179040685203289755409657690582028899771387352741775289708930238914172848244959405665138887195258209922044904252225567223773829875826082330155907303306752914130049322899465857978578849305343258522705505337262052416285479012180227171319308100031421054917565209980424294148532280991136546979757127733912495025675313262568261180956995540093819849296470140337052212860750574609732232440044239406281284905411257136320814374876659912817841062477260716852451163850688341561119431769332810941133712677306360391395585662751138123745423661591975974732270263450561352103551403698299419473731528771015422034213648579510383228183888487822577259155983433298590525271647082546990898297158235378934123407058710234952015763687660757946959805351587611729640760308390077560470105446067162006935138507512943007215935584298114632196200521408677400363067209631799322286646910383377214688390914190385818197286486516477577867156230473972911415389968780271155463306410285282191168883041947237492741443167697502757811702312509785838021494558227860092556854866098508917268368168306810665014468795595086004487363663095050978671803038203995069495227378710965697512096994652150866439238676993909403712696681683152604987806574446112715179542286895099384881451166530643781660119771576983506263058544015603280575517384151226600774151711975308479596367519284668634858526382846621839097333349189666730358341353472520155443896831618080081341987268351507960373589769511389339276682631862742297284481694650319494804619807408848683667484071480725673712443717647076160090542954405065257171949276600761641941836663553548959071944881277702471599901727266961311497663217995785375502925275272240767983718639349988619751194500159377999537110452097280818611974040952039779886062733880375110213486782054924661250854918100369121880049948685998725247143083511530407053105370032441869898787040015840511550014098293113290704834847012204146951711067808883457265707611070208149939422215125080099048603348875422383113846171458430397041946443699716145747572013318987605069600610512015548320511861597336401965425303831682918063580908473829330228761177160718031180968667046628910963246970879916411608696342580686472870896506602593134427166184882469458859223640001981196197466964400301478222130649335869090486983344259753839724995763241890886288596643949358435197977959402824065333245227041553179343089533701876530885233655935257828890234336826595624313769677847042276898111513915177200685996789326106144941617101391893011254757834160749912553750836243057054396392359549164768391988387768030733153928058524426909654272135414749009346230153362220977135254688716175068933127503817789041667071655822228322617992071529110814658101346212215398959406992590898738170540540553383985314164362057598130573811088830249069977775857992826732888536578470690889072116959230282074045921193453759353678749624956866577158984769122906245840599800843965630426024285160801006280784928907755816496559475983982382959467438023189496626304643005805876032109942360223076443464381186720474485008989402955090484582582091364840922424104719326663590170974230060428877587298641437153724207252017738203557941349057403613857876012106593756588034209968833211539497947516121545877924401870936056533362439759595511912942701924569958475109034020872658956838250768893342647278054650265424143723107860367948630387999467242856905757275344815883383847869531897598909470700415415474412038272003603762807807284325849538193379395537046551483703094998855225677449438674819918863424390114736913902244846162735240578768305102395915521808023216565437595467805514607645651984687702559565444130074649764925881144151408151048533163161089715270302384658377492379476889334573891708261535428042458291373152734583303347723184854602787774312081075419515939942319103444114655482866212875460724611441576696591130503081005692219189865665663070913908921726163511947003597500544347226051432903323572801292415480846675371984869447078853139417762672316985280541204418399548165970196286894195656726542204148559158843217113972822324659645267552647736006187327971872493150591984250811354544401783928725503103979007181306957747128351832282977346215970427691824376475948024633214381009434221565734832376119642824353102096837589576878179747624179826523689129957883079962072059307501499071092051085844014173435883134632182483556541922567189521734604095883414489284268481209214390273344783900644979238443084141346650425373005465273709797388768467404193101521176721603109209552059916731809995833998597109056814537254287969505102242785168741612959555341383821219357473368245101881294386874968923019775561741266609054161429010958287811089954389489628619523861008959041198717257465562716742989092956333363608411666623087930058223864851858556420459891509476236552282642226669042498734412214156045272560258166254134080500981816939365998867651475553769605234821997406153230616430455058783566267667153791924881612989879202619680831650673736011697608445971686237542655511214760129195168761406274031191571178486763895357878513195208507006439364995181994851508370155480368051312649897930895576904494979103667393911331420584737426280567113447797873967099979565659046972371222832898025946949168238320242634159332532288077839005338839120159392878267003292496020542763377959727195525518223309041813466042345440522519238971671209007381295956930468060116028651535977700520672885773843934904826944221039648251596772150973095356355325782259082006999546245229539696741396194867195165643589065691427590558574688322556952088203193303054526649095907626619195364129365252007183563107581783108100897303765029398154509053071177365407200977763238859650405430167622730080008349036028443048368743207487096301174493308809668572424661427858155454005943038762129984765160390467763698036390948687103019602530633108255466110815072290712051536665391158591734445140770859558502532659507812667460604227724054523240002211683062159872816505316375211505769131467232575439931797788041009303768809574833598796573953498817367417587180950845746530079325853593922450996653802822231166436542201278418663046271542825677837072697298536582303957386184172613951186779430025877394542768681948558292132855221275779733790678648927342165554282681835642182120810843225627760571727173373331274678125901153796286969684705479611715750235554473846902647696931276675413540099066129074311044350272384526050937359855607671127617849722341264543452063021755446324793900385139571023265524348210929608229528391028335824377119336559714716812167992880494363267909875144173376967424238143557513146808717590390749000241819608874153054269576876992247311069190716871908524963812467439546937485335687529985711941502486470106816074533165473205616631130153828545712479636160942610748909061800216069647265412645531383540066446066814301473900996514318303814045139320349210823109514832695924695007320643310464805727718919130831288077787113000962457887992306968667259398987447060015051939122726281163102641555206284283037082759066800018645911771915838995195987880489328091631491428488864708718911705594565007820470927910275174417975684217133401670686840671276206179649782675470253310541070162870189678944832667422839203368188585670798283226000998731673656289061569232142079400727936061499773908581881551459459973229213483083423655960285954421825036468552709176140680703410108610444137833064906930582566199298239618699462129188508327254149076865360201764116065490300149425370332286275627248776893473650902210980935741213871124357301759569445640792297217875376635085730815289226983129848488806873999765760380444730424845940919930253343586983947619920805498933187999383159482665289791019048741662358731881675167755425634215714250108097282257085973994517242724253542791595178669637821932908433322776048765953493475420057073717336304439834105383907374586639710531875188534589440912445798267878039750438659858910154465959426556912006600970048599903229258942914505182691019694606773053522053421141150650773804376848713021746443382604505328292874712922154208090086249062943640375653458045193287102127803096589079377784055790477616240794769870563052120109304007268288489911104630597961538431067154536774886431792352953024714609042112084689390459374378816043471143970918876297967415270047602590834391148937269622937252750802078628167502190472223940932332894253028733228560500212838009951088320055442611130264911196438649656408972966586254175914793484559604324619357982230932801399033212035508360008610088220857701165092039847631765310871037501978623278615039263809252785991243394510873797918617465157955837275197358625783593741850111049425805508992478714773839167604954973627436067019025594088025073666896825283643477206293416190542373953518763853622747411631246081677397540403366629635473548764230454517153214653109936879784098976730979113941319365997898057662815601624374885266170982691068812505052821689320507491780847227665742271034739509758625738408713626987951072936947878844348717396959198413061986291786148043599041155365358631842040451145072113209769162837812951903823183767928884607438680490732576795084742627141834815619705523301134821780417442984179419517391257291535447211201436423775587296911352608601221793782933708543110309609914374771867160695521879934772237543439452372764525639787701736191520330250993658718238563624612020977163878337251242927250413648217557326815364767051242584497806980287049408994635985969278895888692576581211334776518777571094806398656695812720091207005900559175371675338549145359533234428470265674488368365625690968771550620207055063955065694687572115352189111356714216055830139697568070464891124005902536888552168728553826357632082399118401018114086346199872964057228383133977761441781403747832049036489254536880945023326974977947445310374676506403264584623888367075768019242640601307764981523560655338084838277364641092675565562243159403690748840556187146071522421404932019373836552255199939188966366802221659904305194428417181005111340984339600441560035960907866927340401567511104208294675875005790627142980247310619991584219479721937174364522948070952517401751534620459074924217116272125241404741622290214944730436806271705283934123471751522949412659695420361685074570995978264609126434591502931059517422490138766023307351454785023124181730131373516929255645157819730185045244187467704856371254492354415611158715601963871934105873071521466429074216761752280050326396060436366291291275485586349576692240502743387001418021377273862138842118275729173611565985910967114708496365095299951069209353882673241392586851029032115342930169455815656088634405221135917870397546107886157762709551239595502155476969042660917156769983289479864266374356594544521251391501329338481528373130444671385932549774701142520435391091242844812829127278241351952022548512234639197742260036328988888511668674760670220116934002793321995545486907012115874941770085046866157893744762753126030433729433475371303588381366196415819677721579572181920499548308277337931069944211772319951934870952469977996274971908711309705603922267327957993433326812620850615195201600340470166380510371586963647971776631635217582134355503817256780546404953666477267110217341759536162490775555676002575767847609310628212471023758646594246973046066006812731664689062516496205923173327823774454648603927864681546000736087732172652413588692962569318082159545934678865399879613917710298626119211547131748248068870378534936063967152987516365563292726240334053630947541339322842045306301137234793601514574453564266720736202665585850567844742981777765536010819206859685002879979288256085690431628249906982691629747179995014062243047668325363357143051997022468533183924933440882310168250052555255866478399504388780685541831426063281968842663020074577088366363055919552570493817622099860988743999734914482955794617830791475255542905404405922728116484097338700456379871351706434459821392272243050442744108476724918059803679527480888708571105743120345294067267575415167542139014634344364633307825546877868037746842206900986695177547765321756940176133024564078517953146213452834397258885685540206527864780743896244387912824555178787581462225281804364291047642008632316934558464846689950437871328586466879107051707054150009582575385367934359847092823794218145758851825301223631871114168850730393828287299479117524610414771560718567155660679594988473225169424101148926831239074028456999676346896870521149697515153865788597322411569184560036104050290960024551003283350289470254253382108743454627171013275058201195574464369711563143274550185242427245700553540018513158922453473380428829547370193964144731824973331928954233423136926415295893467442864833582816710867448541805160092618948056139993650936440427989716900325475401747689537685758431446417311066417110807988455067014065771995319026342164057955188846212543645589396200687796504333780693337753960198858926229379019995065333392054267704952213083888057515762845986857235562220335122645788884269694677455750784685681479289259947853899344475554537128700186019480477680831026649283041594793599856805921556449424910937260611532060558328431223499046846279837876177711875445800730934072092208210966484113259108483850873079011225344444676510558199081799523983743619908879027118147706559819924369836592279153080707882678278311662852994106579692167264927779084078678590570481721629998043945065430555100356759662373844700055637969949633359283338856375971652620979926628420942456603194169517532883794417372420515137485676657897520176808236560344881043410969478960503941685228208824467950165405835270709763643837430670811042398875853001978606858525407098072745144176344362919891530182467007223606353461992880593879783245929472600037552762734295999653164179725084932552713831968805335659170718294198192552950531430138600825887802932945810062052129728606281895677255700053789980562874729793522343871192976389101714830673127841894488942313110289846566698348604881673155743962291623366178973790283863437182169334364159193302921302813883372898335884236167639906668458750326105145417006735497481943677710598328014282219543535317609163271843061327857384455216655755123264267663982255397596859028089385461655175699333946349471874241248295849672552556348997867921992931417078918419792540218026831807196120730038317729460971242982281566682119510210385703393980005590178385494160367644645335286608723773007866124863459566707354232026575202489093819377996670808198610125428166450743058266396826551741291664763883393964672753019119617613366393976567926741640424753354118257848002533081938464290568583965058180754906803192073573441383133194527221807212093291590808548394873003619170228228954699411345027673540088769624702468161654922655586687813767434854806840935842140350490866739291412618496328923343285929071722851811218997716110435962820642332913219338804682937171455668789681504344127073575631441758084778473088988081727949584594617128406313940286847625674863104680671005345651257531861233322446838893443970381828867049420057349132197566147360979102786095073754404791705240251297339566539093591427156128047006155217221910642123703852348817335285231663933260231861479829452884565639595857096151652975404699594278892844842922686590512459051289467848091504221444427183472385549898848489526889342406095463496626766468948589189627710752571726910174007419567063703770572939392672406154764109564471345923929473673477283688787359904155828013037288527317808451162206760375527923647821578588539179522241862006322291949253938892654428272367179135393235382951589140096417365155374981805269343430311156452282358669164913874204530378222628979584438418891673424014016436635532127724081340913941891266818645091439963065995428841144806203250756953858905124603607377697955251967588889576523596876318211415005747372245161000367157218977843311243366639787105135575063741301765148235356225460196926939471184152568126777291259498408228717398086328026636870325615503642402925003303185354121544710978963179248804578344801867728014699933056848863490045131771053867974751029452988152651616468635126819622093031521458620685717756227590821815099160023098961114411117874166553782846430990975296775191015947657367286332969609936858246180004727646988185587314483641633310507083125888072517960239868886413102007264773338451457027151188018476916487820926981896801275146511815158040292317778573327678436181432048192750458351320357278692666298353973134641043016935250337563833213332615927329093983691164911136543309781920767632753121733546090966047348406682039267154843536744979237971391618095816073311974002449070127374469056059085539731734353105564180043075492963449873864195945565146483437771701714787678775041910640220526530660756602231265514714032966372650764767921635385528210714001209478301031830787545742339084894834681242131852950426246495240650949620640755082529098397889228222731550302491323839632647427457769771094053073041304975035231648257489309225082075678727470749474192057968767505035032156023061139669834858706525222365835263997529434409799854680853082560085100845390858462651578235022668289762885627178970498925918758023075910286570585487339044761950468990098898038717827625599142129200922443961897668800840614569604276232560307351288974160085239825850966914941917295018874802486271535295621686317901363560318222209242781321088614785061803480421877366878670754652305160822206376095278528602081016324523409631024655178017961019695302434626316700367626261431817584463312390571118097360801729670133167128988974261609756595756568170983304933888882998505765346493852010300642878374975291272086572738175602359838740981923464779514860045456979167083940429207898275990929811205991305640695634431371039130602580582470822317604882821108875296107096503913221072287624586008255308858262599629719926815733225968765290177524027441188800757365160911661657153384958027366210825670167611807674746747045127247109819144831825065362752802350738707732466808482001922435636020804108401193127160809465845345897618950449517508570108480599295948393325132917457890813278576220100129307701982787687370952837040852740599205833845105316845031252306798510896485744446659182774496061719700800220530263908655098741021411615427258754468163660791021565642127119588632193487749197008005972641509716894614760733534715125869944002516308300747679849858676734652856724691735059297680281190962216872445470060790981650744697509291127271903964343130249655583918153600664853465492819745316906593046672578725799405276378824424936777752957773987729068058479360007427215656263776075046436633498448326833347928621983147572301511768339053739363310250923002152689857033825886726613618885676364096258196349592618697774196528349986993994313209135699527105695459857820358903782838242915835163987632069311284931267148715657212185356585338762222591393755977172132851776568952066490827981905340170318511533953276877315954483798201360001504154337981634777049613008044162657769548961557699588719005328162207299831822164508479261030206439290697534304415598138845567278198268541166696364145251242931076147578400244853304334630162072089492845679900352962786454650037714369983681836066352686338115216517487499823652678458087045116948009254115755069838771769127554587497158814460918320232080967050082700850566636346527904976543088304576314332512725988867386559289127825769473981640927939700166474968736301309133809096488553437382412147665525354225382282028422322356682344478525564472252645700206642661528384408091622917528351323295235247498101264351407846012049943057926492061979378420021507858274945107180658074408773962117630828075861532952702363948578560342549163877145925744618476129415479034137487633886825446605200067047872680473680833423431896487117540288561809962660546788412663176033801404324568948704916740147196734360311103960727325228977273701314043910037718844400531568049340009923600723081525551404816188495346684688962156284171011430583783969437298900963608693972115676084812936175342206220396108559845366287040228446121148781248294865457348718102280521558404637402250042128119939025873981084986877045892998776595842063972826412413431760331973348065944697855621056058019086992624679383641976019758796111633637113274486726261085270288393442686651662013306859314396210693950305835405890076148479698504686256591380913388682046081178676061327007962727247132423982203225104584291604582542145664280654409533645118507480346158964781594412779920936113391662934907544278573745916481059450284147422703640669854109357681711349681821031800752921943392724876594094951556582415753953135689417717258297139877300872536736006509671563110333151961956837137483901938922789419671475510967976300614096219125562984426308800229088519156131183352672423853087665710966706793637932789903141125940178394040085920235107194244547488871235715503489636947899467028855566825173274896856897425968268858787231463419771427331060366998740461302031181033300397142865704355163102999919000798871618039144984858569905719010018538092684390726806224022729114001053597354904352496332302492828233593465358166281122433233420120085169639155142567295888093025155030691914173676194715946628492945189886284754527078475389500840321360876911973719095921851196527986009254053662632669561686419685614397787801323957800739164707157587663923956575396211882850029405058222924386317967201995217983428660217144438385863366465022445310379868282728842206207735300346780959669422717937112400451601128536026562286145058158361120730492702782375764312385637637874961031564909301667992915116385408906347432335701309328116835242219538049037573745269321795724970223098731705475107142749002308895904296824891524507992340877016625979864729597223747886452596842842972783035077886116872213790461890541114944139099604192082797380106014191618713503192889500258210142117815717342213419416664768211838666901810048300497155949499889901239727880609844213133316286173454771416733303090045710364781845088275793138472852131055849312727571357408304725368850409081417445340889938152341294397406851389352948417797653511586143384617584753980346490886834994739345654556622321007694413185450101645122543660264321430774856196905285692963637918961045265217838274959873343233826108279436692609246084037844339567719200743834734930460882199445672511848669658884712298437685727765959583047188849304456095405250272153818787171941715871861566214301679919130504605069453575874559406370815846612335485644150928216803585721931904147182722150334067452732092667617746901767733808862039128387384623715319087300702347411703761555546149532430188099759354327914937888885073345210053470244126889873277935617117913751525469457595078992800184424059143788469805869019533803552754104144346637884520299916930233500116686771057920410496214674271947656296175183904104331647559521166475609031804238958389511716303976358175086715190024026004245320677227191699707632936446342349360962982678123558926173413203168559953890246798532247138494139180768180587961302897131609644146946666812571427913931090633375591416204952729939413022815838388238019779540034746441615390504568476398837761894479515409808633752845819739255811933753117816907050388967709209948276498876059398904875017784173221358496122905862610822908013677619164451770995593250619935523855023229626130847294231735217074244642675423796116002806970300960105050823837652568912947856642848389607912830518978385350885842710799295885629298792964880253118273991865565397140592187686541210547660118596003596648607891170062574201727897236061186296751879808934216925287345364923994232515896790393967374924169345618381576027063222301446445293583143104215519451385426431252389493036991011210752068444181518080878869215847609917157215432613456970234670205552370030045920545843982240664919985856309916378851544940338758158633269350362627529757990991022612082122192155303780657400582716254197824797111757886987995612448133230933760194205578362408879280213466461401464163842916178338854236414398109207744960130744530597022896516267901739794468913231296236835090308616949151658955119631273737787038642741368286545123049102459796343106042850992869750901907443720257426926698681759149543388212834242400286324865111341922672805360518281051671897067226360533445005298797444915825018263706931429084986037302988932330105747455000559062950223153314347716557327909297043876275010934549961626856140451602475214006531779704501450704740093389266408542415313913586472464967103014776259424797077988019236610661992973021482716177843641797989326132493892204967823577295992272530402056539349652788151252991379823163056230549888955447543261667760535066290845199788564422491801563294107576491076342015913109937977261545652875995098073258969299450522592842123594801337832949377942934351605512226129247436962001619115490344965404703283696771411859278392594050839050350165907762509785620768869499735571867676247502378030280318484091378529679785684658923566016177081465519378476887400436157207187906761899142036312475882156678954723880223155591431068305579502252494747863839086074619389377269307364167911401378578702033491912141684755367230061148247777478956473539406367565662717373656739631687850891589947095725050012377932303655217829352527129619058439419145135136895819031308871641442370620432789835419763590384539969514219487833125720858057941594041476569853288587667382228906345743689423404686306895893519427633124593881744432432549617558015867738083473171596143985993744404019027508467358439374723433262648157391666855888691095881710622339240868170575701583401988096207438215708510733881923462968424717788220590578666396473375445187528862355936389266773240945189290372419452612854046568206749046170840398281591347901217134010035728867777518605228577366558587446962811634269813468748274116070863149608968789638089394806113234500769196493441690542883433462978003448109692075807207170864676249195199894233196919129057008654178949129231892856563168984201799183753725301574038836692956195945882561435438133536038982492986937446620377752075151044953522144567733193120646059292617937627880908114627764248457821531900871448327872945188153814364208625919541870579867671006299284271185758792695631548228534798728601206951120570863644044096743375893216968072748336810699062951552701686289207474557106399951954578875548038647986883937016201031068637065321485245974999209383756708009075515134712583730775847394414014549241292213902094093390411818238994402233261785451443956034508164731844621554451578767616610366145193145346696275055288535337812610898791032008338278449318296202725901217033725871097378346723278738842295265123972510431124885388653771835003749602479898419500842398632878444902818467226180235017579666694359209775824109860105773459609102231243164574598685763040046189998930034781682960465271699221709950244580752096252264619889118328316593405503855064494028586134109234560907368448169270422891537546659966447961211072463835330212493383368149999340476062404995971458162919030184102299852754909995052825168884859861063208420782615753326094129973331700022522028829203696387916768496185751967433681782262182785660141885381570180038318402948682685344972248757049403223556938441702933979940791217373750152225840274930666609474788800453530329448228204770582690435356280713389227593098816261675676210226328779856887696517219859494111485466487603953629432114277023863400788724190979810801737390516998416444864130395946170521920917215921547017846106256024445066163321706420141223979222402548258790065611303726283639622843774913198190918941506702848069141637729395582863758693642362962881992058666371651525715579499992928356098379980468276668431484016868680683906138069377249483325753342725660761054866494433324255889400168853862259425300527991059912221101781281573144045102211229036153151394359730202986884978830715308590446899539469349537238829794166788715714134385150666946187251490368877795114837758630491977344650373362938988490168066841022824005677437951691720923473723065158118000747799501828733223361945675427674156058322910079302146027946906798983845516224410714734851184452034123463463285968458146963886631759681255804433935267446684285533855684606528334817701283763936169037749958643944322223309229286377672338257792405340702909220262022141533193631392934519825166705424862017243243428485799203621637083059503169506085200342286326683360737211836436134730114816319080237901866331812263500937551180339509627856761923733715163934955130908381771903079410336786310994682237270907457555990486094106053151003708825433233199663635067912993657166325979729019807251560918345621612236637796447871365492952328952513601332658286198782643878292671504703074027692180289491741412329807261069853269633360745316881720815761886514914815765672536985585711208217152271913805603907465729312081348390565368775899123096290112980344439766434033805073280398935374649127536864843262661352367256478695713267692532113305326281027698601959876502733490630277838400617585270369923352378107345319577742243303709873272316941740785420422314506364007656224650943551339800522050281929214797167076091263650005903695815749686251073010514082784122657819001229599926894780164828229547389278218488774282109295683503007386697668640464894669275424030682546672447943716527906681930159025480321848749960134728113406376383523144820266936886076379259388742942148596795273954081505304483978211248941472070189608303172348252439691674227758911865356969684292738938580521691340338275176115355204308814502657162409806587472956829221241618451294939044177067027435408746920685973337802095862748781725471345700212539266984862102909976286539463664466890397884680973956807277650006325430427125739547554714649674847444275521487095533748216673407033641645676260171025079935805078074938843589033817788553960611861985379708700976374206418443326486347269302550650032012180422465579259816307738371236360218194944587826497865825777061734329894734286088879653419438104665775348562695086896853894275557382477704356102289861607449815423829790774472691063750635075764448239253528622861660956561220884019788480866542040001768183068359991056960320070750316226849588490184479348988331546940002279915623684723075673985499427468924060518946759519567480135768902989851190266481499747692225135213874914587853699084615965004379500236923786988299822126830392645643412960225671142509698343646547099159207497101727418186037969684010734964767253669787163765330022513400914092398432865233568261318857821174453328434570947099816843787302140134715147067965273452082501977836168623102116181909506397451894958960512489091290000820095468296205982610012526704950393355303260849979491511480213991944257333831374525584124076667856216424411906219380086474357954884066848811211238703542446389972252317321208630433774533778044804437974474830221433135804960262297983402613987599577312610107874143216968900686882265224018392330953611019195008476832825179213691157677961129162362876142736203744125333052845209642363165009542662108800084000530031745448971788444778774840951814575287876208367278719944622096214603864363853614721481820588385306818118987147816407381374917775889227443459294023700165846338819071507378748014004259600215434431303988026517002934379591255610605200141491313309373360177718176898653380452380028981783784052360156029247696136518459903663662287253147978542822134497760053952099491340614591848043464042536583569902179478192505806724098966000722880605721012191336231583797513352825308177659999196748778228576752270018457053192661855283139396849691605704767457932288445213438045426684739928410896586955839097987544356893199605979474893827389374846502761865339588719398489732397287677854868671542445010446144874014659774098726203776657584164770386708000102790530321495070313134830292647350498701368899869961860913861131727713889340047961490681563737105490920034163703001500393002130778213391533377627252902005945687161743044840605579444243165975228047535173730180050370901135429168632313329079007670424465895023153335266813945091430838005684033638414039981912672195001540011822353030336263190143000409853765343005231712066145435071004626312384041053346795116888624835699070583749597237676663984625526307935433528931356328099816625826960955489800728365176362364068229023841921632938770385661093419989732148364684928862049709951598596281233427445675933051870004294063954214080815632786145153214603944365734395400250900484908991564443416461674495856190945809737544829219688134314872446708378267121034519247343504793708887975554687202825585004033694723230275451434138156302691218952990241002827321013618945565871097769494696928013639495826408404391758938400214856658491424521983483515053648911760521758894194477795346432615106283763670793825772111538082804438236562595461972925692615487727948030408071083279878755118630915717120894218170546671601926546846484797265125752035918475753665531234781190834238175613996754139165256677380356997389149803933050520441812538539209155948416479629706593627833873256467576561514156615541783929842866405027285394090953473595708343222444396968017554620063110816669157707908310071187561780531767337896778020487595510976707984881229015608133592258650442084180653201479958157064400876056737750654438361515816195089047356454014945026985762384617997343005681868895629786561854826004397130412452476242218424352743640446956370464387055091914005856756943153771362262580547403612476017874203108911653591354961283651380100860252959768931228033083598300685761219649082743955301076021387784791159135496156072695693032743538257335105693916544814505771414095219614311445690604912240602969669278859888678075300277828414297960892931996716075340132909812670263545844276708242893610625228025670734015384781698723660246343288829882579289795857980144584658083473515701701423969443783134038950696601017822944030191736237350348419986465396324863240579450273337013801903929384296830571806948105680191108934288491695018434867725284172018823690239971420808746681648820305645881455424255102237921638916171748057066253952246485784855113447422932822748537832066032119168981506574917406176309546043302417895504148081806322302782333528284468744939806420450392059255210210020515613788793090858449074838942157280216621970771983044999390412390362122463935812595462344795488569038399139928640480492816947745598261960208050453683014328016930320819926220094827300490069481532709471175139205085378187470265357123028631862106495726094113634367561424486067255853286364133892110457455772572741077606664483897945767378737209878962990417431733075514511825179351985750606974995170752222694757347109610943801370834045425831756252672868527147597048603881511760630992963653906159551473439829986839565260766635818883106367554590208105415705398525897909493187347642632269000110227052893088148072505660411700745977505965820920164491598639881339323802599488373029420185586567390015853417318880796612175631393100294689845887272549760976333994884464804891130470247562401128277829616747789421298137440124467688780643303713388358662197199086593363796757045417264870776578731619576271817273866275795786181176377408459322395153610109998494572041434298860071634323065600920693187262552551722741795413715480598372053137612244607031445016971785201079798277447401139468280957814173775275439043659448050677448133920138913740644420386828408208929521019550983919433627861968303848817569557424362363635108551663425292650996116911100958815059784899381381782948359061454259815520059149006893191811028729569349473674185273431218047875799883487607140231425432806378647875685132855382422459956379656097128240657584484890876586619516818613637552023052853556946962930295990842329292889748529224730305002804540247164512325411496181076086127560225447459361118610258494450379229862836830641271695892421733923855022529108517382253864955280912060404560115481050824181192481382424046208711457085466727967189588567543814549507663466623692556260197852850383813302235130432562022709692532458236423314037695607872249694146042461114979204738214040578643915111835639285182010165425110413528733689830311398248923254844822731136152204242660086830978224586264401824263424382549616561247153256587930468258475661358678496506290286585938480238217123316016508012396031357216833531502059360825369236782828359648970051887311437009128292986671063858925722049164600801282920195676180020139428192342715226129911616411478362073476850627238422803132985059990657871144399957311074356126583592685832107683931370539402780069384210736781939916214806735467575779385128944583272775923361680881416146366383577701102813558215191572329135435845741215073785404921805143221145158499471365993055639614435591745069441037912917433605600957686107413572383145897611134384971400337666072515051081729325944797546985490780175143550653578996189122779561424999415476079232330034806618159024014466483316908968377901189998059975613680379218113635158609461239671871385187778327624399972423389562783608666443056212988082898968636491481495523279101270204908267161405037166555656632739678250865662787364848294463671242178804360597167883282828263017402967098117495157110399108409787965523962036921727374674924875299656586454593932010627146003463952840010474460420040498232470000596069645081647485179597356910173471767889656902908876353039785742167270379391883126700641790721380731766140037234704576027185845142503625697236207928246126918075570027660309660383533385942817186887401167881976729518752018756716742316643521434812837296433697495163344013621355277317393395060520749033474662950839720662165559159932352407581343861569642318883400288684188633464165361836380532086835961219859076484957650438374993082156419197214417696930331690225553161532369036009120624971745724084665859678080692128575457926864028368889203307069458115066688274848587120991771252990133080128044003657195036260173933173337215789927455596834678030950420093731641607825376808601965233019938815720355297899075616818051714900203747690903520441794052745021138326050141387206495958393906208267565397146148089705796000055076912069745665621024005345724144216464769340956805414114735743961575266070695529423381849221296852267252887932897247679574369357331876462964345384957334400891091403099607912198042761041485557322882530284760735128705545112647819978466169030818201572951521752128660526192596889363855502962362685956796142518068602163367071404216031509182892443130947129563094547027854442368627434115766006864629292819584109007172106141661669381702614352000737258560869009971132346038584277684612462825542810920424283872970231159593305303126555535949161011026269983702445639609170502183670077086538111750972221878719832600185249799731280785164081191814063826426393777284592126165501342717457121111046417607656098330613292294453284677454773415194331983719813682268081689816259840733715016682358598592769323172100893119361476775322041775822621890493872725494539825362359584035579084545379993865030952242694132704082597458324805986012097588179518242884743594793573206980097604852787080021910530092479052403802882258425211887959695300814289676153351483875840072967930946307381379252800465754158913097860364643681062676422154252173537374028185607379961924151323814259914224750603423069049474308769418110739510453073876962827450355580198699395021910185254312425125749866157811606531604209956154575668228052049291268208828357908907327573162540665264940214117387623356516558453674582585457517137504160859889756007410431871363271665595561898491268151612201053770331438338620470392719595827064090026009601496125062962625577745335025361848610869781128214888577636486943499881181145263277409126149980864191414561907881469789965476374629236046869509683105799232945420912663416512639926524895293045732667383354765686563529457233928920619515548202591300427510003832829030878613496040665218298976786238968567021520721932808048033228901161768509766770469222957134822870501994547154125650081248732958838558827084506836110597334902072605233930676254639493520278700640165909244307390901420106279481374136211074848320916954833183654875166931479254225431131435942152213739492374697762602358379011825791628525004582846650958126306456503789164387777208640151087214949851997495485454235715932886119889560598525859232391983017451992318552500184464662956970982698800365939974280078485181466332644588279691524440227462995362154304909092825304355888249049254742342664448157345025447781968683587713509822935331444430491325988299618673912738884417395114195593800985108954615479798319132886522106290163289742720256221873275420131629461248921311560661784736983347472551831322544406940664614760115558598206210542610485491509244588696872405178703854789487951537483899784332898705329504330670728722472229775991830162659093192077122176263713977975599538390217117554073577075007236693771264699361682248141659642252427365737446479123770482259646356903795887559097659059763298126821503711937985559066265782521686103213324900425075737276152751301667051202835907284864446635287584338329508753173740013844448036637094323726482318643454479360223654621461111339869109662287254500561881071780540192645945775918751850003262227125367775499116636529101729529190423558598174795643310351146708365483851876451198812374490804704626211234424711059417739850472172145633106560062365256207866040841954180678625254378911422392511931262507189157378835077734335153956510823783569262509135766047086854139264776635432424636408559178141105632335542359913399114779716488535290545121265597885225301399578329917736861912250377727412930423858264083975455141178286854098426016179757312543521320304524911112229746411195117276689099856489736300083572652723718378424620322655435487982299802768507579271164737393128175811637264462158108281988702448478083815408226062749852550629464353641699754038446723983773377500615767278650649680739708006814568229946581396596003151404842891931361508222500428041490837264249408980420737842983260312629337149161823811918104500646932051764481775327905963686846596926187907923304575641473103613648615093395809507164514371848312385008610808644851407628288213634436701522507801219508652328935842601786710238892152618253998245405063430857509700786821764555639250715564484690160107462758901398520287897730358531468928911223672320444920997711011214744870515923115861072955459496092281316173747574703014379611972213656802011700688808799240443464795295020060234156773461545742811812578088476409152801280232678302115350650808816648227376701977698468200557629086164399112501793345358173547895615125607490905823258905552607087493273329832858243695371948801102902876552729360607877419138661760168084438808708457360710413035573826982968153078762566151369954829176957711361503322336647195604169015262172428631570887596059305851224385880193282084260642629315335000416271025169623306583794569252182855540856686706504464231269344786191196931956351908778196588141899405489602649756257786827529083788864870531381500610422366718640274909014056798530003820242672384894855506284621476450628623737620131882969273268437272886976730539014070059511787343081806035997397052566126184400559600506739011708892363827199134055716581126364570185929198316294734104001195781959106681513516149551759413355782739159917127030088887121302625413609433149892552386958229265702119446546707609151674398537673328487864342260543313464297540377906775778474309505196826077902833054503430499288315127388897861721038008105996090780932989304616524289843450985035108224151858696355058874158323010767375878941733436486073851638515239244180070708442672862233921962225174426608225180372736601723368622835901283962779235924688300889052921675116981124221438650119010185478127354276613494288591553504464993452322110779556565539460064324752833492947673496481882331312810988708435738966478212239626239529650385540133084767693911350880860852364773809012018436508476015095685888973865352879648989341184900405366812406700642653574491587359462116065047698500711498974761068452858222697540786691517293640901348725473497828683188891510975792711851761721721541904105142548109438912711934734080161244287655395693993119992864744911734057675803030445890433479517878236044178951619642551754989830604439810762633863416542437373492225599947497446293761120660655615414454896129784978651899625891217092257169393971819525285403145733288630732141970991721261994165503812546303706360609446904333082845762306636967359832354442754669043318856405838250169580221487766494201676755061053417986819448121915823582925411746625570573347382789323835230821382207373468919393143393949728229610219089510082097385322043715453201334237204892813456236008622069459682697121281593166359667583102916189546531052736749982130010873315541270661484506949378680812188855162781656427415066501500843525554560854401943209718002252507517675565750082589489518814523790261345350422785342113829468664240412382299233032641489215871117727621183045730263163366000421614378903494527543499223280396693222906439809290407318721504023784443318213305050984488018707559155744586258000592935194528540381063341145303266037379357594593468477215027895566328312103036216212496481768469362238994541803724801949961187246396248896048931869799972390575472625047485675038727710945360059351452943063341954888884417576988278022142743285519365389438921166620407986775506403730290590930886622448962103336126852204927868657432359911283081145799320983892001004961499867320808174056353077431352034674096412085551241179345523155034810274652078667804281776072754759175626793268736800017851073383671930351648592770510019086362086966080644320224691243341208673597718473021805564999352018708305297380826958928437785434429014156575313963923612212255066343560940230249529300802878429713764281608827467584041697423508384445175701454538283936533365540509519026818511594716152457699235065192631286484134951182293240890045345019757246445040583323476350061084215898114129645066892512272529282369922700086435509464807316484206129671170196828622445368235519000654720537350494897447282267924840787039221712759964641932657913674166149999299170957141633591778767310650287320526647243248127447477760672530065136856757170208414073508251155290405870392960351496666176177546343955946091316087747291852308052903920128208141620997728310261708237923169733242220950367711938926778260449335732240489144977291876720813660674742856498885443498719270897786492858652715106283405487044695800712469926173641983821306770882423255197557929569503067835010875677467950210687530223290994734223089343474697550278603270363724615152987974738818648247811979938379409334310967573842746860112928607068825418069038990568964194646299767472565865610405209165445979518725138112476603210548006768248603076196337376400709481943000164884676221681695555433319544246516178809272287415734562032855973070442584760092411050013587482867522140247176724162644502054840113902879813338460998779997882626212099521311682086289744166103232579539546252006510172871561329126444123700624644858840919588643533223578366274851256430226274462159737970547425462467413256999385345122800681714872084316303605082721957981884828168249921295447644374863139535515128436317505790919326867154338151881611458896436334403126747839478918271895775429691401003776599593196507569055364486868654632586925872300670337858753354069081076458107326898313938124689620752347753538782357328416871524883666624117538868673026443379725298925847458425945194682122454952375709109969324516230952570009159776407697044100070511124135925760775808158562117063102072773728861100071498619439093690103167109197174281619419380236126856279433448736267604656455382739522884130103403948505786386568909697323863207909688450228191486659194339277644208284022501575820802112119746946636647663280660666215222981748583548319140955133994738903187615451663958403075491853964235676587987766802949765322714258808061887387029129952021610515149750854772679824162730913978865306295612703204982644509151338291199531380193867791673790414017595043869375280023896118685207164864992893803751416542769487658869121468085892024900372566154328145647173778246902408374474431171724982070468161870618845994785943419426584256056983675454874758619781617000643535151184110084257474230304241780918448082762383521938577157851015368544784712961942964785913480209986315367295997732461075981390259312301216285969815443372018296581040642323783753536434219860977124110074165275481585511272671706702459732881018376907812304263276724980832353502299340276011921987173620890513587933946038146531679576820907998611000448349317673884233337368235804973471286494135665837816827662523915223682726807618223505828119320121476170109404460091835522097636104848384181053735789223665476540852604153398121606578647810007444217695406429432887831079967241816155829086467252691681644773596392136610057898499907333841223950217242609666057659028079755427835170001425331934475681198156105294322512000635586594204420706016989859826641606915839915966532000079264953941748782083733086677098260740263805024574522936334830821353881249934046437789681783557790864241541932939884899045475406847966148141298985635535987630114368583887261129807463532101101836249519499717278625236189330946179788132512389981405038354664799376565047945071165334288447623157449954419853900459917279972126559445838511991068947710706914179009369156712329115865105784797884124970923502453424211065424776677276823491136768766713470570568782399213112566239248920104764782507294522868487910654678314429894821471722706857734195898157887131371982957546862593306551720225671872104223343004719502005552492646907445813992956105461896765049408101534503539341082033927039192346983090071853714080269254881469294624639003555915012589482478611858906488503069795766090968025702232602661376214958589063898490689389927171545751437118642026260752975472297446000852538007848992712759276711747688609558447229626142001088381009131048367206150501364764950813464881471692372243276673979344806895960448392145256963525006928954428285174984468541037008827868102976177195082185842973586969431327533704921614916788561751459381864763525128032526440351287715463187183678543196309950164379189691022087809717953410956610387786100773583910011631039772724080869520248998858447470432764774560555932030885226842569709211161600568944361867756697504088321452589174500603153542245276140508844220422642021455872774484386510960886991710120441718721417591822812597706947540029699006273375304739403579518988427637446172882508704620512546878259257102071110596502822499492913645736780167264283696049943036221919839806285566107547256986777925232188141273901286228228634978080094822455036187371999145084816153043313697320466872027731986224835687142975739030878880704883083507877932502794027257388000925787713512532562494458504411658458848019878561921684856723788856720265607334327737198379586680734435084392622710512938437446950774484370683112768992821347548697951206973318077123828233553007121696222277147074826755318757094272676705900407281386635370990322420931590087818104329733730516052423490122066633135330930712180312705167496176396343941784004469263207347932561928980497015320272996136864900612538787395633539559825327190576070770934692936037071292290033323999359901140673703148541592376820767247897808837291098968063542645578085349844016918378914798462834796435847164837502605068752843479550676373927654827906198041943129629072780807352053128286120815453636883659999863850608140564871710338083494922396093701412897736604175779318742273914090595233452082647279238869933340950942915608922896314847555298633228144259424629679714482037157111833892968727365839034013161548375663222812143197707078048747685456934398808472035807431266927261101148450911563749744586698415350748866804606386915759895678391741368635279293931619917775105469212977774866388978355434457687009390057696551129149880263721906603555539984058122522251906526300359553069495355838316453620569600652517938698752650961043511698019134078345515740702922733189746482554481724265620787255764104879222698666847952427236016702626334716680664211025774414539888532122344557699526878950061935784364279741888224936186040859753364353026904805264878096847911527024342328777939207547330987541537515851257877068558168570471709214280393243375164566825024016443775365561556010412656199772930733307368264443477011339066420338534532968712378448849930789556453454012046863170149336673384195882564102213214800408996366135593393591396838873169373995821178864267152972139640062328756577268523618357953579508087165681381309047489760450796922911025410201845705762261530221586425853751257655565040545708512376011299544548757286046281446068243894021854253925363448720181941663254022220927821402616441522427110094333379993812608469365740266718362890035707723699552610036248494027358173624540020879696805083525244807916884694112145527210449747614925626406216714472251308437131074958866356929215342631902280725561521573399590803893162203831867006103625422543644578891967032153938564055864652144664288516524464183094012447898144966518306895257761378171375250131001003435240129404905432293989102423969755112654649446510531320716641060586595980443425625622897240869854029350364726300516370064351403486247623212141568381065109841303813462039453102127272451242017793466829416041962818983822238363686648211122975130528098388807262771194633720918347153741209786680756824426281183120402273606959459078372544088243158580465327806714228008639344787185785106444963721430448147789574382943869134639412305528568302059343543943594503073851964359755909492813477298242974702026940721412335632381843686833498872419250009439312957614534048604840120448919784692749411981019842617257358122308837890903611688244157314067520159647015656396213516767525700167175707193718197917036856586433004950260387367395562549537842305535136603310146658611707787488562724260998412655351836981801853559303498960564763165836797939043438978799277427001901541537191827146465150369664640732928625199519259187718606936791550971838999501712758528921742048048024192680254547951697621733031118589463723689781236627126972521601478584567458587847828714408265040288793295219972162995300051800488214205484531912144448713805398296645732533736178957201876339657506580818071695929971768668613493955530589502990028343991149235985765305946786552201122678142235199959952958007074591610064568998246859211239632575800754562455401606281142454559167072629952600676182150506186888181653449872253384509909981255346474888732539376672496377698163017517456434786768155808595736276780923726095129476816659489566395154913759430427770037092338165083630974651376470486377183760210281531515185768531275538679047048709687666613006999344876280919946256605702961317761358972703533794695722348552924631478732954158388681723976224700753206594676493792748489741151768203049337977407805126706291337322896162273098949645506110790132446312209555898934784352445607545424510736196035561661412460827743708969051609356180392005032224080722817240849375394015594047964066983245581989268584884661584454631486753591536250095498612026490708649712483322139514529096839119419532196432194203085405772646912924217291617643000889058757040946534887903938730997106450225509658262266949783053045767775132272682877490162936904221156321700450632222187129967827510210366800060183963244902605962821712289637670952286967163844820308699239594803179383908365263342593777313110326392924405504725768594695998791019504221110317606452447186874076533347275279555417178826799418210066657519220002749526388359041144700454751952465652299634697133139797330278431401210670402251827063090407248828280593484823361096995417328214024518495647190474661274129184916815182415811974869433572192671199631711342254253588452565928034418816975878088405565546759332769294154858970280925405223432051758350942401924823630948967452531835895061542970862312693412565401750178799597118029176193045967390652356239684843268806744242364817863137106095984636093504549289334642735513699505575186826254430177034192986523919634799070535163950388534728784466508210518027984304632300812762387153772725071324736818667120278926986982030183557419303909106516337601946884886352973784173581060245149640885898593619116170081997081380061274891337522461284045672889947793421688731856910073110565468230312456191072067888436038898637641957380721756326400796953195192506468764905438337922902807553279120206031901006363489790796014277957130365308865901592088315253875426659781804765900201181965512660741770757943277021455106651995692031946784296995316811843945771966458935756233360564170890367023383083685811732585630741266672951054569758228287922368545422897823584984397431727556639311804113907788435729291241372563617172628935813454351537656796872286881776102577581246816417855573444856624144756159725411845415178684475862999702738681823971440922883392564743078972966999073828349547103010685886215358965216111316428488711562808742894889254539469904307838613268545434863516399019496935451451604399928533021939457643373149308818547340808363351096030714368508848328448528152061852676547380310692190238784552495190423816281152649249981889535238065117617296329660477509973753083173697479064295238492584176692756907420328189539327369280518807431360692623177518161371659389611131829341649234857427265969814803634191686875417012865477529319205432749001407355318338503303608132110718911906660151408080987575518976746492096738353399675580395132731206288094457314776177211080743592777383574727538984232722966622717070005567445347487934324987389972112995873583265916750433278973232108104768368374513084900130118165102951512977134612969762237964015172415764446633734480989342896059570662915500424925850753156541942525849265738641672920395698956537299349932174097312652703865271900500059296294492887623314641465430927437937595659702258932728040753995520565927966030132210559462096821128456566640515455234588275403539194443494936804604287594252680813148650698242616782624062258790054461610526684573820963996777076427544861152784750712715005367239195165629027599877815736430843121800397568519347731673788148594336743836080674607627804318555031538912139090503257751522315450764974457043411695617432868975798341441041590582153836474075829977596114860748076032746977928981626009057325478469762518996023329641417275802514581085785912177857058940665795392517594948485126220649630846390903361576238690633204507430824935463115094472190856290921384070210851633036329099666117083493613622108592357028295050481573681366639212370392859213187408087110575676071862477398871817573625944421434601592980642703950863940676298897761328559087546475840050935933888662001617322357505680258619271439724335834711545689338131792247059758589826520876387085457082426581374500140484115803403670102396428271740969675526948082265496175756451790181263288151974634340598035434599499116078806356713059129427246887429846603038062844084187276447877381605597269254574586291076441921558922118366006943586678974869105763601819440752272627563780114433400899890439609872935970226136389351951179558355831437247618247605989492817969536920690213214771858022495298178166782080599870790385320394909130030026487823751336790675746303008933404081130868303501425216766761964523711475608187145531954127588787321176909502229815809778905832513818143079866240999924862937800595566683685522844195591502367025898662919840339934141238371889320541316875709822834874074971171954263747403783725198751835285169609457645362826832776153474397120823267011671374054092122002441843115748128953670476534781940937825874314103148849623988239444855052782887877114604620926077447375131554342622300483262618700718775836498815667540193917926745138502968715898244068326823439656347702877164747797848996970564220127798464380632430963981496473422307029835272198758431996800111418831596427135172450986524748247735764298346184945860614945506837565252660200681453505447373383997045225796869868536296778960865006003331008936485879001283705917080851608295874434255113126429807241291721622631557692967449497027925381158837066467277859762623270042983409087624398064257283676041173571897203684719314516843397522172052973947366378562798355618941709269993283050701204971539496519757491547000087457827640514477407377474288040528629254043320671877687968188626722069924009567476573744473493805513104505050303218373211341859773857188278259071078254498300500683122782099891721177731152727202530413376184433690576761319804367408010077959759412474601916074013156599078304396345713629501381146815139000082839120423478535075794380421468706353732919589484756533601534142678131339901670327910810928859478336178894559482548513766323659416879092979031316234394471304245451575706971487063971407443771062110467236171319673677363906830278340402670222819775986772869608934178792792605509179157976923938687371051129537357916502853727462694909176647807042554278443038837655336270059764647507439623851371971401337415227337728340422558980448588284125311219122837047356786535454182777035825204191245685358009671107640131721108739325720717435940577313512327761748276463337030093023514151829111497378531572237710701928360606486061358668670889548096498825109083573097880243634261747895972544395515500470512753991955299718166681153952372148957057656309542666649526560886168481697658865366242261436119994586809999776202368629659111481896899405143236203768934003262588838158010708899120063249876492952435308753998992262169164674831022692388465588264246936741773035251640180368299668248644737803325468795554073388613948059333371771995404970385915996471609129227393600410202272997938774185004663968068769523481670137439724910221655155869069806764800341888683256740367129094264997020016097324756763503813830385823373842882435223704111110158815381128071302703039568862584326664454628036483720873063566041508585626062651364443966645837496397865057494186117009124676047143017892850557104639488283284904203563682433428048791379318189898016895976665904827486777791679845431842291928099339197794338724272729884925988298682207771436358424339152618252907766630166157353187431881925750502489810818437794969221027713869903778836325925197462954460658785797928952752459049075260478474341121073698681443967677012701021238836760754037314735943101756060629835601786140589205032142298025538016481546388001115255906620920940534366079170011680212173561844842736195257043737380225397161103414132300807583644118306312363427878941193548494036880826786055825297427711148058818120126450780401428665098213637680087815988837353750240221978905815354033050835148457872324011136892655800422734176469321924440230602659346374676362741216115153313615712908866282595134773918792797327240375257748294730607749291309210277154443276299154238337205567785676956492905622363822770210396327377043259887821746633745418546921735066584044660366707761727280151747463908664442897275551833491969308213824916972461105475955278196709012896732381830784441626401587570008773892961371507487761908083471389941148811395592456165791165732346912308204890158893912839516469141518667420677968513025259468362615252285844589875607407666236751387846482827204855839807799811149852833306644660449872743160926673841212149002066651641239305245800463744304735401107412838085995165674021494716806701172095544289043311373456959889457804729350189641836681641055526572720151536228112846667072893166974518157348177230512049849228516115814730385050999871463179513013612583918043988725867860885132621277287045447099842313962730833861948991050193379259977185028990590055050605125849529268076702168124096281993381870335983134867313221254584184303638185214202703146887108661259693590555140998446910960823509691368336494754893427920035336949500354710816454851770881939110727492794059183159107543164945773502873582039540715807155938474629730567754335259007941205357484226162432401189669999146300677279662469249793999182378823647740108395870124881675560406016267303806248270049267755245573847676832293759410672244856491159239023866658319938401379458054551051948298878797484136478632561149779302568902168460292383329372795044213175619904897422333846452245851795396303772311513617343100923596165729980253044036737624071267182180189694104167894678104534633512685086167738104083130856170902226813090038365533535761856039714534210079519556791161276381144987094715015076198567802459104274058356425778825959525244399097053879474336793334029301581711701161604877598705644209233084012731935576202874016219763578067388365503373844952496985102669547319289609373162524361301650310145607010420847453423470554017520496418873212966781586323167070611126337927364499235480098127865608845288252625114372785318520647254456438695181433781741497969000137828815459271840375123922441435964433946676416990348484263163250465286706083477148313137808821335073664638807375461554616548821236677544142691740657382614054124150965456836442040464455331785220356134715756820827083643414978185421029797835250815860189281402324642673111828159243161818994839550462878377776510086561417148711728979965266622405574542449849511921227187889183821993892307519065920499561009351105187974315777074053901831070163064730396622318207620724849815323588259952250153915254896547284195187872693019363702778577560739729472167698250269649005968930390903467741535972358798743400728567221400533563658032260547938533471250058984285151338639961965242464125304904984678603597612115639037070189778802870773505842037703805006284633999070555816701610980590338571368699280664106721453930274280478097825105548072581764024016079196298553055696049335170481271447180471187573768452957661841203847946619229623999753192072349100018707748907367411021995275631590345071325134414078667150432991427134678060857279768741815322179930580757145458106261987758484239492785126410702614339339731860944263895986013174366249355370237256266555925428618223405139228665078356907117402780727414632474474232011019521124991284783315563352819385162261272295976199399286961262092018721236886503075964751754854197917997168718010337335413208137513017482855753422917463713089524446890824218599146574939448055546388596991078539081762082563304271190697137399172006602000997347019484173245834878828407585409708492285908888856404722636660783959091585397581560013924412374933551025203812888165874197132823561689065818843935667177787090366694613347857744171457026937281566417603419281272453330139470079349438904844878466223467377233317590996692807213808869157636520114878836940087048110224794915732431516478661884946513622053647303299568125408309795444061191401117803835399340646449957812776782336095729675152781670845434043918121379476222269305466463214903955220090766698486614293516248876006486435173559320797525007914605194296679227356229726116477701211940662842968494048207574065980126590925099689335877404984307818331137981226010794893302843421740122081546621293763836054289714182184558849412930644305799129621341679759498132405623906721291420208019382520423004155473242439365586451951504184452583899954600800531511115195904853506615845824022297530773201660649482929232304750632642904013045040244921461291402130497983052644889802567663775293525843686478208751815657598757855123004692592897703395506565314295829037435545918616079249394382529541869026368135999967400915900815427746792198476161730798094670651059432986750470480195901848027378274033527157608854563794208359282215485014413314816142954076019784200451175575189143946716688115400761790244502884866613161623443459362759484554664250346663659113940312413893836231137970193609054686103658233417564201173875678485722948563318765867460457053399229141906478300305297103692244617129400424467054783946020277681689072243133032672148156075408114507957013707484484270397452852824668225578125011850107320272982553476759365533949642210426340641538640280192693805846843470025334968769379584708162920290199726882266256813745198467021685087097585476234525552989524022180971531270749066272546910891552245853130033818026239434996479595652515045944573206175467254279520996146166361331125756338529264843008126708583072564495844226821909641076121713335600273495648499262728440014923464211696168480796428039876775949086310729372512939218725555083783710158983975647033355382815564415500133907472336222795954041621516076913992523033552549970818901426548478688397185592420997073985719651011099361041692405201632004240687274080452267111220738483313555284945834230808572629844442386208899181839424835681999980377016232912341083196078985952413947451892302984591908841395625031343922279369563560451935407089769240591029832392070332910604354013836837743947072340248937871851081691053994489740229184386801068569514265192911315647558397974124417148976446161002582994350538168997725660239247793749355160535268335640508644498944386054026452826712818111128910911769070226192431441903189656995150445978878001985710611908185894382723410554835709118369223114106794127453178764885738653199480591968388214225803670994115356712901132959877620848319613955437313396989178233057502615096715538501534320349432815715866233982373780670113084315132876137158845488260573579123591338441090413708281416876234147674122567968594458867982291139067554239582129460488015114627625975296144960548993480696127391262176473035606836025144222866696855933437136410707154522768382265221560606342905406381454301477782414016346037596133928503842945936632237032404201471810999537986002574038014816196370972797823348133016933672504082717894616057350914239471439022458142346521608095238080414582933905623818889481161984222694979896761687420484318459967733110129843619423178635615592855299374178484592453595472030943603064413147282998197501842733887226832657359956807801349113844183912069009294234824673825666229029724826302374945610741759714490500926114271821094300952311352787495060223006013846089033173598041673019880617573855516709323678661821343248743371846214999480457746476267420930483257209481995251945057750506328468913867742067872757584496206441110035477974726557138689127098903671333423034551073568453300225138153884728994579620287408136603284745407710528918803194895299305795678191505388885687579190085815739167869815563130982011923513591962427742349382242299030036983763041107252088901597602131801578849268078463025074967144955710836150763896608914425021079819843903109999285068610955082512917487040580937708903260021734671927858684499830594775763982167035309421608322795493775616999194819437243187340052054737699264654191112070698968331293639672639314511691304660391610569687164186125758730165877676638928209261073924938699395009636167149004103174473439510938662380437574224748182697253615283811235173655850028656189688605496488814818137507920880036625732242630744805534727182224903602316495142749736923562524917444936041516013813443493751643317821849017267360016725712238697542846456883017892664264394930654282262123687276954610957745114213954576640884231933010343023122055170905037687354825945754269324116020850923167312347650481312337168310185038541676210713152986430057301338335408201491393911001690441311159606551386199515678707657851631274636880607274769547272689718579864397419017924602938585735933910522380831303682280508385855358333392095104213865035837661184567217030976987539688091367891136501153755188979204299471158063799966983160780556805787599247217215455358354778073653257405013280117071119972494921891878641798512751161141891448439023321180957811303935227947519701024460193934092039274547936166808178005213216253794068427613315587487676403840332973238510638587490854939500686133046810120935258137413876136699752267942419466546715062842823601597555788843309186649774912596520263511073835482822929518306754367840403596765644427758053945411179641095002648778003013149600567936172031628417214838392254717459066910991789062336937285595792945644666125530042086529436920421582586064129314277956252554456300183421754210232210446514413046883564804669914923259003153120611236068683876637770743596476134022274215247238895109596180912020531315987185887920163065550957599045873230621780690143243594847485993465132360703204201991421873567463667274634131110477034132976786923177543918471373003230579288623802574284861436874592621757757096208071286590208269140754668224192698665470269102282850754112985132770743183133147025251748975797731049023843531953667805083603827617439068975135216639801752129664047527617691451746884668462090257473242167426482802522750871052837136281092007216772386525658432748891006076290240078043459655794468104302900843959849137350534690227850322580245304590189982335476496239258046334166760182241714951196390953070320355757104984222179639052922081355793099307312940814921000017045130157203719965873134722867791563584044734056516820683076698317936287648972757819608843361863265097581401335318201806482519793560045258338578483655483893114283613219190726377275106373677129170685868450521012557322686708361025747360924044720624855085609795186946837566398925779103242741569854436787559011968675662918058337073361907551738471302959956253794773370907550065028456804850107521439218011898886339572893412340947560218372454225847727338933862176346248249213365243471150440375361745729600255025792003406812428613061622962810276132145494253213440926128632008720191763243168318070032775264707562310484519059477786714397971358179767308759581998820861964991410277973498932934481605449906361428713082897533582904383412704164919573735441116977272926855736479376258284278172020320403101151683172423757695773116238616963479118237232328234548936195930616147155931132643950513882220263107078929017623100022082477746273868589759564096248854124737132985980497082664458608387463287232677639981784674630547022571166081345059534435798933312974834886579905699968275076652327360121763315456965805175812431840532888552678928997556924837522100714284784322025720850203798590586918624894208486041857165349328284659831755903671891900859616342378734523202930076358790333067991992459431158777793969722615316970877725595839513266917548836244001113818448421993882071454004287054911974904143600519722594526571427173196062854564842054307346742358555515885695744703213415983494080685345638926953842695774270503493485305221786410430672466286855296777491326698387605559246268886300460767899806282750362978944092591011217339898408713443134537411287009103847954927264141981581941610151258463916655041069202533185876276670663238214242385758879737730508587347983132612992127642589455253778469020044447781616892932067267331114658741879306414929777179445081769362659209310365592367876417020525971363644960718145640165629352984602249868791368821701395645149498454283690731443791746620233152750059586865709552693122030299332048102240979101539675013280903796853354800414294743016036170503503486665425283151344861195953749353556436477120794318406478867446495027550319140765328668416366514014337065081983870320306726488592981673069812066503958500684845991951742780404779777672646626258094658760887471494691041927304056628242724519234852640909170950173885491802473422168374250782694390711559122883081032515755241574939166127190727903448143809132838904931832766648723856659431405061703037979347932796459963887954513022311642514402671629039150772863266843268599319316175735390515541452777342602960429310322329882909488448989059842999143036155475603011810979272714225227650398956878135988562494497830492607861908861182105948017785942517687076926587996736830275080223921784213548046709263867204835208991163720165258765490408102386118334520266450865759025987356428735010782688530389554778677372533260004397355945906678184675854520768453312985864009294286377398292709692796241093358682346088426326013615751631137086892375407619489581523542404440411688334620559229581480411178202659688728195871726005597000291450772609463342003764381663121548903663192913233741890068670151405024608889608349689075772867662560118474111816666793705973709957674356410032930627511943289385384245853653913453838727895287112064198456215635192108914128028437360532408401107743285962938309499928666320600634672387375593890016828843764722681918885575357920350492964806739620851101959545082037000607676145121844048076711120994290745929653281894781801342155832196776359444008186122325988101230088756598011892265316272818900486774239011292363649272916225246952147637122226870727072108017655385290479866802509682314123078100646596401291608503689257282750732454917569366284237515880234587486565853144124224910891846166827299272498070826713498253615185604535713450287160118988939616600809341195045457536228330226446298832082494904212462918651098519797401784708204728295820018053830413299082636927194813911731544527687076438670105691008033983325945666553241567508768223875755600839895913972497425359071632241935696160688650387221518714860070431758330217485193731865782922806344259963917994956855354597352252880715934420218672732559122907815801297689868354430438785649528523972632452871613556928894650646358273769170376076176708227310391410274650018661589990180341122795607267162254291703103009947738777483321233992647093758965815205553395657843261542151056808897809495462166874951063706166384342738836516359561387992900933046509808641486725243041370519242497973502590148853171271548357913854342011260275763757748526808939220204424089517173952655407505384260186433904330345183202199872311673404274573251490524692413628085233788451230734725033953232409056017967265458290144604620796775871429087600224316594325324594556019551299811491265237819195958354489707658580208125828781462508183533087744027229268829166382867867517636623376609003817662923964561541920088466045639106885204215969791714233935275854108538961424377934900162599581939704049216058817483622775876225955456876369866526831310273440938320098599382950595628972876582971203669865246808571009595123427206484147101835280644181682486915540568448218643984566002567474286648157187934531810944334942042102147326709463474629649167498637496753595145251274395395966977222598224955573151381021819529780372327487289311277192529471915022900915995231817800953744021198015406561710962733312947479367289171490093175596655208168238367783920949610043111877759994300441352816831798487176893273873304981283411527698535485585118374891504773658765976294071074173255227076164245766723992634337230209143199509267873746471995912030438374967864283393697991374657905573251508025479586536032972318590622753364549004540477474001278625369834783703910430182996879640021491328773566986062054527930550933564961889013448985656807587374928594642358512963164396667223350683529789098032294338316027567557443743541657039167480441077800284130336843793425848040953205168433494021598618204762742119653214627244780013949269398697850531359375508640825781150914273137615319033668445310011423889473097678566908924372828933367096290793881520220847669164659347950273993959080839386292895621046548371426751784007505326005677315029020709810485774353288338704067722829530289987776367503662117382669786414473573648912597860565902685507136708247479749457000971240060793606321637072764706281966066306361900879180529127960506742102205751704178482272710420267651206327678707879333544560830607165029011469236712304379016878916705357104222660322062494336986175083742918248022037224855662884873315181193670867096519470573901984499304123064918491983964288457126358414981720445474918627098896299103593375421073302252118823099111007076897585594223718462030912780133552482933048444521187675501517060563645751804075929317217921477251536953806967562282017100237504346107051714501148637165991776261708577015105171960319404493654898130510711085924658808286356846221800207230749016246842353350785771051764216995476999666822578755231349327970152158101985074629349163090548329290965724858098563856205492005303401737242076995755584413439301931539027213505410970359508045071677640748346355782171173664301696058348706947019246032178433908725434542281829945034542532389354528565689390997682619795608323853344216993766602038090427341685221249496848389204215862284139593286497949985585220346765308062479547244258209526034052265404542457630381920384948112459816852777925912396139062820841080351431375981229920693997637854016255780447863290671144564556712387752612528743559249480933353459397028531553127848652556219594568870555191067110633261259439270536614838627678760902677022375125481212089338100427583814711702214628962753238773848317718299425544707021446959759555700710625698574929017482587404875282607748876416737963898624621447278467585053690828046049341413212766707352929291648495191873864635054716397748800141775921514166471472351863779208269232649838180904082960719534773729931787321082595735137853807819841940468209022417074660882126223041993602629560542252392482656762258362650258776408233657306124553131747570516570048697090373915020258038147519497984581480195238889283743390352140456840007747137410462032121919987786936206591851355575594018300252699715659251933383407710651852973359408842831655848695981229120602507580744810018941890830425477403388659237753076862142314998801131750445127965138719141195581231337625463769829952329269114840628669239428932968774555952102149510981857295090464558468357774704754127210659932703304625178697440040149408884878611273707587439870683890791263156914156323009763081129238905217312407181794319776901415471077590428225512245038859315530926606492729724609257549232065433002327651501826457959125431047609682993583149598971055456542188772947509895947394014489442097861721772130012375925129468570910783303510169485700506633020295252796135216920719659643179999985258327088568367545903537067847674228539642263786442192087313418976934443724522185661570471966682100540959700099134452509052841929072434262490312590466888137905348701965627361057116452073087774835379571975566803288738722840557152270590936807567861930632269762733420042803622935827421310708593792835134521695559169999750397085162625005058423498767413888140849365299116670848031224368257042806505714117247019992334413809973497557468114198264185010642244908384624768223843483071413120669679136658086541061315889991132517195894435147170455749962053251558962977471488270628847526049643300321620332467037156922743338362190839302375337453106034157161193850442765510549025327563003001297205968706544449693685130686805368196457856407841545139435273321082910755037697272302417038297676746090910019274590315057028556908046338331844417236773425185415175072613346322944604135485185928607455854131201402661944050988570265694805160347985513400794833106115820473609000122509357148751573686562432709238907830018129234942773923116547469766203752280802361834791160376881363633105887726337157149514997656087334455054240774743343641506510385812040744695571775775158952308333626091211170756956406271785248627496623623297883769992880650630533257851556057256905789146624655890335292463533644839335332136541260333964360088210860437093800967818483774270198131603323214256209953375351995147051047349230874061907087660631511392522255644468525586068232374560484617872461008347913019354561954904123273092737401977362340800936767771390581690965388222795960810752288867176921435617130549210007466122878238575436392316037635736725437053447025432540335880253574937104343154957559452166621008698668629867052114166306729664820037491984718451411474736375552504297007021558885779873732024574640437733466212443039403751251563810941474991753142741904320205233595843260894187663826260198747881315535510571099148870692395562400166236852910508543808598101242728874810110195153715420196311898947127735189195150414621340851507213088350171609414460578300095423151237024444425104522158666445341783143692586768851450665501343003560047876203620430146331367273148262021524748875742924347182263669087629133356182532244548533571650224334203836228422163491573590662306341368312796830448014029390168207024001086633255476592097153359670833904018028260473689265845661981189387581424869846055152096212547575939849305793022842263001965081430687522906459398255280552845744846402717815776907872930086778236475122360868095477117809663786172072447067021657432580196306094149429896215013298714449475038317648303030898089931621417490540702239556476869831876557744214891945634514684746345891990930393036846669567461802369431560714026777227265056512886693867347670723288951920334017969736472411380191607955783081463344847394448991479975139118303187049470121137995977372186140357709583521063422014930236660643814465117161291604142852556047878086050048613062162122095077654951360243142919053883426686845716201132937379097903139948394879855268918665919780834044489531045794023936923375334335159105880839692938498505919092160262628129795767142043436662283508276332441970362990223273906586374354973314578171070911255111325510749477718075993389323621722504085877730045602286253127517252175034750399587184074563373302009716667427254525696161408480137753415148539467430058630005061366794061462647180488428956743267647076962940521039723369576296316275067601636605253896051167678899978627150813886520245406412303697878533001609980069227517769855839554142622534737645615202250047800835710837822854662532701504406341299833265399630775307155567495650419745152178630840191651505244295333952674134320601396409769752987630069394409604777160851084879837067598018194679548290701135031408560519099684918294934051386762616390129254347459247799612465269593729309722999232004548250380665208427205080980064424188847136220227706238316802384479659451612863222221883631913700769877119250133099837417336383624508655465866539260892123871153984101984932839695424380421120919190568348032265477002723844180623126457880360120221666755398544866615311870216569609445181081135301418978816706511599037207413256100501360127442091724922792381556388535011067881344136460693777606689519800659448938989808781424034150739450323515350494520156983634510479719513169067107788872208343626306931299663661038219078595857306842320442217912171800521034378170570995402126060217625087203119986499987773246454985732802634842497497071345730833548838211219337654596644305002138953598851735277579859523614038934224221061538624175426787507732656882494688430612683583269408706501929002932247681068988407827146156677652488419478252969745261769428040800506582990255571866183420836433089683108130218722479424621541074715854504574988992027120074575458883131772395033344374240767356644042512532763009951236301665278732247394599694898779262682410566047604238014110043563286266832467710587032778434896859177739235646565419271149297522882796315910332854037901925921539170980082067145062727107328474746466170629726839026024589787007050644733823560682199913982532139034858590727124241392832902934093164274199637032556041289462291532958008147973973018041868865817850407128889260259567821363562729102282789808434599121613408798032092370650239650503912820670037324145270921059296328947116227349560542787684810866852823357319726512498675763067170364469765001614674880489397518340263726494353219350920159317619899146356421912771029291981249453275479272650774078985567116457516894063281926842119768937833492536365385622523176685040256219159792380654132793943048376210855058268062585071021188264706737566514656781275041367748234188403949759812210848376366990730300002910962792980935580581537961773104375845449362559720055940540759744389271367509375123916851145248162021075735211595550306588154135715377033861258134691948642516923034240874883702596638216625747556960445454902307984321398159039071491904015801472881977837828784981851945342806696784821946995749800849071318085556115219763698812716093295528930607184186337845972933038437941591899290209370642018549855507882224874228257934910985716484610850322377732008128547866893764327600817214084843980793067497294096817613378658565971354589436652021602666073863843123869131532681490355249887670858820013589789467996939195327571534768847158748765178755244099574169345316649411608141653558574217160462531219252792889604501254958571647916395975906825512010630304366258525958959780586916524945546195892370502673534971320300782494696611136243157439068401221677263825102282300617288417078955874300283066166002843742562290426898717586712370602546720944439030518513735151150686076845394033088329821788029266481552776433593624037020530525254813951844542668399350710122831869901174362509949426400461621806252518882416628706472653700750784346775109359212053147971835266749538180742993784185823617762257182532848371345331605305962608099427762446915441243519249222589515007746638028783793606593446302842241261371745289087910957658344460363376640163325722558362785639550799806094489733455105861542761363080886184319156098206877744179059587778562598907300540897262984534015380491620110617857480812925245305907542818324777179712215881653938585055557810023483972341793462812985615924730625426993494205659734141001728053086127182466261428169763018120086407109304467696532913721682893095654119896706792568440019733104422186370257542131520109080556660131334604693168229917773699554601480612178102619948270327455766523233071924799375317866234258472576682466554020612162724917203129783055849358458651614307618146507184434773520798723401158075834310587924274931656989975527121016074901315059046060155052824233612282711653074201826967538440410465876716791057009632429608899972171379400923635600464944751014722094766945626434025954001575982980742354172646363675048945478410138205924133502323164833948520009947804890729997849009543215934440938627679085891813184185949169652980036034833799827071886442532644600117999051253483645419171848621173976001713489969939087021467466201677345779356670602835666265074221465694960895424328970182838020918809160686999271847975779707552417471902789784466996262066668479424551263842775595759064490714884633405417135761971001333461291625980377595765010082958160937665555102250726053873422358200527213425207107938773139740411677776508206811948090308278263864902601117187338215262444861045268175887661051023830180539337487108253132225887146201712164398659973030708218056860431629458192218633823339758255810988502664552620929002883946712171655668271094856134964662151826810797885776968277657124146731108375090477123383082404956502203159296570372976507257874684771373154294975458591505507086977424621014997837642092381533696571137417539926458823081064392813153130275606522769245580509532326704674556822614995105787237606894268169292828973051733768911360484119219336444774410559957985773625456742813299735409185255293047151077995166989678180918074257142463640702585672364635632584190406746557237982260908726915090863222153705505827250114532994901577630301845142199418993606090765588435540920897592656281121523692237136816161834352767859339534727665772739939619174961165814589273845691400148952563197276614145911288555341610638936013097721366282621136124507999294035534106556740360723219401486757708138193309408300788785713311790973652788195736178139087008223085866867703775858326843197112169947852988988976212436351839976574047881266054190663499818403648422396912712202433784520332613112607399251958650300853270588398142599992412449992302385740504314385639715998545107663672386407292008265687369585913612867249007114184605461998495076701951372116061788135638530105276025397417497803792178648105810572562534511535506344590933895799330254277714263733843430227504664275024443145208834968095313611471564961717426127491333262122401325203384222545442899358368217562388450590978884592856453379228004827228732693848118951453428338395904477520919501458311835220302651372312727547892572114896266092648477158188666566196153376692222664370095348131951371937499748561268998043759767515891134411824894187075760441880243571270988059678185024429586366602747879112109022337513211766302535060945787295586181155833026638968002370725146886152866035488900668497610576061551284827205911142175673610951207651033999370683696679252043443513077962260551564261337084255684768388505274644618410617429067718640856829780318793339308994766608246064790514937754757514127889027922389574479616962063698668488636066652064332228285855181530177135085299733603114320806899024557185184052956573862964513682264063572131611188481698076159621713779078572388245705154320205940707352141886656419035611519782278410399849748173569425001903881857569570345243890404348786904865084062283929625750334717455307791073593054505810393666657290717877446881041776991934231481687424369399510183900643092009929915296824586786480965306124120234151159578407164984193657854714238824716148927698857247017639673690784756306783653310637298088503358161659823352660987206333894232891026679021159494809042194077882049947366651280004079886564532059880837514881794225107229796516482735339957518374561588373288337784846279921320589010700464753462706696917132560937564043700585403769619938101620766527389056985797793971672101880397515243547930340128448776579555540444897361400247198617707799469200879120088305664785173927133193966254870968327562983117314629666527482850763656903374535589416586167981270077695553354273782646783911898748922317230950251754283001166165474928561095972739892157724489837293079074003100105856246172849520853743039639304548199640165992166891742141948293482727582413338887196602132719775522501588405751359326594722672160208266093163915980368099541716656497025812391202059521563644445245338243982753041018708429986983844438789983244005070549966758486086323601669238855564857952899926147811353217961852940186675815841861268034058800234086137709322514215999683833116430824327789547297062895243727481020276755597584363716015545281997829132304564739304549513525238247670108381908797405100320255661970995974881199413093135778123418400913812139593225655676360871231102672215778259458534750858189002088881708547972802287465443648715641391225539816094947292507314139376264360157471263979762998060719105504283545815923292007972479498243804083550892431035497630077369657263497509105887814468584391177971262502224539101496358901293303399574614199157503219675724956687690809625634670754073463887029376460802058418627410089993617832794583166130741968767372426578117784668336442197215079266714514095968992267904736426010644387655006902779070579408188570882075113397340925824306781358147555384256902002140331399903407708164676178484419338739673625461075260891194023954923263880341449741578638453809390287714817479313018765410258877624794099301637430040372903085181427196121037830846892551538834801300489794657814379764526696365361626249833121781062613938322930854193920686420426022961488174229478211964223856170956485167975225165529873047107274368699600155804040822299458512933552193915388777962326896235805184506033613843524834974917748175044366227592286745683445800785365217386124729347586158928597900068401949747984541197260950014538118369472002394845809666191465555594160008670005112038296805482775869467918421888947154639837709566936947445562232332828270771990351963175603035733867270309137645932216073210702889899192465677866204923227075360864737552863902930058846623446810958872628610508886510384932339017675228550886518846825350182759020746364645356988683158389399334991943560366835127025716212627249441216228437104799310002905027306219068801697713088616492475461812992192552787131326705520538311496944263626254272955807538726015309714033086141769638611647994666725791775130183557050694132836825643193691233219692153490284504842200519415251844599974440999877355483512275964252325008631179571022856530382840218994476212070999128431477041271831229481859298630931802090841692898445722054102229376892327689605311058102333336820137683696124123717573302442156917360581668230838635238459552685013677158067309907440045779356028239815067143488355111277114569306480932784616382528277710891986200155261558425453546432194700341961679483360989271454314728896888378208529209972222858624034327254455960749858953341265890175616979322709843273209912250133035495317659407194897377908316987738002867133863172169908836322874537253137460227138045272918702513633514499670863343284267288379207619160300095194988282413061129924449572097533520146332452173951702795485112532772230947181766957349433335062151292589589517314036793796600221445558945169261734352230613524819963640788420562131113879165453324899726761379631133727919596806066306274842740702591484127974463898909572876230068662278045024783310749087061072766652814757560413741229473090694514510080160639856477595346714098670258893349681193260543588929287417727395450851636036219692651774484063131382037474650087932024653804351780785788314772717931258278070907161709131764867930296517765255529381501549117895049435485172217739140069084692907879183809109311975606223112342665921955259448869269956107495685365645858461905580407890950666396272521684629955880320696826159200324994996342412650022917101198065504603919316845199506050574173847302158312493099549465296992100087134767301970811852824401865454962051106973954452389087646020052667785684595415892847554408019393922373961254095587190739384354983207764660348527053881382816661970321983199362002084996311674370469835653404032948789730556082821402963368010389001853350372233841852343667336604202632518219068539282735808161593967309106780075394797772935487573499618086664086638327763279337932836678163230444538538197927622073663294408223647959287065829647550861404194642248387632009210931523260064936991099872784202530385800914431414907173996523609515155689604747683100372647110683260146734255511509039481791946000143943986764289535394796948347110319015101044143625571469532850939959618258873469445440301140379388115177617693857132748588815513538397525852064050009420121065306300051555896442669394608001677125555749170372148346859673037983463016610148060478319983209917921829373974251658395323869829354943555347916418662566070377905363594658653989831481663602102811184053089398380125324957879167974170601962994141099117494623726218084434837690363306959425603645555414844071926531456655446829286722098781302507876863792218394099609122626893336292001293016031714485980408557401234380798199805477588143119240947565129717004986418717426904434824234135627240801609311529812862987886801206572543142533144085588990887507929365763105545273540514667286163569570858829585967478123755132687973552250148199283600855259712857570923945759155193944696681998870154481167883139954010876741599680270311823090356401290482663215820328713221239772611468330892103743271275982675354448263815550084749897386722275527687229524998122534438607420616866832984147405184369629068241024325178082414708671562121105296204629592697173063986558880076939683794318110465440611558684442708243254161830875981960445572735521446897142514972476799660167410369670610250031218533777230941457362041473605436938100299568327363754571258542427031739498497695423929210422199944951941797009499459532312233067778737924940696375409165944826336950780515174467377628248636916538177852030161995454312410299377534465053271396047214851254075458440066521138045611728932838612753757741047567796701041342561231243121608020748050588260946584398556627594553591360352577328705483902556705067992341880449812924945603057901570101078244415181594454984920350479798442224131554634559658605170987409555325736952845798706270142817017236609938926539730197392123995962407781604073535704536537883460953134722601912261825888107779687921227029986551840938005732582664868772340201791408868876182696730258644091541329061016124702570440157569264701118262755105726567279949840662207311801793326344944962546449048049201795364355010058234630009873845201034767883826616009509743180851938472481159382806929899255951493167188380666106308351303678424711495238519727332437448535689722779922396959334018000120641140927888410645211930268237345467743989428989493594463919860257729878947443846886191566212670716654302455420394756366683467460785814852669367788275177520846455930046813287121664261133698674988987996451878968042837027952921849661078110498486570548146925250378619990227168116751986538032436317093633933576155873070949595322192927331023469784749915810586484247813208579485073837419937756750635207193900947877497909245316860751992371411499311901752342737325756539579279476722176740265796553648869693839102933495604143614627033311111856137819445460487706788124225426939505232696069866677641042185306591009830088072816826092861474313780541434924288212882603249994356054986268140433150223083287196439051336300247064000842162937420614152343141151714109387564260885859126004540522978205475589186941729623551184560562561892245590826444900366421471104470026985788098139076145117902411533173841939861649859291038981963627287746560831127992408648120988975045055328357769251307305562757947637480401599287448550204749377997534766212660417175481393934261356024602353044723455746647864927105589237385021646349956660439591203148122185825976294681349108089429471602042790221221273148015875299409136530957766197361146376125480638038890050642760160669089456094493427507618514223345061684149267804280001627852829951799127508671532919156515921469687507127346978136700474444602362486207643015263527602034078907945377034733945844710802108605791899250231330281966114016682431678628975116699495139490608441910879927350599784576124216602070729461467090417669144598380657183417626435406461190756570803785306360161472657408763039130599158530716901884275761011229557327749714158604183523831649054936060295708875133896649623670404534571847023406581270316036578599263477417276858205658889673729519428427402799851578197540738098956684041288432202868702034839472817003208268725688298114290270114460490776891547683592192289312081199947191385155738776176228006361189253535721152777024338539750842783136671601299677600251776628562209281260983065374337319759978116314155164785346285183586367994533180369918900905720688042280545443970755392229852414710678104679624175951218637914413442158702299412399618239573784494559555365269848253623856431898519144808467361191125857072082230838067392774481832230919132424194313514994355975602735827803464892036586432862119779636623079068307049953063224387326182254689392838375587252470233508500735993253515952210612473249636927517005011825644917156016075631127312099443205960289725854653057590060236872657028488395730707536526789637288536979673474640735058035616242644733342323666323702932815555119321715785205587727652080325528958873868040136071491291038737319349348632412498806196826437006855796203750792300374215241813099453990422800814638042517829042008527570857246077419368304249285282926930567925548747868958448833712203188899923156836504335426564440498474852988942104707587202333158565740531300855569190767948621038663962344215134401544403761518854308864726063920097537925123925718773155766452077220276880468146062665730960888855988995713209231164342812803347727990541733059270602973251757930799122116075450787059731930621961950095013204622808223969393854669978714332425876414877134641763818649635420399140547403198903177526223981981926529348157760986679474849674138681562635238204888400815891459323248944244128697474572317990774958559913785804106298831498379223153712101147920223983772641010075565656553726911944637954369090121776355652221796281762634450860705660921974110288928181274647493071877797338670399659716170968785504447851452359314546783833723515853871151650813636591568430935621318365239165049229324740787150029607895390051424741462965697028258495395578235228689400878988491001509016664566971801297765454814960661086669413327675771179301865160250118926833936185053674418418063532319767792456181082637693276865666287689542392682407791916517596290713781186676423333861862775279829624683367602601259954344234224177081468022175863938396914613695178283911083172359983276136777768684447961386472249266372209057446714918558955359092284607957103075243912326002795637089838793281355295605044316938607290966720223212103983310422583382157260026770042816827644604037188708790460586485068050041514310436492578609348544954308814068933774217164432421029248231254650434688412127991037831124390267970200632709833487183542700713756052730317335708506105891434611888095685165917213760204035752356212312784471359898561637756527951898926652476774859071352266662780319201789428949265535789463695489111404716855571903944179560431595323595109091188656577748660033268988764610829420669965597817929237168483459896047923367361818968980318822177336948797880020700897301721216063144047792662147574731203309051882103835536285314654021721917893261874061602261594928501199401606416335250672443843504055496882469694000062428556147410210943191126113998584635487994002614609842038687807992822896098474490642709189239589667051648279432449337456129420445213364064798398984920890550094479549907045989884414321011178384489044880899984669257341825240852650126732553346090247511738758218846682278230870880329165160444552460074076652103868809448622240223999200952225912954642968280731809439318525574655432569389631019761880021941265206168249473656722209595740491300226825540835307967423048393667774471615221842468664053375075075847360103084080143394051436375659110303796677532647214136302593920882615660615504749692929221230424645060417741814017914290930463483436699349716842763688883151634981291266663035605723234672473844493754240745211938706735339055595033276472381582577713482650907218400729775750368502173021709356309598738259885842052475680649426014619627071522424931207107784066056640816702513510032363813633398265243575962086157620863873830370913582621597654387350609519780736295868892841872720531219780170652439141027671061286540693026359167836896931456671185898039140115960887205445985871283362666383313535493166662243394677472160208545214290154649401147785650341625164137931726157885986261291197581181314448470238368123275372502576716627855262715980896870409449679484487994400582700501809480667069555770702812874378613680131450671163775745154015036656334885998119633567067630921767440371760303879442783535504013761192375345861059798757532863630075345777787650652857327922643624280843543493710918883469632844505830467369085824261050125896894984865085028919059767023639281940568476979929023114758981888676185256194101334784011136504252784261076182568844413152065147823452720720924994873641970264030648770080568722700778965051609729309703606965127539648403724751689198711135216534739141418212433278172776411950283647714685317911194523168678514753946472827099753063152905862486086318005216756205699333992579238720715134274135558633383347921753779947197442602020209171651545353685624984214287143834226840747231770690120597075008417475627483699885713342214302781315157262373692398449273116876022715498065174807932876993405006479941252816300692480429512523433504146842936703060513819194661181856945597534434625356029889885130371148119062939117202695600902364564817229234100023689916351187839638704924684242267135472528870098171609409345041589361849597390827487780782626943184031008505127872171981105552433202280346959292460394001786124626724387140586590808762065228349686966345288646168809988371574049720160242138262282802919732116322311183831460657636343553857148749519292823923822349514154262300170914668264115806535706598312957415793471604712118185189378634429326905326857312932094091479947235003245806335579121215098678099687523620122539706924427821479739084961437863199031574075801728304265232007682377504532908334123376230221171037668255246552803506322005206202150524346765227937943388607102077677020101000587032432408581153772354046718084337014261902152382070552348919280338030003468074128602212030210167525291078129429328826939460576993388811011745034105849774048621938115772204044827703289429132779083410551989448362019075575272779901783132114202204074446205960559858075279579975514662215270404951023734193208873004295563923505532174257757822309279771804073457344048425578530681297484687942515329114304430736910218627929694355512204914230895346067948393144140779687802888839939418583485803025955338382951523937676004423069727576594700948817377851366319367357998555019399483228699060843374374497896745047360425040833321521812124286331237947609539916587942339973063187442690497394632223357085379152175710362464712444979928709326599513254022882513077831622179424155745147239561528056678914152558944101679188351365841263895031864889261966938077778630009321081099583253506849670379742505169646603613565428579605332515530009590293656302979725152481913215572352214790167441367839220250388364479273663446633029500841657922246927056378988327790726896471671194840234089477708699824251211774309888088206702919370023930387190966919510331085582583556334880166861123223526846157039892918500747836497489657842443599907834483271623143775123204133432509592847305039080913412302181540988715692467062417787964486057308293527313491625468954137602182867856760458862038918989279970177868809523962552711299381997201666784464386656800854299351943806299807011279382287276740346533946149955574930438965653369432991179436745196255259012441436083225314712400090939921850374202094713203287132913045077270254852487402149419101975761642466983980616511559780858282681862902073661880458638746684403932613134621788986942977161896755523218613562767417772845450118199058195973720504273831346938899073993863227386657849124227140603112887575343731420893838222337834102422291509072628844316533030403908961711452441101722648584105648794026953412189812714463042285025140929384400495373259706429953414235014706032549517326408067748191595386081692718290817864695687853234216501740993267428900744499059180914104305768471325184995900698414010371281205582886262858436284609319700717144236156533498583323443007713766552707038489901110657221880506274508297775954554082563950269052543843090217127751246720116299508410405105058457173537986901870200112958556170030338579258695745787597755482385597880613350805003799105957546242641923787452163433862109596196645537075201400756355407028462687006035378987855263622233553857085577646636778426099899052220298662756513418568655017302336687956289989678501893714107631387316845137865820431415612644716179739404869467607821403862151648536059787444802786047874970775784420051546870746605193465236147053077152656039253411390384789991560130243494644193254972717224540571215098221000372539306221362214816587137104844786926248173293336489723601603619849691600278021372741284606307131818626416211034483289280012403629787285205618427860731133261338843079956572860658508343233319679731697611832055334754721880185905789826457677672297652021186912549680212611288553157517811469878938892665763375305787642536915474943557815808080318149099567091649901869421076124629707669561916209008246876124601707193757758921614011845251276815332614835796299264987132532320943856763106649659052539207427826185655032943281958227099235013925431780441247842270066550336234237502038702769748749384835396619211756926547255017424658143675640430009759101043038756109704301760464162543110901857405999214564283262480637604744968147600265601588955480390244734489104476571383014829406113753249189374296685105163927468854632485633223622719730310933432824035142395129780063962499432053865524534085368879024555246838400287538110859455110800940470233611381063312514990113179092188523201425189444277814087608507098320274426501103604831679710452353156905858835740713917667044826172465456235621593300503236405453010082799764667374690394685082532055666200199326302957356054895252806149961557563500637770957327385057091855378589725647505351204527054211340449261401917341568746265520131417956534409578537909610575949501943468460984676991709989207605641113436102447055295325736516682603975792738813376408918633930005441020462549330070570696390223373233780558301591414089811614791774206192135744455399221395595956507620980100196655031301374039514738632285543443230718498631418323786782899375912096281646749243498249658600485841547132890872355301229694016514089449110737293857177901691753863625062794021845449984032035947756714350427219656308312728750178222277116658178771677928224473895990415116490038023220750349112521401482314803727929621050833093274084512081822403207785876239553692530501330231429323753560285208585122118421316811744455806084211521420613234181794931076906183759818455695304478536840731956147725183227587146485457084916508114970343402232546856352627091715777352098920868812088281870911846974966900590121648429406280492515565546910017760097117595067331561434447457266379529677143871192708204887724850934252738393333576580284834362707003204832001800559969815941497067693705708217645881749847255952698554198369796374997340597944673478832546293021074030114443256886357746656239560557709710064925779088866578999890808366412214173603913858252186364108555502423295372705739144480618590095293351577697891459882648835823845089014161543264196241899920752658307725131964697545082366821391880475057917473363680488599746029767886176659481261926806627885748526649291022791171697564749154974108267675924774486422335355546640065605968474853541823981063440937492058003733443297243079659214848657470074054110859664113266669248913092129524174410290027227026037567583580745805326981431045122430098612195999535449188169262967047337435179331540501670464842135444490100939590640235316184832488143798959583298702459003564532828205476845179325743707082092798317476834581976592941900176266222019151515611827998199379039037517643745288911738514966717118860737836453001032059950722545008571050675297786330392586825757095100224554643522889256056876218093363619653989976245144896061271275600656089137510704949632674546199761629133381735337990488563263927476946998339190353394501341765571874436266591452493908537306790563530790094578177810132462629964429944094347728274904066363599893187471018570923369788658126973933851646166922336105743082401221719626292260391454582039140571016205097869152240409456253388595822748965548454983529876597940881945584499736102269998630031697103796674177319113089272801851105895011556630781768230979443379995397008526273440386512211733892971748423357941300727540619193122532706589291940646830207953598056638405422289046332451862233592009901792429294025782314390301018374385460089614285988635137525453110500848635572462489759232680384715199224952433861678156715508028006206710910332752049851051373554240548172693425471919496239750649286973401245123585806602137704434721426302888183217658612349252839513600890232188917997075017912491099652565544110111979870737595409976543595540192707964076581755964992889728427664404195233290315319921650411589168441273981488295472392204411089730022402201288055871288815505558071917568768043805453962639409981442986872414222877508344020860046844117185451131770641163401677471363036331030785241703990946330611772959454531962891681923330574562061664055500411664438167578919460653769932648795830014738723983022373158887092826489348270297888143278554243922605559596316310761870200868248044155055877526113776261551503572233244203020732923197432314853933509088648063483681064089088358185521390465887165359735076704108773694091633865317588202410593944656966631455297959216275035015588888199271844640565828076626876547101748130085039024428510420265282102949340053920114793656261713657521257710468344239014539548138242352940807482129306609711288168213937906423163759531854277968420099221835324876340785161738864525859805546594583345561947441772194444715987449368985215834417242157492346198316376965214797632789537596815272892457467654848573257803472368266208350919995220050206394945381076712773013759815800361486951934358593885989715364426186542694767875528843060359796411163615768289631844933660982637240170587786838047884129265859063082463073138880311421007121048952898545542513257581700453510301125626161335557244340446710770689912072483632938917408638065898808791246557371512850514593804006009908413355840567026258823226142843112876242519649468369566976860580975871117554383228274426978279100735049696599216114639693343587667174637327438934255652262783261946166029823528981617411903489780576853484876990194392905729189167122049022115848890180842897685401416065150048010877655218691197051307732282104684003853875072360314992793151003988938685205373895963528564831070174228384396998316727956354091971415333282988811712347139101979587417967417279998046350213830305323596455670360033351093124117629875686934817480954379363719644004222376965724518277807514657147190990127354056928959269900386715095622769210614829579999844595972451848977731687510162471857693917437996511277439123842158570647140736094839477889019930313404106668311302553810112196708739467358641134547724502089777504841261320676973212270646638553376303807705981984700449827797131155198868654184262946629642984312437393225156520342561328404323275958038443568166156079439639566619331982986175914607425784261114152840262393184772731145532968498886655152130467675942518970247967099055915929931891629271178352394831194851238327753772188545018009946041657694162652856976638393005813563657504196184257549137015321254458013892141822506289026516392959042849389178180921240901258122641683926785322506374059211791358155746015448862442421887110312811793121494585548369746150780457159991292775300644605630342952554105315805350488421176702388510648163910741616784919160295596190878122696569840928295395735894592201287922642507158580669499395317294458586939089973088360196095647711731453601354634879076927422007072802167766914901956915631313625283882544536336974977776815139244069375881338682524251438455611999860950291012175562610383117898096583040778267784416811896123926306903547495205829344136410302015420744194401300394405054154771044166539598668110778896299495100352056980347597899301438682457818169726510438075805304626154087193998785576173753742880694881408156814426529729065909687526303782994275538369357830431173012053585582126923182986343011546056113751593445950372249513634132315170809658633039513945609664998315314405969857431754241762560596539112404647762644471358284795741210323249762322292053556482452259346529081407809330666084585144185561899479596726700196079468256091310278167048607487481665518416644843277201029725901908781924140730938285036925596712402394082144848131137569882396297601605098135607555531785030365887677894376553752906558956118868717128550408039880347509306743504147195839090768959099396630842700892376402101611667362281371254742811065809271932598028135914313673972890224625255530995886779493165689810569364747069470288326842753719077301279946981011931576379912428775630263297883344186393702507504282154582231858974780536453326147418037819761352305236706021655523535877915596996859671717742302232133187592459985904963638024602001326650352890046797768412929805987604953854464822377065902137648621191773741551819371597490408010022046909630835134224383312457294541452173263867025736973957879018457532675054667307404161187222140077244693527288030899566399936221488918804978055838748993069547818129104375228620762234172230872414382985550714417152812062644322697772178262677164978511189383312372790293849674264243275961783094028611620122104838640745592867617318591940479795746057149566530974917973934005135720935366684884227831841191809076784692249936488351112819593742748922787322275886700755131067038425108764995075231192528383106605825777065669477676240918294999410079075457207437157062324041159621107664189724237009527032968274735055624597535271678211503958700755498690245260059745581371380154774527475707401948912916170732445528618518686121379600651662713537040509346375384033488300350812622293266243134137532314943931082282600114025015180078429001291673566511250533238611131767885094101949395553843336305903953864079355267916641426124536411144011125489547386272008659733313246428123491623105096249611023375819309412273502526225119064422208319637591083018535463328748984410388472686135270755369646825314982961220421801616523402487626714752058049156673590209990653562345138419142866917168041587197111906237904195223409662374493872932900044759088341110098788225825580720287791313530392004782381017810679486460454755316003043281575848346587021117235951237342413506571845374821654347054793702576056329888925220432306801396636372582811252031484225624743244438425857356840698829759492520080985068343866648980476039735772370387083468974025051346144500417535457228965644550548906733827018216119246050914313155429716138838717730620188974022891564209892131673781796300375388800292613288942955723993334633087600909365999034922809846485625704549343197101860509482422406063375658020343047572743317001697701495620695737586877694194071802656295541400924291964317803096384869717903078783272367615930747603792463343376199021164670870734289873091841752067338360255599100009853320214875798514708257350835208811194778787462136648868863666265200904247253275809584561783632399720097407277744210182612112259805715737441666944003825424313608788597333069287116522547761005702805594844733402395110389963532157110749134162591123116862767954193082143223135348614345122155267397804840279173067899838177990543159566623722360108925243539619066605949453640482467033087147770654165347338119638806370967265608275478934345496916156785484989119077723362448126976636505914453522390441032714496777751592143234403700882293016447161951577658827352970878489494842897875729166433115595704984253986356604621446073244755384176334732565678375885630843392581954205176935203138789383360361962547378166973173949854320305066863278286349221794669847233820127272643481545744390095474464035946305877299044776559234870254441731894076578930463047135063537748372438503782071021640217310891075278856387497407382048266615668186365450349614836473059818731760194151088798900903768503609188601855113103565199664499699411229649799820936871519427860254285327823083249533965130572478357463532852102624947182557605722577589767487624360501581730490777503161059409709107286908675626038040986529365099696595262161570901740462234185300133126035219346082794903396396208310096123751939286032601400652150432708453911963444201609449715456663279224519924329620610126224179254799020812112662561344158877824316897797850090089340816217207369031303491276628876166109470601232431696614843259813214041051952615826207060533081616301105256403050245391017829441622026648069883266262150942845992909675042513258171964208346216401080869295099977876750686459366208328179425065536368424171916833085545624249218460917879560872835912823883551562358110389232387685410185142991109014414835690264789905620724060128452551464100548247799696395467993736161158291625768743441914722309086928195693368875576259708234501985219239547836124333842024966922897803875499011429631365229350844771638132782383105881729935333434512178037327070497115891977219555897020941747524951229105593090393905272655057361015393290349307812256334582747917784603167438450019222051073621421976459848221684932917640877178370802739355707601653906277500651885968087344772400587220382921488488863527453156984336679912202091613324141152894222639089192104147921235336362581715314352083358818979953382459729253807983049903036309421058334293939905736774363335177381334806619324875582863427733899759420445861956016233028862392297370078334443784525519736039613113359796686390342108146109154835424053421400418733463551162719104986191269333324516216200263504838687396011063808377823390076249202715905902417379908780938078810470068424016110190675187500535799434542170595146765546780911757940039529918284159682817750190512703802441690463880718095950992532104376326502151819366209426923156844900782706685106523470003114275627895325906370760478670625568843236508676381920082187538159481974053519602537182448854030062389734516102986175638827951667598104818989036551682357145522258628690141096200908858074967913725121418213465695053055611798843814849334418886577341288612985753349660026131680797609686114582897204707167733000274143973328583346679018578341049185968282664964194020819226300809185872300547858434914108958280778677366010628959175258459658011579030218608505076438663695680493354640046373166534279566943706137752250610536168651095332235138550310118572085459619004699976980170323898059829276461368894616324150237003054599967496973719736610032177012398030965723776649896235373181294829984319235065247747457022694760228696216066214236614428693624133326597668096567259440428440379180624274036960400247719275730319716334731027559081493376339907594087597765578480614973104896252076582583306525317813586257572701405146444868238101822381451077846646105365856546979460777467633200567174508718739875310651706570031660321003447230402796823355402393054905868631336000697027599720685074407269529563101109625427219269994035592059261178926809049921680991745655957738846923814206143224161256898731043882737588212591229266998256501745830559805978197598595678102110287989266309008089712199251906497053080910198735454848944726297434918615619333914638292372585551570047248105962327128948835743167944540767862425175248163054298520005816447269857401407843540685646229502495272867699953149835535043795950184612868565652010018688244952858216773715849127690968508179348331186157024765770190205137636922393830159490340620423122421857432828286451908901901537490684914576045136327468841524355064862857476645000266021907773651528881156465189789789198300483324072031289372466312724913160235739983341335087097778333190788936142053709232507112826690270543143792312846767733584603192855043712740171809991732042152846877500120012585878140575957383235011426182559295037085217176104185280281583069513137262305180756561475446223402230561146394524525724369627489519355996843696953377620076697813798858524058865917380297120641268262586106083398132950037149202977576001415025921427323377376583368638295174187936019790450097108023366468640992473849499240052313585018841972700205658197387067433070091318827416594436794602995208198154234148143956473834887438549092732880799356951433501424440611112866914679529973098493288436313928021027947319366345642734612515326236246765181707602114000389813073032911154337521233251738010269952086258142569523910528513574079497331555475086411676343995072240093664685696147989659988351252787839545877620015076951606875896697918806091916989632586526578059262558748318328124089660942015162582301657093718460725733891370670344031835716315989033723403489900971371042914932489890129693711339192937369557656935399798710362873360288726669806639559030970367321120023913749743785219604981853312463626387352527579946921675954561940994897250988686302173727213292270400530327712254540966374046918194836241572999242069745510030100125593865286164194602056894589667413775205539654053755681074855134773768493511414137152530381978051886317440685940991085351539589816797758171612370243224610125148763408961106213197896537456850828673369196351162540053125998843273861019367246820807166623242895707531529965827705401799739490698353815225196050202299913470281566922800238657345181921428010349073028565625040937553324938281060669795306982251227509667338454730775456683684468737831644547108055715509523385306628468693034682955198137877976849020682436060620213099534295673171342623309539563969877140399368672899380823638039868289467075742937424138678434297122580158451944582749171629637466081023553750939815275073187882810554063262335546533020154290802976884701964980795029674993700132630882991010734661675728132649337080717901743952239179726640423453807604834675420600987741774149667877860376564222862161808828423890275514962321359852337875641868066829129441130423794548839572930578769033542195177598429113709145970843254205119893130074595321901553914661000339256611905735406573293326518764589609303647135353534113882949734334173403227893036412478011975047055771988661654317358368267438129383222500618531030895943715521922210018911708420399767524882065154119520850307565667459640409901982696182547403365870739329014335425683625468055476930632207673450706691717720144548392912339266705553007950699565727373570194370732162975451563249844301033683785436578805998602425112095006633545102166462096482530335588599963810114068540182275944855973065218558327042600625585894941906496409435263607021171708520638457584153666627488060479357479424958027713583305776779236742221554845694533425617167225028527786616729001674776419406424024473870868705350590665033037007205965636742137229316014421509714806048776900362199358212236348874208157634220772878452857176930540722147523387326741893208268517538844656404516825008422342729812843658389318251910784841499413012000416715641344775204334670474928993497105267244604478689937204647244412075803943123175859268142727500733176824059833015179315283470204069085011417847411577733861250922358425948145741415836468768707648230923699819254911137497030685348822973055488906155959032725502195518886502021145318128993726489003009272310069504867156339931964365151387719944835230683914682356493581432644849648215609220538598363962845753965328207355761446335100175158216272369827161260628390598374800441753666147856145888137761960762208134202232460066686968594666619296862670445223221373394108189158489671801286777575340670014242479638141082784764250531366229691657085455367013097634218500096014099312547543601503237670840302568069361960452204649854433170562398855488063817472688959649812871170362564643336144247150708969268775079957499972251112658296007175812608913045530409036070607132305246163564016320033123895222334222504726875984973057646715334999150970351877207366994075330308722315370455983189524808118614099867381425062199506372714267082679286498269989117707558700717094186817395739466307987460997499577048453593708962694044428833629500823007989289914941334601192689927485445583127883801876760541210285283851002231678641796473066195957324726584897258527019054519125366706134706551086042666341626326755358992727744956669186867958466931124499802222352390977168080743684022092246864906801737692123890732390639041810562763606596484087369213486068761889052867493313705853351617344706430079276442899851551018583523068939976735676510038875317097358047886907891737627271513343826248709372246813358487965705110872690776100808993598380708846848280334815148578160463283341934975218247382504687457213102706288830144768074493077372644663654475923058694955895840976872834865348709432242168282725233452197948392776456573280169441547541323933696242274442010075068832690148262996261209043481474876746106343888796747739186299126137816713301239833033517525129934789703828297970505534829167907968446169731340824735397687698653093826144447543962469180374749152540400551740070112235103840275591076974744650431929484630513382034758160665304107097831971539703808371549825252153527704885761054978987691194095989495958095796903862412284049863415740038506329530939122943279237408846635222276066233002931362764693571211885491586588204605717163203016330343998226096550134500977448198228394980887392869398868604099045428728026646681750614539148831690808675852686919742862271613149316834393145819324392773336448238079825109092187413071495297439670607494715088311082264239627824327507439256478187841509725060569961519541929484296999195926771878344541173310109084657262777620764744699741225155986660962851783702382211055144029324237391668349276846851908769610236288279312129860234466847221529620899906658684947058041258728724722154484200586989439678784112861608245389346950913793430768046978939852850522841892794679812846429746433928761624686991710114731383561082095179582691160724520857495190650496371874055798383107670655183645969044891054122717742778247333184101956183126642831882578816996353995576359985434551899922820015220645246610497871483651296225251970978731869286588560993288386725863475235824768976693884407828614742875095371281394746733072570510396906389048306332325126521333838320113143525400438194397282859192577357084204122006143194479151871400908762939883441056058382124353511291844874422047813321413202306731250973372032671615234513130401542362386617214507392195178188687569732345122356628686072010308063076200039665991427031547628358898919491636238559263260568185615896769345518214544741720053507863597032595640094358619088577676643477087909094560511658005764752588878734011500562124719911994854003405263214611924136898935022541840144203712282795444875873888969411064663576686621589212304504821744227736688482524075115156621464325062147709014428169923086960580534453927410653578625215956924067909404354671559334989892401843652542241925330907095641510163739648502279117946939922495717767329569748952260411495487568039271759058437412102198464259104219334975885421653229889198736298070987026077398947121985401541370564354451547456472888615843927411321479446457027984754233176210093518845766561810920015862416105679884564618873304123219200172920671689744239351305359109586844461822120700425119287123656723732475217998556666582904776721225982249178360361757340197065214464800767796304835745693333889488075098949316971458386397063539169505309094363876356480556126541865893407815617526858031126052866056966143198838316548465167382320248252589615103028747240226625043343390758353611133918444840527136043803484073478998718357264776927235643947687491500946472671157417242324758384065977966448328702001152690047111414393857215093641753756954446316108871135395638873548764105465882409325311807284633070297018847815236661934157702663596563462883895676058890031733713925597763060013025922172892152137073785527279957305711000354941422399061775468787339972947157604847010899437813167314983102216936009984467936414197993644946696733931713441393519444436944773697038375122805414899079961514532641957719630586402173345462493402814140303667301536705817002652976157273735259956764833996015920186259772022580190393875678081760283574245089851896274567155374690785131599934225678853893621115426858351245818434476984397546392197288910566414810074357063863234707083388737281992002852609827754447101641618912664343572648295220123125358454558184355825290613179632514938163483608161715732000496187506515500129224150519766450969358562544144586395939573151019169215875061247098689874611009023328283798520698620919508172540882933099828682583103453294496765825851616651373402924007584754946697562224006239382085919547339538779267333223132868512397745052213731959219393797055403998870945662717358773367150383518940101521645612693569699474375033114746856379146568060708408404338088872115745902428690812664311715716117445528599909346870444922247438485715328028546761661735704147236644466665719759859445141869225277931797114433300706882641450620020409773235322286942173629092452206817709120458752891177355710776781138181290326318663251901026008490756200658159208905967580216015145458228909659844440027331566048887050802302231224570151600692561215421594953611448745523900801985073600122995155630179400473917922813630697427157486560059700257777041423031509239189303520706001703920219983830059748320692589968898427757491432004330370112800718605052864973094474847138195750890514755931737558764105331581904412924842127386644270056777487989556139977384464765909907816203488596861465379785502454518039373818715761249089168166854282065564635439931417937116896665270268955361219398878755981011303490083938375748632582756086754450278742835909970248444941534482916096267824891294836358782960999374314453397952559747901506139584215727144172837133666972523911012147518899342348027091725389952891689445443086547221176944450858643279651071207358971119774193396387053099001525843218910724085325725090856728378466324377881248221186085073629457267957984439260339191393325287352707229870667741594118689642078836457050596553898506473696570204754089131278904242679610858213621117678885398985630630073341235523489687820125058407980631160856338679435249995534063216646505370263185019125591887663137475550466182674817739301635523351665360939666318802913161105338340575006198801511653669761565687491675185737458881050381149886906208718754364750341921072157236534812139975092963469345221707464321081835995980974132456009638917327996481024053832162995165264539769393795080453467733022390074996080945211489075103866742371804834175161170293781462273340591166369358660712059208985577114560351802243745631278138710011983631897392909065701453572173172137802449052147570665488429092127593724883792103199140054737645971709741447004668565133597134627271137391113805678477999031648789092791067321182632934926567230645280150069609702164881822017336130777138622387047147883473674044266795469810266673610576026294528083495498944783613661386767931135973121077632221146321533213174769692431902251917078179049271644989200625514322563626070570292285116430871024996258269862927823986248134189389800747633985268897338584957370532036991404386390907441897316870374859568238500417133239341277116608162146909884978089694524751180574068700184493866244961404122044553037563634354101985065805875290453022680332398891181634129831970762332538093834627800201843844419026241478793166296262099098646364692455051694334017053397100953819886629503469382567391244626806080589470092622233899411527968171869710707592788083083157819237134388179016503739573178785822900431126308842649879911298738872542205168095681008982484333665726541618715853781694270089194934464173020560961828402836840741726333116475866070078208550535121313163016060366484157407278214523336900916638177955752793842190592782103463786996734499678889421445056982545328013168643972713445473079900952826971410353154856796403439815872302372677818872482500503029047241216827635784664837151005761610011813970063430860239782410422502356830421401584476127580404303547577561418424952860630247280796680051512553864202625481612625007203320167709975844022555930501449554098756024863604438902900635529672091770827584893975321560743583106680039469550998479636151694624686403860151509432462318322909657219826279299092472446698186039953924238892415873471340447053759144031211700789030340389325821624548401203054159402041237405832954251060949936954471093366126027652437084499831504948278352042646242146658980296453070027035638071839413256591340463059089505046564896407278786805003092369337653075701235302126557025943617321985565577666022588253535025942716429803826561261445683154392761017482971819715861503737723100899609874184546055635309268770573407866895406003474167167637567072182514516253776080501855808440999921121242207352191620490774406450103492051038351337745712116853265995503686418165163686364115669305918926100037224273017712943381680647820045623489149498011369258306660022399157548958937703915822279493152428130388889529503475770232131434940475331333785312473617484919407678501521752848975766834524434851830171695113514855060645847149427317103789309385842611598729566429164643286241547527657104747271404306926126235324524587849011553295600878606699404216630352122799239487711852019642699175392639610179761257260988635564592806400205642994532443253352911686227295449938368492060852816235512643349142833931305644186607717286383606741085666121912771472442655753039522122037357914407311880596120956057102136814534693605389625344242116980851962961258136636038332919548925672525022117598750144534037205476236643896989848965041818466952009193932441108090911140340316901425408248501978051700283975475539956423058848243101952094512843249670845648854768724396891785982013217743660504602257308087922403411171621415059086853757222598719434790756923889003781091599438967139662200193281756656133803760961543802786650707767389033263679309759705439640162555218590532861715992504950179088714118512536535791661992709421613075744827077190840505106250095722968663251530632899478661273377234683924875202059451152382273474055407151627293972217262138239498787332383695534411086437205364777866297589258271786497344928472127980641668129853659043844038894653079593826780247389875517781439327288794818481163959055961635081095234279070971810198864434240283020957671820276788597529467139951044001612152267160212842981435602739659262789685573908511490153369940568763530121471346569068466450605674136206403058460809651832615602455848518264682034162355989780865537318850323690422095371855515467679514490830706234789661572670154135508370732529258404495960270072650770017496641966636096547772853773262994780299827653056356652465074963064533411464174324942060007695833884436977258914569350581235772962223967839145093514908871927485100249314116533409381205197188559683689008140856128828592398383976172445405812087920568684391850161278737422524200225660598495736258671947448509454529633768159089025666100166782979649015323952926036473564699477487242866708995898335546984504624767019061926001385876137952686112359236871703380762727633605182188245288094158933395405872971153448501394036106289545601264601748983241818607028645065501706726866129140398382493238605151988405802659334197212069345253733850648379507809336728966469503077991042427707335706233296170843953775847053649194174514329039665555386552893195169292955059721193855563751556027192151956503951671575209347567632144802355947125711240590899309837330435838499532179456393039888184303904577180299163532308476490813324223578048729462997900660620583663005098183424173161511201174043521746274622576166726717001849698549350510366050888110950030296930391571710480465658805340014762632801305291674101190526904372862361271742795055568590134103795777530691074026078363097866771739470504254048483897224430994397652922361921713030488854515322073475210776968568914820452438711217919607187593750597620996044987564411025725517877354337583473733936723530414665491328620903806767528190277587757932399285049641734965085382531575246743569010813045732084798994082075594715358758761538963974747609888985621236060071480298376215434770643047952257294007292689118853717572366177229768276660012892709247748877734649379391122523090696085128205689876276452374614363516178683948498518524195223565037827366102334340664972891926214856467966403738588284872067603672304709403506453563316994011578461011124883757726240668462347954383827474277317404078036603385673133953170565322811869816608612762009416002123111303974158557445836934087464018314957720264329167698685472884077085771461750209800421692519548107915480706069602630737986134737907929916900583991654559399535251482257642751574282546121371187868798066133316236350522009467025455591453692257409983153631611863195630929992760196815034513604709918158912907596136663706752081070814805171977507456025140777744559856144325825445443969611505991819153383334667115875583564657486151956827559887938338666834649818400531554503727155834275827421083724117437948687070547459897244687028637704254786710683477946930473753641835542015719286493266361127678966030558571114780053224647813805638242203441443497349634654696474469031287476021417457705496787537382977398510324164039637139513597788440688843488695575481330113025232892868498770639205161906620915898495716765231949574813644959449442563709418197198596847984348432195137671047143495700589144374316164793245781427842051642810251448262905528021141724538922537154584783833127513022364736430673525346396197064655998249678245210346696623620384528436335229447889132005465823141411404205084688272936024430998337832973382248210377144849999505619549927861389461448721405686727178452442776171866705156158186196986234301609611723647382410106118093858273318907162422918792534735990901315778052921932724777653921188684010249974108073132623790084058533869082598318196080375424128455533224000051643058932630620289688749672451771312847653497478101465457665926856265287924250787313485478539708505120544846563862874842792737596764687817319334252092494081619746323053665593799929050512917143864031838368022778368562514167923193839550517574087461642566442382916568726665682006392616669870537672940577319543142630587665062697841918020480588820578711786686926234738145151464458198211695637225673636925722202867682173749982388195931555534721959210719826611518113385181978550360256292078910316280098929239606795000060663012122703765171032599712688402256029131181632268049311105425675268951596410934952333723738873252351450031342314547797024845147791000378996007786423798311733931953622586664034464234206450722810920477045408560626667247148831732214433978957302767946420587087785115873178368541521128155116079542745717881062271767467061772649076377451670749468783133300436083454333323328954451096868572318148998918879595269879526188226189350374649355489005594663130866356343495107585599546308430602477633314585265353511927323406706656058899073579834120267522709532641561898543689409006830144671412848328401057350747878147326457729559786899459304996690195036890020571439502684601491481839096857927727999488560894428749133320226676601518886863345547025346806807910544155755167687019025093776071597870373901347439186944628741521066118299616461037885571660825247995828020315734763897199933754187629665545134668431340683300996751983916863577712470517449788146195535822810936187769265129711418702011710400685224590334077043106743020438653526251665886053333335452272802243192168689640513468735342507977773235572512652143068775208302660562299885588229125940377341163274453762244865068906667278582458356673382918839726402625816590067199206843128583838111222068385114637743697427435058839227832517957998230028866904960349857420003719612690150148162930258204288341757994725144737934535303884711609135261832681722987419480423255069317836501755080231850712978634809911511699905128362861032507614870953678566243928986070203039692659050674771636818403922757446321434611036798700465841061157955488732701142603598787851329688066957652847444786546814894907144170630646911688350077290039371479886821822890763314223594812978236294806849694570354967028228639736729647673129201359720213250781241021258315381925337472398653528238677819744220240822348557619483525847154305529297372349765642228482007407121966094199530958110200327871348659911892490563668312113462364325596600254485482813685743137662506808971199529453377155329229705681669006721104939084707711595484581777796841044387917970547252521325852389644622986645334595794530036973633576832385560627247503560920449178187807755363412187630195452899630404400587771136774430920289877083075456711325935298564114416456602216246002844014645564154785023588021613246082574460460661328266526950351294918931390563137189156318216632262973759509471289172594517941294934320848159599456876465661189918243152760322423026506134716244223610147815019733182999656720125553949826750829976920918522264318763722418979520580307802800821449371890659404683589307066865277668766542089586638642685596270449678857078206037342011795527931083809412591859368022836931464759889092285304429324207186654564767398736219127547169698232126037292302092315827745894430082659542341605155862809995488705699089711105362266253790878088318242313311078912914523060462179192699521430167849678823055890896327862455437204428060820183222035353882932985197238931789543202170905113808786926237930271349537226257857116144722210815723191915023438956961023591304583254437096994259481577200512791029415289152527545539917714201006907838754810088069574559820362912826257652670879272051188620231284056005109892084508421446015620367711125081144794977218162341154201075286054861518503923928118240800105220488425036560666609396510160566319965921731285372154547108788073890982803980946254578809936537245496330084454069536819722715537398047610195601746139956069613258107106776398032655486289848381282978750151818696065075137364478058548063633772779200262409191420458520316676832791780624466135739655349098856388266998258947937474176196795474626931928955619313964457314753998164844540960839678780917754733953133215168064611927319398108281551643604585559676083327439662773005194423402234492408190213554857034163822656534166935212727085991650799577949334466693487905122544854122870574190091712037183404629002787199506798681085098159220240026862753221532352298158906968305859291634011616584023899042281443872008898858000360739091048670268523988004553701683276520168501672165731946548376784701742798157299401269753472804115781345323261696372487919085953946017938568148462653544147576225786869491807980416199213495045772572737150910569823679182804333802425779575716475833971802935058163302790162603650112479453985117881899795767689149172899259253010708188654330893647797424457881790412403314569370786329713151310711681970939896387345664451582822916362247497845160854902683747981557450710424193584484275146205696012814184028363935634103281168809628296924645014645236301307628945449103191423510808193719346303945680803946235713869620087626570839234344213803354762065726901124675574501564961674441898801598977467612303102013347236624235763437671456322470356148905946232968215174269197707690434861993289945617770343273076022269551702449494908941227758941339029985378575197647187272094939117653340291185339428070239576463042285487915821484705400875372413657682072535148390851671148068392683724665342425389760794504066271146777937565735452059531453664751367026272547449620028534254533087254843902171596405248871431426955019984977451953274054435571886873720068910545810554175802360137799776389687450550883016141679810568869722316063962437499619708763652708171515753575724218493841851368222097437607160927646240548931396475888026217367587650711186888587785058176787596951534720285603540669257276747209002058419221572479198729805821909685823269593078799937718372689402438191449246913577779896510398757755974233054273398685350636234967153181788720575294480497390510082168639740748803404094334780871440889147749202446163833144303130783348327666587377247151741786955189453728671468975401885436264975334994273626807663647711513558384555693527109971113371218861837870852334797474181470560375765899610694126669331057256282245137680113391367328537610504738099712318412289184791915705408908300473271653496076323337080907753688273967613437394805255516161538606278715515610507471509094899802372103669688117027539533143529481167602091950244755392670006186588696123183619830660486876958350284815340955896963678246989795088824451671964914589284406036290636283931233999045990991086047121601342620496234556695623853331466269995335736903067983805277269260765036247744968283352215655724758828293667335364913104078950142281190102906005393759812409779270837720959869365427474793948594751509765075570877556805902737544550801393878180107053724345425316962389312712834949029336532485619068109165339489780832261080865219573092683331200019663821178830067539200020947772066897275257754369083885617461791335873681582406014723630527047284845682032578888347957539307637393803074052647022803006808083360784708366317619011663595626008395177027911317355817514340634145145506067996481310347947299810157510147386919619407525495032250875788160178413354710251670865355332167892699607196626801397414999461409170687588781827533864569366013259452615229280821905381573350154783898913767361142709147464541935264700682811412536890544173766951326052941605095275789041424723606065870449296644478178691544502729702442931266797421745789123345050536171407182713398071665598366740644242774719517154818792701373609267012148312465392524504124165157940005293034009664067067082126208102624629680277077884644671158604348611576125586651278677475642068260665439318861849214155286585296117416127171479788909158242093671467850081473536164857204446142430005241602334478026013528897418892188439795507351113228940434019866433472841108342751716262181127256429314823403008830338718204060359595844167222279315896673354396843587594131504668049388157120102422211179727138055070721003225020198523259842879837300556733746560688882593351536117421620622800509802068638080273321456085822505168604529018677223709479926183473610731493128372302483736584589947595024527560660316390994373939701589451388075746309603863619223671428975392914472296166500246692497373293735430803900808487264942756498299112179790313099328548646898900496593479484943007212251324752288588429588050735302739880665987089250000508950693498907981144338901464108010960454516984768583184864866489495308151951343270385190697498404595016540089822330436211067361137981363793705907689407480875471977641590393421331631008731135757380751256809001495813574160921318536594260964403013560476918696204230203530599342759914551322286832493956323659641049481089855829096656534302945241375036076830213713835385481214316860667830493902910796256398920388683331666934785964740546052103597865370390301962361171746767485673541434083017855409303294035079129833810890259937020665381191396834970507953885306520302154828938108287211523132981398577861808675149225166240330951465073041537382296223985637928067726784822481318085813667216438482167335059717845723751308624340859534785025315526826459322123283052254982374961634458613665084726806386374533847625496282796347092365027784967780657357324261147468914914756062784756681600629563094251819189764701565134206981509922520151847753649914041247232376129383325820282864763103085922891857929953589796206013452833007393858083284264875678521290295970726538363639185093434729908859025931277232550454674741860906810530825692889768938988877735286793288738577004620949197591220616985470746963728150974601783251631392269142705725178865275739354575735703221159963246554380177081089404399361197545842603994344917670844708850601328165606683754346448163343915833247837237256899634891307137875582378766908292488861012526510539008145764394725627131885020488997240592669792319385474254902957440780735463919137041575370614063876610713032627194914808271026338246155167356439897492232082093735263675895168708523549597039447197087650973862768291077460180142919501128091623886552975344394503876821098542797520957954900756504303284401582867209006683933637995493934848702961743641027300074343866017853387066682334877459593703958900934432941890424027337077355335066375714114325524992919069363708994656450481117030056200051082312558091833616057797533660622209096760198851770527716402452086756394854964857641811415985095033716512531574440071663754987427789419158775070763817350785691180017375455798733101590607973293318379874795179907878146813300333519909461739914960402668213508557023217053905117846916041491420091530360627506031161576081751508316627045744991177423681369278825561195871252011693945271148182394634162434052522475327312372862430143881237746003369923984959108259399249596202781731004430136093355887849666020650033132316353558036415128097396419320835661146709132851734300221226892765154313452879913781048528352171856289474858058337766859039278996861064008786569321719355586718766036484492665224931458771556936471219889539223858382444871968672032438977600497291879969797198982981933330628052655491035714139661796088486688218267516551209021425430247606367893248331328770859597408947042073077421786503321875219962366137530345601091259635835911510769357353893121408649060289288559803919932921839404238594615576188470746086038062384186341206068331166526867772202247900037923157092678648960870551208549518871075912902127125022061306131730910832479261618951541162433675050286347472408903933409568364811026917888816399419891734517361605961380880532661632448869391252359342021575875605257400916383335131197483200092509037748945020334589967024419757236073600478776934019381228430428826301060705426355714982308394210808132793889276724286579932266489524164309249818217505137222784342219002854655805562678256755970740955345222945005376957829518328391369617063674210690014319868807290120142870702653224459818278520618511820047837562996577465460085693814237230062448609519069535236939631248927494448546018675663498092871244907360667197485464531743864184356506672225823497048093317553236128988675462601878111088734513792488357415202078375038821313867652904244307349337145475419162607923466741117734697242063455567890525956817135356648751549351923045368574486876557576109954953836538995588542112044671138281785870031797298167789097199564172837413053631815386642867830502718721648532944868988858667816003827438881589265597442374643395800009368942979673889390020589758947907494433853646337162885950995690731305493285868191577575874593445300701215150996473486980946641330711232914050996333299230402604125871948208841938586932531753419769464426077446709551986830447322623913796665483783776913386723181590206520025891949955949913266985743279139245488565700688709562858704512305973880335329322070355688099250443107490200340995779269001816981661029258418681813835554883996019903072160215849720329877178618121716210500167016500362061377722089092876321496551049333184308910446520955867327116536045253810197830806167392595351553555530945219995503093672020433068685927590724116409273788917759573575596633518404718030117934311567957338712117683691898258051985238501909136880938333999354879922331448691548476137304010036027014493119435939064075566185441157091331645095475478890903054818048104849219515373107888181656944213630600815892113081400236195095539523354976292035625820408778592562327353472612812808387030032622207701019541679711930399040323355094984332218413826480888011815726717706805521470626711322146434199350048132572316533290409488448205503556894997197301559074814044750025067266868134967206225296935341714696569212865956982711182404753736686996403838543715358532929543529326821891002128113870472175195276768516462381897284186318039908181433104912396972116514776165093913010280635292292615126210303610145370189761825967203327953908180094995228602868188588417599244361352294491143645331691878480683001206169751104063298381569822981228198644913667129967429925586053292301221240726536944785419644692649913947259073004273808801112725372408794317861979504410211085220791242744651270894130703730285140817796281004332869955312819301460149415232637892711115877278131597077964839171238418955447811447826564163099856373279735886765443450799261137507639074520031484417498521117465296031220042075821674674750378224616962685685494795796346192771534160058670717262656961894036811297277617449748985859729436501880382081847671427022372992755419220943109900564788152809037990611050345767161830267518374215529829965012484184845743372754044864681483211508698898417046789400488319226000365291532822616260878065907430541214866047752666957095820401502699868041834311162979776416848674073825865221485958894673240905919450184354117305304848119969475026416761360356734251313258949841969869854593425963203650933808022141091985810543676161682731161816699942448290710341780574724321654636204087458998088717705466419093607743844008735928422339837649998708281221939512120541816385130886625578814078058292933449727854807011963445512403416941169151654174164108800976759099079124721536469610675869442824789133360111810589979972724232253141673167885814119195221317354818774697111511229868327466571947713193096026531521161256052466351788813007109146892009683320268235839338826638853220467653441260415153801035839092192399781947815420805651124984026429367952086013634576185598741403971235891028346222053999425549225973914635300446405448491475872681269117815282894703044368749574485193577694679983839202937394597273296549256508961042063849893272589644169910510202978675554329963120751426964346812017440642842518594287425180525098145341468577366600927679859409985087744935180053437817287105895496343947361266966087781587712135416728503541675754381442357488630594082919784057897887271296534620069158605846285831674106428718267579310567141445468917494361416010839568400074815432728911535231636175506019350817705981703700159481689615294967127122725411227576556554259259495665834303739814533186883386815611698107945705633756816805852453056794744272646217063799932890265396518705923631603636273172372553078636641527862094884255398097167925346097975269826389979124313320949443639076521240380527931884544384546115275889965246381233305054483571813938317216887449418859224521516827104347392882558914240513682965100919524761766295256151866096124233529519120967850457082221364439476084243712493288757863098023341423578541898125537112478656572208112353476699188906646243120256825065083434366498451582317132026377499259063980022878348475302859798988895668519033843097524788610755351284097769840374864658949165464851187651102831363740929112720711442486653390238376282667540789766448002268028863373894542773472121647582425371850439193406720134233285762118258477347839267443871244559451142157133281934305756190007267960925156401170963211064163976812762622255767291465614493433532260090640595192339455544785599112924772204948550320285724227166682836840869603457247927557964378278253694333196103525943280385941248359691343945937841534510674927389680806896896991078182535557548999582618777456136762736390087778195665206041150636935142806429268744231230081995783969247495769138832019936795921329036149268754421290026632462195466704882126190950348315541496829111925088562208565606086181469784626453705543335188305391206501819332636015468565016734229057845844866472997371917140744901627906069870934979777263068261957184667885493753509533242757625910578661820246133241272137547205211210184454990060355385950827234760059231269584920855100797484744480937671329183764146911945535638251932565522236367708247987931047609901661620073796107716981376906272335039668169366350160788075059324572667190763788273987856464454575803338728371285907517263124515750027350797639053447270835540141881253134063814493041042922631167004254602921200417696068820132936060754561812583515735684260044151108260600734949708882292894914650481092799661989428734861957611315392060838210594568056756715966575981590115609819326813996398732314532871583215765000334967687553914021264677194536090279152015608912316570679546330396759391974082687423859016891150047513518059385934344791986333134651128584322058110149271768387149869859968002025761195656184097807945396224900378231178044401148045747019471957189126488759830436839263537333213472673910969428012659250442050441012522208354805026227796884105574481213779445527642764877908865473231820014691973085064960103503814776823563838162201979865351715444030232322328093452947647572695526242501821150338605567458956999055167988710531602387537062503444610908615820685539361635432296379174110976338727244703161579378367830681387468707452968949155568186259262469511254681326033963505402541896636606358615865485993930692989295968438883452778786440605038173220285241234602128592242729540743604907522197918288369391825065229824069036798601407443724286169388109047741152755493407940152078141348752455889243977008321486185710740463811071836933383278252637457814531617481198479422780091403435052730553159920334391702492793089113915863514966127646819892836548105280307399150734665883055832149579637857977334558956445610737270242547622604758396955026397489795454641320943630215680463575622281502547602571245311819834502518632201261305821736403358315513062985674077916791167461215486074961900130901611563888246255634674826599032515129177973335735135847137040809985996311103204989312320926683386150008122109337725342445154299409230220041800949333461653962398293744676609043455564396448456519835314149884718169734770621662052461548055036679178593992041373665514985876300300704828646108316814839845068068323802175182314530507668653015123095033127518382508185135096930950865265380297009872603057724199152764793398128381734304565094730957908564584434557888148731279962811453286655857941468884310141372741877529096655208291628461312060568439180523269264417837236099969526391498547630516327015312040036532257138055671834195117200606411696779978990411388774662666313466035936516277621249452875454831182954979375631740161434725895126199660424620530392520494620973067327342860081914747698557032783724576775212284049653789300467798286216726896552523367161260852529913300027533199459729779044125413239837326064403867378259427306802898259670719452025043871626944612271442876601948349206997518657627121341666241578842496246513747035312660199272549786890902997445503069238855750266863264665028155260296222677124668652576994190449559357265305647017114488834133517610669118932512480081876738144577095706193589185262979039243554092543217908877828532035640558729660802360496882021574224244707914791998073411275283510892505643763304792862565237644608161814527546868080545069839607871175220856096707578287697251070477430389916508209244422814633865522900238875046398496772763750717515061371665415634576964733758535776567600245136178185912510157584637304918793316456178530333661911777162758958374867053275928803164809459289331761067535921341129523076565204395007028877495748016882736986206824159715895593269685937421359206281018759271526713456659633696414828135050188374571325643356205701590956674837543936465415822977275378323939457252598638210228982225206189271123725529202445185345347490211498266844302638868846204196427835356645142808351532276085593865418207770789971608779147400343479304756953666940844684638554641277825347618242875351172150043637413116205386027759794709686574619334581436182941360327359143146945998567135395914390831859091424851712570431663009890906206851933129256811763135909838210537339636867409523687666197249887351005721102042137069185144915942462248917508555898222850529900291228586048703409865606463207816639388792334402666202183365209425844338316725158144329529979652362716523497775062831451514291799289914236376225722479998499612813158522648665431006206918857401232718150804773559573236591170376809912141289387608253453576297943367749387696896396357481156239788899400239719335068065889948252773551788042899785699751579863945508229439853502540159942335955625585040467639532173159489318657902505454376310688758526132084766838605685194715892939049428904505309650606253319270149661401087581916458258898196913557794728341422384154456265686759650841864007783193892894781437845687965213310615337534567201165283465721756745952885843077656222195729463373274642205888798395295531746637265177714317287769328722239674483920197786641362589204421055258504669241295800394823821346547979105681815675975839354111170200376099717769074289452342258093858588802520428165565595352205257389430197951731766120033545467409086263702055694140858472217387064160877843441853255021531015662667169305650606392011277801421584167862209533899815419183043780857045853011657755160127801303660960955646605899336447887911430312273073459160476179570267738678058429625841329481045211262697269204520736801595707562756366875551717476251067013948424656950624382936147049471008740079323618216178217147382435535945706051633203273036450719230439066496909467165749375529531475989707081264392708399033569864059175556777734478820151537612485027655524601403890975295447104138378632763833805177733219406440630260032453603049777094661335520451839110532863021935499047508338559762510928211326353050038965697831398386172219912046428015315675434536230447113217429237437033349369094488097674154244523112310705398305470445462795178629204385526159433821961350763677263482154599039710059245386885097007188334752304739780664509352040588209551341458752664022029289780767519519455379332908621837412386102387338147465495630138877329801605709423696140333263973329785981237459593051158363425938743826130985512549283409034287510786683211152398950431843841016291502038366024292498400488254244951264596365343021873054338089108048182128603638804532279147650913760384892083359302025123280239326002928139791544029496133912451828579944864131819730674282269914768611342114416013405502471443743564012824286331871397846586520330430176761785327028034813365759218137189433702810802609394463730978559228980305495189497568629807552703878820055430862753090152827409971512500944683595801617248247586982754577603184716844705363005775491859384248107798548982150173127737776683707524399381365816794711527636941200542636420826549245853738433835045703165529680575713271299509814357674729671443496063386223517834758108468119213038078715079634838455586486253496278961654488410459298253613149094228337432962662659022993208554764549119473873069363532619010257696379717454539040101429914194268270025589883289675394732122409414217253114459488528536515478577558603672641326994828863913831828465604547712520473465633467742358946288815120090009908191024827893583758731283744435778972061459448354551751677963490300298409273876049657200754183389142597616914906277669607335147424687125388871844311669362775341361320560388129258264571606413393149853553862413769294492137127163129955921113028643427288697003628150250584726918694476166917650938442168674918111887582187308927214663016764744515023543605428882022656544554763211227855067575705669826663608283512655958969851439021096344835847917535919675219064958756812428942997881947421183947659374799621560236004618913264515389304629100314495429682166306575677230649951805954623563393498121095969028752357304756605959073539073386104037353219915964364051762740657077677378751355082258698379911772812465021619800722014218085087047745926520830778945415263087763551704668876575125335141915717865380510557881019050347995806322185795737508522518740132109252722160860813444930447212722301941054428394253549763304264675436423041282447528256950729969769098088148475083703244174784379435907997558237533237875213766113924247938023950392071108040731477354113692858928559238705667302879859979363857955787721930285282703179212025214604572828216486939644356206757882450310731816897614445303547818375047748048406460754397864007152339088530987993514445241409352029382517556394214929436323543796040553754753896908205283047926699179876426886603512385150433060725376508726921396278550260736290325074077532644665456013896741171397509253465885961065140220973924203409327187525674709089474451972855423314075231951673916644796219168898710205825955118137313431990864502074156655821508551106027162511870326074505573685143992207058501813088630539733147106411584035870539112443009183353406471978837320631291812251982239846327209540025401331280028068553128591524247951802268398003500958751811192773252541126609336376455485930306590395270266847690119535666138998637651778055499446775551247115392317915578018576191278989710776114133455766908712360899868822849362403989713849922287949430052140542876594590215582856665676244598929466049420184669323809491243297948030283828636794316769978398222369048555249988602559021541887204022990688040914356187717344970725175093506700630482515140869836961132222942568051985054461574046784513614104626051475844744435502422787240527514232153697538764069193188001683643027822650321384706959957076444765257326903742072703801622556652812599682735015533102638732271813162023941388092434523383202600744472227688740209821231335385740623502942545284331753232369466161925957318963499948997592392051072468703495971791682826218134971582602059666829193054867509779515594498346434321253169339901178189073047716369246432003352925237801087483650943489796583097095224336020904498154506317695622526805050680556634997349295738444201703848329103668732419126260632711730814802063846027405607367266444968121057138629680370678196109042634404139735018592173490393250862983774344381163016396843125555590172958986901946464292976220005280417254878664887481013223531865184046231072087328007125084524848089657525570073149775302807006250578368824985714154805148272315930913899874008722125840677846183606244331180487352615043003734029868556622765037520359288708953762538026642769419259419511201385140416937649759691515533319137818258469692785490859181518606235469740616022305433565970538815270156525283775102759895804927309688572819850590903301484965987863793459569733924184677961894654335709439908182049782776917655200837704272221867883052491234966561407767751317144067338472512293370793678516315211416241298507429836970457096833402998965661438394668311870557105538218929803769256084189607715510616583429774557586553939282244908624408529999564487064506733194366529528975272347231738067810754959748189131670100992835240059643677581517524194776234180031719123965799099857854832077816457258891899662747703345241877314749807297713038046317064677761334061425813543820127923786154802717683744543712361221645284252435093944707047094714669115689072887180406475109268114467473567550768724837152012535380723254066676807300732418094164062754514308201283153955047038469363983569652984745037140702746640921581959639060481166370493653846342031372388047104007322057498222310123815836702123713421829212397867941577671777438943429214754149075120234217886536452067301763730606068463763771640657143601003493884755044209840794039087096808255866177900802610593867762933144265994601548036606574690856413862484978240485109792785870864318512967248081977863469938364338239109451624470733053325248436600038114481643195901785000158480477362348572051061959017896642479021685166162338495354782775017739194557222144290126192162885881425370692673726817423225490745245953235675806580316253692809545390240464349371651941832942731609483543721593973405662030086457288456484144846505583774377354708040324749640131361675483743552456562847860412869159211618179702022695168863402304795133407700585647137013030144392840065262822106824087752528872105227253860636067627173360902346877161542239577590683843175169851302526593005765772298727017774765736100531614646307492610110616952687322136580095945438793026344031783570073113869613613107328830286678988672176456737994692817548836735667522733118514715649627051658149340721008296386240702484101856376798060595793701591557106737574144219935048566472943660525783194952916674743551541674643947023539099080112592806846389664783012504572524945506530918965093601332879132954013489463150258113724137871584648462636093317256715759772534657796254124522412512557009376557113007880597080096098898860636740114423170671907474556982649825000402914754928190449880445812545241733052299092742412415092672589602439640223486971395143675488762569338251921825672515456111345518204927883355623617375891918232596541854443682384046879559509085981473894052418622790360194222309035402069984482219641235421778820172750922160193477578340647138226306144116757470060069269914185674940616069289735310122456440273403744704356793508433801646509197704099763759558535289785657915337214543118065633790207630588099132385257361570970454524561630473924875622152381097686226231867726525196898647486232495227897520571225640775090707716306074687281132368809558776372532948475137621823353956753504499752592629942716860943266818406391133115807258914390880068405168371962772126673181114722547164152848148637237166021759872994223307054199031534356279399922725404765746473312633206864532365854547640930855045860828622779217690531819181854976634657904044762710852143945770387896192518440767073578424258561211792100592214943230423494534325926907104033158976114880534491928563250251589239147961700092321041810201508628046416803287788193106212220121363916533104149190334330898368314586528360124778136859716805780076677068233497890018946703898713229445020562091284666495397601170744856357716817444287458609265845094051068955667556167403596324325779839423979805184860246120127151714180645092205147832554528961016606471986797572650048716527355379183823889770507910638985926934078888603365826607097347837682355246196533777291167153829749926682424328898629720495693922213343079991122213934145072775884337923639443875944267498087497042406626782371325176588721010043312751866264698782510190634088750067742239372336168571715278305497900922698274098172240639138763854870302573638729803405792853397887099673248202792899820431561547458335435923257614484547180949435286432564970971265854661541136530085004448534775038596614069293456862160502113827818753301442015175812471940728284636791622717997524635460846902382566104499143802406434684681228931138609493154162251108278814561798662232300346769472224914674640547309579393587120452275270397544020144824201329528808394074344645743913699105644737532713026993129235645145106889349877464453221738602315994420430224236211643992511970366161056047570365315240972287308483603198102676983058044353051675780772856363184081958372225002211388537818718737551176872763519051218477855401272962362143732255045291702809846102439900613300673200660544466985235368554591527423056420175851066475631080779615974413978199156400589329049248785412664953815195964548844117426733585735429497511493543361761386012641097555630128584534833329935022758175163168601707546050395327871333311852755369721479217233797445483136158583842537551684823912874316865724849334888292832145628678038738822374628796082881097321431133025411015029376570821606625703144111755437125913932542629917422188058363107278770831697821375642529330320782913968628291762357561770711063195846821030035514353857725923353511816236768277453681797822581928417784771119442504724647627386053326071968119019187179197557828519231662797875358823414441552172975369292838144757335141144193892240918721875758067776966733848781375377748318947822242290991434983459709972945000968957448674964620967615011089556777758784658999059895555190724174013774020864977743281269266852251816329153305704619537136966708041775407286742203871670290735799741689661135010682749462608127854493836425814434379103031184499812384355018791017262738515706649260924879589313652522295179196017356324844826168441944419626919905233609796255776954405961496427855987308977371773955618066272612398387854991711854073256609994522886234466628994085891736958045734913291111730113231245416493511426114311157138411841741923847404203841393661318204685552391209371659272289039758550328878271647231746944701891739907595724867992359404789366376155969655750240244306644180192611126038736053562291709534890431039779133108657740943410856608017207348889654103100552358355568342711175045486514178370692392777222173583987027999345774713736721119255585882105701245015872036044421767312948994937579216856060879888601180047511775607586027007798094516984582804797753553031456152568032795190959504413570677141629071884214273037620310986477539419341109895140759799396604812346594700849069767249438392374781331700582347955567335250102857070839177797324833094577503469232602410400891105497720205758753703708913043387301403404255129378737974970879754002487046162140938973245698350259967088645358391913314973176153082901082741817729178847955718590760392660355253820441671000565600478365731398163135749793228908391618470984717501408851886510352763889844923563445021563624250343999148455325758139480324048753435665429187902474296964605895393845541747895780757249276262619891069644687868165667896909736319150896150877775386819531888862874141008342639480910134623336953928619777576831935573660932383405067115478646525023204330050203317804655108517557342396542713091697166303972773939004760150560644653314615405371492893226842280075815841840612237278591961177302436947256976139818310297853060356684470170708094028696466033042328804487080337522873828612858080150737764876484477296072910078856616401283046611168571006728532264597248823035168837993759822200516355984670871557849767056486810377218445439540500899966125747351123544006291633706008033793224893022644039937201559454861416841039504023671624463043021980116597827999596324166295935543294827419711196869313971129412697179388454494684821674561146583904515111762976645601303065598639325261164741152287558308601748874521773909521225721293954873791417913766869219061842541714001745262335770358236818818745555765989496393759755393526229986752667340063135244019063280417873480307614432428421618949212343521909848866952143870921980892411304028190064423009813618245418960761202670613658935739173243729890701009416702934496389738540033939426628623228359304473623779576893619690979045592078593535805713744518175530111968116548948197377058786383316624101725677331821826096351715398533005443993537818720964303202268583515889062388247110238857314656201745138927890987130897163503049917170285484430946903195644376976279433708688681571783756639806307708303156794745240599071696038271944592636403872266593635499485254922781530000530091985935676710172817103679793034917139439522691487014994403746070150822467899508677562193808915363545243450739929016861588617771180716921374499027787152682524595437528027402779939374131901705972215519321534497127642641848825109020705204439063227597422506272165889035880299546041323252608135240233196486717435181722191577175101515170127491052205839025352328643733702452799784348277481831076680572595538583823567582294687680946004417089103309694562138094002556059891338163790158252082673832141549183447103862046503004899915727258149356802162347278445043357939474403216944877458612763176576991950458705637890624399968075278681237087530933727121690959901279912982018541149833826426522896694961372494092397151807643065709428423374381360077922868355580875463934229337298478327025597805303027730466244153041311815153526118741055409132760536734014436545975075178873056313350650982849979409098705536530460676931853623279396809945527955819140895730457157852255839929776478770929209909196101115937168513016101577623642864840344952283255431377315875546473570226327413778707987124198023080454696094699435637776473388762246019551184412636514313777203757558819303277776910003956320423364569877267598382779412063284776611948698256252804168830283534935667279645019411927800492379703837086143517770962825241040176360434682561032709930365045464925542447101278406865398148349180668488711314156879496790625388141727059009623556353267725503517919912555256915665425029015828664769633428007407479063563664285180180451008591436321787393629736793192876507218899626314665627503299899207615796065561435067722258150635453320973571608649624500075963413883564527424028761247726754121913895095398590075668276060129641029040638830119603836098731194804099049494367830697006374952477529939240757147084195099750556859813965634492117029851546098797575068962534185839933555957598529663874996561896046686469602424834360118448292315013710483080926128843483837810467649734187825654823334665321871736048045910165692722764418956855862936624643748533040011589695453852164991375906974601575188963815458149922539663939354888388708296867816603572773210975009715629170004439947099169931123356305499214514623449260737528896864447754680011824031489876370450630754675003294761403424631854948418891548061165798919874718037612215450805767625022505279699401413005931481810617117098454781062802721208353012123649746019423815861730696196455987609257806348813377935435278096732126842179976851583667785514118488206129912337168168518821529655952413608275697125006983990920990885717911340257286218322477547859212249235617498284269725833067646232929301902496993031427101416543795650648255219047564552715600747382763939408678393599316244714283427198576253495721701821782015637731452641174606169773370409972878322679403104641908083405155546838959829911666545741599795451435665387830624131687086307254436361901869720874160008740290177723611616484393623168584532893820954117084111528095178275523625912915686914188046148137540831873122023710746665251377891357714048324614319655598370579105451983755220118157601180585055731950275949310649021518796789695394639206816451118003904870001003060513556475927374700554114704621720798230267723621448631517313804275175120863506464729818230877516680525396206596092389458100739868651946731773853108778967118941138690488489273781577830824820333598284098263426071136061701497925072094573886582309459041386042429598069013681249913601167750124511988411909822013434181275641847869647040537862533559972254489256985864652429614310325766945803634667977847283849181400072497692630122386469673150386097916676908448291941861491362442599793197154766351299555773940319881044864680621178357946867589514644429406249926793803448225927451834710820285881849996168310502285952470029750368804196756345197491100842261176696478384243192228597761561823207233668029498417866192248328123591289017301998575944277731122669246333548271147059706538295640681590027992012821805280360234988045737134971609105490867150284066792003254659198577325344651645678321919326897857181442365493529216416100237972467730124486657211784798571808789520657596167906035944959801433318714242813805323473368433546232286735670579656067841535835762394745262352661676790861847366398716673333222082316158217933687666468667624821340316520503512901160924135420873902281517433705379544689359099111992538067953018041970832092799225311300180710603451341386086347759679654911715058530019778008982800238595341577541354128988864985017515536517377622006439743552095172308769831874974269626870569518074528719710480262514080877900257727954359820988340709407182518536530333186649817197869785865827921782096334170541285170996098299554883395442888100870979795167577821882888394597542954656252347697792951052307175410114164807702418001600132450127109813405155853763032110213718573088751137423772124302208313154595476562357058146512521508840816687795170910847373790366949307821069920750068032790321904238156320918352177233822934880672268226251628330199502566690025352257168605418831266658227826463991492438073704528526402955294983157039598275039994824019893705580076122273741624916327578653103530632433402828982576296810187391095100812040878338799970670514404104142092880613997100561610572837598367833777026237085061931057338955750297799699367184530322011739350370143862943666698560901719532615132462888576147174621232847982971772850966233426685590845217263759277656404844597613614480450350506571914818470089003132638926502795626683587633163886318540486193873628530790600841474460980630836384964786825116688269399750570822170579964501831777659158942174038265386118865485244468376747452778698704708087526668855103934099567491552711240363902397419761788077003435730366416119627812384584629732152853031060420303597893304012030823178309532490159486643479408562987076802667598667402512696299065759231324228138050718014769195231982338472430802643750494718619272268351251125179301869541742937774143225768205911917907208732310822680955083584414178817395551536120929464803747352000682358614075521558882025320333430376128277647644126046564507440518762574698605286452754403701862517492091116341979756325102600568782935560511113248375949592513646703792762023784413667811342369109948243885193440018726010643864051037192296948727953096697915554684331877800188926199388260418351506521152765094895517448123417230085334937133092558470393235806234662883163470169708306774841152839829473453612369720624565550379668139716547219604224676521194448824491626273962632191252312816406745490200612812606488722851531809483179842321592615690922695207788175109592317477781426923753306901113635208264340296272251195237470777049121163355878222214033406440020413926896069208933010874708625706507219790065658724727733032313667379790535867667341758287442546551183251715366230612100217221373893892897072707410994239631349368056794300888982180578594577284419501465449289628438798854878002970174942707840931053848208015106831429240651199092291192004294741719500448150704009916898179695083804454477908213268059091863670334604211773278761731101309806877094844429277849927523742533068924699729816578073967396957340449609313930242828102939292241799756804701465318439801147184919699981759022512628849190993813338984406859147796392453389402605895371594075311359761198202534547456153784181253554961163743397334002804143653863965364593509979826762334735301195904506049311134014139141075750452580273502182812431134939488198677212979413098766847721735512388119315912402866464757423660309362221371518146854296721105092754582086797473614583320275081558618529377387832297400915643858901805038125789758062629544275264585676966876318946899522107471680458556222878861773305245276474707786434931507570421753532897039897652551240477207211540112450152461528753997503761480662702984519632243133880663067598132249714385544758933767367261031869023902608613351328194638428426631024961443179293067643115670706162882328493771017457333721355829583139561151493186533243149565422829513705203972817165431487728952937493169811110993364102502916611769662906898499130111739967833792450229650576583804099583816390714546167039226372740189149026894580417314103415324913164528320405035809520306921986515058113018137491808513464888086795306507923572816889991137514044840375381959012027636791710160086620918200537660574216060330299498502884829606267948319830416843317327327558512048332544985149830175475856233573670199409315771770948756894479719884594368619494452792601659836674701254757573337621110953823314194897944912431694222116354813027863537834821115012969243535852370055754824982650579408120449735382402180065345709845631646636169993648925111540892470631778719576884599660717557516600118034954526717860204195284310626829503926839849694689759846237752683401754007049606490215847469742452112189327672891711784993859956858382988767678501525270090554859544578812388802945619373987111783478100939506532434735713506554306892690963466821759476601761528311125824896978715961886348810288425182367076240822901331521927300612614123409040384819480257087737367896924819159797914684704489064807538531770797639490212902186904618659372649450989253494860048494267202981290052672406560888179858911277140485634468434566495655305674592954215928006316547040940924266730025670848514065040093218998265564662157969071452286187842244637060893213638577299456802764063443547521119071258996390326576498618388917392124961085749596298105222649489998074190108416204128611963544395501723490579720884254863223890893110642702490616651746463470117331731238315653474897729932347794149218324242405786501783311582029382663361866335120772668650481954510741210907793076436028381883630061266162411412819990765152459651904364437247119419444941692852379563870461410356166654226350646993581312692110279834344279711898101545377733933825527253580409374761315875752364268543547982618580310229350028918671284939315110842896568322500421519740310915062919477430604131806433142810271066449893247851654489421510974020007867072575801276872532695617042168866090060106516226664636084721457793110790544889538149138765284370146970021936383470373609794906898188782186093771297737118633478975077377371899062072767619508619759661090925408209104487946860134465263214895418082298377923033252443733350178760776633845204021530241817910904401010151664549595056710451031640184991855729334689932755760029578324089044736000894245592503044931747578849509908481718019239813543201852198089016993915225074141883862602479489876356187122838728511731686588578001948841904566085739500851143724032660050384296672502441824527631560923108015245072155636542042457999114073493584973100686814401558262715153824494036377804842656668015256616635479337695665996393400510560296887072008169780951262288681624172569477047029366566671712124911683050505196762494945316554388864008443055143600964694833611406893398236274852712603337097607614170665565630199578055187553906638227861799816473511277348102154394549273099968892140358994538058155922784055206494189456055958991277199952190895129637161998412201654825280570826596313975829300328785445398376333038552851931655581114427867139138665503101006703429410936898246653446636949978833530464884815039813744353351050755853314525389172816537101581819219937498107996072307750405467109154694684554036287742100055887987403327049021205404139249587241945731823630006322016254355848814228324188945368064412184936212404173616872278832696219812303471242280581290211388191108904887409101794180849657290177118843677251209376631582122473641557674822968945458332011966817637441095978285856559838712296686821228758028361107588369548955718680568903681718083416895861491489611043614813820971016975072899777628042572403230051955898785527582056631068858737632243900282607040280730453653712865050101352614966128846619706207879279784094546272394840977954867052559251821594661615155451802950893129155649744477541551550575013908124320067123320419057458094485626046981213467284377525457160739247264387114766048063860264698397765531330207596130212879114202097015514965107194866769185935637065314668568108513918142994454212843369481538883298274756651421499272017426457421338801354239242163892546268819272822366615495528241211757503448144442026705919083545600386865306930379171234838252395769467697659550189566689410955646971837214405210024171188218305691253635806130516095806827486338671043242654884881285502032722487940200057707079589590172971506505471055225812681479538586480273910083674160059432699479453438806936461626185185023017281203499192415966889817269952007153972387734618070267545897142822957528341445346025508146198484311536260995380069218061690701203101679511044231241731837625690669240841021615261878741656510334252982561825788250641715681831232697498856610011584838562570244258491241366026200193687371527091955695376994057068497138685110641153975971838798032723898314179266686618446089214148434265250692880821190190298808530594803535305891133491588602280901334310991108563206050023474121559288121966414915702705419820723205599397375679841842295905767063946782038762170543143078186105756762207785633788326486891926357099941202782744497108600101006570951906605304417195241533487985822111380445742046773000662827978673194326466036390000806991212106032932714365465562427703335437506550794860074102506621884104609206992375241724088646676683774935549546714337637717012179677038305080705412733284745720031993882825110713233424186354783594735546303824740525263737171396204707469449577150796830133276618083766665369278817265252857897245045206813004623413392743741733492908382166536271689862785313454997153671357778860724703705946664599382820059737628085945740704432834295127032820263113973506593903798190502439369407411196672884158130479511061449439426294888881418146472998086970689065580575113749390944337858907091266107995948075214776499386138695680552113085002551100394449383598023505621360631128399464636550478995695107148154137851882565832924790789954916625572711821647646825064707631706766488900330671092455668047132390771142250266008224224450499279652934676430778648065126273370659175140410022317017260708088606333397299789710957700185834455295168052939744001001321711685115559913738291548248690828747819677946890666210699964591111441404789843365367587718010098288948423007244797295463906974400561253822029578291383625080611069525542104166065180769134980709693269125451797849864240795589655990512964192506632573918387324857423273217477957330465733094121287235804299064734311316814816471526394272501964536142462496417138579789161040342242414376383166847157041449892699002261198680190299498121923983755861096118169472946208017442363156529644160378972385813684600012634657361919405953235494193205531735337925120217893806591924258839838683122850379136445996258499613417687962447402171859790761812303873853373243279855876316187793402518981379966068378942872495956007619509235543025237452738377774940402420524326176162242892434236469210980653394826363977886843465587651498232307539455907316255112125379750017331760355813293942721799861332471675065135361477862134356181356128907814964829754006725562722407872206315818083839359973643359344231451636799905064570030917287636685305258826158344739357942787737401377010825520797637519568555107231559441462013651893176123600578444219353167423290446760066709895489027929047341225881291608936217884545752411536312896777720304071240874972268190836853481590085346534208729648571277471278652669740504843730241708659900739966368385015668974348142018799289207711405086804973681895061374665921448584329180904825095957582038251276282355209472010888531633209434765858731773647833398945639336690359152400099874826325043104748168545925593521968928828787388568360963347489856558356694197794888762815926773669568211481194042094219361046094660053777194111030011974946179171982212713464813189818242837437676606902691871979559436852208270885000073141235460523697150660505270026540709348453426560264374310739823266254365494939826609021180671141171305866227175289153570767360635626178692897196653886265280731011188885024490762562353436256697553728052927922584142887550195770057099199884568272850693086286392474792424417056933231943561270948892539387256694454629931199616069269859722984607295746228351063178260909471158453051757869692861734894687426921612420128680038994096667034242108092537796371681509890317568335118152164069014902010488477752738739587672642128073397952644434780510488731162015806916178376102452598140502482211703366011871431808681742482882633613487947671930741568083779942645667468406805653852277252876382284899937313144794696060242401757228387616775746483366288211092498615661583404670470853912796612189223570958606154239722237265040310372859727227486669686197644899776495599229210257590992840265064205443542163880151742671938222433924466880050668806736756147681585931709272660483536300833577205913853067945830463475058413199971079862691722562586927673623835680982916620862273302177655785359673061422680626327496563314416277808063037940583883478746600886402868754365940130104331596139895329657625935859224147475447424386275094266683823131991356889302409855446689297593612024871643277527196607581857739726404958714502174354348531868056178779830247255516383210533876229523890607234520329022925311680783435330456196975030500235260662441041044096094884911911097674798556913671093524494098918748562800905835689752424889565619034233287277716945499854951984726579309668586470907785767383954060294306414761652001018999597747514389021820723668209853600732068850692065934314477313092317099482385807455276379909298858003015771230885905220591559290044993758803016904594443829133764163052442094455145980320876361308305202952712353608317821840224198338981935314390960940489802560730882380390873261997657713793935457650721017082007631805742398962765791622907070220778552878192333194750636532324187565550846637132777972660558062064478914311236389636332437329333402539570271779329431220062285760684257916262338965312376318991402746672121495564544981043950802628872539005003328568521488439369170178731585158000475189049207680125388476679901869019745294386840505052005220413210793799085261444616914749787141400890976142828577545514517153040296038181755207218449317409147338989482166817123139780826588657395732521971246329686995288413713155739781937521667922151439048170307975011292266854841209381879258944204009010626797921342391790263484491275858299372938796290982202524336258957564234973467227206823360004182423715885774332186771356411422283967474698011787978889894796983822733170750311006368856489609891316618778858151371323552750361348611180686178585424619467386722470704995890839797251895591969825867713368185296159369377814398181687968533514253852474410788514414656796639415100121427088980286176658743397682723372014737546280233403572511808132518962104540652747344246650721272340466030946422372769022013993838914602127557366318674791087426938296421073544481524766835687761379524477558727835298710301306963582243636344774531171993120900820737444658380262446443216346447912980008821103846903748527133746457641826736733201911080622414980427840223511218480211155641692176400735927700148368781637897825558372016694713103498209921160757909266309054887605379721318571968004643795006767466429519530335670119274308504615367821905361315895384032262222254272176488261075933492213773653836733241826563429223528776282863677957852946729401000509122183418992167097180970484331491964736641259059818857910166232757427006901132336263417608316499871839901420440488645088888415116495356277890210825434960688822121638886528735556445223223657771773933686681344464840374889335232939573162153894381531730090183782801652138351430880132809366733633988702528722160150979955643275484398116409734381137920140342865110165085500626601124562110522066062911696971982516222827119946053337289648221020033480031325993737944283351500362583395669324407232296541882126510823116559002385185270634395541718985443458040921840230511880425408049125539066266432637319519652888398203513206406868526166635877742515164899317595644634583803262706061721219452563679832107353802076101475221948181372146148315773573376613567490588366667314749528569952676767682014065287102457688720168087780834061325018495796345281748098786800520533117429662364980445073644102027659908281647706998012613303659552295386333295810891918594689201170586475724180966281660296859027068338577309550075533478943484370159346225281615439968841783671204018578815730400393957465800371155389005012664365882556134844320804702003788991417649208163246717568205649612742534208944146616300133097106021504665595499349853404132094194619872542812786526090739609622644255111765430513403364047289414142700109013726861055238601052297725809064261827825497636014868696339207130105024554277194927709387199702563634873214759022291449204487146472642785830290205430107829476073920714053563414211722761719171460925603145524038879723859035185071046955341332332354764565868920512693411849910407272113309805520482463231213186832832189943469312951230476342782536435829469881545602520842503780553499995764410825706165264793137076299433622167498695128981445686658386208542412784109010183502779780801916867272463053986708042586259171841537867783974081736235304314314996082711978857249592213091598750023091091104021896580180330817248550951250536624328124301605353991675952821780548737909219885627744300521430625416855917282780279866437752066732869501112197478190947279638186778424072683423498489469819311336660452278286852470037155311332611586093468253644215918964133361154831603767058651604058955255718085593272153337777785655648557866407379496276790582934150086707142686726051265834262082912943158882755341529688322058835837378562026490434307851113608689115419935006473932911627794545514450368826421371559292156117912323071318523842790009101419433792583169941529961958556825869603765367902417795262141966457037235110576027317144596088131587537939238441079955801634976486297456108037446334839522169392867707981141516520500750552426955128275888539565799521037528275237018497971867202303351343907872329227445968003258365887965746264589483989355188707850695696629820914832050654247815277998916519513204273494889841179395897975160522878430040377685487028376076101257590436553364549475394073407358093138137669835171353932935903984961918801779785219072101870368056947179579334932661299697841650213319006745096637396452976421517741700747612347748837733508577191425568127011856859353114873442080604840041795310575113978158822167827736464809596932228314563778060705193521098122422276032558846150050850002861032437007532166032088707342424569236444262649670869077852666095943250428922687563479805198723688657495201678554794945256214873687201006096602080212988411603307386520510252186198841882429022264599654047899008207009965380074554556794457602600268573394667695696320395205939778185926901564072382184744785135346954060576933945062773549544685756792300609709703473363986542877327094652731094772292911181402096690066605646452957274209858948726702731795250947428422026849106876082959101498453292025503236896065031029432956288122795634079962213933837273489681346499861186767698701016270575998647573143598170568619111551864240673770142634396329591149730904513688213784999464746031795029354124575614741421866623710971148961358672685223170590462558976424888114816713559426240909602104955090059872558269500251942920021432502284031957520571009069768710733045301220353396533067924677368165030959624305994533280350051214326180380378292113711248948807974006567842257927272542301445127680175941956934846619189380417585505434148044464155936687668632744271157347302129465128911528594021292251564993349652006201755430353739003707007165571536523880031994933845781469119469941943903708777942515598027339160619343625428988637533567574817104160905808477549500094159132421834697255727357813958674128517476929261794847394314057534421715299482389677858907138120884182212712977497629323466462181386744133794724754304957363709357934161552987803841091801735428495747257379243246288449474197361836687213559741760715848802998840982952031898148387899567532607817748818616063248572515012509180563781881951720993076185709045030677310825376921087003667982066955808766424835019210044961048144680764076248500204467893337111486806816587189059939889845492964003978373831386563973329233977042476167040215384561496852254882181315733311201256867659037469322365763070596837601312984794500486213702741359230810496009361125822386360575604752782277782697005105480817495799721779018689083263707724740690834689468199761418718565914602519591566948752912021470824920495242527717221670669092762401400919819933036105545623140757643622835783639107453072710489292230393672986052401446286936431218240135450656776315674999818902432110311775124119773876434315976505855559796750504635007698920224123459301879614662896646887557017617203208695378130430303979081836883058661573843815176678684186335523891998141021155892615886082115237330955872186864327493871011932672956589450971432743755509235992226206818167164282970740504236377755690948213404909945224495175117437718269844291501883545294502285400034955269832694013791099373457331774055580205130347797360786615266490916842382053652153922645013306151619549456060033491083272372789967538047806983241555822622411745651672289767656674448829668285994790912584458079736169141327028363474196753783306822099597752389364946308716915253027218510616539603143608431845936724987658989601987720969463809004888128004139281764248050783900234909821763593300286498177958068686893688821173704965853350407161493668613358059840299790089441014544474034010477591812992831618221562320943426983889015174971834128156902726064150536701708271800157050430501011083763225286289250518091911210768832206885166644260637621985468199632865661628407504582392064093873999488973596439209388844516553896317650715994416430444781714132800588129645616741138393229845185502537734832810820464572946882271764449132588464792707496715725930886068121981530785147885304845998130807573654879447570778589103964369266288955195189809472733094180738207415800684852017545898162149537657237890073812447675964714091384376230562276819783091741553793314159415758399752798830814699830201491627473332762614223155155930758048751524539312294834508894936426318114990476378670494851138290784193230569515129076607661898581812668015917744784848726784677263709513431063487191052680301719875320567073919812090295897806224306861679789280531496159310426638116612251772186291250777934791748579470540505754050465872481327617007815104318603451976334645353468302400105149531719549662624021473412732507993196804986390911489304565439843648707954363244608499583314049044823864473185334880849831715642308630323242616284634666444957767520075516898363754870883305164459072443921698553562860013950436075723310927221574567905875721847113713054407369629997690226096204678005914363049345482544405540102788518980467845444850210839631359516940432382046338766158619601564059371618141891246006294900896424263284533946089463549995109289042449519175481654082261092032439154599490221173216743270000417397524728476660631631940930856223777604085626348195711256169045023300691058680167913104624916555292625177244278459383806616874380035614708090820082937539611928453015789740540948480763847235394857810127160411740068686805894213467588047287324491340933200708342837251179829032654384693415796860754170978006491472169526589229369500373379019741849846839611457029940598791993547136158011963449784541162460826700337885931131090400733514736675977738651434570732630456017820360247421982802655397337838156144187964751118883624402419253941830994186942751786418485364502770076651941051915774213696793335565189757664087867887745399039452271992858729974846107407222057733280662836066868151052287569086969957199286321865865521503556158439475489512504929112569416319888164946440946349252831237980664482801969478526518635322739089370263049520561359556536720912597811728857639563758163109115727918688763354935415804853295259180781260763770979953335923775323043915279704206104618325939239704677377477392786185434049050418266536682608912588769643963403339840171078115728165685345807612382604264428452922813035376595714488619436283466552086287804334733460248989266906400785023004990778455463071936895120435510739878440077134340800753293931523071392154532499223847834611487864383688499118689384331533684770166983209292939432393121283775575917825747468256693171497874183005356244676879904493017859949308396704539550099562390262112449130422565272434616887927446843933058142925919619303789338691857197034317298563165729123105218515239933123295885789795594234417799249693377004221863048067595272132746478075123673197175205499144173169972934128653311081748926569567934270745668539179710048229322555864856933729983499402385107103583478566144262032465155864885181550444044349729813261831910874441883781814830362125626539690713271945010989187558505769550067750868227491876695144529879039533953518823957279197772234582378179756136529138149815784542524227010841431142346868248356309603725052409185004409931282398757805574550186710344315247411203767062399713884821168787389000864490396040111577625559278256607593628736919480303577167900619593087573699000898870260599553211202175861481727158545767701009732775110251426473367716174593650180246900639275419008251307645009458076386941070883528677713945246138283538347943230785717305395401478757663962814519458510150593883129104076130006014344037384737503758856717228569182230056251862050664145465382189301710011070596544100991006588856953438877505952092422657628265621834219367123714067836601049369801384184522496644309288792912495838879485521236175126832925833613562912562915013769178841632220530016157307832856892496053614084257056515442127471042599474766724281441791039482574491641316595329773037736141633741809488507437150988920987845418289654831602058776151146655482314324527001475711761095649448610092776427183008328088856356455639010031818850014624971244595657338275000159952524781390742918074994029481048460133267602176650514145596823821125133223645425563232469143680058073640802336698589184108533971251530140114705309629401092333641559764387707109445087924773246545475744623469969377613616718377037929627946887261943754650462085577986817285569359504285300521787815280769029599546182548865901657391829855549116456069489425537575705382758114468378352577134476675142061558485295704481728921186193842461304558937550523816935739022618093332621601133001878939899289885481199279100912711852697141904613405232434381511441236840530056943416752198201938748903365390142296309067475242025170210329097256288142844398007950033122357111130362440458559825641892841210496800539436527149942066733934669583490522623083545120131704527161647165985134745482966767780499355868499657096460235028884052646638135220729131985145771233802066375483265762421626866805263458439170610647561256792373001028433513093552128409087513407811180934655149002920909453653440736716270200773631406837354779822783748757921621274297375302115563291506822571773935903912036872804539587956040377485572246927813523408218655141152867014767213754593069487275359697069006576245028243329876999492205593823172628047561067691031432942889603854640903723502529726807285041297059662164017534758491977571033015483899192506223033408277449164990110772678565145761760630148627244574956040542485423537510814772327672487500701915469175107803351959806505991553701169347994627636659674075381285004427822130668096230986799134964369771303702840009994457595547979185037261108328234732750522838899711861844168208449910853046510492151565171089948155877390108136586270153604977482392359296050862128747988654532537609911257185519016539721260749050938241501830048963057032384274323263722070703127757875589346275186753247917675724197186176897366946650656104906235873788660689701690817724233340935536333986128475579810422881757242857390862357371703408974652943562952266038826534327368802598015190904462154986834583632873035964520384292876745480540533178921260534056107966646359882942185934810325341700482169233676142919174395148414077048793687026245880178179048968722026673530559555519094445059777705359805430277873799210760175048649419365127085662525455352332293520812885877398875420451048067731356338351220658848920812948257723813889748516426142241244024195012035731159397733822715505715986302025062291664647851808247654997656226272197136897780448607499703403850861608008085834065932960114865310649527200864631556666406979724991265008244482971444711018833000396271188750765794685384094119721769916199760936122591740147397912406988429738453414824534579113921030551885792925961391336929728295734770293694977169510892067042913210895000943073208620632385004796126621711447094099194836743002712172243359583962310389215007342272763584387185238675879971386908187992177614746261250371496984485530406334393947785232963848662826513716058169979311962012994910375182601398571683179567436862046992082715418885491366715171481927320004920411074620402208234164565227041930761914802304918413563173870407124784232045617569697397201072135361842764644205884750804228784962559846675890876415267473562788683220232097260762469453777774108877990872652389898954678665890382298874697873498410576463376462109642247286542596694434636963430368153651861456612691744701902924940739622076433626705908351048443753119495676335697972104561016658194933539295092560426041432222760969462694425115202964462960555681763801406700373430240580169367740952974287308497347969453599474382376161558678336417821418959821086818313083245293055801378406895489108728067554046748333465848583115477443982483337580048530261537096270843906542213713260615419420652270474743262922047145797253589126938761419814195573803379412743301967125479189978013675174307896314490480832598471338858713833217100901079561350890932453512525864896781527844356519577719830171751545135368107148271095452615105152387159386541401994471315850001250212412012768467146564359339852755287619539401709961208076696853784396411422491337102273832428018062607790380185909843723067251744863515649130638967175002921437123867128067612974344501887228210370356156768480145353555070591160659617458902215937224348163247872634109213228430380510992503449948944319234598369008877024315279788187522942545288159232213372812232752549320037265616043485386284956618780666281279690783371893855477676113285960690464439582121048658791566902042645068481563519189332981651489696798470768759567791094196207622276905016015694778378383989165637451078049761624000103191760708686255879778254774489591856316004316161614967087537379177186502553298105239672219964541870149572409452900169430954437392016048696087587320838498143019822373293702024412415844405084757971501180630908223065561108196235015811321270387137188083240972943747265060677606514766916558525067557709505730497135430353131886635520704632819452513434860324308742591168265540604167639374718058629555128878203320589377282198177723224915793800609621632244211971999126307171444795897574397474993571562428452384578205873713177686140517854569492723249572027081765229359755561151065209603061581626473639166867532225310178457787969101927191665565053539386626239283155909026802111516268710558351618871752115344893678594802256666931537025653092028374202399551189105072293804107387147551961488177163245848545638447935521231116960935692384137740289538861278858617308338840877400540896327435963979907897300354171349482781515751711591863936395334859311711784424381052536138260827246726801464094205882173160613418121025267000349253994075599795318959828393898629403907262871248717740002568565699393230313097640279552951052651206286848630607047131603198558640911435669419361404407028810436359787814689184729688185884098855302382484488777124608558170673030483153465370208519560286623277658818200202197961405266270264274203755676090544275758122726561203052899988716663462251786546665653652654103114899182666300967855672248030089308892420538905661486899401441132444917150040371975329032176393015305260437248954467341691290232782759009132771561278569668326834468967561707464588934472083908737612380501463180764805037181246120736962534028047362352890694164850896365137737121977677753069892080403040317617206631864977025196331058357413516839081704931672852686056869320150781749649954268792487721418842252120318030324209113884248382550089006462333922788046172007886094870857481791496619043233057232509249963981669400320221000910469593387671860903947596132602953770539618930634798477537197081148193762168465192586209380141661905344738431728975046182064662208209823786044370988284877084798209774196019256588290637696619967278552144325101546328927229621256274677981579675805119225063622748528489815487558154249166187987082351035337023464979684087437658798805171009104774924611726125752047798178644970678537191521516362252255840515882355129560043936657416568431556794769509472840029504975610360565899073242470510987743837807890705525225079485248892248175876177582280134054928730685873612878955614835591803256107383817725668135678280243596216489018554307446880518012989820013750682893379319684712599368055056780180058160146301242745776656531153611573363870836449801562951845637684957443928189103357630452076444911027422015990105561273807698868335692536504636832774132724910023579721769511466394096041827929983758748234822962188067003332489214551933613910422196255557774427261922130744896975014626119795412711393162198388523719464714304501407143154681318934836813973608584340507640858426117268277738675298930378941314951210427428060480266359257671486018225020421653708083259542951860583864147655614686012319029239156977672966405283836814356133507787208570241296611863701807856592701549948809546561033100022820239919683605071668270334924878499902888186989211438576989736636602851847690080693746035250027074425488566355302505346768900190808479497954614749160684603515150776693925574849940820123522425186418487111180298053924673885996800533015146196822095695235409393893312654605294782127294793345919063228209583112034409807044097985232569771746436524153477843313603234335264202563996294285701437949596911339762598867319073210698103805783372216842971488485584727908911437369133840082110300636338319608068781158192932026305934085746652753956614243127162148738418553191987715578923902459212389155857365821058831427522207580745858570109500516467035896214539493341560129387250868688500566865821716079310006742716563104966677543723907666476393208215925534895894627297461197543471821261825024868704252318864753384261312989708637803007724727587135923460129588854915690999728103094870659684914149936924138612924642939483759578656495528777546408926581890779437294080217806003401756626497785387149826195653230507193567563132746552972792570604610558028751809816792944838360950166314376607551383199549956318223158953279683246006161112497471864920774421199369857605411793139918625419821654390659043172962415783132015369582476441501146977108780999793361398390819152316063409551187384957142697050549262885327062029612746372157931819784617549239013446215432187189311585029915713309654008759837513439854831270803131693245734341224274810620344612787061425988205172047438357741648787709672622542094811197092690431093313591719149283456564091202748489095790505499701464765399720267793715102668866686652557319011169097384571817052474711134811173328451902911843030649065829658759927286370020246104102409426047219826487214366366506914329751383629536696679775687482252866491615277034860463784249400404765438349111614598683376187902584800703045057089248187399834370344544123859067860999004694458769368988266971072506580600748543885373657958121887028449019121978328716083137632558058091076096129603124273904847601991626554944331995059414152656522067578970687339321882309598390380004959657509751831851063522214397346162185445352579329417356219990480608415549716492277533355460997580575544121319532573582263930678931926870610976094215241087963132853877498803112887390390441610720719182796953771260776625220234956029146799660651993155354837280509016242636753015977890105769855805303847239925052926993784358235877875570912356162748948106075059108527044658001104994164211021801334334614785640106456172822619996295780713874464460556947421672722237971135145153994487344745052919386499675835605677524877967485227740859675006169473935069601460250439684787256557898882965908174490510515179324989325696124799228484252235714746527392600789224449197276375116934557377439392669751345801914842622475926362905686468134253336317436475216309486700881070053541354044818747470988857356593312115307358887000211427376280236122113820777755476963390259215896876911160519326389951825198338277769277861339554461520658375893311613239249774473900460053031098013215964204681051912406727242850184986412286561695161769389675486184131418156531605092134114954620937000005444891342368686232467549302300676582025908121431783644420145182838161311337079030164904579370244186713944959571972655052281016706887655307098535011042875437048145133915372807323039601375597011938643327245271984602946625632081759064117260498399967110345525776514273149613351761875790885934122893795753062250805649934368227537453914771737194216726894615068129145938180246764882311289876310561489223035162126781389151682360651312399997581290563889294037744928686109537200628874598917208156838013139015768431693759114785468360871682055163888919240449889233645277216076878987029672186132366698136274207731338750953972605312896947001275882510425322943282233514669427489313778524878069836420793659990833964983268368102412822478522251470690426180602198717709039464720006452380088456250262320130315856450355261739575811832835009340104029957735330911838182951724812479904987641140313950996351879952438795598659346168840541991974763210965592133231482419371597394524637133694101940781910025437433158580498309495480676639730192661206966033544543267670517306496873203865634023579208626982025640736993824557139017435010338527807379131523377481830071558312218723666307915053335720562613109362358928426080471142458798018516730320831111646492003069681192184551843202861229467102029008772689559559598717687168832397162267288824403484902427714555090269668580673514230540376653363842663058663261043314767965725313226768436894417820973715260880540487589330459858498911261524898418397055252106469903853575545714175401679862419467168008421253001483576524182714752825694393306039102193661857524385168329658882176676690785450841767865211661694061655318210667303798581462886317943428941741576202842501038177296016322041144992715021961180432622549745872529307047024154528861786456116008907270238686849484115601407585571325277807603951778386978454439779965172183238908615979466895188392469857858835555713080052428882932627155156720297064500159862386784724077045935210159777972052384511723705416919012928217618287839990547976418394671208371865423529743507183166264629616570338963624343931524591324841807515638230370305512833307134416385585657951202493924414760064774750137583703368170473075326974261060388093073177777853872873022201965978494156210698170985918301255911559492846499363599291278268507155531759156702679512667432177185004942930662920980678487244498159765681258479740748071286473608439968991328399106292634486617485454510788588236995782663859908715225915036307382142129664658454998307241295910735636138775581472320936310509079856284167608176252937653177222608684018348381917722995543499929988011359658970234998075534722930804293719283728158915616056484079909977479153395040052061948048306985750813661974832550734123381896760757305088727207946100713832316974293798269856863664062573937410183285570334944173254898042060862407195413159334458188121473611390056269576766332895400473512537808662014568723805532671240251158423056815587512240431951482635729772687576750440568213159601244063845351023436697349938365744285625275523479733976169562508014273541778329578216723468767691317747498923628619088163981285418585889631101499818171871882831463492187062229656713652067204105249719070315612840689077727447314855036646363121798900572593928887223047378076962616361421282318729501615974961186076883213686889902244575240155376012031750143401346591632038112601541962414380274816855301880113224077365713757762884851299132880322654723388664437877308795519779014357962517224148883695698646616929418105104773386627532403953105724546593984867081285599154623179314539263638936778192119235492245710057244302240073436326012324693965325070555531574900907165642322305657467803593856612443096215504962530051716618493256381696721500672689301620737422508924864106365167852694332899360161235814929836281443799166870530162235042957834798650506211741746428814870058245105053671525157750137431694347913546663808779149484572589373719081778190907703703233344102671801994988061875407865674377630030187237807317638863400957814130936749557934778521957370226634635306045541224437230585837908991112483450513644043798489298509031026906523111441619963196978082865652415745021984094173636752382965613656059766232728448979463590476535884348396117587691535620461950664445283681057249320340675229435473517099415327580189962242704786992535870318658493390855529378992162154971466185819113555874430457695715607856518924192681797565300955580922503756815093540571400911512166893879137220344208731138656039171910973759420738969474698109624858577518671203899412168817878775187978253969580923268840501432562571800350003825608894808159878587941014932743655377902439017711314514625550766035132665922293396607341218148668444737303349718790247747699942104705302795748922664659415603383072642523983302310647499447373630682198749742825230443586116081224408429620964956104826178877897823777298547818952601427497358875235371650623156363044403894927672083860097277076829224793048278929801720049954949916077012465321843533261309327169865348116647504825203511869866422520630568558375578237526378691646602416263401819552719863412895635491733098252666563430683089122337111956752008631163147360222820995724512395265047605214798969297264256439235185360112346402678184470123874309279185956451373103307234419956932273153793120045234633172513230368725822730851117590664987535830646738757691189675963821151152727064084604777730282983290015786659084397397033926435640135580196818776140730766230138834997337624836814830992566874349260902933701349230998698882393693573830758124860138699442041536916701100938033820199611471328791909783314935234052701848580763717577138317906589926837251394852572519651675251093826326740602508908818588501475063848389363569877371255074059430390132770437026371594196319437267120275079813862899059332156693428395680206177477895082510703210497902514127306484133757689415351841374987916976325313992348972259707461401602326703963916579335687576542512104957518524000845897101273991483157207558509319191263552760934098526835998390035859170318002386245375228561292152954764980068383879055174619560275883771167857787096822958705278859544530580564898888305122666364525980312211309018786681900843419475881414696852568463934909840792900775039391538586131844675353000068082188637615329536092420316882107208959382757450614930356555523198625634790861668492238529200811828585059971584349899815661715604339946362378078375420886897948594243862933357344209261200636607463235499895663538615639228073809704235730382132773494039104982394481378913685011766518711387165574330134146783686408686961431630674566535771903911141599574843429079442855384523797972531224001401044875505955223665394049593209771306454613501440170549203963088613740509922572927673831772043237900491618733874444800205197291023949172385606980362548481047658054227561415688420905005630783135604594941213668976958446569571998107434329891383214996258462632536108067561917964276384285348868070681822527722421935573910847714716686707595963976686599490992057097339399552572973409857513354026423989650699785383674671542753480309022352158953765347500117525715996684851849398755726220861178074291093528041357976469923804838394674643864925798175793284162445334963157226075284993770948564306165858972891119825690955247466277986478250415884576011284856063943518199334999141974056096240918608621702092616379157824057516540224349000037620278601312804695375856175392967957587614019915779304266013280245566962589612258408682015180317031554173716460841763330874195122820815578404090145867775705408116151029155752061739375005808567398972961995686455349015992939599259071448151394649088861651772085446782557840485054052832668469132624397312936951059290754006019965035358037094964687335880185081439181850338436893641252773990649220762589504605337221614275754796357900102907375900347016184831061279849323570679565798120092290876664829636840070855742857894364557978866940901144486191813209626736322238520380778379230664906008119182158320821109195711919039855333438282671027054613273294741313091691469233414386215713551470879757728549709388745816534088902742738759616379130378368255299309475641594617976753405615949303172134050463505509941252896122223058916801196132990353516531744555298434265955044414242128101309391797556952023695128392668321028765561659168085198252628305950153372169822403867972317514306362684188538152058962237586820925774547536007242924924555263639655780415495118402217189092699934253781448920802503297352988656153632300023411244124819503270054415917062823133515430595548687605179795990384776519844356007392727684267351326354870894718527473487109938619947100510738535017727375839249960916292306944020508679971994674813200844531869409047647382928507158755078454402314940351404091911634302055044430207435163469092336434077016368994328423284388162416277801579867622627803647848032126457705361447953142136926603129565255205383031420938837967070172247727068863705115686973774213138296920312905433106303072846953950927274199823635583658930887681372943891572263852735468466502692223108913075728637115044104327712530409819597120377696566406816252173605503417477415354638469293965059662383521267202320801127658614485952518361669561173516274912661005757528363136809352452194967280359901198502056693188497198164644611888786144739035915487363237977013382970262911668947957800683949344997993589609965245412838156594012233138648456477845888877950878413637200189015278968140641760209531585084588358883896823946295176246462413863963975117049430867224115352628299465114836043899721472487735980566089528777416267742610273279895484254110061234229988933805471064789315929196972081705071354202928845072701534555836597276791336180130129098403930195894132010744105835364050605082118671684149875592993956304963723385757443461519702881028203223626898998779059902741746921989817021655418577840401468834375895916327469044816520855982989478316013714816698098593647817188576144768083998386123094496454500956409925728481350947019408115920036722483440983074092762347997662190914068821767333682370166411353042947558240697199441706799879358763527634072183489379591044475773934562234716350935726755014260268177986217268311371831269676463093677644168233647487311877202674407690491342853167679742481986559021941491559038811555193183804865906849467039496886002566087612858022243298488537647231583134702123705408031389463609300915245283276039778309708165616485314984945302167683558046914255960270610024255379973126289423957951244233929837416677157040781403321166969140452400817799135661169117842198055050783578818671566445958476836238238777133067576022939801603631466178291240565026241669749964994552884521700616127546052623728854495144272423888481580664808728011116266079490453217133798159040201559312662418470156686635760742096887937071929265843948700426187273464824254755998614616607483992161902743453265216845190578111845256112692110986005646345779391830014455218339797166096471463740075879998987771183802587516045216056238018530876134141878628562315798555351602270875429486301750511725576733264475954208467844013717427637709354934240865461085456209404395621249340568833625032698499530939991550787326333656708131431025081022371866616212664168228763942769631677025421705990819042846166001411578660563373195490486255637337591631821830458442594848992302588081139149594213866948557653086679790939279884278072673180140679362696132531251120316782812673906763466076694216608942754499450782218115270570979942150787462190579809838715268288159911458813474508139445512756249453564854828447382173127041080071853622343397165607549466914878186300664262590874554096884217868087532552907472700321070190527199846866358691830737445815909539941488791906489183270963126016713494788083008519532620636199391135061670295618479469084972963194827100335497490810566790394365941699059368771922206587634952463107752674945056768058812940879684390378367447163878129996778045422859731555268154422578253025395921876709315481115628173505936797817203167928883938365893769570550473932539518571024551878132466489759911935377353585101017656402045899860033371017871303014215536471760260819290844516775977909269950193876811707523764515428298211457865439483051644351068615436987208859660408150824683574042477113242974399796216732855655978789510116523692086063832719921617918986209277908579651845767642447575904226885844828287441566905949940644284522116352060715184335596317637071500866831704816675614032685652238878479373402605241388921060632782381982600617111179343225684476967122167410727746934266283199616126626307637636251646471384197088402278420664838331847731788982033471504581776320437187112091961261300666159600630626753144120826564552691710544924438599696035571727470492354694568835067841447926046297473855024530499226485602096274544518468519476241313572563384607883207416012447550823380474643915117839261371118051529310874641097904840532819792371127238036065608510399271678380433770857814766834438239935472767054189269082307965839073972293968652404941637694591623934159310128715023001720485229489065650291339396347434407303283231059585485580742630881758703767644943401626641447975221301347224704847649515047242818049424485203259509238500472986499888209155752315751947078474038822725680934413251505770393034753109243194003946641801875962046666708494261974632989351461444122334651713497983306791697776763322844824991181190279293386897125174667116440542953917710407502245009196018308145408511307025508399198954510636739860358436346987738095096326259004498575652696116826977977085208717549456361118111227051108177438696209096213278306718590480959521814826406526374202907299252113383648848160708142528879780032746483252690668267335160974294621021331747547801474137056986029329316620813874624787122875434797917110300299166120938022147887598113868703038392210092324304277525026100668729993830754291090222503331093931597230107356696751834821520232987958684499975251554713610218732623320999085549822016568583031448726406670936487327705585822877901823048438413276664825294798254503368899119925941241646605304143207491002327104596777679269940227746324549109530221486165564262624423580632890534345850863198745627144643655173590832524030897806136880551336931708092577519937899723812675921587426534902846369707445482069130613496324806214678855504382297871950955268047875115506630901207421519163340219963072134153878509087406538059192047984871730921994268394578465575204072560236257775673764082725888032930481022157910100134953039378796194803378710853211828437195723826579518335601262012556730594688816934755707689462623646147553411161380526376484950414871815209345354701414976538245729889157435023664862939453916485986104488803846041029799212056534815248520119510093836383250392031374732348999661332296223308746692445630733413177154569463716193124763928963198491317626494372641209443897339829043729931268042199541570589094628672122339702161238395268654222981947883910759025829441343618530865922240477629651517219126415387568803361351594696229624877032019487662483221918550874673201745382252565470848349362884458924039112611254806583780949651466031374887745871620590371456606280290073683064165240794375916859030748312811213880110489028124321703981609028208632410491317718538572324485813852933173565552279312045181348091557248022011020646337697391103509152625218258852039937254798357327890447302496030586929420391987246326112409115243377731239214632610562222106164233528355568991053842309300762504421060044682052554015619050669160104832529973085712189711396347563508360171275467319304190058097153448813040634883581155745107186252915565617369078783177145977485326425274258114895100437772329139318023563250824440021577720630732506848349587027500264034872717903897677294628372910985888786529256553032248744809153597498095864865978586989677084360112954657019823548218267654085252149928135609083926420490260256620668771836591101248327595245253210656138416377535367658862450710679050544871969200996221368438149977604753681874173120428283796118628250962368147381922753805303033180986022701817473173991441110409742932364362683687958338989078927873945633480480032907617811849107116376293736583784753261133956622617081916734676486847351139497395937697558232493654670426098743237923439508598339752750850762529151098086586037207341738231177062930694926293632297838825272033197179783974082007693474256102046908837677538096408657028698080040975718892671763365825687550281754036580514114902344516106290090274608656285820188975930706208635360812838966571561468269572181944335828508520554332900668274982985172971104945688849497706699254596195611605806744849188800151739380257536087652459142703595203373826592338208351663008817812826784587890350097666328061026000824413885575970872894764990304243800226196265941904183226159264541829732967037436851147662082679274651317441303037624446891435287421842558448571412711281862335583102060349478819902078151386813963934124150250656029557739895099688349832697300442231441909276785262889993641995743781868964805772281356187284316526833302207713082052252280557654045928113758602507577251969876556104864640009817111044876685093120173883767540930337481122200613373348982912767603605537036785644340909528386792677432572676985247025922552848710231256925289842120622960608674838080926699319413104002825051895166080165500822505669641512712447271637414737444816399165649353184004568723184383306858856434656743089713147503039391116226330744702885812957843838326604941209158432740455791450169535370772778271975957374145266507196760566475437698311401982305834907349153532520461978401987402606804153376763945176049604810428221982373126885978126991837142434889579546327342258806153486069942924274325971500397356095530265255748474524933872966615356758964133181439487819209052947388147938638621664804953767023960718012332490895670901579719234310750233817721535589508597030725851769891512144597389323870177007145564439807795344935651681053668256043874350811779814028438913764055833993784950869646199942828853086501990814694531249510126511463994191837286107072543209537407602791937982188081971882520128407944897457044317735109107075852246044058691223847203948465862135645310247569154053705868443401038703327969338864527646852524172421173003947682253674241903261702776137912162734548137036349001215691832701780188779640573252631104870828805397156861945076525455737963688613285850052081456898200337493931128525839416702013489402081210497348210852878274068302465753720214219138843300442271292888111103607153693499308924746655284581687356686921797506475650061111796558739334396411405632585564471979510665098003464172100169737886047990408972866490727103386821361827187665609745567032531398104003511034943484248884898660886349426594637781669414200286112735050955237239471603644903081940922031527216323610801404074583143349659625930883537234265273740872961620883633974987191103260213289403902303328601331641937258045496072124044155140378453704619870687609183285316612107059731152151851592632121971966341985107558390093572008482046320816616314930604529824505938988032597877052896102351086478458081917543748038879473201275004142738267051719939857718449695332900468108476393926743747486408171500872252400250419948763367189500115742036830811110651379882520378036261540270834486976585852043354711911833545268647098092901402632809011173878474181496991501098739307929873957752921256672058904817878841673203257797102036676411786867847835881133595669303524483444622374959471190050047005010293467151786198322921668967451743956562493354331836657878610670787106044747568649594792769139182456577919740911929264526825698790712486817420543795500139720289127999047447543316768306984260273837182091936270578834415419940331063484404188489740647678684123939029593488558807016958027918668409704020573086289811573969294546380446588625461793378656587887431255556726541347489960149506992165665213245667297398448890116600703443489937551349161329904007971232447510902992260514604063626876005522145947110796935904163569298939708884811245696159833183408525634518472132133375702049377611438027371462392319744223563451145926888079344276670477135212254845568511687432379319534756710644354991887906682058084964288668326872969504621052559942764120236838145250204789418924906329995351555174591734511691312463905041218222427992980353177688953932974617527289019435050055390249534532941238441117312653726959546812773314513110337633854221771418196281102686366071249297524775842484893709980990880840830577450066386183176159941262172400365801696686018314679079820313252422059605329750952186124278441556325851586245160557640377645635426758472387859509926481579432648928551534344462025240336761162118194268424107001827437053462513648883466210844057713160764238920752624563141939792565831593919425360921360294152213976915519514048237633660366089157870013133095650083120154465450388728914616119889643715298840065066379696524225771520913549290756390129205897680162966043161193303216740010212534601450010021486597349277893760880521955219466260018574949963837341374321114145414689735989318087077029358806901294280374824418312385537748329100505754293030195702784041479466863038775866928296408938281187986815661541401452552929863145065087991675380896983061147792765576628613985318904810435977163548923289382345458966830851127174511239755069590618899598477994208779795787610259643737066372489949944814097988153287581691120156160765721864253416398329950878292959140805861113428977409189131671478338909631243848265871529722916773030659163409628510997480631075143393336315646589815289632839284671434407556466100576654409001334487805796439958010760040637582657672086392134220723069902296170908264285532041049456639794139983562206113259868674825092693103341311045869458605742189883901178146443415894734059095018546869876210914283321868877241892793087381021173312356569017502230128394053486855443613015227508501830564799027915887428609731829786050321818908842495060014127636621554135551174675667497344561967223036500611222106559984397623719554601849848895639361327657190973112889692601706105860507047888821873218454964252643891167006282379067931173441309582026455169199293242979756767014009251887656774836227883537854266821586268835597161883592292691341913169475025387779949284676668403947361227527087067094882677066671578050416996209340592801504239081219563968406963197035933985005392373921622925211860746582668658926191329942212895445617813077280340331245151912062035987348739633304170202466226174225749965233755310205472095824965438988349967107185379920178542097605532141382223923772454659814026909228961477553628348070852815859177777840619474814571972100647161822595985003398475060192879344319568253930837691339929645473622313454567734273679328142957604083582202633946774030748047322838393907236370682239071322637042002188922785866772113179609022919389780532695323493113356730148936356284854679087232146051929111140800816072666787174736110114336018236526763207313846684092692656562914685201541653016616096215977004394552461285652652424115040541543090389786690309761646969777341006169928922998575761353307094396234384367357564363381122814435658120960387644507296588891297632075044258795439549524959436600031394486413059034453805024741101729065290709659824362734512509062259910293724258847656357850652461709920688446876485922209364310501267306511508337225796196409706309129964578357949628736134298564095712375867594180327701011879139078961119450698586033094039515412048601443694283239675429716748171611836823076784151946960909963662527793667568505978608402118801412831408748865545320449745728970997644894961527357006654662936306851562633853325756980822216268646703028621181700708689642127729109128016145309504519705534428797704279795779947762804399009586636178348555217363217941389352462347355094002271184104930798159380060745248120731932330995442948329574480797287811584325409117912605551323462720401236818544852651787026232751827897449680365258636200857266494182818180818752001558401082786419889080217237889480836186306994931234409166199508949533736484564214253681345150261763092184671037913910792082985058321856969991498536140821679499019028228094065541794223279769052971682417084532194890154053011422731034208703529556707239359109025362248206993288755294840813026602338090206036141154609480615382367293536995441282698081905848499991072470076017928832956009944419816460614777827937193567803371695248529214199432315816265562909527624653126972082025985233508884551570657389329690161413651984570589654891643862932111110683929380222115220348310656860490687341646102271250433450737058845529484044852941255083097929801262861286705725306379503394874665685700309470999497145578709212287164669684566045842455123586229674328504292450020632237618892420767084363711309021120846138318808011716897706513091022861211710870100093724549658427989443082830038810081080315108792861762372368537743731949767788794129184775467284869522632476455675216412202509203777307988953876595373392936831972754614414493010650758641107628842156796130859002178206269459871999457646931575195780145459104256140186920409269005689555528750652092663567244254877773817074730367045337996090264123763046175154017463872570285940820706476402480650143440534587346435838997315470809305669162452171300027631976885101282595552804800806924394704760246105375111466013452894233856645605324050809034437117132769969863326232745956844212488104696065023224389030245471136161357340715966029575869449054109380357471218644209298435716349364703678728305197508481797372013058981199761063748739928749773048533121718095905292243591025279105292417716053497088652989892927840614459666235970757660974588485646880279450648400318140687266665122574146755717479645945787127519620645211964003479428153313699552225592982381489291509212924440142619649888927587661472666881483865108470130177358468408228678623164842355561471711234013588366938220803271284932265009921484945488974538675418755086927197720979577955074825446722756041280336765063848857278163497007020196629983933990059063132863412622496590965877247723657668567090983226059910158904584498992993252377402785743934019505082259126260649220783445253528815948065587718010995859156426031382531091792048258325034390610117374399736577292350029714647093293275871096560091718911979458583925415445658516722427766041057478279061031710392934170720921383415329702342281827353747500085868055287645389081175042992246287496207307412631189509631075000182262786201594142428615616321400301291110062777090766119402579807322318370096225585099046071703160007446651795514881421899097472381724428135082643468938413464606765919386067552231150492294185729435778948287513948569683471391632205583733064059395209161574321573410192645761673603240802640794889231456221161263088264681190879911423704201837433437410829174464260518821235124667740577334393500022212721003323643783894253344799249465686183967997980422826264974772089562053484289034059473739225884467256043905705721970680501468586971662448320329788823799731790025297433499342951109687415229950443497882876185364279003073698450711023802133586302446053340009241490081946031054220010779976528014454995104952995988511167494674838438659648827022520524178593899211895841503956090831780602008499158854942648129715851006287168709716784922075067868005798410674404851768366556777848652342995936798800670922568192435524994842969475303000276784118824478757834762452940200183431781559379001341823672078348017905218641266131799742963887834616181407952022582029939118455584513838013026152976441629123135917556668963222180962822790414446548823228985823419986995734727229713806104264219309972901541926286264553614283842521529028510893232386986360198173657124039400862204919407821583728753021424326713324681329805347929336059086325289823091126985218673635337828236897904507519604510646008829676439938382437290108999632171472449476975941302850678112250603166129052382677125791889025804510283226190160353770895881744014304316877086540525655902451773730410053835580574365884178796331774798271294351435944276194553517582639893036781735196187928645018916348063457590272196980153950707818399285314060934107441695865794451712645111675477607769878935529640464776495950874004529349404535638639422997577514630953737303014353478869413265724201318473027349787726673505783561280854159422083238176459600388045919331679607215093474946454116265093203190348053316314245072012550427256895501102165541547583851877696715257516017535816506521320673166160329776841957696980514179482067143393372928174502732629339162717954210766179542216412954562273369499130177585156543818547257089852971319395445580933185982446563796861832712999198140545131862619731050954631892418402987476576639973353958423233142447454093884753190142201406610826445670000174582261566843433700247540998657660867339261421225661652217105389640835929871845450691359076959225836710790969203549302104495770580202093942528926725337290628177235425867193266141566554530321194218062251930886934373088333995624215107920964291906553620292554104338592886259374219608767862558946134547884719176804568863996841275914070505676522525537247814147882416160154076978749880433328162554519415582455156509364905528023006442036976025583389227279544495141654158520969670849386272138093580210877882090380924127220702323997582543466100010486757505683932317772244938549568433897397914614555432808009536357350577341513348935167476994513309429379747719529902817769426386200307088637081554382593455853701058706268465020675557089503718141929828324512593149611738798148520459047015110315270433596451823146487639314416517613672325028472538709581856275227475643165586269528326702180876795233450000365688960387116341660267615682416721753539338329470586391068401259107620991030120335066934565027836668160832543129737676517089494111546137420906311429340275847496100172334765631757744746444255926423411451827963319799668342867613689016314640768249106571088478299954579129257749273823124370975549430358523658005122667190001823269848908408313645742130002144446945487789794426691640479821192243591508070433924866121843945013061409800075349587952229871123089350661904422179009451974417062011233667232790181020128946010597781866794203923736486220913459203654742607140952991167411379845815921103436611658934466754337704527915885360359812255359102795402000351762514791955494400554154560323377168984749594587403716269257774541986128016288139641121501691667331158048927993226150356382816049419099808341829245268832450197396863419683152135775518227121765055018373021229775089944941325810563814249225593824229463637749622101922519918291702385816401446481097530593060158897803746523436439543798732447731785484022643394726612823224757011223668665116919024088710461519132919553054499434863783065081797824446285774202383802708284888562745795301885088566606284515982785452757118444286595357442469871945199272174385530641123178074868234269716397236759652421062885792161032815572542661120187369460099854019549916972992505357008379933936774397876440087397442283948473295231106309095273929044705028898842917727180120916224721820889128932229277537268213199795080906599457661034085554563393630484100513666707634635451871276683355157109798691430837640980534985391707649901946109500485383697990919336524611887429316390855301053367957876666669416309932600306424237026666694412708395734814445397878536321652697357574290507352046362787459563770514967642579954138851794562724684230059107463458685239204065592314427187603171679221081933435366246003522052322641060475510243487887805381971301906443830256698770129100906200580758046501195002213902755887578033668910189727220109845598483071077812234941675232126945362225020395358123224791576288456389413974118940205042618452342698349927095529125820630086936368610634788441255339620274986070364319205892398145374716107655597144058778141362487979121618832371327887532759044931151770442974890728040075404314968626691216074784227659638134243102648940832318884705086685448950841299685274111858717276781906909936310857157616750001729131179578104261896151975315973644639162737889005325335076778550943868310244654855217591078323865944515409977723755447948012228836728476207224675322788198684418670598205081892153741582863744782711339473288003383873510995525288376315156322072797724234693017937890951352046720738844602542779359963153742131706244989592382664873594922708436133753500228006248510244791579298814360049368371702758115401904710010151049618906836736319897451254961632702702769290373938076070234569536965858672306974365080905060646570649259681051180736148135908158296338514202436735488424190003090502365521729735875798237137369552489840166402263082618240990729803694184845398110879292384564365332452699690970336488622932139438666345607230293339170064050521604729868597199453766777617601438889384413835294082958490668289224409485084396017182579944568270259247588479400783967798075997154564951751735162188436134679274573311600743792040870732662046949755030573254380084989110576037974586851146754087576613756320181802102732594385698315894228461512439887629046597106289243659690409880486155607756481036856161428439953652556772050557631980577180598975344101341679381230355932530049763914943545834986443913652663129047278980495017272489166014896960076003438369096817663113570637606094446867248724257902715768754452683580369308542905395692714974555401303174535297638166192668234567713204870785041655258570687570649981116866864739509577146962216382792100181507656747854784580960493009720071456889792466572286774968445112860490606928438388924880326656925892272943919197377437954738487370934205927523244921178701720388401995068848063327328314572654912573432885828060434785820736620151496441591250620711524461350917012355482194499684355937537452108355639678779022070154178944429422166795724348099706179672931646854253948895146724537896708063874847472695961271550474319292110390486927959905744560319461149523193712432317989970190666141169343171984035906577544847278638093083386617516968521412307641470930711906547330724063829018931903547960511342247547981705902207624443469710669071322017660757863223396553302892319627611502954052284341391712921145732487744304686622990243540863627000681193154726448797459743894794432768219469715947475239285443999158905477827379094491947265473091826869980100586392847110039184033878278794751199139099305425941586167661923838947962230530609347620436827200577030210802091540862298967302126836746645607532368648917674686413917650967983321170926607130076542899016360530370088251077241757464056550138076262900752620626909919616468969484176562932052068162610258789157849742599560583225372246453062931317231380729853475101327871580155538861834013010874137563852315819006480986259840264114641827917882860609476539051682687455142160386114039345386605953662389968509327163630242672223077988106031544096137937311847080622297564775662041936192554272790641684984539474954579005858253139242605409661647024680040039673246269376779365387325884811426402567951255442180409539668590283391888068503647577560396415255791653957421942898619917545471318723631249002344197411061348655099472755637278591382094302257205219339554295851228081980084146086840669340142865226236529894060826688227663812133264944183174920594578745584344548726323863921360460969550954259437974265616753579817058745709332581797629087235333914847106046677210362002718426641929423394192571351515565200025229382380651470194120543392840900132650117809851033393186910814501522194779182438165337771365066883994371870618372370608276597190577296578827663471370944513267346919678352893835409057562441479896551736860157279999429399072500498886539550277097789802063939563244008396195489248991154266177785927349129130667552050700734355422884465575602126342339008025131809290549899833954606509362289306625790080468568888331534122824295174615465896400613983038759142798195008975602541955114156094646657417871198862080276438109756628470229437962112950315121896170575423203483705988858972248738555738376282220322805653446505380231940898853904326507737830794735787420174593134291506383623793428400546785446129504121369082493439174353228367166088212284915653766039787192024071671099920406773572850560811534534381456430498738002556273816131976223695745570118156373570885142664461832120645825337019399896080705833417792649762395423047050702090343955833009101329472248169896869346971127478118646005154466831380203199278729836118682886005917274580830688254407133617272806064928671827363698765042545753730004533533322816326801660665623294416935176798704491215445067056680636807240116490480708597302198967893883024750591295275900587538399111813115031801738965847639174528221011074863441682037822420023663644866441892698895137734973512106831176514759596366967286696620147189362133193712352903321123106957501361242697799229533811156822825104005562621239066524017354924543261481009056536255361362464720197408370407697490133231302550245086574515637826560069546081143964926255556183520235407478933641702551109658717504853724914397078708995706917417049758587227775377023986150234810740407116570891879670406387211330092862438354093910131807880715153417373599065841936644837596483648498904604279538187992956459418719914214201726612892815578759587905304500882359262196904519424157154711860553818089437164248718090926657160032651707857238278873690848623725443131498436001659426287684043801269351819075085010425170075481821379974578926289225095505052618097957997191301193477597914245946889256607186367433458558417251615056344180022120264918181414212378859508070034248814118021893992566660615204590096598464547424367105426987540410967925229681703441030293503266425336014851008263588133888403886754265861212198317808843778779190957257092289522292617292320201776044567519970729619424865990739061560274102573997734869885083324097977165294147705809093814114815592525099065092640116321305508077646454715977572020307526108447354305474420628834536753661506626301442025917816273778121502301076051360595505647690929762010885183612349358945293015721190581906708183160464686942501285476955539623124937122828849158186410378896472428527674990365033940400718214567859368048665177333379585501458992391332173044982243437470040911205153596593760378571926840795497853588885372116969546103659833478999539430223817141403052985397750160540071957083696803085599106304447703990011467482959838338252864394697705287752081924852714870322097599452412136440077092364955194488006352217269615371017956198683851419176639385893288401553683644807436232754282115650630342405362344035011547371451945371352139307945794639977697947804360539396021395124716816380036908240082342508891328063967899684204292725115450705041837928078290636718757338533685137669851331557172396753671995970664553173693147682806636071232734077932987790454805849088663737184625057315512149303264476969351529982494265638572797789399919422294708802868656387625378600604560451327328761643292364119671025300889251777669908433537103163958987706903284650824868366232672445947571587692625935173574481138912500925069427638708682867258454699200523895526919913316952951562133063808985879792435507246831512623052106989564415358465598444209188653320957134291770562596196464790291288551487294426317908909966551189671117061097673257667663989169351491195708513415674634873957159229801113767415113918497747484444292421755631723001553806107552296686764733414880926724760154055494558121072052686156890157862210782536649357168716985992881295704933672092557640808130598388274385030422668453714209867067739611473292542379971411118213404759200710902530217068070037549773913138796072295813064181839743849205154933176315020161694354599818140885717937507272708352889608309536937334402194540679584596309432308365235335962799927485756349491010105726666020169734335516897533443257770796918856989892549485239066286773899066861403363380215380415474158193201324810216944635446336123603147748888123280097458969687512072695870821893799219608380265162450882567112430446039231166272107199164715904570844815040830472958001578839271819466918845786470823231225793837797480570353000286249854916639649013860628916306517752858337303371481221152780411885103826783329763784088726741967588910243473622072722653076702324009213966486832504916587038739007523045971469662066509389606182745549364135470188156323810858373349137464303765231878951019125140444232682807204162901594252258506036905959333365887218964263896935894490100101948038656307549410640685518000867022074173559556032295031893444207895458830423404696570553995674880008027939045318263546259630900860918893888311850261810167556013048460303675190952878269550227657283741935222121407342557985171400597736792196379516316370619590309475704876666362191327958991127967852811969933192450230725317219261872983767026556869336536091355175108972404273843038972906172729934791019354704610676663190217057038304212585018732099366599145436231015975668319482939049272631670646148628636167889985538649209181970988636219331326821646903245800836584996005956851487922051197195060062713048381533166226996494213241401916678534730985075494698513493604447908606892035177662055432862287490012725561198469611422856106847684496205141390801137288240987114772141313984245209125719805099908620199066536565342280110000683605123982805482795276005314758095436336191912719039646231627042372990981997307938044442984779372966473399587171049359855538859891855783794523683161138260961682674292324635400868452405885229659291876045792917584019091335401734732045786116853835596506277525758801784501154631529694392265286867212729591980631731015522835884024844848746267970128629414545478775041538374499232451454831883471905442957460051533241392765356093162901291805800224200678135980037135929274444441971632223025351675578254396271219597157448410931548046937854454609421026229839688515833517671687910609550373896065697148547416213854052400981457563611677525315894063199704132178219959127495689738529351647683157609088573822581927443528682597205266116947899397146221132933791234860584277608720842470277903391929820967588480235402015436556795045456451874420425134433474426941214579410792743616267832536453016055939886113746318298787757597791800760816350632475802531011157940353986153308292444333573998358794748078325846051492127026608252037274018603848908710236343603326762707835207882813344524349956538804155593208166352311498046014008591614335870795354700402468787799765313661874124848849970085940411401104423914088411613496092612450610977152604278298416211462973531770690019300125505403162865522205372012193983189703087952246055293560549433160214226115125100630754632439013687084198248296153937823958352504409955266846490567370578322680190109142835770878515435807660510754261916780340033354570347434803995323557853619404473868965529286030132055238330829901060392350794925277369410826187744212027182245571588446377765293340465309623299817213870712896616297222897600074726674841678586891781783841400229969623349517340937918828671486288953802622856343950396160495279358582262320210144441635864773608572929015678098902522122457822542366156370201799550265945298885805543180620849032310845902599210141979837177372902927660880764805644100155887987363795538615361208743860185255473816156265896479010414410412624535429369271302460684936573790642645456093463282650585259155952494922218937291613811715916132924895324441897814736348254270857841768992593604324004453441503320784067712659854490230371349611467966314074219923219700737939809853560856276809841599380916799657560220811936133983104804449761661904551311628665044870568249073847055142160331121186805729073506262276927514328569487949575192565053585365625601400215577696463111846704440997027401637460040288388838739473232961767395333034175127598222549071558875400413398705925857817204273209493519798115386799113993255713725458999365997062594387838182156433126166661572730021290762133968439673684698662206853670014534082683022783698653883829686824577620649783729089981663356836064767827101539979857027447232348758945926549915277690875169586257215934449327097749069214488088013958099708968041787309549954191358168654339208623048249827282978180489088962318584232217318865926839397823367717500585508698119827724216731369958542843826178441507946276580881675130951314414763189973824332678248849496620917882236076187338462204271665943085620789213444044523035495954001119481879142823419131089808200073095638248713214983264958917437555955743231742286504957776848512860682270353484521761843670138183570348052445040431225353958219808985222500053025768462372172408941046350766295425975918963657797373671768194489551787024758481794678440963714561181600194629751312478297107817348745991303177671073826073151484455312340772659687735411346768111122525827580195283131831082212528741869488322241284923719535097165818519073557608077343985317592860569992958585749838197699804878586785239076834534998194056950566439040564503661755010261701265623059792818058043075294485268113338517001179129131503105496339941174306418998199535430984289126266918473604899695308272555759811743003183414514287970806188095753213483200051410159446912955576468532563223990529859185922128303049203422662066265474729012557871813873078658498344267222569705610818336002115249932934342069563635401367399382770625806161213611071181603811075283014652592073438347755088967463451523675613015795248627990643947496749225391361838338917558551376620894214529599281718576254312123651758720191063688115601875680197422811044160700323051894529640132174757889316443683468399508684835659594373068686932074398339837069739176623343145174769461604175327118804393990966588232429899857442282798626936754851876985870275514972258003032787249169682072234757016855389224743224577896685576450149106985538699596300268670615758958045152604778811205213338625500579427934693652812248889135279622949007504423591738410990208420975950723826523572953558345596130118891424900415896588925911555102897120116553891879367618781695912265335418277480621352310454003352700800284761555972154696773198286056130441908127526383031803017378652387206476110015127288307978149302001983322138099599110448895488208753115053811215696891759955467075286234430476608623510030370250815833942568596823448518417204552548561895221464213919983958165011716008892309757572525583849212669616390682117720566728803474690189559380336707463368687673035882893440002795828709482808245642107196446386416329755134358619478691884164085092305275937059861996507617751872263794871421283079488302691327996103939319025234444887981471679732355402387264875427690230504451628739348483472875065182199640828708812520067316807198716604518769536932436569104134343337752968057966537474248944111027754316088856774974622725619466201421964212561717553698561476725529389008073462807957800283810957976601102504472877978817488590824443632256804876266907573078949089065092774454364374230234389799221354669105782231394589577768651920993838847555958994277527209266810556315761735092941408991279855725906125983350318519901537872656347862172398086244943184012378631576660906033706574141440634952506120645201216259552542502667147385052978518698519920326473457656368069153918961334588355091578139932457586523635278516612223416190648343281846545659189739236880452582456072953724139958845234969641227163386548089051736722266634009245645393699635041369353343790068545574732705845466678204441054804398303227924402616784635270568093214084359659121291784060147728401954275275840504334422744400296948746727803666155207085150610414498702489070775801057516818602212003509920199632237474498166017891544185059183927025783759407312234557194125483456575816086413683747116987540740386921755827780650774295209344023381316631558635523340129058201359472172502517024594055713993006085680347381382162690322306380252215926857385321308361417563944895522494300997947557798931250453361695792614655572114794401575810714636762935823109047477036600867311262101194895259208812606868228608313399064264788860391640922862920288217526904378518668363442892566790052283866842752828134489720751134298298333549023618094161315305831928080592675253250243070596412292324175136023359921697369414168212462112774182006171704939425540054521090414830798046583721962707954777892389792503431401959626276945018333643760841442994161445817569029514324801205777957241093627216511717351257234595667525655016567806484837736024687005646859514535915972951499255564097166029045672966367202424645468636410400881577045805349676690777656014574997831297015003587463038988705534342992744509652831601644328858944218107438862365517733036960726918650726799392945797915570740949990258958353728959455331692472649571238284151025254191021713073233414040076848108478059854661991729503976296744733847529513979436171590469371343715580358632156257480378137880175830736645946276253854879118310951324100837667102452053768468241044926606548983859706316910160454030921014156579998119525200676959948514229338675680125656922413161239523100953367875501846876505074847225671242949957408491294262866243528461500888426328557279553787003493801095667002285313828832369066520519918859887009729859788785595387805909374288282272917812534958787314105680346217085939947805351309395488092464537146754751585423167797442792478396863799284255133141145872198900784317686080664427413964266903668505189183615797477303453273316583436792935404099385629322576875170455733277238173832395382239905842377858289561824106887920431628479489445122695724526026436581380214778892299356134951162054587183353996365133834097849800884339648913241116286951711546331941878953186064332683869181526876536163543010185488285973780089324055795698747912294176939503142839677901134139554245336148001107375639501598425681186828192320094793801754878241567643398134226996502130752430859549651522581443969035583949590842197772780160109524736111353152825002713458671199509152457154413306217352614170635631692349284512843398525840179510623753332220898134882218744059905595391033910228942717211350651981701515938937278939151740888233781828781595087017191762982349879043098206939972674879531589459137170867239996333628393675074042291887891582021147152652772508831929887845393719346435972790657125455132725356185720497968747640867328420345696457075394940074727648071957077720361943653836214580134108485552670757527690220966948267353071176039420938169408526419052849110030335425768655591521078658410017084892903272602691408071035258054755318397279659161926232525221398649336183003102164898114918088995810407203371618320189677760770063312429782639719635517193920279599361261191084492354847274466130637078241894542898578156380632356500227056901313721819008835518707600697044662722693678466576581452669589039271908391699459322314668336443284075350903588086967899806320809618987441666512479589583887479605285252313444099435542977926393377495799748525243585839521322844872921429723362622135357054843186536859113906465502845285285194986341143796277333206418851778993145777583630598812807338673644749290238469282637325629137467763515823919189896658042497698447433633578604189019254113473898286042297078533896033492863053948844288265449820110890825969822938441524412830614314652222523549474726003323104779017485579126129563804062933860734841464396097206962462471699427539779505291958274744735354725463566171757488135064002417332855963511488450239665949846009312826634612402548068098186814047681744242481221448643728855976577430554529278502621378227097684692509535753597795584129889454811895058358361094952682512695099278821629421768112841147750467615507027429852703840660039248484368064314684579874614515791288489161078623208621538704419176260756028292040700960906655427181577439087465779756316152359434555893015060552770880476630403163547976049107747799282522278659308861384035720861971608534762942465240716197635946744787251879531341617862743907941609966623337735390499625135901922244056004030752465656559165284696566830964972812009752681790339333757915770809613559828198920337895099259118440049853422819328732585136149501199893035476524848824048185279459909653919306938206358813865626742141287796921718282668627237347918180028324817085647705675477439980474339310857072770468436520000010249575534023477367651956184865363228851560280462345551709122704195633354403280144206938414762247846690924614218939910456027462040624343155962390905849302296670393840473146950762099764072522124986553122186943897513248519868333576620156044434144515474269171239547145150872637868163113619823633285145608785719740545548178302202972089151966506573871476647117107139528686453790981915030816007195264420112628207737362707653922600551968024758596414462182621759074611086464702109756027437598921992933047772823617390892018353068033138737392911582507355363338340158083534510566951144053115829397950168307379998114982892994896017815701210243253465864477776567004146926085445137403100387357308200054277980315597111571076926347728037891041787857517408876345035193711966567510200532987557937674108747457083686492932995132555863765478647778300303775629807205377882270836768121084545441363405506624164125742321817271711844992753978018985298484817315582368365843374240216918918780372622451424918184500946571019576128650739984609387235063743316514542715253944099730845664715327204631965530533026788848277927355971030195150677754135768930347397053506961823734593093210046763711133969239870590069286028523152956545627888579615352214949783411971585960750388695275500023368853440667748042808818782876529041166955117779558170800521953076680227070528037995179442211380849611463294048566485455876777823905416677860959254904157644706581269612034260188975439015263411372972440742874971596926010237371657810901087882474006118060788696291707531898657917168237398230591092809739965576568015403104843433453292918567309651218209004906125029394205436671882282798009394478133551111751799527428914088245083447733074202235524538107624539351598572559050934793561244824849785625170322676951059922787465021165805631621672293530760975360405498996031326372190777132702752389790205876814326292387219786329631257946615774948281938148318544643679909098015989289960477562784043369641606495760223813620166422612376921196634280546087379763040622937435478466957825650606344872857494409556668168111244565401325215303235921312330488265296278711613614424691084805135105826694007190088536171230069646574525665608147551134960192092760617483072347789352029418633285642207557621847078982451718919556179444954653623746785052876001891098442666739344128960196115145296589851389777994802306676673639806119688919214795703191319422253259887345863890033488714814735568385178978633790658442726202073998935384008757809416825721020799766384105847145891907070156817468608004989910764020157695119181921213667142190696482783699757805354515016939329790720922136641438760534925613005159105044206794765963796780252032391650666189102460586649460883139598815497471754749441525694392320475733760939712431687518691982059122265250088536484802419845203420387883045908780421391422302933840478067049845836975781995856573843049582834588064948666405926463210895059064495975515659005321581761071476867897345772280914052528976347156844100941419462762979155784708723180693971204660486114587951396944277139850088809841879193425571819587788589527621667895679971400817673340150626008940289927079158343234689508840995775146664243144798903323004032953503697704411982326753972496899497806833010697623066264916644073176948737815423577175733904243967265280750253579632906740896260165267139592505673107118410215854936427533582538918356483421143944587555731541033858424694330893007444708200849419234100372308963784649300132615966550002089516987757327073871465698899681338589027960517363067567308582021169836867697751079026582744343812241682132908837902631817424441482202319606322463815828927191274712477042833969191779890316678361700248936131207924964856216809462866535418523240681139792863276493402404453913812138536818252001158672158239422027990184513757556941445347046962019264077109810268168673807154222550137196795951341797789550715592352251401481891867938750183750767062261953285855486146341884587965258409786698760135963846754577653120060404677826885535502036585973953379734635050843111814233845897285496383255756653407525660907254080702823612260482194431612887288187703303772258917698802447397454113021900387522856437321325286632047163825529568935231276451396309399155761005097337487973195444106973089402430495185893268360272075428882835795259150165019434674460038533049386678396417621633784030662689220396710798717393275710186802810634980236000119917614739302235589977167160644598053398857850371547657975713766332738963604625607800304747132403104928716904691589437453671096796520108764367110016379919310404181046524055932525906149125793791466623342663853169194284320615831859822423537407539286817091716890400747068498972416218918908795043452285978755178479954009504289560723992893763239628474388219638776498799502338211523241165163349820927912848191184577646013457247719450013598291901111279258971182032649725404424476525820127766846213421750614394822462749890846196515608676730340895143158270568657174101036967510188899074555444335049263901426142299986371013335121769145684612882991547930178993302783911960773061760978623762335180994674728176635969079541216720397473216467377414254053339162230125838651375179011029778913383961273320450743776581677403383031467254929191334906016900602748454523041095187042211451482114051981591542404061742725984887296037474463383936679026998854890822501606867025297617358127611357255947935311242276528148090421399995200590594529189275999849388605756302178883129011415577617726139899024466970591501644965377905821840213567743843274205492002201752375312942632111329450914147641344082305133714013019734562727203796017968742480458748580633261137204408720622635117341700627456011208271810705390216870354150179379653793923753811353659395495193517635047526213394865780741756389781671368669736085715386022206832952640043357995463797077235450390050963000622655066288241964367356093465527287200098697233473545987241601082666845556660468289869721359322877835809836210806430994407345228925908156187266771130889078731925463060892138437865186760112930240555325371653084564548403251348536030280315110057680597748236086163353790674982931974258190552468270377073875535691747855822620016176243875295604622445283739700468012690305023977403907853215848261110761601885552025431661981532416792883800342984851860207839659565818058409957859206774746909832291609565917506639032452735225866931037215003543546851449814262311315232415090838410649185550949246861913892293843759911950245296930316061172320748768121583185484914822959686443629405072294787956762880628339082449854678727504778506308216100522963219512939447445790298212197984667881061059411524968733896828830760120266489720356867296578349494717673789711825226077887776663378255337849725627830195344316543455849069972414243369047457641533544303407430721231661113326244468348927047194988726367539585720238166973265843219884940005202177888798533647935998401419025939590422455749469828556414072636930211769755227320353615693422083414278914251808317082730579900693925476372943597447399900054592049296013956436468001294913408934006196676036071144859315316300510306692978705369549749297273307427363893257174470950724926843928258063810429008242451411849770928791771444494009136864742322257483394403730549231696901021391339369040919545212186181886165116984715726120272712811106651760125351202320125483641848191505519477700110342603804872996099933697090186498231025268865117755356760636326832220077705626343094446289033888296006414324312338710942019135951404447444956629387836311637379799829875381508821037708909097195583102073222478916510130115410517910568051231763987108109248828845587894394892034923714732312747831032898528228969601684902754958794146842197140738773582148538043488133688924657041012157571092189741580841280343934438186578072193240443418584250374813525327659929720000020760510681264320540647224378533792094827997110548906916609848595317311870106390950496144056982516215734487881013640306629433821730931367193104925216198880193637531785432183327915506089958004703098187961020679791617904935468769199257309416200780190866440534583368657558925336670316008765869107308635552640587244730654792609896598176927619728273103844841200982575068394328263385876639315913843415223944646088945287195058412699930315839479244531817647721139223331644032174705322049836198127820201680677719193837006014729327729048299498231991781494920447951386686650010597586709506032294790869032869400671591656081390636298311712309696243902828138404711552621583649815975147078733265774578790340032935502857740725488183188675353610323165146916585891423420179756810759915171880636680628452704513251231397279076514320825550164669188678603564761258508120906864582294022762519995798972014446675922304305606891718417728199687055681565343487882111746677991429861933761905149395694204800469948256508767581314272456647380827142690216972745896405059637171928202708394094534648430229752309745239374679153267953716356581257216501633485581215696893800709509362542716954052829523641187805120904681238464918966169512163908258901671994136805771160153569117950280682046164854962841886482434215295603174146525307930939370713842293780243980194877930268503523399655298998523332870431963463544874055074158664229630619846959679597769911915271693548677163614386271520387039987087038681722068720208656233391549582741624866390724437131566107652527632510996262237622701444913746269625895767799322965714476492737579572729085052020734844894521507972916604007003654496251934768611701459237558497227019904762871900481020917498936984798857471977634230534723481003076187947266200412097667199090349697670136172772698813698875789551750443438407360866877318900093050184860973259672726973321165587136617746965701503062090737792498561511927542787822422857145172833128538801835254216031918694522789266025240067027754753951502379843631743742264123203221729477414962093669918366545311494211466644625680361086636418790047926294947726554281178978653013687163417606231107702613571599716263000460705165061553372865769924067720482274266059488325491805396936461427698989776933238236211304132999269115791149613311359597355101652650936162325832518497354364368656136116212419097106297601095737136572275829351642343277712379423484210112874014899409672485401487660035270293331737290350666657302541063554202547722197608349168248773321705225858798562724636783051850051789927284257028078427459550981026916723341315567005379113618083401937184246950039767530482089824232977165741484635406940489939987055798652759441767614236043664992328673638988441979476996979080073011325212116454114935152057023172780761767872101200264967785788233101509376382224449449284095749839759992360564095956738111412101085920212060212483802974958588144963170954719955417855525465661053229628943820820761432815651356241544109877041844997367072977679776788211964552195226363236014943996089229632179235181591393816466513763628571024785856718268097308035705520827001891555171111460548180070577822654232247382598484731238984713438954511296835340212564667590626472894370898257117924333194722043030351327216443896994514877098263645768287531580330823491905714386774550455588459198906672015978699476862931764400271426741213901312622043926003900153200611164972283807392618788518502541974837545536660526397166741006600807707011809664664595762274819458727792101087589685155331857066731919665126521680012802112531710045898292323216961237569900642524659029500372585604541442363142905412464903989947636897281746417455627351011691287975450415685543323423120695159545523444871132132980716544922926794276051846055003772582377962273135803070087188195617302875447010551767697145584128596397092155825052315459836050690772068279579103416054895397062398241759471989564024902021399300137171039885750200945262940783285946590500688714530989645024171060145896927827943017394220718642232902342848973838509080380082927260948468968501365921983723177771302185361645931733075202631961770640837837377351245212450696731705086460268925067709439919011580251800345102316271343649271250789334382972518223694435696851520872956319096393035922967879853183215979941866937215821761332040990409830530945713161871740587787039422919415632460241925336630334941485518530880863616586478213725843166581517667547916034493886879201074680192005089314568072858841901709832714033780840864133381292155290701204089871398115199619575758564949673095319555065019139223651073973436856582861230789701191310840475486641907559427914997172102071141131420866487665048366019332452625555968140331382143211409991549865240299430152932962699627373549274254742518610837074871611667771221420137185015415646079811204128453859182868346943505132076382706880424314940115652297467129469897695969251286262970690012829120376343073656607564294288911105351261045793150623748237251899624152900405312879714542735297688728038937574660247231827926509052125208740586447425942790850009470731699517455916811969089628646787763344089259359738825938337043286133834843830626098555526774187776584943974173910707049455756274100748604608066813505556413749390164874747492406256031079650137644295916076392772962822954474866798937414594819163096594903559209172417283525926799537278081536579081471559721499032586510017634809401894219034734272325584272768528498492647754556960157567137490771721509103196306228423573968733161543480078424443434240254711710845507286074498398697239287931403956786643838974961023558645742927073757195544300229667956106350721552447865012380095480239605926625156814552535407588616911653902850082436799916523734351083946977605326781075948127512379069731672764012964970996475004902056510350105287959553874702584961215291002257455849511887680394342694967075604682923232576193978083308541641001532353131718099858687823873678450263451777082509924202146057248026833555788281863128076795124198267243053210377507141419787800703923200303112434786919257388630537220401727514623261344271535490015908422892484066132872207001201033989654614964267336887475995309208057799468463236339682109066333595159698431440241330594525447711416820485453729513264306670172782882449964214804551335424645361689432484742783340193245057566606233244191703122075690986674564782384381307110632092848636850145730465657460796074565906103730361961721583958336477194439900133826340354389203789623569114146856050622223744685174093730975742534027381046474712972518995804666042781084279920323522431458857645263522728718083275718080552855968136400648375073484920060729308316875105566364491889309047335868347362225991032545454676466444944607767350260866457697890917534897301492904761564585121703535457745841554475506596149323694122337315591905329979060184454268042091115742414879420540969403684493292066670427103990186761074293138177899376657053968453963016855925770652353973621133934703323256013081479233393358139272636463010982695220016834403929287215094392334713523372664851184079750051684878632310666729280839573737150411731557789647127144891449090490232249999497332139898360028260877434412172005830474217390243564460706794317462153238978686440343145742628766144973161699219938942393701131755301577678878104790941585351360833774176023089783035274631101190236302780010484475942152117468118240843365000907756998700284809165077172834143802992552304051184484389879171866970042949119450601504493974379292908474721485946841154667936577750611136582464149040016352746420845527655699471521418981006424247825238828589793499185552792490618328050045757304287982002964360370527735491391067199050621572914777338656631295789960886275141074614909462710299636434803156344269327522649688336161755007867857100419444940540427057017725198953290420751274471729809468086069949915970571223263839192432071793978482986444275206971295253934041737181707521417583132364560844460292960643481046168631667601577895470645080492739481719234832339578233016707625219937522199174681842950296225276515409093990857118146655599604937922240300907170307740570363641699209550975685671227131765723801825666797137073922686514311180087962969722350492190378158093253117359337180331628827224138798268979177744842453733310237718824081950919695241548816762412481447599048159950841214091413338518136245092455616671546478468184104250212294925272911622702984914899903116762184905683486238675577134630064555468971861491873357313846034358075051283198071463649870015292930013966278657932610210373252409266406208830556349177092221672955095604784607512523183919429116302048245484131989410042517344621265074446084200508790855997817527877019910125419531465163276122839527642134606825993521061213091710106696995500789214189605169888615035948272876804702205752201706519221238886761288942775006965247895078077725375363235026515901016852755717644753413535411714375410145131982342299219189863441703951538431264484667524595425567603963522691835458786069133356350257101291738951122774125526144617643622817417836418834346725693338012667405098530406598818156519173729601490331419411616560946804691490215808252766440056903560520335873373513318161333293286573290834839146620913019264980600259910276534905224380911526139264301482270153969818769687513142724458445337436540879372459229903596133940753907256855513372842145343985639774337330826018151050797861785779583478608867173953878861752612525334970717537832987022854720381025877984619205370638410597557700642676286375550252107117409886098157010225536658532321791902138167503208097294525391062942191851377397667564561928629088514945013241836095906526447689497564051123753012718910011610375872710278074263346053795232151799102135138405138384764104047816439164257410837728817484701021321109190008081173363876891566334452408186339070372975070271541522836229756836494092868716949790226413092986172447631605205475859293482220038446573073559350200364078289060511572422990240823903304192058284229778231446829463437728061788208043622360708312168126874645933737118214834946571550095950740312785391745156981766453434216710994721786407282404491608590031913420193784801339485321953271955375046472023846067806096055796863384686934785626140951162478994149684844839815545369659098595611824532686051432069175853699411834598294188825278848123743590263738630721377021023282009380979161590091405733476875698317582075679232774716674959424534175898739220454545381299767473853629912009155741454778432818796749275592444541289027400160367938568700949241515558111557988522946861294590310187195616548616073815918094928853737582941777991868740366611456655433393311789653318883668069615216481042712561578735875667252876531838307658834574862178831509295601253404943649595219250492097912423586124930434257093122537502134880977427646346234167986532337145154954641777723357316165789429443966118634805094577125322711860683667570515281889990496033214882712779934353806027856449587950080830545027935771558280015818111415152344163061810740196970383054552200852587260619368831278786824798449188893573774936457302914890833816940266859551851415269006424099221626977237563879975356779703452311236906043701620117842484296656024001268271103644357472641356263875890533412974712107071497157770006782943166139105858908232499913536228206736695522889663349839513966816445103398231215372784582867816777501453340469391511802315016029051690015350580944086918316339009279439225695765102686336385584457986253121030820141335888832444683856326274562632472243625228868425011883558678508797391672888598695637287805276461793182287442523001318086581523628073201354506034490433188805280164979470150374694932498117048387480444125888975486902147913708555813696538623191012763762229083327656138635772169571957727751812775848398290783665881187719795573438123204683253976225713457175126171569637940115597040613012668983656423442650459787602986943144197985601915580140886873345127759256705674182005812237274845508332154357514876798341751412574055767166391409284228864372574523928525286926448443885384610984045586990335933818372910819679696043139153917223245209183587935045479840853656386169528771730240280270799093102871282610332475408455644042091335309267684591211698737205926579456771105817628434438762649716330875222150549241224516106939897312318059696103653815517323170397615326456559215494510113607804678996834499956347848512995231337947316771777685449266729849455765536811224842986958605079930685943778313113273017057045926587340508559596626196763564797636959782556959789389601185942038306921706068257146648719738528667123580968748537398052878578997883192203439551198436271194567825018226482882562138021233164308288209965562413524599806689364726120441794300773068768206131090140031465288252408389230569323551669824969826798224637022983652095542332111383925954214112759722260988376545543328858012092184554347107142475882393318547975856476438033897909497825856327111601561728717433108233534221792333079709567112892029258467497750311220767958969058153288078209044643349618912181330995813425865132423766416961962361216211889557713691370762348183994833542708685782897854796329730683071584981196155012184848198532073844275547217527612276085430441222583990030262972314912726691359032276537793331973026350133329567033957274415417279826245370413330342844251737580327694392668122168619779717717325806808893097123621498291733404730411315877403610821072057712054056223264641277352229288780026877680079409756330498000095093730191279000148031356430090291330023349470866262398553401197215194610573810126794396980542562029637448767683793535874526118521250526393981033201423943582389334927106486795162815361572910871383406255860158412771710361451966357260102902415508489942732357999816279786570280673119404094138266358684369467368506768065414090956399523044288021301672188408003418109313819966585098050093847927422780034441551896604618718468018440948437672418552478169465632314967223612911032306469978935522345373476788227268578152718337228460529318704280023885685177146348404994619361900385864906664248905868861547270878780651464357105444897528468159614702894988172879890393132867051710015126114512541198038089779654897793456027732726947610114428693975335441147792316117028119868198688906345189294136367736150243200870847324327407037553852663848384877676002569824663177815570430163284874679485921360183866974826758032103500757194316509602401200446399506340644065713670144689502885371735846011628092418620496738572996441792759660648785820524413304185617428710762369070530773249430351077273767459300850689659178340223759387205301857012878630004308938516793039669631170561607140176234327113836886823709910264615940896304786419715859209895400808717527624412507654407116943791482872030013921258213241225994024456375873562413480329072147725241176197219275731104946877276916384130329391529886197716515034347516575172820633026128204742297216791912548007580541928087109837484939451058061429566506822168593429753499949066220237547407807261155910705655794718100797741301397243004610068491350596508673882316885111257892580005847246067411700249539547787362904685576735299118811838642293251548159897268538185888693013830437618193473452266307503828317433422149293133566079257405749982668331616465453642683822432499863469126740118725659453208618451395496783413108129693184421199976165520583554577237557237832909930990852530794017615691652532314753203362228385642616349481245748446832895380955059923835329656489867927945099586566702554525181883335789723311918386029608751120752193827854297608967536712142673152144665624360039640967967467243703007548980916597791439193991413213327285754293336250479742788843592229980770282595303620397539347623887176884133429202564431237442292373685878736105074811933819736860916019962824296998600891635863288440809831738741828746075632942642292758620810479692765176615132775840418297504191335096565984088606589508142599757121347851828178693096967999501670352888383308185794754271849576096249926287014207065015698713495955855394923802314656125509439793557956932008184842013965299896997104883250444939762283567015046057681514491324446948113821873312761152641691257130011378191353325838292788495196575365109870613322836730258529249729767150525165810496634363113624479234485197634808699507261039503129766957223321227901986124014336051894208953703335422639910875570137940875743070083158235594914202269803158887638816801557611271814400078719016912887039203358334265947363633833383943853810482140279989015437708165035106398183277159148587191750821545409911648332796227736582930464032204007398392366709595987873467096057716187577406853238565735790144547409365003189327634638206323207949116655329915871241796620552069771152998191315168072148937653380743816765489258067807640052442102552017464153090963752427014751120343962133461937034504926463799230993597536143330852186850694694552794676891904310028631533635444993459754066164862778218368192676431595086110445585392278433383216747803634704802269752503898131791498440602164145830120587903099322557474883507338735050191312746336593192855628531803377428071569352945348696913409082535755129816087226903431068923956092034813149311668235316150610770394082891141746458596086536992679293580320513030482337283286514326400254128357900782088496191683059033646456728027081990487367584615893321144350979904849439889987096799183724089169256831104472965984942679940358361225186349060337116064915938981858932795091258195136085940626632311211829061383506717862047337791377388430193002072669321272815026425782776855766469880622785613344988318169619606337590670941779800726498833854067034064089299954965318286419211164692903315826576033304483894016033842551103242254744867332407285447107609454806440429448456805132140058278135641879174074608856720557995963152084583456707397144372236901676167603873834495925267321117215142395304571567114431567905972621038237649631773806392856312055532268460917853962101111069499238253407027964557112111081962730109508259844372708405406498507920927556586346232906791663079853270793083356494334642626044177915899231335131604704016044574253966090929702226360440080203730630709695331071070585709226960495994844955587945046108128810837201802453568173398417043539987084282380832812719688260582200077288589917579696024943423677609056771797055467191981650523673930828926513521866022523906293821758610423014089998302090201446875026190746310185709381998336515247195748002095533667653870561961768373053603318987865273424753990844266698295941040623162864789250749684252542448919419367097529629934887191221761905602443058964454271548195412440214702203527674672550789568084302562379946412775537916992341092974488677895542713419230105823850059322958990466640333938945280290273720317685477342062138710686068480726345496667019413451429636349331492795108115716786604299613374914819537971878093569079896627619077627069930201961250232778255392272259188944660819284531413629369925492997710107409597487640909648060754848599886708623008012841507454206253406274341749294866938759461419926603843225698655826480078506506592719277261317078006447974772735452841746724317681441211211600733175632625424984457770484223571980119440118558912185038912090388524348478393884073935381264929377726536515314736372784055411479502851773003599432643417355946763854206870199356255494845487721373442815761613136161880744315420204240795825765636816633889146868416932024421317280062140766573621981781336395554084254819966130583272702253884370598023726473139235229434939079707291434579003246658220391170032445896809946448646536048036880900785477873718880410637102480504281569898092113181674814215533085975371053768473686760576692171267028234956470683577751752613224097967927241859160199732117920452664138436268186408194605571927196157759753479054299770458796034201902738804109879773253777458104104687872816277192526898848500089425854883978080241611393568601261478600396783640207027516414135662607746270424459405592703886038349889547566431406744244452282007168521700293744646684505856330572726830679277848450163836109401016025402396536343088482731042353015096240460801359966427704184364353863565553427261726145553956990023442739148887152137436386255364200748814391699114636929759748761578711343122852465039703825166816557000819301737028984270922388951325594655513304406773033027479162461092026666740474620378724172855029346269727154736232250814079020518631745007339406477133753201347167945285072193503374656938726503376910687703873610783614906458326894776944586561349976572027332116134790353386471993394971234305791647641997370817888005035287986047420072629968836970233636061306200093437027012751937974227020211303267962700347283592641280480961874768340894894489232659696494975919039724159643522722215308962847895312928679603238752056760231246676167704905987688148208782073707852083493593094731768947704684215445111190209962017112282729963404909798516326312518593881972847268028594888281719248803393904912061847534829628235868229693551684709287547461446932901681210864162736007972899298933645839095936356278960942055715634451621871565598357693353034153393559181470608247644258782074464105953045984514057595146193543481350675715707687405611583644668176549572028642396968242702261891696765255857417454603175593524831144854099129689540713098548385419567516542475291500516641477097140373342854394728540659497459073011425008548118851580317631864111009747883667728342344867220337528585956812713864511814494255786961436516203938491070146224407934771793770682894920296757064573921333835408939543958052774836808354567013984416755203720326730768562402698977039450886356004978409305114660329846136231276109619111133900299429068265275148774119600628861148077130539357641110793663609002908698904370299999753386968648045302744380267388535563253027183855415427654642911336226007696593121437718457115287625172476672191461797279890093314989590804381778399607850419040013670935442471791248350735853122822679541207832386059868632090168700984708136990312587158364833917509499356374782659385263412959183332540278504103640596522293264066001324847623786488927743200321205618395812473269897793301694759171467939165814161693008839631589439764152943657895041830419424593956198115928464947893026393908676169023957045744528905680762125206876518574935991672886494214931462065272070009109986776120267963256183912286356239036251526833670549632364382376507465432095394653697006144268515365934818407455236336004412278446796281331619726293904675587946792156684318499419523181278179395958646430268816322480999235589072317720369279902807877249667067541733913573566487488941443028887373478839659474017731038602595580882473780713635364324501322665862325935118108701425567131632739829036575920912516043978212917324003363935317136849962083364539006177761675687383356861749018067406039515691130878716130764740812752485093726203776635502713535829866510234784803246281887933003399323881036940906883411976745069600156634600751511801318905924176884380898518839972369234441105525094173515856144674208315667596743795640132657634851698384684223966894837131876366767407209582216805791060529040638992510765367438245609822192718991624524620378742166123678731217690919944202999929422447791711570182132425811964209476276830239313336553061956997700229187978681870492806248824064004251786829742899608005406266915680377432493599450528769878231566704520214013827296112355484143057559198659385604356042815981213097859725733033487497586481303877372263781092261480352683216121838637863282849894841741212591136162521729381150176669215467754731740842126840153214885174993726181264244475291148236887434664716102847227939363964522190325644312523030166178380850617129193713761049135609202684256445401283012741483881337919430683010796613121464680486005400458244608023429469367802476387274518922341866302358125998797763703132569961927242338406413942943575273584624300605684784520551401660028751574146508678848922418224387142076944207100726678858868065168035306006383848753189192706899395295914293792590524789159052350608514869570877725840017468796978788246346208139584697198938611795171638148485520964432228719186953700234824706146128888648694743198311772906645949549484202008292289854431756474215132669788497444512734873849888508859723556898742933862402279773767914609405837752460077029397765962571487961396991071658847825278278140473072216877150957057078270251504777291292323686058553867681733658343094727893491909828522059321860676724478152807509357618561022043902904293058301654650040645804641217323470670191928316550996385909965670623553404196443659102738354753587730134760876299548101321673018458838487727946843673133993791842268965873198740348053779007756246171889943184049170905870726012145208527302194214023222039485462265052470185080749969155829066649399637884196954721232229400060845150337655790476094922951918278767032889598766524014290164069665800429382303124651252147456870375201059374072934566454263428803246492305432770053582903708780085502105642521825593205544562556447954376281048512726440511635917558237957931553879925371159241285343628157896588857975287877393206547716703598793665729727291891257513852844865720516001805236673139298972807937550556271162346196143950385101926941329095517221307795430570212345947050511246632333202957705116632666437980028860081795828944215675372448419797860489541256850846755594532431586922434366743037061477308364014971391208222718179359361894449010409764985554552759212110577110038589518289653172105874539351615839979537926054014713683942622561315734486727171953556425968577094003281959499978293973498446436229454371627496698999801405929274769581208055312529036100110758252550846173945298905748161079552189291128440427781300825280173395607995799667700413158182689824855527158188637800202769780931104419727040219205879575862956935806509307816644004247634490161399264733909799308021729150081020417320809416638529767286037349352279297055161984739952920837735381325231748917068114047383929672816853927539049942732334255986167513774315811509951602725623739511820694624676545541653727387871750590031708796565718766431486082782999827846713762857803904495209341497265389300577941137091490910908005503932494198665007591248185759160745567571468103511253109415436959359178883738844933472670753834601847213250714811189741580807172789997672616965959076468435989751770733143542462496387624826471807250692927429040332623573545006348618180422741102388102273359855804722416688068597454231307001703028431031943281821229820538010320410366539971012780243075295522166407378267389197225183907496313624438275170537433671251991148817081768909957960003210089704862609417572957531895041123682362200124907048117249602461834198235110371910958091817920605509676279211154184701445705354161976346058897166042881799258185476377260507932134253145130239264110293660197529034003150455705747544857268013354142506537657611001498976863168621399914456027879638096409654430138799651028189970837064999936152686349697910981445065023211600578020382014557042056510761848909687243243904452481570174944050713648703157169508581752775002332930528567145196567424380872695346749186005094750738001827087059881686977366648095611355754550311328753453380256933507352143286448682829595911688775219534085462950053496275948390621326561431948248510206962091354058670418889257261602677788703027333828009284004935340570050043355238858038494533589120091300065439726694342817200084799404662802269538151924626664930360120429372910691262697080521217373475298925269615647013331524739504148435451175187775627557581561749012783655734904548014687439294058361907254517052056700498168219780201488577313450452809519778968296671708533856000433795282897830831913713216385937435121076409557936578589011196752851962394400276304570449718762009973393463805147930003977964410913946990512759703019821258316389894625452833627036538056979775989676656884090310367300511541832202868825486637728795026609174099703345251023157594081215897080046476265976741969232622460260903754782334484715972173510986297596509407287603435456207502505659967219113778087835037701427686441782955494036457465071908528021328878118669816336221733230086630433489378158397989805812155616862988596386013993896885705318992787477385039030710992866005140309918113896898967698854411004083915805519664377142483250488146567800741771988580607550346546688709889902426932262675638750178545814805364558996105672840543865871925679399360820752885491565162500469271778838746874151539041338129500782594677344113204564627752672647868692033494871746648453607765642631508733855176008551486301353452575308625681183431677137654245702325606122546961515593795775826477149588589272642686867138212997766806453259330558517715526903600725480571514295286374076914348473981972386828789245430482123327672678999606077180766938899101285360717964219677355922059648610529503899684143840560033785638058403968388579476280668271656594705206542625879670007225524544003282617029852147819694465199272635583351432611281025565855202461943171153549866481913213007869230268150237116713168056148470120870270691532759508103871271809274619804594658148195243374878834665588597575156757685218558977310096312736991829239607166760912707800797211347183330561639062461791820746404820132597061520619361575217203935392643206670158433381899406715538628021631934729225996139725726198391462816355920071966553795347759022858126508784769145896817230527645603504980141060735850331271770404845042393962130284390622494531341625547987810355908249616465955423922974392927144743790196321012555056928724305560722315690390178406702738573669139802500394195767755231785085232109405397740074695425941522190222431365424852229682810400503515363483969758283512388744445286158611661185826311567725282760869541072612309944192560328992616911269751718608946722574782928427104985117084199585893841377059194854850695704175625084951749983270732811289579481507995762599247155850806723572323943971626274238243131993992890372361600241780817868497600218409710050816116323963570533094137899446659511884045702739196488563985955137814673197762411710330796848009334032403411961172689692367734362250736247128774445504058784391506319466405602306864360387755225141927101336834136533500351838495780128582843458706776527815893461367851182012231804819943062089417355322455572725222388844356116801924837122681302813643049635898680809516082843092164179437288504893616361892649980620349047107146491490294159005229042902988640731264610363303132571557776226284933530311953192026154057338752230967820162692337355919089783419494007291173230582498321711691699704708453901311227376881575921826830074570659349083998246113058381891685948784839120564847443629613819045800732678591950443643395390678376877655619037084485902780820844173321834551489125050495935343286051599267708858816549810783098382757422678082489129043019534295063824379744669415501005520339738458758432791736328855170061878763384009135420523870000537570405632093093507526111204946755701036605157751599326753195584498887266737641405478547878167466392913078240426120639447312686091392286983685696552782286886767635951122329636405054766997485926283562946719658874444878157889123236234026939763127641167116408838228806194571755834803124359652786357484820369224595114803357525224746930930881417756855382539865625305628900380353375294619538309284425837406781521895392437641988474413708556838512147174139865548183800588179271868593073457088888134946628482632783697244612398407111414243025676519029762188873566076257314337466237096433969999239253607022928384998458562619550325487406340502458752015431705716275418623249690920769116231347960427569073193876408055596307180516242297350990375068630651263711147429729407046851253583727687483345874187833680878370066130149074279966707851763065982122872180337218854882929000854688993596782452763386102508613663253044558927676758372373685829067966464671512594582534553860273268235670751819142835932759336274831118503302062710174257493897693554330387838213970171318668471831688224452659053019523824618992310892161494012236033416617917054608769781709479450061372626460731133415260037363972945785033790813200331074334806290604935458732792948473907342858015236756704964494552696259086606266280164511634776757307076613659951563830036010554494664431360377891025009326732150043310758679440303950757298699146233991789011074905109336164000138721062342568829280024625496447731735214476397685751345020831912101243447178591385015911503011830465158650331892180131601697426180585306133856289017615649722806907274538511266031636586103442906205432578573445274929871479855301640189636648823297810851609485877849733913379529987396866601421732193731290067216776248053525119833119517632123905666188794836926137039111285725039982220099623701375070315017352039449212232787055829592030283106392444179880887338751860295093537877129193529564916181002894946881257611080488485871143253941668025807996572445830535859389956577718955885735084351368307917846963705536304401689177413756215118062269253984930796546507676572855271005194368929225098493151605413230689545638529960148995594071571415849375665299541022515354745185462508974312771163121397807548835185885899018286356107299216018393527596089418713378374799051743837312539309660978135583015973634724536932917817530405012444181546503307432366720675609102342327111315176360225873368573372340104035408984501711128895576087042854049221604505230521960242725456371216451664528907524197876924251831552386636157336350563187425297458145584192608934357417313542604718980627320134303667487700043858984906444802228587800791228019474908933946202789819032007755266659373997065863669353723401612712246397079180697658950164782979704958967068051040081067640991167827098831317266186895865894039106230031305209557051102012079630188262342785768098682941487972932365872932452961671278277976655902092304219955091591427348261791179595290594679984020865255030759900014887937204717926798052432475229483288304607583941942938154158959864491412794269914209642072638164958703766437897392186265921839640721040889166363063013102773298023973690030797755432813586388757595861250622512468476703396852584454381030057497071872074455619368932391973899936334567144259533955109393083118592203744216067092076989448943198462993870772350844947226675485522440448008776648845574786019125442157984874750214543431820768371697686383535670747081908277107785827447729229294658379705190916919682774911908552256940000873540030804814164299918189561508590203654981966843408409815499655681168794366349734472002360477592376143490841100535920885989787904355769573592831755898309932493851489347156395075350311676680836898135904029156149037547966770453619620685098709115564320500174153463801794864288250075151594030536531266893546214529668550797670058804003456040504318128312614618912142822826535272026090940493679571735772373734689565943056114507079664495482758756225006054668874949791372222784505994586506250935282186732634113941063896739657033999105618514861537194248364255733663748326121922433859916332862488612557311835097919919500240247612953484647376622550591914704060504286558881485562949347943607821268125867088173246774426043613175469091134441266538518671094450407584170048211655320647913737436429866321572764694609483962836767201859825535676002708199617370204102619383843072603383732222474019288847418641431427699464345821160514488731345137176179639164290413026090522773957882785221833591033900611147396024011701216748769566893082319558182764375988504046683284951335082729909353981673952917624755922732845717394915475809088129347951337562807564208981972099503345523113478125936610854230803944970990263835342381632911275446787095104413262974982279974149376269255218081006525337291637133109235257705872068918379540630227434506540495277310607319807163292509692746653896419463510411427937827948155403074416055244987875117331718652620764248109590350484711180769819156105921212741561017544976560134323765028284808783634575799637217777235432498823110405735612863482939667452184800142298094545871369184126152190603799427871752391123517029632807872206705256325681629431737069291479262259265383225368481441783226779630842838723247208549315552221224544796452630979356327291722515569874517840083442080978326552054097511880592364615947439345420407576545287391369692493081147427808585666898362968060987404186927161539031546325602917233537669493917079581293733817893141259547350011149771603291153892038711593953320228660540552042266304240991727648962473368488462916350291773553183582267504503566345766097865323003112212223718012007647701532636145398759249332454664178475362056143336651250374125975031945892823611378340864431984174717003137724704760067899976747187007214206426740675388390492268625879035644059234219862810722392569932025551145225652865933955855279501274598636433270060731984161265709888705330131125467936484601053098132080626379289798746893452629766221864956213286244655009190050138145490846416878042706453455768282105528951042583602136268445801607439442658539674870369925346323784743077400214351586134863448614989350356937115846384018706895331226061172678775559952026919841247445639147969550559540287874010926946035696032500357819335663069726024922612576565111088385820459159022913851581610116465611005847018204077512549603752186765680864464127167355233171773568476993290331529382813812741667275591503844056011666841051147251198375637194041384353039620904327377921908820651656013268517225730456709448372720929954864521398130937852322092275431622976998102488514619688089709229223147208723578510654710226244126401187575278453869862088854549642727321383727164824552136588986413483223697811360498331588580406335478306712903363838686873757484907803634428016452477166537292155735598929763943740605189360127444483893714589574171937135260534159567283701698280132286260159527095052064761196170610111045230509187855566805517759587282612651453869258535995160173727964391610704805787184069040450529014709757012750358162132470728021304176439752587557932081268748394610260633569986811383641634472814399624774819658476930863792591353254538536102025419331310502560824692296303871937687293303097708206069314490843885569776453416914443492172762510326488396771854836261659386954565614201041158855974255952608305859648698681683361667000349125194205985870393158374799791534220940301976089923862553759604173192670654401159405677775564944295102150811502451625868570623216633290345434364408861012596814056107120830126942775842563494114417121309241832286060026131552278506656866449261842066077062614384447003180456518012140477950281754304441108519001638852329877517900999246845503968572609742132172364829096941982784282371920461836838347274468641519997367191927261507192464015565320731905579663866351862814424645168444545763372481411838473305920177914832794069629451994180770639316452881025320571566900076285562284051324681073760423425052377470428303366679332946273089434431446036080144741797935045761071077413086364209552081170300161931908366757075264710344934483186484765285391391493579861503118452760990822528042285162188298465979401236129376295551817366232448582753050068043057725076083188330200312414758213609615439292126062015370613128195202097396193380145687975661879769926582823373352402400337034057209408978941467318589386723450161428940695775246565240651095453963716519224555806752536864202640125957276100700767227645107447911843283882060846856646341948057084071978778956819673661404156936313549130174233406166857965452173708431371196381323616651091171163584701746158816997085712516801369299226459470517482610044891383611485234427892598114351857119419443244756116421889441519774516542786756831419315660328914027852612416022665194325064457254478048855785043681670589835375570097745734716472882843226609215138217160943336501044412884781753824324687948508156467384948951736888354500805589338566853498131164900538478988712557420591683892394475597488507059274634576034653806151308687016480318954154394101205000443585695472946108733568356412928497376962804536773969526327041628668735379534192278484600030956825265066707871723962363814750850781784461809420023216202352350223544472396986070146141471881677180012672744544917655615411260182862677245354289744172491767034854266308494689238072081274527290145991494098590484698860218201819675761232600045496977131120415645439983175460038829027111905645687190480757994605998202696744817110733275909099746504039602774533489864083882281489430957628438813317558347968043816855101276106240911779412810702844534950920818505038386798015635261374888823300222306995928323608598517719553119320477755902373576812748158551498180595990352499066789288938787127113443293008422061859614061379232707941569054464288735258946352492673039509127047281536431360688063689962584730108170066397480645929929941391565174950413184815580527958100287326662972489299121535983873294787240191370023605030652314916904319969745105373299962170574222853370139503637243917374218921883562118339461649233020196532904911581855107094642749179617593230596877145888348432097280003071026361631821908278753306833904657708847483680866220186734700102907784205007317469929218391719147506807754768152376536311465544447345359688134592945534601623657159997064543376877628114724366992901151293960820244979664607797247474313570487149758458326678387362375189238228046058335649487254903370573656562164593845238066881271726052266288285604280818059141651700479600810096067172685880458471321905555641772437306768623020404154443238340306830896891620019365262745796383348568981201589077486464467507593491840980104954830856868426127026487740067832987726224865356922768340309010233344644904905319270702282799732478240512849106933618512916505896645428239246999672268162462444977087914917515954209113997243345489795008906356446988266194195219826215245159232094651751523889781878913220424032247726892921617923955290929309939601352697172225797914327566564217602644351636361221905464260287492171107231800488210816701204892677144470931973432134406652499033602941284710254764034632152231416354307333013035295971687822166522554736146798226792245290152579048234702109885479483465896559157653957957824572846958723881493765673320346980909043065582329628843841891463038158921315562145797770084398488166147384022026513425081414510417194932017080435008206614933145521978475255134376169854525327266020828741200744526755871279208662977606642211870086309179257704102995708527537110785885280881080635965208221820243989808699411955562986294678188869656154637166512363837439403751390607403338003614093395442586019259701646579091822684495475876055452202989782436407798213305405420865419225055755344599665909953463411811946006935010323337182125156236372671295270857625507747626748439178762547732247909193286380453225935405485649400558548239770249474834446651793398372523909079454715548273718821235165451315938311690674689349239752930573031187718980239982680054649494130418450841046882210693566640507915671189580902044643675245152697285359031561402292602830104516978881699449117546775320500168620959262323082551051274703352646267265222033581621707271268044269121945048370496920010757839558473614449804392485169014178677032818167839168540854660640949751998063452131078789548526996136981362921623362940941809786850988097280116330708641624470326938710675504620037360540196437530347219271221342166303189166335126686889074994912401410214460825413783781218747196980821703684397186961441087118701603162480922421159184776508355395170707989005468765833654153778972740765015832291082616643344774460450825126497147505194278649902340427675801115946715860111202235777113590017249804187064081927099202216139619254782046725531028793466120882972979007756199634655764216893126951965459047836330513972373988431529608570035979737852918091543031167360476981793063038312777335955898597967508344673830240240466049337668299223106717614934961282634288349500534721463688394841422414510789988877725239314705687469079571239186070838982068135431342110340127242206650946304284577481839878273865804589248662694703805115718691958468307950587244448815727566996722113409293415389345774343310210913389099310691111035742598641026153999089879867159876709243983755335591888046729745942542307892071790314575026394661638894282160934769538133971049991042426960423361567621273315627397971379234689472027384864652778701042639497965800986006118295506381245337948448202343043418683606001747751026843584891086106057477592462653570790835221507821836621061212149656820133573329240660365705459986930320955936960839536412135183653798988095881334894526868805432705903479194300224707672129402896514322017770441433243755399632848902246089480122151900144680677659745276076803431472644128596203900038617770267360712190378175106374839728251305521893528731478802434643913893561728360242249268126963643584645582730720531197775791235182183172854321629281946527227605511238132885418733915035424243684541212322483559491575798818331273566088449627863202251568482527684073732245995840549710721631568430110563955879691245971355354733732083966393167822249841265013769569566152640479139612425113860579179585914340543241362726938274360144373229031278850144834828401669110082582181677193505379009615295652873268230726474116346934889781071258215754865781169037415805197900252478983183514134153955091475723061384565647447171411863015311003292946509025371686549730110684359529660359291455721421248879320222898584300026981070893953435935093172907745194872623990140951531746812675021618850783279062428151164853101399309434175813415482708970651180037790871711007338557092663369940931153610652540572310465304914477096725757551457490149616724277278629972862043827201857615186794990105861946748259465332023067961371198875756468042184845768383231060250091684636983056786206682810757006357714981488730033802519037242438158132087508860624572460621589791876904111889582314307998939983361587435956475885110104905644008975977591912695116553173493652229070583503367726218715541303503086472549683134938324420689340471376188239190496721241436650758602490657886522376020813982326858325083837243598421625766871744288862431061656171488641901781205851112103421018925673968539518024438581029051393100530928734906390154230140610046097712086033767669939854105069619824499126748219709003697987546540763434074002386277767717981345880744749074700562001456043828393335947949757163217403179382980313831879856641523606906677809398416919390417168958370066102345756220756565925128549457202551529170547153072097552568551634697942537711279816659083668286316900056345317832914851163774670214322907629698662526253290030999694999380681418035996871265668707704800212222605050076520418805541854183973912320155865016957245766481935519834165134350115398970590448255070614314771399272927556016999535057785472977699574256409327920894680526944364464780955563908142645107686624545181087998483383776604105813524383915849642123540816555821147484563563011611365145026167007973875978172678828529489691188059835480368232948915478101440815245860599974254737939678039143220873601395549141415951332332295602618258232548542793933683446271614464002972843895637650967517891623400335188888846128598265781353060759294759711280253989605199698845736250887366139096881356286861585683426707723498056278427749921471529702517544431616785217934708367901846703936989832057000731413036257589747136736334006176613201923995760847959210686711349432022535499854638984835582297759615190589716742129834069372015254343892576944458105392662011874187178576969327519760611814818145773049395559040156024196621310221344202743099003758831541668058018539068871713336695574826257382780617900724263062533362667407688222643015672627333236365360610662630401720030476459032561266941338333670582688728529872363324093024107350216681885384623651975468905302633858430045065878335792489331980419351715410996591120998182414312435344168263943482809262103220149856897562698097183562788057090481333206299496143699512719915462914943570769136171598021591721237195205130653278091147026146268207480288777919584316093774786022711068712323079928216816086368695640200700354821106543696648105214427239783255463303896060436353423341877748232285280348847269925287396569143123313190293228173931354677677827263138723569880918684456651491955730032157846156257576512202602115893565205159419945669261269263645905498617876297670714797359205346123584902518373381810697598815549305639262789671479893203445994049085667506931371012522265727675671383966019881580091961280977137999535132805459023740965810175773312010479229833452022548334992473519916243737257961789503788184682472101394499039972892606271097277781846356680340105624872027746626713327916503715118769423882306975303293209449868024818869581477161856480438723582619627455560283960275324911298643519257652917116000125597467471629454697741582857143118680189883092864589515423244020442543293828096926055940688638786676706431189889279939430844473353630321043330417735355458807280941503773588977147709429591111525394485611309252546590424064907954737980918721542776288913805732007887798352496369383005023959981206882403050152740504448566555741110032877673480240527323457279933991423461802726012370590491249786301675924044521366080839649550868696757199596964035842502254494078136804093860766813259586936860102115930945401001487456522355634255054124316421279678754406433582102605858647502288197058839171437268511275587376119059431764228770572655301346533123662927078099549139621321180373310057070034401832507397310904263822556442141107822400759368760566854257358768478694756243840795174498317372935655699609900781266812882947381524028117350163652415874036135494222577207098734337491380010970483363439748261568114956658050776706996422132082961144684556191167439685234167397899311061506481955302819485468804506412872164227128845331975997167963601887285501937611007309874560957919951155362506447581399934909231935558728372691357704190429966567727879710293789071264600787258513446434364191246697386998674954334836083386186545333531061683978378408487190703448690990418478406085398832926876220967230424604220077350075264120107785646528274869946813992650777373189320623065128561415970657067358979033886533866464368636238264610623188049517708286398351173153069422066603030058416904569164014483588199679930362183292520549021806048301709955760197022416580335962894596897806315742194477994494957977899693297353290825870509143841040330005235220932816788163834478824852916220564895837873545690729667399548017578490046576274378011117968965312360637922938031498907016014490831168889225238325596118113697772511289761115501521622500436207421983054478768005530224619149417900018377633939433544097380650272498874953003268637607463948848733552660552744389227057513294259257726744054589975624737288882561502250928496159210319561552625427155784519645700445281167887257732564244103352431116806234803795319356028409078965607428851300301690324658556699039779750363445482257447750982841846266408911282787595396881829717762228357466024561139682670480540328923115412238859584377063746922368829207238673197602029682184992480058385039542972092483970131820184948182269075065828062335740098456961110010353439731358701144110569494710667851518762511598890782180189698979896402838923064352038308052171856973469852925226622675751629898273362226438518666582925861028489086268783723609880495065671407356023526945460953209782531914076536828710239986991396009655793294327545190770901125693449275471715128620843848770393713176859208349520361585376944403543752977635497173757198292536930163464868240451282584542131276304463640974130511141151299453006072623261778167509796940814066666266566645938770754777748489902724804490913201395342129463374552676973994423672016615634474694133123407382315861908217397095805290493147360909663150297754234761155356096624927804597862408041841761611527375351429433997431270936386304860890614589803017367548257777577681213925789745659531479707300082915673066555783535758614975617050232812327594715700486016520938593246987884714941756633361238130583866351055313063327627377369730043732635106065607149572700708702136618593535632247203617880389158859541738358458654899369169453898893808755230968158308651980370255209490899594023833655221580868066253395853612639165912512938794718491462442365681764964506411908479345509191425119278141611748205134768145172660934533291085090555851478627122616180274087378251434679890726862262025043276190601558417233419167048203032845404818052060263093138138431079272116754350447294441309871537174178830536341050713394422745979035216762881772340856534314936426263839139533691855722907027919313587104590444869294606388984614843706639247567522909506446681685501825659645750701673705130319797026687619151294836545148594030354170226329665562837822746263254103511299231589573506853149997980624259186136072219691952523766346660776614031456324356437231417669556291010725750420582619612586818657723475736647293173565683165185142645776908138395468534265587957127491405424797587104469197294313620088338903172602947770739653506356186114552273711126358936563892722016655157107399338299414646122334679866450566618751801635925704345802686671217350858158263098356316239447901441325479512638676950513445721627482538851346244205779732717999219079017288366132416713817872760959552663899095314423874672958977502746139323633038610306923335974583403946987092576556515488109867838852185181900212592024536759262273303793758717659843811010352876978939376867699309553107538028532607490269742832179598227600201473241907477052975946898149845436919506056315411734346977768293593895972105737348084599973704049252883853501054036991566028842217762126453842725427673028924625995640237854842602495032431991829651981523853679962807919969301770790914405377763074459221779699666781754567939845032906499390901971671341577670249623842449011991163401038693777460120503794885389062948510867744852286233942204617764987374898100789151020744709170452807062069827247132671563327525714166359026068713015317479086643891735535430486570746234246629427377855093090048839286850836503890945848257964376492016565425860793516831782644705414679112740934884830803556618416120277869062216104357628247241335811321380806215314035114868966268081925350010033995615328171436108699398326181223459513579674634611391757644696945196644694129690788538482192755171465069748742893480012457525105834598809720121618739139345980038395475173394752938215951575648215106583979590358194650111406485230785126255571098689145959844088300376958713459335702199517761801667792038822838160233745548802343364481255213574239385394862986065451084536619635638092926794974735171032478023245102218350325076705107675412016972059143819532233335370686195266734771271649522238688277330897322596128288438705454871570483115028182503486468250505258242133785342629455862145280083409936316848903309131646321625516202977536590805645495525556906072836885097871139412497313954102631201560978095775618827373594760661716537558391904855636144323901451338157171976471203471887572195767055633566568263681546724986161366629165086640458586766079915967378455818606263460073727649078103782045996577011850054376109854227347881600690700925246833631302571255392446881050091567056156405701998230766348857450631251565752388181059164768627438302176496996777041604898034552153329938740003759315392773229089358527972390053682796609604342136135737618877673139430975891952825608386228784330951423239131717343198636978391558422621417827500338492768365413029580343207443950681086834919263821991467598970487416530190804075348156705176415591230557592794615120707978365800560808195773183626763579740236907338736799902613257152506158155546764542892606860288577852381530074311882731874811606867554883851019410526376677212788388075473405937733042633177275811889092594150440346310484509348585052074224782916708196077435994430083798015017500910806231846442700201542225052945097765186374616627603594036700147795704215963850120309350279420675028755155746039190297754980456955314992477287571355845608272326946223431381823656620935546900606316073782680813496909460983179673225630388727766821384945740123412434021134581207306023158150283647896015852269762576205882217865648230201757355327789621066732403881391938148549429891509219839541278396327180339964171075965619510076005321521893970317089786393605056891667316478389518053248234050990990445076315069814963529821862193449272319040114517441655176244062953407061838248089733480223772003193741990282668570556512339126540913996192260797150460463969427112203209431025802497647124713941374005998061168354944780389080946854429104010921914858389637748530033387442186097635448087364840095524899612578597346797034187995903639056164843881028939338371653572258016862289411904784916669756646075216342398896131927096152557648363217149511881305179112721818709394859565959045239468614497528763366691046823430970614669716083907260381541456781731738621351492139854723932195897348363671232988917498745947675331699157010838309634688093888020122268053564452019419198928982198541744273186992626138519291548523454936346962713436458624459697459788020662357057237229337965207283143733771255388887431274979253801121787415311233688508908183037317238338551063802229285264278047841794073237542921359096844603479280492643748111567771419197072781849507076345865052861287587746890190918386017083389545784831696031149907324936411624932626464150126144580781056869232732335520655259817790778311697560463722044968923860612270559577344659573390031886341585973100501029949624273502426985736450100756705217672349697901525164587347649081012998466493977165165319970168497027795364143809619805713618160949361935115106666143545001271493636982620288986819545364967444235095407653049296934668368384257380094630462981681600714772459742430288007419707278474137952214353355955968909635030068708583949738559962369891745453108873721228894803302307365124801641817342542957423997727970007561292549686931154819757840977753751216934855593275893088969284665151633916611688866549581917594082528788953815465357656781747478773123716111483013716442404791997374936953924434256908782743104821466957312357248477803323399045406239260300335397298418258708204789800310851806745649266820424490535324140934544420090796884045227736719929684355965628835540116103321258243332684950460376597685204046054088348607343099979005991246674955854610914117125612329825598322094552652321072980734263357118759516553254339661071098114759568082035700305665262895894296183566715651076075617443476920286185361216535300467993837551538395122671136813167396350858279279591658065477050837394089927469335659529945110904824414404150835358218819675279186878850526689614844649703723963228414540234013422679662998952079456096519866408668686268548687628961410268742898824162754504761486623557654285822080555318367007249433247383096468384198267790482411438451423358496026909831259482479253288940239862488121163320614134937072644996555491952722523951599830454782106006969057367953242697370825262378616647490937607310633199642387790539798674209194897284080592384438309931990191471469754399349871321159740109910200166131566152266625847277748730852338107595539333369181385254398921257148340254030001709250728764111737195870716517401613316061236842237519625538871061473144791014339199110175387835959771152372679149078822196894214845175737295072868872412051629095705904100408965211383570964646604999363532445590671549727519231603645282921810940996033396214749126672806441711382610688534525300455007805718566753751325288995169384260142941400606239580696847638211962833408739633523471720148601380966249495347657438124176557435118927635494949988926729955129910956124306364401960939450492579437344911707795697082993355591651497254103614190868775643312973501417243812541605804674788531861106578573713829477838261242657233410054739061174326157626566162910455311106718695794148635206555122752748230929594532818404708053054753096919386109892406922033955036613398765926582189382650522049984809106525690001930077280332973738989317941120075318232860984189709281680739873899514047050459055957697405442735678278467793829986492601482291184479607061580450206029180077487736487039677624975306936026216745738597476998447466134481962330886143083216546799265016062129489725813362056860385964287828395153313653936081831262474263176049676087719279728512946729280247692967561285416349117097821942271732378626052834551733551007487730423468396009489326513448606964381888436863895197306171942546314061805543821150008247576214125772967506884284047428472731262955406103711914612738212451211767716896718789543997322820630088327740484713489210158781080264234709197038312963209715995494870725690400680049511912547013392449571576675919957110977194019391004742749243670171139518641993962095491005744065381496363996083376197478467270843495409952293257621071626114994892963365381564797202859306667474990091237666633886508653286119744611080165287735045869917690832589718935409323915612426801709583382944260901414931336038585049185930352977420637879584287401625708103988754314559703104381965010502310959223243758739686884079265834544949098723688195071024003385447834528098684343834999328832511788126436484705466384384991409767252056034077637042387223548999800270782226110045458765373399362695322906370249875105919023786866511398436268722668504702858220059106496360855632289991622046934985811479019527557293330944496287519605794564141310061662318710554219371749956373019597459303900842802386471230720382469190964277356901399591577929462284773488383840330247515217530381388396698529459594022571078476864545263033653504357912290348382277881387414871135831759363118822390560231058783759123914597494917832529173073616954213146518889106051851307361493534211451694111948648335675625340398780189351259509315378213674416041645431931410484913161402505853858029059502904511258207080209838830051366697560996404159356007552121757036646417934764685632368769514361344301059339652438925073568292978168759995835879095560094133812528738003175813484624353835937886734660564100683684372348870386809022484945488741144730083217202473763092737108963551191392172283788345131858572819828266220646406964957645728639589565132070621948304275643174887723276713365261368548820607080100070854478071897433271663601256429522859873051447672227162722348146848271760722267134586123275970228464959060065231723954916732972961150542792613046266775204279881675502292368507907135952093853546975360162164193994135378112516026344897689577682629219896447485426962135136491013827648053941365112184091816759462809914485889445036011088957744126302237178248179142706919331041147203373407032769378129260030714871465175294961504996708223128782542108801373795429962817838336301524442458515815761662664342390750760132806949422228277513917774130477916347805826415674161571518663860784149316483664211222765206580595673360009784227220794949796226333308337937458400699771413061629033798840821134581186530308238271628858353632601355806164315439540382133118353563245705309168204964841259590316340643018022258190781462455385650666005117485078268964947939351663389166537088532540630916975394269429718049138098732366447253409783735863106378212707103802194317994402492382155432044899876871118671914418792254102102099180313594205769958760918691343421706797816172525905189602400556023773757659787233092187360106334887174519886821143904080240868519156690852820858703990266645382290137056513574933028842587838531072684539208978663834941763005304602668260109801652174453861269175776590037952571661551997965213616360095830638454033443530513537653188975800697164076958948852116131780422872747600696056644308988528542330987435467128584248703583872817210035389306833431421636960277782438944758133006506915094796269075723837924110282852562655251014713589038048130972836711422437597146999431100991319610857414186066865459212978083831958854912380989247650843960339796311194885444121916452615092839383142444832574939724287772324582641320198033463905803055442347008493736626998761174950615020259116804223218196516439546894303000897030949376542860123324869198999773156899536510515066472287895568891004946134781281041647936591256873044606616978375469807961241044480199646185453613167415583210050480903028804515190821159960927815308163456545906496177953788011905233163255517520833692189429790791604094595016021614856026113805002307832839834186438028754673839828236987895720391067962802971973500552313370791207916849068061978504109864274945885453923162759920362688653692593519598832180822466509024897193838553934247939337612342434502504598403057406699107444494246762212984256394299028988990705036918296157473316216622340328632962757043487277502608984050342034176607884360547787702417226652470512317446663810249632850564055903105198004292833394930555023412726556034792006072246417356730592914232803782283797327200116116714111865370056535407879261631403492972018684823275016439436586019472170113079479852847575265544185482561498960147449251210310827566872306987357402798921014047498101385399017952330965740282432627454886360992663993803165270796808138970923457638302120595351382609709358471408274485500442819401557714960841839070196231909337345698711782958315708557587744625476658844792956414724162119156690203510183328331347385044596211609441399044838377216135383239124917648772033869099572456035272442933187979647496015681092034680626487122237856053385515588629692376669905325213411221131800470297401960840716355139128933548299811326654570920854363179254669944024080897799947552345812833588788506803848039661769017316465486898433435629821071224537584404473908405018925194627384759063250554934393106026698446025832712580417602477152640209439896993879504080857532940484174077166756629373523311740981999552583163954792011981300634720809560929524869137692226798458530483526093487044360210446920555294097898838407540939717094356946714549558745388548597396255039541826655964568158951073491596792979038202549123713410829332882634234372839750311969087034166554025435827535483984645785570440359420433105710063124714591524443992526686732828334297804362048936868558546049971248842164078907324863819494464412402505688253660911205982626834253843294017526080675622541411455478442142911017809549158215510801051380602587230632969517115339427511018192759270321444869059819061068178219607363585032510081039720772168361890351876729169841012462634936154450784953707684634902648431112193576229354907723122021849411369237490468148585644468391680208913290949865438653748854823711841427010026258142378402549588268233644864967339681695651979339718885363367849880180820669341333664616634876616260811555522849329832999208283078982758455166889498164559918754351396270334829073939737076384259718819645499216775582544737787389355703175390845465324300849055787363919887727608163863191316333210472700496244672835160339113361225492669409274330399587415744714362496088465618039805819626369929166584789544392980813009582097353202566223157137221007250496867961577609783284027779461806755735800835479911761895235970984225112011515715334101438364782619079767926187965156698736100953126223589778550861873146836570088264449464885216365848467038816816824509027522675105588504389897434917472075399925884319081335519827426279448215733713470843674446133282715024763720403634006356931681938153406555575762262446168957802334456540488116863966797679500250237935653122323905902377251432578181768025177006406950893823359806643616924174429635973349206270428426569300583267723354501053574866391406742442281714696400981309835478406409266463793592519516513062577335792622121674793823019475317166270464659868643471711402863852065388743378044817115217529002040434963415806481474687649371012677150187323446439809165761840392205006349060735140349300308913773282181115102617485278846005168649566621673483693419045159040480924163632830615760507136858201297239283840538403533343195494774412232231389784971514478560639116609468200053396206781238747163239284596071760411783812979245119460280976669005460066029871262098667340449939832772921365275402799741174592066226708519589489261170421812572786762596949507329894198777042959953547065393766225346531989342748271556922280668697071142217980658926120428099368022914097011513040367883471736472175876795246261094336943284538220123843718020072937307265813866836256498115821003359090219652363878324517298259420282999465147408618265982329358471108268974965832253360807447012351669525223462002215290154506832626835603807429653874871211519338734929307192999400639031305924059480939653473280508700660626290991166284410063516192570300487999411204559227770147741284446536816560224795965914163354812420812779823489565313493594274199184494336689161279089874776713032631436890187572323108341998812699734677538637283015381557606937722687505157280638315082558208099846712702641863258528851282763553821639885232392665150704249060726329961393330351256991298864831339296839182534296233863220552966089345596245638022239176792657644280430794278719997345297909544505858859098095842864209993180946224225347945849360431579970314287602587346932114283613834772957141448512625699264076337961424161789708468489923522872291982132878189524149885535720642543453530841069022348676591121517022856056664283813489351432797083770765639796478783096341101621311858561349308814737111912399674611706935894111554137261154206986300705797126624790743232022011771229622015140551793021060490340744985274553766062954732216368524716249340168720930986228470906361925335971258109901446010324007473818341743519748528031423590342925438119177682818110212717562278357283714904524773108200925034606518874191088896427771163686428223511508441697825798556441649113946960908077458716145953333557063671988980117961989401579747417669595915484708229535197017120128885078065055746986073183361276630169537468198377716919950980077901201751874193445694408828173564129413703215429586106234983489105698536946586343645691976510886535622858649414558283556294288815911989132185075319208650508378162398345493162070821587469189885038224541981261121599660183837415293596476704242080131871400601127745805099115998272559145818771032590503793544737775884135554525818613680051619128914987423054961442728897872926044285999690384569773400430155056547453405065654639384040355117222049608408413470637972417678364597856644083701300934985822351874814433063010007583488338786649523665129676179081442647137790038165106809984870020275263296738847380453454228395979376070356650640483891349297305059458360935309875107969690060246673830099170506591735380005327619021613120012109698446083630994594171525845938404464834559972101648834592449204259352523666183359988652514479563254611177445636363550706662436721427582937432053036025336238299171698255758753902709115524989379668538839181163618107188830570415525474767850817142244503652917623428777838820757329010538644355404134745799033609883935458876465338748545405886376875843869367214033069803348661267963184451254733312865465875652251235445972714676452895353014351155170297158082345114445025423618808235850589739582209587090422370826615663349055149599043876691412188400264864723068542239346305586376122709167673671597832579922769045569367599542786358050268312201895713974303821746048996749453583600983611776903757435209166757663130696558351011110086587364218734823811054360416165397931351266987174996040582483971374977514346177188140104130619746280273490477546728669260422854659803255588699072672837239230772674990342736796247151791325820267917776184806127004345208776857621569135810953835119063104104940153852006537819184534793549109165904433886189774471102288744077630033143249339011911222648203892935390049738719671914562302398564134740506134331714732012935340530404409045304027218438172374802178981179549720854276254908712702397857784838375966976594615678722152582156659782204217422794880427490307355065838712321583896456406550153766629847963163730141167174783895393264022340966909150984328371716103166194661260399617152197332641414441315459418736666425897933643906619490812213034710098801205696080335515440898158080151248264880038718560932508439252674605788597276975953760038651946436254364067548074037350611970078168518870046698359622429962508746029506730381175610835575368020080694614297799001927041143123764980905771001411341205690084167586592616177868727100179072457015004085921575540102937300963126311223853010407873345209026955186869422958264811020326020500307420505479550080559042216990457223847936719292916098949330785459445405854681099137731814819605000592575339573117588237471317027281566999652045267385223693706411256033486885018890931415837221719461512401475538122269252290815870112923234673679837620906163754163888844738949872801096860171519225831442105027398103963445157491579143340726249591737777168138225136095218602685413385700499548696465235934547036798618241309356716626767781094452478595412821581042620171778117712903960036677461890289999645321065177898143976032205281295763403491846666197605302917229434053828793226639376625964791545131896838389130377267342422599335087427961809440228704859311455872079917227740928728658144891884739518873956931282210607117812332381601499136410222138528490041843857764115698150637369279473998581510552779930943977979346005041717258350114519855817514537460879651690025355729592139692213423730775142391238960182190328254140947712483514053437902933306646829096196137344637792977692156298362876028629288172592034167527859373694718721564536113090211545926211244959386071260884757307543229728674626733929776297278826119483269947816723120259077442826331521725274098626279309758590929514819982050628342896890534852276583378900270820732425053443724309910623152738933142724840627420252505759344681805282340772661580579005790671763640179518680647880153471125765611193364667265659966412097182807978632769680976088336583798022286293480328285446571145477221457293396932147749061590209868088926822419636109194974683236567522495673309149460587450798057240728942944221240651599861703375969363723041863018086951250565986699458882474347066952029039825892029612899989389448095441212559811220690073224658117440622261723669676953831810486171278542551590219268186451837955640995355824728542511032703486571201430041991839175800831538847239755299033709153678173588916460001293794217238695155792184626381016733066177461033541799833769882682353785610579504141802211907594817356299618035494776670892972491366707753623930846081700132843676710174400543749042524494168256540113299386009207485376467465258173777834208745660667872587298696960238422867010989654156841806418973817829597343815359612827522255052589920968369333549412600946795267741859940868975052228805770403963140361391761869669188010911187434981600720118468587752951683519313779973235226397174175315442943020288677220664875110895490389578341859945018009418306008678081250201600062699454345633844361033118403600861880846251625132611780779698260775390645716134668422023142049155339689761745005751746213373688744320928675145810181108860271932616430157187247910367263772219808783760867738428760118900907139660352756266357737219384800138127416620549426728075409099662536936781646419407551850135457605182672485240962463088779206886737451664903551315241024587156621212526242206838319030220703381282025588639920658537544672724574960928499771226354100335820352803975501586002724933871885157784502480847264689633604404158332546656804597043384104771479623305909988700169447575576948459330901652737489932464486341651727371118268816165986617020174520595601408852011753003283710612169515443032518077203268565910982127994397104978340696601910334318616601061473436071032717706725495906937926369280387877442252965271323596919263479504469160417112905961429011929992753356052976848535713193573953962908836898121376227539641471308333446759001394974534264748842641372989043869704883059524597882057788912599778055543879936609760756283275609354003087246078100416542560707373272277133474725561543847737029285741691556237087870499635048634092707885574055563760027239679762742589653064387272430069726745903942294552785555198469593499601631455885412692020672455376403922965688027311259424326235437836976231963820467837990002259423277352618173806976163273256264938970611309121717380680093327786878412582788869155738697704218079716666724437374119629702300893983468692188901374056186625460541860466073730981315953809284695527052404442439806615287523847642037485525041060280494022236128699668473671643046045035171819862254708425785944573862722436575222261186612412580258994229241477472571751968319098895559254208408606693030256520639434742362767905131176637614398019051039897409970419604041624161882987553713975814614467613394916348274699381003102849475797599115583321501857842757947648058963529507472274898288528147418819011552075343644579194371496425422760955035363118437830212962031102567354318017525024182502949377861272733374607305586271680551086765365253210628086241257001711456596268308681544657559663484437134089837350482492875959642901656057577393720350761098190672308724941272747533831471225154583465964056659856405706138097496724623404076548156308941842588251365499611047261784819711105117035561013154823976581732996772096655258364938077624389108471304544249178414206890738396682954378918896643554290145650366713731429089474114732025638078813567711671074371854568029204229078680064612426620813173656141693436125300711131156571877001160210396609500260635153501765708561016686109442636294763205189503977260779796834622206240708054980295679883174872103348394647568010746562859622262916566712740582207064253430022299018564982633562938348424430290273693666075775203969958082178849836810741426920264540238799373561870649672828670269168631728007313703388869751934671565584250773353119446752711210820107581059791250308948741878386180262937805090520444274286776579163539990039949883825146106185028798101729117246385823123290172184642807338484347269671372748636808868959044745352350580372446089439272346307770297199693762813247060989399273919094153952144640989528199608618555966405724449814968919512425792294772864735010742152595026359075614810331914389070783658385150809421839696244429289555629485039900733815120050099118731630910113869717743418460737831642226212949251561258955775096319310030003431035335000380413233745489986333454352682276801251334998538510711142328056964668697513686325288433251891083316694496791483478248319599500159733057433670397187897858307522641668572945256693123092391937401900961947292854537109155963744500214224184600671120021554534238829144406124947028128118553205881363153539818396537694713300777371104232960694948501630549034265286149749355774478456853518828796511417831327957796778733819994586331035474297362863098487327141798204922908393756176765951720057155132136087835813570024842958586698396443628896197201579395592267872670233920580167052808976620366601028019587038485295260132312194383773351192828989263097656093725637636065255229399756592515391529949509908769499447150779796772965486476760813260914053355736234693973933555128565449445606500006658049482452426701436758481910776130285028300754536527229671184191237783331364685924284101399635223642050241592714015121618702906925583444054968618808278696281393493904590274756667055789241423311415562773359847960606805168410541535821198378926265749831921110807343015653756099488625701338211262829842214243327793726087956715891205978778784991667813992120529710679825143003964994924445117069760180334976089638163340504014695942249585147768485168610398988832979022779280551409372418664384575792155662390830418039579691426581103050045085727531194683151797646857638307261913422419766352309564934413657174385959793652515953363723899963622620701382776835427586023987253876182853870554421742141132466145735215330869843369706664330271631979367249742640281038291100814815518003568050962032382122045159583057349049390181201368078543190729380508041256958148139222902131853033214632987442663027419069512369661042828335939403861892881609579705969560732151707594569335002593893849736845225377842210262200786066989764064001008999418474437231807849913897312397951614542295969555120156345866664437204803421384047793777726931617583857648758763193054660274654198670606144972933558189083431743638238937818976835311952744726617551042259940197343013266387635066743955398438584515590366554370092407075422832810372508126318604184512981665246333066752946368152435071507972652942165175406549060919411619541527184153448137293864431821225746589982946146914381601356443599514861075907827122190007497124472711801028986573524373365114709187849533497669444798249074411885333049052015155696068345552566944148960931822728226894629569640033925588598258131449514356804096222434825043887849764089461183107665161356323714305175039767200074741263411338892010546629296595871528805507455747503608714358287827261997038065635062906270258458274564318802891877572855589996561716826682317347678605419727187181266300811429088671529775425333008232041501576381207296272403637720770434420731457241235010577749532664643522948659616347040052079904881827541579576102693031542677089137537045417668073123461050477035950876656574003265769351920018841676393887978589168212418034284174530669729035653998833956804375917037587558092274252442505086753940001180950276052255549407771647134691919285879125258669725467138778217288373224932687227959010893775247936647545004624308609825628475713171573214141485230658612533049293012475347509025322957798601993617927927881260206015490487428405400859141557237040439723763084975833030165135413803915309307358042097101494733105853582577730059596241701645022985273826215669978387157118616875782882541947805963669534592293018761177279299259801398063760262564661038436776636006562950974990100210246147267481453266377803214605415971644698328239485757511237876482514756771682190687677645274614233229891886295623733135463931671677931849900765622158051530640874378022327009333128407889515591744455310381496599776542003076865048061948855678647676586340928653336419304231139810411564473677187065842766949397289997554421549948162239954367150301252672565866205433967335382505706941294499675471087103091849630713248781251001683382690302196013706009398521278707088106926755166540259187288837293829491786422637211947832531172694738205502714913344669971249179966220144483992046223299399124221407147286378156591752684082530657466924055314135088155451477676101906676293043206997722996129520599845045072556586617715129038913383752913854947049445157669272344600742959712853896371120029714086673520659352691685787989180373811771833730150340494383798946406687984459225538238042880178439494658820837073284976443642782126145353888024270159692214057284778154019296604171362902768122380187683097239626572023976414683943515712312692867061835771974146167304665312298331523088587170808479016625786004036699541075516878131938728843619706266451853691463579701012544835693776105525405407693337569729036033527823290571176337142310581978604908106583903037990635902288898604897299117023249569005072180267582285633522171543465391947335868315809063515510691068669710389541081953147857376174264149303011256589461922143367748690890709959573043347765551990302919314855922526010979015642718228080543181451697657934100618304332897794071115469810704099636847887532085318879853423574699136547500595742947026645605745437147816130487276200986506390216494492038875844176532226395520738868209036981073946361730938274906138876804001235437422933691688331631950873811246928851990117298313344565610443659121911237749653303342672124811754811629862689285575624288950177658711715173511251416457054981363277187271605872006635076041896231765174700036667811671320786139928065716233022832881787070782629852811620737322732751776834555336175443619438720825060375890211790164947857329837391490177044192658006283307878523254496081509323451746944315046015484722847513832996219345212528794966463247905811875893782012188039018218615776600794727047031413135397181955859127300489582971973993369314424209486072230253569763240176269038475984844833141335916291980801547993417461615697388409299933085732856116162188926538347933627297448441837952418706090042652481309817470411338085813901164485363154255883684666424384176465445725208976091580063720438482422883047102564970214191067774570460250257336926490005786625877556802496718641546604693245713607201383055336587936550396216096771434813702422329735908556195461093240232622753448916882669543811022256809953212788167657966874091742517053648508074569856579220274181897811597782861462176173693646381031259826310767148603232274563944879796488670591671548401546827054632331688526663754141428881802087507220985204089467087286777549347162529768568705676680082491966470753105450790971998656727223262378212734144135489647108656634618352333382230156815037846491334359452109156124348609778604957310284760570236462147565490643437223138131901375057365589187890205838645047672848645839514831707337225858303443097196161563480777072490349627405929219199494470156691336634305620254754875586865655199718384457237934745550204917835927251387219960804204849235420354178345041513606368074824465579806246423149798199851857633181469674144773898069151000155257414354183918911209451292836287202006991864539793824245597705733467546941003220670950889368401621148135694460844235520654883237157412536555966903406881745058488107137645837758036804301711717723958558349159798775306062750064101984922931040735559065227167936029031298779107220484452227647065821255934278015287221692989782998085963138927865970125465593917566735238161463667698560246233630446988465889022068836451007464352066428308934534094884159665683959689188208173200680925935048205780142340585553180895602418695797123018509032960630306541195864081650704272025754616391224812669866034667053300432393182028651408430955176196365379638314561257534311277447702379644930027793668816490706884459059608519685850372715202113567945833186442395469122680135858030885449515022089851149411980787158050697671881853373415248003196541088196498430243353363824055605502404182608806206276428865328660743819730213488407992078966277341803592228340950960437958936320252691031478761715227304631509289381706364087122926895231271781334271134691439277529748149861534269651642193329342508920427748159634389029880064653631853378595971163793300796361868121523587661295263673794220590800589105068638041111890099127391486139147233585821545879164794051846677206276131065111742587890108277765778301720951238879472619563989385860640432857984926448825322168347027882237970383239884331433514228337010858519492662668847142404867805042797194495053987951037485583963578392253698017756272866159307633021469371297207940273255429870885456575951476548685913514558914665778079162769140649174219116988607935409357419914421823320013593756988809355688251133689221928029592279053120564814926037336783459603488829188208522278387230209066935891388156864215768494598115435955622961366071652609939533389833062143545443938262814526557816426342471549693053815220123758602846578129048927017087591669111075772419185284202860493778370264648051421789231860572824335698014297259391452105521063680483054680911159565377960003892221916796174610405757313579409800131018332070043393536793558937317295085242435962589527404530947639927945743792194270697823081118226954544863409056496443356511034362708599039779179969024897771848363560835572181596678755559970902066290586286599094941314934261531319090212998156183162313198776583332690101442655730168024222490128920962286309622153880507318895553630115504407059072709540739171006998346077894999917852379515600660187988850899454313833942341662290491902234336435899920168514395263947726887447714475034693248344249266055474173039017644017608252400842896633644075666260771146890533140658692588132269798826197402772142842381543325869352425946698469428092844820221595054817025567656307349772765408462160015465219688565803676905858147182852334798805599688124351518039902403031984180468571232241250671418541622945996024797018209272241031047482584531044404056630109774096411336136954719815251190809936366180307268790467369473624508220141342118844821259813703995642160931595687168953664371860213543522227229500666879971995888875800894671871588099119698885851278896184673117946035257814222963873274119331298350180540411047069383456568410433058848088277807978729687039653369973928044711952536662302160442328706446217951391891645982692721611898250770129009761736285201327579823843184465593780945545026954394514089252970993897720885981255301859010258066283387701483949757073162239197647357249969314768096950468969264443384946248672148630675485366930505933295263206172641027198226637565355892710627601516614248498627808682118506215284762695127060192165978876485512157697809996119897588912101671093648630068093299692871370829257949811858164450304836992717930986128488798633335188187610679108939172271405878576043186345389230152981909730838355647452430224758668408797947006904172613147452445376188135587559052363881006327490851424881390912996890451294892363927863987719752021934975312605007330841333655600797564352101780172343475373223463923035872476398636064091295347868990376369517189086512675948416241039920371471534009871515953734119197661250366867132581879350652663295634357454757850301527546035656610958500927705882104750232757490976598009006877800783330942577955352272617353108130457378789979211522789379135055989894659124296469803795706543519220965541847083751516404724700273940894629151594146711510888065190652258657423224220271953873786523057261492504772714226470484255131792829393855364306738333493168165807629385250695994931215621725151981922631253684922806179233974357744275296362779963030369939430233766076589159051975610229876434299988472051135021074807807174507190997611134487833366851452790471545434031712769115770878935809263981276079845769718663675537762243478200509950572525479497016324486198701022207584141096661421988199934610491825859130583148357706953963440743080715362773499029872810292623769896457149694217330505333284302607388950850729450186530157498033934177773995851030207798376636230498970528179213820130812660958179822678822228553232249337112423088882755274378676642451834369828640217934636344992490633814289128554522641962052504424672115715092453700458395137440523954002152705758144203425196356923669091279091306416519442101910318966745648987093608184778469445547872451397266509700002926533746627290519895788073250898036844934438849966355114178546772397594297523823199261055098687480324443477035119858234718755890406418415003520859056966736563892959768146617552519112934149398052314099064550414003327667623029862047646133093092774847805337755826405017686285923700945976320205286282262438753145287849026198963545111191698128829781376147894631683135970748965045547510532680629485017552833838407286379029964789279529324738897402027061769191279221038302784480008815399006233414593120514293115163940043893464546625478129165791354887991497641629980991467584262809864150789898847719277683084527770412326010222938271901550970948613136249317153922376854756499256175904016016362977223711888898939841271258749706160076844492679597146220781500661161397686183761560489882851405973476212846957546278304544067851812484203667643932901066263502812767561462003530675725329917253494618349513424466632586467190474445126025992554563834880898440566083375685912169278102861194254725196018720369233202109062331702155502267082359717061834656719330691999464398964648679607821579379110756128546162394687729119162333196220100404305889704990367051036304101095780094376433738743850263762888488536051702738947798323610209780513026597914842583906994126038859547724199325500887038034233358398152815047402227649344005541621890646217852313467513152836300533562303917684949739355862753387435401686776794026809839133777560189677242755421896894281422738231688653740840752767913716669457829690531523202183601111757204370450722142689253712863223585595010482983323444741968062513919818334145289850930352106524848941381207502382789096766948748743281427470639841683726165463848035274403839530147609735673889954663254925907862881800101763610821267634864708470506039011559816538341309379274072688928361726796268992570533498731253724216200314687637804488938308787974291701282683083092517155178062816499601159153575400798370908897833549696882122905838308973565130108336914657091213655518565453516855143217031014257686728531279499220076855933339683998605013618910559796384315552071314060872704589657428894418986354565764261239918830809495577424178626289462165329985973064879263359526970889198169745821950999687642760065350035124002932043292740291498491064333174641712198690268649912479658906422048539373872974946663293594590502903187673592963831657332742040631381802125756247010651864372227365663782122333997437545806531614831751073007564310857039863383973512799821256911688648834466615786072679136187004564950677300712848293159345661762193879900052324835417007292208882673350391672738582700954536563731662055172545218397526544691455096409594135968633070001720415629009076917095322856782194543506019850735895272067209290572192796856440986371947847799168859962600561883426287710467484888814773687892048808125343754116970024051298707775553610024242405959832439311658875237991271496869999434589136031616040438374365942494851205264017067387424026072270897722448361412667642864988045339770648454167722317789455796475993249209533950442812419210565319514517227789220320281317465700481871794772128938777434310543965550021780151744140506018147502270381108209359689226489902899321313051417597657986092461456766221689332084575018850684931059325539392266458615880733862706181846487017745376790378202448353571726802982631353310733382114684713537390650387756757238492847179749525542225853197602296155882549951937006901773522738605071416155189156802042813705946927895883890146074525221137024151606130281546523500281650033637378617000412048898146361068514062454819699368771096520076955073531743199470892916867801730677770796338269630825522549515318941566103987660123145919705745451556426369909678771133908298304411944418443431120665834060849487746377355142409812455616036444427670749650169964638148359092193426970317261765798828242599924619648003259838557210055516675791511423127835722875943352981774868441893585097059755692290328139914375668914114721511022158457400705017873511603471532016436430153524038974355826861135431048614046488324138173315061416737829605455506329867649210053170646330609338204679169180993880204121034896903070569225962779309698865516903448450197387766795594085410719102000418025163397101838271576152788562694226478561329063832886870092163259079061900956855797066157082676126395520676613878351658138883119271108451294832776811796115038168103579013112100328642544009652393446468936699694238685834640663757300144330740391280057491862585285964081381366216044232763072406828903769682095285873257775849742787255464588467936295129251092611708194856430064344626207037914161870386858197122800333853589526007772196194547006024844135697252937894127301486277688486376101287119481448355811751217890778681075209983171752819465125011788777127073815332016944254100746065334270482152728538419999728417308526943140100788166804822484922055978974325093199088005690157242766003725748236468407129014417408317829639812177612637058256736484263940690316982975551888690214591487994837608026461969705563968253558050428404877636194907150167430083090494144978220945087950769078885449681301564347987000510688847567769058806994458662601653093553075761886420185779574236790023219906086633554783709035453509939341537629157153536184529681426196596422266998308119730778922447063112708852768233636874717258005168333405348980600621812817315078567461544697632255242653800717981392218703151112186025091417309222179291624367993783010401201988393860478903288875662013484643907299336837984157889163299043377252150540268600832609022079632451214705866182309219679676281743302773201390061739658683722187890344572529683479008468558785259298827070832600499114166506579468193974557536510556222084809780561961391567433574667613318932167116539072799893864244466420770691334925175898532665471372928662523651322651958559051303160925200445003488408399264348011622042733590968927376199718828555057474149351334862195566322315472639546231142061724341848824201125014448315828479868502307398737979584855712936343269911067698270543834248513233150103342339543642909237260593502696667917630961496624781253690620981214924363731483108446591001161908771939706289822305874334380172086918348279253351051546290414473147760366936958258674096880043898473734130343094653068212787271942427711248737239095902968129869271456853065819782139213456918549256704926371258465547322670918978678272907023053035826942287337030948247207046307505603889859389920742684192762681411830621890508558103505414363254273785652593039537165702491841537647678920622113385657387747202569112989526749766598304879344685833387770612066198301373812925129134738192703374161270911350990482245344554495345839569415242850075539832588155617705568346117900597755953960766557707590704330426965517201307267366635492782989483864596981691849777632962220705380851894972212941537055383608328484421900987270277293490985522423167105668616309788458472654267275931440812365587259112679062729239440547719958508633861451439648064926399170197757684310151566797894611695945497812759951120971979399923979269239240788801559197273176891931311082319972411290357469511768626446576224324821248625473317096302527108955644017399815780163214361727143854079164394068157260660990301815440102556355841900090379164077681898410406433756401677796008478330434536074484154310727946766468662886180938165408498961325097422462821752082017749739177594265531300679723993352638425374259645466074582035476128938813388610399489156611060438696290590162145843554128570368249940650621155666682551820117625507281873256396683501296821559175532106131290582609652852518679593215930897515161793206888274643048656642877137155176649922276585176310745199107294343322413574884763912662241494538694127720022965879507891646680562052983819322369475618342151902406921876534994586025095116221917249215516579565456313264517804914553476992307411186102570276745827506154654734032077917470849555077532202700055751460207013607413045362164199736839414281491419605360822801954087930506938390503496376820706673833805818584406605405073479123828489138032495312719747347398610088074895514292180725966650527469032166482402885705595267328864160554559535086430608920680818519355579031778346938289076003168877514156395611777329232470267280215433046994918168217130208590276886825674406945319644965566555350075251763735599294015602186602954044363603175840818574407184718324369243788098156853490669156008932238655333457513710680296185547498936060133759554322892884568441062220195200804635247817898757209276715614101371440306983948777746717370584652287153029360351557310291225375399601375160420170195016493634752408501815494925110053132397375443435160399076132438975021520043163714633952957243553129918365002373678729206091534835040848220140427420621171230562717992247303697389330105436026767325649955906473984995282752759306290585766749109963334484484142672018356980865250212757077180985756772119536866598938083298329689919653367077364394521295852569040028375885459829908711467646405854067486151451097551676320832371884605221881191076059472214678432223537794852033227137712964710058199991236316151088750956595733404361865461117761139835537051133553955831684723420546154923695296740188820054963954110607255175421697973886066839266974374262112006401478438621214428058268014964929504027212456628111052847622291801764655420395241161026900743074746256125777681271769642507426180123765801790232226726095432230796123706389261996676968498161198616473829664799826246873434169443459944801268710863633718670275537775746342697875594686942283321154527583163687830712043571734570248551947125023862333784414686593396572519648454126649704969340586231922747994678136661053626137265257440824198684725983470715086778903482184936406857808993777553733901181485930400506237202587839902116255460678165301522374174175399608326571790585330648906071446324224564580493370563412427958708001654814414609846428641084434858604263242078730480407152341005508338067177462619870950774609529973062814841037597852543736953090188984404636251032248441995554699717039117697326438593700863124641545777265204202557634485529061215386120714045482685226461370696477078355089906347042916771078846123711768964385973231005229323063548402539907579262815099632352224156695112057515459135498943853176019257941038003104351335271901188734360009948615908560706207144246998918261857616696747075150446894550983840143484767792461880086518733235978098779774963697246720387862531148809748252188796311070028775803898100852031758604966523386180731477289336697679622386929923571010529933622368409742115961693877960457687325383928547127109977062175884018965717158842225200394539413702087620751620556394135265735008995391884286143521174418016146278381509808187891128463018739982904622912499171922185057220191527482475203792778624985627821086505054107297913680571914589177746564758979195021113397533644264914487206089209255447300738874858675512041846066549463044689767173838631884991743596522834033398965982973937295611968982766769641385331551341871360305947992373820467676361155746359853311209525098547803153210492514643442584871678439064377372434511003859554061748933157207339960212191586305851980742592220959606898182961197652286040895172499922026537393272729290849194857708244557635194447083913404499598310559308827629147853409687417581074088170326898109912657756333375724730187198674058263729114561770749579896085921188146141902662861727099761435027305420221711485096824387968065509385783775918879866062905116611497671799902606954775694699624629070759491086094636312927330836183916317592757379164204930098523282171561179841323080396611055231527275840337425696851683376177879824955261296915848185520956319050838523067955881282998366933205222547732779166215105216974967991657932541056862734475347311581405806199321439537074414858521384532610322510384542858995410174156467558794458102913497010953791195133720391247895764977665857604782545579565128745466529933455783729719741334014643766411482202058018318651273994316005250073442926152933905862119625403974077884484922449667549386060861371523342503913688368357648212985157686562916588118073902445601172310944066982885439751466056600330642930840264792292583255412165364519662141901839602450124055227668884455196681108415180962701338015123945505884885073084369449508629681709071816290924007547568883141244236325375991792997161703843824946807778184731837094042682527184215323719174569565420360410320300164335221292719077694426385058677297505417859459133237795194822258037840883388289166283582606596676857527298873133269026575567345911519829550999825614885385632629582749151784707681705598644611541694299230421186979345577192532558632060951438899432878346575651604662174235023584279105971669339863352512802777949954408754305698868607366335241991103275717007122871226295875255558162474285170161046597902105152309000705916129612379347954700859460984979496062787932520357934044362103556229842049768543986367122445896266412824232383708684169960928571037943631284984870076766442951810879127991774841200615790120556463132521621847624504712686542491928776562232212886989861686138815081061118510878139686326496969423406068644705601527054760768938157979715111917044579017111971547572587430846138940101838110432725426926577442913296920860564955649275440803559285524581841883991825697385768817692808644334077431410165708445664959532500518683745641870543550849342479825931475942272673815549453923560267934344347606053994475999575058956894743663007576763219886973059706243352527444449942668936091715939453987495443070258640793504440868899949371896929015189709070630329434785268875050804152363933809913378989218882433880864447746688953816264098505466574899375154809571882435478349540795193400990040116261489604243744866028536541742294849599588670855456609236962138442605165156353486330370451924024185045039305617098838744299622921992665842881976143832725032258834756237987157341139067327758899051725834714368712129544576480828269171322245711081087334255386888791400039089062838602091854178457973077870099766454227321216617402854534285981752694392882715374447019353111999654589109630862064907503752138011717499909999205265222219279217847101987205700449632420288302126305612890804718680732745239911180697316987221870626929354302503583000416865226680721471585750470375750717988165485231510227696047072150355088631991251436965721716304923981497048622036118466857896509706287124796556713239531464853916990217514194051310403208308897053956710896000901158721524041655704134090582370974202002347730438169341348086160866901017947694608497503354431038761717865933562770732055360776315584666787119701002239162962759417755944100757624807323808639773985236961783577162710529777903467663063477905214865453950096836099103578836995373565545734009593853408427862278125735579730637527985980521945107422142249021364663903487925924856788943893723305385986758111545051898514051013190769794286120753840303022022599807240561757671972729937795528042224035847305049029420437404151104033900098465559737130630831336666331626865314996746810507589639707963190774808312288057610104353673664160701140555128651789429216501079913114310376081188832005507582004255283932120677966505207759218127644724108055718894692574209384448481878021343363801251032536769550214524776956270031883633176673256099109249241920665539703477264712519154875538079256998408209351874738822579287355624097035026427007577297178950952277719923259459858511403483739078328368461167112642039343484578322636198096720507094324889213097117532468883518947296741932929587733202900154506304166210680795706841074740768175012988096312217619757855768211481120322088563774905513619447255301114640581176352858905573238496091279477174120839231606282656643710125274147693729092894797370826327012674208657218357906985293407598214302927393139247487998337593207895997263225707242601075587937716704321263261425923905150576302624907003324559627812218752167749688293922206426298997723143956554002797115799685121596424953707068501916263669273959025137957146172152382491713854054835193227788034232585073582060338696820492766833584330628414382983622716461279063526358341767328948777726898622783656041318007189074660195884225522915497491478354404601130094637455118898051010342641275248353343147137334401577333387088577799514001750205864878986123878176116574495917372124727702391230784220226494370541298666332446938885445604051624035647913412406767893758110357706530480221882074939348421701196647481910426556978399929363814881583492918616567762600307413481801581324350343036077816163554460625533105286452489382173744185989327401466279871346902147649134783352363133215470733583183846017254814422308963079135614295229121768849582908643637086380291109703213045589655956985343943663836497763901074590599196874822807355655194355771483283251432631833642941059830623311998459096594474572780754887198633534279448134256372076324446936143912695414198494313226099992293842110013813468217438593199687358607298798291307552081521514847438241892022770981209570171813048341007009363925754714094638618988251698425151384440515589357811130203536943402864812101173229627449137119871229483273298242513784630680844653718492351542577091847245716075339682221506510587598264698753990771098370763235719250978741699416330243017737953469669990570479708886462168835184114732048700277496264923650794202486362645899463733051249483689634619596561599949395861249485053632202568149441205608344441930824948812247566298492902925789741559374818028312622427939710997127133091647375272015739136854153672083842785634577533551196735357384468216091019902548266802350947921822472203291434315675929171716271232242607289674783398507847000581786198045202728615934257725286825006006556440875647567946858960758484497977421642818855284828197822557285180619835363946346436371624051327680229213041238622147301294154851568892524065246018459000175464314650827121914346759149355169699043045578893881016726652959754236883464722768891045307724726606199900973918582406734645058113176525516496668970075443710083063658919751334336401140280047784291514320986465191674547506978141675903752080964706869483446856110761646454675694379373461881296977235182552139736242252663562553850357684609584484271382285797970059249977594782965197804857842690000709709577153364451422605237348399802934631113724640324799255959077816897528911719716048695447997160587087225201859329372693753067854912888228428208791495090425443293860636072570309269539100631159671643301794310425108759121356085291382924268092290433449713804066541735693802401437856830852565730650860912225668601978936084468495074930130593515462992563443472720544800704071363550422455197053457514354298486377840694142465374579261341717505251180559809840506147368553985724543245613502245537669194115056258515738699667912368102794494227404770524592051627756143731275674562713590980161090630177142451032767220013438420815797679424277907819099120478694807148629605646453622461248491061649180994822579584644233898749958493945983742297123746287986730904421318214295707993775780033944854133887925377743931071865053271600064876030509717988800820855025805297607930776702428896093677747679884318108824061006503562246553172306450939195596231234624777360020860402004497906550976250910489712906872290629510930968917960921617037137722719149196246105499273051438814053832530319204405450185079825991344105628521979176592570871002338354519689297742264011161785624178366012974253566239417312841075023235985369338276045421636860863312064518776208429634368888229550516175827789513690932449099970457173317800911652447214793962244921138879613953664533090093245127283066180278556780551513177158335670155745219009733139942388595346245605875905198388861488419966908646440783326103323181126893502338172214001061660137165974950173791652874990642053446331933726338880567669099521099204840532483251123649599923548906042976279080197163845441584915407053098016192428826094267051341970397839046383379487437981286433757080993823149832334306373689058873430419874715572834434484148068458125725457507114767026539744184315842108809510899210208532302198418541172092849092363580695857540005978811926900797568891073125283264292683969865505649630993283668671601586868059754508416451628399451946539224441107932345951195092502131821719760366061304027669757800718568114830456561869419720705402888898848520488150684314899561650621647855086552035467883035565608572690886883728508256646288403080502877235996991897104724987337874593768595501770782724386842937185591439387092706781251484040337423159860602949646230250499994940069959845721435693746608403070317729641930183530547219211282320657813892883038219207267584944319175872408562308946462101130298585366455689161880502224125226407208886801410086087825780120212239663425812143185558569332479775866852462414836718847379136948040984038992580998211697927696975577762397327197610010358414055818114639915347468270938272167174326663074322684625497196204545403850505109617503058373568532526123516943526835613740772004006459370319662982604035180340400053739483096343199298552302818192870559920458884742365718940596520669512666502975803768641545938841326972020286273830942913441315024239270102338478891062001361692127180382910569388255882329945280831268109808717285550662812183192721427045103255020791254923706956877489269068198380750468954398627019468488222006556290434002524566177955307250738905872430959158897372031186778448481354679536319824305973171730945344985235126141987690397175354213912168469037476676161882010765753662417486018844655454042951813420873031234028426780863075311208013852211986679488002260825563156536058686354571497918544110315289127380667489664627719057615548563221582674914809010177088497260350438927490776422190542018364984207037462071448700559349036309344999723734392550132364189107450271971391479257412970608046256662305122379561495758150674569547959164743100393113812659965090131996767782065367788591450362299366640723021831539700074792537780260836876259571879430101603940212882446859328012360162076047075887891303093984495136574781872780355479391467661902894794922635023578700510760289074257742612111752697165480994249783031974337240879840045230174907925143562241092988129828920503263403913879471989605458116516155585642123974514745843941395633798124082128772349301462900214264730856909267949684869425601110146979490658894410595329418265612104491087867265562588257096354174129995619008455086160367882030894103975406712604709961130964056772065276039369236842022810460892135634254212302398953979489279602650191479931532615683217251942435891851845606224711653613458033271942472646822849161780241072571321895982598544386849453956818960316571533187200304131528080327060850955420503526774464846791409227446357739028674059536482645517421328555725456362113213208922009307251518261526258271549324631109785416194536579180591645569570376294617241250730326100229690957234301989365771327925870288839689861921951564345063511968594884962588124162143652484385421776388044561914111257652807278508671642506546337944718820576443542811867420135227618950092397625422386065864187171797088622429053754875689219221865948501595866601168568230148023999879511676104681675795570296867359611007643893241018026328537772920235713824380416825644798118975885127634994370249089100230749791317347297569067461134701639742849245806736328904557679087769433688115405720920850506120224948266180951097752569702911351277624010936696340831024123176861859168696833569584103954198330753097713791310641235689479350806896580348550447413401344905310608457872171913476286256402536568681826555527055007645065975913127358335039738640680906872153300544680831431415639642977918780730948008371977531386733110539116663194583420565475395986151595005482255310391514821472730207050745617614736291672793687778045157466192545282994965667454439708711311586019780526215007833766365638724250272464471928870357273449854350062120011401626959766813525523724530653593368299728287916905388305324060715706134641942392704838665671228160307353533671048599299741599111778251437741485395665103856615558210357626521317467525247812931660031305647197387574172919849753852949440733816803312970531950969848847233121572685455852438094668745229820218573607923302544002711002955963110950079736756183089258374308691890324365741466567568384045966835248774625130757039011246195345321714515221070107692957615523477087285989156109382774162489617840977816379778749864261060165656044304966274568482268850557302573637830055054840493326202511235214946845534737329674829613189692571670734895736132875200008227089571821089424656996977345645318631501806561430568699460025190037742401166473007627549430520775630965823217876866067884527651387913488588460766806369561592066972661269317147168819022677066494040283662551993463522538099183221880407881644138898611456749140334420075628720448407281119456671037752985703824499473021668038253943233052054751638866975339879943157021947153106726467997108127944872227007020097287669623522620819445895971548802257358739136599900263161579858100501252903364959560475656214516490827662695380452849892144129120064465334282561851154148803112558234721577102148241134277856565891179697095685864360015738362213288119136182765630013405648085359842087465577165083086725570753916436589419530135368154146423312904890849595366423749605485181348763731665131841199914098354040220849310788178135109747826334409667438534060472588915769076325450863045593088606587816849412675539764668070011847619989188360943908411785072627879978344151173475608813968614175141791176179479494748168716261326812923939212671438188067541845165834873840165667623728189929839088400028260890902481158245594884422263454194741882212146451946155245151436897167768879573254852387591504040291434857601897629624408387086049857977380662284354170082869759951547482121193634276204588794769923635673618768523014927798387043572939216983237972770730540959146831914405934311154538311142908649311360466432878300721178929304436261241994178201045766231100703352036045169440328562808450168332815665288866534744547597168661405772681561868001054689589459157718087962719601590741120684454918143043757743911985850093974776366988151572789359037765577645725021916837410244507260784304339991097442190165154293564259218421281820267173348183999560513208155068947977620611210463933667888541503690243826684630692549472760289338995136570976705595990766528509543152331840284657018782481530948647928305799724722529019235674482347227385223331040534027684874724180209357987892038739222757655811688882407319944187396458119695735943690397783643833905346678050436400621623492080609019050974831632824286490188838750354425173655055158736936050139528616904006895385631798750851627964328066447643481500395662374789539132476075273190077985807467736888300094234112594171958832503735377134457205343623169713139893778429506580141164224116491727912790591323758752687374093362533104560798342380274102788261875814752854285552162899394881993487199160903064932469109355924823032866178024002774207260764620724178934759873793905966271925356057059030546581963549440596037331853393275162776697788694244541374289616655858348440395960819984451102840764194367212832272513629903362655806493523813241295279231319423184495083758851567029442240202607984328671807796167037000196161105032767796108262394778699572977396612850595141641738552671038661818344764782211439338263584083597405635754833896739449229845014818502087485202331157797464024395366193913646792244063644345968323660303587916209229612010652446436221564458058018616412482772424656572941071766209780325874347783568540286895725041072497578084091344065266391747715575272669791792722281975451215615839090673835694079763437683418172890443601051740424928736353992216677658159305417213676412484540217064354036784303020999471430542232909729720923778741209874377671504551691285008377957000618998693779553717772128125360317343119194656308088333847541934902277383459326713427045545377485410894463202409327897438847020636610883087737848967521865116812451793906631845309485755018455943312798320225910348234728432136744742838992307068574559472935621967906605602963564381702688684652525518176449348414316527281904265931703371491997034187508846867784386890374183985764807679602901785870198792610523088195358358456945081006228253469332504150919204150689425332025920921581522093802351603236189991115943300626442907272258087691726195451175204576337783938864471114266083088461102025089405355029064137840355879034763140100161550549357390598029432720485611561286917361783997765796312024461485945661770000852323546019229966731809787662825853587131963397477966220747184718806847620887794194472671609809829445477441612785867958611226152452171686240131147161105341477683798583891427203148453977890738153426972663178326945755669433701185091352261167756441083576662938315882158654808879485335683966345768499813816258084072215748741412234098346859982791356408348302454987988632238042570085981932879568076673016713317144748598237910961321356701897828374092626723821187255656447674837944197114973692782219824983052965871128664580420694715369568220111270895841381276020321285327877028191419804660903511775009686668013105908316239959915606682981132044197098490455773910321467037094791624564619517514121470579359658906061194397497375854144150001098038061648821555736197364084811512791562742721754344077321780057669900241363828423035572008434345548710950931876183918156940070699752403833093028986618668831111923538246742184695794366245714426657313276745384944431968167991860957951925430615147931019620434635552913121057477755496717857780974967068713660360888794772790608388513822780311221703052471519853934271744633417137212290059510999951075567437531346614686994760487529653926309300522292527512928496739625861572287274202054969153049424396868252462038673546438321390887680111355780727053567227007038829292508489631215870480122455853774644198457407110388374949634946462149396231606888124927754491286726701448589049599819161150204440295269016997157510502681962819885665825571971146316717535676322581167634074141804182659034445203617069104465677906626959604169269522380896806644124634615895138506460846263273860265752010902891949073213866838190670136057185515380341724029696955764853528614599655182551149923865286322044440759395436197115844557118903624152454238117963050026538988685832846426722174828936052521439432867890100910768730591613803749509528549655136872777861483547666553116301200067063259388491248393364729554180297666589834031660216278837599138334862393726798086848135405402111067048762531329669261242496631323285994544200206048158167773188727411840602472360105904330872319849667555042829469014887728842102919830998142540286938190201232432700698427413246144545056624715077537918404435087795127275170871525085557729583067942288374311912617044176308505967704579765852934241848464343479934429483509272463737405027982633248003494158713847360134739012233358772677298295467955996964382959594716877965660371159052051701380978717614190477072563995750618551405483994242011931460437527939159107094118743846366619582708111918148839649208035146831349807728112767001969259796457515050102507715040089710163461243246171020041885583766775540191277578718153344592088544426725182931293692544815700935266593156453721980873906013957070742596295360931492681008982816136549384444765144448728493082349499165226152239349236297108056764636835652837555528679236544134417273268274689551801982872494480895414339413599715960635185809999942926022497292823364717572898529154625299790684621887662353809887409007930268448479374425064239743054613272415898948753305249927190931316485135158852914367439372566502433218715474986619240040835768711971127382842858533020245244967198975893935496484267144633590983953585173044428110850505242999070184510154795898119623037763108800449006820546751331309935662173505040088959778073248395765992203817282376796469284238062212711053114575714362936171401231088501462638393733551226529554818112424658897918282992182411729385692203927046525205774645497186010957086533592273061873422586786774505524834894893061739867709572162708936204232187971719837702242154749025765311872525984848940879160364216038049114121326007536163093343132566852677449185132277616262176391934802867979963651609663532146738117281931095073807990691321541700318271984887567479748843273075023752078477601619401071543815748142126496929871614535066657584098403097961819972955304417132420020555236188139059296694045189804419071664636663301363052399936345025406644856267225713110373895719311406995889103349324062710630371750316596668129759706523440325561390393964373742123456057599118708461221170008473769637589372525938761681279675225756082286712524042792361406517743914452635707647975369974652990339458176126777836423278042696252449342786670521610945164759875194763095898843143318798789571892219103538762244078549941509711998810818025410645384719775759519711290906100011507264286457871524461501446559268969071355250446790131387404539906396290555110445532552726961971006518136017145001964670784607884771239102273260608460361135489550684577574020121062951170651444025474716481596217874506060159075104528247710132820559841064047841402793586107897257751783290536501257456409059556586803299343428131367404026309937625487370457105766083359749468498729109058198213795417199478642245491158624248716391981942735933871938899560366193591573626795490689299381757559389238339467891190764260213770576568620608573184248371686003730186662160103180241384338918166349019430490378872378443391498510842315728076072708422196649945717827281605007561361154728820901309131779328912510818591445664570187212838373627451362196736340675297849184148409432532564346183407633848225566255775030010747111953850276163466287393722159343647884010411837772256903404480778479098491446894790089662073560462012962458303676198697096357654790524297657423915810355328019322409426501047314589837734228421207587860162260478409792743575969673935135711298986193015337420355354177676535098793388222818488813692037241008296535323898031301913321696070453993190120313506536270415045778514005632725344397733633070067225308490995888799485847100465454239936637976595526649637614586828584074336989456167955357455043677936595574797948234816579734701313541190490468817132589213368176960917464663475226144342826436743148305018864852309534306087105693324707933840199325296095808693816695391905190189150273533134315287583089874523699002093744566816871950721022153061101125549253839570951269246319785385607941764658518164577206391112279278909797995277105334117953253922442467491577566203023153440290192676262130023639939039988896960041235689410171622889970055695060678452906872221782173982015224452768604700562696796549344786087954540102812471776227945533207659664957373762755086749074614677056017100733654660395428262017652508198522451308680853552620370060739963672816264459493988766358469790618775526723239637880199855230585111966729172315647128315000663105163226253140121190819139948562281003005312420414433007624983789957134569516653594364880705019374486472745540517882147200828424930827631446403410506846045122011041553769529273172807584632439235887614027404465857119840602973775525744310122024280012868899933924264932301750028128754153557369628802189904281707538145352075331788916548840761807284551638960912417159509196120942551772672224916851937667765916331095949068626494054095723582648846479069978124344269818214622668627621001934571985811326012468136604131630123049387485203769190770238390164305626672271811358969999603198036375086150989656434103362236881448346575953270534816123239838067820718378907991796397322386870628939393700113417457155499575935456405974644520117452048372945036376376625251321681672171333828525598538053687144106129753400092077052592078256347829552490723699636840623952918663483772681767855582826674388216248411531184085490196089555053893237477698319245005987840360154393145458291020350263323991276600837895194569738088587690508962367208312497659078757657554224208004211027260966974968567303480753809552240861241720974360002567116320960482902415294834443019526517733183602331852230093154457290334353177669351957284335997763903921599863978640160368276294354833488442019346388431047794507219894674085474165638493377697263317779249564668358265485360877915310680102265305185973154527096083815476207658589016066118576651290698449930627497970728398228677622907689937206865342486054729833060250463183069913979815769116387805600246152760297824939264984993131387073350594957692776891236840366297381375177442617904699254911473963250112963167565309647272008095303961622009982732018934113483084443274037561611514155878244572920902847618463097437226247649752745722652387880852928514206508065500011514387417025099985710223077469505024111795967136994455690889357624270161753636346590644953428445285939293163319365182553695101285338401004814986686371808338539767879208238362682184819805900459640904221146036573481552058672911255438035655696968625182715631571949453623828743341611669031330387654051893545835990117074991881295271606151178403952408378087343485525717736523711620522313061520750886997471748709351538573386047211830059940596931071428827025482171703052257492696572899807512356479300258126266355745787038862953239740013261619007937072519871392421162283499243392529892542068915084462617852062987116167314429632524445003359553019955489335457552859782692915626523687286220802986994572794478464264426468408314813139511182826958283540480511377250228185489546775720353430855062143304008588203262809113877394678881236154150362047956405860924987773255945618025568174145874685989737942610681097479274617737444591744518924840084659965674466777917588170787484628545297860376361805358533448662796061818319980386022940395419051794025993618151752150013467038875395258606224231220565732418242236853323048198540118361100052628573651441826480072483091316573101569502147945705887648427171618059323172179967889934000891636565059439719996580258764398175582156721599081417935408672796375409585189649429182886668054696307632431340270270162079970484946730111602151201902418442419702415857552796710861225307861427602972545140802555004223090373710186552939251653383309707941113042360512881467329176747721181063731563443844452107952832841344560079421506215505011168481409255198538758736670584927609600092944216691924584059535527269768503331306061551679433218096061032480441125898016974121880738564427565099557566751261126379732484726835704373734971302885329611283377960300846304064153786315115303322709449560206543086245214653175445558188655782473878615377160720985311423653336933034117355900975823347994786933026386701523434255677952876455127278344671477119414293979976150522995635311965189888321137449542674198803231722278227815057871211702074230193036809035782292970228349965858727272354800624025205100693016704943490580444174279293806042754230668898915184707415470205298037129339436716474618472412750097950555251389086600219539677925550318328684484082266344049863969950851861937350059274825136364428142175651873547189494511785440497399600759687356835709525724236071424431341118311750202638700675264722230961404993945687755735887532805051975477512197843588116537965553339422911352883202694269599248749824617812746986981994845616548490871382323806632150319057522265217272303213257511324867969002332931607187582303011884121993212936017673592145638027871034832667068854238300430486689272644951909462249790099408869862653908569369461359359888533354279255151157288992845394263712056086254507722009831944202507757000422259334886704161059429168116085665320690023845707962713971843383482851831609203338985001079904339061904952390280276396677293840743584888446083622838559045338263857125098594303845396092911033867507165095894383253274746954731174259907215044098427025783365236967674101096131972203230617687006864882745991761558782979513469219187136550367533902651796681762151509783251283590381567396905172128288366276993312467375306787047759251113361217687424402980696699837673256793008172758209076766319580322430690179084114340702405725534138819209323981487378659344235570279491981431440201671287482132279849214652235548622135111925560117257227513415210747798986242108433309679872675223834288128732741741934326040866904500566199600097505059062061815725169486787973236440425203598353890718424872287853956136913957565184416180222569230585839950680685244625350203680445177782110689898849984774925242776522077653158389609807028639194809849388826192424946407826508224251339270760316948648420967390294759321320301728224421423507202191660883798534809466041251027665399723389352417460733336478537756690813705675245181065625283304955410735659354163771530182907455045327031261581442581462865703524823961777334412643234641022781722533951705216957470648481556926260790966427846219365135511082258209478963617992104489419817486960576641112955777326553415757195825984225642207080494121891641850680434578300881947178425252027594482602215607132323437144020568805391720308351748736887376085196418817911472592180677320051850978945547983694454931390939814812870220906535774855002859942809200715400536829255669091011240370438697420874037731206015395421709352038385197866227538723846867590148294381453686029017274420746018238373434562648488252365127045448417183102390949998420394160146479450472999379433183766250214282601042130107908301571907272138982539826685496934727022891487691898694568673508678565467554321914140547483387801693694174711590444588979626265545650814321988199067790342598483170341670515664383162547626719862856576256690880047837835952907348916466107151917423496303180836682657805108955689729224527871990085446248981876543237958056855084778354256482781171924112966391269484184927328842752763182783660205442958455283508929493148016168039640661617953484576169084753192424160627352859640016737548991183902827776377665465545429945422320956017717281298416732511710643348283242243604504294881956203831443282277712119881770538128146574016850345474718608068657916797852203665964619666647234745727912548426924145569352499880036127946320067106451356091802592591858390852928508431830005067526697685615494108176616257647249070259625132249040534518375283015812320257673306033397639750916917492490084059610190878886324916868895388734242492658196770458505640562436726575424010789323739440798130880120231389834953987886345669962511493536673878349610279707001756951979219966971146143545696005685110425953184236360619192079453498913064926810191112584070314171769041477574793848250305720906504156683412258156805014808114785641068055181163193177276072590004885917369592188325385851094029075453196205168434893959483222651655165538547800559852456772529294502162422434284996272048934471434941019582673078380066201580535864456393540754511986394340507229510917520677860210971940514513159683894018020349273067725437903465298424247376458266825429263383274133464695199930326828340856749921714357980970906863876794520246398022360289707293641231675531504952820294451386336078887669112353156878470061286692048960279433057452806564359209536346107360705798937364325156668417019929900375240913251752737740051957908838578354829548307557195289037611962104174221212815603060568015893385923689442051636169823416341656857885173057977184776632339784108828038353918848454246792430912723353251226870640645155976204567065386542047170235147001780671892879412938918024427692946144536516508602866428605704527714140953661125634056982219816483588221803369039203413397074225461029348291171055926299045589693410829268947911703666186836693902674806573790594823415017703120928016352889911000494729621895124106689788208860788172025282155463488029907381749872579816375218008442277726735965539770637853665083540010298985205731398864353127359080711299798524204234570892239314574599002750997426562642160910845006601655442681672486593979398060783535712722499948879003314214029159156390823376453731713345965236681745612004274261211766674814940762744388523602293635374368738101711492755517883021562258277792060748429812689957422836419885642937654944854763465189322213656369313888492475471966759507924336246307939773852066142599400910286216067330983299780418469092127759066954350855988785325006097348301851980185157923801977829499602605863961549505752560774472912367833645931104136360461380695225819920786199425672125430005212655369416308745413730880771177192809476408555566250670400545543361828200068689547534643919898978528743033468077587157594015949092547527339342372629574924222826567713019854153165162822151756799010824231076299679284638889519853644733809799307345899398308277954168740084990141481523018544561986136106268706546688135673737399683019225034829688247231454860667481574074177998415271072459315904115503844877111209613250419452364867273717907748920287477882296205475950002797756824072198538683677024681521983189008794393002422739366272403251563911134599933339195939705682233353984972530403320840165824550991064033565370432310350884983983113514922676045848313169931154185129118964550835130679918867244000560765896969613772637554014158151841787001576318802108145116521567316807793887912724944462999696795707414101449653778930729662198507913730814084945790148853138377013835109655654096391770580221439703353257550354883050477218194231585762205271141370811957750486226248100862122565783182010168348492233917258005156174675790343288145813697039533346996245147156021767535180596432816267099175127823444784815812908968839217961335297331283355323294753698473847223274818527676189140714899590906194300456764963303198639472514736947893532567374727999485749483728006554294307817021139128008561340007241335079425746970543518985564667813826330848557377661957438685769491387408490634670821590724466107208003760910561582037821936556140659916756899074306181029223724782020309991964446021459060068137763829252307222108798834757793651893906785776590623476968346359015591991735304933124654064085287204242722597219556846809941003730852324754625077450543924746514478569110920450446183694922572857270984550743403805659926467586920281336377216908595358288019721211231725126107091129546170201892501346817651053192887462125516153119255685960979610311120807634888655626059907794866819848823392360397594001501488027479779648854969578141063273042899203987405521711777436508073891561477432234070314202585034146040375297196784513489535880595975152521398066852252256291621051456175435616719198580717025199083184396489900213287373873960355463467231539543087141179963723269293414442005065209151563487425611277987098989546783333597033386444122297732893350209767916753285006299203160641859070970204049141097769917821279054640641122284670089337892472009291058862802211789296923717008717021848821322302568947423572667602709961494176597790822937141487770412165498712635092164928283059150322495093925267465475763413752123205988153919669021180998378018690033948641257032087433353054841513128478163937370797737826633719498342169549757983857151988235870121180415073270665319637716130673071126371405408219119103209781404640194311104846401995820776851879311273947543180443715173739307950948224772329731701545103172722422712629656993148281438567718510211870061574918438401228006639824174682418889873581789827946265054953677582735792110869223811055979855755954646754443327195527214070768529134472018049010343262677356693312603388883980118423526900216617641293559066737654071213078786055747462378424517378591990040555518282158227745145340611714645130732804628654668311953574852193459213472779982457448893946603530110373675542304646879299553097480699731123181144796952617720857144826011988603507886080893041294106334924705877496572111211534370738145864073746626481297846139870323268687640694283346580950242401493220695898477406186585742760516573540753029170645145052411284029247554729098952388491539629134708480292414302131848868473764231999005831360331678312258243809453974284355607542232210717648132026052528967797507205777948201384172374240164944626147454384934285747407413912926156869503668079668733292016918889801146641234898165820100564088440340949927930346839501205260665750090706666771201965614424432239583684354015493558130216558945233024054684566049801408505946017692762110285249978068109000668719179272561782631319582556435583617015820067290003353109571168811669287632673188563764105738423833276840641830133730137798289117831587563882361861214961384416575283198568336365143495681823625141698574599188035367312136970695148275259029131014098881069770985692144992654022250467721548871656386972018146260901326514719032790254641767284810524870327088396711054916128160433133716851590586763787113999333609109730674254541711540540612639640194587492670273090351515419437563223037877873828290742623182493441737889657903335746536115451698693414483329534497450549262994432215106155546879834689222428208748075648391815456817011215079671288264907774827823222712652496079693783362067686973027896556029415302773479372984894635774963122077318721620776693011132511964120910797798122646881630617319954024373494505790212524669974408830263702631039472917408091458009755242471453501169389223459438048552854282505789209147354765043674531851209575880976802937112659516094482804295366332006387338709778453798296052867514411870228204997249546074683452961301159703132388160749096142538300081523770275159498367235234205967366153192035840594108214581538079366482726386755855156419556308868347166288910657223023840535922511215827902996073044864488146055825448914989740946478621643637087615602534143674974736337629272144201771112652291815920693855977162412149399749515902412683585293945089191136838426808790586440387936557016313680128667716349167554148129096053353914149646484748320406361226201001528620635468752504777064113400839832695695056954099930080373301133429840226016738399933220138135811614028671252536150592169264532477398831324672585515149448144174644486619995592474492091795076715257669507679636815890472048095301850682132419398392430704016605556748059874917045432167427688548323330535332174228060258160374311086822941184477598383694267233538180068902410866078587973031693847598613220706631762242080756833405121858008721568767142605609007064267230291293391968097996816233600245312495301499853350629912618434787723645967511646131887664805411291496116371827312443666484750092680810273956936269582573153197079237199086458224921986672081101551518793774548111222810244681436895924881142379792144890068402562559779029146034480937416188092962446741636963542191390869092981313748805232520144363796255037956063032889040175162123321653591838355397688555205668660975965913128746194860470327358935035788141066349721433870790266676299559469008233828629174381306075971286280038927660232842212223250561106620160081776818276474107008259492723572024832721631716974964085676023901330167008356283559758502653567339045294467156005891809795467852104961828816957017915230097899992159183541320703252098385187855624635707784629810251885767396995065768287480596714661845578134353746296911620203247714363689049311857901447605616020335789335361956162279715367039782688567081650008057217844578756229678826288949580237299510503848985952875658543967913858735346933524516210609230690221724705824242524516519144737750172966012637515499474851291222249610874907925607758245964302108411779563585955546537067692675606991401174995226021751851379005052781762100285424907225216265322616938118998659150887791724852545479599158408591289452603194782854742598615086480123245337862675537198345718493357782286170970797565587597472683519635088359267546150567142849507190315199767505183528087539385469135902760449887514143403875242982512332717894561319374232969120890952675941020629888577529536895496969576065969782190291996461131809308126602346936917265698437436415042126178757116866248464665908343115341161043432137149179986764504271070627624249363421057829023605795784127578752203254026391164482159112539530924831346052206623310045746060271078390976987992316983058504222614055958334609847105326013852526454545909288589676500252204886947863708008232472163702710725311999531824326808215790910659466065055780132936016609401723312080673401924537644545276777527506239185486969727031979166510771975860648330431490065694113222224604910062757926228256015313323115698564069851736016971399540802364797355861013336694056817576209480558511665537266595408014346480862575998825670860426817611040099855197211449570541547194526718194001349704123668136841912401407957829441711359764558267861078011851177446576972930411009300759859620978137280504332725104297149420360287598620394514778078426882933398538486163129103466771757447428140883625116414607879065939571955789892311834454770948597302901312767800163355828258308309134153309804688814911563610129423649869148991670698612582373767531248639782101736588197624842537061092986929846213034667948308447392170204278694997205571871687175526046507453273621617314817582387689251258280377180379449723645755319681450522204099747920807598098972083580332036332819878831583436331118088636778194349902474138953799742360757620051241758425648624167320558865881236813785406040721060250117536326128364120194450169676990278203984094612512300885410324143765466942135024976629106623834500447971366920251949413371449730139204143044130680515748502872864139659528470184476151358806726546351347652851624958328939050953080924233252315666327008275883525923681773149949545338525317230945621299336132566473861613330586479591903677264940333970527161688579843325377810959489802774567545374630159557978796504872969183926164593047284208428355466978391460444306789176887752185191227277388131105263184440697710983382773087597961472950524885502564831567757614217688515275147523543185402225053834831628525692807908911327094084596415238579667818960650497877780016527731449683169262791478396299992319126163207887722667439930543351589982235139928922755102437636120306666609206003810505102378408136780890740928068654058251079868206397691876396518004858330608027465343558293028291912645607769997493085873032248501975944290354630665439721711167728921628860380208975091465282211500475338308575410562894341590584659286978084537096946683877323989245420265380341701855965218252863603405433389533203008850546948155599888643894192628604867650102522342502111792172676879851206009659675461282062989003923534115180348717568624666306164692612213202656174250893900065210824464693577942600721624448793330020765727503786103864186159061105591011626235176489751350858033832557824081526344724369003652209566462460141705927842262072290815586190637710083871532111530748900926574077296146623529457846231576035650687911436370297715658681235966757523437318909567831862232109838394243633970337453908848082725191781899910548410119827880113598689898102674098442601570687929841518919236748977175856686218004911405830114671575914594032282239407402531591775493732300192580930802501622411380418345857048268793162596792059529948317954044709383617190630425006600059236766887904073799379616970540632407095241265343127723355551069328957890195825106636828215564456658509180964313927045816305474346085987216401305555203612518185065612162923969023954779989978280655051231061727150938374023929617091634576490878488930939802475590701937367662572443887212146737502858748364843795166662869180128898336184853962456221829924204904966860461905016570760510267589757077908901019846240444219433673338965491671746074839848381342016111125591806688496946976979771800950968021815334446712532039344332481059011398804625929920566340192242848677598638456584799843351969255401772684624893641442880056520155814207457926861906518313142175974073907779455266093431175412172481768325586558135655783025264400498674951067396029411066819050929494317756997739497627586960174985317830457998303315421792022285006317030491020440946883828361984763815670144104498555830352501040570447759054668536416781705489226233269134663237785811176387262819245872742078184662355054817751041878008160032564598044329241944051773071987252234690424976953880408900823096699233436847240268492388663778093741297005587371206050613466532722653541077200170906352091039215887000411242048712920931398455799788953146445930435263608830821566604845392394829240304885594491175240059046608879599191615939349545254417813848573719864705359746405370693703974948313642687274705358191353448751016615547438515833601479227864618285090313162592387316664500957762434417483861107296573910296220337471916250790280384849282344724199357977480856372294685923850691301083573469821147706828445025188820389512428458308321917105384239376607041647267695366401894531639761588029731246259355415246254149746520558189865283282480588646298856777644699313744056401662029548655609898177004434941892347110726253858840898646974041410946188332879200886045200112092007731043520043637814557219174630858556449775703680440015796915041009069920130476317212234906424726454939666763194813012430336842314078866900568252396541683900632030080700357544197351496955572686743130010958199071187140916519850030969815233563345434209243902643753425341247889902258526129944606792517808713973757061959600534040763434579028844258500310555745617145646047843372424053202723325756162627361341151025376239826245956692252591540519602478187384766675363143541437509704068677893065806089104705316233049927281388397421762175763885400331118191767943051542885182691056663097980699721961222220620193846764542475568493580094731234865271567891678788972883873670203310933252572127447658747364202214666865440080423898881762623078080970070315562645045250537512176564019251581304229797157999293425331357364030579320002382819690505540189625997535998053418793765168654804155899774722033421003126311977679417801079068385711698149724432954682929960088351451577503088078544651413715906845742178108777512804767784899033315384411951295454781938247374823243328051582497999578744319130620678426329065841210527262212448647694790904094978294616910341031486709726323631715009065563151569601193485727170271800857905023578171528999376651552435356090753308837592235762018498575025402259795273507120436569234725507625249459497553751447381321129655905958115269301600140332104178274062095912911898688343685124913729146413337214437220529200621487905748264413574127498124684676274860251853963018131717102633650578019820852308750004093065444318931801560093932483719564667235065795148883152227034735483175091506958292494330570955274169961351548229099780451378500916674884326279407940158674268477258986032855535634331343178789350215535974268334662633393194583559023030643586679951645065022379749567757276084259426237094085666340869916247003722214714680305293232845290563566359258792378862025249480009857885096943169427032504004802267861256749925422684157619593465428869880120465139047682269346855495932235967587554141071629002212190048531828192886582688146802858271843913920717070687076985106237880629385843045062594855823975618962839066614469832478946217640448562478298904517283898782892200282516940311288282758114523983499834247699323875628898888516036706685128423729999882158010881205995725238609383391534636742100648155513146885550695542804068792270219503087995392261039125972358094375370139962301867987939258801613633596551734689707467754137249378722458831283890893391206822192128548648705153169715813123592369702162825160057967693141344456649523659872851656632811213962579266106373381541075879916948496229782639383306106035797826365623987962542544509165913376633254988563464481604107454666899808429842396278555744326948056807861806721144232212194323784911141792888222269085746980720967693611034818035607463057753069885958847260643026883359840383326467989310689691951682303953824559451858482916288440597403728228900352855655706087327395509164330101782093724401269399896012664605030753124139313878541609827751545160221817550641383625401485965948737870529564296928288651253337161134114106929147555950065779340980858383150613387164758560747689047538952003782333250250772691022923688420224426199118151609191312807941655613307819990011920938702503538196641481632576759170062121142457301922649527749989322411681832140867568185547323262364960341357979376271272611410388735318306710013150272895728238517863660821227589421640442418813237513610240499009215837736502395096383168712666994526551009725782242464500991858439486848750587970865822760611748765203265937825536588817114556942089997223753960509786316067630299997869497556989184896170481027612356820728751910377608571983391718742426810021026059485139834352970696532398546402188806657016226329948072913011492698868997845864273951821867744962547081925832827899114372998482730841440943509424082505862348143119536844487005074566252406508339203091501979576353319777677050950562314770122787942463774171795868995437819145007702414775198784932271052170571686834722601651629251757154134682979878365751926186023970767861491539956796551885769491998088330965959377428380231854498973280751545092525327847357354508417874064401399741307429108091804730040139916010504690998275728458769022670191521600503643680117395493041294684727901035306323687461855020819728882430911183792119188005884648481415847111662984047170376294888241873417823092947358921257375726511969121132908326879931702482117706120230348530797737917459349549247194627808741042066310832856001667599521975322287586682137944311909667130284749946192237057844265973861114616292938904275288089800527662060095406124688114914614306420446375112459996794028461747143321920540610916874737635921700622843873344330843143870817920468802507480437840594190070556435144725546325117467628125734335046079001888541503883236510821866166312340062346954673207317679882019489398197181924036771614518322861226243332743744921716095541599798936766145590211916519634929750721595933979916064070662132576609385510934360041312024740281119234957024313043100320886655786236159547610241281550032646870141129118669174299891036037463860221067726824176570592844425699842906474623331787736106764731326264081410195010103508570771475416357664280237987853454616294524672800729565188185010820842959614775148850401600816883595840304620890957977739520318571814064666892019164658870031578550708132099918628825813635176235377585421038232959473619484993781578124993034160697654376524890445200642234655088066027576539405744166897315580847568985512405668143336298801151519774382849452179886590787611299532093406107034047972043431815891579519925431564816369698879246440196469159855869827084912611731620117401420225745663169301109239067555223337698755920723553752561255196122070071404401536427599978884224314462279038348138824377451159033907719977803475546933297254956308303256219563634731507149231573318948543019520393238902447660969970009573204248442275373765998621042301306113519984439863213276738811143222224514422805969017383807638534863789677126624544517409799950746530648666911210198021595313597793015153133157984637421551166732519366305480490923013946615660368552762541658958743357917360750934682451705149288142911264476626066157660204254000725440948424350468994441037490715005010057241698673942833872670135596164068538690580491262977023576877144563752121922975242596574263781750230024383755122360522549281620231322113641016584515047269209930245518558630069191694934289404376002296684894632903117691454228598521342346396614611430481582040698173780494703265363690479735662146492573974371523848708235111824559501595986031866595115659041190810427228081347849694884687783102825062194739491317656049860666257688636632057414162988509048287464536157586235769951503637988525994175129299370831816798155486441650964268578900219622275257790092711930054180579802878858891672891167418310949624226199501576514603937953657223046100166606938340573565175572896830541161502726808561487856961603495655731086005987651892943948665386556740133889321013789312320553722921556810200983925740146171197719324231582235953623510704872156026994504501807292496329067675410463467351895156570082992662689357874940557474627211519231427146979338154610650985678666201307957464160513477765921136751648111372114597590769523784759003167112100682492571637410480917516939927844416372133536237250710639552872582982320640062077625454619469195346465044138685237696428633489130696380677606775229459957398587576893155646390662368320986009518718203919324554489276975700732423324524860315059423578293194592799042170800404833402483920890186448474128634574845383699199300397734842914746156001843998708915770486773789143585337492148337203390294507004263321916534581210491401204333405567660019258090619848094614616236800177453544071669146401773684760196337879215952941270570729163835867390355628312035457790245699296202951903208787226515871968997226739718540357281009040034634229007096187187606506395105061196393600304336837624363756632105301457915216587158247636993140238418709528474202844547996591817802820319664136414502634786223670351074727020807460274259307576773979681470965432700592350478657392689600657855733513137174579256720032184117598526273396127783438480541718109495481016626921446861423240017941789346170781869346113275490954835070842734357748345103381599434905513744142978442640294957671607330144882545644531169257523123290786858998711296127461099304030984877375809758314676001502144709986192249829452302123165982836786029961872386570085881129611334479697484824627888677427955627274595142074697544571468604077540471542207369809811120699858823801416819827768880066759579092957083507034176521951022322749481679719657820277334118011510327590303852196058900760880894642254996653175616700565057716320518392993094187685117966147877112641465435888234848853853418546253253396319498632118939968116842545528667964828993480022576031329911566974802713334616126756487048561913181180891218821305022821646677849679530056737405119986677385668025912175304034802780613623245574306707921491872904394803535599664065910012467440794607612104575635553612942043967820657048603881988633601471892739483300251729135849625162066186386159268473780434737831194151878891545676446454340835725213716602602943983465396788765312657666709949897689374586696227432091264720559999361124177401688554070964793277607928672517509144100192709386142039959533734939693314929592574999467110642850906845484155322757232183346508834124930725205217546727981358624375479309071233444244184783427395141860846376616031295455338122881747419623583085751268813461391981304919671803715112901398256846346488796994082388807710664716400918377817920999157484781532384527675945604754755580046945963959423552514925422803880125342824318659382557330146746693871572781708399214080568902585912228396039248538036141485635906862564574881330685036779187587840024586594741900518643930222303179696318722101229685952137258205862072839589853689232721209670109659304518712501235624353450610408932428047595292461183934311161077685720368286904620714260641656350892082927233308478865806308970707651250230863781286156060361060092963926911963109396333515499751233130139846271723645046574062821934133612048541021251918914221674068212352130198015842410042968849645589905512601353934395194910795113353380494416704350499107176559225012228561408257351100603203214996162701825953533867455408427254724151896213638711035007587331550793680352631680058844923412343260159677773358571626970429965665472405684662551961813835782002957921754790179290596188487475158630065653009101622381470222071857639228335622948471561775990884959758755384609187516868799128523958142471602525996191320017992174556217778019309989868422435220379824887145675411459662334483322576470744717523029617812494870850118744713156919906417511211189558755847186476874625218228008037465784140743260561786317942706553092989514676741266659449591314794713823098056680528676615645019713262485557620629775698067836467742217196048076451757672739100816758156065357065256237299261644242234812029055006896824061529223569199786505287197602978731619746991417380974439418409220072689222396552612037633280927612129263112744575668648368457314223610409792509151040079117467438605066773060056343585370663087747497344927832288985422380858792539339998742689730627212481100146258796850934255249021797432470316438012289191177272387056994789974318887067133134201214979498121770352883502465977696950212406615314573647080820183982480237487078783863210506217108935446225100590469587908336115276040743628760400554491741726433286602379977422427065562050007326158945029940374760201553346904034882056249363250477672617598333212605644663448518522423286670941772528984589933094451162443666457194201491857926710088311327393846705147745964930057520848192330140281216284729277849636642749200150094605736800667514643016596387368195920948642375209180430124387515655775760579790613901580016562711376897961829744340015970079503862774218399126634843548032992869661139095695919960161425023752833456373726083903118797893411618515387395870148269202125938335314064441736987431100703010732839714230220471846398096235012775990690672857781473588825445516337101570391833004789491580895143727271732122572562321842928218814112179948896666927760383866006236874027237944720580749155312834845611544757292410330477199135331625673988937597978579142135722036301432761125294675595377505033315574035874685415898240210725893025852754952896787436125538047378582303038935226710338891093491886002732166565798673982734656074073999520438897384760262663747549925709957161548977430910486332944609972734713861329232975264842816269805077341247656848345130820612453357802548647016807334076196522586020754857900761584768982370808865946546160747922520681546019664682324517643552542919683819883354435651664239248022492520614039608162946386416992596185248439899985549204466264048454670463005659540216741745343062616044368250492557656086664991577560368934006356482691610309751466658708524665801603020672853656589611125918495500379115554927065113335847760991694561325844991841436936822508958954170634373538415723815696386530904992955360874497925995836007023086921811067612563514191872361913232364679565932300570742200433474171686540384556469498706001248188172408044279906776588970485668582077605076422566358314397607414014934732743614615887215655385659526838447351263033548468369211686772411044182448107264137649790731658782538874439916971271136666177584782064946179763099092847038736897138398915988047575674988787422294581544799618937277478899165391521131319015070470271753956563680545485674831944533905602991449866368174775034127817557547121536784073520082498984849830726934766067768447153137251529982288965626374897583234526251705704317217701874725139667163492687835657248888837622875468122582585571473639032160195746812033504558261206593126854973627844116905422816360566724342038171914303095327265746961845393933904115729557894101984924300369922844780079611157598344931174819423185552348615545071664246774814448326549759762053275603700273761118338620056757976767590253438400087619514360165601060106794073551283326621482565768384074977535224025002188471080759105198473321708298027452558083728564789982092140824584723593169114782888011189045423671367345873429898839539737574924751445417982182027432031071414514947401003455986502958357891094862134354559137028522438192230428213817777668114013754853097238784593946303057805392390668851354407956771923174377456437665550032788028742626909030329611021138737264367830205536617471511352456275789075781442499264940405490030205298238314313927213371573693695137075168915795038955047833074726876320330850388130315424432472668382896246485330947787861460875718876175284823727499355616691251942229672377337220697852287220083528883185963151051193201123031650318922587244368034330135818931768180578736730350562392143121991043369921245004797699140958625249660848998518122979201460609745438256009082442770304681155080462020732197412035011541140777483285065670878174484922468385832899307319001299931442529060053966370879604878096524817505405025579911363857571396600548382786373812812301418282401404815271540312503891251227110691771533210650517871543174619266719644481288938983179930283436859661700678973792604796390533756524195254121401759345157470251609398508240578045946262368765440115849014130164831074187463320707500015094163719210631587408404088432836311512877664096474167106262233315279607264545776079754400667590379064507347456447362804184598048567569806273556900789969840560117665373241049776015226801262651086417887997569321481730557461622726440656410661326894080472484234007990547086480288503514177814059477091211398571195318985398641416740961817656973563092895165831459321098658274785613985376723835673546878548854565124223526242585531105041028262944177005821161645473202405044876804306163089979557123223211538780716563469970835626640795815152626295153074920163394037434774479940087852115884923234928316866260848025446788975318791469093134735020365226221478680114941560658060894747339443425746089063483370311900164859055186696422342238010659270632856867162998153299746803492514732455247105286545309858549722148867339764975960522796437012600396820319439259300253294939077807994161047443510627818851526904177640123927334060681898220948439074479598502345404041693012902660863074032896726847926917199348551079536901040531413642118767092835355337099493334469380684557912442499321292961006536198001361284428505396989575895198498944891123900312456687510615601056338682082309644580044743292645679203518779427436972863259966093934968787025968237988936763375570067817749723105438506451771813483207408240908941398210947967217053621283929500618466722937821118755803614557140197077255077751956061562785831812387762024916393604591418384818821289150777960750724179912419531536229425794135637337286594786150594629330811450513846696197909096376741785190039432934289095781869035396968067341795989454577988392476609458064672909410656035393179880199737316345153464281434918718654504043953898689859847908085094363797353071353191872845300436906319951198095599325131700867027156856249629713330759524994490109782940163296001670179373689231187841327196213032636034168472492731157697754381882366674740751776915120706799666439869967418413507311579330928350196977522706192690819804415520021364832175352683865564014422852623742608687501429885493267299309453858977499912343880281358650165723602097900599385297535740008565154863026391867084254970556180889535463687321952674696152158921050320514660602966363594051959016066902260912217416243302679236741194956586442164365557537290343606151828923715597342950016975398628743106618520132590840095243745100502487734997919672542844578339532393901803773090466629534543992911211606775376764352775034676401896561132582101351911185735222603164799537556103544678487919826746989157232061126085751396038409718029631174004579356269559432215995144050325822536849916520121958797499038371780875886491572535875594004902305202354477476203848229845676920198086333853510358272111846744157180312736701492942171758947283458641152977615344421782662492148347490489096490754537339956558158026037241125890287038682796211604936996058483551019993617798431168523967462785635712194539083034658309347151012361591778463022561503544585542161976631541185369911080468802217285186228354479229848360071359637875141515619497208917048358640442060507959353663178490521958226493313944720719365605317868427013234012329936653583770328907434611968226708621205102997095273844123122104600526798459921147559140497018238777946954572768483281165005942784359881854407154895597702213037235499867612899346600279638365055995551951652037629697414316391716212301631199621839391844489367518202805982262069928099025190038504688302888789329956740187658757549403986566583365008464430634799747945731590537464945327677946534566704895530462862981425081549404736060045369925720632468117552143778161079769407722480985956997881076735911585920423331652709784754505897698623199393492803458854761759511160773584436362862738786936896126087804289498424051855092496860519232006132171508848617799917089564605422063896264912202041884490862868575710128050451400217293732868853513167139677535356720163699783904319230588112279379966317741465529376228649644194492691989368761424005300881968931320301286227222837737743211265136640780611211286570110226811821276385372677231655065124913242854412670417650795636264737884271388329613520780031505092105681163938395735698982727991711783009786389935220486658562321044101672110079124286124326081348901096596458882188248244267774513514880602374259200180362570149076093039003363153185304295976031331166881869514445091623801251183941968014805898074122461294525470395039398116267629835508066333586041852297967003072379955643715832487355871995141907627615946354811985537000974254094344168745118239129137784401935624288609376784605316968477691065668357793207740424280092663527853109990488996382583901273751448100925569604416446629066629738769192230708816611028367479754760562346224649419788896430248812849222553882862138174374105162504464283748226087038071069425052569776140897003160400695838839782520177253568471655457264720423284440483365965757000471156243101907294141096810167824724965342900949906191425607632595029137140524958119758969399005051387213921309884765590784134861895584893190615784146495128409805767469738849704217171800377593407987566401857985829220061983105524419891558348289536460929033499043188418087441844536933138135258149454559056360852494870800285263013418708324117753612844835261303610092666944911631138916634949057108826563781817657305320559063177591561147313331499190733408767375936163056197317169003739202845276398128165959295154798940177596386378506125777652004002936712112354692896971464881834670726221703278049743931592990906832650631497800688436448173111082749869704578159537756840391169876260964341532893064154842934556898957615119271220938509072977573854224031184151423568298690353165314965300978620629775360372796873530507764934333523534711855148973088340886904964046069649100190996124548037228166143131683404295674729913352483794580300900166274685976919538929849840259265164106869468332833986604241663388792826530904463273967949102201131141239741991873876535354740301212012779570822970788080861434989267711838464294136144614255632088609161240994616558272015763393967871367908186586992398483744733883676758331801324880698652945308774166726091958205139300339428794101140113573076066836572772624596668034580869743639704984880457918495179505693945070482682514073237943455372815272426378498549025502557482982400182822557761906304458767754839308114867379626403739513778016984216409144965791365992313519971288231496633098079012754267260588334523262922729889821565028297982350606720314316939099806522877906410160186706379823093480732248096402058752808094202364547129219061151887461354130213987101477868771984311368097738865932108745671203907356266680854589804510598547420236715056543431523198764024548492793128236509908530666772755645989107545676141078804170028355024523549230541353752390719061893615480544267279561696672601737659897825710267423898221475403320844237990142180048077327553454657941231795818068322553994408405924200073087405213387176285038613093967037337450970672495106831143765992960642840158639977229131553612224598155349734878084041183451342976373697167291562673866457108223688255388418067456596582056518530325153347916763287113049000431878082562817347191652047659546544111821429006305185014851623407009584937547115146534889476154528545893266563197426979093984527200784063218206694091832110265244984975210933008827233185617143878099619960211597216558198918725556057601925891335390166407502425813796859890292382339409187995781859267823648089289095266254779428205434720712194555948417616475321772779607355000252698547637024644931278072685118242650647476398353457048352324153160673910300789973736156907042790638405484848581047824531626925874225588374634798913210173632680824684522603772558918768368748296683241662578292129166925468622590092208102434118241834718427192264543792828930063623679108697090758357904988897641549121799750153591450462182922014251251004690619567386977947399090510503688065019556428230122858500384882675242468793357005891974081669196822446347300660205826673288818581391167104786835604438859927057247734208811102576266891022703076528160469529114521501855870830954212184598771067736687143453515667785829868852577245276558021113727327044634743919139947844974350251805028484422759184915941874768083005743445085355291900269110608087950560364387619731761996611839897964030114750164901125878942441400472397344136806412765598358556465082241425630182744582996579220693549900822409446551530050293898269833252951908852094608486953019472076214060028331641627059697431845920271284536009317237654136318799943048069589913603043060346172391308993233733233929996512365517813583252708075451581245673908319386481870881889257688902723016280890107829244053044537961867458993372725431202735139531883552921838499051377313618303110425067329678892839720348349760947983368994478003922734659900152850793822677315386493913729119070965609797032654970285662383407635759605757681815363123017184357809163193756530514771603536854466985029373044299410621638068331667130345477158292408646447027687641368696735257029467991029312771367913838325688861603708901669789260117498033153446655848395915550542185062120305785900187521217830301119875127310023394952504882861557368620825818664965816611785729817661572155250379665621715256416601704791810643016730310405154217252159669782565081905162438731579563084317772222069116371018846333720989121223326140221580480997121484250015708713121889126473149134085740511248785325249611096582657004753258401152083110496596047290730702465843985168878961449299037479365559665149637764338229526994443938298882649346072359748506006713054850918023935315790045653022132877617614658738311316871756194750993256480838962156159757089944820031039213953045751859957935935616982001572239551405690193858874924527200959122931480893592391924675516139142612051834773086968395927989329994218181462852006869641598520175033469037757586508998410502099677035843289590450525442010834927528520992738115371038002853979722678012635790313595154025539232461353572986456581608424766771797252384504900737872376945823195379902605310648442842733667143394661508413986675675432908206531309751601836191857346039506113143891940699573542772183387486676025214692734727510861636519840270768509149513251121566149302198981717273738496505399817942248371206000119212270714979920384967623640728865399843916094123171370996379220069245702349157334722197707780674298701529360751611541742418372905244037029363971291850372168808367837096471776408397541079417858279506194996327111238449939170773059099701591010181717800649978067507375695234542104502364945815666690137964625901037350772073195507073478021392389513476990926795023286722924964271408272870346451693184657804483566471299727415484199219686986738788758433611786214769700570841623670564645793846536328734146758492468561431894514368183559252768484233978414150958299125976043434360167174041096711262385610749717800574817352168491325790725201335822190062595227087798543133377135814374690154971035750891154043882945305690298553128682921929986465682610988427702329805025452581402931741674846974753355643062135175454004484538888813140684061456087297872071939598297071129682962611927611630788405933560014806276772860015902240172482830602887143182563708388942264033063814631596761948294278884420278417562659903606299254012960026110063118719271756806949545041960880345463092594785293210517712171146207508770734527920768146178151788450471366522186051451620521944406241287261035149006732004519867207100915598840153319685523784282180723850245143343033695714958346084663410439974203364252421519105234539505911093190650590414071076680539672825222116251771860249468090965124237691065600528985485503145439283732029198284678639023131693383866593023003417670366391047182931014367084074653608150686616595345059251003996406181976944870881839962977972489520470681446540876457873668826008467475301762002533128671594149982341399778873490890945057979816239892811280612696644032493248707066638361084372514647863346487596409783011028341136828086521569067304623975881767335249281351924697056712400346334759530838190402645107064104121604772046231604851234703196536680771133309278625730225077919195764287600964108704503691265788097568956056307380084112344071172559006303010864801692920348844996651886826358390991222736123659035232755775761673136115018060287432914074600365499724375695413312106371409190829451105390222569021580374387748753753032547024334549393980852395307866107105371147853161713662977950337510157803134633094286063700274525481747019558146824393499717074904245061059993352091748030858677730572708573765167894022033058208741692587490280507348869097026455909217644279154153413468612278382424495132819320937101133783314797848699936296384532026767384798894339935267474872211942241512523256402051291502508557332115493218328954267147546841066852724084960777271088674424676384289661710774740378650016668667944744449447469630258297814674619555096958797915832982349274930038926946552189171884337932776817395952706911658884299955053071824242241642989924155218239826186106790552049059639481306957972498636466949040653552393017570036214267189455161984438630831800760131085646368602274448704893403928670964295648667870007229106485089978545478665060383241371133284180249521459957391596488503678388722600306881127476568665824125059939119783528502810614302704456406281233134822818269503652131138297574770523621652395682346961051683073742132097197020320931782938550504585829474759571830339345503116962903045323722043943056217369771249142081028037227035472696171723894856857288143256867126983555823949352747139241770269828613068124490933806965468559232467826826654254504439399334746872552426088844902845786191430852296217417120713764654806869379980459628627876352440783944384136456543186466143726796129718532121261843826443278293136488451486943380648521006627412442603419283549841483168761529322268902307765186538390151741359401654320648067024971352996239950775210615907874229571082132067498707397145502881675540993165801361353015421770434131849417669673327898364553474106931810144447180799172538002462413653133714718914034416511617124593732666468693122588945244396735240674322711659325304386887767351738303260635390265087753449871816436117684655829583128366325496872452301483311449419360799446048978662627190815274555907033306993763886696899365485728981963103551732651657320650091693005443855891646177691196868993767379358797423193715505385147583938407326270239430387285007531896465117762072670750750957424696543918849611862601733306000829704431028350105284160319837947940378797283016493031156523117901944735279300817273840523899151528001165413140980111262596121119143362895643428765213306408112000170241267254879535247686794943583472238611354164453780147279263991712937390075389277563272920723727803012704331663004521203840517407449393310246952599052229001494047569261862430686453033825622104511936013016136139162174638107975913516428671170786401582709780040907874973916054274433384376751023426981682727881364244926516430644836051124226340233035570022760316684648541455263264397725843380353317098925458575207697841237484655179040324155574280515723762635753578122593524922629974677739968237421716363588522104793729411136165348247953400292141224587058404276023269623226536408550404628036240358409936068219270140081225910593126485940428526152232870489412089645640128836515607696422215867917041794795248766421619345819627456986280035917332951295507586396414865827278458500961875261612445550121036224855957467856431953033360461927184691877876457742088752305822684285528475711175080819486882056406545665525685142530793907722465064466715290636730003039226699835772265351145308564423930701759878422931591196718510244059186856754060528866748604981166952128734307904027077209710152665112165318411762242635211469504881130362492211882994034886820717602149782745405956723601011085515641452863852286730507139445726029377981824735552453120974886318954018993737019683346250968068736045511614638601018558434546313150180457790500050747660886652803553258542816647836821145519592265543369213001523858934121566616190383551242497031491050363590253908550381384237898719684524887128514091220696796283248407496795544197845457427038354275203992562675792266839579798768800173866845036297840476802856137849262266023239232941777741083738065327647518891823221741451407583325352749244534397327122426933113101236435533316682086675482469201514040641681611252201777041257651608561360905563609947330953095249526793976603294465539788440838273722740348314245854350319050731329276583833725548967143811242822641787590725634320673373535647140916257205456020089345789385132618658237295613548775593589072923840814199587549357844791982192351961522687641902269756765219742562218436160968075872948282001445052882973273323245016469197667079949497041895879574679092735245985242128248077624696594775762592160095654203938091282376815472273416078773632598543504654809968289982811795938335909398886346300891234123044886199012327225607155603323949899052582657274344063293002632246331765252171086732257743464864769938524475824951271192337199886011602394751155397988116734515867282836995808617856824061588463574063292100046048254695911304303646437260694075181435131716010344564133688215696202126516620412517758767191625459165387119608133878202571885211929488124812655912948188878312906256031131080027782546291668854750046700147959271869107243521355335797873109932413667384391619381305489040108869352478748562965537253555039932612504277173508105917290041922950489077439078166823518829757122680800458238201428324811794614437473606925106581855208611211084144700159436506857019778649231319420865097163334632159327680047567913199031271982467245082229522514482159214884588105193249443642113457392378672308006440853623689341115362962395366571603265546711525646919741486544182967617182791600274400726353360573253885584380365757696201499187202289808285812225887413671375001456892099090807457053709225147179182317839343618198207834465143454161513435574904114289907619910172687961219459560558346967489235622971049524786952224383425429704205405549993969295521201285511444436521191277835444698891993165364029023407295125009672797392594573971374588657063490341979582251240037762748669896763989731692469643502284125320434013187157868053282849964489726994184243523794903218249594252298074768738767676916328276811241593438550377910432138087014370945636682415862081944929881295495237586755812856940855424495227946902994332792114390413887480256920746962424683409127098768010317256249383871193021197973330255171555570649022622164024802417959746759062219980468465347703486354583721932495150262721969022289715085794851650560360905934385104140811926854104092231287780905278624262190677030113354346584680451160985402931310983648935620711583875348549627879784586349827755172608055224737076183516611424173060881482429683002327629458491268658368619923472648495652465183438021027409721912930491800684248075955683700424463122884402229483866117485061761864792030655315672712074203337918149873817314738382085121018737846081088503079709852610651130492828195508130879322420889005752002264687118754952572309177549308170449133395214491608649848880035917770885418725814947407289618606704852732985483670426325128075764854361673418028426786950137108929509318785138891867026942625516213760562252711128858211560162928285791917197373918627516859003964685955156402064764629072557051421064519039140480513586222269994352258354475236522178113496017308881688924145145088384232488771574222794898431289207230044044386205131581592736308478823834114945165755546727310455265964528458999415340723605557207249635173501005308242152138749099955761575061818567944739451571364119062526943064801918663936742033480370574913236081699128640345807052112086994163364681033705558919182722561632607942820987051208028318983076268054701905926531332875974622559114820811080185097184436415826810377123362432758115930360725976554133981051480516333395762731438644540916674282079694662220665282099724923224004250330683753080629410072465626113994406850579547025395431515474401223047703534606419079254144059674603671883198395348638950612935081811005304103024109487991348738071618455542142604736187532913912140463357232724258038566284071377852888166793342717223789728641220651511537288697032418609684644036552161987684348568346906007945436086409214256937667953694977072288528653919361632592586955423691554324041799284432115480345322317742361000813734970500265662057063260571844783337002385358269755621265878511783391278285365467259516407213090845889380951147642052049278440981968883414394373376514118671900883174094743669602031913637865813444947409660888885562295513838720802145749591587992342338226602878713343362499416161294674753030966519725489281690073689021362807644114238106677061252539924297646240155542971342484819332500248286301038746492449217463101948407387101172186999884954354447466484511243826187672135965790169731531517666680166538247925736599620434120143408118891371982591152029757009377542151003050771721162335584451053846250710050807501790068387479456630170496364192287126164039185644267346329623055570126371815419886627732068837475445740722192746340690131538077204068689915726938349311964863083962813553646505648253992637443283476706462167670397714135364281246658060698408363198078358590882811126872002259935871504757704106073469907199799322102047445547547754743191106270423496430349450215599624660979756973134925265716623583802526583266060847379549238292705093966637017153683293925539480436906656621859081366910448534966193240196896089400312834870754492548366741903984754619447246654770641892389860238599826935189638153192249826221191250910712382502952650308014660409642317194252378693122224904781300989218220302975757786331234730965897393467131988888973420781733581183715778642572970006506481638640060260202020103822659139082302138522423086201514727718676288456213322957222923345753962182499086315674651890685211987822574605918362108218873227534714391603234237777585772269724473149917540032615940246487653868413506965669556093660583674919130035806332422159478049367047315912474778862679185466513852176072323539722236093979079406185382147821856350551741911046662282997522074512745005286606085476295037331816990358021354216369757093292799654387750917268774393029468953102678227218498788764090110250109247244889097569481157496742673275187322826081854312318069497840044097934393653282603784110685149386995587349219497757771774488887689154581296157040597424090704403577382018153585858605991609392782497107336877801223502764570452160590466800652343594079838736320987533180944417085632001832390249834962281249976782850657647737379054806071416412013646897769514280219178762074117083484129094797050402673427053994517112391217810477585715717874184424540309621297386027091779828313829142340149345045487103342625127440556312839038564436313199438697272685406706828236227020195394769101082318602473077437037540174990273292913609042231063378587611308908722029036945700208855190225780724050705319980155873180092211689420553223297557062895735010816617937972572727684106479790703669754991208123691561003727704657104950893694352760144162608850210382210595682314954916499849824325217931156227810207113637313849188910522527621805455399581025282739069073962294544607340914529322916644452007081359698619314990835961028442187828697162153456878590578055707907093088652841880096045190002222455934307528438821382500965933822902162658471527492888102970353535287276076320956853140398522616701295720831283668659561284704376510650994567378194234233127932814428708345452290294759793284841399294354641806532829927891698667255442265136300917642123646125056367603980919280892575756331945101541069311776020786661878153308318758102724505011272182028107654914661460316336706086897411641475004652963209519369818820723387315638223326130331357927373729200616284686520215208518010504706235694437631935891600193331203004101601746079351399962059644152640943590906826792109876543974209273165073274259950113515648166893864476574956649106231157393824500801545622770466166269598166133387490289801096674109153335749065884611404132937450077012102468886639142291885979411608734343619196149512890279255498426381047492266545802702417836954529908273024759334267518886743993075496455559161530949578058161832407663497467216837680727391022012965283185617960666766201425483739805798087464797183396868519083900336734771995215169062480885570372495244910020394379449805522708793951128564493053289091251815319748337444643800972041655278220370334002259846514980793662879500904948129466651039697360295579453597394591731236811304538627621124891395640417905975962705173520260677751688939404661526528874576701173567797021413664368525992781969255910844806110084770214026860948672825762910485394080493175858137825151321285011671077435139791379959207885958561798514636648857181150394562316123623069658503419123251593239088538587984501330769779292418440604100776070096075822372901685013482738211800273027798908646737936778734840882635145080404211630163182684436505429376332862164978054721825605362315647769398266104972991445037727906504680319433034110213211936756589649489409509313714345354897548272795080564930212380281754206699195983531424666660521578189233329392003742624161712520216452213725489538091392841786590538107909613991110089369158702971615209753642092691552866353529521763662261393645025466768802480474890907495382036014086549236868431728843658241215894647078485848605332498802735632417403140177185497114399774414703859268711903989098648634259960905722301324005124047749490531980803534254636792087489305172069139578149788378304043631460593881804489441847435068451658075269280779200174028290453525395406081481112042596615302650769410656906782094463414933601872144239638692767467824541210518731387435299678629818512457062290463717148643959342688489817273287641792285301923191334816072202751035955259903867327115324090212382623758902006628306848514495254014564974584716307589801431419593098088212893894035181957659956433963509147602490079844301899471138237275974002125078966632104014462183808623522586610397739015184916737703644242161674604083720438166550770655668532482253559872646149551854611862066793773648006968607393092829111133151079313546524034391628272875929560570050261464951928605491141684755552793018634322453898998571238641121342432196180238953692940067091843624170683028504161601807894669489687402242253792378289334420048696667699562494553312077387980190550548803024337460044282966707643276318273026884267898799067578476551267535436394770366519172539800287238382405325402343125618837910501516840652815573202028471376748599186514368448637692750530437788267029415505902880533798564368410528241509831484907753747846623292460121550738857933782633992418403719007862651603095970230339267238314696574067862744374589425064004180933660388574111065183273736293105452305900033401228638024969214816613980213588655584554247348356826168213294277741070709755660474331585450885293559757741944434894769216622319810179766778902311327688256720826156375467429727654014767924279695642024499811870653944889828843715733115017679046330616766999853104408395771871114302126083958442724474832249709165807601647654977612729405473011857664382308704845812852259691220016737706737794351234835926992724970929138628565088002350120433017275266290551552715925415967178222060216510282864310907110225462659080708217023518035280529243787968274816324206895541142964891818150487708762498046439779087625547554254625164719344709824067601849140992775714248702672213309702810959464771155138105076600057372281028267628800516773588801075455698161006950864855990100600159788817356796115779108132163924337217921081540748740290336419109008570313878559562184429877039274498143875760220846615560360603555445277463660514443255239410082118495477144265587454410882596533821134144460986285534944306760941512975657556347187657618280107476791664899776667736749138724292015436490797712923492346600064225512355428375921101387637936519098356090640402320442134816319707607609815744778764479025286720528320215468237305427161451081717643264012202591073592866034933229110579175164904029115231467498914375203632874633813529446097656097295981119495428379245428688064538689950224263841767476183956312931572230582074996442699577235511383906267527752375443075135145423318372172004159702028659553852740454808849060182019469923700287537868563612198078433806348486706490578357457870692975442863075774539577356245144214527185914792035462397595453424199524208359680204908026924075366225283619415797025494781860093331664860083515752243184591123974270329919896916905206935861194261932591867516656895227661530142650067993399927772504630891195723293664785663494045267141159240282990435960651283203206641093968850168979859200269463060428192492286844521915651066375313919401927329382244841414594564035891553611028344076747898467311156424860884437929052858494021328584931639676836193019902096449774082017792990630166964324477812203346129255795485680536728183547328440194716559980838139564286304120138605326217909646966962685820044945022043641081697361770633998007222995381320289569973796981426302359051022605926261458166401035707526135786419247935399375486204696253379376762681989838964901475776826281755521900332355304790924096336046054143883768601329254307851027476302134048744199508552465622067168901715113422330601763433017357174235337149047214055405316297423516331211977344016169611886009167752569592266451204987971946708457549380722417753655381186999595448833135830193082072712203107244081709138678271000358844637728279332870635866671049299466938622697691157051610911416553002667582424139909330347618777562945876847745662119617288713041421231829892028314758417940617451977381038322073210267551151543620256836205284246048781831334629371894966093726995498565140372827217530504834992342470062938854121040401994546681105652732362157898161125107754309687227165072288386364278274499975581779946944986209322858539532709611527347459396328245244211592347974308334168787268962847201045717748817332702465753929874697312921030828749664246942960090502226954181062449528708747105811610821896758799937047401195422035211784256917815565204511446831747392750813829698621496909337775834396085167776894720919649970692560084756364673743605193850822012205891427183453032012877894244333656891646967011612156615931582080982290435419027750154912872615860949972284342913365437528672525750484319374487222825906252842706496493446690911356858007552915663731624365442079062158178488902786584652308795357294195976280846539615241066745153899045266146185144182471511590065626084904347976136907125306153338185286719354067446955434635028307940981571956120475990676488298685196240553044986725576053940509390550256208170366916957528000835119734484137751664185789661579349419078677525629285268251136213389231575651787175103214252016257333293697410397345237074733992001161738424491506997251452186537369910232916438356512902200835316408314451888132807727523273296662876331952020202285674594076918261044259523580533335840718732552920287047272565431202233377850402816002149630056073122549139409579642629020396852584443132996923417043783827879970121405633956944400270951508885119342293793642142303477788064575125426135694447369795781863465835875883761645853870739137149439193412368032368042873041298823571096564862640459784600852930762925546598093477486529123588706009033915035001306102394442187444357491017740944050403683245683562723881925963951885537598263174129633814689236964153194946079223921418480180010707281503959406628631025550116165371076516820878247260391624663284990765340601895543984925858721455984619205154870344518059378840229804113276965576821210778807889984289324864278451057184697883560831205686115069649543279351741111096324333456419133887976462303993469809944296280438429368939617613666900395558430281500765756114750615334751934969914143813506697500035621414192659736584816113628593814808243117523993176769139881669147574752506260913013104253689958892072951336878698552560255380354131773802350831150836951774331108808373190918226489895205978459342434594743673598261945940541213396593638837314533176046806115316022975143605179869211642432368830835719368518908355512821415223354061730772372606809840154867856927067098566302930277314154137860638113056574720459821321170445172891579609494375114534041342243760666199518346546619847960115320753646676661901720171944169329430487234609768265826419553792587571360928269830233413375038260913016091864676805056626882277858567185586897385577733313196196408262041855057668312014651971976391981740701530883695263527851984887730508206515108736103563835701598619082964631086413058742692178178451465102883368366606501583014008757632642807728734823052233776858835041550023828402152010380968034817339730192048917517347512472528163719259742319763492312030316272804004746391710832839675564808295558878106552995564005957052358910440831487503736076386910262685021048781713201111072044291611550047941700960471136904125172013004545702774722077628700530851075839362897997639233092770289591930208638799552991724919631611843759276364523039796115210857775471076065174262746706795414870406910937260502870800634922469646905021988364733489850101904253514888966742127454624796890652635492087165127115568965502863649530521310557740988738045916256694669281586610578751297351247730047920856324334952968444109276820151363681386756560421458618335273867378376792565531274833898793768293551891042889250800997683559987592690049786729567050626238428654272756219417947940619779193585415945332251975492772616264640595722502361733767758756163233435808333748258686509149208564327467370155531771757131843079183870451850730658883389055056149939574719516036708902715086548942433510237613884988576179671622022470093661584832721301638782297570088280904360540694934579513696809650318242347308253630694126205047865286421048703240834275698730618487280038243055255614164206714633428453726430522806229234135791442112777083599300228683055846780212906640341436178817802450618019464111224652013140517230627543002096348816310231326941549076128086609627903251032456820913871381033723116806556983757225840794675001881634299748075861432274244877981533916226537382108566809554425249100864214952771799673401886739556958131945638188691659475731846135895095615883762341958741369539043424822469452216975026252412137619087656669639853675319423874570684097388236246656356802880201686657922262755172144298980089668245612168384260431879492470539557778519307160629340731727775120779678436382326881977288669086560986788339718137556748870923262208036458102191899929400733695604210886505126367433024183476932203357195189334663424844037121876364035027878114733810304734201393816285836500262060272936594871768559380402612577213970425805039902057083026963133190823436302348947271221420442832237225396466899012356955233778234689855069408206507575645966313886851465290804263728971167910557409952091394994948354659893863526419195817086985871850475703939702805442942584858979908143008891755980041530992327870958438139499508375476734037662723585271683081767734765050280047871991368918137513920430763785036454724652259320731335268312464568572863149158611650424747921718762956809374123817609372058167175175842552068739341578470112569300618405921023993241813866028190102358606559227365968599338226609697273668302016020671120102336042808074452128696270675846361187750312527048256068868749184879929376913888893837524673131484749769466499170299939061980067286402075474292346709064701679197596085733590823704744355293427366279360325636126661198342514509198490883338069817917803242950343703919231270281016425038632298976064866225002825163296066850218339703463396131850128068047072310713542637287192883302513506493215160297165963912560109557755140988860890937311661859631046649259803357913266813016765925219053250388772829640342713889345346228368578964816084828261116941406495671506692715165786385480683085899546869139334947610074014557876989342780233051228931222835580970963168506511175440217833505670849900561242725780413335954884110022911659783074356399223958721152602654731054217606525128149673793826653185665748751491977537224921075679554432969096183655436841393909685593257086251595648727944521236516361805183747554286229780945368651896369459268567098568326544995339085715481053778185633958346453273883510864021273812185100155063286420214274516678545691434999928214382656463951373830076638479450560168964869691656047296197411384759830811683634592545409625828696347832593379324815911650167966541493158850660032880683719014318007885114291606735131291137752488717017002749429180406972127455545941640176540366320206796973140535081679077987707352987379552684825447074218892165658502234872652408828574799967072097130289564616364602886281928834682365992862486089850596432757839698908629999831186488787052116961915626683796015427948072987688097284783798725823324731529023187109744194742990588831105647269770698339734806566739441100916302642223750195675446725431536797817688959530388067227264489813916797073511096899548157188204473863184259258231506874153570352423926186763992678137688085674303954262030405526522516353617149283097346268139279614965620772447875704651991714599203891196288836693288349962423241542213505762779003255963657287359165960634232019320196712924863439595543049742049803194972171509396126995014219741155033694373317315935875993929519051329661647844353650316584100793136193514366468686868753809074849863042312751468185392732233078164177114590703055944101773743322475399896275790063422783995231098037084166916520715285896117717823857747133181891516354348664010589743305020517162601462854318993129538392628895746630603463049150729799561903910567301273613106729178425944889975321984063042775094040839252136170132993400092211832076324584462654494116167213652435895513233310832040500358554083089002697437968746006587060851858496500039998010169088983468416224309700702332217749847823011427153609365285357433628357550367437633090134582190231619560781892048064537963674814906176716934939468816269725793250443126527847302150820277152585621023387549237779735407009104494107575643316592940603441980686546083538293682845108622316108067292746637814983099442174409041799193034644059798202720269134055628377451114762319347240461403879722225651328987040034431189547027985359491949656297020241081032944172037873259118350983341899945955855233029098585131028817619526655901581246402687515714621223345037447541926774534913336492018167815754320888581016333305752856196871352384628383360200558926236092257472500041649555455123527453502733454469308448654314771395915119947927679697152893016256626592594709895190003034932992106987314501238855081826660034122267459052171727202902964098898365631865779938761551785162871697815105658688977786418423321373631976287127234168962966918992264248091839770438077589617574905066378643058875571195020411107351315664521276197273523594077196426690251162728308933307652966692598832981365216395620376193735411925815973140225951000590773060029230222024545962443650107630140692753005945039455407388534794625517748430550211080607277483901702366216650321712854805774485101788356298092565182563295035233338487496237371362886470347610908885074433502662811778320181551201634022073004625258077869613491140407902502824684773634256269580993746337614660399323027249047490083996937886667201244039153510600846175974924856067908016306894820937949011747943327998403611012860161952417699275100024139364954308105783195220493220753735254163402620879608062387674266883917743541037174765077400605639251405934642854912457510054198665956103118727385114294218410740332135916457434486202546320010629807326480011969553503856445730784770738185978918465874624864642218751014105783726249133782550416772704824060190659969196142833672308286143276270572015918061994833074046687121534917595741338775016144850541893143977711598130654606560030948251116945712271000684129552827508085472064932292622708793863485418329417692411989215709886502204792879854885885171589564116585313598456044915387877647553524495439555031615507291635322669279090026920253953685904954736727733099891038093306496202208371861642432579782580489899738768893019309883679812511164121018494206156633155405805924027727014687121203073248820895758207057751449610663236501563924949504503341714655072273296842005306966566470421443140206472532215423554135457656316266379016514644825558801186738901332997501922878433099329899495499264132992367230147256350348168711445583438377165501155745040766040568004721142555056343010518626681374996085544315153385691519575346393758273922766748160765544234812615625155643417639975382300519280796142298037272161064933841712490789979185523995439021250484786119468089670158959487846708509389595294052681783677227097733996586307596340158550653719035097545145182178345979102363226802869660862841365143087274647443609257744534875241571282745556093695694081579952233101231186405245616581866109867203409539524278053033394671078827654024794144695246999572831275686986545515237088760024373438082778679393543367091418532543822270245121245644887567480189783853184798666701889771259586085624558014045671603567119645653270973831779105605599374587877714909328040638432530145161638295835572882178378759200756641888733649692358962509480234309078014015402474845147813954251369322600578619320247670299772022098196952225324482742443137762048197814863761432835373345780582293300191061817202704770811318923944295731941650140021688442471226048358936707703908169823651936302109664378524887248799328899903307721577690963329422795358720578973008040849202448334969326847874032215271047159366086878644092261782271184999468383438674145011402709384905018942926492790627369172893175011126724708453010797975450083252873140653980831343086786790204205962840927404580923446502676758255765504383924849836393780789475189774828312840335508778659453447190002568186838833545293818449859576277049989962452164511645828184527450970531820081331203768178708185561282827565780468766335375076337746607920449313769595245184016225903812276435319301533790013660505013222368110314861844597586209510240630000673676515275775263909766673907889573763721456834302583541632509222216403762820025854259206458642844003296192837205798400697465148313989801865883441518287699898427975602006418077720333262897314194731430100900813006263998515977256443634153004731594266818873060142895594120625726195630206980904184641559415978616055961060801266265483050260972978578537955528305575003815186881892829568008924502778156505524593295913852978680278916357774853825178965282582493639443285180203270551464888590440071932415233735310759702368213137525955898613226483020526793690126011789173947367946722757091703934255552727756238698373199026596656305164023496181816279481244342630669677362926886738776514474175721643524625645524699818024424302652263948095020556050724688598323689325178862943463836596610688967484097094513753943653360924571394107640170315707919972090627544150431010018737889283626544651911140799899474694745355900089227349730629747355446535663040688738373582565763380214034280604314805647388629489073104856608873098479123466474660814117198265664249029988089556827725571442426763877561788870883378660507467333098681790565775242834916997777283225044574337291707283569909489596220122210722587732312736707283266265189384157880564163300794096334590502026244630819437074541236263882907318743901368346710310392705311435492347466116215765173631349057161565191039655952392871381840356292302148472182155683849532756978224797107831376056552892645521740305899870651490208866806348480850695076483302326553229794506166126424827029412783212528717797331357648814398876307414872884826635045842080042778344303711114159477931409527085337910154833947146721215655779523179739957442534933827630305963527796005838770414753178497565451849031065241081814206154051507083046339576023744555418473053965268130835884487202480893472174412791902281109560106994511885223639446581086740906941831217250537477493134335174675281951378270789598919052332048287719024456708977594272333975291452620625120869629748578479692646461053415705400281309004486345126082743392211418357994372122441837275241858105811950589581956195013711854350028654272127644929873713405246644368024524341691958984579328577761297731680811921732888350548559643345194147244213662831697301242285091315317336914586336418035263781259248306316537331161369086888946866267740149244537211365634917475090099940335325202754779806305478373132166810753420829096231894012823102549760013016269279466513857867398771330690643756147634852352658597547863446271297813901235159146875130652364974173729306289563944065810049982719109771281349874422181817628490736684047120340992476041728086785067342816546868230959711240693008847064117492448147216107056877316546505865188461136331586825360146112967290867341232880051337126262476260450685666070981359695487400138905040493172453218535599593817947757683652445934173817427637496585490177907397591511258135886565986555004848878319119136068147693489447219714012379498754169961495547126359353107382231469920247551074593742370381206358291428742521164259102782933433409187338585148799743217991188010160047668453219845535192861367238034024789127873367688044460428432658536347889504434100178106719091039734819385201088347345911451366574061459480199036620654915793736655466585368180963408793024044543213648802769259571353948974575092518768210710981990687305302984646847802549953877637915874191747557159494782313484667246637229994484925167138189715762204501179039576676762563456331844395497669953515902241460839031215539120532136315404546069105428305177979270469700976981864003732827269002951403998326009175991623405205600102082052481104986358713075025577448631721046054324049451086109566120476823946367733806351389306596211417821643277340680449783942359275453078782228828454508710860174893499775658744911311311778497640366421797636686052195478031407811207090744050269843717350369874961251951483382780122483316059790905615681583860886770795904038951282667216451043509691884191276437698515482929537772537136883999919816475928138430767860852439152745332139016879643256987523382000829650961328899753286541937957268575614430745029552242905175663743546731153543211270260470596316797266306728504673522778088937883353870829531721780821057668161485296939670541565286900973511585749344973377929168304712426680863246632913896226693448799487568286883855065976194540605248345310033506513283241316708089684965671898124682421520321200357104244516224897012496833109534589288832541498429942985519173283198406690644513311790298571898552957263389898245556218653071962525320525346755810155766806704121397330024566937184800517425708343228194549461951648314733632007661383642667112211379605783863183924031195277569529561771889203398589981295283570174825583250439751451037044343866773118309762072967922218626498723719121614392975596421638054459809908100273399485133645716314269808447247306465671713653042779907768797311842796767919956235106079170833226990230005983359837888327753036662807323128662393222773000125412853431339951669592365994370125668262234430582863630235115815567875303863996172435182768889741189711287194703206088426524672662905777345196535962579477285028723235082376986677894013042124327645950699157250065277162268661859368619131123251165018464412977842007888260792119324225369946811652951299731048807055390598087834733842395690693592435741821979717418403604298490472628929983579035981940607295795836185183783908695449118185601804179829658935933298963086753502295944710742440021337590613219550429692911746160659151442610268297860654227973768584161689348422213408310194196114872679175215213688274670367452072965420526227640276089172805622612886117346835654726368860569565049851502823265269344830967209518504395574171498627819886411753054765080269128752679276191615287894481917664784516748274764355195063490396315296949539132266435327340879134168079822431244790226669469069047718161547590104982868994326172005982337623528340170859482882522803178112997515267232407996855917285225915088612165594741044866122685312846444693749623569030793350181100622125116169087517598184159737257011586018157822920575391685733386669463106277619787886100779585983996179384039101562635991460944193964696262665002723560268242924959530747054729127089153875528095619623138070097869963970131245586415882310664932587581238404416881062999045483156522244633208123446703983261817021462457959761794872384477605614879223845798627496008715212976400599086017035273771581224181975103440083878076220188441825737638038370058648936161111156097493331439926405723686889105375850860681901079660048828790377568636575801645187072882132565825441366427666745478481972085750855464967549484012729745042782724707218805974662179545872710053840251675569774399729573594600719024861283531396081786563855204198038293818454393631289420661407538154332909445764332840420793706009692935314644070422564667045319040853204310226894496198062057735075170784976809428626620760100923316348038835524354982589872080049349408705843245418068283964471211154943856472687098515932509360396699721097384646885006129060436001851125943855032675215978351030468316045945347696935012269707284040578120523783356996801585008682753815563260866316356439667286138084163721838042515716709468633371810050528277122754997168772361646206439075965515951576229144640016937766546230271018361606080764240039959816329140211006541244182808467715373858255777574854558630485206360650019570293247167978391463143131544399674580746344714029822346337280204129625355106704363567651581774174305086697691610791608502646867964090396632131844362630494596386239145945783951583502359002754114016726644140869950084921662937438969808064734186575740816749361133654415361386547645433005114532509698721151367896828420810128692324925624354885375862876037426688409485966805673394884919427464061500115502598920740724929630884372734522961553844931169022750641537125864989062956956873233389770540314650514948059700558814857790233633773550023233061587273531071776432195509616278052020168677891091868624591361569233727647545400436815895370176329042846050613528700033128976639795223724927929834222711650303254663958750399859083259237364984507072714999454560366044441351259960768486242643294374051410732365251605654934667015348408288041626720229802545359659759024225595462970080907249294063897638973120069568638604083569564998141099814168730966180178061997692070312697620055499380237315530444610590769048777010434623872279099215274240021510584376426644956452760651529532118828264613661713501172978733771498777787057077996957003881704422904999192247082709042929928222397198007190963654539704756646222663201333087605780522003021569744372335308357160972196382039552204146060372219099351134859695145821875568973953126537052763635810357224724843056402123606037595968032209528579909254265181564507559766617878713186083458294428426024624850294603095518270486919882234354004487581551032295594794373562088878810245393573597768851958779576504906029983476994782627781145354045974364656968553622146449396843676160597375814496086529937395339295036270847962668995912177666999164761886963712489197355136846714319670032739185016342343836004856628833289369382252901616378658014951001135446483822893280204989363321150822145157281928984933570321064471041491947874825067006990302027971220200634641764658081408009094739690668322126913459585465235486702825322963116847900428066779967544698708191979095941908226316492541850194565300915015156817453208099525110601989993934274190564744225463301882094509496352504034645476369568976294697905448227803629150441951371945283884676938333999918314378660358860643025508466877582033986804143016571608500584283998982883087317724111283515187793578646331610828227800332742678842486447172820092376504027017660694443667678592155247506622431981585732803637970461166490260354819144459177920753643236167336391660224858195963421314433039214916684033436088194940075968984940439515662181163831312547745321981920948572836418523207494030120589026683399357682843995338355756672432443182317072155904430889981484989938823293316327600173175762000137664414054105901164966934106722497926236820045334957336834957334639675639719932013763499232975812114506726392858768911580634789675715967618242007256487788934411324330635647542220924082519215039711665185883189612917548477805060950366250825878746288651430146364859676142717287281715291277102107793332968548793319259571556801254687975634041811827935170388573164089997121370988535927419380822411033790962014689808623896487156058867967682744989526737887664620438252995890361530690199255101895414936653091893881355003054446814134805291632466296613816908566521727744179047504431827328442064363937787330725796572024669368146348462364370443824864769709578884262592802102230776488505222653600008868333126726505929230918998666652935173220848841909588132206402059143037370908065342971273202889910935686842490111241139043322616791657594996617600240986126801029874074836857904639856974081026050877991819081348697603636032853309903861094854953651798309693193475150628169870373613096670284268913672021040600505513876452632743046790083476240119733766333510073462735874039836355692751289377129726468171762329777432314936190787343927831015286741781178099620213698800187882028923565436737713468916483336947703606516187581856447126232832041423907803669962475113228588561582978768444987449771990570233859630124206205671786410084651963694616318952113872879080101137834592745084202119708532964048274962017248715192903554558313224300861705334321393899789422050247297924726308299627330085365847614316179704806219735902626329031843166869615818802792591414030816751598174362685421165566428415417273745218731187578473918159296289599062435472120872246338179590466293257900734995086766734327721488468102358957814566111057357788778535077435002760726692986297895948463782292613400921143902120046246364617427677005098904013478793810912078690895088204444036243353368444233720094947199307044298236781156958584111608201387975407845635684414788713158883118750027417159300999749304982768868250697629081111970771418190723342156456377843855101949453043288380581460472903272866154641345818951054475077800862485605238453682283089997490650499265212888732076971896050285474244082401736646610549046386836450830963883415000045116063537677357718185997486198788594074201706209823923959194335729187376856759264859196675340723917736615662661715932196002878427712616003801550595965409899646428380212873019319731508149582483698200168427246268939763145942136399327985659839478151726672926566921490886824733496561609850453877712416504256708520639351203256457861635987539446719265163696389971023998114931916181685617579530246911006657679572984766866028612684429983695996204929886297702512972931150869002165669037861657509645775369588354927330455250295954163943491759259145734924137146064471461529835504961088193575909689713535717098794671305367339422952318775571322029836164899961920239344731515846593832583300719451414501548155930047711806900378004696362807810457712349750184245624394954609401211238679357235120731745396056139640990393860964982553175186041581586671694851402281643967208993045618500206615526409884795658133165977870354965480996768005903248282824563503725932328721799615561905181607837879573442582924918225404417625745061618582167250316659947662615560535535130794612434011944072622210328586394550406296525614162304378605924150177165811444135527876480570246340894127348143225422758182982889483497499380301915590978528870581624176931825329596612171175883685278914618574766302088708375594668614863976857127558069853512162487822914974452843817737345007740744222294986793253834811767137505363735636711784703964182959211387193410567507190584557461056052939934989742110139353286640235034463455735576201988972856197851120966988832454834130288315534672496085269789362942810054625316352393694101393083989510913599922419468767509178614166486902276738425865872417454908434211499078771122614032539036635136083501001073238249721625169714193764893252543725881337772384137164993170303048697620245373668066785840738264459388146232599799273717193803157896711258542156645878223449985817127939151833964804403724702434555932920803364754173073210034124923374759766761011543304471229441903278943255223544616484622579868825944768132065368428300988310161093624402079535244001290899322839032632421660561248571429785373277616291941272322203857159706781704171674602167822974898996825833716894962493791297150008492911717613694327915808240041773247470084318950571532065550476658599643146302853691458914209265697139173434262255335289292436217784387781359775361898219363696042355636418380877326865732984249812542601074222861436077080026463335533313401672717970409638196045559119334437718282891130454664671841216001056923251516045291904597032948748041752877015303745979706938234183382641322930808702229216452552119565467740197888550637992535565850862755376595622337925147010699447444442984136601286444787072508024210670856840890684704387073907567780877768068065465855689208549625063220488850528724261971477694251054121944364796091445317675669091061630010267729077737477643161431615877814584200703496487617429608053338437457102553729552898086141120404143226221458092533353361523632681043462309698928789094602165774397710492024967222559461694744531315943291032707851459979744942961503314652209532107151310426710634124458972754449431805761340074011578160924157940339988467055630066384344914605932679503051818679611156816819593371537370534354611677269197026181380494405790292445453469015210353412724740079131069126743804022920224122527487975000260751059185661006637633574389689886162479625234231352053285056910940808699408008335387315386563111599821219255018979515958025742024854158588138591392238429577986601376912162328918485545029524194662453244463761798177891417774503681225736074752995914909498102415575540849311817301638290095779470290429736164080748731234697731215950826585434007409745743004957884989678198132448672034392803094433522920187719913574721875425176382737099261270113361299173000822374547734709503351984039596921174443214121884191168044424584436032028222752161058604416805496822532450252570208506941984109689824095090913684695929990145223375606314975322114963285537083505509390936713394254937346025050196784911499312333805278671150884001480122102348503394832230490062567062374584435807016414613680166444475337103730696672764114455985424758453480904368954007563285714688357005333465954826798683512031766843616716597411879577415625516589383228587676521178957124686463278424884427715039885627131923372914465720597359823916778352101347115107157929152906705713178576430907041959679841998670404165783170400126288440212958814341121697381594191008886108929441981516402294164308599199936079895510292411459470123697403326992762916645936317798535147948399477278823240862552975947635165505567730160743152274054405610632834117847757691737598689069889754428265162530588090418995583492162974294308878605461956716867947937790981559450766918259567650381976673378840607599247870040310441306105231774975693398931699333443928281297202673488764781818121529657205589528954063799828269267555567336649992977642608786347269624408676290651443025147515793429301929455787074713709239209426844984199240000614069970398130204968987795817665486465094512778075782804818477697164874853920566899011846344931319670518856956997738070206070723371632480297867624293571074894011098980807675483198709668493362878010871845830975992380311807880513633235038069867418410098649960031176154616089939556417675152593917602512310811782627294555941503036816993068283098528645194356947035693167444184038440853327300927134963383366961510902283607773457064941777490699640753255821508066990652388825144031487338401353841402729091571454440221520447778152052104236899331237234655844882453653556448429121147856437504985095765861331478546479006301998307292892194265301347449717828687506973532384953851259780310787544013473508632169150872577352415744423570696083854579458905376307959523458510400412438868261190400072362532792372272348407910172513047741234095472980669462493316517438400376157417636287095297587575018511693224154403100224002815448321151664618128051379859723889049688581345466686887459913265460700143514833901171034629174041572578388662819261023376479922657838871101786130426383198337384880622957472925816007176445979338255642977042524800909582976903520059700789459056702921502834624822530525913926486771475967926192687482407159364541214137360319284883266944180180298242311298923607306283782646987642795669162772581406960339347716509026461471888876452728090814352170854264064747599511954498049289352428889669798854612634600980047201528677460389994106338823180117181441873420889947234127138438400075891186279713079658146921247632555965529245445802046894655528934711648847099792085040986553239817591613603685855177545217502987259443429430812144202268215817186015429021732116722506553396160122430524313637317018331868275077501804536306671691676212044425355061999898733816230200029934547462511111407805590349930616913458593485137849201808773846026335240666495947057469139210825762604597308145887598308752407822850272911363282249486640804066812872081078702116034418773972855736183610853906304904458412545514921273246177803249861112031367524725416663204941457756829577322701788768853006412176258895699205612778706758855381094281538035142005301195160407231752530121963539437360384512073949412513991824664658486095618759131539441809084540941805108956794023810609958844407087550204975550022879280348550409375520899712096189155020164994089365529003428615585687214304089220556336256971813156068925458856770127199817221543210782587255435998746414457835771889378089105499016971255953815991331724436456170360335374089082553471992921743334472957007558931004676738001769476101643559754073808248313809518332991613658655844830069221058261924404738464890359266260904844330569070023776513889870968934102823523019026828964838279812440781330893534913851194202340088228858561358636699097764892343645882893597465104451906129815895954635883254678835338229377023380633022929335329978219318496340517155366082681633957615777662095219919686368504061994042179076676016314014533459701901787663506597966716392176860959881327366601665417958384703632829427816054692262596432229559221430914569987737827213286840874111439175698944964180270192631696522252054067064323294182292749284823522270167134327079205633701297152051946558924820681391886435733234434407228425166397946163071989627803405233131180873067814673482574250498051330418729138188447764652655577019305575512854206342041176537494714645040682047515575272956259642803501466717419803815139719006537344318630553212670572646311616276923602162983885866098184199951816322236030591287995316558376642435604044376113620041633914475869249623113405655356868231270610638950047510411364370311506979936735263248505644382961863225745200601511501351729806431116850129557186698389380433288738044775768610882260222969900349368862015059749109223807906526930103853653271840007500251105629401779396382591082594407224920376302314365282035418382463536195276321226840992691903996164366968523928119212713529419650638171667498796429653408216510197951197153533754632728162841874814916154355878568578671584316888951345464213871402790989577860499910145352141064920056519890033020394462807425830300010727007861976429476767725079987558620916620610806306757858603134914841687741693390129593448889130729495456573606519908490519494356110462560115283335797179189089141230406286500982091678957027306780531655215194292467003371137356150483111432678508854080571305664888136578832920110840886706117649860272431066866777355980945332742412787596558690803135061718061957979176361933797691503726646526265376584584292394902804498540220282042782022244593777784705177886636343124495192480209963397226211131658019268003937172862374644526066802482579639095388936314569015265294766990675478326828091606833843993132540735022603521827682937835109147676905359179192330943238659685745688998224080421611063398798230512759931477879445310125994535028690819480830406552217992365709631652508182474104429292920476813556164516384588177392510769957553428794721604179177762941307561813447238441876601563725367695731177512896457631210613581604714019574895284715231840556278807168987163926106358463032572283290227073471367635654601973309276837738427213212514572567967892531372214345692244798257320608637209293302065260704099255805768767029767644076724263444941716536607369316754381704445549944980818647183975580724746967719428824145903115402357821318993915773830185593914777250590584550702205343584306619285852725020593720512978062427430839733523878622728453761734638916096537293230926995447437862818454757851380404338175064739167458887471755460186647168515031387924628185687477463805873359439701975418143635107444309951642976077155354008797060699296229110953183956740541407260324049862197610326230560726102182951074752125617249473058841299913424081364221965617076672579724454872548083185060279973595352289338661160698807892648378176441905256038376914037364284578777605541266051742187232705137221702995441307175950086661307196118797355156792803424488968838829058488862571549182663022215264240231783658637761647388873268886944776415171891766749662045728205996482151185874690916422196020400778708225849851270942988018296874039219756916763134769014951409053506509198630158590675744377936294542680242299445921933997992300798488872184854392384390341498048042489186964475164965007469372205888165222648084231029296951970828499769852765493768405453016603499380182195530511384762686990406097818697587711584507010240520285142161832013795695331303995574525596015947413934950524472675502905900915609890953015792426121452163291543094194199429014465987581140247704410222564453791664123627537133410267863040147817618777152141842671677150876581483781764272183186250530039880512277877717190139536897462511089120430779474234494195313124123893113913657133702082321775634115776159010132968347769232981081709143279148898934382893791080573735363606553654777694332657664855713240681008604727320529643536750523488344034469019017597433391728369856052426127826513962526650216574580827895179921626088062276455649978865479869776000559027576864217910650708980021450373769971168541020082078235590342457296528842327691306175492784093033133751190039306719586488497993567607467763389696840736376238456166958164742989944331937581336770044784482976289414571465964834600942824412836384303974682900645757066385397318486997594724528546395328313445288724102108224098822295621752272343590273970968450975034635067226706238739131018503317477638384493529636213595761909989321512117834165670624157510513870241757765645086783758941791270304349205700795483990215025829117561886227868898921301018059523211076591024229338437116981086091748641165083528302283489517503608309408305952463895200101814768508120457907991987384783742211056707027342294812344483038489053688962442839490907975579778674474035734674751379826202057955218937458585073644488746713831112659720336653040066838855118468443653331339582312705611884148455156174010808773786693416542914919649359390358276741086543090949040210568528261844216689379490037020804909829525869939616700552724420181154523603883800490939711774723178616115683749873554926248462597090442103135896088911205225366392265789398582357549941061470492460482517162114800324742079418706571703253825967869128517030998185324974116697566021165071774947562643296978900739762516434332157521749534186645981912729186965667927961960814060974460188968402226305424836925977344994806090912558907452623337796573746906514110371544943920310945355571780322576022898112562606049194622152823376365178469262350626380511998744545949054459140708206805441798943855350271831044205371295828390139248783329581222800662706272148483394654939050638007066597799192929447557662965208101338098286118660790308853379399865913952215829704611360632833854006280029405236587020441910601129857742028490381125001580131793331385513822368706076802456010367670295258018723757130483421300055153620718849420881596695839782297989840914497279719532881881170021979591494254950275971845055125097817950787975464345694752148782907903162978048457285976642887084981711668502252466150605886741511829376903373895644734757320378638668840842123903435730995379362644582801215182686523234727712675953435477351915688407668853649061374899699677137493267637251797692548775457488478435469335983879178855049430843889934502471680788604683854327246691099434254813548492833133052502949561353853792723227586299706881813987519993732473173661881379820413939227874071812162467205176983234807263941142522913963255984673481749497506814110430564565461105046051800259643417752562336271259956778683519612484703704175162216304786423744615301418387002236215623407834016918155749980085472765082622166047986128263058072395353539441178235195405470895481025067092947725382029811697206153190284638680538037176105474920224312582435068443437720729959215200610243889273463227937437446029409472701423272556493049790695240440520647874319215773018886695683115214461162940432965762136969296675316007443958393539647818756044586288325941781404277499648319333820887031825670267151597409452624331151564781708236156598510267818171545992017346904807194480409758556930909093623742276880061306093043491713975091217456413146845283167220956933385302252506573857391679211015417471919036741512327043099900374253927865856062260859667053298270903236625894903415285826204600163998918178091624493244446885961021137532676441567269746143919022320010955222327970950833553437532278074040728175498246408488945842106330885479932168978855370580609844340515556103645371683216400870123361204195773735077063297518198796893099842315650703872660281988251069928660663194121307052436472089404931776874488279700604736888418154641680356830273693699672721394151202392752880726761767312953859415030575292287809409131015577881054700177095927515311693129864778054669730008635289062364429284822587153753235788769877294713544690398944231537773266749318056826764502387740909163245203129312115264083178115899469778815064345498123900151824513773137092268895864720040594078323256673150149456014618676902371850495991436891498539095938382392194882361395976380408161412588611182256526291792428620336285659410254918957715557463007922454439967182665845034920701567090111090361633380289222019260529878329543576436830523440140857399803171251683059734048453033004656453659591553031890241937011261434025560101836607291423813786094869363538095095976213728121909020005092400108919507502446640732278681608458517377998921013104082850560867702250291547105177102901902860584976365129190860435520651402425893016194719263166948060970493184615123944127248488015258125989751598814560195424504269707174150246311257502961772869972389458509377487131404355642236824638224816312604148270591436298949064602168931203160876521566130538565742287712175564393694999311276549995922046371933720298717085432670178590330941437188194693002987932009650306484896569021145396182065158438602930639524589707901328719512661874599009284315110407371823196176570159717795615235749712657755995451071570212509988472709270854141482029921124512150765672408994055384867823590812912227895801072572966561638672796025865679115132073181973809137083831044527213234539099930417184666641486915682558459557976553417873395483951099581764016133976800358851960153130865702865426600564142048420673192253736372551992979102202753965325833632113412232249691594526544160492219186898419974613222501012543217021663743532530947283719545306616402813972907039591434686582304989546192813645816862252282928395859279787950448969279104616556857786615800018119367466138567799965429386356089358119726223840485064367640260226951390869641307290370783380077087343369585889599170785281562542150756488924865563492897717051414438454947583251986251868322173526312033352868212809012798866154364124903499181447901244785483977674969825859344297169027246811492233145293087341926126151978516546266505363139113199767361191663905154148589370423441640811517365254327657603902308786383718427420272062844180687349786131158300756978767485684933286732520297532629503718405447270967951098659677949308570615303248425481448292148681517144988589731842259913732334441414102745264054747515867204403746327115431262626179806942268927039988686636154791353336912806072113449442681859236015640740091682645331210240412760190872122964412056614121296029404467074100048865617663802827500101630004749797081536285419043930286298354107386582985591802367644540339746552745270389481139002405180806763711092249534467496634316425400734530563708909266344438243631635976138122508662819739423345339222412826725584509901690670075177767526269254731536629697037607397189335411334178208552073337793373775171456888735724943312452041226644174338706979179054971418711635474294863733289270144807874416462408645292652001587930137179867333561495776265570347916817607614110850298579355261655938025824018610298217345218997062126065293798354530027864425125471280462009411199548296570320704858860885548432402168165140269626246724875234363717861207043598542184947544456651918772973892374345128434345309434739898712966301049911973283552150082615839603261841027385740448873412815694613477266888516804341181939597902704105389918394469424276289794322225201486464286043633456807345962613852474041896269780376757849100188155139480174366137941765275145311373842395750775321720083691890270842492407466702348330179304563580650134311891990183361979417123422982335211385780297898253040886577199887376033137588469434819830547403880245904924288195834097180158686380456403338790573393926905798292947811642605107047979758677492113720809827509186349355011157645353877157359620994699331836763181345672272676004412146863754028527638644368394363315842704479820203224080638064920684255712245118772125565963382662778918151921084256900166488117999517721424889480970998458277555052149552093374179279713838053510827009892972979074050110250585863066953475324260570729781150993165082075391559052402266914508448067611477122875594424703686117801159086611103697092426792006971613995599364366298006753443993000868545842444365405976810474729021410432352969405578561173413033389591858382376621726360880228879256062217136452652922709123635441728797403492381416975499926659820918140516216655806745097825011215002705735488767502807321713436506853304424313944996001173303352165137572415651243888580969639968527997986229443395656665400173179655342744187336499887103972652425859935628599311154780620640741277813966878614066098617632140112850559518989409826673974444646835827885282461213661845369234488571454540321910311150022440526719947454115082620932385604183220597340606677468979990287398809907439353767830803817009579291446512696238624242883224587856601739038823322532844128295290621610556162388371574869376769642760566049365389770370049296886385673147590727024638935265229200094809631242360968937953419876488105697659424628983486599798128360152166815349540043789030811321406370475383863221539159041691272683169878014993123234211946565719787506904609499995260057856569276445940350388544066249715371263067820726629849609278411544688493374054774848598511202442037867232603590678510355740639655845909461519807456208397716065417114200623316684035337003983285593706653078180215775719497645236800918474757157458068306695974755522069728396961358299619991944571130286536575789347873534110677953540367314956468365954572332784881865296312127922126246441914298030933756557862164939227040429206647068571784139752965483281642567010539270488214708905116325113523233956482736838036090231340050261230278737331492545450340494496692560493365399259553170998513164790667709533519445619237234629300538336208881445962336882714646313563832234415833094546492384436367763809472058186503887924517257391179515032440338901433202951938949024465820410084740175530657181920873719871362277853818293874862110325946445969845604041335805355930346881985602789990185562603780113965415962715274784380948859444722564720998391363972432917931223070101951021235936817966618037013344478263503619262416911533803946460845136415460408683139942800671154427251000113671278957756878449058179073703639327025098516394049702774226365949298183401014142960844706321328040388530501334313318436314724698578997886172791617132963845200869309223673870183017405405304192173531535101774639837090808149510531442810746497216592700375571683171979031481564714002172909154022677967664168922685058446233214186050716875170887080451044783843932684784903970752472116043691487350930366225435559482646038173526999502549747471119216553401874473086239723849682517965512000142988523344921287504666552442546103574920111480553278084613244705962392415362806819364189607237211543468462211728908424188032924677150718638408548243251581631608912002809311236946533782629702636951478473688672551339251838788452537576574170863187892738036354229076894094645798286493811539039263553487141026315013357853912388047957186085800514881273806176139555489265734267617010462318815035782714195492115269000621151921349064559349904316884138057778857449265773225450545520628850935739600254245384886350030934664140085505707890343917239732759602160460362858683085042918453704504681335781640426440122873623312657792176008124689606242640254549756301957730684019238314723730019165724249565700521211489823428295569535459616302709511398818440742673206293263289940721148773017343313484718387815825412726749301877956278114224386745914150638393603130218277136627060345451552510700038806419750407679529110559498256087034923377254305297947979159006701698940880378733861964921640158347972025076546343736561126720369140494447563100595937027173919957615366049628687830034617602363381171487673500644472678013002239672755848058766767127762732516844056207621758217910534000819215887173172031627838389300470261700325538659490126865756466801930003809497094658071106225403763536887684767920376357033083302261576059973921994557074495978507675210694579148292574745396970309633548729702894305776298788474727796798153826792810088164500317055804718629480188379068745265223719320514790163377044163836659136458454134950299536925912410868741343654230782362147808046642410442461919189213715804219657583766640699741806922003573226437818267996697595859970033704658915949545036099157079742088112423743676331580903583422295711605896904448583855188263645000780216967251251547026517371652673989832098059300616985218299838173144246986143677420083635200871774911909012380791798500268217758485527668487772358040984188702832965747606700982451806621424295858224287110150520559974366937572898019235949421882840727621745291983715824051830609835891809604969711426274547551776906334814796600753601831044040535390988987008903175608807433072535905431483888264788566140030901912342261798926007724525752906349532379860402464026704767956186938783552428590868286156308573468277672008409806434113269638963882381940862755597603420944395849324121307091558206886893899271506143031123488968915539096539209517283831061992452448258846980358314276650577905226497910572791485185819357488449078175469169017799263907475721069735826858109228603397052462851674897133424498822734274613448700571569147879053542539364323953740027044131295083862151557818786470104688910493402618834921186930431102883919878547252651176385317586001598525184099145519306051894647368694934000085166085990079511215073279347103858551039681945323720043863314019281412109572906742833487615032817322271191677420394871999230923740119386707963583450078370094322423332279765577528420193452746129665025015840103147888945875481275016992941253470300061059828300708925234264677020540153693497100503657716214893335450770698690742032729369159785678573746928191011563189159816781368627236359976553633553340287042397337670388054139402429009992860624855250397707439792029903341018755186925523380633940915433363371594742685552364963378393347219624736660232330548617467183051045336060625740612699082151826125750194602202692444016122377918248376085269598716120520915627005000576298769489689625350982936531985259545467250280819251858323904620978253112323951736578798348497961457292090468992352224292206727214196284744544810384608353499019605127813251039056458508290537389828333498456544914198820093867242931907110098436552093451724517472991517389880447596993105432691369814687867691144831099381412435474632689056436272546195014848874522208732480712909460151919072567653289382579173372097507182213224714556865709041358448745236155222140087349064185267127445669681878276055657338919217092240336773996249568237839204951701299081802485840590074751328947844658955985838383533896596755215367211164461626884792655046066392717791847042252213510158587419469890876265964633020809843137964771119781841400729547244195352269969223676421530790842626440019838678250794749413141036066916931424605903769758198236916718388438267943699159882311140171926149126026313554659272642641871672346238539390807311533967702553181330739665738692513578612283004288218924921045477050344698495809347781962840820511810383538809771216987432029679326060738276932423866928832667598451165930152293728226208870118594923954370635291282742374651117545112260937859663784358422892259358335879070232981847318353449635511574507775450285438476356082425828939828989299049340217817556346877196867087564841872483505462540540503749581089786840860595877202022400995516023698214069589740022176558540763183992965322803290695959632663369719356636539833767607001164968658326935916622960891918010158568782233334068536639082181427463154827399324430451416147336608578731786185932959290985354179758149395950106456836128933221684915463160491436197738252238241412659422657074668759624024545991670067025676894490730933037990282379892951629808563667280845686888803819566921890718796340668812332905487181645353418690818805693723535888070564502201586696338840919382074196371456213758945910348037843241465758870618103420544370551632141236846461890856698256683092562921584516723216674215374987639147277817685752862166571124738497992799911691233510948680250260517817223625566746304905585750579784626405885892759241881728735826020511933776284630988928720575980287759797687200065512014993383277673521697289027897338544715146045358319912788280366941257169052793371712374993181088780327738983335086471776334602218270795121057759024895878952814023116448505241246997130671463231551769928238969671867943399960188380999002649338597129655570679293726497347188393836096436352631786245395434035636234420073689474059640771071401631346413369248011256110997545521731307933106429831810450584074781128139471798369310065311491707025123388338805577921441578980512465310374414662085486247308661714396887453685382190519980725600280966692918403315298688865631777961898468858015160164094524607844113439298429263055222586149068661324679164195481293321168558158014651427924805739533124997186318156930631203832191836510248416539925186368682231082723858496739997117786382646729659956144718480530110153519369089961701395107816949742433066365615218477166631498285630243127403905020713854027037640492001627065583639594519776594917379324366959470141586057611704552519789241997144429424815336954310651762162727393662462449903459196963279653272717393441144332122540077000967547499613386060212652810503443086187188052869136913508409257238424858222774331506623908394112623192838346814886160097346691543812922509587351011011778378121978778092790962013281571336186469527274152219604377973297330042362815536928577396569057251631864826358648621524455425769496289488480008501763214881306586326004166451151951532093709083790748634004194519530014828888237860512002869431659437800617540380988252744565510171647468982125741195259176228576627121945274759440022748819674520741820327446443030360274958833793385102624478863349861332390474856747277697558224334270288490195216318150181071752137679454207899595778747825459824811278277863124327077940040792902248149432134431050524328767238158646357149007652140681990546030034925998402018681375684430961937514454462049436218775654140682760073688272687690200485561284471167487317324933635390747093079353060483752851050456275735339041452501127111716058384755137148216303503598734128306826835505047370068932423850971963221920289963840471514782254591406501698897503263723781218064863455485093900868279538467053079431071815936745195478293907651309751074978315708096366957651586313138264438294842345691897120452222003487970328834884917277968032441776718682416046568377027711817684073219186195101741887375197251942603284433033412567875899605514895890220985346528000328136178653533403519711224341546482278799870352648389091456249205808645921073791892702756759847793102572763787347041602085998745472883464167194952003754622804320553632718150278355975609228808736496355087245714423172680200714656851076594626265345213409467166504123272047845986783975024304408267343868061567216470306031600776825003671202938016595428171260833185003876941447523010973270485648225635696408372324336067940993258084960618099039602285576545185697564809196520298996414030890806626686046008589170950519490201285556591776821733468107025983410655295148466698579754009269550223481069923625384952686885705352835377193890076757763955279334356511376776043761296189054322279679332990796310533944371611157388377390411427055412411563338599506494483181867218081981700274911168293383052609535188280482990552506250359033358897402489807018282531756718982399150085105164697849382059922987445782675158583947830098040914845911899310467423557390408628631518983053950389980703005917224279679726925239949776302119287602208351950902785527945110759775008683631520745195784238084663533809851703891463132817218521061589492823775765451180726206490919361670298605300036100266167694117912799753118473436802832752586789229929802412630314859375243732087662122221859309152530046852582242288760301127214981297063707764569029142786757924716084267399023862486287574356143138720757018764685140906608803969989507519336707088780800215664227993165306617596715593038096620823126720471897129851515578650638192292350806327052672136939833979062336149221468431782336566880602168846496068798469541745026374905721786358228388394553830177937332616098346012689430162956169770708733632192882705198905195915710981547640714709508512233733087957375239481403432006286976677223316000571805794358252101682690364297592705424517657504350830911651962939645217038083712677423388495041644288413915135663923370986879644939812715844158471906242506364420311146394874000326408602874852192232509302547191030603530567994401554611045787912647052645935484725640040157978845347438784295918487504966987080430294131175756056078131109712078982521336212323866074816170446652838885294138527845192303325414671853618353086915241772587608611903077591281517896661212865942412529973282884806488724379195751279656095767079202214869319504580553577542466528978643258260188088292495870312236666462058152587377884361715943074243701747692595418853537647932627843122734181899113869436206771640842550915512965057404406067358858398426633767074092376012452005002284455051705987444740249577834302448137572040357425605295909148050957283755039179232408815012272256906718794673620470598678752348961721529622462713999578478507660611940788652168248882370622053667709863782907533525233988655554231202513210561288340729577863612768343029359698199657147154938362863607083800714433841291974357136670017228158008700432054061843967294411057570659252335432675394198180346132039803471190021285073506778394959949949488104343388210902263605020490222104971250756223328943111709102331439531505584548875249764417650713755193817473500741154281270570863367859830077030402873663497281998278376905753642028439432909029731461007025626003689767066555408714509095806698957773837527199380168083296200104791285448343271675399754237532590321589580305834664537632157257955808824252422977631594913427896546218446046252626723818716646746677487697580647799833613578567411539370812134283262107696577831057106111329956561613536257995357540366586359990861984849656053032534612746154245112348292770135325369582102205473024411771306760701454878903097331442103867674727461482614318403428651492091289433328939948357999314012549454359314824038368255898464423308932720248798382302167749388416786335784219729296451482074138580488245455670510306559214943402275769503789478413220513034734056230374242464083729099023334009176541110338416828471269498200487428854663542215321072735127798458963665462721504941708378891711645997765962586112712293087928463592915312545722864567225738421454145162750377017654809972723267425395479245579517786060107678861604062818237780997102748362705535457115391117457522565177794738566978764390189652940888080479725618443720685156009610291391171292424857256672049723954028423493809605846889955590113057550281150605246506229645170093097993139316902737982906062911371660823265871279336617173175491159209505768706093970308525724778756968301957295506794358018296868443963210469032539304280727426537063211189894556441641555383462576289231054715995963633122835506197813837388489278290757753825741524782466802748375192993920978381535136312026801741571781917252004527666126198868054152250751766492021179245148313923819425555632739319188369195503953283114347297157931696759814913125009643969395170921727135171338458602931976493354605563514012376773494836702095778571830682062466657866783407624888349398106316264278716220056602800933281377085082888808745673036478498975454744743490779134057583047575078762260498238985439170672264920361962315659798946034267250168923196077074297844393956021466507936632474003158375100530623531379666719270951596779115253740062586453626481502417778034635322061163456416551445005309541668458566908196868864860662765033948916636900444649538106809549092962057029187446456890856703684441783823074567196887505099189433753462191466805580007392321704486433237105047323893164528138811185422161865944100446395341645987089616612754339569414748426552413539923689168537392560297302085668027821699927196531272997826786489309228748252688462123629952943748191401665666254836357661013681212753795428406452901139883676582214140781204346362107628539166991911840762224199477042204803260595776654393389655490020848029781128648315160604350671686581649929320300548459715855895013008637196821741629502569181810797317804661005709312115891595068645467231493473934325913762707621629252920636894918736467913993034915513777311173780715285269861419085400430913407425492711869716718928051314736816019143604980332376634345805386888105133610786938063072393475372662510066436797491913939854242318340509636104950377800410400026714492409582259204782485302947564195872282167788635265599365690488372680497612446919953452822783056510427154754835164351430528379754770781041131206978534345502236108558565156653270413264601902834051515476271670924379570553651569983831017471093286056065293238825040871144997267597449844672565646243358532019788122569800563186212370621500116282395823921275731399709506080959912053498020203667180233515044623743888965848539757920829863164281432075892887654984444096393570041285397011562743723274384748909561166334408145677080665712317111984604025048638950894624485107811216952767353074140955559086930687186144587686550041255040469831035854962362134880232488648939236453905170977967050591122662145049566791805108537920791298782705793227785923399847132250711914510038869371909029921151521502765295072058232619862441082238243012913777604363099151221162471086652327666754398967009744039696558615288317790086772557194686429119483319721483553713344113060849019505479916126957769222483593609919873126364499672351622430279695348685941558449189963922574082181973848996462588550142534665715586538342968023414138167426512944565592872265206746189098266183332747270683315332590259419362358800430816663488208053875684079975815208400441290014901503914100039641500579251785629887503563786743513519636488381950649003028792828027224173564256510287374030594011068282995506453510326030819653770774078468304928709294916811965132776162357719733852055060104231117584073818296366493487491199810152647410785832581123423529388729978212230144174803130161177909061255082372470613290942021806859636959132232490515749617240083110323813561248613388536283867025744769744166859968383600826313976429235112289586419159141139727066942660262495353222056300906978956592928374211330475192741616246178664958509017018351460150843131961958353568376824211480782505129545295731755256322903717784887685525695630297770847073767862757082505981836217725493958835613696668820426325864234408755930264274549464977024598190061012195990784025077281815307752733035254762769670833558695359319293788308315966703436545324440329789877508673153816316868276537758622119372390964516288563404152878239338996994110869035245534962681304319452069674446791694450916636144526939266078256318284726593179181533708584314791991917411223946610200935142357239299520038076276693336125323405418484824331409545182331199774588821220092195265350456047385407400213748952206675189313449871736968143183279386844416172346511432104832367734591745370704968215787341335425525307356321276443695655086953635228169211424750841112630374245180383558381316501941920625832992784621441856776686287765025260716540144145499910308420174975766131140777176811761026664376934109653309803762068558946713538659776289495162204686297962117387220671715802012329217218811944019086010872434794201567447971593483478294598099864423943730448433154513183218936409355833137824045819209892513971271496471512811332453588673601037958867990885849528972992775016079118490465958097412203188863147794556545124940588221932684300932578161135057300912635531089685394708085386331692292514752483109736865775818258824703990719640072468944223019802131258323815688516976194769612819455784329806714641086088339410489993435883566007215436848809284001893484440049391482924303197542592950435900132236331667680553100448484700028232649665132711022311814899303371047733471161552909158768358839942273825743031304350186255043190466875011103236464516681817687924546603035883784143389450801582727250871938916941965919850900907465592430345614219502435021513362757248593943854892587828462363361451386843925472821010448853863930354193771405843342323713701561104264978971434140095007676581061182826017125427412213819930586231340329980876195193201229572491851603772755389873846733696429009320645134131830345546976087938283713236128286402854694411408150508886744009338480344445850971246326346390550392121802897349945793398625504564372986440461997760986099189133885396505570890161981783491113037052374580467545860116134889058293761926856514581131107866772405118974396153069507537952052087093399917202296060850959326822151500691119506374602044016310579856701138410955446438988621266670679262776580955216033904024105031791464606467369335378881506307906527243649329298776175488647338624865631431619659073541055623286743017828034591743946317039296257445596171133970714588739303791613727145056323774635109168704790422268849079946237377593717464230138616265887933765183369098990342001180604532402647269476871193831481467783969824691597482950982718996392734196213319223526856844957613799745834196856029280093690744688870654151497970883119521874207331926664661190841755965908452742998069565096736521047773207911806492736298220235600934315836865515720176414465566816658223818691282739052631772895099068005808670024334177892900920889847476599458866961538611952046860546723609537983923122965655135509412246587478330569590279557810192423230438477828010601618545012887111009979811175407071201789161980048875630245251416435839107534663760161531373574292044144825879389714393282941167530675523644199714362909929025352882608578701661569810154994141706797640912232356633160029222801141680075833198503009192011671758747521766384211685424233232078553865396528963091533916476363835153384826820535026353708824088532525237046210788091470199412969210061829089747382954791122802109068905608369946158694693493596585449178157212492967564446411009955790296338672282236250485322153468346355058830796237065556210710353256099742373923910487784647569702135273735309694789987808246142921212782456563403882007127673568263569592622136072953313871669526114145866031002090089875832112148425022139570346997661067642317758180100461514978141997458721351554462977002710746613102884443697855245847671380585463877728777709449902655576627429234847821261339738548784811706340246166692569339196049765656829284327040395923540890056511070933085040189655401837425454027628376281044763124269759668553681896307665118793141718407608361862798175605783540964774687082743326958158137967960354381170622548139712592358948498446800765031999637680332521132941275821732713410394561159310339516816762618919070703681261745539786156474419438623143808450722479703059178674395993514691106707716455212804275557255247033927053149374022454309327488819254544499594093997207193904480273676472337434259953325708872680855982958352482356300291720391127109424518411809762674319479887613493982230530627508029232778822104349120073595539418259727880321610929191752471722470819358412599459025697303641722301415296674497918528245814203670666583205036754595093475337844784261882129690160768686811733422942969650691700008414840492279601672731961631736069883049956699900383269499875009828062131299462908906589597373322677781301034614649839152993699397430204466422923786130294115877289140471318587041948259203288600329731711571758874127073456522492011096059177071734755202062174107508342598394216394996692095608536643424902373788762990129104769093058777839503543877075568125529310812801999626192934381977487567514940342110302919175416672139623572486622244253128892528471564560257080506773862060307806096175311850860388146669640750292632662818503816189836127279070602771503353288765128084754127258813827024652650415077041759989189831409273623473409729075984152263706964496341344568881670034693654747542834557760140881370326443476565882890751268329615168061822132291711947632751894138995885352714079914147472136868857522623744331021296588427515336340965406661722874030582355541759120288090150746767628476741133426077730362834906914614429717660932774460323791800332198221346637942813302982834661695328974856324250638349343461389069126552737654459294164501586459094572511076906864710200904899837415645525155921850827214639984701114542794367198039902403497310448992676870298746511963046479603485608911233927581287566874013049616739038795766856802347954555385410809084214396709104368415087926061354664032262548396272919763423786954754717898182328053122082808371153811323661724266326079851170706125496642671301938457824752879580618959514798164469889494169535090774366280955497630725098258153042398576476580135825354926106319421239908259714004270504436480968927322421824340182308013664640059872484083243619947943849173494798577558134862174294220828198373182783303472664693222913712226379293168477184565644663068880381101844433252224072456056016055358807433351055358122402858214664421491554105621574377825456485731831791323435650230406063085132188527957491112169175684995933001208070996044265258986039836795975979682147084543809105611353882298549922199104532790293109557119660640068990286959471217981525477054347982256201932941958838001834780746787125576045889592244491944902910752552246063468205257738140856962221168307105215302383950018444190476021954508936224818816443487050047782576995139495065898889191048201628979581157277542472117757162227631976003309682184727515939692781043138734858179499220707592331494808121242402962865559834545286173311323376809089022208765340248481000804086832086702458565219621449026007684982520467657439484980947612773611037297249727703625451042353924176447958119605696326309309653216207378972308880946467291279018863726574452388635847515238416916685972275045697306653518815771583186342369799037722079122323959606975673618959879892278375473244798705811457328408063942944634824882578075538578874992349311317172264154862080365328948682200526672918784209383908863146965682167970564583668032234670132284054638584790956952445102859077592479622714314255751010351741884057227567190213573599312155935989941211716573465620647195143848981765738554035558682272885147607309648158957869647996281526582343383445830519006267944612854977195308235128044670386293318692344037358706990094690334527543707661635326200165284569345805696349302029614914857648094295719239236807110677875757035362780675630156763881381404017241310097913572046382731544420417281687913425826252424364278789784571282547801011535580221953848245007538960029751643111470912394656334600131327194374620629037322632536462200831092984536185686749132269969751277978232663608321497359216476358128857103524191969564466834091493011346827270855032042956099767820686125956349510880290951719712190952383625944319449217856230375346077059061167004134570159586448220088069701348180854541339863059373767134278095734754119551831125214375160797430100380055224736570175503694483824318322139704858407755959304484878865300280903237304505811159432568522814652561389086762653707414854482695011041502052456537004384232187869069952600070668412084688003282623605908245980489936969333448517951934198944063851494727626841774522971058786712987713669178934921498758921482363509080167714462505457782208589967926427557494229653879039834687675229087795332294081961281127806273595137304657236570731234619493719018696299038679890564755933580506385973439136973454460361997053699809442085916982733361099205716599307743660895966256499309973474982127793580527432747548342579051002883818063328793281470051922763730039840677848819159792503607494828525234004022572047948633348228251371325325806183368585011950725468620506129383463215299977569113087577811975336417146206562840944422307439893720119164901526145662881814130529212867490473973932191851653395350419105208061400382142228189214800257132645887005234293574375042153424418897770336770425502345113863421912743299711939109459758168955815055456976970781622044869886743695605005741842656149271055962037531870430505941306331550042188490961358811499557332877952759794622310891053467057405335455618270480611181907232421745716615296186918295338892289792624843951876975887975013264972203769416560726853231058268781779949352778732982825250097170713204746958465634194853485545497928034357206455452766735956472169381410001451041642799969309827557150732448282904202726213026933534107785646606998348978672063810424102525417128421628554729871126840957822934990571476926501267285242171019047750757935463578726217741939391004674637313752066691633763429996356864592732512344598806883413548339099415675353211804191528115671804509300482331942902246926009561980678567623308840744900793500464415354193770524131949617556947647218959023480174473741993870864488389754721204147141200571803784334361844584801266090143338388029220325888544504128001803638123245945189852159582067543950834769942419998588135637658016443285794873783090919500859408816017209120125139156699154909020827432674223609001180704378145348671372321711136097115892692485999144313647094851282654605273903324438782576282546641279842717664300253931571322381258997580951319285531163102661974306211865451117007609333628622433323860264338475234797822887387048215921536507452955087999857199238226023812628987427786488750189353063149774849627048859590000219778462253862026341736082854997012147761326445354306329982909245508345309684539513065010126873229550802906433687683191214282068007483809858688051280746425575385380888023050837366687677459322116028911953673108655892068677638299477656875202977198448125704496396471800320806200052773089344321490908783035348978560241138641023009579966123761850038413047414641671344583570914242600299068996447404367637102192293606381057674448914013332130531821888102026987850587451032394760748619302054551825050419821123167668431087967316439844481331677025754857340743021976748964467986898925828198415012464503076699220964007809110442428955136792746992085319591085575936589652512235811041304811965877043767968850936013318087348097926331621374829018667024821668283418460885211882745603431026254450370874981180083179554651577663303952724340240292111328285240363075376592906238746018459202412308070635066581536116422162623385192190888504957206536130987529817770467472965827009068407152252908918145221961359405461177776834869746240849072173735714526488146186482222425173805380018228566683276981501081003431705132150751731989430759557700292858837193081077603269342085218439237687556395866957992730550256292017705714565770871077818336064665736174798505248892762987357648229639653711060814205432392231558769118346193684818409036305377502978221018349994685090736366893801100228138724617286117649815141011853367710872230739231449010038587329626192687414477743738691067472978732563951202882346516443974294948694404703956699645275935109169719261247058626268044196639368681405554362249860057026520388076659883700188803010619577287529227137379183599126612959867582748320940260897774066219637422381743378797569918711009640426107384589632571143536566308526207352742924668232641681253039700263893434037977957726398316466814348375987067349146324993278069184399897119456200790352976232420283104919655523980468474367625632867496214099233790377040233030703857716845355504692736423535233825457501193139217952016168163690428725499675313527428259894951114364592465061599063474798202715301496484153695783707312081547349357257795015530432599111537099501442902961996499980267939074153846670634509800043909290243156964310090916613241840264529965060132023348459437663655820765663587493251530719133815802596577505428629215880211045553451526320765354668152416284661825261825382901830245253023631980420824348857218119244884677301462826503388714836791942296061300928922052940178223130119347818498050223532860254292702065890175620719949584868271657277547799498960033327055780254671827558868293218395101802768198490918795004353218764971904977716284085383542955967755630220842989279146268440804015818602154694341275602706164262425506683999223727066811069311103351086390992978792588234481017283732436654266468338046486570629191382963185738072481350552553159090539579753785942057583926244122817025389403808095328564580349047236958185619298312874326167267270007135700120478155008420946324056423562758040166748041650025302758676726195753043517670138964528785916328688641892893438823563899073979549379612604088421280234766118506925280726507014962249030570342327846410047446698386305494759755616656850209601997470556716547408772351344583496786928565119333040612815420796146893861442732917301676741613717569974214122602714667628431052365619537316676752523951354883279146294236860295111574314969468354862387986745076346083072214259008921966327787189452536710616945486883200502126218710910539295614470758530255558951957851168816053121507818646982723839738493562751690280727765436067503846088689554968320265366265103249152972265747749891634530750681536906127971297968870303769733417398056364973062052597281526035772536697917555725360647752166595456616621154676308413036123788459031315542986076886779312370749681264343775891006314359849239463834017872808714386053090282570039212987609178726383534455704235876214171928652664153458113409766418540952639645434581292491858527521982602970508171655457343329689945131905195625582260763900015765463227918260353332508955537800534200277741141530213172444388402067518482975178944393716483370453385765845001801959324976947414797790992874063024782353907220274213139731991996683064075316567042444045260595791493943451791472317683104314896548575361007629986014116823129390219596682257233228480789420891428499984356573777196694471243616244950779408368097952118434390343921863541614819980498018209903636471963164618586051956956244598149072537569411986757746005842243635924787460185073797572759138653336446687556703158749680763085806948260590268899520976373047291970277639522905085972277418672408627597643407457759388865520366981993634907202264098139983604954010660167019465544663178195128058374983402984932265022354790980996138331553036495141617847909417787472162997169326613243440444641375816090481233338140839224497053130082092647574781087410920462502537187621605340311779078219457925607454318533046631832886959944042351022420793408612057848138878007678523503750536548236171542356836591229968136927204151480383509532192050786495136910853999894257823081193490875781596776307989076256649177881900725811450593297329535983799976560914721033528993905232800650723513592007185357381793974773096909650914902632248480517173295208560416048182901728623979143953978156415662031497754065820216686711431626919112431814484549241475592186257007464314393904693737174098832137358244289323134152975167674953222158817962231019027407584920617404639021318010083533218958799797917414427380185568367072538081740662706034712205064939949255683017764306659940848159716350037200107768238058729552236749291569463561347877147104689851518206383626797197241590997424060678866699521929607888137371307576004417916598195176375811958213962908839322748713289619981379713015396377638462034971936499698321513652669915612494020173736122737297709511060814642619960605007152464857581586601581707423318962566668282859051419027080800821866032812785095751320211139221331707422152780425207795734050904634581113239574974911016265888060859424191647438079471988127360859222709770937810784418584391723840504482748700563226386572902641638205792132893799529392555912048038784230646420595790617070602009723195021205407175825697843486105362979128699375848107170566100859741635995185827908876352410500354071860005644417149211914553069058975913251612242478852063455792217464021956135464283158361545050568140102512379804906807567352492480509611469365762140312282479455032020555038251345566391817908566230111221618058639251886289473000686866345133670222749319283963652182463710417861279151840831084162703596604558837891518709004274547270533520249916872665801322449966960368207950211587913490716089351972233537669317455137415486911545644206195257967656986105669852604745654424298153306956514756873692185251111167549019446836927313622383170997779369707002554900767493628594673000513105803902218555969703334010898625950332805717440582153879311323791718731620254214251843444025728435358380107116296546383625988335363915116415515003592735673451434895190121944307484704282379741626670934349433138064735387646617589006580263744304201031005352738263705001911032055271055344993581818054484514328815813009153443782841822196847581410881276249406275114795969237778114903946386545830894115839684591798808760160302978830420946233424581280964072982143181440339229040970453607134889452546340251308820636303316689169337644548432871375082991023638294707050732369998143747130528494945527313676841536337534321211674216779228740665803585778168768617424146342856393536118889796327742654389280622851982039393377462134415007008270719227157369883560076760494597706536543411354372402869902940381801741240167942983536536729509831689781527528588843542599259548299747929368343475434455777018003196349104277161555499999579066460413200519529050606901072892077333779921544077319193249526795975181471832534943218176695653114964071139440693725394224153331847505094882034979202305293000444893775336041525380065074993269506948327543118631633230669167118736592045659607691893683487972005816498808628111675354236102823601508992545697600748837385950010401976533044786174984432273045112125143779464516156451742579041463299589016013122134102652567719687682557358964316615143095016718711662887579358430692475092843328965087580687681163820964744730886607729473310764859718122341652516249030051512524246234014947843157889599002955152792998795576983147502124662890930181184477805115830246903325106371581713640566708421894561592044897818634767776958125278266259229134462280902370646041230612358230945835117218782696295248335028832087929178600431149994291509627565317484505660661072077899177694675965839443286077945856414662315099065652589777729621854610746412013108339921298113147461089249852228450098033499578140116777544275563218933703749169361419481955986282205527355722388622128201900871505429828883982223397504418051539801144288480770961270013013103548045904955946602644280772739071197174382747565040517066822116126527951975961581326739025249971125320105542077765337253082330066652578736267015374637002475937698687616065302737247768325634722937055908734729980067027470241021673094079601343188087110441139593502221635500955407821200475831650697193414524438305284006435534195836946986168729488209457762155789914659511176825280213923589169730712802684071337293979701051406646281623838725759772332138214786842587432973020070443897082079716724910499779772811575411978360379904634791240773247668912925134884147220700851772638104970648581460675545814290507497051948645258492705326686379149980664758926861816585945007865969779690129321191222430493003157417337525930881307271701614436404459283536945148237230350194559319746185864367755521687931665247588140230996884641092533147244013083386182395053584813302824699846100318012719784789169640106322629045201342311387913565865721014025137334737728182125815643241597113990620450343743824827920285510220147683731910174342404009319216839663835892955735407151305745393430052593488208198945898685527207963960675480248680152152070759499757088759943279534819621341750092709718074698010586948466531228710366507747042445595878435336704684046002147203347733864892366224495025875433440865847083901383104139785199915120877155150786412100130682475401906456003661517871571656499980967991904013485087235932687620559682086748912827228823520304402868354725441530163127688806709605496667708204460591012884129503971544708974228724680363440974214327184427163295377949682033066829967765955518096781446083792276901751510206608870664204441551221710042200186657696263715717567851363769481245913587765610089050907566677043035812350415093000237787232559128371527754824873721462836670270895107407932261659766967517052568986943296701328223116689555801014265830799792565691082854318210990707008673747500310387957555527041099521263257398221196047506068148411508959497211817406915668037670144920019236914707924169514719926980092056766543922354142539132160372592393821544459699199637977825167338209025685963954833020900308468315608741350969631977403404116985208025618226370737305861267764504198436642469591500065518225288430417395313187622128526933364982212860866810828490702081136052402888975202585043927319090316756993697632767590367287799098554508299779567399623647648256922576896349619093734178303161117392750846827727825017253293893529197736219146027025572402654993381019850661999861348074393240958408449656496375097433461758606723378708271965350634636915338227054736751619223714035042416211941121348758187329975150070954805875476208321094680740379938926257267950597472806787514559545482989548160038037751545453974549915779058839694770301021632169465992137220368445019854784555345672962061734942247634121010790146659307114480369943611997938383030808047571338549965595327195513381172865543903147538570714509467872277039091043922230261433896040957125673699511799320938832138765350204390758748136991079368738306063135630298901799258311231904190677861107238823031389421687639213729469302269174349251053162478388024471968973248693894347017561060606746911935778760162958347630979615461917430684703869692878768282835402093812957838510279729668544758728877966967471557050255402917589953762568067735771802702392374942294458636724550413218752992804158757525461858928075792710771814037480145946570466014879011592240873053112926413782968927252566724888781734364337636112956849180853540307786976523398819250815903342191674427316266767709050669710091578997385139661106446019070485315189045929475053688131646805607523430986907065228168367778044148472468342850696024710917715597507034419324984409824808368615892127872031339210823109804333586895283445874025073725612779116090666202739653842495793749060787459138978051824614655592662961351266606223894918089692896826227840069397728067789537697985582372106213108207669054234438908057963380946409489476282784190813503397984996051957886295998081052805748925768528406463295589744022183900593437466724916703753947079119373082815612228033920692486115593676452587021686286242111635770378919989762523002200659684527576017498570982442147440909275749472094947167123116146864864773289704532631436917870758492298263850391054308771283464441085128797880730404898530879811002907381431957228344399134512295579250137842593054177544995219404003403093746601862604452633413544311357357864306993223000901976192426384345861915576946383161445410317204837291694761445458669847593539210159286082316315330630119091499867826952217319065668899581111386570959560065711825216147190308547400865327450821940219158077331568888947435470633308895287101694294857013623499289269237998925104976287994701746187850390797141113911747332023748100788645561716583137242013390512042117578552379646850904534153961749097385331940214904781755489529565553513374717769856449941634129936509020794459816994572883037227723882022236363885039039917756520029412410722227449554578199603055659855424114350494217477007031120614518546135080102238249028172476349011577017375620770466096149752380778111387768869424613497677591315445163783669498164385367784250884166285323202196397435038322724798147720850339583425714346318376529977651819847444820051235720487228964197280652682645082552783477823594974367117974040316286899789094780385473158876089247248539814251345271221245835838539076365645115372503868889242048745239346845465522081535940717915441105936720213858348890985619176028470224351373318882630087902286314314293678567467953913517809182216768416805995030761835090387016074587009867319416265857848551613897339142729302962041218502310310449348648438781125602660807159774735096251881659989159769598242810062897371170596816608543624213744435866863383371700353280297806440585985278960858233694012101343895748104192501424497791665571135413198721289683891258278265389850344729475910284475212449831490924555196641079829374557685593025225112598400320928135216796036020511769441172616060265264705062993581468234001721770277291321052910474822986755211134463518332297438284027493605230286152810593015632890249561769125411230631575776437170629836506923041341847152098960262338125167939458532695621941797676886938113422557352649110595746983241421725736322736901309613327757275419133850829453120956325040673420660207046243425536082814508789675885368734715360022351060284526464158317409133860407729733437443354322004225924178188644651010181667632620120766024899828998681763910294482191280026752733724945349476521332553290161125082345015939187771832986623772850010906459539510121980075417549835507426484953833400068594283496443343517305895361592643699877757585107915396134826736370047965582264701093371692868143150984019138730675263667843018993334426902364485976374867179513277200244951218778468144942976223873684068347565887466496440843739253291016576725442056244586743229068189240147668219801456068051663203019448454920888487458580565627216071092946586750935174027816195692996573401687160014198083065146133839248013557352663760730261177354905037235247244897113464125553571089656046370000035059431311483825160256197765967255102957817116893143735628853056129669513436021478615860114556329239279844392798207127394348204079991602116796264196002633413712528071868311404028942486696845723227188643184934846227577737829721873924654474786135183494020225702735388559199612692876783326822765701531526544258834198597841243016176477427773595119812285459546978088373108228107859645880545614385640720106691975104999790656862329349414588248605086046353103335650234789276313584654710618492163654041575430155181434794398478328519934414279470256060124005717937652372882648942196133595833563844998113047627080586300506130967373496905206274750967313156041468397124336766875502873479366063913937614791367617820175654832512812345190636505638726506412185978060643362478522376508733779110148538917519247197428375666888196409543351484125024472836089490196266755429903632347575069911547215082665479041068329288088658936165676176568426365413319919192074587761705036404642613573780504097226991666822153953072866472447852529029342166989757697305904106375146066594899674491918320390220527001051822546648048097881567246426113395895677538822926980436271588234112411114041265534282021073316371728492667398280676073017091505435870472052615845283756019634409283588608209441690090703620547396001239012228134403138640014807546574425194129262514954313455674314605999732293197381172411518988441450996100729938563894633838837281001162110582300466712359195683060859685095869825148229492021540127972167040885449097605832345046782987932898354405839924933569417270678747483179296211668822486846507466955368567075567023668542302258638250396577250109955361031925709141296505445627483308189055225959181613978060634702916571849216383416999084121526934216818968340441901575821892594202665210234513867123977238000841063919857846674342939193391172771196588976735262417681489806142027286082335404095983852586236172866578585423892493739189110518591319772886720109917725017158203997786246629720074444378301138469419866950522271013855736653366560219084832410847476090031364321206267072066285991170867913321299597841301556271565711894131342953512800206767952601769072031910387434722392451200302869548094217170430286306360018359372723581862132594846758540108816586037613317866223748800112270689223600786013688390080629528478118897496260986297830873297288990808298798500213956827535512508052265855644222281223315653523204519285817816415767038908404336749438467530147198564652974191607088215363389822857232609837715845626810039339107826982755870081907824819720418027525107939298520591239680094252101889478120515947809199900983739742403122085996606235981493770878922477652892648767838162216270269884786904489753109954371411982234346991469659448375627803941001457196039659671481183892084831219012860687801552431361804628273199619823551165067657015139188128397685714054401223252248033515991617226465057953619657787917499553261516550481436893703026402960990090615859279809984428787754797318551312105132030110964369183414978406084502856277005038416306820039320896996630822374611539114695616899763578756396912180681101511422158886383455198921160959134271858803944358337282459795203260282878905305045799064941489608370171318675460994742890380089668394128825916609686907815168973940433200553878397317130743914410023984828409231014716578146940631288236872488255194259123277997971916736899590389557889697806443397160532491264938875308979494242263053146396606227171277132664208371597919475605396922210723472748240458748747909666175780753171654221916918984040643460013190767186445838689224676186824770857054811094690600761244748433906163743980905781649259283399351193198362642038050450411370722558959217532992822458210522005115986547066263445506234227355732927879667324301590166553018847926038111401871249242260958996087315812541585617069004032167574053914760523520687501473367519932632222503988205758532178917799293125972479814137735109196839332011517289872237079600600614179678068026086908487585856917561079605589955639967586011799826859117025117499214742027686702582814077819092610044957791536649364175840061481444934754096981549343130659908190900767536092261351592269600272699038864603766319218138884870975417962084889945287329753189759330995729752542071237153320818559132593424167282022190875449719721150255962759100531965026475151611128881540063249185966582206087985631297151121615975234269367590097690223260147064629860885313942796988482089881549551731820301461368546208349594047071114865448428791968066456616339644464776598048039590804446078805672493759970286014813672489194824847494473514796159977975656990915331261016215747906297919339213798544984110453364619937962885020952247258594994930831233640575392768159478532650465576580056057371311818295286407769533345837806652744644397655931085396334176917161260527579367435051033325842281133763592275660667604469721676640540583555682888487184132101567343258756873688470514030314992015110443138048492199517882113724537141143573445810657540050925303450170025770933313008769569761832851353235700446490531169396285363681668885125560316384156867898717174634096069994675635092606273991557810104746890184884444608457255908604446438897024461625335210072745421843997862660744238980498297567331790971431715718695225905291161872442743670403432294370992288858340845528839052032057373468534590626969130656636895987208889594441263074201062645006286732072478924234199809415128558974218624838938326843056664209517232553972719661310656346973539396671172567350096501493562965164260289477255229670353093814839996918725580527260251393941747319027452336781735472723959763657791577757724945541868627398734424722097714549787882674693655318890996056369906120133584172932062730983648191765272172188302705891279526751122278519784418168863911542620710350478442417018827639402341552555726241093755931411296532153994263420571546985231840530167895570422956049365785772223676482570903239875753734122578846175411379804998801144210968418806963272591863470704661632632764058990665983229785180827911413098974277786848186215956143075577502738895171048553344909060240573073949052095258043470387214017782098266235510606554980984303150844774807176697420858912403994987467692787584819630700156379149140926483118484609502084327948203981651058549492280014444644632247178665089975704098922112285622788295074232956799620021494797229501486831295169934537406885410020805702574829181414186695028577912369556192318526862544791981236305908461598165573000569562858555083290341779812639221292799009417717324001427669914357180772785559867525223706096740897797746413872592302624879744683037367596208150630749251869204221478180988979886727539272024947612041341682455244126688654579131009437024813501744558262096733654673821795308246790569186981379110266352906043491294453498588713122974992465330609882721706387781407756099381420406170735754706144925197208819200835446108568069512852508755079556387922770808035715303758862621903422641748951162157075613924578255429444035827585699651232181790915920550289171976452050053485333967420534225447316325611335684389261800936120669466850869471305696912800899524776422624837465785165865569004132034501869460929592526155537167000891249600936596031453263307418818170056443683448699372013583338815800776256401129808195942921168423715987363124028697671879041042997826140120405406686385316841144944103010905904474216091081156193014352666938428889900895897873242775135750722418715637715809906110526331078132272074100923843752736296872635015887712540841746061007077052580725582426681389921879747832865977786998133048931361945218149709614757669603863508295052144329733616628708721640878009134157741368256606207121103511409101040033546210116050669457914394710324604656024371722791797273975586678155608155415877684533150117753010246725171325553062114562943479924258168393077530685511436557074948492346352785124991324202584154253185395260873587373753289350354880320699584573574500002521164525010988687441001420309083128515935757812072996382742497371004772831059519648520018744225870637823729220499567739508586722582795619964967431812352850334596441120997158624057806139028281084155041091234504408946695699152242849500338525651412556527569167368219662886703219576374884954617941098248634075319776054807440769471597611935051930330405241425372095537478397282124405947997037943909772429273659542956962352555089205522857019598840561793408245859643614407102981475519528707974312030600959642420842192211622912797712125271595802270726534525815591136963944697825483241583434195574881806266055784218992986663332364028480422183901041023857458676039617788839082420000001708344702571396736616247635583697082734183680597578200178102073328815511142646398128924595789365724967752454516267240573089452114867903094773213400244404132091310319332405343623105887666080299043568825263985258792918935652551020506414142631555944312674658881515695115039059264365801369005868573596563935057848566559081263222913204068746411143438985725905543109180191893129653276811114624550433392796049021141213624670748697839412562822740654145530214528346352419081952390065938329689165782253735981582313498972350142845701464928506086848329513576896534282051970942975188478107584222468357830308976618264759055729422740340032549722788569680250951805093622931154617170324079593249704203235250173511220195344335740457873927673171496242856533564960090123640634690064060042087487242561764381057302255927202881456634491586247167601808558955753919313065898968264206628776404440651535861233506298617622173809910680535114353808375005439832867717277702501024050001027329943207588563351274030414149399268981140717081212892921485467226505635732089417882916100133904635997263027793558203384817384890485332574848688695553314279256010867052657865376843625385507372386097627967882630220836855993572967865692502569545405763097511996061019857695125007293230621291323716114175048657367229979212129314662933427226079164234531756123226397244039424406421070848356724845473889707359315097967193220046229546097932076836617342131608709599681064150676169337656446549261489253595500337582017653921713331480231480227824346165904967706104484952455479201598281590524618384199112212435289761616300838159993165549604531112038069998581190154677305252689037255649422301693140707398612987749100343839336553911858673929947240012345630389344956291158570012842916305301818420182612333420973149185360363965505338407077925994218971558282979899596004732740485680003404643674365242050577837615482573909111697942913310891478044150166497235408460357929504075324174099568374547991216121164123242243249440306915102993446544558138945245673313225257168529070077158761093298698494453978903726290160320805459819585847367924372624460630964198350385334802814599224969963250101143547801459951975482464560667564312210997658757410649785402890692544351878937543434868475896014273214534702308774182768881921878276972522400879930140607352170908438430464983927244482788523302018751842348074384598335891275721552769481919293799111428645439552387542124386518713106955545710641951509409672474864804025194386974046680537558750688874341128438521343392023318597767449574815482541517272228923561724366710067686170958182884018772380020669527818451753034068319452771981651516069550443832901770413771648364403657889371472446880901726585398819616309164938353443815932930593047841319318845308192517112217785262563184234889029414517083173600286741344828914396873123399868763585737261598813993555181340919580012173969523222634406650273823572227562705772876242051218020562352148598831782906305038842475826303347608090431251860984324320600963206846624128719389453157564226948490834401470674221383802364487137967298256834194324508085967827470015247648088946605102551360390424495807440371777293987665255147480122513743925999638176989297977511710043438590122852328535788531048007538627448849250480548024236154333944398942939062303368275936532313265054363780009668061591269602626629519922841253034784200355489952725074503557497016450572123670180737973852010153144504426577914820568492153277954021848907321792690596785772906163519031452331457535669139021200015185250484198736575990112057697788112452027378605155992403202342284919693496975500659123051121320254024255063162680982690674595122189611081490390023948773513735498255037719258753945198121704888235141953154823695669996610263900263098432915722320392274373226372056563857589537197794751932848546764858402713986283292441013220024013747032270736064340607717701102712066046076514044449328169246955925529906582005770742954769159788919117965761522753252766419311279021472628844903571737813154434029025362071103548042108904743271595507063081525426056423503756673922641782700667305194112538204908345391395405506058071424359347616316723639752080293497627098850809575598913067390801162634481469499263874408335642269939417426299972391728312639767450570233051811722380866004262959830883128106403075557917129570513962512435936109524425314088777650362232740901108558180357017681283934724773848745863725440951164652509614740417227587853491616196239019714915362193114017681715126697735591655338615579891294043319038445728963702088766915402049172807495826928672015363549296509150399665605115697816025495966694741662320956265210560924498152271505424018318460598834386794235978620359216157283720628832053366065103337799878171450035149447578077236996992442952964293095007423535046551189289750069118089753540302440867310817848625618181579021914643239483881258391211877720477484130881704874593822901296842700778862114572212418479847111614044834286529317630355662476818904957540725957538890718009739156202144276556484984212084718628460634520450602428982823628796626610017745905705490773643297762208359962581436419175418789706581576380743408541771120397757600032327435014245072444787252213668170017670162416888941061325516306298225310155650829312843281508992438319981935886834427536697469655604967851892469906380785658615244270522597817092342562038376908929262826831348014136966705844218184423839529320159101847447785486984425836866195115679584357500845635611730108388239202716336955694331593883826905842293297201157449537277391502047298810015566137130102744294756684078258983447191655655577105234121971589097096265075100427276304170691819865332804173137030905616919267536627995632269626399988706666359761237610905545110698006512501252963482746309392984119127174864481687161654447971230674473075992768821164792819652239606154013995880854800679432045245743198090212051129259293033896887129188391104013949682652128217426338913795479090488145416925141514328527699465199680127526051171697658518406856816530953076707491662205301979461679069523294304344280014383092313308344134989162826894969655225792677873724506379148311377743432958343680047296174155560246469276448301222541807931129906397572703939634346590293492042323285861099722921054215560017706496202961688477696712595378322055322144489136440421480787060917440330815187221829160546701134132613951125228856655853857177895787923252332606709569539113087375104097578912826934051245923449253342863072869789084580490296842104581004701728811066792432783353266660263179495268443594274720355821785125649209301997777700466017270253326479753070713630044844497858905671324133864855505632870534900609760727437919205286002438879573606103399604120514192563949828037256062835701564806050984911458598168678626947646477307722762947420558709676297871324388495224745944367240812188379040201732403136770007115162307622115982916039970855779677622910882217891096775277911895954068585872295678433700371919355646020997249106785164710546978166366744765038826185422204701755458341680541319589070756189380264780734820672666231311268910571536351489552195623085849184449538376662260989318310205994296923816432379086292679923353422412874863852306374207221951657188045457084504752992529519295731460374880341693478700063934773731156123990904664438493367966047720144784523512453541637175386756132427325216622978573583326162358390454780173727125895221616506067799425339647886831394041272761423867049022365118801602628003104146430384005326163201659755533920278413522151224410417570326534454323744261853867809729045920384155688685326370265943048605319152043401538649631112326399557672342737383504408410746332469135937528086222395156926650082639124462712055917955427436021321225184984460887598642000522909355858389339331289848442581686136237073591638198889702343096044833440748939485644410413807994570858366034331311193840561990161128454680014245800674219056831382979599340521075184458861478415546525073133776815155995461168566235311149621701742946248807657895811706823723638247627733994399261860208706858048847252000632498516484694887122531763382136156492038456802408803173677563515419402689457727845389199001001635199143320126312205550658173556092811800875955681721738219615781973630074854503107917695640053105664079706149379430552679307538449973017569279581868744555280517847257590979723428459070957798837575045886239717215263339960773517923193076542819294797401577204947939607685547247574625895959152312867833585503940030620808925520496985230139147062417772262525988418344156461418522617161436565195017977350739271352099352734376480595725476205507866655701437704852514894452032642363279098593303679560835949790556967903461229824152919420707453331577372426304552960520468247404796624993102138588416090081508089763699086389580988053595193599051617414084722550369265399453148765884002613509403255448470609246668400187298509516393089480387228403680924131556270874679403838110249515185121689849095180186740608474051317840804623375419571665937059562835978770659333809933249140497271889421138544620942316860461065930964192753737092936380898719586112370138352658712623864288388673384032697949720634582665619920804201866528993473162803686475309420120284309671158822105638050976355787338290868246788004886639886196200348184620296935653064854562505977020938167253113343014697950950818441594973359183839631734137832292457951933824863356929319358766207764587723479411779938389300187803123530765188489475907548388700368357494906081362198575326737637639223336747777430725064139431677805745621240449635371712974222867816605086463765883182313911064920382477284339633801002055523067112005010542550039903267721800421497587606142189703051280786974631037696646120691481780078798630343585395447217092309969733452181957464316724961354579391054779607515223290818906882052056621637707152832767329674532314662810837443309806737093066945092825744082511754368071961657542844784362932708655462069686816141875745041547743034388567887841771014543002852122527976595213538286175091263675509206102712531807170112941986568834268947403109853378263305631524864940675882633372469882828944119753333144943355203888833613311813090144957430279986346717398892721287050115878105561933470401713830987066097578353347307722807305391574456181894927906973881246758971466475858555215346820992157464420758607633962923857947060916509336431026946753234551512344233248126813232258998843553092352313189783123864226020833230770873146278957669521667095117408652366602058155498946574632282253266199709802701525053026850663107347440140953770898680971612358871633486253741676636286154886629601953713823980537554229468144976900470167828957216620033239705805251953899356736272688899595870810887251411425457789698303615441153934559469654781982814089926673853131538239382261213792605858396087415268940675221010499115401284215763950798838881248711718356784211902637479814311576223596319930256538280822577098538495263698880810978266198359865412343786645334265296238876280189795679752360141298322358532835791999474387707157965618849431337807523069205660881787672223247237971119142356460745906600558117391334662436888652836830271926951732424349586184365643102320407952371078539405799882146840184367591752239545949580958253643247434831678490857433577294074758792403292930917548478479797945222498300328452552969032095380503545795729207010048892531502911084806759194829234775034730115159996545174828897215993973332654287631785243323820861312675167185187375970299122177221949116035737236306263166961452480067277403217186731645983129840813311094825769323060018163012349748534101707559312602731748261052443717799773441101514157171681697780951186592360924012547391198621124310242752920096197279760438147073456401712854780292829624840329962519288594765897033967286281336678341445211215832005287962727700039712846727923258537069880848617135309787410309057741350230830528898092573019097224674303677276465989061980222617318467723036409270519635176004027572484643500067834359070248440411278999694250670161484985423342432881293825648490928868085247551460204502155206395103348216221280498783479616899001902204839709294022528749587206377575113856935068923235640118530301155433534542836946987525090093624825466529176767669494671858931326410367604027655930769085693423358516931957170810330632349885696457148020569242925922250802491282450737853608685140060792779546197943688411996115494836959434351975180193232792062062474047542316685175688977282946680622859471058374850899638160745009331694442336501618392921515587960030410029716512556395251484513090424730146645285689680336701554219412139373454247539478869325910254656572074786553252083690767885607933112295633273437212713035470441277279008405604398662029715737441343824868891921911618264869729129322673087133864353903330423670317677817719519960970101930991242255987046644127813161815379022903891833704120403593038199992878518703270565227430462360969065404781143440945396665815087743408781185302723229418279273597329686989666883154939224904447657290534896079761189890247487612914625754009720883177070026106575649373934633965848120058973812592018115927606047614145507770822354847148203635785321953943181865440264413212096448063544761263894923074476967718872565716471176110035693311145907228730906624876837619240430683181131778556013749434557431326272561870368796576788030224619827437692225360848390250190362488584493183343457477744296976676133848915563658133271786806781262432849368698150957329905799471483014287214874650799104710285097585520508112876231265271608576884055969688027602753818970336440741417443643003939914753341593904121697771462921396077519163952156340124820390255859701169112319560333789505080094721207538829020544342393624662777810924332196615185435240813033774983969291661531408030307789546988422593542318394439760410227680116995262437556110503347863320925904159459911077362429940801634697666951545130663799472279754660220413005785597029509778319741830420347355448717759932765447821207318617083922617358829492738025645713704421502616498230806007775455933928057975394481976316639955842799679180659285389158321655242385520120885974089968238170486731534858044583083994597613820173720588769311813202429145090267566131243529704640317856978796523663280432097064668428550855330969689916520919871259155386582141498515461011811677972205734828066612269336713719084638319221142319000686868155377227025451518583015525707505261903100705977049741309105092399803759669626593070559330128824111670699914710365750384795834623567617993295394983264172308748532864853311383591479390661731378289356172015494147016618290681670254697501876892050320874420986530947237118576056010662795950351213538758367809584202485244817253728905213202521612116110474674231176347173993554781131570346717902159017090269967702319557603902931734691617604513840656388834276206123199589180329626419874215818662172707902955495215376597650376733651711228997967375816841507610979908070184506132682293184151939337704775195896868828191880477705169275363344403894003652583805997050260047558155162834429143502588203293958026052678937647588741060589827477518383406866831174353021231208546955395149100038728730191600538391188946691785638828216114047872426164694920498954542943297739952468333981085903669461865202569577749777400269346819683773137446237158095199896469456237972401307796624753436257209264519226127532541263451407920386129396177088192103872265106684899034399679448311843243887314637903033795508804854966004613963934849862805768592857570769015348958211157015690279819356473826679959221001013068233909778500418232914140591332389326775013259090625183378412930489387360228329446538199187564622284007962246835717254940374098712358509164884366280769109890863296021278133654012748189739385877130195600749533229967882670722839340120208144247232324171737052655754538176931145630183660585098703761348030285980586319968166679855457214108830849919172647517979549471193412927788931503022480178031160234641848413131946716257026550196024272797585730345369083065432914654891281967028063592533290333885335793072776047033652124869929620072694473786823786238527484236285779113140130065691994915993629028049819235611638919735893168816033641175740650516459017154067754293198265456079955569576431737823069493962467271853949397890110332190913650932372671152968436156777015805722458655480218654641099179947889017208727496222408277559328407303549998546474221962504184198740717260458141058157110367148540021687605761468963538873501272288347146484138299284357561220640734025947841605327605600593689960785077697890623451100080555944814809633205606753171510524999046255890107224476164869511905084395220121498004344750030837863818504323758250155816756158389382555583993557068259234085311718973799716629712221924780432678918087256171062898246904777158489532259913971749003515479711121845585925665911941420330229818537715776539409500326879605920924267737650780154697456084382290481567935891470693757857199902366341000461206597281283736258692166778828476044380079099977231598029642464179941190120258496361291567591647872351529400971192419076085321905302843247875076708426631656249836060627097429860728526505778217755812017316315657527546830977840198943031976468429760287486596795149734123245436091677594564783755180672545773767042729245369623541812193882577174933970785264349550071793011005895044997327610584764547626726845073806423430868863300582322870085999825551521150299677124275799736472573061337313826784909586463486639516161269581758494536566442989293310879015063511168332046517205876739749528217467715866835913065570736581096537845798034221983142459024362582734692621276420587318476522204656439591092579636557677632549959979498324948791626148006905219038898326308389712391738345838190342746508906871315005997441769743913312579929037053308092339641845515408514118555156641091135288349690573509592497050817799687719646885999022481998761064668107053772005328955044842754681843454880455952270204378726734946550265325704861580487113118403246183296675676040582691057813356930127401321022607220606522028972970595250823853501575693171403861063557539464620971325972045477965183475569849779650851495383544351289746148181648558482592009567380010257458255951633055926104759677534060282864288687961567375102626440836307592863895383456105104974609394243419635496597211569188554923411985658473160362669643603281864455673417204838693836681303401585974679061131173000528350963662665103129637141354763734659354581489342596739546397421223579360032168201063898262498259623270995351631220386400599945026625693263061984718157109020306827349816073685967706995854363092017570845164426193887549034516469194655209423563588819687055730524779807369650361623093024148633094064781518753763593499737024586174135979275148097632535045842979153535715516901515988118651492897336730704359215897712870092995796444160635054569144965364324215467611510673075717772452353154938176320764354503019258169424787952299573248830591674806843427976716509262151784460193557111634213339169158884341419976375037748712195827350776562499362189907701156731395141652784980808623735151745803244686137508652250016037598032524464097838389640086413944782860413958912960302517262329967211134057176374483586228406479526293659273629691385722002775375057845867407601823816002269312832775087060359445375952232692674221798562297531581358050600670442324324093041003266606075765276280630600918762954468236870473419863853991378923664392590690285233527175886218766362459123108318718217528337817078446152138088628437868926991496926046994572799340515057390245205684931056646948433846722157636259468234694848396369063844069694789117457489638646884522089245527239374897089449582238986049231242835493846638198560051283893992380988893709923212989166907783766846439899536458856106604350641108410902866632113890438867946965159717568350506564934887572611775760126120954924174210039696504147706373658301260626535256590051262203636647860252658494164363217329093064114846558870420988401521851954197601129040653977962628188154185170441430799000895876140665386097397256923319626440447758784251950084202335560570987495944732346752816938794334726728703107329995764230916761773164185309042368433359996026375532118292410887875745924658472686102178446627903417870500777432860880646052988285737660741017770683401945952944008829893283597880189787285351767076526814896920125706093595203735995315360804047163991760445411191078836617961449509547957053040303299392393841252755901843467458007053397984008973547705885376585284084820318459895161189884263672419248302598117742029391306683022368694683093998333288682280155670954874156646816462766687633049079390502120135482559370784923066680188257675172751760323352491645258020877230329758469635416845577772975989835215673585870710466778329494313953276355190396166212483724931634660785383869992756968925589667557498652315207348843541248184968821035322299299455936604151364067354951383223624603916609136689698688821114793394243451823083764545481600294333828859116697672447006177352202857552347398381956987185985170968910003652960841778079765968964298953337140203260629772296562860685913389673314696984645186908199729619752453296850093376779657804947633677054269316004987125104189220201631344445198994740457005814615627420924681015739867924789652537862682624150591780215188412393188142996762600354498857605448077641912122463381414930758124613832727504832633453229667241357350294554643444007895088348629540608166367689453563692883336948829308622410040862717151792100900845027472599914322056645788852971166650966950514204687564424981338075089066496386168329457905237815045617659491815807625996828340104828342023654213997944521026387350787097331782427884029242504085598928686260963710967644385044141723577947767801647500206059558131210295257556523269559004464103800135647997653775187369919728081879749560815449553191904380710739818151387642700711552639175006457960809015672300030481943108223077795263560454812684016173316397475104045751186130818651367762567848723558958026183110216122243031150766929403641534104445761417613457353944241206286380431374925233482126210202085555422895198961926669509615537188301191637804479230448251981275898923360445170686978580314960119917428305897263875446054171660348054645853003126812414442399200791218265665445941600201490617456861244203456776835456055415214505819493842166587384065482600694453386461377609162483953567572181745982911966424994406442812083902307307614121421058337585708569263639366022278674824506999039081997806436312867204697219819721754142337154028156028870157071638834825664492723311150877191748398341620059600673547662864967971370286402859314296241643647919515326778589251777411817500573041051291923481394305400673592821032440937754478740647238316299354843708646114228874401323872900086921057951112208532320565505175458872397428886638589196373640186258482632823400305971270993567750859764796341414884138157874780700937208114766898161890267200978567890234231161608115385570681526066233066535992792616014866760834182437957244063416298467768186381032763382830479373934892388131999351918314401431013921527004310937270304735665915578921255762193916192117680575259748187257162923586403741102516221136698726530253913196354160248960960571986973872828019861767169904084376333135866008323530086969915172115571513489911473795310102963459439996988300029025862678030429663228224075033403466959706981205707146044341235718713586282414372987208606321388737729522477716422681483140109251864284181206728814113278748450367888397786359373218615832557824605723948576570949298739740648893608368821652450806734144744856652546851178728495266960762067992083172507257891950221836351526066224098225920129237073873617458062963166396242856637589630015967194788757564026857598035762780384637544994248942735309227367945930631518684569877120059328628653076906479989776055715489478856705574796967385160416386100886251006201273350558934172029102527466217080139775831044748938911960638580173307984484088083933036480834406474300968021271261033154959036431935491820004136505258798562525347224644222531161359894880322402393773587513822211495869853435244914944019844087774608055727774797681381540775477308202725390786209514037094801981125537494161249225026914638477189436427899473979999146776089117333640550821959163267551568958997160419429671005453139682802538805429548685104712790861290948036761248331957887831489788910841861328739378220802239747137233278218308906272076127360739775941612140606020289985561704946196233942922714407701389422306928522062274769909452279640333702027886365902697323388517448960224257017934745268170141946521552014515218037554579086419944372686578922595594872938324637076442609699990065111001769700694353967442231592349631785317179729220955244104820861143112656394781684366506186291286102588068745098956188977538168027711250174532641140510843850477334573468614436314772091681659273624989451049317921147209155900308302991840057216836203858035123617008117179014223787043865382908502557292089084751412305598218326379272884465142974732536697742225178638791964996209949949019150595316821709743655510439523950992792482696244203897186280842513203314358729866845163537524628058432533093882114828175752938307253757358289587229794005833286535691130269867611125056215222006925670492185779039015408342540215158054546415396224279013655929533175725101413761339974000908273465262560802567269816549828114728673137426104281946315769184981238306858505191092526035693719024496380193955406543766051254903034821799720501481782315947714033036608613887467401445107310297759430449586306244533414774748445611577917387931315342758248161037553736099840982316495102698063309265126087794508854724708576999464840927375890206821271293217710471086274562550540750895883035641989797018025988639020320914124985485730119873199470602160021754755853788310260841531137984629925061118755804833677020610427426616853466776176406342620656459226791113871489238711244321706622253303206381433316001588424769652108652800349379460584513360332696685796377007923429770371272040033379323479786827249632502968889840092698163511375944716535192394349796602067275278648265691456937374009274584366035905178893271431731934305597596396107169367308955563735766618841683509117375754720627124404425013718803506860997157803063340169711350221746256766297270093939401391934423246911613784007633407753758596962284764710212852500027446076569983715628102343390360128877716526488441576077577698322542032143324392482810178634852125100393422860117356004255996076226228758799373964776607594932463279595126305033886987752288050431200333669895317073475948545126933486406765430408438431471333172796803944878657509886999401390985616947497475416262217781652766992302644178135953535608170522711229572207756362187902123401183759215076251943953498112620597327561910106293648627674850802077336104796632971396791228226532777511577562504145573077628766472627058374654496775201858775205348399591142005584905330201111886259792702347640430662493568944074273837929765721629244527137938011556364560218050542246820480911426692059062211540737712011811514531661118113324919924131735978097740107373342586879207290581358776124652419403481023569534006663045485047676203094159355776022324100894699054887453655021763929596326160759718465907089539193974972525671778291119387490049535974323395290963367755106095870980943310242911019622395843942282911700129088244501361845865553732821097298997241989821408631507312091600355186739712434948351144643197615606963308430223986942944118864779952770592452704511351363111009639331034597782009258430383053721450598858204635306639788293464613398017738387079793113399886190265313981865544714486256468425195993957019657497578688746393577828901372529506796989353225081163302272945647127144986449157027291563060912223110675997394840220988694819137024650954917643581503892457646107698183362535648779569693502225887699425857006288904027607497222364155953311032549788634399258298184703950797779059584407152442567040569419005381779302295699052177427843631047712269655206847758369522007829645983724805424669765626224104171098100818358251950652728019018385594366024625585208349188950849750762573816393473791025294781493791114495323244697296818234176950912766194008400875125176354047400534712899695839243835975111256555441905924486598210491386482008497704634485201715341145469961731196439516378406026313512088433504513858882643704814282372350582958632458222179854647778163256727819069756864821656946523092971091083657073637191146909294484286659029077594805347092849067845949932629721766684449485567812448742280136983419304564351599559719607527841844762593456360669857957932928836190778445875350729401538311485198832871600954179932722251856664483228875838171145826072830315962397017648210973575956072653426602393165902304052889972368793113299246920017447968587614799278639935293748748096659267228645950132755017118309826345498216929943798743464983322139662293904840384923018238319901215734101716071661877374691477254487644608490823357839605798617399813393654156690971555153675538393534910154024115199093409997170482047451799299040963580358417780950721532325936899031263066135833375960932849059579104822183659865949015317007463546735340564010330656064015984168234512093517258433417298853341304261164685760429291894305821209520119858313971242194863082764908045412830937793863536613410844320259548763863817973024770997476137344805784924384528678537067052676507118596550530755072475385240566654792433257085131941949484970268570769910233396013404803587239904705932406549248775569768344716450474900602096754164333089082320910332275094217064262644642263033838230134328256492075125740455006658211569416450754313816736987758079523394858147172715183594249713733451657467770857390063025185066309196074892295108952538519331843822160489930897206535007406752651489209710466131343379695378812633928130624889109104276408605091774758967984114638030743431314396787176735347695724588106329705837767548200643740568450594218159552621110864930230636647770881790559328110831384420924099593226555881739402938632114931168234709662137840327508457685486294320790304950607934380847630977707651167777652152526685063255187131325737566078801646319197148206111673491374217900031952657953387624508995672227270102469754049541786358267555652084685812420799263873730462616359359482442367241234269252366161199872194682586457788278297736996651666027482074984284895422826462188676630230566822427270024252728029032268236001129952639227824458132923353819327603066544429802693932574537739218303435436934700994034866204027845615861567726246477714154642019906090707394851026337616865670362813590802674829260749160330496246162694861925219123279683230881288704719886466561976213178195721477202367639799981088929599632291003708918148053792393427316991362950921631020824125486948673022486467855117838694332827454572982861133398421817784101508411917646577242231641087819811424319799880470475540089859378950025262838477615822025951457698993990220625073587822277207432665047064423577729450633399177466190630200929659435913096991800244561841591990964105572890999925778655299725487443674750470342407907571269268529495734200551164555106949319733015516505257410520554392749761905658375333546997706322947404264781656704128215079069649792803238503730126970445170018030801172313857767150815435614515628528311276836161785651057904646633533763571766424910181501711144027372080436377497606366875201949161174733157279247872350149109648710423439124626942334912247958004804500668616627077062218875707145674896240256361691637962037756809046540269040879242356121452972587563404266090320891159741369055630076434518546927168310236844738891702778478103451605717069047364336996345313105158782918495737583612403553393385221744173108552233635800831438017506097876546483842920575381120881844808747809785410914738820279397634312207606967955415309473732702439606287052055768539096524070256633647902105941712492747846295563255214762901968309691440557766534527975918115440295760502537267058607404349913433436561582611677683174787011856305242438324776159905176039691626269661311409865544648793559687751837135145245245003579998062591767613192568815789128203359019110569487437344511306717893968807400183498238219509202541679524510195839375363410593531193985823914788908387485228502339658394362314700170452939555579370181951227475153064920839484034692082724717125998830188327324448877509939889359436553568733568095424290101061377317408994693236981862870517262593359086671722034476972097931020161681301364200050746602361891608830712876408984344755899852254736094695066069433850686325770926681209523567374882928082118761780193595569064161347445131075139101663989250499057832037806926539813238605913674713684935127369854630657136955649935222558229261012464347574468282859238505737664982283790270225297228187219218057682065616113340933878217249178916920735284149152704551261869855601787444771021234382461105372990292105331512390051425029594187195603912221198111078893805865848727385204673565528042163157551200674390338143654397943268867506377789845854018245571355319942582605707577654144857352123722407749948549335958131187752145974233288305601469516771953733065939686768313350261401786941730006852288181449539574042529726192506437569077899580402219900229339203031599250470688539401565623954952695595539942996264685186595182520513244370362755952337368547541106843273900008767137593397370822972962991474812941851771736809581720748105302185400977577687284131940001469976402725235715062255867507282409770436700344667606154734879413759257269787433091852941525021882664909910134431169550535214832967784763610977213997322759809113017646395687114878285746224391477442779648875664305293439857769753232412165718248299874241918674969517430234640180979914012996281949881174510715998850804887204652150914258141871583040882666355285091418927708659337511709692928066504539888070715212768049943432243986840263829669678346246574351163064161596940261948508902304928780085345421677201611014052339023771921018818170514815089582818832425033261997034025276450537379634081960035270747605836627161329398110273893215069342466525288852943935405328989720615241720527915711205431644034106911990449682218094086856409398658149647833676660156904043999659361590981558819351465009501588821633405446629238265707118101813582892042941742522100980583526550615334414184267541390672271539062741848980716080754877573163157918073804396447179180009590776436658665893243023675788987160424053837869380448323087513053870928551251388429366885117450378899619684395967772097659545905756395117423309319080297482885474771304297677007862106979384341370093300377198592268618027061497209907601622980347492369609057180594025918889839343863391143751477376902171626950105870283565734213869493921609770936362486809603694903999802751341499983765795899260068251966266928744823388832528828826108038874286221949639984919667931422904568714133197319352743003867762736493661182789659105046238326082460328736945042864121602712471501157809974511669105749687307117467256273986795505017065192627189066605506579609287378106016589657119505846874114172304509613748600715950920080899444424476186176050708333572819344816865556123146708802004693247186789833005741071964073737256315689087814100550297818632445813545333618054197384245152964699938041468429456246210604438347103869385423168364595974944770989356939657983844361101655690927278537454420710846035787319218282119232672299838347033096215460661737183350038534042867427308646968561962749563588401074399193425889023439283406387777199564439338774815371424812873348445685737773227549524055642500375376960881555915629271110115055016646239499834754183285161971362428943531339292245089055262526088124453329311874808386327846323292514558637945772896261977260721234355935312110095707234036765873864077950262819315691669664417325760353654386056904174682694609875635005089368178508507030961172066984784021765055405718643829146066861189751217296555636073824131578043597489590960771869158189766770415682135604750451910485934955785720437204598045082189536889695628444328239359474261558140698452973685190814314919744512100994627911593502380270307308751297631054374663073136042869626901730714788466290067755987050944086057850323944336686702558199705018831312738491683016248245524742292774062931351877928560236098164495832350531055913124031742777553104169170535045798496121910772274817427049069511034365625994419782759550745736597718203694070581702893479798449021666541713544028411605352895253564839902243110702880373483189908423393210672128761072197135230366072634726718546884505199379526877625465945319384741961185654127364740615923374333735244735491061826821412781280607536064438190320846750870889348200051210765418720888935300339909710889365675540530070669840453462666871973733922105957955348692038972369098814116788979595658396406007691996161935638314409242827574369185485775992356512537661937707081617940635151477214623047353086478966469514085021220238922979969355089839750938474765093833242183050187923215256631140980219069538925637112887282193643416500958826735506357545781926740993611196222892134830699911298032508192124295846631762874391045506737793426721435551216084195083454594490329002120762824313157539487479168845850114471416876911173067724893065521169611090672043349071318284702321711784813435402360090421547196931097551781905210368914218248625109196619722485218684132941071039104630662651791040121770124293815440136980233101593029830677690952722635595452389135222062972788760060848504236903095678654060935839063771470503527287167936470220873376519925646355941388667343279810639926100509717686272938963000871136794901485551873783903565229759986043753531220167404754833554412818530834167803439418969061733976143489984546574839608538024181292847779824550709579180489649018198021710351258185634392003832820574101460725239616711750536361371329709975152258265601421121031179643520859741042155257493764922969577961868140531111456175021184887633933325243071110770196272201666702122066535920198755875043287150357639831502511700747101380992963450287239705656643854378480255838929883672113410760992214294346634583782913807435274568557822931380752192186751375161170762094055262029427644671320180967690493296862827445260636241954596018483940262712245907636666341554791148201434733311944014839301798966069252878399356618088537911725800966417360972760213583557432426987114424635282060326298814217817852669198177474183215119107267456748816374135572232365571012405902008029737992947829607976295437098624130177364162689173114359177585581465361341117268064010804852742415185199060873300814980362310810861802132470778957296108311502881827224345033037615027698117454973077063778416645185515491097198144101060691535482869531388385156112065022185080572686861205595434704061276908494162348098021918693251821046395360126001079446320594248440193461056218458532327471784534348455644724457323437356349919637533822653895987233082635748205250167544919617211654224988611863590717465159480881112628333934532590768708875305681674046300966116531328507242416994004129080409005676283135068817214397318868786030836475970157103447620831415606885342590037724725508667220992016714089393809279911338380382837962417871703751282574788177042690383076919361559502171862466581154671178001010001390961091388958423550503029948880784469598278293884019752493034667912991300075362007646457479956609093943180491250286134275007339315670655151329820621371409932702223894196957567271625188006206263535709352485391404622688226552019385156433855767137912852508066369995232955535509184064749602393712578864726371995669799702824652255196954536301143792965043696153115163257883698971452145213509306494088351558194252313125792445159619083201370268184971289286305858576007648757757120034093682859394218988423312684144409873446345525501512351461905023273641959226685234164238729828093005502446577051616530216984019262472182088925769904714311839318942334799721112824723024351660693799628075901381688462419931829047786815709278899486378370442834606873643824161438026180681307256123148780482301534536789387145624186270763841758825422895062502887921085721917634313255551468976911183981792665808471585372310595556644740780460775719993726388368647801241220501274972623040356143363905452460940901402199728176223801863703611681384753257820948988794002147612930148726352667602359215341883066329203511667896948175315246197174193131229638156735304828301484249973131196748593311464511935748891518865844010679827894310302564940691917560847430382529500856862013314398651953871363549816228144638145806752476594743787021854242648067148121919277022174710324862395299437232822079294229636748455435876618766399785280684249373038239534236550103045888840736857759741648155445177633224225491692067797233789120111647773405589539765639759456922262405282005303592068425126033768848875817883803872210060205309143770281105479283269313771688364826413865851289462521667049056021992132831283857316722305935876264705803250168852835663329905281327672093806356473421923577545355876592958166583739027763764253750949243150797714617396096865073673479162936489528113521333383906440874859279488016096697753891486058181833592318557764831886680247299084907966341518322560995042263667166637479654314811371984122476393189741685064749636159552843098552316590773514635470271275356140598758497263043415465827136577409223822441406706564322044095143845664621217128788832835677240383331706322383951202398368216489833096132795911256890332692979037699107460216202015518768006302774149693833191805886707825335638834294248709422291926711863520594805794968504103911559896508639258204732105509706977961292552699607697880162329367263045070708067688171271016651468234593731213338387683128286897574249853869580664838630220422410395869318093017950821610421153036411547630926345970689781872475606417189404335982910015443006548014758599849480740100718186639919678645821201192065412181043011133791375159393063901467682711317624514529357889948474098476593202363495009993286167365546144142034069410363103632132735958561699034402653851253662440925818103758718851683007026111704759599042133292351263486823925853163954506292310800264032384697959839976741944252277597578305816712812984615851989682284273597035152658851747676799166771515191177932599878606251001892328692738953450105527703022764217573736481126281669922843585910604642707375592091531306526016007656368382266575479581516807555597955055758051089485484033245131588993054880543272522625345659356627225321941066041421865269418244479596762831069873902459776246555597311363694665268628309096035976420580900536601598139559143939433250444599594511709856284042040198772872986092797302813793324748642891249202762509473985426396693516143685310903108939221939465514750067566959531280755860717302532888908009791567984320617202185862551591702478640585940426362296130180304990913211002152683525102745259357951171677420202623072527696748043807200462958722085563525700040842307274015661633621598814500314951167133451860701582305447856819892082420296773915215058180562876213901155541084168380308601837593367613776929317920885529618951504926333299124017561220988200179165347987962094991339236204520358203600431142159050778711811987474515556318298230594973216414179157521812403035056707335649837717892484988837849638424120023533572267859888759422107583044421993631813645135234437926726736440810872837803804023409310694870280737508308070470237653366052038462199407695681756377493948708328937255573169296414979621014963818672602415251784729749580359023416927121346837945464111247837921988153012674461128544825918259451956995362164081774851781443877686153885053755282963694007970308764477552004584282458684872552355341535614250525759369844702422894403402426634584931099431208779800627142170119050706365967153653957830034650050728184403742391912998487700293268016805611112814096370754235597242676897407206392526316580937662261227348060139284527792546291627073880016962056987541399787184529310459998785744202485992660460954628946273416937344442889562527154619766101523320542204346108019303859284942287318092709737147858909975505315670399753077797249966396032216002878785754075253806663623872661462873439018035961173844269249842923211931405868160342248335208033881255816155786860753262317661985624397200695115991068830022688695443253164469716059236419709585865299718116584811130754854549416529225988343726726586631448597786646838092122201286344623784277481471312921232593334362819497219158822474396357074086918589039137376423778968369328106151182923254903796321435172582619218986287715327288124450877055831516053937018439270827318837724526843498852616254448278142901930754604819898865160988812742363443246524288953100700323863644416911716103196392968308604962335510096045198032428793284494802426653164538350811753518356575967939650943222261246061493689012174334044149071084712422566739516490915485160957851002969583494906029335871227064419880478743921036972528611034591208805760714081936276755546671225529809506872970770455280291331226664707586467930795468987366650068639234796684433464978423701258417431562209525183327044531496185744814400038612983707928603546045336432261895856816595226469797210102554680619050940804700458446712726354898871597487389920788815726960741813367502334739904082130477351059806045352702005952104938445115595173118833576617138618885000453968904723344529109649049830361261176855350893098480130278079100861583077333752113150956030202863055782018036801511503596529084069369761705165866755001433682554340740404817780790405071988456238651249790490261008237966165064364577336170325931002713545585222351167655294506598541584523022996118395171926129197093905291153100998526824621387782078434217221486927811460909172523555219811362150790109861754663188871154739251575983132884371304892749039090504327278796582252505974932400990936827671428880536142385479479973165946777740502588531116234719755898109056725044103905997329961847274982073273320213670138218689273086864551594030302191762540355115916046936060689678116570101713932048834784492520638970610932817595213017201717771355907526157802538650412533967648313652224241950184397266595967092979118908401913553053679927795109698815518351785187450431974805327301025769033743449620563532079878729558904420525499886572378081974157117207095683200369443272956829560117426299109500927158610569623067430429428142938622566455516693177427207963179049353588670411559081836854207713874479960374218416060356009295238660728713968638228389340273165943381873807111675489973672977491299731293254242874550711895159425546226180035523286244543787458043113771270865356474551273684897279116584288542845445075499437046433788287692618963453249492753459592242126694259717624740135030265282579003668275968677471402851018388094326842758474991558944419326752467293891629147549580189497891853521884524171498811087860115749111882134216235175436222835057338288264389936899734758432648251029291054661998276856886382984398542758726413850282812533981166572975974092739832979901831996384177660770830090883792342932797726278977939924103044850433999024992079467298054822504010062390505319161392225139707304289165984546787249386382693210699556240446785335469542060608988234908312742003600468597582734277706697910017998000237544142086413134020927910722343275466161861885194698726592635089250149964257547034493725873831143695637004966482718802766092919364988308216664803381109269850827923352970099628595636652886542136416536167009365596050551951245368859067320377524844892079275335411271743480311975946089112360404129132547898754688481664590972976202833910678350214760216642831621178749755614559912804067474119269358006133704331506013568312563999419975994646317476780842595542105356125827939245017927096007155026866482839945399221891535307751192626105170617625843847673797094860630833141886491339699506729914198563156008958144186180738013105872220797815308649973465803943218750865690679755812562312656907659664999689120825600829179511268662443788876294030550115762345889765448918616136488105569656248929856150218222394521698474919129395570058532172143071056997550164835994047894942173803727019558678786899341289092273921934787917862470582653625218217050187911570040244885045780696253769282767589518727722727291612027327885952350565151045478044678729362471151593895303540772449453619800358111966312768152023964729882429910447280199838317440071034351929454328515648711196652826685009201531593212086468824267869136104929699830520452979826119906823549900009830279764628790983499025956158796398672961583632941101841631782962270613085921709288492641027341589155939630590330649984125833040671346718060027994556033082084796235799475758930143318371463111757574681925176131051085296529642033949781106811210220493881802291728587087073395802846746759538823242117462323110211608305941090288755471927374167913412893219691089254015742415358882166899395933677699024743142940201766081575934173394130284767451501479867012038421145729463292986998092515847682226578027166642248820665324776607738294580422305919752319411466729811523674714767442071109209530638284009647863965815841425968345849101030763099749867366233798350763583270121393972295464229308876731795322173231796990161481156823860549225101090593832040958138359899082611837471072194138186592357734098928770492575508538649014489816604241939207250462905203562482542169873464604480133609717054508903147410385378152646047362822211955037402159735635305676354615913027157070994956616084682501440323032983057116438026943857398217165221952580157025422664655292636434350269096754267118881132262769921784467589896863953239598225335745832317754221827921363488211181653930929778549136079135750481704744844927375387714484485750585461612808080653702188098155269391508603519469488826202994949654955799298400567361402697967202466854072770414099563006671177530961326880992692078176000519934126443667954169932633884565223245678633405422693307729280497433391305712346123981029550719816644468609968952648917530800152504267097498431383149523723069778469689307920530247589549314734774005925292359437298568801160445439932889108655131284926415173637462404557362183842209048435127089031387994952151970161035625078842407726067049682043613928995890117066788152054267410561935383710897733732500594648593455738617051995323534288034698526876726568574364056311416345555277714366914800928002873743575177141715238451989039349323838756966708063711031178610977255211594983288895681584605013383420207855489084446964978742380801755496173489128850531858215846835495191578463578775740919238052826372970296476598425823457643885034978301892265067364746241628645879509646319262945649656246257381325650367526002196320776321448855555065637998498550905404314130838502867295721850703674619492956580775243553427413487592196824045451818274384444389286841295586394572231140584115888889792826055602047341943142344441802760755580491715909962390149683915342748523796225523938797437938114196952155056787056186173834549026365910045863520696960566712909275794157003486809663815485322173028108946234833442380275940225315200263979568678250834540425058360747279475934791554097836611519531344743136472798425324337361012096081963849825326711670267963185799300343269938785241935413646791763210770017809241851926147238280376993840977045865511124560164445953325533749403175460817566599163121959636770077687924103217219158369065594567778343389631836521808073209174537107827697096959153004869284909382564557096699372306712688447610287385503793308609676904426732697043827889291668020884571387233650908239780211628887941120815407843278030189149276478470514080305024147329980438965552514773226988569178467865147346468532656097038660614329456346789386509231679790818236876657815789820281247249772717500891852173526066882201264796633069061436360760111923584372875277315228178207672225923298479246075033606531057455779394951067271862154471349180281338629587239970477926691921318691863869285348718761159643792897593142925356260419639580260745032721146125170422399478364735993227923580315022130240192597108500551641250034319127414342767390114773806544180854378552112344620884205340534910265554371254111958941306373408218035566009982195485933783589589537099288985688717344322027018827024056798839996744528107274703037921119008774939160007670852291377814191172506957029846902207225490843009519490762156772615602923818356991376078380691948983721592665445758128952298941992145904665509771829237301281859210560884893776738343286183494794054277025982140516353997610084324736942122157758465871161509500948805106897144012560845573730390298477386223605251912205083804068150979755417676195322029841143844168510286308631341816500032253054747281526286017369049049929279795552711202772589657052909678810993841285516534749219793793491154400854806290939051525794897153016066772358435899240332210389314209595720189384740810157756557862457665519425110518746660068232252110043796729161458728463424689992107187965264582530030640630159767994260598479592131825432476393189937025071180859600830447488753770625431523476077875853631238342357190051680924547973410541645590841471361898075567612232527043842358977529664626338390828014211949673536698788355227210142895784938199206482718914216214405407779301245521530874267054858962027692801119001711346875920039779255817711059567609509890643583355830831220575412975859100830804293852240339029024827436392540446073046904837837768428443762437102031824586875935649224562579640455705842838157726328290260836690099524651543767040509112411788058626983208814566080625349765384504235315599401031337260458643521002912119249932273765405970829639434084019704156788564224163317019870310378730823376728423256298822098116901881769148381818582280951173730597326723284804282431141840393604708395685186373574767298434489350784138998336261799159789570152074918235520597375488479124790129271065103728404991817390976694669937942988416778699816392696978441131206099024883322649337370871078693126694846653713004082062055630689492585368972645382611874848954799224941479750045349357531658085929033048118129438228459331858381940750822117041183224826523294135744779176952281424425185075535357076355700928528767637858959765423492582045056230410115663383825789364655601674347068702957062832762142618691571367094801403031294168836682816068374071153656320851366328781892203298399843397781897797358397706875411519382674264642886447949739212301980090341637112679724067365929654147269556502068335263377249524882679149000848994541453437503390189285815022605132808554807872272724703930753514600277119103255115974020208079224036403688467719277460264134885014587251299565105126890485677812942831555290118973309909669023562137728464411083667843934504120291417277852562596714027900366886903713187623426349983216227435847214929127587508186487399564629346100533760876477928175634088470318824210998657231890425527289890301224334395113716626305488540822373350928637321538879580919402371307609122169099298397036918007948086845803364565814617996730580925706892454227130022647657691997118201175364613138925124855560067482316064212297743491481498906946645880862682398148610688419467204220286037929057975425488746777687487503425696546056135706158349453260871534912685461727723182823740849033725634758171470110108309713682837955461062617927212044012163341429813148439888749207130936144244486629347780866307671410799462089572803525743982594333952050410976721684287382043084988416353957803993829096059962216077229816426001067295702199252038935806237269473203933417334439603832502158236469725530168962514476557234884082526205624800965296797820874419016678031694750524051679910661508827768386018004396309848805853260711812478699892584044934770600537009151180812539206551222682694932279564051382965743313927693054495016863503379063702507203817729785603121346229196993721929140161348982954190557944118194133414194472254363272819481327984299405991105105466140087549626122408816652280013967954914884696347120760987530794674091994973880362310439312296301304557626775675181741263623289531771500423528135215092747898445662912317758012647779314025674198795968621791562224815364447769031719286770856788321198232272558101791111965201043105118753980381512864106904921777909742680246540467344185452960795873112697940865189083284056494464956507718963474964908312555830795498744922249791363685005352833813642374106548853550568343244279849954073612112136290264324885451346517283537129381668863430531097524603933435125434151292173609345839191054832468148981117817672606585367087810235196305734151673588304681668868687568953506125353673132447992731601493580390626424967463208205484129626645973476807575032370282859597868816697596547503452504474616355089069303120709479580500960617781335543082685061760449580560024476135399755354603026567858368808776254630360447296128725355943215722707244688793050501099497519791077686746703252031628175529450943330323804639329604927978213769393295413530245411748566343429188927531711552613783251319797373873993510891950656499973437859548416895662095403389941903456096018373279560595406263289245077394782079940512528367526364480819974775468523142504039406875188963839964756043329347436724102403360047968998029041496924548196726912758504506340572825035801291460569192211474919060681315952834541044542525988848721636663363557259129819509169154329743039382193773008647074415048786847629735373306293744398768514359231916936287140549979469632015177657318046906621418066706675775252322476335810665517701784946987437879266638377553955431087899758201174338554756203274720652690125288912312045309022444338476372283346043557542019816342210454682170601274741466595303343118456923913366421723281364151685186917712148019860354865401706199555883633302460058140165285825033611752578526134119532472948446522932802130316009304050653459201316710654400702548940809245620434378363575721839116839369881907915556086455950736519703965357366855965306267287427932621712573772885025336907701844838061159301961007675763224056073945457198759966271600394515940345785231476043655363047257935255298758412337339394005464276561732324446312401405709757814699437034535150600721676142069237108238095372134707892550391662606080071831291823460796476415163523827121425767715064590793245691547428649511240180283064319197775536752501617579775715742276920722749490002247958204869598763294067690840671634171721001157540856195651166804343486287909605259947132297244811518764432317374754744626009481525419110251517874712520246329917823302209440922708405369729747091635383863970417364530927841487783466514328655948019393721409477166906083812984331123426735509322252846515669917493250973075598814451741522030136596679649794598098816204647644034220209619406614232968216004486453542523598361157112299404284175519540866750389976939774051874780244845724311226981620289064335715618921123998713128620587293544762722988979437315474388830156769894225034019378325918837837558320070513905479850355773923821331744378546899852668770050690713790785313635754090109535263620235561901445154306563504911706671009515749034312375466304797204173638253203818213946508624757044828692380937686466971043582666134215181680254525711984309619359978694168413727979079033503505422621082215327356712173714350121683014168792734539316378994874982566211751306395537920075816585575041226206421401821967520655446110378249098569655657169233764449043457597201902070658399810090934880600200503631305763786663090302487007573192092960194710207216847135819727121832822091315207750247691905987890054002712591877768372678063471457683363796566262787796622546305384035809022584701511975647666850902574972396656663763726416121700319102940130138247656537859854775097450077604448556389287006125721054101459335161308243238389318798162860715683681572910605523932733531578469622593159677786301454952004348591196449447917636645267066101190382602328013537299018361842356088343261496053829619025674509911696715576661703434373775158925514406272544407638561456327239479501610062176178984956638620567406700982028685581718348777418173483360005629801756567638952188637699928361784334741451839807662089039099896835005845958546458237561037633189603616507259289715171338427855538266951056851844959906898556763099860738930348258055524465877453130406377384326754859614701308613053451275333256440137669715808800048193560523895708246341237396080599300766439174341480561990600839244263636651294256276646547610819888326018763865012120538304807996729378489796659773205537897061108295494018627120269664874612616702508232839415666221783240883030957086964530253195066891849866361797405740237812898327344651305106677163065533852855247873536757311236875771585066594805080958941457383833448181859400820449417936094097975661959359943873133623442359034747063990210877273675971257193988473726843614036843590857974667288022154556558059774988772341276186641903676801639788949346468295292568077767377704586413229329360541175950186222566621523662965719926669517889596296858058652735595075889723922539807384900874044202088466237257196974253681896147800533024459196743387419856318613325126110614438218621143916440816831473304219078643858428319003095183745622351391403100337248856839816300212055165837574057774913693181510404651586382190716103921521224124665760020578344387544666873528044394932306732770889260111547723341532997393576455345209129825083635619384948641122572253542570772449886698046293049818964182590947621207243912519678161006877854787184797231053002824994063870255568951807212070030008964150062841243381740015484755613046927261501714856608927118687919965112812655429349589916301130744064188783293091833672311282399589321635888084147337286293873043724382725015910014747301710991297534441330836287348286598239834106743401837785333343114155723083926219174420485453744917148035581329512520703583837929746018870047549803496865101673772982857023303621653225810387467906633079411987851301601731044523457797545980063104861558440525386324021105283211003281509621420580519589756233666459270913291626837657999241726144878124576191245431859443379697889633823791680241070297033515906981681206978827072111525757796544931434516573188761755579701043755497935534733194268683411790090854309966095084668331197051028648712271385668197431294488554328710302314962405834319392123084826787460697021083929851853916558355988335616981661119163408383164753436804979202457470876840630569956626554956988571524768131627308161322600394521789551762822074018878001604718336631970602508831782653870453538011085865872299708936035411991379001317302762989021104869775857168138601056967119826820817715087283068573119203582429752323640236692318113266277254286671722362019767071300366912737718197121597648068649273205893394477068358579203747614154285264700625435884715991803873267710858124871156466141625009573381227875148853944474575890565061510295243497511956981169492045529050598361733862991995403650428684301000817359874836580378382827299160382737166685297118291142814739725961452818212506433836455444854552540738393958906867099573292938498332098490560813600250930222523019305276114957425298514811442629084412542180645257464538993715968337412823704270204297172881753779607409020398416452572306808647219678522876351237825285836026195375751968346771066534459844044479250376560100330090865779291316428616676986378394978132565470912591165057085634042657163524942903570163689319291700219547661889722141233189357415227527669200849034172167370407259716888108859106272372616473823947603553392762818159493603246755136959563719487822540869505673061691096614214941293014040358064371503689822571797570719301614025570864036183681308786763284838926478973587587397402681398830115051889034005212615298688620663149867421925420796025436959824516610527174823239241840175667256032277751558144596158863714776432811939351376162675567226154922836482986104390936214374288727817699275596961579233947181628980704818000716748058270979171342064824965990665193617091781610551198769457605191951378134186341750613455204235172071782966616610170199763373749331320183857364791517477075052264181778683619055478716995753288041067147549249446613647696137660043768528526206995904366728727419009034794889815289892445026941354481220152783808657258755842387639169633290330939702016489946583635503478081870725042812018288664409294263086534779151410494323233866943201396947758719857190818430135171627071341522128112107842102453982801694153984569317803144034671755668215057261031404161687573792730869691314632857085946072040707275621115488412950601012404502396659286081847884534531697694392846722774507620400891962790905895601708261185184002801402335797930929909934812963348693043771893127030206832401744748757999052393591720032812274598947406653770517280368777896870328325322364122026438201737949125287736870994071695287491014975784298790919970207756372239756723674012920378902916072139502388357494400597273987843938979640372944495819372460305542402225105824201642051965056301599187353177233323466809745700054744129917760536772656465779320476486278173041340246437096381177278848619858744380395659105640154196737853488406910153971420927758500840740538928934310390400778213792036756234285824120271894072113812580857139527001495941115873826277006556876536329169742474170099187545732677652790585474513549348087665990515735258253249660269494010266613579717796320310020957645617460205123809645521581711833622944425277000759511978240215717127227553016605385827488824079305886848339686888750212365235844191773353698058298357439937957447179644877918430050648546445697251178169979153076396772298011649851431738794132944667546644489451647944075598736706023198414297356400611804232047053606304669695023312584462437396580768560563068382009938571437275257130817214619439012563724350950863584281963781426218970195111225030458851021210101080707986635278658347785264557831510212693116213633850268874644788192110631951576001711418779500874441617443074608919988915118913254323684681108765342085300128071469357569608701511554634055675365620465653286159050130214405808038338928190531660567816414923940145910615578499840859996304941974897564420991277271052768471434125108831772531202874452172893392954529884408714480746814478103801908497039018198372464226638666195056896974961106898772802953494341134901198887560809088515473543427402567813850543074602732209178629615255927230497688300872448059647975222506260790402038727853784661922881961666783192552752258014461551766695441611144265514695162076617503051436169050954060969849667592776573158453975774565546454145289584899080083077024954239804657873765190057420618175593137581023429034421026721803302448262345629351592738432426829875028593389913014334527724955327118330007458129376115301218059895847644317096470295248649797835829572411250476963407148787864487307819623358015832975827942928086520241575577793281202010841443946595171255522291788944914919888711144450883701106393416943522427550069879406522721621342268347403939951522770869141068569547016311713778474922353009330302299503393984917368129722092813403737317585602132918744852718362411893855178444536317257568846038233304619474762277547759878059055340972717671898623449752438024478967592031893510813438003861587169270236682386056228270773758605541706837959010596469408206373516073668397964350810873735302442842109559756779425374531845267285603357520195104335495959901896461533612987121735403205943074117293577787591656755088245202959648925289409516709167955119499739836899684741371999603521919408026343735415464094013982762147845866212336937055159094777586181041425149587299773932959981838485088381210314602003868017285730962959521295782590284859308980405928417881583644878781358678528429505969286362907073417165451687047092460602004522698463077446738773253952831106061089085598655971985214678816785148179343919436260447975673709556870163929691309147469831888083518080283276172298347405127161310453234292651622487999903359422616947810670266313240673909087323104782729043804130080640324233786267208587084077137906467073777109316425825295226532818490831542142338822407212570787079699794590616324547383833919038783877684475299992318144491759193027645845780940676416124078071190951854770006590556288339838695173848441112723128268228263515468993011085105437943005122405404237219607603326572584321430593478473673012643605726486364093851412449943200066533392672086798082074885423838947179022073041798957288852620160164282348221310307550518187876355133221987868092987470989693347463105133753043463925368456573460759026287128749090416725535119204123982317739065715377842028471253476740127665749922886458927515207790379414141614040401750945535642457061835728324369336931365705749076088922360657160703011872942745637297674609990991239930692909524921964937462718510698884139061435453340097300922842706211308652749710835413190981750573821518170654044471196872879007666422992611369860879948868448724643660735207609828761146191702245825731638080379226751111642332514001192185200432093837526012004208188878352068457277346165400214480687627010761270608628505839986673688564252719723228985923027662208483898986299871022144527651212676544072563424557718627286010308323395502100713691726220377250100520376450930911419248103588442992710779877169154137781969803708095861142703255952863900222253263099840529154545900245328999962138082771788259283357313292078267309374210907969464570953289159186130584653246611996010056280979018984664290512399494454882653382558795179640868002745882970371007264554310715705309475039228981394966235532630413774902504100219565632554201735240083169106593689552911505014203652357449956354598937617375999175351047229571436613515600453754319678129990150039775057259324267797553878807565306190158144327059575319170122983229076148446001970138488778304283784008868982744416454775130732693346098252207804933896372342592840490526477781355960071031379030293843744190557481798597295756765781683825913849629910382259733648280743007034399527043378099191384433272255619903034985849044389289900891581961650033545591705261052547985983814802772486530180887761443552664703333553094258961432683451401018617108394350267581920642331162033031501058658818538726536156736645746241614251908639458165453856297883802860226598815406275166621422820088114281672262586691133164866799073720392334486389450778167233889623383871774205101473871608368098465887216654220130520947444786836576383632131317924294375885634772782546593996615219374632025451933891801228103945379403091879654726212253085930783154612380489318700152814495349487114103635057970609484115668456711176330060603485406676224078265718169625914169984232314627332297619487784296248261457023783892485660778370357257070889026780414756330997551315486033498624390069924950624295327079054196271746107365111211617451516260314743336396385889451116806149497437382846197682582614698333013606055460149440473325963826803453879072982172165272681915212736504724275399772110988895356487537432849559268422182558530858822980533747308891874407151876621153596107223893454714554411951687177319868046854997677371108359881522871986344277364100346336694029281342381537544278380927437776627516476619905488722548590547950896822813537313854739825780708569665620462623480629207600898495443390791938732892133480216672350302364435369516515677722354730234996290781092872589755082600748065758475369120707419686592274238780100540671523618806942778431924660322296904920414138838216129812081969069902855871500737478738054666463517651412055447233780576576584742542676299249714623282006303665901159224372798075934176389825407720626752459058090320003959097927155116914271988235987277218339183281942604134146613629419323766306756816719423818011007285615373299683903895020126312846500955211226269289451208605110819549694949962393385627785554326741259073255515455168183609884193691479995159088657377776281630668696646180685543757986815336304921802932035841328059281459081475299099952845296565321931854418638742461715165766851756966282487984895397732105584202529392781635193008506765939471454033998768416787566804450277428504275263520319423941497883569438678176116695939810594290594110381498525935321925001360177344340796776921090168558179801463657350593192452476907498712608839861842136727227215159370641314908020944265720356596837053962048423671831689564932479755982802344568448165274405496742498803798431845372615503053402705743679699582874507298057838615082175676729650313806453070720634208012407573431031344346176986163728621113741035911652999294828133927468525111145605819180948176644776352477034711218503439771460398672123525727554625317343320524883978831728943679219407609492030908279300053654243167443853637314573226804344772225339415699514754282126849887621192933394243074048502833700737489397460762333607793630722342062079239041540288911278015180528230402434656521420605379724865016666610952889929904697595275483898864268056911273987877052219114692721832856400175347240968565899136934635771838890236036764186835309614154244161767177175458797711940714104768835883502528312684999529542103148017776240968525045481977155857398244465338264301970372194554035964094351126743255181907765302928536094092922236284556072652950924902905102481058483605108115182365653963553855347833010798299034144586759099029995250841402729750353771078538841660143670197494480650276329589649135509144630365496944114145965115280771768081168878990042980176116172095822835110901004611997543055240859143519198999930056501197354384609385058412558471594626503448082260228460924159899104783685383184270087767052519264683795690561897829293034832117625811979872058374943593035096041847686247202638803797423288650087085779252488429921010553373948084482204445760809536607976716908375981088640804834239097000246580824808265287787313683618398016774633536509102328790244371437739166216352981826188326080902379182733453602758035159578415586435786146221756605401729692900802507036470598629360816531321865990486939813784892571921857577066769193014171652512346703144558916600576776554856317629473828413739735028725369358969363511730633282424445394467129057778859018390527379021516834463958213722075466937865825935607662744431735745672953147911478222607782380338381895588874665200176498997826193950557231682824250970526059124447241179071501366716481385517729854438538953266481004825434481718636041226608331978587172152969379424558928852078450752373662696436694986351077591617155999215791900268338021092381755487984781895465035458835871543540289019087444544772393197042702398983256630576400289266694235134463060703343422350114533555708351733180644500676560073561920893971217617425227472001713814475306423494490728762179939277060732786390526402852634568309241585281829480297490493497760341298542579109251630691029391501607263113628496967707340456888826426063054606714005641316983179209197727771978194972608654925760708224608418435953944380189429088172180669345874631080650276980552181772438630046529059429283930839478495849685429874860879040230836324854283994100719695292973105665476995426720354647542006584067895635583215035234788487502833283033561939419925156795182897529921398917679385988143705708669213157320607027469012371503896577023397478307581330232675901403883054394182970572191453857436742086765745308389484203628353278329530521061694983531731930270471806525507989615200446783278154284847053174888843050331180129701662682182204130360448003708659517626289429006203965690550183201889899475150274602314512816043091637842921868249924802708142429149461503546990722547166965867173794961050133009932110575854375485516692486864531924929234281399984063365383689220256378098165246455724606201950197522258171366074291650978892532976086155972150035095022196983971488960221108931607483654608366574068292352784520255814230927271825613258151127758675875763886093196269244555706022974452734898624108943792904154289830629598343571578797814782133717407411626923716367537586728244767995424502257769965835334283604179445691883112615588496190434295643002584383444732557286163699911321563346412981711277935164975678147524014686998898054344602522861820678395872168018597779119765844743136062927806446699925719545580034932275340835498019982221655984729808746819337531485656075205553327029234396043090448262614405828713180955501098188660654722410477814759196803180846785880561146816546275052787801636260280485720544019296208195451898421606850947514885582552126133024414658703724751058190433398346148363418663044400878989428071894122085728057096760057177746557103020207796604184274963042186076217429800453221585989208098726264051295700796907049003560359478116660565824689428708220456453835852280964649075200182221035363807089464176731452407384260691550776572048951435779701290061930303445513819831477662690754648278631522661232509511372767795805683595473521614005106570093699699470149549682477101469382574718984716927571371708049940533806021074264588711877221844556920353342773010843165887468691423701089545280615094103022192813065925458737377759534469928789218877221611387131043310706967353350253467024037930339978770773400899347022617985711858882840676125123338015058030168733313219886531908660152351256284998760778465264722130825067925644483723249742998483652462287383141788658532179648449444684766940776756774068330427687441122822303214126652985096465556744322940280123163773100472914229803855330120591480917203815336086926528695226499531750829962976841787996102323478069242428025203775791591607553400034288023802338835512157459111708409448113352910061452273161484078168015194206980764723312484751964382675233453549528589791581059630373979915339901351768637248680711662217562338103366472645617389837340911972025739821673525873832238862679590098430169241117590435775081824650202134115979783703260545138117476948112426748857981020702663786323835080689953447402357896446226357883820668830079403828414186157081686254242784337346150603180460650468160608629052200509467383817118648651600021918268729990179913787174996702070559026691072544368599349755055099197224465757264327998135267635599482144597365395467665468436717288671246071882683655766988956976572218120619506703363104306226820833817008330443451883902158059930898151138815789100243077005028526533053462145068463254540670809031431207667857491153173440308632985057271489269339293966734458141959638476090087312577240290151551921789363086861293007815342898585476090141518925694487475585555615404124329511605197582603314064483629808324155457954218765969148636506188435122836924611113331236461277506000709325493725969542846531583850560548466015568115396233582135915938232982464557679866596401288792987718416098721906652948780441964065618515653059660060895755652757902342175381477557978978697520252468595534797339340557591976669166643577154290539089277057322738204918916342168874917338755552505222832065448316796558252457199919079849099024693525744302142515294873575988617528868433625617464688584429609460044698817703280403342450659417644174846658808246938062584968682817080021856431742690006568966133597110741430754947013643890868106657531161804293679471510349528923254729622536986966074998116481188705447646668374374804922888404220326504732680006545026611725647854478560856398115879601085565642462222114765903192883085008532008726212314596441373467994004972032372774553488254840784236805296822722228522846894655122667604506680182539084407195625050620163476836052076940540494638915721394144914042855790368469903969500582056720126820892287635763454633881694862581342216512679530585171783708600678049645050723726363352873843238130881397531691700324938162216897808491603787518922479584708337860628582792019013868570851728163950225822764140261034168011056465879298604667678897005989283626918087804157053015064202729264329685411992048535055930831588728002258492400011364282426512254436297448451485729994247841981575762102880954901439766996313371902780561807008063500446968408326458671837452038595126978221126765465186123760707336227187873821969230519524716994601548790955407918525591866756502849577898411900281065382441883955948273705794822332427919489764758322283205329111028280574989315932610792622587569140078282291628959087300664890796303465423707952216848573606634388436541268205799423676820672225443883895971774558828140789599860270091330819756559665012144712541074365120662336390135670476136071502510600267216423723949915392806378879921623194851698514673542307252680492072316304916459837548636064641028591761446471389607253849447245664939542702547506241756531995501774725258230546302636473515193717756124629965602777405744363095364530299217463941401251415802777166887657206009600128408310062956615005249914631813744315859921923682403465517008504171416330722381483920856993409241261967884403322541045841337114090446329669265323402343387382411579479493993677424389583957803822920771662788198445950973251719998307092059421233397555097831692106519862636531523870696953230882825129365455560870973976613220734936712403430882008929355648224044050077494572407445834320849923231590276514061322088642243243684485435404909209204158176889850446263954552126158815413515596452307090942876087174912910402930621305954476155341935994027346474840261642789065769541306706833682313716752768736552799930863859626040724396819614540147991772413676600801136303479212333045117904823530497583609586106620308358580622591641625100172551710422052174656647593251180990740569072394720123996836072229305812504468874267109301408502069130609037743672697329359945210321264707035511916409331198326577230863383416608001735248616021885653054476516134440827775334639558452834394800960014577400523845060640822411336509496756506786125424327213910316325670419831010339930195589132927758508790793087426516081413646949983675199514050054452091561353298735002270128974520863243718502159629623365813917932627048057269387430691874373065221198941677814813487053120420475554896431869974577468926052914505643399640157334707130551457703784859523556752047027058899798858632676685294961435208931031537124987454721677333520935233424185285444325621449472668914293682073800420430550190377678735833860616294589204698482683268982027147868240909156489405040226725640530731524634651639251680006656674845362622570110912436427084581212947971112121980246158401560349685116946505488912498052573747003036659405148113422552402066384107229581438600685787143852115572922501908030422593679652431088226370411593244098206039075894185801073669445043944225452797956424999227504931467557377793225425248549552588277825115747558240043468065624045007781640955622453829735578362286045003739773111960846298592149723721217854963675247958200568234686687809370736207089405533514964098148706183230770836384139874361705740103298194709559928699905019379674608941894101889936526851311180267688807717222121968474625601759074253427590149870162696463690734757542580831583597099812827023253009642493977312208993202078330088043279521412719008375039237605829021603280597186921870543484817611692129044962194097109876900882185184857081075969661871753160925344396046898421130806147835512528152178265887140233258701498165448087312572607498661951229774315332696858636898390785975835168011003153314497713876895933217462791640842258810982715966399347447822158467490190249044819074901231712697338476949367472537222256697959954868164150858582079342142664222552914563636690637805576147558441888737487911927014773917565770538588681352313057677551573763654830939209273838018045693515312484426070188133514596314855376891605026804165200325105268564826909732056992018915274950190513642179532180280313644889562946532028084923142828614680776940404759015074874316163938529457583604931480198078695795117471516653395078471335160515486586930485429233498687749774135695486104412503669493969125841250049181720946241894600120118029243466105928230948509642455881567359285213849791676238123167032088960773424873574358674889890042670138581305461111025822490361599225381966682667107681121011720403019260195300879573028729475867708613703762666060012470335699307570270881307790914297412762208045109128289051140373866466573725665777660736782968922339046511857838901464746232935719296790126150638071731454679164506915495742269494447827392851438148329825460278432157283519834438433941849091855517957753621799201189687518324940940476989364779708205110336550077791740489140355592131724437184620390060904990037584213911436333191671563543775564909467754702504949237855927093149814989040869036529547572918210175376166142778758332213625686207420195372029648721540379158603622241627471614374984208579972266830625450918145270281481054835885750805753904062376708825489199598355008914687968712020247441793161997129689642653980068715850217913957865056337965774664398806223971457809054782006339668138812460927950150082686073703551925306739123697710817650272363303437912973607767620168021686466020314925244001804892146069081563310628694936432382922703724284128656081193638180872232262590102238293167776877875177519093113788337655889871605736298714927637429162353000040670580959182416557953278682039227890155575547584514763120786584376685250322940843140634895652746019241739977711185892398349397186251646800705469544297508783586183548858201512998020950828631073800496266931204571229576233563300421672223303336261524131127489299915443940334416682214463684726737692216586818864083783129906091473869399514884766390020374040165400403928279485912924668857142562895923996644696907757360891674272842288049125436819391811018576845132167416233790917014956939875267598111268892466372299145110877145574021078203695443567314969408953624944055065634423137491526130149389333834586067397125563187387945273061158031085430970419130138460798320787756117579016848820727490575578121632803615786458176347499456338968954295996501489162590829902884212946638122889620551367530552478642458060124307457650079430104994944833613257733318255982890630903126159296576936469210433608505815898809689830039102658833821955282176211285419528063417459478852726046080187768367403922614391493642117582901075094335080060465396466025659957900783179880045013147525887072960679829297858393061838819561497866449869849519420753800604929589521084560798922516094201646615504444068933708885129288904017490390460236390181434367766734592476218944148817596108173820767808725439103853443616079696684276658378127085782598556644599864682963885102364019568265598829875413608001566604995707388546294164210306848256123266331859875150041760427208898744050421615889681447534799605605216631527100029135333592707252686112372542414970296622022775198043082943552413962563086679652748596922560109506706200144337100823675376097891697870541064986057237363954804589645513959463483306650494931067262377552507469046774807638162898099617573569398975191730044315320631721541619116214441957055206540985053613362245834778860074445927667105570277666275631088946197700949209313313835501748984432439231061682035439437612524863069292681433926684397822464187119320284264303177540436549903637417200243845546338319505157792752184221749529542861762460501577829834808451997781921889602287461327594809137573391290701011930445452455339058113953605598345062112604706281775039796811570328136844258704145171491739514618274929247293371204771982513478485895903150726440363777808136429437256539483639259014024455563875125051279288635457529764335400787481581398190030331688305067515732723865317524451805917759698280249082170912459534968453822289063632002482404783022492226328692811447310249092743035313534690657138691955048770225788841972317085622737731130980882448564921769163804010232066511432256148331209681512977590025482505857916939873787259129769938710341582652359456497396885842371487772783700336118978985061547356660926822167852674053915925143930803352196281028982149555785548510259592854955303460533669956735496550197930081175196201080782869027536241754695461812334386463824030132165588451108430091423007312982412357209184049997736032560326691053711896236318006763568945129888870252883918551285262583386091656029872156076357514293125817674709910808833166114573951165379922016513388527844006530792960540737924860288135535370490869323095224385999379952478228984361877743053004597456953959019172760043849504975675116830502362612247549910745238106395042607958419212258702429809797830436926781490245295864629935934915612305252286611262538331560197758133768784431094778573051903670404550900576869464795447096666560274465591400265709700574017985897148004691782907094590472830982928691815433072799487195264754382167782563205867509905077122638804747077899590114214359345885480537614681855348873116146507474195343817064378074926118186520756418211570034587370210903494455284728584979051502572385568469410841047497012086096698908048216355221362942355978909218600783443713615694775746479118126454284987870507634332025348177612272481664020288284795959254604069820586664311439365984387346092707897586149351347555260614991553468836176430272392288401186337098004981301275527398706283021339948371616703820179458082982075123193928978925118207944820772806847260567592425554006787465125895872054009580608399436067640878336544212763534454812287603045930596626585609045341433876778599115323948807537716411736144077537729728025406987522035553128119600408227128773880761243813123403265564013656033870905104004044383603534913118063602597940562012123565070391293148824485817168971521502387065723832875325737215080527495722269560913493967272221394136320044810225942852148035432414324355330697749515073980358858106183766818277892117910928065995944266946739357646635777503968786380949477553210751938889451331137487761575786255871314134666931702286389604150990626511220327680986521963884053488202943463530982963448249487189055426541915690982640570405814704893868801565395539060325599695886842366858852809498386949785045854868113830459194949991411598772361766214516294764711894903696088184200301279160274149285550650845717749634898334425236621765075590675076332951066073190523750748567428724711000332320472485817055796340733685743885522656694874550963868503568855535687709889118780429781984558829331538377251928062680914665510827384506863077990733549246225265274292936293008411028735743549480309657053827247490178329910205650486187660575018639738032395259513693569261522325702884953647282098556847127530066775588040803580788597598290977338152356984486101339728864645194269780231720562735689698736646548199055408867183813233561017222359902770946652030370774767592942555021918938096086594609688396385776889094743503373361206039896165221406220088108880588900377656060689860810077186941200660590700170213896881451367976681252289040943291629112722471366971955202984051367932106111181937727338502378990365317903681939690880958392730348200410891601423197481947534287683912618453694083920594761016688968018942748111936954418657618567716938020140508797282551748432378448996257029713294537081060479435570103123403653947263867306269480330848468443171386698479651836353886440381382954954778281741633086006067875978520853409645807175966741313609822131487208784780747348916508944183163792761811861795776612995368364008344336601061887305947536223353070936896751717064528138709656259941148482049762398712492407494470237684532737893360229995244576629553209319954351628070989621559180650369068845811758657953824452682665465859069478544137439476752471126395617872304551502677303471322952399960803601216698350174955427040324834919885443570189273831160371713977019440040010260551930770711443437950828268089589352011054312770976754286078969990905371583262894768429820671519967845183110308474960502993391542395087826242411910709969371661000993379870363908985307892814880890637209927841672702931276411608905843037524098194398964626589020085729114988602195211542310254400725528980903478951150709762508156808085155848461284067409265349404502747428535214976765561778688103745954286638989348685705168126496472506195922726937718500614161035099569562003307298352192070539612018135256114753962046939296605338295950359141624433363306661546634591513818097833573014718938438582138281226586892421727431581915257509949963739879423191953918170368675831944310210780454634375569437346568844746983411898056633679727916012291613189552921290724348581560772573264057174909599630945256518129341444457274487496960835054889732159738907566449433031941615863200126510806917045805290210562693783861546564457183865781453265536730486421236598773537025889733932786241468295484825914139606477312802540807327451639105342949717397670547755122455078494123678632628451293979544387785066100785248940551884989449758728645753664828868773850595832194348218397213356721540410104590887612078703788297797489860112429138754053755114104180572994012183816148117214384748932526275606994634420823817440076789682711422024372361237480142329089923479447732688838991842888087861701491806030469245391322186480803957883638132641606550627680101433199080421134258090448763444236900509244917915914722363774631523190871700207353871766792763106898924758208376874144367224174632889810086559838693777679855941140973547790410251293564772255656641963550610414393003899910135276766573416403290427794910411779238594724032321439794682451936428943946545709711965866677768334237420176085995702997896757619172685819364502782764238488071330271547073426746881127021432495617053784342315094607594018728311778874709127042768344795373822828598763285400548969686558075723028630867614236750230542869861459240718099757918263651843655002731181160166668060559760530130340300591086985424075908927418931607247762254458304121510557990611932544895626347248387394821604840920111153677748563106486857309987514833872770537527027381522116039808617337268252903020144503941607105122245679619452702302686277699630719279341569710868897903600435718514789810348561701359460618653847339952083320192640365007291783862193754176025449399025695025500821188843644603154366754838257592932872921003093379842763995888760839115227222097676191248640241468646765667472248310642264277437642651743189831786168232421663825949928333862319969465264874005495993321408707129775348042670525468801950649541685117264323988727981496820263627550461789610676652836637245271688565821258306222591484580490762040783146117893716498919790564883328771454231992121169663891342200087343498775270222186393836763472387430397372778640459011496810921139122809633321561365698775143971380597566697394847852652093862587243026078603284628492431258057110623938292180914164179659565277866825829461030518316786254159149382782436811776845565608409396596483063391952029850647024669988502262204748991889158629467251226238319730923475559397899308076239467054506375801741297825754503443472791886437411902184235878733093939845376941806657665249254632731988205409779652974643821884396707248034640434815010752977295779624321075985915281126061978963066977632850510593853729578885677819838901812470652538228173659446452708521846632761677545291088655453689210250049936716263395536584253006804343327558226070370032730088316553787350574009217932395529785739913437482141150961055874434935784514383817414823643782447788540221898587233831191552060473879531614759144093441270806618390638649966476559321192755437106749502717648841204009878773448482433274261246346759219637179192539541778891641615117895006043461640098526440474067846836189846898508508120579539331748985252172281661258043279445140229276250669747238777318171300874676498474432311398042304365387771815884001468809751321239931538069473284081875232029183225028904100827816466291283854278927472940843741485924550921533097088301903689279992515839173476835846477956098582275751860203076970407732051757057240673886715488476499808518083879646340025067571817763285678328405422350586138789108718449581890325205715392841601672778269862763089673198762594790972995732651465083550614508703800631266505384407778798820421212228698360745176829618244798589042947230940852198225194541340218799638200372534284410421306801507364846453761874393975962059731904717376552415820789957626629317786869258267503965766409230784971822031677008472841715149864571198183884256432293753078333250491643685387360616313919197879055241458813552017793391222094855507716980268285842108930841220945152199307706796900043205059596379421959085447408658264596770486675012073223747353992521289873171911498681371613377181945545601720205911185996582730955863635800452440794548064816335771698640754741033864709896415763196558707015940354978364257941470785971157153392323219455459006136516879198417045810645732146422580770120757988913121569307261239968545658271930243649445479119715817110752397417769556967528436575995433812317261649670381564816162570340635567991668789330549325763820643671022898933734017790581999270756020499738040081706972670888801057921116146905513285957457762621253312595327138638767671011324841630679116636205535764727266442306942268188554848873444052766737944402766999956497250796406983292682106307668729922859219809606900831602032962727482432076567644462629119176780729731943470811058890760462772016021753830682797545492066515287539444467411566323005372966276102469719036277422566022885455297150350200521263122765848955122916925339001180141946939925981653134551013564756739824486972383812136242646590682970190828670498088908158096337847042744671908211662396880295017055460805882529308120340382082450334142013011923035772378264863472633786436139887930672452667836302618437945819175181743105740286254777305954970374736308798370037113162845459807437000581323096921734477540546661500645015581109098236183053326692287144685342219907616364843925213210559420967555705811369878811743411692579871473936249905856929166078176652251112355738108360607149491671006287192603385176129748862086713919721792515277855879559063652753619758290153637831893775206777650646756417942015702884822396769055303036503210495725655332711513029230647330604621699731995737768699003360313198923367825662325208322739992407572743984800965443495709208116219850236668669045478705306811740199561501080244135145544222436833887403198319796159760878891519333113340220983242468090906406132016000513543443950141794473769967376300985811402733947085538382355841565007165248228133988609189066738207315716628958306788234648632424610747764818949577826686359991724243894648617292212977941705410545918694693982345597136821031207373255373252823394216234129445302401801150969995114498568661469944483719958749995923451833795676713806337063908070827939212113844240164952062958092507499755320353985125044337988534508990219647279562877802368107672439193112141837402791918340096250449389162071711985749621627004645773464832220606499295812004276796241456832019737717929557061645490572252788432629780909948733047128966437208622158717288078211403263328713386032496876732392798114121209618239732684938076098299805514128628768763434455001978222584746382785240448658290669054813591293908622281898509059317532697968280429799024589774571913331814536047287358857590976842723439703885725092800320542227124309973271481758126600080367228958096171946267179114141056586731716290831048935059818079534514503176107152379859083457062803724364589179676515788676876494497470572779037830509529473247426346328958549835374689442764555940330654891553040401454583772884072515523529037235449647214546302271804926656741452369383145598141622787706697302954627903730523197336298460556560621208287444237769348054046987747673008697672664397107129198624070924658148988839128439469451594286439988387645545318210905010523046904338344687879787550433878613579010080856683666548678798335141798875613994804522939796426283983329030452620674514858077679205584335995853346438018584765757399358504856961393966996933843768310932221229792253028924873536257296562206782338208535909936061298029954799124418832924110087974754303792764185066743080311146456264342390570197489522337038612361576936980286303607066441441390781814332185426591721565017609596522771765863367256669417383210352489623603898555965542304774357653691831507924511218258827990110991566516627446889717854619365419028394970974875199450768581195636427576360739799671726916144285309420709524371356699995817998621273546078490598012350608943850612232414362975794900107307017317293829142959418211249836356260343584860201506643266107613577227765484252772398707749869558215058841698009915632212530514022669590064982958813226414883903854519769031043334446940049065941046770025527565456958815642033640314811666931232722253960197407248468139376607095231899169607413913777419665714554827522149490611651669221292747362216663970103195272619699621976845703034715496552482772779512444574566691935522329168165145341752065165614665306888890134774954536361597158399963796200694400394351372698628782605764865683229316275197990878525760019045809273085010406690660255188965411848852358327534286283879216136524612194045166892221871626656152995664497579334233335792781985593632198602084411504109842647494856253952555014179326414985643784780673224659626165496787058590725916213041405427780214020066043909685304304196322148462332945533628803703905137196450500577611911699780028556990432275211192367107378566658507601022135193167436318638564969294908611689744047387830051072010794872468409306149840143182571948224826382815617869207252182905661410815259999114807537175375659651679555334846985019380748042413459890652899981343918899297215468396890653133428152478102248951966460185739435574692868664154673988888265904412997195789946199336584504210680233174127226041758702529652789847997849543630220874529108239580595829013694440073849045639201405440741257564075548665932398338796879745028603270972543341591530059891124525132598119236948399067171328440180666070343230968597242317375137990876707469457496500410183052694036182586056351483997958248875961867168965367824973791183462055985951539873986898368499503273631634735173161661378759262219093480337279337873559348270321365628894042706622781965106961149929778917320301181633577869408528621670268416847726450057495860965539363687359595739379288831095943958823135987220649842642916946749521677447628293704515010595753409200308746953246587893632407039582132251827296826108150856113052553696268082233285408640445065381309645189598533236473194647256960149716728589524711491773184369885210682086576718218196821861071512409984366870055493095167341604340365647047860746693039130301860981197649196765338641911166920438676393968220691419540515840554896334841424082744573678096346906823890898884299944556922111421417226958971362229744717227281740315596609288548557749029986213520319682907007886148834124773119460387472920366063675067760599969815189259428885469405463150769268913778827454158605371673634909879937789740240323081958438537972461349204044603323507791424213667959811145771160389424108998962583573001883946919899568083874115836056708492042380416376479955541397937388751664455092673905642390246913249382624625659776705978496145794117887384854699798595321491976884428028737467808440568364926589976774517392157123244227175983549535729130278577036830382404706687961491345680828176850581863340381740101523740213292888416917390357781255712627660802033670785454811615600351556192013941296965074890209721589606258846249656912810610271870124458538113448385339261188856680154494869102855736246886218656682456098838501597351250360987693081517813993421917017194748233933848334980926845922767511706301090617651221964094693276398471438699596653798094826639139068432461747590127049153119171351099900407617421179234519967243475546258123816341796017203740661415853355661713518739799658184869189944069261200503105738255581784068986152388095018130417149941359070263226433713109191576809391487158365150408882465866351406391728488217124447128587049928049886438872222324750516908615528885923673860127349338170796043717879050932279116643661405194499785542102533905210095751550959868870370752209683965789452063120412766064849498924170130749435297609515521303373462376177004675865955178282067448914738329637775125252920750331357992211463676330418589364911637241300657799347356801864821395365767075605858657850393155565719675818465812190065802544944890712538044394727655463468569971877822530814517124389528379656002079332429264420251780282414758151651358985554200424885450059450234283897679750541987729321446455545119234479244100872589029045744775688548773956964623117407211501222337455647290684963239509465755182338994705617319012524598926796934408391712135740564737439104353221770254702848854265044549192778187372480778267712754342050918483792468842176944341910867235597060637724293242879116458004228296223766825738232302266008798594227780951291307369860925639683981131947536429752849905321059057977069491426149052720630441857179185376988318416880128713566200611779285890287074196363994024405938141784138959554279162194697025988760201237357733598107231530628194913101529471266830401112091934644566198160751197735756805857106574489751192271704724181150154923576840466190557961709910304637547191619017519521706379370059834933210205048620582137770196550691848361307799887089169191638623041765161629039092366643390360275523403947318084613838116491124361308808675953780722771361333778524455138698484107491915414462879581785670454740632520639586204038442021150159714970673964003048794326701601464661253222787433240158151277203981063730177241604811166745619263670296266158077281560621643776039040005637117507372633647559964467912567674078339335606526867851905289465814453629058090896270997011186930508108720967202945376223830957170902298856068159784998892558511981366524746943029358735491875807754558267907592834441532346983174097952961313331488535515076860273962329970632529639623465060639903056880469188975930634391399127769542456178419777081588841048839662625110571710837226307718460550755651684014892968228764747115865808299264793917434498382395898455114176637493706943421352637607697949225001835750130274552461273521315617236080841083027803101341375410692146894831590687149490761293047577198979486895110293332258327049662587138059627970882904245640929945272695751680715992280351356950380334040996772918797370832257627654085572924377389686570161055123310691179636027982819031166440267292088693332723487948166388308230255703410903637597313017056291442214494188857565689190948351511713814888166017470075432256104379937087395144379738026396684607873202653898811015668595095013217154081266861029732252386979043564919119218321617855188106721566158403229954459016583232736170249807668001536731683541894338400827514227272250563508417336587308293007935227589406077786669922522882165170145359239203036671894451277741374385038550297681874842503478322311259521604458895949718018095234935037252301906546997184488648311734952600769104329463450788957521611322534379921817802189370042344060872601145424413863006069957151374248893320544155370639784086358904034657717316117569187640131984321414717874889379636685467532538608604059542251840230848107262673881898036721902631000513506375581036211265932007098465987884718483731103621973452951378937249298511748422589232011495867992825053214963504014443111581055674747668587674664489947291583148411190136881543345930231951127367162709721976406306626434267933428477815165890503493808264654593150708537826655642579853096109373951626270451877010114790710593290037919466040586877905559939619487638156540858230439261167149777561770931332233480274452400853841284028586982619555897101256319455445885476133263148904742077937915291116842422630257607741142246897986744629384694945389141864414621234025247180284735602931172362905063531267713001387306221317873302194162759473195174399411089023967747770964617238208456921486336070953252890927457177007300747227045229509429297064438008666415781014884195866336075701475193277372084920063204024173794864303865994102707670796433988777571759615465846145166957444268142436893085596363156718483040910684827807309934476346454099913805927993003365079116490792489837334529439707048249289332796633432482639677592071752538356866939663898352265807729633362583645579018696751758450969858839079543458343071166345494744269844407025949828538510101970530800053370589416107235752770368894692130460090750594553049882453387851635085933198445424224081550331777621025549106772098729434392999640040429135413098107737146175513777548533868068066530137167467668374454497402309892567336548138975118705602762065325327795684999364881252895180632119074032104757045813735891940221010795288371803473598583762898789221783715120495261966155478669913198117277308536344007737675787694910723043240268717690035835028769685826447099720276632665083325262882531047032319238319207538380375940252617682880773223093107058124609346479951250739400372738408772929431865647140078937581453849783129993410123717693201632197029428818761138001127199842743903039922149756334844485461975037024588398533254601970893903591516662924088475966561256627106052873811877579839127228536098401231163669210701065659981623175339726895843986839311490144154286231810690291755350358497578742272818049555590113059953804230463772806596922312994532281106233844553305804688436749038300191650995769853075958720393355172297592482088975676642422521221945787748112145159118364958394230521267323053950307852265365779486371855048908274249900673423109620232636757563068103933429826469483757426586232691970927933454709323723879821656771744111010975561979776640889165877552618967979150471752226423632154295097107961817810249993046293921216922525731139571296261574989477331029364401291727549660353563778313563915877846123892830231410859948847451320936501013386294017263988332949081136804886273819959899235288228187975723679038239811746145218114963535769225001489468782953690415893781805579701550845693921860689743236537723126742756478146399964183306327503665738609066354173858118849939853339940271999584069751061067716904425436227488729677866740560598161261459508724079758668678564956002756455567170627927038389306378013071327714944854037045250686879744515070883468553128729380973232693152696044188563755243140999886278042498011142133528173720039711486667430699024713012650115534646235245470513308865725047980194931474537759928280284620644252385218208061512515089508603816874231007261169494669627092900784575799082521409785256549753703082800048060806285060467286182798817016909119135999063220239663728295258114112408070875514200689162708746516557723208858351571800240936420632756850771622408422815384938247476944603237014715305862421750449976023131703118766616178193749151221051854969075105041763984885640588116989598802257226547219590227664414426680403919390272732087024513539031964930678965734682868951862048501675433174575894580255391498693023410308039824403111041763739415038523620366114181468432504449339665995887802530101397837310791190678537590864874673550835807234093434922422458791747236242519068715123356367941520432478624281524847403657280274835169067590631201507591077297187188932468084713078991316091536762055727942140914037353145416276572856345925490205443292266191662808518371774657059652211077947637946059599578436630896551180996314067759721722446408815637612791091996042217608495561789734909090375548949669692054165721128786065100642420205114694566455037910225853242501609517408725215531963572656020292029107153787922152817994944059511147032610053797310272377795857417193328978088334924816219098394540010838755993779334796065892651187747133841195344452219163188195105386305950373909924264965280431742036718466933504233776372936608375947864849695278278795538490408383242519496850940242956938330161648453060930107215426170164413660120925873266476472649347812948917364365444693506177422556809598591038247577380790942249832542843333416251877396520453865034208188282776525555198125165362756531976431960575374539280417044584281272787657295538205918355097359443751181356716580994047067824836410462331103962120642033626327284879985398016336386807122741776271028591383841529998215386040018077335941056315830655058867869805496616154228115243836881598328724053645005806955351720812303600093388727634928716038300511242855957627007222528178599100209568715813972116036155912803086463834662354935493992630544975018005643529104851540239477225076569163472868213701120907076642690764103205944591456668449409988081640707214448988353713333107663316814469780988409663236782289396689278347623616301577583118236230379397791311021626677135718823420621890687092502739052814972777408610844287917432585258255875858614890232474010724515154584467112460073820859259680986489525112867923992737654529805805077294694107183677477651539173658967367952366551871397063096536671669873462142620277313095033304696221648445955751723162289519711629854342243067734577289253477506501794608139421839853116832676407079734545857440162460610918664570080897412805011212737162846130009274098079176183076525724479437123148878447529710621071104712178834999010673661758135193528282062089537059958111025972151143769050956285147412845580575141545333631532326162916437273356208428243130974568227835846553349613003684021887882922443280653950432096906616355217160780629114913343723642250246333991617345837834895921569937449129015868136431473196241009155283865102602215676552033856726957638176186675001359455899084275471385772548493032649876311929624212933227670551266969826338519751593053864113925849713369728887665922157065994732646472678718486468872627661359334898360457803774048315246026838953489428586428369037176342583064770014493046372142582324634615431248787934952438384578659084022329614638194610893942106188439995369782294947070393748520576172905371919001144616897075528262675209075442936886390086049114622080880901411347351233732814700408800412177557426544941394047146723315708154099606267746792956623011329036705026056204235031533373994943459566547062167668282023103515822504227368654558040328135744333962718278163268140411505396192041175112607777624680708227017814266054204326869317536336618376758986554024555060209602670277964670959024593043734166101700328843193899753068801051052958835696754130899034410706071812824449371402911607216287530832765119743927792200731894021178309909909351615701413292802318893430202298748724247441920907416639759481371468995016799539134210431866259958665317565359862137680389135445361243251554796147821540252297333212916163075985829255425933587475758673595367264032185540823805843302531556564542855375408141738368715294942243998567729852219928035710608849568793778103092159810580306515441876746910956535886164637644900761471243573716211352044200637993125364484792902082970620220684675451738681629685904903761475765975821136369833522052557293399080950282378536883919925092306124990877653484219569511872411117855192612300814907512548781040110971423550236855837971040672109247943607723369778257154333813235915541840908981988223162472371329877049059487776720323128144568515109822362398531283815534987563656937564628171060169943925345812906538369893832098431069772178713687276637211648674621408777709006982348793781133422676436402515090289682204449713201900375986279563661786960238193419284963001387275624257981630408229239423134667965384263027704961473285212180732287324702570734987139389892381611310521066966827679509297591307086721974825048991383084043254956319702098572884413257155546187909156155745886337189441363961906808515977814523915993128346716540367116934184744881129734158179063326718701189826216463724649772872362289985761821094263813248534758038093055471658503551430585930438643509844788921187691105264915269719935533640506215387901622700019407671975402900114842894462851158425390572177082158577532283675522326944016941210489355213990484345841727379829232787609316788449265527942323113013949547843396836878027946296878206707438538356957974995390452193363459568980212087354118138117052879423339790189796545688407576239473856106380165919600865974977517341042127583814975437651817987552302729517881045363204511570996633306903456741764867560866738793157685719304335308087724040939899375314250968235327068056951122629940008087484760717487140691812745921107008347706629615387606466874433339360375992818380307054696438205920549521081100843519712099502079821977559325027833535538504266814997145429877065157849674845348721511794204579369613074705846697611954919773545808606182177592127316427466337177185152805457537184735274712088222156180940380839747092667983875955030923021824797299795972003152868949679064794326189592483010441675674948845803546058529999104518082321543189611977491986989329207882275322894658370140641230202867390036460790449989853059693636169296258545879108701660677195114801917793193419984594622199480814960474762556595382712844199132267692049950821504538848102464397046272006781164899334460195152571086926854109571320999059531875701396735158776413498031528010403634401507413402678354528677062304459945478646868388120237061417814607451849373258708706635346333251017467685473050811008162493720420966399473730514001102735508273531488437848662511870820389219222343754009191508841238443431004960368724046822642362921481654725699922770717888094459703721965447447481568185575658642581182168818772497109537949732375726578429455565964772402789845317134522317291835615928814261839262117111833491243927739545001186813130791002486189626876927993040213563453103786677015317119902048487398060743252718577644511590754499971292581461753708342031970630716692060707042049620958021645366235601862094075583977398819219941855920018021586869671883082302044762664008498259198404832084783176643823097539510450073568623174782210745121258386926677841411008572405912954787062706316385597420142854343364670286259161232361651749616852552910105207801309415245302231888102563727680174894230895483806444462723462619763989385024103744595018405654451603060638437049143246302286047560339866897136005249624791619617366075833405875033961176785960894901774782367902299105981351223648380988285379186551935767931833491921246730997195598267397704683808238762010610334601939729072291085356823156311283396188518701784693538120503338079628835812326330457309710197853530975111063167431148364594196683132836185724867691644125821445448221664032758645040495157025862935350170262823715924714917751429560535118941316149166075976809316337412155739801972544754792520664718126827827060729163033503793588520456943433375137123442282499164196331908323322002480169297287468598410320780866979330986738196765205267911787727515720488518197466935487675156443641824105189229134000840821710039252396498563295501550603731949944813316831595884141621466587764526701026602674028960536809826427729862967114390527359915895161848545400984956907067562489179718749651690508047110767046287426322269851959675236812155993085817191669880859416584095963238216747180068946451781935864798006400544738450686211157169971867242934937993835260223356844577933197123581107435081004398046948354731585285854657949495041922502576290317686054036121437521413362341409789725114948541766681887069182721761946887270296193592864462410796747470845263510682192746958851548393025867791938849153212054398324510296879942323667343059684857160899444997872586759038715102127340231104046069489136223617601954988002779392773434997430832276728899929587614378005361562601973004188599144380673755641657267778462350153887452792594752024989410863956080329357704592396291541021255821759070838604774507201355383930813146097947930249798969735459231090033085635339125624527688403142396915402082639424224727171506828266651590392560520061807099265721777956584075105371579152062210740080249656227502901081274356448228450336163796461956682390409083876078069626024820442446030278642289527953175380228393635208618885580369137827364037363890328003532356626418908649481001739580746520090302646363840050418096953303569654695004279986310448745260260408680407690378486767672424895080610194392184412210139760147894759762711847647770490544745890330599010894098452821828334820060601109446398078475883482427677357514578162953984927624235320708403000054841561900652537179642307140967069344944372674890646207179999158488267116537974894897379284311783221203764932637978664434939510529983685736415211590894647415812054504542512563174321225239688480116469747393378173986530595719291735832800385293263306613561649239893360317571911726925930356095094114990389170047129960186567760476165684656910871437095633313604109854711021524474986001026283758190295867708964403240229698502021147786882989766330388106548261572630779490014144199379014097577324783740738284675091452595893637736807827482731061845486837003134942118367807012840460017918630967769026298604916515316168945533999348870486137037786822021708217209135343999061422206305473517000796869220176815761782378939224307537795703061598743632873783062027412123410422047714420693077688912517704249505412715952220617749906380791523359239555333042037400149865069287477673581210497604395694122787063535943045576728452040138649504931881965008130554183121767760785947797431246594255047915224956795658568376899514208517481753725153145754089026961140291605077995325976554496844453826064062378384009602322348424483382832329324741469296395639676076003682161369622366071438348009412694403398600804590672383740359705798925232764277031251546390336123279426223502854357184113636877381542380990351689149727330239730504397627593510311844731698316133910671122521625726288835435041751159486149109057769481926238923580089347146292658169031035638839290366471868242132528472253496640333134711277100819916082653840263469493419513394625236153545998445333101621831283225989487081040677082724797699010301892883126949405061339391180904706681745147420670047709033843412046551460395473709800124366031183384430546429394826239807011661619189272863626923170856470060541091090454116154892392796879092881469779217047404720555766446275871975933050636510020304289966413311165970162205656954513479387160896288357529276740709392749610934437236945086060722278453318371404260070100924204430723541990865508518224687904197379022800304808839397150034345032614333741416637423605006025926008492659020229918722039089522777067819474180509635406547324949189596436830787668365657532984871840108371295479595073858388206712666017071644446006909424856213750641708160443925438171272372017688558761246384525556286073209962299001213696962268025545077859093565162471233726718400586677166370237601504232496818555522103776190587408845514290443655450877292942350390004232128548744573105576361178820124728681327089261746100325377776392029154597981864768791859896589149280817124936188631782523277267582171775040629056654068220277106292839023487355542498832827603872019053992875369515715496382255996746416911785995049787959546200990802832192029390208946341004885360773441136321309944855797920717395400533094061646594513981236211028338579281908834571634687781489120601193428633265955318358226182727274650631076901893589243865256299544414445044129347960466582572078640113960618383676852235957344168502553873356908317635063245553967283207615527226585617359678621211856198512445947531192277014124562119968114867161551914259578800589462582153646859597343448510543650862573775433767723574688546212363252748664099115528529691431912960442793347191355556563453646477950350735274029901157841710576955750712439721438187974155019754871457581106459924970344936722049664896616867294442619238054290681415585725432345825632358138700550692836220565033281567497498991491611844354424664152305435354895881847006018649685942049365388581577172173737301680764911905520259139324670159771001566338707721825745054158402564396970454186604380949586326692995977966388110787919558540744282196501479973098072086712900782813234934752915347694852065647893039389412064786296089015530698713627167454590431203720312504250240052651355335878843289040368083605283655458513295591265577312958823758125019898846472882530287242229152307547228174765140702629240101849670581734196812696309191127650758441899675916982456284082361030706944408940274263071918936486853806629590521197551410742495304250143990460604623822344542909635435802003499828805646042108014389077297082085333744410997989413262608131630201588753442907769988646245551976732522471859584488030189724182142626088244960077770587650633217930370646852523972205738276496862887625634403178640526991811754027561188124500025123732721373643866229331022443391277998132883287752490037201786300586803394917937177064424131301991733847357366963672020140454867385159512203728605887312204990864260520565891852110308237479221736929820620069838464836810231452097053153390908438705804818386622495400388007877043937496303411611088091630337832062103975412558702324132134140688167185140903786727172663238117022103472648581245803702189445987384613179732075899424375064126881797162169369326024702543141799731793279423958976155812762169225434164988239388713362593680625626061067052595119124743407676122415163840734904475956588230205934305699935514029178367765041073207573196535935909105596427540346127004021201468019126703383029916309991273177868399028732111016411423197223453789361468424989794773249691288681865208778398304547723104892080038176349592800943668117781385180510206360086597732580559679235225434922765525823725594558217443281857858569202715530392388773318317014197804042089027078551754401190337400194190253324929667644258066289604794804067493253153131117480200057638708011850855069303927115253672689020011634463259706407429039894930222598209814143441394788394136443745532805242721476162396016257035101742433869526490940675720051417920083836377973116778499984246212748499226381721325099240358659791535594396189174260990437894682125289854931969633919298456741564924975945604653794227535418619670572790332318545809473465569827277477041371754611818286323880756245028127155612476183312419071929648432665527304861930248837605512775824281662667042899569347364664103655376919498102523086756051816023497352737333854928102495459981656343569414912498169653313202131720647486996112854577360240234352326802237914085798322204568371677577574907448266626694326225805278714975110186860474335881124126384208059851699019804667906562849138348052294441477259596135666005570425477751529875342784477826667456736331197708401812620147551778967496516237577047439268431937128548604274662046975099448498746035683089203342814892947387359297299124439083855113124398085458978621657220450610268270454809919309672469686500093002320310152709147956300209913951655368998466703227658816056345601420101525728831690232731341091806323555594988392659780718167941614750520119455104283752642348741074692153160918283420133910188121453557210106789742518993780284738842205160612339994195199019160751884961041690546448894771731467492522833079288515085775668672554098772463951807001598305462557957270775364320975432384677836899494594849609719378622153732450418170142137994758125468713183340864867742074392544230471849461831573680337090067165498168392250984505474817846017093324142189327103868596204909101579988238917845015138677862885096949356320806972109922752366901088269637719602455429045439072272180082724925996046327874991664050696124301711068729763411067700357139521391746063592861400083140341309558435129120751175054039369477723729439825243497083918608376415043563804751100163643577514097107969522419649595973316105466479785157661177252508641784702691039708089713037115905171828288780881120801348205669721982420420828072236720549803413743142643031775195390787281433644778603899766201018163628059783406882562501919462357172998556941137978933582643300562719296133125486128596196239066619612670350448176880710499298343844046667075321596117562862579352213852563308907651216868622288638367745497051469463333503357784738179321613620137803904789691948361087455648699318917600905291301479574242254800381193799716768947933398608435129469260319680490015372705967799591690445163980314267837699144958352106564384795489054015185454872491504006929545332531561932845301599532769051171400335797976254227100298323484723418709759161610934684395556279509581460975530190195367985870922793437328910271628068796299907508611907971256925259047447277883138732287840814269743370281954877319278492607333417883894864864772041045640117121550941835494820621835966621831519865324041227359723910981925062793518626836924792199319357439197432586460022555345837820223784577698077339771751985445049474827932637447202937720583104302805512788372137915723199840553067867982932963854601983664255635681401731530277078894956667466955363026201448935359506836421690700868786094243453707754675538197228810450732281763950534240058233210661006623088302785798511523464988160522971634351591932903716927614330283062529765974929695452646083422296111272515575534920752041490129964384199530769755452810115120351176787183107816602144572676071130746256644545575244191010612752161711114867852024625258739404073332669663794559448056132394543636347542781699966227578523985397553676693401593659093610888627868817641854377590950801508746532495494961384235602292377571620444873706851363328734487349506922845605128104744382469052853675190458218680783348649402291118023059965567065490549361275488816609881932629919717090160377926762412792146717129354853601877404654856568636088250909073344620560441137750525938795371445623268233927805242128594590938051786549582906655926093737306959467634031834568851895878213204180619235680396785378641581412290273254678194215596948547965743996063466845118262433141596809912895046537702136257500177076075066266384689833335382320235768997254193595743752714874638359017170742166846605500911207518220939628305788082394937035370625394187479401879719048267352958158729284017377101955038677014846858497467339247726090970693268400284370113105086709212734384476933599065597298664125863162439231404613836423001628849472894668489179909418360148861935088348321430627421258166529802090691239114209761127276282281918799216929843115917095341970278312155172245416306569723237152929276627329565184534199117641988919846240176867787983064113424382482572752683457256945994942224434979355236309570570691034619503832705804711141142082667504651049827009197341368801882637870325651882018158097858099328578122911788151458689531886952653492789567262193481759863707032068835714992917399355166720132539697432027696832734863029008202926081176173150743789877758438888166798979601238915836318194600080427021909734127469596537559904040491832736468699373986944175401199321092117204239983349736915833169679686460136560682421856849468958156398267225443928710684037044872198934613805156753153447437901136447827773662350979021320372568064069345967809652854978844219398288916658948387962171720527088597623833522818467291574291389089440956353754085993800139604686133998180058166280583526796516477824394682814945213078506152179247601570939522665203376256744499360484756060899437261812236486127676945956956987976007083458838239950038667914366706115698202792781451942148639837395517701904661903079015676500256284037175642374352491696613464095287490779549195185868681808276814855074796229581262789779363848956457130303991477630923998048704287305596947897014566435009798026447312553636893714444786479428284204691533584639844438196897989227182676635058656395461728314621627297052961984527873034791818665032832731518324556438657599951660697524245414978332077725553490149646610548466274175229757789890539877381865574818182609237669188828622055904320483451630958089657452603815903271497048624264166357918903329011795009934828397367541312963156151581808844728856011995905352064582306855204954053012221002328399141078091370257858333499442964354051501974981814919224394319418548103849905999234040762019040252731336535414631742316670321105294986584279317500905533665830322128124017659432534510916691128518577316010382956525632849220662296982320059538491470837203087683057074147688892202941717889828560912438372858481010082240769363284030583135694491170682875553451418881182031121224107854230834682856692511581578824316206596910362655190999869737462752645672846026144853222179012061712483765267604133677454730286379113428924261275471234378139164016315092571651961196533530714281714031640243361841633632418804640986090488707545483302425913588753837792332455740954821754707102377922323826308337959619239381505052212651973225380806695297394778919635328619471534217874773969889479694149285437747122179697160016152851893680736001498675799385071167724757656328402681653787370138309874775284645195464729459811709361196348364431338322697396071630833524794303595951818197635718085108923389012526647585395643078147602881524428049784118438419107240535328649659018116862079783841478152630236923058844987725368997487818885648128075204252892233789813547793473458664100084656399044531735711313495858240147272271139372870730499316370245311183468029549467231984161685694060599869648822322767332211520830812632053363518842984352033856599489770559689818618683237439675999730693778219821192492703704434258865387422956665012472183134747044570032631306516881697313263863756848567633581837823242458063315381888317615387271541476157019792636596882993750668118617864473154345051298871751714563049219818342499587100484078343140994383801568455691586832992606861542749885540419015961671683758692590252831512721500568365341963257721175813834022511162717750800119452190895599867043813487562313609166768098764361484481088528186465672138057963512384192103979163077773884620681366897214340333063310724726914715347903718235305953773403688024696118558209182551960989002538966414719497656994086723409799399335058781588382783264270734579290871650499224122359990497674411623925049696896930781884834088958763346139332230711773718369794889053321304194347485826815081449222491589369554214071541407260508533947982056207341557305226887161326792830954715427250848333421077593583185687854218219370063049929145502322226985764983468253694091692680181695509933287253681545275093322785887540497819527931127244365619530146095150907882263350605741545482724219990170109820566872126690254164670370611977064792136123029246863084772463330592115792888729037373689023096577265852441894443446888693331252848496737554944586665669452196010232383193322964903348857824610284343628041724107016163963001801141931720839651171998155007788826078723262322512678139789247437460499953840840414501141678791414024464308787333198636988685946936254854886845119449666316817549122074893924259411660217898247318100536189922077386514945487704625392912729276821827282419889914072269913513546823136067532122075192736023384088034586484370098271247860554960662868809696082461673658208260654594169961576953993503380212000302563264272881556540459004335636880542891894459357485715137235799121992997473393908877045548764617144352605935929319649441086076585017774600728095333448204277031571984164777283809425300778736346961810321134833457674584878836356193791055618959737151276601335024201522524414033616435049258800848188605799788899786571520017188685556155915714976000017874169373534238066448248136581269651658299304135556068040472145642693185439103254374328443609761346947947789288398476509447516244899364157522732679329851357567315775240587871566297188269018650814048710467479468555807825747078369893858664510243702298625809950720158887440906074713215736650507900704049858742857756651782800463688851110557599020954959250668280758387470615996179819738460271235316404883745466920024336428401494519514397928973320459846950807112368732620097820787338396671461609056259274234782857688830439162228046752816979149194646430996182886002231464644158687092224981906725183570766837236171491680240106137106543145139859926111458453084065899519007160481379345396547753893795139603593779039963287752636485294077982172231999179503562793808138754172823359751825148791938144469892983668671570295795333648218396737837096160658407735401861866951516413887530539475835065519496435475399960465885497628069102897289039064405858509002463129561580265837334922145489363617514130986299719498158437069481723449748160407035143328211911703333259451506722076649068447775891035974043273651445131434326369360544333229641860546464912474908417861807918121964938013254984427016864947138165445387696188815010180065728156917919681374648088095155670751762574394265088473677820790237212607417684132219700883158706587027444412469972216674940131406525561710487563402485332414510065480822347804898022416041628742066743175180684225900074720180571068586541075022296195742329423423411627367687053712618955119951207045007770869318108570165443761685602032865186530061814784869692901542544851564498708933389312744165739316837819702344693873760772301051225796458230747812217494231063778043747645127113672439179618842609597649302206270335845221392812622611729673628447443082396187113161035009611176115711321845079198376107244753305216682783770115878136046973802039593339203266308688430903356109942835156283560818582633284186170814802353269454366259213451917803499084965540622458562676251275578981598957025689565020952229239406731144029026135758858962379629401399819329818290788061585613437996036518615606785263331039624262145841123124923671188621527641916494823990431479675857648713722810802899168194791165060085854370393621962585066299283953166826329614531584497881391054068313781927939584058545962814885287250942584102387427994667579859391489651155342754196174615753719665800101474595446664681570550114226211131793784442942019739095327191103762598252559157131380652221974320260434225149197925692282580840189700033786967233726299002879675746022216515317285725901575699816139466964297810767941719100371104958180754009845777752782066660481083715575079127417001070679671639286061171047708931340080264525192575203774777790358969011534787287423726368270883107832985628547388013161822302897659776557620470827647942380106115679664337737209090167778120895115562263433382383025612687268058373069109045272453138138701579786033273391479671179725594614239324123330422717360608141128731326372983133153224337408617156790938408035202531040912839345137309088564022354713546496944731019094573285959876724067206922445820819798424067620970630646050860517543813436168435585479652627605826440258270924161683376202068316106698770343758609040595858703421912153028490061742624515730575789641200765081070636086684846490661853748090039544118887060187935500395439560032729061728147873285943361891964811379699667610655887345300029111068142282192762970537203870163175802404642428722519335071934110324533887793336502657197614252895298681319328868340901425884537788459019302916918673541390624993458014227774539049485099892688104749574988913757202715707175210249826780512989384599778863922294321396540711946243940171095086961514520054896643918393938264921982200576681377773256501629486061575712901232800694601987303568477195924175944356809750118244546110346908749328047248552657747745311996913602838277087477326170422449372416273133268380913171464553966302818079225945944749239847225602436836630751981755654403872987397922887400799418663472375390513366957767911843222731898267801490319067832428018859002193701778822922233219268267745746674297170453709561378972278924442807856318027217646578903527692514570104572770999425528271803356214568284274328578746510723813508228186339261716376548970673256796642364360398521323776140812193137713031776116030210670466322328527521887509267720182471147350255467238051705804388511777035952395543522533851417604706450336563863360161934852516615764049680035445629634713054806673160401825070319959283626088795374725073963144542498916530839091699967281788326262376986954037052902530861506716753636017811148282069792923368897249722574784984607973864108056836909017188378189718430908456155517511296970013265435313916301854992194729631510969366405222967982078031914782774636736106399920038775351074093019506611499579631913822686910330646023239255285585906523280682843986282966598075403236232739860743462782465530505426682745500047128941615715340348256870610463661785295323303544240139733833457308846443721119771032974139979223792489632737819200493425893002346115177449901079037149690992725114378436285073033573556784979235868104209678237823082807971591607421574999782710268886816616940027640001800014925375823997416203082067435656033647305991057724423216399665575286780863457886636712359074791479772911288347696938830372142473771355820414310871827515172483987943090411141483631359029673342751525539206435985367497384756466605165035289763032162247452018487123611740976892602541576497041447301469885081966594012771462497097125005206040001631806264724746576294184053264551860555881115358859889276215624114778943945522332197646255888470990957271431512302205025949264301415738466458659760401217869400768613188486778440994926960506496317274808628146531158420414568234772126091418543730536430176322773159095806947795942647551992395241454294985905419740168069704694099495921874896791475241206658374728581508150245996377465112111500500805661649995405432879059887591257814315776454326841813437557930495690247068836498471396264873732667713313900853626968140640879941274706863813814724933029464336200716603302369729025670289890170726056093218403314498708560502771172054230564785360795193916993798064533568089781180182617949218882825884364687915323717528897218321394341414762589901444983177481331733565755449057214602061440553626701403872645567316998748382181008487181738359891110625658371996070648450711391496092962262015615860411901741540454866590656684697748056690396882986217958932171756960173741858206402574587395578196632343504857421018478469770246671310876138123260014762884743783907076893412844213221791045037976956367264919202225389607905631744788370581134969682246428574736768171095333667256310091671562765530217112981293489492030187596829417266880068075364436034266024358362008673468260475864078197555612870078187292395103889668673322751345757959487390883115863775146066776337380292003346689949289904998517593657346803805798249647060463021723131264002701821719071883168418238347738105952651913878245596318592193053102947389193693409932159075708264619608210858761857867565980376501157931803322413410633846703085175551126696475395976835070382558073562633188533167921115137914633959330456744897788105712541461838788705975866207475436810464844579210661783662181970085135299454915353626638092432944381656497687890529439309500230277774211164647718762714422143520818426027149454832244836802010833187331873230408453175067812719403427419395784309988448106637789424613604349602117191932407662861246129613271944763747127524526166571389378842967934894274708626860065158304566849962857048738342070894868463949225307485123990121310402903430453115977845873389434375707258933096285418435559624166974198953490803818468966048110734775542235944918904806951828380511230686457504091288042671439431128294780178172368395652620655437936091435227709443519736268341819885384250058960492476032833040996778627430836094156808356588244606624270310553006879637270830736572006797813539864130681136996070061238755248784330480855322274463643554180939911643997649219183869668184322610925338784742234627116997649258828100377299553913329154800233836148007528090055088889810547861895924733516321030068544319202339227215878219753569886529539183516059604115839861251205779703227037895119395805406781750997786952951647084429463928553880288083548470209292612049709814372419570815529252662739337430507121666719081218049757019627234138891261710957071943066365683866576359913525211659601233647167815659423077420132160808697395682894557845573571399425437743749673163765092622604005614029673088969871795035048385554263253004122268708425856732913925594971882455325121479190755895798623765127079820259529467558251169617272724230703869824002949688823906590579008461987918829962179436205968032796688583894061050915601172211494939484595440716583625594289040606474278724819509736634100321949648032946352193079197949133057896350892356361461664162972748371686839359728718312274409142302921135850910807129513009707902043856194323293337950298984827040789921589061154515578782990181233112663434135312625421837797902139270646282767662218251531426600758440903846401456092616916385787902940069513918554395577862544837895409809851648033977510192858900281498396464785459403824314334627445737917927084515014084984787982274944353927983803941622858835164139737794131216090108077253817426277082988544897271900995139812385112300439442887897592976091499673494511337740487524672296725072835182507735589695562593901242022068674947288478365308520424196428627073168955373527044624430898664157381918832327091994474993458813411028738856724593298235571939530116773475051417206513509514724526162553666570429607751418962084328974010102396154601099322397054670998710053490083299501697429997240774667081376496628456041705387811654228317596236491854610332742822756301053027246758443270142559614146918679652033599977225434189007450972169534525146219978159362796135248012776718064841045890456782705228237328908520535760397413444201856880224784811740568356221357256326970909939736851453539583876569101609753682042538143299270746738557978191890841123359606803872323586151060980042399426214581448201399162010018330987108956044792093792548640912740908732764301526925383515729141185798705196555205665246359860336059531647383406409878870412057256198587496472303100971603540652501840004618715974473549408795172324126771988517447555960041502810036104083973202307395618048418335365737199636628834875905527129312404209877542585480027526980174823041384981760338436953889686260377805629795743551239665755857153814652348639168573998936262139780037307318968744697346871471107665854476380698779814501520888799200729982939546055931781210278755224428460961228315119190934305603253250691584444819016650696802129764064649810129373548697085441317560155102741295849250916658935679475244399829220556196799538847388593978959996827933734094750398207149215533981039758795269718304838262158601904036885636061346908324736143725509832996518862431243710602472704835851249439335237077010078298284408723539028163052894771196501657027801169653647154646550235721870008627624108777400921033693348620601654116335488441771779016645085120030645994568529950826191613790549969699922465869162862942725857481839980698042065457056489434300856079435413389247084704516940012540677366716088388004876523963198509317170622777572901906285459010891670076410450293676797274937763252832673391251931185829999146518305196722085376149785405892369898680716543880159831257001713641181116950742848335463481372080052189355022886567577672166290938432389951930620584608981633248376785800790281444066593303042579100162031653294794300510181797862782802497683400613698407029089457470763361870163591110218552018383720250143070703765114230022497864912965479739994210586683092420040471121711455068729202907787261207031225875565694972691350319423786683848996663684604940449351725530153538070393940598140358827656113986395128904704768021950269283256113114954258200909251406384082025869153662939458512313209997852099139875701645268979492981561287705917068725396294320943061019044977099183159849323434148422979199654876479837602835346355830612518951864273375543736906503536050474866713152282762160264538552495475180007991310606997294485558389228543187036885146168580576370103793300169895134298288240793805995468542820556464719943946928290382791106984156912954857316122079459701200932613774311871175572397640898118786898612441310826820287137494204862669239528861853139714226579258961864233211560540637855642658978234748512595141989922474931787105960042683058652585030084702116841800573454669211239102791784453288825498491830342634056375098575420618037568624513681082013379145613237382914687957537878550195429606110743958478575637947797057609901349954129762356622915776188168073411550017518366720373112526818710231693731210141413959003922819438587933322590940183564190332237598013763464992351667469279358526866158505320908841090261352462416908138742041977626769192361135950291976230476079743378839997398528698894240219067487915231680928009787778472487703740190529688171351787120706328506483016465992121627168303502150499107534929252766274556797911934439141176214121459312181518701867429211388375037720311216248962771297967150799615923392927033218153124172765404133395002977266872665243092121095179077551670142378228390955219725609253923249129522725828856082541203169469743092717487180895726111182475363278286475710967607432322597501622755900927365723180871709936383595387594383756779845364034328312205994099233862892968362816737786269847555913422913825385865461577178340258942896186826106456662715696613717711015605344614868491798572094172154197115010003350768750414844443841983574044185517645857437824213713654630788560545961493360893031876791517930099993369545119671523753297365838585998877409424509322651449862465545205608747780779241353100236425845532914876770565420872787991292504878681376058724433893306849936709285408355843343609693731314634081894047038299329340821967071317771856931513706284965631642073252614713381049402122131675997959115676137008088074657724906735424010138537228255271311375427299706869771188488257357950539208591025842579304385034625422387022758115121281750258719157838167733727912135555313215425489389590142011086827560256192723047244943474264820689989727212334789681711523589334731748870179915710894400704127358596542081209905785278522956412611405892902737901381282790792513729823351195969608806892340069808528600830388182156153288695266674819928968699999885965755607498630078210238966251286584391030873633000119790477059769413896721606490000639965662013450394836049646937106990592376653488187852953751797602013435770965858161926836826571065855307419387412837735436686798024598286045813020168162139453253420547677433579989738134191770284803091075103993470286107312624536431239951412374185502422446768474172399067307416853430878278000089653564354640730572911933698186818784940091508990295779538553091920621667528990206193755218177519670024936120200273359805481274312296257051160263698910793466244731420666149529528848574364282740220057370026319463622821567011390473565182297059364134645317786970923679778961837745166813254971307627595790863286295610642819383051139287941854986092943979389685151371627577192854133518403628491421829290949516099029866085471434835089372208417485643899895883113417598441993377901390670739444131886329246959941262168336137109759039508789908724648044539501381747276614657007900965757505999808343062790002093612329203473698481192090674040506975597099553502526480532921578189573562453432259697159847469585352013777412915431475710230919278658647713282996889204564338547382271731519161065721060099100148116401692335596637708222183172045803765778330767793603929896419676892748184012585548084825136428597651500949130988670108465968121802165396248934370868272270120248228745500525063716911615601971654487469012880226772967613911103854507580109274674221789827506097497037235232077153677278286858975365643790112810535136053669009490605208964007853559459947104764954063747981175323613279058961626800552369268830221402164802112140249859475108719206966881818720972566780760497628999827834228305570661398766299016560088304787021647763949546699560689026741064369560841250918165596913001250364230328638816302508198155690907483495735162664661140256904506358919683234966654243760707157216923462012203895518683142257915623005483469922123205463241413424007072965753142802488648053649402378427534337274405826648631777997433065164384820194077722362782844828023878648502694896555706020191007275404389554497077091804799294333650082289859861311725652280725065304493950710412666644125004446887666696787623059786759139893893563704353940169548990335889725726359236840662454710931355278157344143075225623972374306103769025228673659279103615515667816815196130946593834208372427573167709528153717065646874988124294875416543162832291746253621666941520818753960979272332150005316769309085394625865343843357205264492619733763138490737673491779977067830479751770975891326534394140826833425054697286686823472990239826950140828039025784543604274291035654986682678996006365979932110209674151999798481173982243508031154683516250292102680543066113935831622169922386416047326104688800220784094689127385970659166934159159549688516839040769374389349662539818977953646766126157828480254130090245538310598481808554962398639554761087747325878820103799885715742547702407366395145579076727988496029709142781353541846858799166621937400662691820321348191129493237644570290600405113492606813004526410974809699065703874834363686439311989449723349783584985431312324204999062581292984695024490792011705921516864911079818191627065973550584361727682990201081082508626464612423550789476757780777033746642040825160273912657712825073768176739732508572931801440222315877013369419456032293972104230943845467347483681704629855222878373106085236159308530112218479406203513385478722856768613133374271230799110340392686427617696087925090884964724145655952242953104404828994271999451026535819721719907114301636980442684583496132442299169334079059851510338883718718810507689767632811090487282883602419908584628109986361491857128334805915275390859997276951028523765712910707244541176944490206291137543280576112864956167278572335273775770183226450719980243462702678315861699908033849707183983600906442951125856142945808173616940123377700572658414546127760521592995744752261593265079646685651440676380265174956684681475487155850687351550822395541307965301653020657629358999940619551497797262294673922113556569884920391558799182559873971252757914915715021414793669865071068138156724960265244811226244745963257357906574950219673025250132037463034525412659981186033723310519180554330010861512035614654221765771920609062941446207513691448536298138916860118857779091515224263803688399325679394534480707068651022669541877727069431975871341915886104728737682518574839011471200360500549940396178280946758689714833462561009400743457895761557327530393746654059590213946966127260798938552742594549716308955408287012058522739438230555675121404806115647003013292793505390019498351007196709780281308242144467412837565648522559045404234279360096235704403441364961524938723330336380748085886808210971678498242633899278619509280606610248193366754608884524167613329980333996701241712837669529787937594824961862378955905807480746565358784203551924552311981669550744537969340490109014973854906903881941224232634771431000128375113009702833880390901517144131044994861046450405596752980043150816579279141358296204692463089385118693763035457820363601091827201191465377792135279826531290020884137757585844335448833037084311331865082516468092593984184440836144820033757194418523828220019827964269818074488750791919860568443570937031239097949813199849913688543002654240523513217644907058905414408276059355386892182018806827706694184354272467156264106105288812874089723925708402207873680450307867335139599472157946958369051738572808177211818876711133440127095884045231704496572574811304595398075388297378672006243434747339519067756897104342415211909062917334189553570744412683282297402517765574825491124202413071677529912511373073971067913945585658488614761342326276925304865533147680200758681299638851719933536871948921622232685068896082331710461154787567808439748811884707152598403076310720590977285641630630404094521448887913127066875807020966547590498957246254708112498768491588524346568235263196351814075735494522577647898511084969007051200052039883592030745426202995039982018781076965192059437723410471392089424193451610110279796706404158529385619093754854447546346264137036953758748405596003454202599460304235036390580475165661335357570158425849115557090117159605049050856630956086318135073599396692861499858227754406203747996038135426956364201994873383410369065148201946943312192816620225751816930647441653047628960860009067243441984998690518631667040031001991528899800426165565623125499379623243227829078606854267519516022886006426028379625100429005613289387052434160198302856669164876982939139601520389892463750221166895102913897063134930245089307859878605997870401288476716525953548466060509618173458287255856070657274961172503167977082855892819537926251293224809866891483428856334442668235406174338983039849222068430756207946204419342495976701644292088786789179912735318717266373013736455889188737223978820280268673335575076828575265812195628837606245018524257296333851125584790346347806478972800883623049612530094189325812025977300754283128783235714118964672027863980144437055842254100256007048258410680086666925937579327403229304066210470272850924411141293303956768895456842043952838978883067646301200954932999854885245291492267739868853332055384786326578078121026359399712242472571409089336941596207340049194146582274941973809002453303792364470585507339470857223190750487375904259853681741173771285935832370975643994952374282874643304589377365955834269829071470097590762634361970841294152896487160432991496222895143760717189608418809266796180202815004318391091109172761396833743983617057488472986330382787599003517038563945143885850410473488324129198431239727688439668793284523337386193845902887156240057258435129801271539238478619135753866818546938720862573893822147588098830570442430367565113546121163491148351381538417628911131680273652807664849082930079384917285069558903221083063322515302659348566328102058575197088517113746062140022097380212124939931422534067676899960100160996332659933429037134982275625503600844641222976477466633847709278086044957777217892353240235671233412411312847639554249061670350055815448423169375652203106668262085351282708145793521674211127604094043985860860021817425121185953826235487261925232742847782355387207608860294048746025465448775758785943669342205577372261511407984974260753988761781030178903149155421823377634195835098850899089417671424200734282051542627192119663148528737796352662825344565565481186437272704298007171465357728009775758730163774915058900504292920585677279647736177058994160390765531919294872523637497738569260590301332646819662159467539854508976424088926534127720007731581840257392833566348910176017236407357363303872533202577232946810268078630309773343645649398029371328771470209893617436776059275927804146918608018455895764625959673889659594631924657707152754343927453163603981642331003925392831842009004124889209807904802251383413657228642026902275810695221089841032607690920448722063379868628480526768810843595397362582433316419839883278429914419718001692007129417795682322252666042790857628588167065571400047239826785778236411395342425201301961385577288050413639560585666817339714412306425745830546037163440822695143920038274391148009631340866460930227151349257795471467109456706649340867403570631818568767787842319046862710951233459584379012908318106158680458301455544014418071980134038078281497002325962980726844706344893604386651569479442146205421872262439629854188504208744532825680272929813041057540973985147979543793784299483698528283423038293323631291231153172309537994100154440089534593304918287259289392976153180201166546099713991951461612082166515329416963235799373300835709343121401863608516047268089693996519647315885043740935469470548178209992273100729491358204482078210986733526705740752718291891920950068346119555965868476014849973940159426227392314285338211639585547033740264079742832087553318762464688515958634426140255505500471094841313516905679210073565096894306061530229614938252606447464236123067773625798166701677268160930692261369601596734760519861272211712518939976942984280135516230519188726906339633082294887161011478926017369036386663788518201689516091681693803215037504038589439436459508458333000153844789436367433062793132906881537155631875444016543028098372085931703512176426559407017373533357326550327524046353592468190374219165204712441161394692930950942094837385038918809951567721968658333655828918880760948585898007335308804524205847510014749418998267789726966980826126533683949838896198046973635497830070269292834531240111930020425225751943006390657104431887475416781936809034288760908550018676096243347956040362278949832969527053847935239515510086404975773615617705868252598443300559802255221686189158391841447821960973715192930184218616179863792337637257111650570275767538028085787619105696792051510937851930327752963672753899739741052239966013542727131390558025559820432626646855591790976230418102640054665747534972623888375050056628139308998010198893153096160536158541863330524342043669999390497002053591957907256776455012143289103981046069442513754108286190396704850804041227934568979435314531647797042480547333403578549906822773570775561035604965702550395180405409830040988159257796680238665880511659170661683571861780766546497590796590407656681018312818659379709197908106502096558493089864698001711142814850475379250491561175322740560508673304039377894544424381122725853369473932585553258543264213679536484748339163644723293411796140139042394910555132145296283514510109842450221062036047075936949268635842112499107769991693424839046899125011823894540711616101926538616633125137445414216160944876479999797301894227430155269353895228011859906118024624514954215204252365144868737979503943989091648384795696477706989488807524141221190208696618470488175000539783383134037351568133848086258731439308180891314091049815110500557394671818828734247543001344063658908391722147982056193946338377898202332218746453669602487292673837961480195990977243789171013200456760965518846223054833123573863434274134172822818852055228217317374303982117923736316304832240924299457823475086457119424871443667342618308750512908829208990528238268810965957977873553288293636022799724518125011041235773339933812006541517553623426833506174630347831202429773553208455184089311164555058445858742278335226679994886123304838786391092388325065244005382481285524636560481086658940880516117663974135272217407429652175717300898779132802808636918026180847795320752199245888367521744369894181734939589588275902153106244500607373681306081693313696344916247476899114892178104509977326267210010047227736061691842430147975225780127996050996849749002489882580321546569756977590232842010424835582898034256045151078970463067652904852639841641459626100735474488300248181738795636198904290178803429646641953793319717951875093860807079007026194708234910853112668593705388989817932606084629501370152580655319330495342210547724776562152237120300820181795957425580516319313065114750992084560455282207065598231806465156360533222027859277538997829786101947844202208604404930496749440663444260545822088699867650208547540659339138192274082305101206293111331563321948684939324792296408406332700007613086912481276316687360585913891087038599342556811681265580534810133785963204521024299274990667475176279957155685461865016935585875830997651929380925477135721030398219561626552447684720381407167184356172547922024696548183011241970741708640304830526067625473808716352877485184407765463154682016241359049708402771340886355927076277055155134302113550819137379653808983474067756242000585488255187166135884961209775793153250403632176078220362924558968863551750008530154096411981917696317389047851052333105281978636643333489059070526050302419890227536925738113706898575010046550960527346324066451099810001024326444309116099940896368543370009870994079737555351392451005097671777193751332858684356505550330400196768949599738070498381260511823961550743523452566084705614892152294185445633123457948632433124230947999677758826789182710697977624001629425030934909440126410949062739434325063716930775747196833700149371882747753665480315483406695634173034388155762809908271287578914134970089214669808121471207640290437530195290857652354424166664880127889200223239232791951624633822325678995352674482732345095082583891823950400666370022224321253232561675693141117776879711978495670514890397540072587932568861451567757281999015085757780159341996135983742812309141353365468367666813711160940270046796361682276821587057023386189429163261748746457891209659762935732757275309042480876359951050537822772029143462429923026673423020118636502739213112930514698913303395998848794622490039096576746454739731216724402270746178457994326182176463848748954008083790683482180516896804864938976555632877230229323317091437227547837129438721115922208724626413352029043796388271713550585004383972759045274325456405228836891484511052303955883431118210026303083237152864612783766360125825002834084778162306988330156976830768388465296443189406427571848734456252917093181752144073091662637325234097655785410636468620624577842788537276003357208471675139179325118594920649924610325670728776905985432618858350918831795431875165543484031815441308816266033046410202453863655993648849853592892856810892953164923900125718750151934520073634849374914381249514838720567706662863364284715060576816716362662945379185484840340753108110375175189560551401573424746983522281175278293566101110518493205462186977687077952483502107612892085281927717756050603447117900376142964214753663516991747458176983797206242986858066534594667826244531986795799051514620431421180653814436059538188747045245149779670002294506176142931997176359153347909810842605756190354519266766192001657893303666277986176469790345245960452620495731264130168638948008767512854006043462481859097303920557077921347532930931961052024644476188462481590649274171425437161658149345026573909209083592462398717220843725052856847632566383691903014620376614533374527209640989116127532910512388761034496454324330577942395700355785781911258019429933217918484934305701502245421030976178625677292828648785290538782697737772869954264925590749988292208034626679314669469150245919536252912385255413003290556933333248327987675247620828669410554288554676281272121435528861629946176412286877155813930130008845702290636131771901501192419275841267883861770318365095720897521575154788655119790927782792927120393566262022051681598068978875303633210257627790283698146494018491500176408770909006296562697368202761074856643727218864664558849961384022219004561925960385992566145468396275685030189947320452188772022795644548401734893259567670967592999381554901281375616726194249790031997779270091888859707812610066940747869817750105984651602640312925445827638530163783845869271828751009752531485453252882563932319967816919760832652503338989449979250829530213680797665578622044080666305846510914215662440117511496699081046380323025664927158874830387127218678708474071380496446777956753440255600460237385161747914584631420822601440573815578911694546285009836870826584248735122571041928633949359137979854363158110077063556168069085574429502322411309965721555685349063200002365284267503111003821746002103131845641947883333529147849810093176806873701263459226385619352584586217274166102020161258781422678502514961328387976374232561489745438274245390885892287338244914721848201261713282853082319975855909102181494847524639256097802764324786384065090655835722131127049533867606703342168119313798805611963900457232745336746673132452269975543435457319773633991344856855582477879572278239482146278468869063055503681174761665963095622107041507740214213048498549121826951499108119486486843725972871533707840621883909845563120588245779972163001418318108090464477992949775645633555685774457194860090177200216318206607130077765048362953441796605170392449153978185079096376055670855566816061632471670007337375915936690721786921477906992324911560657389489153892170500502399122835331668107643032849703564161349094116607290821244399822152380353304744932028294927364824157765743234102179422315369040559463996317240049676013727781241172009870674111360839944464044220083960594393648441279254312331631414940836848354916037481546124509535234004320757821511974921299675369802055646187574256207093704096857891850082669842547308655463780687938059341849206903616124977693722907638346988392836186200098364811934112519630137990980524596913288272831257852180943858173193581410727217859023132913086467103226435809137221422406138790303385617004413939607166511555442157785226029333852535873440599622654719782381707514000536675013777340822300366150232709387018255533289100532342023064514248147387814833984528738395333368769130302021694446788399713479665294534473747269318686493608262970474082971258647715898849147240811620068363745673283339888470520455175982166327763356205129465288867567616741301387783383560406927780559633556090890077901377805524491893775685622481370245822308544933953235402891775317138065628095252203090708433321734201303051218175054462168000080798604045905596199053501372167630582899960700061478575995811963250814180980139470861303505867946679905082876913420310217963455637226037483632287219673109643722165658799877928458700832099526447941992124190995114217861192300189429474692795090503972251050964650308475346774768018692456913401157592211471557548852141597197263253647470716837058418301170344437193405180078947102345832220330414927404471330721970299142993414121243023864346335942672474952178209635400469497798844015654139655822321134788509692432610149213486168798773101211325164065419689781098299138319911968956080664436432796318318012266676399187291132420196955754607936638229545210350981741444543125153025756958364080913893155031890000889797798796209343152666086371004612541014586696374063314356336616061754400537106007979534404614849974329186781793397393343844839998093379527482862386842038074813120980762531031440130965442166454493479202620110980583821133423827441692338011194191655627929692652402056558743060865933872347943251391704074396884566752901359050673398757762165127120509992951585591451435669788223670847148992635225233284886813893335495401354001477712937654187208412795508587339553604189014003402946773600913634295747384560464476445747690615665025311662905186194821608022130047488707598315009272606923292094875523480046146072477883985612703864908814265549146574609749354935612992459045001840242160929040629913427045824733020016736150787195259599732875304118511917477893088351930464033999455334070947902556282018925858527200706254367809010951690742647724563291011144860896469185003852548470631298688227516128433301131343766266192253624787954297143649457464793395335881651870095247658259917558561690049510327308543580479038020420202552591210812499301723885891172508341958923665857669538052325663611151856298738121251053081666308341957948908935831214679922345297243821070438289149591716688314567987356684898053472743368265504830113263118505339499899923974525710043493251810272288020683395453909009234903242252531998201380226716014201041161844622679323678541271209070714132924312668422284826141549626618794388228552218014923742778080543104113795665987775268161534440466023912237783211569441964955820078129043995952818514647804830408847471249317228447487218603331758488032937438929649778268255950953291407188635653413238100409885372847998169879710908180026513465220153947194177487006511015645879028286767837208381547145901077162628945934657965047691850606512429052875711873909216379986950169046341926743281091025243453119502831970075220556062432161135457997291313572114238847373599589919303076222923177335259587631858734236326778405059574168121044021565762143258963577740257500951167017058444430714656386958632980336107475751367475125237842845518019334888153534178905513496669243346868406172642120832178338546448420456376190412207278695806497359428214543123043554144226905049352908051972180552274948293231500386067677606022100416551125858970249913396006744324621162469032255804639390906347095664569041461594553577889942487014529824489742169740812694666152354422356149926219962558046004400335806520702475136610813582331132940952567808399764208650417332994083065485238818130736221977287230120610963309994958550711981889894628879460220095515064124263273492729461219168509733470919879664414806607231088910897647000188242149586286594892400494057989126510653427262408292584875562158010318080001704197965765881076557479856054222290786779401178473120544551546692808583268949049426759024635345185163888158642986821113696925666793869893827474320724917995834345109949913380278784923195055728519833720464667103407416263680904458614321141818139208488230758521418235874455400766482349126469258457167757954606689584391921839098000019165923946838560371545872334750149435454431394865804008302898425266294773773114219915206696820994254476770468306913997241791605309025711238211644947404572016491128229860102230685333368295151830760857410623806719670285426686061800366755978540507666151638387254330278559209123510674742158069719336967145140774984382455971337690116950274267109922376132078227615337106804156330841600107674141928496786111559089610290448122695087513435168648563234949134935450511729599208473944673887757285763407822976061056546934634815898567890306837238844996657688382511515980163663019372920515781664570204911455688291822645477545110238030663545873230166616026222346557896204910080506217480024022038290082467455405711588674044734825278210145749337640253633472819726302340477695770706000055694019232909045020922692937736631944776741821328308072836735289391312777117308140495864122545756764264541107693846176475029559820232674042795291923724250470733661954704144847459297175632178932875146130886832705464152510764304036824045020128450433178587034006478143272824695651690958510362686877204289780413669126373473928125132696274166808656369351041457101227040150936894192971253539688656935339788324422677600152528275770645857248105132146353120670071842760288594669133006124156903281337045376657296299879535801762247624742316102298087175731664756616428845757342375861999299966376788363840596988631923843223779262724071934442827273812180839933524752320045716880182902745803604819866730692335046992500005102343316597372514071599098049800052043738950945142898374247763253359517251744053187852669575530041522384933519627832214898898188722124595692858002676433280221334127393514445008212045784808200849432872223157107294288311134127493588729918016552648721525454521454821914557558405868242797295934945344183226596878027409539777084173992052562900257277042085307776403349255737702506234518742265451352821036085300800348161309481564750180494393301396946622014363937202185215770143925570333951193089302711214301668634636282336589219950550859921806985097959204231647374617957262860280059491217997604619073409359382494557776344139172924754379593658965727928954768372876391130751478278763075420680428593616619978449358844361343930652527764407891606683006865015126632533303181782533830112506871701488422671989668705499753454486597288303303592758139760605858415083604462881116716695553162824587122463391436391092118649087582551118956303756490496633548651679620499412960141759239297391568825239508697774679581709386423600382662728049246055756972695878592670083449471408766270077441823689907266076703862467162138101702381631877589507055748857619773697877154868982395023939644611922107547039314962623301975986641535571292354691011801311090762780697995124429598200534157968244589380546514910056134617686526041780082284546503902552482704598417290924518838222742093855502131319534598400920309464264524130006331392461449240186621782312276750256470929946357997490169989728452193828308376031034706665516166864765063790870873011029527800879488370443667705505010307515444363884601003122699211492698868125356212242423982461191173397130526308332780418033624462082681543738279594284776443787811283371465125060077067552195587559075132299624894229710135692854662878516321553513638330876480864208611693264554271689743298738533696836743192476689937429815544644738275512882421659156620648325760942184818217411478751538895530642769049651425350854983235728453291424315929172474175374116203336719451348411030108909705964423538065431309506977937550987006012194368148899720236683073697527251514877399643961329341221384018342266312600578547128602711485576795857789538204146976218581817474859334285447066994586069447565147324396990177246772145452433591706505761572886882424066281977742918495008144818291284462918383818622302940142877635248434668567332568725187047458820678516115671628001077689528709591655109885525828713207486623943905387322604582965664905408562458119688449458713311024764571487307746686740834891623587143115646392344479378677742965195928617986335217303408778692504030447311894821707209456892405066562771355359107856736919054070562813903891450703254233720575380303235206152237854833105446659628089798192125450645786367854039850668488151173429979457804589811267991993665773412049701520822461769326685755012405260482157391373108021798261130153228683754696671210499029748735331668844770700072734417513386411833090393180462611729102029934051861898768543227836515096142706466315527028147318851014510495411079805858923503251359502402487474643211099025682047698659399585143609257158117924822564687424786461974039819474734885184751887782597467244704097983409070221054558567283354800569146020839429940888660069754815318754164676871787701561263220983836405733934064899098692544554497451969422833079752189769200962418120647240769825811395704604639799382589580421672851702708616559358244509307571737910419134109139505711791309800789342910609185441868424440598718904344144475591735830801768743495641833944353200350430973456710214741753841848568723530462992414550471350755623893027919094873225248016931229974611223193313727996984489278361742173982725031235261810514469935624415553807471260578551120134392881981251276134883461524968006681030047644096694435026481276317394152413256954260441534685985598846203771446154788690236747812490815330112776346686526711088219838493526644074729985825311055786266450649108689733624766962532454567437249062485017875986351066964311829921522345695499153043827019762758241879543400342970510032945455956077968796137033750138056191368430529408380599362045676791654245709621454561304650748507212486171283027167931223048227820583798688389727622653498668623459102902452624868844968638152310745477203100457560420546986937878416004088299254180932983571695536601204379492964908989773098551458466400449420027892073286790006028758213926490625104109866325154544778773446313010435431143562959266987945158245061154197102627723492911040785718907190484357780878565488078576518877891191736168891663101131724054590854360035105871332710731200046884243753799751648120904335854311632761318334611941476892524435811197937279260408163436620322611679394651353242957389825616117456089485689911142771161451743288516486777975610489087688567175860663126571979509248176410387310839945440384497414343527403315301811681078435943433111385738657580371346430813939013046181557252574122876274976621597593304623742252792834125332451117606430122152174699147684564831971581148808857771587895023864300200664000944148052904725329820409606926652150343628694784994639244977853403712977655813276730742311774129655922270587023577870098628805912801868915344696289990801704596753429890872361057928700907593668851658169949034164109185792143084111559720856004675945792592066482602481121780246630472837567042198892451150451905886905749761808946161819879107480938442273553475459717257970980089081706138264479790792425194486559047689172287443635017884632519362429070434552689584605682502200440316958119137458950882650586925540480851488208683724047065611923709563489012768436649456669279127668172753282758208564540360845563683647366746472564022574883699761322940424699496385765800419820255834278470363648416582506340892519609207257315848475790395262546068856016807345884270672187224727170099219175476967210042528945164791094783331382885370224336479353238864143882930655159597612456597189176931783573216154885531259871056506282811965744044176630372396810218712246244001519526718920326604893267746678567566155111508474551107499261049463608231038726907687556316548317802081306245763006092086803384122654622116695765255039914673120548266779638809784313892523822410846556609211716869252227844097011344797344127663581551189152465539431929950646231219292294920015923875710890408164943725340173562268855384123748569880714725459041473868167237656404630398569662096671495155721162037101000428497297041463629095670243437778331103069274422451206692194939626433495691956370337587548900880198965856804854577842042009312868118987679523470613528079018543658739129308950103266821679378089426868769737570309203870060499892042731931173807168637691097426471669434098026170403961506153671879824112920575490226327394213320477846573189987885830799756280711022548738366925550203296591940641377946308846783980339000094572395598075227566030358475630274489070944227783314684600323307844941782524074749707071275608945906096836112168722989272523077041726357085278303040216272724155851612757962449938068677977783599880627648060911386251452548652196063686177151831818992731054976102870194170820709528885957279322058831325998099961117928278227121516556053871606706905746852129067010621256757183813240337078799794122557470286051698226554092944244708320499381625872543308253059657818232560751879741144065168203060405011077423550893782082969714796012963200883595944983837864541682994243431242435439759169641398827567762344325285902682124261346519087183254409296958084262292929787482595620351950013053175759854520784982510776719642003541358601891858369106178624395635626076244660542131982624310462554319490106211504667513199524800262038051392855269409340376322413813812355421780254963405017654055753954811437996302564782607729104416978568076625094295991914041270772992821287938623268268064356355561292182181544073208588383102918164548169363873158335951048929372340110756586638976840906535728239890634946763717090540563023182369419687639934176081230545731194719366455780290410093299053369514908366896655561105935188458182066434146267917016569224739014400691477011678015377063584542879493530109293332988941880796775340773287642520278410737151240948567886303717514797397580894933129132778298188481169582230153448381226735956086480334948370474547553620515284345918695318977337759429479567763954789932898888586157351216099812925742487425516551199976646412885423548428134948297451085700280670848117867176515645849323097039059537035644850353416824841784738293470162449415911187690486244170664085586857539246268847048083929612861536282124235615595315056721908066865302597061116178018492435459411277465182448934421135922794891353530735237668303799927079063229949757664423232828984082763909105915677048853563612372411023058175876828222327178093183165057450349557183555550404931498179538114132711061866592002196149741241246417405198461312057235412799836494395360103467754277840863796118928107394446530372889771409668913170456347618879785317005845398606697553537933414648327698049764310472382407667896983869013590227840469121266483165763367250333123665042609107073299305759918636430534423123363480339815126629781459836464924542545344736548999709063452879528127902388913966252684365406146185579182341159034769848822470477362718726426239881434645243711110758866814993516637073940983320292708574836555539933139321276048326132824735616804688795921092750211983113538074598357476451579955147191685906145011445541062819263217705221372347681345296842033319156984601661498271969212983851492393902572378882853806136405748404804320504864406860219357507073713960392810872223760210639184541634237548818389986805539584828984990227380177523506977712896696076250312927063336768538007974488564295388007510513732756782403453182332533006096791180909142423424077111274258681508864891729550794613574250983844987580704816213821602194485346797102277967421060999717067748953783468100859430026481336547231561581499313556584939583828413236551589700094241110125374505864959191831967175912813929262283803330988582324069635191914496597034856690351913199112186683891972416865339375347322342555324288622270596822386602831012277870135850285917073168248606920380602839193730511150985941475639603131860480554729097064714330668540089309521392602523398545884187386824229835850330854415483329294933552008723968096337719321341904640840744934214402125485658825897094500773623609279239515435336631645915976109855731833350723287482951997221178042604234682108255089161656742755503673398553989874448559728574885513502989314174165127658353818412540836642910129224276365447607232132499806398038769873798656862173420329621794632578554295014394018411331682561576364232262736488288306772768727003532334589282187266691335143448714845636603619114149000674488675582852540723601549279127674890350482938220768883312977354222552703683266332987178899986310773750374884065281854123000940479969296947116113437745283131088085641756422621715917770642498613867535052459406951226141312864394853217903404843697954690001021933374610151759313958839535232401544348611493859743544766644200559924837226649769421000291365036711843421326364972770713373977870401886300892378046927646203171194517501416047097920111797468853429236529459095544223616563237488894985177477187959368707728916311754136369152620453516530207025046810109032165035965867376538863933066640307051620238343442703820791144118207153432406266980747292007764054337147965879304250083261683203612672057732314383405873344179627542833306173848202610311015614579374634415287825379675050033907345592194012480366960363854248464234794377294311638271514529307843009759990000344631459267571909988247602365518070670306743463696060719313229660603881161119187087403122271764344660781480287859470911586920866539737684103819768746670234633107612807704137112563043684807502410978590485248063050201349789919393173812103277506876700306697811995550057700524351901067106723943859113930950136068205226177340835974418081701343660586798781786267070983415233250678025372510166330825780374166777896704465092734140121539548228115200205096967955253110506473488595166023329243201172768191705402057266500845150914132454758891866236866386965300358001065676092225832011348592526186525094989859410998786026606495406412368133218048951238292427887538782737356751776117428989907483908398875048956413215880186287066658637802360593664510956193848742758898987499174860101957922820263473395183077867606975765706345278421073945063896429052219512161012082497809994787395232756784357898702282324287437783535423600341286905965276273395477358124631439252084654211463255261679539467679464680407955053802082142817119638303269215718507058529084148144214331762711841598554302395743883720419515741649712358996813405793809924566295785925130477568636884771184280157992717758936940715842401167772246232355457252582631812591868756094252555781252693912323448137512445971060908039220662178554297247788948538240241537794993747907195993639928558954256040480513650747090428554745614926695875389460984328854935340264021427417422084320675008764047915711913211166646457796983562544374767525713990661146238517108454893136638475505851013487197227829225337265146770836630759673325304729368745593410838304273999847186094404636998095149996196170017871198475061588502896023348458819824230323048624389986466861712778308901642908290000565094986128692840799455652488745572506205978188547951320791231681935234526570932049957102809095151521418752186645675920653064981274042306477130271331300886489175249480123902347727133919307294552074997964199233315158541779882697179172536025366867207057243335544062473901555260172757025894220906558761660004074283958529817035553260074312762087849464847327956736691788012091888027319913718779828839141137492226206572354758428554211681799605842991942442102356929250279454486995356495593007999854277311481915567568991444455960287589360829567262599563740548384398380850555276357479798940529857462862861730844701827436693158102977696742989340114956905545876256302029684852873589283270158000088399597590777090005259886765288870901840771689097583424425524659785552500636234993080827934590356672116929308407015451884028605641458875477996004185046120992920981402139728809828975990329175958252975378494401079651889689314918783588308983247806147169783235519213512746644201328575022369657713113095871067971588304090895216492426981939890160279065643611770364146489268038016075904305917330709484192637924244360257183857692941722609127245191771729539403687391066825689535705791796924885163093632858220238415362674425405786149803020879092514964298735463412025849254073157548214206463768398848893130933093807153703524596129403264904250811942104963313065540120441806119277967039390633422790113072641350523800892258284639792595250553571519273678679613974658974019781121888432427845759902659331869622812062428580951115132566483561267020624941775026123438748660511234511909697583857822732946317899377105906841509414651897897407047498523455991507518865816940780753127678580748212359454325084939704681204463998050565346202169241875959904954196540486942636766364411197685314159071710605692227763488567870291639167511356366938571835669824310813367244447163450555361416899183145252530528800995685041461913324110013461717268190291887026966585285558433128308784697147075219666865520427426819559801195202600253180191400367208832950374924878121885877180712292543670271224837126530850968854317464020955649389967148625526778762693025625041899951842322000635643401240707314676146212880824629358641598679392612895191885500982531370734543185423763975080627824400605144676931582054601135866569224081849423689154139197890659954507692917395920802306053704113452349998979279371137160120898940014014281829719981077022305780755140037017225570391163210740236903560682963860080659052873709300838062789949990521856242680993920837639158031684003278962534497039317997983263100137830983507947076912136585482045424088727856465534552625565071033841247111316151340812061933487776005763570994929889659696221559972776130371876546185747407571138435521746871872125075704929969729338048267203555468326542610181439152183417774421958966216268487389210597364018050050597154421357820272456397620017111425852711555562928829227788607322883035774994574131378206866409636306688857382868267551546361661181540240012323578484402396433510761774540706457174500284745663621981360833532495127579345209565387286119579938390186733697670064185055468400254331505157733354943467901798657532491568918219148905065209104155985143564751520853906431266051591836370431595967068980675765170143420826460901337915327156282921415204324011121029799109011663851382167344008458345175956205325924671548656305179723490637726834237059861779425033921006386598886154341867810236572865753450009399556172380728491960695006618943553484776933433130277303728502905853966063454981223307468090378238803620093722747608016182367100300162948696571608871907963020139144901433440553896345954203705625971975235168147659563688785644882305268873441633770857229921035659343410831918052350176748232591382595609858951844376884982507305656760317789318809778202095246020910563559938341134547792603620974795364266470085493652247597399096364248879001001188656945900765161607926768742963214509352626717977103137897888634771905289656588507077795793191999906065070887965551992521699544257507031023868663647603812811904625785104210253853196104693667406389263615706770208456094568756646432252825294949198095318540799753928828572270418291793773135106774964266470328920750981934882695214069520290514239735752566505503718224551342959608623752422325767551510797802040380925025931071266338286639818641553592978392808198379093735167177323370310836167626537211201942818237865172136335993795132194060918286350098464789971981786428273059151287228929474294328016080853509659628269587588465127170133132188159206523507647356258339227404360137302965323398901172160265495844045259818633223021581422625296489503783347815244731295081640554477965524385612612474017498060589895079450212749472260983602517948218698356970760890597712121369948575941068563827123235718927199833123553524216074963324147265410918669258220728882284759963030745757126613040016641648677935107591567756767074068589579400766824530334022296966183718824374642972828959331966494267434226833523613059879408724246642413048275439784145778048403925092711598072143859288741439381824965798635598675115127185074426358429411160858660162183979166158417311944804545956596876133107103028070853162959650180931037924684833777886401715064653653819188012417880874707393357995445284156047386050576424014421543298257976845497351717809181328788215711836565613494149380960568417294999957211507388045035455404003889395523884848027755299779280675226063206004065847043911143458348625253947797062428093861166192208629099237227197732517656183152512615626074156706766435026995655565806734699654869729781960574060764780440128295115143280454087440498240266271604040314487048555514671881161193500722720169459381881513854607954631560153751001328077078863082057663304921221097898389571474417733690641148270832916975448080219984056743892027955391660597988586661692511194998030197896318581356099240760888845851517198379846923397744666634701286280348912427152479271590915046514039912125358679980472174026858317756391009408742635135989978289230623369408259029076362251333840477534740574698294100504578004028634933593845616979040527957475781861409690177682451484464965660720033294742849450393943586011933784711956171618771660269281558783556872745621511547255986118339967246170039100258794093129249979376056235408394116020661722041874703439917199076862193480921961689621850647516132687658669673813703724296461453152527753042450084776943223505780154623912945158026174776741236153607145061359301559570430061514941571232364297134739182506436080741366495969370234804904566497457079638201270437290048600567181969861334927894551972088390888217447246025331731615165478649989631433765717180391559379780898124742144718868779704017879327038156565891791912738037002813335069530811794228774407810007979648554619356867251537342079485450115194177029602325151515612610811212847644687562425962013322262161425658109227782806864876263127901605577681540144851414697965003368831998078937561748553368942932974109132647878705990081011646075106105273984396372786645447649123767136238430858371740605663514855217982281551444045723520784926349009410378772178816571080427739925255795204874529947019248526871534425091831430851035110183279260598662481057825113567342490233720967345959001965137658110708067117170205857770539458266295217094088244264707546643273739278670830934683710196600120786085829381953464133452426462382878141606215386369277331046841965007840840077007789707601503077455105716318644459816473748758400000171226686484145425476258755661099103755203437984841544401244982016785932935311681603260045356066465458042502457226675821232705755321148916478494157232384522002971005297737731754203896729817939677971121043045622096485646613570514151307701662251973269462296529722511330131186101449359957449256624802937033644774169769545356565267826334918749030718099757939340692820382105101794430329390866631659279797126715906460849580228242144840011423401597623663046116716316591549079581470717061042678357862175360668355235575274293666265395452065560017014867103706341942993668782062956028975822482745719384473020516944585291799821060094740845896819836408466812204064675699920699340511889710124053728473889816853872434777985486536891224016249601089726545546687241964886679865010588853306081185651247424264412336628453744965533199165550222032040520996774327826847754983967802797231857342677336286585120493992285326501898043938636881511258867257175491800962234952539925834274967307204137691276408730967750710497148942082818089440212668975638276543331905386560258545357201928736944209882022542550152582792802196695275644370091958798962177028225290793662769922180093775644476764079527782949150962026473646068143481979791977645425748580956013747181340226091099743262839300572720257782235988506233389637896251330554744405292186084290625424522770272625347213048037297211474988663628382971470058842026075573816125181614921587935442043573896392270790276370742646540143238248739331575579199155247567302887283164072675825241007818171658341274553214769843516742410697764960274331694047752215939187694151219540108448970640685215212874611683072887478016887791619014152941171391440004973325495009096646283148786782651522693578598407278700620984438078287414162673844725356555515002276239736119012229204115132321628614751947793208914532252076371110956831676078339820957329862906653116110987145431161868697334073299664517385307789498604682296697930082305934757462426663985763172058691904059917040906021205242421972614269046816733234892536233221920260472557414325814225802018838919645437102640653428612674864638473380300271244553848039145385921966789915883503261439167599141101462015551017878899888837242650459840262418042770841285468119540758517292410184810943573957914709912361121319820761043602723446773783567032765871391941738651555674324601037530115507904773425166497496966134731198051660116400556890202085507733288023477025898362697327557855681550383422529975134908152662633290976593940131095839123692365349177537181202698526779670419322670955422364321369172819558940567400620542784277586090358773398072389852310637370534586792812568127461445438975807851288691942203761626896581248357762687421964666077297285894201364172628322074657193841797876105120415913609371454253890447375806386920094057832420467466211534549678804174752771513376028670532906383966371112626170748752939511847824397222616072882937726282138399681752781126986395098140198515681724385410427483013516160174542959677738158415378245459595841498646354325476836262739065816191367198188165414305585259745461774817977538569565110082142904894179125521589168381903507000645163918210730072444216491888317960219563782190044907195611344737774754629176696033995719307328099032908805932793996258625662855860573138031012788312539667674856865267738496120504655681541088962311788338650050366963093704188479425338439286663665233745139845840213327923819016131729502769977916462212238777870602119223529734718559165858066778237400027302882940056762556034132071199774523196593909451462608720515609416547894378305199870737696582673941359412861280217139057198665297560189688478288066299860121418839453800463653635567647654441375403088051880647896674008602843777256270848038540987036238598830458970552282537992327992279222332838049569683890580797796794405200492247963967883768088084241878982636776378612705127821765873638397209007888200273080333304231253284634655730245927925294458772800286618302295534213903541416399504630056716132236698041331985090132244745712410267150686831649627548084256491845438584784905353537237349577749345670195663318903559664323488055435549218414858813491111601811508637747284145126829665340192212468402634015266970716606652078835872700975990242250685012417481588516750712088838412332689729107141722340946927967297138434055313712413799917736452368387194006262638335895381071953846564199127708106157341052358616827786204176463322192965764003044655045785344378581488267219558200508619687458019016674296338958986080832777258045488310530385778196585092714090990274518225109578276530885404233025279569987168642783225844894755483694633613620448074887596968068156409951182786661819452190746167973527978897796196030607697757348294700424482279115405323518539382770294048252067516641165357945260504859057143679545487591409104214487434296003266583798040629660273881243759591070844525988166900818667434717708312537480137110403853903149127143136550910022511298696913779050297900395415980719456037667335974730792081554677148216563882915197311199441115365429801589529505447841364523236366847799669286380462024844968764733134957947246329507434378749536509710528717573714981169661911499346671828917979160844533139142668369849106294813764529119056722453516343301073095459710962905111211631444270795218785765963366602079786943595453097624334345002899193838354019533272053258653919561576630659238873160904422716640674964177170193739715307978885883283369316192796730554272494952876984849300775842222414011139385676557222843747146155989578755929754674465410129595937388490297803710638349360026931202748583611284108052609501004163472025731152863359814053353188851650869970494825542201284907905079479435549582654065644133232213397615370282955134340528974432102616510102502345615273568905873394657096140807151620812914730297391460661074495520504268860651256177361241924118366387442405529819508925955531540635534299753079873848098433664268181488111916464868255523039003259972586046823636831527129467093368735295468684992998870640971577771138232088381469840913964162482382579283551152213398223629648923795655495733135762012507858007537289806196780199011338899339279181962611560277530617623213637918439247662433818839388980769140339028388127868620902565871202763780948222015643548745249265470400525310227166671700068506442205947864806704014436366796151751379134619826294282753524503078142944261046432319228236937800024872501103733207016714532063940102674053556312231986714571300705834899238315599208729252271714697034127796336152233124293046346594479231075909083702357897667093422196809730950055664119376456515138432536003760381347614526003984205490602058067686422510703277584598405454527817129805447426181476380754867417333211391110799322620973937786649749571657598385966823569614420503693890485266002046461376440017822236624431104710303114896929118742870238774729572584398689022468108726211880209104496723600172564603953946721113538813137045616509601547766414250818820244496988935441000864536691163640529128169597861909305449112188326359167880703884612027643296763232317333882320515226914771433399275385830975589653198972924682742134151015053966871445104206439866215107505734862945225165217173829916928034621489483142642217530615661597381528354014157759084501617402268631818496748627738539636109966469211432909905508081571313224560908189716532435856055325216494630389977825594146781703237443022051592409345812977416222566483938474047310888419442051803410774531231401655472783436183340572955055243133459214411546331054402716567411633425119354411053125189736199285837984058330662433198431517868655409923601536268479371145580558858613919277605837711178236010699176897116361846998265663840466878013781732927044806417956688305668114292728883226514995746877894552786063071019106332816612856816907812566992569350062644265720986858554567406845187019065983259603117885051290815121395290913798583309547689500045479397285686350589045464120950615466059313791066517763942112609695433962162289497984110011994423384364410758868086652356978681484660300517242982403196482924559058607375939374993162925442887362742865742844251693020336677697473570622138882366310965187350119097567784805275843686816903844636394324255514465413335318144789221140145982623713463138161380786724949817335931743345861989429761195173031621482529316835073413124141498143825183136790011186780314675690311557136398966434401810554249015597782005687821761344830025134448211964068664876277338371561038789382560333319123051701309139484305622801337261972201925669461768390104062816095736725552711903336608569756451002654639428319772334014198853948969240800162269121170547407101620350323069721476218824496044346834264855904369030666976712864225417154728681419905524668338331756272252338467458315671040094569029209144491638288226515139701005871624980218897088608747310082584482326941608823327128762842007266201246644513393374943718025651197343795642977488920076280507620157388548893178168734678524767451598848207365318866948132540100941655041357741147262256041270296674501876240873148002568462928961522248447061129332107645826519623590820915725305906242663215228481886397098026835237619578112946871337272175091457942422745899111798368653871736317376917317463639101977631543224464522523975295540448250890086123605557004282685778506563516201262613493499148407595510734822876838605226472422564547840560168533680121408420861122063291019719682983567997432069554610562528563330411145240754018191793200129603370277105225483725029164994821076027603820695471903916602414476073031524540671851857799308907210549431825192567425318294270236314208243557099340594883726340171898044460861771994608378993887711706355213023404208796654437673054953962927953663316230910908235756880298133824115712259442093891063035440359569996334101437761643823540841714855445901198492590883040559005296685326539644686993877582382900270676967170996327340107472429433977970186864624286083815384652101816791725753096435527470893707521941470357876722963269665252928578875759638245281321208712325856775880989937658055245643839362493633572010784622756627652605539350500511542639710398633270934799603779492338905148790065071280735567479802765854722009096435616146786640032167592115447378680696807488629831017120535974172359226265777240881330322757091651332894668505582998129569943221977238344350310907432053454880543276298430992158830524913030954099170818939891884011912688679140477384348846314404708960830971684102072547219511791561898905937604440554138638312190977431915720096598666826277863102975750214869855924150643020702990803999749156487415502122973707819415709726649450934725159659170968011188362432207198169855367060918138590097474749512485311874492097488384253976599973404722617019049873868786019282887599430826084863192874410627564414752951835492637138832387704464706334096822876213115756283657837441290389799484976635773988768300201843524647126001847647669686552537571976847938229168179742509028014365877034498146428390211813031253860257544210934632223742596534428958492640478492897558382827276840710123459473029221283588878318716478655445375580304863053039254493258884366822634868326387354001331760060614021579034098741558562410132604108904201357758680435946007839474013408409758229790457286786343459136744429225423814890734838505734226863199634560115800127512821703245057800093583589850062645247640270199824958044672191436571178392053199810105028514863432478151789072447280363587903892217789055630326771838937125293239652212789932174932898458245753959678281005670764039200953691248251004988354812181925839593982114350266571907911460595595113305107854570819051391583086990054710604459971957624133470188889625711897960676110646601561016506411206263998633667322602567445435309626212470027785310546552708290257387163655308979844358900171702786142690485907384634458387088278432385857571408306031781194398199439138636294986363701942505716290244839160770428178159987830602207101894138997566917110545409280460986145549176070516491320652537004238029702428092437808284119578274633792405498284844882639397420643203151222935904910706556254044555864904468230789304314782812720242369563751297351680162723966810448482787086839154535447150151554625310858189843449950450332996851838729627092352601692760137261301076761738886403569943207608267484642006937211911324734998326735951484752746527657187949535825474986637848958215455707723036277553395563203077823662484889054005831780455060767385549241197277012882569523483080356586141216518752389795748529633626122738124436972472538070492136712968117567275378374719786392081676645524195660248255201007631145808406736261708966513117116648136722770684584720305449699528159254599643859830846028183468595149766037244088914689959081159092722953418129323776576071797357953125332185877787045565680099491711972631453849579866319594344214402619318944789011173784371113940133032301935361719776565584465619817003560474226705168749635616351278218928032822505281994031157847063007616781867633770032297655162695809540526755231135160877402455525906178020483230638955883011195037849262517384173725131306970670074705515878181603407899112502046395498924203637636886014996694559709727125093259579960743027149802075919643129093794657364246048987044497035311849824059139938566325307414967212746863427646019422124796431326922917396185426548846267457021285729269739396824119446553316377523534592412337909725830156709652724417041381213643026744667736341031682647656291083788591572055578636378407242323350630286324234566151200317562751527474633599394354632696072842667419084861993182273872516363681128188211484973761586029606678705217333513948624034399117764682829554396856245094779731475865593273183253089962620546829471667590003277330450870714672854835027259420658991718682290409882183799302346357609838958162244492345256671170065724837589963423368413831267131118794917630420181879685198679884159102720566886931724642208913741765152155756176225710833064941856092539286281773488332420766160275108969288179309561500276252640661963290348831648810748895098585687350551607887521648938575104290567622125795983233712753874261379651857086386008385203885081679548673732150504375025752717961779216095505700142822840412910825679600653065604973174817604324835734800159962411002396730290106166172805038286564611040768419315556940186305039479538053682688782864067257871545321987324542267621030617488587993599380877085833433072841227398745303769661906280810655575513728951831752108711186405685380119553784571378644092228953243506824204772490823224364042162962753213374884318489363546963932228543500280217755826147161949156247150247674261250089970108928256739171458011503090825305549272329764659019829799050356736044001796701026576410289501701517473691452082452861139350954841843526876271537986235839682276146474750469287862461144549498547859341074376501606381298908392113242309879915588549584626311167498726962819538124857516653193243383029347718247226724143882986939802298349851589751327621559650624654487237753929526291543540555232285381379089127730708677827058395891839768912148422127606522867443618790816679821951060633304151668916969817406240284358395073474974786515674785652664194581490413505016707037628582551275007382507599988385240462072833850124922547382058290010777158371435099851621361101166771504887983506745555403209015427471907399508044756777070622989710913004978955293744172322229149699451499272157599516332760873554692787857917845747183797402412744634642313953742106756733622220562542272929918415493886000459495088392445725655662675885895652831077168723898257225531453756957942765691391463092374513052693036776377325313188928306289153461339994964202850682494564991975656308589283802077233207677869275085145056792533410605847055572396682466097679885097724515000880421827247898715435722103779617882621913057166488095168604153592336584514893891029978379616158186518391187113478365431958086453079848356896791908768055052304343340417531012360182873363241708847698346876358564953196272860946333678692755496696734875104975740370413041002211952732998056268294379928563954408675243939378852390350918936517221971117884114045200958743704846293819990947248719073063604274183104561501074087547826808126588416811239564155140397258444796930074278861090847721809669985719638094313144409389361601161726951689674693025682309661843089807777428453855866579895685207430061418011204530206798687270937700020646992207133465851607957617866313518126142910579403240076564977630242033259910180007416396869118785368666465410452157893692767588498057168519661542324705014447928948927929297657448819515725150937908058854785156430192296836427204210353138036141564521041610287319141999316249112730890398766722708419965790621191211285670162027785385061758849608671042092976080719233893336167151325230970984524011982554647375176863173343481901487431412447419948766229649416811205133601443838880929923727199490274318236290150396656391925765578379382051572643595136221189278733758558935367956528379140531993355066559014526338788837627234865528205531277682350886786984740819103833801232202764942690612384273045802606924856036241157048765440262567817567561425684344755933188022046272980266446932384123723796897413180935715157228266215820089844094311030976252865105900509997819297358202954164932377848053195109599977474696357711816773003733955322011229057250543571814073579904226774909667967915735539680547048100045553501319719018260735257400375772690452774615977455908737102726723111674984487008689983716233722759930093945244914176172598723241566511905510477511397565645033760382124212393495180841086743392468623046556189942025912175743407441868117482072586460196444977966654590861251787600020205857929627415781703456314152888226270192863024524818578074347253294231487828623341232282334780563782559077632976390371241143566977130176642728155432595953674244931492921188696047202195744835520228619157660965194654919442216262600843372075744713730594978610801034627323327295082318939349118654710767788195103332493542758669222814112135315040859771255248068827654779844619296041657804202472538225249618803991538392896622667840428268404355533410682087871938744450274209376144839975651086416854134273755207797157769028591845665691956298791363606212296317541080618724324079391624892561559109923694293885163578549882941353468501599468696959903420559589351947987592686126645414759020241398909251841201709258613504107812444355637740494969199620745565070384923682388170414143886150791529555714440472495058175791420346577931036504663486877170832769225386178920352525803938792285643213690186112259034451687072825788846823810757218780387468554040785801581701291355027917980161842471883593696810242954893457970227319067947568504884347214088405647277688229124913963762188786951806319011076124054127161188244272243521836620233718246100136163952671813370840501331075247463473291968679512442876534965331977826157946426161511726845824687771398235030002651288260991506990417071570288576586221887879039701802450339093564051486399466219084181382724827313453295564260792099088856055401465920080472743485458101992369223205126742495693874627012189769813286323644060411856533342817288885533420915628576731178349253743049016584537145600530450589601089667314119871235848876207360782576451832377242034484199746566531638854136309970400344041677621566923984150960918605293225300577478457493688633626944368882543541928655212554265678203403828823535072196985984930341744458610197119221857686888125746101658555903884608688378192311772971004960199620334022757950797239747852832752911774533065174053289597559281428422959781535057943698964037782371182344918798208644551772650466105343541690811092632769325586913763633421454010488773371396136747025410893077938258566858165529842411109469153763958982577720232365964596888337125201542865094661108823949406017435885832021782814665028827517340524841404776049460107789749532339365351440362280912280683742619008471281920566585951862424705919095639239621736535148241525742034892882506925476839246500878295415285144199749184189015175874429388063551806330998367810454634284968465691762859236798915958263931479628303057261271740851865537649228970131375188144849765761579796272815479499155387637338485037095167133979413937951810660901396691731729694810256711240829541182431877080127103794867480468646562714823520225397202457703674887555818679359061774501154099486726593573723615316563346992548744878013456878813485438606854186666500371676362037526155856215329550319119248934604479835937949986144137518784638274666731293034443854183114005262787307041158575877187835449082995515244798031276588358246141863133514574435524395717718019620523717700824619586621896640257489780400360260791837695838734867836597390061589027843761633276078216034127374291495838526327880704144547152736720274184033863456112220891455292114814232781911348211891448559852979836052857292514327295158104836310503935550957141803511374086385142197839760824846160390705142237527717269617048329588961427319908195448292627021416594416270724742191127641591506872386545268518807573407020030606148800062201271978912842274933674470705563135231403290471195668790736625495237054149304495262441580044924514927785501198330521056736924566555581096279784641997077721779841190886921981369937442315264252706107796187055814793431826981867642135399619571378487730645457489090621246821305418801535164841646830257982298144046604093594695124920433609786593020760594146246618095972666130599846007741903385553529676366616570655535202580852185804006528130526993084543165222350386365858818983491893300318613187006575669593807523600066461590066993578398548457514156203712239507177185001262452543816734895750477776876245468714339504419293216698165970325106305044970813878729411735782983974726882922548817132455478173155889776018416340142560737316012680704389093731609441065971176932162373873875344090078456041457574384531198226846061678182880004767527388722361016938514082986295528175953124250903574509936053400121828608795302039342885484530744818954424082088623420204963514550093522693486322974847443182952604467982714334293585644277149558338116338242362498219821236494174833866120150489250775100627169962909561482971506468541301782101522940708462547419349608177933197042796319253469356603283329660717865733857275765171432248707050020663571436862947539190127804546877428173974499065755048727488722464525980619712696174273017441318744522565914187903402967590042087453072607977217248717261008749441138043282938377268459239365510701832886850993335066185954482673796329086592182569644927127859972150731371492425734167127919191483208935193914257958027012734941290941608572468173387128441488657526273252557691542381280806794919935459299366811191646892268430280983162727803893608967810298047668759057925902647582810559355383293110390957202600976950100676857475810237624760520406613209797237619823600927355032163435366673392274082300176977261384790472633952976827364352516419336437411685164048768032875679530707899330930355303302224572558075593213130093131081122055251517954537244605543174216401566478896652627840312977215122512945067252284479334972335299959737847141998271443477160726414479327393319041552801843819260830663234812730797431162032130636777792301003669991376557913584488037231674538382887110752594949841687730216478997200191828069634750641888383084681210182267816849426462749319700787346861367201243832701381530607461121529893930895553691877708896037161390734081345886078096039116134734580476026718220548944450398666925914124880455174660792465941099990125921696565739083972959308646875351388969710458582431955897068963043843548105384409447313275452715001873339735906038413378011461280408954325304212010799657477918019488291995375933718442199957035416311346694718326371995948897751051246142508954812553607829567963175606787707609715709698097189075579818636460433447743203194436052693450728807514283215211604520127292985755383185715462711958490399062700737823479818409240015198582867535218850613852488749450684555219966138784461196327493320163171580935283268113805830439774613245117650613876428805561045973793207008827500463228158884185112289742349993284212447578854426316766376463425432269359250701658580475881839426760864123366779747491786589321115397408195119675824974332556740365202606205559763466844612049859314950873887143040339957015294801653051291136652297869116842775621803448848070795840739973254675788869548253990401434906741976311743902937037168893404691569926208656690688613218937158739238634658657672644193430078178942072891141740224829761208678427762251989623664725449777873536426018321890978053145703199902751207878137426191667228433732047758562602209137692704083387484271861566812404645183552705052758436342910349890552530164014169658653412720071221988902234023648164911563551847479498086967276429518188238524150852478091325654208918110537836459878406021388970447110989213347902756665760956086636089181811916366074886424157300330554949645669472977920394210490056811637883237923061980971539094108048318796802907528608474001940259049426349731328236825316983939243072842184181611066439220061363345601241744170134853915741542528282477291945807828512436150966085280505788444718647148168607211922985941181925664403534070588527762761243076521495227301957690275086110649174718388117739167751603701706452423510258242631927403893857970227403473048151579749430107801094049658578402726564401981917910106172241691224161164071532409219477905562765236764953590442937666217788080175630275165545373514338551914728191027862824821360523288935232255942372049241756903221515659295358064915068025002708612080009520936143929654533084274557324103158437198200533957031348426577950759196441364839292832321413165996522657428915021616979935106377319702746348606551780092664562056275368072179610913381044936773450012947056080145587809302455442598911628499573535063553565106597193367690763570644515240189353436432540958935326515012553844042583251549750357757299351051466373127892782219741577366147600074674386391864780929640815597095978731103324619529693543544979466020323510841187094111596306489790620839997063064837041442716323583369528399553424281835218172286062864067383125869543625927860530898937083131468725622112527384196693118574532905199018964099364306650648503221778181148446717262763064763835434637079968661825982367653318756394831584190345210933422244672398863912411508819014030292932892605104262484625152269724962810262139248148490670007696993569785564849480658981743676323060974906850615788477419735727404440615479639929554807954065368398857913105388424159675649899790553154967307129714324280520598073623440587478401913332755641672955496717182482650630686356796433914724054363988925127836857626212520774827509558666420383266060163334072652832063852769861125764485223023602180319961824035085321221163216208717864317491769851281929224457445805037585201209168753703217294742454886841104028431651423412129162796138997684400845449538071670173449577376747984021039046630211168749119080652063256766435251629926257935604538599887770616126615493680060745651078634716673569540400119406767343609196761935438078230382643222862311014451664508858070857450284717223759847062213562748984421142227417373323177561553855426734361346628194763295559380459757463808370541794699271853981781907634806785615597587294668628563098280401455510737448782091585937057206407033959648466791575494142921123198767173373628654679958304989165583120969046881320548254740126738068124203310963326448244175938723349760227170560362660601866438065429823348873130657348980589396467521069273525422664695882810322610421477513772387149150267424444543540243033149513778479665557275378830989067659797592392157499553500252345101906903805303362380084960273924418604881313468077663476414998753455312603904478679758418355200339866787130561429000621912632917384709165480148243287485059981000247421061287977285753200208145125077650216427066485961435710592996730020911664424388658625319261865073526520389190965239957361405629600111892703842403458706753741455504732545906707368309316797491440114859519908281745641817390597674910368314671883166331222706120178090513080381468255859095646453793479240306623100307854129202854483840655818051370549301233981456596043632232277782797917245256301352834021957265827983296493238107569643539806469419163419653595143924575393016784878153537551706191647907551295772713810619904911724306409659046864237836956714577983125306507005249982348190454706440932232213629726399064115114006151282790108983100171802520030616050434946435463279001302369492268392139316398456744443179018456910137525313296941285193134734852102830800770014238391162130123247706518740613635516531506089271310303500042218029825297265583212352575983407006074962543676189276765272038023093595244309727149775324793838242187049754407293398626707574597929756754805457985432206106238785715824761984595573922712578322472959238265924328822872511221629681119902271972279549913015600902883898168960869582319172565920718786451762328409331827590510743973159884782542374867407745907785495236640436013899370513766608249458590280602803477006825689563842653546147704185036672108149136702049285339135716437259378054301581676604007186305410668106841492960532864396306810276203840570726357928079659898553894766380781061771516700498028655823070554661599046247338770155367099171897825431722199173264560195858958849206731211922983842514166178621690596195727977608808752900053234102064488516114131862046889819036126943597168011476151196029832773176757175098512925068365845999225666909751736923853929723267531804599897906018031258114525239455364287166476453051057945022575497929737725546286912650897206348293585782867321162755722785378825918397904369820750141625201438588347079406027182163468988947095131757629824061786830970500420643464097755797464652935732430882415200240359485946220630699000238984619351032547963124687804349496256199593906799603395269368860310122350238148717087758849059147464723579552842282509831843110173879368805933864483660168649558106792156988509433975638622762348100072209954515947472941502512990642207350562775403967645216151040616382860298895828535497033276331779711288985882200384839557267629789895259919205344352434299196100863084907628636130972597991779412130019081670290405403958762207495827574015491044268534288685015160845538631186059711128023289663827654848458131645707618302889850923619962241024815415762020243908379753804679194076968591868934436825321085063032048600629313465679499261227424158397844698004788271965611715322968036269113930915993294910624933438292189116720421523529664639289425706789815578129808366124383073034994390233052037035817984554431629892194092117022747763104508248443522407714010324865986295858945536369381706171885116498209135074187073096724484330624452039226763336946132417248232836127931312365349491468868378288332447061681803595781537185146323784871303270304903285495328739794203098193598319964842000390720947695706543877159718116968305724916328731250797655327756092665647645452535017845015535194064640378242740529014352631678125132436178877458742641050484107879924634563996232702992111793121854767035403493872203300203920374377470841194525540532339112593446686981679343123977316482724170545883344147050702884703311572406658026033593026664451273406500623684622837304922062334597402655759820256446710263131644916133825377040558577830949576454563908066646082496974598026404661159638076457345876240557724762677703313922190897524015548141878678757312513616216661085905259409023583718043423442586807069022902447808473384587275683154644505876907034038279430036629528710161336949786894805263034935123564160996121405765461691962796672103787734331891421412842849792553734101914391616871766622255462708599980424069813031468705054159610098543213667476104434757234987527316975596864105536843559478666258737400641464694026371046496470339656008841161426981170123191291657147973727634268845028916032364794660599856792710094693913420993453852642230368160810775288152982077744756672066111627266267246107387794904239902225930602718226661398799721749127485422126814952277728289734692940345697802915274083494557942516780863258919132578272846045900264269420902414264611732281347173695839370114395046324823302339675335897109566143901267916033723335843142756132875018053391161213011649602059772799020880604246566691503060742677910943924853517759603481123861869571118451074278393485354558552394514022481720928496247602917961465259851740434913830332052230323236666478082237601273547906999609018500783859784610377751586667956514678908511516888637393520334876283896559286415236114465221197132239364341043338403719531810413734885536608458258863856952717548772002106259557526625962026378422439404352062634879781082790286005321077870753924686397731606345229608258954861046387190549730049818990980503093852386837193884775100224977445457046678474623229307441620078673655867108764394240501749146802845035415962297847555534387135153716952890915600894125393537253377242331523512238384757321422646059708075332493122275790394369972773958354209667405335067968117681068740139342152682545271345080193170828041882106083838463816595500183223311689186400818344036984774770852390549383217309797816755854659865118530307543353562280189514606791677192715070653541708738542574632570750728931549629146147552833723331111729306092415512783752125863326838388189108866593100325037416335109674854627142819704092485253376166796311166932044809868146521347288799200532995752417417961752362002046222971780691648662658687532146741627964465472022711798114127851031829501691740601633742314766536263228342928151852880136095878731392749671935253459785609585762262292706905791831647103194773520000141703310208032450745009782586760189054028119026233368013257599503247045033784218596493480476534627468615274564514206962496449622650445329520428225001829984670050094374437107893136049096795913591492784965332432203426102921532137848237845770795506008415719075625443054292962691994127645773673031329993744924356825831883658899371763986567173135394761088772801679290568338971377245480571786424643387811891292304144289347417172361000593994750140847222885182481574419736921663320372623697194306142178612841729088352911370172092546971485636425364902831039577633557228910985595298067964555855961960829869817038678253652302493947004800129499771396663842344016548773180328584487457732419962130049184415902334795800502842972871475016793632090236817936515748995476495117262998557461831681052966208842656323313324731097630006259768370882406961906243642423851725382773216561927542122533567837859846264963514047701673437202613446776834402818270936615901276122433948018005299436538974130840577675205133960731377134804885380340478725853470205877343877270203012758377380606038466198070625506736642284748953335162403485528665462541160786061458245455875595609631314349091548264333690234905389770216711476698893172030528793728549930967072305888381873001236436556256714229070715229032708294839423659250075405847674231527306819747939695635170065126706981796607172073706575847003397796454675642225441337544206623212663921284570233123155874911583317184742401403368980282261126011836271285509150608204415689775789662061061416060504343399262369343313809048731289367412844668453563200697963678284428498457143962192872952632206778730108715424195823119918895472560477476467373883679905008950154455405451669152952231403491890899225639895791010556224548450278473706682377589220013184989052188863583568960845771410558958243933299781486525654122177679650821162015055334925464774404110665580085351463056665507558022285572536259092688326536185801891260117174558274470365716733542951595866278444911535599432314911051538707735486696621615577925589073837532608768858314572196566265373845563728969756730684590372398555990445488315373174950614036701689083538813663809534926439996664996591666932379442047710636683079945262295984430019481900226422016332132833865595550940305516388417415964191972146173065505644371530550252731375729012715707462321855654388100783908210853907005653572792305473099932471951447522372294933900616287503000014170645528550854393931418788566091985207183978768477155527150599802305252898536787687074619469733847571446006885099768659806688565262053976206912781353499736423832623238990200740635355877633883337409160285691486000404858061532183508401497691338277149927924919185577282071570361764620179916397012403958586739683728636461720088991844736228898005016207548601296330223386620985398216734842516464259609565753724233785554274672543459028461888357231331186866489521860043844059510407696344485472240469315726331500317516834771985118844129744772155582854677103174031181386968637447439670498210895763381629668913610570090277799084472154058633661975673758368993643706157997826714821205709640531058409985097380584494465524122714547901921756567229728754161966423354496119084381916020214468549181744449658251276578493828926746350761169685297214828873532386018565264686598841014058630547610072331591115829671924923172103321280480851216760023589338545093667323819884989257933739580130804122502327045483765780836451036492645662503646953660313625059799349289815627857081904722872198144375105538825384991418766034494565963268335490652878480810750000905777472007294853277086815460804724811318685048844860209960216905912631992352873420525440403732272392411390828360841228692233973504448001439909761459330856256200655519272715804234155588613548960197732474804336204780954205009114304580461024558226115748624368298656627769320165953978070699407233229792882531761293654573015867426557351847250252783744727166462702155425927758905688650710054370022726168457945991588643509687269020435787546012740790505033310642865729186457928622611846360258258907710645749769684582833603253427284833398061160691930946549266624762689343807049869017271973802775725448074303204923750935233381660180745249836192633255812828472699266290598495733639813788535238073449519255622523873928380788864275118432941979991861009294875205303568843223398944241909516049926061551067246779152719887142190019769892220576654681082088022999324761821895783656410386590699597628448736613565192235468115626109919450764479420785520172106107177566142632235632536544708797779643010271199024449177739851847962370156634589270934773400836355142814893244825523274304095851015974672249637674576658168111592496308926810662764768463217179760654287767482028558428571583053291723353616386875870673870283231740864718861329278057629498154638800494502957415726296527638846482058255062545492040532738425887040285820680626638461052095110663413155131212189946076990716609396951158468712251724767323865542436883966410792915503424629750144765271943101975919390378115581462355459556611333795518809191798447966386377901791362452483489247469419877146466010402997982701378017032417943984892145546829325855045285531648106489304867576157045048491911973229973138556902626286764825966804731970608679445068690317488340204736487210539409139978724930042267612097441312843290989908534897313007010036538887060704350352252703581519183655852528274954963063703870424940567206858366669001269624752663878757241623633237806797343795633468569210108782767567143924956112514048836028855989239517667190180972601543697172332293686856521216472920939223426097999870000310698395567087816597035289512820477864556691067487169854341811076705243051777140586117199359096683953691289189191236537339612193442383994516900264778189538562158246130666118061380754032523843478957500914906501397978002604604017071388997149576909953273334938350534570162463822115194138050845877505815590091124580607923990424539846292134882113166746077903605429500790606905957451210445283025315473058221670072461858911662669488830838400505282601419940618408279890484006065326274725784820598082265262294991067257950321606426762040891120811892642806051318682042314330041989333018181009679585004331251112897750430150103762128032605258217911245636344123880066147841446781907648421160052438833252608498877169230768390130874810735008165622395778868750124979239514853968649251220106549886210999637810752286064553203719852640259631417168112476744821128871238614719805994906111265361153092938425545630467806007496776449983157949150032409979820772331034073335500685452670767567144675049378138391185087063228480306639134066362636600426502086313887537001701643034472355172188241998782311393904612746885301837953312639557584567740690188310553086765140865751777113194291625916058483331906874924500766611376841266159204383884150464931689263143605471478329599201791698879907303013495884957630362054678488253620577026651436840348895214038463385913570603578604488278903769096052586116937302088360606446115508409202557408903927102220219550327222056794165894370209070347663110948316270392142421969284171596280644922765660521444531994564749106542616245762591643362538956579583921378699114111328609391014851011275942506129139931874480531021061517993239323275388510465660337271900058214994860436367678418006408969407856136400441292934074147302608821296433265531496353186267979691543103959804059027838415977269439269534063924915593212754407957512585095721510172783113455294464405686552964926532047292711992406639894160537993776650755618939467314486583476227637439768205733144770875873459923861171789226299555186266604622194998335012790216343544735137570568734557562909552401167201139445342879641150127473514495240647821851762908862543659689284909514006776836932722358105741162445002899732399567209237584703338642366351220661654582366870012947227556825553944226044805876427358960491616497526997606146014207128486160485308707308506355559400476443173005628801979033625472658620870010047430056164376714355605554161517216657787634390678367188431938994670318282122060252971419696360405084305574319920851176254758757077764476418624692067930658396422247839252429826492992885383505423009481219061416776364727580159445497214826309131936701847431006918299947828164826286997183636813363352253124439848155433761156736242355776453862404340159703502449262593539380124802716826479834195620545926592632087358508530602668797491918079605834854796190851908999221913195898489110009556706211364458476023854740247109949069468875738730262088170946953981226717108410303695383971373009515136185260124355417853420332470831131446770640666692661155716509753517034960951216954254713266945812353864293476165481887139155654735041655585916987632764319942834947528006153726970878493721627675080801341112297382824594171446825644026167638563293057958656223670455346347316830572098177648096090309337623563941604925912154539448067806904777365141553353656038857207892255727925017932674648026938488978310897434589966724255530754804180945308310364487140705751277843653855935011121668546225061722164785566809447546285882942057287145128413187676874245710859803871425303737461103534451272719333334750978244783932724225049964203426212447423482971712607898604210672539241873440910161116397336075803788135803018180727178613622440941674064848666331865181740261930905290939418086384723352696666276488563523596903174635805248973160923386960175229752280788458675689957099881802990055045878554052594339719293246189511065174818297118455187495403460337691669565879374702753085466990718905083807515760117563009987088714714444739990885752109825352174275971798716887888439360513537148720478924948836817874605151949875020033512769377430220759795024869953146367781335167969455655712451969856934534593262902804274941304200134793740117006197970998078483167196798926691916657908585159732468417309776137399006038716055493197212549558138096811533773044387743773619462245791973750394774843346569204227187244676089362647126494733014153642712712486289498404011527566339566643636655203685781419574620708431163752714301637505009907537956868188904169867171479573412117668510407034980793839122283613450252793460298015013741342500289795829730638548390080362845055119519652343784072844959454112089846485562964193030907852585847083730767667921869977412412185183131780528176184512094149572526653794214560618300818686476955565338379223995936364368174941216487214440905396611586709901672490877091696143439676804189076937304890415397134693374377792657573969719276627552874462747033898609088135066131542975351882573556218413793144525297735532897331162083164381207016224846863346806752118874606167714430163526987161466186650448888747089432576025658960958581263432929007088135108091460205839215475498299696996463929085572904117960019786762493240392828387946089717001556149389547111650533675558674775688386987425084419424654992248769209143941956025665063848652634674409160842475566759272490343638280416110811212175860949799778011944194487028319879707873198409459964052864494330041280781867502163779693952200064726068909755558748299011700307041175940167565351439232580879634934193585002390988759956768243800975874369511276175260864499475333788039173127592387074215786656192047964387057452947079914135579370688689968145906590477442416808516177827937011214715738764186654054228817656346073105735361835154575295113636066208716862171488030354490978923419595299371886864193110221882759686707427635344426107602122391992392354410072900320570176369949219666708174979697167247279146225650453504409926079165008042839244181344628503206008029160757821823616084523275625232693126084282338605731294801127237566510511816997279743991327346750450781281275042047254679327069988979906653138494781615451778802176501903170536814030421383608037623176931861642589197572667475450649733274895200154479577900115454859188415420271473780060824233359031884124748058704712975942195028084288619468614411332827467123233709694454921651337166855831035414142256949639243846217664671099943351736826233515578270929802229140303171287332788900266505798610342460229391370046517466307088135897317100821438639937398031624176011776860637720906991950383750253355463103297311758453855981645237308078625096080376059376710702938911563153061337102358390911316328541810514640487882804165306174260695494760501958842595717634393549191368638580943324837293425690401520378889932027749556058235237766240677084604319342850719364130999471688065174519518082330386737435812814177052345102250362570672794252446078759039226289103432547056795712230989527567998793915626869416406025433439135819191937042603035455082892090436407590886599622495095522913206124872743473157580856771414977941183332907603732519407665576914133187484655698267650749834133049890428694580558206717295852693653225043450231486864717544950622323055397716250383066569581513460900383179586845467108228065644343967572777911937217208914708491282072261938766376696371581904948353901906402386185993461156468139617577561496245284562181207055663054518716776270698428570841690078415841876867697159909429942118304082476225453347710776111310483477581436705671373492808644211837890249630223505652619733277149802489292984431699378601334163301540001160506500105107021249545776403778075815551565796390690871365345246195487201182738694880543290353241444436606869644110763134682845335973754335863710708944207978279375267231759422828664423029475354041338368466488372919973274459972406732174559531685119774979789506812007101818012844244593752368122269071098103844667797904893111975394005158393131199261060740745132612068192133633424678357129878223523906181582959502777856541376396704040090719095465086343735891208136428612012388913065102605648947853341373926417925723030734230544701860830548016915018177792018282993054686710240839041374680891518655182579110725001815866955475211719405438577850982257979538864653840543494172839757694655864540130208628984677059268063537504857354251773141453158980645355011924457667460202716876732543817585612380467218233482900177351064116875490330155545711954956550214889765098987613431130507898738458487550285194503298678774972801359388660126210456467748731626310084446819624054490906373841000470158797332870613057662376049715000968395065695550300236205267130393044913937313861383955928286546273881173208089552357902457349662668567170686135789413159256722292218079417512223289394740850409647720560734316010732653524332365268650674610013389948446244724345875063529363741445285965503646076453333860503417569732083380207546917581611468397566516912179894143129241746858825760292439154405115096455438799447756351428633704567560444697956161080097261262872905478652069488598438427417339955899776397561444143316273471930840835025340599768542892626745367715415034037946849624901450053054961921606737592000195347976157913630049297184214200781631450077334808499468389891319264841894638239184727050832843760629439899732115548357463625606924860053080667483021629881752559748302095602126440236582771949016919692942144946516769439150592012010794662070233268353263318156084526854002423705758573199552255823226629332647566162587126435614635231722059720763340418140147229798263438211245914887334721179955632244619937108970494682943021306501804563791927912741462273246150738609616918095672718687807085236006564460513558129840433559290643795868142831090434680044270481985505727339047250353092777244786943035227850341866225407279448369103529175951721497095098393631530077069775353211323552053245673718422747756469818765942843838035808585242952182643108849499665465121757917131199707893151264587216412660387011742801074379135879783971655220947977165517796828707437895745195479405531253449085949956369597220803740335306488034597145609329494895171662091730155480710972354419428758981456276804118461295730914055167203616308518634292091216777961573478330362640506291694559999480781096307764684162787516153166754382885440063434067286322984745958583035662558617644063278392149910631383674306451805431218501590723649651785300567182423898923115265099391832611583888722250692193790058225425718481140342416637525551078327461510954940534345222216734071574052305038505790498790432202467237139791803481851708991505918545863122063413396577008344191577257575905056482727524753715351160796807862264088238612172066082419646564285011310076970294968198757895817007702693605271879717155915637368308784420576130728031567885634453309999010515358788738789286433712604748729467439517301446773830868297537659947552324385073358184578893292741914010229541868651715664858478998653349886975262576838839070068076533030695584753957082249111506875855543480346048232913843419543825272716453754227568226599825946596303156601940351013165704583187012196395616948888270816658375671443593050089803629461179115523032472589949742425874889976896164295704245482508303809430314101390515354589621632205268611386018173596549130090762188224245379080198011148477380013019466362531453069564450424895251197181283288310844440747570533729811596292315786463499624045812452285626008299272081346390323051932909176223455278582242849682015775262656838004167297997701283743415491063190438673151436556468452959013005506297262052749500507221188296138309552825709123453742827104353827119380725059448487674924485091181858684560847509199526833941357954250002500646969081690915519015777569864925647213474922619419258047587429134579789512240687880133462347430117630766569922525138844414075236835827481248580814422215874054360847950032281941882086778173862058027067491562606736775063698191488303512492882086924159917531144023084687853028736438938533338704418773099260070427634397440327970900307448667946236159365952700917591322707963235053023557747750059360375755549157717841479776765270748786536443237317243989659914910779593979754329900511005055605809424725460267356527569220990804490226147469102683658231741427824026844408153890886200921364755998400079571518157936816361424206223066889202079342749678102729001761987331884139319210806948784373280622217942618699671032159173064714853462951276917160441913248240780482770951125162327577248737212843547896175806630702727523713948592959969265852685946321825152641974870252971454045300797022975174434753902846740884802527925111997913989663689442219681649610897965465079160366612957027883118418142131155738083858691154420566645240239406001559436610621593733196839061348192583803873286338227704023927823523085054034639954116488531268428152985641298357126575952265664020581221854338173571231444365725336623754638167317558756908573646119624967585108976778335499424783335022055351749612058198571036692853558324411508095887399830534355148605868575115315375084395650872653210677696880934727059755079149983294845972730592143636646788974625732220622668100277395857569302957201168502479429512367922213800413592413626867149100691312886224527703924874350744726019721542487051825437653199138681261026603056169161782634594056501759171489629338142116824374400212706180301718107366790978029211254468872467946915123889125827905034344359479811753746552918821491499110991290357187433670319611801482123771191610684809338888930655838541131405197342036248594288370136735935861332877297875817719504911709039683799977895578290743853904647716166015665039929327443821529015206638566151362408496666368928577953770888052005414366155607183063474110919478088198583617766337039537278541947770057287285081216903095664575076566949368619855981467578102988929353053981196822460535261010983412783965827758130635194131181400887342653918600091183767717386359781315439079102759402251351067257399557120218497071760091119083217950129541699725058979698525030822131205044210011836784602860309415208991312179343139428479944069015254496711947600102475207644093423714272612318118054131913615852425954140119588609946748619150460485865929863803020094217728777433707145981663503588535395664560430145093234151580090636753801833526721355061046070685851917450888447449299277116562834467839071224554716681372230338130248593968911031819150842821098670632634264394882955487185672703462169569244249330385047402718694667986557165222535295361548509026284681615133020426228526310662759158244502613071195204966679438323805283375598057039538343728490879996576701906059150810357626172950277247627006947459551407158350328576247399426040764961083148098084492886047810412988247152456765700204773538202094364479018747243356921195527496932423848537730641678341143217636796756265229803597894122809124363146759867620759659420423845628412668961881575916110482907945209137372954331894749527503504329560115316470294179201283017925903676736114488404245771110133581472448149829886763077170187870773960791672317794540258920676527650163441927936973604083128112732277997423184009806445944684640661919068585776004886501561328129049456724100229711992090121847006234195555849631885373379217656038904013670538280263438047355258690258826610413567349223970141198854386710589981807247698961093963241854963536928060022251326601162859746085228749711204437838078076691744539932578602861583636876612475644914444575640892698686484317248722161697284561869646029252460796117813659116405930773722694788716283915967381213570777402782530121559272540660033594812227645664287759012738541291061501175916196833283948203752125444828045900519236809054134595284315865211854186181876746535920333819460446951391558728386019040590597742388947637926078329551626670183771724200013899111056336884534084983262430973310953534983861297514609615252676238615152847874608350530530236239292337608563195272571675026327568645872809563133044608715842233416094970215777701067167341108379567997276750295985419556351141433819112018605020097076502787975466877216712146410362172784140496453525591442064115318398013883087332973365061246092508724253827020019588417817863966953030864615657073129301707801725818134181887814754731268717059871047778451851378176015944418780633597145335142408605999659181025671261839213413411715724372269456842269209348980072016777602825401376668590850463865103275633345202087728942326771140835442310739185524150756827108083090102993967470606075588999729249433497971403800658368833474713774557334198788817015616616192579660456582206900582229235382895801847520214625670040694566931153161470299665797790503378722369780897172591153164054075831326762418684150597905009067896191508337375537053735952569330400263381667783352058839618225720784961135301637432173221744050546288974816172037463402357747337376213889853573226350027978046439407548955823921310838612526647546436945352013398742273636080037604930827567746821614360372704811027154452427111973240287374418900453030003639706621896722411419633670987654731734688548549531138967316469767372734297209558814747958357881084840594486310895410205168591077807760918254074600181478940977648439157275831390911309440931129476029323559425965667248138434285068380417266819045240777316828634821448982765469283717940446813286445567359144136538840234621212574860526699164051274294198758528377077715492578346979848771240328642203754225655599830841455990524152470934296842376506515932143590389541938055405205123743116199960860606003998607662235280140615665596431576950976939134088553772847586087999533380342806130914141841471592205979649255777627382686005452880316858527850831640384740188371191266734079156238365435832855049677584640647954125495730859298707835723417971443934053070798262778702905546459091808913824342609526915489369153659166417470442887670543241502182082772511328247792984648481157573310893079053858075080627477896685505854127348680271391045734408140752900472345737645114537571406912030443971805746606247321140217524873821177833701950054492807273962197265459273122801171376459843386791330857812999491978820579127954844267429097635645421718277487472167809118366287184894807194593405151489419908052326078218942876372367237528644440483940634043261761002558776101523243510852581747651264793272291114639701982977760509422424473811615319997867190177450328771244498434185727147607990845106490209647008739352081860173844461098938917789434385158434989524143835981982876377174983103055447531023675250699034218002098538393243022145462621636829329065847989850252225400604638487692993727467529521753808753902733112723284220661875256702131383734592596982517765177607772750500254230741660312119606253395740508133650418916089646467941460672743592435117697313206512550031459418969885005406893851148141340290426713350673070024738655434897366267583582111034008332551818005317928681117745580147713044133078712089639406239726435228551527259384949993557426434351940474096759152009126874312461124356592874654690155035664064279625831624560623802901544295551834148531433366657080628442240417494743145525874079463860729446038169268097874526645734408135718022185176997380516732495492884924813504264893307360151301199336736590288819154872665023700240284789623288617969829334422736785928616898111534177540355895084149711083358948892459457748320683958693863094883247514955476954216596235335703858224996742702543059374202734396021343658556456670449616291558386198949839173160786953269231102768377021916953711899426183444475800131540398726316494404664103480836974103793043449044296838983941752918152350512134241371889052474254188643190239198176244633376665164990947090149970007573522942433017460880637315560254397094036289092525564994172040181193350386401760013375803495413229206405323211364395829518431216198228626527660753986294328593812194288451247172679518080495701986568343599017432351033273632217371415760623495523666112473048616267401314844251402032474117709671133594228832216992396897424429017615672770598884601513847331253367474266463372254827849998774838345189732001844990397450232478619270399515522735663479158054224672033037729257647487479745591175908709447828757502412770872523728306447395801862712378715373709951571180582540107562936228326866915733290433131650783154677538692861175860300623533566356425407926313610751550724449025765294365423186450340366352086596055987660152044990090541676170655790496570088282464955739205246994268613622967592280875075834792562631531221036853836096326560476748232776288334077832116983980207986303573559342099835689067256216507516938597292389420622162761931696182441938168933073953046074115814801259720990548667772890095138467155460913294873968249283215341618700447408900145213560617824533642754782401693295490266545099014557133988907404288258512784570540103829274366987562312521072836300915887665801983721590317752097911232367438316280902901879497043318792846962766163975449298539881021374094274223289670078729894021154814823997301900694303617942913850575001067999382113559735044640670417472836700155502479838494792345800322888120887407722907748292900904048248164417877196775357691756281720195078482684157719835534456698329143875636059203209511936151714842255663103602209641284306670216946228577516006948190963778780619407481195471742721739317914850752538593756411216913313074058596588537510180604581876643305783349020481477017293081325997823630611106553133585630097011746514311317184513846315511659683261236208155641676357815427103679172953044809984061147187751077318911396263868908149285368852656220083312300210210817464742011301445251417149571638389830560425062713839067238183844046885979975902798715075354477779602009283973826184861555236887283118467974502203581598296398361643707839216256084380033949301994537425659146169241421480844931449099807108407425135109772177342471596102606449436665369299652016695159667830368069128247214831447537542030808754747811349820828054313654893934443146825566920259619185672363376371639214982902062713811899500433640560741069284315636320226947988524648665068461691575234957535726421904353700379497669136746876089759670403727904977971995618341094748178126142624242746193492644010425803503304932646928032335037727781535239796588543012221825290200960438577338422397489444409768111416479079588565146040505125767858894315915755959458310070177133190305423106229864094286877997854255249535877939468803431963673454465917476230291490078072576231003600918478672284680668124643832325491699219856764564781934356305095070372358908906948083871832604109707956869780688666426500285735103643789737624683836834823380818856756180219904982130919475916895344061705729083289754380978975101148403171944852021754945077551518351835770895928152977097168592106731553095140951012728418166347548550684783491088461484193582002218727270951325644328188405817974744175274157794862854320307602417399149754196423650615890700857818708692690520003057293243341275361737820611824584636483786657577447938075972528411671606221916562451447385147794155872249779042715027550165992391454108184367972218104153346235014748375153424695082114026817307776964634087159748848871512641066941810260870857864700517686461539486730354275366858128332234488865578787389088003471090289610794177378355127706249177259758362607280486585301862864163052694061532555501783811858294230946951111987422246611439007793896442375383985594548101341393432159461050932417131623557667462898198343574184043528204370505011558979883363574077500604097517218024444127052475676676045710592106288802085369096208594641239623870640197566693102912020822982578965982887485514104417422527819107943662996421498464752609109397025928648993153354999683147230263016602148470062576252419438023160191382572613638879366573098450477545545461640340459811757656377703533439110111292670386833303367837729241730474202115284408147202463651368599446114660436985389839934223913159821544096147577930107623490912776923576547441148086883137311664930735339282784567635876870209213014200044975267545847481913347678086199782680543445325403916984986277687926821546943836304090629460214129027465149118379087986041951872449963231211882280752978043008582060477481388275098742254696129391439032705664522121113705330686336487389777375441452309047497184977380409193103560905802573569659721181055887258359586004566750624253252315578347560263618220077422529772863371570833835217815584010168902126432058875872341295281564554629930781864074345120638815531040526364835804073894921183066874639040173243361427713257742874133686068836792464009880877743206124844838581774708952325344352130253277357596047626907854714066909304802761180924234930392413686991009798934314757957829719023050327708379202095001764156564793450836687160218022027182335677653119560808965747103099306821987598429098522903156241180193312483625737547521359900220868621352962529224950536487037167288728281248004754195447337717290121680303797157033426767800935642422300670160042495538501947462740336514996183976023742806651893928878019808413822571745309005319966098506263519080284496776424534984597236887569371320619957054407758751174915696715671565368756654618417452358272438045026815663578011863407234360861987971428432958595221462074522705783362836873408329584163950675153518824112872016746339867615264151096711480480882680130544474875063138691989898966149269571902345254610058569199900949589450910574215479884362882052200597499960357786806426096011613167447395411064544999672631854544874544106179882833563977753786145514015107829590904487665402973382520492858090239205206356855129807633996713623468551206689734384993095759812014397493404139150198238042615451135044509457192262080113982519406271234071937868218515801074700219008472022397022595782958637282307711490677610143210461906502681143432441124952302388078407190766324718384040122515098014541870555587215583959037868291569796884828708839791073185590455152839577275750418251961412240516730514560869636307885745269677730821580869307500992494747760786293872284257178386645489224075482992562640786374514137800356742277376489859714223289416138285924704633561883561544183582384146160841669507519554039588718201719050976191287474437231810742444594261078775719219700118632585615219614114821858659145939916110437505493783050343014869473413974885613152917702559892112367349215179456050315243834338771234838928160818051749032940804373996481888618509847486131467504810476102361852711138513525475711340768978024493728405403545704113290537111029971338059650829856410280507488061394745609831443095399674887431008044697983690660207436305021999606665706016472833736937195731363719424635323742417096891787393858423252200002158737709865996124317377961419101722090992087515929347068351546591320498750080960229530491671735669960880793328534561235010082642111994732022624474120481248085459593831799104830487565741908122570160131665555357021343502593923153458061746577411583955451936812890966780754353805134516936286730940031819886298601887854247228999095027616893796873210970888067497046052414338057383765201440351546762790035969356507067665013495399709493282882096329347443478376160351968866938893869816406370739051708463924693009010846015847736732785602252603135538660944884359572339324353726542541516306333631526209993297580900275119311482085719766983511562183968842321484363713402403954792934820754696901045759101628062464102247559838905109107573830188185509534585070963000217397411236574397091392687626253051687104348500498289345816298614004607322265324252206078554373215636054725927987511435962072180741611786543414555951349671809318982715681195900759842064225597245542394856493402601739744032433045695292866438604577291384093943232742976505210296288082574354576388303767584858799229507110702903585171880521589672470939803075699039413965915763924606412035798202329525979703243233825024260727418074412515155166847290787979946344288713579638030622873615714820246706943477747014872436350704047618637981655688687891277296930433964796359970726154844765224002280418645798672104237891168023869882886290361990854156743321004526085470150574353639572423408527437773957643170794220581198579630041292769643217248063348516376625401218588442872849925274546254904264281090049792165176465331093892759717036158026402801375344672372173753471340576550331962757276957192926428947472861369707872431470240500768448924287117462773671917775335475968440756863935909821400355353300906156685307224385936505742816824019704089692189135612725333566715685328181210141082389745931589734424837243964383385154172853713309625974839813099889508246426444260657659509484845867715403149194806328835296883979547597065427011421430990056188199042586266890351386148174645155432877911856537855787095791634541171717877270772116662913189562377361905298268982366421010822743756277790117813172888432596049160801060914465365901195177785650799126460104585687691544845514279714108970142802163310423217918144947879500825502129249660365639318463843326589818807405709386723417562359747981659780120650199560167499569102679810338119011751314211857204789784924852368972796273194106624640887820222614693659791449563417857012371067204731605209043135389329292730053376678576936090474178494165136405007077134388178733615873664222639463564090574049584066104979322874190996979073521940906103031998700721664406082498238336748141773787614942665011123078352636436279056123668318600746968576399137070606398241724678748859431622567313010529964818540173798056257826498818903884440918490071054392152655349165553034601202174699819245268263160812245879584319303324167439296007954760945606617374541362370962265939643732996683082417544819119524221712516602425831128413356634750934077346254887750441843655787760604291493765908767333831510558843742192365348455469674784609936642987543575344352208646263185863771400551212588935946237242378771424101308443637383369529374244297682366380150230345014562414926960900608118851502260121594184879370426270767599100897328278338658145898197828559925979583951412591531703756576276574523273367276880032027659610970180102416348997702996458217830405824415698080832086248785682637205855663679832605213121851171779133177291366007568034835796927277459442742384696117856874199795330961554958570882563328857221362339089830685864039529322174869468247769382125613842094666425759658625161750602051807887707660965270189312648892195418805886447289693406259998695881455879312598858834305097131343758339491197034833718551137051108292315462497475388943066946912402598585702834797506011108571245589606920004022159016991193631301473891682538735977200378412849258971985625641779024195854643966637234672162124454887241422919323636824014832717382783157932555588356245471035783009456909468415474914306964726561602391319325864545477216322033477388916534146526166135379751403468135240119391899964959819056634777402092326789464425686977132280406656303880191531741751275303865542021586153533112470590797845505740346207734194036264752700852577918177612491887700517129875332676348246685848204074398691781492805602752178649088727785178243050879348100071381312728813949653587575014874800168893171539567692335972142600451036969831929639229632352915689732719871386236902811540515450187805600908830141379350225022187613992245214557759275645135887153853444049445707257729082721073442886213080624668511577398271590161943152624061643016839859904965398179932555605973189052230360017775901619691776012381726194658085865604183094874268599659600696409585704367055646704732439421136647822099780417921356046606601614429300065482962803504592108750510593592528048380734414075763562924901469835027011761202548122887693924694317882243588146864782026179413391972229271322381326813914230085047130254723851056565390551302076201640079384223636013676378957583164012563168408995384838194648955303120653793990400200282715581101350649150480633701039971224203167896197913306509452289190249838653067103362841233843955655359979244456832417048033807015996112163347340613744710402816446973162862900494663852126477032268607709236025279633767484458191406976939553707842670453776092505256735026380669056102651348962698074050191102988286316171880867858944834266785546239490863533146165521995378906858888489966621890177897196177757033513834497310785315073825674557622583585567396546134082776450305164900785465083476413997528874849924011565220256724242728593239259116747949517058099512190480082986904787153442386973363817437074098282907315982925942245386233812180339613826348653468085754606239314518154264077175232801969601016525458361540942833737008644365845929514260390239708341904996898151222833908141961195591681946225323055316525332119545789822239963915124241037339666105233913579521820102380943051483343022733430945526008182975595617534306116968472528576836056795761347646988288794156771806904927470723910356153801533947355558012626577165388075090662211923102614080436397196352412975376575729900356617755584061773750962842404852432838301836731635085268219093040590284216794513251727286195550096862537288252523894780412434415072111171863689527393951223964729024534860722512881092041552309434107961010337690406768001679740658326224652942108123490938217793165381737318324116333179223706789272565515771890202761383497327599976696764304813101327852546614049431379325877981479911733159300230145184688034227191979513388319546530231735857985273838950387273608727825739288521173854466063101721811367865610916583506367380079275096484406328840593358188757555261027292802598056014171499610006420198285986502103138591596268607584175124564504897472152096477977111879888975643991787084829621881242235969533067207481781786721898733263871535354266969538911359283294357029605946707370749205763957054316613881279831389225806010970291017798129631677364802906247207891235753771823098147966595353648734093293561528103268128125689993946029084300121757856584562694980119923754225902956928152171548704380000957091532155259481359412186875517531201438117759735421182600529294306931422602134114303485968394679417874137355735906525641494484276733658279442275627185817341511236258157874350876356984468679908199281206443093399088443010918623272826310845224769454541782738521340112612824507545682123429551403704414472171760050653739415270235072147273734540904213317556392863288297025556762608697146992708156151635672479323340532135162299613078362599744932592632522800863736463096281867625686605622019787418504748680907798536340413692835997962611052578132575067031850204408631016138704945989687518118561926599820274163958432815775422625621813497802848468378353312577948445727219445268277383804870767347352767061467020671511900405948438238475527082050120915185081159966230853998552874429469143915549682010507962519660229819220468888802217229355445866516919466977261754281308066391096158043862327601594561712800687213250402128511498932805479025249755240102326215024888617784981249925557497106991821645530985814308951144941484241193015040423930225864131743369106020783507081208501551720234559547538373231750792253747322207703901811730820951416951233960726551024782553378971265188382266626191027342816083461207321588411317043424758874740043423145606093209143943216924326463578488726832847628689203828304765580493129214948681430364970762404346630418497641412504136769155492181075747999891571375292542571442138519579577826044282967776725680423537526019465649106366928655839137831201428172462633129572447954915645533485545211631944091005663688159024799334585716956810032376877921717640731839182810781076648337548335537273420631918119284742646265202570263436394931915741909444530841567981072086292396415323364118255399796795178466331070263385849607889971035264758087087693435436478053742278761933971563810831877256169786553150886761951675531982034005216648459780994611165816379686239283951471462129810468873167922223998320347211450617993417596209850911026226698833248344737906485763899018784462749114214291985126169571170420133938567237171323793092838516999091793826552187407575698256365481307264286135266839474243847497412006343513221544520046136005388352122858512195858614431317035387045917311100202721335400228046767205268053487477818558563913153140873626628522695670130525890309137910157028166479745241212301170508029164790900619846291953459280920659788137915435896268966297241711942300266439821845356945764412412416190331678549728886978502452796658945233485563969803440040077544940604780625136787509140904783250802647988652139269446278783725811599025272509400538345058240081653319804694680254207108780157947284943597122217008879427848025505076535281293414219719977939626817665262478740058423283139339927124329987768234832086333727926688614660867286437551189797304082947309758285756517716047597718148435421181853795720192642597012952884421835904988927612687679003108495140447282847652197127278654136687603082928024404767215997777053114492268357607709666120216858177781437910946433043129465330254172042908143438042547673518778092017442525001796637073458125614453989564449647333959344065168213964809289384607965388610483862437810674582659264579422288931554980448908251480560234905092586716554088862888815859859895064109175069797778020208375447898623207667915626658868707918045382692152327727655012796057573672286257543857472529830480238969907779403789276131034768467513651326255397266962655844056878278918597047233602044622666913970355625692575568161721839028627021874518631020204281367553671100806276511331493558189060902916902884237597355683729804733869819197935871304396839312201883061847928106130387597658915901639448786651811227193365155782947351473126330556339906584732744795051813319261333506835078595026575518154369346029926579721713929313185826831965583120207712648582004164440468999060987125151510547387775484491483093412718871553166722547980102437567536493024280092558482948355086418215233576484127827965758550198678215620567388198432541588033384051773752249972726528189017125158862391737663451229932089985368428998909157918732215507928516864613779993411664119524869433772745675742131425405952804475921118516451250578625189786034948168270786960107198710702365694749632976803988873731568332664413385043902155243516676175088938525270223896522768198602503109848442196476220888923922754340182560315565189100131736687902975967625093498445319741495618657679633706146248545715290510495166583220000690635637415884098724544578685999836640694444463612929673042722514113608207367872448414230433056900002616591427985238567808121725993464451746808745501658131539009750587329977173559908745005312680217553001509618187055845082619681149945060210484786321362110670344230091873048130463717975585746462335338934318198097076423962164254391751351993176519075506250419742065799673696088642746100593566383749570659780774852177375526550475920559736869500309453948195136017528609776794253218278583556856434846547535092719131392920991218625153243366498929121465106644597429629635760928968914775012866348767254439250721127176883384908956948957436769640789105854769621486979386918511870081433015420887147552019438491680059875448387992271575629389850621523005659914156578104638173458194531907452553444407438397979579759628491921902514079426560901925924087297434480115059987732356561800253146022337407517367097705004968834400305754906989007419072656667748212479936628643920893194605346468644904452136253904955212339006689626445962878318782647468426948085502022140569463518102624128638234084004099442013866036006384820430418562778667117819050994466626820159444731425667465680689784244260344734554796201365506356314952198127969263062451119810500068196189474198704830512408140727458464319697615280131546897334692791817466058894374154870529538898054674869770864880303141111196414208122729707137755989751247194896238853385752974340613673965040641932539610189581897971298442146455107175071826163317608329625131586403555795361194954894744344512551938470123409716171401284383598832182501782199202768785906110808213139478591123450782709747220932915425766152384950838305613030815309682184945795953596039473197665089667518600087470961942915948263821962622626292296782960812600583163968676595993751134839571370505754888366237276411307441286059705846989400701556607932976670891882963534225436500991945940589585574898221254081321486275912506130467310949640883034622556319575697111032226463863612877507254741733174907444169093473916304577406584630637173593544825604417196961482887492819085491993070261408060683837279571102219234661551042755975700221825913623172409383740280609940187515879458884190135639485577185934372662727480006609939258287259747353766357584288913301453959830664481452234906885740350494827091908651669812282666097162033590182238609935406776540513522669644522350193905311331819425021389999096950683382731686472547712708668647575804552363313448668264179064968533258308431609135243649432904039745967947256923146625175365800332484269303225432844642137519942855383902256006255212044453917304798743309613995638783370398388680459773811803098284839368356563125059566315445177190090030231155515665625999173147751284711293358397877413338163810096085514652156354004471777369580568186573276880469166574228480015293581999121861036208767439898652575546037469733737140993393235933929067867826586156957624412910790339097250626276528763230824937371488891289199336414910319173115454055614621820907455098253816476788666631960589203322798730470081079561523661182948236160252256223497901008184800490698346070548213881951849113639713494963343534035989843975264462848183387637127787987386706985303004599893220250082738422212049627784571297570422046752358866542060957126402106874887067335751796399356412880175465772381233225275316135191760664101620010169614053768181308309698808178367405527356955734987196291377122333945773145585457915461992925706526964376783021353574125338973025038661505733935144898705392742531061716279067497278876120105686094901981808505931856983595501487423908988221988392572551247185710246430568602637530116219390888180765012396674418497496028119568697272348748584294408415788746361135531641471563386678229038737865915892613806715833499355652394691687147842289947118666516438434761789560295063171291358393909600258178166227123682019282048685036962127990243432268170365295310541804716645112576565646097650846146772419622561838743376605687321094298429466646001310300954060591226623914426205989031962169848517117668131001148155093598548017271829562635629533281344641783537912098589564225865186714363927607422428191104261227698749913025249711814174324071984983664338818004756221868914620361034059025340937004711205118085734984061952320504777236249530295048385441692904748384311325324667199622847247918524288730569232355637993486982842803371153955861652003893574149051177078301268900086021607860579170661559153998392578057308977304279101421915200690116894446549977632910743442526690180982130035571007960273231577052073501250067087651536266375023748483082237078062273871812612882284118276241246856767255490879334554404054907749471521328543737200760172685331414781791774880419764620418240701797732570223448245398812546016916116848256972045718187034592154691308815173752847377975585349494305327063322675477283486723603675597913660735150230182416198363205625090490852493072171845399317275085272775259519312557467147913018795672369221723085816578955742644764454820752510787049269290911021566133143152941023325060176560674564254636055643934402270955474162930556847754996981394794360680995454452367039229666574859588208645177085055814305025352129394895906835364731252668473502356945470677627429501694802430082205246005971539876701062047509151053134095047707817363806709801179338857990697452519567305933305105141657866583810886871609543939666896819353766503712158660275607463791573260013668723649394676139660157107726025424301706437164965214389705922843170324824038560964778105141288086192176921027308274626904478424069800002020606733560601669350672973647610806380014410504441313236707374278662127138019291832632205773381902308936539285094385622907840281894111203739815883336754723162810426173086192406003539566483541335635207066912034347429997623955209171898567719486271008029124526338376743957781933836711578048229318816895486683785049869227773589051843208244386485401170667643725752552275573612665910194471884297507026192676061504112387883427047850466518217517454854577909164858562149709965857327499268423445557582480749691239224651131295545519874362612311631921118485300525286294090784493861520212622888995143734300149526346557518987243708700650991822626620295297218581329947563985165931663547497761796326189693119438726467641042969516939721999091630986529290886747598412529264607801518461628259842551440148424669697054760682771834554231147784637065321377311366311481599121974954018998266902455416190601435232365598097456953962006745680946729730259472457099007778056190671482247222148201137623421612572924749547010194822450270379602384377506414684638260485194678931404914068749842688530264379260616240162780021499949542432789702378423040771192277957817083992832274197532672225289743392420704343466741558069812874766617634735924202152301045036594782712173058930175560264730914336085379189921440157482103810253886090008187190577014124043179977268264229182127509903777604069781159953721298160295463180964208519420572942803494046646688946783402380243237305667711760529891733071944665759740178045600530820965484026472900892047367476156817102735097872485449027838277914568741166237524063795569111212116631490398178404255827337927685930322920587744187816800773547994307880176437292621194535394610695078384388256919760315979078258758527712442432880550212112996042866586727674717905174637625269004329672390477348055181956480428565994141087139333894151710617740497472004403375383184573073329722243657724663291813366442556322404751164997655075638911313509476714088449361063406083987648956991629269258544942667446038492672726069070975555424797854234535872951512769334045577617023815685144535480192029337902564964353303619301779529571970806251869173471101661976748705392365692850300012721040849514514302647107372050326315324130421819971525767960300556066477177394345229171641324071652968609291938789672424701953005655399626261403093476150289096728868392114296315939748723742242973376530869518880987791241689739385149258059505758327018540180056459850786010856657509233952491847063809281769635005525718614983732157921565505914947877398582319872852121951728850442222362478823958317915818257311222190289087171767323803437072491369906821254924239166059440298384728378010828283496325662836576777915576302967933205147532083386134706442536430917780472669936686133931949781332065689149828259343688732451955895643718069484097369622881830631546184466113780640869247586583333112520167931851530481098807047093421889405234810404515924081657132830063626671771196878097718342426893637163493638104015294539375807927911433721546858778881814293480705991631897285883053743895281822899574833569665304115986966979760269427084269269795579188428870600000269741802759867762141124586199761047497980874012313782058501451263242775554252406073472894070907846449121478216106305119513277323321230440633684394743230113747186734779400559481314814895781588093524346632566311202992349166772760811041871457825138694600699941803281288511878933381786467108406398751972016761821131698145634999169338023082738097415244355478530965370647533928499674576957737689726019711789163554547496246047211336668995990798831127153441691591666107247330326324395511064675619285570773360902453932302609071574552996986077151327832071823864087270651871943185361714255522850047556623334914397774073049660994698962121231460757559321838169561689247587952738443040189806130357195933145717641630091526352828817191412209619095899791251333196315822751829451582908580949315359386561918544720927391858494831707486970472279323222901384592908450054317079829111585290461946890228024598897988119726775114240412137874452709693275532439108195263639246836587739565161860322108838474543269692410480144867073274291027236483098417989764569143789649154569423504485948070510699672990796489828360600119520690694448875782922107236483038228136212655241356590388383773266789382447530918023396262345734465202619444315898164228842013821867020057696107196532119728096339035044496939017554733925006193126495816828503589837529208066613109145055088404642724890216165772641558358195912886882588687734007286164971245680754553721006378202343127973974610322327278652422950231556939930081493257107100085041989558799498834584222415356461856196052399092846484202897416183469319822280934366429293583043027921516378268360039460852039921793199943144254249120704280786773547933819847663666901761431436849489385116287699249699791810380429363216616717123695846322443718561964163144289108517533064627093444989842770211521858716101644880501139739877051723360335440209976874259440452010403334205777736370267879103360062376084839582506622000755321489906900478126796894077567256048095303146088132049461594551632228729926408428178159738373455056412504273325255455256652942392542441930529635684744781011892012393531089461164917375329210916768726233949746724861112400565652729782611695762192404435414731368441000238438228773900782605501607647713455187298815608421072102411254142395046650298088178585590020504496644795012215306533205624830927601164487804378984690613900207742937611744543597423991349385526020324356495702499953601676734161283700648165160170902126328591383774757477570017918142214652493604947829590131900623850126368231884440550127691049943020974283998884087119420363600312543404743066177474801206270000365384594823788429923470118082738256904684165936393593047254370783399600098007374928762265488593026420244385398169468598307097366845500697854455761986210669530034579749708388056571504140037971715530334185433923087198495998698897269345639624825487870109542587643896008760995158099354796847426838145831664491547177700742565947858885119757872472013445844226068527942739590557065613720798390346315450936974951527099835986946066971860998213572965434280582702601923362842588375489132866730330200104218546304613323212184475407844770342108989373296241043456625191675586501760821350021964828341030021066946278106267600864350170952848508148850921799942286299511598359258316393340076742323627724439631026957191080148035420861265109847589297268084182561746820499392688567714214722433519745251909480282161663790885802739823094089851182077754856810983672875859833731854563478274432627429148912529642318001172671941691174013602069297208801287652705754553931926384445402752260310584785959931811308759602919569228011044789076665236188946952053961411827747648962746774487931428395099407556317817114557863828608376073855289310138082977683666400184016958471253344044197203670574551501895944753230686092305584633915034351063034626302322768836324871699219451124828518493273842792318991054958951407521174197807252534249761779519582754669256016863651801079882005331681934202402646735445859456137185076939172370879439813843919971384821110038769717170822104372110381681990740660961185309677901728890160499913368306879782921330034084548319084331323903602850191572272151834012436302702172760327959089153427559024896978904965974546992996589822409896933968664662789765755424807903125284216707085751877684672178242848338312784081632474378141741111722116731723536545536847038006032485146746337574597635404177149044363864278157992198420612817562304579146644847493163962593453397648636609731146214041186155344211735839101894179262149763883739352270103042116188071313687084172292275624975778460567216359162971762919469639468986485333780640915434379676639700681993945335015344179006622359104088243683244914581369592634436004607948592972195684335914485004382630028260625593775357565917235765752046023059648027459974785900320253182789492158837668373083163213958570307751900510661658413641602444575666877351107643618786348823059912731222025450795760657170739049004212232442436701764709009003371090720961207412446477214512588507437791196239782753741248777721236604077184989591147376327440922595134260097712789125988689407561735405700330149984642937153150675797421252516627335889013114747681463879876268525173140113342017577394693633027174373666668792350276007416628538020122281296474786504231846158592170254298772145492926412943436387239757376416281975564863245030479922343824928624610789469150195702492548984854302875600989036754479282850545126636484840267137986280171909538194109741953598429537621816637959101041151853087277911564316115618632426439806175825628049737174099936900079837147950927698556111766480647532426579704837444551293211868851195031422077544529581986971902724472725166344734863613939961245536352614517095833720522076082915724480944061031088916043303854368633060457120775488576711696678476655879511357390688170155754199822288614791102517218661216237127366020425114429137726124394242205867536246886802092508801555849966025170933007647509643880481805479547358168586263116271545016947982880121568400092517866013764555889223055581958010073106399367358486068735168477883664721052455073027354060713595550930195068350818580348863931165451719910981131480617293642434876978836971094522048580182158806993080159322136610705217870185539174699658503255744607523823374488595132396862242506951563249628304891093836474964332442400403084025725386248240330940938346863599209604475781411080299936822545767405127546948971045263371665079088108713809749950592288584695643562778124286781433941978599401044330411128701453000116426633359466611114266135118020460054023421453225462501295561438786437675555614119745729555481700281535006945837579237162629305213989517949444419063975797494100283438663593518375112298232484171776082094594012621432884268703169315914180141212253352952559385767560564654323458041182530365474045028025022731561469782059912239153007528573963063182775639245948817794213253508303403709465047009081061467106466218483718805115343543484725227432651773451043546345936631844582826515842813784223917810195867512914091034309235221769122990870583539002588309257580280333570402040180561094240843423158792352213737595269553026894889485971545624788906936084059022647987485585729823167708438854440359289983865571457463307398725428496869220558840849050015314694803178039334632121316985627287451698034135491187605391561956602679087471191532225573911888968603561822238084736707054667749239405205449572760106670688404421885053697162496630356393897707302720699848730389521158897184316904883484197885354226985285268082263163438113208599998420658124966825867353419909184542370209428005879637523671971305009208435311347198145545957160592983510518191296427604072167682939063929059376730835426882743467367110037632421370473830351100709217200088553824761835018281249970528647002429065367734126508972529768152355536792618776117791377070396407179864218241162913596430569117092740012242667345071909405336955869988764597298135237722470210648753924225062889169104421765162264731796378359524015763053027745146817700560192825567771635288213171965648931956237381455944115094973372997138068966289291375417451965810113869520296093280930442039888252927212032665248285028227285096323355285937943594426546543078048187690684202278110094660267973218307383468297944933603992707959750574825807720475802920621147067408143911541073671584939924282515817429444013782247728455416699864238758729449252452770610241795215285918851533529338215500242374279782361330955594602076586981656579092182605623616306967410293284732154708501091604069052460880517803784399170278324912035428921634467916064349463620098650215338914370139772319255931916213604944496514723486410767633888675767055206133766919341295344678798718219285951834861217773077391772991483447207118059878370743588534833321509471115037879523352837721301794615741293942059145959375004063625091324713055839558928156894594198722150342417713098864028560856611124751207127466866074832951058240740701833220070785133788588157526877797407930454744722949056784640441140118504546531697158946016713293993362695158208998173989390512362759679648127653330589010107135030205260311984216705613455470560035469762069857691167959205638506995210674129851930004382200770567457360691179465574830886271846639641560821447902438631092688896752054335237828953781100793991906361431512278067804012702583345722950776388432385225460857331297649424264253535376259551643004969720708530139481908624481494253548871007523317657894186366614186151405611162109446398670935862294665893437927591278935930700959026741398443364656765775169126291215026558513621948948255025112679537005656821840519049037923952391337873261648812839049806022786690326127084273417423489578131682593794232086980225533266006655491806514621170868109333434349230998993117976359685857640868933318467491612774831008592648344142451322615455274601809788135289467232656216151356447469196072589315891400994090705173788916526806043413734058435589443359837268544556806608707990111642878600416069601493657638666974128648613057306438949162434782604770290069122065905952914434663401043328064405560671159330618808634172714684550411625779373073844106614972470716615482547910321307074515144720963876105478750538005842228561533066850035892252439923649581844786663915185832410767873377821165746804041605835563663250338462740075165036328408365750624933285050319470561433897872960189616160007629823165156841927651157168962514169171146751195325387590768877173901106306455312271000865017346969195689525933583231581013046119942629179815344417641051530876086378860439371952982125786912277053262490201679118993651202322045371932568138062405031419515829026669859440496266287211321780009857510992851005682678007557423123173391745972315857740209424200524108404010639322212093433796983936793153322535791286788555302117528279876218654916397730758906369627834235919445501811535087274822511105584506496051808876580988512731400742499599532016880381166114928178710194194951436462886248493564851094494047890334643850933463863849813144441664230288444191583769619006873265388729883635360782147093522022092785611598776066758958853625644657211928483904377910837809840650895957953158934360706542761844591831236684227593877762486901444769457392942844110730181654108295807388948917115384274329357386211460963128903330555741368076760529568115729669703740109173706987950424951049810042451224008563198776592768199669491680034192273119134267341895697285129552270507409332073561985572471655161121978433211886612322036170816995944789149029702223264729861145737220342281476263820935506965606449407898582250170827802412338607954164464117350727139795803674562085794611233025451070012165973466926666329391540607297150788628498336074878305550454800760269462836314320355518886229357883784526681657247803423749699664443085556732810550566842677266639662051587962317324360594683067664408605706621435177613461181837663188465813678164189785926457708181257309683862775840917425111200778576419095444247974281515435528739107929476312324622728488924900777740602776576947858895346406430155532705747002119079895536475197767964737072485338541920998313416439532279881448381079656182044392683963805868314890457913155393089750110077610334332675482061009915949630114034235412025080624851210793185132370697299142282801892359286747066368784535139663744037546586738885112102274361347677348819829939661380619368238947401049655558655926013649317664516682929577420900107787425873261388175198767860529194811145887516184823399872960807232178591337933820420353290706490152745984910724096549768891684433928137070586028030206756429999123221324915202825644295914906916051454280621291485657825081417114672368584459407620400600593596273839464479211445516202078529424647685482289767185310293400129921730429279437641436073385440474874966774444562844417000806864478855457268942924780055811870942666012610880642395224095143342033963297157675492807323759279200391478189180678235401103746904345683253024930103575509525648896319790510766953537428063832162673342704516996429965602169229134621299209307857889033637081868193715093688665055343563454877043685498106454552027227420482650984817441169713974991397206206942132103872859703285347002840463024491389134618715290550797972914592672960809412617816398319354778400741563216242862408554574212911654767879083768502170645559066122811468368794818506201260957841340204970997146033783916410610440824670947984448238847710828875607991181544614402520499991177615596876887360481506771123650364136445515286782251148762609799888376552087887296220764063381962624841329531092208837967087357321963852473222679268445383853131396230302692025783149350653066169458580431567316843854355209583828051508850522032228412899285400670680149120385530610589894223928364941705516661432647742563420427756383435484133533726505433003174498767836111837966318897691415184748376887251940417646963874238320715950700262598866310114825372565320626934021889150556035967819995620692120131763561515804257383374402216576502312192083063087656654407875018840461160885009098882702242306880702214926792153008131580565263413457604088876254776536321149755024479974068539035416064177409738223431918807740918870788019463605225619181047570352916339188991318274695075892404919586156841901525718248217225274503976641353923748107629764233784400996792497910381441124053420841706798678136060737191671298296302376098326945263841766755473677575002060959915443354603149112382301762102801173576552653300890733249480337898052093343900650727162721788381966267753284711500622537755742293241226626840422213374289013512109195664964850723208611734668457337049793670525425834545382340284662790902136406429229034084792713232061135187931970785877585448849710898006307025306659002287932830907875797246791299968579481807744371697201410700952218253468304928269169115918726957681803050326515785412366856871288925875095822564579420615619237466965155051083849349629943026443741510678857880057999222880237679642080917671334539986997767239892282147565302080369692859070387398554769861470798390051336302094576401560445884798973056728728026482011613401742088679688241322479775129389147873338239815769701118356275331458265555553684234022409332286647114137421794853184681809070009594826114450698293501720160969473499163594580311061573592345334063720871112918982348131663684602078866978691798424664350930562111627402362064708298813210534175275040109195616584101477092319402720692604729962176108952043734473266809604695149292489260895338438596704401221705384006971310553319610691504135086723790444127185418035943282521627218925821654522407242777790580743100827757066396842563958999072022877398423693172986773813923741066229242180724286707048057566463667260199930678976050851137933454374502076834373978621994400057224158420427397138506539364068965217735595261021887712533588138064003130773127564614118106692861254045713990474643259570186671691174839243819676285275695762380659389417263419734079688359238935577547635873531740937843987954781808078466834190490550592992069443690104345921073349801751616068801336543730823412186370967926587958365363935608228637587727228867948137540805504925673864784947230184882497701274376232689268965282202100865328366644619646789022987293336233772599250865418705683731041076815735681894273664643313175643476796373682000150102533132641333042767534051671701673759736613102401305712634460160212213410685220407086387959512255183944683196943737764897638107391261272369063116564083725444386932695123422343048224740683113481796836900473541881464419769455268121855105105021885800758641161243816726444353783882484617478377920699585783668593358897034354360996171316768019404719473362971525235769736068130531989170640852560063558950587276566318036512303246468109354146393683029966657256631079983669016761819163060285214269257733666799810727035344214826965809250801608719906290124738159780473581480358462314840789781695529083933200298505748502075626700993799683821731670737912436980949471998354770841674410857342626999527825055979828691066633896522440289486093399462618217292806888993915874877264732666762043925931280553843379775121729637873617839974196130566044573446868773512185449015249642034670291973510622458156240461064447495624971467298156317932679139078748268847436876955119119674443050262700286179510608921657257927222293474216519116181111865515640518997735774101802733118600682292968526396621868591572155917526210094791619752252697919026434248423433847281043696676171128981316556773701110516703225571102685327362577173713704053369033622988798348789660893084379746364225210786774591175331736550102199062935772859374725418607678220144585724339184553588090184136057717426686060917845031746124008995435637278005650136617618445147700403007038113103992665782051374460021934918883389011581341850393708810180241752106062900209126651311632679862693073339704854860483882388552130355320035644806896939893844667169988461689636872043399719169464533542382272682611878160028310524332182236770701188916429481333281300091619006664332803857069588613682913807070148743998786311009961502275329145862097483809548763299366908494152823285206087226206613745973136974037872867390130427228548459184455285420129009871205347200969711737617351373447431919357288036539758388694936282732832803626017344685998482182345730738689043646325221750088937319222381820505571143429614623537289325512090445618992037351670756134693068439835516574107539913456563934592948357759074073039782300040129707816747318750845904434999785013937877621281729483926132707330779655572430849192755556026358855533817331408481533917095161816790320491771303625769418302593444168520072529021323593507870727815316696182117908223959256195091119840712079573711669017252493883587520331261836025454144664813456177777248696808634316699700076235108539256459268907389082393350944290139715602057638390381547490049239673279727094688816613065188770696221427696189732044607989117368891203410356092465279424308512730019720777754758732003202563288808237025698591735843115478757508386382734910419646369400159484994880910450633832408954912457306386186377387342165269458737160046532979727870657553095245164888845729021634925853115051976189385540319988250245839560893806491030516065036376732655675255459173406391270013003895502913081750318551961943621016523905006884353334657337505891572800864621288520426618053376714423037346547450880326911952499193357110377605347350287492336374471109496163835989142371130441553227935872110673914161926880512237793259157104008126136199833845396094958947543852133054606636632019646213494690906623360475098402058695497263192844132112275172881893030364357169259436812685837065401572043578079720305620611149199536442525759800641459567744213075966872050614403986577092700137262589140340670818591620933088037106154753593228667214662395920823749976416297147764263153505438497153577534129895265819183830846980880292563498042145939880082332996380216854623151959201923624167753014710342938900354028899224740071321006305265273357562902304675234328497469459721483830640849857438207599627404644242071334404437089287094412786475109409715237024624331430437466685911982915074640038447937782294123568847212682834530988717835319858797207971045239971764135497780616753935810725138902629303234298084808628209937958992987981516882428905078808838594692464160963857199970614218920039101598379847349039735107382648960016816405987310748882477440664154540906615518808969672474968589116133555003761907553130941243679432228320182280650199262815667571146909484932721071795719848806076956221195876437201629435433076224698011187886842482392827324701866819969241924235383507264412202208875084364074244043793530051942729398526878440770677990038007779971244243247055869221692927991287600107570698127675521226566423777242031018504001764539083035669979985863605200017480502247750618909392707432388022398745618177839317099014139992903144168549353381719628552893651489464206446733266648769470054068902972567747754124261681402649249277235063498090890475390429352289479609666564356214486791534745204490407265175470069629371571443202817577443700965475684320761712218848560521225279310687874332578978125903132790172641902901234907260469006518133721411108746615807538907961286729738176680744545019460312171074162092587869244457126589224177177282100995276444503552086496901529557219609828748023782030869991983602063890964925419033107495662238301474744934902164720531254615318630053832732562942760100202157572110482260743501108728186269012907995464682729524796678504713563837151193381571672476977598576600836676197925605951742667714757584702727339059756476034873185446284779249784505429480030033082410866023335618348892730487093418691614643980889544791528909631906086025071595136665965736756694966762449149875289132130418983443566614319798937657340727624531661941926001293326841291769840153390692433292843900274738766164424737107534460242835666734519726335022595883886176841832307063978492963083160518024290152562553347780785322887949781093943337785064769490405854918025996348822671157981690786298179629030283887430597616724950838758506329213417720159494907349244409182133462112700199673830091779472419525031788005795119226721653849402889871024722035699654993194470268950786461110842978036771257229781065218060785286050968539021310707166378344440180171303186990231647553027230977332927586194079881861562362420507229395674757872940409213456210783536235992254738688472932429307988399664207197630094322120780454844163982262729286104554723598908819479695946980413261707742598387347722509087496034076114652533190041592754454636612248568434371064402346926043343553060173753098150600141550946568664480978851837573512150574268929423926017848453782005100122939622088608715304354034917146782473509421350179661856240724896689779443095704689544424123099905846382748483676724092511257863975153004970496407397277582872195993014392174868016441387332295531553866637886823499319034004737152937184732237928420522394771709235289850543103698537360971987901530921366136466090378019592039140607357570564343188473959818801151835352228074538397921101314232965319684075760342445438434082355694844516929900225531102772721250432344506972762835013644809535390940442073934278761135784022022692474630144480210562269742275515013028499192621691911147006635184781885762073406376834039372603344729450395767206381637022282419544447172660757864762847432597705295501150665699621629471576013101247924044903589599567217567816946255547084489891514014569256842212045698717240313757118920537000976754543326828051345744915295327396803470913546442749866785562309741676238876365871810634448916472976337671893982061966392832233627940287202039428876284565919742906468860087806950569028631013807179508249990117514288082070344284870202999603066677998936870003413119813498040838366399267141149451956024894645125285465668909095562895937583254217512206446105518752449862104065161337913283728450821557904561081833661722646884738626872528722502152158329662390711902921901374306550753336413072300632106867306576449374344335534799172707411878403125176522904324943434095329258150511287166189503544793616317705190203235370526940930791225787283636997048784657595659362060082046237437457444918829217943829527045621871939464772687942845893313664292001304999811596215409795075214708395248665665677630163507501414905487167800662817124478881519894246352730533404420244976397441399805667631904649841153586975814842225058455212661163633261419150405303874191548068438549817473035926233365562100367614122273072196519908561145838889197084837389878952896189536979568008574044260173544766216174650086366771652636183270247182796996130096304656238854431612461542784880730468605141738432778271167536701762567017602393511670377475640197849225329776333234473250483357198009054175592245429388957428049659600704967683532764089576480787512166159101806366717171423828942411104715363239246671285735327744943702468104215274972901294485745197401389917435592976223417098708407647060039565244775345762609614107413132487905885466922429270110601478723926499077458916449407888260995847191360861036706391766790838946006039382521472346536666892779507644921476046272764507130671629987410294979375473345038484249323692546476454552991588489739582678303296420831354584038031594504165592135180192480074466011597675528869015713668455553387948363433149555279413506744722954133008874062180610874758391246864763239356122132222103190393752052829499363123873001402831905290666316505903576796214653080926735522945677922428536781096394357593331104141017005884794523463086444792971809577126290554189975554646497667411509823182856035196993410774957272337228712780864811702514591208396810360305620160076040869635878545090035793172245417338306100555373921521675393409757675024605499660256267900709563530133274511745732363534654909201273211772498183314528183007384718575727949018129130073005527298232745002439403684136576819633785249756410329514864046764553951251484069290841492930380105862093972253474067294315590326356266709137418494234079695386425312838150775726441846351306186343389590907152697246025809645101266369904343443388579753188551804881992373967284077130569473202555324637724388089716362706782948357161008103838487009785926437347640631631126898229635702624847859387026084836932179810441265555317640194691238864232142838005838543102160270711599767597184812880032960855582813674439169535195249913421570385578308368343901520322952854833124848209101721258008553687537835850789106266269341296823494937157661956030875713745880537412179047772396436632098753787768937711555444692924685107559307709306617545017512419564372397897854571445857146200975087137729658733421839948472353881086498310557130417817592068203931337579270807834526051663852321677366326484326260347954795395606174749117762513659486365739374217942742963184015516756706317134715463246986828999472263286552913376613976936312410027788814263351633329673539505189151689087940900098949020130749132494640638797355101897885268856192838393403543557045293309408662203817018378258279456755912873596903294362464509448014530536732263608360636162926277689415481944797966050484156384796083428734478725418824908226006420004842462684898872562310251027085921641459490344929484714416674767961956759991911335565642556861894978343736418983520611867956763802587966003891322131960845868207968012258044477595682067770283365213938388518271354288963673365631151290528892124502677228882369609359145742960918221767616660162620255945131113205246922299722773644015082617819379267325307039667605373469266177583608766727448839973367320219364278146791286970689603668406046396099825076870636698332715765973637856274193371602142204665464393216973371253416869145259239584224478138384352040043858623872407892418294275538074730269005329278841165381148073906431340982859959149043689552302984662990440306771021333141349054238160315584718066749935775097921908646502362594549818136463925547957796683297060504666136654176405073954139730814758012558860003839826401668462564399094662673910542452195546342371830225663751908297452711649395128156543909759776258191623098873507942621717136601471684624326094371600028952582355156572027390485580982189982942897302455750321229914714495518039871209796523279171027792813122047196078661873585648536668183039959176094667445532275296971284733174476251859330266124213718575860462417583408903144346836288753866033196189860179369470604396420875680881768975870292254165799827465209426332982939299707669802836911164020001063305437860356225214714182522119543003314060105358239291829590716317703250208931387153041765640846456857006391419748979414190710930439511282885637260685863093621385971348823154918304302923043367180989864867154593181587522010221126947978945748625367533533174200277607080333084913203776865789569838064106328959168456903466577872377544880844043855828071694249717360522508131811841939058861449913130361721568397409622509558902813956899541283740697608927189536999995431767967555884183329864390719467029086340359702702875355512397681611267610907648628170491102954067466248270889480347865324836085643404496321254400892408049398006269852381769969685337200937001470102744352897779609713117761792819557044671915460137343309753776827146543613812534975136237953126572161829076397984318917564554689146356433702876017297962317547201455698090855125400996606049150854207626764805659434264626629667092701228083959761660011457555104908159771395436520000918116613721765506201624208884130498372220648845825997308261698818847103215783732081020545644048212147189611899667139745015559958475263817556861096920747418269379611241909677622503343219387214428741526342970065255346678502032547784191963363377224148482160927891215142728077635837127527235827759926058243787251330713344694642155836362658659672626162508807335416624020440495789283871083948341191830881015628363978436471800598848727159793180885495192441679675388174573137552642886320267332849431974576727076702127104348686963692310543601722153222364888663587205332691365850541380414594254396508335267273918715567089202695315973319334674310966921583394939399322142510024622374162516389957261948447064148140804575857214887836478221287129309748903923922425468838660283178587376517069455050628373156830951141740313320128474844692047624818420868399881427016559243923268200968419989487771641651637717825571360311895564478778956975415235253212369517015573941700935791359820236415937897614029924758197241250906316173975696231142496535393280922460009318421267966321550665431326731120898431484265662702226677427623523858486529630033391546045171188833183155986435797238972261086063287898283972150374018830141927457203003323770346676390315595160362919915177837378514544979080045805759418149017455976957616284038321039863495892354237498806934605160579282116293409670189969272836170697771715229170466041237303710703831734930516285999826900487879014209916838038488192361784266030541283658075053554580726839573660651005671397348052794376801157659170128555586591372870419598766148257820782645893982095568887067267395675494847862003274778260458808150302908876475538845696743301790135775507429234043132086253968507213747068094245039813812227536029716338822713539549082201359837921274444142075245788611562062923219527103254834547027289078424666727923050417103264889288526675715456854921772917910636259265063491496489144778119644623484421943567192411245884843029000515007158447141957387913494468358948607390554602399267029953500084403488865920945945899865211068048403666471075951075526950264926974300252605423364136665710690536263042722136329795911697209081022998498258656524158626779139550802881476283755689574143635686261640961567361581337916431494457340631616452637652060011402835287907845541680992548248981820277743203627919691227679452255340558967039906642955603380766508564186591203215106513225353803807390567794366039316248447569608892261973891639336398990519063132685782651623998763685652255150986025093962101784837564493303324253963025590034286711771749851930514047380487840290119732202739197775087028136623225276603291771955725859042195355083511628137807386391796000726314247686161015598118255796294202364294048639626011763170268645737553895382128103926935958021645230107347132049817379282172214258231020214026862084451451423731412016637448074223854731658979666301853573794652362867896906695523957365451070069400905882655497019849756875932352468302452406607902822470269236594996029597268123242839689811327625849075875898252537778177505266903347437694793281349025748417014221355439770794162929293789567816754240623213275799261127988295414425680437844220906887664161271601763923266318649506587243876575698008129276946541336300764392988540990842875066549332696047474230328627526178035647010199598113637117422660391909898115577030610375104121819888402812963996169598584186070125204713265741930246573982734417459628498096456159783733099830558589790068498661367273626925119142560106920044600384599688920768777225051380578066037512204780205760310249973684459770529726077305548346720972644059439346113723321631751406754951138512203394303522130171293057745847820077018747896756447522939671720615889669550862295511909861336081327298321407249332725850258442240525030106517481016143515088021689262935513233444066881065469084253581224427398306701282483447527987675210407261761627567561418886070867432192815435999898089906310181841379483275643325574294576437260586342392706671767489866737715388690302912974784363610867697784839797055096543787581426163589905477563502277256306786404445943195724133444224494252973737788970102497489158397139779949579006511824483373981532670475153703044231265508787696898090752991177628398168946398576089410658288855322956449733233254865430309279818314545341913627407396198602001054314797488755117654484531206546280612463827942428639182412558688752395435269486159019265916912849099501256052306352982806547545148293883461835329318134330184599045143433191131702020580044145386302175973883918811700286788041289609696687325801376584920110552118677554215622029466622494825348158829978274764703892077943733878668926775912301523330001624022549944503682404908726589981321660098799343016981492160498912219992379423486005490247855299806813689918891242597880523058722910108060744103753289731985989262461806295862272146033036908658195597195784775410490715661817674503718015088384490427116849870000554591813566476334366203339114919370629931203370525780286019965096418452132041887864252088447998900847154707780137055220111031241339623779400950909249744502533955682565189971843055871357229888721006311795049852279838436001845909006383304066580554418569298989750945160302269578065830788754819168333166274693748149450873714213765181806711010535711327744222781273735430653688958641574543927901855530580500392968812080292051221286462681291440004084867393314912762391846906130626975881275752183192838334406057616046932216258120968507749726033756556692189413808085334426390206968806477004438587861633742820930804042074566720706784018442573385204191321910454024700948398984180822976727250825782829976042650105419542182302436428327418566016879754243827321542401712373810804165085003664252543264750393792782289388079800660576225361634363224073070665017165989572909227665627505061631604016520458258444445035795357900561449370630817157483657642292202827281909217872765280137550691956790728658379754733077359994284437182070663265320050374966194522271075027193448277177636288920922464006700833654361685623023561789885073966353138689688747292045315759028726118005900309560884036284299506174254490331567492821938113903052764516693270669543169362643286086879126104072622408149247870581868457687993428854361776548756332899940317582894023238573820490418780330472937464284483638609934629438578573682326451789194234926429964248592422568623118093249456495443713027099036919565998418014135658872188997916966081034989509730191272842924840913748529739088309851695889104461980290600679183429893897095498312106147854401812467979691849773973820272105106514378700286375006918620149363533375253465811663324620773118218269591126007280882685476531688430889128512371254205359857643836148623109349338186083555095028920282770866492862422794246963420027336010992977644460766143573263621289432861494562615802390709260387766622759483297943977770853156962467356842452151128567879833754845307230734426224201512862638783778710312348838276286023704012797713678012267531234812870956924521320114772723300347297096239273325248183771479295806997661339957857555068472444303243554210148372070743828117710413891419916727315505145195509351638409456441224501372596557872721847661555206033533013655852384074006535924051115640226673464194195503254986343218089286596431549914450577975841947928645323254595469081428247646359668233160662279049340304698151390623931807808807851579296326668921951403257793824227768726705746305682522156225860301775720896401439498210757474080561948949079176817696452311327160851342884582061239253388816103253650842312436296015304558419292320454955865824286689340967679214991139610225096393899382644545783765697800752404330185709543511056359874960729112434853153528823041571394462647063218931523211080969795396301327641341883072301521694489612190591209468631075845253202159612168177588539059293682020385931731097065035679425798784374280715845793302931502840500937747774921536668839674919499544796736516012754887611152360046942432669948350209693796816485606130417531581293906471478595438543907904804606404202557241879317864735229497068219199439205293981013198800525761035218436117505652049033412215382407256328301276117819640522051630707147225467767693449963708146129535565362633030927111213132859765947005271672650033180421753981573668242318719603804401599415747815572205348035322846733473365657394649745406795232580363703161314502618723113434944544249874217039701560014380441604124849760283356059066626822032499093161191458123422733107123425061195464434010397429220536845826295284073941747258028674016184215327304215357443463556972254927811632944937713348834599163127390323412743818088224662044252044890826549892655822891709020565116083313003786673344285749735056708898764557042769915013509804239028146641549736021474499884855126967100359579860071590713786833825097670393349603581153418670848541819538637718428890286055899295772245679605188664331920616247071763382825713883705805936715778021444160787712372134050046547970564758612376185470687927467303279323669327106406182326903279682394457895404435370435230353436803029988199768805558553290986469360081952458068168990014534717443669111456596343944320530776571539037228022957525100791025304138538310541645454590948322010682700575696652952880765930923156073649254576991669911317650830569926540297124541944013984222131918738486622508790842117400979011294646808110518659234709273588345679288322415535863369428244717542436636432853168844769100590506859296194064853555107941736222360269335025823095905222956800172245170793066758608376308255611148556063775558882600894510864410014073082092206925244392683249893550583524401040143784186481465624668310382529408905948167752771117743657499741047235231074814555983492047318751653169240330440032983009706629590279311482160543154850567542316276393647551072077754191876578904905280183123271357052311768063048150342432218703972012973209196631624990911431393252755525416476210569137971889697889187292480498133639315561771267141574148590598543413105340249885160557583370675135513160462388743315842056785430918694783414945755949971437572018969185914727994480779411347203248811955584133262007285970656515521127551002770434258937713695965254759187927515002337956054876541270321612706003717051343471850515979638577044133725932436203553347414488196116524780004111693828590063114318266867896618785897469256881202733122855119918646241833178284758525487211781500004516490183803707667827689161414053825684877060792537005738793735700910606842448005957745499257247803836298061271403073628714620749379152667814986218682179607850759438298695813276937478489662357895908574637334641981357510163072267546426396493709192937932148161530891840230459493034969336824275960040162004323758218899496671830869641727570486095373540875316411369081857058881844731068008106114504456059676764560044251962618540033837538769505422532277712721561431835332981573301516847863145804098960089476414551767614324359580351075510667824959531131238329543311133385381988027711427201865019772474806619455454929493432098399543768182454737882943249961957101760109679506785006989075019897985145893179588044079389415231867082776680536490897160519159820555521953108071491449592417117742732859559295866158862313513706051048194194198762387871749618284668258337086270071752678225314930201856496940735742969845894244622213163487147862642823918035867607922414391708887058221653157669383662099196053865455632882068280659381687969715189058813412394467969653726741123397268600748929958007916804809613419530426348242061632889152958208755789758765099289212470445419505676452278400803948473018289649279580839848359967552571299019446668530173151377660186838408760719731289897916079226667285034815762330047833271410473588668344901397785144943404131819886569059696876274232431572605650374695492609162195584595101466729360781335193363505455216431845650735149088422420479051634717378030816034810457876949835730951792590222750718144237840316101785783653686827157803792740166255047560811020772887593689269404919035462711710224645879366194717715058736705499492233487463017894109974697093433824575623072789184595516716838083417283491865331671009824773676440301401599137282084327923166351063635607188462334824453819396220404005913757090746233688410846271277437755037667636098732460285652529602142533741065391822789758209786241494071870895294622108713912212726177297853122205388831607220277583035455672376027318013183672487982483874263310435853077648423108826454415667627044525358127439178219154590660272786759219454118897205406017811029656335081661820581654014287956438865091540918936718517763954199573766343424855424784021431827092644512674079511913256779481457229613178730132013415459867084557237409335331964510400908272976527617439304019774631841116915416972260921932129239187465050190300464438029341416781830140994413556778029784243925122149334134435240842938921072265944127358593888205565243517163667867061984468367284429347109120505782898839595234590770813835570765415158003800026199777445562933591990435620161885054733706283618580922424559717018420262661623985567633657781266817737147505629719370082055186018889069448248040654362229302730585586716397981204455001170923669282746009216921593464784812677217451009103458321104342690811094618715107766464543295491633167995624081066465623038074151457952570844741466075081083966671795975661994819392464028455049410422958406572189129008919018536072778595364480502571055514549977133244148884740721206512522504083086808253232259137679884425570054383876082286912429425525989578977289525372128966396624923883092298808066800105183019235701512486861729993435855077843796171763888801879988012765815170189109593333341651286277465995157775229069338784275098203060491251305457709345595074511685865730078208864380917953282145621417567827843563834103351820876799438551232468011742963709220428925663064974764959380926975962676439496403527328038291971400567141917389979905169606517109225368594290056487196208137718110535040597381923557096626193776880926466638858054350262905928514607841934878132970527885169518323163459581624651146516284626895294247520308463781367218267622447705380526819713405744205227311783089238148976931685882108350290662923739382479757169353922796462799238939596058639246852689794780796945779923983110368425073800860628043672660047776399010907126467615333017863845655846441948657345930616904779966243344342493841165482878193941972212900547610761142140761282041914671106254404024595404681319140916732586224965919185191175438353671046010314412238498776170650993129884014973399069038124573100474494217147990004197005708722888746586393686502065871463374814363123158856327217118663616035815696929139134888639322779694737808168218592206582790071126595380858463312790768281471253382168473831218257528573781677417615266435282557009476490901959944445899963609972182406627211090181418894930636521144276556155519811509165214047247066993706239457056175520974550595780454842241365332041158014104334781927640582016748050137579817031214319456870226393982116182434900687164740061329426507678315849839619569992247381531567871897223868574768870734995706956333964466393088561987527833556777714335321682212929505644138661668713415406418893401785874103952450592575395932269415939171393786248184550733920864788195730819851731632655532206109872149742871527518408322311172031900011828647482700181764612012758806078463502956615816415596521595678734193416556162663197892378449115641539458324095781910039421581615107045626700388277740977223282833445592038926795800531084780552634696603088068965500504030003157218267376189437277498777587179704314429652500808269368276323549278338951744926514780999685940563607050937501315660032934953237110581280854321238449541120189113361892901004118961295185045571767334025247560446062515068255738753283276844710235633138732960849192688579357377185091799126475597419910675782674721613057374257914160191873055478344770808384326497351438351011569867783190132095975950914104743970846185449768030029215381324594529461901869561682893747782808920263588143199278433756133447937113945652001929767235563016459873056310109048448541200914071675882418898014305733015403022293369624412310552817633339501433923026767175971376356602162775498118056243780193639568489572729825542665947939666272948576596914258517863702883107166094442320091881764054797068420593265904639645592658812673311411674078854819856497413078382090230881700041140790618542152124390052058205397321640364091220201021370334235031960446075159682421494586627170532668010955894678282794931490872159535496928739596852986794453941046099533045477170772080036203996444754970102558802431517370954106897469018026110792215689073467438194813424921560512891642594563112199083946556943855956194587329942631606653928447637468343442191011912595397343234573500530445801856489016611119317843738054247438083259542648877738524833392724772649082552233836880048532308738177936603567925524693583056466865807258571901243553945645163379851068819313936032146148346774864439362858801805918741215703787926318709325873185402352361970609321765772884953575599730493483564948331640718539430795069042404398908529148268086051420185693436889156631465202398175565425445661056336348625220542944308995521026712769727895111057454716090106950285400143012736405991948047761024286338609016014023144297509319829528988838649218774053019422477277909695226105564374400886945493059099275593997835634774276746153109258360954368889869892048599246651364747043433170902208097798112788878689204245130679331408816135146709319471773697645765155045620770924028524774689441605246559606221481626357674572565613053801942562065626793351550660294990097077765999038647647584541018606350107092673822566746260429485510374755807908364763718596048857342688086836879817286980525422505320628143158136674052479858908656171931650110651695428380903943246484472769009391613557176047469915349452910934116056734896222375224877168963201891357768602800575507801906284432281892673525075695547544143962551966528912413228907242453864905487744165430835438599847645700386393484370507669744724794761437609820259559793433416572045407312736535611770087308800587323191417289646084678616127355110680773350802839617449519977251504360176316752746616438071837399383502534114286436269555323566247157716339102919706016364377447389503463588559954234395920681139605182488522731317343344217200420733107251160604150636598912204547790021781470020110954246923462652200576151280789737548531816353346988847246629405442798804111919941784845007074464072601335943715147750370142845460601366502003084436489743198276693879656467122146397627266685243843830222247479584838675778073056909130755029834689430750812110506473059186159054379759901518799374844749333598533199571414236728118570932804445188578352023532021388380722720134432968586847703056702721270212431916676320507079277863100826534295812229448904462395280763413277788675697116307066804978999167293732143393843750851515306508792231291116220119151264724751151753246377890508785414196037875876066993691497983129009298103259832426044826877582922246499751963950184930047008076730318875447892284234778648783540603595377069669033532655137775887822613712675980104300525115163399970449586196128014102365488756572946251004765083601581936722335158628432228213147370889234164598408348216026816570386751071741205178821820498761673349526412751313674082680985772736837940586454957666358912607545969358286797186685633032542111909860896639655472756015718082441687221691891078216650995198041416712742629892702890312891452902153397773549403960775217539303304479219483926662156397251067398787252839672223647469220058893761828743963846562006447681585172986791703624599917720387485735677484397685949844958372638586574082732864671794844641918762436482595239374069862005164992431280652976131769004199407944966187695079844665056176025768947832767897631375457637786107824413264727905114705477680643620448460374216700586903224976826649441501954564224838631339659932594580662185040572224924547097526812589922872631380059561872724732548708058958287846439818130330030550597773583492997875937173942594348414510530978660641871384731449292459202006161121692446437454207929454505597946310611954232331559960648481609143731205302972817180641068392423266775979075408653563674791659627381260656589673426888637707158086142242981075168954935918178418917584545762031069702320418361686547175581513371427278865049199572475300768243147981385216700961123081192674857172379534231012627642409279895296986078524123941854124191216229457050105964651340936373220045024824579006579919097643574691060293182886141419476484228249147678245573847626484236329746944180261495678382002489678638142517930261381055363025239138724301811677850357410108661176340966558453904908472523413092333256659949356045427619946559808248068022270223701817442888043741428247425275196466135235175979917396922379471172310283716433535022641655724771823319364404254484468931122899288676632176321351520769916151823094111526720824126770140942009099974236277567480626052734428634997035488794609695603768495056243656194571499610564708416259484692525019854120581281884016248245523683678643982441875339003530549512757925915518169917863844461025163034943480338249653145382052146304269878210004673358608099025818187418805844073004773585018582239671803225112336977978928954291641918815670071314452685430141635567847268446554978971964428728032561170130054471133034922390167365666175391542031105605045315929889997210325325208881997074876106270365323942274427227330805570063502112331010776512359708219000149684725702204122661112349123103379441454732340118687338190252647443818231838993715950567437540061241911261536881361665439760919000339408343898925228853333195958663085315161571063172164426677359683118977860711055986101539541346881051369060794444297985221772080396295385601753763946834976929142915168890190857228409000911086693416389628462455828367497312117162051204909089848930643708508672117006485544352277981452628274931542171055346979214887286499154622546642745567271404389118882787858974748802204611853769095429019424888229032941569794932657030439451976622992300582091727624691478206808911949810421142341214059944125377650054285897229904814336492163864330622478284041390862563348115602663990519028005133661013445844855880695227504442281280345637477620213514032023394761625931429718898277015602334361293741375068014546778968146889655679869742969509570353413253158787933537991077468067413251553201126313976607415208735377098171050670896645199830027890327810914859820000695114477607729957729454129059708281558230559199857863293190696967234755012985093965430369866908015766569451809434795623335271113479754309178481636027682120183159189191056679301454016523360830387201390772034677731757210410012841418895050566548624000811407975096262024800801838304118605693797628889447131692694942794773469846175271722373930995890953356899708684187451403719129504952676343884177979913524802755911163624417576114363027823881868728544199326445960390805129720428890474040889147480715991127167846882958182089363634016161689697441079844003953625915203963149549003175048689460956447182875733477068371058422828024687073196303855358118720018936191919645732070549111533557535270103461571895505316817271114749844191082884008431043992093399934135064665466388999123547485090622533350752472539109446608977227005062579190751522190190872257907005064779559628563382766674390387193876948073266162766913931556330759766337497948075398851556821944857220561620611352262669303713388516059477901373856461466722166671672081277937450183904751937238999528130671845973641220322903065982025568471852072929927991906249310361995587285472821765816085504979809799766354941234979521097114900441737261424107892459923095611430025206822247955069986931507800460689484076855852670596364869388888181034521801584920560273046634678776616568836943518674723638203406624757129437852326230534878828045193972396475219765357268352638808075417434924584008130393395821453041387011485711774040602614378079098179661990307204656942162993660690142577606803241435598871051799317987168562873085462035437964214079527601060516329206068627348865317181179778192959627841817903536910427463576133330970108920541882071454676318935917111596884630809918167570043579718922723135123451314680223494511359867521874792359893260121869994354915660847606870301342261884010490904581279620722708624505086397957834362111636703913742274073045967563263412465009048720970779271158868569412870815406630761823556822416696819697034272093067625090137921246887052137123516067339040136446220217464921018059002608972548295451882078127425770990785118099449237575658057188098637745685186880029176239045940195476675249999690625196549654948245037267007338676701324438696884001696920406626963918757300778297796467351034073906894873830955889253888233803751119848495891447961720622332131625826919404138998743709373653824440730604945155128469821510356804026235903655902903655625676194752889778946382157110500771760767030735966256084557083552623685130629549195109577145076425443071135593431676016111989351465795946924180733740599710960647583660956059936218524206453249614447046046445451645154140223753141383214269712486623415622032144262038652602856930347197652375393947485498272766794549424930235468114762602945117183952327946085630906808309740577849570820983596341127062212552289024602815530918262624939514568710899158380046375714871692069389569308634571723847884221505272958247246577221536262638483313355155086064838643898558628668683086656682756620211941943409748834916974372993609718524501414669777716613332844395032271357729016778871485317627038581115967596261426750744786609306277323466284537329473419651171419259364958397367905543114215419949876243228625730587351781647398459875517056556710824200207329211444292429504174375751715567829693297280064538934601684085713103575416400562255473523623677656359036581341828658499239441372127059042943530769917205144915507506956532607268185404310906342523118171986003963095118635684910842687694377538942357744511635806606061163309104552778230852951860960234936954854349036066318259481850473090574402915222156219578665883728064748324187180734830130790189799098086244512133160780026575225893156795757130643934293603072354447312101413934952590849565475687214082671820153375492141720563431364912183208946211552562181406229244554405733213917839635680869451052344579067543381274574875165200970096040307262961622948717763284203457356949875577056645949640033951552762046778284457939404048848675867121822177418495027219933538693988615021912785630687767032267724209887784137316875089334829580717689614015221327057100344573402819110162387328589231518521874480854505566704545234961906916751074447854017000687689250241368873675242592372313593615727878227884526943182837160943767839580891770336063526669886659770815351642160789359125172228255745829003750086391944161695757837316012908564339499489279113089997066472029490162254547180538869741061926975725102567936027242460409520054443418804232559836540477175728874827172205404791657107825569854916233955072782827420334727063854421031371589187721195074257473978894437627047120433672026405043667881310815801901190162701164260618640262939994738178706504910796366830198267024040694958896073632694970312213628068005257288665733265352929196196119898166328943808525558058446544949122356604487466511032062420106009681442288020860124765438828106029397075200760600631772090365885816500657469871701852043273392077664773683546510766262645564334110412686512896520091177295260227982096866039678243600739653106932567645760585458612973382389092087564869778936471347743677023011226455916610461139280932797494995700175243558852255632141722919607175807579264312778439246065828523214484791609498864655563770605112655230002418529607046612123059048884857895438186611729363260445449116509867530398421064478347863472726626384313938027415544884739088336816344886545638741995053678872009793033809582784303857791066540918190038050115048005543194337778538089773888436884987958290021171498373736717063869463945056645664592287319752192152497621402490034907339241612372337695318032525045379236209822793938298889719999117100919731057045670874029111155563769970307995016795966959335167670951161608495583632162894751462578220098473016090769537435735657198285631245837647098285067420525774621600661697946558573533966047258398996020291461128569153258295537085444968231973770204437489697249430191611137879619570621670782306223327776016525701384961475081151272741189270269243154171926167596262149711344304220229994030681623334819253616818359899731271697710874720408011549000311322592783504882145689015032082742688718231076727762791369365462011789056634411187837017637876249949948183578785058692247533499031205361615298209084853263381882732190440551136564429363718666440167352105602707762989741189057172370253790156569602988432029013457451288083840277897657540866204651669417587151270961260588462219708238628417738622393092943794549353794796210278426840818897243564513565570665541299764654595989467033819312379301605634247308179811362050892117568905210183527420261614782595495205134927209675511561123903169751994767276983058164527303530741176216907593900183425355984153344711230100714012249336350252286304326747863880621622896588134536255750281899980191352567073773125559771416907746874733242429570461007778492340777565448206895231281584689769931605003110264385777239412426169410465873611473254583351297137699003508356353761408605293963798830720086441711162763038955875351467187388099103316647386644873033133046459642841787946702374235328043561839743622914070013462377727215751135716487885094442583491213985150343692592463210095394242031976714924009303676891273261896916226496393599865022146174925654307041049125189877915792703102511485518309260402879879276036660431960156778332249669973474877643616092388051423062298953491596607143686341508595719240939021213543731099875314183630960740824552260386560570528771313066175527268460744701608700689640809470949723919572401297813340938834610594998134673128626238852982076745943579074462638657315219573272056216020164053344110276438474047331586125830247334133539365124835114504627444208605465356880853567488866032452155290575616505893781546773503149369590470735128957938153199329897744560061981080938751746743477628903352603503330568682306269881877100853578325765448152691778042177091039706616330346051247325668123742051947386935976272592205641219839428536999547408888121625193397025172055470111601573358684011354948767525022819597672370861378485337911542877561302535333372535053559354707788091455506300483589872119100576542232338572374008885338677172495120429745330732879598084269103172478886108621909662736334708579747468153067380115902305397244101781093146220818785431720474719615506822254528677141202149846018353161472113638222146247126351282117620570304366460915030397692869468129102420804334814759941915151501891172672077344578122848946552713745760031765794889552988782791340941269662981711806367979057409915529384592348033904283334816245630278173889990063788836337637244997403730609947029980784756402446273700768449332337067945836439027285782542928999936982083782746511218346872247162082363019393699082426182907602761256482007466797353236595671804150884196789024382740581243518378586112664670226193117025993805126416710977421229268658777667120641516201720806888001398375965601862230794875210376565590165441134893749511032234675513480145232544823172204418676987766085548714433717070459050440588557862307026719893406346069089244214467883379584820406383684137388641267584634857569455003888920329281599017056492977202105787388041025691064711811770624955973924164130779628949633682672794205191998888122114033194653192348033740749518874212491330706140973250011745332773944985217058227109594822875859930758488445423873280291327356777882537645199125367005979186963988670388901304572118435805654885788627081037305891629189180226666917791002674719080319687683839874504733588863130810586844896125543968520839624970464988737169655896491616353951300241015096562417370026518334109965370406918363468522919257112888644247209415490040944806002410552550100215809661140627839540211714914713679005902953330480274335105780085927051617627811142932149912907521657477955756505826340969950474785109118234947018302803714877298238744006216610463231046252550100262319915725463297728952014151013593252293458140950866247469452502488324690484507269501371031122844893272744517920562691121850425363022718349824885432077982215781881080617321226632612036538432090191683016461503747862921298613902860779238758221834115819740346193074751199853662619118962867173495079022196164485430628420323640561382464836342849745740036321975593948717950419638186514935301464834997316361749689737414189951126670714898509529714128032307840205062545451164826899823633444634269636828803022751324979831556614866267561466711426102459679622964360132997874535995993022328363538631811862534242044682062266515962559441103268745428683292752760897270545614448860515816543295889328551374986166083624860425386210785952369483199966330018841887310603064577542685272563531867527632739506880548811048540459059823121118427851591888474528007509210976748306861390745125858172550390082675058771899386728172698554516622171108785558499930536842545780400665387740809707950212472623665417349534645056689297331699272788208952694330500135915440730498868118305706342363116613511478587747947758325552342850599090141603496573805980545314866512911758127071361490318227355171168830670771202584377388214683540095803293697686579284033088214800048527722106168338350588554195134912790250298882187942822914374606730556844428601797009679717980072419290963463659650834942602423115787015166947775146594551158983186695474894577380377272046905428625583979080180724772164269544323146156314331632255709137216591990631703292665113496419153687870585729825765250087738356976204547403403929227269908152720419329359917680084579485119587187564454108244576110390025128048616478394976564096903700879051334052156653015170556011614024016204454733059699101439361183826729570655809087026377917854466174903455924766880428214330581264832479039353562902960278800378686159831240088553263291427800235922649555037128085154917022642835282768500871693098725929432042667664020871848606227187975576281755511589690092022000332752629571962708004117823190701689670819119589608021401551253398494200302422100706854418373442353922957317465714342886123725275248037159263029667716290142529324398171195468566017170578750761682175749169307413795489030264027524387958897019101573021402956996665760735837631131082328802113845596984644338528055698407941378173516805376251048383787956667060501997041935795051803874807018982794195627457217566279419191229608314777771715357795910616748464217390920825916761333522989995425274064549618197322943171820939881395267292819105488383395193981337177519665595097904458737724539594549930374423740191333373621351957836210704254705893963423578500170634264304302410470015573915654848827470564226129687713153055326293481109307683320488980553127148353870243805500558087577581621399053766892641091230456827025797174570306196486799521758495635640018589122040197214756717765046520270111711544908896200263597919500796938997300393734453969739721079906645652797715772920649081482439818520941767881827685646610132371432161447794971363880307660862612776302577788325088340715611638461845118424204086716046477013808974617734440221337738811324472845863911947369386580892921320847809950906662135972027608224194012203683861133991721185374732704975873615753351784879341331205245719585676689732179514121954709056240269134552895855893328071195980603749825950060150329326804903558858840027022722412682287433391744097876082376301499275234402303729566173087834012892595883967142505250593740881409593739679667544616377307535486476503424237092738322237443927607189470316466200161760622556964731745557878015974867644920005304841951712471121887011322715093141014879966308045179894932245089778305853273461438969624430152817517223036603955301023602093606331454221074792495949824544768584676902454513002338763741800778279890133166390369936293065587688702458480495797282532242436992248454161059747497970895533317409225648353767970838350442899505543327600099787290805195735840958973184833058604006251990314717341804791694264876882734557667688925299949483710570541275816905933876328758378096902228357347982646546172848192347638478400689066826436843922516537869487276051487196379491594710506657155398578659708145646206569678048005068973124145164987900172047787064625620982217339937453942232822772726777109951819429992370810133539909260511577051206640634025175093960140573735748558696230684415703623463168014588871486286751782877568860098429358973120131170382256032031473581125662140427700914779167738522674214108174856406382340078610928372723884009602487932550078605493184884517184543350993250017401443049342588590862227137892610199262409290880370654309671911419908920508035901029584457298486646649293190805001507215023972084093892460200638277759496846214612323103297901611335508252275651982208009026809882086089884580988084619671460694770163917647906802652320040710650128890304799724191300054291458666636720616402355834337020494038076542388318933480975063277134316889683557646888907301342652150012313975128281717975680289912126579924341327235092092488351694728344389921877743720612005300158729573543556623789079816775358748562366553627057282616742520008711630640174404142602477487007063610026652753712980675038268469892303946241307272555409577800076100595667811265481886732717322864280282956196144285711299125846421824820866535199122257591105022710284685804190051995406110607459909486306955061600036974713847580098519143928036257863338491483338231748612080025352261423693272281989533867599106908753292388929490810130747409465897206258058780576407047240627188703316184448886867491450278872036788696881264226757297567653620685259159520105936245748654804683888890754236414820217058744421498229542727747678195288944267911740499835363115738938384097279353951664292955726979514760735483137355120231990676883022028224237017513211647646869409090730349505680524547559896834378421023402799750410021853724830839595882271087403840363974786183746432790444226906508108879932283254288280712572334898503012866900433485014128916139116843114154837421519926543767977317818663127773918156056045726096104497012823420834335224729312433465343418699067096083890585449612509114170743900383504412092390644110654451339186152247218543742094614244145242502788360547890856123952887511157866609889589582067120517992649592210387183339623595823264277344348354486363951080737591270956462914998293802060606741675781278454368819345814521233702128712256529687462570892958725895143143612331412667782038468695634315409943793120495817467552918336951124053535928070438776839050265264995794920413623157560909770357938136162736797357621378791296579920906083478600288825533667678775195766836845059094509270990972061572663706647826180367077244840118892165450677563451710771660547935840784980433267274735893093925249520794567502677107340911786971983372105949615096295598294922419957323646821997878916625938741459342981317446399456406450043136334597644134894287809926672423152655644679398197305726195195519537576716540156432611784841097008193535123176206225864570113458116279341386566277146154565246896108136864825859262557611983904916846249240995745130868909160971257097757090838566099660442877177500156518717128616943302892386067822230922119589538209863788391593863948847441798942459874107481716332868945331676022262415711034477372932148371094179477455651022224938285568497076828949695868389078263290157460243600382292122257901323060274549167753571676117453650390564961392202981425282369824834286143168408452533313210396092548497711532777427359227717441071991544916372445119355149503839973793909982778232777956526269157747622845042576505338042610410835795759086435045646881968007139003030051596089877519074131888149692294408902850300015349819533736409015192193285854166905068171977756205881335538149805988477676592533589349084665620285427317780546395614450912659097882936119773833507179712412644271542477875050484300879466996969718452906757385756636008898237242320874796780350918574564554377186170172957303381202406523322322869600436965292291668061601226269191623357445503341025700371203849689071473306594722231841540133472673860658857117914630323432436121594839242562826420861842331165303002768536273115103600506848036345231600147104711464870181364774546631334796587455146885750336630254589995002537599866222661553848163617990052911028167715967095714199119168454406755531947963398346478183458562895692660496409339264731759488368705150465375170878761874896559120204861836605551789230639456316936161807804964618428552073136136661280743929084165218128971042860725243415341762605340084451529647542553720443202699850853017070060581096887909862208783440102797729630516216911941977110872466143731369054197485111314124416653854093649978741181176403268971304795143577236485007829916484252439575140202080631060071430313654613477661906084235511848143496337494829495151100437758726139688942224468582734917313292055009843364184402051082390165771650105142398591978457127301249484098233899006041650276880429080796259741948774286404174458815549239709952877219690654755399398535678845439919449716039346970592226629120691803372812393140652267163032008708631942021616490342312358114597643238596126347345931909808518222429498068376384517569058902880688640679067589003617146875452449460906078954496585431040213975827934735994533693671050903550410645476607190458326295819000225519718272676152020582619113995360655742120199599663329943664722252162940516874611275413675647327009042472297601881421836003038674840842919789708009782245955301580591441023814189515550664648280958627033153036979046342359284939374138491478640210142490335961095262120556448775390150207898409519228335820818253621625680980336830999542694946407087258890688546524830562199626119633774861031615738934009601493069127751755015371853138141975487681678987269185793857472173079606517766275831012341084065255856569125698076761147384535200361718008283397364293266412858069191132883658807486522400279536873810062549183374323585567343844981259699197428148768106810564127886550959435579157089045780488398649935346437941377773214146573243283935410204702862051881810083644339750893446953020664548392054571345110805040309990056069743815735963853253883773177589111946638819678297976291721766481730277430539087459851801855022777436125676682913382817881507681857058482259281927658271903304187834972478426098233154308054622331915578195838248853186586402086394733961673305811789416833029006692848931249663583424621900042332271697482014183136944690713788446520274749318955561006913604384848618791597709332470131580613793659442347755018872254722696412717476172882923022626428876830386895116958716220496308698078888352138763548316212194776104563378621514424075165911030919377881661619794110492121858016728634506924866433111342838679744786220589964923775924303473181377184089995806669495584934604791227286001973762046187048084970063859552867196344829685384696708911192911746338941917232101598317906561235759826198028197631800655614639593613988511676328447542721746978519440412529937339190211176684976621039020669446258301651031117846624203897660212636293341959051339949308774550482712121071728115619283316479371515366120381352091943652233271970947077191521201468738241914592980259521586474794381957942833011250317863592010049622737210402333444666332243013135733456409366990193347177963884182931178037356978351370980813615045128868244698522409841157917058330057562621005579318132454136503701435528391127820030456128047970771154453817979786889411892274878565714658795958809035699785510956189572782794320062042479461663381810950191884352040872874029087232663126716737930308620876635903241268800856033543792275699793200001095222792674303302341522213043618475113274988272580549276692407626229667052536133009236143370481758576416013087527104414475123987911573404029490886274586883370690625873206970936071896151491187061666923092668849765927837847311456565439642941659075675202319661195642453130704356097518970235478791509871664658181551190662336215447704148617626328386850087383619885453463177764431980011848143596107819534474481111160993317805681884840759043495839900785661679334510148510569852797010780235881670393863719911145347656764957027273698899225562879954592114660904144646604261914933707105322623733163312853177424659676819947078156604347691399705049545294344986488846403352410949332002257333357190729066839064966822741862296811410941503423352054199117588850719956828265522395244311938207679093017192853303937284943620130930964949003456793352585421930754350041886837927483062000408873838143602230312908713626612995911481027810011669214465752319158919994115502760057147325101925717750581364203373347001226270247095860875051389378723636150674157505508916845806630499567194245699245344458974265098786052156179374951394228146565817974622071472504206456932771310038558480099557517022998519999518832350946967318781527428141450095054074497501297278612440967949830454019451230910372401906502423225079486620240515227083764606297479364248165343516083453502013153018691709407422138093454300998199577243308135142700364588612184923390452072576073717345535636322449953562263164164333811187421218952915605721409153063590908871934227283102080652943823063278112597897028786480315713874928628830770103663825909932523110480562372683733300855825613162865982378927191733452818813448823588260978058925008697715600330672743883602751990403115835022133891913122962800578245802975658257680277390390027447083714766303665906871994676602749458030391919710997590427568741659480424858144730774878448520841940677747715559453927385059194915806323539202917188895463335636362326079306853247337919706388074480166876907186117306221781754805829109067585367307998835908834583097270764538356247157518846861363959821492480097380815331241064121977941282462007789055387531625450187251713783297202465698174799216261851093503887361158368832717798499923175176664073375017753535097703390752744232697685619198090477373595926613754485163363709704321233269840646002927665290446637211832860575446365168844734449623284490651725199865536940472608600810608792262015678962564712261196450617521027841553629260901296772460570589047667828861325173218655592114796159355920384823446895019636926747312801639466960887523032026741695033238932113557045891531917752780049413219146787889472144229183878273152303945120061722479889300201800484772274791301464576099355705419008393552992187586010248976389172463537832100646572198875079058030099801633814625353020375815743899458695885401580668300530273007317538751878225357990372767311369148306858154086314682472726618645254629378234878465081698681876988778042227936425623853265207807609904745441221660115036813005286407704796653965901844606349110645155069189296846085026422043507084189512888287386933796902750154380387116893344197783212653971309378182048013300703882466350808729498323584791289041363335857690112558140920418401948358639293830282247279324905306988255965011978558286566678059447028121785282375326199753153463400571658527367749560264628158033211517242652989961260568086571737173705778091319493442168053753026730115610977975458490912001134151739897751886559970958919328215600094060331390647559909199255711930302821445166060819055679728416724842885892145754840580143778502422690457502666801520877467553885861233897388134184454324799104080856040362846897172757275769900051594183844491699870388912809944880780147176820115301950525919345776626706211249280841857851086826066206313573269380618529728885153546179881043030233968337391584826445317409402328667479006373868643205649061894268949305290790128923740755318653913366060875936051163135347418499483234010810382789905626945162797077213986292934099500857285147415853984695268749794681874142871249373804476406779077006738683897717220975444773988982509127597764572424157151345730397439131203099292091209356905511195884956547752382874487495896654636613446806127421865582499515662075813853199982522996548420435959026670826441114940581237407300478523469381195838094227359507850006558878289279689205142948404554808471868747659316683677004402536009599532922224018121444284127908298180794747320645215476969349973414642464499365057197617443007029513865235786419745179951151137616709919418008143885202682618616967228505961600855162284546823779401351114467555332199943689675723966510077752045049757707260580447798760927002983012930710149939903319410753582594033282141272148261953129307739717802207841960790901862387860094315989080357432301051302465381290476719910472637535713561986865683536654079696937971379324598391476422295788886031732163132994730384150398437329690581960749036653784019552448711315154140024693145820390463140632080465001091699092645872423989274954820668396366127153307468996905978819886077030191049336249439275705279725752981288381109079144865182280122418618306955953640585217266176573989323771169397262378045202898478121356892052208566932956635321000857663307440300170229277183969517175606905949604049648268895136019453976048197558679768911907404432779792975307625828979971967221051985809139259744818461791471771054902227100648370329915467469312283687248268894082200962049860845143122695149567093629468509564989226838345233347470575120144154334398719310976072366901178879429960556142732174592715091286199987799366596047991899511750236846216958770832772981629711468000293706216357846660961879570554562423898001305016203365319211646651898408363872081343283659848625276466441919231495634120627901716105086141167906324153121713258061970134072316135102233248277415970999726880461290469729748689483835686761682311602063319695389410404834551764833446955928496834745461364062611283924638004668889037915489176111908033692942493401045832797244057721510530570814253576357715655359867650140374725106309175555883026090408947063119540069045158765208502350483831530758920587665418109316600164138030084304354837422683247714561006467115063105915137700985679558539406130516966475606260047505306616665430387050913886843593651926275873132058735396937422021661276959551188858837360149360569162720855187154888014420315265683933648527858432575666829677629562638165558253163663021879755463780372665282584878511705482463992072847704110411500312358494588291318701652488940872191518978452331605881596507263975563994766425479705296612067327814689182319758881880921937898885598647452004536662038186213513684459905257451399706595269914394618357130135804877372179466254582766201696501287573523913831219512967583901896994184444444975612995393955536276101125797298578774242220481796675900600251884283320036224194488852950975897460951897118904633108762099774846985522445055829413824587612999814993481994474603745314451358789420264848932172137798474488650897678078195956968936181244497900918152106002164296865025147396192390786920113854270323295091617979052113699561475610141601548997464756345072537027751586723484227152534346982832537275362197925341928375930138602664011965722413037734446576590167781166587906891796395436348867909040726700848400936505199230286264207005731683395782484735702516937837009252463377135080933172482476583669474492365392281806240744890387939975678752202892327885015160572464874503266649079054801581745994414858888726860435778322066372315504597803432295824978661258921049699026445886345404065056218412337524209619433261528471091213436420598636659244826098633038036604061425748657916593359550022325980404271057026323367066109078856667487892838470872287638833937826604011863078611539056818804059314288964873452431087987100566662655286759259753311590792098154401821743895750705944745274301184624957774717342705134725194404295716034419606702147481134876315273436640826814609372183695152932574456538706154990522606260394918589311210185024922742541751381044021810776287351935430923532514552597938127442294282219223659309909833657139071944846577512500672737093853717357211368142724884763134018992516980397662741460219151083423130967909186169044196191340987078087902672307028952093739288382473159733048375334077365720041272579056346182679116888185857410743328617378432631739934090579518946147974552666714784777504098618879683387161151520378197000758107542309895966078503103068538521021207214490633940451425923379033460562066420245387953581572325316232935294356360454701262326233086936576749498730743222909701274935977981809571951498363482687897450142233371474827361381064127182727325778947470636562244569486810288851923327420091970378287259623951334024867636103177920980707015371337769973490291625601804251622831766050574523325561558500227848937683198460459975236589628435259238452513736223129259121098762491679295121432025265395892262191411260426829939651149021246869428572327901530771375984702618781564262688519074731415589403158231699922105084791152133502668519319975579533608107245835672619627570011212465164631165765990890768531121593559771258559243530258694560003920311992212259142786973377072678560890021460173666161418952389566947167653912463422014350297235131554211694172121956879815791269384291697210723009461909435304921280297981602967812484360167212724880076722862968491991329948782946397945272257832426302979219003726319404102883775333259504416037700355497474210221655634753247325788116022585239762134236948803045262213616312485099965439589283140355618319797861286771266810953343177306468820089808993255437721743332939910659183634784468515265988624692256410362390558691750924132771253368808942844893023331994563765718193701374698892748755246815083133566533002502598695953445618074899932524834132080034409626814385598564826126342361710761905565746885122227919167265881775338750742510111423967554740705424695319705953435674931560996126647241286155576992971065116065870928046225629869250636186723579954325092445556113638504445444094630774709843728903765552596403899449730483292901540155296554536628023031961366374450667215085002653052247672807854271417771719551820887699262667185283984886623863527482576148475593647769087063148921107761115025657571808962583833323078069870976542939936220519433354631305128590454511023704119884416097005279250045005091830944607677232012649254174478502739238086799940328601552245694338143791925012008166952034827670895808345041389839785740786340821946679884357201500214334794979275910352873754980868891957811719121334291871294401931390440587180691538687167630160403493142053970368788793885302308074572440376334101609066223882664434111478528853864407039191218613785813340866835001894570430335683876267466552884737928215535145236500992657335412718116105872889331395255464483021391224716372989386809888988826965057284563922506546446265634049252836455636127206245479192284531029331116686991448007625800315114261728789140487376783745774294824785952991937278364310099120859659581397557573924176756997557240461883940275005119319766984581955423325813550481856708818320030210251048344246476726712220065062318983037288321282840181444191083003124294261999802297263187394145194348247365865993039231743930986633090526818233226671531068688617530418808419462826760910562938143910275745090503825904624175338763256310285046161288172269952809668722832449418182701054676913953455077136453600661856365954090821691136372751320476123760097215779482422321394573434282926953985004240837092321878827160379116816951739130383801975127082564632310421287650765924565834983272700143842356502454164400776605467887182560992159638875128452889045208424932409881598596595522275235272881866803597094662970951451445345444697072504797486872012581123946320971906558947333089226453787037211049891515897494502720137452802351523886858179599685596640464439642550751473478267269978324335577427184045980057742675365832055214497513611443617639379941362783764533536420089024555751993487896852175542462192199606527481984236938173034897387883386335760534060500685676254787284665231957252370280949708709332334446321327459473613329426640812476584824788409193346049481933558548576645940466248727832536000620886711310541960406744253158739138401537958161133156516140774917722050445565983962432740314899488175755955582931430809125533244672005177289397027120952366003360515646586731363429696283531300392349505064267238509703952537417331382238831242266251756126010277347855196689669824995767710118375836206211540899400784956809530216097655478178399196916480676623696941590554374626340410922454015192456425301284407429817319873497624535386028429101810267440738176333649077529435991092694322793939063638345185388713922080568955380479356668403829628745987382376475461690621603683205018811577684055640826731828222522335221163944117165809060676163246153368515879699311545644328289902388275291575062384788280596533009374870055603189976646765094854205160421531648239418318467990500990458228924519544210026806500849984098433812641097986841020049966137163017960421413530820496986938879165628435603666537082283999620086671954128737503116867707607175950646297340143043415398899548086481292565639869530688581586710091063340829299126305365392353880907884208449822539968064724302422584740819006126613283468822514265209390721343139272390037759209715136344807257135591645518720612526186476297206755134972283880650987972664943649279788528008422418651984503567329613983677154512124526926859416616716860361830424554808216545686151934627366877980614135322641102764633798018092687444123357373339705752107999145554355927492210931419077183377650964343672769966809726130610650826801790563701310534455839854261655948135400276800252345696153052848496802149506239453424170675909945172902316807225375512231094325793292192103311710704377885809723112263918207542348017498900294874923913145847233213041377927353640491411480563424537925028185361674082541439084108827951286218353560805690717852153611547056223279566975158603881637422521910614211062670193525622835562005954084667037063971724870423214750701315473292885500392181194848818100653636570737289827914758646273867962717163641930646952655992118136569157896218345052322772640210772729749568976027048893924303066940061199460771016650277939207419466460183781874837040401298197805684332007181190184533706973678820243562227768859098800844008069600712502505864287798230668159670116996659447637423823969867068595374325061435354250721945741965450189012705190074961801111521278264324273931813358992577385462653587587384388779307989859508938602150385556325192996357076151892492277334582414822300068363143469292740912103478309948055737403465601699092306139621097160874502019519166914109280524826499004978365110217696429354259632716723313828651605159372229485342616786199074162095587707872843281458725049090911363375758085914955529723260862759227950638191734961133600525447476132015074466314401049180419644839977650905861096876312735605276676507980607202469814011919747957488121471867780914262939011307056378699016308263246004987151041092594370391377571409561111503691008409402522738722186947102131967265271663319832199350223481688326616131406564658485976236259073639088363059908188271015744149858820782441074910252955131402392387504063700827973501108039243522346361427919572759714349112785865692886863773759061866756938872098102089432599201243620353503836769644902790976779166513378859168624745738238694548527637086604173293784271176911391798157616948065051645102727508896843735375623725705737313809946299495106617890920358076364479378047434785684188437629568690188664030638758572501969876886704217092619862258776536169436146437243048849829718469562169390501071904523692725606303645705589129322023145818910794526599035862269661291917914869611111710170045057040037299772235239581111347774681317661892036750172870847220800786055250603980929209517091738179329458755241257214007332921604506444925548630120798906828734871564442198371341261424520245756221323360786572485757432910325007010984765816345687688983251625028397143406874325657331580968502133294892828641704545576990294136948878627421661118148206969466568975657934823139851391991564052596434802701496158305310338994640930283280882312950926341273862387250510170828660264957044633418838593312674472655675977517205248582436593692084339176454074706685526182830306730624440495581850768705109442646270314193129424093659472766917427393662586710938924672769077744421688932463868262617661585522441646147572083303480355923944127357947441380111284442955161246260086444197522957848108201944133781080645924538471177468620846880266436057710152596780100895981684801352159985460135589536863012893261201741001776763307851459838797352639053284927156277426171253204926256911826056676697772426373519218867646237784522370475542447959524929978837766273876839825491275251329405254158252068758608440048371034615371861605482164891637811949131507702178981888771304734653323247367007170608216930217808718581793026958187967489047648170574548187943929969488502392179411578669520228079001746217540794562011425144055668209846740312889955654864643545870710749702778893712952670080088092403950365747503823381097412415514279395216696706661834367916968097702798578634842339336046712443470009175643063413645601056288914518395947654108299595241619739738110167012870468944606804359076006718661121592347372138260163894155967397077087867077265987170531376687982519723712640625865555815458223451317612587386850234724838706835400229196549392642753976261419895191421796373759794420657815885973108745000479854877396894438409665471927209405024447479923597256062514975866190215221127830060827316860718845034911844651223730718330496953147759040446139337687674878334601559684616466573356471925724784901249202833207426067372494654048833573279366974545828190526148557943661180073928293093156829005166008222648811119382335352497492475752964897524590634830570885201282558947888326970412138705244283544298663985025042830905847793491833622659046189352605620819851799047043457325601004568527381105893691179559597463564023791502245057011430265626516207789189230927117616754933859425629407139138547126707087314149531738899794922974263320345354918821075701241944684024236431056641309087704864911218826951770613941131617028305616588566005303645993354039161365295940405355359743208533938614908842493852356607477175184550192845712195421495160818954933651163055767031959620503323756775574082656018847618707829972518292195705328894646922191703374870274159409303343201958935603197286132127341428488471868437557046646558404827353256905095213118003214501134312061022664892585182598795306755323292558882464260387675608555107998511524019128078233018549468837804891802981270112207914026580798350700699017324884452089205435884100365220853365272636496883123424064739803972741242157000415065321592346392787770703302719951318151530319990952137353740007821274436070615364005772666329734729979485822873691262217447548390144330057900930202848402778307844131618156180985543945422215724528570424684376689928675340679183469529316239663026820542395495428278848937960445923790486509085251994797080551989305322737850236036343180302575084670844427610595214347770573523539687623439368160192189475566256478908156696051200277025098755913643405471049437858772496709433570692890168085002290199157152590061551023517429448654938969955232543566504623732516837243473429961038464734609715941831716495566981541901763648476239583396140429981306956441899625092208777465726909111310585150765628447683716442947508536247578717086360983800670719886215240346273822847979394154875980568744988535485406973160372571018881692773173899882448389779325401958919959122392052783655304560726678282481809281339534826767183243440540082180197461520579420581335006809099595185522584394087077773404224893117580211398237660586796929408789441608563995305674000954507668134110137944471937502209582270672089412362941818617087198358768672298181090266247264402252758842096149484396459286986778966935146943408548818177606906146325753989110640875973180287631765876638325541607648998451709348566274805392746507289583841786092061283453362458382667435200718079114167973941467064309127504679933842467147440606052834505825677756863068904432712017051373064932420232642927905380300750144463998658273473317203321552966555789310140757211856351264082911642368489148707514496841481785058684467973704463646987685422555837113399145500977960955285046332696931840668327193171226304073134386621769353039052674586263776511605578876775519691072065562273483333399512881318779116934427584243982326844689109683634859728845184232258986904536652454697171734978965075307426661235811758030503732960717697608579990356521791672318325146937583328729186567489576251304816129383417814251093200660107732571068093634441462340017563299998467844829178626872788244922477069140543180413258613338152684731396323174637631144348777814608171898615020719929280946656227276126949386452139337115576281917108657130061182071489757438199216925302236799844644685656879044422173678518339927252934657794259860396755753071361963099784665704314476929616520607603424243056296290787059650304120177686897558133832469199372767121743771617673976857523677955087316334320139083195581356295086528814776233993308696611988730526353406321490745856568698573983865406889934695514425823860774405290864997025715176719754312576020172423797090566210028347365111848963466076216464611612016096752355038311584164810587285562058167517732615651520503941339906594227125492979214914541097322692701636467741672041641357785547643994771204661256523295899360291854511478122205006639625506483868781566470696283711568210179793544067976691334935419568813572560752340309309097888108571120319899939753498850059743008250972233065740470256423785754950244117291578344931305775690114635752963103203183493832510984542390583505334256703331880332687905209605017788356888650734642547737636778363255810651667752232687356411867392928560800442674758220870395904993942410395381918222297240677016660303790688102863135988539499441696623487208486744965678288896039289399499376246869152385630489918804914288842460067553551151508520874704923682512210768461333809200595224399103962226332378475946202112412480397383369316057112392583055507267589929497776789533506779587070858742546348918834477153978306334579174022229996438465582247812429573622645950459368384230675674496868543194761705767793020131701652022653078023405482417703446677207748831660652716600081274549500808822235519422942532807339862424801114351038660307559906652680247844664328847749862826982798188559336287200272646243542798642942866023719279763198825136715381552545437777179382404637732938242576553023512684998352148000929903419549008225475056682048729506574336047130073985653137798463395886948203963257241029509109900544761729560830192909646435634302261198317278778532111596418379620067841975991816731707175414980012141343575667487875915846383436613123200401965610204863421795539068014159481430519750529046247807977678172260785880604358699099547350454833803420157944865894020887026625429030943133700045101940533852786328860547266352362355739831249227928770367637565244876701923634930445776778402648909011198151011923964985953311574672628241892943374539568238750104256329182589744692883050099422888042531703467656512894530300006314596407055396747412995493526406799924256382410852434080158128979940871780054410276861064944397678872343843581148893998664912457094020355000746312684383505076791502241344967169902407439180990879824392886840173616586366358515706690608829000009872590690903164351706466467017510471328444298451236056537709474401863383690910674269084812251435982575506726697380025875407196683758951641731583130390960546578257032730994361386035346761774801576384351545378392216497263468998696717973690918230246148217273743268925925816667413129548784085026293370947120137110267873268795373052292686428361189795050207619421921867445854714291864955882563718196934357650308142323288029828169285323529869285107495044996020760217546486043123609946670115929358171736934322802740134472869869873489920234061768222528766014667909033635289956341348349387142711853446034087452453323136335530963889260789592206019548157539890571372999124575140608864947627133735049189330129252441223412043128272193063678146865523916468432339735146649065106719583022395786255758451624733306885780373208740935818040047497688731893361229353704142196032369330964344727913822869498041777408898077587368022226410845523602724856686265503752671105471428256253049915647982583309426199722104847140147776375455468754733471629021600262926637145253403841458326985904839137937059890503612550780706290882478544205126175524407725787936062208425813674101676796623029903079468813713437849916939878520385297744423059930784966852313462604983067529601881418278462862185922198671010517162651794489408316951227712854311889869677231240058884209743749343639066588835987409132699715993673409064024935399573565222336288336117142680647485572807137112421462850176911539748202086144790495483567256922312916027188634661741027365444216156260245452297482315486214087525589151596284752215452963611916158303618189001702272301030757444706545854708837624259277038825005275974894025696814619921715133420369177167562827365233345138988925199838472484581254161523128865632214683923406321663276912545563437636934076462892271722297083513042208477119538497684708595397713647445627588144493684273161101828125953691209591072648809869854799285066491329615700104220297172367138960415990559612286740435506629326891008636196241742218807213265137102489024236465836210533359624909051042432292212712664264660407996439833881420496405564042793520302447362525937658999742535855058463212464435232474642766242816550911367721252146856918194367120158535211123667731627564616645690542891718509285684690900400204590484043574264562859885309478177115372493373010653489925601244762869734704495496146776470623379833879721053333761861059040516026325433457027687640278593814538192505074183841535212106874168039289508770074441890918723343849846338586969448910037568901377400636756780297827961241128328736300263007581605962303064804917027093817742368237709018123814153982254997059997864939961001077247350420356131415718378801441381001300263867471488311338456437084024217022911920609936628865146681840422356291995584999431424023306564360413784315536457373885484105629653945813296385128621820635130089997008363957884565972435404312375775552951037119161963339106477711888092187927837362378742490718063917275493797898577720858531375248480435544154260487124385318777934184159184528079415579645604571643025198507567359410748000080326770037627729399726841106672864875892364829489006061580171895765398269198830461497719430375019422317142146389265475531654450495663693965658569956935203535551997763972514165213124936817843025203529603302245697884917691632658484406355371014741452775617388275975598857626497822375424843627245249347308990734213962552206943713059070823541689812057101048880665285536876034863260031047869724939729148412836337297521343000675284224871266172591526650758435295547669343475766287880209708494824850426099915387784334543291182502358710867905033819911680728989143421751827444983602846447099126805651346090040350264222008353328517084970931003939112921830132954471153187539395508149452476796796227086171237530873068446655876997286944124773379784983304780459546211590564217620129187063844219254483652396394458573094075766263213449439318857491963683687100841680306342348726624187922134798717798918548267603418773775347627614934391989695340432686977614286728111836014264691349537934428494963547288710796154997733002520265216696141446721547604158938654338109299433121952223176614322038378983642755385425537895314281239855058049410347728750556400027987691942126518454023375125917663406756442242996767942521570581370918869684798439432709643574086335918519806638792295854575522312037030606417794953543755077310689194707679359944974151606466687836044123086790532732049090308012681147728912120119030516449327315103629945298486577181935358045086614532736707511371024543117896360257739834751797128950168606973623851875189231616777106937717778802441942957143382015005212245221821871176595489446831816549283618502193141231301793813879855284341453015638171758278432735621375941703129227928775621720486417470864052876158238322279525125819350467393972581548494194912975619530079183359375957931592186148204051867180661178518371717660434121897609265905129357167070429855515679882310477952745437557584787063029414885551260547865791647964467672833629291885239459164355542349927902347255997311557532264156807667066673423261019958826306347178504608936596746052441469052473596939579151759673029441334391782545432233144765856525400863501326500189548526705981817871867583856932414479251850659514108277851446839169913909171293519982048675276198197084557820968213646478556186906234859785661632877451845851353680549696749515371532144411590402112622846891349910998604991778340836354644443318147503194289271655120288930720144959057483686549904798582847571287340604227206805444377249175782667715304267363910400205340878945712431158882695869296046299903629142418785900226770426291295489283063729300188928475695609980960637819506790153227163177508489905594915551795764180043043938036313068663223047463670139481046307383495809927091969253515604836045220872044143218052103728632881799058178011684917416429339532838200890298384530101794312285768861899274464877983900508203181429194399085296802091388470464901086248675319516630463606704541488514784596952138255171704041898583508225080663456236165084912254390989324776864185048441622146408313839542274068214099021553356881677889594288794671394376795862595700601794255424885501751695917107147501165950260507773165457586651804103254215048057575685040571587779444628564124850789288851086959311483882429702035551922601460841368967979313140776230854528311794038845225115521156389746939990755603573518357934846976849691621160107789949059323703813665681820464801916644104136319983942025205423354821234017179290019999889279355814301029009045227080068998845664723139310791468338115802304841515769542481857467292447871408244105292170034567555604810482444537574732760711955192656428226230341258088030100902267883404946004628317212499678623783684999530548444420105287003383472746062602635141350981950182361644195019812151067503672378606679544314578729475857548945243748000005340251641808651166514774325477149460407036734093671343614203782000851841839547789365401391441792315311823768930668700767528817120000727491828809639375592252112427626214737398385010302333820755281809846044628081764953013132159621713292037530421272411336153068940802741294904725123174055147825245092988841276005751204736792155933633887241631593817817986211595363505861315634764934550659845673062667034733971775987814338202090669136588767922858628274467526570752199007418492560451314867424139249145204814332360750430753952083664383905224756102028284725787156469910235720545473755766796294946812994151208881911916114996860882046964167101250375317732447077499947378294001056092625582240837340098409363643098511167408522633371947664539380421253370707489550802967630819643872165979943029606649681457460613965131582893895225797531672817812428852462720397269435343589751845929462231301938887890271924218613664533110592351666449782562059096323269196300621206144956961147301288536713050369585908331259403125221167383684310735872028089558241438918033492265889186666241508743283409858902112714269496998168309798883784253832152797609452522596357961298352390701206307591182017513939164488880361824155422815456945688808226850556894092378892968686037861879031922031987283528904556735749601085918389084920547405177552466651571031415087896966076390314147316118962763143767492036133949099911044361994740280290411167622098673397928904404646271126894160770940258295558183268982471463700262660952505664903898250490019696470125051948568143884404984942261385373299004535431727331571733650907571418531157393217986183630356879226988545014371788495782273751270082395068239248100306430799058001172412432607237873911231227079454516307787894157846667081025076225252718219209463094822070901640470071674485744497985316469047899897244237225037488037773751583516745500042833399086947096872628964948790449599870596664210110530904552492677456264409390181986157388969656899337603272994726375860106528672828860748730150541744799894488993775598988270603748055153426395379488359996894399584888649531869334745994072654575585269447211858394166519511062082362465866571271877129564096490645799109458986714965546042332301858261540911071546637198564246225935767656220640434833286572125712624744248568395987513858530734199803964895813351322481646648968626221185257555145103542143953524263675277802914322211831643956268276583326814041100199266211442897722470222601547006674566932777939124715556245089603263810619339688787752123392476108654180296597400351626117854576859257130675419526927730953397863688780618182843197434145983104376683458522918351485342184481661259131905216139019740582773416871891105305583076596231491861811867277534531079374713977865916721635544358046659932942004703721924449799892167327147341496761709538233887053087909444150358197534453719887305285468410591720696106714755005919243232323529332174387129141761015168530214352661321250091444044918246813840474988498726525060444105245960972297082469386139975152162549754898922151144556694812398550771694681827568956640024207322679093527694464778543671277610301435079371336237144168883958475069268450105467428732548160422974534161239544716709543707193049901174099367282443527481672918956129417742378432710539235956816288053221832094573124672801032926914435864281104476729332650300760397651158530333559836882248994809835357093646572635841911007952786478616776406274973745324207703633537459234076969169062381325374315419974741975542089172386231461870145522817145193284266556907866503096304465268370632784271322309575409520746139072715990373765278333197009277118897857027343975862871301838344901456012763088101524369833030263334787389956320245916937125868662055226314255894904309412424939507751107824543588857860494884588945622693454790951217723338323600756472563546733523176326685918901613810465469370082875753931998759357279871724784980933185757136099774196350867031612946747364751547873792591228620625409875580296684341475683696471743733978070392762178823734655689018419783550786089301117464961056792886111754435400074003084476400089722658034852029227221236331847138875495130112575296418680286738037357810033689695601110069979398528744548285166820140887590467737154823896496090673671921461429880873276430298589384753122861601986739558983884677574472333472188706434065269612948648843740119421880134425381083412363468157526529525432371797445461669872956624059197066001565576493972360967624546151373869017279823875541593591426436009732294582928366413510975400871313959607334102474271067132743200251471345508796373044065184810099672242378369475765307501334450422971579950401728274839430807932440019402809560140231452596838017880695021074105455915908404269299941118853632484466342940085727903897001425208443445061743782984470468476885718264026545629117428872561716439138389565875301559276004339216780548343860981830212877758769466888796588211008187414917773583605509248312350488899882093548536331077482481262682366971209457181514130592778493566831545450338689420540807283950959722994844772765078002600094132943011528770107456337918917378594375995445018706515860117617670781901892735268348886133677949617419847741712751614096170131185505979864254118425146557435615043728273168438901552935996608877191410010604984202999406041336631368077987622508724266094591990934851307461300608532618446472672937106095363926116424615907240457529473761066579438453387486800822845336363408566935263295403604145993405630861371345235393850447646643962556769758267421326986457332569629941516433897424711588780024613913230670286299802327062022511601566940135599576066070037976148021091832847227970302652792296718771151117656781608288782376866412645453988784851128689232045964467485302329465933424132500655985738296073030535080519426627168928572296399533419488127870626834619238134024445637226071498363157343006144448527221068778368250134488116363014129688571742507489994605464421043016093113284105152967686807262344675477785995821399233186402124926247131820963170599312623193447795798239319537796561514046769714657446996638123799884793965366985013382595844385098603142906998764388757295875307231993367343474089966351578866082840945310259817014974659635074434885361897571590978151698031377863981892400900819137366552806381503489840092462210413409723799006329324158048794976948359623797439155872830211761205087753226912639829609038967386046944181213561460950723552430170959924726453696329521390649640928018314633470228638951728765846887323261987236694426533479063360815751898281110446630641858493583244274295992957467643611865207945978584090095559844174295715418732138632849789964332427707216208148598464296311704678803892302961877944081326251948642011772850390519691323784728232521042023700581468011700255426505901003989194882920095912830939978952958434848239861696822973957342003886173946765951641830469465859318610001462098864992083721869936864212461446131943174402222874152479881162611243141707290069992192429638774619144949429755185546110273196202825352376326726195563890501315350723502883169681212488345920520100917532150783231399622338026886350924781613565158298977351876553665686580213318401889508677843775262975962866918417299930909073806246490839830001092683519239632517469604541537220521783758927238187215027277367908244352591447148474343284412924464156039854756932596719822887466776291086432715428822519289578770256614147700747351641915544142487703442856516878352937378156501650448718937538527382666551996178604052522434788909134159129498026591327281686775321302030586296742756733259607930920158095845417682561011173487526857507079897210868358936514196163406175637438128150539508317584979807340905426217517607495136327501725880711356876560462258867144373597719168878811790384308657183836480919871808923066802354530405209472131959820605532129353708281155832254519103802798086659190323127664667947694843946579347197907691385895020687625424351812091672258937174456221270172973898156124409328783492892286728631412452591300818174954666093906970115592827526204592704448024219872986809754777973903198516123580266244570758748077436139937427813223272805436635783339268211710339070823907497940914805747668653458181604009705902578967615109197609785365518276260063988163226515197550659809872591604367991630396677611460025081661578799096934866383152241910903207047281656711531194522607422598200255808530042561523120458066874488842583537466074125983260541824820888737017716144655403595696204157617551656641390716045627545823810777728442416020353130162858672848358392418229560250598757990892107386342286237802951048026526052524417059491472821672132500437560643336979360363298283158561985311298702926433837730589815748606392961309606337569080765511291653237935520475263312935536361520227132395128314474203100334257419797629043017088113386533061605220893707177467749789109842140837446387774072905414756236610549331994433702874005413259716352728143432913404954471990397296598146143798228526162194246792819455172943307302302104032915271140851012613885791481860697927864512827820514180317530695145841496282144575912963167016034056324297916639780526279335110288948575102973002555847810369289624469468476751466835024798638948345060789570468422274426274557833640549159839428279899900280242053557046521667990648584055586542827944564350899985089186031452925108033611609208661784453907088181680716277279085953991625069047666979893803439947034856721194094632763708739652750599703653887296580533752095008493595500030999916593300100029594000402306508461767463792300060868895345518314332796669375715646435672787563453966619008988259159601679746350853553846785076145181808450832373100466578500039181490888385974517069395551994886018887692402375616888405653616417413660197611979213746324271679307921388992474405982385782428660708268709621218323644641645237799272640172145771915093724351676450629820858068183336821111999815636830100458104024107880218654344429894301184785154241849629936820437338900844858752623340109668684087596847601655936088476890420484678499338882143817745538692228997969185474699991253557323551628737691939456542517366359809117081177614518641338381669411427987849650254694376765233854495326839095469551630797533172670364994960947793636473668751288870877266497455486480810200611650422150369911302068111656289876568469143584976333602123779756200385438601245967899168807369797958990770692133521290530389667676390669019536867278690482199518595470544336358137448588496781011040572859508764145862482324516129806707991586966164677298812460126551685074724297086333752337323965525603929621184738584135020918248609198200332272557556547926931261176744987193896268148616944207233216620092030660033733982755629576966841270377046848543635031809915853445649179889628286863758763882814545087311526581897900354051129769482012230757094824319305739487650700646899431127543663451343909280934970806877315928295728516265313061349279184220312185482530392763150944634382263114172029839747281248805022969000866125322213995535585972509813920938844292678098994048658077921928788751396319324921000092266187572599503297891688886934984782059145094784400117321557365239226042909430498364616071984975917052129136951229311604939764422731718367557100015558819384974343390444385646755309354729452323860217390112257285578368318536671380501049822983585731706693119377392534499971632320731035825987416424075418559503055393381358220203457369640431957551803463160040018082892458737585417464067690154970637777769160955333791555589349114714871025459385815175388225998719470302741597632051324476840581460100184640829735155738929663226932520704020023262289848111536817819760023640210080435507028069011622017533143462060987428616171522185105199815609673330208268182492669971253598201604222376073891478267919259419309390881942578701787990368895806936467285701265350333058869137263357059696032362593646190122702444280540097740586301289231328892792164198505813645447452647684452790486674095439058604810141724164561956157174255860371360466557208079528911435320846236269950903051522361014653881214400937580809562550618045175368367972215493710319930600733635965756807667339277865207657406621546556625862925313102751031254405428374037872105333571133645472814040442503108177957077853301524635959326816503396693113899793612974342919121201401518177902658933221197090241213040117739721639623749895734594071481896629166732210662550022901035171328202513739370669795051987306301087260972300979413608058297243682885074553118042442072618562309527868160387591674707514799367204503895232134344677930017378584107497032434235733926600393170940964427185504643230196442919794764419950360841803180990407941247629268837316282099783970394939977198789736128010424520413755392139063814416709290254511151717269875869664635382330810848685340902047411651363427177901177455771117917991400089129250365886222712988480244949701678976436790156559908203559752818646992982069060511433725979790238392999812049073633359334755572044446813300531714683037038989931468724777767232800693727421839230480515902283873956555536109368111278955088122794021676133814675057447624603555941124301188088434749933645394935227817496645352275384683722377637005115281269954757604430818944617060296706291069669383728609467760265143786968812608116235900117827304492563346169807585363348194519674455732161618670630095228008053922192747819963502442650910715117845151675761015503678471087076342228364355248419280155873828332095369115594532701579478500145805062105568669661518487654613838043163351559676025462856499259360318039411868209525691024401503140913365823488502659768973853482085778977676973670508931218635317762266823180167884800839096004671933768226943002971209660038311357603258992256550965637880321593789609665532992431303488477966108979931210430548669368980176447496564814748843827206072396546043896051973523213910917832248410244330164038948793437663528396387936903604338618280587012068063389689345658235996813754175773920881907987023387284705097289115281271603154425071764323893237571646078307617891662935856417382655470502810196968322073407140680576260523946315139962835258286384308361114447238704589568277894537703455448583950593154325804906579444015083726314274401848712444886725397416330238025491124736586043576212434139045319642060962206347404007927477601572996987920783957504358934003261868104911147978148758958605662227772480028776806916981914758103068474180561995760691396246159231838333222644553233230404132511063266524908168260907187625823920669003571926829186066145252972579823078400815633583468513400830717095219188994399593298120263890776796543402142165040167549916051515771300000571036304419482212711886613723108247251102204565130911368692372149069785134214016433324138533091805235935999033071495952216246564344433565017238290710822951989798858013724353950337139956310845262845473441600117129937709630965042489179124952046525835061288070092548400522225378812605110916234017901162916524720262291310607641455430192117678048010236614821893366281687556804748002904938374036306819444165287309615149526375534929910410610850189228576135351487631039230574157103714265154054719727331924040823487586542228932207409885250169068553908439722451733812978753656221585492695201764589084829311207901463071928118479201969033502704316534366256431276120640084933355125763524336420027809009563908631591069362446404633777023337821636813693416163103267949478694002257433199661375515437069193289424237261978368211976711096801902649575860981406841530372705606615197366173140883274883478485703211397420686481122030044288531701048585319122618002361459707938556464868406476716281184237176277463743091972004608426711033028150144690808414737189853242519944958071740627096815322276608602402121116846568440095315153883047203384952847278357609386922282587232620726675691692071503296548113599714038742633815535352814794103649800686603583339073028875499314800298402896782759710994011911207524998912466800553686985378715264695426798589706686786111597185709232085933736531228682693919464139495224724656893337119884831016262032357466787071482678881450868493199665955581172261650816295133048534085213616844787404678470152375088499415541669692119602286852739074725631144394602969698307162173494457909867064787811263301367298175519882604889225718100819100846593597339406649545966365847052748841261279854252680623705248539443312511472441626419223454983251782831389360758483246163798180032975073123053428416480402939078548586610635850666554812139319804067985669564519717071529269259712607086042912790416263287622314441929070653203593199404066679718116649322988487833334694170081373839234728044678131924396681574583732058940268778379345776235696607854798203048005672697160084422086457158975065324955931185681383709853536694468775560126557451328261940187328519200535659178480970986072981359365274483956661927475297251937276924068907949147008025488795696686783625382345883282773723672678116554966468118107876815585222050222932313536490308909540387413297367336655086960280609531495859867857164276889699311644981445082913820766744049026989195076992704641694402512801694517663221818400660970257910919604207112741334015780475269088348884073735027473349075842828901897555615164361212969366785147853564697638475100826661225760495304243809435705981530925804909444208117130123225813604883332373283130750382056742595451151449870178477982793493443689584960716453433244157121600097724521810149192008992236280262402645243044453279501388658178855242033293051317252149947647347831585889444839642262256813797899432861722064696037080991756592177554405132273967096377147493505352792709885598555288920728574943173165413728086535277248362600829171414472835762020579222041114632687866812031626314743247606256805193377036086692782602452557501209312721675831246520798666593647209569737131903264177304313908411786267280040993085111915232158294220903355965002249087779459732781682383143579407745366932481824647587466765666850841630573911119058156641188216618233521106189701718930107751482259326802469986352731156083457361283161561909447661799428609739212817684251876426806647517805285676003365586180584919360844167426651457843342851081470463901224821382916288652368030983163246742354841990785323051933604725482294761819183890961594676356329921479179938215595875743611885237488067850695223033592314512064334304812336853528683945382626094430748093016842348042377968495142009029054050249605071056961668352564696760616084496654442148207364981272408971789547446807019383920964056252343506050426465377698419122556740086712776637205494797975402170642166348642641092469982637755771467670115188026039629682074733250212776701754907467193085370350545996998249596334514690907605601415703732767169583732461653973414018200826359030532923796923304523340475398499452522149181215291608776580046595522788772564384894681519361933667200897076611235143095719445215625366351766732015094290031201464958270302404147031497901820829371716964299893601048589677496955872918647978683355324899152893463648879905701839684067442394843066586064591704295705804644294558963680120775421320557668190912339180116546707260022853096658220177237857837416202999769026527856217409116617247569575728374471086551440010618231833882683465609030796449423677434920526764040270525384772668336767813589056551007539647660523600114157385824943802982612076662643173239113587128247784236699636826184179049503303598944709448724530348385124851710513317771369166821924266395477305351112486009898055544985024499545198466344302465507784275324091218193548831364886750821752248810945074088794446874589485632007028109410681594593540166585272466139398872616483107815292299164177489652980963459361849370223700688302190006562361101513439743965585495285083727869915859001875534613230393424675786393081549685153380074301498238173824944145848722015774176249739592026005046832801977580717136383756925371255958899333931802005806441522216999875197269153506636051808043334444409280019186042097073258990595763772743097912168660603063098760084578960474079319258158067807712433514139253186885932757051508931815921528928193019398022131831477510929346527669313625438590846792221681721105820617030796084313729674996150734675158115165613881749077387482392114485638463345419903567426064157016081574323772719726308086785239368070051859043638450925989790208139314849049729955488344495493751852501532339642786564369313238341212241818948840061509896852451935391652932067480194246642857062403891134587470072456754203919836083904299929717659306018664451633700416467611861095885684805457172755878802496005993702635513773992092142720860096891724646448109457529492846351130474082298009375829387092079091085601322024254823905523219227374155966528600908694274308352859021223723758454845541340835072946306879952081925888990839528355533867679213287786884862928201797044867290303296716482482210148897253067304245227958775462898428487986225001436293172694753067813522629247334257209349040185485057989646816043086367823393770333295468543113576117851936904415185599970270857956862682009118815615454480058602477670637849050215880346658797780535197216996565575875601394023841768529664820806061854690160811861571677891976580523230158048336488617039954957889646962282120938722260661984877880993461936882947537540949424700768741434706539522206913860921853649155678559005035044106328551351088975304769975618363971668956819524233815875951236597170081793240168589104182607369721237567880892967402992559317711233731201517750054097114833006197957512945925039510633490074620319123885115717424147506797623736521442023919669382793117100008563948130211194074206165750500329701115321056673880010695719223500811554810836717213314310615473446528863956087000634486267594898401611154368614031855372550319977335818238273256370631363786097215366433286547415072175622425365668852534897193508674429042998685918940605195699731462738606444619114722094538812376987128322176828371346360480082683014816647486794357551364402623343223812492820859348730506593096177370414861503957639825508092818287478701707416442683946055447459010294500507618855317632711879118683900355655760810213989666217265323447078949496869121200210748036138609382444749425024146311261475310667110878094934508366654162499710136468350990164049161685689290871551523750483451488698259320749173274722520204503957210277009936037175917986650397077252383931492637335135922134815245134377825646794970205270695757729570642274206763925232005207592130086374839585172861013322214804077680177507917718695214817360492188749501792935545889358480015906214831790735144616686609105197971016267259383368998250074502165190583138763516098360351410287442083649669272038241353829148023056271594026799515356367034187323870844075432730861759394519883955507308535460380473090235920412644046399233868783254515097293577880505138818756050584158904704459266842366800965451332803477791420319564252304501045474237712229173974257437228107245797220111726321869041855567137711464262402139837774977706596339949851984191601768305755335383435377308763907312020667242457146462342259834387574810635179250056809150167803785085759589633429702705416586426852903584584898975403323228312303693838733999307691278293124397143555202951795634440695729159856615026995397572978116250256336116363374185245770944610669875496295329919194257364488776508874331323775660310727525862617475258893405779636725987940063523662607891843224460526196502294475073761548952468631415269264383550423790767965721155971623190872305134084376262529829516124175876956073655050682783987034387421278745873340522226409553743919273873232195169504417072602215315544680492439892541234209081116428566732590184526795997091751447796219001882404142042755519578386727802564811290807739014259872783593481826413060379558025285402588966085581825469159125283838992943503694915394787748041622510983198344974406494613116614618369586079201443704911562851392274684758410889107479771222359599436542935107412858488537941074057186846734401808823021181403750617128117321970232651067139602307470896469616177654552493259050414713684612007232507778855012942894103821541952781676084432814867125974165566987585129437385307607555997687511902808699951170876255550811951321621097164844597927494069829074261665684701929993804190762228948451752531202917485184901861367097668278680373984692481662775705876081674742241329586991963767123480476163822563489822245155128875426048019901548108663604038645186331573646172376790833815016369176267487077130094635109296758110717002218043575347099429883226177133149474056379840376242980588072283601947540517588599026628256161154746521744189966449342656347249268484169966785819132294582536849507015031597774409459536209742263268421277465915883136872156916349834144853184171133477852586955929181423645109577640343503230026880245912930960950626699282290742241704828514091064084625805401746803919495600773950517553453788859133444210984405007502196252166006032869652669147878132769494436190269408969201455856545888339681097785219090598639146849527361009312852850268430718039644488541250719635615017896827135546166671989709708642438826109071935477967779601492060420550670579659000425450073613794046536281663146791814624949501976037784862989066398161412491529622048417572158389677296423404108242629774734220084364916523510115494367192582190805066868107578013174326882674193854201116213955775380766817118473654200683937062556623173472356212136937914529003610940340850933015440254810374476645650270098739242390136965799595697061584670529191149606651300677557458871710947842116255732790397051304967447266739820621560373040798086755234768328927232140343238200454288243038622918363743220253275049473914895799597873282535767524771804275590108565787952099879479885630567583148440503983406148692905203270382373824876588107073206799289206452530666266558028690081892067243718187226148531883390100623387789318748355325416004642415224570028584533676823408259594155406327039944611603991123415987151899994222766402979724334283657609615378622382857601920837894619822129814727892831857957136229609602341261973989397348648026999641282515090614324516229605382156485076996332891052442042902883111239392436954548029290704390643381404214563647505223754449389022052328601672586557143372609821994848014497904271980237135933194544826785873222680400258097242704744000097133630315626117287215718172692449395607059552900509967779934052083269870462498325087870559401153872121498304225193541741356568090043384908076988685840508072921051891446687998344297854010302976371345835488170016265697265288280970237450678009426991948819867824311115322952418341226510485705263318311309483051715855977865221838456800432160508800672876536017966256696704205019515048236351944256617555061723902692692106484884093898918237540515871206218395969033708317364064739072560997239384528081449144414955733818663541291254709570864341808556452262312662317866345960756649633923996733426455999679864571065037613601987417436430791166907213049342147713841833511000256678021115181666079564886985880529449648583124985358608465287556567930737969171019089603396244709597668125582781207369934036027897776776964478584784976228934407092052924324844928141997726268146757701230070632042194267927080533856090445469046091872921707110361517172205360796912007653056879237273355709612851951231430121364569128249239023115343318212167139874882504863510818599265422502526075392970611316702072667878396358987764496471170329225708024338723896971743413743092836254301769024411573228877683935195467448378034507306894119923820802613550592855861979136132374043944739970035263017575275351285547564382028201776301651593431585342539828945160960793692646419768805797726442524045437341226801665656339341512317110007887487760953188383425525187666884429856601639185793354949889447063143771084580833685998779568931470364530749768611389553099729017464994676637260908277210441157554956017453872796994765692259565368113387664582615580448031994317624885731246773870247443802764029992119965249163322501255009943540864051961607034781222384971528372262783930985698997101983943953835311609548466139518165034845860555665197864450131156577642994751871660987684463579812798742015535073375101860121047894664196616279263341993571927580086428340516181835154651593350895961684660358061572177304109886451678777865496491303624281640898503907287561124999803076808402651445725846674159356594068208222179304030189630880153770357962636743220197362063879985284098344295345550226235357018523790642662599664631534241555275608457731653166802744739929663109618591764407980386233405669573183804823896592357325865281990378629471244082681882428274031724788013685381058208794091581733601369285248738855800498333103522504389948099481552460908889443932329247378748480869944628767409689961156210770505554302375636787853066183895048216064616300304249344470750219384357598127315780672984864749533421548289448024214234712910835533998316994702663084923336547735673294993759764002807428842918744913397026808203667118675654274067433421548736302286779590811334669202411395141838429388028738053070644721206781837588313940613463208672918772947318254877656815541021429824710021960841854594778741309397401334077374458784867139306768282717285292764808164924974471007185093689942426354166829141249698007966103542157858096841537570553035257353274934158754791217941161373942658203466090182094160723617553887942235520220382972675234785676627302718296745275754624883975289869910969256630617537460056763833525897083173813689037170680337457010131941409206518552867448859648832469898775793409521141029115942228071563700577979150459919779972491947668685072376929280180076655690694447875611901310515879632118520252770046059723135848192353871442175593976499898623076971868720487511286361449881978719076603770886301906130211915417100254024079377341344468366198630964828078803223546531959213984563997982902555047967963839179342377610361477489118026773196880727921723180766921365252815271327041113410364015476761747104226442514820034790944682481154292309124430601925155137656769013240945166035353812227654561462361044120678176684680628934413738106448154216391991648085189130123329396426718020879359601856459090790721255130742106303249618643264922528249531331631804796761751632598819127832276041852141789710397117098225946051376843008384169687176094121329396098598440076602947064298224118422404731589539593174888681810476792312073496151803908393608507347865629466672739825022229968510565827546082417634518492796940270702406547820929727429185572365138170067955712566777381507864306364053607506487557203304065414604353398237357388947210049090796085031452924337879421379592766944945692752491093165210570112780042027386899731552601784602786391812481233095151173671359013729200155640654015464850749082365144935855850559884554029527953925611217776817586971512898940343384777189694941349607651977181495911093732835953840875908950089144351822268697362283572831183824221062470553130352616527371640119751793367998229736535804922486229162304936923561279265688526451265677345532593937082934215888605007063924071309659743351256050993641409405321395699424449245663592107153759687006172747498690392906091923135465872020924526364881842755107749151660421490699327010577594094230220981160612650866593098466840937545638410845128507232081747241508692620135358280641033635276822714664681314783064356078732689543053313464601450633789109911308692046487336541586044083328695933439840778464125556834171061583772067607680231057819493617849565134616162460176879931117572498815068782175010742328766847005818382426788674182014747681980271407785535899536224306944213310508293796985555253505263203588352012020132813508329979535659958836258703544755073455991228620862094657639491829663587258312460703692294668219598630429146427680171753741749641548131209457998748890568342022307219991731536053219403664285236210530454822741894202892087986819748924427001873812169887249633374133299229948438937412688459650224035247237861234964414088488753661514183318957950610406652782686989402494272243908075332147828589020406920357614549998487416823543233968080827466430481176085298446706180796353934424315983370229713507908466505001300558537497255221336744147180783075580510727186303430578315663316510912687451621104807617134148807483725085982141359220263967823695444316890941779352659111131214696943256538395664307521289365113730528244360763787966156126400394603648046307689114778185734241856895941514779816879960449528586827052679215924934696499606716182739895275278658504965092453089526798195737839649740620856921108240781411631973692770850694550068877573506048591114198621451007349102117026731606811995893841071579176145066764430351981473815898946846294100640207532659519467363334349018921947480849163500703812356780169784668429243289959487748030232136908308766291906840367596333824583740744689832512405408537487395097003287473261041298240815352748223984252275688742207714643597419719907149228003926345827479388478137714225444931804425147298653389119896732678431921104908914589660517123817783092137565533204174599312761510286281007318976202572342968502523905727091822507076292811407198789076915208706741239871189998487431763711911148538926154365426514391658389548021901554290015409764118521900725169458929666920163550967848192346601538171471090364481176790802891814781607782485107908001212625868602731134310993834978135209506223946526049774770520265780149737764673078397171190763778837935274392247596756209421681158737263993551244949286335722255346740908340773508237304315829589056385056665581944905925319906091109062271667011249657564807769320621670427964163610805341939596191660383599408221573249032439814195849250352607875801734599282395456127798951973130929699742980867288846404381928118583187516318075719471295528833705332880816062383736053866652960963674853628814268015076063067129672729332984471025726486597051888452110041941633552400480344489916890530963910141959843919342340593497808997517036291306419373239913247498773889031302547569204148172603653663199320437594202576146667274312163035092446258728461112042307504165807587133854143834430783302436241813181479665696992101294918571482260857216979743483483722444357589313569637462032291519934751909113983171698826562814102648935857978120766389717869830045095897441331161829022498662295276460694725515560482969246655971723136924609650323835468819070306916975281236669823053245526952411693476035727577113626288140355722355381836099712030626841277209291025769553577255942749168375698996272953405129171887405231697230409055466498489774319088702571886403097360752538167409606289754613868442266276426330731131177204839829260590369712156532018011634091121050718390240257147714032899880441314784802832592138033124606805268805005633599026093493489973913144154765678910192847864960267543012449578778475116765881650476821022970119340250734366245336223964099197786334607770868188281271081819163866332349361213844193414958870523379414958357741304577597680480472906820728518590530740488448258450323329677582089024876840230898790053446274267877424401477296601845917646946519166325575353978403832670321443864350842055531160024484844157748264562975583622955125529111449091449878226226595293898307954236140605469460974865147118823165911275935859893629192592740996137136325873313793194167059998600846925402214005822346819360511918103205796336549154626311584509635801822028508953775176120489444148364145346469202659676026942327789715097704740155544463930311188888984498987971398184758258639989808853056146544104956867837045575606044422625838960821108362615864314121329236278774955914412122744977379497698041000419103060441984216014604299046400700761294924776573616381640283562836044196397144590338834941187074903761502647993717319145498685984569520230616667386246205154651018264592679858914064268904795503572488460037704615754846138701940787262085559209788071350173006318104596402737334231988700772450862003891786320169197830734548705578284330185874027686822835634308798286895528323840287702281237357054007758517209891152899751953888890340293166324359662995300093998756342128123618050230717591587057799820748516570797944267426941410086306101198780894941035408729892570763283976302170647218042920247609483658550742065961432961938550079518155672084801996839532562249649325791036956975943053449045279991932515621601696257428464227348238415966383587725943104069115574910562885374613475615617357811662195374621249009528015202262160093250105774740980905928160405147327748390063157199549511777939194763838421287620841277419379042465195473502932830471527774845099031144929575625429407512029323009765665445732793321282759351284731001201023160053477223559751670807821378280226106012172329362336151281858567073423339968172542852629714935404636972061298122926687674759899513656936406659126334944504752534852841092263266372459432568456994241241409748716184952012067086952732199097512132569911681621023167887883480696085823361601102790378901251359422566194717294592265170749819802953619380551501956022645481177358909694861078205505137482202127334299224381613860176506061291659456221044214969523073925289763038901056576924147120304532212856563906231937447255389439658803096101272976346772673934291495285889320742336592765659451333163336237229584419790017916532973996220255440981646647841951155886995428258154553124460205220088398307173440667471651069522840818182056513542124834081682936928807864382324794304589302984015262586334881506543148664232290671218726127915643551621182536996149385284122197683474938080449474992075808164788568004519407089846798865726593277158586640623212193654722378562810155763794299076945892097572337398110469409316253351323525730259366618932740847534659906136472630632068051779194060052259970141061605358631545328881014685067554201183537307306701479140015614616398720141890669932544072680428848998017143131890523354067840356651901156017573976984138380867836131253685489772594525638072187629631021768984323631858816266688841530011756706191254496113228682313626672669215190718332839173344648676685149395598072805247902902125784951849889494853937582455022537756642118539945208376470841726329028256483416097996233332453066454321714795075728813336564723588776841509132283553514651018149672548688230625799470639337598139143663694925767697980823863201129109245885639160865827202020820776710281502262381369559055208702204093868478713471658918531358298148806675365997372238268662888256425423577133629962236365343462368924924718635200544342153068670608652304427440675386987315554923755405190786404748182784031102692115674210645511324322634854101528550166302962920694043707800989814088363149130276892113375563179775520261287693309253419618036368076853966302834091148333597370816888757754978712157573685860531954101828678945218514949428141449076781142866039915961231194697824696250244352262750232377698241025337496545678592050208475268478858635820067828060162855460051119032077263160412476383396168819595891354625161849362261083816982543224436854897461680482375321906618336928890562874650422493204328556216460220795792954493220729347113813058554578368200607351837086550677849596274735233123823754139288721014296218378411650752485643267281004485000878548145743193436879488576961544569358768921966374216260251209166091585135908221058766976516893894202853913440653862039097485285963822071423208311594312359661645397922617287291048149287420567482752135605477196608148466874923877777848126197315260162970785952889991937495589456972392152115541904040995085600074014991574424755624045262451543300083131616110326696250093629748803520762654433763954882829803199001387958373562308096436087093350793786247858158302060596433148729290817091293224205918004287626898410403077657523939035973608254891832308305863392924928304037248903907105707242165693243947456930277020814575471763011468279200013131184611921549861440510011049104227854315791106584318062117478169428665425286774765256451971430180379667190890293328908684358740580960621166001338018551920478829806748524564937507262061359122431055404684674877965347340562674060575722177897748749099409867584293559799155537162733845442800658055012602256939052283501679241805194795151552235746167615834471922208011535381464122238350992333889134161947514792006182132538508489122566467662807297894471130628060544855569492393390117666289468213192853771251172294184156584228060574930017349241540866544594311566886698756709183567918450472472815267722234084835243068734880873062420881393105865384821599149589638865881208804386982880309789591418978262821456694216340042735177439452041841610880028377506101503936478845949710906329443337923908135941487101682411409244465838595868345619775730464015111353080719679950414092036802492671523989955405722042690597524341026350432028245121728423721626081820056583208632604554314504122991255171416062153946854389484228374551584584877580747809877089736649011246805812521441190037841745448577151013288823491147202923013481410908787877228204084925072075780845976689499813962169576632207649491462707805331163946246648651986976774126916796283647771334989238127863941731777535044252691923323984458067935792540514184710230810960670684732628244152207588593531064677456689088902889745845807473405286254675679088551622324341727150106065141482718757442776950111339936100820532133821451569190177398983243604355481621336044674064965313629409061527371946334104957514938335567659322003871274538622804697985158292394168631099405808189705893389350487635084938955146886178009889524682328230152183693939222880642032736474803048023804327217491257429790904881026728365893700811787870944259917000693510611072819972913886996973724030436891494661548664638275079589098983839313226131849372031446856410286138737699112097458963354384663659843126455752755150498920038062497407387722573278082421904934717171592969103038451005221979067934019888490920859582986690405556828740141429758746419416829792759461518805726497195781153290348138034924008320652855717599491021849885965100942292037649797965563152201891556520295657786487184383739258877338294028245064473027312923322557608176100067613929678362047326924156860682313988474768745840876912507046857214088574292698076908391557118643175971382294205630422074800747500046545116678700276790678233429804972179479668649264365537155931720188302510511444878589558506808022958032408243729703493059272238636682249736052051240346271848775072774164470984408372146051936179208097219571897050045605934771140805286741057760916732968079118797099712625738031451487225485226195993847389664132737949044970911200925125354008697756059291037544427412299066176473701410922304980878560962383712382448328066751519437485587717104546798819692191992943384822426392399645147043226169910959945486812989062733595360598725489278962882878732533463438442399466344601413281279937525252595198286951149970167729359139826191076536832127758265662488172342451157276640760356448427658646754025573043603336028835461021630459433345561586974326806657052002674164254246276909935934769101884543180450604228038839564170479280649180243054034954210693916410231028467277684856397641924874802345112355077568956353412283650034216827281184170882929866381742105458901380903169802799472226817837316641959536135109611433947598472648139095600311830320901552203164211687912962772739407195620748853631320210460043530766098063785810912833251935089145917267460524371329555609935013100603805716175435208305413726561330180965054083110160208817586515708353617464365987810974764697612621673500109581182685976485233617339974012277549078427266268034934607254121791657419969022802993226570578861270971720814279788462229842828916103351845520381558823571686631222441290258037427927460233777095674329309291657769305593995038976139521479592477523284643104727805511179268889618779306267259488334820608920380351832320310198697316516777264950660467339092212525249173078870475095751016022358288621773075604883286866698800900913747072111223331542980751846383746192574265234463335704189530656040653578719610903159394216023049133713833254371515147058066507776922695705373470659413905798130750939104044674061644441767782750985644795025212731657506455197899693017453341880311152768515786074252471755130943254439997078241143039569889517291390848197417373225126180669294865313006724769885667600129072302296783451045868593056955577884654220937384267982676850476445851699330646785040728805280343273727216018912290636312830036295541547516806046182539668636147243163759284613598192990590204730893115452002689633404010238726222435185369566454544139296969557024945554215775643310498741354726857283078349579231977713663232861745385370619248876790205505369006004599150236130529508916044092766932835088283069589628403482393570317354951002874681785399557841086297365266493809499387762293569267324668588017041544538286722750114445050277769490335438668895857957726982040346820732321255665081173778552584810281510322484541763489805330880370603466429244465676548179210917273185525127087150069407480158011960298581460007566233371615629611931372613787497153448945606127593916182637683214793032683981555419747854971039810851083680097243190402381722777693716120486164632585199772284067803480494744008815971900664266430585801250306557033532908152047798441328509360640792138700704352226973424574993404028253239192036787918396978189315706473507752862308907031283212066392264313281473449806208738001217090803213332283962148719102691541272524815828423836215278010193265192468196324378683031197459707248945171123715358972419219228191831102425221263974584222163432029833245411283922741752959900066191836560286520943742783386333301875518829643343421417038539797625068508872784859330329381120143424086465383698638660574357019590877203069142307151778279727527652834236723672590268219748674006481710394498853243357843980912980050157689714466261667962225399677949638997555159777234419015425140009370404629561075159976058215229714055533302235596714870163913146139435143534904703733498712386839968425302578811041969636349802340710977599419413704316212044286076958170026766899840429274420150844952331457429008436914060729967684894870334799718436333405488670858467024382426924471689392020009236418524232278724134917892559275338214960213251495007135825281913810463168279294126259122057738872730390276981733244496668813288690811903608259075027598983561411961037917111771437744442996686805731358569441119282561411078987395950884657131337348204741634897792085198706510381615643592521373067793742950450164716927182881606132702000366896777434659768332266541223591543968393953836561365268648683729868499688429294928401138748529238627311266982871670271848113657561490558323308204373954979062226312402116062540316293322109986873797016775826459875433883606215464277753752966995012564981246117986236846653713191065339632862834475661604472642385181473190450477219646810308655654804218402470256529751525081771148377949146516774560933463445448016238330394529041884905389629517518591813308708193559183088288724443669933495108410907589269816033074462186152275397732932544011830769295070922301918337537317535215967236309996053406716058802054288229600170741932418464258325726401692288037398128127873627380759353374038937904825431765750007296351905397460760293524053360534080341786202666640156318681024212402058604036651682770666948322147971639934766044197633463865291353968087219249502343673624495875174302239885486476332878363689066678101893861958019413634901529360256891520520373137068393590431020340781618797631450816972351207763542336570171575555470211099188607257147800931622836817829365209046153392973004158087332223196667026446369837517621839304721060436993688026059598570954997593302598477910293585216916204081057125027749348842588732767153597630488439662305955935948739541607199196988391656717150716148676535273413792397590606792426345515805801471261991583199465431132051973547263384048214934899886823234053848536878778320063207683344543522370476753893056768017369056567735483285179503956582713663353841612344347722370438404802416853595399878816130347740713095236749211750789683450033627050146950165113116888596529814368769132448866973208669139233185009776808912097502227737391629059682729614002341625274049241403073443638294740991464021295152870291117509235374835674501856849983246042894612665299224560027780472425178844488480047733203836953764038078638098833083028577557420189460475316744150293463933801093996560953820556234160760407772726807632816801515516784874264763929345517523301973237810058349191346228320450563185166756297600273332919797391927684147725839327936229269078001139481860296118911928737433607737839153279290073033346260043631339593694745459822226829920721142234993519859520149867681529661715389426296708650548933121514919035836454997210745498686826766252157524713433773328492585039115577561993885220129298976773955932442449166938924548414381156285526472106679862023829209843098720208350135519080805752907904522731069223317086940191117882807926596860311499441816170291666890412628064060561943293147757638041423168568729828124491368019342617184155789751735248532102853143143670214758243522818846096585370729917393089110276536750929854891715713474664412773637988697457720196725691629863467479477127879715447473921326691584824069502615664420092922640659541771299136700765642456961565782619091988892499771870591845970057934105270942932662230577195580677713560786333729202033428856365902953820699545597465019348703897326352061380133210381525534027871082392182457771444931901824907194268794640972608663702129525752616537739774425662613712998247672246673242432182226416993432830402345859203686648974065852933997465798877754322979190577259623872380690938379425751834458479269446806793884054813087388329569985662791850796789846839006001119714326820989052344080541544242972294080925731936868556980950308253671578759575010914522413738317186834079314817209152986087073083005099717710411732024246103389315790720230224226596243286257517537163246410679060290853995878430552583323585468249546772824031926212647223043524821682875527033182175552719561714852586619765136702669017333358114197263282979515846933286135253220344999053584750096841019086118229917672515510450951467634523802665914646102700056998355059778491116542899730893489960408563561153074220248865021748575986597650543791669357063043777612858487902709802574161356757035064615739989917836219831608118268132330657357099087200076771794513193100329583114828344831158956116312218265480523776597394024820440206197277746124949723135850097645860437858853066764530956608923475098632946978929336356300845381295419853846763286765881154727500300099837006808475550162760367708028679851172513784236698649411452288258697131715985345236564139723144553918315903316565174275407746090916785978294019896747295062838154501641096608051113239853713922587500156867069531436812429690354029760020741230182426834274547096051133224930794154682677943458015313309095772251571838754815861861021025800306472523566853326724089504040985969943994298806544872730415266200096652660788043532012799006583627227984901746383061710950419064684146454738632361859214281127441770258488196477292607708561818208016186836078399367706708300427388141706105325376195023635645086641166117663419019114625536114166938158706768672773472446052153058453336708373793038098532745299827491859983591919778844378046258972733337073442116096983828825562373438167651380842116072116677134537375424408971641912452655400197104188855988010469826818239386482700370278134338799005321908086958213112563314901298668653864599501744647820031323364938423709648074411671712441310521972249373872377547263854564450857525170356694511752784047948996037456455702100629795782935448670222410441160687005307940701159531017400644378761985503699691139203011846594653168918874562535065357347402504613448589339328684466626654095241506079627751971147127288862416160952826012956555592907212399407111877546763481613838550788760834255361792335611792381388251184803504649297724523946286608040097032445823796134919284108573364732243152170770302931291264899032691550281075382399198851442829105321049588851608113684430815948908038659306950064835912081185789471430712505321982738014862161574241419283315852344280498602532135149293801652972442022383684528656431146224911241115681417612564154635733789689979300403878571793187689463897373966259701262647416313893724557027134490901084464804465917082652170267508260060615787624798446162182565765742295594891600705890264738791646523086966603063766779908299568161524185002630425400758734907942487698880843114611381276205335256538162926024038843596300602203852745097576545438324651652221660243594399527630227824279589533314851019435435951451477993070763970787458722564562025653790191412103174299635305307692006687416968699333328726824495861463695310364203496625172399678077988945520389721702944850507537792996779302665461425976575260286265226324002014033384505158289183836714134131508451490572725269484338147013659210935065385583690339706871452199683921006151454339211822488022545638636762438349092697062853574204130987999267346821620572293515672704151601014052037515213204479198411643779522568149040799435784547996268108120991995572855577577112504781081298112130809917848623561003429127396564690483018532916124095606317085326224201798151762123076212472510107719478180870962424848383370686014676488742853353720470791680157296624945317452890728720413675690296498866100002918181432042345365943398756249948061908897724679355029344186990891538710109433049204446529286558283209076337277955175692893970790085010589026983854829504834145574372931480427718452014434619435866018498367097737672025613528373914518396334952057185257860810663730527633776778806749853586171219804741077272027527879040947549512732133702482345428290001236192964842474396881838382278315619373926439624787087868578538001375845873262677986617784420833812070806704074146293966893018929939334566850637801195673202951780182184041975237590561144156914136776909297133326643445011793326617156153863140008828367168036855949584662241257028413075356629322871334996062432822727149277849748009251095965749164610130734741640044541535934449584263686158361350792650181472171151559791635427007555453524970915151268483992000827193627602071144666972755396867721661161252791176397128388597958804055258904759086947981823172969059900717236577623825799115083183238947905541475528621001461664401905576712571766479971940113934579447544636117130476085223462533792531705425561526204108235724794024012237999314699787456540646202127991479581614701343055196263796559949655706833156082922978177160854241090290077095589568965223943697540241664123319748215601256425727203860057558352427727986829536890022163884785670409914323561697839716904677766636543147576142171502372955365306801605859734440360669040381900408235567450924119851810785787901686759026726551387373292809329591162467750255445392794831533282735792406943271243082720596473892378464691416805186403537604793745520784631246310523570240965693587179793148157544136233447401423306189661160792976054945507883426165990172402693347124220567561817867270848418008832782503186753173114336458115154920916261231506108930040774730921283548096284656380490944788238825416912369032027963610119753870705166791971625349022900028368319178663238586741508645440513328100292989887911930995647095789700246022731688728240822294859170130805684989672243934911690626778376929661961611871363773532794808702608253336410390817033121332675622130739328106495047550905927644109164370322159062331643843591267834481179013847238749523000334838230669995055339509210648562975541743203945545285818046870998439211097882339067486082823796238333235921838703039664900521823481602710145746449422821069449939184318613273548475131106983195614731142971845370557009734922926099782567739904026297294997905569055774436114911440019614291615414672080253801002127740866979140525575290328446778269457854220781342974331151716821003743620743925044626164206068971981686349118914111827044435074406807772667008699544206395991990483904932860443058972970534887513460710572512410194810074097750401559781631145366138924292954172436940069009493229111041883398262927548860735312821265030217061753778890179732366615244840624898942519609071515577557739400352492016721345447788870827649997151345823544845345245694866538466989877283924914001969789656753975110565503317083429538275177063092304608540802865494340199032055148986910901481567619874779276259109388219841007238269282607169388574517459949097534921693287597533097867480223258756444230180202509223419368433482553775035886961437082931670816726768934139126288805104591087891633829446288140461403392586519772798589336761138283421348332542223409617823845807999982878275333161912976548584082384127927458192039265174739038371880553161629006385722997383607357850017542491912096053681576750710977659061738025380622020628055035307112466527299397994041625482144704761247271214456102274459319056340248516788802236115938993499021541190981069442211837885838610154011639674417443756859241120544249242216660571998207022571532003458168746734523021723010365217797579738429865085647790938848599357918140913386023776158713924067221969853118196373538890197778836190803605622858190467394949971822116172819328173191164527751078071429879172787036647362340925761882924131526222398179150966377050144522030340644773426170754306559301068142125845533741362194457058725717723334524283577511063717808866778081106164586998559062058773024724547056448305109793871447882189414533049034455436494838539685902488684598442859101695983573387980401896380906508387197174385170339080645153362087741740665144350763518553175693473529830522186395501479565900756397781209978791734555200822732134323686881031358594429085291334597086358911408052241672147099117108266451085088457637727386564141369474588695534099085559965158588717725572203259003470299228105844787095067221542895775367396649339735319870588104450816715285884501856737273415318910550392543702651891286361998518347246632186388029108881111671892759877406600645424085617946796507737809400713110991894546218504903205724973232081386671869245337820597469341026444359722135157995986499355540078536949238553024803037922821325873797364287431054174484129276743076320532165524322904440078296806815008061896254122374692202988877750763585569459443370919995614732039028411983568769692785416880295161093079468509557636968760015096435444207872341411922374315920577150930659037240415377533664203266375337833792628249638610472126211260967078954479432613951306385660367267840501447960728001510214656931131668369981306051982536454398127773715160548613392655532291201145217291956380300285641161271871679113794077880070108311238478512875809120731928765343120371052093763458619884126162329580311126286181919928426403049742711612606560173226593840386658948176684750750156344676424515686635814906492247000506783965335482874167525426452302509703654975645212193426649468036063899786426431414414984315357248878012260351130196429806104558914059775882203037331527805195748683807948287338309304967028537349692469654126738238136892053228514052874474278186066469355835286716161975740814669375600926965826273366149960480762864109601761484566367209632345183808817312135399728608531904308446818498457791459570221093685310546583070393037253622015958182349395741755823192840535848347600522524949045782375434478840981385338465700891593688404552571147001277363607573170623843614045833610758851067190278813240942979526897861798229130339625424055643394945215539089327129122562875222292576119568353496890812080430157043709732583860312417821926041577232610807592719457637593050088988293958121018728386142982972031659287346528281624703683509743480770565264655611936965917486588750411426651073734743922018256879379586249133059775405099851251674712307570971558347470148304158919857217286046459028376676340735336987060455009680325069570907494268782403691828077951303480619490901628795936850245869592919021733204737460308354935799234549390818097103162360356079032456891797843588116996889442153786414535497769786186978537588913322215252294218762478990109431033117812381993899940471440897489186031927394886707767897933454145450551882381354309646179378171150453794431415096084720900151073671933944096156402430294910419671290667389461654245905558129778024754589572276835794202972467096339520909599556005712690751110005391071808849200103694988016260340173890344062350941830556822464002026486120343503613117926890315097684223907697017637438706370293489000661802651837600823780806033370603176577568936949190035297187692064135231101075521249021881944393589872051756043512370391846578421284079399363231583900748426289191919800747173029467630216238214783819913760482038425992508332836262925308843593359584431834249463146594334316113954100038358276936881196083873626883215248690738808704590688637857164506934179293663495113669409523794847468890873459115544293857497307077054723164261886563766601559443802861775056877992522522003412262588102260274608895620906734848717467274146572176576395841905287083008472194660902925506708415858172747621920433568355475170347397528342550858204016848871487250082065852339898520270456962542450803266361831864455877384528404194511643945376363026586449952029771757147959291918580258113174940067541389331138189001227367797449393041682018178342799353625032656579879996830662219457061573590087998718808065418845309073198540232236991658531498764177563294290735950343614452637732848459474461889034844080320716265758314537781518574099125276289579692642429281397878744410009925444890979084254220750604223387706509249991329443268820434836878963947881756552385526714320767926105703606122692029138644660900389750968861746541704610672037352462982848876975224583506719296186300287295424209038213564124330376203105769099272381360237028670791643455386283087715632355142414490430974349755990915517770939443661818327782011944367861465209442283372250147242561649869397340231113499022401713259066019914924332583343656278107571960582216777820435865918117232824768970596024910737564710647351837105735991842482320408118942198127423422590447708948962902469660928379931262460526675186862678788128594931181246533995018348564281613140589664717819949682315451074152655376932527840729825330842310586456915781176744949329124549855552139437138847101682336795968176166997848778961498770843510827428955838819498218079822552934071805058362473188522971810257951763211085771478284511197529057975128540370550463896332411358750445535184740990682970751460163679821174754087217930405922529263394381949998107793409324434390738301506582521499964946343051582907850616965892062236176965292569729218656214180484381495107513588369643252320907602046642162807050790987665364383127315955644882184240451407994136522030072645359645023656140696350846470481256286417108622543894752405440870091491405889536841433202183035595669893932310530680574091686263662843995483936204082191021799550982681169393651242331833572748363064016548921371831957759638062066856580192121456576217593735899789193268777949248029969290608845833479752202658058207236020666256049821472634238588571731624226925767072153816591403361244999885728819909491760276217323947865444021036187418049730086234862931851235999914629370733822046533840721477560143863055762282677215430339078676541692423147001144454220926596144138471028333295598249357621460509536960773949390081590093706029712378072514785233797808047608311547016341238340489789388160279451484592227997668530530042405076311508148905250063005929671311195862142214949309699501493374064105861268836698132157891486546956205090698280750249332050277938174929875499189323210916241128183398828911389020970797252014915021495273654298835735986401569878528802635811333497076461541789312560639806019053596994321905669568031072548032431044734958954238382509738559890536775217917043063221493309886210375651614399124492757054918790037399003312784012027508529266466464192652247709502363950247273687967453622843358271468386169319092548993052875381987130778762631362870646762073855865281372377443872492320329604091469369211194579750297920300720854559346544862635042486842974166008560817526728662793023115573767859741752582264605520455567190473488570560382885993693357880204444712395061669199726972216200933530868082388016228148295640816208657425424167521626144204989836765510639286861701760027250624878260976128938279107597901407716285077503552891869871341033053076531461950747310953517042363466107104395213727638960610943060618550584818828052733369817222982953464116405362720457602229729008038707477529779192889370833115806993669310513087700546643442614002415276201623139315995514263035937625926916378092486627706672493186015832340509335310804192018493654344811417127448892451729249197719012730694616079361847136321992037757821205429475337332588963875049728878354227772239891558522821994387518503387705505000149383318491533415201235626200734938686904310056204597149940855342214757205456591854728459030821180461866359178799717608464360158637306690640095341744837569554266780659188520357116279584248057535584259331989294812221746449952639514557357237203162339589720448758577038448006276747010819617642520235128377813123388447935235246391963457751755265302156153223861719495840692333074089460114059949427403849543306167810612400181018630832460559687121184912349489603151572796501340424429523871205088637716533128357810306611128129820312455751300346535789757273989944309848212908326063556489550020215599783622050767493182825134299143461846999831089972993555947684032066509660523281707970083242478231516982243726496333054150793131590966685732151210026722479325871133119435311601113086854584207209922993837992558588806119468287653783807479396060150245619113086576828558171779388612668697542227926003731202848292528529556487952063174509710227575783965777049090981251999006935902837417876426229459689017838074387530657572069868746245848268394250024450608769806803497508750992425060415712419136566939068408676865346718162471885084098553471270714736622917248617154916310019082192915118651780646646888228365450979849446922049183482486008350289543349016983132208250018587782708244766038072788063268269442521507566664063494330872790410572630274315565943820377109665530139306434350804355861160713463178575595149645300232349482614665891857223581996656765880546325833495763346801576465515231995591100856829816092017456612800648090557279019563824265089615460329647960692174818622613511607599953185998403005973366356206677244054040292309790631590145337448972101583891251963513413935632800262370752069540283125403216607505037775204995048005228868174093929830598380067123102029964761731587888769195374449062134362530050690792628884803388902006429526356808675037332882062789239629905995053572315334604565093964610299762802470515583765755806555738518350872148783159500441635649358768791110667629480726626738643864314741248086005401900614024313927552147428494262246962539009252967312357944031010960956941647191109060430161311673524553397990046801581279393570783947266179867127512594366244716327417471133145164096533531498601748402498825831178723669316341056432694224953318733873252092950563278807093831342963892079631069254928159041961426097696888053245803305935364873314834290022886687946952577783382258887458989491805606168819124691351337395888735069509339725981406101498335318178975137468708519305567288301925830105187271394758035845351138233617168614496110496303239535954536511827980430984861473144847130443121337214431297669288436519876512714340019067075480260967227568126507197394295351623783255233263099271012705067857296845131024622048910382776114908528496333040306324835316674756479449291302372867491976687317338511724404035794239453239731320611302374997637049843783741775653414078854605258218321400211824557494925761942354515825648267568961003959350603851394549475673502851874129211761196630881662252102568725567409569902650386771537630451659609917604910403523419685949848208665477222934322065795674255971895404232311328500383425862266669633791078187271010561803096345019010870922007167343274221108275118340257168584643236934263275180486702878734651530747813829721576409982456373510801018209908444746611093651154213747097918891996452126726683383554054373960218191949291384640949196972870818483303601830616717704353677783808643750377015720439094390309983715559697196558234790371956879401377740482814608103660122645254077105085691212588738561729901836028761934259960675264947660465082952666901100973059452081394742012730740510127579551809716555265291309247845779236039174021350383476443409598337549050240000280564282599445610863483204520132360360584152352614539935637125391871336805782319024454361284326682365554170678122159579240502559710251165672687929055305368034163911746144657423422469027831367487807952579063863334497149828292838222105331406159595267782692361792137250843749728944084905012002846715275043421429199840138738994246641550674823120889942407381564293882427292716636573135679364357212489625437603034770950026258188787722982543071562047784545702722446218313784832174928669937481504199458867085524482653053350103247546614630620883012018044322644001425842538164443177617306047673813496974305470348826489121605525251205821176599756980750787093724539470244741259773271834331747265683966300563582542560649470500112138625037285494578448641429050598229973760475774005261120972811039086621666744239194952538372630367181581986195993748696275851506457127861522419305148508905760905318194454366716156545799669200706532209185890751585877613050927244780355048203019415373521309764969161920226599200474453815771919594391758675826501093315151091622253342738659729446855844312917148459734861063429546369601539272870243116045518162199773342441237425691422721332725043614583362447261645272830100942290606395093799961743032249057651617386664378953275034009495153699664982590713834527010824408254403824594241784299884248536491675829043192415971376668278526547605789263403713558881568040231828783835720069249315603879687039574628044073969186896964328063068111650176161834454258313142925490717172383139371152214818166719599767896562230345742466010263838997950986351448699497975273293434301066812895311687642962004819537770721384650051456589067822187126527121486922023605137716469685314066201517451574881868250396881794459245103769078043370720705689182291735602343334212582591463592593820586412821273614911963710954111551680420118507464786766168169532789379329104824449429942110139353852347450607537155539291051093245862524171723306823687847535986554346298620962379287906428135447574674136592372739119941904112070335948298517828545561501708365230398139817204662721108492197059771167752539644851889596561093294614647488558872078834805954353145301012559646782461815519675987849278202193027624288355514510598238641663224756574525455164775667843435404093547723699130254840884517281639474071006263592104035665686119346066420160120374858443487256515729914984866333416927887188843091631487543887528338005841483602981899648015844702500283700347917227894793221219426495920727703586745700446991748114750580489384415744651665323847215731668081295509414477624926059905090120013012696596777404951220231718100974229127830206630126002367069122515752484397482515507383329826568747475271803573433909875854716642590188165915706266626655268446941893077546584057523791567157019376029099312348969725821552354662023834336778446848816806733190326023781328735762325395324826536606440272380267104040331390048770749671340609541416490624883730282310390806898234405106092310991761108559698199016499206998795677584983370604804523001278919961765320137059386022237505945854746396596549050558444431824342582288777446261102319568253745065624102936895803403992918623267244589722665002013602926851617405858232063942120572609096207388716828745033204360727575740776169597565141071000692180935100785935094392633835055404405558617728792024455687330976294189991479693987418898899087507473863871877671504082366811067137646991758703018645691284658446864038104516142620037356733250790048416372877355136963738408634992767997028309115416070672057300816488341539775321980028889820157869682179831096805918209737812806703805791324078023194376503865313735619285689173064634352446754575904109375225760032001041836939015310004707302480868525579679990990892153033102070778190985624308049509979038464351896939114229595546747216353513575537831904594908566014176792037342597024899254232188626123428994247127190538102678318094031045600613986000303129255594059001550445610415033310403187477123828532038362483772783075193798577765102231976302342772511234849224196715304011859637536090486672320192412580347751924806125281881892145864246114675411587849755154601678743475451819844127332517839148321936630970989901039820031121384480518727869670336280119689249369834372960886369845234181283143366893005815381483075536161158952900857636496020335389766113611417348601969621263505299657445109234373765445600352252376462990423529418656560465016698671134991475308258883998698059499666746942908218949049188464680965541893924898526986855596022815295250701545806664626540320032365975661233779602001591646587490151625148944187486030672863357621628477679226149081380530699379589686207068030742011004869133881658772439569560151882501144780704552756392332879440848061217890089381506424829791082942847328810381500382592206479692225227247857795972869007364881268975333690964898316188822042358932170762334197035030381502955322691094270263934854682379472191832365178434703942632477208305723828038977297898335075779673671582268666379670831449621226604365614413360673681205756723001171034706469754761908757153394311656807848609721028325338492442269995066551350615561093409907433753357618306707776063980618475358259159389888418795621262450099223972553285549404641708100257503269093520864985835737638835680677341441610736520765447023068048218683940250389139582452766486145086621246841086784796510271015130616849216364255288895011958016705224594135333023527097811520406385082107333827545811959972816992440134151695572636402599572202800237431728584924200419209160129651413168880429540237334412217091708587082179126286777455051764531367596595466173747356448159028040252047253564365678783923432917307329153713719478037041844598283800333726721321086580834270875554230757519969789164358329188654903734743141187546117404800452603951658497189708934412313605926840497949275641761056133676872298159706251336415804418006624832383258500764437152105958946040630675249221109911605843965247145471304890857165996732634405295904425030926911583439270791246914390634542890675782665704452752136694713171294872411056437352596418021593498335043013684196174838430128642109352442923807998557391959522646187024243492702815030132646795692015571857819321415861901399222043612949933138738970758856891160442660460357564163301863847170116398853856912959215451438760568320629342810320789445087081942564875940395907311996586355136666871475268181860971356787657605760209322391822759216961083606758541840626318487417719722122916230514439990280682458643525622314801735680817942408487271009455342364694686631176021613762882013042131008680568884576736867738176155354280059409964683286958518422407630213576428096497228176936249673063371265820168741464997027226598100480402990167541516557913005829258423575610281239012003560975279589499577447302901104571841231451994976291989386576361236978137192905322973840930592683687631139659237953678313049088910338004852706574742448165818972858353994812002985029679292326103667478703354678716027142838125973944289124220436586926149518704614906408560021419260423526648871736743471975823657080812829002054143954144523702436780758918340523284905101362429890082210259502492977086637836890147026180579476354511862626860898833591394852728621501709030446489287279910843031065985086601055693802443217481278329208007942318636077605314840706138858416150193957709354087710454108614043544228264115228228394501894264467820246919182938338962859833430169703926493002448373373213882553317403704001339582214172444642930859884049658848671804121656974532713527088808880996763903295003019638568249082610892088550904018314079483251708399683348568614653045863677416077653083215538896133497999440875586551773539115947344650380909462640741054133971810977910136746767838206756161910074919651146557904829052031059740051302590415453295652909133561628600791609810804444807758558248021396143778487234338724781402757588616405144010021224987300533945143487150824947687526603929779909410433589788352822741593801577780890600942872977036033961753740954346271592765115496740919014684625276573724976708734631947873891925737327304557589358544839357790505689186365958070867545639088126204313665532077625857064859749928324979076965719126939348265081815026002416498224851410897316585742359021363281612592317991745430200634873229921558204868491650523606176973376787837896413612441608011318321669938190023517890179963765197281361915647545238317607087704305525774290524433089832216614823154924931747421887864912182953275410951003756241307066080043312526440612120877262769395384710811073842599244098146635379629628018968811647953670588353429873792441891108265123476527196954767031469536114847642330062902290095395248778168356281250316213031698483244038203731556590399363549194015472104502234533802958513385995375622354261174986836681161451495646147434777555458555463063528439674109972727551505622191327731985656141600202915121157219640515430522094165487664416897759077725206231110241359543623056544999275179692153455226203362131851356001789456337815811989505399916410187235037052401097375245778336644012331717437325214404903193465146682620136012708578132315981825752843292089380049152489096555902997516815233691951732401870693194085581234405547955534209114279729263752995074700289234692898564872600337779293661850846348593544491470980707247188624916481046658462135441577823233998057751182001296541498617000898748270072445874602706029554038219702338270580578438953149922388353121755646457401530264090978771205162579687372414159071488446738924525970220925146559541983035629775347115558275413642249317989712562931504426365983619131231504833530666869816024197601686156946881065795533975500921251064147592692910861739099669657385962466492310653178536609423781158200803423287678953942631175007826409849090934575687759951563498052174102991579483832545832342814616127476313703978824251746769594730648362979789165333539516261021321767347069745616273334167787540466497298348508415176404765553845114218051487572640198675183459624476364362730722306871228342018274156693238720266826423892684557543058212520390836146182847026864146161062161777201397601605507401745942931818825123778294900977518228588293642211935221966720308839301814839414764761965174035589079671214055791267384870125779247450687368126219302395914633578796955334787818781964962940494714850648596080715962420685680527492872735837225997637339778997044741070512131953804257925121408257525360960316883452309253638759033000337461955541329138614339575193980243336091118794944198449757558442926728642889895116836974579127705024585447779462931349353603776358057170354369086916246523964247639527893174735135054351638216119390728810686253418709690241862124119159315342506999625508650562136010748631430124927596949417365355364783591347598199918692478771759485225763598887970952643864509665024735446506028581498267470174793464002142073009823142836384071854642832198487380442720166693392996391479625570750932298745011553744294917095960919526306563600675588364003927569081671157114071870289839774946818172095402331037340219092192863707469757381569337002702638704942354491555068603877228174182067216921093966056108782338566195586918133051296855660549734669838230849354488048597240111482660179876359466943221361802354642154765206191648526520948315069550026787679555121631236873087827362318000697757788466981491538829898080549746355187076378433907581066073826318848874801257298780415125353464763271301471648804673818584731138921444497978290505088937162356708047226815950174265490647209722920718293627914862067160657438721109431566925873789336456030806231183877603781199816306246148076641774373241992506949900019164095788497441258333746692507092963987423650153853288131956379166994118384526593317196281984121388962396867411074986576020468698319654654134742141501933115354120593037266931991054214358488612036271194638188502880916330334803465748033508361397978731006729241700630039945758814305675466142173195914982516677651314926408310939367877054408682883935674052401232492154422422429134479360406638285655073189866244016576982457757000114542715056038836994470368746970022880899773484899111085593926067638054298434583018910058269731412388207854908611502580776403639359559132943381329770002411552359085219476022551439835009170317531778568081654389366841310166892849800924401850327798877001549162889221064645540461793724914119305032968915167991166718070166889239212271943969643417073453733884554807645732173558023646122519652579431735794716403395229482170337089614674644134628510035709789643215980694152159384512850842660810578108802084645489757649730345967158420347536675976557193030024052466791469082664496029126929978735641799366416543151406328132943150477547829651336059856358013825028010375797358805610533100117390685655136941606283510541972971555627378111985819982745065870551074466022411107495086951386556941049630364277075743039386805055149478802946313807362130693374051632597554562871886989959196052026170892326336989539763745731459940294649582053150107820757052683631859122490346145348625111867001100993793505036797369290755780064576716908860862718076355407281014530675100077958349765723997268106475389456267663004653849369976460436343990922495478242762116446650425470216141716943131105498561255076033938947351819345117165739898807896981790793999129801196507367472273026018480994440066684491602038902975834603828073581555191389604217576071567285159326317105728216885816390873193460159696251788307156990511253232814715902694371321749885487983450396584162283965965256566934698007414935296390689217917726184223941074876819387292776703439401829506940469587016364133692908609489812289228250689235737890766245584797706757599403438168729290086921228715579119750128738423395138594494638268831753812779462899274371867170625878111419574012133620978596662071228329934869267758528596436020835097719400025187254367607015069617450467473099670241457790184659771479995390233779546060057634435423545520922968758653624260208535495242971987266280807987707046240710730331169854916465113579467475601584240338229469586142513555583125341389420014942323919822162671059664119063797722134944737724598109248934749034853168984359180007290651739531551142566457457745329312182597245176682919399464529523652473466309704515706299240091854958616204489386763912231122645872749610974319866108887611458426630555872168547929255499842698431467077160268698670162978347051247988201659949712207512337162879661457667466175260150552082316646550093402930449945625510627690596917700721597809995604154462295457761578384282484280836773751355674840787393312990055202948452346785275706889072918107691462027438606132207300501513827913644744997547444121032134447132801944751275185178739878413507577251725578129762945917349523324031685289969299259058515607689594370849771618243626175231609133221325529917797801361145832576822552020037595749958339357781938546405218613022306149589043970155845348231526632797373218320201691545009839511890187837740942343532066047054291721735322203118962862251092929528554064838968973682758055171917689755553967791417522418145193459838515535280885866843230967607218407957270610506949088552210189967439966668017228319899697476743567140906213419645721044145586827619327535384000669216787837861781788008281841080120200077083246802841675363120909763004421298175051549524999578085562129256124954443400851799834138428522844084454686958599757822216858556426480517805683354731868000151768285993004223174260223471255735689080545621522882031611011697185823248486358283280570309001472033600087742009245277183564725990050753529298416902366903143795530053140682269932839280610432625581948692564864273953956533900273729995934450762216849722264653247551028463222104620823988759488244789978461331893164369250284834538396579035583211601347567595519761266320966033755680460531241496867820963799944520872374166501747362210656591396942313481325334193958026093417013349848102729923423720184853772536534829179456246353175798200985732198820428954540650923926323354804734269444342297707967483848310794806671328502126445477753799031667236941392701145459610883220481999990857974746509500853043338584359911096431372097999608086890641797736286657524831647481985627301678723167921365916597123731965291749257387349479888252215147367244667035900017999677444147805249129592923670201051479601502693461760445313360385694133638363641477133512057337639243997012434871664481445456848917169704498397966194353952936845284548287764389652582739858713483177375307773945960184400007422118826101087561580127311450414424093349148399154252538736495780035530401632633582281688040109140481707087305600734255306709965864994800847414938046074671726964472240742251228692784980631023367157338373035920208720934515223453849663976110054063805024246823304686254539169230987177909861368170507270758102852455946516740936831401478584653837891419651454342147766233648319401802395003345043869222281018704224550915239893475955179409319683304100733726569926583370318514207802521036626332608913253215299658089701527491207555070078472283616399562937267356111387885683030750108857710118898599972983491849361602573580321298171040367957120114367923018642000578835009042096162747625848688588154921714162444258412375786752490109904610194356653511334806998358778181313558888848231574116275099501159204756733072383033827556253485593111301763362932614840041065991548831327591059673620169960976482249233158595974843263409670389038698667508427139853955004195851540725637743065919434169612642864592707303542556585910215371719840014608805686026166281192925639967138868689365299560215365359615119597764053885418162976182405410720876068358935264971696014655733863787724505630459250219299234807867082078822022092724708261941643132750869989639135104540190702402602339431707791708924588759986176556540629569371695538591865236257851169248221624248893458934103631615319268652905651717526497344453791126929008491057954907038244837760625625183614101262683311419980766643559240768387482333419192719720990902724256620126047788892414418020613095056383494326048611818209530887675342114012417128949021792050717498963602330659512061695086260020578047439822292372131099200889915100661935642548821553717391457636195129610021379848255185264626190782984278783111235064586221015342927631060305761039034478694413526201180378347177671364645038857210213714806990013833966305623730087036491480387061781103587572199420880215284758051202363162710140812378873539272915582262880976241989753967462507494526159667343230509532654339229425506393287584949054189548197858402693613482367711878525167903491344130552683316170071864504201113111487549640362219045954865069093549105831046965130540912937194243074196949228970517146251514867457884915141849567565731522868477168018690777043496507004261621310261407126366799923175916071738412784547610941215125421912027815948771155426666651047218777267784567711777208991594724219443310148738405365403997264729481400425899438125614936892721817675843396445867455447709836100388618128186466749774931519025853516305061344454697054627096700066704271940925203876734034234555205457016863470865442484964104165006610876649376096264874969447897304411003011608373032423608976663923379357000961096358055256686732733035057996807177337743405658045765890218509786607083144747067530708236523877939382325352342059547524115224739496124859774201074566951943988508870602683584243589581564333472963869070923307370880320897981192251199542303452236371346565166097637085183608750687243766160995140163844060482868883743514590997624601565250523281375776219325031175349209124316971469397219885363054314827477275834964215063416176306390029658556950349234620622357941941432829257472726533078231500087505098058389423248382824071045165613839085883479634116162117228968506229940163783014115340572049107517234914246142761081503388833320542592957582084697721833964500359028207674362820718727362012927287768057475798856387016636065461244333107602352471778931705225643414131204224733425152035793333264975143126118652004910916067463908133557775424462431047082140479577812874703649916197086258189128641933495689202972872566370186590257660493520677386069558308363489115894514756492790326506015229509094170364084620052178921304640938838586093687891035532214470510161982599805117271948949811887801714919649314441090586557087215477955937792175785411046355917795414666557400125944017361596217379893954289362457418378729642037776840952384683302029701046672194952973850287588186507968059093240159524155490678259474384514089879098841290375199443540537185042846351634126895656499717373489350628665746627886730117059516963677425143608500870287231285503848905743899235215325597661283306922539481871426592061946590526432562563454520064773506731029070536584496482716817513707413469180478513944049206215729899018610936658879773496486979707793973362228282845912141215113765856689542279902334476895574755971276121989868483287280894047667758346032311796501146162717080114918814109324591209422770424917555124894012102069684947987428459331340176165775915361896744174177289130796237849812923456779681742574804835647226064959167761660801693443012620191180976493975546871238989617935313166941957554387099435263842313690101005340271387718540501521708998487637183150523172290795225752826986157585064584726399137220569263656828394138106979584207200009400311127451618718692015019333380902145104923752088229900631405935892029346407690323298759431216771158663256637326466042561606241227939372632073614096438980884870833013398952458328897993582172575121473489964338899116438497175242756038196506737506771962866643415421740613411771053451086469709613305166442998266559299366823647911967180994586587679651278401242740114542724964388218930499232862006719693023233379760778927271994524828990315609967363623121586546898037957004562982720208398588712389622427523946138933829096651351841537131162717229425575335403865225052878354024044807683579128802729537812135696931563672795080322778476991499503975949941076141619319392226322812790395385983274088948557040274252771385711186648393675269927916811103123225715398699554677517900724317834176450240932384522794177359748082131191424127549805540333527843305038703646125512651044318505625970883084791267977109169081966076752857159277836802021402146426523805086713046301269345408364088805697950752372230815192024755995608426312073199820819450420355825622451637685311709241393131703556312527258169028875532284354740889998199019489786018741946537909705121387935119842540123029403717385802634367692665062110509559399496788762252912787065552956486086496874834649299818830327671635742136761960996396897738683284574895337519526488561453777165692632690769441434459431128248242649199246592814454078941516539531635217818039040743570439766840537930513266670644661568558681450452808179731050595391581479527853247345122659363480206939028839869292528800264892255267327874985316905110171742518900842606738886441027305562942058915348903558273637836508341315749161127875457289009791789341615351555972923420779773403432428224492507755072290455075143622911718705501237294740804359721130753908632372738219416277821866128641723556969551227111889596640070220302757390721895147883779046083676825138837272699343282248838634481087379677139686342841132839462742107500969073923808990763619096291025436858470414395891561354960045883716917209590025953989973975576084395730159729751945495110391105161281662033663553616062727642894182197423851529350168732049996812212842914747644751021130138245858686174625248754999046691519203138085346172106350379208413230517225724464116171548436475425335760628275260269990091803607127560818698676042962863604592411886123668766133305884543818546092640877904125118617672858491571944971244739031641820182486943482035537231060375790673856049068850176184038334960196832900491457235235592957915649422745610084707101039365166510509824965137101101360504917516608651764285614512995875371136830572067726674336762907248168602478752180351182465314881912712128097797812416928989974342067908059456839952095971207065812100902281236567146331753080573976022555391742784257523805466614677614991796230256903071298892767397778631902025683226258083798137127724262509805898369734380946033310171587969120751907627998244381357137498367867523216669914607012128472230582629234418648465548163157713556317315862181024334797222310883872353904219339924533329878847893205540155541337751885804276173011857825727744293285043062118001409862732524572138838935743685800661577186849494889409928898020940575965845073731017506607256642901839592837529286387093460733990127174721624281577578390562143898466927124727225717999865728544029603002053162965821238922362025541549270120982062938166769608904448320436314974856932362385992169202337670538237753828788692062703345859633328680828919441922636312422421269132707132862836353700637438108104504863950522895430985203997002182040553839543533115887445432286824413718041421973782489870857916083802001827200584763425721398225816275743677241241743405450848510543829958967172735802848042362154760815167160767221063791212835478167595650240645214500963803466706027402510294692522830822407996049409292562166200557364185856616744341152114125834590529932204988630799397287102368256032763918771728889343199206639003631002970151771473343101950959107570682085114952027198152471250186797772716071217975754307096759369830280546758354384492050202375130853346079347677779629774159698388274714093298288813360098293080014986857372362411583406900084735244064694069512009740634326007422903994309306227975183412354962683595964002339357743507744178082238542526812430772335852762568448076312036607419448094066659366614315782300495851376731664164714805549394711072665106642557118866841775464312152516624204162076477918186824364312622550881601043950631257072370422783344509816068952376125638094414796822048297219842174404373703648068920493144342522071560766041589558769122689809750653908690670311498745301711485311755642980473646104944065138743147093447424627945542778837570506570021933054294848785063945471885576308474979724542900364302065179162813530327063471781468981460537429910097448634079422756806834521712810835237952268753415566192016023914041489250442090024112958905830124567420846700713162649769535133994830246142403767947212589023369088799660643368358039443515608114398087633528055184972532924828229679303551966343827466992555123659547605255463522644569794356045359179745561089687134321538741012682917181027673276600222455761891554030681800653322133161565281641807075461149254018525136848518535254105740346807165440263647625649245164736245006321184630049980292055904582023933198272853218744108842333540467087454734922935849615500887418537664330074607294003606011128048865004347480440945317160689735656840225745555287509878985757879673681642630481948344818801174237846910832334239088468590403414835324763786409423615461186241872666977272322595490599658463173043117552133758680196656959599382937247413934969758327242024925977948193389164679929824913815410909633018838643690204377484395473394522585469673820209110033232360044965576902345224057496032515740061185686321252834527005756530036435382459614687113434178129042910810899473468695746592202655694408458587144827199342216180540283413421075864558072361095544308991995943778047747161447939657248256778460339914440704301625314701981172372158525772191257657363575642673370451053298936716606868292037450695381065799693205136299790948016012524253404118346100766598635752070368436806281722658274207392882687762317083710565029389564687063381924322893481357806456167518618544526173868277450144574925044088232124080694006912761490964377246812186009415632980380155894164727101977018456432302776176720846002904856666959327850832958216608383974397689064521055415218570295570233354640276400222899096435587153660776780608456262461006404775186020887135319007457548107156765053325384236158404835388846310609849771937914725231236481915719972848546392627810409717534299483520586027505266957446259336690153066270524542448885181442172109778674136315074052560427314246957065808456097181367209889788632710326177466427534168884622077682451505936479138788732401326790680302412776324917137485222706236194450501823846001670899237989577072602331361161938543770865892170842916937007813292347813553273175598884061032166686557486071350711264794510117332384799252056950163121142902432757431283073874651502848376124597588569996660725472306163681234227385055357401964689965385076333537455477184550728129714786214930196804218318214911026436398775195029740444218967534343375551770090501730320906662012950394629468170916862318244726364455720858126998320858389096314444274696264737494596961194040991225889883562064018057627975387517073081740025730867554503645862610268527739776872559746053306827453508493219605510509140806672034826295619102708905387041588096145423411978766679247409801257526753823222315504397170242244135729409735093349204440416028714703901896386258918957095645595020234897341604866105827589023674255056888846569559002816097043957046548474091395071557733712107802004618132106310620951960580508449637776782389759878324625704853228106917723335496915277858502665481447702806235862101578907195240086688235083285214452197226881676376510474735406939254417226650891095940773726616185101185815388607106906021257842511369501064896949135453319716634289837618333021002716209922060575186641183015442615129125714566176201041660959175711280378053714019041293422144153910152944379428129434890096315142893599621547522487327971244679089348811271975326024824623185373466319768837092401152471426264253462800827455272648336593522929027986614145323023510687976305592542138741372513370619584762295228169073796969251616617385199543390545854721541330212458790682377575848486526223247125072736978162833071322651060942904890400390342286300927613745894491700503956952816222804201523879107571628246585493637463956655388977315684727911753441090471108637784532511751980759900756032642100281368146977566120613063787494846084240688968149286416033868102871739311961791663687702497527224627754716010985394902431202608816182224355028582720073746251124438753266757354183544301964913125703484628535859927867978065414525983870268608320920924392813693420767188626013396473345650082042163959673254489305752772451053930121105733647147673291241893196578396747357262399019337614102968429090650813263053982005795150261109289283063255421557245495214917445626392244686503785853638342789651018376223828314957906547688490779326183191178777982302219593524007431387924104206572621563240152863854233896115287469094429027159813151761785944177047698203667230639830330816711661670374400004961459248211022502942515440714037556262211946366131560733492698101319906136526570811997358070728701191423724986162682327920937102142341179354933146969280995823252006117177440905305772719571834798669472123149135280950366467082401982003231438958007315239620840854027194920797414813869793615694507481319806643221470501205267753842868132488223763042005368980633358182174681110079740340957118357324212647103850650290849408934553054477985937602189023522560816815701203006738195514239963804140119829265368212255764365897758473109919057226392262895857987738208182788993234230108951199833495730749875244665472757344047223047013093818697945798570319243241065355324653091803924514758530240161644459040144366512794188666460222375559401033359404943505458186183480657438975574949960009996061866976338115802754113943793775816659099766940215677444141164329304230815658237353738883798287499115191923289467322768551773765476807605358031855911848479427579179875219452064919699332685175612025859776249731142133310272203837880390105242063612848317396738521575219121917292686490048007801892529099771219635174172601430325466838326813147459391912862706735399562561656436904977108127346850027184214527418890707301644207651516250967776310651420706907383159615284879626077023320361378865504050666983653652318013838185017071529325487665829572114897256788574123887203769521093140631431644533019680478075259986595606081993394363443289753912346022623074589729188601522805982330987841278980610028244847996328712153171073893287749313535756029864472450341988731138743645813676216670316130967165679640250963238932598398769918850193362448196254600878398052954901406446712310525185127704654484953945538654007773008588492684081493794852451946836741698624838120106964653395007882483848409260352125399481589459829927798154931148040060292711530581028020273515351017699886797940376176730982619481801997218523330239107006103338390040968847185772796357465983376588565039752088048351069776301493919472244735828833194086799582024471024942743214386497899042344002814963534412807973449338274178522640969529005226566188480282732490387131913327826778815986070728294939427881550122066935372713632685028418082922374126005313000104131436088040790517944434787381439376214431390393333732060209167273894248334075801694985948856732452474134391888655616015161285242616962550814823205447472050728281980679731687387410549189688652988616413476259269255016918315875861793074077315448021393631129760736233761633440826628484177891243251403076898603073294492821411753736999276230457889460102720125027298994457758299096244900645138472436976400475874360307107676251236804624997236855651919475963185570908116002837164271382410902653825780377311451322399340330234383274387928042332937816008877799285018591508125879774599747101767483162742631081811727757041209766086468306824031617006646996236189328547849950204189474593208967392463008235980577918296849309193878684622646524077100974842878302591970219377334692540014045829014211641820113079213004053083794300707934532486059554991765784758507538326767672523266275397521717734850051212842178766895052005243052456159799559081991591615705510340744730024961629329771349928024501744362190076356096817517676192082476602667278714499421301283972939322807247195866954038215454723052071935939340528262769605187172858960142773757843609509974875334827639416631600203426455797061323593675846605370982258009743177112590719555091720007607734277323045055331108675367148918451362021010866325875513614486400408243107459929211316338105745969711979732279933934249432205928063995272584926543072067314566090242720974529645650328702046267933056204706800605560782785074194998649073249373246644283134806589126766061595588158086630506787462963090850315467573509751678980883780591579096572885243553426170192612006695972544881850620865543354067508658306528498988812659734498099104454662050770464971263256378881865569512517003266516782797645880446811176840731983048982400238723667885048293597132392616558661747237436987846278392093436209627465750478821966611963735675498918413518172200743858418675000843459166896239313806712419283913090896773046246584073943190490427921952450073699484441966320971399470109132052833149408821155317765750996222242134015323238907998611798541784318164028363125835140064208362163122069823825499146323588054575156038066438666952177829563821756138024685261317478026715383560200901428855495706115492981117334384613131647477371061306245963870267095501514040341888267464205509322161069070361012680315570100761632324806254690371082556651260685485293267376794968070890842115389288214016779274088364377918226471742036617929341397074701540588317957493086500039004583435770282770108964529685260713416497482896282195833086235110341578849452754389587055953206866350525088120803007396365343627243188843096448488345843391509281654593160705213226397890286157455398751025182659348132630779092770506139731645973671418429933714111134023307506430034049932615742847090275741988274930743560925358331758050125040504028074025178568860154458433174455186539577817613021920983817448325792725385451879468099036446620448187183957197840721236004422570001666084667351997980059772526452930029197287764310088745868397851078271868486220870158382245306912415867978432596000218843881324084725267244050683857247071566464228682351614165657382126585835877250154740683116287481885423858005992011060031318789100522596885843105549580423209823466071936779024688866679191387473603099174652272690647079246400767477295181040467613916985589092751067295130424651052065630699776798483685303777587649099070731966773633278409424425397366429634154271962940223190215679805472683390029690031428325395454470559596079782078740655704987967948617335541794199705241303007563923545663743024705858378847099969198814755881234992098697640024680763218456743490162376962467838275029092084317469732850113496926676865328049692197532454250064675870169885407269511326792945237744564610243069573117428251996093697797388420465336046313015708107362481015218166269115420459999323441106551435671471569638566637598562454121723889095398738683514014092958984732141389534688342789598562382046304503824040078804619384667331247319003202858990353365490265346059262480225278160996014883911562096917164989365365534569699074066145004470900539217849219333106796571355386202251714497912790766405561389964005355563297800562595729844789352218928297650523062432632228867911441444849673408743462211630239378869318859892647306398361213148964097686010367451099632110423810713580777633889496401677449203759202043770992043067821735264329448002882010224405341609435086231677158851015660387018029146023527742808627749717174786085339645466672185881809743205139208105314558545309158992147261495210510527717611849042200302530908895466898666365816680429940472252325492949206530293641368635524627244260356083278116532249022860844232942187284116283311292940476050312902762636710100292714128144161548563727118926131969846555407569055050435021762033242665296838401541454845672171383436066991088171136190288743681338009108942519833672708738445020723963379646056765354210632074289478243843496654482897853899202533571267151430461955575865894407632553625483308296838419125074063079709706079772996366494674079343398866025580650603538387134583168428658884064608760313000899546823303878564509533796756503216415787943536601681632365621585723337570125744062135226927161506142496680719051257052007692865685206356507088033206400033429030393846535856719197606518455479350024163917599597135852910088579865772723102739007632706512036451512393511459420457823819869659425687857944678121981380337516632337691904803766446320447939260837784508630190230214056830936824590551978383796781804933160083461607518969342623915022363063018817869164914128529557461728274546864262749889474746891464904336739171400218071203195017364320732822522372642020531044728686741195985955555467799503739482097417799269826632915599232182793277597756647007159031928745669425195974857308131158883006612881300211163070411565079276487052452228165392667885722388573594277525990347891657101680695710165254659319409490352016245691069121504651383437418857918395573785902529045807888044566030246285479961084881851548156920973141450089496854689207880358296454932483701146563335995057175067558374761458853274959138060193331613836926099432431519433912319345780029932761761153349646806652851436645936620015287617338751796212081761055324121582071484249178048825518944935609952587577514605923215778587640880526955453140425589239647543678591216127800177349110342419915525412157750200257715386919351227140929456317018200326098725474531491860325475230192726168360453340115318717824217384772212864317592324177133260733147294674570352076476660786605117588900451561299138027549761042862465117352208746971322073177608135574576075642113385398960693486912241936687526535947756462021385595278529871770249938559544502875822677153116104793940758539728110463118287456185142925205860270423609087348041897276631778528907446412423278623686658674757392564154368538644420134906896942490107962524069789073472018350441486014207127236684001483166477349356915274915221253390333063322606588133053172775259744857893142818284446444723050218674985356046944054479240248142198003609144476599623477606305637922749856165131595514943585288185204043600145092134622056128689954118129248432630411918234501187863230767994351320517858597747156863448126135447831252279061199620402213618987386675853825278762406897627240444202785873538544420653221457332936777530030407418670714004190847437901668478473901253820180716973617615031478976313141176696693461082724232366515862273470117583957813401313024773701469180249984616662733832227153710766415401964290161705985701759042613206587896570293081189160546867387973393862846369250755540781214532971304708932066794589059585363372532593520867945376738701695838708179160174271711932797960557517856684934958552445544888641186405899463986424675507634746713137584292395976176010325832683175644130093207959110119140010925446358786250747018591491472657205177618495054849847829023456648910754506631711037725188133472620532103151823882697521983794169797242763566719178460697840457538467380047278690574260241503363647895284600165845381105929912350929069602216528896696826388691489743899894669797249660350607278499763969493329462255548609605280166321025829566062922661550168288848441063866234858812825993355298385172981737508040099041172330785125582105913439334660640580550621937478585905913234397333895815789546134121541183002323703224674755090873062032585236206924364575167785170346103730742660051432182522617751099168264616023553375787923736285810860262168170840494446080517730318572438887728009051197081351610980813064946211522689605141585293065431887835484746250727361384052411275316691318458727500619529798193859450696673267106479621285417254079269821691458234275486874960985602722841055263158416832693764465435674817995724075200180305237932873705840549628439721563443221009694689726078927039246254012354072691020710957372987154170098573129882224164090918890261042991000282456052417612036438590090116024637018038481067068770274717306357044681142217216729749365454951294291929316838525175558886703408521335724355375762330968459577008203330335712351792027139413622429975040060587937821845613762719958138840635516604330210583355406526055927279930313595173058677873500229334545779486982264670065204284275769147165254236134782980935671381586574767613011190078718056700828998298942270339864360683493456454574246980010624947515664115309916014565559646523933614258936226965857322168631528186515177254558463679459953849122135246883590380399704299314140523488027247734241203921877335101958326723791829046602843448249519389149453350511052068829829562865376679020915352666101125831073110830652204084112443502654494358590952057473489628572288320934646778124060397345296324832659922115151405148514446854391028564513983545114490472546344721912649647236665113005339826271562101818330947546831692211596043514472561999732675427524851154952453116664753538283000161454964871270916726312512342863809849708965585324609841958669654967970186355819621051281825677800014123507807483323712519260815915812794876345723931488648986431445612429879732435248015580219371113138925954138654601376653325367817113046736249870217500260696530585597700339246481815324810430377737243070743904780586042049754357211711492090284922745134081140999639496729036158191495832747340669013876866128299667541248450483098337343164539175960995248534587967830157871390732238475096030808366524016706425812950029412904206664013418179867963316564082420946832186201115749243698391505990570614212019329494447493867248432288909216061954492397774495376622691369606969814675549410141952348845575193324671444245004401915439667923583940414106544388265775249987623269442416155141621712517853088870528475784154306353348290749125227129035314776659197018534792250938038567806465220278926853546367369226105550372258293040798569269112251294379313781543521028132168630758236107253479903989212619039075866999896013921821068219282286233846204890009961215662296919481269977617192504671146138161146030296570334151577785952524197464411099063716789898041674835598393830250281544128628839015136149013437519543133512693504748269029972922468304139585854833871773400803864279546816725676879269358970855089177703924870478431733714869507634497572772398051019000284451775759425396121984331794106467942815273517768202062029816413848634355193284764529717253570203243123524479934264631779054312990488435048290154525579743837639751182933560901485576871072327993119626445595210388006695569088912066258651516118908828604669251301924805902524637595359106957272140616948807610163293259793459262102104452501958311633570358352896705553006446899969379377081625668609958233123163760363929771782310180571429793676159815202237417017200290293433332259353015361603651200617101743170136875767572467017808673694225923656852147373439765419436789241967323420067104873518641727369925143364682695488670112375687892645137535882072133098147903171347234537782905390951006938405057408536076917628749755677913927790367547406746003644736517329717421980798177492326827254291637282205701585385460710833220925074912926065626307072206324720318788979930376907580078778309154955157828992630420748177877532419530689066459698790850460327186867640543182061669840400722723254092634798625254722908362876840886850774523672149033858427803696374048790285843445951511782896377472608017072418883165881442562801026836806416823737175095113260404231972029646352582813592077606228516382748444487425651263363366118739063273018372161668588266894296036575366949623739761688371152071080941226793460988340941714240762567923966442957813477323544766710491922614257147987260788485512386768472793110110671236220870504893726623659461550170417169887965073007566723846368704471428164482143466490041947607240000910213101839950394774533743110041683037607731436560007378267355898518914160052257324958581980966629421900931344070822665004589698332897528934608500890845931025962908976023405587887152537271358650115840061233550292077819126829685387183737901105601233824484541979895989340413644604343040187537188786832039271822806342448313899744915008389406651292111159618643299686169670228528160626255356137813832583489752677533157884019425598065460933294579309230936568727088128767499230412452929774407875146433167954314173919205153418693510359934813864007414015573415675090007886429398289737608027249018938248093029724123202449241401889087181207924242415096834660370718188557963956551069295851805453475525273257528066014297053132729066126427187093769907497750681179254086818843040723897694532475297677517049052461934722640224410521335417061007096997916283647621736003414602874890907685512986967185511618918941609611562458067077698629265267199874085912073801261335804715247539500265149932133137637004497340191037810540349889130522055393484770025011630305693605823034215106277144486498376676411283052867010525754906917829633658015090540376241880664701859631139106232009999540626550363771965674384220135780446619978567285073156920771955800426450695032670340741680648843991553916805546426730024990877382616227355655925942087443588788174694904780769851322812149621400124515634021664573487910521453988554426178746580536088210088661100695886710653248212461910409704476952654681877691058297042365529127906100671020217687584450910954564607565943731397232621374921032307589798067736701046082812577745898017524754604245662918883296538312030336995275132124209020849085550800152197828345036981094474549765156565670144611965554019778890001998557658621695822848621506474991401106555584235097287014122323655618113172575718755717875227532884154465158699911271086562245299008001535775116675978054135381888769388429245214830112788151329487982966670613598946194763547072518062750984315819169078866479199024848051238013271093874902349333981907538428158858257899959302159469151569587150135303150389346103959831820347829407872378483146146816542292403166659181773270186598888703281645561094224362006405614328574859323732765841056705800743210106055244494304249889143783220970028407333783207741783209971851736568360608348145209454568578250219389543437111181355924767435942969916012005154839657514184370256436095350560073285008117519156895518471435823925432242419612244203718324787284908568725196634770186463174491196332967924471277848423451191589182669690171405697289353959308804768105186249523779259638377388083375511835190908019718932571158260747723939631169901847886964439446193959774639186779138402963343126418284568173123536465281815004441537257739386296766742420029288961430355325945830418432243817327324307748122282935456319572388003957013163923467348759844137868172534729700365229909206068426373639016023025709053769588428154771434374201790098648335769967978227481253961370487786049041698535955609576698734810151921348530701255541066816108694681411571794209812880933097655223468108353884704972048595694419357916799584419752242593091101462505314933947883161328843233107799851691954228995110735144525394553317457969507478224359221105390387202780622583886549324606199555978136506911473992271294523565246581177665172444154713320751199929250779463847156944531818138377442008018834195845878992201027552733062914023660020653258641114611585136214438274273041101005966438512450980639223340866292984360986343593736456798413903185255830527105699907392620857367153743101422261187854460299582377364338182476894160196766486757587427266070578305706287453680879620915309174365107557071565231122737429554164799458311093608560356038487299245431644435543205774478749383878811339707445472769443829962276855281585249466244933029638807566933671668629290000197662903994629847124174512245618091004556903826124125107045883648320811937389817876200791627263842417998730046247606850681333631974047894008813313440186971211598904023761931875528167415524251440673725973204340341436587640234105067966432211045985683007600464055044240383970821344720837991137123382601496158281352525234514113777644854762031378233638014400570983057554124638413454541635436287270947277134847957884324409946332446345036633840793093627377744256285103006002922148761223881344374755408516164624391148431864476058098016235206502039961397160144285005973075536187926160177130007086022930002310357822655497459132932125237110270949038474522075015753326480813090675261578450976360249640042845689840726407607471867805667058763943789193034891072027503678830361782028318510814271830165554517358601262737282458514069340833084500041804437415300122067277974660278267728360130141153483957978382544624871134045725442175329820676763430377635042761984341570963482234112479143029359446419175991857691875583014515066776610766208030841662037818236341122011943853308397957530957794455768532588897562885434462580327196649426377067856967396119373036680210862201441883936213628777626492807284578370843416697542729068978112891011920202843926174922021169170907230015620764485295965334374471825085143048498042245937060068832486902711100191613139620293933911585121022936726460587779248526329124387136797822534596448802904384639564139809956194890372136625724478735708336673484948866379193140558696612171330030284758306872565970495156121816188175727771218538185019403173177508395809381630877745887099656764771976281906165957201012225266800723812052539106348140670155978151935914464285887468583098135202604950763091800705696826393416994924811225580233381948048746375700767960939273946157902871868084295223052551299096596664206696769131165617418821059571961528083157554615764017214502333018651142535370657118323231932322190317467452079313858569352281214235836690404386856733695217036434127382609301058172835852373135819098486636760527997142806265711293327237060229005746982296551951034137403038688871688864174970678529991121791295357978325104759233880914648164921456478274537568907565508374732045112577822298468225253845142634668795314841163618908069241570360296904728354598389819607923314304587334075920113401554496671361094014042173287677340182093184361729534708232857736283763470299833876221195695742375284972599265193757771171980269080075600596212577053031311692239015178307051681331689756285244557561246312704145087679614173566962382897826020250406497122559194051785739370661889901819837070829488575796107918767359824962252951795367245070354962018905141237546892649506347309473487599547905789051606297535998808068521143885573600082113920807862037841209550525160706659927059142850717542012971874760756077473768746939605635245092742956396580332107161313759451559254550740040788219309741168429674358525976280967872037850687563828529334871328625143113701499184734552848165755302024180566960576608174151782547780719710154091233842141320662091668523848309870996828694748767530369201686896987170009073419962859350314829824798860582562230770732504140751555098501546941576743223089438487841677515933649596459711594677960686152060628789223168373749694827473766038962596216744050342738377975596603172740302350666865456952727153229890389157506441774189501986442785262935333139167188422462195090819299605823615616503142022829407967539595236911449898069247104695476699655563889879998797720779928753009994769738201746762814129085509016359715758971908369567415318980531948522544841356996829493344191669365361816892545800324057611276832987781083623188172037391793029406098342046577825991469829161560878092595016368535947153851448502619788436017936348237100031224372925816843682050270843034852547785609142185921394043316146806581146089831462413163266028347113212444139316954045508151513996597816579143648645704053727175432039882022858379890982116014932683366360004699960083815125771294827499753684222802141035819241768693619925097203616047440022792233636408412111844368667753483391655993937499900477632631651501492387751878887729986836696338482777490909382321520101110404507287247166615390725380963334899235340438263010131286673651716952394639827506352397498189849211671235221914242578951227514925958392731047280682762563093941300230483126149983524107759136725964800789009346539120694812373453151312064352423706801493986258845167653715203154181910761896492960679293017001755129848417760985970027769680578301798834342267827377213543651575172083917323203473256732342446129773549358868389317646258816968219781798766987100302000796646754913613608399892249591804444061496284029362708395252032286548638758955652385324013228302367101367187779097380470788286209937872582444708801405777204633112816563435541116935155484456037492613990013651273971405675072661243374824791395470188176134737732579639552585787486244426587845876735522909132269050853214377922096085218780526771079064113358287916641589512629238430427328904793931190160828154691173055054898499711889953079582975226615474290801798028748442838157874136681912201235504687209278988470055600190010202621403746709563530261233499534130543311562156739743208306659559877697975682359588639395173667285140953656095268613937952433530685267506068323162505146822636878788643625361065638899333520935465766686761669827805871869954789859046261062881988498776285435293390091240447537535053588042645456572583126025988130102125593797426842256045443936436988419725666104318280415753368275469864561925451651826166838583768299811533145314535505846908490552988304248035452655200820848544951415676274030567909208721178611953632171182934042699255682139184647980549580419929326915271455824354548667026523446981675018707617368732443130093574047105291121217934967068304845150158334716531215363316652447048160503908286073647925763206341709371137363832490040202864552470434918902413106862716024131668073887713860056382507747683946574415539186357432006710853038500533011536876502381395716226063390452172840572622290952333441688960850088670572519253630763871451955482158694842634223906425784588281375819350909130528706168564317877624372697084589908351063695170777115840423127550420473278893174493777124775871096695069544041792757874035963228880246987818542213116534488274268291626925764247266792674914179217366715473479694795410927812305124146322842419347022043403193412197087117995578488860418841151174381422260011251036111827363770221897529493063678396084585869628348283789119887673920452174124416230516249881036902281095209033855252329093461719308862815945510234552080157850049808554056837848035733862720531781125881747386012449778664038883415310227584054342704966675172508695572543431881404785375243352237894531182502325249637027913577097068422182967411486425527950502468429005862188651530218888424932380872950626355013843253252146365034000244289650593019081233861805791253800555714807970259924446708991442542802642473780114330820205063697917132986046473896579664310539757648644269209058647470002396650248003507730454642557735321282891133172747414788078271422661341703519409707460279888854950023437864015017307081398380999120370216175592216181684203311982565619964904256539807950241074277997601488447397953564226905900917539971982211934930631274698790434071101056786201726714754139909449817577210691003744480976837849399446907865803841313741172411237859179181000985834997403708275590619932332365261451058610495695432462622816842123982221878197322284754505734266289611873408136593215254420533841182115169970509187783800042315614610864375915234894415988728435336338951536043002511104443116416488869086398354958596111728179660110268869005542088300700223577119233479322797091959900640241347548888019163268074252013689797366426080528422475885381774441382573977110504922623326707073864923110317184568974723453615250802440697257368836635459348348958455761080058705079169983294160654097422062249242559242425748778909831325482448210203807977955918326414012837467893566833903451330969594671086021644987472625747661586042255685192970622984072242100766839746235372439817830813211865788426097922932534482101621354750107402381918573376868520986425314372950075923157342759731622418176612257075327216066198376438858369797129742475056015726195151657491620358599539089747526173356675044756222670124824150836562405026933756802169192508189561243101568922815554397579292681735206663580701118000114866536944187316918240148272937696432414311552399579893008712383210855981903347036673843666649375726961809399008656467128839033569387968819159719392872333545910524420004551302175714080226773951963097935413682123707361061625476623059893722198704979565548544006573034340559374558850321156898011797590366860022639896619690437506421537575267611489845936917399109060619179971177712703981958950614970308997020558602137970138006477057231228572541009156874095097192466571278344527260187796615154996329660257788838082191532260260135599112784161253935596038888140130459048498750669365593308599288935616264227703921705451827510857228787844229320763233366244195326938747209534348630648522312399673875017753266408265653368015274106215508501302293572976229587918238322721420918788323702073860810968071991417632234110031109663498700002266252399358641437186536116674710210280116181732577124175966994759786941123157555742745045560952513122298138423679916731292510251307136196826564189182724637254447247544915601409415247692004763936986664278049513753678478194082190780181942165282058377951695822412847629577179871130496844100125114253513403031070481196715125334168881465764436893074062759172417628327391704096490661601842113968491892814156641388290543566261770932696289537933410944264389505406251154183548077372891380245798368758758667179493715884080461368083317919046814806411757169009254896223302454270471987251598569533769747690843622524424177000322646528984411315011655327929894573998226710791152407534212239036860853498031486401570760602687576355753803914300698062654814519963843571279032948205813020698273529740150721099604286064104750314746110576687779262288617832831071672242938776053687679241870936755390804364730541506591027720550115949316877751381752528781314865204790438909452413899834261249971725270707819104050294493962639116987942706870680409688207761154380016900446592412720283416413449984354398970870163277704230304469036697097857623645773302012765701743392921478525802540203276327249118230794909433861148504163804602923334391266218238058015876610435579861443626581853220435401179101110694541721429772181983033644423791640746841076784940600472441475904654347454835067672549344793094110067593092783443289151292631524306882046510634140137377477960056764523355382519005895449342035746492525161057080514186178072099903708556542623545097066125421087551823159000341234257494985630044999739063238849270139900951818910222817079668358304856416749121562532937997118093776596716175016179236787437164073632852699486412964348072399929463720322835788935244047206993825051077787480562088276470284638503757653111961286912852581197608316318176387492766750659895997661705415627502490297613086710396120134164958746244243358930632322867482345083219540193536614785013477341278995000460929000326993025443693533802127212676695943761639005205139130960321062305235583238589661873877211624635816174602220503553452237582536238599875496453685375195228627830680755657458522989310536386043990794660014186093741977083656190871406711202869267577098205084299077265536535921447272983509621072722760417792201403577129132721120007297183984056543411573351535681026836311065678895991573832380522912604250491198247331772964527826200398574948699721508000326745489701384936855804441984489404428991327245369660295331497929179648187787062071873871557895556066198168850553606587035470545547567600664766902482079653768629105831002698485929648962294649316979092210227006548956006850286375686845285989133989503970938479308790134265821502387277453753927324830159327557819018633794470239678802644947379766306410303495424161833896685409977586121505720121852610406007628227462695643657316010639462997279829175286007687157150342020433465085724244146248400984685922461313311834191895697570058537924419993466705914423349962195772990691986712536575886402484955884208035615528116945307722384560910592321764913003342381238969114480226489562485797854939443918477558370471371443685448849250613663254774149734320582073539265311322449361463156109284141885004609218943589677529707965079176489685679290739331524997721969909000779832859740740512177541861134515545062049294756376973946404302583870472256105336034921076175496821308640262005814951435840334872781526091279731255519056987524402061078053176545117835777294058707296477636975152769001600953561603609008704392901033325547744138626553125799242132719608642696611420887219250820290476999805785356611581374920198545764692759037425756215039507790558569340665707464038981627816167962065477240288082005127656474792666649315691466865505481195312438808282706560319040424781303240783110871020195976610578295759645709269149449248016994028717484791295210412632420118703506729630686650487089195753312010143332495636838562682658022685648317202822653726791557740606272553582863535355994207500042683722793722728707347582993115401886099721253565244775472403462446166210491488545576764463122348523826079657421296671159735091238319585684646020904608164757155341653319288011782584198763382842625419761566795365506175700912602619747870913233367608034014097976274212501986639993745163149270344356960637499642515907540206324728060321184206979387151670050039771855765555576938315038269311609591639596652448582506401695328571374875703614530377633487746194761825960580126487861032471113353583349244032567547734441483466534715580242615579815813031290275057496068344706230090349634305694136363343041576021825190566776473201886878560446067945639072363348098162531242769496858943617542202705318237868185416515828556295863382402631547887869820236316124003154948788520006443708593128185300966950621171213820085761694102612673078567636498518967118491065306098162064100129273095132492826229817956234631174331632571850820488575686654655027930027481271230203518006914163562641315565621519189788170937272405558785494740043075259137340420201584237271809537807205873876744706296151208703591686263263175280401697197871704327929829148110592515817608587514365169544193187886756497671395593558476764532043806798813059827569554084509339277682616735137487079862795693800779340175342714786919152220277614000535756190878875420742697830428792703185661594090179595841546984931591365779815882422664925074450366784377450935134167636622963110988644673363259598595664401686463197622492360767014485242057133669803556016890589068254143855950223231632162175968366127067627116075726582539552639518308977390750902807053302880912857086804778730926758994656390738219260378068162571362446978463334921609947123345546597755762739347268041822008019039588566829576380656299732718019374680024161440636675167260917176045863756436014863362811219686923803755152480587082648294462966532103292235452557424545586872893516557678960007047066014307631896420424708889061189265736167529378435019754949146447270977806006412752762842986395688296751086840442488558449325294249157265586868005169405788840476272415822786456792442181152596449428307623291343502016500032226660198853337989561879332430066124089262285279381843991384275577317147477571302338248056751802620497055269214958028052781958670696792951423530122500799228997335501431310073189798654813070059202455006817615139052143498915438881232592427678377596644184954386975910047757957918904534691537477600626121655320491890705797353965524102819838386407020308532774051221179505975741495082546422144853144981496802389885380077075139318514918392132335592148421577990613265382128530376902964778868251663846993840433998272489606803962663972689844666268887393047763638502014585131752284393151920207775201367352836452503466986459886102628983779505702054385628646023695575794627283468920225372710526670875162484195052807273388706513318195115461403866220941047510690634107733983007773639181387934761909801232367064474793322917026440324779915959589415702747654171864489904262601336221949529682226592717570423835172819788757941926610665396334990137306469797812794421583202722862900173988430462372147834778529294542223379590152226000433091133861569130443556476416033275313553959122999912535194782336160005242647211751876966531873662154653280900214080176614426206819785676427586367913888231505684112854743467708106328241647951446451467307129199528592970495221826197525428825443949359186540656089809624963252314942521548379235643521596657261483723894601533138709514958886214674261087651885141269446002010641398803154886000019093830125329701022135076822432142855929169809282191633409055684814759115582016000130956134683279147469702326841346341713817107996626374938643287996819761640343973871918887384895273220004847008479383319229296248520489922430594994069292683992409595737285314894147582079405965024215191021885235855855345905817673365846014449081577957713006449975566189422665125697602160984622500628616597384235052448342204040593076405237722831157388119393706946848052930089352845047380655011708212280258165300995172654643648210801235246792171807416791244036648341111502830003498964609494197317703011021130765384646457444984828178421643503839201392717912483992545533631840547226452906520372912822266701063356605779952565007683552914390515437104814131349499489352541414102360372363423111411072663473387094805707627683641759734066079559663475989487298421063938354737548168831881306044720460893246709790152804666972550433079370100668266501995992130017275721432953259830830057676585947056046703441149680590230296265888338808088598426183560807889813420937697475844295546682097123233279796875576822302554413814736313526085451397804872749870006181308992058964582232313209774062856839405724641909597518405338092325560294599133016580986599206167449531919341657185237628983049860531810578339112898312506681187686799386747345778631044161292907074292163553334356903071773391274353949767873582319906129288685836103793818087514171023493963594256418012297315166234754325614944815033577292908014981180621018838503201927846533291113816455855853952242067237523285989877039509004958660017803488270882532521392107803863245874388497179530632665060522388424781775866212695886314568618686372300414084828036255329509882945097249367557019565578478121400676426682898641736036270041854281070618957336822133021510526557086079142275554092391692062876200704321325999528150985067658755638551441764064848847319579077031712186408571944702741426487188175064618808962079877210196666621982476422699924472854104673185328501434396429008525441507829499147712849220833686448680165853440913704112363805721348570599237521934907958592356810482117168131248863829761266867451185389934595697437134651049324602974245907885822198689535663652928262281498040437360820671788352549570108520751199747488092746143518764122215774086505869945953681057937364032735684411763990968677477022896456426149620215412357306783660916901109773593520321396514684534117154127068401714255620252391744296220992035341073633709878999535539708975000876727483591530470305381555564586164228608833174180532918740632331384657508647537019400914503587155603785489362858837538590113863959213193522895931981870570633541517759129291217313907201519353926655012993010520315196423368102414472747998775485651665980475058168380224660399592252957198689245936925078915438254764076674761018362209870482275354907256190020624552016536569375538905599614482617917158016395984495857770941020817010255069013123898645572006421020824198011891093129567295653629985407974415791599858630952191276184087082978934166665434356827960898818782145604671821229914146338495756234174133928401291257902763147997755375339371592553981097628869862333014034276328299788620743492066374283546793462761028512317258504630849035526436794923956855716469048178817410953217448298834613738232350339170157513360755682127715556094538435037221811198753278036369507184776092285009198763983301837935707403475881723543058684730953978345761698929898685997453957213069120461527226223444594026022372865193605971850831624613969210428821693058887023282569954018718789923189964872674258030066321248200589525674342228717776494171714038856309037502135340646322359414414148744145752688037845053201085970619525186702144231382526454244231635090710536306997122769601469514889437785616906308473469656759412084230384853908269050864394442294304357064233904098400736322981855985673836616081132464485450369689955941818518407716778076532439816138894160554958990087372778660537721489351423829282039321933265290429069005391142238348050763694105351208321376933871143104231165893509673440420259612758021406483203820851183814694883319037747118002806334612737640135667972418123249800169927166858036151411003306505323114678181690969440465678619138903778205672699585074673394778545792430533628880677056869465497502203450032901456027279026034289423508553010180143971093203026812290967064798317855146567545041569285853636208255372344566982238500348981449900306880633085296674691861045518990949897945124502683694396452261589303331128840845902253885440609809487653231069222602459281060564209394850807510599412115666527059725859280953470352775578750921481947106812878635317926944148894828791660007592395461444143105581294925022078728241479607230542138709413120375337990370748159707903304613469550144484479571496900668035098105338934369727230834186297128382530494294088395262300224504072943097367023667280273110614805418215682599855870122656206452075883182368054418543166606655761186153226277713060529628672916931138064752453354235234113842401271955256304296347227845926446190552687064496723921172858984508407890702039007510975526334147706765125451261719009747352669953987311158971301579232518014406045789147638838165493167590862181186576403838405059966773739798710631360815548628582514387186797594508282566793863969940798113901113493784212860396553180503852724496389741568303095556440483618470523920204780891836773639439892725648686681422155222966529621378684244751593721928811664337909055544347922689818271087463906603962700896345614445763564503474050816203258928157485252393197365719185828770657974639414071711194415758458321513756495705480448795335737655847872817229928322035720530422560193036849690629434812591186804748630063780728595254988001288664451578684644780621024603305922922587574346745410333630145295631823347523905725836762591070439974537366717395380070680438018438331994945596502832120401930466804278187617892200526547705932627362489498623070521294913592906698159017442389346491839905031134826493210087242313270106738238466901831916588725436949407235332695568724994458148609161475547604838410587738649533818953802747395278613298585895174594790548397877052192271017419957242011382464667129553814771985509514374248614349473646684233508961153336605212737886869741401879487632809904849760012308143469033842639487676136694775759824304970252375905330374632566895336118639326584786962527265597906382638651357439901127436503058418730748033284131506525390808658598172826975747724980500605872162479796695232331398545097070448612555190573655425365995735803386508807213160780986239599522533917919764946118545266168152481354269293075019323046304129176997265057609330127842947213826649379408832824412236514903828460757337025940372961395378357369733643072916368376916705047190544199226225130606149143044895441154057983876959096119539546187908763918237686409973123820958912489864199407739393293470328412958523941046201392075223074497517528100901279371283050243958639534558584421985540937081024346321048915273786102654633699273961761807578962044889531756765900955312962713007976379719866548911033376962357704536575527675866560488261285209192260052136828699997168938245670375502707914650594149711548884854419758672240989925264702410408014381905373105185693903438732279190702016344042809756840133625064127446576798470040258449232277334013704259784336419848552941998458688490364504747194300929054676246248497736922470696607477119522224210302237129420792384023616910308798676602232285650444163879681054481970968631806800355084706194081718788934481498951737468990744282981218235309645820161519704333771586825791572464970925913020341239140187616011805267935588051487776031573287090097621940036747428745382773076621372133862087695366847311362481582613197174011798756470199971555849423677666663053350647440783121049968539391720871904044612126260598031851703917614636624011202944037619026845812324838571469854630278612413981541951454731312118755344663843453396562529784330368257952956918105671174689790206158697886139281066135069977341656495016126595298441533135592531194239056488664244062345568794627914288302593096708361941269503263761670040491128940724809046180743413508433523133936038360213681060271621565894136454368835373596206152809253134233093778357785879663312994675466628856971044499918987084071218928834165581499891512303791360097079749303299317499873651533298879122950662385372472373780494894152855959168101381346149868365444878394588743119668792853683986257267051036213798225834536698465998686225954365626595457813154560529523916319416739423447254982780749963523368700305911913022931376224081969872721879130690120059463029812608295780017333637204503887282383021455807571926507455043295529386123353275442590982792258691340024820379405934947107473717468981334962220411741359492499261238163704462368339248183576923721811858225038428396245820414105724383577451888939419040230767647612010134131695314057487350621080352664297649241103815336965657883850086688884778757646631402130516341094893462709085279022591007405250365064797871410182493145890462564421008542915052879433868666590018046497877680410273530570362980595513733781649635272233101950426191646806515190703245362409404083663377635622147066996702332611964975387630939801458458419605084720159550549488729592698677151671690487461743466965546449812406457222789920467218423633976272652270648859450111409859677003532004240240177524788704799086413413023496342686834289894806723265154389861205554363832017446916950160348554840889236710502380267066350501225758624644501242808218296622034458256014425506369189663706390937310614064651446236054484653465865260709876329386021846930237271504846090432996584389329849474167937856586621084849804706485741842041899565380010059084740706125976526910386227697395749848192299135018845220417287305742208628218020128166968461978101200955616960089537865530943492744928976113145953750761791591955929204899124361826933328039635454078363890098902983487171605986739175483385258758373872923327863857972672093946973212521333923375361477314330698686299514618629348964187760343585745171645006391737070340199923858189919399457822457074712732084400383192142629414532912533425969920792389720073341638666802603777560254949326477940027214445462067162807322966137490271819078437697980014303740404988801837603568692363703427968005120223537941300664297910239747937890911848397067499967402114360246638816719786710173272260282804347146845273885413235668860060355417369764851593659894812892191200770426851461460732646326566906269649739131948992992254805850969857868223668270634088234754882113878826312190816028365296265271186374865361129680473853449214063831967816270280951883326499184309151319823629356886076104364412355690372554027269207057460913090714896285573741968160515854170753498880191760363504642716994337810743637039172303281697207196193611838087880586581382189201012267843034447963144121772172530156200774503101522201732148620822769427353902355000815716946094682419872899149987188008283132327420903867933336010835018098650768647677679999136379311475390202978369451480555137997511309429543749370206379998527027958855925263016708037964707276769458572576112489521465416141925421185209078113956235765587067370653790702151577567565263377038007995091037734800751466587922215161248492754159792240950643812143439186211176174439693548941558100554234054566179641057238600311957481509349960229164156693530181703436117715506423182797000203970330195075533339889768166294600449247456472834140671845823116956165269811850611345139924297301022239718474734246378554844279660649330383354177260688226698509423456328278507390329767469323353227318473630938594854167650107019075574227067179488923166697978046243100869434674564774591174359327226392347994239329060915797976255442841955784769245968858551167554349305435011537536924598798475416382358877723011743240174741442856312645827876295064842071443350765093999507698377399376015375108853194084925141167473642736690642029179461197829067128823640385818199571339589086364337092764729534915695247858541561158042558964377601649696141077262963112171111217258963274271372962213577984612996562126332909847426180419694995283661326656741355365636139534876716466927485313973987534704592327830992364841285045324391458358344647174844559158167735170895266562351781000838594812745760305137982499218261349084518949122995317242188280921184760242671955418554986147468555300141366621429646698613690828531534858929239729409037623644960652758028829687215487834246636631310632327957971178150213214473510919086594849990204103815819830117040000478519564390992822879885704646834212589893477344314405468574196537851889478117218522807864101487680978335898039224032793442738975132896280563791643277875501690512074727907582955081348947500371476286274965335263073000439592476162424611683323789145530116644184504965096100021907592835356993695129541878983308918364920874260211170195637589563884502325395236654347461142009433758282349552872218434889909829877094456119514575099062925384856158728687085629970887697856609012892506116304554199950124599218701996111525372513959510269732253265801628121824310669251270104326167583089554883953306144636339500079621246154388178814086000016020772820422230601988503249134322965452917124614556774253696795480352400680182284466555843336088453735792773676278950563320200846820947760779367782818133874000598096118941646884653965246665137677241513424462428189607009805477969996253356564851798599758653597249125900482351824190197281991929146033047119737493353142558143245722336203026519060898037642969851290985838013167194837660192897498434416168614693007649381633976811364704654638146623030280138316736469885630723239904858034722925655248838553144635114892751075682411436510831639664166620374266612549299131934561992242560165770058959957859508572794834425944735568778668474930449208716773786455134025899775682842912627176527718351130755459099449008025005791212809478056634026456095020696977727195177198658279073277038459974069470136901410119227542273496048354491491829769859904460582923020178044998744445046547535842151287288883781514028199301499787892876427361727940349398788456330964359633688670290696971274686892590979068919995911671159501978747791787045248447751913562205258335206324177636342981470061286964255825141437431353794264238015077062303532411487086911440529038245386848380414388970946109402642596189957654687061330304411044585648799564485841280880703457729838338774478586009749091802239562967124673999468383184261869651564361952855254568605866691947214508239047529287325669812092089684418407024919151893874787815401053100011228710052754843576993028628151788923774325627052249114657269818723290652385777961251092533834479078468321529237377738133095282905452942082272970928044648312498853078889624100181379860838530144900073604837180267940547481901439616294340133099607542543449655186271870436130077051094009828809797108334411187561377621766713255232668762562928577430366082982946242192621634288335021616744962827496284699876491031085978080081457210791334165864540461371438922175700098328057327922297712523184331548467992757179457936708118895299552503176146008796296314817707796584221208429118161037198637290410119601944027050105484670055476887889142073437536617879492470059362479507441965737008234432020900844216468182733818958103250839138109830965021585988467358525226618288719696442053017688489640671546182682397994360539457019345178902971683035760987303946804566243539240439993270093606107173373416473889748141818027285963323348134274301367681883489370069246089051973761244975136978897520512166108745127144686445842034023927154566091942429884353248202750904312351767832562853328018978355099707219000244920732170175554387890171796814954929968277755734709763480829467183822254980158764351155828304902624269592023735631807386648679958901822378863471599231467968829286380922509462375285386825156906923192938829873387183791724519769423920389952459911285865790307554257947475938680979077844045994355543424976786334427170556767617620245505654011752543568495208668531970832578326331884802361306579256959013431787537060676189253666158744034858574426879597713088274772957388099947437057093786150316604789556886324516977161867838189843474249369152161737775319587596961061820714308832430686159174346469445754462094397088730554102830398032552865712758955095092195942631362382122209485701112417137033842502477902250262803084700791310950782626925417052065828756233299291124074753505565191147382878368024544484291686324483510504308068764767611762641863832776995429427446767593492608108413817273653048807529472869345421870277122525972906476885214977244309022349366644543734844424615766300279876311281624095924201925821456473620460031077925855524172194248108205997340605798538750685088546824680678265069385193990101395670758907668055852356947192476864778288190981690211734448365626803415128917219699002980991838357370593097991408816396560744034159747712429664138750453219769438681659578959037147788975774410583549741551035645914746273398470773166443751477444888434089749865759553089217021579700947104158953095640648384046931953221372693414747089858748053273265067037160862187294181114928032744020237716860634538789990833002741710828326441967434860347572190961720788072754565735125589401197508241710237366373099380469072682327859236428601934689105899289775283777009409191313583080358357360713752691864965930046618557317274967996168562016367886012278478245527348477804380116165476677853463350441200289401842323059293617754204812790418356578028003223152706419238188290185513624889016516756220948793383989630334645636062160240422245622045053229723435693689263028241708654963684185739405760457279318368571053409984671209276915206562948739180126645768971861829322516928040550137273902397858219513317548947379314445126299743133194095639061148169628203788196630233995159266584960064281828642858018097185725387712695189447851915875843895459587953906520782586885814335019535054837614377975276909541800815911561444389767654230761158472473746682527948509261281279630641188983144369076842470056342288400051411712095217493358076730361275839977924510949807670985358489423939396746880587971648073378472705715126427300669576622144044699072242302871589714041491360189674203157325351399488967584436022895151958713026358678170412929878812182103127351969606291797542703547166469749852499625523890217256361335898528657437828286120196529226882859289136110520327203769333584131591928412079740128931341789834943611636654100941778290689972370937953949894807049144965336060400373962021434357442414165721221026993086215374948024424070322488979854160601610190653579537454428642431842592431897464568593213368440300262412571073740744468713590599437870125940460819249436563027080948815413921050308724785530563093239764919347633996655455529799778309445551850864696481794129914101366532036771972574479200514587209131810101522349910973309983645985842663777224739501742863287028700140399479135816390275740178232864261903789313216137693661547744747406970923648472185369137094512139928637177328362418331598957196741358384491049005241150306793619786964805088262836924719688338602145286972651958957916600597696974475371194940549013405954593472487181038196084685152690375766093488095275579635691636264505932126720679083414052321781890179990810523002122423018978143679745159134342729794526919899143774051820438824543895073075951363710737577192326631840608494027017929277427615115012714566210870508083609253425352512912801773408452930654450119939463592079951668614468351143641891310986662514697775488014149599846000570917322314078754456707563967448312240528176950864219138312300187628969984578206972419568997904300190732645665375491519258034891603491007493543848984112908321390761125130120311849083203477873604934680629628557315576473225587394438520884509351463108052802315140135281554064548733242796685824628982119517298097236281692074669292429822202660426134361751213482069154904866572360994452098154925479076794995671925264231952512072524625491943785882018767121604080459691888044826547434064975294656209708531516365088413939554428126016659470040649378289237561122149495586848423149441469168725106941896362365102736933460451497652592196284564722815029285269795013262617864692622484967648947190237636263978961359868024406083829087727377520546637506375543996907505096991249467938468610335089201022647128612349862874469934813957705121528258650061025095171533802532063180087620368372854825886050102623136992093591301397889612644911987234255558191590946504106480753992268114638971002558917019625028974248143670688562894185487435425876371925569707966664327958684232524505797863507021522431125225490621598984178507825160252240700656774939983473988094416831177752695359262205597361474421129641684292121870988636464373545464921748923726524600261559720923796672430767001490013619334403180191256926034885614077207693579970811703110889312135288634135958108867812877519244966773431372733088227482494824739039494754310144274386561221813966183707442553027052936521601024405737403249369755353858697507106395071550749664825108526420413191224184668696070757052174584176577509447629673256528772451164694032157706285413287425058170777404301795169520997631885927819939538488600754756866757453154313687558814219694464741113632012521254954303603166341149543368552360693525410435560735224124324803382983000279698127556329206940173106256003157113942320372001150845518565255674102623684842960410166489446982238238200112574983522039175999463184983895675145987036823928316092189102243196283709536361289720253735919084684215542511968416786714327011992895964566736799428528462887231873413254650126783382578974807897099200738485258149631171471743926904533439987194982502493040606128247876604306870885629042217906046358126928364467507578613025363823631969379069588112894100756189524381977615419944932243914017581657484018841533380474926116643249489694016183831891799003330481366696353494603225998538065837051261963715046162228805629534253522537571402485567851790834520251808448245453263280317126254186185370021108486741604934245205390359473525452090071868220554380810006787757463194428120660036553723406193748673415578201492526829038581792699915572376620894729966152062262696373522689715388240436911429882496952993120141911202612789280918190275953619246521396831052080578791392259960331781178374512165853160715837507309971135128227128678138713353355025265113136189183562325604541321488531523910509525041966248667954397604767795343027817523192380066645525838241959011655004011317294586341112366779891470975024043041515047359624031862771171459762207244782999781644377444669268420119411155010719521165264934917930098864918928817132342860036060682871741040146575767317029651072810299808150092732378959882587330834552096597087253725189334780810568503050916873999117479690214166636105740575037556656150976275284829860501120290435116125163682338779254779153630903309242882006272160373684590850588004187911183762625522497446233542060158583238569035232993022818127706631600122533041375041723136500995468030084533770252237381239866436376503859912952652247753011993595725212533896323839082156518080587543450222028594237678187716775992919774621564734015129650244224766263684008396507503850858335957796957905616450907457941161270698055430399102184519828181783174617387909865309687514816821621319993650762660539522323727725160049697890633633923447035097133557257185650400894751837222504801328993688761406514831470961325049991815812554774281923341726315248947468994972210926092764376248520291607326516619610475150006950422658533829239938253118919760731485702526971469689085010067205459681837587998416081624922871394819002465744258527578488701053885030965353145487858313735503218393312395802867560779945615976082264098441362860013786078842437463630690597052751404613988239358819829300519217263856352136699113368269569544996749612282529662630269583724086631027612985093061209542673479949382458147704403521355255402513801589135112254512911314693579625020404056742885629876631321752177924840545486660612007656058006657821334905173345136354975976867384800386686224948895081107650803423853540639901406794539012279495048398989071779988084914880997706290223324334001848878688010047760953821733297734880580441726746376275894152513795773105774547616655968744315196305439215230868207290987483911674020638018560198251124921070852819400704120777635848301780279406149403210521636576387132040735024164357261906327341098146789158904616480491971741291048683868618757897933457206403711276841407382117921772358648493073597465140776662646597103660695677595178498013733947256307352315206586290065552603433237079485758958576461954020959218260949112947524753075711718870519705340074015446611305134369206047201482748245984271386506313797608760392741757034667784134384956328076383917012577964241542331074820062548611594879115188354308690375168707980592754140340185577233415212877933526358031359047788660526143837569872861470016908466113183417644554784646417605602969704802741006811442864182445701114144578983068321161994637071462744434963297195904870267446171588030727885224012416656570380619714798658459885818499655987059130224879241448813226013553266408273504777638526793483616374446424643732202656512752270536269686787884487178360908302498201727490766683398853504955789895079490268885776246762540427590257410171542523435406965844745407422587517217998313977013147894638337931950720088221692901813006828377665508066743755694685412252407601777171305344582074224194532930991454738774031993662987140668686584726362909470274061469112960763763362296110885037153506124685549316622859473873289492938299999890489351013843556368939069917824040142977669968265623196778705263766071737442163549222063916368124317773959641693947132160333028252865074797227629548924330748838645483044697782649989463050491748809238442331163609878006069521168102253822846877320803358500798300889754468930799545454989410571783773397511497001356817572281797971252380063230597686107768040459905291429696409317659336488819198757544765448058164835118569821217233710137902779220439620405632897421436383713134807180215175323801269824403433402130594136105283833073190091481268192341022571100466116254969312077019889285983607903659867661584863794517667621613416952814087442161938492449813671478914882844138044421690689444233582293649604804551444177518030163414875050118990533038063825602065863474402535449455323968217973954836584712841624525425414756294165406401892931027993224723250804164462720889728174336740548904708509022736114184499650895196525326431414022717571143219511219429115160046166046845496112957747180310141458370971398095339818620748128631687497746804686930100684800807557953369357400158540903233828479062389706159189611205952345735640398330789948301836530064994856011721280877266770392820382615112470168392391083757546743462231554753656554270241284331872495029794718197925218770399430443021358593294749920808854833293306427937475300687625815534957814907434720349244700879995445376053016627606513360038319491679071559062663453630612705888088439166994057773749678152560200547750764954029634860848977885850260652916718142659679272838406231261046836415152506092245103112395717425238440202379541333592959367271801857624689059131514019502131632423662004587526215620384231472291371417788715337789193726336107194932509187716573600451119417501441420959899699424313111566384020115032820269813684282020404793281977690540394592815980430769036913211918600751815535642717402690057530618668737161859366575441663858213671409592630679165903785079596914048274894694105506745304638735345046881806703625216496900948728773206462461530064734419330114444944990862308185547897459186670406752953638060539660230668785673333624456966800635837386738953615930028394226296803669465862081388807106295413353123614399221235132336850819316114484652637615954452211331122502348268005324571927262493481524446586376450873401904974443516111109033000483963094071251894600196117362695052466661178234160335465836953396384852165436174723575481768437588898964950024236521503064017513117088845657501143474950316852942513142665076588677110655772323715772757961918890859328385953950831338915132109788082480801079430457590534890882987745321342770658739907037736504369613088044866845341125071906618460006586706186907083029613815360369552045839070054114773250440037896748243079127139214399998874995623668892798428902407329837117694398813282117347329227785443310435536718918468144825746863435684597676091486220551153170473242878093746340908392888780878245292221446814082135381891363838670034801919131313178466797386408396517880837619945049554076167767934528301935480419890145772045156436532973899639545453734107793269167717736747316933245662001435856167027780791360122200083470989356443993476503678721169287061976887496837636798018756310245828595377369190308121186590729754269241996996169144414467912802000479102535597867576089882921693944856840535400345885098225696542791902006417119874887327603616519999364689529410179523028861954640252398499334289288613116964812203998912581552431780579374783257096040176511121284100053383556415603721373715430646362622001513556427535840862180797877404609144648084841305546218446712698326819352084534105125678681955004203353666526688245951203339435413475656296272632498088687692944631292597642410925861597012145318187280631479671939722706687421490319518761000637882526918117606775073885853933315086498295579340387255494147293952182659524877059507084228414173244772259382338552371807088728620932794819788071852930041396613621394852649107989631597951356033486082243608099460422561386593118815898595271050159483331515375054137654724571585904930430118028215611633066919225520251425719637419217655765679724648303213371245924733376483864940398336996497418730434091849802479284322298672149111296054546691196959343594462368762431897635905536191746732051147889668463689129719197634811934609480055099077141111600819105033774233137263620729500448840147892794364457434361827587421619772909141764239395484709598473863953835348851159271212807634243971560547313660153997266062531719587611638571433524216621518851220258341061736704029687711657520283252831342306453786803248716656486142274749983646033449247828969821287791771743393294139241954312171766709783918749138172142751909344178343879344207371243486186167485578487821778221477934156566171440008041728619366118221210194022666746991375342123109920476014054491840289374892439655288238360218163211462518710656382601885424959046073556223660198824948472774321483988942141279295278609561623537249974791983042649407073933579038571971654544792065372719704706772639076407570982091187173533287231526223566351484048969077703028854503980402956483470938195339735903376351203659150614151090611868406361565204157613201090982730197823163832932438355394587585485142881801971583404146972139513728579041981863360131413121143117513997351401308661478524265792151523301057869594820300580544586510665491508494514829932884905836668085817282156415269191479105439197038962893764188931342070265558255268947935487818938170651809989176038530967512907565752790181607635685752004037036076798646808863014458017360058738409454871007598181068114422502800713610104289518870759348856295765125095431940375545680758895629981634961491995216089715404098060406024206186818708542822737157030300083262323143940522186076774366363732674304873707976898438654309612581030657343868997788391467336256864271794657385341680337217435420848831917218749656837793106891800346385574927477368699686269884160956025890218004674494266933986167980322509864460397830092143636784387858795082847720232225292968235020502085828397959289807441619036374428077702382938267444977702281267018267870623738647112905088863830067537817098194086228619458949383211923126734727770021160938208690425087835030359045216146381592844204104544086028431378185799242045724738988673321843959950797528135621569814180421270470118021544505537667331366093162411136379289941305083149587296302066147592681775486577012798961111585586657719139264017184600803608484610825491558343183870418968741791466369909833811479313317132580987736533620699740100343589952060596868471281233882981649480287915787841817368095387711919547376261949027108776571012654010392450895095901575686243546480687576378871942530087775133326821455514637554657165064060231588603108467833137353748010813912108762337232320438118609517013798974869217143460938320301093019681219916942613904878366803927104585779578764962087205043513677359038273530636878627267638297264456252628018621945340360357303194272075355938836502312741923107472805442533635544966434950274651347117854645315345512526119941372572539391761908773519136913097028421698108675950116208490998240357350117489231112424302215749435855881631278031334056331318470310895172106412677034763555043994013099218303458701936850753699590828657780656961187895725676152644802033126627792744798490920411600913474421470243361684241855195696172865766531799369898886040596187806360108697028819199242317314515165121528194952504190515655972733873004448158548308391985557830124669214961095924057690282420477681199209808576467377868916166514052467386138780001956394712214891549565855662774806460639341207967325354937741389768376650331789274602770707257429574768876339324763188286743382267082746086837502121812389161549106263484247411253802673178717752110147252419944981438585970815585682360179989055649170053804265350421597723289493586810208570817258184066110665152402664549348780053626668564706438633687154523172067023819329267653767853093189174620343963268537383356057931400690069454135817567609032641870848494293800414933607407691804118754528396718407124551468797807597551337954080727809591541793682756773445774494795379350550097605726711927334878150758538931327454356185176481313031749551260160834177268239983357039808041631548141105724745944168072864300921477899866275516494663118146041732848668250811189723551950148239154065989808415564221773920057226342348147921540501167332044587299780101279298868592601690019055656648155233435053754010619024067898441176270717127848335682945630794805031385625462414607952890144510300253668212452600526986937334062622846819139045079120216595537170384078067439376671125936995683563669244862417537461795757851509152538684677741996804372322006449446565094955059749312318964905945573600122134155996161737137890636801616204276515755296565570779335643026852750875709477369784598611046930500559348013346913454480090635550395739602621128360002190739174684145630634609100067117381792702828647971483017152866860176395489842479612266828042455242837679305821402294385133745006875838380283701435324212482834764387201728360159568260606418885413759079994107469195840847114912965963814307232005265137300755301821463609348907337010775001832111973971994607681234919515365214781752600215464308162605276164502319219322584557794891224602295873754719766583575731962122887950978131574807980069784868510876198952218019252763606998172452666406019902900435267934293919055241829731107854345124459779489419085995906521181597152786912678507573916256786979704998657269487735299485743170862895459755727366708604076222830938603987723685489442040829186987636903081316274240655768564537087851260754428698611649963773230604578876868465750465554603727669039792939632440323725224058721272299203117631178566410799054864879909253438416836343233182463720941431952140266320558914903122959416730871731126171214613893664556749943533582224515314948879295448253806387025444145710143038405644857862133255445286282955169515355890210838255499946458049311558770128297329283162115823151411046124687730293784232786114691570618244602654892290526442387937488386764497465570673981595609420414923743975142665940361028275949558058039015885076905764417603855562192187077291658754238194073832242582045996046556207981067846922723430719031628682536720550861123704217481240647992017830720418324602889936722601126419027552983636091899704648275958591567588299810207824851916973228045839766475304468243504578616929656459846888077271890670613993690639993023798918131235692421703751694778851383853985366965410026080380652750421041792976674318407522609896574994831560005433886523128328806052323657144489843029027180423191527237368681747221542826083614734452241014987138001441018885440915111872544853864845512186008641635580177544817472416963651492880191912564464688896078559186706080028506757456913514194936853966628297576476858581762223521146197757778315070846097603144764768922097178235831445842290643423781503190872987091080799184442062997425039272267187234819138624763443525148446878406818326821334038098748959829352742147845111687572519066087468680073166408411629006416915188605041809455473261187125813739984777344418429886351409109097229048708559258807469487729490955266972677444800760127939316364062637297760846997826287626462770723113423454451797957270463675374687579267876847497304723756713338615724372220764064161549495708537604902969947114843840563573691046497971379161482387364297170423296916153844049758057017264003912299989237827447850249909005199283691521927185618236046264237460702327421325438877435714230569045387791233796292604597240104485083140197634264905258460647104530905286203730442818982757418017076718329731640891298781414863827205304979817140798474573282883679594382634459699548295008577829082464927391641564806362812464409202139418360034380201541251285394740460304408607714297957299789531945513108334302391112152144000660939049454756860540408101143501100478593967141510143178905285048173562387443104602614204745706236322313912884603056099333876752732520754848203594473172047749383813685532083048763144654853945940294263272513576238341042193127501151360875095333384995086836589229206074961739047181902781976692998641134286638729875801747986293710388333044762669517596352304121793095412191354236217566185814935281652529725858127216863901688950330014712488677670511540431072681439109104603177321288215889796065279384737842718905075363614390018081501526919058423225837440478200587208588283564184360539741454680330124834714341250756430836089282232651454731157584973623259420521945556183390400914938725972112916573336823332955109140182472236791597344005401004528021173057519455345750891432548124636709048116476197924759737581673253268637200039758571043126860987940384561550443895049159734072038459335895161930028306261358131977003507821195587939146826119740312463796268274726840789785691232459360143159016009774582605969114966077037866710506371808388780044642541940505091820931990483930526730306261184330397604556032205616724541609675754250645425712426867732621277814032656960057980690382486016375259674508190392904942981390314147224450958857297821471223945872402894248076949376199132949549292872111753270280033803946741842055867077443946026693495139132709838579451776370427617556597163357578935648350257073849527083487130786642228654928233524845358482279726078532744649520751223222392571898176647528397417498659719841253364351615327569774738074297130185111383820398449838057306207526227390894649078662253447142658681898224813589388404021635806612140154577152330508573169435813868589593574801535834188844532735519611910643915748523105218652485654424007777275992910066249280027014094949488368238907393976964729344093375366285532511482141922271955585896649473751930685680522270009301334962013431952885956027194781940361107471856540113710658058821642628085674528278463429322781994626192629027119155617598391348305421408489183268547658898059274815431736746506114253470300238406938072926934561298457356929628324891847554646610740287066574863873096888335062954844517323648619037447088382203655298954581555001845370369632992701434521459979347182241227880869239820005444394161949053655515210625285552388220618215738752609736535350655409708380777810641828196385324161117808701430173357734095219041957680257084873189944455542476362020162697195633361082227531122288528746037486843636507787895711263569421291998213478934012817134995655956255307397803814987546517151060343769841664937246777174905989184231368076713905084769406854094351491294016980715625764669766175461846632130976649931159605353275342981339652789574465443618791530220475349912570621782801715846178418246846436491979662607142835555388627410281934389241877424064304049765817064295204443362439576772179502933280323438236190430970711810764054941024567900712668564238842883849288353959317049104188825403416636335409886433593511590271806474918293372169326344515604889251360943223252936171357866656583914196370689588861221033759525663975196559015698445614381436835573933295429997749106243781556441719941243707107316604503033461253073844298625080849430094324310484734591427587657885132960153932165545213223855969437443078361705266235898733267130339375988808224005294679992928450187168141925605616412245229231506473396183030170384182961313376912372871363944651525534837181922257067593928379260898173873321202706663479919967651149312071808865295905625943149560666117577988347983460034848464637178146379331462545683459497000158947627405667993917033414012271983332057687809039312417354648532092300071356223964696282061922692011591459349616644226444245239506333700835606738688132648754869681575300275159296334060633203345104916001060689806689573338479203978606952745047273500297434108664329303683573345129927979887819452524054499069409808406740613297093146691714042601550385485738286696245531563045531301417916372886405133762731793362766752031260256770495073305721273363825975204549616306188989290126932120270284726560238424113505358254349280525561317224427380357248741284072181872638934525406492058882675872054621456510955645940061023206790197996308251804640980304791040033829552666759578886077270879846385561212726593644288416456784995593363965065396311398799204983535693766883480590989380044126427218826670485850046614477417000750064310280077275111331832652991862396559607011927420444899802434793849574083487150326846284673565423030381533491271373333839808450226550262017790777775341229427946836477925646195099124298717981449491355046801981999826433345951995295679345258974042134759528296167832770163619502531241429308380189576630239335716021103744940192024999646665777123664138411112891053291709708199422543329766822010453820138090048829525862784244495208939948557787253275892483540817298513992840443097777518483190517310000737656272333802977563143248440833900185023167420624118174127009242206039137042015688194786240499047077534181387605356278478008195566604959969075911690066966390569955295890280185098260993799245801033961136183484589289390775580967072631733883635014475379212690311175977405809197377541637798330741833015385161108237780699753784975063667243064581246589123660942228711635908829546089361677195942826890485682125199847021359673353940088174638926371312047007611560814125552668753928982538801732184802897945608259827095689465429747183726952742950356471202851387567918568813346712266427289388839910606475535294761591139210540234568926972287327650806688315882299214384069932053391766111792530217521690812498833533398219025648981339980212757953909055326223069653508353678917912146191312956079016675926787133681734531160639808734103553807737759778710964289975091627870518972560664111793640037008551843407958228087870193653010361510746789359317996950641496409680848752879236240796852334399797283900011192240782965523480090602101541436114045895352159465956820048537716006367947966775237443047429139990583128419024980164242331189894092941986618495106089860451581237743544085069262800426097119211351304333454516858043100279285174812512047848483835437201231946733753487729073808254547400262820689501352912128448259655745961637158201191206217763837458970778401840542979403767972614330104344859722990097046476999761169734079576887581213445710867478406429782708994114074172587141276601788266741131730198261252964093184883737889331773808941987846303276939570246459680788551615967571011891556225226347509845129997872662917160359585943567658721928761283418017181787071127067772981995993768343452565148537032545724166721559664344663445928356323814558426886132766674528932552133460565481369464497018759371659938450640142281597709580174887530302750214449711468156327949875116479812493725001794095284459142458781384028695478118021621793351026238877977255979284098449430256281620911712484938663635578921615399863690049721161219438757183547147294745297618054083699583514660868212594033320794553417367990710376721354978459370257174594299290787199942328023907157577830041542635323311582431304390099805620433009308798572141321604072110865502665512319079388168420819439082000184689613784367418132422776144582095698881524556623109299917209135074794421058799345444342198471561647159576484893064523556163636424878855871701299650369004140451226629725209240887182231700089115561947264337936213306850048339195310759379128753926738418217311436683211197181213647895399069013354532835302400249864104210657214573014057015095770429375734805697035808529263480496282817332245736432866839418930579723333450744998361745523075997840406188875729268166743514139672901695328429605267428054116713646504991597673570439501101228137627315989880669163963287457509917047217352808340249163470312002282418515838275835919953169623094535174744270729998149451052454098403824989396493887364447090156648326496802455598176422120469395817468975579125126217211701482960963182161356746805105708849948846009770412586263927069580241258768096316201246892799803142397576768832774018178671830389197648520367018165183069988630762445018674270352572217848948399857624398769945005665217582495139737341351890909103795003017185358611378965438543661775865718688721419136856311281166708118661446025844105710035375844926758678014349790674093327264495541149488732675721108148787257752468773048980917228426438021857072846160101174204668093072238671520933658569496228684122532400890139275550933883813215593181813769783527602228402297496697286336959174243504288486812641706986718010482857745936129143068587434465785977645402397663905922190149196754106942395269928981219998236473927864086851866230811523964006307684952280465671863140068651951862797119030031549266856716217824816184326737978166578569678304809571344167064502857031837549743541992731878219004564074765522829632312576185129444174684188488820571568575485632275272197085846127356568978530913814390792826140438104213257959485770969954897496419451019544700564194894321656395398752861066023293155305532849312162463465825814098597624632500829922177635726587316924373655352261986304373039419456039864630831854583194239444765740440529236833728796956804076887837415866971639959549170088613768438854486666592822749508081481325425935087382769207375406340011158142306247411427605519472347515627525623305889087337597226710238537772339934929038659067719546332095227950127652974142956162946098173817120505010505951042740624322370305304457604839006841972429978607586643868218872489286140372184757459694743832815606641550969380637519567903393590643584083176842061178346713060450156529429039146637867817463343066426724092187955688003789603054499439552706441648500318096019537493714779237976026705918144452136693299930169978384077645706357752288336055804087932233679692468740703130048955860182122640350017643000480919367211467786062110111032325421929391476508074170528689768950376190793604929017615429738477965586984784317196174871669957103343422805139931853296928097677963619103025642163022914742959628397544043962285783816424508731969658023937591547648940907720083227719856775768355798132962067836195800540096674736242920253452532672553100750536032518219577295656527193987692797765606146673543736264167173598838565288998417040824103354080009649878099032143651227867494398297205153193568136825939716384269744563419432914672158743184977899900348051550085124301708337256718568043601388909870250695206559755180421552402386203556291400058641904161146107300382526503887240444681141907454927845506682134105547404579632890363930683390062618720437435892177539282063241444637977802270105596570204249313974566830978654965524033235035869430247554391790282382002873141027007494979276772277962336282604528357445891909855129319478466285973161042155569120691880567918437089327976698663369694472398167310294979533114188951871286468879192210049822906431632586414973144301088848240263422801594979025527631030040488775439487918171183920732959529437295964815154436467437253052065434182148977948183611364916867295531579641047086048426519691777748266025187495578361412007587961792304084797126975799095970184686790403505545304328462718199881105455820789439121071850131472505155726444334305006705983774113044730508821551596650043787799428178898893274185621049849120719103011988098592363354904592929235503183061607325672906586211610171537277290610608913871797373609135470280620928575591933031423754575289112152794402087352398784106623731528177886091016407663108042934735235738270399752080447988375350890110435287140861320403199919880488025630175370595283724923057379557716968898842728529411595751820489589478641207300725747731209017363899747156094044299913861715417271172746205825897835638393339125104131173920824837435750958151001412827446855796803207863020454482448362615282598329462812331660845008943077692342697132032759336988144549340944257300518972701950295678910946847599621317014366111441509767908266647871083530906933476410774639557150671231261549130421620486357913677686094201547247024455801547648842797782367849439123010912199172435517649238832700452669748552502854937860655068788546522483338763547429190433061022358041800361744459021362443752079838143715189008789742606215300982031525788705851545898388325613491191128458454661693686242807642493362149758445822895189996446724881070366239067793010979022791270513794644703064984032453822172115343401528621057470236250593754707764815033729835674116573702600796894182164212528922367850826720641874818378586153516101757216558105777193423953232731024628046564784879226654653739502949073846599623189390654954321991159043850900716545867914627086782550212192637453277338150197818612973173230279768348706460196157447533733744991195131415689994784738960360704300968870266184176046349065302365377984626395505484237859693310888138528802985385533098194701130481901281950102048533462881612785574017936628758064073299591207003387515341900985840173041143006411595165457040022404213627117256039794457466963849060383376445716487305946444645755464949198551568469415049191358260384571491235239178818048866353478753548379390756828389346510261989227562027323273394418606941752680336402278237910873079806274907892839144898824933234772129126512324010385590689552842759083318586147323276569124381367594205924124412017430141633602157114874689333427372308146983428554055172879488078460820859430710666816302881948633904178697389384724064980647369972914112003574321930587912378522465308208013165138404251120863150715275371379746760877439661178272261558496007704792431936493724550936811563469402754086199580760594311621652902791327446564431184060639001345185598376390086296519276713489761889853526900772740436631004019958602456171228954034282845893252393335249790416793031482404736413356056548298779235649333458352577049626522329698542846405000845407601597584651782477028493266055861052398814756229908188857156819558162976117877230308796245469263950802158454223744599342453373709307412263843740769807144941976870113248365998433041383395091390680219812858655856567566620900556120132398528949563387661591374485666946512320787711094393793049106022545485661258332376847056686933303778333892187442392360598429547616108663604341410898013734625859533040554341112899337430259602118903413670018094130663992896303424299963450251133623783456434496735276825847237889824224947467128344734937822921128149437564139668246247402525025404960163502738663093089252381926372533899782920246292785546831106514186553628446259136164678686480088415305501672855091079451394199274441270914318331369167815682075437383012159852474206579003723694760803971548686040059122982252415261516998304609864422674944452279058799428658660314838590437914252257704148573465524321629826706718800903309390599034022066484503623714330359892874291819155890327936653382458722683177344373842642607882447679600704592234213482524214546123593947548950535205223738027073863860827755450907583306840950858614945144112923270452987840515713492908032669479608040643892446305302633597594701402299065102405796163099691128315799725435107605070899222369774200254629462725314110714921500222208229324759379730784428391576841111092918321601654713486032883755728520620795786440007777008019816448395021888016875531602549821637544581369131880045712088917280145606737589702509487425249516448595963780596506996942366569355004682153512181640552081201381667331502163181201810752683482283855932438597891186381273379096101024310803236034496825098735537684909610034255724916480899912166260250491899774226863129961351580968455098164078388826888142179939057156919275249677644955908350688275423907217662003770994015454458230136216672492035042165772198887727045831386978817582652885651282276649693401844434107515477873567293649701501529166664069853686200827449962965827262530677480625524249786182098621037887873600323426478031540495543497351736889786358855940997103145808668315590036129087509274533806414851938683325048738174048010355995294443774619520688375930603660055995527351617366712124964112925845162787900184685246294254098803049567150678496508827227488549821570564347700726452248457353167543220193523187720484213799306443564479999238536389170403362838319152159790579468169041194441670572801858543872413057400747460317337760618753634655288979594054563029042628838985968788213041832378676631857799039001390570069187607622898390970927219962369241088807478294613569456487824652068925678485065831680006252875239076409348775464921731481794449764330469666472521261081192374255357349700337290152114877366976531386600686281260824683492232955912515140837794429868223215260498558228536628580876446277533121033198308567150361939692986629544884945906697372642502873766990463003411244810185483922168483208042446466084496396824463548051012347166703514903612656393221085627916003777439008349822656320087362766851757864418161339454146035128170233365488248885656827271624161032209600294075001807654573667084600545174309629979759942136072964283778246765277997685669002938839587364515962420933633477104397245801123415550696782603826822535596362560515586112552449485269516468205862413760483402100623034767967163203207489388798301935741339625141721739238786884851553292327218864502972987061197560706714846074945246655567776621702395295764524483443205119131178353700830734083546307962699912934269126357650578975393370660230800279709953395390306623713999894308280042205472393769603145035683027136168130527278464610715070796714392936839054342755673813520823607727776757742013440180095328177862128732975092663363101503854384868074613116033150519330459854727301794687161451018092984723858546102913437132819014218644557278147604766313469439662985242585034761491974920068536952795050249683437014896818837203474859259871871560396127150089820744214768760149458603066717123551336080249275006229680570624215703979331896653825194697236948699208820730952371176629377612336730937860524114225198766026108113826927830159383284853733283213940397822251054575606496386497598178278276015032053747677727189168977831377307891232442144774724611121575466462898601504736734695597057770989693504689125161865033954080301932019160380881754457878052046232669008280813435809250644996214198318621617854311899717339371301205101002194146562410102749536536153246786492003748578468900785667958043332310674949732875713098353862533786166794861102506559405041901527773080562245954144746694004370695184047800988291111168324867016608311798466051009567996748493755548331260223699005723132177475456812418588659764414513741373400097972622752645635056241287120424529946249331275404049021360524991225894240441501591903232940895237730425819620044666547369045570685489171768244764475443874016134417420145777952659956298509911054352269757588369217435339934130358851768286111868239060453605650515151158995441506846987725286234701696618932144199828895495272873203613227737528980303807752815680412048454038514307112159284532208874715589005766599728759888475448248383860461511470719620270618898237564911627245885804064324549780179865544203567207750293844431968151226581025513485058657218727736157958679954340129887633700358042365636834030191305055127773628988056714750349292323978826322313049398753840015909640751249054585138886128743729901539227730325032092144048552885996917346262748053875526253880990897125867641440326940280060574664337977232334555434767056249240094044882475159295332176271671233408694543934556314740321964240414607687645707632854182684489149635673539191951859968352416018451101765664415502348521743898620169079794131781898887768736779750630987697806501097281412069563326755693637779921842171468847276219687749836500231263897262088127522650524885733745452055382159698866080272477610092103406056943109353231927596871374058430361595973690538013952029604012461111201833105945293349988243852547427859547807212137596464988404396028825466883731658150488969577719202774567935048397537041712962210556046996208314200501120938106483163438428524144339591683107370367549719951659294033654819377134526971304667305322974476354816944683477838387341118593227188996710052031209763414335214059472871231574361706936383971844383689819466515044082781120659337899681691819825419998006275318993098710310206255502708162772141297898629205800605476093725090925618348375532576773998619322367294231530918082946314420372117779013284977391306946031605780029854075112400785519815423110219053155458389319371213315514205326259860977708860122948250918260302829777702845948288631327723320392135735793570891299209285983673532628389353636711583675975884905917003760920896826625525538806877693075101192376975029546899618597127951986981718493041435136589030093051145492799546739600874237992014397598462309852239966890082022952112018765515481548525702667793669384433066561812005426189153241772400834649373652303924960231076508733496152603072578621213577931181026595633210793307542830032394897268308646507720141745542882745041551259832760324521950897230598907985367065954068093877432624230820891407657300207483034844209513760582185142500580853897148268538858109945321496256338415850106883638004287499753909238103155823040077826773477630480020810895267070125636317317929122672950163493841920884021897545355251754145175773718084335365761459204238947112405876240139233777167164529701431552537410813234624541770273974552818862607227021791828299120480080127876230743031475140877299461806045554426423840501678852822131544546664307277975469581397241837299256844536303481275619592077444031220169636279180834379650177706216427561329691956884824590467291423808432415736619370647020325481660611850721376982075132690307519270336473705942985758137029592166988077991759454416425503005077380903678692887831402659957355090943573759394418458140254045166957164189093346546167870933423959952200067389388151287774205429551762519829890365612469870579910412623456845658973734978216633546599239498335689270085896756461274069753134465571175766432036481999436044705313584695076045491241371097917937279581985049061737945246955794688300311713738820616561329770189060680456546820035059230606402238082130848896790701637118066831679117335962755158813325877710520937199280948718137516682305057161981285357695326426469322538560136838274704753378508344676758034532706055157327804152036772728596753509449142304825481086678109830424349810207281671548137833681461037492861235920898365197868319759567779665282888882552009994176505275079208667350962990437964275647207156455371390094954283941458990325943197025988256291806213935272519128948198504629923283331303542327811184649819716606269393400821346423237648880887268194091015624061356557424157788673479044816111267642006954717495511968604061400490775315662640466231408237142978145873768718984639081247909908139005584554770172491433723796906717055851481719753273690407597468330977517599774744476476365668961885904989763178917042206638696178392894360242423227594142968470956769180929415102970891311379024539748907321732937508172902497189426159012804856488798083743772229836058434833257379332669910549528855927262758914461143012750890517664070190629716850496693645185552081271491637550861265704754060667246550723919096742360863761901737861210748644945673567254233161066810435448285226642149449126079933312862361213320887249715689673157020400093947128226040570542712427740524702188280197824412139273300551079138042650578173234633828836923386059264224928983270038921343103249828435011880015165012505971949797700857752999982350757122341684994074297161518892327709679875602918441470290808048938379457720798611300092003582985179672307425015674028292383928059013801557833385737283252613833567331021612376234348896345472526359636795722129737804029519701158262239829371499907662040047290812077769312216810712212639818184575881646376979282986111841684234426543620901112205592264353400299406972469626022072175233108966559921235007131059138743040055350857858495147902654840196851607159777418897450449835923364837825003685741729115305263306325712638192827956386617229050666062735606007301343842996648182615279169852259832627040227475085963833347475786011373824891968776933441343279292739506077277833419314687121452764577891734318110163098125412276717334080702453568525298502500033410281422462766588242938371039923732693098799898758405026339757086637656000044633123304455403856629992400282552236559530183967836088879277575806870316849624157528399964853803311272964955645982963647739724682895296009558754243059294966225652899748322052479114866365969546762778636816958447355183317473994724066034918254155443459075228828626761396574302328532866114275530201296468876482170841896262549038850798825784135012575634418052441848187351576171480149033766994030411854624025795240231652033270508506062675577427371397969852964751685797282060460601008492830740669518162898266314561323614954985891364295085671501598987065591190339951094803694687159130050520643392858404765352304465788764529687655211558366864055221706388365198471758255597352285158438760425764593943224746908314705257430066737885882312130562124047056193709046582040668498832882513480838303927280026350437007555278754280437295435343175074844857681876015651057483898765028529867661471290203517813238027224115979997150371602334576680222180607884275663611058186736900754258116904519088215852405672397284556474687704393424588209540130874242260215068072253170265252287458700946541138610894785833092072210113966263589246257914160823045732669019639220793940437614558242369956266032456394079824314370064072353140147833531614026510339936916686919839546251401870864952102270921358038794982272550432844376062062668659322182297134532724677885277283062390196181446528124139411083296797509592381419218787538848596879735600622074515437552328486244830815118619837996459548493511969598742016817973352633140874194878437709564865582754712043969148233474018868628783769941546199063121096215006190870538437002615037633675245467208398038372068321491932091004580040609909596068626821648059323871960460634231005606835389986569228738996240032095210529151884617398384141283426298187124011937174914321204569154078253402541427892490548899416131517042443771782061988469048969395534547538593018571890957873433384269522088811275178576341210368452348863543376179696226804360737027515682442868931517126293003265742531962054885856409954180583503687543702289302495735482947141913685977188419298892708202432440107463064674962195284757769065873649658463512481744384210638381727877087450495117655674900876646651447434016030912060221368682197895931713634823740264376275025178375643415047277627347294889661953727641547182118409805708604771363190557390414142691870096621338166237996397770832232590659942133043556316093677636175869768186237761174531885755088859267701446511208710162638461646713644867773456018925818463964706247046940209248136220505670351141809052688932259544624462100657035350609607536360550633708902231769355967210035999570227247164672886591562289295117339842504933062396868116712854305900143740097365883171136517071249680745194832883802251961060051717625395512638473617737126485708167877991271231569079990794368626714709564900280658683704633184471285620822557285098542889028670256109271520879590607090567750308014184456894156951415349353208112542103886207972651475122188803828026176844053947201677880922294796942151433788066188886653953720053979186944317811746010871001229389672161393204791394193867993624611157994208165219153023137511239052487482966258367087545513597370266074263396864975431212752971778567141101304717724426638115929652793476048125134990313162987274601099614424370637288499685849720414997330932222910900822340885385056161045737549132767833588843177160947029937460348035193713955599418127448423971576041822487921419105167413962126970049506033361058022871277027132867065417572711560543785048657907286755569214518200175678301099482410780519710744843005147260985061381139473892022467458106662355631978282008061286537314737148082590461370297121900925350580284285620791065198494503398969735072810707393785517971948357913174266763540534184381813319201358401044522268424929287749594203167037086639679034919413096689010858817080407552811577810986080620974052727892077865239142514292097664023321623876086171783181694721831067186960887552172811163088470826503411383519916719252187212780749744710774625190754632698598032937589952015501316542502492253727329298378318217292316497822215185856841198384519659905452188320803572561175591386712335413478528351944289852944131065894386355900964041582917762790207014777596688486710522498195148534752171149781954326445306906330079746974219216992615551698995657084127794426945177809678005351876130281406270802489796237238653242932942611028676504441596293987378358192047302310492404370516815728325871640794436490682935762724960380701412365730857877653425036065914531167875117626467966738371392503804997255824094478756099659281486968255107771646850406940159877243779805458853721555125107566167107434791534556208546199641666548834634894512832741816554772342262649816844184250000483937327918651042747528745992927103252999914011433910302752569531255759989209809883471723956399330733454886881698321059344074793266197187215698051323389611826756647723365188161660682996127600711673647568536152940553037845190649820069070565848780563629912796571925334491186950449873013053647185578365834989840130813591266491707214045157210669554464903964238574537505241318944090506239884826365086010455582875357296553795885408188869870458258176419096771266615583989733260023653729032455380640423400262720362966259865108061974269641441632780767641350064674428067604197679117825080583556293092303333948159513177751596330652224161167145589047494217475153828524572982585679382218025883160284906594865610624504332305778223267192453117592462616846795098365138788949563234437239457809346392260735665508082097878005134789663654111199365083657970032450928482450792441873986054169750079689350934932052687672549874728051082592024865522044181797571396001511900710248543945071961010326951940909947951525138238030942244897036108362250706050087909460877940753654955636916932819131029469645836016531188588505968202359242810609257261066031773549111844553617329302664261503988857309019193873570628161484913544202834126311916844625441058672812702665927749959725819886892816525010767227722049037469970666286095732773189593415247472165930986888732599215409945858347549661608574415640134909716935193332830881367567376714268790220815468079450836212248188034828057662183387698262125370259495571548145233855376998927674562443650729096249976663177618095304908909461606481145796361354731107251245402689711813735845269987298765983604842063555207863215671862300049055838232915873861892972065179163894194270168890541972497153309687245736401658623658803411050106306596003768106325104769307670363469530159158993107494147644652756102506170729032866846462262215511227641972992506408508144459124897089873985308323336388659564451222043126978914980333912837823499134489674972798314374930385521565756069340003426083426006761874935173965745613156084701720989630532316472132589222833588197219243466770895169550761892148634365281740851191237281261772791747535285935639477107932185438246300889261897285987490983180178445691952957198930977442738882768167143477099399517176361676156570310225256535384174683873585434684359394473811781099662219434804120083644832090603683754688169386577300157593013885210235554386996111001569951580595886236563367306393002979796609672753807200548702375702317226400101054243270888638706907521890705432489709598809568798136435338195799363436288376388482986442477149795403851139002817777619614613129291143889496554781391446861185822027246032017265446732170078956324848019723906310466833950613689716963703736988435907289848302254416718915551658305362668984007002366530362218222304306205446853336425469213995863236558402630665328921617273510511087769722951212577315296368082650148096921030340707531646813899343714620343295314448627242459285805787662542475605515187176338645125456608525568118974077512055431190793186784410389518929108470331708900664541582184043792104668736584349052013300187770819700042152455551534093968653198126985803194550155834467803710138709350960488856503070608605299334868082312166635987892941948340897147783860696378585808732099538784201801324086591988249884366330673408363489345788752889520788732152655026567051217043115314627632878312134608386088048914787106337004685350351686025552352066861397015305113343477182101324615918006086470199242934166833119586365328558697262216959104678196906743332078171815344938197974921908442781570826477424696052309835506230025298799177129374160063353635303497050812280080223005691946646304626072786489572659830951876748572121585937275018594141921323509246511971538860424387292485200068569686734662780584079261100634180372798550787588363529376780551775524598835745948528493821035661357516259131043919493778949904757522491105759255130323762879085541874963769673190369889008640814388477597550037561029043098199550937038564653756132760743245854627624469186996502829971675019534931990743950958366891721395701592715328283728483376319549663497106053714609721984673358264179833883923549370341384235881893782385492026114086302778693704125023222108498425992248149414517340284168976209660647839604053327752192836198928749474442266084852398563888408806147517144207418825630546634225011817049678654741492410966207468563694993142145767690875030215312093036470392330578129775413825836729050898846521563480516068819317936700930776713010571435684731586409433349812232842378438817441030842191260307440453671181913857217056210302409504833142076267615054977593997515311739368656483122525318237822465138994526234432962541071234940158781131235586753339005766060623970418564726736449511328609514817192581157429689075325715198313749176766308388208825446515808965685615457857909714235170250136662868328628784987900671722017829757952121833840491542875605784093059777691194210491045479983995042298141460147433304540306175832441661413624396490968145760490758662999470774081432914431791793132424084615840293618914805095267586708911544234874170728061977427177169727216230793202928372009992417094617301319885960353961877033344689817714839221475128672598679270985697592709793207438860810734305433908330288909260112679648924102889009731532918985518404410895726357296731890280234861757828300606167714738690456237356874421081266084647559852668236020627175419181072220134882753266433671099184074764732245343795921615793006363210734455947615881180663091503779858861779199636712260709806430042385276951844322622935776553965768393711002612497327135075888881227749956602326477218993760671509512242212600159475206814273203251313798197072916043386123735293979471003842775086137991372502649724431511541037387304717641998975268972601394618458006772132438076987401067808920242731246963496046231142810040561574251516335479923075401522856236170459176625658147642153743193118728485174441444414186819377990109068234643258514337676609713006348085246308640885419015581953467744129007990871100902213235810955278499530745693574870099202388259400283045894837603627083615399124736588971494318034016651372988442383937149444906048123372600309578358291335115495785650485291792324236476747112565475736587459703431668357856383788746514344795920887536072129318424475416867436459477358006540925680495377973880727289175897011415711014830132951956536551353206013522141058511613046755708466299836673993047504792129658969449514726033077434671737149658818229746477479354570066237030863477166083155872873139197413960932465515578653422758507767913297525862511520406897251258941580241461507932453502456608538761944917913429669384189069541103545509305212919145945813384360051509964876921736005184032699148081811463794448818380623233124694910815517225216790809275096784606913653263319887807870200955827556189665024366817483914590414751424771374851854170607445943121723430486586983976534263853823408593352492009754389419339149226787602552418769120745083981166240441647968486743176763030440581652432161273111327354641131365161752783049147770101718460961134050302831219288992482055414177260678219033554795221919293738446588889504730167118763018677640616718631713611947602746708670304412966713010927390542900079308980314189990782836609529661547867297528158056449066979802266762390604957778955957136819045431716076246765912934954099335907902845759800018683848446863189935639933736634677249343910515734525609844663430131275504521413534902803684915755418959114753961653093963861420693478446379798178626654973500298042783450712967788348345670817117963247318784224634669712015316406281355992434554276837405025081943647164335527427297173086086480291497810245955250466636187488763903466762036597440839825279234685900659303153668124084242140020129951451464048910466336630937211788224315341288261377067510337018919897006077696378500132722139699404791634518531624849406823130067029247727019434556423063739160114542276249675841509580381243798831704425905812896724371580423505620613487489733812888279485077504559424220103944011340727593699439445012477866028996083427130823772595826411664610914018672612434810411597489628242547294887500895939578702196064127640948309295386362746280909717286365432169196153799964374710863804318428232253594960403504948164318512062758214685367502070647350346445842735854432715900250672132007138296563856744344223967045922751426026559891935602734986152233343389341637811931621957822628811654300003032544014455096099759722802349091603954198460015734276387710789789368076361529977567933707481740884187495453145010147770063258967415408520600181638300492647628240350011523444134522934783108886871065416042045896172547381367356900645260482792797454718607025711704922027359753690995075664889796076655479658217213223016653339905012500399277922758209118412354762475534508382770071046193198629950910088090368719865155354204443130202521088490263083767660998017328721542022562195775617497676973842312334594228633617259316035825174102265065726503425072454367730747109362001673367619781499159337513346713132639490318345177979312697997609692704090048881635515619217486101457503295932909873507500250516778210592863967186513650438156127673646562511027689731837164869435508532954050874476928242655418106395254752221892649533456009149261734152042151556863046514200503603967958236283587394436894476570680264329370976031099007533245944102592757690436361004304500910168665943530524987792606937580156515567189009196827258879994273136862044798098198270997739203025111300826325398935167719289361709109418716773284656169462648929679379918069108446303985087822814222722821249015225697591209009238668224614487160773414633408357693366829865306700923171881274316132413317118234175327974477041045541070698798500075648380081760347617166915768684926333322517351948364277139108774475952154659524488642850123379214153720851514069094302667162805589065750210487648179977039392767824731490009140192814121293780480061392350221739245103938324329515111872285971964441846072023127605582150519836364497433137849430907962838354957418025083475648474097893326145887383439930603726885944172182087853496982259641202449588137988177468301164432933710940578800396997716709288763091886995101075137927064857158422585683863687364160259473430098031716694719110861821052196753977083546047684141581469178987314039431146665250079651138903079305799530800651558395083840313519720538353117591736365547713885069831450862174315953360759221967991659083744324982892073982493028038989180192868566469007421437494171814889016699344428079450997026658978276857270209738414607436022016480974449354241778883905685228373521268613403891257728338263923902153702768381739308658649785185334712844996191298815383291238174551899212730187084206383139895941738148535845000537530156191609557570829959090685381368093851831597640225965737294765901757458842916151309582208313558446474411347743113436274382251710616007703621710002832404076780622803833754714517130732192746459284431463358900602837454226955185081630523424886898034006944769345931916135813352220522837793571435476963513428512601821581561739851227445339793936711860654471228174071246144542327345664104703980613096601912486931304687924073966003595939194281615704414394382243940283690448633731930923635943871789440956870722374155337991304049251728302389705441727453378265373945180166028435949959903951614997852359616706876899157801444342595354779141008723892685005136289855186709655194020480660168466129981252915467644236492255788507438456889763990155439121623718540562693618127349690513813188995681741116104946482418173873794167765614487060087206514674709423096660612276098468459301804199277433084888842916311256596495393297672242995264115552575395160106999537478653317835403186042991099917275723620236347688396775670401888738577069898450169784799243557492683922570675088872039761221851761931434224114777783321664258744486456764271367623298057305889358213432366466583222864027354497649453626401841117860471219889523828077531055684511794427426469714786246093687465462295812394199164989556708501789618790953831405971813861226822165773185161632116652652025895730651787445273177792214268578228290996104520623248963667115323130021903946035529952001301211839233095021568701957100471819231573881810973072084176913011975848872324562632214865876827326807567031255252167685559170393358516984074311738383983487874973602618997414472463185728745890152033058155515522429359698898718371080250740530580994718830587689313095666719884770781208894314026198664632058590295462597322694245990493699438395676581272786025024414727863846892012392159386947454848773457789423638869344076149162436369361543258106628079292690170820996993686919393021528027483363002786412617297159273381790134491075584611023864140802749193201699666595401204657849474714811108318999858066943350518158660400289731542858515052016313559440782980968769469266090196381605866235708856107489883847930085203032237796890386605748704828060987279386955914044520530935515972679917551621386308602442065513584744842363916692339529351313512625157353669471800933842490106321031723233228199028668024037650373863240717490267259115423693867710309829794917093321000531628420532131479782369728676691947163689756186064669828477825989125177947502691697930549028430399625073102958457387564090809771872392887151797415841362316994267875222022637331331096886706340347574222566656445709482749655006570440564940829021046205569013766426865673613466814880199344244641866553330328400561626240566186313993059724581923917015010767183408199847731370090041294254158678491149627219676397554067765032785585628672566393014503516811279688194518101368863002995382370913642338273768525698238021544161254101196140842460746367519517323620140311271509997125110424539021461783252288615177923959951579106343204064005444229397026554202969043006619774866185093360074980696706859445223483333404310128856152291735735729052651768352486179676486972341392947530540476804590732894653215572952571524627637235301274388463165463859036610780780505009594420447786220699179749689266787616122333682962551288628445553190199643280633335382452672320240560979019851368786779992022365284905474359068960405765863752733053504649852800680353355515545021454818771844437542716299194342252212620033831749141256322534553445612847207659404683326224385051567305586450892662421851466313980837455501724604334599039175278627814344120296295679623263159399527826299949915700617163146503649753755572056533958326235238185231721254531808525557801881294080604204293679910007218708555588839428616357275408401212982011003073111655158072050952135243480818264915643755281071652272625034256016607112261070467526317546520877161522631531837323548166869728695889240146637070788294376153694861865876785212777225677393621089598986355395773753483819995568606652162791852167769018788528083886515657045396943279367370716985737606192708177388754047366442174667945180344476232523776319340579994086901731162201802419265353620003075431814542521525998242114303951291300767972782308114196293482171729394642853562026448602689871002148139998787976781152102400202129574985079749928316672382101986548638115769786858712769910490000314898101086428378196447088485806256317000624570909171582901021675142177348979801173130068534980713872052208950693441458183952556594269738952669245970015113984922239946635966295179436688585102169599713521273701885494658369896652582428072473599811369930082593459559167118063743980917855533641398036302592481826865775139337658607940784668966195557664219361037271466032173089432558322323463614617643804016439439813110392740279440654515907271174591324179572922256938121846053241764184689507483407393053309296705745106773434182243830908838344148510098171638815180873183952353290200442397269967149140193586129572081153475667431774087890803587107253201183887399692835061675387069576498819523523614341338678159258442293076274801194857070152645685510367675034637861689651501852431736670890300074541971168488601565210469971513308754119840829880626891256104199338975531577295689151545565208007863796486728292541220640938741747276977629368651756781778724613944055087395971570908487860639340917486104648354616332167955052951035609322322393787530923313953631022971641009122616741372711972551650768066098932293974392487308771631332345536733347678988897555173677883633606419127340908471175729145487437758361752368723033854672335187173068257651216553438589877018930541173010131149274408612588336015644767289300371264760069872202691005806692795879515437847060994038262676354239270876389930109392134951883106966505816658292820550328557599117440449924753248859245986642171902314422721339030979254579792772263134197415769551460763365341982510224795936582400264887372199009788807603156376034716425428404493846717083883585645113475900922705807823167110125003942450079546601478604243754888258855708434246619500073408424611826577683512435014468234556687354697537327523652882153047212379299815608274794994557887923697012458603613772710624939970872263498935210373518943695296769762095282704372629313862239475985183206884121843879333472637653774281041755713584408158293901441487057101874352204990432217035528302076727120143248753766799072037822428652257027106267706225210047295787025574618933559000129316297024810372016356373855835158690072962796125205101496538827564105964530076359494168876236247849363259832231692529222943011599436440494834654083480156593618769162627995229388757390658758390036734517017293085301157909798020826675877655192682394605319117293372284631081109248437980070348155679485502856502287462865632827430939750712687659211811951525417372108549780844252593862455667459459290932845471368391207476814561331669961984269051337349221236738465109081890693220423761912010004250320082473261209611252722122437684651252710783084648586180733365445804719992760735032706098046802254883217960850831185479525539007565945149682242153612915419330620999941458814974773776595577215186836200041341912479281129087743679176683698794064278293110803389958075164917557912653920780896955006388523754462381186824059763063317616752310299309914415910281142698788062628057630612500208522508864775063433986294837669840595293295472275297419498904552545168618421163529203784744515651424111100495869349362075136558429258679320387666330023557694988073169501717712753132431752174220639819455463917534789183440788879766219915344252409828625563269397267224418960800269989862448891007026348611005736148251887597578545778683421990747919321345006131637017726227535882474563101859213026357817780888517035285188402652751314130736511851696352516433643504383354612466715388114809818104748938012460060940909928145177287009847121011548538407180139326133860583375183331542225158757729200376774047344773559047478334729195699051752465628473700857543365013514739194441891992079475508374113425568609128558790832700921168665990256434748759383058651575813692578885004438516647858688964764558899599094874654167331998532546380776429987955639187926919288696371493168522315717782745910210285093053453171286659166938227212663457811561348402324387352390466514119737207072248012927953963816668043601305125385966067617480134060253515690556435569813106007779545392259275708923696730979186785537634711926173367278284170044339600230013576250715134027397101430945945745316494846261381737990266978126903283215028372843613169917682859625751319922855296893240390769111411570417507151804951757297245279157809720238493968881056795570891180883596098936227739858753503238018821602417931323107748648271102582597025244316512282817646862745103575740640995317262472535750336631264741416609769714725100178593557028776158685328542969183393912342023349123446987426449507309644513628655033545799205725819932586156743841079275826498694517846413931849113438080478616581828540358126938120776490166040508317106742198502455169209928244133873504524441614384174370881527423936849290460150844815767664119752859407919921628199843786462714563968917775857711594925640974451936918040056534828864500803751976469002547114127835339424309535755127178967089515190725044324280964183049020726003220855909640603342543003231614207512471563355314363199167401562341297336413656961431494386868593269518563845892276713929951327127951600333916170513302525646987874506878423016592231392831579225020526878029169078754293085635328065544463897697187142647971028440003153220819665091556406542638708831114928523457224431122928477222793521791113494234097601533520309944067352495609188428907746704697718786902122191542768170303750959587068614125851135660622269611713681116404869817299517173906475604545443833735358941834436538892470879393371024758839220494158767723480517030527153345257740642343237287484998277312532479597455078001731423811306332798714576584868687312723165172941190494171473141803205700007016592106144977306641534885645470530695726595738793584750493619731226726042488038462002237648515049867568321386396430602582409963860681461883647236082096024589592107269695755024812606094611889248603215723320018442027359188493417708734182051614367496624560962693504462939120631286840728106048693961909580591551774125716352916383746419184846950418311765013415579462442746604290606918898859715141852044198216375175804792070669147492607572773898594340126465138175374471710146773893502880802546679093800859674751398134464367910194450658332840320107896429554507467987776094653360693087215562958339279963257650170255568983177971051391701702941217804679265655550719494641775725117975471216920206563306817004806985231318676370012863779815195778177778352228399224570937408571220669408060090147567001468377747625298425281983998123508461910957310775310134803082851628683896306742073193167661251594232436652480104686688105461724636242605778246788917854700602177811742840691889007480976166438646957419360358331056579019758137415665074825754266356655419926523795028147960864692226183390222378558620205288493923626442651901792409281311490623507346405369341211811799273250086099686613998534188582785906001942179901982517607507297324928330584332812790862156349968095002634011119215571892948008580580872015945128220473830548105286289091800436802052179939076604394036417428455006540207723216016969993429663578685658130048499445248799631332325559661996336935880896417099435615923862882048410105041120209818243915131499871987552428393098707783168603525472512348290753512745356385418594178275749818813019243801133706675064866592657545219199209971331495571257939063558209646962883952386398677711611316638829697763318472294136070720393073679825366513847843476169967306370109596570802921397999336864814232175315400685377874432804407900992185078045983409764322970871853630462046326069227302226128478726346957061665186659635452712429012458388980312520381445775137924107852033698875257547994101535293648723362999315018595980131772171927539383644009637444567633045015477163810914049306003883101436974860607734886316761829781743919088210218237340458331913812075587991602627607052035618350527519921671084330207191469967485387469080187608316400041799400300231666183521990919424454847722507477432402680620173123646880375014761547044103369878491606800371569275867505120089082068263749673225022727026716938396063564883965186028894241541317018443270427464027013394410960365190880691468348543357928448959366390126978661431219124323947655828062404109817723820669106947826127912003183610678472477029952598409854522223785920523419552688809624941321305818611288612407992166080444222067106675090320520449788480738744264483963191223963410921240239700545269351278645961236932433779446331653684832363760246728784104209899723899209584375015594231682179030348551904645866029871212437764059442485353848947919452336028558212518574928439802468348435142099649755893379461427246264491512009125674066091955476194501878097246859217627650916092240949512559840495592538836602700701271858351367721587493991371478678623431387550574023462134821932511679548995508698121101815132537790321959962373507822010932233149232455036372584337074894287064969669586536546575493122687568844869157594204809115579160783474333280818196137433828540032598422938476173156772702637984956451970181048171890441169439795690197746117267982967610781772220223477410013313210408795301951663555848607491501552505156822597975949652680553406323162323192619850345727813117838074678840431211914171722451728673673307238273824670312414890640441676862498505249961507905983784657383535308341166347011342929348803382836996194677377301889329694181788221270678458269453891307964799386258943049467076045619498986400182701578003324720228561414421706229263102416582660509182205090240402376440111990260540583008986350812108958552805233930345195369637336172551194929585961745052704737336102475011519625130781407375678296669611509002858870434347667253745305048329883266400525225472971197579627987144131700113808714128664432437672253767404916252691971426861043269938794531619943101672552554873635930813369217807879797573430431491093302785414016525164825975251004035364267976163560967808678077675491116412824792961410013606619628541907325756496627431746023937538796505032220251997551528621039499897485719556651301227714072436834943877428726578051157508915030228766661747430394364596841286545133016749695752776392977029641177506990951022663459870911409622576516332507673210594895969353734525454456436129387501501684709128368236461254935106872656704255776628631450871545597301489668134336919055867547138503296492365321007348094476129240632680497724805300858733969573990579362348888449143180025309776755105402798236170051690701619626413568201263080003757394030075686743625743635477062804908929204807959719142084541608192598643776027767620152602994512163394685356802903436365200524588138986192448845333995554353448705389217995171923130900926341297076521491104789494586179914047758617548654660329558361858561824197271767365355711131519332090009407057695613204467768077077822291256788994954018242990868318087522266411905278422503329875888266627104388938777030241334617570336761713284732640762902251667724796126144158411818566305831453277022291108599208135182181219829390824137600771930695078570028462319004772403730214192244587354040208240579461144746977227325451953305572306143605127272570616670541143652501500217283114840860478880635083017417164134275220223727634757017322380071339377783334118052971582586938924810845031070970457680754495267535290110331684956235735934787971130473482971312789315143031893021525188021018258567963854553672066795253993351930560494529079417088723198236748472647926738704257672463512457232351330253886224465098676391733809157565746316794581833790995586646284567831207050354261400776841783539154452587952442178066102081325062851950059059486046740135367743304850869286846864576637229200221397988854329151465429425375881513566445806744242664822185195299940820738157267704254231834227500257813908841357588924954982525164693157728583107797723523383686903390918027993157207377086739943924054216751536585126820136384487778116003502674465346678974240164162288816809104844806117170151865285953205520356245602697245185845004809833241213363472849501921935083638181948795214338641326749306678908227958475539188933418526308424383268400594667243173841538133756279985998680368425166317277830784294997320160131675750303462012847937831764778273032885170243079429998322181889311660108535993672620566110820787149464313350782909902971723107790338572181015078796683027242574523891020884958594568059266510743097504261236184355580937830488081616353143326759414905668965617610013022398605305678800844971278736061663427968309436651748553466616584995999065411145457843314233655426082779542438554392197715074002620212950454082251249962673439513714989819971431618855571781316666728706355018102265366264174173509926237936786048766282855845622905035480933960937568165589717596033676384788511789582222835561762659145974607340038427491868743393462883440906281302576600891196907682472462236086078542903883180699278615319009832647404319608087444046179469963822441280715067080500568917377491311848391316219160359135542660802411578221661614727671553611897510407024560298809683278806423979005951717016416391857958616321740145770174806571033683124846356733841250977071241264457740512768720641586259024892354479173772803246227310719534053899440561442329375504724742216983994573207000515997175102826995829940317076690843809150528245184797426854533366079731469831386125250281366448513336686360964641500169899976858337826603645435617870538226267218691207264620157334211653671818008377558405156122828747318527555011798994093742153609914548178580596100193202562837582676398113890377944460295168252713827174847359964812199873910903277829145907052775557335569072175619467232857890727519418222276758349019390325048747848820011061257702936668494769010772415904220502271458294708793377635944637489188847500649613799066630048516165856756584922342709790046678483498324763871829252224308349536430786601309934426638108085369120400652709619433829829980556265736789264226406764479265848210393391598377562563752322214533749742793467451134958168942103419599720522884103114672116683058002263874230357714710456430316854893301879346865453825271227138463218819659772243594376482121858391577624930757849742933578822821436459112286910192796237102045200520270226792150215680536058926441545707311377950559260494178666174909607634510716010245082963164795163711113559098655387016280727052432256769518065413905520389823449999004018742230429701215485091117536297361801424331153892548537011626198584633361905592770274109283663172692516902458526378806925385077304391548900659210371048118678761489060509483327663099221133348946287420538790989553769824944482913801069725853421232465751624021144305172492673777809058056174584095256225643359850848201494124663124048055607027301527853528672222400664420864716133802812849559422970303182985381410106325359149059156124199885776669992602129926836685070993083628115018070299509808031261285017228938352370549246365126638484441567770508973656732333120484131012588761552663174397774442911470654437374046994482771108810625836348409285946123333218193170578140452195150489747421248404887272266265478299362699439854728346639633106214670410192600792906763867262119146119830370634662998558522124327578320776475071506195919749853600254819749869812928918542028417856171462926390079893306877088856259155653397399715422935421165210692099466021007478658100746966092730110807570610426458104634220626548601971653482884038458083132184485564934146319802595117976154004421273569004752499349785844571076808766910530488970375098985925624812938783591283092902353135015572642455439144529747092409178413923691199092962533719548181880235669132363147632878730977753382751051692994026608958079280428039831794500014234932077674134641489698023436892656841048948599251434980767108521077234347125379843880721712249543967195641130259291155571947309388330674018747676182536524401582061763064598295224882890720038099003681310704344960302499656382276149355639474667090567112040376080705196751225453008983708025387815355232519734323637295132778750876824307926142025389949713044899035170953900475058753429395558779370701867163285876661924570363512009621170627013442484810184082379365015766526426635586596734350578563793724207232400839729355794869432784956447287315507070629433713227691386878645077861949950378565447392495648508836581598261799803593185967080560101019703727517685032561604757296233608052599716873898862580037094484255463326826196978208590745474963224272646556244958692032829440368944702467721888504432780307323822781340608346363415338871780035772512919672881891793988599174164187769118652800701141455334095062630789397898348971215925522074986389630235017991006297131890645617590927953536675746348754590874736681643425598719924008568172986854397176108671709566765835532243983742040182138659943151669295054479145327993350737709485482803025008215203115211303002163116055141841135428696721620064283199311350604154764593149931938341545148963417093384812242226173617552762005435486270702606909734487017942703933893399223312884545246827845764534971902795117325124641572207583861273528301521873217335798076685180491580318340621787491171081185575478593692701669484470715665388064697180451315470371680648810730293939203126116507127956951358888050405693749055763943413446745189075603710634988606108904612020344862596460643720769940863992587221207859679909216052380755139099956389155499142906002500325283560114496277887552681485509940316847178432471207565342458372586821017098434767877801166923939002420825677941667814248438252242657500442845624630482073082979741045911348750501363352658444974654943957853247215910001728677540633492799213199825154034477440163002864168474778818924117644203172482844150865977119359696848534282691436374707799057804115733101620805089548656840820272681877080969599284048249521119232851868451701846589788908984203013545802472293590852322113859618258136189468568865011167073264688815350004409189574491482283223657774215300493658130593640667270902781797130588800152006331991501529883165293944043080138323777280767430204302149594427924385641957264502168110818942731180267515296850111025637827857541651441555651442103573695733940987263058113444884224062441554991133530879157600675475295427186860362251332286426308848760068512739684578644138698671134211058196248681301727787611971604898900845507266289855020841370151307014420282553943877947295561228114020643753292747128286532109759222109240052831803708374895455242174676490999271306455528002975046119816997450167014726432386871802946408813138500240200024803990703833556669499216666589664428991983808951063869028170957687227020720109525253182294623969883773822644843475901513713629994505153327711065692554118864734445102101286878579396399626486274565496689584939513945463389722234130127379689833163029874838490142992332872343161068323902938163645759427727249645916840423283836970113464616652344409050494177537230644728280361780908452320386628033409960026943582401548523074548174424969582639406669530656963774678093087558821717332971780231164934373423124876532795797667293692418380763723781855726724254456838246945214700590794758707266961458471191773340936042348513176066314861703445456319882998837190888703531030871424166110521868326325445308870001621972949847576575194288077271466944901611006784839743915463245424193697676991423761744261161067494719349409428868642496452945078882283908434542754587326827950295792707932223698468488795609889443731271554806951461610551601083584332518907675148403040291932348843296621670837491378246041790126197890193595571195150391408319797285219817843306013153233525825491913113538654264492144974373419662723866300860575279930501783582639839227336210759334201433754630772118876167321319671981726263499573913980660788661051071861798711463299359452618638319130810554262375603524481549326409764493790076068014989782884672719878774153363989499409335765601532130615288583176415628925790028450580596239614234624078763567756190397777816727695685899504571603207764026795953409898182370997651389817991505770025995350509320395672795489801256521758464997210113986041622823375822294591327221848921156559108503464375043101118348012694321185472521152728011396898009169576163853687244234627113095213806340189855630121590679368388802132961567936405081643416118263166042204712031881359297235175510043406995961250256980396868826002515354118085479207357540235330056014225643802504041815742595486938228672573465869623424463718113749690129420300774075933688000637229107363555894351111854939132454200592426065341840496650511242663554557495091211001930420282836088774248944218068877767108417272014351385335588634716585134689231151945510639115323448158284104993973428505825078355404377774970840829649301383351632920448607783264345247818037112181570877642710783437151138076630706183684845626467598394673202274853913653562531234924394625564052191894913304393982918526285437485407880205169919443311966169596170813380886627134235891920428324448123276493224781187181571787380259016246822603440736041728885088965810994221032787772777832924032492025873932531691227625201845601625257284413433656283122934660651684757728299529323703194232054781021192272055486481518982635681647983879828507812365396650424049599941198152231336181897518494254433640124729416178277143650868599073302994525417489415741918069725255516022535152646188004606451132426229232428413071064955276371413889042446910866893857963387169506070737569158574758570140087869392761401647947920706379095574875384193961145443857999961022454650166899502665737544347521840526126317982971976276921498486244624658605845385795802296722440354171079942513851381242963793319035564999567688549002133148245248316094695177362019608606665075999972304030268145890590764821010515273357883475106043834319821792834516078516727050291699283429396176245578298227506456632203891044039238243510132800092083550359572391054210736248080656919383225744371035598039838546897285221301814747042472479525504698254753217188848510662546719822877982793097410376370783329777436471059346950097293082843026411050047586580110152893681670984164572331187289042381322667282162287491044600435432529131058903022535810489199611210058979180928061713765139364697827847298246721821856993707515492037839842873986422110301733724022955302679909824681881711208012119910259715311631512595300725385953747202508020513368657146426101138236271591025232873178278070746418245447741705891908893271519299218120964406805425365017584717625476856921804986032839052101140853494310269469872794939406946841483128915241430547809949822085203684750247528578119784371609365074943512799312697579114426582791679307487033991356322560677470512472398460421343586607215462304740259637645935594654108747480014257555877235227958409706408319237502782552015367847069674416733007681564118824712842425863113502200371010879368411681571066953771495011643772492329294876777084737338292640619924992780835218032613879688618804774133229444686059960075652223153837793387004808680716520216341632030290164456052111333682245577080826400659825262679479734166597033576874533597011767326820988205512559080755177801470459963957259569072906584295543274281225865906669535824354957425899379905284341706560956218026558298910746228299611467828448424660713477491520934107176868921701610397886312822727986668063611476464249453125263887036663045720883684742120007744781310937987337355061744933982662780617054877429444746089198198146863970641171587673731589242991639784013935944551256737010169005567196230738475845541977224254439404273417361398496575960890077676809165271517704749147553315933641003875777457510726513045083959158519656895883858770633529597007519923095331493522135828654361416569495013795967365552321837628531177819431115818835659919776637579874557243912361946881402552227856870174647497603913868796169918296928733377451746703241695143925390446189643920889577897751318041790780593933072827414928216938142538314989469427922032155291257528195722285049765659605220023944637826169692676757254949774184312919576238141201800141066208138725428225951097338674751606643528678374813131100570515885476203798997288718315849738355100955748807327795928099071573429043863345044099546375520206092822148164721851328333025395667444430972275220175397286315170505345170070601304809648686003260156647224742700033063313092001547615618162210702858501108961086624069814064338671414443979098722773153232746256054479586621728600721453520690155391476617212454448952298168580026434443440903992022431911613626467048645112539668489851895265515786321178318617462173200248254189581831157569082101954108463177947879949850822514527240625556831359492314039634753774224947223662419145853416162876281570452965753937399603750552851817744508749812215219811202894975119862954721212963685580994561725365507110345721876546288705759019868540627030818578613127773444651455742808324722675543408762308022674901158432090332155714670919195040665975801270353128115680637422655293579478874561624940209072770780752629319534817214598447096663722414645531010825085846190378627657927597044193089250196845692234539770811158614087336026484637086201662066330395780031421149536836963170798178592415080652538317021237204801028596169908100199879427287068222524417414232833119247063201347554281422577100005574435636862464116973120640537443532412381350784912473756370735884019921939950055793122542019353267887217449214768498099048047124185526408692011004871548526766981040934394778232879631185140198616528049270666734727963109733762106525250544998726494791405133882078185986874677936146885025211921569528494667378176168104403812325712066222449019530369013097929807259333861529340813073576088030519656045830694727215226330277293474913279505747211384370878179307933503885495991999093085235513314320525444660526828678233674362759881660562209625129028856397283779853035740898440855524675046294752699396019531866302820783829265278105961208099187908968926000295548043535653834432596475633341629419667343140308468282345132169772918983302192573496127752659444182545037318176048093120613963248724692934287118784316674725201611102113023419423745462951001325501219680315539218854257403126565380389711347365228518622286318707752234804032383397306090698795143998439319710438554636328332601663357839276527204275207271818162792589388815688274139965029427893034077091811982625327519218514107164998353995209042213798529052024818263740543822899258740733268782427045913388468504180451018334807222209799392983740359055737032790641082853063984048428794454733927298950024030833190672622391509030667690201267499887461779667402717241851751954390449990346263173704175142430495238247846604277998311825904375521367963170043881359439535143932643221438509024803637902297403302585606992609176917411490467087159876950024624101960482177867474962611771059608121627184757969041252288100284611067688433968990851365017106337161195728553272561787678013027188211461893029662834593183776284723090284972418077566585541234405621743174050847468918820834947344874502852246066924042830105525460147347717713973980053075339567492366159343922518514646191239546318107983368253164240957074983448140355291111729883709566604858230025772479446259748653657387055091389545981020090569096745620300018307095267662485928453415259462850668055666266753981597700736253078432780739343590812560276526293540403753159196608911363426621202474096527282839189495095605090222593152358509564097154345807672606834527797808838847110685296451300836430538324763578383621624150128295814404003312705050266474217785214577952701268147415915692457851819744565770834474127603255544896039484132847137865784613316697178495984864051071624790063600345882702867237082148303727321333172509563493346255463808098374323573645405624469062851796148126833521163606137917769827689209066117864368051095685336607425521866298027069273912341787914883434020416098671892860424668958362789013555186071683497586382311942622474355093406227947776011644016997106002731330970613442524368759094076260395288204313698500929932916890847186740095295872071055526898286949281025677935087930695843582286486254165604876251987888366519679894082915715752014062687239953114410049292014772872383379136804631537373701487476240483458920246441561630742288971212048602895912943377031107271557479414071943213447527471797584841964958620392268976943686695042595778920154641467883080870577780233661599606283625743572710297737450513311627470387096818007909249690559971166700876793558833041684251316730852492161221834178667677104804063806255520921306481401834485455549849226056571406027575944787089842487784902985639301042932116402196605056859023487459011921952567637588935067135557208337539035808550749520357647595448389679636111117465951045118481109763032581495410399381813364864499660248030355462215704124245176104337261019342685821888267229209657175168124331804664451939330191458287287572588515608236287873842308802743616543082267816813963210458518805025121856533346734723598471423268175360550226598131179054507865249716667479011148321896759241645526520173290583382954311905352533906072878650079744790323374589932135904700571735429299118424752672455483514358219858614857191129129464282966206711066428007719370101663643647232146303182534522079075618548069129251677364424088396758570485608804063193698747196319918157730661346433878182709394020115966269596428551152558886761797014952639224592561787143351573653803679453356311351592883167936611713316730603047904314822772408785562381054915640629015951793494397966973894670657069984672444661137208144648559766840957425576257021197459340797310251140200832150698785384724064549085629372642606163844409629646350893009143512604907064184522211882121155552426998918847027211659270212264907935448314527698754999894605922162219932429521964757557984358558764037521022536065453555304294763583899696081803869684176787914112250423341658262930009392532968156085179947152357823447947307426121681168153882276446607526873563624658430635717502882660715094431650589406657184040812340703871168283633345774948968515224461035251190220351384332723499829872629646909121127550042532212641077591498432291856384171246293623330660996978713237106815828536446049980725196451606621235589960908095378679719869865840112288700995323019254912823969214437375569575741685447061565070774042177964185716064062592607106803080280305064860219450787263544860256903087403665250504570607347715633447960343856772998592514928682876132426108050644067679044906307592189287813030372292267431372397377153081926154137931484194967222718670056521300848251005948971991321509703130006048848928585218811730547712083168112832297213890984332137429676140643963760833687207555055398913601160740584263363517981013754708983047725593399078210160008424275615314905808839491105661267289398713891688313117774399226867352874101735795669359087121938202394773305115459119660357639228988850110616160534871592682827367964030197375746530157310637197743608508040408189864944750509132715297619685683906863883974105026573976165664054254220434920058324402604064242805730348670476767428859019919132565119860265914329483068643401191003579519006563491486241975810284363131343413727554840169220402745400172248348479739755210493215085615796673613741547160376431059940803578572143452951345587207421398695439917792770802100126936587281552717115366594759141525554502755973608933174427613965606539395082937076941727464982046963255116446373052951018604104032956094433849215794453987165989980753654262450206436359922120104770451629828186870467639928493524911950951581642101423163460849210417467928143213085124867279874385497077881240099155612433586140883972234005637316118577597061205551071002782752739603515208605220468425472962245145766941930067909210325472522635259063300515578784513181845870550866224681885765052365751311368847661822499439552039076749794927161254304059692943920172777061348886908392852445146045820349363232518767388317371986187142151543571393233056025427121386383328875459516961197434562868069282202095166177536140524365522840925309593070595179595560612534400703014131888012210495614120775382426055909671610504490121510279536754924620190433363405701796704072646673604039142421331230944985445756644981560922120116528012767039840665984357695867006684107965407434403033540922623709155185904014077819501514130220692505159779042397077913370966980700063229313133190478593512338394281959026654185736759912575589017695885911211429027954180490830428131155697385544513031795022869567537767614156413451053238108757719549359571056382232536023601251550911077630649821530583822773563868673677492046068461946834535501513054129515642066831977020222266446622124480215269931005840470741831305297342597553256108724394336235950483639315270321191899341825087548835896668027135204418937017722916766867174886829681057022140255676352019468422194328200630270814831298566790858966976545622524945127281699949702146772135960925577437431399116315550202530903792562130201267651415964064530840347292144574160337387066317537361646459775422641549019384916097251484187960355381221150989819271003628738660915660724121360884971165256783653067159512284960842385104037092752087169410816588299860067291614307169644789847699007588071404942734899518932126307246062362796316521331440815818188717797338767949951628854765939787706854731380288918926114813938816470303111758588914678854322143096915782500677794657918908409253892857309138681880787156421034192932964864702765420604036880595235242862243063922356025717445983924798244194095714619106210350176312987311133180778728163425439178002533523691914973603890141866278589021558550174908644302643776297566781744046672526154032734426971246143537634958943015785554640771409753067984077486622689109810172447977493704765139873667010489068195908251751813803657958019406536577028244224542352958829943549381514610513482165611291342195152169402595518633870420951689582098213280925077308354213960099902485074182469254351602005789131193618793073160273481067462114896334733911483122051784750742209517595999953573944954383289227777047216068064640703592345974952141202552428768976912387382620710967697793709618221289791879782109973569181048540772753921495814603005832880496966630186487065415155474320893879773704206891978012298724913630194456599711910838073123328507736285871919479926675586782707056116437889010001435444161693355444605891792911811784125076538503036738215194232416870710234737555316784197439667446210996129011829298704774724135645121844681965353250127524116467640876205859659871941663035280535145238402748488274130577173592326491806573472992632872287727417711546522762556988523639838428327016063578725642536597003613837749735639417135324157691829192981091723810663387488716833056370992589055381356377570134126448081906728703281896762067154820164078533690159037717625975384547666233961626897466200178893130641530952905357724050717555397598608744502236579081307805647161532209818763968004810513090264412293414181667170565543378279705745618138543957822088546625284094586872165507235396338462475493132619048364618135922600999941210126343360001174155104376872044199525896817113808148857039239186878243051204726630864025069285149456080696303158853123831855881388099860221123668624203635022794621511327350368010117459989565552210938506783042123669803819081854983959373273313433709003234446750158055805058293948799902318309478454130482111832000001397502130388107011751402670452145354306187264070557709981508914696792991280192822550596704822297784716538547638487490752613574587484789528466960598094377714954914218008303232642318229363222342005827961902935941377514512682546434120585017054606057749144666228377795156704313229880146338859371864443286090179133577865194662614720492615711116173072163828116879282087294153823667248051282698081559567202073669607811914089209953458520303605099474764256446986096266527683479455800804461036147958028013205505456874506515713060496231430053265023631944171425262926790451971396467264566185823403041792464463396575057964239093452317907101236985102513287612091388870992499758168044623634842609223453317115798033070177792444229211391418417290197116211149436063784860534416417162464964615673890174941998976408006500111193389554679132043234953068253702852254993869058841365200031561714791840194069005894961956076497331963825776329215543289860653467204420366994349186396825828678468764915515917042608592747125057237707739731635494620735051318380444273990677432682827057649371024680633510589246972896036271216345400948663042514625991857937497821236898457792650127167855312495495812912330767643329278482970992137405501306353059457759247798422272715148721683056524428899117948744034338411193746662994148609639723341846497994893280724446587383936544385349461640681501669410879453208520812094636275596987298536575505647673598372094477245346118209202564604693516578124021900289753096211906665645459746752757774486728751149021226565537041581864483908190817327268177225546861455539875482711971765545375943856351157733292838119339247838874870393121204435382631225725870565748684544151974192794454847686566676145747961760648858731827237082887924855322183524796457331166041960228439817151884604818379882233475034741098432795806093245697132475044547330054466529939653259231065533621011728190644968743305314098395211072968151528611768081475818239781669830783926168251834621721969613556335638855416982989245085122676397186702093750365395830542774311936475413990059754624848803974483088771094714714365315607946388216774930799360334807333808382502670269824371525015290918097096378914128203806641792161472672426682843521973150624827949533159702646904731811226785916015300231096863029100524853944136484342640517209934645791506192959491655386033205396690206853566665859564326641866661731664561905840677041402405445829862247845052200266517873556176068479050395441752437347625749962788994826967047495688697206235354194913119606303061702087719554531483229661535698660919082903661843757954331858063748286237908280887794350571710970430106446684713882681090171613510674978170513212340868500422870524397178889222052089909291698848641616569881177231767036056109181112807007837144739000180951463434100413177073055728868296429649936453450979106697701427844399590502156925203830724075877424639507979614116973189583008179894260563453576601071808607860251146626118902397223450037846602268261614589641882242728615862467048045963109633096007270864199459133568981654792038132113607064210200171146039385122251159928653181451415913113909498452768999256236963844009270386626218579876418184262865563237303597618707331549005684255491308693179640801213377236237800477893142502412789083130909122077520896129909558078551222185810589341107804000964233038074507101077974744873813866546939095798445221599038627818049548598232435405829891024051471786163201187695815761936772408635413469485944326342311356277868324537878619099751448120294050725755204041984201802213256596874641172131687880565340569996664461120925234578159413367800982993702503823213136226327230361471355731625433836449510140048580874180679904990892232781083282153030570509584767655128830886901203038816405077556606813522963223889683643578696075534202553652260830019291243649314125783956234278022770701316841001923710978430886601092528169019130749097424606817751823184638649238905500962156200134265803492689637162212833735696820287919274545391224397021990314415805841657144959653881906811863036566320283599965187692722738600283084909116323977532293283664394074717674304061557046482413747432750524364859822136585509473550957831125399230691033902747065546805712607847852356374044724996533003188545465535104415103739691997155489898876456641164466323870095488692716459735461251918490378457200925659176194101328737483635028741556630218854800032742009056211704796977151635390474433208866292247545746124625659407998445327032419771596197918510935595667349038624640350912072715452561859849547710279425547477730458856327359754469017698141953881133005906375249176558619500925659728200083974981507197445854631217304881437404580424125605231672249992714328834565600635090169686869326948966666519843074967691104817565298857831443908124525878663919443939553625513663415732739215694617282706941525498780534527526394321712296101721325808095716174605949613447677191337643605298816346010185983996049192823352465506512918548087678959558313087327325558813084216397352182792709275176994552644515863951385548871973797574710173274249748225800721321241007752594927065626338700987788154763866835582634181192279780339527899066293086210015510652676474289762763280380185972037243022581060527208929551472830383502278877852550594537669568335540672900087122427133113753917849810722525242503372015703124808409382734694217463629200754029630952251816898801156298779223475706548073206849272612700616486346618071340099350989751105040837681523503075822844737844648872799129373476358700498031070803742992014974523204813723742152165761768487817644065391574942626400639038913778411810260217763727935455660336608646639891308184357251698865986930216344814868550178540793338282749364141865033259025536101275078529329400228567604325137957574841762553888954863831036639328494262057194478613619329861017262531948100010715093545344263740681620923276799828863195047255594126415909754044353672212266820574382295649042535939675127193491479865873153520591477077588572834452289428594568490355150286887221921757344436531974018455466899147377568478978539850601236982984180150189317614706068191635379285847778223319134482517965005848634165578300750989972887457137526700313886326672622324335499372823029582576339285337403979504228812940725445525443511246631262148338229690946204035132052242071255107707082523712850061065338098698684428333629823918718700197835364631349310950357047711764521396403250398763637907070998230213936547132963783047271133060803565606727763136147139599748737677298827178053597539443172826836026155148525272045925498710282560477120277398994102348628188312568735743849287301263196950804224527298360422439835018386416703396695727217853890866003194903334303330396971546877610830324309400396708045175017022422770578662254666884404508206306036975808508118172863097442361787886985570298923018497226479459899819595128977266783076828229342495982817610482564909546796361559140402412863786157360313827861373839260978464626124205718304591111844074768345139865719851669196719123648977622242875069975275025116353819350746360029130325714981321460587354636223120602693193507271478349972754508361451352374134698116571147197322060465337775733566979853940669070559328616184071269901403384822607272880571284578994593777491074129050557718651077856813270834638067721833223638710421764749300017308375647756113893543663075115703158990296071779077462716211060219372279941324422591994981011029322906140779078306673061660502927276581440316961812453719666281333993841609308250341227050327957877263061491845755927868863467920269354013376343803203213213465015591128684531890973692944380070804628022802404388392968097752817864677969190756436380424341601380188935060984370934583713051828168461582932873821592566352235801740244188503525568424435144485839875172359438005738923706402880655926789680924023091026627136733539538692250108356138899074504839574879027942592758559007752482052465169656004340226333251691210008444919944744475743285546609757065026224917030641335198712712284110559794184205065235534863039204632678566911177776949622178892091485395635224722587376307600414078607456113479744148416800836678845419245564485499532798143928956658573146327225114530591685652504040573116052295004489802996720494104411250599156929763513406803306899997060519405938170435845626302891066601193094994258183933076800333433626095644152182038892976466727143023249447291141245648290287311377891435464665514172891978448220037583173929149871524632011406487315314777098511143263433385353931828358892880227370299134426007235419035751883263081303096469527353617495977265858380138373470060839875066319668338723809570441815369338678112271338998690408879663778794937388947023001471044746346313303910100907922019275188722554811413852517414820903145569014904775681026402462190874077329729713730053454017976226582643336500003115167641540765550784631050446822311587829206079112374336083826825600933861889191216743917785204590340332784671863681088255965086318979082392818905764737326622173359490713823147819359365478214701760376206212610594443175573252593797983224890841989067319076424284225176045051471104150882502201893230098872466416895565594768980554032447564467048139881882014788030593871340998988982763157139579840732397141039499702164789581095753042483892213096636226115095528509026452576822651152809255350031320007591970842011241628938580996907326716572275359399901370309373230483941126523896344369439456268394254241274513440435551709800505854841954348924501554215982072534196751446940812166891142218583625634516767203843494040229813784961088666732669599639815042263430060264676263100510171761170595772887126690445334691548968025908039534198016124606193315995945723184359922050694016020103538480821400441876470922437347126992831255287328259843246824360382920066865554679070977966134800353854422946648161970885893306301670263709920126473658868666968281274452244177188833757149244247825391030666280252747081749979323499006754903850558427781944670386821595194807454877852865832044400568832445978211840616325391251540271884933119221483493067135969412575045413347188367821569082463433890436894378977946137390760837911373464765086449800349319018743572410166361337982796064640138183548075926131581738403754537873008066462647671555685969501892332616804100742996241070874307632222757862835402670346702615236653486222436853258222879082873022589311207357900641116382753290519707496312350405388495877372169706725043818993873486656964542376504536616737515008525138651168480907433391788764046184103931909741240341848313736794052023113993521609355630701041483549963242088565789929807468055888323706645587828572808469276746963278528499432387631480424825119031266798313554755408135171010936700598465895474371238510470411003001700894680022900566903451399266480370776109690321650243310133937313602308395459693981209949166524648559656679306320664954171057799878767796608663970130062661501392035733302683526402238754981087264830412942717914002675508017617602872968153391224698566395654918654038444928791772837931548672277703983065731494435175574720801586609895645752541225550260053462138214557459762782524791533855196996871466100990674579398972110429691538312188870666514441506914262011302657006649776410597797551250084295457449477588210990243153125638403679867338814674256550506971429155260173090502050984328205117416796536554895179045488237945082929910410934646287115600282664547682009971106537767331741036113750122550488376749142866370338506792712076716575796781478692735114958306310517741266341746814380147818807121592067863694494880323362246230835067725227243095079140146254429340945187440582654910970318809010297923895039309978710038502529187958621768197534749548538230415963279663440369075854496067144828048611661493877061944928121625687610640540611402728235030054389789358157737814368506315388846562668871653188929903246772945013805072223000726066165373482386504252767433647762593484805498071982136347965886379507838899255945246164189564838271123674808265957477631925166314103895862967285031925530654511417235169677070464659647632671449073212823839361291088736465749627292149405495645682406873744215492528297952120051168935007557395324343678570264904335460220364233015655391571802017398352959262570978935960821834750845430532876109756230839715915189842391910466620051943658573063548204288046773135298021492265312872706399876475811661949013230341532203439465330139500599595499050854737923197938094134548531519129002550043466067646982721358343520465729287112290013772869151822194038136055728564849517739119693358314714457845470539456281871347539046143871004840768377618608894049573961303081831865852877069428198604403362245875212071283679546467830189364186742277598872505216950188699995624969098242833278489285226607910067096652315693513351776148516666911569191909641398313227450344037413419910413537697046950029291856692105753053484989491386393782807641170355405261685868724022838851027358382128417481997400066740227449271342879883054031535694972007052012029194209347663779256402381971290166468513672660885488052491754448587607338691104554322417816828452380779890359802378993468190596303680202334310887646286343610026327111566022040161343691778694592619603028426287077421911436899786674384069036097758829927628845704676937405681122611359333036142290458011127518651710849300059381480288991861078933135886928606459511225578486249607092482138616373329002764187344570256075138127373728671047532424692122713696186485030263626059612306249370359329565017092025737056596327315957266259130876756882547339628325148404518731853339964823005433207682068920552172113125258391570713805432918127700879111135366771339380486005859995643681210167534643640681615093755212387010699147400883677784242648569254429425679701945822174758816544304327911751538037384254265024432012676550331453515810866675577114420060447281993939098216828760917040353665929760673330839772276024471786609664829905819948719732085398564211645964817253297781683478255450564887629356423632475575101992318613970828491777455580756942822410739061090892098864916266504430812600562328770989757455801590124865882073757276901007744635064375141392501909289529837180037541640224021059241399103762296643041110996936829790813898689252381179341907162237857271553069947057402295473690371427444812523700210894702414205185804114826459116292322239884306918278709141849229403232333192770624104140710920701493120371061539315965904505311174743518434539207627715233819798803821625099453865744747711660309359757697337457356192329949154115368159537035387501279823161567447187456906268558099395980428811868321081020169220851233878462672548278758177763421758216216021214584166450396966159969921504239316241812841297377525993657333383160605833575820323532623698986219815871687565437669878644241237738768324671415831694001223121897887705838553060948042554804389532615254752715603097476085968927515549638633662580675719412134669970035786630546007243307106424137209855094182720986071988702104043154140819436314074007057659377575171904037137745718238531183594282274403614537855335199485201454303371350123190423769426912074351842625614569877278926003270743481111371392326958364601819812452397930631423294997962393924596614200528646712123028949529398049911243060459508923842555174425985043678184912940634292506972768304297820717732262821561950092130151644638455893407869196393875964883905174660580489001829506399165481235526122609751471070358149754317598583122325974835414840052838845596736472676975125600422151536035599728734005465928260951159817603792298633638861127980014286138558186726159628039779795886420002583786403374943507510221367884892107365044289793861931760613248055430037371740819840182643894940439801768913743506337112490987137857131661996073874124883908718013861955737875640798604854364216032863408912179699154396482681183283345921458957234054729858978479197488109411231904587096913797874338317915836121639560925776288445760151634078393997566971759210341207918477662267205231511197675355390321605219081546200504612737048698845265442612890118237388299213465327823850931966468119920562440432949831779338132822847729670594600882333939915245335487685366487022613771264307244566403872653250094584945583225982171871152744249956656244466237054603307136674392461319551317679997032647720879507645323813177257596243486758280438797697226105287510011249049264432133566330957355908807896898539286448120619397315218182035310353750665757858042656616443635517913712368370741594160989121908064130609732863736249057824416723344678796583875935670868548855988566360941040938814923379841076505700713238852939750491759954389359266122067431319290250710600326638328118073185204010125138342223612167916489957963379051990459926571720126386891690588378175408186799681265869678000447210855565149389506391682388031349161844421904453872630718346196913257797328227211336604001413947616537729946715092598517076676002188464794820123586913881501004327523313508062342615444528192960137880304307354300926685562536253222254745373968705823099779706349880609769692553641992141861248882912813366037052698946321010649262036115049580013490017738722602687899619520554059883026537708822388450798655282127665003451171818518401612661784447901894187666567648303317669165102277469953538386793371817489588818701068375841690996979742058049644979946964908540806082325247191694436754353954022677732872402758030079174885772106275819917243006877606671298480569147510744418276568485462160669861102637640019716611827343202006326405537429805743373342135541542016356205072553070284232277287798986029570781622572590415170803852177689383589314094800977867453100508523514472860060490732744277829962614546663590032689981155187009887555060486387800485561542272791482478809652803545799093156562931464457702621650095582333525221055466951453255676859988927823385108894983210458149602103646882389845414737522605541379931845881966208185561478733614775204243247335945964629118852021456927685245400451358066561319531110875867435627206799410580044356193157993697043089973444251165418654992829824853990052321899999041312693273860140664869985971031786952337630733901755805344887944541958468359210586485485828796726279818709795605480471493694836573272502146637449636735374724266429974688143750873304091331059259527301284824801514253456097040598611301664352004271998934722221624786249356801547760315312079143755202407852594648409075486795635163560268231145006475020088939814828797299658179062638695532031612567946413178545736578636622262503330950067248535342559755494967219513846806563610080152086181583155244726915215840972418681707007319812715365022370185485100013554159869367419116707579236485650374334446815452496975756858619262329182619312298662989115786819420486233958908386773609303358756986027899891042886351156407094965277246781145735121644073473677902747552170518602684980160082547297735398616586435802304479039087789890232395659431517559277771013751286908010078729276804530215777183996624647485753489121149789178007987533401907122887737338155696951727678426678925515919029151584519575380994169249516248931427021101204637870979676005531448800129215942062815871049687583192982205836480397579976861027155855744182781800261096336972973990776003082642821647047024674915603378643245317247137366847346899023774419822994969399076703009114838194707283624865357471035275360176790315430037808533681827134651327184995768984134284467745286107043489200941369490425462477262139564111786191337834795871097852360178063204245017332048645025075125495890559378633954080558262347720760548205672993266446419656465821163869293056736408107712783327515811226510910879244710329574604161417846064861385778609445465324131375209879182163312499524388030374623449835545563110359316401242865376960405643735825636841812376335115737754052371115043663685759019295164919359904756358950177778228947642085035125436842001301045944550861328477607181940853583871169692339683738391755291250356907636246218056041200206580547393762679168806858822126839563960218516055185404423554242373415722461029612873960740705230890990684385546853901445689648193215867117575979952914258321596916585190168515075391469469645000166773516181827268739652827497157919572369129841647068460699986779994071054979201551373845887647745610906469270554448663705018261023690786405332419244174983337956255347887665969985594868645010122112401480123388092882412343413076954198719151022788159866602907233314218570895894121275695548655346489051501387971526237894166057483173434443217214553727230556976686802811608659180282437786689821398905426052191201718105491649026073960478118425509007644308481387187330952005517755178460696384597139906768275611090114627223125842732087297405725332779614779518907049392398198027498645586976750720287339313032079025851486729628594158190566027066157696081887470429509722809740685355947734629644795856757446960910502634170458970558399629141504937291186647401269069945238132733629205540823436336094792339885817100827612026698385917165414797801517898552184754671310840641553962701444572913664879822811752377282323990684356535153887213032794559911490083807090297540087867187709868439469212953853942121111509915751874357848144899639880425727966662307356975559858706945366923700947375106734447108061000895299295118205716565819366951125039015187025013674423211643429692001544131013767052078867696251575563341068701504842970066516314438138064395155163786832836582684224386972422552998042580474385390814246357792837050743004047896749278736145388685232996977932015341203926628162154982284239623346863812089141166041623929396513287820331511500705384845353683826739417802925174770158328612697364114412339097414672511133586999717080009311247178835988576004125424497839638004590434804793346950421164986583975155277420212837814913601805907359760060675876858402258223366490973868602032213798935701923181530833526524637906881501715983165890030502398089646052003496712327720717421859384456871677512587869824583656485517551025084288044439956759331353203152625764764986577642170296222461432004845923032882034966720565488240024668535230629149023735923497136033890069313424260286678983454125068686421004775840469160056198693752682427033520562318840626114241192283483049887658912974357355809126178755153817320604832281320617640046807662865216604767543641341268717952948514933048981912182735253543438770054040822108105214621437274967220523603271452891320132085539949937687996811896158479342619586189956618562060341883567909863435080257299233717850306063332787893471275116066118485520795657720391962031143908127615887003704321134354562907078248119998380628908375148048042459809514680613514118844290602572554821985340632299568696698975051376871050682406127449325305072164728102194742258185049955392466699106385657547303196911741658206446130035286514407854691548885020309127774107161471027136876343577340558468012202383393837801777476510435725760244613393186134752538492295792459296397650091872929474537893976355294579254997043741030435879413360715087082470187059273887729057832579213762164298811102385929861692690520519475561079014721433678650146048490024516603488075393363871963256704995579938056565063962292644546218515843569903324128416919164444941835419718904307385542385481280460313549519982470225425963937775178129085347684580913367457847158953778768127815782351228037875815204392804413643589222639667985170711206221235329110575515413505017377181397880617757149405116242504551444795256735851022526850093919047466194836183713400316830107886723115433997855198990816324377849076135419701745046393576686882341055287216993532806581795720941014043942551695444374698633232358711395845184918395905451087075374370457459911878888312220690499468216509709661522588079794131990915875534869001122876829464203583791185920844357278113997667672738792536612949225725179492804108427576273298822999093844154916793499857079898252275440149752510021122571184160335980268138764376828423462432145653489373394161551900885876167815475039418346795230943392811232995797981260992365174324695878022503754428369407872608222955042031630685299365750537854186659714372893816625405757581905360729224664490466796243064103331222578103433015286691039361139867769075003032640246156314002339603084157007362233583697650971311592357026434204059954092142776905462289289466953645564527326283288474532109050597987231599558034757265714630911507156022252773929151697227218821476414553662639731263841355479154621924421301403731237433918158932171137800327255786372124776565049414828592304548035483253669659859796516774147420637238976200051859841564838415939902829043878378002052578253416422601455193397038380309004185553020279541852400976701488824428610212855390261953139334925973280434636619930594656277344331753902874038404853390867535575060531990961998210048717643304745502295523535613203476918108405077993854972851486362025665840953138129089175877324630331364611795705186623717626606567908056889309966736307612029388136167925557755147130791757281161095876058545696475925672623964789712585149900252904130294480586742892061928671670254519516641384448916971190142482974621964863513500691606777655496388931268530999940514527931143692732797423449033602696677125045571794790435720005512927105866755550600648022663840629219597166357480920217443921967900013135985358183368140269912232897106083950571462168356081844327904167167781218674901926356379297643353852069239039969250643518943046242850812082188478632467684248949663173090618741886170558197316509130595112222549799306176279931724816390128694889939456423407495172138218656138696575791930519780136243973527621508530846697219880479194132829970907490678195566089505539157208413010564982802933611626057583115956146113336839077607570692573376235869169198641637291053605378609951981179199659516402507628770411366604065469370943993063028257709175658754766060876993193070997246725810479806806381688076888651688737233017844170520139563907692810447890951103549471913824347320719674460877382857510898000318869981684476689682860473575783958137359322423138888159546601337458542942574172451043380905684059204870423033068594025089747451958632974538619414468993489950845312258727189105269293208160209242784141251298493308300028996646025014342018184536817356892999422555643035856043014229934337351020138456076703025254930993682583077391080081350263226755424153802349531430902773488637890922740787794119870242244640596729909771014280257355265215011695227238230050090649030310617211655554932886338781480517134326811823528284600221288818736677481846172772847755386550780258320976457908325845544533236046679378919399197554000590762567858920598970055087646829396477808910482278510267273612808128922623526848327776542274901230682155608222476037222619786975504339295602676392047175030905247338845770165160179385455845567639774051959915193116522702584183005609609201982066146975661929462048689638321075366622097092301714082771190339642102077530224582528027127809021992268774713312204100883466600784135186366184548189864289504688786923695092956498546681697791184795852203339799812779955256379256690225409517845732982391128409252963035060259252643402187694957982014534760747942558482024697626543114078150523924599982013080320579458382486900030485241649572023044259298499855048380355386306389126567916065284718062051613732102420901297872634273787208061037251374210373738685507207998169670622431612296897591972152129536707441613208905904124099912595775178822613512808539539763358934123113973501882916782135335853997227937469493872691878728524016860409683017236092399462563572814685555612269748351468354130229733154931878031137903046577942596877535593910987486470089426532672110826374015119181387537339975235969192402773350857580863120237994762699333357916381365435125019356859629779578252655632233474229456847374925685312261879473408945502318134152979225819981687355475536990418521677418481585978197492556737442263301494202629174078645374142027455758334355280214001002193663677181374912589858513220819522698736981376022155182820117212569134585550459397600854376989652904922248862366772387900663944089836056193174766362515835180294199972218312253819574864481642328513906800857879702839288609185395471292510491736084040369226804370338556818885351755620921515924008019384387890715108969730864387151326772282965406671819890490881032677847894811063664756311809040819423565804405249191427548530110015731831191947242913635054484505964005329073817421623935562957201505339826444074554559857993690920217172944490151792478873016126914250460975834299667097452101160007504138111086331433873693273486630331249798447150127348223703446138503203584142876436328875917610793198094742853914354194096945320139577183784342044071896619790127779141303854847445067907518459249021247999490316786460786735755888873741546280925763772033088361875852956438851964258031397513099303219354552088661376953457123215908708182273697587269139330188043605856610918095645152313312365950267344723302886464529082327982300779583431170217674038461560765085413557654084044018541742107295864888784630702678509976503685175904682474191164483469383065512272725786076483670536114889952391757297399621467649915568397034822030343097401290792794310807639392432309541464661608118750401487894090269989120539942888959916923750541705533708452797023729306352082716897280395316192766472460890851379770058907367131278879416096791080218581809389311067772085482516537198520919452322757073424426749625684816321154857082019035710886913202320599448715420740823565695310940808307312311768636918507792492056900864036212279277541437696067733227634304287567248002758020667700662455625438870293968162261065318551099866544355092014174201086606413618499895092193621902669970786047254374466366595701647482540162255197372167827693878016110590445615503803109910198465843449477819574310893925988996808085562004373469723046892799685234096051111257512639090272234954566369967416170841793671082853073218840602952899757171029705024620217189140606000371881987517714887641702491659607766092526549276470123716215358188423495057861570974792988226213798040130652777128051560593254222731217470435170112195885330602755594872574070737524103137689295009887441941651698088922779931781295428278891107924546830508913443205500815015238758754393744795597026058586882002704517509896784369902357822907983324026700401391681565179698206877898800326309156876215056054990280307037702737401984567931901969750148924520714873070518109763874776233701709566739456687282768177754299269299006668358826698586739202977528624257173180031869829020580157912351578602989684905101417326784656932142517644351953619678310448126290613649450574371046479054615844910818069004321287997170144863209810406134968425968778781804642296685887464060129360596200171723724614829405346649412171470886754248133238606609103419358414801154557688415837204031432262210455318085605900964698708707791708133349111542791904218101586787563614500760384570949409305476207224444438632887095838179466320090096768290807306094371648603300402790214482941941089843969946054705498212458508385719867391945982614449310096126181869822838851552712362542605619914746452418488718434820425788675035374257796968691294643018779920894007691026095990112553193197566761058250603898952378976514330655456101925188775652433443627945671542545302376560280093147378710680362411574879558338528553734520212827444590585706603272890139492119568638047683719181915224593981542415886422730514893086136911215883828582216403557526850208432514971601523600981389964683247685860169220665169571647417367878784274492995633833257618076852237208582064431379529254172105851628096235881702123305704275170550051321912354647768367969537031480685671622180651290063807159876969564154780929227560831513381453031364966546754323929478030916378387697315253586021522208532190447452621781327458554196285882555130293445045385401051789738099576555675227869125391753007941332581151722922636984084219085623817291448680185749827460997564526899892666593412507551990202947585370528237575608975785299119798695359532656136749656339691010825037881225670518109602154415082584305039593987952771380059621119141057994955565332261773881941740189595145378507443839322942839936607973266454759256582437465309994601630946558656899703259796068346477914923350679334392326462201783587891147498025876355487594474455948563756901913224553142005466415559718024150810322683187418723155425477877532637894951835644787259724732774794114476827456476752247131201672016472766887953310329796448139698119129528373403047805442357624495376648361821722292705212893907639010066506290834317109324138894741127632880541801445035579774239389170710373317526174476251540389442392452864645888835028991715600552918769498961749150095883050910333472008011721007189534169519146459943931547193878946017580906341873497392940798405991826298476963368426287832641076206798762322522883287620175524879503136373297006324090642638359881890843256635777563186305928827694367872581454860090176450701001100550483547021389170945284733579518575234187328114409235839339313858825332462329596380633327707259712232818952684113347094694753327318817390180645577024673016251560776118002413965238538209729996563719674430505031091614392645345229526179709670899552435359713529515948968590929009401110828318795181033833103141047990624247384160231867267995463028792094593137605683671134574108818462872795594693360386064084035454155636265474213430799456463226345774486364222192431695509506972682121790590291704573643888453798748966966062302653364280783794090145464245300131162746545767103171205454569835176854909254685314682384713692514756568254008046261900923313354545811511197434000886952254542317651834237400357995231979382459941723816575066021700963657857336288502743824978837771086324753524378793583701906480499733234064690441880113702176638116493556280060100718205242062801915030998443491655278075361737097595084561617810755584357726671689716791608857583852065082763933688100020251920797645991059141041212252318501343237801597744596368143329822040520776826415419005211006967966905232289587718102690617920021017898631158327659132452004269318948394293294929482861675472417979264845726288503198970715063809587497463320477853401393301765715448726175265158136826383475513830399026364445055437898000819846008481939110016976085359382068614205088250662067963319089492368693810235464654775437709677161648587689943177470644401976024076966598153741400721625621264080465782553171700811077539241861839210722661081871491236309877188082247284639441472763198293339200286789844384692145411296022191311388188944955884041725043938128049290389477199526809724220805328446955902203865305127180359379569998307410707381843725464019455635267316373645906999885442936943389312243348068939730257334950325061801287985478460778996826937511417838651102294901603866811440103073748660184878358890406476970754716367629546586524005937869365221758890955684580250993277019188264241383377800449406017377381845206615593844410838885446773696822638701069385946971728355392591229171455063441901498731237289863866654456875586099642067295340604455036751901492714638183612675771239711765825466361908024252360052979225244314256024260857369890300368598087869822807044506047352366322623002161929218675561980997611567480187776884930284139706417193943711719131884999459698053501459131079029277675770189935985323590088932476305469004405057354524793149449650880442202162572550862856356065038903952669056506488487744025003855170262257853785845436159873673185153165151105298197594492459457614590716659218301505102260431704287253646072910947605304026440685987676138927188647949219376169023750224199631492391128028129588648338830172520606835990690048126049639431942884147650102633829791017888500316822185223148548070634572385406971790028081797787192712700250423323765269732717565454756326761912096769133646343305305721901756392858663703017558987278882870477115733326060252639147832937473626593425244573319600103804638240732974060732136433901965439079831701220888469374159594068253743194312768422827292982318649771294175345898860605500619316410909470640097540737874632488722757396056963835597218795934536082407645527077807857388570137578293488324654556774573804246099274981916656856772121459995646043020713812467125916267468250806777371861873977866975329796391355249323070780169292482089165005074212400397094582366603955291885674926755146937390642938234153587770811949459397643113780850936899689548746549968079075388659236870923490950018049115939657416713845850116130255167033908466777615310808223005126558995039352022455814286292085071878286821149638620942052757974666563658451465681799814667697117022322310129381653052084358343691724451536908798035003914701517878648041450532681202184275638172544548910275634943313536726738450007102307994614995080157493199811059993316763427053381826868001264542672684121584501264800680545447262045603697637331641437468309808079907336290287370051334876052378474603031286740360555270947972997625462165681342085873887079313823436714069559944384034576107853793447854078724927272072614680914171655817466556855952130293558973620598751918698693722012282206119456369601013680308245802513351538025107947794198481788764905543116592641979212466052976294636982231638042818757735655868922344104487333575243022412894827566032861897358224910110563614113967892802622224845617750429893867748054210653876712572620383132677307488372772792297356838957573292453513462400277000781783859339782693432871106049147199319691312406312319888815360276134903137203686989531086002419629696498952727095267618108870497738774954456649151849858853507534916041038053108267038064018165098593042178524583055203695954788758425958850609684325329771235340552839056515670947023446845386943722646464160047700070667675174412974452986276579448394992355865578174978594611459737530183689124884158406180165257886741538060432027887689590120788765514876551159762697393606171555813628510343438734945359451891302792825603578422684195768043545706687259416242740790725799917915299569992546314153470100290288077955123653359900027998286000403268703038671959075966308948919358228437722780880840554595006948063495903443627341577917312754641972700234354499105971995710274149454777909139216870331007310652265303852686342974512167575683878678622935330680046479280821368522556609722438016294553972130196448842025525160113955804010824081015099599146092233097929552169720536173804967260672977682983510227645024741669975745347083125847425350704987647875664253839584879034091887118869508371655692972772246303518286786883861368557764102504988457125875045230319433018951806432719004922300112893569641001494478864157585701943259154152328156496274858419035275663768696160723186257800348819354957652571076119164557181397520649891409500571048321470544229451675991061176836328191600398376056030167741807407915090860568843623951653019288712273200914297203156847423304141142254980307115837388358080912847686180017164439639423977937333045584488429294312545316295605067304100374057625433747263717130692106967696330188068682407040046702220211302368916974064644141410344624251996598941929013470072209173520384825953942540459986824120140352359271132714240234596753211088880993585872151253587827172162279146750188428619815813643131927835041963859322707341286836044482009057333820502856309887138765600394886528621840275698610888911676541475215588493414928693456502934631643084178605304878216041357964039775626068839587018910070691713066527461971932150778991912249938159533022047474305138336495033206925160479574572911686777386060448537177382410177247380582149648572026286273372783481861733376346444347088424200820046274951010251443342039177495893854121654909509662897951430542245872456208027338559442273823831704739427175614803312873821942052219253566778241829292733896509961137976666301975755073939568184479936704197979853940563280446827193743291572249972900644077282492653757419797569217464795702951307691166952053195135044940207361452497557871514421412810402735091535274909419302167071408427743032107482993680692970450236262213961091750937893795150599181397687583412087735025873608550057789400672051387098394510036084689039427707064031221188924905851293832114906441070743860416334721307399520720764022800982581934023750864768518639160679740893647356125950205572342309581840137418831345816844182400502359560427300508857081856960525376290068178870559695959626394634483480455497508257696608187468718767190315408095929134889708192607171548458297985553312390603441410304267938667434902310776472194336315228889292901788486650165559053229179790354451356052817349931538651365725047983089610993947623671646165647509936414664890832207261585448420257886804179196574640424634185188041390619236091477565341814623175891365171985158947251282311905093164680032948721674973498980221955943691306577393820872131896239913725994355839471286543954025289204208746231008553846187979980462151807874854515796266286591199659534536527575959000823149577729424306539885822633016273128177302253997669739141403448386686948952588298005749431648937347441703403509198477991244510410402725667897697749860583212488539298347305903211717734860344555940195729418078469534408422876157712295827049619803387915859605943843793629288247446272763906191080803249810779590881916736962434126313080881731046576021188705817091921707885213120127644980940664571651808347519333270128527432327485269782317059348480218056402931175380397204640116483164231993597565327162466999178434378942899783508910786610079826308296231411161106976068434930864712071604671108335362591449751598273316782668450927902114741201027612019992698147583953323351946294065922634525143156323833170367350275548265996428029928814823855221727693141859953676851300366897638725422886391463519044681700909391672994260096147967746415814453199727076150746610052171174419904813905521772108173798346243156306631887745351984791478217938451298030810924062456509849793641041586110580698515361453115477119353069084781654094328623937417328644925527407254501473466909778827402037947143367150656922753632373528334425030380420730963210707710872366707884814384310327211480856895457212480404382842085315068834413085849234862955241993096618909124470629041780983825253128132263991400329321624978934240623951907663238106767084701251633980914982182104202429021273237841244812804977127387533983040811757878625234232683700470132914585092552432138862248408138867804347290911360293608961203142138870071597428940637593201694169211786590844650794703461541529442576312216241879372583940730571858197750260980184714455774133654997498857576647594912185545760170866201545490342349782487705414174715344115215960257172026754675826581840671173649648262256939558573224945397690263353537349835986877013841619171353080987167351186486670788436448141768317876055649279442251159574070212911111228145438520388700096831248195446043253544116082790770108250051523345032277077360383134812171253240275810358019853211511864396491525522755584647565808980953368833015953049548911052120006451937278029359039912714520094110819711977874527657535226007116356065704018089038100954948027721211902446355163714882169095192826667779166221796001702653038410810687598212902470928289430385390010613952421601499349877385942854482395335036418518665615138805931082471636927939520710937093432768794754115868964191843590729224627470105172408075088199866078844310870336867904246756360422488730887837743007152163332294036054064407732836616732951327541248054857968756638094077371479571637057057357423634104502037215603213794471686729532677999849850570012012710309343948930576276068848063270044635185327047316071370571960099048078156164812533039420174823816960343479461377756881500628132272307540052295493448856675609401245316403136457644050777502364847767264812385661411033784856894317700361700137986886242103624927510866425510336802848396465516847466149752104656670307530115842558543716717083609901539240405295019074013752307346350886669123807104202122302977370982322507483872522664002866129680570019989271807675064127727496604861482351876940675709550370846330846927972023585253841259380269379217851442060962951049207723028427017247757616138003859599896275227328992488347411209904173215527636297533341488053096362653513240378891813267418981318223121921607176419487187547003849886621689861902168180452240618604137514053954857519050129450487338033644603242874407672191903343242774394937398634036306396319491892994928437241116274916239752328807861885401188684908875776343243003857157064480665042531185506325623698002475628265823689349538865557638911021137697655212330821683411746812007432518468462795334646254649067879329692868771160047192141195102422934831654368152116305331097599048044080016285250790026906418145143851956615942766759888690397608318870257691277403862294721113126667091800479018912035505491265756183559047088622068414749488847555211439349620922861864796584477065411694762400165646484945319115138747192756313421693962465023050955014400283068793812506716543077701978219459735972131133155250321677830697596553368315735366684176918169994969442979985830339782401788878533949609087996505983816776674257811262523961673233256240410632148350726422204483709000035367852020779433669438508506929438305711300917261047188698660680097159049480646141404905949011877108062960135318465670993545696059204629080896579013594904495828908212756041055689079239789594109228937930350070787602300165068184787211609139962658962671323031441619167790978424764568965617058416878638725933612280888033288117827946144685459473545308101889555689072967838435835695582634830239680543655108399820359193468485517483394905743801366116893569657310387561633809232240929836353043648658324170925222187927026183433806073143723065683770613920218455797032694738855648735113069878287349946032690625817811604780063333831529588758526097707221746632407332074882347786030292258656736711694263377337626147523648368695067488522627596134076302880497006651361264104188375065192964841951302320706712991733011321328195436825872269057020694917908676265141916386660427727543178802574226418662507358742710946470224847900809501765197411881418849027482309203233284863984548182782709384393789345186614889519034966047230030008795885790295222017153863577079495394454884789277132357700488799078268917969772527273239565260974470590173327287005826547316390524754190872117609302049188374344711780838926955739173386987019577902349432204924409819862996639718906698353187864961112402828060102107703169759042574366106149314746407364050175422465142086665956921471853579477527470092263626029458898286817514446270054631447737301525393271615968491888927935687097930399741338990439828391886726277863532256305895911140043143216746577969751067515598233414196184230305301981136519484981624150987148870186756165725809876703034363766672721690444781135847552492355879282394723901006183876968349238357105408184621980942938486939732104797646765442409838964733074195724410972157388224574291650196273509530046742465003773481451570673133866968606151197123450498174944034455567850923891453292484368163260140852948623254915288708682353027133809512183170451655544333288181188177055031476736173048599365232515433362624800101046657337403724267782049979819466316181216920353308042040224050641895859211369731746034305249845986613123284089350415410621691102097213611598478773082049397964819369769652153337134417550108976013386531377742783420412537822363172427502500710197002755679072028020929859977729234899907671342415578394927046903887981738496270568749803965990227174662893983487667226059956181081820220861460882428476745229476766739644060871622363275775142620647538532916786486421094492351951366890366553469363209279237755321550449162863107911214977521331713533364598338502571971595660531269018771029464577472165342708062060551863979878828382061397674019463588547866194830736694131778353349082535888063782363624351748873489898951065127242289727359400894229147203929235469092147545614380702623385605421231203211705591910583954707286772756619925634914361335404844883710089485269718633860088056055935435147962495460908778942140334003721869950810933449069101605967441596761039189469143373900489720526221798066620482579044952338163066144703330360134731073592969570838475005471628408033837886353937327228054609644525058169617409916557061403784249186203068467000740714187451460634544754995854400896222056432928334247568984764246432539536191705178431209536481499549321216199563824501779691426290235134662007564332906940026634239805649968823868531644577523718316913673371508360480749955978783643343667080342208753008879784089085291066011377387530110964655187639261156629840730601939656382665540657623685842810943332485140699136864068929400329076745164310216687731903396552182826849274768241801523629046947020592951145176724390511306474101037913495092668477187890241586907208655222188036950923084286912887236485905451302529263598335885291844179820915077433669521790899287626459014137369024162319217163541977964518589826877882344826701985868736600658160146434771928562046867337732937293350582044173293662433511255198743101107412219034306203230775798920531764094005238388398207154041443783251065088325587875868759177463891117469494225987602119130440645445541221706363477667052050400226235840731894773400877351534682421386813715907860329273752319556999878461638640888570548047610695653573564547119525469060842013409724843757298125935586345400628651903079614909916936551584124896962960617636618070404159578450915088875928341372769357892560775306383199082048722033837505652804304575714207299451740168431951677737774599633978228709390371530712033227145433415589876567938769972453787611303397807928686229560409383014386965440249915549063127395391829252251628151131650381913029117701639632603514136254399531245747967157931750400418567304776161821523491339607822892796180541081114589073899604812480133825585802667635994924976428605854389227299706088161730832510083845145200967812763157357781932806718603448920831412172538504153641148589263974229264935354127084437890981399018192722442647558826363512494396782863018372966893882519311023615643591461673761570928078258986847914365018880943326052692086774629624907011915684475542076435737173563761033550192117416434330459731491577891891069565554454103464930436566088567608524159568382713010790522329186099526060258632814857910796482853309653100518310947163829878029226888920574779879963733348029507840450962871491959731418320653461076553100549803826542707008771083947930780982682287760471973220868320706767420734769614086094458309748388587965227577988922055984128474812424335221600515793476291494868304232622719657350904794101836814513771496745877807922239261844151183334499735446419885452270845050811444396958208562833728352395019610004096345026185685088380428104500823952581267126731862353062895835794088642051342595777883523950870939750703412215077374779158356475823233247359377430084983186300062863259848180588563938347516789188710569932409948179957305607981736489023172503471386111109742751195438671508478426880029521760633489236214737124256038357981896164364178775506144060561952312520650670754506277375857246411662529159450144292697605294033809569207790314945101781556303212188088367172670038102707143986472956887554498284895661188469533921663928546200254853206001194649114909430260436097804796445677462450666879990829206922240935553011490540899967529574824092468312397908123718845209881901600884817537115729740615508223261658595951117073180041133572015813352796511707000218577892486294006776925875450927705595321931742368548042536202102192086478141066562566786709225185922113372168754845465419908696253880538862390071765411317968872833351771258303765708581225075168738356956044440428237387037852698587547480480197056456620028885161198288524747384230352272234048029257398288953846722423006958925568811083899435402656974852314373455092190256012766297598575985600943500369243626103337003556269278843969669114582164360582203398373501487491619233005743212547835126958799944308872563546245267113179040477562357059648633586256120933203006069850296810076208219003627737263127011873470876162120934323069514980039337551067752468136689819343554973047193424381307809462584149120287404782196139564990651767740267663413686299191835583428258369514157608883407960020389317683281848952529472775703062006916765518756707924797892439445667616537329962852875692339489769446251318611255934723052840448301213150127674283911293151913149156662729224523145220188274811910609322253893965476294729930064502493814670406051591225640004014844788808615483802812185720173418254538911136042212939299950927466406437574459932351404268732717885725345922862628507294993863291025631393763230962744028894723652638162268832526332648028004165778733582412697312027694935981717566469209084651761739983995750770753346293105323837043096923597957800698010950028193162263234830260305104476697876944624591447492873911179054796615437514818758333920904536223031411614805799404680392845847011007325149147845939377309354995478196298577895526945239627856895519043741069715871739956409030588483497220119852721901948122123260462439597547921805964725743015009239224578652329709717243375085483943003488891344797960784056867216612156041452513631969874759643728830554019897083339254685936551119487974916512724474130677190636402539785732618199768353775960802273872584868780284500195533971836204091908903022221254436585270120660072153016546285981900284434722251733241539768570678387929673615542540611805351573672978439547282100840474870816250981259068090469743557037161562499575607787424844692234663798526188047572645411990366295284562848839101872944387923337518726770612114304911685896669755240222007415712455473810049885613254387786522945241025708070799010359441666692797138588885596624470789918374036751615852085077841411586524304645344420730781335675414000472513576302720169093427766708746492065720307788730435570448018777422088910205261483268710324075103314788043969830136825850479674116938341090402257273503639031197912438913555683559921686256046856220598814082667639403289976409274196765298412896380946562497329922266369974999703950414369770820935262432438945749545068633890078566921752203877588129652925917794912738133189623009212199778609308188934343194409063648182513972024277354146948003741596290362345033079804299874493029885935838535517382108947728108548230817654177346339649082381826751530504861873299942601124459619172484086631145633480920955408486623387712543949135243797198473434142695937185240336888080872002388276157806215415738735668134984426231290589076504076971684858657537546594444749673263990360850976286523543439104000420560142477724718334738791242193434915516640427609941619917128130480558636178140798624789325604120173419391464913842541072644771491938157019985230159307488006055228166826178353670212999041201198454734342708886263163843494082896645962555399326466571340841330055571197741302314917082678483878331742014947567424110754258883814617357113000711893295366006237015410588690465707267696415976849278451199436645221378041765728237105425213049086104458972294036774762733001578432110551745289581040206263747340018475387480351334421874702453305776986749149774020793583633009164527696424936537943181558301684352731531595630387370351550888499991512182318814169263740691104420421168504593204582656382440818629895313099633463141288027793580589978006571462470035753186485243155379868754788214028759190044514133045225308752701253016159180083224703670519020796497604048924730222507064746826571160398704695506953995582670919877605969875860877593038424177088587482697467223477085320940578870521297896552580553511173600126479275833246193770482837887403179674190603500063535370419192738796636905326680322460658717729501140963960787180811699989377407374713259926223894361318573803389795723427095709099056753933493440444962098852105906674014810671703032680445992057360965552482908734180240706477819808154888363984261177159614563141386653707246694517360259638582333831754088198833729406441334207407802507835042780019902178492546830262837933932019707660505749266195541288199271565992098743588231623780937848942364278408601645117467377989367227904727193938322749691632137885076347260830995749353245157250653543324995713803612316812330854435366051774331638770021892283044850032875817651436398788906035234879717387635650627994061674330916266267247955220965835965694271227423098033973791675345955832797852427985270541782161409244537995589737488378711368355097926798377883300039013187757163514091011119817507642912317395732373758678587951861724387029567534724161358452322215770766303228763113201776499654818276856983890192496529751834046259691650813152968822663068416549561897236917631144140551240998765333116865445182883538820764405590397330585159893727779680925804576434087101406318627569683569349832132610457905906084890418224725242790062455644327752950229188061625105333126793640041106806444258159419575561085054302373891456734392062573706383084325398314206717956630969552579468781009107974844363441546145926598989482715237149059791455275098611374021292185274980935308481014945492263433607699982032607204774400405230943698162841268280226340342712773164406844191738463241046365065705563030410991708842783579944522806577773679566850095784450283066398393742938086530124277642318612144343719228700755233565231447296660684898805406872905955628565656307490504744340786380079508839800817897836166169332853334365520036271498817601573790043641306926958207882123781217856712007750725029649040345524605465057167126180642387725900603366803095594747181666686835253860766438957464008717894364295148435142807837793172230542300948682921781811110775084775961999329112426142250098264114308735876781108381907580288521230266232303781898001309225702942035746037727815461332507430656205170892675714094765186646514259833712208828266055948214922533458738768406908002990364491059351134261871816588705186844748636401759575795201845871347807033341896330942137640977403349301350408267608024951333635607931603646206440475503555540232762391534756456995544963603483608074547210483818657679949008156201292513334739317358353890611412877409422406976662755937598664906253132545093949765161364009960577273507486835071009986518853183328342902605499344860273857499866075926471328915331677311696423824462158421142737686419252615750559842420643866534379098222700911415870724356892105551164719736468258973028022262997764407179679043834667817378955597917751649810976451325524904090177793827174656670888084050549060796211561822899273551680894793090651308233960570059554062672464209163594173889793046567892398769893774249974508979887242127715240445718277916629950883353434143710561585252460778353116301993743957709999397799871020938696870045626590023525641679549820794256032585077679344738673599480446148747084976696362036722903589792489211914958878378192793810112192593070090717654216312435285439365514853194036192669049183060515445734721263412760505060653258088466914579788145769062662660058744147169990315780128973205849785967590339278862298347890566379086987597174643926425486753919665630722058757300074687313168625315032797814521845203065891688407393225119844191486934129501353863192420781064364938621267375778229968761273344277560744519314161791572322111069261993934247396229791565318947656234983165990764958624088743804693946546750819266651643586116754286365940285213166796713399795836457328666063746026480257024687737502013587335776916142514045640038981169284159435665774258902187271505087279540150367318348896563788081098264963500237640613829627507672453874461160684819448720145023296070937752161576552335455571316098353816462503505746452900818989655837155354405070524389281844440017723980572428458680342835125213807089701830588673784349417790908716326815209489116607811897957988926443793700159807178112373027649717025917940917388566797006867385361359163604500275793839717210052475579726755280371522567403655656483759425799418204059538510865069660111382886995017800539045362140214555348776888437881319420966966931664240224165948468273097883117439790523043493324148783601589522952238314617821510405789694635392072481727126948367613780227250473081191227798108071320772160472094224215423501158032010957911998031870559528368936849255469227851408699181162186642640216480405585222720964296672088645372590458822514371243512101901808974288525911477935454234996471674033442765294264904667228143958539694114460191921250028284935752135332537832245862196218526528929723181313448163791506315237445516928895027847473647638439034074694748902020349311342786746558927232881761080912768839073022375479841172788224756765106783371939733025657472664295561551907701799205431628913639381325711289499929940869076154835443496073588083770875778067891998008729072141445946550467042049427553019363723236322761756760463906255168184569589751890797069580960447453031577769282064265525491235459859150858494551806119679245040397456230195929717538058168264625847072986060363354976374806685345518173893124388938732307139899463788229702397297679609609228256331948669361758318280362258069130730396589886747460822271567779403359020880315885703501255190383126030088203758454940077575356318538834333452817392574464544283154341557652808185894464490778961570074506698365853586200614657100606214491831533780653702578480839194090262130516599972699781809081202048488047852803592870158745914871746847867742591349509653103282247289624978929453809881562613283131100139769189356578165528821861725593537821317180787657914734586334868477858698301603038740600248202775564714210760135337569172369141156628288196713581480441239416833870383765599024855572896426329749219283111278938788349149571291407890913054984224344525275022848890511257267616580198689167858878256720593979926053056224288250034294457771683843663223934375150844330748001776348644917711945811735997948118258348452067420301207725262477258307695840752822216896460244209858328756313738555180893896102735957965600426918145798505848969495270053555966642080883965562548237592461785128199276621464766293229121020449032245949091471979986710724466078412130395966613725988621326923937095046070832558399414627179851038531883698291782722510444797885321968294445038293290441155968902272084486479228775410101850543335758735341010282466570690108996476214898589719556362120104308350394524208583773698915805952138921976918486826621002333135590581666094408106249213454026718653251931014236021441833236470048986228070897618513909428178592746230392063833208908823384783485664123510286287898283134520715984042404294940443430206042956258764754625396090110694786702780663131310379574249354686252583707021915309475904602458463039367601398938613446441375525811071224140661574196489549503885096792309657658244889218827264152796949819042504537701470190181585611956687271811500335381141217614520544268757628673990988625283248103752375954554197462430681420881176322156673613401328235997886948894713951861691321521326739796694937901903943840129967724995773218427510246924297077268100166945409577543808630673889141708530449855321157196958215867980656925497809936692124974361735830311711107896497838666438198484371690661462117195865926967009939557623979170330396966817194272741364830585909143144145043673350736893054286780935123353185668610307071430420374979386677323702717262687096038957975722839553423067125037911979027804182039627271027711420414306056309829892539867397113023641681836324663310210219540351651846569879769205468383837228956091951182922324197180375235771524324041881726667636571116502754171615324374499809989655535349975560038893637661091099916881415981784515009839215678142785788984669836531036591979538634006457267708786486049710202107418078621595544868760716197123897012062608540013826786140701650134279702579876387470790535135828234538433506978511995056159405222464181304778032213125268230916470621962469862034593605808290194952475970447408334156819595148415140350809556902562998534105308187638003785549301764389620677227933754546461798885147095102780470418918344194426721131781092096145109925724227258738380583680040902457852105707709811844033544470545625381938984954990211520158629917537611487244030865510290270691039009293786329545313314145224415900745839157354472558545527358186549962147966423069433232315247567453239705335154571436111214710113692814381725057513796045210160212520870785826282594032778008345540611930363134033590869171152677117262131881720321465260151592589823758693238571851405834952775323406696317960846394484899997412340891523526590959561883173818389409586238198660580334117353159532756657796166696635488321708253904412407846701433743891246160799714980565346919605284771294965945265424550676427015017229573301120802727011496817702399855537069417654957763900645310120609244074670544699900693299565477373200639093409757681175644451118341967774764031423775858559769046859783660969945963264821845809197793151041044365056766121355889480379044565547512364976486125368658029940727254918738492621876770254119173426594402729197009157461916080857325116155132831133823293728269517254836387533644431185899993487988966932307071309336829214643520607677193324618446937140136477536947733752248315778225893959389924079610129687505639537112044399805384800116937423197180723978177038658469204061832339562922404439194156114485231208415774407329440167639156496196869286852745931959140971792435312132357021009931915462107203275660811507296634136415020564608772734865840287345377344107779419478144150796662522694530718289607476190355914031988698785302212797060837260439389308925716544663221998300173525193081814435429390746109485507608931978468974859517938169664282336689108245330368263041986348359591796236931545207614325755377373696120553166352659322632334431823377637826361042298681974549534691125224089293133790644019985604549041260480338834688439320936824679628852883236292123319966295199498831714665652639516848064805601824632217162939027861413132327885354301147339710894269112894905388242497723618470481499928444742634690849542413231582536413059148870797116171270228451864842301141730404433910195799594145517035113947487094425151707188996248097507279814155765128992096970633894805297473369590729952017280107400590951784682145993178670965422824352680277929360354043936842226118553204343665160455412692221586169014324745403548123271345162528140631987257388633486884650894447719111072362246132090880814307203437167471109960249138719197789713604603179638413477715416587780822499196415187073162752575711900738073717137713384132875824490664270331918546883051483099946346744878486055458260448855895848588807016446791193926041651355336492884619954692112043460753922938750003105266994536455914897730020197228207869927192237689744384412956815941782395077544908913467937864565472354986011046912065297984740741904340772345955661429675250742281934783447615368112656210835916984207229298454739563401360878096251822988467820709755499246576512918802876700727661606861926608588321279855264883509314819467743640811073309565731990172191961187208794653759400706899345785026172200276736746737297287397953104966474806131761934537693299658682405075125857724498795989752154036880076396011019985104465551611783006632456371123662852712059324966235489490463909600114620361370697722555106129632799117447543204568422937380279782108277007861035141802719232702602895445633380619024385286078832158538777473898555950921594534667939171917443683787488833440437028246488804162878359687549002062501302097405739864053491837461179186366312362048914687029414692092102004298427430043564602330555013693922776135267601357084755213553610256349672495725540996372054784430203530262966066067830187301895728270455734458312386331233561585829411524334472365882574734099744216807743323864926882351898929467731821085246280192031025421546717026864919885348868953367173841724071375146217599291269350003262193870486629234857874081479340471226302004875083474420700369283745789955862473857200921060663791897345913284685046523725233439039819637893750711939672478567167036456910708715295228845921088458615963062622463291308260011350450419907467691080176980107753554598917181947427707972438408542963511873188951691507644731042432972506642208110932873311397357635277123254047948829121073833025560604894241403249571250696319818765174955563723887505615289731051418552363008813763840039848709564674061172794699757137532660415765922696650547151489630329408324455431883797534166113626254218801119337565416037478979155012425324319417611012783090779153381910616323308563880312583771455576799326535202652552356993776616710480604702038211165082485454459645614351875903226492722977238947669629447199489053453451275856760080966053272056437302232983623371197181119803420187398481762470707285396007393324306337624114817686059756247711204278071538823836249854057529384373995821812984248813065598786167119823035658180880476966560696495143412406589181141846295920520968029996428314993563299692300245755332814979875200757446684294488793388276646806000453773921489911014881867477536082429246437904720492153716849194694483737380518114954093020259134284419672378942978159416498372542859853958688295057065361050939388424708002281896017111163758009737829997698812065926663432063600980471721641200787385887777116904597098799398904714498008669413446860058668018822727249476931808120990707367094014935865205013868283952469431199316601314222583957636137821933598595660204382131370195904594535351556314800701549980031747062742026579847685269980525486829498827375102423573361216543315898583193852131484668836682323301474897947203882856752498000842846687880573158081266082230982135049607628443153266618801817698167639781713612257327437980665368730429501067067350031113197377274730306808774913037675674555986470114666425494037946048869006327517254359473716141755493582587567616113850704527353906500536011355660195999241313294646995741338005733264104151716553027036198440085241674421130718820356701285976746279968902123522477798543031448265900956093742044840459850565183541886598705611325795734649590296794356562655675237832615955790016523116233603880991402722592263585455280042508890916743660164635972271331893482889626364520890808832310676642265838136845749221743934487713401970524407112960894215261142578523598180185138131596562387647422442895153641454942621626066598870493129846711257772177299093263634658376778716996737559657533735943019990636730234630744892644830901069195262363071008366409368998359798460575404133364737875407828362458423081304834487749924597569001896153838700608910724118730711841082804775583013904778101255906363317966032426481378576830338587331071205850338583651513649558445154929187841846458756365631281476861170790574657090784497717811562152670851230703449666629644191842134217412996430915614853425439854383966368922172788559704268597338230245728761611547848654881496448731567642413132536719645874536953955938803198269968103880860318221395683158426731146055569267367511058184346639757459450816952867131760654946712917525501771391858528143023150127724635137927034057387179354973938027797038420830195467672274240231691255900106512050561233793056394299404244851625128529345253887136199732342772432863437209437538056367427576402497809434737441917071260001324924866541729643106685419012186375872805501979750445956667351353965813668542944073121032971465650941944250416840344479049487103919558723707851378653546669403779072369263092800333351496725693358403262975644747259477924820565826318865730695242257555138323947385288887214592197644317635648478694931526576602352704028199432280820719182616671104324681733473323172892859461769573862961914005007001282029927830558928025435615455732688663947519936753957483648826776884716431041080119335950988987723138076665398855047807606850279321969024772953966854797675961325808514961754127753091146925139535464948963785231187827814280277061295090297444687864256727521153266473940265504159508099108759418775962757513955900882895966352705638911669121143374198603238590425564055954507835755323476690625333765726249093454156193771289211188189846397653782561663129790997093293801893507917415327737189191517061607873278748197087487838424462360250890205294876774069517490186106982470679334731216034990529167077860154503037292481763169543941135012538580675211883270762110239204552381820463825670340366132592140785877207777144892945391730916850544905433256993963091253023320169815220390345602223470143419472331402797077747855635480273698040705684452653511187462073704575795485301326442170457220029547545620101967259040470685620809777201677060910055145950916579551642151051859178120144766231270481716674105897806430248433337391877695957318159904180131751212692159545475842158182280211826299676765064330761566788054902676053239852696057266905386995644138591979439620548610034893005771653088998417430295427034908407646057307163682148099279689174184187520978773566607592195079994000879948637038186980082766443225520068984153946488855410007778850752655928495100990812785164738458991509146850562519942003429681933023594278116557303396977124761055741852888594828370409262096640535230713876844811873902436230224318615712841930676288267225633242651406067937337685527647525445686180537919697926940691708610656950129527540888207129158990059045195565431947289176593074885598306906834033468668726009437007710833282931514361869431642734048936810292473180683723591067528482204323602676676859709148909642285186951725738376457864880115893052572609607774397533639806337014239362655325779645365218086247344738258004165247396532990649813946844182685450019874647945386516516565619919078393783552219171257784422149899805624406322932866583457435499918832490388588537137121048243917495766485229495939037113849636362460698307891727160311229226799764252431942728777267750523271857094429769760375051595085519135110731279120457352630082726150766898828289409956635710198616103095599801351790680145084486922917035970988489626339868608548071744114718122773708238211382964767826918239493442170042457111992514053834736525288569750565403378691596978591711185879695533046745714322558989780787183017102136512107991437624050472115064162557109714200890154559295770487667242278111530079297861285379110498227218560783961009178086365946376134706734654544253023933904422786493736364832869748526385936770751322927122034596183919542087357003358423251477766593579492890078630830936670710403976663426512237618759292410066436527545825301327029644151302620475214629840664040775386494964953971362711876071497459568114444069084001216293835424093200046414059076904113074414712756379051057351414150231045035757189953950620303130591176108116545695206546388702823687313853202093484304735486085173246255243694962134720265082794922145886235726362604648853564968160977520790793481035623098597448475940148670971254141829905960208926312653972897035656511923600763837713687632677337491568557093360078471865917193250837749019340624216088483863889103680261809223285793018880414462805440241573129420602106171094133975336157925596348544145785875677827930468484705281558212715779520134166768139739517345616549592986121333049326264866170344187518324516763721467623489956837271994751786068060847207073693753767698199567119314092138174595789580899906463729377892251910126962267475924887825819265281483124658992973332791577350648969068138222440805942849838568919220906297325260204604489944014370421343664039277707424632225566551900591748599594519211492338437523811086262879452776547574250246778527372636836194106603927818089592679333765235551514641422206522212098622434629374070082488747524051969858122549288893220386414333125085078980533475180514431828079989817778410640186318313059276379113815279768107449658776375006644412519878133467762734532049567266539515088291027390426865138351872176597186065698633282977896403271077276773557739912567250651022616655184126713730459555676669316940613655795770707372118504578581550782107516290481215814505515962838222162590269570171964624595376597507881089924961311056858098808995600799676838993359688367797670830748971688969553070771513605815648908125287569527898308582819946433460833389352726871932709765585695321713887938288219336162419598000786801451771031557084453744373013726856440424707829049504975590528015884189908604367339177561337428804204598940437193841378844577490770762682239794471935953242054764536684417981532470833272063343623089840663123125401062396113631296572690923335587686903321448205615492896604559768216824655386432034233667255651130395768037913642954470035743053203157583887116949784919359853883129793131941137138664926592526808554800737967697834067547252175046225140713573471542607832736926190652509753390647465951429433924016349293986289030634678823757430709312783915081149427962764076047312713416704703806138351468871333485607639361493688224794094579142189364467504300092591001889117824228877155427298447992677583660140736119885229575669346063963187836529769177259898201928729481575410706004418537447543801771976266347515086368015166462184176211212091000465622450469593872453783088774232889377436791511253922813248602132298887664645088422692599541079057202414959340653965087164021399757732771846925403104685122308449194172873250428055323064613713451141605335675816564197654885657052215554687172671797213208055179661235013127188989782663304587757050669743825827127510225951671481209345951588245675072065697083122225053526663983899101500298191621142053698396786279435319711175174423229930291378273487619773229620858571713321032158419003143760372848690175931797842070107970149491705781837681933277884767165572668689318149393669708743088501570017068345559977353591978229833641982077024485034274107860214094341978542376013494156958934742230967127156021115337316599420649765578062551652430341016526955359932236952706400705594990170551629767355950658951749996856090997124242005903707280348802975676970379571696234420575141337726850828515341773536405214235085478968470758577768615905244609973727024533605689098173176425938000245023899211670507055800572205997355351513391443198558147109581969359241156911987419376678558750989052525458091844360862024298011758020363790193428553072548477896282385711624308442970428282985840221704313426532640216994575269499512690518903625108784450559549538600409082600960667092888957244982041240971890412619483970858471245912539432170309651692892976580082641103149280360091663412355535658984338461193888635504565709978839403490309314066546916557964438569573230232845028262212530468171959252667540201580176807094087753166849432925447585445523572342051728468640506221535508710296528012755074690789975065090210614704812465814087920107043692603652393547479504094429685698716629524803146021917959231302215271719322140490929814372124834445248781668779687686719519702742157107009314984075101750200289364433852165819129987982583219702233433732146485426649608178469327108131690384635292034607868756212632595883780390068682913170190721486830195184865433416405645800862832301844413632364716273995190501622468947088504237550671029595940163165857532145355170805416681916745147059841405727728239918070038806658481174382368214446233089192024934385649547122258145201892513820733930375211158780706683110363018917271437733935480967073025514025745830862995035077680619381934285576426587957988683283288746720467092233972282587035325281490681575027288340011598925537773072753077880992608191229115259114546120740545764640141834489702411784076753288202408844671639796538041431628867422185926387198991116133943022786664603781204048583541610484104857486561861941970316718083432311648038354149028741726813914604898146646087078714746570394527956656156610752863034249686409197060828068998980236094656191364622584959973102135488748139009241719968995825414657035619237146735287170149314053359698303178416497357038315629130088453283784887299021411694828825013088553785447667390156659327506383280883040255200814284101997422395208964554879189301892487318100690590709029603313720532901871835308226351365069233462013593147537274019216903611212398388514581293726186930378232678208271029659532984347842348893932802115154982793674998429196042161034432321549253517833155006985531779987383086784760861550664225940347915762488580003662673190251227640769386800610724376130380061438903409604803805059252234947010841222916660818541226073582931296542575681940870910031008987507436122939001433032559946662937159542202371494013010393358555537209368250189986304582011252352873904019171702560857592179193480547198090232852245124415481503365218205080401047760490671732711429891484904052588946714372379222655527846502058728668449808578742064621065014243606716757437742911305194310906058744753542930970878663727455903255325078661307460486227062653186778995013182984528509350874772345911575688583294163601516801868119073424000620029973474482829222482259334676695372614428543662403309844211512543813843667150285001227527329787579482857293345607315747855652587859927728075404504144318029556851549974865129592232169756571058184439496986505969450201037010242908943924581092154091826901979002507200245171592636414560865958454561584680598442648662511414740164743046110365725386704499283030736154936911810129281117607467881569838628150738686534855044655511421520364715877849776721183466956158844525212549099086982717596669216436582639659249921219409202781865194869917517988588772383611783710640324494637481069504670566042629417628018259223781240538214108112097313703524395436162290966367678507200064763225142981147650056027694291862676859775283647207297885573580256174450487577431927181558285280007858882226976888093437461182633243274575894857313509108570922109663592369400863767892023892886228721092617523806451210601998057147241240441695348659805991963481695731671273729240733606897747595224696396774404034400122877326955446700675408632240577905433636573991168907277185158924505919709050129225092449478263744812986494372106247002893491779427035126108833427843525691262485937904887671075027569735508419195206724953952174887665900812921727619184798152564432145197793560133662833911677683687853297240583893017763857945634119945208507933988011013446372296423769081088833476163568350082762386206166016512754805422543442079899322178447093257285769032101868130685420459690642428924829391670614834610916828411334858158733630685133222217569999261711299569983118716589881534764014004981770749219053635826082351828695807576220629601609100255200467752588241399670537635994101256854490205075435586884830920465533293543869863160417188843790492281798601656539088765941446220918281551794524882300350108950688757545803621198866462108221148945590342520050139526992828757728851900299947826583931381933589432808527829936349977984395448312112951516233223308542175114857489875847661022410073761971741095763865973663889423633223118339206253807851371243896446510821580489181663653732827694547811007031477944702217171021510763935117054955344266005044989435617594667884827244147357826032230673956323791092906144303004352209429002436707410088422624363593009169390518806286808805393158236240638896997372763487013123289463156169269759825937363471517888035805274670770673157304634981597285872378976183701225980220279400148541264085417992723310883732027502731013406398243380482270931726537597090086145170709496965838603014646006327338685352302222219883227494602439380970366523627476224477881606247145711340146936287885370881428266562061176521951564200880034731560710545255978847795259059058786605200192021796828663576034149763770339020233788222927207863044905903958100938469668927627981379508191065478031046689032599252976265840165311673553397617892038530748700966277477462553954857758013554810598164282761338829211960703190928127003868726335220458274969530273802050968097646387865165371066757150994563362310678069883833997815111312543463063586735359756667394047466900728085476565885219164087970383015918635819498838378260821745837648283096502739971456828583850856638044070148222928627568148908338374779671766037483132189511015617687982806307452831942193649998581094651838234315415793477361211756033826269717791338088527038386240485522211100981604456180920324550813563373412546510583731914732546308728148229511817045558848853629490544437427491004675457278150841314197250267294494252209118166004108717888792698636949080741825889811188860991782234901652567497423031822696831682003398683757705010391196497321738972398947747598951424582809142672890794355162093133049390370342446194534907592515498520387111186890491330740652941401788546893101771789783081173569705941876960303587475240174473324194912927930547036738597201094802675095518344557292154457390715841558437646386278759375525536855233181774081873310526295974116956686181975829513212352758448480134588710126025706370929288634437318636890638513108176506775794527117275523049928559269506533086386859330029422165759269108473862994279889694541635732964050838707243114708626328378815671484338645953903624937554736162625290948995413793537031949637954436879680796615987510415455341492653003411206534233115810499260881666407204052853540850913270906887113644029179793123881391854054297569647042777008392241448591044312604194319859383254965423070421401464152192660216645072083913633501181803633647274239991725847626528304671458888974118925570679049805639571851075395591259479413137639655130665634911521078439757380368376073416741447854743109648558250237697373342001131899617090475756128072747095941017731021187157141807479843321431266386479280068515306033449724151852436763508540414351992653000831702151321498462107159651708242684099163959425370159997818457443073854494124951501124552063054664075647513460423214998663595044067103675257629914738641497242468899888143141086585771358741082631432695818620224437625371769065571037494330751762719865112143365004930903576520276639505683549368231609510444763378275701789822621153706125764232019334423819921426836327668624037950839827033706597771043535045276121053947038219976747862644677993942238795651910452727329185999779961589792552500856461653835016438653256834502994279982323702793883872747068971772607822009045108465679018924630319148528970276667955354151751051543382474672916085816922775309921068749371856580032092875261869857842526492404246016408446979750938284635611923780290738784759992480956757338860056577331598524146559558363160318331228231501806889205156102390388007222445424328105408298754858315610442355609205783832929298532820078157609513802530691229091690031274992019284480348561028218738693797219323521157376417659315373552959607079932717137798698029865086324560600688532363105587215211759664081355560472106283147692007489577490017480959458505933392367006749548163317221382320665961358978759394808566230418693005941478990505259274693598872908543296520206099174705278027737026651927714392938841983932769056538017409780811781397647847543709315427637212165770222226969448090797877728451275187612047428657072534266158569203481283199714844535782590840680857150979793435355467621061673140798446336039678369705706487716496500433131447314646070075712620322466860558224616725578034164641286807224521181602980025939738805995596760994333925901670754721523579301257263947187713762024977620126114122779991387545705712721336167013018594967905516141288043280858752230349909476532662949092150924474692190736458629559390022452863197138323687777324600662115298710158639230811907703871245611524006593155941707735000594921797232425027413613465037280476910743687453482164815924059791678863354497824230650798023117710896216916613574669241029104508422723675212961338378912475500477072956836352716073624126729519703786063715932578742200099562396805042549145078590949627442763604290236407699705498922131782620109677021043865115948940090552932345220948381802520259064466239254643059855075334267719380065886379751054220204876282154609535755288127151406644685854991801836609502003984512074350908679033169306470768491589332462487352498091840255690913459747867836194013859524881702452638067863524365851915406007163166197178094801100905215819832293978855304426765314268942991039142863076799815666567142901096864740277716019970399398158425944021402674353596152106533878817381555437919313609015418811988084812691697812428264779948786061388724868107403261316304082681961914997474208787685373918781542244503131410462331667541680308318073037005749338905689461680794322114776894224322675225368362310677954983127072067835206110782103357939804956597465910672128359457279952664424434438422004345138491561602640504879317813310673589635474769639758722082239789934314071328002661160721661573389929655840881263580007102751335029254168866674925590791969834004180671586313156865898879121706744580911008500821688241793759561536215724915063834678232081273180196270270453207172731989216988018169472035079428735369687932458011582730547391413641416715438186664151546076247853292183009420210375843604382650774031753598764403564989710319604366389698250231229677602014243790231893247027011226195726970531541055781424327374775450547942643832640385581250106471579907261783463449893459442250608083162769714348941145410805320619858095598913235260424864128044584097821840550609121955815526239832561521875763772677182188986754240174093118213738416113446956911941695746195671503949588852183750727725860017480548913584246290074797786614612099363608103884527790273350776820418533760646510319011351786248626463842342630529948903545811657763599764802283113258297301665483098743453868423678417253091723885294348790835063162258274331039957117229153254564849981324050907311544142861117950604550525876270223355970575713101690710751110211722898435027642313601143994261874733488744485877108039140682791522784991721825540490358316219974958822393315434784312884140240492661546583067693378490735313118494090858194916792026490357567922905744198786054425795486497896184231132004933490748359043176434278459730528328371201629000219470305955081276985289560314121804450805124977515541333170736116109925927654968909483403258587315131750507869438151135360773590477574768439884415284444010906491889413331888215173376796910081334665399951601451532493194037574905005815433541617688641442929022653432486859702774780991957329705351657052707737748355034215041578593701226627962225449874590251014815507052367565873033281332750803573358943761075400598649259150682805363793208260292569514046452439013580195764561426519294814667858601596602064879813093370089791321740159579333351423726533853697608752236768176998639226708211270107350240178038168500642247758989070610167518177047214416512204210234513770042738664914166217541749091807467082097589287747890244638388163891028677364432175053936223204784298323712458605383390646831269644188842865681521632805109701051117360934211368636346609905824519220388652207989755405955947375330377939922411829594996492688192694066125326053509549867112582106047044029017716931880681586722453200157292781991436875934980664163774414508655181167722747174750562259702778565390921224823777908723233599989023983738897813323819149475381723524497146041597319375667265722526029091447368498058839099597320269542226111247543417998470097505002707897090941086060409079747093519951995634421120265283277989051165306539613516079616089189056150346023011054498769570433689308220059856348398683321553707914132081269142757479101436844714612490216050314559344923420133548083457452026933706214449603518329190826731786466971604792727635390740972170234095386085711918485695114465648644125976807488059231973850604936927013572405456060038766781237187183665113393546058323798707931194143201275373754664845554888011494010931781493678393823765169155709020874471639584420713342328818485491589744201591564713108288623465735964715403850386375717985349986931793794511217077046812973537054497655887685413578806587572944414586540167559378701141928358617212543843603902267167714423873183992399036577145327211538374222986274629557471292704380918461230464493609321841440459649213082139135775418763857838833850130730301271220632506583158197662191685202538820358853614723923087092074853111671162523650123625903806830877699652581016970192635660181303211750393972645669634281324316477629397322356700266725130048213615978572173853439289809909611061386860104104374630560343455207853493308360141270381819750772822416714679954749345487805443608369658041778695450056011202207642229749438632741979746605227795643040407033186457184700943378366316870507589593483529248785287137120088883026931760521304966804084836784832749408939525281297258415901624593342303477104052116291045192238953542609227071948569976142250868681400751005538571840943940208787301875945732265186943316063992458451871623910822162275009585594633152921900967498496623036192168676124844996425268306714499183954773305283447424251952358085455504019105994707382094440827323579306910394087837358472756981199093800516764354893206774971098216481470236268881129196426965160219626479233677743588833515505474712304316720265936213124106253166304984406791393013203754250630990993449883522342962762163715740101021376906434287989766192277234556182168113057704582014898073501434305105570574102827859037566784284205060800903396093843738892532749036583560896292358699599316835161860414903941296464791938367599206468570076943126391457768176788449624585793448868207814790295052954010759160602399512499580446183384544463707349570672931342110216889598813308555682416338690566120840038592457478905382773104135759826953358578236281600933751216352976824739057107666826609977002828469597512508243656547977257967178241781283539234983913373382542827323156727736159236281492513865251552468699380850767502661010212022643879544047050319913838904319258310138289861064096138525506385602859253799424929157814987083382703061810610764272884051375202440718252446933692406368081924998189727450157967235611737302873008205437133193340109357688155566452238531478235308052583517617033039982875794875551515860015134397469087434002583958513326624994232663546288888125554541516067275128645264560205693338133393780108735385857863253636682393896169138510387832248343522539478899829953671317018467003497742070713824592296460576343324703955073137008768501585967828360252707008781809599088457075115679743909683813262595883695769783032423263704203231488306447291910633547675082818457492930219758654706766304710730173514425751859009585818228365337004309578153040226007346389831205742237783647503741157502814567882072535875932950996061078671337118442244553178541188420858562002174443082883508118189954582788324856346163652554459500317449128585678162010181018198059471419176089193532020349098593475069989566222630654949135637772605590363642444148072364133507854430243481639089621441907593090449803437171995203877369294355965891326671049759685316868197827745882581588354235157099940632316738600904376898226310910102347023728365453319995512140944562141574710734517363547377240865102649623549140664656915608013769917600042198881274525361402769993450026691090972646667559074503120634713570835242057403597940098649698628000248464962284432542221021148659788382047708989300031775499924145568794416422755196077671419575090141717276705831180893621315154399888092691522722795504486604238062161296051198433843546894983315312686997569775144438471789261128126087330261920694929580014903467256969052036757046095110584723042018665050731975409290387332886412381263202311617718065244801745277540116279460234299425738817778153879428018643063531871325494277577930510792105087236112340977289700181382908781348816194167577610086620060797262973499918687383222782321065365139928820556040821077641489905128252066111145107318399877966213660378138554953608133122825656431376746737252627062092912036785646064491431607269730292578546240880616972114308048331519974060423192373128997439817366191630266262581751575138997753086340660677257947774331127056710954768717968983441627615206421385365408953121725324013702351634579245401926004186858117893465426272779197917506687124873870667629381505686115867208037982642073543587052529478178742961693931672897176750334770168769819214547095181333085123475281665231929632876404897195036803536140106713631302237568048416811543057432619961968102772577812473806968694316629011055910440786107576142362870856831534313122512762964427331713100201534751719656911233289406006741217473232773422143145506555996826808509234256693817489440687119373510197825859101984077478488603305936427404970298450565866257778407165822276666234025671017228905639411726376659754053264300783865092273494591588300383830991610813249213825054313315701337325334050112903579628428055694435684266595301581938923797569302572672461540748779314632060988038661871087706782549701403210179526036517025927314063483942577777183135635461447123170494512845575580254540266554053805623546921770899246515255050403372660767679564069763042293252572703196063888358173020800943355871350762593158680771320120752151162759584418152224125718733845223273347369961476587735052677825906912834279050766540723408043478322944745808265450108574695124891259411165349234579930528572186706900824647972371825616244361508780212406411207273857405352012025668695099887563388004021902029170386145602199185786238428227245684941680606499065328814810518949063708903320732617612500975667430555994026101931786332087414162114287294241264559478313421728275511488947862521613177561387280222179251758784234252885109363272146877681703813332375061852123883855060986443122872946713857455311806526294479479790993456576722955796493360410264127748221060252095103764620582023926854000675792297135205439653357211961204650272589557090718616706533573305886293268390909359379437451757018303355430162566999271458402506227329760543875053157301187766247868467506562357043659513741509127624749642821179452970273204684905908371715815114919632756202207885405016582541760959966172316942663546359773470776521495540170637195506777848177146207363530497212410730480823327115939917151136762948847880728612533561519380573625510725687838434909510724263616322948680906939219054777185209099352624341131724741197714041040753912513511672360263352107073322303935710259210900693669286058825882199314135306897883839776761558794370670369492133415264675836483992671252232258983069537071552895600741849737466737826314818914597923742623832554381526064781119259063798132760050218559234595614760507367400884632521316374744084887055194367002253990859751717020280592615745653461678884279016987498318392065755933218056491909796430238525977211849128917187716186817892341837643744614773405739108568638009298463636074901817097064016103254605757272142598474858018238593048929584841253494621808567401284186887670392255500746258067903148399123146299700915598851595173794787817834049363564295773062393887458795585196258344477036662241331371509021795327640836396145490030303061225903577141388604796484825739919859431202946516234036159998395603664181775768438893886194661806329507906836115063356724181947116573101502990520625290788789460600177787960398314986425449655582851528089951809844457558826140341716496798744181801943127771860144883224078153791738798008382464696583852983863503129689513970301537384393736705415492508977066678635633207020994749731367611040371264889660506149528035979418378577188339858104691896660543552848708481442062810916685557772960520609639450414050611945276980170968774873945226298912205262707283543913709137105689312522123378993296299564326296910368113974892077917872055164919668563041037792954465288822830764099494117658808264198815389286960368245970518791551979603941639399772493925827690908185176367526543725427710069262657882384693708015814304503074905470066246249801384776797862580930946475127175589274212134334101938072332564922489787872614829920704488365572638088764609202857140653226293905436769563677760699457374766557347197013464331096678392674950858579063496591441284984779584639649413601645601866189022722762767085766143100789072088772880590804667133027384903232571963574712341316349532627210034532966419788945830435123876257367594834514971173785884732139515378167695383003470401717611588745444791989305085389113693322081964535472047656357791288787783610994421634373945515883340673618333254136051438807207378261283214120377589602122821132842707759631484865777316443365953039996715464170473784684467408431146366505584950730914137359549707284403334207340214952275950188210516679654655842612079137245438164650768612974789788442029189843796390180320886297329088668840829464341550954804359152250687933203216480091161933705978629958897464355025523093971426548949683834899251070504752931985367730574309787451122348090700102291643878331311659373352247938507339601023396718211333475381638285186576788953415277123803754501766240428118476648894669088844632113123628345915729120531015341239038080025545044802199112971743082294427996215143373919631484712092954069589774611468732647733911225432295017182468647961565064748231751593229342272277838576427059189686020830136026298770254817121439403963890181178713873782295273489928054728560724535080389361187842733869424335603198169065822875421377285080888845519935620156755130339183818781549831428163998177034037451706963313420022801088945976565290939209353374763826116615995829832257368379774648172070467497830656553833821175184126897746083477018187966609499315221699869852980679927281017711944115089325210203566527259485218522845999791328590214031625798147244611362495627644394247357878273991124702530237785464859674037515387960639785656987191128668327426461868935690661432580345672990414576036471964298712983567820769886918577724069927085466536963547399168825046744922972094950023016340588711136232585075946526061495462628204993265764352411206501575487460425550822802441904288638083715463579247779604252683651745604202414874498325629020136959334507922567629606848135477375567440015876482403287789853897104698813901658799627081916211851167950772719514377407074093679010886026063888227062417956956385172654883740502872369000708249627204931099919290838994604796162539026447757350255860993853899412094950388069472274708763855929676008843764429866402688413486647337797743259130235093431395029597103080945874197092021737818120824963095603375119456581530832723786417338777763024236198786108013055446985894550393125682945159825309108003167851116989222308653167110428041686297193326368873282859102412067637524999979451436984421388044128175718103794843213583191243591922320721383320315659408245649199447007740441836804118231283035602760854718417019560620764105484770922048777394500992057241301879051433905694816728151563366745700824877777027878493446959922287560287271797279388839065155536666456659915293053036020931327537712355820723530256385212457825442944467874128520657843275534542240244897305656935763875387626084777053071571699770876215573421297741782196525681806916115155479354727205343531429162165314321141118816297528534208968803744603256072847363791944440714386348464650766843251882796216158468325484376488124287379415775972808605704187510842708588519170503299485203667509776691048024573569462452547084651356600948603928573512466987995779014776465499989986664279364038341298189931998796828276057720800494495065661791021401262299018027909911683166907542107860723506461651304413168076719501913339373973786065381665374890368433698001343986329627401189640648455846513639076143643058571765265755256811764132845262811416630361765380512763088810357505404496452107765768372868026634326930261090695303727264683700125190151302545887815914554829648415163575770554726781146038735697810290121601633923378656406370780332686410854904676373588969442989297415162357265800623545525501015816207515176189885558350792090138632520432630766539140584887098460854039179576077593994750074372743135367724158584669692710324723100954428837231022183057966569753671586703074098774300579832493644719712683864779061843841515018390969986050647168942945422389190897044757016924321142515373050981281605062516067655798766847686412989511765326177827404412113329519205379685081240302929209333699695084506732285048065014599363986528304872866458804270651241344486506845084611476938235273376500809900209050706867955427833865452874786202203911953043022429136560328304486418322279068100665959259539187038697484691900052286979428301057329591206465880627944368179129134350555097162718050988722171787972879711850829681193999468741572925843211607875474462042737784583116372616843253922599439984743049138543494178086171202106262001119864793814412276287506281898767346159185231710644436185725724641663376749011947783305675546253259317981063317456178812317081745579029617648444835799542013257537540562977196024212605871637173873781308452116993990975694632819411102413806356238381307903447315987230157964502799472535197720520436816790404589125052846157458276860394075070081939085863500785610147032306549706435865045631394835494304819902473190738083423942063980640210425517320790335436962870409772620310467679176312382789429638355718691497397559836674929462846840707064429959823017940466766314144449235119640739285653838097335213563844535709047302492481649963194676082561200622574910306157493409712603287680230989001604153485747194458799759550210626301421700773801116195083730930533826003517845103450770462041455093852944963246836843302842172100579187333552203809316037941203768351517155514908117269261448143667999550780000017799437328092197419199187430667772529089434423501448560614012085781277735625052979809248786643392319012852623244410294777823751596911818255673973456776075044467785246386716951508112480182076493264377065448163178494912653167819157827193989480141672310698171947658953107200476200361511936050006153329950062594033903621212916709267244775693473642500685486692166081349054424362117536444766781201418423824360979214130886324219099504348202711660956091751622069130303873298595627740102439393534900321985580574591707116945657142328174467897477246568987838441858980228392543706364896854569787788825652218838033653494991096595356783088891889296036830006728737863491497629262090090216532298348891003212250532439981000793633858321999810248557179417589094614988171532553992739905669553257386342570491726892344693449902518556132290067237388457229921791036750565597436319814687626441641849159376631697791043079944395548106924324881868074669364876559735558874567768126599867717772064891530044644972468300857160554784823888743009095686484830871060643116380815372875182813681883204668863266835175694297356275217837106730530765411485368939538236081614184635446195475562654961526930701211192600808566738296086125737200304473411722644527222228019071570447689767395220121444224375917005079335705670012046336964336696820253231259181698499056509897822232928212622512548430697326354210273052804625718482105274851620383355617430762076235278608296931900402987924425468038227745627634065884035075254110552794658832287357578935987596531657204669087092115261182161370850099169647102478118375206516018869558838093951176943990399847405301487556190006661631485537085636369610600630395440398040318857620733576208387385838638453110237104110710546035727780285926204901019689505983157628888686413971209455924252523483877379118795906134479496669578834654956649235857835316836530262488292304419346148382951641864197929044470213901492218531502365836894150419676275060299880338817135367395098303730205810216234930381293630771489059751835203202937206309799885328469835757499945789819440439269419534732599295005267059210830266645416799699531430746786197003761928182377930344675524313267785050422660056148567121995677986817007752259180067495961110428071467359808384847645363397047916265065629293988935263113522264593460389043681420597501447895184435835855448921476644987789117094921089887027679664255701109047292889269324887562021565317248492995431708022551538332896989095435361596670783822003509545185538776655118334292597958361435561734275878653165137568734547259330732761928600071647180045841489741444837207183531257129009042030949396959933951415523389212546200839722376586379482119786694560255535913612030163643794356020431689206002934579484373403929924936431617142541854193886194821338650461150623849803533257009670318042513699196851653046795315544574483077292421092071861636106557367632709944146941530598729796735145295337540337717542287607025844326199055563361608483653823413866012930524486846441314784036610637866014545495709826832695985789623307701485016704064620851306311342547406834823414167848494783725310283617748524639101285913539202547673087812496025288693972767481898916347889369177303053099410630779847021815375591229932363714286772795165409892366988335778970194280031480901219712770568767834477981711621431941314352406116042352744655849507626115621644375182309594882791487148884942885081056601313608616297983504097527091747022851304838991195232603837269519327538805413058223340653144171180891437419617600884531854077586014332116896564370881889981411413053776354367578036420841738002307823250064471136152955184721017483013552777934277957672923656497694296927727823125708386756835013232396628496224488161825310616540442938430911205957171463971380572523126584226643771531203526330715364623772222171182923710454822334713664020922092793529515401446705651544331315191704061828594531687896079320284059373483293970281586299822933048765752271739043113959766219252985150842807825306810182315367154200718217519039962445477027335853694258009131306878954847710228332524232640422523801045283013995534721146909343715263307471514180178980787118664291649762389249251254142162862417827174454173325517879195051329961137191577874777488595474496421381694334237849775956316140195863168957021103334393135752525023898729766139350458431018062608335853658011354427235762837524898693588284700556076227578894983909691050322235648652305511720416780198348167769988593085162583231322478786978564236312154215281676928002086940144583718734448375646711031767469834397834676711396633876674604238864463116277323843178441882055894298762765837219933417571120966944260190716749359221538247836869718481358971796570871620899529873859058518147671031313774348504283876312459172112424130240831723474231391831943407659563228935318109460755095927975305822454903993638630231344609033953046712348400336035921335987346029305706505868360959273791328955789665960240998652759375361755531522657084297640364696656787644217438558857000587709835675604001224052786171512814041168164313791673854821063043559564815983002465903164806219364056183301372396206330408441300511683019582583193738468658122869500124392075626640917556884212364466454107361148607184539495489791147648956780109405005852505807032407374576744618069237248508626336563270393127417040211327186816266579172003013323508266500467056183250977462777901701080647145737870383524395906085520942266785401467032749954974458175545947169156346680950104101300093475536668768651304739858483678382479638790909941710253614434430740835281411826402540332128542350087325216592113298885768593507902520967328605335774666298178170854675279586981320699528455120853981366453052134980562482944588886322161847180165345290939104462770113579897150798429329429892961667680161666119086603385012828208744388203403321447385246302291974377014670706294539975321115914244784637279836916998118461329863616678863554273785398103412288809210306279065063349421095858429080720331893976600031048331145378294828478691353271379005121919259237524751809761072278278873646544739695823321932946823427076430501420162441424107939558290979239959689499797123810900754602885284590610390423868398897925480389384912034066028922411385032838869058627243480060645887839686199065619895864005321784207893691891829485400756291107760638891213036749255008779469216714932954624170967190545794338925404472277536003521055893139573962660548599585602961832110486196448277286043682021383256816237634855864865691561400098518953315462622877459830285693259200686505181455368809375245893158320444271895401789729586806183984049825106824090241234563176452098335795031047750081177371272552048892588565107209803670309391274491520455350310958243449666536992406076058383108630834698749765596991735759338667071485112107472262094898826367073570082741168410778047432775968858342564936061587965220672345210281915665951236734946801249412866579651039845897384954577218156513330251035932939761366580705279556971537730880914503862256838859257976726511778163123708850004486137686773645610006268319203513151823555287261086360310875518053350725745982795963754831508878677564714797803835995361853980606467876904499248679269039284249731086618103480113606704430044922415353161911488933917358059599357521435211137462438898636111034383005031819405623953192404931219596857987988965307790874494973533650374826648809334369357112686703732273715117042956839204893784969155694596676823202867425162474009867811813001150215593276715941836105500727815894438649467684837687398121350199918898534361478506468051130622414353620506734991502135146127412652094213329883463626162293758857996272400549762437146247440105323011776465753219008235992285255422412709480914931372459735465940218117321306275727064641276061649494186069137941160698308533478864313489268324064964983086247736722865520542094715806235997893915615416528630611880941745005990945325702429131142798732880499274766886288109259389266692864955884742040120126035362798369583258861503703263585157258920853023816421983888679611484836535337227887729998080785006631211440571613776374812855151818431399646850404421918946961440058408285332498341158596222822547448383529588938629992779697480325724518452956518075220459621629285917045339292896615451436644692279135449000124911763080388899516621938029058675119392628254954672805351540283269090868397856065044332764292696838398191555697929912021184747103347579628116259202790929708014609001615400539553436711956252749965259400472827978763708600247441324940173986406700999875516557536713988615873806838587322694871563468129493544254405449048979647314544549494782307877262242440990281382263674044340134118001174796420719735233146896469778380080353089870541208746811973307064062811693599461043550939661700465706309169396141780942592249688674738276948731195525234646580276707435463952575258844426819829731833188866786903393238133813565722942826765409357655839736668501425579060791985330608868048350082582486027784332318318323665831325540313791424365756614280080661292561106041264447081215633737835229766305403583871460802532914586095828022136866884380653284521427852958563023831699748121905532108437632372788796309772512468804383852283708173060527751296811238474503897561954457041848351749050415354377578741939585556305252241604506141908017951505263620094935386983117189466342683686017025397679562204050496824153451014780229093091712851693721704089974036250706725902628928812585952594726317390058239911712070325568542699499428160910648840696974064418167619584145883099301744610976323861387590344386095361927945632205723747248831515191365623668000549995580031309135815910306552752193314446056137674224578808327565998501339225433478099735270491921802139325376886112637952385538467646136689032856436694454730619640830674388926780796157676085282500103522711852296192425814804046354951483135776676098704237412787298210521308617451628976921066642576933616115784396283199156269216000712242312224548439141791714104039541518261953483089940209866328869300250031889048333610212853607582214636088216854088806580241235772621838903309754222751746066011346846918980628872120275311027395935507451568062059508236566932191280438016178332038278520806130234232963220616149986449706593481291339515473339717748445162198243879656794417185120570552033984594514239316738861070962611832723038382395934916360085456441526009721242933236651268729397303779097119948890169454270324582603069058889924332603000822093073075672463400257953712925762515459307071372334888266852025643878135770066655523267154346548155710095111743957966496420316727774804970671129967102759803749288129181227583272930727852813330760875459365096890115035098978740478739991491513073168236069667602108549769361059798720024690888811593142425205322338617643189194133632118497726843162498007993012612515906366769541442439799380282744928414439329205358643522451692438445468799080637922787307726618750649407665172325950237549600085953974050379894888825495139469620876351669417727418155804290037139986446543507709045811222942195480524819000114949745215480823342516094940054903946059970092397774810090191814469437159407847739480245008881075777627908893650109930987241672832265599738200702821646295836637203467398944081587634679452302956981023030374979509541402681389008217096329746768942365028756314228393284277152822388897986331335542929354324461978146898327569581840445442784651103014417298482391745851493514985906486503437384939600976030843782419933303188221176452477174340101758798581884903089456134471712591321573402612893556996481309901437574179747802244256234705003497147267218131820090452346547498743237434587286449608417498386037958285561155726553600416205614852122664991412458426327015944425364350057926699120887064408392444626210573697772278722486203124676076729240369798359697348191724067923843310025823394605678742015714522316810966128345944871901589173872290443866849609113660612130084811504856358327460151551684076582419753312728635838711342576945585764476097187791531315103610755578471360865198990307507249727174704758091887423794135234438016387362867207612806175015215938906418656993690572259301033072031531424412600823094406734899710378748231104795618856457041881851084565143767492975949489578446413436272128429416815886625316681545453699401174842406100291869522587685465788601990621893176457988306422349470959433594329883849280907334901718915050763213771035045097422421213882399432167356923350525725710810750683041830214038086148723755660874542269179499444609732030178889284514782034683023659508775178037874453784087980337205501458693048476170062775629882635741126120155608456998775396276932411215040888307940558819485712102006008598377213716281548410105220333958314129239341426024318016049038652296836008103582713223594893667463932408555305553831930118838009085831901893763510110520143299864967470157592925790154188348036628961677487995189986303057242143366604683842290939099187946363496599764676914227941264307847934136790869279058729711627893112437337611601505793645905525197238701345343479657105107686647889020847708762420014624034569776557352726366232673002871862729340982109860783877882434815873672380644140502508487663351677144617744303578985005619576411532680833785400234496927949809546584574017399209207611612528159436438913992953894092153893905862733972325226132540693676002042251291163474784879231281313911798019488034381511489633252936994694421173858092961649973797382297000294477963177283965417780388720147629991778191833381574693925591195854990647160577844600693543253593520991797176202872809795131912985472234994558226663663384461544760357740568881932656719075373435339481944227445477520311920703890909417421428205569127452640549379169631282531496007190941307874829228953863033292946214052488648932939587403147465776911401363747572789854758535214630957355179956815269181574757579684239884567153512533353899666092416450533989781965100641425333469154481126844009620215266411115058248876315683384513773528079018978001587186462000247844025451893779446287544317038029498224033241943529157550006638690129484200118560310974205333177010808676698715589022218705719295577025373890625690381321298218676185833892148144327375353715627407109193308182677785563163462663972735158959710820596899891159560245808813448012212500707583232285415887392042448168788731752210204267699618434165132492857095229109854948885166687543459126905274187907302903610671530535309920949297651813629035651501481437029163532163032628267628263272097038076210266406939078913801175407208185066761266775802568864454902448692816246069669391184960359092333587503102432346954045805169408105697001672013491048733120947420701753936420256681978879269790405558738861376650006373879501502143095666862762969626663866949250745133315291266888478325440132555161014903834014843005295589302436119772198755814139144051587835435134886827543521662555198267977582999389208412694429350460253103961582205080423873995145476005863403265645553077460163194120639505858460855230414762270953563416361673572071681450713052850172900726088256526898323010051685083243574788823623381441092701179134563824281467603101054547300366534943765950971402278105142270215196396267090492318191642192357149055740203250531813277619357673195191972047010648134783852153152601371958279059797022278364210007831285635709387089041169855860026131727524914871217663383209375255278742443152708307960899430303998391402425706273894997315149184769145746302573508565161484236218329532670110960604176746808550934893641126544219372251944364236321378576740118692799029657235213234300610393131001997830212431039075832184390771468417416754592053060555750850744959581753853097041432546310712338561911455753255103600605031488366679034702311619097782936467939118254168103132265777321981915478124664625324529573861288368238948082695044531217565516421097567152520415859156285380162445568096866097838212935808660499551784451924811391946103749859211119674358723205749093854790037103968623853710589195599432601926908363104994150143711634101302626268351695544976250876788990259877673295013556962377698456145482300904489792765526078496958216907794820641795127708127732027308863925692273146561637088560239200684301154461649038198256233522446327628996879672418018203841448914043918175505542506267295078296547955392295970117527941840705613522670766213315677140875331824987104897425910856451530865023982461591746337596126805540831210702074766532037987043817787554816910309714420257114731904970593092256267702971940097339088244095014496123734982926273458709611127748104485979557376411732588917731243565715243722986914493447162849368086726686788426612127692651938480457282552722929646247475810909198781578838414207665167321738593482740809001357384066126921193173909231170664347362381673926717167107981298761020046412819990065791057069799114156303735215984259105822893193355005936120940386908341909751668689305578293143511528144395548053452789589613937546537639200813957692378595633239358477154079013904804950450797466545441388933970267293631540325568481730239059341896538257115119526600831653291955421481857570435890915794094631137002317287489925662250405976412114922532976727073414865897122892752622561710096459360617703958466044297528020000257460271129407648163158753664678551959160587816204181277142130603811228557108309530088044500349244700758225421616085156750045920162089500339944473046341853285303694328842056263210406171660776476908001037629074842729912123746927632445164980746398272484554600338566506505552557248414012544876141775272607081101658455606430225302525913135917709623245113146767421275624638941215913044257885392073488578587256350234460799786160237281960952759304280639868526926016041825396555158020127592659327241728831162061087464917937481074093051049629738178849536906352819815431022353298353870587157849114727655407874433104786780489237337061223785642875224755081356254564072654301173373762800063534151913114936913420893849073718683187904397979519077138171439963722870249225170484421031937291468164873235015744264160857448492641074689020680729082740765464450293618252173490869652309216883676757473305089820839041805219180045331709880510629499023310024572874325189645269391831259995412447508586356863933879023034966585760443049587220761590704115300820448965450667851061426341023134241877191404278326049423934847600883934292181142050311107339297678450589651264433576803638459350426514682734620752547524293767747374733900921382564047203321955879069554004255284510737408949073431656582443238884887448362257875380690983939798627091445581761594647774168462646500630297583967652577850587954465597529000342039217481702307327480076562376443384274730724164278717143101775417625558156526005353684389868945782302295277471066105705707652328652704507093757933033742604430335725499015943501804428605547016346514081367610729253954917341967528201140796309029335217902520013122773148806546889865552718641765686014510379132177765717882778019198672244529948800920315873318998396787228294473763835814626457654072239046539126398509114950838193544461932261844576042897527202296580798637236140082963104927002982351412270034871359073969286127428893072638199752645745836290539372433971719768001955039484260817521910047904904382359842586881073899575105158485935578995465904091945222924266574555152587394149319336654402351928469017117328763955288489100777096160337125724139904646290293833126850224278249038934576640205738250085444356093189503895084427167571389706523048357168673457121731322709389901528613449142276157945637179143487989428644355863510651286422003899840990734898908846940403243171211329428940468629361177063382517514607856975697821866469134191100678621755676080162957896560942746988144350871011160590841969653749564052185843884339999120475028701694111839179106503369137525868635325192830961725388494702855002413043497831620031039718426538881689499279353020939394787487721938362737263103435954278862640003484908379443398958351468342679758083698941331861958405952426226968601116955733183246585193287090886915831080168710622142711380222120479115119681199835493568251080996020896812812208857148469234390981503023701184360839253956964133083225893043606049577091291148749189756807724455508382853199384107359611851376573405122511074325121834170057366123848391765618841558561104805880774151069229241220895548195528821879600560975599316655907928031839714986224159370905931164774998954188331962917580209068318170543444295737574717812454585174104776591803431804700801477660591253196297215210463705308486226884878157799721979367533061056036319229125559497075137174484734313719694845458493115607006749742506906231693329844907833854176033271617316725881566931310425562364713431235957925516317216395961257098268010908248274370109591761530854615213056677369443018216279817558397502419643273047273603056662465284602500501498855084402925729952006182821157264482760748724354549656923590380283416826418849983234830499005776654130435204031030814423667726060875073694055250653032181094543694587207564337708994952439038312184402947271545347540591356391476398224436494305451701614717380062187866011180721585793334244135049149878680562943345786924554749589913502409097397777579122191238596746004453624488634477523250978503204742905312349191999910290174877878870962533539018841765515525885210205546434477578583421158053551854473435496345959314559966604510080170167898974058062213198792442900080025506688355701507732180511379322089286990835233330975843929851224374958901618435473055990472317822599721562446566823561269143549395098051123426085213743730604042046207248479701015563138479358613727487114598612306742055715742122455988937180174758256511133641149311789452202982512346420524050897254604107972362887724168787350883577185388631077143922234257706341204444113465827212239648158850288456624582608279129477522071177749720493531290475418444664803326998189593951536723147045904284600180925247360134931801596975072105074636106224305038369916505659303203284248332034891219285200688557913289442956610048138661635514460141482386664578586928429899789695150943346131129859460115310844135953673615850747287092994872216812880733408155832635965537192595572530336762697626349262018464912251481815891596751896177240846956407311024167280751502652340988508052262534961882108794133066696289460043884157393834523192600039365854500194285159990052005332293604995927232826754470034752909376385163535593098409807453469549229774296377287485469372972081668078517765184135610376651260878014985795250971063048285879102807686864784442971697823028639943324641544564559043827570026939853612067512823812606308241069925892142585592989710080649580229477742737299281436494709205131697897663811059650950365083221331854685986081660425477840008967022279968335267075091474180485783727119295086855619464919868672948496269871519769205880741785912398099238085613533460361556692616227945576911342995626342897608982283893133868316357565516840649538494354638646832938937962802668448620474760963519245890398080028698983238001959681332796849635926895854542180599436254140645374016394160986161461221140697190144247708563523658996458609016622303290320766178631986867170850117556849398059052397071048304470036151517339552028976464128078883246482945775051750072896609142546054261443241163636945386374708401854237802357077485671614009077462816612079427071228424610600983915273995129663102130454409159791764718017144345108089427199692000406808450778145029002598192801263285443292672029422028553842124257227269331843638246504813257516262104528849068535808408851528177060041719232394349640884247609499608782123062118879700743894211569009486037518680683700885369171372556129159156234455476868859544994335084808649468365951964197799250874248358428226748012677400761767267187389201082816709988369257849100777510763648417299373237493577005098732069381225597846179670932663006644853905574075452882387040526809962572187766553808254704289683382699176226182264135114448583613266849750869179499899819175726436053570070230794944704606789702469184809139557812860729472775168965454636643395793111767576262905085928024469109386880660322620770913939874053340701829690692085433119675117334063260413068757947490680150226633066815732411847168145625347166543252421433333756081969064598649449555242325768175092330272956579177683071359582114865649173945419154817340744621275556216512136345911226431057707039770118278794404134716856465553896649277530934390919530867980687004713899940811140878754922383725474598488752614505108958005647205120414377717238962478324698026340557632663105360185513332538226530632674286189093436659404761794549441025609848015352062246015453561365797908430836360262719851377425545827222421653637145859608963911673332429144669179797255619374267953840417318757045965458521287886858269348027238049450374454411648140226441214247932009051187818715162012413634818255939837578301125270229325046186777095846248317710275309153945962521266118672301071070185727676186680948798902350806671587536257087692730122589683562016339742326676456967029204250156302136472505393794842030994504546393632513242024579772132019777005634060582446156442371052892221825348142871016215721939407728484528838975277632299147642104325947725580820252571597506544763064187859515259657389497229012946935995125711074952981126315230947273005171481129762417454806149940867598308648657026356550758720380270685948710113152678013269832855305032264266307391432567440325702795349476654762623992681553822763537604630325888880061940163849287236887479644716091995908624404892175001410871181407115725898800213347006708646473179455190731259913998553273205302767521783005106953009895648667251682864672107599654566831410179244831047639596547733666578563283229727625409590813859606371539156496688612161642594186968310570304910131866650752963742637287349171225174038761295559557741509546556180780381386416017867591711311052225531948932992181767012576700098853293019113851902200919484397963339643280672424540476127845113382601632065386292275247276146094630545950286037753593336697004148956880394306342317343565395100475685286013513297750001892116426392448502414627618605173742704463572997985898639222824381550022488600472838415503299779685033398612776606181988880022081649618827779320445466268335389452689674243827616218335346823855275182909482419393314592725778885402598212523181051545440265668714015912363167150889621396607641731281464268940142780904396710220303002874345904465614373574078336045630713313916510127120750418297641041658392084294027694283003792181928587557273314693858985845898836861580157198337522834067394390491843790049673127100685744761169374755423702124977075428718750299416962520596294742172533364614412033648450317079147064709537588295799918161852096323207783366875410460915481886788145751468130645661093758071262347098885963496627776059598652950369503837840383061497149400708339031143605615058963921183238563227539855197462714084859111273796190933223155273448075158451473435226840606607579763194330046200011041737026461335807158096479343432372033795073137004262975366560055979576749243556995215910402333851439411497635954712933241713387205597817596655196776945945079775598541212176247079388774039339980524732738826557478696313147272350122982640560140555856772059117515160702040017275933568379653919681079817673969404887547767974793982588146122330407519480607231303029010875493747576428016575464973177438474934059614265817253000062790740023178645871749135464221683188525236343652085709951672042603561754564396346840109815723403091296136416238969604129099034936312691551697156693728193488587709235131747281359367007670086286174141690239150774356783220187691021407522674663251318692079500110292279328225676395708790488772238580681126814459336141203241309215457873039337369331906693572561489918317359920415072511923152230191479096896328921244112404612022539935508030628909720137755945733476645642810822363078499868548012575653130955723930211893394493039506598237564013622725464137635656619727230361177357812409942680733144459084948089603989996626458987566608642330309730473221469433658564629081700230975287640331571685244749956409776555776720456493937965826966645399554016138339535578867278242209249459047258130488734811922740694370890017714004196695832676571247588687160460003102489169422186097770015637874647551373898906564142724768144940128207082066046535190651078568758900709789200254202786444976334898207316842826324742821371071538029760794844077618029479845828579228830851170948878850992955572044002041298862769878632049424483882301798596001778877026579873571483532368729157368210156877978931911280366890740204605877901068787684577587657857180988315419843859334640047560710866456844132340020070747283548270504738536660917752380779340008423258068718202982715911150150122213812140857933074279283393456119229567253443250973889063125270464412793530210520713813544740811741442884478307826187415554223035467645044911819820135560942127680032618918887168202362642202588062526476651621570898322164261571732976380557469452110129455465877988008691446720083247821554419476241163335817341665546539242987442298381886033371685933230024873649862175336651409931547817289123581691916285442614539882527398311194713576914643502090507445002251170627408489226076863829885099972086266090565542011539509629733976064753318337898546384894649776151715538874219263692112071842922235190418635777199037250437462993226278519332260475228199917300574063428600538194728667766845132775338811294082174491585301015357885571594582844993848085520325249172141321268789485151697337315605125260707556864658289142077155045954016082249907036996948563493535420104656549229649639129847900300122770796990262700612101542297730418147574447008231189436885870466984758622166528747247944720919709997785604996022032316469802981236400278148208853117949098868677717205640855530361443967085540998282710066997616582396577734576946275055370757188364045988218861727085846799408085544791156288278169236401269592519077047389574593361544931414326803226500067878871824652227063319275338099058193331248634487353464531283400723271848348725942469773459786755370962530248785436880208041576758231838418324805991539215645139085671553527084386532528284739947744685865091128611397678507301488152550848821223657504491689982371512635683255863210520348090521385346451881945623124811851850841904100204180918961940175045858858199668798409770898544066414271186031030575616773460222417083384236533715293531418430826786627944460803942049715409677604489025184821602908292690698502133942173043553810154486063766170924302622330845761735423857644350214211084148012865160157454115743763245736105498980698651642104493439146773000962132354320470947309756142725633259787233302146377029133551012211820813212772213143883821209255189321871521732462475021722743602482715391341702776623639487607369348098035813493272992765448147392634745304131374510579586883268910858544179252449280108751708739762897797612619583665314049520999067348823348167841891669968091874965761717938800106984427298237378682266036748470839288793188728529355067365175547929825137620401195876220349914708630275533276331225662080906852947568276730562086677303126373678919860499782840862426852670771772711226628040484310151773909177016925813805695656776582297567629901553444281456949136069375963286982577125887182380847128503805890986960864653613082229003035101212413870983660688074205474121467748117966498190798436033895362085083120663702064575198281308189145467964616708340936827772608823694888076724589137078452436650806782258398071507282142009313725860851001742732349042032155362685749591582080670951340292354116793992527050680308502777731113184136747887051182877637097285830445277876538175641672115258864509296014720886104547354644370143573392955676624380705927961105884539278813106464435929087051436807009421769370720751370093560471601847123315774553252978064349786099983773913484313543563857928592519730792853865613074237014080882394268158425999888930984295920661415420239205247932731118435055516614120150091379078509051363804099378679777694884624333014242092813469825196907660018809625116721148937010179739412792495733025421094888653235332211227251432358855234294618745194335184292455124885176180174287812087727537802452649300393307336075554035974016686041180517429707880621683851688606614109194007709291059847526726255509974276626573342120606263021616899233665378111953933730306131160894382469091913415854485428877988943723629735680253388323191141667910911163663849898278209486585027699159981995694750761110059249481095189024289158204557106568244808468366080912381936224811264644332228035045563480390977639396663528415569654253848206084015416792646078624836674952559933259452613811565397866145278085802589613946821575114363669670089527478455660266983983781227118939716721242888555248227703057793839997903084349310921760200285513003642757652286182609951071120762140141703798236290608840261925925512975498200477659685857058023067159158077289633886218454081177658256912810023105937669209025230338719375379636319920437466942322218512326323292047929275312924478340616878143867301413611776019022946001397514174845556113812901610340426862439225368582229148501800057181195407779522653966409242557083188995302915473051654839254517443688127258644766602294133965847174573639809168590763009184361314651030022784806326363109509539443003370600841223835291393683414872725165096366569376396481492542631244944086046746833108969496258825963059795227099492197932601345125415718060500678835469352158047440808201660498131432301900261347972642953576936774474933768770965856090093027324166547977047465314941720556376382234443793064936738433457416177566819247001917931904804893773951372316212263627605622741737182589464994746093106890844417171600728497023637455826452436108001678372417653554646527497461705550015282640558093385959619031358566207413516557186278100905451912107445263076586494669431265431117530084921549499709313671575320752874179028375778301225710228539525261934967744750208792386328283755476025777643173444705854978815020023786437394573696486946582822320712996587943367688247520122041696524011501688696456957047216027963503133802943762054441124491561371034876637530175992221480314166255255472045992282500484369492669872825614534345503330678128790833432306777608115196704064811261993332978311922594777754874875560221625387239034742837918409703706085232785520465930913251976352101135203750216648079957862442212229614755488482495666025318869988272769186600002099496783964100822310025266628121119650236250553678192534919308812129498629439907380833366256717867357465376094259173169968964237240882188413994894439975500468805824953169658060010847610620127177412912382733965652283213627014338836269769496867274695800886712354544811275838047178127051402088017399113005354058529865929993084992931381857729011170855033596731805182767372637814327990625573126607873535969849150391345725769994306078231595948747062717808849147156488981451066716653311428306896648210561016599345123949313684268320294101961120614842738891945660090373740571524135208710589412889074104538434176598083177718545035575432050635346531243646233312805141718284876147890863638934483475001435876454935086294097470406851525579747112895709460890754866242743268888123244824493208481451329041068045444193882672806839065714722989875816484084677718785432173515110518154801206649798472043153585494240691714058512756958416857633564003408516805104084815928140442271138984971686166784134412040663434643429773129378477813625738038927903462854203599620452447828661261503709356937610856185054244998795112015901208031225160753085686007363995038530097146883372110486250975946685862836969620482480394477518351017847446115795790670672951198836564299773377685312690516130687146998767136277131384006182809601955216499915232545949923362439015985570895952104373373123765539266257605081097697494775950568502725632167012410225369515575177344679623448353206904138465485606667225405262241199572908950982300480411833369592513372862398147112368496015879351641465763625661104346301460156138906340879299568986806123771853156440068586362689708252105857628374186722749541937480078896384836436007335341440027616279489894798735921264132783565700299133210582741562890869415599211703632590496690377291235038010527798122136764373036433745175493597898671811166016613862941806478656535196650133125815037273769071490965303031158276766626012290329177034799266757182850394953847124131750853428398839256273188637984458042626069791725972484691366274494508614698816699803881635740909448776918954740844879379445752079011732733932745434934918693593517680206035465344632853977085788795905721569802685556198374209297311996759206104661340220600613539893325927648035304887441200282757347076488948076810131869990716962654203654910980162219326007552021660328948787757364391825496108642090974883942496232569633017778562792402408068304398357992786442179597644441670559995476217946864611739132641590555057675346388800454680474149629732462052928432370909409656358665847865412830842547970521901083401681659735148684472775420072117452317724640908592725346512113196078534657686434385867608797666837692127938412393151332809983063270431148893387375275714180954180657773475133941136828686611565233361746347987290265629329603131959577597510017616354201903509384821098029743645019027798367499634441107235471101670239338406636436202638676662619057734812128580565566058251815776599337258706955627136529076147453748987222568497106870040127326984718965321259659624017033101763394853773406409916153581485969390467507721371170776372111098270448737190976194757199472427967388605109121415345058308888179692978906672023012579169512885186283057605455574125646068739109724121384719278728835449770527910718366335280919115799354992400699398882349745327279076227345667788894214858108328140345575714914826234353553159842322751703800022639363314097032009642493240193405612157075118740338022043342247128820152767480161197084284705934080837984818737843810463354220483212255302369751025061136257694881873688739213049113419008842046877496836468653317451679829532326752669274018394630189269776067197130041107312814099192922705927180850501706923094231319117802563732951951433106588593443044902908630169936824395066672351652421475635815776794766171447252254245666428638028922934732757382774406042635288015244084518288147104897165242971051318356230226566196879712186657799689316060301050232191190312036356567275840525896657069590045714595710819806772827140356099890975202419897949922311913842256659070665766241350834486964005481360206905887417942166871076200657672303417149953556302414522409781184437831532364336431463970263133021692992207346280547831522863061802208471723327420871818210924581303149646001294139566021706717665348390312485988962030373641819478870384810017166850908348694854739984386962209267343704121749919729083609479367852135360614890481741995294314732511293424983821359720632446146076789541119784911702958982112011194916755422876742762045344400558884542777846468095510076120725380482532525925889260741183161709445276539517592953963932284054806507172226374700390185964985349116107007865817511004473740369006357973620209761660814178851138875863089391225416148848462407334197230162911559756393219380510757856207216924436772794951634922595349417696588633284636251449039456551751758350010131167446150715130960590700749983677974024151151397959611974447999450526986781150265654953379830960578747061289814621719966264346256900552432945316510360813314322540500184759205469112439422535793997873983652635336928711212117571124780111548959419961021717168241931328274842008735279022774536844133268593811076039202091654377001706631387236892517900298258842307684771679115457061462608964703429491683849365051670486974040338959372391229793540460268380631848394420023579361636700661629950386931453974580952397499710556039808690614814557335012180317324047666897075835872630638107968021925508772387059636672569014353900206878659651218922636086757178281210024919938168144199119880266150352598258277953169634896202793359499499550919782275868573139259972117809492526971824994672486352507375246809656343541134351211855157380687308606855009233977545648419322985575597954237193880897868742574776702016313978465903782098062835550855483614749415250621348178484302968788086566667270384177008974877693111454943767509186621869656130588761210559813318172812422427620899572800254293260238012347425441957080609192317500336463148416839004573834012533162241290528814504366065697463774246107103679436525310075106115878934213053015213346202118517552457486240627401815631594981413525909109119933397228737737947330061639132657810327026297208428228680690113885436524568959309482156227267908232153532956549081878925684919121835434527380973978875156890737436273057821650088096469632264943642325001597582453854597113239642509395478779694153749969057495421664887239128537373521889883821411470816088602157345212326379610123465251711461697373344887966382907814371817873825668658603668996475376748911488743543650128931726479868819852425136256979289285571328036655144485974933506619432492524340250129654792179526212491847253864760832083615873076077203790640849538609057141918561973892953614629573952759407391900982692513647356724974708836957400557084924987488747217324221958609704476458947946482261895789439779883426519513966805473607896568855512430373455340421871876043814550005367981329094574303985250106578325354298672134936670513378488194757376174396174356337024306897107031259472350247406556873383071500794944481529109162517733137317217293448316303132700927475052108567130391793237085298265922756045208059779677811017094903901378440784672925032074347596822679314295815994373828913577475840213981710258948829487598533877455849439250235510280630176441924148023260077087287967406781355459834894664658433598419103221299904278821357683280875492372056248737301674125884212547430312625113550655458021128472512727295954487611314116308715224505644137575751915928609142935707124052847551377945388356873280765232868987817269157181949420441570811199994446806624688996169542756019066043953472592992037973118658603541763049263919849652730165060052624438748225598382451538721154329843125538012267911792370712403261768060346278740087389900637514855830106816801281587461788883945256834568865652516011639211720339302610522688082197747086645915836758583273898036389251095786939676574948969402459997680921115282199166497325603545209479288550298003729610155048049476931401436109932075927644463127955742180633980286469574460689467956642410148910242551362638806728974619195314737078949624435374449675115151728384866777836200371301759746273948218577993697419959187704592394194025514710974149244998710157747679441855298706141995240959019040286499618239810029963924658171736411611841952984305102355590579681790570326355867571726921789280244317622290575336299465536301125061664934010579925873269790072293622261456421668780847913977370037917558110682877070122452014784619648111983262472874346022336917741238646059538124076718569131724707842906955433407717052790909524056566951980014690818442802198659295418841760969428259004317475101857329244995686236469553986934616687054016885606518243887494919622280429240219004987876136364618525716719410082326420469984107560603694876702292594935879991830267815576206773757447618231802343857072936847018445949220333559880557107243059424891117539887572792644452837664462201786465420842332801992506451730114937291818714898070830473796734997368774824810045342197235694407374234033421930655806890242824929634326350332051620054021018816832137690483925230974767970519578665184377623443514561337750450432336021670011364785324251625577140876425829799926452333016292945357183605474865184277443839616985740946345497008072218248131787748229396953516359306465331929573315526394955392157492855747172347625056423500301098501372245423001636560965101866314057019473472643417019458265792865563624847519973653819385122703463301625371203999654166929603229893939640814537439397206563513568698461746506293840085058115582651912721613930235977790143754070371557275650264925901621590914514604682572051958347951469229614955090073014386067483228832185605654058170598426280152745151678605136450926565140410475659094262721933310404275795564071978096190021271388133090908062208541498689373099974082228787141417444179545055045422596678071162410836869584507940134656616016218750414375853101040091008875255554450145464094009972988998889573746121552511455765662124381371942330589620792700068357511344604649019783602500531076982957519774271385646520974615427478427240263686911224481134658943365453911738471352623313884788279942808004003358421737580013931569435942416915142197450419394169058793678329842154134718300776003970723037392173144258576720848173785803828151646414802095214989557942694537799523855438649820462556946678936622596181249687587389582034966451671612674209237324385991737542326658362547176058139003134994311390431685400787085223202338099636475193043056817899932885795473740006093197821777229536443169587258509769284667814530061029639243229696193779625777634558255576494569287544639813276110355964911870278481015758012384432094461433553850227626702141738427338082990885332447019175556255747768836649131573094012084629354949498300474217797915939836381434121505770394436951134161297144451343374372432566463911497491622096420809452565446787114586089397389398500505270780748514929385332193097557421033188064426107553162274812982782836418899785091141788498903031538270282197165968030835441503634015483911650452837039563476904824985975726160937864115803748566741112359951111838644131243477862626517024498011891995991706295384993989506984877331105672575132758558033035995168160356261173526999063284050311675125497912582240665935381058958551300542955357239231961354449403388852976969726381362219591107483742647080867077840810738144451157494366083708835352462055142749342630539235301529414864786673761429755698574525895353785124809207571455099240231152285272935209731489345577357002952992929031959960023585851784479847256117573382031936839396619620956556530581458067548354300950587958231752637369255331300043884065086404210453356811275810180891710414351219463935388407398704405283115291723504215633416060922121662631329649107617064977554623810276266609851802308948733316136648649926029057618182820514940530717924807576068043827604160066644848356310404059082421983747958462244724836873135581038412049300276230098967236316759608383741410838667442648457223886969831118299691015362569646041929610855523854867151372398618016262095330365520771436392275171115777468770092512734330960234111768846792523057193539937950307113976825189718346580375520496319599422725623594596790088122814586948248148257486778094199566238295898214261814594659750816664038078585769981430307717134320461179600654509618387550135154264005700848314332906019441905318770720979878723640102726706310825457632296604713931217430685229257642020172902161862388522023824543889985648968056085298240996267346358527122460563725217258038052212506326763322340015527716878282512146201567939325443511933714540660449681290960530199892075522910047645999850675740043233947984886726207341690660873468859341202767206535157025171620403393283967862874209018012566748475937061275028531782020809593575112858768660537376173287181504556932858465993777502771120505876811749096530792054336099443528538317535019552908486067873689364846068347402834151761312034668419390178361722978224191242039409762086750738188735855298706541102487503010714007603456738607993670742728438465417025522692840363630922896949622234478766193087188115808862980967151652802272365201158324415549554074277375046866161418270430266765364087437866443103442979679592627353117684459033599232246593549102375365675031077880353548712769176215676072586943840153405975345721137127648509328196608150616072869599139960511260995842740630903518081461068910708027477877915707564709352786586359102185825167729391552405623288963538749115535422649986615957119705216048230345116915301999198044795177551813962965650273004355965092688592129575611712465956917818178363750300932913111844760332904015286703468358334007509464511682020638428023282709794538721030140458568876025723193662361586800765632470536207757213233576440221982940639628977575837801646276439607659344101675869549149832242783379994153795197575712156937025957254108730988514778148952414366491200567236698686321686830655443214780381180311970923303479397113969821799860836313702178118755997668097148790771873842313533283190672497251572681382124080966457126502368585002877912753609967789985926493800201612421155569226846359522130249965240811198818968384779817905631721177459210388485133315008218421117305613409799226256027310813011333380908683587883873873507951818424629863687480432043167746837013920586326214506023889108870833188425385226381595206064009860554353788577806062746102884072484273353298439748961923054592395895022426858056924898294013224087095605375489637933266594663536312968731981296321220164479079103817451165466255488502901550840128369847414846833437263868377616217733671975758446760511855635896408596018411525579836859598058836980237729961286313377876073584533424367601451106794258274382849726284300599377297817833297753825436329239952675535841413859694054201153146943083038048420504249100502985840645056059433091998782460829127550156536652582932104922343566066674598767601247766642639859041802241790732202980850502818144792121484163192520128230586169835265595732900748606825913364404525827944181602979023994126491166472960677297793607808558374626865786183782637522380437328424476861241258935698740771884444206869411982775384664997405373722322481585548783497893283085692624454547587538901645958616929250374696782241476935784116120519878383814456851723089217544371961219435274044974179825768528363142684282719000245321311832508099449998471347936151199202183065003714825254095453703663831117055139678097850907896882756441067380655302241606597392465804290961212192979230531182666166404405446374779670463111002540704326783697185320341876886686528888872131335044536329756299734986021433980462902093491662699593563535595019982208780530709649970701749565799892617458481431626104227839298327718274671406652531144172336270059734892846087325555495570852005091535191711719662607065636070903216039620220937447260135186239802741010828835169399309300899312492999128647328671108520219242458082379980929924513835753023867529749377987810190442943685554592624690698240254780998490806109743275898844521786166954610172088353731747335629626691543303359526284134446289099575536428036370069697225809490957453214345375469422896543482515524413572393421109495983816661366587775877382708655594863541856826153332201849337974664134266660256384453498964171679503900445376117717927237193320069430835528780531392281189832630059139578089269339965754230386018742925625095125308523550361784384010965211813115967327112990914404517749103505367456735332809484676230396028342593494148087486447355632952860595061101843767579593275591085588432032521578615520426038548721786099579072325467276982565011165666981688348191888936174341768454086723793749680006565713269044942522872021969794480055233138616175487433450593633847844902273594248353152142827560173065394070476102074269830751081555624964912741690967548749956363449073368929972392838066285645160630084140928714513014852268128336247607957490337907924294218917973337986445079640155974989718780300646253543430982954361152289760064801963322776895820451852785142666189962443437431285743261051509176505020310894011230603993578871547788351751335348448943219425863237477408940963094622779462743362494685597556829420881857535015535050037308490197545330266556499822509898809416852042069516837205243988836845109910849519521524680417613411092216892569217542788861449178244144972451300413912423463000216256852559243547793862729849669744372083756572974256910769677442360925713593562543183014513159742928007957762235738104172053027263754880028575331880978196720381471323561137074010545388480060171281409748971618257968838427441628203269718339515259041821709176712428764827867425470259977665472299411479520233716970768950695209103166463291280036114950124724129580051816384371719730375973923492145762302116371883947008741846683954291092780614905681669083629385084818529855874465685452769548955719476022098588954725534262024960983602558695147426485411520521025819679997268080637450287817579263330996647240867442947673473399916985037011472901793413466044261228959822767564269257473025341604700308096644828639778774551246954623509359689597233922203554298939557236773095517333342310914833000831388230085425971979675806712736776712681077426352722597387550920936510140534337604431978728692067741520312025996986215297278917024029408659977290700463127003165265073783156878296404582921023369752894847543484589620232320962291627422482234166639111526756851687938410993436531954096991406637463566114576628951838111234704279357680254897959742329258655975276749807700582742629259160145120934393698386290256714875805943163701997763469358408161290896375064612434291634817981810094537959591085698040834347127145920684406017016102114345447709258874762809517109599004052086421886771282680951125162394275839833737920981927731482303036972368523077123110103607099368030688106306071732330414769463219245285604924666526336692998399987108372050630230287219813767887962939320399519278903739054841933149831001074280877869793937233387626316515264554485024214776700018909959779444654068241103929352268159449654258042040093683117547159720284553884023904593355670241422879191699174995694884488895696364301101408857352777386593991337454844352067274079143902613358078999480296685573952188742773265594723279782433320514766814254422836512939270422433232482933235717814648541014195855499607535540825303698922198318211399324599015770633556571158607658055567262408002445473775210347427289298343242737220392794187046399963839352198101530696893302892916557497803221432401798885303123554665610103680117859306428047616857801125586441229879486561855283716334326791411333572076714731179134965905542831018195174145520775387882038463181887737695543834219040031116805360445523963243080975005539119532253715624645294217503669100189565862677640628106961358569367938091949045137439724679612674939116193180366051172111579216676208803133235597878499494382382611656486583261748568209785895028981183903870693872185747226952595518124922346448120286572245916354414474601469182344203495598099957491941593605608129701059519753757701226591473512644226356518585101329119507496867469280221736136472383933538625217297440216648640855462123143416899894200413144692913671858192104610130441343039172069392163012687749537572929153080703961980797291639196428110914143196258384575257166925133033238382752784770952897026356845795017640849707535675535055762354736125477335057492021438598070869878895995297488873293684524271661098367186881530367933305962700949645846168127362034542298766848313326649995492597164098379471252685213345422083359037414435943716200717256157170344069208740633620357708945289317944862163674667260054114586089735488442786442775991141434102015487919147317783923538155504094767554205537395089662336828161999545387612992381923329378657267697387136030154282892073060659933321055621811550923787896792621491576477660962772656533438171011681147502087180838361489659752812629033912381185018355070765237091453889292493014784497001591729397321582456808946671882994744974967003077139799150815095884978645932362603281473348263306878549586446133084380702845581880307149696538127204863472541968081683205227677101151012430549519094250789593041811905956169369463077057033760249587727683684923433517774206541999053293304848319178110460281287694668210812748699852528001834511639493224990925828557781176428018467554963702344539254875583387773094767418296925728926929635706094885189207097075632775061392420639885269336405234719099860048309954749752138727789387275168879624877398989666268171217536068214650850449825736744341288931551225278894757436989834875008727590455990722895729952831241967055749318212078853226117796142664365638246208575860716132332670916763266050935607763326955654860114580779622535233593884600515380033338709490155284424351552276725126796267331181195091073193284693683698365147626273058961213249719156756206782164528777418698234284232383590359344521250666372167034431660494437701789311145767867591155537726947368264053011351507955030032801492143299562370437523684399883694531641666156146250204920780289418133500045016919518163333292141940211530295220590284545228023170210335824862516011413408455634383835662597945264126809329492660159381659471604275668809591861026996036907397492115318872626627549817963109479879367039465096446897314089516874821030937393176308530870104285351088664295652949630842357734639567726671478085638459990392014012798949514615831177258522302988466263367922513569552870992839066924755776914076980245044605346587182427828276739630661207465012582883980146272487803991829641725552780639657009523553472291436494906380618226992372778365463510806561170468142248539428189945073549665083808937564794057731693512087549396673390186205766857991266062233806606886826600959750420698146309118862758103372718975646988160113348273251028644490653338833454093937859499728622254038000573953401180214020468508462210949004631574546914316662657360294187359172379835800751321273843475795452461747120423326179038791929070347628021902698148871521956063374126264001394956104837245189730950871754957783155002531655872726208348069092769753741660336050389993780779778952090154897226204169753324423020828142839520436181798464718633553425706806030932255923988934979681463414403178703506576546654617918076527611383031159339955394845744329248569010514239715037919766137431096478324659361782437560317831336502495278598409947437662209027593898602082997770436745762563308284077974647448366799064800802341123655976150110800780929099635003706058713650577288713516769730374463492076037052017022239837739608253116206119584305968661598655231036962036933424852006453978341789477481994083809673453998127904262191057111869100036449047436844794114886510861706044617784609242635300688674570346774531798917194991191503922963830558665810889344681468100456123808005577426500285834510402632956333228931007736960611066841353558016119004439980700227774678759900574035796594222228849014955598500813730875253275134218053632495839534297151301311622719998160053091141908970758970485210080189978338520344127331130621656371471141437614432604894050314007342538500409564515010443159895320595870886409273379599896759286775052250519290329559293034094561343117935707147508464486877327423255643226416627606101990767729640633142873955332060084178054295578097839546637826222820578548798598775906854067408498823986070288149259249279982305913632491517424345068704795878036435107065130282755548958860087885982031720270697345494803583915054638540971161883372032805602315100767728460144517528725835691636294962934082751926210703856772908589695171715530292309818210054236847415370254072064386066688193834682507496964024301703299739928052600400438169024634483367699143563746607234919117290314799785476462323855036406733974928419522823782092500664465696393474540587746432601022898768688122604420024899333610428211338925251427007561669433423631217063515944508402624587359190589287312400264453474366026397859381254777225914020967631810029428973298830967128809975657943656965808740271416819266863414866370615817003753772958477817810100097714830156894650699125687906418151469002093661395556091330513900085255870052997639632036158711040484238134411747120157018225025305123347201710012795738105959601344528953135930721997588818403658843463108642879078083516846900943685390687841272627828365990773617242392113089771785192057179105956442300553522015676037324527239968394030950053730230926452136415689635894757833950605775918209403466562723336402914659082784956968789387222167981893759891691616716809402640900993010147400559869966195334499276100154047475495159819761994958470522746978698954819709468496754442343904346234720724363699735690732066992585980918128274249770545267188361268472511355069688761186011599548719778174033294499438493790112541918211965541803262933884703246895054239012275492789614517163670037322204767253072902831321327483398147742754572580282232503596769572110297603983326220238581971148616961836674228666399474430894022066295998577353090375373887567708218602280161643786817124228136460185192009683363913432596545713927629918692382880833443952980561258743165156824281212028237613182317973521645449295682803954616378738993338002615211327595000871668424266545801982219923367518877199146937196434613365686488712285575106239607233503833094354624451997617340977555719488643687383040602671600460341555639203610897532379744809609299903247768981902714939424644277113913360544084231882499278851326529920197111282021086158814967258124550423376895069582497106631455985979029575575334804753326630401142241762872700448975267238728521116088863457287981128261806874074254363469456146546115311827115554136999842126108691194590594389948665761993992303266240287028306290051764164835864555738037966298841162062024380165450424086502564878293336655057548028706091654523702923201114964244928866039526115099656442029084778973979038570440635150707678604542740972632240876660655908932554840893617072659914777279507196580654404569883632762202917373658815266325508428812965310140844782042662601886158577032537691023670889319183260281910149300004761670902933173770911403939355273944121562247109992911714158244254036597615894118496093004012062855660310643706640201536393051733989310695704234238998815896829364890277352584574378925003131041625777519097870076205411060593720314778327032950686629720470704664586373441960585434940730462475788926803440422015896258175634820696869701011183109706342034582378297104783718454872911310333280629214590617980949884247848230040335057804476738194027389249874690874781223207659330929907356226313650242903771047060405566624997987638573307414737094172439624844542165786248045692086387442834678175068667188828576845490825792087110893424080161913574947201762996025004043331409969294961060766392740398934769991957879137195492916037686242947647398372139515843394169516436451366243319074348257190831486167721981549563749915518255380836425002279532308982213115328806659392228369010003313853964517127451103192416518130542501021932784311831818326254918301968333665670341978258636246419703240781687737716004302284700647852167303824363522562017130807868700282185863608739704539033475750242231533544962278343112589320349004634993412446275691998361246026044153510433307282210803471480932259727806631046259369849125653660652967034885165476227650596300988902579258223959190200432318661810322255463600015809873631039161643785300830159749907196916696582170240127223575171094575503287879522032717515221065423038510153810116145313694094071948950045088054259624685401994689765815551850636651478132549236144806072212042190446501633886446114355102300520612723705383286177903993283533694021458046880973904812560971856117876570774737626095584609476411959489125802547476075850072970267725827750924501661959251686944418820766632009408183901821415983869553604004173053108231764437423517845241612944991915927790818057394727204322088080008869049351626320670420351742538193752949325735645147593894885309471990027496962086748334762953234069806070742141213220176405919032645358836199423186288931153353458534238541694170015103089393949095118938463821916939416289569087284104036089826055816601038459258231450618004901671209594780750776560319966065147834463519636399265548047701817050235920623747678643402920425935253450625751613858859543085889803677803287156992403584972309913243664632671291922950937115613733478741841953115749056761385119550001395327341409805293464970115563179772749949903897117626474001180514345583317183705785317735587018077254462417213594560437232647682759944343715949221090600450948794020708240419025181336116412456826136329796380229635323858208518014836890989183543797770368804508714016027442291698877905304941926606432637418475997193855871907883022537021356979899966485939741546376648761169668335969136267481350744599774695965096543601756455043320821688997620911251716818289608512418015167263310301509300993725176487519297232406973160716335669897091787680900393252652925816126682679046304434578170869593731934632536746314945466704825416478994271651689563803749377901830131106450521235892088401577912910226517249000470048839618853252366778192178327412195201320245060207338797569786636853160666154850717606062914979471253660785067543438041589203883180423521328500489734070429726200481183468342593218918038909977772015895049812125094414470109253628807279240633751807919427680836209526847662521421035033149869100636763590877853221333924656567504940176712210727779059864303145208500883783955791925296313461965124750885459930510849534215612584613576402155265609635074177308390628468772396365611511859194898173124099713166977395948860606292610630173991607648907809711804645146792090961970024877810611857088051055741101825457091916377523539916236440889829144967479581900754187610857885475569093638132835738431457094995872851332322526985833148725253321266728079144257384844184261106309023817152246794232028580647278287412178269990111778156629702948965014737793053513954333492645725448710331767560167345570714057360228313101758482798797606974383030986974743229348205289696625477274058234155379203727702050567939174289262746805275577609491568242093282624367166881724839404712658323158835806773515213021546618410333852766723789139098368656568331815920991457588019201570269061604350949312070304480981940656526122344819853898771607250854638888680225125352383410063056754786905117911467094215617109789223439409536598345301046588895482852981364969343895464491862763810107513675715782752755686566588619734502368705924496231843159946111796163535444406660539086138001297418482443427221571800410247887514905533116435396136552932775470388378664874953396113158724730452287405344306242191579816084668919570586033489061415844296449291062346938874433386804045475378009486241168537036453010127258370652981448357091198599293982630959992257316600871350968390042580283433679565892883977864170308448782488743921816334981030074055062000802517193560807466658642092504903761506003864084837411958179349120079154136859631421377902477621917672895581423000782681061369237271230376296001502799634003783539135529113186296119814205023083462995336949658965511470911533868971599214778809219678033773493722713688154120099122536164457687996100551284091651385610790178913949859147932594117907084851232058150947795767318168437363429636126177829251698776541335990341967696382034728369667253290411011882665085642358254747695744461873605589580415335060711704876539425372259713526188173040333463472517643585709927196102282616466607468303410117483218717262068247986847474252092533499143248708652594406686978870047620915326602819016422651133622269579480255517039614280643715823432982746459918673632699951057864295829054059404046827905839184693447207139504989645513708629162567085250796096814443671311691044631796020927241436610622324656507431221018856473989209023947424174795560959298233322556796456219725532271209865280363528112382702194747868615723898658867310734577048588361690198135949269183777740385507327885930050860066490307980998041828535140630648939651605282994219176482849498689400371652290215905137580155907578852997233752131887360075689042053383972916502674746781371027176485614407799235013712024960333813669916430898031832668928682586837183455731692527181993187794029077094344368903463048938962034461752669787566026569434198472258356656545773734418161152308007842779012334139848551125235701712532599470459173473107984334360141843936619553397030861103695923459984006315116966655266410792566291076179136452018940859889276577575044748025786328103167690875189511008554305025671196639467013974526239748249581930001052294974446587883423522000006141534267335158173052810213440662589021931158913275388045632508617402217953055033792347616913898019636732190111289527918362569319648912108576663812012645132066759598215140515498352569211372838892342266135231605721144158170044807621253346338286220517145673847368488360359575187566108503753243542731943612042749611385583932085667911907848377209692168836094400639801107046552651902401101160165056394658540104184293688387756589181372259616907703130580714353576970844546292288624893263337259215940542086030170801446036316383726012687379605756897126459929936026803792477179739345922280999479766595634149433030711202495110006843684686930126454696321354374914167036522175420068104862679736573933386839669474401926254484368138411876880767663077708096619022074778300864337140092727092231675346264388473543012340257028741896613092545078151593655920111084698225384383527814067871432921071779129656880150216311860596693345015237076040329329147832004271899690078988594485366954833602200770082921154776446434496097516345121702916285193929101486163406285458373108649386828268082282544369313440662264776825388840341552265283479127235386743449216295487195842478694869629304968451252114264202279171719352107769097177730209824751515803399237130902108569486472031839687203947065843568532167006825550375989849871669331220880260942592675693381134170306455966852992596377089597906334653928719978406320753767571460045345352214517985754938241572906779276187203439853359197434022101331871051520903436343701133470788642614571394604073845337732680713806553350905073863855152631543142138252092925694882384083035671739213894888709569575147108482349470790174964638068177573475043317059742185662581693913493382246630603983554505056845257856185549381285621207021978353688226516707191472217415287309143329645752790281331171481265996645743343877206263344510988081621001115779436176155274021102572349454676073377125642466102959927932586224850779202643372462062339139509593178777213688802118423195166315853938018382893631822125987805306283305655126668696083220371755178186944293398599123461101486071024890262264376624388350469528204911713687346314058665529454778735246940453672585845944468984111338745806031162174032314964282170637286742946478670921935880002464981251162727918729406720409413673725039814317906012767200925429700372514925408147197638049854298740117605947201459626246016495739934933677691884538560144007502853445058827589622123540620699745792562595557770812327861192494957506326099852763646903701859958919044980170152307198893131293800899100418960675779099605800793180046063120380514548624852286341689053030454965808549071259983213393330031564618227223469685630857532260651557272981051218425272655990069733171835407700988836711542918094828279636456625733157215937387990721431051648279282847200648173518631556721516820028984235268407887132040063209344767887321839770420691100353676892343860460848940165575608210417255686664976685726166211016769421777212945217886711935006674744684576293328220208853149350356528046677677427273548343780595899136739865268528009270151277837636157214030559560732346660499899427518021280929369010308018107674497002748205433157179992913156111815460199010436073669170340430778903844815891581774940068384153014777195426770355054211815062645842101413668650290775958579267379150327486577764297774705891003440990310277821364521415371339979744863963300024200432447006231750129878389435068041189384424736051080751403419627365935963522768387535374647271465700486265149355539055710892898668946432709665333769207179804962555247580359062260765175440458500430100653224174837871406084471287927866471342613942467674435605360406188828900998789923750879948347644077585717403159829978855386412206607725440304772002631932153577547694262918440908533528770902557080015274838734849371420223844420746820611385717297534156990611337152524571482526194485722313079225524346836050718618845504337430154474310410540204291976140569438235052344432584699294896896668721077921793900026910839622738736434287868826660273981464551211793958622681218566455521651164259699346386644508541278570222416061830400182109280485658886543730178186732938142932802636982449144197775549630551687936824569934605276487707108669798818543638820688585091671534399862393098621011717659437645951054462792962005660547872936354093410296406817016638826967598848376875768137697942691139389657460578111465814442513394486122455158879358021620962901957552977314587241821315044152488428700914951508084991054459370643090368670953119754667246104370052279122790040407246150698657758460352941731197222607345704642876516075863714225820925905419005471393117908589472249315763079526281026393544006532261023309683196748811992055274115372667442612088914669625172167586622043976823642904666477227813807932409484820985199179793629466134332210966143112991271393828149695608572111461500146063792941070038980329644525163317353916993737310095092923301562048748497906806780919006368722731434356793634524424039155993984584365934279098290997974626974807939334560299267012173776737975863661122288807607246118328802726767646541583764680055669816336991379436380281035885728663039663932829655495748833119945836314314614885364811750301670533836893921340423268714201275152178161979134640039865912402560989910518278979591730633925232532268597102868724914327932006513483249154136049543920592604323980387471539432373499723568243899499665025382629599195167281016671532052576560388772143707446714277784509161259020963163688184193024903986529409451404922760020136193158660990259866603030449858664873636355872785404914540847959345105522147867709446751745581825591431627466446542576051830226520044450728786229923446668048768606099535623074955105943857612290964847446217253197942236095130789146050374384009420819698053518427538316259531275641667947238628538241338268008408964202620216655311277097305815043949153754363325797294346263351681709283478836943097415470586339806436665788027948617283930935259032229016119789626722749144103283962364274837952435703733796460574169315911059572075385870912892630636871295582930830066362339038058860979821643236572883731376661008052600987262479350336136078668040389037203441774199344033909412916265155161418569527903638525024155695143808769751874254516613611399152052851140880147810537088627380304813061389848056896373427914498332364691525692239723095689924120285056967151039615496113831051157119295006486532611511924024940091279496208402049930503549699445266448885239421442902233503150724931351140208708258563119109028860002336270913732439624356500110793643311338795332799022265376296774711120446390894676093007041418365334605026411207173145663366989283050319998526053226504626168357962988732709908786064602648852700470179599322061874154247062736898506663875154334448330556023401488706295712301843235042410316832239786336850815750000559996201383701450368120557031978407442951060093063745524755470684295804893953255704779564276385158905036725121519629545807884874406378372068036317750875661929074425118942515088022784732172684576336047319199853872374504357743052719681518991548503344841498029596742303794075148810096375298094769916532800761045389545027756624961362091655266382329466919794734055561784702507781149758354411987808949548420432269244417818440828971662690953803108582454883729213533042619245971395365354282195521786794110234576323323821041546587038441621127193000079286475545210018094851629167120937113042382175171939883426402293203365441269491331365394239978663834172072244489681487666433547155537156639676743604206292632277496602781538207310794341597101712220417269828815383200888341394472727467830635965549867794403897003119232512694974291761083420537909796673867274703871920880600148105958707304348867337770781387948725930026438646055728064430231691307672091111789217257844574868059172915514709479471662811932157691277099259585052407233965367079966563796333906286424779643128055119523397361826345865649282668290940311083613325267028107534846906623312013530830372014907644722227698890297881490858988986362506880322022555771650560841627892618662200000131773376984516255776413017815246855670763151848968860295657008326745122489910487447046069781522911213056680783292461243407038740533866592858512773951876025355397891633418094051069669395872485990384731729719098608977455350474005846472852692037888546757740481896174220316429744808252090009644478924011626839036627188307047818943035783613438954937746045366822078890949597225378440960187712610724636934910937065485286101803566770099274337898610540060370393776966057107352494729418180045823124787617160451294700073608015688415062157475599664873779248066509972529155328109514609680759615107265055890201858998078784832660451160303536457481108961420348731257916226618533936175020980082655039658982574675796539610036890696305539351580002988401862657938965282647601315650125554377889032384480835568685007517860212394017583433662634665022405272988731404084836809922974852459216214938487188773176964577589744429940029884363700879311632011692039956804009891959330079674470689804079085000168152865159252858639483449353703564607628815755446427242255395181590953972197802509916719138316159847095098132408819053817147177691597554026978923507187118903999942485432983165933946694404862789712588049066565187303696993553880694629216915055757234388191672267509243271134700843370532149407305991289544529757439297832664148954497093284693163926008696143648567082793616637410764549279494800470418379723870513803239822157582165622137173635453102352582212168303104825601694520562240381045337695551306768671015088767901943654130547738800172692763721066061918680412442179175022090248320503563708159873314660571504332747922515280498337726093233682412658130484811417625906889671047405978474655587735821692090876741502012806254216311964217757044002947588178606587490345669868608526525951693216761862462820568224791248569572461829993918139121349735509108733741800420839160096046352924573762768578635694711312236244345013825671941314276137120795329014338811070018481840173469242461728441635567920523032730023297347794963845936651061767661516121841891440942500764666123918445308136388277700736702886100695200958083309962479034529742618702958947702013267057060532040075133689149113677341548274032585141066222879643262594625843831087873028064284422729311060932426579234031934636078694419959140962496078830671697459121295108182580370629678768501525575130587290183421463541443347613481120616481730502894098936309443739063931577203401377170037623640968185810832228600044666893237668367284066264481650238172380021203698265873836370485049235864697489666951022862283525470745464698751377266791256155175413457439035617719537744775352316087842271017808278170892246292517319057563242628085001972431805211735795149662168737318735687903338224395653823126978349884588701866728062686858243439817419601287970888996875864086694713799125399283976811922950381724615165582491781193524122724124594472777177577111530188080647806218658771873096379963104492613993212213963669712175426898873439920711527861631970056540646934930364718158018997016882093645801058704146899032394027960148506493862630906280412229789521671707994047311689344800002010063881301541611645733928708460973095406800472597201473000564775332744640871899835995981065207860409973506354405540871871224543892888293553175645564681635959276714570434756892985450535393188261883347933251692207212575174193711156417145270378185031558271000369850685069552265150002397068670260783650029812386648576508505360718580631712614535655411008267900025785621170424162686609655056865357930329348193421710579108396587896074332642106234096813731722500037617684102355505809720330533264854862735049270515564640718700602317634284575539207694786281631298534962241131099373731488318687458452031177725751111758108506007540727800238764341217536925512230675834299290214793767649215880450736395790204103563773425174572388344085209080097991731286973934250586166118205956075691298448881567952498965006813558341114212212398224932662745372589524521901900403087585098621337631620931038687426934245959761663655635973692220608441214154254084371525292866982343620352135520798069576941201010367497658188425493851998771712037073604421936611512407378954097689758994727414195556328691214105202865757853423171974357416470564295188584299321229276237836419457792410281080165598922561647999327882283394888895598620282976635409500344001017487732139697929969646340396682832390471686370212552537461173189244532404374100073262737580793448034413607377726059367133219696331664487281674992346128950059592704845830133559772651670542675684247567769276630220065969120708637432005399104917749952798479979214750871847017828167855352549891016044150645622339478716619488365927982337247140282957666385405812801603964654211686101117153587908273202951231232816687257175977138532346298649163954681718537479776422048553767478695838163224525319570594287737849399036982102198124525277806427786352973732062100801392524003115567891868111930390663980546372730074807673135375304780608491140262518603925292516458971582565276005616721819876520687024650195163189573889343747990961414741619594067449991351932740186278169758595114012131610794984158987997782400257189756926358426637226338827286124470442942206440604213323546849882999042005150077083383978772445384235286138714804174000539316271312919994307157440684367490398021179743258526528042789348609758272778169575069655579321994387045935053259503028892464711107248752722907669551774396175378452594850520795950908610386577759848870257527548177026485586342999061235221439614977203553432923993614210864464260625445011202488501170438067736607227513973281492059441130324949317717375982241250903884534812126860702296045535133646586582791727961831803482052108758107274845795274091536683661233570244037373529259687491199778969298657719487695839633171190007882632493991866855685859719934538950835014160102178681053019633988461713885091645885264444400455484512715038307456024026694585852072732369826005868828830071126260961245902510261096695334454036076171141525302233330169674481538068333263897673004313796339915606123908412288554594825728696755836680694050317811598217092501163516018223813223196558058624093301005054122301830816128499579039057292570257484037196844599518016872134126894998011835057491095095928592235824746228316087218727850455771130615797177781015725398752159035265474527412466988118612604847116148784422221846532655335164722534969957148593479915720788190401546062469484925458337225941289092507199015494039283581021925427760840503751740202905073916017766910109961674090534607284954691868451537471294848408339835500695803378580617707603748574613358921779586597543841224514625398669948728526733489364772644455354506227298536493725614352126030096551529810519230608452636942827150531622280814140813458076923743393481668568709788764776319366610370319557314297108303085363862681452550483871758894076556980047730356199808777149338718889145445532338877331246323862167639562487787070888684650693063511820238475971622569246443964035072347585939960404885276972922545912168085036284447322109465975836349575579678975114105806549451674886744767054682060863524708125529294679003181311408103890196612670242454806863848188417956979293335201198844976730668629932110963052518954246307123228592913162518844096130149226970269755066736479315893954320579626599056092159620161648464622836764965036179169567990546653194902896058197551754394929253621105170763191526952534020119578764867045909646322733756854737563929265987560601722164894872611874027049209701277897492694846612453542464010075118637137016635216498167821573041595952131457907018768670666364619223643718713704130458139322656402104727163231480736524937429134663677035394136867276615631233734530722560047086316258182256659445779729174764283547343445099086191268710477093581992217773980108654862053596929999165468008466074367806828399186778616845014991198493719230180260310446861479970562276435872895972178539077933821739456945112764934268054317818056701937167493313806398752303184793141046954075486189178910307366961585333551599849130214492003482578971879292195527684719190201226917113807784433665084972949019531258896158555772278224478962265546316574045154286867601567120686137707654073735865396663956353907407098167288928918230302693351281730891531825232183786603411584423060403257113615245616755932537767586367829052872189058025201568232743186733343824015202775223574105633071924142173742533564475240521499036165610778798727971336690078627434321704022862935436454003870314196581142571817417325600732211850600913944426332088591206202109435730209303834182023376858255054010692638080112054336795888919250116759625421502796551134406156249600075522512960235489392243090502514386461222663360046183991344264826418589132549651691022785399083789294045107493680736907026261314166893537255021746485786076008635043239337424409420745076356757400965113864910215435490586556660486874893256147725690121455749789069913183871876543694445275934273935772754605267901746828642462519084198566330062133466379577855857818477780452554717967995137062100092691109650195082381827507359091927351171731806455941115916683573617623964260667614888638022067080160699150572294223858937384754926399821844817638094039741964180055633213236537912335553214969059959994431620185915285000292900441118048787844182300408225822464223575013398630933717449439683496281238994346866419319466255444203230776536454757560916650457503869991966129871620974847030853855222593444446857984122731506234971435317608925358243561485264904272206304039623955927890819076689259088034623035517893317998846017062574380364728655118547783657967955299945547119307604624610121510500549187445122915677659456674019184231349608784119012169457004696171525821667991779859936547781298318977288148046789597567946648704650225700263116684104952489731014781792612361813979260224220022027953728715919858359674749412045348425409474407459448916255181278659996352727377210912024517268739952230063950233677940909284782697336011044195901934893327589584823580848799933133551317057123736645649670767443113974496854584259764719188903029786954349206007741800381078782851738770254343149013716456250478449262463816874275882986908041656739812403605495137382978217356032943112946988914840292971892044840076158287426906778722365336354542745091125648189274072798696630777374039949331225159165471638676201725884936419970840228007503610282943676422622233839076288490272784323024006342030153667785651659948142657748551445579005042351167711457489287164728392406707071895447429071399313840912271120852321540457389646210331733790565546766500902894018071742128721695605215096887645767566447905649489068644984234518205068670127182375105384082930562967131516019655569216540624270342650181973216397187922594709467414358384341126210168110470368292880624293128651278716663069104234773430091894610994762833384050370455209185174407174191753691536354388692106412931606151614588163510590744910680465159269309525816399450517131008829444318848089188742969660553737973732395949015960600258202178731950992240940773370087718809781563242908891120064306700339023399104589659405648877820453540926050947028264153076282652877789904481907279366476168715934623173357609556572823909390925423466668259541045847542558614862119416696344934518861780647802378575717368553380715659285273494808957259468906751837010902309451911048865036031096419482342220235485643263591394387856797065614660636357487328988112334013669797347348728205680009848682547067323809076894336435083798907482262162193839683248346817514213210586227709901974569960765208187014073650562818533054512292895061443966110809438627439575525523849640430651223658923527908668905037932787579977422247228541976210671731168188345096028410863167156328011991571508169532593597104194082391390320539464318642729890052971336100876215637943288520714867609080229548082620154727167101893260428332653333877106677147942117092331348929150669050937992733402190722314513140286823590874500015758299688534214411859591056604009343469942623699894268399408696656544148855276325338214415548799690959787474214655315129279876686803052649266654452174300033075924149130219657314100322916384991386612883197085595925042019822400831130573225902813487664960139453293028961192929690102820135315564571531254836774072268263656800916311203896674927976590873773553897859731340457455603350340770218528882908026059666057531826871434326094024770714563607885082475290184837707800260150416659889863476115321259201787347750908991292369418468758274797607994952225573522828801965697223129410195880314749248678514869774607146912890845966349826085080609482938436954333441913354410292743572075151345888125045953648182002201614477038969640008486492400452613775739961596045215957769853334000389514081986523420363532645222756274876500730681257200172854328576838400775979100086774806773683605806121391000407689875829853426947505104480854384184178150470061842527903145553796228913851222585878187630324290436003469157789392930804550975117559570326792042601120886712122189806490786315081978714371849466342874194588062397390782920368327614646000562046337643916940005986088433669807960242308240925114652287825828966668445201912741869871203476660737977650140593483051535143097293780337192888177582261213594648376022189136075339759378155649802032110260533454126608058086079864370363256857103026899584661783790151839193359449438398155981781107757848836316708422468956166663645668339491054950635384003653673932480498670817919129358648689016390686090057984021239478399708425749433900226152196898556257953453115041562661277875351048955937655075782615717456683366313310922605451208172046019881754900494126154802850773090939966693931848558830277847649928519897812083244538239216823006810233325272175785292885790026427741217415387873599130538252323782976734162358417647769316139317330170823340132558880584777565023579532964906047795633624046696899080307939999940429459660447796295045252728023598067397597156522395039202927558313331451417297860827222725951246845511156595536652283392887547703563361205235879128311716439211225780319319007223743245723857047045786335738569115820855368301578164069208495113627804916624559946398507060678451065009606542472672507035973871858196892646502344335536276291999927441244628592278781135160576198902158323200759060109016511131075252914351349182647106196249967455640470189455961169872714987748895173956975607744384988448068286787845621989803130113810952923742063313480401173896003298597092544479818561496479974807238705636429564583413646322622962322395717202658657749348638972359773883761165872998315603256811169830360820473286662167316498196796983357174450232607112928425272549473154242642960706856058794634893761405379891630228255413505705700275481443616712420241839197524804851064048154627996007180860300432167942305549641676584990793740961629839977194009340982620463756403850612637566032084466789603552901240335052574244048598706144442081957161799175675550323201517698428464927067357472307662457044828844161173427167820258841262933152379947456172797189226634840096760814872590935131151286348050347051621444769670363205251674516924867624790047009612848402588406671483675064886860949454659822496097232351282891751381257633988840876581716586932479871557242822260914054218530706017471354551106393533608284797966997329209263611623370476592049591215971101753930184998015959692528765088983603221408568781181137624466520615843073604592936611219558103085492458156493581545820034709957488000559522640044322786931581208953107151975891196654733318570669790042167122247331438239750566810074536288969245291196201206240160868173344034817287177236561249529468859529326092859821063779349911627292740803161629192475650950300251232241129888440774637110346672338928741802635519439340625810655081885791152744121365293777460956413856846663201027218709220551783919601227591836318652190019651302941807978972168570636347155273642068298363866536087920425708301420464090617399002956470856904933271549888349543294567081559783039138337047346665542565524262183196361905508584962271709849435088306500401600839265918397299659323975762527742754490303191982869668216079865911871913304878140578595172723720949725216214741652929124215010772660410927197346062878121628335894525142314132278134912141365355090394655317630541922511068268303500541220774841586771999852725979906771023220001492123381542112050457255018049182186506879294857795000518743349160107451843983046057598481547310185022163012461834534717241411603113450017830306408888012409196736461889184668959643047306713812922018465208489519640846367464278688710880564414003843663612176534093039473197233333385082405560432996469877295673465810803866217969359150841432929928396100904470054254367956493381817894862870783677141919832678254015272165678975073140241632977022595705138076724882726316674143538762438273297840427782210038880944364814950555563576668583543012264161725968409041511906353613595621606438077310711083511677272331044959031253756929334060875719057606480398603748446699519583249187590105707016536195537192936179827756290620792345386353107083544181154558111118296896497000676277417189796456798160889297994347400179582971297450615560423126784724320998681841511998215120979508650570642897697555839381729206778723833417807827922745533937464772471766448917972548227546592813143290442755452369394267113163516500528355616494028761254944005934373412855409572741457448376126820655412164364847313818412956758954801335525070334025161661142949310379280258138693250982228612524206164842382486049964252785673362930760076655832553942061561999303073431828604024319684867770927531992114480016374180781229930708275473475865105899467000850131486430643979513365443590481487113846100812475012414360825065620483848304827355897010094064533537998186539312496370376296269630541633316989179901914937683208604273378898954360115832871948054748320795692381438427962402650264801128982465587691930499858735626125867886587307772007067428798437705682783800646756477695625759276135767402890714538781550759827413325101089810130203472123634794028272079997113678779990194620011666348456792394624884802548748578652120610634699116552698117444543842790458480927493203117537969953109566968594427369228542608189934493870427618688763450442177967901685670139283891510063963618546732247166312647919440190747358978206355368336291389963848951760750161073811839687356932632558834138054142113976791591504961540220449914098599529592200590068055214571221099571668681024878203179045145025452182061320558610956104489558668912712383938093361632671875789069077268509659177922972990266961348810023471659743265983058597572440203900364238222413106006626396178579873834920574268215936226103739600249764798545724470435234558823932835606082738231566208943688981007410873511359228277503662224836072934095302480408960144516711485155240448836899188643172514713602798029051315845752735763156966864246958648343322971094322425947053741312309276908180788263614408898903225053796082247177406785848759388533372946762729178426591042642268351838834824488400409097616899476317633085594199286373665442080479732400210787843474504855190071146875303041384460060805861063292230336211363254531831566713644137290740243835830876014692425754090724891094406520002295946161093304313814117330550474984650581334448571240069909090727272719482927389774434498927658415663622648377357227062335740424944923451696103939965884444591593070847781017514077533027072644208560806955757165433467290145730151264477237211387994389535814388752643054263443895785532919260164598474185925694074429601753694377756632750141157700308811125112355818489085920579446774789074746064810754809605140911714705849299891903886379263228542909372331731859074062783634069012290132773477837296221469417894042809312377067604801331809606375716072016672357699973443106787320992336700049303496246928570198328831354827243744003739526522751378305208428073346959231456055104960787757475054411656516922665121590007637031560633857027509480782643564193796896851321298359306240805401365859888311357885960979409035633480628107571150400796716407242343271727529060462421933262919613567702995001652644723356776111523050251019915411857800263154618634681574782533630249554277370193452462996614933237384013132821228211875201224413389033043320795042661632190369574459097960012790726445688231968475423972662583313358141916160180715577650047037756915634532759935091555175655217405369335637757031637331001510678829100396273819924486308889523951992640918354239340534661978570894955317087039931547759587474039033636263599149448422477635404711146202661723304230173256138447873932997624322794371276592444642518673079263931780685746937414445072338759808591304170352160384241828989547943963264294739514869814802869996536637411236058598034457414456868608553339424807408729591768156819402384209330458961632388767133251103335193933172228344345574845015041346441732116759677359008918971391006095952489772028729954690114986020952763686277323308281051647844336327558115811505935556420082488205916164845075009442447656449051758723981024271465249716501840567661601498765141042519570279912223674232421128096876063633607734295127432691103725686282815163803757610060827801340781218469293893442274915601507245713287713054381181962114619850610822571323417717368385814818569490542067276395919225535403151257950040195907811208731503670402967710121760013171110987220511878841198698911172299401465560099826604751005290887746950919432417301730438603860277306416307490801187693105162705788430550115942178331751260343646585436211216139692955593145592998156056772140034444233545737294435568280145336025624642263477090074814458502052254004294148156399533327290988964749213278810775028971360082838766399081625719969966905311810662731321937307217171957428227511024441558663795120537096828262588737122181982988286371425850874116555338608848312385685881215082597673299129296748735483646677583383008942723932935598370533819481303190365499633094237859339897120767224640849464741848229400525561032984397084050986910498003987953536181962819746315443952284403944091471840424299374126817445882362042822439329428936218322970268643442954618605619848102471344108062376289730870444186977149303203343756368105228888646107191121581408784442092319609947423960270802759437553512147141932089892475206542290715588693140843253173351945234685981727415557960456688428987263443417998541977540958726950130674516135887319758028880548678299092510122498918878976137293782923013429836963572492086884799178348435662076428978311438727524195218751567946456190619702184100684128376134999885986924832756499150303159673825307175481131671493948706863113482872441092556859768683004763060727004745930780407724468112379974766669038953990558515571977259939419785350399453576219249099336977611752559624187357640084270299231420344796389357883338500615855392524217477508488880262646594888772943329144067607742595640264331017947291083845501406814085955297369775644671717785516582358793073119760514044073226184195348538792729526406401243942954679858206137783732282043393623969465222491289222425742452101110013750042592839534657043678589427950754948891086577164165046564768486404801117095161368265644433620768527440483590650047023435016182266761171317886969570833217241341516008955225868060965548361467020310081528157887746660502080348790862319422026649876575063503567641611441568162985151401535622770360940093196103610874742234751659702751976716566511363688701768956808907006264572021352626483240958609488202050434934186766518194835776899060697893315072801351305279945192997693438258140380592555783756959746205457187684816701815311496865875928542721753082852708306016972458227954382627556941862832209479756465324116278474768086687543802116161139832877921031238832517090911125296691271479532410618330747372411644987936423832066831250438444212990889049774671981128777360580259535884939226030236196500866568760310154092466901376342602830283800043807807638062830145644273190777003865403254202327665193296419929459839596675358991180838971673084010969193783898123794812136302589686514553039652506363068765960860487199989829041636712851106189853194899421938764822403834027205378219965495510257718769262192071245693544204832437650579399485639506911264239591083788653691393906668406993434391826070758489140166383095583935853296300949953645673960682591737115257818400132281507746364768096763350305802083569602755430260802621496811512327433597833059479959875341256188800368462976707162549800343258312314661844482626870457028388750117121752069025381910266494493059491912409774699682598178277229818360879080070415600609296406318700036985778267699812308837994420094490971690583146572130707622828442385314273942603428629084250791114861905791837271331205491185956982842576695798484727500246026527983777384153743427701678091764936053967440386353800438966154756988993240843892343225416231036318696271909098096758548142821810827033425118453917205092673761479229270795453954641827239042459886723995402761970873606818415779582477153540252767549555307950850421761485920196169673947404645808203400221379482031525348652046907344486014346371266730152593464400709916706596147125347061772780450513434071885430136429504119336723151716101781486966831045149597571260373377966495277751530820205259722447278302737839429892054152744288727078589536637083529629821154568994222475504432337298063561647652202941908451573410109323292552060645802052017026736301974102788796815045408469578669165932891178452552188009203888672789723982981766070210228931765705367265765185147718956413737552396094517075845415124226980673219336108655755988000257648473666798330836818532120308828760954627534232917167005855208103813239029865277044375609766384184429713644242435192748144981038235408618315939162332325714117507458469317511001497922311546351551279689733514134339396781040559738771833249208226539033504412668567174302075160969650796888680475964835006925702973595708599655043155659774337698041732684099005217185005163586441289562450537241039094258764513494124409101233337209712231555484439169963957315692264299392698724539420231775897281440636047924953792183051819329818381772670978364320378411826808624534869173016772847367101415791220685784986401052284456698921025381521886686722201534451265380684598860684035666357834658884316671123932421469580639991904573059330760579185236984261992281468845257371379909001510415706673136721253496923878734804378967950017867959136629687258312638534368618245349131403198762865950627268098584885659474130866671694634189486041908390654064617509116862591137704750129583142625975154891394091513781772140563053773747305243928963845072533894954504431757337199458419210193426833389931314440820082307288236991539641957132721152694034862546987698429578078939310737566290775099695465516983689228987510869212297366741931671285877894849869002286936758581595955832663407442468563947311875869174115770445818104671313418762925043401547949343810394085140298022701879849762388966323361208494656120294025790831699794640481340594685006570353159250048798671390800502538790571083506604380251079010350702863069758560045736500911559641619482694002277181969151486133211571862231573235786265811501307027165143213105119756527083353128051300815510305992005356240284055687749051941486771673896752446791209878447588894776873529275430948651489721697295895553508280698907488446921666548878072973538161596912317134929881170867634138908806923745309946872982646516610257145253295985615729408141746642716553528783324752925916585106026525215680369609637057935567229944950995582153451158119942833368753090737047811871954050637987003809905291655933050830622210512391306507857108521800938123136752420874440414267575044577012354121267084588974265353925530743188807960034676605657715082728624601908959562542644633047736119563508854988641941945415015307599012250821368941312391104143690373829156157616019359214138192765603138568439778409563402093759831681097325972072123209704555280186488205648090359190589818480741142775371038112737507093081181791663590412053085362723534743806805959063441834187434072453000811306653631095520170635708753859873945589849938508630633186013671487162810111846562339162826682026155558731564616930538968303909399413060129123819777819953610532646074699766376754829312244215093899532188816638550331521106034400837490815847415827291018154573108368434620624359335517541096713909987704212595231258566677963194160417495848472234855008964673264395029853093464473911654863624645331637076265904976182308361229070578145757621642546809083363190414468253228335996416999650061145454745698847104209008239179470545426659799319199654883076892581512183343646899455903643215653631130774553527459398636877041220077934903324062489651646301570838951700579070334593795740277075940037203205489990753204589033692346716117237838657623479118169366933139342205633601385778217296719467612510803205382224557288864383873681067589804886661470063719237367682968612244252530484562614211470442874574384951910742829490986107686951799159164687130363145142505427653900963788677121491223672970323798146283067247656935395353184425253866807788721016648383804234833467790317602192032829442339947359608019072129948577778816971513918694758764895626277657566916655329089248967107079747596393807221553554022567643226149292493011516095075009184070678389289512750301667337235001904746141657543721740556405543762833912294235692393535881819492701700298208926277443086143992819062321513783504379809692818468643079447089797701686033070683562752150906501948652102223855009860609634185340490308894288604406900747221683071601941943677125024220723328250618399701779892285019789869491904000475292282359436437460380145225631555415405453382092143552473011762248888030655588497836315653372423883694144038880391687562387688752704638343673647925789884683506087921974891826974439476527742022031224987443969320855228780831901442462421386970790066902359830211626345502253510750567546790122234143701562761174053698803341066998037222978209163824194621437611032919222015891764293395550775707872535607241412159244521953005294809767325524395744767306601347822554610571948732852412707333020106616845590584529801788686282436424430536096857631616634865182030137528021408485223049041643978707334312782258120290816767221597313698822696192720819605801414237488578792644146950430873089988972669601502635166061007337422996966390454977650095550384173373643562344429492908499065704367974173107062502520933678890986870733529259855138493514848168695138999623082963099390850487826092742600212479263283090258454414122287378926345028963512763032985738493833465666197814388201222353026289486305542568355961290724325407738438045276649104177929213997409906214717601243334627721554365317278423854414479082451936447908938103526529773480486500264983283100241289722384524930769051111004617992301425255327888093075564637052906507136272408601965977411599250736390599396544462085395481830814730249418000208320295645398906190256493242570998030097557787201145978237580269269998923040087947123859432250587341010093089468145210674173406372662087460051858779467275349810733586732180818075579586041465599971392880221517697408887418100454541330475114925563512120246089762970419348460915374871909447101882605789068777023702351841676832831201834400087794604821754055834741920809456300266374033810445927384745955234502304764213913887697216085084653506983820110174094164155189908643600363593805798098716789650744071614886221790411161796727283999592028133639162043679132189653769862474663686560677693717437088240594229806260138220056431014890186173294260107315195857559051262524991519963859285229892665443926013414702955507084728122018963426861143701256582868121038794134852364248315642531540923818898520513400229534466246345932839107993208501374067464059877851099769008606083648747478951995443202750770424370128916243070419331292758802071332737444345592934651494930059598461263076149897327250274475470133320229091989640667652675749965648633124120142572819974061797647627290999469594649666529128690505555863824397147450464534165432790464883581700706984048400143555379063024646594888163242209893034830179370967164364591245725846090194416359787810637220550295932443081627720875466063349041390143986666797336599206246887713517156414187333120241392173925112186401026401103859736144311760414070207373631906406031932899698466941361783129633326437203059922070620981592174511788461118198386157631918386155719556376209859250775711028743744284558141942415534796340596218340364808213203004547329901580984070607716001537846780002914581401499607172218450610887426731504957289029438970282136888796319432998569372447891582260569106929458848268812591085094522063013149025657050991288449822715482825235687892966644577704832077256801853892037805044003158710976446120741295828683185926114259528699669321945962428362775154590736666110643187618151243249688075178495474917180666307789182586931457810125153434074780514018033171768936781012739890342828587769463046096887507532597728559402740746658448740324874346566273693430947841451038637490829017940115354958598374884629313128908448490168079918307043893618329205253987429027785851930527706556071652240883371704573245725885397030488207478153878063358506925705158965337547764556255104348569037549542500075018797949007638693548616584075916648135010768264038806792513969178234632736969830347967935293741951213504478787970860481809734630305260208894702516989976181689701114216952091655512200693328798627771171815122081906259863188806425753620497687731988266450696172110685523666529591948072870884936156534173901989846784490113124261937267094587880697252131921908073523113725636425370125375711965113527450350466386516727199846340088755770296523272982743328972095630220396196727967022500006267034158325513287405815065912323753715251321472900636335833130426601921313871654087952987378319060949603618374246768587742217967932106230484179635921939660351428738259653853106663955241860729418908868577206078358300112207551849260621724964223935893719885103350259701176846521539987002712353305171902891394375063835887588125796783207096056168972892492373054244913500543796534207780441942792444938943472308071481809293130732101168094037025372686297575882103834706243695800696189634593478975926665519611882279292148229433243169524951465169573852576043335818166418679620667762735665478547693480539906008881627075922793709274488856639273084832369453281691910723048610575512727459614061419417102610805349791408332478792143585403369813778487167434183563876065269902984284681573999061867530649870639332612207765617571156311973018954952878443526202670713507912089447149777868805808453100417411498845736734168982094859841993702225042833026357260268591040104916600846916032529467229129757551175013631073500334258322794768342646873698163297621701805737988725953608741333985985265040674967894163579543011257610521562894613760653384186173769673042466933345454634461224253446809419438462876595546589738289001649653551575082635685467025890848528359553275286866210306391649191812884696174586697086171979523484913342981941622007881605788551495208419426800369890183306716956730745055328301455805398121413196265504299757322062238030885246629897500326607510042524955231290110657467455354220121269831216099598371968059477428648667305062408541865961876400151120828178664317846249789130245550666793096575730515877337503687113534885113580620679498477275519901348699339875580998231387732568782547926989581049761857368389115623362848982392700746401452891628160120005698626589430029824138131311870249534902566770325813046892125726111682698849782608648700713877310603402686911256361269379595536039149843519971744036953984321526382567164941587004083947314209656881281716294975779652994854881965471664773887982104148654142489907923083135875334775564531625276485305073311184024895222934831699636181062110118792212386431416093879772296499807137915048948385929021891957303822009069991458582948683810144673450581427408126038160101985941756265991885005460807690170055289041402931304731075816305851144785745875911614818428182707866203438118391206426970147514250875430278567484280313595209580563852233677211933743653456880588134970054042904519098160758346237925077852666430527394929442747089786632922787032738963962376146848835942548257242950064551238075852555082828911517456917136556086947642869537612366126509322599876639191946066449619138496711844677934636301044022729387812640835113380999439368191400314602743705732278931514328534779957096647039438386894681410552246457649856011910592343161522260852191547789406308935476941747278258628605057049623011004460616397134937534141803745941776258412825682111922699499288675905519636852166443335951215293667096060569245764519833876895589291068282902147464137768909936235815207060940163144050376205291852971797695660354252455565823515353624637943235203680079535853338418878368266745738669792058696656216073379280380895872520214164882151620814691219200429729549440887733035858261056958218269497923202760924666900896642273061577598449392478760460346335856399889954535387199462683843404271836048753597824426162976871196210989186274180001211625553412944863105108186808314525177481836150769651241763951357927035211382026451108928453227930903643326716250344071533583168067465664453210024350767344194410084279952500858856180338990103026982590854108930685077935883669070047593696136285198501667991529205996546657608057751607473634218151388570214144836491137926771835373799850905760276294259169028380632478130894935293835310644895219072172746761312608695514587381769735594470066250448388641992360847082217460730950769580760356316625793743790214579650253775779674376401121399690545136285621983807293885394180684688648161687364311409812525308571367533700418190244580890448740429227302212181623923609207487981660406592017759649000003671155356502345136422626489276119430420054366341384920415145940301733789344502835109477879341256060595230399998692894926350133207708922051372610660201318035970879104672804066367322882651591130706277501416730093395900263984504726387461523711604324824127290046154845077617958805377176827427724152715459496564180388702480906993946078858525437604357214866502632257719764715871916921431514270844580657584858701046199850709406184831995562836722366564954720974406702995663293757442466011295873233572585575280235598228889709890914164787741906010342085843953153768392714251667775930772573783054687953685702158396405831549990229779603718441814690285748322075906682685021350330791131942036797943570497812662981887095162589766924550971585324703885310636177672524825883892520511366121316979316417003078470758782307364938082192563945362427741277593721656420636079112316447319328977526380331406089502259680105170269763768970713687674292156318512458888365436191431492330684917040684495291882524776883605149441641909578284260816071723159512364521470995073544257239815910601070678499899794945381517036127017604770364051238368474431503762486376706131537589946020486285350655066821110097770290449225042922747965194914587465088950869188275815493977168455642409480179616139004323083359040310265315497418768470137687528350346723756233747546544155163152533055466449082704224317942244759562189881051970608634244011821770960141254634324051783164303587308698297715797824076072122875502837671317828643338985535456614952356153839665817587593781584805172164591536667669504616167520826456712083342187857440708157580770359970089400566223951747483126829474028676979464385061020661603862517504448805122393367704910616592655381790021581047209062407232674272653295845016738790631588263718524440309207600528030751158861320146307197174964548010469601827251732826206022412297512311657587096413962291362455660340765148655074511841088424013910508315285803848909380100679372172476921193381366981086305467462807403028499366254916060691356826948890064685880749203011336101335991150030360856296453851353216741662862807892500419165378284013024604805394342188391399698260524715514067577112894523368659685615008242080129294760409654724330139818413125691913041715609777944839806807051257255074408963571858660054995775782524487482262651963275499736993079428857965947933145629298446331612229338567217335246195842323394934377390154990818875904419291424172451524444375201990134435423510662823424004664441141310463634967556945981698442905801400823323645508746961642696797772680877803391432273537433646340710189093872248528771739726775360624078575210563268541231834473090322857951401661121512579785793146328872823199646164682940020407227205534736977956278356094266882742111662477568839084091030314399159186304095939952260050866922302334101521045688991030742513038361329259187421617179283671122683205297925861323736238894249012135391350641134482942640296468308906173236879323225744234332638953902502688697824664292090446331011983150297156891430890669598935694767066225922867686647584362501937511383231284177403293981550092368474274090186929124500153667805583896642195881678191522617856724870009634386021486876311129817928982905699693987870846790124673304726802823034272260220458907211813557968941399464999930181225538635659195361619448390708145194520524462937224896432365084632578050202890772566700041855208830592715134574978297028303519369585963501899588239703789786644257328821952096159113108050301477683751836713313764351575483869166116749376255128359282303889971732716883086099188437632041783069571488900321359593875619752621553444555741052534722133894838045828201708076864739696706127243362910148985792492614224595306983227718153851439886749660135584565408453638148647543273900610409454453898887899615912709835523098720090696811531621952850381092261877314023872798729532314556158457294638987976867899703990523558581849124920999282421074174892342752396597555307238536005640101311997089195339543832650076671688464788684298182069163662444255982886178608725304597192578554240390398441078317627795319801179307421600415141642391745620116407676938779297951846582179425998768250123609735560821901878581964454001876683457234966720612404034304123200690424000447817238554743437777450012256753982165614552850651183759766005157165231808233351558840197064662678239718967919900074716823198979151250337181648871518807749567835777685404626620521526071726842194252416247695545764745495693340396197723099209019998715815941921235072853274829110697636833429820357745385751880797636113375802073140198015922286750086884073357172171084132293834151089053795597199218634396371416103801394913638114617708115304284426037317276954568280950521389103160667778874934580794664997027698609929057693421965930814490126107857714403591692054940695666748557279388728631492870425418920140778274498112771046586124267255428261511669654427889336652640856297473131161578318914319678784147572253653628356810425590511393937072005240313575753001523538889052012101232508917358514404784633575863554374086110331725318879104747353067430003096607858111730666461044335783735243793824002009586795538314899079903817162140418121475232050931312613393758743888958643670405843559093969837501412181565763054284980839798350601823503828959786020921599165676737118723640364337337999226226633404334478996430332514795520804774278468642856828320213665820742057881624901493158586037577817495718985741837497996243850779828762911033158693124601989474761472468804320945252654949695347036056003371429671852022604169794050353117725139740089109504638357799741213035163259040182794949056751013229504284817727768924625346201848240005681514694326656240029161381707433704414392170342831707781245964872375082070721334007709967571159034433993798259874785156485156802443845329561133276125071700466849510388234973475160396112047311346547603444735504418583934417904648281269408928842635870945508619530259009303575233177880379685272237427105371779708608568215129703574684748891818974152372651027459212300747612210606368982123448911570316854771298074476796812663996969621007281246330451966926842092185742896662165914933351499433818558011010520062171813723617244483341832737069738156994826774660861524326224442345982641729154395899137588076234886151776534562089108547301444425114759080643624870968880131608785720773799612994315781381900968591174915173410224814664345900178985658614555409777756390041737483307950829992710223560027117602867112850630800725702476922364132537868436087610785956478870284007469711716826858531642293902505762402765882121991966665833960039088910171439240281863311654818088844756395527644444064727597039302631597357277179694948172779910099208049391835007626684918305294897908481866421441213654275407362998806353209355209547698318360152439588483721398623146509398723598421362465831509062272649688026200770155433651915339395089757207643107154800847724811412501510843279956152726338230344835055472204771715104384313357786629161824872412777160789361723294621666163452523613481448159856500590213959469445215511156009786855804542003985001037376831764495517476048147009423130307018413822483559161721687365794066226537769219673771250427661897736588182127132784342288191312228462039254614376006266370469425451423103296081993992452223857556522155217273012731751633821755648329771299817053170793200752550227903443299270633390802759749794282278681314287554519824544052129398133192819648360404471905465158557532797865739991020724309238147386800354524691833618544364133360476741364648488207714164845520161995207210862999474717648947672900379070880132748759694849778784107431768487610319145797847511478276106532190487651260431887056813827831894233704620616421065282276314593067018810010480503960440782715467264930931448607265447707652602174203579809367523964703031107413272709616281683578092945613009255737662390462897989501710502637298927666369453760263366672231206283725896320956620535028841453808186419989803183705155802900210769562639860744149844957106564751357231004004555128047479206141593615830793766565852701986570063136381066695767911285319372760180004054925819027291752521148380790068331935583185763208830696974207573485073253936165840581668863183136930892428257145566829803151140344459679681090035775894210393866505641346195128258268711245683615441104238130042838169531189988719520421767581888418371347249549488998319519568442047542201795582959857558163437066845669310529800587584866204358494478665065047802307936047060994039443398289318159972382422542000659864929794384514612778940288059875487026364287956952773747264424139722134985897784700803168035423936073038167648647404048665171882827845670985346058190535342971061470920441146216636152965560834591075240312849569137267243174202951173171540486837558956570077659856335975298371912655513979044237258885870848098807116437032456084440147465926846419091442538222824902308902013587178332624952392661263676092759924316502760479082434735038596807072262115667554632693960559575529895408911690637488406959678044332692365827097227422624189173104914563868425035441468344532779586469693370724508082902880128500817237345098006105163686696105132929427733657506322896326813877788476059610590922061765194559554765428556220739566556625278009050894189627730136207238186609661165783702149995199472161652066343531053014053499598195360211075171938155848118759788391066653951671349982079916355331916495571043036505685528145302753998453681319878410770631698079296454030433946409673250973510990456503252299443206220443418394201199585609444129582041463558766067802247636845642556500961010082960927207457370834219474306408471807046705580962198685638766081337395278506830058348083271633311856584293246608844654576934919107725503773704079584352309988134361884833654660682349191338524659895276164295460126374319609641811820097402223720425320291614980602646670402953915084615017413199915636884954959995392208841413064939075934545180800714724483036534904103529018699105135678430269676546074677640922269980270544507375795147439526957737738864205955068914626603899977532977239976035207748826533087220734409023205697034158087373795095305700133727795879201366246674347915996722106338709083235945024384102610423368139803564866731068245377496511261019166916684930724277607108921812024243788135895892885494883954583519821354669252899234284887594343721080414356640268224924447912863806790069657132748682978318506366849149458759865555183100474157221357774156750859567288997432207221700763678912188064748397709696052910007336874442340513425378107085845661377861815957759104951391029881449105292609636597218980340722468424426160846989781014434444813974439816317113095919286162646122020025694297493376876873874057238227461832916308858440536366092251883321130378014114669581802225142341337364267210817500838908098888659698152821436437730050660591159922533462571634051437061235298117976804329925784249932289651534701988265256322255383972559796604177709740811154589870117931405251854076878139527086472869063004689304014334107458638475527729382018196864349614460054528097381940346884208889741508841464434354449525410419410029378084660820733480737078007505795453237717032110178376109052522777298040729348554921499639593269461319172853342737199256335417314759571897540137691713987423544018197645398077457498353426143747083138444405420568282607798560909486450096929701693477986655707979592662073080840716007208014262875389787095648639117559582495326853297231466218611651246878478085375378863099427072635173032798452652274365791970152697289074020215134690282756740858415991554200680364472840295672047711840213766563695103967212389328156399134972014864848564330679370159048613410036223804500611209209577897707183831991212293365366911495137490048594952527934658893705783498339138820040232218511911515056105653510767072562827138076358839640305840604378530360414013057233701383401042722291781207478793287030493840640471689628900233828460711334367195581920621203855343445179765461710720895039213206431339441404235530454620681641621643310497185451193325713071006862863292172862466666438481415340082254673133905900742182863586034315613711214816064665729314208310352107003616166308972880157673362296605904725961859283168782241598232971008102961715530799140839295225026720242013641430793838377876248127711417793184551618561984913841438211208936068912385378515281305589728595893317143828926665950919242504195408343737323689796557051243485642338517085115316734472617197667575152857419524892011779297253673435793679344085296057192718198599392141221107243908060432126059561846622649266329907939403658059999487807068172394207991972394418775565489309782902321555381510167218734598124713533097959672018959777850823742994874824803987414218214102906621662174457723341555747247684143379498848842639143457685475000890539573928330296725703318681523002553066829887714515483833628208675578069795441298318282889213801198581830498595171756593177985300473259065007645276162988281018770563942502722469728518402402355179935425323923486609120014304646440215583956807723913832214948084316700311200797126548349324344816362681088856797391074670286016095804250731597794239320266446475843645483377417837917510475556901798406270159713480909537063332638798204184916018405257181393722752486554726021081362132666428086096910170873911707057940205326833837479804675077263810361630619934264389646375923090782159683710543382053130862857712065263019471269734689032907351252879589878754667039909671020955515616084307310449050036635885731006310570233476701422983487570248796279503738720998407920647007000156583841833310326354794783010012642858579988651442386952995447034747455715192283453342086681240469235553247954825884490290558628720259955476023675583450824649279532785524949497152352995777156511829616553340523457866428328472512644492688258339364840131381715628179623832198551711032259004654682605224992053805076075096822166723637282062298053018924249491777444970572566820325760197373050305421329957755223095203209205131649649196928009359576530967126550087632842221271049626600224964643271452579203741342488852594652620511137709522485089142853611802712108602025606792651025919355662717232083295638771743116897558594001959759181218230329138027199922999443800757176934053531080368866326062063303964423205131724904316009688540769969272609388784539080942494626449121768645479612899702797108152284245720943730496160277512321797932832464813802799327693360900208067967548162306443275914303341370139293721108640082824154039632069318070723706185447382740608352913084598815068900924255018969420833120592892020650975847778681540517437749109801687084324396198364373445432030089307543339052353606874413112648102713799665763727350214247838881185327137156356654534826325602420308984946703066065797188045558640288949002965523410571283884664534429518615678787625069735068934500269855107738256578681157575570459842489466091892243736717361268553875949620884609362492270969831164043664639773020566145837032022595559463023685520388360416134899465654188645498480016252180935671278010821937411388758744525503564748860127196309523224209126878800497441040258169985013284424217501144361577269683708687624056953051461538843512984026590047221359017285669318999105001159617484015016819729486928558292259985778397992542134615568553734330990860215017477188558160861407411190366742216347380151827948056462363420311440692087986957063614305703335003699601678364036245031630329117758565632785936362767195739726369420821252785962711773320786478294908587881622679787378656469310128332755330867434508520054208319009216006174311367858588244762000041877021441780359473044690300097428251025193857452839474533127975970975611039053606890369901413409129098653952229257256778165523279295648455656115417898357720626124467627107183339971475900667037463418774431974342590580056055828314101203002196309358125496525381122218919421098230137450472985818850609384273874562734735721724931415066455361665499080921937525380708403680971055805670128586204465761083003073210690403659626789824809957063618297919404430554537559013866368997206254358138836144689215223034340557254774011157489290677283687389617498756564711490131794323600415816120679971228491368485519639586697605867638998855378058436690310560907691731731389254561178741580599436206057574977951277629209236165183338231397873933014336707695719718078931241368628372862172503027338445723746732117961243554352580790525785464001405129939668670364457380105342750882282428548800833401717405471199621490787501083827692356357458079313607252331892704680234553571296770640132070555826694194347198007532580333486219576531803326618089651008928424654893181108438383688119751525237824219397699478001880496663087777573180293728577628408512301105174033785611345340837360215774598283766065312628197002456643914111079107995728439563090358533857087188349315180269205173225131847053314046947525966585493135289490798074170068610245708334186667371972972068872750419789192815471766133262605327030987715868801749195249764303781940101192511194324813623441082870900193799269022022482978998360035275210639827467155468783987937947493958569214751172241011322347196020982978427583320792499430545373729394835808233137912426462539524728315709648188823465855604828734399167455475089497550491485660400345135715874260889167917909826625037226973296152986719308031892579651498242095038170434227845351622391356049775808838100803146678547166009742505005907984536245299589209375810822540450803617008310439723917977884335273299257186867808830964304030033574504095210427830784894989070189540788811419645541543742084791502090242663653071343290389857876346130858001248689830728585681886565025803632715752896442904406304057747096582409440950480715939712545339358555579414692722803677569418012516674488854639024472237559729453239149178588180045398744519812198819488462284867088593345241183642049020453619322699909563297388425981088140971876106405885984430813497293985095539057054004542655123790221376288648702663584218794985129676683101538466181274518793787344080794499734536830470986047961347789856352670064475649276867644079050670207387001156842049561201867810879540875013841076928930440819365715797390125082109103176244431193062921789542163000811553440570870882565917328910286115348808315376804357246125024899060624452181659905164797499857065198652106240835486007777218088752078471245506211619070440747754977838735854354644341795163395544572901613119443334297999069378073394819048877155749078949312549879975272072310685732638677210338385429410799788514383675041711525361716811812571511694966204535799372697199793380579712429489208190000415639955116952997589833109784934115554183985823637778425476135405603119271555590944086642913331713819660978683366469320200260224412108277503241760771041070412578414908586459043199377005592793967674612414738399804359152752128853673498242707907853791530803903572879028362320650355553895175150990810424415375418399859522916380917626869658258766882043877417828361549160768060902028994435754492670848209568340593490853300024328223446499876644434197561748724018110533689663997049549879488996467786352069857173024374943267917063127564436205557007120373750166964252768254787050581614318414463028754798095740681437188197254470325716698731107653661366824146538588189136222864691013631569238418058991179180747275203232821433698385906911022627971558762616015047630493634341749955379708234314875621777203423605256808855627871880415057639602076929949310542669143369525809984150188053468849379497087807600297775133629326628523165024768484364767634297354755946725211904766829298441454214925393811433805286214513054766722656505345964014441829974575612815788179585332965987464048489732717029636897855694432494870457878453352427203678932147499401849437016872300580504570246230718966351665458888034034545996189430518295698666831877896694460695257495015421468700516927397324116788948276897598881610157295592700912102227181346405564673579784936721974216780752317018262425091003782937710569882853905598848195563901895354503784823306413077543535275289696824693946280818477836283225752578987142360572848198737159568975597583251004666560468202808354540712964480976608070010721431623697731166431185532080935495592101104224853848799798145447921482773372700761156643342647702449760205360682442793110730021060041081163823093408271601416695625726883647182123655072315011099935652249601902899241223964348971743440888277391841672596022897226818651706387363475813178025169704006561303923055243195950445168260241286688697263095356493598488096771268757972723309174296430855223744050142815983749590670735754646433863894503870590172978951146351913688523020326632190010421752138307139678511461446485144206038362511467906292822800314347085784242543913951033534585243134171560506142236262999394247404986426552606566878266081273137455803127723486791209440691204139090222286884806427565233508647969063506407184261888765576359411784427082352183572181754682378197227551445501761339219588588686454449492976782715798858037940591047420049273330430911601686495003992064798994485655117038585705805290908824269086348191362854689831550690555238518043011933575754658943284771391591320441247918370952814611936912956063463945353238130484932140353635625119771517426663382084335652712370600558318119113502634361596488451576435722992639406395300519906860502536231572645989638966786645879687943547985288180158798895424518741621900463365804159334494110215877311839572465345821002034197706782809337274058145669074489849692427745316596518613477264345728576428212164775539327317821689034389679976495343907596457687571590935660852845734051493723840644545310865700558834104694116864278238397498625707621352138475399606163501350601398622418652247148151336703828867410441453784686033630037606692725918935743675877393482770322950487825348269768343403420236126556263661393381943341599606764717014521107762215375715383168107317047268040008512397895061908537314418586549720363794504075404042149878194406334338721223713724385793646023279534552324733007342362952288681507395342402247776512353959924108038434159189675869798359301250664162808307812585565917981329374037916609436090811339978285850383269090302690712643182958600962963322723551461922695244257667885055151610712260685042914684751931461495413762790512597323040758904397979605104572862109052223989449202334286058635100211788134020823059579286406308866337149237130226544856020292284814708996136828118915938643131759484437310420000334693376140456260877757530805551368619352910157630529248502390026380667101717532652350031270782526798948535710259926018103732043428767551028324891271496463877396663217103380250622077641949161586072976831121192810898636461883846061468660128878267413855413872295772911667821674213498101102743653616485147182137629702582653242099657075879472287626016936468259979179729705734097144966420146898126286304821424096556653144990325072163019913080048411844125637814779720030579200903171476594017570564893447931603765024241980123774814881586845641990349452285314518626474463116935410723630862217687193951538666624524579622967403244240741748189965080821719761007744572976587486504685305285043648716509855415824179481193780517942055330559371320335627736300804700240532979328996377149228248309765975765236294873852407975047219262473397126366366235459075242676313973173870466714633821480979158364209820357545928787827702179625447690467883814172987854304566926131501199056915319950046142328050636373216323005836989152128029627211749298871494443029413470683030020855201505208439215095939912463218378004943577355449046874447297201956114608155950423849537165546913046948989370777480122314466158657393538131488827357366104505816949821864693445051314449995400898801290945554960046226513584778960482938551098650723437745563660300713448069463170320877851156045514140488146903778181702985379818904682986534916520026299490923953545936320508464216342916573957395436062426497187818967307960426693836195621126210360122159155169103781515611954521624581057309349403458780963391331026945101338862182691775770792559373140862380881373244068913032361731845929828361059644153458499785495342773086731527230990262406056388425520068643271886011204332442118277918597952426218700224966979217156323106662474036690534625670375791560588460934266402246953387568773614725447267996560009124604269442121325402884509996487761833197038453153719764191156049454230178146718663236788907639469303372533811984427828600800700215314280679119801051121995205514964552772479167157119921021261244440942854608638649955894587371212866587478174568740065462094452712844812269899128761597005857435597778956041647552419405948135904452512532362887731334480479025987558900625384160788737587704658841778270962490402547080299978494596157919716201157798865182791573619901479540997855609342169885022979097051164048036281389610308228374382336564176781820190392886758452871226969751183085010890877156468559687353762913333976872936886337465495952871125296259035007588830279990045744364910284948812026251942354310335191318099993506808026975370357082167390101785348214565643149531232006722480747683610158629560152001099499194097969679831274786077144117687990368821420090848000624272233669524859415877122393370931415991748727737299267351443179656873278093893777655241603915297626955438330913986587600018720034600551960294156069728518463576960606502157592868020742418934718438623380538540636083098244315361504292050211692940146425902813374470724194073704297011836275173594846438782586335758676961013040720143954848518495276738059361214639829382241993162710048156179041842002245389729165391476418999032091105460354766057440727535519938812908667410817461043870437240912897785878390378545573252117700286119117725589753151808521576689019986389425636487334919562518910629510270406256909469888280252735644118390870597257555470710604151334189558036705135542154796834302515510976132893674048603176523261924191208131817642461806789562751666291098656348606876156750499319731288525039957945838602144367209026035333598844389266766491817629912677918418756710723462889755715631856048906307410221242980697163977990098216233417863365364652619926670687472769996688285383797983904152500377186670303756577643235760178379539011360292258490684934107887054290486857270469463372126168301581243140371915448776564265214318528687461244969007510044075081243525786171093656715548991301858987528436810265962724348490393915521774401970489819292835495808402973462958509038297903091831554234035076002824537565869006081935457624092933416414266394786978912947423263853653118305246716969457722140760721340573378719361478604546426811563846228249537024796797757794582933934812044594405210371315004368705513677955475053898440417471406453654067638169204837147412088779939298890963776571668409317093085899872320375530284244987420966366508370391642531040035721334628881549452694159611430335942011583684136148528395872414886915153288153735846345625688085053177279123287340216899420595807056411663239707833558861169226867406955808013380380674875656795203846636415911879196461779740302010555566620659321352177340477233604401785169883110575367664550036221759996430204033860886796465160976393690652434600916335648309648276609095173594563303740297107843712777491315177398352116481182880802899597838754774846257441789540176179189055988573542955819941608819643290364517887217678123399314500416873872150170575523824732910674796317738011834299408994489514000513400541214484721870879149856468185962975460320051850596320082124717224273700722499253184268058909356785626108207460808014162390747550029789059107996965231161836952232655309392912043669962912037827855326249148680851177870308856331940637595344476427902086753353217286586441225464914476525239538046138266549876555774225535129567380278086746597057159390607284442113406288972903251443599702925223839394087951254117392395177421987817144397212947172201241444264027135844633313723040244155434805216896606194357441081181005321324726421220048267922713848593312708031687112578355844764091308096881191609982695491343876497393025415492897756673539937328138805473855325236972415333703917890313394457161746843889277622412492632781520704562438805102104701986349953943977284832338233196918132658078888619481627295389960482702647651778971025070873572767375499684329765902539973459901395764885252486807660803521308368193550228212692584183637508478323719299232831905049553953686951534986010549779135418825541745102787210788825267633148037533131318712221984049950483863554518142731350391840981564887462696407527177656850602820112492648703258882686168506787739137530989859186035635148196410241252305160578752435683765582203138913781358268547411652211724523083675138923645293970975461516390959246399484810966459913528001101775001437137051243575221429660943307522327254347334147170370039379541396724418566505259587117144968323388694231281749587344287860630593520201711029345631532068188532716397553483462393041563145361776948046610003891477020197912258759647445326984445252747406187460103993238078130548910856990943964233118487275419348073302928661411376088040188858985126892659935519322348517164513113000816740823194723621573553215364216854088590043119339914179354486769990574163887719790390221997729578957011104347061551982257229742994081331441199802443777540893574111608527828036859271729844152478328565817148766376398054787548650493444254304924610930842169099244187605243074304727449365629284483833259768487690601957961279656128622472197870301180988618052606688237428005103145757656330355163744066001328915176629561895491097509728733195375145371719514638657398085808873745802788120895725951298528948628884244047194012547076018568038656673711997577764635229328923933295998557744661591578699590674612009017265496223797984934080077750599076590762412566729235372639937289240735763126170728934950172306641944058056805920040629501230556212761395399562473035236381766106495854218151296538963834166639600225618001213840466880663160869671486248057688246735691811128410279764131820101509261470809941195662624798477313601301381185196591073484137826291034270666884976345118414110675978404334125612585969238263357733354276274717452406455750702594809882900601699573509715064935340979460384777865387359004949268671467990199266376295871038035685923338960538180805749093750752845555582471486639135091705917545391818365787569745208711130367679001554697869200268213368194886570117153282443215135813332548276200976747292566157560486109941622757790568858931276844795054078301025948055079046298638275723542268384110736205614638797925588641243836230283415164602947330456058331844331085508114357799105021674280811378172511256061677834687385971485922033778008519232774494906894006555637047883918130634940339948651704408526078220876103674367140248760086143418452919064135445517431745350132594999734877297058772761456000454372899842633033707070866359178790453423244233640401056737262138005236742248004136960815857711279579581561441033880851009298108943839594358123657853962805972783039059463871133808146499994406390586732426159627066317020102252352649352972826501291624780919728219263179118013649003113651697384238311717879272916969625246971285002240113421983645295032637723695262589825989267589614754899989448170195418786272243574592660289852074290485572303639927689515999344020060138136743620819345977561480180073191153856609670801944055998798753411897644539003316467497837513169700231155396648615703694395388172005094280458797422254891573562225020112662802261289981863034138474531871808896970228507459473824775382630067195800896197398787824188685722765017904402798264190654329325313234385024778536461327641788121055752129844300806772985775237057914700870930622616453215254683488379435810812809725538940329771784789517082300637416611165581253242407461544171449206584661757342964107280816385958352697399261111492357093600570795469199135035096295617775859089960983586963316459891690510985614542796876070314168386369628804479478666481283179656127715701959731905788462568451890226541400534935658129421356016311225042719690463134157942379236828821839617768836823071491653456755963536197098013769149910206754797326486119894190545167639067995567385784286606479018836453131736230617507913564229703798901652418557671344897518211412706828711524521895895517088652585853710017757529902639211729083442533768187848062617184972502941739641183173676278823931877966274103878827687300813823292557714087976773853619129042716469602608826040443120450007447741246674635759776926596828525099668722126686995023335146706363952204904724986743370898012688800416867723924005622891093835861802015473356106044762628856426081284096608766052367681259132927146368540944541726648783998333824147921551732548228424362472698449475576707052130087780728333789217803071207986945565747328376055979332956299565468556324139643487667489338821463375825466085930527816663217920228992166725980270378198487331903490716247779105897686769717877361206921320583289640708681739251226368251870554298749023867265305785678497076198307574046633116906181746282783312050231896742718132591104659767562976880815356106135922845789894984971384717242895842563317375396829731001601102021285579560532346084831059242912590516546422729543542181822927329930639760932729157434749948919010355288107554146999054971130096471043753866025739357943939208780746500273815001372058660871529648650680278880221811287159567738215851687806961358249116214980321990880312721641402102625372943403475459441137389154343367526270849192447769284321579095087921654973021912182068976147528115665078803380626410493204088509461339270268499972813971585165595362534358753518934974728247463936065463429455160884465596992929134229970849013216804480694251143171234690305812306102916365912143830436351414832749586275961857568878014002359075921519522244991596130820276681206344921214681788601698959831094880140349312190191298015994904610640803741338232958601935960600762670569735605749906727058210119276824143660498633861546571481316981420281507220826724173583653807170780530081034852976615464002532627957263707928604445977464203914038868223841787820088168697553901874028815787599357977420380018534847398770350677638103995470617487023381811709124208586905237854752665002522536085007116034542714602366352622831437913779702090841754632232274967495204656161313909445632122299723735269948860850698106733929343427290736135214885261960833458148416408309291729668288002624163063516343076403323903529959247696664465633349518871435729819241380473560607373118172407817236049321955571937884155677032987005676922540648064508070375492974006534348141931675494790483137885141009862217186493186977657819790505953502407761481740163039223218749400517633166277146867590584338392584141659797119043065656452925502149738368546080786056163523543518352628621723377959635873985466484351021357681240283387456049510406047239822299418939435306534233300833745857966704453171412597384306439855440441087311457866876424932911075745819271014956957048239339325094712179062170120506442258912693755179153590073159885406004058485321960471759755063469696274867389723024276247307881181109166659392297211771953611884674695238683558295000898399095703087905948267705974931938148353937015988574250259878407060855033081761024980274781892775730104208338939817250608535145978297503859986955995094167734575934875166342010198987267440570624162800316026123182026176241721957138338893260303240008199076797972310840670300176577975538135386113762623467372129352759303664933869638737726527496607170921401572816913029108735010875282246092751409539584679558684906201555501109681334132369712977112945251604159741902638269912640528087058009171083631844497247996950797271989408323935839702527509470570058112427037042050895381535163544438153432365353060780686285542534669399312649703574776254214744973423514137188088931706754011409593037700157219260717482187819367802775545200500174055153960500741025448021286944636568372440913829777013821144082400122862582926933825910880422250539215507585753817799864264492619596154670347394006126967301561740109725618885279652142432696569901896715572713567182112152986501811225262010709399959931211297530096035367099008596534795101465274779485615876785091338349760754574241277487975281280521119008632038389904352305060504845773851227522486222544579995339024341255418106143151149131823912466465409008942752780837881845523987911270432667596244098411891661459368047624575084690681434662650057696463368907596666920377454774967637187192596674189489472386064375061964416460114190897849870426220162736803964137055657647448144776503992653799887523450226597267151937295869726087393967714777704875417845829997558747336294075107197213081442681103564204277671574348803387756628619759530848395751923709855602010431040694057256931572509124507142298385022113573818139773869122596589933099008326842485217257612495601400705204995974795814312208681161812837423668910380911787580738472407317497972182049424707510067560338751293237758318890206030270965827306071247669646038579315317771209045225645862123345702353119927326675582755393632405175963901464696149596693068970001848088784519098778733843129935159205622191937189878188378445310795669867449896182086991683916983085760784247980865302902681117840121879326578327592881882784601514184962376456101029564748770161793153233138857316062094356041711014849277392625013533923819240633225262858259545627638416378043792989186508125836811781500782872116922526357877096395249965761808248152325495905299358320018442857666054459438886428829283192795712504948590993868381357095480560562553486129707467840906504211204253974419668196498073895565353567808684129630948855560021245674309900286706344944825385490561220571945734955711376556450000470274389422911376734091965311537990474683280801924811139495836062494664126299722845593591570972180683596605149719447989744939698128154724993853647823529599663701367817279927980327107564945692577870414441985305543512910049496695045406518989639860085526499758730057125903058499458424370425272764391133641324494403837377700531781056737465825621430217033230217659012093902171707682186934331899534586945566900700012130375069789765182319911024805045118172019940944314163835776536947335405752899908510830018812080330514219080431039799469118136380137099929997515193699066548131502881341011483153813379429945304322613377222999960518294782654133127617237954551628420900443288793733343190508194036672300507258769436969815830628542448918676689156336825762701302553366678143899358584470671668679009363039491841773632126630501392234959329875783499584753511286631470611857288172839499249308155351368404669160413818979063277720667312708959347754619292417747496656841422779425832236301594397403950119783378293721096014736709665954709679415625133762705081872646400946231370406427778097103525251385925267527271568464456118701936395954375115151060081932778316418702163118947148310519860388945997434863389346746647001104717820285641026167803355758881075726900337441833462372370044052788832488455381424016649010492232786543284611264554252803000410594669549523707859814486111330042547958258362799999664450633700193832988371879752811336342741855696528672911040985772326361775348293714522692788260419264742209594259963089313156105780774359964227419534306023226422436031518399239041296910388950100336605233375330190060936418201242100875743904804391002866439526079766128265903293759652690515036400986153496322054794512709059622460160466112135149770424885381778294161103391000597297331232328294084025808227769305232869018552632572277540618559939410245471991016865602002550201976114954922233814777372836873818807536455604991368921530795591336303503117134456416552562426130916527670206474276495447281120282855814166083073045351410177450053756740377838763594195480293766917552199752452057276208552388490670401241349563336444821670081391849513716085208145681086342944319216029132370571178253727479275575314539150261689897172563882701963352253442847957267102638134755756736667860299104535974797574715693368632446497747817505885582510681728441160908931662539627735748790760953809867645474246545707613686891937122662424152541223389307031984362958611522083148871171730755883546485323605030222284700523273761217084204034754658504846100884936279341467369371283081745946877720388207068244250052483313500602340850029557589592482544657196036807855759626503399149624467538725606299113217606261180056761526110490722508638044953253667383705150297843869423080868864577914700473423948350749614216125236410567310881173258676221008337229742533756709512135279584693177470139342737077109259128088003400121352378293527025709985307398210895602587624312650307271942135148405739145398175484248293626451243318250994644512679595651141843213547262600117744808762354163492780893154365084360705665382404345293369529217678063442546253654099771660766859750572057899117750671309669843571655533382738679660465220874753230960148549112858968083915900574675170475154330658831955633889765875552769218040719046346179313961018609395230554255823379188626567192941501998171659175213546706470219020643477944660628977611091537996614396202251628167405392157161997661847858373681127819963703892510233125605383897314700479188156366526865228232353163410866824365271349784952545152538153560099603128671165415721381229025241935608669223842291774030099289779009034632464155848154910309336164736998491438161171737827477025533151811057071061951534025891261459678276430801985359762057810560882994444503026084478576079191050142596715216880811957399692016530188844801002429937758425610542870641146882080537889948960260410120960860632742368044070031844076298290129256876702390457687857863881555626963660888666885883572579956639727410028464006885542793570291081325207544058449219328462051656423490040464031460220092657124907239152291272886388499652243184173030117757848771933431169579839947351910346042525748511493981154067583772467555933209966927351688290865268014062807289454651653116110068635817985409653298638701014731227978215948581646515473256241051644040438019702681121050694062100615889850619068554378143824662119974744900769384693001423739540503509525356543005025627655870687930067505411390136457287277847588060157018753961609561178751775884305603411033189812946332758139309523538436633578031099065306355273926690725398067829184840706919655626601461380968925212515675414962789946785844414620113615873212033835122490846022060629172887454490533713210080676221323306419709544025263437631853084007996742439801359844681733365946782421303391740546078709294091548431125440188810903480903799248028010725768068134596264593222697027072359098243984120207447901274386432939103995441302806547011614617412417605277212667345949265593591923580091885120950911524396112722524657378201518946421343428021133313358026025414000388960456651070645539798790442688210945588837713786048418943564792466072021743569281093670058695291434140878603070361100409836646959484778187786822614923734331645560485955116997592240708942794610230639577450232952294203465493986268233138794565366850523725658538354444211372388018297866292956919440438673210277739793281624256485500210516188330813600178241020462801542670918931129190026648328573529555366620795333174034909334284090506827185019853906093623218012366999019211435830835294484927498130896642545264121833861048328415117427834512193871549590800530984263914796124007647549221721980165799278200478497128940202552373552624403618360189849406110357903314564002031802571813528659442415206628779646342114530309685280728775276379686040588172188987524489448143086324669356261667245728063552877556885189578678727562725290279745107598396737762055720083291550498352333031351445319701920716497387651708468016439643369259725394815755390521967389888285430217863926911490501735906992224067407096465065619051159984979321166585860579288100281477380546868837831558998478174672575476222980399206050206943206865710713014652775546284909841631272776798854976420812713206742306131162513673285277556418498327416869189867101247052321059762513570511363915674092716757167123340232597061644873700212531436943163171663655573041064009403531981190845598955081643739377400956587609249206119083437531831228342701500993603413667403162772149021207775069606920357456729396613312115961284715213962870950387970002538072953561647315542150388894259491560329453671103143241641775834773262988033275743088293352218836228237737483686195562248425106595187183669653312155625661212854699375929647575187769965730621771235209212991307543850404125304444102357459422532399008335258843440983962109555980893172589727425408650348023731607160541042942171243623101470692299131278174151266695586519268262080499930948756115830238000534625885297200781523196440716780621082987000492436466205174958211285755395319619635942142195233967529393561894323671269697114500577386847475262752924783487137658144502293465818998579759119223374298555730434764354576522388139129883466408712397107146487798795527764994717965528264501473481533293209792034245117885683056196371287360023211572764714342673129722281702036296351232797012717712610439974347929533800359363651411231520353698591893375400670972835227363285309152881486966615354546541259752595481650947462280370880517081447249683251011093163172156986358329205334145005573646118661302679523920913702939806200903342307901462674279825689560585351825832062299096675559516636285912384140046118797865764927821581776202578001308103957003242217529008106450846692133288731959078857746238844706959264904407397203971452830988335961439264564909962860520710264603559175829009136952424471492442184065970071474857059321860771916098691115436097845674359223341858723721913591707877428557328637078816601762878940321670409514194174311860565554028300418755453136413955369435227414811483123684824462900532085991277314118800442126344940495247494173325374782762627303505128630227962857610990203253029820240580433841912489249604237062132001145136008153434524375308812835015741453996981534895530052545332770833216314099355609939918235981251806983395351510596506065711285127768237681449561167037463829068497533785044198342930057688744101066389117057805560951583653322232813612059162029285534245473990299619957348782793284180250772019988231163812725855933785991580706550904508441223058461362695838482235772589062362186467806940575627684381235869794838103345711459732088719419984221080238393788908979757242271655640259560735341763467401346676185661848375743737457015497443082047817066282357317774922846540267319081266642146377840514594176380675297254094255954047640543633316828820930229194084630441460775843693819006933570036632491457362988727031370220541828702890427195997099200066715256073522524409706225819101179790728149633810450889197747857536971642517258908819996760063386943924585259404488149180382180691080133340491502588778584471763408436067205858041977055513078356341399619605941804711381753149845967659536364466574857057190779136949276397134538562563508708311541547901428950910689449154553662385152051879292662906546212667459237886705919683022073177037419299263689843365790201841795340100821796553623880463144914239028302610177205144465902175443818847490136312149524952772735660649027098845755212803133698926398629023006744173653417386475462549708641112256359049576745465981179826913192505077750753583973686601596593192515838630876469479067754440806334873443794243634356119069546733731968111985507121708913711181774270085922520256878509654411542676382950547789882907566962367660461036831595272803189280617260507958131061213337160199844625217596786885458052575646592299683937451090181205836593309593608146330490682479719827180095748895824551652922368275385460608600149193409561596745488119295539172179535578714827885194191925730672844978617868275636163202420153393457333566203994287088625240327444986778229488460768047160769218965780402795833747178765847784236088027397889523270879781646023244264005691669719842830674101821363234584998245825140624774875020668156412288997430209577896375490757967562595246201815478246577711685104051668282761059394010407971509622696176221857564150455017423446027224555150367119799582940415217153724721374057720521706994701119917569803767403967738471139023871256897490050098307326968874601688135029411596844157778299557021797292638517875269322387084243846221323564683678234506277068354826952911057467703436821483227821476126912098401292732382164871176635262081407434423338780280634458765941621833194011379603643011362946843220224126352969680148465900110046721175956355613367450280872972283989477958681021369188117685910792872187339918924219967114728837203113003599286674732325382149978381769411761064065969381144001171069632291581272382193521514739787423359452765413540161460354097834977893377032184375438130901882236477130149628209235991058327079072137322414042642188968871354272109153681186279768462983392763538593154778022338104456250912446951895007113208625612301241637080684808797819103672842761199664196387433195319577972847674443153414666707472528273674474966264652882413069861542779951870476280005691885261483605598157557532004824916942177806712210366290490749030582699168248111481042948489794567690154186261967589757692515824822581077931899765269709803016957489387572287935090026805013755810801528616036262180147319851339750788070724118548666069724709979454665007907699780961943519389253304169482265241923906978336174168648321048885280450804132424777215810970869820638967086808172765491969047335964928451731619286294482431195746616630156176164598722847119119570109631672518547305746461875034310077461246247187132234467080258288238185424819061626861534302770080505588046069452247849396390888275835182770432495644077821473140284866087184903980171231035936204015061798538520889278511929720964191391510064501051768475087738730445679223171857084625035428476792678880382909390769118134059666969500986704397680234429712016667699497988665276471293559400968779171176547973762415684833437399972250612535904686744499236025693568131877252713817335714708236668014134147067301065407007813914078637927131473389285982534029211388103473445408533382280142184783013131245265505419779608011310472779027690801001003245467866886962453315758636454631751584259580867814506453490378874855943992885513124266514202829719249291149815448087380153388309928039366042546887799825233706951430716647958463259025307565025470813821343684186196157092758674640528491894377581678158455353733769379576939714446509550414351586512946997007270726722217631273167064789607943320697832397939683419286081141870430529545810245220955156377992589879630132994045406112675928982522152728340356519150705163190225819933963383220624912279829749591750058732207717848700650420759829694341843963208870411346953470447328467332954002306418385382721835222058285896759370843327069395294402819784696765865605190545212562150524012484956590572877452923416337179180276192990264706787244996348864253487521855111491605640588672269157322062447372989712806331480012713598809470144873146027642404782920297844491061510525930018939323572823310234439717537973837442097536730491285163254643010318277956838913109991054515197141781513223252977273261107410507833234275087784221746441340125620050283538430892640329769408645976813859415473968556272236825561571163812831720142624056878535918802299531006427428076610827766393903306374604673704625430393994277653830898862949170216170580598214945431654669349570685315169368870829617079699652998727632742479305044706999393719295984775910926661963212849613912205798027518489951502107522668200664443133536617808917654832320249431991987602412314832690139750634116404670625043865879833363254223215312511867050590361505279024632091581600316990880144941973154123289628646499114709707270142423401726891667620048702740514593608917863449868534964578837817441562803511887402622879840246460942171294028413848629212428942312404416166429146051920640113992562321647400811486308185777451457131743623339031935356063463358765680335531903321301718442290698094723529665075951343855995978726701467470670804311599790975431800388868572499640745146619965185828272518510249186633398395943887200937030217545932761555779705408216891229706115372624146099341388062776074326924163802371312857807155565051317037846929500061416403515017443903262766295397694625346626178147980070401024923006503119962347780748539216339429975975986243580648777987544189178098844330048960280851819613234271949398284165225658708399816785211397277799934484021237149308991490766333808626940490560614855454865265313326122921075692955073470640116028515418062180572675156734680214720401286871087075256957273499058191262378293918779934307888063597940789001606212357077652165166477095515785733733302890641792050146239811903524458485811100496339155273377368675827467166207864216190761677588290217735748808712374636677929313283585773129831338959014206230594964534696572633920088876113006597310962472440149573640451120912679870128782290128956941594477622642523638154168932027663908696176652725966329908194130403396749740909691248438364733456822105364811611512893599306789994182069735111405568925514971378522748105622810069125449982212701885865905163659607192581360673166637055333397215975819148585104290543412464317742967364148334137268689335466581691414451761230532055603446457940958860940972827185133963214674909453286615795614331212531785450168701511190138855367684426157400635385279789629145670335171513165453113217182227354734228980970545537925010346701341706264528686563405059340593163401335081290064741205161462224542094919645943503072802546520557752361811985137801404681758841145014611189189427160906984164211977075531328394796071456746214268542430984599168736660756486905034106607737368343621814781041626704463106623839986767760984951629484107388475350300908603315466708560074616544766280816244907246997325679096391137411917391704604543801549728297436188703302827555244640269853679364970500914102393164114859712594636812068285312386701039740188494656137882972894126610779448255017701373063929451195508506213568121708453171801950123339283278107063973278401635107024424979340689908900697739070500303332386811783380148996727166004780766398118763312611578354344860335081043872221782990320872706743471894922600110197029376436974571246431125407073316638324332522554461100707655273893651840150356306716554148493494584230575324126646391813781243494463041293692551710882943102488337328025642708459521389566160926761609054611463816075516542469242801287346452178380406305282590898363459568104603703387783254680683929125139998224993781309845376750144809765308943625644807743699278120879267266833994938284202351999362390754712817945036981872787912471635005394919423335460684747909609177256413374674207774190629590331642269924038807808161869906838521557256739307048567990780598788896064062744848992497146069351138380260250141646201742889029476567986869987090841628404525720792521396777563790696003542057603848682969028910125870115012256975157350917291107052345166275742055135246502313162322732419720528790960374134197566909795613197574378432889879159335756339112183809978168908518009751036983451999083738076849299384681757751517223637710794521573701744260188564865735972608758884219298449893694251399230900428441485963698104744490564424522928204700673845409857952036084463907041703580887021729709796957369628473131622046831726822286177492557801932890772001166470777629889797228104534747912464111574754669737420281020436663902296786143398319997225965517375354071389455715702381097176842152968198487888522359367863773638506882537482152916160763983731784291597170279796314966810468150880352988496724212269092751512708161369825784419749544070442466169521943315102569596863275665776615343762642596386106633342776320063004958013405046612635439212945171322227578311781826024453215765946093786758591572080995566113115248066840570173545033992324921636887925081293897576691053183034948650986053281425037149725659309726538405519311932986695541309957996548781540518492731963069336045639773286627631701863258011065683545028972456155611721512607710623198745821171408794409109849462161779078102511016454098750739709736938299099633348414117179916259287404968299294377123888346144649407973594918583386460302330085523448963069100900330659933821632993340707890601022142159263078087954368834019520353134314122333250372658996473868655647829875856155684042824543524171212191748279587442307181358676099852376093385945756640115549064684982994876664084408376022772822079412830623117149133309510465388668992650825520659791622237696810191180610518097932224702258614797401339849782128665918676155540983525240938787445241257252741505716042701089294433106734378866979265435252105225825128902135508995148813996984612884945603640956435228718276764364459235140941178303280554240234852001559546534801256105171872591560830137491514970132570700058117269384872808537376722856634005383155329049574977473516832627325799096476809146987738429150669450905911188999294797636541340871208563331882365863863405410263031147371294278874388585884849557564825099595536419551404519902451175420771553305017369726861415212045058573116238052277762512493865323815063442627867021385328527023409050048797532049264024683586082955119860683420353661896523599134959173986213451287335802280906575916081102242465086016447889368429046620700105950777274684667320764067707970581434134544075357288243132233170049542711246149452299283745219462184703383652400579982108676661547951602240389187259406746737431181960898160772495475623428550611108101588636947409217168663886172594346043699620374345740524213423165840933997335796671410432092750064129072195359844350308262761018992247138380191461640119053151066374559937559248396674937438401804107282067363347985373192622339250823247932190452643325488703266608321717557957893723061945351473022169619899487089945900768821266849516728835743022890745204589984044738911419859772329174037490850027545609071389493657941367391253617580188525988301513822967415849158180236756471392248609369903959111447787779178487827448900988397895114762176979935302456975750914864021043020316068034195539787359396590585217360375463016179710370559149809459877394339697634065818709212958610388390832399475167402037157010348691055963757458002714846026785108288767430618633408402597640630515346452706920839643354256231815730224224822953167265778664198899765461978951161830195596677314862179640586067174440039378572501585574485131461990622505075564590927523922538413962905059558234884921266049400089833061438947051382174901244290049659695435001908873557099164983728845112331189107998130735468317541457174332320771791671650919412855976384603552655417672888900330315199536142340281425849475975765110989114935659773752133974710798992598390266543589192324628270489929129658596088229679500699861695150382992218164248802782143570558747331522632736745595643079372473335548031904637868604799381722404199604552668836971877018258330420025625067005072835808513368563412851843503883608635789508166388835828976994950589438327726782523216024687519974447304444267598381696101632165686707008265236993299876756687789079124183339052570153467327905411840721515024150631036038340323637768163958333091153563823643076658622706236973369494171529354339995125948740090814180679804831104911056429648942051832674238846102676607415183352014763484920568524429122409483775832316095740162558438453176920284738457987355839164996134165251595124873769339795514913581980110979657387030772329093479743377495285017540426097074762122627656671845059514503466049378405112671871235708530910318508333855496147920512262487520631100814971065282033513111755047520191065195874056764818803106396898200770024388989970455949892149544240080199049257274947810191323334238915630611006046888245582643420347577142774945092993726640580052032604731224054317744948644438055341031597099954991247138860570690817072908902758966106347286170229728228390497428112820628121509426493695285980472918898550880981011347353196003039819560181050785276072193455513080738115953980598593482639769022179757494591558685223915249953342276186345903637460562314568979370297663702246931601910967977089426382399664888657168664742521559660245137236420693088964134625662650853670560932839755683941720836961876326148190302576821674210747729089751774377308444818381045496358094375428660178551264358587352087546199217000915281951366106395091893722425600210178002271591761290929911127198735977314153217275306129139483848325542806541937713724179361364991865620297507429944385367753754826739680367186254234516954045172081254112258801104094505147232156602315113786271810135128940823279959313891772208435948024286879601533213127784627704981228753147643628616839162563528571806185483474012492575213198676901680759925328559254633678774498860622186084259739426589923067067965810679813078334075420730455565766085068838050887543341498397842794388755706531212470889744247478316730108591871545864727645965467951426602310473368881696866849318746911128151762236519365242256068665052668604547973096322875426972526845176107490235786938878411239608697139367814276661625323803542590688691562890747509408444743792644311983955159182538830232670709660001374807204263386136672690230062365575186165849207469211719804661944444523484126319416380354916059320371959737646557261658374965445479593901814972463669542623657397064102968872836537000465940015250955253837175093225283060313712283127529680102042635772040886938640374338994305846669813178346370009445756367407558411502351694660675097724073142968000407081017018888898062531740335618807676366356172343970134508782448317428733326256545991628691564342479165103668870725751281961239611218672551459309973270779649649809759388639948590730885463234036119207411309672972971497864873496513408034724854716007579284496654032403180415109424506647436960321280732020294343494931013860199767764193181815443096799426700763656856960235180909382759017043854555680662225417275192312070524072484860297858854315283768447815601221381287431600953718554408633747428714250842827763855869840151436963843527350130888677758004380196474882244632629708874684223496761247896099721943386079935919475301568454764909528341467939078876497745085411578105848535781091378330943908448396019947271253970459270940188451586132416228425123324104409980908932708811993831900325059990345016881756438390234782505540135459080198751360780389202086385866905800819230368697910349144598058907743173337771930285810314147595421541831389620588567548390734435162996950697635666331786692992254764970894272244153725443704190788242609097338816935397103628487529168537140345256070363773915054134459381409734239529130835671981955693456242024096274839891472995350351848886251773847649779847917965396139689238972721097764644159004019920754066560639781631833205817942783891466108505818615887068349042315398560044461192228931111192995636460187254369663603459743989023445398614009354988491916731735440003204310241414891166647454545400058249104346872848218682535309461852977912468516093487528304864132247198696171826326954753673417840139364323492551694317265988302291680127884049786546888929367472460917016984542369937482914380295673872366291861276022835984173214882285529519831972077128439133325320202605355646430941175789027471778010652459481879007335665295773422977530730994878013457666966907498555455923702886350469737540000775318751337908875617667430505283807552101624737926023950024743634526507010914173760975815955825440500295122610667182695554696223401533880658605011917953443013062802357307066246518928839825366907320918958307845314589154899547801995628622208917087748564199355215042553388546775759350993578076489277128935554035061476765047886043661346174494228788365105272527740391254648987363740369695258374147750857659561531552878082590381885894618982192309102785944304503380397417676478738520151775052272848606016902229275645569797998223725318052492549687289788578835487715290796392006834684288221667747378142887093151312222194833343282478355179860553549912779533180472204897167587026856441317885088844809881391117297283797602610259347501378728603142252221385267374199172669378604054766897150280652550474042174076832307903497843000847832897354382247941773464782609708222113656480049370676954258665558346697394126067585619962201953599911642641127780836112349885102790956366635309527094129450161137156472223107327187273502234343851212032699930196113845119545142696979997202619209325574890440434896187401797222958691692408265560033265676190925655913972461695510929388008293758226395206841215240315550809024762145467437906676789241502007284826788417366369973230447389837814860404032737621784552050453856544649118464385120324701791908388864240745300868455871470271044522444639658358062098355472783947113157882322835168281755376845384368751684708589570062958480514455731934885556931077356148807907107595537305377220600069996090260308278087244053296709740934569864536500624563338360398159411059412313377383327982848812713744134904517257534651457377763743770904056517909838680371870214184940702883448100232585584278281223756276826135062958039855204902000674451486341521858123109508239600379467791391894741581960772372932624743225417340625563091658643135165440234226003632550436642101512502173777812761171786409199502795155366781703517759619760611653594822439139014683511679262196980208061667021750221472973309643839821926211700850065040165781647030522563271052444796757461404396058950378404567960248740220061041250259275242381146736248228540324275374868972639538245441700585221698043385599921242538701292368347328616536453244370007640285297336725896205430469409162839078884174785206941081817353423133271422402618023781358463215842354552733573428120202721562491232421577243714822051989586115541301818900682899019410160394370048036911649523654758907667309061152182941918562096801963268548088760056911358718995320447358365180603096226038096388860234893419528153163342588428233313968391938043195840180088107600240841241180708647775275288602119512056362745352787116491384218664122961279897154517525356825984823870676149103310780083057682785012488138159989640310873694394053337501435472379129901932809565453372138391110767602082371094233120078991606362621487666102412380055354223062967301488063118456465475201363359924039852258446326161190504725152297968660660227396614321102903240939080482934452654479177134802840051009770406690032752420661677481817829919616298913368719038281205182062540821193160345990394176143969738467998905134867982474882362018573666232891064915515633706858558357219169176685339378857300723273014072072993116493430595553893729081855654062116311006186648973782958675601673445374323789840935848218088891354369633237252268800351017023677389347662148483198687888675685897959503092223563679107121627395627397567376517115559334680611307723699260940506288802028394379498348578980788570113929471983473049137743641371733516430923300491544313677448526805335884111380128134002525739992279963245401316835616647138381592801827442336872007543418643804147957686157923044538934949055388345406841733642993451860963482100273841823251607665307074216198787998451837754299163818409896623525764349535065134065756518404983578785147152489786349778777391382945130034981861253996066425389116525874122001734587318474581887841757037387011832257650095656505416960755690221782368095329362863949503799677527638377534992233738424278500123556765563751907812306451058933018606018418349466416368188749859886181325829623691898208531952106235739577563747889492337393925827003969308248932012542013710955201711884120275205224600498476156699853634015290887060988044570566854799159477517801825810281871534737194677365651320201261454150330130934938932400212950346836696153893612614247549478082569944050685970329296015732495754295390094192603138276458303127176033207952403493303986300704524913105519193469694201156324350878276288966936503319314029384876251828130460952452399189326609297752394264361342441200636004987695979640650317351855834206673932392280158155035820013018164891650739101468550713296620093890745983193953064870115423323179532107838162880132656189178187287514369833742506961771596623478307966818272795941901795128573595669059195418930225529545790049976386982983417867069636698811179479536984701923972060417190175193779059178647277502446246859499237371946155059401338573248605477614605554775010162515624428494977151369661956006406894671364844197950305256882944870205418613563194560365446841221214556491909806065481139774503864367721918546751348670665092520653225340737298037720462935973244596838564546783724065094159558879965269587398250598342348134140640515811067501926287177089152261719586535780362471571998236652876208758952995831224406004315813608185998738054900486625062834705247270866274964797170190146005766741442297875760286890866269190760073815242683819405219390559746417445063065233363360134409786129778800434122627122178598335924277659497876347288393366537373478387627943480389752438666088077226414091347497029309715670615363640522608723851479485895357688315698076217374110266698813181343217225868782658738530960171212571403771206889571219761234023216651679405344805251147393853318654189327431413179489995321630757406418106693897883822580948920301886028958980491005033606948827532911318476274879034914447992924228741222581570115015985812568156066297524341977475548287354067545113168161336638628694728755141092697968989565614876931534183724606074512233741382542042101360071674623061457415486413922499421465820482279341861204450322731278834525192975443827779891580244742750039333935936982628154199473466694518783399678899193380329532560106315638677150556677191095175783309423710678822001653716562747867815672312848640515359086009294353604478532518684939983374627451125117695215583653112231916530939627801690892997145667488931492334564416463088893559164874882616676088831904316471952479240859385995545678305175717621217243943866604646840092131901161290093472759983912760496283132862306817140912137507983080994733198252608217583853141540881987742341640040829067073581736119685433352613779230188570753478834346311331705644044629610420244000337666814136260005756904527487582979455591525787859180548211116022378443705708471730185509857820109367037652877813379065780416474165000415519649468984363113279602685486062309930835518854358806938735375003371319298390925041961670272164494380064262634657182605166595601654710907415261845582302540938506144516742827683980488966403832451135715320179909467918924636202628083631943524227409922829626300843184589894220110790407488724714201572577238652913187073743887036827262078627718294908452330770217667219349202251973492330673008747152282362379333531494380799245866526896280916412143821948980063703347472261789376139691715745922479375041223433690362784331163821569087158211244219935422155029000876465151015737899938670490610030889939693981867399480705937495090027567431952193845130379994584859140210636238169160181144372751858926772301095701530029393294757778770768122253722799763747726518692199175736870560367135533461330208966458035274367164316057232413963295624401646428237349294717603732359972104619401532712541602824535894880137071954363041190216593055653092883335846195956248883269749370159959865924584228817734372359723755932134817901505214470859096163983397461616726378334451576811462186075570874082937940008731429907616345993584720754141497197712513568031806640032635626953069830196636555262575790858318902462847401576798211450816476862309718618753914690606338395467177533385567609230659422317096255906021638482866045805761822006242795939324167790504841415703844030714885529495528172178567486451059671340328447945455819141014976249822454157804574388596103852771607744558967793845024539662975361696793093313749006377234547143893386751129099999377474532469049617538503463760805456495557594492326565291269992965213432361703613533170132451986105943500562898799941380983715680762544018022601206842990998880182625200669794461167748809105294967099370101425271590758103902533713097189464204800906166695477317754173300353758388340963122531228372691646524283524996112254916487699520510070056841633169393539207751318045374760291207241385773529423476137671093495945660241141668078838256460108689564730253049347685333998913940725646671491647404902010912099513190368685281307320074365853342207616557407335559045379242475354498507290652472294851360527933654359876852267334517334936237277933298344543142731336343964331350056193303572492829739745886458699729205899785877447626349570553929122331610921533763116621126413429877419040671500983586243085766337579062142644221388090775378927922232921552711890941694940052539427933591691052611455214889827103379321815330714512546430677308760347824002549173267654255737122739732243309899724192689088672543533203061254930069051159345174256162665432498994577166043061917400216069999261887562011539220996433198114923044488532332796257694742321527857554671013121588049085860734614443550749990793330165859917717900444763023066184794700255947021024827827080994806788022267909540751747356195510987599681761327098543694667770839105733508074944006633869851625270007043297678793818159164710128857690691837733977796395851538211442920535630059915744438023708188361708641145715105815791781419820974489815470075007242222961533069953948231221524673177621253353048286309266247503375037852024213032059382440871505620732229805487074213228503696193761614389719926269478565315086207986152773143740358109155341055912650069617793477728951011073740395208041316825102554895238958473442033974220576043094102850523891381590879257162542776841865304314054485948546529706056502958886821054294404171634225600647688538170993887407833564185831910014365477008642385920712966553927941057759930741073776696421914767121887800803786190665176222341180999477246529068777467251820875328166436079721140253661577902935919690933582390147479273903903411728535348691928819387274689143400942147415881629928923007750919121976982066795496522535566469100352214287967873271393841005077898960914053118242621069332676648580654671239306945978325242218865718395149489577593480653755938028963868936649166649142728224181484469095688598817063236873672797450828954824072817171386835282345188668576819030294591918925059470577023521730575831342995158024219231675263469783739187811474820136860759480025349100600861941580229052835914913120906249625571229817653792831262194564816864406569658488576121218177205360377164603947355743261978137425238115789985845946577068928122397582403998021634251996702051062057007957667318968342303004966395817282345140253465500732678407758636787004257737481806489057281744093262743417974602378523679718844326414638223647120612534362990195441183267621648206119620863463730424468564195378322920967303340019580223022117593622337093858399663999538023027447336875385040660955942839901919732764250226964603400567495586996300434172500010638923141514931314788004525949391161029069328391073525441553603898541175602481350942976544758474930751594387953919851013700400077138289924980719107503589811446865626081423187313177520990772290966338478458880659728908264038938323871811989501681138908704706833678743540524238159177845994969668421113773631913613899132212081190374149922701020900322580645016757312889060424965254776555894939516692425204137963937245121957381690286007696377722536746453486660606942804821484645191797693710888914829330779218333018403131745169162155277183055106931230200869434088160662654161660444791685748256124767061231196935615171305610621183279194458663736952429275660538971714282036418247734360683362520333927754128186540156075482113907234124203782224905914143056029063837675647383844566966735160229685274390546255122304928174727816344821926397142555367437029997441952218935564998320889470399526299410610251328346697362394281071522058335023165345848715468560670288053152726325835946053697806504888557989886048378086020720314885051450940313896039784692187459994301603350739141889224672565716764542261370949536702509550364319159662770725823879151480256789241244228709372366449093640332560416425496147263388508214902594980961629155093256701047505137029264618904194884141043090629298392091598823685716266247385305925211545966013772378528737183621202732999822778673363631945126224214888227931434307740139185535690779993382984999178928494024476655353078433505338163764404481184788348685480577044158280975216392023811554505404720457568468899317740266128068563147983964093240704140952154837269289394050872279381902923140892971216988542435829472662878662405586609447535659528581948407769317216196733851594797147255607317297326019211497816601842137122383398344350621958670150869532487461855769336820247765792988842220964058647206043006516968442387726862444149112309265921012776399925499421363760799428605064159435169969035950649499306266769996464749926543424543256511433032925717296704117661096073466304049516675964096623250252944558382490507146562840611509963469541391491370732383119777476383641130363378060547365499192451236529980834310905568099735346678095105328985190051237400684821173532877768251887509412354032766391061245818795243215723508975099365855608645731107103330055475150586790659569487297509351760279065989566015846728036295000511060319267484657722232936340233941605424870132704515072294907000600700431074185893776244300318212515665888264015989038386128238118650666816560508816845824914352631605015879648661270958775507885478750461751828520469799933535722309092953858876818833723179854479747493323182413908833553965245957663181086885148547087974665092396431190999472035081472619524474540344504399475418915705857232855335659733663269964962899512668895382823398597971632451020411005740572032009892135344110348310037794618429126345634380840243168318974822431835560341268191355460327940513238660824749952980322095435863838968134182574956738078880257704929679127354862627954114904435150159013280287104976868067210794351477717604231342745524184954253667172392513169312532563779741076850586394745444794593186061523196673850330272859803855108410907569454378570088588242486196679459171802591952796278406053049788030601217995651605304548221644975131960682229048910744305373981942516224483050160118555281950624788219275440256308787600551772063784578721974797759864626819217670600482280930138612885159642172453789320207350713856681204257920666495362228940414136168320652109894103140070029636221325905636691290838979396154045658035191008544772531379484598285743427831486384156431095542147734490587625407977513844425138631971422125723092794354282000280948348159714324322507630099516720598429556356352108377301835917332953976708955804824870564562919244028985267722678639305714587965989452912068217811254236765946018615251490466334075293995965269672740683771997929581057013963800248836665821724129439555767417264055315083409312165374560323272232929945311326137869926734796189466827010034357322723043421314856123288836943338932450781934738303996995333733079677116595448343572826956244358090271772853371984983407876925656857749483159245695523752735900333391922957894497283161384652873063050029331402181131827949936816251171339541801074386073400686195160766900481427074903585692724529257752069331818830311891109561390793309966809534706174354362046844799679558441000852094371164249606798102398485847365726831439269430924745491957510016228799955549739502707943958593046271205031055467978063797481704879446258875749940009514068471954638771154997520571757787018434526707783354947091790087549094120529056631388993662899561702754632683834012432261163038347274030240913801256780031923572286315663518729216503627160429284998980546918960669281321993044276121603467374450989052455824496477465648780206345089108788861467028482478742711791693157676600307992338421773053154248477298419292142096200610967593954231757817993116435919884045690869694311110271028064473810071956063242400389245100551664116254502366937392852214443445004587938275162964378676550855159830235188288486536735843160818800647100330428614843487871308525950354598481161142047624498983296071412181346635725439397875053468662996232027247991228053280797062919848189005158983927285650313162474746372536656231712255645434125093100994280975169913216961686133779553792280226918685418701305337705218454228063859808737467340597678210322195350500968185012646631628824728087526827549199036879453986551493763354387377265891473667686085775280187311949842383338770817303448548390177160493837918083922266238229663234824083749794794686630880003394726594912189701158942477692376985999582361996445886502758214382443796234672041044352409759010599623550230941217987479430385055040641564842208996200642564576295723489801257151351755860563733862111159394288892332968401107331234962466335579605587552422823980623800101957412663179320249565091823711782571770083081477658468705516066908206875515967619177267073441538209312021853982058405610832100053807216792928311800266437047833909685171554733434388900317809735500801095176206597483711045563874934736468912178161408553902801569241664362389911956236453841556907465120065392319714654874827025319950674377151714077543303204091083579090867610355233469165187459527505347564162571589828040654934467033153998198027544396565395329494976892841859967458047293368511339337666081790145911523884389560205666253384853221428527820107834388166320758489670302916085521537830806203969280060619122673422259022166484522168409394203440303796171443797017552031406872228515070946212571769024665663523706065843035392388862745744065350407924378912334056592604444980475016847945406115958179923762646301607514700456703482608088816324259987168313682398696794833333726815404150228543306281336409206833935342365554441888487577467243950140718289151329159824965572986054162049708957820069653648675817933706851110183121357914395441364818683126963350028657842481660861324231869070592983349765644157757372081783972905003014287482203390505578968087990872334812375153284865242837560818261028833917593702133158254833835319482313931299097250479532511339784304888689789621762785953026334772839099412707932093851401505074850557469796586636960592405676636759318962478534374982221618063367849657090099366216740886948606379640939613019131400421026936301157335777893393756781724724148313957999048762601997146898985811780253254556533604926532668531484503394431169856812388263978395894214718586260135081697614088854608824307421445271611025547649341266573169306904515791407724867482779948833937868663692522077028444425543763372693504585002260493772581347955537806185162470054990550490996616023616182386654086121654303877787060849005033559524852456456503073420467759813034563250123318576282755089038535415789753752329993694487862811303357823079526475068338876748086489019659943755555713020473323181670500152173069278882061727255736937482092786106827838186877948486812038429840514779765645924848297376069430473250450517322000091448479029618043294207855107745280428319272951779032470944870145396403003130294623838582074622929541532611232622524211896301323569793653244937059386984837279779009078345723451459102528103628513857125477197446385097848371435023268322144983620171817292289966529860204328482486784457376434633968639264513677126624313476109329247199265784062584453317511663217286478921043371267045531056968339362400199240359966634619407793548814428865062784495524666265652501256750116667032098519096683302334822410849807332507373627169244166089361868499527649205003709589787873675089949409960350343934927035598314740443645370752309584978899373916714255771358887971346323963921749179347112939096287269353852496588322868307624441465405016514553692139200863639817865951899670171716472105969192439081915180980803543730673254562496740973280510799554832628794758669388434370989914785241270644568200812828130501601366969389894508090279169939396988553538019763301964416731044086178472727774614841658371257258168758134699287515539565288159211680669784867314460337777417788516035341530343061194013045957901197151345093360637657698891334936195107374194229178634315881074856809811036335601806477336267527621226903750305506998174502261955756293372465459351268496362826779346136057265750309013062609211742531753671534172786994107628000397128913687137543215028307435498654851740477848793882538881391110465532152062684249727377215991882646455393211975872332732808834524670091638342942744963308647625431959066632476131234698579960231142001549422552216781680228770860872514382276361877760269088550164460523026075885010491874177813974824785065536377418930285337013346887780446107597244623202938143970222049773375306781779860071429316891695796429352860683576669969268299579714514498579066616125539881339185489237179827439199706009741673027184926094399592688039446505959282819694972768127324743903220669263579416903189194455844356316398545665213431935026797017476413011653583327280154467481983457859018626764416840467140488212941585892476024404482991326721460614297085117963520379121734440139654822409708820331696770721499739426119183814300865721185481899657568279787855950276213595259321053453201923808721039369294722100954317604077729246992774853535521223043693185707407508909274716230269933410359455084759933240075881640649388564497675886709778727836966640774703495339860909776802850611316150286515393251147847498105860884756187886917794669120723172936011732717698658296630070223591610874039248406339094180215031752120806410667699262561516290406300198622686142767801012515392283384369141442409676275876554629549860069587336728677719267803187285519594787506315757090229788059606687532818670221439676568111277261234014950202319655980450060374910524449419576882253704329821198242160262282792447451651021780909162235698993071485201251032459807279020061395979744575720704112842027153579559183244916777584896284401580932186180761492172047406415916278176659092841222579775931461758140594131145901565165349826540534883138100350171977539139707766746243909421817608861707703234901762583900379713486814940078629457488622779036175773981817820635479149383647422116934227341649167644419786476930368895214886988125299972644786938510209849110024102169731489248411546114772169866108719766778496196508229271964073410408950198918241240324097493897739868926384680359005189741656017335455234580452621634563413932664162005727909825156457730679656648210891716278705460804124971786065637676378987032143534091190226383693680178971249903624653240520605096855107192431462720404691889964175972545803890570606059379534380913141076727354444006341589929495217813830707749796839810289435068603767596528514820813129223240569962716133245466282952289525596993405304580349343055290339242218537726780650755005830410868371038833614499145279032067522156119640362191476000901938590971917104830702253526590631474098696878760370311251278954957513997916440400159519820127087885318954926891632039945280439890603165892069754155316178964943675040413677508531859117221899280572076100583968154607858008944683886974559148512893590973004050042248586101158896546964173935583904300856085787542601705562287142764218731851957048407676972950633286369285318986063026592219530790749154457253968032392287777212527126574511418864698165728171948425212719616302419289458923997760661574484073513952485855119357899830822659838612189258054175534177455025249088674896314486299436539679145806096966361308879534125273584683212005099843845085146311905926567643654695154461972460090490623866088297901289717387343623238179788016849868628357853483685123359300621840773806663194344331840839034993289986165239917526865273917859389251359484860391173432069216776464362164431390348181264759231181039702339959983681725751803509954841435557493351487443055154409479053942248790245998386510949570250501430771218797020736739196372988700034609186526393152717183461852891497164243499463486388629675475778673183529489890285831516209420788428770276245946099288398573369507341669116725438883378530961728011886947298980014659359547876517390008949997370378148632427998474241935282514283312230511164357394303756177177031667686089044190747516318171002057510196308537937339269552677740989937791128377435947950504496318322924077735365781159313683443616152152505455101792586599364158846885502842674919764780157789863053578786519160737827556774889232186973575922367178731497795901503938768282423505458104390568200831013995298371882857931706361428334606184681935747610035783961503362592134407987273028010951574381654783358751398663845136609768648353090847868101788358291751780193216187963977964536925582327412754064888631885609372539092112763642806739623489196386688346081256401710051153233623035520787114823047513104142500927872496130905375539858417797685980000464214284697106238713759796567699079773438917173466303270918257584104752934414095061730680308759030805857696144788398723869160223443268393911593001336909843796847895886725571958056845277510400486203241823565736430168095450716211447596258429961328177378171013111057649000131379966138037942252136364773926000383484531460573742864846326330825968200433107843052690607216769215668576208936980561370269910795847819182646863232935568647498322653748576830798023315417140839572262472104710362338432489039756630732712376814865827127464618563745197853285598916480193453274086227603487052819361955275430837146973358782559671819264531689844558884242467395618967904028581809510997064741569638721969301329318913135181299070259499381234149762788385262915495660943745858704739613192024060871511417286520769311801993767330091167239389094930654070280475320249449809006632488125067857052612688201179415356485528431662333392806487232060331027587902597429380814525980204618087938388163769832482158961854495065441967241220250851381099468610702788120120125986088514294021308967001150353271157427721438825208822259190600184346956795771378537275819843968542423927979539786842414317318285122817293095530822463348657483392732688673994227523298511236139313240744482224704411419646212266138847238587559365713782130538137558171825249539481628429670706497483520011228601417932594143155581930092558771593206879038220411303734458517195342296630747209872743598085385253133589048331676061683023068284631934355615075781636559589162600941181836018053904175066707579087092636599958073721418570168936913340061259303435546349590728709040191362697716550324252012245697385619547429702293696239709628572680560970715590325705512554852351672806146641745714661367577186432780318419909144479448388102094655280120470094853170710203597473945795183083647437798677733036414605132452839884331840221976589589235021631870455505003915312041242269181591522637287215496913427213641122922397589645745625622834212804772695356106556158274387875189849809863718713360150707230886401965201222062775152577139132137411831229686208710908000519191380446142712930285879784582553451719642405335843410205059829002645895227505987509148422037390246903205309750591591996025879687218352842954069165734735159544625088968548419398792165685804912322701226384821708886365153586780904984283365434376387977143741558274990946567503133448031404063034242221840612039888896288451551292820327906803295407141364268154046507255481645275075905103672319154644999128135661609882024415275078631580785984586190933436655610565258785716356372959836292870947918542125780970877844226338132561559737677292137846073530565161003070277620973555854087685744784594647208739925048522645021767449620149874767697104817604889939384723430313029988329410836831554504817078251241991544223769006143220305662567313814140928220267933850861638455870582761298608957859784385342031974679038771545549862968220631800476409633771641770018643985000796075631275926229017400011557658072259084028737644906981520462817241447491554228045624638767605741845869351984598805159788751658353020391771075029950875673196509341341916740667531089548065088245800689107112322270596279247865581424560442100582381595884224703196776575813363896417389764832666000758011693671267839525335718452349960507260065791830844743366215373815758370635726907153442778459466405813611028020777341622039986192909752124166015152392318772601753334858101892532851170062994163964822967442980504925814284005412738744800618502943636178714210996368323161750202359253282804355032137669232482822413927032840554917619741580633335894735859852526339935600970631766605487173868093111254186217164988960494266066712185593786511340279793208444649514896487200304457940935595252295631951594957866277073114878863309582596838613120719262563533014312815318885301824876125658412698203775121692845420618046903514435351568285272557270853967667742966960820620881749174297906920546575723272976248454473414087415839307898861104290782871647170231346817940266208133213529979745155135638556960846094160665637160213911685625513695690157387609693493964041311521939453914755415791935249436225924905783552088701759987487240638142040052252445998149650627986516434740309752017745331691859904328270531281260135276852958404529822590155601876712743707247021530296684352632115829204593235215359791547809791034939038658644746714962611301762009843626981651790782103472056964970721398615533510226349953369284845939236038099241439082703146019252299581723347573202022576067395023023069888443348752241577439359584404479586032146247437667076380118466062458738055886156557344618310905497103576773597762838455145696667350768489262580101881631942252985269653994224584449638870483059173029165772352035187838908069662596032816132853030095118439878489565148389608115885917284777720232057410780273903429223147938257971402129624837600674554713651311004594475373797486840370169831762921551030393580290289725257404086779869053071596565770615476603487499239855602860884156719339901060435495027646323062011379999086028713189918805452279262120481373844353992343365188887332735454482355168759355368400660323170780238345478638311875440694234165161899020165255538538767479445390889544358049073705634209104004992808106053126800247712620131853371453741984252430173257351932059766435483837022102198448037408026138017731241964756616720434110233530699676186057374764779072019933029954602317472569250039874630487759860394176402308954829808258528872363690219771526739309718086601177718803381980726889612113120587633616972057010518157257546930570598804081904314432074676950256051607488096973361936897364215234203662775069039193372388557710192664785031441115723152872737500751930119500973685898988753854311344552992129318708639299369609202560332686090202260444789165489752597464491133011434110218609762122363866489731787883660383282616103260713167324600868034519230939130265969537575830784262752611857469902050509149408690325227637852250655946285671313318226131388232109405964521119475414494416389246897854146096362162323436086766019178465772412782601093099304950243976492238504566881119656914230008386098199672112951531970327686015344241587400880264381143368844574919779673155097897156907498709331178075078864713555617805116503902248516428096731278307112656307640405108112702095302414282565858762315794082903093111253996440795751538616587275493297669443262245440928398406701497877821223616010727327392440745673248609263951264429111394373125073246847174647021991961121666635705194011059536952734395815396560538670068751679052936213875133152665451058835544862233439360277196397908137586110252306103737651155514195447483196138986444458128654707872814426003786100964931254615259101449170463790300415457826507257268148792414505520213565232511975490107991580951112855924986417219491345367332861697509646174280457483973489529899418052379543724768189695001486738927636276333682632459476501785869467435945968998188422896178982804701784108877349073792006216472268026531262560169492431972513236056863997577458870129812302637475780647362525895120540976466933389470153895922505208383957777069434578877513142005936402769172486717819326525548680821394071581839255315497524411382424683283361902951864798077070206704802092412823002184918975482590908548228703326579408918833825988857116158855340576529483164619390395007603839426106118826404804955438161595571934633615779014914706395585408026352558687743228985525853333289212328920177807209951883245469517222448868523190100951653836934389180995326345673221423090121031308103822475910717820903101460885453030742641233478755128327669449466809052369221682959781507453527111126377259315142157644578840189807459114351893881447651101844685188194089229474995892521935517549696296896396326588400166462210949150260440613964999159606500215145547454391784505681592377156360167098126329250536509191139654755483443624640959473354585667727575896013686297287603346811209521002968249896866196442548854916669645833883214188376526735184523217140690162378417807299119781112071751786255659759346190671762072948907608377572534564112493869297516607928240272237568836453162880069935423300484576853208598123201440549098716005880434640257944846380682599150940598418175737892170694874380979531419532661909777851444487454348592311916763073123613545774623147036981595501227122873811463809997602557892042409094911243531529019707254560801749074663542936179182987772916527828390392391252474048240205221058582332294756725215972562341116280283362027347279266886079587925103522815017446595196326318385748908802430821636103352954520278517317880630925033990696436439231563149147046453607186838579434898681714228379418321030683092798132680591094500909170913806856551334573332497786955377283965776120914912197934433497902291751204205645060404249954848838001077307147338093406676423295517584623411209385670240595471804767548283083567342442587454494603629875556229485063536478324648180174521261441499789270863358735375744251432943931757490993542657930323038897574518583562289127486005162145747963930351945465092649430935856867636222570997818220629258944992810615683911640724762847127315493891584516944977370215537800795501093664922110399774627501060495406368309000208662924158933754238517770634262578961424706893291390357757647037336209175866520967170089835775153021263536956882577828637697387356832129900605280102030698771179517673453956667380686066730149030661564095662126272045676074959027215915201980946401619232015950725570506791426057002839866029222629869089205238033718876320761885747319840746058495603145807076369540853258796916267301170443342148219835639150107613022723114961449164763814230178301716721476946569284067710681019737621568365409081630961679910476274787871008337772390435810315914596002939428986109405629487046229622933952023569429081873366839183065722655631214899640900736824895067012558208161981486558373570874223485143046828211127901503160104373086248804679922698965055740801658182087224148807808744454700778766373883402284025616523013593452702220977252489701361777068248186673126458063463047914413799128902744371694223302827911045022608881089119574025315154648349339856705662019099864202393598625735015776540162698155011402828267555723056722063772251102088879079263244256459100682716322578652985410058629137004481852752467721285684384380848326076518811152035809634684089855749454031031125291933664460429206597011616853171857825812771044297012037190975431705434513621795966775918114542765088740263261403164568841061496048873700525832570737721204188001396112078517118328757910326880498866653483102611306828196744317212999640806473742889030849811281883164715150163175024069221560412252111563191687932414396818099081335722257738901725857435517298505193554615828682089159758852546164812111598090191679426475969581654288067912030118613979506984885232236536444837817766579542306958276833726430832206235830139070432515733885756301137178869589885300517817488460508405853383933970807601994263110574871870439857753650976335913213689780321500399390507876256434354671298601922920031399245145825055721718611418141487384619856021995483455894188209899238586767770258737444533210812112907261412217522303491318426613688468188547893076600793233158171100534187611194290804384101395216734391533639977247489490180042234584606963302193687265644582854448458329624842395526380816574395749661747324654814409074890592679115451763183513897818116054343688151838131325543902121916858346697418382449656607339236673191342968923226159996209714817117664893134635083782987949732279780287321824162000537220772630468095014980291058725780343069791250702038284178310095183141284613498775027579707888706227881869463810471008134114294166281034622280686469893470174450543309788105522962000585776603322480849359120413068869952631320860217794613604494014364061505062573575675847943473171339159137185765591973723742640505742853487586328834004577360771629411100255751806213922479956313221506617156926614408293718563937046672316535530140330246691237403239576858873991632642754538332113062821646321971197294198977293286888482410748640712939585669204078602054749510003346374509093408057445385028444219275990107764948862535766354122646313030034394300031071408766360961010446621144216809122763897186619578596976351751046926025598870488400555358766531495737584452356188686042274299710264280503239131771831757197224487839122548612139248638194117943337443537210984752376681666531343279832616297096504764604278225894257731689414696257161310805506935615788723729209450616880484262224690619915841056827977488757136899073227975410791246458583435306402793263820045664803986858107457087807843480738225504836404781481107871330627559444491150385301347857426645396764032988987090891305890135233515210270541103311711793322947595157352456286440707740617868684848505991013711420954735029120110591287508113326968008132087347353225406165871119123591620098972816897292128174452599289308723602089603065412749231760000428036734100462197741999936279879271081126754547746796526337597089758084646237137760898663047805532188533481774173947498175087630980043812369996682285215921605482146116629751800247566240106254582918875844773729248332087148827597271866600293200706223777794885770652273999945268860375099728109751718537339160436775111525825698569161515764487088711881252288863415957435814354379784065167864429362706463316477178501003152372111317644054369522409835552501934903709233188679683802779138113988812316855053184328678085207028340417769150359934861819268466551807139503180484279036182060355168572492717037036374993632335449147349834993023471350280490753602782251092678538215227590437834673081428464769117006079411179583148045398000198844495519919768511380806773094980496766089500391594280728538482955376463598800481631882341033815503579376080781497035421504559012198416486026439060842370362408028378237258562507021759200869519168338149824823692608236341516986104695029713820590519789925390309732646235445708763228551372773762959970576174121244994783051606187704508044648438318824404746266616593554214615065525125796836596821373056833603950364576412528475320750656877132701504704961062311968663924998003755092993485966646092703330075988508671904430589352789079394670387859819949463989431418912869628273296676531329119965653375142309994557132103540489074753456687165711594314135784750859908367013757585257582715290800183809134049934605504616514449045607810483885675810153120972479202983742165287466165066440412583403342759880381783450988955313438322437017255764509757043833829107682670754456914277245596874948250813246318036844169902573689779211960634214871723753967435013044425989040191428687434368752398566675526810040902038953709208930910925681901087763110325061185196316458365779236641098748762017394411013650948876892785679967447780872195798334824241561490017304005679718855164086394403814544786399613073067742293741828396784350767013333237717706619547223299928210609516381301911767052690054841853990836163694272279179265022640929018710271038718958995904960141227777118477659077355266729770026316205305997690474801544872135062928283702221332290783947950738585593792708836537933835113883227161800319393946702023047194326465317057172518149851651356766134583163027234111087818648673220083058960325473856286505659120055377109823505068480159717610448677090683171997073616424445813220776770098148920170568197271292762910058453111240131236188628797478841492360188266619801476060610779989663887835785486513515233037425636488474478036267571316891737051403983339263776594850596474727129685016951914950077138407506269945720324540789125683189322005952283098198016357829106179199436378615917099905705805185816375518199225201411018376986157416569817266468051795465715354569692871033831642382008140782279918794619234128119506690884747846278523401146895543079147816348794858411856816687884589463562899766604539770709704321331084794903355996252767423435330016965190163278589137925581836632043712480968563551345042122887040439777615139753191487261887495188500688855125736375022450162075126776294321774195962647065622444009087520759935581388173580586172349106031489585935001894739753140469226029958848278396240477355961224167911614925396167016653220248693312845872230593645297066088956606554411313031100220810936082383428986468975073134272843005149124356602154483254427391320705565921861155686734854767010475589237299994000169049259641605248390583233210186265085482043388393409375732800847736313489572953009358856585593246442045018252725177963378563842490680790479114084014636764151299512127943987980323021491917648941065283748573961836054201996293153833336852746074852984979307241122892247043154275392317668281098176998880578956812745697351632149986889014746506327337581893264203229121215796521116370138004964582744366330362946585382965896745645674205011230395066585719647450468043838818050005801598450641074515002147963415842815716452025779615914573388778088735455896683687155337433255886284488935805047246895102390159750995161334702835051132625051805965939965823681995808246000687965762660352827615953524899716214555410039926417104017676236202180370785141961564243273120144825149353924894992499204532950213112736658386648312522019567233591491753786977089954709773163769850341596118752751773692164150394874518577004535190253185151285074975921314366954331043314526265246311531460193264939319735626092394661342956322577715330614458310374597056187203872723130062151783063269705264845120927390030141122855952642213778224307359703575992799565754848734861886965147310281269644960893530538288670780269247110976440075278527841486215259198613116801346321266417004522674829846682946113410781750708725433183073245337802117242615895100810932464146819827209264756045510878163414228037225444844924126924389089546729987386705445129278399328657060476263635029545755116826748457492037382299603241739036957363156279362866193161709537756456169652888251539369353305193727708887230698736061399444945874255995952571817752954492611876631649449342675203890967326279969943602374561616050152760579849963842631939460011554001850206697090932617893770739341616319970462488765356104110858925796162508697131653053672932209006034476003291572822165444219240759094840559021149383590734721727983692191785776892777615106671705183747648975537091361244532525964139342304968661665679368009497598703878808877096250230888649647913348046018813766719395094340160671227376946050599873359033949779541848762890061443117648717257078566933511963817550769615633886767052958470828602118641895037508205981561928429006523664153204346042673514559535697159952064494182008008778552697453209739539157145689812223988295119405276262898903008210956831477588748990248314093384925441576377837978127140214229364477413166610379095941568307222413540724818616884123939406662498534697903023152963715955033012504063090925412967479738338143160822372935707673830179713030956025859936026010799918858934336552935399026017480367106457012033056914701472058807613028963147319323686980578841894213875449427214164302044096790130044459723560357099176106712022728727487524120275922215878856595573848065987036184413630812326826440536665392620695019319202635432018183748089450501148044580186220086378269686711174711704705027649477866691242040142837964321063716201238796317686935088330680972409521027903593206457343522839801593926571995758604249643229430282657771335899659609589549374415880118708589048330842604864189405649320013578906748824758487664127787157543768937839124550579704180026745870383483782656474283896975647752129991626599676256518611717238122426177689501843680705624168225003747675923120568106959845971109739779660729364467683958374777487117557020950784390152005976335097471552686789596771435864788868826950232712744993928613848944362763425547158141539369241719004252457215060378189571017835663367848539650922982412483506622917773370678706510126158692824006554603571108191318721313056465174436544823592392783696819520858462904419155514804815263121643208487747649071164761458967805446538290656544493758902428899772751988761269097217535641694749333196360083913158437489018436063482037386888097734016530817188144258444106579158126103665746965936174137457002368575789868643384184246554120461382799956489159035104485606401493470971255760068200756410806912101482460551818769606134253789199552882383279802864004544201420408284288396815131191741560706930731481873828669325582633449377920347006649210826537833153308589931544430669621644780457735277922089409453165436607622487009725400729510591631135692083052375547008093794729894764992591416371747478227271049971049619975904261424550185833505788520149525597524335921229037330133078455196025788381524301184610674169857699788577187962804866689331493893180867670661969128019869803798594429019432282808944299003158922122664939261460808492383141919086552702058348861373834688887823275455166481220118864406437930296118942241200951721583592917450257265364910687529817649018100620927201731848540899850866868270859341176842705676217901500738535111326991391331086025760871911360412614762425702483291488665039875855928337057473735262853643136193888501517072300537815941979918934211098181171281006289511904859719099685795178561193100831847731691792684243802388524180507627719563070802974508045125147643509696449301288894814513059462221586133590928311676278786587701170155368297790612950943848623276710689291230476702070297190240664746303926827602203559052682235765326347266859589261891110890839302701066610006627887842711798710077020837065206601850349593154511783831059508799399908460897805177851103152996928013547098341602708500292801016215064659603906122233507458534131841080235550546336552318653964527272740014788356918572000936124150756303965500840563742810689999775994855394082097849394215270523794656421504482133310152339754943520461225228438738367062004833749117973069198515465244904131488560666349861395192321929789987432747160502076262755448072328725100568187754686846336520099811291834003768831200483007616493408567186584723547455512849636610958088990818710314317062185917381931662429263273629628773471342269598250886085486886291559080215399551573931105587354035289489536335401000228674766176399356057649391351135212894047225171622186223823404065845544978995495573474003120573467557192378478176311908701352491313894432279726307373191880903680099928402339999498548107685907346193540595623682042737643096940823115547718124620415887648982248284298309954764068892256555589780484273347149561564260719909294695679891584187331388191954359546302775692211520628703164510204922669273939496581576188306690721893403407732845500456963456822297348998006304352885724106423844746227206301818023275857664189005996585661014605786897609882716796520896940511120055867696473585360748884056696260142704302637135065386999194575503079552181680586531053522333910806272122902616978985992207425152272330340658943225025263660362021766308801206919577876292825606907075461000841662647143762239294203927109478136586721029410932221854493576235616300429678466203958710360586941227023449182698438829915920081807815738508340465733584691154555780015033760940422261157731872379420426411621989218255081226478986138591697061148728802788039637467187440752132042649947169819052643695480352103120017702135191371686197991108599488559788639553566055952235997645173336538474787643459371552136821397173079121823212126384087387639766809949631480773331317242270145737032938438531793738077188769951008503934786595224337053765038305165404841104842031195365168893880154985482981150988009888496811812988566037161600688413950180922089739786194063759321843088729804612469422782128488605828552099648340989933876568242681997623983951706304764039822835762727838029762421377832325403394541996528698814473080009302537958905038090310736517831655838747661774660867157118629631507925317411749909226074211921183632139639190301090585800848022648907367415806988128681969290676519993645372471233846091220835888118598499764155131781661808608184434970967299896923240877951127104122422607811491929802029628539732935060268190677090592596737080596329522043603004323449214060304956704976472500794971328987095810294166449586344194838330498744036344860065841542855051943649104989905502054564107791391142658086509156859332994646523893081433624877416870036274387600035017696575083628860041808508134081800748318673686754194881400329442067944130416438129907655444543575131187616299187584170905433694982658846889437882501047092322278159632092583006730229743532992432361336350673666793958166229250192437571121614008915182234040714960846346768204210266453960554971311750876936373482981586287450540491722841510706495013413347005860586852987949653599186790498415248745577493542257680560140048036737369897602574274734429914721936032103612154424972074947851468966560193019648860758651879763226298721612820820393973383735019299069053562991401887119636869078586068110883356207747479488225891990792237204506926027224742768074053785656804967184843933208755264968782481221579655852950525073390298593181611366252614912787625411108055894806996620271473344766503528565907743282759855641030783212943601190359273569752889304812172601220349284268014567746915049609105399902398494997837335065110453300618663571013375147443776277238753924918193741237707790782055531952823163178322288677919351734726730817983364396999465763851924412518503569405073674835199783049475742926803249469799880449252815552487718545132935431452958705606796485383874460648525620263343798761274317564168792176654864744879338448296847634723575366372626704586043300004853111459920252894481481447361020239882748147771444084616595239139217122310452413168500779529512574267190026680929432936775576735888170127913914273926241836514549436828525495614323825032633310220249741264366599046536394244217875230041074676658714429017996333024939904218573649243972769017451331696421249542768433888251018433382562062737245818342836117748895836198684792062436466043052749477583879450620235631327100487924123747207013889364529517708153687801345627312215771836598809174842135453157616448297846830887331370285955093867998732313999795650175209157705385236331596905295633560757313378785544576967736024942700494882458564865467894101415167176784660796793465198997720548174010559975591616062643401978676422510603945823814492264366185209786127907355020089479951830345712545854388503175154350344924024929062014957325580633180918439522943439954302128463861155963047330128660893266975414402256677589465626750023391794367027854643476304610433698499521901015336774600436849043096532938587311624167619994790671419870419278524516566312679856888256150009848685027682912487717932251892961889471657042866984483195737016442025621819552917942733327874751125741990904869321163853116360349578842679308601183081447720416465473471220023627799186314785019645603868568362305898658226009278247899062981242296728742864526366209514896480411261826651404099195391053110933922046842603340869391207990839208574708607200601747111987473047941337864223315964379679706177905158533682636202102508050037998069801345109514851053485989253140585883814942619522388572654141447811888342935334258021014257314719687190882068535063125582185319233788034395207954093594419222347749287834660925506063370889277432713338015000586831012659023400998531098095378911155413387293689672779733798322149910079978614306041801708361526559718369064241540967565479718457510240478855497549046630695969498424150522530436679145671615727446448165590486459352735712220297270775785840488580885480592873935561856453147149154392200568527560703429776829674479474732935418369287716266859428586471985347609525939246109196737483483141373074068570866907761668325910273231108995202200809060664549773910311260153920378464013397103974145415115625596280136110171648409838620212718025798655084023578673685388996142081978096718151120337352708488793128794718156375547172805328980675361673617153882258361979274220363784072854986198089172773950414701603996489366885575018152172684843387613582711635770375357127720434870980975007808559733811622501259277330907254036676542781952084851603704746502942692275753305547526716556883641479610712787012999974760978023674019781242159836150712984396980393699154501385027924356488907512203625945747926175419769949478708319837489589715796674123453312725216818055155749223535458190861962778013848109565275923799620410995740820782714125736108028969352151695035317689413320227023829518458199654957164772967937029492332377771757623653913355430172483845467540866923722458183718426788078526331288093162773824757691962354034257739030739307942421134433934001799492255558519176274767427196856233872054488892691471164405249662106250774233272782403614932939518832970266624494865063586084433902431951877046189570946903768794999188875806770797289339788967477248080579075967183081697416463797349452243212102645870011194986362955548428345747020504312022293365150608733421041598487919251082305133602973828615292461145752911918887151491776995115023425678172811405699030879701344573659842675080425406413729303247365501894719218483051719477918688995310779288067455253014859589431602890924355657893860686625541787598137915742620493636234932914656080305029464890233189499134025002286363678054324336243781882448101986809395798108651130581782612278402838007710517797690381098588924212915413861552436938364737542225692864074456535171028951442337959054417995230291355823591630510685169622760748312840611288976632906766767093645391885314913338418244418644985001286520966000239470447572942559555365621576519563826960558549689760342810390646416660444448852649855552882286294798472761354740733106238013207064600911352085398103829165242896280127413239858864531578695923311583251616368272896951289419024614823114288436817522822111690541261514939489454251651213677282367946765286348329629525335662670935853507373934854397303850326909167472578353334983139637521585256654858180652135106128761418627168073024169075478731166947443416622598188676189065908036050866045133487389078584625457747539637151502489978455797991155836776162133954062984803003544750928685465020642260443367245297264779069400623524764634072151655929908669860730826209934939441851491638841326527088309794675762331090616308511327643104196066924346304963065863995828930743569856000423968837600823463712891932135108304407980470952554604050115666431862006563507959232906500659497333847503813993447929906571732211023213250583705777322643579051730619864383042739833605532813335997777184874159665477237543333434195712621291089760317374362050574315641390113414121671578652995246046644033411780470631988243480109939385518606878135327006571000039224469611220939701478708696824859292399988307891707532548664226488480812357773604687273563477861944726267258136399157363939014852069054977315928403251757209542741888110374756834963288908649619533344886153196528837810691521169049217601615502823104939965654818700707713112220083492644786026581358088106786640463948861994765745078772445478748453593825834782264585172144125475310350778196093791861826197379696381844108628147410296164603550229617564907572529872203495275018297507736229087979568961899805525671114205584225503158983554321187506851208104061541111826403971481945884346269256462007960949699879232381247959123199307097882310324312353213406296772155040984696050233001837680377896489270611884535360275259931630588045026385401258517324211560715643316436498649565079639712345037116191389648584029080195624156043586963474332055332873118921739384903158106051437153691688620604550610585763914630987441052767944566116213015666594680417868471510291848002776334430941669873062275531144262553103310629254039176517032824648223433966923873979060916098568562233737013018882009662864034991983431935611690698247915397328055446959815932945042827464754666404689055792382982354234912290195975551585386910951735519170018265803278809210206939832950596142394424191550353521898431922265706528729579774821270747260820160631348897150201863392608288609662725599720713203244265931445597127011209609838428218842203813977281285925186003740338092368831369834760214457885179571681360111934577985868184684705023943059924591585323868890035727176523968942654015059398455993563363903750553071146109922932719835144560358818603512382883709945958912866516873100225432761696760638482659669652963981434621798754145865653626132009413154763291469473405787714257842986092269239471784616526332238450966298734211175766108066459840629942077914201330464477871521413654239832401275694527259134711829594672810127803676637494947249919005953209517147523836643708729890834208492389536211981880921971379218495691826212071630915667829012085202732807702522751607259999145623812421203488948701491628647755395794527449698694029409749203456356149054920666168785244853412950978408640670702776040786094018377808788909220117080145987053896846526991961798087925210046883694473615526743955027576772076322967860097215019394243834180846428659055516382606921526222817347863235357153828525996186895808233370533991332811558050337266516963584920036706398133716961275950749865789016518841197504123008530937114674515711805756290314114038963029543860955691133866036052384009294025997452154362095076569587636378892903095889656930809131651785111785957391266698157448093536041209905130239074237007778914433285571164323194770209376522817881872898570980582057759400354764873188033801664413789996573951089484563380749858769799660668057651595637078908035934846060226656240448968693516638743692517434588271746329394830290428322221294326170312407458319963622777005025730947272705624156392882991167361984775665410462623788963963647087955600775551129849326811280427878651788163052756433359785591280882435146633283755613841386896957930719393140177139756168315624133643199209452101195518355330755851015250417824992809718099303986013664839209666033536556399671585893670563033662205419797402185417672416926414360568035824748898302925518728593950614388004830701324685943920801831116050309178705268254811177583040414899288780002377813865388119285953863746149712882919888936097992520947912062510028232432664908840718733240558684687411791194064014433249106968444284404292494473720437520322414467761914213167058837684754131782803694593172616682782456413900355440946382506293549278872607084544493163540682857157183250457693208697740148200368296662261111368129003372671152075698945839288519131492942806910263814495616701213986261739611481770465772522626590566858474953576334207073681293635815470379873139008194023849356226206696327813273812746575857279678965468368190869780390532879587911413859529783477532781344225771045253713666877557128469961250064619908221782622217355929766514693732210982465501055317136973648263358640390763646897925268648790551402404319451798021195192059208120794611957348077322806798238618092950784278045865399268910837837437751228559138713125303593573949388322145576295569007636332926157944221308096797160957626415415153153246918029115553175149875085479452527856688426938303420128594434818560600947573231993501109572941075801972205198707146673909135063082115660529718946556513029014857819003112191631741743684755246524293783612025294808662859010563094531646529493647700438349137081424492560828076192849194327134148670387837732622041487255782318384054890195831684626700725709299651986919637754255358739203052906942930832554712340225497765970681802377693847452442175021834340435734069349678367823417492682122979396222812442555838898112421959361939308873492081760175607972695099033839713326092608898050222437504563429285604166007768894890260259618252882507122341090217840542431624842344520179232646248045450774099928039668715230135682292112788760309382543131954689909088069788901903978964133531510175850969362922891543939136485758643276309095538679737196178056425841487194893959831540097056315459986556177489594418494659577870593603841059229304295786960562496372816316523461385332357289054025431073016519882218417750211055975634409173944418851210802654530606369148890185218968175194439538444578158501261354893872591031493449974903809949686173482313560118621105198404443618592757904172043130491873777174829425806728885237980572326447571690007894038352480942314636838517274213959673249968401098455923870851667404270760843935118815109569798912425797903831295869618621389126286783113453007167597114477768674417081203522190812503304594038782918763791783172324426697952775450919693743042052918760722000446678743149277838340757445455918216436307501585870794923701575813109915621319328626601908670566278368722413868632216408985591450781972207194330869512502878490121025453876756195472121897860108575609566557142350430941927188742863156390816326853653362698022923137459342534383773859951263904936688300616888838961549197946291817235568473956991897336856204428993261283116551316040693213332189649302710746308587717462419441537647962531470133644553887423474944066787754247727543736651580731313922964015610012466274183698698702160381642804518215299147972665317290028802298371311818387958691483425628565828064262210220255509426726139182121467839194788538429634872789921415639369740182737566505437429563429723701630283781676713543817799536922248877142937703892649024440785846746256509476255964818333949655622152006477040642116921206684777536423071545025737771284456365435553227413886069591968658813746244787858894045429885327787205712584914511993837507758349670299353117003324042113814315832656969425446761076798320275475112849199013335420503380443163260587437621271110129830150745666327649732826017765842030574007259775233286650319184790142945994698640553053410547993042829699475202408947273370366107487922036607526574711535844636272614613522149306879675375086463140121355024528982034526474374391047913766367659083341134263609255728081587547708248833428688881243509731867197466718821230995049022172447326262837144384684948821718491212048656763424412274317193960023993894842496728391779220056404096424932644853945319201755111407722669513283393746428923374151385164884665970249659906846177134988437013184262433349657335706049228849857879469175561835547198799366111648397343869391601800037693461989984480007216796776945362748582914142691814950434465136405477105610475439739924796261607549423036430579481232624723669255436926848142197175924560730594247329169565636484355101384228855095538217868167708068713253137089012797611109877381221774219032836102061970141477857068928449170677724824524051532489523515658417534189387233537207420425986750509123683347729606987612546074037229987994246549259789489673705858979341586194836071375435915518648176227069395979381511286456075411723781262852973695203823507810253156378998631746437408786397420176807668457924601811352779014560331843745696797220549476354197705854834813231643929036523056113813686772149828082451626760675197816892763125772897335759051788977404728322002097892429196260350171241118308730921354268074034662994691508313598989362678197979372651018038765280574944394372131963695633790548766233412869325785163297077086857142122005783181346934743332558702896971258132813000146408030967703526771185840622246067884325648620669881997790342958516119084219922308868247226863474737211230721663585064064498625071408697484344542029625335634956327243698192704547683422426738630129552420054059933233749304991737701558309170901411113580953458205816460243849586203346756165509363062021239423401719697903088918333686664962829545657985499808738005704523772716462453294759965533441553256859011691235443099957781238163833126040065547428495156093983225918804367469043115132386728897721914735012216057799869275392711653235759920363635785134739011943314358398807652423869367095829928614228383158762668306017735478105406432945883408418364013057069221161676136842080249303604923344744795336368494462933066731761391594598602934509196984931688368835952094928381330457470629632225664529642256062491528278679697528269067283379006006752980977920091465475164308201888017820986737958094227004543679709768122375785646820837790268951772981782086153340440194485412378251379659605096257033297145373656266289146045163456267143739510369790292265958369003608454778533131448996645800117006565015546614873057483215003516742009911687636500100004546294298725733844097576794397150833268366139639066036449186454458170762665780029910432542152521618192386793986420698913116733003452721527088471143421304376848542674439602639418804609106871385224503703700261999375258687760093813441591761142976157664830126480696059639865205882067636732640537905901804133369366231441269565472270112091235199025479893939209234464195428249856746630300870040658402926193982466277650514185673451830069501332071483850017104101207095664399280653416833455507969642436863488047276575907715899469372665436530879768044621524726322324170362242403217399819507053818599887649786484192082257696685402611053763122453073486685498533531319374773096191734724476384375869808767048330172427532768418762682628900316541101290347722369631746076290420577707695745124416683541090997351610935194160581789036398905152499853811604048347485818172451361994306343382752219143077004194748062846287706362824765209868894185412891249343893404244139466059717993766070915563757860760562527724445151551768084496076464126156030137612465891130685312829370923310578989179922479312208983916357781063859403892405068323427224822896229750687212075754750576364629452408984316667935428209053030554258533636462248468547811647212514508306202933980642590248663700579757284381309565771387621118466460011442533909826550766920760849310756926126700296022007991526016340382917391385480180380077875013717226233719442738091927902906361907239676306141012019434994634222752411194576826501439022046586644678316191845812772594589813949710110016922599475669597027248962926012821215932131000207030478701339336147058480292445259717178599710528914098408888683429369522105416557823293747464074044084008044327455758129014909124323293213739869570883412251828848457726317744814621138706869573864561425661588196340537999423894032004689965198056295945882824851988838165867920828443873598013806499429524541361420614390619896177826091020309934257374775543282185092206978648484045112154727737492955329626986754197092782644523546618391978743241245695350960196925967841908792340499937797813264753561871478433096883239079835902419047469178137601747969312427261368346452516425108875986482055361370370740926469007345434361809418057471031203365391274155968326442194132759921160465981559217666695440221364314835033102150775195549267899848789119834346220833832732280654830127785706497572646058531826946266253826560868361190018343828648935782623920807734695465409741310125810723510157644497760719773964063939790497285298160194159290087454594814127362896216423014162719729453680766102583770609799782385174001425580641940667732291624626353170306423801349186439034388943967484783127166341857906988164053336124264044237712792249739133055279052060473092834357477805218714443634261675322886530538154122728462169650915882530170544609553529535840050684445509443415863500129477092579428785307440445377245886282222883553251802754186618467918100290949379010568101509201244711533868711273280911990002686180549398794305728918137113782964213233960520561271506203137559887901414006396089572248340376965925768629036455439437338149107410207303474660542803086876410402233656105614464216475973966530285716353016746070994406901358054240028745521284163699327691349296071234839172244965641216456119865124204449300208191264805020697498893136904727139894647619838869370980635811119329596781547126183750632032863294825270174617786178837523075451912736932516605141556557623714126893004405373692301872683001868768810047891317058446318952245596357928999158394268522907089880999715064291515337175930142014860462269964239383741262705368772161792153797022657378837785882570838550863453608378144035730771044737438373375438994960981241958140629122004091205627669440879135732488535578923274098512153288988153177900267429353204071819934199043074858485803912246526613681035735537223358443283302552200159712219955173104314392438447849946773790467706378970864763734471974214433031985323456708063670766597801318094187372295188458100085015313975650194296794829524393839722059039877711449078473391964153044564361265717099028093313672790668405728402456076072566909895287919408161816437029921975736622190150960108537722779952731688820313049563014749745381745561743529758227649967932395565746886616874120322914416778516873001735470233930138140626931349248474386988853994952864135819705440960702616795081551661031666111375925824777065880585116427318145310732446641440041892055188684826517276795330521569885917632783314219097827523230029104110370290110461116586988853229527721363636780833807354982770001266871873073784276053099692099776463759857721367188005589735318094813241449428323374413102746286934871204080443577908434320729842152599041574777516699099294958249826771501793592797837941384644101054862726039550513958516986961099922186963216760981756323081797636173154439469756568432507278528885969597146676965082592409183824960921610099156036797663252621257601439861024697761184770104776855468667781838132732651760946821747092695156859447070505487633295680040227198533295848420141954159764472975173850553374702645220838322950587110621480185581410808206992552083781336476018983212088208734434277249799397124104808395847726044710419438534885127455051850310138115504810617555149853251511724737794371363922750266121142020882446940997888068888999930910585979274598660038747325471882712963810766600050277129235448320191814696976460615314222324805664347197487268743389458808580961700279334520135075687564830691359247826266733698851876370168850774909097942182384219657239949573006241336689405007550998723396731126194270635555628140055052464353824359501303925502201090741880046501899436748876310784804359939510201232159135997581936338759329046454813603366823647917135635000579781862084952947815403344275437722173134141679111024622700378664777918458280341336114138048342598426936619057512738061760403774784454205713953596837286065843661438838500313127635352760645891395631472380736538735531748867359665765035079880613274779756839635177676444965258919173387270238256190465347691988562127886951518057083506063619093446143764322432133288795106617481132515485137575910250794987730060111084684256753313838430662491152725279321245612280211917377085144729020087187543165893816768087715036657352635507835741499117696936682765452426457057521723005868874041685987605371359609649560081216350780993193413257598555367239723378753544937709193985839571055983055418608858064349870506689308578677213195651203068661088741482143170388799811513509521623870233310175598053912036883928043155354901609125502377782868671816460130902750648509511505062360387621934211248058191342903008372662355278695856029740068750414279544522696353986379946132919584352734823908086038986683587167424885757135556728971250747407953947396062716378780139120880311047802524080019640821773572498179959749191974657668863863986696642938062755773835151790759676586758829121586244265650941337676570316782676375080898522075110516595979126837159516340522490238513400980975237443646826824414561761963489978034938222591632679605639385377801383992834987955115698774285261078668971532786492418818816486132526720893643539271918664918685136630479568018070298195213958916720036448236069543214861463501699169431049389620929392566394125835398023750312849972291876194911537718620017588338342370309055038357993143821593464877861375744937442553445000951442828010680006324127568400073849042342821365978559183620410117703108749304725319513881008355677039634215327188551775427673590023073301562377363865532511694019189327185506320355063247399354267457730783253969637372168059569089306295200125418507444865184022637329779708493866810729937646309968281999002810884466984600516501129798835715016025092590160611455130573135454371086530881236983117705678508168107211846292098547196941980435522090971392060506818423854552563936156193436940715091461604401895637437026144250115949509896436818681158806185961289504729624158375327856177594616380011187279055338454965911718745384320497155284430603222804912342948556773100152931251918879605900968051020810041808290374861287956824401415415775713779770995908249413932428533162036479579935014794812545831878341773880343297419460987377654562556759102696740445787486558111892021757432652209554368116951172072497003432949935623630906517602557269729276606510580545162966515068586082008174951940286991924266049822523411713388736141921296161163303841761938189807282617070426184703251263189916308206410059140609260019436306176398833946317335243561774439744414796770995308212694899315467791976252811277145359549368283793051239694437282972928220373882885891807514919568186768992346490905149792964266635677568507036724342753655814894619707798244790884586898556968762471309917091436222943542563493490872731264456292132517881537408116754906115342047158508338435020080946938143763603018351009896650456378230217721445764082625378820359835518232079198969767618006757730432271102456341146925722434359396591951787270308580815992286910271208690937526550977759655265151182042542480646996081223697148038736829109688684200411336918313555271205483466735407473842360616348788469480561961213354431805352522420382911842052382053255664079150601748882206579484535367596340667954747865912597640937393642182585837061372842499204539307813673140623314510176233922424365956973101459163103484637885523971176873187710384866958079941107243951475803769236277666399064863018172405919473440825889504070678304858479393070845133974453709534677957735379275532477860836592580029841941441670334436283052832581210348786026831723288966357611526955684934474123243926564712540116917789156542508889142706879529396107382938439591099502466009161191666892873206492750982726856246387765107672521522741800720621006392607544618693579764480468252830997265548030871308176359873406949582171966076775827126549103890622122266975785699958029200367428693618112464698335385271577501745158669211156770982788008635954036739485380512162069837481277628471311467537013969318268160780675673032335371088932714393692885735876864115928892225826134985372304268257314694382789670695406377014104517457851551152953536695416593281892339349338941266342256330223937622729913566450511919625111341004648418250067748330365946044460555538882618921632556635525145059904091617151026015362556603214152044787182356088878200696732988051921975565242238785094786519726631584499528727506229887166220773050300221705227627437699428369199001437063118518091195644007911742823921489922903824098672489084445169888778472563416569025567711806413115438125361104952151085360059779581264332504486356746721492965222675161741146966956140022009448086607355342521577668998039850376403634347074276549238907738007080575987645877139385294138956068524991123675920968360747860571742127406209907576950774068128932550725052870688793701603384134582598885480189052650750734767764077039452899750003082203233443598290658959080738030036799348262049387079601847724841726181055926052415107407443729603180154926363869531051991830882182884408060326360027742607963051404022191410816117451644892254417951284369704710743115531314792803714781971144885555712611566314995410443588326776431993936177072346195861954788245859863617814985365121055173909238943157754937046766935123607388028551139289870755785423955826676877319382970703281325727248726628750514161360036951404621577581692289580071588607980311540597766622321174163713569772085145241531847077315734110634121322535059438049185387671598047303235704016695623105091199456744438512844944225996197456053258326979454531867614473749318457015377101544609367909433126324788053493916731735496135015040477330373177754407772609086447545521004826249325141960372682101279505023789588505397197104346877284520576399986610702317299328526994109783441402668916263278804302208880050894085022566139071266388233780814134867120592461476564329673106471578612939881376544199643287307968328069078511380470482645464198846358205445748876328460413885513706523994002976212108968856949465909282646868737645113351745233396135600625489473035058109594377520878271381924257717836675014561029024724331992832775051722145353796842365795731383219829704089428066945334157886789010619254242012237654961501164001538247375412691913912893893544357259846602429173357898769817914951501902259968549954959031899434932917906473425299676739519625971245888266576724378090580186091841405133104140804759080879632014917640707661783359971849891998678144218075619234846868379008331111567963720839241691889530673980195175014140712918378907698534120339706721800912553860971059177240852420660213203888578334758672912066914814847650295509395618651829528828929719506562457143934629671476732118526533621572015149008842761411404937985436070846599390943886370586207231176216632018085845654738165021495494122198363378420201532333479915402920528815973583384977217078312218568269357689378679281320854850541586858585101895363862530229560796681081442226665656842871822849978559194596764839893639236906231818247268525255066519655642080508991660949417070061130515678087803547790340248635435193719345417834337769974271976753667000306259553225030529678234202779859857710230538371340039590977155540669119845864745341841136987475306087054479438128247815196436429045754414333572894869239028222918313131232614745106982944025044156141555538915792995046030634129174776294768392609797919199134112938135939550985796974885568702959091345341118722044851753734637697385815492226561561850514993246305859125124261805295264154334931429694282863132409659266483098749142025755201982246237714584774766775113220540838696313765838134662176693771319828924382066144447230341430753618983591511331216282394493623104093583365657428016335919600339934450881097984351202763076658970004855750252035202083512735625156655694882448210535317097045026709440136025374973510770023119577889070757087665759115565296205142522374604981305739807535055741047035482120111186522439792185616273228084650189608085908320854402885773540306558713913381661166829609316235386440178759653281298562936436597556542302217144311221528246145717476379608289560768966814427267545426171891025729536397863955124456400728298296503837729673557354490400984055373751986484289339685700956262987384346116039911990153750742930774221451098554555089202790300069527117760929597938870795343560702923200310279533794805526607464991438305179235110508190418972099757459668715900657123399832106368442084124156733005440756427602712316755062558574036847310473277099231931907416750485839420320310329062819937478616049706902310268784451716527552283979482613013031455461308366749863756403962270121518936803590337981929949623269809116015875490911920662278383994613453987633703127011792821502202599687475063713550034748698827762407299623868480896150766361437389357686133932885911285764269702132437418523399138951233178001235194971921540131821800115703243877910578401561887513128886311740968637950813274400136814892250778642581245746153473112471813024236059068174981521202606883999634744722402534207296954280202189656105881719131002215214532896601258859377864541815057283770035006428650324204894813830094209036833493156613620409468576389350357571322679347212644783967898635521486842114620981750895129757256960577007299801083536264734585484893238032367028873337127152513720797770385589790541787161496855582238447256708625229280936442450995550987034632860646986786149039320026919582222921981940182306608622077080462667515323558080556184385808564172863450016637325365393850010026098926805668555994326190881439799089107373713147851573785060332249150310347911574775513609428304472904189312494730386842533711557027624502207778403172889137317413059875934530765204262316248058720732822839363871014967812198118026697553880790291211961015235104331226288422812060667867807155951036207105705119708008369572357709793257608698102690636008552646062174393172966948192186588532304292821962710889196482687814192206714162251902134043240539741576711814770567485936934629261289465448004335108382131940784305289018953786075424886186484135178397707284019288866674670677947483306746080399964798255473003582725708214851658076342888662515661337021470644808405324285825329292062223601617170068073208570239558851503535628305116683672399806356218982180527176408015085300447393208525632156931753795808483618506061965008364109173584081382768007148991202313392785304292261909617555197457732820302009633927302577042148655669829273567173835490601871076660918327201148688796654325237360139300928675177591790793927573431727951303468029231850328515644477148471378755000825959523037560931577731655059458908277593610309389831218831973299966173005497281345861323557293418471537719179254735511758257226258599820973862237745785509535598230477033906861700058950674385108034172064533278326152902201283344978213199770058240672507689599595539627410909263925257564629462679815574732284891537265991171472266517167752889089144469231284122323708599185113582818330014777331892240618452620502615663122427511861323099744025531470235878522141435499895816078605085900564811000730748512326253501867131596836488002033289738530948525382849349268712209716547800873891495578718102330096744897305331401216770265850819732134777050958018101844479226716905972842080139175621733441239493706608296855816188527447193846913248791270468224449697343205129905471977683014072784971286658231324847650975944703916894386102676931118892914097846470409032483793074991800949357584177400885580166147217755374021691929994163967889390129986278666391343581098801516763010502826520339476050208274818293525279440027057918355057074148220030743431966917220192790275301998575916148679197217738577145463446453539482229257732689816416868479975028134583220904121674005946196121024138436219162885664324720152985784375640603041008402269908458301701716197677122604961982601581701342853552378113324916680697108068974376955120549457648383508403435676734853819350920944558364887487170195659623803931020157360644993355631851668115330941429659660671053981474507560655634044459433480670625647656201105646327650294830088524081783826486536245750275232369078555341266589847449062400451232141603711520462098562312881312202542600062951794485702637806829033738457906859094108950931707225175409536811912992808318589384469790744869170081143050515444427254147170420705184648554395994931975802961420386409417977338746621875553970291173346686081627287207443344163765614774134715344252449499777759912413993394135826888267623103501280636499119394987513785748770305436291443849715526594304296044224449776443158752294734635582415033755281356404199533493815805687551973159044939145208875466258131130142022608156024869282152901662022569377511950685877302332992567985214889692050788785974099966736919476630327460282543305421443748820352043297026492507408146904301841419356368917281548364756250200696814806308826589211232126182305204209418753458032810489620713919882319002291763942693383126673511081241942593733418350484302683246082626865102374142129209591502660702838175621212617921208054327223780941087900218866323556987628997203254754700249508476216359501969501064424494013821122893365428954061758199022595068894518141594988112028309465966500558170079727443520807238044781689701126887972530935274235316667891781219787388890277868590153250486162514784332330921227087350762762956555398849615903067221253205315536637393532660009983769377016127684483439082242257236439023219206388242641309724096777252873361105289622066017440252057001428771607843352335769542893455059470624329052625137782229443420712787607417425232512401582321940363227573556367817276138752933568843897437868146753386541749013062012073243714504861447613593564317902357029342540896573525472923448015540048605408968036431435546708284853542184101904703613862978530149278759863477839966022593987723351148656747588312142248065432168562146446175392853634905966543195261540910744502704567119759411664251330483759518921122993633382572323835124177373295422692287114723287660300488885390860690224224560198439656160564396169013154042275036023206316256665018337930644169726752783749600574540779876502844440719190559101317184075178594514161337007488402983287017503749602092872723957813338304307104040622884580877913574451589399997000599940526748735023182953894039601347282203662371955745320462994948324197514483406763670146396115303152128818882893862389947937150918014028107747898297970162936184545866906679838461549436800763029713522539300735840765305492743694512650832724337180351320147839154561778300799770487232814417999993413772849543801661912068796720550580521462875995925702665022641282999135839980686171798796353080623355159804156505891216178990177985867472912354152631978603776346804800719200700670351796724728610372845659170528407321576568953324655145677041326025143129456446853837834519321255013956222315746067313712704168979288553062865726342337413330580946160602240457736306501514174976221870840775877795244519890790300951473185876667414075210260664853477227608582674377955035340292612256530263570296317423569469879253403073878863185982990473121630479919787623644941995235489795976700788868035036989778853206401803854306940487797719426088308843933867314410610035668459900065801247398966260922993662825782141918075442456788498322099405808314046689268485097065122317512933350826708547804365379045991737263434398298795488292981573414596110317631554660039916258991852790337258429094515579847558289022228729442223604488073073084237552209721993080063526676060265697819953400987787402639770004078661784096745075045281338816264311123669371715478537576322094377444603115836268586037161771165890468371782039720193482834572296032071547019076756814225082415924203871846076635249757014512485484422444795192495376870263707318546312274300255719757535944150198462351779900896020465035021583625758818219481582861559145988431536638270884707143429810418546733399661321669962999694678102984292464455811856844262524730715567657791105523264893455634669413404436067017319230125975140016485609146291097776719677626189460604027156203790700384138128668295215905170168879173045177802512625215433027530140400644577877403334271595571518352327376141547573948052741390276838519582844334985658590837930569647307658087133730301749270313391105011355919753360728571001847254497281706869950113153177513750507872797795892180639369868607100768951095538026411156547979114816829528429735082819281662527602796166610031636401635921442795487434056590594575870347175595596594910299950975356314242135388758404580994963816532378620898262609074133016505560071671208683758129819887585044263151534161730140393538341508500980259552113888745839185576149148523894400983070934873864734536934715866977328821526538469054102709680768778600195965055656105507054732753598753438873586888700792511460144104381488517149442165299111516451610178284573867287359026745583465390845146499853975295461720845936820504074576117240099781218250072371509761123435500289800430374103914607737759283956208445394834997458876374998493953444627054304558379429043883859268625181585020205165362861965270438046520516521419924756540595822844623045529551996350233210186173347900776889263305451865777660744224634781292446958968811936205651304157621453482620127568202582386361641434150237683882243801388977940821446366792579883173823712550665469707047061777369143816949552262193127747824470177324755613594636696970622042602540120581078000903810343044081369400767706847453544982267900665403190457981056074388718367935553955352997580160066392428523246687641417881279638411339804161660476733510019142089248161731633384649106947492108115451311671805507764207927481346729011800393115849748404281762589529909662754866124732159025170401682644867876913600645401325225016219821708281541548105590336608938646090210064526488621791003352895958576013807190017087544104401898144726756206107300996726908526354513976165236241116515555763648857570297635474229196670406229700009703505955413254333920622439421414385332971993511906289316534239675423872125581423022094453850590164373743266713325660581176757105977844052987580587393923853971511524143943527797994002605067244958668322481263043923830899860844994555918977828522917308712947730734296700075040580522794166665762758019363418568108341973210680826843482480310499252404128624504203274109304896331728380751755638744875401863338340918180368286971957076317929196075249042413402460264404131444762364245460786030763469332202259870510406817203565382986521540833749791752106756273701013779794479063510307925041636072005195633394532031881515290620793967282084673670037542154589053655386940982645252905283223057903884789283270211529094540905519459345937083989454836614560473966303708601069304312207197705093353036008892172166027539916925983847732021928282441070624182652092530522496974185373319808967734408543585823899218750023335321738867722201552591279381686332402755895328979167879690051518081778743364252447489052177416000604145834787912456040326320729704732451461842152690141634264662464607845785598236396003890496474256726906841902949514687992394859177749550489016566094496377238335732742800436861927192482932442940732379359468813626512349552711061630312926796667309916155798587016878077022418466554699454080222693000914428457894059517078114919113351881145399917294481441557692060007728108947346003545203945537486200192289714264935211289214379609515649252950518654114281522537555478833744994556806200647433108504951954572396475496412817363813607968680922192602567390202281857319570969224743567062175385783978517596493510019642737756844951213253330203881835158717167865374914942379645061695453948741290571468526913516738362284403757620564821145867880367832736010041509029625963234394448467985206727224010332856764555305029866504341248867091073471981760592057893095486403282740584590981411106030685187337569978757023352059032766576187540291956915978375313964972617484409382016263921154536453319200509480527769991465727669911569397487731772439234168996793373111547528880208773555849330152174329093159587726772058898857945160465075385271239011006236432661509279841031895174300336965379320322117505863735348819564768309074598332973021386040381368941926605884893467573067855699253634542954646919003304407924891374003132879983262200968580162614706775414918562628784811188712412161810885250132880740156225787721626267097413517672307559554957647407978787509249981269012973307229922549611363082882889444951789546646273227641764191754201603490276708196778851752008344036801955646415952147882449991203537839833117589423227485676596697419475712795041903846652984060067434686395125675403753148158766675113834657013948534925425637208027496491591549628338391479590768504886532111022323099453349095649760239338828307841860310839109763979623055473842004611728166940019387203448166191459735780714545700681071958809130874396752228541213374615019943896675535011825923570644047229114735688172138929370633086392554129449559946622195993398788858731631427558113960972186738416673324449082629414829374466061726072713350569204726546783960920790517558444454104326407759663611184095758120557864338405853810041597626545625050713415056340593907294775489303141647315971024785674830457485049583897183842814555506789387275891495340560301733920502789947182749090611442039549253440989265924145787690282602896174137149992237032366450218257767012453527192875014496517967177990650202696495621896401108448651846988276754791391780184071072701356587477110185494566787709002141516857900219903422114411437859670968118482338857107213288754276373841750283121908781830718596832507200414130758159152615418758760725906630777777921693785665788426689026335637088844008572365953958670221752394167757236296927939014654117135853474030006290346458753994684898338822992701183352757996623610810271407833623459696032374152229342565353506643663198091160191935250755571744285544151108320246596336189197215094886464384318207326943775759954497474147951291945174168704517297445578173537022178612866847993703933251532155389745566967048045682243221066917963304350370199330895832232341352996615809041388463458813802186968315558308221442223674560144586858080495681800314695633150683573254772233969115240689907865898245662241704773873983506598828708479640264567107012428788776011920119927275746430682010684503294195034990769657881170248489000930059464460863356886872875785074702733802193136712699454407073985132465523137593716542637118886643842502196427551116351695279235540422275281416228994053520044005331151658560421597695062698002884779832364791093406953852397819914671568400550037843771759904711919585894231895480090899512205824805543043388166363421242317066066446746707687535346915778880217414146617424855525897660254150324917146516057927954130264350141026601791302336250260087367176971759283813997680036331562889293261645950713540510803407707764691133845391163951508603722637742742010215301249893418515723137467869904452764207455567956476753130047770773328816531739720360888696266914979953200214823102072304567899933322651179930971199690382243708496523706073878256935530579543422191380395889082490125910774968159777560702050104273013610839229867557459928017938413911340020907645268466420652553616006402724502497187634364536711022085581810744273471640279160279498728958214043925804554574210523659651091069510997498287160525831835567176850104748724836432284264274849038841213846803430091720549149686312669586008463788666265654638455025622186200800251592895662312208023360055192087798483433622141406857731068030614110803196821315065064330408890270063594702149883544924190634947557465126952436135825696698344873202559031195773911413244524446868032855939692596631750115052554222770955698114030296586924255285460826423801543219219424316192985835854158279975140342289224266206232853574363602954307624217652382069239454398592636009379305222871776368199674097793975678168671404520375762112823044160657287219950503730555712265216934068899857328777115318508695832363171698445351316168407386323852668858225966294480390485846843749012239431486414869303824453499731190534780111219311675234713238825278573201122105919719563449462466925267776307309119325864005344525131861318909584213629803009780852404676850213263143652498911428944579630667688519145175626500693479410088316919882688810767308627028383818023515557718587581821843683780569512172103206705651055566008890229139218812351085061545855003209236012590705066038157336509549383021359193711463423156638456748184287947605336590385598503199656666690096153987703831493371158574483711106010822394130392583244569320215877839579111089549131468068567127241818695193911953863948794386220003982847464650529333532688625643266171763432777674195792353300516749655992731884510767964494299332926727942806011971610421853881432223829087906331445930226460485624395790895832185103141852017389838339753127053843291400186206635944713608080727958038661465528522575226306225031502944555466351144604460086164283002504069556525195706201959195700784175576421612588148136787691090998360874861895297223879236806108789670921838555588929659846759097688738582369163039925874378362320695605140309721400682612663440684173829859451252305194575874251875404658601887308652542009703910531607644863972867669075447955753380507182020403181596306513873199686901995659939735422179074541156268961756073680779296702587325677838684650021109764754885619920175539225017996329007938320628082246753266323199726703805688676617269446008462154657471167402584274388926809265554506206715427882925478924564640397730620574648222281378687895712785455067238040718502671957942575365999983486519901055882186249155264767570759566481804210490428841930166658521474553376427265844181520354627992026698304036449571761429217244279529637467528482320349244047276532615265482145508961374716746802853984948588468827969537398102709260069190553109661669275157583943546476236429984861968247994090612014235680036646657461013167428202931333792718864187637062758311579696845796920112923562640404100632880975272839696086905190687818684425676893979779320017740700247055692703232425213343574330870235976747714922556937017095442406692482051487086309866221654712141570814736575451425921835976263493233429972272434701986191845592724021014872652680998897595941408011431332163671594290817171294759557344382763225288475025421414795353629352554734235340608018411636337177118200299799478402096861405924401587108782274821219846057279966153506493356214186981908941855869579509913068669399234656787072173640724632177791247530029139407477387955746069597717614753409104099285000434458927336152444799555860909673247447222221661578954998354300830218930969990220253746353556554199518779346105415219352990196278965133343902897964178826312690025054344182111292395041965247943558246120038478570799863451409185329325174142519502981693716947141082405419766726426174073631196941856494786341124907657705345407157586931042239359977052581267366839947874059251844442587399809092343213098278124167324975393177498530670560256178370125001171503572063100432148218881567810456584074570319461175889125516623897546614087327879935719620036034177494116412060132509058027320692466036353520340765719787938190857753695632426523134119607498443136261189983538937887884975529093927851872467302616375764738807400156316636783801334917626806520686427880257110986839119791208397224574396350436331681898713855532795828244560492223501947942269136466161191001543944619969259298954447639032578586814514630398384093401304068133454862553949190250964019149056361076709892927534491732792265940311097107655703218014878277931364864074518987396709946932105272293696222725890350806417007954908405782361121253654153169688792498601950058991537476893814975614934788937060720412923202025246461788723515660621843724383402813633398334127066883914880824983119658264849949165302454562777260623652728676817050360866244459637454558034400548781482661290786184389104514171603956174835378582154243352492028021780975568681882805520347163627169338444170689645540087300508388207625198665048208109049188358598899744185813790564093475745405816677544681462719180439200420740735322030989547360608980060632150295553848397729252491464392145283625772971662904207570957551100124652218901842607309669084889243953768253722136085392511131478090257451483563931615918043076534895060715978718544220709601353682239593418681470304770998779194350462301136246641053311211262826152596960260833371918605318912353227505463539519536387927865382445013552209754334328528825154821751977987303739368291482945967395354210217425539535705053236398709309943243593748570246400875688048436690031348494175289277425784327034829475511651627528464323067713268337915432243829972801488066523760691853988383750454019408139017164896011166530129782165330844597225558805731486129728654711984211294528408773192264269795475642188715990097232718920553568010140983593594828483437477564670720461986005298405112409775943065547352712794873678794844305713342202721996154619314030167262825912112289570868442661437077796292132072307115141700307182039711711975692361407482923527563513088584618590633094198677676212630133351314131477788534011938504999104481485211192350970488516148493937907819204057446178816716821950739421737078080062590810735401307563185428085125893039005034292364274652321463422408418869182057308396154071210110110511217147626830332836548887904410607112196346259718202617350621623121536248856177665150445243731468259994047973438246069699890262592522487976935610991912064638651963708109157108743327437513335833564677095408617745655185191380677532820410287569204806063348064426065104924597142378574346044321358039672815814860384881053845379284406150459282115668072548471357276833384805591981255574999451239592018820394504275215395671612337758265719172214969376165315991726075200597242496459281963251596036406561741823251294980538857587074111484940681627791221285275553827388568449662852100394055985587832432356632423370699399924885960885911368399192694362163209278977157875919669889156047386809251689170740179039824774213814757470550157198992066630044278877514339812035090737462515990017682421364944643717196577989800988058921252523450591410928232586571009225882613626603498290070088009310526936891957745680995914130314172476181258700973222023593054466495255343789860994183351837860826324963851117930590097101238057033978335699095391110323423518659581269612131765211885429734913562676873486715647275811987941241002271591571797257284527502716091056794664553662035407388416578366608593568876890033273313740167740453670345616681653702373394315763154046603255569312983488173523139143739518651955649206443084603653595409173689024617882958969802033835344164460296101273770783466149491863782723093068194025606166487367622700607424709663613332738093650289690839690428933349613395147337839911731819644544502293920341172438212397134829545472724409704238877333054329905174716004701742948647866388452577258953078038626853011615298810039454162864101888757543658138380342593969761362310725360336280670462925803424911597481357895778588420864569773741339989609309403025810663708130999282341011599816795098899286830591080023118187417458729780769281700037756875388365921259911277150173400511800398300735288101877902805487284288989085623272185790458167362602424490055975327201587379950148336466169644858485007808772283062503573170627631167727552325836110949545378345900191467304351851821658417303779640281164758140922850664040923036357629452406354384863912019071539528540825213475004420128772842687813862422932712948099785728306490154741412411888114070436292874930778577684427525998312036350267011730021327144022567342477566958886633452598113660788287967010305882558522959384341837327347893281774953155091681390035732350985267636147042014585612956322356099723428200425523740977998534731441078701594811961230484144813067881661667035074246791184899979978765246548599778015888135849447209848686419445097201624060876621967443296049291288716365468399218230871352165926184973016469085641524898892258429673103168083796502162952134511836074071520117824506008266538350203648271969434913194199801223908599307921271197285115362787529633301726162328745971783158712760339868584163553404737881932328580959171047764248818439595737228895558040449724346322690435776988320748378639851807022559353956521865687765217284160909409644669380028115710917809000061190393427305438487295062787041945582630879666071371353444735511325047550160502883664094320878098831877318539411314408068766725033520723084814339250922059626532079238166153498997060380135503729682334153860030790192386226890246491209321445614157438627346822067735002493147561453714901889897093544248618959911463533228044787766025371110224477810290991530373630116825591284801202999717283738932527837028255359448205692779627699960154200512459687014058603348859771740418869664015685725053747116030705737914421574347952592492315423277906220070071255424675463365398337334552494757900547063614392723756693376364561634925389595375611709704499353459188406901357212435279096816952103670429194994945189272647276379844866533068821943202226154972958954146170631356050562335190415715530245604412215890336852647730259362210130310274026809492970564310626339589002043101285286056199815762053208807273034009164091769569782694557698798218998611378834728467088421611165575274622603654518075821052030478581962767001187429810279214523114057293300347941890724521842866411693647453879252699184382299984630728404387640459785337924608061148397763547749408110133186948032025409387687999297429955798686560826174069261615049348603144738744132527096905921078851065684686303798979012190085931068838243357282247202065386679984865102009753922530901953584347672729042233244202571928100948912979384169555090961804398242609513264675279059494860634801745309692206525375671430536312723275512104345392904044702615519075468027900153627059879763267424345864814220904443864902967839960691874854832217780625184543358719875317274052343408928150335992847005416972810934920193035811672656010658926398771592198379121277592767928472246312822523715169808186454390031253031402409676842773846776160313579106130460738510432163755115680489712990649859242036206263053030998707155053663674153324626726047129302611395590048767722114363250975466932616164932598583133429071768315690221109775992973634636411392814988300353263712753092564637871591881045046236674167257171992353260939590549442049523731093675888322595938355646940867070531546536004124905953671023808661846840265716332430372794029089220354715506366350600335615001344640402476009331258725888698705362509102409440799407044516916631906865294846523828888416686470291695785149037128189585416159920267061207664867720916081043887380409091249122505303528009598197378779202716403183138327941143567159297219130573202029394849215881096347080175049617673902347196406689630433943157574591563397966917290771672369068995184894837758442480603124765152597081005718980596268675291720820366423056278041176006360371944758514028770867412561836685666317491371959475375952976125622587387452866429331216516827668644644265770426848902598190324775872519489492411452549886211058273814726781361943291415684683490185530986806872972635966582209418572924295569691776128192512286335571871773500587347416062824657353201505877770133814295152090483076584894769037931657268657010299369403579294311218833685029453708377943713942778117043689610169225270693485820758554119063813078632907317185137607279932409235684566572137120080633779722150612622108081693726140697612317210359655811171485488562598604126274415970542095667786212394651271422606239474876277103015241471800254485466031915887554076833093128798428480993757460690836981925670432679757567137135729735621940515750187752906353038221093878759840606979223756434059158834519702652205099961719963716492782487368074040203952105048207663617015232905908167319692616386472561607906205173236602534337424899543465679758751579231883488023931720870367506840484764134733341892605569616853142842944779751400539980160641919337174529024176422245264614116566141447103528777963673500992266604240159183261265667683332286400954431486070768740050804118688376879905393842346958215545221467038754839894714296744663553180888468102799461726009301433238414802281949766845582682072725727474559180270584532589363876335232223157950934133071560738898018334740560402442790469528182196776072162761511694776167440698030975918253846467377620490097538366460810719765512972316289436167818922888205578376665126530452648572876768875680138232913162142316034786962616511588658471683772306572110584837288030580134501195778559711930389321479202935364818000931835301297635054270439846488365285558183344714466635241113338325781446801280523792901506437482470435300152102248206102345966932579287079094564781213180587013569165528412511507995499697026883813474345921600639725870746176442147305142660442450899420018978722593473448837054860143091435864230913329863985014187157868565397222845404581427909120533849940786506041118786464584334767868326120408670048026523745726938833080684277660872044197397394532177282405035791410775264360517950431002482428405085273721952898316244450086722152285046247065654208719032197897798165425878276029677666173575687918371058071600253508608243674698795414351130097207282795540405075979609436671674924230890226353791646653885250972475528607815709474472051687455751032149841989218485529531610851707801112326658408856599973854041525471969948515370645459194928357607192250494489094378990607943527024394811913495976471099762534223740120521479526779561419128308743286862363665223281688231225993826997845667854856356263102062557484741248079559542832441425661947647717513499134265054414657324789522942181018075907234447186872116165405567040627632925292671067105995314728200209116162815098904719400350560472575513253632045382960993394344075902199213738357842320953262443080136329754962591966839688857386814434055476971515897615019576787272018901921067419831985646672038939660644168301178239077292746161497877369146162822778281965987827076014626484537172141432491035339013357068708552022105055118226115666831091856894877997106772658829399700482664636155867514602568152976678846430085012342515171675918443262539837085039344500521956730616417862881633221857046551299818108912324695209152108113823278489925071577780701296868134858760917385058296692301827564813558192193705224209974802804866464258910723128592941641910210172927619470433388168347298564696416786649076558109321040712765853351513937751780395789572786378519039501633835635514534915009068969251103645244357389004543901764874242089592563428802133866796030961934210627990466232173105380869023056816965235331546082897994067538071433367750229666342785152865385837612272883564186710872568645831688889108804713542370324827275512382907424153554520634880077988081296029627030362460871901202738927765202116095447964808907243002507439114059572158656772986633521103964424116463855325999235644137309659662412404392067470086079441899958256679763918483341918122404320168368372155135788408418571972891312930585904910735883782846684345663720901940527565115257468666435424172874540240193192628573982966654238128565577255779071144054235944637373407608629401638005521794590792468487567148626434427119465304085554835648159302483097296475856329231478365533329956688576258727918398088035125374950973284939215027687597687249277328426731121190084281925756866037371558001064533445990557275325664025018349813470971280351455658880165503073227503995299899762872467582624939453847904031922441046737232238668316589174510914212777425783490716696260941053623613529407840104669057383425793814575682568532915579680958366790764187452352825659941925225421581423982569007884609945767228396579672569909714870679203489707523352243893492518616419117806690128347516805301441444652097077948722676137858591881745573664064170488154709641257063836648284938215954759010599337034594068041592183872125377379202444490677776040456128585550963091624083338056769720291894643423878368091821682124680278195388864164978620981034617686191848766498593262824809130996336142901895220967807345949654755177234693422720389308835926158303361761531019045648340267114494536620617379293162738613741786849134993776652742858029324938893154426327619612982201332141531958957613998398113809653529625644173198798879910061565381693054945261850675012562202249003595467647641671009298588132056256869862896085572270203419260964919003239428345176533817910305433502456495222327968165016459343462700574992105355793047511585882241063573259137983086050871869745459394460213748733192859358196620861798200418630976695402411877484693256870584013999044487144410569573633525840417877727225600593740442589155609378667388802015656281648399619647983091233514540461311819029286178888744896385524418767043053299488634116761726274725638140320437110296394617129309644415159174061628391278543758595470015439620534797988549175945857907986217174624384587282356715687801618231979693886687796693650211209255195891341587632083130879910937036444456897610798401774963833345375299950797551966716131408155151802960304139253549931448522144320395721622815089795158913379971364546502364502352787209070070111869346149398405501416529910337860051114948079558315090725972594760085513806924338383406782680483756305575949010978479443833089630555458989418015121054990704996899934453210393571747817877047132309705163457738833861760001997762582203612479340729885874144943733590356924885648034008872633737471808423968821375584438252305953744112234331838907521282904287766615238407252740181183057949961440942653976783824566426750234252098998699838594145075398371415517292565207058950380584930627124397306130305900798312020013885529502883150464327509622932132613258134831890472748440577700772864534455312738846178967496620934371905013787606030748983004526568415724590181658813028344343561891454536681734660850409726143770616007655151252804843021692403689585487178220462285406360841175184133930710332436638585302148690728091671857833931982186304964524620766574839476675839495952698779426436360054230878195249619226961913469658663112229586856064598691148721990110062650261965671588953839283169583398419306823577632140566386291900037519141418503498830021491518554405678730452552961888059267999556399814567496428257322444878677919637975272380280185906320101212545733244254797209109961470784847858388918288898591273923835076106251265249491977848188496818913224359341128142452045216575543573390272200285882973058126132819606569508541491632414114189187133346464932470382130598587939964490045631354138911530044515075414761650568696905075016348046853220447675328171966937676814207287620172918639949755111704674584305776670532878962581597867202754483126543260798934208461229205187259582960006219628397199809456750556788667122598890584238250456796456486045709049589067456144058145885204592285679202953637767869608151543485029544359232503178569232985140085184371990558082873206061249993556465280664643300260137612317003444440081254084974920987159080659233707681235338900505665423066898240667887735411728256080762772960499912271342337923749620405788743987579507745401741673341507179102483048696549909901006114902114093671890298491822022219875405152633163336706742105081999876770652209270105297712537987669171750408063971056484250173106331648380242593661903215367528969947397395027041321972206904480596039732625756553743147320184328026421528577414883071378193939613816206981409032430680944675800761596013358223845754815045366875509524354659507852662130291877377940487862002199561710443918987310266983800731313802558727728741810418164455343084459326472451083444055412908064110491745821451606133436525064389142098643425291737335634318261557132584244143189501928597002255031810260487106057709222667402350794791359349986159472224993284728624506701037566420903654843333783111768291502391560496283172751736071680675654552160565103112737405118170977960792489429366986780119230044688788542614641448923056753655341790588427822492822793808956058501785909913883667699618558331863830475955857745291187829900103347637146325831617410346410917416459022329413172978680945837910620026379296819566555028231745191658482111725640109221118215811003230074718900784432791255624713321397108935474848599242124015339776186498194431117893931089500876691933713547533422201863381391562435327736469159229505371945973663641607100065755689619038699103920456047745030202722135759530063369318252873042620918189354162042065522880955036718077269372139725096940986593214107568244254705219563586929216555620170614901341425253543884872765484412085264966998469169160550359982124692658933796475981856605821997704664821807127014910311101957497561182167942875923488008732592901082058965637005685487501974830322419544203556667828882709077271572840323054224065565627987347828336473803586216548158281282637143509845159018910046995024797534296152701887992329784323363633641535234290565668778690867292412119317745872658258086817068652326976210323740534216688389488893387949457649129276832472342960860408516569104288594926634695657732227185614391787173647515020721080481828462885565871673475045576669504956969838355751606580107865172841541483228992399131485162404825959626920730802349541265747951736929381782405284521718001543673967125983262845614295608288700320560052874601524902692090226819916110932586503798721696964272293278346650510215150738009521856515205161102887754719050852018856269800063034850444088915213595975675143591656873661162384370895357266851139472441222409982234178771344928447214940251194195263614555472814580217105384268892881251726462762861081583203057795157457367424890290695646303772158011179120933591153750973020558050120269357442403735749984680021136686108277176772945363380760994329282689877580061544918855876780433763015671407844861059920083078446676368525881340276896200711284154940795792721422153049972832251536552820025445884781207443636910482245443164060417257690832830550217109764050004129929978801238634173614879214743636748272938766409717579637245981563547269882658413640269506201526556662311082429750711968780567463307340625248361673809813459984379355815207964043824474227772495175830857200467691753957796078773585219358206789648398508708159558876468270986702983162199201157193785314512855184131609290708641846896565455661275120681326065004249189422503690517722833983953811869562454967490074892108629090312058678076168889722116821970000740370764375196417903229105362388809388819189551746281089864262779284725974600291094527895910364127005735753980593547776474526188211158121145785200643847634327253773750031652222984991682831029705986105054421663489563471327875096867135104319726422604823004990850350215147479299120033314170570232879558588204544515763111303344275826145259805854943589883279288487655721823123534180639044363731748589840118643939942666097508998044297094428210447832478140157842837299692961761886483645238459012644405092231688069326004541212984468787474648824725438274048641061159932640214598277071851314606912232922015987041326087158021300477705610302236584111343082911510532346455811263194706661164434757711679286853070911702258706702941716279967583252838540265465018824854256472370264335202954455304012973608388469682859960457765046029854982770460565112390529911192703272307214407502218997452744517733024855419504697872246306256453241872351564852209070826083139177263246158959329459339759887750941605739899468017883794064046690313911976520848427127249910194759076575593142458615769975013780159428912166962913129188015811357434215217679180653081430848218661624463002603452053847562233473984015149443210980585757297538571274563907860346632586527391648034568034809020242982516174967321756658115635378604897806661466604042475706025873698211599333762934864786167836009945679533489671898457489268572680759878284610461472265387618736765300198439235991472981556237990369160084285535866089713832219954553668775385324728454345637254898165230184906589043031461935931688210257367923321526713727493172479215427060261984602195667325051772672812396509474122573507739449643525280672711094822002780029255117938966139682404678088143296009193136978131036336412953996887524674007707786531496322088147726249068935454083032209102033532612417792428369851689476968341849342462456234977102204231555934238828051209403720874468841738523188417097881059899983345467433944429881726347436927297132704442241042047633370725525873552713535390218105651292227026431887725225272231756251593907789837185887108395559750217564083260919916443440456033398344979298987946361448727284744587256469697913257907887044533333548988452805318136309609714689032037107899252437817257456031532493174849715801028611803949459448611506627524997486770659985207038342100955601554523471006443359174863603295752487755180443954498719598525360639350133360675853476454551397645815943007195238379935810991886121113262368232923471169589139122798664668359874053121851695773367747999340078889153763626558494550402791301491239831436721276899334632349090093151623328119902706755617981868916307659518346157251777389853111609866396039960441760800444788532086046291973374316870689291758715118045315291918659577927080931235540487739864166463702419188250938631129039800823478916427218721035067997010369831066233178974552385272017247435087662933013189138836889112294102253076171273853804761263090113418943491532709683770306314793471816801397160042796480193269170982169365844293437068120284748463985315779037095207360694124469290646337945264633539994548816648522059815155447996477731080218198607583671064970283372972983371650214474652357034165279541502706493867346272347364630336276381958367648736012940392096570253593880641709478451912712060747326380143640256834498019961832697058955751054151962520216979843698897746022283595619355394349796157008861539363906328715951967678940584499194500423150755657347883114466617009281259744017327628964739117137154442099356226766011440093442367375206462635420361914261354873554598956876829917727446098725432761787004162911581053405195260272156878185868992591347298412870606710494500610795627625506928616791420928310241533323655014832406529601545430203442599892205996330929617661297737456433983615343008415874636751891980038759422731499965353447081555675756886222276219325668502980426429783250643166014058772026213928447768592183925099488286901115933642206589277304339192849071147792383619058224855692946816646597434326631261536111884658327615599066904479188418048153761094068931456805395199027894176559152161415225530191264047440881119351277955984443211333568858636465471955454507731861877972212112191647411417605036190877187898728386395505861833129860737298204449105970260287017110616670546934873870546804223655193260040250391328335901357041551062915594747358426261671554367007022064513730437223442585126595766233089656802337783928052306660468995600599436965410110991606084100603851521512081834313234932444746292896393451668591426945044176069031745157014486127178504380274727710136489189719457941013790471778249012846719361532399884520898744617109876942122175538639885711662616552925899819236153548692426508262442088978789572889112354802458256762205360446341194161835708778441585709263887156753326131301361334202487689130586044599187724451239203012494927911872339607816503185468540444036350748574352594151990233325068546183710163818077412346248465537171494722255873433802981510435293718829140737081444895371486489322927488482237526120256580198099572772003473864346776019246057510720580690536606226102136893141267853757649274805306152624512161276182040176236308678901372991247519530190717165442890590595798150644398650294742597671354097238677160511909922240348900913733799205181141588320360772845138605756105618884921284513462034167201931508700263965847259151139734863218106291513906569804497894142913841054858420802304239354705894926117484703686866211146590817501528028933773808641509001887923586306988894727818344987375182806995408781888420737420876781225155970571628757518831872122609868141849657534619092494449714060624316700606199857761769193792383062856981399383684589957118387253162467900506436924912875459710048822087050037621155746819034779133451439336746919048489841492184539749590728952440220883698353617468797339912919295408671293839214744595940261426682586053443460955149730124636850303286460360579583191329448105088995013294814477196194156731106845582315063371673162971697786078102264658614311630506573159337798570458735500885382295774781754231601378980838804483584492173105940381471149323198787156066479244934377667154762985307372465132129141515839380571569258437682903365665540155623272311879032492150430426445926688245310568410638869385445879863746041387191861540165794393002699876620875489221274120324790783662505712881043351136491344244514276671989611917122697275394531397418277961022876756733377068383630489329860477950503809413048810273541473924926913533575448341915122474719139861783663177614871986597911780189613906818112490472404622555270247587963114397412718914417306111939371676310574197399244643491583029162236147888679934447873876087736418741753740494441351852040238329451319114664166129108008884651691627953832091341359278283799188069880292933014983728733176958681398941193487808665623771207298620340411745212561745904015203456695445360800024497007791758747708443658381905370568413059489895425902171962621850697938963233793201608761124554710356179453709062520088713226603609005160611145442384559560545675357150496502963816841936274390844044013242049831339744217725803708763801856227749421574675227289066891377644362389628416526517443583991656706356447562324908285138514928472300451951831351766155451228676733747317176702006069962338608559109054413315499580946699608653040791764352440829052137541227260486480797759404378078204168072267673472692756387246937105370618236746713757493636764942500558515943052189671255255194473980881005891322236688492146890579739869816081919479483732350934086680601687734711945336810673599999741753521089539237142909797695308938801415517446647076512373643238553763586103483244506411530036014117420173404484645424409990870559513998417642930645085923393462856157177325338187535792702101348748018402594182448084992470319506954195861455522153277002218527896907009818148759184047058005011303121978064829302852510549217499707464707146214014348158915576050689437339285037755764540115500813306148607334941356352156358595664820376486523097583788709468095758148692309320175968165659481888473229419466132913592797126788391695683199480921031527473521194544311411081977371654866025328641077896043601599363414087621913399813626586009626249876984592281322902759301428299577878809384048898070312470082257232448492239799356956497966254859661664085664332808424919269648803312284711090163211905448036763489755616622926392431198709355502053895632940484207252691381235747699290736973440936593069046347960008982228788210052919246404779200279194847422839536491850402079515562363286530929890609327573676426721853553855154972226495772152932357546555249605866351029429987010665836371470128265557124203621842382566063849810235736580611841241130160296400452088356860324519939844271367863878027267643976794189351818656746315013068180748128680599981622274399180791970745050500867963588592839647285333337580699152274182579077237279476277961681464837940655942555838013840704710285374226179620115008785143230797791251865020172533157752624833932345879997145781634037610481300520638100094479463328613244779025666790638239118346314353310914650721973393655238917764751892811946780710734939450388141218721801902741537041758380067066359316044734902431227424355039815082361699189212167303882434815086602901157511720482149454423225867736376518422054918799048796168624628786471814934841917960012781813390939842575602014573501948098651222498645874494992925297525247512733165951597365383004084714695037237637448247576877091166384992676507754079696333146720645971664837644555102407074351288547824733622583443467022615942924775416972751064615264029493675207743783459274354879450989110317303201625655326975919524004771534354223107100186787439644711144425846700998404679625854991098176140108059975276313606646628019379962970189175679927424035907354677991666120639017033812019002119956344497888774646503507192211390111538309731069477456191560686975400212960236096437178250460346472504206296398799239314436655286775182304033807412926350703335604509053019341293270022444408688584588301895758105223579985571726310119693164689178008224201054410202226499209071406453669989275293752299447901866942822123209929004303589880146999365720453669050629687698814718750119088729953229774538524780190384065496857618964104123450443593413949834426329604330138978378073344319326096688250290349877838034068974643804933065604272172056778493095839279863898049762185487550315110749831547926057065664858064041544255719472714988209926806386667320981418719874637503943951891831083661933580960032630276133808268643583146976006324638158995442533274335190131948639684450241116045206872095270459443698139070278074564279559192479525143125498805379707562259305529047878293180270515966908875861887711350367710491373988949749610308950067271759768741736183057776481791153770081080342513572869762404178653541723787417398040333788699269355154201608432465278253041743603260529144282085177908860254562316113152917767149991465172881330040784196822656461233749175868254771682206918747255488673293652328008039272294403130844037654616644669129174141371278267710916201363996065127125309504526605888730826730149111503559647833847304605008958225600193312604170423976536638842655550716253910402363904812005282817442996211713661446553410970361198952997363716843491458821677415495617290785263776999784501404429778633463539830753557973145170803244992181204395673708840468832136324652607838055513694828523952284115337618856160390360529477072634689138492405433229060071582787740106631374894657537758748478012928256639793037585743141028386489924702989614180755283634579492444674572117376425568046053984342716376273728085986534774542393387223660484589909520545442582123681685161696251351110507048897100832038170498993731183649582555491589707712613548197217750721865520439376965773390884268155022828513517196596848873771502892075827193505081888015767680801963340325491616018960413548570891601371135703324668745194566676645736141238584266906082932381297411246983125842166563033363608281057351407986110813876304151651470916657909104178940389394686136787368757874236009616363901488943810744031545556003371355489657778576166755335176581721610551873726937671766204382395976072797353388710355081826911036585143175295513983785005040940023682018569808541695017820413617788427053385111993223445269473055910421551344214840033171923532036137074965650319436938575157869468455567388475574852142811786422914480217212066390843580221917662911186790889002529429674810782993520300187737697730763863194809347279274112247199649449016997077187304794607582838130013956552072410851088994651428438044249988997951503302151558343571902340000477901450900265362867114734398045057534425695418783351998282888523843933441827269494766251096637101841276871985165255912228300562277241024214434140733339445099095729761142104928968342576853070338286004177594515966429422052299511429207428228396946878732447500012314453904038748384714355544769201834479434145182396318251657720641758379964158231863847874584314517063824241140124387434648882557462373338621445250646566479883663267840649081568760043599685913390128099845831176350673006848422988413260006701500477639263230898669986396403253977471072374385090043927024557916148689107664667404022405492118049773008588872359376787266535333047586687320743870884949250823820805939305450414359343115037569990760339076622180684658596304284524695923438985149707338221879984547115679076256186961136215644621646031061576385739050520439030189277437125553602738819065727996025649312138589854455796348312636150695204720039296039667670505615056402024442330455019390509713516889533840970180317886422530730465711558573424566094734099889715047877714686488460152708572484359585305562826260740952049817103939149989195852227848504591135415206174674520139765645082656908958881858370759853701448798239595015680974226806675309685306000286476082642643505359286831924684425620214837406895440818790955937243570002713329835529497307587310962994756051051473618287390015738900435157762253644015432562018016598200976990885291620874934880486219110296286261981129511148916004626017576004283144737653543883992256460034850548336521620344141100982463187881826215646272322060058680571271433771266709861385065817761516665208743292896062037100092065878929830905996698701539735871542714477053871844355611364867699964688387988822177644174315984497057431061026253080786655348744378606821065470103531371442177975662037866939827177529681486829165415797657484219740803658376290987631330434052007175157656400901314525923374947645368588350233696515762283195410363042153682008460150904538767463177031644565211341233801474919000979230106731257516953513133121111956875431934702532403122275399705126930593395430409322961635437687038919567009569201437122035055204402199405327588792247222504318922229881424302061964423683950934518540836692446927898446913828617529072649177961776824633054051096806541577433324985146020274930224753558708881197821649021547487271480772409484540313476924737444590941418504603720325123268418120452362468826746152952230371422325049678267108177192371457810879304285361003436989652361686308970285194940765402689235276641094006171166254574360613831355611503077313132368398171429124984464144165853136730613192460927578497065782347285733818249332855608413195970065743949887953044184544859581011470933321206835732846457353253564119792665156758129032848550142938781043918809947208421740473846876084375930377609807089728156832512348126645808916885613246644533949760517511833161612139961952882693411851566306254368157872874565406796964703071703809788766659819288605005314241582406577574039600582873108902468479956620696591334243961708300722760570712024508369445729527377519280764248811480452172154174420156936237361002644116426529655528141520176882419622066834061161150679548920156796500631569218973878638254352555415370780495825649458876478896197948943939713972919609316356052973413148265958168114470535978872332364846619347372139900716744775289811763489273379444442073338397623813553106061724481587502687703240699903852714814899723728784140773681677656191862651796988923124912401272977719127660521861605678284060917515995258634702088369398819982022629115188310817903168831114683554336752942559535176920746294404352994734530801175043744433429052057002883360254280107494591318800461763776197737531250417920394745990371579771136559627973892892551233093175000609472034404612814641350640780766447047327361487688737238502039686155527683954922597701090292127417230311829650952013066626299109172046344083054683878790534475682701745996544267471978845677821319639302133584215427339075767240660084541047917610236520039702361436428575010294946397700471373214537871447716408045082943809103568396303122916084645617588431698900311381668625032758376425224645256349458159294613938963737182404346717332406990556543587645166435823455682206615658052845840695072009805313851039785278043475945471141023413180545080712870631422337147720304448410388468417834962573373500577952891456933327711840328005232021678488185216747740606391738713323267342610687425620177046753968014218882809562042396944203720841361559235677032025819019616198509837783836542307799727676335459431124355902070660711654749568039133553601786444521883232285122403911965347590852489910860864018232649935297088111614427017641119659307367662628100506203410889580741733971394399757866436071549110607213272588931599030818902154790994547929787543378456185833078242219239346354443605796780270871960448563088412786690763012301640825156369050621360510564312252206347261896386676466766304830226292437439165759602222589287159089517679056612995716673982725667546356058243506775327062940899597994779546835486926783310881663981348705919711775854425862476206723987495847255768472183530221904909932165842331198423735600599362768847259370805778267197207396227882605327902731749400712083872826390954275323614104276097135013383579065952423851746977793801827985045896348824336852042885425367324204587180284799758304530621588921547303237483377808509512057311416063007411352722595217144425097012070122630395715761867302428440346041090885700802398757274782609939764585852699822674317960722870334984550052100073349477323456712098217383913449992203141942244339407851734348944089907724300570818121759096425656753474655721253119083152413409056167953435437507451254234968713837447254484774239824644715275338814669351654309652676667177044134681840769746526158482499421958856083009933720093595837049462475357727299474243984006400164712029470083865192443615820831579491316884026310533419614282185045342083150920243830163122367424610804130845467484292267983249867964777982137754988200161823417311793222100353132657211918658452890159028961993749569819973330483240660814793859640477280564132731065489135938986356974086841060681551772463455167918281708238478472797616882325073843707179135627261516899339346024236426527360607001538516723226668252658293709969749903013706716376058334721511900935983035774379958240580129628433308385371327862815872734246346150047829446968484021876490870461134261039433837188067681255009087362008020264815126474383786547646454674660975325185449013710473553569734479918601411716994214802703825078876598203442828026105961952557587377325389303196110930980060231385344917128002369141126318813246578342714463988772222192420959945732369196141207465477348377878026744208415218040654251254514395833272337981552762299159884854079474370714085895177768778822568971954915598815461096174552509128685419791287622149823304086588573881020130649741760493304033620695020600405183563581739571246509150613653028176767834362520655240795290140908679696362084181509835269038971053407535963261590574521988924051266170996774812998688097287413633721057955195296300010467737994953085387423065917504051313227445031762214922359145677221889218124283192429468203523008548874154318218396503588643638690079512795129433034158202250530557737393322526858695736305060295048338336259175735345471732621296507561811485883190352508051303467158573155366934398633846470266160285419835154000687308067166206359436118825838825586012027774615973338898676586489001853229598061534592418142194571178917388604707947740981055797343371592214048106501627891623812213380655796301363606279960604791617448410155536535706461017923113130097943955256669202257842491434846221894426890374725903225527801941023810558408656763777598969545732483064579978240749724799469475559564811102519953972951719208478316401309985667772756575000968725101810796235809015576469115941457914712251234199713434470696164981975566270491750325496109693058218032536914124393543811162236796314780127546258785616710599541379016555368775871040630946513923503285376119774976018735847160429324084262393087714659223568993408972992292036492854586887542278371405756823823206964588092632446502843379125400923269387087834855186633291276014619629921084216607748891270891024407997553141372757581285586906432077033525683193038407353447719423910572589321966035671163037399747533772921306384236923417304867401519334978611852214348946532748572992492977048459822298270660860980679627738621631260724646721450402691248680557382447006378313521739264218324443726213119520177931816061034126455892786036673747038332120723120890903900781281307215260032673052296242282489551996873831155213094629801773773686929896304916033992044670013730330117206811572260359912579370241183801570109793035463180531674185416432781279685930224593138621923491328449293490746053706926331934707788935364180073826863789863793127837944558343497590072678113923713710613922096210755967765830330097519875121410843413663715538669336582555552935921742762394242454575605342068135772652334570573117335322547960196464198091410092407221037119214080743258885563377751030787124919951320315526467502799067100070208907076206276318592495108769939475605816268496190932931406054006759602763392481732014533543365854677368573463736914566749244355587391830670383516233553103223792939523423702784750924887485913178927421336260252027328120136601463242691896136648491304794888175637244086790996478890189954708243207473544149405959946023610553376356980964920246777858703270404130238897081646845607483882714002083591682336726923997578353198282103485739443768659162099918030651217332697767328584514265422897018596300530076670014743609316147592864923762900370945115903739688636391648859839231752489943669780911679969328250048504933379259493888539774102596104469371665548441798503079915382088716299846339502750130408890227564222173407193169914629436271151191896750930319518003751514386529600305458832630585333544858416672588178559320403296796673348698676159392508465508269919662643911169439416638346861273440285929781797133442294699478539947765009935850004563150651588609452693136839451416111718034669620373040212562943494854801773774527255007193845392867216923415688332185371844418374169145316701317772163999396324253219470817097439734048863400945528651702937369580481346293029155645327680725320077827868927822419344343797210903370180181821896905346474728996313901718155059364469834762574906772256721079170331169263441196783977237849450016685141496981108242425371325612009009646321783331102917068617577303671898045780671589958894003175816783092908094021325576529315282643925368976015932914434814480894194491232324798710348633912395905669695557997540650587089655665704692044869335534614537278787877612890187968941661452603545399686428915464690908616168291708770738149769761115654485298835210482982354052951282658686163704491413750554719397759991208627128996589119488010648450479383078795047187144050204750220571655663231933483964656436686273311661072131410236578838161741779174692983462670051170545262749774436907405585883406366448624780246671023254714002829885669739483083423675499406789899069256557287295301892396538074492901149755774316793382068840839949710069614091350677467581904758904352028870426929806815438936200879080003887058485341231091650960862548682102549858852900984779347300539534011828198829834589733908916515692886386377695050953608643937179305979346160773284175830340812437361322517809693538405302509731170058928378900526795807095319367870221930417965166680539951266411807339038420571918882089271360081173061412775014349649333957142216879147157421375913522168305406226511643960290531803223308514299733260288118298963832410207367836033076582089358002604584121742007355766871127341854427807798042186703004086091003503200060961264209380651971229075826783321164814019499829773264176164261838869602420497539235593479506160159786053278103931306113511636741017685887806053529000713565230996760170843736816739147611635025038483753199196471299328400798293196168937519324262619548035063927000379183102353227289566451899328314471786533260508406810824174603082421131130994686958609187621803249055571531936304157924531483690090955798785166748200521641425940294654259488807334217524181934811126370157987637545070579010182976809684438832170416855144454230315346580694868833050837459203776334553241854556259227375808230577481911333849605462290413640821281024241368064002626336982653102915597336425576596292435828656849688576968149961200832936683553654170922655889250388554554718854099436794280630409533741101955931961033347985886937995591902543448989589795322954015074112882420466402031723015692728498524219727506385841181900569622333907954583338944623779959256076606780380333011345786056735917782131884561575026613221757847984755684544573727991834996226836546038582094056726626987448609316765232334686653482313573227274007312914805033351123348071175850053268940528691849098182234549787717795394149258641192367508503507160340671007383867562157567699031318042565766823188931799837950170599350317388189673789933321219423530919496823635875319839336437642885817549535711758146200426772441574353391536883871322868623197127361796256500837072613407912351361839258105132111487682785212596062774705029494387528795495973807438842544627919855299503568584002588794355056218631786866119313051047010849080469226177490265833310504302861447240556604882561837601945607886254799283045266456841556377861095039692192877554851215203700773581234538410953218483331816032183099466579176884793648727289173165374355631409583507698121207893209475633242396176184023657243645474302315858037654023176060738540560752525677317747099172058073226252093343869048586412756414851864196503850180301546123988017857325468180897004790569791630449600511880511952027943376988382696396750377099456747267003298434312605307032283704211553979001813870839663780984407205375376956253190399820969503183735021787748018558552883554007015423877714436207245363819969043137386358484599729790926442282348101039955186005568321985001027673408077162310147526859092804988054400631882690639842730273134117988888685136451120890855906447498136365713211903825479987547442842254055296626236385153774380874186878396620712537241654150351115012070110107823621947238634465370639633047004149403834384460913230165281530429521029831162141696677033515277132213579260385551046263608675577151155713415263970449971513405523172844446405240116503114937171507207972735889170909740218227130270551979881389065718762242704774278199421011265091211263786785927609633848893048630519340731757300798808446799755691419582158130668452053676422794800532880662090267564888918101252762186358332316347553792584531464278072129486386151755115428914712282025806431049558859078655835220804050292695127207853049430123751679142989240679575395541542522439961340151642843106816034915541787056845714280064811571448220027445389432248356261096497125389198496015900344145067782745504689990402418903396927882593544090313328920089524486832512016323019926806672894831538986234601930755528225490323949292948515794762699490908273984590511338879374657386920938903920162743115867280607035232387764343228336163091785518964717312791652260512929791692174192188561782742398559047393269068983222202715439475878713242235842827429116724932105228129377629012791776108809671612682469781927173723267094795071553697737304616306600926212287115802989395103613328672099094991509813889118712311256762103530294151375420015314265886047894185609180050590094400092631034640734317818648815687407614565411579639974468741939189240566135526619153904832620558750412286504551174427246276586782038309728993565939327138720767716088825433793728374142954506659863827039089389199541542697099043894074513889955390594706748111972027731666569894723400091218445086349618540643739855195366692313254444726004910125113899842241940761332730366183150284416369898581863756913974501437193256275346934738862704086737196107829782190934322060053173665874977488412934519883558806502239197086232392321215070015557022318862177234297613213737194417102607218370817795090324785979019493249070410927898966645997705153850491313443039375350796428238030886350658472134680051291912392282836668131660222097064277301533057498857608815490741300716760779143788207108963996080113434429221130105403326129358331827146737403445159780237635289449872276300467647003612171399667317917790614246918089842313534027904623425906676196015599232028947319837834005570582490964077199199684469595827077871377554521496990031784510809790269424855261474371038475065286303245917563582571467549293110453479235112325951113562347369043849805690039280809139008095098237845679023114708605852666209202833700108863901608111087061671452832089974059983573568037547413491897198515845410735080260436316201448071857661735960726324925857928405408356082608499297885173576726736548808661568293997837924493784233158517111640100543686113787456510374888554374911336697207658176549391909790388603859399728543929801129318461095604442475053539014197416669155689633323337957365511628793114879814918660717985990852069524327290595445109750221740929618662574669709206559697028683646320432485429212646525771313017598366635097549298823785821891131864612727360136719724580401712209185550773704377790195457615912983073255140202165939680524459361580215595418068471032604712786743856333381563272675543840163045810769426653783015214616773989378457708724278701226130117159529174960224508669730973482012578130827530909731961329567763569705538350253278751881358357563015207348371744719034805008198148627920953856523932962138639355960754681383299694881240216237587975317158635615267376134883110125730851303805494020924567092635338588583301016355534586668302714168738126919777060289053083928089755657274271264095534187002153217709163190596722425687936779666547727892526868304418017939990167622809381459627372412341610246713275272185197132541363134025569305778542015947366622487595724425985462817995466750754742457017990027921033279893695676123789925139676709058253056274163567245443876540633366499293857030003192556414954041558526410458085392205719691925978349204387913965613996621266300770953051119429828272093565177386971072559330607633706614682334590352067164584434830553281021836900905908990985908863389481876722864546099387882236886460309191279552641436053372251093211294588957897474890368237093039579465590091866106614163105694797642588799789298382912159188600995338515000917676855349744412927940540519018376837231102109013095642879402469349296382514105824639626693255198010182519294137686179240820555047751579002985872170013392611112801474676573660609205524951730358817233173041573068054273908007502000735690346558367151595137438605301608641695334897539306505834226509261830680368121494747357641150082186957307486648074438659425559248434275662821650887282181231860180985256754661669120950379929575583887834238524662565690188743287244595954195190747302026406703100684723256849585269814586120025633104206820185077905791400013161502385054962696080126964991947647680130618411529577564328168073474375949721997485195588889058646394054792874331887428717354496130179167621113231999373874595192311315044287554838231071125777456359514202562029078084015635664004499665021530912741093089224168933956884662109500343042008068054108108099518926731000097843987056949420034579680745890551849950402911542890477944259087027564066286676820482231218938008837033997563498241670649938369579880843786761855278602264508606453706273256951121527541234009831809558332305408638264108464106620984232534759086355820021576109445218074842714907855285055156508740011347713232644147728710193045688846189364361520234589894025839395461478410470982060098480627800181078169852225916931596157848017567649555767322235077788954361187870063723462450208452030820971555452367460439726118749297309323108187633135366881323995905620324990999685664308341940087411292295199402672870236346415899244570728041326368612361667923722969191882419174911778135079703210791440830632862800658939356342885983792476162957213967294695404087824940332145810434997099287790190445558475291881661367319397180983194752233884939586359131399768037998990374439528275286537168999787239553470584476340293181086293417790903435484553740276257560267541572343698576102027763947797695973797928279152397135742587005785096994714285782704139809223103575554208205938792396624902181423544213789838142918419687976289353286645650743944264845797725822004169001064567250750984125702657635450134005010498573992291527568277706090097515739172931964257157231659334575455642253521039580555714165726938509872855487071924067080135925149236061278389718975737835243465959692019725723843822208414892171708414311588500747570009481854748075079936143285668275845252105255567958310183770730933161051170842444242735655580086080529795312031968053042505641300335798557174358267117817164724546843752072612329955152667812213810014960781739884896269535735726127160326320804828193062861846359599748752898391253367626125370998408112787226903794767483552633888527031703616625140077750595028173865993361495154435030016644833758163769267187358905585233354248764103353590073055062604965844857735166986503899060370733588680220987947948903869219723858863894910856766146535379704630717632026887789749975106339038479501234393940271881204990399345190071763172672706943735646992032900631869522881464130447178237624806416841328614433821431532477378123583430433472600251132543180286154605939831413766694413900604474627719393384391401354766704711176977332127039044738695063922180111539776349161165570540989495086894718793091965876085068726203568944670235637527391524532425781155983361163570415028249355471177929735470950151642174910580466178469235105064606415023425821968857953219545568143655915153701808374162636361494919465477682821177835573887126146799663756176563468189147592229853910000326084580442302790606205175545657488572688509084964534211194716454474947986491597738194430899715653584412240369458483750877020712082290032287153932537706580345716779043344718722931320124019711853132052138709646211827014511684135875056082829920226558428987391682239513192915481850324579077820074927605246484962541106560366996025678553920497155790022672543074227977835799631907039649490023215975860235200400461485069528361158503131504153808420267090492808313992455629427879614110192247923189290204906063561288248715968430299153953532866007938905250404410800792390837589928186880576231864896190822844033219937710209431076623174994311558508572333423097671109427329322643057909672844191955617097365115344469645314596373343432467415610547106313513786502829363756200835524230166049365453559702960602447240095138417051586993103936236086138131100753864196961365289886530029259369410051418952318277064535501884192066413688544793142754766755586813495085843420930996656388806228232447651620179305670979976433390294167777245208350629656890708100718583754247603438233866758440977540826322336958137404318071163579025430710179367181953387245085892957394088942541697086125949038443108558360829144120712244584270296704091503200405921815809349404516501646742551798958329077013765057322784841445873352896418089822841703357369617226653232480787745780735248162806193168879794888703646695071044799146188753142020153975348640686948829497196503875752712767028577020969416156348610723760307970673886829298137324170608790901900838226659760027864419047044117352012021271497914940515687215342517189175219390716749388250482412170423512400139130389480854150774322198846424276583158242575462869981184762914180490511905959394889249941421969626795376408866098647787468317428960247251811037524270558345104830971423119605224847848688316523727103150117632414014091544437178731578918024831534035451665525767780909254427315510907573744175606205487605622718749384933735036943015932358362371022101752997822617403174191973057327648974469589027448807624739206492109710530637231064571414852861490701792857436876779055589288973040274308174474129845629514024197295314994098001488404512519255826229745615346319064571784473387701225360329022996625724709919513148271505723462521899746961839216206739868674642760086316609083273012197186895030272153756215191242098054026027638681108746513885543938467269435820112602999234868826166211919921273768581205482545984834117867119008511154813340663214033646330983403322998900428561657504067637007034143011666152464470054309667363906075965724644370354725674421712291440462665271576241042386255989906942719256635573094372942911623212020658693401335944388627116207351395886990003701645405446537681988519206140724853473186734532395139274749577851340086183329623260504382163123559264029627463480163906830542329728455869618019338542090382595308838812901818558392329621380761182538184830575600722678851703008133189243929258218311966689706155985676476876150977732740314925090332880545256663292662821863688668051546937342488598249407976857007809739978093109093816894362482709843670338764127718025850595159661741676709551168386382113153606970751310257618560564228686010219864053038422310765805845381669743523505015827018013444158984048361384618685190968473394694317216373256561696557178766733099648274429104775783851572183780615889727680904100070888492910658492714235728954260406021064641023396174452996523298203587852123796752733669782815132484292569979150056124875486577604145086014273919903585050304585324787120012297168962707919897971599405364763692362284857069118870468096905619970451611199948128342534005459142744383164747703827461109427092250402201844116815166291721392635691271562319456917031754911576717391723168701389033601931906593396001873847764281422543685761124820492212537929716666773108828698867064144438141837127819108953964094753633811040879424394528748456765411548238335127080894425552332934843771458897145199207632777432996906789862643166563008541632373395959719786858907206293188015440692189800964219754939078241297655089914374876881866675983156292690224198097215572412680140489999071173965641479251450397635104569082336942571819979733245727497208644827683838095899975643354391343088907637944194599307535977774987279727038429158521408332822366415781290305125874509996848687708065772598914197857202641064606748209843008323970678878480254932341823233159455499910419278165052213262586524763919850962960545053497386461934130596437567982470517839571766357003935709906487375257716125456045886399055019160694763513438913172701927609105418930507296124512061935077615097549367955028928190571411732677043679196219546975904168244875556950969174872430216290329869153451535297798405592346346433579422158613869790888772420146733446564860661724191392688616437898191647004442884875384641106102967841519591432957159395196264445467176385968587072824369569067780773894473863248481186097718892634666792597615418239462370024731397625841729436033162997115042929816545844551587245005598255230697311319514063351281534653543926768955673745841506506068582403933488998798872911243935950519868552515773886938571800092723650136275798447179108941356491373273798039934889368464705550938993893133898772442803243368446987777995807175602856487607199334235466028260870996200207557957449698423205498128836618730219175843904090141594592544837669123204425252522731754403097371444977017072908446052912700469305757352363245926166684098494343915759528123088964395012926048327523986034073589348988593751941304680741056536486371063917152521732574173730832493684216404898158473396571532698241042060808398604180548960079623176293593276747522324203850705331922689183114240573718605394948482219323588561128062191441502664595846673188136726655202343722301624657596391469135497442022178940998933934902633093196071279147368198461936526236762386661974486411304264014520229880297948426024944733268934762564679213328777752181015489298458235802704068229625397334064724992658480247908999685778756526790185719047105289208099770267538205812373808844083237447372863310444954133866606417950111449508733916580322729641098493544107207661155680735996628277826296176871973767821837647860821164911186436477711207805376208100543236315128563099399482685461745299577460134246752947944817009046973130235162722302790372295771517242882691709918307197752576207653796776281141107823362829586349736746628968285892157136576900670109720254472606866915652981055903359850950105518331559632294386702574276052601195750757965698727908041350968633497484839768826985570336913876196189452839206262406138677784483830084870831279215895440851659832727714903178187344193871957806232883473056743804401545642167912878770327231423028506036097950656062363468240488749863487697439783499538855568443206913476572486352400426020502331584962330663887340746992917562857212516502562109319833351368961634820957629412791610175459656426755314538914677917067872932470995080007505020116129163039790951748220067761615955436819130112894161070366782888802089351496171869066782884654856914042180755106905758007659300127712575032134379847410712692606265516262843889936401282364910346064035688657548475273438701044371251388634464289080244502678522232253162235251175387815297431087631985216075638254291165665720103164855961762301866067080317865901694453898239669144367490904968622400444915891992023854487993986498939420250062036991795299497084548856515199343245988319693106197722723098649917550492208976172540933880543512972195197492056943033468027412637368616525611159212719380140547399463004839400590971431794701620485388255131477751332798559508705712873048770250390931577436223531849740695262461302022899537987915978202939560703049797647238106086025150116908729398698144457847172091067564086634395664476083786557936391515209923235684968723231640691257058406879065036169680252024419833890673011701549225907210656189389219878377776912301394335769883735853316256322881667308701658973029621071067167474070124255722761686441676665825710352433971225784749950348767154535575121492639425840942901394766511785600004911238513674363050743362381780379273073989731329585894979818518508147551176788683368245951911982875027519269824553441747562131636932004512202827913763652529451284472295967526995888932676760765467702703037430487137498252222278522279010049186513497978343436685547664205681813712659041797721167815377409163501964257809040116120627068513825915892898318045657502843480569628574340573645651318500648533292849004784831090991289019445356775962048514490554311043008003002884416514023959974531106889920763611941998035818859020125055295511474320695302074107205317531969762696098125372167498769581973993183516369898005083272961661234108118737188873266777472696345653144277831808001930571448367385535446781563881997482650801291724623607760781241264814733054583034985528246227775278806159797424458243840882893936157332135572875452768542291729433961524224332846521361861824937462346696691738756977556421858010771491904057627411413525080520618568680062318219947780541633976387835351071182688423864185821237706089695642737585506719192273673001620863420212781173146468369407245577750641806359917532518063560026873424642126671514999419364186292204173898705133893453572878983299730090835377542890828915313657350238241867608162890265436966223518821673417628721472222505429092668869726770586609169453424526128087280558817325994259840163430104991876433704146338990409374845336174960825119853974619814801215320852351485409353170140390723662339750994205408028032998209564125257921919975684939442058485176061272645812841845493476060831181988153291967410130378595664840708361197087407327231139322440564616231042844092940005969605106571139336141377415317584140979985389788507887607771333673142446204715044509376289582874291558907152699113600729078545496662489444512008753787376202445178504229896565215405499009803129300491739179518834936544605319342671171075543557035404913241267348790185416590751443776743147683394741212015389096159920840855845166152866847805662467042394921696255872722777951135598395431866915375472103543100717779107241706051935996689346777059562711588562016227274101061578388443132059389973896303499160950262360944293123490781417259791768539768938063453481326216248136226271301111802701018651873168455634739118381092089536297927455461824181327423608683726785912103173016689739349450271117734135894433102839602955761475360971595289111800111305355508103434704724551401439782643463739088929442914737847676767907242297583421582160448262390971902784431652639763271356337094199152698300690694118543887760559782594565093562909668409264802717022202784848235507348846937911584861454615307206495001149485849553486333789601611217394689110518718650264435823657133874404025970618920731970889748583515621541913321091661232832690097478403541374090033776003521263696019003272764054205912724347894238534881674425540475913429978321589811231725710576605834257393534768051762416007937636460734740011326619049184641435672760819588643171146420650008697347502546525789410617572873534331250322827242416947354912755989701501037329158766434497398743113487030292345209820143257542614904025014171128232640284533919498787637339966629321857684137973814296912689658829950333693778683266573515433036437142123383628977551469405503582149696795638675363420526528569755474001311763557586304862402934193955349422783190987613813751267248876795189655657222707720179281779211043839552709491800305025144976658527404384094471502064496087087247433767188157965318358862714541247643928855074889936728313450889499022991517922539446486015483029266940281361990212924195574183924788375946090023262388859109758278538185600639930028026480281808744188538183672269049411005642527484828448762460835746932944738776073623894887160994692334382853529922756292463196468060902371829946674702471352648252823971338909827351902682354053066605188886465216100400187163189859418215585161991981598980854798797927668305143363195034758814017150707000627832092965908051586250839802840717417633697747765962470413914335088323052091458144981968382596169469226362986532667682049406037672902886544858409264772255724562227159036539302900991723336922139761916549919145984978911119403416529493914807650284405315431259040272166048204585392238170435184207873713322835251403795894040941559425167535369424583592698990560820908179798816537125677452031557326306850681643025654824672683359729592334711717470329770076765366781777089339380598778806823739827472089641517618402283276849148928370210356416047533854526040414464699588827723087331290046609729936883851604241140932838655247680314531852410700087425846724212949171630906713308607263941556166617797505514782563622851604239976781419408996038872628124576571619467814682931833272040808351139473488448142307623307790179775087583721842208555983138995066155512796915114041781759442128648969369712238794236332922445573393142764967570428814694402089320132441338098537413402703856025403827544554563216024674369952011483541309978196750087530138658496060930513063849944889069810260601072578417497559573191872270275275627578558175028430638093397207313923151115799726691840754137864619474892697715494690553710128785908900155421329771766778690321613717570105513779649117992455332479023739645074322560060244081482784622898295181537796811149500647895344631323694812251240893092071055394801808374421745663839971924029105422187794618393263465752373096825999754303066926434896086086438940479063727247171815860616647198783777903578401086093739535163540361382339055820615203492821017380885572432312776303689769755364807087090301580727277983278452014071322007989929746666460829527290721925536153613095869383263755420474427433012066716696554658748764249424683940031535569742402425742901789530535624681799587270297165299531995669316578884260636086596527879987232030107581009473282190861903361191160935599987918348575833158837060326752487899983737789369618256178808943011981898273126423260325907613497549238180733137746295777147746217427594963718637302331483645939690657825726401984772639465636079979149410472819190710251410790778353940577264292711112463985366212599314394692952575270962304841769558677181318906257280006263380210951222056126014572040346844027119056461885877020683743904941260526541674394439564663692076149623447152700930688113231339143348816334067326330888499768847754998431087593484434906108726493548038125837581556603082629463866922849998021718678347161348665680019933955234383234186442528106964027631265742808360201484273863696036210394002148648507251454807091823721710990317843779785422389145181055013496646708071099866197896529747876499050002818927300749603524883244817447211976556210600378954768152408178094044560866623534194103399010806115788188381385440965028908371512907398796226991039374717332104648022699830889813774567942057848665351885297851693666214062826020500186344910563852623968374923067699695165290360940809641343441939146111963022061654549645683703460781014206171889871641385344612883312774735821624041445319080932032001237487897495260832897922642211578593201393159085253726323131983100134577440355056854293318991182441826763047829653084907359232685964350122380973911024053589061197256202646279816087345730923477394815779907836730040975698523784102851427385410235733968888550767443084400030173246364868388812620737483910406804809122730351760466608752556160727602536679455605182549992268287887066528796287855742239873845242777263036312492045404991829509677820581084637002227321569089565700905318851848054996518545063157216460565987181810887143901088761493216123882447162979025680124250862569259835478717395984055922449609708997337311240147682073119555622533464371996540621393922919613189075937191108036885463995762471969546908733037325030302518814697754698226414903470785785347802462820702187957550697601686731089436466285561012489371243807050797944124170722162330321450252015212165450729150568032625658192367315061838085935502419558813078281744063530623495404271663995268152689528410629060295118441515449658525936471382328685863071882744706488097829346338550005321887622332154578905633516630578100060817530290497218806611385973643954424916990001407793701272477824722248032301922713645434283850668915294905940195298681459889659154159037833091160932110535276033900735703582134053028238897756827880039345510584301561581643310320577819988657374320477037321975645524755886852819563193088427773135722470071842945989527633331363231566789892115921711041801504965745282660259210542774404585554042223272770960299267393173363681908019128410328296688773496236602438738980824324729362294959555783563521366258742640691818522430781672404396371160594844242229210914736056874481944101941999618617516638823164760147911703224995613419127175944065433635299463361360329290035934982014042195112838670417895959330963663825682990716001882629012339768462963035449924042730623345198000505761238475595306200447897503575014314032458856126533051649944608117358367569927105707217390805788562195311857579932724209614160216632201214285352892339380221277664377575618939478479230515995798818948450682899848217909218219853691089668852268705568188502460530929691451395138193031344704412887869818889483991899151103011682069960577410466635358297954709877483606702329134272316433946443990557419277567242461616466160471429720877171175166353404247539412823927799707337220982860620399707833701440715571170236090264257342815819732600411744902886593760300103771167521351920075222337873199970674148074925565314305345074359934762007466519722629774154474945275204057246772032513281119489987303189688105170425603482176860867385036813517650181487150356282994006656306080925798495443319204066532466503274859335357096731475911498685540898987598865233595761860646455794203913746973039877009014347530968338032495115256224016039652662572588833591033216179066564233152809359065599095317824581263734427078693822900597584422264558284465489772168571614044144344707030345166129714856646712469126695125323738274853442356480961670223980218950609992565511084119759869928176710363128355172916448583244421124443353333147219314638404238146633732250270127966983620719654114869241851058525407788770591921079439552778368332290833845807011016908213938569745284308446289089321570700849899795325364750476331326000345921965051831288064051231450639365624755966008940357557003866631448685006750970565293662056164867247925312389195846654426962820905761480379510104518606775676076474708869215301328586943275359938785136684105930789151573271801348541951350910186298844857466951278906048115112319244537021399668509073710226364117167407338357228638555902479085463502827535237446491978244553761739270243133585063185872849602408332326792903445563167012053273502447724536916921275619977770433327159054616902649637183671690855331960031168477349483038131082757442683112584632515667040291148226234376575299408255015199451329237774057228072835179646173890481417572998751059037358752933077238191169158795575365310815666250398045545808508033336442574334031913181458653857912539413088750091908203260228203396286023829153902954948139035258412682681891040984792746405762893135335291114807135470085180261831897261840234730513066182995720229706516388497008436910272068216071843673981821964275994391282071233198082927002523440317148030249201524488858861331198417973082641532669858907492242313358467870230032446437035065386926048950380411705159805120078393747759771367212366904740486049616687656154735340512385889946639352075770701411436520490669846999479566357864669487592430790315858333660459198660603443436621205040535916993952790588453855557014750134199569831251778992264250391832025225433837606168699089587415687008210179363102964716897511521389340990417592878326720636157275761170883965762047232531647420502009839313208177753869353337608245979017265515078845941276427745651067173380603092830027718505463643552058670236750092332881242006475090493375093370999060921575523020789879908199829725058746786946975861925698846374985882393729166296492128109886103980300956063100460995479145946476246123391376642612354852209834769699920035422509814877191296564815339707840078182584909641164537079309613662932260686650112394000617046318848636897048191384066991700538887556439451257061409248953787888258125470162151030753372516321907284804568711315907304934635295906312132045971074739703400769156743105116224760224912982897623655660584444768191797285194524538844733455875905477299227625761971144619092050488398791661375567862855964886361180207768521668769176176899093819614163518144660760102524368930119468675252484708346601174822720004688492318112564198477629945678747443145486238189483786003232327111237272966041326876539694963262209926693259755078566244304116829760093980346760749714760066945464500992903920557911559368149131633308623935077977776402785098404512322113924935350784636897149537058005353445962304714817525984883808405736310573748696989029328700167053230490121637451387192334649762762663255823570305495714103820542986458139089533873696464727917173754741141669330342221748224421127396672398737199684323710428793189282962023773195464762445882174190682818705230696146852054951849840298270915484983235208905914713344552195318000560348764617020110958006548813598486234232619968012937654083047889171784748994805681726310887273496709002697018767201325967681634314431148599572804122445763121792319082816433152401698201409043174925773257941970253956557187626101708877459695424312341318590514632676712719242509975376437027360344932707393188702931978263130885704768788622340753172130369389760300879777712184271101827130106492840681457259933897746437277541080350430287855911464031746665833545242054361684662244700009548124228497383765256501896352460917282131411727934440343866120844020864067743835936022875722589381670802119245813995274171786084570077091594808434615535272674727962085337459186403324656801771911547732341694075632467830721347655044945657820643700654284124460493894494296390068570608033551673371019144153918245123064268781207997695485166548500595489174736235618114834412282291116126647068694355554874589362105572493078356958344272532844591562558927132707466971266344063896996225363676698587954400570151735249041256542329008987942150917445923666467564881519304736180129318316132243398604463864810829860478387269940980103217372174238995590653742788278363316799882545274134309472565492612912091574446314697224724124455314001717848604512993028144316179284757300084013791270419875632301914092484259289882372737153344748404906029950230818603409056475366215759548769469883571600152646705583164658973353788523514544575148171087765247835504939036405304573760420626061362492991013248301342632869131673536974591602738976293526996445338647374767250340201539067773456853904788002011982919444797627984535656490992595333094086076107024111386713615155526577013433078693106210563305754145296091242877526083914571979215586854342722294132760722312416724072806504755595548141345410159067142658325586877142850968627845040788819307423121770017229112912298456895859957672949869488287025808518518727155262631278547060385237076633934639891581971548202129469482340965909786852246615359454856650848164197918328016065608530812899239750713953154663941313731894685811839309310029800995698553117508794877616047482758134371107622699547733407715943902354075558398352838713509103007413004549963032490756487554228604242377311298663691559165190273176880563294405738844865196828793592951435665662394513642269407440244991348964450867446296633787001678133596688997150681190646529380156117607396327609788733336513875544079720863289217310104269140650192731390843236162312704290029149757280302427002650015543013602100045038232057408404000668658237148769561063441043691301597874353462488429587248408224309082251132159222712883525701444787890671109685155016276118207227847651010200453656121964740882384166330086811474916006777077847402315592823928029404434350649592459352716330737229515773942584700237275143708578846943133568916210896514297289423029116501524424571187468851736829151350909922323454932518672006149404947304334528628655706457716076402182950061576903202240721941140446863578302382816665013002149717680523004708076076763291962766492980696955667160714586382601174804362796363876797969296950571121469351618334529221929746440537343694461439265422260302880781701574736527683008749957797172711598629239144456992658546692973769950565650032723993820521909622865983224988545282186186666438403823912985967471811078378598296288007459593322803708182714750283210401610562247695562000681000991980406182346131930831387514531805045532645392618121920659983430331168738865619889316990035501813817561987013314420987080278637953755320870857055280787926615006390462711344840254589749296197243832122909574282889579367744069999871031480021277675511526338806241264031916485354943975409034618694559975796705889069636746787862545311805328018694503306256184284586390289844387837229634014815688462037488936466228386096622307908985140120404941502567976180581273635522848230155422718027459643922336449483713326688633864107897097389264496436573985982896492632430342893656170542106266799408732247815046367293237229325345799711202202352710597784591535447786102963146520789853565573889149801093897276845682146390996170908409792250542225181881391843502358131341905343178463115035763851973382797557079057787333190618361535855110672699853352694829941609251839236309041458765134534769733368491216313545532405000559135702656480276256417499717247933744807649701564135615128754408136237804603095689902856781612864969294963303544264064080442695038297487399776294142217081252834863724744787403287304522074947604151053374473857456669812848414024467501460320612261928185828405855219040189855181145411963921593493871479842971394638485002710182804841560275173084169945566232240341297001224850637035282526546938620284826673935656089366533897661328943596298248888060570962260324137713536603062474890784404220438569106729455288616391142162948557290535063487742791783107751199068861635377145949488368649162318235179849321278741352352869486424751500976233774300859120656360600857217495107748439558935268851561040349735490323712997285435248163241579424957584386802476694646931130582278124178703360084353718038212344410854531026027910048876866089014689567188024032256133704392102559268477223972707272201842855819546344050332774418939990840506962004177645643755572297458709562472128255590210065506789627200799705913425077870426745869242477676257643561220648868032280373868281044811988364419226926924412560738726354381899245031623562571256368777805015193085748382151710878372142675986013711960966406424670556466698372224640705610545805033434589317632847996440274089581245550561595015800043544274071836301449595153238126429425724338272301721041380998959291967384350592248490139535763700567022648051543085364151027452651309849149459511995456855995165352526316666849932379858353405413919344254883557403105195941626262840863536574608085589077477219587083602947560528877060936453273754146907831649870920200726572384290013298639993019613456938785751290904764313105373372817254975689938884800136491041115856288005398639352879742583103740009367262740244465797670832146945143787551907744754267811799259237909473878638714046708390526638536908438601339676310409745288935815544643046934857197630891385970233020058208908577251789687730361756369834666992720987649904502276867583914696382814916833296737786673267627425352759664253535924480062632152803864557793885238523142483754306081708225604362315544765532849546431616224953876975608785513818826397146136557920549622739897648431693295028358821744233294076600375162604742422881135842696514107624262018472124876901693355018342785631697514857529834916597928331842830450855842902894568349411131671552064428681651444997227229743916829847515420396026363542562015713428474964686942955020404832167471537624090588539657228144500233103197461914732787626768128343548381598898309538325118113798902101517043411422937904874103887556889686541074426443053916847812093379653570622652803194702050026279533916000290101362950111635571897208954874981968682387629120759212616859841094406405521281212136233768678016471998271085761222219745971125052798496299970134135450946068878694383118405876251811607801307576098651968353189637004517451026239549072329364427615963973630540602743167242688590852997056176709771237867063685313342759726412658711951329088645692252638640873809261201500719712386378911318557074959151273568227420892703569742381066847566918345760694119790973117968197045443151847870566762309571455556099478565190623004133339288273031123989053468200936364755736491494131436927001740745556917019133961544674463160978863481154076188269396746140558165386553182595213572713816409471239096996460976706598900843768070719842476954189272197048969446543286225573250468478715467458898613942551836900735690196515953718978447037611953166745392491616735013119230166717720500336597321335778895104429074205901144998929118762281361520774564557959512236855496427695617695425571671232561737901657910168716389796852670042604852596243380334896183229669152999025097382472810663987099168149127208114137832207755216025965880616068717020655008780157441969080677310901788958694429375375372104290603528836552787881874118274830511092743841837410433855147589938272391248464230495787599792725786670250229651567414469874355657409706013326728102282343605858210795271539582662781062330815294808975643108681341816851454284946731151096231810910136274308433736254517819776082798849986781061059084581773401586462955435758279429623802519809319928097563933456091693698218445791808101734618210979755360716024025646588546562105069742298678069637323582251657020220005834772594858829373261156622992241784230540775042861385788048607867099451491946291236002529827490736110963850458381464531632479656535072106043213379855001010024600439572374800965266788461047766253543519294094420408929750925493257884859972623377965593524656424296539838116521208948975048679140010598150639253718924512849000838760030112100880741242524165606610461821366834879048890737998235077986374673706998496150270501811198059216903140938285689164505358708663879464566071557790684123526362237381552239231653536017878362095893317970459659458245863224022762715129515926078813934435030211680153495347214728251208816441745318567169737880340876179864838406650134536052312486197828105958575290795668553744105890858130044899426898114134089517668393417436487124275549183531860872979644119866659316494867792708956800984201808792141013565091996265724609104510859775548228925980235117350246766642022604074825432878074087944694184457343897733095811883364055900662932410258392033063166732564000853971812192241549973698903931944925200846161128821224552299068554745509243183821692831371541526256349084472038650555596600557649222600039302849189353663437534871191547345796060819040582969240398018998861984605479123803808985543730035527280053796173805699977410079574633181906174389411992256819888281804472720713795410567001898913869970140878774421694891810975252728314326461431829596162446058287956997685378665527766359551021629298115582908510095325880914427069013536103248066054379197972291732260714952308218004041415265739433112657853682432353939733490362439662334241879961981860042705339601849378726364069150043661082480855977087748909086982629641177382792682231370151673194772824431363113646633969352746904259966719764519405936528930744841163550980852680820956742284871495298836169129777423095332179763251696712252444969204008073903490197225808680633497015633245505136082739726150674681866535301996241939909715731648855457494472502937319690122803496695069754476488946933479487133664873668362385989796050766533401044235056260851923594030294827142205681960334127033063800169314554258613289184156548527295598084233293271563140308052559524573205558151481539899816455826574460981196837780514959669413780310578089441359888367983481941410623799402678779249854536539766479204839082679953223662879873372835954534090144308754259854311991331946461920130846544561105486792527888281419848178316305007232273435139957749945258033235592113598616399201423988820852407783147581194725977107055730817079066161468724591699586235957801695656216736415600556645211200298734504640277481190267879632414620660218829507486990143276362850510736356967588090407022730140248675913287036869641926153828401706608926259212447391086328983045764084411109192748271986643729532183455578573177591997774542792917536347178613200796074535947870357947600111882786919282579738456447381401451046730216493325856283646517594176108510102489819331026220345484865808735770616950566322397598715820997009810343084791711361475272403088475390937083066658520771916905658910224637121889337633339280030524520756690849020223066409987992741400730416878310965602476206563471171865712915944812748777616340421112344723154314903427945868111916429040335822843903919405630680057065655074627769937642929265141296146561982285562126541720362754108598594701170472859049096179595707936212024611941461647147698502245681641470122353623292329555639093523819141174266702196678675529399720989134665913272459171555386079590831854050699502306080592828574847195818135052332679919810261010348365371712159871640002862325553313002142396223013475439897266851690774699637719779251133254209493492585207931513866984462282181921411668000678192841570128842311723788493024305117148956972105005747435446276879414407601664844433239640748108277614485723072634168599065126818160292428267496783390198084692929563552373234080057554859670901259837026543764295061748066252345768522552035825866368691666073364419861998311598444644423958746647593208171313211935222259963506348402301832713628401761604288148539241340254530468175384904944706043241831225247076860934481466526366220622768784044637386520416676097500886219586084608550239907400281643168911306705213182300238121009433797730676432571063822961996216990669492362116643364859117052665976055811758782724395727651724578162641788441772718652052859664011461488031190585563510965881492355541774115956410654394827242823066449174507120570295570642994625037596966127033383450952525794852242912829873018374332357981034451393893428837073324065045460276719870452580356287676888651349738906412771985868083403360867092606160319249410954508217236622233390574186798124555132703229777787887264521717582647648171129681772440743336830091801242818840717996087554555890325268120713261337545584788709950841814190122403411421619424440426340165413250113505222119331064048974941114030113744140621093845860989494343152406073362919068594569759995716178429628601791136962357168013835427445001781260830695580823656182632371450343003630064331679308567892551081094696739910571706440371436239080225237766754684829367687879518032188650524367447735912221838380659893690742279681782405861538483039561090761359849796820264365104752440769984804373677767243478466996531838202287152029247727631959103365831999915251757494221563330061431642096339837277477944581165518007481891007738486343765277657510741187815440880445778416522104095891928641073440622724945567925758640235453478363844669697267118405072618805883535311936648464540788958144086978150045643615532466190881476404432803515547181362213735232029253336603409207561960178581072834216866970228888475930947854141131174770862766542577035808844443309858269788381221318203243395536670427913362400422850231094058900935123294577986490448993343610387025595562200791207414830486267862241617995993739396962470948283500032703859625019138323168887394691476738201388174391093996673375071329878353810707215063401365142389335879509671901735424555773194621525408019944375008100964364533138103615528070502932863045983224381012782249985448469898499909097909137336899185748620760568218285366975604649484860590987968546875559184109995963201782674583523983215839302834496155467583139113363130502635374408646151373732319563193503427944787748408903807534419301087182132049744350729546288478353763697928666631893001837299986053331054698068182036034979163235595562678930482789410258553421397513437589125706321953627700227456605523084939132155386717411726660151932569625854059672908090604591113519009273118032716260223530091830598802122045286778017941800788498254812283555983962066912514443891648335375280376459950740758535612647156069204286475993961153473668460597580296722823196032712485436042990048508598630570433904074985268868208833891085708495987986000053623507058504497710047389824980326368898882745639138032499846192010470004026831245644117939132204056712039068033632866598239873755784248299896579544445607217368779629094851581846465951206348236643917036035834863174184791674207949166846034306700302183599982394361936525940772838151862418356944977626664085274186708046803507347810093186474878516770298746243703306087883669804070378979460727333353760165728939104556546889298111823239281649437559963487392457516726672749192542438730525411246234893019383667299975116296137066732585627616668110304722528046911675474355987154446451189353359781330721712054801455448659316980700308792276412828043632963364595818273392924172729274243242068633136329461398908649275804518135788124604957604106423457858617676974429165639522843340538452038931381085416964097498215908992369465284280807930535536469647610792031068137109757261063938406360007347047734317272689811643718545707082034418182748648179281487457654801790863588708588787157943133063315497672300935902787347019779692668460253515979941512583131802890319410569423699959836375244988333395177270062414062538383087270124105052636984222208912997377037996790173624467231480601628484139426224359278793618720752954304699020003919005427988116366613886798626130315922082109157467985191318772945039625620352626455994480312435563166523381594732181657799078111809850764389174696284397622399420564080347749340205657113241178047485626614712051194863718184895376712797838408127402398498602924268005836942303437899468767553251391139491375121444062531437460115277412886472193835169606232470339649928254643293753487624667003258427196763155050305877059836639387836893052278211573932738324025363655887996159057398383531321588097753088061703809791693754209394368720644202572771629775874804493053366647613327948574030911858581526470049272660591935131352694943614453252250475285260621646706980030884740330169599375574743304726761643233160588555852070460161973537460027526381255980681862262275244393078474692290831745408432529813211586520578803930658623349454749464907459478825930107634916375009267592016530027852688182321333344173265053678188368412401319151823692662867687090224008652726433901750610528414498312827925217612340484135358709816136919614164704952016044926110626497732637027503240537378402777505403593090913474068344970072773490575541636086169557903050981015533332977666430069298051920887636202199792174180531199574742465750532586473402655568727505572891070426471491261359668056738569129317488982092484139166625127624681054648936799551517643114446126158641728787742288471350555719121966541720952941694627841787348462179979042206412645357507512909910172501688637736410882061490159949071901866294855138759962163949131531811028990722372829741097227200249804408962442946742760127615320137469027009041214182810023163804334676798477568779595499586554155701434619472088485745370149305133648541814701829300748310255944375186141881478182598544050502063230095501341062759876355440175458355258454162585679745071193152453159484355206374518726281331061790695295685837376223841341174719648872098001220562953748832850417787016703648396980498682559193568190809494662475199194725791810803222524384288875487139078750861232624993186874268679482586778026054994501625877775653206915970358643231535184055515162082876109127854676358319988662444653044810468894001044798415304483243692444774615302880274489561601040139050199367981789120630568498390143803316735329387577632961986458791543319321658172117813652721778359075086287460538532392177756975433322598519192304811488919120498057766064013575190288685032584227451878870897403419680170052449934376862131159359938556789719379583888637546319541715573302031910586835599242655263097282158722887185230222899851336168833918383364762748138591049813839262444399688687087040888850716857097607570187074381886164774377765209776931191404658416838462450666862536534695424790053086039404178534442999486594998252812793827950224367194170966868777723474147021704286304062282562936013199573895268801380258880861239970897585245481127811924143822845765055601636711574140141802938306513090844969645120661421740698999239795343762212792543017962757281943526800764119748914110701778004966590006024812297055864082881064381136523230203666100253794656822520652429890101814912005326860212051759855426106684468959039261050494398174352217277075156993474492906399266665540166634871271431250908210285415175451685449634251874676860335414723002653171684729641998262358642823744627358666325463887318616982024391206017159393805396557923253269723103759322086012285637698281204265761168709090611103011137574415054290421496836417083861766693473097479747540849765093372081291450781862845937767588943674588073849685460169639623956726365325163472026569659077722100171043497208863589716555773565019614692348407907481817355388064069989210133596577141311807558004773307438452911096513476023235191071922719261563532258523922940132516286978097475688617562427463203935420251613472943204940704688419338663178204627601587335870736122852091212780168714955204565647871509657324525436155447743701227508031524871904401509349602971841704529938198503173333001474293991352149202634800032535637816058033304938796151430838659761446888964885432336964265317481020556274278849151264494738623547725335614843454662718798148377063011415170230231748854368059590054895362004759251046335201081962366899257342790637012433907541169174611535081774478398767187296065494855291662170522118650195363974212820438481016311349813166335222032767572465857104528029645829910395097832283784754081450493824563044919000128890967546074756835289265364510247326999397541894759832663928304995450253834415972276055347803786794420284361875261273830377193335476720566744840381321676579340551466452914672923472171688006258656724873422082883677658530332651801870972189414080579542033480339802787120372341194703260710797116941355941020694434705394203676554932761109228479879986584130308912508802054258735952992924372002035213573529447517263034002437294221146872636267617072590631428953711129016834663189366105599682419112896104852554582330958321418186983993123294441761561808670904940817083908273871886876223129242228638917049211126777534238749111212056604745244376058018543986106017535951530562923188268872880880305699081611719007486716840222435538589380035531237439261273068185441595093040633199531205309370051384580449766382805496652829453751551886509662027544429165791358159467143122860316725500837541860686494509686859281426973067732286170047500314930548096460478128383333362186903916742894820935366898733207785777667060462605747486966051266316803082171477264315002109286225978054986595723676221713696073282583420274380426422480425284973664248084176322672232840313110667922922794708364076599262029585244815533942733286009016135011525848824849379412201052970090877425655694339124708487962957761264384297418112001488513844766740459038370084866336289524240935409402527960429937250223822242752730993375751928739568223492036720055976049292907710072337275669550643473608810516651323633526135340572943952476709192981430117958041627482927978170438572938905986485059901802019585546998911671865705669196795587689392821382164742471431744316740340675990757976549255414662204558317681746302287743464764280618301041205450676525706525297325146393033153915340271355700596496764346191233148496060737307785165556403444047746580745942704734267232650178420667688227471871659969799992419784495680694495894573516764088844523405277197109250216352525751416201876120436827582849163632304432148712949183928123939299420976936823535907345988596916715280458961086352605406799404688845356940757312941400979217751642564096897787215902631612348452667752930187625672148203551802092570555900340003244506828411573749156075052972064648641369477138150862516326427838384459031148683683494993442177197514657724694605715252483472052830176728877446295068763646911409405208166651353027678208313411220328353968891213929726859085379694650750074876998457935417142527744107441163317891013619520649481338137988965601222568372407502714106463685208873454797284531958741914658355301938518644370574953981760346661540287549096428037310273445508349454806558369039896199631304933710584134774095544168082073070669143435787282459781275739404752410411216943484627311774984739448664811585325341084958123672145144270878142164648786348101276328627850082094381014585988829610465902708705147857015358625027554914526278398270898237164646147262585681882349519487505887856741199259972856920630489086972058092124121232609256221868910431473466929543531786717789116671433700203560058246167352947274524133793564164862090630817533194342511400226555783040881350315612204322449263500032846899556882971711751762219868148237716704871353202807231414116751347105192217521775360754368757615905369328123543092523829409592388471676533721580351563327882761849565031158650168687817114771598035496159460727743666113372204257147190322040275700388439936218562645641303998394355377372385243645589742883121022704237261633357052750903814006221585271061563127416712454074663692777977448275125910863146991634130718039686406025304152782345906066083631125940078249340972190282288826337593197008218479685876364976454617158231567410460162701419725923415488847186458915137844377924447752810787240997211330410644746508230007259726961555400778878565225382186868856151071370895503308037897368550593249994919543334197803859007010466844308793245644767606367323132182833478471430467892663611795081610162398878620273377010215763868672491230306158685654520848926480965798001965650050438641796795769722786290269840251625937105156701963808047024486853735316251255982294070736723444903303694758212421721504607324992505230754964488078719128502344062149599685922294036137348346716540459904137704897965177962385038743236684104312852860023080766721546675209988517639283064269827884539108438735143529471998834828404447518494231355494201365030725238604676940258083519630994130146035325311334358484837330900395114191239504941798703207694186264176173176244706864519773809232991798401450584414531101571828524383232974174017560258291226237721021191965183039501436268392259324916725886238580747231016974385123134302042304050151398263506954913046101202663496674171920943231587010611192788083748773981103596356358807831620415387451109287987070925898968513383335840252117692282562393466467732758705391049445206834462839316967610233437716566132705035274545949675040782456149613420162302909820270284890767026877782153321435127476456704794441918287127928911478834695344991565254064558866029679288758804047911487195724198485141132951725505825545837773032326330748901829034153512618080066826025589559976904657697909572487924123727475217241964189226994021209638302225753703979692963512755866085592215815213143049209680578644704393561441054637675911430996118794642807465318786281659282691495824539398494689741453652389795481086980689253101441566810839063723343274000624851785313065923533603482610316418519327358717856359808476148077605390610252779174488304668065612672860976227314845501595911251936273673040283627848606227758112635136087619886016375586157538517303185105995832229144664198152529515604323762724665399910860202419226460476899502475581670247285972040757895584611358554715451634891507085548934353031885351150381236141647431714197978510882491222724454763541713424625871325435500664460746031910054185707452256906758077717244062670410497606716097678160128563854772794196486657444741805030036201391657359776450794198325540971915525567252902162479974891030518695401416661536132186276662879970640926393634513879937231543517941868243408690542016821706091500468000367079117023837021872626293252208062638352265466508202222595306743547103451239087699048533980211630388331860831032364001713610842892885028957957596745877278028666879180504804017359353800135226228443169614006997400568645245072695133250748268947531749264729020542870643695905821532897733465604149556151500352878024038571507472538181702586411581124376418444020591110500687495876112481638618530141094850398076351937207696526923105887019312489244573312203267304029489291873201785172203513511126243319216639837137604123945138657053799359387115750546953816887925110572253666155585642755571057625021206974149503504616798277738630056570659705103242485898462236988574515215673777385206491344427091359593116029270720889076845226021239372672690604093122711023015795602809956653231782716398523145859015444162984274416500551004128652651133563244861159794945787090172560261957088514759861378257527979574505776758943760774437960653945525230776714668248393150859494716926234584217944286397797439203796740241255741063862251424431683304736265359487018899993628077115703291731257123557585542231757371018733552870680897943903923581232017125081873939382236251466931257807235799282387484848537422033491391715786085837816474447071894206128757092484649217409823923764881448994211091086141112334580112721832067673852732124714725528171764345928354112789628572079529415049037612929340028173408348494673840541838100254187046638030060943107494687585366423134126216356895973399415168936331466268660345425435410811168231312564867715598612352161356825848606379138031071671208075818923402400362059204725737393609900878019378270454210991883408694595551247685106711105261374734562631007120199629803105338573570500198323794206913814388133924354386633614792120637231946929318818537225615608670405461930444027515607222746772666130364102829470021855015728218203159700276567836644542824940886720178880931226322289619257911488178255902524051504128728542627189810606780979198414550103875722097163358735508209860765057031990545943284629875141925710974146691045609065476180102051042976725512434133618171356713365796124909418724262745925231372295164370870159784499108793096064797820567997887235822341954728064058275905312133753884064211054098061758999612387779641848965793037515317473338069518671069094632633241084901576435854375091354322879992828703065826193658719963581067500827643738823710386414126878957400509608073410352619828723135316331900676945041302318120968343877416013697553590834125141395795893615615220577755139952742827021575570729683920272420546390022275692502140983493999896059403690475396626798752315512961263084529810277716698027768416554601486203337266870133386088220635967932417304852455000042447294648567092363085643260518993276665482601060092966417542089252765947935682175667757726959031165045276884965577585039324052563570344160029960097694955809102220397834011481382801130012864879490950986174593204579380739984078717320763133628313487593596799134836076747530678507150914243703493543424018670481254280671258085534793144084322446624405221145790146665311361704371918383505697025440918155322042881012689401250817825611692983343265377219647478761017293875134317347928157189073229811112844427258390348319773425428912144967596395937092836200709126115417655771567012453251862940447577745256103005382532348528341262063679560531569022029505212819181727789503255162996920595577635034371024129283457386651762164795139684043629912462305651256344135582492224866450298493874374696453979581487896341741762093456880674401766390848438393246668695230017752221607737698077261796414183299405787350299066533196119780798028778733057843669322004689198714281527228485053603914240455409589888528345422848267950026072784472925031322584144156338201793255479354486539626321301826198592985699214243176969836247679210397585288739180180703168177962511050748156007849046562867220238501196777481606063273141317575055274716072861338029640065837812940967847129099549017080006327058490219020852472095195232542793656180982932671236485488528012896591726837142319187748315474991801413633351831006716226738395698738999154049443178049200501189747818862168084709346032331130672838401200532358547534223393674848344090766589682713821128553712363501406653817213071655674116909921273106351361718809859949899222496124301435769141187233104591665766263167548450410224653310640246619771269971165862406226379167837343096122619631538088400101219313271587223258608739164348288017559301021371069031590770959936294384722653359727731182583104835734348401425104178759589266265436750108403074969483434760617108048639104959833085624906645126633496132201556738622904759639019383162230404870249599021818523752366400896370838352926408650938763742834398533923428293007063988748162583374040519504023552071924641377801438046145745786760551639103413931493934405994835477529141765426427901982726318973745485703944655558557582608003314828629590054203131063658928396556090100661401917964674037574231555454300622408609480163493157191629760866831748674714377502903185349976278554385448864284376887753531988735929172617627674433440256804583082699061824158013198033341976529238294996076480428149704182370376533089267773888307065124156819535776410033680153459098356717683321845993625786125762721238398719956087319486682918407222963192550964467353321399738297377915191349467118888401573351708289481865404095569471599750763143290158929063511109391113367437488923852768084536664288253840939269842352603622762837233443417859193587450209513600859685855593586751358158086489281325083717258824826943142313976726323539611884149464123098622201778242134933978487956774394510286657635731417312129982079919380311044538808924007530187431661247441408309963862177017460513085242498890870059135391780950912678148923928037899412680258831295177153169059709447378079825822545844562033999179118563034100227770111459455630983633437431133220408910279427481661621080231005799045499490359575115611472740595455414127659695570253853309115840881582800979051535134126381863855731573730721063722982358633262852135224875773795789267942609653797599899666871985243440883726217243931370048674731804559314443943296053527061050758788499449546742533167369957408940679045370286148469383737455093830123258102478380742380518046029239997624406140792782431475505442544450409211745550692906140158911948870882331960423324087740185620417848645599720238845846496114842463586815993529982149274277538436332243742641117934036660597384051430004032892456479706793415933791339286474046306417926480707392849579709538424439346084366346734940249098233377296989287942032185100770016682651354349528994011928699910120965850964100319519985377698267802318162487664120691575426318056107349545901593356656413544370917698622638947627049925690409004381671569797132735433044242073727761334363231831368718457041035536293842496613618838352044769256425403309413541210836523047140695835648674975720940043228503806857743819513726045349575183303754949803738866502234003070390400733119688178706976094696198809271261778802864475768917682134940854490576733742360806857604624247589957439552829124362421731285299734939037607817795582114667058446767116665546581316447746640000542293682990130449359066974339405835844896448442652395156760615970857428270651276903391264115896291101954700337165830391761426376257788043979411515356518597452743645517317479006961354028631580839899660035908636055847790781090716944298652825032717163697067058801935996621825557043834480203648214797418407338957659088554377094836702763296438114854433400272727696913700463772112194358406847489985640227835696001023795726095351430814209697221162701746653834862865159309776501079158264133181197977157424133937738209196021882700473930080313115258429513745846766774570403259972483245267301222462473762635895392702942781034732684775129253914712759625295071625167064579091856816271811776870580692778885659729908718814241625164366816328027193307448824169363716698581200071553950361346763405912859007383970435473727880441155757992425148954524403016308854444728640234651334647611200658367013773712320435162102284872491014014169298711094209264608240482163115234541154520240901776114282555394614237642695549005274652838966510737613448717636698475866290596612436418908584713801861959664571869407481645122989918825003307325354139269022531820528168383967125168339672106644083809910242298939712439428843187674599255688157549373008623790875474664432882975654013024096055249370509696525420787644239156160386463262880574753024898028872109820338267379667146029913860922772711102940763955101837480542292593145688752926446131148043044302530144174772548668308911988348478200258677360825224799272479751826399358001997549709587554931555939337053488100486445277499524135400659326901539685140602067979628476444775567028075956478801935795763519215150110965551011841028814575124499925073286078161428948484676432194773591481002567569391532130178842783094614046978620035845302019988551772664980190382343080156067727928493317924830956318529344258130064392806453679483476082948846712374136409512007769643509757113506384446922883173899291678069089221860526634795402718516480437818221791385928473267231272654145249644130098270937571092617494114490289954672437521132814257312291085450702363801895802616823867736778492737506390833093635587118759690352448370184822979928168164085830115324130469882134225205785328694404595149035590697317459298700410325778313250872857180583088415525604621616265731590513109161161263850337534061396635440375489028201811732314456917943053356784237032306776845625124765393047536862489873320511768084236201330315161981257412484011230275768098959580854875935070673869230008169813994213435945054906080210806037010133806885049579854806551387273639228825902969863080314805103253217670222477321327540805907904331039169528816606584036619758289878720542215833691948654075822184679752050163165054592573013828707161532631264320328726829016188713950774725695890391923308363490367034255140454822134944789129022952958103049772717733146849619853250397569898354683935977925444081472851504974789951969262570827643566987444660426090699114380116731249928213471013768477829769948392634975760474919967431755563254253648140703767928178529699683514944889770483037784334351425291928767751693855354194977816604245608313591604298622664850749159752981425505339576288977038732964925157339602270928555956373717928160884156752705212541909033389428040691779353051370934881028352099380237040322646444848843930497302182226511204923375030830956746578856288920637958791195818383476778332044305187931628289854214265565015342261568975404161964206182931592499640233816939283103919812278289791687435479780549505941180998780565736006825816642044208881992880510385847389371179242795271239882649014090505843729607261955133857006981789818005395026122566005558278400883878977656237256049869756311492105768093704895269898930112426313051232702679281898205315786517596616276683474670263010833431066708711194941481531408080485654315156198840654352322848742279047230623741980408968098821621641515913378590430792310697747979631951352727799556486470336117501879657700013142293588381627292284007103720458834808942976716996779134579138452147645643492238946973620750161841707802196028379055789716271027323104631324909444773886831052029283698847507030370031047191070547364303386917111107407834212182427104390055674461408316635643650587489416670537733215000211131592276339932019251177463946347813745383846276911977728393318615943390995755115150336252132326708448411164738617168187528641273799499223845053110576711153148676766551838143454014698051963719770389044629887119127267588345590116572890093294366336100665387669460327428575233294569245046922901397923819712867546491499612985058443497463576266739039988664523053146711828704036848362077593667124590162088001635002365906659661879961249138982356741679377157434932153009230206027932166046892688855553763447766444249940441959189877276634361589735638833678712185007122753415824497672226193430511205366028678775336297633307299502459061128528691348571387555429492730215536856224704430468513747429824568388050296058588690887421929678275338992241119791617794261280288710047244755477221530047934117683913126555947260027075536383956106883875347290038704289357135233001232329447624266870652301021716453108288289620507729935406778560175524039572624538161025609377264270127637895916627257303089819695706604996314432006782946859946790470229518234491057971590418420501587323299494995987383987621838484315916931296919118202899657534930800056957519045064012644994236796738102178092778392394257589680694949820704744595293905849350461392856236363686774468278854885027501279529184765529830903881366526893080994252380830127246925743686365309564548219830660043142981443280596011376971287143994476369412957472226924684737368153715090420369223723292672039443324363838332542101402774331281947013174105676890759968221911509842311384568786396053290849125783804155847581993301764764922041445706344787799067168713070729031429456099128670932998003343290528605208177297661174812724634166047972055334376970918921761401727759497816660304315364512109379668432567213274374108035426319821715754602080184164488721571538438963193122526844051911067964660503369485173505133079900121055981934419638014294968675646018638444621340743590210814873468090778826011487225179265158680824720547304223564559661103495877356029528281502860050721366897803936499300221070768831097350567139556963848438776821631058069308988066981485936214636827570603311558624386273466691226984470167508512987958716338282723566472166340356495754826222576331042917594256050395529968022129451835078365300980378652592174444265375070996328521228624265594296212793144332080931230967102955419521104499932553777580144639961714018728537081857540220722701219100622149585294784784509336257014939497955553271108943586736908567512860917748351727670938348463819927412653425599724096993250355659140097446376757800425216160036064135975837551723680011352125597446854060009598210262504421982287250899711128149642267467637670323291050073077937332490876985581352449867331888223043899589583531502814969257487799596312991770630331963552887795791435901831516553777560314312181203575618453053587992178618307099511981772365960913327351653765369384453632704661846200234790260557932292599609355772273589337289841381073309051557169592579696464737703048067618075377004497053162759645204299071970022679310200909949736139458627836223333560993208038527501390622475668999528925541928876565280121576393297316446413710873846206866678334971795927479935834893075617462977321168928067913286196714986578055700950382681793382224936863420898756558201760871714996522777092789731984686797946296795681311265803492340240535987259562280503175700889856103283205115499764125031407701738135100296089924948414815603191533051422521692050133680088369410726093224645801087956964659026392760484834354043240207626054382005756851324217692904681721748372391997855218161446358799177646307731075562961083180565395247053200493616925915348671712889157251983668376458727062788748742782497694674255554101546469686364231281136623007583923809547734446534863413201188504805220425858135452971891777782949792352598047284832666507289647898672193641212818977674929271302519199606782191257337817898445542231822128636982694653696401055181819073889879897436192200084142925130861192507224760323515076844998684193138863492260392156557036724136625547100228711705134718998008334201761326991197644825646696829050537667845390484234355099137962363072288560782027887673304657019461237299690401311738477896643799985509285597786967208399482271044626361268694817816632484601092232021194271235497199411682934178363009192527578308764065278349641422386115430855816605363319283394131635778699177268961103441356978739364292349335863923904872736159477672537948127810457339349540599576002385937045007979275520027275401666890764261241617511919828760802221613542462353325826886178204686384166202682674352106831547807761783112432385704685971153612207512917685808426311178645707845131017208852193584370784615700687275102721136529764458803660995898263252977502626439339279103096978892702478605369801499635577263777289998021732779544340409425809452243004921464867524142586895937543108787645539963060991162155422269488679273677077735498505515622805256356939078503247224051761003798700680827748997629786910205997326914126572811009077833177554883599618327593233883623630601651184004298588882209962516026812285251516446836244039845237628075496185749459164493037618581603382267795999251383084144993203864326322205002849793082865291717394053690177998212457846921496869237458641020610331392585715163889767400363034784992226483926535977423794729595174517582160752698750587164770237595475564691652521430489457576634151876647533868097658800714397019189491800093990386843022393288679270780719028293670347923815353837475376791904326716497869414096893720003662148851149301911079482559468220548886976259169304417216075111345349894557565465705009458018990992768806933842023426030617038460561281520411241952845565317610232697423814029871609469537083808875586651824326256407138380346080672647598103734869870491324202765259734208353581320611178312909898622170419177711828847217169313467365768634980663909010937031090658910770226686001679412771828221741401150205007544868923087637398529447389998013967275250181551005809402668092733959799050197610493585767208511612022424504137115852208014641849648551016150409314574953315277797786559904253422927512325474109146679247063813818196621648933217306389879095727991994270144676371976867777136343269054929640865285734296963222339361008555155954504959525303589963002725778145038141028561302507384893627702050310405057115571458413466818194905562251851348875104635189501228602891714202644500337914064018230419824285736975538355741236661364287267652706387679621178876337097926880778385737185559999517420866450537128975439713699809579865231987052867759303231497282713525745575775292302018261513467211575738372327082509047135499319073129958329893128202084688679423910143518772928828930276240144196954704607026720351324675050363474767027265184283176497247259541824647169219509437469858166018485377653523643177726659120329577411214589912557646801627930344354530117271740969483472675397246234838085978432598611725434363211899859122686431480575537370649977062793564206648347531274657166490713418866295428843783205774297057923626716550383340794516767214603141103199917809447956034129474301695623168202292672805651729741894323582583530576777537023837741225160506763843536743786624308458717010185545881217479048943412731895575804369465439028865701221716330894836066386288172123734069321548027971033355447025925329480705590619627351698094283166732721050275571216681007475629229667918867037012783741072182268722249419599397175344371195170515087683632253832624466239613114324172350805775713655643670728373140972684143301027708985591661168251797324567624324075577406231702021212061420552595941148981751094309698414458266240855579639940328879491421864747283651701374705513397420608182745360153937769489900895810512605655776210647463688563696273087319852849742672446780582563044447866734417208845344531277027175781250031936219799457335551642468607876851325749211160188329527414788248245868347466410196590768318955581442564181841170982403072161291759955613623610926351717828765521163472182713978932954466822708715264751203642205077904781120487946443477373278660439324191979635109740366670285737109825089600767408236959041168411467230709369602643432504259585670070954648135828415702265113292591891999518330615191659160374256644191888576208104212413392834117468038599389936301705174057903868048624261743894862517143751897480668405804937216531271569091978327853254785034254940881995325003922283906850150049283321185255947418712931310170865578022170491534279719705735539749501473052046576068883013634135574286312687016364852875606426697986065324185794650525214434893188233759953490823002542584432726540933760121413734067213812476456433290080898876089387113917111464272935705763554005580559881570958428118559727289230308368493288906580110326897695351587710354805710189056137806469205694681347355150900654686242625578891528347792181265081088524179125208394617294337805034775695415847332653603598563414573331734607320711944469614638902781012566550594651112331185088406966203394134014763624093335029457205216904478596129754930295984611535865931288412325157890746491077475276527140716803716340554668088499167256622082828853570606430453553705122930703793108779281407261477252046463772339501412483814985497039812389022205022748613150919315920601854313528054928858294341742649716640090521800663169269648892981007354971225055004899873357734837684434112117913783690289161622855241607469718526381763925625215891210398426729910236456306480026485064003695660124751160447600996794196520958340623533266704300840944433505347344862190534059578249282841503049721187015985958773707350552319698890944138909115470878307515760412971669140145708710320484144254451387609982691980342936482274673018782666265359225020989512190983703654328397807332789263609078458800442376217527897628183447684027989648190489173172115790729068722242416284408745036552722759972819941541899859659187061941379955067195019408876190372463987513868152107677661094040926691420864861031432422833884625043979802928426754620077175068079020185967647003868837606423789825882751005507201456313328841401722518828170911454579755063998616972710571019051560446456170103000951146721138546777698037481826997735893504803642134878343286018992068935985113700634362192492080492026389647649463881206328023898086860954609140364940845458048766593426795770938592929945842348364079108536888214246653503382047537102659216810957575208332202556190204188280537982454137634008233804066442454212457790685140409608210189993308191895518761831098434371728067751353567832270657173682552387697358461026328383949985269998302563498395577802263050943400016689893569289018150417187443214890539071779983922996543543624278707815322891635373494569955450831364051946377088478058374386604965163300444347695069096126713422876136506009045616970567905660456634694637874988407194308904583972294146653214757288016843417686622286163266641646365695258706150749418059380714156125141691913178659998127651684846851365085866429827323945442079296942125866713665325040257180199082893293333994006889543607957750851308064708784929725687536469345447050809201600170120079773404532358614987494303048984202988172838627076398838580636492382274230106028710259025274190706761083440964008725183765296059451394896800844529995609541994061954485219889923650154793476809901925379608881446826515362773800515644102910406086538205709592305634225974823883181100225608388221857899851587578633394110648291044509797713067969000637480134824627704853018081076228823061578075251730074146240899573958416408664456505678716815615670623301531475378295190053501749453720970990546614716711617656917088173258690913525090809073302893951204994832135796301353768221862084299439373107866364949840831756994116787644519817580596710977383143457401449993524761581853682625954123825766363482166150143798522141337578259421666920219364540827825659999498239415117329747519071227152786443824620764247547143276030296244156356554353050028831861807173489171989854871317662411185986337738268825619231809461644865004937554928276826202009082148163813622082646790445529705327125940920148368240416187680482742004356040765026118383862680583245959357547784977076524450119269672585053592088495499275596752803413844553280655226846691306868643191863827521616616951163030795430853237498313835058387805420295532643190042329508565202340530835431051259108968604113116009693724587844399508376006192467472336528786387511492339293194586960093629904249973653278875556709537527768853714858207907756408319941332535066723351937852953024416577007550446788561508972916812894976792819467070115725727548039991989628034031635756484701649811061929318250076057198272202530632703213876313387945603757472219300857143186088675807888440183212476855445643240476068600553756556049931986345194387011442196117067851690174193784562523392854369271278810887467819554428834044847601273604084547812731196585830630070395293237113195856723025677890575949138358235521195156814515486832966017010900327106377972015927502674266804241440794141886488788583068827929203830427761858769995242536506914053254211075725330174161558642553918006700513854006500127229430931493428244501123884253441966567585771830652303929656129001681347749832016990286853607807992293278386553293274383968915429233825049758957513107837962451509668929703108455717754063320417610007027476130711492447605289245852913917269479894574683944347248110473812120538820677160591809457647316389699491979266292190352081219648133733284366081404467418907354495869290034697364186649467289119249901631591703702767259219862369658921505577356913963082586356058057383946225870770274568088104701741430763563894788418194863938400943424353714277070640798264761999408394859125898410605560121294458438405333360835762138891887418528249951533913911999803864064182768255511355662327090103333084193813000040853846196335818272457849072133033425096257626343566150409435112503550638451245458912119549467236096054245275636328305749073098860291004004153012874971608045746161237466837181125059272732514522454640312491923680223619143361517561552015067177385197328354337709950904312804255362325779370075073585120421770172557143744484220048212338335076813266228758621604776136311596004913852338277115922038869427001767361631931555720033831093790333031344942816528818989162351952701852683540251263439768713160560907716081789113574375826168786015821780721219411686834459410452877286866789654054930197408115572347336676985494605087109264191393824765754984976929740064149103467071538726443805562299538255058530041428751771529219331189923586043811466560949827280878671806211332026935769648065688167182514961423197075203438602476746062702359666557562578310153787313555255568453906084313146637935404649404079384258764523611164275170452045718173757139065887080295129341631137907511033912404629867433669227709380835157602527138430336353333409963598656388142421834390080509205556995639807171802652539134718941774227121897980588372338954069816789675818616094232218276133699666620642427875608757215741220549210718750526581098942839953119532309364722188495000494088085037924385232785568720017768248650348516399900674397306585050101417524622596726683054007387690365123329527860025774361342055996278609582482949249785899333458337776603384311528738435949027580322771201661838779130171164773084473527059210183655063827526530194612527603809822048599153761870700625124518432575849809107134983201715732661887927914889681462800914685952916999393458753310522020418930903083832803639463602315379353378930586511715491803108931886523841331165270302390959041699793962579090437947250917174809439821048600295683618360187221568682079591860911030401911543522991721762224235455790980965555908653623103039614214551174285687039669823523118110368513519150786720903841154818200943549177760895880196863463910059331169555842334501380627081002033727062274028320899392570947097562989990763722608499628446298646117801991629034284739451811536929879455159788078464891353375286447852854722981796150666297054715708051788407845960307146667655796499413823919380049911525756577645167482327671791093474055597919937144084389897617493572889309896903932036657192191192351485371217493325049133890744097732808190565737167859312597130790145718205772970069549370241930086498075418566090146415746546922687104457411241844161692030675917990454433398137954832116335579504649988600029720309616246591896445489345901495583017078679865558772220627355264934904113916496099440050150161459073307478417947000092621668860575974511092962386833169293717374191381471753366526862106635667537436860657932348013016799414145942183990369045059567457454266810930556841468129343414296991157400662916812985338827838360684608699984524482771789470311252260346845031319442747525517102807319236539185204751069892418967412290922491815569296656987843942433102530809715575701554139741799134976811794006555554713360994125657299372464050674756227699163179943854624980580647576645321903521208167493384356465432938392707703241871985401639755411218429203400914910773515019074605835134492646182140408827467258593401920232985436695489694446666275134233631433972187120174820975268629309866394987574267192989832271853865563006755127867923359816298439121206694549777832694510080823093523008435292816159817667505358153735357208126510485854139577044666343671947704646777600018257765035125162402276507592512215727819731269648097016201599232882360587061041948949394125109779903959999694569234042848851894930175621703469235048869679927993265600560203367250540376571968785576751830642163879477698274169176858078660709221976693522052569304970949220602620923972202763470583680706392737991131633002213480509752435219387933357440387025947306108513054513345101689961358266402180371773311734344577326925859087402401472360594959673242816495991271366364875207520798208118294626344819434214989862070884233362850056074184109061172753604003343966315508204972996582994754327211932185961604280256939472290218560945200697718091382784689665000917042533726571764504886290495666733327191870922815994890234219292756547009753237390685254139881313842360737640831527023810291421926511205748215467486365998624343307483264149195077871113399167341481631065485307936115503787381571405482017832996148919402417248781489138221889986109067565089225529003994699430917701875847205986706596870592151701600183539464564424529632903439211785735438740976314706762423489971585118503698241949724028283914646273497818450258146348069390663063540549856047500831551476183754782686827948000526052591267925586734264823740853868010240317720775673724690657499783257048643604221351554512237441646597706046318786064356387808040516370132957010273263805507021927658953136264610872317349007851395209256790390149323706480134779063892872596539075447341795831648028909688862393024031874978384742623452834499765378010913522500758838998012258297681513444826134688462974868000427039712203547406501426755817528495198375344052771170537110509360604373667514532755173114188349449934807273107253097866841408638791656659183794167543862250608181585423720212041570531042321365432811456562249572002391797273402634739642217019857512749573214317308853876949680720052206058123705521163140041869864163743419963121095522304572703690927942577361830160085492208730887173898785247565138220751729299896491926871126583961495771049013926092436234240744124345346423165608477032003310068199801896902285092038596007021805532585854072854520528408762073476224255751529925758460130633058181687510491272127819200404400698982643790097454742739645948782257634122821590785675893798902699238147191289895213053088539748932507319343735338465455448585702811523753508307726319895085905066892731941194220367846493815779980710652962105850303123098273040029927251185762210755467882360852137056875208987006783715731195630583598920552067033000974164361359133322193253615333760124335928449540417007175958405229634198765084857284306426447285738416372715620930123313619714547637549843439776938947371484460792275261902247971401592618625236366064621493001563743950962522214442009181907626555357249831375941465946505259298554820326258646737647845614204377706235032106492523273272565828169305796487686406975470484950379640840117590080491545437486275020133187942778884418705277123693513598733793785368794367566081638832015280668704871917059186972670255130477053188798383381863015714300010993236181564014156784699653361294983651538944271185599798839300482905352993190187915246531204828849351818402044739311242389179632991006175359632112726570667498793740499445466254845811538665768715813075557447135008476040575162764097886166634679367797206217580489118216357219298565477867384305822230067362193609832865627031338196423829635187537955298451172590500895187909073690100653864417778219777698420448075479204476527578122400937521951708753793262269287837904724965356501847075763350185645599064025587109192242987363122719482265871925550803988986457365074764967159327743273758373380866461424260148976615775518485219084544099443211069498151937792116767727268830116317426424372483696763979679227122163322833164137317485772762917159028410753861951660992354661699825150696323718807591325393829603292068289410447364697874281782608343596723226130713897097111836302326597141898536111738244935388167620967638261515619086378867758828543473148502021885632631843454383795298044503308010462960264025824511888362267169117650472842371787274901619635203691303231556461536404039584512177691465280476984067627540011921813137040032639296419201731776419134683685505806075758047740394362795646836617400369460883346825766038649099334898692095759294253494822560448957361742738615688421985144305789726358334447419121449662817271964455031232925201928509199366273813806809603712866738136003873868634635489265245175664022588611174189541655603153016874572962010913431667986906718025877573523251384616009519077643677302189401987754401968504188757364390126916272731687623821475304576381243134668648702763879991734418171792703241196223011114852636528296187649892779911805566376184247586172369752006572977835083356231206003077678777354918847459565518144200028172421312094740243870336920080331271079539830910587033818720299634507462657105315669964278031122141293641270921690710529087464706357961064119079624057779630182772894683719667047858255239902750360960262566058941675778974343853402038826262399395900523119651344019910240999706462513690290973135509053413301094467078768778711676275720399085112106539486148634304832523035154985129977934658908090475904467821030104148225738843530027722515401650126449253969476878131498703774438096785707008093282819461455900675572821436825761110243067696114872872922770871182766726954860320123371156355272964517252379538923671695067739802961529961648869164608248092848135146097263637637419990195659410970749667664295205257582784943763932848839982923274726098737628513404223427970543945062020271563649718226032791435624813177907635086797838502074764778538734921436200423549449755909292322882641838026671317356023491178721342846690667168078096564372735058362300322311951598311992362319273557641639761857119735007318023093407275091661984244676808672027923476327401422956674469619748666652440663822674152048523487274889570609626672247280767059777290516683462279697654980205773296773155082415786078217874450478628859426479269573333833964200412926178467426089720656495559918233119217650699329685334693341588100843150818833363557838196134157420991609284255129875192749615449454704513543436084621947565006115763095491353469698450845749635466512437475305254072223720015672547049985138271563351857294554733307970216678131923840967381789046333019659781609337043797862584584654814357278938427202389486831006305973857930066692959423788951779734272298147514478831953005924494537433699547356908593412232077026555320579026292760970575791137293888236505914733517963090037615653940996246792504490316688563174413720993556278817572115485405794002433271470971804418464914411409049203553453941010015842451532203697465789626228785157055514171837196973499352572060327935939191508380800639562401548395983117144458847163340321863392120711305332115474407074303348687728592294107137984765878306346255320335821299522089880615030848101842563603678856983551462196943402531810076906730200612828810784500370531476652431772243852649765428962883497965272674748126902478502809108909894408699286496132448125230374520412862909615052991617805704065318814176266091421448565937887322467574799943433436712372438330533770237666427648282041597902943967057796629926666025043977557369026275066922341105310900845685966229165618350153662469475323053189208544703216719938575991576726129719402841393044585779744706266850490461518114661794979318731045213208455441627009506491046731318506234177141889574987164017335293346909702004499432604843966908743271312169141010254538432056810293474387096386674455341256317575874650352015171245551479470148210469933444269347731279774461053224607510696833542197607657432796590582708592219349519633176352934529731961465570443942073368353026180928968272627232117924406897228249142695775822530433693304540836935397498692440553947780979903649261344519056210263916132014624854034551443528917570386530626179981775364952407785242391774049683083536276597999029049858843509276686199844021454359722539782442291476579447637619951741654944909668203586429816199705605756427874319406259757421997758693164818200451000667283716333976203529195091178438719610063382354215620527135610784772920703424162004098524157544352630182750963354511509684372561511470906994939350061179780162433154582106689450321361525684850254837604535331272748741789954172598640280468691798923804971061589024277368573078488270271537752173386505821388449859615320263272425656694226075267700890514160635886706886079270926427252017716499072715172195399838491208129090358628801896268412577177364122371187532860442106916316136086692253335607821870104532515810657515052811123549564104756400237682718248535090393580302964010516890131066760267890779890713686494938068476040435517968848436484184392190977236188599040643513846027320832732621634571819336762806465352566162240214970435435095260787142744399808344066283223569344155268117227993316036352941835812668677214767353836447589599776013583082874011646344218675373229660263839554175384798059552552495981638720846584911675041761899188635629788604645353986339251450117203389158099053244867496759933391519076523857034061735875593545734959714986265101341523461552873323628331299771298515177153735532794303299259705494917539983030822616947099268665379268920152674687352669093992636576899336554427026096332634614192393737867422237509303235287659277136001368088690714204728973754549776198003851463198859466721751303507734344943190553639243393704779100203031489855168017626217663880468141470261043647614017233230949819204787524338184343954220902359881079549431382230689867072625629659284149375364938760518604709754481851019928161305672030752156261244075044247182374304477782898586485510098449685662740322214242248792603289698903081577513712196044941034185115604313371388233478664337188726836019432401550918726505729768293166405747121953150288245041268994001750060464467172558610914122070890574580747825784969773022641062821722702110626716643246489528233993465445941699416215219333359982585959034936751893979085967121489613856520628468899045835650881255288572817467210357717894563129439800204861393580060722583676522907652035893328474459312227283344154385852873744287471265389288926733939679126315467005134614261305304154171297516152164041364972958700429829735232880000467994409734498783179364081818121474965530255226396461085824301586460965406428488595747730390418989043237979175453439044199873232099122297579808318812316121990269011611203709818998782265247492926639350183556659247396910901409624297980055169920427247866481552997081075571884749160771655441772221875141860563181250469505579553521760528556660563118333679285467305096252421953939540760495106426584029038538688827906515511614984973779901645395374303417167547048372495341234525211506082768251949996502949493936152064519838407305284541476282965405586746526503427680149171710786232169363697964149637504709907165802592832010504841248872918431084602914333085623563928057057831275670075897424286560922524292975054704258868737695337920684715275971161515104401831561586699939452296812230631033259255355555049371959838818047032118425360245055109487966532245923828713793712766723758166760361087794027844865363363474197002627192836808117106117311731313349014545524345569646641094384143809801496773296016275782482129313302094061492320628592998119773570890263153222293022764456325357179482242982198912681032460564996240647948335316380389342304781487501365759470239863097674609117226471519018797058911618596878175039169507119770209167539726996404525086535685848913658247287763652613222413553344763701256243886636447747050177221989819530496238416915711873107224289312610252955527600544910323826372632934767433740121991984218401966839805250528033446890224831440488507050148593923464145586443137752056785921205441674437292002943727300784850002945156365279336727142507655156713628400317104848763533454242966999264067454741484876281759492576359602451155043488053954550302957352459383498705656076868792766833520995253857130418274126734120988386356377612339569700148195040001030386789213096498057460284698465820560145446573929675727173980390947455403599343063387068928475109181946066551668912810397716017436735741077902381718362064866022777989782383223326269778307194757904510838781665464359269308421614207712277235616337553906434243628551695636707163923870658029686784241408476273206588844111646879247167009923782263687793057865518939203106013581639485024537664896175962164943177268463573988609130788962814371774193951431670359093841924119658944292198638163944861690824902737177998402853596819891609634405854229377572716485031963197846623848144243049482311181498668205387658593136588381732349804709452193317673065754880485889812935729508906370009847675086545572298336768916531994975784790320429824851873341664179911827402620702238039443841451086411218149193317980959614658344037547138912493532681300705403208319978902520825990124931311399588055586301455520843271312726540477968292548594390199168158671288130625457278680367313026305010129830171466239199063691952630005224678637438111782366834835748999591746422179238111157839613663059220581566209404244836705558604623952533647363689327165386568304748579228377310064084484946113022524745391931489916373505692102306056052340675178626836337875964804998430355455718109710263405688605563623157996582953867144622889203210602060327493532319702622129640202755221647383632391899881842244932429818599506669773269587491159968148134312802234435278663058015374728811161858896038849410313670367898173595285455410119973563873509980234256272301536800198197175784011308215557377244313832670984327586587478253369087315568677196200886364236959315639188165052641517736585472191035238743659881081182595412718046147768359179513863816605394609621725591807665449844880987427650766993355896333679668961703203099515370144454293105481653530557399893926821955772719902296944846453808624245973771455068646175977897697981277494333383258985634383059906830019622543568494856501600357298159268987691593026515239084550504631624557827839895825469599300390839235124256824129828412295439755775326272602030502013078514028486185627511750577279937251371428707655142539970098733278946305469323064525579401318012447849139015628548948760327169612107477207734000649419217899932231183071994098447991212465453466676458255831968918398574516523264019190594629883212196335965019434018420080758959936768947557529752888096530461249549651284840344138734156997703307759891473050762979488592265452836072648732898900913757558382015958633968627755714449449285855296989988153011174548759954561455085849702169190464855285671351892737623209276350123927383802936440374669747650917551576412293726593320587111770693135177603625077292245975939838398568495427803104025351504813016647311807099831164200507698017415057074842476561984217719840287393517721554479823106063463329156450519097622318410756176485224781256982677067724666546557270253999433705168459182733099600543209808352618042593421149388647449753356297377519656832443455469857071237255087118585855432664081904449280099409488302040058757485553091457085120302925943961326312981771076154171171870577217569271744757969216350061287612485436516757861021917479529923440685145012770074758352162878469095977292708065190870735543408866832540509743358711059868872338046655304558031569077716418590012957194660958870229352346446531964150152530136771079610361176730357888766707017755777935436155550375517834357693350519070021697801414680740750666906596462143612644255431196276703448512347590237222691357049076430206722337321772612103827735474066964881979401339951064325426526025524169078684393516964450434894598726470820339348935910063034477077838732878327330240692780697484625526122148427500265245588411951094366113254796761994893341376819598384815572547329235055066203946656048230866853341306818234831130262121435458551128192365303866992945209822474318777456277017185218010548512014629341801772619773631311804016445598446542388039876361848811876758717663792878480946131633570712800019580621328139686591316513591283225844028852963717707883744119722453095034374645692951932521891176017007697679536768266184565978276983759015257303698080775883338537740295312175311404630489703805315902866583229309756087710963562163211739619373487342415957435003878555571475489974705224057254227279104723043745061647023324035531605183340915514290369628680134909021795915980483082519986498874360132168040031389960724926951314314528036595111369029360654803108579092371527307002916220951139427847299953833464935741404026157493194027860416558236772057286081854151321828907267808634142534033628082312422982331899124229620144636682988699422853561210649589708255436435770753708393247175181442129483889397593932005854576426805762484930860490056948646672079649986036120853817871165121409170410566101116791593125648122844464699889209983025323375679883903829432839946215576172260800806592725179938807048877650036345108081777849624453736061932409267541630729200895953059561531690133602400565004554785835963119324461421686784625578663376651728707815643622080153104039534055782038491765807095258936160762623624956106772093223244869780589582508822799037577618168879807741768144259026289401180594208902878070798936033199287690237186546704928158034514632898602214245461055858276297589904613444826842098524676316616597864012715280605212797654714944402424318838373791052629354774604880269554831146601118805106813830010692860110168297207075410484959037000057511740308955288885208140542818797761407723363733256381873504055304214493603622040168953846249855275271190338750291071942554840657449637451936347697643912116818397114326704565115033148767461181764769234522333938274082846728317837594188941317331212129247654059568336883372445199408114026510915818144236297087324993066593593405248711128192785934514543931250778565392322870903648319697565274959991082339355981721671255532199784246912487894434714461860201910174831914954125534621297910779123079232736969808995179184102352153838548383578566006494031056509480415985077367193912759057859541129568143145863410804785291784423050320999377370524053232911122718744885956833129821420092685979584329873384204449613962597067848331818857713138645566852020771565496399538631878635290524745335228074265291443671373855970869260940402633296744455175643308296430319813071426368454707351402429824596454428921205598003052121102890202943243861169191159361183734864392027976603430204834493455663708971222906117998322093428885825751881891267603833918302088843116150256407824562160095767606035014981018204929914140632977939806717790217486303075930966905094866544116998628442862324998894495896514106529877469474430460240726513484648404291501497856029544255123426068572949899852521637618304780989720739515961894449651992464334971729613461678631680519498379439770128272344313517222088481612219580905452359398090633779857584419539767830420843088891659182600726270952979976582481469458924975633411991109578063569723575782345303693808867249350297803935951881776423214751840440932613277473500688396734127418036645939357356214741256587946675879927350767016353571002725507360372647201207181648185601547377611559300835329663558809226846988265865198520149487544501595890790708856637927926301073042141412302990484345353420843449851635850147112846261129964443116496551018429724469110551579787435536577240548072106306778337116294469309929197764417808277367095204352486246363380908556912859549076486570331073157048763891655311240713646371853287607517786942201013861535389181465681788875114957996375724911607877031071869644766934277595331080410012464784095190054400203370524811887716229120706644091005789959484911373326901836890836244214441502310039794114110327333774779005570672966313132032227110051989511465063093317195228745875780366867468970247035867230570733705912354745877018112113599119123515255776251325442397386775677835159617830727959253506219445074092068434520147982291348836070029889456556851443397595158080960718050113037535067681336582026855995630578309103844236169324446848500841769357794460841862538261286744504133685249313891907671878929773007409206391145568162752704610034847439264784459632162015107323625178275579144743218246222291918983744904173309125947153959088858516138382544751934079332247702133202726606860330722327007110336464646058847928085536371432637859216685503077762338341216033130489899503723659387393198400917707648361437930045910644457824511333429185004482049780975348664422337797516045645465422799098258509817222788857834475822397093928088303870487684394303676307345534897721891555359682886845125971437185671108685816535392798703608565414762554925775048855285009713402109255011308737078378587620192473672367192258778745911062999071229134638376696249467383119640153275660723202133950669196507576293433690751107668201434704073908209636233252279629032341101489918870621735701436028759403495643939260297853732534778564863692122055182475609746304399760417179561045989958526439297871501613515206276975900110335715184588954516408046110624067503751067827412150822641346198532205488199587227232567264771197599756593400380006567748982583738511487090186299315189567396422208547892766357201672664991958414990859932558841496346926157839454623256260224876142424386885862064788031047658716546801659039419611717317146612659651180863830351557150719353281687178745758239375248097022065304167098272621711324965679014503500300785629289120865845524441580475064490105896701513051918199708387269644140426624357682555053652696872433669540488512461502099334897402585523715190129612785271000718729141127251840956224825957915985280888974033044715202307815269186334291524036628664385893311791430688783950142335487415792340637918363482203976691310954534284360688078759765370060526140517003851833985882974762727865807660080499359578317676633640451219801642569373074473384381643367643598597230409393221286458917282493554302481583053071391110124850536768410338149285396556328896776752593703036747609818197135508627875196334842149868474743932507278794121616013243268664039057991132621714316928159288627430414190938136544791083521273358142692535305343903658158712001697916568997217568957432971053554686412718736840052234233962663630576150662641008648224099373948127869647376318010459920947152442824481374601829790805913667255006249611987959978548280825234243416574647469658220736243897645996179103716550458819082987607323108891863821114563753557197794458460564727085577447611606430922006980049478794596460667515429033715748989070168844913770998277114978476362378108543862126904414032217288639996320076259399764288008282713862457252284341092779197990761070657899524016008038456518624454026154222092887656091587720375180292919141905872740842440206289468991298056602016474547505705151642884553422252900163257251888141994587001769898238820711743679160228965890820975227835315573815222769720230589420127358339827235072630770674902875725579238311886588537253131661090174419663254036645303613395479535810181717352104504208075923875911854259901481125012340362966451926619358946061720124949850000514715336563207257613177407385675524675611242817105452466753173993348372786435244729837113687120527464172460852638372740666061758117679050983302827193032677223490685790700582041614993236050557852808593132633340618505087763854854119605691726629769056836078210840524288198443101430522473239891890999449493210462119724835994134017905283312795001268498993598469241822636907564069625165837065052591366781709350360964182478076414552460909001363974234192370110614086680489771112460164027196139232096804075059428162448203183153619721172752016723617805548874188698187297488696416910023131981046706925146067544253243638696975489284683453569437315726281148723299872637809776591177407227702453399680650057486313070174472920589873811653779102806505473029216734435092481032653237595238986845976464546289818013662751346514600761874871555461399614652615104877270177888234019005301020467957701976842173057188385107752417435907920476443038780687163456110737796153298398924442740185902141237067281634879419532811841440134079073266388346211174725462935747310304427545885511530660900015087288611947062715160796394469226225196329707558597069106814484250352644476506830809621841172327686802008571928200489057285021380766139577567728637077638969064180963356983025131399396390444796141012722423402400015067916000541031361322519823893541019436580374238278402535439724901754881367855109104647216975506754161552561551485271523710353280513232267624961504993415481469886560880129331664281738190329626093757810934185818493429099150577099293747963501692680093786076493647757309315149884322618748543605224373241830640309716847692918311466462973834393374673043716590087912521272646906879042229645100662509223160063881199527982673733515567748035217664308359563123918076213692890135413551273901989590380441027816640284182352179571851286958065346904919233967041076314632193709869875885410405443271027086136114772672237580242429158714850635501443084924494934098529990918103038442923615761013257369077377721440117464487728302258690571652972037121710747805846481704362058186651456239722885222106715940201503469515050109806636997148186791714665280951241971444476179544071543786195050961153402381243804259806741615020975376150260705089873896026316127186949299692521975780824392578099804209485827281873154015792716560997439888872019094630423984353484652098696765013372270022103054081346510440017998637844684818769940786193850488169112398498692458461566435631557050134949741695971711793220916378892929530225594421582290442883420070586369292224701402427922913203967123790722760045804414143827066139606982357138443091636764582066396758657515932834967608385394923654776906393166849094866894210753538209484879283612380263154325717590469393113872019366403120691720147694236483665967868297522587957817894551678782990877922689811066288361110711032483394724974082340660370415335148783147005528423532414982159332571497688164780432749692798987838728163724862679871859698786651651314967811836405828394821373498002368788591267422949511446970339619570904900145556964137959934931636845418369362530192576155977572475960828385342793421500346275093106771211836054491024302615619869939343969585133501070515957417561713397675422808698803102316900937298766061838065116899111301732415949983545289884021741297034687006897692180081057499672378543543946331754888522946391312756583927443981120519610347994751770038588563792038162213782132012411935134883265850432391173958086589923278697604732203501821534366975890467883586011380351751334462569453262405343360795859093840164422230953082465416956962152796933303984056633687436174520052797373436244110512727194887406040169870983217378282709060578358539093940973249233144578009000380257403694003755212807428593167778907610048935852872698430941037040744174442600752219032140002733699918519227088943501170349684191879767388817851008415394607885251968257985676412908044063782659021493339031812147515921298775722044483005042010534674882705506783681963852111791336389447807793684671926735512343816339349771444159821474410555550421374767189429486681544931395425755235142227533166645706670115267058819462559420550544015586267261923726198345905759093634682169632892721233129967007739412491065937569837027414337227556374490697666713314774660477994307126805194891974627187210978523717478744656056902767706492833175954333720593072421578755920922035679811645754421160645071076582257048805597547020825532707249893516902547168758101035685645714046382681527377067252167820578768428898317730502456212777263292726804142105418965132655255399399363923711769943324139779077716643754955673400204607009606527365082263098425137420424751334292074265496523575029489043833902664294214201739361181465752614871578002766682949350565175259819613576954211606654341682162223740174537541832381177332444143063434914722196133808903825481196656522497566465744811004252704285333961414447395371009091937823347642275081607811814411426743096707595938440566271678943688550485889264474666324999006174857997399501123471157143752832309562925478323808144152530649520485326259608748015245671703988326428139382463112467260926266716044304100948131955032407258511487741997997828083552078590102260427244746056608994723722025515368170198080181454804759173303433031052610055462914146190673023364462314057574739144721691070638459998529320365813194153623840415437455107246748617175746476690313621435521748691167468635192718795014195448794327980732618986753411001543346543670872245861238543758317371986596132894017735107345781285279636319626091991833846071468787257820846413308376419965170764036379167726897609667627803640312213821440677768749307998192156039192378712588716543943773379366248335642961236237896520197994235708154032673761950804155100049004349484931078215327356142574831513995877659051754273417294203347165524253108104951487492890000071590824755752517370448271126084715131774291466790137840094775810855733380760365448342625579159871965539786089842732491631588617779305312551253256262154310936722491489249622524829809917087852303077503399627769275179894697722610388873645211968547231469411842169520435671439097915408419198025885356214366169354623715466072156242835104057135916092576852860738640598382002314701031722998798744096088843528676105919580244045576086128859775138558914582952325875269531896547510778020462644615336076818536398910238352308835576068477003676972356063245135425045585625429616194289571193283645862869794698892068458927905311013814588281257214459785090934233520643516045146983642106821475900844013633857224981826044986871698968238946434947249768486418215098110653498832384339481755612209129955240613482920327306653600989485582890747619756462498106576731717242869714169980624329514697686696327596366299633279955844610197315988113807080421497472790107702796363907839241313715269913028188392391839882294739763746198001385898182141740291014505872834904846951185625019238412240470958069906967360529366133671353575391096958391945117256034292545798001970685406044381012525978401917112700679176985644135197115311009157130816759629736341991019185399614544963981665550018885112603342307304666162803291701048152383732399194312331408382727020371493353524273968900548567814321819701826941525825204685519128683356987410923010828030048627827036966180864174029098857685745838179562560991182410366126221548299468995977441862938668873751579483562243046528899297639953802381052968346224454490992391467491810715510540348575718061396720853665737081836299826216560199008076842262144163315486707303103563572625889213477360096222452378070664054017544086460303845058590397189222922861734391775068700812464779597278563691792136471958629502497007857015537633967221223067624353897856699397632677352940315330767705673692485122068923839370973814863794826986570478983155790779536669065966900672762996712911480098252535908451489847597640798723091615949898694487788548939990534502941539854497661420597914118448395004925120166724624073119889119667462781591336136334415905626837902278614187816168168298411388992044954079036266020784463154472822262175493420932072366275536244534460032091483469928292654611505885251454938893782601427160892191455729184054088125000144050982700436893967976227911091706341150353917107994571842558288973266868583903306119801065982983441064025677540644658235112612597914067841704844426083905330715391268750863487144235573211938325430113342278933784302978299979282014782392991017689358481617225937079520044611780775521304777847651879283343781248616018020996907190321112221449524278976322352891667894347350048518791639223370122882375699205576163005150554554833429364668615856200241045393374854936402912254162185485757213997489454978745557789446591181315910304384944749105997870087632576489018864236100171896949633573597499484187975492087226534401874001583755984880005543226269509561037626730408423052497070601774475170927033539129038419521613713921409962013233638100859540401485955147738091771904763226112915997961980258285532879526992603677346727259487341918307816912932009203168186087708293621097988097648969425368421091360472583741590484036448451128780738074513073149722260673028636864105932444893406928028945195008724550912142406363301339775243200017878792123718533122020624921446177845156412419087736907217560256783575559834981097078548091692666588987653639942157238298711430761436213429373964983845590782442613550455264388155613957575505160035482813389258881685627629806706613520000604800520698391754289642703126348031784457985182784699397819351415304528445737042972904733692520044675185047722751738165550482830919065144262070930799693717487746768937946192942594620407478726987781949925030000177011749170665981841395770082795775105045326853353054074725074292280097255254208300271613019694809931674051031732530556275174130818763452809819217355074724387834594698181847450029180943003420679551924952864245510949407390417231722616901527693917383076254893502709196002355574980891964028518744329075844995223941473412280866686239928327746638194709394663464524702273767346743390790673201528251450663649354731814623388647063900774689431437251482942674949370134803188218538333747318028899703525349669716922096517237202318585955678793772333793687799994162723000910681289127821256695692205311940564664198236291148200374788076909365334819771638556703780460158502409061495332268467918791162920081237096850852329724321618019303923905863916576044101336703110542798848280895007138733396647565757214702476225042483159133165151933122145963521974725752391208588182774455995233813466109974368222709046931787803005785933143782111087670562170387265802884805129730503972274665071481982469863588951516361935704782997293204492638983933789656875219922010129357032531523680735520674759687122373081272469776483564978109315080328720663557502175182393520361945018991094459677822686592067605560454348796165545259183884209036022346455736853611714997027031524489719344955211189779425858992124329810979430212676857281421066059743345257475440740597502619511942308558312958405914416580680247260915154181469614078999467708630807467139170543267423614559176066581386344419448809665695894510520341274142454110542133905914067649656756444821979133025500211453658808122451417935827117028576277479924475912027451822918865114973402694875031227063487216249543751489300514157340983029303456448049175847522438453227971524020338842096463171232093286994138926670257783676660700888588577956525924562946792993511906244750709054510950324608765664024526228189528142067721393001566977991727238595255387014882834007740970391364804992226989571704738572399085148053967348165238902368141857389348211106168460680668101780111290923067371649101231113756864029632924058975618448681299353732075123031956427375061851790448999562742298194987515721026766578313683422969000449680608836443685987517425462042795689712660230358938171375962364315396407616881641996416004723562487569232878126999342607294945044655430504683098590504549404790509155303796959465252257510797670361738539884465942459981391806758234104502540588458371952813845674364476343477043920837884366411906167574851426730628438293091866885160579025862050683423811314631826999053435995900798907790649147063698777951682733267820831004784121620051091760280142526676626662113479181288281776275942746649105677330920513685778757430615570738796283672306816469987242423629301352795654509408271430766557792196679470142969101544966903413071513292792727817472896676109751099313661876182767136672180134857799442858782207842187110905195190012431726091458504634697867723575127857654534118436835162061233289158138943894309459720065438296999762551842664191892278616636061791777364540026964485679383844680483537720031910538795352015347255119119713513024218540302490856917994522214905765458391002135451214521171488372225503064552828247423143497756702286934133338604650409278567725550656507543139104658829092782953383286144974831673823501568682315261739626543710253727276067627962321017586253697607490979486564077622370213141231607765812191620135751247464046319440139894047701483132072025666154846518487416069224551851828133491565737372336685119828393155732233891627944003216279893776877840072778501375476347015987935226415920691472212799725440799776316419531192367559928678990750358684263467227219382939914449671743304014430760919939294327845165702257010861345412655969223010982018931910135920014054977356380544780664785537985624376639817558006233875638718282401138018746665988773319745127438786739928455827465247154042969961343694702050145926906074509323923494600211407051277731150769238139394911370497423603424845735986341378173570675115677402279864717928629986843477297975025858514126994702563399042920920929227399784681259766062236781337075923848097870186783092322661906836721444506373986160996409601624175687216610600206439094271764688024513448337568561620583545694030393537256858170956514020232757922234778496427883516030986233584509595741036751584304193771519892290545509704280459773907597137383576912914304914745056099966948577097577238574511052310713967693111922111779432140407175613912062597581564186374792107825999994457624384848429710625296978814830438027744982481581442653673439532563944580331579027737484988029881823608854118354551825691703698731643665083684979028617822969930294105570003597828324637693710999788117580322327948225183708316297772648897780629687017139861703181385253916939014782234436995245628544702466308207569887923598094324019313041596298156418914551740012393081043142642095569270772517680678428045491044705662582611517571692991604428328519988149950219498994329234625635611178508249943713172889741978018286507913241280196166112458678671367141807025823299490558480637272353408231127938435510628295650166141186703082957144638279975926822333336860790446285808101279098601563777861090171792507541015786220072958196631543988651910778214601260653749103105754164809576092304380650593596421875676947270999720094805599503795875114132264626179565168788682204179150056343861642348873444770073341711320379125256161790533143678145864175204701917035716275630087731320330775515856709824425890608821118258539739640612667906411649259283579318866598691541875992387633035566805188453356452714683341178483798210421887326644429288337167114437458997091745821173000599526330983167282611453312632966314114520907410900187919185988484248771166803867465915816255977658875786082865812276016032479601367235302523349680767912843117272221161069547817381933917935187510252399387904989521489202035978773118357699826537016607518177678847785378160930662926681155910717731615831287069639380184580236029172446298227573211224010118480173468576311239165102107318004097705446087925736314222740375763896626044095681973459666882060965898947071071039057826660359763010286973224058594264444516575604556809656150546983264016774355313754916700863243958999576718095330897147645296846070369371378223339698520874026264037990378042131883855813024238270448529838080722580894104874052798877046697582331499022686626820720764975735757705103126466479284301666926255469899715467596941085622336194006066350966743505835241755605844783439163037399510242166460653528621686730430856352504490072081407446427512844279348775677636904558784241466977020864011508922869122116491248410756326901741864795556164225026240576391244806329218216519019724114471719625598849131863235054130883888654056869041817772845246556856062292012596971036571402222115597279932225738325397484285125946133692613119082599430640757882556748704560763581425070573330281037458245401775706974545989942776494491478886258683131374307505223289805290550328373210055707359437168478906483886137340727120958631965764805901473363111421146678504680993738036565916415234149330370691213193134236797874782961824107229009806126868514899454219047029539141634465314049158194529552073693990553448476414048887124897375684347788264660508986432992499196577909665506119301633849976854487861382347049485417515250272984770758713255297082074919854423501477601034016935355910041005301494389323836099477368288917528292663628252799919702694183342642210047734999827194452555798857870109586459412374624012245778685877712476248177814281186459935295449557829510739870860863382202743604260602767723152409101149089183854310487705266231489730615533686045750920968886481025256469708385243828503907954353405025059898340456135102370450851045756815827719318496021702721587386300538038124871392630215667329813026403184281231552884453612412854901922571909861755514995224341454373005797016170532151482117480263927208372328434885040415712918693502144810840764087105635606398909554918087982654199159526026256368437955395035676367278847279148690226559996106060913038807011921173173954640963029297565650604974649948065316200403243419755897997602544269253428174780175613360058740628610935481752827177321076520007385038416266673161221992570215066952665128421949164074040797901598126911326629117352909048641473624072286741476262569284806266522975787233903692020011473081599657888147143847568960748910612290413666648254283911545846097435279331392618973915478777835532283541524312746626124679887423603530778788062803206413729717437052609622139319733216851297480943246560916626575279791028530276621564933955964059177504798330312424314667855179208617408448768758946358259524170071778222276887767125575018466077635844486384267961806636979089369276456806597692426011887360377756348472220622183863523343304298292165816453745587163042960836896847732023073386594106385913318875193205670654648887780263933410663731708746282994388859404745464539408268462866911574061203016885352545484399426294541403996406512704547546222679252229886949507687884314283022291111897692925298222005245492239147056858938822196007599504740790028513250571670987415199834885599954249474175784370825863763638096974374521167139046530818604377245845767607083734414407303508701883355843270124433670743533196511467491567429075851391479905153528525655438542594018509507077312711832831823074191869583167660355800252155814844007905990642882718510728733627488804950397375826821284110135665768037846333376057692532726868612335328555093552580217782700182258352070168277417121341795906301869228750713135758444352166321751545232820331667063705443991481038043772773570637684075667946874406687303455988961935327006675881037505254757731055188706268589129994799656828641537206395289934763949748086283756839652154351319005684699502375802383553090050858061860183716477292200994213776652478735273157265018449593451840392092015726653906602601287888923434609335097930559874992188436702070329697114557491714071288028607782871910112268991588906469994688124558206013087268422476966303365663996827507978622610852815311039689324696270656058557940327606439895019620939755328640844294882681785293746972886759894934522015403312225977202482700805405711898732887099947200488652491079014609929401789417485841348672829338505732352790690668250296711213556957122822089630681498401785386393719251530135317772834060596679130247823488909361956608333546053953944507526669843238155210491771073940470886456689713662009560045033000320519841430262568137239935694332076201432558054117954447678821940629084510020814683033058085426635672047338110877161348526415264440000125429037995197047296780447289711579683277275432593893340091647430988792127342901233520469079296236186921792100739524967843935263776730544867454628875509455956727806001542912530122792790536235804825213851706753303683311983800569889265921893679085086526587278135060110162347703578954110629501131222869830075022780745065203313980039214944936381375264643069736327989801039125381706068714955277026428806031709739510607658921530891912076375022423820962106166761140624349134850270701661741671677816129282366507977003764089577432568079236753555160390421228642942750472631427074080334474545443458418302383872732709464561109357465303760702465563683830410388783355892434078379052287368433691728012335477684941262645237234565505365511917759980442814999936386443696174408225733445662736366672935870346494256906548139164612200504482063849131545225920312955359689328893495359379971188754672465976290330936920664785895018716093174669824816740635900553337887940318350863722501222949053541739537764157183018907163763723113543468211356228508960663302016463052129864172595827071873977577189632589786159796812941809159881653244145469033946177403129080725156332757290290078202236101383769446626309821965316419077896067592990134796152531182251821843212632567251323368446217572551303539566059610588899826403658519734690297745132261318867362914331605534138946778398689326962174852975313346318209387809826094245465820421857749729980452630007897448188222499419891349346080904652494601148560364816079746777238157570046302805892264779218053829174392383888755056915942541940763204702802320407940333127090785801028092703393185363224555362508411241915290103098922846236478337981051404012527505529822826254689757499332788274574003814648635536865967277069901786153223792124654556908343787143188716584704660230844990479246291305113363997799011637430976055920875716650227315715306295668733177237679847845589903029093189479453691838949105204136688682841916106175501707337119522813786941882582282661213166112581769550240805414182279500943763038666510951049668109573171377492608242593325941391046813730002781718146806968872044431962318680412974813582691826698153118283437508841913033204763982612739592508611776824684533936429204933196967142379186016431467131712318060430217506576528851328285209037077764296883969186424575130886060122175679980324390461230717074619460071106784668141242095156672739577971310132977026267152811087122207631288386655075426110140619563719184218888940716462415408147071969823595477170476476393575948761879638226535470241795015040804616011413436153600755281104054263157363177392132780137025474087620183086001002127979503000539646616410249310918394114520396455689817733626791815233400857262296816430271800145611623574802104637883533246346545670614562833729869912461973135245633160967277209088504755787735661013398351696400260746678019985476678018245963751469126603664216960320432275261088318937510433520164546517528174055505117338493419375827872116622150478487035190568672861110193742183305713035554262834617628145207379059069714183159008792269904097048627264247332099843241608219572802484505692076160146397671265163789097588033244143766594438023723860913432703090822115979123938409303852606385459913763978912271503650111522951099048356529846319772668428911988600135939508243638437368439131604226300853120142667656509337303674491295157792007331952443384283304193956838510341249409778574707210174062653487708348772421854850434415319532590519857226683326798342674504487040226971599794862716089913012419768331955891236045603269131742643918871808999032512948534688773888684693655202640384592579010067367229387190344449937453178539929582623931920518207599934519220944641589492078322643448621732532581233841290236954328641838215552069480974807744592291951593167107427625960631366540507109007649018114284501061352600771552071689789968097227523602390323625433265239804649513453876281381914709159096465576438525522348402886197452922192754755293277089352676836662883237472623994087083436311835480892500301752064210222376796396158731704065938271196260427640978985145385415230833682709818984460176557242263573726269436019789458415312573133684396640309621837194564437991463581633206263547679135022462393798121220406716187701618559205004813160488994619704085268573203197010993452495477586048991697450125534599083599393854587434026903329528288319258940158233001146370798620919973940650764078012865719543446350257318342165658741819250679927844705844166067529014967484565385735947223725463358111706682035673902805214584948391339435422959447169928695955028352363679416540579368130013886761131789481086184056918895365054395697010442641352805969161085709528351596132439873756230473897754914027468462585365057850335016814504485452862471594829114174894428593536612223868116147678514218141645444228041079624211009675714386735490083190793563184604981839974415736993846443481995744205492295960018887128073632140348353496413732848793620757533187024484168146107687892055324340335203999334181968819665715000425893186137326345438032738384483173333364725951589348378840718682387122071665335687489452525230184731854535121196401208138574580592201766094961352522095402655290304325142389735259197362229668579953615747548373377007251650130506450533018306391346990297867544907559155541823727658407679852563072318590183757702141793493576642875899666159256734007705744868125693260433989409936016974588027208224794380193371453822644774653471883988365063180576845134583326590921516736153576834176267967214275093278593310547079573565261738582334729640571485831985319474039894334796549220486607725240291312744719488643509285405501511879613232443918266343062668722993679252479960317275636457067048277120615887756316343255334546197315331497906766737414883440563942157308375250677826252759784805257201161554638159403416343106408992147830135497645854808369975340422590806927661513880923622688390749604947395776176984005527080487787648615666634195032916517363092868905861419647242654355304166314160890372458036735271330438697609598018364471871803128520125178654054488874927493365534710544065091381720947293092921035216086262880261838772317842189632532834446755653518074741320029097589712406797041642790377948584730701196269194697073209066451002872244154787225555017504935087030363058541010053849060177799572459320802676540867935317153653195663281615838655570138928422904388728953850606567852436790875951749383854081553723819659575159886075493139506415664213499877791034358647497651251226122543738473097500038896166507401721738322573522805795346093955765672496743523178551005611800574718275993953110022243387530954512480237146711280543685807561770140235192501393260196422878747579514162691612973208877423040250156124548176538314469398475915639452261714378907860432582496383316291256687741904911406264153307454601036778215152044888134132759256057952425332088636152828652591766409426096784037878719685634419043779453537222971435369868100674281703564319581108436200966933283577646829867373205867188395243747887793087107731516420420480144950501120539381666507896017688931840865149614855451963066849797250962553126490082382083678713949523201361695799833995348373417900663653448858752398546333182016274540402272553324182284076172610498586940806448981406463442965456659300528383200807516827789458482586097866493469042252885470970052510140154624727701622508218496792737113690980639046685928826033748584070976236800514280857930006110878165745250996692421053218605506421561768458939614281629172143963213418325791791170517770615450305991949697908744546021356824936812483013936108041073861190564942708831015692162933029724193340795921843090519358685937600150461494619405417629927711463558203292913217466833040167718253819971381632599201601061554507385479973423834407740215342008599314473494289354617745078914606101691009803890268208876694125522427170040679363227453800604308982392583553861503154533072768218071774637398461100868887922683112115504391133883202132697122855767891872871133181760281204723171951073826462093267840765546855554530776787840621256450617925660413352435339917295719647247945372927294527589606601603879908039348799011575643641172603132794633298984452092738188621335580770936972689848568272449640543102554492164827545604495364636325519941869822182387404103181507675510073358472181548810170775149168968285609931148518278796741653756660253721592263606899110363326247921731814366874081510183735010144556348545616980974892574322908725397052539680546818727194247746781372392428277937514798195224728209864962643948309395823398137338961795297455209967174960515687635592646871991711584459531246533947374329463948013189372823226405678388764223262451412504316256052876668839242938998337467556924454508869263437781102521046227362956228332469247657574788105859781097086556970593752043936289615372534656633265115341298604784369533000133662685635996637326786690715078192982609246446975542035048785456316755090015379794458706860194553088076038521585095584838774389817243173675561422397531272567118769454143753896046476559655580680755725636065056158577797044194696754545302172024914971724462459215731611470036381438121958554944224591247807408396982933033451701722508996212544153026616357646416781247590084748557901099509759063359549569441925581296950753975786291826785016747778896372865858303533764711314954148213491910863390525681893312171664168149968141671801472837080673811259056855621228605860506315686849720480177634358848194056309025416338847556205647423606707949580198296111493371338152000478859282052796095861917045358083344794645581752714646506215796103544990456532059680603035818927758411551888720508637147488809693196856943255910471804536839250760321106855378776454435295358304381169129081755145976292243443312889411216779123506764813472151212942829656310849878620215011845145398871489331060138065921446898194626979374614547958556751961467640077653398135182109308783632903431656524292721205562687663014482082816332568167456045656010503262468513297965310328435273044320341006909836982850666885526235494646937949499753005488611956606106928116339884852871748700961498635430847088407207197829758291488780488223966266855101151549149574991812053457341923450237404554390831617060329244384965341929604810489455865523126721568191786308661311393581696681821726124631003419970737094696354877665317231170217376307883586537693584310336057965148237495523883514996001766648411289319920288972783429097622919536809364565604740029516117615108079692552920570190095248277669858192074067373273316746583795439290861558388628361257492077953551375987291272125026959598729367184024864951142706999775526684087844911549439967550136161635803317172101563566892246205845809429655525559065751287599085018067255803591264677519501326658894274762525643858888634915425678155800468741660790082810916357089971773966115749909652026060739754338093195468246271349768499550928293457599103237800104416738533148789594319682445823641333121636668987653771029099915089831502579592355231583903953130830089578844772698071703224238175869796594702921151589648744303660112657149277397124909871173553127178179707308988017052072913319544830953068023213274942644467152021188587360866566055449872370649464250123755369109015078062818685941925763969797293377626111693903478022433312419016233608535734630236625708596782169501057184017016926720691394434943125623510492425366244318497500523999060702467352004079531995197147451968348992698509621168691430645741085860459092077812168819714924745774285459717411713005949227389090904482653000994662841961721015484876665060577371837148426953009754007060238010556681998101050001167793963932512222624122384412442762774239146746082643597750557634811500606183649549637608880376815540760578338550979090741418228914206748493210570540753756655819016065598284503856505990169595726731524608963641500431340435049140864168680627359330164033110556803847077853876899239961637026578901366433133944305325601833940867436937523895099689423258807074749701160929954937323665347189430841061938599963982170467170491730900854995681571843319753820239635241095056255844087124295306167019966284637468352864158697095118207979177584691953428018094071296892079367019789353774291130657813763059814782050522969068876554930523371099406916563253612177746584853440000391809538425713231121913092003653547269110692417406776348260977438843537082802292900725497624170420897711501237568246711237941653011705211929395426273270389737145240989525549428686251322076249099432703228964614457190567209156704606383537483630006548160352589612718888366645987518973431594800417771556890732041390305206923690588972403975589846389777529596571990040462563976722001229680738991208147006293206285270370171873298801371737158753731868249898073972764833109892478185237699914672717746842602618493092104198906910137261258541165588703684412772993366863324684153404029698707584853362987658730231123963285400498729943724953867434537258102660450532915898841396327968848480615073342839865436944550967973192882205880490759014716547754470893859079264233988010016563693890416196881484088436810389568915484327182188116947080352800596707715145055653471786420678021906462944143756351002600663242805366758387321015224547279031212142939921207878206954141414980963045612433846959404431716784584678679267644677489756230207002349965709681575333325964905431454979118876176034314874476512754788366708019110578315335484333561793699130832014176215583650201286098210141486646832685252234808294447105947263175542741684291371951571293657131016317500842196951816876703598106707742114033504121319241637895588152215022299588765137910243940001813538383694998051631734652719611369798592637888041745440083613516900823275753890750964703619865775292662595302099787093184470447729763251950022930191621094723445946795879198309795718897177888596467506549941194890544919444312592075319390689259278108270958932263829098217564885014135719905341599137627924747612778265007569447905037976726252264872025901386705131080385203405969949964598044884071560188272855157436224174474734600588527263717040647084543138044045751529387184587397907624651499722832820197552099372407370758039122525710194693579338517463220667945754616398951058607280965042388753733984566921244993209300169252813391245645920818906269295033738379488678641621974113890029542459627831711462810746818256397023210390643853718026309420542262571373574250044540302428324341353357061547055883500783621044539358887306953830372324705030202586004251840268061489883112517916086664126437223562669291672537518516040524061480458538672645258827882601004340766118739796795832495372135607969752700773940122661210446388217373309553488858484616022130247615313783933537703927348815524108918060728936287910843221350026751174105398344002540852017236855758561661162206152226835236521208953901193250486734010214333751656008140266762980334827207106203095509256257022142865264543386916557089199988907548648936224863656520886825045150613692044863437266026004365547532972871418813696539381819461955849737682277312936972580349008900534414194559761815904006637096269149867931881961458027905754291782225151177889679312931910193022805254897587555302901080116619082548521189020547149432284924675414780783777791549855817778561776884603479650307687585141843060915358411140902647811499416689918571661337173016443413993473879232603882996572249614086300203926081532233630723194241095703666332728251460618458855920522903377661015496517042789768091479236987689681588675156086105195454734640650233649964725256327811859066252350271834969909693991380791130178481416307428027005496520537574492572667947704161377643325590856090706791615291225773208796295875103063710870455127890860525414859137396737569851133286712168807021761850230834316505585122541555256903015676132294634332005253113574920449783073451640886883212832376289738133161836788654979651450409747651306226063493472204066135350669031134689743384172966503370951879134670089113432621335560567906841127713914638207393828356953062953008563838190068447218341670362384171720445672039071002422788575321229425481590012113870939469921485884112378602530098169829845324851879477580631586700344383360498747485179538256935990283585493539508704175386658079955705227642076731097654035743019303515886329959890761442407141587111471998745016297168940628470919004124689629911211560272975665821079031351566235671730081943653222074961143165129255320862299899862508982834515099410547457417435916125963104764895704113808834186086278456136197307894595057377977373334766742874455495561371357829481031433599940688960675824133591799801142308902543779422409807800612563445710000591689523511528870296384297541448932680494382113858312931083512082960930351518036464341332195756171407503009425026207975250329199621570080384878500311227722669193786883200864440936441009133492055619116265051597839098802985730782944593337855326852064271433496483579753762562218447540130209634541067233045082552467062685292923749717528925032052961244310574026240837878443501527122640698675620984214953444385172200436611339335434759068123699299987409474044114082609917884138886629586799775967210678218031593159576277361734570226568311850878137948042680023842428117607558310356812612330701915695735908501837390149974792521135977489864951018764154553826737114342087119660533212678908009467402896693981464559685081065643090434450542474079760795571745646370766057743632115684444777086414579936277337376186008901419141103667539964128949434562730309985027228792483672344717286391841794428529652654774163365325150306806614259600123108442094943204072811810987462624603968616342883424218479577264063116582130895065008301661927583290590001997279428323448862657866636781521774336676842668181009841940381769591753044818347430345762093530025648744962910229258569138492499438429284546212203499723237047098461733644156136541002828882617602850792075028982797796818277233198757915136380029862902154896070452617636448525585605453080062772039009868593766344320941769371473461090253959847018875038720863616342265370230536998554708530763263551076322630644803933542530657167943775105356922086308479047881357989929866413131947347533261124100282434925418606298680052471628375456724362944324884870519670811981562815103915462766645754662369542033935116760147764264921119305975503263593490031249623586275998972769584065184829312796027318608976551678876833720848019944292145889464781376367588414491546919217840598387461909639377534984937285665407868780602411400098225600364102146654328270247317139798555041431127810982591148411125063435301323840249027485460859048432358527437765112706604110727251243489383532548110946806902249748231063729696343015234342180187554579153993192719386560029129725558474668399480371982873302420356724877353695896092599227153236521784606619757901780556458227073013707954823122744152476165386431099034391740633235236720276083856780331890188809503449523166485135464984488129583604507424997708004205451168784921203704981175891668326764062271890568534428863694146320141057563483768769378302141910568648321776541209416043955767829772685456572310783368326703793005315311924148166732175589229032011146682811947983883942986986969328940606757560722577678577381758294718890054367945430722585781892301830733780994365771141525619739993217971651631534843496191841533811525255527130594994391908865812103339378040133347654909461184801719353247025980515852662583506606120126266008341581092816178040860388530917809284087297742414658994330415977314463978799379257181942328432291612696855520470394086902553569800792030382486661495950130964902138707438596308377679861355692587561882213791026227341567994178578456697611290874907743654519835411543858206995927602924401089175112507208014229856796525638732269278389757428408621983722527023465370561854309874733055450070387673049362228093336653601675052515577460025287053519855172278819676731188708438489463707924532102852071825116471371544227731002913260135327319326087500306234143788653150815623512782436262516792997494294851306199606824298733272903689883173165924002667102471665959470997436912673438986782753342841737547925780395441097295708583221205400535525387541498047027677742985117131724977446053739675167560673260910456430956228762223343270446000483144816467471855401550082315713886178207567969127158235431078368438769059424591455586076091640319773018524878352185718101724212739139951907891201825909727504156933768905031319527054558545105587949936817661583637126494282088898884382405679957588909293361981252232304524463805788151135861256945488810660972266586836558652948549673014201949971437769623629398427647614023750611822379363423067050916772047776296830997525949194992224702676707042947075298838974550477578420105977469117548926257648626502786783334474246045291254478949689220176589850297365440749531251593213731212261255004357001241732231624252030777832871199861988034721531592914036602024105976161940739448837361081843485687416225398652228624231484822548042155325472100202862843777639040454771984863778813234887055156989708354164985254891419910205087749400547344629944145645345415961511178568863477701232144009188830155689429334877854413269068875861518258206208163616222877479458288469503481746085462295024685467547773127329671799388812526529922758398465760889344609205525620454876960306294759269078807539461865081200898019434314733612641662312150529319999090680832949363220089045847968909924570464880613262889254715874529361287865835051739653608707803385213140433144146133568320941024221305303165524096017120263565073054016546902896375334530909938690475706913419525361936877365790748821925023855432549761493423287846755608024507687148306138766983764786030332372207745860626519900191043649968739678677573072717176705175385246650747053830933839610916059038051126453167955946698953605773989883789217692372793192782823943643775721676232689635036405834889455140392614383636607488593542280909031860283840895090810923534553290630716692352575384338055496094885544277620957330587910164288850178227458030490806682088907802863451995510804393498594778052958341335658072077168172725286647811173345892495831653294073833959577447269982483525171463435916158532409046603159310558465501512543035025090093608847769163355141262381668502341080202202316097076435644234506394759857346616990197114453120007428990397157555268765982744177060501357584795801386735857249262830983206798901514285188441679279674528335630300284578742612881092115620394742276403011215989946398720542201924318031716710958360697342113296879901560488957188425125287527890012690516262549944802042793050714777007054291387054613701717512434282233056105686948442006901645035631216910775721173201805775623426575434343151885503887882090907275200685402993721483580454281455051301346507543155715832419807190610004005539182678757500952954724797365426409627119355062937743589658898627060860965293321584781923341767453451754977018600180220866441480004088034614156336857368001346725104513939380322097565004017188551357633685059582752575682163068307413164763948656852416041421309460170512832564017445769427749525305244389676197652154852970658420028775245248138054096497794830687429735565079424819338057156720782841689993587786120854390100201859897988703338272578177853426849143463949564092121031098822485039401713143255470687036767529861648824675139648176709797470859739772636427215640809958095432770370805527153878561709738850509118112803421352781025283862092204732322419788535840646950916111582680044102974821458126361665236113328459375763946378065479145915639713385859654648567410676299397973534039683652870670483573512193321584142535029213961304902160121147845296696479572310518541324479955188653808494362207940132991881575819501474433263099963561206369466719200341841977604395136134059495742668155023377561288508444319389881667088980191576783481079134133011300838692114175750982538048439164625058209366911607704660775764669270474005407226137931754094858110045014526834134337076246714492599583506076524520637130633635414322134363656392675631651388746060520205419172253056262574343096834956225254059718778097069646770400945629856426178836006960492725646721519062764741329889937993929482774515310270987081566116983366302275868351095793748315337231217893611280644619225450889666504197694527218524357420488258040866892794653071781162509636180219479021581115614530516231644892193329212661578644248818250987699902078185407302858004056970166314356598395681242906622677507502295392237608997682614811067967380742323586915447052070129185141216952636122934726482240480266418266529597071535664479923300631600479651958238721869904495189688444443959235511404258387136997525961675026061955995229026256426900497790872181319767045867763415687318607296689505072608085313036839265191942621090460612504046717412773709958272818233383217337631001573659785347704016219151117128276806174769935183953710390942776631642431218045295180956431188022901300857434772246705012377350911535017225591729731612418470416233397522562104168624826784165175589388061073260739378610950901534395450862500273684941065516454874855723584814854527293820319592226887151203917317658348573194727250348883379554975225467028681447336742475336233036863046708120859056840893681184924734398582239150997219739105333197860269047597690032407897500611251203371064117318950551142618027163064978251984390660445939630855803162302842621655530108036477322697700269522302615364528963234139135486793579653264128797740993653592524291509976006990866589866695053077131505850379116305260639641615105081173345875697677266722795226200769051546850305514299095132954174059467520470835749572268869673386186821226849744470692871460105287493511059272759069969979621579596698559893042056173947888312552715103180877362650648101741334053919114876773883997644773116409462366719850877339351168852539864113026471962183260399378226935079736187908356112854748027929711744696268571789251088557819836121958288872694272409986166676432354016541724337303042193761659524901693940411370149025320024950488151228352143791216898012218375995754903741838426671608943617090744242646980758536934768466380077308521252623338838220987973060623796608684940170967422498190224340616408155849035431788425180209469197847156700557112504765283915768533200992342329281630848848326242049528274720799219905144189184849654954691577509824731253774075310133589263423344245982229772905611353490366914904156562702965692887987525094635906791036545215808192010449472914809446059461932854863135349689773777862244252530956850496887134139375694479681615421070579164175447585770911223690614381198897077104747330719034992178748212803166438937400167029370851917114220438369902249940994137178795312386985362998974890180911989444894847014815886994353256589036171750901216905891309271905607436611199003949881713825986148923501590106818436416168054160636640971891572206477668559039397837185344989683921830909991808845673620840067804055223691791911000557958136640863985412866758134264609276803215449355715683402258792432961924939929801594844957258724286597127062082566657951239671591286130604837307252910132495760065248840638351719925178318202143598546133137424999623729377298511551006263226702739051966254016718213737140059792808375991107425761455873921541288345548927095075838714619981123564617662151641661508097835136293973271624480572129469201318601120892415355688930697923724012211972626276842189088580886373178747508228033963645857952651482232702410626768880798761855943787281085712012063512888213683906085114927055992306502221643865183091647090214008866861432473938839772336729295686871103974800541792086594597254068641328762195221335169589048516446838730893111183937017343639461094529506538950401366358394679645412160264782026603911899881424435214433564844601093825569632773573167408392763402954284790235891778523923881289101455891161817391124246939344481289301089083419456204059945001956047678324167344922254532323855988931411062956479357406742236746686393224819816561322843079039369946682970058668753724108910360929410967412720587074016845934345288342412042874079078700623890652355826817315106183224957184525288704225736091721000216039079596838275117597744074730289479128487736283311492380900371521476413018028272857901140435091815499866731129286431342998307668408841822053124901059377022019591215450581845739160550323849208890237848109727126375457489282522067854866901089658554160696283745019732875722228694443537499876334458794270420968834460811832464172701570343590416520911572681311038614397337387635432070962834321789613957648413355011716173582441306188352217975243435393033029608557518034996860982160231563500998465051474030721742612453061005031914297515889198921275941759546017411694395480536794423804447621537747416561022271019347776193559622838720147325548057222321877799845750245838800742133381585824610198914837293673115639588957268287223972279103682901577216627960785971721721158211406469487665329128397071376868955724494968695497121601598004033634375955559597705358630418306627757027795145799139277557846638773669147122878373231942266078129561320495206116087570346130553868220629215115276058081187297275600174318912917206126068130523464724865269013673865765090225203000479685455679337275264905144101417837856127243669493453330991521400485219432639331420935051152149029576738598391422454783487098688952582922382347096565001262405278578988367157216442003118800444669820205472808884917899815375032908259046074013601370412350989951262211874446440832989022577812631657995500603356719139918593853713087635646904146253610790852462227875345067363557493816135454252652879176378463015717729002489826408271418983116378041490212041199835474045062939316158833703283794072539365239006379008044405481594381007599826544610768106205764943746739888899084237812357832228217780138431850757102091664393644837090699678062243947095359083909440951200674488850392597434139445926379563045525335854690683277508943390993452633573556684727050513705900891855424099644935131922775834470242255204542137571005377003699637710870674858112335717922715781320364874509216103851029537886765642055819849246958845558659401772059356160077797844013460926719665256538383425368991866344211577729648446804827155703811364615352037295442764665624163822721297417446390169547908935350468914819991111881783874036212193963676819571783100062138109973140243632661093909087453604357289775617818503951578307490019186396364417525194673318040090311978761738753318292730166026989690067379628432694631476620336365223849757428338929763406189677422648471603621100852490788089171120520495765583655723930817612096450906365375666736565486728733742278044343681269104594209799414971083946418731829871324163461549703357199983581469095000698223355954271734256458903456914752275821606057215777119271260715037843436502406106267004392642335800511405060825507579244302845486972112730672049291773110475769256725442799088073270736153120485368444233732753160396784455501603156719319302444516278702172322419343201666203975236593203848148449591179740142929674619897615892814382578926220389918255261151385244051837750260518776876039221671600195604320778474299684813159801835566420813538780430796658847834102519064713733178884582329008088226627694189729693067785779945930439412876067462274059603904734135190715803156386261863792353167699157605455826238091786992240294100277451784876457086608710503369794481172499896401837632691904214435171167753774682749611248312216537008391985144611212432761231617327102516198001854886768884732936762788283328948859160520671378667840111968066219568343634899986205554130442947065315080769159261438231586677204116652357756325372664613857220808680190600593838123215389865962806185973062699227823998562303621589130781601673437812049624978470667636956416008006769829390354358213602683412691150098330040265856105533921309118977781750999797126389749016564141482817665955472145984499537232913780724398645044256530668539650138050807852508351490491712428732993781153050606696042839803484342837977682880557926012034324450835444995258972276857235410189689119195341130393027556216875231372690540115994438313630900596485337417454407736738444877665832962365267738994357819406607213889975244510053163341753789433974082683133402827943282123902899868378954138879871172457715481776167026227826082429882600483800666128771168231933892597443977414525559414990873502397434907720457829653202532186468067724190327131030528378746978616151061060510166047165266191217680096568194790574820667869154899977928555963514909117741918759964914160997442338924527699921436608610611142194550481306367529303200382877698419962011574951080679708437972274170340928591373036752045351082782148277099769278368004686581106733983003117162882314573775183919699386325089817602972540056157584084632303928408742579558709671766947833949625336046918575010514692243794052324160710908479762886247952334630481699317166968273053574578174807235884822392186756823760965018511133384602606051359609198907626291833115498847452752275614940829135761616670207158325105423493589868840284370798871344490733969123067057834324245535734011223089719654299486079409426357761174926222052990477752984330339666275819628786693088078440452444995160370533351549509435744777991687207907685574601282665011040724218163404407624279788404596839659792517457440752083862661771796670152387371696456376638575460867431940925108725018207480862067479766504411554238948312004506208972337843005700371702834174499238726394144974103052367565405592956436765979253771257059763252772721291672547008232723709695392293742392796488671866450068027011162711629264751082719927273135579342257504491985216044730896375347526889387973922868242571678275189040834702533073021453377086208825784666993914725936477906711025039284114501820582797949239650242706021010086296384812594695251114229418750063471296635354323226831082412620250724370870962710580466516915742726519614571992288845214957165825330677173375617201151643424303865953361899446700713205649867752719371962111598282685755808515271749214807707417896590442841211099661512288694107402900651353868836544024757257466286641698406683672529385105242240915250598507724818044081656129527553812763342379715815111805640642422861377926813340995220328730995181001540839511132234828250167517005790627899067517292743524569107763615586494879499872843427418137970947253652005505024090985870270792429353450937414415629173886920707332999725507861605063056000053909469031325904866336270072566529924733623047450250520876301979871975013007465486718940188031349986205053159209042732813743266805214827578770816017394785819691865121933648155762904576460054151882764588878402620044564864522509855860301399743017618914967690807566955784869629069955363084997656881889788155103793274402227249413371650551605349448223896249741384428425974411453431641817505413366908100222908761337796854855036506892546517346504010870360360305978087930285308555933296931043482466706784290938126375554047218444508127410921473527008812274814436096745553659880456108985792501083439268905141923207445213325481724927814948162673061249079072927511954673933773885974750389568099806957163842133749921450706824266935097279256645306193855611473220281928404758357486629248572715213545178421266994181270393125756475281875194233341215627841567526075675811877122930130888621128523381933656695600165943871952480585997596776975070264316189298095777964938290095285248654187955434482860490723676728326041115531423068982118291734092777032780959911571039499030703790572103182856995509703107633189977946428700410903359029944263072529184026359419726243223219565405045407899755289644538749628009583810203062373399995917755217346139397512106207043553112085462368056568311849070949781937329571159785287668390720198430895223751817185457952276784151201281297153052413175066136837547522498181954591513648513559232596392617443038701273226182514561944713949968841947585394901585405056327710323597423128802595067917199397444718924302654387808670843485265460589323511044601267985726268613525547880228137422510045110235964125727216708896665305021061942355490845475795953380413187151192339409069411877694207114459319482616042198495261438017472970236461137662667043912839126699590421389527422650689529342584157049001810991567458500685767170242957691492240318627622853533311909959134489407497826885985434576818502904122631556014356183168473794638874220951658263550831163355754089024835982160756077344100157470391421339863522828360681310693780206600974634617062005828570633702927387719251499299192006812619996649276304041769099172760437997678663564352511329829051144115846106249987604173212726450687511798989736733551650648212058347738981258302075585405368313321854463562582023361687066052255266777525455301723935891325336854299272686656833480708753414076889601006610251286960329049027501679160878394871555783571721288938339267442891852121673068864610912366144230660930339355432353917608569658512012021133048868863849196798761370481786140220830515551141934630186128462355862676697372397676955535234076743341208212561468140612294095404409282029757440897191137878433065012323974031693022266858682600920860194345280166063448516001155303562209415771674894996557757209069190847316246517038872633583477968090449565856342005570623536786666197811459881958295591913988535194427074916741589392785615963706372425933526137003650281198425648077977591330795106814752054902191628108284766963022124401109553906672190038667295522768818056319230485922415043140978707938800939873950560845979925930551008549522940227346194420859925955384691314425080847570044079893468823532411929021967326623175325645209849880634657623121766494904546009992433127859798594095864248770503404795946137673324739040790425354539133422407254535661530057512889192286783332478267216736811437822976051157342637193912311222572500477417170785598799384982801893829628234392270821656566037079708676997987783847179320812393866686454142592288140689827850583036004613718837149236501117814344752220411877079852151855075608341709436179178082279870018472209116745720735185089040024032753045453909551083123175770093074482640654014718428508912914656571071765770473640620736571568367230268989037164762361640383287357231085005662304022734691325281443238426637468497048582213508934388371072178992502264736797887716929722819379901687813893669351766050727031059392226421852074972701713192168937023615980110108140226623844071259950407457558426438660918793948785781594271963350972981684375938973107511774742785997733977822024043255220297938763186641045718853180716020584516842886963908951923837139462919144199249304642701385090139150935967629276750294969022267471549502446965953148800642216043493642549546727112655773335131447849840982088055788764433330063866227123041876188659979941800499190828716884458782361996706138287232679848761170082399392499775750447003730885294359510868344869848061224253833645800158978845629016910319317310770407021214966883258950039422010991723128582142900267933281138698299712798665205028683309268661241393094584515776789674223618658466648417144269882688905763752465285541276354241289862205750535285237323088481888685251547360862194921028748972186295578953441409909263330439045998904847170567943611220558631955772390190826285871337332495627748039715707736439491394885608421508611965613997520759226857189745830878911960043838611114220902918316947276123532667497246811164959203633557138505053802271622363528340449882100703449534597187562455499407884226887802854792535237651002595402074672030655692482177550497880563809465664328213822737010968592389876074677848952308426821729003953177310334332092736293422250008538580703703016412636514226903197944815860795722883829494394399079843425545188863446238892854175848118079991687835166888006263616134118797451791909661325839570769333025449561302983883431506989371665268464965808683479418456159624678723555526236162655614931028605316555692566587721029934123300068467406042025230938942712826639476930059363849707035023140713206785854560582322079083073720645786828544970725867716729256719426123654650969353273626879683991597977853745235950646520779148854769205821596383528703699270332636434396886407151437016642466280392449057388712183118052104256299363961217554531119036520988191143272875658662665572869970372040437877305413921947384291133636593045639958700115625055027907912401044892287095452298925748364168106016745808582313374471083345863219937904784851235389131517559494672517835188847494938451800236059558957713643267432190483451391379879192856879328476408365069212693575249865741687079382347230999090030618052541138473912856641075216868309171560292919783259201950071541048168536048537392826086415649146143310907878847488297523466637577545207149577701366895193015693152657828882265537245447539015096414585382085372390102667892143129617528653417085359086473991962274561906746114617321863984694898427893436623937060951632956065336929082664754778538411572250609017054623758443772778416109603542344234207003506094480497430303754312907281657867980836110904906516886362169830734596315097454644970985635948100380501800209161914260424181219766469104288820484748567641491626016764836047082520100481340038608775536889265451305601964069048270756748055796346145252515335679327586469635749544956764260258953071822586274637526873068367821575272271901242243671636019274742164307224538287001715050806698708899836984924288792462156258852822738840318915328142322051036654543143175024668554748403418702505081715680216595311399708436685510296623722113595041660165823706313730864304101782147900402893193445432450160309981458963577741819889270833939949849744534504852055706157817191936126015605946136649088333887330429294931427888503160616291111048324941848564221466082825353480130861417823556867960175732875335720589039670948142255983869259506413552331354318826844915112746471443523088289901039370454259683591832600691609519786814400320560150780249364436049679022692172497527774171995525890490016007607995817336418042844109369886876415875288927330588612664590585498811444965511560924735281352668560882055245540654485843071231364706348254937902656873644929326644105703716929944930126336781462932780716523520090615754399250580215315165646304512289388004757904553208117630344780778457561790436653452076333506450014077252062932522758873514678380314790130051782474964299012259280346281551406276268378190030342319556314194357701816327127628783217403794984852270151946401995050695513584539900489044457834907923384993574771102154750248113005184317130638844709887518340650832890789917556191639220032981357228055525607624264151456346999460354286524979581649782758599809740540955480277257648153507921236907356826910353868745573034746872368652579695500126624302896125443589079479748032609137112113092516516277438327095934438588423783706551959270911227333083026895001626839587800726499456542868715033217596530985969293520744479406276995174011092825741223711174157333396477006598755142691564911438837009884248623349931283145714133443545207164683261168662578092277994275849395206682604559192950740923463603717292620200488769901406154586026466203578257604772641405557809129232886306069811701596507140995896908357154248334182380937461084341716131199467902961927165618756919808204661906257474326827349435794367804148120640639848517119261613341463949254329250266769636582532396398195257681798218715055135172538335022929575339125674043835039169026608204834645094386421769987133517003057573601543431014839398673259775318143949772932757247896615391975769921837302474851137721018404544975562188409201394276656418294488259544602346075491698757038109313188224586756252909795428359035967618782590337524949106572001502834836027670730295634644844711061146416521070541117819825645280043342033728979695948163377843209413195039708417846955516369790790028176814030446253200653903940561502952446160728530060801058873974745964021608245458986471819234432726272248086865370319187049123691146994381427125868467752711034063464543012297216217157469393101226088841330807161581760272850110631702075863846789949279063577120418763238678082906550601194088194808175235180992394803308966455669636886113430066880171156875744480693544011800450184351521919833253310922237691834131949146451087639586801908191546516862576773720790017465663579026255387855300639755528402401151975288440144530976146607980720100329623453576892936153227921764213095480268199302381450841498798006303297487974310766305946683557330776628280933331234404268618241012000575733259434240820213946328331019828857221015049993354940877776948229223038902412413874876910615908815452158970476219554237554838502965439767282317202225008451700521825774315430895248062894756356945685345486199650887480034085460686320925573806557955371724578894771863368596506796004560839766700870868632778129123073807135740189375551230815934401237707107505834581997847583876949922979062060181450865426701037496909185404363354434520845205146312099504331141879574725258027931357569073511236158455775156036877834164381621402522541729126073867127396046054269404072538444644539852034514993102162265161385971928851974947726114839783483772155412311765300536130319757127999149981199075691495432464543308365167098274202160498497604681026740026003251314085615129770564105640774175687610844998257592100843419428476340691636291835296568037562787283419418558020388471795203626456436604553105571676368674084830816720796294977623531687859505760404139991891400947348148699032422030569772094659214362706836142795343933044458132776589396692881519694011072373497024218613022567467897006063270552625204845578675726024894586684701227549539656541123017208237025238557106572603747892605140841836986245468275228659061999899646010723098356982386129057475098359220644774513382210277780520037974551652333251662142126035693462449873154402327669030724824178780780294460288704569313171522745610787435340947363903096705293693537434015406057937364959620979419115978954011489324946871104025209672966347077223426798451871947102829238962638333118744192925319670205216229063373527906783806435935626306090671933814533183420021177204677848730374401471312225446056942834748277605791989163603178355786496534907645567501276948650472246484970239785082295153609375541695048226829023960414765196853570684773783248546441094074341943468462626977855905782182468737231151913965483001457067529495883914100495803950136706941606606822900064134373798903123143696683768778293637840916201298175706576634051952161584833130483934833035230761585961051397270428523269189392165632605944088408015405044512436280995793452592166532898276473559530338865615811406945451514185870814536490151561719067032221822769605169964418291961215696072625175353986935160772727481267711685480315443061940067512668947202443756161563659827336264384426675362241395103326133549636052142806088266175264039782847057705731709423016114991893535797264009068612867026209029364732988308314283875335371218731613673300857869061253273521804303215163201946462549120151637878000665833586883784308041676464198518874753878506270292292964892428600128688893533698826086282121840425027819587739406645565865176425479682783392660043898000129451421497471089458365472081928531675634828646884047139815589109320650401989608966728518798719668363313171244428320746621679126612349293131499359764391726887694836151796775891044233538943777876615989731885573427050261245351290959498603150497126089801582514014647743278153330848557030060248013383151075166523310998696032203398480366853660231294311408735379440828560613813374803906685540535383874444006402131299723055374830040945441655483245008997861891620590841128573708333303700205980476115729010575826470256098083861518405663238033488746452727443438495296384402577077733245548569207735332876637760347066468388955170561412590448624163062600647306960654317024619971376834966261353942496579657735833468751661821953394761733925081130649164397012385220110012155530482347773281437832229369606825083461656008514137469293930716994229297268331510123329988336215154033369229430565523195587119202928561970415647067917529315449503490444905133709263494999106620587751494277781713339475162411038767762652186632280032402747069438878786469610248058911286952201287937957304520040692273581591818854941349205346839300878506605055644131670596536759354392944581943593045971063426052058070240189863162934247473470659449148831604470484076355561424564182847341319614060799365404320808663215621715577589863489654635178167964078511920494261465274972021553335725683065233073450793621465665470598248075987574277563579759375125271035105077948733448384780891460514570666663126145426607539054147268009616950988819217328290359590875633914607385715935067417275792359643284430987016402957921163031697448957971614500033306917314257936451557425137308466171765130328167283813082025351202679573414204904749385124540322199286102120011945703479223113214034206025059527951076716304862790392160468198470194268557464647012126813974761644564885388717118130178118517412260547102037005936662740475881879447953406268995223584787664470585239799932396766182463230724216502958408274371457908134571435213852824877179565140759343427512630589020358239288982146011643681890783933783867244027747718233045085871550942845117294119566504521095310077149450534896868088129396109835036762576598537990563361671080004311720796148721195357716101902822507829603580186438780371813628960403070932628032879710924401683499338106983817254133058371432079348947998361635629767371993917619518046571868378155482883276553728157106367953190211967482405514856095986960765098256707566251145486035456538489814432378687314022805986622061550900245652443754810235364791177520531486585180744304920818033714789524363979733913761134106120269413290804059425385609198544045541525734354771403078805425010204768838442514196964618197583565319550339027844174093462941023525894558534472167497828566407836675104141962096529434031564705486284562137773263648813748708596520329495932519335750956534890781866167162184135505111137820578883216649461682614178497661941880141697576983339157408909540455482079375269837685463531639265692321293090046431882608296658097699790457441446201376585437433873118029723572201989855997555224158607273967600469408074869392780124181960895794624929446798158456296826038122374870367250230585949807940448496962313274264715270243508715927191276557727111625680822676464970900736510882226478397735832312968647026060694665239322683278296168268012963900458038426448725168960901276317847324006831417164643455346552650867563696651145196265299716254905492217462304619116797298616676034194301034895565138827212331947980332475750560950262871004626246975349614449680939143624820490981333937218452243059002509580187279921039269123065768360469310203101741503474074646699090984568294811070480716775976279030478111832970776038161999432286658293591520589655390892342087375416138776145682300690144506060550481720652533310627034750157073760606379476171781280199019356203491889738342212088098644992330595353059917325871246702074906331816910154263025992500972860336243112252388149705025744532910073369803641326594040065621821828563342105571898658130172423293039783916863604981982851788571527812633003253729642437011839129703615829990364245042851486634105333259900281276908210158952329991471540179374425583338344737510057467814418713567861153385938600947912953655664075087319729121447486781080538549459227102868721108154421698702955446784836866349271356187531204514577592887423337292454679272787203299927826764275419428576798679285773207142365797440269596469657996532409392138913731526375358591340940900594641919884527160062428020704412841854478839515218821425715699747655042046258627571774931121836031589136039342702518959712719830786152033077339683988548216004901671813159357064912044375564532743653719931316503050457373874115399545900786346107049466336489225691513555380932832287995810874831819178257510578945239975012046527924284750379807300935894978274924142793784235654384945247479912781503321759993720886985386137487022362906768295862778326878366446993551358434255261803621711258806971004179136145876413229889364776349005703586080436173372344148383274228454141919989665033780848183435958915247112167321351924651919486024909488323633156200329249573904586586284947750184306905944330018967210441283870700777885781563850212509117218433472424666241052620994101993727353311927231695460206772742201234641908998638575867969910934902788553437450442187319029974010103171978392621237154603998859549355878435974445735998972104485138945514948924858728535571941889248390252402748372355094486535227609904353509424018833392769356920291841518807617509710360767338540500178879183140833544988696813059880453077916151073005990549443360953405712854171884341123902478254942506652224463200053456363923586585418174543752566274425730981682119710530210942926534647109928731089322294416007131024819177348649514858415068150193157417827553317696837601043226968098812826828030523554299015768292306225847325427924154771108405496506246219218893984453547289532175465195558773533453236110761886048747697216702053970484898938607047921815261103728405871016663628803796124574355499883214089933806029570160336761211717445772328882687431110799064924256328488259259131868297280304833019653140650827209271626045652916586499137635292024605974160553860304585265774233210001663350629741760221547519380464480033294562459901521198152555644583775773112755312512318391561380202712740652459276367388944244233062528259553678858402323332290545428595778485775213698910235768467599258645401072140341964364168064998966924703600233642848979084118782009123365980886736505914756245546919820930977763069152936409981632163384732859147303720602710519811057269860974950196128536107454597190857238565987287825609765965690454556437513203965708407506708849267996806055859431647600037069430823977463120677650857184860938959466230809811403647934792145236197187900921978300812241469144057770419632476245474765018180347254449057641322211919779836278139782583540459198684280144030854503181727093658444642183613386993000936972334292982604255364981964054112783930964776685997225924151832482461292657231561312998502152944523538931742071295049501730074042565414375048412237629498199398787843717562198678146202674061123273773360794714661314281444984159230533444796325493581086326232357534683326347131905854257312903576795788438872927767214371042116734175081498570104054193189801553223970576706548351937501257679579849679106564902586351015633533528768833746404708490587618798687621850658483794496693533158907066315792671602086718794658951414059988822007507166101912410769241049501688417275894363306116777232183798523350681988457566388986005450444326548631346131732182369094850117158664441251416885168341129791763679365970775646876699101712066388037898538480664013683001592217770831231104555662974958945899138851277825762644310260047564821267719963987148669513011938320252091677777451434705138949193092463780793934914201583670556473047907886694501400786758109720362423507246461385086452528926257465165630456371823713079717484545871553740447729350739854100355906539038921908470345637256814949770443607079566808965233047682479708150075011056329291141067853489156912266700782108789392267178101714083017685009230340696317322255765296119650513851606635009012917240402267743926932760174387246969797799132820828036356550945041621242241523361380724598042365533303388718051645740103592577260327138368005832951835055150429214951050657400287471811598764769116461090600453294520048849831910820342106596568786597362900632814272388850638585802017041360788918886148861235033965430130722669041343341329048652581139441786468592362918685293478955807360926902248737602508859308501924249262863824449844881332004085714013430138325027661594619559859908571470283256723017706395011859357750556057322777692375281313206112159424384493635770653368366426106007480745224082715159557678086678503494132464714437946472662637395888518269532932601336842717903999354934646140326720329678099015998512248481016222808759609819839096295844174968810513091570237858780881537946350507657716312376936385760071900227626842444187875122809431361854252197573678981369791569977287364821443203105097445258509332230352973124429836595646098950486348089692873530120490994987287235774734428258356958405000864246041711059557695925182878131523424703164414251476149430845191315864167494132752771630094601967486985763849652627270800669792306587650070626357071034284404436642758316910164056706967215821954132352200345100008287934535399301934521329239367652818796861040728872732557295648645751124133628754386455512595593409688940500650662059095524358994635123518033072553331730000093033141576004791747589678776564138601259732257801637606538525302175414949169307419553674679234903111622732936910080766409113469567260677455866803579310108674479990757932402561451447386757646892886150568329400060478631869502588198265195551970973993707409616500054532244268658966564525971433426917102798331266614098611622966802605882793777110320177855479439580181803950421711741590673697784173226710215459130614895896019589738455149621647425593651470245260224881805911898001381280080103077829620098774268913482330322593985660224067544388604841730452329959222417242595597865673650962165530594305350394834183838950323145057370349287128075800763349067155665298977854623665567460860127965420463936644631209578217931481556138002536246123220944202289926905932179120813759842175115412120474194173282301473147367236831949419549897320506139997535896080395561072346620051983063997807251741887999438686276832433563066986866077727750659043501981491385800308130079698679537618064802747280182950921430771443716324367200648691299955463375782723887712180696452661301565015611569240030605888118438266851761795753263578577121826144564105990907268248925487430270721429059160806760525804092527809406200028645617825701717358486812693922180121844120951839575449990276580200064950824005935073816833707847129820204988274387408583161466280556584301618634580822457323621423622827077171064602994744607923871808083498868288379746765771868997371345932878544082221747552535301944782050691309531650195422751133877583857831822055210456098053443437992521652801796848136211010719020043533643521171233958687654280938480640098326262759920533232894959239322002442785488734746019096693710969577514232726291710507558472249708819261282220934852076059749118477748608519104182480728404075367902315733643072250825896073560015995382819043609062958409788099302609815850204740091420532039249571744055656357333384861260326132440249515588483467045126502020596455852431671712151497544999468134596687442900552031153046536511122413063895819884844489288756485379540195345737935317931231156270274105525389530600439761512006444850908988490889261876880642885639712712726895390891047543817625254741232393744163557878005278750224161466624052323790088846850546443338560456175762313445031183121611502917813503168851803351136609963693969793237961253318189515245890451752260671194163611193800885949740126747876409246613556639356327694922662844264099463416117757217011386879019156185481115622189725943612446519946987288647346923411059840224804265568888826707018189882931490738081625671382439166168144222116798571988820692713148990945497468959022226068016922179750557525452395170948725583231213784059293219753387135441272823175868032985360705044641541833743317570575520961534562267335535488031724350764779486081866377299444427495110834691820158274842111451499946171991691342624395424059404718316840645981678471085477659345203902831542679244815456329258697236979641489348291044380817726194779817083742144907930534869728078575844252651051568987398413442080652662194588585714599721542246362208803702570762447409044433093000438127431923866023445251556022262707721648658073494008655646829012685223972943116025700150052505428550929198522824381705588100403796466781332619639196967510459579091073665818094266235259135310339081529642153388730414099814740586184433744477736055082348485485252128283060943312511538316571710957359484959257891473225492966316129227498817593411803385756193551691259253421782906687585162681453618798891581395576668066686543648709727172288838440910827761989851191949605233524832043592520854313107112006525847504394046424195241934337688628040537036010149272350803078931010158988021074843123193791687253661656938793989499288797445272774416521915224321498073080917557196267188363854719902086408997140080748577364101750630393004248104624773459506709812005657382677371874783189341872931599921754002084430185528297145149452679589767575817834135434654708171679748727676222021817967075272751040850424141647907737411741287158830560845480246012886855598361601584053901201930962719400605536253226529736925444099974670546325616649033740579938637662545960635167172148570395301106563457121011181309122332572003310406805926663084176992159977456087186578940661245147102492071473271239614680473196078456596303330804595709947410933609943737615568894068610444405983820272212983492129974097809841080169363808646457071551605255828025489513297288629864199266233756161256494465199296701567602040267042914412463356199377004378689349361850413517936339640625431916058326405155744167829214497736323898511669182638210458715868494264061130193557996094979204054702428006156644695743133639181479197607820746956101806779064736251199235802258297292570747415431392237311326187658350666836554806403255652887053231762311367614553526838646388613158011228846855079103201542377954993324967508930885248702446098169916756020246975439510980328201501712159208249791832423043627303092280456858371217445957544490113929373945487474968829792780360450506875950751162941138286699601198948205567960373249460715837016898166542529044642980631956623822869537971375284423949491141790819891704475767481651406866605097864954189339367555207461767128333926704775307383879504891404416626469270418901619852168760685316822833683221191504454997998617814041642965777809984986069312168139914658692599155416662211330990651839161158479083466151221937569837862869091901708203473330012164330012371309405140672660526850063915275079972425951658117115050937476231475136941071864524346784576492439181749336659145792786876582941073875390649942801757231423604144815746073883819332922563812342122521206724852099912698120618807819455992712699126559345525856944565602624306524809943855339675759289229563213967023308663744413264890922645685182959908505498817873141341486289601630140844542668130971184068650555293379099586301469172738314394951550343857088011631296260447898420893848632477099835484135686080069802442685109196530019563979390944817811695807355729248001399433432679675265913448363537735323411178493430175324792148660620038328863160558717206551872525131876994136407676187522835198737893169087231887644786411139750303388318891627821252114469143122643328498775617908419104519350008331577659243333308001269736002802115204412121909978965872836243952533995223364173290409307794959985662636924290728678708497265948960389491729017499516292245863442389284139715064521654962330669736743664077443939249256603068148915758274188227223984470893003685552247299409924071653983274572411214153856664950819207134176581744971277463799426845286970389387808851464327637703110767740274952342764535141607544304590762572212508256651958587256104614276688756808719393902846747193628360094240086486315158975900184897648626266414736905920562714126858670961711132790019800729529917152307383013690902640865716351843074125762520555049885082696761201431346663368199799923114973264714958215076703915716924267242500653611587158849077513218769332460707063191752136477447971048350109652782574366683217037493623336903485685837605242720444475362602408581401113144862848974337270425377243833793580016640181596891085902318656101938334683057238961420429812814032722895342697976714552114677908780944031649290426989539391024398614802120041126013875336043018468031199460238664126950792553868247105558119915812372633153883401776645030285009724113627158070089066377943412176519244945519001414318904988545561197480670241617082858098089854823569377700365298833758599536570837709462418052134580859250883570885843012427691040971335967111790438316492924488457945638917599220989377423288826092697941979189938714242560338894892442374055523257222390489616482694405592687271540430814822634075115361319245862074717104543245325171577050857951979108747336526432723419433607298994306991476437572654863139064792454714214445283889474698913807501555651965425485878338850563353426120283965803064346270192078090077605719168839319891708589675303799451956306244099604604772962906643759006811910930023795779565405005915943608972761332661824079554633527477058653353792775020422867663780780394609720725963557559850222241225587121693696493861753385491651805031940534779145907657541999284996508197320404528795687437973036403228060763382411553503690981561051215292694144065028961106486467407816713737762117067702003357427958593407512811060655929957374827690456370300067391941937013612455070539537774402704953921950030994990743679991139717454059129362701808189349749427154781839275807839957128458030147920034475776612311471900660808701702182978165699850810823614575830516592664890710475435197639727046975665503270021419237302568489314004422408357393663801767686670317154301512780128599232081763594923810140415083451603686023637503892130828723414254200808925090584071009079560671828263456596164230263028042356013031025752854424881578169506707470574461169336448589009633810327377109067345011379480090216357135856029994600580556045622882051944508006762309160305410310244325194183408984557158904019253217429747117529314263911289234460242291680731462229750126534509385407637666691683089822303337578774862655452063707762138815699915136388107853300456541567319711616652830243162774954265126356579157190328429788389414341038051599988404980371125192467955071441033736317038763231015073277963392864579409733465718075642600353145467862257740040918445705668992540949441159828309837865466753152058843539143669319459108444058918518968448622306825359402980071029536295802787222047743136798120758681544579926769204626452077053497785655790023472852450600407986982199706073357683881815816590394251553941004081063169725835965159018400080382079540051700208928295766184234822835446481314108081818173612767270284457795352207599816453306414764444836349739081084582756720567409814111008029498317947987823489561954477652948071249683464976379204800317864639438228232129088210760963045781444598881791440953008950672741292365898249449959584738215841759154704818618840675319956737247397654149002018745214798381762418117794211089979305936101067302353542135390876172076975630343017747526216301758516799593806165309843510231264903391075850826369824307626370866724161613603871836476043227842733911900674502858870357606360964641674081935456952647205404422142302791594061275830577283808770540038453999384582839806307564731713280543820379142207031152856411053397300083310955113174916822860569607625734139682632237633201089900909451781014794882719082733355050658496953020350633241059089337779565479329259757672874842922989410195583280209999493516035210489835641279736278051478887792517361164840660855493587098873987968042997974171267682734368297384735315157077777603641068599234622000242937779210299059992976655708064221691624407666232165898879839525509511837010817932025280088633211227564330152437772843000260481946032072982518040019530457214949598915851269343191775128910261826267602282069616914984920918420799819825452239197805467161433475481229525056896522466331824829832026390772419608292726554806822305290970693062107911676639036511376823402884064517122443723798796440577910855233415147844645948528793165890385252053395791336291416929529149597310155654748338052729817041469383924880657006151240227776806508861931255594343063790921455647960389508437612276350640367726434381343061407666017987800292008915563510125517390248165869642660946274610557311556453381911736990830851330001961927107109643227210305597672443598905570443642739726340091680873466229239907847758793414147793785187010681057564079047245287486021363978552655650443733055509923919993691903338721574425317469071711682268086238042663086561243636504943333066807691284626752053116622899403049323365928953674756434722952319238530107979163798659601779231010562961570798711167970685198085598892919906512459130735403145602149961221840487230019425498454042040490638369013256423307483058977280897175591222770911689052101838324100690507999600710077101516033062876875134026119374297044601386306625298817544981806278640623515150694847409492331520815906987294355411792146935640168044865231213453940861514007458882994637919989572014634766792855931920156801895540146679395911443399838224173938551163428768540313626853263831519544255644501598340019704562547543465756424716277439051240022770782344206835230385612143270392353707748910168091711305318984041508580510328837384712855874067118211950596920299252783593235874167642074593308169156374389621540112078993593852302133294995232198680123376773880634075422293419226149570251557646218681140473893581445043879288372331856860415524487755456900864953062077175729050441850705503893995067910206878798821198908027875474336942002305411542882280186153339490292530667630326657378724764096324941234790237016037361815927474772315490665778048550068068224135787521509736696142707564720177413642501460768937115233471450305909524689715244830711741534153141158548053595733112041752894682566650323300109144831968453403314493002409605386958323357461979427901747942890593833968901221848634265378264883840181192729304228246307803860272638578137076914222327840279345911587804388377673364853416484609809788916232130619992192427815312362969750909635659164570083749628531977262331598705233766671215726006641294815865046202705371296193131853262561529693215383556836988077374798189721880161971193783971793914169038535312832253235412465242826439797042922776288555022268449626852826562018253054239635699991537934381300746002505751057881013005407657845546278404929169531757743027551522086139885602118555362746665619576393382543243727727545937436542104240229519648439395770592237943293846602029960958502609800338247277160454106241306566236128175373203299930239436231088799882975842589766585280694847815237869860956461728786791888479644556015907821079917895671376918761273072973877667280009878195308114385481152465382426243673989408582384304495908862599837084954836085987897761163483114791207389552583564705608378557755477617740299467403900720693061571947437284285142176136527344938059407023741211506746706648714546357228008939319879621816532264626339373799475797234274537449052491401045811011596125244169650436061132929608661287482357355412398987373665822510141296120874825526830980352010665274986493476824918174611699244385740169063856389174643937943969429165095165665768012335514113740358798809113325220753902698180009855640502162316455076285052734771161359130116016709841167564998657685885275676387263564259396652403348324661866445101791932489131866682330933830664015927266611664720265327241806573176249582980427464132090284969529251569061779639336482059282322351617217573669120969305199279019375486340456194382123290625162501492357466613934839798295780901086644926084253989137980741639377890550204655327475672178382016770682715344827546676519852533951401527307667571214022332869661228802286339279440481936169144411233999691418812783701016470722672655100741281713497377013572385718235077995077658803474240349321970992665285601283014164463564103192246446131429404465504708090736467474620737992717715801038168036929760719781357155016603787636857762065930436745462319773967528176211397071556618000053488965374143943261635230806557853982512899108297489731188755717476312375335098846689328228909841201570914559323047796597824541484321223838406493815883674463978787475207469335154454377701124843643858600220201057550451615505576282090317826668789802410995678574845734206267868742806856599932228887164919873369498099581914046911858222266617081093773166041600856062356149458207318516528432879670111705040699494694270919609197844511000756945322019787443617810728161091638365542474384278007184711955284892693638514165341519899678156567978112111341704153322856778931458382829272845455130552548257251054252327263200836941996131408892056630970430571904849221588239922123168269098365664845182802072145995741766974166293051694244886876859092938473456963137243638302816910358703323811156480269328797071675584146383304640829167331446324215245652638286897297381370535472110348951280215663966826339831534550871608845885489744214680670390253612753292033582632868592736461349679479657604853074163309616303529198460311549922525143735160595732902889019894022513872372917501683041317951462826799806622109964555304501740212874998928121950549633777013346010544013974556025780967297874299108710520017411105095039667640145661149796778633985460611367255468091567568418735215651176870432049344613460606983281432123720994359800742317604627796333809152556575307187644422096793911727543068744641476471433205331824153216295611225620423479825049361061854607003399690117676126541851115617795259803734656905401536557536664331442593777830700516684350665202860388349617188841374252859872725062644401545508364776052924347211991679551653966545897529360010956205535873622880351680726468898261053576458957075320361310143365591028377054607008734008872414808392446657837859389052515472171438497277795286078011918121955952527626754999750112170450492297163773599803852568149002909243344168363887697213419743747718658964153835507530152771299342212991622562801273964794319972811201648966881273773096912777303788327472623690339629295787744356663006622415961094685078852812929977340368267668975871934135859701575724922845206639851231576627926927557355340353108289951552515943020352482144193305802697508312468514191537153529655532875897983124637148990419806712349883357633369427290533667356013483457403966264680597118223023324096039592623787819757702140339848073012566384347235256125801273817582001555014523456573610606323644409456738419582219729326554659115678300970350283998987781282587837033634176928263345255010870842469007331957384544260196770997064861526186736452983129298581823872058669974032143053647922319989693815885577406435662519435505057189355696356344502369607929279075427748520058527099173013333799915589407534662580817246219093794684188590728468296946752093868858692050005561647013680201507517599589337958253643543369404462846027744623101816035358926627672456878386546638187571823479740381274392040310151679366035595759219334067293915841632253290785114934987639443343967124626972306127144999877808948214805277913320992496481899812596247551703266662256555927495714615022425864553509398617105510587664803095368635486633918951515824199273947526661344792360708824562383604623410437405818533722187053953275502183479693299927494217205327122277893203073673353757041986753213185215003780035415159245197259663221912425513673514917268083765347754048701209473553521808137013650342278446930091810163214900762359550079369792027252340809194691442429471565842959780853497362560070732313035284178494339789632377044847223735532262290784385712105850889101629884051234124071979720990670790144247974513893089588790119325362115926130696659864689718425642654251794959078932121256656553657893445378750158738284945907784256998966212783236650101386544502407904249395664120922761555966245019289165324556306067701766470742743185193130033045299014941339066335469356032759812007866872955256035539292105304377315610886390084472076972950325155686422623553201933011230039567113900350060335879749897129554894356199200246176391733929277974439269856911901377246817299965589367137654918841610014296212756119670170280396593976181461612307428663341291856043662651661421838804753427715058286368945526479625943186417827594779390393853553705850265218731794592763317471871290644011465760037553156230994410466797599696334904058374469365800934608430815211445764636940172270164933638028339868256865977198532626946894431407954822265727781158745463105823664843862924222053868711396154392867844462378308823922947604357801970392503612020559773599353767080874601363835594300953185108282832244394275441567740329421134412903415281778037906394455377788804317842144869405921600336287301867058218212222715732380135636762355940446526747945808611085972740052717654722522339199943168999299097304902767142267397113962769706634453476137454659576127929766223177294349447234490949361053144288022541595499002987806297303939905166059537453768549785493667680888131521638523819911230006615610135538103805286737747313124853020596472464298627980218446177206314334007294327290034792805757632111648736609228321001322099872884374985135052925190380941575897612469410420802589198209460399000574078908297791391036496743259401250545209794563220468798306225070394455328264505776484737986015243472776732344707899685068963982441239290100558837401053747977921736401829769335636935052677350565745160497130436650129245531817260868758816545704690899214060235611927644937773456873750664096352582595956842666471866043494049462079937236808410868951517548688136429908825714735454702733823873641537077882642555555621547024252006004954568161320765523433487876215683462314752950301292789094951167429660101383955266683859758918765142784037984845908525356550813718568628990394910291279343759560879900617996559152513386355236648385123864864870071776199239099109384613316676312045336565189503995122816700360312135414057480009939895573604581358555024943639692845713120507685495541538264903678388479879501719996829905720401033041488569381824204317504278291241367654269327219253777640929263621508011624541012708817747947961381634833852593298031069011916435512848065061610080281563725951686959961436658143501944026318673636702845079357753554632349592336034089177394041248086971459593377941237319733589899556654274193885221214506716912321338918157570763665735475390944917149904148428482099646944786922530782629587053031494244616408613096466923638988758391594953403697883479324004953920235818717337317049338561197075893903673383288965657869579117661203672975787037732234684956499742340302593470563907637524748785476105479938770299037286293648123838565635117139704287019137991256831561577595339123120806354093677202683432646467391317124279975641729294702408789060660154105093961140241337692136458259653565515027294150176078525451430041632668473239492923954429829982381445739138500755032443540325847796203261912351032730534735887536433014441543398461781181693443139763926973738790150763177132922830897019976538457754381514427525997194223850813754247323526757792065509724748024650069548682741030709452718248193534790063077133766436533798668363972459188956968250256841432864339531459220038151503270257736383798455176367879037509910209638643531559218235720115476513357288935177314108348765789384828966515744769996033295182445045495284323389838395555924633517857538813834545673667012170729998234263504731205281232162228185781907592577239561959693620174387809393041540886991823227611160365535036034618334132061541483349477675468617101802760479460000351243538733297048504982242985025136975521070262763885994113870723847199074209366408774253172470922331528011141109864389133806524551668447835168522315037056588014609146376095347090127884232895785334991255991601814881978085830653437200366520889990817368049391761440409370941664478290025889182870662181631185452271374391996049200504527246682916906736444341190376221802965949794319020138653524720504259803021762239163764481399991564568850212270636308793581351024348773209415071686107407037698046026932127325961052092560612398061366068658752847509478317510109672260499332959236320161913362649663667126498344814235653058324039791898947741570894484202383505397673622505730315496507396355859369748728523709450265009225825043384495593350436447470133938683868049868833447747627595870365821087592519682497751347808436473506898965789849984437227259065329560388531812774684676825378159975677611529288677065700266234777948211995942142135114837885642589064550764767389062670385626517335559571897944505584602379124873040709834141925335932781074046697726321701022822215291257559446322509862230974259959363026886684228554235030311352322794131988534718114901681539919934301469047859869042016933246657308832792685700475125570930313372583417723471570580446669171448598538982367904417363636550948939071255385022491976402761891224149728749653834353828797714851661280991672561746415793453203029981964765567876797978795964356545275587480085610154516383283976713594465981443222608658366385952073735990906453589407938056069024987304876408923389889986786148658243763884157906762783931027432732536971265223455882556801865506374519252238172137360163796448545585610173360736152145910693937134724557701711054235087399354007023774012020462264373869946346829372042024912804393735398741042838247225713889317218986239433074243398570998521334887758562233610086417940366840288684683969189548575177969981805143124781711308318943639321669522725001657193492499534737650859936731855683505404516641303317948516536832252265764123028702505270468356775108426572183339747107211024297419357932233245414003973963048547169145160278879978569991741356962596726641865012365207073179702107826525255124585809327268704181996405963448198705234725076764524414165277374869336162712553636164478787699462907084518151149014671640104598120293968743971070655950470170824574898359948788019314145244073171326725215360522207725270698731595934960026267054094991252865815991917780005381477736963443779617662060467959297242074837104870070414963522356637163679702395758007263316640975545556279192128816966974142708178192614829309659590962335844671780532129210728906399493767866481253416387907427546294257828197335927756698651348988931327478913643261359514970522941608013943452779462000678496969527323534216802527036404308082522646468180363609834094236304614415948419892245151493522420869964804469890926255033815548549401959695769547165252375359875815792745345918532607380517320973911771278579842380373548496811565107367870211572490115279829903009518807967433915607700669459707501522746042507391145929112274877090319074320421679452896753879130683852634503001741166723393133247966177059644674082393839165016301559448916211859841297318270499766121989478743788399899039059479460502687303428490402849193436933673923421133573708970016540998186436330163807948642557935011067009671273995786178772671899786051176661788694255206064353958377416397819468007760515480871993402872728531216111391886739490371587726524028354920041332841806829638315572495584359439243066410639633470373435752705684926743747840066832250846958648403583297845392096605122801708982425373106190261185325153127868785310257486636126671119455490453716655216481498646256605419136858925417405556928741368939944185096413230585534032796823832888529680921534990469693935896156389356720336447119123242593268506187495180566015968890997148117598365905901123078201319930382260760992418883960851255477293835042685510058680254623754522450039795335745619329890519495911748233326429773003010408948046965523802933134089564782462181603394990248037590865448125795690017872542627022059306637747718757904421632249357669060858870873861576881557384353596831237184105424455913576410433528302460516219000993119242247554543875838665276695883806044007231243636505022383421891654084828587523198130677442422892834911855896287328682826661903115860924744783770685359450775242389678875566468491780939475312234175009199518889170051741373248592819663073627890412783375957256603555020344259394585214673473142364822964402542353271984280182663831680446519289859195414573719911681168419531246145186115963364540945584712111143565730777462993364315264521857636685329969336554780752829622205940791415387418927010217306018195785001106261486636439827055823517429573086607560620091996887389458664132654139274560109487626481336268818839170517567367706205212578991537389725068344759037475582461646333289521567697490968241824186746369039503711408843230545160797788670694098362951654323642627310631678979200123235884064382481415427454854952926683875212098926961080071964996853960471925360159436770644800393012617958712693899022480743732535656860225813304616741952619996206813761341249948493896977124986742318784327033508950083538322160330350928892987397269940171748621967846710547451488234965271663817738311569452040943950827859303370976008486904789602238631347719838938435322414910609356166675153803358706236524661212855987598387385150528878597569189012311263584745667776399586615713524775462134434424250961385341886765653439638536720285657530857822641418955834987358045301850893580712163248956542500562479144293731400936246375461669567141093722827374714125859175897168685184747838188444537125984746775467865682381129480445513718052920351871785473099753104057577976406582428166627021744371192817529331725197926693664199640947652465736172735059635760238276962147956978146243828373189656876314072742526492125605302740210640954674484165706594523523816055440422501304434629528042715436323484358209263430786454701329994036659560187192632915980502930237684743798148280098311014795365308737931950916631453006578712671320694627005138980107889343342209611814045372726725404726924302986152977445422654439479918411163135074698287520208909403517549263257300546955317370909738905468628407833090571492495399071049231185782177901012798996513593691844123417169418253603926221846375336130460028225532525882524096812938457566110125782256946191073821263651867019264322397911643328716574719737476543885160044894149612706716368846148412265001091354349873481441995300611361604993745992349733239452756719077237518610689170784455165724101461546675155627969807916250910569857424534533433804680735626017971383460082314708135739808503961078811394288780554772269156366908648356521391798755643002133237575148528423421292247231361776350116792171387493904882603632329913651690736321335171730577984100692050805148939284923021704044529609133852152414596171848737895947915794642428552378201219280016039290000431022721735664606759222889705887263734598596526300214296689016234200897432921595217260250795218353074075834138485423691451467314401864823042160675437460841109465318556984576421017011144989247826322465883389627741402910435531143945981432017422744969366418574972586714296131778870396381127651204223380607630452689711771411349844424819522461047772342877713297708387818814361445201316472314498578301251400056304810888777046945967273822255267629757570557227874071941721212435509830183854557766345004873585778937429441459373740251669848909222121809625445582484060414409974151015991403854729112910235551077352220660021962093434036819977451259141574710383786178518351880125386027239795022633601778867199098749711499181770221250915163164737874503760842994195569435778401891372965966131250765220021380931001218789632856446412302595088310147410873359911672766122691893083757658391402480725630652681993686596544813108893986191316650596213436088906712456335088089341974448168127065361263294969915203935507720944747532324144985273303859228796404857106474233375983043408556655883844951652650104825153711161831089507866184025076837384330182148702631178759892476349615978271701731671861689557988812637366095147737610088397039810139355550432746245924415294037750472848529095312517712731108018350946831372085111265382981593862446686618612602034228481210632406661182762616575483073851575109654071303634917120362473793182472265366851872202777301720979262983361028697233402303932325457435497132424890907060375338172387735128640862823934495303799741537115117655871683808925959187971116608181259542708134650265219927664299663658447807520556230596912551337968329187548965660939626266504451118567902271052673660300685931968619114229933847830369392200256700114456931429899871940461008933298774341153059773389656235954718102206958601573986906384207998597970002836166691719244971162058041767841829990049546747906268861667316111771474064767043924098201007460584418113006136481426732950223674807888643505210571619846463220143430608123438144471269123703169061999408447461062367448103595832633526581963489152876354042874309603942274279538935563625452716566491613553934732868147169515779865036448066720933293836188557648019568633911547904757343868353255348108618409046126600270269221261000756801704605459260707798918421808063941154756672976606863689670676377145565596086198378918728293524603005763464396940356601717030523043571767549699056492777243391905952847662982772350695571032492463365130585448779394718756240733370614015168746855340077991594908399958946472245969295829898393400649911918808467933907732240372763294902926424797283388894098818914655057648866482877986602631608775055677294125507662345775053545858148258338293503258220171452120247658691629202904246107282749458441743085055018890710888906981917820673723892881594077363771745723489410806479425561211972717429285182118711700604184178944740611684119825629630898949398402676914780952520166590105055929824138162135706411264851440648406628298803845606431630292828791845731279514778103620914094572672958863187646550835383555552890778287055908682531200263390990734737845699401693447525664509211488842198733406777664314026791237613811504081100608302484119183638008716562338870441814771439861674385340850319146890349647414156740484134831668327348549115914735770381452945240482537600397728909023517510082000669842093611769286908989945980540471634224609931548940120162024972431989246533656023856294579333552767672211952796854741128429382187259295225974659886465941867996995916167367065418489418052231749840365462385841708467665527486174423778117452678930068090429727897046131297963871108580359835306673878705018965082827467926847234005466694792643104203457023339726613559718937571675088150638089693440583762484814531496063479408693008474367518550972105885571665031480872550361602640600168692058003291149890834253155986093957769772064533719826347620732393140291513349074960517002107281603541832333739029896178107990584713574993111245815004285900988111038184255912087804586611476620922763926695732961669254807835515552318638427972875100424023778204173017064046373178705551972577185686560974248198549891918965998024642430460450370048211853390788480078492987356932831824863938186793478334645506760077717505707399565259609291002824759962849279798913349023003424671794691654311670487142593157226770051050929609812195204045819226425386024025409270580924576085286785642592604251783954532851292300199317580780585928581342232870127758187527046721696358697356775787679960087643734666951301751009359542578795913613728507976839600112668021255098818109759714210707466941240337827829998338313275749666252388070232374524649962321895578000571544838675080018068554632615180504583168053839812274011471273085508614429282973201908220588457002383984815109534746036847952868755219818515368527743834701307450859906513470090724713366060403835306956288447400547222954962814457756783829791949103065221381202965816402847688712113113225054532920599930976645263892121889856951424766010280377328683872427148852816104359600359613786967789443088847368109352638357486515003704841109468502485122574504131558229217404173852922728691880560235136839275708502374880606500830422228204262076652845522271914291836518120622909565125819347028239076998598439872129613533965404388335674316472503493744179296071211415342292407454569704779301684774191365788094981587064532678921623719257402308871225936165928286214365315776619517172227399602962960835356471587053056723311124440974401723885361411274116935178777854026091441927879768444099383789249264252905762894676859211022501691933514842512606965221924614300366097571138775571698004582773703697778678437098647331762543007890981213665836201032170746115646180858317012345015934171786655587384510149680685642057633989989988777418548296679691423821917327046498233246420610104703158127593810071993706439063772273910712380254043484848590899303901237332915296733861551866197940232773505906478999073744497593632790724996582997719164259743379309667429492622906206689093512090004364987203045931605136700225491474021078361558622917287753678652434560795311213251440253522604709966853521247991108516210416437698130652749351466693279409587665126219205780713593415740405972759646851063570795687120357719280603729967238156527884677565873118268984923017098308348222406544908022448833717224286954769285051475275026695268408918100372932952511162728016924057611256834015451765796397263410485919712709384818846336928653830019790134663226862282755718249914017185402980366399921576614794674342835532144314970219635115967792982490732531726566020835185628607870731039766227905453235476976720380010014741972488985193913195781816318424686257990593422069632600869972505423576863456915749874510628030415285998603581786940448571373675164430103538987860455149077353823438988557604856217855425001785499879907438340484047540284065446128805367588580902690010938869533571615945967683209219381793956461138170844567642886960786162313590308145041540596605547720362549675315632010789660035120522354165556054528088592437619983659117484542872522313346742071723453826683389082476070531199361205492904644536783080213169746376355978482225392396914869123678076791405346078660592247054698418887019009956807315278114220486974082336218132135402359579680364673838126749218476180897579173998066301305834620410625134636990084618009153185850967115037317139332922364857060789676949152840710264436147463685919762131818208632043275803856790947008576617917615498484615346473076834145836353243281927529355152992015390383132660958224124788252109971927564419633966298148808630358664855505323099105613665894589551474198347880502007392605638887950410521842568910576122840143193510701888859590824284586544944832838521738718651610953522647101816762344079638521808325281656678118346248342661711551349207226139588911577695058538687132030587159016008576448922276520437270000060584524185501969676167162079934286156651069256343616745283011629741597793945426672029834762575037578836618442983784069362322855812582273372426894442055840139806607903621355896927324133295765828677808381415557346500328962511737392008564345325613871352424530057260836916676687948010787399391405369727528723032409194940850165955874683706383101029775888255741979222123997913164598578866888635790348687266226016063259560544073627268067740253584211974225430136535846231233245445908774472725115634703589520425078016013732355647597357196372486732792488744482516720808656569874847205258962388635765393351813799349656690890172577383799517192804073741693099967720562960791095791766349353330288630789877533545136912284677380588054961656709415592627511440094247748973285207879101152792724856888122399866576872267045965128200207363556839204864341948662026671729213571108487490783559669538983314889173067985572543179600161100490308578585860815191105325283990675648721474332685972484432483573683443125200692494607106664255749620518516063183871154001883865394797660160025380918259213262862595042788373336760247812251562521328860520697985821782804855163570150441104268627434184154493900820301312116737526415282985688759148310325088688288972368894295184782682174554963418523665452795942499735877152633753300243698696067209787576430679848844332532259862628724844629056472683194426441273590548194283997507543528677089246188694767752537667653637298068370181529179885242751429799062565412270622628735972259258723426276362550570843487335219329246569958565570379177687327257367382097673485404788338663534930017588903505088966473101789719301911836651218958997927448998694112911030578243854659023563789359807995204475492336782057904259282237865896592541616431590947059995765071633689366680120697535544308090599035825442843521931057061341652030771970356148482665085543436847840075729119335600535170219637811023509694804417947227742646741053747895267994600584337837397997908737039399394499852710621594599919673668350140306998117163016245919075798697453861098805727412122476286329728285348101976825991042527781042180197213702297033061132706873281275823497635621285965531968231001160930218282743495057673999117883346686071976716192267983011280059823703974563595959932486604488021010308267813949688656597870513208205594970177293411564876421813240524492308149854147406189007515897497217829436395506741383207209419466177828258583259188775098996828501754916999531992386478653979203020584972941923919623704763636752051882037146269981792224431504030439206976936588227975071326694060655284544185687319223988754273941036335841629924766973659595373837490402003528060802177703930696624919974701148042503729354815597872642447715887879072800499519003347293525919448370582628988101988675072489333378284635983582725129759456304042360650139444853028582442144240805769420659348601785264908718821866015904164718891597857802435297578567072884937635142699136568571764813214729849162216902584021345067128839561626613013561833184442321758373153553965603814518367354888879691792087396976034010675473738126108258022211705729147406211655486388386830258574856402614338421082915622347856934753965940777208080322981205605884529684559072624351534714522583531635888551909833709189654634955989754957080701578253445513989835391968639952508201989304150206567523273233103421881231306441594718663767991202618999274307205709142546078350347479685826586285981898048782536779219258917360530430509706359628524109258694614921709739550472617253967818420038916291343801312644708397384244655738020058616206218260363810228406025774249182338120576477414667005957115870597328558757801641964069226003707599729081557247918890029073886314644496310208357931683385135120401418604063260493170191750083817143449429783528368706955397793305142096048364815450420729674629021905327492113440876947453184360162816472408059248941099372353852962856102563342528624894032675335788120495806079590706328055639783399030355866992269578940566322496349439501357753571220199064267369913410771097383308923703048360931852282248338526715570244352645432739195527629066272643251270458459777955575920029871130049042056612132368799313489620560051862649128713252901691620324719136035115813619356606885666930982770457896526945002327900405160418979771930088518917189043107426905144793488691842343790663543419168600195752662957855344129478126981059368197874087284509190216226088583752239223022974576531269507434967774702507633569489811232132096529226263522314755578145367326109146664731564416155912818148511671649267964222756610323856728507954283585446411825629822138728995327070442441177547349408837317637369448362093877590732428679631859710518795869512846133273579128975723642072979141047172427881394237195275089380326910304905218690389854404544077775734081561071050798680124967623928657356446618449934575908178403858646249698967318014972193630299650761649788968804455956613315692641930264798687653135179021258541053284053140948502819494885501465878094045331406500199821142988085337398618973839838044025379712928465341184608666612843833127392220377510253764414024941087289620737469150871352993054081046509719229996866138873532254304510026787549289921793223485169126844528840764013027966100595458562462554229663153942568090554348757638200311512678912383462840467817125449910429453595942607479081623964440764616610129299365596417880176115436699049822247169175349005625552100636737089258506958965379142051705621410513063627845652830042720623484203770013125231900157872076128301847545108554822354761110966742302710210704088524569053259973295846753560749218047520756569738413680845484357908231554389731399681179715209143577299469256352001257480374574691834738436540320592533924292929989777493386937152853032186374530873788569412227630089898796363737606579908285486403687092138024133041755342439129153973166559452799133146629919605613274060633147805754897020810420619435934287382326242275148840460313799285682305964714746189789660386401187334652606144950488055490918518183606742360887680448110665123298578738494185295891594174547256690959513190136881984741626839511702902695113544401642697413233221232380001034252687687961337144665258567768726306411732066164589664304040566634219095890657485638514208386751797852989935395239297123491396177679754318157479752654013850316717204905659537696000911142909342230326977438826810966568401094905085199420879701215194768120675125090872714244494894493931701033228226349897902096970855665906089539817063876714640525924366728004074937065756165650945835543046780839852741146660570544244294308698905087153187653429130355376341618122553901541057308168838405257631770265246659452048771971164889698474636734704199028385159516162394945930096925419073982183321581989936284912976157765076496138686520203968770114261076606693133233512577881170304474952830221108075561664427507247588635281325868395170135446020032268760960048529992634730053835338022638587863943838578267811492819121495649342614736994188139706242249921440368397977345260359351115616967989506893074434442666790515696973072990243471613506080164847909284168992787926274850564063444240649992853163304018179311879889688581185382177994486847228938422901056234138418311562080905698805672983194264197465436660800572017517951118673825618287736001514797647311747844491063930973776877085994446455899382830289242263503679233707726303548098730077435339103027060582937652393208644148855813475731752882159456176740113948784173114534898401755268321518767007519496563574844693263545806703949259338768761775285323087522483296062428207035785551176746867287034685072824864119853078408146029169616988986901262299564837470730525124299306638927429256286658001127822624472584398839573933217739194260400812068865843578146224687864958478596352639766142382326649658587733359520126781835704021536893640742745359327323291251791485118457281306110642268104796195579249477142593952586285066896970841415310955442865231601631369937374793335506061268457315971806528394825162640443751523621117587067453911965506556652644780981975482218708016875835943510753097168112407064111141225816586319551741081845670766146554527666819398550866570182411041211811022109991391458088609819398912505747460729251511522526227699631708295368672501003065248770818606245248365414519973770281010051926832147349977604741355707335923846239161468305346548476559756899486873121874523813700597665277645622122032702172325081262540868684984621597222627712636842607046737997640982451077568216385659105721767347572234223931307926331817396738819301740113516356505490925630954627317908971728601699096091787068175421625971018143052813016925132508130062174621242114515456717183998351284508817938830951688875484860134640689899928635416668286907146358267170447969449768154561902522468628807364649666681189598974200061572930988895467165706467322113640932811898584023621111607852600353940672489074974679236802256835948204310619006311198576603594975592049986271156019275408858260157593759301745836036846237770938103015042525101104491614970545146213133107515266341754502079884049210310167163808733811825812072574929778409111163809341160896320722056212294102980280928158834875837665263111155015185806959666419162916381504360171406609321139912808455503051479715675467292917757587197455069243637295321834006544423537639598731398065440174913006713805051806182687451607555769497324919146729641279721284800926944220090131324129084629910766647016691367546451063138615602125265527549350933702263389242019066248347492032262816079546930906485482455665639178385632066235727561933078631054765672334899644980400804857496428417208669090610420174433080219386840612000935423824329042104904959968812986217525704373480424218469337782014280570441357891975783759876048703404332441864762061041209968355732314082066000530598510179127765941448171643096183761791451171968774682310068600631442206006211518293630376815344113620218895357623112474579185023743718876247154941204751775451638879449912165709116583416709177644856446188205684981309409437326256347876725880380112403224228769693110009350977172499732532583869969487940522001225776634242718813793564909729334247885681823895354033815166435961141645457730668013958725212994238954478083078482527296050751911382556956840755443214584561643598552549826549720454056784235672106974037691299232164603678899478715454181625796886509111477703676651606035824700527736675367918687405765795610337999854830259891877899345268949090436131751729787513952569255108481647360682664736936907830909733885724939857528045398020003344576745509192264501451896831973783143664567365445307405255527473503634272846503809690197847989654055743371280590764829501989607236698497754968771226577729024595878185118749279478439606746252582867527552886811281627541489484663310772057222380108494228972456694817484271327763716519530859716776592761380457148474016322004644968831842131523195877152374813064128923471614683866979418748058146665435934534639711116414479711925752779303890495220713283322099878492538279827802950055650946181149536010687042075232528950644761178016505483350569505990736591967933366328087393112960167383871418746610898168314212225047847132593804544775068392522577507772270854438569513165652201040279579371777660521584067524326758989098493614588974714387997539505453674282322810351395237106021506571685096005097764177138119502970184627985940722630544380942292984060659109551671996221599680258071330473764902617992671076929302779893255898281411288848609977828659666639141178212900031835714447841575540536519786366803325483079603334577076414387009712077144426247691930853884479573191863603814062908155175534900339132004831354705331687085705896207148668522211378957402073125095138761499865022470974650459059010415708599129579982902979474843316368995220884902884813210245385831207771237427736513366360863007485429450809594240913830749833782121600958462861041984006044201481246397077350468869608271072860724959391320710891286267282115051533914413188544901722042293325923991638877725427678219502173672326587743795770569210537024566677321024588664659608469020159476482384009682582894196110503323705213927526853356958538950507502414158943401498982878651456461611571108980401825600412821271352992079692240998688022390890427026205147885300334828138762823356162024638390288434277698442700632411839023754560553693813122076367786946203475087376832778797729223153727826564553379903732892541344855861076265830946879146869916012155384713221030076891285683950564319420419965815603545896795766042795000909669736774767402774006174233101747199360896047574826695903964775361057620178276600939676013990527251714643263301756627143151908647722239476522537401109905760016619281399171623365558409628608292012049213546550705716689671498460568789088603657633542232312030461206290759179850033438887282691187287493620956765680404522395074675987695229345868669129516571344921524768876622150514471289405581309484781092429056295021549600402136366677833775135105227309034662505794248001062053761857718713483977523291461668221822406136832071990089552738073635000122001755532434013108512563894412430665121382645652360640051612160889362299389181571501869388515400145315511250286403729562688440365912141241996317247334420942014763266679009898411263568181693819405948035467323667635941617949420103840276061288207971639630738040233754775841417964304332573559092512867292648209764573697669918442509978442902199064249901192911059615638261140623170599380770004779399574364848078871232098630496728831413769902422393686934699638848935157470100827431590390503357776646077613131767059955206790560274322518787283668588063061126014383277586054349510787985475267568485953724334769737846701447891025345879906016109420010232298115347494874228270598900249396977126710295165863161241136399515988395773950550788953083050054668089974373038708478315707703108101300842615120523041342650663271841439532254885089944340910804013186544264052593479613731704231578838422867668683285914164589377607827267795656663734006226293276802665650890609251868958013652431393806897698268178453085290618596913131807591060872605188904694435718855082046229058008948935166831990257814656880375505138939957090870410498864170810157265935865681608701671906873972281813510909220078244198899437073686508462750592116676871693431531058334386711503538508351777816542276213064186037370948909750847687249592889062100297048644705836016698502771427199753491380171486168741302157977168770646228616099440428573541750981081187557249432820631151054199075641271892445888924768575032687459048323227802009507597223126384278149514714159158037545067815702782349632826214746466879676900623138760912570575203556737161800331983358170251884522073659966061028981352318717641404925247823797714257251470099734296152005308898829555658016003010791736001718844672683234223459866973527105710728688493878305729138520969477234682968826403418062142645700033730365031319161927916308787604200157487841420761116111700674739374768032587070575499399057312224992175161537513081636003564000448168705190757579164287924229439568068118150751266468204636421501322561865603288073533309594267597005465313492613362347982150801360345520151657671629780178750029158688736276560939195251109680210435798142674305947859124791790436840718397125213959934533574001693606440402435323512433759407461863233618269846730261171709846600931625906980243970994920413472996899336915703339922061474376079980430062325779491633428551482292186324084515541079517811375766273294493673339100730752902507771089428227551592247986777919094592646589602897190375130308899134490791271178575176867882884088714713723466095820374477021710043322868188740343671287919686484318838440905199530738745583097045796285246394584332834901298961582102056282484081009851871371489313226769102716186381497481339090482819001458693354790431299901352596511418481812941865583826380561228459296721752980289340098474428010249556348334402228894888597218485453328151775601785539289317523255104262242377324571969378074509847092857357088297549406152391419069179370659114000733009910381372390806628171241016536095675305772076801932698747377445561369143221629449819481888008469403636747718333326649657763898969290199107084621801778006195531529803944608912544194217967543662576554262911356078621133674855038535337301391943599681328592183801988627986366443390221802090790012269255873887284572139880665490853756892362988081357068606255237798482370500098235144146421440856111591093716801486712439108300232895138826583244354185452080584494647073798784843800845890754324973893631734856084164668995623486382253543924810756146162195143485260506888614622335294022969615767068981118358434011109636353186220987624359437864677183322584652046538245513219841095895909634712383932971977869148309557412546398880338180370803889250148696738221571054565264702329107024614731938703245152602373566007283276821073227697225715258038147618106924264283940295133735839276176871105395398993185020600645967315934560791317157128871946177342548694492601382546690012268778682675067385649438230676310274435943940843009060174390112932613288729604162198562815887295989642282670914316554034144031312876940585374164144494346373918673198706636811475354062972430901766369102729352146970089052207392824461679358066346116217282456260170701715272583882698548855431649181508889631452350950776460767280931906246387171842282263227631629305491393262438307226954259804462586468275452068139007500445583139151258996732811757729906672817147061445352462285667580712236742856430395212434812023784929836360872704268414273001524131922947408259718798381088393194267305747935315588109645018708090296957697729263039357122890230794597871707121167101157379544297934573859433713175625536383727794589260920189034190265816509125997587889354093509774714909530521637061435317170267556711438132324217534516725265875896133666098090655077896424387044600445128974355227797077637628709682827353244980904473311546688672153846177770917443234408053648336487942720797647222932058987599563098602050787788243529287071866192767818348625740678654835372691176310391850126335750804321155403031616435360094416139855664612819360414418689433766335241779532438933257461126161569351707560392814506735827447870173416289217607552351798025488253444516114919722939614090277321332127619719858303272856811474144229580667097428861586050359869726950529507165739671623804501069253592748845683684591550672667254124054919913778434880724781800510632312022337374545053098225449718767323879005966116278153247601332626150139121905981470531901252446715914020009797396498598093512033758614482885524089932746590262605092815263795667820152510177626263131686849686125800135280842355863973076711916052041619005708284400156055903655341641574968041224469561745357489319005256074894724444846211495827647432782140153671339707641179421695054806790672537798787518665950918568327724425315673925990654723740451004492169968461570342401944814156024568358510602146706340398299464469262015786432417977549382192406829791997125432678195698846792268894264215485126844573848387348843705796549864707083368694257039536094933033924483484264064001590841226691228140267560633727563119225494622944914074568603077876976749002757517531469959249146444582268572252694438433110449517790611739980636555126110913924107562805726729532850525252573469545875639388002486791083445849263781118663130741704958173499832902219378049250320349071309879708715917557147534395606312169511946116647774027790231055218629469609534162264691358260688819631813275603210939401739085500693025816340911292014515840802878932993922053673374077432477544296535983911133625762260548790952485503395492564809788775016309541630693416675544115094022212086078893131991372868938322650163300664591353900660835054482983282687361920095467592989895215020743276579493972147467074192566692773213269441337395173294175170038218825822247884785817341936052623360830508595412897554809583141164353527883736287857366873348256695585943596895139068339887306600502534087382400031155003591025346284957872219756111635366333582665546009787775633682168056543123505767881916229527154295008300576203030107997166876435781432438704240415755731301239029005514080249096934275943675756071296975688659310596627383070200327215915105275008096093978095863059351842805395179118150729663697954476381912792636032994184089663198208045191476874430123366945325778140512411025108158429461864301784470571786563087293645747475782033974704796272347996509766017812450984374753635019032184175404998668346905077311074234896437601490604537543682064542866488167875966949827667860203088590353104050713629204807290057967782093817550904836454217906570599935602270128218667519801849907505179361382369279134585763507300127417612708587500737371234483741759521836142162288446632438095897589696576551183834559196802735368363581030791567600115736122128367906498630901157374406671903851242299789840378189998302664845476116298219922877895577592310968441462504440203536601185037250876338735315343809380971059416278349642955149637592401404540200969134289821884582513568968926133229858888851364912291548487913613545815615250042338802802357153133179353494845484173015580473243360013615304957023091140445238069275904882571475404458367395482667476973074199090729358557545440734296918416392593701337149951503923302722174402902706818831680626076900805595647677548500119462998810748237331827979094757194202898447218299341627785713509502705795037628562101306020120849155696495397283848211562856886070673474881854202190894004419128432411701138119999987628091545318471347062432340482726845203924232118549175011488182056701761438358247463468551490335945884485347639431768853502962958333606381191006923109511686336536195451756251481218418684062849388927863863254839643578398670564859444065062574161273734628666558967619999275044718502038478578270656815004150036316741693504585526889174253662493274354830685475747583570537860597772392544261900575150048386777835170846034861460177402237035824957141504717967228256105588431263378424218912921680147667769034893246152960918979583936941639378184335248762165357867203661780326388469439939302497482775062143935925220188749320871690412792135664163615694602269169483375203914323358080736604788605162720946322662259027317528771211952863657692303227512879630301816029842098832326038749356796574394387676792133522183458342388397076210027896811116284391061417017010446103459861442347154684189323062926502540963122134420018056808784427643230072164790599034931044975861086870726773038691557451366427658848657817861789808109569105823387866177265161437844001088496924703204665966839840669498896324672264906229374139110135468128074836214496427382030892439906388938783327733165945795043830815286495751667337110832059474266557493738175562087146448482918552334542690581480747280096242408210021638543542415972065684649992316291903926563382088981561383774425476224759069402300879397271627996891670045560708017505460767302406315276683651937008696214692197245654878410318186873772989551013174692967151792393913432598276047322544197384482786886511037197804508797097700233528488806025049331964347851334931584976291540415978593496708050816804746244186292481657192743294114236036273184329848330581019667499532140717854771109766101541057304301431638102628162591712381727178130843466924719396703934931011956136585302852393058782975741123203970445039806155386468584783033865465722633852717173656998839762855684069716635051472701764051676675778551373821367085439919758940358734496660511427818491304211236257668480141539560965412506039025885107325871434523972482512840471235938606640902121086729351006840760147207028869780995901037624201360395182020727118749322343919283318987771838921374640393744032463682335015465849731378196176655279455654728058423465273541949101156727061392643469589421386399204100076712073401217773008215330557076562253834984692979077106809465622586426153439687204718000763842801452277305036113237841828235223021995980760177037854368515692955503023314372635081979638777358153464525384080921358323535552034994568774816348123816399221956312159225739871995819652932381562830487918596483744358642559659133672962616962611319821175944921317407508388085175835423044084068493075177274747261179759790294036177726101600714772467469600593618294145057636200966119701986019816390500164430319301206659045627753267038592259957645316847814197895373765856114920017327852473941114616498853711335115019835891978464428496124444010636305213876006061890284624320824860669898995556020238737747737649714251724517048601194764218137486445249722970900108645707263956774815097450816023606051640048835396436885078977593484821417550143038965240296703140753980783357601329724572908564277636625756694186321372897086913605889727765070601826545227650830888285883282725818041261813234912976864346227570610197202224324750687642090798894628079761383081986292826729560143345381932411043925021002428961958159792482193010388313955366404625850403461918047622497768237470841588936665677258703017538970530349250541401900685492516785401828338385502168595437920290979829475516878763695678587476971884425272826577121975277568634831821653236234955574680258419492207417906834134316609906553175559456500026252477584680672608555583557877958416115220818681742745491370526247740566065612658296968429208088219454085269596153119928642789682841406271283905758049131401080934058097624987603229112977192789244412171523954547998007145452646414110284104117195105058263491521083300556274827631320802013553080265714176330133252113225071319682063088001442916979088487674241268447680919116397798691537061122235769793227829631177977730719872223325094155277439449061038105694827099602148535519093030509646136452713383475672158786131998680220546539827664216600842342758082332703270168862467350751850971519149722943369451652128511174511601220193445731409458176438462264883642111486172945604592675307627213090302226303682348467926967830431058307815575458508825387353663017284097154859693235627190424357325701687891795225654863637162025947454278383705968909340789260280896234621242318139063501650272969871566032142310211856625397109262209011059912143899480227029744483187742883102209091588519016447510024028412978811474850517438902127881171400962601596322995785340956764729493499158447737152876546987293034991964697812204428804683640905175401066715236276267065017140618026223258001979145005756478853787539211390937307656330671240093993767005318449258687714441158407839868446445811348863171369022686370562695646667336839330564109972928320073733190336383900199268836468180062022668830616384198229380868738192203705642201224598681625724932970638425039120121911572376714502667349067598679847709337296267717125987144558313868113273538896953673970891659112224623785393649964813673453626198240029082551286673861090122857129477698859576646389749184978932347861201810442497369965677785234348761910631678140737425710899800106481763520432667758305089546962532904577649341930598166819578505709747655614674248875111663039416357830885401691415928344795516810636015118586281273061704102254678306899347728473487630930462515994807440782121609466469811815595338873994104151003010484113608930267816181024023836354047911241985749166996151440805876890939170812796934161302717882253992868009017220965793980300711236073279629811592525300637516149469888258317112732303363324188395502555798058832910369835485675487572255693122283826913396480186822943746253557096565854715671792457971596125263878032946893866777798153830059906750668442359595983051658974446225903445937790687021166933009466778821260512109041095237517763649939090237465931776857349355684402964357124202249859066697219581054812888757088801895739252798642459549019294588082174978172105220962736385820934613576988895174799243613427447968198053672545885454965770320582372308959011336883492960336594432011494247000681408284123250432161228400116339704325847521343618973526694100015489693227071162089377737348162240344093534358513551308783980327371833139828308035899823725616161337853141039472364021345284541804249675466556411467565853679361996078033550893497358018368371440521836618915684339896691370870859316207107750960012004961023839538700830219592089589292540631645502153729051886445523969793080261410793437655155847020575468812833782325337093733781418243743494125435628854370794353706889271828330320164568088310220608318807134343559190886658927854081826425267717791874011010589273515947850740837863913743283543882760230347764403909951801279546442947003858662342393371980713194984924181134260745927511818380644031947357194719132164643217608407986996757422467925900332311034201256689650413387057289872283420054201264923732750690408803320271884173001125028102870629165866208092516036901349919325220444821630017299040885661871782068787066126627033604616685113597391306698437488963139986332107705024951209875454285148701281486399310414611460749165066466705142766201865745829802906079920932064273871000846530400034459846232685633475577238856883464759951853261849521897527393809269171205896766078852170697807636654577798996833428836785651367901544900455141467718112679234221621909213881131135157674613135708502818189658632824072966028528889027196373902616868339519452305941782041167275865811391918547405643891715927472953725066746542954366176034965463892061703867503953163223663317099790484556909691116406028584819975367264499996844766240957262838269947736532666187649033552181117527532411318000188717670356243493970086043458410713831636755459405225504504101364298614815998099015537961849223328333999563783380438732360973085618286059126967436709165219952368351666254832387810295964823658239025516970635941377397408996169149199058663518059003457142266888769568219417165897833791199929669282250669924728205381896330544238403092147002540724256441008325358775592666433538446690555455703658835613104189000618114099574999887384882192695020908972716022104509248052450650988594334120600111721976602618570238897363058508004979614566118734963224419098493555511405469836977351293147392071522739114215363462612825015984596124708036787681932120799954350481495041094695536056673546014489849368722019105865060558589469609656251468016402661166818359949893324548425423368154260338679478078498778976936544128866934867283669291132139670548069939729831817262071843194608351909572554123090904721091750148598191421739104045714076740811541729179388153438452283071370464897529987249831869443226897867513889222270805869521250387686700553187385144615581604601833918637467685923315093816876849400526481102698747831751864516044410788560517354442687291904946646784801183994383227034797304412194847923759064255437170325615900383911494067381334546891867296800075693063891805041058489677290700550018169770724158448104351431764082929087545984958433267480950262059744958456384876058980250021611173547850535370507529114734576554150861644749220009632744178656179623975280264754419576624981039411267721524889334927592722763273577187759442467047629842858294021518839537898947199535678744517929791834814610983022155445045391446424320683894806434377656545960815504840812686930594803027908317172499316953533837635821125831772705622831085614379843049317719310545903674952268823715638860513338142172524585437241516550127364228977629190645352604674471845692036815302225601145468601881127652795628710841646306518311859547833884417643287961993013796542688664908183978330824562127626210559816974391592659559066612926947259005364810469156919627389479089005303232038773597775559747649304656667486275489533314386056928381401799787158163106095765037776876185137314060552080050190442715087442233345364281229085798137915009070375407788436875771363954822477926693193791925120248895075552098490525782815091269368665139108921415641638216057392203722252155844053775364531893597868504089153780632400639703023048338051991878813979381577298708838054956139076028171149621822450491139424143745341721509251355755953038154052817883358141603946220082358539103182460559431264705731479265630324651245112338127061659117523738746720337257940692939448611733775110431316509819576619077813551781086028363332224729578766650918030761367066899452821919229849384311811920878795251038191307801979971825296050383608348377581052567571075154544579829244880309882468103821399733507850339380559214335319302575112760195828911928519962335601239055360330039268447625073091885139976872610709392067867290488901260501179700020588716369552270967166935196252183631825302365336780467664282623127902122270761116535354551856573789100004495016487062129287890446813177380146436120516127959312542390166203484337330719777543236565592362357050260130061439645387900370922859946474974976774486969838226364682388452552565553643858756043734205775274854543574261051733992636141569803891899999636717225780385979188220954697111760734745387285914208522564267124611219579637669990597246561377587591049005689366039159819672274838715365825251276480195263253898180639957501357494347055871738844959814677816499528421346310721137213560944936198575056434874956906348382456955427130109640423032808456010955797135069053678884077811595313044473825510134923725877684084521282728871054337054797890417623420663544116224795148613724738732266460433276731307495367452228159036850938016369640047458335937800399026277716617490583534062630936666097920206767458869142843648406370204382737961801215733097113034866356007352364674869703163235490255860381991387949249020058671263908828748770870441157509110970396635072748934193837307136820585765690996034936988107746129504629634306208738211224012885909504308231270138489214508614487949802558237668288181484580993715592167519553462776979886756966677028170398091556268978466528722496171652597134639602713389469171988007710364944634585027964099061891773069352474520815635362949278372109729192774056399041146325759943525072772641684095585220977765309529412239299073523247574094646331385102996552214181346883808089151139359242165784376075966883153148699262220992875760721579655792811704489269458324749016909313074096232009801381545040991362254637241032749232346318804675556519892886794475606841243367861636885810207541291110081147611769799757163231160226505168482638189309748130742829333227506651292541885679447833231833853901988347740598275594059809977988230026047187564685833025744291161667518624528371241858791469550380780421176209649929120661089801795477445794863771646400185301884644973668584056574273037232230179991228279906689056719118276596286497148811198856669144863550589726671621832011834993252130046020301653771959524628839312439937284528377128930940286126304886391259183879305157215927956273597986108561272800839872649572889557745318672947325981054283665786485626754201971178357226861387988139349767606288716717838680171925295679685462162141740979422784732278934786527419929426676084401879826730155394222987775014980930057546396064674025600877700249613182415732905082595363138248645077292851450569247558421330689253724651724559342799062664494251698829481096824657983438185854610507523666578034934660012460231367963408335057277175724649506252905258154506395698048368053046139927207216593411796964700198786143921152979877246456941526422645683157147835104460506340863618718773781385815802628521680735320488681530265159030918572565094028956650739991167133817689327286166672721952252990399132760387526688517987744163939612529644045591989019972791415803031290001628484367899949866564372278363713771552993455700943223090253649776283958016796098433584928281721087574864588123865489706044927107652081174225234732920775219316253936218120620794480249135314664635039607933811044965743410439662320097483668713215667815519457527032667602356037194401887732088754216457232583221858452508750972221898471173530863329137507641215545879988698226496829152165347050459674630290121595196353498471726830618526044458519389571639450286104665912590340380518066478427880264068282857261485909170772739241567867732083230269472479210357581213865048139828846307720451652688150990672990251012839540751482261839863194698919915279424465113304648666291595795894139458878207551877806406335308343471778942356153995298888131777469495675813476304748472736884404890614389644022621989022582848241167293406688340519548813884825650289744795883638300236343366862981089040075049572824831710090820747226607561615776013502440655213799056510598444328885994358161958190799336662806866649043166771643158205384697408008784359029332994489586063474020389152527385259108107325252871697986757662567896456663731190086849099103285589356954938769902312500077338457669816323484852902039798662838335375488419163962099068899689386767455088386048717847009444599599074931371139981515876210571734395483803803471307474741484527538483371063664948287081119589344607857835379701745539136278683619541021556484339998147188015489313319044309036881961138487631843911926141944717022096366378347753864029139200880909725928357472038908674539490665649152875503987603114662108138546930110607575806998242689629098731920269624065445134887533719555986190859045709436173739657299164352796113401092370214133859378923744729428881451725552739793303942791853895886078869666225450995329721420354468026522857596836796719332494593228809845438745730262659190639127023189767311687930258646626601356300755599689571635310950988310442497108205066348916833712758933521926669899013880459687980981790626413995722208349636974495179843605949422948223064839877986545799021324613625861117408189745187362884314529103487336226876239321273225699254619366839548720748910525919605975868453312134454607630796308295841552469802923298242853328796116163202826756884477983703245012704456163217868465259833997703744984894164321314725507179225612900876510579678221802656001622601554624286919326676555795769732335215986299221306436398446980721093668252706391680653776806953322680254479471547896997010400905533075623165447506733844592052826686913240876963145469855490320489183910848161863508288863941020516216085011285272124339479226085456123691791139563710418272827074444439556607257536934165536633685026759823390441822185912416383599816126330496339404826518492972157292747893438541464925566848692606237613115592936368793837661237894034984835247484103952165952687503876557535341995708685946197628228219054491985572236914469414506352621064952363506452889825678840516228224233582543015536078274929020928388916533777335936447491586719905527891891372128603174862448221798905805588132217209253303285425213061520638550118296379468862580658949407900771528159401131727519923125300772197526811316900382116660352680211818079673709240570853440131197831941003352276472049380917219066765522898684934213035331635754680415988924262957635887782563149892999888258430535242156264592227019270380828574096748007368565363050251947439361778865604432721979827150931083129434221938488705908739346258638339995660012000351288945674515262388127496614414144478144306179371996940315713136610980922034907241555459407996259279708275436460561215828990593756613626198921266157256372701320474227092969809731205564276945123081583729783787733783107864215461277262201331094728672236657403360835458903055506062397039785323372051536164465516723849151036902834825490988818597215722054257553784086660303193950635679257930032034344022530329357914334266209882915053093780978969294217481386411411269111889641127191624877874059094083570929309052485391813653714801016854898033272372224057613344858533925814700682694040633196821882144748602704317569164705585305803923119521181038964172530752034412998815021221855119411730325765787609094564970432577508914710864606798075975414592334585656484979284220018756361443250803454164519044700486188034152088578587583930149553703078077394182313687568986588979949306476573253304554665011147514204339411329634026600976567057705110531172626200570813721638014352892587888799137693471509565722955786666560995271183854075569442094975639292655784534929773898878235133892156885486042651123896381013001969112284668038617987817777618567605809032424706270879178301279092687413772032325851952374474344154407526139162996479629534633338858945261706317737203930485838030638832670283249559968100254017415151192954468429054561709845362114723543818644072095349261229562478030101383163440098413743179885852234901538079652431530679862708250530742145339631363859837380901007005409788087825961924658700393888251854975396568361006181639195005321364440697860077783850308951504483373510231616277055919058813333835023025960774164783009273351912799375045648805767517577488795769957012562878347389382768743291630047437291544136875787521943821725682123472216527644090046962183386938800258240570624097224337688629220900010926131702060709722320702613493670902429054032627349702504323775805457793650833802094671042516606520706133386121372797507547007873085796008137631156753193158387919278550662685409778310788091244141052768107767068913159402888303330605616322331771031133685575352276423207460231899589616651327355308359793482301906457755596773346301776526071401678460147215864954542132529030773482679398002095106791667040052700810719275690618776333285833008839781684785651648832508065333880660821912793004626680240834301304164145003261659311519375254316361053717810718386514382925606957364209929160391520683388860460621316435911967691648441459639153499539581393093883852227404982564970058994515877280379201221885376698785312371812230826015504052583213852119765877192520618556975466210089983390218174603225933724759061406569819695820821373738992497529196237247766374086623930017755786040204941907253707513979913607257272301251266001776503507048603806523818448040045362708186114408915942361601591171797738154431167816348597572345844849633904712631006505483553966748143223631389299705800772846958915987615021491245628457571896388881790668819930930431276647176266759166463752870475675288615644369785424355510447645271364529128877432529912730788058172637571656588650955265893470175923659373157740448255101442183183725300772186163592722121678031720977304576823595685565333609495895850423949246203204223213983984110499642567268819579320114929293504783996238770339305136157136033044463827542450952181824585223642396498019183502502259769286298613910589200217772544942501956226372556857438504102828014607552101631441089756882257237261453308985687071789377643809845282152788426274371369172516386761492804523881776758955831652846162987550463394145677616732296511840232669872012819058476717280795812654415190935243921079497177274159393068789949173537861211997414771003725540940893027220565105489399349648911101381680572671562050409344103703044195198050638227628332256072099143081412950019804847070584794187284046291418453870724505730523798369192836898480122135637962336286257856642444527263723284299372926989586594906603281655827726069406810484618755413129111042980781413983212204473496044990941048757425575034272996306510717100856715208064694527747096820586733412701943595139767713379782653788711699743692044961261974222102811017712172155526783316585227288892380004862839313237907282441413621298572656229644573530741838373422481256892928005045862812116422221294809714835091117798477376949406766326681917453060471592688719270196676442260753864602461903598627596235907425638282632607680068701381027337775150604190361672447792269802757616946334002192769435391895918352989732669859747763794357022347583231913731712644676042664373073574703207779836319729313423981879669437461941692317695486112944476621362834312778804805223065071360447640104493147864997850481884111074346738863468585024319633795483371166228474873968813766367697816707792752113430571041809204491686854692271295920111043543602121936993497633845661811912589671043659982001369823066910601679042140099918933548311631369288936878748371942549481423984540199683335411580709784015850221621086454799637479479638189067856752021921589089285992881645062496276331830142380514453295009850166255758210965547970137573967296487736633340462132043401421968439945056127431618855641912163336344922026107816598627112563121483806652937440672118811978055016753068030369692577746155266750256548334054958495835884767227074514295910420728171261277497740147721048895624356253953122445593299805916600526177366362171728104156231179657680519859117452331543881607635339483990312566743374822416022806510333717865042764892049091541685531510670721831606474774726703593972862418474705749309873920986694130907069840426416149704160994591937062744007881352483915754687521800105558726266696609819082044207956195676373673432437122307939121483145143077664827654817854789613142945218778292555553876502160532857475626287808194547030342039534135690161529428889727030473070183093293516658364602772571411730440235661137263378239395333907200877668549658202138702555790508464965784897633770713579927297048768288395095827456268202336799154291667458490538115682662625634345437160167629822628766136928084012347832258455233356516132733028456668048227776311599000101264348037603643682447436126876088764320249983364521100364290343147062058755677963465990674646798344024815009265624656804797812715419963964228591929355411877795587074576833923968358576913235530411245650503495715671027298257078999765766420856913022180545444050756496235532055864863880163061298195845044046676406875654043585998123401383125666221165907085233758886476315820748040219116264049464628975043723360543116482831235860967333741063988054739707876150174815938075915994871337757651431712621427513555127336299517382141553445582730708453171503334336032848728176719551833757222351855430394580935528286373515160863074141677653170788109267569334675654619423144016325282913660226099920986009736083862967928999421755759617594905048349317850970137604464731376787528600656128464766415554955905305280253610337994127764592684482626407562771420393681073302003102218277912631745162125879567613412221319730904346594382462590533680394606070351100639640564738763061218253191423469549855248609777163224351734324414758967695252544729864905052786514216032813134383959873542805793954635670919002223237363266574481999143594242792387201424370071903854242616635176419281513078028486362269055052150051127950972145281212708465274133733270944918283802408256796565543657765958401044783279805410019769209584024313838453209172911470843993905093437346677739867336388332414097242300126035595755316851103984215785960862016796944418205737596020567758951493016377232101414368827534298012740824598763570343329223082033349447799491176448269047819849954167219838382997061096408631611175100963807859547635459210910943012803189714716430121442137634942799584999434352224679682925107050947100070306938039341021529692150842619685982197467653856002748653083818282633479181202834324045695846000621098007320667281133383284211695417783944970299874542923273828067627707459262565258415944429668350269383064691005129289394750810443621157909115156591270629600079314697074116800524366503365935689331770573331333549733851256394596980388326203860825346579869446116025981000022167091081650737623332111778711442125216525080549449816889229601586545564060573149901278338258319189771525144297678522529533685407642050411475748785435503183593107336801287954980888210254887116881468653844755087327586920070411901354222081166322168186636077037626908273886841321508386866828651709074363039235986651924074873676957225655255178136954875840611611345444527512526473303951340758856522470607125302144058208415739347651967675348954333572682493189142862891383305901688070371077498767336598151650747960729732226033042278789014367090809781723923153583624901398191137112058414803647962684549070057490057233397901897646340987172084947519046822956189354271674701007659318412231349252131459555209733428580657697488917989878899551360526716562658193880504456319519104734084848924787169302644527004905915060260377669269714398974877746098036101045288691305481070663092756120942800736949037070679979791279167670849409237209307669949417915478344335431606732852487792642866579352214843030345296898781084163771694463467341655709756309368928963553537205294378354816775491441655439074362220425018730375064681374678623749014115553386284772150415512300264333518442448982173362871117205481932931824880059132880452326583931831138726842648584670715120992157288812720695379029015041136952913864627644704648348603527832492613920201007391813485549554719763138410303368618461105416181538621525662122898631245916288213487067554374521081245403887461584909460836272647062396859587050809689175162951580542114276482234852612023579487038844565401959007788566079637792554103740449868355013544265934846693305104707716645603492467780866556118633499769030552954820708145689024306165254354737893533435961398778008660119780659118140315854313539898693591706718728921071446726206221021351702849187819490504309891682063121773243969177321199750457780609002769771394524970268355451788039224473892454348043449360974172006628547712325762736650660208941572860760012479248146269734048272042106053636640938389750007662951829532119282373067770630761645269204946377645123988585933693875727584427029588695611146296345214187670352400368752123977530716590449372516540540592991991210679875191351678279163812951026156779789897476922416867876170638761174155578363614251673724379485464855327870448589754246030157143800618637640936995542311753194786038071666151216883845751400625176497292987440155376974348327264920379927225684558479537673922404539179505630146218151835943701774702632136355569924101897767547817869399565095846552600457938545790600472031377518770197897673938578372516268600149606853792295629996830607133591586966191597025031082031251286914179705114675540933365898795547472418666389249126500369601737885771924900171027362187146331518892122977506618840769152598200596717684947931090904206763167758922928305290053466681729056142469071962305749451226910142573473704449584341863580944759585264287370719754301818629862838800294724316260163484008007855044727176060913880753663197557269268204161996744572513722724694266933429188356292858600123162412202524313235641400926350420918789000693464432743261413924787601989769032316909625938184520213510666010918791952319398630394516878158268352729026854539699575127156736001684619009216058453190117580102825239349828912288469345604524803153473285024510506352639327293086001432569900333657446289475828892212882683951403122072169702214299161401024000311102962197050567505382881545616679636347028848561122096110997476992390409449229282702693315817421594875815676600794757671740988923855057756261120239622336010995548207776118538926611087626885534345399302820050907810125664486783774276663512739180468017642186250390591659862221299747642331952038811752105174634083244301195266676340029014312769945912426398459147161205656597522480634656893208304257353391424683497969494865772216051426378191315334332555874803732589771202131682512899849165214759956672545708239047028635547317383466794829674841300798185180625077489193793593989905768236139117494397808761027296396335069130921916783450384064384099241266155397730529831214191808257528879642231260309773893081746766678063425018536375123605293740387726402844204431432100899030778204167616721601457728611821410504099868560866645710577619755658451475226536373089462064285773854407683506005236806299828454788204604052157506180042892020178255103620812931463848265353366755008347180647358617516835431748934956535967692354562320391917196490458461708243305781750645392564812489701043025785250001412002899008322015592420716281315032721711854947765159253344596797111651334102437355463364859522241385679040380947607615203655960356480121626366541626317669476805459184932684970222252060374442604700714581075610045246303013356940627028498548464767106497513456598511016265502513868995130809401746322454238883171880531550770868864155655976611314404223951640519189948276714360392616814175837596286985944316290206446706215538546897988986104414794354014176653041248973820978783624900521113436895882807981904192300311334664771983098981448870269278578870767237442543693166343347571916802687730876314572378012677679587603499168672417936303993524765408241305467244815392694687772856748516970089165160006717708673244221662875328517166466096714559921342876083040175004707563423108963987004106428106978368518050392378879172257185978900461217206674716329601998986089051427460342993352190522609582325395221822478595158110025873030845605557283164521353121613523180125960306585261078420563914634636420891088597013868144815785335351193765330262224507597014745022652724968598150648705874494363980725311754139109824052367675095795251807269334834895621630126009752749125966580248065419614616648657061343514858576595025466185766665339235127090434167519640328997752151026478850339641610335988455149163869096753926043948783833245161009095655078335775212546621164494931303598929999682778084977363008870098944351229864226590834859377140679336848704533931235374493743273834340335359924943532544193635368081757522789401110293631542376102245804859277378871463751056274154109290818818445950178053800285166910113817775884665783271348068271051032281920777829517310942492315136496635446675015452549243163861422128094353213400467056622922332651308479753718141562281762643649638702443449424069749135604676121760923366081859960560020088360946941397686837763194948504044759822303001536987323924204342380772011264168970066677997985833946010864218282551532200781298429679026854645977361439932125687228396578248306206886456960253962483129300440024405692449550753487121631251047407312290455509084370305576487756776664756771320255283282223038645809924875527822243120518366760451089110749810422181270384522231870825705208591215772381732584913684481715730147535633378924240673217655414614732549341791464552718128622007942437183410908336908906236636181025886580518298523243923841660845420825658560306654737458314943394497952370410820663869964545349213772398065673710117057734559176177986355317877517377196751577234043649530770515222650785305307794283474604012275361493508592476811595085950735378272865722841419363979860590304889173245040629447345517449590610014843995013482204916917118703503976613877056498111492085414456855814737828247554982087059513274936899625678518205254030445305485589408678221022793470674000590681451747459015763347561217835048208895637365127220060935514822477529408599326328439612350575828506872273469170047154098305146176598309351665209342369366346272574723348739831637814836167376543240722959583545866802084722397797328886751612183613363315668146966994459031022928660217781420157098293981437172416288892149929452874417378842912786187622796339019767473949698546471674198524973691626802377162055409857836528834806992980307232741640174717682382969365228393059448709370638652746916953885168561477949057427380600061260935951295031083855169006955884595559547549179408917254321868589070463225596185554322188833216820549237044450911636874449229544823702483727049438911354002949601980846182562683847248613596133199228657783527235562488201302551861345508847063142593514053450007663443339455992705771910139386783658064917842745350235060278007151999837710076633253345007036797734042513202500719989646815636731083976638107759965114610031034184386418277585247282396559297310384550265003804091131707614468633112055420774918372837363482457438866953173482732913036371908267662208071311855105425558068666330319467572944064938848265769824438798281585246184985523232635070452963991710975075121864263322234417138709885000489583189853596276159770196476779523765570066150959443601506249408774147169473032249387158198585647357571908989011527591850691164682249904611563495471767291195632999540480521965455671129161477408007952522095802381738252169004852443194131640833178216155681108434902019610182009015252718133380021438198784030625106664785680221597946603185563553365937924335834232526154802396991103528795891830750599591184393926039559001149762688677322797695456873905471372052732300661661140777978564880390675322833352461117367326317352604566572026680785325609242330353461667063234082288650799807591843932514997606358117227010081060385089916670939346610615111366669666236582394669574906485235520790744536471520261054998907236081995848455389984876323118264082445120365804516100588047906766458858123524793145129058502891477724263927364138626775977474692296699408969877474991916042536545669676867980267668955552058234483820229891415339897827045276049698048229921524775959351758631323356981785346449389272826506539231125991587452221645357314519214366621362270448333711358174011376891954627820613180138277609669839640717114073494060045799040268690954429782096707978981928411882952246522440132230899129060039237973152838532934534461868892475859162418789832372353381881866258918993952556372712943197663087451880696221794681547264373308617552603548197338236975671723176248594388207725137554517666605540627420208936311380952553396712643180890721933602494839328795955942921338169073319007695832715748069084326808983312952554325892759550398546475742541897512260212874450927100879284620450777720445202616131196357032750868004438569321315416885373015998808132367349294715843903974791190397740639562195212679986305700692620821146512323026533918227170225701310691012597175604942466483103970191618616900916937807210051133971323432281941134443740092069241017577846069556512027732001744846736379142152217738302052681086538786559986183093125419955888101786169978021913358775054987618418773803229598543157646210624499296584891640783236640095633185538838229834328639894767388179395878223756451509328057646794669352887994811150789194767582281822997927752116402393554440597420114701965968652673915015364633544739523378483640468686648779336356228155972974584613225050676645303332353739140607614234807673670421486049490763331324188905853488130860759487570242272430646881291728524138881043439136700306493420385804604453932598539101950371044947800289132427109829614516718214205596795297407552656312053632391372330995415916661954251051985296917210415051669013717491875873663912627124521743238404500915225819485531645088391732027212928377955201121489497677971132959206698623189302221635761612590031751351491530010164935149195099769485962628687539512422434002214592039638584260473587774101144728490451781787473677169337988926348511684629926627366772420294543940753694635449914685762962401767647880919257266959277723471822113772623965818954302767732726087767841659014779727190630025050110503203603116678004483072843546924976649335180619235341348366494483695410785029603980551007618795318278434776579755246635087735203439064907602181729900397173729953502321521885216020093268660194605088187706060137175422389077891104046233176509947182548043421210670771983418015186560981036203601513701152987878546641751407702163733743546624111067744174101852600511127824006973293364109457324138633312675378742742018605233468416709072343495779196658741132272444054843715469830873748389970905700976269578730616323943186883518445345997469375937141399663296624315006193328137463785379955515404498971428554351710806682917091197326672881560268238095696584963333477231716878943166288156369977260180872302321718422710393447519982497428067671176328060021712156663428088513766732926971731740501408925223165546794291329496481977117382681696884284571703130154389826385248648992540625188125561970816455666911010834771132271282257830620404167620818134985431311469150233512966934650564172584906695266652463120243980461792945044001096937910089653184781301074187186560630412264950434211144867202537532009572398365026177482401698657147179751914194082323263253561099447798625552513036586570038602895650697092958111577043270259975077307774659699606524575836174051806621655062948053827908724439923981470231266332527568700430255491569153476572763316340826595552689056480014920299793773231491827860851179155616872690568618187804479649717203854919257050548963598449096403206315093477005832975521059494745686911426073823729024272919121588763387155447917806593199809188564571456062105294149668394678620068213709914144021552339411354182272021622851420419447190370552906386067308664719310078995953371752475441545447583442011693313028769520917100565438384856430335713518680329586311344201143978563429716918348398788639564839331954891840270316916234280075961395601809562287538638995906442755786763534176334204012568419858177751220343738110707472989153880148538094458625745557289237557167674683757099905724588286206660122769677307002535122572900798063406905477871160943946544701027830271450799877543538220026919253064685825307353362920131663433395742175350663279175495140867796368468441248876520436633362533179212753737829111560775660396270056765090906970756327004472923720608123324185832511923344733984707665470028981529900577946744506131010885336519681221357310893682129683818612237252050585930961047298770681136844299277462001534864205254388632882204976422014819352074296304747337924219872017311924188265274503849362356597748257333322871972602104616537013336012897690097054135263686271183026210821920478947201931065711869946484335093145865610914151608955923700476103220338052196506285356409062875292919555760818527542704379367098769313271806379509644760345874123358936064720252230849267786707537741314536518743223158654109136700565192965203098967436975790580377162687861427005392447792204735570035697614377557586903381156618930713960011595960781940911425518844785254774029372540763757741260976593401635526098030950373256804035890958014517317424831644546505749945871318600178774435426062899686648204636486595483362128008739742928583962418043744294113012386609440603794620965921010155570553962116786140061214614843824801730552673619802577525674665644378079617207929180415445072447174932438413453611606669144019758014785549767317314710410775992193055564513885762670416517069012631364345496400223005794847520343842128348132763623616522836152338597764114996540132820288214206459731803450792620699768067696341752773597739089887545364925917045677464559938425895370845941278984565868871084816633057497772643364938339589159431678904759939810741111123147611526545519824815686561505479701547420774112869501471018569345599449454342082734808594669067193713704913762464844494252112423120331518127053087296911759541536091889036720653386831362057017703103650265401841641783261787705452016307108665182148316189554132418542715864220175644734042315699563029109677335905844554138516415811956799165001064630018876365000084599381936118566064639294577981367644976122461394097238731848116622031920657765441836695401566968197882425052764867085157259922452552281671198604018780843683024284645001512873908339830129869649681446814607352043540976309062003837513022218231121700136045175851584348816857475338612707993787482449421928333069429221161424777535724617274703096902025239024057436757766411197474844327182937697662469069772572064210461716551461586393551759880648145070051195693982833607721941414080908929380382142374523907450048385102859471324721947752403196149098298376484315263878490594025674534413579162901969248542106946952982525998541642821571482021507387510095124628540146573670966789637840614515616970158585390869137219973606453942900575066485009858408833604267750621471302694229855974343207269969582730616537838354008132347462198546315313121882506964355637757212955747687974537800744080503485427150137141027931008509175816868394840683708472087452826036664540183016902413151812918371915974061015296118475073527703379134704740904619117361029858083682612102018702725074986311325985326154343344881625190588359795475291632507264772052860089466919073318475923436032139781305701055042235212813089133658122976890868228119777904682002205097434698217598079321699551957618188742012818009914600183699318094806229237478967410879552871172582720478586431237048877466424170719601618160833675743866837955655806300714968273271240836783336411708800392541266550472157216732607793864645610554191021411307874842152038550832467808414940118072887647825070336587070050471858680657692990376328834931048365521349104212435963299250561741428144398763183472153803691116677464431599828176223851079768739949028041927526008249689910954727567810746035434892350883381212097541996795029597509654380067258760027705830276438718602931310609610034713875181790686369066160516049108897408663683013834435603301619651270881080625731967971442206325251235451255666581120762475598903628728262799432519522261913734577272814933843482571669857355635819000052444468986973562979959955871641297665132217623032366728995354036009107747280854446910785074330414448714550318171433511441128716441704850229279495987600140314078252791751875013948769988780512569310389047422258999410817037164186838224152367002076428722227246173072206455555247663280554989520047201068648160481257545784480468429415084933061532322746266499079520566561180809393477514079180196089244723976180817723816399289181136646913779907071621699385347114383446687916894075174956118825649723929934982908611334435348029895798476795598364658834324571668325223043944104280499848744403099185344936438367524553036121892167047137925419518810345118425115419737862214069624881784271789312083916749540054560335288826568216939912585597137978366623922100221845615692007425118368394021958985839198116519998878240017009768703430621037518449492711611599735548083047456219489094074936765570754133961794294522555113027011223982193785721994037996539365922524915487002445249764008930173327406717795238309107004612304433043745616512111997100435399312903950649972183081538541418261078493013893844393675486709096063945837066667467338759782725912713500601871544299163690115227508805653825868423374497823979178306874142048849290125366406659777462762956199512199470878729281853147457914496081417593326994274645273692838398189603726377518949754571714329521783714935816322264809842828218545040397429711302061284320929675758058895990459750482330603436126711715897122514913061674147935694554998326694261795449380568908440240573556102762403437753031502450561855289109205958492664371591034075902460952408366451920041526398519249951605885632889785644852139989347693065134447989592237025628743453571337248572731052398943396173622976812458502247400486238782775105159615771924815263873988188985447830222823916567824278763026981967478049539098572252956930393153593243297956608419467949301059988078850891948159666549927777843650216632338267170137543254367476672851889881204222638374658125166856510354191616728837570794487890714641731802645535868765495566994086518002082771502157751238700934265217650125583130927698181704796565868253268536567324315569809040377688544174288652518158442891503023946057294754781718181794602971292872699788188229806052897853997825576540887709381314952757669827954297361875642824354799105688171738361317936059497303767283030164047155424181516881978592620642720464950746797650025521504182121022924128991857385043734224174079755099056534252651792532036451711650757667753678979183440964051089287964084839218397140983933299930385975316352740821210018158268245426325577739730700664170221080148865824889530647660785116639261065890396363714810225251587597416786151074490376199644478910024761987130057901001783428732337111708292483237317912482484549417301398526381573760960676182834783273198399960665336754081794303258988138639611670915201251739932201445219077547373314154348148804054886127017692029035409068168342501859858723349637338833472454555288713562129861457770356773266642987072957479826751226068119495002116756167466213688015175388076749162049520311505324610824905304737676777116441817801382453707325009331692269974343690771733764894939351622172763019054286641320298465445044317778391950568898839092663983512144067776144423232072317119286215430615122882348087909894654904629044245327006537484579734892487527141876733784829487058931953876801031452383839333410668882501908930852400900693398960377626521425614512266299126959696303201647200636232215459884416709327704165954224596156318637035190061910981951960059348050563262818484820980681598679133264663299698339723369833280560455354595099984408433687158515271314215219205255501879123098036617505895614102135473327962635363961694917219771650494565202925756884451267517602151424987663319220272804062264013871852623595241398850161593261518359452412129537493167420771590971038204349404503134935425928323542029650278707535907579038269636339833155100785205936286172386499726324700040395528057521185355454036318762210720210672666749397632546865807062743239335271864692321977342772141718204618858833875500736225318793241826948569967793062520672215293354166881990821681664978450932313498352995978065290565304171412367073457030349835685483055577860193287131695812541353718837830253411174330397536293921147070289090011085228309232733521474004610234168607386372857578524371289031528511579954016702452462292687508568125919473652969902793080283775623418362825216026908670304504065385854094265411254664018816440851828528415668470415411626906183661533638151420459149271066260427168434388692928056688773799759531214660817011946818889646157221555073787987064680354881647364123928224876964321076519492848990460740905307216281871732939073163193148044073595809966567198721466263308002056207571584397577903249520646897374086446254029052123756590046756962179288020420972563307587885672278291160022561919528395901641950909479098679673204732665642881414813287573078846152959296714061866585600694245484682672962715516653770514851142341649495141368135164988646873127797246171381848376267534408555298698035069776106281472795988153681296455190254044102877870234739883644135727129172130491347515473295631472075655617835928852796487527074627732069656830548861635903271128621453960236386846141261091683750214631763775362432886726312784348356535765157150135155254985911398124230229495458120905758422987301028895689690365178035990621447433804279028146838534320453709082843789912847689964313236959942819825644346479098760207917685446416943064069596948932613278803691445244335194085860634244370222735491972577363420610110430969101757915711197258340838301255797083485325254327015403485372898816972946526543000077095444584761111820327716089675271221631633875516537854422760219504019836791364603989793833214171701216947930424680283543772782104033004650595707891447542487526175976390422496441769348823178165190991903119116734713235863753272987615880055751817439563609912928911741902964074025409706447138988236364714950750392758613128449459652271739026165339783291399309205768462955467550502057212861622474620945764992644161958989299330901820297331263688892417892863829658377375974709049185784030463604228193247225637700242461525363219473493235325084792072509263431326402046445589344379409976318052115410423086727166957881334168399388917124501142705367937411087772823654578972757877695604244658641224105732787699004230266317278933288474351401922206146122517608657806090286199145048562412028143439472324965693058770373949705066274510073987468127509335685913610923586206555180724251420465979095069342355424337651732004300125178954365189435108279641732583521555314528568869038162560524318355751110296821034754567109907479349345416554047318537514325989564268117801974632949956315499886448751551418909094506327701133897204718573291857743552290056282511819010971958857834781692728713591723280659400345921313700435295220386978998638059744931619989707019299489231803039347873181204462026536281705698555235625818168336550415402512160409092358944884026830916001307865972230306157653882304163819749180338126266845492794086285796930395262824671926743770895416060521645783876215061363446784178461580413583428491411003851046423751317394452558573635344060895436525296304937999604874231025372165729260983441535749583163257527758812541690458343781507067977093358785614599507524100033161888985209541733592954172623757781754425834807877698984114323846679199134035398107976983288218216622928983933912458034242436045116574293654260638101998984218260571664315052921262904777732169817454754812692785032371277832417367532749175942775749495493890656136230173613011906645644192980795301827672008615421691692475688408823564931855903882666256942700396590349558344550888217839197104107891503086623163830973263015441501898979060535202295294312771074141566688688354703776084509775582896476708650245191830911907683151063175118663990138415842085539122284375060855664140652894525706573628693792223258556451706686154607948819729817618434566340786851606759090089180737584073671019042241829296692129352815651470082816908006086898219789945473459025380757321680457426304634048932806266558571067797938189289727567439545416399669779005002082413176015210858202246780105615788871783518811117184225289236884629801173976227297217603260151857218145377045158776064324985969797173167576725764165333094400056358870045957064831357794336816943474391281980826633181024502397933347860804442911692910681724991890829930803506485790774714377009192303843294801275143408974190932241840313554946100144059719872657602509661259786507340156540008329058920882265116118834453813423955497668387615505910007395240828813309817537056545676130634669878938956077337272286646436997466576532671073712334549659899193217126880358872434250273362630793186843401220648033266499925749469261893326840229446154537642603328160013878698846784094034021727699143933289465366254954525931511149880421751016377655898285943709897345223711284891270320943530617717993005175084468301303125344239278940730477863481354110786359981721010098478409552336120310267170590351831735390985123030898976127893257578089032374146203949108823705534263575205526353912450894256027494099685178742505453813067229899710301239767685958539059774250625805014105228194195311720883963531875009931042495440432256956456920161983424678906338949742978691841306475783692342146529425004489824319659968926588995214059428805095873540246407062427783970207686558109429905774668441691824722759267093331409616249124847204777238550227074490223424069124816562139083152096109971656748110815894186856149958119994783719720744649038721426593078113300623849005202138935233459585251678887045016049557980315686327268347870641400057342854402129407826471593487757067815858733470598698250070381959310934473326177016792369968971174502058554473920222245310711961432644530177997047353664782050791416756337969866370122566714901050095430752730733053114926572066015633860576983997805401729336300132145897775897612440758315670853614570139183666077690725004822729341002334753360551524341763590381068471215718962845660966407327051252781022314797035235752937777928012403318715108641572580732012029589123437249286569867723027328199022454678141369270512064170520999845186225715595995913282117385400436290812760491306032217000911936220344678697021843386694744416356987795361915013884144452961084508348229039404058427545739953719623997952891681611217126111833722412175843016193281821355405627390463284882376593596030333416696256915274288043971557796958723631051880335781267019996652212772882020799271555962655792062503800646357278377646648715215239506242171517290313032579428527969039278965770225117082511677229552061484700018614773207781795703240096286100561019243282244868277874926719170328488106843699088423535312520636336186933549897169568943579486983182292714352691904816892487307031439194262937255595258617352106565661238007080764171801397814315422693180311588433931467145600850930029310682780617973301837202245537015698143363290185466356084636362385541331032005343772127604135490740155481174708062703996545114599919295925532973603503944944795578956644561357252843413374463621287536613046138241590200686769509404896411667861338864232739114177830712071225496428586211811362491439101514518160435443487170394881066794177540533471155385709526361277987402026248607046874506137756198342289859834120497164329646673406416162610145756641978962252096033332950296746068300505745820843075438915286195011917963842435506857642186362548554280154822978760466604428758399095842061398542486967195010621075850259731743687039156977168116305895800071392580745912055660361760016072097640931897368551887702631267862979804100333634731313583620395380854827870625574553128874650991113652575507923615109307397989310233022049806761129022221848345837627993575329355574655822183900251871519092655323915508900310895142734724789576909716698241484860044902026381409066538955957717105894591178585887443781697268553931724610594798764282390140987525565744794041600824975465493627560544095096054440446633722535907058795476286150225888248473102135533342373134329775873845729245133442903756300892319856892105406831699027180093028761992104484038025725917349250956846841509325931855625062364864775694136487688785573979722209199281986629717904645394820082824162175695572453768813894338332534097263076124019093874935787276998256390793716211646625469325827930243768997310776748244219362223109856278869648439833763988649545023343770485362261296760419494737752933020315106280189529737140938555896444876383924702687596745286863099634840810517673080189773895760274375095741969299911519067141688991864057577855040481425147051304876414880321693461365273051805350200960811473955676021397254670323568237859761009488322972308159682149721768027343986674059044400602420747177192742755571766901925957924670365274288263945135493585748274045030794877858738478625470352483248194745319081349704854909544503800877968886400755310635992814658951585360973120727064922287399057639017608399769577137234886191220109682780440272943628693535876003393803684518128141300398487741175351685344279710712424846693593808035364568894862203815568351138310190239305373112055457877498420035741378767149992491842949879106666214512076178891242044758552841273844252167343045119793110312150815625216689771605793960259648969776395174058695959597614205379399159201165076193533998809854477051367859062286821985449031468421495179097252013364243994811996036873059655532042636352614966573461218732587498554954941049057774393661301277522467290952115874572430966876237761168568702559297457660482105515284590431391982432498005897002909089013850583998586365617885196437781653486908874415587530434769303066901538129752561288919664574499834399789325551529984166602412569486599113289960596228454110623225634000663816354869370716761939019244153684534119249694716112639317694509325763332994870185152937470855207361636372480050836270115874569322633712442772838655685817266933256912278990296041026322663678831410392970659228206241985435167552392664550008686203723967999062109681283093160448313918868434200091248693566929109916488024095531027349951307152344320520732463454531011674519096555747985611665637992897545767748801721556765061513154853938381781240665915093797033338973028068607346473840488410137536741250523654027490666395998233948229278158007039514357882068264199833383425993753896971695896617900768954520601845130297354321816336142951957321848204316578630884798945376458353996929224771828234960089046932787543544912539811555611534335543131513418351551492216796045917440100698580404662447129075961581377998146422704018203670928406459546420696565672205935664338323658269704755814909431607599170897345855292527604673140640387930376177309394972569120529283287162402758386944517158037753347854481768878879772707141370666869330620975843609298341792516302570263823631123259186239273728162084936216894753394396219674052568989571592229222896384685365187125506898154400202615018663057651152342472649566365078829057451891907529419655878312122885082185888233557871816645656604126998379962416988114945542266856082641713296332338612698429401039470272650012316380427814010987829149092535703903321259335692797095630187095987862452266158572987996826739285322961668693553019837250863347520016415800943768566742788169076441039006649209121463604680431568477546300737049243940394340184161822046477944235302138149927516040310361407076678712636792433611341418569733652667679297970508133868000212681725137014209665570554814956791035801113260301967699763453714037423861433833513114939012814276751022662471116021145320447117572213662917665889420469938119672115136587900041582415611077438417405119248387471815933997049894688614666240635195244403331402415356835650678458216586777710568091779343995621381821862429518119846438505790869922383629064491237877443415607121696893190765451296635961177609511916180743339612497327875623587246928192697636131955645293989633886644267594930875498634214684052211589447361249720287626830453866401903580453944154799706617913749656623039262339456803650147622788859055417400618781890795974855845841431784086844230971553858229324981326789808712491868101895013302868259121637759888894882977663858804832593133177497159815637920910060947556118910807616460555991105900440583357149747671203836550574110453502621766333560653308617857733121953107546912459532430990030870562493771905960906734494215153866247625406186401965384261318953017967242762461048417055743752965972962022973315068993172911231079297736190132021501015940560284966973462936313270546916051412797174913633304614166703399701590451197742416586324965070912795932536622358129774656040792279172232345856628756815654435956322681321002149667658026920586468940098599419582793946839962561858688902796374075527191876900087503265120240641013499975976832029573027941296187428564571016160038904983996958128835032895121331547036539677600609765250507455732587405510672319446957692116302737646872643473404054474269679072106923520745614207962673718397960996284841430350873678234600235324106254230155401421086749466846404407604342390784593307858786501131894519646321078616661308063842203436343473715722273085149269152925591437139031916543913626199600012854074884366514666103354740147285161553459038099052486334397316109090299929780708408700295875465696724207405364688159583388525165993894946722013751586854631497393093309102487847513514895421386752168693119919740488113663284012846765489958027676981537079636459066769969018710460721875731696134070841541487632963910399601183576931742630241982958855465601349991401622549845482947086139307034159466357902635403527739626855048576113779340946492061890442138554455098053674928371476021141190241348289445055130514910325623309249944639438189952539177621162041512745756554632975781920028882650660513037716479061030779663221383910892833914963926649310564213563576461322305910688195551113142004390534616292186339543557310545387654034991665968765226524545038088139217735341450293755265439584656011613088039535387342427921669666103175453480201017409356913434697476952264807031888779199083202465055987951389104832486087357514528337831608430000776512744648532588436014884104269103087836602607782120336907841725558676954078108548894379989689806091539053877701829753802128287961810419008932686111516238758692819959197774679493009221679325297256509212694468005849325366525310008342973612773304566355217504332239206116686450593715847974339701678459763402212270671645590595621773328075307550073169381387824445296787657643846840055643673324447807631734215933243298952466802224582020682744585330435850286320245885706656489322568169647898240159786542375584251824278904817381655721304629521125787321174304665580496038069692941086122136420977735622306164339571401728610047567925326127024189444066253942051942666841421816584426337106591633766181411606548342805664259830549712235066593252138802330351183645190360347664566757625904421192835871394278778106789533590555144804731462888039521870682933710574100836943230754027225007038478254200925357131184825566862862546306606906484599871425143637399861613459539478180625858839167249151296311877957621779273723109091326462378383850670802993001473432180854629467259444815660542107477548291634544697261061593909485965039065840399768287803641181362983622858591172451984535456782445394363871663639663399564565135508251169303668548285355056050565196328522397408068432809782525986387577724828296021512975620992356820108139327659499467350517890788518176006417331576621304438562048756950913154730083228171570876603030011657301525494988627572773886448715438364391559673664575319079740306700117670494912888519898339358154663537025921851777034841744054981846024915679750904682107435247286566393758002608298940234027965695137626626772369008688872521407269200563824431734866927374542912124062422042773346489060538425193641922758424352996373191767543766914856516341345675173883406114322720937195602971824938627660703656543222622467927457548136685650279048682182186389502594949521994630796617835769775478708279896066715807281891134396842271657334114841729898371549839370315415321635597100688181724863618000797145604398861158890672222056215994907008334940681378447933117953592446107600170630305838156070362486305751076359264087405493532696661334068862695132461952393518848933209145706539003014242539122667637258179164791756086423125985361045774787618436793072114734907066791404615824129163353344581954562122884103576527135741282230645170671754892380815408245510056560225428672424298977999276580195288755562924206781192285683008828748832963628664613096530677964795448972004794986936117311124352323446110254874991363755347947279747623259900142065308163128361392765776274387307181934173615522241814800435539810549396912483806038547786673859505985324861793210002733759093844768173873011889309261063311323927989332321761143750317348596777645176543301713546731223011704100262957106278633103528159182072716024046160833717842619838187927119348016350994234941366576368616093439297766789349135223493563787926812965821196910530183191456447825882967762937216819001860340437214435640245299569766637108523912955611684189626499640289157671208512154508360527624501906762392846232665348326067238912681608368735452924090287155394590168959416240863131463987338995505559399649359517422304621236340923084572581214622714824174152804735950862363785788887671234530846541473720701054345305912671779551912452428353909317739492404666823409309160458183616189819010830369946796113442399967064983130737570971550822993112935339671751614406541279728751792520584901554141139023781187170590840014657235062522154476630823144131494887829684012353810967538717745778461156612334796122568694426561063493594853568007951342950522062577295389330059470820890915340539865551867944725957344558044057107876685912423147545691730849814937554537455521956206242173305122846397345609399419963723910486282267793689574419256280562525202692931882679414360620541095222022050409511366353114752193243596947478860651962089998373054134728166935113926451467993763697027279219800028975096402258751098070583875342967121106743929441992297245362314152176813307698629514560001774717050909910284129467095590394795783882872214078383033043802773247878431432840883773015242324072669185247841657800893734407031320800537224864872486107104579343973157240733566580138453696759150899540171553827946719182045115409463426003672795834958543408774302257933600665316629141179818693378254893540161938765596872830681568378712615283626258585980053793282071200309060281408407853499196688380349158996290724282380379861905772796558704309936224659681434620956034275418503315979598392158522779817085150588105628493769458383113855138434414367728874713286492911347184004374823975796546279133849283486764017958156014526696656796799436951894721590221694647663603404336856570315277982266577842892272586661678247973975549965713442275297033762877327042384974046058641609722483498232994472770530201512028735016189796870572937693622456465531113244323204989487154114577134565399670910521538114503594608890938325944415856652790587998814113739296772141845760760552817585996710733943261003643501840629165810518310893824170092271537123708538160438493822311345368373187562016949981401831650562496545534421500014576928274978240278857368101205052521448963057781196080508593881482559593611471835393456859415335483117077491530419058628085269271552585325017222110244288374008673507051311963100320169485282214211306478122356510347589966807073797475562150374298416731786492247925148955834532669052133587452184265817820660521886362820489709692261415427154065395418275806191153718628170446680812814698106056736080810684066942900487285640907979750582187476277330351614879255217134942645063585375479840024625691077720507013443407098176321472163059819136797846918941570098852132220405964191285667131682906141960628544306310841813573650901473423207360601650923133455876722060472596800164399022814317133940534303287137466962493052623308705520367269112801795869568891349732874079599351545263441472286326003993652861244196868807916866903483899632489586297825695407423425105473349199778918459875645786839075236771524970664144103321403039694612583166421128062148815250337980905269290278017510538140932552669160868928235458551910091763647792066144215533870268654138982929599997089518832967236216301131673012715336672301569224470354344833376036532279780970686862376686502245403202178510131655850360751125095462895519495510226575433486723127064759029187981930423041899839269622877680612982823832061310251164753271931485258752429661228038375560454977226945389700403373349629280295956981925806691816958778744027704955209046084422859797744062141890317938195595021664609718646895612978574745681150214167127425001423069156755813566625598222023023536534712085930868333781571239022884771463570068533480030306302596220761359402954907669907694485254849439589576126131829812830707115612504044224016210494440594295705060167530032357199143854762876603721567669042283407226236860366078106486319677415038439125034852904205038282169203114913370835288153077879131196601641575957340205308626002814680980340164943674093834865009537115121886236074411277962887367171812587231983942544562427899289105806562913647800264074027298672522619908112695257128339266837764006371948817478567395858076827394429422953036369089525332019900677661707739737038175352922917285170338150053799782061069220014629881062512911904332962863566689541033502755448659271348931156880706065824097010515647326905431160711784762541971700237877741201194787016325751714847468672243008432208218002893454218867730852020849481856561434795637904378865198815601077798231302883716830498194150659889050598495980215206666407157624029716373984513835436487559627095092904870546378292606335795616628801483851054062801715120620203721950305239273555135016327403746191342493532917803546401966310561819406969029640910096679972141778751808991851028694817574644912308822936026619738750540252416084618614496206648832704067449175766714790783040990827513059474130220644277963889215507235287564152674438766332157228907506153916132496931715585651583178718366130131190213988535527681400395668178280504415675829744670806892162925547888253129667516523923315360311202788152481031382954783952331389321875826006022649779098970606280873806575197840785906366226305440164703495714099324679648824128024476752250802756346655527058154182418862443178699023814902600372005082453149769266934458092552834344081718677124710886260438150885652030547146620672732556274922004228765815809180094823957092332476394361751494144961635959638240605889072528581789705571181453925318349035718970890222015676373693836008109084641355774979810173455293935612522252650461969460435169926639510705902745135880215928736092061118614417242141908273552493784115207690879871191030572623826058674858972638154445836090656067303795773641744272322109062838450424563992144920527966107985439757312845229510057686080833465758755111524109038657545958629670333756611000867868774843562425914282104071771176205780724633763766399723461642942381126747808159761702848242241856676325093890221399290988838288907866588513199222324299746571912362147221070983607520158964347929467562970930465829235912037170770767322498397251901222915954438946663054115781070033175800183640099255954704129833651292189663049120805673940812635831793431140721431110785377238528652915517040293433873198248894870869170026760723573041030735800362746690445894504364837757644392118613547618629187831674327636449633165275579459247898182496449970790560357296201843424949732937987928228385963933504205830543882528575898495018029519419984323970002023525670274293416484895717169430363899709503817301767885929458418537076621642217387799280198689590881911606216477730266779655411638386565286772367330359236911580940900116093667132881750423799264695659056820112857143438579094172786826674314989723057440361110243731421349900896322384919819453482840999176782433071925766855198436181685248872876690967980695160472192963883488988797766962944701016458743382501995456702494318883373091612587586614668897009285200708256469866757799963143460792143416261221859364863446575678282805489978686837951500173214118260853086227850093848201158648729048344287723657479884625178166593950453686519185139947367248238105262762733128385793514267035492409188823174327948296026926364122754222229283572761155887888125886169762813321843118375185732279616348569580406248295639818279927588968877881330075888645724671801613001927423972124558268946943973776526384302199695737679169010041599862243611476118751525158240639789560409613197752346884696190649778649998207406629168611306503817206655638084246894777950980824390326978043874920349956420458807274934082216974820361556821384998294788339294915540935503844464934656969747260137481794283556365882757328810448654979232902294686620693444020518470364499382770094370032119033946550564028691727746868901801060982434447747725177891672896011291990464444079680383713843024646141310485514206806292079349576056962574232753482528098363586935721568910161050142036684679536805031209679859278707434293113988154218874109108331601914083525985191681138516598714544310054279961910011080835752593847151995980284510085526577921911420934749983481807366508484691882708285671408017359900038968908250389241053586751700841370542588195698673132746642488802626832146010509624495293930700885723600364037725125081740909225986707213569778106748418425042905117379072385127758809179414838416265008347698613734006835145036741050968559461977124435287415938757312076003008250788408206332283805518879566181030579988299189255056656538145662366307387168367676281472930399556378889855124783957120210857462219899403817901329564617614289100715296521336078152520590684353587593000555129974528881465812208252790456503288087299149535124611675887651117614339801334938959888909421085048328824274383588649786873865118481578067007230088672366407042862977950459197899948291418175040178118660103621378955968474995198433557316912884531438815484821522632822617798667333387438427181636685801921404702534668262839399813394400591994660843688296885010378558387168286671195129492716015028685032057424392677225696783487981100309944315892740137120779863895094257659236683793568280443826658396046317441445875941801084248992023043435961479752236166845401708831469645990457172168256459530954658711283620025424028396620621666223640503659356108075251314019979515726856219987021994593393072093962689189030485123597125748698511890602365401529399605523569592303618618540924683121371002164548524720741255539967594436118344442606229294046242140981673425715376560163861275601285230527879754719952892231270547026439610221372543814769416249110528248121016388051143639286661219049737081920837583943450513502276752109209006475744148680405868851236729917110200157077700819031144554446716152879004645318775997995888404339217640774488973896438305317988483927537759940164682820173954547249366446886480299154401837844868374276503251350364414868493264983297375824603583456384218396764475227329297876559040140723256703901170093073006487456584105255623239103856082912812648164197942135358953963389860363082771722287211205264990805785251069209871840333462547867611857522102133887638024702500561642421525759371782152171886928351610017705695131359775532751934638292678856898879442533867715916583199315364050211027470317858074920046980728926780452233668295737463765124527649038867989771749840611907026804297537422432850296799267090124718166422326801295080755126920427896955180858582686424737869888682196501889115550246129358127664943356860857099918752633295808321994002847832423797126551943697948076941632617225080805766797147170269815149058140311319559648213851213681809977723694665044369447921535847060895620337681220076438043366163502334171681673557039417906672227532900903805578956807165445797351460309011717062179078273227954386058732944090289447965578843512264854573599768792263227107886595569522259057570963417232151035538698283446689622648464386101926291229451296185980637658382457556309258822147016870292077086177632100540117267895565771426208464287958387546354914484269845047967878458817039594262660186413544766887297996714200728434659046502536553481822436054862677529470092920228582393957803340395046168383029483850983932383592518846438756498074785137406715458737076177048073198817424386398933554745659976730125017915660528656621091201255548745773733629972311779567284030840110227979142113673093512955181690869756155876142134225564087614029146122444889212146276627466678421982188156811493437276954853093148059829254837266016917192650521050529056064109211237214509150732921952178974162069465713341999137729211470692876644533475229452264798910707264979766704064749485603802144437871426945370430396449331370533983506250504255351235029033281541659383335410927925273555213742974953465187029367825241597024742113164436883051375556247878088907456202362080953887876361489781098079198315569822382360084559739911265617352339771952014794530796189589921063449028882394513125982435302896751807141754753419827090094414507155772381087209153654717389653908869843900244413551201505243148873026691785605276348584535161294095751646562575452007485393649015784587680238305967015677232027424315614347429974183296714650144248022055414886763156044636799540099615996181740288111429767282420520261895896493686000855077743722434241989801404888284000264085356577534312871619434658837779209675104024124494934621863833114904141061196159612439071559224977751781796937739486415793756939777172405923455694825851908976438778945690672793554689413351150872327053316491921563453379717275312217253556629168873433399718647560404472382053928432643596592181392799180885899822651438016731964662251482335599300140299092470583111165961976473398713173367743221610950603011046710790698396354572327070029325887743427454075024964971156599181879175259382784105023532226582731192607708177790163855631915319034003521206676913176451421662238495063268548177047837114262068315619753357922462124209706783348341471174546544166799985531044638189104130488060077499779119641317975032349414472764299474990104986701648980267873720127510675948024035224700164837925030738607513764396985583153474004368658726690158573132882378947451176882822216911735423348660623455569943879272557238468918363931388968735743474227869554337451226873456262116524608702232456632890583442731448640909984478142111517152285382702493447834851910497682206949972827551486158945063929062046774356102227832512909546358005808678294979533279974556715409537519567715587897164344373534351000953903038201416604166950628967182766104293461402354556040025272134520006431839662061639349745738079818879795829517462953307457961194721837493856439587235360423956543407272887736946129388322893980253439716673562765755688178933179629631665626762678384844446795541317393052462310851084814800619662462302510434159018208639637795753029846262301588424351132338594902247347730336896341076733400255601502398511814631118226195418080952508432214441424325686893834645168816785819099216963060157105201942907007125835150203253222757088678385177746319308201930612432930735320639124716361582721951488359625557484930457281503341502847844329672388573321414671722767407588355787497644336564150703142339310359204677788945889402003152765524415233297263382433946804015664887888615331660979664158455006942453308921605101530729006924779282394479323352727385483755402498451722609770324108684851847685799742536872350815407073545741627835167460609880818084626509544239313114657664196668349568507421377571793719220906112341162671329904095100604313249518433441015373770603856472504603850323420985782090526313883058753100302088496837889344086825307094486847918924561388095426154016968244373276919269611722916944939710582674987247176075294202899420256934429515367639853863094794271371787842615251290554748361002638409382102813884481908006789510064382134615387340697936089156471866639895580497082218907916370161836621826759928521113721891674294670788784201930403402469325065438307373392246304905209436392896466154730035898346694677136926196113547461113937086342334534983288656062637863257203780278533288656699927097874519038280624075040210967054721259864971312914411086193636464504061172602039132260435714699617882780606684833972854213652611687401075096318149871864266194079596017662787263897554609489801086522811043700251637687784851873802342840218241698545704801033100058009448866317354189907888281152624197915374432131207518989536407918278828011068741607154706096678203410344943606466301544874731184618380143339920545425842895534936472589553203678357360475735084655955071086495950603017829028603771507163414034415165372321450833788123431854451917773761197498305656475239754296153943214977540705110052285155278666013410367167636487591699129499178817139289672409160736462675042250052018127078183395659663276717016456729680416032538869873322458587910125790116359802089748090449154739358458561164638015211714047110205604471275400371202255123938429933428224849375733646843508737126758239751530189474888236633527082030511284491848315075406618882761098464658358281298702279859491309196363197688423866574314024666663685453944394652658666731316916137605948906565659591893118796483447476307980934009763150603749767081323187569545429705150560138674204867599674543856700355395373877570306329635308379219890092346482676616186445919854512469370082388351227830078240996510062315452848457940489974048891185700558462344495373905116731000974015439852251311701707971993062410205474687736448294778123579472771196476028882704314845579246810507743379838611180465849652595404530555101329070385493063892920761014404655499607208280262103307402234606462297432335639396093117222596306671426766202170338572757342226379573080742567656108114422289753535297451085516942639738861598150635896019648423667279569289720772216610659843356413631683665747008054474423372321946269006894695543138613202100401441194585512372353179471181210054960834859931050116774156491703305625325636756624953680829094710753844396005396843295520235168582159875338626042655792860352212049319215649553255570644146571961637612021386321876399278097744126748129142878786787074548790158222254794557660885273270365702969801171416059001196249694376631719818255892225978535979764194391623189851534599794662534303139778327994110243867452603283192578831351299290412042593856260569270823363398220954370648378152906747686380649864465036525136491644972364395146875790244921400821249026342669800724942601717930824681095068145144960132907796328206581644227984268955484520397053948693221602356566313355775073547158591650082306166808443967733416477935831468983125088866639252345996050736742934680894054294520227288375561607999469930919946678546448647782983652166900913789810854082768337875027849377912029503865352749862232548876965984566083553432156367025187476292798174496292312437354816010338351497263578796257627167577971686845987410322452285279276435319210140913266653113114951513347639382796777097710126212820826198679146182306464501398817698446596010786957810583913645939495281682417430527997199102147257315593059787999546477258935203226850225864418261808195171363629166801848393464251045457598356156962527324080108446421860424468231169552135893201982975756063058209334173125652438773380290241101807071359777884021230341046715472220359033657991305743732030268815760708005236093479218934642573822080352100556397860656672834764025942220743662581312261944979308660543000159381600181745354810905118093637536889016098182824826592670482299654224971427679619677124481521440805568944475711447587047228145002078446214855605023887131120157363301873818101120208264577129440837302965027224236860947848576866832926724138260614797878651481084683650217345314418371844547699514612809485039568139016409741239809599607154921798826405446036701220254647670583048965894918915307039928934439044906289714568638533848055709846233993352021429614325605532780222005031044132291617654710417741955822923174143830623894174762069687508318542119742422287071149794829085494372795411041884707337010337505092848470907210247446352758409464329935794199322462004949587926858920913927168955769586840113540888619428589593626338862003086099414692739557159154695013460149859763044413849119581165942460267612056325579147315356882712092077755447942398550087089954872768328396528103967008356519130669398389391254367767879804409281871650108670482532324851763067790401473817901612448555276133751231876379298187529107347768865596990390324589476602670353700214510975368595992236867954982579891070350427168975156946389369962656995436858180363564477252934356172324298818367693101792884831623370863561157956368423155697082078005897116971978323213769966820155535783613743803289777267305477429655188085055453241151139668128183700633546790125828800884390798034821031753961669281968683604886122472107530916100241200453796171838661235787469494573458928760919881070168099561634943745952089195710119945238956572042340456144730741120406426578597335506215220346428318155384677091999614096545978302355392163926812406381691918931952979382351549742257850748760071859219252581577151435394628746141196051882737869779428633889532818667075639363455016874285377184535102408585637253455600704998335543638942634449712642966980147007629379521772642810380823535777765337201794768476014066632728631607682776916045811278136688947723812347801808266841358370188811023880175768867328152162365249137961813413940414528713087033108233552055096509490602538323384007734139035928098805768946729242421284188218158969575013499291711885039701302739191744501227687524573878286375928402393607255772827149903348980444636398178102791790533894228897691035401938710076467611956812035818611691777448316378248730536613741182589981952704833238034837773229059762312042725384697827723449639489587022446399613150536687912978845245238341006407984157949897325328550628671740321006443446755855386381774434954018410209122803307221154639133285946595738529677864075814048316830981300689577954857183140149687155538099889338178889930701187862628393624513911663470825874308163003517840664706589704728371890833852476656254074392303009405913927934762183644655362512001773819281116755507115416701872429153667534868156443640955000697668897002930552306730603181751021800058504554093846087629452774824520971915180739535219533026542971315853515165987104614214516911613129310566137495571238757127475554677310298983785029450383903181458253288838988127804602642481425316785873562410404886997200686170264203369801569732248794676808920317374995774911939204535423705036802901642971965987959305884582656566404434154381097371023744737108779536342288556758252668945398201670701083733039042618491338147779330896884363680573852683954860758739228436131536862048670009985579715209528384560799695197338784346140696550936599591423072919072790989278004087841739391861797563456659351989994086576996553962245205691011142336566388743343459043653288770734141683287492688392279643865637813359103492158731404804681815243016987161073886053089654164352342733689706798814357503088790312353465082880600857199553407096827601536549092818447247976337808117881350764621224189736310363161354089490635555786604983749786956895566160905167038386941038881994499546933245488580453356409086475278351273098886404360734572429605602275286545494546185711746489888468038589086416993738683903771416463799532642556419033249883533578563882881051226798860574809024704032935920223999381658855636799165553999590281599755548337172196728442109365503505109576232299729627379902909249302381684309245881088910765748814477790997006010040237806654387978186461721476860703029303575539327510500232219069494228423590198298397010230848457349034362247935409985972392643191346442961722899386709385770026323017124625164552740630078376050585939830785358906539297393672988411201624052956277055676583783622620246719510116589851680157496254325628971224119736664499755366910510233502885038024216433584226336443483734527519129947777280475355897563370668529849818608588640835547339268797126768841108332306304593480134923754754355878875184768220853131580919462039080872646207743516580439510215780146304127644250704630222461294745882940321970981357436582762484707019390553199541026541513277468646137105537389680138336239886763690164353450942364491087789064109870194782269322219144927095934245265010769359710570398667530554853477958618147717652806370819162462036268403989639050239531493409807241557617586697410846438429705451163205904796195284366353937948996817609098267200262611202814702233986335727181265071548057286644750272887295354643428612800078193381054601320635672144364983058512069950907219012266535794275531214180792750233167876913550623369069165343374037368568683802560538915554532334582362829722431216649118749826628359250387169927452965284466574780160362335948812320188835073624683559727588941272479790671005537370857861872476254481521781200278027131921982847262339985532037673870964514565318640928402790121191239732049414685479521141808368514466158722044141349491494110353998731484160734655411400133520363149676953162237429999499544877818563619763954697299395681513127228074522648479760965411688139880434352940594631645366991227794603044448862584161215501946206578954556893463874595071602488622371120709243986300735034644574005901361108440349965725408384734858444554025074868857769164355833627960380707606506022427678388061407727472872205136044904231813227828030787894028663589004906772790685303389896198953797204531038007619702069845472270571165152434124761710719680262272627734773542238121584213732980812839808316021482999990062065912978762048625026181075924278383506057266597627515385133054968556658897264407970418285014437207256239450265312571811730399826152464881539077922970098978372614380511014278887542114283959080851129888758381270893052848934316851638281553775933010546467660724439858531656444469856652246982914714870191960551482555898174482501887297893292021659937037912844625443147578791217973507892058655852783483939863299562060573981988681576090349051627026005768611129597645479219180611040315896238318187937584987597103897795288135408061601172185192806362784991179047762413724952886680473549592808034351662174098498697134538228953067542381780634210692396609349736870229349183131672907024909098446199984529895969569608409081745666210210960360289657953313680619536265724495699658496697325934360587494275762544474551935080360627823935832970333776888300307972434891009072250702608722194559888607098775177075110792497108723672108853009939104055973665975333289977245842043722456333034231619353732368175739998769304345607087212577636917030300671627809371332169715570162167055508318508502421885503690658294845401981058879271038821376966987144036982376882759987254580584332222626887024268346305812831130548673027498905741847371717678471885912194282578075272966764328527606196307217940848898846993243678270500163100412074919783169852948480853205019735917285757578955564846351437389105189904143276127372455683111070329932245264278071717131086519998201011500131789330696385836882349970828098231716264722980943420769167290758056943765255529419953999946433105782249380956234772549076041608402002535294263820239752497990970283809891285305697077700279521936426557704423436776502097572713036813028141359552755295134695232508316070247058027315911762876528025020244043745767846254343494320733722949551899496769128875226015437137392902486206237202034502919787949546073084096990326746807912884604112768540171056332933197151281212053787660146113293952351365644505768155564480777013535975600638827160390987149668251453847386630016165429287236572165223437243593706423289808630295321836305739662543253713188475102711080751465656985972679624230898493053299542776709525430954711020074942401892490642844163868902184084931025799267684844088071875953170636902870153396603344658450594738688331539879644554985512600353794622602144540151823690403285584835043871995243256562869124945549576845095345602193889141009126475425581438852367651905449965641181788746891151168319299566337275555654731902102157982362085665584275041115332319904383034943588597144154424218017329644306913835920658747202460947631691733086171261335575550564867780076746484613263859360520946012540678164299890072448963532210518890233035738734211262778270416736982579695442110808172746657568159074271471759475616359907908122296175464309554980518800299599404554209301244633942273968279792360699625807671245287033214592575511083270215521382179319162949049934202973081582146853708881135713000429798880060275001118088437563924821986043432051230745736647828737279773413250476144239759404624598415833355323707809257207975121643105666910178299430009460479637588241367137194137542703245600838832567783241575889758239597152315149853055707124038918644163779486102245890781147742786724873556803892054128790976170578536475796506710224949473069382750519853643918926842591497998621711640025177694913975090557388689880247659075884864302097358755070435765566103978136739465769430234631419161012681438851131842449550717943436036054115696840650833178599028859142336151728969114119394244781155453162548872792401509357166276301426616912277705700943902208759175159621715561486381318053582389166892152487374453225373348460208459114777738663415409161831184410849385268902764955860601722655092332700002010773806747537962133040469884184309204262164863936734401982057146458436419823331268918742401684598440048384120280148933792159680127516867623388542159424139576359526987026981899135217479059714937905252893830127149950561899269873942246333251759388998205543778126195442810888559947682020021752008670226848089797289762751342005386687466577679224895465970026511661941494936083969558640136272244015926318410092444853390954483491229198596734424860691168915987059269084621673061032518065782835815263347954079051490232224535130793403079996010156941331943144739968294571705836736821995097283301815645816825504307286783283103444848688957823822603117903191559384557731786240953354720280126719074979999685154791960106542040854012262742855572990085106862543942014034860671628594217116225237952093181929335086562665463371558347784888938311706038264669465068233363013922466077613091580109914425732910468064168465333482391909664525670885602383620626882081929734241928384818433241650126523130322379888997776129542566808435876611203863702651518155877812399784940631242673307074032790966327424597637879376418632653078063898578988928727146895914607723602136979624253972982183501926112769403125690282572563626367306992917625969613702635927315158854613511192285133815263331782156732300509796691054333403174633814054812858540771445592225593680854134307842591604027255767795290350386952931291931444702837592627888374833577192934607310828793250405809681586062574012643941045624780871002511707335135843638477428797241682616732612798416756638211362842894657423698244565911645014755337783908767634248141629035018366030149418086826654077222062299713688095722124117522838024278003923081287354895432521701880078784083844820120437387523746343625001701447457021860350636918225550072007984405344050638450979262844280982709674120038218747349741738769122571431768564530022476233854749133969549440690100465176561687649318256425954915577019678545573808920304588317561528804670756026525528188941156491275528338379133411580825388289473895472734493359406096597093480708419906827108966472129529585365186243435860152335798426158449817085825738452909415651459481181421637077575253305436726237012281523921925482374559059523124784079220060420202988908016476551854677128166422473037604178573629961746717070642299344181497157810865420006474739201809253603701216476536182734785010003994471169272396482186631428133236052094968677906368333644557528615247898264435655358248203441811055971164647287995751106667029685764567434213362524480552152202846206278475874045200849395145834591667712986388253204522932981553496956373163274974502668313449743651592181133092761459401138121960697375203202280648263873263925956762327850931601472348083915329328600491668435645200678347573362670700561618886227256872500630354640616021837993793792220025761432557190169784983437007421587998030601901761978224741269530247440942751160129772867868895341731956129932727403085831764801048005315022833807395479308470304535578329755889323916708077077112405151169081584698406666631436415837684036619437855907730842570300590077339812529573388489306993704025819604995045039762930080081112559694164289910652497422600091299062404175575082333325791012787140810196392862764212403415818482120857392272872446729055740091441699788379194122249570721064120731925273681388056289333300679490744690268309210132843903480126318078021423004615876022609613946833422531976637326162332288139399122737560970046684934537450590603200326719313637375727560152494885660056366503323872693088781503906945961550381206273304510868821016665934415038160989917618141431811497476197862209844047561904721858666349506853709493601581669661074865179330584943379700550684527312817278945102607289764812723201010140481366238472844587452589686769044702490191345119900897218085371543665233343614098457702223792724754218463663842413279634636207220689357928155409602120364979045270517583104864244899020588976445437274387720686329120992486414757187736852560912527457070060831627364439133154588794225513294378403895936943605392918805719346457316644683855176247689135248402050100969450595005517859728876873959962139013649409017594179338751926624080237894134901078843336183528710075630535040811969405309589699375499622927599574140207429153009233822241569627902525892969030265448892069916997603284181831300471469396879464072178789979954387876957895682706018932666563804766844961461618679743386013671394474924473513692326620523807975571236170354511638403809386217061135890072927635936526759078748797216832158222357620212532439345424293566462599442182304405967039218009691278664573075053996875276643306413177206031056865465836168411482752245211410563745771658247503345858006443799013457224814272283907523871160347535231160441377909536628991597362249246744269753341582087905325664563998810819727851258681410977049474027555944788059689936787724262320150809987731998816983562312531969194203510344427020393096649363710063537312223276911480725546621792055078899504874097971285302884934532119379490801043008029630794494635584851838834411099759224363957891594775959992562571387439719007767820471984547524852491578732836378481664547404923017605489187977561654201020554118537206012671806472288967102153186143560773624759837495230680848652193989310685831301044570342579129149768100024415256754761473955594152491227022368685777860989723326061339819383192956555645533459374265399264517467575942300105644327739232273378320833213939651180969795072884519009895529148252148169170570178250601067082893351631613116568209892979550130237150210399525147627251260687099968841046880034647603876067913948886288283816022086084333249187490977911363451449783263283136514021301989904369956711629087909420287774910103736569132450332409109104973067681625474712766520316585523785738347531399505675047833073879640246887542860108151632198035138867843449962643802954726508442661580729368566814865241555886837930392352165383181333975591747182686438772700498696469771048179938221109792287255682271250318149231114152676788135613028071277990698798224497438748418912021556659287698616664404078938084823442822735397625919245331300959787129171986449258363416327452210305698898141230865117088133835719377595214089414473692409395696667472215349757464658395682152817813985781631432397208435788398512196676362149055651143993473544221488579975862336635827153172646502428657985679857078653316597138848600290993207754212028419558808421576392466695230320287166807714707014111105689444266710966596641570819668826764599344728636078164963589722113598739329023205570721748195121495820729421637965693968128224549257145318151360030534238763394096113528820763104562197748174160889256413575229849391860267796566017769086562207631403401871137747439234090685121581716144136369892411816978701388924675645578550977022400118451579765555312672011291488089318252448002661196204174532122188102567808318088311855519758661643564356921595518936218976858087075806628045242316291133321168247526803146283832295494336019771296187518616107286944708969154903891132793846967022701837973149927264597372196760694946554676572649832276210750423377615923379625022992287707431668669501552013034205905337923519471911655997390916006894496526107667926297122761706612881142235575415740889946760093340207945963207702841312999742947798513167548490285376288021985875615079185418304359192009960611541518738289430538190288436746096755375114291010984639503094776697511532128398431279368554174645031901770154960782436627026019677375859990583929149705607184905274493352670259213352755316175806744556652209703481803923397246082437914660016331978456188513828376307198638325059195385864729688608124198154872800552894759941482723157771932339884645323048199582646796527230519063462538283682743089042810760024223026405258663363666288175637074050491819782454163295474567061248530004459518093798471823971488081076132986780887857309915940311346950100502532322885311720724033685200845392205507073193815104904157875534173283230509906459959537877317157060700105441674518919033574071468403266105881375030919240624692352460451534514067790113409285324420137991260394895166169308190951429943033331761820323076369298216396378856757582262637956831496922638910138331835140044173091587817364113506115038163563036891213323208726400652146315480794143688336351448007052607728034810610220337510818995576919802009440865686108731172942095297123717028352773575727437783072096466287707687018760245592339280283822809495227976891840331338502870954819797360610173636952870265373573000606522539432959309516305718256175583262046459708344360134869953147099075250002226827787769531117845463091040152866217670998948745153051003253117927317718674247193334119326855964961937277292145104557804099588701496437351368733260758350970104332874527746428841582798715770449686565282143972686561347607183698808863647263833652150984495292943718580458865844801481737555071726600017647050867882762988117849129816893690697322364992291708632956293489942662849675748771434546324629375542144852643254765200527155140408302547982687365260891097839837258972348545487948504610849080934044380218078382347787068346934362558443819104576127557225412370547170465799568517654630357640509294389278615915014916572568788555027640513646334141209387616145920766111785958206198631065088825685758654255624565212393233906129506449720552570075749166117175445075310676020175880117116999199842345930582207463358341480825997680180459501430419324762165608061290344230131374783491585895760542983152382125608987766620549135892539835422318733771631813951584011483912900546544823516884695775187553681166948053079714423369512113773326327100779097417849428115677645864488457382357923759484360968674844915987833235577037375465530980873592545462389646167013384881259419543135278145789575640516625663780456094040226166831981868255718441528330073123829249108713443081172233113360075719040329344811846474073475826148197480859510509119867515626460689289792306267198204655309718820745486132428151517923485472288883876317769190560789304386296861654361063354598879411184847792622496607224214154869240835281740703490497873146397635713558052578584817138384116776431607013046316861509125176804732584904121348442921486991406806717240852185250374351913329252474891260170007144564460211687610616140749945268782003396954548448364871459333979493154819370260915654305728474596869717414511723665259918098066677145640107243218283219445036252917515980855059705372732491267125210760283196289281330554858297702918556229123464703255643940244867854897758382781028454928094056403887569269983158427138664428656732388833859786619066722116315664579920267254185397039458174059695768241733575843838277970318870098662511929749687144033443376462920718907230143820088899976368955122516967637582261856997084778850671004505746605951718228628291809115489008579197162398094472367825786242392568265252465257121750517217838300462380223545164469766804377615101903908750284387997517716963730096966726696397038382178668606778290806142642468745787646206759324603449092316318795773671935884994711597359369837140858933884814874666096050478860910229161776246664049987542473529460148018320469362366550730201193681249363699048356461141011204885461876826823611236889218533465767885003241845254032116853196295960027594370220516353515969414777268004776399066364689766365478445717979440061419445767575360081047040387696191761492097608099276785807734808885804229420041437947096619432919501566690330475975015826278044768420990750151154606870976805355966569305859275073719301833960074420425316068472323388341249492859772923773455076838011819210527311557145469067423351526061685171521107972359376195322514393769947462138717235268111654060931566916105425183895941533914799310181539138074802582902523087340508904647745190784204350096644137089764752589049807674657031031346982585903951196088089107663365736781523409168183246713801646758082472611811944136077327896685137284680310362896936685532314696413395017276566252315247947701258088752415469439963834280458133896361748285691679480442987277554866644837898795062580828283067357933040078784226868346869514575914127046548961453905638697354157968046217145305802787481529244677099701594375599800757443623974895536566662918096935141330783769006982672978921069374278147585654988081127821523903348923524405707432856890795653673639389345860527744302723444092484434956356727116082100116336487235310758808832366540060542601985410284742068185180742358562469581822836911782904103579117332178036170995383400975691803633776284424654806927073177882762825812465427130199511184615541610153676651400733332167223762076161813491858342332528230402760828845153505642915520490930124816664234675263008034356192150177520812731324491290488348958484185112029541195270459189202465068884588501027030634825113985816122156372430647860177112200318669408840809916331846394581170053707173665632158707523107360366857751994531862976696888685175113982129010651078844121123705743576495125399897218168546377070079124675920302308152942992785013783145969324552869077912185837444894289722020777220643867864612179671930535924836522923064421517599833763572777752258289887580171336019552287734585584686601452864928578300540425054777887508353645348781224132488608164109442760054665158596724563173681388260235842217940097605117821608128927265143200395508710433016397462919843553189173042320571884903495842168476990733962125897649591266393579787020592965947364914073692451037832744813680053293297817617393957868390791110632566013338242722226637662639463994593440582601533364228540659075125712804481741080962317910742043327978665037228902616809825577231423662447890042459904227917127343139257697811356749406099283866707449916287517841487949680650143627364490751157501069012716738655343967497331635369049423168678709400511124823028304345472904606182855782558747042493620659750413060881784801285525384880712656630741724682229162884163365362169412700513419484472989949547558104369432538384843017229778885408782930655683507585028386225963740179083238413199338112778762452564863782322636938613731676941519144845873630733657772248583000357788200324329599786039811444420490758795103667304498007763144235699843716686269564894007729056867513223977734668098167528435074072753598027968451123275711848539139398365907730981252214958083569076578514495675299371265628580773425700355894511632635591739815159746827409666662822911048996338099598204697381751253989691198271856234722196805015224860339636398949033862990135229159594217993116794039626482271295259275000675279195435353430470155777146835781110194691376279582600112799817451814069357028527459147460783201439144801304736004336083777899561103815185129251430380689299591370099782184707023574717949360724333196493250006045347770143390396647145425343367437204748884577527672517891523189015018556469826519953855560890722925465856281245003286018444683582476485570275169264902776596527424521122858431072116197978510585025938313655580689760945527352774133386703567745664484191746086810287753920517919575623323229216457868650126266652709211654119784381514966438894134602335303360675894306571113919217879918290752725685249393266875307806428640627220006435724974221703074340098655974071011395302557067634854550757966232610697643439846210323046434859121142185614286910632890729376919485190752554123032323082421738817691263523367005338350927031879475482088007877523996627057553082589132215937920920872853933710009417156527112295819147714689223795387478698128721619298321286117078172117238089314983731442623949243548794790611881878292567060827936471342476836860831191415641196849622702766903522493644681097910615138528092731421637633694559354246360031938072881499029458848648296014142719015926001580609368847259400308242194690504837887788422219868777090474215821562476987901277786516632492967197564202732769830225576604624645127856196821625236867467945581079290562783161022486743959555703070260253377712264586515154857934886375358461489925531438847480329350542263948456096244263609531167408979356453831401305738731673792777034325695505683534302321331008836160873898685160460862117777364546960232221171151601287131548455552484982741160314900557434583928861662133807264777182528484708440992902976358422954509356634463858760178216848064053775329539739906110488331360691106706191396853925196165563045007688636891497719587335129058685920455146927568547918946234062153404109757630943400881381144631149276704302355675348458618974348353759251118651537225720387029314497945009781775344284816915610728290600014681941333479199886373597954366674464821052173278711851479822917673385811535240631496641141851956398830593542853291728650816327779647520194828396057973361416781292971464918088189069100903579912972761976642297080877327981717776641420155227640096645571215402264147142500713293098324465181963704652936385129058056035284366405871434640822459017187056397417390238999755841925003281061239351208341179895563682171888032343217535096776717105114225258374759744263437552976564353479598710720993655495992016569766863300589850662935887171533237163752181649590895833663057686278934940671164103525958963144222108722728177441720806988465998748976194361385522242182376731231722368289100255019065525199982099605333008928396726972560127185996971895356057689194060496803454047712332777829460398315206952348423667944202715665898121931386500005303939923013599665206699034250918462235160892097831516207677205375520254707221189123788775086993179298589038369529245828690731409093102879492723862372575738790535044690320915526461475895364058000148020255024584819778802915473985569786189181766204531769541915479622378674748894704227092664228502142524508192249573788030459676716274714509831788840269200153895790901511424970328709357324330974880418251779986985098436733585431961432208442836409576069833766014351674305663150572369581568037808619928919468663387903271135265531601011066233245921321389017178088499177809540020790873902312373496067291635074741533983226003769760870709710914738748859393383375524417040898827844176596605931132843618107716625438249605806221642044572010459826009331243521632818321471199895828268311184958010953657934320921976109067947787547090498453222130624297619086038603032370472524981169759734104734692055604248687718293417771832958727627196394660610071039735197894599877393151015897762609418423026939491366686993613168103814760891019099454990593602410717402523541192091561890793244756213293882763908461876303726010092877159330498946145137547871680937491022587176412684498092375417855477552516247951410308310823518890799193991581251230142017535721963324764877391686740793858082223270336379307357551084222214222957016364620977354848204470603731576011364378169862749375238285720329702805872399140153597980736278947838964875635429158820136724024963485116233717088169718809848410771578320954011046558531726414202228181170655489968497512628965897123264462946276586770452699351942775523566389257263623638044201537181469975084339595028264663206194446584194114601738765056527348378137634171521153657073855738894021532330986628501627099626307952703675086403924594130553060340753766396056186558156523880644670221598960298895347309480209921454276013983340680106107319730206983124190231140377921239876910446645946292694435885777556238321255722288457001478755725824629193538375850224846258875320579563625134926838991505925438472358063928005446674730029140463938605207336020100603642693580780954204051973976213536034552503505405844985284048620687130434365140276362225463205681293586080530897499608266254413754049602968416631805004263739254154505167678713087930923467141684599173429838785630786570846272772959017701359926572939911586813658660442130189661803559026170193025569042565535166153799627342173442818720922121792683108623974809043869206486116992175589765080227322863522396558725644141850772833880988548607554153432503398816841707927878786088456998131614999520689044651658387291369452377985898908460702964710787249147974364469985950773218847456023648719880286013128990082755050553528668904640547107851832413538147276084446360019007284109864864079331570603761663756719345535890282447638128825448985876836320540894624974143504547031460281645687365624532595621842956001067420898987334145384210765406610928464565705822213078622760330225761928949486170935049764189421961584873465842854191389896547972493928951046270419580703175169004705661207557564345369895458111382909859267496563145041762771079910115405998081797204043822852880713107175186299978367728013463376245903543397907607479407506405519358378128287406859191566931450964506060273607182697436136443655707241230590002984599334279778563496455035338626101584781339835207692447978106509400938250676494180790603135604270445821962469099820755964694323397954183982280655903425600485219073800465609024055842383510649759207585827742588783881778852088801297120845718002586213099902623759909617424053885838983788228288205662569580769839307988589792952217519424798950626211455609503125321012227846674560021519090761461209411159399374355640163621076943068822164503760483403321539055792896429631685835093311087768183212464803888594494859944045221283868081702938045033252892011139200049511710118034811988562408384131847174698213021217967942129611135250471820606026944864302704970876029074500710657394852394634236168213068945279972445030128032128571991757339001463282366345995250278761662900253165003192482933808064795921935914533691653478140028000107417049601496896755442115617573082437027921744978054206384367797178623472956610903876840798689638774363755911183112533121421765065008530109777630914012159041538463976351175902199499429577407823988458222922061100863878500651428622441519576389350472645600144716458720180124466262971831478403170353483465858579949644833549195551067262562435731125857272874849321841631175997925932132080613549177326896096233425413749487576015917758393049307881718602702406620071701945035901612063587684028583019889912848594269498174194651222670647146707195707513872289186523188877310732275775822687974205843953530218025545986496816812880522112892289991539578590597844960251512725690936016231157091716698428506471103020486382143862647240920445095148321233354706366344934584570813657005798288912379075594505626658891345488358438693642857025829219123708398705100818191763285662236088038463162113547430923288788713698099853088461492117990760117344514194047394124459977664026318476623544342362860488079015633898586382241769960962185357123090804331749982327804821678089456873000652037615472023124646195357068132484307170726842635183671642403843114269586721935711389249983568864158286619251191800458778387808116688031599707429376117326420189703154732216038858697926452290371069920073691950662716705172006625833846051393947670631602462056846508836798754283545441651904260711893792685827962102297133220677607872888101626791472056265124084412561966923063592344075015215588740784662554187426865740885789079184428219017113584114432702947064923850496676450462982459868407483520607919204635908571641949634966094929550130946049325631653522243102087325137027296625200709227456493748995726952002526947292936240695563674154939591900805883779715277081295447710779765941820361694993311128278706833321317118311388810650475896399298426723462216008929159344655078176502974085519145997862322210651952788787804825086135135142559969302818972156880700868383503430949677891160505553470165868577684722102920370658578913239564256666163340848252425441657135104156695117492848012431605403003549092466848856278417254075045863102608276372892393053764758471350225620563537220523016356918572455558804716419195905107382557845627915137453569133863308631415021447836887547485244378087800581040859102081298872631811601636882227592887998753622227033985015194275205631637948932817483404529086215022594144808490328100198170769717097291559573466196309819595205782181901447021718300949546439586071949634460424032680079133309438599793524455836274456211305461323133085475136297023100378292488077699949079586775550744839285565319934671016969994819916535656094253239349549958464637450025109171043669837940353952533093006784199287575052396185923233267504124404194729610358631656123916439702208672771663362827357136116339032929877026445804577461977280253243292181990477960788516764219795631154795860863371501085898946144806643003445389434419756820738159728585983003807278888562786302443845414221847466384685714256266579034695743010508827907317078698471129909141017586753081934616075693385819193034607932121120338608224479663507447739149928062554072388282955737547724352783444321564219688702379850831949545233027667535955082946447854169970319604638457057944468617821201551469465967476568549967839008263406629477079355944587791291016581821982788141702253708427560201158552793728274154879272834872462680151053685505379754392737553566795679707762048878637657040929960456111459226784314273740876498043355238748899611533369611981232253537743530739153626778175939722645093979296607634298507129253602760835975128534514233479740396236810212184742574203568367796319504555697647464241684936703276830039574321319601903864328811263287362090252311237744058683022871676477549717709608904509257926565836478121233381920266531034074739856987478318156971249097898044425147612626422825573023938142679655663841427572900412988414541668885467922158524862933966260565601571259112546157887904905144728223074487165777623085399843124034495001572524238218668907403044512489065104090035700272109771416946401607982002313698282003228901161457171855734686018183767104866863535693638097644015489408135428662093473497586448417461928362242126198643689347048816406850154143624595264388534120283412026424213852051807536768154557201397822354340495982484571837969753171030507256316671860393070732027192286597111869038938986744432755830771927796802106964328357046129789715119913704022074284247668842067682277351821229910988570713858119030235894534574421837626882720667048276535267094352341607898029632744840407321754221539344572216443820249042047113784091091423080187206316159041621938343165828258369314769285998685412805470746962269540353942864511715073647653723523030798093268772579921517593370891241190238801513468439469600009220848152883040193177866792575194083611162113138342730742096622907080239349220425307602673474656624537269325666441002469001393914371540760752422827118047207361702303558184589855940678802961832110785780861550325722148683691125998872842495947878555496168522294857957699697482403987084592991809160175453537492452245769980238190905778716893442011850224367176498150781848549600153881391615244902549047366485416771759488105158232611216074662597255343172941227173608196628135053274682114113763810794892415492133973444047533579953110882672205475420578985201543283501973550095812485347940655678390384221584812108355268318587354164247405906739827187239332003554207448463775890088116206896352592556529659529269714794607201478826684651638174795141025931983845719373762450624007121424191412277892817573518122278533106027017934886247491079889474618074295210114353530619799875525198601997417566750389550361470185712992519998663969450561592309760507701521647672096369297238496685051838608907212061354594471686099795288239513478877466455033419872566922390995542138649988220758967894683711187618377134156832282932542806596366299702351970116433619280508363716093011992171596453282708334041234033588560556356540521592756305285157518441799651419256467630369037086422191985116492844601493762006515715916821128867846482106962953844526308531343448181334969371039732338413942294693874153286402743470099828328885405694142913186392981598384130559948780572436137556523279455766032445551879415286064986207302945978663413215093474757069136153073355002060153522837240897775307212955977864694633638440156619872231556540335593903224110098948052337372227468579192837671247814070716355428785140967490836073023982691840877496109908858786868355361854521185432484452291270187799719599980255245647916118962590496805702699286876866598904799359686419984113677741175827368016427284817244222390105024797899924191084947902562845805391182732183065004153585767217796617866578346350337898439557511765709207461145456961967001596974024075411289975873168491252376449629523137726751724114505100948344715152311607420963413399066489602999396246190568063605212081015063963837237468462627780690336837642423320618524323300999109300632765704184562690381594576316613644899202712462666388714980185803314878893745866821990785461314320228997334630450533947230922924650631160758683265625616264001972257174469410366544275925630281216800924760377000241899986992632430733847115550629604205679997823095321669588874078805751212007508146797317349693695855511559056721684298458626542316301777838771154275860454599725807758247907863754083561263683631057839263655005347936183132970043300170724656052772208543577372807807841718882530705349922295144117821520628655199019876819433265267440253091580652192902027166890322637461876312515076625873603618020855165937926183675092866081610982484649868081940997775025542859815228300632751554083785071574993230891827954196012515018230375148241167759671205868160004073991408125295901962829266861652269531679904462130388435087811837813640301548055309011421547938393363703013784709366515723965580925028015861027103437211032648433057516928403724969003409996273987957728126624387705095892285216818086983854603927838911413783511988491194604658551242270875247271368142949732497826079334730852657663377535174805653831733493489235875454106841038335472932269696007855511340752807642867188419349442002207125423453443855939523624546100166831842619265271124561347490312376332853145146626865099199502248855229748263599354401002218658415789617196123596324600060110465457999280745729004728343935091639352517065469816025971187661061041707513033029560191106311943794933773342074228649925224221790044317684686708298421423621450765583878603377441301758750199411741455379265795116099375999791730203393877334876760611693454338235667759339869257933326251651935680146127760993801994713215274388886239855520267655271061153437394629531126288001321359869689839915275350193903182476276902967517227992880532305905418719403168353396286430379447695007150638148765645236413309081810822243641348311759807045963232290168887416042132315874611419154634484417566067608189281302395504138394278710066234808197405439602567292649333794407803720024937469954807074554672516060496478624056632291726951571896254708176162124660181234993617836410609248232737005344268982175001532089428222373960489737523527633314396318891208955434569247783021053836956311994499117747213631858726360539269335293470530041198430800511782757919916924305209270219065320062711122421935082641129564499680370275609669165232541386101509677995378811011008424944358291693466769069115292143156279218175128131807330164871901155854539588679014554438017531890587613040481565879983688814824584400047150562722755887911135733219455853614131224274474183665084860567953786787580067207455438706451911205302620804645662839057414258537018074066594099354544593929200400390845424521337027417803916679730321582352152122481134924010242138918014077161959807938411198937060949940139308835402879408276377103539441558799739489017136974141919173589607634361306117318741613845725226774814529849509621172342832909638866597262668195693203829811981890643726154305404319617181829893910608895366075192028429611376041966481494921119858755181169824192735266262264983820770687043218643397476202096818082758450922952520018054724076971481720980075178993999124597252747474318148788950467048543124941993361345998945152838262076623416116785616079938315422982536471135594019631137138505680151841282440463765527578685345726122234227898458570379151438651780042799237306508750571594207924813615340189102930964593412652591433840945345803979887926342503025759964057465829368709350384542877709152253213424087313375964436298065419773692169964477608186921875478905111939254515516491457112430190210997867673444815858328639555454817478412442525176056812534957276560400483574885407011344878066561182744309694235303169709939594033514871907616783837460563493587109470673307168956555825981692650189107265993844244401042513297625661699086991089760016750726212132621708743326402187693944990063542092757273870677431971404304978156912074679934388794553994505801742963881331412592395193896584155667543893126784081280381426289441054684224569741642154454415002143366190989960647436978886299751148143342619715259698427871300591016310135170634769651264483228338476192096270235543217287272332345554479585812515935995377376349205367677566683606900445125669618019729898504089242255763890534955398577046691813455623450327416080720273002534383883743885825067403636764328655844814935607508431506505189228367206414390555703541246800887369529779347238155748745198813463784681456320107752880976278968983833397114421635891341832113977718001048815980770186225603970666268555908456609828538302807214552464470234633940656226816906607579502264163764941946904109707605108037783730272664518811963872608984839349895987283528640524427813623374676071571711495604505989927229073123738940010593304528142781037309367601094608869719339215945667566205515426070931549720998856268525710115552672150579810756532411964696142848786549585495818601319604869031720940594117143249789207380909394060558817885547010289943977267666040483095064122159560596838304683802704813001079446088818071739710913470301142298165045383412926242484875063115243370767961164600040559835211388030032211653849636994670419481309355284293123663260732704860877511326337236003958594915916624916470603097986701740846355353904420872749864782239977956959888392516627898839344686829683695956504289155371316944413437002529693479248540087524249094529146648843457625087640381339605658039292079363849224991097372007452377456072010030696182852417838848068798298866728073096486128142770014130148847884398458091572019309835307661398085870969709396275159845179809633670926209382060918014832051810947709061049437791110913080986376815228782164574250181685088509533944246596298495757662052949188691584856924278396421205371286433961081192917117392417520667141603334291852072644428744628291076619972021156384826904950275341376828328620045832655469062237032088037954790504042798659419291734236371778925398037049704750198197849252942706248608175218895808417933552483082499764773570913846437667743848427839357703363695430539172231672962984142941724125306254144200620096939121663340904291456574334698928753585634294290433018171883849502936454058979369101958312594965696445231334901138336392119432101926763711517695652576463412362870075440330756357845153474102327298536488895854741869951490961300873823264723923374005525537055307756064280493416666068126134831306064749791465380915905204118891296155315930072602792393320412290449018949434481376673370603993969352516085712930419490865272455026715455046317773079529649922019450402429770999934993168416483075305644511698600593873218276516794880297016255370019768252885403339035059142246811549340902917676127559412339255611552610788099530344716744381964001099821300016931254127831706449414442308416125580763663456013359823600212644544537472099877776197633512456092446005089887274123821591276048060573591820022444936228501994063307247222136653236368504470967002145864033590835223901995096638147743777189951210418291362878388825876260564006794695399409878846546175190008811181601737205937216766459575300043275760031398134670641437525525236027547338607003020694719313585796920772414268602043289589137871993900639952680335062322302162861478957776695558510175566364602041308575985621676554385503504549391888263233585510222190121689719659484210317983988085670243942076947051713652940265669947665746054155609807816512355229470624394067910262623320484444004407503792313296939742369102140370918920054220638340777255405755375325156780759947332925280369536655605137532164467934967046703202952643118773240724983135120905785000576642619410896758657181387024197498617520651511620898146972707136713261177824622675832795215213656805965368885616461442475361912626422198034966396102570212870195450468523733995597217773497757040911367747586480065525793818686707410565636247740733489367709451248620578379515000962032893907530460156691161545147996371792848863532778800284976100193054572857400381093325800529780006870516804212714088128264822946378240057171998387490979045973171068845165420147107633611940126911838644987556164205605101594753214239593518053133548528823669533583183473898189276870723472286011387477408662108215834254106931401032370440842907564827321743320495152948058796741684037918466134102507011044955859551934875477984736445376993103948627236497792201057909456046283673989221881264421238267489774704494012168952825107901258735760543830890652135386641103513601748726112505618138776571495883631650704867330444977885855987005855192755291557051493709465322147611200474894778192640312089743866034799155385260391145703984891239451898579568265861259543450666828712379297980067649338964490121022893053744262191539060079650737338702167812419846858917844178732344504700220446702424621410418747825251074125932686663993014485462015086803679019516487853216867168314125555701780193328671191113394805517408673929175020991968008009475389823128436873607256493836106063067321000777330173815914455163895289336341776245320552271071457145818315201614655739127953184184830519212289194202299312891531410649024156467283053310129200739462876228443212931493353084020051907120954238676046128829371254337035862781306400804381707639936974796018230700215521409300292480796357128839033850706883456375790961630833678181811478671744416217808574004751375263796491862312751561984703243003015828565381759646360171021262599356339763335117737809794316682908660040844794444188066681770844259543143999297230963858726181622159364368504388343353015232834853634740094483922537968134804540244158326050847265479554808718112268193722091340296809254105404703879768281606839300608157309658555955645823187172589590121290376344411177989733159095597267125264444127192606365850614243672990045250382449897808992493915807172412016549077245002228506101740234905407618802520993836173826274912982940522206918483802678580423812597942425527355766870043162909732497412040321616219669652891131831297406374548840200678418185162275867640628499531620353707389998150315756060891526768955306052836453476786095967854041016330385920350260463633594171494138259991258876570287078427112869978912265414068915308333931460713980756595388051164898358250742908771801907338205343905899831117324352047963904728211110756112879701482381207748349411104736514879818069963518189058355915246375990940936269055351139148553083615681145812623355545068114914041385677234376573407628750457544273616211088402690640574273123375086677276939034973800290793941599093429094830655508132004944846732258854723220903369806625012390001877032635578647741696036829798382960637864636194600063354184998437096502474012681818104936142993156554991705848740337648612822626260625450353561741667564852987257529589677039754322083554176118331913549969549457099004265089790425204607584795607435636561405216763252579393859658996762313103402798203873174201432555489208939322089577285507205260814517124194077703058139821546962438519239793981713449551623625485338205663183102884359648855029491870069947908668950589207176234816145988769216995410726074690458420069816198752514191342441081662882575104914872073368563870361353328273513493162578103874030122099745143207636271994574056008866459566934789421266533490814386739402907565527774235256581340832815333460869748427589200936628033865302449067939470279851675912904529881401638566184465584494528950010955131010581271885453881294326448568236711466906779519992258740510228772103437378602136397470402890371834030151182455327105469293113420607433094723441902394549744635200568358627586036517912133680940165076211404739228350569167165438071490207295761526215527659911563906303877095566970218564042359494897871500829639903219182984354037087034144224751578832106612298349514884256235126637301096577237782735321689518104955660470317872553826144502522897725172183279365133950868808698121446530228935408869681880841243810340763045896499549267611582084138106689651389196046667093832861192111119201859235328920679259000316991724662343866323419167216378931289076631936663906834348640862399479534278398959250848298728992092814938845515009697990252035522828004623392500275081935099907383585409721608310981623082727546295025007648412622428374428081722717512179459034032612830284701467911653153662516315510159334069763140766923311648834557546321959287796466678758248144199034034388652892575912376592198706558031390549828219575197722490419959823811877244200776640833570932437531151953008513421327233887445983853225286804701306246295410837605025677805540663743454720088134194225719137139068667649698867575024684981293272116968658630761512819976856095061126371568502969679723940488810472778978439610235470483261259542372533655734125748370335577520022994205787547239388948916830484928401825428051139995254716435976429660722376599716019545958127049701006365549042608628124291315739274488235916209920847067360774725592792991660775003111584414775974496039837003078517325226137013037801363635729522683535970572026912975529389973920624382261710033964572166133044637306486653720313579023709757238362487237672347214728568749091412003844947720947483029232119127775409956122721051935072242382528375101798586374903131799640990923143322567880575688627807049637978204437027506103550182779484010442976466308015164124321798718669141003135441205784399116517936218797554578445457237987614665108277514950256306028193575914674261779546988277281449157971282974586016392554908949558609871923834417807933527445518751982464748712924068052741035296623354431009059198093460004584621042921683908327518861675126266917258753392557044889692934010899043276584190466519072458742968109080397979451762940485817445578344133974185348236532007027427031314949576450950006445569768441592171084276848754587925562591891152373907503074486745742443585033569878256127246242814158815454387312506318360237315867408865805342327267504274737268142609228351748901881859081996427979741841667845520179539936280354391351650448916258601067567885547711952025553908675405024954010047441983650221697579496306068882729738194685197602123114399337679058580417172090785040372291251634907004245000375339809048254006779547290270672997022675112514574496170693853706988866254723910593356748731630026489552351867590918344031984810925334742222726571020116968236071456177161908030601015518836633733522561862428386898577301135792868950042639324660426053133312162611050854389968839481012753739236930245577697507308587613897125987620284603141552452877437186713332709907025788544061511635902723403044639059987935174438757076419402776358000012436973951711501981452073549172368954031673192524077393939968975863379918469243687236693821591196601249684340158235916976935075011684986968616070908740826429520038166869321536224338193799757133780506960108990935155793017578594277754045945476319519181922445853771338668967585956921450531461788218106714304673034335549239956354712690301597524244136668382086570930004112091125553474512130122587763743526121736991200305817703928298170101957735248633443835971592254908825695822955285020668991060315525818562376607034669281102589090068732047669944278284903112697101139178138359176492725066634157870801726391103843233888691394782711917691887618548624467486010092366525046022945563619233416309954326058975909895179482251652589094407754369928185690230593388254043149810811216861516074683928219080203529316321783547823198745173568943976322433781523195229151691280824890295981511177636114253112273092516076029007694765210399697003016920478197024047630915635958850501703656508636156548963644688892531090390387715664357659333887160833221912994477042144161611564552220375989008849755627560912812783189535554872179223966149142142896287572509549437134197094203429043836387578359494876542928240189412151451360759794561266444798682241634125789213289266000872658931237060443033179368296151208234221479751891197869914971860133018456094581974124679972109862299277116782115912969877047415617510079351804829789901673879069982581052631492736881971146548667712692224478406184131886591514775482575115369618670586986628170361105482798067229157553938882429298431920917751504288479894255982499521718049327276386448617781544155851405800688270448390284921849477165442175697955889109343558783029647508888752694996943501468055136606381556765117506964822078598615768485205516641042896697415332581971589428044209616850780455439348343277663838266660338941541476259340604827439930239324081539509354634420148060967107687825800476361233325604069485441546306085436979006607533466961152264219054718469714064378903070337739461143418784479250281049716307985704556736718703044183783074279990604256597781813516318684578256961764149884505175826006343103211624526702712881173952881869308573909556038166450947620700519551584880915979384254364016622671274251327363922908408484344740647984055441396997328737833149473631053227932236435134724901437961399521227487404233727114276261315688238142184597750037322974355999925591545686313960670454784615676551129156272417256710342251555806126537846678451467237353920315476032342366559565042306951850712676975101713779920906535933826626374100907975665806962030901335935758999799475097551649831435936211773446165363742570011435136057650581735666526312691599756396772004538418213893958167898549838894017643721643805300565704354178595477121943595661122478286130156145176979393514118316993611161248410236386094460821685182041855216019338432916386495912574988230665798422277022148612287873703926205904338233556532066745425404035183742396307486764594678178063762724548248700542169064042371870003906705867709062576336786801736788596571542403319249140713394303558658060126962373060602145486586675519129697009330507174075971111158641263299330339704647180120458878742563857213948709901539277914164289268204681805636169476349899667494830127336285928020699599336929327249120260441509719006692931346482899592813109154160083155630907101732957601042173527462149011378986732977696562407805934513336679243405123175492416517300142974582880765079689381888339808640899517056455199190832019867535313841117160488101321586281774377409249441118366561790440608588370720327560154431741386830638668139171403089076050683574349128979712708186533170820500508699731872779649501292951619460475438488767268245088384222285236849319461627395021599495756281448773477729812518299999187593778502512866077563540642682160302842047707533309375510514239113815957668622441939317563339169179347850494299183023837574846646192588972592941139670741407742429747353007320776970555533145325296939905094532001650388983066159729750444514826485189232308083546251185414272201298364125160188941703290088599668744212939785408473003138528750890244380401608911523069011903752134785136693122963462830783341538241816461940230950163727905423723962825819496347972200835523624861326917198278399057783865545442417494462596674778020427075647019948639081108012265720949943720056656379929453067739723146998971840364794248910261599061305251341576818076241061309835489170465458350778342702167676219411226129101664266380000443357815648508058977914103121182235459815515489973496579463462648883452286721926187923077701898234972512085987752211950151740847544678415249025798530207952369182574162781164169941049791544488965909948607665050355365349625227836358112957416260496002643765883256495003349125257410854834290833265130173592269032128537754628773360542523049760079976862131415000378876935196967922329581732736308928346477576116446417111290301983782222291976902899157775936092043563201192300045148755909149949285506164930428171333418691750764283005887343527854576736001804221090762862203249044176904368987942077908136570549771009770202307036524273076993349071675614448802394125843600445792198854364284367822929375453642297952112524901615764825261037302206399782319305680170933256569821590731063472615278565982433626573286426915696804153097321602040760123764247678840212204616213666618510888624748189256698590234908578459294637043662251055481072294374751381109903555713677766236544209023571749580059600388503905643837743132204045067444347235630413389435153373208222612715940614426705557299787724492503921430859524157479541570835624738351030579364664492701630205741794521457776861283319505732527650956449359374338332829696120885219933677674999834186496270328634707695663161374272109759589888087739517608969754842102818420604112057644075161265186926105235132150900433474530120828818025837769797122014827783601546284530862216345318589983256231437190095458829771684045757135703369653549649289011829388661829199468437963992516169435126560583340654818866163713343280778579141170902073916537318734890235694766402780365465999691572204678480842774755705438757291684352165798906845292977560321463019469034264375980991662625460780162604859223684430473805667677708648365780980734646896528660929458062001057522633810459725098661467492007864596839008801427009453373516707415500605624409238385417491663713292964434449922298505318736824774126223386872063026175287168594893334469229102450807512513542216598518030431455401169253410415520532604775137955264963886832958992388168261315567318713347535590403398223593768436137451039887991438514253431192560556303036778675655134381616117824596214960242922079449375558858242039426702978880515292862651534580902609756578441836090999768139552314810933602065162982469958477853541647114315421532774456291601104028376859126222673880059173820151397005326020486897401325527318248270691626510765550652391987975893503852334847483704417726448046969004654873184688226582136178836138005420904783200054766809275891521057162301395770436567702107917360088692326165562360912383611601122193890875849871386943052430623482039912538190237090050374094481965481718712182725838751263060814252970899883285698706485093491233494613568114202352625043571189019717495149745988760449932316021040695545977092406324977742113267710852320437414970999690201906520421107131488377220751581858401413824475679896932198976667802622393141794768108412951522653902025256188739049833526641505718243799055578179158258740933756124407225476849080097312816957214454970125193355466107864840679631415162797416043816680952558519198387578289858343120833815469645682159008003989110747463814615331937176447733538651118714717729698997166129081016321926400839332719226230689750864805441729117317714092442182549707654877297394896453821395993493488152117948247599558551715776639011222331832095381350400686258058033904800587851841044721176956019194444094031262329619092329916614497214493130277493354699545954355911963383619309128294861390174522504363330036030934073774470496591785564868434350529120358781337625876757852064521755027904889567489833922236519376852433708556290421754157936322163932718418334895158255064821710749482796136659278376550957996163276831092678857830553914279108077352910456283501400515403752609349726508203525681257346981606933057271890370531428780925884213687613080178162318431537770564636758411288465918868150110819724183749630223533851242225981972256164304762775999724267407638044229762260050548108901317762531278969372229794738143300871265260728005330466941500530373853117550908484594423784681284451121598064148597093972391836814155911850036488492430796458131469524464933546452759508873405489081817870186385928907906009498267954621103510048090273017474466847667535148509325109973516071354542922488867850284777826242694900010336031453201601364226030946253020478390403847094708046139570908695518359531412599294587911184296661129395514569356307540297848354592667049420775381602507121818003914683593324021419890120677650300596071214780336163312366236052187012846080225707117112130559755641852954702967609946823488771125895370425949639347389732532812280600818841542019288671420201341322780301886800577502779889491171881880077730081684437470561348986874658591111400013607798216570532890715851937427924844243147862309431330706285809498699295308288864702633886125639409986902833106222580934405189649482813158816888894160610763855996755058487484710634855607432898591351051522299351805497858046587816289878100290246392735699642983592918355225542120261503350545944700580155771304265671371588769971336602696987815754533199291525351509408512834020916091753216576518142727166081945033050386544920935739423870211619759324311389204484891817864934642092173457174878562676157519708757470492157006191383843598230714224993374132618586332580875005014772434478712753624155671545216646019645863135834233793744069559295424617420335543910262865002284748727193959899380105781004260902522512718650222010841301712372328338778340999415437713374331404562056050257663315742452436257191528448677994592805797594771473691869091328529922264675196165270450080107522660657577713725871497069443471438912828230799623220345316600863643785379000266108654728890912195366932225575539038249660712006272345020912252189669107470953741088570608270944441222908891256095369001585531131859633248776671027869163294811857442240157355705127831937975128407805255322706927250987440838299099042386089521185076499762705573219982421436010120183112048055341087190737749221638197181307370385875029612930269522138827435402885562765379440849535198708128097102071353855769270547958988131182379323151649112837280477627053761482816729717562880622375124698856608644682222609458340826696059691925930118513179293206310199600603134009843764792387859743399806268758550894229998454949249784507656844858651393924456349254319065047164373161715835970127991784313136255113972485033680135747291740893736472635668154005672301318397120121964910897496297960060504428094054244343183924925713274891569388147922704762041403856793809067039562021025609470738242275780293574738050871050085496094942340558692648667306799860535671299194164197509672085843055739100187885776561214577100607893015877692634138777723087173481175598163765012663308604767756899734097361101189826116955849509271867314197320964846956545158823687148595742025929069895257507962122860177584891967447205325981377448664144411539711608168048566318689456474770408568299318861502551289285123846191908819463157938711061389483456543163075991939165128925944055226491386915521642743522924696397807469157367260585399714828274404353495481466940151341389153217898002142893763629672347415737486720048749245000364534342160859056775186228338873842003769820360419507517702683195217070619713996912590461966670795980441216938192886944373598565733738611519882510477103728262477635171185695079310127557513774926863445064108206711359288261199479078276149251616461383341470231044374135708668553785303969631783757150729467120748318189190504057975490994383313023393378410476680387509367882748526903845049268318939206169547142097161549962750189003197890441931055880821035564604399216553411689080268244779155184431442695694381352434367180840313408982277164504655054167374401824945425349081817038564767929124360582739851389041596484361306637524427779727519499653415056038647777353650637878721820394781916483556061125879959374019039531556909772927469584043478168794678525544578709923870775761060746910463684791792221214107048412081961921498007708768910266999803189683553771743288194715652139732467467662064886928047976551640408908942672530849367886486589407940569843346580068444199613131328946216717112748737430876378704920493949055003585812966472404179431663975677596139459673966602640459716583174502820497544304783072041627508153232090856669432890269288272781351671315120353621374522958851245014460708093308871030663208970667065808667261839805296506718113527783657744626989457040233178407007073170443501794738764144413873025627932173286541190352966420244806443376335605144658016911554405354835541979688390234199413635397978452336127495574398851492905967231176285186729775398353075269390413146123728646663417053013351874053643351347484115513970722035563390279694202861994171082763472981324924289234228362153037535874737802769240615482628812535130260233375244021663234959210451637072851941622996976714586988881652330972107219228733598697681680111771534543022274139865207223147875628296690802490967251229619759662072152095305746585259450784874288089940411737835198189056586800607954696281555227882835722944965220350934387048937223186354887345358048511216999145006812841115328619611356608557034153152945243511048394182003975785482832227663016793460867953091007462944682818351449364021099556852390926078308618608042934216887341504083948302887659874444218971988300724649848475936276025770535001506707678877950529074361411839901475404790150125087860460031305338454854856311873533495920276860549701565574459217653776261032895485961270550917207255388578506474196936017737429662851802078532539636780414728681745527851573827020557713399889763503216102865955305776962891296479734912483511347495392583319011094490009834527659767299949846207081455434000898186707865005417205582650556877300886554916474632445723238048079430800660135719600518552853543731179470316507943027097180551228782490254556438573088575029718951429535721716264569330232848146548814488950089394337390908025449392733664460456499397919608895899463792530961160351976108955818126713748990553388189831031935436584673327855304594489517905179852641113821145362834953624692508284088342828062198636251314565781879114653505066308040001686094249188280511443103509150330533041146685776406066715229842322099807790896765683704440664795486503133079670630996212025975269838179449248054278679247161325455244077456690217249206241309366855353739623357584445757785235294205349951922317204861895156520841472428700645137776320300918445249200907738928985157773242469089104851213901244222815311815132619634755294936967719029772451641109949373927390822001418377244041557414683874621512332735062741956278219906582997325880367292553934398308427408617831988339917727797056699501655851556904420214253392088617107439904775046920220866451839024195224595535129630491680226569107136778331729260527040102355314593161782638494014492680668729598349151965989486625675359043483083079520306094172113088814145162173482850402017397525571456124142582954006713441265844948685777524278476907446485110859315984113880729581139324364453393418019074953296008482926352331348466468476576294840635182398256126570984993013313431997687209968975806790348814108108945156611552916111888579902929608455515042464803305192635842910003423207609552640438663670198806530173542218821908609727013458510293359513689293135254700285244974289560578109185078349003291166950563469191235370923989611528002786336487044658091648012151550190569309959161942734777204135586090138841865114988266166905087506104971715305682442168811410929893458143261931358124294790206507931251560221987239227781041298330848669231692205706340509721318279377671123714652198291310865366140058088830757330185237826612200689522097552527012349493344758871254322636023231038467529256605079089815802874467147066191637200235694301198807077867602294116985189462963165807651393474536503514775886825453985642427222096236704498540609068112219453237495105729503161811487631352370311956656737468285985983788144595839593111226454225423739238527810356061644036387125011641817131816551774660597210824731969500953317023578680601182218423432602280430898875557844464626594166674851486838321301532018536662904250421646625672898742785507718019409924275828148197792401585856194047745486636933124000122607739156270282456908931714581872621632031801740247902388112426719181849800543568318345817258822451289998802166736015303348136297658115483572580723625975794644027103586471964189912087459049074171564489462673079125301158662889336557552143142884727619631218700724779582257178586383983973956437388830895100229810121472392612696054363031388601247412217420629665518054017493802337373391017125717004823587262134852937738281018486533458812614406237670120788880588221748483190681513065979656705071982436191222259727067013412240702911592178257612881096349335126871389077562620206639644768518967923863158117427998796031841033722597392178060203355478488496277623224079539393818314858428323470664286600015948901635066345582428391975309741824293928305588009754880280731217925262843481510454153499760066978101182419916171511083920265074300373107014648814107679682027333703891666874853108503429291145849936698146656606024069476389048972602287210996601017353353614710545445293176272857013968569194443803313993148382234980529395712701752003236592314756297901663871735545513058667788504938116635130345512070109777920339060490352342443988106640265129029353885519084296672653306036280041515577092857766176348299855445093419824806274617698362009313498338257737256666807007430725943597143391791280893784775627041828224793063819438576307335550749763219497599729729695932969030945831796433191717088946166481372746739764905341605579392255674759817755598008120676085807673508636274420920680967929554527231972650552216862812698158944393229916578724115337852084455323985872133240776363479220361529773250875210500129973186860950373932025792186996916326828845627464434875522331118332258219106584657333545363923804597213332326451692214869901654711790712172163182516835133839573381708129366494974936071109961699694428780141750980751682698492755962489006546753747086362174660201685751188584905104165179231001453094163062190902262073111038423167311477732390913188790135952524541318325527225834906386255158740011455023971961251142632517494769727715988582343871718173489386701148647329890578802338094283091917796708562574893163754122226803057205315737479586249563965950261511494187516073248722458316367608082752088246616184031020185120060695282185750368486734661226602751904470677344132805467019265529940139480812754395995761470462039315092893535329868552851760730412031836382942670468132839597868779274098956361528256107019014419064089322758766595564914581445917037916412672412761066102914010550951488240649869750070260176924363140722913348117752564127210563058880352656068428098647032564184703696841993612155571504796322814879243443132880311726554128101162561047614709192423070417363043756350181352060568553786758834913633673021198944264678356046525918285322758525697682135425475253988852648921452048652432503665957970821192257741509508564577362058402133400948775249825873584504577240467907408388646214440580125959251152928426357615555284004713230614722884215961542059615306194764218750046282960338488723801808464472571375349420799002089709685929500156977988236124288304333127379481812031683404588871909325761665374102921486688309605686486634157377840014733088085174537725200727816138262322642187579739628452154573175266959513773480545467852296851856080503505273709025895432803244910376466998716476128952243454540404227925831874140785870251969271213100626735499208870380008512816286849253699575045935795172128932535484510709331674650772284340644389494432056940507977562118999118036947046134214794612693691176987035137223105654403541772656141454737120388782974359491768280683546021575611891256171896583187838388424086384949998088668293322623849209249692222873615594429425746842764347546501499835608189061283410886946616648986136928965930633310470181610755776415357350931641624147778295329908998650534498642942858569112837586910639452896139948244196336784655412781150928744430823740299697728178174457125444665304948694701539192919779651956700034911264915056993378772687853839539225699886612021126587698619294407358341905633709236289797403351214950358708337955686015189905022468867532797007836423734254368464654121365164871863975829497052258728358386474806853194198425963568728105568507987477167300187340852566250297855002912676587909111065385854176051214272204508597298979288835446955625958436024382311056888209327424849706961847542734268404603116192269356617119950816106861130364830238522441522200206188054507086121807794640894802121244462253641134174345650776162365448862911671135605868433488316711421435451593196723821122873760978743741953698661325247690982776870965157865124143043278739326481276177002231800101058676006041127107536791974728535137456244250267365507962089357795481533130273832428961847222912909150337829910753064512452052282393491538795543787196792130349101528251305893840295139619076015717846003752027068156551355899671353131586234344078780014605923922917415694515999747461838472658344618339879111045558589283277088842824256588887848672488237282265426593296281186037413370519332778305757020690599769088305331245267229988400813810061502221070219056387920594913477031248118433915554032475000198918186462287660261598962857487928464427658689450746532612946291941040108075733511530148822934044619106835392895695647076074290444351249149935263245017588139084880663868843050983809337712085443329080587176965201430478501956969043220521775873182206502537416524534402361080645107275409784420087965024524213703503437701621402999505135629700683515819399264588999783368091031571633221509384352847947857585078562525746038449080626703380613500843222185709261242646312450368825867102237645861880446595738337809251944699601690553867258752555742582807621332313004856049714115403212908597311731940180653537213431204543484802342934943063667101595310907836690989184477800893606507455734223127282705167393296952537541451067203353551102964468234839345295255700461865726678873118919613567736858323563129074665923514367778171931330355265456857965589457168931226858502363367609621376068524541702298021431652313667442893603822220225381508602865522259639178199938472274953516921554357348092610974298485287358563041397183452126841013197578797826641940505251758264801549496469315880492841776901889601449671452416938495151714115341615959328442691880307897346024155879653654423671491174187650990774802095922992145504546269003303713608669802649724620761366554376103390590212088301035456390515580662718374718064637184210022301508805186164180535060655205483858717215139077294927301310609478633122384156277544831102052177959429055907022593899064932994225308060869202942149220047305808231507329693720490438971801874627123467427511075280852979965621721694070271127484850757795785922053832795114018111247049653435548446376602341211876104666023544246282362450666710199925469248922956384845959569840673502358302196395671074725411867795380154993181400491196049070926827111996740822151263298557558814682911166622117745733938530990717822495601749481677458667046939986854854712105389888467199663901020691738887195079462198852993411399922826042822482863860796812417100447787836131525868070811751256139269080247112860298887579534214706407403935903501109430191121222812951561227774491713413765241550404642448339050181916040455784320969708097891042421063759613271286879476039963133270845255169678651338275582369249130200477282619360134972440449696360824155893649354780378908294192650474142424794965201786483852980687400921436738137541924371399392631950575361352171322767021084791840222915141959879204066700051165102821075904958111803919353707038795036092404018700672539565593970991143689475945885295936103697337719787910879499004768290388185565464767918371236076572566128064930790205372349010596323537708084062612849845954984461550669481669454706595590811708454105558299766516000345759466777683940167399703299566383132628020004685189652703090502254220325670518939884639226167269281577991862261491999676770664372028266084246747935730863589313015726836603501109172620092742752087587325760501323099067906185320452207932312834821974890228876559074595949295388255979653736188952227873977178807197618214824032626592576781007376116144137344403516195863255373283836108001444393700192476149561658239529499488112501823348958428054676185307410108916649477983992404951994363849613851409666498650795364666262491145006879530690274961049351200980596641662937198158256126264239435587880165789682108450992831241318186744820331825343804478567243668542230164560144924786589425947934831831766405405619624729066765977522691039277203384967897962135414946832098823967768505945186913756177709872601667231541704326758693657986046325761590194140682179743965856008141504100555647609207359034624197391200990092448188653527683675093429783300337683757619093864176614953746607767117151038917457423279256924680505121463577982786754848941949808972872630298852423997561281657743421277027188191739493498517791194155851204320031849994458249230538548828803326363197443698887033912966188451140998853939505451561945027252212541931343227039427788085004669967894067741298988787439965821484006857182231064967966570740686663833095991996025693924185434708802952823525557032965174262413362567714141472328757954121489219597427975452917246127698321238007861098736116878340998888656540477375441580494543317912739345593364197793954448597930616548299048961440532518437587863600107568423457414033345483140175356575465722532729918094282303829248237548444701460673262764194066270430448289889204437651300448392562304040687468672396583905944298480426333115262751349598351902821613668041125090738220238809956563582918241560715611694597963028332191021978890892421540696452721069811702948054198124084866900474184820573039394596917131654660051922677667565023521139889446616873693560698325903108585568876112618541122757481367208472407887389668312524413195959008220357863248432229710811373669909762691556863838724468493560572561106840506168142094776544972952722978614687839756939028374712038904410570053153630897926151196456434225547283756924128995132160449552108212428478725899340431783548859549590235949141853354345669197335686399279719493656061108775415169147136820207380451414150447301470059302578919646752064476437924737207208702878743957232706166808485779948100374115963932805735752674488324896470271972773135006767904638752969134967123792232005660414250070442523291130739545092563986237241838527214090462201591172471535644628663107060541407506637311927124823321774832856635236572258855330718328809398460531439812308139411965102431725095589633410961847896695758654498509546473921061453144994019864178740165198245977726047899345344242814670144678567963114498725128826541425843347598785474622834180132223930177355778325256369948801419486956345875969083660693746088384071405305385479374528500437914623952546045278248402236089108360765310881271478044893170569860950925726906930091899646266024742302118538592825345162871406570899963989435895483391249448938377273380267732002378113455608477789781347923293430854491806402569291378507595649186759259235717307999591785271129686930972491056550637721244276997944684140422055980705951812541935597367575375194983670850869758132583405622254374005854707464628972788773964934336794712902869965254510539655739661404904632185562526748719937775827910805911896401392486592004500336706453125892743783454516101410910002436991379402422464418900446417790007893882594912141839181293971059449681296772160706905765114039154483871794244948625745093895504840259413310635101764946118534583089972783988116333916124056816539622743357181340957453439201599788368827703533628485700657917518445700118586190461347942403948682416491876165140895692143222645688724910197678096386685141836709709219897466929927230646534201651740455626737827400545763077144122946038430480288161844633989030912631974531672429116227828017811311712437369370401157865238668790662905175466240905835335759680398931905091324609983346851987191313675871719574390666356472010721845288880545228141122047042892163884477587107849263142623200128209141167019676364028543779250924597373399798169539256062720847294509536059062993672508119440020286633325895645952891533865705343910574849439177335123100584475878554049270340901415595269909698504844028808527959738814565576786205651934162835313095505209489258747308542159139939503626819039749852633557087383841805658834031839690418338577008211720213191338049384610166658324879412376244939822144009852783193979727459139689793078552355418214189864251959967668937609710713255837692834191843967667635711006614190998824895520852349574547161637801833969513537702096779692252676292202156952981759076152147302817942879601088151403625818837820489991064409960778393532320349845986251171075485249842102080884295707199925936403898060048588866421615910891939374837332169532129621781285369389654060763626907987311644474189626715307852783911401903463505010394838799838912621121449109156295728268573708698464744929139716532285557875013056712716670032496150496429759856583685247689531046457703965318357488755252975181005258158555205072211392410426890539993730452435845204300029582175465731190195626158437627330163008978180416356267452227740824471815807699908612426004448600787444343775663496559295292852244886632908191252657917970561922864895509876073609361017434912142708396938239101582205873113051516566053529684706898573807691906059832660458247752023977669185295071910318733751142622109267229674856769710675712147932560892118968852847196223910885701039348296480690931074052776353904023565271216657840676195962307643213876564072296473935956958269976004960499544548332135803424290794143274699119551308182455008926541268140004498342891529276713330989448173840279074503244650493512546675023880272846273364344911951302807601095810286951311544882531743807685068456081670296560303675348564924834336529415925754860417119235035906673538094402162673764711657258498803423398600949389536673583323096281321478968878969804694599302931660952737339594124971306804554134068226036638454308461347409359435433384591236251035617103671729148207416607413739643468737860407639867078650549814318665752096162679399785390815538184962342787892637100231501085119769364595914800967415329895174575241955537839775132899600348823344463913239573433165097117661171997158597646724994328214399114330541480837366918227418638461378663415154658563070235739654913197824692174838847364647232884829971960795431168245293676018202440190321615341303173392975353550710530288587604927958778008069431253930948146012041297050636256916928620719119449175073934600283890698486332151223082680216728463028164304585678627175814523995394401019737732712039101809997445274835935774330968397969219321408512554878575874468672686684561682746246922621861653805116547432864033321407132913730598970042779474393604425365679468096556207523339489380096815629442382126678006242124301275614585337441074526092925350813438548310907695047857679958778135366855972833097999693815328003781962568442806775247922979707021166537143954217230787749389420056322829455023349147334998430770603725782266140147482379058603296785411994702843670938899937113565570343399262448401625540167992013369797170758609011385966265371553501661176856586057215075549907694248238446229616217813190777471543745987654156627592702623315711505235094526896769996033670550001939581735427897221060076427966306572058539960865340582108930473966080097812257291247986392971472504382205196948882948640778545999179181192827925667126796855304297503222384291987580097772009708235406177641523010593029839085218819800459387308148278542041723759828980874477157108566578267835650205603459110192014951701094683463684465336881760402673143828781843180187372927733800420275776573643319599927039928258167159211388740657355966241675383177739308996874584768517281215253989564191532193829478348969875689940071353353611283517091407870103740421505631228947679435501335190150636125617748108166899149346153938461559351964165347492404864917676918014872654162229135609243111511283283616227626227531695876125818017448322312868406316396936614480799219384130491034793773753079947605104831128220774895725481284209809808587646752865471696192136923290510502857259531121721745104633991908375341643030123095160874952514492520267662593860474650086204331725877442112828511562961912880001401296279314965209992476734088059005367169680312907388878351087706733871343714952162625698645566730295075479507445082372158447734204870912602314631669594177889334846298439313635180935268322784486242078794583668459905463300528855699241405548322591888252679235918062751700576240230843351273333608110890850615085287014736136257700374775646169675976321698192244997462753714615107729886238797372781579321314184924382718691432016589962341124625991329241988185670404322394174240544879466898959410210664415989046160051643638443035503891747566883278406005252861118084793307772718472553588649394126568066293029199728853938626600583672896083444879068720172822119615103005250651457850890613686339954854910390839722611058000987548783306567154147413483832601253442329182734854729996363705783341325180524088346519456337667179820196838842572090340637647541192443221166469563568177668457004993288658106018904137541783442439818491767997983432876398759189089016262708734653731417811729587209194508745617275076211058009012408459701585861330555882591061583117974973767320318200652027546417396619069237301792832008386271229538755274784152534740018910077956920107184171374763138319040816140702788660237364956390683484039156133200601800318201902506355049983573870016495729989473438157977809541496934509720897754981298586890093937876110606249838489119073454651290600478071856933928611612330499489671936871699635813267485466805731993819579444279229558909983997507470245272086129402965824814831361112035388002544085820267480286229958102632842273131546047877190450884380478986188167950012414461067117800624315211880087458650448622762510376871828741259748890537608918175724163196606774351410373108298602042616416941596075234599271376275350620993771575114115896738501200642068664434291620012605007721851828544106730425780636350260365732252210540864281931789708445340276562786347508170655188656776456064086602102417470991119792291712717014438425652471643589752775749648501247326070390117068393745825978942926615149032609091334221827301705604299574021912993020842378002810997394204422944498719769384605503549715007739564761794946374112909123018243266048466376346191636964197442560819480860047481918549176537271719831660835085565897815369943918240789684629632105164569463574111846955038059904545142117352017331275465765826784595050125603700288769279312539250375085405554832133303019387476812433341521859149039581014375356557720572073281472756152376804692994174453137026758889828735496866161048068582446521702751715837669352584095054687485339631646333172776853997975593472880775131883328703978041210417143061067257134363141557252216465436189487366640393136852941247256906027206155581104919644686791517776998604626581882130942079041465707210718124620319264983800593365518284378503361142787482600832046104128704368767434360361328528122114742572919129928540837453493914767068776737565937447224338958213861430443629061332343843245981957402587227242095232166633958141862527539972035250419387189828442158048992943369696381288733674335197674068670985830164408547228501665985313209612010507061480536469091425641893604243948364371611693960294379222330043177870961422461875828056132429061650474810882372504160132427355366251296609105855223169444450571591282254952334324425065878650495570384450572514472518445527530232050114850897593534783432768409884521081843170970002750373812237208409523442473448263683227648003456139872751819354838777534808287998385381520911769564741501861214255752165899769283281926712590021361129638358172834173584453427033222242072947555300043487812019653370594463293623972559594032864364298929617698430458290778217443116558919227284835681692128061642609865708660791611092105141664925632551132092139572428632731702914912423329048508726467897037195898866872844317005858348566570851696720895887450290505399620203738778146326808145929545565819560541457549690995094841022373359048479614743407235157458282960536763608239286892327023954488509504062313114297079982315994785842041570472014049533627360340101923765201184371384749403551151547814503749200650223379170735239810442842453112120138131222726998765209769193685140962169195000666158347264337532550411232586612527636185725602638936984892943182207048156391125618484651569739033280849593585183552409055410916170087053527183152294634556805332804636500575164177585342166394315375643401276812875890183421447572676120954046468121406718287678678654592881046460572900602491752650495061335432499867950215367640836834400958837471313909219512677528812760352835273512086843019510873049697805045621153921993197407309742491442683157846048255534553307813900939222918235295073381130818549036122173255969339430328187503333808779025307132914443005342142040395621179830988651166748654904094030223247987579945768228385563745697469602162049159660302268902114778010980225118409767618602043178155212861579652551689735660813834519970429727872207098568228765893901718986204104870593327399801632082488878175528696795615726736965501177839016146303103236028427740920957312197457702239364108492582004094403669991620746933413739311321950361036133627111736325623640002599476591980337990106483998413280413250676347273991166940212657086510871063411761132069480770031608565112782322741864120415714196101101657056005013930755003674433392522616678747035484811386109600473944310883695945583805126136141906793933799942739809346687645264139855781651588058567057310299174239586909383170647482082674994143091620197567267850653664862755338507577001606420099571348758696365988831728947571892127637331072152895175439351643451644135809367527316265546482315102399070924822172081536788057004804984561058658475086031735256126768691771495890808382053459461772768486305232593788044869091503298043209547763705681424407022940730842453892499975152584555493887506177482237312170346117207028516242386717449169817592864777752208977293584456314660434273020716016870645306989217920822349292031860777986077468187231296828142536394314455396998952624174272170313040382182980743790672678022787379946178980918611137100869651134730146778158255164287819745878697725368717095547052765256070337139132673000254464880830348519337403295961539360045327242791058646181997803561038757328735057264812732113707967301141025151614451056245026520881200068952199230839472772985448133549011225304012126861174453666859511317604307316574027218178935398903470401661967486124732279402501908582548216398659047248765015454438497546454849608965613667441532754719346491701738544377400805942225006512942191805558790143166292675686036317028209535144257309629790468547358414689184335121171872037110985121445948203276451534404428734988716260237747148983266494610670625445888220984016056913837866798745762506086910350316259598108966866836539785505968601509497288538860059619613326880277914738025988936233196420437542406240741685643571578801856241276362560773503750281017599874546984624923363021034514636984203296383144479680816009622306653170671499206750921583471106899849715809535194076066297597577099300770832995735353224162401113401135317537818016313740523683362264504861243723917639001664366422259497588343700103623700441623974118917683602749477557474845918052987968799874098832895139736026835563715659085528364093138703399905234570367309853358178221215973416208975834928042441420134685679645357387785847520253027783615075136592965605821267735718720891811171105478731218488374446323389765640658665238665926641229718752855229506969728629892334428237583868685317710528354311898555993210646636513023988570966744901142428342498271699585796375560295109954614045353286194685013093652639978225957875939878972367209949673706049976346471253232436310351376570576154327349638734824285569174822919249522863197068727179357762135468168069613265837367984936214957042941243955322938483811993249011758186471593556247663205561151624605798226716615360926416267594190608922591690505896887083720102353293962486789648021581004740703833784729024472656363965004040230326289038361776170772661030706486992495323068890716335769054409359606201294197982954703995450020622834378860516286620221307196964895360581932773002477300015325039922879578922775922026348579081867758916134238946256240378236469745941249182159916698001287381305267131501762041575000575577486585294857221914840051306428687464823856214128563622336957785829165800318196852577770829404538229679414715003308397115059083080816730871513604211730895774818672627735249580102891954638976893862213324598540031293619909423815508400189705002897765686957459210492831418265778566022424889899546043802256386870493427300219229711688325314980579607983950609108269082297558152330794265131070857151814781882553109984412209156876402062969774291539221882253109884383097080829964638944875784398260881628830852576576355762273558137369281869670196573195934986831725508323887500301261848703802354499695274500073062747583813833455353519728426463817360719400200443975667012398061133601390614022281780198041411144082951171538823484968596462642970898849434076952721861707242347425148188721258432306667066586053783744265419058083527245444998988981204060831649927813797344515135695595360822355606823882970967873161680967509972058228884155888173171013322338122867478144907708874236583758309310169792664816860761839528668467870062860883055732928652095010974809695030328089760984698061153861958288057042007606897485877147603550881752159028569039133632895773351988999984107523919830035782462366860736535923163169004795053264776197500808667950645667504150767240979760600680432284654365149823537503980363704696143020629098236775522681759506260707017008153104776913013170023855024248275592659705409477810194217564114513997171382858110652289493770107863870180554783629435744426739396486315204533721618123137927797637189609305321658014942664690305474605491726767666575588815247621113209156811140088319238531300927541950396448546657232679768366276847263066197387699805053185000035245607231410454465252586658646811033528399906186840980338365972022461266003255575183651341558736383000625983730475326978805235312300730076279230298514481578456004873055503873572614912006523207756869233292073719937559247438037934880511660628768494981868235720754546589533086915273150481057079450619021545509902330683744333674388873462005417713726810587245191670208532007439879149142184146647584590451968379858993881276832720306632865961529372461144211217346546580098190764327861115906830500657444450285634008683464534749275948924118739376610065029879506995044494083551953695235547282486379476110932153319063950309606819270293310554803861705476638714743507327987525302692836703462343147314369261382481524418021117481078290494588262005875147672410123069089790782286581682358295454835552341758825727103419379726116476272421525238442043889379155978014751733759193675243762876417396780744787603292959887575602772369667828172676083931012162429950505692131282665899971357499861226452356984241426631780031584342172301338403090248182425428693888526015747918665061869265368693522741080342458450935944912187403719513237574694217998261247851881960420209964541735229398556848371356191229148073881712059772999233159781636231891250143581816803376465891612992897968731912831406552972777752594777029127034857236705682127148191553293794495836009020566636444189913646695556641351737012206608795114936946367050183292916637644160982425900920862061667326586008848765917471547675853959563805960579965424053156508407464593983816727739913793716487069820317182059966254979922596451262955389680032764287943019306218758670037954826669548634169298496918450892069187838091305101244821054337362962405533151242897529034665654872384297350259980717610452414211718457091704655277035471301835586576063982950312405654071911742739000132134870340901564513243124246525087053794390999502180948844624086950538128187387736218529335062941048610015352054615129474682025100510374284862264261813197255693743502694016909387383354429861536590473777049956746395195598192582859425621911296995939165175071098787605482591898477602107960793383981959965602062690970607776306947159071580249333731985550537178692295153848375569992656297519376645355029971221533301763814084350937061198270202811801765093805271667149346122770216988645020872214365505839196441155295545731103184133026089798681978360306911528279251255565741971136205821827477665989628991345591487308633095772384704483874652336435636498797287372754681517483717933390723010872431123444226096542438325729340530510769260459183052800548452637900911115174452335773548737518438049562147065182174265198673503480493382607862594557346410542119535951942338292502414569326333132743475683751753202929544725592415888729205247116807758709269577049418539803504726422769992312410844948153241255281982322581248311933784625638350159579055651014180497706334647501103590313366968217437967655299184367209317007886054441407953435411224780021766627073666622931683588640862143565324787122658129151223342096825592844974892618811310073982051356274168556877118001772602645838767324024339297381925304598837180901199690198760507641750095844262591128541460364527948993237746563346142582813405016703526812482191548333723666959130737364801710412680608563753721438159524558426728896888806968708262708329224111017539204434396846200524221258204611650555179056070912066496022569272603375136810585361136124679402349048109562074479460295110242650947499609337324193302850738176395570860799116952891090498259763168390409028058412225898135827658478104041561318004050069147220553682696838735325561811239006572771475963784419072434306206670204360125276510255011882091825284333502680506270687284295802320649738921170191366817736459459274398651064217310882817958789465714175866435524599149157949443930357548584048154144877736725864363291255409996578937229104582037976980279380577348938893274673739455370661261476527552738089124313415792519960121849191160143139768594317284446197833879800284635328633660034045699724459329260446679592395823708492358363336737769015497101830959266576594480724593040658856138711755684425667895421376867605220909111656339269386946641270646742873322426295389919523038983206290620087840502393692760666908251210511677733149525710251815895734116013284108641643293997673524265049421610013284942588109100115550072172994071104065418213583869400895720235534178954141544679894293942841367728574806131716056217730234073620872754262892040265235596686946462507574811296834061618119819185030057422893826612335998797438428298944488793284127422899974300887729400855540384850829666347424371068355612043774425056024697235559877408937865314252675347002967517113677193950368305999811593936291925896198614542566339179468800404375944335144603804017392505292897203039838973472124290154379877797638163313950050730390284676795551296397864164806089750356795831791469379439137783145787106847661968020071721134967111781802564496262234615587408370350889006784166554708390390974429503131440693516375566327606872372811309331040566425792885866024476621113007450362183601681344333490227141096299060294560090125996185756747242004699063359971431792527802152614185116476310086103543628324929820902281230724070246904301499205599486711405079384371982680468451814451573856401672146077353858157626377204253833828417789992973969935534199033496166520254236519500611600812151716689959987319292555969726401104477791599641057164305872611638371152106308061327729291075770323334557121927149132465080671732556806707525180533394615726630799659895203529764569972617019683810943775184320262490506129224551292901839767879091020386434325398997735772361560790241237035633557675918331682408417114604512897096198592936903851760018805324181699383087110973168032234657573223113672052751842838710207015395432707761350363413594182940421930336124149680077677487861865009245768543627519638086822179396491208343111682004579033105117179946799363275178735049321501015221862975316686624409102816492836998898362684560963794343794286426829297150160477711171485068882619596817595970459878449445325765158907765118636039594251840000058505988170998869560459679415277792118583892493534478674492307083922722351430717538354300979681612957579755662504367034473699886092055265057543761352687373351607257435163078533308814776023549130727460318295124388540023054595459339655347616818351158409714312629521558488541511102777235401658656571217471365024967537703102127763814953609827273609545091784803670012545388221107111944283879728831383598961961382877153975316339348857374001759944319084636132885145144694205096487328368316844637499229737066295812149884144231231931454796351768900449491277139363490492802760170398346708190017982190109151038597384482367816123563079382412906912363457293819632861117706751955715134870212189062311535658430611999164710363320105913581679460979684562301290364047125936316054585123200700936225152661118558208201231202107854230624702948208520203183267272114451508152767274483962674967217410927019609857992199362895305781958377402762474246607700457736844162739846646878955164502228784519094997516653896727024490806917683991841425153248876809487524331230402389317768475672793120572168716360660171765189973910341342923142598686680475502907966630810198872070386199689915243457940855680717876181620605143791919738355695931208346036267555703908405925529703624643542666108041589254195574423163495088492839639135971598812173399042799842071900414125502401914480690194615421267744973781366798512285824836127416597975027317268585433348446777879972671580534646453876799051082076961149833408064458489345913116170735442528579676972867321059758945068900541163620164420996155984443551699121323827582855531787940007984199844196783885042669032399861793939272637179919788523409137355141165161112023360343359357135304470253217555770795473857195697422203195008172463530914952829589707981726152447394573094917234499711019996553783669329483317652701221781225678494788971272466327414436882444116283306766114381559458672023510722717412587778673481482347898058103003116025003646874122398880378566562652736202911947910313590713886504339988942857608774623055498377164280163007149973380382002082105744536372683990504558119722472055839896371131709486422407533477073841371490802652819425424248969776933059294786222103975321216293344590573358164964667461667045648261103013676734923706484694316000033269351606561796406133153320854066707408601092998847400946272105843765960094021523753911502382207116683493257147798796299736404761539207885416961948515177385758534876483893426573108120923937296160379883610939296693678575453191953960900437728107152533326336997562073147870772471307230830477826406346412224096637572572806102569996833596842284656653331791174487394565025706923464292809307492427144850919770229849649973774541163516243149807883944882960863937476340148258669699470689937588557105854107321834713924304590454909118087489791961750619888699436016068620826378380937754088197793337132176067783038544598819925775467772894295174209539863298898408928395972737517128909147333711492535715145877433157843502966371750522891432453280653479710005800819266364829162412957799397016422166970966920877275787220718217648298995746204154219366770796964673017082605008792245755869651842945579322696443780912254562664506654333384262529909449153344328256351392642534393411108032849994640121623418185461775523847475730809654121250281851464020312176385238282785216321222463295373696827819759704421108111717194687130948995813743138541116961783214691531025355153834903205292863985581180253629073624506087816310310896791041707005417215909065671172577920206851717971143794951069330091599188729500450192252012981862801615603024437236260620442017679712638764667497701708018310562999892504707140225975514565467791216094967818586269753555333663536174247423497747116898523049452854445777749918508945381425972160808882737420753973906539566870377838915199519718032020077610099835985186010678906482154202544641271997322711216503675750314654551431062198349789861548697473587162678092731236815845474509359467638525252839553219791455646323079932035235420504496425489507994450237933589003814004431993505923992502189665317193448944168694808150377028344116815147651599570036983664798371954589599686769474296395259007833446706143763110605444256216204827674741465658812745498003278010115660782263666379808653165592068078933428614819675745482622120618697584731640407248076893645623019364954913735972722579165007906691330030488417885724999932758414995312819017514435348971157396605637455714930327991009292139554449506564898349584586569098965456609754290932693588212324991271047760233455119465705844379708886666474310792093242703077195290243108974239863760396153515829277930466868098064313074195696449923115691652111103270963032831015620503533224631785163533628486720550923486182293930899865757127039613742847962603463168670739463568605481683109251616861547871484500414836597783698288579259707431966879199264940293889223139042260630768180337802565857925494610250481831685246322406907894411020539958901376347026485097951716400661198187256384573405062151136034031295156154945534513455280152714592052889890756649119113910039311875299387760758588770222179071388817786738814374788792670951131055064362278159710894420853756842313611393163430749256767768182030331992819773333435375894128646878330933242501079267298501872154354476732976559253571495876346431003806960719760364731206885815673156602141157686454008442585180760932274566924855378219984873129998858305908743252506988887002894217805397997386412482394324901820819488626742780636849121538561067954693591858852659967051060175872928172283182574840178125312034017776106018459819390403291448230385139181451323353151498191616744989733192587883511270719432477534898975393154731806858673025772946155641083141722466271790931653266992287806450039221030445103946245547017022231165486710549650019832601761844154243288033548777804302340460296797334987581141648754511958684849426869634980397243831086824301961877029745536970744594102808931240596087371538873201972860870979640893034557373838466748522236145669929095724976020917432973745138185282061108397263208127155327754705123892048559152914411699470824637620713463844718881273678876113116490788313423362794989083925284800166290021965792358987969989620200953015903646462643577818134021067074746097519935451710249610047442932045460040305646205054875592625802912301395196898392053566786461990496728900150460041617071335432471579051622283685756487119162582438176955279782434254658942145040765389839167235711708411276596383503935839086210178858056884946555917492922072592785638606485435893402855903318782577264402127183588236716075407990166257046370025350821282842729970628688842542126236251787152872370779137553105758216303916870843032145355392788816474908216969449784010522831187906129248628707884142968649309747170368246586696101458818756705755765026015922911834322495419632623987574908386766780652396698960305733017580283037642767458476339830723236242736685049749185219115674785652820456195620098877564823807001114359803779563462150974688831643464297778884362080754765222247106104183421507615597043882689585897277740331520584337282399351751096150221347164574515747362405064473526837656881645458055541245345753393000742347881918229605357992270835664506510893164459276595565469835815513460635533894758592000828457122232891265856588965408374217594781686842595142327886710972915082009916438541439567347405991067328373121289207532980231414393027678346645421002459294227896496887758976501742631346463709879538723156731617162565698861055108140569709846997751361676287160027761508490192992939423965398708606599299170222788109076265476409697352592153990987675112416971586063854384141985366631117044627137769871390756337143514976316114120094974477619556687219758119394166028098069291196764599661512273484112834749211637332424226212999537433180741660806388220803771678552535469882526255073935000070223928377289414937741426025936657558362738488838619498617483441049250706080175908694677735732486035545226846217231327347631155935029900634017029399917848077702701972313913950959710815692035611573653799768377964849674822187932921620162112600504334614315560581947314244754747203212322039300817686665081605199036988772252863109433507163519487969200709144251732599280031941744804274634166653053277565579034762366098499417199380136512086385436699637617054151209036435583275277766391050249135195234858059773322864583737597309866920972213963409831431366558542244402323060266994850224406089966808742180584025394543200084474624164652415029802121944230502075029485991190627343851429079091923179470492770463946652840444015552574393665786683451546829471614564093313149411889620443587907261891934434817392149818897501103149256174489668360611145707374660912645124560265913569430028430689205094796852659019493439070142835000061882701525356220339466756590158885991406787419788417050771720049828104083413495435402063977283068718594356880186974420903022428873258744989571107946936535900873510132019140519870568467796535759669677814170783111114819152632035914365714107253785268770057865719369670168535234932813682540243617944295866033197066955505001155258728925952519310462723074355380727660357225869639378847520120408900901937101154578240550076864340128470294519451070691777229316131825530829169752234422049276200873137163606706863874467949179789223712077728895105752090542658170719846016620165166661588647371849921225163071309593672947837722760401828028434564914426663779991301256646268808247407112360697357730676648453386207668289100878761318694535990136451507287910646181028076756986669388660823567870919312382611437540820284860394481411375031414806902665543415255766449255039861499269955342505682763943870651856418835841061939575131909940669558043091312554341349375137914379663262916431050727721761955799152398651219651553582826680786376399128273505783060875956539336268469015411684360882724460780506902082301923990218836746227194343594275335595235865155290184415321260785995419618440454454193165944704440551570733330627915628193791889889625536970005127860250818445678495851188127657930632657621217858395754781265739561701763796685977822554748568708132040592265922237720580447989317143520887321284100772094957324663723457513874899190988932892202174050074531904734995937480214781369241867150914643778731002057429147217294146082104313662874304539905502715671118443625337407514047499868811714492985213814598220206610482824596389795227645054447533898081913943433568683272045562681127124460354606660765103858729665158397116854405035263505451866821845262263692447189628443477156009835577553226204232113789493403709656815404230120053539560575279362389922522254420554134716328907205419918863816798387253582360594134179663382670506586815498823200009520146565159770933921044427325923447142961830344073908000787678518818959989417042262510385120484109896368386876401715307246526458604304246322851120273201717101261895922483799555010039087830158524634979914369207506336079735681843867078081144644010759493116879435110200724433283440305226355803712777317270746757834577423841964272319050727675254516994995168456636854834105400995460092336911183320073963740842390777945435812654139990244912261367759394817855586629697878574681408415950352017724150750712310372842884349762777851535013003787767289777889471574306598934335892725358037303238632175766310858390028109582487469016127548196004987370678463170618297505515265859196927584439379594770779897412325954874635827992594433738628562552808866185831804173574801821871878037839700048571277259902904516077123380451301737997307834644395238460937762820905420674262396921842205039872604224498378129953100261965431911343296472201623253853082487794552585980748220257787824922013722602932524506914680803489861116392370279096614722675822183839747743862373469459283322803782210572213991468613304668532630702579735994436752697645264062209167010690313090063088752074680473883306486744381959576693615070765320074066306993297461864580458993018795558512472879834338305708129151399731090640164317785085354104715313211753054033689275295577420559658640026885057232225484724438252214895862685184051190617518762689001922801535965868632194869745622314382524848164624568018967099684144224701941829620487227211741025489692440506761794425791127446281114220879636444826437311031018041139657824964783532041745214161939888881520030648000076649408450189280466848277267289606878999127565826539264692721438711198831101559513583689166114782628369055069439594828609858467872885529821329776843335478637021695834696083508278115366951964685587405398152600939933465203495331929386280199996945143618284436675893415609383084552811020131694964166152609818716283642185042658025632720454717659433162231290991977871025974786033616217389765574437454046144977934912049825063436348964690896613896143587967557439846619053536891073006934314137952032481190114403244824116597031163129784822534329766681634994767054768942738428416249317739290811604810874139591153841904894062083760980514028998418730828719598856355838607670029962395830235388269634479386391809783159322225984063845404325454766985964711432923064499055364065180393156718529843631050078897401360942358134957856446160245251373019285171401487825455310639618932573750715592636146599330887018032366936459403533566395070772967511489478945883531018382535903128962544612878228463826254284145491757394621136041748300305154053228185293805963417733873947243169249229616226333526361457571276592815267445753327599527837873582539776072955562958516366739516410395749707201267531182415797042843271106066985360359486786256726787471699766564909903384761810647266134210411164729814330624925423390164925819052409404245147224963763437491822855883181297825460553414380740763031613744902797373015628325898263639285956882525548940731861338293743068036974074471171987631837720596719065007464800621231478193905100822080801134599801759286311602094637645046751657912284493116886869225703132970818971512920315188001299182649364400706479318214081169727810811717316486949392740995115480578906194073851632608824604661517407352208560337680311620705019065812241070397717324209589256910242538663354516896287885816288082269981942653431406439751328076741355733680697510570963507277819532773052709045297929184888084844315912577494798689898389924114662679116565512415050509789108739074810234265467831879689309306814936748097615830885149315169390367534093348663863030950608421819777241332254698589233530561246904544190885829906561527487954613489868856825169564633657335549525151891629165391744684360264091381376085970836149574685936558276529664026913539883283626003442926248675318950334080132977256138410100116623845770144539454905113091676397851643649899349110811035954443064369399975618783625623135193174807710424558047436462989414551599343346592218652984709573578959255817348221134124885651463775432336096141732600316807348933451581653791234559768871473366498989375960402631602417927755974096426500406347138279975365159516679346183146902107841771684856851586255688813506182677043929705471639417473322579460388505217944933536190968820722148401647688251061267713284801601803755320574463184674078300466904081219898899576116698869759767461273931115049086016205279401752286443859957721043277632317906557880228060194127453331320324327434301989774361704667807218832165233797139774126534140080605864562033144853578057653973170602365971558986962813462938077493898316478865465641979235415935296728854788220506304578889860099693098986815374326019358067335253787853724133677885485006338514590436971322216677974544367355844971256008872136816189523237235248839549696737330217862819806690586142562244024831023951737801498184884981853263649044266132744640971055646851552641842322956796041434361413293460711644569041849903050379788130088659568195842209950800252189511569341646621497320030073872170236035088611940710766079497630634934646852611129660665921903640862847673426691736541440882887943308422878984953778167228576789113645177023915718407325971591910144951115990541349003705192727003716801923982657564372776050231208135270973931898113578313009219521426581732035134693945473035811014890472299572692091890220492641868960309773338287046648640774658314358163905349310410709336630034953434470783985022972913869438412498733111876070077449675164096132717948998790990316096873358541480792685800132372674121245988466717541324888386115739437430691670320723910189638300698814102010187445564940975866414345986266101242445160801208216560537742461738828364772655497622428353872243636049342594920879076135919638946321587297490462089715941494932163730880108433107725855149309229852735112891082246071211316589086629106693393060418648053738748181160376381602965291589173333240845255960223192746603961991410863604656342612320838037594734521971875414517304202281782981387218834419450275317161227188044492848238068407358615328447551682630429476533816170331561980375034489026862334846185878817907066514432624005317577002563835823336185096805368156783056331693067030580267795192966233044647442974566478878661819525943805951404797355020336300947967776488738193148065183846547543547134978893143315215004994009835261151709097066229806299162062846892148487324705729691450276234670809297646550419616644202054832219080333205849293061538101225776785734219442079425771002608293403355083368239731219097351224488986023160857883786427800953767518198997652300614311390301275188274993943557051831803587715652569695436457844973899185393802944546058526921845394912910209986403749808841991081248266142219277302017298224200265072425518765447841756403800375204298513526613759586883795935406599687185822515818053729472850446803022577968454476341073975692423590312544120960187916637238630500670255313074824300012716939359877996632548504593527142870824196972042056252327656446835301380266590452828692745553111620809864107146760014441295628975934157377747842040990809643950099409847542668149530712103936279270390591797808716595862708269320119010673804435103723608332063460861979219885706798796598946490397408568933451824700872975607123420076338348966075606797830149009729951191337110231329639288984495286514248656051782548906791732457508232365112420615463786748665313733753787657333719252921340604020881300572234102010758157927706911157123256684618895789151109285025755740834338699051855083408184700239211718853619349355848315513039375562376503346351518806646198144079839229098485776108946953208005149842123577007757047198814979958634027977007474817451520584625312944026120416991654487698186340452712465761936203764062554015362174442359885439031450769839728218979466084015076015888680441250285139032437826558944785760470753488572240366628427399438781881649856048202891702957272894278964089935499375404370961610485260057618474988612705364946096399244882760497216229939058942517892230888380492537161218260454691997590176991000138549600353184422991729113629452896222761479879651929819170811797314448836828161357790553449278910713168636213565636369183761815942909921077394026098069838700684502425168949927401859097684280024617097267060255279891150206420847505737147084542232165884432653880357414462233899350457343320656907458916575810737701160720213097426368889458603440668249886939743946660294663733599401345348013531688431223624186181853358273889241795484516038231244756163958419394794395887226019955984221097169298964712050926123247791388778718807959607828262351383035597904834932960532525555602010955313245599187732494284705202955048381432431139362480687359746139009663195243245092438902680951181726512332668468581382218038523125068157439095907875585816351087536055880158267072959197591412976187321043774646058665178618941124547879879072530342325677360201832033546407200966192063131502370191526372081790102307447203752616659153667292303037587074819287669828154594403286250932971777148408302449799825713990439232861058447438799244997372136466210994276287228539578338929424654480442153087421034012772554032708218284320991234268204785056482165273417684539123288343736630481509385517186090186138988390193102103116291020330256776366602034281330101287148500010502995060520403842735736334070098606588322396933991768256642243820473605946820084619664928243368299980694310059906403670467865783488265927823037743314461435352735604518848956779710815601761401167572744510412452100663539320582067968361142813378870182270369210928897999562834874983085381869793022855350397993722096200610941454217797019141511370317394094217605854352725494438215532107849581709733738996983460548534244048052822048252726618391894153880791458992163236680698384463828268464327214912411034233488412045753347943026599833442717860713712074054622346873172945491414901017278440508549460310212217147208583440022014851798146437176962536029431531507390083354733041404084102636328173906784514748731664679769730188067056743965644363222486807835239142543688677256721858961445221269036043600495557684626927821019623699881016997308312913867155297832629154096478937175612000981172167941018003448403840962448271085719745285766023551683118761441670797555596255146079837798117068402280554846983310391887760467215865576242593320281928659935682136936877805345213311919043628324894213739866202861659363367117267131957735912744688483031019535865151346018159635483357582511301418219662236410496611132643648613637445503131099177975873038966111692502331817186273616810093290371695569052777609113708530911467451778499852482608945207111442554864712200472149284581784669992125004708023785972523154585125645205869708851841688532093862869044515939056766861326944941926861742013624267430969189323433050222752279653274363104899808036452887823866910570371000400954823315054471019957736007641341007799487806691859001184287889608463639278832374894965400652313988664702454580597956907527164545902706268938290191088832071258423186011294652160739713849954888020267959586976123428646458447442677480762895200225213823892706187519068362927259372348234631223505824542708249243280516064704193829757011884209880001359786459424900490422708894996849512477521943831984841746965516746234233656563529940024085258625951708621936449807378799983589571470330875703939106377070152644805467234767065647834257715274711066277896897798248291091722193923824144027210726143801005659246284265052682614788523021320162336781446763601229973684189290822124949548187021976424895308771372244553887948955474453087718091520307618941562377498615439160299719366257420082608045860103564209776470280684075175507493019080403170013737958755809402130355064737024061028825228812156879645078911823298994548376432872603923902056352949351747626583316355780534860892030931736308613588799016911433908644742276272273421475393180805920791590236527684610863481560528075271732450060210785367266789939385243548553439587949536782361203093999881587997711079839096953010017957458899556356364572336940038148459245858090319482380824958900433628227443065004671949710719897729217874920504727433611526046617940949141829692579398778718056938718223903896148789566835383504073871885645412369767978147789790887104262563098233083684206455792471429512702841552995385992253032978756728030143562773521671117129186784181539222019030912503514472133944086269664299869187067192559665623078097157917788750230833799467757363527415503518930801762723465716428292278316439586064806229849184990100857216452588819934532275572318002043215136599102809779341439777998398064521609547804582343991534070656586583084127126122956831371671361690114742961849305699516236808592627363922500003066198604383562661272450605570952445187880303316823726192470907426202181273540471605306658249625250540107529744215364247268957782554449959691134805268370343650848166629230272885710563516129240280434290673988958379351046501906593520703823923369930330015968791951215812432636503007437416418288103053101218316846858635554061058292936928125785900457668359595466484967945768593078368816036181048888963737035846550076424985999824945260567869740339052432069628763900470891770194305675856964110689278196764096552733181492280331936775802428810194206803661863848823538567242024637792769112061705728903401100802987092982349663928248100982887592850115762953448960176496341071022818258218316256721902478724259264367842598716719696914710798352835208079265215666409727218874839659835300696396727920609361688506866078542155163388650394098542596774531376063607038058687818753655264899069370597114750876253402945894839532257100167989719014963904388878304067089838130588823626288800422927728521267814176458044933710734133434317319781643758575954622749944297403750449514419001840749783613763424896370302843936466343491812938228710127248075996133657612635663496791214269141802550330085307261028048759098765132246273246227092603983819606804143102953254074758190460975393468758844419134947179537181020541093448969034362935391109105353703394898426224162763138975310345837560438696152716436980054575723967830731023001310054558828596018321858742720381436195932729249211418745825286142792595091879840416892076300135276701426446769282890616346888169791635726347158018359527725784749972665381382386160331859574930117018932916504440821238209612595318355618963438449660218488721186433937970576422529102063437042974386911487719126321392636474965163259165535788704321368757439365546066115073705786204433330064370321371147107039020357688616761630272471783601500122385070255116813153953575955553548523765468181585150046597025310804049797221070525510351922181326881115753874579475900271106825455349303394395885078603015435856318387446897290939122951977768478330750836028460848316765713443588505090015224832887389877736682135658964582455925270775565153782530888463356461355376107747311601363328078116619903615806590263444862127111849235702957432763873062795143137864574204921349527330936853873490350306869575665402462791353540953901680386064686666322582902065422572957929017393580873297132216040473396774941822095729392308210477932525095389046655041462189633335576303507804312834549018729882796811510069204842682460659615946757575189032608137303359685928621884858163155369004864428125517629011006196712049259622965806302058089916709883587599290986445104813472261837856662666112884535585547142847427258199339657701977799821487298002271896685505383585591765434656801387025236023999812559999799781324914468084521839883720229573132918461828293337302047696137755679708259618937496224681403003063402376107482975988131756040928431269024130969856407390865294390845437815414001632155804809194800940459234274445469276613059569867092420924525464968281016377101126526524828283384888070058342485499214287555134851559857149888675258023190432043825766822035096222420292419016705085576680980916478287874329506833489710659724476754284519506694569241917690145493896785022492795264208089200296280602673398179185956459077509111910370159675964350023732056593743165623879092553172953089618358645849761021443495915237880302454113826241305289661997176059636990192984614723719698031095280304099616576326545649819587088673853910410447609388555115068697199498758449950365071574125718723582306115302667092388867037344278770307024069077461429115077755791032293065798829891531356240982960433435990699440630494461693018607279549954569266831141677121194450313957948662415304921174585949862901972692720527218242354926085174486019019424299211668519257667528900441603678145223415614155742281073728835096508804209696925059940456448624770026294549205215338112323076943144282448401207055030454290348030330214359305084534300210218456403515530667192360035881322716673623655724383903460700945120369899874808318162527853315885588533977242837159709703482538242202970514203224076203989546662466069309176980884629540029681754090850301229523006495120920773743640765056665393569969393610503374111089280635013655298768181272248198059868862284133249277465216315281438090053286998559076023916390693289562533824890559280367640001718790682582566918743216432955019116177991203616578061196188572824968786002586184400873263640191730346444355387589580430300649469837959296451780846492633797048691200165794461448892077317867318430194440857278238971318042299976452301606759809016274875569947552239609706900955453336649560074967654990416216430730055479737541504666914996925421184696915012569675517365903291533147183504425818064270983329853461846406218863373314350232577159398785647520064251083923000646527232472185148295400135289353087776451025765080443530169792057334337379976983680564475439921422782193649485705934012351719302905817276692787801162063806374790944108711803619099788938679405703456238723877491165350224696804286052610633313443732379977698796110499803576226611457577283226425300617766028128886308536785918743866858972509802949569552773103038428118473781346499451086693075424659191773101643520119953107191041944158706011624127210717029987215411783464980598696035676594972997422793064379640356335469709374800474786599890089453908502992573038164896502847504279054947464286022040117710190398750517705941206813378302411315072295218165920763344084866465250865933873925185893972813193707404227083564614148643899189291290463417459880445032382513201783426838100137767591970223670576253157891247803708751869932513994957599020594532358091268943700964515754791618689000923711129605769667164402483529972571018749063770778015950952811523730848348536481284130571230458976441296375145798158789548088815917759796072833749786407025684782401300816661418001219264502707949751891574553697963822202167340320284306131011445307299180968168869752299129522144018609995396915088942825617969754227030066372235865351064843042759607746402944453818381293423613038389674606454709396298684042607058132736931756071820213387911956957126926493622566782639683029480128266367149558052457144643590359220324386059222809663840769331298387697810068743762156296000243903422852854456890894759241917261641217558324137737510388127064814415065871535837541381353479420808501248345238630982786982029700265987298846412087425440112003953820979826522052308956154697431098976493173531368282355285472143677361308170538058537326432560135466993145508932572104288554086325527283114823411445340691306717137992982988443977083191909013529566352506581714627753679623761349371748659651751945728011224809799373409247020363926818511623938134796578378602185508364934830365239958436015967216795184790625505094786864483988817504544842312553837754265604642630525696606368143991216530909256506439337117143398314301813461836231173217114247046612853738463992392338585577079864230578624278042810868767561709521224156641089849937758453609429737839432476048546344174360296199599888432510847630488458222889938691583427532008130044357001704247138020776607272572417724492331744741774196606569033171442233644270532198407347446075141514921117794880612719170848308137284812278772144408205873458913105196757402272404106944101025084113358471952673417037536745501587477304005657252998540839850615728184195918811392989180801657711157391947232140947144878597620562375134632978887013001689126836836576589450792863494371824469616117293893035977891264019432998972213185080252228459524109832679946685522695939324130409660778991024797718053322194199908685770350048435964932110965464252520340148845305289767893826980839274883767267308762021612213804400863798111721484414280374823510068944857532615477099931838046153784717893474941563440489773681003616504614388068162493870222657275436684131995997480657814219745865557091481621069084626108212779770549265241890628793066496806175706005194507432930964492844457241072253612564909199971929516118625305005792217223237635037189617248298963620632224070840339910773369149716400410715649123289747316953934673688158471051932692540523720616682918640275838168014968430835101311973773250744895147626614250086476994474365938898253042540879317830351918550311823804989739348602600724457981901375818608459607377422101719720634353930567794980766545668038661469889803572651297330230175261313096578911508204957035225604462101195548981688324715436348347413145194214781080126700050704269776930862259960101922445715239323349976089113121492385140133567966983157757145191572853022494852479170546705846163753982342203202949649252094057676216179011506801817935884746291026021378026575317277947694709455470978002411541122802836763833876639202346752505647356672288145311238807439067792176271911615845017908358164227815014164642914562386207876875528293440518334565585004105755022294823161427594080354589206621378432642631811428522677870124529650799975684426840301694732474116523414164077542532606949299625591405193049127409887027238209053696172378122018141110501209481569218908033788117510325046810409698886824486337721055467670409667421805434968074606095317315558657664838844044266018534808719227007209682942481064183488753728987412200486719118680764626630458783794054406991772470079906627543727155885080693606627691968741739898958098923145602957034878312272176206928444053446231050498251588138105203100619108572614100859257083776378089103276467340252316094209564130710936587780391823131522253930032832127659491207452347338718545027672965163735323497235463430620888755184758763112287729304197597532406660198331365793910965148215546816041155846295031507020007504956120474760733238791005847125744343806437309441748887681288251737815517722939657322383726168476083279128007111467747206787065054949620739206069746440976693804465084436533256399071992822993575693447468844037118251565613077158154289384829992491599612105546724288037179665288140726898878639039725902347423459126633860164930147409284298742888470166335383396510870705917275194235861180407827910059199682774511743026740786091713775219147709929681633139123567389524433304834288386212109845736108976872070445149205829598475827989026574400869239947832106654901824745528427961670162949334591755397511340223701108939904088212707777387980826642783110624656416221234882015319360722139171554760201996813845804364816998530748746525070069121518927809045597991078699216232397084738185551427779729339765428470916195456744994894679269535877511342855598293042376971445171014504931850588983328577629224389170784377857860555287632596672927070471139879868924385999037091961699055281082746625432110708185463831247606022922987483377053486026910934605911280283689924567170424382229523103385046007597043502338811405256401520960380524933271293110406392111578604012147398619412051788219840543863552240373567110804439206259451295451779830706045589156620484570757386868957960556067461119655083030299252309755250348549765177938267324842382744358291575496645750809056287999745885645668314489019093752735515843552273162343200589779469935837796122634841948001672520488919871794214973262507093566185668431743014451526161991803985267733492820844276238360284000882263529433895874664206129644917299596555943461036375280979355461606592009623504873537022978952963357379742517803594598630575656770147910542056651264533425118159306879393516748562329788376258864198156364967139765579472041108458606655220075289973290986376744902787921881320513918571745050181440450536777460131758860883362357296248122501979190057161577303818250484792214668447526241491715288787484733712555374493885831140389025905837125746472364899971628727733798790906215744746618324102007506165202718043794140079078302326165129994794739586835811301267265028477915401756854747822536646056021777659810338533706398502535589319773201421872247801359746668122252201890913177423423542699050408706677614518858145714321016772032191800779853962865430639119170758927200964442022337816727027120624871771765641201759141758982465965047976996390736589292352382065515406448597191085279647169515996448953389045238751285570409136712598284673648487507045717986539385923633263164051511673895279643793726754676432513927594286468774120755826570698898532211737949665045709231696818617436455549923351764631046659738889610799751922219759774641139679759028213935448633538964465160422811472812119973241149326032369728956361305763971023807450737792179959171194217292533459668952607567402003277092211432580948614315452149996931003495569332551143307760733517071881782709264207608534007069899735652899527600691252610402403995195540201007720912122801932783369686645888863622384428707657049156131000524860627629836447864351849975387468464447965701547902421858909000242205123501992141767390191131363023145528102974427468456808537975844234943274210641662150103473516503513577040717979973406120781330267580469175306415243444184965139217712109157835781953026601630906789083346595930106316654530738611247072676913723576061262810936562188427944696656358787583404413866753559499616317333616200210127310715665170347121662515735267684541144908103748073430189589531479535318745110614319816060527013930426252605981840836819547445356682328244491600931664894792943373989806691470689928594916370290169171141207453345925281646498488953198299595703458010881985801625390844598081580849012088303201402049116019688074393454166216884563838184331029403697722692332986060160224536169979531565726532328783164997656850728840812317088797303470278011708187579384672237682440555049989572533721208051376591332296138120050416335906138423326516523708795637539182165595680334156993566918213977628119195968207328840562701789924787033391042549174753662450911586820254673931614972664417397475157653503694204519427830565472773172687094061770366035922432081041631264817019962590193518268697086203092363190693000303906883132307269817952680731470959237180289532195785211383179694037793099216517017986496326265874315357653273721161554178805771598814465657417064753016925697019155362077029396991581449034144037884898506978778485368132232059729592759967535198489669349164044743831791785966008582111555017513588930955983151848090754073630591237078280845773363482398549936851849333571826465324427492743127694579289773343892504978501893763599255510713315697674249048653685064729493655771687342741731655148405528380092511409062572908135733216633351915080102203374562837049951017560140425336090797545511672749194372641704426926269392431995964257653919248740378880106796660715261209042628768546447523141908418328366482303093988260983169466992535751756733335847605433361329148527746789030361894889876502099759449263040630414110761455613432724699537490837381459847682654209960565337414585864334300948117220088396652868289133213007475789288885682199309524294461633376565390290297431277479171793070001518973236753576348730712074965162891936478093506439398370298078209632422589726705349997921713530714374502970483758419182979042360852531211978658242359181092653676736473519845568124485253231642373365153325192427192674870638490488277508343885643966777330834696391982482295907810732818378518148222148366666534971169323038141333579759835671528697958427272671368464836289109576839528885662579389780837502312038492482486047361652020571788303049736791662042036265121088157870232151366018236096711292588726890420066540771577843927157739873434670777337640350750850089510180762924174784423911862436354791334773475237648576009674113653427029380926202183915590671506135845954486928429852459421523817865202361979347055708876899317917786568340803440272714844327471807724535595744506606720972317228157785673873268287191916740673432333903752214869592021142263615591441399898163420383269376998257251065090909277546151066480092142830568971229389735826978574474447860239071367735774510728296882428790873504479611793926608356739867651641306698287013136513140347262029326148543964648555264782258899324633736853413058107966526830265114303982420406391499081120753900089639153980908158263832196339165528271088595468680323464415782794373556227517225127883362155559645902900896739129861926439356531650834652965759751740727455292236493590790109812215514602626925968684228150266197029303339477002880275220084782044001002376341341603332869232210815910068394066540237084161550547747496932934527855149373852334671036075731338196099428288155897381269085681488274847728025817516577206455968219647849770714541179824920058473324475113154550715157207945715344680376869318822973226688328198398703275555192186059527452373292448898397772259395883597060154240124531138390367501319308005181445771686895627365584409680791134610457986093422159235763331728076366969885944703992792738633666068868253443788755412426520528357036971556691935283527754753479185332018999969038218683070166782263941069763137150786809370293462231029577523159008351498611525177590039941586358997089500699827457604272982374733756827995116437339337099034345707094523197903213770498256336068524125695303395128205221235449080819464363326752880358994367158978702454598815881265728241752942785819959175156067566533616315988564348628754801691718495148945344544137861328351036625056747960344805828084343460887020959490922068424042633155423800035082784927254036809518938658893821307081195637897707974048160739308363431336477150472233323621093238287155216291691646064492064135893350173732361003785508059062976697990079025870122663430087609028535962538917938261079080553771826089121876744895949965797080412200919680824648436519772863371826758946134769638343823291811317317120533493960960996207414377934423778487302234535983614640376334210861577055976149212655065100825736935092140316727527278501323025052557575822263085606098761036982398976806781192515227960350950554789120920539898338215251318214761445984078159439090262471757692923909202039324816955456724889190229326307991958378307272198482306902013021565928362565667767424578059957486980875702719313331953048663050926652533586007625074090636370743926083512412909733158581805178646293203162975344131326617228190007689567329180720430516950865233735320555638730122216754823312368692937692904581196322836806264596687295959912668788898309908854687566700414439293506669486313372974022925561008866286012548609082085138040636002984772937792597763030970759281532326111884373474073728533254533460393105720484062421961565684946324078951364154861656354300449108706327529308891552007292528173298422685309060023300254914171485357385309049662587967384920700159992010096182987073695503486278746609633575048819124107030170588486716961314978006808531864954923174126978546697240028093416267998704040332033288604651243414884329225147709913445227146203389823848118115257596926352425779992796966035887697953414935135767123147551635642426657378076451686441488925233185830149300184215113532548279462917118115676715709528899218782279356696283611027557639892382111550799347170294643639721034259037718905348246775821855748896273606767018202705618586846396847791032034660838167577106095452692522648558760273259126405822085982335329134792294827999198731430410274895302474164212111895178198045214520396179572284389306927316682523972520831960641035380160761960966504159290320914551137396806630413819465262101978811658164208240674878814367222533662808925351861301283890776757072182048088582041286977385040955970920887496575273226258014561060659080098703590068152228452877352654181034541957993675320448918483549598502347736497047478072196693657520605660418182400432098234915855772600174646893190655645540469550720609029169017675162915726469832524612837438705061317144198731318584519912730964685584327359464098232288897643845581592057782419259403208444016257750582588714599057175015804879151492009170901776429124781418736092097545901752064980360468302315106454445129979358472113365366920337885611881471462085180869763019527378268231262600865398584899871882658954453331674288118226571186452033544388918448631249278690856034879293975388593660088803299192094965914537024695622050156959276307696443867402093842775405951721841212459268680853261372836826241148545299852936629960402955633015238006192809888815714173219945641432058733788339983100273684469477559668096493835600121470378370882112830679997365948654350365596815233400753827982923232340137874449295733972745180383839440948890670652233776020098488515895472941745326991426958679722259080409961953968979434245027628657947787687826795401791672988994479987047454136246855098269397360274118689863456349928586111770625788613448637931340377196093251729795311262596204157473882502565143402228453224588994633111660403481248660988387971636652689037129196064665023244732183542711313833918197236059475380004958939198958557136523733434578497841854375824665792396431077047577739646260955181552524160530599059625759461337348466243782666549522241022553622190064422511667328157562337151678250408089873122569134117874938148077820477101020523110391859730727557377932488202338804976101034108387715329128967294585514675534485006564292683199885019705995104693230725331418805744043640056124121983278735268221117116902778495990976224878907676249795847374181549533032774345755426702539129011624662365337561918323565104563017864826329801930038426458075959341452260863052153374372434429005972634534678453612630758384908108823424129584473544298308083333766222893529521996279190928833239052490889708931245566756119557249752725756852899160178578704241020073425522072304897803319015606542648867884132416108764420408899014445410640274123508056388869080649357923418146376284344755127074599007847279425068562717951038366650169993608458631243380246261631915394313902704264444563997442381040178730534720464522408191967606855895016675219126850622359855996448479886971198941791014628045437585051103191057092344242635171613358413012583103541263713389025672404983668121990896110162818378183559578632864017344797439136249903316739374201830489096268070524411087729379711982059528273793870022673511998053056815135503450308726494341875949509995592127965681279692339826123544902146718967508795822085038068412140607765409777936359646897080917121223155933151816100167543885987570392510653619125090703498572583479662365133755913096289548123797748110089581613192276723356009056653995592388791444766999080399619913344779942760248106762493014871811921629026260753371634408507333052140303195488791962175818806313108555738177504330312886936562593005670667389912835019829627245295647527935547361161906358353106959425662267907724906622047577382557725669053284339672994287009295765694296034883143898314220089410769553387564192092285797566145816156222676582655601976638991307214847247559281258879332600045229159296679797708045889377799506852379524442481840117050412505159339093432675492335507193351092357752093012060562565237631670144016629243955543681024828035237690258860496987363316450830676770030796879107746608489878582802319588962959000473821260485188295752685440457632713658607392410532348970170366748414573753547304385896318914538794924602574169485136253660592111013293410199527245618529740088386610913099426687952740407397000727675703426019475065107594446396438644820041580985058270626921982115683503343512157330540398464514956713641352473244497409280953463106525132034568026917169232366684974455890165417185255863346071750738042767353673479501059449635682203611087011714558903242423360276300110087146299640491464306083943866199304155647811435147113367055618329036804117534297733074476445139255946678514749985664440463112998676184208754074112034232452851747478709770985281757970030162458198925763009332247366211095504898805558994051504198838630355771928347009682641944241866458469941652801535529609985902666366774578173718394802594582169829772266495650601368895914596775220468021594723381480037913199177971240571372903182649010044622690232086102024123336282078650551594428696947337958920125971719341608739619411694711250391345769526981571838905766361697622579852931361900589647272750452518376935449646358146772735114338960590966038573864873734444020605084772860458409164023331273777327802890875098246416519997713219250112055146235430454987413477114300465218152912517692885267016098265864795866970461070176388372679526414007565547058430848390441612285018990543052947042327191780603220662289680653801843406440934694609521001490244063620769510823886056575333931923212836141220529126422402905537037175399379503946714975807864919619538451059954271734415666476780807647035068148752109571774512116607638857810313510214547634708376135759224694953128795194568175037924631839651562977449758136337253069851501786256920744482252867748489656246755028071310275813333015668207649564312124086577557454704253729516514639770475424163210788118049576528070663475998399548750905674077271802193981470371511385109976650884588882875475359437835560473681294475270964219430403404427429442326120509920546489464726728427871858824264334107890810825601186418799200993246758681328218139750448823685205564811223976948166264972784857709811187437322373611605290981933276796858701805686221765271041723287378205293611958407440615832041675681571668754325717382756347357453899934171774118690422066448759354686231023198733146972748653998742378827194031082973099606561846276864467673472775966454365228110458151233593105156280810717463374331461374986175653167919695924446299646946003074471460533843950973717322655504870069221251761061473472435160291849997620719261598597152011323677825912339608212403000456085903537022665769618826939342759536268766616806139132856061788553997360822814477664460014148297124378823371340037802060816042459783977545245349432795871452973502680739714323172116990312570639354252204373333860033018971684725710268247429487212782992326289971849356551339952452794335269033661078993050546258454654840589287355647687773248592366337911692510744271653385939747521302350377120783907401295304231894395833915749903457198988766514061976884559497376291032921642093961505522845277868987789023998509918889897406408723042679413789025846573184826765927204089650962647466953100963091172644168471108641141496552688018562209983489763553579215680534284560737868161287944291236308654310419058837082810775400274557251666515819478803090554040361945544067594020170152935474801471437996260755433046156000298695659873470444514141998053186255318169064609851982798515018511849796633095699911969329053487706064066565630788252139775741766455760194754739286821862107025741325789834612148268479077351315325991983202185643381532780646410555108954583322121162643614826824295946236999545046230331589220493384511519982541130681779033562911198690125189615998701197547898402618134041100987166613100348023871268307926127415698419404820844984342227275727966763746474228742209620141185172429184265036654820352380530449462301285288074587717970538649232302310792968933996279982803357465668883639909291463261432050918167776457773440933863243430470127792352533825034223501345890022225948639785672051351422009932297302679016925561077495440613283266339264926790845435576576184926507864766884773318293844206390587362209410881609379851810454436343129396086412303205197172929312607858768863245919311819463481272806582519258950927332236831856184975349231371509938264684746624458371111647475691074802347693144429670669321135198384083880768538604188316559321833249244106836577329367124512187208260820215512741828409065199558015938545173974556360121389395023425809212676458964205769828353419638187043609315326436836091996156597473055140083067883662104713012873290596190666068629897027149274401173776685027981465667367726006728773111739474217129613864134055224501369871842033911478362925411507123964566623720880722495497835350170873055395231028065920463232756686832353501950817706763437678205628225861467057067273120927386309205254056081036359046521963454293664198760623343755534526261230371093045841947598568483093121644487521630038733708885491121662902854647280966362634454133176109069249496690004166620186789667806184540563822600967674880993586104546996575339787820045500768796616032186236688198838182063395341155618109576995177923622106245204896671893629131669941011573755114936367985922928234921229776659197072956638855902062623822660911600064383485529616181498059763148198241721833931024514126175074972272083882120999390316705255895929098449502362336596165418710655184274816536639658999703034843969374716356510903691381027674095987098465532200853631299091400592983439940780572699446431333307981953166049487574384006733763790544613742377719118568077800686562165507978264620660593430041744843348860863666622088798249455837895463414275910647444340029849678981794392349611347509072211629656005383762081450116400697792147952551622068357460983184816551111251148402900351417292172340678102732406713046189085594920779084308982203537071284348014188928940607619573442356644629831233320109387923263947142559842498972507648475475674089757220201423786970721823068715813281163135810911078303486049633163726134028336947194002733176842975535084205598952565756398869968961118934864698765647166061907564784438189253359255572936761393922529673557985952265871725765539284886739217182898040388876120357411582290206861565877627569778429050303707985331670231732194689285171437973398618523221077331195241690413867757036993516446013816711317331725049914291606138104461972599856762832392332264411147660670574403892116634681940512041273764814896463468728168135302162995504027107738757723586390115646210702450227897684820483442808762901284676336789334143822819638538454914563887813073892262247942568855926331188312721515079057998848803891408009145931584801809728478786770901919785265635130233816852594366230245921932669804026778356646933039308264135492920718048926134726209960595106515040368072983918391486804783365685976141851800306135936006095689565246484321834362036552625157331695056781451861064279553918982278139586456480505246657754679415793011313516650923950933797936642152456318213195279429308203890764833135325211527034003494928030836745159419389074909418885866847443156831129036029665458557255804753462082234589298157075466227501630551384904836888396752125655373296829406577969020165229001613983663865406708302939343596875919334374162294394064687081617811011310101299898582559559976855524929877423396743974579111560878743936215830036627309806570896079290632296796349929635709757821759345230691534171276726471691970146623459046522917404228713482036349967892109399450393895953176126425140299492569174476966455265004009672301473556283036816945747662931624675436418879492454406199950708386120985744161737081084701983442840159808548333969594849596630413483274840216111947006847209166418131372943051034225115922149623171781213657291983090376190883354317387994393313054798545824326696041664439452539866838020897124339562680017195774227748965435425054614388585458294294843074222163378485585742055632935061843257984841578705484415569341130628014171095326267600336497173890779322332000626241454747160016428373192371713076121666859282521331516353361739071641282688570442609076383721587012271683925637292371628613670866883151841878605083660383316663508241668185088886882716343266422543904884739204288023158540099676580498466123341020763233932320192541626014487532544458134363470567527948737689663470439926615375263562344479432692032401873470272084984965307727340596242173891637097233849609829875304156005280611957163710577288491534337838628992546763076340792041787035560205932191848823781029381547363556540769657501583316001136772082081151028402309689527735989917358217132463232983449959122583387109822590724619484622771452597846128009563886539247992216717282655231986494464197314238668904505159086446064787861896767061266425084158056007901963630855290605984691764873179640563282159212248079623586256040727134639182545716748005714307144738209573195955740391846962231448890085795051173050239633296194870648612580535717829871229852510593401685654271823506721418556819632950252474731979708239276827563513202979644607652995186346598303143662992783010532110806949711652345616345469494491823506573591575506298683837935458679753460624772124833290719358593471879641771322922768383971821943370308781961199261886726092651156518102073117177921085482310977996502110590770809282973522510420489918152970691058685593511321124108589847705864261311826453099901735344435114804777929930195387646307288140079546471674296879770262608769006245401734807821367608238351220335745736223915219267868014871644561337539513650427168140891547781417633504849727670181483834012086436370748629701120110550773872815322811925465764432282639058136526664814486900071604215397562295415954796936490121111859524528788785711020577827919871707803376741222053777887099129445669185753918627432590716299768413705391772944600955659076325888981881011756399686913496303831278913644939600331720205674416073186293396774196168339402812352958035102645893815788062680544817180720583033927468251400803493400087726641555621218748849706820398780729802863937995214410199754306495213557594060557085943141479727005639588012769925022956206946841926657860850539167609969669166922903645407060398002926504481969358452081869462007625965417846419076411608796177645702690351943434937124848176586618136751273540250192872708974955218576824390259508513690175391790948357673748520902844504791947872716823721570222146995806830928413248398334974973927735775303865982678009643415184961604965840149720181572911058039604814459287743367136273712851365097497356852115967268967894229153381925023341578301336272424898714888770700047181676563999000224563304351294008629834121063662257580121965354246348397283679309657113476334868119079749622817640348504025720378130799696563078918842746653514670782912059017059578786777258806408925762226397271517364213634956707278858773693598767169085960893652809114822874813725943204168887682746416156231886950477547910797027808192766459924295684598157505848768028219771963390372170818757543794430017182681004666692637128271239928492155037337975667238867872139753588064816908773432734077821559901802105117728736165716185782197536788942306311444620080739644581428391591219416298775798155878214645899087479492271139370144972660924090508603369980346698255809163709715965857152181759195043876884500606158451182531267850353451891814783393748470325200871686702579501316201087684437386206892118218424680813576578231522442632371391124967442864827605972322376766845087732444670614783967341733323975056393432484235646603887921364529620187350440397922479314573867231703782819929941201261243737807397695084677923606890477523566358482097684662669961825995034194653351738274976737475608530126134095592527340853332273144766672938116956501036002427487905761073679962688860214519068631188824472987011714948483608641010820978573570416177658891545286935831122424779514243546104696296264527729168021973773984937320085539463606834748438259469158770908189550416709459441873025476928915365799528171411697170833557319521940917439702761826863817997989953760638928585240759462999259905416435905322119837207130445941013800738030932565966469979901461455909111995987743624254249399325520560620806904181490685326230563672922529292166977504026896973427185905376371679507711991726950009459901473294397053314054458302944086841811705510587243162465767032841395779687281402073218001912794711682828490892722263864306054849493244234044590382615867190844239650463966492435161581699744622908564324490692653394202071544386157423390521961931810204702612674219226557246529769199993359134602221083517399474645472961653708045718086127982481174725573408087366284398572168942625814010227942705211522238904528528421910260300574324865245714947448422769524174554028085417608815243542009247156626936794481923546694389238601974593711895547590477192771000761870826482572789414123056864416163731386947979702726838302907244135728692549794857669116512627434738224125116442539038599010790186450110974989901078219730814135517049004001777382249058605183795201735065380298441011863890752540109633926289055113853343222380760681255772218210972774614331359303454878074363020673464004412433437951373126835533716079965522696562042205032093241709968553251634496415157153189067994879616519337395034228510168602554572111709737837428611305518986641784340247775705093158887553098666203504953228727744055082821785930717274976349166097128477893969163039602410617801391575803804059434034651478028611828852280689351689497459613721065859294764724119922011796006183108134061847027385241547873708797930531477452980525797924699628724240435136073106118994072690356153956470268841857889027868357672883739928743024019371207920893776141021920980894073402162637295210562098437851271244286119012786569068603417166678086891568028437870354496934392927006689007824619621411384432452072391386441454160412235864550862117936732059676849629443096105881940574821577814792297214416229626059288729336780252794567155668606361477753379879632523533272862516954156026568106444211983801497820644375313807730727970471292573590271466602217831235251080077593832274316662285237549742333021987636176543046246225508671744647985483256058697198192421208151973984702914775634454398060897386476722454627243641246855894499739579989081954729133322087477927630489407122467869599461722003872682662576402429862072702310976144974900823887129280950526294034702192069917612116136074063063506153029349090750687157748222944048959280663511783451237653276687207021718674550332232566846009982962562573351281429677992614870399176820297745061665231690764253891338136419817718060048094538584845293735650854660788804363490989372631338028359716965587447671422736168705755096832097025884207389204531091452251935702128523832644213778806907495678781329041662585145178755042984807376539594825424294852927126925929428290917961641510763335832666478396149549353277666031486000435232460070176077247639704936457612645287958990830001852908575364276800171224257012135219786429941452550033568305896938080767399292306765643732292915508257840784458357266583178736585260002248837332907440524122986489569297395320317878096380387830981100718178787632731095342602626146821887155680720367176405987604794163868571922954676452950333020822249632786447929333807142565933343657558662663200553161667805085097636495294397439956602886666366492702229671092338662290776483430219191210165545117917783627496238429715996542414789077141030950493885019280147064191214905499061125796804139190255095219476431025234795360957784660397329741382685008680910778438248510666001318416071068706838224147458581297057355723449476906482907738755244359310939900420707213157125895276323836198681222285972174185925728677794924147028856857037173456905168176524935451405915021322346721238564496890792867967558847691740105572112562529238314053299040714678460205377384278212100582911566760292651906710163007843358987842918561272908221883638071919272947012736823621194864941144956426109183068269129789576848061610681548121950355491921896594479028361621409005910569044622425378500737233602974134869847860955715138081348143531806019827782399341467984120248102425624046256818954243294375951456740255907328657961570378885183712250562790591845363380676521096613381891453600187202228224005117021607471840147683810828611869885282678680652294166062672610819106011638716254896152948653903017747485440898861364645402256677610815364006651361857350062223531880407593541045649147608640692751937042826816109648902021566886249482613999792693759299193411693653332426936655133467301084948882469441215202414073394101295066431158247957007385688719399794411175936385627257347671213375440459580602314866362839245195880138269927588218266485833567964304551378747110576547892578483613611630941601800339846313399710569458175842383557034120871800013104279557229586912881429056560240330683131355415130073810916223061580260704685307921613539137681744081424538161058491918675347422475506675283165819411168026009033256604006385871192175883391684470182498265341951878173401215717548760477574932561016823686429391602248291551409540745947937745334263259194711792314595316085048711620706385056744284208291774005463320114928955255984887921534829606988625100776459037449566051560913535831424272225192383583896781825757661778386865345810765825860267643667472648567109517139314444222154164921301334193898994522865282205009198747198887276645713272809780598920324296690512680504440101697920151128675573010894915079600419713954683666468292153020748449187723227287329064303205856805602557251298834368137125533069558130594377341791163780637833170513791144488806353013067627362128772719154454645961308999404344007037972154681402972306455938910991799528727423638505139733282386489565427739309135867323650899834840881907967871309126163655412148100431245665413559900188024166412318841418208462242005105063351598244573964040634180994469070165339988224712765566971706970962141392284220961440112984750161993385894184653778654167900694741663938587795114354267652232215230720520903363300262077982445575175032816999712906059494849898754842448260000856002248298365761106503068310311440107064571735347922005694237579592891952618414232407773976836644767489615930395564369114409347480301711483927477792519014798324661087479493815455963493708785333142205457452836774362912519742458183136012228229121912873751776081874009441099724810108538370612750976967364441472013192539124414905214859406256445044861391376692533508528176373398916454556358716328284408027786770243262545247698603962321161201008117835801557777820745482439528726045209688404090845426589456655705006769223249143424252148990110739109766925498962815886617772917119014941425106093904943970436090436786411741034697106276892597622465310912826798809433086763461332522489844121409079148659494832253485176617857476811024078126219480981190853435987414050714379608431490469720984558645791262475808903955827541972297213088442914478979358877677536291529929795544787142857712892015563763936049504483991566593637913167806754917839210413314781785230186288679606031595271636346558034867881480465015639207694605273088473920174107102612560991254684830664271647285702951669645309525009063301380027473260465941771540295549429030731559141883898699573967699405880857692916048043017086274469620565136468129049921707163216627786877878733072002015818826291794837799672312728949164499167753929873742570898474296093338163639661443210140727477878965123877829364277075202056586617610866731604402111672712569454175157666167918590764217203215069418437850565668367422539486473927347641578645913041209916861005224938388822977075030254776807779607189692632421742435981034393996699412191473251471113645136870953842385527380791349065205226894542398912873520951744236605598227374237746035896300255153806789104076798771622095562473736505621757385198521612501380411664382351176611945663024732269213032001932127200671595849170608054147765636742833509043764114352800935800917100315055738878610202884024408568741036112157743494275832934853765047756969620560162827010690395940739978890060120838962884121124340899839081748868891824272332053450652581293610821601887576662210974379126737121381615741533711340968583666241330723933560978881571618920811267202597734564318569842401024832501994319810934098564164872474388806192949779112311889030745874586639180594783745967110129145332981397264018328781291778137871571444384091405911105266969152792152342147343762898945968757729214466454905327699889972673668114625772408868659444851542969331716367460345421033316949698556568382157148538902507930912698638640488558804122234976149865497245494146191911858390758707295219909295579251430726648800234433163695379528691284719007409399750172605156524278608197096376646366704389459344217961937290121590057195540993095339840227807070209685375296303620054816122858367117508166868072834825787578940326641995979975098380253539663228031372098480073959114452761728186187763886863600362616532029261158141504603048676442065290165833585158661773562574488764880639791434794156070400689977230530171571608271514426421206320316428077290036913041163910929427865792226983904163915543144814450335401193457845331776670130521176681133651995661199063495218192158736858510064462953828168213373022182162855963572128273826643674263285667466952726402471192412915447191369417888730270496164474711108160521717089478072383980591817297903526227050692341016256243937431511915165785524794448537038728401817832537272076290283850722655485067031311147404665584104149461043393125090414842303222446177778688874305737323064672161599513360994492353495101014560401375786471081678730968875247054724756738063270310017380269721991241328047042620536087393205093147918071962001669640127329847664383634558897299964797898350950664162209657474215541085609762430840912844318254044834395660516627124121113188682186550121780620551001767745182575405109795550403122863715402315892994473753592006749079817077340456429433031351020878535166902821720024884333168640550301128457579342477703596161104791761576640179424080293700979474598393058082358574005917368905883017173710085168746303042711410824617656085656051945597088579356743666212507485700781278758272168662053137122435083041242449182476074049465650656656789805590512167917172814297685163399749986913745887049507473577880760778451101070157037350675234392553278261799334728889799141680820948379894039732407079565836130290655620359030533306890262617602763726001408861343577838908038512628514982334607626017458254608416315578001695363573819055359815630257839592648801041631839105905212932254804342621885562808339051827648435712839288284614695655239738647253828150553459460466423610447271708751708766188773315487669664987007739289166903541259300109882464130027806703005902790482178298507626902773732878514211234925985116320013405910408566849608116061382860921081815534923640338220159458987067778915125766405644298823394375755630733692819234904019912082374344830097344258896756885506661378533847384458559602517155695893018741106841930035274660316051363346364104345140622951108563646538439304017967863331436941869585191846392329756076187161240458692839424981023608431261110589100560489537935121688873836534369910729030945940262545026837950688098300879859919133697512146110079673582609660619105144174281815880830020600384353500661491176390915584266566053003649493491047171708612578296454051126392129522343480764943144894249966497269715232425991107529651493297112992835353557277303305600910352056601273034253323537877380892554937204526667845325520017649846202292001801386821330417934660542529977882087233262141504417507646797887289097134551174899698454356557897457952090203120812142780932773596517347651444446785574141971679799281292256153103173150257508757343934782927962589761716605294103002007872589930785253403316477633092217442011219569356801996873831064059006823676458583067178699564267571634128318366021863612252854647351620492074281448532676617505724818999595701931612049807888921820923647723038575291548851565013909575615808304038072515980940429945166352983795873485545651942705962593206508092474815268294779061768359943004221783085471649108656508066297802801040228055173705164551501197588386606849775054404460371328374374818361474643234498515122483461290602729805478530411157411691142934542122499033324211014303009685464990395022672027392840663292693420280176893382869906737582813967040617977849869940515671903741263968144534965527117250575959736696677353664393372094675734177548018189838495762532430735844898884152821178678345293452615339554566748828081648760480080029095048662996583248696655374126623201237150436443388233004952723517013605432451493198653172608983083673178304701411777673545224621778778398629576978580011133838133636099741924509659281413037472972956851096270457842087003058760763637747676496879366342578181708665457740886304098806254408616962867899306763317911599676651131295950605920170915453907286403222370029507060585104918137491718288276499782493544373762535998233326884676001371509545522100699177035324318860036298304721932655138235097981048550748265186769743207329403004991767505872718250912382312558721300249719973077229505621050814537335284328206818705569404473259042942647856411665413376294586443269194954583773773828408468054011813372432161042713654675094728444558184725905404357718031447156660868007311234780535206602404825704879996035789737401566521978435346464573620703831816658591466932859058953105603674568713826651773979878579013579854147512279429306162346367348082437858245266107453800509197370033854522676938872645713380363707144794586503092174427280431163264333070252923136722399426299736240734174240787391283476036240982822687072001964490374347582087324455030248800352725397486501107204794086626224962071500128437260108588519252340002204215153052116276658666317418681133351847973428357959624775365347436386640373180023687097053545550913294303651147202355970609629475502393463307021114591596068432602830380344754389920300794520181478939832760056769448541246539093036009562641500263314108541998873265186131085193589250498704041199421036555991421068255877343290039386872718496457356410588346112811934077753530046798303948817776764542632228456098386112386257957264270711193728779743731974269683270938281556678587613354793083811202754329763405081740213808486881172837817152248317828839486388147662365862983858234006137313982585229864846240482821593745069352204810747276461056134767964143551749168283924870130992492898711517481877268794656395937339088141548984466800022909070530993912722528060261271503966970666651914634636066055037368752765404283559546277211195440762743188776299021770621450141809367116009148760357586615012756917826503844981845461229614684405823189206632783275454460336455404564242780068578231232368212502031176670291518953935852394146869008245263568593308700637320039917979364009734192276287925106529892001716007196490431238237492497983695118171959210487127177276373058080546589389977492131215573070421682604798558617826498097020452203637273091867116914086124706396355215520932062473689123966636248509758909562209100023003911485571272301796012479001534377525762464399896904182540068637814173142721502234488867318361187446722182131568731937604216870976813827210589645165161068917398069982820779249467732046625758240561825643850270728190114338392825222355778868208510991213155514033894172327398282273962739850694420987166884642601251492009967643509402492027205060706417187940629517528736209743670527551795084349218516282403429548218785411229090207850048843520416925812122096533494150199458240642162166316400968024274632726638842647020370180342882373492004445418989496925394952436660274026322461548812397264044487721794934694226106536544115385050961895904422241416974035482610958550387471509591733772788899087969906229067071589527273480574557227096850904220676272455753231257741148169633151887399746824848656148825649407832907676255973859448316568517113991851537135819029108955245273745893097260059945678854184711251996096392722588578427434979579940321961187194325607294072040509738166683922751757574306435205330316070452288064536965940382385754124568043144323882659873567857851517369542083276902077664288017580637059702368758986230322757919636902190994445950299878680649594984655342232545354297677276385134341834553440545132484377423368191267946406095113267219817871341671133392761467979372608306582572876072067607407394366934183060195557836461509502083849015668389034073406964545963410937168804408595964871682400444362701180387793802377625425776970386394788607014539200568057286615532544676323509541267576669166837680598455724549683894101695665814459091704918231426892281393164661616973418548718265638763379202768423067031366649504730742601968635864587305446278899019961154243334451068927855669298539596368276312939492728701101584925101843254799723717030898131236646519219361676350975783467268641772776240488329648395196900804304552763705402891342118315938390912663365166607070033866209304992504005651227190181093300376984712361253932070595023770158135585166868559616275972549441821970247623187078764725594390608899048184415080449707898792625424148451908506859274469387793538072040919155083916595107665733670159864442124945340380286613432479660029403821451732378756425818831983104912643790056603856652734154445992945014859499931000701860613229158606501316385366546857751153688002698388402333435478423724106979366107047149834227847694608411728924547955386294147571797458146926178821707550007077812580777953755105873052786954422770764804252269013588110297733163573566677878700558724009161128059848142576931621765573502239231235684369037886859986837000444080078595194988026334905652999373769591773421920232233405169117247840460901229165553288718639410855309842507674693057889424451475703607790072369830176634363128792923399813945833062741580719929747936182557403803431346321801603487031156900079601400461984826422723763097596415953401036854361565787912560638031045378620323186199322973880865949148635108776617469400497235098865674592337871895286406227960614015289357608318941580974703957180375433555485760862263812044692555566149828286126288002838194616985059418083527648407229238739419814489423519596625473643311090517970933030343317862814839102345942090307517509083757792956644145906044973070167726986705594369031816703519646611986644042311689665293314020661654312968312471485098663828877943917922260965672053916593803373892385751803950161814516814986810405286301168154001002482375154575372633247395415606997734066738125217455909755870324986117299364995686142246264891873598436968002430303958014264732995275891311258272955707324240534478402737495620309229979669741231718725843052785144487442087626955603067110794710395037392469456277587004104203837223836863823352589019377632597479183714167963793432753838021475370825062755241372506196929206188971442538993612225427059789098983216560072861026053383813648659953018128013288755963981470640852251327639422503987336268696121542100496603814551519550981894361849721853105357935128933029068685741300852766612569763298588639017445896651030536285943064507219686895399412299220178990041907558707089914530833392227848783222077831869629888543973550693932885935384706342140847756126038595927014792920806513970623552892073606874698490989425105821537929599427732928535793346597399116725729784397400176008701457797642471327927569644799687315877081813819581216654604650591648966529900473269456418491748648576450046088745010112427734805457610038052025453805249906778365147015427168572204168705960226102648024352577169404350870166672721346742266539617090917200329372791072074834374707216798246176595137918843911083502607287712567138713129492623045781916451045426266308686000948227202463915871762351659961062039667594407035402576306382722555659052883557472189755868471710775219009325945078150348695680970771538687699149650945371347471086202261353464074810347075665963235152724059173535420705571746390525643544889748766863155141923508505251240596992578722705891361920186947593205871499495428540566043761207231210469312117261610862343462797483333400734047855247100681378787178460954699535689533494150262681344947296076150338542701048749597530350715297164290699753821684698702187560677092115437984770631928612912489956809574473785028185467436655179778023106611644048247473233820045324166496185407282393551079028159603194139095191599474670697458071382572932684620446911214098466556057232873509786818049212161058588588426699968326659421855612914652649803537859693676774143777972063033131685835837531531327550887055211104628785059308047789069792526650559442521322167520874802387650301511646270097978035086719377240934647956081206935662199489787264946425249911592461714057461857810060718714428541791976530532075387996292098242260352766933423987269281380621492362719782076786666037111435197925723316662660095604606215477904128142956892285916424265570369422859827444421330240741330236533703861275848974987713418331334506377702388472484119545503408704510231861178203936820035736343032339206713946247854016249883111587188566634646071789794451540756183923309894610557313534194776437434499598072377203926205789994152619670687756592699640857085970238088597413504159531371901577525701311097708042560745120074908699040684242952264147467916209159181354943078157281485229260661155181073058085472419917025131697970877553400741010899483467410709698762304960003237274937115307123461584554522773599257580984851113598802281561945798845858707901874377082469603660630134617228845759160513651194436390742713876400713408599616806138187733440606651111672576460985117207167931568485060494051493239589205286719826776476781374509020884271153111846212620891942785834283664483893066000360066849687029650052110908905777027174976409995963510951284744142522335861841882905139599390406923802841791642994534545029491547329964052167406113582084450042761311273753767410276082573663200907056389366368654848678420749979632167447333022721676830407210082154029338565210959032495847183014024261552261641943188396717809756681871554401853666411523934567469657379478138533950324749355303859665807516919368137232843369404554985922349179616249252419071337033529000522606709468996470471911524234605734855658537693553408276337172055477778194806979283039267757612363479182160796016269298795650926192195242384048880574620337210502311905672112419207036550864946311878515081825343287818917344793676135947632577459126011539385242555616075792585722622068744131117257372122463406220963871312542508242999070573272018718720450240936079234513791580034551548869187182888678220742084606594079936585721303657915328006232100177420358105201624311089245892630551875648174636078388744757631779135701941057046175783771316359169111006570334594128928537497438649171872013531951438996649532643106426495063492568810605663983393047906536652184682392108242943691716110871317947664094245075807399509085850447134766940921759765897913075539174823296700519752920878312873980179569345621954124528524247775929838341626591243226157882918076579816688633976392930595488734060367135548037948283392894851068890125980899677224378922326287672661902389910406988304388906971525881050464104714540351285034656847665154323791838226094259273332277560391586329007958964033648583328737922034591320335881202045685529352232547967251563746507825838538984410262003739524064501033503244374229079851685451244653407686963325890184714123439854046290981500624131755601929394469139182690790688418838485631914776005553383917836784719792858306946072675163090357684978728082225833166605785868298060216211747469100670447018244014999640886681993376739688539196601672277122135087083081939714761599941803710573704196403106649298856702047040742652389243893569128041881577890625190800162378565810891773104627781439251791053294150052367309053978864255872933247863983405155312599935335354593725006381109252417928383735271103524669669835637512525312048348467191439097731366609611717610618774166645284406820585639113039022493635772324237269752877282754158062687134209085865828086342188493164118072788780567923603247384690901480672245779645400583736889331582674999161451330811606335045487990320847567267968284037411842724872928569444046088583600685337228807107148791536637640494902880734371207345355270137966294105998261290728858431141065085882814711962110713302605706219068483504955146009923913193840550380162193853751030139122566918080908029531133916530701003185104630128153244102607406522736808727198053978281074227723139086378815220091763369950163265102561599291913948026523120841457627928551405466619146376711327224385723569753101613337035220031090552923977000372486482112966991753483164962350641372644134661093252068541837980854388725032455148244610313233247763425081454020407288647865786129708619813620579225952014183216830674140438275785382035712607405693424502962906190191395280842288807689165101553796154826999495823616427736438534076528015059272500634438186711465761364175380375207663429998110772204531964072461552770915388841325066221507043518911252701769661989759647781305751857746773788265752454845578109852573999119052644933598386592677934603369831927527119080619393311540588269225244799565363386475533447526143842188758033339289182616463091644528443165098573429921368223683129081273755093268398780686360272142436401354946475110452070962112820070686452783161051870261691998261430407934499182074010322181850999355162292685578904671932647155656091134498244653785683786041780143326829345173012938663378911842499876535036782862837769819515004973868046202204394300709743681188255722292265172502682718150146318527258948388522563684761842087314924210621832594221878094621417938049554269405160672141302249071015877456052116338122460823211966360351014988321333030957399613003127400526440263602704244151496871818085554993667193296374103039844527702453405134520445626338975893391075876411789551153296500322362913488747340703846065960757732766858980539097756591578155092525530135286050596771640072872876941539626931802914485382641598421993655139540849219179476150189047465241513479256094778034659180109493357372319213251296751613879325417868025089119275769827361494097492336092775723856267965666620453309709994527281826593257270517401756422327186303072099772869861639983040324204846299135687487385694321744727321667316765024692436278565052231601982758467410624677155245370784730077104047596145278051572134748076587462748441345080295846207593627431678856908396273105037326854162926794183566291650783347320284481081102213908115089548524867413955016144005451029234094641615043039925728313859976607738327153807635128490571065471253455349254864519935841436203443739636531569332390685475577330599843975430046530183383243104614818941220908326713243352067033506824178402710650418164709696043311742742406725306251619747270622355411028992015363014171405011830738669380964632283561725656719610769420253738267613119943015820044402490896508011455787978747086346988966051633205068608457845044417897059347846431513128494835561663773022068682377170259225455602244508152144856373731447845284776088515127634534153903482453596865211068312166594578067510814467318937371023479207805248954105742016962549989466178096712568718777031675357745453799631543130607718100899400436267015045205911162539234486575737344232461538659286101978405334441523182197714596492721760277178231470651786260541096135974573160111072320170735608186890055797337393370218189763391914895386961362612335008375783831794984686988410124261789914931015601917024970932510190426859202708701201022996597957656066879751325649180837493837521367975528265394573100874469183204028306339875833420112967860489668576467287229641368858294893377428070087873342988038486357282366122405624985823736218695389958621244347540901274079753031652872672674919168590095580573711292292609376198790439330399371284508955056550798331703679529975066823801964320254893520476181257661716326746554763942802156351174894293204233624984739811098560596654878332035899481379094166139186749202496882072792338555664617747354353487434851748430108545661753462651264500162205544132566062191182371344628197325793500463633358367369768548741478004941666615330252726136806978003808105149254032611478276367333442089615855490768382598057960896215265920904403087897971868170905273779406624810380337337005542083747735176781437765690118036968697889531235863416909207531097724248765947709306413096783135711075065627321193770130523859518612283426242579275361121589392254816470622535933382015675553962567895834175714801003849563852356208749581930397744655290484394383054012475255959784578032800545165256269978131870721960769634337996418299724243432787992410094055805403920263924463630569154333564512222860635380514329101784933879033490990501623462272913249075450586862879624167329883203883740226659274045923087477378720350784816974445228865559864849438612713088767074281009252870599088336597044939836734864770188885984575076998029834795274734983524499882081422844873177618642472686495470963752636487832586864231249409132703776276251128734414238142291811269637989375124258394700805214702084833126565993695024872670237317623289314801671883706101021490097217114368558192683282071192674646738303602105124101230771584090057458995565100415768062921822370456467354494979653346415263600347978598681237992209869963550466662860498362826688714515032167594955950054120244287165454350259630991732001697901838169684659858235701201263497676063588282923652169415555763696694455013412948817683509733127814399543033706611775212273316399742283643734252400684309943325602764301366215962981602929404261918441927278271189940706856428481820295969842922084771434460171169644386722858230357664275891889093177889842911821752835153878621761720311566085975795134865812920284712727221364583838192610410629195115118946053720939856934268115770942022683764723785414534787353629762122581064643024620612502905352180368317895909489012843779939903143346750250049819311772574654327476025845994719261334110437458555877238940639175948069755677225506530768518467740567746357914435120405507376775674563733258952347011944293225465040514645749285427983051655781398115610699691566632891548095521639556660557632671405662300209913300762617852930902606043982782391989452604912975395542675174467958256535513265486637688603047189401486781210863636507747214789140226426668499805546144732818493476348229030323666318831181266573865265198787769699562232802676391624828935713411242616453767280113181815031160593036371928552454985990383810582871007219678844525824357516748697312358783378852389257998027865960556220143610923616727376316968678236109147255484418653825469383325499334784073574391019367867304616319381742249916374984635385651050554733266774849631228029368180579641465804764915830675778955843300901053907395824883307217538193081634110129862510800452329551219298407210411818251945981352426398308806326196492088677261821201844151360639299555731480500402432882147254692834549330066931014600194175551044064295956917174599137690703780703711101681049638061695477889378329950651763444237556783170540639051857344627961130720125876581503537377388650430684256741365499368913665482475728173522343540846695928080180092401954642795360942249189707547835685677410893940647266952709984469003448943786961355017286952018372965410114675986222576374679434789671951005379758698546116205196312492775966998518100714168408191825019860886973992625440045211849453516937539403752295011322224545520070179422085520359035609846118647694495235236235447766073129540800382807338519733616538314503018756564885514313658216415780137352931851956483621831381928808351900651678537575269033970192271389724862540097648313347589008568260821247590212564283237601156552869092772653027793159876974480331279131403112592506535890107320813440517498702862136851532414165814518991371801416752613440226528611392007031831355172889586933194054307905999317826973477148676597669555951188933892809558778457663578767230083602546851991903034115393087230060888130780916603202655251669938565231027629235607481208447847791421614345880247079302169415854759407329007109198955000702250544043271202304126427589906845145136398416997479520645392039143469781775354480288993484669642430369355886286077237483260298895954967132945013539914478187837003673865392639847901396025215699636975782036365671293419549510941601122498827983655157390316327412606127276369895603891182453605802507471295369847294129328829964106346609626187176102360934022172946094468332897600885878653746475164419332388426623517094626758531921921899156208192141791714296540336306472745799262447367632810911453015376943977570222032826827137206265583249427812314518922087201803985256269176585695000191425296050055087357814452407480270208732368425409425384119495768203351146636060349133906535390650193792755246330490872684920751340065655657307358381403336455119817077334245624581016320151907566104323229301706786678649260386944310214076471595196170073327793808436546707098536673149724199731466876971777882384943646971676484627016862712527410315691858272838026967871042887407131878506027664959928472290986734861066905333570861519377094546657014663234666968136139259740036242165360513134312345389428256702855178170821347381189463002521605092926535815871166291658558798995898826656141871167463507910734071685721821998297135820757620422784008885057434900384782687955168393066659460617533532486030136759270259695739427240775418159224576978409554525934397624218796255627275718895639714816570627720670327352370899688107422817662099188269394411418972054073103502246691248624557963266725440534492223509913982726390521034475765247499914488124405421722728108709905949359887802953875695828883505211375247708685049581128038129937140706699931964930708139616653469938107619056379556863496238496132710664244354456275996570076307361722586450353587232917659167060439830166233000672984865395118742443540516377760841873681473599488663414840430922241942067336210061073803460480800914216107390023228831384625468895126645937068984669430264273286836784647499702400160043059212125924241701610824232778329019328989370138778579260446394708070493517445959904907778160876538108751232397438102963350782895571436138990557520918726417261983862424902358747193641684102715830229750696102338333924504894162841389692182778162173382055926199813598617444910381012096653143810781908671608976416105997492996831630519250944878899616439476544345063998605480721076863315342015828059357098301875830951581351259017549626789586680634313817414775374915364711830600282227482636520500773601077858175468209169942911756496349185306439470614477590821480984800245115154893070648933010447547211597325932157312951289677030734979693991749052308390771469209748921178079486515319693830947483434809848478483830644478473356401081735140057410456946935053998883878701713654883734475159847674947828989884641641185632098085980601351905205583441480760486845614280038497534572934751262433595785047134156757755246293065448446039341374873280338108425582478145794652584173063977525009849367764725271315986222916364277993071652493193130725280992971835432938677083617003734091503146881323804234335755950764161494758886355529134433574482243337509738466639217330374610106429333490751217587252072895710919412627602502224997305923051120583429904441806660321328956539159520438365388338818255709910661609008567307276290272995276732196090514483849395863764151410528162405985060066155862585413949382263314195091650726160862492370117034066100885813127562666780577771386778740029972663806362013893615510735712583236418127386850764917107770886022760588222060792541546432561908580851577337108925821766191106904964036393098792151190451902099481800731387363610550503755709542115431880395777883582492113604941554809076832097474032384479437985357261585723996330201331973615780317639080760318109393716351209813828902944162404068711761996923513763475355778357571611977417509222439874137664574207743546713830237922267946787904584891486133775191158068595588186950213114518740408973254685367220312678138991877679499177784222887732563430471759274256324584824700705293824683233285190177634776135913329947723558610914342643244741483532303775568305664324674369794888456244108014617646006415785271037273345118326045291934622275119414190431555870485051594695782810811317841313772485780116998978414190268703565388149721736791777941099659289790775663185834629303987280411710962325596393442373956234786356423415826238047235602174068430707240534747980839844429735724806560005583799218784979591676195715277913608203863013770855637648767998489242024602913690548396939861415327959140516854053639926867129318720743751651748812237908542528613458549299469988077757654301927385243336666349875645247691801566184961980825107499637073184656093667006500472430778204438683300172366128455903080332088857531678000458699365177156893374046647835600312159751855632536656674007186136483239339851621710359224745979511998886402591785358374981353778408002014109020301828008642612394184962764893897082729657559278675662272910420287503240589674358921602991669305747700172314290642380518902014831066579473464946142720708301237662562819349788072938021575972061405672707506752218602791486362969930520496320934905490356815619842803532142342622891140131157121698374100954722607244595807685032093139059840786646026447565916297930950273653420181154424427084889996716198822666227293574949078197716383284259750628159398134610124629616197935341975320578469940842114365311124004603050108242804163489146362364373837866256611544329971488923080962539319792828381885795998947104657317990789299601696147709554965673508525381629915012819745464347053833279053760870053132371892882500435410868664489131148669470511340834901150197072677982399302212606421219633784051286862830253983995614040712063586298841806775835187490740844782025278134510083177615859404258366192220610638278044112579280892551814052982277000617662638027508330056985754121105817495393951188956391300550428009666977719546735200921380348285137156864699299670821159461846502670803285591532329900996973320712059583149192464362969955561958451408434650507314744581125489307151360692801727842516759182572616727112371207613324425202394539588630058832787651975547177536493778788444772442354678559732736314180678204556637738130967709645626924241226708015803850056314827287062835689264108463848213960140203376206370285094584307423441421943839585133636025841519728706969994442385638167959974758135169096064891086474882424073562180409589585158712880816620276957496679946112875695633180149406686959072008197176870286199320575810978580157411131606445833002743734691041487447363546261079601401007505829627492382867393357775775350746909478559995574483014445167278871872629106048030685372444664364022215299350549257356059708905304952420790085100164846902939864011388623690443854813238188612773406365241737297644098289496352784051753859961656806358160020885450660423331832093202752535005030278116024333771015767933371322837090457822074015740414156916028325786856621241296623886884834396328052966714131121887492296381193934655349224000470066117234199277731810159855684391058947576146084984624409701464187530269760282617884296156742033436944666501103726084711896567578970993075989567328739460896721355759539450039589738024057203776766369887890027956741453456778523212961513767171703734684888026433551396985313757464904639233406530322758812587154070620501800146273403135695956713246433185888914281998854334233122827553501043639919733941790639387064450287034930005055592808522795579678328821526049766597787260619160195011680042372058649298141572716659211116129217384826239456038494254806538194583699271014224136204911730019021288440561183278663396842251599343895594990203142275212511430866451279806825764238704326356175454890461042726056383711087652924299334972728148202786190210787904170603732543972499694651918215401613089550456431077716124322381413083685003978239597212605634054555202993383506956645926690374608098970469363333413719606760315965254122630261282085368288597267599436034750672838776761671072305750422226969343453520122649452142836596044355822189344047340808105066285880584414201199338546054445960923045588766627874190716835459245017249740794724736331705530191467226636418044990427691471758868032973223145294566897957299626634347400200471278298147418411692979896246666978529123790604584956092098757992932581041673077744197400901811610832808257883684245401461814565202234331628355798413731010411812521001254599761402220206362703160409141841479157835000022416896437003612548465501925053756986156412571442910982529955427236669412410028376512231160174997519898123130624184761591444591090122121990763691456409040233012849117849762251931888487987198477487882755100797263918508907070035178366276218344923722280358526371129137999933745721185042924896988545346723479865984544762826699946663578539195340871854961438195172401288115941916389262098458435455166189284431356824993159318533356252002195218834170902479002103308563274210376078181710954320703481888769720583662928878714440958840837503102281920829675057087958672836988459342529547588147103941273534375740436772663041329153357534344838829023124017635813942131397316694080670927975452618001851418407732763832653135328567659585564485387342347990632142933839110404701532902663447034147164659442429832236770616894278178874700776408565392680367172946452866563377030338781663204967790828561456026348528941914744032145108282396137913645198274490861996274172650701252885065122199825655012231048904115590365908218479156059574184312865846499071401863946213022925809727187060515647607752517346721580647179748836694647585947677326961847984217999667166172584628580595395414531838397089073450737788284885939032008512981941120660106911881017999458550219083652266756958506613515776838770782038667469242250188980310105152640910895357865132312531364224259805297356466336617292097038458521677828437845642859470712873276979128843455805389990680615661497070873370916128955357291620115212094625248631760260109040065667933923173482260963249960601660286979396296498136930392930706262944752117704591620678460477183176578602479395241126506970801063491990495941781396837463518559943165513964598825412538285378696087805781074611997882238332953324341146834568503502848453606262980345174817177529361601175313368156880477036273344359484984742080937013186276455947808420750563592598130497379003081572228145286872557949128059288617508508355425776817080424686952817530121893910459517644791797692324510191369903125622510120431951736923480308912124641065887546801132973712659843634913918863224759200217432447203706749482393812897871890734902328435158972291879188187464352494469616590013755844301144533289249364701481879926326079453155679963950645787060309412245033493620609868013066761375375363265365770792588468656054237201854358515139445353821850836874536357574145557278001385257889485175048599793095250125416413789025355382182094598239021754581573197402983467015378226125995577951070185608033031661448265376939960000517051189011768727610251482803257899373918549596556443492987862274401887605780548223454612521809448953583391140136980099045058752100444324689722510169811804219418808542184082487205898487759091162460974387625954828685302240479537534282683706349786247735520231662833656617992195039636405928288177917513896124654627359473121012047832903578218881917497502449833772634774412276412155308546673639431086432032448418815354056208457571892594756973722374397415048134137500994180787545448691524874069980124700785220942423937333693613721030152963898438779405605983308338116150575781992585884813070635953597984256011840113886396282959443045434644077870593301233531770912044861116609013522644406432465472085166786729292707760645448970174061961094928140586134925922686563909468041234809520352061843422106522708651694825454064296818976408577488436072184693879977937564234230828163020657208246056551267655792094078072105522806516724079687505807014873027904688126139201852814670242873063795294675158773428021268188439176832452574643251475462737794922790502748060794311470269461663756801600068259342297376932230068381953187626334574228028518824951962645638545604358966032559643259252590808652148241661860534109898165776033971982523067076016813564235424038293899755515441427506653510293720523993938329869568777226439081553446061967304675176871563462490072707155623943507125182063806668912468067902674588652251354961652110075564451987267658918102568397215638305921498708417346197641794915538682649796682827321379900743187836284760934451619483847359046646326912719914268700830992272616793747550563431807173491231868766316458512405633335650012967163284169331945715054917643799122892878726458438908380913042500240802715294392122449511338477570729542090792793180998855130014565316561472556406474514504663227158481433763017923808373323128251500555544372573028876138920269163247129357297241489134152066274916774207233792855715056855111358930677863734017642315246527999082078632117110959792343469832436238254525216126411509280096332952226795939676234204583245108076288681166751961380749028359357381319191878380251206812542063769728142389733846805343005091824054360900026128027766609219318997298718965158468155059609405238240981017757523211720741588550547631586235941778688470461891770643944163734103771776772394239621087580053730461921941456510303067675795378388496002590050077499288872597911724564198636989488661418178877213652390557740358300296226100334788760424108423924184944205622852569649147569464188643974644297003349373971057692946593241584754886694223767308445535921276916059003826024620932871499755467894320348958493308845012006099218083827044672734287157513011871621153920916737166115740395827868552766377116794685931367736672348648525754982062263586516358786338456174717230913255899645962028942811977194042509942187077029775984787391216156856795374482171271204854529046561303212418124094972617052701075923070208927144209798110671164617321783904084599018705729927383771611581979646937917023211841890763441036704349481462884407062690743741403647130680165274441802827620237661303165046160534016657388162393285331413708157287162245647624636068057292037426623751783196332247876092413299191298454024767462767316317808513669431111532530809407033149619382342333505013260646557864012962714899272825023999103872901742264730308693434403504444595093554518131312941870706656055239054705476207520650188338712634224974729516159750742079630355428164030335069231963929646686325210880629369479894849642636610771602271205848386497510374582554433431702660184835297414644394742009424242763842821514963792646550311685152623978090175243135205483272000562511122721371115393525472285448273111607630200465787249829368434198943564552689565614333827702557163389766138376542257145413183162651706402421101488563354607376241462484258943383170228658109795042081876888812801300854858912122151637483276938962581439581668076383421325722530573155804148337493597170149641027585142336881287787428762032179808626528780142481681374732216071704911268977771267164803004403895095957497281488121056357876398027744272666801992770102168907716973097387721962626713002953223435578950262853171677854920042521446251451097273628920819157554562352326687917694762864082458104117620874590281543448320718510985627306690443678514435845958307529961477935901568764851567475419393109782282181756475871010902353838266888773445072844255015566933724394900444971513875805480864789199427918151001782696360043458333722039552003312544643111176442872653349435129631297833968043710089049078867015653065539143801000807441155780504962327286916425481866129376687973966113053499446517373962152981036903039894783201736764387740464646228452283345411559742747161050445336927019611511287125754705784506347040005516777750135581091936201362033968305028651885307798251007328318574916166660846433037253931216778206626298656473304573628543706837149656822444950031215211237924265282538582530122969403233740545265065442621510263326406106742291173525133616718111585064810630347456031381494054140645354897455198826922547542281073396443789556522860974044990316575770309640817062846128368723169117454864194256296880148845774826764161912786985591152612100340163329162259121455814959143438506333083896064188245659422264715283253217993370156268186441359332821884018278230365527746721240484211140462629827311510308814248821408870692355958614776295308963574842012765224658853457965101614588540634106310288263980370887215368277863760567403574618842104882470055322489779472830997650730544805711761349991693486426365730247922057787674281023531438043490967760119866238893594183642999228417938022508736882952055929944084461649430728672034234588721800920160631279559292202997480353412403306384705314968725058783259576022184894419855474718562246834842782298181717091081434026265121076294637497502035239207447977579149728287986743659642683549209342568118788487072825013451942592707112363586497332615063359860471467116027793470703659271629111523054095755929063830006435721842890404029635814072768582742208772057403500533027027273071803079513291468773242790496180299600310362263362102897740047372606415402291075005606780818418906416692259070088873843506320375256567269586376313965038336474908780840161482865264655598659487605436778299051207756432811285143838851517298681560096981514615100435548114243942209404294436070527643577703175409562861512222770205186951086994061179170002136031009481629509336168731758021753741684894618311375651324148199328943801706225400585889381546911476069077927565629003323482408618427275215914559800469756136603244345719267526938757985397290557336434302212110842218410095049356819844236179477446437397338991648901532459327729166543938580704808063221541139496775431536401323766889274331092582895726037334825264747757706016875524276269763505116838005303305906893417372795259147455134237979631796981613487426571096093162665336513635237899874815902973564573881488726159544259263667253451066507326711086299130249753826660474971549014330208499890772628223102022917931232252099616705128998640070310018032601708048086168058515663150504745068485533036686499269336176392431841045639790153074120301715917448311020267884246246292214823225303680128690430663759443369060627765055670085385281459544270318423687890486904863474820473672708274046527802419078262210345938128755872478161266832784948828792163687002685196167395335303130292741534339405645235251029925575009669380522895131959965573060307591975334654890239177893249922371505937415641680308443633177289087475057228491873375199425480928737368425535331990471601826997815724401056222300727291305969468854129205503726176224868119983964834196579050643756883046297470055476301229084664415262258377994766697874509616868113631304706743619757221713013938469036883080787051893685135456330198214758164620483618429626265425591309615002808714769841224461497973088259567019204665153252725165696318818629169807312480756931225252447685177733575350756503233989586592256978393606721033228298379275833999750263441400065727157110872201516115308510651270703469588025990321392209480216873627490979269535295443881034301131866343378674633207789174273113160557424218440160686002388613029857728764038844586034872964309489074764307436678700930850064989482541034150571011868868896815807183238125850539900658902460060657818546078036337733336660229725912841503663948989351544193634029630509726414597330406848340829492966266663142885460032735704124153485001830428052339666702681559765402332321934727842535493139401956692819585286864122996901368150732624447191106681490315319347973875626176497832280578930670271758775705264022614652438506860343679726171233408110386034019054045904094083094264945146516350087143312171090764211571781234516343516755526263120652554830014845882718317552448278101497375907842180324657519399806635163413339118723052643858222548108064857125316344986469406915067950637786039078421723923843838042082482921010353277592001218271808421248098518786900337738220597389494632203594959552498759896563092235932274519200391121744044123217277132422299671390021733977094140014286980884116366690976331557595725593695614088018525082439515312653652505897014456420517276380016728482377096620200667300739788410031705198837840930940479606674107112382092046484557075459010130040087562787014102378780860252951265127652121318652967019101974612603288305703579492010538051552647539164030039863544813709064546705023109997324422072840186668859017474189305073282132175933419109519650549605864214555063157803208845182857011692358046865303881312907347962863887454658082946648636261881265992831841848827950489328299537999307289847341204780706780062097653506431270058007952594091426229650102113450234165586921368596066147348579826792539759844480095115091905093621587766626490030977506936238460718862020219607642496941037747641613166558471152345421687365824211480317888070686045564449590226276914613047195741479412972233160166331637791489723951427133533750195805959248193902385740290115491000076879787742505050750538924907992764737711620106738682773114613629768235872441198791191795759821809347934381038634513971145510679243301439425673108262511961189374779526499242918854649981130236399149052347272439558780105426241920473361243275912205872042769022842071208784015592344821218044456979852338959967902917407751337633409879690894910468280979698548401794144182867667098570058756974346576179901161887076946332305588000893756210732559907309055618649325264483107416569570852808273386710952055190441096410394201217605108141265189163522259093873491382957985351224719636679879845112847166610270457967954530911447772033979105380707734304444262057356166634870002210232174128662194180435819917290867750717310978293092052613269987065906153859123417621062154174757568289624587653976556144760250310131338112320296765162967654531768927231591239115193750012387751288625263319510386609436073403059417924913228883990397535703506909309925143319378421474656118265257535065332668437315572172497749048592321951952726776601557121009740937741753550399947781129856391100004700548366252473596074682571455451961879990455357237880580993087606974240469548895809335415737430586041621541186292647260400416851277396534226471955735293755422309057774879439087189334065697205513920475124233339899202562052412068770178183184350999693657352997476216414269124798359867150637116062002921430248459370508954913354181283823364643360474577885869644884203098672525329007602106044655576698048472553794476206830222193162730985700735758844088690780966290352915583617773052914751873214217090878296136224036519065319743493113333691758936596938122254028609695952379629982303134546809516364023284527620052044697473699573209986479963273412664839654428305860939089877574756075999296276573195695135914810686943536699011765736348750466163025965705635212241791302161285052596150787792266828476814105605098793089884651561008261518505300713686796417889364059383087950522933447977564898108019459906890491847862168286351987664479424934346326391839749869906746544048904850998123101363121094856827162337484915497349917161432788431864176376210656820605039630434392770264407447629816712834547547621673664459179120489555722280567524758777983699784425499579050199851897839951598775509076861664092739993074655930480192731774269782641690400581009706805052620773173322139313068290119819222185651176390745767892144090360199828721285363111800202138750069646324172338346686517065310384283123378616607694438024717684575330567549567412703044739560400159262408176466123359705584523372371447541910834303799222704755355911253952916084400620165880064522207750772830213499466388053262651118846368447334967141628680798627239782258652767781461301084411955952951149419250825754517330264376478177130254487102140723480723041900298584886492049179147233774497156583952463912577961801060067505677721723307854191543292397261658205883438408681561733737304786573427795118311493920942001894781184219161822490716738557075681426871052714600337085722137545175699855170051913051890472990927068730139069971355100082869217964120485839124888340477237985929957987816687780036960062572958129212523629581889880947372725036459602586561133951348385652349698856850590152351594680566115397274397608964138152172793781176459842143689666074114053858664924065852907452449751333461022536814504939791778025898469130578246328143801366152741807084877541936324993838058439284567244954906042090327672133121916574139714425088176450961537313386471028581570961921016137423572780150891701773933307817325598483647406577334862363270137860358490082827907456370527232983990035680889040674258854467746335775544149290344689719410827208567456756826887024846576283216577730803727362284366117054063311074842442016263158804445830204653885127918048447729805591892934251978109633909809255531645070608300420335234664334126655860296289674009633994674102735778817250521886275248678111712728909299794899616260877420650802267319116494635700463469062012982115483618623359109900558095993087204405345707182444820962326986167457958086183255986446490912778728147516659682821264988408578761378092006261844896308805324847413545750169758262492133527173240104939530159390812850397200374000418368099141112249901120437865322458715516219494793071089780504268842526916103668061018503868576493445687937613990447006412067494096592425950725804208010006495083637104302843495483596259971735322256397567551437420036353715542021082502873557582670618858339479957885500535433216957228825811992276814399382125028476352990229576826692847836994735848670968736835530049543777255924777581627244390002186997520737236472198185814670366936048858964167671004021951925218970112987790633167914282043661025568053746518545846507810482918976049991755596783094789635425271414627762640439347748170184422155388698041234031026387592605623699522308097930902112808336356799888072917215689101421314431628776055098328026514764736404898080716791819711455449766735446094242146911253040182905484546852807006454633870425199820678264704088926157298573595326521450556880656822695767068918649097471557482325450348990221345839617730175129011394673651087939600015348094920595527512201214833743216872880223603127370808714522491376115309525943532954171875267498657747666175627635063421600425471190248707424906980933192269303582025636467573092539628398625992594443132807516326536722439613968397609358323213727915314273718181897292514175132435185697615485904576977990434430264941686499118068985521551313780749435059678159262569478884936843820216649967485231519195289097976653592370031764772585684173542391469467150616553272004629863813015174342798318382822727969888212894793699525286593153585956789572900015631391831716679743001439152955245727814892280829773544539401895165423128439972584987066138650335411180451538020668764737638251165518301443974371431532288874020249290007722142384375854332459112577093820568885679565314244640158305747140721661999415217488709482756701676823549621858900371281620805885025865584854112384284172189770075415504880110881276671400360197313765142204123983735989355752654762769111778193563449530119589936383350195623896078857758490686268919119715519451534735784092399736862308448854758836114625840453224861011995313379718571077378739047825892258600418101845970790295426420571705668873293417867604388049988770005560470356731586670159520856552154796537526796115175837695123928621704453976559752786276142180417375612241559290317965263139084510505800303674679630147825289850317193538765257617426439990085229136338543502139737730377530252309411851489872285980566221260223155289088616155017472146913536267928884082511741791201557514665496260711922757082125431352053672966924884322430666374803886975825672295256054314281249588884735444791143368070568552064877155334164275651481537401522467530141482361795573545202402723129332574099559366776305837876765533790447417103197915287006339937452724482154227802426693995698955482754434325580397216886445273531944884107673656576521362854063699543689953116840843609861495491179232242852968647164790452942026344456939163541820982807684113272760049639794451861119231253837791789676829084445647336972661188502156094529606544511565496321050528700544383819459111589848231546594234157207917011526279623372380694053122587903152759950833724806449617810421805458069435072122700984407719424639720781301423231968952121982071293075836106788047381819940460332368497451373853530531863971525831026835837584271448358065173538172033329099711075201983010154473583026070125162940068171028702039609485952954594067394692443136819195490172598044250011965574171128396441244804401125290444787341503867305514135136963689804422329597401467671185731657240144832217569541925812776504888343307781125410860767047701850076976789062510284491116992576893070080915371551170355495805663916510263730461490715276344555175627288496659213188560410844864316840091469992315007775006168650363097199365870095924275751683357929567033817947986381754327266057966099216014099305037833162394921245029475109142359237588745392767978837288409611224364370166351213778277587962255620101297113874327613222856131604979932346860049901327182813581238466925234086247559820059972552974149166948287734934276742575903942760411982045467795445300447460952637192461657836902352606810278438196078894381123507413517009280186020216566272995654551901809013565175147026717749914130740463225351553605444974360092557960979588744092573423554040700248901931582420017282832441462532393067055459550229876259624477058212354320712292848885508624882697449202020917580598934948264932193686456097062131936343339507389971914892397011733398868483215730830041946803114861938846161578045243580395472974691111384787445456454188956442041485323158594055159751837196983547845666952224267914812864485528275228837865909724158318810786398557964227249511607990721110213408970285418893459656825606037653920457128481719699558756357474084699906090348147719865699222445727837037063014278662380943216569634643415899013041598322550470508605075889211207639836155457191771102353692619700644453467411055706483577652944279739146760940924020391031839727256594575361425140024994231829302464138776547626077927717379795589395621829371480587358847246830033750304693966529276028375445544958857662300974503054414575264299768781938095307982528560431739595965575225785017163970212133762523046349243146252346311738419423642374882086324190701221090951357191456502791034596756726280295123508989251498215991499395064953355726249300267172285950368605999578910312492082434416633005480006634391476156609837233038367663948029316671877716914930115367354351153021549241169361392270679831704326319519801427243386191815489166670958068474296667222263639466650228225204052158499771679052938081531087222475612585128484336504962023688056862300985901824611057874195750867004456025626458033621142582048936781444324409900883107379411758894252805674915673352287568671613410389702675730012629505920940978538282126526935553247947487621295504759727306700882676638922561552872082915460982534390479082170402214733094866581542941069095158589879478330704931641221842048714812070514281445841805644511025117310741926142787506063433182447990678879866598042194979623044644066691872268781145736097101239330620380793469404426210877435045194138192864935014803789784464041472820840950622976248547541555918110314154810925502498726209886483140593890513790745232462442191014022944671283526765575729034794278636479337428751150691346254904107211701496392330674279608623440167402062272048201062704598077444280387836053349057667268589816505106363605356625364103105348142294907066717644332178959866821555157999137232243052729047403928216928414304650996782184282863422607405145666948675863132525632289995093894103116722182699032954031784379994538536097757919643035546099929440356088893657716821190547993831182181797550896634132656395368319558361656929230912355240997789060138825761874456686469663205546717832864902376124720615881692873158566177584143297803878649669023070810584575742486035051353700104016808822358945730720548862958298906037383061867123959659426198034427253776741419228117646653006931196008990751017312885798086238370961184034923094442832058802566405274801273523428427355475744330675318790829202465827009708492046222757243237263790140261626143700318275094815686711282840410434469601931031551793542733033232788721988007786000243204138424765379933083747186115775512848910899015551504005586475626427988451004612951773800724755501370074071172226886701700811918807927269644501194257900890943807814594097553246272361737756402189828787820819600422898460645763662274193470315452160690418278387317225087401596647678238090951295528130607438897597872922421408157204118295462806928950176682275353209425723553069493053287733967189551275237830585089168189726709440616810484061801395135735273570257345921453439995881130419893872510625682110653626789693437110755638599794637502047647493454548344034971949969700244748819366230507208890137888857953196812682761403886413735181349123709313233973555633580795185852050656415844373523786768549876832698279301629819232660529230512767592279277585035030527652213223319267371083616359628115870525093789823188947949920996958586743629929185557889055701074749551023763947866678289315816530796053319899775014553948244714185374057797630743374743420564457439868693015238993191773218190338268677490251399677285803500362485384864411821586888635829464084780380801600394474893803528262343182693270475242170686448716104853416149110333639675040905019136141131298295169133416164729882415878073155225267436191778694695273047921940175519123681353117560138749709327083307801282667023194053405425637039197559075100980799543875346464425668123645874056136580883897281164383497225339800154153722626965911021584921161785031022552121562478874206598507303661395510461901668084875439950709765495720330428552822697885468613828556362495273854146035801738607583161859920282417489312325306327334495932811712311954922105357544791682146214189508894405717164356815416475960689129802353683104184512017609536669447209145752030314042615104644475052284603628966132920074970931226757906516210571783906901444547044709871991429766319143413153021624488125613381015798978505270726889988890435624931146382285818415329954323042874015079767634820075843293942180930567249832143479378876222862676532296432510756725899347514599908923541294696173610738149720194369694950992552259718283425057351792844825613808844043656150531250731975540346965825011310589598818447631823297736212096533674194867893668821570608781293785187968820964529275028092907179098880153193825156296291731619201496664573329778183006584766222067303782449384589095672228532294965667775473213181948668885631402467966350498449346489920776576853945106306237523899669707911018353351092008529595723434191211044832510640150268328530659256887145207108350644371990276352752757706999073027782397128039360396114147343260378842189867094068171449485270397063317980243602601062247221525972959029883231933634280362028183655964638825100330145155842095424061682795131094390427939708048852242978424294047692629898415665519909955201702481756967998301521903938098476660886891303303412707414609169039940716967123604612404323049453307929043353502039698526316273603729195723316609933583310086389193468225642933906969884684212185872432656792479800602864043084463700748557802394800769728880222855005278629068768715494647878701726923772479344830419245373256544008141750028303545584718689431957549003765979303225664947743521662430362683178740584969752413817260828645154713547154747349680209052378442126004838381466221642229360597590915709029719835156651807772395590440173580748005138236768890132865126492537135227003499938803599923097606190916643753091918289054633360814046085160127152229926555936096063064660221764033167093488868334018680782259829821876545428052443630347982888989097619998855477259968292835062636724341847159037336611563355128080856406836245683577613172828677309856597149001658937400688207286984985428245599944189412074222896245899322920472957237414962969869884134954726497708108637763489497470265374372192129800701962613441506075225634725477119697564980161797773978712832732410536655642588880741379846682630987901907988285670308720119699563974994910490367106281000882524787898123917278760871663648269541781957041340310133680485895226541245043303732506546511040941667175326989036846364348307895687593932449116502720868840229262937287636459767361632691364539408891242422473628773777690341362945889402992067478085200562263935169421621490832947501014079629736574326424380245669356034371112897439425735849499014447703752040741268786874295055988803210650126544385707935332808945586012259432883830647984597083480069323595069150366817289404119165623953731128427133976502540472116875011683882539214220720974080953381424860821226733194404387300687496781742091152236539469904842105558470513361620450441951032835259068892252946514250145945750906703801690944321475337365308642685215768437888441675729248511522386181193446204252210833249821615782157934360999109503404040158744984063895579232299753491841382109754009895158289997824612669628167401766266405740905585068848327779283644159390608072721011002058841629700509237352313512548882501498241607467559846656811227772834832252222887855926991528154104129504592608488206041498809927755529424682846572582233664207765651024143819306945395601334292749778605334210173746162128233411510482977926284567426523633874647079316299967657531184816649309379380168787239981742271367757419856290006647466208876589317954255101345791030205290283749002543375932821467060273684982754935866472005466106837470359164056879257450819058090160466798088672362370687997416594405684083024797735097711623321095326599178808723280693701439537200295268743736690158359674633487399260396977738157367446282735625229289223331718412523510806773580873647080914396788351880931047922704428681505064362867987473563666068192515216520737596691284503062092694661495120403347086603972997093563789572379874056609176369195476009317247462039368857915133385546155876898321378767349098259803703009504810665143763085854266678488920678813594884626188399259215707957341532091620620060386184668620552726610265061898176413875198431834292999381182898297249898773967265112453289734520551230952021267951940980801479413631589421203061939755795444125385180720417597602993145696927992441935313518947089982032065022861015370212180388487966925170058530620084777772892998606347613171145662945960056567229743718541341345542728559737505758647151922641344515892002058287636913614069570211349322184789733528089700620977635109403171779701858742348298530749632725502268863912035925599191748007642823501953036937913821336848869706434553529821813758911065611600223666122549392191979019653720926675364446098281065716107717185824107933332990357379032591417845364375529158967030625424549840157056394943181315362583019394840461492866521268061626850088595035161372026885320451704333638540220509727877535641830955500332918710212498231265793083377682630452747912159187035347254352353888976042630102090500405396525920552921444946277774537925210175885740211484140806478114904030935315610521413571696137619671972357946314835885454487951264784192725085907387308734989485205437855931206044972824397393425717518559022671658666880929972001921904281664871349115064415094766298153516733217148989711628023785415998955330116291612694261912162241723792012670712661920598826177892560811510713351796371595085109231445551959193370718777661077234980418458365619886420528530063431244055633695219132317733195945760327202027298616942297169802420466426293065647146154988374660263627795184666681346156677745993523972649176878591041267257704143032072674493919935647267619024625597069216844693037161133238915468392624163728989355884592336368751237086497223753249761658126354649417801790348693667163583013398754186790980451001051927498187422620048473045078917207031591530389396176176168426902632819884347010264208733259290618404188038998449846529920680430598641661655590879177536007921271890072047294715452422126710767451818941717498639354503108123426198651572538676469996795235554594679030928712969789042464482565624803809213438882187428057740611427903775407918544480829029080513351080415218715898954109921241527868565078819251944530507596358482831965950670251181961833656147118615649355126016797818693310899672550586335521354294026206898512700495456595871806156847893563022652996573269592011112370908474262017424783198502776017538107353133556577709906245798160598646370155453742116534422080667105349432975725323710901399860553105814058588022162718018049650985847656264745636095985596344216953490170767493132236346177835019077374347589852450871879969811877174648075075299162510439121799158747300014226270403191965225026560151849240771133158093623432551309530960952710495432165386994860980463527922408986663158100162086253079594763069613786358999427950192998543203767382371777703874433989845549958335373206050399872856646297657336150657069573284698568170570413472521123062816659342971055710579939842232665684345514343833699581029097424567569714430556968806172850891673776980457299172940618364436683848503272102603339776050867379047237758709530872325262155395944836283599606736103295108579460230668082437337720329219634231176714636589166727920204250948743021127649922649695393478130113525601478605563320216407519234522789910107586121348818676953635953081165342518090874664839274488621451016707585074846200489448108831278857407641601394253086979201080358178153521698064576143207176871969720295342533952468852833884097998191884947723756007325267453132279085750877501945857583241833778091448218340883468554739595921817821336625722003450680099243805111131643489967978501867581197892492812026488607868969220510246078677401317428375231332489666896476347369354163526918237446665965692542316031546943169242374147935455402750772147598393097172534636199621641664044384947566134398431610991596602600103964266695018448646711348325527038455580608314388808637059228557905007524562298765926751052988503178279503436937657341037859835410735914619682963906823342806085484828093093692913204368367026668483782914930437760737219520936668614019694073234419849491359535960826606055793325268621502076792732772388889032851394651665041229506669443405663568367882800878523293996808607055032206071123122506916855498335089057810849041637408586157726956964094628440472626155773321161742471513354367995513715657083376495887016417276012107549984070805912061484455544996574135270414450428764441976740348227849736506003631831587531213325994379707937308742585614783196720735259353519121440540424529882679975067784377433049052054469505637644635977658588192358528180261681713016103870590336531043347157450548753611814125200900460860464153831104827697055206814320992603601112283906955434474782841466557894398449568666993902446148467228374454854207979111435307394301268909241296791091925905888266232301770228230874982737592963581831398306182121771154641590369159962304349611662270293890757006227832127725856077900993792385191914045405323107781453459078404455213786094659081098946276308494829343459195873332520734468794373937463707530178210273442229685684177771382384537676257709013071051580866337562273455873226196430042078893961609287190132140129775722025188180963195520140413025596624715851374543742910967285844422762133358575170965611575935389674765272926652777689803866040849440218122098621929444551921353889047813525179710735229818654265244275662749196475031040338805699861547185834047114163857228017531822191920761783322201783038175036369160261737066816000002511202101907147443184241721338553684161158379835651183331727942621526008614295355401001242740977424736320296682895272752466420384249544878330000289370799720580315966252031950057178174813571205689722097319567762170131165554917111080428140730649819409846565489580690886849699901624603985784859408316102028375045406772132756365519265234124236681658005138728703326407342314400790748616308285241735764027232979175352761504940968264105032388297304095345043260781067491876746690220116698330592552540384842427035151804811807501145868132600834544757739982707414633057807702629297750714636055339701517194386852723797481357805112542788190091166830225561959623286241226602082550047426778370017656001229103600489043775405055842549188858234626165001489065617321146885532469971882609653439228174733029363410198752495446225710934008484873107088966405838001147178792254379019430315441425825884316741376194070218469933854804142420112017425953908575301218432061054469810265938844354720800213201265178739019745721080340029840627109688672205600335525249599371414621905423145594242264213815848708213746550564768241468611903567012668450361675428407247013328131511674656052917547283146892831847128269509746956315066421987258755792647869474256438861278801478940923405479019863463110636138096655244245596794741762718578174345104195412233092224836442466942183579560382530789041798359039203028518078636061502346103002514780541805873870217001546735907947969201623238865659973641574543983589697369129671721296635711319824237867960130633077520604747448824857817524007405704935268314741542540129390799627080696125845104309669162828430186831139959852290908056212355722209214883620089275484978918960223517294598725427791246013979638871012479726126158114916068140859288076046198894001154577692263549003904216396270258485353060469747093759312524634815749176269091598809632681882950055096969247422148914541919780246542808837326162037771523087012334976234277481799976950864856397923190536691789567939142003391048155352702455316122697046027787533459130834547351715546501506380510149261723354970289374033936307230895764202912235791788587064046640153984425661182541875002806292034286446156307756036144622694694333876490015600713401323723482358890224996607751709227758598733183810546486200181219349610768861369351632954701518773765826204567220842277980109422873295262803382466899465538949302087507257726660721586853113326240445639767743454839513771887305141887033659695688817924221929066026470422863881893020905253042483440162411491317189902424599367824254521852551164239467790289368528527864455435579173738466865537793880142850305147049331023138830910640111289836886704173286902351665351500188124840367189835800046926098494977305414228673747976798611760431697953224141316224173481404776828394622666528952341050659209556770114797158726485558720922770514782174654916486032404167988589960087673717370599807007165232845447427084542824190255244378552171209968806851370837098464350149640895915526316335553097685187242143166888764236287245332685748318532859878563894282949615499106593961010147174598564016103190306953004097428265456136587284792875342082870112655573846039525941420545118091470537073931079884561043334372483806502031353742118309541018696901165416617554094324451071573478660925909094939425212414623219733418904812460738637546486068651183183747447183737587978740769791740947414227383152371206172646970236196952968611510555904177185076480315299422473593948054515932695329267999565802213117123268501186459902581116069246507541592391683339258171431122063197052668959386058137248745818184002201348137932935704324055337817296191036076963086991221797866935111302472601104455105717788389400195747742241448253262619211879846602952643306215295065436962574488884281556762248138634802046588847266550501903450374195902695983848104482708875232492057279273988027294164720817983515140839630580290826199332404306816703427667305026064877359055074574060894237587797153682330754828939167101949498619292722772474296149833214738245917288410915908894920567502740565489857409586161237836206838883730960231861864594036246241828107756273434741284208076855629886823192908670620927113522252289978330341818160753827286300628709603805269288845717963372065768923780921878714696339249048206863497537537850777320143566449628319382509705487078650923261604919137003419421767836974439253678290566145360661898687424882962498608869494423255944462269322340680779050740069532213444981048103491337014989479392882795431832761694742010458059921907396887701144052036719859866413087280449438597273964342321783784177092954322447962819151831511068659799526300772085286319287379067053020200266474872616337846214749290529600990486685674099635720225177519935058357805924974976483288551998436877385668191308272964586349170231284461484242034284919202829275585531822252930826720911972908468130999138382489575707503955529662214249699545982272483348422447758941770280270500700771468671493601811369354353149451038314402225339596808437771980349762380037551263745377306660517245586958181934992616523111127397128797598019321558155010928306265906752849080199259839132579455833190459544368002480494652070061505966064554919929753327445355388484640530264947728728479812652225237765969327166372409186732984748445648265065130803201086538513245699619593493010841158572833770831191392078063117289047879481717502991310819839073912431144522088142013594965235427901687162959437533866605026500126420254324834557992266373701164412692836770165657987667162199208139914284674093186584476045078013679406703049215504911677919324523367052997150677269963282557939876504475427491827450836094334156386589284368093710605221644069527619450714349809836065037643171544366710378070350597885294449819951737764794422549848198007460790675886367610838548710702608111512680299155788492806617381154310443842466447973708379931108097784843543223045689255067466833527406696345649330704957862837114534429492365018929328468067644890561746258947143541837334270108664632553478358260188120602794613652416522694967873137113741454614509912496720429285531885810618936989295515469029719304727660946161874508909286899648784811300621368067345449471749773392495810926439633579271974400769749475902014869430450075277315541950630137872453315763056731180356704593622116114574773546129772294481946577846004870461384782035105161121244322876676760966237736341980434786891281600549339558324783099821143384240127426172945853036791104059237849737136033647527922994983577543888612695197059774670224484029350477772687521615936580413380167164034131519981013194934391204442344188829096095744267337783400351071391155508443670641132129788069739242803904655476616614802167350688262578927388594360145499861349714151803677744007293106789730845254087737370426114653128279658168534968657199035515799992268867133320389649882827963815984360431636186100875588949576832855093816636278959439860844225511659050815402099374637864001439132000898037648141889252142886820395891770937305130005756136963218501941061276278203487085602638052087942928955100163807494402097560143432689082332317608074581065385906029861732454518714709306812326059412765691102978944122129079628850740979409060356660132942292012326031637128738291258277908553571370360845285395265306461429482936742637810799581833201161956001779491357330589314121307720811284176785142592419763327606302542220105490453704186477683991388781580315298089266111930123246306342816872018127008015171773456362477367691443868333958254270502063822248640688834707422771487163371278583973484200372691591331202243290708588285544437031679980948680872303347755653571202265806391951891200977062573997418465591692764785382154220695092462229284734815877640838047567780049088768652280391832284648630697070445653780497667549287395909104938597758279363099551054081809298044445401742121848094548586329044515387669309726822089303027911379217899917876346092438409964325793169914812886431521848373803027079982875190549795377306574276547301278804878315025193415435878933648059528454068120453647170793674691208352565500847360693452342166233085689977108181475289294480577849824575833972083404625719080347447621094081521104497588741208999497826470897845327571401275091788791468503668237420255433844508164401259294974468689029095827868797027045791559579663499948748177644796782173479457911183010907665221920044724225453166904627377160989202845477732545851247665922862117321129983149483210446536338988816357744277359311185398504313873983935192564991856453844062020951241989491977195567185035570398041331169143948152574480253031621818714625468385942736623552218946471642638841470560217125616966001202600472500030814870406936178884992309723054979135404312525220368954594769377119093650604213869028597092717456490628960801370616040096797384021308574762593540305693701261384651565288718489123136278438501447105222302552025645699480538875412564722887372303244593283345075574084120694105877707025364552881958595381640204181527612656977942848280918371955929098843062419118316615131756981878729407405230198262355897986699937803878981205027130825999029383324090724921371935503972346613260888168027891568706025312770370372122342511733283542531623345151615218882958103816111946411493227445169389985135934278709367293898793162841016230165635449147698580245585527252113990712410043474934222640485188034735016713151579228720371332897927994622350874714832177590500760985071013373588309353822346241023809043317165307430978028253791983538276655599494535353637562290587767271823267723060763343047356899549082063120099675454969956632334835143594955897672763381010943692593178943456336064343751206600225535433221841795836175395131776198962635850374834155816845278128361056695520727993961155107671831344588571282104334609891990208777469636913925651918724382243060729647015388096038837586632285759422722154976458227986946872418563278147829013022960284090354500435306587771333651998585544306445443679580370103832445053293530313340848808395907511619697097308615407425740845892619960443151941640975535410154607110125747673666641070517966517106000301173599229311146141530360806274427370179951419923702227384905057587697556807092801673000720127544722408956154705196420484287351404293376072654170847188166140568787871857325293087489941590648071985090328663619542753024793520671366044704365049897558557688428911926905252431535188292030335905102011823624444554727372062742352929599811391884184069055736200034183832432963436608308950043502073836710832624834072754490520601584611540152888810283821286132895063690916796522991268126862903399197275767658623062976649740176873788398761865987285308655969305696207283858583584719870929233774921325319959084560765333154694260140458713882727170150581353177932198917966999279384424840896428409303860973311743434664714529208636689021395079596929509665908111671288179199533107838572100561296721248251313992500624070598909092262081823452593182120625558909742334702801396647524811678954218199872992876160078966406349903143588326976992026190896709051099784071528973931697534231361904193150668656046527328804247243240331534919530580537930064007519991811508168712313263689279929487008928147418109655473057774252362394758361766973948376967444017345579506224304919324963946236206929363840810412125163088139872309511734117463601708966855466737917544658085276048070948532276048990460956725011280718370983064896795403726040389574252648415535824891329338177769320202662430583515658654551941755736979864691696596517724972642078753431179495338226532139686806428170038520717117346605273810975219896554273650894076939172016066704551071652909667376395395161239770083250743173426250013354972997943937196639353527234069855232959102733109444129513614029388691933829161233502929807226250956066545627841939669844751738191756014355181614984213606060322144529442770938829635004338441813005306384785973477317507079402720217698740776514843836084535579347397767963037484521350582333887087485099246294563528723263622619308164966776467629767487056162541291585536826309105323761085729006423273725301122167570987084014634691435417991121455187259066419270262817540782234056573966060432823500402581707630500104590487574245265192207287627781235827243530816655358459111852917457179778662317516870325136883679716923855229608011078331949053050557862941120760158429276463746859739042659526715492535982385330567114162312670592526994940841133816940398835812236550652933821629424921014759825304657752765087214099279875735405978015601811090359290569866176983475543231631506643647411255947151668315607997614957640443123920881964787225370485668260619454867676725489999875452499474142503602824119081935886301495004142081039589851327390899940454224133479807024148811589011000356217588312760088704978698391817585479713045266100188687700534329670801770368382076282776340655295825541813858125741149116672224917752976109856219613228972035214731686776753089612737991131744464881627600225235489123615448194211677171447892757745975806533537825060655286101276621016151584330667040227874463156864120256058721943858185949723808162564222462423779359259321316600167349136727809415882759162206605535931437027631468270681609309027575257873525171506000641691800545767259994069657458386119215562520182176316854410133867329087710874080650142225574679032398677905411887501704328937733098753711442373628975119323916898091391980975087482579278323978213452076009501225522682756929346847511704915954473023342624041250927492737834594717514994492292058525722703440604414519788045328175161248656217181077175172068033103590942782128560450644345285869641516489686507883671823167851032698693322489596098524827194144470453174699443096309443432374302961944736385619154813995361442549788317734147534619843496166280572450657557449801740441357601276111950837663116800983503421459581490219816242835471891268456290820085866756407891529880434928592126619191933958564095683961679331112535538701192938455962094622257487739805890730723091626061553180237073217958486561084564496914212784452720455632587214799042281781239471245522851932295433623258087537193054440463972891867988821373383762908129393050998633639332813120102978251640439216369500418326135871175067017730010962477700185671564728982073508579682716016184562070281519682912283926465359877779653336827208217614396333216626107294315313727252130925792957255178400786215669586222415159654016292345605317623140068240412681662473873490857454874581957030569650533384625443142153087301130296083710829450641039836549719731196933523283322982581148998512627995312684255870870131126749517735377842002350074774175978512646027862273939148137973920220690561517232493381465610194133605251696596034171704387197933793119383383133522185943916556737448715735308111642063534228575291628470445523534300869735807003746098618927880277275520998536291948474024482427618316141599336233388530341816861761682999109452768990178290978124706760789172143435216721469576788693775981129107830444614711355854853314636281447091465635763486550297882835497383966821427557879695997639286583212320727061325491163236061919732963204975147943072185818516396554787316838979356209892268077700954412926525997777341355583787148189036689449546366437894308591074888071966939092856778531197131902510953309121220413093816643482541505039932477727490024034478362454733753785337823439170764224474450148077133892911788888004677053981116095802274133608405675383865991321355486360102222325806582530368516566927223579135717969639298631012540927433920076927437047956612344454008734091304046187366872386814215496056013951159676209176251185287602657275511763391535220855964806757105584460504003586892845621034768805089152985339104247834200694964177988710867754804498490141393524675295537902551776265740134941909718787679234988268664680498383423866434471723751396780313903649028722062783634610364869116531642300147896585106367663892493578195751840748872675204021585436520822063279238017884231250187108164255534909309664048243822766443116345890935042317892932297527710833059722029345044649936982609107924342470280509754438249079639357685321533894893309850048833325506057201264829803729686571017397631930345946594088867022126304007619987440188478923683111799244306953007124352294179152370563430662057863930299575105097894270144824230848081614956468544383057528012882693507278343539473806610223005341381283703345345682849725378202831358396107372062729640107864982549256215282410268605549945347555473476201163987973131559064462308123262243607196472618888562384447144275616070820595554865371164537016486518579619570759269689371922024058292298880963935795680441800337153720085025732815933502628589804373830958413460252132526740752995966194610989372607346134416042185121970415463892813904321334557170634183477215661292686091552207870919029163900271928412458198837059622038484677113592794540974143331974133379236785794239494997011146530435108303693164483994054064358959532219999699323644880316848896472645682338388208621779639529985602468691183394278884664698152029181644466551828870211678095521150289058446249018944305281340180802303331155539329614670187145995726472436141566675687427570069417679236558554074395035959137548813142269591992110030301918271101316673329334227642228408720307555293986436224842801162145155702003172053592280172458217045959532801447062571592039322210516530990879772876918449647160852634182032670802925009857685934955118915972199833333483698095397156537603039193922321669427819634616833130348151066418000768293343791735040641051593850711729455135001155689847562400715800997699256484556872919672759392729068357480330038296691268831931815851664082998635603586955559077742274830791654365222432055060954923936402146484347227733265171577402310287178465517882747567493109075035446783785016675982364725600460318984921125145143329157301837258481433173587336342452065462843561479722921425338148498242397980620404228806461025587638447123048910059447029573489217069294145032383615852000392277718530589054552743224861430958492177972666849135094190514583010130294752804629432004176622660779857205193015216943913605584448344878538906577744282066839078750811085345074553850344123318338202795974024358485333604799274363522593419233863997069139460703121001545007776236653378493991880418873060762414969133107360347460730546022591215638933115053803180389106950253578395447267855158504156409661278265565562988269821865998952832502798386915987852651206847789567891751300808242660425569346207357917629353691212044964714367976194008938169961762444324934984575082280147100236813908342192105465806481122939383482099664849264243037608047676344002513345192983186072805879997714299069892607917665497807536197419125815049244609347979963485728203864864179168780759491702991698393374104537570420758535337410966847088513783832564946969185982021974500478826154031370164766824608336536310536286066272726424018267921678762141358336689353445010412005128699981940917928599210979843126037458076397457078957755530406828630175083661175184414528535105925739252570824713880875965187600590006926628865122781344690662997230500763726524822069022542341401671453182467297009078177537942350589412956073116483712940630050725337970475579964853765196220490778837542582298081572099556369485730476530752796815902516047198025324131214204592345273102175392041729363834320935627849247298473983628816350332430202479725238665166950762248909329136531817687870892659875516154345902634113972787400271875235094120743323025524440267448887549017374920722588413243804169216909917838501615931168633446056670795467471246749029811561121930574170925043546828869812467700412791725336103737013513060957126871600728950662584666940690724625491036708767074673657090564672083989607940088448898867913324257628635098570137066818149242892917858114862119873857470703907670953311215888588991845685459462265167765415221277249727248815523273361059991246805996788526833671610110648866746873181080705534731648679685118612439290501535496619523002692162782698877139639586458426334442711170655125031615004891813112931964808235990469102069656927138692431497419735644041234282921049746368294606746579399218025302696593871142482912152451139270680395075939048126300047560117639856848034160719001198815572522002150230504259305959776489085587468817878330579329988454711698489361177499363637721347922800636178113697936358073524705344078144738683959241562244939198316856723460610163853358380705734245750308061270401163347730795299469716555226788455965444200107288805341419027832878013815970620000431559362745190419377700408338219675600957866464653579281935660523842861639156235118811761786477673825299557210877237705212722931174259496194862309332237783071263507951686621633444993359140530175099526276676497249668176139242860255163217538456243807744994819918631745601128927537172962421276858545708330032237831247043759800644833378294676257101391234244656002540383413623016973582847313953268898863306186287878723476971339634253356946370962259462928044722589752000796434816398588517502447740511867701975431657939361362408930003892852688806781709843848697415557528195883701029985525832859157165593579380403812310561449721542517925330207385963522664512748099999813394755034357970545537644087272991458647092743070524827632126504386385219726912165742989309381315388190618980628212581242798276452149922491858330429241048992499745610113812152778557470844245349771758217441703186202861868153519670941013649537915140124295910680416728672558163659000405608148646861380519312017736211380315051784853786987132192778204323620067730181229490809082791553544873709594037594472976640290990168278156684134262309497770599326627288513387598535186608030336440256641466254967037506153570716680033399482342250742626350027930418478813810113920105842007438190334753010312088353199542133393579276654168008739997783526476757052068296094685089977003294308639748507184423160252839455023390383451263000629678054582491618915173212749592776090246622213911329570778598531233100290395182256554267563138985364406795042763933199097156719750649691034898160955133627145310828226611945957423316445504302968990545673290844315271759834560159278921167142871493137379567364566933245205859351021937222024630390681116217759404414826584496357751535580171206162829431479164690185381009016969678727501587761766344067399448195087059359844275506510270068736700275666966176504687929227367326800775019015865488467033269184578212387844180284989695482376650126780134728427288524956568563425277442969242675919898639263352148907363675165586785302171401925515422116684861588630647235942333941863601970537487685124041395047265901397409437928748086541120413450997056114676240781299381979021497907333748373791370315606896666124206979528287126545248624692848802932445434741323831520851324831675532804176010646449249034572291788236590186015577776814669464684485666224250305806797264609797295965565979961332565611024292036255198839604189361505062599562704350340886328463946081245707222751215382082154420294398208916743583876987096246154096808164649047424559901737615842614965333328717814477753270870815507298395586847927958418031034546751323440028463777366391933398347370127873883275871296124626379814888364206390386261060238182902648082060004056818157188765485793340284865714743575263467550541526640507717861820149031385548429589014505816292902573543604400419841195740832262463475641697027463829186916668646193863830916399206792361518397899936660649562070848955694826986583119931869951291553891487826195395034263352187292021616777753163387596189218008762682218473313422901429480525444852390400213217652477217609739020786090903296239937437442723283904915942452690135133507742898846638228778071428631555127214894653065627425919157116495498911882011758186321861479153135554615834667413546090304257545766943928727708648001330997817183369605318549689365033474697587440265474429898573481247296278759207809447418375350506106634715316773429915326331289743141720616492624273792025338260853454767570208490184123290601949957501825400628660945393466227730047036395176571586052253646939204395006636665207962974219079445399358598940893500966568410744968806797193069403510941437811147472148187494717417380032119289274828458303958052742560292976773553569422835370969158523735534731383945502310570850996622706724765203650066192430437484836183085417351012855117439247253411967250487318342806332770792701138897470472589040426754322401279622200568688150135137232605055606683541301097334427352739926804255634434131730832641479561945235927160456076856865545607670840745635191810695950880114459597085102988503337091622887006148661432665977465869021700062268875362960016949424870785743189038548820898475586893450297952613954650173713065998098966711121907732231746106078535349068195877094035060561529580276396285061228005095248681445069143022716769792252538361810650846958941933994508979843428600452887588068320665238018040714945332448161908478059326916347450025517227069344875449089749526897938971589938442103377321540016184995952615044754081128673239377798932155413254044732147605690792808189157478313953341583138185325716221430452711851048679756967515472617514984770418743188560826680158649623214392327477243037268494135279530201712915608874338291378113453677654671110792057713340117199089150885132788703458917728478431875575463085612486474632869840492760054429843678754776267095515308413352138887813606196867001368436343276118477739378127048117158705185100771969873252911764556363122450619718784939738923306282469506163637771804845505039451388241649710715426552046648932534194612281160598660776660888313728420974357429718664938812597992864308382370860436735460494499414737496623688959134742004348469801997247267029369646534061455454153772051165400982644537156141538039233381953916035058319806274028193563768070300264424123619551022887055210153522159665873336268408275080080966786105122046132327451560278204815940360357382564407034006592505369043195029316933579448247186338575915766145097247366196660723619170399255052878260515048565289155736160245921267226332369053946558539797643720442165716132458125835028455793038941730921236639298430085397512668847455827165295490614926140592755545081820145481369105755966085147991425399667278502831374199501500028482957488047351202285232796581826756834072939481902741599049813651572796421607854612932778387076034015797029867894833861394911135721923930604790081172149625944853118803007995482337717356859843180402422797000205458878789048358118272346501112421738250359555631044001772059335259785352472318520864082397673092026673274128367218635902162000750919024149086211633369432470714279060990962806827510713264412711466824661855320138503620029669315844701911550350662076813277187768753099347079654359228182639875825595742391401612751173815886175148389005034348221749096110959239727198555456765070918423671806252626879323914496476066938963381980572824808437047629223376179453089607490624114189493082855992394430413610277867795671770057761655550866512861475771699222150334411990898146211925368440882448733940228621206614604187550385874635492524017955678909682327698126006427787690971441281040315055256679358963234127367982136945996122790978699781100255362588579658518482475794903139709750870869590437949305037115079643165976229638300293475692449833133829933666871863565335548254594741103468411460656221531379820383689775690297199816949551246268001954150003612065199353967029992564370906677662926345310932761532530884553849979250460502065435082826533439845462250431374342933548635008278080776232681532179981276198958443192331682669219505102872954945111240386267742040737467287431252425120609877387670264441035387918479420744197206346115098023110231866178750918223062604961254683847522041759136888260113543050327557575377676743863551133156733265591545636500018779213672248995323953513059196767660192173240704909189450280288729324871552762214639095465054712503727681223296587549580718302437689078111077041552349703727862174576965144998483716887758764086355843621997194746458252877003668651823795988723053124734164497626276644543957981245671077122077773060449223038356545096452480679817860889696523266540183859394462329131130383243896649412960047428230941820494057028536997690288008557819083827705279809679494920373694260101739955075579578337841507209324402573803335360794725203624152848858191093684538919904335474847672262984003104272783331008440841978298474468296236079596403207533567839583603591967748571714090163904739745332764266129675140083416112823385870842257133930295382693024258279614410128086405350554462798905870055273095195616687520508578045483502474501077053405886166679767060015315066766739585125626103945422803574540573096251678372778689543849002152258480900551854191997474579127249787985967244600867902157056107302663623627467668894079316983660846342966987729136238072708659285685716276067049735386459608957585975410930236046677441740171690569331995955485550768049197035302530678624149115863874250179932840476352465944355133196917476140207922849324681864653055455858419923625434692069331808729442865631916156804003648703348810286872338035151234111573781741376081087976653760954807252680649930336959813621310190243552470191017482292110467969574985553698061581948392067894805458430751066613800428174443691860912713430644251834770788032645471545516594075747079116494206295777817246498323031455566955738865346671374548171793202430422398086525617869323097047439603050848501874016364086418317352226617668048203616765848736109199513889432245362315815382293081422971300979236076593429504601816842446051947851860464739726947854186705122798420192492568920128647382641615581704579961925613167872605565064359552865050611559510014909633123488174751627322040928744097787064709920885366178140302308127818603997214765394307604497864401901084223717526566190587282253669254993193461595356979578954852286153567186213723138552734874753979670917730670607826175497221995342286771552261028650002672906503986677169735571769263566656317998968608527812092027333225835008931292022757986855664532450746837252547125688219660661174861380933620404943323490653585100892447645012704016522919333049417112330766272535513979680581267832639870863492355716393391130719763298994368688427013127463475310162331781168665482206725135969055281036336983539531111348617402359256579770209291191382404166042570440549606908245467253538177555308598714202087110648226670998378272528869796256785187775968657488872333444885933336371188096153838678263716755798214372770441482827797011264251759090280721598729716226452397349861679382870712481240362817793379536052326086063893242117494224472671426655031767592047584739781492105278231466646759591482667555167540246071609362604957740160700071857485144995475736494909038087474047682145913071924287752395717178495815203608584914848230735281005139132794028970768789599608887714533841561767943418020077009499650146515066941618032044035920750575569523960372630429939175259517038134690055810227303559255236357523966998072859231757824351540855693834825448731499286825992499510730772415962666876916677714542540264621794730800558481346276082112329381295535700724080166935769161390007259572428282591459356669453863677835985802145595872942506562719770083432786383451361528204205734468382318261424021697508852797720236348906880376116561656305341874702647673147459666261775087634399767391231125099359612445327691222399683520230634079060431311469756071152124800172043573255776344136199490112881835431634503119127955416911828889365906252898332098786941779251862769142510027288901532583960063105839143277567391234452793703018280161999778303960766605831269661454388186267257956010273883183424607242213403401921635832425887123996155358274863113268791562900368417457090894373756106558057990943898045153788443505692167208894438593224182977121584273447787317432110038301092256405371515351684253737188441775525588696221615068081125412964042836293771119826708899500428905881566583147682764232649287243890433242539800090202736522807020326349282866572622957863303533727321869968657878141378609487622356663674261181830061714065877822819201674653727843803908056831793565216119152525103026383424698234521912967846680311848934541468180666403854467639697265227947053566700626886885968832047952903076433279533250676482521021510197256977027660473380329337423223369680474248573615516988135121989701599678443461306328974633520055213111798644121831783044202266953518029569809661260303208819141592180265398924162627813716509085673381413186193788050689030177481287542805304791186432708712871096828714981530705243984103082465531330498424461969610357369798073137474008853240546688350032907519083751668822162608169994095764978469087344776082665555933807218776361411896512908952355015600511919029040342661279851577630323104379999048712094545952538150779729866048806485904327738904857665577762271368602616486774076935847074124951701830397108413133890604689207876018337890360840944401850577826065753970899373452988554259587640453972899640482656945813210510973968781245460327220231752089691643989981818937870276605620678079193919748986055506861182093039520040704712573519134535277875074419538728186507560322834295397791934003233936054760743237750147318686137165620979630048647064667216334186200505140783171994484072171119021576899920444118682549285899670938103036314404475903438728059272713686919355205673265590566367150476734346667847164684715274628485075665150026006486010895461865505878025564420284222354334509135818807660575321685692303595993468232190442761914705755714748954909322312714021411722256530218201961322625915256944714389726926019588577141508082341206337140431851228717359946124986155048566830836331743752036682581534898921039683721383309597859502257705420999248323126109201509514891710281251744391409660497376102403314866809261413469803948803526183196963913949756857450795315831493685510849116255043808469247932970324333654279286543408704740661547888450950474633459456524047286602905425119188551194350249775996727628985985995497505029608669265749572243102344092701558395090271384413010531631165988084852429897685212490056164696681738718598966462003985654899646408399329349669287019159637244566219614106818764332798539754141006930791109784360143054468926906067175729420390144962132594227174406163564636522215873661639716282459260710892554101809608553169605648918955181750014413275155491854919581461437972384862067942523908356599762876659676443423531215049644621440551923370844044826709265327630886441258108939503146963354358497235402254830974830114508621377570096996137566158630623416086611996867744000177809631653589901794410020216362427945192385754030411987555092302325424985403588728704649184129757278300187398213000005906477329417705180935274153059888467191668853686804034910672620314604836230006597762792027518128829187482149308982903500817440840512862850925252422521447069452366143653195811796404121282939674005235236940242834239284325422331614179504958802614006553733541226244540318146652647092884117341571487203593559215452381025775114480052828247696550151880307388540191696451870678597703988206484216302446932422288727585809301253534635764733937868788982707080717104653490867150372744925686176174374760167192613159024652610975742938895921598885842281951636963574161656849758799622746603342004953676295806760379344797336241777216531362308455483498799200610550145069966492702609949344401551959498716138850064927410939714002132532624980939497388376171801281375095489638977076354889378549589772133770851107782719026576522540442411664454451533972621691221834317598725380466224531295797457135314912609296535151725673973688974202320876764680515908420588225269674574381194455123064945331382569372696407513285967167274014454679539513800961971192605725293724538410061309754798153942587781708465101261955209099015836832356546286772741870667172424033702504409927316340495543825746406201563959101753547473500797649299135912232658758152288475435324189424490864135772733206570410305927981254683719416522082407723039120019233372767135192204793952452351074288866137924157819769244123200293739941581083190638394494392590740579734148357512521556123694303662243455189259661441371253679302796495474007164206111280668771763382322078955023397910627313988920973736989935456819988769158078733216398503627135217225398212665300055953002087836478723682271405686251737258246906559894790228594053604266145152900246498895248870204824526131712181612598393148488399394793248228058828634121907536419495423919116218547235281219434979916464143386883073286557916406707509369880385293232077171126147329869710267796991267081541420362721735784802075341167884432473320911667533645564501642604564522476016685476524460916011931663428129686373168077690456192804033408566127181412685283886461297889724205294323867127353520113516498159291443163265130670980627944862658499508133069683776702808770145169461824307620465605017318971779723805599198072910410227952392978816282969293200393329800637643436277326454076800365979697371756427756034161653778872334977063389299238556066405816533376652368622662782372221180299875635223049402546190877371943947259072073903689625346936644834037528748178919095094048222528518084217028553865879986240211970730558549931832515648288599145254352173016393769076300990218592297409993794859464349746879733229960582809866411291319075626009038581590862173948050133663411354831474331017677542793453382613584687279901254789297957826019886370246892115717951190337650584509786271301983161361552471413242210533581238050382227371818276664140453924625497256805123769385613361230378298747538091796138264757799327552223557377882134754470755876963983786279457049753093478459812561876396346485260319148390839209868157100445535795382241009780734467285337546637968961246201800015126957459903278577553406056351969525660086422202288634564314217930312275104340049438071109043761593467814871804133508434204322973087485190809953226461095428263357242853504121826819149075919327251015211915777906042411957370852997611045266698472633056621874215005248861056653901814631677485381797848440373743928246042429274993989899645751445916221404924323668959451079720472524147088181711708948652536448651539300909286816613905946486149550353526305250549006112639819800058256837546623183169066775882369235133376301133258134561620252664370711362826021870423212036476055681528967141956361458250481962665950449587094324133074099812845850570970333791860883271342739488361117926269472468322865196419898388701304704605614105784899191172998797797053577965506280419519652248378758440984833340559434204918947582644428694929342351697048335981406173147610794258448361247608209497220792922580039127534114607664332518593423708149815826160356414023906374339053046552196437481388884426810870761428479564029766880423202486647179100329403557748157994740914659105129122634843473370695954377472046539729570853622046937803840610273270743237976942425743497230447341218317832829470703358996939881486884865349964661455267025569604702113351859375803968755521771521852919044789769742893091594718872761205074647098618758775049525056741192358562664598271488220463138429636573504030283510153032433011104535418546942159467115450077064474038720620974079445951387816397170355680570786622802912839512186787765780980671360857038034413953546443732810607636769511457106369606276983425145168684118263122164631776056370393852877588183061154450242292688492089183733890993364486001972909599083007699178380393402565157662501892155909820105684962740178158345907951427338991586098363792351244669507566280136225322427863317583222849344857360648295687726080626619942656371514224637254785325360258832401793198067759613185410385800700212357930597419859080909234479180087905609917844411461718096337106676781922123362950247222859585995582147875234092476521944367991630749935523882016708434965241499493802119516023116722328268169061462073357575001257636792407016196987401927543465695738914107442889372913555416008883148306134353540182004702779073412491691160534464919943726172953640495720010427518112374382965674147363442985148252120582904792581023262678835447939846214889238494262696367442125389840036280084047305630701222026434611914267709939725368456792212617415362666891661670593620595403613351197308734177169026840425391120975194926719648384854179703167877471869122541535664780040607882191082701493667568020032648800407034897830592727443754482986504119935330869346425149406769356408024521760511236046826952323410810646342963724377227930524671670785851086700983265266137448972009962847213388861609235112270926243069264163686629428988402628522665754565741319127173322280265102809080538102959703475424740278117780428129975634276315969542882565725954213106488049270508704280853090962012463497014723483643963341499735299950322588981452423855060947319002320833718616898436508898946771145298885796434171327602526200410768926135138640977450827375612660691934182105918992087200777530761251460121249369651630786278482362043077868182535981112267202279681247582870215079932004977804326701586928501903841070655661251028559850802911959310220743811772944476414718589240605015361949291559844464608535172748652523801695810481125468467781748501427394578085087456224682632168775014781256253390630250568812126179744987502876765649606175248130591282971895047991493571642233535141308852873889725003471916065281154860946734735502997149288369906828853133206313187596384750398272801491011329547801631589586587389444255128940202210099287553661530780349510024922167877088121873927039397935738285487623433055989065280270941138345833966646489931301463741889210994015316024738522943333809155441008271132509498334814950791172349183388307114115074319691513304646566809722080933398021203957557083768301214975951034272351184425687244920845343332859967040928985814703879540744054496388341947826665514503175599296010199045305488385206904168681380076160052288325670444767808943036409217214813930365333668081704291002718496347251649177865644254928685026722245521784433616132982867114736475438146055969895967699255745369607879346525898885901082608530001272569016247764827072386978285132542065518422708166782353220519676313154931146432384448946471247661693651143835960152390509571844179482369761121652752748121463143726389142222635310523949818865888496631314146279408723728500130736059243258582885837826839323340974234979836111513446905425104755910482219898700084199160400829029729250204150084701909533341636659044265137745691749714751350797620003298073441871041541509529596320934304401497984738941174570668943079473167125474104515163252287050273811949567384312293230661864985156939490105943334910110192238214084343180466460357442770682728634965979746883280281435023660225610266736879921877978900863198391082425102895880143368089456970345912121057511737474493812616858279535125237534748064197035312946401654253262540359566938947494690692178031770764648719632238590309294596961710254715821407574501532570791137829630019756826711137108863411662979995354995354673099358092359320778054713608252634022540277441205772319987283916955954738244075855768068910267645897311939183783771066879268254575459850637553690595771658478724081946550616953640907410814285760926195799550962929192904222660727901207323082613728120314846187601945426681321666172522742218737858091071116585328507890089308561107869668414880239235558936727367216936094198836310321424372531095854276307533444684460371097535143644582941300410407865028598344161097761666050159152815529665149609050192416829145770629599099659572707498242416774208865188105034421638128501599839652888751001388600298261445748233971495067200577047712536499110970613446941277595987985526204495627080606102644639528595367941761059087863794005705388581235537126786952617522015703947943109390980867215526469202782614458596462746077042417929892017230334751706318764684211325383302755284064408120572498290895564020370772975814783575195397514741622442404327704844066721888855387540782829405401822588869035364519652429111922032907728352892474204912596391573071967215275118556175008589764887236469439888901606833030313733189110855289192491081590589097089998550799045726671226767335158174889787568067928770819760336927439759173687761181580698535240998267597973959681457695848636165908581769897394428954885303349420481918950254910859084551876926046767324429375415442490401802434692322256618059589969099067712691033199361809663512377210514627267197796389821585608741352809429228731038492820210726224645746885680708920172449098907372242861967109125283605657406724975164263638569088666087505667004024710420397394275746259141043932086988666650370835028772555109130835550083493322307689249472531120636545100955156993247408582893183456299272617257712076993963495254081650705060234678437779657527530085376765129460698918439035768971704924450446804537619331589404612230237339085907392867871001643691434507294221983905970189220467893642068109859718670745835138806824256486419837999240724905215712345978787042797411755316005171857313119064361939388642918910925130271524761283816450488783294103054803243267498167103602861364116615975101684560182206521232887755930912854714390933850277269946417058847644760919343987549128557497621526853957281733829535730805808478527353392999594703698314759823958573711887769617873199433810622445296297454845562199845275156665438213272342626655716961532251855199007378380234220591078165445873008017088840310185804159473299549303657031140145897546049054741537799016082795546069236318009368953215519350264324196024340852259756634669013447869245201441738752019882194550459097894381016334811799910258662646375655097572499363872978676795205448821781965722483554874164596033701088612222787122781302922478645029964717994508185195827859175914869416612069654232197258088298712238136254737447840615760983836059255777442569507005170058981623435563221256623395379946837009625410879913618319845142888600173738829099518984957008309240097708420675062587438009535303476717783624119670709241531410197344392808936271728138677891620408278962083769534490823414757834137977722410765138367292215166960369543402591404103989824060224304831351464652772689684589593628320686143757409419099585593745175505836074889026939955228010516291677067470968180756723670349710970492377959421945404268628791538981868927163684752472891263946493030597200196150426020056607067657162785558193803833997759139354156152148505127982087091923756459554174874285759691820067833248768339156095043971506368447051106448181641788262169285957332215320837310752607912735125787698153273883822493431749729102096877205824115114099854435904288477468641225579937830211485615616797822356614302337128583551648776751318776264575958468673457880666708932709989207429314239022168502886424730757595874938264396492516167429176222111760514557071566697652450951023889857220645261907490228567541442247875486206693107615513014404728668579532028189890665940019581153805177235411149051801623222916005526032401636796369586211645860141161142222403381151916698677328725234203361538455462595287630835338370508047186303715593698223288166076335480014719583371378160814401555716691503115749214933055631524821701438883583354586981797126662183475383174148443476165359402002451204446144369601847742973324279032399933298037965748651324611693084594208711109602973123872181801140744472714645466712540691895304738737950586813689797043597443770256406058535232886836239483585325100631308906551407231591367180271934151244578366983249702254455811121235599985423341121744963958728097473058301175188125980046190019139798254714316004924860231860122850353850057009209007393474163932041727658176027321398679977838910715143079060338272492792866369849871701240590830218302284597903772153480933069081946141431334932921178158655446848927059129598723772728294857653144685082236413668400635388962848151485975794154346184699161110506294434667866130369029377285391961358575242658907134016614550977075094732985249395370997183870703336964358826863662853689500081201925455430462233661042688086872331271575833100150495951977309096932783607765765770534522573125163582961881656901372786251963713848830962273365881471746944248813103463373559615290986007880460146918775832572329644025982775148915666351768921511745302905013035458677899128094547805634955709333043156198610859996795990560867311444490389915266076609016825022328030914082654671368469861907129531902035873111911848266568261195450181020934390662203523231972023431322035753081808489529805339101061445610931645782765155200205159358811701864757402430075030770950882735802618364271108520435811013508480548352359276173401610917071904811263287090250421544570091819209682090880119786083704869001837441862475811131218818109946339390466423503527905515338774559997648674446481091892768230344606080203429116976483619398485779005207846080629862390525803519604621076915476295938163755519826858861791002638425851638941850480738422750801559135571605580603876606615002175297553372481785287514593812710153130694353139734614395397745641615403429667147041119201936704848874812099815993136705387352743545326622165181931359119407305129363024971609218272635554679212633747955006077584561957768246838869499790602034228458356360761451049316754955843726649239683464736165951622416771320263564750377593628526795486077571404460242944064480288054964422542437072306712067168446345196064164486513027711353529494584074823829514851089529257104593881023260331315955523036644870639946555911945340758145848671976628944738464168616432257703724718560460715953521660360076477982622975705933183958257036561821019116441878183889623602553582790455425860149438092844736002784381129795249483015784374361456452890754751070945378352769114564114762947266722099216632840278700626147611586217895864860876314083875888427107403006410985315383515944792431023488543963834518630435435034726192084663054260756503832591312926072958493243752334244817943844562473175510661532011961926237970582839930851725773516860452965993452309256172152242734140486270582328125263328451624968204607917135911172739948958170325580220394363681642923668927689220916696869088262395970684778584461837719791889585559525330029259622153836421335169694049260644766711617796447020328179243692249879366154559145893745182019904112649826846317871480919984638423585003257660158798371340242675943103594494404032305196571676042425669367070494987076151936330980709972710711529043870966420838801670922306700950885111602886097790487360774973383505762373898307947739100295122718650642805571740977145321183132569753046297742775186629679743145493114130123152743410829064426104816948507961951390330312089822630266205570547081311715867477521832133029802210692919185205747556890917820771270966274792945678297555830736912984517106969542491882576323690913508061170309574625369998398109191117261907336264585494723440289650963904662155332073265271427076958929054214690805399889850680484638765524706059337639359729051485025623681990331989058515874055527609244490765676297187690879579168465464543325107516482358547896090641151243427089216623735385612317781030650712824568550264961021202816252587753055395893178622734799333776639006625016234906745482274818477432409636319103972132366515327434571657514073750805937425781322881319829181728875910278328216102284032909901426852910796459802788891014078208823067586697209488691178335703946381978791861382671923124845208761836030321123120588553436410638560120419559916450203583532456384751109502199080541884714762033182939570976016643913467312455273425950798799203574176627140421883164514598163477594522417661346337595602709953041608020926563203093164866877913363840646977727699610326177421230949300854621785241935709929477287284110043205584369610146120566559170059672344675757198879458988344521531867970041321112456178114740808000948961065394484300302791133013313775506121017708023963682187180915162335057200906289582392613777829700215493714143996764682394093075678509904423070764231158032183668866130615941508534080621654379772163729821381322274559117495295233193077662272367728518372436178548449169830539631097307993243327441931628332591440581498660176832387629052119188852621728099565179496059216681481761162584462924867952876609741811197168827184923340840507891493448813491777270388687737188015562754738604416338529621150674261232914478198582894168101694785696487403879930294128061246813603838398817156430019954080666969916955228590435641937885296252335145825832597565514262152625027850250810459495496986893629900638339274974151467089419942835535088956653179122069772192960343547689609749920742179946696357231315892647026347661540855880182660054694831284837345861671830168641294594096029724096873411496206962291411988133647141726725952431512281510909793830579891059210677011646502433488766617338720052776425883575391293001219276187390639800083936573050184138010695030295626239346043431992054139651780717764488107852267047873525471101733498925233587599021709045693207335988615181536035503967680509227620688689293780553578349468794913436473895077889498904595391696418361210440254930374987584233286220930999833229865923338152483546811285819431871910072358341559575693185670770997510432332950070919271788304280192500850774390510335169840465317893788006892380854793663299891735187960402629159561439763704887097265536134130786939762600619061028548232356035536185498166816011028274540322312806505862712254794081634623584840265392036264464051020208586789890691171803625289244352136259095860262491041136414256592972626085550811235072084751380518108692772323379208272552147759700639442599996162572481847484968016169953652289251333058892584839170916158849368130732397329073187656472943663563207812461097345216910689815123604523941982673669084523747024152457287466639319919430502445860713348497807660707908304978543107893015998514133610136300245169483932627650514065260470704630663540659217060614514992009507150373221619207344719703477235572431429683778549744782302287274799816332841657740289558148668683233320134091734280881604743082360416673652410744848548074187482410093406912198990244589293965121311911568200187222759315524988612467875283275247805338987760648341063659043740670005013625479768861836247990286490469957896821430815863619816135866733572375275859843932235384898885408968041536132970868366403012546822690796084773740807299057475599707645179101073627450244231365012854053593572226061428678716049979722697036893216284557250216910192175234336134990124976785034484682728572949152418877105850733019185369800542316904482723600611074073916331554579119027781030310441007033046422209475750233224625661104084740098607812835130201892361913593826641860184149240562722012299507095168415323801684173038445885389456107644218139663870922551599033903046890011857374933812084507678958120926973920506670776790314547764256368491541323459908982997592375277487726271501212763376948001327733683052542231903285980004793431475477615345835650749547671078207728161739341029782866811711608995658388578952238205806933639435916691720146972166950928322780751958355155254093112000441958916633113524948912485121871646714184317152991399791756985282150979703257257500326011407637848667710183304746691458348426417584322960270461862927041786044458032171653328212857108662561531826108733511552913340310513796453202630225266458099315204884041002396235398683760978716361979939712974950984398515221479700537885454741812692381639027293778068777624885072701640471311911098317231824256017342387140072001420569348728381531268446726433860917887619445002966794847665233089125301685607326125887794509253674137784358364083986743536146200407910373829158777843633689345931238835080112335081707211148954505938531772532909979561928238274313140231490490082276678161092644426750932631812906170378003460999924047867058048785992998022935994881094701379869900612766923767851272490788529854656961196147940892385970136799730327861912180843386999976275947574941663552573901089036408011324102676182343816594950836494104272963218728059958989819801785506719334986189811161599696857787780024670581644242287253035213033768341315587268474910064772145321382057073773567201978549702505728219235236959764143635363607811084329488050748392989257904808217118979463769619019831173531430659874460021264028458944772420901356565838403155335592364889073414466718226426597668535324332120717448282234097587446489488455990124065203327598377835257184952858481828873766569894204884979198375888747090644907716570802042548368812443216061067979619032327886556453856033668557668014283046909155071269778783244494399996315545041543874218528122417312750493583877927194171004530180058373060024734787138227228892462828959405958005979421508761584364410741917378168783730140997635573678942970904123277761693647888592195729021288150622883216133532019420239544327487297991571365809991920633345368043630030755338359272834725335652996865943032302856432087419475218828359390433654594772939878146815105810495575287862240061755893650132478937434338419467710279490922124497187701662567283651331345556609058271195003171574457580576893882850238246382670949837837191707227844641136820851646171788020662011206082515154590157301584999122377427246408551403689365666962838015984806795163614544947597804945172187071061441453558107503367049427324331439852111903460411911609078019728259775832021563499006944021730152767426956861360717153836563905417131505494558611476099718372387447301023574881522621639030753160246671478552441851259543974439969075193440976861521453584245615182823277183993727823639427677345307339756342177603225835500641273918466439683791990895829301069405286482033051631580320027001826690875160037226096058986574910769706531341229693729277084585598480007636742303610354559068731847649436791227018788654399873637934357751340210878972187083232114950202700644082784996588872846890828560832535116604194316264827719072706986697888755424676075236738676667292861697923736790512529925126462111395228186087793532683957403413483545954372532045961623599352038272753364575400091519886597809795911491871187846305739502858859737469761732367589640463162623550285158779202717737979482633108563787115460040269784410090631204404839540671085716938464659581992296302968805074816025886307467112470178502135118205251704640997992078130322109730567539781827296405053808285241136585656598071086294300886148024713098678121239477864789044297090526317048196149845909907258631357301512139394629055848142013641606444572708692229642839521048754434509072963053765776541396319025863930213607987715866865278910199278186721705368890160553476605421880339405522991356041535245789364889970491073026461980393198698505304242593929100592977011765689542132752717983638063522861860391821539940996186945350991367434333749054794349344412252631295948375233805640229213660940823815873412689359193349138828001611692302414023547513874372123176487703805129675795822674061695426828215163506000042769958462797772283943913645173224827924899647048964668144654916571061916397097533499384041637485449171936640785126074299304829213631384715177889741731590162595404563377725918655451508975329233953861062667046142643170719104909013165559254083893519258677986501848424270341939189108570807350998135927815405329526096855140393616364197873184965841736231821597700082391692433153883395250321705002580092818972390448017517974503819525710569195364807258630055731972090129532114055310653851247302956478464866743830982818644047505269422606640902856340212451690207883616532014111980263324874996621639216478666303601511111211577049932507139896483880106246679275433721811642642646182818279571695437538838406887845409355568191970898150271232838932273663504841309503498345121427602444377490302885181439670672174990972365467595094471099414721486744677974997498164454707595016147269186206424872643549244324832565477668813545661637129341361172833930211041576961739924629276636029051521393153998752308809319959400807177198117898199531867143195426995512716443462425986202159036902101497429331441471048258517544248931298705422592069656965999930110725010054236369036498191268685885564386155039353900044831583349021395541460808917121191824730667035356335247755131372852398165587145926278480555590579349501267408900166837060750821196308549417408874809678032876595386924400694257019332498589827661465081867466335482179139261288738888714055196525565571470469745555452110497766685535959224468134924777195764899941045360627403532441798631317119563662045354131568434924546488346512744898539847297297169761165668528445640117609471688194922951098935171227090475800453113709262674139348485821701374324694014288575312505178811906629643376824159921563409463431669037909297798530326968047223869131559787746182352429435044142525839616479390910761830848304122182295197662422352907398313787975373048139729626048069134082422901666432343487678524835370322867728816284711516811667875021912513765707640172206248092357900007949489057692250562241384134641433245461406487043383038896762671985981776534646919793493124079477160213284370700606812935323211532887588978659071602590462990790175428507655206836989650134452583758406313944766424893366764070826917890318496546250773506340657793781911981534548108734066221556869688049221470033877948961327705298766071059954278885632115550034136324863144250234947171820858686375669531630398522803341160327419873788306874312162756312204685021724698501763271795752834170541813260711574454564991230356842872773353621658949651561382371251165202722975359192025506983482452115961937154831587514543508723173233574399949615516173137028070842721831574094371175873487587537434644720762521187188331101629414213809407730410644193196380057970162530047276739979795318365750621631494176774197791564873050665142469326407473350768284514050990524801588349207610929592030743290325448000693422578573297808522788566698136839984712271405964653318300129139226468353309608740017849724526304233610703580429577902261042816575499999360954361955303179467710515131873544876293752251059509240117024872658286543336696526630193182522055507178420219847976929550778477074941163433447015231883390245571712051775868229466107172213591965764224098564168682674952211762258396477761429261964659603754876960040380404155306997270911905483984009537322399552952852784815250802912792135584480962852465018660673236311537066878101388717941224546984578784719380788955449724373212679294121904582749683886195257167965203757661004098604847370274873490386211715067270009315216425621871906132427072264933386574669857000414982542086457583974339232875408033183372535472353576437989598850314322765611807808005314463672103480027630844598140528323185529746335830687000753623101873568893248977302360560651262491135952962966135070927067683018693744117378898266871108087934640568825972767381650956026540488101875614438297290502846063469099168937927731779667646532398303972482270768720829890141203902934754822567803240190962403540241714732914930552201938546962644738994584911852145096404553449378828495532932187373007158249354918952883128207718770656530929204794114219205626490118945008050154359062591728039118029931442860949431341153474614055337296610023461140351498260799077533526566917054333828572944512825604942236890768949241956994415540007319763718662110283823375015348719344073426784155653247733944541025643867732836835498090628095887890859349896110564491106789120561868328260110430159536646456551200907544788454689174318556278899767508177809611384703446924501992186161366791214975685808007798697846451415913366513317079185632428324131653792943003416518539531145504823198719662344597375013353825385597521630531374158609985151111750192715942918118056555365463078713014950699451351154836024738285936428697262636359027989493210074094156153145214746712378883081652212085149142440622173423001520508084231964207287598165063825370013743022183716330281619910511876395655356971445706145317961820357548308737201235082033860057025018952859195518096045524712483051760725580421838613787332463793776173323546058024048807019106188149772831347415529192862789502357270439438707455674982806283790720654230401645450090599850332926746301075552024571869991023994149159414334417875086573566493403582720680561768988448638572229364219405839673123019145653185915387339392746741198110408357082050715077355247159320059525137377180610956884258763047909243322247576826442267877237983004003812078179865203424564022875983861466603873710440989970551835604491414252330618970147426319293998582462684388241400194537342812489061290307892554223226974782836459956270434430377772552577757383536073745402124562170454035139224055709455009950555877036284102665849127478005017901289190216082796133580885089479207097383581774120315765411135681006654197824863506573427816717565121373964397121324817585907774257357402291992540504076435954058544588502518279017049011237182559256197457581370617287187224363493353305707950577353334217059217154200648932093287402492528547887638290246107741122158489567402733007236583485689039793075076555763770303442522100197455672221619441301060351027982063020163124640990379203668089112453089959944724219074164896420621003918982740059426460622112468532955571910257827087452985578397948970472469075968713487530099618795990447078889850115101481246439619303910815813842375255223803428724312967313933627929304110206246741421676493206574816115430160073978601521787168808805922585356877684666838514673199623104710450369173376642553612834981538880772780856063750685412750576590512206615639979861001778469287120389156284983158291808371933767253551686868836171336090946186063897475206516795825406819251291804499489842482720048185938128219582201490306895328656767051379482835597292077249585355637003963518007234372014014356699395706859486907168785216562149098626194932816111039561800306346938442624507368638820786497753437066024179916827551251113090382627904299379870800969010763105719807794373406502461393669118126802506627396282487169386609853621500139211048894147276724932242668688685640427054701229669667461023653174699913957511682451836022926226532071196618497059196389179438926593305430802609051372548995438348136014487132208433242932271741094517016030002817001804435812556511815801561092149653278243018212837121144035695973683298301623688840247020293732381399751042102203145518631667367898700319738346050427449327869199296980485622238708344013555154617288255971446254404205230124615441885374327895192034540578753952128694776313925741672180843524165159496259309746645960922708589227760830770081992381572322616761517893168644785001112198751200600337522372796076506434342154833187085879325501212587907458346303588273609716671574294803176873730667577975082308865757367049905743285206336147540431136854084748228593006849107381870190550607016716581614348832948863865656942150597352983771452272533957052795700145999237157403965434995867259846681970372822642800565754159152221403743998197626813365015918502183929680229805667664531149299264400250069464597455945328719405870085864693684559144726693737253680550258624857613429828224673340893883615801147427884272282140885393031988841986089562907143098507615759696614136498602879077165833834116197742971249689642080923858656496572896896674198165088347384798003643193169591708736551854818895207210856257570267660607534984595898575779396256647409935207946032027064757188557528970653501104567273333207077739644759039729777259882498325411605227208807954812500190778631922094183309814746569178869480885882239299500433897697781383629464398663441137736673290749718296677852639681796667629857034740154923322495888315802439293033157594462486473883700367725015069536761545743374462215252144932606970669552627988806807297266649740044017877908491024632602923189596841412991133408515567461489939581101390091274315408517713137700889730746342457037720348110578720298131645132619037813129831622314446819105911424053432464361528256085590614920735086844453819052899423167337518138289654917574236378626801594232723247030961944486190782522740221661953047358735850333634215182793160935781138556579399236091401543763984447549314750012588340931615993164380919635123917410008784842516057058328956631370456447617342657000930009345424627793400980271817759521899555043121393775734846354952755139177207808844571350321132442857392167088544491902104694474993260935555063659056203259254520221514808987583617682754215787033148038476886271686149896832735740104711192640605981545410457826469778027898849975105174005057938681389793926970550214935272798550827335809868220497463796770897646512441373769268328753672475274498980514627473912110229476264105909270182533313278408985091248644002409504144923077085739817001904451315302829050585841996612776478597521789249780975360637551871685496190429460239707708590103823750568594808530011484356120729506083793116581527389414922705450242297712627508033574679880107768991746710388444289829151441783118817479397525017193755998031289636508681498252952285991629791600650254638564310677030270383037255820198347726902472908579526833506255051092051983565513213101409786981482060120480415030479233631485096448363780187087373048234761112321621887064217403062832940052845856844536533082122281407011928609608984868532769177514252518054227862513145061520450720800133673666667004142497730412125279583735627755283224211434476883193338957776593508283216902719502244001502196573572961426400856810077488343007608972036368423694331259683583379847800811812063000035494129639137089019453044361642503967052305496775034240888360596662749040892984607474696569001178914743148306571489637337129420146272290323242719300061934095427464228932434314217210764779102070253357943607294766844403352874797930841346055364515691482124256308897548147731290607830985312032595217145327647420966332592637251055114097492708099456092563228776942958928974130622937624648036762428421671233195315296830949077669611540722133362757753040719636344554887806498998978459199628535921607841632398348167539484293876287904623781444799438522963291182935303920921518056288476769622635028151202721322256684598218023597844577490184077835665350338632809175353769480033549247068124727518549182592757672857466010924368261849784418985522486128041775382683153325367138956027894501887154157105676125988100264956445418211135830658638701113078159198906503567972473252830247907223040794444013817079436806579826095353004643891811562926229226859591594269111889299150767785710455464510969172761415015293088018223924476002824699656584788881443242056259004843465946632997154792358514352990643916471471805253275976568248626561000352850020101272483677056823059728335516860952263962413482816058965445620314356349115063435174246835671333222960494266114609111054339314844731593111149169207715029172493161280494979068341430579372951528811395259351509579523035558830945925713585793923573939605756998294683656538516295681191605553014304730526242725215333276807218894473946601321153698363173526481910219818266379959882008376976610906239679988273437167239388712401465600699153333124025922348804173835837348664184282523194863448957393556855315347772925577713689514879674808941139160617057029292955187320949442695260873626968556433105169850522804790433887560825852707610105725442563464345602696984103859815251528600698017827867140967302128852000359946827504059941064877112616223576732466547013861166186297762938916757364842306566294957031238386619690494297240203114124085473747945144219644857308278351643531207160315745882608536133192598230750491616029123422790381711559409008840930560779375285311065645434514802640702287767508255431944068673727485593831794480195071136455782986613323706037599719905390005272992974717745707549578476807739821202993093287337485360249135431263402399154998541681835545846761274182762709466972220038267987516099553013243115728550309757488107865628030122930675382936005398408672615838550026452479844343396449248261789980170901198478723545256328440769371050742141863243070446435832421973705472295469588968012928036534723520615076131533361305479796643023208717392196266259414415766564527686373635596264904815191031992768377673938704347190256313488235003766060211838344927056698198706035191938322576083982213155641638635719369969925957645935234573250640548235914231471945917376298528663462529839447952258476293563645456570999166292738138158667239302738894532010141858429450333604699206110327728463980887282843690534773833871458983809275207502437296363648614306743988671499410661635343525795249060781717563060739572934035019146187538938124495661365731800417659371434789823709008837894538340744557857573801959474481846838965946246593958643980117453612462715494784704105689402138205299439396688891507542639476020362652310775328241058205766184840859600642477393304825292278912181746185135917793738469967834283090643418666392396099095569549417065018512564977032032118304441776139139627722047452154256451765976600129840414845602781918645327101217013713600261140777133005447266718368388882024894112137925100447836198948309961629093485079514370492870130511470874858042427789010694461838999338641183057150574604728194696669292508056775625441091399125422816388171734081402014398820579899780097629720982050637124527140819538286341239682217725007863046376337627975167924751914086180363124442122712033085838569855604045511820333299788725229364035003430576508250568669966341109478821379333698415397089475148760931898215835161022125901983747612240292306665632425865214074655051227085275833154990403719411405920140093330237355831985849972383811913531710979350819414109599481069111300772087081704501152764018449744384428934234509821233316774516549011069604481924404534032995140696645812075241036092844687836833623878389121087010190439250104973458923218252535073890863452379709413807838525298312259840878050100409347044553543705375217922677650074580310719298912195736894457872475004185301946895030707765949845945960586824112297959454905690713662699940147153531960956686538211082698170146064722244233124439992265697461711428003288638799088992936113552182325413413938252057407887166540211758803543705182608239540412912093608297213768162325751254406981224432728005410693131986910637037806206768967900656829995945741718239035888579051136691128176464490450633101112497727643161184766577641943550331750302499202615975334240107340571653571693520346218584829112837283500288636503284401009769893128506915986232811984508975104811157701794061464945690751612453241419673351858661019063116825623620190039248985491274090541258312174970143674776783100378259314069449618945041345674813880173566890261362122453203217221079851041791561535962598127686830848201509681613132625897687806531006965863037576285897151275381724524643095416736146670935942951350790368651696387455946658515873382448906165924506717572856872023527395585024849347241422852284180855140930487254138147393716509180459584378562344186012445360652969036788757851179878362182542476209867912274319249763249670130342454247230138687689346896677041042552865037600316825579216887455515086161865696947953426773778466411066736521452132129247771053313782993746933952977879877096193315671698441816816645709709527946616275133043084611290759816224395682489856101643078415778912634983199837512030305349605769882741016580287689018799184310799856904146684727194767234441843244295350381181396976506942711297686275123241021575996142042012197854489501058334545207297784672307029733716196539033879521199740981736521022526198412916124927077235734431582289594595501793979713995190211012736820040750460033091444061943688138588927089655740140972705268185886723100501533073219174519568425088130263814619742155049961740473383842878658726928192951362953336683216670136145641463535222428272422413662113849446010447220957854081523792231906584415279124769159091651307599190705012441730388139077805111841447450539293094285753365073651714892795949574892314374605852287446274880987637921107309479377114740828718553828573610384991109466078949972197464623245361199310620392517660381845463606083386936418983900224375129029243998652751543368585142352391579279694296122941323269550842034239393391059479456677475513048550312988429249164151540206314112487540191872330166079443632175282096548398198132053666790120189119578248624313967365235851395614133275654150473489333841502703546808296118688260940405078025605853283712030851200437652866820466815405964040720829086766406493726293270496837386970658967986750730289446938149099957598019035768793859955151775584712691780767653059803751590442928397761542932563443306448423485560444159115160133556673857461460789521296823942947801628244734935835410260501078724776567226932734559707426976851786280557842438164263719294484822214183220679448492127695661921770381628968483117823457041296383448907596874539057405678648646478164763415883132992331913448650517384126790512922796410230506760492698195391906949612615075558014597182243914581849709120407632582612824729427854685383069529553928599324905094615305468346884553738148712286769884016948099017268105216311795226069376323455127925691503330552658127300290638134852835637221636191629568088036411158642782592504699037981259189458401863901636391480891264091334555075212914099256748497010300238789542684426579068986472922642785779143576179659673480604382810215419771335740506434508039198881654797434928950771006223343156443210404757975732256639174907026535780683129530856610870730784467049852011066137479610038903746904739715318337810351994812021023147953376015693662218120346402217380167721801171989898379616367692373860091421559013422873853936702187031974919183244186804518908065333950511883121835273184400834079775802647472524066752207293933696363474872719907621709607582520663294597892195375652599767557738705230337972367760891783511238022866199679418523114971052812768874233028611419861982843122966828334721185175563581626192902074856268020135667354849183701384121155784725508132069057949486017147649950428510345513885961910207836904413648826407134510974018338750996057011474084356239049665623592787402174889625730769078770913712985400973334830848973459667113107144744091388854393684648273203492578003561562239271789593489524777196254972474190248793713138085188296508524748361752685590929593341011161593150166866113922836470067977567713382461981062403113214663249760523752709144495793390292383635655069567752510305412519876692408225468352795871163188721167990208430184877786358633734337120683299058208074041125194164996078224749571256908028446612670300620243674171328432238120633579225617513429715809005123461522370128550832929639267282668860674342293901623524702793948771029580350712265644686676147194390693428757773568562586223633423396895706911899586997956193388906946690126302848306028508298299053411490235615110974809171560919909748366262383947675461835446046172790535546357116232130949479419615780339399544901261734961884580312678842300147925767079698922502075177008202367681234227137001028989997542839001454079594361914000219245782751280737334918016453275511074108758488931873634331312611981914386170018596002481348705683646885525128394017091515519676291383398674941096035072328783998465959035803993566888455358608587955931560898401251868985683364668045360023913757481044189904644506206001640161112493907139551953566659541571033435455565960336998306860405806500017470781389223546748930512334037607738663575129797458460478801526504936703441673487135521740663297458736417168637346086241045316205654276559102506365665670568097994105756583405727964716338367997100075178245189622920568071155352068686668417235441756511933021168076087924416480104947583398846621886154884067209411562357876950169181124368670693235138210072135214455459387005978257257637088182913651333666631694196460335876659378417385701563952712951985327924116054629833738596255607553289267787280214574683810266077739573836800339254323437238471914168230691759380613247695094750350763814099755830628348316750895233412400064299184621027659829507112828242243946938541863195301896604913145798421094763648462724106220897501480049503188653601162787740636323077679534575307847916126389248490780577790831082381989840450302115685482980155198466979321593105093425278986938460106178186761840903643611501544394136792573757346221623165033906215533237071994967471488265049043652683989603608100593683541131082120754847923952360430577755420703240165384143988366076507072227639543255655624877018788831094836204593430574161695630920339883591369330138302142649347330039650905587933971248305178151783272670098137641192831646255476167922824354841930624916288291611517241453227191125195836918243714167053801866782098460084993553428036522924803480547563153955791862127771473650170659601099244689346032064943221476238412360617604959690345231857698003620746567605310459526477340171947486570657828092062703271446534021201279894704430250069700670938727396561804625895548442290951377113239651573274057886675495827632630532181196680139787042763485206544538731534673262965724381844072773513195144082732177926801082823794295282330736788200938388385036893872827840830925161125910157918517702189572509790326306929570014458443131103453796352009392425723597501280466099493198349642247704790646667869627279738274153762976909961620298580383008225608433221113779291269061592986399981073312132293001452931274242339605344884671877990643662390942490481319676599126906429349291552768286410944668547464326176925774117136962791252237245534291356786356979098279885530548613774288363744436417915429711642960008754146710346562519991798844647075240200472404860368858289162653099723862551958767839809521182682776102088223378105242190412117976511021845257217854328832752768831090976952912401337086658304061569558777869177100826228371511328661968388300187055914305927340855383889121492780789422761962336032516563009939222040896622816767941613108375930363753929725071132949741431895012232460870608567343575033353260824901655901334974657510776304417384909447773833922388288775771980919546295806381579869550072731502734097866090940943494137123194056700190318317975335547679220962901263998065961355632194370459240567966296198503637139661714218425455014021212567567038137017761030295310301577915817805114575970351445203459403690864520071672443674694896313964336895487652107159272161006879755392980268752723419416110705724256557432196531815413659647859178642264521687849039018708817686394741736674933006282169575820163833091728183701269206261999612974238991801469765563222799356174375521324339436803726013212540548790854235310322501839320090415305728115957768120703646611108331891945015509529620551465506597936492814053919819647073232007366403568231236103984934283942312882532381750186422094668172738089397336403588248435978901913915544694247602312565792030863473760725325493020900350647789992111310002248577270149546226246426449723267638137753803574956107693109340598938924762819058457257185314788582453591332278310566796726421911289864581932212876252563732069458247244091734864703773084715436861843149280335557681940372921942231526321491619149000026204882032428663945188034842595430253547575007968734454327514163732578601481917607222811151117509807773191316084269694853580975912279100421485304990765164137140437203875611008462918034587679679955728672381267712541617541221004116988058784262988919804372398179500972651200631230534699922151572516149410862804708135405502290756790149096238042334176774298804641987067044778037548063436849494392026690605731276346263512398992026131940098789245229054264777084874030362237307795173802976704616282561651093241195090673630912377691839787380642832688842146890371128541353360786004227720954083648264368492581432946267023944856375958818185031603685331930640870937998167848476561281786013636634709743234567915893813938723577093765744395424215642447065240370015943311313999924618996510890809273459709595303853231677678871166211804200348901045752982149126100903001187600765738848272392385152601010328488289466070144873700818474335022140157844015817750957715265982356131747118487366832185040278402143983443414580968990191437121420340939753696127018608318539323217279565371614902985635649817880767219123195711753495758819361666592482044097678415865011515367922576469442542994885211402976678620096440845285625079828817352686521187219075515292058025726401799690089518832137928490823090294884621450134478613461237572939355101151097919265576358553901901803876363853972109943221768079615415645118653851771958919543842594705803682646070210278389816133974760397669661827607608909562197500249750172221286142097184971636218423034821636947090628754242402851488890935850590339195107274893311409335902108051134509068295862457217892794489523839038316679491460918791263849645509713701698626213283021067769426283222131716776310485129331927168157725342856625713459667513507228724996806657293235815402369169268485353515424826079482071331141341310435351647236501230674074004087169864612142397289536286225252734463404616262043743253646367398341291925524137184942070311573691803278263704025575733381960184832053705847347458808258430571330660468625512687339004416840857666068404837046068514269747223841340112079217716641037822498160138165707803799076262783018878547296002841730269196348748988361180676652130875813997345655563966824014405570547798382994973882415332071224516688667362840912167658497573616974601670843421824942298508233478216085214646400397459832811021415481482925930575289070977641445274592633211368092648745494228005864655380993579063853579333882256880666929983757223907742423924164058983774114595377505830568500564906756465809985206242430050790182806891795261916501270318497736052887490775497707884592747924148960194539438493478909515890536674882747187541133459868461345681925684304176994229600845153371344972134378321771679078714946927237347640302412076338441316670032804175133680763206387462043304167774896196424588764506694071245093083479953682816323381620495115643494892490024196920716803349063849272419463361737948181194111690578615174370461752218952100287679484305691378493579499286500034794366331347385262919224306257073386134691669280624944236610042631786261363437783750993695759163703285647037813686370839437147872384583080859962403530429408031388116147705133647543770925947680687168126972051973897533915117516560785795182469648532100155401994941365678841129044879321012004774717356973595809048477283324402406132967763149514339603719988522058862352171623834558779398742604972636743637868839642489302418815626681309445425343690654690979537283540597453011817764319899066850541707429479406670398204621285076095209294227589789225276186478874293702818870304652095217670011575548513050998998107423792799254077217037855628879579251144558018600939696200425340534763873046862214746721372660041533870175910063733127091921202652320360452822673898572528062999553082410332012001187762407747679477677828608538943225067750368774120370238438205386538265369451497313951622914669927117012174118664929829815261624057155138333249505144570527249228841558010261353433758986001711592066996291683840114661793053733383826588656389140723568846126798123569900763550674109452019213502410679104547436153739946986726487145380785978648247015790083626411222316404617994977750763968940993155316142242431859061621354907022856547696097175063800240821754749629135749781187077184418756358595613737659072181953738683348016558057788914414752963200821898497636393529191531400059128463207473142530921782790163392368747770666307308582768602834877594064004099417685716677620378989865244561955370653388754028466613744454015821191560509349392489498343156198811207913238420671032003502504236865327012321731045591235367840859719348432701849809425649532650982168615280584698872743745938766443784380345927200360451975473083044776440473088370953508211797843651101304733709435288668080207478277661484123790621603052597950530771503910736533168340317536672614344427936220124964945063631320745855069844861654423809558842582572339143108886061780283936383962104355529432222672526622687911953838061943164514131607068846622625142831728062438822901223605095251162090689727154608596264710956490776239202371736788655999809339886997135382941702939527698673080412328909668002275694375382078588687463228099467255716849758098939781665403563412266177785383696475947222094480920912042902283054895616911368549555475194908252542812660207623988315874926984536101223882907994265269916272533091294987646105321323270091066452793085899251328417309441824726124460812519860041776354926507240038380450088567682519228233056514784094607192959735271031438668748461367261214710666824891578954750358686973239645131871145193851191058578910120914748509871802791876363183916659946434811033637064363922255779673246006008422699103571533820737373576594234589318635954635729952599820592569013231543634957596539255590469116883657089344603419579182685633475355521566800313356475776644859189271657338841952760966490572456799120364967177140406519077824549741000562341759870865826546421189652858441393046871086384535566168142757619075408832125086937358856139110113873077669480209702802764257599974203693195617839602097560208214002898716934903637076821272704384623017178660437976945823676359199220092361295724472886162959235182308407616085026693469697103453078087753136853762420956827891690321973240198459892993232276386850682770701414051366056105543647087854548352990193482247765037527997350415173751728375319648325591052984619382835584324332123145489943529409924102041371607732057418664647878836851846165341744643645653520180054529411158638871770924968804812653938179590678294220489061115502440645263645676838339553345139038878698398772785669787589319340361101846992600396781671833032448980850621195417586227797899678671887688412513832761846860945946604899962045832784137628688772308197447099189587468649863805091901888878689557342220234621498404743304623035581501366412736175689829290974553547485201939079168558290401494515296609819088952314105391067819102970657010774332469525579142062455966627549155706350741760007110048666323320988194349176003273468327108455188045467551705935707766277510447090169707014119168697112007692505554762696062122673761278445201501901388939187809594921729087637328704094727578392674094670672257390432994394996772271911534278615978361642115394725184172584054896713401426163304974767488123179179770335867497728599515841731153705148374539141909679060825143010525369491828845738636239725983948187476842825394499231226335868195943422359773056305216575666504086554579012771281673898167484812338614987797369511211772714925884749456262286704959665823742304439309702665903333042920191791815179004455744037368440740831992250055526996084661537280565614275632061395235435442589094332281288050360463082234118635292011759763392742169285171961582391810961176081756002411026425863037444095443063242896809822420840228254083800490069773619526652423601796123904857427319803589737968476803935791593902899007038390625791504584149814024787447353485810681026656724854402932401269622620716210097646699998364120345693606392559336539031741683547514163076468653119479765257886707942785821147132363093199926382627788647632520996189788135253812241469369515206684421614834034311844125255159440835050121475952037878551434670832574277659804932852624700880982641908738252724277585973047321056888397987671731393239291946245949373308636890824132206715627107593473346169643883158547794498490882675894505461371632732644191111431186822309740666517682391983215602524832946894571716578308470799472501977850528051987006976408732741631782785541788564089942802680311659512080418924276851663924239703416606212958642927438201898001441158717439372881505572735597628937521224645232234882973455657628662249997374054111105780554240616750171721970307133505991863871797153022568100095745676429550381624654637551486887854537736280263283907460348350272791402840565658062168248567280996544145559090223275864720778935979557519712944414516075102037996680641878765893813631552091151642965150006185285828606497608558698227748149877820516627394208311505841133062372244755248992099360123540062532695980818816541327357482869707392152537303792870114814221863291030190964527879692389538097632239655724121584907547402748546054055238126156451915437062316032607962762223828981477421031577985290760174576590041253790309757627088350478879086840785911986978719625908935432886619271259848602844949699101371205033093813641693902425106851126600875848502623098691204306725043386056987273103202042116541403885013236383798759932007268152263814353375120822068525410573968833652068541431521728517015161749475081482119341839420550059538297644720207655835135138549398984268479532254858201274559235895398624222822457315972775416179310335229478438875340144784679953348498505382521304619650079409047799009341279738638313723357303384899170964226119605186206590411842839033233056504263080675228739273104370450590760350169587057761204206412710827410373267417360996901653818130501379514272391948946741556543183622973301477262871868102593030305883920543003547936902056580257830497031570006225307402812730083092375592249748501222654990217456886932180018283575574358037783285947606484869550604309915455358663504357718921205608213524114496205770367693558604607493954442365376196305421661050843503872107418963068876383144665241771787362683466647526839400957733586517840756820648536436920059755079524372786130672396073458347155522963936132535816251781774567243870681025050483856699214960390630599365990873937486631700040588739209294667063465176255408697260016173921080856743799877015173974948039578974662702013992857715804448505073728072349421826381232022904215898830573803672599805024141309664754170604926047460735483180400615579461899910605155599345592713361476606210226584865813981141585318683511629880360493124146155114594775724665889551108979502767683419395518049373206236389093264665644591187646836974402750362402604671019989861523924483029626640868062286564725453837098714436405620696810741586192269900124925606010338762935558395008846326077601303200138298556726682206504932584917098826414698997701394521288300801471849993453612211441335801082131711547895073894610552223496787796437628065146347784606580566037092087824169156913153181584815827463095052627322156953117985110914565614268829500150353362997708032575671732478751409666997919497670170118904316606348619998300261129262524554408402234754941611476968808211802381234052755789081796389993731876184329094481491187669474562010271533273099491781147179760510133856342375956665714067836639642081961018913164087787831387080574172047243256524295046938437906421788337873761152444825304157584506694834531195858945146249388771331353236734796955662125430833430011389824250629196450495195500297884546207151943020989603769435656251891949632350016259805662843980305052455146353987511922717038429222706309074073513499792103364297606932037574952873095843206681060994377715887995472056126491195250016578607989072584901135900643606759992228361121195878384707417269540505628545882282695769585606862416458910330825347657673543943529442949990173124220339487203559065246362512397415391839876771530790032779871105713265718238340773116014632643320381627328702081620413797955608924126807618903332588500770577135259848347818094849888050083334766538732900446681550378662013040942312819283099303878638943174137134059685068021849042874563821638992147667954967961806213851816079736158693459107198023646812968201183269198727359441449116502345065370709970679977847652160342250024069920863640115857162339194537614302862121956325942429677875052321026089979285400186062319614500832207745006186254105957093086198729438149093287279580364972171304095258334628091789637197464095939788290942360516494869464093439125668751747755583456324068279580587026113618697414529031462109125969262658555442262263515387763025247358855897996332857657687565252075004795669278643185435668547120617746357689044677630168117485235913939244622333128077429785565930947595998317299859039220945761322143435464055718137917636360721032611223631029681478297827659874488967636647882898452213491611921969165756630123748153426210126727921345199224807666668917506650234016839234385981949069094310172998506428836808204834389177669715115475629050249812310625200875967574256915586645348897571355094813698651898598480385911321577694712941447823713789594815021486139075695768350663508510504505129686289685236734257574800532645422468412640595978226504871107891813515438203708538174921767162995374489695336339482823062101796040577807351167842933573727212266060701927042286242501912219066930029724730801947100979888824350985300434267641969973579724107868332525770964767726128084796335280182062647644276665330278935579772129518909274345834641454320797521142759728947040378132584068449291569463617319080791606337263353902253112121965698755161135662472562318128138226061049937544586679187190395163696431234799260005311556100276052601091106320581675000432473363073725202961123829399393183738794631312235767979094215137201645107978681403396631041168299363407820811743216662347465962663822628631976869041789198324935328862468137776176894435205491344804247239060791943774621882879224487877323407978520428864822626908577006683492365998565232285032058838312720229288694906115677373926107427258093557052658303857832603920979115927780075835427112328446502267159312273900616251307198835326201672588311605709542676591562710388029076475179602359407588218950251863498001045139405854425303272975860285375325321510260793344141719189572123113902274906967473577173082392162711500139899996895650315630572239556305788578571625475804298267101758791127675127200552200564611108507071405038440843583649150506083857569885540859493239075387518475700305300012444993220751249468912940068317904261082160077081572958753937021384631399203952724094620063089195105731416480097627313922205168320524484506433678931645972013543234217324541623696632683063237473780351769835333910346057560106061822757203571527919976827690071928871115196594110542152672058526121771541881570301243079230897789154390558661307345816778677678459507418902251279970519813039839572801730974800994624852437951929410237185513403507197543487444295174436240112222430522229668766369154232009804960108934175103819439613853030012737643633302325784032249347009887053593329955914956706500400226946701244994293644566228983629019072820529610571139404737412860313862400300529874756832471437370085273173458593416823382950297854884125882976530398704245776336880764455595516213336242080550376026797282194659242538583815196498024892118119224685360323562609083482016770276043895156677245950112173713596809178230881756480896927999257464298778425421952680883066123743966497462889281538487838179033537571834695990579270026756402403455612819711986377802663781548179054076205537088131470727769831863643087630196536098353188297636322250400033082913806200726710880286339711160780242333344907677296999859356036662872510784618007777580367483049926593664483458029114391878834956608655991470783924189913072806384193957595288949598066149181822596133064672224332281071944433756892107447939160020752385105625919128617525317606931474599877957603203025659486510163281010171980726036067543927138447888304700154398656850685703341242738072848365568564560108850497592674196044915480629388114583354800620102057007504896393614763166083939911843636031931751942559010647117221406461797317077392281491911013579106961893188074989820254535714548052820912871652395013993878147450387990494112234146122192142920484369312940693699070443200219510849740001184167142532995904578393062211390379479827373755978534519567178392290723452534899298720599080763350558802461294358620324218339738768232021865621336883874432642710985655629158536994719778957344669504433381204102251468739278009715162840198309166076294345590181427421875913310834607844112753424395217977893494840579255738097153819754114794738225593046183178694804217703313676780401086462373475343436061894980762643039306845565838563084368689145062297364142089392739355428202418344114390432755603391954612901093995849892413334922242207788659534361706852499442104071776635734298920567724009917178236435398362404407383769777632333372696174402270321479003265695396207672216396254941861619331574818950463625874054903387291055627677050706303960891529495719074736235702196638734981857299239833917212989121715394785164917821363428778419600614123772758999074624522256277037487800067879088615222365004986940037384862247596952018133196702910778699045958530072882840713564195234468814398250994763929897268660942434604024335254205674492249978900090048095721880708754356962532583940871649911951188145360833020614139228506676154951670899276689871744971166372753901568401868985848250354676584504759554159374076417243060485705301051009897290928090726813835259768655184247285491991321845378230581407538393802084523913182993563831992347327979918626213263502694466423170631830009099849973141080587087939338508424263514974405528972506710278490629025326017268367644626479071993918459285978061991701323081688444053412155109600927300540049083362611265391389358885544547802590952840493386350269839942802075846998834636201099435264884933462015416715463648919709704359042456402502878106164570683741179367126583281801827023578764486408476758479822502526664846744515412234335454579785330536918345146439387513600596008882571548972183006545741234026430949019411025737354107694583759413540980993971068302184192755250586805959396897390618314772584008589596868961260202422000213497840493018919513958381554110287638326646678623135564184171482622456010853423751275163071135469069868310567389908096076918333968421686334053596033070614355338583711024474241350068310190337941764832077338167328609169197188660580750759189433132526792461307205383898351134932914802548439008019661004002599181102953675686256379255708425652298037927892248140143466015709968192056137021989392615886980843239424028305329644926967113871020704892797029968473524074267502685473782741847395112805239174809314571526411762943980383300388516380935790443994516185932631604746306688190790484144910918117661444903765094268392676020884016409614049129791809520396815369166790049010397834364103270318785701246729128479640152109464653764778220370953128093547242516293012200406418112586864382558248308531015993596359508423686088034778629565542326979766075868854479024612184567555486723131968828275070508501779229935246738098430629774691077614610586064361720654638802091912197773708548262653689785638716873207022837419092885178785621636179908924506886379117745079318823625431352734877061544276363725206313783221070576314984274762888979863254304954443207473652700698767130432655572433408279229396268382809409565502657414722882150351400308429001215450732695352343038737163592663235848211561160913572873210609760515197842400762111887131907016488235415690260387608767742668831736581878095728917379531088778929136082245324736131745498988178918775502355666630916522819950973067596820473018621803769507994367173099552913965168605982825382521407291669352048484419477339246917328079103298157485880010500666219428622126248512499188254391190107316899330308715149872973088875576310078282991976501267296947039550216460474054937834956599399710576663192287911022264983325028686116764023445746102875562280936927006247704091569803757115180124348125849450970196221846755507157719749983953651136757390381581347572675343610993629188553317746299776606978394052723732574393931973660135212438224992714045494808848128911224260844109274233183718401854710065193468367462902567503384203076227758491286827203290489393889655857544762881284807190576638510044793622083954982864368362716894498717658536247060162491851888044438497815334669421522084930783402066015841380089558656610516236742338925319619616177138096955605392892396010773804786594721284627907007327097312417548056688708725795814022355561024865213769618249440808830197535614218961539869268774762757239827072514439718941837446482172230961259402289927030147866031122738704964188444288013550534858244205166486337864574310148514919179092880081154363700026152211639340612164482092860658549755484302229867354558806384219909993756561043500285562775830373215123367168519242634204803096720171226853195693223055464329470350805650381042342346549792516536759385217320180945303697340350016458001161628688703070357596138732067318882468325221975963128268545066692531965762817289049586487903249765244144636785153776871064971347676555617157353302334147961667521107379204165175847470850504698836590890976557743797265510518969318030918771517646445299804490689142164534628295811069218577694466171053098619570430312671724612089675002624603402990741222584425263387051134160664756397181138641884238793244793295206539128519980715278133902823163757570712196828916178064534138360094556657711145109830813066415197376383444516135170249699030678514055964579888035725580087956178432491821912453216426740988015900183910904485725958408060092986392220585541600461145090257826691218691469667847474531204186048811356411860307126080366850921910816397196634575437616810708116524656954630632848670584336845476260438876492929079797346105114612957826272391786216899144654651820857528957411578633349655510090260863413436260665319876920243626658880963941281299233706988294373921810885309557284017665127756686513621283144980078107992188032898987406184775500857821449510634584403020815030246489158457367450260577293034445521117424676890700863248221004122205474236687116921313738739641248997839787310670031222865388832670558578936420809700005153781416011123892234908637416155700113957117735265742004251854875454649250635996438951920298978824088651888099941714150489456641072902449524529081824467067712641287566621366750726830709315762017601693376467156627465790885465605328840155894770242580715783919051160719135765968896980024294539311611480000374536158188156975470870053678478220191720328779921049941627383773028768246918639815944624259118566532565252512423887443820773552299593782842215439948137071029547162959581711549555375842699017451474427262663640549846304843079518122015712463635040143518120328569330488344683932195729433472678410555164439466305683060836211571290975193575445888722808739519364540239042836740524196816389611763365272983833076452224454199329609241190243080702501007264741496728697730161611860651968072201002193016846059215229781141027719875351601992969672098260699211989786686656346549316389676549853529017005882682892500968902143491915176084083336617262110991320835113580573154453703498526727123605659150062885855290203513953059310790822689589619902971163545067111130663473318881682509270781974447103620691361114996178099899058654205071482447214003257699945945132019750065311416986823823882812301286450865651666004000175829006591587620215953146681028546901416742237287310309173726869674719380417697727963186794919916376710862477009924984639695889118570547154891347942846373017876555509558452742043713883091496591390955820128939880048651457815103442343037047891058531136275975142100724076399554215622059258296520089080340512784725370834311636909223307548346013806279170157831180240702915026521012058701084043142381485817220265923720000886088623217323763472621352848013738512950587234210849747832517369539475027821097286422059075404441493044495155916366378924820040170969946389597031357520754175639836360598888534032439110537110946499102292190889364194794847631249892055204429170004516087059686294882896287375819729667692889730741517853354228529042413092995705394552822406384465330854032169210921398925666609375722358080035087713760428594601852704939861193451906176704561258405910330604270472190814223103029720490116133865213002311048836749779247330964599759649402653482785581884857406376458165060014620194888051373332645418377107962524670212588776970878668296392491309118487412176953227654347482952100190514614638494613638116637551945356827027692118831364528292332805425662452938590624029699945861144247537070971490672808145982158037803349469514715251866037422718715412698363999604690686807281021390150567696616798578287135984730109512444527316922230950780919671032885978651656213866628208410264811889958328110022589359718448981048230386911210824482488019031807733617648727783818165732182285970216015665071454284369326167515943213554702165681969553323156393704537317281533725732264826250203327079537662709827943917250865204867396874612280809965103672503754450427987227345056109873112276865205221275449761503711309035267098854512141321584316099994876090329411724830808819877576197629776605579528874443490282042996969975725849184844594631937847987490896294731714672821371891250767502395870298722665580320246030156990133421389160813811214050835442493858364335090355504253270671447287076512288712975966769959831239009546096116419945950562403193261695160507113142933564184163196484385126521712666922532285663454594688197933597057957453398945715562409379926073477919582816372178617972406318436618131099070869730764437604769028408988708163061423831369790071356951182013369891578928362756741048857598621625563462307914691415706859353093690278117584985079066431606498457041545777557213046984296228828565694621165349575116224792158788174587794885050969570012700917623105918527434584378810468723160709834814685970565364119948820256867933605512363033020360170221333682180464852108529415825039953254977722880114176932768125720869087460412563796750736928479907596328775931032620701847876908124459324821029569633790336067650620183356326209122726102342765716518653933549807534197848200476007919299998674402838353405051682025082652906230907096684379193646283937422476621704972111996614881657188812920633227639413566805106681098397527635190277671630647003359260373103118168698613189603135348738332465151459390242649872945033129922899975852648336095419148765929691953466047099752831623402885395892418132829729307675718801711922078585420488539053846472023114000210532918734209460683793716952611995162258174846486173960373801771401553233906917696422002906514123648834848131085856923242646896825766966875454607331349581817494261411660182728543399468951785126366460391149142351254287383118775402539130601085657257388128846360035078974624244011356054358157399107596630960663448870557927125341968056426897964082645221548442619091024689532560680045079273665607041069468956414129432953756092544725690936137472211852684633385646005900456881127678590609994504797353017265056750065467550289208249366722796294114182444259410222584298154876295988430498077307589417738886218577218064753154023177834817667920640283013967246454049090298737764632295323146325583983582012440979687257489798337466821661440259880608927369796540429404005775013176148009320008450894792885133280693740195958323935765124802872834100895587965566866500041147595602052079702714243445035164765399350198439408488834034203318784021900404387261815648613494551332979767654254556680964331702088763587589845231389199822965585239544466031457546768964951720798666958948354652231612429820397739232372692791427883370421913467226207088080797538566008867931224595432487162333926050888981448668038143666526718948096821958224470893541600122933715442514345551118962482672634461103335928632070154424991090059014351527354253858079710938819406924279782933783150749468345445246044625658221541393491989449683680524735446958975672742722831500685260492913502645235697793547545307827350698384737297860814800259058993686283446220716280431039017582963675800013802023230615510383266595138937579669671571088511628178613825955745355316829751379630296448330006629841123324832059118416020147464164789973884374669091731489730406383635252827184024611191597165557472777955896011050983410764434668461556221185183958532064078377132980650043479264113309116418812524286913773551413476098345399035150108504019123014711867311879076991334403780428176856584479108184413602546081447426113699023235819883828084989074675274315534564005806320643735572890212553603629231614167797625172738504384056104793028238700874486334052065219362257157017620934569514358578515982372838396613881096530969505946250420662749269896003196148117231364806282151237992369363057624052391950487645329731587890677922591553076226354315420925350685154690531417078001394837397049768198720169439303341656517157483853274872753899884356903697846369440594815255709336838026793328147268148395410361338920678918404144643077238394205836359831149309095230904820249344994800856726025048618192584124829506247253585239067582297726403232511154351055348855798545411574217054532871850390965056802299331995164328796086026735533018862113106776124847113946891274758468359662863108720101460806898327395868874808680661735241090695661493857381137169441652022269756238676445202926294581468840110824953442870174081469770295089502130798901400074734116554814194849272795064481246757273559897782473359889124518311423426600002528260868646998861520863629889960867015767381696644173982367985642978337529931315057341283907396193009471053983056547700818704032446906918442722476423324505967929796050625301420736433568447080736153499330815612308022252580676585646627719966093133883896229813028446764817723437252279845873038628154415504293529246646999625296640229738094615576564728736634069474189193606714615205684172208729774943426921149830200734251191004743180191313463161157822756850652607283673157123719289860941175628854992373107754027281420403872871108715381829725948210994029718113390433675316725723910426562640454143885716486812937987690511427906972516358480429333827257921405076346484007394366570148427397493100624127768377083723132576205338246210512485399318584398170918347899553292182642781452295257716213507091724913748309985798724245447633639378896411184525237833441161811283881422392198211059870225104649214337839068681112953497616218069316168637868600060813525720277670383758073340063005093991435410816996315579736125171048496222097900552103785043494551977811887566768961905984441966954681106803409124530405733923319297027797073512368663169220943638683924075929426023346874079245664450621379034957626495301287020572208134564438667764185213597936606697312046924101230348194752361177363943542428338869753199339675687433161282995062299100474528643730133677640840174021051120841926174991418252982582397577005448029262710221516113857999263428973610457127862378878921768574917250937365836565228689630628923833368957097332903673005425852735050504154755972328938533940028150099403662378415204828651229236412529555321744527760336233575952142007263543960635670046096513183423208804457643847760754145095173756693028849472261455080360965819978251256260317768128922400634206151123303300349164259042964508147753203907072565957001422544865960060353159085862560394402846785843922433598512775403692142180396341735696061886493213211974931770881324703037172668505108464935978246112878117491521924787729596822584830465262907342903170802572028550698382014582567898311054290182779093445328692266939205504145639659354035488698137456945009223302057118302191940380924708809426913524183530697818260728995788200401087451894692877428522413838823453237531255753408559249654933532042137707073978730958125136810571378830784449837221781346571501992293606179202871314911826614625444800103219253670575485271789556195003876879639481441634975167382512425024680623464742278495614958515842754650590646571506664224679528813767656520695911773940146022204900307565611917246036634615508849300795813170433346539155948243400778899145691689440617605778624265520415327988015682495269087882278529291165904595191422453692120486620259922113469252817390317775233332599371331164708040386502601502466170311380782643025139394488832903347059612369765655197756308826046818536379959562083622007456948679597276249276090994732239307980537729764167072278407453964074802212507229228350107926910126812585853708488088912295332833033946553916605900346955691709262297961237840431159220094422186693252968252608051849272788685308307880617522933470076072267788542590643024968233115029623502203486167139389097224730852148983577645662561777288789055579066479858635652866804779119124542942425416065075446722516734859062706559688868952118750857068543964977043385555814614214122488246427521300246786450559769737617167906768349478213369554224346197856213197796826058229505095821287541060749685190158889135864247074152130366290188884782042033398892006531872935977261858416766072511546477387146875857809420370358740494355010978508415407753827518964028702459470125273436946809534366247460811148299710164426194419180820854778637425093141129487048627883548927387518071070496728500328450144945787778253684500911681661017021543402740941271077635056025400287443652915438608803630365773193947659940889972069513654070385870037313589118421209302750016428671430605236273158662101194493009227808843016535740292019539312086508764406177560576449703243566394227872557946443783517799723259528895415580726977543738511783284143480895229382004318103634028182095283882218068574180826733490906193022928223702109590787267841674752661028520238001488517230406421012930736742783628715158406924738449118528746830381254055524431859185686616758832048205898364195690799969437436841047157897909733927802917795068420408166742132610434770292731324136633959524538330663440289785673494289940356803113701203566434334583634514299749106768858967772858003152705848143539158450137262115163117580889296056636725606821573556105668223641730841822143014438598201969091767435856515146895086427025793029281993270484207226773360239879805991349973574376964027952712153042481282365332292127358347243111881685742208464547420177095374583084261106132989418730162889093295352913609287190980092472871458148417657513439566382479512850455874579552877270623553736306546886394698687830646812494363557542737367247421530882513742710184400172995308956532543563789558876624540769803244606313298412789134245608045102174419551400742062053291847626520163095030689275695740198575966037204018385579487070210896428496477483445657151922239167018631695339156493916340086834625295899648469989381341979204960968921502934446224621252423359024509802903751096662435300301174303969316709268825691566110902410188191070612599688387388574715473194264762443678769230858451460045858501481096929600556122266944281904029744667473321085827607370367275293934324232372979517768490937327046776825839589514085182148455718115128082944403590139493116824079679850141624668307054978060145303191244654237149231936576226074907964524113612442272482983855799901845269901639217400184738078529524411505980899982416568585466308298879061935405501145416936821902174804866100828695705357982792648557747722888344318351355124089838959239002828975433353903734364450820402674643508279166036850878661921310799375774507772308887641175920368749792837520960632903187347169679466821653355225681690837846469965579633966420467156013428680464313784673247977793021926011086513872711227550294866104081393367177089337393631438059887783773403357301864765236313987768064904144250284879946982552925077907849690120464421942974158168945935011036980102206745445663803440290567168241475592686570013773224381575689266149588723330700118771931620430275211480676166725097070747749688434558427009848410812956971006596278654788154840501504795611383491073667018317886672637402143311974507505928446526674387535204007111150804582969196722698756980968067960912150610963079868744938369024815603716079329104265933744872985170104078972220312223222922194810850793067177768940284192193334292888446557704243890319003337592320540919508738311531181386227311293250096507339000618844948243777810973637884268206076999136314588944187022174463760040529442702117194170459887589677722852037996601970966728959995524870524084345909944092473348896271748994457958243407756472977356492760953860779177513876210045970168294167349931980695143610888185628052228236132193610480160009490518967275825218402212369911746442545396972569274720447909119245712867633003898378724781124361723289016128892825589576856309727527000328303062211148724438547448849103238969897940624518610275145108560071099082230032821299874946193828068495916203009829890746574379625707951170867631142032034118859625180812193606860807135702631974477004017256837581553276054773494697386849099527129943080429000965007723671932377106264338810002025687227510137996751611493389341521980434764178196764374714674455240183248861183392297496335143960537414526812228154869682574664956301557095878392790385327474291633764926933005099189715266036817171752936908401885018688916352600330979167763245253305366839166514912614001088167336407213431973120135378381408994287133158860803711988520247634246701673867591520058598500411119455478558245607649378403429096059984595724534836722556242567272289854144803703803528517553012714447932621312395825980872356590216698035048446271380325294508047107531243060623248654731813118876333837217111789453473738321894015710326998199830491050961720326243523127252835695547769494165382976098018558455532873081289877954213457825388902743645323788304914154143078422329591324697201792264136772891806999717836460999915866655698190740558103869212253475604284298617971053509533682234822992267253185263235895284878897474251661667577227183611169820520416498999781819600611374681454556970029153750539077116784832221551127993037442068840914924172927710460062051142576324862298292319312601845066082688090769692557923687114858394690281516065881595485580779512080127106443749474668315331126675203437656229264834653572497252737479762121552641226438040360783152490651705220793031529116569632426955615436562282039806303212905219944190624793016336636573029518014918453616720381100511852398890382419819867944630434203709106152832006569301027408138766364169567935267682379024963739234358916947570474324197269404097364468828062241170842092474044039635154983687431011243632083244793217455866359351031413983533084643751253781151180438630093307450960375440270940446487283605549283021682542865987475045672469216472271696625178362595728743786143748290083992509300377463912979009454957864896141524896121180455240225200550355504133546922480485880302720527228018051535218130066601554871763191612844753613548681750069113873055222377959545077008329204648424625028191115078937484736195061634445208492085136224604914900314728893398660660889042933168975167576001183747640592891937020927194615777430959144402821756489287390846223361699497675849588094356239953699223641716476786809243896365543936139120620918358770259789426623302278790074896836122378014633528843443888072157106558622775800988301374618313622097839852885009040797848548463376614664578250817970706233308013123266726048290768892785301938317963245500558055211184130622742261940917608578673139284998323541486193650679194994292871365444162455268710486325571812615269692863877833514959423364252010083154726477564210968217823774085066118882082420394358521655982183091498808079816790562939389134392222330031662175604489542706006370207213216157424447227462343043047431418650090430638070242353079968172812128558608168101472530701255198899011057470831873129880497790295764643585599769033295726612248191411838274687298831569714772812976332217847895380301701500679932762420374862674597575774094628332911482556818255051899661015081143649736711255507516995129928945443777393125228345912117380457871240950692290085652923997317985471567886337271831393778283243352387395788051955309913462037007723083141017586459533610131043190897539113528140004444172178628318182015200937216019534579862566804007980431372579877119149256539793795007379325593012835365019572391232437307645244903044689968264215499225195345933982457684796192777719028504688896999073644605358731385247543709060385405426004974503268022982960699193207707122876574970993940003675883731248426030147636530718173408613760078239143335031011522086498838761143505509603281980552556341809358631906124636458150056861015031136762276983113976932101258974812392112755083695573262733082879276233340802233211070653222978132342037088218021790982712842935976366945212437274503875123664681244979449947703787361447124207617170281107004265063584632718326299057819570043853776856307405394008679287306924938165816759218328831032794805270165696830128977021442349180760891505784010608375235077604277536238896623255244280477381230179242498271189376380140968129757751128587256484406360682411160654789678657854405572860112252325419963469174730832717307281917643844812051743080639333361592944739915764131745495412650690534813381413017360016511925692974351436839370052872428750826684884360783355005838351871448687857549231042441482334586907591375105193145527503809293567563417605541223840423791336368164119633680107958477001149337547352809309378552742166179816895188474636091594751657127471263506198127283794210667054190970685531324658974935666053722282452416977814792862573788450884426324081043935104529776103857519958720250349947504694843052345326572336133623114207791182764990913562970716872877515551149917303360147276695887720054200186516315845577346386525781240416273467108497858559851730100878373352726900817016228604456731357236331272778192748359553927392429865511839601871007820506374141964924460454007302615400654918530246033920537519224970957756855380349484099953806958148068813710955871411189386489116976535841727934950618188695346681930558213266216731024318708518476848799452119003257208037918373027795308025740344072901850440269164664520932993775872323616531806416274556277223119309690972346210676595129897399025192263116805150174551755857642974112919163936071962399697916125147309105969083973969364859940904139319953252236835857010310719022929686283953251285078402251357570092080438954489641113577231696247981621387478696801248228128059136778314547147556999809841531456162629012016425845476244292481585279190451768844839057290076254714791216632288827429959313455196273449551829319887941023057088702281454710821608096702544036912607295090981548209324876648643047380013018285667365697357783284242146472133088584960338880899306228089992651730709253361976148958088246941796633576088567271362968738279331013096476960239548635636358808924090999528567078935464566785191219206129409018251500861317107700839726690013330258327788015507973742676097674070273249374289142909930562733741069902348479847502453882677319233100359141616939011707404130031239950808114018573385247887255795991072034281394568851645204539850533583077558660039366085911664163558650453555139133340409325873268012218704441210389526518771318704906572791345566373504871773856195488997742781907521997742917161821012841307040562271692993686873216742456410152321170212726809926423320763093449621986055170772999424190779209306672585885709190052561465806933103579909711731120927157153019865575613000468295388678283586969364952887206962969966503232302772713296229933574435772157749397524920436204188885294487192599362246801474994089549024236305347523215783997579613159727227932528433798003759896057930101220582082569119098975645611939615197284787636687749562360608162449485194198660895269689660807201260039504446898788471257148328996627010201779966113341093832445373572219471154404805126731113221187183386484486554508482297428331397453219497755175964673184272770737156569108604697559102766151500407540751511516469560312293225682529724517865860854088091199927685680494678463709885935954794386753281611500174721630224685835234403801158686990387000247303152562139719610961671204079106608226479399871396556758856165536686212979053333340668773259604896393070979541841742504831055864255523166172221534365018066242843404234480133829622401130757191281827908269331707353023505851161383937687198545859001321969375256035639906754283619324720598482105496693831258577446918557586657017596918398955101125495592872371867979647076183181267122647394454873580865568476517981307637846025437157875458519035815116591880629973667539334203246673365847589833623450355187130012774019852529645701226673550992822860909355071319224334928762252657967235528876722428220475320267043255500098129343381965695013989746357613079409992605153698060750354485201996685947860722315813011899216309213414176904608627213581025602074088760676695435858799219150858049349495528188795976088705858238750918305839198297123740000998460530318676932450925975949441705136487338572711021356228499226622300727893610430619270905300102319905762888512628949773895090658018617726537094803727394844068146540380940500899783402532025648875102822795539018631769246742153821164789609459627189709731995937619712015406774752263991420312151943593875125615319346411693965860321115290136586187805825551251440864221247461326662981858905307054532069182747605031337362069076422975359287590390814815363953961244121024343958647750928352396203615350934985616279022895367883598860598008197854999531302326934036647827445214589178710212930802937458205588566184227495519466677291742065494216634983636427683353915914231053818134215052506113090883497847383636908119297249526540814188596927850753612810956080046248141596084872216428325732955118938628737636630750470631207566578069481722417331671052034166891231214503127218482243472060849277415086026742973539605955035680381087051295910060886967700401051399762968571912693213562908023598017334117460858320770926765273185125237797874363024539433104874924277066293205684459022666212346793970263007768178700644779318425586543959419169156419490023003586618674030327200792017419388240593850722735560391056946622891383086360745116658669787940575686444674169871171280167308875029665036793235847072737726412903005704200490560961392784472869289409967164314028258710728973633483109887119808567111899046526402534041588985694197582605154866717780673875782525523469601382430932353961601870893148016231592405909056664543201636361359300707169943187573947547505714031826031049671723730769816116741312071643659210766057509398176347542426518432031550157957900104343453269084931945383513583441375631057710394921572852911956401542256222174934551663487545247499423143869168706320220974064385352521524096111861665245236066226595689460403073189595118966264062952619610386928154472120587029516789950353671958778303463364753972731713505517060087540101401486847320946500941610044083361023948490909301513850020622373051320531929145926137476757876742247176715705081254517849431600179097975372937937525042891620576537554413850255015669949525795533922562289261515945745555337325611803847990340830066233824734844036358951658491750308803131928706345426327943314197268199171370002542108767183466229448497268000086143374281429623613999395936696563710280659841791815186706967502262177869468695855829558219961739633007031811328635268460794470342717736959554135681341145392219070172439325325737083716888928999290840873572044388788012880668306137679980339123556556246499130569147891952303147125825288429467992039780622010680984314665102700967844272252873157794087629311331387445306804419956306286442756994451102808072626406006641705720721859849346634868715621220102053795650947978920057159311109832906423295275705166269136885550857775996840296123701457563642267804800546176957602283612898934187208484654976735587497217744851032938590646071819191418166354540554419395364629003787699344213343394390068801662256804469882482412187398532399646023777475959104889333527966891531583769571103899112253935252289491484601539955339468548298181779433307455473548348036096923878496263651163867641404325001009077142401981254238001086800309923849010875051689480099683755229923920198213390271736030131441165494319669996474307241099533224312125527137961216849729894346077355374871900379288226289051071940079589201388136205226147770120324626635937341731243216466697364529460631621577343946960626837902916117554205163127090651213469877975409575538215706946017301922175354023610646053696705599874122558000776718386916764240907684332429390495255250675258179032169102560248786793128836522158107161861840743710946582063350162749156646173024135953844964854741554197368980574056751457071438819118540777940915488011685762058354057200458605173117486100073578029303324643876535261629370440641554171710538182182570377188842699773828315830215462107502520825207482726085169506950929637275087366589090840748466154988709002409313308207472430046034548161338378528495796494040105023057744431444648992293580232842538534924452325147110511850329380214309474353572814147324657414172208954842288875136670994261074205512004453267893636628359910253302919016873578745419303175543617385040566793665601681678533071441871020729731182947676037768584459382829645967451420641272871780313497469534011995316762824744759438472822975420616408112985932401834002884849577760918062083901788856897488370799157814426607153466870938848546371167172061411104414455424032447943279838892682458456869129243251434179553094916918290467776136217372906982004876171494974967874901337184791119798080765781766759461006787688546391875718972168782540160425387235932591387395131499235925799511550528439572216792369147937114162456291427295445460986909697632232345385821565244671084828006804056627717514497326316292126312128220939424886717110849924528620135350770309220684544151515238937660385295337323263174826052604022305837889843141514530214447991506269500367601813255077054233422417809544071410579735943770444858437523679875811357367494142554415271878157373022139586061457352080933973562448353079430619883020224550562387511549354777349989597753337278548999331535194130873472983802412064660114161787707736182183494693778928572534056635041396527599419950761944154757792611889239578807088603941282787231088282014065769387518850647100788183370784628610988760937759988302952371782034435669179059887795964603500328933399337363157131208493721925105231867706945749522765630827946866704815150611934520804002653448525367471747915406926009051208519110608751461925113635873937130088932892002257563708827705039466877975664969376132516214390270674043852091760042480574220744837366542232883218959645385563650491835480587741733679496694440745914874313462504285919112035988865774947236787574646254027529925781237173690565918803307381073758921835513098328610712602384507440634525909199063964188507179640824012888111701107469366289626984400161337336658296729861441393383011458401550890024635928906107293931174445617214870910089827648805782185296376499824894660538366824839155051520009933255127959671687517353610782186496804187230992794366402945964238061297142957379944758932950268777104367069055045711088172469383340822424396964550031868094431831677225562305977973894205040158121516258556942981984429137819940006764502164517171472703875848862378788405371306053437752983409227309340095328144390909266509485826419774959416532769855844622238511213219845391364662957344340395384381061166207957049656614201239097982744026172990807059468568143217454678443176050279981084400783271088593278986268872725888338535306625106455420446515822323100349837458922171895209552906734869459573198859808524739496288310473454192818934488237992454908151671067210767810605782375480770614660472107601273128452445312304642547062718695890020162339958482124229016070058767365742996769420269808459824871367717663055815660236325355419980999238197352305164889796224245487199215082571617379794807180909791444480763551005448151583780694885985194859793127800240364170884989197821541342035654094219868295314759198127185758244840408501725131922442832848122288542366053743632712917602342968151752821419443837212827434043308926709944236844107452709341394466970441213213730527572277138265834456295230485826762496133594135167014598202292589011653667703190347900174201944566399936335687950615689453623370705584108964925607493421500569825748416643453735429470414910120747678133510939428251964917196599304365548588962606962522191222509559400196260296376023418035555765945759791561769596632790374718799237554852373662338909655661482277513125017982431175787357835160859887121218094288231138851228054707565385010495927744363738470523456623841815656045624912009676684066614734000882868363016902809241010552907962939813377381059297477439128933676603020293095822601215087762346870933075607006714709830565425634145560872560985830081302313591786209902006689776478701063886356573783588367654344500099997531270809619377015495235531489732050782002162103202680709725660898793461157492026885764176573324819528411627892247199677352970871619026761375242216040904806854514412444073647523133802433561111868947700273943257582965659789476688222608027606854416251679985890407766806731394495692719726634063245900521348331911416312202629254063353317248119764988885132231250043390954343382554838421064581870682890338394948642355180118409140501154367100449742964658577185852854907475385176614694638342439114169554914211711524950895674532449433604323154180227321136966687397917713099118503236955032703341662155829344142032496234485652611329499130752536589489771780767334036984500730461125850291467671271394794188219710996096937909028542107107748424663899978022199480255421377679478815899301696490919938015943071695994311983389247034203918353311671916794616803602320994854563017278901445637005706637918695505653157020404635276046912663712577963989972367227523090215840303325822213421210324571764858080361460966864868341314246247644926720521751434465101399309619748785495321073030050232475237236408985773712777672549825286543542061588407107873106144426484206940874230379457662441229129338303501383825021846551549844265618091340731544914588274009984936436285108436759046767523742194193575885969838307545549240393921245930617032884252946809172716245265929855346508937854824818001113837094114863803869584689667210681432506011264124326461411454378290344205233151190281363779376834483857060738068729489525458751221232389585641333277482940295524681422854916874023907156227689229760987069021377095633166301806872359979705776119216803035127047288592389005809087309132896338642604430208097982826436696026387542156285360004815738914588342608638642113079503940973345572198639645527358260677331214269940894658430826411545403103347352414338341182251112473338377908269844531437548624069842754590960995591752253133589328808263227186174121333560573168663885857482057885471301439957533965563172103621186179078318057393406068717649521553671514500889010797215996145445626050634875331018789794751391301717321871903591632704985265213211375707196398424327027483082948727471418466431004616197765546473303744527335539158506677747626160503819267724621110136328278375082097500339624976022868684730656939244718345796407746207788027063898373344042896186877759288710167284463735903872140110570055239633344061473908751162458401224875433656207016085486588534003938480609329957880120474018373487412171194361219045970942829382361081145380084660417437469274615743007794845016562920822767481159321070891259275457492746758709054519170560483946941968305246583860053049470866216265799379643800760852823852901288171412688888405367173095685065255979468702517909709871570699210725502810957193419004279049032906475188564059762166773098223639567650680345627561871650149098891685634449398755207014642489558117750356552948557105156010111955753211888099565773829506672721476055356581035065690432256898906599498680938383017370260614346648628373999545702936082138826247801750840190541448687001989590597624630105990231521658279665390185367090828035956376732032388937660335764834045724491912536915732798960948017078667980242078100746445702324137772623405386203124541854958250828288095777581047873131182804348945165686836461944333744181948417674450651103690922344850283096904634877422538262976263523376287616203847485300952939811132991413141649866835454298270164595836156265357354948737035357297369725459789555889919930928770924950402255925762037588020634896393649081161981057469028929945849842165630638329021400756537864139379100219274814926633003614788640036487706391449732855711043205945841726072144491364534059494005237109275952205964143790468921405605115958154938470128965845872849848198708098606183193572275726460244956786797581604649970635274582477961188101448909028801091013412250418695620890078272760212948723906014331141698787903645866926143907877376706051505916527149377704019450482397011410828254488595561997837473730017027525900659613069658746850811662796204826357803205159957683754023578381875778402912406566471778716198656765521249457941565927232523882411685040159812582981612336629187136141357452985417318323525822992791026172477958628468198329210272559361993318680342980052212636147018439870248216622518760577236543057895845780293820636860631325370384868679620057458821603823336167391406817485672925451498538804597030253341529412300047018276272617014485223200857041299322457619690571912544187855487977906580428419279524957102417916778963846243467535809306318481838749503854264839956773380744371565683426909180453657960488032968729220542998809790050528819395881118052097892532509661469405207888507342839364715507194038889214807471627797452437177640164867501467395702237579831523835455033754530502687361122074592182217160654769597808822354114183945310177669078685771536369510949474019748736826527392358521781879632294652605472870524146199558134732797123388840194626025111900967459208436673831911506895891612482838985190140124181977795896338220572229079468908956229523747271319979234493842731282525710973119555882993996980965477064658085818237953042048341098161253571982527547490732593281576472008793203464078153175812326654186784796937846744941052187017695079713823597003856811973767449112143882069743562435580202238916107139937716123863645808645020560966277201516488075611258037289576182308136363909686335934460524797366204092207174975501756604817660030865330071137500576969448356287579449717560664545964670023050715891276088729973126931733714033917339486920410820372049074831896113821542642402419107188085047941846134229135142940633631997125126450580686103572643975997839137743771497490023088321000597971906744797888829314126900287901251289996457111051423597199613955394895707788285734540698907834088887501923956458633914076007481441169881270637637514907447919709952526544100496277678054887435941646250012728782863572366313876534809133369676408101833042606892392348831414881286109258428552330297643822038760069775658020705405926747468428154417768472678623151071673718542426471550461056006312996171663289217064671279211614003194440014130065351017064158565203386820424814397202362330696077750465689235026339361738736230891522100189042920647200615230224486029971852603359224913280393733218416073798920842531070704664782785861559750329809941240578091043999981742043217266595757523463081456991523221481272914590797100645576219275085572163300747332217473897123783155109190350439355358803978975718371954844991786143842950630186265336088373795321324728497707278420192866603368691275573498693894746354001146466137850692298995511293430585012526181224609814594410640969594512371578944469510607873011186521906255087724293245936768484947676723049054781160291544826392518999273462964593257570189478045558767918384878904202845436014059166720922531450219672944963658904885074528755421078764724797381542786493800171872610185710358537090643728501657496422503854198425474633320294695843656958301011242880553328273429926068052568420344460420988086031003803810264529010446327657690414230676222148282683971952223027272104988215815354707462271422547052313298589697852705205178610033439750308813985592357534579875561508799474662095660920757806030159299354561208263426387729077546296603768597475219745886442021018502396216966616583628865730857405819181921511296634932342320762070916505651028383820583012862664089132014878444515599847185583582921469140998017455676852176966749757644318637435105021030998961185752987983837234399111462163196574587429726833403332351271741482646659904602437931308179153516074284160692851296766731709949177602914613703766983023612955342468760165282618278472242934536047961019000242112212001478016547984667278245034273703670673577810475218852690291190612452372377769882011356113642980097368589951289205498280197150330142287929891164961367340285519411790038172470782732110880107247765178916717156192901901393547074951836641841187703642005244829230205982581456393890991779913217244201002500418357158682987981655217470399094849615047477170298786818390232328279985607380058056741275589677689317308552890081071872161044654521931351438715733098862850206646778404768873018059140065526378053288940241940010530693853761137239547832787221334313226983631951410163246288435802945706292160096914934832449155152439176327364980280734010168749010634075939534446711749134060296724471503690872469621003268627604937636220277821932961286520241334073393119069041102104591727911501335005342558275293956634002894098829401808158490766444507340181317932575552818128104966322997819823493258563237931882472943374345344321577373627703821567241505697393459145264333146613111824907228795031812397189939899716934172226074342257016663380990269114441420597996570841133053062934112343704957826855761182218177987957377891358601741442119785002374737377899966806704330190590891982934495058911350979352504949905988880265961227831362075020975145416983763748654492256519348975686037106570262647101542432914277182634384260887443811919472703613632596908528000991981995077175255678044528820701448839334348115354742146601481084998184866957322459834375094751600921497042287874240133817797490657382029095896434415411304211129540007913220542234138122663865704875535233507714635466947103054031983112557948902515972207644966374408299140843195831524342887724627949843948253533477588515715213928747320829940387083420660439408814766115873730136282655336402961902553834530150273271788017541931917080559882764545715558539961709718143252622670180374604461198819783652150524987743284354176165552809050152994638075314389915299917473728638078266693624638816531017068494057030765802069142549975621836056475421397525770243342784944051283167001799349562604409198146488916525517266844247385790912350214489649955559971156099873943552940606110977551408926397391359524152156539769257162924545118535586150274668010126269122609076724984349107811304747504323427861679121766790662085199014485045281825260025246479684992590783544672794674754345675821414002493224202859380721242433584080924215630747433542504015888795237745107500972464280654673683572489407233636561184654303729306751382047799094100959504241080127903310312922825745793834848926300635809965102421762776650991394727435342445243190312337488342715917641394619616463180285106994529838954138862881245189276731919692905877649398025560721355576137541266309385839435751547369523800509913761378716227618709848410311704440073451909067508595239470030831389560442061043967045462697067329650969042121903205653557304452228609543789558103750818228711810239269090857633819623004477467194845386825845294977577303378315942829153966732991776511660264566153845201484905515194980471986510455840991208799146980061906858160094125331340934468316159218931301275543887723798920729357944753065350621683373785547538764051394401819887388022596044869056423751077587956199022593449728090755904882432962738339166957981680027965178811465326951847746234355388290614207731844798430089717877060798021468206763511945824905156974566766884199639401343573033994083380041313406528890341194491260175084482012922979732330853552862301439814313233176523533981557841715442430722325571909634547244800172702713948451268138724018230411954094286024449960805094688148166073183298028414597839082311612880145400639426584197252678207627612995617251224683513713521891315941678121473317299075188142765501924036981538125286904852030185002519981117583379691688960021151365946036672413710849755609495309731594873212268810774766980978741932511724868076866496029812605473108193078032263838827898949670587859575402045039594984641125171455153097817990578524620010754115850930052878659744987029003238295758654953906426407713830490286954218365356072488700019689490652595105019371274033512351112510323229105222970648701997773435687986152192819039519260527725492223060043454776062322390699095349295509591374601674813329155492827680270819731541320917514646576676779307186499998415337422210973917216128197112594554044749443022909593980601166948269612414806024593742398091814469855817666269009400037709709101346515338999448736550586159037486684255699047434155112617976707821911103040884394335342431208899251744913871263955370090180273535233803233074434747420853144146503725301339471610627266238905048007935042669341645678660400871139576472890310156285022439735952909472006176457266303065690838622772660921980308000145799648511351125848819179185882453861195052155406311668016806776474153063599542769215082211431532221274454482749217616118080339172345419727792142243141220480126511266968123226632747655898505017236813211389710420142154022473561504937385565149470991866173656254374782695377859596711238819564403327526541143170094558802795164419017157879106503383069830687702896792240166258637400310768997332470242177278132081889518855860500277435089892440883939691002929958065671063240108688901743802358177060102762700460672348203692240052272738949539227100832087957414504599533077252083572689467606820734457810776615380077635902983202417898692128720496259714576384074992208007886050184249925717264433721122112677507268047404270474240300323579988608998901825165401775542392914236575072463669727848768190424253464610435096652804054152395455023586094826333756768686669333974146605874610953236299099400566719554370639305541939006342352142711868194814439108030578364140947077069272754857479701992619299533020236510436670298475858299262825433416846265554968783135605129413053967056632613747695845256083251922182354970359796635788480261587620092407059252771508072556596637466148379766858457691210160003199858735979849412886907595997123508319147007781981829368863111973972179001340810045939162980194868714470139542207273913536375293451876210152316311552060910958050763391345154970858477087476272079098244386145172243885818545843891904504744948007082050227290986706512413622021675984856470427231234240932143801915765083277253128501447614562883781352788936671332800828839454879553821916394666935895651074519080985480711840053613822800738676183191525698627173092523134906969239727884686326706011769828162062314151273344420264834565494261386962332108643222581995322376578462508601907182163762720201538799901157644657004381679116185414132588509705732206826557835970297873295173142372260644611624720251103667048616925761246404590627922190358954382928912496637090822371929180705157684798480036347983289804534609547568505492517974344529471660559139149461224948907624070723348512319249436731963730541436960398657597595189497614250425505982151133939709474191990069063085888777949696229221117811016174845426979385341078771214889859452295084099516477525129696935239997905422633278303189741864742367330130399556485296205905158865366095788100324373903640017310161718218803847618338467219528919405103868702402391962345837421306825929307686413787123978726319242593577257949932915967743262025583379465248125468753471019509883826921550581156702134141714828041713749830753936946343075308925573954031298899934891961244800006112114841681933966700325723996749818668703138044228142292440083165281835135958779144280834627713641729652375477607504054816949631684115451808947028117059920072573124443253891645746008536544277952127040051594118407707408878553857795626845849311451272387781641328483596822759201101386957434864533533111982628368398548249110516831016333561877582457968280518415668266071449856942674610395737410785771636992692825277193623040698009327668064237926007056237614063554837059731297093256861186583514421531183558692927362128277110608762508048403919025232466238319216630242266415237433178991866410196448197841541382565455351323754036099715031332947412190591134247530696223117208546897084160934836357459299883108314734845310261119312654644775052288567304663362280189587437534891990748854288999587847155378572990911173564979068188657416274059012919454172820149079218442108794730857145533794553071773308369941582247921867713216100929053854996570884106907547312266883257091107950394339257738964811646884894276907711872851038104900056441129333476599334893938896574649266344057607272269808799733526352678610925201910844443195388874812328023697935289778277139028810033092642298854345749165119830222145737455793387734770096404180831495490687385807117666525865325931464075832355924725363915265965228071852304851642116729857641762409492139168420436398914525484390158224759378213784588549517739670262491521739072266378385896943593513711478077846970398536782887039448915944802112577134844713239313153517730798011016524203063156010567706730159961496920080074574525572226769635459496320252946470994297377766767336053234630841244428210737558999454629309915954461623428130274868901778899338308968967523789929888655828819641703354820463192351055444602286534865511604278283883808338775934801373954946362442617654360553166931402450303981828997292295665883096399046293854550903866625887278289671868881968159418651516108857244512390454825204370176736606271226433988425361286761695484652536028147365171152360804101005677543268339514325783732303487781454245937272783855192127851906078332249267921284090202249541607429774728111428261519548489616987575779914396103606937950225909723837015925187679111787794155983600702608766981238604844618681116232205434935326717073906514370356722472022195078065682597270692169761514958003431226004736165466543523878865265923054651948043581402653353337891555452540261700784127760265628400557391530696742281591256789775432127956006134739531132006460018127664998611411546569128237097148226495124631966991821837477097943364348663767754817816553298381924555377740348518025919437427658335826234431963136737711413196556048904516695322116589373684785606941974693575482411185310862643603733613302364533024644512531299136697156279151241333211406758373487160278568247630425100847286276822502901417135592914315596375045707656355205477699380870617062007298581320120709541359530806057345786297235905862479295198744833557611750089107411890024997078528034791310224840267239034059214580168521004440422076254237315672532415616960268095781832830553562030206670727921457624474524294424921821066375006895839901811535572503793256040684143056013529352541993521879802215601176401014094630080167755468432275512766942670075824978546578170512104238537835289047777497848698357505359341861577030045096514501911534498366783859438257197692444207054731893733805819609031726744471371630709098775569577110376532622424340880398743527902238896453247490503928958964636424225145974227765183342502011291693453239188361228004052356543226096289353170025534995456667016480190147752776430326551268524213553115532726364969069638616732136982888264927717249692485162244123286851934977141810240815722861626644384052651679477506266924404647301888800425114121588858166030772006981759409358450223413895742588552095275198480019287674741212872455937250296232242824915076035784058923238307614098968539617404615402429144233531218535075108081630191928318084177392302689059328998308026624724913892126822612454788258463786944027447733274254621156521984041387046428365530680304640603300274687668997869685018715896907878634225769649959033432515704912245929511671295796502333898662763894474230718294515066070086544283015506123010838085357653357138699522383476874493548885642870157998881613042330557596823302870526399874564591276874935507527446809406545303335473930417469696338643973220220357850005761474817888153461957993574866873160221076961120553498893900883237132689000565397025563970564519723718301737592511283703590785123644209701985483146766760711238138014424479438087835113630804006773476700877134123167251181058590562322572460042021869694126021550353177458337447966441430593453074584193794862973010271367892819184785768901288582687324999963698537253935628720109024614240709912934252136211757198679847105133549714837742733561612506930430902863388293293258022070758395582128861996243864122844963493966813353419954138638803575700896903298778228820852733903148217855482715527605557623018176294849242800752283756738010404116843491573424786955186461032978625784677734153157697356432762707270152011830743688374860369910641567119874681536529529212379051443158038398058049818636942020379025091246574281945539657570617742217787738849017008076184015403456629373809584831303436234563593968219293619710276180966175166953814429797743785927735896999942623284269448529645860393546151456178665641779339179862162038004026974089276610925090384736266534817297237948918638947054211872015163417715249939471780187371373961204612911043035955228509660118772044482094025631911370512111547058724071998164731955127351198474339410548958591472958539516518859029615380548315969927277980067004391628683860430077112727786225689799274576311885185817467235945969404125552953418238836047210863720666003872011876893029721149569260664659179387048431611397819860121039508385374979860166159679053638344708935465308242817073931401716154440748066213989681643544424046281606668657761422126719467024868235381251080070454195103412010628803264166793910268129042071632925425480913889309691891898610049111546669640858998114896301538961227522900029904259347043077972843365188938072861022934593266294103308707636627961386229612501503955895438138076329811015249383727122862761262706348968268800534222115985179406266428512340527278218854661860565642007316426399471351112228596659602794520283879840659534545083252371446891803067800420055369993330162491758621449525399243671880983342662893532458612602447803573520326838997954782944308137774890934352136835865188100235481510417873440858763282477124638056705476328712717844341851360070465237562754936529680995347457150255798868871280718489496740045389471455073853516218572129429381434102167202235321302099187474647916599945646906043101671002551346182848539785726218593704437509224629362189861098539846692801302597664650691764245070036139089871482375830237249595049501761378694889272043246260345286672810710465029785783882901285745781231694445871685349889804644117182717934421391030332059857882854669234817125823268183221596136390668184286790050800411093055953869223263355782478618709318911967295808251774479459427285640508266492088413459149766394018245252875926430268914105804129403790097024042583864746905362456215113093898178369696429583304415410870815467699109479580408636769432504265409861408332925670064099494141108553995833515521874912222720155392935948495426033566662633076089416190756787783791189369121515028538407488386066034508651276181160633610682283853157543590035330034557243851104527650833620504298263072494399682765355636434883818609674000213946794342860195974792326479726638878487613655554463015376341488772124181263262378102788646541586813317004408086866110370672171050159462631214517972791565062227582647297307210372854618098173176841584324770616281165111007813377143030313980978134787393316251047833205505306588801628395233552333549697835584662338887488309196688106449641567166767210856096865222651412627591585742755091597775935202827979788672985160923442037891451632832623650552935192974010722584438728139710294727249384476721289976991363510824575404038776569724791168064671301609103752622838454157350042061089479507009241993638449328414774213116131805793016028993956624119357116679513870860617926945310372643565368341538990425658716534937871539252925689808225745275815335110394706829465722712103261606925909548566652697199801482174704446344479703474452904669401193297741077968272174412303187179523387143585786938643076697905988335496578164457629355208038889681375968088756729311480673679717206300777599636954644738753240647100915528379766366198115525093476807859037701680501025937874002397895414775661248096223557636166764864821510531724201738016050514671130701296881599886351933663709819750452767250852124590656633158001733818601051975080012503194020400284420163044932634353435007562043491407439969584380017264407558160586652380703464131334098548006634387019210119000778794445249348972871039802894108255351292365443509446406804692341876542376334461143303369036279950633218944575832882845943734292425296135984813703813774132200669742027497213475648747685563518229935134764344458762340511487546635527619896785017555267477730809873442962679886199286964458383457714453564226700084827832185038980510231734057808159142342615194192965604926385428542664214420186074613725424299954351930156449981937336581782142562403026002451353525683592955030257519233170631098056029647273138120685352066557626967065134865399372974265464039010988579213044126643488186073998876006165986892954843810918722806873882579551452059974882519088212733571917131962004006926746560111159769065579069900183863242792948971367111584887108227544082858986860882375072390174831271774782454543516183735230179518088239274963876727547148095043422305262722319822383438135273046515351995601507545530221330571514605522504644751583207679084909990521374016554433483298187855901861436894945113619217742084347658375182373404341137547097369747471572541037245968081333694395502017600408920742541670173186965776686973884824125091913773015386423034947307382247257969639310397435882370135953359159745422686320884578504804535922465092533559882647863705349711961399410816150175611752152289976728390148509646663927019581482020188579374099302860871034326419768779188189001728446395672493568947137411067823239175936600056079228000226653250089345940424647236369302004650817172162089493311542391846772184768238028706477591676626230320169088687453061866097046335682165335824871081508684403765006139794642614198008986944831832386456131948781861837447787489944106670787368319393036837694338950318218709039582734131425741182223202641230305636203061239450710689449774407398231339566571918061810575032289700133981054743439099612034171153795023488020569649347696889416291508599905274099120821842811420605524599146755795938032196295520867521900919891145916601397017344918531274743212026385572931553310440840057341974455201128960862523954782528400956753899706169093544759443085326797904216352114524888693947615336502505079495049743230877633765581368985656345127556024215879649713619776980111091274732800594401260548610272444301498965770439554848925924851600214336244924689522139717235577900552063126034527485027537624368846212248652992773014608113147211149316161437861811784507705493132860417424116003747545917791932480783196250801123674052295935680433116378121775702932851745499496851734925957369596678483025206653667963633849411752520348277235467945190076980025641634903221240550548278258825191579743445497833440032922195451850627530482166551690807685055763590356726661208552663768515716570735684126140928695720633245329079059791037545695303009724668959817233320270954262711972901081668647598097478581058387569447940654643798080108388544916847700429706364712510606133215245172101220486301721125381897768051970123147993167379514269025977582934292196561727938189150595415559469488595788680307192487934165084470124920323812041265984537765503796116944234522158833523397589596262526310851010746309097040351211394571694202926566994992196278364437377929973614925440131151016823907710359895388904196585709063271141503545688759984279611277793936737238348966728283069569639650577965097521144087313246089009505111937211782102499972194311380787156657013361651157382474531060191565903221692912337680849655190166518910737838591330056525603578959159011517823488835935789066652610732691926270433443697027271714343262716934925015684842125456980966484867127331383764323787905359890971132794479188271431665590113609724706037671295131114258280117253471018451410785667235638081309351340490220031172028229609677380089179425245813675417493605245657547681699354397423232292853867210168837237743398267834824561464218105293693710489684653627484221758685535454721732610905971594005495093255526462008914167161596175755814055389042019585585846900156590406521525191860252892181281077424792208144635181988171725002815130935776461491896595951612824635669029732205072664744419342893546606334266973072681136929859102459148708331899866496589174123680537570369324065707187920626689168305315568318138114224946581816091178513238342333558777990441443511707533849932351311690570329003060252278817737800608632746625687473160169780525813370624321753391692581910226213339964399705673778553970094484255294005589318953167382594357579523863826958647984072454588819266575427221370127562139397022667425532112365116748389081966826193975764951440062911168100587024094806320495194858379492010455368932107578831298617883376648047573752276575281860063502244899131418502568442859154548385041189109617181106444780141044441375042061344069335438559338590736215606183046112028908463973974730620822895152368454309364053157745408800491092870340717720846335090906296614436648662497054989865984805369065948277766637155743277298230295782377059755753945763718498523031795844056214578938893763620604030376634285474835318621213721033647294570093604116052828443502318042317590932130540915240936684497210575802918446597536071767652516295933276423898045958635092399052495242693349498476250722271087753055511209762130927579351295798604700457043893528301799972859183923176135802044193924126122742131161275216939367872404514614003070290457365787159580111826880816825319370555724688569294149199213290521216033672731615460596004018818312530804397937837740035708290558888324979623417609695849838324022339596383818039865177940232058341690753200230291622197245433113566830263594488786266052756291159899271470469998047020138053402366234271236359486742207327565025646044186949166280290770416852074599844696830507331111161987656020754577268735819412417510109072894838189153307130556487474324030646127361749600916618721681566886563081215658824620402969250246013562421525747657567860280410379504522000815512223710413304388981808986777494955702971211921864608078716128661204326275974696853444320093841699804207825119278337865443456698029475541741240949291246977591302044566213366127997120244650631395620971990262942363900160709107794668623164562515749908775089740144658607396694393759156024807818486121447350577484427618960503168737506508905883077598014273115791780656857818253897798576781251331525723541286969778644332292842363701366358752241946977818147815564182472541298969738625064286055147271073139550360256902379727149121059019871752968577459010769627533115874899956119062657031140060974143068037706648080101380053994140347652940227253524887906347926723756305504674695090790969055596305204100119537300064273685356173740023666613319455348515734429732015883543726391688527352054517199972603787299917580398539166405890399686951546726511799939418388924067776674553120627930458943088910112565080301523534019413224471178360541982249418657877513816613889449754855473209218490806945455424176995266191677497637319102049505345603018292736608861488308787624463133100614854095538474342683525539374253983267657987296618439145834894731355754674058178240254788365088274190488718856101809391320059350083160096535370153975905201300069865569899126367463433165507801313614049404526135370439588757500420445985890243646566274755058004036306906382431362231899765833947798320596545932665533598286115969237017824646665154361706053018608725210716537255896636525326622015009258480429151376194701778857467057631827795501978750883290669295939921769721326732403929315780863263145881138713644495300074442505063889377226241996775012473300045731349517514884894404577163915800720640015280720300459882282501378844618659030697819947355834208664887111070020061827118250231225770572728573654671565377643775516995652150696632186415570536690427234130605024564254492655265179224703380771243518098784294670752691967582617302941668874324448364591966354278772470964742247367024455909357316162575095000685752598896318289565708220334523050917746833131012496557960882607821673933069050711767408469478206971630238444330393138676657556592079435310309598555490039513350925188651257914862169135101205523062167313170197087038120867677973517222575181103192569366386813271042884120817279318020373870590952706453178835126545665475524435314050991121106283444523651236819513453086593644220048558663275091542573714164235965852608305243611497528679933209716394221441996249315463450446694696713150787080730585916643247589628491952615145837714195159889030609215792156956424962990726153591998305707975508396587538895187644573569372650914448834774105579803653567521472319382913512129404101955100747527890413193132833260893613094023422839760072456776875561874320422349837175544286059323612245282994200147282725512391518518226373679080270502225947238588151473648751555803534342430148972097683974734911591986064017636144048260277293015057369902569412937232026963867046371968696194197136499993687131234348253314869686100980827248992876796239931011772309331310765797099758447516108380727324123062079715871398645890095079386993589925949367994717226670401936322218751282789774945642434204623427073473988423688431077461720935920416286363480174453047673762456734304824823173215410703899789955818117883299836125535241212548334742710473898355404093904905969235147612186237264091225645582894319076075030497460050714092547169381542112878334056474169506002871174991037311455788149482360703329546572236058003724961984325414242603097653277207147661307868344640267403924877411725996826556909363114225996433211258661128581069996377479267512248448382958363701152767847485124338262991350371521011262283518222249554451885258251990374652133630612895642694875455899123346876610151232836811738082114243813241327839962962392594237147625442198061648933031118052268480279130896947869250777928706668719712210773274903885198608927594771539560836951509008807898859060957924040942382996579578167947513838967808850361638411103905561644445708285716165115129149948069464479082321368527002836579293390161208611728047657103993621066320013232795230397201895335331310335743992928578253662520087847554173273148837841356983746260918391773307763058931740460339627664537994404231182088293891227792576206868412101955269223115651256355661433450813976972915806382026153430149131265728088393835791498741782953692257345371691019669267360373340998490002795034528602738510523426412418828037163582254098318021046111399749844723725099746034229703119853505841804603661097335641709096319756638365012703078105638194694162566144055828673451885404389169105885377597660591258199436735654188789410542018465394107848865892270739693481237737839451759334739425451478550959619772129799416848008605253875049468206293279281370053083776903232426904529467472757848173998307364807368095986368668804681394954872909650086400609537766448547606528729382541916146727966661375321667125384507518656004420126215289972147962804813497666251585625773252731772397326822584824779231490228267708349633038238627062510194777321432033664840934056677106771110078741124356034558075026893984621528865828100283108561324383806985977142619863367381888938715099637345503193276278877704916943200881757608039130109193138134717968675431948165003498483315982790449332440475296480613862114049616069148967419602245025348067242898634595080975179075104103263853617671141367471476010896716521303955786417673480680728075577965050383167591718235626441862923401674915280258095749342048521077214896074845122781424215311987907647173584895157702974717163366692041056738900838117665534610705232858045621552573933266836798987493253644009989875978078785917674930406896387689020871778934224272959837685805992982991005193529283222162216313951603055552174060945540712610685825135777568727089902194725298428898060376551402693409276302306866154947538903951921869240792558749470675564951116383542197478526398439566382871967753351062915278454456898288886705104779392397234082734654166311952305013743095625025987889982549192120505247955727920904843754127693455453864832001346245432332491139057391170458240098993774469224535845057470336792850228413355498105269099453300983696136094697630601802759049395213764831237701456531585057252670838937871201560002583716834489049046621915001382654001523400314655235839364811592799974178524925593466791671586809187802920797659333374950779923575893504845040210354684475944268810586619033914126800624815679508064863690885591860580282641490540361496928713359164082708879703467826801934587643654102026996268874715227933927887414563763768901657458062253234698639073666414630006423035131934990697249226137660160252749596255131129634069646575443539404351369522841172367024242882881652600452437529735719818489445254858033327665915476267360124529058791153159361682612235502807213980183013911023092258077458075020213074214140896929037869394438503401359683768621727462058054216992369031634078113475376788808567830388401506229690275045961117256360484928292496490710817422214541765584268368520864094881542714789178548039455985953319796579308331350119211558156065208007406990722314554516987179755531944345116530496591923670366123449507223890111864983579748573345912437674029484846898445096309710971954288121204116729577417332339376080591396289210313700357429092608591653614973035475931281674574149786400942136428112628617658034149971151458985807722045096980759345553383913045841937796620560599854840770566397048912092549281925949901439452031177305619183496790900165315811564395169777003552413681259464457940196647483432911146980352090212584833525795477809267463689514257442109522112896205602801836803294590827323320212568517692360866475797628525695525313114347740430126642187836248472991665225968530008790345381656951993304882999411469653594612639966934374904600623493807878846120640092652504449547431857407462770829057934028972787935121615847819201103163827402045868870472388821974814795889362686869021392565328137912414119282765049222892043974130012776843441022348460643115631761523908092559452700987537715418217769694692757589307417039509118615925494458521766960036909076064927287492191178611248316183380103987445136291685454189562006464604835838339962956970377803687738950996803073697426984913794783749071474803215737489184065498966585608071770774349699233664343284903721153627493938734823631808452317983407443360429605576621320279289021994436423869075988080324504243119353719046075859808572999555455937649603418909705749364971343100138906334383608568218239873322091407691461352899132306256048635765828131545475042483391355013100460892212851350980222106351396895261382208407736219325956785807105292335446579893496719733205057349013913069391507627263948306950429212210889766517612335153076722658405605961453483991146298108233917775212679786401899164892766499845977965278172632243695988816350045988977514480992328070331094306000930763758014804589525659156824296955449572350415212215755975870323049524666353367074614662942236923151916549448942269417746377197165275419908985550519648154646203444109044475720011686400237659949622768256263278769222253375794983574618482227371940079169810891717961303374667505595100781340510073856720825225842926518876601117259615601859197201644600681424303380796018414622579042251222687553365877232174327965828789836999712772678160956459570167014819752308409853429102978869877717870793026382071768447208692498104369837747120588604062620571382784310101730704087226674594567000459487774770077077331670293570050310388712991767084982866126140228134159038400585401288636114951520518636160099646711810850645427128549306485610867870627494151196632668411712228056747184351971640042396806196361509545239459666038430070344604608536632449868483324392456780212872439656161313257601463023469479167916458395488536737747718369742180573353292063929525664356011877249260147198414215663145309342096022734195992361758968161380846259129595229490133838273048502221576480268721552230604838563023265853936360492456538087827670307129783534160165342150546243769653673102599910986057427141221580196899158986462236482866278669188194906976031041104481882404446955012027899184682247619921195131557590689611088522900918529332131625839400217778228384825641524790166460025066189315938581522492385671353862622330346610881813030444021031104749817605910800358385682320571255905985221777120396275214685062904484901638662087703905414654630130050881674168407796122366725645190603807289652622446991907898172817685754078367157086163632606901733484357758050022099588560819864721052819341043213495282585965225949476138038172019373330029148640125714500423559038351564818097189815894172531261930468842991555133710661853096421897817127685455112771506737079137626152392586537221690665420145139202259912552040796534796040741169795756625524673002809032420048493997142071207909764415070811224115724919576085117211909099671491379283614760963343163253184900370479487185315620969554127943796415931714947896763381232083207664543134163203316511020215443715251581538071640840538099060112776155525121276815415281670495660371515029942729256901887451207545189539440210173566164729895074033467768655280727180409241560305303761529665548813625966151773631529387105133713494562815521295063669523896016345025583055442863010976686993044509229492180477793496412524581932141092943776118075460749515227514614355538279097936502196977743601425116208792889110623673969838931726830111428021658467255052749466921469848927395779207831547805284930152675552759596362755617691424435843237956098511120322862975328305833239988651322528761707056063261447261525846335407848867213170336697267856989663708389354955268965109566057604927678952455091881888192960502793387810094681430159981427206610823976777676523332262980783275168577157500633380281342339483882761750562048829053860128720106579847119112515888064466084480664127686008432280725358578437385922543055640515183459617530709199160870720356708830078783413324796080045997494921429130989745823848556872841139185679467227157634274122580067271503842875662635188180087830567210855409620604006357712859931844690090437889436474061697849080425063476358845374880183391582553892136701732006255912796598719620525356662973547363841669686922315071639384417503708217497508737253063246834754985473875614358372453913170064330770178116603255637453366473131107592668066573934803450138407884260255351424071140241969467984258933662612408859350122329499644731648760460823590390446718372439767410921530967743604856446339312426277345763308982406632987298299466132927404217549546489140806034545141919444995152550060047564101002864843241558482462628742876637402736645520420747793335832348172752324176322586469200527374009050054876916349460866111321870595885913585940746749884033698769807284077870914630875905638243003066615118589995344662606375988199595973279363799194909248500384825206308817736572310198581516748402168563534047445468953292041921049954129598699335442319090695183878201594499841550953319711687467045153723617054698485164019331892324285721634986703385715993765880822471963901963528931736753355120794397104841530352964108434800789075084160065781964765563225220532092118900367573370168653419486371541891146150240386067889567010291120437957289610822829313377427673338540686566475780807862615902370434108911709855391089703022968744274101018699344303457709895827389444253153930852312453379179124854348151254361674650045419528086383464069341156806971231983499905178655574486075636449176979683455973297678277590642226171707760440236783345338469807006261598961628497640566151126190994486243049259632694621059214235813031212266959401577272985385949250343216090539344109067817027411346262959111966639343388375867092945829872894053402683866501578413611963081996790479072970169298774923290838534893476714946867299141312426167759369093154430392435554056325940847230337585965890917555179163098302865742144668533116358157200938486234229474822694598086108461200627971821460402660048241158486339884080477328564360003575490832712993013828384253022892515041793296411548645659375870877877076097555156007499830502665764491176523557020375952093904214681057466476373561331959463464897974784775817248380122106401414627354151542994418180708985006525029519145200827324485137348080305696905166575824632482993543655317120818308201579995844778630400120011292863499331202531450464163381324194848237414631472149239119973042301830101726814998263905668330836540250477693720020742827067887870651843853818915495276856567541716828009172636713907846761534620239114381524056170322404629184738938913610219319008989747436399057218609802311622870178200599356259901179267855899669891838590132687090221767985921812786337829257416175056485641002812804001412243163438230550873918829589779785550909697470426805448828106681134125528581535262421563872256840946873822681738484469695635143366393874372255895253416210448203723800943301219032142277236902991499892259676683657641511464219833175654323927062831466525389424668408087456305465948826711506139532933772758686817554205348013581337532139776128848345792545207779622219233120162921641170214553410480157675719033896416657842122444113795686116763269331654989791217795747532241064970292327145191846522034807023370013529442428820407692366089903722325729412618327342798778866046873688587426433160448973809664303837377498900597281246563988584564955038910613015016209422668716371566156379910279178798825382308435649319326526999141021440279700122700913671215938756148850881588169689488185438300125713108212867525169463352989555146385807856060179339418404275237116904892169633165656335565117014708143317005534798505148412905566556388996438424880730351465211208869861382757544915329998642967034171507438346026313803225766536304843445167919258339595822801521019903912437715811910274877939839342562059843312426460524978841656976366736836666691553489058007526765491580600734684149406671309330723385830923987758568255468531622232625349202571979739083588418016159149247086334346452864181050064803087621788455475929634648832741398383942847811995441137204467014916535964774275179871770801774826950522781469659780265615603490035946741754319580213362213660636000310636488649480201997439235083644202395665475849291715404332067666428551463784299067359586806369944143961712574096372003213165681543624330182314046890297084352107606465491600225375344668680897638988565988167782337328081810561281233582082956405978192022934130591096265948421281268203571537525154977118956468424429180765681911227376516153603820009564067809802636244354797648351245717067262501456008117867318491383016633418897090385989772200942330530496212422145675238755081275995219455514225647093550274217603907576473855815348978679344031049089330575246010449054306116564290150806422303313848818379197444223155105267069104905345262186953135100272741102189479583046889383748339380129163624392319754844703521177512222607906104363421939636803543438199146599276072360250250240852110986448868660943423270816254957092980259797142483466572300583855404703982068818959937721186201339533107436002542642349358631268902442150199946434830072191392663204756510401870261098510695567160556870701206208489186987354686848208955973952388245642140666434196528658266806155233673974432716835461117016816945661896131533774101307445924219816481125679646412283504092559252183299879146076353560241852945396224343916069051353004371657733628856940243027767207820615748399949639892730809158599689837873515422933567012517940224791582060016586349253517596800050331272258007161224173411565438229857711569957742854228633942489027493545997904701490427377864034248873746788585640823113126104633128502840899472188955729183709296506753498254181015029713774913303844332204809677964397851021992161031078584340867564291233629730357835110894094744686269136447967981938574991759175404379854434353163193801663145036228734465153896665456439523873669276442484096766392201365550407825704410449104616184801163300168661533077780499128752659717071148992462687581809626490572717795431480812410062476054564563425172777058941093575797183958372429083407832291022064045599543694074581797592311337813921605467187883275586745305220609528596046983072616116167894463504320565712540032906801531150991347355577465007148100244215334048847306064444806443681741285977308810971653916432682245647221706119666381022796489297162997640864771793412177862815399950654841332364598567614728026518554745296863923743774779752278343402769335207868332982142906331020119572021385206262849654872825234764780081432639789265506646532515242996055031270363870596924997655957536288897679523892305898160091589696444501997571349593658242867316887855096030453884193081271214480999247502503544899305490902150895403722922223583457630653387292133593075342097760632151039239117914759607443835238121978497244570680372611740315843577313380283762963962995944243727282067530069142917554593001123543629761954883731309465934979252354134673071888573048552145739112406921568516018481138938022579240978834705895141173906798424328165545171087585759842002219000374565487385131703780460399618563012752399316795458115280421356524633080252267313789314036965319367919054531130441104418303197876641544658176682209392945850936016134496179955141221963820235300358107063763198506589895890847727428249682997134909742211276113277036740546551542823122543253342599920303557861959608421103993403867851445656932773085006277622969285192538777199855821347598199290796708212032503895791791840867951017209322834236234228442178894078809646392912895724956780446570221430326353302877454321979986099662460994570188178091538996930756022846841683998494501734549145690556261978260863261609469407411769738574928012704550674419945792420359649509123146592839074117093377010624618103585719095704395906758269117726771657322481778663206254698966008319715094360735951845276882408439131181574874199722984469249450529819504823811217528353432317784232430936873207517300961557473330569795463473815227906182840089410710125480608300409732115612822390124335643119623139284130971781304330391308372939392308511742279614844950620996177245483132404401029905611205665369938856789624255832041569163223627053945540102615614967079014181605178219683975301447959814510820902977593731801020493729871097938870160164819485972185523722983657270644911343770574065264313028471712670625249178440769910101717071055655268427897889394245972223349729613892596836478988290291370188317072488782872347767587834537864372259470346499335112249979674145808838108149876959068832213325950472921252269367710928065549387847299911890753426884754986043552342798904611239523125423353753517434275401673544611162042631716373308940625004263256301954287462064323049148835664443751413244238646288884788729891507422697929950257424889311588612775455500129700335169336251002729106711708215975066705786340060355979628641237914979195994626792239982414075424343509264640724214952649992236707565125212834353824428486608236830061339115014402101691144655193695902079710737495621454248185319156655729004299225323965852492037683245470404976753112845537767672603435505952511262470801282160552839062348570762205126798247032460936519491412161465556735970064650120648139663882411199287600105256872314805475201120739994802766706323844779891420474650090806654684458609265039057520405347703203505764221708471339844466697206072131800693548337736703468346482418106598187776760637566528145794970431253237378598474319125258205746985343981490962044946264802131176619628525530527942355657780330555178664664755428912058451582645302496280875324835890585380603077449843025590561292801137957393942907478760657740823120145059623607804240168881321146439804921684243914016328495224192888552744013701781500468528135453905021548888712413441229286400075059350134598251558496473556745547625026618596929896207991146633000649423822517107338202810595287668233922326918475985023092153292776584430660943373118646233285715244287755039342876054288745342802913845466440054030839835683380912474234149504664976759088959344817374151275253736671632748420370655300183768649853993637138436564971759529437268872306247164699799110411161518955841920671234821911697609429699834316281301575124050146243802633780936975774716888152524244430572922888154769650234738608472627339657337784367842092156737270868851687097198610807858674789844472881217291827979171239996366104137525156189382743773752959847900718296105463750967682047101809142334146991150231380969089450224414067927150594993838374046504231237264803968273281227807640065054448681618329143354285378288025873593489294477283389936156255291380824897124987646528767694357669203050848635670609016820348066508964259711072944165931309082369347329258695311068563765642803080812799240711474289247559077699075749967053575781821551002422125370259946545884082554089467682601268518302348446966536429439768594073508690696969961131891919307600226617756971292609162407833763422144459686152351747112074517357668998515471838659592434443185422329752546340122907839182674239362410828343074900390470138576723445773762465989863373852394869632150830747526559556338885159154131546431146357881218760558527172771025237503733531626557435859758593439462312779921347940063299368134516889725613305793991796612466213556975924949712281128544362062959091095435838412025237652797530769769556638691864087900092997040943928951349840904492247250028567364969549899741758119854010713308726115524818800494590750084613259677656254844831358698978892581891445608641603440597273123368910531182834420614722806382284644730024309485646413869894397607492893640273901654098825782492964448637567432423797020944779107890653382676733558962611713903508253623223519893276155458878147114046126403450966763001133639357606716758848840406867625132726819959600606590351878558271950323366975669217206987188825621189991323390694856560606777584892877724567750598669264279759313676237153422391646311129508492617782595650084027389980761303270390864514295830075598598469248045544302571951412215321467467090251241231215010485749017709938815626104388408411007047372934691776164758741529005961218753441844080085607036905928348476130715504789410935759769444880854170990585054805653139240374133019551133659349729976996974123350353178619310892904883235536009725735507735985461804534685375515440381218249134099745891413390949360301568759308582771710543796211538383264936213969438177294721456306161963277159156648805800669770292444414946348422107276615585921225767241239049270368554320967415411523555411947487526419819479369185224702892696693353648403173584443699698765287899211301874717202897114855161418312585225073866367839293007354203413863352713224458969626214596921231980602701064183759702201016862076897926632848966948413884369774690289463199165872893661939463764502288144966826618517377316942001764711138445319690084839163670428978635281949693447588179791014926399813565942877740038916764820385504365454516959457888981916778037896536167030348317190649459028243132917220484926552677071634825090478004758914155085183489926964804304945354055769560002262706024826923979348705738861803315357428078644315768993543315896345453865767535700352780505127911252565316280382628814757593991059895195182666160101973600903334363794196580562549114015587272646276429404965010761923564814385848749527847075421297890898827053875791744616449308546234121459381131528717606755041441111563158939071254512746407997599349280124168162661965480815132863651562964376608995786444229169757324847567506124307887662901495671139415092846096037483349132589687929274183387218972076565448912001055105221929089126193759387922122315969102885886932135243677356516633646729252381279687887869683477128476999707638451345178665519280309185160897908396779918467539623883338876172640250112782468153147679543441841499111338518080601418252517843374719361945373734785632027731127057631230131022210189529387085102933828318298368110605457047027525129643979018564292750894486210431531498843054774529038916907621848541747212782855142904569299260185048401932298527759241964675612274344278568422009018733600287090036164439675786295361219440257811903050542201321291531285882843291429684690711815197194954239508887734504782531297417298063926093504336886457988177702076373517643298204320649760942626513006684503101677303341851772171235834161408509061834464772812838636115594538693950490288207730392455385335318368788248849147221788271314904555241099886587319194675830099547465869516918053199876973064318307318496490345837073357520825126182287852027434420481483184221763133247884347675946473293725589026779712043271955115506111488026102771863068737474652888729730495068359064700924269251339054511123368264359563645419493287836638866443847530638860819794170260827653511526253483382556507976936852938991236782994906763081272555672696440505032566220101900031676293418761465959709431112482386487550311138632994046013470577522726588518927918575098603193577370997278458386010384858752069776319295090493995920815564589577123698395557262311854394716420949029300100653173154513312245279977120080012306257376487618039897640117021749256647644632367302258049128187143211499482763392834121303151000743870996061908946812135542699070461590394677385608939479362799105432521934722027409133434396250752045743324924537002083662971945372000627722719993904088747596067632704317172226665799967778954783307615513281582656354410364535817639033435210238956830024808112009197463348390600151618285698252704070965612779262229671246553777122974269592978975169018835234021078508082933404415770991496179397702602284092369396569892297534604578136900255341538582110503324247425481051098672894682150735604003262943301925573173411191615742712843160775556470538687050810314985577391514296405925438141759538598055834312395660051951570795332292738985969476426587286390923050363015017036302624940222271466416300520637233065465985735686180386240849737474139768013628677010497973141496567585333747237987124973155794889206061401665024718589186818322603239694318833753887178039309284060402873132470224790271867580934421965107123747592266702536957117032941755218137305155709465106908136348723400637333603264814920978134399211989836335747324288351926779757684345233456080769132375772390097720696064856761570373921776512799251436304052882550917921465976429985415853953701174238585725065269028290302895194596281288699386037675953350649427472980721173869165543155969659507967845142368786604551186165811571070910750323988317869690960184725440292592622953133147917313103516852261789026411390357265665317304943800106816526723229647495699193372473841059244897685580916342896705009984309919445274854551490702378966691564556809113350551592965045693946872462942184019050808737472527178199760586929719599459193761550436864770086884587785117374465945171596109018167176765366829078251016917358495182441846776106423480997714551934227902739284776885716084877143571310146951199585144738760452413704585437656120887966966972380989441165524528482907019797349975907273471076314969784261200324769887628373451709417372916552213712221870093362792945158394854193086403601321558395493142432045343877679070128365189036200451218834299510255050421089779622816938743990438410902349692096353062267933532702232021802422150313088939115309785540996862733071681945805692028344067700058329352401725135167465283211769946672888956119431767932761569063591835258166794199159392155013046458534782283337447278493079349179678224159546415526364346052068457934137556612394817795330302727702889314503353956715460838305646088802544715637275118880841880634816015973429917567522099450353258551915975349921651163021207650174042419139683972759810066472390369891365898023137415230473728018779428668868211723462651849152585402395260703196453818913264458537581945993273741607061656505959450304599495492932855425286346707533129256371917969491633207937005199037745505675144834240347885906039710009331004376386257150917061293029797799758028089331457959288575672622687633545447221901258248758448471009598455329334621683907968917820617648338048944894971153694513043748691901075955421206808169676008472645439280912932619025067794960932996165957857725303023056313197547204757616169140101053029514858514631813507220217711417142286763336003764892299065661848197783263432832924857119626098187025540694334026018538762544641307375199698823603942632118440977025247178095610463312026819919963245955454262352538088710324073585606646378066213625449062884060678229135495138964298839744755336344318610280443945339102910387406664687610148476203501478273835469732673270158892490778540860302817861405540388061121998555892019362750910978094687616857106209978422609485183093763289376401194404554689476408855221740425255903256315451270130278776455991510175835787290951043322792943390260161589687121090342840611841615888155384157307154938789106412101770902207695075680055051877328186177353404434588729773908969531790927265477652473336917650610105652667366490007254656116025095115787235461561447762573288245128456319765336495819280632048713519775125739881291797455340611106590675631998252196440574812895158221043777183487727137569750796221328570134484653311930657295277001500864182366216201631958258616287128634706265669691003842874708006280752909342220865453367548924826406406980520047349749187046682816351214783692478175792125644090590021988487917852956217902390651631022337770783442812564581344920969965087930944350283497437154528262061916492455884874636286108157155384464723581791056028569056803218317841920820664495839090160405999436646182055769153577112413289954888031946416401240072638107440258177098597343464037188554018698378809563852079208707782955030349567579267663986300967538116848586644779507552071436821924728292800159133652247274822231744121653886217201660568569316091819407925122346058214218435909927335154203114051686437177032117756211383859339611621335316430931425280587818706514011912335334529920829922047479731020541266951219300862531672832001449436352691103534064133235287393509320642229895558149927170591097720826050868775868543065408522388078908100563274744207199850459627620704370192972218874023552182642093286713908203022699575976196085034408408736301227431100589405147768902092574083493737404678035608117573484420699273651512858313323387665169945576461475594682925050859330448093226037696345554553974420239209173654576711966594118557936088971261836283251222729471351047854378344223496611717987859201264108122445362373867666511941323507878470613523000386864848522864010573158321925745446329048301849076534214771693796043415835772083717435373418057656472505812827944054374074011069845588850771209854042617014106028006215634162503488882093951578636142237176690594352010558831218347935860142811397575179312219447423534751150533229110108243971604991944883507694772752134098861694600286973901976630930177860784243735336934206263618744377044277327577072438844906182241597244340967170335210773141802769678865973594596535547707474801545482238736876103551431251447763264195540957685698538349241427983359885970690384895079170509743661361370279407283535938063598605389004308875874837058260757896549236712418019577087382637990475264283859463181709934854359156278143546350892964088307941492955490266408251246112899568167678988638090283773165524629851966482855635873331819938493413627216029242309863777603078257830667715861860529171124432830629056514148742084273978951076263158327119142761994140746921141062701327123747507417553145314676238561465736840728991508223324822805855678491097667973599320438420347699564112156078461346124203507536655952912341159602744476757316765384532907905780427193988483598215947845179606157913863664866774902959970199110203796312192583573982009204311264735898096129498768877835433536869631777448802462028562825787619113766463118423152997629354061634787316755762852044701271637618157959550520283584579301465319826735840783600321345831664932831538048173630957084845410544123209429802928028491920925218366529516959494916218613276769271634279343919491084582744311422221888302183568341212007726198240496394002569246144427566538612230794767597837148505301305565305796337394458167244470148124470804579144340454264182235071763549815770933111690118676229803624137013825933949731256645024044150760505775987575980407512495641980342334190747212743076275719930007211120388428182571532055602676180759697938447558607889308715968752214114115024394232882959777947530348564617963880755286521302401627951232804167223246171700359474116894498623148853302282605260516813736823345580362840896538798879486289332274169788181044834533919618021931048870700508744017712303757312994704439346436627860671226635364647105956114909766697981684916071143622275939697828323648173655649192463902581924882600984548033609477399345166878334366564173681232965890412942049683557675200614033152154308896477794096735970881357013695199098909077747418969050684737091556270472382438029647251775149390074780191555233170349410231976546574930494599120190543569203242614943947134019624372762161619697640045530916037280648799855579532842988206556025554358944304253360584342177579642881131114083856215121458629893930135098568684509350945033242969633987854833529866949737410783671431916554160991810788552872199304730651599441607822811360126021565411709533667293987651739127790589006537449171923366936830390025338973989711267845687591791842732246718146447365162892396590372354499951356449330662433150210705417605479308018124512187451576785199058280213418483239023111968207883942337442415040850014275288252943262711686109040435094528688110153675107860422375724006740561607368271558337649695616284878953386545478100306841533485186134918517301870576435013554164322638273395036675794963333956230308367219655935198132890451965495914117126918307193607008428381191271796840364824332642771801583601405116894726332603147984731622646771533577025448998016715238330102272216917316848501747398120556675746735643866697928463606433142867032564480719584894043656343090790363557265044804303487080012579811762107401370602817051112703229360531029816672821004215198703339386381184486630925399622725326963625131207843735849419391269028798111257766635205280866579530165841142712548418257098141206288914648391877268546907976567239065097028857155980285604958607413147874890916964391557587592858122229841763480974135489599551663853229343527597061614289578680335136213477333807302560551427119544055011593854224557259226503459990354573407588045261099725219885554277676681211239327341197527131739527174564105937646898323022415666326786864093944381377920037724344656375399924695290508276895474261346001417052958713559111535422995859084345013859866719821328655532164745301810856801306856423389798906380693207409261526935118615422315714011344612523846793855908523538059294942411550710447789634232810449084572591794609424833377323619730201044302208998631693948206585282190381004753009772294026511213764864103789597592849901383399544321126339436638420187195982919209703884972233168090322291859250493769456009111952203388574685450154167131292727597781472627251990964029166921350382242433938904432537834742223845354238203002467901160363944909330339182527191596994027757500916251614304321687854767945014240298673874298791490856856909171409630575597979394371653235647815094199844669403334408334120483374692734642464587662350889080514980479591234180774334182344120864203288912055116342026991816758128321524545709804002690252204145134333608519640586301374521149480085028406332782786701417385485865422211809790332644121855298768502528715299408113640990991383842376356176521971665171504082650363088998202094065430078043335482886599785028745905672091665053392946808717263749882541759485394163256987075219428088080581902126136232492572887204122446957427037325290942715620476036651383044214471468385405573236196733625166070030787690987448458400238984230880617975742113547182462622287247584198267696500584690604739767980331466697590684927226009019169798224641849162278611181463724424152164986103635324213294915601474513336680073378036249404038684581870362478349705228449436232904804659262537847995357598214226646030939619613712515391774008438705870671003476184160779679979288300298356733928255076025041132527351222521011570506178939352548723407793543340957269340905774610966512605472634268601773123548646465379224976608441383712796293848926364658736908514369130233519539604834262773681033248370604093016600100698641730394395729281002805691900441134644064260581460907466108226589159823627936506803565749511113739331846025206023687269292553054903344631158184136694462620930482790901565193188120234743922380863551188219053618976390234429123695002526071837452214309456931431789395657189797220166527648647504635639915672377352968391679343651184191754792492839540521630058746700269214604240568066669065591994111876760945769535710149940022129915062963583228570909419833372298391345532453058555218707463853383177647807285468981387408686516763339140060099005109535246576845997824812306315102412376376385740715472664212082575647729321944935400114051085671197054284765155994687701743944760399037433904809906789530641854958224920007685328622487392888735665370522602158227772196351808041244995591622856277020528988641072071344074828263727595097118689419710056873374665862262084659569587684173906674336064269377848158921149914791459803856808753169500692615753185697659340312334610706745900140964535003693377172646074708499687064871848136799567314801249580855115174751206530609052325288758002163914803549552803201099136750393046214832766195737631066520071743827025807178212313291655833508973294568299441580835225262390291621963570298058092056369367656151932178815036743171642981539743061942191832379359737836643565841363388953231494717552302869459595306829616350616123749392449505752487102055745668936269836254075463070433500385810885927930793291039833267295034446507301402847438396138021339659218177136711461028839946534684056182146000038011646655356014749445096881599667061841658809306691428856742040681711947508621571860136519477591900026242894612915271104483986152402384661394477596501792180834185192653980343553518579896819910147092627891795519053708480569360007032344709488331056478602099093335768673587877469623593906159641698258288185515891392684753696451784469692120094930580540026067474294402366313337786886763581925734396207756737527319728701517672812910443193887826212319041509068107109879802218680018214329414422141624851854251112424506520947422125852585589680774841791049605179196276300266651564088882543169963668003570818903996707069382307510705724458354312587254222271140775755761988801946435666440781031963005586506525644187966173238430028783025245406807974912966753135386724461525381998643095968126827078256534977541531008540689141790833888524297750172337652664094407341315259965863465802608917056614459834948002692681726636757022059468478287280298631026310713066522548931410897226969069095219354174025498797570235414879403552635897538267140856823202590731680503711382072245434599598461884059123533885825308121949538808201633829571354854821650507958180329761092453704309427417329797658925103400269090805444258209108024244965188516146416343595081585410187079407048137984494676477941613473386018640352404798328114757868079544046620111210868123893778725797902060191141390563267549834981340843237526039130141197347885277117530943990556421193462598750163325389638775715129678232000916271163708888935281029082885543086932442245506066012245655799325480840554492356238272876408361066037754074108869688713700913619945036925783062475020679993430924162649574424740907859864955464511622331322317890214009303249062469363003615853964052799039122087334732702210144554232706817705620027711554303569814032855221425819207425231052390227819867188488198602245268265561343949895888634609896363099950736796702520750882985204589992481619550966350899862299661646631980056814833927516639862791851415662703481947356439535481486627832663018659078687372568985048258120172847116839167738843706425372436640857572455401503423752704829219838991028572111972975053967619267545817225866355969013835352919332155225549999149065752574371795325303577710344544710776343469999668532675463833735223250566618563914759469882786157582633867828017617361223843437125056571516506302538565383145608642821673201626861536464661196650884148398224286955197194668563419599146242984500850712539704077756957662828980718202737125416398130049568142418196963022898830794588139895232603914101991152472721255876768318929351080458629229318357594984845051813276253071822421291996162070329875135565028084065406311359649711699079220018721714939331976976895949766688496012239607653281814395291153983571161797113774018346876697142333577047215130266958879161160475142409958632781139458419363160301810996715024325078948403476839695951740593821456807959182860888099352791244109380673476299330061046381286037891507749589565032976967306807783199823726670876893043022941283506997153533464638107909889406599157205120693768181749040527355168905322929584532356156675853410872664333487799330637609066101879774291508585297154256851500763948897161229472305214034048251885276545959537835993085098386291800523319182676487457099582239492596764243174478198728545441517899099672484884345638635065246889638047493240671010801277346523624255491209049654018467908675591906061561874651881804647165176611919685490197471114880870407805097067906445677267097462131398009202161315310049640263693067548617228104500152057820547421551315088389883643996004104045779834396202204825948338905459160702313864482382770219576557124093762833412978381967914312618343109946669099347194340568139296488811548120470439659402806603133138258376978724103116661618458756674144377009483953553135404211108403519527369457024444064709978608194405290567585143705347905806446076069252705592972802576538913004993428540813172391660992566510120066926294681841283336413858968797648157062724053810267225187132100876968661647480342845281930620865551115684623943721353684200413440639618100088610483428619090272888127434018979233159700364142185825356373430996237075550326046258672124109975029126362277900713784382781128123259425488847640602611257893892903624321574220137756781514545606807943999807779564142362274797261324715314632646394158606266996956938886400202265205382002978571533260183288380498916044246617239083678280135126861327473404400886136489247799737246547565483988562203867778528665009584272183806758967077760476548879159618518200864554814873025089373101860851038251797390582290674594471115627492341911685050685871649457061904922883038703957632386841388361732250449391949994152168663193354170858225867746140014361225703567528610223113734872902351308715135734004087215111129453931662796380161437020605507391876867770351026623544565026174475224585208898025655995292656596816979532208491335416272951925368949911828552306876660956950077482333101519795297290340044247313843520219710902149829276929111038380625356700434494366775806252094483462107648221197321308357514406840331089008572707579960700482462569504056069511696144531557725968774324478635832193197263960038126803127815970276174036379562105817852089400071945538388669781409376378980919941969793828719357737832297305150379037723744956174986500854729222049175755463960688073800725925952388264769011207111585718901361854021432751636321961903763775275215563734887792516106053673163155581842350146986212778896175825398599961234362643452628412178652173365841232859487894150376273174357463299903854619458202170399439747099216355889795451490594037955839684742132886709738420410250517745154219257325879616672030972751385638849350370634483209801573817784374547551777549372471497537194132792115250237043915295870781065356736387326928948385812692766405485068199345755968028997605959372919256544633065223627506129024373252955101370161241717352995206516197293228322859261777624962248202876069501547778789585839968045866511033798561094768243440769478183417411556552234759943181471634376554329407996490187794103214379893646194723547124710526357090080196249562200240524348924344537767696484432066921371028588472186159134905851314825894654071982758288465107097642459666868672249574534007209850743793038162459323619422838461215960331025631180685535905769243888389372712097909010450795112329492971484989981972140403106154399952660411478575853300174410504918167072525130069969955669568039879489016781758101518866668986978128518806179174775939753704971746935885963269860595686692566562090683950746081342221071065032535147170583667431816319386938377513077473431542050519061409562028075036593820893662187638894158822211194704033401344425068931724333960935553657131212929112244919500015443100978786302372150416011065884852400686059997518770249727992131375875154947594980153995300195730131201481948743392632530626555133197126825269344427044365690061148072030672901788759165548463332969442679301703552744973620288424654641021366987058139520605292095079105244256825131160305982452956274058496044800988424831572069863839735067350442453811867608634157542441517110235346006825995229437747106135229891303551097148546915768741316882648675345637398944300932355172553741070432114993571707130589283362662674539878847215145504513700988830478467094850077456071363474279096697595142569407091010706851233338900549643769599186417919686787082936480900304425251396930419433185451568594425260619974424858696826558992527963887942673910925305044312691426394425599106717722554139293314551114113304844240142463956826569456480069239574441752944604111623074789255442630472146467262765123347423940779803836426898390965013120551224922139903154677571444979128817916680568837296448932728583902385990894527058469390060118516310055492338889201567009860363938905648842915101265939228320877835256298059024437375253180153166010633299490049838445584776833811449790443120930612164388242545643403624723797152654057271920629665814468470883546695522491865186591531160865265044750532468984190845641868773834440770375328858875008948882222218763346007711593934559002222010960122876892434794790926553327304267027795452431479367805732155741241443100165550184876883401126819578305325638564204760786659522457379629097768930303079199655488426129986445546189522870558250241919414828932157203451940304580535245105525456622155767045133698285298307036057843493039677654679680007262267337270054756466771028599196641700112161331149014207822134011792683189201532809211998565394338314237744498269669746574341291228578395122165492586933923992369070209070445628564351023568673707225405513109215426797157346569014694999831320286995183982157180848464658342782207743293791729983210853353859830122962642560700965549422755574191251110590981522165495246763373053463711762956623804710993572818947396742569130776873601828966334990982693687580025326532227163918650442812681738074770196768776727848791478506829290558024664311244555616263332280143271885322780689359631464168397243447473926402576200095712971084105328030476697279598005489815754998776220344816707396177865947526691362595395098295587190533102568349259472042851272761969860227403255945432768874918659624008633500350575574601506066115113174336847346738513227052399852588557227949909391928986293427568853884259342584088937240295079701802305720876955566117029017183878066024410395440474182556129007742603630988453545442657052559768454714338944435622963798541950389799015576238022256573678478744165236429189712283359075911394468830631006764564972343805883009111451521359511178707696009055200784379710359880906599219407720144022562765581709432327610092031347308691778390070703623178411238979626190172223616729430342390985788329858682631144754062398686265140080389767511453487123857333766718550845953853576780385126507132186410569332764015466092537376519566458324388470817635501588120527277499489125650922647526402143394610482990662777383698597616712441596116772829017907663748016219365251741372988671364463867471356841700054302418525254875380958466131919938503386845593863871737215858569039788128367755911303327913102561722424303327549470886019586618178068981772098737338180321659527363398832647416677725508319385833026736886241530593972348349082865933774078537921489199027343253150679271482441947357209084248388233795741095909596050796662681992465116225714769506913308849052886760431235610411419362076568383566096928453665005603731438389113402326485193231477639543889458042808500174255503381084368833767276603741112435305977521277220431117496955972952284149904452840023770040564542293988022311766230256184451658181203964707573856009382452828730771077254588701781193644659275689071282382232645765007725235122575497274114608371880329843845619951823904468108013898926804002239599002741386965133392614523576468194377414409404648221924107104967579691415600103581651057584023681582831397032994610205120252076621951170878889136858577648906320549680595909169968182697353285049510192282323011740472723987496617793767833182087324997821195709978042134580489278621307923595038950656117492967686551136655665744526467221647717130962084559326425159392399070541199374108489583422004727143550272030141847513103756272515693502529734857820802381071798866803189233545900691412409684307440770851390703657008838656099053858067072561020090839961854076753893033214918840505931962657351545256626979029945645958988147932387086557755094630984162352429369220363602086284885920073655516802318910158665697648584941932511863757554268228069493755566102790573807876854101287594535858264494094470450132809982716052720193220136258615978223014743027395776826495334005878066224917485266623944430585945086942142872405106500296649089685784692976078219557769950053213773978813568493575249354961632801502032713073717807597360390525798236272757345736901709992803211882541475247431646897494558089587448886105907627739917882607009520532140223514952367913946937485724320728276854248586005206557872907031135643582970586130992439476668037818561632108488279713380595192557556821481931049424330253496472481587009559387600877639905280179505636710838256745418069986419347045439878510190904377588468307606634463500132227558067628291163622437134752156322445914081965310215387602570316831494879531281393627157153337681464642366433583271458514384779631060003313167334296075501345060205258415430868481219438602302875766883285733169712991460445568949251937130252023850726559281103243939421310974773832081695522362732313317338995538822052561142451453920896583463853466737892321223368459410775007804578021967732328048123171409206844270982753523486455575701348331635599310048881088312295409693663761491733973680214532491251346726881585626432462040481521196451855239556926038310064288779860708170979285492959790218793060547238282525087961132670341020486495944733509038493278891790802498715895011700670874353845429810842316097860001319556444897533583500478850363612033197356747753815434974445923880792582093395055889874685709162413597205169749568955357810233739203753124408054452836148214922484254801299863564018112261606279627203940292514564586794711854232599718827474727348258103003487590306651396115247811660419218114909403416437301542389413041823221127934088022053202226132943229382004564177192572568572083690888796093736851216054742018309629139725068214882050242879058410682657729016248405964033673187689676145032550979412530693575208406750472674422524788355997531189882011740711548506670828285263880031548032709966795428499625085357140936329802671186414472729518861959480900703347634688663259242369956115182776090631173201391302295636806018872325649905821677431461667317992149094277889051955527927626123364042144632803837288954212312426923356592610493789338454812789801314974461301911048688524630380639821417536463268621148672915360564301762657454164015096117383132018377007299575709434261033137034744461053042254461744672388859912592986379673841628466748117301955588334732733008880245854654001072430492424165297752337037547131275702303101538765161578786276743114961963627199368937803372916522065630859133222079273135456989336999766837389596888092667155877343228241246741553175424150449145178529602349615443185260097762382489011492199852210700591766470330257166190805060886512540590504659799335737919200394186592663883380599178076288506805441732073337557807528483945767946198370635056932787284111786919303578128330623197331869995126063870973197366075261464330560704372848636079219212360308546414249040460884517753313213418764480932274594615620549420992888214972532318177002910710566545253043466868776053514591366432785049802187034331697481419570131125084503222745594303343094404507851880976000295573550084197622705694911186969493933744051571008172202297823406483588321631056960980173485595661271265780737711312797227831088792776056514965091533138897353988027436515895452986762097497488012267472444732348271394426275030188051301292895395231061357049763444340786843875281074517039262093640099218260470519499617333618217171574797313932118828414302678844884056336832317099972192058319930105808423451784372845142158010356146620423385904862204484164259483620620066202687190839210270446074770796094377431123885668152654809367912927516398149725871666802758137590152043430379681914296741257832170350921016706931732041247062467462494697909139120964056690460635176926298279127133739409102385633164833921570513051102656713727382919166553187645331995221592215412465234396886177271833739466143850072139028987324862771754170527860913477582797998832097643069872746096372212300558894621621958606240331739630925051982038726989251331416160427520156203975255850935456268819931968847270864844279521906678948174064157663395231041027107775086531369941949656364949740956507821052479719007667098045481893757059295710760891614914202150804126098369009442941348371287787344888077055863479408471990320725909863246000427666674981396870584584069383509735596996717387146873944085639842673533053714513963164531967273728684142701532099337279981912120553251246002378259893009632147613561022487185628424562578203798741931442856611232835135878807257264586820283524952780704679934312014744351000024178255477380045574351122098162870589618155463265676195133711334924021678734034647382705477586555149714631776044140423905314766279909409768615928486272268085114661520321705812428799695217120303384454792415535571638480383516119958628683078019253280278439660545674374386778169076793580087506964826564836865162231954736338625973115497646595114414635796282543083230426925396182388767605285634927458043691994955083966478575216204604647643640270687638199824280710098592684571767321319945543288639082892955233112710636835197601498144979354910963189330967883652455351474789995777425873981490414769316052340077916965044175361543420266731854077537320037207154379529161770209247282195414221829258917795182340133341748593006761208016911159437927461841854055158967302124183494247370363368008040200651043260417905486228973502691860017309901422878145323720206263846548156587597825625957990356681814840316681246832459804853817005155339958502075348089603942066116995385681802589648655008193335365783118783719557487485784673777469745449734314279816327923602899233410191395853908182106562935286453305059528561772810050117516174171151617841822540334648819898699230698546329191789312725420606989056989274638203287014410455663996496332978397950302605646199374822848108032420685859462176334488556831112096188534402544943843585052553488221552238807777634322970599067540041328219688930533096093834614919382225782406640900554957254752477361062921699932516310489978297792933038051951769590974873367435492985781253016263239060038288829379523437851995795530087867752518648080581538467857763095350627229582406527260938332781671445506226126578103645380837006730891866271336782008984645500570803028771356738291213665121468619728355502273485416818248837299782452141252179071279515336889969652133476625624024986868064230260604039013754265698013459492098898372687059283171908952557980722923651586837879341745327392519423156047632093712355639564711400049283078991140187240617590172492855347912801654073868816702694724357275137650384209762571374867688444216429142221222407601478582735303979373747071702449551006875926509938762228942680003095258962212758908175132422705470340569300392466328077778093619245712137952330536272990144421865566742916993143316942756587792635026023271622348742653834174774118785355331603760338048475660033501951241686487468327277439172368585092099806228245122388777824579977959141157462989579403618826645406365925423866096438934126257477716843978738458361224292326210410134804629156275630682525971383475261301554432742314370591191693645902701132420012747835133400519345254059364839712365845595407480867992156259791665635698069699167937956365379229757302384448279161748881264800596881539339668491226780883648910749355517121533177028972538653984139207657462908443987253469469166460117736575739777065300436600417751040320242760845201438314025434946311547967944595227546484963131001086509085451880239120957808119866098084998256590037813750457651124507426303176641465260834351974453826040401627140802148656953838231401511951087119181985972263354625274832724629764805686130187175620363515529312755748418826013340049558036824781762160626195031755967415621495764395990853460384611360621575876251723630227616836854638083382115377216792416000185356294289966146159111387203796129940574370107718022485689545923086434501763195941959181343491378757443082893958035419579772540896135058835022957070942441783373580034497599539415586435183456296426882980337786097179493504642368476911020276456788141065169364307494486044623600431659985488923690975654259967165088602667166857926273850436721551198114982221368165476886732923725585646878193448099823715123875488291633845538297539368051556313461520084183297495794241402550003394905982317809993940460513075351779907601161158925738572213802819797193742888625760521022410467985432720251892082558989530735127154405687592236299729876871462974251068121037093128807581216390857139115241073177785522222365543002090285287060198268788691385042975624269985117845122844023321775823132516376666974263363932518141117082199876204640963598294122825296895644648892390050285868404212739910984405932778012716069958894580487620799482566307325380263713961440252841348595783729933794623874908779780905522973858538474162542870088426303159710847862594196523993947513841486392651971831761243891388104706464995213951488644465668409873707988463064113292388087431586669368268051184552904622795790596499384411570048094424395383273782164535424499157621170083100694931409052014893392198778164075633200206372230593726079250932467285903347943865178689246567722953013245553272161543413587750415013060389737378278975009488474578356353748752942764484620988866714224648152473367897564523166488401474256608319901002667273958045276772403615716795125266751636729289946519569752848788873513493796880251158461577233394654877033224142718966573522262579689763079709640550773713456648647672645068089289779647764854791816029865815599014305858775642001872602105947916957118156223311177017873052640226036192976960064731397408376627197970446636282902326034959298163313947183653337787947216471125975238541717897870114140819400127025141860573441472931737747005539165940186907965304070821188024054091826667788868516088057945740569244380290165277144450907593257018930303730674059321498780202721150259335721698099307500317105302761956112812488137123990169980137977870885356267276243393407326402676272977615586185348639614816475567602136193344551343094308645809275087678264800155383895267107042609626015980547920699833878064246124240977565828896247708039567334484268898743672073815494635696081487983744589688838521189249690931501244497378488227176518121332263954779315564658451006825077295451467302669155260312814697712289674740185015786324390371131665126618686634854392207859809795709578233964782144760585969650422565378618079606097418022948820918258530744897329433647734217695143028260880583040007366055273107281316752862009409051031628686517050024703998351959545575032129739731842254690419731650242121158703850495684385365422947360204338325908437697584112994664749939984259524166688323699498524685897047863180100265636121074110714942512003445629454562820033597282674970317310906565470265054779077014750398190571367229718408277006193165635038990244867248861229874074200724986244526394086189423498585772997901191933545700077680604251412254128751329821368434152041566659511546973637666578571506522651310599371696889955054462907414997264852284367245513342500594512743193649351154737171573226902355442230608189270910364377776627068144931551765695969139344071205956898113191004212800579139319423584254673519609139706507902121592608850355201092790899622731256494937312498106789841890088954056927234235060579183381659683999263881619229627760508627681976172339691299484321023038528624003241585053317688621612688092892025779894145652674044343532086805026541871801701704621298551547025683515473504061788320608034178205528319369003729262640031611499184406209920362209364539150592282703049161243969826399019576128128197108405139200303546462102245231856883369201297306971895472251198603158845071213745237368247240973363158439752208349191954323297051646428125133910718273807034535997223143115057076555039522079791099033293819062263718747467880727004824751175660467938156853149789261912632939200015834384975791785424011250861451595458636104815958372541426038439949942144814137165762829150371284335410683761991147415952250978587571078751054803081600635744842254597393357833329434796881227183086366896869468624054539252872124126556110647382451402286889831944794169715171091398256629308897225030932890678230480129629901125016400645263571703388631128010997304766429390990130146532863193939178657669432100664299813106920202170743914982100240737844436577290939406168739905668144364903640916639808028742382682352055872432733978914364466776487109932663023083117943560002591253501084187228911526319059294911494168518614709605423359336076368581682647235340401357464159690987400081189205330981761274765450791210001237179431812727241728745969571190888330129792048313249640620302897441787263150736881224395031267185796231507068186614086548128306483165788871431440012753092578018148851929493330038010077068856123051200623053449675723005140308716755186449716280892006518406365415097497115280173440828768198950325586905096859357633234472848337142049864924525036003377393737687102694892270021849141056441825143824503978445442436394378646548815248945414162002033991797119378463156914619433481925447932345342447460781635718521936889384902032927941390722475090826600751230979723742608616915219142744073171984042405054110282425556746422898375562045338745654322227126533104742534153702253844545834269093911779827554394267752417649480939467735202450971657214297930908437979331619473884192034603488150296569095243973429711208663694746620938346436601465760319203609640459171339518683792140662914646752732296578782755169372275547192598168060742411219176868819727371076425605971176042244708076144223796637710830713888754292148256849949807940330610042968740817335238902263352508852414029479396335726320844781619921831419900455656067923129001513061446109884467645113097221543301101824734583686093501327168332986067450656213346305901814428305165711529672002725474996432422878576420158719655223227723166869959818929497482324811321626278184174360151475839971688862649580095226699141654125273559091721637860212859114068438150302050651973807163047380211332207817660265186518580843262188738178738107127947149101197202841127212503061972907585304022197199841840142247080764753786008399262156415646665084380742482379638358805165189672612788903207348468442521958807420297744019634547297811749832523665738664564255622427139345555131273571324738034733556782753077020207749380324982296731645027272988014725056189030637089916996106383574954530758707750220672371395338992668630966586855665531785264982509840822264704665238222690173395298798029562747535661100855549017366851184556478117818555396335125703426594790737847205644947269566352095804667635168181231768216780938580182656481539099760898177685500715772148835934526754754057439586053826931755507737683427424130903433422066134392194162499840411437778727777457869860542648614990278697472974712640754151960054088758186101232936457914288971190023305461602870482376507190689390825879347852658543615604330209318339178214147201416596000421006212167806300067754025914802495572761130562057133038300525185175465241287739304559465958249822835126239603835086685141066724094069421412341882409048275982295012172422360694861151474486072707031628374491489388768846628844182149112603215440260335393334269152879804262827056046756587701498278101611958664168579736175277985142790419495058947280026119275916572591527170471069042885068794320932767711375272024633844821457507141616383485254178751278300777119369461679492228495603910349275426654942057553774424983995055032317800094921041068777809773458234708296423720866848737448936286349871046031328219479560084262487468214324956899879184102108182375600229873283501846587185859956323189891040843774836324772824179811046755237330758623186080013882303992453732498241343666813669915320871103185064065842010398227788629142292072744909971072441799028491609433602470915612798157419891392515035452502425295560702714514650377030349083438647063134668040443802978670024685117549771082208482005831960692388181959479255470389018882103881930413642817113717258681467931419274316560835480687808398856148105986643319208765135797199659154117946535035934922402711559698931843067668547053926174204464306645292326852849093042601104431672992903834470018368226812042945335827478191440726872012710632190963783093881900362771298738186062720585130498279986837419230602056111249647174559042807113755843691243125338020481193143643417281481893587719625364155962146061195141009395640423439046378269746819472626608579144758617673005356211387789815590902905712068088297118843769131939155668458649904760209033476562613417381974013193169888768449038511049172073599441438771306041003395782471125505718411102709990523680285464611842349627563241705053546513675242416925892318490423194392640274687285220571941043499975161265742686628433634781305681254850809893737291085419853019159934163237080901721366611033016990214940956529138142835335259002711569585492789746160009687484737814503299304158981701606857711259852400359307693276667033611196672285096709862147986116856894760036474677679606003830015974413556959433858112424926594135810147740194375157165835345414757198578627008526497605145991755908042794054839792428672281227331395975890182155720668045053884896971314578301434426049914583412512779427622361986334664195252013900944503755040469855856382694683949591264861752539249758486247031847840101624740379555231002702079095922952562375459127076477999053309270572024978328281917645574897321373732857739724531484427880641068356307110039015098801500751809049826746355690610442822992910443219708233024195825435030338714463919191140984177552653614827655189425122121462818617602861908846025863929436198959083152710139997211709307330376396044249686603327199247709532731938615205034199898668299451021485686216948892702485528561563353404710968462439002537046318895655463502841666834585881510179490949662140446748521980929633236645036564576999904104129334426523169146376108472125691899997091998130742294920067411767950566736223170948593029418207214327294320147789265151477359936896101995324394028611145093319429241761177294063220385353098354091417352267014581912562634779597682807669050622895368519289715360769449344999920817080357981440228242887844123545173327086682688931995395205507413491633057865879808424372666552058507516397648841115363366263227236378978381098990999630144703951841289149340282157666210533819316979702573559356831067796536704481775610947679129877489748641685325307115916130416552910496974800660978052810796318213179115655702032767754221915112761575338972016441191503432119407265187175286928046296858910398134587784691103586169308315647247581752953340578015461741502438582321799440652553574405553868858913768112094922923989523397899935628286470917462574537083511817512658835631542372288596063322476498775641651806591503508167716807493777812740822300038957851260594437975085871195335999776389129267533538329927177136206369916908859541906112876309045016079812705967309989558046208461995013444032806360181294363594590729357205102749073586124659018472660956993409361593775376293081581467122909969714659977368708106603346893542078578800481268847027861751679817788676320252093440946339135275033255251910913113340149787533316364204158918321201053364618346832239817094895257170499401106430032414188392397550912834067179559135760252448260920571875623949305496442968026993442774424132771184306244192559987261712185935031956073307189337612469991550978592893285401392610285367132611066730988216035601161218714075720666413049063540505322584058324275060534259023603984858966275628800599254937769583355761120353634494094838055491007411319994426478296088488062423014092786432060980929651409358100582999479649168027572970462159436024427184037031759849149611186789775509199627409718190371408433581542812430787013644000107978156101290967732158618074847567983618053084255686985059311246561158744625003678295652670758704317264344481231542385830087721064796655091816359068533848665136184742942317634437291413130088529577272937134278511034862478586482391468756004623579367050954959228618749751863978109466157655304942935562912685153160049619191877352728890859672590366242786349595032202895232176567242626487133252812606153118285043781429224810837774285118524506340217133387346066130817119550367181587957678942771613806375221649820439287958998929989674211088322354055288651155377454237998427282890168996705759152299886562739701607840529359259234492313126656123404833423211297682753933848905290102024218492585671538995074537739921803162034448950010796951307990529576820666402263233265036605923724778959026207911526381794854186185658364749999742536461408891217563109116703118638844639799369401422534505503624522131292768451143583255372007146638432708983241076117319667303410867933814871721721014687839661108336802509671218128481161541657857353837889941849849830232421360046671750199612299902323585912510441900673882140266982296653569576357453581812766325005018746255047690910263334883908872622562282302143045276399051617312621198035428168609218446820353242925188952484217707445064836317016012218598229602328555605051865330424471046341388977054362959028769878578647470259860443368696211613276252076471443433613943749316925000235702012699373152433448272878194143313997394591744756560595837381215372695094894420647479144023964972827921115333699515068347999664954567406313004307124748775594016686019624930973202437592702464083938510338706376042283773337560054759701469538682400386174291359788416617285472814506370097377227173803112759780225764370303026489070067797617803731594941299263638970062956572042365205118931161161575548351078547480363279311543391465180234464697789629180881588557010960497652946307990265534298171477832057464884989459462394805205909798620219570076666017381111939896744773060376049783391404638021494031510130269252224620502752572809290484238828340992696577619882911132632024017511332478715902737608741335247725755083511781998883747074389043000627221886385453999688484712589588923480287157968874237989719951194657158334355887041556894440912898369292475021946614080557660237619822774995395706475905787245090886149449873162201663032620488508461634165079557611368913339613365602704355947759622075283947691869432086626501063659981902369767412300389684644133903740978873531130148925733778360773800779012305563117441922535717890858355987788435024299646344154063533413483551575409127874425651134557949458090627835267209125891205624196406171512140561727480972128897390987116538935107423418169232943830223116361436651491318576531242399213689488464879755944636253516120979491867080095662973630162474782752371447745728608663581585561216644495246785275630597690412624635854734663189130878222504506483568289234095787470099150949046853040799405490703539004112534609952131933964038925864627345647696067904285590996225196209407922290169242195644911656446348122201195688726862570114093896593615264597707922236741400078827827380078062002967655097447672381883212647932485601601128584998486792619835407172886818191724079733257294541247906906046632350922959386255162954819920368287750181300453256592676714785673637115991279106059854856707631525160002988130440546362915964183977663316291616688076324576239989413336984766965517681057590018848804677771002370597190878007938004055193264746627215478878229901300209648098532855210531218580888466888926501388585560641578965794071543788557300828180991966456924646062390954577342318691523058791508143394953418622663958116448015951276569651953406026559692960489560575091540705328824409720057175096940540498215374982776040986413489910316114291513720266812182160753794056638878093003394060334294022176185364352188431624476626243014426709660502438958860400056437094905685980313872730901420169976084643941925784010916001664228205016784904405588722552933872129052993723247925672569164095409478762461418826969808956794145224216899925657858585561060073402995185703402543161763020816504910014804687679318022841934822636446296994710218642831398113279164890412625181145039037365713063174453212559864314449938329898446761304971315325347053916285513714563237199852945571130218557745264046142624358609856693106312061341658203450071504828669031316639124690097600340041722853325155332203082519581558440774347585943647597513952164339891204030407176652258000226715943787941927658566915478081349783474638207253680161411019376940059626625949383827171343556550252725396536205911663374943002515202556104949886568794869522999837913367583527584861111465193826474575909736425559399834377094431694506232853577378648639022797376713127140370616745892548069236919627904021906828546011360434946756315070711148499925318744397859197913762321809093480370854612272816932575685726399878018436824275848763895097494075383763065729455766132313265770578330189466191265243981783659073779388559898596706569745234970065173932377806802406176802887662691380507561122489871299843852214330056974482814132619791184638012794961186625385390159785107556610155207873576668217974644312294342975719542799683763214987670044520985587952618473707754539876143656950561676986726028622581256195263331543166645613755259012386144377447803365223766451402442300222612588394260231793675937244363358708903388250121029165549888276334817350511798245873389219661879572467050001062066029197466128204457962057659925722229524581309645360125603047539433279939129388750057389002360598477406105465784482913305025876664117353716358999180669387195678649508760382874372149918782924730415069954642776386865152155780917457837551502847244763216472762564927113468274732243720793872182429114498160686915825645568637577007702289559511871326448167447272418863087846151696978782714292022370100664065614672692674487839077423833741971729079922382124007302446700202155770119166262089227996529881698934654342776151662535385723481959542471452415346873999163525385807896839930055202660198934045889379608623555980076566593598239211396610836085326671448346935218242348133141670156314742179005387334725336026104723598178844995863521098396843327159131282769477411676545391383664814771398688300212138359324206870136348095714831060042815934106708149456436457659346584091653053411688394691213364013339340706028855141704372812767393049131849209154708228943951097917875735175541835971933462313338717566536607766607344143069544230077263634388075373121003392906726173464190661176159021666887083662855137752653957810412429426807666139996387258450742179813720599153753845252205493367059453381787011170756311816664446912722223517107811927845152448410231943492476641179588444140591273404961607567549805304462483516576365830962962421988952257271065249510795500039294441439674142704028860921960082074686612835583930766218683352530314221015165913487444504418899679596147269478342509489657792747899941423809833437387367226215338902550288523659859460623049014708829786166225990385372785276315399280951845879055612256309674584357605226233579054337420783874975155315543590990083918525126987484995773911034793718043355036794294379102417345165705663739067659488546113669933622420554349535802504102127511507181445745704747699732106345566804047445551109590493430196167360637194729035850412605402090659440742063747469722938039304488978734663223648790026571620583477252870065131248779952981387770486873649834211101244262752053360118883987868521032830775885821480766458458773099741070541013119527904222688195805066772581917921014460541920024388460853549400325673632695763347330020741876179321088258324467641770649989600912105667452798601961378321741967659239178742938904461639982907961736192782828082199343308997188286720677973976591004188040230900428361541898331587163107042550111898639842044431300978544081748495320059912518430954515842485822838415128279487566467639632808514264845947411459644945337779254408324358418688545003417632145592299732795871629402604814239217150768427486351419091400108115972239920477684433165282749132977797522800619123230800116570643106222826405847429916639992269134355792381253172094688358071682848904805200667352154279414913625993321156933880609696091242695479738620058268156708196279952072702707905825821959277305267297753350106201673158163429323515933902311341523199541771227311934113132166035209989820892984698945018127131836663149496546109866848857211832408636068597978371619172561991269632321261709821179219588503252707337761296933468681112672433515379089393475874365795196850600231711089631722942928705675785652625411385556337343099136391620110106043339854287644009284987572250695912752001664714669940124144863573006252993011414769181157524051662207500540575513372798140991137025947228041930849199879534765505422995310453122784223968140989769020805695089143330320919653600869967807200638116624123100688421027152159373119186113309155953791947971922843072380983145793140404904920313922549709480890557122711695511285098482217444697508473128056353216339065019019893789163741109774576145335485646395447489243519881002800390644469492722711413882618683338944162586899424790985031583515793540194136524540280291196008764510117734145341538023944063483255971193030167355220470808766415596598341354123009821327685806520323548822578109024736130696496491792334684691157930717655672102080891226635220803624127618406992279389604529769035902248684761273787689203959410119108029628432940509569035477689547155275026507761648437586284867972255206436819561298845273932837942055618050026248916793474266521818852459390226360411942359361908831664192372986320975851957981218517859365617310050386706697587859613109181309306842765515046088192872754128479974173078333067453395159913296069167531194414878669963573943364959625588187851108792838331716489371342498749907686483555227477488784368496560074406457662170583103838626405270701018667637613503962468843349472152661811276261992788054491344228436760436485130925376922940630973207798175267514257961061335544361379498533687285005479272401313244547554891171943624022919093926432670297060209194237247403179910593102960297208997453913090372975250790978821321906106307180530512095480273711965761495352819063580725424188925607173203790990750612545233129905923935045839675941672450006132653801748816456064433630616520452561802262081082505648373151572033634275803556537062777350354845908619551328307741257430445482424587112152079101381061095100365865893114673024439791707366260180382638208111854225108278659072979842999999301194476485749858515837569507455839575903646885236242636634254705918223138103416731090105344283319587641253776649253454284872099394626619915114306231832432112398590107581904393172645141851308198129174980899332306082826429698052479953707395741335121584682954075185108811336619839289382635384663647874817061701662730070015365169685394648189107866369371341314265392023564893593774454010835074618732189344525118876469174232570188895097408890126286886915433897677145563363604565460404895045989817042027909342915356564045018187200452542121576054897677153601204698012407381453382163224066416793237115401839035374914205800115380133255009402576222695409631434273192841173522991199991957693337682756067183698639243690267742988652408299577076242652943996298562610466466198822601513736589508345872426027905094447734927342996202154970466383881497036005729548140821529975336647033054812473412850226731984211442608071702675976216783930007636482405481164971260462894002648443390730695422464863640316009444328522188896152765267786538798581559214664302629889936346364095348082639482693513820865214912549225847327694729006335816264288189685779216039544964963268877250410403727884879279951415257339087591556896513867624566002747118810211366650166134009825294995198897675334997307840672951639664463908407226530996892245021996345966886679394210670990614370109206305233335778022399641742712906381993442295809345251865257560241063758262092422881467037055925533401571038078863335944435319771286620685377640044373542931076170088199312153735376527886711026315271012999459903251359372168551581415486692303780935403471447319492541480809741840710931298640777450973230657735468646408734833584914335054572674824934742897745946403752364803196830603083630506213616105670673591487496881925249754684652845568948456345170097154684593338306260805598385598636359817401268581359983294610819389300590845879811263295711204306785661098622077374073542177044116271233920099058665270824980367908606431188551448586164003548975236673197180658766460065232231781564218030612928228684554160027231659122564218190845780574051233993104826210523834343129424333987314658700634364989319930115374655672660038214007394017988103885347058942205212015714285067587039599348679673835657018466628587575201485072165782510730681552919815609038119894317606044025992808735998275635724208002033952428031068296364529287181245540121785231989458545022600497636807153235786647267535218408995995835346383299524669647800525537764616950845755078121254306518927843961802040118144104781116683058022682067059341729070463356979285759801941795034159687645764833803246809105620868224806015556191831060612718831115912682105989945180267566947134826840644290151025172993471374871460225516775995807376800823640100576989744602001987449137918685558826816090963212487831845784009738409509745743886145309613110370002711971485796469259005512845386880343359240978482836996545142351183473807784475308833207041584073050545487007604964796073172255398242402766590115912783740126333800098890483581707244152570014154222604194022383710677541001368442153272173140884879757538497603157001397944085976237412490991720922140691000274612325244334884968864195046738316784264949507324441253422158573319333066611933843082634052160444592802930338483188468377016420645894748145451025994411167149971138843125078474551883913206277425110944534835054949087201337887625205242327046027125558865232222344255455367311492221489501518586566868428543764485685784741328997908815622966360842573139228253927413774964367825106998720542119192017422889773212383518290681447521802176425073859372737651163804928980662982074138737360038958287925838835908619044171143988486068135423117856814124036270374961687033774962853280278787015198441013374142718872859882768773891065908899251986842990944112451540698095004912609798559263251859924733586982907677868807855079865828606794732687633054516911194792437511134853832693922850119239635477161656216581456669225074249100911090546927003420852581098523876978080281087843259039683586900385457655540481776634599993290302280457270370937302973140245003838337718762375673185828845092080758045819448383624711696352407593496673014362827587791696739295950790591018389019743604571215152405099116902492721108016329467129770293742019744887969955095338939821479070715767961956676410163711274150600188255321438080781930005785967883917883806888514803493618969903495738401988164724803022204345552816256823550598632846357969039990967396903835205410787314951068643309011467243498504707787809864373412122023827393121323708721957073966658175330330092920186371657789178157990509918231020528493386873265432962477377505517146969247711097191900852367017888474089228337372600419655958646502808536814550766757235475755850762435289311999218278595148420500194093444158503854510562796857196842905320177144476254635625241048741337263212263639405972447446432708056640578092914247900374311034073291583435986202262310663692201626442908838862517573922177940199828026352783565731826737177147654326297668271543190740490899040931931984864747171699475117009719987100584711091716874049132639217517083177071218451773448599676885998888845514662373480867846584853779065772476385819319104955159079618389840430350460830208995409609794713473642133030859823785084806022749893152733253154091415054502592700514570642437516115868212180920121713098417324119816083125721546256568805684074759287744749489168716004969805227311057510600281017413216387230641404942564133040356943379042062645086913237783005533830976525454314124556851974777712902237691749300942972427123087421531995945972105809875386319040960399352660188308360879141576975727543178124639554700616496675288153601390392533233691387935226401425632634498581461127431114927361672198046078541470508856136860134678815758060687208317025870655566978689199585545987476088857455042654191167525948447512567267888733822386482702435953178546155885368585945323860911162119544691083233357530571962436270402483322750652336535384146524283251442088451362246119610761448231137970723847229073180876105441032314342205135724170412641375717418739676420108860817082645876665338592520658564666674276389040202696497176639213746398142801228062694273656798221380197110174805780529587867604847284754244594809081631881743657234050808834285691860316602805841623809259617586341975062891021435616168771178485723484835333764158047878682514388749700568574918892407276828690078451557767041432675565060076576967086327515717570638842503658472347579089185550629567711674806689974134526511357584607013271503211257239516024790233651714645564007248771014309854621735596350593583717067114062830556885191103047946022344673694431469872041595527002022141738029431189407133786218687244798795357218656752153499441230581147611083930990325300459329717505444271421570885463012438672809536917859404923504268354047988508868542187593779790865829729894214639046139475863307364340298704357324474403888618154638238361117244917137609855795901217573455098044458408725371077263836988704086419559889064697094707337362989910240425635260466500420931580137169665830900808055293309970127348126098807667650217787846202955560301948815358944527872701740115585029626630391142198690271296412079421241492568392062260780402730279467163255815225606101424979415821665878818083812209287583214143713401111220864630635039413896424974420779813254398451088196737836573247227935298647529760967985156776996683364365557626304548633387013830885652157728771171849958204266909502013349291295543861194909525647060487693031012529780534291848791350751568206649926294150782648513014809394406574954377801365705125352153041041940994063285072213251392316728565178311667421928872565652504090326419739242382623113647142481462658742004953136078900199248196716438030684923216417423867421068641162948352415283297166817298243055406135773649793646739992423257735427241462702686985169130736304554642610990161050700776357605288220291076003517483307252232900079674363205040959568818480583580265793044667791650306652409700798149859420449209826077899675472760520778433091365198743655685643333358626344943854773887305635876112217882302985123977871490493847830108562179373794309109047410122956840343855940314568727682341026453045946907558492328038225000546081125642953765823735850118671694150334298717592684934915372128307653882157383205378141368240254664888485908862672509802348257670190772454698561784870163726541981869658234006703452524417028696716266864629515372590532913810497551846558700578136792442466427107184917632050846687535532111079813810434522446349968525564483502737398971027595792461390846714146594332495190521096800163989313811571321488171006632528983307936574292382440592848614402652392232393423676728683133315846690258857803870398034542383244311545341848825313743682011995138906849667820902923226546362760156152855678646100084986848358445517702407843391194396607098640417981261501003293826026430286290363507943177463895115242926932227419565643923122607068766388635204558640693496448367072075220399610996831603633894557103900061773601468478190747267115920198261290700961967786872346839996891170824530099166872295997070911176477363823115522146479089830659061459906193825231354465635363155829671816733467545149188666040330269518671346084174115342194729696675345957842010257023672286946929039676191443800735202530630878233181562096060047678076812821452229566960866128800693948283287906256776425829001531341026355216881645886578012142339722510655585061083969408595186879747077263089165442465088402414068270642968188589630710697509642544943013166333709809452860396346439421551679232965170088595200220238478492006850137521149098451153708589553577699504383705718426567725325320915235335666717233738125931744993954865259264273148316227397708049648504442709023386228949319969622207177586073953740593328077528433796050147382143824846535967464818637323103412923835073543381357609014703336357513576797014386190212410822429347879125154826014402280199468246866971905666625435393561688379995906173260998430567125928756301264926802547899433353685512761769395466509026757293552422365465209204744432586408183104483148395812885933100347711088692969717272085851665656761875784724565667376222095179730414555431229944541963927174020303721687762243001314851398715268282123489525070002885157933292873945553673264243872306338167823459767124841901262600557863626247978802558030909322508052026260153757727884294171885563062208047766853459893264659578472221695965136928386856038124957948135045644166452845279485928286753982698960700728485275805016305011324939069319128456717668376050132652007548568420121666849995958825808291063960253101418320200732066339342144760876197222937215493286257637087283440072205952622767825885754222258597275526990438931721002415155396850649388066927263941249581628712850863662349428308397557720707084989790992118706278994303192786668381813184070340592864654449027060647027784620550043923418885267189077453072061867879179024724681826998932431874694204680444945179825489605075834847341938363932720805052607382219743466770333422565212387308340385583740469912209438120192756703542091943978580590181474114115605212078863887869400029196077732158209135356784089184639395816994269415981040618454882407225533798454668535024425535563052739629844779089003267948596422993455152400313792443753870468946989820414202706562486278724612845409988457375217913865420355252139849148697232953979168386459512237218755949848632815458094234221274150129502318623071474596981235285082812268155403345101568211277060538257280512231205681447281604205127759139861838772963884848976190263736544550289977916073871454215473505761751353302917363598424815393009768045365151365062496393291221585112730064051558387689797200170574523985158039033770991856155246494652191735693689386579970087057233234192723608730458661060685932472127023770687158498081938153486964673988652219357754314999704632441524018114027419668719271762473967294984344026277356349599021075673598188273507045062866894453317850950793867009036767590130251338372740324686151829782438143772160354854885666904690483461275563401812283809834671533496612393698043030853764446414522644913870725896447892042763296647997318465647467402751078298239331481567670501517064433339211917060190805189905288160367213476691424189771584312299059858018806535138947000031180830575994911573241319017149931672850735429360407207351330054064924874946813309249394929821174353804133890529795431069197666840207742886051873801625938614001849508833442666242507813331000746930968553102772534452483303156448258062844504790346694879924662169034631847213199766174865749053101329541676516225776781792735779004155833013011971177177330404472684801994220215868947465768382317840010853138843363785356757915723632984279304899926358288677670766689901268866514113753185121606550940548741516107786331506381641968789838491301399878683455854701926644285987285014361987964999153815852067766362995027256865513003747462430735153413080651130353057489537399852669516378350746807833735197983956828307349393046770691935469714247237347137193546822168569645420417118988300569790236848899095562506290169914931645937150694220277643364743534102475303384222380586879146295800416064902446379589610781088770700598843628915148389720529682123304455318239789502769502409162861495494783208854098409302241690482663512639536555796723995961280635880570123624626148395552575385052418340805574437176837464046771595960102385601949365356719935914144502882568358651480965182302071051438732417166079577247976469144528802520414812847082457633913125358441406312417679090804762105843781093495367331285118305673240903184804872587009968938632005347451318481771969698201782452062374887818796491397289038033952194303907926564761197797241222308564429956989946592550959702018781874474652779041874721864191794294807267190110682273760838909636960375989456249169505116186636203586644864811853370759950142985230625293526156797739152545680546695828003738627233456662650575984995980002080246566576725875393850580601661574617623698621284592552602332119200913345016924676087536168675638839465690006108730542668736472940422236956308557427644079306261749022603123993543681104326735929775619010143974346144957032340356099327961803366346771688375175167297675340913731180193844527607600008059065815594607275933696943918699509381172398792727580859621094932289489704843188161636481656175928963867246283200958767630827527833395942345287625144200551822487020574985539058447471900902336502142167431982300710433993087243181110209725842546237699023094528530379092382929322879166432040315003913647793390960217256372202886810342588649609568256907233269319071050197050951192713442546474511406633807357249815595544876200931476090896463807721625627843429382021467057519192759906891363542130744990690248599184514701033734555430895318175082413638902545582092861879791624044963048031723259639663995144526779016833955088723410734248159770664976960150066871221800952404436342069733700639395493194487570507904980802761377028806019871116895832158125645771400147398591813038819742954412137399925648860690170870226434153840510097109631835241340725710426914787170771286402789532299595208827556041506657831324191539068565496314385627079741391698855409599890943429819540007918066163518043147861289229608077443058645558203268430417030149398794935067759183161708238101525513559300169433266894847793492922952596401058984715802918361994538422839445905938219033139254513075680243982736057635355102696710532234146826884324180569576771585162609728488030079000050668807033470737101949949277264874154816440592351764729242775879478920994544768357301318555370813246571158983375222330265552950919473931018588692473112616144866972063164311660389037518162644323200170868771516161938287214145019221639472375794625080686031274792735678501211387713512355633141669855638000885052118303323848756965402533691984669229295826547999150660524734585973328001776972716184661913427624827285963167210742517655779004163432065818098735471799781437619427418625485102996748754676087527944761534226455287761239109513083158743908539068951936236453375132422543715980961099735702982532124010460680439272390289094125234547877758701160918162898350677466036550913925614298839561264390311473738120896062563388275054386261456849244644704879430347514786749625501197027248954027188970679571726603175292114213509895750768328021206989944360078080089128177433123668341175485795343722008943430093845568139291115520420102011524958841831107634446914728901356472780083714429137368139582998859102768778642371277786130479796231287802814904228322784643744854078526109463645612033138731760658260904128450238719818727158846400484875642372795299515540671776224284136412899779601621818024976507996190778396532679563631515633639099475404789154085125747797041931270278113260632177434261273004675306383579640985311977768232280572715456350583659100260741253769230884785528601262122491852694993826845387588168196704966519487747316218963797487799614690420048980680808030213359958068658219207262429472008788764194510080659043401335560883279639614260562465595253925234479006055520567742412118027738863954971659398231144845037122112802012463158604243488533926849000478451570626836101647897133487333631905235597042102687586524395622195995416239247388779263245439588097905177198914757577859724703930412096205702459012055618150507491066630610974531093132654680031758719576032805986476387399132908530569634572668973246079928750232922940040798270639845995412594358069900652804265602651419602654622961478358798525535672423313849472430983984764338880641154926320121557358930075668912963983234290833962777674655791908401301864430957112174368997129661334423638232528155544733345617382488211869814693105028506615745538804373304651898023247702076354381161474034680020795322552726495026536016589096030677302916538303329664513146900952841073513669932572741358120133310509003335249240241567605956360544361931238223561024523133851360169231808634569287603489664334018332254992777733560125050186788681906820245858579561385412023806518751697628709082781110584747241575028541312132759443066501116858768290949557368935239013470237744697245886028973199710396975329998740015632755686882400617883258720937520917889332215431310824987535150006271208271648136196930253446440424698848159611161099623968893979415340032428190567494535105812673830378927731821889526002626347211041094719429652319463834611054643901628237460785713572711104377199646179364098739716283612981406610345086546174994569862640876617161537671295424803846664422143878961849719535546488508041368283798107313140846248951704543827402427197676785391480709222482273980841537675910526828726504153263665858843834307725551373794138813383887586585303026954286654000508410413226439350508137777646560821994920054318903238569009273824599942217681592176730125142392524403597937602472451041521103676390401330758238418143939828600326669318443681460453498452469050633543874431007129203378242586546157493070834602083969500947231904588940312692013045233215350535524941869070063968652208374831725604207639807147938389431037911683586620668206028872914051370328286432051078585499452266273495864649916727469277365104614380031662385695168336896899370862618068477946576096508385796161804836062945513875543426250869262278171140147029710953805127302571692888094231608775464410359723487937465313862242096289533875982168389502015722612692824767953414273917113251531349516496941537307010402120453411197058189898528791292747185376549899594159802154784095692198006390880341740158758366592536481867150800354530015715401467999122546020235046678178966181488792660685108410567527258663710775918981008281316925439380563596943315496243761342945893610951183209908368397789652715982137560282441012704858496105357063886830203041197715401298462810387013436675108758568257460502102285737198183121646054869857216729962409703458260356675198837906821183965220899637778974764416443044734535433047129339383175367509466485904656550841868485791701948906399024242262207679275308148409956179373048657884014326881418250280599178393148298550637910868305396204774026761529742173468023748085566406954840526916672140722236619587192223556242390802611637434109905083008815197892318128223671390407085877128589270919188104290364144770426562804859617984271185279167660854331786751724615415890848654463943019117138247102958950272254890928224437302197943106950921230142499073502531875012790468780939784017648164403217702158411858862155790688690262653923930101924706213602708616917713587923367157187602437466689710782019624621819565759537542798159981583069978616336997213885621808582107523231530192480484188826088854601622559895086408690883230914379342923052202046505135128524106725785539824869210936471024112740330410356396793297903114804518849598603551219439506262635825755886533599798179588088461928598479108930092413360888479924186363239579273304110127177829405234171001740989942545489424361837483521019737470683577616879269249313021967636252189276931564699137269597590589370361853871445539349917053682249512366950020541439256255858508623840728903897374657893425130576860499925700227725430138269834975058658071382336299009857276692087795256456129964420221442097974116699584651800324848410754848874468637184558352534916738032448793584988182464752368102249753205788960231486220273889849967867709058667384054873263686041218482819971840696293479280714115983005309471231232044603924374285923362874494392585899043827830993046795657641916458676710679103071673986548369248371850111088059536069875900699867946192237643827846875916751055962855558407363532140063943044548094380684488787181005562945985409691924985658800386578874381924813947992144616371766769383679117485500272285614107100134048636133602390178584772820247808567033548582941532645431734561996265335387748421046301925022183835185727419095475400822677847659870549457998565306236577811626456547183317015410269383765209557454034892860846005554875853852678467346784201781719050370002966191633363242979637094928453851574624048963130445005133096374305470294019692666441757139758741955593118176239205084793125385748568658882429661447250619179800827857551694804521836860959152075944228575510620674400921943893023931247494819673636144187005433951029782300318930618132923303234517478978259712091477098013076733808696611198511311780646383935988306094492043734564734382739489773464924466851649227812114172441388900314505800439428339230010963557399327143664373883627722776694865037551534800637625451225011056347448263799835719308994381360593812036055323285270897203155556521343151934972801647115306853678932711134888571109555817460923465552284699941260385589141255787114667404052873617602186251859439104188088428053310741435285523413030723872859267773367386880789656545811715361568020341485707947910949670357331976313382434041471511794126939925455138245154383696837667042368332800674234553353948597264684409664358853839680346171584953372478195237302575204623342392625451777201085620055785990495003290968109721681681483532103257308237506804421409946217208766165637231903567629955115425001366576092354016357699076836009672001981961342318619606199863256966979727481604741214069788281855587402501436241339261559501955545120539113785363742106761453713438296102290930671105457566473538051003510160562521133294718470122647155661175905609605619230838841742631315895075887239073571702079888099371259154103121087505973730766878524907576761859412379369461505552829175098194393002759230787236561080553601872118717668976492556613609628686278371113543470172804009052977401971762685606031060874278666727371085475995200704669074155349008067558061434673305132955583049788008028093591750383442256844734861720587876678569960200062631252999438753005029819044459929487867977791523958818037927266148289637870593565493508847577032546268452061487119660751326651277280847342223190966106877485326783928326228476202693946982403694020395009688115438171815960232009098206294620363792025403937189912382325401289152149236321900435643849113739435602094613904328111880989256958955216159657613197820355468014416163626054296057887584728145866277165150930352748518666589723793626216366326226050374281493056862860070732799109709937511424466928137040451750952197355819644232525407549751129668276020576231336162452154642607189891100217745728309923331729815479935131599978983100982278181003664382461206497832750579493572979546370377877819005402622334232441865109159626558688432536422889384278494191709548846547386515626633317666812592963173619948833117741541929917935769625471106694263195289700084139525223639455564877804596287626892482626702038132019177817801445985525971575179097302409339312775388173074600473551801381037397144189314988645447569853382695299830212202207722025768666433097860048441117986698809121774418636393777226687133362074750760519506732010165395964307546763226413690965421050258217129409056861868241825627955208145985216784138920134949171878841359303118893741007733437980447338024847179122847276198438949686727380942613178882934695172928830529773506916978989412881063949458527289025515617456081670495248021753125621070153745639522757573776124883866957982426203909416405684287302847001020695773450181149021811427250959476437223507527044457747261574525245903358311130788892095274405673623991082781115117661297139288235450211912550070751328088539925038365131550109178856004353186005351293258977630199493846395427482749369421283575670783802144512764600622994410231554977837282391658309700306477798074530497201824299147382160793899507146280202630757558896712354908558296203154990902071527769664048534923040471605125323628502882031959949126058689046289144566468221387062808141204716240911469544701456899350554512506809245800642567326952437981174582108033912170280727385158534164078117053801290860020837405278403971964295308474117600183838009023044353209557022133383709270823857663701410400838546537387914381561121389281600847914945572342538554920793063309075501259919092974569431998638112685996150457572195564699920984758985085791697390961622876852557174642862875159175465898793828073353689538204465474968060638212534121264000259508250326609261455981395474334815236731865320715648195831046675531753250690196385130487688219230575826619825057494675075948152471734509863699658748877498493680940172463986714715732058725713202910180238103116505559004346226323179994876440996491667464437001098042716856400731099756557088093345329594285949104881884640313832138222791352163287106073593177361052520686998249620013750598633494195718659098588215454833354331970247887588157788246831109732875529362553726414703750869952359694894530069782434213046510655049473751161525706470821760360703585518880580622821402382643514555029367971588850927548913335316167361466053115981134868541460756491848921197897863565627847585599422492528416707622701703445497475348591522085712154783005257609726403398323936683279766335995483622422673466982533752329671542034967617392965024589237114478242998938986286405404447012441619109431606696399218229183364372907267491962134229748934235857688558346686921097180860751110057749619905516475600842486337156280913718673536071307778542612489107800011307051577623729603669698056901484249033923351104504213144754464556615608861120267988342432029589661170116176921190007131404287468999799780128093760644356374369911178251367863476788190998454632003509626379573251513826446213386737464831306340110274027745445383934967040692359033405172180679141110992641759569180493605128251949211026982597045933203185455567465954159322948362516666664272156581710763455672892650897359629807549920051431564633232000254853294599764367423021552854836146670623090897082365729804584779614676227905979229017895147518466451300220023472211916623233792039912801617095821471921635148364407124210307603655655105934436919727663664545187430695848073352181049684201522384805653658455261929750917082094261219809893595628053245223453124393874611479041117751602758001718930747346349490107358132715015553959753781501907597413473716630151912424531447752467912712016282855273087542642743511121691834626017810721626060288481227953730934603469853802412071763336405552483835525268773201790691542904314298750627344909952320709660227667982985586911242597759724250638532903549383190846931851991010134940016531984687871225936134162855231250373514637105669360300403407349248210515809962569728906422956412424651835398801631307953477308565803018690592441127989389319675932917562596449218506645876541531147690171470467086085940726175570265200544447853388175155962778083428266332590345222310521356801516612307985409507611317094138071716306974787661257481349162788095499630878770823094356504185461650912271392467674165804245547508069291592883910557920762663711909463538480620837766860252108634707831602255940245712589821294892099136188924371048573015871436756321353144545245850695391089049230535551381450003935281925168367570183121603052823660205006019199850760291890428480674946947763685264051595633422151564814073431508631631461908979212032497727331293699269070030957043040289913655062893105416978688926317345774496962030496946704470731557454099975549452551313570609282184906005605529521633841787201468129090398693701478890244407195453051862650848802733715689081079394060959944807872101011395443368419154848609893277329875627703700553748264106996381634661160017453440598178914971608324104243746452038909502051250793549721495539867772644496993256837669138080501144874469301545643887644486476223057824867856323976200989036813329664408425029761587245239967790656190552670833631638232434606544038394195671668591905236218821613542876087531094246384769556313988654416472725376565039576074333259916779237449261838538683759739320404048125101583195507409443691991754611305219006651042291447010466452381140331552233624715275217496686191162772330600108530934499513205213135032385744206287554342871503243431665680662304949670770030811348901127367557609132376575912089258035326091569588228886427027348675313578924557447945541147041912372728084030362476917314142399376893116344316944826733173355225010409063959519278108826719893275552534777450037984633554152987639238695281763038329531499921163908462222001166212303892534236572377410146781983524527240124400937900841082209478515157696195861411490488397311175806242648218600437123250869479073122417389298816752597095438847294605435314258227124259131609331746050806448317803822069532258075392605758282148197425818148133591393757501699927472030761256779645022023599516622430562638687902547200363099477680376018811338474616457399617501705382961074245420080389595857495362006696659132522158348122473544379867532734869381678780488320927027224515310491752606567635665053342441153355094153623313071943160263568995377695673177655101391658308714855261186058614976573670408330962418555802071161668441407205872719322117837608321653644554181079667908945762667417319914366778896786615826372896543105665079937272466762199298160721202989682516166206188366296711098399432449776719050662926615276296616905627853414249877625519857581803168479349298995170088927237841992592892025176934011553277873633531187341300861771571754226789396626290813106526524968681525755160744711922497277569564509706755867979350061229876901604039480394338407554709921635085383848181997937660393092503703533090736479007696209728763346216560921813976800137631377616193897314978963991264516360249368553820272379246602093429837717318565769540206604410960950063754323869705007957998766511926558114015944649415189788843814562147040386074434621273715628892076872411407715620690056463663172856937258243057160563025601932811005249568247576643652179180298723696589174599866475734254986618254780078605519389117256467553171683515717548310010324483425623719053323573306156668241502636044709592388361457116724152596554183886179300960371404503840496136872260425009881568172596583092292947703228797844113144388927348911751817866279133439704083223542647813117813350936326258344094927639398227838243071003056384695313606050518039614672246545956763685148608985660846141512296584575212857573908572471449721920453314697632920430719352297621983991700097131851617828296840305396479915484135101482066167489242879879801015498713631889577135011686674955242334618876747590589897480373123227574482758983302489396509370598404293358963868351839931375831182093398808049518871471146624203456968166290121099644864097551853968582158811093603140220116756875278578154935255665585517789511473628142148820396973101872482554123121212802305210942633721433597912405315689623137123002237005923247712995076506087560531328528300752502295078047150055485008826815190832700847749722961157635529940314549474177846307486503202219639579797674534413076824983052510357313009605366712393166151273173116051268908902262687446085305000015294409515687842668832273334563157821314419322062514517490255072449573504596985678066301296468939080002352604178468266579696651088613709261040255635483268412668725858028843024340048066303181594431361862887371810467474345344580578012115147872970044919470940148220910563366926225218237276722910813384722120234604478055034904630269947339914389491768745813773245366209871090123707921044976951622978537547007750176647538815311587717265523214768081244417451283108993891706137992399601570002522454238077318370282594402897075507536788554738068488646352289061486471143146972579755748932690153080476217632847691644793917013337031607985836079135351884683164800579946273811911852232146903288566834549461278989735520311560345942227745662302052037982746399012241995023861936788256516278580302989236629273394008319042811810262749644791177894152730298609302778004006983303517247100603229214450010898761753343008672041008584963340686601643557983239754148145548093539544452982689560115649650898016949096413449514648450118815882329611044355645504464623010029243426079531494739906160463214535237012682543478872046620997464315176833572870531048897631441513957528347669839291854663626487225302633766247392411574010984756583296997696535838936259664830753098649906040019189221358307538060723635763801511080601835077741290125646344134588040347185768793160803820226393698440509159627707335908981220202889936115016290030872038414241581437889185603897830867966240995241328757924775735196955930703182254671780699893124165402459948818456020152662359131372166464978833664169853342187153858896071948361369748716865148635399209004361635373935383410191352496119009318884882369537067386817917420946481178120066456259634203656753858773711387037169238693377786544527779038153218472287869282003307765707924902863552413122619478835041389038293990080506073123423976193167951155422360397493506305181979550717565854435501943035360757802464573211738975280663879424291054492071694585454091329657883067458300388786928004783492956332742713251388249905402906987536052087544575398454559259987248640147941020335715058980022384462082115534028500051166766810021329129697450062800456315949750700730176377822926202966992150624552504495507078033950988605583316838418306228418526476790672391809187227095967441334431676776689706501352176838678704517729530202142526944291610818503773359663353686648240302367715833506668379793822096654355053544805809078387552607764906372931718824929452268763629577655410391905791355964210867348522811219274571080028406151450776263610337515538218002227175901473840702826958990138794101215178688830199847334728196909072617345522592544105175167447761389719931674798966771890003799139997523430524476083831716421905785618704994556407672335221832423269242296215141773216648417620754779644052047910648164296749809774172822713624383475999415274987195002445901374879012757698444911039717944925675757327915991280004854417856428767679702966751266624456305350544384122399636000857163602720974189884026200087390425307389273453113129763575590901714020489197451836745047830535078649943463196095882826695813343091087640978299584061599184773976046093292589503519735881169607043132619214954907995065644915651254030420380344711244589768507124329831381230131132932567894526305555016374231924470086840078253459089046873619857975529040900478350707047774861949721155320013756562825611262581860368232753693173512666316889121441250004910190518016294062733648157427272666690354079050857603638985818329865499640089095632537642589757651166202226955609505458901377760601425488417418788244692934882315809341574168918886522736158628659718073598887597400526931209083308030278442428901518120543479537613573928629797819991449659496678380671273257424357129147435872817720666318930316226193113196930663673232416410313732377282273073378443066303861091754325128571647418223480142773847367968004515243463696622362468150078243747997009853846864231889636348826996595174201656408687067901367529180999009239182143279812391616645473281162850477601999730902393834275036169477109679400129636499961086755312707325418850443699861979519835154037543609168703877256272847491220160208985715620227962040285808348169437757919271752935520409259925379119398037156648123689920152592438917208513891703857315540392400575259816066643349571825354601876322045492793728416745242667502592882380870958869656429400922397835823874979746711583120892214984050951808629199674683001247160982917069915756098907265123544759759017412939910174912066000871203013818217889733866353265876664312308870934945999841742405333127430491855902787035697409948820638452822535001933007141491445473300988581263983279150179334521951875265165534432950212950623146012229516896483393438035745475858916016319270974402333931589650848270007413558409854573584447020279076091335728086010641241294152195594220429012012648853194866445456580413975336171250514617589801165998910666661340399716628013771263823635092661836661604516863692907997080149773121809856544087182369530526900377190421612713981623575543222704361683158002724659924780252131453496577581056083389476922801672430495766479130586576367307234901045991629747248561284846628037418413750019220847237598780296769416908191708245892634940631690424351982567908105036939598519350895347298087330386358772450406813727673287257778404219913850894590618222278978248915600822921390090170612836679842232962319187361845124438583403867319313230497786899003825533293229109486834887537772505979319820578828340832106183816013444865028702426772671603657845940311412615657897035112007905419171754249482686020011688398894128187647153773685275923354534276582960208483212535381058847803921720783876837012508647506728662328788472218107776643996330803260309282013202882880025992023570078541386646346522786946913371949071071439012896835492628904760835998373911531355294960426829580884623320154146454811654630674019466192076598289593286750076161171559709102833401392715417216827571558412604879778636914912463259379879516082294983522938224375835542611117975174507102530196516324841302737554511090127787879411959524962893312538682761279930136009462899444352248362591844396637803079884908374886119324384429830663639548246723496235691164043182817241302804296038134741834151835758273716005255378971244569984706320946032529684964870439712797302024791199223647247081838370291137550644745358405107224299918556624635731767019059088996978376467455906688763568410886002153831550598700289301781877786639100904239104794549822702664266686860523152617000606272954464945922093867100862076816269427698426034412772798425770967952969310565484985163697480872764690209770974629077601804755238875700042162057665237224631046175839244520126810835806828624341081730724865608804877755584991241080008240059646920465070222408545151741244379167037592390117619796036726648451662970685328989936036251549955908330363682675640276836932171579602899139028796742090235345607506525016831963231214702028225984766343317674396878397733614048267048192383409647995707959562973045577393385004160755779725344088218336434386785165749371740496636492401266198936161869067417376647511957097559707779745437457512961476960466272347154807235496470795921355558840787894491407115664280273905953290829240965194289290925501203934634144554427917634111034836278055621715592052683385102992434169082652175933114142763020756446038397695397726509675647879556921631598865577010035940200916016224390012964744058125782086085378994337683716132101656085091455213181284733675890700861767176889557979475678490730305174530052285036747275174618724247788357229861654098055940385228626051859150839773027443728352691685338246599494485781999841751163589993206182655552981273500881037110980388727309850680266713135677543730416296350773401834267167836745488060754147678579606509902805411910210423178524454986672944677473818841383712050672065989663291194573609916061276970692455565980024040528873222571668746710326178920238566267932111892263254024283532318293768651091458980172415798409391874631309879845337034534544919222381483577486764153979989110572158044831577090496823831718305767531140233250840960639147978376269676770358076527293813092359556150721342391225068287326895051412698998348553617797996404948544825595803411831134334339357807258086350503182407579838795450810379368113966560649669383554048087354505714638620646054599587389533183234362653447946511619414603256432910428454979689695892425517061708156332939758855065965333234798756806427859549715736929405625261424686216568237869513366096162793918763432832719421252379318372594551931063690353001709750975996763624855904203335057239283875298075425272546842376408332277816755153640823306067818951090930909888171287300420866723685408139770088109885524504346255698305109873753588010150345184165365246628009953081009842895480118927183531662118300185166294604199785332484288913721511412439057396104689327821189580809268601350460333737396660052181567273934899920869617539079260814306527259856115234308854005868951143007444141558777051940490537197973301788388783607673177405404487324564853837692360126821710633198434499382887095182138389243677238416639454855882835767705311190506299277170502825379295198276903653891781754192954654485877591729135061732704980648014729643806976669107045377049760001464349987925440108876316246265923173091995144245029630945929117648680606087600694248858567073826914661193997846256886501912099129807407582883795889310694812633536702433779728113374983017009338596876169561356498860376654872758678033308103929252398292769279903762992520972336207693021829807130272167581169223601411272022029531269089711715473090761292907998135069161328017945291741595634033731055001847031692233718959159285040712348954849468347165459932718272465080578556750563060310969643087594788535428953700402394908472230987156579005773992231281989685283438482674313281720621695981273131738705740352716855951301385572246148664810458103375581513378155356710218912378337486191224647772399845031246219337144613525373851409402542956868488684195237738616879748410641845439528997880034982311608820989438452475986691025266618470570231304397086849237623513952622603192374415996202683222671106339588640732322084243033401456887412643111866487852046324305847346934526845939197831313599278811587657852305607483649778428698208751540283662375646790844844003450974153670833458703214512283859385611439238796006866960160030306685742005247369177000834109770518189985934943758618671194367421309345476861796812938050325668597802691308243588453715899324593857585889152853875469345656824851377299119142897754211908884763052881668606356710683360218693674999123553113593099659546139367562698254243555101648899761038044681749995852822276852789646752159162449459686956055818364409297366658430411201547026078149644657316372300507126827244271137328279565142786096668594365719749540073621495044298784681380763282056132857209886114421536658753231539869504773717425358185500855890342785780120379376399910246042940049963935354862017521388329609014651196314172947557547465603627148288960512292205355389868875736885777861151718663215422267054863072253124583203252397252991747631356669020054566560790387613664440326203342333734849138163528199831932855101936232909520621884307284439090834760416563082565979249682519017463217824611542064332104301341936378471115889834581816958240682451405806177120745252581232744027026747388750405477087798658958538695745333829061840757056529666281895019588001079293600761210332962813459157172047177286179996281551021329255154820062749651995947740903788778031345333613381533686821869876894450499284793014720460815590925987663466415214569711878903910769038385068087020763975053960792985627566490842923246492298863998992696098140319674622340649429236716807635544611389830724011314519170758193232097313034015217949476884385232889699489043143706005243818301474891299188325128228002906700936833198369552059347229843287450576152172779564720709109203895946738053206596192189925718666098963619915587606452459946919378839179539949440534000021191376069524675186732042173683961695805423686269713092884063223321892655899833070840192916088286553199041984486367499463840299933263886425857126742194384118382489380704191264314055196993337892055717945863945221742732082366340762661105934945573902839058515755408329388969916965772027369283366173733951942559299116453740327109967158904418435383786269664600513122173943376361552362555729398641113801965402899018419058327610953183946188874842881672448231046308331561784395611061083790949752107466173371710803746096043377999428230816797104623405660321361367986189018818989395799601149401451593549510901180116822642822907510942921543700970933095754037710918483231245599119700937681516012493238477207317116757253873828331005519951714130583697020103652655593773630245103506905744537241349521744502550003738185856342715101093437698210000947232004824359074899930475395627589003631143854031551439668016383595225796324506803025235784907752232941021357012881653930932283170655012463361046650560960916626937256720252115077292479575745673521879587256705098789241956072871569343350618045786926895439405666879169821220584400897866251526067897572354033256835370141801829503365086347803909739802890805097280368624285450582037986633872965972946178676313699939494148500998123997306072446473542271961505523777298293188370705420495826726267687827809064650782860662244741757315003018224711446012538983617206463007093282324700158580352496755640059959101337299652841863533137713053749871860593943352230573890764542501519383496795837144547322591572417841331142586667876729645513075654444374142176068148214960858272319339702367340742066422346257744355719111338492901013696011181595105762355594307079353156600415483888430082926278213143274732858253930821211226383800559326052779822498293564432356534379509492840471154627837063321322970019926041060997242492025362525941799682961206861329073682103267073446018931760765792397392166735280346909049380395150198952267904062400352201379990553285930445829867836305199794792678222251679139726368194729278320351855148126068584669203498675379376085308044705720147356352419974112412926054801520763502262176428767954564939111762203520454053318656423432964481722074087902192388026559784174735934489739719709196676821736469044554271059193704090792920060203739364488682757974237654741294439847539709278444586736384217637632078516036004142661633346508623917660506747612098346991917223402225658512900219166152391049988904921552279939700136442218550678905148142355154100924735377538956609125906005770947980668309703680929750061558912355672243773353402495578285832111612956595183848558382793273376652423437427130633851726745118279843912553333760545572962223953085360347314019766995872955366723440383972821274537889456378724535158199285466095671307039527184425647303870590162849254754205162117604379827458354985224058653051995674831795040284604130102819207230103895979090171688378384587048088177353228049438889367212112584931837712892284570256287481154089642599352376157054958255371578356723114206435324182403333404064522055722355066714710806962791442064612164546142382772823821518035149230574551943892625720799710299416015224087270567228637828830446912189168114697835954841430006923094919081540313165809046820355718816576480564956649880940509264583937909065167449982639587659345323507236481472290465122606511896299717728144531502958430952829215864292440529290089071591237540806383179536963306287925689958531803931739919866609415477579014285227045434352123880031576600918708297688206018178504662063436998714586975008804548730667442870331916270048338988243121901434155289071555718976179397946573224229088588055064753301176414008323207313137637416420229821233894313170344386213241127214142239003937844515607201127228904373221187054148198785498296133785730485290130968745708854519381056127293005685659464363808929098833254036961657463798238362662505906563187101346857339486952875962064527319110138836486849976550422196618268724548361228680731778950345460134717227230894151693241656899148253875439823201144044680262712041313393288216722130122313201574059976471948650208081181952162782706755699701103992348692438947466328994465521500957246983938042736878628711998719375342707026997586555598797335251882415268753610042920820426155867045979529374894146617589945853236550495641863129491295299306324273286781133593592344528815014671743910759792167501838016854638225270989028215104563870219222331362464787602677246004753688265411757128976563739856779433747855421527536529911942967330210832720178101152298569583933413238138302794603053187002166719810136082652711539116258379820182901694580660677905939652287573879933130216326848170871071984724162506184144171914069918779829763834676217592051485021573742676934208304328355868730515009252217435957807841809898899330317380753001580997259115091869668577435962811465671185439835701344947804748196206405497801080926313252733158542185178973135379499668550525190142069258018219623755869020020772634271895783904694643234899373927506854015518985923662797991718389836842585920692463095596160680599371110239823114483259769747165029928661063362318405007943409816216565574437269144624374119463198249094218579465448102821512096195633345085126174287120452284736407184313773377726164257898059168768077830541601007003459414416927512476750867714036719474035517437453075907120124071398249767004366405985902461814578145837982132331784668841596571637167723170941878331466581538480309443220270951608604647549546108870203249234427522087490638866267219705631498762312320970342829631305604808549363913602396021499798854130608595901631332337129043404273662973790258508733309296849317595555781398928897002660334893921646870585150076135422000752541274286396328840486920587200474461210835746506593993517437395703059671983735881155974127327882461214746226969944691672870048060758080572638483857584627232082734605808781847704428357255131581602101427306379035831731727749195710480231005335965604229510831382822558492535088723765284865599805474901584520548885692552782243953144689672207770722593886638591771715164469820498868491784086983783739170211885881573110711383182956798208331680955567835005976845258495674111773487965573636071624016607691901712530265434047066004999096737875733302189851137419876229693184509760034728907535013983070807586901010558551261963908835021559264491931839077372761877849483334805934314456987773293417379045396213523502019455243243261561981798406075569629457447186857180855460224959399698774697848142419752451056421293754838695604522011424375888395480103677821667829292121520021661915026510591093125722771807782869353243600851055159431104972641884903211892840530084561933436370555661803659216187748717633805003766239999939036099827031360000650103514840034579163050305876962867306692043333856095323705546016036901679951170546684333458484635582237538195911925232091014986348273341947966551105552514486647819210136591486868494209088201591024145703862261768093121584826033824496459686754759878062873031452174433943134682050974137547114116488699778249642366852944277121491339430135121295933303680358366831330226744612938752483815630639578821114465993914908346936173408739558531852013920284273988126717839116265470959320231172197086515350893388243822622243933193064436440808385491108734514999271352120156894234278722497229115004705042979326449307408235275597884770011453324901015638490174276802746973849739045252236951366343147383199498644679472167002318008026015039634140574482829567209096982149145792411342731723775589538468169338104144257527611812042805882804243912204083733466887714018824586030860002782553292347092556694899795752240944546395492679388368757126727541239781899014067548615370907420992229798104240823634835654885794269678847561642587965939010532882645733533172429906376185637866994868513283009928266679210146782117649148086116162111348309888774843154525815005037626705469119764908222956534044744860837177717127375414783524356086120917259751959485635507611460488329578800034881067403162623855301945747251564793114871656135195801853746530204375543779539004264673498481566148899964112747997463747575679357854970381507288138883026263652078890770514786986046388054600398336824456790547746707275856393945436414884868691959011411541113003082969877544859265626500214636943554095820372543708811568142047497121043135729477949796939182832954985459514352475638312166344985369127200073851582213708554929937919459060546029735368102838148139730869368884449080626184294038981287381947342390432524489009494617119514791206105994536831277019083421823009036461337128829991408928158014773403850960160219992872466719466709072527309000067176753635713011980188185630388841938465596081754190973579666519426282389376544556769923781138029117376838780730905326673125302893256257918934015615407587436967461251665316624304948371490974843618663730921275907406274862447076972421217552229281981558488728099062103574424823268794498774342267749067020984591643884883565241059716862819990346085858174313271343259417405021543909699404212783839859280137180855757430544863977573741231380246259688876707476698908277600205820899598626003325935972289013004224438006914922899500016770519333870376542562255753221997247310503159686987813622923134916676364346534887849108618402143676527531316888950699240843048867878880638838452342946605835274820032944331758512832938589308411196659650998205195336380250691995292478845174932168654667552862179700591499452015674148744994177328192049993383678860920850847076077690648761761916236390135493026399670560431466507910066195358817375164024364291433029198980557002630202235394242181870249044009974374270207701731180676195347622983711131762274838427064685029343636587085172083502547614844119571676308614924640178979465410866635810236203485426954177515731852657440714891403263168245581108236262498192926072110028201467387027420790202209366639345672600368883103555376987012098084757692560436281337070691770685693300201013842944438590277819934785804823247981086073882510105060340589484075933523707154399058217945519555498172964801933786291040391538111932898014916208403542932826659234406489840261304274627262074315994860711875119307196527718234813007875817165765830410201174903158215300461622520325846797016209582035363671933830125267344884371302816312692765773027161047554347678683320840538286766180378509378944809560765420489007720560416610744751251836534755557467749204739258472123670969112904898931860480896996638195362767588812442502383895717922907156998972180522682981460952338616303593589932065280358075867831790722562287356457203206970373411368531767935994619413155225203080669337423515852389251190692963017171380927714029420449881394745970333068991369325076443101905011437092410622083526077314175996111648222403106671800409309206077960093299613757705033663149848781812081998205471131924950997494651483091937501868873833710641417287955860361814926333271297071626935146972119561373159258411418427387387519734989913044111560078359904490684411028297402276126059387277828981725839314228013587644491011487422433650636467822921010693013331791439789968226109279785067947452234487914033374487811959951631080661642503231740459753487518211820597858353747186005010032932379338942929985150893493582596588455090290373508516497264773666956489548235717307785924903964556877523512709878944844142498625728188495311955633952490707641636536744417556117875293091841633034188474086406603458233624181546273179408260461927933410279577974326760008994527287397472692921721080168670008594063337442347705046739955387161566652071353830895367356572928164306021791472057002339501775311104657836193298892958981014370723963789880432149368982258561130279746544296918977427567631554234941214041515028256858553132933311289963174049721622202105713843175481277082261337630812061158734907811435378577228722685945765975366358150922263051276871429217596818314847509990387302839745090492832953840819293337138054978218015471798683486898134145457467872160689049109698584152820709640072620875493475197080670674665937814164932110393634455307971262734394172942172944386168217107536945790832454268220155836602742232126041442536568096354180021044697014735173925454318743027678212104873016310212353571573665490613106148452289830883774702945178519055857421897707838293828841097122984639562755526539775171520980749269574473158883279245521438432410067452119196190946564589954454879560761688599502287905933397731733577907376739579145918095368960162757863997962569523851254516075668102663282745247645134583532796415516973587698552998278991850833347017640699104132957711667145055147283167444189710994480897532420301020623461625592081525866662330548118440383618178824710576041400068297908738277878159664669753227764249467169228777533836478968779633394477937155933383762729402822590334994881377581941413445567197399027552013221758792682511925540523040747636553390905210529771357163205539053601290178839783315671578256159068647427436001597082158952658473973089411729775229642007246092927589593030240055485750146946517740072341770511190954973495776885260319536267502054111835418905758928158961678397794022564305080115377735835588270109704577392434359582218085640860660243581509690897683089684110578646698191666186731642257748173740147280089084487288975775439736733514054768231825157112334984335519626566369821554016491286773826988670056093639032725242741505433522578207574970293731085660955484935746831325469295012620558651427468415817250790262752725087829743422994873852096325503170075633115319186402014580107851451719492898899723673059440732211566061876519735317199796803897494693401950695081902311872918730808131506267999878313767957344481177506397543031662090424528180770580985375150287490348699958578273628078970905426252736212093502441223112118560090290559508865861509431239002148704544685013807444408519063248018071472621117964445967265253548170032499924616612265886867809197448348343790639994572236598050424699919657742001628113619072589937006455747425636809479429423941120944391625454502823176962310937942176303728897757841424500885429422335552428441397444778142122667078497451817903623602052588011697517080230297003580761963889454843998857362526978161222600572307157294339007948629263095956719274966654600524083445705296518525507018350465963022373397115703273316293112839093608052307998297039795814851897199452199063514588045629468335166776581383449521097049294467417511062794824073503434088779496666722180980036284042249443301302510265674567568431783489697530051072249259275601788186933326912624512644188460243522530974415845350837414936653601263114634034617064065672085409472613978391594991435997224182490011960122878920133104173303250150192092923909882992535502447486212200477547406871176874741420623726198140204453139977568926049033516591350527304603428622228253247101004092395690520652071306410913545234705068644456096779350467063250511238371397201813431634580030346785838417983893616188889725882367432973590093238430552460781641913922033724978050764883676131600336099451607082239678980449667876686147934317651469409959434548589019263025441542353778423236936037845862942521686815572669877002622512896758677401648453853326185030245549084295985688007865813633379977696018529951905624044622075311843591771377279932627946350279468269872132028496540469698740788756716283467621144388059701601158691893892167146054721937395767058816039486108742063448292654233671242530451850574923020327075400953506299511542368762379037460292242257588854767134802676751023137565364495804554361522183356690229620181949212759639282759004634555597541915792212643111300503058064129899906200635121045830723814310806587761877692218863574181587959148094290926658586203577575607273716887062657347962214786006489300093339695194610878611280378343391622673320721752326524990965802373979532775452193364274124498901646037130757704679673820496202519698085570019487720065741055234879712907295523320646548133653457655016967662314164676397088409248458585076418741257879957129434920048298347238082810089357092432724263623616250876591040114281008652871985714128795104163952978560841346945288054751061658641472071487595926838656202107691159444143842386429110380430123114623283414557626850613965009798518069327014430730522913462492190492403572886530503957859362612917381469672587781903317682627309667047760608072623969262671317943057012058359510621312571632923736899981807549114451120934905205098220397944427793556154617511573804878737049026062599508282225215016660434161209480344854960302335835245379381906762418895178310316907491597372020857036206384901352850276515791127810578171596416224523843991534079134614232112911930546017214153419795573967689636070019027669739550400964007285785153281945447671387934565947929885863266152734840011185619315032603135329333779363967748988070864962124683316255805756734077435556149096412409934075907956500342405817888325638970989647137483523926026558957640108952901572918582111246223725019766722912324475895353576420059240997795504868258016427716734529238053102669644843878551973202418875147969222058878469105790041929116399768160707333337698301777977936977841032764177270314915189072610260308839247252933830530555124362485334285145456724626496004178797936332889737857482457420739690826243662316368631678321888149616954008314624381326400447228932788159473965156550589756847785452775771411289288913391666395659594808574105670549595031510592574397395760478456596408007389523414583824628165176952007880328857435748239383326543681821904211714499243016576546268924189114945234914305932988604254895440556995212377554639220538752049437978454485749203559468986622859935879384660291299132070585591302864122888836628876514142650289830903893750530316054310504787959387181387563203691509049997409437260479442207693278315946660379097349489740577568311822018126086509530470680603450567086820905584977394477764275308255914317425018024467188030548325234139206207816598145641811828472785420045068252434309700552710673320372866954465745909059510036447881164446456178858694403906789526543752232032295249071955500039560835218562774896258104991423499682376483455851246405337723074619248033140188196104351686301595413858257598779363727153135175696002936417974154350216830648392928052073286478987802092485530327271900698362957341566273009013487424992571695541639790863871071005287655001751014572708520901796594909357785911868519595341570854599950667361770951403255198826956985399653126250498951869211273503003451524600383615171805810689226994992888678509284461711225665343235614636140984048789388948290262777294481165649719730547135824309348270095615170154130327268215742573476025456066577134960862422546016387721907950831585688969849578312257728152181969994738305892983615888192340842727285467256892789809634176458659612937388453367242877319139293001651186857474914593968577878129288060501450285626408921894301727529906497360365612801336166966491666249079563285691042739561880383783033548871405757929273078845945217620073474247006088215647717510233771428616487139640015916371531271017825842918846730306598865403913170973436734543483235555236627028099844814411535544182987707772009303956034176012959468913483599052369252170035636026711833116863050238484248075831984677115945949652586667360296977974351262548450648464775076286309286795442175880575054387131640408329069358403232946742941767591613281090376176552759976482846203084334241217774540002597074403674280478801870697531134647922640531793498315780951870703169044131546673684497017558822262857213364332369068335124781196884564142369423218852496500944688277938798076340370197129080651442051861411065157001026525708781224259990967919404717479880934450060942819453060637246954602965484697795896758448030589300893430315374172752244844086185902669260054173909284244752861879632315135041779647934014512144687465390753111677568762781627634864898509434064309826894099099145883027935543125921925581768509811362979250444748164745852126062724217375893720065674770105523097017299616480864656235685755048046311232413557419001354749577744242316118990008470362639225736591370282073998320520274303481967215131528254024502698780065276127523790601562204209113445471308560229085281334745847035956467059369191648870191381535082093936128643953802757499387607770942949924163313516800186379612112530728595004212359132125719717999002769139619638051891755948407078960441007057174911793532058947171935830087172301412260031193693120883200183203134019488027636667744844706384131748120679872027414281975305008155434671061381502492634486866930603465185459415555600175174736821533922877326211149679082201671807671735243031937747807333991722894068594896696630561472911184212001865919965520551247680975415144854841539193591831099973983738580523931027232222416861503158210748555218436975637834962469333027454649096097253366225417339139746999354926496442904605030169564150207856066300456793999460939278570078267302916872831244782934987597800430693358689462380581388455577007382447510221867645745612302381784914194331514941498992513625432810501805212211194070694085120617732607922104164958449588855458928612774852104261761433832691652438348400002761114463707309779849606547379636635029614345448257904174618386625742480619932566118510814791578136139538788262157287099724656336423385634012675939339307354439242786712503227238130887417562101696012199708581785511046635290064249220504851177853296203908033569514583491340282920854136502597951694888661420703151137996930633932212965041208959002203415459025229694432729544133258007195135390105198059870796869061041768994992387948116468675267636176351795410543023998492505648230349042872088210109853772979141876277590193722016168849777957812315763483894687323538106255482686992417757862127685385845542983064193847028763456924911102153934836048142199310090574312265638040349208848230386265513502561549626017706042004548120166348399179876140243490026373782837825155212001625744332534745132458657638620188776623092387448294401015254014434664602103609284891615965426363050061911859030887161619673933016287242339840380369906637143621482071575883997041872019412576353666331358286477742026799224052495556284505550417036126677452276190149643626412629525500987929487463091121246333454207300824636216459082584877475698126373475489850573594855249562613048625727435241907253409663871832805285144010393748918641998368136786786631452451049912792910148316937278881265227298927817538798788277042717732125136561294656696126558517215125781912051623001611851285377956745919703428650011694243864670259183979842767211827354191328439966136301982296974823779548670558574974922565061712786793248517918215478023920899970423264722464707448747063637714357273325573559161889559533717417677179261566467222820284519999860619546050703962802532370979954866240033475846659961602116646427253770297756919886059477575186045792540194501873536565481347609881828618276138590093652741342905362520153655893788589404921065280995063224362404410361717849829024984529097429936267924331043459865980918199710677850659570210278329831115862689238992123737900703917188931655846531639347665976970768875065494901714820328656026257111239490561126254055656104609827639173636177807163197301419400886983423171120685107375134368734042578846421309660182229066734896895187344374321153100134058711050647301493806345046046891758603060514498877557896188236442251198070245871970879756208241425535174911791023879097548368801345090015928785857182684445836332404993129371781154903371534678907624962513658647436975208420617809694899116460669294048638234494478604449089047500933131325960992356085921494211474793007440292879836496455602156414356665749862466226976176863026791107137733716080031835349783082916853990143032555609852751623323664168347958528870346615105534914349567787252511028666540252662537148152963738490113676013216188680415636453576008439216650135946790087130681379197346616144572869789936149421764229525406001211443881965441841111950671231491102329340047862825968026015068960638089982815808279709424626390769615635579909422570053141029806924852147986221010250205091682688881733910429905370139814938082202244261001426016420508033236513938139947479778670713689536550799914797843240617640438661234414896815022256824402275640089234915745260427070229128698071854874200661769562897608641983155179127805241248782160653141795298317846384374889700296314205776305378385312029560865298859786578607555946463072538069853385271208949197999134800830543354498326638778745590751714754628053883602785576918088098887542906213282434514181869103316990494572475778060070476742946937250178081065512022084274288745926719077680808428346015132884768556991448605610977908743464877099175451404612320836578170296748322992278724805345897570916620794816365269585305166237093476490044026212855658327830106966491991915836317621639877342394012075708017739555546313265104789559490232182138611523569379187990455983787394010897987928004933564902803750377851328611435456872695169483143151956047360148893895601561121073785028064531185599085849007841243080821540336386656340866141754408499933921177299987469924785033012689425672585566277278033157976176486305872473105210904509317384665623893048150827995775103212637075612549656776544869146717191969475532928436860789421364611662332222800780934880336429845245185280171847907812572754639313389722416584729383079978417642062777060362295341126875736009918791965296302696806297946818775838376325461834368847816017466799575336684200777546118294203524800826969514588757447589875898601142618930281718938898280558314640751001231314771645432820175342357866064172948189522383630832026649800225848384150291833590001001981514056477120140841671984059777693221974084754563005401684480723547814048718299713463071156684584842599144815633842472168594382765275459395765046278973454394607642351106264342337158368518443908027107261777709677804281896364100948953374173799395461623027981086220032076751034251411273451739735872261427277830685644452614310994117773104300419666608123639134010541235037896319801333879684215169467251238079680037898157445534269355944100992866061633161485672363644577753129904595458740840005323680498667781707598159761656739763577187028194695931623734678603165893667508541292460889461268621072231046151630452662538204264462422411473322141220452289156744563867026698503687664768617536795112977646287361125245316019907026456864273968824654220919503008664703944399291059815882965155452942457013379189315576628374490727555414872298891704530820212465103939735753476978615724644982149823750527907861670815824243167841609470690559433122776153047465964989847482148696056330741746564417980301842749836476560396083270803052858018730929042184970137630269230952192699203533960284017966761169492156456114038864650921238419535505143210563162235640742703870085654644067514690630543511164402250112202094550266701749405611494033873129312394819363116718566532833625253274384556719107387990057267374635565539183882765981079139116855662525721896850196063504105852232269571155113945377507945762746256610946921455546625793455837733608632189589712158524812253426785048597627483447584665809379832834906544012635181224577002201301917831548471516485922985663543264570533048370314561458756947380484706788237333149769103923869595039658654884847428439132247580457111559641877389372217072956389530304447827135183932416749461414397384144282978579180897632639578785405624000974724899005965900836240275527823729685819062705848529001703408828545568460646299393670845525319184949690551012750054988553594507589157667662985005945242501115190039537346777817183776604556106196832828115313204698850339864236608776589048219292664305343785243530354150454800969374526180405833411691722666713669719380872278555621091153583227498081957518442742615969180784770964379192927070064004899508458975512257655688756016158921952512935065218213805547757145398525184753046869839146472336170664763009526977047873725780792977238108145646879818397726750034907614086025000987635871018042075841841629815052059717072868982469380073439209007164207157279799022255630926121237327055968544442318516485858306937354219362917042491577190019460380463197592450530899700142247842503555176172177480415038016411058553080160745904052681741329172010888962219800114567009220338783566529559560510253856786492770041623039072989094671874776382223237458757033273520553716109743954752516559500662016124079224050083480144181214190059770046338888875017713084848912716562786770058278488999084708183646446521723461174138979412847920228395504212706106630064177784486298548493018541626640495054828821287541107450864402780362641160528924985209647306422838753965340056667630894670347634537952185262059157572708300084865154697822891229442131764413218385264927507697373236976939119547655880294243505535643163509943574299100832908331328229339955808290451806584155321705046793200393375191838020075219604540862562685101945477490521240031469475251456913095455903002362735405394592228194415411275942562699810027385455747850628142565268659333316699818993708019896437446693827246425927288226493858555568605245824100880380180992069830918785021595136686011035841219365413002734935618317732278644787558896685516249812841288823412287589819651157231716983261238726831797861774029938158884636270318356057983148450391998475995839763507374566277893707142304737209898070064202824381938801078404738251125042041849649212078388794315063598402832592625443159273313007841668343444885719004536006358993215475033014090534237135649659646935007872009247618100477456617147030972155616874063091719387687220038587437043334245349479793203292423875872185656390362076531397233587919278993102014367693535102695386018235777939549553156516251708037222904698725590135917570443470070451232757715386495056099435294700828011205725981252393128257365778134194988700268045133596327830822798447549452117801126541498298820330779889741323008363106718243118671192121369705326419727660445608877834978077718433073976478960091886680654581412543984052410649850827956154192682137292563271898706580755656038745403357759914692032578796597273475003307093282252034194919870525577006759805614681230810885787887572227525242391133107871180558994884733066435240607293072938459662931688917093780203196542539106641222856726826827365857214275698986625279516128897112273925207213228870548028334574364736117587878455582275379324588889776065563874702603515884439347602216815535591233673970269755551109615296842430255221382995583368237987609209977598256857872924734999829099965799802238784344255559557550647525608230838790007295859486692930752565820356320424156198564334357426853358604445277011159919561744803351746616154160915528090261412798914350365879062518714855586835651791775451580585844935281349323514161455288024427717232225842231652858939045297827375752049202497481838813617453142796128470980308956529592961554565971984740853412807419886247387344040184327074396207089105041911918200252633612997134624671076156518147603362516958200927040016639956515257723500849054492419380038909527617224332208386369604401223802204635260519207140322104645234356809022741258120370550511984211332366760334422581801206614464611018659174066437007398609442421197268194959757560021254010456230586473293431123532453496432247536366120851256832277610910823721686332034369564960142657981850786023629017660041138664712400695470893724795915563756441883239875220477915356841268915010750377560515251602490344814016708506237279267981933124208227949599569842791661663272389842640143577539548926484721441199413886897789707254621169302824955922675099252554721960281659492173973373555295082776923130379531874266132708006773080559182923923119667422046696051654394625475041218947828749067476321617633922048620917881031669480985656121034062111204863809407179246535202107748705742741433893944258111031538308954260501322332021485811437525084951953217528774796858749439173602537712835498537039031697172580787658235824536805028579047911841332181148882407634040627910778939075329674370540247480109241073746138705616489718088021084671346658537242574762327316208763762120854998733110606348861051095166556748619622453288056360038558153893431570711878873934246387183042422498547443294623786768994333788058276995959553491741246400657040565011982631958174067759859979299618301738037505697939589952223581537506219433454296000923620891677836192436189910999584846224978961094562801057685078342609318836528212015101846706816855470799108774882776530676626428423309656397253038239329499177826438333225113259533191053136073058093516141587193341017108565290357221401068970680403207633030336108735447477769826288809886719910667541364740670574388408240552436045871395348365417438253792644227763607639258338984031252572195739593238330824702593282781285233725845361832052736542191669720384193446242970190988212777189932395876376902888396140844768986445450992206356186132134856386453043004097932550428442846777297702810017653478440630239845621199896527137445681114251417109409972499129032667837519851850507056002163600912321308566595397169853473214036865880334786234756687481628496929454290452768883481461725318134681257114390046202454840861912504114524336059698188416592461349667092542781665705930482915595317883009021774922718256295365245695333810513333398620741762354539459438887797692504248153764764990501643353717998430878698643773205755511242701943480172717128157058368450844601728332803199534630259273205468768664102733256123771751085809662283791810612545720535169290471899403603334058134002749002570620859161930252767626222728610168526506118027835011488745023837921123347900002441694452052531089601845779379396457909696529737543471752838813476601527556126208573320568375857142793701622766997775105346570311344653112164551356131510601904458618791957473212509872117464834851921670575769112531017635855686850442121387918109183733652577305476943230002834971410452663174502625383157102556216391004163362827633107909045956546469563704024076412916876446684292482545886384933596049164377039700598287965418292370950792320696699619191233950197898952109406134436791758461842436825928338972320303469757567754773509202756254896954473784800918362427211033749205116876730078258923865453819125297299128225516756650388063857265609645596102321770724375728206899621365914205871483672723003144346452495884373137959482260010651036509816163681641341870778194810478436489696062625958468762834513311785192154042958414331579487921507703174676905437248844232785826230272426408700999933768035905976026507054835927072356721135010488073437512638822293487312219489144128206493657076426148527068543777746610799416426579647601775785538253708222235465843773646830508423716946873820814878705406338727287224408235445569347198867974837876687581964443558601257267716626239794548360421568388502135900780467257846040055965077158360755595870120184552677411192608975043419899461520863651319135629956816399683258163326715360562559903924912634378376266463562305593275052777623506480990652701393164775223902948856499203493445634174760705024201670019316231027116340864499218566508483861614144971629620286635859687381073509786225779409532833679894601652900155221139404667197450093652375580223941569026963677938390654012720861197463789885216435325413260522953615736326568152240167646332126446248549993266151040660894633997446599819500984341320553891049316359705516428110971469143124794959207241936185996617306357386306039849573185990966070762424801332943632485864488876481938090232789582869563601827521787052222961481133595557778167724439778385277979107749207168755536155680480772138064552164050991328053071893878400897399570485578150768695661231382363567505417667544287464863558838714996133032258376866014763044792003432701341173765227733840340166052962317912279032110403554690867534693289192423494542328619909979471421756825699252534276373577750553572768854959810880464408300593305318811580182675436651539403702617940438247297474878551457848301167104438195276063823232079378330836780404323458299240812554810072721603677350617435706879465510838252279536013179064244967350712567809653918440777604866153353026613312250396025441535483562960489598482322012099670147263156341118153795684509243184270110274547658878871590176509666216523439685494666372900494102340979340558005283987161310698109643551807835816412522850320618364080360669057783603484958521071786194340643473195134760678566993778260814530000389228352275459658524603314580680523360242827614596331615277948296339225835528210700968294924749269689827525071339004143971488252302820302632975821189836220060972342562216384858999072423427021497264870153873952508338954222546178006662659361199307401647462880799960617680460151994609362738782233584190520245144893916426943383510813991708230148328072441748060083743394130613716961873575147439904611095564343772846815581816136569559709586814299504714926557711592229498366515289642281587588535824681747016813874360937484281036649594764389822767374829853745801299632089628193233420036043110343602550008318459593594276760843597830492158861653256856516981415450280922511149181302147373899778864568651230189283736518100127566564064839871458582221166217242033696994918272546888265602804925493276038490693106783537999200467664290063114770147355458370116979894114371306223199325282500727437883867627509354290990534368146353606127005497923053222984598766584563357880229339550995277466401417178488625690440972961877149781488329540368442348795871047415240959979089183071908372962434164028957183127857495574220762218235448781721577345003437321544103432865292849216759267522506228888161914828089364101017688127779236428052686158771754268068535107474907655941530553099626252073994605569181326018700200024446253554044629935443675390112235934885972548899143135610872905338759922824114208616823357220992491967807648149680514810201508315065388133921389308974345937304056822324473017551126370365509574438508714398242128363416395031355118553424822454626878378018686824615459763207731855434123600995092990228153509273612489281320298837083751340707397102746555811679519467549092165643910678282116908855125954910203858348869658331463242225219497225036210290482178414358961506091581643184393474788410024495749762567746735279238882731659703227574339607674018273290768998211584355650053765180052859377057336611492441550541357315047751259963787118764534287483937732619708149520734218714906755321610831802277175389303917635572491672988449110626063085801813755006718275031809460501870277528998439286412220575495646080666554717933214623494166465266773377056624555390753833819054066576732065143068861532418254875996311990812081594161248122567715911780398600024497698715921046636111633238401784310565305267602485642457466165512687949246534907660467262365227036692570569340492377725593244216680530627101294699730847535764199861661776182541349046652037214438144319643540288221769195023876187335843281424318505896632412464427965416482156571453171569409051422771625626754925811396675314993733983780043038463027484624293831515202758735719994450976923090339497060115986941971515899184189257787712036389393894597483890551568093059938004355417118316371703971891503114639315652846239453448251019997372774891429555665886124536006415642439793929168619798983254259036094100966001149871684328166409144262373149463428196367578156421204326465985935576793603042488762845385674193210776632733468501769037720140412987762134744392574293108702145298157647038930187968662746650433406563039535922210583759736017491202928672816779214534641506748302759266488013928961524886039949415345085454368292026521598614066297842069463714590485881612836274703270452988959185984270100640562552276975936523897512828769740989838552618065744432734748546928404958824450012306602061901140468743690506002653000958752797396728996804772800879637911483326777330702696100089783402588920200131639721865010292225888429582071067859750943590906201270604070206819353398041437282096709370697888261776609145557400254103918352790779865758846944739706269365631800977320023355236913609096494386296913427534085492569663727025236878470233991037907840563333678503782945004426916422285213894374542749309086703051691337425119878085659818510493930771558030351790772109218473517792421521104782848139545279405096619176751796307702203948024660746329992058573366676188427745139884410391750553410933768946731026542927250657366606782227339463018569332810683146731529390423053085088066477706322758158056830255515575884299370589902842355668033943034467110905802052721992724919615716244888617930211394785800090758347610703413458766896057706543932872347327889266239285377469104223159155319716499967150151131384097911574509321917057402184255190255818467400135691695364170110324468234484374484762683113367740487971339312896466701773350326514481467563404036560726803661114519259381812297623065910212552401520103236044906313385632026692740176027891536666263571496668736384372205970352342861370987473624860602904138115539044214680046320678836432714782257098487234472704411247187415652800847083919544935446057808473140233764100114166335269932039515413143526036643058258061983893524696642461504581166201743522133032802432275958374352433129108147953517733565566248809083951508661229167173842167728802657626704332028301051123443184915806640127990412465474328333839929628892833747070337268261869919330009595313616520851188876335291514128029649816697006694109932727386556149698190703389568477471261420169954423411713208734329158467573893138441252864027525328754767311965824245812383430030028582272768645552947885555451776506172235844250265565954384615559292586452168959834292788605556398076383981154224482800018900411044542199201948368658211691747706615566984539078388487736379762795690437433615189888062200618146939451938008418830822295914422464229273879354032643502823133559596649830914529535159171267020686503525754246915319967502494737635652309960822852925555992097144775587128200314545121985555317431350321676909952832634470062537062614145103209463467561883014600575980365187059454555109664582409406667275488193245548991734475805714535976306268865970570485892428483241953680669390608014571834425398331562771410684616630516922912345627974609404123970698608623052222772057923343553652221268822850977652260114162652829797542306301191769493100782749633284354215763097480221139361881339939403195994877817576345229728112837752739105876883461602218557104833296802061464813157453233916663273283865497264058155971437687099924114943882256213641142889425811980521901602022013859602334645458801339708742814766185961558361472605885009130217238671642253592967565285990389802791185029343854513409213186196195608988517743905296587673449182278579881438724858854505775609933237705142492496911474170271253992390599133519674361068333085156541572128663502630724182674609503812494194595199547426605549844849468782562086313803821661750213092827524174328133276236553357720398190932340524800831969426645935495681256170479612659941628112448716532021727622713904013789319957982885366897164634644525788969116021503973067742974299929444969047335552121589596646625017450999522005330918555790967682560295262563204317946477564229663663831851457992350062940509312993930624404526315246028389079015358277015452616950213522429143086626666952699303522201433538854099122994963365174862192069620245099163714623705639866388018504351246073534918237118663562172129074386050878527824877643989541422641115319606930914036560486841783836175417081975128395603309051758499609682821221374820653942846948294611566454363391475901456942014052150548896793773597431361574083875646420786901683397397254487761103650326140548807166354539744873578024917631683684195872819620990116470830973695998268057732914392043783408737177688645079749161309905847924942847220137620500331633259112305222990540158977339215515765924754333913497323904574900355443137677479617737759309945535718394771059554646810840174034689812231870668585704937474399666120547378108422673368813181699686654448049262705159565138349338379094295184511195875943512754218341033248858255413267629257416546844852989769529181986967999211688279545733404626380040392976523694459554284467188365676568641115123982675189696045205230194692454051290549100280554180337570293574173909618128130413510821497893203197146513978984819766586659161100269597205503208420170975975877642463707413860726056975674165171550154233240175415647169104947415215706957067141120295335021839139623677659071349437119083663707227387040446524745994621308285666052955619600430295621853274676082016071964066306537803508795562044846889558650908668656239502520480781711901448668550318912304735346349995979675546956448099182678400788243581631691993783621640008209165416899735508101981297027049605901558276144535521403196778552766931461903644522727556116312190801197283453606121794790148320768305445624560786067641704654532337789677495329829818070342981231074683011999502602931366513719967856577820395236525743601947378394331134650673155526762504717824553081619717323481724952194306854556913677820565494275987587969379682186771564020716843197512994909714750935498241608739074236503417127349249745100660251514442665998535199052818612082136147412178509892858217589970702429138077903873700724776109835026385654512857374908156459696149622660667960061914200874016781435052331913551232211614321262348956421521252881086402386908215150873324059327398546374175023948035077967957324987643213266286744820656055344899854166548537732025199831780602713888273022682502513471563513952969852347508813507131796757572959018587249154908953989525409461116898804772245221271571995379525475018061423005191576027939372843176227108669573028484291841382565942962134472681167929038181516587269610124892147657748154001079473756512110184987160274189716097335218552850534289586318667185370998109528167552110278162794779053563251116598332701449054932724020829181513952650906404050557772622348248329867267020994397979646594079817197604292854778768192428624023646094949555443398053619248453324705734934694216762093582978496286106199985131457649135915041417206074225072139331463835357454305774449966362974892331854876800221022429044516865607231158157172399044797877988019897789540063623087443058147042728314298007776939165107614776757675379398605170841118395900908583752524784420221276683986116003486257381177675438644231390197236073273640078303334510879332603002043950291166785272734942970987264011715738672463095819100135984314473079359962895080568271267231952883002433720326633231934323183325836101843210479049014243752479602136119449546803088753731919886000539332646231441878865609122806022642302171715037828238924919435481985780536891459261554963318840220376391439496397906505138304101026585304755593514853039783545885537193514427793533587476039952186719986400310771271572795342533633591138357536455098310891356981372333078303309995680032735282693790133146083261775276198563132639791981406776837029409080070911346718188524799152608815687307013536682158862683058138502605923940618492992784066408776554328812126585325651838942039520743469072806309828664837718151010020449398801440819236199439397036274117599746610990397597009063850423823517063099257561518317591413594322974203807462478485628376041132586451255366594884511937415423941307352058374283170391169437026509092603276890779343265064271454441542873030909077659143258861941432239044842423897558440947160675736191302428562207652261086072150332583932493571545996420297024309724481480694024990661579097591521348337694965958722949589029158845860638443233560945400869851981848234047893226958022766794147705345454829560468510939070872561162404972246837821788041565439056112560551501991254711890413693546009733538800778059004193171004203718207777423335099384337090153774229901741491973004833652571793316326290145157420630822282848377264975199139005980877048949687901772534384260270690602125550383198264927079667741539093559660238917751474489616854766398539001846850185562190789075397711907513160037485742442312990179083271806514068269735252631943528267556345090878385475919281052471972779016784684886433532875908049802964239113466013492684843950701169374925935230415513271590706648862211800486495604820382602471719089226016426514876976677597467662216916582658846477158061133205109126052490915161062150463893460422085991118614044440482043127294844666169813581752440061524338828040202629281381840450096669127719085582261850352402496511997621889151916648828047340501703967708685801094076733593495245488076047716146713551643765209160713046601628469797547630971269593971870854788795650286290629106825260854460444706424449197285866732481315152245233814213175538670618350050154242251474950761549610542671788835315510039110506014969946603007157991767901841040463020690336167349335706499292397302205215367005043198506578483717296472189748196011281119473826364857801146973818555670863781986568648350105060002227048337587000627379507956045453917887056947978426705528628681190950186061732389560513515612158709315394956335468216834924584877211312002278501239266722587148164010586433374077583183128194373604899630341822793174328119596699236519176041378585285604873930990583231306804471488841476546249795068757181334010317696866635805236941647834567385300302445017422738315580631436421057961358928452008043487684435009644153019213423430553933135733190427081057927380461747630232294870365719411694740513207136408661561819131813039779505679859601790231403913752934699473581112868254280870873413515506557862090787570706120918916931327149836460566594665257067969128787241022236151895684662226364663520924809653282447988130038960187128846021312700955705962843940977888139264311305676162619140404042792245236990816103357334850375573405525025582282139695801154287644906610310205433685031677681883424622867129380081420411341264339448526128089911252715743920808702508460983740802044001510628067868455375947213714495536851201091076094051988199165910681336853684889092803907270967318663129648131971223023343469956690364118860396839431758929346772871357883064791385328754856937726638280636233530028877692870852813003821020329189804385946108568033296936192437060256816794095859138645645719331518591637930577758418499137609290067855165250817780307766933715948987915497017654852225721455981154966880532176045697643984526340725399439735980630669221946802318848596545714730114801193891125952028617255427363630749101446024724171454924119484351359544373215831452519992408994630281855207732345691264708314297187563663546115609821324176632245348199637015628906834938278341763013120705906163320465005266803382369679235376574647950837360191253334157414068875947789657063043171475977476817453853437155353120147349483198006604431093648580862678069412349322257356727345957289416534285609274686921139834663148566691810921257384148237528065963968447529091647515584600716524253875220347982171461074394765511819230602914576804939806678650126339721259086722126435996933911310068025675929014108433429495761282128687102436536099060545166514846308437349373758887948916689972849281256175181227894506234164747645491677433450126769376256170716108924813901118127788732174104533021719281524557145396362979843244802664410917292707419239495372876788467353155329823245723941781336684325017347521074494866590765149360306693397199696105988787369929794298096054418166853851312482600633321907637538165203962809182665817983744331552672667554037352759347713601320309861029342089869055132822670658132768568104560964780401723350849905924905079969655051781395881330503185529780938377853056982467284885433087007989721928178872562951797830843809822961396203809685722771994078848090746827744131374074044611382365427899144998407905656149355881238981279477192606035311711949156954825234261810295108636452100583491998419968812012410656198732315412504528771408278476120357901065163862116535777177013944983403467213462299786056935289793568843884213181273245397402769016933889918909775585335939816148294063471495517261292314665815087100919873532015416236290116696095840610587434498801950851563385597861469841764593834130995743645161378460972815627030491513054773679639189330412682920650975772149979561821229079900419822872989169861013141201340779131793750833650143612346932117854861403409012376891014449976283637902302698137224278709353153246125188372347696308348847457681342701080461374725273231186746348409491514445878343820472782054965590566235486568877306691167901249239707613743791328388240032056064435037350473286334810441454247624099020429964722864254466681449209617632237309697550375668588707919431153298175005610565392054324202588154927998680484243886526419799037939977546867683935031585824773450068364783586684113050448782902052658476998597568344105587921908674121787034597953885327038122499724281683993188096273273326175673448614424236197674190754250151305345883066243933061125359844260592560216878262268886311733175901874919551223052069361022623284487012491347036578098436262526551398680048332194731578811023504373901912008282843334746938663653829019490410944906424028823974139363609486579890808218775126902594836164280113426701106046512957025066249345399882486780730984222313479459911822570417221389371458143771145069614615621732156429932793617967606833604832600384434892781173296870349495426119892244661208815198727709401082741187917850912078788945863260896671011357422130154233439713597417745003809483022565035500786452825453327259489984765954329825917564511520727079464141390196671561302059032804289032044012970475987189224513024596256317630470897348687323277291083362212323199856124720404643107831331552756399427862335271944779459275727644669692038947860073274771902960575359708071925435756280720286672293475103145854439436821930524643943271221706790349316790031705781062902158614596313812571298060699514670741810580049742149622272435350356819721258564405275278931851111057371458623949230176602107078346372827020971331173656409873972914071396529960730267734247156867834965039134843849787230750112624751404953339698487482052746443762184590853434780422208796134982013187184981910606391488066579905563106197550439641439306537681739873947384735192251340688189773125614340010136511716355665596830128096852541059877310318588602707130274555096604871579136846196349776596386891356130043359328401301308502697786600098170744000606376348012993809814042492226780898275046864019304754952246990806365843091529153383605778503049815993313477239767101118862897826582215868209203084092111923829388358764099057747684715197315338391413112159897514770542190004260163853017168316158877605982035508633772800442227704091866154213857937424588495761501577202302170922153259345426916043684257633216259677792043167917602821009983528652354676217174168889052429939345413501318860136688368617967143927863271559749167938840684051111426121574370812337373033775223920564518640995769789145700153249182752886066845614488355203155785607803378503580674564264796605110700802592998960148256956105240467412616948298762242776028584477973337456731833743698752178645275134646044898868434835119017902791974347616581558142333134969542660840160375398652092322340101297260218142329393347162521475029238239559133938129697194502376572586094968645720910305597074400101228282848212582405136971870903480418138884074639587378245884105651719983700496641129691201466919880030736310488116098258828750046287047815506289183054340791368766999485667288660536119027638885470948334204153973366674577288872319327442621689056323799628462002801833061794199915851809036291615211198451273180846125685867071482016542464009324364142639275439724710988761048610337103762482633555161326457587574944536564600911091651724839884599755772944443545788717350384825722634034902212257547411559704124602115106020440034255237028096000672079401004199858610607901066122504258937768015007278633234589081979474680074483472951246312097147052517911797069186839688732084392292630012737940889034146458056752854288407414322781001014902831165262205105673727325961145892074432461451839753233137193899279786480361648041105033912551186790725436819051236106102749229250801233938430249331291070915251959460314469998813203895657697092877004972424391478315977771248800470646999145404463368459736092477369527877209923198360721136932704075572417170823096204888742347552572448375997921332405956027666745351554368566144342326946331235950399246892686746869810188349912713417540485591150118183047242815667856882999077909338955068026321175279442258563530469946407392223732438095847435559883699073598827572755239926595739655068395858150052792653295656793340977619505107886502498662165419063829501306032950681742973018305310609594484905889338122409508814612108101109915448285678849631810501671412000027195285524456917066981995030120669842656737769727292138142352081915507806778081843837379825101560578076848052202630368205133793162485839212209158782373641051935728946467810834088443026176558703224982908335709161552481745737067667765271697394309378475219640044200781162696491257427400305504088934381812654807775065761356599850943538034829378244558818804481621879205942427926938801361831998993925748517674815547465843015919745938474747354227982908918267308648608020974753847635400792029239821066775486028054743722593752200911715878814664974172531483903035691034854138253008795801805514252195470156628487740369781423123219429190066880321587324055896771369460731467953915119541048401054560417183535693322596942974711092812822837192006355138422071753733844168084630556545151188308442798566546136340179313269058754888581043048258490696136486441655057414607205438804966097668529827554894208887662141483303155900213156952041371678968342742166790785758816536424818819079053857789041516130989751452175862802031034820585721109853484331389031049908953054702457766410805205540839706365702000943543393436542703943095769620072812795265092667880766784295859846032705546208566058409793813752648775352655496369366436189690763611375909356545885871289797579620021092559564555456106945888647729661628703045888372066977121417159845276036969642782109032864653647926174292684734027121670302426194192679999484415134608910266972014471840459696489375996395843693345013730483623209008519694202301872672551334542884653533899097491928385541017815383784937749716947004949747785359878979578543910907139490547487392709273563306237841035108358274597581993099356763522731142323559116389767514567656220317449510829016669848515146789277584851003606623009836139157196890540934322956300251173745694710399989147080313620452646318356524043637217125028694202570394752523566274811185882654512035210947731866293556008834224407288032275338734069985716423396934694686385456181372186866520708782205346388873444282451848998596555206402403311501014906788451048922373378432818152058455818831245834038629383127663081760316087048765313248821957537995544012332274219966365375011551546853440111100306149628228717792217982028151931162878693543802185444622003433480729175417935937043489572981905725061239593213508737397450144084700227483060878950603871643044878368022326952150378439008484797195112955796129892099967096827830214150277973940746216718111999282459066043159101244677772591897633648862161487951108912534097140383199685156617723504810874623281039912226003240871677518923331841351632320008748550856042206271258438607710507836385021971713845775256590334740561313131342770762212362663929506061362407789021612322331217689669462766325468674421609269849183099638828178687186569510232319806825428226141074720233378475257325790360544641942461889081262196940433290788934551159546271818838717228325253889153177418123281598098348151438161036873666261092013717260410305771454904575766854985941899337601956351267854543071262772631200866241472223247638794342658979862784175773868028395067215641885051220677345792043012184632524963427522994398424450836707949365660230155928026533931130540002652743331014165184235004500495834702899127291796008670274596873566509679701081158835165552398885796993710941654996603994705398447900392824690208396367014272878990872074085385400427680517956051499090879332915194658356349837286612516648195918046066048152516182964306925252999065564595869295135398008901172786885330641461054057277317843647553153897840668072050601611184983421023060681015709410784984809247047112687857239641965920581230877949138482034090286489555846720472591364681822990573854034798803579184914979905525322273762148807262508969920748740005276465188589622377552636276383263693569106769692081485809147850857682998404345847432256267068395867821765299208534841038110543098762233500690744918579708910549554688351197573280854449818615147821011997289938882709490623115314434182228995689142704851511083513013253433959493214374965417366739062038977234365955341200344767676413826018534689481560460492421992988662803403645660883951625434106407939058405192175298046652035830957178614727123447174469052332904465731153689855001256962528133578356155001432340769704235630995846379846686619235836111637862275269569919425621007482160654769919099787032032133355578678976586269915993407395921561173089459768345551610183252144371476808325165758248577481054929399803623840552805059719420161969770458145388556188906670981018244618233872928685523021032404176246869507219697441030499709706951986321625077909753177451753446002925402724382504374531015132841950768946593161506681238544158997514194340123890972085212390424799170775384001444499316069795753342535764181448822566660827775784887098588760899548054277463921008456642654357439013926727643464743314539420997249534056460024180694265197743513906167254852469883808245680533648936188638915684882141793391760798579468115334497545928088920512284345396802198594741795481957262719057090285955192981572602207362095444079777569490322075989019779838909030079613864442911023761881922381811299178768828607346882693291375448426365777771469760723496976575608232055425376940182897864135853909598762721860034809879221344156735163074012188874259750919669886525566511023976441383076104627628145215640216910206290234201831871281192683719884513671043345001011691913550836542526758808460643551561420829433622137425745533943391237470297087757016076256745527372829957505828286899383636503182646236053168140662355098386014530864377000246524077307225233574690171220665822854237651490882925915647517247706344011333617456538551005111357618352934702970008120715324393702873573366460599277047519271743922354784820044369668685315665317741943559199287711101547646167965233376974202621657517708550344883735239723467695932877335135796937505308857392031210798889767508001313907817734594901278929125834623643843568902099370605889418379445124562542430406383196314163267655844936256572741183352252193692082508153183013505901280203315923871026568232780172898282375184383940673618184007722343807933235346350831650645084963871209068565372908704676591505246306173057162520266334542103651449693477048153206154957007210061775776872561835051843668659789266460390488841051079961733413540600583919207689962783019103297905927237104857060989947196646414780873790570689838112004020883421365017466551437695727378113647684559709918797037067187337590486218423868361870249376661932431450526495153468745126667578202553523474803174682560781802684313955543011490182275721196104886354791393323996984063022868034790175825860441723384959239659826812880612240197523682916907808861108116642560412218340222609642580670629216898484029316379806790771600049451851704415662349313205780730038901927471001819567651160231570224156667690880456195139959333031630870718837565884630107705122867607421554735243219800620441992979134781494919484631854890867309893656175969490600077149100803597342731031770460652353260119585065147127868166915883781538153961738357978297275997168761869164400585149322859551479936301082269762457048604655257592151710632561115189643043954163300147368242566098228717486555330667476012633473445634875119621186983622604260926027475893234500609510345437543616240681869476597545684748293622419767645877845546418374731680143529901756713086879193038957228786696557521887988855704075175823661775445798431686123863984619321555971796757492203995879930447405715403934522253783513149358914368864164554000861590548727087849767648655201020038424627665141064726315128349991561422265983498281486500057584694501398691269922073603575927268157194317381859946198005976094117527801387132988601093208779526675784289416218625720890281759464963947616518455906813771538680294232415420606623466485128660347912403414453183195238588227137693056747006350929588945577182280319652270518546343453908010826197452870443915574772324323007459199860463492589087383020675357044351488037929131222390185064343941478924970783724245850894522542287876997516680893452334434313607961262524951869896514375492315957250396333009623825693944483178335044610206443418539383915557659573494154219237389906259014096924193325382454510342413898141128272515922107781062828948967126206015028948507192422650385901412819261417679603582295460273634885598385913810159910458520984750661890883847721202554543990470026004664167000563769387446478361138431591590868236014627734746874323158447089355534636929928195446700182937331982164544413273533040527839722930267582720286400668723780813903710949392170128475149591963147045655855222035000199745694667141266189462383300644469952638880707716705866302177053768864383396458450931827400885091951417945795026675847439178848244970906697006227693002463439203404298014957152762492710227367909900657777671469988259813913607847575756863214440679833779272054580997469464996912153861360869921509199862611051934287700848916785004346854439449541918895177037377813738170101085869621134392009469705816675235762445748079881190868484477895209369905278045682679970795255878793780006534333690121187588677011660154883502611488393819175888367891172154723411105803252195192037796904522437575559960740366795326315082415329076121683034976961732597323451152426314103564877046525476352824925333865566212775519944889471098037559046206458093887091316199563541220668499685504163903745125010920392994362106948035430351961597560724365512690950079161070323575663648551477740582414810922345154481848866626189799481515658364279700174116025037861085696569453335898686975729023205941801475310868257178326704620016343111663631867392961626855989637431337906795685282108321919988133679570324384669257537481373823156040010733680819763207497494381769079139261042066371777091508514726490381462534178443232043591091148472517105266599681375907464984783066058522468566120177215590229683924236759308316354262339503854507118253585123416263200163433600527166459906864118054585118403539799918402098603976564420309130481867595071222900881439179900556911425327150373828264866441926640327995661250623242246322320908536695576104460479641877484413014571804854010756464066733153287514525522883626484698410219457016643212013311136355554908005302091396551140433415555834317426561416221420226069807505661635023495087128174720689758197494468149816498783801697788560320390899494766638199777930937504950699124739776157981079357996905913306633761824315433180704028522291307003824017405158183350071865586620140595501872307918749435012300251336996112837894211904560984339528772697824420176764794486736128281779074974455883440888685420733647779530694200188059839332392973326839268426497756395338158500458793537062600588341418529172286622529746654596979742661082609619351848801402338608045859537617093488819917503424539558805759566945684607276836322237542679993607425749839870161428879014367294292149343011325114805509423633585899742184620530040341666271868232420867536111617466133165186980970446579703261376509328060973560517395595715695759677067458775644678708688473772567153019042593561470439428678482918546645840812940520344481637687535056944025178820685371450178781792404342556677567219560624451404269755149956270502925237379089430999035249178921151094881430639542827445190821867612957742542752419214913971507048463327741129554560874591036869413557879428326459999830126202925792322945475237042808795725272141381175955630063221959463942780504248231677918904173568702744319441414684152524036189739413472591790183686584265558528183211225536627177163107000145001274658167547312298015440388689768150904896026682901650174175962118735758874404760979591002555116750256640631419678870169819394579010640030081027520103906357070413396440245001226711569727106702326873150468237185312470388857934326066329667362116917894925259517010888488685474520495332221310924879789371042412566732167389923034141579567208315362591198084267558598993851194256938113650572324075713990727470032229265164053287346021818210360645182921826565867331215928163117157473571845288547653457719747301450241607506437316171066841354438796546380187888222379540547060979197809594210627543868554391646387010741415220119618125785441462038214240939542727868368152264583208971148131589900685303221388268361600983703305537595936345371221521786281208887889232497924378934190435914152057061836584566005655205745451574027562728979526409686296542250277810898766419509976269514128380578387641259699393889747359195509265055588371460218113638832857639619301385641705768336475358101592301391794106803892579136391752687355133322000279403948972667898694233465176002751839634893956997101148724386868664333772733629870297737624480535385600869502806771598708686136956321757459524506421237968387829936402247745664063276383095034480608367918044023562590376354778218837943581607974816391285277054371487352723618220104865932465218659055903707913416902969705324078635665032186592581830291284645788365817266092815560160323176961578673438743805112221145585109560663899566427748986463444207909499886092917346242052400880918545493272851251096795833744175215243281308186548365315180205893930186690635484610139950813349820505958992229622459855581403897541334270914676005542779654210901154053333226899277400391062124653451277549876542906022785697215317963421693674119149628002386869851046387019598594395933785347635129932538964635282043521551523905189828680651588506038013975694091585870400830625997096121265237552147074285301721455617563252400274333984344027424766031459113632895648500012483259213926998043597905194545755000905536693528844074794220643734832096352087835818865767132845983335332523111667556829499384884654863577582638066915895886141117601746681023495092860270603963531401419105027118643239833217225545529241993386702718971109349170484647512761108855730217043658091232212791187634981518132509232332654101784601504432642391073965788570470252865226233770827755458014789244143046416109168599650841111713094535435974010547667000981404173083401631965024287420866756194744173392762548436239515610474143432056943454122191529117686601863957335866291749550507260876249738639590417570616370649520889966670923749541858432561495751501545130906483200339485302061109557562617819181421391072113648242765313152399293620655415979425063775168889838700123323453795158072003856258073569786640268327483102002475809952873252171252280075287240818007387859434893622351376329667146581065173616029296619487663903700458316471068110212617341385324145048483680024290033694021499112888131360882536970569122273006314983507576418027960973981860252789529785663707215726437049598943931629152205171747061831554182564701787622619517038080672138875049766443887301766046741883316284979891140275897544159608439108729681019968695835962400629975889899232359482809556168764417652295844169152593512454957833735682077016494496047268509831669239601433255220664947686046733492890564044471392747625145150728245451124965849806938450832239489852369956018128760976215727236996940295055631007083594515648246914746961561149071141631744572383560222611587987203442967132145348705572391879425147751383416372163750455605124310009061273365735098835910114226098941069636381229592420968471337500767278901041607576190783792782407825346591813902501273915323876621476139900115678200625870434843979948299570856048105322361458168527579370230276111466084480181479905549762411262999238969856202706225227559486500404924040186310073124066891885079794999566256099604018196791446351554429380851299514930890923277108866750925506354414275029685648629145016018911568147335241044417943884612790217367527786011720738064277177448872234299528768977301387321994417224713749960045769958709011377804514269108484747273945596933182199274883598609197450548635428647183865699232329563654073775010411557983433352293120349942983366888325009747169392095351270541720631043383695097153756069415640976490458433418541313412450107266098254508241036840398882681778208013677591058165127019358857437792948979080572304675525197130244820394109538977641977369512609122147971897731033098696608381553081399344726855653862916201543624890248791714776053784479915478012389011690158145176436320990380451703919190870238647367419143856478189908015736903293439741004151931828177489409447985941473146437974836872511460228947519634956880727435434969344347994148786421945633567279579249582363953290554990654139432093749029244650584207361185027591767435277668944595467423163765472787414065693679047501990819980113479397377623515084917632797024662344342845010050292934086319881249585553138060690933909067661838566708630890502742577884911866227976125704324831207542989144492450971488704429680904279750903805951709523632250231553783132029455019197358219526882659269938771395011041328139380944322881759804727396723775283961933270284525641233041287807288232740384335644801223446482916602920243287411578628556954558705973661896602712700523586663185775692670193409049131555894792471081178617858097557017818820074129381068090325263408310475053203347823396877437308140970173098127547411647604129173593877025673292991792082498721437544170636084811291869043234268668829305990458110308857824110006144344199296553894169623702923086765515228283025768748180804723113202883694236943614745720171596685212524939514442075840132045541123597678082344572522728934367297493083699695695159586473693783020127700381682228673937820966434419979387970909641298195271715515569389428733864967561139846715174370105732775226514767166513600172496592144161119009126086196622302150241676715620989625107986162789672725786558797720124226724697191066721274383886669122734831671644420911993867233558430713734001670082339378140776342714372668456761599835668497413506596772002971641939503413134261571284654134543916332900559904695901844848652635084536185223531654173016898174619334665173899537543541898699152766098305916186022033243506525419227779112357696408052391135045587111605259983035409505093347427526466943544388900562036851787729263294686498728489458179651749018934005353155397476316190901893748351654786419643616277502716373778557597628224988407304789345266440796501393739866424788114004926681571365128520755689064825689606801851179460985528520307609110387335990685770149441346500741106957037877497675532990049165980562145471272996955608952771007400513612749038144844709790449947565781644385194756965888358224420546878601692766744691751893337495882190291811099299485732635154938252525275259164960886771500790313038910878574722833263236419853392390318471828297200694738190949996514329725642611894794211509654065330288507065237761286818824761872224573489994086010255360850930957473632399619937281614813897486733935986835832595749956987835627141467979208188558558172412514495769508026881429163475548208454909489268970354442181066483105711190083745406765543265985768141046912696666323089326443729156477207506496896960475320526165493851520665578199112917056743939878820180247363792664007738974839879698066653691953619230676427290603952655378120485379532499481725019246851564753490043595788018016335495997227398197327030073521242924638398421065649436080972337218501436318679828621062165421180039280514654749723631427833956917531464087122129470802418405852529617117712405799085071445827111701453379773733088604843010562695039912293730724043762641700723985310919225078345552634096050896595641285042878483589391802873910921185248980221790626508657795690975685832562170700912290034023153403593207378253090429074703777936376730587251691863105840225589575306020445066158850298389001472939266356801198836764123701787613121039406955241112964788887214316491419143503586918267258326631151067183515785059925438459449167457665349636810150292862971453189308546827203438101558568549943685635018964929987280995712351604243821608725034189121938490467420417103757415989428489668439675071074532921357364232828536920576979037830187136094027825611147761492032373222995514934026992435350646931301160339028822522570569070233355197235794938838691435529195940044421239096818483539872797661947669162225380362517130627720949784893472391873059609051871277352410186571407869456750266129590919452347499087794514137239829785706176009637745377064500371227845800276133210347300359996038434841493860490155210532217993939647985754604480314717656438181338543387168517846780730954772786664296496716305104035996279217146571146613359594539313608014628549526924477051230264509292729285893062993863937078634431407295789620362805392342871804851628864663836362437188918296028374454081412199383652107041987492710312853402701994078612437712368781695535500061179548235998816553355985836486739179771443196609632442655516248625050257992699855798911868817949691693836182671146003098555135801289576656048027785493286309459272823214711876602916477893364202251587906309003298626506765500284270643632382144569939137117985793952414679203619486421197185056640549605426488363683551149728910507717992930936901512768956234057558838344142236107902662387648440506408580733378163778292249821215303597178724153502860015377487688601558784423030811746906828316367148038338845428383563118613338120895876860451559071578746734213507847492885558245837015546248179123544518161944005307243371945585501089833019618947186966944347434448109428928414156599847794166680185315142972518282560100249704145278030211341738962936115296743434953633330524931538317864479893922125215719032130976194309137701981915079891079979598902415885713101157020511398105750184655922202876010772201481323827925720352083603890775182719721324670307507159811591119068384464181275616954498529553966168579089998578146948751714512231182036796971926599901461830933288971404110300374024225717078802780545207217643563206516579889901170491721815709634883679560659922297988067857542071525093299244647428956697019873743946655674103518735467375773005640096689745976737027772859599695461565317493316052754333890923332664170230758317223892776256371846637405474546155298749435837609801658734844806208674086209662245652623461823505304095604032701539534527724619635715677498942984689618608345147956381684099205702913247886642664415332017315350004014047117239124852620594333477740107064804335588051379042790985053254435100997966757091539654746119882320997024264843333460268120704981356195055079040413268909552435263840636141194934085975968471614194719249373896452473872193735325262493152227486248086907277082510068085638597293071609923047328599033002824028824393336461595637831840045833888438324792943564560457872869196204153575636245068615167609282522654820395345525752443980873664382758080129377945538461271387451519799294776044840132100461298121743870713248150782635905264296430288254551247146599069907169628978620840158250831331261523922845980818587083064764098470391956406349657787588275136525421074551935864227815509550556591861656577256173359330812656397918502005754336655634850440374877933252261802063618170785396035550654844251373687702070568909215611269925420943256394093614275340797314565031884351560762682130384464270372685188264308703502558574867788915921638096737537365328345258777604727776528268450192504387842928332620125364936521281711524466401581061596178228535533304843441197083904851039131362213351393850314044232756290517337075878230615273103339871239586672656707325891415758806172221419858394217651524290828130810704297386343271623393526534671431659093118499733879499536794558525778598736790420724876292871230759783941635893660093269795888852441914866416500793438962866051920637006504695861462937624957985494686485144321019908439679097037952953474653762262011338160294945565747377298348189352806251495933058370493867186197401723881302922600048292808574779256603448574376564830976845358555158765801029083732126770885022466672497421058804475714421827218690891374095226063673549339273577578706434841878258778663505581892960032395086729200944267951312928625283144502755632604076539669573012533191441830097840323236443994436260068034901728566254592337008935067106420139366728779433112425421396597000358084736738673926680754760716087101069804321106114490303365786976918513390630315859092438210090082971129174836115304295830062597269833589311939356316934730660371825170999837326206081636780690014721576269162246548309432185352815341402017278800985349618701136638341928494679073677004116353689333256413207583016757802231830227011920285336022893495444945678413794853507296940636455303433464367712447888966367348964328586409801175716339774220709960296412237812009401899693575297790151558689871908443900191972804617574788533136281294404325111081714187240311202960597400894816363908452364963317296273001433145897235183386466726653136662682089326595040598248173315283478394768292772946112450566795802104096682729881904315977728281897126791299338398372505344990518290707407865699499186355271070603789425760763533691894277380423549881409564007842651835019973894795844732344476358324986420957688991946195795153654560534844399248130954883511737285653929627551472796261365942541340217491772253039269437095206389696778670984360982090094756499006995073040572388111219835293718492778989942943120054956190832566023709744573068002742609397842813957844595559615130043497270310014527706723401377428156946100443870047546667580887191059814941628946224328012948054572046969464305070730279201752994144915989682626189591068408475674678786744676510937195993833280264950681107450150469899050443560673966943778535147110588129656823511007771823664940196774527254519483103799856339501949659194559708362482567173042581834305243301967302741636562062214186471653667440312811381549380259115999058966320420054091186762546033479366797532915116780022113804296588902026074057312863692943367618825015422402216024051410336420159064593679613934583813788070363135562236987772366210663482603999984225584783256621240976193364676565068302676043682702436243916578378843635693534611238082345188344513617802666365340051026919097737729395370496257047560696104220694702562907595055012901238236875760041022869413646217144111797910664572183281510195168833668708348850750340805157031201882794518204377773299197047874496819311604017545017099772083186414073672572693111959093115057176759590517512726817028022727238155850098958965381082392103370856192415772104480171134195494942513166162060414087051069136828371126887634739136369280474594149393833394199040975591744011208857824016086118003866715115870837480286094267599059500352882979704048393990939707379715570019658639518571898565329767709242051326124341126492238710699472414527760539349547031951936148221931310996948485315623341738076511308894864602110473066096900738515500691613934599408743535447867204406918662390536149317960940865946233719872604588706139843833429239685660410258339817935291308283530756517156730230419505344339919002228264873981799157523969368240819662827452152037951335335633556204765869495621832671729000554858343048897269421811846108437389400182138452124363546878418575507007566533530047811902950925320236890598190417308617055638292830990083668799210922405225551865340762115758343171002981617826450183951234015084077873930110221719232359015578686252082484330406353991986333127018375843502265888419500682051969446686763612550720251093326996774529852765996332964037511854541320587940085028674910691829505271061875795330974678643094582139883562242401468455677815875534314785072716467897327364990534514708684618132615568119356272379483768319812317021806820710746849254835578399759782853228078564158786339512164377231427885609563020024591739058845909690077536367308835105315728095109251369624182838653717204292714698897805770039919463590738303604325834245464519402036572355814727538669322992526155301219350116124163505271408262036612333193826617472766440215385073148844039189743148401430910273133403473946811033607221146954183000145327573118898702976358328803764823911965492640198356939661468075626953393877358216699130667131797987027067746897572570102498694275465128924352047280787486256058739084397152180019192911294929607857294421162859697994486055864946444352866696383760705728567206433237456125112678468323971230088025498355427354305262915713660005912526193687091245238205280095185286233193220707302859098814099733843144557407728949362725485799752503885814193938190028412372852943933572337915553399205335703457588039181533200712873147245131856978060551597684193256978513392218022201997162276102296302753139795542893276987420632760674734728314300051515220996295567890496042819058475012565867376540993104677319026648398736968181758168467336828425205118295521904720681512646901732690237882067617833080177002932020540085957231729691338270524093723879165276916240811525645882175478070551053270280784944492708958907742401640499795841152286936821857876613898320220106349050274422657167085559117671802402616669954035007097882403742325340037772381895079323680118155969912013042450331629490375082127742725453029840035321831235856010804211884539756736546729156043483053027500902649697350564808270610215799322589247130347114287567363567705739954393431268563443676510898891580616714243497850929948009065117486811447842514088676487286864323603808471549528763375583578808415979258003813424466915254079077843213216803159090685050596599132806343954733017459147819266387090988596926794376053421270475495743356884089606449448371329020683278179281211666630180808357427170216382644600553735520826159631261313036543689038074083648433686359517028518391120931173598141960410455337407722026917370649313764637489902506223188127870497916246588394695202846391516883502911369054309805541708915596097939991555840001707426393760269776942075775669153998441954289162406912363492487193488289570868555950463398017283950536844625494988055906803449171439454625161491708348290272908434555014013969382584093038731479366944687847697561032101263134699688844206262362656410016121157819839846166493916317381033297334219684057557905130759193446065316055753095449199041597862337559243468072351131452354755693508981673872557375207593610061361440401226805549803411445231308858600349292988610607870499106975236023628545230930099015670943280369549736233614812987784035724387792407896748920656500415631005385549265895199313832144007717349475312926554639036815180795463848070134873964967949234494458795881372773818243201458566022210412706697776138589884916783652339643309994329850207062462301117369252767215477374319837765233220211769348112901706723809897915055990808345698466091720661053597402508249996644583852198520715185722618746884577121887314499477469313519678043989930607264596006372171595048767772744668584037185931970366087599908352367427270292200308183567020119197887862479178531248775939680418114271279627958493797659994396848441127111240691023159720412235090575854844821945101044374570269642667227198038952068122701752221993257795505972891290694180253001502365486471492934681683202702950300895306555002306589197695263973708467060740220606410477761256728636501465621943020812845835816194917622278817101653658731799234650485626716880131315579810772890944329951173428704065925624382424562223505457051043760722773892767653643670975037307677342467030096438442719914433243834706144279411011883319682390502266567870667463866792121718445404397553917954132319170972329709928094448090325228130186281067892010785000451533466567857214384923024692601259531634335648139670316157661308595328922205039379657621800631678238646146882561146062250681246051940443737169635454150522998355119778457282838270078567287824550787326622813736614048695581412810569808645812095941466313122261410300649305614203493361240932252737716855379812765797740799458946254894522987269588653543271383237388453267735391447882946365590790156346912871398047779832457303840341965975715759076292606103635601755727405522292181744522516616170353891410393774001845464234119530811718871668071053982562006175936624549107620995036399049976726276274100313618395158741736915111445074466745987769512346052566405329963132564310075014020770189867039121170793600534619892852266704343946684766398492983659262671908933479653148636185699140813130101461024432091776940535573819323924631606408037890953134378572413327429121598830039694051939919405612331520492460858743487965711700564935382083350898711150057373110623096042782004200684613331411042199096799680900397413622714882902498758175030819152737794726752130923752774718691171655555285636986713988675323173264397342342718597758996977386106736210629914279368123152022033000749688385028526659949880899755398853808812104222317714089061538477106819076960384572861472215754967046901595696407429772046684932854293014857987493467710930825277081698249988461778310060874403597791165272124373255097814778726831315926605997517825071198722715920663876426855211970320515041549787963605135263855278311245518230512085237792668615306414027834053419332656475853023790889268336570402644668858397425564445237049592080077812470822698620025505305147306491252814300282129254705524932592052183941587450522713708382203696411949424579769595370002822489422834438286345399429988260102074210667004541899161178137854996798518090875664326849545059951040672363651758391134111279551867644382462693249794538469883653798356489113908472650554398270368217801847109487022927593259849853450523344424486669839650369200304349826278480433564552066478777219758018885498524971623943881043347069535573015046261540674479247154999160690741906581940384868455302551242008981815731595085375622347398935264277417207209017205172119249052195685804745825430523942772800000287623828259796117260618228044870347392385094511440421319263194892329084337586388208227453357703884118540839640351725472080966216866405379844423166733154484238704253725963098602688143459369692274644972455544028465117603831905283940058142114400662698445455304015776807045731715206985421467266847609615406084933288561238194093549308294833207443035519448287288161734835471147932722502088360930586085177326475065888219787036698130600743851535875142154952295840605117274953029991897977819117164419018851716501913513307614243413374232001130962372284167316365700834734635582777330375297239307069506637187819902179509395572479378049814403495814581249743095465610369373585456490341770439841972428011684279426717445093115050296700382201048749283520200613585435856729028552504360940647205557706736935699599575378016274210409626005648475935108724313760215678530060682178429200595887975281893402505188949741594633439531953062876071189444353309618103521500962720001654450539133991410767902295117125956790305271879751760726100454682935669742943399658295510215748507444439251220300740502662285728499411480960991312895109412424188037534186645890566311823462690031981780903802226649573738341415315458694503673605248776475187589174144031879057142118217791779791771489910098383773962911098238275080849250918270447527618701025874718087210835626053866191130478879385217789646432930366754002287036157196135175290067622214356771505637239714473379499328232516406468791236518644378078217195229309733457831484016046425372120923705585606290997209626069218417644172713989613657487844988205310313109440231233103299530335003874377968301893731412209660317953913129785590454637737825485722320066580063369159167743890899640222130673899270179850728342475496647155311040806208985703772967326266382857444506575177794156088527936402370733851436987134189822074715533218186704101405487390279943444450933429874772587349693772202474644686436934090258350733438942541776907335814956635764879024097823744270288297011907886835478332008805174982228513013896895396887755558041677624236147434651472480523513282167926689987905625796335164812612142275689965350904048183807921072551006537397105686673029988456655853140078956375978729278150959257144848846895103775457266199910768309458080343946052736250782008955519825993711278068601820499137524046798409853118030719235162883683884487684401392485396292411631528738073923132064504695566761625531900925178899230783068773518421060015538797691657252577981957813556790491003783505828621036860358300828544199986259969168336503549956928319183450323379619136869542804906717967316703138934173608891444839287236084223524826318990270949687142805787785012215107001453312518577792780442356719418327218412789706193215900384519657956989034465313812868961406616448051102651898187791208095094961627585948549698532968182848363679549088035420153435063272390422218253141349461657061529079822578760086302418356467976572334521981233605186863742206145879193396996332212690702891838165794544239060891915302905574228922574929837392836261547928562701701631152244591065079085958328670939441524422719357904873282516911023443376430445289274814214847407185935801199556939443442060629359608071201810186833255793390617569038136114877464103013411727375089325363970704262849920715424467501107424173699392322172958410846186663775949996807410285766859604446832121695605703225146941542740974936393699825961692977670913242496627603270965583259332890290286067046317892702714035530912375537605324517533320286794391170832743761788530832161612558263349533224628478646837989565214584653403889482156610427304546110890346816494800642440523721042321679402124856202546009421349770328043169729965436922285744322452741321751023766332493222046939521560349375085033212928463941718080426877166840074925116865347864097386443039460977201493514129317237175342939874652481922687737073530220217406456954124388478775794042060822584749894379562568082229153801244084863900562179840171335513860353356337904995532699333130502657117600134576915957227637514044583041936935874597849600203816037907101707230409212849361777454360868987562762418953588903087470090767810934216877279234062095919601676594375181468687176348280746212093811790342430221857002794907615935950420848306936271181208062768015331300029605555342449446613314409435218673430651031079626792763954805216165147813016486949072271099561450963484707488730093488086593946513110011191839412610808020439498215298405170128856505156231389786994104369488237071080433230090206602446893018272877232787643969429477405920162769061734744618532676220977084930987427451177247273262435589546497135171171775932555634118480589598215107039401402739216393551363503229118039032021771143640357489296783501637051954323953316499861142578492428425856232988232143384343427077828135278824457232655479459809611213883256935793753629343924904501311826663692780447471929777487787286264281106946615325250983585666724211729578130314662130569644023741859086872819025931822094907032379456564014703352483736953844609357906610819767843308789388682680817878546439504203101072219193820612888686384686227586550775885959219441747106791513146598113316736720203873167939957736373002452217829540870534042306358338448047014732032553968812064224501328682205959905463411264103381502989593984110573053542371342258128451322317210570872476457615596562360944873702679412168636206817662327960092167114123606657036761675484103422188535405877527708875244367990810391620685342861948321587648014944444471599195158558006966681158541278479974654837603922193299277603870464974875372971883827153460802682473347067759551560378223393224376553070098267771467387113672376318819935740144373090181614877076630647415257924142102409493765932566382922743765467668946992907045987966377057009524353683551830535171731879278029624128140312777918673206047499837265903280317279977752455904921239586189038063997091341913477567984233671175214878493043384157752745971042221366052281835997167107274407116036683365950938409203500672685713789915162158552715747573725455365374940139055934400459188415636347054452306420965073136413826582529699888104933810585839781780213442413067809633690921120975741754154154002875892241974332571751611172044694918358879048783785546738729945900890344646171269380576345139327563438148416563471364505555573694157399943769751103502514796944982630659129738943572753987128908919082442755896778403476732178973324638274840421125304699374545755738493708503107701533830377123658466023594890545514488197463457898319611911065740801128800220822668315076334334316051402467803701851475808133647628510271148235290987597448398272575279890794206361576640841113742051652309012920938942932967360080621489871431671239499265731309734523544484859867635006992469131845291844082981874231321170381073892961885241607434500832099658805058081868060477239716215258646472495558999140571303668099003741591626799790370039728136920192520276483646327320720810241411613421136047036152371348882030082136641541236097228548536375089953692366951944448541768694554861266311399157551118516900861894623347455616587501034266684848611114917904682475182901548347789919437024505532096648957853297462273975650377664805873694346045235928109135667857101986876350044227353556929888540315360032179403411298862150006443621213462011463254513841119644732877800139390088004105527219205320057813070584579483788961414161501731884799880545510412583083703989851889299471651124690136093619676122537171703318199540771195458721345492278741998002803917702665055027503071456806746066306895658145877542226381922842802148906887847249136078279346658426828391861878239315664561593030945500969368883211379573394849036017184320782451502972482511762584397182163180759620322771232966954770372172979924796720707489975536924019949912569416469042373713750563273656125758535082239838044008216621590851469937900926779648928220567007571505696221810956447698008166255402410706442324284174543788956218534413271953412590697518016373680178464042632720466560274994308195654315308916013735065310909915438600827684238299057516207562945224191601457950155777088132564193742551130531000775168409112100416433586437384602706029079790039503034239870135176600717100003785621282770614582819744855395738686410596405960287801358434542407172085668824984266364899442774856325622584017468539576784880897850520363368846456298941893811966460912679912540434379539488577971398520151432496186479980422460613129472345122250590637200611840859801659458884427070153298430061555559232655395124431672196577858664763655463906859777233435614633139776673036470588809232412451991815407921105787855675352436694948670779851917380746739318186137408735608557233509621260556423727102125716929962294381400129133020488149345557953580079327039693425132980872974917965932951369296556034856275204041877752917013327556931157699569130546939958591694286822194742027497020718321326438444897862051928908832119891396313263958254051535900646645331660419464127028094664862198584736272782034053950796373854159726778180208968758273123366812638163607135758575496810823092805427053221522807711712033715183034963874380147704190989388647615753125357990161541944186644439958130468700582578135187119367576908840202789178797286510584385018402262008309273794943044230087389195934183991021130126332508587604556354970099636734911209920786648313927603197909669304355958629514588789456448632466499488586647047722468296143728499336269652899235163523351898436317627764875634819363495864934940051316881524413823778246435561097720780433550897608545786578759454670360670542781453691399700944660335964081920816335862689373113241759338188028090414367713492451767852505371296193975871750485724954180355868745952151723370771623549058012571474849038366370063141292124411190039698874642712036316799429210085609432629297595263230510784289074721541797421792088702387005765463144680524837305227886199314063490278054535825223673262783903001516738515378917707275848280999647976604831242902968031306081350826707008754505865669882648130230393511705153423676186611910189249952466546068009168665785787412684013452428728596414528112672905262068309436671253713243149368441239826337599038319236378729646840254637034241508922880248335102385558458219567946874339967197193313407964869325880647809986186484699792572434311371185943881462324239689385342737995605182989098363721447450129862266481088710528288232932953385203127339400782317496580256740203625136099261234593250716742991744449762967230110084693458585612270770290293105807830659720116761413599589699237767181722617912134617923183884727776992063714526375335039966008171191018845029591582174107616547566015428465649237297493326131255335320455959695002744083135248494049345973853818803005098338208791910486266149866626794539777319610886327180716046798165514328493770742895313564070470278782724807222858656584229498512910227649189840062126761529271982986671228680258937253552471218238432514752278294440581231056433726576794585428030959160662660785483190104590649191443588454399930524954035390676103082949752594773451218464577494393364688167312884409680303698843814294254323956544852991505665598668635824583220551343966012395082987041833818088616380219286056745862886099293958100344562553700715243055439391093807319209045008019201558167899485569660274912632303458016579558314228854840949329690283915099724036665645400644105719933322331944843671792742158788538789247926363731689459522195909843934776845233714675757856678584177187134728812766524814003420829923346730832220236615490723547403718884408211834932728660157596021355295460501147347347445626906509799166431288148184181660172281687506067132043198707200958497747525937014933982654606188988574937841498836002537630188473623005862390579140672207901160296301442053909671978961199631773864664658887253023484632094453444499744412786651985837241341522300051634398117110689561903380748987752499857965979768534776166906971988242345391882178560625282951613239534146314338496931525907925161830929125456923023643311701714840521668850893929858021912532927865078146864702942002159206366228179219949502597612022020567558085996910011373172147600496015511445024151064367342286792680494296773128536209926919234327450304327067497058533732738122518527142095379812865408537402096129553439144804752814137253207651514729377360229742967191796363214568293065011110891370464817596766990156682085772476143088287476480985828460762826248769607699075949419074839996275987413265362803852263902442921476339054847222606925906406807382376081352459914604529547423973473982013678107859062694408450950637875362947972918342475428880435154268629717464724146834387255195350684716440228953855450026530227725470879006994588282163596427423886606863823687900978390644271061634499382619108497919012007831664359353580122424799149058367301446073023575001303178554170285991037274031555878527703572176840981184163867754387013383207656847265221451251141787624362911809567392618994197167026432974771278777675482245039618696108596937085515561813867068064987426841866319479348875007346846151020183975717193303562423644996446296400685849567530310575684071066378556315073569776130394794496926779680663543412472517883550662745739297440183140550863400783070204887312454028196604848779048056821757118694708870433363193598668801938788363744744326530167305058624599249858653340535254537909508133354238024228543831610572618751473317053394476798349679816278108133528629783108790767740966263779257167476269584554742482645407718728437792730986102028893702696208531414812986500591891113399440657025786963311148938733396071366035043268414060574423262446714474212721289553363871436914210919158918029351043019056335875831194108431327088519470150963741221062494423362233166780046093859815451456255541071773851589949652574080828712030754474126399948303887288542927176811354465565756028675613735096732897267745910410010311864595490031088764676818441006560671031645027113054311997830932271857907593470824278928759782100074549095397133099494668686625904809496814694596533235903421037940080011089118727577372673527887555755620106130873489078149815398790087040474753032008929741255153843906105103942052268720045875220074323786481178487703160208785439273918774213072269632731268413953177079823181609664140984811390544125455877224816978037058426904293726908237880099330657399859319154199398251104320562320810710821729584027862637167019790300309354260707615959242681973955173111270207604233513678752256017391829251157220479316317582114668296123611356872238308428340905679360404886047772061146797363867942232297367985881937211503912898684038927211801718089597700582326153870536604842039444794524140934115632642349763038835172296873379430260641234219670784611081615436458698207703525562565351783282416903546819901007031194485671101718770885649408994515914356610878912736717606140798536779216951912888777252891475546210195880815677696014679433897729938209341464337590453213754632773882493966950741023290658097757747031156786527101041849808075370678460888492030656691892045796675698656474323935027467414769651726900644079931902876223986479319683100332627790241019597829748641811016580070063774410436099433716961363625267284978474969730971434945538023334191279495455095310764948005810780018980511710929675800698037269973234030536001422647404739087619408893660461135430756993396541221593392506495209540353024234890517182035169282861222646264576719168228854913449483154542349843133623720855898299222245737634570756477923394802543850140190708469915010342472442458483510542127716475936647150789998376171681325212507847783309097596545774754161713687218930428125434636418017719375934827122325305930874840675924917525944061046017911252760348282180599864125280489800897090634918831454107794357714089370558209587702474684658798605005671218756162721112198592434329989919119874175146097834832950358131624322600108216455498787003643297461177713411861323331699937514818286882524795111442970694192121947763358131774432161712293302472953460316849339419677817869303127502131319746055781129491509382900991363060416116368389856434988671407911608192890010221530367391001713854760296218002654211068207761703753127511103200942144127258003808155381771624584151831040741101450877117756920911972764514718571886979501300011972976976778638971894636586930706501800219721252518966692860598819588113817083556465034939083642128252249575813823070732977205670655555563878247700371900501941494301104467172079607930147721352394244051716205104045026521830923866276561131727829347679009022183690605665711207804195565025324090532654072745634396618004516857737037139125591413743446629912152008098472064621045649660388927805965809166542423308850285145327924129550370647395571160682289630685841492719784052915628106496871584403377264331226031024887925129720508973574018858442883597521631902340021714964519033202383166610892979952186260803416200913180326423567278188541697052653730845895504896934786693820669235712840621873963920245786864793529661513572345015739632822888141084571886021420446474640138843238178282660436504759570954407619301055224108684761159543017266053111441472571732310820418766149498830794083173568307253200343477482617383434562813786116386985300665525555278648008434465306588005556320736113221050280015110791416068957602372933153391016385178586779878868274569370086111592506901563942009692260596068501330431886246948769817811417691182913041013875547874922960759820209121527870810723942524673874798275989118858613706423015361642687523308374018411269112259360314867073170819361524592378701583081039692594498010659954886530953349645508271561404977040739598090802091128199666006340141902249565996941247545859235431159835528002985591452511967033464880501048807842910373742062304626270814726572349569060183016614155279148807981977289452169657658236555625736290190330481034652733801671758279855745803143895837072009864433511699280687541653163239492107481236935664534935784178735643563530487246450601639408138152916407867593026201292141949586798850639761298391289942700402126028408960757755396579067594935218282988927978268888193835035382151646356699775751199849080739753884171115719411115362671755833231430930724821452369990393297619369254643586526004879965229086494312685380972298450775546634575376786687000009318540002848773207829415050591589888092486542613306133551826324783668718985077891117998592192345303602375770758956062915839248066921550759036513172227540018298161132947086220199899668180417257506188501376466788329784033773291545828943583683281339405654046659370190695892818094147139893203454322872113460770647987278827722571261945025359837096094960282476630758006095328996796856252248572725768451836293225938901401353728083402753635543572335322523336184862903133795672909655379106015772024637351037736461250335480132217963148771822723655437458512622908679200192606185492890743909138138558864933435437642325790198809726754254169092370716866237200503250420791056545232287174758145601515604158713540685773446152419508575649177336786308511679274249405231351670450366585239656666191846859448309678691947071794876143054730087400149059474380945226724811073857772122439684347167954288213584574371639699000410188178159157446400150023047531076022749862211553115327595614304477273397730022739649413971152413199418080359934646012790075078509432514456812488178528984218096020722317135704608657297547369498944919251642587866714747012618689843384237177583589447296662812176600557398056741657108738471975445282073271529431779913264953647119454788518540179511642963182369369985288495283836984624979673629841109480451822121315664659817803343652987705414560203445709514609962358788608895368396137994626575835934251667896685926105273384572130872062038349239256425692482852113521258617102987058279776725786044228143708713912200876138922297505437388417000243486159863737062129827502519401537837484610722028674494354669264778760205190041143735524972119996135015635595715883415237280338064191850721557781482796048311919019431441930998937980063349785610200548675051141206609318948074138115147685854482922322473855992038799178213999392845354099717743151454386171613293967162976546008569356134637579040613669547409404294228734314512952001555484499638933766745183119144755984701672241907739699809466861108700374517141404207079869383420497245791855610336188588421333184872872985696896726753538172407070910858576853008410033612201052073953891588161729513600870301888577652947427195756711508295999866316665092826726972902765819328557155355289067996953499569088983629477870894779523598593139669395773439466546080897228466616453926860765645030248750453525564002003091985063858416637121757268471838767059648696821188646304910397680748199461921031911237491991996870110788947388250552037399879383751782183669963981550983379560220423055556395305376402771579110847104674046180900518406209572657066199972314962444564846765339636486931446548332005652438918503966177001898823825668834713570078683261261302230702563856699312706769574187743859795848581829455279511958331292822119548502397787791904162665491705816743458140490965786965982273065604037994259813226967650201996099233638851173530194892918061576435477527196749435429249817787963969399054192320130009385801035598049716352456918763199461387236077017384112266903658323318679091637783164176791154866528109235692823045194844963861072008659437899546986623582789446532226408650323040814429106996950230316678261733597358574978338469524975702554630115631241640379855305104535477424167745972932465210271382019753836568803525976447350970328636791069592442940237424486217596864748864420686676971688046405911499272577572338623951718416248112351942531147697052411039256792689444694690346874850404710924869870823866680534004076657070828509384153042723004352440903661623642119463767410120221828403624224773003634502595263583406454077504877441878333575728806182339016703790518128215301038356104216876185898259311004036314819436989790770236031052820053447766161736554305897278981358392081352284147920396720391422059007105661656463986185510716357965048612773425199978490491251555453051178343436130877690225190913156985367024185996881376186147715518264597396490608281009264093494340221035684287121242852396936149173388625276381952254875113195181819411124571832380135398612502330339005572239582266029704540639568717923903954837213805630495430873001915003830582472702314646355657855741348637308564087168287944921343958877056219389035932749631333513958470413396915702038392946199693660612215854605154309563914017821932770042435259880294755375972631736732053535334094110294797775213192789984756077947142913615947292451624545640543436443671539694379364144721875445045745380521401485082392992639150840807343258976523653793517325008840085359974942221652643549973843609103337956331411085948513741485086450931609229213267985013265881219588033746367118885602020841858292995739267419650161447286763978044581359295570603245187345061750160563467889401137132050290963239040253220098410600541207397078470710896357716304633547473179646444305724880664379142734857898155810727313469071684646111994893027364934604014169540301498451189404638522232538097888834641251215238345087203094192118642861426485540144466441687810330360975896070287154940849569612786555910406827102609104222611779085108029083317877976387641440350102774850214831166161488020488822857378128361813454147729453835008749256081242827661168635800364335812527802736747951238389852011107862576011655297182751372981767672507371047187027352450212216078949004972208699765807722554356014729556414264245904167676557571864540721917696389200976811271786478406558368187499121395038821096178435800726298307451568223062382363278944442042840561078151251222929935562231794213569930520665394296953496819359195637046240556727453933807886709214041130107077848544351763852966164235027104266728572139866701008537925369905827584229669694423333218819490370623598978046601098037475603347105226791937914237675191173452710250277503564252260882305469204768552018262847835491199030341314253465847176223943050711965319568987646545913639503352735590785858935215903717158134920428155166831698459718543158373941743713603557922631082409002636978459620754070750206242773488469479109801401717892937486557925648238487711628585815231532410274820647349946639324335907735309987586580282122142591296648142116125849554449257227271162000276135336261249581357076517716566209907203058290965324527691274698123666867978060519539216634556562761819969579118900516203608771458385173180607250511152683768370733201977174336392729634664315977570391654742528404201560190150392021051825506354424952183901419609805202399336639807814572676245371735489910152898138511911233788545459862036513015083955943251376326751009620850133001558373979253726928646637382900819410007749524186920803095969511845581296725635802121972613636526679740221295373422208236281452292982656221848028324824882243193343713206228277164424565184583329119844448288350547713833893766284413293710302107335147192955871059192262136674629674242858040941959881407905348968882684953493489644951588731378671619809607570643207940846714600517100390097926099563491006113936000656604381531602354271360910829335617193380687522265977961880769369200727561275991632115865394764619808851855709059233298272741554024469322686545562646823043489460202178359389745202101246678238270785580688623622046131474920509999160797776453149576781556575144678559978054401246935890615644793538049579941695702290972401070061382170394539553698296616294929480774217863920681257159468042250256721962121929316258542277330643864461262519672698395273979847711833998688411965458903523138052419357292120479007185050069362793886641487287543323185395102179667716215275211022389041813773985651163609478238462092625908294743683896874432251660690698724055533062647111194541703722264766187196049204233168900981912321792167643746821740929591967363647897541490572928050135814855936259709693894959155767495250690666345054138449675735999728788608824625937089574840672645066988355417124762419692403627605659348926520431582392671131144166967522450319696795794298903833836159324292684138146056235619120658375069041387236850755314520824487186991834701723431095647755078630153585806020004362546425267354203224996498358549684717435169612127959667057101797018680818730311183743496476998081813001723275336844358315020887644653252922578396190349988175725451229083203191325784661279562206405777705541121122063549812426854202847230140759464046090182042891087776002014062702458401600668593598481760070400740459980923633877958034720136039932866490209405828848201644960277947884774951412690134948710035768712405829849168965408637523032909979713516277070167928879114599034018781256774197432124558427969443222657667018755904810645715913885885030315654886737554632830677024115678275466745908706232160709501967030091539111377753028344037102324262699954481765570681238679557465549881808031054859345823609509295677165656160501236658993426612748147578412458515015739364924573860679456158336764861422878946602213762366868095582010798116275052412494582200193170333585814083025859823448206436210613650130298481851195159066281903993260217483227776968521050084320798470212594367027209816123525283924390177929693447216386355830969005907495922874721343831400413017318067424462493341490744528565618579259878797081508521498628739983852683270907498741403650839168892405548153617615474703897590658364451041856070117949032949503626852405199110384563922279285342493367006258864279001606059628027877723208243541437644919287637502775041389353952198380849110981782398890787360322820213259214600268758125583573567184881775446483155431096007837778638984577935407082305774406844641528811207888493074118012658082475796073349176798902142070161329215782682704360358369159648456217537479960332329559510227924270421293458161445436407870833314371863572026751136012336582804435625381963033384981731127317602943778542989761086517980442797890239938967260566611063623146206242028529265112084594365785355420298861684482116106666126076321251247287833842136008474218319062861614709761357812997178217777057030048990432236578860428939597716385687527590336184745319443264332153905703524548562100535183339515487918816406579996805735268814350033473305747964305110394440100275835832824216678469997612313165861170553092921259021593649934079606988463138562639550328068872496551188543957168204849823653910243592162367082532510389413608199147044906280979702423368915439370315534334260112354800167720065116656887085146494790206011200634813670654733699803172950734696159687475564818506014022789906359774105014748321693271069627679287627898534918151608442720181505929699431885915098343878658773988022316379939583132870791544818179673882539979554759270258582913793986496408810589997559279353650768750644089488577803930356687063106928124931390835679157651837657438199738694279359641163737980282784415533420470383213799417308701832184993434976453173858328089050189165294518428167986556467123838119787530629370126431183151682964160939827198864150538108753551935914596472110986681821209778932153200938883180225277948896117055354213418003127993429544869158754157898803418715098051629055730283768390024964349688172141109385473957747499997352566774198195194451146752547674535311686485738042569844288187347566923173205484977471261237027407250801630307433989141249221007102704616651360357994036293304684869458315840575424042073606698068177374606510905386631751898332324984292243125417976695501197589604937719333147848651498080042647896667596156819456166320601983113661747039231508761020686507774294515942893595105516132231037267774149993327775481765889220249229409765457072416789170918176818760858591353309458551115004182221376790726883827230790842415034512088654903659319580408551715807965151316865447135392557132259626063087489043749228172317804105725014886753361336275973870765918033555755561710626562724795361330673584953217397009951993925542578870180496960285332859701917873562669265656679062113347126529148646208712787819539576508809462751609913340458413670684954360314134508305785131966459863025561263206341857770491407729779238217470656180720485729215184919304911558446610953134804236308996987200253095635593808535146187840090898371169046159431312783613779901288612239241033667077781185172770114259037410624222193591719970973991411206755944708714909641777861476566224786529370303661921667624310609127301495029526349373623582969093856517304982661606214867656994882643712645565437764180825948886968486031991719226905641414793188864921257878011877706621128598752257713990176830672798401210460620587388517029630401517917230427712619396159740623740701705734880245627004196563496125538768171057160600800533098141453375530320092156792510473901813184449565145462906558354614435633506254376189464606347039333916563974529379947297051609330582095623462616096937400710953916237243576358551311505764897947042054726329070863083377019722920789975904105838298217833639533550199201246620524208406089584788540994257745959443400564873682045703143425088639186983650317221408398441471590232114347075370212278068634759645371194283914483085535924139159071762953547150616360958282805690194045555287321212683095577786025394562118051738530087727847925956311014855241177668627571994802500866751070678344907606374763264024504634027704905541860648447504146278664866373248105828545403951800659612904464767668946906508414789538047852095762652478717350243039122646432905126463479820643293518234240759887073880272138487561832240090185346624196849809696360661186738151458623574186163185121757848713581999454190347687043679189547945963340220902119807561805844288380899409122622186568003832771933089393807152929450624922627093142885741563765193695492354549606857047566937065152206806440064495626407161160469196583078443687077306441533175559860203052935667027211879743633414047330813474677134237914309519454237751159966366342459788976933075997504390949326638659072790687500571896341514909640293909170279124125727521843294208678399901147162109706284232020846482704578667459916111878964110976556833991949608253621113876511446838510268341388869420598528193335464030365678298284610067968337651121479241924917658836695229455214708075811383623505663854435114366996131985513026367148023732734456692807766849683609190596003479251076846380786846637414689572634686382589367157889261168185645297263641696749813627148979558195013300327944774306424376366275994806435023629958047319165761505868212693284366962530367717437639577098068373662070235344862080018819726778963484049806382720429026365308715737406942777693032856611617559524807055139692832651265233385590616945566162575993930672510240257544149705003446811497374108829969996371999707824922163193260498615686067998329272618742577321748567804213551584146702420051020207478605390668816196747873790462047617795435979341150664867588430531996496145927420245803568021640906827227038551554967194498809695425487839508882299980812413051748703567035231207021199956625990001606907515140657858233126160595306358480865627893627240909676240064818559542277134129045909457332913465432207015891292952379060770399994977969088847798878109307751138616296797114399226045523667009662838447152013767665501549787035604273946434694184624158740375302429371889890545564875854243020315142932874655886999989060764826481050861953335105773875191764473804562451519297936729588632350882917292252574463927086967264158692239986983412833671651719126193495575080720295243973151083016192457127798228974261694909949825567769530135925574521169522585585022847178719592006402907745948608064843157026848823751754071999152930975666272262969243672849546608115764550784795249026635663487265460231746480992391967973669025961391761537335441189467864634915586241335777926109940884201791551450197716595441699776188479337547120327300404573468440448205570796785310432674885316340312833062815582363313996649333786230985014430856682683516468813019961406785285844494525355334627595328820356861741819049644344098853746919816788988587178087227096684089401121680336713029995193661495598413874467888100245063744646175562076170598641929489536167891908253694178001095510145261118452416478329137210040168372095457855861765358694765521109633103874350360862487029439065429896940094195368385651459651525198318502318457122210362006575600556269144577939763730283577781449241495722392880319414453355300785249284217181944668846140120459840180115185400576107664451003892179777535641727918577045003907250867129461853635282623998993850272320721045701651551073629887575676110685602332960871581730910331639208591895865687147875766343195509143430515497445489041370878778070849453578056422028301019448200064213675458371778443985086276318986823037431461298364466625811775399137483821184882432563343991419045173932591114952243396990071071683476200647421434862032058101426791296049561381495599750501705427754816843468100308894330292904974746263461226117828886707467091108309586761620798731536561059808348846125652159212646296114721219687187221673317265638010092116299397159117900877138632816943998444925102921673580249907664365069962285749876064957057892697744649697314836096188330038093047168817773607450606068456615370376272037672977012876317472452758316340137908407475741796837331587119633665538814771024102496622453862401215304104101127982681421760456752931354357160983759463820464866212760842350061856073288545511301054372746356836933172047895436240673727817694262110331815210058707117813200918918668144807745678612923003615598723309642524702199721406543274908037646168934136252217921828504342455247078420081748769548762684296151392493420817232604128536620268631346876650509065685273614326036093491507233097392299334035346816414491085391886729873890810792215649675140818684487855042401385876172851937181262573741762298451699625133792379610051692004091271509074151771439427515017098914682225550234774087677215643012668668911376619431177131452058322528009863144414531679726338228890166891210349951746136093737343826374278817574247724869169995580756381178823921503105598228098317299579872328505206756229869256856516594496790654917459094073159267342619623455201087896213512411221962803319777220099617311847817559946743931399050723935715379613741292433798403342852528042029378013853994090378517458294714111922464073918541438010132291230220875627511725009083244970205566278086137966840538595502965323991669324469849237294231399313949428040620409388008221700958757234225709423779368677491804943860919212728852791320149797548533100796574439878517545105788216434698417792617416997857364973658196854281028375566570865433580313407915534814993127300766893117012175571248168921895297906570340832551207533124841269431598932619477360412395716197031452628696358703065240236282785941994630325535635934546092325018135220446174160456616465089696921680487732444841912642186465025708279175421958873016837554880578768104245486466543349190119194107812331328832627050081777022840368185775540904425251956259367198556009707934727524795550676952496278406698599585295254924350929539397120214188327133163299720601820468557075071492310659544447549589478862657046539874249634681706718532877058551739041488277859914528746480915073792442398440400115298605028834666399468111299585879053440678665835419105315702598195511808641251534561923181798263005966461562566416390226444530783995058725929841245037535380921627161041377083577474254348318742111784129993977109302286933331257182582434178018683071032649045794637351108122023232782759457183551397155447467012828214360330378116321565548363248754715793752640832552836103835515892662976817760575401762256422217784566785976660365141624010486713224377381817097489153516782252649866394014921275365632031207698892595660833991312079544549967126659889692057443505026785900160443131304306110307245844493428945336744739569491468324714216015430321300159869368621648188460468447974699453714027356160126610880432074494783241870928760951662311324030663780492501643232006760017881098248800398624991166319826501142398963989301907346483968356797636720816089987018158449733383778010005406080977411193987167897098909396469208119269018947514176225636886605939444218146331922573421755803770642302268596855141716644237468484549504302045461819640885103629795305076422069385823089001455171748885307824613901049515044610258170893239068900557451947792740277880583728085790706947990800735750648386011478718432701909489620741873597535335876504186933509799848039805823641657595749936781702372694594675076266350101182651153726496001096902838306188990774843586364944036297253586698103476134049385000696439330836933687971407180519406605139604132120915675188431636967575713263885827164678560230037393229384580248890412952454353161000552724065271575957442246123212908142382345389487764381634139907084196976028287634063318989084547487749795429049669037762198215110272503390466930512134825414467174962164755104055886975180524041913396735983995766294972211674379032095615706871420673613641625980169154367771169315125620029339753703229948137559382810607154687634515871556449929224346004643741218940259874655103616473312914482214068609497712278939787161055085011710710829264695008411497580940104797879428736753018026439542796930656272227787488367192613596577665353406856713012563435444457112999904344521441915435743303655443701912252838457637694677922231762842234148480375686559646935149372636286725951816186737441496533627583113319135129694044499491796127039237970173964592941301180992961055544549878313750399019310244061209440860041580160322764022870020917946793022573448620980265328749092146642697828636280299628561429260040905632385402377738914182188855535821128517393298860656435702723227590807881948738907944025942445699330366162288546865114550293327093793478615841688371308667095658924804081121584697642822640708261084833873850084573586256011439602928334386311433346594056868962834405810578543701141422629721466595607616112600127093383955586810792263660312629468558939970197761708259594291835950863540267469191328565216521946428861337820061828512711495014132595530542679807130148859146651422312813687352532959461087569995447737810383324828549642772839515269764311936769343526196845470531450618564408524372454679018487591909509447901884213446192777044813797433979757444183829798682633124319153307476543521597368982365077522837501973890330050525175982146103590849438966834021667444114059539873249644726743788674547648214547779329676552990246369375770396615865000792791930797118203986118101617503884813056936520076512051637811339077394344261183099395086321390694197557083546389520153884413502832575151897037800743514827347588042497688272944728421925089911281921174334451575122491409702909385270145772252119358224994857764930628597729861730894574580384225267951533916824983521714652582008054028752018141470745848670413338264763819204052209115166445223299814328220294434344133997620288067063706745879538648001468306698620769044572717767211057989679280299077546966130086718197091719646843730593935730398729360209509376678124907971435327661946669071512443086990444018157239287935283109080779117535833209336981723800852785581351621934837129875697112537821967922581489282439781007561496335013963302173739992869782338463559082748802572629213203598610237318076924710267340865823985537478043400924743515435963604496784979407116725505587378405504620418313664854543811500824869445102309337268116980006939070471809836825140080161200019152187862688018606402315548464769352256155267468828413171799730008701054869376329727141562439995278264516244067928588457546017162856297654882003828269036163351771272517714597325969007797761879615859865567559808859093203241635687798094854455031859273447705132226604655906164500091512496699331633547912809784868754248371656719435882844622441951742072735995505468133520082567396425712800872200621078868023166584528114714433442399922591189536078835649100993926701423291317999336242993658995283392343025519292243913828259152306321083853761912723299890010738115944402976241225742801490010315268621744143566736326925029063092392446109706195481287675917702348177789087755105428823154086454498028205592680952871676303474810013780664100039193667710503828662435841973338598353489052623881570948240318044513959522095263760776895125588800654627344780481500817201602627933813690235251833560447818182619421354337611003782322081533970316819052484812050345111185898817474413131983347523285793639575333721732720122076168589787595789115049716883587153761433929916136370284682460396132509525207095148227376520869487912069625748866557526318223368441445269253949821674450195671829331463728754235358087284702877853800960733715789612529033353474791856536602347474407287913561999230711452846798167010360971559463633346669675025040193290122394947816780706482792523540219616246288066842060561890516133022351208352791794176174116555615272120679004357033915618897125440322858864517413173190281186643561642728436065005002545583254923771482926779967800047008319480974054708846420138522366297189879608356551491810811542960598013858491502640263643778501639427461107021502246221472379574500410187720797253784553142622678534890936957096476186432151364362931477676653546046459992897595849059337173600651441030037827098063976783153003503968863597310929268778461899625040201198902269657622917421240578209230402051033733931871406920490503635475774017415353108790962766087213402638962051846007831552291364427058845602267622797060549712805016385515365424027959484216769505101264988686127891218887611369966642818415181966403970525327418952623496283050146556920538717323953420517979060076567726319157036772660921520162698135862385579216298495795741820264331849429902637710604744591790926859854531361860500747273220001591615848915857967605132764727917054520924177365541539904109215953737705403275497377635908894168899706893275417815674234765421545539294691735996099701932039557321621758737780843462915003467160822457041015330450400692272167822635460920367169983817792577110879506985529003892695821024223078618380305742012590233056220313857755842037760922998066557587014827406969712586799733591573837694902407378559600865917094619190829051221494861293634250065281360012284817786270096917057750809922896876088654232206426175104580974220201942405398856833253143064546387541113488859019162746948260346179846316958378769881747040550571290418820238433677098719575274444021060981940013556530889324467650496416547200080561682778542330870874246413653681428755434923495993330337556744114363432091058044095276084879912687960398078301315738156221607529954665787255806966883327030227724527742161681772121600042532743282857759793583314717623755243562706320116347455645354919888340619170385560315802468397078615285056242141039029470129954329469523232237826482778836523776987036622126956296203333285836375939634155596243798479626891508177491369971841187406048054235419511937097391587845132108580863345522365544563827642196780712282538532062672987747282158836109496714066238340545104633607212528355469089811121229602480135575033417340188246908188310030261391671522771242025477162697349258377408019561609552715890568861137020739542507388174996514371966981961802254526365377583558296980906492412250857676492222898530901638787668335476413389350976462911513211164880036782369454699803370117065710453935186424923505684799635235476224406367697835006437790499252495965983336950034652455016972754396367649531876509883595082377447555105678529499924511780475256389091445781959262105793572337855345458369798925160797545243052519725755282507382140624870054299612437108991562688463640583965211774316008076180800876846825465339093451492523876177015849345801948670131648280039098156089874760861803326522318778128015750795424563376733504058652867835866973957901788465815123681219039875921198086495102175116871142011456268826708309160828909243314659615717264057127807164203103191690490900687125395843078008353959412868092105400699811671025256871792189544271778748067513271413074119164605730551465161691351537509298613979217267838370583263123706575823329786620475102554347118697636259882477548052450273810992175678438867353365484224917406265485296746826278612432578983406565075616038999999178981354043506668533671337904089092840184489034354649718123943406923941077506380221970568695580569756404870171246855824209672142839637272491125740654909941378614918364984815902753714933892076065152534168425904289611520300646353511081704507316127795396906765236803384171118627728897386956789339587490857367558613424076163692847858660466085759446741091559807477679476426818768843355961947060058269946555454204258700185271295107580396555909864368618472906775336899558680488104236752894632378227654121673015565794976788995062598998787022646834005841560079537295343360496713783152349303576607424758897313771712972660895790406739402510101979762940830658459755535380413853122891937709457146975927095825973365900201609707380494975738887309879939658074821210729136009914128294199359000630158962303886234751238584283237328912753126460332591117193547372055974630549369605041253794426004886496979210053965610050424919988332112370522780377317674692489342757597661455058846412494728124844192962374578661244197603056586734122114644064457758522177166891415992366459038989184651991898214225218830102928344822800490260056725617609041877819695831084967413088876380671783885356158565234512616800794156352216357876631831310134777232660853030342228413671435409084919773813071316950545748719999775632420292474379648448368757762087984351414609880407199363569153244540615796854132864945895227004481932702084085299956437839563123013625758276980489563833299648387230261593840761637018425164258693669654214455076744442241605889046920272415707627570274956615810219124171433187703947017744068198322352450059962404655417550686466708243704849743339483544836077597950860230853147803471025988476681611309766978233354083579042182270783419458510848242985343179326579273779960482546261804510589869064708764137038228213431469401290414573022928542893528885513850794792575571785468940298027012073718846292879954798282512403863729561608931987910965436485505239330469663521778920637563324881519490594869112719839139289948941788351886809620288543000865548740910952637170051342467179694386998370184625382576019569166727581278038733413760757680242375541887380659555592330149336151428183554881647751291006742166472399107030262323311058646578229566084145158209089694765360306599808178542036675035335893560193418630341745401081240907131760742214136894966459421395245572624346356510792911713212714349988267216639067517948472958382080664295929663380644032178225187391470414385361577431383414426780466823209700947619532463068855141691941125266086208863314929904189093502766695388717056883420194587499024022942201058095857238273832692239863721856867004471888696031553091159523437473594187899921405436540237576424239434381789896564653443770818634999471901515598743080926415671987067879818319083771262427926783172373674701583098823138685654188185466061218903365925171094586031966920723153655832093051704269282087930136321107637299162347122639692172630147047785245460220649000058593007293836933920785285622107339748843574845778909765600904154269043853594661997720209226775633340575360032537249863240037448148729808219635753018287037678053387061724314526152566878999574722046360621499202942495374187161327961545922752025209808311609865828777646405132924133425782309747142944059461057982696096595011642310268000285803482796952114297651855612756845744649540643230459302618606434509121435407013929455075639683985525445773680930780030456645421218638927590319543649911040449259132456617096427743526162364779851682480110170639111628711271963185282337325959713398879197860625221240953748923830877628300632396042893691096172134164621758467794876610135108331340559157801666877319668855566425276893099975893733442501059956557126410884337825167480793412473357693030983905781449376847501097394207458161851786475549623049293194120329509257059764140609594862063299331291631609446270199362250288271647474742398190193389490670927305752195370306106557650893279315071720406825904545433845993667216367290797489139057179371068223856056243394392030469243124184192840335826240061017446468476634271647661279242729145871554701596519784159715742652104833780500055142558645241806757437485370181878725704308683002022807765369187281660136231942598459034110452735307064104185745571485730342271148366112011799720111478366540324030736864151463050557712658297858504287359598869719540157484522436427417731943850780375298795803457017721946528580215756006987239262449648996455143959229912424463154504358954226119210852942356130409435072595992746622663204551698645451564036740327761741982641176457614036590109172250982992275612803138502830921724429465161966373327888220185179014288184552586837681566776441846321709128602441923597073305720970585732263089763333027292403567256757200636068381661941334458317731323598658699102253778205099745077521402848686739232420698720450807514275844102759738350109641375076018943101851500216997627824502871827881262652525883415054719330429972991580934810470835776339675344586893365636757577752759288019590500396080334757855772007456122429891679114468631518200867261141288585964463044764269710279808852696472348160952082321549060998060276878586012536526723388505285733169806863054350566555814584106765648072841866437741817976460057390505418702017441434843295145410951906524859148617799442731941943351222810658211460242683381670108785404921558652256175523183306432738057751620878817588228935111300793259967247553182252411035606693598745005310580305438315222207991460062528250323416274347750637599120985175728923558619760314943008826955279541540813231787251540541657576894500990843945523450577717954367393284727014760368569807427308364905386147269400137652510957170961789616752473152492176969055806961487930545909162817613005185665351895246807108054576825872110972418886332280604555082706319292163300322859240377042303535245043463266720928524269543216753458368854385638632814201679830056197342531110077014944555656242382991628891014709053864652250036230660685203499617458303547903403327301957590126733991571567092726755799573549899384146139764200319919449695283610856362711352850717072647176424069084122221670605842481090305241220896292458865759062432048184516037722345114429017613122924456212893307228798193350371354141333168386068034576609275478308923436600495585211499116752978378780353279340602867136659408696677218948870739034366266756931778262668826019910768105486643231397395726484454846416945317570698405756848619046971732439719731267276741132468406120768979316967748442409424605056458782744235983564230793287692577082061564347396721562223126244303620565061090298603168555732856584824850834681891820214164605886955935314045328856877083044680388696915657019596508668136388384737583959380541348888036543910806352336642005995309040381918758528169114855436846926276644389340686784813989230002149439693561993333069778360623852365953381063830288948312727242167200571939988322792998381975373371286774487770039987299590991735124092988154666624050763930663192601122996500508162493906608901190478914134166290989753407648312126887859099867535873147056629272248419105445731947917648589980699299453021337003435755101003213472014645980846144066707339283500258302828908035381010195756695859428314969262207934126560067642110127252348199257478598712948915838189462596774327762222945947793737634792484661120596346436643163930677132773711832542889734791339846951986286993809369192020919810965576972463791154335627877172285000469354189249511767258645199056841522397292821149019608791953060647432313236866257907810233538158090163973404422633949469625240440670425365452773894964359008138978875252462251129171554714448499369102607517670651287720641710999623460393361911963356302780071277432157984309784226873171537521626400005885979803577915691365051120789885284063014930277405932339528880903640550661417700994872304753084725731925623324041255115013630646050174293388344150080610175148135819921761397920563266558308625901046960276085666710051643555695808240777402524026848677859853877129776313691511353630193492930191793364480381100472531977667123199563592602324599553049711512452123377078552406010085631893994415049145290128267410028923586167345264139875985841586980102952037436062005409341576517201490822829811118684828926900254867006612071697147590632721142069089871721510116439829347677557929795368419444468810127326007742747228866844604848997879463072890982438170575953447956334252288273283006688705447311936099140342282047329632462768965331344373605897242438034197690753213638970962944854926436938592708852406899106035205934985866629538383590053898836021770594329943865408530571498677885423376720444807053898782396118956605679429265190303803784023262693641982089362907344941146393363426085675861797138250401153932947825046271739676683996838642960162682497698564822499206395995656373500014213373893725396746012678724087931545018150121810765825574408168663614303514499673561108577385976198896576595331089773920768497409851952606346908265713571855287812602074767713864115921665053200533936433167024147871403466016879135768319185712124641334768403677282855553309535982318370193256102869962215644477752860204411358679780757882458826914741391495276585830752816447253002186006782134366022469551087379542403014243288196827584361688215538984936524615025479062502109380355347576459486180864170873987173689354394585952372675456708732525672208972505431979877824196116725376521676745607598796297662265816351510889416033488119100467237235144001536058269215104972950536471881688863953696438701054566821301529812058368539643999331474576313247481897429993540604751710879439329450565152491268258573026197194214250872561566512756465796922767141575729749443699772327140441290106371033543789332372930254571509988081986375530072058326411634557735979606126904337595301133473552141487308228315244598992967001697227499156057226235076248181218178401000274325680171363147748580718843210188221428603860726070195421471372718623561215262732711647222778574123683283418468034366360087943004297864512803756882591359265392520971491094295226693518052681668221871050502521341862622882026523277027768791139353971115166341413408908858941411557684162031975280799622444881945352514622910186987508221898873671617195392889755043071039931896734163689077320341934448521952609570510687749114466508790949171241351671532129057552906999512996814260644686132359542977425959043904321515103584032437037177444285394101586796904194687124800702496478420379123301411199433439599974214459212700440864631399032857593161174832506060005193546233226002693811265652536491646747314850703835557176755350395326836300664461152932001975062984755790088800277931928812941144277624221828856741036827008573348793326701048154579497329152015057828838382880143970313987910476510633920015749599529126798048637744819371896606688748501073527060480392588905329223744976589116969426990977635311472488506483510367432156447082337112270137057246733141114478134434760129912394184878128935627426913621351616868719967855349039679317333647805190174752124369283167346206685119725271729448921547205819383783312720391327116361313935643429995988738516246588179034385321542087968774178638774210506126956045495420352123173768110356559126959178432146936793207396663254705856695873114012444810252463287016598224271315237324438889907971225718933925828215127711999776691020090517614518477656633002011135052625092973507549920511506056177951797651976647234400864385380683343229577798705142283473950279816149955811852322623743009210505351721567973538173482268568116277421256699863234518970407224817890623047666593317978505874982722186759075233828147476638721929158369576853217870474589760975087581230500537799831672199873867604894279422616350580482029092531375571541489799575909563340516865040428970322384749670421809007890119448206630770752151661998986800187125221059030568258966141679749062898754701829627903665829675170048509816569767857194201057660232094027907757006826346754528264389732916207944615656674247652282438106421748049348353560538813997653407121190487825075884607139376612668671938727305021293697398325607431503976493558582239436087766577312892294405320349158294324431850414364047132192072335792889039427967625811162511967443836882994629685179889416028885105353913854131887404097947531231190061579264081087783187467926143521091330189717162538551061548531096768966057946082215051301062525308005218070895792550492768118744561606712523644023772622083121784705326741893051778676694855517244909618131392120284836872736483722412341264035640904663357452076685448315927457090936985849929417556020730195720949098082870790844123255983700163548595514973180859675855917005085688149895247162824865977048418312548914276898135888376445720346807300072885392577029551912328091127819388864937357045205029518787800707104934505469348916232526043938919507515714585666246878617874471001040021527985190305056872216634412846693675751964752209123771211954693382897138222329654440673973251779939806658066453677928875472379984601555026390932861685828300585598345532039318522226026784359245758940040559023001169263034833398581628404550415248777401322631379079105287282641680061310436679611185018685338171391001465920831993762335189173159790917136938378405804870273061974232059021444727572724535142003198300005097168914270312828026560815173865013063634722145581420105395998693647332380878832113121963770219432480580875812274979028305881307959542723632638211975944503685823879203472132356929951085641590629485800191337343625703296934549959283066703350050095715382937094485886622797794536932663507346223057197797763996159998302892049879053040395166115087435332609989045234150545804057060642393799934739126662343686292216572727072227401378401054984682782446147143461599493484363990609275014367839454806941983701625011556690827538445501789187960999931733513544099772703745117079663054351743507207557734363659867912143450383352222196225724197692039552186147566183684405461750703097878895534484170373469337955523585773929785778254871299478350823984235498938616061193849701688640485763137072180348643502982379444429578701352729773757467679085689280262040951566005118561032591487574160257144802446368127493766049304827656026710172451495683206087609940431806075402434284058564175239014483884913946629096953478488678735371509017249666720195031852115241379516425526891986555962414514924352803875703425207041591098464572058973231867410223815266994492893100210839682190341995285436056257833245647146436237449346744615343752492466778889809733834088498514568979707604084321420885085871814118176833087856555599396008034151208435087158856301871748947058338814056602729535109141265894239187569047965427591946827630761335173331511152238004695181740945734870929299881832676757213259962021392016391996887142048930248822445505566028489025780373220897232619978921582179279145815148139317336135706505213853798532407682694918329386182140601955662237141642505808316326959045706522563298674879678501616154254447037832240651350596147320033812276309048928358541508210978803246429706702809203515642260656861947233611339847207145658169857612321760670804864966433278564196626405278436570455987549867822036170219605126463888357560124839526739674172800524765429491750318708696768705437439076125011398541720789273262541848864096676857310479386083776371493954644111675769482296207962377669395565552398360736713022262944240499687638395806913852082874589137927811533589098122620713625891477685352022926701455309399866776357683365262401743869091479619218294264883357125690444782003021936610446128581386947278163459139595972870744448685927993964395691055690277738299779829776271787447933299775082380404424669672290246924117336106808657355679896205706647347060534175122608872639138675322812647463019967232017953922256305338149990316605368417964124215605557567315335194302081503859604727348813531188170924081080118754929948127907591712069176900409177514602150366502293731433074349556475277359913624553646036528539786556753852967688847651610731986997923309620062798512214136414745470852270330877669196637586691415614487110102537962664174560837438429335034539474184376777014161734662951191306069326872376143606548399788955111636438822182074596826590001429758393915120994180821805679230015447920008636788722340170928997907806234979191037019782451388142242677135404521329613713957167810951698977532901985488285104565592064485731943930106371384915429638777923202700450148494566606308557700119292554537306439507573679204116949744444869298040863442952448967531465660374603848085557427511398306812417523987958513900697937020767076910404910005754898474387310282238018134475844213770180681330265866879208670976085989616828001500963963163602024126696602783296049738621332123439240646177224713942709801673335151522666715655612959130309327668957291367593077447345058463881557127625472651316920281894030861842271250561995479435541970713935887059147384483622868598632458110428513619589003423096298868510832538271717822107048039013196293506309564929976802308090022005880460868652261536130541745430149809489929994041761322050277090934728904690915343060080406125930156322896936687533420263762226374030124551170131624215653352174173118464202757977931373684588533446709345951213444913996804470414665841845194627570840144252106155377990330183306951478645100125620213729934840550410052144023386868309820593598515513971333897493262596992350686174095860697791983981776201117386679057113514947179785442625378789157953176837721442194622521642585830094914104381989393153576170289807638203290469412720468819785717053345394625496011063695530084938163673218247616939328610017977802937110802730800312944689324363929052706449802598869552721659226136493247928004665342057390363786017424857252227834274240569505587127794365883017854819951545462815106906653039268088982498112675121109939756149673971403981605374968346849729457124109584153485458656498849174438809078690088216084647885443563619965854902627799953067293531583509068289299245790677661103566765797247025016475081055618044256760292161843213466474150797854237015632208850832265483038227478557010699807274857588743789807109254835013164503794603091009806476744221955802273348412683778448694266127536803208838160237286121619488708829088286244369419196109588048818792053655656707520752430111271044433054733973873476922258129829813302252993476263990794328520604856254445942289731787956390746600825911760219479549596826152618533948951373710723543776321781074875483541044070886633979455889203230741436773558743299060615473879383295808224754908402979221250419097544402870163999623510551769228837090240903333462028402986861795498855866659562597568476451924363789398800344928409624583630321701818471532318788087902530721556365112339367848391994952380902697636106084623137553661930482349576635525913093054585833992777824263685042863506833551520323193092139625544878951348144595303922439168734918945794480671408700930513261761490114169852978832747133990275221520114087408555126273688599432833030138662691500698378997208489793343661346524243690842873880185710181148464735063787919109645646019403089825433445075306170880598675599959482821204990462442190205629699213576025024986615979835394814336248865053597328618230914759025253278236562429642514828695904662315225028823488205699766406195096640418080884724884213357772316461006322050130934754059097191864615097061059123990703252191196761689518633181039212369529250633255831116994319605431524544858381301303439335095703812682579064160930510815731541065923313679883239622642589113288003981808699013948565754941926416997815339469876476058332252717616386189519788128886415648215094636167519239412309030101680059016375065803705007410673048749874091828509956913007458884999185550187602378382515520554994576276884559675250596667238450482875011152097604782604779577121697442264102901766147065229147985420856873021039561343577006180544014164386791314821124028562834876360930864120935602059216658496101923404377571780435340804376696701309511278727798856036811392469683151683737365455874284581166151365933585535834726117831113381774245209234036660436897005516497861237297382158327496815138160415692043228371515607372184680881522944468761663474233180501279711803963587185123850978541534309349839986930485048330425190065213375154735069842674232364373778142700216787604589985695555740683279692762288224051726445964706395791619072813472085031523012192569187100528572795367964582147076971811503488998250777058088627099273526145539361748184725636216299470531926810307069653926580882841422491255308692632391163543649460026947092606553841604930650153484722138912533841294702801750841992061521899397076110294735501972635396656819670402244521322722686444128093787869377885205691212375617985269286670140487183843998428600152724387065590700521921216073659758301269158513208211610844646109111388600024081032732410710005145000867863125825484849480698941414453114057383330176872279635201428193867983190826096489959780193227597172954569792672013314809109025055526919473344310573611127653033686288689439981069967534177489207563702975624929339847922608222319965585519021132949682989775155329792737108388073846289015879977472833951108664867673838361117100828189304537776861766341894398959568522222048161856011072137960907127446706072747807175695470977603896665073634871801785447993383165323436825810303214856394369022407977384586718373045581694896887511282698448621716614511152340620863475426032246026201278379146805511123159308636872920496689324008071900618936392712536858820200969151748754345031093170460029613648453293457654828168378313271895645328539240197265332506016116158842033766022605841917554382887007268925581520305015232718519126128650121097054417325084032583875278264825529378437378155998791218321936451048253958903305267936789497853849034222996659532439050438779116652069992602290267754319753327264730300189735707611758449579724530215000194716486209717983472584920665352198164933255996371799302433241138713020924514989479078813910605115197592486885490147094231100570987089192829523744607586514900693314337551958721018619625165709010053103848794189282831115278314474232125410054311436712259738500376441199123370924819238063027356127094786538168912579459083292453871666313734875673739032159850744209750698101904562029685294802110324101586236224203981105999318414998652675927967058230074019930607352260001241847998116610481165130238776887004272219716931584567049990300000014177830332604419289045895524644328170573654498711473972123344658457538538586844605286190905375011672277014551042640135121133510676841258332514118677308271870144792056782925243696100070542698625491016051459764585886964514551265986986772502948604986846587553793026743956030904216664822005773271493816240195051781306050905570665555099839619446344794335728550643131505672147443458788393019417033211919927022387710652028046743968411896910747092851429047684536331700586058659778188071491996396937268207199164456682961324259162871919573557049426535320016701714201110713258827462180792291487562153833869578542881181052410743775043190798332829482673336757112721614095912461788055915279747079015460080188111255723118459436879640857431509441982043841060508219041958832152813315328048259051199778876340677004681474027197831206908837476326625069015708400528685693934529604783266026662468714443129957769954325315804942330808929902275771046435102786709897541919364647345694441400235647148549513820501313460730358444668507745742636157885369400661003144746716383539045838945715401432537947934708168837951323422122309632709605436877848288954414635847203513732762922436606948911745623574214858333707150611726951937556330569223993555655564886683436827583126035168929995687672693126841241863557548424821721864692464881288545529267341956186438961373513351608927879480229563862562807686944920638580679122873397372385042964308213295015276350860631192697784640645093955793119356932598040441669315113419461561697369061049735547762966745600804018203606072993854300869777431332263977706914078253846962235016046656018336546633459248125465183732163578029875877715356365228314050078037026489558511532414958041642895305665682003177742385557900914045202772420161361255090464401869334346465779531676822880800040346436235188097569146532285859788382886977060780078178579080261459567518915758828303093118883632721369926527866116529666091651302916116076864143667241360571122266374927874121901562580413854923139212941608716222602706430809742286149859214837849024303919275047501746196889456931362869272375781612296771941404094282964537132802636935819711864641022658075184845960483493019299133754412062631405000134468460092785220035321331604018946441132316735539084299511694063024723847824029663180228783342244475751697437592066479747271071408006337619529690985627668999023845407520573062082502395010320801315704688270971741233034005346256712769046933481186988576513892780170208433687740593730814669251584570778974999162602769748732749155629768644687161401625044954778042667691125234094083075144908397837073870834448933595665973588967927261843949251195529430767787443738914591500236256243100144297344309276806738748864223667959641178471983014940788012488301243163355684811974569501101650137090505394948147546448999924575450747066739388088277326216820658834840888849698873073268588502132946528603787611378255977725966124077527030137794551024905516281449881330920792255121857340767301682598939469617604234342823305660115463998822583397656329520532262191049219876377941433875953294345252198222210307211989007958370603107610081110199162455215302951663773710961327941619490705737181112159830700892539207416552248280852854805010546392600185183097217126724299482430456349932108966251250545410409917213564446475708962147884771379787850019270390444477847979445526580485216276261821697510203592640333664050659011629613831408231059568946498148289411019281338892769752979817567687046684672168060511464565782317858480242597035582527618619776424395355470857863164961587739348311308790597456711804491401988397540270791908219290215323926448618940543283333316423897367688864512038254266099422203197312099813785110987691147106473237812923764270701933970521948134135499056869869422568768788095902647139075271223987998356612578972307454691188865791405973532976851860888822074039717366911514742213123774923881396725305168927983867336322785353309633399510711574097603227438043659827721645100956807804224473450322756262928024524388759820276654240083998540643130571713720426595286206500858521302148449186064473678927344045161754241938997882024970438432910580556282501679256897201149826740671211663845384511425503787034019623954588386178155531507436367242638823246445341059238095654811197120413542784690578836537336242757201692092068586882857112371218545526164486804992161815671329429500615504524462217383304074146262657355000068425876098196306619249967391939364865311523833107617508825145455051943601340214966394023289173612152906759075129842614864167637710208662346985246076438677799929036180298684333704538781159838921703201737190695497305291267115002395183441512304078038511314131790095859004073221011722365100245312808340081859282744364971690860601703997837242996298075974566122067227282817482472513560507001502740405338897467025950984123071276967793120933185900455181308999150881786006312939218656913943737119237037377758945903115347017754983661115656835880967009790583913958233690362116004715926056661798578353365483167956101096830632633437463218731818720634564374012617516151153073543590320141802780025125854344099829763217358602975441491854574117603153521562506544248522526029268210955743612310243912218842006136807802883301450463212907532792483558446236690971758064111425775725480379925465529456042294521497984262887539917258975513351854736190873776639666571547678283700793221524257359135091701042287097420655797048480651133140346185824101848975006764772752092907781475652230223001875383869337441959569601350875442599529842822960093181876915467488705403712581448394863062346896892828824228468910864030666506790460189026563236396790355988873215354061878978667801006427960923079152621482381509590410526770432828817730983795127533063469805471378689316231223681775032164157171772328228039118065544362639656739014230381331591894370879609499465720960742869241937354829352466866883439667806451773291417023974080078277781928280543218694177543069480452672260262119134073171642904742116769167507716822926419912788031482695086337921151365252124447165124843388451742311197066058925762671435639268240360741494393276478694506627562930277614738632873574721888169658611646639809388031683685323015375598931920470924476729899780624774501807461847589690701923437577195569270560400449951502688972816451068931320577598420668220961064852450913297506344955238607671697608154345448353934824365902288741566474549152480392703347426633530126021158403816889393518083197925590253610926189410286332924424298744902215247283505073861688061095107790226397758788773016397455890797308148788774907924389656128214206470217677542860132117849882500532473219780166398090088847911813794139808110033085290695875880499734317080609153891570867448189129974168641972347930028273989576893070042056577276341326765999710824699371703321301698744057509484222048627430338223897730885882728405212676711114795474131711939339663041293439113438135343069717280909217254174930767149499489934189280838830167773672534122828882524871502824626195650024194038710180665322081992322620924861535017744847384409631909196728406514060284333188861563343665719527576006556156329137844276306287962882246011989368813269018872682805079917127370585439434806684166710204140686234953920493379594837356366705601673821361661629092576322290947822779121636475460642756128436305682503292748114567433511127040343446819730489297321717501232929637609153745515675516545537285169574276985047458159262357257577560727372736860600894106621039695242569613735846361828792593613703409550328165194075704064904669449661513982754954818488990815323012649764471884661446508487863380952007472385453457773879063357170412429906892106006014101065506978439493824805234419302418995944438492849045455983745548139427096570910143341722493714487740737051837920392963798145736353105115887877518595341073668538498542306166661940206716354131964213016780533275995409611246668646868579381321392088971369891691611333502526390501695556038327668186743788897328239776453545147195805179636147663321470854404747136171990452823488357745104884460994067986016247622958772682882048349379032313874201624256462770966574270104126087899791783724785653892155701279143694351034405787644369030186564409538102967203156951294554536898470398696772759729920410195731084027346981859187243791812382649207370501231197750070035803969585863040488853750562760676333128079566579940516540092514129731156062665008365238190289049290688202710275827223082392594843657147125707140764673443484668818830768390481591779747975441715741924871859956125812412845080747346141910493399627383055870079614386514202945663728568677803630246627675942061415141132031253960136055852930814303843522270243788311235054690876867028869272081240985914755120187045545712217028025042451089308049705496069981027383200932248559258223545630004023993385679631418964689856450671202584827649420906933685962907415023197455560704117551681127666574589044998182308543971895925720669983565496186958784208546815026097508780839639031428108706075191422823257833567227672541889445532973094541167495691500499090743971516893904975005252762686606887430978919783625404155326341993847145613176429983837195277745737201106285937046944025709794978319257904115326587283528551903995180745911838270350015751442873447582346764995569755478186979846201521774000498208090487844556220243032572532306835872836059772913814309743092183879583373522673560598966691060311985979620046831362128182197358651896342758155352589351854539968227549622658609977808649334205388426008421097926971231160678557882780483670738909917639715112664670341842371787880372524338355997759776593648778832638294185152896688699946775075505300223598940838431789350379955896240691948119788236394214317458449833136889908584366948926316242884162868221765870186014986970737773610774123320707830451245305111613781183925170252116378896908905785129775322279875682755944265011541522494992035829738452461098296746261362761760991314614329906573879100510539112579863419660552765379510342957699802991258462501135076437471172372926302594158115223578209557065646904378219613211534107582502219490966989033745661242417145347907120875679025876962263746571775497553065108355553957799506666725005478526168723931322404272033379540440833999486155325621428926666136121796064746671972501841900767134426128862521323169307739406092726167378486576170307684491937922210501430624845256783383051994355611265834267733860417794388592787230160700516057297383259181944978685137922856369026836660299466295416717401482010636515968631750482158539029872298522185354790748580617724900960248347128914871855336986969456354032810748195086916623751425320120898742690363108015367424930599878948231474412907392510017264742073178582841415626892860573346700428954031986846819101284224276228861854746436969062001589483708355652783634025682473494160933857061795395223465406784140116651432538007193788505855217943427805303887533958246029270338156194350119717765243157049977845860276561482415761088265715445560015340408771959471200733303669754866741496219654614581929100003143197540142250576263381949625466998220170507787479086892423552042070849493116922907563795264546520649278577139353845709865255607256978211317869300507961103814126704682043500116119696018305221633723843230874286558248189605898504734271525085331810677946311134568866186621377774989749885070664107788183152686586983129846490753808718807246469283606452753472031493037300961485416448348524736061026669357600300618722098377402168383859546884978754307730163580620587117369497644072925651710896207480189216100838727576629584982030297288039109860522495958451235269237831257003768564262084431316839292821301061637560686098232044896315935068531469277210845068695484071957326612294101041878336925345684891759999618744679151279325516657879788032381381401100716056765658841108806256409694023551506054688327092201437968105072874977879565248146476271077185495699205392034470400764403173917582315564061685272761482234145147671123472269647398816680038877044443213742645096884251453335387965735158508457124473587311266125690693172121027185162814693234975571420185371648008401422931293680772661485215774700498879329390240883753529455598872122023791841948072394017915617036405717018806812024510022744896324252537187018826084842588488706847529048814615739039752663032642237984526803779374566259861915123237474292668240001341277718917626728635250577842789524246534456332212452595919505931388519047608917607798617567021194307552152177308583217051367150346457478821742860271576921730664229342096094546310954469180352198377933630543565204555065750559362157899804925985697511894780847357817366162984484677533400943015520268618295906785665531574112166197218734950202186809362631317616937101373069929486308570395517480910274019047257961917353322991263420832302908450533369801448706126967203692860453093202510625229693865773791586889683112082906458772981643513748443706026015772558238720579889256891771787337119056842574343471270886953331356807591874872974841365501202411478754963370528770648642959284328155712345524980288415356580404446746821062150534126487662342873479211499560315641175522502893602082903621686988049295652160627840718838818410736822299132858737781315118901470808759978157124089494540792215481896145231245753023321496515483225870151856346681051045632071916180225327755753305480243138680120344809399021658125450368882131509181369522777232919498235550659774219383316243235111634965425049854809501356820695743568734143432094199556137711620367603538911456081630197741445694389162230277266318914426272644227072311962917228045385850121380240313765187006172721500195540621463807826993784376627739816312964558077144338150349752360617579666468590436353554481671778693313313877574193875332024961949544416061497540237426628254888951321949477659520327350063239984804840427643609078110672583484895764274791001537219647334947467721842930229060106605002460581711704161124101956207490349706421731327761820732915507149080378997810445694957446798747450700898729253950730075759740869341575851328475135428588547270931996911462122192678480909055995277408299697589408510855747320299318501302400565464458504267301169780811461786929901999091837790094036560286189093218777354076410821404174691259292584526983772501593801437360264657887751923681816348410848887588992071247445078382926550549484268176633662545393182851948823247985128560573581514467743416725418653020697031935020609597535934115494439343279883637068589281693792267497895299853663342003802324617054518515441384925647993290065098680072351251337354254607109185554687239672185234353811983386800177836233047804085038330417323320756884022569713663132541564791154236087573919327471026109860784752341375615016569180329733745319498903832171398478945241805416706507652509319027345346684523530081049226896247195981693090343639572229173017445387511432653966225685608116369763767215336062623485613598714379800341426784613912336917516113086511422659263098039227984048352034324138441217615756314686922594458625735473036916804108200505369979072299852879198527756676520800875785678674935917244639087598957234668108348484751774988002867634298885537315221815038824628025778804432307759269058450054851522664719662214309894172705451184754501677792880764977654365932833566613211958204027236121248089127245577302818606117279743010958084718390132442257158237993892316943046100578207818076835533186452048900628114932187527795561071797499070776843995202892428564335721635457738716616733505426382637600006820882881950266920821675427645904920155740332254798422886897647811713268457999163382413687742805367056790263200592257191764670042279778826361774870186178322162005191792155829943157302127075344687209942144645016557158184089814771559931362296267093059251350490137891445902788322752198561076018036904693856012729286515603189879643242773261947935860539170348323501212037661891877027419021869053814187090549394353825997131873514849850719998304561030963059915736365868886092933807848767934671643603681386238924215445844882463374055045036886284456038812637345045137680742950609749211785489076496456651744549185948408790019131579973470692584306643200892711965624239113190514607426131565073071488754494868792537085539185991476304499630045345453840209756209170252470703548817770801998174504685137622397436209651052256778914670174146078683823140063553373524572178994854899058417449652887729491024039050023175773803810138888793439709277426320250377178379390985086435424972449950224849030821381233119595720682014039636324153209412821919564947557017261830244887428313423175094173863188081311885431712981880386184821843203277060791475441656385368074638080675417163200070193726164926291312421486217908007851761278762856881509281978469657537587173987773763268186576148679547463360166969791201109588128383737802081876666053459380363638170545369197429938272876465186670871028241645267198538259481324513759949076994217140093784873241931469668254318642607100158528659231249508921176189893518508614382667164847358807019234965942102061381148133151651195685923889635608203223566026073350310953482308174549013943594788796331714908878830949469762986434019655075116660676433497626663088048558285281559849097933777254855175286096366638062008001348528327263242131193016315978954526824782801754964141905049188332110607423676991657930931518461849604597279215155439701004383546216127848833228869428341453639534123802782188658491016886069881132525649398196690277215785503072172591905270856969526627882677534512335791785229813973218329567556268899368886556084342005914115652980173580990967659348935453680812793860930485380407988539721050696626333897686306752508333448335592982520831661583659710220357889413601803801141210080444851807654918544974263728359026173740455715597395743335163567113318832209751625662121210235244532967070561211781326085456597900013853009520174601051408383495863678079422856999924175985564694072276216651980130774310461991368857449113879064800823291994296202331791324269867326287492845660232226706005775043244445953081717659292093882433297316357373432212145935615294254985372315137241200541987378302196715423578265793667489503786431471526700105783646130772734437820286055881466436289510813168213945627485268110614908451526363615932494659020156962237866756316429661630074689877189332783446998549131252421129653557043804078748307544493724630399195606066115179319796053757983294943371232813103267756082457387987379490894531388666152731922368460256251216667375654391176808813300216994386389992634510584927575201766100442994541399198565246547371695243005126150386751945804119392188330065398499404724750072210994774558646653412586507593101453554167430232663162237729539818211458349943858547763330624945502462418694848555213718154963444667288096429467200994881625742806098151405446278941342984120937112058837633491063437690181842591830331089508898534445140493771641527467430995064299984863227360484951825372892232408055870270618549108007988026371048922565079165789002474090394991065324619736315080078862275811987096342004298345407680865706275857025560164596627283669003787851162050586399957531330235050862243275472285235584741573348950225129268343841998901084841825575933123865678404400564297512046298476153606853326512225727190374707384892738448370589672586754399902287918915100091896513639198169374860632990745277931272796164228504959429478013166891783657245575902998700294218522493235230419392723701005609885004067026426252759294812177493416121992190847390771943128742254820583692383174798166160398298554613984706640118612835654034474199548064644526884466010271779512708137788843490926499131945789275674888881760646884182599146924187145000399483343912181914127857285820619547939463699146777791878627073606440091645920617071020114333220815705171172144242975394911712044814590450233322964289673532253987724443344620471927946363389738213830148323228474465486593701534702439672374644249167266271489881540561538818261299942010206151155526900874920474207999422152112321541173970890172087032560749547344171768273938904136451384666787323769019713269615711552859920371790934781015383262024456743782784856674819046456923392463047899031810271580110338694160215691897731633725021986626617916998855467046944862244628483668495119328929080827659839504682646704803630286806665712548202801647883491884418680007470886132791591923015142396617827230461176824406528251734789953844446316406667230524296545419285268681004767620291427678308121092750432981558455548321535696050092955691737436394359156741956405575726883312930078025868281446288211888552651369088885674624297042123045066254348457538850648902580251815593712054656287963733927015943388947934517192857843943990931199910846125628705287192256824683570611236518259601928840501007949290935181527188131747120491746501228321052738458254389941867452820270569136017920757372427163621135174205969802684551213892746836136116417647947148564236693388965595593136103697614549954166582231883822101054332255418973389507688955953650795910910813276034559787198298778651548356790933110193765053751881816126956786313213042807381482322348731097219483522026283177309468333439061268806209060377406266616927526718886559174838146935848797350729624152287443353324976091669178454651198686211083620911417568840205518011410492692760100651737204604205056523747965624034666552994927952236163665852629828869081541759345850416744451693714089924697399651415078296083836213779507903289944341265394443312586819587854150940481771452917101149619801946474283112855435251554682100728101365104444036556453241401273085356917813308773951215758381099154039013333181867855759060201482441781370972155423679967891290826599432753401850118237452950271215035742467767736067801963508949811840028769727037791614675679449805313440538991548716872556364650375623636059095751333887231405374697643117321757152286858475226786847548710284024711798713868614780313214245890455709786067554623542021928936460628534055444791511106679300856494052334850579375361027953211488371656238146404547991133539401647489672122348589188754229720393159890338918209799230732078044521854608040381166709427919900707551083668639673308091534607356130602144591586212260750138126426727852296612238855791120933089611336133134105230918947648650301276504839455323601328856295679407614528151824063281109817191125275965963318015014884681167771374600282846015118175569507986917207495844131894717410092825129197790515948015368941687041580930508127963158043601413061797867669308691504296357023463353233412037704281549287794372285754800372075231682981054489729562124072821383823031246860077301593604135336416017818789094880303516809372812372702671177728919399046555198753390969041898620542417933739525885926931972571363032827012652557485833866739565190207058836831752619135807017452357822641161682051679243761048913226884703775399534313919594744913818328697846318862401298347420432741428915109990745694596987088635272801155755039707871152733168570677462580339545966028335853521908215315350500074111307323578260016487042867625002344767272082188245091266143620860402685142001700593552761907129487688643986315025206648672148377405572188604089911128693151731328014991545172576766722406943456121019481052560290539184655716728691792251992883337534564030855583524420171934524118893561252763140900174436493972999549294633397003786075174583613404427139176829522845715806498994972992794840375456267882420559496239471558558978691340496019667207860715255684548096448168381335735342918638389286123860697294699561981035765941187115102127784594791130004845359347992429862196212895681514644335163543051645486001892286649358821389691457080837338797287795564138022337531772119247823861411886922605439165177466493715050442771443908971292370733928650325936861267730742570599224595743030583237626427957217652475236185875986558719227952297197758756154938236326190723792775415268621980770241447542160464188298413696536937677375409464368271992066475427505640851217774667593217047419311128949407733127976839559034285019867837819183528027433657431039330866330224620564176792691218907221498410322788362720517126349231143219647926231784484744354224609598375022162000410673159563925822983025804464084863326944605826843359419444359981805797387005105949899650609859405599209709168492797248563548291100999936148149537507039683837276887393959354527691040976842170742728166838957945709736301569139789620177721856354316108212238586444085499724974259785361516063171454056916478510689209850917798011342505439072823955955951120912265032175664880347848384102105603716429644278233757337118043897249712553779563058832632693436230377241801124273661637647882854229993287797891774710042344220479746480990612536822433259029976099578721972187873549027256564511854150611069243767890430398230294742531245888430564995357301498914635383622858725372653675825694578708495953723484959223692295485557125601324667344381257796911644946440403723320942757064858377516759458707567509456370211126623877937579251009512780798309867462649698905201491041575872938922096237568000042757829081868388107307229583856050101915054360236801721858806035747310258066650831137219351678681443104938261315536076188641413839164754710974583696760396884136024391689511756951431913889028065565895188853414067527405666913100637659029436987431450279474839490969162640186238237798573335633773782691473787223867453508948160700986245015709157876169185381396667330667771764794012993220372520486786311249790162740962217274461962111458002394864708286872845680471216769982101782277212626262396919567920310120921046363420414209065921854230742841866347366475531864248215351991199206323774226700634760163017508013057330660111564197814185491844583958511454002463658540028535353978046697185475793045045380410289144476922920277195755510149568003005543043105917283634361890657649447338531428792558502579566939235459911224101271369925493845192348709742832706008449206477902397630662489641069795881884469522661477834615689349725695751476972662496952758167913818369153369107088705271036878363992941066708746427737381158129835259534979154438914717925975000475936989630034339311710505913854685007470030249555907464561189332944322430730863825315932666193862361366281724671291789494186272111207155639727014075052390546840181728339529932499833600561648224975550448988881586057390488950869151348749017129877669761227137896832535482051550532991148788976349460884966851547110144447322210569249137034500555390302779738971576886215630661292789225226954401037227141866980232036549010109701075182629309986320960046163724665897260518369994424466921063512133000132658223645689558268426519940942096095389842162167208493246402617363474874393084417189436003332115838753412506678722379429158286106183156200261654122738111221111511329918815197207669132833225278055206639341269008531318151665806633167295573154860996440240297667506188381651995918310767647931882379357252067368985187847161163827525543387827080265874347052872291260515316324940048318034766970062197870743337258433763032488143057371618160859928249412568375453867762370535552380414447322862730465483444830522476346959254091546667819841436775901324264517570159435640615017952286000104597034292687388474937361410291521020481279683529659446502949537041310393376404902584795166440294751903032500592145400207785245053398709688901637477623315222922722047710797480349285740060372233283718359900281932422060644152845072176196524520864964952085720651918222288383519002065111941614720544148411453584440471742643029674657697130791143982061980715448199943805311534093865932998649236120566671990947595704150539554717854194001051669325128737722424611298656758066866131433205389425292519751937472755834461729143248562725588441400506834135233367659847846522938752016450577573653209278142893441567663358896025521309541438387010353505385239670188474366048446712321546456798116046238157005274600832542667901713799002505356870759845600069616883882388397579627333087741727438008116631237819824069146478342888207963923724542220625036769914050504426350240836465134247939634646645393003877070274889061303760505656184053026937991803309392521762521014858365285230097587870303304734127661012329428332055552913072945752026778022607899860288444171764634440840416855885733277085883701036511609942934541472330475314782631033912666350156877929199555849216987872125972728212494962702916400418570073995735569151588928876299221615975279624235245613395488332960206110205784861506154081080029990454313257345776630841881568479493539560906823639640058978710124153898608071451056196815783386291284494321831765420612380091631194464934680067902305075073551756558339126220609717807349858594593261441763615415591899278927148368799616694903796941910947245126347639167593877058954861407228591658265224909880131675475718411454729050495813691608779352696143450001481719936671047364524542160004947194302513215515883111702612632917906104677512757627492312616369426083656350474332121195876337419886767208655163041601199516790011253019561069751379538681009121301375285262695039457494873324637968019197877297469191313075059755675785143986682500757035446400565358670999310543164136237524952446340410461015773564366448413678850489173810315937086150594076926435721645968196720545110662727181915631287771232969000219483086362814459500996883602371380414565109684191396893846726426692052616845683428055187747427944201741179060538766635969444338950481963452727797439854757824153192169151093370476507839033662017636111479702888920975838359601620934907300941338212567221718439707691882918116728385133380792479788292373338734278812513248810835474733271468598174817079381685074731596824862537795872180345266353392659054280744631884145707172450353583607161553711694070557975726551645182077652702339440369533298087126649543732554170722936796331227151246313661288238163038560411498205841632999934728149096499496041196163831571531441840691355764682167839307166967914809259914924987680772234742541777341155509430287437940068430369087656524219286128404525596547242726228030909072932152992017929476777801378463206139310886096771903631072820245970140704430696733894009385623569347625355108479289507695280821122432139191003288752426859529813068234295641870315816390156336520669466193179740222834950749543206323478822201592018117462691484867021896954747289386377799971441127931388365748041047803437135834455324148759423835492438921669249080753578136174289270497294759568373974887008717419480047492241422356878637232463243430224571761774459288386377243480868139961113254141250654081164981456358833020110831002989336549793714464327764407439835546537693520831729867196200275257732236868770336271932160450780449105990465987875008460035684435694277010029595509611876182738460468622606945854346259914324146926066675942750347009543034085266540611776737622598584703888244941314558648997566659157261070875354295735371277221709387954646604943251694557102418616719811848069548976933845632175088618601771485730118707792049286073334740378452962779693070487577538336273758097075874934394529459475619866285621140953300150260555976896581865515370991990004031599878147351465951427898474227535146018899577907621266953281047922136025052375016866863631219143904430892651502825045153409176895822781087066231957903470338151602328553227116744552903599248720274625110546955723243488351305982941031103520013249680905906041006070669038884967492480067857168917965377149794639877058267016926319188274584604039795108656533296665881162048060686934389060359124544999658487965460109926117676477054633317835420239743811088996941363601474127912381760763179275699548923577069140383766592230824374064968185095773649707729695052642102921152025353881406867377856182803953299586890509457638602838949731852174309922097422582858344528989805789691241583926227956351942452095146607425805163543519903273523779690221580347277643022624304919923377752270998285229677284376864171718139116388880543837683462278121832402418837525257987646786059011452735302930364815154557498358098008211254445118483306797320699214643921340608934870721464406429104580885289582441258229645050533240650388425709563155857450109985832657652580552457436249192896004847222486675967773368776833531223781296672232449448911239004925592388986848303976331129697249567222680740096945500883766326891633979680978328926056375194098009939022498710416999521850531792760681119051447182235514625835699060564217171404176257723464045945031888829065120207447843079534756483328628052562714378301563934365796720398821742164429049899808633948380231007775222602265992846156197085451931189144926799558503943625044701659332690678721465117290007890945411726399827408001868344187778654465212679303507578611350395078643854662443455455254233412222339567278974356532518951845516160865475049307598721244364500314943962753037614996015972427666994030875991946095270188742040915935259343963149200003196612590288179426273517201695884194368658552383421644255200877812616743302861294231529037536378104715671230988631712358108798866080954527111397123602519180631028639613137960082017417153703538098167326439810572926135896239744955968712608814222972729347261598900315222325034131639896468191829701209744932105487849619220758633914390979126022746571370643597842348891659794257963194822851894759566772716816210621396812716385884030161384104800146691741877072637085141157958489345540725604916078741437112109420317491106382387797749267454114773801742035680218957386571530744361369657771018335534245140488580911186577652291143482308889989475131339159418298031863023184384463106642064167091984469458322974095900217699498989897256464047388560094495246866179953178555462802858318795811851911545487579545389303109819414690320902383638492981161704263152580399401099581163386536417838097685764453905856647836326289338156034481301228594479787455940328655388383179040428679602013498803412431814746533709914904306736644565098572416893081875928567762370277496139802276981529979778786569368257770280790621399695864667472670613719287175726202556827012298124221121362991745969534255962492875538143681448556148940155978112060173648268015129076625062976505139185089814164319364157705110823817842850765302275955124701930750660485008179341590783793399706992093810828250200983870297534907488670301594462945646729546664045496297422127089076108456479857824684544404666812927799119580611917387442964193808064037569322712145605393631580868629998105632323703170166641451376240611351476193022775428561083509702910533325108525015099484820709237555902817403485318651936356911011514447115462917408497318020452736376922316179645048431394055152109464507232427136152594564142217829466062735000984589689851394930027659048290230211850382169746396507951550636236728540606121703305932827809378107416552216185320301285685794584544214407165774324116194637232584449058419451930268140981332909195642795290799573281580728828808441000371821630258083268259340703102636444085619937164474194721593063331478129726769067516939971571152411792441588964049992069054384692317776484932320608948893620041517380475942320974862140215055225489126880110649776989272604354069109401528066556240873309888368649887471503307882032486117495985065896454613861496005093683462661357276468953256325414424663402200619996403006890917560562132215661125468795622183033379323541592728714584093597865065216440253512854209062360858743774467661050636170427905409016034968144413408630650913355568125715306158386861380039576176890763162032729380491720206337018232726015044289113300756359719607275883015537332669719990088258823300711107057227443894020757581654328641655799116334542028830967494450541428668162539935724049644323145039346137321048574366478169368635192811047579301508185287627599056749454528816923264989624614220557954693253270077445457704744527783622922529393036284707160108092592556386636717427510065865911342374829401191743000163974103518397982140339515272870025435143597494869935792372700480010639988401875632496181694723045566758877487580361825049292885259877705018155066052653603917493687965451449202575677610788009988774179198134258761543702108917916670210727499237524919925182577017684681435136083775611658265489870131429868015034588122126977313888398172992728622758092758051474852575557105880932234319865796730778792381128288094629057046370573971776230519533188741507879155003904160651050824320578204910682509286786885838256975638478698209561056483795453367057277473207574632693110216111723229736094792391592153743316596951749535010996533634286336438234725518983527026836418975158996653964536382956240290157135593567337528011247050157212966487275444838931818695454990667604397756931224688258813706430286689643985857221618234812582327053403309197344572841320560849496948877087241961581577262464227982063419522994976407285400907717349973627750695248174303955658725110959852989399338357207176292804528707657011342482072544503621032379766401783590704448205999966133275420007431883285308375634950360970102559042102434824776572410900320920790261224472568412089707711538539726846383113232779088144763281045276488449192077437333599338766698939662268141365505579328757290689395839805939081882087950169224984668973735399143384836868248294375240349662227859623255475824923103690599641871976472929128438725654226389362553176314529779110871428393746501290909961148758529895820734330079483192861371939018383738201500117983506707618630369013912271088572191486821476104462041091680137382021372069403057970942404513123267478133277559554175914270971506127090875394320764326173974938489659453871986889500818851925475791019932614809385318464773828343354007869778717562233357187377394438781588259690420955340441352866878134660967202808261995186425194919719228227262867222935057125743708902182023321044728558780315128396741949063482834826183160153344143537523600208286826571097272154348309682149991340337372327119146365545517241358643933530770391268540674854126775581901599593017075438714335425864982288172914554846009700143779986190187345581234337732314038170516653546158534523153669292061439002520210150275816206303263744885108516163510567305362774209558373394831714994325585771506759414848458599135517984929687885914536360242981098939217789558770691224118408981998007259503926437282309402560274370241626270620886362584476674123101647922638989877357832872944921771804418137339850930638597243531923192893386771846032693870488393845783606893900381571222196823788921979770745878765543873662375935563091327100951879443559103309832575310830595635870268263587687933288547915054809911337699719672110927505013435124879509879524770875518537895720881134217518262233312973383846794280322502408492081969109882289264728142430167273381015485230557454759465792926506093131079642452084040238582761806907236384623393518634022773765340842450059293400234901002309950447455491114236501653673163899034342820282658635157817985896956597440642933538995471922314039303240758945107410278964792916696180020593937573241356130173505469455738026471920890764729307600197363482956603245393018623695527020955826419351072985737983469700125613836331298392272171412926691425234381032215122182375542297628849977509625094288056192557694245552523613271784701363027568402586566951000794110273042729313893308669587775880607988765005355230941319592773071695947960782074984279350400201625265876410583882092589668237943010767873399842007722563858611530295052249904079004536315090053462998298058999728500419398167635872728112836784944104625042412208464129954844796199350101198599464989489413174412918444845317380547557043479257250084851379345486998911137840954168888759086253698900713573366082500853519066666789609211221391063267537298456099404135012894032423446056887339519064454123293342662636807940317173542096852572490672093280014746808661326739071525964887258026173206515060444126680436155925291277544544340494002694440891050700351131554265598498163760304817946191534178981055260746187604614070896949473278172096270605412978841343112258821691092454230472365664424273519023080168723929641534988910894768904199714118517050740868884609518822879679399302789413394021605710335550260026935657814464796728067010641646101568560024750939486482543345527020630364899245975221285824505300730104632086710345947287185583751111630882149165292425822473039612211543668419366367482478059458414450210221000835264434306146745024920630340133687070894248327651515975757695543880494097499969822968619678375047534753084278520563394157785704722856369720641791294618410205666096200312712549340603310277792746970537927698999449904812732989090442787203217222077320257622024814991460927185231916571467417059371499598218976776266650694577804413521130179288072770554915758026246607966005842524445048186819389967488250246293745112551574826165036088869975901212067182432754834303469686601944255911644526824640227182405169665804433117437539242931970475823036742564881779420880758712797276964682590925192365559996008464620988309273063420922456550022143163580507146721101512654286632344681873419005345772957412398827571034891426489734231112573954004104173344085859349454815453603005856315786989970401290453189994269363014495179522788099736763138266415006011245809845235877916085855162614898376488071646280806788665599593828652346040577755560118423009248689890624326733847721807377225051297285873423982532715246863360822338091698588718696439838289424692378834860793640655884771176010400890721358523378116597448895690932717601160429827995803369752119672636742946799878738533510901438722781606652150474956106091539958125693448899516362159147511856484361687491437086003606717671607680275604567021791067603589859625091595527422256274271647516936518571409302682095301277360703052762008934403217569982737153495216734085824525028205187212032427446588412025168612294370318919882906120283102023226492215185113334108293886576443062285974898553837528246024869606062885658524631263635060022793116107038526182823225751671084708734989364074729952585583423186300848138006581613266373887780546458463435875367827216310974748241558490533617266738506004645601785492336873908691238612915542409349293642521737099644148309471182111513844640273779197499649826466344017814365788507681313851272525067332346545378790113454394625910230145845940473701370826406189982107396390279692063534178568725056102146729783726009556091154603713679444051863713658833529125699580963370577054500550173182572776408461416029903344849465034767741038898316608989851898379220114242675289292151008582151119504549556404118936493375326610244178339415054172716254973413170624547492906413138104300825567840212240890314333367316278567300558316755099368856816480047692978723393627134537448934274518403189254882903990895158282895402990557208227749396801796781709473143839000275546150303896920817389130214271924392027656706520462162311937203264533520838225220476319299204004511732124669696371145845720518782141518204030855295922360521979655971200749398213844571163483392889890355269754025616697411898983593661905373760135268476827884825307599885907486375008682499561330962372245348792710768882460917441937504705434852070757192487591706911258841804624040227713865364231577542111007802510852472239591644825341743032234177584683327364540303652174023341609862429277431338782665060183217017975133730098392431555670907863343771943712726909966626743021919959571120743510765702059373719565324293733308923865967250804669697536095590399792162144207454702156400511408389203981828186043257368093016557344307797377095050342377420551114389815149471658844318993849561149912750505109532832245640839959106541436201715586426299501256342449637989860896029658375548475963277762512915471039240720417183669463860965519915806079612272178583247970657191593937592250068913849519150092866923510729001170974903230197309746642244681318357069573520983849670767447242679483962603412763819283493263467753518141953081124019003359822538480098505087980225883773051567662891658667751119759222923599921707527373778111427620246550486541017667273990904831598137986583690086684885896277732719664264403524908902028073246130368311880564430458770005247154639378289150090304365997878460169763496145297570631257141669184953698726727269625859475759328825620488023047068513810998676352167115483940426524947775744001134352157068604621355140267547204515467096589097542768009833853470866837949249839406298639893922528322034545441161613671841587571876383421079463167827004186246222737305266637172602443352080213590265361176421834612855635670644318973355956761742572182914245130257573732905883095772077974922774274271052398529284690599510689300363241020310813416394627252350759780500258728644591098567740676109887429600528100441648084071145513232030535853181671437874502549803095671752685495639915303256566598744784370820569273960948216095259316501924058919053255933381015000552460760238593037868654182802745202178761368423035959449147121655418900327578334674332850517240049485713860852499240839766463469771653504834026803066803640474273771203299018300804813067897409795083148761381013356467088610636548729330813544352010289295940344387321724946849033973531820867406134770696588412017641057080807413482613013774924920655571235723934637017561249908407913527791838411472971701464393308970334021090156764856818848669891328081519022343228098468205435268472515565231516742043264275221150500641116924370192417148502057521915710335588542615640137085358184565329067723352936577223361546603037626276627068584055645360107742976673954183926373320190947288461342538704111066105412525525677932957621647621334446518649560309936844262964422587088043332823084072528885100934489125629268151705674770637456320593046491808108778055996219372237741219030520653403363991763677935868434700296255363405141475942241601578737852231610744187183278230456951994284187341924597241708746293899359245728969367478710075992145113071817828365743752657368604466887386379503083843587960972100582839160321782694027065784401362935853718894882338361686294948684471285329483541593852094429611240469179277772784166142517973754139555433200379279603714430171088851511547402097122487566172905728251266256294541696201905248329193948838448195550791525692891454017046753674901800411261555443238783217848835264531637437098778643059916240746019801445638276336288952838289312608579714897866043316652314590610435787794357338070487121158074273542285630722247802623805637983698686831127132317801571979615348331565966827866751563077630921104312340432856140839887066212065019761935126188846700329336064128564158427842987357420755678591495493297709455530862559168887184590644550891243330759650323648859389936021730664191271930938904833329719524340279364634989905273492538605207148351465742921184329746161440947488046732588681377271342338059094313072803492531066925178094204307020841348407546074479381075449757173286501469277449213006553441714596477857787903443456307904350986066311780043764134454232250072693412282879403673487744972261383142691176904417720046504572330969792584530964770541790428467219299116492139242217919877475113577193131332754615573883136861077852101510877133973670441425988201545738501489333465863825662944594293736020287427671506331296723801515906807273892362967319539504022546046265079981939907620794919562129934153392121627756456963115904572630616334772900619878438952299073569603726972825205471457265972150961905252923776635416463489163420202009834530579783867460626946834056635813626909546156146437216466304062909240909591695731609995251321642175180133933478073520048434275994801212888623480353881472239043891206719959057342049571929298238233568916820976433884956404269526979907277023641939965264098639563199062287030155393968123499996206784176993007032002563111027359124002156516008504035959542269398004368915759956593633715988665254722698652640959516145117984000264615291525383641256254390399237029920335331114075973162769361316922380792335754944944333764226034702884891824950427533850493946448488088991709291670730148091955619859583165731780667675320235751001122735455394703868111696951644880402533293755900311659338863338198529799917648534548294176195027126909636887686534296090390880440058333285323855206754572107154318751788899183997933850849062305999328751191932681596112291450997301602787327794580979319650972763639814789834150923291412946727745993990689686918934979203357606176238074108716032726441713054139251559121646770672826855768794162359269609423121984733068359160823056799840021105701133730764675402017564949423741006633227968155945572144109913481601267074029320179842016751160365359436617478046336399156351675379962719688956439148779457628795263689829768759339356613011930824392553878767665622388651400803641207942344679799390171618503672138746547906527808161782864982526166915046562719744343849144995620734199577784032905844787808681155704354845762338421507730684539498956388394804929405778949717777348318342435715757000312505301608336374859037379517381919128962991029613819441211068621297545675718190520009471054494372530727476445527889027399832330159150625774338463779676488020716640347851525071803127385850241254112705972017955695878064117518692200306538199039239714566456509521201281087783908159080988766729731177140230547341213590464653636891086217247565822060748348937600162454033430484402082865326513385248209448866072261995485533627017275618183166660161994605002416486188774854092786837250513283709770223067879043138916200023456934218110571617485658461838808543703978077740267486295703777309674178491839681538229494402616395620224215913211813454221883068055491684976523877673610851612992945729180809147832467159551432021724330185599323166112307541193950569060592506315316155661131648840133925017042398840125273660638858226478925747805863338713265368322484083809102105645354945810234677455393092709453681555198892561939321586847204790478137907414919598125729785956081383331853479472285296389816901257641675033553725532043487419807969564896298082543506519789683552276835569178349558684527145904920575200192563044647813955603740485243026094758658800661633437663401290335504379311717014861160112705204154480120916728824648886060092049641785499319273083404609104292561776744910558273232527603956282407731101943819788957978434225695029422264805241984783255905820290813301371057970661321235750244593834261496113200100284301407213970196204516709979976106598263000269808252680001947034356144802004036867862570416120755824939911898728785469769501698439057715568175597333388469685737525360221636782267689692111268694705531853806900657648686708833557856010368209339390663958154164862047817994761565624201621503569823141217334551651362517650548163897665201185715476619125387564163116444165150296755322682683868369304150323021428432263535867629593931563856907557880929799055256705583480136255732263275355474156866817747237806883746578873245263589152670887606594842768828928633018491104394802941046557096183938613809259297598508447906310141293326763607085047081867893493869275293915678608120706081440988968647873006007211800383435647980116168344173065086931957731657775743744414623491565345581127806247275878439482902139429443818159922116910381186885551910586719488643225722471930559992852421322466679338126317367532153024888040473797497544666196990397193670066199877500714852146203722482127796338627656100609497335141938952919015359161550013814861009256838616151339035690202016760219757044009710490234871040583479720159550559588112038547434658603933818756290865822002752723742198087487262638008784769167004345670440327645598758452541000360780476668333166414501818563184935774362873801551817376423191087704290320231356334316323061269544443741349743692943003329175810557180149877527141899791153553779301415794520862178082250766411965433963801388231500881510115829919189106987707317918665260046936291088257516901297022168886682184401939641354093314325933601610451993666199919159448852698528154567765848238761652055101413841886904190199758643562897846697367046052843656530938666235789068132331862579903390257825868467862346896472347270060442481194933041369256524008000702867489719681745502345996606523999056457777669008483854801875793686038305303385217775628761499597005457149267963287378651593010888409337865828163020442535562758677509966983368573152360935007539242444187538650969015900597482743048166028159240581024734515681364019924837029656346380981037840615514091226608482050707384595061315583167817473506454792548250183522788771585646989573411872662055924216042859740082995266551105681933242785453887403035434080154567890473293664220418169285980376944498268103817757629066338892563166575501522752862518715702858644594141854921798541216323454912263159120856750879231273563197867385035385697085252723478585616815157793632100826745495570502561184462430273221636990869618130583194729451961855103781490384920816657648831422120253583868102406110400226889501854521190001954220278024848638750005447007842616613671183619057096918275471696700175968232265080169119524914034123114614216388442041400128813316587827757009218792556669496526244335226855182593360156490712655732478705063613634260799580388976485252745393204407345461441792156288280394140333615569044306171305607089804585628544932424584929321112708257155621112371540045633197621149846684377712669559657113361198873799475293119369170989784732701934129865832881939407192527091079862782868970190681968862069353977611968589492395189268606032847483383885996748189380517902399567016033767523386660446825556773813276782023220635348049701913736664097440265173007070283335730900463207684138605917352728709549924021796766289406010522492080222614896227950908331260203337177529468270467741291392353588818600893889072377276784048809595850034097137379806006767754619950534356849952105270068397486179247745784554167161863673864371826623775367008656815727216527991744758272994741334896175727180689509656681956190727969626865670361152961645220587584336443525325952333329640990318938708476969028522983615650099560496939475678513383126975925124234282048013089055285447268136194889619773121248898199787317706170409279957626104068748984966387591752001670665528531730616331081657047502052868079397961138545227133545166762791020256404521056239580607491942685699307074187557308780631977711625584322274898835432460674118244239131924255768696861427568640024402847311205385868568003766852795785255933603621676255154157205288641056758176107397367406092874636457588500971696436563374158997163470059112323877845246313120607014573607806337501235068891792921706144801308216089945228940592673931876849211349499504446596120326892900555109720650845939776671650407716744400900838491115726246447666594955738733514769427365095043326250446950735812843352460903064276398219712149582932221195464775620060493829277578289203747329725978202470235431696187560139504594780432240626351535420722692986157813547683514677357850337371647582112122338086814251282905318383315180862848978253953625063359567247399709166502658135858370600387988378345213628976397413044780396646519552720072144266400148923255643579687641169246560244511999081282845535262814574570827774220236592625801184612393303352329767870538429164677809649077069999885527783402695754219239886826116757207591832487509108737279299459035092972259814399308845786613786048010063312462300228531544530234239421885898204642433821780969554140773833557241588426957331984175842067172250537327589151157059750541341017056232487232940622569347697055779529704839126067136889058319273078113314435079947053981501562708488954146144665503672039968458465373140476698027978292795530191802229300794088165828266954225290786371533079113470263668755681704444731259118878404227887687697471291598216983328730528524503219297132666431433689626727981302191726915843359704783358874338459938077682275190401750889482992345796407267922878280789941773982372341171209334009171353023837111775810102360677300312743312688017421244975160815952139343001349389658876007491827022143996467416911267042660555012619970909383117764712489123230006901746389554134211598258596131667859064345864826384252287493028430007824115935067576874934993534626748270986519418017940935156691123192577079999976373295399701298145735873513890946934383060449798075621765663072171585331977236586803699177575256532888200738155308614465237531759013763416376970209250107943890868058427567334218850289392072950031205543201544986870979427015614292411429667350190712300957809463310132106807288649910783041243323989443736830480985344408277603862264562216365433594745044808276839046622155120575043996847786657565150728663061404695011940497860710426253206422660275701911948021819259233084024422653494481406161544152095965914232372294231056745953925115957726109512109976975958898680680658769273002542119014998360977880171427444871863607298966457112901357353063201566255357633165540166275056553732811781087471595792026409487776607269402887987117383654575091616808438992390582850423018533054665770777908825567093982735323026643050247999848322096211865631253433463939010719819787855221832863134953418576356516052023645771995547934560377438027542873657680698119795767800363209957028320881574637160193476877240527901147144912829668965636482993442630442421351755697889189303658614907741203980980842836890811427809808852067352840212787934331877662413833070308074689951353421238463729130096227808795746188063737258967894934931838043456011258855162477405698137629406858098498428139581677880924513831145957012205063058696497836779101323164063074353296966432378273103766742280773565823605406834878893101114409658100574931104585713251432217425947028229339673932250954214846717097739184893137019196838805871101146552675203927742235357293935248561783029943840836384384883676202358559069209994999182295666673567472620963961341357393008484417469292672701797893717588812898197546688320100026586879663800822850561336395304479843828566014676309850940707929399283557077191028844103661101516939324257602999394875043943743147423418198746154410154530983097606496885729960513448799447775929244647642310229581186560187259496284480046838861992796697075165285308224572217794432031759526916935204279864063026027414814885861891514387810598984862564565557036188853418977554445329653969270563001897769493887531923701905318076453165008292968770795740777071281702813578818255358333207995893560540047493628885056982943268808873474234683562612129456813596782914317203419943946204960700132882937921333463144687720341352972896099868491543653482298311571979141485305335530412086085381044332869526546869072290709403528843098961589184194175541975513962924546129713179538807448586800795074637149169694140827155383124078740305541942216912047056244080571273872607911678121703917221389260491971835807128783747515120208626721735871714169787205490578581434489636550353293518077029863300244730806896151028958813690416309039225739104273214027605764927650261603284690257578751387523996688974914546913718540109130571227080841469706803534553487224717717070001514009356074217643083517372795330981094007035108814253357266956177717772471593750492612618779583825333772202244791413895209214069330452050331475664516449018604252849153640548107826210288746124574709025399238615270693774746047480954383815409787751506194174254929850885529883826599249582681416288803108784405412022868723241336732715142123758219011782728230846426473364308732958543457906094639383109181112159999486640169411164770866497680218307961140056262756254342897980182165494913341464804425245017923703943141662078421813231937726427382493901162935006435608449423191872340554244558101822294968486756345370716290183937498577598405233365646822049373420520942396389196190942268528447328064398978065391655558894959117851214237820557401451124454430612948153720343441644810190595863758491835536299637850207713044185833790500824893074949582427748327902829143454706932948298668444472834974367467760168450732887051194173506650899643734638095955689891441156374307793133138158005346634473352783253786988443740294304706114626321668570796592288421398420650884640824491500499585792221516076396164092912673858937183869713417597865049499147105260930403399796667645173472360215188125358697951042229935305825796753380631303286050450062331452773217677465017167155705307602431837673180065399059412056329154854788385200623099239169600042742694235180500394204474773281006978059081446083476611157790968207353515172551538056061472428120938440426324266324943119327738772276614488159458958472324656628711244669710320969997377338677077149204609199541927487563806583163670545855250617685343016460000494212577579766011236867172209019017811363250587201498128616541980514493092100067379697103904807590154033853960934970815422861284308136906148526699267730111951932930226372256683606775848180813904921015180988398270963347208627607664362096244165781875678279356061592682228084083279110677571270496176849947575715912158071018347509140582515491976351327125645943597613599647735993710396614743081368439184824929182271553728720966445524385696198401596258081688344485070260694391398970802118801550625532910348646632349386881634984276483368613688454392514674582261982817822679996706594182791950322268096838568648514472839516418533133577838491609858796886825096896247270705359885967352732095009175306917836165979637226742800685929405953274809628310759311259028246827743657811305313185698525227444528106689969128437944065334787129740463315424230088213008026648348706675385279151778389174748566713264850143961532310288773756684572517222383188961127283129670066836791388246786031537098755078129734015445126056162281309475301433495499663387868534994050704452357674523149422508724331605666091847828667738001234851446105953889591094927508378510795597730194926713002404385962441224388378350284645617405398120312821359503133257478246650705513262962750163059820854553612827428351802652359976164944540244526922092867415576661994719541385820542409095719546617980282058264297729127359406359884437082319054791327065056379962822173103080514341551436049149434558294640363672775560411069188708026018498916428752223691357599707353772672903967995169348942601728747179373059291097830438201641151735529424823546239823688628657013368893421700520018006865655114489843774524993727055263589570644505897061461738005385355248265420144386543449631381309291678786661635724863795688261105881812009400482019143133837771241684101819376418196293963848898744529352790360329376793271477451608964411859571683205410519265408788995345817857672974961767217801525601050490681303820156253428349133680860951893410230065929705521639023868965125398772735583693540393118206354416241539834051252546883464425607806860395902927698338376791796754140336368136816363259271591024068813649491058480804160223470788303620400016408368856930469860424980584999615736354935219118248433969482508774418304599462585420093156528411315899244428753224795352403315446434111547873964958235983299327216998297216787478184748680724048845334143905592313726292677907198898131987121713075775060794643840509755074702454685835836042294012985845824451117151433057200087926954823289726832880840047291092010808311850813201249802027848967424300001946335530449980883349816811612753947569943009495414900703095661493814322848978456937711393860473832346783063846600940707883623611480984376755933724874344333526365501330944540745903516420306310724936831993280033203561995695016732339679323670418762819116650389159063705483442614874814258318835120144727271876780716388813658988157785182983925159750520312830831114539165603171008637797465029302179687365099333194529231450573841363699604058731283289099494796206292054144123917542012756747757917621159074457671997700348763230848857223489359999153929321911658601775213258357965281713728627490237208245917476085838845304949048587305597405108416888438450400296456664712347021596517896198439730567656677925369278963255478369973912518751260718376685463294935835369539975175155276878244145512183754657239948945060208383336997322218451669958558635728051040224146648875469237708853199550208079872920133348470261540177999952161953556349016307883431768083412716687371153027280961678047579987061015966226787343650045708046101031742084874217617426796768758893702531412878070924857991303050822904827058545719786680206463050896935502433261786616678118248736532325743945153043070531358799838089808424690394568908683180456317646141677039414155082526585581548386037783156000655339073700935848218750536009677882893416664096292290712886091452574054924458678314936536938874671268501862918232616659945244872272736343238315107639706903430270059636014417615540488816079488990779708161545862258755106421208469138202167709401367693720968772923073472198766852721537204256050339057726577388932078705589323953039061187581222056561061478792064317667987171841090536851612692249924268707726235099529890568537616661744239928490098622283275205425055733802931025722789581672923865754737684711584873879344486170029386959814668583326026659214883482138574112275101858008180732416453124318390828261863060692473066253669722372069115643828461707887238103457755314414238794777352220768868147505612622075898707961484528714812421626924397241058906962542311875235981171118878438411751995605298233931631012160937100640532614810239993863975167171631171861205603474355379880517670917962234431538442391409431268111820473692321951301226456067587954303004732736739953760374248256950995174144450088432504234149303677397249388086029022001595115313877863813701424179146381536648643619075145792880524450240996634956434826884170148339816320367353992491452690214644088491409921096407433150378104404931204208293979600828703572342181630255656091021681912610485124321455099900563647427118051070666970188101154084507929184104186586517584760557845641480075428452861154932033860216356940535535835010811006619697241156947161347301910442033549705079734244320180774335297043408289976228918134485744464295892319377410332303161823137208743449856940865519342045518530129822281940522549984950823264158913373887673213291679428222576909768454113702452980295733897852251264748053667126054376440017500407060110265552831733270638139395286505160684761193047973406657369079894595259819499951044122092050512674508876667475896543654384131198758011302707417939337334882528322269884564428849715998514110202012574928271001253760911631072905109970816657593563259941293876141280928524513689359596674809269786026258168440092506514804342258787076867485103962653491821852772337619536213129809915986877493176432156407545062077160340567394397196926821318424826661221790069991132209165797387539207199500415549201041176171034606974803591840299280840453992043430631593769908063359410985493742329044321391282847377823581851433147140453752484031630786819216745742665963635054920771356977628039144450415886417068395797945657161943210421673966830622781402271833281260305864621100057845789179736889725017643014960020466324639622001897572513551427297606811366795501662639246955208430386987926715604406231583650567245679575806770643493194244560730022686900983170778141916057726057642172152030911626411024014291028962007303976726833150838511764602229262574519078328586715064725795961701194593887026024202347502732646829877002713766164093481939344179484327066272883086130866223753428603229200726874693729572475145912720767549951019230292380155286377575495935079155405591201702568610776746865431699789319741902203353525373070911451419375657646805767619572728507067488907213268653310814689902916444979422917883406003094497788164634738203408935674854736409862621803490608204619242725260874845471811089312349488588589375353476921617609179185393381811917310427214712972268843804194280654319881836938305073701701340079565217385212844366634701513443240334965261924971890521476179425000259311454612374408463907555647941516912410690097894948371441065413832155252994601795589159781070022780980206278300425347121713625772155629294926374407079300622575239532705530428080085170727523459850117369770282343219449267212313946212176311368544366748462034445705866401015435303920732399950423569019070710368323708962006039137361718507394210950787870959095397808791518060085555111111500961967736282911281355686173020827640657372546104629060128941526109890523670909854144501906765651391784764014482738887162453175000164725256195959013362266537995174776650087396891735492604733070369886674856727611456357569498438634825502269332762503629051081418673141639833780780003890362972096384664877153852376293988181767860112674712425953795695824789621062422777241159336295935271987835881234185387934452349735923597313748120465409464888018851391572355437495164516545930714392557023384319129616346171926625523328417298954105756970489540005483767611897788056016234451222405624324491625522976950182006716714692854582425001269222886502319786658279108964575904453495000512819490059317896218003891718611160428125673948726473895993473866883209183477119388642339188679876104779815993981397199660597620788190199117693918331055205916566854876216077015134685622779670206547483162686312109617302280381996869372761134225937881868861318227903889993778157032334244095776642246082325617244831082061283437198908044037707752689507129519475984837757689698225518449292040407653270500672743258810846352441217954696807352707933905263617537999469076545171717834216852285139686485958878022479424238706818241344045590790384163972291808970530682097160021442247988619081547936198490132957755546063062969209289323068650362425507298130188438428838009078489302597180086150817305241305208742863907560828771109616623907538220931763347264999625230722780850218816503629544930673974278012357158312615300318383052914577703717109771345009236803429215006260243710146751388386634230785120505809689588395482149314162276828566926872451078783668998854651063985750843075353434858551191062282370682875455705479352115054069703415529341991371150349448463924122416739245011144510294535100347274009159947797477524556689009257959819526394570963691132759954280480189718849577150787512388546529966313966664448003171058117772500472232378683481346029948353138843468774580116525594044557077284100233222956719529157104672401629905629320975303965003202382666094347670933505120081252023879706840443968740563577739486774917605731329858058174683839737701027987560403901718355630682409422748196955634660916246143075989079747530150600881527538812512893568354911356456769955489366775440815636224398865240957206679388509037599193544409924220465452450051770899321037577634924433448926114611694734211988446016821827930831247025841758326217336755679873881687737277415426899182425224680430778305995443184444189801362850971142793480605086840414309417731028260789593234694386423564966353194317205289952260055034376744095400754801224604105465726812096790260679108560792099972465562625338889928759209154453022329458691800297943188244842155626051684432732647301205431368708716273884617325984320381096420483640491219212078233588577832848962231228236578289630901964542212223149767199296410151492420643481984437594568106738682267441756332274554853452317988763715818201935457256375426190489837146550240492514140633903935679319462506605868027946573450618514440866151453851912771083619922002132215519688776009729491323220224952782624462470114372019042397649269790871054877650322500258333758671010674280023288958736784955310749538601630608534711558368311338772048504241953374680269791965649907837777206662986546068322164668906093745927133040439769529002065160253520652492043567419991898732405495785340325533118496508402692259674661732956937553618677804380343868168965460404098012091848946549637256794144995974194343838283170286975348715830386295640298233901004145031857762649584639929987196048436494728489309029559247723609567056426453153388290625396638184843676749331475283228822345331622258212815435878986380502629066832992919584318444438042568848135491758472694766936416716455206604176725336584235797021952869128158634751612382028565925731651640567515074172304293655832898693589474344414514887403753495614268835778769207427395620144489761495136848638603387301430079699899454297074973540880139953256511877245695116606657448505297266095153968334870619632201802708450803009556798856605717020188684927396480976223949676589240912737767893504969539672477706564416304036967860314997511510131995368476634843936266657355000097043880756151422597282439658092607267622510099065452885497811904353549698014694990972153310455303513045355987173286946429629831397862070467404584938785117095531640834247828064536918656717133775651619990325120624267403381004145464946214851044402095880546572160179854030109092816102368009021980208039458129690455551194803140182321411229409297489066312368933543736709470434560372889653140185723410777916457310796019624223528443336255789198862540336289896547579747839836776103485213336435173948908641160407588980794044814449009046511512809139467880031921139197417528383992561741180487430860545873960559903265533065591707601111772857470979552840017333564508928531105565272795007748301244805066753877485872730591653710903773060901917873792581447368205637216319793364732201011310931478178395396685916134295905671870230196192507066295911064227077586400804913017943411659704105256425209202338506328246698643279066748153540433474724500923322635193143079517805676365812068478609764173801028078273465028651767829288420831900215478517142960748546298716335097414758972676413227153040863270586249017293682160064992347336466098682329981439856806559394265359382138586823734586109587214757332548333396420864211454418655267965422650173576129685523637068257042885408298329939986490388523222467652387012335994332473122070087465479217546400676738428856075225074840751027952060256906232119413311572318730349462676370869511811238537964441465963264240909568275956410415325893304334450209014291733350454364566592647935626270304531991123186197245849327578264856210511436305872390899614984916442432586223795280415008642441082223213730630262463359146266749707285921582554435846430095118857486655454430994240343405969349959413255988961119544750381341640191729646666762148250228348581993331567612290157145889817925834611368917699433558927832328194920469389417154274788174873772084899719822333108750557688677834652059024664996300140498558595052331957138878583239333691547884461416646131629358109021722293192097365980749124400944667391007855382934014921892230179211842761824476098864581626392803998545603552092224112615963462798190710984985322055115642422516735931922174497233050897679650664217954001132614137571656157289634183487605827096346100055507628692037411812786393891599763019857234326464401964227325151376883153417027374771306311478202521679897802785063281902945006147561044756211518992226450073924416985331024797801769247801224241460597201041999228393780295847472569297726570557943560692538018637034012844160798465738257268094911748647479743797078455316151614610701842440301907331492774562856055110611406743424450664696749643660909092977109230430273956456839225586405118822841497220848039037346275664928980692474165822442484208325035443455649809308590461919334858064862758437771915527879995360445037468369735755087841541813703208660935625633939735225737650404483865973411713132644223263870552215768349473591125773036673156608410787287219942722024118619707219839357423958388027238030205149753403103002111513663934921525011681123608107146511017691612953575257243580162941669162106490860202954624507488928339689871260839184781265125611434506718832901540298040830056934924114790367879627209149230334014763912052259083006033971115484590582239694913278118175235650896594336472161544822155719042406680606558115954928317941489439630390447361444949373869286493100147019790190827834618826487275539051343308904561672495251149268708359530740805791045572673680948640875893377601760196665000654495592758282323537663178557541791783717973701410225140089115294547121230169883373595351227612852561318087912311692104993726381191983899680414541901712156829022737423416351123601248092573420642943178984407225249321250729513989984852278060175402878240346806823247956308955116459159569952404956904817519196947509677389206411887387729788709093136331111056092932606003284513060647801032458323876682643275015854088394090513737784802726346969689633750904564374011295036301492515282810722169689065491794059309010193528214768617864929380042409639050112808413601766519333468048732341557959478200895440510716767051959659514707133363408841518908997564216389836905125158013513884143069983310880196433528817871420299285818321769338596521572027301789318586305694595512781912894674802114889724767148411477327370178260737939388157323743525291292649796632160759054871691884310443143491886698242875021613549603979476384710110873965973761648762503892777441074299220203618226152954208152449686058745476464820359508151195010028253331415322702616103744541264017439540874617823147787742602644362129108673737509091106134604668293177095501654368194288152613258992405593559035126784231148258964768194277055982737871040452190434754953675346764744624416487643912229835134999623953787452229528315999833411318870899761018651694946016872858065928108426247709808244545265454293211870117450919881283894896977595334360070118635180105108495921321517515169064237830080618544930286075856490409463531709118528669584866552274142476154407861286227897627792458489223616550386165412961967132542530504821605768616337604405234490118106405313619652692483146307102283258086074784348528433987240647277192906247792286102595606871745586881822940189411048114575836149825175806929098525899218899027713437245259949129115220949329673798473316548080642711598077664714067612134206575075188622587559030806895847269921211492228551062994059184677323643666078135602906743648418604904953465598254119883208684130273754657149886507589646904449834222702615305429190918472488353611505971438371990908471891334946392566534657743582193370247797549107908522886768284841415397811727408633799806941120883785639975270912901960188180052911566624764522117775807975616330821180404657467684421252619167534366520790385627379272709327804747444411919032147532613110303565167979963478214933790435898383773677381691821264454831294952022874042535077816214841434734594362829771754371873434678510902827486148117071821620450951103214221403685192912656222953141880103599345553306972796978135729075272440609907571488371464467242108912077621468268205930472805032000527199454071367706733691711738562717179799424082172072431591701309416195645315995600157169021318369264490971126659644480124856222084905038854964982512235077484029965813904986509064160589314351622960077529057515654114369429714420372573265783026026298231689217302239594277342831962160189709529041546053549803034394562228357864818466211183131011047648161176767052451523671930290576099770449012287530065147442472853990791841114476668067108916768401319405782290553674273624859004694845307349801389385108025809758080407903952474212378074772584039067122633568572561674002704560234786217453672738374950552902005476911668848766526688252335861020887458877970224931286518354553655840165037330022542776829328888489943682204234167798151964615757030487783135539498750897519505585705263931229280548553933978240793283428616975800821188955916285548209687946724843463054510915188571007638120437592787181089726789229578179930386604407528947985357173648921007288658681693169496550166199330848557875042720937419822905301287995513087701680413576067252705151843437069623438869565843405743254225280971253293936341719388852666388793943835486932061661995709742588962734411779156585455632061442940537927361648474752630647958403481599233014513181363914846519682982248793049363265095297177040222750513347344820014172398251396277543681128935391404488848442764103302872570901699583307361281704885036242981871265106732218543472124809908163066842511283429127784701873747488127210987818552742099087657101301354019325840028603814175140625871015567278750149041101480441409786156583456746407692975421214928564649308468724837131159054833586610835107517011876626996621265615322168654075066993832391556966421700657718847643768395531009695723434128474637967536236482565414006432633950858444046066199551184368822683115009473133972129712766026946089248960415870200429426673855304766615399827376069847621965178161450402796831882399036944922194299420124840750071440373503113869091223756744620434939014314323654985406608205713109590366288833055654142423695109185896067986854233172846074398811771056102041481856223457019687136609532165185665632541603036774233403176970167180887388055009019442279863479089537653062102259402340317671147658155752065006708330194661197283708078004143567987726047645464124878051490866090265353695637158960146936866836166572121202621747615640797298323861622378452729655781799750205835499384207661788473704645264601831437071629309524344196565977490136487955495339237453210080363149725080749567781134340927765761356065129284508347374095446447989591190759849317966051721524742968098637953107789134060148204144964845925300833125388077101724403068323462219399764946278703392694302642488016918156004390468790064037480744369942080210781775915127142264928598728377079825912400200048509342434980446256621120164742997892404965246279310274205241556528826239181979387397913478751517192204508303500251402737588036227779812248495311254223612191235633901369972279193784324520547240672919538559619672301625762209930110098605973956165594657586059151599157737942351703910704731617363489732716018108990191724794517051028738502975755795114989521725218291816749051946899719355757430556826591761890742100072595321869753158921305459220877054352208404230435257149586827496490837376827272137549069727651636942364998649338639904104691609059363584314547329122577238086850129097397150675186660865243823009099838460412140191299515283002034167984999702661582506902078662468894052015057937618608352754687012825848454456282076871174183348315247004271268073514659650223667653416221315113862395552087806114630297891593699594983845828489526216227370937020438677165536400331552843939709206289166882611061776504821149184053581778829309763773822976198244781238150827709619186766004933532195825144504302949988541595776455402263478678150010352214115965206203534541785997024459805513346011019277767749069529509271219195797529465613478627254193531846225282815717872474926981419859237101797798538959896366591608781528126575701913463412425917424133452127825335737037481883440295195935131881719227295535702509503460749821033017796717105782191189200521368476788106422252545133479888095343125143667218715471387196824664462778903170038005908410439937968217020484187887515794667693290323335220638494999308383815419694926043451935433091311032572134535814994202621605873329537896032995287066998861591149268771570536678049151895465583849320377151218901888077150937657096484486972050175943476979291771722960580540772221761211161499599882199054608822055508871133291924822666794813302843742644490327091155988318558020909405028163238483352853731659461013330207567725042035926846326038606623648409147168868248599917014671107475887216280562497012462601582368070178733312192850441054543722884926498159140113528280668915452610009404992204816130921934921142005186972914196529762907761016780935671252160828800959640880676430836878341192512465748357701384832550049952164685361494240087037674624293471218617697725190838797506890784732799266156278099891120310264312290268646703243577671680914220651987641004979596187133295221220873498219974877142450947700140538757928029646244864774117893889508640515539115405369829032243858213926946988219273700762054444827556622519076486739473148178548742766410007723031050417650470293927083202725623149298661918230625249570152987702444402293896533688611540344662273101225114976435893308673540817226781249241135157323331187680811672050230764663275106247631217027473271072437745789526598329386122948117081505498738102807984445214230595388215653310991062350600593768290850476525210732437737234498101463084771879430609209330573848076358320298702632731277619740915910851276652564835223630600141479680134060031029731918526249299145500790391738973921350720638738972064703965521665821804929594428395112117293321047788447470451725646830187580237680351415363578244503448051833506861602271487435479476009555511571447095987452010163108378698422847253725704106567597251578784024591780288899409118868434998266905369576177820571576082683197170512559940867091816478441078917288389983476242484123877380351007584219387056395544205519261011124907057178040803430078794636380953145724812335465801350992991699123806772547845311820035013539017235909114444560709990580135847251061843380665253271062745237718640654833614329672376790455796338262191203176607623957911578785251474742770176652220468014421506641598363455973828093141088263453686432364181896541519666598923421767559281019892821677876735684832375902744875002539009406569741720651192832599730460297103268646047093673363867219953603564320363644118152766782593840926700466779985844895171807167161022891889753064923387920880222211262669106594557641539737200233159240978011831538378711410527380359958748096708784613593387565346899919848531981458088549660360084943998204057979392134411003789264056907807440826563641129451704785470066489631912298291365413702318851252996124522360050068529482932163710071543079950384904672582663516649019087388631950826561983816670245018554997099933196718538455839471395263771788697667451638582987947638300480607749234943991173867940962179140599864845016728406779507729603411329587892935442565912379789794983003092530377482370666310656633016954188383152530449738550884834865976780791968762146584180118065434392119255024477506943581796041804765868445896234531065948970403441890911892148964047984368970373164789398977054870587587058783754003043335311965301188366381668459685430984577000674382005517676860910473675370081512692025417566685539669465073640827699674835944698817987274903357750694647534866434790278888177067143340247857535584752582401977060914341580061792085880658042714275386045230311103184474289894425139023928334695715481902794895936769249308160416926917756760909553872467918539299487622134656993437795011501834700521203439816654678203508102698317944308938539948352541909015468822277835695293179390654081544804944214781016905276558494946541197893576159692958282032715612674019859212186960934115218615665521529698084905934652104820042830302119268476215331066271716360025524877016443069301264471856673147415564670935744415379383271506815496125005182948191351069138882415576037206544386039529537398617061667774159004609162523097868942423420444607566564897452840452097167555443789778358529096719281629119690281790150218882246087908528270499819946493140552054832112804679946828782706476044452761323087021634113251550988949642660213363564423649492407874760141603724160412046541837922962161579801641697930042266705926069215223040023988005608549263454351882439036451504185825504358516563293569397990241793127032225250750675760781001413417489932839212306914747333550291392687819890906258859880671909683024436142436022962300331899350163827895111711821666153810167662875479107678769020715762581741941314014524324171908403455788933139444641424369754373546628648364061774059939692175602291889189216916536941006800531001116702250128740665100330670855084106009285983666176838142936529529642031149764029225305562756188246875956355391892633147996677819432708788386121567447043683032213774421138040728405307132623586697211565092004220295969257646025850647070616277272153358420459935305660069703243602593252285198844269464668103386929681380154665243700906100681210006043254646813401770437130784941821548408117034109918107111927640044639278548952675611759649864602908592897266065594507277718730913257272641066684146786399864878205879248256146271393718796861075247716491741850403290917059219457366837210077079353530702830037104802234954989754025089474342024039333033697312429885584747849702034055545673319869106440439584023451592598879748308422757574274244929277163373046632732727876930936692984923343128483502138945047093406030247364574663702855864429640687059501347528576327096142701072717074754966836605163996445764037508835166262613222604612457140327004680748542172811026416309326877045960795878573837408786255631760396145748868778692020790055557661501701859751701676833534351699023212718080134424172580140774316209945083112960395737551286175645317821325103902286939303594178251323214777948419897371656331530720768885933936944301843963446427256319601226864465173564146574421610776495891174690134023866707564506245727319311851463088491236890787475960776281671258277855055570487944272934882940003670184153636964248676119021000222789698822639548838440904029100918354812687689663786819279588879351989816541867025181221405162929535534085170781647238604834716876526199005165225668195987534696512763609224682963816048541734842573935453350320003957206260411258549504612016155049398819037455083100848000411459266553369887656166292460665917226222115022501564657163665389116145005830224314795912165062006434702149893673482408852455744305792835377468890228664592437724718317579755108920909257819155024630950481101020170448344602475346662255936673674098050898528353763803495523994627905580322653190904854189645024762325413908439302663353789095553542776958639911390909591076160536905083628972250433223756158651007489025788493962983452326985883458756651801917765521485488683085442733064770822877892125708654330723349568048128763565059813416359281268799768920084830561860585020151688701784690855600980071479233058991502642237175564893165878706844164389648372304611714424967116708782284501629846701583787791070186589445471802036797634262170995010504180049159740663357193852004109705672090208067607547405805363771124636653170004917392486009282420505413015237183863805080680200695110806688535546467057214488479678478444683140633300743103313322940980436348547523587960452438288348275678406197925055805341081445673377034212982455742974815555447004842480250787001392894160720316115118441281283978835043327392607117668030705052368881102667327497525252602415991345428083635996705051028240910028157847342504857958357674748850377963540149725139903191892969561746674330047599666892265397880262684128172811910454238238130715057803615633169867536934387355320894833261178355861777187928815266628007209240667500627561493061458531640479937617477677586650043309986990201749939201677305795678973786910950129827545418747288571367979408960804885068856037457959970820474753092803987722175146142903304513323684344516671159886502628104617564824699170025788221770058835661591804368021207236169017166510579924949253557533365348918693445921570179229334371571859627259529549827908659068905950583387759157178114418995941913286884098419624445114552705788318086850089676502092380065953606323256126133001640073643818860855062525941829867248140207036791240581316672774847312857137452301630495743659250331065658633077547527905852148919287713828818191900272812258156240389980815240589423904737822943566387595977419168237265038406998589582537253508698547457540147321356127350624480497302360156151323610060686638591970737980402627610033082903976916967618815109772989392298817106726735690720839761840355797196023825596262741005878096973307136724280048176983490349808429927050029064730486281477847458572728110888075419747258903620645927884384215413436272997797049048317307701147854264439354282370950490017300601384488416387032126535002014078336140263006675605906064004729903375902337999025571445822426552594859748102723424569136083730807270771523270309443559688604789823589970238464371889991228833745035564476947859758370431495741600130119385489512586419742709131357486867868911203610453880181036040974425320213825270537455536486037024847142946669771636527817062374720970681736567196744975386953335606298502513122811326289002359448874760303997799053461688852809209575096498889974359886070868945454727580285866654326821008836190999226442252137196278931297234355725427317912050207977307025757921088521907607992131037824202449958154578676044732843042083077879136452824752192753572766144751547739995163605131922796860510802417702836266281654808495430849581389141057125982020911707772596101257817052603129245499042366917737917602765346848957545612319258598808798374416419669502584894596315456226984488444760097789376025977250649722009431825209838169092887567672794186087780215363224565820627447733699478129246418074486505740188933239953298051638835177149995982699530968274394843070656071210323229399714394217025286752988396653610330133954228560379949846709944493433404314696911458527045202823129960179769226527681236821974832237364706068555799476182288975297078601060266193716875959427591237148157054395554909774401017747069510426408344480861748090026247675225082020850216777965437140010842228436954101240544308359571046613445546757710217956111669619326256993494344265276324083931963800628990719789225256010295364486939220263850436942484938117312644143903295759403442829963449872028707641156725521424887434063864425375796483326693179260839922191239007654134935959157179662360385836593107951759475281002773816990617734199208846204395987869063969104935509902268817387904907920785635003891155112470400281282970363546942347877620010245751179103735518539333597971994170728202114428259200253438644831098469365561803002228305039218963733494969125278606316595493557799564983859000123586607055761129840158569622975447633453891160354189453965384207167794526918543124565935668252685308525793851359754917210044441292566882640092335060529168692381154683748739243075375150859333763287510167732166029967933213354722341188695748177476490228413483218969593265744868662462185239172003501110697192408392307573762232552510902228437973807682284212698441728038015289312823534055384454096807503291340157552173844026433404350541926399006843906031506883314174540222691565963246255453613081547497520319222509339237174429333314808387194319575537252594536282089278383288753309426698008497669628323248386139154953282811003982506639502507049518701733475950297098576068701343913734443056573261669454757338850009753212383493054012495447586452564590322384403658155074356723937081744633396589667045907729601591906589023178666047357464533191268391642766112602484937550062921622060992732305814152816789410393451040033579488150207380360142209932946689836105553200366882054842650674620964982246688742640534667018428945477405630763140701791693924732781865605055558376471625899337791409312195698997956358845485611010696579341253491942320131902938112644644686928844124333845966926470389866218699837474772136419957817309308447716035399210306367972832215613920950998255899823396605136272133478993640085014428373058750386872242446694662042591481535900010190365783827779159361125594549966404322328195793391164971158311531782822937793822338715475687348689089493250737174327715863368383289035319700355679355338203769227814695914799146893962809829038567635422142657752194741118413513844598182312041806907639515509702403066580354908632315283476487661578787869495555280021705742635162022666735971568661726535675279840880661579149175885928445907353430665569010189175091128503736369421540377290131867241207304395125349245310641761225214714426069611624039557320426635911215022291593369885185065958316326946996714742421214071940328930388069242006915032620368289226954849985882596535084876486816097667557191797500699179612259913182718405429097283179569989428019788932487016437521119922084741256678607527642118753171578941561560705725060238690987966510238518993341579883507090418670789383542645654311550556922917591790359518182253360893207878594128086597550678071081712739617521614743408404964793898385676713277742346850358534393890085752449054256749153346495583869326668661287667897950396417517150609136800003265499305478030322357967062185056497856578232545863764119470122523604263770556412102773660605747452290158094889843957041444509107318514041113401390835244112298564867099386729568832994661481487684038609806109134956798139648014335055134625603203043683010512930508597787999279461759364554294458350592994094420044280960569046452324701321884998340646446022787269967728084904083034331238813656794366278415074899673708647163047287025283307895858710369118323303057541166614347375044519210720807761369960351821335580685373077190872367708932002335588536252895130260465321162614969065933145279500970653500846572510931636467610128718103275662032914163856617074258537089355573016638120334521163946431784186330423942586300902626509756062987052043617213062916236547259465441490095584934338580020089475974014814451065475864527262617924859398160148086826002695025347426995167945041554536156182086706557441492810095439693650332740673073468558928770979989634500129616806038006481982526164858101721738217501261201618858211792651089804829801869300162893405241749629529882234646128370681125857549280739110836536956047431129936977222912728069507730988456386489735310364863375912776994424943898509364027708587581276206148041870394820632014715761130411971124044806222683749173048525737773468652163930823121813633462883869013523043897614231243027378175366159660354658958019774680709251582020166580250492769600869101320330757985434353790084451059558449533401932705037759225373363108837061129489657031714672980872549961940995001647777786242007450213851270073116726269882744217806462367120802294582415636330775084605268173748273585682166262133564789528702983341244059912392881267543112072656924514388201588089729427362287762983440801492574131086778618794546696428086356681105785884079660350751138658033370714340599396156336654949922378888058287437626586929805502832457791779111200191371509710649070789700708513375823569923656314344296711748810698526486721706012560470355181616943810575054396354519342787328580726689000419698419694188770875000856154240291305580526999356488541968517613468056689144677410370868088941444476575023057210018022540157214451348651598954620391358253842474945919454927261964729844855607467733782380145609737740238535096854376065049989421067704972399276939356892317986098212367011054022789742294450327609189618113015413826583787383080202121229473872395519021544963505078761961542806976888155615163194272008042262025693074566237270155775107563859291669408690211817137278006641133492739574948067631614358778171834747991913323655925527825345142918058382596403887453521597548361977917027692672312345453058364731745103826751190396249169832414296847669828963705661216371436251846922236902305866429744153974028451282258686617202091084221972928251156377102711635278008718057789766484825514504200788525498880591416210489489759006618827606348891696054100105807605751650005985961639917134714406603141722405719882105585126685044625486059937802202186756234642687655624385572223872522530148101668955934200795326256791450512578075555845914407942018483422002902571722790422341397000067470971763531413537791491541814199991325794022168251847097904478159648017328544756803179289789284795636717623457229877497027624796489730649407993468234766250075054675624968938610727509055822651599876779486137612042371238552274998259183598499749756368168712392722817446750647419590966300402600579693780451709486275854014215595751027472899517358543494063609942591805022421537152202355686880113396832637744379386734757851174681258756711714888179373976230052727625608054673883816237883826411660688145600849356154797333918644779962610388412818895978327426601752555936360230315784348680101224136319108906408702953745366158674785145622495051831589523291899300953133567921653702368219386605186645733010413586878929453613462396385799505879935532750204935307652727888893315125158567590792032513003497440243520073995181062397453962318536099348993351837185380158949728976151920076850808012166754318202943270384017371252684591098507803166287552783471706390141709634649903913140015279893483636905321876418399794370749650282004926879174509388372997135422202740130061966018423394563245516866857391183659348712295935148087463129620712793988464094665753683855253186858678869393695826612147481307450804939771001081827505274598044104152661574367935455279340316046026295859678778650666286181413119550410779717448032383679937259978759777920784446152119506667503397281895693703620916830844265828336744743977812258753822810155346709746400731718208831211678066543854729217542227170576611879951620834208029696738045695334409589680396820778419870031529456612781805563620318766313657806736183447028009735353348772342675806285598813984502275771253918941057486224413279689008429059023605185186354210744486078870857405090918897806594121021513739686573796695457324361600604793981995424904571516105610768145537498390206196761108090018230052771241131617674210601449002128752519620987320665880843217818485465770451081548799848395663478573622439437159652617139535433335286372488007094523119679019347898494541700618646226801009193620539230426296102173058674449344170053061948594184082998250648113551806305427179919363925418087778299408173179335673077812427618438930701573767266399875413546149781039394827707553326825832110351341413877699850594461783049164796963457245273998317641591010107197432434525938211358754373566584058524066979795991174754360844405247196155188592407865666899598894024825706613365439573854051189851757516517765440027201273077320801073927900774480010308164308539881871524773829689085525358232946575480712374392113844392936124402721516608794255301957939884394050798590149733285747047030658873744528931548676916234807664028709092563401363033891306127881341902388159617309661275368889611306881111366305270061507025447647303802246457701950301471196036264943799306079758935086887467627723317005771799626694968664928056662867791550090073356227425495701384608462229594007195247366355597113912145739122563201159531569456816062003223545789334630102051776518585740149370738118739095619802279771596914889075648622827088491067235017386894622001755434769759857288570572674014946312500607878782348876349643782407067585885236440992861943889372610807803791729011544469157816412042698645018167190287669719743384200404586516330310464971532228146335700714465986762224858430374437574679935297711772869754395735656064656041150328934775283913314802638951736474032041167802000140962795399352259762079576678106945187419198790575198421471717997652450255739469867920482572627812526937094333060018419072824437932695224318159446896772117925180678333467358826774741047191384339172700964826303133814315588198235605644844451071565107994015056906192870585936645325511495500136670429254236000604072782477686264291033400020506015353033267000893177603964712267038730021338169124859974427210509772073153872253636372773568462925957434083258965200389017666425553763942084868763852862945616466033183300551643792766701092774941016533918859081147953955327301719556237423678657325329310416521036171485152103624418967286583765102935040415107992402868463937502774291921555845354251822274149503517108922976512791168623053659759331405749542029584099266772353135982960618854425389588155540891717749780611567703081399599736666286070054083743772016638292801830734290267441080616910340744162934266556113829273985902942634101814424743282407572446689523353975563507860943783999134346447452829716829252637056841138502251233328628263158324732402623369452787048153344016531202038135227225536954849361581927322613307950829806108559704509986860751877971213278876194920246441464392550167442037240155023616896413447946057575740376505543052748327784252872552967044969806769042316884232221683747144619783401377953530561252814879537400712681421410273816163849365121178399508228775618430837604075549665742589150532976070378458464537078235392338551978940532819205886560669955899265770803366630060008931042391591801808218764703864450875107301444759621971504690511040801138418299271659218318772689817536149164942502954453446377094734336142454846541914961387397528673602814818792581634149824498225228873365440801726992781215025716145263781656549624707946437514691182347104269835467622617329826703895099705754981240187068866366611595886618425934779076755026646523740997523676403731234983419321855136976803541422925250598872582826547617255434434030164079359141950861704633680453132949053891341066041465724016704940874871390956821281957372794920204851779555907049632248614717585321876440656041347691087909728421222405732674144321320633584154793026481793059313507792553207579309010546050108281977639567484051785428102368651897622757628016502098700730295213522984546352877232083643857494098318700024702519551031487033730889916904748525174551876660982525207962024848461748089219428217534539988874915171581119757723064742694242238961107362672106781488613912270054575997689263777368012600817915374165442811225326240584418487591277556961688176310128248869790321464173487434523404275614850330311088286425578641922494069308638056588101940418680923864221974068569909782999635379184965351844847277836908662093584997578269826065036386569401092883610296166757091654356264553368592966003506829074395863176106349637146440756464972050180097123320698264699044552668063333021198641265122887041524367657685599735751210733024255948405658537447015895563034389196114058291677263918318759876920736719664190557306024548468124675613208977044461491065981742987190271486275740143730501092146148605283070578894486147857661401975243945932384265544497633342081736580448472914454314602700736904943103282911479742499389555569489333829884912615874789686461483427624063949786860120228364942063498783577341640779809463596012496776964339344606639854921291645178366932451047970539120346888917612782061658615518714945069629208821037732656256758121401352207956724492735202263216147012879038308174890209966915597179600863858821755496029073233879413995886740220246411501637046111857777668538296603799588255722315049318692236788171980497009397681599399194555487338722904328374490204406894239170360081884033128473208177836845882929963929581909600125999923295197644333452083146553469127699026721377663372801939944249958538315238834812980065775512709820975156165222788760723688684863449643534739454375804722570793206040163181467534517807910322061821094924673358259499732698849880426676015250899895672812676025597653057136075597981191656040612861786034045111773921487875832968923262574065580294685194352161365212640314687868520503710677793749986693531578608363541196985519232968783184751193688618957438172657010228615839427149312255254763081827090066649338307894330128040743811381546636777044002566032342289331466348215364812184629673516402293952462615007669329008144206288479596702325641489067710810710944636534407342718351331088729621227506031843866871889835151229847138729457948366065638536503595478792982113862048209778858257337002197730044052906822844821991924172911479217794855829506518184589989073904366239207826742309174593749091749042818703614014918706176827615190799949700575333338505964986994363459441159052399487427868861429198105153226219710896529067721855510360149533723876380595795634100083422540712019641313884039630189977418593087640579882623928397860052356810311403536621168149199968704110028504840313556571522415210123550698450872766451648597670246036373869829553243487637447062623234886732249324297926736018953553668697803706566787754905873372416909555846810620656103148146413355997744425474695747410102808155610656756292811858646615528984779381520244669964265165099501056987455050266418720367922309238840771707980003956853905786924777599151421404178478599269204294542813309982744472952221670003314772746291970897637884885270357311436232388227792182886880640647300192995299042592801099649943164243472638978090497987450074610917426919980088142962422490912488630335073730625523454926054097386650613453358216783630601899845242690532711536010891018689257286296799547698712908284008600034473207598396718545400352102766269456370894413466485609262625714290315468969976116425115022372773165665187286300414531775194179321061336154690556282311298654886238031069681532903324593959010060439048471095723371386724209121598992411467089173220440050985957523424468383548772485582539366386612620421186293020847658340673993673654616575196391361578592152217585913284759047056108567536280501947472231813075188284997493598557002260841124920777691338198153042245614466388114719856505416879630724528931894706659131824248751357884398873803097579920749111524492875500423587505032065785846049003406682294306513400282956854419307274148707348357605579193086523765391474954992669491975678552915398122305665242890560980022730161719796225713952101257900123177428481428789455051580352338808653167520781624025639650109436085393587651985441370181150482616545637310092697120752890620288233586717904389620666696470707668488916280818704746248676111032301604666913664858420483564062058027786627215257606062820295415495222795133100992726076718277376981158731390907393592162439371727098554749009515141815179238520970141063304764092545327076638538698872645068633104857301366671403481594310813195984077823901321286737081761300399414945105243620560758840225327645008749961925339869076387254069959826327709874396200165715244861354871771569921807547634408256300402650103882035759536090151368297917672146344827305299223952366235924294214851458268839865478335583249946501356640142298081380785183381439202426799113061252599590417228579568072579604084555107325266589403316793886141626130154230258734622315300190869267256534694449732657324466251228415853805723193547617602667009481326311960424011653847028989145380839468701669713554272298467284340532834498419062134093766250250193053443158561251897603475175840082636377949764760604369428106313689500291325218544768266376631569678435063011535117736254459654978551656063471105246156953909945844970021416524490708256413563007229846623964062744046428132586797603668932596241130715242948984329016528497819471622806688311314793718500051430567734148119220069099867477782115530960460494717731055128900764842337279754058535826621095937128202463833721993334537240793936989286471790419467928074070177497349589350308614208107727264153995909217190760090997222874150415738244235916156677668772754373724855126353233665022942871707482801550822023082614751081381749617058195457777289261216059396287723235593780644690968330821157604303087968033934962411755089548524638269799788577272748899378079009803170902402687512904756954111445649760482662492594929724554367473443261573454625352669928463722804961869030221977305169577666880903340411558999107632675491687924766404851379241252149386425235438182099052665072476321722651077961492911268414893694342500375829132708088060995805768061957729947944185188184861278636794495602092000721361098886661107289050392265459809877911395620563448366768051205572041777511549917337000228440544966525188841854583128212667023564093256909112477444050654014234544396253866078393094476665472240538597146169188300888187202655909603465479155248011768746329523967325812324798221881489044923807016634039772789386177051389657448718582537964068281774123887840709753835670677978400368529406263687821443172587082648601586968068324558189796574960538273384270580846153440781132163739859995785115416466717640651505439426967606441558791846562988267399203038504489466852076587877333280264303649421702028757752817042404914227330465685414795359371331795628469991722534347641095567802143874277981635582426313152547433007113611389974068953190012110893462747716049145225085986036078284418645138476330524130371060791484406344755959425508257256111286151376135405372594270204134921990500455666143787924718338336165320187167442008434663891498205799800431897281316090795568611064798180575171641893793503513798449582885194476219612503245090537311762992045961870682211212209372652717697388874612190357759768075364290313546533044386816120525878857053145162756245949112681598631431325481178907034183401091660468587651651158194017509524794130127169206303029529725529097004013719576871555190216724238106569707746970401590585134369900807755733514883880969923343275064917613893296855949920793737540269139444601188717197483940111074221637408868943471342658206975067263685874672226785782265601397446585858871365326732538754976481129970777161337152986927817224067626268283715006194057156627689821128706727859217656039565792499532029105874998557727525385654200437188896408440292893198902280392993346187914478079128614353886391346354125023069332876945004400973917402555841694681340827365453313749424888222232188429099226962802199528135951539459542743575869070655448255866440535947782020112553639102214790028429087241258342140902327309929180639197346212294356722807971903613674113626379223717714157486758425386208688265688354832280416000536227801484486729688576665179918074391996577514963583007698537622167405762212596379277844103823020499654038504377561533636067323587868925788749812134380479044195024410111587306168652440457266020213157291455443575654531591689736790520597770485303928847096464402681850329992954586505352824013595301707226332012611974232728574255123851091077802632729502264617767152081364228378450960744679571234710440221352060552173010932976676981161722002468385548919793371295889285854657061386182721942559317238868123175486812706449545515961500308902462064858639159245136232318916085496174575253564150594759540314954284899834337010848180177827468198700009483602325807078938675171894693062826528961791324116640313917012176323432328389826083217892685665519892373490140690851285607406727297248410930353356396592487003867776888361566226306698372607054593422903382111745909619373654471885432900547014921217073114636736785994313475274023985685975766830619505835758543863155781577560084736726259750293398352947536329737787795477557402845255876084225844260204016617033087427760084283477416845173914683966260010019608332773508678850693145579284198605067830201663949259436298183609950423150597455936402403160083270592578133647163703023140270209276090097835488815338679810793559181520619670548885661379746797533503820118693622180367764994271575368890594819196473310879222281446427901501209143564044977722803259170256818665683057757781093596621752756257078368769635049700310609802167173807113806096271286836342905306779205268327000226382165261231313999445679464391283074956601963347642208228678676727904371013167134119708655844912397871232085295441196610050613100251126308347522751675622616598587184851125184659303759895518030688059954714818618259389943255898992053597936394351655868556160060672710975132141374745314704511149683331697625880638722192004956627906826700984937930450890380712250157319205378204563026420391821019996829810839897780104126578502145701881471752824246571871265241570660673239451699030501868057616568351042645596285918480645270247678560734826408776197233055090606994474178577430339580372342918512218464553610615047210033075056240912655988018543570253406050533053101712883414661566908959668774267208130212023763548461313725374152671934818282285875773082045412431688904247168635807115182760236342078643119222421098125365772298306419201124089741065017496842026997818132216249364377168931643772958088537667537405857504366938620800426751864785765995226797183701153433470767609380530763641075051766412564428776241678002647747913184851489395398758258536499218634621211291905815441813984859755849280025670195746187057514195083595618437733293517388827546089534394396504568552944835450855038942794341180550109447191212445509100729108078584660462721202335668166060425987364156617336185446427475204300880530755237067165580648474959619519069160881632897413539872767755014537783320505319740937215508055641873869958316284415073966053840871657902856884029990672955845527958708358226955142344522275468380410260843550174399406983504792001939695836667741595320489056033091047122466679084619925030950232221905518375186155795010793306531027496995725863971635314061096597100769840807374308703381878669571808215929702298785132622052538376901075479915700680820201427845983849401922471458674532751674621943236864330896682338339035626015349467275112783377424803114065720784146607064161156642291642428931643916151736040123538470945457799466866431379957954126480822961213572099055714758561104617424795102853570836144019038045803608837590971176610092191578334335212493297389046607421897798437223566095443038990435873933119202117901199477908761216801486930316027799637392988973364441842948681864170943911563779584304743314315388824648823207873476849762842020088405407059683276084190437869850425296460028897985843631450883555779903756550019990672617015862790497472293079565592898057550953205651012872964879872200482042768653421795282717212036550091377007910045811845970581959675408023553991362855080713221136921553136087601815737865720383538295686584746843116677026600572975107858807172857871115210376902930524160193879275027590923176135217525867461167621986662399310642004958973830941281717017237608635181121285194746466409937683394850796224370016672295050112767933685841390104617813719200572191023916725799973727052869328571972099350367139202367636862134460555820211566004802652470384433901738014438971333557024011933179053462148157270606791687490089522870132000398412851212565063513484738687762347257985390768400950737871641424155010957820167867664794204153069743625722490623500086295859559342234253301890461548419651609906824410496962389265181626759524456066191498559524306191151453300626320764136677594345833602240833451851303655968508985523532687075187446160828606391812451366268410564932505531603319925076672701081392027334844181290613424238605238108700107204956648545453413755434149269689706493270554812253941457051138146642695660846829672862668916049885647847438398820325483307143290609975918154768662797299457763741954661814267932914257563715261324367542925280378573865629957049044086286849461165196638326085877906101735680390394528507606045431374428022559089877541286907837711526346475440600855966113867477656575069296261552889710584384438909511883140495194983045863760742962746236450469078785385951044111413686723608212754006918463819963578410841856123610368519772999160733200390642905362196449254620926328830542971864245577596476968664305593909912009845095432719107866567629177000413743711658902136183223979376058974281514552721100744518691539937311603888805392361446238729327946855595957365986203992948806018861469808532961715377662417877291644970912714801004242843630610737492217772750375726018093901205855524805925699686997713187540171250768882847178382033996183882096174917120996359519000425514558527246575138630795424055972209032259937956443773403783129396083146200362628443769705722508188314643511683775945731633917703294297559788718120124694066924874608039959148431943004783879701754352172889475314773925094478034784167975600673146857189224749395096574721381548140630535277770381598993536904368248311026350175646204931232684642158231759135326093694907519084450392273071294862413677437728143288246127403076453124443174545346236536906343337831578492613023166731298419534636931170315198993580984596114546350115436381477521066491058413376258207010377855664577389295269318953823276675476630081818268032190322407193997104392680757730418449201827617247561822886718866696860515213401422510809876342181598030578725975189194953993813617559145203022212936419086233023089353565596044753073502530717260549362659794274171046643238693566796807477437895298970988448343438611213668184042043257067679161393092680642952738761892537698915206238709406951821392915974240576343145373216663536611096559749329201982807968906376925345190765251199305431456689806416211628247439178430953552781546552005970535824431295444094448527529697917610546130110738328537796663020812338046324787779981357838905124956212881856399174223600872298981067705292591446676333571027430904195570635046727433137786587486325539346715429092306988560706083538256341555784990559121058596533434706223973867009261629920122035678783153847892434645601954561267738211910466415166204127836975026587812979434551854057898617944212175053645828765825978831671801337532516868917227619299409064309340649170137812162745763196199027890635703321630432204238333638936792928543651587886346929770423633532321185382624978707417226090590504956912392723943216299733161610439952793363361722670597768395420219377883982037093282238888554623978242903124670798421554270617546973938626232110267576936223248901188665753561374986443073180426304193758219879525730754339226006057007850956563148460031864899990516256419421350312349186541861949129001908476744034207293048841674977267281200561435934079496083099906444054468453888608512062553639741986599267306916764727487616533440888928016668482920801247965313354773039473023265208021840883731997621642638018085541176155317324318741964573380453569855441946030447900910678763330084352471411717746209439068358715801738358292150785727095309282988877157988415752381493452836932250139552296129413235449056266866739692780109873441699790193554219019673944682335164328489699555232053451362977308863696314995826326338045065509111463122886380643343533183570269326773613237404590171928071151904546902408028582513636794351055317165367755285359549051154286103163279455433563014205719490673949921060219816178174618035801538448347720094699598133845797828451188919148352502500500625388225087815937951801120433219974081287037768795869412737114772661337779563750998408213333088802897685129326730989795106892842916593712679866751933320607077527638504546782027042362496762304632627451747568072842986352889251531135108353617702502024656970743258176774030683228515450004404707467055020314491558740187190414937739544980205895021629490178166270148513493486093891190109921388891263836605498834718235263877247502358062032869692226027028398007778680304194021435915537640556235181803636384930534998415690838258187284917552073900817900828501560505718968364594916090379568253271156082703995125854131347282718545572320316533821621713176083986571867643560038573846335018112393789596975719674565479878199961929877148201547288412828392017086953978464301063341728558213969757437365788670917467583579129515621772119008035385912154704608947117521317379690127041820170346780024412798306691341593635342797603776586858096749381917106454199810326588374257864409474708509132411289323054612810586471692547388704552237096946026826579711500719166111476914088911746474215230798986134120135070650735930216170334332586515572047383012029971823967030546674522924894367942165125364256370327990973565058189299512780841942875945971256646576296614603533228491067505340605387905235856407392972864844096063387755694376389415577948307534003904692334396508804761205541555659019415252857125571148063771631550715325852545431822022569145269430090084017997452713313467185084151700110692693786315601786150328072619883581996784303183106560233817966800742579607211915725276372992498795572252935326081459688251678500229042629848221016790291427088122990943135111106859388153261831023507368107789780498200627144746370361442780866213249001723041357972872252553218709424742463258959730616164249135890476213745682880836623724914912821609459074965632641051424097987317596113400368878009590054124565843551076874965097010468336785619036089716625701318482727983161901279691041284738589826353583113728373834955272298833616285956660084855468496520847220316065008294282563664141720020568198222367942794674647329672387963443139296284060949788434745500766922571038953233726406244381649276047772049141648897640452058899856119752856270471910269311985091796594710862685046753503101559395709913852412954154693445171493583481217324370195748130995442039371280485497512178208377233282632948947116897278681989476529563198378969875418680619360194126451146534776995405949300782046223358567115020794574183801703167819724059867814035994067645115524002404108137911175948792422343668791208277497385828521629196296759999424131198906023638318862730030838445907220285712493787404497077300676485543504329729094438972679921872183004386020009896208678558164443306021650482765778758104510388005714898122946278804451268337974703891939258238189275520273228962608589757300116921205473497592070684152253632493721033354301455297380160716033117472557805392311528861088502690202482991923377831154695129003233208608681957127777940407040259441499624740079946784673130703418919297985061703023006654601984834511415808136202847787479173309088529523392942033302179780921493597665755437485320299476585321079359120220581743753596950549413403778990210525758206927055968738168824459599932820085470955239560360676800251922308408579735643451667647834371604619308913413666581866642516644416292594579103803256456904800388767412427477985010487649111722975457335694766232975718966993396240930476489131300006712656528483348548638285237264859768131845065226219786336624666670615509331575653157341987619937500233194269260125740321372526516671630272076615480918131991815283443856283328847812770315781424502236632252176859576881953077434872948109506276494287109357846051184706341155270843819773009110555805710499934453902520552021698301028593080013222761237150803488151624349862015413622183526455519806995660430578088722608457545078068170867719401690971125462537734502421387002025865890308623331904689544786535891175056295580204806327836925432305344220221071672926876713130183654565389835581778713428893035064565952124805579365914435571613583305618216828101331620881259919344064795812707638935072962826202273741807161596397940199377705460013043664911608124751809305448279493227082821094070629202700986196270064678579381770436136407281434607441351835999128725811910414979540199683939605310767229611320582312546533815799017803757569233234384840915999163192683430187596022556019306087970675429560450240203229203351633858945443318797299738435928389188841872016010601275681058525504992350608823294568438295732349585491251143396038632296685693068202063099845890118539833041581112419675866262740303798461526307882588532394801655445978695542340182114958303773023406014080855269396542804066240873108831240554157478217529939254923138045533358143349489195337427324475210515416183963503525284036193156735659515483501106406340561324153050419713928547582051905156543412650146890985903871045065768561471979621804536275220669629003343175687906055273478203690363802959534796483479981479391083540340473884461853605510729285924580565580649086611315815272348164990394486917196740640696956017688185474552250542676568844050365274585702027274585459648896962120090302870003635652312824517329718191750226872844148578451971106367433249291079222630615600584296031374776579193491158299906861579672745653104971154288390343441584681896345102201345197067633487437425447845712959619400580407289822333670806447868406221513758451093088227087819083139173773787009882265301874405760576447050562918172458304492028284358034864608409106510644172173464711728731500294051387038564536272855361587265732065603793585354217602635432015265912833080736261657155942576192831890386578560194453904838637856737035738282057147143537132990153095199826706968185954314767759734275416888123781793859466383255773437273698082057376866452982141683318263420526897564851639811046824294207005038689513529218067512630809121218600806097482117287956562055740960129093176577417935342566160890986054011777961272793825908057861757023307104485459407323228426228387163530830352179850208242206930416206526532895950538563872190418687445253132014536903993177302588889366162035630833084767002896803586273682069696642688059293872483388779576361701349457124495029677790676052171956833579724558191400069702736515289335659299390820176876775128585165532063092272353707513251032622456746222989434381875757956662575522449174641809145472445558704346112913159920042539570509409121058317173723088814318579569670835628719496513496439749093987776701209027931519622962593362087307474487601341509898527962113555470138753204219569239899950533506702243784789245990835637705532317388630077754735672143175450682092115006382215767832394852228249300784862164950711928315157228830021984444951722959457996044508631320899938308144723853667073228338582602492112893563603210862652415422086193639114419847710982905405585479969992921940748701495251121100344012209339918096914551045932026034547948655243084320699188002914995834797006626358130254575824656977786504606984314608839710645774509766007858201706457150799835893906141138567279538355690861490922486176979929077434452728273172419225193845156998473090942194370379156123422460375490970663669907342592670484882078376351976855702177192088321140303149949254866054576531700712739246593675861393108750893636280075067686152671102283140019224808658328042346502781245168073429662108385494809525494246531013847444283145897040966462973549258639520512691632381527710732454003935564290510893492801963214377760930094269317882249083631087694535812945992402565479904175428918960115353995081910864142544067863394094322945083479285664866515957249401208473358926797639880828513044248888557747051627791612178386226452507395661980335892635247498476073460991354859169599583681768134733687770066926591198634396924230220704942260599876787745866154140807829619339796037661622198033327649605953275881481159103061814035673234547076177035532873365988272015809604506771395816772920799760314145383580543428760229021192861046076449406895119886135148514907057707964203200745895510731031371930217945767734738131732074511319339228013213279329410430258812069818142059243465547873014324284859234754440456411041826823020775555942442033357546736297338903665424351823986318730640785403240115244109899427789558711605047018547032199054697392797957149410414664568402816188810119021995254322077850452277580979037748637358322239079645691855648091191584436536317421438696563179723949201324184644314683600250535265987211683420074283110387380012656212251057628161426969442718710066124483869874013510114236193969279995338604271366339975785838930492684812206308685016091676182884430044942485071274633363664594345900289256082957334388876377739790874382724066985706736226888722433127461881398681403830983278811113691700640092722549541496625042268436096165895628606836005401770613613640372537280798265504271376905247060529776367390520618675123150357064611155174399611504586961791434111281042007993987536727297833026480807850552726707791474383925689740105258626406672133734147524752611207849810306382324603436830052757428375386001044580929597420171475807560041719494351493606896680584220387293087657522745368041912387012552700982608793294319407725319737007982445990993358834628384739051234279758717388518303443764889584435478684674509928995674166108717446628290940808410849718130756101617459954348931522958809068049068157848878953623698902248801961235065804939586531505468216507367279391991583000579738636383503540951873259387917339514283413094367690083029813698418021105090113296280795948130984585134629659948040096356873686649391036309013803789623136585791366324731089225669858691789161522053022661732857326491648861773406375835494082238836146258990599322624791481946034539810468277664167658976254613970458168760740891278983186366534105248944523048145814058968912353917616962998921693399539985011080493656291669947419734170099494243859234961811491815820608227893264181996721862598108107501049102613054000586583890518848576692197432957036217883014940671332895360072707201718657846606824360457134781847536078328327990851908853636867930557134647458953727707686698474232133412131363838697882950154790952750843660341982909195656371657004159868514780538609344092548278901469522397011254051367294503512908708558054985428937144998589267787187639405818065979721473158588654649205445602069801496746201536544236578883584340501278354661897036470436853143279114385783080456788766887723486329771442167060340405633435244329911394085167940490590695804790529185567562569192824146591127838223838083028348466125647767883762292835172102345949021392428525860228300515876916153152067466527372173686816406516090142958594971462743279630483117700333550426605614544903805257620773575797000696839674872056396466573330764281290867860911067841914042008088341108040339498314721007963425105218208273912044261313859567401794101125181247859432199463499902701148459452853210664046629356678662165979704144556198553772691406289443142954411765258017643417759251014373773508390423031670439088406594355248806385414367765846228990944623455296714318320228329134857653755671711180006351494109861051459031221492539589911643144652438733752557095865922820968299097055629093057397585148583549337634723517734443148927420508244543460664095435227394694973332515555423085557213956191736368619911709435628996992857091159188102032728573953323887076072228110089108262950941803429130931924585590721954559823581570087251154265952116014157045149947888367096273846025074525447492884442456173950049450220165258126469679456123830288961032260166334273076561787085759161928343203844659183745630083141468950837514401058717961099035867829106822710323971718166175439567706144967024456280927201851245698449057019080624485170807467662972833031815213765897925281500060838921760038014607657757189460151567978058927644655562389819125762672088636565146330200396422454630377701261248332579006783757808015629633959025322265128201958927344531322866487166361935267951584508217905315019852868245154446100618216654775873555350996173007228015636957813929156187530061320610976527055200682809059315601345044354469020229088046685313264703015990654839901257764095030555439162709337472060793152650845585716726715058962950036587978954210803084774506762749302998228792046595372757803826471541961475129474163840048157056724884901831367276475193649574045283602896080454220259656172924452607053727328015141106233129258125304855899014677211625043919131288253147161276267603745084885179441776131863553646265568552409865167000490093007716998497885952812859734513289617065595385111667016371879576636895722138930227463025532037883152543791687756326443460316751296549286338588791184314913175506961902623165558642691050747240610120837855427519437751534303436314816965990407403653221680862653974767971256182361772129270688949337787201145160054538958786041768249791722094703214143729918195948152191173509148541830901967554002865093974176775260724632165176980183171452793129919107090584268153861271268328993028674723276091036426110407854679003198830958167984625242985184670857352153905123326477759777099129305656923903516063028427463405094929108883353733761355401140645252102361824749398691809836609148800302328423821849682181489217164498380543820110691027412544779984285012046122290652583237844376283423146052611340955326368327155837543513027657633127808272273096324857347054263292372801444448755694717208132417210761791412651654738021804510465291092510129844912919687662928019370827519036011640924149515685665212962307994155041440060939773454922265835681936913605012978126503987609530556256351473713906805708705447034026577686936487618915315298417580524063389821966308472949931380823523807673283887472882262886510888144160028058340190280390324197217681639216348244243063291134550891351486080707222274398228800181379134773743530065673011647611975861687064797209717170223666004889275160946741665433358216459458026989539095734338010102048384297612026239082456933115830684151637331015253215632173644597007368161809460291583445335104716475877414105247576300744036401954068366987446924224558997820298584675971516685507347726552528300163607506389484898875668829119188297223370609189752143914834030840897458908247612476582853336065514063491425943803531711509061434931028978471801274574069429035868541258949410154098761631048557300198930036354649415520197958540449244149566737099144877163734001043230344789494873648318817894574030202130244500851542156175037988492836448140959607676821184737329029000549557784858067348367273685908964941726453032276685769761229725808112495364997522164484459663353325870804447493787180071531427939909160139837645003176946157952980547141228198159444118486623460796119950706715431167570209574832682277489717827719519992366820783405975400502419590543292609851463267720956731560200912122632427475995763859046477382509901175634424376347576795688469545750555779947908203729501171844325908417314249326060312597958683586829208388173963645359854693687534890714531910126589497833888596921799075527128479648517709844569672269976448384939657934992902284383965185264174069292417732124615735590058396452496073453349084263264254084882503121121912928432565514943182465592441337494412249901082467058432241729672699739620961148782859361801328775578364227925847865890211262320370307461468700022789078268194623177830736701430380686548225677045300495691962108809975067441191195787037473951796222126334037504485862418642274836001093936622763746233498890614568431074557440351203202454604916730923975681374801843932859885299704136049662708571601415113397848674475088060948883725626321023138492646114485404797396879382471455333713870077322158308707104362093799987358120316464600249522393961364955027129282919726699342646953789136916517945958005879186174531613038493977689362962860636373948998682736102582295543258857601653917792295413559955623856484716330456623757202941971648997267164156456049049438351460591648579367675900054431063834559978174657043466826415364954892840798167740152886139942070504890494435244118456861628511082885370794809181538252986404345710858121752691374913300202047166154879312747627783301716936222317629943922823078253455540687007812680799958903169547727122057437258132497950488955204254374520175231547862576568914794191738235352207802572793568391501199006052887931317703386813792046969256294275029704106339274348636670491906336577101368941002139231711228423109575291319252162482616630600875632514193155420503518128733378888210647101330897832929575324856195233096055833034989786322279208069649361396046869414597635460932359650368036495379667951087576399979377980004531904306879208159066714919705805267861537831462017863964057513393593666577823631475353714358613472982322829378294860846227149755195587596156364047805124713273008022100505454004059140193071410265315742582157343886897130553667641202315036920730140006415980293844334272388667126816276110012796106538302667496288269732416773436780879328841372846107180189067510559985271198042016577683486173961417590455858667769742414694952825489659820915826410712449410587194862190038502721350816101461727724491300566687839480947162599572896461598428524794709881311330074074044955341572438325606979855666180059840926885424065500117907705863148097292200271532308109404875464600272847590137640088047976218248274914797701416872384810209576104437800497134304755261759576426929988786766518036241280716831478694212812575699076983565094753298400448875083055138401475962364946740404968341470526822773939146242504480197428808991111786174530569218492160309791459226617108652598652153664828857561467873744436292656571636577532104035468186906053024120411991665900895641168589712947819135159989831580495867327001085153937435934211146355031725081055005275912047938778013111174604353413606830295646154202444006699246598227639938595660305682882516294318562872233673963418857356277461873462939866027662923710737698235264342236767575249085595180398228012547278442253921514502951753129688303636173247261550013436828375347173056947883286693704912592148921176950738378527515074731306285574220743062477339989930994948290851793939350595129558050303337092636355270531840132375451869650941170187172253016706408819675711530530209005810359010426253233922285755268601568749669880056820914099892058869979246160492132079014849034502286388944699015811942008704582909021779292312120114227169554722765176804271490517009377527405048345044907312258176167581349406021058090098762414097616962037048895511572206182211288205437524207699679979022272936144316852527558261074855732369400160428802349622900311288495634569048401119493262890474475744336395428857461786181610141119991078345901728426252567335313893593104360441780876077126711734881148421296512390953528224861004141012670351085682554987777534780649492011431271625286880261976190734188093517042565857068231204738516922457013136867859286606024540871675088695623135919221619653352448059020939353001241993333906020893714497811737296917425161315622765033507219272953189231607355385660750463127642305087748287432526371522860661224493926452701501350434614495901333843222589244393473160007184345635295207481836654084582748568704743911911681136702083219533144356680842863948377704740484831309328583451887105665010503591743823023695284555391332013688141706578841162895558058376628484537882117994694679906618229010847951347702667972306925481713630761574812567152669727738796698705839478954657865424984983800931258840446358671753158094841216640865526932115838172376449863172051598929532857296645739034048768177538305235356591639292653778357938536558573360811507302421671492756809760598478167380986987143541427712235332569456665631050721461506694697484554621722020352187825147805501846158023356599643841828911593413716160197653353897702930149479136381057314344153931725160769946155094570969544597768533968051198134085777938772678189158107077395197707458502359680208521166858938227926893086508990861152859180051673207187692525409609801055927411994210312603691529577065241995023085635455401082320307513589430107516652511234574040843489741610188448483995650936465958938473480019846520937598638567719663647044003014999620890800155772629125740097942760218019721027282530365559375864723191119177147297263327189094703537071588599155728519141913340214840284491337621039863084574289729002822699583663108411390287633011025016885919906948975490567438530866264472229926597250578249244990165873873842581791529476465980685134142831892306517605874839767156333101210927166978146040596144799986228210299031736794417809384028660351174021821049343366078167629730392516295769831370476503510715224030615113394335094359263594981359824920784036085384680668830445245317340622592120656379145793907643072556656460727327298451993967572208206079077092271628065408354195243153258969866299042156890554154276593900373438902711482421854253848065017013963006367477483288519067940780205125412505429763197328187015750155912081521803084075073696737957160196357732520531676434255980042431178784023506654855775626078565641778630657564693700355327508353622830167051450385307170089896279543623293901270064325299262551193972661730885548449890484623524122095562119132514090452938870488605355772405836434540569684449854846002584608488417975941624594327414952402265631346377076643259076136374485839133708019555172445753718561767856954855936552915773021004670024935614589240422869233929096133049079199735618664230678779068153692402333167266525178777292471836811401816124814048418513242768532027996494917744071227348344576953571159639526946847828951978220225752216140780760176632736202209844881292889870867928004071553853667534200917059080145234599258368900580065081857658535307673203462433715818354492084580240735351607313609640429556792181848990480457398885080507537693298041166736494834962508794953684428700246656597326558180532900011804042999096512313355070843634327573301675580514318558397479874830640825370689589279210882655649968824423422947989142187724217886842691536362067040519764417213846679966420358612969964164994590260493459589726769800613243729651754636414655020853643461584262208009627909808233768634531063524193007697868099358540206254427838976364106459302251393542494634979706725995660768658524526700758107879208879979205161003392719087318384380856568961968624002841353516302810251387627783051470050849211001733483597481411919376476896352568985440297868685284161514241980682138837786763845420173129821522325632613242731923063788338695033161663876288108646246252104595718348497683320194383400233987406507622654116930132596490341799990042021619662428647601083837864368048398671619727801454993588927087717477620019492337967571069474433836914941827406332365129469065744605669731223763272535101469907634283470253606414541450063492177575883697601816146490004283393497611143152871364008216045216996829386997819705378785466343921670728434270551400730711566388134134528947006312033770175354844359356452445570841132380464134763581364245047385822687526779974233902044720642175069948897934155792836558249680643434788180268524248703563180590590719711350855669593969573998187709507081028198139720160309956044421089552101498908412465305259395158970935428484744071855128937426855792699670852868240673297309751926646376841829313325106511340971458030371101221508320041609603575802574523661709314946932925021408991442570150360024146114563151906706859063077170615552323956572803808030860257641213604612513982729136693413550467854782866959837863246902491391434864518306394335804644485915416426550686630924097329048411774046781745737245750928607629653975473462344839584740082253465329378409825937723816589543151555204028391977134488364230184031140475547470199285245233956591564849112538732696183956520120648670468468755369446135534133529681166912577404292677200015077382393357491398599159852394071642741620943548005275627518840010262060625620655539912291305739481058706970234037067518779228053119213537196815624309989314107300312588651949758622918806355111964104867417921156673415960541512130542637127165233668012227180197236381213223146500157052949645765071571901137402185773941001150291437931620709180973730868875801913853950269768077578489642927359007980189611531982211845710717294620393009581572989209922734177306089416208674480721970844271556810766316160675507570022808217454228464828913819979550840065915218083043851534656679017914878368987395834550652075971162064392525102023448475962691393463749261543321922253730308101867112738544215397210309128977195961295206490770812359135659321051882329999458386366840740688414235954005779286760129707075703964128756151619162411690335618166975758756237620939792203656006029760135049002428928670736404482069131319879991558027550531339251895066350763758697194432721596385114121102564391688431191017405033300454373475562353871521781902573121353504700199488408992293887731757380274096119856639702510634862261706776914473234779614351155885879744587982740423842172621933228876238306005448044560139382656982730469611526760770732260214846030641602436166661813202406418304793952068349535414769532139025306766149360157928916135915094524241113400598370017317657747039308417762029354480692625952742710785564042327241658167785147906614153994226115205608422483341843767733419596353877389471443096532782917622349321471758002586054368719258660405197066106460286406518039349421031727022313126632546965811447730748048215220659945570312600718758012417336557658591265972390837326917765796703527823734694204400985284918860864561026954966533736387922284157553272846102008248620360946760165315793330430033629222513846787244055944190843417868789733659890688899926122980463751353255595081977192272629939903533456603980350842856199305193782248420685748120134058166790468956482948215095064992064538926360073876452251565227793984216112740074398153222901740180134515006294150492215422981136953877838528693081609492852445720841618806687538228976602376601795965889654911045484867940142729703494320470583931903506268478371688197237996179466439080523876042050828209817198360893089874334275631282275285362330586433634560177334152021328948661789588567431265285404820413056460437352363713064608546467469136399533147727946096990092623764169969610978987362095714333544525131013662465093846643424210148565186569210399818191927493357713426794292275794231821294509877380178938740192056350859897609974780121835790473869555048351244408296508380307316179860203434424535261990747347244328288454349830086622262942523727796011778722637456305907866619530104223955048498031727101783947902292384925872098501182445926970445253137083965987176757912877554553677435915536717763913103877788587261689940462810553257660547513485861956190304533759257364218694439313920606500969987970698661345562184888139397825791260127703102589416538057756236464712198140596736997441613049996493909015611747416011968488813343435826530805648171491956497656495300840527133079638192614626102469196182739279810033824822899605471552746952272361309970747636546288756414344508824429173818908244340979722651362839328212205594810740951654784369277942099613869607859093894177134817612079767180736664876094122912424054245946633916554762791967299177940715204099889803194063500006154075511678460110030905640657979791107671792225109978760858840187323475114815755939034350624117295250198597043971091652757326845158151404984310578901176022569627435375467761656438968780449758361823405957285688308618121681017558826252196975157785262414684714729773321709432156411154611444587616559040695960815347199932233684627671888917175776296889118148141319294251647433491812617753908295711355812535708843659859663719829157389032241953774622508697186698618118476821356651214510430097303041761637677935290061148432133705383073596651459290908539250658065685894655098379552287956013688070515997014639863576653918589070843546899041933601837258004455002197884236021747483575198626891233950490278905181183899236745696594217069281715005002169652565411997663548334548958910771044798101635157054932449910675011669990122113916507638650136294683210322663136022795605499028037997914772906307690706421033707256876927319203728221615786596900559937313104338157623032047765300973852478087331809781639780454460425688298492295434184086957211589289833605385343492886199778060874293505641618565298480300530099849400337408214598883385673058284840686699737359135312989206637441280180878015294555523737386505905084818722795038152449558954449958707624151293045608796967318511675787067024783272747780615724120652008139984555215999958610577353115130011528220294455993190038985886084186338626181213723502824086215056066876663524068768424563635942493572074272211407836381886079386909161562927310198076923183770097330432625944105748965618656876729657109337176254673394876847865244077139872743415498329738838944394918403087864653002425723097364156925936102719596787556824474905552512331634734592010352542765999951987411049605065444818658767159946411934320807270051703541263163448506258323196846349704771917700774837681104943393193961282593833644659133548520622628493464573901055566482149958517202690072597116212718486829789854664956735733336607941460698845259495857384920343839145905861261449069378647421927691871417419555222427364099924666118966643297859600206394626875830161248154437623819682755604002239626940661554944193090120599942867657644447029212835185002182665996444471285788798740276982154194293981854250601423482668924849887292710428040905047581545449604155886719519118004137326034699103022106631807315384162223455372217261108629147703772695964624114799744997765919266224170426082199613541282732236567732547841400498305836427466075735272748838740687362026636196450449987867907639412747527197946149673587060947320577113734447183774676509008664239112106319521092906087540196810256243579162580085878182894305871571221402396933920541441081298231067152758858026941451161313093601659141042008841914690276552809875986629849373900696923311406994309628574682454842563098039662913046075933157975048592616138752303166836413226155504759840723954167873917781734211757687828979809310296339091848012961746179040943171225422656667618497614092828321714649119583555928385777498450526058189537121472305778619602536063722006595501421944473171320125502976574866345953149350180347951263309635702706405124156329009238035665299189950143375973501645519548344647109845089064214002163304839650775998859719857165948338329655000292757712538544794793916678113648733691010241692706163301345394842157921691114927783931292747190334005241767287875642126191523865722595889023120756684993952433401104964237872747699504579750719856128981341612367572157763787693022112214780737510440940952002751490891457592763879530163213115562902811962492020309140611845187921545844703205800645596203224565023911732249931296555200223645428597134775235717551531929471688205703606060095076694545212158019692025992089880159186966073931132838919279266625907940063624698108900667472021230092276784867625142016857730137170146852554468164355947104322720154070647397052828877585346573458194067223806427917262680662925694475962327027304065784977872077041227852003014947084508296690414488596125862924155912814284383249989579013350812416158887085833662535547386699031054744403938623802183619348780899501384306180756632942792020038665131111371102078308579375239638549370077328710401340206543297754982672048869957345430788628527587956101523412433573578697695044419321490314681494218485069827958470488726139764002676462562244561323569005236121581257021851226869909655343786306010658697414832954761988204756429233887312536344835873274337030741315531780004486747097191557277684986465421554199810589101692962493854047373129850952812852152783394685878318327989761179109356060893268150938461055885365655951672566165664916536161263933327680483400574795605160691498547987525100892866343850610944603317434526848081203687700738428551085586287243177438334852774807395968865619508743207576444140174203133904538280659195994616725025934870720205825200572811657356557383575247848002321384764719059259872435801433183453502290872926511721161181155308855974763340286314298449026521461400301196662319706808761394150070343376189770052352471627176317270786257462928907026761003765720036395713930749892319114699343733983103524723152740845275496367972738725313882077121005023564649151737661166188089440870522822068857556895517827760182418908617196578621493308036447598324789774261640453136313325368076178261523343360737771433253672370519040069465882859014502483164772687131712437640022778226179014792828056443402530033170741517787400170974014982972895577899651439146326804969035771253904605330625475026864419366500833838149938021980085305554772165001123907647065962100887851536745593018322122130167736347317853921639776481601590326934454085819583835963019707273709947689208479925376939078169406486891452282761610438588004271518262666242083449417078830705865553891055990555844406785934882349097622823255798975501249139340732072892262500725257244982735626187348096196453211464673812432367047434841306148090746633034682061548976587314104325045981160840756515292099286990874547112217650642353014418403952653407174063394742137106203953999543748184487124334142886810522696723358634184587824017445364818604127735453283567086564305419030494666299197835767901840225873890762785550983704424415803447092864596946415371631934594370716012386732687825021839534985134424120294794017245298058400101270605931479613838732268868208291799938657630523248031567073009996165923514183554690507498343692933527648886023513849455336034226995449577110428720262822890496079869033374687514180358266313066419900209693694593786493030779551361208614786555527564892316779250282217711366073234751514115630751177116200243295147956125237631787065042349823831211597310161815841598508477975477345788095045572877499387284552129988037038755395573490485898094235028437193678285752952905563458814166665940148031949369393392014825515545685260984096227556869256330574852512137928677814782297754619582480804760568641409591832087006109582799377729437586280735959078593619799921045059804411525084851626529569853574233733373962302466978809269040604629994174301212462254180056513636169429990968907368849171255727804465275308338219311601683584477468023238205454869628015223917078445344705254556178225976984520590417996164128280714032208014200528455738114340303149447165358009346898607024190180882984698718155013603976602918541153856075094711338996196598795434086616985971821772718476910971460329998058423014240615509301809925617537403180169973971067079770893724495692313121212113733518793973520892466557724644195655286220446843423906012372961627611099930131253196938950769649308261284042934529843656810646696512901898105001619535986790442721405682369046927604304643827132518644397521622221790524064056109036915671715203199520696346987116974909069597461994245365269543013233865064651259636206131341542810584450596949519894409642174728215700156033445536106219173972303815635940561471098538304901530391268423263558116712248477639555437438748619732531469830222393306244764787918526014819585215767504658817921167310055768146889138478980192085451670508276620973241008148889821109323891312233666744799348109135244543683146980733618694424066748657926236683931649805767269611981033050521562999018790844852499547299512503590454477556141925310936829686595269450966656404661209817961650036191311697331157670541413773743168502563568737479899895415016862539594280546655630899051674104669764260083812824410594702152029011070032433715990700506430287688213407146610351815824792290741564244600493243251076857647314921176188822064996522335913157578590011839010709325534714112408545957323571962462682732800654848318604380709492072600340517960772515981370753197008383343848622222198578531458396605315165015834393885369310139363017556719950480107902291778320890651326294187363096102118404805627553531594871289745736688394415491066723807279918368747981304627483320142562231266241379451875800857782590648366255518913627517560050409379062851970675886029998117924777119422440836004405031960285244698764268892397081810812483402981817599294686958673730656447782595323647759197193195374900154807995401618745772472365033863905779258512253800058815522068578882490905716058848808841279848163072124262767529770601063320440989886777630436949082387786855686215526720148175435399424222381385690259111256088349103158736738463835676630223072447294086265413442374798660884473810571887917025691381456011971984793479204636289697979913051926859489277945338896273828219233141831969372667827280480312169287254422743853225431160659320464217873863285337325717482922610959983151567113075646421088788457540393764994013941922757424590256187549558823286287744858018108646871710324754499782095025175938980684464327706437838932843748301101297679209177011089699703503191156222167081666876418263427509404650176043499149093458149732382369771506485790505921783523327557227853710118988950052820582427621109360576194988534384675447446225732117010430932453842003011864225740061334104254179478244426883487057432928372637218465290980877822379192239834714791520244329810654681115703064936155180253651959955794125487787767940381565551675792843625489137672305269799450064040090975495303757107582766147132835749796005927123741422521889142642659363651469740901744279666223394096713373661820925651828357216493714793962559232218973124410758944334729865429159054079709080184270463790452546452725702589650639400786132934071919629366560926526663104946249386986945288358143140840329014081584930876124619826957226508622858465218529756402279523792366571937869696374279262194730467243014373836556314346258909442041367561237529631915541238569721637929405848867101642125599456348797115026069396685810990327587061268230496239243547621168331606146667055687644350970206972710102546011141058488067018307553006360383989078353322395927529799286556237767033781431926687435151859013318385099038478886963578899023570428896872472988290839114319553752811007697784698226644622607547484485242264047286190845292530255774485047551348197355635027733448758068696718423581068927874428286237967500002925714291854015235339188037780782084735805994731746134156411760099004167392896506808690190031707437948395005399080274733286601237730982073421963978928324213406928606190927353699423119923543382479044850652850696524979194080413423515405498861833527049178764481302385605406243076252410884098637505247650817666876386975860656621447498666316993420343486744336463502365985858009486199667276215990188547384232804684478563299936421086898972615146930944132004763156624172875792238991555968581756577526052310093265156418446192847864558200694920806747057901439255512121345608068984425949878756676479140619093599233838081587139842668879416818740697612085978466209787996626909572272707895898265106761595284544946277130932009241221098538139395413661983072361627882010523642005875529112507531625520164669639234089912487326167217287166502535445087914196757091961652579041627124742250921564779684805342678325902673735367513684359407973921706330230793559722431147169231229884787894241009769539205623932034462442710890219564905135661882218410087072892244202949707893091864734266407242129571076378179522013327725187145510838132568275378891035993404573701814112726913656153347776504471494584024821784620122537563769564845806585157773652288083917679504274281382726944992355941527640304366949139503428266326066978983691298956832110840527662253184384699837038830584892997623780907473258030593271323750121940659160380929656938915459637125786306838098459227180488358951182690236493087780509665985637136086975666925930056607034987519641934433204948834583315619184977755308021952924024443499884713099589992139164298209536597135564803329733086043584771357854720137027307451489350239861136072362290921303836653159093761930115973921336869524971252453078444340971360389345310204461452970198081516687377446284863763178243405728642596029538310609056517993004243718953136071575995047253663911180089067945290469950536621388858927638164835507623797096281527443793715490267343146329266113641002749531453974821544981001049637315157307454798662656230306351862705893891843503181718343264829741573694150600775729068078285800759333660239272809067998288677216868497318075982859440741364453391724649931844417806006492473884821216141942789004280546024035681993082116343154607415162567132184004857058828702219131612726496689252704267551160237701648863457707369686848178250335165887430520935599263137888815992356119314780503424601960324500472347600568653237234998138097097602621501861691049589410241361665009867038122794648441576398613259413460603296540839102130203594339521626316632931953998064854946178571547035197794376090551824657537170133215993757124356578984777198491712662520842343809947477463266128263742091585009307603204195432928464986062970763603151381138295518580301938685027153718309194394520021132422722174199028377671908231228871877784378584497353479238022797551155270884903832857527352958037167950619613392409347842092871787209248888677785432686914854617433240324739825968625074080465433790401993057957058082105579833917178900049372659296289792844801431334069451905494538841116347029881322174374663046418356964011610999469925869407088172364549707323815568167518490640164041600042518591440858851500671443522586147834000463878102892772960454871167326298530155138650665949304470323748326152189832002022899239054979844665532215150562087988448627783922667031208055105841394161635457505251040978210142831391252388346898754277812163421953078721911014075989967322805363166169021290119233106895194643289629338439398186375625183495164465681037541461204907744962704117372980138791252562112756049761357881555509800604005996501086697005300090087001256987298666029446632040497512705319359787502759912557556873360304896061523863497607705807583039535618026760038254980086918030688903178499730802580059551703071093723884581012652838803306864326051716206136985028480170551897744768592593388597133811684545358649873360774331172454914133728923405924703955020159778165267610598708993357986766529360208709676853432308759167028379112568441274119451256452682237996630837388583865444132086437138679294421768566616240068486529141738219010003318576692916927634797555836583873258329991451130532763355451085483967473282976397921929752217733723189399416432740828597284604449146156733080618789519374518152147451360994218260048616662642879786268578279759239538576200288541156494074658187850539988769843954614606175947981353928254209828266823829831675959406740317308099709924818468467922837250625334407529664093125823796497493936430743693937638541577545152826585781515590130272167026668933034703054917841152981731708984504083657386725266647571963613165266077138174884576208877561827094570339246023496463498920329836629131095547197846711874727015136871771934385270325350757019483899842125789533645702642934865984329774126153308888210785019919562743070042179603660492634218930354892427882794018065058742706644096988726269963463820603529796825773490666731328747276325400620317008451056534422845748327796779899520146382682782334756323050016172789930524254423639891664157683058440326899979017674759271565791321459106509489917071350504378261492776286408752134035793474543504682796671778378924377346712760896797558193462686247539327806655971218535513570086992351440627971637860139960959191486746341362616880411799303525510175598090176827664643369454839326735202840316056538744951701947720024267369120636462306471371039481456398633880859205177864764162335660832522925872744487174692280793185605664489515177984452376125804210971341955466103359871667198883423366765394226106244146147876122062039696748861060794536613394306357136537252732507350861378511806261591379037846053596946533387099545290201134736167467925922117478195091149272472360459963201935899608232000028393328508269793568779941975967940934044981841910336209194018301021279874727954355738062826651770887115172477169039570424099370701166496598748552103770797686085041513184600281993626286958906874430997507211382467672631195137401103564047489791788804341936496441829569046093321981655950170884490405859636971062336839899823611017758675489690741961815680313068118224911887139718157047230576260972897135887773859224174618622273191801615903459587983780527315139149193095839634449687698954160116657488617242976285906410196882946935743943357966377968771299968127085050275626922861169709631963124533988937266002667399591929753453570375064278034938523115751328810738601920844775019602408681249260431177568659532537180494075284047783001089995289607039967104323155210276206375430645418146357182526632799249550836254254194654182641422215602738234417608323697651177281196778281381980020205446649641535932664835518705066271223424635348412777859249101108399579753029321360792478207368392244528060920830284545950090834103416925999399683714346465624712047589840623469134290688887448102561973343277313555588733009440995819591065145169309448034839107539052272085543167319922804418174311214234403889971138692428095937163721975088192099526955293356779841876625127726133610834562356053560350071361299956130397602783765282974264093991105378609261928015944193489415198267507922538181416950130434113519620155904989119458097099317058675389442547749413900016585005538995259737257028429621879901540899234385384888827554457742922646061859921987804909205129484697300641452706557444101467037418085562828095501962926258859026918559713857669749810274511330917886550400421773235275501205233516617157912865319900418383901767761428393521994307538051140853081572230102179403834444980645459749710718014149174033610702366696716539397312357458519882080277425588054091472831915233308853077191050583790057751239765419363757646963728352792551865202421031632280051782402203622603525464287126274816494725653211189983177324353605436467055473076677249440781931116817844547672458652474242847558027421297562958442950686042242530394332688799869674300675527368039340249719407808171052422841860763404224702767467773430948058423687195115611730630911623921043014740207175144727204825524759660486178758631265630450316814776225502896104065072482167807479662733596663748982051227351903057407063688649903682776568408507427473829234364488744546208343559447913884902447714195216577858506711298547137874768890305413438025585589161290089585380079888011792755335931953833210189605292463776276134151128163481910132559051545274328908750023861789878820322111724505236934829836780366350496464894314760166470796122434086691283257193222846691736133307882264330512844869428784353700122901878849208444202784159949357622163813451613506893836679562943504895567600878350261178421243615535423457559939158713883246819626692637892479598952937774002754038161448199328312161449270989649806430040124275854947132296514027166899735505207317494566234802078074149268438419873959740824038333727023872316771568836295167168935036053723765793741421475368557941857755178287207946740621139958550591871817155388811438215742278334202233135048911762986057709969779997022097071246482455337813437618820689565083229527722918566655987931118734347953103009149243919185822217810858304826003529962211355183631083488953753579508033433069256159263887230146030462825134553285343301711560800457655137614897823479043861949680351846677762161117694976218933724576798203860277448625456907259483867654186233825939854728078965258741553055841938752871541242190899695996597624929354706905859139071857744150834826308369497680869002004153172757903654142016227319033990598245848031315299695115681080825956796322172761968676267966586976311596989793205930888484154620740809819114375719894139652247533734576573118946009669155013706067982803993983719568130207938280257728588328741894266967184271998489354464445874965261524401123430306878098884731265668400659181550137104327630402495029719046154516179712290578182107912346346542032418315086689938110948025618525733694839392186781676018895559711571973833501165219013278277209396339599079356647989539528066681348047023572433032591329225917891768320784482994438654117035194146646893183906634099591562421444986057483360315003728852873161289571713253845563994971065621102846923804918836542149672386995799838390858566712791859860788610518205693357982129836617208517252406577104374902041574596870991265512892396961623854022078781898456920306882011067273906253189332091009810551037647826204251694403813249050733447919323317318541022981661388760933021845304624020235156563849440356199869837269185374854130635050621395370523559178930490024653998957177928979586827563016935759172313366930813731825932605309576778118957503941143706608142400541359544426035316528189195836136478064147380470278640440178356138029990684458153266221006248856858981713502008452159037365734880285016627612180826124297119389745889309832668036121187457884006085936844498299868388286129564809234304456992563391830063638110553110994046782604272480032896107229003123128995593086629265674874636606681178819487508488595593146994389508849851349904520853584635880261866483166150619904133940525326384610148285252269048968728002436145584082736426146144201533905093441130593827811217724418873124295838141963331025208495924473188391701212361669261026370953180881344013476790085657977185260858608652613194797202767581118305909826160651799117310706815364928074817949092034664807634561631023422162569700624250387741438341429988456077598616656703778941828654273649286949512890351171755550163554892384641141763718445395994960137392460125230407740478594919474947959689327079391900206666940524586242345025948107368315486371441922074937915747853299980560789017265155293552220113298067068787475751287903881050040095321755367733454707527458483790608319140450467575672210394843642527034281600348792970844950319694982258871836892770445312624168159326577416937434871917694386726189111679787726204577030779409976740316917613897087325665206150019302054333842141180188366124657733373946757104866793969317464223980876927682258900723578929870789576538850876259457703825338870529736472059659462393296846838069740556464077173144312185602745638518647126999732167191368967009468795617992706060708102779977699363238411059685647355096079548435581353959885403206922212391023973131949973065641909693816735482236846468292370469649641690465606360442025380971802485132086633811052921002052541075436583979708794060830848604397952301244021589806561774237498346454542093486320093252338640475366245218802395029762387293364274621786804400088486317981272885308567756329667408373790585851331216316106913841317337397482598847251987678665353595092182986020919393823539752180425883947303505492747019603898562825111200905138549148926850248473594070640851816515724904512402684371332494461648171394897731483316873349691884886043657541269183177496367145154498798420392892815393038861539015752710477598708671380553954867696111288882093862869078112425719946116072913074081387935799390560180297798577463389978934325410146016073327681295143256527637892821006519115182914452657576638387916232252769857577675165463112271264869088552856272125578329595511888230952409312750298996972231435010512260540018345456237542313631160387263309723397688628363392075005150630731377206192157363846281549081778372617407864248772308319883375738292754862806018448027860471652790591242335076966931854574747900553783711097284774258954027378390473683529780718916274971825938039414088437721770309790240474843003443062825665096492957183891214735293933185064926875529206351403452129369600412545866216446277393522823065881668934693523391133708840830674780907388238091632549207937890702169141628633995215995377681800912015457035336587678395138503330876130464205417324266384053796572111835974776453170493127176102890811677762450501550505739990439801780616710069132302910206500124599108754746794647707048392601485797781193640774953532819596845025928613184265442394425975846738457545144876097223858446396358560442620940917385290607410887438666884515472529877785150116979498672506221287644379941279643860230473791567844281995489848431850624990363361613102440992786742722144653996587876314831224803335372042927857577901568272813654036774297370843971872917965084654037529978268087044381064869759755450733730775048591606631504431309784286587276766277731901036914716015713400722681689020372342241642024306279397017291278223877746719023465673999877118584801968210936992764952355456202160545479649460410628072387170033224137100478082393113146775942056425564368972837355183865706440942210739161276385869711033705790609298476945769749112038743754577027708991691009428519758728325873557092936049731571861053205733162964721688121798467050600202211142426714558262883058832895864664457080778465540457355639061835969345640659406018512674293234164295656328784922040786040993866383109603774043240787290461891104638997942852578369725179729721844010018298244332156075175759361172329415463196298532565211483540869103052166479058985686096033602213885076898677146577519145554949966411355951531140288211923076992976494618335392031831174907200748559948608112237280342975011604548448894603330351187846690051462508449607011736970826969107912421520142658956426092907472775581085752085781163612482194690063494167694855903285662061494624498326328487463664292184843596911473046139160417293050383709812342036327388928453491650823913732505402915942791905934933438049831465314432574655246275436535861440367076011433659876262517669737648341589375210972870015404280233305459539546162452444659265994435621175765359803788466963208480029034698665535151971752599366538407782917251486111979770974238348352383456731672373178418291083861804749261718939483845728024333692951380114734196099613656962722250322673834370349695241295835723199411441339204505171078301271488164708167075504287181240929980470008803595561660915741166314860336950190416041421335454804429642727874552848465540748793490212051891712547945064473150234521056008863691687041916037283561645442952717838853816581169863982327419209626239531450863875845777078304577927064087233954768587986250000983685934147149627671374448676806922447944094758217524496193510572072402627238385581020953947645243676833266449781505025602276391366814070840340820356823555094293907610166892147599841892456282637314879189696498102121227664506636527269584304739815168342482993738344922560901125302627530909924455303317689147063202967503546234060977445751783362754677888530126675806164002841854898750671481256668347423133577364899653127195001263837101052618684893898003972303155947415371001736176536139961324497205001964774646793352617002722565500857996239079126779612710543358440137928014106751828724405831127333182065002245294545361445067930398702913426576503630539147257607280366001537204813586726385630018426274535445285175284142343635296535543374782201956845685227960224344622379717736552341004088280820593430862536423545881613078657174062937637317639565921454077867022072509773945279936869720329012170250240240854022836875442974421309756708942496109318543348501085855106087184250700032833201533854249627396420106858077909384518768877374375277598083163522261034591490336488686926338629994205606190096514381366172414319505595205862902587001785502132482696320403879708156494163344071742744210427550074008901977664061579313942680088439951070308237719441796575314085508770113109826257306412881109853263948943792102158579896805913290711473722426129616909741981865990385696225224415249298156122266927843814945175177313760051310240943742856944501813800857480084309592194483935245506385169092917787445444804337019374184081167865775152789490949514068214713529211379147810205274584017579342123192112442029450783975831627350330698122313869402913064983267625924987801726073097167693922734725938619714369767664220013214748496291758302098337969929182151341516940097861869491730345955644996154350630065073304036052204846770174731649101208337826562765533015362394145950458784382564889232748140869335599367527494784389608560456884105771866118296956947786736622927868335861012977615842469813007495503521448203371519715199487174554363541807075746229988987111595311334471615007659590355239839810683680451549874172544256219025518905493337176359402140765004828943123284401193276617708440491201006482110738544021098161673227560984357737606576854304038769150712743058143727120075727344346856682542120792160287459800275257668577906194511659311212376003930527639969253773328743564546663144464389003788460789008873405429253289627315669870396232754237503828129737283456944953083158505755168455712191135708181371557301677037314670267686537081381110911857619707000786432639173749630925187023988671407786912727762717395306911932349797926605411116151088544910359616979715534066349822044368056850547361212489356704489809529352163030082937395716959137359352647937459066697580253838824226943052384709808596431434719843417243992725379751596056124666122471464447329891385351070435141625697752759348535404978861048471392602250584499831988827431009099969435234790076616050837199227164745230641753308938944289155109241800424855253253642938484254839050359322892083100432749367781618188815192523382844527174949136026110620789229160677907782706714920169244334170072746599112011708223105452554368350631524790876157134204300067279613038958170134808620167703590253417633940815515038894284615229634027273343986551515192833054665179559469359435725221931663163177955523687224157910465517256701863512524014707211152549228089748184044921271943413349085823635469584046458710230851339115298046499884702277923521993751758781369624433303697860647369952840603966053850121425327882118374656461117756073257756850022373256098248360859477585290845556002010795496817335817738805393738351765127816259058637512972524686337729795846910093875472875467316307027484687009454865634386676579022494429587600988398043727757800473316955240505446834986509287216547080999554224336501990173547523888158325833771578467092076090676623205653633292512117597585403309318259977693388621646856907269498211329005144548455872593628267134374263452088647897116423231858647624115924555583022509422311054731484448754497091680173243189102205413919846226023168731666436161995276124044865707642674710658982697888462246007838021458647298039369716520889812930785966270108961590962701294165180730869813897980184956807335443878898802595746947953932662704099979181904979881620246836268822417206605358179237194081078828095824316347096385303875668082207618436075321563977412745684253433378697816083386455335132018880098125060149987578590066598451942254146550019876408062643144533986663051891241467387048865258473533843279112653449086833403412949623769031527772728569456603755577302109190316095810810507322344113389560325604461679612167175662115133694512464585957444505465284930837479603915418526268574694583148257798364067416764611383665706271879662334196187054428659185448105402502424103882962350120365395944242140725067997367449802601991363359304744890992120836475445798453623756027888237223427021417156915279995568596525747814027928725514381392236396551806553430776789441204199134904175075656915864710105074313562704137716516262406902228155450605372034568716443995430781882726411657711596789139700773679890403075648327326602599558002273736453708716530216529716188076574946077696938174018481114393693666790535362593851512616031116741756935016339411053297194387006980828814508972912303268385125449372236272602856815391682383045988999853358319548830390244199885225803870741712835494153844096452406567838492759887925810204217675446345529666852539981243170101344645129687829182234628404034245207504171474308543865026121249609911083321382076110587105818315518837512297398210421326216927333897293128449503148524980873962851766426353109377675182068950196175888574884287164775880824453711233581156540419075710578168152035940953699438457487891391326273107223608032048968563426951908700332205163224948302364185847814338120039097916155899431504818446543806793094066920472182994285247031178857448154211076232853445101663240648303217554689824786110442924068424200423469160526560789061479923017986673228165100878006166284125502096092865487208577388902452756492819239768955572446677717910920917914669383447473474875622721195820193911018516036810208784026345291751376023522468464092237979716178455336564086934553589286648902040815564126699517385561209068827424969444746581930409378458382158149523747686211864777756181789737931508532916818536983860512350494042123036316581248133339182423007692567881473256577287885237110385570802863685251108448642191813216944463573548273581650195547605373833254415446052330053430926543885067672593095105768284445919291565315830211037268777868217990373490493112388416156871908141482398131925458342528790163455803150800145357645616105552494642597898269998417040207309374362358080306319524276275289138835128138380070950554161649727534833514661286331043905636850572473623753789001346199994348902742861998320281686117361726927959260081994043843361769045321103696097421383431519334603938552535591445947745211742186085235723831750712426064230292997604473326419807965121729165875375570899130773369204906844631251194087240136919210266710546074438010773235609487180816012398516197104495059822091995311588689656751315291342845624612618127310247448591062561492805238827479266022150584547124353432171683824972765675116297318259600218011424135653784512879248796854478508679746204747153882886524853305252688327026943828079267069541505604272162633618205137342406265100083906904959067859506524155953979980913253692835110186870593527288435394175497141584955269170939622568643439082910550277810319811003045518991511307524998157787075841973286183499590428845493276660793296108807818216527260959366515752306219482539452961097724588585909843173541701578414954813664636325254877941190363508799677165901925988059005856900288841274124866726306662346996496257557194683465839366702502097149085397861267881446484350004985839609859213074309864336017459961307698303985687023684521896456632901973740836291133578284705934370769428456679676941732123558039339785618312814913890074157772118478683036367569679739551991702404835204039226711610326769978553884183918688261736157684616764468884052950473469283559532607010801754405472319092481270948900714149171196541573236437794425803403143173680384876552212052870717805430560536467559569518377671618725131836722125359129508621775125497753436577217293914276034136774317045149767462977216149460198985642296247646950923396112499976798616022218225236054589712797565151888568845750362398742388499444691660736752615352093000360737244697815470167513236808857286000105662553835353761123970187095351700393541725636342049515763721422455578383661891454905313954070934842916179885995648496569354240845138526888852846893471898164097103020516564262339550387449033623894807916760682054917949796688906041918778722104864209236372651248581977629655885778116626025954052844564631702638991505213730752844778975399459123134756718336749977680131450750546838580398834694091879852409375241225461106070868971573593073731708725420861245592991934712779900891879399761154030107767872103238447540335593235198025601525126740876044984967470332862204642948063243655071297655783234593391769177009801978019370209659894949290149568350397377841857859279150798483282196948944291806160422927188527511685765022666092040294425852094229604326088902395877977247143428923174866675804566320974452375922785482499726717523475000501520938521074552403311044379830182417268612993347439047092192134273012848716379355876403818810103863889248142263066321369539303782969678589292171545143091568490730815984625284624683407513395681472526726836429731078913270247027965866889665706103856550043700742059745575902225470909038434734668271808978739541065817286169451080964048025904121596983968700514314032914538516633878892053670951316877867212304495480850704663898595014942364853502388180237456081763198963313809048679894536081690894658929475785041011724336648471782609569568916328781971467277180361217989955248978691951402623218894296758614255703913369852225606686402129168165888363268816328532906065392955421790430741967924021691501488203641082978063358148045029837626935591345056780639452690200001487776528022603751494169878751090195441961808972677984400764774195981770701719059465071999967623102864207988626735988362880823874657792075436902940341728593467868472766928034715410424122764987447004294257025676053969951359046675680032997700089554297508359437637923439063780638104718533065294538983214220154084458896976133404303476665134995181305641933697003060180017446543634725601812711276956901657659165475125640609137082277710144685001480204777495806244293684205807180392164287141699041774349955358229355608193178545030664108425823230788580210869391301552828384064760941768668248015412233749705825446884352048987395616986428270339427263114959127145690368229459401512378046169123214598891298483928001301013595230220510310796803233060261789703640999834422188497379128835443893448595222306008475168117958760849000394339345796997723823400691223561901306494034391480380346500696389365401108697826128881457713658504649844501203035940898652495500325895917308303660888557981232194835399302693397269482575429129752277013521829501705417403021317678823599307579613015320555665338755218111192556201367675310502748821639602116313020982368211253274973843660721237264181189381428198689593578185483935797889100782077628403898679281435883386844842508860404360117903675903462205427403880540279141142180714287761608125000949689552578158362588219046268436734089023692756051521000966990411818884898007802856450554685130532130836706250938708871046184557423937072557273492661444540916692920803299275771619201542242263983504186407781653125933668490128540229058304383633714678922717091100588645081309947031772562236802998258431115993837897421102902447589083877251059895790198576578722539701783918196229847033571319141948530126798678634793688334781017450658179419393775467263880389042089210308791692392451966047965278018398755291141353167095065772181934919773819895263877939394028802558834409383777871717785933107032658839480851516186995118473332891117695171118719952016711752158844079574900814007629451235747446105981325844733304174290470025814213777469237857296236802460140448850750105965633461064323316015214497270390017846964375284733898328452301302560632586238869528488630228460830153482056448368797646045700100124844568558533544815126290292214217983804781722107278348930819436372821085510587165902547854762166875074864275074107897082559214617114669295925572758917600796898729622205029700942276324068180388639863155638368799386111333995117574551372574554701052507987194987010777519098782716215538871540129868463132615878140111268313831625161559343228726099903985766146573666647211915178455894822759042995039262186569813259418994952896846827392020131237208976347065586859420185577066216486276222938055337829151072782978376536833294347053240054500984203586394428305295725990374782057078071905490408259716884511259404188686311900243117005553511852345872098522361421655598152562424568566129685021644792774436687370047495383569248374120361497127436133878139198721998269980396582000066461630714628995982079639657908515829939182585277051290682608624156391105168020460125831383336504711617637681969434503538903596339511881918552364960065217029554872163615144879462435031358916588433950268717205748820336433224537272250790596161829013094615265485956863091365981972552098252902497172506770956963121083484111450677450936831078285639013995784298520247130361941909656914192895524228419719568945938697601433742921673036300377744075285197032981967838400430828764017896093322402850916365292046590749043797920582537684838931867969295800789736665251835841027159555495799370632090468493592778113578808588348271923829062138717602262125276126023251195437944036834239262620090692324269378580390527821142396320783962376086379883553514237783202176110917102028994281050379348038501460337124297187938912173517253809307557261784702901800506282198527299726440541712301537423518546302402832070588868936313507399989035523624592082265983043719771355407995405781314472296950512003400996746328901352192029535281197842867705447320703440897490453352990408564827522424034770462052890349725094278306247465747091839561920290498550654087002911345526014769669680547457724186788044669648366678082633764627363189384788583024611546851233865816585271227089095398283265387539996435956998756257215982152384334443511655525419713710865448460533204935423469558644223484887700130860193975564669187534668233426419385688213687911967854193018577531718686414085961365032941364519660515371596712799971304283255707363570494085735773349376753535005543852109993891262173325880752064634437111817231854634774276701635118102237970366434813161843929694560391917913086674171291104583924505002063753833157249343712360622458979442943805945064640708664647323004054252179446169251023243379792269043062054927590421385251733339896693266618233838154635502169852800389519053591971818921918667421135332978483726145840395177412455182361345627802781064850715959310004238864948584654574836416796648709324032823154891026861824386143791002857534666903178809719997743411808267148217666964903651362102766111349105097641344313773874215443769972438935590110950460319610266241321948861741780488672307612896362301981016045678389291727117720330206328647587408473165305160919698839226338326357321839214742454007562609049686557717097078907669922239396508361669952054834489377352775494468417637524364038018754745235729122714094493317149130292377213402589948376913897516232359604120065455798880682420380206137765856074408512570956302546501950509030487056030959345672267962890228606125586217842755456515566250260604527275970111011704975179177601677002550160273846190371226808454806963581193098722359756720895786658167833879524697130161414435975513696565331997956926558194539905359932463783313797290272147740289538510473264101915048357211607539016396905537707243195746133285798001495515692306973696144760488991378305715719567700106185755576532939073269344750954618331544027782525590513716278528553271065376612176103864044343801568314032723769135122447002396385398264349140880015427462797263838180564135406794410110863200161185089951409819487465668031512902718350493719321771817269558373202621133801439703049406519518397211105938390682359921523452914618451403959011605926498440782065438599184677496648774583795611213613544451965918933108622548229724032513400068733191400592778901911695288981872239562346538344406592292812388725523307065960441930943586697759479391736277776759258539085717396195197164090648442620270637542835949250369908481154747306676977130297104938342869228056137185402523545873952077723055599738459807914975762966766019822828212110950700266018849317783847461721924707372972574873070066528985126961596183388660007055723290763932099255663154625315423927770139493023234796555608472303125484816460943814572640685881109079177072045039542483846344767345808715194037172621276285684791511648477667270390922053601762281093405466147489093146519930184175928625055434601034417842515568284659805186535400590863630028134987365717683885509911124588455016230612796342131213276503975144185528919391685250781284424141728934747273777824243538008787215925509706169828654112545269563249291898192086703277552680229738938835614855960139364412451033968139491248111393283014862768893338463212309638266895146536448508682441960902623034831359969146268807001846745334646190754193812515328472086894713152639402863108301260640399213135199971721379929575690318236548338261682542547073717429010348858452458254911831500047479099318355412610350286893918609242079275183940949408072023286782136612605701407940272900913396170415677996758360750539236248963315031757812558497977916819621613825010335775271005331636827519804255634742006088524722834685007234241460276502085190745586814341900292321184784186252212919906774159351291601308315373145866042984556266098067807110950056564434500654039599004435340515340513606452109899626503430728458631119532274341114496518923467475005995649827065531792752927105360955002609897905236009441897785031971882248114985124471370630258575518035050523128295209243084927597145379380164479029073955928547411004126489446041925332656223718280006507121298080962772670026853479486269477234435446927648539354402758057809009895356846527664398856097121094752253503744287151385662373486912478807939394812996220248135387221640302341700364559577766988109310419775030679733637836815049800558511147420139891878852281690809838526251113898157399887319129300194086633921222949736844822803070831171107961598074535300514211470449622879319222966407240061419379843468276998081847366524110318331677889926979440731358371269566658903349191932109912505115708145241197714078678915705872621913814306480363975773781807243183780724131803931849462212636864292580294414110744649367858164977087000477643220865295645858361610507192492601785663055005324247861866395588791919229328504050154326878258434438414668371811440488590966081696359859177277954779557986935149152437048777339901785943381117653685366067257949511281437923469391461979894369417739920629864867714397945169386553761723787357492664303635810215650909967758201501346864942856838944901633602547449604001202730402383254631400939095486995243012030473905638662816301769951660965817990566633198319274057280698666179695078820156098195641894484365692816875016522887010624091547306959533493265898385917696200361550123882995387315475977654822161394598568928460225761379061887081930862098182546183249611152199605420375246971838744745705443190204507117796913534841591879451744937029421746101917866533227766368803994911268327574591376054053936206517175868430912495863354771745400765924792912419454028282110259876412823695159810309019395919300461652704952545523410412730170550462573806969242329075323055905162114111500749835678588270387713124876918605450099403203064231634153365112235161027440737475489884472798772010526388793259593500322932060020082140528686408478209324724065978614070269986080924773163052213216892174182057866920665365606509286933852737720170691371975503191939415409696381530327718953799098440075975413549437638001837168995845998663579170217821460738747859198299553754603958627405586395194415542193185677846340385533207565361599245885031556463342168218970164604289352067684345030100255602585222980010785014827509078459696857512339383175862647706050999424731534250339825492098161433360957126553999187676983546084683438969580094416372139924915899429380530236041631061733401846098742646395697855503808390648050233054748545196760235736546608393409751874901585771207398824012781267127066262019533002307833978155267449614485191707409589932919078352054878677830421838166822741053586162486408586522096877581147983444976637388809559086461438555374676432456005367269926707663706680840290984815595232511219808931071365325995029985930708736203627875159939593186781050129878566272857351709110197243069605545302662572421424225076392107248985217218213405554157941376193710590125422565349144541047423253696229752661691471486105764886142181974217653196707120757960213895978638470486241165922141009538983422689085329439852983010384286621954428817447299020593800580395587672074729623888875934897664614920393284459593056675160906722040428018102310275903487864768800566294706277568141127809983915380519850508522966853366991394550659217130073424814320317455554793320915078915170341764154597206027920371410943307424779228138891917698913193557257472107631183655228787426026815643337235005480524686949882385375231244251016759505942365392020977497088282502071548022661685685982811855796612449970948000593590008846453943917726538969756222188609048452863999925238370221149868283153040392840531219162296870699208174030138905978213368810675000617210155837479126326470020423620681959044033892414005418642689186911255858587659002084383917710967114137480534860205969420396293415829298316022734319373831873148730795088510410993024229411964885288218590044971639214748686758875256689569520778887649377946003758708020546327564500559979217552441993026272281059970360778534082966067813915656498496769985956004137990781259512100742168628338976089003456558531587495283436250436007399172502801760899997360894165138224700984195692956629578879204156135195808009716762247475784150807780299938293497647729241992039483729923472755719647731297444496071779705358434833399806400641322919941601104255460741764623106119955293110885603203756786365654263949892222870790367448069568369107829402541163818054192641335538760536367078227262170303439053574611092383514382627742859218960484548617873430182955789847079190055064572588455679354393645109150527297171126979462713607651303565578806033159219988025656193025517117115087825025304455257502023038839935421111720547493099919717024379029694890248482498004300390419823746968897132649692417307955758196867695964541536478157237714514620009550433592135962034296762947675762712444057326629179007309287563468156888488523941366990379292615144660893829912326464929575191442653031444670999999555376576268351160997570973127782689942061455278452932215778388447083614840130823845761053203499204387649737034528337965111773302253114861238886346577240197552870927514811277897556185129812971300813276082255130860789256624280466723619261091101820002456029820683193762399992675279998640100299478546642067566121935038348731534549374754852560452176221153625808566358502142053517421316055504283555682639822316929920686894356572382028964942201137134893272108511722141515364604576284647958148320546131274265202971531033760291692295958038724226779189025158529030096948740676655894497920750879857891569485355101550736012943700406544449443122458932678798589468137451905878422103149271960764789039482903177270225039750049374399690888782845735505432908493670855131723937156910366481945456862704153952106274964030322851136723753177798016858906537406742007289147170830807705365568889535190511864782152892172211020483957949452910905223980642388171814705759793715806009170411220671265833759950433055725321493506577880034361715973987497487608787370586103823433329333252996207723466847140113139335109819871529798466018727248016486611912600918863483732308032727424524521899995935447055524999179507568980844345740315322906563171148661661291881095351232265284163953029766503549495116888492608027346401843129411459511241300815873307606488434972243086480007957419062175258645570690455941497293748779846200371773618185647350941749851602398090148249033023260701970034758417404878956441679395703176419957084011848352275916844164905411481292088051016540572248980473396468848739671891422548397742274813426876131305167918448279853116614940218223059390236909934539360510587833622677054915733276544130995592927272384590235937125093934364347715935390395337953446009707343291464116173352180576662676017800809056082749113910410760616200247791043990272032529305971825709652361689118991925409334122938520297576519203679811547480092215432084677259132311135298362270150868627727934787738962588435338889039171372461229515081483574845502594193563803843757419672180658346691283523665836420919033733056876164159173249806194501494182056766259297575198968530546796652817462456366562392134013862295729931847499060325357920610271737427144244711156318452192149399113023599878209942702645980859178987065671323072330211643189282519518238766498166575594183504060351244968366409166406158250830565107818470918698835879983478365420754541666315810795428540798074232778597563914866142174588570025557567767522853205728621325867745855811419712223892398332960631472294593358406882556684591703811715135596304649012852915665115873280783754183804363860671742879791868532237740623228417375522128537571910206944725725371814932823452797772262146681016735783878614228257138564967966883267900970466744417520859564494713887963164532457701710718572904689806294760263256893094685822617466786688930922849411565543272341016057430345769907926176701342487276953669435866903380137435781951325617773543386855598607979390338289678731754136006861420158062609149027501900418737838567736539108676546827510184306319552013296503302643178442635787693024224208019428074873739379725576769092122134592940392088043931396858076406276768432502988777287293293174076550275073022147442855790754964433335403651027374638667730052634865188529152778904381188269735096757465716532766802443524209928635512421312084246082526946860967166498768532313033768601879150243638903937901071421828809124911047999810127257624556306783395880392782505016478873850829650990370325457245915234236637470343419520434497247314734410371811736771747487073130552394211569601240680495508027821737716716248333771220154433268881486088614772537213802925634892582094204912869507141097524312502564006513451209023931981285495539433122478704508057464470632453019815259082453928196921061055056466379020186828018448078297940034840158999468836606998040267167269188342145735914381553530887248315688876309208018953689992919382144242083517666458353125637060329791516734938148550857492757510550721682354931748896919466161117471170433682807152867647979890111574849495713599236973011437696736217097112806347220857844174191125742761878138887819888772864166632781738683581615500245907123594585990986399567963920318751657309662778907204648034748568474025549095078201848432858166625343124054762275117833219860896466216003449890075709018693030085764853557024610693496333314328481708640274310436909266379719549470604194057714901293172328762285740391289337207331526944219367543471533162758064423550511166926453395992003800173535211327477160623635583039292727619828520211847370516104786945301456377450962637916430211451269120128410556724165377781793402229747873795929649860843747706819767771045947951303063380116436074663038204028209126649478218666881202528011796441833188781351616583239916288633571548245192065134816643717572339976789424094398061761621819143085897342704663837403926161181995230114697151756860641966815647939098160352717786225848026110665601380331369095290749105267990959332610955271313678936943924337897330518071825528729402309902439586758189346167483977623309207211653531924201729960802217744449990482850427600120473985539688385461719859204725243452954160412712484303602288260487789035786918903452809136665111691806532968040933141056966531082209389931868374784897231182412317328752592219853680381924330074577305931754735687527483268027589097923115615156416910843120412244120262585208639597246541568103112815437940140787490862309943804673823902530901406757573261402412403465997984862533057465102406934792973048521472727416828839228345166523688656565639254451985424851766871924873587223421813609974345595060725217084268900313823873878045568877203811025758171907616875879683607002884726519669263451763179784174310053922031293389846850531855470481409991482551712862421647896729507329096072200319219452953342644148141055093460570676016711275754327900297147944798083863963902580573327372321108437275160762194416982828900636105502233722353583463483082347364124024890163807436985752063098751306344539899995353970003321641585791935775564607943213917089410886365192401791837001885551992195664679704190456998919554566285916284238255160640783391777367336918897354803325008379285911762546854753133977513560785091703500137111988549800649297007609591124833598494502222232686048923329126137550096007171747003321632203161417196456593496908485932216252880604421593859478957176867935932315635858030155380699979098925828427048994699603302994989426564679743492470651664474165210226183720480911002580415597774128388965088722569186503923142218849341276473524965804194358176205809653677182465450014769468800614836679248214610133645393334321521401146636610762633126596518090566816294813408326945759703412513683938543765423437933925923425426491336371100883751202697923529009480880586199490881362940082099540338478409513818537739463286271186712476536009113925993310104166717743752292909149778078886660163586578684139729081689450234242547179794451272569553309028291889817535327033650607756809571507380209281372491093982979024017418022192242207287007673690421022100711028325440863234413473822001397792856568348587279672702589049006162226144267665790304037059480715683583520437498501873796470539204736111023071841413673192190058604771055377583930134838999788433138030782962628803931883247245866750466911282219445881552412283553537254435752039102288813066977131780910213249204702557326540597436437921046735918524118159133038843977516173279892286196456371811196955661545487615053681659677663992041534964812253259154023574204512088308121105763479158182562767690822110555503936303442963796239446785689569629042271306901500785130233155953244856044590338695647852122718596089972544699146410899076806608798297813689101364152654245828490256090128158817237478514739600934545629806471646407109412927285268353756306537160449999782041011357612514009791064319116965466585567577436941653720698168610071332492758910302954931209454075839365584226276182275555766571777196250499454390981184850123012348414158535542843290184971288623100771173596407649381709813291308705942286503741033107492375385018320159782451588787902828598279763038722135811294478063446158580096879493952931667057652651089007082313005265233408103107662312420439582292318028984106224458127654317058158885926274860623249324030331273553011111422914939822541003581283666592510272986216672427153870355226009666220017014239780791327438067740639057023063381618798312596914995473721948501854987623571111287975161306045670324730906361642598448518854603771617983727104762283734998189881308361535046478101938236757728755284829724937895326546603367150755635444990872723796170527307711183362260711072477927139011131059800861116707560500177278202723612758454354784151688035140549116552083096866448726148113215138591530736089391981127832090506472723132068485120876161681908056487557891992327462125555424568344195589078687616820145306611894983865469127365095689798489636034321770860114982822084965310941739321893696238592385351686348883732514787928772719136508264729061888770118442517298680204614880128698977632306757627216343180320388859532593567571645939650513898915860114740569439433327321031638613402671177543388094713457034495159624029508714332990023996364240204936622598107874972695186603570094414316205410894795323437249108117603078941084289010473369095764404043057763430041088914273051312038893429112487574282800230629445067735612218815304722606634687526282912291837242506981782079668317442987310618853548868560609709210749615725331017402040192047953569213709499395671973628356936208381536650822231929433447503460265953799062633981092554699209712627076498634819608247566481986850359847762036217969951271729649805613105414240702500234449390561849987362425631759100684408172268856607810859981514371912215357612638748085080358058736362242084978985755423683608400190168563714420262638547891871576710937015284289290308090527579402944342088222877442554175766806828461177539631959276065070488372899031310234760444300159020913110908538040667154964905087853703010522505283444060974968122593977549478293306237627442179463435715493112697652311597057240542171672108686673407287183982562441973426819351456178127281256385488048898052746104403889668497455923027331260952235105977194606059226364151302053334443902373070892273342907801329073109216311955680772304516514200525211450096462327389339352124488005038223910533764614264655003420221697519964066362133982454239205562013889212748128285868816504329385456741413968161665541653834170255170470773294462269213984710518818914163420490863407595290141811317013696725008057710155312952063628650676257211484794211026887209167338082732596519877779107505876941349304580453098466708015404838273128510071208973525889066309363171558023517392600033064340244723744374713190661291343384411993984148450172624791703120718937999088912939587889041854698149544400714362237557652870076315691189489893492890255227778180243249139991866350239854061811870273907440799236098069463683073603867257379874874478628644120523406181350785000807307456628252692954789534348841502987089505464196525202945983154659602369002361664247062231820401547702770035778560620049392705741829550194013187228608891909605433629261930875605328226537162406238426295295689333884276605438422316601337661789264113586766556582143270269020815258363732986236339012192272424376019176348558906513189227557316913653595003522042691817184985197684552527519366166017340407560218154328914403608416396139337785188420013933028357473278927423586118061695517747755489802354921548521525338211401818555854944967165702368141812987127791342964946156923801493773307335777150078254083008577666999720695263987799451844086195562944023837270724797652757925476926515377844955750533171607256682968573592359807761440547207167173775849383147359232928373095978230183995560786597806651297696949093076325983793348800996856864565720214325254744977239352782649237458471373253239690852770997923854421919592319927011118471590125801657736953192917798842119614664230225922420839232016533393756012910634773544621482465704214142543311576091133897617190683743145466348969087122635303299659502944852099051422556143134763174090403720919867763611513923919428758476113076896976872297439959009583022288178697599493915861993424043070589585258722783552047599016000848107171487693759697747535106537836719727909750921847505889515962825293437884548097160232565505452231111485632395669484867242069549586165980549119015643767446419529041885453587413929200756800498336246867021789699415940607964757969797845499934229658676482640528121899710972779925651791549691906112678068469902514708471793840459204922114271210634067598176556519962500444309211322689589005833090132721914369075186246429523648552342477588117388021592281131684460323809242755087442990378248400408050955663125252548925533418463611199348837470361615685840223201013905923532860059317222863839393819601260752720032663485742206716858604079427706961316470278550917709190661113808818349008214978259170054750105168954632061930713653811900161880224945580331286825262322346037525436061187706340961884207813348875022593841285259348284493525838232499353026667475130573369438214218488355491592553160966169095447597933707363841677448967390132477830278964928447572201892301711143503078217673523167615693608490938915445202165169899326150670930226105723127040874042515464400610206804592578064880957395908242301678490581163462536922250291697498690406883260620861264547921145994079148514746815367890970283583166796642090758412230252959307995851489227431909814137663097608551133896935488255162586393034845851442364601005600537824746275428535725374182372745201420986979373408640530561931758318584318412725970707640724340696604752706215401262583888083323779445431366455547203121938868297673854710400422166996326986342736050000356382620114492618367096400355668158841455268163117185762503002458848371687382092121166863444724888830417873694954384939292060553248109385920084558712512730813504565975237545854554790049675512792102954717787200991607004760722439614082873578241047804330651005873554029062635282205222527882453135087068976699010658230080287243344245289491167110145819941577192581964567661115063883180904323427799477694099844557976134031741525052667696571923642012270685137693866684393092322123541861145371980679983410985896768356377498749885091308492749604302918089436882208529931272604836835242232647709438823211900109112699558935443838626749088253748545647368128841990957211787122949939884653453019425836770367377004017663973976982335953170021226208195204089585557806333318744204085929538082297280775312228267542170722896667996155458567198137196922996364569969478211206126427101769625923500610600767420474045820359279143302681993290606106039394500898236824309769533014792897968719420211311396762533479308068201195339531163917855658542927621751980038598145166839266730790308593952778309017062658327906965754271791905541041820015230511547810751767202814575470497912802523848719352950624662162373938441900545677649284828757259270252763435783511161890873954372787515290724401230212870511666742280629933832436401691782760955078308600497503319378454452690230794044981293523911624758218825036642536505242463739055675226384904474438421361332681616875969600507138004184360814600851866855130695339076369041413647791267675740020038295297690944372183784209515045578374511392936459597843716176435991012040833966702079797159515004547554750779161814776620212584700210046393856436912043418608560941132462166066872909812615358574994780404502680968302610765351583855336318156099398093231764731119212877337588416970842123299700409453338299331241998433181322872383356964855743076062743601832121830998410719272033693024560594396889581969677324769668101703349307748396397747741167818069946142406779651039089508475967441832940215430814623371635603421190909237145921251418807934543531308582660222437014610990068007062340826937915740356364945730650709526523622719279207690386478882810196296581136852160678327559539464704306911727106830524972754961531252866705222631210282613819458858630669709485051606676718027122489768058266695139314221347705977242635866218434053049055476116839612896879542248787354613061479246058619943433553654170398354095474028087190156738526700026108515018897565925313328362540049958599334236214694079343394493549338467634825102037082968977916497024962389455232524399840752724102234629719540920651946690976132906977283089552164315671626056600593672380816499471494103498216620963467578327704364252426139382424741608161330536381016833269027853397134117612162416852787629215603191622574434738702661333014238787407755773219374080588699891573318171721307521948695557270746147539736712332198583950680159537829842519706181142440679811133325729185445367391433840469780150103480549630390076973022626509049709774541003919368911785495577196391754138511872562804556681682175666668957795491912711433640454267097732632189591057216297099445939882437994710459610586302156239883688051151950378535141910871806483708024081931634940062101532705650220784708200119827745131445221260115374138096943935029811015506936264056111136524846352737300201042920378497743047398447771835899086673833285283648279379727200930263907782730321520645593279203436114151935922068848979326755627315101453540648277471853131960251588186182940580471312473591300221094264737384546736943748879352252326404515676545284662605194619136502428320428408368890076342714535945753372514688736866485918356743772166932842392554275324492990989825825551408369758756883520407944029674708741652164684338942755597247698398299801906065828211300777712546110370553767167426816473557187035988868774567160900441512770390507661339351584819594304100076281719880653310672030291556158966918542703489247968191142165172122658987199652863840779281400524721975932129116510246637696400479282110991385929278080237425423375959509715699037806784513865413837570865720843063646924914426764081174805764377868387658245168813904382641613164561302763263310195573893663300365250334828516914279956773632071786504022121135870159002002827518594745960135788857823479458982634236534657488030781207946841422246717907399815747503136898314278791156712557960253150495596269907027176750055242063628454053889418986845160687752882150947725567646703915268086683721341248034493030691951373768133794436452974246563839032631729850514682807807958197157997986026747468257781337288414408813769015534917518660208470629427076538123287082360743337590946416868192066109674649129436079252741039568146673451105092869546047128185384699680228733633374227902934804549322189707371602283708996600444783052389608319680507894045798859613040568543570052920665645202407312340131456655992723844964292705373771998188766279826632925778784458134161494541995076159045607553497477532475390417471810232253388509214285350503650688452277422642000628612255444723737797333226459790982656854548326193925390692060750601460643208622286421722565705274450227535486731103307442709603826336183440416455013701868477364613362180159959830712274909728837079348969327358509213434958302255395645678940351224346426678009860098941350674123644660746130146994575396237866481404549190812803002876009727499691968078377548135256506473776023849767049273758987121938292019443806220413008502007048732059964208676770147334545206788102659583704969156646195270371243230274525886185949671247385106969394708896480567043493950121651482479734618133584525535635700572077469217470737386382044753822787309350959171705462369443925722113584901771428562656883245990028456225921486406667269245925007708055144202574750567857119902219803492984597740583339526568869299841574361855805656696404275893521757360183025128837679350102217955459282695076791536870734742785161665462144092854029287286434910889024775085195728324199970569897573290933496921481825984380625878865263146133018262983618944970392821609668575051550147092993099142214135368369897409037298577483045118115400672572072673633476471658209812991720512439036295612320862879042733779553626749674372805772982535799437765758764447336568696162209214196610687053973745297023383541025384633581820624681695858506712235939501580116137492297136681993247125776757832000783440768484422463046689981767468714322394105267032772763953198443851644439969402357412085878432858590367453047877664297104945008374253411049750338480380552126935568142143664139420565625634055959927346506762138676192766713977268227690906513311906878071853801477086343035507318943147922896787893780046029791736706604286649680003546428075580391340671916547884439616538808766199735203654643257703029108514699099499326676097204291030598040404075580583579951112580120573339958546487724244630072486313620282924659200852578717871833220683294393853680076689941002387028002660838054976662046840313028464525279742203569270975672316330451387562082001991705925577062679419758007266559901936096816870894782376020087502431646963245444733591625935903778351196257328368376507164844653735741819338492500468419977935607480316771984770962853267327692572229565525695467824672309663859578503979733109404586216164749116514555486993614535800676051466828935280440223504637656527531969845342174344855376007384465617156358019695775969794636855937492396272356616020351629829819979640745484251036705831758540045341846869766794598723866697496892965038664707783971349307187405309524036928561424904749414742009717451952718044379394030204164761229623717850807003258503288888249588623398754314959213840863139209168610470686952476099976913965803753608647069046108336483412308828452446810839491898916800060031067166185826130041912479713525499269483045265050665601673333249719082385592122175853636636669692347299922868301392500008861270075084324265781444004319522010002384653809461556935826926574813912654541218431269341970029975290513771393548620461485353482419845742547072321531345671950564705569811107839087600532469613142936611487551061296117103788271863585366104876374704833876455881810576602351262246380473164149186679123281371033302415195248168719650915524499663016216471505329627557518446334413417324856425801363194100323233084599159557962146645352122628857826127563937230657615812465451879904100390332413051909503065981705145862570567029227740686276239475023417955360262062593208772473475876509149092543860534819478904449163946251882534853789403676496842116739367765960910428504172400873631889823114066783664974795125945490612951549557591219095654954847996518614840552285539458203489944978776545648797294889506125737708873322161643231016930812691483544400744719724626448459468480590615598005610790695260979647164561922782364736432019828016763899920083671074354770468725830870641030407765222393230746041046370556058329372338066654884320186826486047783890624408110329504173604552500646446875570901182003104195709973256961159933817194260555218276575962017897976695679889833884555726924439130400873719496054344878567569157961935635196308511365353946195375721656446652838420252044071741703987901113655677305720099711250274335165523996371345348804803564447452801211624157740509963930079224978349507354441343561861514810788701105801808904591115877182186859102433257282265486065970228638084801244922777938588585770264834351311418753056567635695119096227142956971229069348578255689886999894541460082750836174408460795618486376234113070608818307396183928706418212659286201015727015547489481002108528955299348819708672792089105039042976909869279975251880323017107694055517186571507979380173907323306416371440210111285548819002380094386363634457407934541615553169892522341272103517698328801745048436608664329005072120998346227033683141115904371270038889177378219420540831773308124194567071366527677779957851695797580256406228699241367940238827411052652016213724162568876535123001719534609308678512756879634498774096324230990206205700610368003182368349608131687245053647248174806147102165386671630680463565305419145028793198197917739142374956521643237040793763171190155354939564338921651041688255052233886512897059512030792582053737754382733124683462127361649953203371190815407485023010036782788980819818873622621008854292728896824382345507832864324894644413215334573031756105608041187752727001549699045712235866093634282089190110362735369352637774516577770835172513613006361371718072219770200420337042907355717985451539703085813253472395404295071125859531742285318117775645311004598408937984338808233055385810827769858604134060934597194724604673497722791698070313799037708312939437384801038757659132150936484587707532381661763777029196497573957394416987587484402339976492285143639192216840159470687934457356383012752214157738804432179487522297819281430201073623838451389620842660224263010911888444160613487579168558691109483481845052836024928210318470052699146814661335428353335420266819181382736242059244200173794350270182397941563485179119903143281051673162249932909617308476780122835937826516115241662015062314526805195696223768670940877735477668183225497954835622910158709758806557423699931695604930520801140276339364128543494085702313965952865939069961139482896466359322666343399937632377367754537546508085819832292134673224196427808696596018254835322013164556965790541959544846423646279087309212578279354895552100748588978982526289427502543511575261447776511484999363011823968064872003552539634486967224875445481225195614382905981243500211663153196854869853312851040168927575842813679410597002369565568152925537857611925276225522002944627350882331621010025707043766146528346822759221897786096228075145385170568619409763177677257881508056356822129355534544087054302061352266705378603909246813057518944728771019837175459488067303540222874085471429846873814540664793603171630919610878724371796811281457471375569208345911285823254515051479436936268188875535594609981639296706515046952041082191343014624583472740913104975269379632737607941035065207212911198832267502478694693062396149334513703661529898239081047544993282286366554438352240676700863635878327106247398539461183914578377322045475544798847437033337141838539171302287360475114208839044055740329693564425393673341306571523485280711796649973160871370197188542462803605873721905566294461511452496399658827527927527650225740020022269528894962791893146963505973939107338480974456324859824526951110216121122638490658526332371987441624934490570553698499234318667642204019187203581346182066623846112060983518948464261329489174550560144684129303806302163816711448062286753471755255520080623344363221553842300971685243220808002486131358632832022770586771416572341095124812545033188723488829835733501697060792643304357657836551652287506994777079734467122707120461792792314636441300188861634728891021303694570153993848793799439097102788839743754090651860653230266972780523974775605047737094257809823812809385221486683557458879921603139873151382645292483707625616103008829122569619881903542009704897682019184400368253518089667674736124791249935956972880995589805157670870898500800648839894043014210558788349866658664393290449502455435584989381532310489477024377078111750165356144557707340596512937529029657202864413114334331704918620004173046906719809742236351838838530395543221352988537391714765083658992643515292913479760116511774389886124306964432591277716289419692872211057194910875407183820260938232358415329648638202599892934408525074041385815275127438145932420224793342912058655632245921259807975535151056069690468944538388820475269151517143633045991377852591636254511904151725818075322299382972233638030853447853603490186669864176844118691406638672583387318990011451393186046204895938238802897152647539330184234144204860093971728503082154620673450237271666038463877378061599563684852994579279980462561994164687054827525789588901997540813228454611226117611213704439701457849275525164080144060302888030813632661574539797820745601089525310258578279644611832476590078477009009234733013922641855830761602244446124861900519522110109260427219099969285812775392098105957995733869087566846153318303437205668418527519087148407594382422191546442885013287223023039334709620820933071038084505083908249335940120160497995409804180188658726413371820800390391946691219760009296846319792459980830040086926486942837615544985044106885836312408932412672157776267423861219354559023339077731767907092015280072453449954378721435749117313753948697922660352067673591381245781159327511326107965917912233522537608633503063589819037421060084391956983721679479161960578479534275385861480616212640257210575229054787130609726632476289853145229838987457397343321790530021490174481646680831185769425121022653974079249661526257880681298234317396754027296502298125337089065396289328598367548108491833702314672807914038734867624695032695957463803296043588261058306327304577009689911434243607366130725880737232093625758353197022645988081383756566885921002677826603512456010432969360313037965363735670437795446975849746174805080212244830559614661624457967954023985810682577911494809531829889152952310925214869929682883999604366542564945207986621512380841412451788786097560453405056163902630486223204403876370618590271338770087505641980223637799904825506741459804231108152397277201993982380882762873367147479976834730394884430336338297520349075771083823180507854015127764223099582093832231781103921474197722693217077740190077086921724669604075699803897551987299177759066381191297126236207444224774210804824287561909419024905850271918610718980576587500260730922869098756923582346178109749512090894184030038479786112415158973009078692289253373807096837998436183080101712547800888977148543181124404079857167683394277575749520780177892105901322871657229470133084822086760235849045289440994199953313537663941592361299759248911954057389109919078433496587554193178540823587678142156535757938376132659173305193133686266447101852786643529354042848142430628741529178166539430061019199826301754317668584170613073662908842701910746670813713419065599285417935997244363188793215900644773848149204686449958394599249801799927307000905403540312762075624656904909926300653922056223557201574314657555369171204255358507091968012262992615884521841726194771457525278820070772752676128523503660510102268876954444180477758849763706027269766152920090153671333765733552778119853264057142533374118400378245143835916149929747168687010781328914633010750462666134083666047441167683349937162664750556145943249256187620544911603860841675456831867804908492946862570792606772289991173829523071838003152338475215617584758457166896985095754036579033372909480363952010072399658423378124104047667746886284259468792647416240841555573035078029149321375134108835447407385922852713404833698450804632878119674202289681914133492709272507834488276939573637331192844640469275216210713109035220606930672844140678250127474719802739844774444270241015327429123170562948430147457991048207566847366833281640588268003420900062297138116199745679810064670651717016241941454940227141355253236334010101066991148979757733402005460768126306827373901863089527633982916650661548965237043055270257256100333585362320455881495019729360683413377886068191769363815962338655428002077720674030761975695949513457630463447432512015495114980851043152460519172416823124201221443642735645812028770317242478016015829240477848677108639537729719956753254319112310676585754302607552446511109510956033643252057732801329860178550305384715409810476694511742873974616212672477749902939033285744231711496179390206006963907697986372957515555292353930720570188007844034130624524987101554972629894301745636058124596655500960266535875074451314892924003046959316203126631919684218536473325900051027175953550860938126188414944914110261459644112438250808469006638598061895530848348490320001590208845273057736232167181494944183707361306182539942089604722130848817410366425472875578513371797160011319097828617815032567920267499503820752221529225796665457927213674438329501172397339735860953305824771498940401923650743488683176686366618308475275399970484745349110345812132700327374042579431435800966281055550979577113431957562354256018780298441658704231165383321727504066974939394984934558923141667781744851453489521433117249729996788349301810237389032406156562912062761098480464423855462295116933290516517343025320817279947901829437485539151202096448333148578371906679039062027229953481278753605461958094482738411689087012272535972447627782705639379313546782338300505863696172370223361622777494987792953678851054824355246551829203334043075545761334826758646621369878046293517502887635900826939047829898722273821218087289281820631681413942158104647428053220080849043298229948804529871062360077355638255360699609517688292637306001732516041850915706478599869484779143592663757440044423528023991841400974011279738912375616968400036004500634122003357815323498622046705397611555835761414310028736428206447818532285671316592056484988772972708624141720265368185013739605322849152366611855099580156786927075834647250998074750954977623128309757922966651258088698280436676913306478098760929534432357177036787132221597543744018331755727143925770964593457323468697535336688894741927910960049229344258291165461450570145751037507544896038693328759349079691673066185253472644490617084754838456936986492743106730766038466487861492593381645226934158225973208388747912240711503318050877116055744258295130798152164145808099668815084742553773821436530318480027160807934656499897714345053710346899860914564758752723711697806399535200500602825273984174258509268933379020694817999488102566434782778411406582355677595656347597972951115093172555696437357833902012436760249648867827371225694787211004411097649158997394614156347040969034187587966248788067045651927576258741837569546855829993931838174195978491513241963523470969500371960684468490897437611634888243335790333283620023795568914247276737850285946170391426188901698456641516310054159952684874376541599541991310581746319648022449494281332789309451144700975085154613965955985583470728241643918246955996010160756983504319822747218619103705662874417009608377009827403765849728487635508788899452821637517257259999484912543038415313207514106289713272261330372037917560882658291481143826347019230556227089697977854127260948863101992078036450829631360092017240574559121249088395852552867270958128472818387118184710289271835974762090531751997297252043579136672104914852052780064699276555177976315212322135994451609959487114068969046899020340517191727525673414732656700807694574334036929136736702025748496447646993532502396719800299664368766224244199645743664030561078871307510065496579080732324625250643898718749508835605551644835485087441490705621803908310527829331366934380452251911957962546984699082120513063779389213926425151667746940017059792216843586466213836584999334598610652563005772285642682500420237572312702924216522709355972432183007731721880326273171606913471995736887584753156675094103812619401151446508827219936480710894139725036794216449861245894174284123311970505703734782332514681265874664398703041584745799574544224522455578812422274960243272463238812469193145251317455351594133300943317438615755335397151799158568100934979192621147048633167949841693740276378673678935283355806992192196227146401021496508742172443258120257319886732933861472084611230212724707095408031548912144303180769427222206900729709207557091424432206987371918950328613624909032767806384017170583752552950483733027803254133783353885224209879017566325270630294076175013265501673132209777163409066762604612049827735705645634057038442541194432273204796864738876561788928921711577506880321381519906835081412904292478414520078215609979365420595062186441860463573906666135589054384732459826132930436465918781767788904871903023190893955628179263517089379477347366156029480870032312282385228779800256411629127111271567653669731594658896915418917521656069193713697027909856370642400164086572711706910289950789284909559449855955298958935248925163199843371276814921335166134697641253790074541979279839061647687912950420014073701831254335111564673230750834789156156490494863415149993632196130578321469058266870406822796606719030209710101741196043743806669447474560734047839578079618236482279690473746901706448387770600040604603644636435224749827893799708301078846582737388148991123070386610890303980526036037580483243832688384879510782109504127986029744692438283729131650511957203534849561066764303748648333627191836537825986877139347486832704758411828357963170478981734622235919485016476658209646575604936610093390066503012902583564776451604769624979037221477593218081716978724683171536527117335143681350160224722255389003635467042469093513358844464773161687479724144911571949659330909242171938393245144921625658948959124492521901433391049213320327225323626252641149826782479285901638663113300992517657441362226515423518180796565564923425149841310863655238904487730773610997441855911053255311771050080147411010715995302560522959000303733354319421944160631532890182267942437483804290598483423423862389653274090430116417117674908271449264425504434309899134444841742156415857416094084858650700096767803283385390396133226842594281338790330608792159527597517231176739663290329188383941268138512347063437132661831982097425350936161978513698680133006052580436348294953162124133563153517871251863381155467982515563813651712824166600970178974385237288517570365757200278173382198168588123083502889548525853639875702323363570898700555615456831118448519582085619925529551154223166224173429106365380291453463590818541268069013266896228487574013787015788695316307594028291379582740843116235659908077600941828672053751483241193675730988214860588293839332058780736308074669038235465849044575300859372716239251485762108012752494934390413959369351113622765225947182662168530237636539572488308020305329327903438493910094490905120166749998679864022121270100163588736236721893003472650658491679845014709724761027743595630060690089751712879933923135098640617488257433117184966406481028793715925265545713807908753595727477448497674966421675707556017634987896089650062731272202858780739667233990131418376447651423394661020214366288913789457939653417711777697717112720473542962769004376132819868606212440424757593258315887000589635615940308118181053656418449541484499821595911037115127660531751507975803207573073485674471379278196916953082260876022737487256643316135364874279925503367444391120625210566387790832885985465781364231466628338991897602141840370795393278512880309041172599253143860858866940404813418630284038859064245848044591495356271078196923129122359395451232788742587876519710666469871104450564668202107894279406636200449447340790579061881968190235992144702093716664039942967350242137868822208014918734984887807437781460257389863623412960911478408543288224310296763784293375614956744574445905863222194285928713032493659411926358510921921925480915031068588913232867956868536791504323471920395275752136815573052801813368926263879253203786795096822373957982760055376064708072601369686053904929855479751403633527316284377686004747669571018998291642433519581179492235794639041207135681912612854641110738090575345090693643674813348156720918612010807476745466780883023760057768842867954258247961688210332097403109723834449369311861734371520747041798216155424674648277663571489664464569811428236137025543739409314591829747023773192390331341508704788146836211493608744911456706566378143242708643956717960023079264913793517569770680119905756871878171568608175602589950152651411610627684388671054442894216853971942360445135472474538875620278864729733935682904557385440590399291431401487692827194469025501235495413391944796088697787581904256648885785372847729203285479812979750015500844288600030548290059789143279543736609461058990022831889770259922393444613637262827194167345347478111450139348342509822092916170213588660702413641964319359212105617662772196116953012764211533641554805728068103174363489318075744333009047621293099107285430782276876440705636623648176086399269761571814566276747250464119357931639563860916254219334618250313128468294383080430035669797734026269529851232987441698699331854436883547298748069773603062612378545624119728848951819511381563296732379295234256385543442485428547141133293514209128309267598869772445586980430337741305720977482542934081071213108179827258798267524863643814594298758342774254136610646991613047306950927350887765110730648744828171762466476953946856379398090182408799734154119671576766674795036961860273664943163056669857777522080289370010231686236735031035967422704721650952264765360338912647238381603235500739687684366386051653990404577155643147736791558636345983338490742993886284761254370902285982934002944967218182331198970199219862764029528656207995324930673367577772275526129803335986634096108453524274645887662971694344607851286031066805047052458533757237888459221573118261291737789250845751633081159428826329434230946686968260978829500519226976558957315805981799907687029128266475638926624908152176520290699583223929358111862950487138384287833804874145198849501268444688513566413270051695655493741960907976935555759823641689599938940735882983467895174319528781624107953651089041011128694934757889784829743420295400119715382896916566731370940216662461993155517214345715749263303073326581617410403566891524866169924527523804773501209764411315554611181152732841583666835108642303253104156819028682713751581051294865012854574581473222697099726077404722025427680070762921214906219597913352435929186568331096980846628053995032015870558891935642208129173808271395782346306396608071484637232213150480166623253513857164058313883047752052948847925430679158850116193010345435456958701218588298068594704934741783395116050226131084730846281296367267310036262843875542160944895135367015021663855374888458508981657504683540106444962340989593881915405355242103038654943069854268142560923592323719374362991151394714584313862807217522567740455595405757928129673289547882744997964594384465553810481701623721573852248493127953590077654181313473730908779723955366914321275112793762160828468961894965788642157754034659558625239241289938818846592184948840087740201314769618179784143214858644412463075972884354647883233384276830675180833696419712989576346171684201799099903341161513124909782754456138400840553000053410349545746168088717673467123069125678050600048589335392278990431129029731137738073581156576737454190644139290743804308747588590496800166375945790913850070825969091800008143107973768059956010040233688418493510468426158764368474947549826666759438561886726348374384553292588721337778483117221398783554094111973267528229839436100112510318712006859606266462146619146351255513039315833578193324293420000284579518284895253665539992512217281919343659357663980785674623794961359458657703588580638585181324455037618457548896160151303603038739817904809886402596824031087984568126808571593014742121332080873324325844384259084740174357716923137858275455926576807124362634241295539889209531363562516722108333888408020992071084595796887237223962320096648215464388536158926191113474712841482566590423663662464549672168971651774850506968682118026330832012422892131058266710722106883290611192047930741931836430982466104053609883446142320032230834958519189983217077441085221813445597994293128242594986869092951008396449246364449608213411406476696081124282343954135906943418373574546766778434917005990884339760400133864614749170401693791759636833213286401129968555714682243005640438646703033881593613010045797308144838161449483469348834834182225332855912904180649946970881591784567346923467585938700629679376461968677127533092321979416664286738712654964912355907318756358245291626368622579637086434319804109160644852609265765398405510559785445113678765943636188762721377529047144895175930386059563104693310233406438053211910058564642139356321436578496369179177774456569770077538391932437447163638883694876201931000068879164348313889464783839936169828984380754883557022555523835983472238863408729888671445071517130242781875335691461594293040017454477364396496308502797125825776560012909331958716950788906629862841537543019880465956970606044480999900266185336252878920196197122357254685044152436770861767407321077312004637077638631972882940393344936235804885481923564238017306613025884141384167245225347439431611230673779718235144701631307679672554064953717562298462714912471150925238636397181280178354370120496161280349275414173509635768846986336091413330032127778063407882503687078229236060401287996940366836213984992074443878032771068710609612962271274620005803335791310081449966791303210874776679917582289948632045033585639423821996774067923400157357596830655400349857895118075510033935960986546124740034735324104927277592037628738270025214338325867393459152987090813634993828840889267284366725306209979748642693527041447792614541371071301170332979797046317918948963454586972123225567187071950607430307611589937986691822796207322346323871081851685277913875782853969566714144716798875396589799988556520389066798130457424606804456180769839038427536209772402288002459179754802409269402580308818333072145264102815175412607010756246443877608206385401660604722035699018308887394470567796677854704599579755585613390550136958829126727476210073024062868746612335356460174771093475322945349526009045705346339724902264210965026280444606166705631728681342069980420914922725436995357171148588820139481366627876469059611092004086345336936950782990792133853063264129501013996380207969250914532224732867151706883178647014781952148880110342857052981097589724955319466451644277015102995341790109457919376967622567391398032316501948568058486281667871049152085206911551346460666951702572520863451429297424519517986882592268794820371045622733745165792147538706598706928751127295590272634759414945021985103633974681001367793159591399866147933101304833726906849268762678416186899419557802780357570690035684488326452994360660693682703784152423301026135305704576020867108303887798578245206769446262382899585986536495609066428971375445994149433200816041144282967964332159712018832247376196199702059753818945813905928231793383439561983460945173197262184424046571025735372399322890286355857133704264909870194095313303589361075104550014390768881701061642207272896553027732175685719837502676776596701449772232456978988575350085778176243553976530665749190507110177001643844292302904066934606963411148077900938087251331377478836608597736897244208295544724133979923155690583843770077044918524895365674268115748340049249600765430660222340906768709369189527855497396091611012907388419407677091780438608565254534416452675904374100371015858424719221026864460773603354152170699639534329635813182398224078947436832659330480758519407779742176960496423529480836909961458340249192617753184378033346656491795211126041947471984041572325985579992846264582360538139127611141282183993182614543156512400495344239654926840743742078629018308530192725003946370872905405610816971059580575208108868368766740936058933005440943932052318713195066435922927662980162494073881425816809591131163017918633874936378592934813179374787831619564401140061922470452522134006701191148088666529661761955172696517212696403055968788081932073797042219936159457795246192333553493698871217421117488773736678353747941244109626002882849920669500992777522689532262416254582166895083457519681726204310277519963223031570170867771275656829487255350128998508940905660255781938166089540953496846850865203840295317530102060392038206948603863181394694680061488349939642782951558559308760042164736509342337226539867703676173622116747584649368551270052779042299782152790829479723348179119661419904465093835773040953696770839705726322662694580630452802828359824427565932924895209671113371605175728156688170991773056062132198949345442733525086034381722603672170320091656673982921580268448595196590996600541042058722122109645595526922730624186283744165777238723157768272924748200450409975159930095337812528732446135604133450923147540617904849026142874840492244383700615704853083420453650944870214610181052094007372945175280951824453370724912188970857160907044801414378532464117567278904905884313297383208706560372181752006778820846500505623216363814636513622900994214821999526701059119218735886233240100364076095847449105179606302233680271477479782903812225900875656405189449323918839492340454328785014856923779583061123870794146250794491360289051693314464294120221056295834859740749220831125702856527877844166715147618231274109027263106568763623449411491536913225354558574563749282303229579190215118347098318377192368191933720765965820394168361487440155601855867552691822693248202860277518127192028281297478820994114761618020113826511465687119383411005336637648671907996626548970741571792803103942964223620786379405169317690567339738953053318141346284732650073737737678785664036165429664551432903908796006673366732583921631527194725791445280353533210173667180860297775167329174496090070734302113915332233132158451939146714686708549243782844504358136484093485625331007558644427758906481826498486103797860556484191181913192948723963922625579206703383996673592912477183048231597326953466480323219207399114792295725733617242939012285963496292176382535141460654859867066025353254741649043131689353973705075437959036248319346264626283174251129647170188976286737624355713323583131170769583580717674553708356010029923688712373119532670400427318648033880713725973860412956847417876188949345417947628418599887261710239406607196368227979460178105751608053030763006633668839186824730987882334712907964485022187503606046577886038240491248985013296848671409957969874148673390405468162746226243903262668740946270111419151298625497580380985540728785513544582955995043734335842557363841162702601865841334854293471996982149198208480410491618790271249900206872606170396434534140501572488509436031464452166440883909512165513833334708245373617202005210495928990866266953348361499716256228344151036192079301122145706018965569167679560934730749819301982650097562447540166563989651038614544447863147183081736613622216592424692159221695745250492374264833188989804340213435185899849634947830869710885299796901941935922522493096708065936834530143870217528274720497511008078978662291363728149312070502424339846490622849279326136099730095719887732175326135860948469599117501846063459886476299007809632949914170837205909536298111791660603517155431732740823092757904644345703583870677691244896364363039783294332330193682928715482099817437858658887919354405293140839685560354591866724913412954841615000459933422176566970576453318364906097863878744085100364267263301531557315553293553303064343553031781662117296630101770617242680574382179305779959798990266180559368971853598377303843982315262032161379250715149745310665015489085134112790243347138772208236700766862340687672967327880913089388075433123537208035657699917688618201700318190976393429800283925271537961179645486961052153773508434592806414132976592660144215949834210376956916663095263047468100709018016998658527069591635620575689495343704133062996724956403413416101891415674009667408095493174759371378686606671510844655977679297800080626421223712103316732902969379642019780718044658421140890056380649510661600987458584537389302209029286059462888693220065362683424542530603660411833157341925741577860084436089317945320437037389387781388789263827949323529365980571721529197151966477919291524746599274291783204126005346479261431979728874934390173325572284660252581735107029423971045406586240017408577656032525552009699549675503298527523232597965734966616552242548692545006202962857331972869604256471242326161812906517219524064167704638052706342467473856042379156425544254357531522733753422896394856158118435333852912032081442387378444850245374888683592798175606452099082906565769506541361858546407041640556011079716794417157549805107144982469347263189618823001274981284232837685765934806884466854795757742689782472831166187225107216931641220350217082823202120742517874033046503515722095261342021064037555477799568193032300042016675963154694788261604222250107898544001937390198954663712391473160079830270852362482670450279047026198157155219507214237319458654146837669523289207318546530157731386142511033485297393879386104636742769297797993650896503982138301146762092287209728038159591843241308373218739041134428723337654707665252771707365743843387392605244369955916167321974906516445320648244238324385837036716775564963227896378326672757602897112945086759600027404023925564165906319013577191658315754366097219453515716795153563096844703742036697592809963938335351423865497531311676893828916872580429198064479496520290275639072579658920900747390235884541613930672624931675772088346639924150632591103781395998560900717726253517232520738379457915670418750722126051996024392284694939129048019533770116110257289275908384611841067832388368474985484687121713523763604056851718937684503850992793402992380314050380534774765443568006535303996745043790908402009435695309641761684840247705335125441359877959517212194901576850201796768576322344327906124846769306544937983040003048294214674047812984448108365932658234024181259698910665524199354577188809464584585253780686860339915044033091289480423613850287648080086086226859740927515506553343856337928966316945165548684772990168727719915712019181030209155044065315113026563020445945807097598304525852750817908254950400306312741843684711178252482592606084301724245626490433085672239346230963711335660936623392464281804800801544008304913741061403175119049453530681126560211416920540894344372688543507122435806859459916324518212651523738486852109676911358550981360471888281648314323633768095557193755476457208423426603256756219955802883529396167929834415859103760654187880882899185371300119855383968610199180272046705799374862789745337218103825136141830044916743416422354865374837446041665908943565357678160322204094327144878183676992191743846631660224136389554391548179636170910421894155706564294772983714261088734272185083613268468761595932173794582436273768533007713484593493399190485611308328980238549404311277372800251690918416218477027105167243905705188710822742156034342592235844641338579020802707541445379685264124414106806447332311859384854921134176994133636105225942304771121513247538154113866706213040616795872043258732134977697229711099482474144621686701437128156912147398597868324938618905635028987518744859641411232454260208334235686078593302028316475514852977163188485154794294818605357058291354801613698097286405183409695644095588942411338239674302026515492318553952893863380360056876824431697035983741240305994308833009113124329582934550824316597059345406088272538746048408920919793852917342052271194616821846284434885991793976900074278463242620506274981296271139136294283206161665725356089629872652737883848301592057788128514291857375898359275869654156139652771755020062830210394194851162592151550596127457258765357227533907082024663014355586642448316929509501530294788556061063936868863535072162683833186398834173562796458036824645321012432970486272342105352338169326988143331672733581105287034056872538530124884520705625752028520500745222663764069582086631764503821977984057437845784710757658493545524018648331434076841334711067156633826431638368674012864557049334612741114805187890571559961140150871690789604180509960134557771226563759104657936542037130390433390895263996436433989255892640183166606272977291758841815334753398913797791607067535562977745694327449951318273785081260717996137180407766158370567239918539087184292146611997289876704654549797093725085244805939636813792041590824242933784528766865806644355898357518590853904323781264431495937009552826489102497737352914610511960757925496630206638469096272860491032578143435187025681623979953023682968701624608974213629443713670964350587326466998769176145408898789613735195284268449708229838965154368655999326704903923561447159031253606002187185667667999468760833046319470611194178661463197007379679305771387296444509291563045540396782111689753498216421659844727593703005264767051240240682534219546553240992450757594606291948543016588432020911630183962021857608299300048959605181558374377453531417519217374127671266961836967484665505388334100096313323824874123914212416741060479128884721173056219650016870731953157938600633972040259459249557596813239503920927303555321535560855128524977841864529130411030198820980402769870464218622763757283066014464781520618266936414278235091410450764736360672744913197429033679713751501304817191244870665276213937223106202736823679717729999080297334671587950739015347782456955541273089991262227264904232500220493289815146861821766532308245138019371262023258349454869947641633580860832705860955908057288483751133102604681016003657937082941313177032949408173414581426168475968534553793358742905618691779460035418941988523373416246538265404801315402726756573520672383477169977934795591618581548646795692340568411308874447949296296842325089535924691364262593643260282298944843784138951238790619679412911071847375001323172554168785584057629554270343666267653114393711835840166617256348147471341734334517086951384569498627283021246772482317583774601487353498995297920785134820397947155809376136997726948903348507592527691517789531040790304300072599032129493300332653486039607521644841869218908500196420569635420205822051312458756622005951557492866338926943733516481541299623606391714368242968250575572583861639238751070862016596346532142991096436667901452443978960186996322670662067386010590957402785720460412197774307523061133981877867745131028861653973666969609060185368995443907213633144323959744779079394085451631654233312780582024877797020007624617226696045382768170266710355526985100628292665482203674598727928306515652466946312443842647295844691651580454410540937420032467546725348701807435476395981331628176269831157384664587779804990144162617726078580863997188294588865725203994462957148565767157650690299550798514598050397133709758410272878711058036673038685236671261809911719596170399503432331836323983760254245067130998955075538625552119797677032884297710362000253129886159258809430983171089946111259637632629818899303668690147256615539834186335948944482797964571561324862526069303730697086549144477590114925612316394180868793405435615766045949084931399536591526340643687996617937554251405936797957527769855930956243533075767071944508237284660272159170353707340743371283237610910973471548122074182630502834718214612860557621951791943875008325588685431725561992135262198488176319603510117133649108133515984491688638688872831738397414861365873315036220156034295525301688609221954937077002153909912695332464840742863236969284407136882665052975191120676227084389206402142223323208592231538838500072043158889336966902778999444758471905283084676015598592974711275487486127086807508444714746181803772639306699547072024584250614417505771968774005190453578864520551802405879091760576333214571285465935554985025695431203141866197853707379065617816492068908595173715151339072237251374635144402560602791104199838599384357599249565175566428786621544955864939099349742092579884712311091730756318737884012497764587096123305542195763157326404251534468326156346322749522421114191740981827268048532723618484922847158249344165834246295451246905555027259451566356410626573219112050686090588602594146628589666147962275144096128630171941446517346551717142421716683126732703995408529571000603641847072593609480403301097656219564038618401323677292122761634316441374348200147378081872683912032578279840723168562763373346251746902700006922899690239636392315941822169854672060770190513172520447595428452043444405447162271036658255575621384341968396951706048110845767520914475701229435269894524529945683623145250453945402691626600037848457412159758886871808106117723223598741397031166597031385085786364260530960160649129990175380645552674410086925561082973489594026476668776203787366370806473331360615028898542876397911350118804580758107091909630267448316472888909195352219921948357751394705053558383121179924731185539153350387122645912297072152093036694576559399354374457724320061518212251182589872460446630029528487974628466057481171673402614400201615314336525685612738196096255361387933383666082456814802618608838165297699373003639890416746527183337553046690518333696238602063682219355644485280415410241134194794852168696139284881227675498001012780015352920255023238924676405073528874779410208752174710538491675917204833765159115048788748458110484723171386360829245731540036486155940587980828328300332922776677528437916172111488274396068370516489324599661364968826420274820627993559873266694237580430922435112620847142346139748018882211085669143704627778128535033850126159871448950140567366921464327823314128802273576138825767968277856909727857526965205723659144435404360453367862293747397915231644482795299545619593710271295430624851587485741472798015241328586649391985629269032879149401408895983014266856318475221584600821635820698595777254279974341485948503291289013142392211211027801270402775196005894192498694260894760921272652401996723802205663338183544003352775558938397913191096991901792223200142540754872735444771842865891978228475467284079387301975735699771609747448482395029410967229288260358584190953264273093380958400837628777503349391793584862225636484596128382178947408723140221741034712821338804589326712143663360086944645834355933467471234616182029287910210617625530646214389787142781908194175460131875442301106225776869077656674838556379388226489101929898039707179734880309542371781019326359181755422748790195217971119726451107834492943265093478515197831505052011790988035899853043203727903384491109226204343758750293576477027748011345306769975937259908259846873724317788970001489627757329777885865475963519242918053822306424059565915458728647887712996978296467927483228082683939030164101901870071681580127028491011442948873293990121228789531702933795555420413696648002015355274695598160416812748315021884553463296620421821300254397648967034737390578398222924011235152387911217550257851043254903635264304641178136776853520523300610997509726151087237451380378516252870257981893661212952758892692061737779118258350187105415152893770817934328775233103794465744343905428213403723990697098490466025972703056555867429235666946302587793662569221081336258359378770387449727862657339660148338673293077522185783234993099123280354234131611491331849953674181336123723824999923736802690065613327118195475686727943015617905770048152763215004186389387416682263953399452044708482967760293457227381033137565989898317366703902138764996613883430210213831965825955644940100006768047587833222051094620829124093523874107283112779568037351129802868477388847297381937747789000500031978825006365503538733334243861370794632266048509349608499554503125176968882469528749882479501459328114730479787348409250869473607471376596191005013488325844844881789030880519564828108268091118441762689436591027471190827784455572146684769822552595003804414052869398060193650180591030505959945323137555301041269748529775275974575412304325939738265505752999452914432078300217069679567915397700222799308874112331358795548220618247043762480013302497762061884739311990982920596136269725126416007231959048891815441985099278769894953930167950385000117093700103001054244436607309983871750404758212278901393986373351286974967762730741740774513102053560507766823034268403364259320758029643321422972124695701694776994458508129015469621262057712581200057768501597011989047088298864193915728232926283058963471926769249387360323951923948444090076911111137247704691620962180299674705058046950804976497950173870250744955511261032812047741280500886019036050217363080507289880343259186519459200003165899644563730436158458926978668612425292908873666124896207466663990529365481222559113771859251387054012359184624103945387597430681711176084831554654180577401871631934890238608053981063465507473904099854342888479835179717637365126504732526465405256424125558795775378503740272640895308093875226207364179457952701175211038542336558803324345325826944832752799737438131486463652843803179739418275743797050101063791447945587532703286259824445813761145257648652613176442922545220951517172289827628351949520019777125569054226500470223296794134011139093898280095420611022940672614048287227339062376671579786014806416263897209431822762981098440176484587401225047787768255425725618458471022630838113968551947226404689183296958803725049062184365240676649390838415932659511463785160824404247070382606909089592793637556891174496259085617982761506716378609899599263095104408822982528103715144377443522756941734077592990765853672321042452101812222527754954819326411992733432217791449189598687538168856415654601939665483375269497776774350505161582865739800857796068191294060104772552367970879533265350733384551497220309696111380264700581158501342903328798433966347525590678429628359067074367629572659033510806976998372340095210361761652779294083957722019294169362962794367467294685429031172978173667148886612496101664267935807806218589644677169375136983847150578232527400948418999063299921210431607387646925205712769613646575718670580143485120676748774332984937706805511066250787443842322055014273129505547981266994549068104643081170294154931005597592442169599842970969911719287694239481127726010701603156757680929208064651842839654527799739175427291862192634258735176404217627548958856160571513829377223583219663776426317564272524129688737203363006158435922795743760774214186039873644983579725426710627660183865050535971137918794112421979204879065281449685707196642403643137661264354867895177391106745194991145424825083925061020222207561609981517648782358095524355766181132933457672155116788009171902191885189697834447260621062010140418316068399605895454037408426671872603664446420873232309985248901026871308186685834254661051336648864980258520838449223389123029925559273105644001854907567789935775241912243738989671747670535181196395088444331841467187209948494404674550691660181812584307248228497835484451042066719369184772513710944132873785757871178820592061410350642567369404423239822069915081592628277824462508757892702861028928046956120390935509425314844401361919769716515409761728184312640421143824618653124830438665398861230689533339738894468141886300894976493809589193122765909109730881576072216467491177723576859409920852934243567098705052452331422873089538735257227234389541513528828543634854926226384487678971618752357683923746802933408479336066556452362026468328303861717336607163303895913987002490919967268034706685014008640782766262360034871079412141738929771305573619878109531926529467475097109341949435228597092019927482756111743093196751454272573884192034364267873070301000822682536192009995705546270883268009750607828563273537334947383443449343576920880093977438812240613115031405817829862754090119125301867538508723635126730130366180182629455877054601226762649524663464230854977230274590473278474342900261340202821154755296040432243342221701737946891721847335695765968838885064097092618531169267550520699797170584853330251148875859149614350769038391774219966587331698886775120363255415178276871038264180476086859368432137576640844014753717910450955729487750484352701127071671923033867130451665612646253051057763082673536431028720329062071199891874636120692878805695741359331836430125227909940261058609267266618947918631565623530635044139935443494529554688920015849321262841729677006321002547830415484035881043324702085225373488064210336662593493568149219258944768994862494891852257096034574387817496585809430970655735307483929786169076247517320542095343640062638854035783944481228776601294998033417799380161837262333204053826125541073762440977888006261251140725226066394739097523353664079853300624990344120635147482128696453535293047995015995472692643027963051107983641207528842270421085526598105676297909189964225433186998406115300243472240355927435444545253689512978021870057981767474657984386880014562889551659316670760932301294023490659979131197052473883727456155659036910473616187059643172158961865414595673756708375731701517825692694529624041821889585000807316947791949811651300661922207265213575698229099877260371580055022537422143252720756457193600635963229688747781519731010365333212075217440665643081091837990500115014527011305147972792226178751819014588551742014334130171672648543695035974233793159361325812289818799195444614789036884778620247432716755141717395956802152403725490584607135764011805809742260673780470172953947858187143374991950975340115018485331825303810186240681302981415440198683757500603754775818853505113192171008578530555862027941959490867429517863315032152239307382139159053661524541097459994330060840013204817761793709693516316053053708801230988109802226171849658281840485972120612195638802093208965635255895670860650301342468855654598827252708249895339575154738695155704599620617729987071028445592190064087431692604638083091941453783753684914035847790608663820493051544629396572201650427623322169672122835110393404760602311299503236697105308955699766665132864442666040310371342878438707358876877428393465414611500150120559029609782117265745509714390218014613135405402380427723868719923245579044460622747337540661431664297726836437892778625177634296501892726131859532045825311124576115258891754657881719726206536476928135888302778989149365078986049728550250558916299751442979208932074310041758137214984212161610526628432943006993053802076826904170865221686261035147598922767086315910172020124526666560584418292126999755907948003032150113344670349716733181192080444813857352578793660896548115523301402220576355569868306857895454822728345006359551085727361118333189122055368091678191200359347529594703805701313019204191875294565360720391623452739439968404213944775603839942016243248681673527167343393198751504556825620118945366364555141313428909440535506443937169911249383798245413250166143266998597576918120725529726630192838332634237921036980783948238985969415781892411454772002754354467927967606392887321029575853160983685005956306880630114132480825271393131599584150795198206357872876615139139692140000064250345516586536272080638347783451289668163361412393972869259720469880851997197973269079232568985408083933081588014413749720424173785166929469061503037622262722714467666930168630385519123465209819643542792963626124901035658915847601806026448545092293677749498994711756469746300185220736167499176419730105877631552929208948175808468479524402891397893166887284026056089636000459551536099898537892811143190770410379050586109712933162354728089836137878077652687913420303877733145939150892324752081302494243581466345750735299585131457548206685449275685530442907106940434383482751265187566043980221795737280914165157482817203378386615114312388418817374375634041171624535321794053336749170997312048929115508609778624610709490289125357474932238632159739198008405039145162260984303463601709755660613137623652244259674191751802263149000863739443943091679937099607083160512875743463456805129846694053257118773343344632727706371012369125108884127367022000804657141845602292521767279869168597046058942638826239800785235427771784560624606191302987530887921881603303246773649893678906027687366969509879202078862774953272121300227072080178537805266303749732069586770972904298996339479854810206529529231861949094486858020182939670476393866893646860326778883463655303716666824787219321909763534538487296168761630232333204049503611257139269809700251725711246804445480815208241493624195273863989114256898470878646733883928229416469030884472002875853341940887216232248448611762714063079302646915416373348614697155077485027304754897842940787283538206170970453096342069445022017883811718069080408152192401260873450867946864404841469101572673146294596220138401818669281818792278201456559159333038237481722721675231936789858290977105328285955686303572154678908482912904125706703185430645082640060933965051563095691449911652543162146103030805184676722992608460280204656036734208622446963568343972049363891351559137325458490123550796985463600443517658160803707592899796325367499496594855844029874373839247439326358938957602354849702143210738185362271799197303214482030145969668694816030486088836451206957716554751435114617225681918785814521932517884450645057291545822357545686317861283228021668505913413347243800394636272153405220296670951687806843181230323475833982166643629470210425133998922565883340898868602556965127144627648428226314193663891720992810525683639150071782478957640253354240896500420475869756948036420104653061527378325897889017531341244343018530871983560091977661010136612630542063414993547827710471295762122152093045746109489789603416287649374245050730917582180278385353636159172041434586158525405581332239408315235099406904017758778767572230893869833907005408540497832070639068397614243043165248674271227001080889205390000853085267278081146730906139770902904612622873855361277250939578911862607707160844864108791166267362079129796884308765205349470902355309698824031550425587633542963099957677093286529490596537932104702618134882229538602893157285401665421536227168774154502884064808040229989601314795903974934784067539043485700043191097099027192240011351005443963098001691887432800473532734061491004601708664549394754773561515788697164132867435670399905459039242993468170225969790514775076002571279047319714986747617799357859400985271659776961940460523123362779694925569453296121545028486970431526509810014266037851798670517550003619186864285009425744405823811874846209943008067983308455399282004748077742625113154032222524396338705653901485034328454741154586779577234959709746481857220503910839195655362267098534701587494819522162457371953996333551064675898456778304727569096669811177141703961638040747129544426143200901516592151766999519301316599129316635648002369858851283442871075077042105523767771026616369136997551248987998124294627146893595720491157829447399776806141218759788656069298747697119389932485895057034473749618350501741375468061502713139847957566957821103175479652729490947510669147540017300091955196270979415822047371845450748255024056314012796109067124646621012429029100235346632496840829907131005779773557575498881852410262274741576667806513532361938803519316937782246959875030934283358829267722323309222639010245103638582628579542398974028182015522818862655121044935604501208427621403758209112548765960892748713793377642911596244397195991879421765897388546478182821148152431083393222707688884206846212075908800712676683029853031650036614824749171798916514114713305048881020956163080277291897292845254310904726101811763195510021321505145476494412603083954165633313730477892628621322962239072390136876125201541593329571107294126575146430182874618672138897606442378222537103825039432054524434525581767580147413962473886897144117817090472290824633161093284234564494659629526209342951872824911570796744428688239370177713455992189564854750680071371035060202553033112888838632506513152667642840300874261495181103364241079700312866938018828757408531410792123779543806956381345824886788294443973334887089589821385317891729290711442465190342637973182348317241944743617559132245930944950751969342825332676666173793337345980933574445211168358214274104333350423214719384725060900679077395310635015929900206914763211091012737630776233006937710172725351912548132791161431460869803547461604690641219871309257717770806522570721877316762189213100860685112724369913845252583761784594192949840127741332303342830515775996492447061839504159979151692841391006915140006192801579956872645084895940799559248085883477189699862435250308714589404501019709831872941266684728182338418300002293865974007636614034316831217565403631475945521068524712135963326674853225883158797302576619763249541651951909374875716271691861059092964341685291276379792957307489609476104221775028402109050706636523695351298012434260774126302423948227901597434929163692101104634167006105886575839177499344173840219643799486941025898491239362920732423757013314458763819533805274286361174938773971176201188605384889745697902199210973530478675735074685970438157186205186042137239335011094804574925192657066298286669212423006710564122121205700839562935671097515444662569576289596325827895592135283729317207707996698476692457142216826700993447643784364719035108794655270639549822355040061039082303786562198096200121044626595465960065736185166644462636881471950142046299733660960186863978519585063929945016459807327215543636690839518580661931425898937573230496901040467911552141614087839033251871668613332980158089781573433782302132352532736877581096427119308176583536111112297255876046080133148309613998790713587634718293403202437262905160578830729423614618373155637428386405890431396122187862859258805333843767191276240933624684409905801559541874287637278229183808591932310254921727227634229857503320771037818302328770617703671468462300551706434307721078809080230185357287902677011342403853476631687219152678323794194869847354514159025675495084824487949403563472090584329255405849690056625826853674318734743003266998142444146627874572128691008291114137917722147803494430728219201075558851790663847133126836291316464006316679465744962166230592340381345170108755325738396640891424967881259568845284485531995125566790679362764070176249420712907695564341279536156738927077222546984007070915886418886815731203139458497198827116431241629145461681386474144345993067202138567641970389278681594064254251768201952519650778020061679088077552716566232588377307565695018752746237169722221185432469473346112281420434154036055319030788849342520596076488361382188681130372155345949169985150649981595173063037140525783279515283914802908373775912447476978413213517766599447329157730485699213941890704927686365005974795190666443165796121028579499355796550351093411575013198373175644484229664042598881348314261876471568040409337623764064564540887456118969976357722441124527014856621049170916913456920858097210478275294524097029258331521805018230036532477657200566515681936695413201614411900255446216559378603257665808129864712415371957312130829617550004343372837188230826729254422080866060628893017034414565444480429476498670252902075885343067924751457391957976406799083856431020479630489637732200998123518026784870427907910467227727326303183433279169646217658482321305111551687321542210635886676834766731664070562502328242453335393854402938778578373188427597947094617141406615779381994100310757675673197929413224749264196808885831924689150812111404627298529136322186231455780044422692622520179160011349164469365069368868937598192690213585553821014599680436727504522473496118650243529978290044415017183807597450834426925823317073951180650106207309355152896367509158217670446279371279019831253418375029766255974786476797123126545713438376784543542810131950467674154352163707573794493916405968434921976162911376650017316781431724618755360180737914188823781561238432019549980196157805488258443557090874510613218156099457561361709843516010072963612443910450082839579907634823970547946377633345308519734116987762163015101007741703748078636012671728854339421279021739955550453524010143528072971494061705304643570095927135534079247574376720187836960931401031893489220039533706403713973420037410991304443557329790585804744335953700985646511622503066887491586640720979366966003135722628607175681494984044660701895094021725997436793633900343546824349141046238514265583569413073886730125245975056424770590667235210485727551225206521772843288941920505684546106257250573954264916705175968317481491145685884735605714473341599552631647440025297637786345795784402926286720604839031356698757930449162115352152645642915683404590685770643366675324817900374974590193114949720634870940857382354807356920202970418662852130947134248906963632010998968890810360427439389503704594797535004663055115092462095764705382591607228608871337516570427900562281597848930302793210711782364674869807367087282839958857345162072458378231559851514287971150783321152658397973369605357803806888965370872561049976209570526415073220113641021132345922748208632578336597337007292025669546676284653762380095076303952355364094743333546093597032282957829662540686483319686395139098247954863869007704896638862594097413215252788413180293211421027405240576934785268563806874116471371458843412366201664577398814220626832262911012097036549461373468498401702122825690736025131871471551477377810327601461265052942576897214301448996285195485935864335325015310841635744822397071471530931837442442652632827661093476864206376784103545683415656475946104318864692074005733835759339088592667495453163963139416547078764970362187542939482755314325441772234658763057001457780132373325111135196504119196825388094586946607129939924025313877979071152252884189299598049933642005787852325607475807566595077672185394655441475959434477714738976388567682943987342326270872362381082274045371986142753599431345665551790546154723529526956563950275762627617843444293736178028247217430113212016309168103646492227324231883318726421013635632481311108620844490165745036421314427843003955741747929691524815595498308050190540894767619143487723332774665249243399277520342170727870881464114515938589622119117200183073498977486736090741572378426086725080373037936853162164623350428299965773199591193421947120569327034950004467356524425515084360378236559223048859554716899000093614261333506973595603778687834079901184836590838298886275908850651959128383899857720176550170670076902025801784881220078141726465387694562289691683745775056922284182747420159187757845452305246708912851597630994906160405492871683728722640873223350837885225122124649577532481060917130886952976984019218882848443687191996606530450309251725575670904444795626134202225435681655908263643479963883735800748422588141150077230002797961432681336029962619303698803960547226750478574027399109944369625449913839737105919121159870084809646287007372803812014306515875303278422779296781546808420813282359941073547933330416470968326609482649438376634382156763953762046687422248248248915435317433676519976883100452382978442278883462883399867819581745658813158339178132236899383461857895272869217903459851303009656632299108264477374335804025881149590186538597926043726208947111350387550138070986305080583066218848602615877191357597783933659745410470177583725602981403276870917067219194532058650247537594814433735000221019120514251054878022401887605516511813924674065534489102944552739096680608453169634534400616195484814892477330442228534408813890427004331698454561559251318860951282205561456889562160665028027588728509310252777603804230889740521759141614755008940401004006385808286890725838519280040655225188611983119539626603249254249468778670713523799002780198072600080155105101231976192933759484367405850472469206390233616029821942415342151816839810905642910064494978132853432917351396593552584431173586628475513187632380059057645502702952967627789935612779323451070703931281538135165756101638298409006809342913711475015642224249859680445413063526538088510871515382361450991914669090217015994219635553735387369201082000151041873832276769713267163665214579627571332444163293986660373867460313414059955707987020185078200520328832649197291010520564392637703419163957114407487477824660221836901434747322057353285369767969957420497323220320244081809266542637225060102441633537820944681920686644110154553893052362139351035012560571354164252327305151565738392382585679855803568318895808355806830005497314545186472450522368522275184908964032839501366498689998458321040054024442163832912273503384265998863149637028130178788072340027420172006962760139920771191715304335093373240225395586909772850937431519698330931377783480853969465811019314051608758513389289354437242166597944796613508745228429430217255631348608135769188940062304575402073087104931630028938868777643328365302189261000547517121586751269204632377419763098878868068198316835338160564337149408110534125660895019743577910497777844654976866829486535964737943777099974878802987313257430336293409927464566554394503423752206980145323244659430519899663238729394024527960638013015770189741197632828942496272310510031262674294881883134785244705988277191567831431404452989043707184294106252075641221554272103928186045296743247222353506335345041637869990852653542440654607415249482722259350771800145665921246337445599030661462320781198681573402656423396976079776820172483811004152772552773360660987846417332270382243179491634754799550946323480199636421919311203944435179512269135512726884432419795772626006371293894444421397589421261384326160260438584204591346091735103685148254655448821964358068533439702888523026615521149351490998268122627833447821918593514521942991050194096504433355039362318611620654961690064283202849874860096687973833270341694041166557698042200311962889151370020865266301695763339792244046616315199084568405385159565566158148991138421437250214611034945309807203500952469644733035234495008873383254310721448618034429160451743490703367312032324493767351180387332247949890406056233808324935042925917195907324358790733783815754412927873037739054197474754876278866801578386777909727188010872629725430532960794890295525502843392491074486267319985586509919063773538859211357303142476249125707753862167118000415114410294150101139352576156069896350608122440029917683562127167634158401126101405378606258015321846890768588593658572733925915286797038709618088767979432902048893079436474339411286228056394917029789865537588722562498905041516447421136230360356913469523270957585051091368462796105777638712897181222297910423678601620389376962771810996527684305351332896042806847375194012058646139210363231299072414261453491898017401135541744624946347547174209557446010438593908405141638892634275370532255968018047496864227175269459818663567250174112348129013830693137965025213225886898243751563370830882924216627274269974385185965863503872414753809637692789307270976341704325542637055429800325666084272925042258493208985504881137384681803694361239021566563886515588107557614318062444276009585866057266296896689331717996452694606088582006894914670252540928187528443888649906187330492834352489818214339259774358944705426293715729184794774117676831462216329780994210827334771889420249762914256535145439259817091404821101123929631784010448275636053247587749991151795498767676191905130415119020532150473431428217539826186940109154640146510419982097291728239590933799806818364983707081983954326349024093043708201400810009686295303414883821594162853792817664699150783084308355936624755738062664190180262484892156409752814370317761889587985944198689951899089739077256117949578290278822478108971839770641142495385600355714120463261647396117579893756210310590822762104307012848393181815467810799049413117609051141109484904328769351028894516577087151337447818856927755744707336422895582048441664651336250974144794694981999956589099869832740308476923592279135543675521789138953378166149404582820781658512240510768181316045388477858127633522464675209097519611381437270527524428706438563018785525876700492150687547437290442529308186402454832588260526308315140225608439170820581252920995546770292898143500139244469403577347511910202837362064953466940881652144717020716546208536181448575607012503239839213246582674595401346324738590768727244656896166181363927693024500184767298613331425393843673890165199875982169824896250470493855759020086063927872420448531570835545965368217292524206273625698364446430410500839442680239471978733058388293736029587551680933644149600494775512420667763579074846304481078240825068617039295680057279574972819891597185348303176552183418501105301975870071869883461356163269722415444734159769676572565013418340540224499317907287854979397668847384390781182969811038496915085219643635104313631632820588956124141235901160642362718705556866385264659363212827710572660829384169579696640762408789392206548450368432781520913514428833266022685864490609304217193942644600606851352724024742891582444418175830329679585786564193207237538240359580667639731925492808351184262544659928435090303592113372569292835436850355574288237413013086503953759707348465424788075021237843914739173203975954559327584208677403677213810500850720494891649418386386472523379015367660727636762867390531902807623043702152760600741647334640143606646972578791005468009109863196593955656734044571651829697952871886320158825513521480629970038047499290503036688298800400892049225506547393306613637680433032729087534322074399216094693816841107352268044763776486728354100879248751828743588269341865087896799541541464169350547992862233082627781767451320073008962206557054615454801955378275496757174460360037620222653633065657592751559315271026436829632318831590722741931208818279735388445016993541922935956005832184776831420998685749767494961523746011450240251928775896925463285790463057601241559577026916421802877023723210211459487365394781417308018902544297930272441879649172224544764810207927877040699538381584390535101445571340998626650201629358819977490690935090274799016113124032431561311500283727643555418660579096377917512816719690290246571055390886636131453964361801449054046285018809805098804541664665891563250494548862216461958461079788909460843467632291391192154791539597310316152386719241194924061877491920873363170635456256875229713045287873635127102159119422788475682718191111057242384348386936532221960958984711526732391375395532320809524591013000209051884330027179639577257764403576860442345761805333597252457057224807174015680132533076629085321878585608662436571950281073287718566402121381467108385909955438449666881626733794537082369294850360194786191027170834170866799822105326397264535286334733115752846418752577743418229363454030027630775425023020093821651819366470768316196149404937669421895686690406289437843845347910058372522366472614367697792126992542216228517886650345291339969321779714344013893874217466550125460316955219583649873718293551220551590934959986524834313128881468256778170384108645193355986040036607465940242677014110649215643374541504977677406562340246120122334601572351977637977657310595876387859079439191849158651015835828897778155603964934293532225789915417461619479436832527485054663368958524722015395136931616473077545648212418832993602465688559674764312221586337821452788560376927039645912613335888500055441509589016757420417072781915547144240228775286139906811498698462236122992747145848294578851701205162730255976581983687246589726796447817050970610188251258424867297206953585827214680833292023662612265455367199091627266978664695084250115291726018804308461771211452902849088623184810203095066016512716248428159408728276550371073544937030802069991702869504126266573986034238636521532118861577035799119732908704117636092605287574630373085622884725778623538945221085300650910451772403703635157166469466513162859506205828255146472021221208895546814374569522902531443976535304016071245990225811329923872155124422526811317631490092413172943601713012628625091742244201426609708426201471471036985035175143839811744384234622519769628072019673152742519809733031310707306392019695927085244148703978021666496678178017437515102515982838677103740524080557750882069998859535235576784521157602149983073769460920963783950965886731989524320774324267624826994720047171758490969441216905373480125772616844556898153607270945210599682414609802385284794894452170844871858516245117151213740784271434568021541046367742973974079821696186816036201587954547443483832797549279009675055994094753090119355503328713808741583855328221305977521227279902473822103359249526903607050116090304420053577726430615361451326821220598010436348963689538189094606122316176523485718736595523834680442615075653451172208007307446451630611543340603782502173809320316992866511317488126326259281249725355321316477201481234129591098841780062601219668045480727552094897141436432653365074291793369902381516074921715224674708241483770485295138604241916652706126686876035571052697135825063006770799142017336851187126498165656379926541420831378223823898293789781537808117715927721070115907923290818529743736276396434686072219817553735893455777823554824002984112624399737345771123222830360933528320470682015558013531996097152366537380296312559386885824217475838432689538531402978980233010558269939540605326897419918094487690554351360320577687185202236189231882869042440626402761002679229933065087443670213257534674115958328321284475441176303068743441602098207499171525726599928496036157417770156735496112385793282907912804514636361334804349972233631106851402050630553757880688607323071539755542718779685174500891871241221149175220409078031972027999174842304677013787604873604338863204118503693985964246014861353297673781367642184864863959841768380607353516864277958707175321879413497327049157565213207664932481139096304131770831988157178636464849427471157311323207150914549954334085120829341685240760676193569859118593267466401689284303131344326461459805745501416395996136248919940630285217121462851403972557095652924218433786759421154218995797091549758242696716540498514774716616092199699243082693285494725615855205777581311766831285649612569084572745813101042892481969696578756956768552100029608711244113148258048517164108473431118320893005706997597084828080500188670557913867768999233078058858823164818108299232674851352682946332629904675143390272946682953044149706937985891126090245059351557718946533804471022989414154813275532792905868801216115652842786528434977428229289262865283462689826294883693535123034882458323739932541022137699727689908891391343800936807213252460627874478455303807587551073974938461628611722099029106921928122381810808776308498531447474224932731600524651750212940467386516544470074335551241769804533256616175195690429146915818528106105412577712972731901200365205705606301383254180597403290802320329026167266536074841670257499410415457226735192048223032816480505738409719090816371933962517677702790954059127349690109705028993424482685770093664900170846342986788401461287331310122062957201995411990328187444159842511338058532314814671839430609554854813281141653359675202554312274693189451615796737659944782776888894510031127185111151331713880487403071107310717334811728820073113084188523482718112901109245473099060453206996745461306855356085001252200137449668173302503898864551388310795738965449339831756793649236624690458706006289437126575192166315039524586492700335220224997995308763883330672512522133131500929087800720302214023686758026338490995867133328404376908329017012716292248567684745375143997522861279494441829171212685219526782676375755793321764977165106523242170898430747698586168900132796365291016122888267938622538911826010010967949480406477004549688464356989883950335978371037578048374184359386297744362159951296861778610419759658766327088027321240398127438743185583801188530020150999605918955050696398438814275632638859325715874339539550340860128224072562571719014919551973113530484284646423150095233793216761214761897303211586069559816463525032010666971530154913244089660592456724206102390071514813085379396023868807544537983377650107244113495887614478691295614656671987064780742768653933092887718443658471175965287538258586550634069471549571516353895765120339259298387204017342856252876856851920424613788166023929746979839848375824216179001872434495614198491371841451258731771413274854028165449001447276104272283360312774413906067168502366898573241863492777376076003531226008435288137955134046071125943178840959653573443170142476517930534982017458234270281670991174569006022566639915195091732604688498746429828882126774079414638386417290496672372858820599380877108032119516310290286167169173712518152091826649581413727374844395245996043811168986577968718048029932440215586186125997120454223529618405409755413307145094860481563697942035706827595582994521807559977608791737816159351790090364856097071821344926409720875765520329480328033146957510678724365394746123987919767591041027901144875838252278127868710979576596626368787493421083766403041492874716016408105031814692881280811251520903403785229228774925447786348763284176452144856234275013945889007800107322503645828603162514393337065117382858445798459455434342982100107108515459696051943118831027709096245861998973897986403603286888386741224433241599661365421798651381407065519237273046695035000885155984951627092259771091922894509159721310324668382993652405008149769903833189570271258245737127635984164908780015709882678926784861916271303442921330293019067263267354637722549518467189748255494735071922222892601768609106714786177470802096580251217694933225402270442219132727662329155048729385020700251743387525736360537450491528812251771885537953763504724990805606348867823821441814383666529749461367541898226936644440861273202032389571583681147091324614176392143340227864956597069594045911854558609821732722672642565479916321926989161842031195122094803948527982872575796410734923648997323615983606303774097097297824761635500926265568325430344547212519815250657787628886071162960095835589594141892776249684606422810167336437758178738196168346325802483439481806990227512667812168230008253611813008839522108035517139199917353809127958737453865330297139439696273791178296091809996473209947762733802479561451592432268682843821516757205955630031617077565051646389419727927665875977894452872235596126923124827841800941854083927332447993202545421745261668532394016747114475717656251843894941463102709403615844158429621927364178000317732884635967998497562547112114185422245826205048531918753811824150807542891628192659711030913129374096982989370683321362490478753770447804324923430023515408079841513210611191032390142933838771945644341425275592251401825752321569751301058781612038407566228632473568548275239140973961409379416463286124222424200514773052550180424776479697558614439230068292252773456999022848488360841556482118206525153444482208501762497702130189885050133681092134036995493187862990193930532736281093015888699689617064894694599824384353228496490029254944932001887236865531825794917258915212837910479171115081673298712047379952467589404216928588598123932532285375314518943281675044950927792851163392980678487238200918938523552273459914977666728706248270975834293948511749811320097620111156786332875821450625057601541531368393823637864454061019467850550094371277577058951970208232560767629650263284344131798477193757281582748562896385424303411428138838605314918142616024269125105460067139577549167207227992724219042681240448087188851693506253282781831205762644127760342525105855074587607074085105359243930874606929477153220818931700618383073560630385417522249771362561595872231652940091262993556194837080886120263944384090139804591571515634759238945883081927233212900326673423119125203766579052510142426173446582213165981645006448606663656828441890093170113371943586024880324864502965013841698956440240284465308511678670914894913175136346493419842821928324640639374564144755709336415596784267429736789500156626701909189523322146061561601064931551615141994603036606502103177207223793874337263623400188094532426636847451054132472665956126061523723460907671910961356894487567958657292150661975890132149896177893643724926734971371339896444069520201335918789328477075261627600001586411740496093481111529549718366840052809668216544326688643494825012755057885236812692824426421808199630280454016428049762486790827953968498951278335513221811963123988513604853439496431899414672304709679104644566071727292108934905803293429363402255082307708901406172866480461928520040536841985859296663376294330493623155261826906909952986266082195830447516877008015818083514415905484584838101188428069133647867366415310568456171929369854665087537107690954143826470807005483325579067067166790154576019975276557422230118987687092321321102020382795879579994779809379022176229580151389745890886712815019960456149682164386460672776101393994828072654038671703760066356857632186933062973423757263035857191395554205485938762653175593042030260768222174074463248873519584880667712626488766526464860339348094464866673073813396268058947532382969954085809042655405422560652227477259567103296192085682093228694939480783274723579796630532147513444459017262256174502286454587234443664182430314009008654905103659022743321321337091439503019472114380917754678432118177157866406023615284046922594461656927055357674459341365081125262178435720490919330364137850035685831715036986124459960527355022551478211642477203978953846312444813837933647593374469766277926955024206796918083572993671886188614431684417120800110076236789179036211742147395015172520098361919769687335469617044126054289804632797358226704369550922711685705683583235884138308680329587370939134408283415810607817886419765426975160912008496991829678028658230413271904388783643277618778381910324908801164133205625676066913649230806742276897274686388509166345967495829221972026369674842052225763334468359143247043806719569083293514950654510400323958227296969053057632823150332077456011017366969660865491929092190731403844072440427969106238800665136876098511824324880230856717323956614425073504843578905916608097116205346775604467571995466061123569968812714478043311506792632142147208214956763890188741991653905586781948187716640787911154488038471736752225565792960575425834162463415311751639194422895002586642578546702485153395732341490469335453898243545014812610814640909974352504666883377778191919027223946915362378233499856886021244353243377650002336920400503608778241223453380592012907274658325440989127377795219341845973602206586260665906305078801748364259728902761022374304288650459772961285804675605080394196888850432463721630036375454700451933506799095840178137071169237798877254189875110059296323732747678083801647068148959772394355011385848269599373269405262337713169690326024319960796956624059902997836720132600877125688397445733248120710316433644595310978930751228822054406523880242337128774400845860356274004225878217421343251119398812971362834639719727163444903358067139944263891158612515661938183321082852303701534292481740279062949042143383733243132928263406974536207794157032056939275366349395524631438633479828622122338564182117717475022691964578458885509599364184657598361875851241352917758067215778644841659479359644793798511378071452345920731176347887548491697408003868399416650666788385145547638413816732684654422979530608374182754241936974332215261271218429232799102590795608005968178234735427898999120443188927041586148062483343921394779738913340338321323688649617900026442221553542801756590732911035621640706176951443085024707149275862171901392580653231341726376818839766050142880074052939073286922240800502363069979906163633010379898384207755117900694874860843283280891383282666730324858805002300154118631168118030501595208493331720392400106960287088706642091033176179080225810788769996131311547628155224804210188626628986925923606999426783518197451901915386887656033939570432279515664106281057082685906212392144939586363392558082465132276921158569590253242905326658954493356521345911702260444564483525694252669140257925452384327469493738232997225448934338228955321338845124304099968234118915288095482187946424880583658885031436522001996837792340029109186097808787629503933868857319805493074295203572253214018508818965755418338682536137169246924726861900322875847465001046433044560525049245882901682088172691170008875583694989863430342619785798951424712666769041847914978187615162437776852100678750672518780166987211453786475108905977640319884837509353602259372799693284198918527606755321727096056953374945587807121728994942575249101955429034495226820113187917712800199846801295620893021106857391915478996531818329600220800602624414629148292609913983213742979931545195963266977516360828107146550331305071632956176728275190582837684439741847890919195775050739557219943088567321219888782932491262552970891632014226812669687884350682927716777103460705356565561397302527921024804738280613566545077145972159547592505224636133520536603031876570348026191894727259753581787714298605076248424662383275472810486844548386230307813197830759353670007907141177947019206116763138370223748680211323729126217679835817229835690356287103164314487936885912436982112406094926651745261077424178893877725781459896769989257083101338980717271804463580116893333245636528858614306045631983930579837774424975324125183089067412465903403507527801755579379848204610491542419739056449601758240338248457732738159591318461416257240882802335893561617752050875248880362990436435281951317948407897015354845408034877951883107002166743545030876282695962960782880448501476753900175112363198053844342836131068577198505853336593957845535246991817247182541415558626894117346793109647831458863368212755254283045952021360083165535917961645429185174258340282459940074114598623960066441836563999939783509769638595615814583631349666671252957892199396096341158091792873040550619406376545164767765051441328020154115399322270131363642646125711422701711976115513676439286865809506796359291536166598446844165200377850364748136314381914635830772592908369557584598661282653245032165355092204202198137782095294828978741473344923630426554288840934882301647002035795662111887348711428533508991744484972251588616489530475416318038338573445519094683020906588705342009542411674677603990679423234187864523396423689591280774105125614051051720613982944275935952646838081701280260653136793985243823928018526520971023671876460819192545459717618142343553951241030726979450586151512481940067045689263511403224507410464566139184026971239136720131330465682222786029400123780866604381990983710610871478698489633759498035733523871895742543689081854863086162019198181075328145627834758208647310817683673248614301358726492092096089528308198333113324095175295901827201394031326660629024885685319720837302300024038957110254110238535862241009409306831013753869890803912592985426007090544194109112750620121509735194133041574424946610596800137389012964469864004243251225014401449907434897018731307709700220890963014272370604344862061062737011278455893750049739860376975432865395690876417342793507140680059985905447188569847088575831471530310158970775067900452049600237108140472940723174788475282178773245293215709905865297968005168547720209298272003036850773796114214126712840509588897541154162207245162265113309385646317665907059628707438718442658830764919673435564813963909762504069530348581703373124230979911527726427049761335893917677471891598305156885594623454420255491083516445826305778660797279569642615528620446998081739069884686688298984407233231954256772616731835583237286409887165167399108938844769690521535696535924107204038702173913181536816569650932311514492725165634732684356431475999867087574542382796030468445447044721057219083660860585391949941283226422109579449014314343785066044620125206849945529548941849216225145535385748907853065936981833658699066769995950744145910103069625133965761333564659466442242400263118743175325890632953497503703155428425523335460900491813880495627288625955752117072525518848579575817907079036299933136546070674998078294539328413875015607020090226151457140580344989973970043402872933766957265024904413417972414778393240442552637919572691632605735354047203119409110591842904086415979562063569167423718236393462319863794070032515294029583364371038709485132396352145590045665897146381819815471423944895630777244277352657399673998821550003897100450863146681585986232712088804193369458431036919098995868979781169798171730577071797324476312113401740713967570475215118140218783161737960459674434067853742846841135359596611685837159291425291606745808655862199450754462633070124824906527237177853454000004529978503107020312885296615194350338142971045192700131617763046542862025072923779680980750485487822112756249099533726270311432251292686755109887409438426869967415487811671955700584168842118369249366206412518451132383777168356609997341922613846539516563874560464009082848990952075742683816952166127395450215356834183767081713169015264651066986848975619006414513597770096785559669405476089941780654223968818869499592545671891246002666922029521667054693284244296421401320343133831830019824578332551765720997081560795817052018114064913400144303500150264523703661279426379912522750435891659704562411437553949650460092838854374442058385395460900984229248012144179424585060541104836768332944473240416231333805407801031116000146327803167352043572903086419192492894855077235187873550743632594047197127575593405494583857369295331363601652154062626470869529945574981083351463543859394437392010065000277459733206070099123150945395615737834188531856179243462312190220163399634486216812686013147971893280022236371895036334269879323771272117182786560294576403535617326864821919573826559350236748935376106276257981919082868880852004229276814991792663113052592471064660553740304178594628450096210325699742399205260746408336078518893427651379206328081064299992369089185396958108861234182745950568268965102969335265630147976258431415921916364460941530329317807566897694952904949317649490497656738492979631982559030243602202884930992412412475425345226383803010799091232517474805008761118371684173638770448146158698500279128144699861179551215505847327717422990485703307853686148658647075435308906928789724984653346814159839583720835703677663836525424269376180679281575778025576056899637029968313727918928517701389202391851863291318044413419719339333648643969342723393161866721363350228145411292018113044536101297860723080915449729151315757966952349054181235995391828655581855471995391695317662302985383103296992219074975196515709970461006208648775864914900908560616796972437428000767634750698102059698222948706255450125872695984792063946556687373225493554264966264042531036742354215866840374076747264018315228973547778626676738096814482253773612024097991766019243771741503532562561944124497624640965988446218921590228909873476667932319941454331773188585265295592873054333052495690359567812495556159287801293932441740165420358099077608343203669582954150189421617489734277659085600634378950093295098093760167790509172137112810320730387036616270897581288611908207947751609699749301607739955507281833563083719968140853540291388132134758482114781223537006135445589965495533822750463638789094175742025451348537247153772333058132458127987811660514130863436093527251350190357022811202966153068433193375363399956448961646762426742105933735181237589392258851066378918184108071900878090162827645068397882313469069541489676413534263673826872543832041668410368200759442551479224784632510001546911808576826097718927962125429496465879763105319040239304360238810006069668892595777343697674759572042093078895217571658019754726543843438342169020159341270483646640307025856798954454298540183921058042241101552946176168810323888193024533031094284008292491964322442566136993103822525675780249328140053968618703113598163125984202152745012489830146157374575608485415297789512723137998634207897868058928057712177644800477067470714390538940931623371041488839994281091834957826840228333980012991257160065021621459337341134813513766676622976373569856134448945499701185044259809184987262704107755347753040968080717057315353225481199181182390650861431107269176164922961251432556491771868063180623974879258486242992072029275888398907417087900562563372789085103530346588598070657213290472234174315617077379485260764473086558287393689915948404989534523829425060145908740684731029290523310653713433335383940728648016116347692397782694326276171464333503943829873734143987715131249465350492191960059650685501409893102074610968881446230780794529860392448694319071733173551723196816501695095584351111354037736036540890936902153077736239191789508329034347708228589272473961466649877198762645901658074855099250098001636953305254344540021582277378268042038806714160444948501854135630430812968236667578993704276656104502240576376947943405234602555628505076648328528717193990882945810303323194932533243301502201805689419428462005455513906596974018852975090533361012253105018780134323640679490988478506972938087852419398536153857159468787578874621004979067259721907605157531300046891984352480161141060728145178882532507397026289182420470596882055029146116220595630755089507144812996953725426809279784271887270338428387794937328155027055575246289296533661606374332479934572037010875951270492662978750330479833374611248390486361878302284165036740360335975311464144293290569458754351190314213427392881087690851662160006842732504709245547417157865231673886573650281031302451829594702979225795246057578205962348003225770723307300420023873048023132703483608918304860370764533154626384786380530476678231172613951319553185148895040393553970488294793678865509612301783384612263339785401679932927276561603810425768118008053895411120574471450523623041259922983720259016557956907529028326035633770473996972961394294911936616433368142303404075866787763689131316690965448940479617858926362373195071581578990122679084584549437270098659661078880424191814725390605110067746090316221013213662065747746264419129448435661369876090935882214835325702297271341208635706722254564014388505850198121146910049963061361312830661182929032559758165075180145542099654853398499564953158794532752281623492574172400837508256824222488599541340116963206692285729897246362327353418557271704163344626002140489490852641463699252112228115219805286828781638710775571229754274831164472166242229920266139427323123130882590838830408150956674043063628746971677599915218746111029235551998534193192975813770600268239416560714891152262423423911517973320208568507158101025077977190465458690054369693460830336993028787727857985175098347489563087643148005331220815923282436823419503087674485826235603550853754205583543778677314186048955277373529769275045535950207353866534130158754711310889652937770577345977062795829338669267521221919908210906384724681073039303411587460903626370245248007707213121691402743402198785078185076400805027236581645686008224715435674929232386969935326144661252396247640073992785095760641101956797218775255305499212332286331984826758246680823168638524254713282635823214725314743657292035655531907635033066041400042765424849519525175160686157753381085913542737427986303623504400123294583334441833794194588599546988991206926447755640853277616863782354556645868251702631318104015993803721473859042738319097137980470463872159950580030773043610722813336468737673064705942424096639292742918933047862298538568122658601678341245230824967163192809169052505434231749061243865830096260193146872695533508929878708038538519269667265981158525938227199183987684211768385366779892914647859771641807801800636721429310582039702040466095402099046118138741783901844523412689622349426867567981254566814755162714816421999507209113692905804793596115429116196050587974200925718318636192142286923801551959020540431778781164884879009735073467879272774699699038566486490019346667466840962208999395634487266679043579558499330692687814480933204324658138714006864480803951066869096521547954164838168365617965403108016350160407386193138349973904994512917922333055105285302377619668788650925201743541409556404991510396243248814373493434743964931462586199988791223485719140836858029499521694950368780123326988756044484702269085507327494731488490474340011213105240319675391107000893218641220587981287717544571928221409173349360538890324946955358677669599318891018518554847924528387809792855995492594421481972053587628177091955110739952458184833809133533138574331525001261322081360602814682851387483601210722157285583327237984691529082362479172861459123101660729068715923974279566386756840605577004615361660027708220692939748879595869985709743331166410845235055058631372157968234720636291789255180386758511013318169345788154791923225661569611807697174378250073590927149976214770763010745405423026480506118171867284366840730213001256696525309639793994342476523532067753373573313814874021283676107268339013652751352476498961504862058695300776170877971328394649036710403365078597013727412479937371946437630892748989176865576163277045129340625974150193736771943322655103844375607120415924655551970624582800465148936267557886382428974649282789269395363401271842015247424279280723623309148424306791808999675986351478096445424870938307460242774873109794615676264157478763228368897156556913972179516050565394527288107309408107219979395516792339695893684171492561044902617573379074886753637564696028313642655111002706831514185462975571754533341232922755393989146439368612419648883870068100371655307473075951842687408928356897690108512359681565683950917021622078585722342134627652301804588748646067771691197754520251285849438252522581331680170739672014197985958886568685497163211894130860774676465403924420960306196540776697562859159421462914998858013796513337440429694736092408974896210351126342950386511569310541510466807661868293915966733596639748376977391731336107367699589422211673995632300969116943327818803283025901057109700362879927636191877892002144948208693254966486197818803569157477762965835981402516838887504279459355033763151190668061223089117618956671242720232084024981379124541123583809499499165528246955466778163832777565172786822817637575547684804757985965781437654997331428628329443420700609297450289661644818545293939264268462720785571631084776012186149010564999122019045404905197199342988759558652820317686982964427947797011271781759782851826195845109460223357759080640370296777108580753967057190124304218267669439087713004718240229675532548315762141276838280825961184301838359563220578728641396157437338774439529075524247805380990297048328680239749522281665421408939541049050607313167333666628657717062469326591392070969026679882141226391692738805927803134428957740937676105426900656372057094662223821678187422151782940586489247792944230360160331243263562660046526427513616673699772425604064886476555723428640723765692574022185241228967212846174173935576447461806024392146727845622527397111597014732865489149154749166405247316663609759207763708115045484818529658301282012365890307145583911342016072543376459607570203409092140278210716131100487399825863412214244278158324601208881413416483285421234795539126608411307196970652346501920080143761493906978465739548550128224107101031808935233380710186239762827888455214904480085251067730879199784469585990191923552649047689228832422362116786835851046996897746172360585963672262237611171292585492399412304474116730055564268854475554266291388225396478375333293056578383610572770642055800872579297517486087681270100329471785111667430927815400802389544024826644376791421678738451776449787456235229088320298071714943346437492327808574947380356036859192403344676508255598647541898865336521795252032136450079498367640476678102731580821363550379464025959821772177734413705995997927099267687898930311626205313383536954980436614979264640400733955838379008171233578909854300609604850619346316984834087284983478906810807158478571427162215833204604312626437268756014967740803451241552965770716897869873748948982434365243972220917433047922064001648510516057697992012838022492641276944762701103879159413437288579584929988069673745069494446553294302989890880195603918221410357897662511787592062753049919069401077557091976881259876042549137744734083074218955788443191366418035740999950202563784494765972843889892317196902600435865737366400524179559931615906547460115413505504546269554308877022946462766855712146104855174586119952864937885495571418899226172814841428073735171562758515227056665275422824976661153041034242511600546058202086364848508160173652405231792855964710619034962659486075986540331540928759227187721602537403925518713006858247838575695844531592946563841516193535821225502646549533298810220929471295876082332326910491123617329344199558446995927102119979377138847298888542438122217541371634046520153602988715960461771073239156483447317608853571534283790171343474626847254003858833931977350211147427239979820592684557424300115774268853598495904117013666857271865359921444341868459309025813820757506464654895803840519322881607862171095655506763190520240253695595739178506559406773670013534172046363076655172286590278196185422427080043144010383439111346929249246974464270615934945843523679782854837836453371641943484330664435446656912148519635747694966090220596558368186675856942612771750034280108572588751386020786306367601772472246126606443548930630483910138208678933949477401842432534627624208876163628889339721358992080615295715770791366409386399814846803817409666324616307645329212229817796375084059747183400498159850037126435446390707783228183209720779243569870783924810446649265481025868926646236533084078379634879362552983149333294067162040261502422282565623185856470721289932533973702128894559284664064407639126844660507687638010479494821872912787822237836525777987617969975177325110859746509129447819417308861349967452152397747227676706172308307073996919904037276615031577232174027616054003033677661499520461096099022052477404521582984503939045858818063721723059150599084078725319229024403875185812473636885928618483228785830319785061121328145172681677296384135152477954478815217899227096469354865184721841083871900688960650745671922347818530039936567241116784060164404189589054349605755573404803395593736786758501911975579520354243439393601777086423491948490549257932422391269879437665383261309879822278869904123211362182213114391581093929476488672473222344231485386726374679627594332270285422386704870202643906713298207300115100407350259501025212402685524482080846495324153208343665569201502595774596016236834337675743167268533399781240371891884629647911298591227478028016343391262286233739780713293207864876570566384292950536491319601908765025883427879114466701191236372385327582337471615544024960934534613162548840743933797929557663333613593550770828485180301162804699461533383048781413935074671409809057944270381695390258319939710118477393659556216295232874447967461775392826358696153988087969346085798264397689591487549324335987057132299243021865007402062806480636660866300724534027298966313627094125785591941585025479368299115601250877253767183675157105434194786420492585011740862473534274964328165142507687406335128243121258363744311891186177432035721424909213853782236224416081210227621570830247140837351131730489510403027464429446884546858560501740410823187107280921868730569471388446550070556830505740672749902892555685709135654263300418856939281282297570454962822405887046282876136638470769386697092100892759344662365468529439239198298433787964160463062123006853540708338850264023122983997824065055404371025513576873841216231416965595121326072083385360927853725795486721353631849328765542660618252134978540687382657785523093697658717704707670193258480207306706950103198082563988733295314084170385004261569516839434109937960350263716583951994100494477587967746699360427417257753295948774204949083086491822025972805089594890618699796263087655696568291494484325125060713311479323833673724058572597618553085948040852478786410347491271002594864892406448228568981099693519008641143582977913862950476412833975704390726631254184134898789968847059930113243872393958756986018461096753725370909922583911928360247821632701301220168365418351012242693761050372961846455365976058101177365608871869704429087424558693196932907791737308029625915198735103874659988722301364097811853521337358177756113323858993240477367371330342699903526061137476409882869676205820855647264460686344745282065358662898084079641202183576982396478304921666696809348720699983538631271673415985366518090427293507896863316711447439882031024525013992345776521638973456218656772180939108457867956105955343305480141227785370350510759012733107768696077577767434865519456744919684242574751616285042362444998784451677514463700963689747762955601263726956561333871482411071326691483589466316979143962914865648084704801798029673901552745153187795255852248352793448330356827264623162785941056687194351555030665945408267846759822884465174906793689856817041470814688592916077419545520554292371820416364922100366636770088418914302329085470405761214354276486506312733282429711250278765872278583043813496440600148249626384689190237903184009685482446535592491556231013248201616880098581509635271786167778263952171062930583225490710968894203287726142942663669605471983884286022192843258503052568131268614811854594246887557431001030794630928866143631269174761915092227589297196555874628687856058598508064702630554891350841343466555852128794918647630385793093920677844529429384563969282783366555259686036140205728278768389442582978014081647244910513264166731918038445765928828188935746380273438621040093724451519294712353581361471994391336179857571534898172035872317869036296764375620213769863962888435627971364318151764678119994883205661725758775474404906197837095808686991194395023813420498304805120520096759356984826545359139817446151230955464048746029556943071801628280053010149293661950335881276819359292638331873982100028052981394514682325055606700182147429248534236783343359024883736594091076656860109605185613565528945205831424316989211416894786645981782836273529833621322606065724947978111539916470744723012261192905930995747182797254529207606781490311860269090810825854876416108778376820449783764658197745792061522882412858107150034272080638136595416662663029060514400529475276384812475383343786837524984937643462295166474824192981256408672730990999913925201961846050511726934635750716655945249857345758541255547807006594339831549402049294730335657676866699068052360277043740496628735621264182925408486851768059087617740235896772295646765323687642396366479129115282339545665433140802268427648850396074710013475366654832029927715354880838109119335820328340298013235123937120947997378129571887045335931198448896647235519406981692414141967630540036888150423950840672155516492684832127460219487139503688000264225713949490613723678423518325178026924453036262884160875813501263631262258950079536199018069612092749303786319706166505011841103542229844564759961011611818320033322139877580558799790151755230263569287436629416123704459737237597835062221119936812673177714101912785211350742592546773542622724301262727257091363439589365904306095075127803748735237445998730348201351568246102812007371594655548258228592103551639503332900169560074664435745180397275617556354672272994171865044087431726416632030277576030481695570927706130520486828424424878304878113673220754082473475509165629839727826486383310232780068538021517072057897058437412471272735970571755890751930534052039181483095323863956022985771175021334574555447528709045467881600866622053589249724985469122153738573487337640178487919501146128142850824510051440642017114909565942841473770739320961860693003783796162282955343693446566708656175836534090480115234226172229014834707147202384851941126739791762955668644121201528464626116913483558741819015741872035834292234156945817241801237222218540174339441798754477090971537947289314689229287082722329616033628943843958416040248215598722777548109169826655212489563042932011719781575348922710239334012684558149561647261239716653671264496239570265139703527988111094088586620579180593317046551926895893183180608184631728149100034561124911850640229232736611858338842841380865727368256743752101599350306619446600043829987260153508663046795197700544975876664171300313562784693817207215253384109662797248538870257397071055180756330603556533972508497500062644533968616643196852238043544363754871081547904177281947073284056853095309936084739559414905800658397348453562146722533011166437983480705870066606400314794502852225898194315489153537364086449326083363122624056949473012447893331648628781539928212501622408031560915545432671654795779395395613971200859724542001225046081037851781498335684887504675312176705919031968956618445088719268196426617364167968369160710518209130327696868416416490153292373576175512675223426628816751522465256710137538739155720374732718025988209567471180032319585370234926246965066275691397916206980374018518475273704514896800491679886076874567006983737922918248940964144968755965834077699171766851965307855213613261652667773324641687713756186645600011111692689404662296190513065632629055840483485504708826456627946815388525501661488838204685155128423774602771912422256629231244522084452447440906283873638620079684543769393580431639071782359992013601775817519341156996960701200481350102725922598532849374506338788814174160046447110290309125256048511054564280977178383423422156599182548322342646633275155740511786264518332929524762551271075207741960079917587749233785456192223279658267517797802699692312310305398635371733826687051585953544694443973041493007815515077714228279367699268731024734808507110958278550725949632197594046591592426287345623337351344526648768958404275968611896873203781453267396903133040168815537298931194519856227727252168360590232965201863736552314474560447798128254364842605353147063646996752614862824398067946948697729000178799178968775104598003978443667227986007521909938597173093820013273402076898942723563026780085448833882976472972962696421315492717776396020223154222822930831240069195688767615128166578904818050174503498612517014155276972939419081936762985864140442552142808852399481951392346536049692466931914948316642445389290937349016124920769493731916550391565689202024945377537870707237835641958644251684877476400401737823324093468334425196743577873561056265638133684962032241573119408853027195565604980517812513970656732967059211692522037066380910177932864450552994911440847617959720140593049286172787675271275793254380093170848075602869885900380393790031680547029854017674624417428879656840061620002884782590026860656371521510560690977273532323206358890395758928878963143617774206290919417097677080851770501822234658290539297836977827407995332859942672749399991711338160241918027302010662374230425079340885660728318222396346813299747645087009111268611269661165083236471191156892750866380924394193970280811193232361449303299600610854507062719526463983156104544457999807457291487177644992087278311799113503711882610810093077731177169787073802750810018810067817074899168701372343305969105006031669168335875116801404824575052271790818441944860139245031220578630297169887378771868564964061519739819687759991223037225771362612599101864151771793155483299013667341815058892546216518285422733232893175926224558414429015597338385746580001234434021061781863593336345117361216360090162564246748999609631690420101636925704522029804474337945920753168264531263196802311232735928798403373686364880842774521902615388867224913663567020001437395275119621587038120633527607712906443301842439893146822643400030437407126297461557528913088721448389719208272965784241907948922198929426325731503367280257869679806402667244794313766535839631782866281431036273404475030856183467505274804351974266198469512748867577477445529249437302430044439665713953959920095272735408361437688361329591101034884484088893114636352895430655124727136715714038753279457743111565692721220986506384067267475926927608110015881168858218682748046908868962082673369542149086918936283916956426724354717693812245503450898230113730454423283246969723325572990816431517305854673323093518205406770865383939373369795068938889460873601435490378423221519773329708314137510507549828082183969748276665326446779812964228695017088925278767916432393901860559647284430363078871082250517844631496040684165764875649707288663296536670198921751062158449952201363171622750106173520235559259992126724913846684309434097780895679066369045748017346126940690400455168688184889302842396508925837190151849636105122392585415661713825052581934492452218865237454052823733496195578057618377062970865601142581316577587566581162504823905125016025368255770736673248932354026757744704050655263952596512528642814179060710008286279372493159322338914012162127682135924024426010315048252183404698340666657809964553621090027624932532669496702962567314045756907813117007473721174160521551163601137282517341828100352319448621390486810156712847676023600407855263167187389770805949748809577340118714421198021856558508995316344589009911738252736994257527209722194042687536913541148541551396725118077806796633486878537959262179076595574008206492241250967271361218423175672024123461521196958487811375043663995879053948617756121639906906931459640683220825675224972229818900984491923837232219332868202839380231892123219917161374686027384391406675668441583828421945596604352545213265221940103361569340646304696144167101505327421764589532693497543784735377273514409589250198015682968858062233630586682052655107629065963826584407643625136419553905455012971408205778110482893269189990282014130353760994912626702080892893783761972704039297165324589838205827182876672142798115826142305506001894321982151958241241675731871196726895877152612718750372183351083802228563397534444748358996227097698762765054987109923264090971369765818558402032181005191908902742076524277152207085716122433650508615606368484847250279492327748637737617032105009718210058105863955345769610958370449787566243478457981323397385521277204916174207980352377484248928507131489960622065917574109706005350012303994349996311322014055838687333940724171519382098641296361165905426230099180487157574067115865402710129920170599860403158649788943321271248133555992342845756331514928802706356178065224600075524204885099141717660577480223433855265782276419786724207399776948391782091823642753900725486651988685663103356177607716158493537625818476423193817271376614900060770305988180915567910732556925014271961788302754424012187195435910234147974055735330293136274278835966799189264913095996886679166974100509611494967563301576937447669417349311824828612953835537685380140696609203390578308233347374990667531093782505928496584342773086471489255827186177937533564815538332043372733560427575765625109665229850165871970603279524283824476390571714865330539261124093527281138489745926873717145651974065627599894746271289329182258719760201510335256030253996558943480728365280179001672291026370863393199962825465159405759528712979213412409426083441345219017349535522650341783750588985857806688917211313488823696843324466950493671785424810407607428248370806371929219280463769067280721916300905014578162194149345564227800756703597429280300456647885436989377727786513592006170866662652601809954689224360539008793133467972841948160100216534326650601896551042462654579297913643039393942249903158968296891877458340732244897931670442858255087139108928076231455920810277718810814491273761079042053293479683764165293280164422782938558682045368849263469462464470426546449859012719493132543119556262124586302689395654809612715857002547521750997152277321396199770544142263737060021587088286539289861614430121880671731668044505639769174178250156068830461454592560028529583815873241853697851300113115905682343331150076245600839583037876409248081499632195586817625519308645711393675382859403723066033596199923409279255430223845102011457531692235364743773102221178592190762312879305077435044054300695715929011005288469020412793854261687119464819916185496010370293975857225242503372227030030617251091254627144782321924117982774458039753344220246354505201751782681229075920424737379900055228796753677994586162538208604254950983939881863398648555877856634243119910126920460943794367540616972288387833207625918763881651334184213439314798636301700663584286338960620077286187410434947905133864084680492347466729223365280293588196709231021599652908761340673672909770443015242232606170203184943100638692858909659133457854724634347178349559688175566053390949644597848042654276537551339826222178087767540045539605962084662280310102533239788498450458769894423190778276018267473633593196315604951846492784727038812306470410710652297802020749059612759472176064599634596911466245431705688229918514691061625609434854823037312617262152954401356467840682122597260225227579801408856761633209049614329326828963745224476820587115762742990512629747935712021575401899061520431408688625039950501163803321841278330267693489662051745017537692734230647791295885753518480635189837806471335495748099305527276721036810918074711102030641021679499855909137052014371607161100472649367648101368256683949736337983215399682890884627864846175734211478720540830337696331646773191175003573430810274079846760609048930795308461389556166160083014465319495626878718695175096709069342339760573085130431832919190229684255914003305034417632235843984172359089744219335787965782358605412710004121153832827587894235941572779207974838205043102588274259743313416213634683704394542775282304516156059902962224175380932382616214675677731337886884888862077027617306262288936129447488505069725877423933952118573294620653803924080572757570282876849602574928032731561763682001319428382810060245460796218439917305936942964609035800167620277233722056290089934589296120608047812435745158360413942670141780880971765882247701050581875787144477304229740460623212292275574495949875555555841426613423003311809255120772265669743002055311006606950438129395301638926072064181465374709555336532324923144813966035774969597921633411307911237721292861043217451468593143003329690051396106452664868723621375415217241116608742604177386346328522821449460577143756283852733785235494960482876038214619137733288483532520833347730787676005385613752303290713472143140646751061702492078111115705918433534739537713103171976408753336033731062486764574952611200944260010193349697402346766415534457542025644061496446016531368859000443910448653614519284319881304707820023026445284295261236113543434011535647144773842753421353732357720166269251233681323030408013800292576230264301424653216086288708897611323849648642010559270872532956334842605896361814561400764763620964856901917716027233987443934563054657931229729124538160512510831836638495162117137979887265817021245103606649891457647488248472802871255083435165438069319129236767669884087473783499370450790259583275585314729403305908343018003201567912583083085135020936227428188798786020096287927292033137634704925399202556318995386906040628054951144807992272840575174654951754779882161520241733292703625841361433042531623705955983736646750871291410526798980642741980840664494233899998292481067853716197136716170355116624056309210619514531218414256152544106297501740246255334186449507035175064161105588198652001780383855869908612447938497957639247857863621808184910629753623220024277240948179883048227522311486924717536766066816690841781472434183346828461982282388774375113561149701763879808432675241585334565990950759035678504667192088400431136305306285625477366760920247994605543030937775537808026077448072753062889379366586082830942943867062020332849592085281560831136813661626498819335856619887189462775408257345810436636930087199630113923557715800965644667180362135564693611327977937659727555487720006944789983190785680442641289834937699944875838335948454491575016721197532778479479235172597788741695603875798675549804032173793382664536929258824221139424008884572085456140324989115659890223985665686396652945933773554314125242836719500524477983660083574977325579104225777346775578912162021041348374271445777793622529739292806923651812400957879900728908895907991676274136784193282031004864340547131200346732363038351573385590002116464369064490848844439897382980244290163277878498450943287543797617786373684589984847050687821133679591440948612800967843556214985867495963605359191268154311041336521482916066339858897876789717868774426810960503541486118011752759126136465631119435972993344970088498490242814587627521127965067109915467013195602074222144166649686216322349216860559239873430924742087429126934275647094174069389842798844630557155375570116838273950111213687550690609456474923947919226814617163189987401792836384264845455611393160632311621317279568377656501722748400142944078516409914844976097922331320758176295819724792649844275502797213628620677853437896266330912168015727727923852733805140918501528267268556383104832643669423689950030805055619021522473187750878510388481804629953152258438966411869833262553789678457874752869106450200885794614269021918512526902354158043809337188536458021073809352112599648446933003646058359154882944208637512071423826998797932155648741101037089791119572932548407340314805976920609248095860283088880379403411201298427133940812208963025746465844723466754965250646614157315053424786447983368575782511474908169688978666204763550527678006966294005302289103527943532800761110063938259870942026798745679148225856072885628578421506635672863025430206578054633885795961117822874822312879346432543436741097353018389537828752861052167054256996534326045467022879292357658939364604207257945965133900123675293877507567007504318253792713963967802159554947216293247630803406377095562686009676618114809381030943943221330291500572183703596370115423197015609688761494799160217084589944589081964066375075180760144478846261867399594669802663771101942853059777173598269125232890572017108973384784058801550672292590257992858990969249465224460664809965647347346515289053505359993071425054351984205917539281472114475675767503218624383612550108970804654984654950834004163231448631890325666775299265317288774106237363776287316786763785365769670666103226317069446843828201275478598456935780119599751772027018777317662558834609016674514757525906404746331453896525318854146565541345304052280828113789467040768667445121048166336741484274498325822074613359266783602395078935073390026384480902649199586997726619088954993152407997634300632951704456228799742281359952046758191027259475776422393238218905154357891716452847132089698410013429813317862117787738312255834763092145305576251025478342928153992435223011555063201161862683874464283113607947272801480036923185552042419343672935518901543971646807283011935579494279271626471398351320858128584586231294654821931359479951865596006752880090744672430225991763703240791719437165397632810934889813696013764529054961835650599508176511058064354929242146874761073008980907109735491463639179604532337727490096007164813479906200256178675763372816418304686813866046466627689410877229272942866731705305656472972663226464044049220817997512300222180740341282648561958202758057606607551519088959028205168482753647147751580783543012882013280214010189053058684993487865881728864600821547434262351290155911894794969231481231321922624709134522930592183950222044061217874181917570234953297739263726177965035845974218607476416763096825707078217323733394648039285379609535351432783659729712451305895153031143358154669517039425669521184877785183149111599505219073777471842137696222595245175714632930925346038842809371107049897597834080076776900306613307169938695452805612781497128403398097523360922394413314956179156841517905053859395914857558288797423730931172589001148083583443185444440045712225998860279179139443571959224059339829398444183860571489193624321720119960133371172619312473394967699662355065668903438384890524552487315759653188692324984334743735253351566740217454160520322208121212367147759262435833317404179600332805567686173955180092151700967383366041596681772370720007045810158617295437655134225843744537247467129984595353511845217761516046453740867189852131938946609064671372374791186825299624006696436150709741535435754064717558278599496983541661339856812998364297612255318894403660503349302142335861391020157653349766147260866616210706969135562066115587961530490462397886496885353771169892683033658490944157559529505065897202201890820304077712035586026127189702471823229875482211458417603315084289206887082081393130902311531076090214801612812549228605406482145056779469054271898180169590315703931994961230690923453516320014227467665032280953740809979200277700979537250392760732273612658449666976482114372364784396598368817752631708350512549601693949456473238064806864861786707198709961591343598248869606303368331908285618140561887283302243874638626502674396090249227617764039649803942260171467747141333927601980768527005247103529633734903133152750847726221463951368946857636471301389884116658687939676123078564902195881519015570939693682032839584194680600073688571814809994163242507275222619967415302050206441931969177585072707088087678421553440147637711101600544500118150746501058734158383537041421059752110737961983537025080825654767170771189217320192575569029527427507358974869026094381733006591245434520023499957472930176142528355059472979496089687597360523430457529876827161834683422013729709048580143994220959464110077179677483395282671701536337255430682973726553691155314062663556829645785255087387727132952886483279057802370246709795165754210209688659077198433488363785820540321060592310107943573283580559785560836960370116745131146833301620579341625959812421451183316149352492093654094233968822512364255534808269473170566522267302745158427623203744871036214877977552329472909250480838620589035604492417196527836667065709845496669328370135892759711059327312825036622881923407423209130056055630360556945185680798348655764186651304930479114053493066969110452537254798945665453588879494615647265516291625207887020456337535747197885127791169738905238870269404274766521408835309896692300760546409246940094487861491114008444186237368454855594241605111097658020180264255764003183567769039824814914014919545034093882780440174588998867503845590330113816170262639045061883049932248448095807316830870964850492955168352041539914382333028526675574773890302659797620880845315447205249230832874009326848261457168187100181728685928418922939360425506666326029171155340939506994286853987180096275536416194672120701117411137622789315385856462417944665978266653627509029293369990912424572917439612185265004754298969184001813109471691487310134456600320803031773196275902883749825582172474199593594174019316809495400244594925190611648732011732279639096274700184886958369051192361123547322842812580614363800404210618890485549644945471179866417995842127656469840349213418008731208488625295611921765590418056608854603140061709751213177245596820435454025166208209588637671128406391260676941717458440799581566793629259896835390867886489033389602574400750510131426053307688477300232235156227775046721541263911814005800611952389591060800546177190546181932533999368855910628655347979567840148818708226042001885651591587584395743138057269982435039454550959991127439578596299675742342492253751256809937201137521667080924535225567458235877272632521978306148216317409827000822313395952639643457190564952153253013253649543276287605308188145770703495432221166652614414379808869985869482344556452560397132220165729609793412887098929890354992396693429372297012822459438042093674615457618708487036288931852463382739904356640340663482071270848511092495831157517335867488191836718561246302165538599741871249155272961357731219278427572988356875698960631372968406399117613089237173954068549292457500964561709190466687055439687289132561711453783024086399335994466803571359281708734465755651970032482560087185483769324239984383530862566456052776867949964324744398219669247826231627599515830129615426452697529914740842692395071567697379947364257481531457296321934925050733788803035681234468252090075283691661627829091068153972237925626967374792420082991071094555254351940798085714683823710775337455084542713462237580217038854466910555830440980766325275217231979784561960603842059675381496230569175286392086797258800080567043171539076272724813862080436186355412152297476056133191664628070395070345172292638297751800298468022413827651860909094052726428944570150351760841277983157490627753995471890038242193256230643184853790483875844875321125535725882681721684573657834180591975427804542043083754944062504020447575575828723856291233381176274187141663812514135251057179915006505867484449347597722935988181450296110215224295586085274994453351846100002047509722210167889285929852936916813813158572488361767539530837974941372375054718530220679467313910556297612917079975835278048160819460764877324876779345979605141442288891478856287873137096439412700044592377799808664570333077327875028434266087819294585262930015886567998620602426938215091795247407910080769427541626091770251769041888056350972912099952038872544252598444786599185269140549098440404949866838173583730277185893546935730446936012822490435669139162716348122103786330454972856785835705256301406762798040914707757693939424201923634699202581066550701182420109074165454268902196849121924076111308339533544247587259154673147848102855318475482097849285756610952480157639711180669424040098312630580184591423826956888751459380842607251482097257915168756386504173229015628349924932275918117335238815023821216919379935463848443779827661903822004598374979097739751814975420774639870657522171559911940060515098897187163708469184536762872930496407484991766595746383195802519485587763868040670507164264733354102327971598078323368579038145414985501439532956260465972664877474452715457907421509913751756760923598202354211715385944377697910595630178847026715828318866031092624036026923282855941776077998972455278102161870799215199451858158774394339221782983716365845581724508151529278228071163831465495482835502504890154841582846157218287300433217176004555043916072039653740741056073552794006812836530458133888445136386747488826158158864340315731153761766681297455855841547250425977929662441212130754777048610099975193227538743702274672135365703082623681686018976619947869210225184412161136847742818011307758989359653396384205909626905920181354248464139456968415963232445805074829515548717342556312977102835022931773176653691302522961395594697443046222895427843088195636973786866077047450109538519859655289072640462022750986105895404999705576529120600746115924384548624163562516237946985796217121274978571993305552135239974587665558233028238509976187848398850460002554167892675488105758231755385418627451379535895583150137969773107619990928221759500732396140603756484595749495397103414544911525380342229058832747282232997617518789282300287677011614724383723286766959168517212081242499848486061994025311891750667927263766571595279239178784152003158041055958552627067336894330292999603983107409575985885568988159672749198233642841491097563163553811091168929520915729185250878308796842162275241969876380041326027785172225876086104301496858826104667474573681988922567303540807902312513862310957996034227716852769657112457339880849081037481537339269696359661675069901543495771103143299069350438087336300434301006266040410245779536349750490404045080774583456437640435354396355326798744495326568127489852633208839219929422479287322211854640362253396367993285337680335212799118161228644266008699809868978677967168682893033749878316299368369486326586603749297222765026457118169216684699298826219573439903025191439940260058204456006783123282375223180688047989954549381683915977723738833062347459278090295782766002400760507721367159188016808135384175520579623341427743130668042146875667695147012177069469843221639281550099215322824607648415838857843251406611431654669148687140386420840191300400442306893431249040439776587048514503259365344123947148051753777377893558084089235996781136371007371043405464610616034563831557297292083162310368247484323565544786636463777233569932880966820081349940294857505410360176929429001306027919379431907395523819258546535059679543999380091325273657936426128745810317036831958106980663624258380828052714681945434050974038455027217260815137033410049205669096947162122304223687731432967344388588471636783014678277149313999622675549671583506085022700865538431387177802134635822305473192355962219070028324901671057711577292935312425396339785222708820959255160332494248465279025949135145411648234957673416354009638388550186150293641686517591279627083390867831781162170906388016277998066751269993290054963609604186678344338463173219648947349873344941760078807603506363247332490843288816366825267815555876764938814234077792813120476124139858068564487072939535479444473140625632759954583446225002608019883661654182962638074322374306084699977217243727387162580988486047416255091297374207281095685210150857154209682146464437040637520196200100225556351865786598937547424777401016203346170685357102751095760543012197330620763071662472229233718355426320381603814729367955550773448574968322459594129523566045296941939178499019828365237649235401049239660610189490128830529467847042824415733369863733186662901457153128492793843846411087084734119525294374194484132295581924332704181709134737401772279212090155975540309175329920054591663873886123086651456674216820874519765176235134092681621094675574521564191153265189807366850658527849083733633522410833901074892130343250167476205979536028980486278883465916309015006440173992693284903368345182152565696930587910868965663139295588777014275769131960480279834512819661904853196647643093154083569305102242472001943722174037408403269396045607606901987680817576602502266581008419450902167033983612678143281478680934432833540058760496488546313459902312436050140498042961589384870051964751800980018104881562075320526069712990983488935702044797561021574660648694953401833187834904457864604942521843781956662500294183941691233028625643513295277973104245904181910001011052362735651665615773135276269586994968935031716926898880112415232732329941967586153370331589285422075529806947129181359061579168402833033929843014770079680877288706559369634829653647816692241647267601517854888177382500141510271767453183106866785661021959449139834660568123184158195350313860120940908243465798982697079888541282251541090305871279627424985468100260469631026619686238285395260797208473856131065243236851887188592227185034915334042882456524821817866342043375728111777093361977305295244494732550803068316192081313427775753487621174329399616491805222104648442996944295317030711436642561210535539169465098107694199025030622809721959149603908546769285791124102414831533515486960840033709104127108951471463426504251016836127579808237059522467747821620728497540773860090508883761067341118612958751649062919520338412662874229154310463707217773992807509485516028166058925700822722038181058487944706874436020545030080018749697002573835216922716518075036253390637774804393416057377283545798037657843051332722215284962673545417662731350633718647859964754451770158766673862622113062930052414907685074974717050646126363107260546778153431469865737562733939358750356865953265452681424704375379249355576066630302338477423217948184916510535184027936900407239714691500265925957896046730540834107746478994359533613478951826180141046585091897364515944544210314983832341461589639558258001890891044852918510570137553687454835028889839894840648643302059323050193386883546987794386087180998617815403454062828456945213629315953300600742085647573091467707029644219025350565620800591209642156445079330074460163894455279457145186513045290982587356380495893571018115342030765863970819467970288839101964371047900925194643926837243348477695260096860428558746562013780515056535270851547712469131495065175772075130018881967422638595293182541146044077538683621396997120861195980313072130750487451434178560136138255456689675884606842530408946402706189320415369007832916539361023450710110766946076418783750330811907259348944120094034662689096114632041837629365169937083370969623487690963939710970358036379021808989114721523705182611298625204233408838046600458445833418187067068995302204388800192915564845415056526695557144335940439230242335080286430250189560944362167591060137197276722472074527347032039215276787544876215351274715284163695420851987082169023714586518076613935691727235792840729290886716406635340407568068236770326990284183412862136049704186125805600032956005840533598754422667824851535097185704898732154404259623404110439823360619487922654271992116133693989866851259386652503152171578749922886168393491608346732098782540025991415301522491923294995671672720214151856712479422291630493493608516921806465318103976756761522228780517425893801562388762510454134989308049798673187683639096474873949392948691151523058532806250046043158644439947523999308622004913418399137289672469203276764243587776822269113666366353470223750801683984398954496628079426654931040735719885277798890693135598562640159466260375463637090084774444668713198289729900045396500038926010371876080017040573295457146483339426685120929854338297150549578596627363577318995822925645845417622280582098462412494009622634117437913528939429685599600470383750047916396963951050554405559811206598238291444058586786881143530357159632856221563689700038315186175183290701856154180442262787326555596523899089816552532678469740188237822502789642612406015750730070017757162140850000883898157051729230381918652888364582542279264630057112556855659949246348355049554349073691322086885374790694704398697631896277896984798124611070631595404840806749976729174298652238206181048227657377710710324894070871162162711848029320236164964145305903112931781016633339774852346599950277309553724009919156993172770821773766859275641407983598752345409689246187686421410717817324399415351953375904515159293328251697528783042595250059626191071277760926802971055024016332531192734772297104024213651348711238766657611955161188570998879650973270517549795986542782225567255427551063029408446245058289478001070616598704215393241081442806637261610147622080223251383876707420769141232921043832424128108736556133568587974465814633503853739416009006812122266809235755922615902360040190425943565686612875231442403252566768027511400105375168448009288402472386893873701708215495077635600401486551512485871141626109936256632936061159590965611068978322889206757329713806181919595936102385735958832845275363302305210780119699298397599997708322280621592581279930676728271012068749469789471483317183719566522062762201019676195675256325031313687707795355501550188888845769561092195749700557384576753156863914333762137605370843656487590268902415100163887908914742926851865141133293357190678794617276063271019090536014945732375949754179755917510433386991084603668673522005787320520760214028901220641505490150641915244137998218158837339374986203650654848074880281633146179374518250794863474043889201849647335237901761879391053013112604323562967984988534955859160030372359290374453107569550316839537052784708754020479245416520432864892561852369518641591147665581745405096627800826717878155598117794282486419041400941773927078984009642261211222909877141632985972205599417577560840758081576742025552457241758202082496988568565687644593033962894491658193193855765845753992756849046977478728409263161605673047513654885075444863999235862493283826052205299568481408270668717961896698175176257815737831693530379666896427961983417183422807621107323831290077546715403692808846830986408789223569021907101971170917877367073307565496506942047690414907562161737896676156752203705372355048694880264530380264108403958628184893007897604939807643430433068802111889935944747681162614504974813276889479116435379948838602680789402728624703712965505681664759103721126878180729726832777449784249177275504089830834527941618804100972516758116752666669180958926570558325848659317495257545570234461413983333722835822154121905312720893872466149330236213663379344226058857379543407608531791929327435314315880120144941039301339200396195884113652723734774529558796789244691838480372067916981501350988008177169865617323797877855954526635228154179630062710204430604227736436095059018400926535021865198950091339930365209970680400586314214117686707321697412177167399153258993722850205625922723020642683184390464511573676226277721496462225121229987806015328469748691466171422485051574634893726512240837073512912063505557869299631268607973651386067495565682713345171499575909556273695657942500030611060351055688535252430263239608106621300102506090697429957026562859800524717014358795872959739899141734013217113405663726600301667957515278961505655952514594342724441823052546057797117155876203503260365668019071901304930655965407420947327651405227469610127940760556000936546401180043460636440385623856021188987861358969099341528697032806216931045300500573776953866917209007937411359409123954237934987398434071028591537374225380284170604987683145753103074460071439833210473038154527208732184684175990908913206534274634060848853917675855396632492637311180185869496625254499532786105202600111541424410789454821915246265596777788784502629395954078179769692200607713365338594712050320723195094812849244247537021163566413360461629791585206374391538295977439406793477650945948124241854695955653818938241557797005369127397027175886036140651634530256566209442732032285331523922770597422759205685921625728387976509079466189620784219534555004503207449550545711648181835671811557147606520572812703804185021852380350927977022110886075321096765563644038891473505099587999747220335311192419657368720712305101903605619554976204924064464629447407123319542672561418350308787930488033340116960962388889515887342101328390509191847541779407118680294381296608659301480003612165894495917820775078535982337209798806015576333830338328184922121499689629105565625806287457665043040377057195092804576156878884322150451089858778814079461291388585406065448928611136024737337090539941821719480931873480759347031742463542671899935990241168041254559035188214340252956478468614649505994527918683923916584829160354007442452115751257890204980296742740643601351923763011487948062848696986862187618945462446538872329549783021257898189475141282127186942484980860483497203344836475611715753130269092424045222185868889985968421026407240446565317853874073021317521660838198764250641926758679394742018534130050425951164786577468955716230114034524701012584046265550095693210114595156974991779360577851486618301335486612113606234848312057300577998587328033351235617354638386981977851542103093735646262280049071872354024181047446992065315163126251435126679401635805581861192026694866497761163006445734490358002485771882388062872204253678527756327910690433174014409433091669040723366285416715374163113547041189536647991061621512444301426683149466129245275592016660157516664025552483340810551135893384122984772165106567172737931271330433621702603775162697493664239318383264374091723725075662188037403203639285131000227872676189808976773935358749888274784930365304529895308084255659387507735554864448065511412684440918456108439047108791543399271834622962373972717127657512873009738204020353986571257689685948777244542110183583260964952821084756537878332000255729041771462340187150265448777861924976710483760773339646070082986114387310398960147987658906384895531277583606717049174277798463809733249251831106885926414993038534365032158411103086589904781215049096905547420848243479109603310325548777380520308807772333833978042464090697110622073574364910372183106713505635762625734306932642889425407241416022050937916854065598943731955154671517620005389728708327852099678322208014119259372470416151467264635383132310129947609532447093853013332833001613712175856203569240690668245942271538154067912085763973285235623845130671231928027848742915562544420847348561939217309485164777861442023106066701390933723265781561589634875078854753474910234379160660372811728014215881958569745849015757338745087622290311045291599091086102207217110169572495160565786768343797568229699918502430383796634546123695451872356767366730097593678153680648759550998358799245493317109449227690938054110244451901275104261158899707310983159084968312837784465251651280651445233710001544627619113587822006764195860147766010627648687645751131455153401652553894576639742363134781152943543298488037873153026424051217762110278680817819697807727276857045770607912398364824830085618633307799185740619899362106117781714399415725895008512047786634430252019892848200200129431625886172474878162584349425879424254429391457853730098295198604217880881343221843967472804387326381405770129690183105155012905628969495724709863377824640553683718862430011620829279368052409261033559211510319052821103065196113568238433219036082366403179401567924806589103742436364074231367123327194747906569482321864282679097844693356088395807082175469669808313112847938104747738919032220419567754850667670255469291601198788399033532530144326659597973424816716000620249139791890261206344005615118858256585854762802461003315727801360227656436654111720898869838412869683748854555882423101500301258435601475999491016087028092426313213424337755185561919939303710979565204331775508248796514236961943555547730366146733036885037199209084029934151788673953826025333928902115945969026084132977261284563636514537102249613761189893544018029169276535649816166662849483776641388406237120975988618157778745226612901533511475467502118308111573763275892610224925864630649538010613062329740820622905054404427395169995077901705361104247921653672799171973180803079804995249659408553820878981977003965178959617529737051535837990810428343212710177187720192382976515897537718962152965439544274328419287412548972119770954501550543514583716268965808746918752170060145973243334114141438551976058380422430061524691644249956737330877462871925787301423031731441236942683362051306788226439835322253432389057702307211665257846411189969959977336065019071983669016353510084773196579398996052636527875341473341354316179702080558809001467553146224422983389157047955748008313660353621165179161597497098546740994666708760436711192709073049030026264414394969225555636005308339411988315443291184219477385984514076822532167559704836341351633250137718915240852731915756609825616601393731245294401945398845263697950257735184089380244878031067491247381487050621898399954272141983676525734967270616310289213032373120669132771327082744856141622377229923320661117103396305758337387448990712433292617990896592424585090903492374787195441034896268630598376525669212319718765428425415955940761396999378552114491937318977837482485825461856544080828124100404601842832849584449005535873538209093811902668189671645789432252512526848490342323253524679771835228697722931763889643029077588148130879421934175559450044000929266366137986666500653906405222275964053338334435693734420047053766810016107203376149489300909956787615962104094414114153788977292910441659354204014009716393567634108493873027876500271242575519839850476594543448985025476399627577259464349949857124363988188901569253724441446821817977212406539106525350858877391619587483337809773677748862112541652185127668947249304113171179852391145224208491490003340978795577642552645970974744336888291426945620864968679126169039766573146480940474626228293726552388487790587317273807245080419687388573216606064980901222193339111700549975060009677320351108020216704597428895389576678969764232602220170672242548501082757535663210875492587933000317067338946882768110943245631563673752258732318226048786288745611008965420275136566519220966770136799477506114240030828193928157274328819064140223474291031067419020758789030054654715312299823832684131389224830900155124618670962047345027514469746638592029188398260226894996562551411184115197103787198358970030792675548629340587566373119234713178226831186205981196893297153589728091962197640408758569709121888113033339029992875536586355200416507336697212615580364842526910586339656192738716020174890046865687528903998711202708981562161971925564604845352013639812125052664607127185237419266951999632843361210445587125275846394413980660706135946290317777094470212834003592602395430773511638894288921584327776103548097871259762063981853184480608535546827103380031066505345493612984812310509784015479457298408635035092194478726633594547253636322384037981999658041940415228904362573597024339791133876187087038402672668502564812093580582496358662422225470072922932097834018812554987277136302316837393700138580768689254701419165158295613164149153849958499408976632628180298932619201580586833592525910084668071451685347623918043510908364909851398314264139305463847359197858310695290355075181286944046439777481912409337560278126971508073646538909297895649732468379207961916499549048870296083472766864669232605257673614376021416143235795650424827080529958254182733208769575451441046180322979581317954446252897085960337993758445439796066609639324956252349127169777001387879874152299799328789120766996292532078432639922474948164252257246839250632662916085055795585663406165200880773352063572765161826232362941082901134311544032884949708606048786180299246023284715130545639205822235211947614648112491332915322377426599766472637155030794050286913928837641083707474229492914556522146589292115046105458946139925375357855173006339796804406725821730906753156675846641297766768840457110783439954593935536647437755198284891449453651083452445215273600436123321292155443456832279865955129195271274303773101561451340156204836202153789331941592345878679603001503432924519773330997097032746807596636555999406187454178729652493149802470283916246336365218852532344757589222105602318262337865914392266888959280319336608338482605006852418940398739847493944237506372431081032663053278014081159202787337366009732801155473321551374280688057627169023537940413852545330536180800281405419149748606413592492406925964649515624670618698367447558862172148987193101833437481466399288981489342473365823397772939852688836656902258657278234925135506623588709230791351764329293251652107730349010455398383342807188073604226399944531470539235965575891082936698598385531215430146080195722034962516357292516382332254918383106180072670843213223172308110734223259341181231583386353295178831769377150266888878607485551978854838188446195021801841431568202189876646012350857732343589439677507739071978150125911015996768349339035729078990565754293114531190981951514153232102503352913168885644625791729300309412469572958056192489809522559900713257906120464982930808046454069969582439070246709048491663095069699846638185937780171792039573373204801516814951957009752356734222062053891261497001911956539726903512194069696285962516023694957682126299838981400886638936677302975438823104136437640040610286978735751521150951466325232050344728873212416384692222444380214245121919748131374816318813432026577611679058002910403361416188038554231834243302129110849127079934904181718798996951748773425514940089006320240260363482640407251212244889380956630524387795908892414268060430326895425782896807043447888134411029724393977522154121654154495042972286788772913902640670690728653273361663335177450006822353178296366294777503645896700669624798286431855026413529181412939700623597153618373834443393997760336302158837357334923395816559358871455341347060779623247877881970518759063296598358023088788965557611207044286262604019501055349280302686558950883711159309218827606194363006853168348306375705214177575954020784412363421506127590599431296815751472516098447654858361055408364903637042216575253290839413305695445380164428656583154059278107925596772690953996529392089557353901128265860558351500533657994356478729237787820952634241097271925141536684720951633035331425352738914669776224272692780096174928780347521077314936763169625612114966175284020201117227256234082435572538489592886149913605237449724392592627950079578678371921904176281878688260341605460707092535576878685362937197002816495781529190512196523501628603636071992369618510777053268446250782795522278100206204698236468422216522602256257582632186257497946739185948358811530386138319968646343277980491295348451195155242438776285662648146414345455035076872933971241767897988130885110391875469257061262009584174781666277744814568526172016894258345933925252114516257921992393687565056683721402274038263810709863409685722660392634950484869537157422505197015051662893563514916432322048530316672033191404566627118569412402081759838663774684644350141934719046787086771874566564922330026219158450315045485485507999089256583154907015417376784842736445786069564222303871753442117265343654252443345566440537254009447767541819411357440705181135216514326994924526961397156571564560140269953592267164862252233119964977718928521579523165922028489012223464250239729567938560927497571781776069516698154357616811806959698658937000708414286237729191422656717711340604331865068681796421802974362887097648427251153383697410733198731693353923455777613464269010891170819029147345711551027805601537947259821982703278037847942264687112559976848565191430028312307768469825676780382786258794170362018294055805583950884541284054461572325334617179229376158725541097029945169695704400348338971100175732917264583784133163779197354414140879772258419124883665172347586213502104652646706510315820973576806318646057504157291915109459251753852258459809332152930175949939242024363957414648035024180281709616656621243533430210533859774580968545907654589631862199170988787823017178005788221538436600593040752713485600295982284660883845977479496188299413957808963207589210941193487577395024955742785215601169459210232592616804199316072275857513663934335096904190344078054046479544557276932747704237526135980794876264536897196609978654170022604425274179447213530387007376106913498665140188506358984726087749586618778188049786663950412439978716925446547434360870580981047057810941871091536095883485913044748167244644293430647117809762848330228484318985908014170554008653919901342310889513314877124129947015724539681631081051156042809274731203013008821987270534007263709505147993660572746009714283050829477375908797373222524356883850254148777446777953625204047797902876800309761263938330527143006963693352527951834048657543671746904920042347414872607235160189820137105509777279691523904595427750775839167410998990060789888721769185107866660560916851002856171160131551614493921223358712907583524123945254656241198855552986895793533232832162414927194293400912394930933945866309699064708665576799111626784136116569153264928980454778159564634206210054930492902545863157671127028208338928987421389378119132321385358782785404552733039447756283150627398775217084357464155832745697374944646305818377142104422191704323933186293312275184598143832032047661383050955655513202618216388073680183567438489247672694175156011825458310340102097598016385676422587906983287566912202878979631441213224934739220182790758099769727705084957533135120584875220990378333802227136831402197345270570601115629005315346984956254472112544969951069955532735356364915302275520815805666142694167329733806979987832117906902613017713484468388495001931309341288066145423650024443543599656005438088764179802207876464256669047924154223022212525314303351998444103746451343606093722725108703209235945255414034577802892773811128416279977875199980881082748629776042825238215001141324896639618689867198917537421877988354759386529684083415900067842216746845729692410391653937180147794139991747448799260923134430485128629508652789603803183361704904266844596010716428652090593930399367862814800849448051049880194107146727774534447002677495210080161669968976461922183447329994208621134085465288537522167617816483850325221854708090627057548242783807395011623613362162743422259965152893659912684756841711552950290632893038964882949402715853690657601558829410288835456766294896224572279023041741426706278893610837950274830311831336153896327507626455157281922494620222569346252634992303479080044852744149019421232434989418340411769918826331124573292930434446586615503664087671479801445909155018686211955083935306227720440706527314966942164534086407146953655535322030059279257116579644614243918987092410477265932134765941624845442491604544172185002314429214666372480360749005208577340600486469932035975206187924881495032833519680611749849780807732831944766723067155045611554314794916152265084351678607792414106958584656876984807287242113861070937903288137538950174455094564804920794783276491823770705142336117006127932650712176122777906901149998303471442917782315795509180965469082007355138671738808084597264405357688071743723143113492885742805533145437125888523883245484659769672234975066160363510385741461092994874387338752022721789136941508434614075156960760815170316269183173328750781848259779723191176229343168605736874761253240632262834070198960459504131387201651377668459708493774933797181994923554405396182786358294080795483482394898641322656384041042997494170608448109273027882813050445234710802686481304218916781592527542160026130379055999947382333306834438766826208444955011007409975574649090871001110295000349053999019646740482141102951850425446223622536343337819205617582475406612156637018652383562887769881817523176597005031700950539630573820381388642156538209446457980732363744355334686965296451982963451252069236610492585615735232860602002290839377426041373262981930037805878749061993610980998159472943577433460094252687372696481370648298166418488191208272023504308552771145123832785519216906286602694492484515614062741128087056403921963457923990658334204125063094172046573005463858921538613871806813595256464766464906467884718826604949397275495117974710474020353981569712725082281651697839725655946818657866145389109394936440774165224583522587884785367072360129160089759159555879549440105990741031589151498871375894851911856037553761008474110940769365051519436045550154657331555856029947287887478878351163710370716222179474650071811021479058425359091750475077335630041542543234348437148774521899451518426547119136392347199423102926740119516598318736212935651743605105409706690920391861105586746324163200704964204900084002373192847689836065811384670252330934617487984050594706695288307467588300950563440445221816144082695013381828798526209868054529859322567846059425637969251751482833771604517294348042391439734430368474485185877670526462240512692498816272867999588698922212918237343929763370780657327388042219053009703210846493235390281688934909471952237928054320213445312253151933815272025249277852393789785949437528860419636258451120411046461262030653653442075383898189143892084019855080699980476041530751372950881562572425898345471574768303068855419713443185250587743378937693978956331542063089307214933646678624828248628592919679452075243404586155671118260822892842826825598487788669536578800321283395011741983248978680285248980837368041280150880004784914788617845695085068295847661373419908204845338044089137131167371948775763030801171410500034400879974033700841569490488678276065443783695482416497735682958439414758446379424195053036736226833343141038327815348303085764101808812553288164296422467819075748973749274007324602842489925150260297830897502698779242561659788766139137897179525529183071943747930892604751256478384800441133648535632779589122902514131962514758116983490369893239760576794888170642418959394856888894619357957984641039417564610739020771406175444731836621971254704532212173665353582587804845054316181762517253972693932111034589820164855878692331072060141903184129371600918650977049195037105137525643316691319437166785489919478554774784413929961589676381227046593281150309887526209324822989503755744974365276498906894707359344751345250336495710935984678607089752091562134229804681599382137509339269035132061657150690710023890102194780296538712842952630634823648672130367935073803179746974814371647187081743327506395262308212581381798051129855972778378708286698840880722682398806103954890214716848137419711363168043092997635124560630552010399272301288508910581840363842200809123702376641649227658728392233875729339144847693535156329013288059161331341212864080978503617025137004944533701441821795201018213807615133417236069923996484753142229524873150728016816331223482575485381572137910462354836710031357201493509006404126964200336800678127516959767287866982884888004106552312558944406848006585402157402953878621417731391660848949085569110965707811279329472905169077914765126140375461342201889374591621414412405905037599981116332067851119850261495968870332484867523710167516813776383244485811559517672987587280039709148693292148204866607650862190348391595336176442228311782826099446770635586251880993772286022159276525132953428769348181217225435477856829523173983646340085000872701150927596084548751463070577221731838150604062912936111798409720577954982829519289922868719167647554481541079226444078101108448910676106308414487007965739570159365062875918427191905536347928575729382461327174184061875529279052034816284733556314101893784501312528782698835825100932486034386972747419564671565388373136651473255051845827089900051418634542679271642995929956000433820361174104329225556422303408700419988588027147447370136652190612981518114351175809931488616030857526592887737571602184568239991490899684383146769360467613968782950073910472221739210294546202982163587667684532370323021288591953194720816831135468571543649907691275529546938329212573515475127127043442722035116060394258050086230649095766047821487479964588573480549065266628711835636385401340624916526484216502654795460647281489119179960482486096822075275957976192146258252788350867074282694592601843828157105522834152776881831242435017070453488794115497125473026674514404839789404768795130206755992018195376021275334994978788255506140528933851700424172313669137940819023529801600969517262028175635002823146078529133414548687630380216240422505741525847076416289347298386114950902228566510978163906481205971938005057098738964131795857727902640700984144998472920795062429126173356069400470076834596953600202697840780809290454458257598985672663407807030180032145919480048650430931724383003629681405504506472449699731662552147801632626045071627622775661715737703148653059279388152037737892307168616201028189558915334851147827547093149481474639639902784563775202916093268013743775160931333208981921364200878194949978749259248701262815364902155023463555447936242218114196491505463917774578217954725507458286344992057522643198087257365931142829736128758904000625500248926873269948993221550572748375431102775693963480383108532982318829715706302361675463126178070357847024714454498551629392706844893762860749461575984916718118791405831942545588477029881798650453056665043033318573308724266336948116428744562046646531012052285507391309598076475228276110520018285998586645730876400382970428083743276225382451318051630534994814047088275102530600626872676455401695437644171614967754665239913118995989830009639126966034833129261003941110569610923377039726528885977728843938087752676389728979929092052382988887049269754657161917605524944759264665647416580817229056011058196188484996552178233963969918170321557033312509661364261332822009181154121440919080581984863767080438848082496542382139921985181309498806069532452537773994777147892774685018534836323584578586883576169382361253159148270962789653030060834039829799306479064260821558483442906771032934944243228804002652328756858041775025056209075155365622676864783730056559054411209298294888962381679239024578993217588558912133026388687414512013324739604458736071264007842951989256091262505409740616967797839431099286746757004734611117750039297542369773616636096779382916237770293341454377380715160338418078223917599829979161518846065147054178427430942797788404329714159002566645120190577754108909648274192571248287624554050196785429925465207037082879394400877956689149002561859361139716359196330062288530058113068185128509052057678252934686489371448027061489197418226327434545226063027415347404510530728402968662832092159769856636006902694263540289199964614374337238242015453947015564972452091396266437987789948039596740647987454683662063676785612772134683438103027998579234171523561422625083771783605789616041180321253792169327144858568050103001695438718659812100934898453825773153116979236445945996409745070911831944621409261884265257343813996373147817518472995541366196427008866663954092894897719546348381493174254632058012053670672080629883418966438684897078408768264951417827171608918979083158047753870399941000110480637416308317094661626148775120199505562465433123442679502655461959987298914171547554699402928785986100466411397929998631907342865653944572050785768613461714372721711731380821918415852874956494424400716643372372530738069410414099247375589028113871277597375981703253728882156267656571074991055757030428512473414736585866495883243117846315533166029192913708508009334610172276400340339764510146185224095282426997060568431294001101352697352216167688436924024152325285708156495469799281759788935759846917734133812204309825074338234203028431807901077090976912851047866713040541210053731277662632822573133255338785236874068186483339695520980691634526857050361977143888645976971214841993869155698469305357581420771510014628024277817231079489362604082587829971165128941316394850081962846396663369553540841887862429281864293045033873176418891130179002082990831867637528569649451560996212349340657621809380575219073664740045538733128229259753333150745794395420135435816312338933103442659725485652479403678084601821843937917556027181320981549164048384887275032685758041946371518302873141100022480276782003741407710776150325964196080798089094099022245812394023029588135361343042530140472246386781891835190834201609873953561710645108744091443512497797811314378669744557636466628763896744469754188835954197330686201443898488534588745433368560061153193293713804075150925983434538933473292480825116712864923014118377717466194722203712265392743355422145845630206391246002970265254186487994511842921095411848641473179634611174080611451480605434645126695482857050748339188024151898809478278095062012351482028556633350596589455415371664463162217959190124778088472099515807355398691036531839201783016702086055014965554484379741429892619484057630549199510757627583606569477397782257142288167482066282171855366170868509275458771805663369128965509164411021042849726111544505307929883827648475934311055473348684399057978160768179503253579634918525751706519015331244417076256860919833574595893667178122173109710518058520127217987546821521926762766343364258124531133235074510995601944348842699578459810219037132571349283155724893376001636072457108561431480514730166124632764509194232476266430265660571988812451561034401366333432411530289500473938176845271353088736577900057910074191869533521219297788138582131295745925013389351489893080131061447068760498996457415200711656635432656765971575766588683826696173467328637748825071145872330570875761787953055278280963384959103540065643760475520046822917073972420539680924948627558520146735459181801424553493130566309524585317042218495851239725755392458939600533484655266412088481919338780085210902863000706508293864063337524444802932334208996584252574410692236034220696623355951823558265043315858260779538473955479607876927602183006166251589692448649327518083249242770925569086785770680301396470974794427103339588967352203998257933457588105886760393436371704381442262625158068332784766000473676169546903724857801148146472721240119540206496446943744446370582091609920874533329976631587762084938828941778870760726504996685538030535421932850043838116008186052176699727388969612002165278835617515945328851749653955868036172517835228885300563013716114088598548722186409532204838352026286333798558247474404661488807065002209187683076731005212192996565274290107705320212581539544967208011113758174225937399087750599465614107490719005445970721608065829094615855785461239385985024985255982316263937539396718336024019981835148062623447750595397299566562699432824833860660279818125490012181571671957452731078367820592716494321558534680000894094647364412542809536046928221419971486069149565885562499843850488490496179013994698467345059120080381968715580290190654148013020487737812579241534566955140929119929547815989218773808602921446108476364417782280577454103557986235979611717346367766479884379566519023700271178220674078445003090673425162419693315627891335086013728419977084322296519569483845911227805849190631433062680896651864613924681583738367673427369829932910332790567928536793432857439275157023539067255123808220992913513404402734858816283520280567014919256665689095743722900606425882984110527549950397890837387870710910148393406158191604284500597441302732833640289891854072754673660682591311721561344525384570585473884886860613243752650047591128446104174668394104256762750369574253963669021917164553076771238889827736242211540269640451238672707025304524819214808346812409911549585062627446891895870836076907579302191965923891943670327324268538895241428545588240561399864372301720963180472146939262119519649779539035582328754830706254867862236537283323739869096899339433054346900590787491739716922433584105897710494683836618091096729395663902799949734931972919860919750064843331770730422727740721443992637608469525827557960940538076978640863382020970904907983616925641170218668554375662439329233670633276991429727846760666613227368681945556300786197945366462773258600737214764590261752047925064862221792643787253289757353543422541592210936802801989966646800955827618185999306582552865920238041908315283015249560531688829263560468055499485729711644423791004662203702692432764845605823586149933302704223860219291734119543997647640406244477474070706415946306410779376344326565130531353078425345489364782559900259705248267570839681737145627959521698218990723379258628012316810134777521090114338405691109707739751372616408898266734438671705751813045136523823992215507590212110449262955416532267693590424438947747334941213691337844359507693687376299300039415293547359719253146135888404001171687210959960616149051463960745608097095957687241638942585542897439194361495998587459818141245816270424302442288752880327096163956125134377253147505653977278911452931325734109903368609069118144313565091398282635000332957849271825313216420124645066045688408779529390949774609690649960163775463401565511699215814254438906357018271122411735147695727429475972961896053687964169975472813966720498715908435984923040523112395882130056389751693618164201333843891284987881738419263810961083100171286372845195324072080983428021698457356908040827917264473894104806639300025642415553625108274255076460484779397056574534176648045448738659643275293955369858333934390481019338792857521695284801693354268357656352472981328711115661414812693926570141451481933044895507717656371830674005407838657071195581662233877083055836657353133446004554857269384526115337317237925593771975788008463455002276193229505847773891693260252022780241670425748334825616400058819500832308049057083709261253658343626885018698677557762320368374178401439497994766981095517127030732316105689337073414223325214014198040581047127690339899350381763215879645180708044119715824737785000161882258293598769529993610725945442715781861440271059535339766828118439284477985018065744504251910121147259681961552978467160860125846604078823136872654654673488001976582793693200080728798014744014759514093371798671268039400761575726548355889443591843671731848667041519113009690182946604597242218884134208546887679404809653980282378362696738441434270386953000379970010771596286006600657730435880646992291971070974221917509934828614467278683429048734881934959028586723439347028922378543754757370189680366274256525965811303027552024608499051991363488582059615568646540781230547528779810976857140476096285357352064920060536222663113746939642634017269825326768588177606347316899831407777325528091628323309203326487474034466271154041573631994881603608047973492632061514330517468714304280643224691311987356872363466554743452204828706357309924068700255652009775094649384292186610594651452803048237061335237864064240826102266465466535269299499035538814033378323632881665243935226676086872446900243026220585658644426204640256308511391623854004976160201212158406530689933020849048987225193261067178171761388633860008786709670180854573504334932874441737816793675212595013938219548085923340123121840952750935467374679936671819434839506161076917306705790525040895826747377951895696109714052514512841739077455687558060625383230976895545256958244190850476825781085713481044522350560418694356113697290737051315171938769686329968283066121120750991465652896477790764469822695839267510403219991778548754688373813442461860177360974594639716699550705448800492904959823182731666232656112674527676793090724594793615349550991781555785018333825988031555267790874822792553665541618067838553913142219733276121564072781235460787977768777875743695644793792346624523230678974327612258107179886634239797190125755055486347332972331835623437434496011689597109725876892169647497328786918148222702556179174438425964943885673437062274939976094748935302572853426994991953888690960755000250655951912015967467380837671454086847983637625160689910280027827469617373552137523261752983126892427161336835745846477375871422265674749210722206208533332894965610447681292637273399253951079066332632322397002746784791748495884986216212015667455087948877966593786227010767227221899528023732348177749951153769522212846542684518005166537907276873019438458713965171986906263237679685833300877461672700184801368084006128422784870743626735877663493710225278166804203470346043022601459404035573630920593613192497750428147940292253972883143137518279617611036500168170332250607364252051258308871624578988514858054774914436529355899798500868921668035587385342770527469692937234747910870468311867336603892284371527698305754776695562674980224330746853179855995081814401785777443886882190746855404644583402907790051327571335849213081574553834467054221273272733979664505897831460026255974216542302284151131571129647988304240070175805289229293178236153228495339865288281611054213859013248825444781362125293249159019462342679545146326174386467709326820378180900835673915970697400911476352844778915274977927071564459315569679680683371090066246414126951283051659874613578273106240199210794988228834621171298985176429099021135960927735255401644907992102081068028933920119221338394971687842043102481884018401709300526321617235242694541834208955702107089069441750511230914744047509225457353535689592004597625557600684054197412702337959355274148656974504893174170633481928495413516632962426298003659899767515796642806167001952909664144741935396618222076619662903320788958184805875044552033332652791040452648779901037470435256956661799459349687396556370334754415405906687313342914839790753149078960089031452330352601992168832655072078202593261256249762289859615765411183465333649669774579668705696393327559974921977509910909198069398368138348230318328237541390359212452829255344824322372427167146542853211663206064211010752595748090011713238850549581462384901756638929045684356664329789939234200845194941437309874106248014725167403195592781052364244435850797283217422149693919944959775261164817456037188907450414462564680937324532835294128822824498764474127806346926990312336000525812106325685262249189975839010558156933198641638960378388998072705405632753790807596681201716092427015540971314189789359028064949411216338538432355333051561080813993515879770288866014420529370962112353893913906338034168924190760170612264229037240655912940485496452364337088555040372051536565024753633893824353026234858679903835031165430864131684332101804075596819440812786623912629701269775149109182847929210620212679194295922235742035446360503167057107834694181242731117058935225806825101009568812228154040220955815287355098542329455503332486781175641086556717003181585451878528952274185643609372281370350824452855933912643020236188055033686631417873674262493072365179275078997448062093340826029786644398112389938834601470736835312320976458022524129513339180233041034630819845833709838094896891600104108594337531713626450174739442695479033126253238464851842978730021402125037652652757930054427680199925869302283656176384561438956782577079871761623180780309934345009934523511403601669126241293781653177564181511102577079205136848091447391553066363036909473071756450152261967042359312321116420685048574288437498603698079676542527108536973840832460289160385360522931679561386212406691004460765845688334347414774367352818176768021986399392281415375912433278937644742754438843782836406934057299910075191613409778496995004709846550586442842657237317828796137047465756423141828376863276547982782952917015502944401920590976281031001404537805978614028094144698768488161667161968553404068257391059022174785707311578291898917590110144471793222079941308170391740513568363951849370258501613826910048130796341970781720539134323265518533513405861423102002185829400854882608478314694047670127378964217260755347580558124914141918927090564233735655316972804787504766535226027564681458620084269860986503683349240076860043772948781612875948832953164193826705255532354646000443549062513438654443951985487757675977753718704078535131819709420566091401432661083750678409260367940878897993608653916621115592544437263397665541274721188071386044765409782341567383528843923068607895349154070826713863558431760993939317275533973480433164693803150207296154006368604326821305464664315580172968770593424947154643865057854537121964851016289163014903768293705283027776337198172153671738111391680077587690545811724222883591908677155762143661663738697505562375490016540898894175791853236462152507758033176978725218683488683662769432429210226500026004885331375621815875723922467614362366744498853225135000121525967210500211426219232635118127118061658326325003115792994651304662490336999014175114697203383351140204763616257392748965122675223692996759607531298649437875768195403831219815621732018307037514968146081479498391338022987732729847859049931581797944744818465484360020386031976299225168494111653188587331201644833816732335663076805191097226163598763451065747482090139929243912977717530289180810158374315640114386151282294878320706555022333132835893323600646962983230653233335450194589378300940904530109535025780796851002593020636594768410868980771602059494093747536981544503076991060874724730370634273459434121600444483556457597489334000709069807967594083001476353286247531686236924246493827717177399372963778263428937787789119150796901722446879807686546392422048728262285868341102772529969976156956344782944634665977833222032995041541799186740922664065425996909954592576076228285508396026828626794637665375738480432268737134786363375808608805867300946790538065529806624988414464006338140033818106125746856343442714303153009875366042135423934900261696194930810553442887271745404233116518023402431437763802770897833463950672056329599388065407415213647648374093432045422062128201511610536612547782562863806651812857702690639406844520213850282634027752861708586269647133293909364670634903512015371297098357960183679132347725432138285617252498502094999602549943506850216567036911509928381499727500058945269628436670234860622048842972210184139098601929726739376887493649974502847239607880482257753653702514087920251258632708164485944129050416550215959275913999536674490778083475633100603786490317135036286663631621424578678871098319304528919091711026336813520473866750820746831582445789023631276263478071665627549708899046595542370536157525876319715507271769816341628051284813955819819123094632592597207959282174098941685288238100132504169911542738236841720718162568573617863853870449464652883234614234723884086152657435768951941310387204042473419640002542596073089246453815757698003975761116972393586497662640875862235806923092093635731959223399193869417357436982793430235495190303019907042178998435404468014826975094284500669046934331911296516627431631598299972719129818215024362128075019856457945472232320732623121284109903919252719110178389488101978487011456943584705739202967103229358483705823976871025448004929606944464183314805692958255885726302032377080945842099903187309343393111307130098648857412793848228352852283475358101053386624188483068086747497784035085509237861984859068648966283114893798795138101498762347729482042120059111131518908598615040653660673000220649188224678133179474113352393567816130404320395214427112304596544837545293829144871411107772041537477255069749551664420485773864121152995577436304406433780395390672151161101720213746778346478837890023115789726126279945845408630718538626828864111418654285053271110677063530693749895864004919927452688985364052476998628777213574358548651989656445648327848073063750204604856405289423732276782815140759243819817941146520759072037831939773292559215896210944754826820856159493614264685290462793313488807121644535338104927340249306714843653027647339035317967895252247693974920113085797782039572886774268548274692934609541498368555461333333401500250901387166161280278505048780655205881551705229112480976227676143505559830100741765946479910387185273895530968787604295446803569851031117799612091738273920504497976280225345145325845587847225663018134859867114876139454286329665110219036367892775843304274939205417954189495210371770693153036810302569534282217229783168407476284106511801842222152172764709187863392223701438829133077791752138678244711677805297798279870466240207814050316188596686367865811227374462731680359648791482039431274730399708449521507987561462049409587187520998189085027814627947817701414430477218148661346147044228010631044504943341069566217921439590243398672026814748001507258284859567917980537121032349204763156652141692343291273842265438632346070670111680289766924661056206818144799993209935834120477194848194866226075236298164021349602228535802985833698856302721815310972691735552585392984700367259632320643326790783040767421606077188885947027205968042519998458870744153772899360444201215964922804720290940631121152250729775998485435158426700163688512146022109633859287599115616168315652740036334773735771740971886169874064236198757660238527410959606693778073062756013430745507783443910476051132589975344406135401756009497411450447476044733420413592840295401689247328640987014092521995589921764297783402235796523759950545133057224919611182736265704290566673219612886419580515294637916918447203678020997204098368255885295563192275378024845072145058880919999617670926229863858462065598544901643248538895862071901542068092960536664294112369711603313506464504068990375105766541341160392753671254483029625267936955268013774586682624202800199546631634453271987602819012556338247954423083692815904265862622243838880913492718119223795425578194247083050424569170616265612632123921919223406896948030219996942598924376598656757360157238716357894902613466817911889293847625416833333718020957823369005363577389311624171105522518811959879440733837078255251089373799643190409099832559643138742654276777347603481529025827802999901707694195612561233650692747902261234973831525325790969960020700602347186345098389708942639899494858819778772128669053630131120280263738670170243851596938466952664833729263790518858674503418292811769139732002748915838914210615818858124573162738470685545749272038333892139083783407425247729360852316514670341148959320169320813508952591488654262629318664934441471228350769837877613393928114969209464336655770604525181541668581099040877085380175672337470756830330054208207729660264834432778263971849527726855172764749814982697540179388170375720520750004687968993762828325435866965013549903756384195488389896130918570952058941085514488757933352625546906218575662132438715824485007048826456942238254505099496861958950951236841588404476585873392928324390749093015825531262278153287581805313377585345438799802807390809149863654950367363937891837373088161052017245514611377784134115254459321702155468628093231180717773637104382578576122656316020877629056034160692167329197531899684401137447557346595485274601585978565867710203616951007539550929328119484897988904127041818975210943238205233791471977452267545348527161375197995919200767945874366081789707156173635039911709770623227486047822533170429774448788846379678929358623645522520386434661765178451615623064016330389638453029399113986451059908140613072027932664951113111554750422521254667497749239858916463963242988890429750228287751678224275296654808419874077031833688179140978985628691566121406422842431295046093545409313303885983478321476897491167780899221845391898601913914292300140938898620407428740876509392687153422835772332664930102632794118065355097600937053343905119097133961091947433270277142932815318771260266027827408894795756629414926428632140645942975377930718094583330791621287013220904194538248693968865824926714136433339577225177817704429764727675024802162203132344273844782056058149322931387335344027215096800086927851906680648127963715147341830907350049714317901258429099676637215796044418979158559378955694721587070549960647572289787647664178371891859594515226432077141020669263428909529450868524998520670265530579442955605474726022087855979606580683865731263125819875448091545720176429954748763399263738018530154658726294257502614396359494781836000963283738684455579965256123658290638647092192512962918852561030696500440549172966347906786763082523049269061810405910720894385276777280948681801090196272690540266547048287757830582032144560756593021503098464119244118696587051271812840235266648037172886657017829712326265588429242698954090186376548819019973517838878989036077861017852262213035235173615292915340800279442128824158514682479011673943051078968975332293891201255155489216316375976886966944340171288440838542242407848984761031328332654845597963960863898898711085478757814749467640430057038041206349550022818903225819812742453204194371338243404575224021018217191083636196302266911651633624868870495889363475141822434035243295585665693145984489206337872424008052969895076153493020301571414878385091045161173131403578139670993510157460975601117970896078827180876570748514102146034874156289181546966641930342711154092175776828288106210765931868548073998614892715425608473541480327427338685305498828618759508351412730796207865052889416011628673795881880506326956513622186957340221942017446963250916592025203028498655054598829693431446425751345664817974680998878156183823859041556434918523571953481018103836955800848843437780262239581206653568824057700872700542644623239715669156847568555518431643700869694289605706257650207482370460032814796106950639203759550484947385524907661602931325333659983485716896770426154969003176986540763957895153585815961812852476680841492140624377926570519806576759982069112291069900299237969190168599661761981976385159547407575297945369468239282591683348576824179794380949553969871502496921980027754422468045263320168475897607152273830567068248396206039468206874027066177892323043819692797436107782211574453325573405329505308615860967191698140004060672614807322024403093414236507781850944278235573216730388726348219772245749081957704536827745349259201665127538628660037161519723027793203501343960828164312517828089298949355291465513934021649493414895287001271921901210270343172330252159532693501899711806689990785212982184833542005682806605440234039597149324303340249574862848548461947313261550543670301352094370410944483230212298148632538823452155403179033064987188580204937625681533773483925922200977723588295931150038918500853573897097481500972195575816298017181598233205232353638815780401570177867104749856601007075576759130134610280078916578296671886820849731683353222956415917397145413811558282548107399875126011935596199730644307051135237842441064217776005492558222679202519411483227461230283626966125478675108220877780386053231186308933055047881339085637535106769470069819981367982837789034977375487092406196044353706156755557322612118359034142122355630369957692726075082055673995819338719556929947721806107229649858348438480658031553950137717948407605023673199631387627774190474420894208872637854978544520282329211945412617563302836530064559261065871621196506920086627250099668977746772764145697923065161932895977463141489979422555386598965638366041237443856826100477610560728857378510207126071687927600459894898188203349680045705897753881745831203176995181052650905627446085556462591443766426782524916180214649280817172013758259167689719924968704380999618516122312950340295758041091268502397681830266307372667546007023338576099886926120440902453831162753311877528649046169072690120664041345884601835748361961492044062031837335692956401311969469192235995820054945409469978992571352647175080908232387089062312928101361551449833763399016053801375008036029003785736006566854926576548872199055612525065737557184910755604852220506841728327398982758620169396687152542616977030249235791657008947006577532303901096370986915123472082299915914816278628142718018853128321871530751299647877592082540905351802164852213037787557766073758425254047161670863112655176510364587280928205147971586901364085003404870025179660113604268348962763596685790952127300082614902902671186314139431867133097896297755342650395388410897179188593466474684500069196086125170664614638786416643333825463495542527854234574561407394092148731754454468179629129259994064053246345005753906520797244578160984295024629848940672858433160842467178177447123565676503112284243848589823098355518575376074060493995292579656684121774515512840862991634726815933845379514684885442582809328625888671070097831685473502115627541517170847456980720762900153958519138597093155022303381873975673784939265020714248073315923500643475439559878088214737977026757624900603314829549200685425824284313856792048014345876574435709439791525638971865538791461246099066251331715098318482535151885798549631002261953851638253825199251865103664475296827544230095563498278316695489924126359922188157907380212660158466182235000007315087743749034506117845899123364837995077944432779630650970092783872936113998398286007074024129222943399004614869081516137328481253967760587874325615757136022902683054573704686196585566967617319159637147448287820593817703219991368042082254226822391597026172421441438408439188112786260100899322840102024005596017154601220337848514802467693293666379870944368141145435660161963293184668825976438946247831616485605472564818183495578354673852117343977735884495887709810402213965472152268439667908898289376015642990914679913214231941016564014332506693165836319826111020396643052794215178143492852948728274302023843084932567311776793829287806231015706922672753131104414932546841761347611316606415012560365990269511052882185354126685570284591333465781679696452442230029415639826018010561218671120248807050623390940962358357589836919612947178147725990665952296554771355173171385748929408620210340426227065001014876714218477127068604407438441924034166707209717307145674889016815756540564382039692734090272299242722130123120592387145485232630007159317783188292488505371229286989309058141011888430459484832811956851840784300366502624258001521431181640518726828403961050422997345989095061420363122761575041431823037817295008261409634527279273420160222640145226053833736644125025287055648831513059935118345582202046968022683869117287063821180476103379352111597919471344373195249005737382116422275424407315573808419481725096646140454738969513473423126428448939965539109234795317133202339791208662147949598633028863976626986466571885941983534718699410092705477748983545271121334612022697100593030333182171592578181780461601657161305487842674549103448024357435099946489245707994689568551793632645512189850091086336968471817182246603169248736748148552675600258496078531878472247010647114171769649074791162796625155676411231612375512440417056591892046555536165441511671489969539131393295558522056977761603130971911553852362882440517126727092157006338035841886267093580966108311042542835916782830659449260413987618986275571182717209836496127714165098577179647842939882344265686686665246781042066071008033348590846125000364830696955353004732611334168245971401350237827845888027873358309672936622301708387170030994184049453595247801457929539353063521858935804186612204114509377728945068098948198978060398621190620001106388027268853771756407933657437445434923832271207304114680125565836756559744925678580057775546660272977964693893158802296243078596752368180851970116877825923038096948156845094715500722722415559238612642659123310893786838106790230609129742715513967343078872300280416242079840674886038870524212909399651929259343770154126021363337154336022140816984400522508764344375179439933364994615930115282073729297070941275566081678995367240439083066240301592751286031829573910374453351302830679395248184120657195949107651245009312255361832261918173972333619473426352801124526509636492097387679869118524472818895759290200659082516829316227976316616979741376231701016990378853349797057935214189882055734194431946508561847819296517141309273512235094781480505928995354035526105564809432270683203848478341786046463099270763295839754798036534115479549294323574232073894260889955995440723479038037353221703906856984085856558087579745824184586273480705572335791972774288104888629123752959852849121253269955166340076450692273947415684281496350812441627325817414983736510812028563254926763683002987504939268028242228955794640968256259259927748469777394193775711231007488986538046350396742559911587190085188702898240702436904974400839139353237910305160690614526035417632744019305764229025926998318567875037162142721859613897294236691735697666848311992143716883255988203728060341269936743500197150135426431160555964790541598384714142712915604341838480216004359976045157205930595925064775024999307519564224693883479308141141449724172380664622800457125998599862156483294958329310781272882029711717244544294477555549074759863758043406086091508284946146364504807456854267368576633820688128716512171706809859805774501114859082638116514606793328481192010970324958290575880376961472129220888004003742648652510238370349343365222901672412487499819123610365079011140685237679531833829852288965760951920804295255987764505493212756699851259287253022374956723913997335659202351479521812065107816178919941371864960760946717655274690529363895834939668346757829142110173272629523643251542719441470920690446729212521350520514724908589294963564300142654411444524874807677863971685356490182298367399072622587515091659334414471590912589065304242543911016308891371906637567751326973930935212880845235737484047411322473588949251531443897459102545598630437293735380368366667733217178435413449991810939340129803659278533233375545795722194468455090146230699397029971685152396640486500459791630625348140468256529032504457991769824692697048162933761294019922035708878421552289505149692888857083460519909211012876983789187314689143342542903681206872979997818020414264481818129447650346308008286331190453051520787011572627880053222716398487307097465410206440380262663663531770001469722635792535779556909991210879854084226209382954746422912651749870682572803054143736468213924398787511854785874871244745275274222147807016122548226001824995862202404226772466930308269355528868038841154148390526606703376984203561958415891418534507028162925126408501365738013845180697077214151686019922698827534524278592450399596011360196717891658993151590875019033538769769525696532557110612894983784478778796448236941325349004821969456164637768704569636889060286988344115419947806080955210034364160919536510616908927543082836497774505201354036777191850562673417737801484041030323720217303013941560086178778811484164293489357954907314508231719672990438591950853367800040713577286189818902948043658388853220578509817073896302349360868926515629080255228780337056775788130597983927958784477090604793850946553524392594584474949326704851728076489341546330368207861464772090547316627240154315227202492837860003638342670239781469448372960379463336189909737381718506343626389460101034287817072403704638655661968458265004120875081391599313366396560778261138822618901531584284734251700108193793579257030243882154904897059238292014278690917040962971024083380155947394741206213654384267488875095130229084290202518944985954156754447609365343015427456066387246701456935965518049215762634701690991105609223355398107697368182218689576250062344037630424300039798070666451473371346411655404876444597859027782225229720063081083357607052740641964356453579830421956016588447403514988848382281235486774291755323869720234805037070618063551684114972108093388042039775449407999693042329403836754833485672574294639365366531213815391951452236975658826205358684966985888457044976013069145558117708174387957771311498249585522095040534823875728145206814623695895572123137495897615162148892266271966047548764737520122008787530059013930853872632294381673393130449480755159117795363587147755418528479685598946992705803851471426163922828704390076420113573184150128855696520302895858808280301986933575844789579085886518927674161042860993997855427366359036501746163682314816338474767314186101626537417716885542569902804686529222825187454543096696014547295141021361466562944539229322555970782421408983753908414957345623347154871726904577060737322396800899898588836242928266935289762422891804681859030838316618229750746649544182662351101968809137345954087646184324366989943061059719797981598835763245395411902587616790506360118113770573266922977123954104979500198568111960931395068806330295202071831455011342292920720891865462467934479232211278549516990584043898713326421108704270755948707050976321012735956640092047189171800671850274878571151501108184955145902750057997099906411845315837653630330258690329017266961235151678341041104206057472810647267864039134259596295209384195193795522809804137896045405199858529251667128572852091985809191367649235439278010009593753878302662659356891585946560512392141525677183256408793359137610766316426558214282543184782575929569450637336056581359872350740205079349032257208029540622331756536523242474426078290248202465285732401254618884301591650122705880478332649130712560218685935765050609635556944883530125700054670436926102666936298363827932425241461032849304306089501925466231922066918077198445819103567989498994908500697917796762458044305869702051077503433502691129141511014272873423792597506721357603798347170683996128474154991894961422294560820655738502265781758006381237025664702843275911566250591902240275689704156088811602468894822037152239345155088814479438752836662176339821401521410968511710277835811298851258459253371282321494915785302270480338709966468504954779790247289087296463591593094094989738538443835748427636018791308450087922613171230771724385097283001625750610791028460836101036732499431559028051938462969001587762527097514256138364568635609953794062315179330082535454747147110013965589258768045914243829266208801879167495759957140105037031666442427500801636503730208219056511264706593551249755536639441592925764588537629889151929981714805949163295673545988812984382820357336158448149666350927461112485312008892540340563524561680194834140474428121693774520236932756373367735581739155495659651450111881876780089202853332260825331326015634159662720731944492875649198443128642860353661732813143932602009662509147033889012180182008496125984110149632375362488967917253749011797579205927262950309182676648658898321688995643833033100396733941577279097475767931604099548201270262633097155737893996132087180529652640411912234995688738967266195651376957320370026756037398648916388798089397400919159003540198293750814311830665393486137388473910482703311620209315343833897608275536726930183576965526987665882332692246773002210802728224574889364172392832520199852204549234983424251492111998706249780354455673494474030812160637130939530479635266481288981216609407109663644015306670919370492184497215794900762837361217285628885852703146068910979457635207640921058101605984394578751983762745058336041846141093375888485076818298212487291141202137751624788152245803639521160743890875960772640186485625896342450576646123027721742960658414561523487080520934039491124204199905723002764944286569146206732877047073749219229149311701017179450651552682375881882432792145324765001238705128650647991491651183996223273048856082364029706045354831738733562787302486424556861257001034392818019742342765570661393881785500575858000084409301458795339808498746837565332571970008002652653964640752460981980463914303672710827518369572104021762118196850445745917887656909188409068676220898434275683858964495395825334244701593810432042648317542418321776357768631774271774904773904917549827597058501582748826070191215785344689483547345072458681156714703120042314909262866889652833541987757110298599873786693319458233565133898182785203676622056947504137147910116789147785615553834771675209713269489299178096055470307351920262298273090081596659930037199581507396955419730805370250034963099034444957080595834102481717331055465856402924745533753745791649870946023946250667986452386596206114737800783967732122150728450630021132618699079161451609643628879472865105758087788501156082311892767428456338285828208716902602838663602857463726803709997787333823846316026059780375946339604911860381060527650004465243986826628548516800074111696015855480694989597615285021425851129328407533057921726898611414254378618686943701956957454816393390617226057357482814893848460961639865492636742763196538464856188406136973810937413529928585291097389401093474005105425871570044016208784890444652610397368217914379785718059821759006742672882500423982125118490547537337038410275498254003029486511972652156906422104515522373909693136382165797500277771352276253623014743010078263311717153705288284770249247418961592937831356888027662846480152200603580759274606466208939605669957016898489502098754458648475149662848039013244970661826407832854215577527842770500325234899584192123954535826796662058724710009956712724030499717027956259283308468621258402692450539676686242775607495553943454244670673556271544554370215717589392955838596300744714436857655200392520489631302216544253509868433451202703933957226910524574791966202659619220166336867026441890556216132222308383459884062187986489914970462824079715845922204572383847181663285784297404651179555282005374900185231083231802865082984013479694451426380424383957332914707341482896509623051507706721107667733675619238905167427460773430579998874968651598369191094820907676654520115421329006685606432638257379902597013547392223049928599061199082041471449333256124591872014111707485040697437664166646084892790437321447045025860522561449009932066424946287272479642506812790687566892942950397247327166696485496291080085846233583362984759615392041423432688617807084617002370382738709269878099668490813179881419133695769342978340743130295647152309709867402194299460908425026249425189164394592558075577434195718948966066143740137180044214031196499470199485204352886762310313232141173408391067631497309428905093907118745006209373426396788680307140828474131979828920356105877483497258177899019739763766106547825656580352437621522673353136979413882271656340877483834076292888759402033995389814826617117899105405019657613732438094314004749599441526068381133006711715521206508339493719102212888953683044015132473735501869749145170099156970135538624087309103195246412843595073762985519244851162985416548535413347491563382739333847949302864333305135136593762934850608044478968695763909919318255525056323956646656293284947816107263881354885179766739200697087290108980472644734046531465938762910799121565065499205485939384737857631162099523631131273405160161297588983023552833168318245873524874768246943505667631534606181892642031458904939854912724651899829941956732156649052799126179582147344489854688101461713337145757403999719231853073415459573850256240990198880047688164204312141292635155095908993016168329958315750135991456477307273435441285012981546107746051594903607941572390165023782020544916301250691482947322724666290680916906040880281459689741430159475903338368151451099879041097961669135665962712649536864070181195293686129400562264846800103298946942247353824108879693275181962147845700508719473240782588161425563211414571143599632492648372554112672390404912089230673990591980984942049548587330215948886340396417598223872788439322345945022855679756877477508466604618193067791877887869306360222953540427760895942637582636140966381927695836032217200940066753272573294804377874169319315636453528521315692381058697031230048761355938300167875260741151223330851107835348863596517728391602410832906762053304280389124531126378557777588303318959843493681337109138856817414465489868571261684489384269720882644638981853791094771759055048978222645939306799295927681058679409756101505261252417943368046297346920945179687781743379043248476877204583810869849920419223741761744328680810020380136540707032205208663938499590721757180533723868804775096803844903336012380495886625879652684407573022779501360056831830475734422566645203989370500619767680600104880019407449480175614536741195234245105092213386737786215039429062392541560436251891646633256034386724993080677439436517100791061446220837417030571053580632003362818496362937263876738044522084729524636024309718601609560088832353764551145137793342782656929697335735110815173910513926828126588886538631855489269383753931174024256730926662904028378519082002485684403186434987889761475760219069145735245097557523609932330652732758610458269629044838382061219887086798243088699001556761521490943940190396827392599700594322931355053013558311885045527741772023476844064331497073072752871605643120757432326504062539278665122587309862613442950083757609300886998312995938877575108325951944991264537854479764256709636630564702087226748942588637331784127817819005748107273658579314076350630727311606552964560759172910609418365363462664731697736958120795235787494279224218365838752877505582300472314640994571461343085416607813847615439183218540342127533656254569139907385287211366348515673126630857937725347698707462421025320776741224695791008181296796729532464687833978043867520579128928524083138349695043043558162220980773775179022994245040439212759661348737635162157867916295246921108733429037672420043889328804424800629192187925802390460187705353197077060583613880428224146764921100766042203388953604275593105472214247834340507679054703561924471108512549170437841084141955182207181715967323236961931171029909435547364919209866547332827961241857384975262387620281440842732818255446972470478700170351262536450010615234356521647174624249853319312840462768609031260481995867739487313121165417983590296644006981426671048128131561379494883553789623097101490220544908908880464373537011415935565315474424519556691988092925503012669103127954118992786952255719097918483660709597939216675137554897424603592694749756134683688704577967584350109182316623757639991055165500332433519019152018599974577240581289364762860924626998631225400229866593049365694498311476215369836260345741409330876115840605943310759471740554003322788067478024764697974677235918454947459534827592310504890248158299987041170529654867140956698944342785150223887969631220239556240773608639304848707818425646052229400031202318371473475866677747034977990498314437346182474732888961761019581037799268900384436382315505890473061440800646559908768125021502077230824538780535854239012113089975397493404500694669966084755767177712719918818911438920660195310403247476211050862554380714281857092097198560173162624837136056242572056521197201784643071343343109534578036137445687937556888935225995599802383328527188246149503012271231077097124344559148743368503771138627710131919115381533562957632438344757702280538710750789741393498197937491443230651373916085275467271284712685014693377042848525419879557859948109643285084801451489422911531172491227609340509179059635072568644196010036104551061895167906476468256933187506421219336136060133105091035966920270450336458832595448338046985713956546542937871325503281687834591621228656470477319389950454908576468857461333050510531702857268797267743442847603736343351095222740583126922204799214546796987623654745090115904230122252161688121248686008728063449354929050505939908513790889533788412733726616628091910178986456618487611727265546115932480668791207480551665676240754784423883566695522638101468592774971129120215547103687158830171943422813992146436902554597402221607941943226963384478626996848841604435235226472032995462257948012847139858936118271929903540837927306765723647336395486002981626018570070208589008203890098848354725911574856753096296220107791279354077348536483613616133537313554813202162866017783734896661041117594514238707673078928859812657156300598497623111194658652286176142376431671757394905404888283814487802937548241955908405499150106492884198870350846765053776121263965544737402459218751090389990293917346772064051840461304562839879185313058720324794302473731611370127237309143034449984539129197953156993991933438653507314432624775708587273281977142389333929115243696990228408424539571626745629563997391978990326714322986396153492512293354051628738654290103453855048775801563110094373622368881460972538251781356551279018808290499437137060560724230136023096251899571188613816640310004814572211856984807248468502590866746375478861214089190067769105305878391991508371453637884553386240317282047808809040781804452738379223428795206689915082507103169110414547851850066485653109875556670844457762930914971709842673024073838045290642500702821531783414598034670630090393441130238318943011467879711871470371307441930433720060353864587135594991344688645003724776913938353626840682729561973843534233081351027478569861704655980907361692078340147438146790546962042268592633003246438752155853714988740174512964773043296076369542971643426209065898030542362042878585494297041157074385045326402115604826960191844832885193021933708785247325297850200240601876005155284137471616459874503809766843714009095427397310487085060411550947512988336209890570849624561320986319860653505400893147737373086443263414009091554204425850457771309463968769215432210976393933953342127018379703919979965755122824937484881027451104531602422216261536880815415611859564808859492059216291712047438310177179314897787929962966454326592739057080531806099774183191104680266222858276791219434753148800625137790755731896809904000962130454809890815395479830150099005751168301080104332715182397313039658692518166405724433278788013537847095864347724748694343802531352427714732820040389138320274248591083346894207119040790812759745898261768457989364460849777911359115900289259410170810442710037009264324792378098672781842225316218783963761052142597754732659608256041462774758121505323622462840424653034932727816811546380213578049113679284272298189106740884871608561557326400861022746602158418603682382722657289858613132871000802956298287195831312504670089388962906530683045075940192626221335855847663677074650586027046983652506807436155258025811947119423436237340996100322915414722752660210582697104194399778518375832568611476478684961505697438242924898942684001586067701589588000652501520320776649640269185054500121784286998000462009099087681536103929071680623070677799805321075666926652257805480447510255522939615050903958763239340014811298939306909161423265203345989508530039039988011432666475056755878157355513984763291893136323580339850330570027815563002979570691758833632017375796534136904093348501004250260139484899280066368159263307046954685934856909788200009878874680844564946118076280251078026738117843661954238625569126366722838319258415231000897512620202112139065391235664786728326066737240944620954290808478534867356404889997849120187521811947450008999737265909021996723083285049690600995580621344373062503648780517326194282221560899484906429767738044925184820491906455432862769813726736301025442048600275388019128433115706986504193200410755586305344110269804925970720937986678318494663944292896297835521783057767244871593779055224885751412762455345105008883587871361930063368389156237063428639965997346332959565016088865129755497372281841998903587610010063616594442007796971272494653876286944028735839468489219375565246657727101793197371360901530459875630928093160152518327926892220354030601057069459730405301218615047589004400385964411353732292525604195149132077019421191215270574713349691547004340288155490783449166380039118956518303234924674607083558959539145570283499977634677723431964502243300652822159148650902954101463715738426051631658633635469635282583353164911681988704343302651967693184741476889671869285225892949166916189049923486023114781262462567582495657326135018225232278734282170293880233330758659480064060244901488746742138917034897685764604968589720782291977057960659854558034765426541258600679146539315113979184851834631597082302841475169534227152234413787697548941872831414440924466186002101763608920284524887730883986998408188137816838427445045421409171858386797339863234034678714029224382215015657393671863895601485408107182234861246425171148278595655453300175122906843260595599366880357917781718185063008310189371657749601868362584990643749421058720957880860191443294674435447547708389553478179660447974836308502781918829845026138862625811894997380731056237369339581626382591097279279295666915584049367117758477471329737284206316159968653803804228313116616489984588597675217381076151045189655054628359718724934679712653048468699925299187835887649200217332795004429615159636277548936072721241970106748480840094999323492990257530996076015080303594592448641108487287815409836043446165530414613474441874746717016743216684284982544827849856930647061211580332430920233588708785458665394463904773672985139446661863158410310295069597322393810991985861446991709241529256530525189957722647172740930780774947908963395477337784007203496134587421319627402110374204778677740697214230499490626165231700546523603885401685637832631826797954647126794875960702589307526156440636482717581638536708955949765202300388095825988361447868783456878167874547236777323617846098212367228954920312841617845224247683383797363525565403257059537999339399290089808593054177804302652691212834414760169615172517134473736275002323732559567279063650715877022589249170554817538266477068650497318487428393314586611590924678515087539478094980972755504837916431235561425418319541718987445239786456040911238902048523287059649579322276593105508013482932009007093662855994342982258118597373772465318512677621840737989876492861375192999107928422932190513753069190470743535671303622013186958180143935834605143558077282785987152889537229806093756133940110787778936628573026438584879052162622576096576810702209207744844486074272001920945298419587164362979970171216551002507204189413755568849359562395801944282687980272614763545419626974882689002211462017549600745340011924991956568850904935475024091920110874300755605228018342922672690017261279438799880072348836215969251023571851594162347617507651514754752586777533485514156607333436924811590353067060555668674765837226486779684833307769478577451939575619160147100380848644698084304704157437962324589191329056682969473379845600068773787472824129403153741489864819276039439127975021051996591363839041787538410061155896158436629215286630007841301423119359893492839342689915572300225624863022517975110871142154562935952757486338065746431716400519404647067097445348518791742226507671609876094946468343613410804828646265668618905154218768998823746641756376241052886335694762901498546763575945479315244806757185673846463320943025771945097614503080727196399119543490979701458926845618111360493955758524887092056457677230814522273110562253698662582260975347592167015650758797245029272163095096329350538313085873251181078536215307822489999602562555867189538096327341945770971294768924493270460608176886076928303071480190970734841237939765959408286218608397390569991680579489815890075788875804603096534968974915036642007574064475009061564524104740918433304209282780062974689966994011464582026625347730004524779917207523577756734469919084393008123719695008181064380939122007035521603542951653283292181446072035311976340407609502200411094319493516705464244327777323634687230997678215636578418656140168062555996186725462927985927287163309543671298432688805882355858274274883870501987463795199650068758295242156917093644889220667372354389744384992989226633158311007536058626363177692630085139854764872829336740129387867601811486769456443531619350296230088521567748382156509065689242982017615351560664650869931013051417228541772562801941050308303053547252191629031043773880285160131595880580413927141744515233280789965173551309417408421857254105565560003861741844557429261507606820889439756331898446453958440943598791481675916814328846712564487151276523204475444909385000673641175337600553954020514191243597455152355639378111979781922628513323771736407683061025147342082309555145648088216305398753953360972752666882929368005170967951490806363290714400115943832194417433392201215195982894193822495155912421718601949205236421379244253545514568366003126411315366392059654005611268513922694514585563824960409545781970158218905261006679237323891551464832510227937207834269520464695872967931369455633954266483252396766084290708423089649986424722279866202629773562128584101218985325002971254289704376549007996592754287744551548047527143847139840072147744686690312761427802793050466977065857086194738150693122537362241003046330995059612629846613703274598084957257272324392613163768942327006996609116925038650933528124599798548482936281355937137384853129129625550379578695186978719197233850219217706681688396827582590545911496764198330141526625061634865147711789180939373584570123290748723005582934068889767900111419535802095537706138316844705588973709396570643364317589537905786558704328871148907080522102460490505827078895141032903165188597951815773953520155307223921351085439717120469835640175994390824869140380740620768866623005693243322547764861635281898041480222687164190777043488227592066209393284754520548258931827670479945569359051845797986786037582298774787886627789560894021290962139611059780974689098868391169076675517614660406913829275366181729153922225121175660468063955308500560831785938727806405518990907111831764134131656948118195973359317708464296031448860276471947083356025742661599015516397749475467073971381408500253257869737263542679639622873058249235052987088967136946071887671370039259495202161401911024288854479475861092089070664278457803171500142961433373256606391931098332524583179213228967449209831033638412303175887629985556538957064982491121560171370780841347920851301648678723029457792044377434335271451188679290997646445497593808463324031109788666313372870365237262410113597908359365811395245410477139538921764161655059910637027611106973150755479388944978372682140648604186992796296099902230106735632672363311124258225115775139251946527326500739431126626739900370637978948450969257173124014836386094229384554510904330329884599606366692860581078280155423353323084024903036012943625580374043455161005193680333585221231450077772513121776023972939146323839202236330847607910780222326354888341186060677854121278326647993032394931031801787435722649336455363030188774848635905826255170694387819475193255921348848848173716793395863995196714694216373251092119601175152513154931920596729684951985106596849831880056308216975482694329910380146569391197919326787554162175006279483358118533791707760502288228779272925783327253121289996002406075721288407225586244797477092690840507157058371106179358090991886211281315699032311223409145913234254526571456672650902438629069017367749750731842846783012262543795398834822467544562750388443943246480346817257450763481475521446938644049251573918247319959610831820621754982352098295215703777187422036502734094446225664680929696572454530437706626577166617968657996168979703604625497309242477892620524768693102350013023215764379330840851614129854018644948413583294811076235124092025389215576503101971709470410629812744067367015008983412155382844277652347316759486996071605658959776573120570476676054703603061738577772026350481685923309375675509976298083603406852644919876993749371126700553593772597025260585842855812713782184608029571205377137662829036637440554526814773254308322148024032799408809261507644184805877469675428130093805872352023949033825711541081389583520859129501312904629046372221678769764645459605535047898484206104322764780553619189707453737845062127442643658315733650237245726557835094409731277262798907766051754433697997638234250912280712436972011932569246010309507913182391739811387115327854848896342700698627225619991530127495733476035195842841526386804329555685063875254341760467061838053574184852173922451536962403034326798304598189517681005577634031531022222136761857444077526963419581466056172944832241261563535372565943820109089111551240664940983409617652043789036805677866797936758132203170536968420551269919999680097791513274634048624506357347647721465651857491635939443311681517721166884402057255959578566890735296566294445825398939295184219429601301601076540669735587934476812035433968935699490749259607650004142866589644817833420116414415257284603198246922932085955832786132424626605230617562681786404256090129079748181222807287155983694895510205748736349336798250961041338092974759682198164568116280328294037376096844704470911548359709910621890092053091672618435744627015474280978154311010957246441078212896507952665811380333919135095936813878466507124644663075579234591060984929320077942434034676598185524433910989136135547656442929663005549509163698506540110906567116335117420721480412701677645955545993642594971512262730154100676643563858446615441397640786720416392858137356676486195584062027754003920156865225811570942625478549091059053419149842809930008922722730502077595368605119040185306416807158087254956472364598334645435076143667214516288655173430153777390630222880967250541512256315865608019263488756383839745789999187039237813432202669226398780902371810009468402062102072864517327687623825057366352595720495633055952513806265200576492599912263981381729772065524099866680899280757300956442820885782022566541046659097204699783966715856004334647197789435520443016113440007592146701658803862564900736369273032528226597413410307482365788791015369361179458391884929187614795811988256316685735287002848001445750152078561870609877858644958981921466648182197799920759811489278088273895498627080420272400445486895909899781698710973679936429484466088073313481836362787665375101991847257826799290861761813829767765885772722899052626615953895553464728465797129866460699218140766634133027284814227128019047212834254560552272233741866787932873590578194850962612931544002837535852356233083952076718300819365724982645452498488761156913578745527967873922748212607726196421380771618711502291006263785676807094656761620803119643231411259300337874984800575205245647255722160187958572957104995818497026200997303724325129002423137350891749160780527848280530904353661139332543562106654951247732612893477514558531787277497341958984318617676089534074827572209861041396257160095121099044345711518814034022714972675411877680309723119920506825820437711779209157641974416217253455303746954284464560920561281079608317454590785465474307785705852184155261330252824254142350431598867043580055726919834486294399891170424768417691339695493027402559716032867312430690898609686203090628514960162297373921744255241366541863923526476588070329395443247280768290788218912472928733520433759397400221150125499771262540162086615649676332480791648437048455949628318126366898612251029584355838355445477395108420447394649285946405876726488354036304297269778045322593107089757389108565206479055646867336426226647012420261368498321674121573935197000456051767197016696523086679200305140300821512256299587155329313701411951706750540018382465245090452305658993265307750007907209956021290473856815834550761486124995266263140045334318267880698431668846652982206961675704446832274087783060230698152319133615430628311262816350749499837360787572732517284942408971742997546784659809793828792946435165375656096447437485301507318586401760304611731817030726923852842596075972748397473444298334016504795757243813844468832111931810183974067804413625221660042031584090354057637199991647684473143839220847555516317422554761055070694853271313081443908359696405072957553121451132717215601616528467126328831401019766055649166174499500976192212091522080249604889044338743678653796184250797090853929868539378130031855693339204534320494143707850765815967303164678591256625471251389832074682634157115843352222830256590885379122390979713917786280365973093440569230584765271908516885044750184460056853714391597223963114232859255299402902374437062953596598300890285354303334514341501379051967061474785300511613023531043452110086006403175696613567522228782266753673967478226130928709048403073242028864279434071167074656176914891956241190016683055196063170414415945317687655021398092014158277169241576753939978388895153422975736453547848440032556679738312227314407634506715344132416964071654794849525307756220185800628609039909438130058234208070861159372068239761934809670522789800079195767878991241100662127646168525276287168492197701559026210859784687051701820019142469700024141839183968563399047628625284223019995961957357147614215790018484836504302041106819915007590014395656608225427390382265512671701140731488332385410354989864833859493110832251670935065548800150196503275872292068421779900684252069977922773149934421252196081102033728296074645568757855552226359190258439365156948695639342268089502975069505578894568713580957521426800063552324788473654355279308703245276725823905418295485352980190802460281940273771709941428845744765465616473759354268473416365361049865464092308642759400920716176413404742439580737475953746084438148459208282389235620686837682326643783521191445235739923835113466458860738196910507187820835399345897272867326371528236415661545361574920375027140748040573023405217413867545380860682753312630222573066354478436385463278658150781416353783108561778742434529636223754499270092101508886314972977647917625360722851541707789568987705085951858569853302094668928053421048367749122051078159341432924214026970371262290243790727618163475839352639526853520203345742132337128973384504313638955417093353876263192813243718469561307711690625609713223273586134494155458326932181026656169050188842594743240592200340930589250078696286730761187708274074078296553153593478195676793668097712655397369351273820791813869346791009619646710572643845727019080306139422218018140279053149760773758723981953057251980208868955227157677363145376318590673327021089911475738326957646309881376567145232057070646452906657090167507171713838994043068865481971556516079897734935781952905584664001038346997402490945576752986656946518132269668744454716154801140308779723563717243514834048430354254453712556798635728671114539720983532846406614647804235820381456676333809018360848594435209384751722702489425183393904625060456615021679053762252773334820508106664425085855313268944692726981306829174478902006568758165188504068906313630383277836154605161394541758152810452091699711711888878910927890244737499465366065220646275060680002691763612853256476284925235801305711140269902062953909125564322979806169509803634564102973733309372699510382465895260610150103009102427588823922605384422093815384356995304995210712233362119056968333071223321492187809846376650220716178115978177091290144430954380312954704442016258145518593046829142703864932426142352511700660165453293316179553293842656350699518277962240994299117674822293025096280481889254326725794590472162221590969451174518602760121887292113287955726601825625206062048659499219415866285898169649333349390691797639127036626837414498789804478658255847555737068696617200304405676841686672534601997040217880914487006770125636701414481088388053719919967058724890111249746010984679633969142352481870761435962456603664215290088405616002102860052875416266718364345174038004272141527767326481329608564826817968393838762437858765896575688520871660546330564088444984354069940396736244321795926074535739586194052589462541332167423607937998963229408613426599306746555318946716340339374483013842953338859081731148657783521336901236075347477571429234938635790034114478635733288994531197147348883042151450275622579292281513754363381639263159178224945869897793324760388939626741377354054923304003997398259622077919916617386229729038298826783537271310740725436846514646622193319504246466453535860575237690538223223726693504871058094615460300651718993436419141618510870326619037215310593407131321377493029446486211524078059049764409559479935453080485982033311200132979639956083492856863981106833508992925864628725918128184547745330347536638449171157529807009851235040470525877239814496061299447017705970308586817408315916633684582249531098446412141423521712193007471491735634143894459595288685229666206610684381666578531548103594136907353793731382367266154898529758875277407875685756402721759746922633782084071124216498378254623275996669780049670464296256610167147088941173279179114459834809477895370828719187637948390302480040936596953441931909311343151195338111188719308397267311776078209234806224741268275814460601779513634883340048720820350361042956833932348161960239861442641149027598386060163530038024827480296491996078543629654176490724913785556353021142555574605554660630379388040743982758799653815429994697567072478747073042488588066318088882130809096316585244798558859726777915024616216807502330466112092134822763737760788822229263110115393805014660627820512900195612105198978978491436920120014302763819484936766670199821405321330778992438314450146447466054036797467796958081787313235312584601730085392050254851474779352172386439685723771873940937309244366761824280566490600231760668987759166903976491332151355596524351211432849017178526127365608182341038358229702263965437473285597084842430515726048582601106004734986962710482987998457687880104484129679530731574303228657321694412932273141365082424879149630136893148795805328687868126011856576158334578334494796591255585390594795691829153481610097479723866769850247050769255248669141506150486139569226706217987361806367647994378941654096692719973389732104798003966945644391446936037737964041957379945009937120630364190187667310644024911827875232609650727106087901305113308847758164981511434583127629693164312004571451433479123898940351442471220675128994031865781616369050390722769640996617631386854565722315571068930006832383828213763874410537526049078045511302627369489403016714689341741873320928019169343919117368346774372370217175267408169488566697396382453488939492896609486279442480557105139510252076768978441533546605864780716119044171611071143953896338641301487239522308178250050536508505540628841992067713413945538637436058623314449010810552889980422303425966658587635573693470007942684708134827077434107446706768009905540712984578252883699119322469679398262645233008895754551921017848465387565014843490550020865638081622497474526972507488811066420062554418466891737579940686910239539253870234545677071757047926324823756720484370253053727631046337262700533522386369120275728001479136044271379246894413917060531674572848673416274731717658990654360480083111927198008192040566896385991405531462929962203713590540614958694838936574485137054429564622951329069864019662697901892803658919778566529483313511158741389339128243697612554787557811910736114923163426378048807964533934673394861847933497757481853804368398410171654860307575985667568249109400159113514125505618264123645384012141926920754012495904139265916857797966622379002006202698061782383989596049178724343903120090869094985027029516525787318747849013723186313285521257898109739367104047176477853248982861556168261199862368459820344549978356380060454933396507252943731526628432316440094277193094345494509649730455302699835493544872587576149120855139478675597628727435368576202495907492896403862493208932627060042144147803409974107109791909097855142972506237879656842630631118321749608973216917393448393461542041529815442774697828560973544974866210561585498757563931790139025102020320563145195959608585948522397482103304426679609614882603152484175828260343900158597503256041444733565936508693675014815043929857445526914396852298803251947882201058770961791007366921487587029424962682937587060353470770297346829903845709330711284277479471343268312213394590857485576100448031003207941620378039585516219879958165322532232575249816756242630406149389528874798399017958369822915532102047219529815561101472835592242977126128378953657721492915581708989464055422929952401142851350524513603774687051393234960636586106570343171718515659608139385673905819847886776772520017345062496271835307508358677695591146212581646463241509837600720165320180030633958444132743615617408003630753776976398934479358345700781292199844215838058962986713983343860761433164527301303881632056748093331895332035931337951602759757970884984498637031884791420624062962269536513077970660713214020092288865380712341306391486953389913175255703691968788846439824348341279396431736275007967648195288516791141601682027297415650221120765477166526187690193282082922257794141854900138479854458029644705349630807670329614564606579804258168909150193699984787410401793264920922574233595977653462695526431218862171664699555840386581050672388527548138647098861519721797471889342952689810880613117138241843496559460034788838201381161431364211715131521985862739491834094958019953448441121754046811402853297240668021494251131544676597294991144103779725062165101305833349000987802969305853542427566722501629144900873244726780418371123338696296627007880645149162115716864520846217085353134178904661902813370797056298710791849187883036414626925324476520018922495694476991070526019136575569926648911181857426191913923847100202836993298569415863138835655660621688268649568574877452342864158623036713773246951284824038749708762355572201314301947821189070612918958401242075707431510424214746928054639246138189578588688906434868447472193874585608518375053303384129205657336486397597216438398998090086699503842372164265001468723537326055601832421655738042850597199842024591221338556870289010742111459158766065832991993290040610170449814413837073071216436271515345649718657366931774515766572470104151206508996930382430410357570658690638080121927052490680522748996194538060114560364104089571697546839149423811122693956556972087765901183785331001707336414264393140810377670433476907250904794190232560100059317987103874336191283569331980924997170692412530894180313276452741862819954675499976297167172259577130004463168387026296307724614170842252157186240077906155917259602388271384137420535127298463889469961164810355673036340573612237246170931454530942408282714692200449967997912898806674661500576802800041020923345021419281570970439800767275321590456257363433183776663643502605880074254699150567484785063885463442645590225975955089582032670876626579059598303065893602197370603942420158139383783483482915654356082125263556372627623564836806958509606208902149828916116680303719938401063451554033562126451387646212098839188060763717287696946121265595544393155350763410358729072467663141270064456458550119734192235463022100852685967197321011301463715206822045041367022577844361718747327291340822747149771349576047797462882125722375883697781909053150080557506708502648114197952968603422026920647685969176394365855325357506109318452133107593734250214820144004328538051500272144973134797478767111751027229898983496868508515544249060970492608090503359036189309259475767561270652567593508730167234958677969795598576233650320345025105002581082323772092348296337578098045632675955327181888847132389872393424712840351820652028434189604530921463444395000300635429767353043039429519391797547916810644022147667384607563942449332367302216213098915527228693149776840242662469306711817269297678807747729681347984927660457809176264861110602558223774353026349038987133060260045946893420980551399986017027952070813584889298729602650213346586086674881027100243434375464752636557394493301145749571935247464965971678407961502116992858601284465617672576879578940214966478706344963844427200160415602793759980881974696902171591362911606148156930829213455992630869016460720896682750334218809178207886845103682228859364506051851267312686089174512824860380748518500920971271655900510092863500964543983133601410242425548624693324900710521754880339354167680781137934182278331640274634148287506027185592842116694872790689695268947356136863720092271992132868946196114904418998373639120229689380008494475282309441751137914240016339997068331885879381597275578997578598836923896284799269312657148978129659632340913591972831864375411964104848046876915505571986149021533466367583569259609241200408328006355369362978767927464173881987185715051955287773898908647528729329728012673266712766259694751204112662349266335791349436603086361771362288294111100081851667414708949580889090646949965796460984518173778460833501191053886721542738164240380003476968628498614918524472310256857917174559630091105886881904273649360042827777311898746208475156656531452338160484073662078782610292927931817428568889995853218428988269170998709384980458181089991292232196556794890462991727863302885916360719402425358298922451682212620075550334087142735529304408347317593692137879520021627542591614550863189095332203834994344146804707986894544827477470547029988056989704774650528964657158971961564713996892688579437066992865528985387443258871539276090434182295419764577109538690080009082372239805060870916875322225845359082952875082639407903206715371574594339021927028633915570839867242796942430332553474789719138966657509972467087252047587566769926082169220197419706785782034397407782135159633571600669118883927009729816826002077713196581745671095768740622088600590921287531896977297737651615352309018975382358162335260952643743685464765901270574211727742856173323961063871135590620141415020715510904529834350044948862187923715911132533986832770181260134478267097150157883022162884791453676673836737853569226259677785814824823783348041393821953968201540031151527510989282460857300133067873405112381837868362395027122051828248911753794574475512796361146710921860701638909815775335084163314545071755880986696930759155129589237975721530527779917451221711073036719419272352482636297149517554426838254601499189490752455514959616023628713159214419377594378177125737494483698914505602129518005052737542919919405163457705930957393908641330347911216145932022379513346866275596714567879859947518128116931710068371797549033792146386149991996269388699551810749398257782477306724953460580369519498825049049213272748378537661593887469664118990111496944032098640461822728395868820976730885999018404217632966648401394195920402995184255576867732690398866099645213274608462845644605815933781849040453285222149767940467324385184958409011751593231217989935388402878997229009116403887057617930339379989108382518463392537028943163576569605084985194802061552297319376231611724638001940961718641905074743084438775019813849947672484096174573171329806306653503501021241011588412632025733311973292473710157396879823177145801008201581058590358970038870402916769484304521666104688130116239544464169281350028096849885213707343520347613756940572751256064243419085569211743642326168964070912873266358633238438962869671110560258437690858251614434388359019630007704149664714781464360378349885298959389831428015286559268862778201463866968867188950208091709427147815162296473906327127316230098307528406069345449622888674704020372587904077924602482553651397702897209241974470661082324302925364895889217002823926082162028953008193204967840600978417940933480237492488382811942270573813416278454218018325725123354447374443098287034470927816927857693359071469068312191746107966120718710816966180875586282618114996027148683046608084707117585989189251555016854985665707819211077626856525393236864058591652273534494945403149527836648223150763479202852446743751635436150303662659114649693019077061309960476336629560573874751499231084621261218763338534755552156188541410957895066682403037215729200968420479212841397126001251469189961720523327561457328893447047842944375806322746398868973525687853658663375424041644306019071718772806073837859900024709374770000920724485315587428386327166114920123263811900507632509954899312860538783046786485323948761655263606106807145147747221218609767880575381008294466022517808218620705919498623301500908720752976247129566553745328799817419864070013604278130933515445895033740360360934074684805534848393092101794561620345189479316078864928107523508988741291325317276781560356119191788804578463698308760143185452938947841215625389142057328263301619087128277132272367608606918876324355940960034669158585431072401048853168635057725215095179783395042581034218863893193791068915197063270669590022377115757948918889772762388346446214225627013649028259042917302354869300918625545548144059790894625277459550086904070433638559156394680487769020640715286476426039091807277992604486071047210838080920660809259788230805728704928762607900080376496536029101187658742734160783032920698826912254707923022363425831545532940100875743976038934262940119614113945458233158863064178166807847511224198685992009883876152360135397304261531599686703988856278322609615877191149995315789711774448390801151320065974451985802087412089066719129274435416687101535000054954024851551576293600536871703795597526885667675713445753432804743395775381079033961889573953398048094538516012003235755166480917495348885605166535574615717516658090506452914958510283051920338133375302557183251348849704109520720094985105268543166756576146050616290308497255551872434640970253274758553979796519806489267025569192163986614771778759037013361751620888605662611993556183717089584769195589641960348539779367246685521010026644007066647921555130005878615893237963267376314112009603457606171961291751961316418053674172629027809225988629374860037687947016535349772315103739354179360665107739031406071520323951024241369685328135023187781890705410532190906151924087583335977580002736219591469282245730542641255210472210673131915352502803285792112229945263480990266417975752543253041687388129641386024487939441617677488402108945541041395304980932957211094900399176263632262391783102116185681552033012831959385157459091080267851847729825132862118806739432676359080145198523631844222415748850642707848070995319254342077172025183585285502512431379467172437688525274577283101616703733018044793384355381524446722629673701353777809493178263980144880143624717918709741129261829355448576505961822853590917114775461372165293640283542976902132315846345651486274139381899689503000264826636496127304301421536568609920938285391846042696422444726717213074050692466708724948774767395103790258427883999157160064050765962702256928968210660870522560989240688346555561517019331411780815576310389317446047238439067200436010844592691576088782648704667934274274028737175283324367636240745228236911332753470829501072760785654775085947003599324878829167258124129511680953653461451220002649653611441352218947383938808784113821702846607204795665444124275477040602915671657370751824615961087210256304072019354128077979748963634536120524157614744819571304327159354210518815135791956109041150499349861601071254719685899893912333198260808161348908011946433334863526888142285345377398131759852513925211061868097872210127718565862970260692794866621194470147302629661394792523120420248911204692875634112338509336078527183495493257240694954957513138688851816879967242077397018823981639642236013444721934255522912199546057882138486092044835700360825028542886885462408665296176668107476591319671503733894016796885475637692848467092721912638699421020207296911092111125872852075895392402565895635222137733706310542540335653684340049199094698507379780911518059912639174154394152381608703738367485044009281714903527933031287660496893882545910773879667697036222248855060999339551627887772861814973596203965226986129530373162172205768329742535603776971303186724243871192989171808629103272919475295640640591519833763585056567769873791391830829803852067696598959307119052625393836279288756575379844463067979368955322359618072815645584171189102803120395460243572764182907150789710855003340463526020651135703897782819415626766091499650059880452579505808600595869349675836895377653759992269665986853255915681870668852666766784229418911668179736248799700546229800350482362532710778376887154081182091190135148595194495068271744889048078711149900432548171423703543021423822576763648317695639870023337817384310439897450862866143509650989812838864359812923364024472005148191191441951950527209337702138145243459270243537965854980932096034017236727083307984486081966311390190702910838248195268479940507889770927476614613268054913991057060680189223547753320196080454389487280252069694986607534834874585097453756692210481683451508959069209593013008309765155392919087006050883403336906220760914783088135355472687057338939782619203180989261884221458424221019038920979738357742581961098439035044748953439001811572610139651948956241028016825088172422199834854180837469256084863236705814218196636041350966207149904396518049456263017058800121606395747333340311668120482149110583060653264704648933497493680078548109595027073579884539998461843504884555644233634864335257714170641168191491567019344556103411740388106658580042223244984001318110803536918001131114182555567703007878677051788298262078324310441621829429812812927689198207826516507827520914265865241007409077663490512066186576403504690614058607125735245483974796111018711847303923408401375141871436801044524669523325052053747411670147673295010962913346079102728429124953100849738063075839331551649563998392392958004485318244890741632902199047236813695066664898060965630400464835043965537481291647843408029536595118315687837556324153196829370565358363489259355063809462877088354383776571888036961875511049676287457359395876684594556903349311836899328574531451176281741995296182760501140513990833763563914050161241361805378219416410168440867436029376022494708623700034316274238375123826566140420557459920285390321340897718060286203047119756625868302020942162299191421517646580763418876821598978880446723237330771701773293663031163481191178745192063229577852657416884005651280393262313259745084943758133128799858702101690141641939757945865188321381973193097561433160944890761874254941320563915884087519984863208438775934348196028763160700779136795224491694048014767017630615123656389642179512422000891769975172272605518446699112120312469564187877914389107557978223178855921186660313619280504283471640171096783125150922247389191317203580654022979935181519822342527146914549496468745672468992993194500430840144947830371845608654442332377991825495421729205398846186639892034071351756652744059223490712322748846232007289455823611931251865622866547199293986231793580680876491438924661443763696371159553892267403602218365258646200172996420099692249388467714378024393532682275187690379245493089766862906891139607690914553202572264445981310359860996186715971489180820419188642265800454982093250340360611383371731885941306635551584453084654353865507614933192506686032919395934755893065371084283202386652127349410073117678220501981158450259051414718360553130167187883767058601215214625278698865495239534717305550879087970761602322894257858958797846389179996147422338212383704036236457407061503065062481132579070197662098846318538646242569030837026115491119335904677983590707662145150912017997657004425117168853525941589435323919163059999258300135274866567911767568724966938123965087032840292843784532583513275730774944880311247942138305388587803011215044570890917901149026939251801366572811714514382252598642793109123588341189188167445535361204110493579460326083798236254885380801364890940020780529316574069669436745746884845642388731279650065902741417862080456067731742091468451552717736039968112591357081683986191374516831134215862347587509730722725793764225964468892036227717617603082503100895100423510672048190399868334295335816163789176636417793608506980359407611980121390966347649654847888922793141342339651139686777157005939389350837068546489508958838484319702060703552047889044438697137734993762624814217804712567399957899781798991292930192256468569324535011280633930714268756988902148316960702279205101253609179833603649594905951688590629155462209442889473590518124172539898065358491014703011447691262860860219703605139701122510355127730905503175769820690406156687570981467349919132132666805375159912200754913201947128254324657301174705570665529604826542798895387712126990749595062699658688016372509941688517490277963714596979942084084868469928454008863216025940034016431056954688156720034042207219798121303180011167837690987751698915016173535265592980116661076940412033582030490128339645645814176749184226587387595746449525534402636484301585876446149714846349072352662568764142041749635866466827900451959636210549493541129235906453686117082443348838642326343640307355694924204183406371158851446160265711514739055001576802475281250274769092769030164472116022003660459147337886131717736731377410407988068935875044882879421149148381204819167774409659676997886121155322661947943612315154173308966978933589022096611306478800936970987920314953810691601966293285357552850157894057216559212975277833355462157536217766862658632634683326197961817749816996172645680469359997623875326410228376009349099863131393435151574621160866802733951483404071556027038924942068352965901534479338728621315711946376960780411859564775539660947571514670269119197838056113348115294843230396872878522695673807109381469865474920027306565908786568195852460496291519071156008567215837005723197331514339435265092919581921029460224674023463787710698981256818224598647899968848948007193893756080555794320780169848940604000424835777563617037638074862611391029748110725443908471151755569441332289441767127632950933859327970657023285716269969488798856369913955764207538816419582094650562667918871186299739616398480019397220278308196222790577243657775161306127203111685893351347535398297139407919508359611143648850814175512002229288267986482558893829750189374518507706160254750688399557482987923330387627559921987918144067719320542243590254747947513358055338940802065320424062627658726276632138069658123051542457255715368283175862342507143264187216825031910253598382266722555612668683050099248971507324708019158375387544238121938394895558265010491421326700972556333810124720897964226733766977490666784978564474186703047068743661847133756853610967355150676203380380160057719825898960639035723710986613925555460896565220504139776052301508189671638625940129512192678943309898517890933797374748836910184300932000945615541960883244865916907183476042009670778873014278478307770440433223546743862903489691817075587094934479268263422540021423723293271519999167428993795277898820683470413822826134122176218923760932861352917683470169409483619970389941733170892620142515084800005532038462320940475486421836794797561251853651889973230753148968230959749987797093650855642033597013797043646578342229972215994305221951280554026151691650586539216076386550886612863244503084581904838634330562060165615605781013363653442805814036645533823174240478484921128017426090639626632662848309699035018976061859463789723995055868977019648334683130603744503390258789254035097825238292132162352203965646405392016104213133307267976552153930382290542333189497668827951918639078026265744387833025021448730053342294853851125899404605335372362883770641804127029131949738302008640453128676268566146471137103712576678607866546165628907395302116715649044467764502654800240687516996065675801553523902049466918280279088040328969397223696414847728730393203886729833808446431969729389034106742867580393312536392670146981744706159126687237129712075481757320072419823474030870320944504868801656382904795816075868786457305570720315184540147904090114194150337953119658167040106998926451670601752392273227849566792878061086981257816958103888475934663374121382455592954716790931639081816155361059079334774779078816030224275109155818300146917748801029144390920593964733886763604157129482395355386800597357947339830776442693734617055723618646740989441637660605961938804785382716237097154245462982901993860823093674156044372901542676274754583005443986931043121275442124966679809726542859018506197579191881290753770890734142227909323443150096186358421457252725420375299737580902107743066093960363248040582122069230354762331336424304632028642113030108887716092139898812993073794125220247964651033398843333014101274182830245613342006065631650827154655744123622291505628997606381560205315853206124054122242730970533923999241892809845198264915362094932644874364989993591887836481678534876893031499898560111025683911159124969247146049351965654584604723255144974072973506174995590302363741045788118761699984597607978941897699685161821994914434416992114609555057322952408840110154370179774847848606262545139476487692428481949438601778061862878490603064961613061121800029743196580048492412446633172921324158602027587236929392002920107235992077673164140300203185984776619582411515556966683200121507512628224013072310825328661806466682706335097579913505122014682709794776888461421479696477371826882982635766606679063743261984486155607726743373804002664597966821396291466718345137323933616985404338025582605510282504847244890512098571340165906869964063412476163491743846819906677197906525359762734049830487220872355399909700600433681606884050435956819906967473222954184157543514948162997848070959258890474430707945779396478063044316236193443394123937036619381608810004628397755284103802223262086809538414866173892826254584316650030287702520246546670100999976765054634177444693239590576398842452223114784965832259873115960860882855123116993904838203739301717867218129831419057618723925122426118477623852268690630850873969675662875608939813079295917260120189646781826931485871738322652049373569955408364928945941824173815473908629291612010855405581537759030045979397587709045284588041645857825030937671831163092060494169575194671458717529584125446795031056110761935571448273243985171584958387185648809825565072260933878918408840686241733758117332408574292790799450525127800993128277981796695781273389126365009470796912983891841562884108025164899063347414479921492928486815546195314557275557436097727068259127289732802146268100959225532930350759574482831546063077390341278548035337137388103536587152928342300873228413854529319226169493501487013928529786005295338062954199935168525709364221414287258944858660788422721793418733738694125828431634625880803801263641504389411063536799579878398526700768274882611262690983084277119666498056560954211379577178655478065021238643895794400380024125641995324647513725679400767443139636645171231113670368336543247932486954295035506722413892012545878990845180397952492167031124533171607305941499116896950406954176271366547621199652677381006408547953805673668354519133223755685232756466238207893155750054588292420797909955336788231823442994206881499048884640796179671232313019875236020798425807256605702384864441154376662576186009932147020211702847623548071012065036475151625021304773979639120017248703254295093412259333810949983377341535575693155491084221232498724866979208589129241007430051988252123084892881129057090243417279375119149825583451523410122925357961294592667766806395848165175058197739507644777311192999084308049553043592347360048585632144084414589863593762804971894715687230158865241055141028350701810618210168769394552303194223145625668100225306368511471916403085888616762038474794359845413672248745800742451886502773734167571342710245772224159263081171182112741027798169746790788198391893846220955736563949250470357541874025022365259557261286693079473282438967022609216952108373308808872213270964594702838535006401079057391447154170254262425241738341339139033696659892450002321291122104601906060335050469347563187906013039279603262562528345023842185653548611415131928769351982063138960297963489627479294677568615369111924074049153939209924727107168090703743718247941698537968750126186551203335372711350974273347799557270799460978183926089574627787511163202458119053687492821887157932188022828160307002083800213824443827528724744345676974728122565062164934933355127384078467365940182768212996147780330338412613962475303613446355993450342918092299092209612046654516640318648393938848241757935490887831665417460819377460873875499590994187887757310502484778240094101265454752753280196654349080870119384470073037984921468830823469732679713418676479124117582010796125891669770439334510128372800206777708597234381443566947040840035429958260056169785765423203961904296407616275647914419344562363778072245101377547239657470258708782946653133139406066343774365128289326557050382166283412443352535745618592984292997312300743394703973532362820842093890507906870880392818687157771518379371480200977721922354075802117229617733575196238904939387940202944335594412519254541097916035480527505173477576161812984693135197073225152039556606657761032315807487967845512853208672373708394692774675835963350946832183091190534932190956929853280414855775819635631123741330917268723412947922382644035463766363161802875443546864107548328000150807410758721679162896291212835820202729467412912943548360933976671386175515353653254507907696962204617091088261533383940450037177974167269598500568237444034501630441261221395324283844149033008436737898538020295928721734119468391809288561441930066181904522062198435951766240782113891577876576137454291579136735541559061171366016052240436660804278286492384529200533997339259887964240295987419138262005190164501368762077662416079773636754269159528323735232519498850679996524032946810837465542318381501327346258454258814170596432545455051887004502731022467159348630806345487553766667887954737326994224146149681592418758848320935842523767071007694939508674117706090729905204649289358376713834921139895740214293414742431378971905939435803542415881810103345513369139249652484573659389474356359736929602374450003457719890324611739354275273566703310878834570172436438376911858838717142019804359948842899289520348607659317271920790979971328961996186412571281332024068604610753633137431682741653330515716892947124828805019787298348076323704721346482429435203579592961025589302542467759098367637407168674643089777788325847521871548276798396900469182687579940289723940198460401550608700851360708873680456250674254342840921641834834601854091457378667272819672944706192586674784473024940570394509254896790936521011451653276882119727507076601602505036636754513193000779968166901258055854155923138683545234480090211716305167300626175886376312988820018072982167872997304557582377331373651501425628311495994572515750812990755981408064598517198989010804820336568905754819118694054081723780362717141369681178919940143353879144899618080090143626763594309071290362839604586505199405497161259740603036309639802222995287439651814285700046950373319132375362449190995237208123125920431212621906011890172486107130361309051511050228739673752879629230232298262216686513638146236261308270083364163347460748631867149765972389469100233176787555382626377562329361801262421201280017380211359082105173989760974997806024190267783781463100129760682189800392027304650712232831489678598099099916098060823914967279995282547945314528087031407515234469662601034394187225945775925902895593443073360864136495074640087228881749644904455332877969942162862030682288354549695550529761572223915079344551474218788391504296331507617453819117911504229307313333613793978871381001123506122293649610835855342272150088326712951453414850346885823320791636116101954993008968484352325888883443902861456144497025264346742806084217137875126681649378733212508359954283505331909973570805380027114463015449686062657670751676777355216963489567519002435283181953904547756793058028140213629248017408212667083111784746586007827368010752277590256465364463191281670408028884262703981362381647544978899850651700538496982354555899887683325891666061623778408140417849225465636186531109977694458300845138485372337458319869757286566185984777708802941363967776106508047668730047418641156818861207925055102709789365167559122998798198646869768550218412171633417727432022842881374369874017314701023535541827551873830405035637900952120045359456186740259208830547306169953738440680487319668215707825637473071321959793732556335174668518074296295748420892957285193656652473469050526283156427894910781800857983357294899301337808611145344096107446760910507192790272971095283013787717719591391489766364034290197463899884633228756697509178047922481851868723092839010390204492511175874683626514738677022444040769194196254965990851369205898319049222655727657860866007578590450810155244397915061016719390682877226005001650099996977895524186766546547485364609477342749222505033908484781210254219229088370468105846157882714772291688776023082239369120014398094247342978324043003020576082192657580475298814731713807012933049193655081141284457994770441185175270153830531494635676224406883825713070532757505495712460707690898394886770526684693833509481145287527502931178297311087939488441374832431761314162142713462689794228120707740477040537676567031061566262023122622327774866204671796010087567786303009160973025141252258494055069997727102452661944984760251075236820439235191415652300534084662284174187792280807832334462552303268600315118612104070725014966665369238254016438331008114163998055889669988003656435430673139405326087842887194327422940996507332570596602157873707413304915249942333828383970251577589242099910743131268830725973710179333628647798490937138311011517907673969119413132711829355666388458913328741126200325433861911344471534183788691963735706321904230871342267899084796116053486001582923378935877817139392862134392026449637651512073088640929983286993108292248767885174714537470400868000984083631233989156336065075200033742349840352336648076530850401283654370003462338194544878454245781276535401843339841561890692790630292047438519777117043052432452212357249446337229279467690441829720417927266052721320099920555751940181051659772993508594843032356056307240854752370535939454256141063064784331569359553674601033795966609575448584448365088361564165242931800224734589815844926906372415624480628381828731206266875804332701606041845886800309926237970239523866473457287290259262197067671554800398382861266950409237273623898797315156735914621226389317903965129035504946182237221897949862403752799923342151218335207659395946295929852952532317634316949792008068800911081039300500251292324404862721611777687595566894693239341758714748740730682639649803947195952157884468353913989573191718320288871887590412318842726751929641748862833961957160173078715616279542970484063580881070725300358188225383737003358703830538876964087931371020682101107634851006561808321074440519347918787525075877623672391780956988946708108097945642308108551433153940848064880460137399553202390388329134105760938467445518093716675050118957409909006411560905538368905456520054749792808147598948320717497631959858658862200577062660529934779662657732537394631944265234460207370960120832936032081074086594194274361277658892695875827862268575964410907447692891846155963338427329884109185509897749863471188118641390722735801375848060404974355080856507092030101687069112500975526171316724915715286841584849557415268403754740504004547054601052773919213678468298589397850675208921551144398793756773755733066136813344591634625618488821396622834630630889107294156606389637293717158844865057175268228164168328142534734397924391175802894572563710681195834109708048764620820531205490001623135519215546325257295002507413480858949622702383090748447998571921963717990756023014946447443873566089295050861119575463558212986912611990874444888133991244717290882386814402237411354861853632303133095123010426522681785400392029215529465290237961846725958896557294052881048716350562905542648057381803730572786726140422843443640291034290352075273219741072755362755750219516918207367586385225619060113043960620215990426702112120541625214268373040972764390930717729790078916534048328512874454451861424502672756212528707650858005860855187935949290941281195555876307713743963235884872738309327382582911460022790921942603933846322494396643574387091794007921452364058786591728982955819055569602666623114512234388413765444325009223357772818022481398400946955547738484573710990015022058822652576461942863177685044726803918103662789965568492158224985926260396573572505625137362163110160855851029906408870861217191708680675225032405512247346066755972229310993526059100851437264200410897265387225731095215991037344042139326717110666054371726609905868199854524102275013116112457072587638742644874689156280459441589501938603943936365538852606241604384393251994818410356317096239213380367302217304010481132880241800075659953279084397516912484397944289150596209359018114810701112583561379145494424087739897858030645520718379423524118604786370485028324236649221375633176640883601563548776203610416944379789991465353621869064501157624106358242976571087628915971846265120752985197205631433429658877791322889629646736061706077148807880716902928482211059782668022792832901451202200321797233964649354870543388966802120439031603924905350821687602711021239385344024383771007879566183729504111393697367972581902636991629411475689051277477895515663896475987020768143362374088088210008512927988330718625036097937682066011630244288035467243517102345071168396670214373566405966508043429367499315718507674935285831367026954042722122488624591813140459432461911067108129904855898826594610690333483656056524387371788991403612038772187862010197799170883277052891829917810929645229408255048948364263251773464653200156033195400625615641434771953403934878447016384428257320693664955445170100203261720792781433083333344602570304383018778867953243312179232800070975733199151834002475646947028576732478832225787731506524661843707108227972006364456342352133741871925428151753565477604652295182026027703674843213470868960379166260108820172004771110346406741565873411845590592040465117579374760766045489686369080798501094108509143666681001924462695036363012407047523909390526267134414748948672479213148415070833814248277573745428290889834177085496567884792388736094658310386615646097766454343566390178517958949110743813640774572792237957585690136750830041978297650126602909537214260678164635580464731207279479617235823832699924176901569725033668284933594742682796012388661977857148484676428359709354738741275713834517823923451046273573714299623804900013755790335368759391533716452905921163334989301172920403907456201656680617028741969984128199374732484441185797800460161751728008220269664293116499910460852587912297545813540409449985483199470112404993566571080334924863134937492053401578687685008834628184894479914713150511312549016174934824509983317439258887971878705006269193205783843643476647119563800849673448075833263672288531033165261108116886202618719284409291256597586709282318295983633381142931495117134086926279408197658906141145319607233542973958650997822778148616634030063503922128985013417030807747931498900803188546113073229374373737501550749525117181731087538347353765852809884079248742750520819432115859704588966784437935326782713487979557830871182052746008379596887479524835815737877218860893403254504127110574955809983522126024979883115327879839680489044183927826224380458633382934986349069235718055671647591193594712636151730341668632611549769891967489560871228841839827630478395526675532113396274297091892038216203361692781688416605342932327442540562002265015125337026564926875320176222590363100580116487339495848814279008873605465318764350912016352016224164725854821138756657866879658692756203438643125953810511692598996440418980394579642317610998982242302354784987989845001502153516025015187055751859863569158031427165845298310251572684983634366207474799392221069101394328476854638599425765646661276852072855765860787492875897257289456207901227012034677049857679883749693816188329448533521374356719161742090143270084739959927947374542316580787350839880195737855585011255749274944771982293947777594898144313578900086195632296804977797734738144109986598898624804486922216322441631580117453677869504926897377714976188973776366991238160621612983319190930700494687100253288097379448957734709987003764061770956848416250565757003770675357288587670237294807736134533622175194348797248986559912620370844829946829592471714819562985665973839697840338486380181904615938186707808005468772493288877435686459696347421544997644227795610179489500060069867299100491519882274475035850097138773171036366885149586052151674918613072325558906421252879884465095009435377172629720666022655307196906562104686913620131509749068728461751865077009271484907713682099073050917018868731113998659701394281274370265869664389919997556093031998417089852085184651851735811708421353566933246117574198134005174386912584644105773820670470870384212428843630181526769865116248700292568422176089567550564443384732930823044873858425076220334728473939284464144635030281694865664110745151996345434767761834859810380502812104467306759473643262261005345307266753758750650881463874948328378022151905303473579631074767217122310664033412088361403435604633502792225386776184008243872595099677455810762401562684334171570101306415816276726216636508310582577235368769499044595475883455882354608877816151551505273717927781786851225359106263032071637229103606883902527202595531580414161353926461854933278673526457274360348042539737771448753346982619044849155439414735487229680577165295088113094028710043571715422515273518642760691619693094869643260093418882134031997510380435068394794047303846818300148919317391377915512848555178974187965774374106289566982407334107641755615663499897862412508279948492003021778176569719507028587377989847519375406635285851360812328803921238141324268575298032580636105810320213698469653288511307944721130188350004006236767375371232450901759824161712827449135385051657042409255005935004065961209572234270189547895613142040467678660598030505748483425743830980026371164560875436528366750904154100521609913885435758230209886517585489414413861332174583839466556529914683963882960243618622369812577461761740008199163596581203841445858633796364857734899109551674997925017492510856779113460755432985764336636493354182491756238713858975309264561928087565529472184236756646628740470566323389802575233000377105473112849443692619120595326301598296947748545492781512415901407749821052444745418110880048138144306318007191647650711595907927847350407158948504607362611445970574938175838772292377832270642207426455835796399459972576849673925696903485561703477536945811823138122593334333438926465179820402664112923957438433348931649481911493680594933755738723662948030316937959963617147047468109703652665077466775094550276585112028081346027340138126461594710391410424928556191661294011023336266264687302474317646749172200569221662913067550228941610283096670938782337556757420836054671211721326459386049158783746747230424579665295483521210943365323769757024932718324399525955945392714873174234494684417101298916463476838201861486329488598734647708998221425324362390914231165497791593318650156134230217715319555096957009967171427913451503226292530878655832661699192616625434023960321816395637959347881390449788775433433298597231817186740427594550156215248217039392334501962179660269142938355227187240694100312280123742507719331280663893650396346543246424401518404579092787048349329871912452581740848519806273889740857118337845919612261415312201803676593373315448674244833237863545193373953983975451660749527864209178250091761746857157922892216487869005173150450252787046386371856409936199894858681379689524223318327175083007618749459091843366015825278386549248506319935359815889645827044550594166153232609628420486072885128274064979699280426280960008372090487969051662654968828900687909155728208176279785210168808216493273289796159536543516760277169905680811055668395461053976210459560965290527682950914373128159420222295234263014604361047487134363899194822374074423605522086956149092630311206337100357590811496937905030115338816340884482934419643415402690596681917950164148962045538026402352455049927453905094938210884491674258511030644894889805131235518601910685693397622490499807405320875965133051932208159094328735976829442938072670177234424032842663648099266725430039495471652162881646130718235547938530350837532904417032876311729067978285253043289565958265945380614565085196556174900515791506553847719298471308505681637363833147504327675431240887255422158925820549276731908414669981071742576798120027738134483535637159018311704531192076729542695558235835599296935910452005658903573304152174259934017121864759696309165643149814815698332165188902895222855486822814621681306016273934067847278401216056110261815372224464838518534180135743135262456373624202622700978039368962307053702751615092695489572461018890496844327226489241165372038478450300787443070833139006123897266853330921194929933690896120257125280571995601774406606684345211749163399182040601965050267061792605705227386093497550091221959070776882344128675447693052479973417077404716456389815584182328904636919012604341319963298266544912322606124268587158196151854473167173189908225452283667610902923381621358130704495882693199308489975032020690640747200640519045943816076466110970427397441258339287452376653722128996020598445381930722985561421287330325827359361544439378813709996047018690326707849274714649876545515829258599467331710732339576694026728290960134699003524053008006834436271203031660232417340732979754663942306024352687454041638410303237850832987477935393406368755543682743146571377648069967852435601049534754130213033439788767434569714567785773903017881949324985285525006371949568828093143758719117347866998603291589841721128021591104892173839254269057614351036147318196958536867172533931094988829171475163693763858572040036704003789018191680571573580588696895809607394186648743645606250508047705423104170231812593453848339791565077900221424628062708336639485305458361451720156705201801264822627739112596215435071381805704811076030100187376879921921389597583646850988550242265560115749172991601300394459426379662169407412762855187379035484206760286189862899102543824592292536423469656251684586859718708090269289326340640028041409192149137766036487899464098880004569393639551893021767610414872368639020897980297599881487274807057257661670337527468947899727198232433102453549855602345171017763647408613384906852599548319474371330709424813725896570632560842231355867819340959129813700788002700943314574027139047236553609465748880727174932220466364863587231445104961106187901525440642463849197196093869605528979172969778915977808773590709703428233935480184294559554543396450640408329518429834182399640110482828301943188783035135779347196668145172673723032468044033036682528140317921359100859511243089780332349192193010025194198005056808753016080814968619098363218857477899909003838388952616673850735391453658963221470644506247962920189221828220978532514939781729602876455641292298937143118114432840616063259967773173108916693109528923781032810080842747737401657561555802035110790918257536342807601919262641735000180943417618409497470914559223355172237638621798466961062880997392141338891628150637809781649483525083002847642169935125469692043679208165858683903942955155893853884082264810642414059580189471678963187910946309040312056453311010594455815566527259742527951009222327856061362183344769425435307781733486947111697538256979958822348255952396789743209461822466517674261503052958846766267945474318628982304691469754961757998194855738867006850904637790566129148280715922229146286178733307102946515770343415611405688223880160010352571166236104951250761687074379328622002855844296087794487691795644237801980689260549374301479743660051662864236599733440249842277517051289310515814722691136233495869516265025964346599181581517439028078290126304100170740068882486300189170491710864765330699940003409940074533802431956555868612892163309921569449692711907228620322154440865934857811871426957877522956731569419280972159280346119878552318957077973439231487836448135358070164644643261437865380549191795650011117686066592644397438108328109869912044520396449100250914768986896411253347659767332693973632780269714197111917762586661191164709338711952728382434330203329426454686554588267305924628754902065929361218109986789546620650979449196839448263606493733895399068184557638871824582499485290156129303390183741140583779076768808060195445900010099567926945197837338580867115191302847771032129489033800781420349525586021601302253241029282675913935356142959095071906737073918116151629687710075462347269573034364207000070426929901749903783814998229357315375349249262341828404765462675486471800794187654078966534463050936582322218332158616935096083678861718688333420197030515053832326993899151936368912999881226571205962392277725174277688660744784492921301997947523294700584012506222477705920174177015954043109457502211037772431495475657243117466598583959019121822986068502726391505252088178934987783530150885116187617293963087735446672629191007858813994114554109178965280946673888076687493636095646386627712981842241879213557576626093777000217808925652964511801832714991358237435973769846289545044188010843715469357711667100534130070742092156299325332858980009637723773340110060652819964532900666310592816959071083105119235048563955941774531418497262564219039797750794203303175023188184341086814317999626394011523259402038699819310918714589246985444890464963457824903070782958987283137338167923442877316729667381330719793199531579470982047917091933548767487592898333804684717002591085731840556460757844574208376117338902135487748565235485377743578650105898504949937221626138190104980210463865800078148721712583510709904950787155285920700153450521365595983728544044660268693598419105977247849705140899180738818787854193864553183637650430417968430556762970472663256186787514481995789431471525893775888013011620369677075287761693811119303726348215671486789267479144294768363470708709583358920175280524220653972010504613784884707649755745857741765915649492031693993115483918196965274930184571927566952405219485418968546567188645849745271946216719235451185890472764729509334419472825934464526973197839928917781890464843648278524118458200689019645355103856110892061525635593430357784252513540900770008751603342769276619561774726942099962689489214802676375359702924527863213283260937193461317738060515941748760987309201712499865982261624383631063018070382144922100253718541832081790103864096171839153142637915717047668379135275535455568266050682760769158025405312914400758062729710667404883952436017931124646297441815470576110050526346383253115643736315816979562530752493865053286675696843533943642040199703263704652927669342084659618115174221190936603308678891241254497957280964550747143523619990897316128963861047646137101058249244502984200328093755387455474633441962358888342047926284702463475838067529091267576556809614465337487930015676423605619340248134942326906618697671433350385413966120711173185443722278316440213532111791447548026611813902410416851075561231909196528641545354109420179046152434344388404765093241367993700737008670817164559918964262524060007946025947849251728278733408281627210459860019434832216466473809407420061507161549696364957145429984787921756091368978331715725503898524791245469575064501231618343753590673059782321713987877427857385097677531002733365920454907207299893539670773578694454199904849530036131478291202907319368849453414131863866192674809692790253762244998540021688501060518904280351752946081060408440645252334612653901138653727243312865570932655292894734900191473127330065251596304583248089952768687348130991907847143989720187683579700323758791283142415105428523162463907979235555839384910929276028704568844558880463351197061659155019420144761612165711652416531932201991930802854247517444225523256561121322877387885229767687948536393709956809917685976637515883641540714559722516133933962876106376945144359852359196875999098966843475901739058017524807084183301820009513133939494044233667972227314966602835344049918020552160170976686937982201597657577929105343628631377831222866258449349472911950117049654186546715384521271543592811330414629484116682457027994944245420611375364294256714750488794521057403417676744644197518834861328938358221765949046149218540943433358873242846162674513987252328814839289270803735831643258906204815567018756339564596867334436148137159934997545289145775598310156068925456125816051067993738937182287150153724827326989459667013763711391334612658778517813657843463519671284145116381415842725647155300283782700288312408803852170668608934388252776212844578744639390766045361734951305321012050444304870548160504463099710268382867832304063828082434619336223055609486262764898913152780966642481711116706698712150125944933752322874129591809224469187179834202540095984459318997443503476528238586605897798528078894813335381532119084590026676986825621201219352149592028856455190422020265576485335008045623247457121306086775337738970646437729172011312513764617030739554382704390165374415566305261994109427510195780600862898780939903455923658921819873687175563027531599380883674320245435317943221563450736246202794802933553434265717035513482418759802578571956406041969867340811059353632316882652162386630383356720953674277949012559736938328109656570196839449294642830317226735139928068864212930675370901437814687673315108461690240685607513632994957172262846196551122842279366889163192561182757058968367245917755989038118101952960227895377378767323358753141210416593041758378435412898936600244467336650617025229223843834925572991685346951152359514477083866205124992804396497151193802554339976745800054056565644336030044308145561630860457502182556737267700250769937931706058005419027940153555059698577201189716421501339005769248080631795182222585717549421423519325061802348059175962200922583986527292156118090942971163322695541107183050230745765003946533394454216754847959404044539511083977571355826709033313053641222059417393341343810172543361998166041093935569414578402641695856342613834469471111697728767218102518254148263290683266403810192153843911894074075939764869525955294080895712310718400013852894536865815098033744296894966266389172967778941361232034495102645092777205977589977381509521185886789595506700763776589016721487809864797385462265107366224271757642627669923444000823027360518814241267872753016044638669077475375798797807442572184351934918447752978927834367393517634767478465129370701469563375651976252913403325688906565194074300925190766319531566956144986133552688868984211245038333346562577552856477516705438067565507214597213983385032717336942775989105247498344849993479446743044671076003398136389037269635579508823315725849310040858422809370940258270376480045531654560090481568022443945702302618245912356295489445466297641939864095494384624117186006088379112470638094287815853237415431522274907438035461394231603090791736793593256931354710730159428987307334881227436219706287702666669472568301124024303001718524517049240225602156202971050742347142498833396309793305388810799962335003098077296756946352049991076031369148559426073487102476616791194194938977960701084410647386900514223688700500555539332780907455260919622156001703547954637817755206041573474703104873306015968309085211274039706819772009575845300415402586510923247347178622676952359042897809005529182356674221200428810525565763386740483941370296911872939095970442155910965279032041724101026487666322497536262944643385717920185415030491530517296978596852659426944584972910323472738057257794385980279234270840154340292357821780879375964292673137999662363183807193205963176158964716992569900748955597575650817928593789963692889021408726672385731301474431517984318127578456406882897125927535578066712681560494030092648212570421193427934228126390738670833775875352135864473520190234946928158348482062460971413075518495999394177461840000272806221926646908705555754825139369466518308522971578816577840085992913865099789406255787716420630918445340108746222869401576156999475457710480921912279246340827849012888104036533953434361120506043114305496309711110351701537472546622399816412878280264336934560331201054305934160276818707499904745023650667374127604088103652558588254830968916979038821926596505678957303386468545464306167641449195705162502611882043330030188531337469652155735307956368158316041164130021011119987040199626605734520571329019839004065621411340724780553077957623934916469123750215007270033947137592363192249530516527792812703297780933095909105986524155468526130485392447643817511893705732799437072383186519497468430763453510771496035949162544627938857733188685033522412880919805551619672705136388447089980019863002962461510916667690813570887543585987583430606536452630913808887345920762911113446541937549951101922835087729181153954314444587909644674807770582959568299922229988828278783222647057544371690011517195556561456566916917483899786944973702909621653581659095188235727849657115472246789040450500733592339996957800870091269670183207424090975673269810299987799374938747013948632583937796547111185249069930900519748835171417754436604348075807458906134046864572326909216690140887049939564464497003045056457177567987141118301604864962353603869546546874941831036099910545240833025594083989376024946316460531659774779321492054648160076545310708244537020749581027538356470840071956953732878357567926887102128377560901451990091063342845693195391851651560422178744914690150992750853904295005611750104894038024396549710507430589309171756586999827028700911352001612112818968088633834601309076030474701674074045087160008002886163218923326130367725418941029626856426496353534500017611260033948899382887058343243043162754499237381964489109610446368757822951110925202468082109476310281384210479398340804699483590701988342333781319201592138866959430444314284246600937723527021452321841773313745318421540165928710824251116767781252055794050335563696576499466022730553556086162175400293555223842286842869719837184077447030161907650371289733380530471428583755525681922185280654579838349259006299218340021241468437091035251235282248679373190683145350142509500740051768119225370916522747833540108630321057193340033265503472523863157371519231523038596419665009621329144565498569681965003167725352404508423885332347928984156471596699071811091274968220782381015839172808408401089455975050628319470145994499104690366037773928718359152820440917815910674723686705680329779032518187322473333092629562216933737422378593068352845257329504375234865902839806251268129068978961640218870250465006125520319142566370933536678757887893408601729461342850491033704833786571466010136535154622187963795803796209016274771742212582933105970610727061014570803652685644945930486839893240638647402427053226957695445956332003122213149407965286550940276083548357892106685959055489418611549012414625656012252006967748430389641634889118406338142692472063073057720964748968049755163164131849531711337929255635177905421372439884877836636614150578920089635759099540162866133908518825098338238166388653710707953132568395008903908790587907112320326922275890359618727930673043197315591653419446082820271211399764559902086137376318387081379768620817938216214445283802146616504989386831938179653529150459020203053724679139232230090502007062323629950118660463244694031505674142426887856159519790111066660780657539791390038251264356935357847637840894057627484033988381492654628175199421025983452141786324240308181933103829185379680485451724812196266998395121732939635722072966003882207600370364682348176667561426866196005497855371641210157680255148114897698662857807249055156186068746568738089252679035856455840790906128271196320645831469308147761586454053543663164012836749418572978190731593501264723293410082441139244892950519365395253622259865883598429523660783886773853575509148110286800473415716441210459963472705290438530583107422050312177133470733958956759308918856800827754365413061514801713585249638802761596158569467224671790364706643392095370690227580663885933829913000613696794817106986080288057244384142399563870319019506291345541816647534482458420438803246419250934988941634732001597051906237270277539524702402771081538695055520039928268271127881703694491880824477976648698303413560637625962482719574416453112378322622097425762069944629838442627294345185855122566039265817994385079002814813948126822951275767595477373363665539681130686647048852657030851277424196330885988727670682798130258418090061207507100424874886953755316328304680852339857471962209287297446457545274309601164873981891931947589790225224581819703361752223868372867130346040149663983152628896710003125864910768803619003260036870215721248414508329869705518573724841294405331644321910754402732569138679410237307866625741681099100426708193085752813143116107266269735079947930739939344046414995613312109635707157869883312350851053465448020239897651082975869172765623797762747228095613113821113908081778511521893842345806645944620868305030589649843745106800939168163254632118618020205050373129785035416717139732830809514201781772165015249433720169320449695371854080754162090999994270184422498425305786958454291542356928239959082550547224068462096236689870331547024411843366302531202519327110069196311346564259254555171252233861045110137190999128807909545579527558563765475888135909989068740899846986926855246673989695896499276398173136823037845055694362907169813598072113924272197713544579181560284922862765515140972817982056347134998629538694101562925337752323559604612171791824132731596883924302502560564945308324105956277414994458015050081350462051933231203408902435032253570253819506685184158896107668638165763921064022975145481553002478564592382418726615854381385531649340560336479755584705236270751832684835510272252298396138584684605631504915421350207403189853180386626188997038791242326102884741443415635586780474691680074634467173749415237691391877279221750614841720942374631345757169263195690011689673795623791831153761983387002173962673823754925166496124779824256615773289035022567163065308846776196277122156761346058479885309144516796533768952508779811733817839329667146971994934463632272748365432148678276452741402030796972274925492316301917564576130252598863633653968625292914965273164371899492481753290305513271587447935537282965370899134398903015156354974694844518986934227905593202602670525113697394209886109388731113376811706278206174172338662152486288266635011377509755913720958310956191541885534773945853932308739034365410816163972344328304056005017925920206060773309165672621098361248094147938916065987691223055736406512542502144442486340524828915135153670404580874536108484066774276808636863380670358485491925854659627336797309000285096653185668821114280609462571298066882707143918358468210473140377445498665521009105286950621393740576776159516634673641869496317521484962717129520567670862284610230400798970139299249377217972789877040785595703770518920155576277379160803591541975473935230152635486036920676379779312348169215143654296244482765462174097986999856037121118050134590387557524084067978144463855218026208054886188034409717241517608335258811553761118218260727002122148163849162768942721213338597994324164709739334730035798452767778353146106194934664780953128985127370095280282733029415259766986568254444459780682941389119481090161435916871498301068407705771904956869947183303197103005526168692643422864029990972113231985605744126596630884711401406545241966202237326793252667929740355722445672533086334355750267475935271455916317642519409583384702785264219496726923454610256847111766973590883630828391273192372599404760613231628077483445923023064048944735061538087567807103891147688096151966272582263580458799691926795730848693821586745770679120665485072493183684409189567702109505642730635861253890670698421402243855916071212242604761584935986571090649360148589702645541953669781763685290186710796290804508207723735392129817711163052226798566788541039137718802099965694590089301414117296053270855140112636412282625036609376178378962425776887646913418645172374142354929527264073467253312057159820149570232521599804432051785325589621713971723510852980886940293936677028852424109010187027621472905999521575859527552763368728217201231454440806207399639055514168457961138656237866454795482039730209457116619972979745781093336285981415640338066685674024195577926560223122198046069726788215621239691000006914959105423084870150365612082381933533647035743721450273448244475082634984318619062675235522133274355987370778972472489318533435929608827393278119577346598111376843684985692563026884750713411316115459594212628435851653084992520024623195404424957136987023590136505598582530894525237435692390251698903957804177920885907827512485797592090143447664396562557192070712905657487771065658331692884508112866440970190940305215454910037170010210136843459996753936913387200262897184831573333156554978681840756455802952723174500356355434676785467154006774980728597393749914862861773956966092735449615576899553386623761374279505255903907034906056517054131442263785425384368276216041656597003024483083734745036036290400446249673842600997653351653570912043447079391363860038824710557464968551122572666838721801141215495978773334001255628634383043344515110874837666955637414658104144770978845391044748908292648332083800851692455913733059409596294301871598764751411338191130482827121484488015318213279041557540348191293291642337514905215142895476033653990638484891199276357439568550981307352774839722860734886469695455880465890842824269146129516981464787277642974089115216389773191967647004093091961800874803137843388145884438552823259138669667614298018818790968036971196795417885624745451465749702380514203546458004316524242885462560612683852551929506190797713986477069716342545991549842942939401144097830484562033692157893405900088599866065708803545908992826940893807117897389121717169002629303850482673856838929765255130500387177737103304617162815005456641347642614542162032576565138392883235241457043618833995830264326950171759748955550777748752589501782355907296474822794694563288321487974305437774878181583483446076182646471140625996949212877484020880996543800819222586784574171715230100773279886055721046717479888054043182087630327752288613910476944637573920887265361547819028471148569623035225282317337843232818686739931977254348949701967068694294893375102105670697660081937745520805193098839393144688591283315016467882367312582866336367506211449041163012094884455725488465605300598953115302594682400924297585946975624960360770562287635755261274450980316857308845337304320061439118954773432373113647313085809632093443082625528591760983933829826279973314749092012620331850848585189740607096312623032907908672320796722218984339066380956154228670535867182960975475164538046062308517893163265992962991067523835719798914013225113165082236878111422271281812853681090368839353516946850304903610697490215859062427048811346269175334760871054038357025446387231612112952718051799348428846521021699745732211876574920535647794149884808237003730666755512497587795478844809522720115703621852406057250169626469468261621719284418492970435252085407277476533811195804749341322570188131715174067040128395243920255080374255538166505788697191453799735806806741421529106134387758944521111640637284612636173062456406822250815409271978303537920466912530756556776519452376634570550914034333359068738230100451820993363346351772463793793133748155490778342364452983479319553209582400896261149556908958319404649184808352285803643665146826985089571907071918968875718218790113806373476296331320897105978863609491234218709197917230297203514208675155647689137002742118719763994137833592802619590019153143203405085330955411800055729333903218313535724485442266301077424506947747272403163448078225146281019583509245222936173269034951950681424139706876580064514950636204233722221519036563274309115168037199964868085408938896426919612024981826345831122581495006474002067832204765528062336999226902864781081496622125178924805411895403667998151135824467736806307034839630466642744377518298862045418289361644108301318713456190343632921302050543250309483473334426669686759665480688546472646445170129098389730038047108918593732129587036063412138328848183453141381215610876923222838836879074588248917542859236811570441348099556005682002509837280498410488431372483149395502895455110844201968231200289130253185104155386424840246972993566058173144891008515025769599067475419021496016775466580621477475892864430453838336596181660356267578992237179594580591165858884400024731655191256312011807826435771685632824404333504635119609323226139930806736290292455775575677698902654158006646309074460415973790547487261312067043106836715241190957653342041531900519935510352082332088942704485996693773905616895489457344661066663368212409784783438520670932919280652722508125582665968556637073936969332771860216918222834532301871976421157055755242943413139352098881231783197100403467875163964018664899298151285758015433776911198515039241261184413871720083449998163968513306744609333018471689592546559656704167302346832350413100916386274178156366021562694799013708979997860650218308034349390050854576625801916308928684301665449607398388029084688159148339474648598428530503380936474640592214235604422319566709849655671587873138529972763258696577938732450924948004767473794300561333108551525536819341771468319956380575082391443211167574202209771079179217049524857515585173184455141830605083331629632717380442555023196323137155859605186018751778560185592299868541516068242697339179858313915461135450069682633392421294553251627557564905713531036221898847003836006754590347535560638406583977380126729309339600611405377622865565169993951091383954886437200952272362245468282985594207472551199002716134661052687132698339040647376502825283722088424414225318138456189685956862281344314754477908641845284749642589047521669609984623851554270778316921441484099611472401953075673851326585355702781104765184277715103832545555162490621057844447766103772362832768626040130677771259685898911510980839756630147808736093321808177806624380183140757344972215058349310575865197434323033746517063207386373974747612689705954300502628235141443968165430499024937694085724604517552205518354252072999577712707553347942243126186350191750789065573437028924714364681759720181873454161179456036137793485378765188351355239170203824540126052189942151353568962958444583479840314213051623398717816683937873749008672993761849717463304756365646176808602531667746596868339689706414368600034835584470454490406760236212789391341290070328005302871327867562839906398995145425140239569735240911069488209709366424447710086451475663319402848818870792500898619926418292382033525633326052073022461935385306359813812478523692852282980919516593920927757801882052918368950598003926714667004164899461547397326833607626920822008694647206443011192199831887389888941972664466004105373033942339822590873568467466842540072964169062451771810190441327972671982217052451983406853109892884323896133490143831456426289772781173831478690762205004572956077083402456205520856754607497359691137997345127090897787489145781334351239936979869851206607052105381051252766054561580102357156596128561492285878770221555974434802099215849235764112253885318445969540437160088034324270365672206188537486010047612319186962138366007913394089422738500845962643627582400622633639826654278335346736701973990070563944918673350656911975278837159432122026983043917171512716363310755256673067612744658768713861215222427856215715691138521931339313058344628409740615517406511935290931747669325897287763234767203128329931028082202518138516833376966084170113561257179728771208926415148131872401463536149960932629232097633685143603457847140540136459446343125817702336975413660827481584089200895968318181276887294841666114017917202460629523704777104725491300504208249538916221681944222434456814403243703743105306570502334871316552914158521408914059235424236705520611185816144174087638415146349976171408623203992603086249166618329593238948130742437676470851365464653594315047329868462145571103422625747782844142555382913156545863629965532721685645006768418660754520802596536478148303390121932975735223853795108319655583200561237166374150298919243676946751268689931893319301571492891195283128252766831579215085514465194499532402703721643220387766579688740443706720708228255021262377888866992140286973686069048134750206842759228355018651794396590661015875705189789975568909921993591574012890531760861749310911676137372132844314432707340498310180988110987920689657158851609511388007934544603303506417830300162871138762046565545892412828018330375426704919344001949825963945077173231596142380308095870373835654835522115483485938687042873022588883379532763008461525463218860737245854899188152558545674787287739342680276279473983424624264125994061624714991031227535267927245417173740489678597139640036835239169023633411187775395686658496616165878327515454338748840898839517824254787538672021504694340856512716102291567503518396137135032251508648766446467868960680010918330563611059946384285354126802015660292788449899453487106694362616568214578433525322345501094309504581659766174407538633810321204410816254878551300346717238253300201678052392994893259892685005592078786392393516031602347017208826486422075710850492793774481685712728105829969144610526420007279354749105275872486931593184388168882312373511262062829535256726620346254536940954705269697177988230555971771515360667306090014044886809819979163188600275762502209350038594025397082108386240491910192104016664096753221019614806522701240463169696623274865885955176015957825878935411135266642077066035240870907438230127492610334768295882214471664826483689031832619270225004917649500130134547008711891291965182842712674185895463136158099551113131598636940752468267859315783063982678727024184032504114362351360296585594599928137197149007288946455953803568354971286223809987184890164977603744523131362046688957994228412186336328179798713346002556005674576651727003172212994280879500729671231217955877805257675328677049251658240401192591947905512587632274287523819901690524551352956752519888326243407178615813180289686695467523422650694784949207180596274346838985521506685238308482792353427444792366494866286266292658847243050856708179038200421516996484133758481377964547417334676392884130339473310226234791241129120460477455285778851860569000300001264036540610389436626612076129666579254126532649673143490144732164431494316041528148854872869271886628115704344551189781233726930661405491681313087628493448781698863163897087575993894675523556137405255170656422711494733469439065475531226761560546620137554545477827278624826454434628952495197890506495349523696282678719585584004766449295425799904959898191784347414005171384333592083742066057991076093976732073371884405219640389554950714337155705386200269472163211972493627038214574709226521869188560696041275697797595084712764045944983653006254419107670718648949710915225261261780323672720690288758100934088696125013738908279911997606287722412869219732185646896007270952897437828845170015141242927136498787285182668160273257712024710375066063884811355208646903054952399354116532261993725340803867955475116989524404302865859611813144438092716516023564482766183418112003665910339769259571274203470655947247151207142959835395871895063661951698360683552091788367281891158316033324833462723892413362113880165641264068471094191170518083245051126015329240009014372101574431224465594947957943873935624263032318620949802465091728902525795205939519787011496138321609994139805902482624696477275295620722173337763391410908537948841468600276680670076503235456415202114223244840846289987296674539561973789165480054936745494192819803225436466326931147124989469260883267661869101601536139418103622412896792906763961423785594535663171033104442999490664493501279086315706229856311326207306344527136536127927367863421695194704142096847116681447860163348556150964006933154362088510300585905539173525277874630026125869457150747066952839829249470536950121920917361221411850526018373321778494228976830401179866151875551816625020120140213822594992664854307581750105940876949583114013751826719644528575141331927275104554781903056005551351353937989537376875508788590278977408902850602717274306397849695631414089586963862357549802845906191120886700271050372012589799086043535945993563489675318449702296862094952634316576425626865578551128809260804279150499767666686557122516113300929630494022418594392758887059777230434789449207596621969757258812531670521301188966957624293410453196357025777785899211068067321799621433476401635062788642770990421723861851587589772504343394024155911494528849917729411994761994576842831157129493294810843752654905176836064966215833363389644803688409502803194219217104426591125849474824106339580070889628536784372254220981803061546312137775890984541369762138828370828752681488144307958133854822292239219073410754327338850904628304731845153213494515734196124865630759455318506000209042552672100026859827140487678836060092768631732671695722501258475540470923086695349943457474599138466101823424584059971625047295832817245120357082914534058652827468952880712330003068828466663161627512335216514870011012194567701250352071015972525324443964726254631544629241404625949790371729246044058104770003889244248725974758436845955070230217873623492123708895114455254106007086275150317845796224488240399605806911909626886172834493695982069377798647740365582305099793581573567677949437350739661645942854360942827594374846730313444348757568451435171566466183042637742732347776178420771922342431964987073666183657625526617758594213202495397172313261069513762357068117111394212394511480713933696350748160144671733896797633605959631340447779850327143256307201430404308034969427047471566849125013439956786761427747730759107456715441585624873214615334088949867777257412589237087833596642059462721460115596476730563972292035940637190691985852098750901803509113124997294724181713963200008829575071762028035845708264211114717543784377714493434286530446370506886363413270894906147866078742762089445491465625006913351577187543218416383477785499054437216888444048405581633301672262734349314963764253479021227901652372788119323892662420410546545379770712502969734744902144890228850043936953492007637121187721759557494337012312012700213469339287199603760868586407666936841775759756105380842310396273305828675888356212018168932936902898158383976809482533255400983654291050258482366769820093459102705441344177578502551747021371546607768396832751172348430435518654246415722275986870033959142854870805924587852352854159363686873302030989228036576710716800593886026348176566050381855130345582265191245711201746959115313508841172853730051891463996966897400185548121612170337456531280676466625211718067515663023352124956319250092852404004033040365690239251531950029178883027298310906061083429261181070662421968230332252685940659162508108712862885963657237413180421545967722698657386303793645188891406843782416621456974979364378478091631059086008691398839314364248960396883281859355389391886270045588454846895279056886460590688840399321235608389183354439673544989932762446593310237326588200420455696448625894221103067419846021013570405268835559304388648432909322908514089523752383258575967084249627331229945387257021016665337618231417511386784101606037142536015035519492127830350847560559717836004436489959243218607779175853802549797363427193896110867521425017247170601910522931145006601010941118286879590756869955609411762044258112805574794411961192970252084869772816373360055416090102586383438959933791210176380895522443149143327606852115568980323047114507784871722484696781561326351109848730566017973602263278661833991794147472571515519654599803762243905303517693264903887193238234256330154919093190547258040165107728793043126257395005267227435100572314470066704766860650280468513693063717229701260226467364394819534001512943311886891515998766610189537615830919898404814387477056186959921677754551877650039141868228684669570289522775189691949921488068923210221003970162807081847610260692394359181781483042863296457656852081162645711808784095627180241705909646511713781927697073252940074401413462233945145683558089994111841914040778190911115100990049964579694067168156771176975735802324130231675490889934869050084653882702801677525490240782212754481042861449208448073843448455472206980715675190980543316308077125725437758851590765849989256642352008531730628725753369350491210824307301168773254417972319459382330546250594820694689541879488620736329990952303964984247127864301334762074349463538491283572364296577310264840753329587646502127744062759379583032085692436004637626286220412092773807669430535668571562075663369865072117131942760883364278538382233554945529576489001670525593650837047079165980681104136044810313371172648531949503566188919943039753183921739250862496393649943290512838924495178382954550386104995676767964683034204513830553511578503691238599430822985931799733610770196746910498113125449377992835334629245551169693342190590424319361715944597675596520039145930518669810158930172174965367415816403555590639335896298098299327402639590394303330071661349770120915592994658302644438528976119529928150327072883151531596365553892291412732175251097744178914512708083545920154792621187677514572254886013418157577667649966613748965622918810273454497593649996345253174228945360026341870004696992341622875053297946547660873951672508891969835876589122248143362932770177518411841851344420625145855562493135937151324966208054038253464698798439688693504992751129549204639735857567268287467384949176653932704378592415468691081282856233210370955620244180094339408776898136131209193240951155784426335299795642310369459917431464540369177962359236218898272562339535883511932771144837600396139926605800946463594897116601567665384768014517137864866848993922783778788939640541900298943116639551432896239630801338898330857110636825751512556493572155090303472021713568574418292185390979743605032052445629490543237545748156987124317015872218009228261876020954732443825975027526239683105675763627531357546978075252323231267677817633527000709226781353966770320620512718032815908130000548949297213928132366556542861812981326400675107949645617785950128880704658687820254203454876396960859876503018320738007947758532611541249705320486077465926263641046596021042307724857321166544797120949387348941573959701186890511241057455597041488664168823865285626876675619231482720713996692084986145044328863092042816405927157762599752861681697356773864861620659894512409230968831825465648490453423097493693508299641818625577486208190577699625356433679616001077398203214946054348700392883322335196177395046732733256215044801397134291761465853510793929706132236323613976701287116525322634920524901177470627271691554895094179673694609528153855367196755982925728029004754389249328559607018238650586313565120804787486139678052276534319884843045667852251152847491519765055861640087732551288702104556377186794842947092100461250015170438514620639382798159964919182755055999023224980865465892518117668066371536876439694343769321487906263157039712487196881144739684379822942092979162554656586942259359393044097672360619102702803243936336544522787994092161896654626803171002534248934975267568362496428329697680871230382898382264192419705294359215138312208904289659058789062263203683494216241781586514776608765541299306919968709531767510783223333340728090127921091411288772783602035043700949206288684464653497652158681616639160541420387765158530649716192132148910353290851988602115719596177996417617653259082110095780470254683499921738663350704624502631428607293979776336586411271062226733382236721779562040879378667178766290634433259136531109149898963860469015106823507810083992440400745474133055454798725006745618510808530482693197016068327050578300319359812648207769255702719479764978825942948647810872241093128285118244294629053757739073070100303958554782205555066227949379965145166305112079273762609426625625522042079177548577929370217210266455902060449971814713348298366636815276081244412733918911513522944844624467014496580077535959835175967272185992606731585482809932002608562958904548918065972234772504130179575997754669888948996539962047505046786275219837786642576299658561190017510513165187159815620615693686386211143854064162838156134791070865962494243260311211745402537679273430848976236881425654403465101589618659862944519731171143510509942858865869643698813445063713064169758850635493100588149715110271029794478109640509697545491760385067963556027100711140861089368359683653487515331651515741784402079830270929886207213198156782067996950909952115978689827813475450994890377885876257265825197409965146145283160164647408300374032717452057060516988822518501350776448804081130811565099861800615458071909731570943858072687132885404314319099819436165118362967437242631208638433940097659467322339746838435863160981901319418379815085916759769359053426380375273393746910195886074036309363608501762094968583858745381045827574945572044107346932904729098277177848344222541064430287716628288585586705740763922025322608491951604783079088597554511549024909223894041514871349455883758954615185395941156056654679618483154126947546274531631970191842812107169862807014334045627290559533929042501131529832473739309618628710619541651617685242596018493246877330675332672514506785132421606752272938873018274172198185120959835502940023167947715037704012858120194005663013228596287403794669402438565147255756496331256387293533846878566451103029628548904307669682601687351927566025706080788551600503522850445798128675333114228221472087679287826654773978640190541315713658410861717647974148258346559060816078624176592139706877158876004949612829036404833792720054557989053448332356409012742390484513442330610379669207469181508773328667211324500380335582053617207003840538275816669686852842660612269794906262654648548018102582761107173060735737914151856748444154232844032409342660527914459554687521584323867823052486778132736527373779462754124855435687181866594408644752722805869710021928612257168191305311537940800576575441596238877185329804953316212540694822162936359137154261376451444278718147786539861325433474282286716936173512317396637917476598348702037335563561737782056111186882035390555332088681007662760394604148981458356785058677436159480787829751151293434895767072459636732605803710565510037346855680843122310757738163599229465611246687565748989604142789370257032376758266390811861338894268114104643350854886433740912616904486415753529145663467730771414911193279095378658686638152220059935964056637417892660469457418864136229719926431515571426849391957172569542359555685175505772207286175063085956041141662365732044788083032428689599956203485016719728969124960720169124438786154225941873048521850614193761848110949609727349358176088815098454692672266549259214903401886953481664232366706489496710295216070480630422747429933528040949577459957579733857411793025054398468458607748084108401204937390193778954966407868380983684215964407992448199095773608788349520325880914681590524363739515564873441404372700841196703868070038849815031355891809544761751167093840297748651150804302049384596812802051247233451900272877147398905448117041461010284824091574579498539563076554840334143453943723042924332728155788481491101949256775756677244921410460526188563124065440394482860307366553338894829404925936832615006587271964917619054239069575137340826155397689172186581073696261798030114945285276004229541573206604437418176875423140488220741165960487491336701020891496043312489802698755254038519336757551946780992500167113762214553512393673014162484047388106865921396356218259523857599669377722571147110898914742223999634663715686766909767035004270337311219821018266872655313063581128028413477687088678878100747445178353250957966391824032695765017330800784455351387303160175129130635110656131097711003789488459832554763646441932603125505694199978972578130431240462393793401348567990573943466211831453571900974435071729584703935713518513058831851528314180185022603533838582768986286468204857248863184113833278484370324748681968232734181128004167481369662475471198724310783621470617024145660010488520199891649475918473706724768204361141504492662707747743444385034901460247696805339569179731526588882813818038465660560468732021467623796090818261369539232534019166582992299941161943195946943982890855547293130852320973603159918322416807717766921623892425729826512343817525688276013003381666821869588376719025315835190738379029402833057571657208272887493024667210934611681462639218685500481458599656194940761562801778197669365522300725635757501116645013487107960904684669904601553559118519146668351061383822270610787451882279365946962040690578342008342594817269420693228530630139166511795265992229057357539617705712086793657400458946274245678221300471143562130033953837353711728328767578324795302295740531468053604951227874648528224395041022929001892353345487004991509867648431663226774984594860852552590593462638861899711397779421222693147490358766562219242610443686331128032444928161987402423201492017279074823898995598895561510895942702428160022780361871125679576566056664545490372429747495183779719159174697551651444145506416015026010003251062780395732867257538103008461180160301042817334170833318210967620851397485363585274892267393480855055854414873053883905043083346775323620696930379747592462423956186124327533503012332309218123831153165155342053294721813651246634836401583100551372574344399286406785827487519837867708262212192356373289655583973405987167427357984644637570381320637032062682280001558566433136429926854483018703152407147707525667494321665154524970794816162117287543697623889761745755788439773487956163484324454031489287771422694262460514860659304328360401326894316069773724162071317235944544429501139797797277993143978375407719707668210235519420068127700179170412181459848861142062341719189919253610394232179376057783080185233433122689080515070378697962715643785734882132608781309178079390033379537690667660014681186519744113181038296451038984101694786040697844787517553718751373786439966347707239427651913912419987387205604704122326390054256668950431438955032210177633132430694152028967558251661190795178790799809384871408985766452089763567106311850495621840282212260373635248520596629357066640909799306365824665265749321675850106321321485549808002690725483886023282659950903852229248183841677637006637581353763624800282251237514045534763747225959416525817234465588848290693794328953880605857640669256884706337471722762011785634685337885361545428313967706962489550368742681623032293280880827541661446460881278455294860394948809149937067875938310062728598622900357161597100188647618772961554267372310275108207906029901195021634455962495905230269310649539181202692175269199145566290790808189480773818157918743697286126761581184903566834551407989846936897928959687341225341073403915408573475122141229372533185879618156723732412224158285359369687527286534970053642397353846966784019379058469729339719924994701056901192921666560000326025842160911100843182834521837419538018976661161450529716677843290554574637197756735450017013945084538880414769968994012880047930589747304889269244035396413779085456917440300811032560632031639165650923446486631979901300767975992448049582012487974465123757767271742469908392692371543715966701942305990530581859198386128177283133462372873499127873262921144605619920131338848097777185017062129014352725859091552980456629160959519256486795021764638637443004238107543529198101988612096116558280044718545670035610825079856028871158973885857153433865844421983228081750797681025925452507038799739085366103890277586822692220938956573282289524900232979809869859401451932158126810442926083420910253533325294779916021901555182759256225882366112614462899809756172216580003821502957084881419584916880528396905356744789531336096486077977815694042065974434672989707255278219813925937010966136503646528298530396309242092332322830193369286006851800422363016451597160936322823059242313206926476963205644904922325034396483624763532717260934530368194957405236146300380031779436917124221464694780887506841747632094100289571448614920991477282756660449616488467073535306149588376251027605543470607873009106632254400264934997092829414514235319781938356278252033150801166920937247753604147445592568468378574721657018142845484820749123225555100107546582444469866669880861985260523194563167928614485108119205853812711091471789679234181853891325119645782933490992221549607883406258853574866347201454750760559900013112774928802556924390028240240123389900572557417054649161792354420713408616640698495279714949784631164770966263489385090328752767763457335454660891577196525605075166567447164283761962900823360131566138126283191885456395322268810525540319888228509320759367989355001690063228001773259212682520819495300455957277464081277956598347114848052243586249845454620722554039030856316130175310959799673715713575852182186763756015575208998855904025858891756944166737667584084433250877342814704479317516767081214906306102557411836122214381065480464491622488538426243434446016676340755967058159929864160799496429519019223405217056586912337920633549161791651846268716718072784947891885865118864362161831622984865553322333141251958515772598587454668879702590773106214639935965926127155913817300384791907538676927812108909524086838716743455104649538172804473083354897891281328666816302155645815073034392246270217352409458200775608569589232629588779882371178633708451897991054819097888243985348329525950505901210666068378477161827563857820531513423139851237547943760276362327974102428927797945816255325638313422298410877638360350766496814242143500300303739087307864743402169006844489685300388553615209768652109889500348724707997718725912331563219150182816187299137979158273452068772339469730786873315143913781228585825678340994877787535579076528091656276211753589275992927199228903132377727409742823093709782426812011312277710830379185428700941786922991760082993285344265230805626871904308512538232799355798704928981770352735044577521554074151914193778564697108405022392241497914398283126003856908950655579096468180693913679499421159365888615402888793581910808587791552762126044603598532754600161631239455789011635719594130845294947210453766770813606282433729171369025174685003645735785681699383559964198490518514231131485387542161702912288896178667701242374336119194886981134674330573467171230292965630793148925235933587126596296490854598987159215606268277688583759567675099117082519832961104302927850520884863822659683612729611313540850623200713305654344638458213545116609163206836427249998720992664499178378851909553977580825689607091628437426488640673139669310675265686552822673000117229076907455570841941838204787413277011457329127377242145578552339947660647501078746685039918210764473387328281075168737354685445265011616356156425332481746418333882360084148183796432733366417111169044625521956593520909077273056023393820914762239095851036316666047641761843589733807276632000352976493557570351580470145779882350536416813844345036469102079658542634658352853586001673404590434203256671998953247096605037372411480845173576721916611841809739578212839381846025254323264212315972347406118013771840376973063326220686196858741587304211493479793651237858659062898631303184138985309454666999980968207859256441039170999317817313174799582387612765557516845960228345820163360937277931110419492384484910853167764429448306242809537294260440445854664407368866117565428613158363772105247352210321321618019448481139306417294261283528329594444958727574763315243351014301655989359348909516338705425411572683605205841294572835417542991154144629798756579570530442395188122421129576499408258195493887947854720219746625441372368768776702653063309423877285074982990403631566978364071319987055625741120786891837078840228209483028156166021397687180133463349268252713800462767382634920962658814594580237083143470309584801085012623051158792463833956347747271937197761268624860546622237160245970226475614846240885407619150354034736710498753279300191193977277630741110242893073852275775360357656275251043653684749109541536544880892923987720145879940347092240220819499312218872508383068840321980032828216047699994696956957529681487222942009186309768482937144202991108289924263455083348065958408021131671154952560468777324070511082419696579175230389798444835775546502580668749315658418507486427710684654930190988000326027659416648000237262111140647782087786535349910576574874853869741773361926207920279201846703449140184408285234643253662952758443737792867252137659402581194922343345829080623907225314377339196855112608918509431662468410365979225344705628603500479288778716657425764654992278140295144231261427702432424298845254324807748655574424966893383324085849205701513009373633712744414631291119243047026835013809094811201626622628608624333553141260076621537796948694185181925572820656720647126458383091505717383857936319959224351898615879625340043150069016320359391260166064090163577190457137428585354966462771259392718925289723068155366268652969803326880939211580400509863879320836783411470474100015954679702661984107713801474628519183963812402758418496010496685978285945343208780422071471623183108670506203349052933551638177416072992411749406347028238079853408659328840247224977259662886293251588597501303624362559249464833265663930071757702288882429006038215547018497275697219997819357244903579239666957518116143234559517084092640075206447734182916575783212589072807071197521541502226987278083263711464245055042609769361775581389426649402593904059548087354113236086061017867337018332526471465967187052536092943765954730343122500367342419109057755199007888392555368481353128043445766000704555447210618876088640833762459764375097027205046981230808781641595254002439949659003152799194345635056567829835076716909792970067144475290637447316234083123186571358513819453153137666103423495411106957262271122063681118202114973332935333937098568150298428215753839371389764779978003722911980880745025759842294243787588591688504666261547881077245758516853972226491354349003196175524964551354681848880007171895062865965467012254246201040744145214831555743142946501553615975874956905776398638843026354951486795075477415665384506910718194707391554857870087060437925022863743877785354685468403622707186070760987801736170534619308980459415108685680978059905649600341249539027369635396375060646832351513506054782923898520792188979224409222127112590321942377590894124541167043963113702128756177718880007256666185137829197843746743464804904265987309234633778501241750137991897544957989900828761796594644175108031554431917317757706429178389947005660348421361195049171967366421674962935679403853481117781738607122145656586399869873664409036495191885383580764202926805166985808450468274566027012261361698637176943560878000749863750005040813195034160219025600402990376249791695851993782227960734584270902675667648042749975099667578350804805349986488206128626883739901297849499910568305379422475734428539421101192714778517954697812254007544179352846138545871751668057358071724881173626912963151192300378495996118920271316110902244904856962356425861841062914613022266812864552793755592803599195232996673791628894880215189977872735372782310880382097694741459690432936196414321222175264165739214811452395382290973562610618822804916529394995165400885769972047208983514602806480218546429695690860727175727207502946057709797588048872909697001295378770716035422096940687337607068202668595447892988915600620992673959897543134893954306709072604964701266727727490693409766239337457604530860727127759679734007021106353835486900663126652626695123699376099420825570343444752874009514834069096531164631461613086503022205321703521889702322044411990807081115817144322495567900613436603487530489929479817009209574362927336406540556465012406236984391543720479649648955365620137717366503293665488593986908032046310370248910038952699769259358374920611363332079997120567122583463805063854040817638398132004274190399519397513307558882830964680286302927042404021554124035130014414519271661173913454592556901091832097141548073056413901761556532692892669041989471660357384070291088540837999320012869508481769656983263053796272402830091969048826001908671678670842771716443953231384203302374699089443406949162378818415833316228345628491023736358561087264077594484612981288164419508139404741115697189229136880816437841346976550853659433034610924044746082736727307661889842272575363034177872014028808672015236011711248885714022805959285482464141351137264182012493103679911628635776388804383275287859201778416049508350161404391932716502422927243116363440575342702686925892654832942330960565631133335991138602523710422530248388455788043529730875086631175297230496305982399972389911711329625738983933389562514081687365692560148896522318939255212366326886363044461074611079612462543830106629122779840488327192298122370260611391121952713238809532500899139597653789983194333089575331852257407748982659986831181048360172110436132038322000740340719926697410157718142399076575877444271722802065264971823214158013905352912715943885895893456149493397007419981879699119779703097342108803826537320419161667655237015233490196512174476632417774544783046188736296748898287929167387937147691968384709638576581856807587133922779145442253876500087270319017087150467425977490099154564284508933840339527771706789812597801029322142685361699715559993159446447153761023989839343243080509857181938885931562972741304839323080602044270234728096273564233675134143339333155864091127002964424936238642022569322262966142108036912010251723032203841995442895352559927144391485727905695674976548408303372217013323875510467307152743727339430990992807821184837162182411711763218364992580101249091304935654131073538865057495540825774414045566371181183518016282081190778581662454543379292372539475479279479271533362764762316153473102085733918820084569219859646221334147016382430110834786870359974042779592581006546982202367364107450525877488554940375197420917596488279777409680586843335422696460390596451127661962600462732928811591470633144000297234547228415028780652389269695859324495544576352702640978576215614680517965461515598131487015656206296013812962253380634348445705031472129701112539182843743823010809229723279252380615489850069162137888835974048073085641526436819114088293271623271288164884324462905037987698437152366501778333175595476020918736637337307697068656608485734998950552975311893936101774103749556111406151850012142360044033483535977221701801326174678397218198848661010351283643378427530382370925029842755407481030685437661671636570972005564967039588494866635313363180544054477731276534533066586766761174557536568152575210825396903638914253939246094171693107211726235591528684883673952785179158372244719426766961504872167786432915151351143173263278798881050940892571271889905839708273292824679508730745694415303012790860318989093095629537415734430781619483154464914290905390941385589193260479004175546020930258147123340587226449125506053793006646663781756844811790740630406838106576663320155878110072350285364875536181333277815259739037539919707598785573579580037105920183515063733863946037660817481854804852002714528731687831827853731771848355874765637851584915309495771790141077505548864714129733480413330830756793751685131698249488150045244670942622853650933517849742645955895399116346645360781945299143761408579062459225107770716052708940137658046575515118501804902831395547526894084202191150882551024512115029539464421580254347178625151481191361677061748704545953823416086609629901734912878235868616519484661792935532411671841821730456849845189143906823499913370982555019052752703287684143254806497923866196369133522290158011444681598415704204646301312867320556889004069899985914216937503031131930973556263291923206457873910444442988351381785505681262127504836726715080829771391802665015064661114134565575030654328427471877090875828835631683779924860908323036262772036483432676039454647085894305340666254774331355079765737351822534302896030744588039893112351398420593469653425983198224126497638003439438451745479995042774725035585385902111372173083210908984185978609557421845072355512745256576544060823179254411371472925711204946887234944176310043576334481687972627393646819708271299619843965639093790244344395458394122564556692743372125466054029701001523848351341613279174157683389488483088763801021166333693115478157131149032522657139920504385053735970682612960321259292635902381504710364059966385826943903123625436756052986337155140442035710468712849272059135330146433917464519989352364932328517699454348137630811848301810699033809718863828564849403231589481172998054475187055982866892759245775385900207899956339474324873881910482474965951384921489430251278168245805675804170878472463310999000460278137544253031640318728950935868977919704454136183647436785420490957691518001704134855892992749266444391972521400987907600729220945214655400087362393290719981906079290448862442623861277265341977114606384471706607522428089844913564966098825746924779281536409685067614959405326898449878312182958085967022949747836306321943898998478678688855615101891233341128110113347825777005173474079224934759650910234685555655353196210893737212220918844984699037175003928848571929819873303830072914999562810063484313843142876651457215860718546449906562582322808375335384883050518117280088171950214916142527645414123506460037857277362343132357445239902183086226650003128560355787529991661283971809618994394507024689558218415581038631905904469465603196311794901260539133757874773357439688895232813655026494792665875552327188112897606454734573535611303474004134578361658325111574116489340552931705102845477714149239700689648998285323485933568212082716906341065082280593638867363549976547432486861583503352864186527509862944644318134072989278235387967346731220201342908763611647854731261875628979235025665806563033412280510483168351439722174220428120200808408284259357493924790196190371592989184856874797191543601563470511648855230504313396711395658945549963724067118164228182041802870936235023036214238852909720205320566815307122224901940516925338600978961286513083293332868421923240449944476059501651135998044729471695376525270269692099586013385360438212613638003050535870904662336386956038032656279116754575246335584199223500249221080489299852103576043514442972886962947920745792512983963256694456205309154753475582918321522545045486271723211412124548168837695798045226007055772075760880615647773384182395625287313796367255547886731884578025342009602563006679010847271880371395257028099393408919484341037562891102179503182157166691663417831928257341293558991468278930785274343744969661721071744270858864576329528840130305755675262485291256178886163387098413680983055276436554226722973352108342956883770941026643394793427145065776994112695928919667324030367652843550551044651872830145164768266235661480540843029079784444596267358603991526450135257405680461443700682744901661222364756633674777128557562507416561376399724371985011051750487132787929543687510581802628180575985912869660813200065051479981675451403341780426944284113417478934456597603283578166592878463449603551732096098970907738944837928103097394117075611826385834541528877956157955785009245061681006257806020162454546961520599218576561314211638976703458825913240968031604747140528094510186875438359509735208446199392698549543032784297596654335061863473169301773202882166509514041579323982645730522596238996837064344019145479461573404099423769542094259792384946065659396130562095781414728788670046397907138445780613003706719071222702896658006417344765840461908734796138393734965787306328462429186893011025811046999514987166775163998537312450274827194145255081036472772237579388436777624248331481552266225022186703892135107907992876855179897283638117197545887347163369514127111722353280445531773883870125126210677098349278603575875389102225857289827241036294185420316883524255803130522442578271363495406324402946745816757406847500458524200694292121900263357111451728219845377227187148746090184016914759575561373222709573102351771866452105802764438968183828842955752921153755766871079145457459897787391974753792370008690349017463291502520144172598536241833841545027548872984932545511384732812913577034332881672054349878108160137532414431051164431377412341684144599724496115863702598343342189521932583739602339612920408841971658939621351326311281418664932148667024462257822218304847522426783964556074691011497877766502163215274483297691055969943164917056975039483774382885634124493973246138310906019437554280616246018454905742977608806680297065826407837363278907444594868296978966079937073324263973641004073780403577788111439487366413436439300507862241879134812878298058566644876731821129038116902935034879677930526618391132563915630230734027316354360494192746693906356243793044110963283911523064001610944589423406306214116968127288660959333495472391324870186825609619539531281924303189276118713672586629799147144761565475106748591937919682281509614987749173162080969840782261923267922004126613246923508355027013666516296125635531997410821697916875620728526338792659985160984400673173942138819539754797178646669693534075205309551063096538428087153558140547768178745880293242861618278245990675691655728726544173785753260940544297432306172862247599070041730310010308075105837818506754160931235231581928223554048370820686868528781062557754625038717986553586960676200954526795536965395951462794720429618719741100293575732697316338274746486885984982405528908483089097447378284041430417150372978254392095399753477668887994233979643148876161720457184658884475871721688738393617257973174823182471720273731858711678914930411723996909377084203651763521120343955771676475105458811761260179242476282338510919717806674171240521424406415262492554713014568729767444624317376137732767863775657464208192077072775352712490756964309753476387261449748476653668350715602436363521699284936581199548951899227263453145986547318050772271874805753977283227264372235801452698235928672900320611630571973684695972001117017398119331095332566710586255916839990408097648430657012383037812158424603248534029985380586100903527491427841598679087604205590120128035135752125446139131832408164764028224108972482394019607267835936756498661370579818902106998651754670777457892070696267812594978382230874082175319548271422277483537567255908691882977680150870376173896020809132808543247248579611406722574421104610281032750672658391021530598023683598994487568389690367942232450861648703794619258047861768408378075245413329392031350312580926898675992663034761687812305873471211619954669156074650598959017187909651282811602734717081177577591672364503429574985139333817169923335317441908447968710161185778315067115996328665965064857581563750411237596783604308868871362977489987527687722487908025743524903189385358009404596077547326995435009067874546654182083266785612119067103115060757893366755149315330569016030451554499182531509788160221729293762243625708531976847673273349508301212705996411902523063062156022049399795845486922851175607088319635193224073956204814006949610517646298447009208569528978698261708786477218461826738307249975721124445626820382759126587473243223363915021635842141573088117203819410571133807964997666340906160054433469023461217443415815702436399854772180796017999835666860561398660317629888688786402668722192117041160396282945367655489998423278143493036665168853523251111139933246651675026162183303199721722286798792826974654150951824626240285164529125949126053382235722175552880766571131525798115326753644408935789003276796293344756291062298923191146719678637200727824745687319747813134938861788653672663721589150116169406415743003384616149599384385978114950333677758388857679644716777243636810355324748141051908217627350750760922289246442015761272524863559206059338237311844010838428373907825207145195621185366163076145955892447174819762659579609064329623888934543131033997379421990755431886797773014626476653205434149344007967890922433910162351112767207091358868496922060197463127031660874509738052120033277031065929334490972009275411343375030469602221419176348039076802801841024994188361944705427519207039140206028667072270456934721328845865033436773763781776468065785168155004591906309520167026985191946940819110266517809266442317103168412187493555163756742865766231997073324148524132636441626431811625034847552427900967271325527783199414667997658544420949465656363666855575242276630427566223635388221731607458923361577470691217849207103300319457693387761868561549130540720299870892958608680296801438610772913793953845973252522396680118199033922534962568318216520309333253921479570728686147055665656485900095940326154858527162608945314840549680650242402775242271599547340469268760117569521703879164264147449149532328160289935838359715233504934574809128551190076484547476895432530126231245345656738516018794936647415813815331116973284649118471344435154576917815941399369203898828280745738999644788118301205544990956324456835524044931697266598955883872261285794007943972883596583320328766189357537652910059917946903117897656076053706357080522939840364772295904938004299753364549470852646944669492451868786988127828353657815468627743912674771793043105700874300521058980890435904560172865560663401699379070858920078597466448602107131965851083462062319950085939077260248518155681390429445201751903863740361060946641328416561766430362869923152610504654080462621665028547005833890453964078812172454401108916409508598743900032199451808575290487364080813979567153647584276988967482189766343472556528487961232674900339899485882393213609755875407791363446780399978915560386805746509189586540233438184438148787829230098075280177090011857362294021295588480506931693182412787502373370504675618008429665426365026694227484604035166483599235849034949330264687519498599407463542892736882783334242368380718221408583950168997908615204151496973793764635899693422774254611025368089749653949299095126499666917093215375741589413096380233191508168895632374999307972721142038738375457503318036053132327196720463779054117723933720738731113679678689429407087615747219349343317846439392145229356858708661801304517750068647786599218392075599566571854045444005475001042685941663678271247096458654613653417756697236467332718435417511682967974883103925510882156099286157472260344501055374636903497152120777102458646195324952219174533959797596595358565720857695874477590253719233315012793154263801291079520878573092991034873749414420144527815570659693446019969278836659306502118067085113452395413102634160844671231210744597041190935929216964323934601083265682900802490011323257490283768084204904627852123755130185070162239515878671300045342206911368178601215815809132068183384183710673520123007043648114982155062696777360494062603760495602011838065476466343872766236660950725630995915727093642924747797755783071778175812059498558302037092478708785949539697567538730383163274742136819068674430368117524419101130648545103187904992694338433442961627073083974783907461208484619204833879178463242103512878627058193766850420377757384335391594719180296407749527553868404025222817911286050090215493631525283801659116963644810720736182407484931452000648995160180550865212065129164628866634533980324531211881789794095107652270915293864186374793389197594138506817548259256973368326727828038191670851992777269047328250495946445968362605244683281197827757085523976001554522176547148710855750078900412615379650862646408570985004143566782127592621861817405942869375232113965757030297948508304283299687521479374419110099342309423897968105527205314925711678654443068685213237846016868154001221688052503081993256847866895241648461824190390063784589772850465481240995726347942092395680143472774658056839784915565666027607751885377301901682594473502687315975101695842389675620466509734538896122358161414386954114838529708394341504428136067796707690304688595271118261128223168085035768637863595612792183901029202352212543263618105892382373681951213270807010408675280939663566022749952262327039043088520514887974598156869751028044550711604027676856819201639837597757310719350639031994890628670467236713197405480733632818183594558853754183649890070100157335886637745205706695717780392177164115170749118295167706743988482717185427986034249542556959645982049085848026904835168554423831049919709517204131726819208725425632677960551996714285355351734548185794414555832651593288260335652962096223264579332650842661751808110508944860846618890631643484474261612322364089358326172230217394082922113149025742681506022683405324897129349899634387457114395111746944914861621199157286485068633941419757371034190396242601505080342858200475724819999748440448521981929334837461041666312081516586862298367844849646340323612114755262888829021780536416060258911834005367604517900429139246342300977638111248810147731846645805248587468349557981125268484766384097102027910930490366686658568332662535245385687325818758266078166987112792677796188383529101303624988505520774530482471213514973656081990733948204771486725202188032661060189354648301739373223328405898927524426784245607572067925421097518908383480849797324850270578782187971683848152314924223202023988411454889745911517239980720622177266605893391913095971679330623357701492118476003111736971925477846505143743323001078063926504954674652097901068753699453400560264656320948769024863688194797346039188480930384755500703991958074338248387123739512980178173260448713325934525044034891541084373541167081800730404088271983276769896323143682474703089004672656048727791291314655906825630062530214862016148183893618497900999699133348346759395500566668167289386725924391810490257857952593504463327212925406546593580565158452179517544685165221189650370758959998292099997754880069899939496425858440413109859909134749576130681915892850148154755028516571340739768064315516956798719827299510734685621509014747029742054053274837698414220398557870420654716905590390273344261367134998207467894667611735659741137871281130716185064735611220071661110291031587997543981964434645388986348171669826015240255768622041837049829700156099759745284664380605601631004411161229542183459184054327766406764307610983872392069374212614260691579426497875878143995530490120693993826415299458080210957647294872735416088508612012056969918485129193175143496785517473612282996226982342688982532492625048459871445027284810656110222974843153680688763178473385133042221151318294688798378497356753163779885083339821520153072796609424956522697984220171002984767610248786144389470823724208891057693756620449311891947527932952110527225790849668345514356068652243470769972506821327646151740723651655165194945538466603148229964402721270780945253037613327177340651123973298125982367468268909985285013589789168039388159908203674538079219325460085913583102846630140686424237313636144290851478749449180667693151334274555509336102895779355238489892650407286478510591070697528081978535546324019525735414040716720121210697933359630958658871798888260198539763062140950145618911185805244016378764848306157853927851103650615698069714141945337883525285259254385192084693664992009515242464213613138645325220172561934202948048047732693471268148635904332709962336959295295122463479463637229711482753861463170327776526102505078978602818053814315503504171545694226505270541546512029437539065703944929672567190150675708423769323629976815283675606547788819358795670044559057303345632452393237454648578071353548874553249137358242799428400053963467973573431106685214991707556438607208244124357778653555143581588141828322586531121114813199722085172827124224108160323459498419431281728545147520834882396859660496792825399367301882728857939090137766469492188931085936842489361457053654427576802501717270160531295877724641054158884576688475352904344402131139642735989023602640708294984038984164422744373988104839224323197380115720339195142098515291254656060833479640413108489228074531184511148201395258621845873230092723078877877623376789332255131110715472682733412229988190586975356748024783928522209569886247079246489042948021319010107887748102552640782449670519514341416048025549713474854654428411725640593831726293130928555588332116265654452226111495518880101775558019354058424614223318764980767211400242293961481611421786346286017003111117223842417222273499467671079924258940408639770988566381825313603003448727479004174506674068434097923350326832793727639264888894332727645360621718591634510835088554127020942673165340988766536913642189765477758674166557067122282584611483596116930123333918116253530777732368735816087084937409404632325382105501254145435429941599247089360395552080131910709484367277386385175239904951995072096873168704515094067130858089608900948287093413415811871216237676415099049736929344122617243382501665491891104695309692408274830671696426306561428014873727496240651647214893602921840584553797284993690948920895742789059162439573323037740004522239182774003277250821787292158083211756704925175701369514354011978725424654966843016427519622437414904748669187738162161778359625872803709616410200926703197454229507371390894394914524651343743005709930382406701069359180202831763405745579903899046637192010917330251793305233593191099791438517857010081060540748762177130818178895495806099481101688671639493156445673593195780486330575537785816946173126438017148908243476680788694338102360017878133728519839713814694109930972863917750293129789927445819379959519136551429416391292875799829663438669831016974490579756028353906792193645309924645347173909583521544621360729746085134918440925748689124137028325838435524282579930237610391917333345908163418841760473061333039508536393902321480103937439721206629710008856275973629544269325890937526125062535179148747048202975577661758094749693840432464284712787910742773746343463250300030793123169609831212582341698407934866682928705910388712370577579110589933038704741439577516113754497764797026446916563517099041859441459780096732374237096638118608710139156535742924271289670394162752423686743129118827691754191396726710766424942238315118353404240163970396276978461685283589992427400389194826138479480950923704602581180191195003688653780984254236237854355268583780737654457609213582125915550618985513528025673992526451296694570365715811173916605929247983960253748873615425679205121465722153564435440826881417662169637532890624474682987346692353899658599364461761614709990377202523984474119202228313375254411781053567492625240738109871224806520600105705717416101526275970661487789329191132713025900422224290848570620488627921160462964491309712730429726313417510071789835818081502936243421392548371679288817458541876934456690913484761437896235436530334786688147256109871930313840632674889419154457524002060217897126289882506066515058739925979328353727427966806696259215595286222786637788165307972804201422360822852324688357646486387781654161030059893568305893855259870023864124010200873023893019913623145693173531985684556602712909199370713326560417729911902076177513775963641309022690808372069616289119411874211263735873666179851341968949054906397718912016306408556825999839594826828035850387627914828117596287403252942675125368043625607737141306541525060442339160225206935571973236501235358933810162074467712689152786833920073807122127593006573518710964639790572543175865487159943685061324697525841892798382995958323488836266544704518235665673247883368611913748198093019258830049491478355342714403326037206961031788609573297791382223237476830510044140991836361728346698486921848510794202927949699407128144727750291589325935743229981810835631930882978685793600144629988693979318558605967827319223764833132314144873422693279731419832390848458339400682273413847799353215849744666352140109563463472841080614217063681513251534255388507461680191534131029273873738336224797761936115286062166061553473479154934048631210818539827904495238694641136635852325387856199533121412308345345686782422192778481758639703937845572064883953646502375488528062841808308531770082870683314515592834241398409062845520502083791268911776431552233593387246631909213689972212490148366616222782674800919098082696591428297176636945588923708830784712247762344799220454269137621694882059672756303831400455658495205444499682097830544543951300007581892556141860083060551646228997917082381799278040669243977836940186951292254030010437652312865507341667793865560214438196053233059445072071220499032604637041678406712171587382603490966182204007394278013462236455136152385827800805624459319742814909611025443219137095470759397775822254077956631904578836920627630973988092256435891653511176953649412614255628224543272159854465628743089427030825131565250695033951193537583110042840967083069137489511480945897961372447066964478009718536576495399089717968794101383669625583359590660863736538115809886907238861320710712018017711267000798602514347500849437951603124542812091222220175290777914997448327834425825072021560861322159584723598922992727136163521980570693993817854257371681702749332326930260555084075581365031069643353199736318701912047895747111549954325525335130460667722106716012924318560791606845179945156843939876426030907916362651766443327061423983781003766301866284375332192701125404434742928079913316308783608726406904445652041557170579503731965892490056560952320760081320942681352455166759369923122989528432028791902856994338852967427612249638394437935299197353314271204518419072798146395844884711140938374001420944979322492344536191884408895138025803573837790970479483613636317502646259485948536861838640171936830657655916423344872014134052253784366230038804932194128686009591961671370808539992699675963665489245373275701057396109349884218460283996531497135547050719124797164212172583346158198633099216792103046899562002611667927783698010906452942011975678757681889119146705257535476490358874748857505492741669891721345679650458305635978407549187196400322917760813781503884224454260538727060098709258770208571862465836031907913775691944149044375849573449815199760226085808464397800484540087499069771722624039193821642528375113870280422154837455446073902195765512675308336748011098193326624749051323013221706040002046085672282604797970446735025126237962088380564792899265644022611944850142834266774927268225666554716916359326614409298362681626608707636897124787089755754302728380216213017613627139647842340968709806959311306983752847464627562228249959328475487389288197828465659611387489389537765880540160083383087519663403114666503554055120669855256016108875843053000538876024455810909476126543410006603709145325801532361361772932056834940933941836344480576692301086003996192417941095269551354736339997474751015615830529382669448349010800062356090572434837074606013511890921588625525734465240323659489561372192733883210481237611183198661921737092609860735979712040657278978808226815007410738294310804263808785119713197927543483837733823502148412281871647222553005436589582609865995614944941866310132819963341685378381094145648095226935679688376164192191960362262168462943121837504186632500991451493834793548863890432918077435157144374954043019146249930209240737330866556769342662997265259039315042602317471429098263867522617510093970528404325992551427370773830864228335646526211137865963514563648779729475202372891601752331132426235496735175394843927059384416280828348233013931993024875621032196080978965084760972382517496271210261732625657655145724329297351191632757964327232741185987244546997784256326237542643028948140031775038864113079163750201709526794502814942488733822311009672941815938331199674954202777383175705819016810978960384199195220817565146773432392861261240241126904672756774381622171224384976862156919947994845758334458232678896842925745094206629311826708684633221892175349379119794373681825637942704072919614958568551316243170433445813307046200008537081038902878155027344879397733525937070001532982188451689025599399757833188972821337359387730016351256632721934649318419791557606228952347060574335713792304442122881889215651893329935555602320943740757838900887399874752936564396866722396503476532465821270882916628085924513886584788791483354757360785795709915305177337051692592573279495836714375453836096894116413149998122303248878801086279418253805947857882591812877996959902622105941001274100266958495026993807715980202995827560006883351993293799739536397377370046007112653610846066224469238436695977372204215892490030177925066813057717687008961503141125379914917064946154378582288761423139032375982955643936378648453437778327875122295640214400977561318452133586729616552680533437983269024534093495377436678405675606375492508584583737971427308806685976168910944290498487354728070887846064198885559273425452574737213928032441078424724879111912516395561143519573774251915398912731782377105456571118826459507219940523596122275547018951740725876987469581468630601256050190725325459481964466372161546918617434401089055976555744774533123987851043460201010201309046735492981262175991794832912294784055700321148128013061463637538690720369992484162378639362555605199794854292029484675429153886060635855827439307690502774306250647700232640789940623164074528107808888865950698483581604387702695142592564895426138511437100329229089500001375487439726043822265439403041751143589921489691231384668513675424689242915962852193472595654127067028375972854120468154314132417044339837086332263061876027718065148869439151030667091872811056861413631023586892308214264783110500617851236572289817524024990959376263511393295963334047296694613973254981780084557132209054420957384522245053952275102045701364379903254788138036961239361176898699105820617025418729251113904696800654262172701678807412104486818006237431438163966908556247183820409575480234275265754516164938702976775466124183982107732024959271972074858397329978614149925434432701220519207176489312940896619864699714645509945144006666768039081572662652543122693736290819792496225202514950247055575668718377783071479278196996494920683579696764976903564988397299914258675281508758289579089098454065541507596954865118476660427682213753739103298382426563125218697018357363073059416090113774743436614260059797128024983089702576157311813957614829180185736883961105556927568232280619616852305163440519898915571676123918078314532791499985780498519827831022207746433815633839197885937256326539262549560943667128028691418143971910915689593165624447864170993933980708380725530675853644015448575910168847833827290129819294621073500767664206715793473804465245215294731170028839003043737804312103701247362069074640385796699490686064894599087716202530244342823138108808550919586234278667732157078846423219150903200777704315078366793951325406839522405072305395588027979818608348915323746505460214931694849773087026488677428552763133122037598230377940310628116383229338313530457975822536600981213558204131208400063167894916259924958546233426918883590633577184753648226774142021602457051815288821493332346560651430179856210876628202148120874127857198119024731353331616419840500027515872927925753780907458024666555704519616388360734720970232673867412600962460828457973131718544464786006035903824518776947032831535796914759431226376208229477123404453931161261872492664537084764325647281574791614935608134183805191119700893733585352576771413548454356761589163704003861956208978447437720629608991770243055409463660379327094565818150042259232787692217702347685737005079413579515585456366663524084882584245127726841442232365386017289588511646560148739415736032700729199333158842499039544609127335167009905695288294985929881413809405397714433569371571628801490453437136762889275709289024750260564425956431501377089866551721710577506145794415281247043463431037942791532249670975868434773155842798309644346529907173688116457114039678848873140928994328544134219286386606580001469528768295428643430991479042185499205156915974894170664722120153446116318827804589569733488470849649967326707704418474703452768002765062020977570072905892988505257361807001246940818401293478612861597879954111358120878014684737050620158654868944263636685216344271836726747339814931429212166746215826194204890499636368568222888538857816230789075759452395566516802445597364084754854480543359236793169386474993647351092200822222981237638804474590192798851341786904068839922980529266922105798175284858101528579317890119585479296159385924010310128981608193078389183000068785285736928521669675888050248194608489189488600229802677552942836571637155180899454947787700707630795664343740658890826925528699561853305458294506896257484835962973369751732633733004582965914590104600525871318399171348396326426369144063770942486368702846934594399801139406694084799856559624782507379950601843645215624892079700953770076233963252554353170662720354056758100029442259251111693547093501538059363902147504827217409602418202013567002349511350233406432636198818781084354692404905497463328062060811909833666943662442493460119441584264169681071047466309427573760059543702194105301802890086773602467427476187324635937474074393267445731071108918147737241567491243149960700130709399221537814205213056077009664711875962527021684029066973199353486502023249156611137212061266330821069713503345163012794245685512901768725796496601385226667913303121924495177289319494291622374106973741322020613575978596457356662886537736365728822070420395353985992515409013806118746309292307579844535683807802131889979599682876324845606164899553454986319668874703182143148631596010447624050934083915261812109292601156113565870139628161073793718579495173557180612219499581571805744854051740531721779216015961698757864032166932751381339377484727729635774703538868534810353673019174416770817164221173169219242532892448871748633424682289509521761358472229710881116432248135916062621450493446867650348725970293229233046227306957067039926413593651785492194579607785903386115025439199949772822694034060020328771534862988474472495844064700116229161291457471051649747313996157774327370664090372507179620013625947991680373589907922725859877716199442377603400065759601471499791536022357855468332723083674464190483258471905806421767530925290023296692302516569329193403973658234871446244511560090656505704123788227214560226126606168395540920921271167076764009102626789023688964381840700306383430371025561435811692520112467180273011297990202377525662778437464562814825921547147671641386405712196777111945772532784090156513425130747126454378797069640269865262116529538848311536124878391970886002709333361469014204165505813546138005208329642135069375651235678295273440340787100835226102423693651385688210912910086609731377649752696764959923565478440233513430475365812549267112809729767855465488451970786633375264516896049944786507713470366516281402862322479956279847813666703396806855131741507850810514473027205223107456681736003631277445004675087632497523280477273433271002225492114384045551682401506958109033064099811354762870786708071487796383400403173714927245076405072202969518761588059636676387247186916356817316280309184951030544558381031961096807707121693806912724098113458804379387330196044034654201109969839641713090065900574719258841681512857795205462664535267831717883549395207760287975389489929776067120216124953902709871293521301796909765121704156496601740143496025277993465963246169729310679929240800072937387461051281425868827181079200564675238309913149109835557615849049213814837876698049894606392795846081853702618070959626750933262713187757841800345099846678823297764973508173630709340849965503989313687336855186197122370723222928945288054682513237270087572087247958937155176996741179957183455648229919298996354562001299564239176829592307031939891064250531452214912020301061812687710506372449376844419514165743504736977689573945226210846618536881972406430289707175217256940680829925371548327006982224269936916669539109217822193540063316368113394300963661809567036255420699615374527278304669629707725916341632736390307675057293562285789278435897273712758928491294967996185161503964453273915004395023612325285182973227603598367875519081163928401496708627399490379061375361940488430795728551137946891556729771693594291262511829853263220775800142013483160201612423769562592920823350852061218265752331513479705427075294180620596148589589276849307624697760081592076854309451806584836044624554229627212910936690003501342243936246694535330814931529803154780876800451576331689874352713176097792369813444446275368665678830180648066564546459851306387674248481237094768718229100631079652386238577138640471827464304771665331087717767292944872207723807052962203360312868263949001497092963667621586283983092779303428421284651349689961557830407754841236457201755664392450833473315720527211578699496585313346907462213797560275056812439032482577792313959387863768352944963439313305874092646395881151410910546802977265864538480518427504528947955862737725542890842208201770752863953795372994253760889231570626794941363054263967954729988743695818569743458712985860058423285554288487583122214479946653040045443068390573118492255932314004506581696134102055265227322170376704070454188265849698229160873602257372013956535054201458998296045658631695430268733120171290036539672510206200061493813091951763096505339400818346144533923567093571322404666125849477941312711815287090988355631592893039887646990050444918812771811199255830497174328086286625526396387132371360433651450511007676491197426912844967941552675521383834654515679720512189968116098751117036576898290401349062726628316760894985344701222034147573709005283274704219556929896490626464220066901325605938511154409076459312348585913653549783953651475771934181743912339198960718630792156648889297110358214235509713167796866295051091468780260578162970547403667903943440582362573736525243073866393432861106776588430666072932497011771260581169226643811326388945736301579525732743903657538723285790774863267539648705636238979094056838802665116014672136361506865322886610454722378038741933215021152735384533149004765827841906963900900901625613363687348292337947149050990047400579169067286916764130671857553156790579623174961048132304520128408647008469349902763299724540129556793031982286597263218209039620787584808248850224376789112681197288800951111585884589132661070144069643522538064849820485137681475961674646272391406828933445152162710117111500090809353438758039419347065522976442034353413416918918982467380738594084745675906497947424020088106370199423112896368164179011103956578947708130140281010515830298024297231271356715730091126304300999918363439912940643874551227665711218063063740650380690375680606941149145339244953132554324000146951001148912132890924426447759601746773599639091928200330373178918026697983987471997987311538148813817582301551568473535577073220466366760479134290616013810460585386750677846460087483759383067661198366681482857876595869529454034533280482059718395039905755204880934895095258017553229830553943498255900453830707649885060561498318342959541184357194842167106313251746258535795151609762546448154456487555208267159288632849799141841515208587213292062982800469987118572977519114317559032160619009814222904011125922783939937252478018745742875204544887538899024157256231082982520708263855766449072624417494765350854727636460979811987505830132421530761990557500683892401862044611928986781855566955140541867346313547528927633165038982252130027900395306210198128664491254984306991641310765398073934524049364656709842246459733148352259723643108514445746689236424273470122588849532766315630898651641420275167141203101732017976935467700651991361631985720718865187280958134853893168173985301867972825438501552741899200016543944803145698488354320172780370053102313543127487570870003730849256572498829880815399419470368683702667836546818642518885100311411474215151218122278570091422980324607902872796910196994734273655485314107414213402283464591951979110035602624093369239330188022731692318051059141671130687235222868780233640650523764487020323683965840257123012954789949924715827949257711331415753789554915307274760519674283825096271928734750179248153067287561687254505831622233980977001844284114362315803825862054232861782763035871860571391433690350340171844511744338380796717605932174243100068714424285589899905836409360935114336279029123144248596834586317388989258391281088545326784120926659215775555617677460999688469810039506726296114712880242720414717164572582140026878532965046763727885044430879286868573767243248435322974459068158373659560420421565806368429481357548424290980297274620964718007858794534002892528551113143447237558526259609876627314361035723542535908901433134393586951418579069434649312276089096235528715416532051392896154222334792428175243450658312500561670994855040346749200344689762288340346154451887295050589221149927729829842870894832766886480260182467453494762277926767243541979102291254829084654661157861497961754630241921316706113220872612695193225027018963399709485760048679261080063027507157331111279451489881284862528225259709579016433135904342097050393493662443261291343711292538731150986494351384309716086162433535966980225863872930238492944921089749656279029789929211982372670994674505253983315854917115746835538997402343446184331223332258187688505443542797160749948918877010570694447794824204318980921464650156875943357595404808982386447805747186406973765833612645517511966021549144003170123388185215331866793141245819410125017987770559076883924931406014541528027831795567780706080957055171780770093723051440463397756963068406994967323310074261557926156237451181804654664155252836764018533767223767793244013269795778317929582129453431651624638336102720631165409980581192177991878238809250388035690630839751745116468462398578247035006842928816084623267038607514738242937691033110666889926835113290680618687724225621848888207118096996363760636902422897860631198680959296763821099373178544609555455257754103153865568278598138878076706346509645849485740968502486958474645275447356206398531413434287781379556442676653595957990137780956536134785188326227804964344305467769986121685711171964201490123110720415975892715340079105985032422223099837614025326973956599838486795530975029662963558905570189581429632796438651481817524166209271636917514532327534939852198714628305688755176683346774440918008600397997676831219244411164209348134524361232563691766854052471043892886678342490157259630313367147332831132753461757207959795437796995150177169841837233789626371877424101694708383582723106885592256845972730403334649513718600083616636976612334143019786565578728443338048940194624523820800878946172190172480116534827547756573533661053683283266218015349998568528242196166702419541342968307716019503811618155270820271323951174636192069534185600850076012432077924162986339224612581486108796719044912226490804818587746295826383087946851664380581570258666467262358910129909136791773206919515971720500210470899554495060234303419131271216768451055965554931635687401162086154938688769467490500812015948603121619260790546043411126949175939470608713268076270131231641295894431452022249305937767544422422781111773452739355662643661142806002760843190294070702609174402080576027743356846782947246931770897268071060582564243474230597483385391711076843062255718408115961413251914261244684954978739572878038582040718445800807117625974819548647615574790124428874081748078841772091806953261952911694379643493705021014353629830719725684053073143871694752168647658446106306085904821566783118762316917034407785010753877023537521895044880050470448044814262135432248927673720295302566413153462168475288029298399997750063315679822069860094741502129876356010342092112010282269004262420932939890722439894125224214305941845448811544343834127572237560743017012868186162059894751015110077422464096264584022155559578433347243578309282150349964841673536714930171415556352640193846008481750547342331019648833430876264573765650735078878773568343395989912848423265663155025621649704288854588951470453415466733511736551665848004281117386000558267055431754785798466904003073470678260123475674318615488448323287678925060508003658615516494679907563248758826303628079028393714809198198560710885662142189388340193868021952354329427370976325049336224278157341205458871998556852144045759565918938360948267922503482923897668610847094701858642396498786597803588424983628798475801195297304941862158067479693548556488398488146259355036130152402653898706026031571297977144431500752846256450082142540094686516405016390281696677587646807359155249741539900303959418484806205688432455269777986478981178120433925800692868294902239691198484279737753878861092342185672725729361713447012740139996920923386028704185675584313289575704518937799195276164737757615590656273370330942534549232118314935989407199665872597123445369060272676447989154441015836110802038544870655841936763516856074597537889811168354575477860466648806542866493052949040993554726583589102322289989923182908768297048894455901701234448671202089431364170759228781848887387854850506615415596404282348202999430065676643570787576758933998589464265361345055020445788533980865391466954089891347732278133536155029665288957035585670997073781612257178585097003616338410115891712726828265317901147083396852505827507433611479225391240963594278308914617105614472713381190951430291883810572420948953910121050578629492649694420029817415883057858195648413644784074975648462671369040684193084725155098486071580786625776677722956138584689738043937776503250240400146799433080689437246119497743738716569301072964055221443186311583993741034162090723924251517454319878713820054129679520112129704286399208340490743565067449963943344728957125076645894166455636252765789227682334792464449254892084675212742400040689741132947715117945952660010952651716374018470606921994616765561693917336825133838385972306421312755938705991418494083839664928581299650228902896547034145337317828327434756714024396148595965004509323555578741599993350086475173250472988396401876902959539232700911019921286758489052663190881073937395576979703878413853369584728507249849155704610296768660555440719979239248323067377579261099454048605037175755113542037738538314467189071517697715299539918323815265413685054198852244327479006541758968718403079816980187784162120436588672821147568434782029492426185125042415740491411484095335958474968015317348368054938932492413980831940752844620262899300128298464399466489238608465617438175876319799348129563568452060421130612681944233015628090352116351482149693684499704131236053638616509631743622330165772243625067083022907952563210600561617005181989150081089712115410598585829984200960288910149221629813095762855958416691593439042644503529872301877531516710110900977715373008291804884319539975978730486807681285601513868348018075886327856608287279139991310731822494738228467950326813310881014693856268115624110837130467499647369674212459403398029230389321421497805873685690489389744259026158002774910151856636457856971251027630423377059445424456068980544559554512880937297456382039981994156542143754022344699997767465760327205204378621882388369659768161379840140395011918663990296411460986263365385815733609605539047333593308484142136506047955982993013302939126523636248310837410248886394193820884305181525724415204355405036931600731433889405896675682715157956745175755664757894515634691327666925564583407612654126710557016140444398950145207174425211508950010417834657238843825000558067469558922505842671674970214726798586512805566617275757502460719355338189993663708638424448057001666009288012123128343083229547137870042384887023412448412394962868845271970835140432901124491398541673540069389498443387690267370539061756916153815553460511694749526120180402663503663678498981364500821806151369461922922294361410469726627021805955118955688413483463964350147817290024466296591271296920566387046666181034339330610450970161128833403285773481950140293680128330576670719478675146187598043740306159764399667522023678185799928063957892679580639535378965252384253167022923854672535347676706852608557557597294828455381462074820606053110438747044974216793854640295071858786540387346915337397655881946450443840042098981409814557771705048474796882257188776599373117986723377577616359618380619851067783462269853940540269181530004224038468100446938270603705166661635946830154659883283879041994240220390599581805011564343751126159383267967588137280040603620884046743564580146266312285632455186397316697469618102716862841146633870333926999220401903955403725815931792338835433097997169361702268621613311160211015218793352448443147290166407027092169105354442963713398113896369136459642148742477190108279669091770660580372762612472601435024927683685082071846008725226042816140943750503951127692182652246388785205369132050327688088724282041287441414987907528526887823636569927555328059015461975322191823598011874927404210255330960995101418197636267028392137615436831612185685247200329135362845539678737068566277468787704534102608222114785354792827169795826327401287450669670555686024462031902989702743660659888512082797677852991504298419683943417472173295295056761987312463445057060576733555828542302903844770622344942898341791278076217861886042008645956110863026984530097295007433914704104687933276686180837896119387995209020649625100378046722527195468112155845850768636412604766473650224315741975994386444587050228671837630905276027519384159042583482965837611465625107801537260313141932357136768075232201546415591641515462754325118093444838520327221888800876712977659284361436863107119877683418029983411755325200821942657756062208263446938580586277027622133996884027139195159937968450308702245762321689638683666046296234844300274272642906442077683095761694300648102874465298873495171626828148488535194617097347972162700059416463636779720502100011609731698334123903567139011685712538065251826060201164824216251487087004511784813977207314594601099568725033249234848040231248564706647945148308484638906022341158142763183479392372343425285722939230873802742078588062429997433340558117069266753034679548644092448833540921768550576794150613459784627671644886642046544208717906927818121986482982479837494140882758255787358704517540530499784697849692304045362398989144551741160430536096115100217197705855983928779571956961028889942388608309000351879128999033762493052357219420860998849060042580979234659884193685877820959770673601113701305159968346525642560581840988621477874398174976229864912637520775894549251034648200162840320274498559785662287913201745763217766244158916764422079449364074300016366549092358142730895193140010723870464415039486704200825613092399980898213876128445561303547021388120647746024447972798040759464181633683966874307403140711734446220676887627865864910662423041609523725626457940659697986648164756323625960814898895619241313441691383889508909167689895639550761140076210917647044894987490950504514999434270275932588502316619906619299446160221067133206587791631940914741206835438193620717929898083268418778869261460856705875503149774759512297210897650987647501558504212560675076352723245756616161024333560650633917360821939302890300875818745667773607118577930547579900389844292977603514351756987019181483827792111040945917895135387077533510513243351125009489116816143168538269087117491619964707497709100927370062787773483435931249849444719984123141916957820851031218004302098295119516495924549600293406743676981575974942807015512834035379610573860612581568697871393997076949097459110873077947987108303886747650728925623667652409973658002076194568999019835491903981247548589132642228876913209994427198272617367328303742376997995510179592108728882327860936245380139759421430961375113744000465331887371277142056019210206374282319978960746094516572618248946734850009326763777294211169411422757488141455197964252872105417394490015591158950667609620877620904679626403840667782934119479691574259187580625747434228988670939052335970486363280740935912549480890391088136627201022035870367791374436173641098494963139616815880000327473892588227141617520785301804211008050398985862882361253883213689169329377993722718499599755316850369367314904688217509177085328052847581266941777580985651404328701167047590042208452094545856847895258307992310677331067522380048517714178306444202200158606053574672799840978506839306372538133624402009174533811918423302248145480387944833989635713604138189123852439789980361840825019621365653817701222889345640758528050160882584858658041657652658074791769697178088592297723603150334488831014961340684954498519567918809883761745602919869457521504631629496079775491106486884812826396285598630066741481611290011439377375791183024341643042838919879509061397565591560511545396688800677550217522072827231198722543660883119507148768141313607958437430147315411427870179876790696341432729089856239574795702428118031527732313674424960555547056189754731704638393491980847813339405774646448545385438679274038137208040113005531040739342927900357294672796002333776402675701173876486190774599723413392948567316368383302192569507872748859761835633003406358781954665076834368482920542377453539790952717238246114650655805488474283208637274614416878042681416558353572274587402782802950671114079250785930125913506945885806280713985657036555181410324729301827338235086691438160239246561471556115872788090187309253459448502657593314997085443280676018637856570372597933693281081262278233377750914112533868542393539525179643053437760537299879186703161282386636476503469909582115986864345628474662047436818716243721413695348068936429154282061845954894340778934767631348934376024485518221250090998941552973446759928573941549586550472584970421937086021011254420776858285888231031192567192753844273870175631154155007074563284723116161717204363087846643742522794409196550030470734708866862286537186620678634815146320540541715729466237366313205938388211020121802647738615154438941156722171490568844831911905058445029740703008704909923657319598303476915994522901527816098531362087228419439930232338989279453301364691883489266215200956328647638249330237205711360839525058053698635642903199648172938544935880497566910721585641801072695928570013132354352268760179176182217242936526868817965292182787212253818926773881242084054935460799088274529882366881103335876140813430829788535058082053120548887593541193668073679638074820728943886935404023124629417133805726484064726154021247391822813267636982233671036162595261807278702198893783708417560998695854186526832462497302094187026318731191886116472480911654870475627331605725590169574451981216623833582264536688750065702448358853910706352019063392048677602660278233229768485401152489896493922526753751222240238677314513008123552807276951617359819965770414799255162932589923366558612579149488143824204858844255208163558000851974757350576439448493456329513205351270402701442354309481992135151064988391456630583408510993919086411123476762726579908649827217290663538660744492199561766524746338232146872008381999198792636329255538470358312713289707344896998995652319535895323142154692356600923068170865510597567134006304631240664257791684188202088317593085921676100753336449275441113968601544071693264977383801509370911958658975939123529847335205320377627701685164702723378167671115957666399125475029909109763368309582788673190271563959437947116665993793109135654376339237315848965242997489513883764417701670185030121107764780495675789357326582318153764820637290120715001564892025904144624359581596847546529076138593378707954092510519584754782260255976571558471666220879906624600406621527071329498614132802033631248199811885037705233849562343219265069604709497905850128915462825393181722220628162798248348902495525992754810134856258442394378617551049379982076092026646026293424322355751484204041180007134792133735288353365850378369924762622173960253805251436739950295274934633548231225838402242383445747500281729554902840095275010685495670456883283669579285229107779479528196882486342918754635303777227736828154782399480549984964130484854753425801792841766669930886097327658473940905033207226766613394498300237064502594153154548922123600800386417889025706355831587458937253776436477501088214731870145686899672194433969269903378173057328096915905381698342441497281145922463416394127891891752379209130410538700856675086322225530494228762277104423883819453400906780578485360536170637843389594513261357168721342113803723946064597493287785093854195892763284821038796178457967284641152397348334004279110272064806141427627241037566104140333378640478399349440789099102634477394038714328140855584785915346652302850013555729579007977852103340214023595470477871257487093169232642137341193882764384503809339392110112959804689831438412955259408516861897889221122882066889586804477375806514526457880880144848694863228315218288157913387445642414947406917709083323885184886746353960984835462441806603810971161859722909817652706431827062218070603226583637629901198909559013811289390961988552706266107667010588148150688842944728594041150223510060961384487137562606732985373567406420815173207404615618045981132181303702789445326036706880280551311851920338117720499314097654463601840088548281991110855327111068180945904176732481152987434918476813446646774965815322828522366317491158105579268564108384629612732681316627372514174009471037081806560680439776786594011642592510309757735810511988098985092843752312921527309445754475554174965292373605038791260339376926589597384355857546726654765427756030414738069862747461755392004077456352464400701600291209976084241023332365488875278120753512109725376196315808103381626174159840075125579591032034001774700839816542230396768111921110007811797742050087187383064482435792414164204883390097919571340707385396719605013888400636868760740175162927898429276710052083985586753068501425224161683546309581656944566242670647748194135420228956875015513278034870402339962171753562708616357103079588855387854073860917224564748887700608271405300079460854017473949522740897398632232159220623424303451400452304633962783722977733447822267700231172160637743292088473080587996431404117271708552648930434768408475289280549611008756793394574927748947214893064147733165389291135354716768943860796860155851204786470092082417564786288883141755878015944228679529808105649732620931582082268337138558986292153407148550802581072284574817755008091506603583303895877396825505326726550518636792704447327575172609550995446780345793345684927163264085069024998610167465518850439797188885828395729505342782354426214281489460917274511882882322282793888498972233956256143908510102349896682516396071611714009564925423574769319015915510159674571513939865959218899654912346638799896266179616877670556609497783579751917268024429942341745377696585138945890065761523110402634346682097028441279310456867216486899501657742615778293408238442822568000970344069688799052283028827615495489161487422987457977084951405154046450828788217679109184720585340159404043212970556389342523888918158093346715412657452575110773532604906102291951605560149108188955687934102771982893382859764588435694846426545022464027761572233969758780421966875783852559076851836886797577257920449463881414928913308623889684855763654616807575586922297750714701429549073837518676740641544393423325356867456694314045677027920345799034757581469033549693930713402304263326811071552329167018277697635961635858942819646508101009161728070882617539762735624748823002516358447590407287081707516834986803576802152869355400160275074084037847530685782461837633553626167245745356663336384368153127486689751829608878187110216463584291795860226314438049911537227395942485503101432287869159075077169521102314603428446719378577253198638490429704774689833081245981866993808232458913152434850113086740257877942060863092001385186890251378165681933308731516601555320328074366849308757404328105514991546828008454372644344520042976299144112950032933111653845794639945428771697271487190435811402552763072634553495820009993487461457884696040174233901021984979488476822688277150409987923885080123846225624273737565121471805533424474574355845354489778161330014758685540247236274533944229037299077944706587748470036051568947536967143564653512974135177788798569376725156665127369081398513039913333645115788013747157191817709760005070372931881361747225761352645647784132221432131437019155652097540515555618416019847173471566648483059893492069257818562817133244301067076789507750131905830406960856396795119866861332442088330443706284258137766970197878668649151255046560049051580639788863102726663913131129226758137339369367361732607085704217028206976501509530959435076160702138853764463748751722165444764167215355642054597271419981469486266791508767775541075994117970949580496738185621952838226898629789410409494386511932031219869400434867935578284443329044399461015077432119168442897514476330627455756109105199594554738621526521166462597625131248525811030501006634525208580694782839554791786733776276591984075412860534765402383170982892617287508366587983266470089483989695802669020985130855407738748592466164437512450841183037454386162454750965137472969726031371193278793950939180281139160680932287915779129739616039677008483339065716926997004614531940085974318222051832001188428319486664996218875496499559440730205181167388599770251881986198981140193373537767506836844594215937227137269137303736103601270725699259282372255683327346828174330580930590207150081205633838379783760897299534040063871830104403378530814643385124811063067112658621199377270227871151131899968899786986151862252728455771907411966293614484862371795486126079725543177786260861406932405840722521457937875408077840167921438422695617074534631062364958975513183341523701898001196874532820690473031448854400051544498052168002625707129813141777774962960860877096194229992732387310371432916938458510619650339507017187105504247694198718737551961752397531164091062434824784214855556162496786081006059993019927424302053105104368056326785870108857455148800271864762339090579525554229605123175925621756950896131745648219389089236639348109462408536776602613815723139840289108955262060786445851590001166019024960881374158584537489148786070272485983498582205896598374617123106156082172637323160464284576648049334313487337201425118382954412296385371537092535905295831044188945373865312419730350218061678977055043673449781392310268068959921750762966728693015075813044837002453506179661879005336161118983201660157888988975767297234755431099951577601342953402032302835587688679201451868549936945153854563459675791187527766677239621249250698016488886199779642121961261829374983261328906481404503341024244191680698397555767667127419324341725522247477043744481131970125359488087202399942027051177032719160126781992605908500123696547776456534975304251966419963534461418688497182569663259453099633212730710329727078556818215878210371467846256825705067494045732129607438309031973546884473667769077408222366887448534560080499805972442562585780135036026597834782526502974911843984976752377671038600366884855749604291740370436791821456682999802394109217862784218769353956694736530272955835878117828733331757477903553296346992959583785409774780646656094610410619692420363712605017957174983945579053168005542865027941131796617285260294953780816247334352020326615485699929628554584769581353487222600804561168217133454957722107698464084647038076172300127429316376021998579428491078171798038173670684407509193652099812930911045591084375129996987642891560545582319207442135847692252283603748698230243342845869921192733113223825131672569887736378407350559404025522268960908182454964260451102636194722566059012213664221031443279104320026175509067385431243863561428432143185919295390284005592359434839170521312941852162249062629874394104347941200475716265336385297565699962555693947149502483013774641438644142484167959046257479715045403677915149331101622514440604919814636276182490881747099660873561065712297795932143532493541060309975576975862195534078297258087968857751934145487107018308518136961192505859222284359807793423861387365470586870987273958026347546378534376386227077497697671000705760955850260362529123145262185585970653121070340956544876631135960300979142363879745479686004689564902122479994434336066239625246948258228194613203211676326045672264843822373047799003950019532407559519145802189912172744965239566682523441012560638772008039692872494019924346162427380277319503924035000026248019637268986799919722772400690824812351120369936161880071566941332304324986440566202151297013016819373830895996539489742314042447341631002761848717675402471227774821098708590812451689594826652045930303645018660917659391188844015349276444579696820176534235255501026632604824175517173893671501352970139014568763033025223308208551518591315312553813609445297055753911181820204887199737719020159202882974083972675437595943574726357875810634271224435998294415211251871124280973479865704276563121519985732430384100166065269951545453716260615678212297615147194677497218011539066858118373151639486884349460461929244070443393680613725376118668725810856025287690529972416500722285740745150823056320915793531829827976735655737457370046556230910070826590300770298919338451183994527241169736466153243241382934236467723319871385406895843783339666557156482782547785580632889632088280128928503834764696283105849896048527370071158440039054825045356690469307093201383201824933435795752198465268079801893810196800904357712667768130756186843191130523215250203381504741386015909048596468960620331565954520902011840398812262070038097014730933093243667033337642163170982670735860754992982931449155990567032000226892243099069667916394177400262172139841745882950480696115043070626437980456705338733989982997005033826756475447565965241541493092485926269077151207809554678642210170924097713331267119431126029106338834041998150119272135679399415355887503190548484047104531381652353960131795782570867804016130429137969192842342469332602406997585394399739671140340316244866185397349156746993833222651364020690071160620355285211431631161123196258995910798706565262734154724553160600395983375241166974692391526661208730419204141679446995933115726568018775100368001860007451938302372419840706303561149845306636389531033891792671976840482225162745571389689258043773301491603301543252975244398875094990167099912522322009625231449179809292379461774935174621056534428869392413708560796058559929296823807115371069788708531637899680598135842989513560563696983667421495282832382094857288464465675071315162010079830950034604594404265471184827537384336546102738248837797624180977566301275609815453482082898610292001145827706728850730025927380816343286792098228619765698501754261684771399835585705306604311539344702545609271192321426081377951326615374254175314155725703530321662385512729162273003387777254794496639282171180884944969886858465265057417558229884982718766634918679794734828777171366766256518928047365517664939859356415280786591419934924604881033390287151921241461728347839407627904883226474763972437176471013638845906600034870924295513818978370513728964726108712850528423349644834286722602385035318106033212022972251495168541869653511994774956648518355128704695908296186900299715108878448997072512387419170195962067740462059106780442719859973292046217765777182841193487075731199264485402010465130047576599484609377873360798277901183466856087106921605299410720727548624176779193392663446992469645824457131360787083471417005276144132111394445486395550952194663700380372442533996155617737834274900311501910539151641827240511771802780791110720233664167174868195628315763191935681623672474323209256974033583130971511276784433643280967048926429929702396939661128948951565177445078480608700891726199593903677619148281731405307068914930034287139336395287788415058827548433636441568996818990121940262880962819072976512615511467383190559062675753915860082429042549006099065000054912435698877410399779227299316851524835676988228472736365792185219548663470798069396389357214641305133610515999270819135921116639518862708337053664436859094499715901546926593631247937635126439293615861928360704453695852866854272532447958591421694321421578792496174884700874103871781318948800709085838704374566320532639328217506697390824268803909147389676808005649405746941979999042766112207494604622722751015195802603585393821624448431583190615822293845052101121196126181839750553032531455614883674557840481831826470890797381712689148016072177198375763982897955559513843202773958797785073592228394083138700927371895940567702814736217174966583806311020726229115113598126106970247701518635945877758409019494210397391475337299027528696497731633723696323746866169461657901826735577929503749345843323630584575553657326660350480932786927665448802089346903958974439298709453487754266958378356596690780360477279582733214052166539291906339525869831284406824406454648634884424297149327087968127721815564427833083156744522591952863322331481892610077143261831907604884538476792088532878061007744780578835673161027548234773279131838521413649305613955092052850077354122393196609914169736383368192245631098933756953934217623405715817372240932921159553840597731508724378010225395104237772268749966672266831357820293615083928505147007604683912580480792964607669120103370695467528309433615221935991946622778940905820877479388012916048252269821814901355166475703703128656333142627951734491153086942142630498539513023024620967751546374354792127339198571130215203922704854789609321004942248462484468566949406842957677708161768030703807688843034452226042515361861410492419285398316279772137647871060029653905889202609841300494830346319723797018334947791424915290639350383365039362073208068797130649851906198983313560051027860721723133385383568069122699688115907098475401555216110995571249930816362508426058696109097764880998972488118965249836247500261415973336371643792807266636683821707767888005479603736795477643749337894237281634896880062045757486966406823963699508050280749661880457562653241082544598066368491769631619542259605340957608575630058525804705554087060883212466788298385350602652493695728757120501802167037968785918677618234781832023307545925991291063494761110545490883229478659559850558535454785636197187604848580210366655535626967552353556913035914767522847045969822839740422515024991128474002097477998867637841313696670668641782434852570437644553213235139195795564886200961528244177560857579141761594866169275796169626383287742091115945502123353730415723620256237466181232877214396956944935774086334082873184006096418940779419924084996937268001552984126381463265338757299966064025883278651886831054355279323365368025304985766158447304130183985594882010383006248124429489728589591009852762398441134401437593464069693062520324930542740589015048123534180043451452691600309498014641843327369932133797956081628386923408590507702885465486638845266399412018147156191858379575528653283675772428671989225230138778990411472589227077181361642528672355039339632326519359890122652563502325574268017719439699762143530181114411465177252143941232127392607421990839119152232183407898738482709982744540701780555863860261541212531410840175221613273140685969007772561930100038180900892183581213697435709215378588228718556440303629020609014915778838565430274010659631447008658346129417002701562346250366488677758864789217029716552329090566784487566801814495654616419182317594192860018868860433324621612620261499528484905720180684788535304663501426045163835894021186760632899767318490074210507547446709299177726446957069448976824364210208606994334621864024408660193083413254670647364725703329115219415645091954170352908050258874206029070772055191205676663666741830262436198275670921384101863693727882134186666198183285754774368520323876362235245642438768912941459973752168950602693375847967122555817934494685114167281409055217114975784634183001431351718617665614850821064507643562712082655114760174965772401704652183338436848893902114510749208538434166877809107775584042676997031214498203028998672120926905735564517783439077732923315250316213346531338612902243600992427199747369676757651710581248850758550074727354760879144191415652007778920458210812555151852061845311998707701163226115475642042309595470810542003189136973334374757551058457271079348461298848056233204475614800827910145900031501715462677663764400570714410383097281113495067381594348045599457921757119715161964463833606177726733868736490736275835742395689875278188183258823568249033939364916249176100797873871167815820572441962759664703010992315236505478652793277213792917966200365255446546194237850236347490522372059004299056042429400351673455598826765325834294584165733356019149820553825095611005836719347265416924781620038968914239532969770892216455852498790253817947314335760640468628563438794207022716401629363186475529370650350673116888693097286807196053237056884263663043180274172919004052767947188205634850369201385985246552863000775161581143346095845354612717216707831100150765064416573320708155149906118701296338872179391095052775532132324087895958810117566746789467474677572244798821515603647691737414437074117052562769557808730282550981591608783278529093883035107605215515747967822866927778353601255794872085333314980944199702035605375843383537562399165014162441627822992701679026325148117023794970229767112374034867195924580988564970313029723691236055295522884398527967515012050178373316974723618842137811761449120063376772008926924921289179449531268224710836876364854306397107234770413038396927118995266381159524983278272101578499771279686125286071874919804781197725569427257618514199983024389641758915482828858027419175002643432936715709856429692249849020927340217670716074909115454850576530536575257896551279546061677009599790867535039655728987021250957000811203950759213909574896844041694491987689853403825708892443618004824953201483349852986318914871719351667227527786689683892376386374634450996904377853171979582874403027074491548675585376480016890164232505637233164751094304339936325399565226165276995222997875750088058828374375985355582382644073138454070716466242736981193265918821102844379158986629900852151297856064150961019851312891024790050584752213764673953020636833828681056391638374412992020191307147791531046743919438661403288464308687521730357066564514286128427360084550449146472131808780768747813671752587669853800810684460585729404982133670344153939186327686711657478504033540880879349716723733419031454799855878647070287554217005869866971412630007909618835937402857671394521436739787766047869675892627724158715741302456447246504389775111127864936488175332981273938342795418659742638735699175726839961102470820526588292305591801361309936848116785427778999199381544790463245010664591067200992028288868092643280555908642464668330473303759015980021831402232542508375140524394898202043312733891294611546976180490757941426328035596653211184550183509424565660323853888128172094300549047979830066570921090017933111333626446649735002339037463272344774329217361676251574276701530358484656766208392106772338283761952025943700452494110038093727704925028143752214821868239957883466897220499692874784674089939984069125519733682511245046395474264870451678264614980655220383143386857688453326285216388647505094563991072395866762159673290383204084672432960141023208319127332760623131373697467273809953627525088105597380731139762486689702477004197088492576267021949690310833372655588134305279876162193568987059754829787752942222001927628422459862643048170052167500271980120872639184407083869104619694740642697692523757897828016898560467703514875309743599546322266930218526823822247600266967742939214771319297502895325802796224355144012033930745922224812258262526931915541140346122319280147361045984562562943514982361600149725653797962806122639620531130243783276635076331222766067132348842946304244139347523849777603497294349290054071459802909402583239566297214899754704662024373362224064317834444090609926595295618076631641675515782244639636040638488169439971498271288045111411572136412897523878872130791622988877212884987073553105252131552818677720708966479796722988030146184586071559287361171661934697798405072719153862254708056039080625555706279372356183037485888151932283788402599189656507523902464776852662676662829164329497272953658593433777266155780960803937427102195945405953080376286790329981030359404079386089209085564102405404008352315488459169204638589398116454150307649923134442594284429973458661449668301673603277899467484923226944711965837778879678364362336552046021353125208831905239207509578819210494588463069115218311860373737286773202231023675171172665917458676638541049297765321781071378380208669258154350345725626033757695933156161662474883536422559964203077182507054501964053165726186590623447019930603779493791221202915985527833374796770975581737971757986020838291484728909000095879229622411951933275448648454368688089967258855396331192869932472149766474578530607318948051746916864203252731108760171628064190526027500499704744236195884431705863689514150886725240050126790699951104346902751904369357946252486028034576260827317100719364297109394970818435513440008041399092548515045489695654737542370513907714575668963965253136345176446552792983642420498705184997403488189095516673600842032824722032958784338702713277408738524293912705285793673605256734941531089470759500447778915168524074939178606090256104323500803020227038827829793104528224512108921109630814267551820860680591941192930470110306896343856958463599827199777742851818796810848623830073292972444773859117596348544502172178947116934899178182992926871894830420479063469642480804434678734360867163599548348101949889216817954976490478350699454729534321289912139678273313030564575078349651065366458002316121673591696790056295401877114428992296465785888523030289183041336984825658307994936986757886367434068464595506237601158720322867486140056856923322683855976641902674628805983212754815813180431304865557924926889873249496880033621879439745285953651271638196788833133024243385988019956946180835719788158936282098740422792525033509202925353113562951443630209123616177590023182436622290981489321201167616693939376580674649430489609205706676327192263589209527034531224843648014981455722067728847127874173566761882675721111989513341300641760534804665937716738510788889352968115460031547270858382725942016379278343528684144741439980236487594921259080559511842228311585365822433097676834957774468493751261011852418492114651848961241165998139777954566551341357163844101711858230655182171323252806468834316089499802129095506102621427302368397905576288140333453529867722794198459343383881825325460020141862446765221250259059710978942241184173754909810786330723729261156443694313822775691689260074450704656381188316512107781245315091257550726056480130042903425756670271265685865350236975395401314581135523045666643663147677545753555050578382229125085423478313291678213858716943035618341898030321149804622679971039831116920686095823659383593307949644104966758716252366152178331493474102918612859739166835558954193396102406576697208237067492763268360093434024429504714277232231667803218915930283918268471141670912255537122531028903461877586902427931874493524900303700806974273416519109133413654248424086064865842916199729087272737086308518501148979318680103373745620628910732618740618306638196073607454972605857768302317865398287374737353952148345374510697238737284675885939785088362952026857848263770683782063812988379343747982274571182689527485675224980308965722826108063826786636311932196525646231422663217184421610270231646235986540478209433714047738879518787744126593978992670674482006890190227679133830284252846634603084972268110563193431671594716684037482806538709862258586092944367222700600836638626587114938044591953772415602010281803082160980828453517462295734563729118944473838328692990097566241544393183875787645485140309775252478132150265153581845334525335668917009746056445264493635099885538130519920661586882758714375356520307184135624411763476753619762411245513208985248948424724496391755907837642291421219613660845165912404379961776060130989952661281808934274108341299933322712613843887780893409741698651329506550888117240555584414697504881993196518118892850377840064860063431261819409500225066109562760720794678591418515969823089857862004760005125200390936451790727781539406763478967249595422926145267134675679655887536293649515673257135315556633638645985537619069624285899160573347959765077790054641465508684576523447019892806579139719399986068395268397986297966211162101466225059835078559770911418000824633253773094712492197579768323733486341122128733470246225694839791177841228430362450847298573754105447617987834814612036224023501441588221547084592775389585720650364782029726973210734132851539074249241874059027095315490871742614492750173120478794510028638346663188164695271279376867072661112016377429629455798302483770162899552278791433580131148790585805271778232941806388009181882487891985882846989032604814586969573646552129712348605609071218685496024930568687429599698852345824826587115629324520489641159332617129021176952214853451962231988866026493830362857383071445908138131031048476357215459331189774875524042128970064004422758657747103487257795040578673053207906914704671847373898169375675878547732035224338314817951478935911989598490443643240850510915977209972680271654347321999881249614957565971125216934687577208379169696769804637904362267280737653431065830752855616530429067423014562279654431455054574350144478777656483003213117110541519567886329318990752553464675539956416806356628450953731164007766745093806300513017992990239225896639239712018757831881827444805310266772703562224547311649493463669701613400983513329333288350523960816331737248248615408619191138684048127019987071024688108507718797329959137596237998968101421600764934317054925761271021872635182478583614800889605110831355566331059120900052832896333851401067095655727534633266828719074914633262687309629193838546123214072374052862705100237084966418588458071263482968846891462615929488832090857767953769662907275139894225160317682108028575980927880708946945543463307936463970335809182879247658847415665401098528847992181760909414996874289150003795910813872690370148696935190214883901044703750637594627976075704903838591741005283129124194524591733849276813674586065999142752825879000141620615761846474450159351494252301512816853724018479510385273975538590579274201811631290537645216089106232802026247242740832394909180653552439693519800362780698115088199158832873345772720450980854691977045119194865463238493229986292962650559635824026274672172590297182503885803716190531444858524447524608537166745943185164858888658459280315861767673693839390794236158376545574117466995280931362998508863461474539363084224745635237631540689709659998791096397774321658416777097065447346517283922046455918297135172519110752547660624522594574614834469485947136018162028105071693817243202713120463069436451926740907024545992793865013357515468712532478815889787341764581017185386382564902247822560992433084603176237935740058979589253964286974019876612390974828423460271270284136851234022980256179931565520051470949100338641525673390482458188102771680462501350624018370756518865631650919503475082701294241942233027517535063492643297777068574929102118627976249707372270686530223599137188421380420238294633482725747168190173260709223254119715816043353637453570516843395008685511935642336857249395926191121275108680584413465328082474627114573583018495267245318575576877077130636451408701611357492599059060109255879579813416953556392475630602482403759816506288388126204126390087638639579182013902034587633693950742167581739964042815782793198277195477987527447293569390841847627129382127049513943444775851693618215594117045763573486845280710564849384736411000256333980845209227230493037004114508720230428653600316876796448739993185570699659642440196637616047111819993883310822964941066765624521152128352846749524527547223978175216157383039899169480280746042705348537036223784830891072476188139135802306774206481045769613405974586773924966414736220912937472008130364387913604436130947850350896562289082976481809057450945059011457940915334118171551111569230698454082860338984146888514917054140894156671348464513407290638987545526233123454880266489944868238948628626992610885229034287995175171288723036459454968811692452828858690181861176329146770996351634786297484263747111576908404652577080930733305987189773392265105088950418750555316579736868474372354735910751583229628145492957786349605885040405186611182540377531681351072080104697535274038722360001181326601408151404772958188045354829032569125766074395018098587690336121852961182032389039903713132219957543302605328360601008557569388515236782834007486512842080457300179108276407689643238191311558543701194600392446341276129138053437470845621882146170943814022744078563858284728805688548450452018922080786040558651563377482658660002703160492155517320869393239600439931128382061688865114977977329481884210835456718899792250622335276447970754959196817488891853292374124538491087930834075420464469849319132119754246917167679460588780464717789942248743711088835777427481194294270885746723616641985279994832082559299941228944026738831177398306880009228203287453475366917211168213534273543759339639783997363395201415582466385216830844051079904211166627995574526461484522904649615792694840641816601764859801775488988454425907657844819579874490031914968617519214967447746441448829974784768536955337557452499737191661892145559850990766029827374684823948215753760496501781523597081726883156724247978137631372513764759951729754101084050242935574927715917703156558881367458374808330833297092674192364180804990065305041728194548345013371686658446462301836188834455346144957815475932298330901948104885323995955225590227330398848842236960110956376874523380832845497061577655192216863705724789688418989642176910636899345499839114103325059772186443219672376741052634455846383709184427263592586874299166999543450761327688570785040928824677998609942628475810659360671672464926379922649897531885541015985667456456481027631593103301566885240727781107525266367286029452983673150544178753955126749450349914763586550436272449070479918202709258404674604851739794248083050787354264593917914118600003351054607306320928528539420520179741555438246779825948094511631140113395092458650584793182206910776940985369102716471163291445840544313480134032508057570253167586359836609305765891662431834595096887546684161760080242840945845197519551064842729945042982060247923984475983057778158214837753342484369501495010713870894777473742545630970879211639772626992940275085816992034374476095620787600280720969609774366212203848172617965826390641130266345059957350189970300318631583751403550375104030234284592677769826583028269142538261672241975609282015690186548245914396341627500468146201051017843642474172035957839442557537232514344974030812619331576804112035812773729718968543379390692171006543920487657393825621319275361629803845336960838511653546638656328942371525919413857518026622683255157325582144326508590674276838511713974295067652343322619307558184602549049128554402138837369653416343592021079449836355561807872994680493655344937436796401144171150126425913046765046513481780205770924445813227822554118349330125653474341935872807858583708793789329341526746735363451176891668475871943471177750086786517486525017500280835135263744213750308956263646665452667952115910538867741722978614647776454257744537157727580871356932332713526099117010656214192539435394853166300277973616854853387321392808331709292577848251263542070149966671130261226495606067217687715252749336734332687350397919326457158667023052037157274705625057455827484080031697617559109979738979811370635931439735328971890937465383211637689566402348673661157518609235748050023844126255663519131567010160043334569768291874484162411253679370468482163058498254760427676751641198074454902839272617384740064683663578454276071825653958691740805987583801819415502583521425328031742522663624382944596539250417333229188531660844396114668561558668146158121842046517312832299778531491109828023206164642126807004897122890943514376249925673058959370059184794495930360319474731951331187002278305418812287534580485344253819757250956821217446967303245317640011607800225166633230952414136652410648573193114290042986913860498291417598531925073334969163216999381212654452841156048613481269094466154627993989001446823213295781709018787450696842336611354151669202651027732041934294270524942422563882982429524380352848605393890366121854057987695642344997977716760052346376178642444285459469868782951915685260528992765352665577577895390327564829168926321404861913499726003505660524745135332851931853910138142820763067000432529182758914262937450655464057463242179717516854961673001747778300249842234849814012370059619761315025281387983445490119669061237991354835215290561292444526981881855431995751758115685204007198738650639213065243660886533903347768904130744690714376878391913453030621092860405895150958556908219325376982666656641446236069947410778370994014812453542332915565972188592493770959885383702862860868296564695086333412062175052162910353386263422091520176380204765808675223471603039039194231190494318020827637156400721697119551565487585318431417058301908033061449705131480340882251347050731276084205472700968960328298226516528274009035344861405257608910818347828904645737211299945328237675396763042580268373140786643567193841835474007026382117738688606578040042135777692000326748250250218751496679698736878132072503054195468636600674173575493836846268002058946247811842496460957192448633745959868293309381893672499560552315989700853618741163755156292255176423875580522958654201894954524244127694968261268785518282873653373245863642969936916103250606344538947136004813947375693122634336149207578310390852580091444910590119805554927786367190815916879075242693263699381021392877070548585767317226369169731180674869879358089051089063541600030145819320450888285364327706633311846152178756315844240418294714169212956572661233601181595199174658496979108156386403828033612721544340717564083892039142638771426735955442463443848347742846636887494964657687516801071932363024735224092929725526493379446296957426034162071944650995231209470200926942896130347458241755079728642605236237180173288212850986158079137752978230909206519361709398054488849335067812150510445737141727705396432399032278382765035677570103428969593912808793862931601474402127315587615978601667449027013932403187080482041952328190290872723962575846528077438922520569187483550180633455585501657031634338562166603652270576086715439687002645408692183589864219792897718154272460663606935223733296737996061266549643658422147057554590247195765848191353172256278083257262947870479622023078020847821320380001932389269657441186458466463305777936996410405822589188377023792330731247221769227562276105256109829357090543342734550322715942558135139724504837978780139867703906584022066657662085294551347609822733526680343647327069572831976476721178441679069752147764390764494546128795225469796602471626660524892559653517054335002751128060341268723514833108925582164268078391277380084127985215952916938275774406980965779723255157846772370456666920091733381567385618491604313673819881556916853318135867647433658452776876500279801565721288500670848539351158129589926651910002309900339272230026882356617195697205893766465799778253850177572515536769399576602247032274588569985111489500544177092137378659581290960223747388056315668483631460497727528758885792745916389016884032734633967930106377482082293415351117625802178114682511507734185079409449180845598729542059074516491510067876123998800608308839996072985264709796505986876348047761153226816144320396162223779821014937982576442573733341577888629719126972001735891857977180647358209767224546534987411656574027395315325813108979502012071849358983652982540098096638917992518223690597386478286600980453813695535022854162442569736040349906056228124329869519698054534114413508013330255043767271961086260467396872629038110411917593151420324084346067295420602646245072357752364581552379305811058968240983683232904162255768361636818288456354224838973247256359594785514636118192110332877403399876914483650624389393434738207380194406533680107218683199477133867032993298693906312615640939501089291768559103043738008011639309439361736657609176091763532750835222528215142095784723684397218299704897937230031189473488563612224606848727301430664593078045450655604291317806328223154504775996983611809824640563853121126873726685362521978068813842306951170625822091112447577631152587229250940840715880032844250837786344482810375358063011689709664522036396679015669556229413905668010368061473917015083800942127057270316726121638721145090903290449145734057424766942851028722703642687149797081728945048138025619341028685653736436971341321076519588929849180767344011847712740262043228484166568225732109537098306848337358386877042941384791554896113527768693831522887446671848653231014511379335875195869655551012883159188493625097943556177869487208273133294270023381219812500736246741305840285015737880171779004996856193545777739496437825158806284465889261397828252023825447633760450037431749815706452036278811304827675723669194163903312644511252050145671292802277961344577832030247231931713858636008862503474748102507986450711891687291664373569800620598617805531300338504064549644018059719750602411371234003010707532674985026096003860971457544324342044723901216047288940587374274352649524619857715885857047083698220152187042110291962957000759958347679249277238554159176889421080981647426329617470247033539192598318080047880992038534142533216122952373811197881181364978624519372086359849687974035816438173299083908363017614558222955356986013517176556618963993575441230894195186488171944449195845938082535063284870882653622251410477281377123206617826662622790830581052363764488965274833251600535818222836427629330065147238175528787709857513936590400041975799454070578835124271328111945133560226499929707922406127687288778697269869396038799766546679677501074058955914136311282546555389847598882865037736988814052921764644700172076496863204583188537402340894703228174771302777363729688532724540094120523384139966019016201470564782897373897636876126474327828420904368704418858397877598697452221383787501394929173097393782523849659636075867602379006008417005343815736901992041752765152156136310676635117914425751657798759624945496757392133251023904380696614379235740044361359286599788150188862313640316854902809732928620729815651874785120272513977828071460560287959419185070207795961172456987678915747486583904278430916608457712624796308491506184396118043587377934821377119795924154825013187775566442929394075688477650160362437972858684050177299975135315932492507718546029060577759010586677426043042842242024873421503502312095410648590918224554011382398675404180497853523169891783784014581279564414857264160859688110393101068359852469537361975848508606464238170051963306619496542259460693881926038482771651610785250841867371752016628249847963196288344745435556360010405847360432044340045938092976711717625150287958965120982422695820252890418371571641132306729931391186535812363208507802807677769015108876945274426522489177977183688333303778806731186432895849617672598856425367016318396906560454560164629202807401686156489143766274364666994894249284603708069965173468554058785398163333521201420429943276866671036350757538132970846266818433566342820780982361712896058874405471619478338618855643196719264078687858565473551295690289238086388320943864411518612581151969427943609745411439210703278282802555316451606500057871563497659307573405814171980476354794176773181100667530378418828481046077211662364604528771385413818011952650865670394111140662341657430210694348702235659177990205847129560310941115250056082081577433440406473985762848534851764945412480796490468803824430997853959315530607629561896133204488577932866743839308980408685493342102153716698685183193404703029290324295200575841997216712275791336642998419157099705643637884794275016370730723287341067304364545038251708871288515121889423596239458350658729912705709611928261433388982995279749054017182748180950705909190543551054903062588734642561592561405473704240756791901175026379104228950492474251345510579676998329749056851013800390231814680194874942516451803000719423124832430486208476302101273330464854284905097700242370983203240312588849784120900877847437976666283658268970392882286479699114429297415429521134746345745854892428260664530726345755580686256331638655308443785513654453286236090882443561202271142322921892434457014562647639958851278209427601766780251247144957398018032747570794640954887009957082824774823770781697411289971808925595626730433024680876469970974558192430022468245204366821148173262922831861432125641954060263250635833751446879376705646217428421860586243890985030463897659337970763126298087256104977291872192508360293802878596530451347575207809486936043524608414047539562645293928036300894376046457030393986482652619159645387709169415060494753792393340995899128798797421203050945459968481937584907756745016819316942502049772558655538009719406981598442202311029468755751955959255078688629658022200405772630438093416971293097125830674720305531109712553594392516567292807311938397732349194783680956579696486770386489621364763054401392965861618686232523919042548712962136393197003619434482142023612164463715840710033029824444369589118134864840524815012447416365918177777706416142714261149862483353355791209246346608084204363402106879450593406930509649352975009752042977836957171625326732698578813791852393589425468115208184160209993345078810311385059205790362342548905765621430499560228481349014925800631514299103716118249751593904322944622194585010624306361654113652928588552737065624776577775142446701448751540638977424020501124454026830127188869982828416511709980931080429178208421173624447597113149675575259564444999723649304745338045091481429403325539033888650602537407459150317668675003674001284763347151480189715797608605426104725861334697391467316146118736175645008700828170100983029708703970656110080573128245602696787307421740690894495144092468233319730407453239696699399717742379440182217854878373747953684214212492612711109063933061648304718197784363247523015385336845052641181141306353050480158717379204736347634577928107854261523053400591552096515689105949493333393150871335532658053560763125091162331192247529161411347284522072033004942543572014435009662417471880488975671679886757160349054250606131478335978524710433193111849969677630498010963886870241475505075268979438103187187075133666211248184755400817612500494871538454098346753685377874967946134042724839106683250057047572106883448444233542032847591656452247244791653842627441032720962868902492492412955251173382641033105764911198005935003413508183700407850458244485467959851235200609188263619709791885440688192772334688631499925394098675514816483667157562868629481074454892946645293351377797966127710025808415679662051250284427078227924137498430367483369327623739948192046557640137298513562291079896373910112368726227224735285674774545210320156035978661532097378274809003461593665620990120512230347351654625836320485685020898398774463315647314664850106146945349659352856524850759354927571063879037076130996445361541694122251742694415990203357965543434098365758235083280236175886573258333204733440864303328317624432251258902887467068083319035245576221195769607059928757585622010596078531857833728146152080543294825526843316461378169913039528574183318187005169537784252721362158337651643943924882032856388378720037114964009429013123553011945549911089878109037695213519692247783516626117818866994452054966580560414983121728254037406856338865472248059666028691321413604982119475359124628065809066711632936620504104898687463475822964643713475340312682253032486889454798844885799991665035213565091529458941280819740541532395309324044699407458222350862911026105309301638120318347069981189820290985459235000164463322395249744798967546917990204578128223432572564000008920755983461344561079052082843761122445394453353772950018435890271049771108394260025992607587527050941104088011184262641092520902425296490071029908187644863945173125484540428137987215760931609802465471139114799266747281625903693798312028438025552542081213190369586061413143810939680191677143329324552224372332619884560034882448584429337766350825288077840732699499401555770142635309159847564744864994700930060020642677775724277378348468944624900285373516553657755931385663351964490263491916470186644495290513776372713930808349393475168347237520285831162905194634823964135898476431386961850367759396986114451885859697387917334570041579852835119132180110886749251361098223914619760248780614100920577003011988594679048456438763960798998298248287451260108720824044607649646947147804123152411345339989182397624961977119059556460808745286146902546268703046015903755545940429030096369195567781842991257928666181448732146797331159463135197663857081805556904154025154178158103664608123543828435557017903444444642597468173919570239080458925703932629451098353792763649739608329074100074441936407460240515475074676155635701655836230135852057468674794024738758678824552024850891294086468370183268888309985778693910087659694316139588974993770940763713810201957723821248048945745610695653942444651675633631975048223424440333218850895333586425561621853484066302325409065334939420615069792526380707930873101677780852794942339441948779685339866703736028548437577480744198265296633619171535160735358523395672746999684902670381976680395448211195693297998274886354807039516207130472806870039462910142648976086391601301231560865482414937783922493204595032672196610744118417986189533548356979121659948299643562156186881789102687526017250101932521197103491423272090553863135440094319320334746641830588703412389766418095596355564552464606403270103622567337489726697126772670342887377487371238023589247689882875496963412742301260960536032308038863568846351551822101759315664309349865455056969788992916329645324869109689996867429578782083949269137847412509464230097069105501062273692712422774761232380836370413490590296146941554943929594734593583158476053738945703363097998046190415159413999630013760342408614315184342846058671309628134894310544557055437112457463816198658845549310856928497667502614548078301447831151565062359349809945247720139973355413932321804046655793945688537218023436496774210822603738337973073715848215051034959408262410665660502268991004394902335269648696382560403622694994913448604025249766881419594758930425386102022066075997134786862365870542343980519253950779365634853987452146503581184136698226642942382235828567009097284183132325614633708828988563892291190575079190590551575023315111754535041852950098885407168728106559004970540624533607580238065509086957607846949660423366001494029104265954220365642695454314345684471251880933141057126755429221039761997552546587151658375681575440906591440071609215812495967206928166759171991528649105901099724162408686804320873427809044512416277634104778954521749528021314224929946424874777481217822239795034066984769905215679940074475574522714477270508902338542702716290377549135018008069774995447309977491360468814034386029955580943268601573313308589794142360013612061133059848470454205670726861224845241293273835809499060209305680318790394429154032648874088754969132193487997098594090012743515004235877949775420702591004771392721580085967060233642557591593287011317280239832315753139609380067263802051498918615765294037714922614426776087895095986944981214966084524815776401082104195882418132286742486910476650655037168495617281182764799626938051580984088075208182065219689583877882723081210438813306152755616781798954482122634154958799626273590530019800394164411340113208436991277394217700124000042571993635715049851878586433561493604930875168115206199667918288556787919998102266825226106992300638031192134875208137179735983214091468550849625644340103961294488434715286872801512190359675135979092096049220064616565199772331343222799302109254234856603240432253415337565095216127970568919490452072935384776095598685690713419533588420660840932687665709567140547363144202913920051896380436977006663271546753512160992444553137175867054636886403248324640811687193617643860226812372602504179254996656727489159565899407652421637928562104750999191848039029791596263001405663532760017668774611792822537406213639803658541011696906434104446608955599927106236675369883037890634266813142441170848812883711329573381319899261860009052579053859241180206545347358318860906103757011090255916548676731048752851071022713513525695125242574927383937911885187117695175688715135064609047050055727147942379220590277634635539190296154795946726567489633354474889370489432386795922293215695206269126747833051321225670544820324093037375657513818514553885399638649648674072001182443648040512042276618071846451278088091072005248944677290269624187313023641493428247864930446662291696353593241619007965465690211867488041158888415673738391718395704077052993196093109377116297777838868814070268989089037404620645366964554807637656118791527418798838820285182758047165091404876925733296310354840884668734306276771112569026547569868633434463801430229208767744898836425029114423639784812398540224745402363761397786683065071117366619522941545511353588004037558283886454257923083357495521259806629683215092230798702283035204766292825003636055087175701172434816004403584322968821388170792345427887005179457881976284305171089193037930605927263211305974242780087390912719983398259285032964162998102516689430735405219771064797812976284665952097898413379089805713807033052435986342671176556912283442161714531504715629413887285008183874033747037789465354691842151513817342126324648342726383747310146029500840979951518111261077806092537677218396941759077336396741390125615720429760641746584469508621270386082440853088868681116037352597684373323415577330025024638858007452086542967470111014878009847171685993103520589598410364942954174447645399593946302950794076112194922878488973440083359480868751008383552457915726898995442741465668416699130602998650567436136754143105934838727779878230927724376855397754945526932429210494428635836149346147718180323827976249197912016657604894033816600840914480203604903022680301307970955526394677326549402790995009726933322214972920510147496811404179458831620973108941210541446851709088065376174095665406446280054811806503373924696280168298442992295225999953554883292319469758669372512506593037876445699624280307040568382461815277420921314714308302499054717629375071894949966161922626365210280059499951630870252851419331116229558217398843370348278378310259947231852457349215602732928100143336629261526414440544695392149917115095288268375397815476077383398969719981934958116075764621592159213597840817319618678928283668502262703114005335999882751715106247785963705814781062037826329824874548549698558511235128261422277012809974613958719715634813089393788438540349880697076004337521116166309330493755611262906598902624767891933971905726045194516616517189323087343456974128207523517487358995211077010839450507949026283336326512640215896775858395299199182658021605320788195980000106431705697456978901489364713369287424561776157565413165571072067074679714830125423827122998769567690880709879785315011730649174665139735363797410444120324325769027120745994810282895568920927013477641002651091611296781669545774292330774131713670956696101021069447405720010818032272571270267998588435837281339851384599036006558783666630617748494524068429087983690860015448180591134217523615272215958684778748149365093240800800805027598992506560433935217090786837102923069263835349547425346135843232733069131994254599830984311453162032378906890804432069616853568533204568516746646947809462474320191011370184248938525467152031985320386576997611180330768179273575782693003942423143959330002304867679461499812676958223641391849810436709509383988054401171917599664505197455547676751365838712762194498963813423548446125460569043316986616448868422400405772780914376547487900048995951170709836274620942143344061952149032745382577101463241614347951047077038493042568876731610397579832642937407401619896108177007204994415757889188286521945431716833611925445882182208488208625700450236487550905161884000845575506670932913931873777139035963024252757432744114238077532639486177866649813186817291946068012264779139597412781461265825187517970104663254736759255912505397878719214627728602527875898110583946821308621177945207054398729744011892152948627150322513339925701809129248953925247232682699132360952830799221202279022195390313193281727880402186298916851508981154454796460710307077669098739158176306868772209738069626367933477571925422258573193808840002026102839390338882079567169287685482525171983448316204277439490397346329393920661655722580869938528608271723517329268845063001065907182314214085384212566255203856485754383184043337228279488307149121559451189184190040049060825657732862348722484300247247214094699653255481518055211968201780895632236151558000000084900124879994320044928890386848568241497003514476367488800817094199382503584970518227055781467365723103428186660938617836464927488636482009931847756949203903047780947968757325653464431706430279755572473999838626009390184639555462244591898970347457059943667192743077188204687810796561279332257815305895266084522161965068965235633309395413931176376653041372209218294220965175150683101800933609031224398637113811697204020260621897009326527115172464167780425323863199452894642104290111920602692894031437462970537462036867255117070698846574228680465387970605531665780902054894354010568113447658388355231086687929976600061644563249278801886499340618851042832133338134511773228598044561237977870790102253240776123106765497349632177094921585836053956682040873511619810579863143616759105066828260406702659018135990902089083853130907947980077144059175056072418345828282276932270258841629344885579213298107353631566692709927423043134570557091257787342336939924714450233302090561629419247183361979161304404188373046394005115427739580219876090407023327582126695435498791325703297694589463653958040451297549257530923073930545782847101059693592084519681723384704815090795391986747635001700470322969325503309239431176308926464186722311175937104522966161594973512604094278555178461804464302525083892260513203979152962390631650217765776609262024702368525315656338545672720540893216832779601490825923033313690219216507176630910560829453297098087146403561800670876645584864346801107240141113187947435499223152171886521229749091770358570756791935472686409120352833039326347015391478528364853054299757058332786243614804392677889377268475995926978649507241593011077713525860062249893864327770654734330142982082754799165929642560357106735368068900924949757465303556552010029701986126045262206544936291263365877117508995537008997689139334894650124185901800072313931693777418755452183040846375749067628215308964826020128257184843585085451198697461162828691369560839421869304880215241612911864693264270351000119109757592837311014481361853457520379381564501694124944891705272545434191525063229239459878518025932296421617002562115034543768664726242021538657240739394601444525761033616315174262385137889798787573335285114365682088075356243684285244116056320041118469709860483595133304698825044728204338326125156996869296764065018876221140833424582293305914290629614851077377610966153199996120827695735253501656356999091772277817416171644233315515448276030658142598373321380353391446541431128158602769256078530921051802229345162930643071189860090374652029747478401786093568711786459292548274469165917918472658480440632120692299171412313344252532366474710309308446626946037375195466089217815260044915198712054815831396704862544656315486945707433020952145350378550841349053009051967229685871641828222052971522247655859213582730040942965278237429489872742537173271038630492046472876541405260121741162537290331378796493314642500126684253603714147549563980311916552341883252928182063700758727057040937985665541285258126336309523769778904480327257387763148878664547125653650957389093645310170202394234865712518083481570071017218577826949139638637192798896564204285282663076283171885150597001619685206602993958442593230861288827911292655178662736132210135061571318849753207480724051382053510962769289555508303974208364814958373840499834582712458465847421419354199420002616814477435178801416624718690225513992825859261262288711976554212185728269205270928959148207582998690585219707902393577266400847618550724592334992581035154623718729376358417914012585471946744869898422204464996657646369355749257744551519834868371216594642952033344965913718436432181149949285543086083421600446151503503820540151479072477732693482523147321116279265088638820040419472457765440261038098909731152620973646731680749746942457424178183242674263875338480611741784027495207526908916172663332555341597168881735739590595728711195438787409095232379279423625346066892337934990815295153069240048347824562755940588220397120822519654529277365028902260106330914750966729960095901000229729233394038221284425912720219826961840268996087107157567100690818185961641520317830549180860225322318380682295557287334459017831930672117621262764794970699113246444010840205673420385258920438364626713543502517291034935611277036843409013724094622106189821022288887244420358222662157472738923012348334832181688722655089079299271693010954048074664001445848471797425797822078929522342076063515572662531835389976054616940655459783191179512769042681682957630868809403974342796706999399716526846511231255499600472382471516170752464045188818904945854453378884516165073102025812273078895805126338319337831871353914118024442143711719467621877500361980239498737522235349774277624296797170309148117221255248316994362074324956900858920033500121525559125667833179299171542607308019585452166166592789638886638241209109608509742524072393431498474809967204256533670962068509047682365607903916511916945712455545562270455032474734513703156835481231836268109829406531034789824164224505397146269081961972273341685045139822111742749948173846560909736259836589561437590581092588894568653977099019396077756838280461147692932712778155466354845691185654548530866348378322780334406813817762547901101359523232419813468173679398409064861261759374156427903967005815126733684106706696642579059593425286162999554605995265050539513681956787175451752894962691957109967696265923875059454059842663551707748821244607923719355300529047348183861223047329254249186658831242061170857665450127812600499264714832133560863648201233546966087381841201672749463047525086599335409678814094799865954310092173210432856323525946678618610655892375276098772940971507578727502787850519806753876236753746385061213666000090839290351530117032233376970308554844234601694189272699248699338005888269154627354671601535804318669671241088030490883527041351515504138436919917856885530892161593709589367511522976031235049493031214398802822026997534421894428872025857153811126073660229362259907946769315471393111373348008657965744227323531498443168421737485571593123682183476598662289537806788840675794538872264274612293095584741579668647811505308244458116305003623786049531352751453705969583041525275194476173724196269359339473765514862067120137640763163447944000648947262042801461958182287027519659680405960090510273805166620464532277835298840629773206709972791492917168709576415094830536218998230396848585772964088899848155574309982095163639520043289414432475777693487941909009683613596352473815422890237907220353295348300419513648071649967551454191224617403616204960596494045264484036911733892583327859852171631790590939957588265954542016380987899646990135093283333506081450510890921705217562037743736466195354654695383501754259422493413976337530912353230568741911561782465178640891318518704936706004471562357936380417388929717191240976931440781369630445388261406100412539445194786742736724314068918705478157128424962358883197602018456373876448824814028402098376449528199747586712949448834391057291859383174302765446623140373779792944088065906046059896307822071863616351712266412745276148713210502344693795187656831949852410700096039676510929123965148368860667079037560267741891206731359255621339725526562040021478443299627685016895225136688754365612221319319504573194973281103420197478431319588174432323684117616793637840074423161016202717424927767145808264961278760933126042093059667105752279595976092474525003310575903854680452912021496627067022277347322690628988366018670495472502482482987060245140401668027159034068557286744975081804825003574407435269373588313617799667542811025084967235580751778882853656373057483128886933459011417524101830254170703588335482075207717360379005664714829592501503833596389183757916075640312279660376888383434551752472157825216495615284438741561715773947081727901703439284935639595351366055732392026693094806761902983584964924950191643161487423200157008595148539009480580030138994653569864960151657416256103324271044097400463586149651740453068241696123743037080629789445089533989451510598286669720917702459269662387766477839125660441776355788888381187461438645570462299350890173328270922616688904742204891220932085385501035432809477419624445442582309517805974256165436559774880083593394982590483314199847843820974154180139490157698132613072635595039754026957664353014179503938727312553146721745825401546660636440540028932812961199793390796174068214104167620529391960007651907860994653107687132829891900880041952165115466991807435637782738896098085181642081456801022919467340190841690885385367129507367764781011801397279621677449848327127162627484885644700630991407202124039259640009350647510560806896293965499944577213802652064477882938743904004726322437073411922692315476871568404525432841451666829888669045253470632093103241867953098798998542430064340669585050636002537757763134917027232231469207640051923171715865713325848625153076733113704023551240921493411105749540522494492655134253555919055847478020713949932611413786176460516379713180453751680244260161394957648300567514927596277993309375869734788327402631472957549538773274066269446170373495212718670845361201237658206300739424565271113702683252064610769648812213222087168518920121037849137036865629170302040586980687616137645850388038078385670031981433250394369284216375827397620543322925067179234343447743324371500054240559721993790623348824097374686735911569485311929327238541954079703753280847907342397820981988006104676688922878791967319047091399731797436764810281903553311607117625790266077326157361389676024486678341422938176965852683267840819925361982147306038259501407943173433861229683635085688259617178708597642199384384271809710559712859045685854054858505263840191549836380696997188689881652613535425421595878444575750205653465797236435744828749627735317999319948492118122045706075147093298866908179239082089898893166493229659279807029025580698962371013581267301222178370471757659895877233475871183481248935360082602814562676333757831844087985050441931141461468294487924636977598764084501407105282980824742989806829159120808749102741050452314917165140176848443479384975195700676183051399523516983779878860403966382396519929580129196033005810569140643524283278173968029066995156409126833694625816252680410301998238183127958752781349730037391682987475772918629712953098188248200725363074431032737464500714251234276677067734761183858724555294791589815108326557216361240273440381307171072439395083839885426823263582216262541364285590090419155155226861774734235387596600125070990604326327098799484193787783372425250099559857393783681494444124330284257087687296650743478511486348128005258223333239977629067816490059632314151814943500904633463883864242895571162330255732965551529415059752134794302272293679335893371098254102887156989441771319073644935879841323533411867154308405010001689998935854610361053060856871300804642853518825969441668039732213491505860636142299280155141028863217939049578689493075674362955590401211534801563358583707716076749273006275704374441236191034393237144308566721181316084773291196351194004917013999100005364159940359416716109029315508330694924125588941604401341615572048361998013734995990234050639054184945282706354287820060799142830657986471237800662416183602208504000510278980016184442247144900433886538207663596891314222217163793319000755743480870253097970555180773479724916656227759079186206234315527940242149167458044340502296541846743152330271723567484269605086614159871414657305248391733703013282923265145638275437107734209769045669498793521007420310592411836547978328526378879590396650248103645541380795336544366789975055626496955134417826730861956282855966687632822656851566327223849401106590374500360967791699804785456919114484576201312299744835880150305370346551171089744684666420423635423207830795073968663575834412542431060390226704061608610320858606045208539024979641244754723096325498932922671862153468978127918868205718182085864314226403761327019032054824315991481590148481990669683002736733182816583103745583595140206508375523909304110763932813849870346878872575049323606136465099505588940966136365676333319990668379636150039364046637922001545976393718179793004524247140912001255779733145854526625021579467569880397148134967983347881475823998584251603943943824287135827489679266917631227253705732343845516525022018778562052843660504895337909500056793912117091920030056339023860568058310331227421651319566964374040435114794060044138369909567690899472623837642846592389074320404322246607532449942467886564467801006588503967833798579101970229238806221673047329152269815952810675901365129726581555913802738256160004048527333705460059726142233131491238513102799644868440310571329989243594576148840293741836627946207866972239549978635256470038409527114982326512237026649663564313796783255238387376485185453966948924586379285992984860606741651280128612695719162075149957424314036486334097612891445923084327387516040114311184614614348695417964032322280738279512326736192374896908618544108712576645922115675782925428588781013160556319295294270905334505439899936431403433389236480157156411291654479490051801156082373692916422662220404003296419279333505816007622262314808287659746252509972588410944570624025606162037809590981185048801847486849899686739873118065573433631706312375625052860893433759433789015953727479338034073477413905726115099551753788762546281923947140492273561570007296718324590252477078678990870159911092534570483206823769236140590589924361846309211435222290580444692834789673688151033114172524761327063760301505621598566061722470346814086921383575363801023575007932750773173243493977880671477250712131894564879550287337644832502075701388630564286594019295115258167304282736970517084349174924799356604946199647512407731381702791749535581280863601459370216925993249070550228282736460725520311106433226451042966389211611021827737125835924029584283594507874925781128942506815806056596798500547352200519343780653693529705716631445722633076586046724928653432974637284905417483204931919975529082873569765928934611866895293994376046537058825006497820119447362041212401318148577750776958575020579392474104566485521966104017504838186907340950063949513923654676609177142531082840432136080416096266268879925568568289819420386105214635820075689976512306157505246136408569354178343611996302157362184049833379382392076629484021595531658181566784216838418737800005001476699125430393420207329902591466841996320397083746703801402452685742834080061965653205973352202018889351292623852608939532828746709834365017525577440693180580945447216927527607783197172127794565262859630338706722180946769589032471765011291784738565108739532461959004568384380646125878228518872391761563580440484023748939815170672703023312563417153247002805877990221126486837890094121087757075502848435372454771664222196581842317083287113148171767330332759544347859955337031657512797326122472645841691706524581159274599920449353696999313941427477579897675371019562909140350898752730675546825772742841022123670872062759196369762364351808941411792629527385850213138456196082924181247873515988535987794880706648876978139343551879167681448012851459706973079517354586659213029249354937728506871790468229517212839048343530216529911339216646232531512034063681560584355763680783642233567445403447390177024129002168874161322345308744790855046559935127590531151340889152791745690402936140099262622738218611848145195590169719012159990798554036368886996206761233453776296687492592519677317764559110057929767962537353601822780872041215971927380045639379887292593630323164354238251020928121199109404774507992328342906560948336395813700445956605653443223344928220445939385942247109513332997131033183771254127541009594381999327937162418741309054840078255328351881614290513350706784543834924781464881782717337874173507017386957602469990296309885061382673758869274041807536554014830042317439079554774214902794881616566739494609557121998105591775020607439656663670529836318012931649645938337321032200721747198880545411650234421751319385924889581637509598085855481999899768849665792493163708795637742562798121206333498301264788926628774383209039406943806214607343567937591047099011317356817489436625203284461109309320813352861318468999668239300976230925754866747622493336507545742725195127332398589192659654594884625076990844418453898353101715910747021050300350741137747376373525963346528753065698922641271934548800586372330166059290545344189097355318535329266555774395846486688175910493287898458054730023489959593988549361042835938879361802145410888342845960576726047601477551915609954541709252092673112212823665933673011281467120474901067340040372026045474863840679833612352020293280478747693584075237746930983788433515358049924418712330594962150208134653282220397776568497525687363719968181309302588465037917360460508546993221223624658745660467454990405055594405377685648976611441787323974355197089515673639600943019869820232754423062864549622410901719253326728623697879544345498897296499758882973612031448987594243484395834090952216471710077173739509350450847398079448115367708221878766434499394913043684628080868833663194193517105726550658430273185938671639311648016838607941446295346272140827853405914184995055748137917796908649011647979524308433955604293289878244718606179258428359869689597868394987979254636530390379105687240210233299487110059300373997276708640838559052715773392053114673624587062890535430683631057089445328432822934384852569752707072100855165998188140112889472325309213038532339705463323627868782459812001989220923323328716985930080188393391881285048783412034723098742381998544608088333578471307986233264615314396930539221910318945471966135335811890636119520015044821148135326833801806837783925466508449751859366798988048333702239362789739534580878394138871113074091662682755287350371601325821270631302009462561974645617366606989874425641353315684594540583357461332879114913498540774585700022357046187486704948872408856383232766403565482572916390745712126823297803415192795784254876629689740707088412296854748981873400837992059661200575772273822272168400699777234178819829687326137694935134705776616067797911081976545023664443457594759164532219133061643027749710614605031816830046326853168930926652611579685813565006601151380550069466876352194066862144762937052725851884439668411855980947033953300483022696548621117700094292832461707057949472136420520847900259712643560542633378583350308875156369922864933749154903564049821319441728476380016241877160745014844158115813482091288562693888444527746845500811219388591183817301832620190945794339625198646538949955045973599948669097011770996952921721924508482017427303654083579379559248779778821124887778688148524426183513716005538349638482578326825122277090330129880881912198718299196175650965216700272562041745974114210132528248937848881658008380328393701061132334040853164903983068679437140401177698558801236277207801718736567657452726468178638466297125887001468120467964708464024134900464292914809363267087533745219630916843626921000113122151202352619189757402201978970524602462943406293858212244011825100012374536322828131533558041435673193748315906367466640441445637266332795298891652423029188476413807725631269651028663700259866713537732187226320483924714607548635944875368430704270407602097890571646043027136790429333104291158743096246400582607791191334662014678754666224363698157174738729347284579182570019452124193671226869091245347507147417935078653364024158049133804595465249448850990676247081896894448252027222397114337756146445975298177584448082513296319480542480207006145313958441228802839339926131942211734988946396155849568092601019526074069969507094446863255312242199553050057814736959191739712657450568956254251290302217934225161007119394776822380544587150460499120842937768038714166698334879567646371467935361833205254182485001845325218255361313427171959525472729713167177387875646560059949575348766187689216180746013035697988924182995313787325480734524237680196212782159034112560804499568823196769727946481798321868875451970471173380519927214357405970233371453400345574272838276555644760312676389230418036129801346308333161166122984956326734152372315813919011542549298999485655036384145098593244637152496265652424808426192293523196438858173561258037378927857172798683609188364823979083477903512990277165740527544610589945535358548169527768710557373795052711636817643961507369648337188135048396983532693086203538779638262016250164454032142033281271180923284064828341411206388730713412353951075390463086862464341300642223873311889014907243849570833523227162527144069120996456617607663141504940969676434971875815621161920503834923150617350385421134622005616365187212182466747464712919723999032296975705607358331137649623715154056333499136767920284816286347811326693625695343231876567289135854416642537650757055466244867242016269681506975553822206545438218689827947013829018502246750695952262143278846799826107972165989059326634187467512112247949431866222066374313433255962420810023135722947238102992543590791987689540181670561621206485027810712169032962741695590780543927654082401469716923943318391807357355601312421198769013862430247218606319503971092797410334032828674380258371167934067250404613260295550924892766890275341047194027705717092658349913040265927810290128566018093844315377627363849668593362970759307142297597364563969110029796012355545375162959312943900620438062731014493201367148467253266433764883955586670706574165940138270234197294870863034781174676496181614482013739925251112475550966352967645771329788427536426905656237467797910688684421774733815532952349533223868700045426223332430155800456895023738464373176808546287372768944505081472889376244935421854284143774728911458812710175377274522614272729694476360913114312403377387627471876391649567623515273954226997497935421824568065970865316742505184032396392414169639298763063454966117169396884764344627183553345255135614167612144540323815544472807865175035616733344793962799776032794769204943421303997559136374055993669886883912583145407476728611725697210013283140811001697823033757214700170030493719239069267472023015058049569355460115073485192468972441289799266988117096328627509025368015172657163480944487693502610935511628923938191431621929365688449444934126420607017495878920281869354546036781103045213975139936518509257827581451608858981035915699483726431376227062279404683361731377601754283509503235451913964443409447405900622587702813235384712041532126331896822514423221478055202006386401714086482051932858695414075797201706540490386307290373512194625719042309806554952090399552670149536103819309063310199668383840736528854526879475359791330672408898537488715967891746882810833170928441573572543748833353106547679201113142598615620648742204883162341439032421435577202286555947612684138142297655047249994793897864564700371681679369019239512103467511748373019032122966538350472249012035535222272442837825551012304215376279426432296283266635793192557519135719174044285596402848184078364641786939203298239866929730933556928101525799608086820625400450173342809445166926901333686932383204825964469912692192407792095762845150936811738021307461810928498613676942058553508235127190885498555255971585475315878918156248284593635572922499520117671846243784015951061405437729271309292179131591053547356746614681994752599099158218358686390041016955165524063823130130904850291296519844203029447202394887362926799108037959290888329365028228787201301616443070425017020781925445990522453865400535492260161992796452361001642235938679926211303695782476808953003267939545005325906874076920612902600112839640101972663616058575689245930445096042260038214768121327366529564453433395342370413087849938268168776882904542116448592198410072493117791753509357151540159390103475174209380011932298929974247317840380731732019154773936684197945389576051362735502875904912357117238130610929944156575829906312246865778577705254983670402880725811627506984923669699511800114339132291200979464818187358847818885441872810665946652280627814675081317017027368631248676210032487552786079842219613364359890070518863548824215602845814147770201180051743465739793353149253675352866704561791008592109812534074835376552457752862894790129647706632540823839106290030734844096693906860112260339263790100085459114258673227735257519275819502490654212421223458401041722824682088642814427693061681133078336365896628724769693105894239276865639290410116829693680724033565551426127656121183277924316766945613653010786781820338947008268055517288118717375226027903737778912535654965833856968830722985339386238063694290870903596923845410062545779939987384134737759998999732925576700068926337131541400280689699445607855764731244743471113315856634815643003768223729655829035835514121309738448693069036042192381605074464986173702443622430317429206356564899589926872587437761020826307689029647349903569637332207336571876875772735734638598436288095682159718158667894163751833928962506108520621829993022552199304129213785092156459664634758565913602429459415420101901155179714304817987857293929759173945896105210397652108874935701206326581875485801210293243491450578504711613801112983155911887818775491981309887788921843601143130401160946353653471160758459972908092885981890944280762544931344468552875404127651941575301547357263616995104482778266946114248814201240879629720914119940596816810787803093858402820419663186083948428763250271531671768606013833513102476177335229590448043837140767548921145533253312620534947987243136103262095650055520649561640202112295014126595569326292573599132341689136605133084780525995821351077379599574762850349873730892568869756956957350075815741257957597887146804450120916959716687300326505868975318147108042446168513842741422268735057707485531597248743109854323109565414607732276008515916251651304207993293148528198889253266321810279883652639861884834341081831405678873391275476026611327664864877730001524501223858430490480383354003401780074578760924995404883757286486193798455928076861502619184366384039332756777185683644044212079061462031777703698008949139805525400233804068223448088911788768079854759296808152090025934268798095311638539607918707838416782179267866473969012054441768300787781843690691802304945387826210664403540596083451081268268940778991844590003285554067847881671351772185813852132912391688312100581159870374872865728516809242118980303708188979969662744069745752732498891216156774078142373219989390891229034918504669857521662761309636628914252518712154210609598499709189612990290443819641267806258469990108635976600747728914767264776416304007371054925319888315298389920064535260448874130080936979240118193432881074261100971735275944549268428846654206256905950168556041658401354373529672530103103830410982549230436317537696101372900735970395772201113116712025565359487662508505600670882293111942229861032498969436811586270403257593469293870774291251224754273787120409732330145985059470907381775669672410042490761934993566206773165209669988116139898057299436143387788604483425832480459934404934129063647470629480573997775306430405578963729334811077224555133108776766394557005096036734717905505477280645852421882428640458653368447671843878687157694080329722131821046353121061116632478172284938654692129830308881990319010961805722038399011212042242018637674994327752448575957583262201676857787535768334185894647777091005684820319112417945764228792598442194844293274993159315548898359414717988418576351112544672860226450563877536789882038468935257208094609666467466783132692735825402170879386349645354120845092525738267981613034075110431047152115613940190648895275460183852801944110612568172435677175292415211925310727401353741073754986068133624436414161788370559071796479456368110749549343362765185436188821085472699811997073112479811889630986246608865513910580230156968164284978653568210713153945515959679830350430725105054744188154107716595456260659923213771303703678096305033171748159182613658673806596610142566099806800230206122033233830830492295579029597094514789765580139066200837816802926251943690173690059419041205202213250267928767590661367941975737559324511492298121114748256608679155116591999444321898065135186283211894193539701476008049632751435700603632489417219324363665239193848745497774747093308602503918446281689368238116225075441730265756178291671662476031255304830000821363881373974447521645991972089421859789943265928199330703346644028843445521481401564262838699919473814951472270253432147858628611716759929683132892383838299781634719133724964378879658388244596118070790631569283651792394807543634954351227018155591152934943191239490412735227082771885848943332103416156135473146120203703311072596788269028375711601232884204141461462842400372152300692363827994031586688140102084188878049130659643013319052310045207949704292982367043548438072932958413039779251565220962127530698871285411531536868423662496900089377906638376437682883663023003704588766523333648377675137662839976674416106035471414737447119888528666803118007821995435031712711079974413351470068422238021723928152720967395688203574626987665883588331271193516891649720657092842808869062058790362377431436784562723805503221524879938766843705578167007679501992024092101616247950825850323439923380469759117577080255862935712580892463505644529619087909521007983050756316451115115903686083412620287440680112391855809505357678985748942053059669189971755922136416700507499853971299128862347013402868147978649119769788724753268085649157801567082851842000088458619335269592598689786348320213158745487678531718593152076288183316222488862223007841538794346075767899087377199100287319574506032993637862984730682946227375056383538032040446470572481237320090060342519438739945671870201873996959228741071139285096844247243360232565351024081016373388760765661488628341570967657316053086067344126711734029444850710807824247822485048895136740801441830464175840210382463525242439798648077126482962267522310800123698478419680469534464503401850801793922432198730718044918484665282370852612696763082909203607659979411243990621149627861289382537439687962259527514422222986978524801497871037649236003652256378010812347695581093532456177194422618949498537070669800023352178794967229577925501906916991383567964867291879586557166417384119736287271211395260694043695240312387884557871205268307883568493873030362053318010662092690223552243284304886819311538602857552585024759315293296775489885320916082251226805664555692615012278204775443152884018797597904774418087280423172449742518546863879763262432870059053052560554092250617243636409153242351673938461346689588315611769775473937978286102730970143846578253443452903809483463570299601853698709985013637114227907536944938366416626216116131509822633452686395473426288924056578914181692166404856410803339751606765401568444494645314769179208575087105918283648315721449778240761701293914584942823963713941996748136418675251405405570915997666895267290801004289319569644022572574975279264510700439068224069593092261056725661737630868173746148575512644216413939522564678006206041246887965019068896548609640021412862707400384824071733261941986808320174037003662187795017747843049946761319987155362535528331858895280344952112350804626460671669669553920035789797194137018130995305613073087434103450445267110624445545156676582253536951167596702724684742919779115382892013779000020028525531644883403182207640996721720844922087961623439919355362359051754091827613470403643717832128712705750505080483404565129036064896617827494127029049360160036859695256461391538242057460197900090431655131219675363318286718344670742505099203511411896423850637465975590016446378112737919273412056203464135951977697392738263315382939171840300577462085168313742015654814101364330591619244623224135993564527206358530391462830713550191699809594786930529070023214036082294766524529344911893004773800338407051333735182223654101440510794903114625614151767878286989671865892972124018944220627019240485990418335064741595799745130948232981024286741762737115505292085310040332653663070941705516200311362707968171891124232775979915898931879879373307006607520755237146157291309245178097822013298908638000610273277165086835681376143374091351083050471321358187695156621793929995462724122501578149146687779304388475093865177532382386144744568925418974019377579941071011684796963879475563352286793810171946588143460738110461818892127266509931327281270781677748655040377585975070138246091173541698959581272797651260134925798389720567671121431790282367694473112320210504987616484128406052938173560636886140236249377842141983403747507046261563408562722393450364005606201049655985067732805828765609539060327881265100589034070304706204072525933429417920861173207235882359468806472457586341371337527082146185145763226368250577223898375271105766750921576218769765149785292836774246251889676563156579720663242977542153732664569834275420827728319677941710729532010374337440172800204855926803184354674589740502494055595816178348336855781232406089099383956526386684122434076501746749501525981524261546518684667711427921680950811253301309160371668641843630267572166068253503036254835974143542340597763599058748035708591130312189043379811932007215650580017075259937731782941708852266096795946781937949796061741821099802047667974612790209943126494873928401388456361366731721028294430340197651758941705474453227057546967897901702877472922086123089985604159422478768477812983429299921684005347557354779991227211374714612885123057965010194126651480868011147733287624702016870423266320720887009421476141275491521044087402949486209243347839619286194082598927775948233802405547572136460966836295388686202308488025813897898862722764397135053556727572603182771231899709467036913317253032326597773204182213032946088158254625613901365567305157662843552884018645844488406065608676768795885304580668805228989964208357810395169476610898727453735176144844644719391553028011925247070283872585069029192198583561750062708225944228666251561265625296202347116704197647546568186661723298433669387089671195699030454921347105650333556830029001081893870074889605714263350009467389100777844583422657090588811432994797895321792977888273748644306905227118119460872059080185970562760909299960799168400523976809364491692854744762776389262944892534858163724479050462134388568577903197250080492086475751509848773137818966213341079175703668006520945788937159493190524814251183826353222852095736528168484421711148376411841304495501882626594728271216598831711770507286157055009756603194614045168381082859025173295349182700936079370495498215284290301629118284368620275626677933725030737816787229316672812840579716211682932213397709090639291677855865408459868149342426956942396994286427965434241557823407792633044613816289711214445852500217951535861892130754263191932116780230996287118874433156539225471617765731583925383574542244913601554889143988333418499350777825542215300314991998628325529450952064304730882203833682592476022152473006068818504350039260706225368821163071908747241287245286130575559637039583580901353454766192248702805981409743378180813386050699215549114919344145645374510792290290397783140463599401814877551968868072072392918985612216330904775805377950294529746941600784002446871121146409490886246376305741939147037243084097211173615312546217904140017884579998371892746766574241402136564208638350803870243959272937695599152253239333148927843951104433637062111319157441870964007403661570306035744008205440514949560037460483742440350705087231945885204611891927432426470748516366477247768694968876655189713207273863111639630751479861009096868346486668709093779779692966165376205734947176110060764304130576987125436326332283869068718541153215781286737314805854659105070957721393293595144325945024026755022650934155577602289933194581547236319332272823077774244441464521462038925062882512344037327088651000958862019593173808777518698593250079853435865231642922005179890770249144297286501363857482438037052020872050233291023291696222533062901321744524791881836316528391263396579849186667550057982687704811624555808420804840467613053061806421467710791270200582984345245994067135243770711316667549068144977228429451859602073418907361170270138243873935495047954731076292483394628330669234397944408741050651895591337737284166021710413974638621947270619886933751488141887363804665308577610974758016388684202262623662746347733172945839821935618318145790019330946540051678602227529402785666783014892066212655690565158693933333703269960773100794313972819589870648256998958121369861560759397850638763430809991332666459552556078833322466527283191663743701100334286110038737731914250104749724738748254795286005955883814981690890052067265344817342549925255108651246364940450325968380402717299469417426310816726618080694969057407321182616528962871593537034918328660880409170390146159452920648176996457069680541758788974582883594136299374544848637361232882182136106894988413034867720256059653023563795775034622397394180980430886988833322330166030024149538208306178189847009101290193977362857624928132027658906099609482140059053745814234286884923114538784232507530229529952427681931330183317284895257777564727171575467345746824129688259825424565136296173659589897946797216539931770922465195123803424099653911324506322662549209332059582811703631875248677781642456165819684193710742299914533922304749950825708144285049410756785222084747551148378830189729278942682380422469654645913720862681152916394966249417799530930659611989237241850907794475682633244125153830570316265755864543713844260440293266502952732717662820836089903220544276308876384722716602733923492179490659142579919530767278377439605383368881686753887927720045287067081708251819178085326772913323897004359750160015266629400965822853020069197922841974168199919327671503107479918392478975403147186369879510310868097621357065415555758853664503879930931929739543580697552545333883894643891950723902898551960640451238583789273917724056474954633443009064393304634030669385536315634624353664154886408906584437509464270481179627758592499464223434185584202740409048006390248852276816846041232868943337857284130209984289370567298116638640533771012632894254013754665773728326423938571939797711996964263374600682586849128128696331402413922473421128674663906349756339479380155189708158279186129363412730118864846692350332051562369109890693431182428426557543893243152874259948630337348087762842381961153757055930270381715616257498741706047725180898842745922709655147960413945999148437069339872673358504698324409107606679655059783228182158892279022495547367024911236626197381946439845370112256444076603895782416474091527085725828764471794690228725815299488520294752398487337062153244080413218499799585932264430576276842169430942899681508557725235874198516583344926457942554292212704568973531974039699554521292206934495024017519012353574905551899703719165379079184404908929701382955087111976551112758027966151897587398494754032587204986591338894729055669878980732402175275185545432421761265960674896824438654576711881487800084760974862069577216871766856911704333337453514359222719236092534623984842164420475137818616211735971971345071460206432073494017964152123647748113373812258378293190757332762834192671992368459496596480735159251633043961060798090252345180247722691981205846450062320410580559680995952256318510360233014580212261807091915925188470673825243173788766887208578968248158911622106125946236619859723390623872097026837092773255360302964074251372354965634688056646783824013608034978840598633848681120709387590518529929126503929246237412801561478309227787424691046720886121853723695131193530612964543298743967553390038270394304988020602495852170543677276118865874525756232073829367051814631630246508392172505486772736223463815227271086710039835502509003769880179748013639571042710743558354007114720515134925979822854579039225589945702742580223301570829833883145183513140024992349195800737582472672517254471962577073914827727673130639626950557590115664713060784764392979874659458839727952203437442671265565882855679749446216430224099526670448705576019428907856913073170420583554266943562728636335695851636329451546983574489713473843779496310522507117446704585321722114435196360064063266396257470571642827018696791508370111594827543734173134926267610542028904929068370286695087230866197428247802664176022635130284533421201976469383870938685527118490246525548565869252684604884424551041387606725894548981573732228508490355319488475154688151814281786878008047381148216943287287840299173626432319023201234342787543327426504164249173861640572039169486409283734920964305009314088765845318881005520848146196589826968746477877244394902990106953835268583637662859661921221030645396329142805706932009848712082138192914791611403792440541547218851821153803392647954863187209678772748065121921130070500013791314697143766082814599288474124494463684530247318046276614376282220744644541056964759942733190008632284447043436908479910796018979695326359327497085705726692971864731632092356109687113353902521163782491059988977238584551877912591301133339238775385247605299396121148593280360862089123062002936394000793307931950968626131810266752024775668844213769267623755111264727344795852968368914228504362405174715244374208987447697839857410454441565307364049681856056492402689342735875891736490158366283465002624574410286104166518348821549079792556961272810335788334870657464190727783795732783098186803272105585380222140483345068280783209637469969891824004625300701408439152156203051794862055582349379957676035084027870933410418950247636276523359351695910808650235106663817981113001245246446082524852715285429705074795506453704204240144077002824891941273180183989456072607011254384585425401453614091782324571868395171732657117140042197051959528138053948438682897430746168630607668157253933912908278938443116462882007319943243538071281885871942766190168125340508032738884086316791623529303199885980658060784657492844389924670444923010013141903915170269841050375961417137242069036392242878067507229926284066929945666807745204761085738674959502032950274294563914138090254982244962068679263285723690591713293706153620659548531643022097808773265514533358211121175827479940136290143241364559072049951093302599120853388331807752181505850499820096573157896380806250491135449477539167407084421861437739841593317337931455865031719786022546341344502686230537084770636796835141681739557472609245686332624960663153324173399697169847087657668861624138260992708810797431966619581387922656103120221405458613887209386964499199029052685266106244307834712917439467734775515807683964175724215679427536115165241824502015870472910008866313760552200118857265784860729252403512450849007467706272102398039312729905751390523759737898432832728340192818352570447166587412016837745979916721563657625367458676905815292192248829510612884968946293837853434102323603579886701193241127272359521101512084689099474182079832095105420943276842498736663078192988479227070044589539009510771206075209275381362084142474051035200284048064496952073179812607435183035932555129780118636271759501033646951888732068870782077950314291640129356340839171285313124577091944974936449562922722005626805368010661702993978623089523436576046090455688968995394379713974686671885171223371110453081013845022700907695320953592303116001564780899329274082492095344010062061270984938711252678275401875671690452378116366970888676133368586662518335286763226803930866424974624933118094559276699880415790529624411592941456584367241895997263311700529591068932799086580652907481296263984421924937316101866655007249708808349856821533210632077026715243066081361941558029944461479057005443947993396768806517599149890945706303880858674663090465077978474969212237497935352778445674305794668714730704047216266526879543516246962151040676001257228813673243026821731408089536339668381820762727164815505452861093286053529500622345713638895978342039328196413100926213210003371105026266007430738235219946438239942987639286983041245426658603884316378882135604679498205811669279416359579808188667151279527764318223085012017218510619268783515784301259624435278245346670307500017969895662913724661236004439187243834419492730324619949115541157641847731487518540289146482617823717101400936896649434079665131775684702566223601705857735129986800040300544498785282168232918651602477411982125870520152162275131915443351982059324645589974319235850905588077594276063719553617330154722504003026089586096563768550494797251773205609003365268660363597252712366752254229753350007011748420584119875865816608795652994746965605190838478873029186069802658314595284485177914721344221773524069432327292534013787719473507038964021583935646523817836814064897944573557661803529976844739636147789914407135684141848675176865002734963056045638991747903482434373933991955957226813165974439886102557172191270888636290536239054767914369748341611757234764781361048928696872407139459333268472919042839353421008144388372593635081989839444677215311422189001717320913028897474020679258988347584585650155984972307856151656061667026453933142222468920628594607093776365621707085473633961415636423298647481523021426868322375787683468357927549671527141970197947860481496682254871262616160181256945755834773678651099032428173849031944298915968938020788739974488692993215258499574337770086136924525329704042450565695090018061478360513685870926793769554792639193257196993869280997864974098970019452936542388930638822894195607501760360212136265430797643270273683059450417280087328225068672319017811239358803404998663263001933601383742045416445443412494089393593085995403350167879756475280628712458932561818402318999913410822547006638435489775889867714682424801904213110045132017995522182644484934691429936961685938526985151102121236081212777435316249354801240171338102275137403586113608203900784507090334792021579507354303335189463655652863036034196369526928234427985769003187994901611619201360677576314185934841357541259373400207164790576763168588050607527069789797173408280901874720437664416472830588075838153317013752327934190992824904796865853416722995582154043856310618960230015173052501678191491314028487216865260436611367345824363082394297514205283737363076200125871278889415818489340401641231883953712104465714505891917032439548970031401926127681183667737361765870629970116559923563168513628389764752489585922071396011023746093021737869919812231276758327300033522683881056979981980925662016502112698415591190475730261945930391615519633608661764519527847586851564922609813889181459084943027470781225268049447112507125069393327655518196837850852302485736348948657612047426898628330768552137325005017132626674754175481696965079274982622029080153341018534985537250472838265526743130228861756602436139020498228090990659545285477316943325437950520891605140396602309064573987942714281171950236964396747683121875692557258480978456027650466534285465641315468361206648998603888845125051312708881812375236956118064189653500506033983679230557167861817974587540204168631549869351800086125905297454112243856705178670410802570911733239425311246110253769095032561715040799127225013146328849144295550852635390757277016635055449648039486954750337562556680976557330296711992107459539554622979373474891147234280837040259318425611572437530469492816009099543406307884126834581290874048144904078332428818449271430896695472505410788285990581763693991558933950075776102240445802956115120326582719515421013902199908366738573223384681570778680799744199642838908339191313903957686081150629705056518405548646677185412758409317599006864388894979694882153200801415031632144723706465338716912952697882705166437431811215929319554368603798992233721230814771299082893820761294688640809483567885190566647509743591131630974003374626050988987292387825774436095093293598609449733304982083000826845847679493725613304964689374931067008224754981495433017342935824051258440254540176099104704349190493301938868206613442350567450176127347322154468501772456426131577586059167122467541556485582568152167616496177366343807567386229696739747127047290991398526060364214565392828672667986196514096740710059078127216643224121040144126676460826650556568309698305601024026464936972449251969629911630923172414149863904390956227834331048785208996565601802230925959956777192305040639926732789525260176241940126600368873643558707018351146119269450890234265052605183369787135236624004670666216398978477678326661660395881773199831534144471243781939785639028270755500334231235663333418675510362968363334908486788120000603961157050365474082142740995098989473892542081642577506214342183794210824964033448505148607930342854005211118280012695144341290576798851973139044252957138537691552753518768286866574821511374990032168728210323592209064799482171944767172749118821499571007249971119900234869617162323500115198777335904554675343678203901229220658002382684507844088344416036631787532070042028869267029997922141491733133751536238981536160342283683776218595548129694978277098677115073069666923099890353872780490165544455507332497799392252525460771381616448544997555492953364996030936556913476585583512750761694095559230920529557203799629038643043819343602964616531431775409048622362407782379267215988348296303908667614821086059345176000032221208616465771922395352149979410019141924790129906295994380939813794973489353469181264320455361000540847716057863593120762792657126326448934777814074818962173413499344253067581236677554293386254640323012616609407712811089237502185117835511078749683719516185092437602957764936443933096642785963353646098229145089807348599061411188887059141061787407818502691806680420513508420146632858776534602080212931654245002515583827498162725465296998811608642547615582214959494143458767039983332474067701483537429049275089933164201414480759859681032897678437787175134623526353059455739963348442833033676553727973728957198744271422238205036803680537587105481326082026304800364674374228781421858017730439783986545049278172627901742413600908892104300940155937538669851575048951620167625366294277542626544956456039917222759453339262024728676448460755233940231811361948212573969310352066399276064484713044856789467495666900342897711112482347733926093754322816617298255198401397643744128897953444765544724445530056017559192300986476413002429187287635629225161068350439985308800656559592349698671334425498968612436715783433743749799586468399219393873677147521602086021178674138330310730828149765483780344029539002101765601950197305531901980389103246485291513733019074159071755613030710105534540131974548489629231560683945291738795261636211495490163633191782933518914789757497517828349618835554673607967915214678767683378036263828950776503492977039713198103108386797638475268938931871455278335414022734773647754369499777385899845083940882155029527077065056651766165678299845909235127029392670507915442228612965557569988749471330342705696961664575477868588932527910621672461867964974033254481310289504286247898176421978282773545354104571839375125083423186361860801997616377933242573178352437783054220242711328567338802704163825547464037585974822092465267967946575739450328601290932799334739929045415377321347598510989506990972487405570564667364561035023678232237611987476549639482212618841043572487649997868907296300676828439753159621261116045699036931987877629266482320746302112927919553277404294906364408499745443110187554438019592562789728581274986713286452446937870235730827367260270164243066459107068599964510840442214693759035534165140850208719789490318949347337816041168306968207814070166701697691809935285839910475376180217134365865465657179605078408445308396783013622406004256836958938528967919689682528102914613012874340196214042606161293250618482193002608893910885814780120257449285509846434518315111877093334318375037001784614112197892609653862095772837531064935031149222228710800060392885698060746068747553554006124593573370672459889372932104796689424475732814564913674098469927912607842171261981680101144362377608831119922313521656599735421705635682259622544839407939829083952197287659158530344367732359718069130665451197148784001077106607056636508655156362903809145140825901012283018045770260479009223567616144296126783005411270821697186106534911634759047768564350643645578279658810830677696285498814873792951877711722909500729664702650470611627672178417306841755640269332473698573334773545529482838059639982514435332307175777254939677381991759187053021658328183213681119074463607044645923115639213849449138865985940804503346528580034686596296337807918844066360373876456894738325937812587901328913716268052529010366707640762890161819743486998401215369488340562588977650938776742622674876876657397898670096360018213855051421574294028926537470521594607520310952934648288119645661966787615922356019998789974394374943756484977834783869429794291586372928035383853494763891188353457143419555249982964920599668198424652094462168906705980754461984719833130290758237592996268092943800533583937494010494318747432792094233751116111755234562439076816024332282933453456512700686969703548988132326772302884327863564154649228987715147393095289714349180511109776305474831555818676839549599159166359674637014437533626822782999060670686107690920111531415109511362068023158599199663185961398028397123941091401959158415693767753533372491351985137334035588901019556077742399365756919473065474266873697354112774271875154244051827072305889002545445416363552427629557942504359096648853584007487769320812733520397982916401516666801047480371652365368455383616634316322685271375221469416735165449323057829330902159688090564242171810099279009059180203662647663877603817518364374776227517566326829307897766284605294288603784691446138949286139163732268888242542441284139981871561991473219143520362699026029113683774309100393550771860465877034789453849800433104143120944177500774640477290636918205910437155296572787936871305483228671566857557790964050091298604185664807795562698647467397533379605678223462596228376743759272965123256426976710322908006911269524841351829675414021320864155681413187343581307179015591084865355434458146590283331655649642208674324736207234836734608789519751253513861719182760627536065949454675024251375918923116415441045553447240367499423905277734720143759714326306744348983016727231199147097153811272598762347113785183618767276973929558768166866604286373771971004202036009845891582112450330130167440509799708233050734812764967660108749580468835953448706727074643196691517205765800123906441475850449751935822586469284440041155700014909388087608806463034495520716347254906777641743269076151665569803896922224446135174734758140419812735869657130747760937572978128811438319138706801791795901685332722098324613353030316600072660734465230080735395503751557912755753412879415973414639240050050147962729612731339045025381916964422996624101932038701498580541950153189656794759886781080880791424222494719381821961316922799442886725805603848460322669381307081410855477120608374487090286141085171117931746514750304136723751535269563852783597229925461957368277261963221564136333814555900799463465975270909693406722720989597982479714845074569241763452525522843073870151748345571881478200230366868763041443912297444709020815822253213768004634770137765447985629659436347864957495752286679357195683315650431364747459159782253227013462247377222999862178690721241266814012977072010021300233548322927333123513662660864770803518107292986399797793923726535791702120651709934316699415656842136213353877014984382240646564596005444194840025208895989557589418503010519428163832684209176209260206177680591105451576588640426198985824372838236274871453633757371777256288750093723565195963946522206403709494810671951936261492637564026497175685312925736232642255527877820382034858869336374336451989923335382894224781354987408596932016026491933888922425844821059412229454951870416544519356565125302692458680396794180996887534342497065039180190317088908797223014718252864222756712573554135392195176050976371290452845879180610188634387680168813471098046708271040046795622976652212501154291666873925841578982961261584606271984777211971783982269332330764175855078357282239050011021776909184318221075007107052830530165530887982208127807618435517373324344755426523995897765106023495082656722361877875272542134673260458876255688368647398293478365456960718198318007392583815503128338947408332639718417697547501641696252327108695049825459048983663254436435628083477388749483364102792167560958596391822259481024494284736762561462015250297129392323612073635781805618625234003210914541425810243782599591375216934486167733145366439667615868716141836145409261651866143297585383110116025877258120614265707928214789280753852781226381399566685573638534497881541734778301792218872557070021852254974257582200674054201277562984611080070107014781692740140802742987045246818719864460587228313553928971310505078395434837623391557806393767628747506423091011601132847345966125747044293955839594594216272758095302570663627797578931718501778607237544332388662037277190475527786064608437674153228289199272829952741594343303691141847064305208210893941479526151694915597157258373567527683096969426302680651558595534828652504199051893033703439808382397067150430879319947789387612958882130210870945914663945737625839352239307086649357552435404754371698081490702080214007681042850072204384451572866164418401240112290730837210994906193463693213105821931143394490642550396318432100285327404342936670978038987511070163971160569549406369486832515226757559990795364095430438031080285436688690446177352770759166281934711210529516953668738952622773997431063853935245839745581410250606704063356482603689685030640191214944556302107912846131490239508113848822228763513509910036085483643876328895951048277596690967744673269041485392425980170146674635801821941554338929510244405630149098730102097151209955448270216034589557500083994144645334564344459234844006679388218448523206626133029041965082875564078015789326941428013113323026579347823013312021072946586506034388049301929276612244608805664960145917853224508955682787503506039429643137743709679793786999086303564186385416968158493642687456993257052150008958914085843998621662148559806263348314814465344799817955485258521916052302553419348692818190359808996990284233770978996826852582446409732679663917601302441458645424838679014682439879565255883833396066807025973320096338254810192088586266228926254881128816980520620306159461496373693590808440139331196886692391560260517302389647608227317579558691446493327988242936197587762691203980996203636378419818635465026127397311858790955177478796974431367580815376012095083625757842370656374397665361673028185380125951105825920020741053157892510009049168606005117437733856016978539464152313270037161902266700592569035189161982141637142890332577619652501743591764974786567379032732516102408670603830773256844999787081534691988957427494620697858210440075346092900132000296045332064602621388456986788911023764261743444467951596918733171883343032856347187660973394195961152235579249142795463084087224298325403107865957952324279223837200016476088036947266360674581887822838840709441975379053125703684206422950142351587847912035411593132549588099773367451624663598346685577226782659032379740383449655810033059549724944873234475112180543686812421321397969871581655292209849753297454771088222504589508449618099382290469356061472268457604611702067879851219787516697162140574935725782394094138067902628773738061094170868905514933493366091098270680513158360582814833153405660099149506636043039208359500899609489935386706717663916006832238304491675546902095473418450886792648445525114295482153790269735682945101324274272367759824069931538359042953268948150818957328498365107614697553007802285468356274293831280608831975448193546863695528231290772451016696143315434230185471336959258208944790528654355635342488555763473700848598863750614261910349342519625452642768348177170554013408774635957803080820075578639487887731563936858197024970466943783485576995347052609254773575221515946678705543806417619148030603728153294314126490245433633206605957740783404075163886770421907604890397075879696970373126018281496401117940968793488628961372148164211651858367463514995122245721170849615104523367071322898082198994903026981286227674440470166268603427351351758116982006008861524488373865949167247274000924790075726883660686724987421162736314493198380062927823478273326031361581383756419799031041561860098158601676032951505705544974279681289225504862508612588753221259567472477564691762025079863445769142647009816102307069438111436604719829829780535094257260707732067400246054443246629244355846182584118542255524571469225588330058244935461926682670357487965032204790678641602188971876589535660865688794516175227207209513217640432388729013572597551766133733656119455530713350609944404817373519198289410836988834886860134830683744147540548036911860604909772611233337319169448630709029299574565636596287305699449519343046547188259762807301405110848654774853755304048340442367306485326420206908628775096357363978297992067082360873863722024281997590603140233558079168932899984357433036307767802045177197330166613095084047455710084779378301493293549802366244772054891213745342149711167830625546381467702659273519511463135134375651523735344104973154016762602614230387961770150715348010179048481346020750171487903667982870411628539708031261588512409736100738370505095971408191659265902506214527615103906936390389707276424005050138167959062829284469145964084629441602370965269697266999587236448315177504868901248022943362117406770823678337827476800510501431238243299266248436175254020335253258342964966616388909739403162508308497914238175789510158249955458402034638221190466687858674396913279837064505585869167151286222449362586858313900071488367153764850821169905509444450054487997070693771819296440686733680719773003109531835086508203256821292499104779349812178666965854206517621903795579829204879772719681670590600029616771118392722554039224022312706547396038305033428554944417056035283051854060503000654484071069616911127269433781544812167719075064117411657569801387561637415952301919106255279665615592837658366760210585105914218932373272644788424601278766730894958362890404447339314009018116490848554290107889750051153182074073312445753787962659953481640042775084663909278877125881851718709333565449559937369038283340567214273709914968703069914188135174592643219640527936126446199506120554801976456705453992785057749585626139863070356596380097032470604154851467662216132496950407000192019563098308350981293322145754408664667209059921023361555068009112241780702808080681944640915209968759145011025848176028679731554010036450348647026949259110070798094380186308285633770555191310534728489014009327506577237258536788362462596912070709892765062607326096946485334592732370711079739921822690522836507381187095770836732075771367343083632165697685210868952429160334614423003660390347833873733282032542847173927646825921570955030857605477997389270317098982675222108660376920646945100716288613337884500107507210491980764674647208405869038109312632096691951686979355894359660221777466193941831573691735962790032635767021198708613004470884604492298635607436855090683424617399929127839416041964340758674835796220100282561501454057244467232812053862926766216878148643690665564847758658788456106812530757658757689989965451355919402315238395648929151979447987028045402798308679694799568183861128742716801643063404313088998223450612029417335580492377190746326427595658122902119485891550001332779184019189828266553741579630290978061164419147847769104434983280851802286649932006418680104092596234854480903614910219033732444186603948401498200100705641013830095659164049703706261438950397334110041695502939193348080644113290873464275226547564071728893134033069322465642306967758927379412990958200022953384532677825623683643825755673286997839687423200472555953358823765122988112272375795676989108919482536235543100833866465570889892656029510614470373515983847299277551581118575933177452087536039256246906512018469181727378234482400213059411639311938640463465831449082556995580236574419369261382143724036103360624069076563571459040363955918732974781602361686819518191655651008179451983702973705534769186129591708169326513728594978810981941953539032288471127544165117829339350979396056191793331962311168499266481575231418159704854635447063854082375300765442080284484499097091347789363570970023557916779586434195137259611678994748919003851388418070395226843910802808792610883196280832340889806250356244184075417527747560294213287626447897548220732769924697449709159516238345584132148448533462050708598883642091494407916960096849482109486243569233902253201999169650425760709468518731098956637364193045091201661978651119907036938468332970132486842366593488772003681272747473501913386599335402365393089713874916356182490106614327611723832137979910420867510980228373154932951331786178557937426409445104429603983922243149711127797483405989246756275195305217755309954795135127800254147319861660619239224003452412349475429567456074319551456275429906859143680012950021594651077482184485473913976072652936056839546623827993035682341806705896402637651385910668883101738147202927755285331229818808963063080068975833673458288154422717447993827572298160695664531929725009731719424523864006176623099435835595831217809037245184737506679142290950171964930397120055567284038930693169022039580068323493137173693338458962863151511388243137266917155139555049494381971625024511148224695275535133254935089135579272928428002685518623018641938162856539260603740229146012421789719757346391274308981167937714619641294138658768854905821402924412461933094268873923620057723318639965492459225066779553470811970746190776750722621745076471415431487686064688696619359130487759467331063344721585464609878214926040548126039067937259487805107352193162358666138275041127046447880658282785245971499746693082592226891317568701207094489339659249425559264006779571875541752419880095825846305229487659006531246624837544617882813516236809097812813620554770667546139803262246928407250900780258016211835012493812277987856881957497646052502486274956968455411413969964378768811339688240538643225892659928629476035702882929092792047117439128924969786102330764011112639227823748540070234190014403262635128830289667720194238770938118703431575392145322655595692594249849846745342888806816760340477586529017088416007513327396545755075596084386648901072630525937839619135176698292166347155345882632944585958319748077653687521157984587384911122798843813017941331182199872297441624058513064907732202034078851515069301503853300247469229086658450190577109816271261021973021251876673777156691178691151516525375047372539569029705453750603261842785160194722935509115746860600388207958442446695822079789267498980873514322323919866742238807398595973645240871299531061845124212541297774872731071982307351157251615127874400086477795111245628273272579583182383994475869691112846693368782465184966468470718373509345937127350692501568232483169392225407602009363848999172982833819468049288720263208301179528123372505925348180826766586233592585572414248799065051995084911690961630379039599893234945607912614457872440099126892765819852743813525413617039017079135205808399249877174240453257237686647764966622451122041858327998525453834199210659618994937355656753794934858788914646083795923104828923618701279652393303802023323611283080675312877516678119957882564049180789895593372869243101318642229314103679448200781185524278672499892121407667004278493731368826732276309245837637523682629730773380615618027476604457399978338326822968087939678826087731844455651833124800868269185110418911771895999352420849200516690055196877945584614732137136537330488466051697991944677204518776012976249441483038973318308926821336009692797086973191924930883726761882371811095982057139552620226461876979556901954984239663644016916321496452554319227243252425539911606517328490717548601526661142934917482621625127370446902844774352077662507667262202719295210962088344401226027938388062025138540752097060268295433725336327296219866875774441686479784400996613899519288899723537512498154061523923096268647488918544616278087531445355220884495863731545341210650350617907204417933574834482563516527370902044710399289659517136056555769352883655042703118573184598067110894055385907334813714483956940085984707547246008042486287702836421700774236358724570468411264135725913790088672903734944448707949056077900137256065892915084020243089487719771783303235129177317167526166803664659191370015723426166434422759280422750327673610784268614181235288244566448125604826730520393294336228508971249377426447937196981010084000119421521979663248498553437675946607050215966282428197367675607817494998925351466205081799187815100280528185504898681425696175596053990523940386900371075679415882720707287098940766594493623990785587215560355109476689579250564241921431264169903022726857702956780293841305207793930540383357706254798145790180013063783388335326293512270538484139999541407211745019661371807762440458281921592778261838852900572463511477104408316036931748112973680775919030331541029373191701558034004750255738255220196200189344672189322953840576146517490493206604456737245078911088224111821310694800490764326670225755817865034400679027641534076481137365277908566585210513819386693242079869105366233893520906348261808353148176769683676533788188480701338366493824166046467050075405698923321339421530771685683124370487116349178704016965877185095454603555028162444586216669456946740455665855706477734262391024245159601854778927217745932707717183160654513366873399734895070199012490380617345779269594816339253027521070774928326369903499401619640660951436920676947223467878514775018194129713381642192012833757695995670964314009424605054150496377000596340818580398923136443605528040660144063657445190376711304638039970336882720300502868859346565375666785581654305808689194487560708623419721863137096062701103424232752399880388169522293250131982845392261566802662707978345286447411814326241448187641892902945774065036596805834673615496976001284175458626652440678779605165139994468237076241760298688666207056500004953774564544849792707473883880073623827924928010225933922436824809924680250974137834663652593030330239484895042153056269995473760139108737056528969170291599107857941353884217865035456868065666729453243759154974735677451703299188575940938016751987696508308185077254426801161051596831896835018282047129251057254890301408623693063801568234011189376558363002240321108368148148257793730870144015002248790137685448391299765522062876855000685047104665106327684779725786776001359306200802137826306167033134995696250245743670959122694270111133197284703031423591411539157790469870277342378159502755018512974166596866117430350641143472529163102636628330534726622932604795267363211938732283835046914216617712198912278708318572237444203420760771630536273277760569400319773682466498796606860322373800920587667931610863365022871724940993546867699152252247660190860190020574279498484960310154359600960449791773275717768956716086221216902982804034648592031961138116176689077140727499961671278816982228804088812264101779595571751775603112526951724661449857740277824303289891382919200930397237376548248514793178906118637482764915158265255725351180673848097187244461187304776912489732754185418667557677061169293964404094312029001169846002720002986456936529058809463167386405760105614170076763272658098748738717668523320078104055912466305814531157345087826611015147546117551235849569932260877921992622540284519603779110080526696704771933453829761949439227126788421386265395850272026641100950513192793605929733717641210457244648171910578094331456960834610553746609622049804305360503846764719539565316479419243300678548058096542131165826682868073294419745281475242816809122284317540628974894850044441835497997250148505415210436682044890404485352672441672508530798988212850627911688470921151599370903240617709452138994817204272972933135898721807116792058290862281398640976810566299727816524854806704412647473462359977725300239424089428834949890995064704444025834015858104640795903173768157402941973617366360581941568423084256219231190957087684521035905330522429784006899133816981882276792028757263570380737241557991971579015311446400879645150895273274289766980207866831180426789945622841030581808856993551492359524998751349507310362987303540238359477432175651762089510629098699862467723165248942389808101334461981799721818144624866834655791377296312000422251294023551779973736615124784449328916667465663125603307635671659705319936246829120796251398931160753883135681078475490825257811614902870496800408089987363065214616138811588867151265507263363377449089950120069700812163572792014180029804977561409171508983726410102165930759073850921080491359189082873143101834543992844373615309717217142117505888942765293167417411007655699881976692116867268936834612509033130454726250355246250455037233710984025255519355434389654264789378026148159068142564638148080639657484687471701123526070674603317258498385925959313616274116602410199825049594979151266754173799519642908173487431602153857135972688565452720514324822928167548366865695603786029612199675994322869149300131626252302451721544497470658374447539522173564474644141758781496724231876355058452423105405240998012936260607191933166161748169315413037171924875129102276922544495854765074881219840020603231116108053316710085760899066015730346235932556253334352546271030485132353156469317732404418200074308859045827617138157687404225816371452600182812581388844130746977823727626774934619154100550755598875323953320691206201091376392179871992107885704397244200538092906372186641917040425265828605409579148405944058778559069447668340536769452458626263243185267726193177630059526082610781077236200683366187559887318175943313840400731268293437393162806989780279785128229476782079482076704564392851785769956290449655239935781819366865073547910687895881900842962195680438190888778874242657028788674512472137647661226851529646946680786748486456496427413260375682912862996297159117726279426803747765815553395328153653876722313986201488758990252499593295063964691839388607222171846634145460564068134792740991045549852559706878444649327655386727943023059639357558077410756379667591579054470491460023675667669373904387684182755458207254272843210131132113592972285400272176403996495489223015524350532881194081139381293578532391133893765397227612054575949925868821102072143997666396927633518482602775745758879665564060396864294071741854801168955278183593001782496952739417790352982514021516547142041481304267170728893604686191359427675536757178469114724442907355818652498373133216829994470871229388549784989053933073338660747946434925959471679125118963198233049439124941896070409036682541532474320350596405054454358342853735689829948872574698477933062318265287017778792136130046346739376678838675126119830174571869974805734419501925820900053429272212299986617218289600310880871376703760743820916730697911228453983356738512972304931892966059072607687323535764938793334769123458872244835167441277741222565399679367854400976823628577675877600161817691564466894919175869027066695867927953860291776569719660452324987895124786297870852546508150786314853456034774304813655767720431369719163878394213834255297110297057318561546585640074084489410107568157012581146506862879402513341735320481043782762976513899841043346756998780503673751131807330007418497445393962500608150604155231668580135440505639797228419482799555710187911400486884212848969706431664332281578119708568685346407326447650252032929035329080446126148646150663933943529281571273385159196728639797284402818142772911311590458043337994195607856860441254959778660854984872298489117205583320580641390814011645741264838688633706989551820201881208641506930030609514645824429887488257724348342294926433943948762012408479072106285938573883823216384955265115902263032248525546732791143649745449304112303488601533491248540817345646321591535060261835266060231277244219490241734706935975081617871260117614487131508060658342922105101683401015764451799684901782505785737891124529833301980628347995370513920281029978385174549203591141555579474305315084053211182798603491624558903886988482881278117118954259204750249205863147572987719464662194140379178078743686242120957479816549363880512215888049763731151479876148599638639886566389954854067761108025885336833455198582086015084189514990223469018752096897626589206055039843271830788137999871855057584865886384494066690868566204877363521601785109157043966290214032147659280711670583605040836544822404962908458470340863401024003623638171652576860597832097718053796630769060630940036941284235299222395533856085027099044200301086814752479093906109876043741718240359775774635486717277653365325605483676162450135986284521398803335156170912798295563276571866925914462305266590781343487878331430490260744606787330849483857172440055420633796232913970048260885739782206040181527026020872871660540589128839968280350500112283454226874570752106665938120834577533877667167505985051665487274499950901602132925153765558485101190059334674775736877660480146405913892945218321000393248280943959934760205478538857977549923982721266348749566054173813398391904828416822947352248089525226766636391145274698744158884736907200518889070997359854811716475757149561632821127646558952339937250523935081206656383147543958119203904693782079383745158830108796056480030809592813267892943455412726942716775194263247616699692121236206593719344300130033577342622582684644523991432878719134528641192046082350977237405059204828560983187973315930299505973378309213590836040841321925626817587223877639745443304463350202127945471676699307252091063625035955061779418819224906419239982944717754232067716233044226544350318306045794732292793359619368006148508933577448452971844628187598300306921810062415573280314295734598508774922824137287874098757458422889079497980301200647277976353218541405247760776003938637452341800403115929043043524503698480977750867966076539594635860928237176604284722255440507030885925117055565467193642524112611696150692301119426434799048622501173391563193877427388402638224199166997745454195264146409804765895648944122770701512167122519757487980381539205014709097212427807641300998427203275721861882700450295962978515100526154457905315152761000808605279555294695465162722595309514800212353466483735330016813000638958692004178513320965939933013842564762599203590930087860505411543403116150760053802853147343432281384595891423004842991104548955755735183449354563665257553017510321225514298099448418218631173433536785265164759218327944910734397706279825607156128923222714160360599253370616804638429498780289477703140937041807730352729870918290425597438978153200127695016358417481784096856126107338520113986245439729653368847930613511594291118779338528516281779068590256208823134412217246128861813603514068071968172101217952416968817331594458592385978195692160202550900868461985561906261940593521012156858091295534443189906486084426152681761920509224147652690598769628374101426289428191049817336722948536085691033514837751424842252552888271973332635008433637062443595034513017687239359667430097922162208904923080992728961634753234861191500900160365639727868707926951849048693719554419926222106427520993703064645501067439303806295318774327316067898265290777488577676121946878833121887920109908482622264731611898391236450744499365816572695384562312424646003154969196476678604377801577592470135643350619734185677353961142739202961510951882521388937898264092135602693904284348099464839970082059690718108738744116603463906592310504910405254237528287710368122141568551515668243215667539978917422505546865534374182778847091662703797704430812646982586310635577214346282567050664298669903640685701487454714418507765301302720339499429011484560262347207276706387356650922095145243937520826027161108676212205727141445547451869813174753311087311787504489956175065986046515058393932649129575928155345604230756766170347978841707286314789035674265859728625426839105114319861465428920999678211082844168787556189379845784474815993735726873893044166387003852177329998697013576591867645053901981008482220744756201033887901910350866926662901161388103271359500391144646553187161674236463250251834096719972547634458452879011175662923108245994021662539409699375325480483087848435473738912402592219586178728228525654099242804593895051361107840056133625809489471088872268057894871944663592096834226465608277510142918676234700633827973972682022964392533338241147833236815744040076856018304343130652373145366504683121724287476363606635273149094043846596738328934799257207127327035596365650075699651874514551981145599609719110080566184651919288033150758326965885231707332044875840960539001718031400800545114174478050893631148330104974870091161699583425954248867425476844547599014858526013866325714461022332581748830082165691733653686054653096416786000702036446612332140920402768258070794652988231596898461115924973961226157536268064681435020373930931211539867851281495869368789980984738766763535900405736735568044589341637282785442402842581214045369975364692326804495476947815690487146541041924372914262732258647309445356984677729519871749946642686788628576635735630085428594443084522674708054239987086695750564215094830689928713149428366272658032093887272085107210656127321511668641866318606457957744526435658803992209800200681520831679525631493472451252387130001789564714242866776075992710411210811139813748328566320359179198076032515035779197132083266869103853795539392943468452630538522377450806373500609568104659362137531184828457384946713926542772139026898088005795104914571075674676397516617685098829586972394909743419537837748802792847831455544043865269262750565058690080020222947645145859327909866563910078066091689334948445765149275669917355891471626104382608927210822357157717999848309032025584635976631230073005573626643898893824107048440056634293604722246951644045266533401414016533423097155520157662178486905493155483452948353278732912394128031696489906785084651548349846097237630208709870210198855649610204651777162152493707257280053489667391847984315780061442393666956145678953099489561373998436089286698762414686753616159118584350733391462618879121373286106298671733494512223051684602478100690906019177083156642311249582691589270988548062500851621481075592631901171034950450269868083601556032410444646940226782190799318691278717909968101774018049674919281881893260799453917752143017156420329868924745785010462968544234508770652655761845554786832638665771494791436493051997415826816756309667990610806600715038050803493765497968053166635985648699977027895363694077813389817733425875056065378130305059515945151098869429579721347447120106318097158789027130908456335794686859100203967524877356466329434508126200350502633211105556967876703039812797746684300303507336745482457570460484803432551753148129349378341281315076457506555252874316207441348986410804564432895842868732804937034980495446249987433443554799574836632705767215318881440338064927827720336116646459725639103942303319819024341421748067870706028553208418184160823540387125366836179130034125609957631198870998187032767971499917033569965695533085381712982329483512230057252969720166337581969667522691231661405279700377266398519276230268846039527895142141913417302061486804691916425164077613252699987819224402882590887372492332973717822270667016053952560090392216161600793179777124742697724526590348310215010461736496287354642622218428751040074635163953967991374172038511772643752496657672824780900552352925306102547294855947730102157909970029728137715034890062891152502494080347243922444251390193830692808045235763559444037297201294551936271097887047869107217050628228981482984274051903804033507291776348525919902605560641925268663526503435963862530073839909652674219635265053544001646454582835759432130781617055739313517770040592471089416649627513722562674123230571626709632242188898730386354982905568513790344581865531867069886022934160245358996223021346801302963723802730477139498418881681853425638498429710438233765671196588694133221257039169356712260853016170199319693863655649646794443370093850168634928993622130101456256366089868187955550679210600262465051218826071401325983947807406242394315043438593519843847409927310325621630598677485845550675453593931513243554317984977230129642407590452513400620139269293136193917860705176689337156071314779095924214026747180131383352418627891557876477263440588499591457426219199105453737753841456835379779953863302229123425777778650198127266009159446161011260156326425148006061839037804285263729636456976649023945810853049001694115661192112887286067471607441968352948448473240430030899449046495387981552800048724099282035448863932362123803512634858282506398284717121376232010394991782554888091920194849054278477797545399940753165492247168181436969915215710604033903983009638936623133663360975530241891329509434886588480389744416701676671278258186843244569784203372244233042968258465954532690193830847487630134588057265466126858389134376781960332222200063868124544316387136503892023066490568596617026137740536483470913512919650719641485636324822179014446577814442312519604633076154950710181689395149197511010264991681355767932732785483824702073562873885930097927536702349152536905814394274171350303308262342104470286235429018330690607559232801486839890659408823740255543958733292481463596468215180499223957461492177308989031685087265310600034008892940871995416047325462431081924127247379660751680960896169366606653421748457433846731658116518982631757698001647483502632747414270794188394503889893265745718056720067020910754409034824160729562637145284855778175219585758031428208632493583286202637800034963783300426763025077219361772751704506877411260298679611015202916448569010425831503956161331618021205141911351846142382637792634837784982743915418285183859455361036926587748318951151032663420860039049426725108515193658624222773894786275632710375091314488370994162105643035908924014720739060282133842553867319432849501334365469496908054677132271973602153660370377603155717921481280695336458099587701174463477034911828257062186887196270897621145859530483695961463900529114001419464736494668619486721402931152083906790912995946963422096819306678979798916196979391888809982406859511428329496939243547613402750490061647837827124089571061844826762101773807349472650525888665137933210435401875007654844232520805747182061781818390988281869538433328554226596395166826942109528884365802602002772876519647817115648608207118252577340436672829286649995566690429374049518651404508191621467906050044920530155387900389046856532318000412599535580534752795996056437960804261414446747164064816298641587848647616540960814559224997492906348067782247963631474203836587486192887360222323326882665943051290264535941523955190405242151628282749589731908322357183808771473223055764135278034032224623270361073799337473187685620154416505634280477315293727418220862939489993235044335777392899377449880869630817196141206200609751147076562751818202398993264517435989884157468042819914938847720505463796052429925869004574573956595821222947219821391045078453879004255763922629166695680869374555659656854949046935295818158321584900914842010168008279749720576271736113811081294015198439196602593420990155056937110789137358432688589070711236981168890445442821189516754975391140219971782783892591859147446350049878177020008226626754772125807395046222083647423303973192241296620242909758407575421454308714418382732885630184532032992155723924215838596625852576040272317271390170229182730730027021298598423495003460358790582483985217855983375405311382557681601656295916327643237190436314995062635129910207206451549832563245527945975976092952879778711304100131258237108957483214294156202951577628033574188820030693854505104369391570957178538143091482201959449672109813836228010778516117986247211710990826719812799634923984654941385807596254859841481112711919820828580938966811478522006911573152593614469155735983460542502580781576792382610889370893108820051973312263697174558124370517460255395467102387187524276375388067728140454418239890203910223506223747724383163472906952526467469062479318452036908978560628124147308529817491557714527662819197549441987526053659097862041177326782694492311172267563206338665208030877023078038290135104361859135584468478306783993427652642538008636766259292881210695347325458832335820277208119661598976597262581198761412441535404178263136676912137068737806348717589354663415491580842367331797120137549497406104046670756084562430148679982386816205966179131953284154002780953280104264405221305767633896174069937546161646468016006076069596247340842799856829497969257286154325887807267437251862705078839854032512566505672126937901806492887329991926592401263500118020603497981921457946457328164882398707818314546754591130224019260760476557660161671755482302403071303702566522979228365224090244991101595040184659543158169013038738982997646493881720432610927314771029804345645970711624412588316440685345430502869411882516640342552244640022998934739957672335429068580963794899706397813810934571130657593150731633470391965026742916385970333887062531121572808970786661339410930244508219597656276517231072813221781401502919009957808990609544925456507415327456449087067226323571662248310183745214552592651480745963487601433335943965437039898079232678828693843155386449538757705986533205300857935284237440590759760429999485723953241701786499881162277219175009382664636858454837766251521249322058248205499554035987765539773413201405948084966242012049824416709397643183232712782029882888913150150547156057303370483358025872658875832993289082634340664588023134566877089670698721297333169480732683736338612812096327739298849430934389640451773953977611615059418662553229209211528252239682061372805608721557294656393587463726614704910066104863856260496786803434457910116420262434360767960802325608714659349058416683036105106963843017363688788585376239517962103354138733262338231020734963677640824764116263176746108541350386102953106845888043734518616476378694370944441051699178836176637328903439017989705029856409034667005630177345059283972661747844116932898333826471304660590748131579789155569250550243241568303398835683042879730696229011818033040958700221723161465208218651580969248304432660133351054831732062196405245112790586502506589403822469040092771510370195215005959237045768997406663892834027441155474013215859586441037755825642775518748840675112845221136732710187116397469639937081345641793055625629781996079413255309655672406321139620776947602633676783783164650786816911412699174770301774338695225105049025954819149446587122324206479261364577331688080602318227922572470565070922826851946922153843629855627458309504559433371194889282211585134759218129112763351502156933133633042005016749220350817418938915589961022238723612789462334282446882604477161910356502681874608725413724184757215947239563857330319352659938677347516989541922144291620594659996515840299097049666516874710778013511612248124680954300436527908607161347921133913568780838728434250914992451349459455016791552918374217517110478235051081065489263753366744224298394676017818571062107195224070639232160176563695723547002624185043394054963683742742174249438575733188701551108710874665805328100699414400766158792024362920234833029101419744123648869905874922880116293278946842947916831611211799095516368199203944806155164240708997025460949593079515957177857221840507271570656783435805565093813153410761243045124921897301724061668437741274467951223699443229506693681869726063817455861801515378506910096857893962745343744127092229037617181647468557651449793649310854525888441843811302964818485817193455412777256617428809770243360778327428353041593682011345193098264815489927851632470243324233169810878595685380790640580768879691493524959287602240635813949697628323147948462751758717154521749393843795505489020645205072292061066714241811191929722600194779576779443175619411989970502181622486600096081122566430667625178261062330756397344741064126022568998960862805309799522352606576176328304405349671945832885094654726696034091155076029542841537039183231847161951268019580496059667955950887505963598713706244527121594798389354969568314639645179120655416183120540822263350444994612558522048654586591378788595289435520848849114732496419032729419598950641409472303907744279697499011358789377398629200138590618498322552964481302049631361403277573422440778041673127036486891466856338579813618783522202832875881264229572533278409385798062088104960120140440625698493992632689173253822968650590075364373427451532558403264166688947993581013309052786798260384712392647280634596894269259389798542100918771941485276410480375359208589096555714937919617463054548335391332917107193231962484331668109087840896010031983815494058545926524899946691822771556037596648191095343640712335657951722213564091095566695593646835536136001764537954229624707473590196369083288443473565649814789179481060529249093432039405272310156187754223305005152797943274001450753557870173502216390221399073343326763437856715998407351195988724825375023067400347596392616481394938621795428379045179297917469258090133207701827334260817286218090572754358571366754461265739993916070243031526377748147125306193175662227320263918089813405155785378771218997373153545402855494660907280372761266538620544549820551311286870377104329611296829166554927541871138115791956042465415921162200534125464330592658070540540095049237938308404933928869388825784633463902457531456470926588711456316273854598765498605680617334440803696246552819527535671486635203852129143144486877791931869026780583346465478442013639748227875092331476081771344329500250390753162525156483625853462215881433618748672195701443872880046038249612857803550091239925306692774574407655642134469704241271320577979610864321112237925034014172490225225149748454349799117392305962164077676798746865188276565990628152449973351774656659856219638919536368601818353407306154174614012305854712878380716790248460191732314547107238696922697951927332726787850384002652372970217883688773359267119870101434071932126138178386275532788850563288026037585874613418958453257602571952262090506532806355817155810346260585623512068953973103326675150378227252217400869671600868784734071748851509038135600590481763369713421496905647853927920255222554158302368802557304288434112408269481207066326892828322055130522834898609465435055757010691414076581344719428943402108192775303193334933180418487298050927268240966999123811088040344681505899331852877702037856287461528455704045161005992167189705306055993935225340980350982613384962033861468587834944581610618283864537181450480210021710724455124247384937730091577416544771471111013008480288130383430620233855572632339258481138446746605523736780846362237552146560774479763054907120330289464636078982748002379040115762095382624444457722960497299968673365563434867738592125291031096393830064553028967749321324350316898658549348156002725031941933095845806566029888641361427377612887025265732645365502905482728520189078035426864894261003699405803323645255514899907401780794740802411751652739338897837476900779412284316117187758923004236394877686095429460008317417879080737462747132926049567923687733543210518668836536678235741637273233943861527015973972152510840623466519657842394968740787919240269947885839959552729618835193605768983733511539642441832802813148596232694894195184948893823427948474122506160945601731550293476254501836324888573975283322662651441730506358068764621994876228228272882940346402567103567488435881744302670870732904271840397330317656033857016286587813916126502753018142671148540162627533554930492552680981167194804976708190902399089272762896818840366707845979415689227058695926011320068624441581362149569381284312409575761410200591029665237798311853435580039342012325401040309689355928009618546232864685712227756622335951972192835922291471024376931425287411865994008221235574812715463413420261116730788014974648765413859701736430948730318767305285183972736642519068911926754166022644097102067637812083445036288766422048341835613942533848631894315753381210660834731706755294584143474111551917783808782689100726054209470260166376645184796924597597884338731222158369619021766593773190362523685495228581663034297449218991282297205742744314825316893688948313816369086988207198913591776416509744396607984052588548793454361814822393900951300658384763546247956720610592763038658356143845553854839307081871579264286495848103609336143490035981619652576747002126366821631825588464788047746989186348420120625832329128514534591045511838584136031823116911210961603526950931786902214117298191682045068987833189509853867106930998848471810724889987602911034238080981367659129919127760635618658277119976756455595167390515558037125147245139684109955140414446001384188249312156418248531548643494336083750584318342385317133673023171962303653697142447053294029825361259572152703380435308226353503539087001389860204655187168313844479877835045012412728738561638933218061137662647544278930417912888680447842229431085101213641292654888350358184064475430356458778590324899393735217109675025211488226033129807278670386225814573600191096546016400217235759380609740990174860960183021762133472787777971357501659827280044289127421438080868375299932931271222788828671180779370252456318701212596944423465778942428213664651559874285112662669833378923106624096987179598812298872708037704211361583184491020097668285291856623555125351319838109609299312796112369557149901748573687467880155749298045534966819636063710294491768010082578371470403310663976847926880546502722160978849063422012593925106943693764417827203865654796416043313050564516274791519106093541744871998689881413490916543162542923918645224007490076000659424725135033338346284522844448684925878328799037768795354566500427289557807677065902101465747957052938348471709459765839068473654204447702992655273734274747464535422274345704756561142189414598015595431402379295864453069204737723530247551967402683197164580746018927791126547060428127114872201210862420454073311318596366150997518713961639801926398433065297912889781565935576936161437519299032927071627352712568006366175677274934788167917405743957849997461219899612781846619713075513062796548965445144997852031430647181718456195888031274827448315756962130548801285587318814550009720120559861715608233593802464012986750973203899727399301106701895874803687517444844506407541825757437444318743383096194777790366093925613049386704303644478528585286492558613572492233890512960738548960323851295020274004791604425210431911222594634045941751114183192602923489910753508112853139255977789262433860257756911187488360816764237914447906728460827282165473376332691272233919393414338664712671158332262826040664080146549797531953784265997026674129450539893576613033375031203977601456329039773802911239469241639182929829289036995149240954196637702695789851932825221544731257956096139778631928510597308661912897463341511360167945291658474773431090730395406637963297175497457660047544087357787288285494875442340055582722383729948064953689787660482848607037607930750954567647893845083333198557732302158514026060605542278036190297200391864171841534669037432138405518709786581426131675886000737657252811234692851773738257970762590391596355257578957790668692966584171698953694252372136633388519443780945830122903683031708830870169188844864376838486240301922418139580676067493467351142944029832083842471610287396660530000062914159555236360815116432656936314122822201934393635304733753466643392421042102032599377594241834509583606467772871780482645347823255647345736938936348570015823404234533233079079303514190205353655240322614865915791881411709793835186527813181260290395280820840817927587981862045462869363775646284207936449101313627919621862586419882727319684159451146886101495003095310600317106296157185139370159439366215703217935530170624490952843947574723895316149748573872754235377764091598983496106555921095247809865942235455823263849733694371809344721869674656851973290309816056341966282295519276255452884515030481959637224875513674663819317673467008122529918843981210513521498911836681760163062531472537814728914282570882918226744082081188064783239370423868989308003764480859625612615746428476748700915802822200961582534814166982013851453355420325442711131966305834955430307101918424833055151008824175790879801546037722430074777777374165158852444900226015314163904200891445338576784879434893788062219513338561546815783777513324738933951714478797403066914027199354813619549378977203851906921410023095958360376686789425370649426191145374772189021499153165905120232010746977453718898943772603695776260871155812814639431754661979907943448543368381907332676638902550853238323657635862761739282954352542444039705412359851871669083713356711644150262390523774757411134448763951479372520684644054692210871691824538303354375735113338918544453419102772036030504196827863436000323395081303656121513919799630748912518322098127126648293079609050630370700436663310267072608885029769590214962870665987238799859271392756466361859022608713763627381158020994742777095057398102982696948160320920831893060398799324071595280957680582404766066511029114445116949786632482752091746372063658784432307596992780910440717499209187880954163148989981166473750082848187359238878958131875128247894500509729390501391802960922422538540875913057169722667464091853925827068255117971951137548498833403765041369760686470665075995141192526003745514249315766536579649889066529149082205696197501385600591370359766913414566306942355303305828474942098624639412719081988334355946628155847313881286153150562637646949290602026027614160236100980215615714330596224074098971498713626270007007021156726479841620251304644233480736121928703034333183246100853262471037040093107096544358305495073265058544774079133727737474558865465248487596924689915667004055659934309738168816879989644996947447729427885609428979521961614234560900454374329841406867316010881944091352941853711268458853029395829679738844111339828719570050653009280384740540844821839925347975671211536324051930163843884253311424143261185718592741285868928460175502894417058027974617395177679536790731195533265426767796740851080251981746844860373465516862559367218458493091971299596933293849534029258458348530555312667284645745554038929120927411020791735075526127842665131063640539338974042493331125037332471202945436238380773560029383016874421227238990923815505326472836668220764328798434559340235920350828223722254929145242232743449603820264520346282328333547033585502286957234536851565335380417691710083781685019788333218879175093499608639926308133344347855404793597058483381327875083892753823194748572596652088467717330011708809164803298204528553046894657185184107357438249891750622594637022002346917454882235054888602528314952767291139848301525302073484980449672624336917095954512752795225687845341519850389356192828261252583707272944292867799473144664865313857968951436553727221788182209544858302989362538221645618627300731782642646390651222540087172976032367044283547994091446492685439827561437376510194451780760332303734638060204522119512145904848527520616000721691692518511331741818383857782125084820199038933214637249177892494699416676733768554756070721070522180344657786105017681938068727864342522769233110425286734952414518013188335917928840995913836295118057418337634814615757949004026889439060180290740033885516544228576395712868341808645309595191583098622818903998768963778767188963470147020507584361229793515808514986330571742713457014755039934433005665771129593526940071870655438759813165003220016182954791413343786974347511341327283096187322022294952876701063460326977563109506117150150203057454874489731021950155740648064963394787859050935363677207332924866546910025418668556890910610134759879382149950610822964067746360224259984226991847842858606525554170826852899489138173590408398891202576835820129750466630106183750984822734468715832778718394968620694877699506994864793325984490016282157039720885203484969630820904198060871258069908051489214113288116255137837053554438388573192509367570178490738244551805018857587965622588922564986992201781688424510801438061575402945399259233418306123198243198337994866459138831369763137284283015942130492083397365608726916435473936124990326308117439281671333266904072490069974775837956631763876728585189582459764511304567904269946561944057505682034806511834467824906092632604523345443827774547767358603495022167739508306674026208200148181096162237684336484696347135799600422364162448359352710609530404581688652059654288514126686323537955925873483824464580981573153549210405976300571420739873087329138247943187743408140172159753919693766609556453840960393721845790162570866347182213887468372170337537932269118195402596819562466484479308982156832579137680382928606516233365009394860583080447338334308366436226152192211718042941364141549900587941295207288448599740411061827795898408592529760859751090001180433880241193993390800984610269203640529696452538376167559391654708842762816679981060586018299567264696261956085872308489686021998904736133317749893473317448349201128836390814777524161078418035050081110064837176856007875268340712180524054122516062236967272385741790073205375939416523933527987018311481173439726787521585506558982232900388977709008612400958763958775292709233264922964497916996183495142784685254769412870691934102967512356114246446551929188426861357249325892956267602122520996246611357349244999699197599922976994494746862776929632613699848211950778301272203416213713034322971387622083165277393618462082292154079468363217078787778623213790198160177046149358123869390425757357956920077721433925599978995069163825694762934633084716218887821396780870508942090130764446671244909833404237480544930061969363956708507677767195132984921639145008252035458048436189629443183903015591482147978301489361930848298906643401554445122426656722070543487520335855305488993291516049559699747713759336189529000926228511795846045984072232322588514879938499645086466038759133886367393458179674466425211153400380053970074024338554035768028869462640468633070445703201120448808663568766078256941090531421017329934407942601298949163435889082461430766961925217341229745900881972715464491417461811702523201366391663185461237303306908808755310044491528474112592000165001785287333874357859776173490713773979909797619575891835451801419887294147577838096516545265582679708172700221014778830669677639894882358565138635271827012308952572964965867317235318041180980610444610132560089478698610700344979445407810109418706337379550418812151436882038418733667796798165455321060490201389738554770580524709855627894436770142865539798573714853913668393027103121674267580583186520890773116252332095529882466123635904215909564259114276021497005449472430866018652448331327481892885104023050908329777451934703631829981485782604115811531076325392743546578032797160993105577240874406285341672684140598992347518130222365238857162350607516378537888437012468407253868326402263652423181221354893195146696337138629738859991163065616798243078528458142256025437196501744926423419471563624722107901555735478574681433513315250575733980383774858675960450493279124752731440138315166995890787708947263734104927913544647318783824152185164309447631432941951920461202672151632182748137460028549843376185906572416836859361554501772794319176282809973491484052751047779235468045134487327621055169737074756511277855037454015467367272592278925474027176956277406719415859843870048710115391771850486372694343638830933388604814204486652823896138789897360621473605198551938969165597360638278589828993991962202419335921229684127218227887174956762452119995252510287858614321817054540977777686833359554249347393457371125026869357748233809384720150413110129307214598567927807229245184654737925198072672988659856524221851316666251039047278768014581323792751149285528623167953954914141833104604081238845649472448587479228063258203806882746852710798254744432658697920626128307090432338769526414391245083552332321045523457001906097226153212869937665791000316695828960231554209262612035240587908238869550830693740373411970226840689435473019585101657875061841205260179259352400512616616064999921102440713169637955882217189377744557116985398781385529187702361652462034860723899073810652320590372047787288082201685356715362429447835484466821765340915464110365865467888741272744070395367474337722634572994798957954472518111898081130255613474396775872674240071117130491593686180714490875053023238786369411985788021301111274372727418799447434227830358084779514330680263012577327726385636292249108618537606336860941550182658531303483724659294123664776215031647685047634103394365883703551433352582661977319136611029121719253617504517485929255024041206885519794902825698305747996092940409440602419639272536595906106944793195913494274430967590226373452603192875711783482708800629170710721763858173166445382787014518747926155228118659677160760405633300274027697063015727290140581949901489530458664671888996771013240969182469341338027339048775756956607527323661888363643816629156885506072423850030804809219389400584843630712684199123422872248120810613973900955016885069828322899532869770389555538289631211375275284920771563177545313562871952637726452328012730504498462199233130562012051479594416410924257583092335114368121249108845336234136898805384778604781500457924552451457558169430128389510733867315370467304888533822931288111350496170532259434348438456730832434169475162837248546249383795388021541000786805436027303012340643136839401812887894906021562432578219016955125974334264834642120184645333587879441159029086784313024769661301192166196196273208834029211225290162121646510368676156600390387633755018293294239178992644093849106501293811925790764805402643343084533310254148788005215668740737306604722791673472588213489928878592794098780791530005795001224074234849697933123001449442921894461603641774710179515169033645317267153645868787501089079607509314759055841436522619773902143677994190393730470236000529560202948384209642915693238721709255890957236286144911308410509681718623536868005517643454184164066131922243525380014015569083517535864741203396292363229738368149653217254032083250293467904750658830533444399642974107541652456511115925800615599312739740018990937214388084924210240795858176925376055350675257928284659492187247979235495466761122193808298285863846497446947244436009246638912490301204627362686662261451065484918314029451665045381991993278268392472091859488004025099120870068239067081391110266583057775994640739419690109270872148048667335938323536368372659170382217939975982378304606989410686659777887109946154579951203638382892619566441922698611361359257880076071764968566480311334620083677603101089143835806994803436158433169133283162183333568075553477395022511965821846023038141214183866403074924776159326983854764241238394512808026118665003402485598183588858728355305284740146062916233904819486799817039181338648240274340352276213969287092166008301315829213786374338488476923931880197684060130131944504300480619329308091184006705651207854375033622022786783916010787490746266637145225048274598854372565898125861038846316793105409311695384503786261307396347751833401585487835254589838281595468482349722261980415220171304130064173858687598406143775052634444926408452498844841692245303015354540297971085140669334419390031199776018789859809773667276194651060662075912597283628045991154499859559459712792007109106436537856548943235882816049045292152874941913487559811027227712790042478204488359427575933191253175377651526074612738719310691851914995455049142529973693639927308582242818431891654400315850453545891955163015220221259098730991687321803375433107977639638621829561860803909918727391474242334058469868999917508685429295885160768692316235940086443627707154677636297156922062748729328023910801980997070245108361125968402992367788980449696575165314290074939722345032213245988060091949497433423349357928812323600099737758786021458392932749729010787592880635793666861751989435227612691351019415655361002284928457638631740023822390992410447145992832444019490324270706858340431463791759803984705631910141190563648034601528299882638987266528238156227162078360725117502991209630798955989117510795756455990077039368353825813890793326229705456594838217090659324650150522350617553767359196762942949337749178661502734686257645623006201778464312243632304122184406434094744154345045392446481514928307216579314587849001958811513048077446566765064110371444944698456577164542546180978236317122960055562764479184563704645987049854513110302328358537916942466216474455364817041265912840590341405729761640169432320435046309543001242559615110057137858983912510349609080827585711324246406246873445077700569617431179395831620707997461084298731485164520980206093260016897055243306043885745520803621269307408700998817340051646278159834837187125765344439808558011925375913959831343823283555128945511635479740457837290498079654835374099683776628688395957641347229001590229695631294203351827222011357273614140764435350822166151072441452015827542196247912303437192882633800582206834203661301355197160306394097947334378505430152734201922106231049075335148501798945237970671731205357236621081325188319458858975809562188128287812729164016072037300315023864589961271118724471400856676097588721509426357482900337377754065076218081728569621419492886608315138079701403048447854176687043247531232203130706749228262791340476564409307614392347694061536411347716893101181264554559809115045540578884771323053550535802364132152110624385319015397487018707704825598843840422678735837496888566952161635309196526411477665329241615269242133729971373419234030707412516253336993393266252759955548487703511196896599852580711690970361892857241464693462489047430375389343107499571752351497127689895375614838292604896670440918659968765652614878373806617182280051729557850500002843728116475904101834658132300227092821857632861322539363850192404328815118016559462859771414539516132283046732491711113263551826343526032349457684474549534479733519450135870697624827121299298822064473893786508620453440107946035678633048201458334773395918318290658278466229614375043027035509784099076543514813503912456126828084549744090330766981107134618857928295384105143602214281044962477926713568878336922025769822065679588325275655521596771994674206084441159928184382682595763974163749866050844522379536569604781868642390229596200309471732738418286485665529067075288483482703232676224506941970176186829582676219305514411570120777784636403678756259859257011293293512012835367545636422637339768234980669427114430696355243844406954611498960664982533573514684446048627728139721221274104425930622966441389359008954255544670504346859335860801216003251219841975668079729003405488106103833724121495287558900678049922296187752326311129288011637671380038145214163152399711888452782811313768301302284806287450246662680477499113637764852022295802082461245988604302801716575622202226353323010454579062721430720032462596129886822618893775784911052132940185044290392135549441144898991987947295265425267700634711033083673603733389694002342309746845114838012789790424131399040539666735471787265119353249553956868362421518907703252236035986208665506927543563998079311519866381561003706748065759117745941551961765736745184080009556243930540245752591871937866447078442163440046146213233687948151802279214775979369311130152827379311412912554764903436181111808259592066351995459726643081239464057283900322888153185690894655703730219543906845602055014804835565054844302764810311238452617461555910559283643177890118130310464326534943592105658937762946916827220519835832523734997599099546576278686198426890233312396763887059009645852550800071068912499767984719164223020839426069082857790288785640005741194930694126293626193401503399282641298677016756262068869664320551420168937308352385796100074464898955658985826236271150851806164083082922876019912856847041226536032235745724914934009846570059812979062667644878947707485787376764524475652242375097214311940900197774835387113531942096543402468541381833178741035610076512032971006036845181219991499045560869970262572831282166701447388074169236425625088194002272031667491040482809899603887784391451873158997362897485902002023616353734821911625324842528421586341875909056776041288437531958411644354738433681138982045246673558129050555446146007651088049543875026636250384342513276695267960464171529006590347464197030352594514063294908309548135292871600781591507314955649959218060633365350047172616289371465270311007495148661529635615982837037638009990284414984935300837148251201884774511870586058880408308500831138763549499208274064806316981468294060139946576600334406069426428631261706015063630619011264667726664051038548270287850797382560757513170787945221332640200314634179718962819607328248261172073704693218729803432353842332298401147420515725182310610369552779383136132539524865460429907685847577845411838104170442716007148052727003094430042797970102127204539163765448385299651689577626217696378699433146938908062505785839339666371131375721595692382537618137696471954565543910853448649493499543348721187601598182893200523633857734805392460140450903153720930571193539297885651769156123961459842125234343141368619884648993249660808297731033141448389997463860164626723137914641122075579811654447020889913141948391166233551950449459263296972145599298806908659795985886533464929181286517649065949428460307910292884931153561448625123657096319467642710488411268135129797018172160698338587320168442341783004173121333657150868616549691093055061326950404437177989326294938929701107736676724346021449705137218056020848143596675096578335706271863388623216212596998053930799581039853417246996699698558941249491707387584449327874721383723998605753179961577521997024173814034344212746169934326238367514291039896591214176334396983333722938075907152688864911529192339933122652662466203261747890775599444631822585682199403743328692044088547592538222036508752471696835875709961624562212183580836543883941819478141410961298403945396831725727882252131076457877574723929213946000369865831949307657997475600671801685969836525918103457801980833252117877717183775124223384702486598842544718655699047400155670430156989616122154931607000731253366156381491992292886855539050836174771208601540454594353025905240961213890981018637517846049795219452522591585119043158916788269265803241221454859104847435136110096151967887062505841566469173250377104991681367608352276597587125504955110188241524030493422880193779129101652140658254816376099610292481346397407561330643539741524274293310533853862355148497574445308502406202739349066625279854088368498810420811367713751795986570001814991317883316450753485262054342558044623277264288300261330835007779152574098413044330810980890983798302243785199893680916180834896849658425572187945413955165981229585533975229810694503515255341606140125960432227210144829734573360217918579227361276070579747374621653141964268386578759720162835907536420351974292930730366709678593800603276359823467111767020886351077964438318074200545522776543489414644783169372359534618468080998256142461039148216086259013376321238018225000239384585580106599623731933688408872014731430909852381906867491569666045019422742243480496003040569658063199301401268831923873010240402090158057818963801012532760607713019318057356689060751230714091497931718648774084122659791382639395083317089567209326653948760158832959602853285144453332368574990138326957599728223244240104389129804399880795494807676442414472928662835076210551554255156707221229987684745170274617440675724368404123635838795000916434290742825704942624753227382192170126873757439063004075931103486889164933174703762239910578041501660682823921186091328252296049607594362924943150254301783549721500685412970718257418059735062973060321153446314044898046359421764426665210666677403087405757977330319545130485519684709409124004038440316217088219339503828585177393234832306181316474736769468820259863435299042099606330587297609900459132661115831972108662474205604752834549603719001069061582691780313129903978180706558304381646428689750519707633439817587314090236123226887660795490063051163163610607862800779283278380218426046086856679376441790714509495248729464006918005856033909374435703444967612150468716278658607827789912105366191467654976580851459160382466509663328209547869945003868005690228158403936963267459289164786944242433164958880476778116194864307440148319698464058494936845068254051231437746735761242765908488196577531447442184756785491213102182017428906030901066210235746279880480725629879405510616931322171696311501201599018345021272335064675843207338779811111014182960756177624089991378529562229791318264802262795950482060123477318172139186023764953960534738204395034795521020413812887072638307885687552482056636676127967575208529255110672881470694383806248935178745877323375597272827490162856472991127480648715266555149294435734603799580630084301890638875215690697404056290140021720170043306461807853584556189679302658536427204203933254676214893298011446978526683926926729556051043633692227020777521983510963472443811018596079782350953645732624051779493445871878465146365711203448299650800096649767468026857499872396364235043971408843694160500347384735682687462578941286090696798516955869526351515967610402012444955373258061436644374060622276873334817640631785817279630637403918831965969554536697668979570851874310141739599196411453038083502023527320591958965434731437972036532294054065708289355972383400103476923973009391368723289809617896044002302794026688689223740539817732550053527069722446319535099391675194008431757172358115716140922606461475225010205184281616434661180006159279917917167743680457773446831777455015680984650087451549470173341376660178172222205390946034172855622412963724142184784381212367246525503704952663176069590890844628591841759988306427451284844898879405912239426641488279542198538510031378801725135439301052872092857466949606238847422387621713145602068211139928060821855180060744851793463932046405113344956214045956687911794622073978389083301303274475076819463892882303864644247208557129469439698426016172317940252010611119628370215786090040220656592743833650882389388968092384919130480853093598728742120404086857160136540303965929601175412061357760733417697354293221421798912936473434320346230617938083125703392202174174104616816023700705116614741602013781944552198385567078775055678849722427467564685576177629863756551758652768589093468896295389511299556483885306006383624069912655620247389081829117545624060917253989538239862656021608597221750778052880830350285905746810477513387686044984299888298150548665247779012644535520556158124939622469890840387553460639431225412466594721840141835225390954523578568855937039634886717090191934528289766854483838563958740239504604290579364845373278508741857066822002502493601311764099490491917540887570899229773223554398118623761491941931503166221851185812401475302082373650463466182265020491803106447864118852314384362044730309787374809557313745374768562561666607120680367820449882283276717230523855471678077991267897664938783789042989540303038697488281571784497373701723106367741010227337029996011583208341398789474551652235726327506204888593145270954541413945488871269458796552820865204082082187206660660877074660910543403317080306610157564834137167260930186423483211488227882681033330619985223676539317408747533301092892827805656748427613683726575195919372795417309340087394097799608075774551722597834195047524874627892182423307948961283333266500934323012066122358044104831649735489458305656967346463285602021930186111186505723446536101029282203485725345129264894047426620659617851597837520466681918138022275472102884806486611461492412301736142194597854577723407332607408714927697014584197991775153671116691610903704758668704588335708124645239057361932291031510544129055514285621358955761569503378261779180088273658343960551420239599783800719788426707735745211450410181008574604610940327472329732871974774468048340459349769687838613570760114844839224328587084374738358288013165873881900555339421389991554072733773139946948897553836682613906893664316937787759959918017596474856167476918115533541685990061869347517830931221966949867786150646299447758653797091884238261094534302921930291952209269470733769315606345560210879744476822794046974678117154892661522650129968434458015012704549244036662260748099868466528932849812537099755253608620344758626659489657716728063290252574971800576768020595266702262732826786614692458787194647107338786188387875123136141546880096416613776431636097541273337608448904640958437153169870816061697527123293413896152318484354233030105752919313638911511943266592667118489599546112924662359441433823908705443088570168479359185735886429058902181303008415536081574136204599527766704990072144807898309975662498269706485677833560090301371952280674182006118889184729197727031888199745317319251147477025925052740614695930266656869818400626199292667379121834862348077521851665400024441145076665144202529759793844163363604800989920719780357447134054199784771803763886854886804150561470925515562373409327268427405392640501133282051422343653714024008851402368094124363113940886119545978169084601371082938842292858713478030478174008883627656321091177458751671188119083874525681552556150179243943082443266286652894713897042831501399465182506720721646051636251287234926405432512695119572973561661644321103836580385426657889333630557704641962605534998515243857207548846327925850832147311646984335200797878397408029037862415052823345120569353749260370074396332493289368281681256846650657898845909854440416728622762017027337350832582915622862190038989997942173890132706703796989615528499730658247155382313122764365060404716957600542359116149387442500484675939577975815889751940351882773022598784535283364974770548603721039295055391794239562617180183194495724506412973339033246273560747511871355549032030277585519088603703335668791365919645983424995649505541463359591635440629346010382774614120946885085081746605993870168762319654278131899858590874406388464468744424104356043622565492034577591504164992041706581792135862056691036266315637872989476790845889441255510096367971312234348244476700891664170120505070843019743931023577773842367675738385874131832969527064893012160751603652461957696335593575573212764579739379158982968431234252701570363172577295959326465734381472155180941489972752857021609029342298475223533348842398223483181923317705657245055178491897844449003076225018968462205097046946083559060227474780136005475947800104867844636479788362802755904017361346003546782052455555182714583885223674180313558213361448010531818094124816859337178826178575555144293724385088416088962830810610145352746105125573080095986055609314292597238474399580322303423429612387289758761310086982278524217600647418767193315641045846898732237770154318639074915746852225594262285479043837872451461181629195207006510448680505750712013047013027427299037945683078385836908099285936383778919787159523228289366581119508592622713954492171070490767657960743397518446967277553755785746830677410084062449484805767318040988530953287245381950169767299783794679929406101613177614523974772492587949596245405461408560886409732079541029158023352184842592323355112832035716224813640772913906321548746761140219298495444624357530174682545065921799037587516976483194332141326112574405031906702207768974784163605043235590915619736653696704950821725212862731674367449934086396253119783111516417137161901374158361814060461914114267272142588529240778449371081153736206979741511682563095091677529612493767272923401634758165634996194462362417062182071803614075057712055652363950779677856309845472698225547951564210154872040287607473006905456893098390054345497677309891743420212105337662500209934569449068609253084196949926665052682354522454488586420692682279407116418894762163375436825894384376485486422309245576084015743988971654513750639524962869224462252310393358321788580496560550870215404037967535076878483912211203604676380436343146712014121071038891085842078585844736402904793198925103156198328300699984534700301189373333842765427370405366234705419235653116741038671019997517856313914450516902107720980061664054398179971676867165536997661111620460015130739504883212407400299233703500605191654105394574543487982234674142626806381031227487620225174398693123022324140944879734292418479859993432684664499852414854224100915205276444680527436409145462629106669087495248734543627284101162944883635280279868975096861059504012896526654329932614897705992607713254804977558589490173849858392455076112016707563642310647227353279099001819559840615296797661667456846676756366762718372391425941121946217884846016191089794948608095174668663640946031213589732685636116594945526914923647546965647779216282990595853171116939368241053065352988822667031077529663890828063858887310138666977943440531204810376000319541493152944614197230179633716281879809181494724695524586014142402358006883718325398175914977064483351795501287015193949033420813723132187510311763931656133773987921448171100063455948739127419445873735795745764287691910913620328109200701229369890810824272062566615795097765852602504294471990824040220436159540725410910772917582299149363692095976186236091729120273830853313410170838189804033510612573140697271918885577248099716752123847680207715369832898305920615318913696652468105661550476831967195627278504062987942164365838184104739189812722527876370517075098488137668736586970127338460165716116708007938446810586486753741346194132501901689192418709591670196968787040364812882135920881749114578712542971311107678643475623814791559835353917684862790259243168246724295530697607792313939928651860135479680416395991363299243042389580001714193292822384191031818637285198123309401292237722588098176924230321586207103826841182866027875754877682531356846356755931213038442505626940911100456502205759604522039767568768534832714779932473446314874567895081738740116736404468933449216012977740215993665474994476966903345819841492423184975308336917925364643863126734099281344816357367062759367973750387757600550713611650512446088105110781608717068674984692636892637024482120982144620773132931996110463806555783762844434994036169040201757759650770462569971376901285059055778606364555412630179810446207585062262961384107166188283007322999186072937145719957781826387450000695606679931401596265799651982052433869536020224791336996051491725202626894780274980082113241977436455185849752109164352021982328135520831780800271645457474235782596118041171906645131886237696795723774676604609146466406640002967894532504057023380471284249052410687608288279334140765567203007923467073500903713667139738104306168137808974613344024949850882846791879117059367762489539513234538407246211104142140283511750185209078937942389874830126962443683173852336206239663057087648639597075957619945858996332174910494399997354283699653846719249833082330680857279465263947578305367600919648822991398472601676501570415493932347078616609072526622553275492448686042617319957751626053123743479243331326937129278419677133608237479384403202883655208487334576705420553656057479843478807805039318331111522589468610832995696680535331530317967968544884210780013840382566837051127051520665701520253437732521782434688504368112495879162805586391026991580734173971473152949960309955904309209677993712561260855812859640042418438771585082460341739301653026614229345845379969541958545028078709103017392154080898293397958780776721245484664685682031764699017980377785896198295066388442535843203513136484881207017547901716888813530758115667834497341940667612708999825443942458077381427195118800558037442631176312967893189803896762827510069408377536404965722630941491089382862260775578107908495715829927648210754037581362338377213025990870975210059169954278045181852700096899934481379093632555333909424626840630774233321000789122998815145815919377382452477962942919610816471135342733050769933944880022800538099179411662154046695609679502106673225855948198774150895025918683104416127061452988401178224750509432364061551255289112538414210798202035531828420150264607173946064330782858677739356812293819293167824979236668999704820450962780014306961228294846007603635911894765653461460241627278489064046620579625738314035599064018969615077347531069641406401611272028501294085318423429601213175687126302758300387209362178642157632632209386787330819206405188913272313369397156691216995559502791740685490415030049737344429030187436588655113579532585636530510804628813007265456125803925970998632243204028570963653206924152054154698665120790925713167393524093082531330527162864670328171685972363949101730525739488697932179614881618510562095019585683435285642447397329089019202319375537394214370099796726413966759212082617616710648969554660158747528616210392491106710993492858590180586947771418136928645579397913735648239660808960212051050638769050770430577322000133956894623381594628335164197344478199993333237225415694618782242716814216497753749425391229446146012847626913713196201007867735469585707633128590586226252681767217101189594028995168732410930608841148520636794572222651848838014675409165329529524354318182655573584420147365502220270453210349139342938590399407020434490507128498768213593000333551614816502347273845357420399991924700506491957697935684881069017886563002920838128944442342607592365168559034220609079422751159490962205460363326073420024629307976556309964300864119245683635126241181514189433221073423011083488331944759094892468865157947307186675643322305669072855082289202940643441592492882342631724979220544154912332907870601099308497783572254772377889764542100630618392771102964107406653179548498631911694607454225090988955265384856194834394587946236379683894474440095753443543575375618785988534981631282225116741871724295527574380665870844736210184185959855019453939724467883273426786913278669262818688938664583039637565979128246773807407244380436996508182426210288252709176016243521711481780671272570582729885154475999936569497839536300535359892376134452493442456861317047599116068689480399815844655935714922158231998461228023851432525860989357208064996203299146398035146904970799159916074594864145399467771196174674353488123742982747428249297861291243474863182894931692231410891654867531289947014739002193423225630331861315099738953998424318155343956208390242469141028860975781395162777065736863407732028448392618726022442980304651388709220267326252085385247446202448210438799377848792864539508478941309487961433083443718512019203023022547872904014461050126372051781224289929529307480536708373203413655801785025727833936990828747608625742279189918361276689908879569728319957299638929675794823475924614405813931183880927482411520352665898799008976756934701464800235460728404749665878469055203120913231902074717194530523653786120492873095057284420868355506935512202397795602452849643479779322514056126331560999372112466201013583242842969418850046446172624301846854898903840660082295807517642877747171497579788062831804221624278548286783617520987734131401732074325936055645434130769497368033572944809700262640340178170479790123551993215827480413258820399491260358934187294937234537426256106842447086563519435341388697221971545275755582705009061065896722106034618591188928841654400088834845701523085042905875826999157413106041960754843264510657072935276416261188822672415725031987139215092529376594662119405863303743476642029216985116601644522975642268422124230695770408475416834534270394530727158644353727007019599966133088398429523580725669978488227076633678948699940834104970358991914390996725306089504561662990967867146746652093868619623500281813860743240231429517010353350637175946764445495342049976845058818189995164141642229649968722919007719725699684275819638542667316961796002537319736634076104681522725654149651747506637651904341891929207242665877316311489685859081598336283023653608945896605110175788979061663332128378331858403410124641555954147406697362366501971890605216149707052663403408897353766649680605070617093871950454865498635552123453982094002795568291585259660793603235003436665201620303974378778387824563410950395229581850913343320016447886874199902315024018736963743881439424661922786468133656316103723996987506942172652275162443675730883889385388423871513102745441198151637496890042779911235257744274770888606340843017087570883468943728491218520528860559799897519403333324057929062734652100714367051842934190163590618692051796587339417277315771533464614397204743966979366034306947316503219167360550062511256381623395973938500474764617598536601967149363394689665888287949805967190306483933097706229101440004844738844773816416449446976797729928378488849105902484170062872224056179133852705125323411379423772896608327520928919960666045543997786851939205992398523912049424584119367125472781792401383966867077980107935227512044205770260362268552295666345781172303419434687951899423511479269009110497666026498851652756860229417103601598671284439050867036236783048586917352534508464371482474970063429547812846143042507246961735841403533935427697615923354460048014162454851333588240879684709102138442169700715390389781192471956802987332468557434199919284895345867820706670962743935719703489265045958987757892687487824272092749239028619884558765627580615709216160339318417681673461235109422165149971846604804871043629212848343010559850555796292460273637187764089608710966804559264753363999622634909611150556095874398745202333726102979620770326679454683838049901789660758701686130920442271417279968924228451229048453800140261036731403833069566819440685017899796160144002331830115719962083188329594476841082378701160765385188512429208109341816281163536506768347963019360650405958765823207281875802846907021866050010714667631062139975775396396059052515979054357904550012592981517422542897267968894672545134434064178307767872179000818639974932642572904841601225437399436211512450129913824877315129705738116967174268335488134439724844129727852120425318231165067848230996300267664868264524068872255980714205074959152406809760880325334811702328712838109567276341691692018458694162753292066546362129688806479810350354166916494768986180597206655959469822111661282383095645677492048759182722456877459699809499392703092149000353050933659745660114366546293276849709343373766015104692993659851058891363522855889066132916471126456239680170159058384914690340210655389540907441832806710763089183845848796044466377924428648137050220284228619029973269671688984451016952486027074402503789149867815531277999069736131870364891451614862109879722938839493064375714317788319682203723861494437356282051953492682383087693650802054823401039792797945273189050979995887128596153922619986936864830149959449932748267507724210695237588168860946079821651502708108249644671629386278689488359063844732577292983052513524796153121213216640921060157721091133656598676376966916357059072581402868808892486700938213529010148601466501264679008683529094428059237837910925328929047543484615319737387211309134582465025760004800919178616531978882823691493153425391909124000131371977407245443048735602151649595084538679089237215604664042493191225398662898493289030729819925788164633018836918707474680362677722337885520613122186193082960459718345167740991537785317756877626506836086398236633723053719644304381980057596643937303596411866812867639471304379996410883849934296403444281629889510017923438525035176385082297616574603859358962104060576566303655639289292718843027240621661719718543323824566476928164568180732796748890802348889240838459034276027363362470152595001172179487217872305554341824983801191778142393639346089208881975135452047186656668109911107554129401887850997419341259710816233119042221905723158179250333896976850093033133973397424242345328083617263965948662571077954294397798676141889934317151078449218647085787733187133799181686712265060220641909902810887018397121147742944185913833298198561300277520274256557025304627080472222188901524693833797937056490690590482655343872692938688316240625110902293754705789626680070769214301365729617763934601316873496813107137012481955281952814510526586277838215797852627462397782610596866950751783420821390662785845354027784101203659945143367117817785576810921771507691074726575578877066011343131555197595081258035942660195058481272026435645574409115775212892420438497918584424125517022533280662559073188450254557260920299990674350468582771974420762616494997121119028467944118872512335974919268493734608089859230580526960923472912531135500769467436098889365764384237627778148915905571092877009310981969261660972194797638259277309399528425516717582128976725022692957182974737728328122541242814766713843500281826321465903107083689474405000910379999751031565123177963132241063027251005406440362049575360824646185312204330319700950155574708178084544239889067878272222642164302281946961964297617243013410790667793642628296959222764410194125772114327952730413119475991838659294540430107934585815759489212811968771616266010852956131594330971582890354203584368994255687816743894922446051760250565538188438033934182838994749523582978882349098003145781000591171476534789952360205668467874476683415520445581414724169457307717257881241341947469251490676477891361440713051470298265996418746680093925676547953969459839462939529989844886926691450459602302306055162809412973580720227221262962361224529985463028224045025155319695343747035597967356487245606845894147382131817669166311878303934142901626891752962858071929514784990974236157315137627976571727473190216049359499530325778624075766647512818629339620253308446106904407380536200731832745119911082490372634879671290846952585866909613646196928211125530444716814893889824746062760165406355229876953701612949719810783430999262253659233719184272294203320877649540176741955684417637117094934297889728566790079793408275793178681021120191178506896056705456149824993336353713094702970787709542049342984270999790357461466639670986526355865557505884053824454575408926127290246084826101094562554919654144205899708803273340262548459012846351599126365762634064080528200302690617497248279138450116572189728064546383179940021634643457595341359784454608786385640840187300110635227002145507327284391192452374135370566074776968280055740947465999230349820395463589053174509935251000481355060436662664534357516909950438333687694773883396356223484528437336769580462110235554282060414366250107498079159748384978167229836160183889098634374609636572952161312655702816700077821626374932067453646589172689570866098693012398236131576239303172483760449332046908358370190667391260771986987370669709426825978416293242380348711781685711475854326767951071205447397408610569503491741556691998498760796709930696921371578022203932356288473143163554296042099004356181984551322407102737359525274665668060646643219442722815298971381298026636003472428303142359608753435185074558928481448674687006404212835884037093197478375745480518375342834844115096708989531818900809821970396715924237737669608472390764581017221470306204591349382023505379680562333481101794235599960805717519232344331216134143862403746934016558876625341441541643140202893090044543593215658949216542951518952766060497361101571748066001974608333991853877433363958146953915509673478812880937621000635072930164369989814728221592885820751669269027278966864434415162227646278578212462524287339879947919482946050722455707309131705824349840736736065305571545025665653711034990270474050461103722566199926048509304924010318200979277841288036222352469979866344153384949336201158959270280464259525321771729942003872198832980247615334416660396751419730039758454145173277972824198076477408231129820669349971122127404913630226249372212234564060752320088828257675521163255929198288193414363330458791740774421746324037643039326034691525403169232190393315973847541184767908501014585244980868696623061575013630979799131387607642870717694381777810502802499527966883157422893212286761772939810527241822656066946625735764629090425643268497888982135740808739377641901845000103922388667087322248741771613541628354655866465269171881238311819584531442898017218097915050280028881081256079750252545533639550895191532120564753324142772471994686427807534374731990337778272351363351156367744481828749470072124588996669380252190120090435280662931235011330491167767395880026782530559018502924037306897491857044259494863488773835416100771025427777271295822120612318332642955667858467187527918931552106984834122443676020021469047591132773575569855397629293850165162927804487431284939988426113039308279454267794454969385295204836061648767433975652429991098695779507404912316599752282729414822639308697708596925411839028234553468184167038395331093927479151549753597297150020474665952699334438090086492037135880974722289384329059462567635667999469041801334280464387074669028020314066159753110640114173024928595075907236728273636141121681109149384195204016091611699964217794248162746749524946848063081250550161903285878624792422814451065182403190846891865262343027515412370003719099991533493271335391952195158682894702688269694520921961793537443255264923864205367480169225056261244800638403352862116480841612340942761563575658697173653800959359983323304865488517289178406198944427610557385885908885286619609515984898695829406568645858426416579239150874739904328749644524863915894410425642419131423458111538333559543226020898097760119219135017127074933593310765696305788365205865890047062448599875486008501217173549277918100040370536016803681979847768316731818268189179575775681327739650102079355395311891336620009818818449857724441971314666514376855902784088785216666088830794123111726643823818593684617619718815505959735471137871921155222261497059276419094746878467661794984286468154047592042059963318992149780133378972797404449943791812528208665205177510351950802392019896718411940869978967546683173657136919526489177985475496212216750586873551519215179431738264532766144976400004177953397212844776492234883209947529833705719914030143243207047955267445116936724274005138176532994239907477747552428382551074179677577613443264759362083931659089957882714942460155907249699155012844714038866055032757668554083680348451129299831588346479409871213487123850567722956761214311079719127904886020762331124711021015045690784835932938130292997081149534513772231660358372717036809436951643588860090622673574798658483222661673072531172600766907185554744786341447819713892732928075371472289928461454606257479218869452972573508274026284440263165715922375234910407728268551877760995682698387303696905744051256331423115142061420428164549264346820815860434214514084936706983258169775100221847247425428011370231175243082876001602254734448221283633152273804229541412924102929292604472495279274058496090418166320431269289077077051667521303683599434638933016177861817499300768316034396072920620077065031452156971107655306811451363118623566698680407757407555373045565555826430215222662754354540887122653424960010494367939548064011412695078019306661827031489807680738685467228227414277793812775616369506221182193863429308858454736171369899374152150915413620797858944747463068424583932500419032595581411924179258873112442796309205133357825687454720225476459678952538500930551263719680797510550325078492351677259192504870398062887741738133202548343489715416949320215528865522622585703738561456084089374843937332312054072790490070459861253728500015206078718590210988599752516164210329907269666518621722826213009730756354804365600420222670709178046081669097622982739712916472316019219724664215453987601628429355459697334902443380675494201303964768714175981493755424020517962010980589447352394963842910865275973580350416199730975599361040401201365966701294954840251086798512003707815230142767847101079900152425815723938806950569278903581751882764713204122899317823109811316165330046611865663356379818803786101054513134004502354388126537968562325298535725797491344350284156954536587784806231034805029263653074525342444569095340057532789634031366311174615848570021649862405661360194068185442274070531200423028410396490336349157548131001327031219115843053104678949881469435926942627298215607779388042605460142348400648266653151546707498383622451190382983337561543846727365976326498449446809771773212602937349471371588993184843574191111721013825541605305463116118999816360252907225460157677701592355646998268032489525200015215650228253839766253584305256301713188053065434763159912302067896305319199050880468965733724941896337834422579885530981223858947442432350450950004518230639153769987687285333899408781116274268786115833012427386345095300466255329112258389122434378059822604605280471144428200590871638207163972386451114985667966141076278017488855256626128359469111333513844823090788366050319620215507232418038911758508380049428380860274244880553890542523037040451038987534446319662949251678836822215811882778432000114414566654729319986014295731647280499852326816146932197087337898727514739827419471762724657052272478478290789368162296749729453495911793561212154860116110966460885828719918522455947538427028442689802808364565733134145426637892669735769232909016904308213806254629118922414133354975076481207338107139550657403084680170976431455612549280832747855518629180605636915229801779523742561011027089391472563522492759313141874056798472022747798251111424069474699775107502074700856466163010470554798805686059193562223175177612738801354298909505937711241679611807567472905606846760844429270142301937057088335234571746883124332661814104204356278433842989768441789330445569238359389261111104072280116636586454566841480480663499321213284876369024362250839351673256247492791176833190382683762938432713930159404316610234081340468325040251782455495129962614265376684411685473619807004434034922219670757463263975879992468244431305642799626765787693344605682779266702648861755161120889179207228190626718371143189816260888870816783613615387454375771381684266234825769463759128000230865175302683126057402101280040621532075596790657304210930310999875533512665495569362146694460541699525546285207804636376819467518040812726620465815509443883320620719194057013140525796855218297229165897194479871734647045090223589334291942078637340908339898610323558380800723302408746909585405068739140464000642439308651688425526047116636337961581048551726513762738444015542469709996096699686782478909415853780105412368675556877184722033417122601703922753964586361681305053875155714649713859634142099402881480516844329819883339458484663268344671722552473542992318743069167924441330233758372840191669136863027784695990356238597695169786081198420522827727844472108468645373695016442806721068442931536437703553694055673031335042316419186564147863225465143107523699127720718098548667423360110447484240297160494486184891068999303061718449130989053960072149324235812697242291690230551283149528850618288946225639629141200785668615007363898698378198065203565518048765256298252852453634824287655421565294193355369225487848820873657177163669929888884256733443905249438723740014515350116347535631924669633593773226295756448477610596679543136042428531708813535723600989533332949996939043262191243421116297687846185194548999830265174402520350951466576389514368190600985152332071839761453050947398726446102804899811935071428116760641895891049558666198979047820308615063492474478211152370798777728370474870580934879709864290497665571916209712968384330198087533379664434003234960587547195650575394822477600351516917061322412136921112799973166269175512773465765467023234625348095159824002316809432626139172493577471246825354056915232960966491033471206512851720715862838290142216016311214527544692044123404900572196703173986533607874026514987392354708331050756319590158041653773966664770106129934620726924431557078898173906760782535664293764822313798544551011735462360707277999509577735354600257133813281612627984675723675609937062722961038646840853930694211676519735267042129365318975002412994155449882904255599287678412485206698173620609060756543988109670567267457882856786404915016195544660828307629650869030191144174221075068654951851955680581103060828483037289123409058449262259298062325817318223101318572649517622111108842953975438655191513972161074017912506007580785549369686586934368627425296915003565861258506155855190885100127199552622973522491591664432018041393593912964159959244583289689645700125007201626982535150763629548310354086712834551730087443760381065897084730859433305528205543602224998587833567076542030256863757964313615921074461648415965115700016076346566675706725722718996613759889146534526219007456601315852420759483599818571985657062261500058901232986589901589694109657159796458109752705947307534112175469828028990905106216900068079495365675155100869615540382208465579788094064173058090054352244068638557389912231681755249314462189083929383539718800426941172122794161066896758936812241630289704602069859065830817447038747551354105859130576861116637984547387178796967459249662877639956128782148648051064414005076068747807241082751812025589107010296253814645786100609251126065779459259947037306044397851383073455495918735908340032694873374187849554379511861746348531129771321509542859986023687980168344787493406084820896851698533109036418751666796111558537803487858957974402286643321939482554629762007307712937052160351194019621778588769750675353228830957996624542397917462446622093900084471660520507742898696260930845780904896320811133530865232930469379603601607738000971848179481558559274276417004465513767387004538411400410851214574194983489669077530970479354468541058906297166446938117378490429035595619942593788398980605353959728210484441556589125059611607244070292085770440214164336875823789764073141472331712700591640482017685686596804482535942444349883398195595795584272262239375316460594238016994445661845037483179909369964315328622731126618085349598722156432165451929351150444676370070260647007020056349659913675694357250222762644742423573559421793308527723936119911747881222174871825062264861358931596618340534923714504835598762742092262739576416632267391642892676414706984810776911831537914076736979835252316585505309176361290628573945100177018328671630085736326937720771943874337028026438192752677544975756902186652896907833983374224175730946765294731374857271960778151665243467283731096530231131384625204952646476941200503479559208549512817526957414661364455139224560083901645926557381059128150712278771706254763094311597060349029469565588988428601991040892094018967039187441182823788681159353986756579373618011552021015616923713875124286054630072927429713478185130294805231785323235597800413904002210238548242844764378325648531362416951339764399143142452405245140877920159948939510361476491237169610114452477253132772007843629280593912191086709184957641501842576549877606294127724027963414795287116437424608908292507444538418994420439317491105063402995375457308646228584511140616623819498691095851203311158053084673208528610526392551670300562080084434174485343156058374735192295960324200947719864212470976941747107735635509513675577434187427683033561561550631267664050977840940419317142182124691868853083279426446930831165977862309017098048463331874594906659449850623055825446587601491445191355743732344705259929336729169694676942929500685485627328110114939615228496437615747546528680670924163027448470188067827752090870595444658589320504789335445917288648546476517196584523019976809955794172839485909569547045864781978791158375558120865627947686594059226511137079999404646745919663379938408913163313767356767218552788205732662857171105131219961053166382914143782265866190311723470074797762371996356199785526101045258174790351187199643690330350851196176005360957243590861520702608541207511050833565637873788247648974757488186165481274692833433063488453728325408137173119305322591092260977608251761098532462998559701948389568609929194168712748493476462980677888372927737438651917652508051448356363261328118903519074129298848392823431186027640989624150792532318600264540882612700573878374937462013776786179526308256899326443220959836082462836133104288448159011620938534427937909156670021192901200913596730249503213549469177729060959837254275369417077674122009126218756971399432463543449184692462747998148475170554955339390019436873800679979982565876117448763471418181251515438891756669995419031411961182739951866604276990434563863932000564548928255348932355103135543017960484150939707184240730476288320129091137619223029131634120409757840478698969212349912031632264647502789855252151143554572737967204695762129879341920299828454482055946034995805854590298670106162529494535117315129979078081729617802066473400152299925532649801951074622829182876270599871862425587117012428236901748502282009329427362915943905908129806862812612527697733667377495355988090023545599888308677839227632158757431046871277084469415266214406493687353628900325686773624892256855467311677269385183274471339602020735422565237253202941250346524426766267820230585382547829736949286315578652890354879288259973429603079664860749556402461457121296335784866202059019701285983964180974673376333126563600264530103262448680534004005344121258339660918709815062803213724551537203389496657428351983375999712682496724822728403296247839940105271255771398291504697141485176748513871648737593944231423848816227582099152461849692774008772381932626960667851861509349943776626085396614746611684122902875120019956373103786497268839895328495199019035713103028876555699166084302724047681530268991844918132622203404697049262600606107228057665280644655348857382408868559652917596788629949030328587427755424198606165137085976571161878259988791060731271216804981017548213443968363485894523569417375956383563024468014912358650063209050555642763314379250618850216944747522241929606644717845711865135415496591234841252057095188952646383268176750905861941869648734312774074476564976380108907976493049245204297511151151969009660731783075915611526702223062912035737209004485093343139065770244851060545564029274082473249200890703295969609911986279398083404033693825109263824814690009227910640172312028977829524402327897403804836627339492331178155866309023621387374462440447875207341088991597144932610748974889520916513526747777047981531566847991887821942423825841530596386850910028795336844980313931158900274864642458826528686725914327522742128498576534391013465507704212729342023769002846225696376066604679538498320841214775278729969429136171830268263428444021375169813357569328411597359399360455320750533607045500586370340350604252997997956782512179335256759132065413322250704163300988452660875282159486109635530857072678663653551098881106296677416450923211914318727560499489337263888351039483398984520684201219509394281522081417767022561272135913602553589244810765707335888847439257519570491785436712119681133689003240414314114439411291325202107222708394749734614565803139511793641539121986018959436474587077134790318969533268279931991958807448223163782895664574179884505517175232241848052779260534229487976341746300808536091054711081419390656821973535630843420779903475074057471069295974926542795123819208777789652025449035772037237093982552261456142640092480761497391168775753757983709071545475969460856670072918638646228296741255509517595241814910650499761203921736895979797094633324082253343814086795881717746973941498267803379133153630331990708519621176249762127771370153031633825569871827472186789667813163724325362555488687644756088122239854747049204898967092258171771974251902303079572422019496859996037509922947063341968334155718067790277737097226411235740836887336289243443414727928145200613613668850290292517473006255213515007619283783150866975167469601874078474780822722301068569936255819381330058374285077536920944623848860694511583329509206432673022285024154077160387881443837420923453385111977421669126433553066482596583486096020849660879241487337867450530842588306335690164185962974599839869658262471592502037891585347829337734594989231808504376649996950383916960010842004437572215586323612974849432243898111816864609199910495471752204930742211449010519728536444138538007804568160635425465464541211137617762601270941484282429770741289734262610907112718338210810018995354985250082393993043914126678326785486685361037780894959429926384548792136043752352560582088168826845611761173837753704266871051901757291376448267083315838774669929212990103467733620007447317552067119561817966511761602511635185929681893690595963484199566271733893684448476411747272753180495503723173368478580212054818859417604134865936205553171776691184671537533202968178637637946927250636810128430906608554237677109688932212177542964985731332442621906490259193233632853883199991175198572314487054205931952891748008517834314522367363955711863945305785656297716942773293192895206463090771148361748205229274377409879646705905894778555546644709885783645105336333496803467079668122899615525259321671262645419681304673903201842184741891537811538187473514344128083924935360241678669528489273254837379856445701174152104343701466284863890525476495131535098667948738324365725562388309901517089867346290794665307969059010142476156105790302674111477972233477296171299890113122893052437595606417140615217130821194366093941861519962685412270217635483242716254680501158881916861249945422668434470031070060051886634892630111516690047964621752568466833861401169022777423565178300411285407819897716540032382922104264012782473144596792068332758567176611585021919917415293618938065740986654707424486142624686107586329296348342912289505904872250094215113302382911977352194595971438612222891977934195305334970837182316461180058527675972095817180643865396495535100782937654273953296351928112200357391661106044080958370791237381547829216413352540513481074620369586768298918936670246090092083581684867892433343167889240951257009708450372289018451092263413385780773688376305825979105205977132054814167568413265217584098693481602035161989667065623726843700339389889229894607435908395667118511115431693601897615523987440470232328568621316667747618086310614860845162414061864508912773735440449112059520257679104778851123969020946481939089802814938974107087661613522720044000624331955905591549132107594745889200975263243414846351450315781761759811203767834909714091987065524993441709580078232734947848829912383454251956537575294455688901930862924311174637965719039616816676059421725244172409170953231286202957634476802689025462018699740987810462152666548767931627052188872759943831731795668385488574715654511232924961124379238630684895674317859132839499676985500090791618463071868652409225658174665381171716685889577549668147713001836151767868449420793243852504883971733826116437220485141259097305134407454511740418077670412754206384284680894378211369062253931425387951689300556670907542230894741434612358503608924712578892834446275792093333284529029829071230979120757618991404270260300593435643451041206717001939108322405820442325986422742929142274799683569081011899298949103909156317230561175702213227016458949741101564348351514674678127911889720297593031988766512086323182369622263535853202810558281156906485646338206885611555141305799410941839982197553572928201827345582843604114251033055724656814872681635693505494086050142283233272858409382949646437619116920094858685910082190648892803040799073611890931524475115090383913406282638801087417230522608928417320383657900692846574814212747059939793086703258590618723932883635241404814916559161399360891777037698227882090698004348972315241390158504077455288251865698577457901554368421422329652808553783500854191449264820290184468022946437481639347111247059740737045976572147567906448464752554620215761314063300309488228113081405874432840382816394571864692965301339159838107381530575185197535120633234963634657179232371794295123495695489103593507076735899954877866954379479816993150801988800380237433679862774534022934769387089616663693235123457124142286699664784979651765594473749548933801115791315109664419943025907790880379883617397287706765836611626730393809610580662809462288617795165194637731996020095187566190802172249038058617325725737017357615894601127918069399535262221447638785794260079271861334352674585877216081795675795320731431868341836746770657298699235263441441564553142821734530131686789319057202327393997579967009830306871104383165546960315988175721108423561004684648485655943551354849896915271657988206288553225080884193110971524653225797153854138826377460306883830590474112306537132569915289906815080354355697205444480362632288629133316787860449724495879074083146378706926056266126857682192396371459947938583713684375502419900497087861810914845949603656790891146121293027203758542961275778681552543048460119005606748309589380707683262873286678635996694007016906955428023942092345069862234273604112573510227526977123624357227454823169919205702240875760520782429902386492192272180099491008716705263502507186040922299311536896855248833280304860538646249903724989360745684320055419305567956416914807190120623524639712317548306346910876300441397144141366748718522096146697410828815150857269069899601882911684587495090705957931929496440691386253168426772604356132683009935691892981902867235873804136549156257161853461555403749628718732726879975633529801894858380054459543743215806968272757153419702003408129924355048476586464456251957723678746255244255990553084526957592989301060222536553153423056727862492457290841263396765166133756887474817846273051766795865779386410447940786719660302592798659638907687225232168676332546555715709916528707270558846097051923511152483853948202450597177780261201077172649727204335245600996649887838903646368540568992234355461465166910990310682194071334181998502145979797276050701044413772967800220946693478967345532614165894284483322632097029870738785546417459662448510732805331984216692899453313473491860370301811417586815266882675111176958188590105198638186590741802412590826957303955330354113894098358598628239181649422108129722675701547908609727502769156340144217163912195015666485794127026580528940789712083223757065059426383491839427791165819795032681630300039239330374636896856127865297874749396362641562407223334885782929000289122023484818096810128202371845149188332802932893768459224161664295778474411552571350391042909041495378166575559618255312176903261230460860745118918051541982756065769046054205292804252527535570801172087656774028092495268786057942424431217941597403841928861900594117803755700319419203221241813220612932338722485578218226288553467676739640164834908259009887582909191340976043922364139939773949234292956932223935520164202969989780968215436237459664577280443430597981116193440257842550623087115142709561586029131845231202141379291965835000963152979046349360856854068311146297479160373416090411743085511515807064325940125710366212820141042371023967754811671851134034457901658877399971576035449589648640357587669010002696194744912786301899129444605585420457219746625747471275029782604580235477376886468489091121504353949360457086015802874993219160774333957069548070305458462328155166911856863829318622156687921446586711069180867613791435832256637397265043463176784140402661551880016111168088757606754856654857767737698162307093950893056883597934329280622637089564886097194372315765776371778424133684166812833606511918029479861048451204624371280333158371218200256320860815214616929416027995108975111912599850653086360141083166662285573028638982185663035662574433302100559457631317895920128775041058858372442363778562916111296127512957365300163147191171592159061368197785589330621555167372408315190632694826674511263598107651560470023343863830727536945050796172250699008300110005752694529123215220186002531376393497974656208377218365770989536421510946618717367447964923218953584999739877261620029329371484844513288609932418445393939995441705153834059612302038467793287457240428430605087665644617196238091458859200586401847808595547595034463342954287842940444655182048462122603876582851731520522490278714294716612238598667815007233807771891667191293661978530204543491926136198812707511216074912436037412163858190688278658128508084944004055152521359640155925977032765492757821778770070160015741519690730706283139655328753112374413539593858915621452514185766761058006120313125156975653735962233273602432582763248193977027067926459317269338706676781465429829545147064154990931050775231247266051637964702763711503275454588446803508340817783199020758054090385238290752291778683190052635314557715542289904263517976549785717438829309938289277715384398429928829134495755454721065557197848229107221155558113192325004848665086268442941607697552260511572168157380562687777831373974767017260674443400907509949851931401686895699019881120203840696624321269766811283086432529036365005270167956592259941150384574149537321977584927365569459277051734107631083195589143205310652843828353016161268982854687510628501891610940269168940203664820983809700402822906397209868785046120017381993743158116452427238673798700362522224727465445558632239509305122552014289189789686501873499875182735394459796959812243511997107585124601638095431140375612772940685543492487734647915717393217139381996775779209691610265180952419472302377418045071854110416262710390693781789199903114562452045964836067129948414946241074478283029313528803030043210457626647703462464870816929342440966253092282158239553640993243986043147329621782065252861546622675573594524741323883713393470250470100000328567106393127447270435657615376622702588786324965641252262814409650123939545193263992716114679717750079292932396700328577156796846265482519560151945033902245048431869335829972904649127658006196460319022322684145989052681884811658143045858388978866213635123653354452187950151387333963452101627836589762599168868211710460169655880318784315481806169916430001938799157677975705264345184145805933500033565717608033957386770385257959270721537708868254540927941033616035544376031264598100137373766939499655733717800644176221631393874819685708612504598464584387197408393616229401374229400874613758515600924153198931210337439550132722132125041155428697904715927359715088236866850712471620714007941415010555265844724260840617107254059516672452620313213252502353772259931904022025472134364912828417122746390531800661911454238795636146166208164987509363700862642013398794138261204937335369867338292643742456933206877316738954963834032517637376940393516898863688575926936117690882041494527178269729997853289458691844315557943706753913068526568667938280054092755878537397219267817991554691707354930550485621998922658888953075102901369396650487477208746787679386977869091390131509196624272752419688730955112881322909375346881230084672995509993763901319066604089102448415688745540940382698734250799606451070535246918131414877708558306341448153551288654587977298547491577473721968655873682439356775792876818742754526860190566872584278151628530087404460210107315311032391318324646224883794359828647424122065961677462898557269930021709774529455561831227897727757179698354150347439769931854615546378534220674828003969266280992179049607497381384071590052268692718167942283186607554579867777467209782918868365204476931319592120048953645058094512005786380640082866411609895889474355054398015046532776507305034044461947214996807236596898043410903046609002052975372747171074792029629063511449546004845250220191635937963647244877462140159592602482091781603029212763724842251703850587226351196507929883356982097184949788322401330129957882072238568866095669550760635347192033970590539239511374059921882349267954388407578541711931587742585594675799706006942079640543259399344722940891145414546489382810149156809557243315376804253878199963830511784298082350752626714929532577534404514576157850255729432414717642054399451344907969085472869241405703643418203321961499767429973358339051154455830499697345142799859278168506899058018473734484105894875904565284917596465727212962036561286363479373257835630428555467893017845058677953266333253822407686498181030493826275711488996245579787654885861836538061385440072358817749257730264825359887844117078457442945961588954822870312745975904392015367684161649080672925823458620883965271479425911177858026408747781613501565437069037873957599676696139176454828777677488776393841454175911764985032942243608329840445700178412002054537496206557400556441447199878897829277745321662715464099855147342066100609727283690183553505093761188952185353444098485972248926740641869183799571142757920042317080050252415095324411564956345668117485569067617324807894472166582322657828052608953210646248772478337915744536432456118916627937983059900948197639623972375120205365402694437739250261940683895903335313379217503998635141099673137803731911836471404759766287003848033705902645111567220861065281876511480145406261971846274040801804304922318665892703170449257079407042594011541862093273926073801246802645957006085918034228065258970984619022484798333275966594734339726998143704429075138249576801515191965069829829457344940106740837387511975648132855669510739039653364717136317291722609600290248801621879099552499154191138395842645754396944958089361029030117869732168687766602152836268729558081897886251602807230036686549856127070606924701930318399483743719316893593260771441135338894116757757289318708437589845284715334271278077714492459439824454988044542891511608492228517417381292228008165420649873965696096475956773974325631840545695612063691971276198941633414384311400962113630483728904538145386620493317062944521924553485010730213471989473353868271547355303395544501791528815176641961503820948541688107427076302430189928812956982054147766634746491737352146184724764334901817666073853341629801986134084994587716547712576032092252276541787161836980973208407263449457061152546963185119496939016535210955773721175899012229483723939308245519717652366784540908266334243109515117632060981131320563257776455695306844335768123035420312201203047736267645636990405995698735350797586602364241177311361463082436876745031955930681353958900035794313944226320528762016860405646121349312518305901978311626700178543326046180294111364558088361303228440558433093750581512827200768545865200984096660342276733467248294315878051854257983454221911947180095041357760278190709737982418531562379527443354925484090174397544855253598806712607677336453239866601237832349878985049914345774143878535870628322731203763835176761817960782981544821372537164710683655843063861931233524340113807806952995929405492202781627146754895024043952791139958837984568923633521997218507070770444206002697447887748808030609090619311528510554711925721895921686501376415452860478645013557918988395823989500849200439937748894179069738901098058577500829182094944607470166963612758225080457934258891278413674926782076335654266906696726812097879374822241480962289598889514243472940522209239670560465710124289796289853718905911867647301319991807591118571477699231569434068605316211678489346752613489681802336863288627616864578884613415180393817669556689688073637319055879819633301056379394997958586547421396919575530092689557425354077323140907539191920046469918360255266516876274000381462406748563915702778582455601924239036967354282469253182438662192601409292404211286311451564771131200012321745266438208837521398973969040292980927150180963374450374035104890662660123085613347497658857647449332775913146112590270173029644641345189674864678370625956947390026009600065215160429105125909596176418195735953039724528725605866044982213563100682717158578162537476171988245251904071367519604395622660577109145116899958037951407432402695935632790750722362319199918325725112823490573951968201251036538806878969803665179615000069824197850340820718118270517962753947259192428152167243428084575137861169411441668275943227061923800457228101423138383303701449217613308313556490514288766961094600953226957254231965282124904832074031162548249099637737895381726423249020001671081012699668521566083831314674819678563610578958905339574145699372754293629512717673526718389037000190632429959023353065215800862550450479155162756681848338619828468053119997810832780304144786663323970512092561303114130383136258567659736763958215648387459867657892699349531607853907564150309280048621994354118776424059958599646516860684748678103524761454372148049082031177820321360022764141355416925178231986143080871922814110474413623170713616762713200663575778042935949239554404717844356291958519149033120161482679475282601219264439171965691064760009413190975101157145127109954587224333040156385290834696909073104184025821088913520397994281863930958476711093116470049050851179103720463133521590655278690465743961593339736579762822555780761688201935797140027852719352985159879231451685161371688553459062006071076037393284638828907786162401426516086045721790552269453538744103269188807931716759368374636499721645244519503781760098675807768936226234763237532534395832416448090778053017495056128193151631325095549197481824012958560735066066804253120826297362105931623608650437732052713140886239004863117780340454022219112481959817898639436672449650001976966105464345299597065568190920454049915400452099105372430640495177492414999152324387490252699780559777293459437140305724505328414390660530498515305750851619963156780278227484632187218166501827943684570467715261522808072673356777873787676751100048885562515460212484075804422844996581492404538555065171926580246784639946593217782676929018218911483801665303438008187316435864617864331986137906550516511440593812068027313358648848494852257776318324262597011086477443034418785493199470980291799033325523623464401229848978543918489824288345967027027041657568889865622645471140049357572471451636804352874009498711226375206552130549073738539594108099753191374854353320268337570448050742944498592413488874615863174167867759571069691586410080596235222654915417813087709635733342893365920293424587932614443254577005232014491789076399128562697896140178732345828481964956895923434182528948939959348549187269390619348994187311484802441521343840663816873761739246407152263598158661579457989489426298430641259328283331413231480933493182375345602213272363660827343421817436625195650877362806387267479729107609527535321125249250599851737913716977262621250957552554151599392824403680909496167759486768189328415383040120360924788841181129543932078467144431579484330449287372649437755448480998214561245509805881024970457774281236260979431567535029515873594098027468319421137346059745578532528193693087556073133229174204744804637781745204671229902620164472521155322845896163413293092657313868288889120900909703990338379908634529627790085232894347649712751081832880627968959295442753378848386775251912009958440807464213104525554094279473724373663872314246306522613407796019873828963212737136394521241253643379075322796102681434544353214066914326231078411563905723182057691315951088812741297602887412981471270547798174592711753043641004507514392752706171192828208676528370134188574671444188458792161299444953690294232604063390713635543248599259516918707812282149167004687522219984742950410853594034778684390897409232494430506615941336309641610246521302186876403940528731795077946624982976601960402999670698032600349988968610366323971653144560478336963493499638399743567338306975662283015568343444192191249144234283706962094175446207010105696372978365773998355986425045770279969540079628673835814602616816669461309760451030727517823054932302291145942523949573483882231600117554576003233357212114044469975127670807725799266621248010605770495368275797654669875024559490853091080352678669811159534166527352308329733884775122083055419005358004293684218727452555142291785943922763346701683394760409385773641429364371338918644146469840283655441597581630882843463761892413696405538905280559065136606790373816079995992393025792565708752951606479822245342401446788277250078589060859875432346488320694599691409352661423205973024297136534787162827230303378044423606078331053551854394379910407210815935552991292987892742641072869480975547873677612575052214372028437392791337662596764786133216037847183581930210450568035256610064291465892131791690651599398303279962975934702031918009161354636609672168292566122236643893835083809321268118577692731360268611080852891216412544263069103281953344269751826550305488029690152518601037101208511842326862680170828463299457061640047351064787899898463091735433017650757194999448125712736624529475824624907760318820836864280181988241142114320142127065022880768869190657127462867087523427493109630512043359973174408696526049549988039519161591177609787776727399150387150891898329348659138274928720953203757843573225105192162809239727041734982753859922235578163768156591908827224370591845607113630431023446261876792983021988186775968425908010413478194245077061523837196008436885804673734718327812926164247683788100730836045988359242593460925210580176602088453746891112798976809199383846116920728004501860340542022255284430965047135602106025357974714504027972739116169072151229849601285433703860285313871866486499830900364226719199995410328947828465927599028649629741633457634117640696396856019213935304494098303468257118336299096713877038725100422379872236055059747234659251274729086896209409796040624890802775083522466693311129711644321667021734911006571929353440180700156485408617558360772265048882737779610371749466164089184769569751579588017836927471043595877083567669542469334359069976868924662912560773704999133928700901043515451553607798917866502315380180497093726647450111556840153276166794619937876022871965224559797433838466560407498741669026650633095042420682113691889782022096866987115817880972265458421866563336068093733137918445694256318557650726589957127079877007387118203688378576508792288520689619453105164198200543242573838985384988880109248720455212762184684053988616254377183183844401488744326103099010240587822039827415604235167594572633941856037250619860819620853417460592903990688838230626263243682999827410102857397449339465858494228066957287298678529027389749056701674504848849173897297704190424544048697319098469825230230494964065226483737784110707860232129537038408916672859880439532758312979610591193842633701088258136270682202310930046442627364082184336902753134550172762811503101302646144231639351483143107117529013448092598085729358124424559468392836471398194275207664196593746587266688917805988615855919042613649374395139961492067504209451121805859792880516067349496784589412856865758638710714586122793061055669743982301540852920654747273144734501228142914134019703405165524038416505898468167050375037062499186290819192869057516614796274624093099083747233444922125206248246131914998869229380473994603499024866965761832882228093845126380490778006895279454615248555193372957679055193130651159398817536473552646709066251187214592899717912800793421068286890613882385484486744628276622929125529201744225326567013365577905098218557688861281965048801893223402176808655404928569422470670964518498839227923462059048279560532518564417214789768232476154194054473550595920628485151523095789532639795629097237006606454953293567138840431482612761413157741596983831437628599769439947559941008349943075803987397888140239506322575030878362154002329925882456775363439627059635154357705713746061428332033055836729287073278519051854524439631977331012744182230935236077231743099477473287666714937550403100206381264280721152259253971899901462972742339268217136828624080960898420047727533525646844355824242753943934422241258185662857941569392755209618039872408314156965758245089240522438531966211236807403195295905175428031858752782716541789838214335968463210659755707291912290224680167238574786524894609941680344493907900367241845231925533380958619289639574901128005468498530483951857607909869264101261132109819515758283919160324823680994650133227117309426805458008681140517914887340690320697899841618103277440930213163205444544311618794243906625605285709255327712449505300644232144939393351536303299103301508132706053648727615411951945160830428170639723086841956200076457736985824004942795531686810047651132714998203988049970206859965332776744245911338357610527277009958212532012359158769544831140278816833675707002955864500373319404838706249561679768902993853939695892861409105753970034268259019168909845663769135885949789138173423530121639993163914929515233580821553844759233384579682615923580677989419977410132408825817453746113915937829805017760533456587467427106411460195495330728278366787084303781955190181547025445054629041260886683089176806721547802281169128752405762841161974956473954411439671089776650397169263718165374879846425457107636310129091271092634070484570637264930429214566199105218368596254729141261945398987795909143940510737941873251752156726634038967608691702551670728936477850931647530146515337520442990310467360771892197429106504295903303264655253978480278433591798074794204348860722719108310222090571087378206739722206713152516841276759113787290202746078934179602282642483143277537674762975048402910833301379684508854806488147944203107194414005574703885129935297466065245134605091487542404433215023218188288399306756507552285836647136119891300926215078918498162861886380177264918021413868243927738874532200325747980440653138250566033630331526580359137706511887876991492925910460700080448609745970780307018690563755844869026399913490321770923142310457619529121728326104015672942660137931464998904707480423144983462285083280092239469751323961120600234044051654788797387846514017947085280244277137023594838789728516924916023399044900381449215275803943250668526272869860572798605119215714491797386514681978953939242921067550976138050635000134080868402631001409781660860715336152453875082325962566537962481188120682643870995840613967876489369625669153494072414241924772512645185861455625421879659496892958435685399730789903213083400633196800799527560940642511034778944923539459704885112150546305501826834818073922048181964638414646069578281953683182559834331512366672851648041522259465476251624583020329962261832728479495651846879482492758048123830448618354943495231938343291334114957769540506425764253272921770929851510408976400366587813789395620097636620638539405020967394075971625505865260641398205144490851540564271840903755344555642995101037030415280092529940002028339484851844936148750870123421584919622463717537671104222851463656936566104074058328964364856430250280443123067645548772303154593032741225707403616105006012274585938224162330768163681080379362652383704271642253033026800993481206233098986913933126732061193181167972416543097175248356874800148480263018563271981493732131528820925116166434486210605258589713885005401998039220129742893871713132354280814024213066234024586159242901690101813037172263372213715239270384832880066778902871961593467002353614868948100299569186452088798063838302907403784098531585584513182214494492109627275698338973748924684310245858875562861442565419411278893425696466099779820939570209657347190001876337588058478764827264435655750248749589291499925974754548675361899622278669648163991071783229402181010262305317000368313596766200195592348978682490880358147378393903563012342347030368264870452113502391709122502736841069698616632130114510066517732741500065545696004151621625122012144793110918635939326419110384788742019274394038182797463725884431418949311231947666000436048918394087397482093992200284677823627139110475120682427065841338132932718002780941654480470953555517197996178986691070359633852375870639892960052454195731592858395530618807475304152779388041409619595009133659840049535883268996062144732631153999678791596906710040143882514448522497102656234698512261353553152899435176345608230719426284762181177634049165745516049651397234215528776195720564080385510640111719936155078356121285447019237740497097379349977757535432068681818088550218719259198846672060764889669303947670519340244261979873304351426240125158795908352494835207305438332984769216651167781682230604595026818350650067374844782222947172978900236466659759696056507115116042285201715318176135199029452696786943561884941083629307116413897964469251745488601963341747847706614820317508269008574023438207281122587325817863241468702647887988913474419855093294279930717916095688418408006279269356828792812145205818815715129839620660133340751026153846121581153067750519562283539597016078027291314017189115670399566222295614972632520624981091286156965092392690865693576552518907801640762002921530393158974493700018283940781335737868936196240626477363339981801018017965639925509284251436113214080758973386666207346448525303384341221960225392624991249886300140304189152475368409003693590331380652575763749834663997704192895266544394793691283728173654337880847383189742771514894166329551231489575966975062506287827219476374711370560327741854772899509084094644659189920364269420009810592837542440574549547924735340436380703358204726203461710994290930142184440589406563849147418828022415744224970681611769080609376578321047560483125040030337185069207231854287020747807157057533177689592829474593928288154213946519513080306205282157702356750589987684331120053183870388887084117455414890143730202901857918350593813385022603417744364362499106881293653393332596541529116783170899693798131507502205499397638823563355112137096857317817983438356980327352288345948874856318585536673707690963140298154348738502903645491899709223118819033118762569202756438261838762635267007463942574383780478370675750462570853744063719420788049555345320725431824998863247022111896219420719267381864341086508476800701616037728204579771026857600166435464852153313877155020036462893234663767424993887826160239018816908843136354091291985901741132975108605577760736511076450499274601805207531272780809698418159916170453664082418897407144460055415955861208563870570392618942315827937509795240862861872690597990045236411162836131893932840378417174413560425184180198315360932529956933357245616983192041695283072861490166177105390029487131287318087737033191445188273354769107075162834060043602247517821910233833655789650120819376012353320276634842207977223635936453726063644810017587550696915024989050486507282022273417331236381003879041387050300482223173694450878282888467563826547059287307728733589917808209371995587922652535233130357211069222043047440382097395796381398903360120353419029676529036955900372221688063942761500152054891841022039421642352225590494871846131226050690223883605383897742745872007634862506048555441556655917719819858018951751908722573950977673386325978503444297162301895582057681129048758450280269184445766584738857441216427691593163491496654153505618086741745622168062204607397506308690015471968540857905637671586113689808345268796477885996487749113705569404988962285403876922957021180429113861658096352779092345787390751370915671811279974933191954481017026588228590926704619577660751414023680710310901223400012875367699338678854396239817882956885286624688745531902733586914463119469869537915822767140402057095411912610863436689888311879265677257337469410128142542700721857132203040411486354434824921557639453755566592560320013106571328368229130773469765496000352267489728290386441222187872167231698068426010093867612973487493245374129177309050058719020453144565640627622384624738173376178065740036488651901640398585356631047132741350057271143855755528350960199973410715819735093163339447610465937453371099901881443935125081860648698198849932588901221411833703869484992615600032694058967039070153328932158357281622301049837690770238259587866536321126383334529520299231557402567884601750718740306968963075016259939513546752844293970510628056197667788410940624507263254947393911638314306836434514980962018958962160734312195613382658575264880987238871867570265341163334247368517109478785150891432405762231454447698050797715443088910120704134003570415933899614389496955618992541557327126224140989258808040352744448236955679069170037885478476244499173413060437744963851400487212506111481453052174662720632940138594083257874965940184117378309216677846083211786125887703721473191537050057793254464918355655729460671570777635758259844951846238323096841825734248113334315198397134791218833811227167461186548285160671792042011729379415223126703908685108739593822358844516883636515349272028861246395459265090275948182086952845331375477177913704587895597988438792279831181791523050207304121704937534394396014893979982176633861297106409104664305018224321156498966836495484913611770680087930116732401570904765522756819017800193075123431985548815431702778462917279385364223907012005593694738109580956851152122562847604972906801827477955252557468066235379245626296929249084416121278961189896083192347778015487720037825008965436341101567444350171612276613948173027293493665113441947755342692746190621712710797375113055352801854912271402848093565222929429092432215878146120331752218656048727165701246801221308476829552111625136340097252635301511112450031043555261160412736132983115425199006475359976111011219752677755842860251226727516067209836966807303222246527393509133325455814059971846579546042412054920138900471784353589058050352793997691522917684419640016928839188779874127909667331967941893297433382731511589179990060600914018046151818518271121824152268793570401800251552806256966271251978917757426207700487542534443071787804024910731837633791551579941156296743486151464384702698986021641552307121534250950712457988501385193729790813355870724573374446691508420941235864282688968973455164357874692990326844724166075241390717760252177814422961996953144739151371180923831665543692447800668900100313172726948870558330036594595265843992158862749368239979449101804522035726493398749975041680047135620960263521734855216676345192193607966494465144157134844301460193374638066538939733084892716947376399115847716493994135292984619688241614940725658615715119839588974090659806693808021646733126220898072000381633603318745710695790929352319050183807608518895015144423619251350087495094508959847932560259662942258690675057961298801998115793788537252355004743139436210941615153522133889676580107740701651586778781915709784731836954430734702004301531017484906005503567390136652054599308078017605143593179575147205007452267246796478848019985037204905959809431432844418411537518169834876221670424117975245602840571335112480605020390119715825894931925043868299867664766346318725810820914102285749397890156150166517658997950275866649221499724907069675850229980183252393887976741892524288228396192551713101957476125313099236594212469694663207773971729551067107667951018120976012044492839827774213874733424992254601040815009788398271622675019381216843227637778997592523306460305104241919605213814262454502475768356486960410622043209296304362381557179856831915451500800095894166115656209876482482411075804619110351648570242539281661030014743043385399869623778170369814265890194745273856724750091478789739388302238033785558069055369387815003678898086633864313203782667365623673734006142800614633591914610765243937148080134249301280189479831278965674838506955139817315975989958907103183032274480231074121521863089431988448893867510062928173748384091399447035210674312437318501089319346404726373622492780878170740739013974978703533910752494016412133915336993913450835124153176240498669535296014080572450406280223925936262150698477857092904002582308681699748097624725992761199679808808744968582687950058732592388746459540321272438042986534904445899896447331050983565334580200849829884990364357652499060271491989691149786645534160633310074869340195861812663782413781132719729808037985231498814943820523414340314149162006599013527301608203708005534587293495183327170546336291387408888727615179870986492713516333214767046722866882093266183135881864738520357363307127638566896592560901093515960601302343882454256922629350420035564102619436503608037459591701871312496059871224357120053495784885180060824616305919386449462780408673588727305535278406895317795544030579922189070351222635329699966630364150743644744623691455093850281347337517374626982735027837540862525740278358749122066757509027436962825723265601778954733750056686338840590382585070715764974966273420297666802473939448435446227718892262620804366020899078685324819046898697233116539213990057191012336696248883453892022138179300245139238590692317585905519634299382104627197732527079690662347944984153824065846213962883502688424821500564416933756490890300143781478015515107804086935445440204375209311882229733557325292177060633056785617821943016974652357274562697091041581915033168409497427726726564965805621384192688600018199879400876293123022585905230944139880781079410168801457151556840941212138111091010984969449171678009680520766399790212813585002513285013185148512987849480892576838800120382765654009372044182721776546409803712585445354631499557097544781714096386770267577736179115135043302004605060825089286915852127463740616104012398020988883391522936823482397725724310203474266361712210697914799277450439825783893928311076346299871684737942938248039626889392952034221163220184238044429503762609265665179998240592347975101880297063917658156709810035165797021917798160117556550727199705256272619136901367168779491591056389791160368457732238243701884785266730172108922990350075479006988865470343284193297901237121408392888865849122790502758813746991180952454910867951755270860406992339975901573586123458630978607142919486184916798739021641096773200759368303097359267591193926024531308710410391667467443686024146607857308463997686442181796489476501496060865349150772778302798160977714572220772926861231226400961553129497913003149261471357592665314812163163896767665302193606175528091055573015093592633832425738682722240294928767621279635968024083278673817735483233465304104930037652888248994100066066705490987685198543758596538261468938407092092714386287335639571176011457139467621667966449574197757898051227712641377200390872438497330650877480429918294481989383928785066722215625820831874718047006322332700733966023496324922460707801152988403817284834742459171172071534807434706539170748695192782256379958640558423703750759166177205971875069480603828763120013255516963728052980302006759476371062748812834785932989472667606531273578943040177349300711801107945178618445381067264184587251168079084337584924475366608326608817993736439656183659074683147063805151607542834466772388874172991678769742675583788904964916986343552562114815528955358404863274625699213293156671115803783572817372094027838764883193176396296596415139501992780227961502599667680109390490153585010590503711615449226968928091796765961681194094468547899979683548319521166402143296757812599938724163177225235391341612037155545579613941942260604439465896911517152413849989722152051377754425987475415763188250491885399169403372684113416613684287833087424118560621820770517537084425889803848150395965652388751990894387666750964084336264304653734389808711074669832377489891263488115018939907338464256449016588606952905694063021832333259691598797076663246307741448693446356965026198847982500258821143842058876091969756746508603181937490183576929158535329451805281806057867629175233351222414901465999948988309428418816677692363182754506249421712064406725934490812838374688761821437439079325462239650872586873283870148140907582903412517464749478884213287668054674358248125798365746650806820772136482243150433302834949498364453802861657680800637524633746929112825447586301566257795655646714766976443060577171719137994084098586136969036264736047402190481578320379065370861540499073906499625094091682590397506986219115805674422109461888292184769902240288441945889490798124611622112160787214884817398784503239221748463650067756121365634194590289116604350312059204723351490853986617537571980635034982420284827856343036627257239233114633187557435285000573734561230577322857090404809731832360522221241644960113846787593220466783483739871021639450562462448064485248504277289561540650483875097176019779796222892296951704944502471603051553267750987418096032889193111480789581054619536475283827209960876394371876931692502877255274308046581052228246874562773872849327085789193050333207074301425376401470689454146359507277141355428239819694399202386892272411302980755811650588268292976910216180447584943286989826144099408656873462377910336664541333154605595071081536719292313042745714578688244697570954433896003694532779638112563166915766730627515418788485631410533663803408476083481614067566097242641527148224265765249602255873454771827324091648587914236808050970835337374996961323433789473229352585696550228221062371244415635748500993440917404155837587256539445072136140988210919321259961338436347680353568535506421317423361385466087591767831993713532004278766266929222909730543469346579170574799575174466363536542703866526604566378430014480566370272855661989102015261123185721347774160991779534642256782825370593581788717532191900010819278545648639054346156103618818868910331066966661616470220244805403316114939659190537413938330814659778635794564722557154805048486100765382817344059062509267668378957130031377398517007931308419980191009696461766316748316468507582629221906528623701131081040749353300509658639946428148094445959739528850787258693919331398333801809105556035506439281524144529993262218127982938841708606513484457811445675533803192540070965588439779984707381788951999840309433074864584990092424101731745697202457919299317520506609823113933360243945737036911296287123688667134110146018168454902818140821056213756413417703980754012435437345819290875723802897765645457192310103738267102352683152575672546284911508204530154565336862673481434940714761749490340932249775609382094710382919642534979372463425324787902132510854100923814938645466390776001178412354659138901423853332555554289607951469864670339034967724822778571753116148018366082095711020347655134570863242619961244132586824886836445865824761635754761690393121038479385416544843404783731668681207165052022377615597326889995393162007882959421461274857518823953557020655273090644056673468255259425196180616091956273436063935062705925712064417544283780100275146064274923221058464477630190905950620867368480021852700725732364668216720456841394676930906313846532136500014723190296796811688487258368710650558845359864429521359615387719292876194147155747115468720625816456129420134654359982608523195224193422366167324403618431343546064458613607357202655751915306730856234761221220429205647996405455529056223820503760867404779566107682954944280403059737937264298043248054001893450753154269437242190581450169046520079473631359047939416964646688714572107566597657105198864200080573604725275715641759542835832699617788389617044827102024234782197995630256881962214288756649917277899551138465621292344779356320240138637926774362089031139048789650354623874276763299714252994299628702044353248337375609607080921491306606890631231394647465340163173735403042280396360971654919239478831576432176126982266494866551694998507466047734336820573212183334737897402918438152250750764288441514621137343932162086319520530482299575103363572908796430747402391343514995244495652345075937435796176917298797398112456354094339135397742974468616621715833835066055803187304120219980756292532806086050716959488387159814405091185256415548027732084734820657405723067549438935357123340335240816555310175063005391739097442330418260107140764439182122150171332298799414396431793133374558221430823117411171165801908095716259256367333273245029527417860871489223476691779719841998945183681701805709467608441833020656316202020039612917503063419694800655107819240407401553351006409062669094354913653082507424849466314310339095829577996376721846118158685882405035392573071107015744552048220393636091473399047592518764649155139182658491777098077759185671612305034907868562486094177803649111946894285420657093574306412986508273230169010478686780884394507597848903020307778290676181805078201590837885265024945085665627765913002009311220197410973616543381813286242714267867724094240284422004348261335555119724774383192259262300260526375284762246779847584589585130406660882806290708150340495671526770055477316944806148194237097192914191812796390958568454962765380224012429908365383612991341838976629755371147407322845330013692910935695187687475684798856998409287252969795899215385747565486211470552228602518254076165668671557180818040586671284346418707980574310985336384915709823170552266913958018304827985615168644725217965730690985743089611995864359513935084226947765132588082246700535688152157204481571797730513696597492786799005808185633228367992279893056227940287589354512025404503932343081762501623068051116379619973041611423642989307974375251410456798463814096071274244279451655066197461975628817378584265857538348545467937179825218577266613717158757902467506875671450726190633452695826373724411521965285232158072505368670328347491549080266301883361575571530148718264258199259808098008438634637056610144090267438440903643685873617246699610226491942560949044389710718903246388399162496686694848473419489741188773618330892404346815751779051786143050826168089366797558812553572320201207440382945480984239181180366496909560205536113620163107477303600470954051479723662577550567483849435747971874156631022613468643920084064853979586668854363187064346704999857783608520970591103095709277230225075314389581242903459692454759607527665086850705603660299881954790096302902408274207474221360228605086649096346121110995530407980333597518389483579026288170487829639962886015331508266103376728090046793805136970373095515502153284334378531132147451010475560923710391250956321880398933987927322405039871486639990157635728477534224960862138969454109604914087093718509129751186768035054205747242092069136840636171257701306188285121691682837701369986221876027497680402217540527908465292495113080739587630468873612230390830450876002782604639552857740156099036665375980452459016972817636074184100802819140216759570509650200240673891923294430158793379585037263027434190381092257097632202404239092515771005343122478300521308109266394403885123852942346924157348374866527933199712996200196343705825888403104722583466512643230188257608129875373737575205999907549742996002845384124297072369782581264424808173619622126354302581568493505556277072184956426426803864986676211533146544578304006766233056797635572934819099370659307096967434898902325433135460482112975794116417684089219646327355441477669497344077706530714932860881508533369550018509114112319601636033908096937104606506852156932460939847304000876661426045341436176571319137973170270708465735895552891240791488767588433616070963319698874780481044185305832037261324426531487874560768022081562529688342189932496781204038097593802023496033087196608455504714459008539093702542431383455722138596122103856278884366896912207051494036142988533173355906300756073729471452207050769918336155271369616178854293967654073483614506277560197974466303255105536640129674730127833741655220065382646225217716592800384980711812402743805414120288575645611988711805720773370994452349465847776146786744850406545895254049709320463640425682763549798556776465915787947860962223248183073856141929633087431622423925293497736414632296096379638319487470768477669740221475699379168122638633675824072185970160590940636193909796950823378944200189084036274143534128835045275181095803709308882187977635036677629795761658995360249395946049282321830483306315222948817420071392655961754521594178166411056316549014823715641477415317811175231698085228951901523328181064111392424501932519463484889328039722999366225488113595687454492058888941838411828503285845926679768871825897436230342917507587939517875912218187246207867336305698216041779905931570112570647985785111127410954241271951877154955679608518780060906279145762016048144309305969166387564882554135036270425000937374310694692587566865707832016488004087544572103763744025429017150652498064466248924911344811080828665906728563483311442304632969708874420905148092842432324810446730494367965813135345107672031049388961226156398666690420216913280624041859334964076751191145620774440731890147364279411659545751716083394009959583102551727061348516238336073318840937764468660250154697964176155735591410955921562610724761390983756435499267673993250325666409747726163244641498594440030689131790390625389772370066038459820752791697918159992065656482700995194037453069962771247356509621411069572070263150598535316656007281001131535235489446147415721298965851770636085733130477284830698666446469566185653572926022620952412317015633169339161707560867261048805572994895279261719064221919677625067838706447248640367885633720541810093534525854193781398328736497815505901980958744669379798793431608638298212884955016886507569155574231129419796969527336490109073439003486876540800424948288191248787569679825973452039431952382141193036556558442479164817311551330396109214878333648715245645028675527218004356380323769787520146069638767877696165086278940365618121972386397861955535073464506908484672295228662731309432312384637274295495627976156233083928301387160349847012709325564606761329191989702940066549882916963223688328304732771564571477292101702552396968179061300592425454983252347924967754841628396581041916561430758648559876321071566741946379900601380842092367040295382005357369640125886310793826658044636579265801043313048271865882722690217615436583596963958187168883196908847688097053035355367477984493181518341382236176436916898798868298075883844295226841599002052248306048090252007385107491542722312011499613071203725202977947090825697963083425695054236433968863824362755445976709932475920168411936931635885288135478310480563861891533191945089859492062476104204515189814106690612393642418557560408087500376748009918615939254043465781230649294409787701469861653811701258283329409712078095029768020699848095103541534055607295109431207512375391568671018781695432673797015235966947304895262450160393107932265897351384662353773970781173203507980751041749903308952396928220709791256863763982316216357356103877703620133824361014056137832481310103980824032642609562525267598413480242344738542176529273502202161751676092426061471809053301906963968530955242101215901527180507326440717323903580394077873667946401609702625429138308913317950934213665341035185462154602545673192472534103276813780280436623914889336242220112563560239286034921142716750778102520511479490412382959089660726935436915318115920424087981547622508836092816481510856167364135660404032670965702517095609713913407731125076437743872575907589820196901871873312145640583331079365677220975518101550570879506907728861558885182717049619495762557073218364172659803735697484309466777283983727441012471317374884738316444761233672982330346015766581934267532576128054775691137208489526212290676010048703811319017851441963783282169090455316069005798209540256934757044120244953650830233165502895891881361601543510179916163910222673706071257122536594164990632878466256376962230171198638518341110001681384363897752587875080161909529260568687067184808521460377394984832542772440054394803951053759912497113927359557700682608617205268034430197672145571155917833722275672277451497535644317315209403945982389795002879336778830028336950893434568252911669561836293599044320573883903881251801504265437158723991000921987366842536183770487150860724921156269394249630436022998146038956293648108114371728058901261219853278717742627622218394568322780231301782654994106301670598209839997749076534496622955168503709319802870223880529476452065910148518780781229815366508400149883659596412651166180095664010311379803771094634949261779626203374658533048261344690136669537346689631369777936597604014986576679537216240385393157400070047949702035128526658376649119187928521526502019622377741584633184244415797009841844695118110117747521106479443362241042751960907264524716071854644571847963207315754569458284248825008606450868740223882609959226600097127775393798142479901930994440053725441664730197749556606541077575486742228788487068193612746176219419890952569428474867034637659785967115635545249593233627914879645378178313786652192285577482150811324622671813135590776079720453906001218929558641491590471067029759783002017644422106065211260940309716405064948877746692605801834156035385496353651848336663566449529650510168405824432554753930483597455990135346695482199984118841981576077155125448853244417546898365894122833862192174534270787007510737339874871597387725637146993038245240835016273557934844507032503592702336403693296934425855779512634988552070676950066580986286805751763166401910071192325544776921719479499677252784478100663622598609159814125184428410644393012619912553217967950170573667795049624575393172471389102690046326076118828213494632634650946439589450770086727498717570537162910313774134515848308271238510691455078277470844290054337941446820828974235151484941311934829838641874649626970761452999787767612395513654666392139384287050408865807858541896358242606625401836333284250647748764082530787229494455117518372233040425990804004607593285753524361798032493028478143830844788991909167213218001059970127524486470588350195202020102771823310800029308346437104826857149180670415501954584849735228710126694237399198616597099983165427905350754776947397993795291847498990126884701161135015657931467785608740794584333984679107486778476962165002689773395007435994673132307146756271549755951505184078595879900897127496552501009646812826431155332360298148064200502887399139053367989483332921361311593454556062220204853286618848335669387760561300338720885988792156179790662976268138118353402700731698943121585088635408499815855513612407356959205920597964969314890742425275621010105419985519417835705540187529984000269134091193792541101875935145508032841255550618640559646502316631094292484470270024070930119797846895922755330638228258184091034232954392646149686495925281786438011123018849059281975031376088218449357989808683261560742865544573270175550247232680302108321057814329499603458887872645462470844087716870245165716646652053855313404571430758888764785856072612576457139383221309021408371751444241037242084193936647631374890354324554540016174915391941099321697576657472562447238698552898261122072672713685723631459465140801284027379867721211003505143200413190363571203794930002386670428683146712845841343468019562264259939778546409423021095401442060457140076569995477379513126549061821121778370908675859148560081088450711512282286039398128103680453400090087080812977114390652765765800051619049604090785751167585882311261221634201225992550660328815373875336132092996019343722877607411645115169727878911657276662006450576320094509570430297090664475492862516515632704159653969148053325903630052333642806551025238401193443550912541623688400675261406957696253547174740182750244266447590839609581403468215404722544018298548110970047962729856903258996106783736798441840586675844274612346670999189591205275886487296050912193412792979037442557085534519107802256855685441159164854415967183540682748900694210388251297923059902000353123851077628140483690889145429652299201664257294754373420118971147453545203644934010685079755929530773842744900862317503879516095387871222976919269236959295427459882809649697465417649307046259755351364215698395789161188865151740813436495779136680009286619772820234255509228424352972504635039213526990918717860920427727670151532544772997159440135386286375663509681688573056945443514328422827761894043465843886878394345635754456783535195061020300594169424742017203464112813566882206279174172183279908675356256273532357690056581971395438609847454539010721992219869485937449966695751516730675072018531142051672945983848781703204531942087474302536869951588247027516327596359650929492055182535954422866091366010175412240462105718767317721478731783049717602458847687888477711507908991270071406761079009231451255756857345515353561715537825279577775256147444405616331386547554426734199271480763324009133412739805757807502129778477046867059746967842522595795471411367284334042112590818739061993826559937530034882511810506864934448009785874144450140030115788822115907167736328501888499043335920330040420663224095934594205052535697438606045973764218460036369697350477244963179497346137280004374860531473745432519148246062544888993366000990130519769978902661408941380310758577716615085146374764581042788562107050578229108916065562057506301051748413684882981003301616751845835710722873282089866141663758797122683312214742577644400835796942952276532612034546052371222068977780357589299725469431377012252238862273250236808055900008688199112029855972389367747504016265914444250875133803017481547779590395751908059650512857347416755422484999244505279020941402335120753319920555623934052978723237337478827388809681921095941115997495790890796040549003633899509919706087078290604638951337719490075049773658943258424030631154170245111421159945142997402613858962999291908143426706276417414772822766862598629751029715541018830618271654656653840985779230216440339245852714446827925669069755423191795683005781691167435133466937153861194652877930015282960871626245649696834249729812327606120873387529617357079791759655640383983803171194088048135519644470107366698681623457224508298841712306753716369338672403560860849017703257719912014367156434517829125596660635886535640232152073750530019147048597923089270792695426013390456560387473763962098087366660733303499823719186677885162271578621498130230519289842006465497280221784370918299911770587837480379937705341433832883824838171727558537110214072346580308952563327380306302743163563602748190801297397725328803986576256159283376876262244469486588197491566595350498266600191049941290396906036965276801530792190351251837660836033106471257372221172076149263576641271464144362902533327042263207514101033383168453329945394081825310076187143560884448300222618162522991012401782565194561987311369721842268738554916566075199348607097619842987551186532007648519954727893718909073894752342302077211507689513393980403223097529674297727009022667365158163681138071248715217549715616843012774411088536911355613208260303851988826367153967064558579188051074872481152135956090606174709663038341673341026012192857528561404214602247798162229853144157480494805673934741696930293484205520923490734987390699009875652513336956030059954385248674449271098146169574917309492753545253862218116946276090850972420176059205846575190185497190622178367038190757550229380569394317558647369925632615417833473606248843400217654736657018716044482491028692157521394997945040077563762151284994884448162007023102930219309370099582264313178222369636589216720360167407361774328143467348532070764378236204057381012145993203466774514096899019067845508392605381991104988751119119875610948191070738097527467902280546528639451687091388461343872329475842914281349861940627194626381355948544153134994307448952134039770113481855976306011343433275020687138923472073024418770767911253594537785480170324725517922842202727883963522597270462034976487464780714317978259286432514491608432956848449943541125109906079198418542700093068235823387951190952870719316675421591447686096923289736004685131042440609484863815222673353087504442631780985381521604946173750075554293284757801438456895883118919772208816159480196858322859153429514842181149654700573733185103403350816186517344181796032906682400217806754122511368546072876706789836968111648221031267916985806158614508944703835444104564527279160442543277431292905491215798736288253195442784849573288466780765677846141033015557797814202556648291421125609837572853280261318008117894205164632167944439887986325185050275165062465076660406635410387914539876453851025433696598817000516738129354840284272619719128069659912707222981521398906636987923095330694083789933038638336041751380958105320324026877882375009383398725146280813534946216906805878896634657744698309150786362194257631293247655444213994257692212129488315013424748057336808396947904880535555380544398233746072743919008503183213925079795284868166325445822246085723623105537977847860686551944190664337565652361435720053324162082156078774037092815756987696375130572892597701807992542532387365744779994586242899187071522881431814530804153722664537340873284836779002845676306512438654285933144014292000356154644899905311262416678790874832631903980778885131836843661112273320718401418829296933276355026336309369259115581089201935473403104635682604601265792661623704432637098191016498925827489330594879179139371733366098461519477421292234025233715266113324414269235701291070574134576365153390086845805668398876532106907180109487364982710734051426035612943918144115769912722757702320371506175509210371606713722768861177866228793480058422634632618345944216091623361637853612368014657648318660745646761913194070225373111259699958437117444656769474762497545738658295705252270487446905452225810701779697176707143306745924676145059651915944298259101785029215363342284779601657595048837082200751295191677053679069352605243884713336105070625071574705313868008235362810197894882924615886729023095071541918528667150052802442098001347747823681438742585714064292093981156368119359856918738949486408679306100076030696032087288828404470932693180066916547436430996919521858020595005410083809450044571193691079149376978642902965266501382707532489013385494653289527436268366936013488296985969624252495007728037850967882077508120743268156349447893343660638699255827831928827004490926726841938168852071573726165337177856087835271219862812053776090972115893132180038307057400497069379383508058099978142428206329029134903330944153071359755887938353421635720228874458394441576020872586730489855558867046869089124416781860656568132877286982284158669240639243661371208739816773595690078031094231172102757428352763752266392585223705758770527614663424236136524959699413063897278899963708898030815521875103963567718084309199170461281270531651792052980166247819154978289441262069714015620503536384407379409584439429801339793777748449446763447435921214666381861566833273935956356084916865026584530746856306425154079575805008250091662104147965985420645948064188668355220001400086542324616775514784404388492008352114019328618207248246938576136139466989987440618282978527666908844962950753673082594336829854205389081277824459487989845855631288004950612638781191501873924551732743219279893584880128716297040562681506667283471658539555057893190451004838277189922616887888382207031404790860009201082450460928402046533696402572415122364993942904008542461742191520794729479694161558284980823198707207901982516576308550817939549204921644098667902026937666924364939483387238305233259006506579664172159403747945319399411721985732223479597142227214259822086924890149907078552320118498062325100454498541455838196358323480716118876107832881741918123180662435840389227350268583206493244150172255361393210708867232909751617026430428640788382298882679161057391370510650592457055251177132432987995535839244302541785874548364555594345422026599209772799934841980477411558676038045723856134601622087241797774928137929318872848978209741009719166172973900388449407440736286536646536414777936653217569900327876848197670121254340733022928838000750931474764010563507706461317978305936928813624744147281783591663356926230783501821071295610045103248439733239616815323441213644598649172227170532493203158631470166177391992696269278056978091225586238984911479991657698525542082926514996128146108573524301654385848167200461052560506424964800758050690988204788666520828523059818223372662598084952257621759749150000543541343787768489686222104694005992311252829543387317104395500665525657816251737473222433404575164338250494220778302452132003115893347870786989399342994292867562481547763976349594241200962836822946700066781873274701331021277989763830237179535995743773114250587995550327114602867314642560936398778118127369366892906769051694928083414293391976546046655523388545887384662076359278472144506668267913953737955158946754025635419393485166488231690110393597940601997136600732267672010500445419586255465430075974564970937550334926347959301147926669707249317128065505020459321768984357947708412694902151747444874777971238474582721452506195275445350550575020910847496725121218173761511324605990642110042400204595267180086425008704995042333354488646759471957084651384335274675666916382512240540953775822266633637115590720878471682116709011906804645323860733501604973292039728262007872977188607392599172018775193592100844407037393952312756028687065424587478481264767880951678777472283996736083649916292898316721539497154640157441234965335211030119529196517626112617311833080231134697279484241673996709718471775848373834696269783696651024909497967084622884112178178379186769116443107572018348751815987960720043292047875453521281527183432140070545474202777538810236221134860255869175426585063569944399219689600713669759240763094258908828397068182789357881488818519303524534591063434423090443495086284780818955387633286105143419683392334926744265198432492850919511668244269787860918881711689345349844307820476996480891874679091834072206546835723092885939857313957001373454577383240132907786703267158429089843359582307094209690273401415759360215042792849354811877371493249009761032295585706316738382450778815607583783797603615699769469571631836669947799393000023720102187434385240153577797236555836267353134476727747804677197916873589114472861933573554717119277266718107929980672142901243525655023451811825339983272608731663020445187111346834266500254271074004997897286391518565117209457510152249027581082749417897567467699653018258804337561109356381112025019671612241619715929653658812901470046564452492557617015959202488811920412583534135292077432044640549072752805017623883391536409260290934977237503414735034358781292079764766512598500516984775578906274672160696650672481370106251960389719233718510242468587756786145329403777871416939575649686898047574067359181157009377372573881871181032784837686857489481552935019292754261792860935939055818822801079050785773660378339283312258817120545385957625851968116883966655914665306094225566132320352275124773960724160663166852414980709670733541659812326674153907716424547322967324986356097972091377548624302550069661609785147635092345950030595646259494241130376297401060799600535894903413753837094615109853251997458156543649738510609082936207518810368216422422468307332698603127991291618610093129283770061759326157654079288177621453775733175791149671502667159425700835978607938621703718761580057634364548484417221634522341893695736348979133793334824606483832696648605590728429363471819169482455904158929779119135528755463118283520353285018608381564371856732696751046199971042024245607080038437535542884941224268202458965732777781332187243319449827105106391458335559125439153701131605259553943088312555160629525996061346548061283466301238366488317927979600029852410304374940935663403188607824217886302152086596404898036992489867337798496095376201593583780535758150716688500912804228669167940197369479364164404238709398624405188513095787620898172558926629109028269808992970350816138707685442299108474511033310761711115870672275092072423753993525301866110458065551712650168014856151916513805842595919696782637825870257877400302638516551082122709700478585500795408704350285801687857413145671075934368163175068100965098053035648781405645025533111622376240939753788195058003155383061042563028191432435300777325419779246267334469057964616863787362598270824411150039326461639586733954301500341369419033770275242293425850229708595923927829490040406121641454193840203457564563274536144367348540939770751090430528664813581571208968364455141636623050988654126749674404832230252604324073373066755052270738820354540592173531561953794420969706964691658610402953979493247837659081677305530230051492602402654220512261280798845614773395945544951859352647817459594256578538220667472700719021403849270372234425092792245578473238920258177352851217080345721459849202012056447713641907928161560065906373896467012203959935596722166203523609509465050770923739859608595722815102564576800831737114401707784889861496046151377122399468989357470165127116571894121292670246764354159621359349711943170854551399502271890072883537626214252015269077725769794781643743021109556669249405794978068220951516112549946318074665750248403645477150037255772315755791208181062697328675181244886543962375458812965446918338641328474525727565702212642905612382345551109078197506280152144386925654712983019800265360176550889534497123305067993269824003883503927408295605785867588243675373027244295738265174469496350296132935082732022525286562939719129502044317768222011185930668626035033562832191085602660232802253006999076724581098374775344939656586657615471582271354001409988835358219134635902165666265771102803650414509628741436623047354549178149592960231206445802162669526922914763052444694481063465792222055662755974719595230357048408549191500305537627013688191677655980005056888709908885889372763658572051060358677763675191198150960601043009020606003728544939014517758089397333462877670681102237243150509405730034303870726254042656086653610717611856491126850761808871103130517476858681657265370580954941095688917281266833064254355792299868390640696812048055663009689592306569235067658950230290240582543339067269672741089384596095585164048769621713811670802723339594672129293939730794953561444216498372870980797495036849951342930680478420107923423995972835828050046050371191034601621077937418668194243653207740381707427070710274133098276064188129900589844472952755988038888374184504515017544823803038635637993886373492469790332355435190328676429825998644088798049040517870425469108102530957166635864728047403289233089594291336943546680636644178982864355693961927729838746908123702125389890212099796817116636997714691643155433938714920657298350100265018364281621166878762605704683837207951046409119949274581794071744476967552234454453486820733926272078292230922654012595669811691931780008285968414740551330036700513667448183006469144625788182448669876136214671513167991108735896089855352766819837105525636825308674378689097357876486655626499599929172294189573239580654878003602573377652633161208461703855092838604538550914352909700027735155408069284488110942670912051209764486519917378065175940998250214856656498270793439886223399555721320706652357704762594813832414306337445553494276319676104442193597774081866262689097250695358014754991659452512352055508007994509725709573524108716272765859548686130051902584266135626859365520462109580276290758134670826782053363474583411079041260007066157729843315957766280154232225262276076053961277201455978235861079883827724959688800561642416552677347917921045228718270819944156689811074852850319037770921548622381065075267225056909457273202665669654154443470138090379592474984079421663764972347699277286653622509181920608826222052731469258331246657328166257224700309704198051225678529334602396883408212417295217727139895832489116666626753881238728641907740235551917408972246310883569319208499537179012141045545270371808915245174880010601433076863724122047258703205583637885435303322838002302203972770005788021825513839053537442222013922109783086647073425512525153400418878628783085392710296656852650900911480178282628289802227608047675820476080931427783459460622967812647047610405467897778566459880363971440229349672349681307114515512141009886839864495743244644842585338192646194615181217085854391581795774356834552337445427328349108495663345853065269288559657138039738703513854520643486637110166141032764987413054343195585097190621994447167070180562300684822805636435606457526882856829062870329406260749840637060692839624769633459745344227575829996042018636135878777901565561342195617301343143483369971267735531823838683977423417271433394968800484186854835612160328890440737802687407109149331018945358312503040104921383071386005581117082421193257192833928556489349484476102452956103690125970807910362680942929178662081866209240905083834893919643807536105959710829331363027140287364767903787632159076242963534825478716297304821981510259527522419922121212883848618671993973038761499596566422339226396758793214296089947209683275082063262069692248778453604645188228105532604079880623500062123463068249530611442122499397573839355929834003834856162224759542392079591259442663378153678347133965150352073179395779111124566337990828346631989891218866355106413928026277321556173002887183791989931746217228916112826669178354489511495725806217921399255656176675945185018046342857066987079891304689483197208094417499464424768135469716295468078934642861232347200258555537641340022433525534054290530018823175244883118886657151990056942660497835338820419480052794400809832114735639471992193422688384910278158002807454880837025353050919004786572025340522950564074612065038599365590667651111435044282370820436306489415990891873607406189877212298654109304289604299004326964018889405938352732339784172941008955916356066350894288516585686833482704302122821736816930990866726548356422917222055913825117309291199412390000680191601795269067703973740164177144006437767373151196598242916587105915723556009885926677789653733308180302579839917003243843551631316389407511787379401995718636344500412261229004457717780779244918993126393429453195878893980100291838297088144248038719069191514081620893537961447001613117091124347777416308839479401990990051398489568051001351250370008719194984016946237390361546004553786798965472301247414285444510446434253745625245139943348005737273426967231827183699072222603983284646602161176101479568224901957936441763524843044696746162963715559816524849803379575416475241558727781633555845466778998539481550218774876022004789997315848135819299638720727457220464316411867284285874467571144680611171675218064992645375539295359722115066147466080516249513156903925253874354014120449132000365456777009682182663324000899001475609477642210549656221437698414298545218068588485243506669806622936776553412061732979920833477043215938893779364840085120526097701811289324698930093571306617649631183150114695647015753659637860501748995253758769699685883604560416297595333285814571973363800888626131110498864657290515815038098725832020556724793209939028932661923071764979122214865725507872224061066392283241265040306107046469996544865535889631219202306409320521526178971578917925057776755430117402345709574441299406674039965167217429946817959158548786578968771422770284400665197452918354770871771545054023514852908621559583889854776547307981795914554524784175735806339270547452314236846905024048555128593938798044094094775931951121589583587561876257687901908174745594192283478174115816480374405807044489639740133885913130635828787582344233849333487559345262497067109807764679369130137630607798062958846949013049941145441854726124885464676618736020476817423855467442476556783494933216221042774231998504375179631979239274393139755280517290529417971437171263706573747330116486354451265430738848104182527649985587612308984688517660355078620102572830282225036571233675332100735865867869809349060840129112158346394486393614283313015111210564727089932541327588925024398783783636177495464103516624666934053218322000909416623734698721421176539687474703608736024812019458303392210158463706546220351209232234926002431532882028681126857164828462118526903781187781836885368378558040976017809341716208447545147489540538801025927181363550806329034404394072019270206883288315636007307660564989482644901880350763578337709363993329181244255633746152309088915773709384980398062367511126007157909891306593598663053631323626490485873913177584451741265890274258758320450157360723086386870179772895116150737320667915228938603890063328550826798980661353268578967783016091803999563649343156117368675912483742238315959570831794892080966169901896836696647217982116442104016451615015438318714039289494915712867488131971945139311836138600066955240573137700811153894103293341758360048425176840667124839097607521989366682483115582242482337663577271562705898030534391160053362078115144424814394865848756832664625072899193732517920905644964124554333972026916045231817225462601758613671718211622472513283284277235105083436600324924778147739780291059389602611091000529629150609712149747168125606061420610494226234356430888205534912225855522249565051705983598931081793217626917584769306244680616950764489600007540514366675880941756197118060377619278700266143793245381505393869776678903408243465135966997140177599007244470350034925870779029579916221228871068374644446262491677681941784446984108442823482177440835978080794918436741155455344631456687020997642708959739259070198794032564603740685475046017895379151731965018722845844412841851662333523078037042189007620182391882107622212438760638754681821141127047569017142813388890142572841988736047175655152478312576168574723079153680241533915661088915278739938156812462714281972936057846275618670719320421756731872100989313909256274133401379929722272343519497111051869605395853577984351338359639183042065701616508951114787730602179356691417872248721536268512774201058495755293729101282085321520431532134843685639086123561712688125916574404257652392037578215079197926916664913716889432885987898041514587631087970090479384951186990887795719593080058055193392191443423166210608620383076565459526214385499430054999767586778500201061015948309036575726773372480826790546672751930591741710306235899530275941227631444818213913572334465393686354308340617057753509244116966398601698621622098522219401200006531958155838370484025440166148459393853519168314670009693984242991058528405351426838587093848558264708747308653811190957768526833728952208444182136996249757727987599203340976863727285326259241247777454682057008216669210185288670262761356282967640245953231538353384192069502626754350013700313276279635497212937864681023281246724959565905862018298136776142116558686811766590428672833825919301767264763443072752066830114694763190907455544645076668599461359931002921530615223024672335830739381674864349766501336828364099267696466441617226195689939370614940528885410122294309639785662840775527000775547302962166097828003504092287156136146512635620180461707370046383506012440142671705683317837043049865740868630603996808423731114665794618251184665740483855448820074882564471659814414588462205946550112250848173105043687812320845437131351317567120469511009666448976298890979370915707811545752947433251586349357164499803579564785615658634537219883281200218160255452480429117575910873668147768790180933627370106776140770786922035368683058755869661802965209899029699263701853314633756869137263869744401876776936818827980732939229447190350959102691143276150088191465701608233620824752569988720172489508001702081836980306092714026202064869780196080129341827519354514219941499379793020777125296605571524956424541538943897347209767724404715533999576903495874006950907205228216952118163108896910739878180930531792904714150480845771163379107349139539145076459316095179223169701745428382319667896449558415645476300200672787352670882093556728835338107844855342263069838590971587169650595152315870061558454496376657525585893585709877513644186261858608448469910695052741954235244499915858163522102251177915703065221648103317241458507647122754556109291918206904750604366005278927830912282181796553888379022939725382743268569964406788484508498368875466224725473533884095118516414864097298026584567133585774878265506966076310627242211644376525030133352190925621192708930319807474282486532171574399732844429090419879483373014473368907977908798657803125413046785845426560274048758123021539906703388322637874975855069953495101995130169342224776605366013843658113445827065012069928810809518651821830350368691875969128026238017728739804126199898879196672535744540578025092030876496510232693312800572075918234451941521667527205530179617147100137806988268139053982861602295816942202017021203008670105394639699024766464219841185622693080721485646168533805659613325563443153403650609535368013531766267583699264425431163760755810361976873581556936899334658320679888284257593595904256717614556382885475065801556560938817235974930503877629610171236151544737742722736119611386421227466360990282417113021994489986175536761149226185040794720108693915603990756556542620622099635750930438440948876928697771025207296138988408718464321108225424643586325898958172944565286727422614339983944195186333746174219132489030192525938990641844626859665490756564194682446375081560285037533378693190883716320811198268387185585234575142145718046192322317307076705752659329237629662338868325923708725074458791624229954095288678188938038805166474628310232184825307557586182516578764101302560293832983001142921997456574207080858782245700804263461416023346849097137519165000862210961648150729385936560579863021581320097087051545157434602710180280762430795201140732701715979934327710191907825460210200654280274811867683083326815608448286232426238306465229799863171799721100936926382195526944872519179060278081197390888165285217101291317263398342688418731602197300860032564783861549073529803084887496429658505281238240162750102661953901142198651494599647081006631846876342425148546252391088095681467240354378331638929404176223134915161966785226324977595112547428812252621882212627668636228690295291220186212833259674125308940498037721521777328604763549405377196096920815297947648356311567918651388390476981120786770949815080647984486183641469010372383160984155562752488769305427413861333248720286008968217400742168422783404404023025313336695567886473641607962189734448822782534964806273457413326428550453070428768058699787610718524613319847068453267346040678243516558946638498969763950156062486634869780030577063181064865780166340639735646376823973654863805389997815838972098845819134754415898383449541490736591030754035082051468953266101317681371195030650542505202486708328013030929437717191493163732824855618187660086009156092257190204559782456842422588272392910093608773564254944325529430538679357129672101599174263915069650965084129382680379893215682920514448008694190111179225710947635219872400586886029643784705342267709858556811821411772567534883573598438286896325211515546626463060650493253510431043436111060453170650590004874933010514093656068850796621224488363230331168888285135655074438994349754616201624166138432701279074983698592306127176025024112459733354771280584063692913866786342377191328249752007229461265280948201468466395127673508060337862307879335523371005695463890833073210409692289083681041314897867267592857089675854316993259765859853406572193912006070333985246344488223000810208344848113207320250490179316961063415411807225934523458634924598309911474487471150732508114643346451271909572616281206679304826727449694500698730422044432625744074359778730481026436029754538540514988167218287505861734837427595544487051641136743933060861581580311816430849535069756581919567398960348902493359065026025951250048021486304720936190527099080423379682506282585092959547209781431153614947715173834190241279992344429095088596133885396814364676386147584739852206809264237296089160812624883130120625340196150973965609735508524566364333521820594789955644417999003110368134874321802191213628791310062485345819024488023332028221592325773367795506596822261027013895667980304142176568836152642079143368163269014742789442142280593062800403736921715832343767581950656789547652273128976761051919597331158971623558874885168486466518339444220262121112532635615795611944902072799989309875733205620171530681619371442406893362553427804757025601816146364764930282634304380636965787242058315679754892604152546258986250407005725759965370065647754700602416062786679478593810214092162330433223458184973851015749989395768627236267798540152859737942323656895689632057794918788458864471736157518910846363904450145696745374753329322078586337391673358315712746940875767904761417136996305396719050244358519604814823963670116954557982833990440406667707463635175270825569057278411787249611084393525902086069121658872858392217862625977332780010092677691736493809721056496427729743601838600664454989931964361610769150753523676827730006888325247187056564501059833981279649170521251546291762658637210149905019950765130805437041716875458517544352520680951570403945655665336401048680724893450694114821483517540462094951048017768321763527290444171156798156473409301166097162279794286929537644290618854609486714168886946271979565618146021849891246630393071330326703426274457129008468790180674379599247682847589896877583736963565607491009228310327106698296242338965063572623027723029844293384163095742048729469883939458491870725406178625109705645199612475299645212664858479530212573858985980127280978043465884817255482603875452283523372531230931140996278546744617521430876540319146899952473479361597241244190068318756289820976503798394001286611525915231266347470325793875146674960045491312673518967337632509235757376727178948661368863663474770620835881211686808317524042862013528266903675995268477084953097335391561318275334586024938000432030500255116244648956167932450576030751259499901305318365730026783531003039721953102312189661032180562511486927981672051577577005391915832565549631477947851009990207216258744462267392468756199229863504941209199035835604566226000615622698126454409452638400631888969084902263582359997545938823505834015255236596998416069563779758874025068583971139906530152311637347196692890277473240104791343525713319348559686240060180969215646508746773380375698033691393718193417506668258434355221209632252648408048165453284203365154160964499388297262417365963012106581057828943639561743378385012028430951040631024697524563679935971850121430450554756786354126586106604674890396002937887220010624122490378825828044444861979967102051759006045773040384782617643228826884696734103133250198136913625214494278127725607666096739500002258903269823597892798609443080246459893749381177441783668048844277358097633156349596719224217479410014532387725754366556062450565762111840503076940968480771545002820513966441019749277193213481966375158661293737870006077196137968349670300366933062120805699967011260014896296045455420376150537590346824611337372455905545452147447793130422480378959268350587156131057382373235100501264269738990802636150900624709570455016505572810868802224437496075789059436546402864866752902251863113890930407387492454057139428076261456209028555878547442561238588075580332333613117970724979747069780002434127898467061337734063904393860724437489948554443050093054177801751716389069155689419991220583395032673292514848574938561246293756901382195480621920478018729365403091187292360514613840437668678699141404637451747435974745238518077356392826657908207907465974118345910919073849861547104529979170071003014046526113734955606455382882636532912730460150868354404957907813275470237962539558824759390365120201572913761235489024106678813453107483916564296178370229368080288827234215554531424723304326536995332057332576921355997624327693501429945912743550627831847343282787113562318869733424220397624650863179073691154939351110163729463014643480641418167820820506312776433833610171195550851020052808234824247108930744161200168723130726937416651123442410645565516352427887590118527375648420955383863081568447028365425485815908475906719895690673797734942136589822080085459970227792984971906732576556271098180138714214674079741488470351991668205448254916647407163687000762846879481663423642821133823783968800540814264026948244035362973877945384642325674886538458224780256472744982275711706442009425542528938891226711597076011238569872131062611790492423010877297351941030308932244874165796858227837341260846528952545606294020859718745652126656231279962067469016146876512946500814440240395488071893089145686054752715294811082230951131898005376996429276907331028715326335707857572664309020222882081167245753914825266293717169935512433820148927593135495120508229812474456016626120609721310601472906464984537273153941557052292996875111576703457822459061597769178026284066136274341126145621299764116822592100303935106870548718106834136909678959519299881541656554056845837329762503159185250194282160320878038226151710105797654654620272330463514247252912594303326399507410032167993264459304466646775392536716284830191250210708916447895799211289473296546965291433701617864316255578411825646572471974745304383558359651992791556456775757793426984400552898903349230162589884588447817989089353520430010597415355001359569611676261916541890092579257628882471858980351466846259643556047437146448555258282655868242732977531595646520317793767965993636588470997192807834176620979425282634578669052081972699418431386750429557646067067483297933714091241149889057256233898450488223283498532251817009932669579770390293319767457108670769577315438703008902913273094911060362058032127835244745140186293977873770411290323770603341507549992239412911133706285727151046318377164570748098663178720752010892169130216779011740387302425050362882408166325601323586119135768322819883608838598408719792384227263055549606108188037265504217874835917499029823294539225010110556492953778361725835649762458066463319990139472349535523237650508600914679976112680796146208043679760167872140205655362912885491053684708509947098631198995596230431947674071270940430766202504111627183414376947445072795347386555435943771183038608650528993561988001845800786154529430648296330271201770621722673057914379803445294669696063545644633565748539804590866916203170180327298197465089435452779432915883445751007103914779222791956977817145841468723198988585240875271304940996788221713507812227062716650263962319088512785470475188079230214975074514913472649541655774405917097147114068456942285969823822819770295248569571526336995257807266189156795356819856533886602491901835327630900582791526907401115029795519058573056256636608268717029089939858155527457459641601750143795142910063755551850307773561797031706314274482341835522113479685920814881661465180126912169175031986408283733149511815827584524150944693829225794208337864405316598424349996054309172567257834515037308351674805781215304299535335873237908928655386655361490328672696607327405182678367895115989831893941024162506645143111450911376821181863338207339949280493646029442773690314632103988892683095143853975856865163146731943440812544905001629896192878586727039089973563100664068800996674765557487951932028830348249132084852642775500651534558511241454207671226079428555101256131965367970894556983694310130801240184947849163618392020700260119504327932182008218758588522663200300034613879218805839115476568179561900172800508754048387372197827965842182130947462793509893768816352062784966176569381239777733776090226289466604250757916417525483464466078813148533412750370976301037291776176811778800689565167207494848908378181964044355586862277689657399781354129354577210110843396985378647999828182271099096190904832014767121502418142091586837185262932581532365117133744045982605186280763181166028431313437306887317618459144965627933151393683154063017999668493321992569172534072464107139332332401618334212072112255029018619227190617104455715450269265386253829689144541176314476300327993363273537891990720671936230603779082462796765959349806938785568484155177278436132867613424756433580836199991633315493208763039424068310751283151742828274084556226889953161934068689327128345302828574932682353646706571440327578206285724584344137228110198320327922769709443731315306038774967407435787375992015252375984573085333476434773276619904747889091701204614002087448024885496631448680765203944144826357686957023496655591385493076472995118853144886066253287974336733780126300611743615112127750221973812793764648334446048953539283453501424233185873805708639763788056808528027092804763703654211822028467480720374196264812467707994002490752068514602656361004778999193265901791729060534342324404694389654490121564026260705104951232743369555937137671814689970846471710945019865221123492033379224457412548662524792176896324824445769680963053649928347716524281445188876065215324755812369274224566620288630387827686521576383740527503760438063881844680899607472076633385486798072929812145046860437264334221152189738725303092502166949028442304337198862505301629904219098423454807403058848180925305878576293676161992201947996594446795661309826029815310481255188967830349142089527221022372618731731840714278218240253663585063463508929513819564490542903889593570463756851232191270698104224109234909139415392560521226862935408827792147565376685955337312719050733264007715786480543247893047571148752988124981493160392216334519570283663477519223004297823655663532084286233564030026134428897528001263518679446203079646336256386372463398378202245400246768037251775793078245937330937143610360416218191645321147684064351318027171689266895200471907473188578757414272656299815808969402208645056245567074394392328850070743792935984482659236761336666548598581337505697574095633058756978053475832273796853282720101132384093775441932869849176931790479423973823629275403941732970662798898869161869788868249604326697713516331595665647756600522368118074932877306872500910657428840016182534027568674243697133982799057628520814531661844508632079791240402953641316667334053794698734431542479405957278040086976421468778345855060717546578681233048102580492224941478020965348502024619729220438591779446282869787101624378336975898929267372343720959328284000884396060642714439148082880848016570454029682861284951886001202234296003804796811593387820341979825866375620158137481694349597336155549044337675809754223669673469518156622542450969368271864858981423729736138066380033490035662458044404526861076302001426608267567858154777190288613770654531188284486251743819843787557151194331875089633193191882855950677353067625476464837973692072557542989329226208171194023915978792788913060151778007329085535886219867053471136351274542173892393521039401646370211668488203124164781002302120289720175214450867169081962956088092983043288817070367332626559265878488276904518249019191638509921959181694308643767535007961298979712224736544163181699833629380874903835566717308039020355511439182929030356238835033419780743762468994899669762984309375713976334956629268333933584585574289597693506884361194497273431837785732621619304526021100998864564510145427031691294117852613050070304736803417439488753576748945388176097054707522156492488063670407630489241873062459847896194969709873353057422802805831683363842021497940970884811443421175650752677518746177243728905057339001595724289786321876521503130717462416217948525694772106607986511609066964561253278251754522021415006953282191158854686896325309386190089905118414873787784879738232914366680307707681464810364450580035576593614110119243319633965327085401853452637652434119236051218728771396523590847183877510326131957325088116604802823388037515935358645670230807035247138596732532130714472016969958576690760740542237575089418056034937111073655612864821627087412810637540098546652058002506617951759672345433192062235572676592152613356285133776312255285156535516271113192005405736844323784412553535083903696947565596289841982808022798223569755494367385402643039002106666001231743910088360377798898622196692565285720839499227411233629639609197478942620568494247929212201065602260424001974554343070196145438010530137762801248456586683123680979222272429939424618835394661264627472762187627209012811353072158674593457118539788826864400196766306757589634514705583388184603357916758220064171739009559214879357152796805350161553015309332619356430777406225181705878143378461382944985870564914066204217595826241700608770194980724229108309946942966770721638763416766783842820106049543328777900876782923959807224208933616600317308089109128385651513953391242419319579125474765962572325302998929180519788017358300478728261422610807525591134445724632148198261871243856113266133282820625329257274572600622712997447092417924600739552407801986965554324193288871776097363683299609108830153566825895991992470293125832574402521881092827839138912551453828088295438372247331724852387740104663895011025091211113523915850196999834927627535409808358729987968444387793944359139997291388761755874616218745461190656488662175535188939079701473820155359526374039311606968522542268059190097954708554783846915996967632373639612941544736323921510922860070686153321634149116036153579095481777971535432539727797827341854151291379108117740168819349715666761735413398933552949778645623207995267857950509279655109238694878201292052098101974304795989213130254310659840677322305411443260983679039825307062388495320420004189558743636788804421509609831877337043461769834966194313017002762531922047936172106230204837517541506232595736077126062675863875602946408442748740535057846611261540121752557408730450611378777819473303832158071166173950051541746166902578731479359067071732313446436071407797248481893586778148001303010926900871976308575558492466749874232060541112530597005909281135853331998433582979923192223327900889050679863695720418566313732206241333129575494276819653810632580413197956980766529974397974359977798411886967244807845738936544516113049324172460812601253796484078892346161117179349947257884073251152337700408417614680542968240162934853616311260412223530802790238030416943805862315585125445091789411926970386709019691458592161988294710358866301194848093613221691051472220082467085563057246703204389545173926740899515870623555252451123815490117075785745257644397531438579227807767211112644552324185182238562407273723589210458874878179655963234019603029946169867160773087869501280677564194167374050962381866838606572539782202167226169723101899749311252624752356500803050607748346298480843997261561633710129599131429993388952210743022963771492515138700946938413013844829783380948256650152472609035898865720839878860237476234526080959706946387420297146463176844058377154022317360441883099574486105609068674184515333477126181674757113194210856292968313577064641734844697627262616466492506135600824909086022306718086578084708735193977534267741928941707812780853695129261960714311548539954065521455213473115284903044664516384957304633076262950139659502626062065039430279277263816649219526064439519515332111641909553824519689726962117144997319868960259602162796338252249911589709944590084490689107306953345990761684117777253006665011132080153802407482205370546992106413313498924735787573791484837717414419672552998265054945631174094382361373016395438029677524616420483838120985387444601507988488554013299957677668659946594926169427428011608554187928960941481526173223983148614421658814129949757277361042581940087023234358966957820988812006385681117028489012933971022914003385732717248919719671186368262524634883073385021376203446832769964364589456118392854086435102305358236500265870853958632921758496223775146005569720610426073005412841814166842397853210686034771131430441757103614100154764798911912305236282197689234883991983922779957359588002199144153223938728025629592924979528212907413909989092047783507233275700405954374322147617882255575055936085598590756537807385477394546863112484653204418410922762523910186469260844964898494890537532615496007774592366781115383485308075513604153268738346354941157863488391644518270049611888528829529458530362676089930270495180971950140370979511248670681358366751028217576119857947561764894717096594238526326443608737684288287170916332268712770901527153808759580492805204120555227252884038957252123333626011594118805868245358943213725111457821360579721341006245852692977187260758213430942240678391967770809879727511389783948122932432556039111777645350080380998835248318534181906770272181429378285200025355158302667581782772310985849526780302932623662306249816353140106534470104082462490005157008919120898679181235878982780115107931697753556461241523813151516757659528494347973944362401628120977652628852040416671744881934951810788213686916287201626386208062544916397473842063216473950028457638166211485790791143656815381449565078993186162198124938308429983324179716027120198165594556845157102121010196301516307014836754925458408211026089792706019588077523904155292999541603499517100614034606820533266943160170266815248007541556369340931195342976806993740201581871549532176190120903712016989157517698285792541849066338548131693514244145619440464141430123098278344284031829800709256011223990074454183494189660069612981448075092124532727866298125130513986898902077926498237633022694339490605540059402441319681398316228183704441028436867117257856024261677255710897318149808046502333882146542076697271353614892505218788836875414237662905848666197277355843035529848218839885881423536080671148863213164576004688375581668787028993261493688952859795858045732167677597784574923357997560100607008637244393536229591420655062349326359300478400839153914095347472624686374652946538627117869606478288331756929943398773749449174049244932176858865587087109822785800175865425030661057622357595675914920991249445926472240607036744160024631705696298381423334081905053349206797294283048092246100882470382975663614952502715296169014112839142784374614854626476310929975514889911566930204248494181183314329333823304721919898974544815980502972049671638418807028978413089755221343127440846524933796949906336551526242343861827929217325554522656982760430755447024070737203283431162064929955034364076962240276862883881081111869368004288197636975811070214747510739979102773062681142344837602589381773969729533972117901673575384476050274405142891472373958423671375173083196512497405766307387332144888174719707845584735779897447851961179581963042138114191186623848269331173973255007835089857566629369493240899577122263104702239960597300645646259676963693220582154828673882974819186824532754944183225373700302249428245905621711062891194729943695894767711762772706397524562540968771661228387410445158021033002807120699345793158105348110694012372715182902888704280678155415451078169433124977236090044904304983325044503106954438865031455789820895642068374181987510375376401453673844112002397872337680994640414466587845988989678110898592620119970700102887495905559455566532388115073659252813169835038987247945297673924906465277420222337583648608942223183940142503949272072873777527939629950790912733595621713745989556283400275821953850777748878312743484666600303811183674168393621857603353954366494933599418532049404447480510948671200694011979958124155506734077328647708158121052990701196295864006162974289429494531055399176677209888140537723961957241098652198416289221027547642074583009735948628109747980382491669778582906630754621723003884742734885058800206272223261952942626634007519881912512265546541695422082376255676065262232758603629837385407328747236284658937711213530841385820571182674178003322271476614098693776364318037416281514017008986896641664564858732992019032943274973421795159360851084458697147508903859138540573478021754293911221817984942797040953181365004549927786484246146327956152911719959477683429031551320572110228287697160177779899524373401044977780652103821746050559464886360596909106149619492957109778425312096655949946331392672991033990485149423544519513280579999733403056925568961080548950952272323414384449270880349962713701385467164367874277813028149467455552134860111362276007455491861112638088284925120462730632441644776234443718036880118155242686951060315546300091007364010013164476051588007499639272806772388394921554690583286554034823251501647823538173782163666046899011592040781625782087347294818229509009585291616547961846436172681595515572105648135440967170694396513446700812799621380798514663679941529740256711662382697133658337865042517764587598248210491115310508554974060305464903053436069381914251317383952458511407931325049880795835124864587729394191394685037026000299764260037061643664395240185920053145166629457006672869858996780216928224654642609096106462469666873593216322562043665979845612540996695266840188440798683807459106535300421455471382303269771779873458594349695923335438043558919970062373823832913260341178529444009220461640969046774717921904733319645418584770534092879673815919706996554426433339800173411572309861821866192171250486138679702163727345092630387606592777711066024578959151531366827420835946378897118317302314559783006754802040394115515495166235282441720701561255021533670163906211438677494088225473863842248629031663038871446954001663923589536363027214281367496659756612681666325212624423158746723502685386145244165344945682128937068130966190211911872017315156881201133492173352646507554934985045251261737579563393475991781681813274407047145691756564636703399303003553372879892944839385991318276170987937266938174301028488529463352222394611898972324857122159393787110755134362749691196125649754082787730178436955284797941932237747982909764127760337609655853229061572936665353699892041223354663995283274911506569593585053579114914543404211755324842887253912880804735898530208013441443421861103335626976102433109107040725121769940854075483320366303924880137711289286972141203337503602038647261815344591324665642871633456194326827616761571991127438447683936516546885777421271585870397817239319637804110044802304740304747489929474003771195259633470169723623631513374707175723608935871228543946535956381999960192593955731555740190510642552685708939976563963862141403584401409245494667657804534560905850357373805452153123799251054920971878112848789292713219819430685185182735598079832001717572199180554543922875852848955447685923753069396218573245426099866494228244093718143565123515351722485784039034128960028919445353278161240448635397843758381886472464612044559378040893238750904073574468978809332275217771507174280444393997299862883513895924240031725720818176023084019320948846902238016352198951732775712163839166576132626053077472406943877629013349698130293952416544630055885551960566475293176885941452869111390413923876698360286123903312689810447151138307611249168438963189496230935339452114487931752894087928546395596036552391549149601278794271118757380029474482903592514152529371666051726218014728129132580772611392005654757558919561563877539343469482398607715920227383456318522359635654314131107098701075008977683996563737995646739879165965464504629798143330834335308972066934347969947836961428478661451241941897765714444598958750418185882914999157185087081829265186354373615049900575036210717339794904367305706413287702456529971800132033074336842181748071871220949517329759137982784007644856430599345444988209111476454592435596454097153050835054578207949200074926779614371329910424639660044782479895844631683578286531546700893587142854440463787619261226153954157568604412265771485567656006880342278572837528601077774617320406797060290947136067543837671266946607131607895682555307979031308752914226226771008763745660649083209064009662744240419204030803584106989876212589051149147083464023716371292591634786324074691805127583456542243103917854570902461701415278677508442822964953553467188886783581931112425947959713172712524715028142466925551459842029722735224270606536650680597106367561162542958848349752836177268399583905025815497553203956862469347840515137790014915801476939746090007702671870240556706889391132280683757308195345302928700125737568644834064803858103093083869421502559018947994002253944672749440475218114813489585317807166065099311875895431070764635075022028067315622167588404460360296907317525566970860612242415451137300302399101000432466545456260149439105553247013213561515686437452552553987139267344876620275260642114793446127594050321847413797824338596143721234352254976844055144709977958031853478585148923175460491865201994847015617256319561930379214634962989817159776584071283107867250498216000434727646897404889708620564946354212753799020920966418628570242115082181818517932953155614838501363933811130805596074873730801610630143427948606751271508830487483245424751100625404930358806622361794054219600408467895586564220804067228561594154233456919847492002288965134478280132386628849506277865617977387945921782987663740899542044915535947997508133958161243583436775472999525938217865441095200073817895517098352462115064260389983715849499405276976066960484505805258420664465926642993386492489381897859501907203662479658493897824558952191581922546354941268466344754271743658126027683504561040306939861257981369555141743261174001598731211227993537110866798495794514838344570313861194690000528727721813535456537717849115925890292833495673818749059586972098006514115219790632548384294928065822989785031468757757541822391911487378691752740058891775716024056669798355604494936557349753108522105976358926570567501635696096801562919106267251374351365908672724417832453895186756045609499345392768479157266290778603035100946400919858856679309992396020275108446418549092002602115917075920504492338869872640151035786225034819599589590780248468561941691958696115126419459111789775668815239831797145524039545475488520469623404545251054025263017162232431664947546119046792754955601058579346136274790792308743934722431799540614712346106757449478527132668037605039799938135000993722113224974993639700946119173885402308094784478377461687384190148434023494005208736002331241140194780748145343580868959306366127300282093973115395572232259867570343522895550458415837605301214851822330862190359863824732403239503697726486097281917454768811341903686113620129562173405699484465800080552464959189127225790702906221974101142726959580888093040127344499072318741421016559259055966309017586510566534737392015446190613223470600723622677571708223620332331379362376694465056741977566982347246433554572650755876519655380248597157698818142756443465918964416725991009216236006164971545482109403183593777139454700996569012933041268033518072042599518320386386341009059916639616309552336328652255764202320814397164816258821506600553802019829081260896100952966712400505355745200588875930056372006683437979328146574288407013052265334384643687246650524588114623393927663057883292632493373226204681402074286804567275332770284057712187125832348440951407864006352138836430998247166114784164281939760462389751917637031239372266731847784298365668196454786239546350892833077903529819351125993420635602995433274857619413894474006115084169046218487638649982539451167698221697213744279941012236925836481074328779419850284893569048407784465232856893992407503328085989196542778977497421127321361647697945783036943825511625908090374459595885388725200351489594397008885280945600038037627804477010336645113538133765179509139351251739498147040198621013362674339662507864455440869021816517445246426443971154438599680286035120344302504552532721406752083271520733292953474793087663605834210977934191027342767788731230070746644106258477349261138043887944334175016009848376148084425492356789489879945037204274172095411898107315595191409359039153427208602502841563621296448225999110401621520345141538788906079859298158687819648106778694694180795514643657647244455605097026890584524744598896310363078044519675805740483445914295150163330703146960770435673143438404024960252216311499905472085000612890511982589882319486752011161668170986390900255747956850737087094386320679225467473353345372225821354351712111172645740882577580419392108533440666218133725380282179813544986041040537278490509649206870856203920258898286284276154382298842710971183594910047554815108112348068529124132354828538146176377060474067382916249448994297414146998815115761545166081185566352587872838892272011577466946876273772778068328529675629441724729255953849902191005696089199394658614348011369134550729303692540153241624243500686023353518163653484975577146840150910470001513276887441388725064577267911322523937124705355715167445010915453007506950356371755218477563043692947497439238047789109445882615664776844688588294427620768234672879043505903777181428421515358220812843127689315150314224443173326645967828560993545364318735742682165698189829266518643674674909243534409267201706021667781631657273509810920263101073037295110710819898326098530903202259968696351363973342923341282827241228610118411450897136009861155866904592862499801795141857005265167126849105821279836341485514885088051122573546766176397422591856270411564899146283272653484051826515127699184117160126734997001335477080373172882758527988748845888218430596450470804905994343715129386199222599785315532545374907225203195723806555984695767604027092484849919215367959289228615757330952419952860624717870406186210229107398351433957955931789520202895639419927285177739861218087425952377610010288614535856107505358823113984745550888964411563329293941493579075710395553534455738507980763921724975231115639729932883329379624003836674934695857677758785325015111532119142280508511864814320297934662457635499323237499587589556295446370281424042913556068297622013054340514344964594429899585857762047575637073007966630093371619345518889065553492769688148143062808748916755767182026200131285582216464005847691142561593774871510826009216334504019707321789451722593401667502920923541946182408127161091290298456018775286681408264314310257025248214580702019480745809933805637396140471808405063505213213620976937653083610201317818232776720948647345195687237453556628702839403416320421530137025906757746957710787611788329050086845365620055324174854686202914622311548989364081920896611185200235378192325547355591019804249940760491847745528959764631912349091943210168887207504226830822743561683828211071760982232656748183033559282086348677825439884050977347943626042257564090895934224260423026494711138615321354224201915547389019611778230492117314926887820643856437530569284478130078419582437784784385398882840124752748705978593409722266849052283930407171544335528771799366967491115524583659535003742546089302266147927933755305989428769301285048957972329733167113686548836899185173086751728311717476055209774062787239311518499640066339707520893565915660324700546087045486011533262672160025549462491142744778474040868203997943429483210542427295441344279982730466955115558982247889356870889800711510963970535360550634857841906752438206820235625922728411832782858126851808608709545125880128861000062069212062059828725418816840502588693444766123901318096204034336767288278937259814343908914392231723822772951379851023807734368717733778251801493507752648605030850984948526604800641975584165180295103144524086535421989303258182955581996077640790105522609106552743223614571575471936463388084251467453076278425376111152480662104045228203308185395735384296622924134004604371392099714746605406106427781899165999623033085515549772338509108360151270424007630830100335207893372211971300158983058827421316881779168371070295558173710621390798379010554638507860171273352029661653155413197263524372511374829095994876555315882282630782926711884574708441347343197626506133788683570076243485057932324672186821379457490646260102253974417515704674589600017941064295652119516658775110373315030448801318012491884470589491021611769288842150251971754812305714027858795436661363799748997725851563947973945889605612528530360940687696309000866103495179249993378884402816709003120384900923988419852955099950622619073855707327059137645059293378765020716699387469283119764708044235553295627409644302457056177203761379711703923585793550644008921513844937317844337160525116465402684842096528474724257241686333438504695004784962129421558635917306738409682827352814258507852509138523167331767123188933343384871124158784844282202866949841164608361429786942783000474967360940206635148573220997728445624516363403491520226719349037353049338947836360178056908244350060731141388752148768581499027360952986812910332667223598674753327243817433356119018873053562976667683123790675686431858396320628286522009760958058837705757707568043627430472677683576568337852397594540989555091735895567297092175292103810127779214406996596615530876632208787602646552504980486291507324662095089333405800976177739066436356382540733976815810136683091424205265852493742979069255519357224220091779002500513845642579595763612539913524906635246881297452263847522855634219202368642013640324327820819555092096174548101795548504600047179079833066584565871050255077418508338104396487394629896292348974365419141306632926807751320709782990317068790901054474835011395673731227588844868498412035766618435059442116528618254663946027989175672453804443788656977145221754919983495377238366243694104893193199396295213461889612148867818894921368191390369321762454196513412470232012912048450268565640822137220897365496848571240720484197153462686638375450461975420155598303685288588894383176839302269944698319897897992620197077007344909936551003058019001382845830353709241839573491645318262369725045568825991345021353380257084126862057652179746408868687077054364997720985448280435853663534863586149245933277756598766969825799299561862567594317717380545359016870294918871640633520041294303322560936935629659433901573793921900562176067161647515336178791717012159043556421314243467976810794792996992620383529673514679736103106510445487093307858761682632021818800943422022903375732081028835986796007964555261958434676728339648841629889285056966038461843381835201847431461478872280539976710951380436201229210941857518009026045297716714237365138779393053025301762931969896055212402292259758510971777410648945696928461326258115644322966820518865117239433470497240820312806913709123817726078617877306721170092900546854665851268678845790931064482861968176134072097475782406083829632180268442156638427939742679087226405649582409451340340636857495116196772364459602859332527600779114572878434117243494032604440067387205616006619186482066744698269763826328113487814234168222307434528520740317423957964480523261813417760640962528850577365355417100484566698628959096488784674661943234346124092843505303315271745148673106008988626320186174771360747390369735954462034776691450414810602743838147491260022396920549925863917772191733119983503226461889601621727533555322666785635901506167278680337507718665505415341325727462738386448661258014674040114216753714615876263122722852124761153955015830592094344200074557500713975123565170507069024614076202834248952923160482952158715786776157719174632595851021244867041486529811997348509524925074811637912328133871640908022769376447901110029016621767864184964909173766529998510104207101740020689297037369115983583960053478035861774679017350438496709845187053767615334714252710836757486109531184007996705455554781609118967456422439490109846123002924986845167544242597000782060451978080151590839256012997586205051187178797882564071381026413065614318622606102037765112870938539595272402978999147306659957851270140360497958226203653514883871125216727714739035666229850628487322748889291100371224961890151014994016369207610892083508551291922402696733506977002889547731215198667932310718568036524506603645773511085247968436132908937644372531344981212606395806491024710294080965737117164323228868552574785852507053298789396607485739744504029649008940926632384989297657296679548074921603159372485875492405532352097187510714932402991649166188372461098046014514185791544957705155913713552261411743560688328975178948812443478771394056417921330533844871350761645986206984394559349562348963484303115943418057862637030388654885720361521371654607608484136944112616752115888255141473133333015638997279169706919838329639163577568242159036858021745843436952141760228057757556573558639468786699769071255981450011434902480874331882688446235039872155981144484279345878228196487432864782408089834783711480876312259892330986673048098319667742663909944331852611117652922687927957760911711756222440919115506543043624091403704597312735967484909576720138223450357923943929393215727439184148309207330028581326750997169332210660765373146861208992094561972492679747286683673726554119887563326420924807381116492979523958136101107751407637885019352239810194407427475836680266189277865523997032856575520583346073626573230234453103604035605451827199962480108970934694555487566296965513834306500595995803603034685771246618449673892210984709811404183452278517689088583642750414147410319208893778752858219102633852017584688369486535910985575747882239351541007159291666752265012395747965944735121131208134650233411858044090412795241533916374331445247037061078198396014131151947712010394048947405064379721522137358352722140971589321966036762960627040696713917242828159315366646907852566822639217169019644571818914905829788634279460600202546517545386524580528534152075510257373102556924051040062949950617535066948051174640752497694850723093373819031719122093973578272033778503747821837038476056290249941156104201016709348369490693012701988580358829446260731020015381719002647843573623774496249230869855620319650129091478216419695086658523691141707543193232988841335808108754254825972018368487897537921433749438732362961145276924650227299798544658006866382518661055596189263749950344136734553033789100946858675824750940088346371658646144760051448029658429219246219417512003136530661718735132739015394152117512503789662385270470230697453314339747309942928770952041482181896244478843052317993639660524628739286183093451721602180846192895456830187816537262306030309861517524956566523461916502546957940827252024522363078045905507995630833471592950393087374144938182435018775365089266839890204745405942645556742838835277019507911283678964805156557162586905246108710589239146247267752961516131388327517839210602707486004582378678061670592959810575823390866179262460892658860515265943387830473367014362009680237579391234950568560678884839157917084626783024271516760921173242755914791401875452285432741811627232995321733067543135904231923366426373741820173746557731607106521447977971651851756972579373356615709108617937388657814162318026460134526255212480626841514614305266826904303344355738656405517101483947405215329548541332371645688457352565967467123551341965380088410643111677104951007201409328498430600895501295389220376758818739470683185783118796750426402653662892376026541306885416774665413354215303270417965881832577159115528097661446889487808059900172439332718944404790175127932287723688263343777234775219576122791617017253509908710586556559240738588352112835351193727159773459447926898085895360551079032241983946991642713435367477768255288654261138143417790209715786128002373694806626851515056247243193307068841328137433501082811266228608026657394682159488107649507099728222517282084552037840614706555644921719129337716989027831684381800756973636438240868915115142861284214901177221096741464399853629094856872285972941985461817994656088485306944040146575364000855590435999671025889489729988476257914395792085650583494237432623218636885321465085929600904120587276244975900464853734960489233979233871162776407076759646903586649223642050320636860632674515400310073573465955324553068946913736393290155325082601417998652316318985031250932991328306969680815079531326841617330099363642603129907219480442034777906154892744352275815967931585857490175216053311885792850032628706061253911413558933652212971748062244181486731722372317762896479692890052818692179196967644748316474311571565676427517912565969689404149902203480790776391707784338803470901477314822170816584130264079935087398050107213852309269713724831154797070100924328845719670280704914761999538522094234042863526774515851976256698462660597796314092584382333237100043844070002697672507071255980314483378456676300300547939232874581268769939771095871900215369199884874127665668425947689361439918447835981966249702137877525041100822358567040796110454160154560180639298229737260713587738834924688523037223804169641549318584965854622734628484477460840376670809441607242805892359300474858740315672026072209776178139790823957810545643046152509813412176364100156017126338296307396914301060497008768738063956081212826598017920872601496647737883958010503879451199971200878767956907292876308722329529351814522233541941277953509634500092504390613556090245261927604683727274520745259270904754865240824210565240626956408473950683054902255809589740674692393595155440442193985170471440139273388555923619258280446744708863757463596123295305293961714991819902329262562155410343098591914022580687016281093125758952087794436964312633958074463311989207963271029925513031592946203918129448449096486401411306570089413543596159402872975188094574755248770793324048659669107612234023206808934744748619084320162648815093381664733724393806342954973407008455201764881285774310534461570532878672531527379145234406299945355119755160002682264848220627758798005425622396742966090695501958482795144752483421426737309917268986043829925273600011365175137711361791087664813891917583346949503884194421798926612284318334330587608475038220963614465047843384376739352066940567347675033328915163772795826901797837623790769745324746384975380410863657579964407938516324156545408637444701239650651241078309763423516639256069787702935038220735287023463765028067513844129821753973160254032219357387623806733605112359349758925189971570829202515707725780554364694077765257543222893498438442063660626619148062572758012286245529528715568619184453917314498400683898801914206512688872950688040139634917516747449182345779607968988146581949150233221675315938241341050326368131498081316416871828499768727066713748562300923300649727682112142594314813445534085173163533111387909795654099170998458613101223867964396928414556230836860750231796502481256436550606183333973426304586176591897733451990129197441635804925180116294142744144423735971822520161990038214975124656816180442629168730004337599126370231610499214077199566238756924837252374410372450348920768747100104391990368476029385072854006925302561761603128982726429230182186216502034491342377649905330076756306100996548020454129589055733675771842860482749511244048056617029331165267202576741661276950184241773496122146763260444324756889233371439118149916553814553289091404528500434521946097251728118009584700891550467564209935254529044915729323365113929182405984844268307202063619770428072300255666985466499528201544254584460479181413935729814875602485625979642683255706374105832946368633616510581234045221403931590127602405377707636331255547343579806380834396239221392017325342862939553036266654227458221872310603244772391753127268751261576607924346270828871099239705523457946879707603017220067315258156858948844406686972947773748701191474325196146360181089189066839025085606050608960515660136613498101960078297505093835811889365381316289231893510405715983029407815407787956390238719354996455850105624168238497554620443214578257343982551011833105659733183637010885487170778681718887073786624529804934725175309547389538086089772584865619114008840213157693288187233153140490690119139012695561382401236058485750715657252363888712281106389987903221688178226371819155795634122251734106422858291749442674869307176086360245074773421540669999541632726863489452345135436489115108479697441035460556179361531864337676548512770109142702897801842825619508982358720583216994722682529366568405127041387739407438381451447458209964922399511013096619971889732697502293010351003706672926622465383214837683570451959621276838468208999375347275206411800392558833366846354023566552360973895371207364019220375550661890208466164476014401352960346401691207450032105152915114495747021547217897907163227175053374695470632998028838353202482815930953327335754889505596889477529543872754743751228009075855197487687500136092808383714595849114991819619254989033681706517357098915575854948432090876527902084016117939438609649038712268414852602809069311168907702179424677133958842262217873232885767449396836920686311344028182329717294534769968618269493946377184599297525653529475240364406941136159159938480364247174992650680465987035696260775210592555168992204747085125406947157561429835218576402785384435755460349354266192147775379032667529359321795517323390084754305273122371971928109139996492465487800384814275261893554002506363825114825227641547673626681249625906914142667126593055539842726659793168693329425051680836562535401510999769492417346304363594102409351901422539354902486923219864482448390535194320202121262340867857873564243917797497408031930398420642524160290664198805091147426149380250792923833086063164712776066434502455475303221553088199544822333008914141221337170969646025147479140543824060828318994203908251611411650162129764795137771393699409181516793996423990396987808345656620301199901872134866573839030423518032389295563097179485858343767005549689209400005759699377757996178897305801535817377906469015199621190354863261813930805878851095892998553399316207181276380060365980684945683817971009334074354790126430965873617945311139256191717618433808600412076901546401081145665743336160325708512480383225966082681794391534022739921923384579255988635248394581896599771189099298251157716268121925959493677427320631652242927644908577595237374732533575742407276921523613930575629686458352931383851732262847401142700251638924712615536614430021245636842920180737344296567087132980254595251371225706868244114955755567105295069603848565441066321388035673274645240864426594418640635846978699649595976804296808893262984828513568768944370263591042844620595779434829223364712642752569721168131531640939313511583054797710250533914615002368926223462659036689256395751343879270146996774545775898104780711465123416606523959424615861792844130499928945298928603111503373251278550446372116121817895725311391994432104846431166012050774223478346023754576057537900040291303125532716420246895516853031788828450074333256247920858790573907906569698436874725020312101924518943423016231918968241410598984084946589647939534842085486532362277082592304213181759197957987967364198667324036052691847548378052801544435468294482871700061891144511060213372114431963562162629153646381330749751258953729683614615864547183749092600671244165102882056456922552106811068310962632977307089103118142752052037777231709405625935488389327124665541281438982912103900344359874043997001568293242586895897312687235613664587483431940117442933796908170053014745987803570520595889411168712724686806165910577863653122261071947437328264337327207741835899959205232899364455076530997299728787371011506500741734800529370704771022063530118286790346354669953084121571940760857524581039383268381768180735322972252459991212029644664277691724817748692028595024174154094033742904978344750043933363161464260085497297947726928098981110767753322143259291789653099906211537240466889924606826590870698121407147936924681552186314507953909972097358593727588447864766632172613222365508892668324958472143282423384973046842308491644271697167023424696993038056790515921339366410194278577244115833361118204393890916514769630577706789355753749935459860000038765678714842080182302261215489418855617147834435617728904686959127031828134068466012580233326735623127581055192377743819579766435286800398572223650434496239569583833272623787324585352570890562026372163552039986230262362768538860359561772100335642657197365174602606090213647916754839018519185902095850476562940968429053051795088121548748808668569078484584121150348087496115870846346521495666535845630540461055346259065555362425190860241593291905283051021269851600119205478293974392891320134848412332859515016028987819851023637329774013197964989891484775296373141431194500441554489687111272828018426814260307223835826985658671958174325197390655184702514294656706935608707309794934199282909338545280432503284833567026074878115652451036347255578069159819155368180387732131622021602518143546793043957381104457467997216069826179623202240136051615272869080063132460592182642804904885823197857309207228552066632552428329539445927324163896498423205823031228122379485654890932457770590122891555946355569477485909312845853403789171552454251618597913318368131244128877331001221629375233048045584457710598574396881451193299159209545165206530938616183750668460020187810176033787767782899564646250509455130265502287548467965525286438060243972593952364959199461073119800237176906440397018042685805872434864412625970328504405066082081152145822907328344291721191040541970874607684953480559022420399057577585533271226745565009436503545640599603571878771134994637185663018838026037197570144774789422360409428806405511405395259490069046963830264644992349625633746005848791667302090515069186823736807936499992574483589050644158248894620479912100115752712491837428751085468053625770977723011580682546709629395178159133286103975048299178237976700496848726659454696089950326714094980416676380064027581423928776059030653710679933680096891189640887429786636942101017303150640783688197557865770819399336028428229078896728889355423267239118311304207251681667406344535686582220412213452320044608039994621955365596425677992765356853128387459690787572340035696611631474637416863946488427446956835585395221297218652579102526200077110075208817911278746442435193495858292666382818029531297047575550804272770218678186498584469009513353802354103005172877261835411477356382811127960998146022602940825638462358960179955269716252455567793380174652042897196848709493320103418890545580531164902680858859897967234433446090215461034590578364610669399830588442894611569910858818808401759896949976305966472857464197111671194227455563857556712942774747421391999033588965150719889203841858150946118151317239348513421726304645542262075936569460754794896391826964494744483645985868010260392396558369694547301099880336181738574168806483598423749814105850266728175499405084939819959556691847170136046022073778750990666046403821813649114151347325435870279797746245183637039972278480643294664412533514026656973443784630213706139434842940939222585781336202163091768643928344069758352407663584638972602293060357776986914408450920444102764626661521403935552469172315167858417153559632880809167379379272503001621844395257175594850447287908986328784120663123211727185377405607288884124581911600555217087506753229369836007236699983116438682796257676000068395032538282660189814176367007580166130806183644271580034164644899135480714383648322404137113284688630517421790345613341315260607925818490411408361794615560772402790691354411130323740025021029444632144901394678294440336439587836117531355759871022151715901219963956869482942189917660286246734736608844694151559921350662173150864645958125094352641677192106035568578536997886586619023452913654483017945168805034719521968625586784330586773066505049098248156084107460508512366839127949455412335507470280959277487631452583770242398635901667880819904314316203219631326510462951459522243128512334803673078786500925264243354491173852897736936098287686350832086203424404061221966271011220356711421432379939997849716439630878066766850413954046713728218040995328938469599501334659937804601666658803442923492819501746949941676677666387292141413723208911656292904170669046982456996936821972255007586096511333020858947105690040889094400603744890377627999159014752092746618598316709790283900982020060004294209018642638358557572379189588101211668021065884558832075555742812250708327401173535154336371205435050510769506425202244400459688734361186477125014533298531377583820538920481766262147092995798334585611593691152698824913864214729959284805134034874283096886533502454498484451445823321790168040701205097420626066265919443717276494879944205160293190882274689469617590410852667137116182594105301130186995168615924124540957751587052788084427888380961089145026898332902206519373188362895023524343131952308431457531092777451654543791602908533002752389265033654953456181163386854807181223506558768139274380799611537329039428867142625408699773377083780859298459653790272220933854219143879422341912295639059017730762684984053191643256553354302487484284477402832942583139212846580134783283456794832226993524571096177233286799210947981613913614220443282556729972808210320434616850393760395393928160303654560149300327836730700604264386820124507671493137175215033056136746432105063097691196490257794535223958800434219410286342543467673610644379895694761147288503388546277344780986115019044279461254605349923128431427392860920417801632300646280994107603422504628032914734893997137703899030375500194303971734732094096200982627776617987963803701797898076917242247221559969424829347277668934898697949444594109564815857539726875976178505636276342485200243343599512942263733857414030551570545388114950013380158667531411168876521694811978139155161183477848949773401030842473021637817852140915387180196862040094960894257917325626888239212456402146538395895112655733799276848750207517206398866538192282914195015564581173626323351731611019151669111148949662589109272142444844316390835268254995112714566653393098202444811349567193252403585392012323175599023109265850972287085721291640657940458671350425934495262977907825314393075769903406147840344514309882704928294160031780454798160748224221440138019251737042465816235815784060992927299882937926264819673009404053021975257134014187514519993269065722731030482318704160195504822782996593071541701384485147677785139591398283057254731372391570849499427416377487583728246255128669326612931602839335182520919135043069851929585644297686107610694669841364691055766851653202650726506616200689511549703513734654363189752143552000777629668384831797696629644054568201317624665496205962249866166649779249289795411287014926086903950651350514989940374526796351266258319794672829539984215658454352594825683899311679717830016255579866028627263410135724170431064002261890886713143701614734115472158271001140020114613205165934329615545246272365773636871605041464254534242709094494265897074213692173121345841257375085942901872175493091350349749882289537009366962617222944049864046983899030435176552747971004141677219974223860709949648524456103583613717833678208329211350492107272602729261757918327705600931545994255353928449543695438791549129671897449373273312343269809744185803245421827345323650384932215585165522362438841616214739445011861477490927036848141447300940108643474032795090706160776299897237518573916518495269285334284015934019683708595653725715714560437969447066713333086518251620926352908154695514205665976104621835933682574720188759708699307093233707129076753991069326399570562845256933209567936283596811334061063174008702802766592785284140739564639540252391048682141863318679730316855505441773247278615589300743420939034854722166836381338176297309702562233182181370096489524288615096299129450849424153294053107858878284493129280757860414595351207996309917337613692604130489919750356591846222990423378901010861430683748886466880133456445060056401031696490483687948487604542008376091883873105247181173821791852850739814894525458636555990533896773814416270158267387155764415274789001861349211553731284776606362770988894078338335403137387940587973466928703795032144585464691225616387526421814382806124288100855815728489223033897650908069161591996684700435621665102526571209145051345954163598080621126569328063928317860128046229516873141149845934699541004421147737064167374031178240219062058742764687119323350989786955276188304390993601312602956070569859214409518081286847323188976339819055091112056392154040780157423541242687601143939396691518152192441125560318512758243386095411836020000517800502781823743570289188139580072119306876035127615783583595824362722750726497717175592051805361812695302351864979425258755685853313445156627838552119861364765744496341670029982439599134156284498145220223185149371398348125497616703788738992159965272009890428750045745029158275332504603485234081942672996514152411424472604964224118706055784632956355657848822886865746732082879074440918643529800170788366339085821049359803877151503136526222788130190057375078917603780657814168489989560312853439982571234236757900284096744006425144201991631782037313652241750883245994398413726137634189096884211322835597075916130981455593714865448946903214893821167618718990971521337141148395579663786898293002489483982590699580700025709757125032412269007377964145002823593724306741854251281493188676053880570045469206924528251021816735083225665737272294219836069494912367370751073414112127853786355917348820108061821925030798140747738888184961868327746781557907552684477810196773598716705269147724636877559033932578353485247854758609833893948005898944255046649542128049639804844895338489346618032224515299503857215070418649624869775304663313667671295531718854137031479099498707958236213232264560772366859963657612984241237793419859498713919232577882442763156429202430124220129998483112358044250368966709580811909341741763983763744659008385346844029098265957929044120065444270392455278281449728368647527251591444370210346443338536979257360400747272810099712076565365925369631740016721160960044618279692286592598108207628296899348032678151382006535240815109536929480523712961839530239603091404983219474859028735492534838044955071423568911942728102139258653240202699742808972467849552114843400408929269813333873027219719454513932834496586092960089949880201732144761384881726552237970986101357507481293814865634202301161686524399575740357690844894978949217788513158578255763792059078154321467857516185915706520820795220207206213611236239199527105280552378558972613644075238367854382687367197848270861178298919932600520195376263794233635701851186105812196163674251985231924781534083528070401807772836382179488704134077831221350567779291856537934324408894165661046282517776732553337864977572360513154997164700518152196771011528112759589040807359863353205572266370596216162737255898609462599562941603271412621873513376511128615726784972564135069464155116814783819868210153012825184301388270482659269942581543323035465199784017730390779212068249749293546175772207703632772483966819394381813943323603052647878189657499500061327894142503311946330261104560741530856439187872325787274315344428860507457908724190487248802537869660779757655468534698037656629362533418757300881733980945678179082005788110696717728814736235704782221277296898232548509719084536557220145364308140566329472373916431738195865026051236392976557613705804001877514675674099183014632940966286363778660352020673526151282714227018146483870104664232467158423861257316632658437163670922078124635422848130137967511574591971006035951521887782140720671306764298559744819970765030103601761894840158690879948017054567404795157186881926687970610650591291660817850987733227719033119080879974799804011651053934858795687215750419550279188472416081901221331023627865430369241169757924399052572889095769230639150713075759108248063021931218411968970564367850726361840547727811595873959615898614098180509428855660217874622010308257615843947093099717220306456319662082917599178074018354146851898129728485469653377475529981888970632350503219582270206761628378679572876781958371691832907257731819727985450018226252863627486212576739474486217461075675332778733725515441558946054421731742191454194297203789301465574310529269148295823192848287656445671264912795531798955743303576685023401616256275031176384043503524012482569507651555956560876279856390855230525520454170075111105981226631250692896258322404671428740986737368743810108446297262648213438944540138404310229459868611827646394516184024526297330787783712100468056507286535365334800484558878195881803789039014154193864564592448260680099610270174976542078649136450296891171785914379570900640303042517300837428059529055190360800316823767791634459370790272391855114983453509929648172384861745676618887928894014503403030184254291097505251351818959169047696838010431213450866238502195402169604687502929176387641340004304023282881345337570062124293242605536395428619512292615421507028173025051857011129045683865186565999965409374685845065732618227719707742134846894675859673420133287143855641253903318904076441781132710514765000245174650470941648680056324617464717189402948420961320296343086444219782618176715415710778686084736359918052440257289876692975792330454717899052340926456599309384202518412541147687402343610848092299000412062852514244495628068158660486685781509121720889996858431289329441905757737859560672406061957989253589522638792848478853986303499641398797677267788978806823662510239219503119564374192901029867502996554073749380590843734483532705321376174689460467362139203468086176741709770020858665061356341444869422992779520286928579171120729748899712477579516493560350420752997533654144770917770092256548575493687287251256475979990185885300109003052891817751258003172239840718829720974076925187074034687842002910877024289714352884640039119488464707802928551113949087048562255731709563037269917613840504152127079393234886247338181645962610819778360348642933601749996516921120129770015262329466681332020196422957335118817398241696186424756526989414938528834091093564446191467720663694309797611364577294196429401996341940573097520708693745381701174351260787469457678479194450641590448295943697472484353719570331708445552687460300380641303779573098589904151459072876047855308205382161875188681223102703218690375288042359313960534922114279802942016495639958096693132622628860717401725610590854590194571644008637848810831617632134079784948921713962318128291439923946697378371901388780603884865542034164113354417288770698291808237081168897127097275757508796960334456201745375142794424160942800504857314687771040319798539246900648006446101196057741463837596449162449368453293159542389035928751002222020998821583950786370971808893925202415358901138483661197996457605257465890816498929455616107710836125347090042077237110170800637782363658561533678116620347560022102158296720113044170717838736809177607031705375120887956141386949614270641971152133763346196789333893047671831239305848436570382407992875971676898515752699534381589297558379368411298423165755375603397095836752261367830811435234840965876458987595182366181129103971366514803840570497738149732465899177275428822223911115565590015778887974292579197629922663168971587489660505074902678273435493642191168471609986729242416262465076937581463488885121046247504363919952883754786266821545671081873966815891207065579990292588883903924371465771147736953609054748214815129104510340815379530182468370788674882083595187181836088945543500401735726050917404933218473150261112410285435918707984665512985539908047780303681943025387719971920740390453744576625456085118825873888811280152557282421421334340548937824887671378655991431172996895548853911595380359248545214931163835028704551274585148670419188291758934950929669324288160868330890250639662256973344101803279760614542974151513457347629848209213544249144886866459135537567580742952234425145084428875035892836009696514923526721990062216603421778355225613459893079667552067001530185975711170504045887095144801995473361382556220487680013197401987303729454259121421166072759813213245754180171297348137109482196867247996579277585920804012132670133807269016801982116428168189306361537113206201903256166789437633605304079167331333472809560822174418477626925582549928084431216559028041637610628106263290795378352931878931348005570750736434111131226236657617788208134536169107934313694521483817152812134029468550854965011219874667037941850594037618103054901289991517954582559869933369236099954315344805036770376332026354982292658236570964479321853984655893592127871884323281354711433028604112761338270250557615598172806119467778300522272626178567423686509189870091651207979215370632543129161355087671657634737161401140003364901748663676559898097400484351172978903291715830448387587733540838755763794185478567835249165892743797051855132165154206209379248834823838424402915927109016492220948524239513176943826463921044694739006864290569591288192015143838446880202797274849876844525984695179941629733818398276142017890585742720860878990032054969068643330545003299325390936039701504943868410523945497145411924121551956792018203838696308145437416603287419536530732023412451618061037711634944223146495756137804939928680270156727884840926643790817420507778705951914291372716167398605608527908853446481210793511685565137317572981498392488604821911437372305707394996344085872435320155645788377541243818754322398923730814007790646995212864541745201343416874055819188550805825874087115969635287883738555530004747063005114164113324819531254574439826872815787690568502752935701470994766609907677044156017985958343830981308586031174346408468075414579177381297361336167809843640753828958822442322041949790473913267753512728983516275065334475409463346954596229823345776375627287456569673975452514268645877233539078466052337664668398197808850722735688572599061165373033641538007765317688303189076804573048579959307617703652603335588957010274704624107046880085447083459945218918828085583157242289107897360903187096513818607868703555276615124990626632128244460490856910102043546948505037781056799439177764848148078383924100300779844985931273292919893400018229768137949709015948146527989081025879997275918813500788114628041263475332611455640311542662807091622277990165302102493316435111223561492395794752562688384391408180953491763932044047614913936746947480779563419018700689422402732106772836396967298204081103844280441346809603523890863483660555353511861707098839665419013621603155948103677525050208894217670283508204887908536174374749253361391410186909399318108446124217890217435129702807172915835426797853777212099681233681448143224602082454548282639852421963920644543763195954590133741859741678565429468576327415402307470471847398431244295301630518614132762311332518569564868523976203051857849928373235070327746436595441896459594440518705011234593207383317157036799439382717066747528760525808588359891752127149398947388455564753386937772909714411273268452142410368156345726771752495578740565138077929740632825853112067062294411377372873418740652907208713349667788020121596653606500363087131737220291489109765711157934815711049730813858601837500011702917903920953783102961029739001897663633564435092769015457917832949732597131306486934951567489531482353635958088323982648904582797747329577238714169433443171463500845896553048351905379892753014731706051874508449996460466406333937713030421324887616331872307932534808963811394855787859178933649716512528900301423110037066521639813689467935970549419809241296256621017952821558767721507358443213456996530799069967457130003570387503039947309534786420683192229882544245515940510291028656191928560584144754406618221641885281152668074782947303772276823063470688588710388042981317406111351446913618838697747880307509669788957021841155466834529172863048624645588642252783082522221166672408337171869059221241776518506774635603137519327103080593168715566202407960300502167646616673774168908377627644114081005839571960854703296590102336327927144139314747060153637815714261794860022299650081246943661784478316222622381781926639303307177001573973886692780962434264371467042983987718887948302742917154252933293072124506168733155114518297789996015214030774434769619593523399918489747269231917829612964651263532517604908897488395811842114415074676701581713136736422621173394390289131504001446977549119288631980981754362922050935519288050524654290486451342697185878187327897297764733723007796223169529766103199501302373592295249937434343947760747072670172707528222644503906542041487979417556495216561880806743889506727216862905784912728276265842544470870158495789886050914147617467489523281148954474253533617041333216565151451851398213956542499743476979249330155858256816846005493571407498924270535664304069508457952475333149819875088184324186064608058456164449090333390910112735167787646421469150165494609039227875871532290194425831908702568417761341138512328948446996502664148831554002873490081497879149109404240466410558492628441482901722756907367320604873347960712467649905649654559899672152678727233789596494588183834493480358554410743758895001763830505587461663314952875699456929723372017700407849090465397062371822621095462794559043398440296187636458478086552683008548357071906168999401335897460135310375858151864380063889752539896371174005585660192004844866624068820170133511387840256461549352050007410731150861852766041128000205727381082106470604472718966794179836593212021978198443433122491013174694527624354582861305418343873511932687549046672913946714617195433320119768201717618876416771934219650591135800765355179430591005096197315177021176103115621435640620282820880466389541216992791677352305708898604385272637562408829484847095400994164433011873912614098232205154799928917112915068136982456652504631083904774022093165750240926038624944165754735849659979278627728759893020449875812497320829212662997524853327135262184158154070025762859110727885801444236439287988369590988137891934752308564758664271269789439272534801211177630930774316859243396674139682619721431759236924946971030693222847829768982955990756971985502477617334780584906607610401686852228649678603214447430973798418764248243883934851432629689739738253255349617982319368988242450645995511688074791894568937871144809209043163114158679039348697235341561264776859190511807645271580765951570790833004977283244653490026950085707196380321508763289983759058117603519612313745766673494037855925885967868723059798120190158984787480102963902206984413415392930847688896838374127673459727796464256722304576343926178631433312969493148774450999566721978831412032879890787274982841789177324400719239737168165459075210666792807118878986299916689230745117717028529549885386000066912970439907637280224391159825265152320994394742005003166625857609313110418506834232920285462992428336425984802464586987999503635862690151424594811303407412226015830130483726013205152558771732761521829771175481203222543001745645173609056076518703149576305814610322311191646210831522443574147002129698231988286361645648114359716926440336334737925139682624082142756374807702582629313548639925896825723304626590481586843759581238046030485439103576683098375973623731537213760836093246114261653036859140658080722259865850504148346093005363460621460708230896690856818146846809499776163884826597180069709934159360658777728350758955393924788594446267014442138442645119029875820819892459342562790007292993231159333929389975491830615680099274408797750488644171660002163116817128892746478607439258930688285509652216573523916544387952429428686382181946488208470720458130477206830964131115002565042407109613861492459648627595841108521060826497872954770239357190418024289771297186505588782911507719401132626929786061842118974710258595098976754898413827076622451171029393221042408529592937630761766331194530581620631185200309804265834761468170156039192313926629609362849114226243462002393977315055302466835656029157389154048496569206213882253576913907038775805171469370619739969525534061826889886887269252553366096549348641388504349635319751799762279248534124626022036458836030654777207315853091096691341385594815530080568001170463595057393961446916216293307583080186055331513280907777287289290186257713919042065732019993131616197760566314955178914449205452069769332790889283221805692963182109107768112227665642939796571902544025756051452088352155093454537564719585448137701346431547096794745416135655872553197575270868213320959448986069693091619901082598229088712967542161325713593016063782209138922629708788461336869392415246049494080701647887061792680061323875816871775317550920259921800565236632558795561785488254393800895130328285037278206670803580586951576308473768302288184367689932468172884183001950528587489834186575649896162049202036203758993822922194781588910231921606796076906314318862398635455479343393248968780692891754327419347266950385650222602691352251366871132906575484003535418255777989937165900730511439621012904713150273178013072775204413765816416934989213363124909065874985360055458850805090090976474832684285241343778278395374379706965077349145997546437523612647346490589178829047321293234887158711045415682299631711494717953266710403462476910258779861425247681585428087020251862963124142197074271699157938823999886913445696343828491758917009989296099701923119112035253601913689828568644303564850394851204826437541526852576289733859770465749146942581789603565222159923672836371502679553801221288325989532085021566233886200801088723839356026350973555522851438818274126858846445804266893668666185683399588092924745895380594981899695143396797763094948921125987400319535741050207192071069432877936167450080654807968104195924262344167420920743242491946985993564381139599310181868515431150161970698731723568667488146127371444661485199864559902686904191429000702633668531200997476279528109089083773035231075479048908092713882139346354757948768802047010727744595021833381208139173083145498798901652956852404521975521532243663605452116900553798709018423261033521958051437668763256513326937235232069356961705486880854327981165229057068070474916143335988573638768580814999030884450897509364104438085836422821361115662374181137488826111529253006980269739605335981430907178255956587401980858860055157699420075063105651797798664854651730596476498285905666790521216403558890896729341328784301713106611085479603252528093082629882105236597218656930683173410521749810350246902840455329510928737981758774183088052413500844139138957616671721129099668827283375064742412004459441634861327183463306963167622612105205102386316350688146408330960892016853976203585435177484605315145687534617967575522994131783256895774786905404275529402146428829535393371694466741094706179723100546936227279640508882175720830436145763172902963055279645923466400353506088664461825665536454118333113773290975325260596189555219649555147526397612601140627752126727833170385352429594729560409451176391489561117894462479891023941609236124903997116724116039882484056104477995690792849472356443056296538284952190924073690834126057232150979254255379424250541412187003367331837393709948999074900344760051346576612374899164649715722003382077976372924410390061142722084012228169047542107542414022744460750026610818422221657557448112511956328659513275550056724221518315404088112635268376135605795095221941026337821606922772906803996818532038058346835790236153113007568898067705402304110960872514871927383857231678811326396568423769464562820050275385934402372991943492328560655100251503425094735099306120320423728639029031379244241031548807862800930126337075260153528683355651642796458468808062743209684224949223870936050186092212822565447756795527520940337329539681787103792716456041160244974405060434255246347049129555887930776497788134186044881746282403990742500055487872209428425714572292571319011706173862757403853259616234559394185616446686778971686043871774701109506023033623681209527907247806985122357873975318383990515840079597846376498187934581873507171517935581156356440931864352826841617539899762942058402063988132804505479746518005140532693219897682448615151424182411657673700466203740319938286418095161075087510639592642940984488006375544098264809447431634225223003682194536854047010222182349116502770575740245448446071400228637089726077696620354259351497984779282676210859864742770467705437032087099428091579992973812421281073365595641082643453892554882743422167846966496996440286479310474622040235353997778296635908364560426828695927658904032479281143020795942151259219034247762269862859746018672698126590023970682654134118047824865874715490470177707026909692442255772769257038041654515871918761341846402453664576488239719785776502555404391674140063718360704005540998752464445055294901182401459006860432597416363234506979497494925104794031866656402083624799184417807101287374677107068178995136479880316026552101633179830933181631900985990450499805347010163131086518265871018456504855694512918585532434126119244113749247062412704071165039591772344539807207242314166761886487393435425067085939544166510048079136242408805063159935583295029549999647170761507993783310306446440589181157084701534602700381155245907120721046860208028175695811013896531235763800357832958145960146067919367285154749387933656911877142775359862796976122316557882694174493439413409520009703881157860071537702126978711024654467136027626543150194889560145985594643945322949284473480952493788426543735548531263743308194514754725132599414769377876641574749203765297658541483930626286984128836813210509230853174606107893497920080456427463771069917175789308551161254797839687322405409313695207106338774583212017299830066692230775396971888858907339500809653308297709397485731488090033559598504963337573663772195233655905859987636540348712067214312757700154637577218311849641756897177830337391210563984428795141933248413500785483052316098042722713558826993482147823449521283566997726178087804191084163943867009514219226015774390486407225759751967010544233962066223338703009190828932255696837470534264498015721895798886248552897564662088463969896584869326825611497161196960117857721371167974745744149294579971524215821900328899744028938243164215745128972283872368564424241776867568483223268010033933887392186901770068668138454928985534727053280348587709301929461399376804707248736816854097604399767325355606382933344660386951731017965683014126769501595340312306545852129866528206425304323358919288792980788616345703378204235322803432084068480328046121382603758475543103069328149281622798951178375469154883384242531419219526887372139176659948017235127188873712561180418169359962747076983087297106265796082701869886001049633853771660337620943132087077704435105912402599032841502291514317377813249803206124614633334004758154145987319214813102890588502203283586768224010477963064514645435648739396373904533499414130273381243676308069265362746078663909487561091002724042284056472776111496053128137573189984127569261960977508836953810584072738081515454491792380021926051172892887199985820887086721197593572772568723740581469215172362357352109400200696530684429807948925635695607270580414130317086426245289926658346375787266890843803461557605747821689342936027964579719389931694574212517808884984596781692458509860203451625972593178071334985748404209515323453006790741229750550527744612890648628845304712759184115435250229438145430612954840744102917906767061676316793060958041139369345536142692519135659012143020624347735811158049300343975514593635964737000746013883314908123535568211774556281051813095663940469114134457695288972312463353805868634501791558300904163007089241852950268539292464433141002735728427654450061169636710992282411576257342071927590819124765668718095476904148354043179621186567197336077410871113965705305184445305982025327316433095717823750969974901910507641504004075981802901004671733533181690421127941274966021554456592283499303488202928624133681172381704613618566277630587896324589247290697177305540956476588123325162187310859941668220564164746383999318709092450938773182295369408639551847210600361803339733922403050704762042558188295227013783366396718764859692613918578901049818111744917680349505048879570713863591063518296198730615694294055187335680229173633648401844145524215609033573399207050002443891414241666323200009326143715001338850432597064182848491411563827885489384697899893041439245484793694338877642747000122889392313063934636805970681431911398341155948620564516399257355785629618863193377277856152721026131317108432180761695007745997718669065785489324437811411480411236339141342313283503850065111491772756826344657457314646542285593089491760079938965056053192067175108347184326910902419607720891939836274315056548834319618595854048443913831079769219582482499947616857323394224956920319974625486788533542260065776638068968047870442337133538748798157689302683175694707210162006845422977006434463105356418571681734092585069221661002277710934808704247116498754099035261111186989470862044225561065716213094382862451542527505858086492848074481811631477130289090071575017286381641708497883126894507644519997661904107008164368323732114027839869017549495783589058673947875593787740689105305673169699406098474008755594737390950424343423941846346881347382083952010861189838394265505104609073174720395576880436876768881990795158041521746955885290628869733359157218867903358207412495747755912063468301627837002000845306162249490019894047210685378231888208778601706701690326488338593448490859362739904674214139434583431407698341694573391757860033335715016494167987786560239012796685001062201295080798167555115856369846116821074282019409954150399969317376935594475804703032499537967673270664083703448080976502846992116578525613939138271009219630700147443504338657186189570691893988744671910326999924578471474156308886902297497198352940042298046626153475246279955218976917759067135495311999223468754346289854316756418812231971453108252454133867012670779627663571256076094694391589684840365188377672969546836858982261330496801987603728317185738094445999099942474863140302057573491550720497515874887329765020749889451716235087797896215472990169369178526281859183085350050158730445984058870560994565194583790778031917967251892159987010738567200015521674091071151861418390606849120970878696437751434078536819864134776550247850827039076465580238267921448111372016563134491540532135969563357789820877305500752889506186165669264278036575685790762353745783698268065801917792418419399176944949301821203052619854406158558817877864842755320536113902288474902278433195544908947979910962710714622525031817210311872964155728546515540747155398773020935919463613994238355412665610316391384111810309156163742815623556049003330858956300788723759320241498024031191783285894750660569021215607306575131607522731176380971601235157214342147748618107710411644333165649061532859183582895423345214957848688059120845884072054386004206672459789477301615427616454797899002399153337496271491843886164897851209319153636337815068005965031247491737877454248209695566296758031920986311131193445204077959718935366319016940756677827147452488552231536430570638371402974289362791291301851295521329151342129147979241231618702271658993571384656641734641312358296691705741004558303581030740094509330106837174583114018144595012663668529124967395481787343472563354653884697371526645433485292860084898014178478143178930151541298575600475336077742215553111954642122751882309702492296493640605157763209836701672327316955671896722665444113481183995389558563633198009011509443698154499499337131987357140308967091725617247578193376180032678955190264655353583965398425614217589976758897084488222354609133140938354413247198932725587976790277928430772543423115059039848068322525004242012032977259278792800084500620082629368494706782068949551808631362289282254000073644108421585235922561183522756425726388882206052047306354430708194125607214149791261345660186456211305279889632261920476162473477578454395720426122276138681893981474454153911699840991305880663888002198290663730418166317214042822633930304086759597659211190841430485958555053299852233672263235196864241209368353607177476454175038590371211848993205616288864692667692273502833770452078910151339093882509753208223685653477743502671205987177318498206692338223168756854298061533215413468336052104390244412202222290563898261430756563423358883644642512744475001972340802872464821587923805323415925861664854223281981529126677283250865391637173640770452476460151603164384307821209497267792961172581091824830633533653157560982889382661160422128296700397335480502681395572035214496962212201383739933547517868152891201796743356169473160438237516438167565726439500720844371908940079426355270395657836760847694849553829877088529837989256816996924977557311307603223132724759878115351331873200362961220500213023237042779735995279940245554063973965610315712143941067610943758022473009347420818806190282000524713952413767198715790678462567689092695906456164389017861935777662450997681519321884807029118235013279344897610278235039620514604566098836246486191507207014516215665589311363851840181579697062598882697012495557776929024698449778810660400087809737719713272811600315332471159039772437837637903133532010047400241435190028039186770778391027639353317429590204037271368175071392928092019876695164796383873042791373823484870587334748738070609303624768974316132028076315710278205583873345238123444016070119902494628970036586037035898076196888352117248756885907023020212161843377583496541932656921456303571223652214315083157563667502120232908366873589705090740937585454729116704668249812227795111317415143219670766371046120513591154998649017829279124020107728789048580664493098865857194842617082089346655728578871308238633521617652223328510005976906554753460280987652296726774110793732790493178687869918797271537814166284312991376564180908607241697239880529576538189949722873955828721184107137044726993244126717630007935597097718047194635221723824685263807774726715807075670090605686182863080306878690297371658957406192273877061911809437605488329332173028003294036333415724853925435775225749243940620384773478388863671009743049222298125329971381070581746077514285100414157835352396806382758695054176216783995026698823701593917238414583281668242777141383401531614075548731317993567456200880917279779606136031924602642085957435038436577929989167416473229247341336601155182382782932680585653215493449207434011270696042168129009088099101952218486624805700048696477094716881640532974512310430402032471321373999545705723863233515498474182611910126863946388176809436506014241554363947917397246967659221491709820125546700639684447152414713333033679479460842129909880098900917667480491521956447873672104347301996008075754778216155627438741241298510313224119557414765616639729212810848295527476035163446735281862797787435375986905413591322314488804550938243606850765460603314798729130378201440967478719568909572480086255837918232183682434020085641836869375110031740244088155208616250237615279726858649268690155574596864738004237345906012607697084015147470276618595063261941338637579255076224553662787629230355502273391482059501114284855255246242927426556828046841206684756246423431912392041885788360024933015827060523836578030472581633686235438005459679992631370378620095711715983510532103482617614405830610039672876918938560073245565379271688629809116981771746094792729331109888480170801394559234172771113151205513534199832000197175480700140794987454109095015217122837624585234037718553665707632822278502963849362260924537062024650412554531865691161391325350562012312081996754929445878275699731873807194751354727523101903654583894890352722231922250088338776583410811833883377934912024625622036658028490709647125761621199412269447571564865660668321902375793832849911825293054724082245345960983015775500825981512148535857361632216718581303123221356390785295709781227953759386628653170280162968744793263395316166284296913819138712750048861638969760546029905122251847772039269676285308440224621836564200961411564009959631228555251373565158482983125646110877794066897894065516052881348705056005204777561262168089526255946765604018803198371075858892045325561267315434086778025545905478646677321592464909725694879449545789424964371780006490187578820297378677994474368659057116362135027136322309270829132877934462295244257680407898215262971721386266316229021241581276338038273272580968440160760309631809572191975222713371986305040112962876077954569128544068290169301939956360521724620088079671514848369314725630385066203591972666384639413996691729733774833956706945032735051342568355295372835922847292993368559054679238976013531490424872127457129066253099011384356586035112723012230940502424683040981034908176637437515243277205861424410355977425234277732337408979829617527919342466434971449695451944667608945701134577529937503267945532963562351855330786333813682454064399346497679696681253317577699309246514071433213171334179791422300304561787590862827193779070876371876673887205940082874023128560331768783436951082715528623904654583564762571526086967854285846623169846020518055184402228397699146673526744297794460409268737109662096534323670375258694638550174177852107600975856393034173365800173629750733274621963526669573241137125898330670030542962423369092539681702013745368871671680527850999738917790248447591472611583003576410793148062467840146690075561365912509414869226982948002031528257058483937366710796573744320267405712232293192364975112263396667442047140693552168360629174449397996455495616343273780051262188101693257474118076910711590319722874194854865166228567496829350384434838340916159453382322500823255282239815635061655170908206551957739449197201788539643269867999498333322044724819042673199030220333120863854950005871037992186011661971769775083383211175800822080141511114896034367016170446047347795914476337440328326549084374120049176580235887342229269918695949297118704874390769507791705190970103366769865377925478334353201201054307756098114746383111116759905844227332612260138558405711903091931953462168665341409882491961138976175787874266249653477068680583447463480015236657902701696738339792369985837055489555019659485173767379715654441774586411597148399174158274802049360317204724744456418973090436299408138156795180785028568761726101925066694721763815309587355759990215133709294688052750197498488327410061470956558551515461993355769450996405628914590129040678630504481184794054993492566677486517853221049303809986464014917004880776907488928930326607317957794200617164343147581120443266836558003833500746665283823562009474985258336424678528305626318052787019718659769337111850201934384675646738060495355719261522129623717551685586904000662305557909155738788862362034346929146875746045549683790521158320684037524377567175559567682968926961256829757597131993409024159548162176843318411546914289174658357220658720507209573710912384734358761725508391709622403172597775259736560283908902762426901586473583916973190132390973491478779028043271607153842903919282897775583953230161913135385600580112776575361134379851975630358534042379086039759965359338492450697261629692597193895662996776607712336575124719424612180280199103730954312977779259114401128608863914770763846671780272962629090061788933533003138489266077987988351862064642678881136223434750209585496208748122766934638986728332007475051632720390773835130042346579390709350800974103469709282946289185839561664392073751342350143503538433862282073012362846191212565460714889155062175791827190380494576207565662660740242451209436391784924935686034739050557887059199760795952652503466158551852324487102829613705925526870069891030236266058602437654529764033897727327663614543214112417174628270194307532519191537096067575256086051116500094642940745841880283106622786711660600331951539700950080223093174740342427515284616214505822470791023743753358941231643246569096843325265502390275270109935121883080802934995414508826932714891393725783725424126898928988532067197088303712086682286772775461184762599154780350631955392675133940950858789889457410422557382300966813142436420461367107844917965234355708641950244498018298500546127628680886658146977563724690471117751219348863723373093163998769278020953560188112496263526898447051975136211217594323933896745127007837301721361050901404591967469796633495496645010519651709009454490841110848895470341985982536003962960982407979340801383889133807592512165388913491091857655593213683379620236889826292939433045073202024194370122155364462699823426348243111590261823019742706065248719551842885169679806136240310170280803406029435295123353697704823235674922656832291165209785933304517968512897710418579308816181388987013126431511439586645104199074605678279385375092706537326691741332252125739557975932304667653790804089318490981208345832706366198124728469951404979662978875889349624667389285190732059917571060645729472295002051362039080437437607123265098389911231243236495779568624585284113146778950626538801525872165297284349882232741983267977197011782996597721637515517543404786545876229232836499777697751798170282915291043883042104652180256745599072786080904165180506742581797809847157125335427765997006468728429861982904706398607480791049376241425617437088398772554306377353718586930648788498050435078610164512216681218990380998515984928692137837101704236347906572846306726177094237945141668477620310995813684782167631945008043716655450294603298629537105196538543008099082799239285073995761617598658840408214837061435878222979395984693495245045763509373804503564580739004734865052563516346108921539458155260063451699851145618531163947453965803581143776651439443624155777621230648518030285328375497592662606952034237570643322319207680422544228218493789445135990026997395507842168879868240698882759900332499128291384505218002457041828008755457538714893196425263384299035873669703916757364512135411765793692303187379491843506053110105474155793294921833188677073072819223979951771175562003427173815647066807632420634167916939726216222542140378442826762328268467861570940214602217645948681485668809385587748414531372314067839425797320978890172932478134532386914400037600289189161641332205838404632104720629507439779445025211199109885298781445902894605462879663549640069334011348119229582710777499973716024580927624285105810637682125448742741185684546338071023135204692708096194698827701257064824500507864228985417553574342168806856099068696865627488044535947543433558646892838341843482282333192128458109750543513188845833399113833817269975183482127781731888852002161277765303117607570416471485448384298926271838362267691608177564080275247187946154152235722414672106374271917231022709563208981140000038068254310536831209184859294662045789325537492145303030640607994651049958203398817422136964054208855027399475051558849176475174098079881718954962764564050065465194793080097805930481218812099859302581433364571899620660523439102909521277489287406077986899047150785716179287299567066757105019913225137159380272379871289466117904993255364215902459884055377167299111715748634513049851475457185596779332918824396131370378461635404167036993628567600758119843404051274922273042504148128102504958747246666517043016897609287280951737482150312007814747230054308959951981203746559681846046652422987742012339973924591904671663306654496946216040384643098549464182404294823655602604576436058933043576944817184514367326601426531338960996256368295408261630593692081593810492549502092951426883258234251752727576416874785691687576562189143034980318551528405582262086518487546334791855978432958789405680160821770556699135116396283455398249348742106624026479354770615211487677589453955319512428141012212047540041077307895638462553953354388321088189710948817975143117770932490929808256142467771757057117754018329161230734752278805003159753191028116356044968649712494077092727479458733104772854583388182117272321978961881176755632690507413310587674421698089207794152001344742334820419469828606805191499495178697169575713895090978056407225564969421906729778131186064247979437774166939598016485744828244078131605349788279161655837550294112060193182207521505578088906405640427421824151627662523822080035588668899984276461966127891047962664266146347465046177460181072130617109020172542965251731796824460128496216518656978300785147275292450248288460014392706106161929424312801024170126805968695512457432277251184385806391940011528485795350585846513226362132422163593152532471342183459626395469137353211965343502331133708459593397751552325097565769314670876446300850314600519262474825575390047061985959001008053961792761843515680887480281784734424618096436793460414672230171400908759150827062244335810168454556098963372363083653128820558604595113220063608212737108285810129664111123697783691858669352277555077333219190111197082537758204056900839560784986009241000469799454597910502601898650117635638660190442945933587759496756012036274950984612425922321750192750747079249138182133060919003870473354475030646751711834855304049359500066661195936507735121646776322936038954168898800427333877958300102573807156919178560620087763142975443352731384188019651341864893765429134822715455758001810429675665233442011412505653389738717261447961000412384014635621758508424953438146288232221958472953532710620556862954960013903634455428489006121492040323483622914142550256825671158504900771087884098956116162988922211275284484847719848420139013726889977562131862089900128555360281494555388822269245632003291429056717022980011939263163059136418828913844390999431356786608268819917633908367146642559964299496772745575648624656195735164154449088828326130377357903807758537101868494582235840044927899918332324251743779995121726356391755212256047194804919243653228890973749186043407285828486623826901086065785246189694095986378149763287578306753772721039503045968648491443478336476463011626272627520792459980441110799770275355489676401584687884211192998257985944472916478323177638675674622557760551888831712626933479578486740873407234158897708803488076740286436559175641817610448616741191271985548610540167908463354688615760491315998426265121306664077049980653350876364016979273428264277277117296971903542985725128972805139967256038399347295383823670076403609878673938327074991802342423748068780180651897215948189912014558826454056971892352658748285891614079384564070978465311362133769350722526386237894061544197605053826186763647505909128768403697633077203154724147014355594564651557949752349982914308513260703995038409816275987825861907485543228614848724288778406580542276426219638428682058472916777507107461318515231241380256450826797398774078047479753966621171040057776151682730641809091600113750234652695641362096555002691805122484762225128761018548745814088866674786219023867857156051524187331640170931048904687202351954440277331465448113200575345753095401938348609835174793242327562477228482039619447497666548775912383872494648539133445257159177464016051019062792206794914908342816691479131203765886142910634044569231429374442319758129982877847652889150304151865064590104188376950687081631351722046486778431988378641861897617244588506421428856882453643096467390578538294237919503596099408526501701976195397728707445213545002750683975886251253495073936717457161963746236650443958862986402653286247283176686605952528772884478074089520461121366080718730934490796869757521332560737794546718595073227829413464421696544855002146700789556048760729226951150482890709501688962124638740223714108580385291765651789273918586097712131647468599701302843583802955295161584972021285194956649612473012644908299111655423894637660852037406323151997081252190634148396473739089041720591225899282597020320978493151259137931836083415741451806349213163210800474120182282137214039076620713697423929983839433633284798218079574187277998079657937306344189698889286637712253961576534563037800855423585329199473929270175310054247847992780307708376477417727006257440617273481509435759991403651458017164704218357854306302257805447364001692065561349514525182202075018110468168527260271656418104483001424193400579299502580073075672797996392487874070029088475270757280965156232606104284308060199044477719703086095085154994797987944011005903276811359862856696242485732481638303282793578118435857192788520720924852426209313573928564522586882898300204479439849167218912936130191099358208782656388763497972227687557077647558326481441350981112765911149786795808977011692764740498590516263418067798133317176161281702143570403499324828057811343907817682978598188761631952148212098677784249343389610718617584326220973829900743542327999089617130469175793063948617078502853163805063346012629793283822385951110629062156642505324076183841257875227850447652039453405094971118463217597907635191551978550575966748713091327221861626106826581756680760704963331973153085471687959980441312506427922178041314717112617998010423537054017328831904890074196330596558457290178145743943082553534030562201393329355511986363274885522505179700305139747991373407595702859574044978664571303909596289798466605325729188941288644674031122167391449364336558864552513994663461451391605857025695411120467497851156955539256005900991974836084567038658484680376600704039987951386559896614442171851025095811847236992181377145083365980340206052068400736320600072241119133226389815481586162231894613184024543006609542503617188164900327686658296189932678900021790482890076744442187279051409833022474638839282670600886869315663039822844268341908049169447893009146013989604850959027904511217789671474574544661829050074319678694562257602514708294197484668033723097098263665060419086725938995951897176400947490015553030695986551607083952964624017710020836656904482050009774633919741913350845805186923692279371086859123493882984783725167698983431286413948211559487279908424188562098318327770531572349173021452191060809626923399833777039321802603025898353642001849339600224842023055170272879926324183079236029378354696767870774459581158448238424568199874030014884509771182880128427356395128583092378168854102315434361124130579477085500944314146085241877495356199812547939287002890007009514333437482490466717334280537891539047287422971309674659146124090833183752973481575524772452061111984396618065275363239834226435869358141287905377640340719487629817609200694368249355100836200657347717605571855985426423944931896414213435098170027749197236385812780149155705578714418757293298505064747806823836896836933907046977154879597818755235746214816152066214455310719191638787351304860410954123257936752146169861534715147797118016051214035813087358328641169811941783317957658888160357649835302799420364068180011251152688194949630248518942292158342300732919729856386680127289687898856955920056056923182811166239879828421959654906057301023454317569883480158691692549958089881007290909025391068896598465368960136775069962845091763668554985908852672186259050591258061587671663071380274330538327756698446350851934131643584281093720131009525149952618165171760499681378067164572795388733587374662533480742323904364622070644774128756738128739887567592013474306166416852125228192536412857679871302680696452759695949232283621494663579142039762480954614998762393024482042830629113547633703052205764037267687449388417379254395265420209364912348898919976643615696245030486318040767494563566853534021445933849495700693957865068530238447724194078740837560526762003415197208093786606281774151818315822235759291884936464056098202873845736567181198066070426420427312310427889506219556551344812135824599068863853389422235554508250471795671441380090552890930757232552778030219204832681052410945409572674751952805088271040299272027095654959750081341791992641245502057235877588138382147116241638348083724016401891079338791095855801518965708583615810983256349413947987520273487566101413989227108172225170114951817701957651823617217283668914268243792110882642079638480435702177286957636468478057904274878691148354434138822604596169241226891867668929627624868316058954262095167888893571400864452501829486643744207196432998635576507587602300621089257247465698655563463602844256530569619038490145086592109103869347675723693217495523167829577121732973649025974489395312814402733222456761802115500054830512937697174589333339296907898610923694137479912542421431235285498850217630929982758823810709429220632536169899645464471609934307485755492174778259714302477533576073853648493566748766348000879081218975454347341430095957394541521906663273004469770145032163920375431816021661574906224262578916039922723958461903554802382241518722580542038618653502172963017831705457385749772203630565526213504664951127652027951924512799069501638616967981802826040861440945679244966465111596337487946740063561443064133522422765941149529491159105662677865693369418820173175653333669501015693381850506279174546252745844494099286590705012754160741361481354626127259797236288361036326949499622081274482214717178266957751533069319052708947516117497509595777487264940894118883643858190699255861659130054077753941820574278563456579336551107056257499489435520204950107524188818363624961189251566756801184777626283693285894231511148485409150188587452948688065965940855304076393150245614115961289395763196559290963609871389661377821158688655351059446780163136159014573010517941733286905080632037777283375755804919692379849375555201817383756001654633877472105468631493086176737131082854345078434682522148809915761734073715720423238559053839768905668360312266889270976227383717729079662994275147651661989911896402686460329879235486689068254053866171525622885950525816192765163733194066466604966887863389387779298284722691073422157697916091684162775528452378416788513339331016687421791349608320824807028973882387869231345488519534802016377176820671903969397943943925197577556982425089609673940652999787765251500634244966701468806581666719513940603778582670389457138769715219110052932062324901326841177560793705102805109838688593071946490357776500936219893928276663679624449319805991169285891566027592539305455920437958755798175509032889566482222528129533617842259895330074112880989416884380428338256811905003406865690601833591570925924267218854893703971410363719430101473377336970599638752532487574498551840472235451279617940692662184629638425184211411673066856345481913128976945711611409077551591005148424964566883582764414599029601215108738586821902090469441147842887753381395358670195165842527574456649262922408685565902376246301984936833458133638585031843760766886137059758874026225998105011472292880350966402167482989007444084726328719978713357872621661205738026588508985180169160046718147951517623032618926704425884443530321751350209624663606037965658647395520690765477342200797607124325070515267893731935291236696651633503403659256604736690035529867280802401808740439169037913671579664811150345715246133434107771192495772883286972031898021638769310979173156182479537610433242213779050188515175583489663824963643971901547081238042363191327612721013470638258944785590818484989397846810583799471773660971131909122196199024094604085403777231942411355474858470875521209332745023880022482828349141681444079578374654456627332971409389389137095825931351218128216501145090557414078233337510867198523773798637450972098862273650026419423908848314777073453248864752132269400747561893831968959530288138049103499889246532595427040015068763123860571606918085388737631607925154211287368758642424845788719168703154312295111759676826310813175182961581668332114313993639938984135059369086601707393788161331435038751434955618028813190090142609132127657873785348936053998981685831311326153381705914721377317335782719302486478813629371380159394129277948100469736849800394653554622996288951523312335856019036227839900852886425831992068359447862776501930381335224946894127524766396908551724060228876706753183655590503054159943192468285969095209201647960760901232358624684329689348205204899653731393495675755158766065807444626153419102547025190526041593385016097698056577985222492313842630857808484733605067832522514913639275506177674029182055843187783455784487496903533696742908326082369277203360904241170945055076910663993362017677955857925605476789143711538036357268765127381485916855734286924464262727602151336277437198138801341811411089938498520288774604130030555678192797220259578640566039275367933459597271712849773265409109253059064432288672924040635780560445220405166264505911651290799022470407811087556699764104580997206149614496223656276599141611831807902130784648568481530224191062586013723597203376396715561353536471268624549132729216801308727829355806986129410663678017419535158871538435998978612176814697086657890568600383143214483383468603933087367513670815610237054522356759384267500564941613709003237494234809475469953353609252890451846422637062300140110965710968562333148507062583720418690619262867645372109042360274937773451414686504640537139287034205013345485040098121552165023894472675363224381676171644009817481518389325682852247201173540174677689490657747908968249165583460466369552645584270275410529128226301207690491357058576543844995482583758547916118753355523516776171125789703985580432499944866590309471335014750127711289032126455070863357792174677969904173214089221138977506093496883022194601551362278881197066538349525484922831311759173092211858816785994144304623547972680523243679402706281155784536524223769697595758417076321816171181258256976717240307181664449045502043754069807619732843268674358822017193389985131767125504282866001908646840311104789270028922665579412217816891477419645601095772612604412285280122648486160354744201129244955791418793882631826137399809513862809622867314610130772885817094821927232109459368836547882306713705906588290952359914087805311717103740008029502635604504237369934643719083235878401074265001837616835951212995844279792495106711301486514322604375723290109010478678914797659341803241809281535499912174306734486060696992289680709510066337706230879207477157386074857409802937010258369645727356869099108929857989141225533486088748660255720939826295999299350371900463818984815407858456922880452236377813187914166400213716498403971402114084830496259857089533640814966907205603237583037856331400019967631197990327323796405193025255497492142697241727855701797298924723609820140518847289477970612124676134821304611510526372415287658655771581979227796182389501844352398140118086341647885888226570735230746334479699491894290117399642402190065189308907762014058956900958754797777016756550093967765164961529319702982511300527851697979545675585471630083726877535405602941514449176782648854879359376807814131632309313660465155229562381797863239739129973755562198850357542677959452308960878056843829462729153626599761550198676577777515243711433222909886321795802398510265274582432857916708290807507071648913028387465381089237075702078202013898902806716325189552876380202926620566296803286437626638207436920006923241507183109544794863609922738995514863936202453092570440334151289026397509488098009899954032278201703568428266540890716965058286932081494868248635094789869107666068810660303576841924675595973310993559077009432645828565313075246415898248758189570422481780788521910595468688960830309809873605657701956300422817370442992318938305867360357568850165222750430955604884682618848780196931129659728778616573181645122509461227668699672611404891730925371599431974991865612031712427473527784674518489206384346401602113898407697878758481132346230535491926312759871523707999773146856569728281520670317302664037236673686812926322982885357034680087629106118723767452356985126915219325713456157360755183080874348745663341487055835356826801369927943118500529557640543518810537748404617329080720341632910506603571009100223556952150245199062719080461503374689070202838716669604739853232204663776774278749669401170541637569396405166221150131867117471071206490678934221194300118071159508357087959777021872889165634833807638290820613652777185592686512119429246460877051988073128363717768354371156164306093695621309734833501085651223657460801177435150158796399712742700914444994526876487556861729540489450128762695290974945360813475466720154624584568148153092499448149772410186169550229664219485943764731753818114106576488179409045922338473771043023204481771121722568997315774124607026227001289702129031992449244008171375770234507725243967259703092311537823806092839655877810014084998910080841018063413458808288544253450443244391228965203323485048744719677604716738766038611109745080020908593477221203070217361677931843578239090705674103961539224293761219756254442359057819592636033864692024044593486373611272190261961546019300053168341565897629470376714506597776645798724390249859475281127322549925754924006994703114206275668091403762989481143084195683505562929141036649703680618879240516277414328842210101592146254479599052057030482170801065518843550030470965454684256039986770250442845233929482746783467023362467082021680325650032118530882626851239311262731869962902665393658651774917167697441659330061787969380970783884466265686197328446791170871242412855666854756929883670862360237382667486243740749124627773784488085718106502973260361680628863282808511229662298956283029897424192917068816046009145616946973682608804049425893866538928340692051099237192992792277724373665150262901389368856626852634049882638943085703729828075862154289924002245970690319488587720234717350258058231558149870741707406502763373546589042196028460755893649205478792844859574977198764039120393252444104367973373272272966444983013604634362953515967387087842656172672314274137066708678382781349237866891650688167600693232519161400521040239151573666722917413876713236568373635805798052789628759208112013257963891580195478807700321671506033224042571963069445207641264035116626808628093255749189167979866289979469566761094568240453629213713982054530743050249510168049251279406617830220306582981255778304689062917781549961221965386088382418732458616910834773200626064766035678852797059772547007796254551528554701427963965129115319613897391045009335458507330698375740765105506392886035490167797207369501750753717731026210616015234387090746473399482507021202358535994139993336934536816006043302938313206731021906670451662339744282611290211356554230920411224539326763222018616136265856855545081321569955137645148577858841930976937088508223404638636480856372221267335438905326015300343332872154326798222300320312090055493720493012734836001555360039667464622009788547280863824623262917209199950082155083402697209242389665340824738131297796974695982394749356678968755682504452682500303375982232410717468611405481472614614648927537159073567182317531770299562927097591833931049562444869696389309742106276046806264531424989169407233388352037498786906960511566401833570615070961881232536872319448569756987572915428316516605523500096182870291095681721433510463483084322340101480147700414013476657117370802421113441175846019449838745117827130723964404071214195382205196392732946793087481939516132859944131496825466147751878592446442515932838855686654763470484987142691413659952656663361047933202621975744281511424049097024141264480295351638278051085049425451218415525050437001844489989437767523627080147310413178766323732634147995833623549131036518028334765294772177848317907482011718673335319033671894006189004700453616007595904009150455071529846196467039646064209955533130990777664295946251123986238361287281891963956231382050111155736027127723900143613871901433793280328141116189650075758273544902099285482862185678411152211237949379061625302341609570522301980029328629746041857915449893459404821331006157537609501183075882664963555001133863400544804327419715704764529567245532848982348154556633331611852222440225618602141771234991853771496585366220037388146064209091893213785206619295684119848364715852751547710772811123408804372113848447497572294207776854393487310298144625573581507200398916077418131352476647167710494466658319491244747336420517933473822218334563683125825280351850796903375336904378355874647768794408716884031845150149318744043350388274135476308492354397449877698852309793048972781524752640733088647913355047874777917024428319798063653673379140462960973180115463797892895602853622155319020053471383506124041192816641666231756740389246613476859191485162578581562125364803899285097584703803944816571552884947762144693882925273085380858912172077405044703774408503464289088466499096533787093606730381136469191359797119562693282307301746837188352698337386019495078469858399241906866416709724876632658556842407152468729868654598747619945985976764389297730188799267267545058537898357833229176291638654618129429178587579513784654771023789034243965211681011622640340423532069106534272057877447994972885440265274492427478321051645470193244416408167568531331828239128471401427490911826199671380784972733213539527512426818515129148147563509148626650742903129292113871932284819177593868753238368539485083384249574995722580683359082190636099983570970038820624160722558204798431366055107306741652549337440684407515316227872637899406657508501962628801104142944820872187737014812000001950227801086597118800721819750167305862860920840195565875064498392049748479852386918627728128635981308261697947084309102156249562949082404395739945336899866632345873499005080853769845974273029304801802151527231200985785225082685351764092605189235510880644958910326657738353375430911510564127658491019521147370680017650088493200196914341867114584958525039302891984333688199555158353007203894303525426521649103489566183392845042151296506032522828232929580015442081130980836245280778031204084272977759131988133607489407148738712067231670468848507360870287783867359294320692169947991320568736057914903770685143025258272510943597229556155067259188395458402643245262857656237487962539284752307364551200809872531171969066062911442268995407137747068413522391228283904598351086367728565292479283651571280732239589892908167441154540545927729619529106817731287104963052780362554589859484361460789419825548874847870648457669166217643133501785612866976241521530740625061575809826870286067990608470280094141315401577067492317251036453949537217798846084567813093504563558777480320022537813574893837636371314070100333327224335569075666572394634285978221145135818398561872683015063830799391168445552454904917134082175629108556493452975559130432907939493520324554134598121287933249821700252142597375413815325285017624598766103806798949566912634229199077806878969717972660802573126183143363255501355028596758404352182123304212385693531477525119265596410970436638545348914379740378555001692339883253150657500960124194187997013675741987355458475596232428304153383640072242251135932247075183631941581366466369030633270684249161667309909396087506040767426738736083930419750557580919083202592329857838838184942497966800665616841503268077803189660935230908687742403706227737832649267356648619428159384808758748850890892778036828818480687043501349623659435806072239083774075628954041894338014973817633822009145058577308632461032499608028360078907461392951399136508780107937259946590597328902597156625163356573977667435101438469826855829533035426585071374575539267984582717314664656757633230049954439319225984948828531964403295722741510521062066418699434648345529581062859578548746008803745626455258222923986756831734673203846233573600017303364323709405469486846992185285849990998331879383381460923369011544173259997745743917787874485529982950605067364771325028800506558706781207954770980668333571227881733758904466891153521533278706837736240532013507787846930417504663215249762429629240006018690463237049852496926616083814008056605642752174910804518805224356154480987694686691026747350270939791559170410932201513231072787123538736267545534929098072610974661445447048739618310849693044887286352021173739866874925038174165170061513634906015023991557630895802230912823365471174206444964021624606111228478482067110249431791770984254979306198722878764929685912775394139844294419063055865744268778824623027277771891340738230050648165808051133591248081616280154764462288910939778784321869640484225871531817649173983967077740005073927106323404310735292856292198108264092541477316764250491390237028549003632926695495626249344841226949569413186209702155456777889595898647930218021571947981530446451855647366490511391495459472596405719361697865953821991905107414305738282932914109474379053562642470378204626443380680891283580183901799945418953098245284621102448838709076976013840409904459633562963371716399327256528365274366024782723498245131410328252746347443430832586255202937917170636071243641423479232828215433399879586468289424167401045679369295974421646719095138932014525912354158259383677870713035185971198612725412446714189318334356639553226443602529034399355693314863930386956474663163620329277312691767024175871299869827756155971916090479045132578893173722185490988912336767959363833375566156274587398054447077062369948665508339241669367117289543039488873794587286148739981250625278791438049104120489555453357376956786985254455312371648430188164519803245948373053744062990883171938584964900063557304348556054180680266467555338016157271151058909674690817903310127580032946381672109887044797321257295437413762863368694401009582072151622468716112851609336831397022945519550725512472010553097678079136974642210782327557695716872560544306250408330674862469704116606233637498972006027691017638403851331726319032017093278560817400310805444295804846248238087661779079648192316957924627614565368097228585321240706519967142761893487823683078096573100582857553517050695731778973656419704105662409792511773765319035602313704608548246083118856062664319805577693651449902096909122514742273189082479393882139154667498239492507772172755306466603361446512938110856473876294222993823737243003397479216669614497968838585054975029516466531082636166257204192109471265173718579178256812569768115563707563738977896538676675451147017499100920463278155598312840794768940873698756675857396533338331398581384959217174444055033267062588021551347434365650615902936183799699336396414604202703323129631757207267842294908097182096091365830382382655552437131214650768418737066399249305226072829401929408099061484196331726455741630012176399627836207159753239837822123830046697944837096276905072178137865372529671663251791230487001244269257553593164423145867686968409570926133843505743824645900432989195318144665668020079710979272401892677035978077493972488000221484797928501691567223888375584766847729330412794312333382701496851359158884593257213285914631750450095665402989539806398032855036857926541632455236319742588929640814051752601213730638992522651375758738056416097851143915681919082083437411743937942466773304263036343877418023813914764969332489674709186292723608091254559969839787370609166549908474594213551988490142265033968748894530850418274854170580862576232254330055137013215644611264361116231812074696406611256679477188480159689421398632969169628331604772348256877490586971641035167405149475443112257384034655976914501446149815983576283533969995727952051565240544868148167071623802583374123519694109186631381489784107138018308711828170167510528485007074020547980149808872210168738901873877607348585599955627292958525150205363834175312880766491059116022590175962629044475804215283929698705965199377550578035084905635364229457567957492668260681145403920962192508005189975103527279940704892674282804708302303371108987733806942478674622660343238534650087469323415245005069018016764437420135345358750316885226284036288534961691391159545329644679422619754676678030947990730417017660318335027410783854443219830850183072244815443620161113128377934965451658026355223937700107747752745876605921412934634735188257512321715490749881238274669330852879620801443114442788674219378464765391811948012826892482622817842881224373379370604311749374560994291344037486965736709818557112394398909916505160329796369461794602570535043711720775563842920653984181933747208270227018921737022474766202858782030267277792564733261099549170217675104566250477443501115502020160534777946304766308502501712301888510510764694064964098267354653546264403765206559685650580260525544053054756299909223296039177802893553291678237667327199937725521486155196353462356980106600537920484592530111763513831416118188371426574814627272992809039953146532294922842265177704725521691832388130802619206928028836533262275898670956451351972455228957861269268440465227770252463320125914209838608643563036675711939799952033077271690831195307142588999149461172337829067837702363698990468533848108118038096220226598864699977896110721987824786154812023142056078565351915127498493110353533067102376498264555861342666826517418617763591061322651952325938487492313989208228382857200521361306031465579573150953444628761455599811120857405052694811075267592773663190539345281337518387836411102459503994151700751351360679804169032386092873568411555149435448697968021088708200257726614881414699988428084605646972362225860065189065132320127750412797798559589899686158603419283534682848291392611315148843749494208564570486294250704493487341724437896898240380556302259372089637284632955988071291779137967579688121943297460267028978902205985667488701020308043442830988634697670767207818316508818099470065754442360767938721231820700631907722767084587662400959074710232602361693398422176984564191144236073595486331403540519176425285921350202640189697582945260430307922340575137938988283436786088185502698286760129380841806905678493870062122557122053890340569099742530027570832463264164221365265579865996376626198551560946501538647930504283993345453807429885197733760616637122734888198845375761405893100703473611190515485352354433289062528977943044756068628605124626044140784561370692548524919513730234650052546714842466807239207239196093121234219163344192695236128480124164718427573029580913968843051530349808639791088578684836009172873118954536044225624477398030147548371315070280236587305444977370403321689036362165071911288576579714843184400977647762794681447088720760890647995078579334832682352021664585953345109876178854679028645697064372055485750026626453929925086846941954819652753902561937113171585065183116962307171290210207036512622066806109595606277833799141092554714555020068790329796739591942332110966842058328996343977940444137055484978449315882066992134744686386088774708794251747221023725762053716752026443697486696152219313803654337819644808782953737578223752082895238449107422633919555176911345156061178874951654894812316522833850223261961080948707863893448324775115112583150941757549094710117154134124690685921342170975688334631183100073293545998040856505633182799574316845715766741445559055479245491892230462693876345512152323926902697661181554006387320213266195352420084297011686738661832170472364790591366612522158891494983134081006568152200302201625662787259456886007776550581023428509476630367678868842477150260990868899218444604237300533733205358321716047409260245393715804674529969094413124088121929762585178517941800513813717707706483616982359494149967239481190144218706874987440833335405156601538371977466610631255671779930022183041535585536054193970336758148151847464694552829442058717400533020574178571798948820147891337474145593066697177106568111320504708494928663482654202300391199615110771806163787590174160160819413765877179369237657161420580607773997620397747051645826376252537247432787554295176302331215958623228809338396999490475681963519017133895197843002803375315034067755843867558482100254239897794276372919828757868422021076518381125348606324734487779485743794137934767672860550430315260735926409175427255295933882681639523044036517152764862735193410885363136788288852841825670331258488518407597200763931191060298393838611406919316007283842307615171458791704437102478850715398862865102368560212285704391427541674128897734602652732618757370730704619026660769992044671588846639643919166114459280206286757066879385704524741537660293908951167421830937975852329354487132046465345474543002497643136630699997648955670838394901579049425373038327389519895183951882706174531097954017964279970984002030425797790479736501659009357911919762073267041248899794181177512677676833685985172136717149214724832193205516407756701832518367791292820542091233256544490089931697395886681400614644299417350474223273271891459005348634924354732275886372254744739051574200610930471797740974683812762014636996738027356838951982080802615176680525631757698720706652332692753415284414328566691868435807943696378279406931087253468977408887742780921297819312979050730254898351395251043206697127433414539964304126844426753918418876726423870061930646539632126230490580194069422727195127121108198190478530701846970831642135611544617148542145958269286734093675840098756487267986586327505006799958478435871981436319940288480667856600262342453724094288967579947616943412230514691627475723875660612768743823627297230746444472305505979590406611166349013787056410262908405400891022369032116735375513005050740632478047053172754212087205639484228482977957466026842548379176769195076548348007732540788908827991305208003435904299323518186421118384088553126439409799120707993760648221825631798754658706091951869089772807617467173090849774307929007586396844697435495711060576209040917821380763458745000371435169642767325513398277831539051843694791254639043309307896924664022200425467419212498630591493755861545022340319350865149486483138330386235724865869372480551047982186742358128847080446462334024544185300557975875561125720930647822118786945314992762220177389418818951254585796801680280751215584631110520282570915107565023807411006904924444343081743083849248497950663559266147766259661670099508645797409417530379595925985117144618396016381070635114416276909620790918088699941983102460091959297919161962700489839627186941986202255051540057362709134554969204805033516230696632059418631034698620063675464227308046023018137547497487854416512778689519927200174226718225908117060135106920438641240418727356743998089493678390839737273058923770254117726432938062025120423998848587200255740594014237197497037682039206845124442592199932942630644969339744784670680151748322745369673275553705662912631037846048586469309058943975269908355327741018318403955193042863737844163324887969367025721437004677525147421347584326923341194502085819651723965734663838668188322199482377759048224389867251817865800628545337148235379203593706361223430064395763187920206291711236628139387148753343155633907978213191042676620098785679768185262366347579389188683289993131519997484785157288585778463613789474198487207015575157102724297804098640966683068740464756706624668444309879876015005825739132281260762236255231725054443724830345714997624352240083883644060213459988249559078238532448979197632584713243835817703787749328447547013904571818747148323092489830424699550792211285030692605955141476555650301688655809868641515416442438459310892293839872798827741752149939283716238858932661703914710109688663190305951674302456753828962360989971959556284349269670787442477501514435784147130434493050219896353060351490999549493824396404967639760666102050396985950579084379261745091944751335518328290851396273269880681279253961995381062816541149657997702052265537660832212016756644338376588821527933383878828947139751767609718852133117214799427983445213515571338829480653574475138813304892690577476132421560652874189551860789267870775998915961291516735898268237311765777330355154643906548009878373073984969978637660533436575139285345683964354003904653647357996892279271913693129188321862567861799298435189329728272243715305797099010092509869140114947337728217553850965396743809536316504550456981392849027578537381947971353882827681438051192367729833575666828878840754002050109870101250288368265137202647761362680756508400508708959580045290238978141921321981432385431937076049411517978192974959916574761861703655788898528096171449012916879405315414680967410506660091772499874053610743372842531244425062005198591122548047604018649916484604640512083519881963923007613580428122887252946129431085893859000134806618673656042581192040814386252174402440085075848002095077755324040446617939692725636569976292376433279078957912153639086458191839383970666234748445945925597449567858941702064761527808967493431364148002409433301813736444380511123295865263297615563658344899443535739741190255457444471715130352692371775281016623839026535395108554377771642850509044302928053438686401184192643135803832591982413061542530892159002932141799507104160414644675214690812529456428341351566195606310627561852182267037744014574913163044188995649760581434643291292379791560036385239218868457984388531500462339646715535719623392313135255528690754185289082228617268987640226194437799634946759806659947058341736147906658400849823320492364146362579365927294471573157947262252656238784341356395265015846539422241674807334454145936351563834110740799212368295317730794760774125731446265350064473135315514665526876223128063800878681606433677923443524619919213579242773651284388924973694790612840026188313143051622412994957275337638639308923898963481838481969914066803730823987192428558185663791126158890604419465879329810887426097114823075600940981455621013363875308530693310221715984276480226463415961700171514522985131374731686803759297389087753805805163531232380501857792860917479035880092434713300737589866543983214730254279459321237930979335302422185251807067592978808020487565213379303669033358955743603812639495275173777478689569085405570758099940907234876841261391672741124111299374685969726671476116846800800061209913223637136578675003021965832821682355169611315427431826568102699175089986945530581092116166603001498232211053848667558444778177867019027145122391629199987302316626761725287727810343858703229743586762192541193183072010451303477830024096548601431694100539234096433793755050040398551371410224243381933129552325469598867693437559745520024399615981045774257614024790970214613430530609728149335449403476386061823904829316111857536130737916495172497101006054721551996289427987159951217811835897771363410447168911715930203791244802672511543966699404784048098662526150122089050280825469115489561019173748714252582379675257208403665782082780284150938082425006714957625269564716664105490342538816535942055073922243437300918002077023186785676022435511924056345312682800718942915984603224928522271124104848442667299306290619753863584036440724309454786071599081865025186889148402893544511765165334098909630135839172474685781859007053729075335647506225027516768028972475670179710516914759713081392130176809145945834955066915207999682275285405590204491577058752153306482227337693228740641595316494799376510385326420030514956546758943159599879604608691280436450546916635585469381671891668905368470708124278328204244402409071937096594102941382480050248345719226908553421512567662735396483781507797909390529917423395437787977688288946322996340616738613628262079651418041988713283242954097408414368567987130026066384921265299069733115629720353484612152567347768266660916343925953078574554210588332314379044528276555880803192054186278389765703949268613241314645256856470917236046994950360802946660510157390170408958791189408722906404626805492653096604724638263965418232053891416637418077634501146335248665476578857833920043518435589093978328512273334299026813956466443526935839201538500229699982402006680076845383502647458771524817862667370654476144332923011317033181854922221549645192358369533075594295333117381500203441699834587482690414005495449122489966276909881807420946299995660375767002016855579733047117295199485189061055261117432354226360386838870279510254245257822049824517603174945995354884239299762751262323844471233666999558183203814704574756746860439917423497114513625000225755865947900211523763710452360434852617859185431683492408438523546497287403998523291371205258617379125972986514910683619166735282160772763507687434914548269187823132490231577809312846463583866504405482528851647160754086990533504973378601807995707693867686085200638091865663823303933489543041724790212135664512662032385169330622794972014952013218967582019188262451743703315749836735546264415119348106794420257550444198604496345989945780968313504366480663508954302761499977701104005176300943961802550793897224524512229872880169888244157505113391553378703856743626935599115960811126385163031151821548718021472365061213314101048730277997472310544924177040152664280514748110185661628721790410866616849020979705870541878689736465494617961067691968673577202055090284297737381465284007464909682223171724866021584883373697347379947600221271165037964638796456898919918978759245581207283573069276857235932951870673265015732294109320866463144321502766517922231367086662480715708248411727253745026085301043613223394327944049098291332918215292370882481501599081815530266247780553016491516838864674468503922060765156389437198855829970618954928264339335575191056140763248954409964838239349155740496313349164451448659950160705795890162532068720120133611578817416515935470477631903837458507568473251086101686355935286381603383638011690671576426571007633581438721791202494588886080246914474449186744162376259588192793999448448175586676875622646859626608975700111187423193581471921242589971825195623898714642359257159161648900210848485872204828185090391085130136525896784892472051341820234243837448797997499411443418039002407100441448641075448506521742361244487195658487960474102845102814176464444358757613449709814859492316340766840301668353884619856531863621265947892134466956074870106973072401423684206286166360207706798630443553407269068854205943333904799988603661533090733576916921280558753922000269608910143557783785314080283314135961795390312481676869491599513046392901399393973969399931883267268492081895008976985220667669927201710364070096457840428043410375520516085356217822472482638365411518967489741676328441508313100576612680785348136028321442597522739944651654124235949521386389401212912121393983380025482415785671724644355269216297519492029277010578484607704290524317464865266623040831107625893364403191086791458739562777196576567993817263579391308907345695298930958808813949027757245564273955720717838731708827726015152511986700161659215311739500852980043382359683967977459728351405092595239122875239337658212701487146268135811309695617190839952610558053504832004571065192628517477168307369179201122888417960490344396586726956114832928737716029715671342162744970950966511375207398198694493328566214666409844598300295130003937770167811459757429351630097732737220431117638358452378596878533031682561528835820372250040805283721182180103768136112105787926561540313857787408784984511405070526299181857922041711713974675098363619763275081803590993512548171781080029487031841702425153730476650607844986231772147935530584769510724572751340529973575464899893261471080525955482615574160251626370909563270779871507747238500057332094389757025108284947063219908521359204019200233995347465334000247071647624891263112408338449495125242226244427816307347133756362034127768826862338063099538992910737159487937065789136421295432603190057737135699413109249544203417919393905046911682926434316028671049684338012259740936127168348764877869366651988895119268335063296616150939455349336637745087794769379501888735678131172615559654158481192211347478635388604788104249706003540910112751473543714660421249767742472650264190275664732505754683074960806965373971028202551852830768404754114659623444854670775891442871563054832591859852683585401537824030856209504257517286593980988412232394694687483928548224612888914234997721596655981314351993565551762875321130723253872826347375273231222886103735966404306215839756116907872751929224411352013000421145524802891754971496659108045810009770602387075675492529276731046546099768676144831725388604795280485048340873232280418524543509121647797011769316217550972130261240966185989231181987356810473233653874882569519307975841051586554726583433049934774317160606264231186270251787199560201929043950418354709057819947115502662560813783284390400632724411348104098236488749813952195199184919557868506622686882402199065514976890374832796871343122811775698784183701915569921303695012010865993744568491548133467534660623808699550997143826667578155829918849074807721395960086449115032448561334684375532131223007843320233635106749266837082416790472420433950518902043199216862701891562968833596642404680624276756804342751581714039643909440099454213363076567800786702535234818612712764600938655027712774467480983630765503201198869602889332490043240985469863430058894587286653286050213186715424404361934543593355811940782034156049492706641344531209936758208396587981861883957911327946362585254466302439106554796989542013345751042582945047232463872286360685704530880507163135168205860248661658975456083143283372514199169250971727981023858091419352858478475834804937157578504724887324718738129753541402679197008635487607460619154400025507355480471744126763917867651643850670099582895610294142628757614569470189506584588281528524480534376003192803124641303195518493938305099519419778293396266100432086677022819249374851863983498365107644322468755234533461919130368243921182631148305644752454599697572250301658164204144293260634567942253941926491381076631451162932836345786021267415855983199118110039668848888329806719762340628195058989474158284641833606206775435220849932859711661831562421916291021815257337473470521343090294939432522565672832223257006416152974455600908733312748485132914027617118098796700242596998170423896269758395443147336694689914288392765033174780452233981437499930823260293485962619863158821062526757462649775222149298822946110207882000602448596513866362738129622639046489285143660439096651272069088676354724055596633797590393753005632205164381600611712580476171358005630522229481549076811857110480833078609619748829724390944761050221330434684140027562070350569285550072233564726392746288924186281225832094951136932687523704991444307855454191219771816647751358707728264572835395821096398908105051715295029057889388535250598522468343061953267131798240528662158974286914244539583277923412495651589511365322616881084011133253742844328349609600294843873461878661047216070894552306744622647538837892973299220606197343549476786710611787462016324489061690415039543458908275624246222474288280178377719212802490715214095224904546353926328217248058259937882008225860260195394423341594682845405833519103272169294217234064247399722500714411439563372518655755496660522784821377740796441273254409915160583360027831142822212161754214193755443365088951942657460054724626836554903023331488349146792795855060183649282739482933525769382315357307139035408760076831401250192242877555879488187867713393057433496432989183471178911237304299925072937028163372042971302484411053237598617533845214126992010385960339881666965839982202444743258789416625388585371998331894562923790954253374134043742283616269823502882429622007103537221714711207953223513799869780323137679641526297434362870960773574144659469031522322471850344917278676077102919082959446525637492883261896745523139320682440903011689868459760623321248151578168143148440563078055082975792434887961494957039706556235843714996847744690461441745763370954837182975007198286790174860781209959275183929264787940470881229851017840130946051661012252176057076203630162265818530450701037205388773570398664639908134830160750470767891736889348683917864370621876996200469493474079082041367016634148946979812346648300077713220245053002864129480786314630716642212767115538211997516851628781668457967978313021973998689471699058268512282088469144673323208978931845066998204259855362927745429612945643614664296390660828312793591291352351773871406033686602741480281854753240991789425243905284283848987593215456050100120209607664300972973630995471102877655913064553064469215713859020677161755859940446966482007206016796655677536449084193799978230541566222588532906013247206645605032913461722354698692383262178730377211540132414419578367778026799658535563149187719070927264905154151976201862409408609641330042902468357406843366217972559262780427659997403341459811234551172670135994493675700191898361668517397299686488557456342026610755315090545216571772668007875750093467205169586482714546125798570813312702728128683925919140468780127546662540522854252042368998533708023537490119146153111154077939341043272797988632757653726903701409136892759841588282933142582274158508945925179073375780517540044929447068657387446393817275456866995989172200470315319330188043789435042851305403706874528842041794293012884373025541715180551160534488552103793804817926854878905737650541722501238373516038874389033852539065919434308763585711811101904955088558561293594354484354739271403016001770275518810510106498215563511176769915013791827279196926651320405254046676689548948647553707450334869816801244028439402566453246600174812222647072961668575919559180062108377557532663479681235775003409809148593381794515186086078127612680650518324341189427957728573001394692374775475978620188539628917733850726422357802492900002928329287206152539906809799949478105698019479423539290065828996319491246032417406964585899256011048731624050817546627342851462859065500194606894906715901972514677925096008063108963927283106098721725952532719266086371272649589470896666387844235616030392268071149418298545274325076994064385920957453709374446360147997104343063472975819406280202309750652208314804918648627610804285267281160967795100825238015751714145636037508862950407682848593515704045977905459339699010604258249458692112009400167465049271927082336769923721268791112597115063304077874145127745253198139685085245315719354215417571674803253111247378298579090877630626067868074027937253188784043491206512232587451759138315322471184288947289893240552534415933398941264267472250314256889243681563467238945773599077511599452705470950533670102782461040676212908265209343938041792358145554700105831950896951438735284514896791460695456747212743682483430460052150832357490687210967407959507202268787550498212190725687292348167937222194265626164552763903923628098741330728661047613896177236410057924265322501813693796228630184890176357412580306551993821245337978736674855537361457971719931865763427193863153743390982064198177326599310226309599007204115036117498374768284428853939085770346641148770373011472247691797365252779619953189121633825107754010095018335514524939425177871931475647580233734388654774436499785157473312424608754571266956035364264079918880684302743677796815041536902291893799542057787659782107618138501494050929089799809895126540273120859178952685764428478150792336168010989181462994109387853416687012375695595402789643052208411166302762141963681118845313500893322705201403138444881349121312203487151212116750452010494361219664998941990430779344472693291091453211067724108200169739513412078819483948879960697507194604142022365574805483622964869754202804377284949436046665452289122460109691124740611010364254729130983981786123138303767348326120958113394416429281422623640934034751073766479743249598973312882192068183607739662745398166632385420730780584487748400337768925757151537976866036520834901923678491709084319620067322677766841106190385876730739024485257306879080147327495551729547320838428329520769298721810751069780702483725425852596031439636902950219459325234174514296468390318709355678249122065065475962289073611499077545055887915053116462358966762040744379893468457934633837590498268759669606787585147274416466830932590120909051304818142642934195842541771567284238139617081735023238034453168775189847049209842708534223455390765542452114839532128876887209509104557069032747620267348780010960973437594006454173917345751110615029053399857685309947087419560191201755776757806717159827019141477498145196416705686448743317306716568092929179731964495782441854144704670988324664899260096019083489233442067456332191805952327463420058292107684987947027036045772298803387242481398094111831906804078260230480190755087528252082274913797842941591171025233120480124524584109110063434883678500005516170025614963101165644741316204958969566027650739126892170521727038593013801177589629628961604545920800907010143556048289585733800928393070656928344433865487305546858770457749424447634759051604841598877522663072603825835640419577995591594950586302751009735775199501589150266497994393571365257214472715833052400800217702640182226369020603714275443742805398428933136540188244144759759655757723067737671291364915934883418193129107630215094208504884081246560063844634650800993132285997543227026350186276753351780280405441435343921511437117616584344911923783399822386295280821108576909172143551129781176685561851497822716363006344976386770995088541000597200214281503752821702370257174653460304219085804113129600932881179617657404793742957999560445363008622047988044353816346447630399872770994788571278273542043379437251739763955669565715932102553135599162974589767509800689786916307102417155035539088205028428508304588842531858273617385696351913400591587637004638402625255091322547297216421308800636230723917832596091412432469161007138913342390572577948490720748853728632681854641971609120705931191395622568410446297497693933994959381293342046356397127255555758472410170597830967751920981067438287547352510626231578993097091100143927563385796864597376074043458663805016942646120511777508042416877723948575223385592369631872231072910280011666013775180805197350015939606086562831077247968185706408994107757357654527260450221040068253080991775058033527411867343654258883822666428173829497681652925842198327209447785254889207297941268773415761126331035084753167900397044336137363853079494649517028343202473549046586857037431368321272972402786397218058471585460175432127807190226226293964695957427979746626105268682302983005686833262905391871714194921585933108043348197254943403030706429400635057132245814973032189436070336843123190919436240825341928417889152296433684738819776985390057462198466952534757700172988654339243626184097259196825915761107476294007303074005235627829787025544075405543998950715305981621896113150504196973097282906060671889011613820684258998021544539575359379289882357501412347486672046935635735777380648437308573291840621084963309748276894112686752229755232306239568336263114891606388397766197309149915519284789410969139612265329351195978725566764256462895375180907449493630929213141276408885101704225840847441493191186575582572177283614497797876605228546904719759626476680055360842209689517737135008611890452433015212376937457020703389889401233766939610572695352781469971913630707464320185386407130799750797450988355465961575782849747512645786441130845325323149405419172633648996479120328781718933873178193249123823421864827176372302256172001634836858495565816511248995446848720693621957797943429494640258419939089135342669852327762393143652596708320263702509247768147049097142449367541433098725950780665432227288825322359937627050398306172326573066412846542048204439941954208352581273155707242978300110058627730399043246394227077914953032071766948572288012444276710566256279207245397643669745764549603660722689305611554278333540743775704455288918033476521053564538083672100290511749611675092135700966778187442314763772837548904101431704145359764402601935309145277006604598658075556603776451310620938771564905760150126088551131111728534994979939234052457118575258936070641803603373102058736103563272026520145406620920348544780418119067654498705103281108630089375586123807017101867514727067646275111227837032119638446121502792583246055904584710980644874365277276620038854688711477259965185848902409698388499916411062403086087770801591156998402290063449331904506523583773565902659632363143568494772930840872825331235998170945244043944399692064832201475465658045496148814659755846595521007096029127707237439946098176929098868191496278152120119039602644234284149864626081214237188372690207529293401027779558777417836379645631446033928833913981961244511568348553876916183256627356313664406941680410633979100426821806517254104000780932525965773330508345888722406613694020639318481958617321088355165596669451689784613775977207492275918208444907077193618119982243886345560810323919519077527018761858514325054183334413756628145531553412279962125223680570473981465731541131139526700735397479437456329962971765006683724603132649055971250984134885413675431632607326328984611308101889432967268574343279699453740210117839180883723679604415136049901906342741429148710970086287562619980126202840546193508907748960440813073991563016246571050903167838373328898363418478291073795406978223176949344374728960592575544225104520813367066371901064640376749821825703959305105049438215016748454316396834779520737112974064113848432512224502131920120121855190554409454208093000399078197934250178812655832243946075904670039678801773597363436198336789428752723788330265695148624670627467952809449293986001576220843838867950710908605968475910911892900870351212410864481912503842665196430267896161169861873029237562228955172874805249094732810477833176771518409605545659865432630687292850527587855358563327933747407451358519753173276436989440498853538593727965746933415929361039440009435592912528569678583878272175275850449197920485177861225767080361033954611806185279152558068694420427869091702682257679030903299542613497411074782811426166827322712819126460983817204023414310332122270197008689424579670186545921376198466869209256242332246680533829392036583629088813015341919937840825469557131405174072056497695137440264559027338904381022109159883074964014953224124587097857764472635817771487855040951812818987029740627137129930725619610376706543303988901451835927316931553961233620214023836875675923485996907438824143301831192969274630417891144414938289267550133337892152318409490775582106066453896712592261306200581139011249108266061765364342867098530978447298161144518559192991494068427317069181669231119135417148613559031157128376615074913417009592941359282367946884702039721250404134577220935823967294170747641286112183737667181783543292570984208276345108227822603747515012469880328933911763595253677931849367712717563005128583525807211494025793345688888236620047724171123071494553830829355565249942743391698401715783627043413223906966909602862059173602777744869931722088497093817499873867518318035554417669356702764124241678141541627177928135315857590335372116756074254365544343581005381516724772079131921649950311169352930595050958651218773809905954030038028260636209264115637872823982760744628899940868849378743835262051929240760583343072565164805706196689628931125464610113267490335407606042256890119116750665071097183250423507817740794410777946713779935133930364284249396741715146192778560834142246809988919251750628441116038616074936220854668532667004141688803119459287162864715912997105199727730775077396089721566544222074065485037509428471948742242588462244649823243966506864452069566936617420581281842217945114479700409624573524311202500768352063995707904217901318205649893007232363233088623017526695409201420792661497405648626027035774600785904516828490539721166428324398583662073707446374422899869792109437497167990520047826446000105986196483034861435562015927509353617437259197492953947458074565287877653802065337633133116981290228357696011386067025480775346515333552499403183002313485448884092167987847258789965063406868573040769451245934497562572838032225435493293019860106355722945848271216213051869296813760748326571193419453570994230116389426332347359494338627300417390108069786497488178843342156312871222264344977617839514453610696302694427513705671149521220435614240568050718127548486870280937499959204666723343663556834639030405233434037823708678307829439552497990528691478760764340187016451189553486958910057967233542639743882169662908221453661577374123958412014742706940585969565318722957319303880616637002839948236474747612887373586988213198774466019273920370837635527574815308785565912675487725794371568677923247453083119262914087172952787316823836760645975050556312420309223582817557565689436517998161405155266794559505208097858457517895660220929035283652502576280198171609707318807381262014928124077908695021355201487774882062460177093214883781478779218201313489053826717440427477939750888962482778117280378267483183567745215093415330187608132308524295507722972380690728678635406717873943780906134793862865778204792246457683820410755712227501272027541226462855769725896513138262636262571118226503814119526021498199589789015102397472994086032838656364040797679601902000803772811180695554976826009565222785629972525234000666820163700532720686976933963221914403488448462900408229071089479166508686648513381896948414188895834031722826316521484689257134021283619570704173655129992052922980646180085815855376879848544819939638394798073577379906935220965165551015521387415367733500257979392099167116245192455545413710450501489882201430437719792003991724854201391385004000422352593867555317475266538256901492346427427356757562623897062319186748354837883224524971478092476122181574498597520705002245073618231684765836850726361061472355411954365501139659944240930766268816211019448394400983802491780026967781587973261818008135612813857652933005637065359897044339183917505189185583445084086935244621941702583339242356540703350208405757286688662875426057396385038463450203121416651084714000574043647301500654548564940407430754434442437120633873129720676151007375537981753465500004649680324920262585359159493266935832612941872273854003410028834674064561046294841760429726080022458342820115238783474702555062408029248381128514889577048415740927667728967856078907730543751376117477131257576712111280720422748139324684782257345037007750670512381919533507658252665100720732876578488889698303939764686540827842084877474941226402487400312128941367913685596253665199724489444242338145326524021334949093147956875901320108347329501550713522081015914480483314929707792272719688447743742799396760092478637315905240644574596488854717309798351319529519811132152445226394938506486691535362449000295652144733709569950972349589167319678207069096961425235416046015012092193016436387013080422730381366093101085554684007802655993439654105298004046443467366169001654579788995946280559440076244743839842476804573485875101023487758361275631488077645793843684435889458240678147950533416344994436910836760981006753463588769797535264399835046094692284407952894051672202705898891259867214415353668874171774901700283073695624511928525302966160207787908589690043414318494911074584953916409294317788493956386761000111838590455895011363679849938189912596246140531090166390801317109989146217126158749713871855846350449130568929719442244876439554324808785635613674168603958528044982933419474223614009621679389380446878438273809557135823625534104311081605841296239321653860063935497776940205859696092585883713384778170358023499721394836043055669325578488164922126800371087033931737752243467496055316648251554477673391216006788052367058832767284562525690119438445958840485337156686744546770217293777299288715998824049404381707125217910213220388776299027093961106409714028108606769838544692584603476318546917166605712185084284737282388050198455488201051230384026239791177673265093792254710398621515955086665301670622242929825485079917534785114834821810647283278446070651094809493547919106270172506013700090917522274057847189519873744954708206345063814465990965410453762099200578445445227175241827727793394853977788445523863472358144614297922659623333822522730302793299836372986029444028989933040107674926022782735973619409395939681101456508302946926643248357858266771056114793157636620819850273380679758976450543606300167645946613740382149771263441726045474165352051776809339445654260452268180103598893721333891920110697732150340830769022614665722860856811387689502776504367472223871539648734637961871801376305843057391787746604516280784392627974813219151629902992270249439098516905302075755262730336056073659852487526133058680866854768328076576544496638453449517235387395723492441550928826406841587862343716562623448083379602092355445635604562992232884368717597832746106212061293618110507861643500294705152827156669381466765991243756013750595680697195542014908331787842434957770214072796541027958751741073546881777395937692419276101245114915791812143093202811232022247716223246234492272934251185402991169892545120183953285488368729054013920715073352398473194078575275385238207931447716394727852191709986460575738312022791869720659433431630108295256819826297475727520768224007728460819422016456583013111660986282599717556462487848495650668196505426237027243043915170547671927870842967929880697784543722242327138926232404668238850245674732762815580429880698226685959066591031838801659363982138747318334545511445035126107187748117487592984893333617221245679235058465908063714580712512348948231864909362398710573358016414601095115623001242117064713119061097505615519483073665623772178328871748764887611902948457712705821115815951161275701475351869509102125585391889999124435509772607851334553008578495969813980552257164024020918894250251435109677319408501589703889838274161517491298631774061360554675150935057722105779161075694176338356012072867805276912985018854625562198573116173544157832781728807955377367513491017939789648187095307315320387754030712524730463474460971603139725838301730496677014387228926536220480860637416957823481021353701782809157919088234563693429231032561128379493083360795743606505817590567589185350893486557120126932516299965277025187138684004468667463489175028720265560747495387762414280178474101459337500097787841239041101646478750997037829829468326136718551382406795133732194792204916440200906347898881565959877173426286094493802920677903439443007710019763101676863999908193868319439443622560390714035968970526649974392765529888069802622899729299545886980068872720349576322792048410860236690861259488743855872507450951526646808070872319410381295476482206380008221633323965962593985958211306351974528333316249010345058004433885679524355033241343131654795247246367614717892816647652774368455480240072749923152340932475018174102372476823125408969237763309949217533817086902763398863043665384062725860791738513313011244020363529389467303411439116911408900869244614446071901933165050970619039638151335691274764620169379002115264246142817942836365197748884349057991864929287706341851548928425125031699050932095545165876220349526251639195185442801860986370215956065066602540528541064170784712974183211106832385130690076143449351471067666949833123692775880846840291407533764060434293014645680895688471326393483027849341332618186260154858219936533928669816089721944483050447036600627953149681419072757503892440776871200531699133142042854956801804702488693307473526421280056262151037885990126103110661034414869600599142758078234154177075068349115681639262573661571954788860691756717185159840939474217238669272912223600599626492731873889315803390996056613781260714223965198068477754806218977728569528006808253290998414529752192103790334450992351286746214502624236798445562797756533861355198178763798677297822872348450262940525330278731906923024970587572419028778666987455822521481454041225823355178494452473108822870315532938318728787930781077538758586807037721838995538975877424826656956020622238743025191479272539822626046139934422973023512557300945600619676065303013379321833216585863034043461764754427997272625141495501673327110570483881931591515217197070589365356294237833931474066412808010328586387707844738300103998525250290151823478582730839801591962086017069695587102012637038347571108594828018272708694415904855670979661981360216016812507213074791146062926271063487954496217668275805273398495722163730637239341599297567727466768185041274192279597191084119701289427754740166359825583296114421260425005927010760479564105881296223226759409440295384049353603318144584029234392223663552024036459499559230150669739561411614810645219310799420606862433879232087808918154238938006674327837231163440395102996808380459009028462203361185119064397956645791490281699899064594233380428650286575823640673834615444902179668745778295188693923091652536950717850357950362342214678657484014154054028972461129833691653827549828501549895871243930307039341650226629233101065814874274187948014976943652142870760147069934770074756357917276813069080437083189028827128692572395531281689637146234192192690821911773500164595948240463692703949111697019941503371360993921756319354753919890054020912532769500472101988011027035711719694517842428540168928516166856121894244385799472440978549893138309466301813032333791098796466719388631141691333662536982788776945907003123789841081092897320405898843346723685679865990939697390204616371613338565404065265170710581508603309756255348427361311942326030262358541361244894080454720616448072698483027669682705623096761528634641860730177147174059072020742923212685535836264280838151841904553470155647573974280186809143482545516613034689524260771235966679760433454816998578464306181554252658114408688197517542084169259728299791616814753271044748792863548999063322465621633032530178159204776978563734260837617222343610534645593079398222548792228725882561265735868317694556644841938516202850262311251205228780813135122539222765141716733244226479758289214557942984064402912337529715467639649755658458066695599551162095204939911480172903456740059614366782981932857746081294051941537135637494034139418364097490430705396073138686534544789992137312278021605096010387558072169732406474695948332398823752896414054553878725047407853067179155159207949346584961209456742835781351521195613202861713428366871433769409645467453993380504510124264176103323790199511422195656118239080124727528129699128258802827564350172411828411633584913540826680742727751688192708420477132172909107204469500194919575701198604712933442507273058375253306326519195629385249019487440691740017286370082363423552007091183355587592597465909488682304881117342765541957312117253686576936012225745506678775854215427031650587819328062893922850391120561397726580963175194197670897048397459486672310502964543444728397589106999687318195478512823148346248796323233844529177038503727446264434139050580640164848429932532428652748618651361526738619347842013325207324748287035808773500567795392285403068304971604429417533232350578928911895201709317169559823146547420600883425717147429173767635842521361791423147076795220982207831595012502184341853980013643012153810682323826969252542827487901477162604888255014948402824218498782281402651922828258322975363178335200551513664932767219204602217056337560898151873407987813396103411853830253608205218755446637403603270191312147141466985283132707095289731631185727023771484766817632089655059299493763992741143171787106745659723491035263077140836400677619920914645646924339901140869137646950672700410895846896947157923721981001165246976538265222778994113418114444774959321552511258406733018145994682595689737994301282965177221564901010483768957145813646922352595828268498011368715461372578700799847884195130062883751087625475644670254754283113124715045344147028771117883664659865244630527016495067522979395920510084143644349174752451478063796368708362625296230701187486503698322587316131715369149295941279303926419850872433255873786954307887314048137988896130285941510398736798776770408648124154725040025613701912358309734216214117346386955510701102663270879085185528451321731343950136556268354617900818837273603103951697641896420730776538178681358155830133640181217029359057048148893697141631592368671663251517151403534710058822689036667614854745501942544663551076573453927881874612164448732252785006144325087764468371778457160757859920426796959243178100923705949845817853115109671085322325773528296083723055323908905250379617474001755403368816881607941722941927210592820011883392496517859463026781083366932249809993079505222112130812637880085003338975877068043014387995698762721811721033558347369735040179541582497297220249195556599182329542506866672905627314878059677865895969215495792695101974465526442735670921298373004699579659513279103005502939658033254852889794917241169535959647702666631173859578773120158540944021457495826464325761976675231417411056957911207846006706789357545362006822203447564885829406655987022938324012508294063367218015848253855691858127897608624551476664814812370786716958869136969736991132208231991595272268991912801099275826877162138872376465866932833519267731158976350134286880446996222192206389533732084090436092961103335469877199958869677328160401787925806316043850675141377299123999722295335256563323317895939283596433812162705762694355529345457006496307948347880496908105111900423025874156762266232530391910037739225896669901527166126473959298995372080203855924156651558515109336316954582086217694331072804891403366506632161063831580867769289909682731100867774787428438236607338308772539449662133892311088531618760780435964400357702813478720242122008949944199843401900603606103923624046201453659085010698721063385607576557946401625017429991536177000363844676418083150150470395142365260046803769393738975315181651172807680143646732311200909318832629192653150910679204775042654665826507167164345535485684475822552479566646568397497709692287444341248951260904644803230513824087411615516195094949833967096629177001634266623843961248029818797955010707908430056344763369106692164476960391454929014189463411565767700216706736853594585171655096807342447586115489343173812323049226095201163313629041152896897929281065170976640961164059963301736957184619015678337715064313789082447456136962416243758944067187066208539707630943893465578274464004369023914178893936333083610110530833679929094773328786641156850225234875418493200775063313658890088700843089721709364633003676870001272174718296123197355530601030693187264950980226268521296307955801464765983591243805394857483511203403750921425381079473994758871857755659889898592101660445238049077088337128493533245483779300430471694358264208536001603926458771843217922513637878977105373997405326596709126058014688587076079223506731640022179178743545257438965543232924238041705291346229558476123808960007909175231951536279522821861463696602913487268011852449391732477957365128289029807239390559436224710168733564683816493104141230710649847439995957660909959389046854475258011163435214417460059644832903164776322358569298664725214830090837051642729635063709582175215126409917387999716095988365380981881396373512142411188473889409527416479416379238333104543227947889585883756947047080428055460923839175840976520281473238141909763298843262041246429456972428400747169354468832370483666405145340268222845577038846192109891944938885061243730568192395350364496884478700659777128697915717162193773102290168305869037684699763379517215409407095990216105191332583586422538475001252656413181275465618862239134960413221009339330450136508973508319810063378759771854552006169590272387517469556380889282105628379054210563242636152641056370470441027361964740222046387162419235129187205783680254702821397606888525553647055584868638418401187252666437580958440041519519282306886478311492644200910338244969631160637601981249001703406362452127861974541486691051096542067825298775309947022231697833787914682591144594187427338341982711641718761387706738441869303417350538108463743882296811167577967817614038981281890623153961675071155008166422182409025915430282345042261356367512904581673078154455847995003704356997678772052246543238116905651714015334115704513202849843895496493644802507944004473252378563122679925874024188236728236262074663968743665838109676268466293030386674817185769502651577005882070685450681909017842859591023050347912460818024839436869678822359299693503540063642644051769576727594534561459542551947606039342656891658671646299851157666721327471403215030136062712280800515283520690047322455228586209667985098440009319484066191953793558112567597984711893406820979875273896112490786953080454060398137921932761968040141569290152973949660561035608824736782855234104075124060617714174729551675400526639570756555870971791447303355936552950384054627905590593451240062044198151087469613319305068332195474850796116388784777754815023023555959245432668751810493551768570907209701486863190582949614168819058704780249570133974495351115969689207402875300826097065699196119159773242686102198998397898534061086930226346794068226038903986656388249953309272761851247417158547933832196575035164278607690851643326445076884106495217235929451183700085019453488097665695968002572342285523270644666334380164099581895411568690391081938003140050083175870808888370509739738168754901058627310807749239823683852137139260477492329528117237786507344478922996752680364243240933826020274049789101659070006961960037187778576143193488454522552332208565925338384372216129385602016222675742169222977591141735544015197880067132225411592899040332901852120215537431978746543651023680707792822205047559042299087264366044671511330008944489073538606791993464337788020675275921429358836075153818185020137701018796803102689596771381836474120433894146205812958727561011335942149856746301026716945749159751942331469415085425226947083978726269873226936082316987402206890246883300578084821837130320268511902648513544216717542093055660641352806285138014756224906736078175832194697255785441150254597719756476668338931372362676398297391428488111150239289469697819087974013092494461384947623280271315063126955304184312548317575303976286205172154404874140661166781738934726774333960252411265366782209106816380379112727669356826231096875577688225056622847065891214690825037184323654494036436252904225779075079867729213965987895951975160587193894756382477229781605413128246752562456791496980977528501562771322921171990980526313571334266614945705494508519989204706233193140005162718060797725293310378871711604932420676082606965063586969993847983095277451493781925329746037101177112174905512825858783320320054156452058487841003815061760644640566127385046184591058626893539142525284573316449524991634488279426662827263406147276461093689273932130651837943585237101894542592937043836304201472641085965634459584939766363535724994821870038891232224794496239156444818455551815119326772067290438246222074235125326946986545163335354257101877859231783724246679210542618874990630826023008389140639451461508236360929568185688465161627323756415201335795768568577470548018830856159162623567010576851257898162453976198363385733884093929516458086650388336431658867091833742445716336819930782297131280608009162089223011255080990473102785597328143613881455882796517756527040560092413940469206619727057950064835086581064516968929073943839968031279760346977716203920271374058597656281581890759756261042452541126764870333878368021372346381935427198751658783061848728413348138694358195056440107051394702149965411031056725515782100091234339236759063735692444124995408309730718431689943352807918537774437725535433256728306506341901227240571296804758310233419463442139716834812673719197261714149664576649506451952970436840069917706457082172379007631366142390953132334299602422804159119220204969359938370243849472242618519418045117460954849808033108183551150651426467083000135663647462002428266457419214810613650357162304757529708942896339723388005419224944521148092483563835681026940145859900912021581881873652675296314786740508566888185954051385234155142030170859415344961619660628953098700499674280364875149997153397495837662075656644267470676742172428092506092231572263787916940963303138776296943995386505798670638671968147297358009914752569491400440177967496626562804160963896825774096165428074359531794545228479382048410737511227971896092480815779804416083816004523597123578049412762787893799732394070808191273230816039314516629094232118069711575652564489728824793511924363891974429212094727399305068848676377035548371820581626958701382745725604639630486085454594400172023483497464678160833767001245206229988274110448571311124622116897304650200217192988635161754097270713553784552166978244548484865597261403024870159583274439468353366766695775127325279204203170862457558393433754157949783296004952554875381697064480517750823635631512821416231517810325722437497118514229054891582191936919784606995895465071991630846388597743752831710563953822110940758389499128750811363177705147002278830536845967557356495386525208383564763000010905849774793844316488745733399003759149803417373046782252929288357491063584774635155267242677765658410257690190717755262451707258371426536346019491196481784149314469278247114939295268505805997311248203315531613357180213105890618776705484668315530916646091223371115037992893489370442562196161294938643165549907928380528889011827875070512419870794853289061760247400272468151380651396927644333907088733923792945385021373084586142481320256985794856221827252547781220123842157092979069174222490547398595753123571860871623698483379962221647304322573017106909833086884916963043895148618015423348232894102798081045785325218594723478823015250856650543967876027920331831621022119290368422436089203590755155738436364594590184758396265292296708798243276155069685309538754394957876522501533972793096255919218261929087928967207700509513029462805782374095958749282700573288818125602780158665338283702933720559512622282323044888186532323034539221957840437012466009949297142871730466500422693062622470895336823325185811557371113992956118872100485552634928875089939285335689916456657560504326404833013284987011842162260561643250282644760664452720717908429775196586458528775143538582491848703912403098893549272085873126206379307154400366860871682618914659250790132104577692686435743367547388996514793761883833461027769961176472930502511327668568315798407028674331871523111645144377818038792747800848301174045299200227086094675706683911749139569731983087184711923768500542874880160419079852209909141385578680301132530194941868810961360345292881856174977085455420658798943523038227472043223413819415087669336819978832283092741920363306479836257280924368164898427493063358064659480874326688398518628239211083411823864264423604009266095116547071394682746813623135034583432281173472862984825043323785578511004190955532827676261746914203709796444158772765099162573676880829834398513871691334325786764278104527035075743441441599211589518843669344776810599676552003651963274024956134778994267067120926046980244004756658569664654494073406438565841237362298930717745079507269269732009216525834288986899003501916186584248313369490898722683416236912147043586856010355674876157045990321948017524820721557009600850384599797630591231714612521850944905077027917962024162939249673090851747572851958428687103751598094895310168523406049244666125793332619723862321585848461525179986092032006540631719507924284530215968387737978596101113159744782732296644781175372160722119874123716702590667766510183013631249013232544456181816965409164344960597069780092129022636157271489377269601644857742973263628654542248324426749748899460726874794807377920547848628986684995455185621510123426781510113945914239005282859417097128589123051947853968778349984750518910034224024966909235347107533890430025727682352745522179922315715881032259327974650121305434809052608421558400733396567374904988975111625953296634599159607530953545597835713540008102119180389381644854877588454622788000683265960339305109936773675383187215607475571131257439420480022126878852484006332219008752103410392162659545422854608882291627652126088694216085854302232042464694904610809203692811502335347579536107405552076433314323847876225811294822217735185839226396435904457473509734962467078027088657002494528309826069976689410480448037799912384374984137873271970262735260847559045243673076203515444774414742390506212537337430670053318620675569710752133203119153054779410642793513212700781106322919413128887502381170938706960837239964458539754734316387549560499118881954987168856583358957348600962862800105791567643029858834002347490251766147712128847130848260713555210143952850531669992571230684228590671205683093229133764580202684048859348645869730951580758563189951242777130976156533272680395344896503457210872011988066061091828527358846563638557676943606268386589459572071012219443357257161672224694321917624823725013459444749233576460635474306940248623298947026090572423534494761041194660193507174655422657388767147125052573269757907993228992031492073261711259760002891624347907279804641924104878097583044221943150022781581677222853384916217676048903425695561388664253096670914740587448105380097765378462741043071283843961274980113894300714272595238478245852026080941552109804825475120560063949953104446698456598811577794281776155833450601250100180875095399326533894045880310554638868670936775086227154862963040584251749412159858723554384436323110004338041865400548843640117055785212389137736191114735067080122739857613382579482119048380126611699844146296436473494697638254686187836780718823970963747845918401950807156040497441180323269974420080656274995268431665577196111960954718100451528259755494513364996654141851673604618382954077911139768529453020125615205685078851425182951076419198648189540537261784948888812487947158034153028729684942603536021744899041936464087011689097478601388213239020343627127323149383932233069196534775804256120491586883948746828640491585506106959747233677314409326996268916108137917449017346642007702436473555122603252357123549568384422600530399333719900197241802350314354990709250192794212389696658922023008909224114598652813069731398928370568948576226097766528794716578820188702787153674471620009720899053809154278842924850831385865979828094482727935790781823691402732306063624203425962936930888876792612732865906461760986837030728349502648546954687886229880174059325969373623756311441614507706883655482722695904011460639236725938906700913627823288933397273005678338060817319120718376539565709812828732860908489137978623264033795585595345559191392230912349886217593449411076633534245387741434478723045716749877990056612588165139894972337058669823693650495927748124921506207970574989026763375179705359840876028077850920526414513500620586999995264731991672483202791942660665023603680792617641601458059729425306618756472823629561122239947541080190761432485616145757314477891861102662798619198506460472103044352579737229407519590717258336884526773340915431660153378570774170913016588320070333865253699872439744483514013898364221352012385739689307740290557280897171011444552211280013603564502555709188063056313663314374510256599928752106247031057706852722019948711094439704312609703998628203742375334590688423875950868306472740242507820338891180932524383098546339302407583413694591072439165715078816023745636522901129919310305537574829163202560428385123237813061837215036906536816468148870012702980002141819891362805467773269240385394633108315537183668929186243097908486681426216086525475318591239283028122645382108351100834717132674491372075225125949116128188121432627307062639730195429222755570242749640471067001111833435995170950221968597926168597842932937026308953053813071605744860200040596733647503501815966088724474392661097724475396541877561059124072262326865761306922115760467660730716307361482535790241500729662183339561016020855544158618411148102445154039130796947379263559844556832443796110206538374760304883434388090880647367107737750937680030442104870563418153121400474784207848620962040030224810507096110626376593895178734985880067949781386376929274148070756894750547277492719937493543521260797160405765148069862623744038477043750854296305643816638057173033952373260727022683865784097315737851462993462824746101017832716067196967770862206344798588435069047774668008740019812968168026365796096697928250066511804568720456755278116290990300249377560500076628181943550518932912848321625707393974020386018882659193463638455100736806967889392354830187457585570358197369658281885940296400749549607633289089368248406562551117267760472321758684844791554251209466884007405756308101517964360153081038092958591703969056418274896306269015991468964700632726354689024387909676515719718670752836008197441470834779871591175902133664940002108402235819807192828323295565138610753973820548672107176593652429127848554590320610315887720688571382495300081475434238469802192777168333849507726685900617630209818163939799545918353515428476500466266075538630299463402232960968287965303595580050197030912270976751573761353362207417245438557632791151679902978386244493254330049024426517484898374856601886166947112845035602236235435033584734775159177949968811507956382649667110636152452161823960525637284733836284205090817022568022667959174156571674220930014295853671457839320658025535615638599203792630076674976510938676247207512743945200088250558329614944042492238872033493033084699233476608844305525339139066886323445162956048986834429483854073882465868742049815543335135809657354599589899305478180350794860096856667576659256796257237984261114471066300855670171628149300186189029936061062404922239728711843806177236931256428917331344865857949456296838404499680742384200779001899844421151578599642073477944533722796306387285565172857797114090611708382979938848233570056333274412864718650839964818260983445886436067577346834139019222015251261957444009214411797866001486690665740205412969228701959641759714778825661408083972885352647645599643331728495352975724857424907564643458763959421448890931798725036102039887750296628070111613587075304125746163831020958094540499220116780763429627554743914947840323866522434831680501651921253228979609092477158881707361158291415736387572824494942043340221946754997996565562156917184531025211172631741249192308532398457374778108255248551245167650185781665225796214500439652831877544478479630142601597614124585498345660217404859177432706994132078112635373366681375207802811589288602288777489695274701631791741719273419366273681252371377168053246765192779236359188866945871002672886804891831034268340243025622932462811931321446361471300262676154482010902983593265059754174541142319176791419953868988374988395575827223631703016986585834532995437778026164523405605223102229984308876188628553714426203945918910554922109294842693007207393718583130312923467143534351805161796068563306968846266581444080511484304214524623030526452265017430097992957587986643418337516347316868692432108980404442095738465700254809750681824968436160147001357949948319137423300921102714482745164276093303267365760377176892268503094936376655426868714423938933592131875905566600580925033143703990074779309961250608415719463753478479601984828711497961992388897177891335566497706964695567197753093669265376375594045897896028348682459142926153676326943337849977013180003438033339923328894203655794851848592506790235988721675096631482533071587411551500523323323594948131581034172734297235646028387771786964520012477534216866864255557286710766236766456990311510705149951111204554843334260137092074371041534103001031589795412689534701801401747163932656493982426552369241507445532917012171181581785339354973908721373215680113079822311985669633170303113586582136355882428086489212481348475959696097428337519606077527399354481785537566630485490382761699886388471286335766394827954593851195925547033124516273049037542370606963935669640268126785232162258587018521753440541577683990984030288352277768737186715473159390558352888556082348837536865840395381994492603982201935774651051374732606918151938936592564866049463761240746901041577531248844719947121276586685547679656905650792582579895093969407651562391450070066888651834571561926016137146044344329883490568218362329815584925567663738838640409018113727337124921958348095950285602181016936445694007382972612230058593534196507309129372081741873990365656120413993733917154347350751427810337783164639400278240432315542224381415028156886280502888087892993238480357849065635363678897901123943290245557550039107216532169139638062492585201952879316689476724420940230521799764037299825340361622110746064684717681828987085189398811784929029907808511452480019938173969475138528179307893004457827203302615440574546127576795497879253632070444871977026312877650726669579929530909310079426348413774292209817175176645609784879791551972049135051579831575685809782614634755716642332406718393736002622680748829996349039056694978626343263343155980813808691945560422442483236064016531074123978715582045942222783895695156197904363395021232601904225084565177809753506890655724529381002137106679517617392461906714428699306196005593762171177162528653188230469762648718396474101792206775580153799170216555530182205614008452110451555210556153837777659603326339827075580978563900392712483417321732050684439658960581185539850206764280355643954440790639191063220229801142451519587993923000451184248665227210183419251207640528455216124605967541950076743527143318233650953206861082152584222713272682380649655124726691636359069172995544266810484022292604506187405062106426483900869731580832010863965856931025888055717339078232581590191415465845740882574408301845078160980951313041399145763545867869951721163151517603758762674236882058741702031015365819102923192926797866234783126122691378078907066966772918964521065879657910587109381584006002974209464626002648951450040869234892822857256961540940548549173622013758762322269443225863590322486974291878299435703268423557213398978397659858713686184578747938246093059713929663974189518915666445787066433498919838196896871189910135147186810664849542906731852971729424154883811696762604010569300088077932815613033682769476085032775300608683801961954354773371072155267119016093169666875837145571647236783955558926130719403838503191980255189760251718898103367359278909869566392605928520659437925648121913076531886486939388781909471149831192297188173555350213105826915541783377469204310346837571864948467334341170227413134194219638341727273122001677190245972432984408463637605663884487314817408087767563548080509011848918895457216859458536601160354518233256193382499579070518906259031610944060410686110089997565338131523748106363210411506953424035730843538737685359497104065619223548619006273005370607177425862568722566052833729186512986458077346572924783468827497673830632294259196235872759151581805060687894166455377900635892419694889978699084651199522796519670062498124785005853619351661946432466165690349670277286307258397411178094281608478473013305376789362040366038707636705906690221738848909092818144549785888725458003884042436664097784351457146986014379586317405300260614738481315596637705116718713158076039737015110827904222725109507854763372653459580795861600832819461020623748469515695167812348291426808833654089762041243414979943818807788082119500013801303373599460734211527741352068079075309096146318577010612474593407337031506583601975976804832901299025240176258595367129947138661700233350637570766176588847962558043584524385657180423087580738256673522293669311887298841623999865313587406365685979465103253450310538186778755631250967174624451205819164361128239801215905752264652552577669224422478615891346623632807707695050627246073194429882369531765709973078217787403636654804241858210123855122906546726621062036259827793096410863930702354358010793539395679520392590897838326451022859087803361401447805800293588686416183422595032962114569532747389155217630977864365724409544476717619171487312864068995323653260423990526571897770862578052331385397103051444873413115484544474442448678073555654935408435475165147999533686989748612649930936847129462077163938628144159115547504712085945139993941424345331985789769447774271298002693999627440896869461260727758162874957104956867596622343606919401964747857390046816859854556196649722474127717544332765176529776674319639217509810357714899145936136680301213256982898082587397236635685976417896518115547594984764948070856070176934542392319211579231079068469068163335558701057729202142406003107349363161727302202633445264857369990344670942065693960679240411462531110378267151331243784471598562805353361574569890084287183719487447742870108787608841190588749389768926576247232579153209157273687027718425229561035994044473477344568676633479153732143026939082551434888124499568457150093088089158254034168883762308881749274064476876107003128054802306232272314269375007680657043744246127792628746425009567645977174382998846933655763478930754226054231733005540427906569644379779219816149473879678904987176478645750349424241401756209754793849740012080620204877389883007309708706414178557905701824727747663598066117980564811412066548994779593028732084879493736374988936234701066607688961256065513722776272665476568336631490759617281209565125306270364800111449223191915502094319917838037592742329616239927877454465239595863550566340765917956988970842177444818551088716236254421609917800435233001583882745838578868556159348298304183484481894895760631836906963897699872221260216586271943850888414118034894466796892432214507183119492567080864602446742743046626144536523064770829659783877306774347295430116698787836664956446524364303972529170125034481548144570237669567150557119276474813603838612523673524432553769763890037749660631332107886888362579687343620883515255944151488349917655002736712329310441931341064023027417295902152970907063276995083607811761885061166037975340609563003252779985594180121548036789869677570396310668570901196550424860323805783579215105625592664845056096939420246101057678364298472301836104699472382940516146811228184286890535876536740757610269261687415771993537427034140345220684734127945901906782992772541853430362046722201195565640558633132285926656634000871219185110693658127948871317037845548093709877270180645180956399771168023311560000595125616117902204761201411892221526487288126093693774718579015821631110752209285113203869198178129050035196395814145969652349225627973676087320320990814568601304037730518756504669363433625255865644349038517598389636240411936455062240804808874597919696464432843029654448133682656131287628109371666559420066548883522220324551811180698077491952529413883751993527393153579019481853868741692775400223798361740420452047446410586873497776883804133195728372976606437544524439887274469296313889126608968151083039286063489151881599876077189960015766404291713810048022121289644328919756498225482551263989503823369848729218057022293843963010729761905208152775779287544405593512492878326963287835507103045295762242572806611886089990895332214811598892585227110257417161203643434244616212008131208180735859602061658551853354209675428061017476681456969967685535488857029916951696330433588060848948114694097408246258687366602012150917612431210660153906849794636133742873497188600728885320445540768753891387272829989115231245019130600498311892261210207434294125134149965894819672673316227840941480885180521080377903186316127441677092418096043913521880062188969173401544475901678988272189307470063572174331751948310048801741961769409641285606851761120892007347181414052049967470261988323695232664057882624914476762990433038276984068846793058044483785532096945190106925623029371687594127964254124816397536840961959161307630431372388157476505514572515996878688854169239670462362942763217977071819326623291344478595503708959991132720134486240392066109947588340866996156181850784051371197071927346895554203438978830531957989937672557774412929958917260048062333709447307630286991256404857816947196108015578925435865964508650575150503438794744518440239624196198282937547780148498932910632830874800062428673906071832052462687413908046095551496046154580802522621805413784992596065876423522552812882617343679458149463378686767110880254096052818358496921390858346600377183982586213337470836184283219236577975456630337470870726745970089295801978903464865752648780137987681367028429025230723202579682116392628236830231738138918252793264822544903929562610907512461629037075525705505675008889724851269877706855998800691617559691683913944765288218804493708897212179714961979410800237345941555194119885084582615589244385808540436176890426072125891820912666746240503334124443436085733690490214501925283506913498103604498202156370700401723653629660566828748705347356834559427423423047022667957470841622769561583946487175298667737243938792087416471949352622407602443183305114841276653121573055458194756564260882954486970593867488785434518417960639331381563536429071394018140701009380808582240406006718624653790774634066238502608035464652727114671904620072071932170726624760114065019392898406075913900833278132343586911588651899561518827198604538641027252874121051520215600933515034396692976336548259373799675642520387763176390105216813289462861137962955507109493572283592621080815781655929823057618459231216861660533522733990697263212357245481404290209093557474799993091459178788716247070734915268700892457549007084889798876051570877832060505429000528254872424773764175551532088092334107642748258412466328037689716749067464231360048963958152354727525646617367009362907672384484421140850021267016686702800294258355706512842549329799127670041987805110282808407015821702575860439675354678484968114425104264946518942121829228313776493673928135924383517387331973478387621979071798114827046414746920279823373031090639171195421162659659075203715482207444878323755550770065787210092034266295402691520000658593397289368062574668094523573903843116407519852028532456968043657109672054635851178564294506986904946265414885364382069806765544783649551707678512161630899511146131115098123291561403256627793990965960104038153592272324034975337953020319954381450786791073333153904118107046715309899829538523933215083767740528625185203641822531250540304456365977594123211042400092474558325758065900792366503157508125864750738188942476303886739991411659783545056427443300990382486701855193908830812698759199253622020108771012395560313603280909561106223906601875142965673876637272981967178666048750639976454927660404766386974644511424065039561635421333279264732320629291441743453876300179035943346208913319305421593050162595747607628001789961278194357235941319861138810835382783330616917832822605423638293066110491717206110962142007528436229810151395868953201200460648768814440068599281090305570970135728123931324389373732576660748757693897338449145634885384535307695072418879925521328656709085307539790839544659943381437253651399237854158638263925129096048065828361526044493552722781073214514003580359592587796931638977748190404048055022818308736534480567266836703551780900464532978589327117233173869665409077243417278352410410116658340652367699903892492998805941569433936297455570801121389967896939546815800479948404021799505052248335936359091038182593917370841978797864745887219348126563695694250772190540628771072060702384595978774838483761681036778230905605917751370380615063729101941232254616489789693680917970331334774035542526683814462994617552461970053376795280220095334119758927195299508411039750711559124583071454348415761445942416226878144329470060299810059712061724479055205041710047825511410236989027501652840201640228140419380501945166550538427215533385022786090309456048821278823868652564089466212762482016232920516476088927151910856791605414008376968451223885121130497756049132351877410835981462691154333496204966790017962397972938507136717449606260263980310895784034031500061636938139306152821547609559060005651519804735725937061459772540452154425090044274216496590794340375971968755560817555120467966021971055065565077397056975881023445886387029769521781860686440095568133417742054022733468725397726761533048310440791252385638391713165892844254475660470040852884300909256769037720800670558305694969317702784290508041384634954020082469071719885655330387548313901547554966428550114559148828469710224801504203094290700501992347512416456194674574671543661575270680818465426367295678666357724728602096710273213381755318930345600412186329218157539890657805424859970787759543941579942433678212009798307453635141114292970362072657310433828955948163135145851567904853094273297549423435233142634531272103828760784555007896783937959953285686841558851979976298923701746326999312599231084528294867397413417547662670351622063009606322246674839297525923564172219438169060402041183211642264285169286899906434089516867952099449058585693496205092895725630817962029068596963577523630101961998409544101672667478391384377963595714479907214460459896171830156114334394070614136956149489867731890961014488216233539019210372578688097647011386007423035600478001685900416865465910605998813534856555741380968564500052308964343396050154938672213316247336809985016894715052064781429794514025635535990505786298323881009509411114557981682604836281603478301839199379119443257588806034355551234113951976537493703093153412680103389929300450202131842788951942645441830962077215149972589091219966128943261335736069902389332237399146938222439317532205929045488158636466431839703787537811265105039916913157381761625914555072423479436829438564213306145747087724862632455283443220778212606461260497844867015276583619431440361976267927256297614990530249051762043674963865828804626758888647664775056723093130376488741665807917177656259566974994078449570834429435502551005858975280584682403192380130690429923129548202428708898887274994031072842436829341323436950198720168084062329050782713212157796173114601176602972013672677168371523125395039726817230028390997728951580765656716366623965626612058499645302008572921869967552594506991786676793078463480252885291470591491493954375078310546876346655740927168228724417547253003188540281423946742547356330810864432455668616318999960740157362284709067799855182920353911718325328305884019085825536456180335104701763232194443089200286561714368588443299176274293674391963093786459002186296917529561244589596592064889390397355698947811624058370508476184054113810372663920890454136253201441379031339553344892171913895744425503129795565730423702591381230601002010970740127484810986404908132286485692296212675595819247592045823478929867016047250828150879510908215423908764477438313225518867847021183204006159492370471171922627904629438673636100113439176926703898010961563961643484960508079973464399871485389570832892420927279617419549442923635135818597170082367635674487320025772803518604710639992163955349382397778631043559487080599566126508096561588678857774777118413132840683270874964296535948181261098159751458634224014545175215794987836981799058150659490707095852793692610190436323713529900571524253524835547831387715416146686354023115659063666774756098001070482354339214917129308114706353224411679700850808732561367914790408731790151698979800417918160842887999236396506099039634887946368820829681898690717453147201314607435919471213072575481718924878419993697588069903996822088759336909880218913658148576898367260346834037667457128155018220540155684145532250848963207669719402421405074437353810496373863757536604557194608706159541318522450305715293547473515515958678705529765684126793684962540795077852179124885219837371016629760082666706212261280649442677371920367663287808496531089066798682777544514479719672442277748982796842210622761865968519548282371725595403362310765675796742779876950348963059253241387186775694339052531132108833616038725531713258550389163372049012333666135722923853862303320444253540015813639615622577797956446817297514915243088563305256388836803667244631149019222825845257056177318904713784579583537412150480338316810646764439614472826203444830753738138183413894244949088939904910363883377775497940467395318197206361069973723760199480817642120891010256803036736454956499035431600966239590676644240514463351768514906020550086034925994918803471310910428717227281770449235437129438914908268070755722685106259123965523877267551920493082018849410392856260978980696881773148496447153107335426223754963949956708193138358743372508422422079051552825403880391364864709472293716610282899628822166841702623745101140525425239157798608345741754072053622332411505929254163987389800024405239255403931059159210273982573592240669026865249184457592993753145615400203832769587893883937882773782667690697146478787856312913320463925254001505170951992845421508413520645018429529838130904513282471173412211923574039666737189536615203403344436371805195139244410891195055307198798376833010209857610020947874770785372596596484574051471522361532379489005203366194381039643101547761512044746803040310309355205759632708292400006108641300289432161576508501321556386182046441833173482744911514121677686558634643723949691973679710406584779920025677616699382629894176527263171517992823711170181681314129658831165020132165381672680028130111959608204431575942388423368382742999316046192425499690587730710558037491353090685821164659401846758160117601682959449524108568474878504000980851171159821421760684281190403895486027138792343078489961302746055494410754543301483720308648015469247443463927084776664423043463321230323755967427576284689971524492575705288581130455910419913150725628186991793686880880655477743019800796768047109911184096676606086071081900272097532613765575944548180079480694217699298837879561204584521085344680371612343015053157705399586662372152020184053416215791277183896830956517159775364675475126864531849587842353448610992489795562188138445743604406562700813268723978877822660232819696601045160670598778525104164046728156941453517329967439633016779164611310267166039021968102776488274101603347780568027173121215288404106329328299589216693977894989778760741048490801128642807378900041930303224811388583688535525114465131036100890852237982223897480331771701741238186312635440696213730261809505198587905950827124777030766361860959084455415795922846524101270931630568340488476083685287829648801645970628772596185034313453046922918762937602395269268626489111993978845398080792198156086021184229609108357038956571751361201297318532891352962761413151851982166319000331031727386720492199293847618374217336463703130978335034608590796850379374177343189510231374020856365783638213387515864264943011832289071862911031774139184367023319987837013116081888146013781699087341598261934836690841992859869985835764674855292353682869535395947012235180485972287560291550270445465314254616861937351213957867314272647407775187264893910393942710184707209651772884638985530828855177966443439044075676759571650362997033210741278424154130873087197571699843566878163648712524969383882581926538473882799344938905288746331632837921390323197108786636516984437096232481205447839392887454465026064311672106948130303441040854316606465129660254836474564988313052501110387468532723233875940428617409285139353689128236895507211343883236328841530234942899195942284978565797070210272211719192664978503334087894174984437554829772505132752349173025275093138981833182136530864772959577192684426885116244228492913736752778256337885060500440813067799146856299902327964986432935329680784955976989052182709226693956451489552447994943460554819743864038264255785017971040809063151397393638891672490289406585854082434278050280304586772349313659489359521079562205209958680084575955387762212816184669322159839884579123074849328447951640504686372812294886516067683278483909420752751265182051709366270893151122397320538026868233918781348516332282664985056610087240330646350736499251151393036217085527954227871242962768932102716874743650096214158783995700944904859471452621604092261663563848669225810751929951596401077346392180305041040266005621823024369081818867435608396506717698966573625298767596384844262182263278497655617106493463396215599957613121717531835803797098100470709333904189310349093714106871268897849182616705660189792832923003759717544523821624684606502989063936745873096988402852261062581255329951739796284751954432559556834897984498890516928022750925662673046603144964630583938020868317295376793684964118452515454281688970743810259011815509022782974169660799750344857904969604583867999006757996567375710704818184288477864981267376779742123252022991046023698133876749056076247317640104286341964473232523651745729419542921281591788172334121153149353023219059996147425224815582662614751934712451954756780380507698081627827899423411896554788127823634825711239713034843985164795816290198881189444303958575926021936608371067247893131822121694883803365670932200915788744592856478187109331972007384334315108932345864006253664533154330832618106710517031367469171979607558478087447210213176619732761292031585019068363673519014807723040173448387968548662733601015469353186562234732241164720544582739777926738139207981719364933367796881322138406627422599068407513609135955262762185620405179085456834542793548001979557067444211040740853585583983510299622825268359700059746380469452606310334811886440088923421505498662568353024676136269432316830859467718138510405114503658292295570088718340146030926787661398050688043944778827326146781196662730040320203780923495147662974724077518361338008663765549943780892566111539580055179114101983458116022506209563573597802614075716426150887474073781446100792965495676861856475897711830236468621957878342796635534098912980232984106476960802609926056614777269869705451316933232507652718881242190440122266951846817094794134003753361905007604286999114067193098234058849879798163411385174562211911846334532766390410895218592441675294262646465004690504785391822743558755082290500076177364331739374517788215756183887192456775567725862988993079317978299697535474287263935106405764175160911792905742326450914871646693257544169708502963053956805810135211748539675299194584864327175064346420238433202665627972455554645522552009254995244387183908791863244333720106980330557996135166177019632932790881570889566523911636002291104442021490727163387664007646072624321613415853133164170157368117603394682713375404703219950264877383941904327235972196940674498935998102593400731060162919258724272915991944690744657605029041187390110235484736895202884088609584054474071716365033836753517965639792231496586719600433025836060904222991794238705700780179536184144849027832982135952772964246280074887030902191077702478759231561153572302924633831717910710806185501715200039497058181154859294284247313817917007410745978551994758249510119549427273869294838271234857374624571385842669818232899391997866952110904872102367775146659687337297321960009783283222329387687227812829502968333719108597477776818655635399808471267347174738420972858104122832009003449875953882929571376948288831460717281184054339627812296602675172423370339246382469771867663034900512544443796294749157384246740601270166024566855282681665019295175107649324853847246485468878427796194259896631564364827675822547728014915730454010349335409463062680133118466660412476790226379107338295250509752602389421833216241725293734843375424199793163159501133358094493949799096530497788450530961001197293483898764862021600035327769856732264378426603468553585031837970211456549045217682910552268816490703925626176837527705477573650696056867951948271756228319170699637771912313970447864504518958645839517927142582431966385579456986134167592091855123278810648276347618635708958630307860063995050859905607904571794108739796081392484835782313139282190823839857418690181362399796022161705415318153081038908362904481903885713095319313089981582914946965564854221030475423121968294608758071160462309673221019951121007557448295883140305945299332753495961466503273547951827948715361405648286219810395643096184105010334228921199714426439362218613016685355858995090475862410613254434010893931592227652199422669978517439933871441097227550560732351284217105567173536033733752665243099649563317406158697236205590244657025087523951021161081303898551947407658880397477877017316694146811782284115931152123366362373202302266118282907204905140005599155338157739794144337596676389644184840771992187194528936045133799453438338822015090506158918689196725112939864384279621199380393305317309520955684801420037102714004466222245914652535002041805003716746717391197212819076042667848240258871787177096637701933995141962556173668701960523381804532101491720558448896732865068021800574679069349756577070616061838277718558223490240547606543957538934790906988999399777141541215219776480764172458919227409694452759060222429794414775287751431247857384056389186106598674171517460901306881256924359007024204981062040170158612428986254767747646616236048031928311994736232703849538060946021506122214483617410073535803745215893691622148493119206080316020040925524710121659682362271582222676458005070816068793911398435122565963420859527638717860717200607033282062512109694560043163364696693678030805077709494534942718525097445787087526801404649114716958570952457832509937474992436369558413097127095393538319195380326406554998010260155920807971181574661269002916082722928971233924745230579414348599828700966638194676048116361852106788539035381557764800414465147750267067638330907263605227189155627951479691927352205776650281505391546956045663692949548955505058904298336149600905673406551570930009393254837196579807020034222874674393601461448794857586030977214865032487204452121248443028004492400530787688826265940997233040135700699211800107189615157991344917122435089839623552637567259671693358557995225582126738689251831836083921408085539432485990130609726798957595641036415853869976604199917987889217372966873190306272361131918804411416230855448306824621967688940455425401610059125002535177703666320782515646352176506746971211211006265544991682155828922638053556229629659045138305983317345483913455794492087417268796621720085597085753808624671262219408682663181397607994526833097630159401271958771325482343267586487752653113614543913950753307277320965920812696542894261198248712751941232167080164027069759399572736708051688535660843781215272820700150204736407367234978643425583879301811934163428393613164000066543589379080537341523141006339561300196431495739677212205274448656350656964888405726620393136796234720188093937102919078266171121494401411649595321275022809207383576265648687656135719351687003867495535567141150331076522622658691803085810317219512077842065379492269775329449547023305853094121180509549031467185916228183255771269657660220574841588109283490803790268842682406517786899188829136154997819132885474147569876706916106207168118813409157765197120358327229333727224124453221486317184122492058147234589813608229023802813376338083614410105367349064228649828198030508014283055351504017942449401294048903142581143404574810531559706407143575135080399378647322743475063565398360964393616213282017394514626069160010439189647465426842615501217063610878883974497904174477076496223821147916101014801203804528920801835527324527503944240979550928096582862076028626880253990949174145954092496965072499791875967051033806303101189580001285392997050440913908526492933386791712108151437302712681983416838581810187742502306964676205068176763890303615497476264188494036219720112201828486874569537289607227198135860259190230717526151093418169439531148977447127612840369961725891674678477798658702867371640625378052497015272477229121280044827316623372184390719353683651638351484884226503975739989210033988798815849867295213150316657749312026825731871533539801449079910277855106582217014932574901806475914834582338126643850195231088718440157898669869667620416514534807109049053503431143106061049104736319894027616301754307345376780799164423165579976054972671652042707157686682800336461168844471578811488944670670258446496773574866168106446149248797382056615105790159601024585897066534858686870680519511061708397859638714885137583914150989830919649646301086591869463063424783635865291460327219772830383819874919757979380063843837760957377684532524730180248750172847684065175304196954184011621171392901019827720659356963622424112271323301809091167237349703937660465707592601117213189122211514779583749991505696046056743297952707553590388734482868481419944213582582784930335196722436017572636932113955910138613620557694448534453827807547390037424310479018130178057612476783600284286095924571897394053950579069690876672384401460418503116160635328534259380108290646597407101937144999647120466061827337178983074009120622198222487653786537204460509099659640824715519407114263119980844879208400874167890508876135302265527483780256450005785858384507363317213446932671454246650128785477736363034268142560990418330181895846479605818173792945008292761984139844203898685694229880090680714780880619233542949487589462071843410305515761367936818232562664881416359688219814973706869590329522820768215564654187599322588954454305753070563194596861322018924945748924482706815603328763931968573835164765779513599181688174079618297183320308180825225931522814999953875615487029849199357044599041141618181322156852089897651318846890901002646047940974523627320770500869773884247253527818179794084359838448624055046561807210494247864624793077634480843824342946926116123784995342498925981329879291855064506132193141832402031103835026799497092924160118145226401641573498182495723918146052328753741198311775579471759303876148008692860050960026364384549970167857821425531133235071195264096034820298641638709263133697829508214456443331879428580913776948459402526382841216868488254997308317189960000670533083953013003664745571925007140786494580435838369085387402328414929227764892123033880616444117496729120613943724446316057041488932112594390154898404904791787391484892579938886822274726223968489422770475239805569034627367675801708389426513189121666137865501884581526003310013305880636181088328856870241507187111908173150663527012116386840196104230960459249703018168866738294161967869290945923144718171417853599799124892599685014476629801874591813442038054811725110607783632849778739161724313914218256099349388068276072312731483919108306506774989836014523265019965573362972115407243157389517399530536412507921852753371117090624895530287906654482292419344244389161639103923322084676132673343171094030362266562524066522697395838477903092418436017970781498471164574672013018738642625016992947518132390434025547490494607355054329457121951822892810852554323600425398596950713317242871966115445438183113161002384028813138240901011824818167483973464118633209751798669823529835328471262869423119961730541620557599652986805978412878673957728648580392803213826332809657360560327075109106601236012573917170334737208994020839257075215699273258470734158169801853565781601103136105910564439196461802757555867648886924444547798787314149143295672945068042988305888828031502378054079876889626261271153160156636114095797133609616901419769618839737591764859670132926960348085175132913172556052865443645905039625668353585002580680712837152625942585031096204710164139278956271568874160574129107446268399804745273892247644284242741358077629090345941666443099580147491872826229830416412043106867573513223372958479587059351442051262233376118677288929904759956059676456572988563822146235109490237789254600694006833989767995441694104248373912808767277806647974756797955204632055385091203836684191232260575592879098583674316403009095231165074192665653414420485820856705437138238751347391899676621247992667040905369233043652127917082685360741145321826570165962964206582096641235008963859343631721850915766297637297230110086725040101245584049934899268225834587296569739385580070919440278271547651999447519776809387559744206703070690398078603063613199068153165832132845477953936285725691373653215603049606111117434382822111055626066867550129060312092377586627624241979830760181843465332909098147788714212942893708173851788071035585955130898054156508464969210173663678896126500781373355889835431461076353559737192825716733278705751883754619456360497489949601504743340858036744826343096507822547186809754305640042443719784711918084867227287599285629654587388545914579848138854340037966583583605053617596692696498062219429301327058220172544803643166359463775528207011009656694277281003964778351525096469523010637509694247536888803781329600217906652485016821571743299059833323198249205974569418105487396024004562661526309391393367520002546349654353160165949490299379635761907021646793796194939556129386141118756219164141537036303053896840724697115136511144540158104399191690353197458450013702760585232902332074034665083762148688589945510127482564932972416487298731482297524374002733070166353856779180351104930090799698939954675781755202716090806693544392063658738601744959664999647211228912991524127730856234723294743204850878192703478038884035071651082640502910794930077355516957693502174977784100527823983849251196322547913624483222873732420181498600196657553450908612692397351385978026007212772632960634747303175170226247735108420473224123710939392387007191586321750357359134920007723994791669880430571583340993606867955072396092072524982963545151260305995147496982432729551619571967465136192380530310386995625124722799354279665580387028236268612275398326682174685519001375021082883445241837622642295430049259964599556620719591286206525124709202816117317097208900152031185044778623601472028054562682046360197437748475215390745880935605028977608875104343767537754518871333017612887531075922222635902883217444369758818055425935121745141830700236119939239783308574469330052266116042361681656094284770327060357401383853039043210921110627572766796469653109386112737512644965799020751498068672837453616524833560639757521568956620296439528802123462247022933125972595211585212626406335282176968807601433836305766202442092864204766608786600960644204693688521279774847785073978938034193886439957539679861968499650560811893902988489207920756011542547752879528711944598174630349977424426994165274731474274434266639074326501078886272028112822801515675625313196194053402080768530069876271137722232790644303691656380712297974099553301651498111112622487840263614022554780074524432353008888967163105602571073952676616769771954476033131283653551653454908937715456151126373431031586547987378823719490507814388205876491043392435007182378682219216840504604118978427765621137698140708324177551896281160927217722447156963437641810725733962595837560572324697320641392172973426834972651136076607977775732938527528878002584204980148613102872976075609912604590345947045622355940973379958578565192873850349737815784644112795454154740238444479640883884335060984593052532538228677488095078437294118089125879338022864961829569800937154820481313408901548510447784508266559114649279245658770024617783367522080317546373642303807322864012084551179189510193296283558414003542769557774723257677470204172660638824830933474107468921319150585027211784152483565746900248771598869720888040846170279752050614646131478156113471039372700635272876656180103225099997716009184910085465142010946600100313498483093691333538563823674688636413397098071653890383103646993227359918712872908088203798005645796424971970027151165986503767019161079487980901099795154935224291821551796102912347582656720624975191750674243119089965495192935709545432822830748036612881784321807443149511180552612434981008519699612736847440865341606923602512354398042189119538303021495611427700869690378400252833786918871990949957213986101127687479081490292837088371841976020452134933841731261222837298588700387199794750080724536411203527739156365436091919708881714183845747141961849279254577881438593576790146751348341894114631994165866855446210616681681172999642730362146036282563401721518491319268401723494874017724182746436676290510730936588254079451135887341773368115177993217885448811758549777601293585006353914683122373894596451057573418373977981728432539856911876041133379375559253640816472650100489196728151052789286872636728523315346893248813824213718572389247392315324296325268650272028968707513803287958785872940120786985830824683874652184904789369127314635684183921976318659310874750466309809817781265826299790349093429173388989215428064027156113165895395931553418828528514201973670079415916792046411491950026348714582577670584575190081742280306403673763698380465206792711759130414155373482249788650152648809782681730594716235431195813396666053431983284074721110300693257873161147773967837534060283397536797111864258505085510535222946247872274948167016716045448807841456530613925330941124313859243811005578855822331955084776254632332848196841407276867999006198550573033042635608132959797106340999870849469018165263250936418222697558736490661045528792243340271064363422322674325844780116319856871512261783971850697643006396918933934074084056404748066376282242686219466267520391954915968471020636821367996255382853094861478258618445408486959257607449759116791520360883783515829861163473155070508175878758591124946322426417286427511375329067129488303586553213911482619950520341410500594151584174345984540735464513304142721822361816972198926412859344681437921396190734993923844263275386728764148828973654220562364374959048239986407288684042979101736986254881815322682400492355762275755390554997066060326675865003773762857477609708589243603718982876667515426592929859119400111079910322796861698656020582270423268815160349543990723834717127338901795682103873180912415241390351593795259012831145454120454603791247105113681974918446090088198938640304446268086246051653529564175635218254815518761823552632626976998091644957051308133929056074208706486974238819329244812719519992326491857552897195803975633729568867452318275034239799553782592159875009432955550276490296578299656292666627057613170238848505626622147554634311733154917432402600410988396447664109764918610660424480002811194381751573024718731107996567838918514846485117025066123045963706751006125316705320389880755531224093976997945241329136807545656506699323313785722544112527640966414750579843897176712661460863663305469193733101192371227582813818848733109873763239956005028954445817586427742058629263005052302187442811102242849131408397036606361155532154895476822560285486534872985238251875002996459008310202656276015008820388882854633980395553004713228891156179738373509105974200625962269722066618341546841102063200781900050556764838039605040939304787724770327207535486479306384776405253596789664656490253313013394785543364202046587877317052711611774298822810341559830700706150661112318178215768180362105924370496017270288983964133332587412559867587764445696285335095238990970610259663255348215593594100826645415421829673285653896751104430431326167497394927421549637287143705210705092340674112249081331691739196184488806448531011863883067218924015590993290638134706413000055582532896023409189418883621502544807689033191618727695614061561406242829460962114603510867310360659800351226312552939548141419157212899722137658293729647873776859380245993699942594316194767518503525198347813888318121159833364978291187878613457425263452994527790221716636407751989446975797328387366604512406361828375678817174219214059075704102531496313076585231253928572678354049616315259035975892706778401958871149089968263966028732113146240572102509881942129679627299206941805797274111212593128587627091698510590882367213525851433271696618657235919865615058971506215682490595658517238781447864637986346830002281862993850933129769830444706962006127379476238289732884198543782811360098232469737167727352903894685100523916061952391757386027752688796682410661068300588907570455251025591108293247945342498368444385273143490567925191818904239310338204296023879658531045169703967263359989178619544018433361321076146605962373947792610845259451939895958660735334689317276874308311812761334819391475856045684044175942386869627154809420166119662695030018615687975943978949052962610256467084676397154227005232972074828792518828874332212986147685772069828163088753992105936438981926495306156776115667153894992433941098522734083046460891495876630783295497926739759885156933204248661060078509951650387023681179933169586396447263987729574197372186797758436858197111111418000977637491881370167749159758515410732971978202202631911051032937749257942457630411840752651326297206736814034993648758561809660047980894511154364215416712550300124372488005329344527155808391002862274611041940066030982632352102331447059793488377283866177843454088010158303562605368730416740836487056524672246967975415292482372213992627694864945471842772006413951193669884285710586445844114027861437304312307945368530106655002364173936355890151267393705647335921813824738261308552914828488978512987779053488664552171706837991586940167787883911537563496241726664480900915492022807454318423140069290170638486780736067969810721984375571154359869810368268621440802541342912253808160495146028849151304661852941221204944551424969731961703412421965736712514775860594574523826169749143975010518020423115391821024968058285886577745504744654084240941811054040524527620269240942954287785711636081522811314852991543322460119893406303063200023965029727543342282578535748748130659366018001478482075481195781115658023303316116013129268981463534128492677240077618664458553748027315182305470125769510552849975639654503928178135626111124072793791161981868903210997448004618263923738805155739273681123612044299413321245014299885791021831327291109454426680658242106924508358637835545116874675319589476161049827401214272450554742845968714987431593243295402408809930772031571952345658722333151306730165171542719453008956973569627395087005764355212165968825584491020326130970364203660596757518353164751223818147584226310537199337467001334192684644825111723451909210340697502741709683474921919832073015226969504149477277829675819682392584267317276637832000298223994414266719577645203632097448856486867909160152166882784466954655627296612861409077896512390204573084147821856403598982972773549276940123268012584877491181729535962160702671600943067328340788468281523761856721784171658111894097027534525667788881807673858697129178580360739315479361781510389291665345929154252127261463646499401565606731485320330814645530550670329836005050614362658764295102445074904270400870312680123111494929859598489266052551796964437598715030958423070806660984278587720112188675750383488148784135873310805350178171644294264747055344409839417528710326620685827877402460417034366778352356736530012172555312709469062123659257947715820182620611222622654208526834979853442780921207000241112786160960883121138174957056734766671171207118034768390399420580869605033127816370374399463208538078268845209284689901129286271268941328371464613943762446928808918901739876220399187675378196799290210382941023438927668069228768141069424351091121578047507190109562551127139679145274413235831744499519361876314466411791557929387761644744071862611738505309484212063263614067405290577354968126499468110223453189273551342991766889725223285917851608591809577448793266017690501976104126164607545621944719180815026912825836259487960649166704705104464223885707438137747331209392695543418223712181731096189229370637814496845250844009592617208809828147009123661928851076665349990433223494259866638507632331920023715772392722889960147267338774715364224449099879191461007584775336554139499311207652601392185106204534579909211330939324085240290675698120574428726638653526796283347010827623988139183038587875334938143934669858297021685020414261382749752272839059209331310291347807793884112175213989407002213116156497468076878608094436399875452419155088157626231510806981799652891263157145105520190632256107260662944992035088866174712491775069875099497985492967357443751592089474947907497054927072884063803974569547346929087126390589251210442363068072534712803354855813108304322645919851692681338763197666390871034054937941585907021245630805071214448484012710850753425054415211011286160318744080792433479924319088314348529911219643568749024714352430171885797273749439246180743748154789032382609406442173822374711337167807232109166036027663748560719644277807605387026329323280323158210369727800762463173332443169468093300481187352882615216793816315653301240656081204058938657508558893763778511553873552203567620649115095032837017112001618921888839354032448137414148102556730107330739302492674868380438180691944895779591639149733522685220176697488414833483319215441247522700613913745216859081367306185385277307274483990315539193481810727321866623148873293189699221890723877221248276978229208403460946005953807052897252989629513975061986258691557837874624978279118655108945702379324086105616928025308739862947986089310448952296850600175816903340071300342672532528046237763825883571925688446706284773839576796292600514374370238677711008831683401363285504264030777006042033985826703783968417945687114215930984387879659883296522767854446799693457881150382958249480694202343891008960074594270566611330829370233441968011472571114950355097591238473936145739646810467606170657090988512753927571765656305672110498842101030153096461967860684043771880169096248579187262172347686969210534532345745661149968321965018955522896350004959636992717715126026050848659460289963391559878666934867457900444499429165757836300585524374864108379109697933929483613470212679209363914477349749247000465098950570806806278563096823628729884651400935856485599238889833789768677314712559184952870091040780523273611044676203111880091470672785795541657645268421292986081635047289535272976051079771463844143220795689896171853610177692328981862603121046509346152213210071130541898041012390597373501298711772071252906548911092584152674189366603535995989575571582919203500880925696210401136051237709561832843545190732326622909941546579536304846084402769596077754147586352293276451618620994183663175584913518225936927003282753086367902241496099344298239180598387677484120966571772688398068687100259470189262822990116467510397576380583573518476516923436167542039839202129738244405124374679188584556507720614518662950201458204627524551021437689630161710367694248937625921988832753558575978028229950518956439222496608795939294678352079073814754648947510864324983270950353244301109547169362921459754324166245256587373076803767636257729713998468830725581514505172264020452199788879245118241937444325512740809086469175910355856118040070490046028351017948183029354666892512777259636583744838767906846229263234456744768201200112655817916219728872655543578634923116442701773391070143991805924775487171896505617213980515889617938519733405285243903216336757674215029362555946163943893855387035614260192046096933887732955365045782950485639004448143133188827002150412547993355022485309155920778697450570541816854364236352464185029721980409225113118321714836384640631666506305087453107714672904242028784780962656455923470081450898619083338542598165826218870670619959413220738829858772426726029835808813896751553833757203092092059026765495199525161810495917539146477063358860118117761948371010554499460754986358004642244923081999290260850022857763839892784145694848639599448853426183654737850654357337506945766820618900694010253152965098044961150542573029605675013519306806241109544149132375480429893201075674511528168548794711179289720082923616752158912760426513071648900700469187571582991241453246234700095576170582621007902828238645227974848423851473513309727483907258768995541906896907958447169226072287777181629091557367437748423592229018121123860880304554949555799954333845357413107391532402091976426745973575660379160642658586763273326192337455638075924799001984060016881542262871234958176826328646743821289666477422961384634574010541108415396871504467077549642366485759251336660473265357802342822073707765950509790059374644408649564132030221204540917703395333085358402424192315677402370922041059984361770162333342930740642547021097968472583227227166014472801337089572845259103267238276941126093946409387631520220257064740070759193494402113241127578664670364918549100426768985788307384367546620469855229559737226544208866133115798571149608727498540468618750079264931856212229168905807897523147444783742229470986238856063640489970604916634909047028389082725024825135101451040563488793202679562395860919249058375408326237755288426534187572349413224037878919263495978406173016555798139547622568443861673247483718382395530659171700211770901058396834041159991314287372856809228784561903271211109583336689423358240658227900273829134617473889415017236502332364687544439218902102955817986691120811158335277188561342148189934374816122068836600461055940676210348974153652454483097975697413428622995763422954542050931124618989263256712175544679493770243089363174815252359883051954743024217436440405912174364644680902025987308592548965712185376462906796052268581524749185029796748514150884556655914572361328438826170261206478346707433350848983982155359499913685039505771530775452331271308492519957240518459089395483756810710920235705168399527043640754484807216969102443775557187696859408027509178635060420483323564313011349812194795800723275895551719515637012376274718675662569060383858569065300533191620953017985915185466883190824431486645019359725585786859820787365525400370811198406990943776993807231132476886374193324060238136783069426600056402528311946668909610509832129552518723190872866629907953590777681124448791297885333668965470707817583745208259244343216188682543017904714057731446375728141828001343714024741597518210475921078101832004049225031260863456413805518276283879224128351177820257482700039362956301024515749312164406437624322272641519106678178713213881082683305762248326881643735209076134763030814724032603573476984336582580783496529416544413745762827931912353912990740347627291274063300354971209605573590745085184275507372371673970612550223146924145578723101386185011182133089556978652910574242916897433328536180923619942615088180450184519505919155047417529037732551844855529708631409724392374686390045790487683780745542283168701243240547352607366349811286978993537454168278439906743916460858794524423548811735355057740860045700767210594623993844192860452890460557403058187560402485210382937529406654089263404978124342240351509828271501744122670190719621279234901031253442532768790147500379762633638834535214989811094368717647460650923336080127238428689238396846078939285954526776215011784989716563051489079704869290552106002492249194152952144917261927594161576290692928424616919381658579069160010405160569445330728011798201988117953725809458131559185752246500408686781693610344287248518786993669962051508509187113772600869496513748392491995427027977339304568075080443319589563813781108315848385949562219882858558201974433498152206048044587391628007335692269377417877248623537808952281208319039465596145053840732674929687028723419596510860500643018032559750358879749414987358097398762265073622821514445139095970888889767319177945838201686380324806249663222592575274123196998198558310377662092949427700230088577218870771738188787955071163765401227067332410375685698756139165283648471007861676211862199986576509637901348723217357548230464624250518051348593303141779739602814585662589747304657506960392317464988398771877220682891350384520150431966359160582485799862374253451479309221727153072354472732158872464286519378637542614036478477081152979826162382942988499885636583013127949975376838979501481310492685971023735394052060423477538787201146311913912357909677560935905700341844882435330455391959694178356870835085292992564688162934294054322784275008841779939269982734736753273859381324899243432978791447706265661929165903541457647165907209948230588761439204894989251527732828240342449513379423745459133178335860932494738014439213903419555701053688174093088070796185835626930771514733200600921048326157492996172448606875217445447811041057858454842986422439015094806047214643327750996278866958530418650230735851932501495692540971238286706885742772665231919789024506276560458837338778624759696418850152814901351926458213198611712459544655684447374120024145684869468249080651902112584547280722899569298578085241936234975982991659787641214633619715949330496565109192465760223796716977108162476047767032755153448832165918967441560896910843866714499661018850016815259387273386267842022135034156308314225305950356043889870052064513709051656362911705805201512742535106179870594436499117756387613017361870617946352172943390144197419359072308660788632831912431005034958253435624838886437725623683453799353665581735035498702285286905074549807187919284288700672514281426177437249449624181694771361295479561548239789230815171460390694646911037861157057911904998261197743808619497426630755380549762631732037484701831759131732819504685586651973301739977529593655850154511421603960797688636086988261649657544063046716121828871038907344379986564368502243899308851891066846812713013692160631294767026380450410580027670591766602683715613075700169441024437317965316722199559230884900158652205044833367874690577296461802241989435626286407500554419029568923329661545882301736657880724005064822945671545694653622653789086835308881789380055260871494274964906214766084403973553433264148444756356282407959934834076932900107968278723351378904365258051739439295168322708449971510341684095257808186643912338476282481223030448655250623090443928084133718769991932498207343662068406134765394222152694693902136618818088097807869975012940536985389998325507213313230169323686548612199751636166137796253520679122087842869237357079848620085236350223027731334752356498589355938497910766699518287276954694522110838013207084287032801109746848381188807143278896849503813330056152919963688100186994141143819760807016039188241411560066208503977506559364033849521338564983960737141648846459282004294341435758666528720965091879244512409447490063419367251312684801416426154040635890013644075048872815575641725752272383739884458237171463526902266015471236654020441065498229055412961316463826169452733507869560243573907147154327584631358162347671655959894761178648069469021858849373771183535030108889754857440974452312688494437232115298604909546053562505401993571987458010824079893065281496642344076884442732074919172515667861814811932667257510559680983124590105439331410638201345918009216200423865974555586997707455896720517719061859844111625368456564235423131460016765470472812050279652273291469674186053525975778531847638768134717814804192514448214338906190734789667415708642588694064193331127292596502249406989246239125910643454804202307152328747089773412287356952310425102830583915735780545800899824417382629719166959416278248380368493440104100822889503452075448228135834112670105114702677130180361049944955384232530169159239539935235833164697032094885316995130599341422484371049182963161536922067241944275909093160443876955828792910739871898294470948388611095076855228833128590443008442192272433560760539590089737632285453976200896365132328921165644952034955224181848959638592098386227303638012600156649718728054731173822602240805827377345209454113239560598222820691299636656754340001135631350988716178695975756804016355596676054043458661858448070823204082096759980187271604768626062656489801128716582846175625380339096717343112624833099436298916107177683141253941631830938607125192194085116158237511631785553671100154485303622782604685066362973754622126707145154639417055539234148621749187145368941365885204734956130226329096137306838392847494309431385489123432782285725380798531107770952620630181045639997343449377480659750299800357128234279141781955735609915067070562799825799417802962759873162454222197812262988802560240962048300135362224865950589619953788411186295977853797737031938279319479074019022382663035507452085218860962010750301478979601134334139539303083525770624941247901062138951688650553081027135874603927315662243198054249744358625514095612049745746103395347035129527065065583440503054828908015138170543553189053892236271980767431753056205075426900332027636136240179988191415626021584473914132703300308519814892551160651005465440872476821265566517496554181853914050863323133790279018322564510197906939840741332693700012789414230614690066339073488145488196309526119553446763690895697849320080037324812341063309305428825217605609575422989000354992655141227547239854731824141016088000419916335391692626922668506702771936849376919116889214472918652627905412990909787400127874337790466746259844553764945528782425597298789647125206947641490256059498426223239649407804295299773538721216534691851793593341320294288726638393681088088914979848609138040901141114162481985830608838613831320829549935322437945462910767729968672525085795279901565779949570312240195460466000562981070506801965794904473299012007989564227510583498224784237297120251003522068747606605746295025190439447772476991016754720744874185979555514417047293118382983173088146387610029869081607868650407784034089475588662798823531295992715292731325037228248826273522510172644631675356387380946586751925409652126201818032173349533920961046871074082788319541399542646045282006030328920393711193702388191587611561770643811434665777084318986162182127869892943450708558606030368324597218984343046232179798022328833946766690595673215996914802343829490274370597609861097974895373167943033432826598476112913357237242920001804114359407793820804762880041621871977690506837832449522023276252392852761472269144319709733842482937666936065940708269413622016294887339687771294429963838511899773772768304777934882884050300615727199772420610994986961536103521403643750860131497450772821090985984572604358838450872205579752922681782656937485956663188453437065360516394965704786196685919982088134918146772978263951730627844175766638368285813262208273706376563269767267537170068604841479903805414891524956008526136064731300922409337626878919166670424192909016167164664525531476766907249938362834404571418381802903551498650475202506308159690549006440052307303323724684024491651513878162555076846000161480603325037321922940395922440217504693565977622327228730715533149498386633535688832605494728273589531049307098547712411666202240942149797321345273273815358720275168085889630131204003709139530253758301005202244487337171633287266426185877075723221910141762546362476407668784694329178227528795431406400543113543935741510137121612042106411538963790838270439337773498873669412131090344795360235408281805141174537090017157659452396315221469402875876376432113828501832595461415684716061760892949533171132207010246181386878390597311207698535406746247521391268792405600614426313447035803053589459031590409380816259742762260242494812735294530056992628642456603307700388533270725245705412524583939627549345453216234978465387877643558216957999123473391949525023086292857016568706955267080961919480456717458651076065036313812347715762489698289988811569457629912497812866386699175584990276794886851218725940174642347544632764269889190401338751734969965678191837360874413957750704703280858516437700206489889607076414040813695001505564723771667226504646159172037654234006826046391555936891793018869557588317114224393027968346267585920625264441208160670584945052283985653055058702020764940503760763462927530214722440755317161338077465673479634619566166512956357696035284522711690844638127043527334193908869579885150213148873121615360425072488813851991013863545878443408115424583382463199587591850742074103587850037604929812518834125438522048238236174115585297549571171679788588127233367618897430509759359276944708268228457073487164785901984622548922650428513876462147828963098340653564590786192572622657260066541480147662996849355118370926933212495761637119778835200056138263782354757379253200790295044474731214017044562931606734350459952624610005384713407090941779435301879257615211054729469413638498159944888778979951380254129344758868416063272974456742395540052632206273583964564893386313688463323289292207058628614180187272249169720364701000758228755099045265851628113040897891842778370941099310169702608912603638121894033923761135001881929716813245203640562919125289610922985307432482532064053972198130557647872487716359254873129532514212204412263238517203518053714655921704414597361419333060320487636091004285215373481490634856691940836313411780163623298285692854398056569408333972196914239805309854156766128639655023434148330135070505521700843020357428855488745835790090929624227441112846657884794243183114552384255874438241067673307504584433418557423608781776875325372110424780869687208799942315794693053195082551938114577678492911171145943140839883983989008568344390457867980566337609605284314773137188028736679983080139706303273205378076863960552433006971950248635199719047645183475014668638384627843170388575886240256139310150224436492704707314155600988825309280022380785797592877632497434181291023148232100072092635842519273596806773839272229376617920934175243861807206745600485928132459324838341988453861845546325823022544348647457864869975508589985726566528901584123715208057480329475554419729190196944001766397808326188295260066229260295095372123566360336239583410358756305970785207295159842459042289284479948365889753464992688647131595715432290965925131438936344974477240027643344709042679137716630803808621423661753103070004401577611513937546417832537335452069582149423802857366331567041409143402031720529687906989572605608092587005170511214294483552999939787945037741893089703965805508789789860246661737672163170722019699436246659988394109490915217442303256488645247860201124535235950798690960348488039579859136718620767619044194984750000503310202633581454155333135112270632078405687561033869659405163669451898611763059964622208032334782806912576820206107300205306150272533785366084827861052825323483292981002178909086786404629887393567113294832150000953637162506598769366767500032367025962776846224817394245303386052332277905077189667496960506378611259078368370193108642519907250375795634888844809188414034052938326221122623023812632012673014976983007198014665037284605993662031731819696244116240323155923772763267755408117991990540974248875937215403447388872894497802901968641039248564778331016719216384872888758911113236526122321866114770312565133831165782171056321470433252325091442776575797217078390391012443397336061366157304293261982833907719438989855275359012034387319982959662914790457320864205217211978443866391490288400723277902923404362245411189000012476617166690726568178494382950649774719283266968162039455417564117535773067733959931989971132243675886859985973452451394412793300618542979170526452488053588100467628262266118846766137695628237928398344163586913208156356484877158875366474363903593709788842321271695991471925389830793849648587192049750848787574473939860360625217291531119812358445696862023225815716842520021986095774100272401372756282457775037959303679425857968654222417347069753076890037002984930674134657038222153642525105013316918284608975140509597616114942969248871628459113190531094416658441789713228052729315598919662852470061782323269333603673781226515942448446014662355418372526086200566288969485555952844534791184528604295151350293174164146862037261765394206185588940680297132829404648165481194320763754588926217641187019716821913008092070021899953350011603187463761752218300469621323017755106436498375175327206476049093193452000942855032569379180986165135213836893438240541284636427198933061922584047261418667036434788601321909050295340369583724632248708442776691202101864463810855234166167392833740674444213948396751992615748090718616888319540696168598076193603622000348673100423652167827367215125570973749799865597301870842738300912641464940345881986474521877817018410234120584027625477596748332268323499167794525200937919059786429805289635854626011976243264529831881260999418747839139708900077381881405694950470931232450772264701453477065578497200433643020927051496651400961885047142951225907503629965965765710141136974936632937729094520571317990289407847022046254074206189479430688700477596475726586651911384407494764651657502206068740319904363575913923369512101355186932825842699382365231163075063451748256808123515894949886366630442557458865836282220805260670638883141636740460085966758173513886038490485616947270358651664734611930418266878333985601385212165641139917960101027541538868788820315449380798005027179231254709184533682583463018719078064785685871701463296621657258505693212358303646840734020350756751607274091292873396072339506176370955969381393030315343374596308844859244555334334674563364464877682163781493763169293513162168208388019980151185793124236712659943218475115440873600678185505216494367194031747713131334579426485470351584587390411935480587892027510603283382386569229564791167025665490847865402828238535095420845750112277709767210035309548670120589757509004180535208857413711626524305258481905367949340095143962168007736857368600455161172749059247023559058981892514662446075442340465306013681815651077104968318777752917197362170217364428301244166159955250286716137454219120400627614153801038995889096557123381806949760051812880478046720410784121316006681369744904997128448865148926362431501394879235988563943174615713472275918295217211978941474279430185434597501641810947305930464988870263651198010134435932905356700395858284356816891603529133377561572813332178477942837266497196007299875213231773803002824864192628253826076829916968980119067052542450479494538234456646167144630350642111444852514971666668717219584056779768323628523315321272468639574391940373761705515142396466669233173611877588262357727119809789419872534708087960363078616425428428085208305735790377317694454050706112877892819804475931732220583145392827687742020137139793618455401671882492402626484050268592048295737691549061578142158357140783135346790363465218508075650479478411371453129680642167008562690746447102422026644793836350957160921256868220106823698290268244711710164645381577135877768957543012034380091802521727710403444681383995871823772957976054553253455180048935877702085301638694210863058515752146828144545062710675922973861608602747861192969948136341810318244584578001821890567883463578361043579517645298223810768220222330547686733631587322022559862795346831655061871314408870578892219553524349421243837211508141774865725349533988313218017004940283002335490666460660443858497643361041431683140460961583169092888381614762386192531841141733129213671585476815108103254508570171289179412782128500268985964842123300469462947304316806808871344072246339559055980719857822877157975328189654901740300116101270380802754235465157361856418631580606129565626782942585584937286625700739271233779942483809563944449259032013037087835046444379647858407664966770153443552916834090552667029582199316560474966756838875485906099331943220750928212475780949249698611059266829041104916382081052842116771274571632841082450862588150537921097002366793832701176530673782150968072746563969490070990267714771323303381040404103150030709037248566619867786326660602473014110768775259901651137709891129567865771223211905192643230524312188883546696378559263125098047984086820248701092033131007313936066372306627837142022790150225887641772081254502126013497332208617623461668048273769917026440576644416336812425275125367308144778069591164887555483166834498057044760742877792179908283759325091864024105671807927964397727323839973389885752834438130802662686906710451471222078138859481953099401416312776377790237599928358814430492831509837780717633320839156366480943618030265777321757389311265861269346292693397385743821538746415713475944524763186052930121950955328251339882767553807316171321584758264712347576570952005382002588447586834126009921222798965476230309915668601915170711958427547386490063018690209934696311016577509805670315499047648992509341038686664209675825108484943656210879328080289290432819159673150185300341174032330489763767421317701474354749038572294960516535058205515322909474394014605024146372747374189715011607249171958909999173727586720248120537144555482935541589962012808317314811914397473035480277157387168844711993494169527556809091379500954117720780239230225662902497201962887255179792194593235648241267019451570537670092202695883258678534750900645811327103514420728315360719217927992649277644019984734119623433279770171170827317125238534757623125507616338275689422748653200957705940923850717218940113757085088611863229221348421236302562103032529272595339910250934188473215979728639932763716704585228324517335760947522080137557517618170297320332526271953429053507213312712367821121764488060397071700972839416734391345025424143141820796866741385757730540815386528618437352630575149244405634770821941570673983787779894174474324831568291466455355523805339359414224010265058995744304423287496470958811270592558172824614529096822293481107422209925669335407804541525382015653680872180536182061035387531089364491868208005537130368189778141996100627290261833354384555461974696509193624311327880077275269083277927219008154974340705804829486918516618761372512839542969715387451702520970448795551933567958351333946226388769356889531062408401292409320772629931804219779895173538298029546896218472932522190276138207564717222890509849001925820229535273901011556901646417277812710313080696820641152595284070754020101480153368728587878628345023629268520721351837734136023674228051080437431360358631739732954325384804158120167918299189065979778209838148236158645707777194397034301461930156639932157690117767851661490821739822869249998874265306988579744426751469031775022734591490008661222941327132238342792012255263590208551603913639581239215910894954775109688002672081485253189609028165290980942161704620191083274447629042546207721577383532164138239673093504747089691687373538916088154757314388720019937828031279133444136700680024198491946411013768598504615294753916815505097471972124578837462339638610388931711793432388654360845531162981598679230555331631737312049329334241062299667269869557605205306593165334588686065707114655351508457725533144686396630481964524131196585038258940697116264680843789546386823809311863052065703522618917242143867809694888949056190524215180834167916398992588150014782190061055564630796555759868582788946245114503635729764415836814276605857312261539464262235674846668848018293569561406797578474749297375975601985124997579072770368456840546074297223620749765596624941660075536841573717981775192586711967931278021977225204638146348025961156642427076763716231831226647891932638887289655350990234181469681965248029842714040007237000825623072005857551808932123251749428251804349929934330974455751149770209822800763565668186323589007630384161261813766478256134747618154438496735358634670552605444141438272106931219994333982900635636530682429183322414350293973821329554244971453173214216863277938502759617903953854008454568570246391272522513701549258456821284318447946996910946666422748363998725857657695678764071940427208984858185179247379736545639422700316548025988405144247782724601272461266946336642422394666898453194250298048093705987411111672195324140877115088517291513857968493188343878904859297031939626649130096373093318065231063519739416342192364702561644440166928738936054933003456358839358574316305375061390006257560596780957227444584282212367430817709664830320279045235781722305828908492472518721622110682216301171227668840771703404698181358937906656095249827284333065401882032513462106472078210238427883980531741783080470156026947565082048425032257058024285431591950404956274439784503876967495651440429643634098060354557743959198304208766846839260048099820381293247955845944533314003397856636063059796158581118745730564423210278133444137535656056361342975269013554548207900459526966283233112861010524160481992966504953257381025100051094650272725348024496246081162143770032459602606939426426463578909877449844081838547665443168611370820910890046605435163451092733816304396470364067784087557185910343795753755473840797901067497894378230229953983719140907140502935321440706365782081886096185125613149629971227507269283768948826233485906232529418260219730676756129675862097616475031235294697405753992144980717535714198345255772876259843427677666995046539861222906474197956726506387895506298757038198059174460628638138222002482782814704958291986957321430304361702360375766440029889226126757897536183367510894099677898232441146907361369631580068062891007157162782373466708447608858302820088175524767460364529616439082417851612529263365535743393357830486055568711844479119184636434930594144093866478517444718859562243004285807263938572550203381319088722245990206022124335460116925282544373176008477204267925513689510282556380958188545477562218172718350237940140790272253529938152469089192471603332256504533205110158820690081850000623594324404401077664904233236419972592850638465309738190693646635043995042054664353040182520773469387924325697998059098717997166418012953954033824482534848570842999603376116141302223463534781115686860949746319857772156703438703606378385473548712229480677895153849389274837919400287316371943857675664848872380735102848113196901235338526066466635023616927000030921824120531063061370946650773376541669766351672228062905007813703698730951554654351619348572713896645237773045222701142878221653859426334911706622226305292026655399387015440574601041016759963883936160972468946659218518694200368899698842589273046527450241942459408270643516593010597432918815205004348065030541132138059520812652653196261718708222557874325385742679250708304714261602943423796418737157122238877333991533098467569294489244033294294758473949938458071577748565986168652614131561235378195780774355330837517546660918197790545218529608826611175139717732405294298762045565662678957457024892645480348899795524742082791311498036138711463827255099509541540660413852821850053110996118732684442474302117580812694466000661481498774420894747954102484692384259423012482620736897669319380544456453630359655284423018976996356635392854925298464821345665662284706283748654460689498436960698687467083241849756189003777978896757222199197157134803831086122418603455971794233598724710986214480838561206074725319156493553966121311893274818705529477548656882003904562147713374210619716141922183525561547093369187412519332417206811863026300984435216728584725797518344302331821319529426933662596498747488703577740154061514339028380824538136594369120307920028802158897143485228385263721404978116056344662211652383655616263131911960379926710316660354613616312113177515088572842320330183795086025369530522139444949110692751625657396588584781308319968377479148576787562160613811065260370223616248135753393326502678398129115858942264210338805338103554135188719377601904676601750267580901627746810543748525709257435224046528565462200760087209329094655924805100966078187756345410929294539175565159585758836919145223670287340907182788723738847337366349651947400353164468338173529468480293605716324211934466930184046177916561067509542628759191635232578745340056902429581826598554700694597177312313689543335890777050500642044175315038742488409857922686908126207614862295076680541071465196020481204953692722973451885886037451868999762603106683066260529136093081066463767337844917727714879954898368992502498354575899206380785015916208413793407321594297396590159900508882065745152700759080961023929540931598102179801083936684437994437881783829080694606918197455535210560937725093819761312611160441215135371254142179427547117564070922781521224281551117053408437476464829572175429789283420242792231483495021280871917872544015848409725272970394313142703978765696476224925898169937578482118019190919336354178632862028768811274292141060289764007735575951277581677563065539850780248185285329363803798532679998739432553762786482216159459741197446676077145730694072519263045444736040491756428326061430523314831723995710850156577284970078724593423606231207358538943552104958928194151176801033001292755196707968634976263182851856327074598962063717385085790054137496377486133032535945886093777886080404154425851333614243500375366397327718486756979506387966339357096691459352923077975841936723163297264833142101699137290338306417049417230710950804411002145339860079825945077389362432013807518561795888328823257058996818019920769565136956561595504462586214858470435464464335430859562782807426915035106158821567221222727245888993024694048603117816279244688341576384308207858961296256687670543765661108105598279773330904888531492949435509372264057815592932331420292271764592277911045361946049152243512242379107191613542807837805755451048247271445287047359266999539540713885189181198122527180140333991910404547307191598594855182734705512815569882634256681144714351777905488635326166391273286532647725334236623400293922882025475580500013012160562698784752854707026646084217825599806736641517707103695897956482639379244084563486929912774049990299923537864353604728837398977008632346885350744999587595785011881581396113832099864958550778424886958588061998683119834303437346597776191526842672080147369245701944060113093713356331297444055689901824893208463070315956616328333904381696270210862942080300979609390526993818666567210984085789481045852806017380473639390176707574539579401828430280416909320547622264206565211346152367962095629439236483504309338977026369954844572321409492972649524896191405914691047939669270474561321364602366160930269297890161339310800644900982427798743659981839100020967136820411903087343344069039387066467993698325820112617296316100033263856469057305621800784563202654031075553002768621898594738001522983791114331248875512614341670261245960988236820395514215264904614767384048968371706688364463573258167693231743359831950290732180134208548326631371669371304050218748740415670210919447588745898474184532562580863374828155942402497218108194530564779072505281799072605618412873512404853088326921974692427881610697557161372120414449788062132902377872802834432403783734240774014428068330688596336843685863402234316948279371910341556525794739605523661186069156809987133533158561400337475935373954770416913963593243768329127605325496672395089442531514981020939661091961133103610515653326249181103332303907953549587524002476981944616601160292054014963904259846581234091353344608623953340105372466284177722770360571580877377984368430828935800244232189521339413019362833978026704471579797125088569234121105707955720187509581223461540940262065437506382536223658332480976667340081596747207693021306656305825611555663311907026097158398638213273648361569453620065839053558976758147710322337753933074517191927493613042618828003499363807361674294961741168486883524519164916067612541188539216550562474386429268239797984903538744656672062859967673627172314376729427796239423439701400565465808655180492491127725661657902661525359359820175076728005249201248173900160102576624511002760756865465592140619715227452643040693378464417867432400816918676197743926275827362896810481030190962507972139086704207598672977407990610434817320991845718314310051668121949659840066265801094018034247595573735519868664040607596381255425475351678969429554198294967574848468802735949602740469689354141115463961772427968575738519941468319228995637546066833001524117361260054071624171195195524886569666588342673114946212672196521936220057847208440535345721423577987979617852247955203275890903550121089621217988666288653091966098044640722423135105739313254266834971964156829378565602079260037091697392368868616368808178633695763428815454201661106224421210710439307616616230871251570081117185016795966200027984278068401938390941140262357342796217221189631934004560818185977219290467721863555239233710745684408917362363705237360845900320309447452245273123640150937232634843689391534653585261088812378001987541720910026697148567947074399658032106077475826868965597892250935746440997262811003617529719875395457027581096399683511540563258867481527891508282079038950859592733444058219724731326505533641369409802889569386563929778125187135188972492150870040549250168016865502509166747545755323351351217983962141003609632089198890620941078686536200427681656231771579059109940660046241052986072670780920784090435791952997816869710609474367203639865275699046251916429612926705114636049004694684463196080500684546127778668736421661628902327352367618274662015441771946942936755960428206961076784329917578037506371557540904629414308661948111888268350746141410419127530832629770423228028620677471880004390020840997647649730663265064853114310872816530417714448208876021079214572480632777085328764208317504550223375499658695166283995286622470219440137200598522814963267800682217593550280208192082289063712040386698418609666018496075148512277085901053617347353389835375613184545446908832579335822390798578709910700610962164315950846353788399990813222136964191130230344792341928249576064206580773211764636685328122999480217348194138947459427835449658080124310939399333957118355074430918524730765131931897478257997574693903230824083338035187549572169525930499016531177593204203896955355153087730311658502268792316364099346652105928874481754067393108323985251183354359247685600553969010698094238121859102714368896125166083047396620602180185638262677394644963185766904683612224123414191094722608779141837673024245346909980139360524805789269895764920515152840693874866337826005068286543853393490936370683304529061956471045895479029602490431193848238055678904109637599240035532951533115352135567659187757517214801721869856879341546381349720283924429692452367590187536747329666727114982023606630920712516143253597049491996772812618679786882856615064395642099067931615603828175838020719134779062483235458661880539480374401917770663492343659637517311448517000004160205612961107533998958847213960070360110760352942161254332390683484016944654102030929942048871920988898293980367632677465152753360267789292171866061698678234907127168520294674207543370099461083717015435264804464852252079123494473440133625770099265062172802333242619364235917198973020536981632800515677279244108130679749298800272494039392707843409129988513149928076340733280506687122887849098281813551268206744045733154185193834864490700602725012218568988814525952557025805363253897612875503233302990377720732476846951564182393387193014223194577316530884683862598565124695144221146624531514610794938157753192125950517802073976522410858715055590437097861387535688000377507449899113820581249233846495643391322962107209263435399398727911540999633477468076073116803074798089412011677969562913074082684107800094238208078764765041293906788835616926472446483230222257461016249682659051476049195346023824489178067873874525826672744777253802731369430360201407776346974236114371298113567011950858909443812074099787306597361940853129276754571537172074123213711270114534238095530275868267026064718394252500343253557268139686074686842788943184553563105134861506578105413630807278026355319428630913449537419511272051545657249017406655770502477349874975403791557071709141506622889361455468829888426169711905901679494291168168265974106658904730325613786211125344770317083423109088126667815732957812674363493787451293787767577251253806767147633335457750688867745507423075463947802206283317612048292255699345923208277047980937333292936840771344668289218144575147124836398091880386619347286509220772836414382288418721758717805448954122955244282207053796665008048883055785428429331700012038795062104999772737170657232304902188396048515440211782886791381623227807612063383444220117699610803197686619734991496143338025953869806461468137802387640133173704394827955312940736866217569851131536482730874383116537048144733769739089590301986285692528116296446565472283230917590912542359830337331236259518944256253105667586970195863835582906119472804682716914882401157795337852045119652601155727737496958336996417276728086083121763893350009841455962663109972394611597988397605382867797425784056141636353109584895088396077736893320291636242487440823692499285419412293724574494909057068683858476317125744041178113885548309186469108692714615078640282668504288688135512321418714545578420461678665538468417957616820117547579795458193320628438602070271620623818573686022086495535798106052208485422966260076587184447389342957652520202619557705992245625567677161208995020758684563061145260629394289107732602471694779471002999658207131493869483550465581520655968231340947233719263457458517852416298128880164515254569259169796487897232711434741660640741921620891409354451248077977798013904394585023966416767495786915046571230071895313084484610986164594882734219208433175797632914725921470041113859855775919184257871195035002120846383553894521102590717727310911455783890055130167198010441030711923816575935901423408006315702528190163810335736508704068307641328294624895075391429576503268608717103275390681935156096441776538549106843903142499466883307790785366838966346854652094251060499602304299119023152680593769373486434537763775324240803353061472257439151611841579524572324808568594486852910273554379693910839451581580663811795888665202196082921184201370692302222035667681903516678595575406721069882962343453778914076287542371589193914731110416235117207379828468894432881572388093982399857760744887630204689891034600841546459635039717151758559966436340790744400316053355174277693220157933537408904746026237350578132251405804391935009923524063028082350393881673584714308712787053915673311185193756548576140731732316073306854957481944590196178346566550180429025461565414552989926921994201145693863968789477371426891735227812493899157933328175623211372446796569623971535976539145875374084497825034058278264074051657664508844519597667715958240169776678245629623966883520087515310532426466088516974792856147894199263244007382477643313129862077470615505540786391034732471314137527715064085026195957590833902392329745189158404709482318461453095104715185757700916157529551484136817120709687199410249334868960425785900724734880973750820028834283940110139516800213482721486159504693859532256192403907397340433734148583522602117902667494396889764082861598770555458218126021550286163701849398054385720893328277589386142176364282657802562166643376096542489321564419109695210182869589004608196657687009959906925140525938840686154019312857897481660164957961675599117736885913503334671421007671179770398113876141733051983947451549214822731096190752209957883084493794472430842163030234123857579007004813677702990730085943013379060251115583376055603822822912634999559903645386884009858797287768000786627422364140774446340984204983462328265248396657682494682056338026027362227315310309910511795073922014539601413416022592851460205102876711086948376108946886220857705865370617564859707900516670640036522191621636494252846837471175229098321994448244987484527198766613249587286940547499387883232348195953851636028297619713799182234051045046216898755414503504160406690272278627537772406942675041754473559464196630524450424421120797147418036382137237204431979812851176720457825803547565132978373237142805833125093146826217154630965696968835481666260306892565339549767928006948986501290004346192706558995204419412168266028234946541372694554113852625193323807477160980247674992833717590525558310997081621670579898558544201491400458809901798229972550209101448663776143099290511274054776116116091620032498860414521688643111310452222291567166082676756159510205701898339869497194963021614060817677934330138168423520043884682757231959580519439370358986093413108598293076414934412659934886818815245757726611521866313768480873662578128328522053788555886757000696300716455896351093215572370861599419257045482298248107979320481335825868328914431440824756179049673057728722202448769666265341134059611811275858969981011535776716081416200447550447455825828961616020397891292184995560429491277452090272970885269034196761035083698090532088654294107382751150539591214758146768756806691649045761822519715711503396938019475210651529115245253691899484717564164907995843421205130610926709774977794577220638669639370458520729697967565929892971120748540156465125310617106673099234080337314100220843609706161947103822040027867640690492009788384210460709100485629193605234767442061580381998069777135789236449773377558326754626459382432744519233254274051014621476177302940991259393036391849157448717380102714088970966897070501883953959196378089561666374836723432596945019123279347203238949915165736813139675701684088175325584907587198764723966865794327561255988444758446616411909421312646265059611153994956529253861426644412339394220851620532166421058159397413558354890941808530605961230150816440201714947354088393607502908507449460094004776718340453702979050313113657567406795069193689113742354112412953355981211235362553463389435959767780038894435716661384717238390072496086907110259996303611748300665196500404263963214693468391977832980290564210422971019891406937429031807427321473381348069861102122010389726607315307693695010322048925943490568500302614733564896552662211727573023990760565720200336994831918083015300744861893045925651368121336009120315653745927468007317777992020724044307690267887402718516672485883476313915333210584397188515483794236853871576885688791254173976874893793432349445150138272688584198105316013440144482614588238749801621752171949221811482280556500434649579964707342539188319730640802974878964335052173026860828643894372250535586864241699700022847538952789548049344589898943172593568475789806559931861615541876533776836136848606400536953949218925599969320715623535195616318650265920161387560794857290377176031277923695451962801805399633416543540501852357733439586484207761293512397278103838657102533262579316008236968108344751431036649669296883216276460235163299662712051381121598704305493602066537015360869745551986085462644394724883640705129050767528833197328890053792513453657356438746656713903314976450207545500204095238407114932498267859309237036759618959471795681772250872590681266650156977460136051028470322142492174385071520159058510835728835666039700279960032851056113914997817494239891245210367631384488423655156605234037326552118751522268808571933582251914661474148088400043739982388606729839481538710353812944477100933258494339461879339628300873350394403365235810622549359261112685592539327572795567579789186549175645105340986309307293102511875828809734795223049131230877276546314219381945561158056668494848856915591166036026564102426028838457715241014666424807786188232836629775302539058165178098150337250266913070206062514254203133674460933218184366076595257965886864280271190926895189107841956781547509608514136551473881081398737286041844004423364399592686370070315800582003467250635538753439582416895890415901470174695961718743634675586849739005181814224072704961657618174003912557337932229457738799071686714717254986202768286398335193328696157848854788061724993261975786694259541639708622090136926257638226322397828192907546462097341663084987386983404473517038941363298132303128423751732443176531291447820805636913310158838589591690665040193060943634316754109071583489452222909615584815796633009640178323803409887415726118518029285330384695871744460584623542140283555912265412346432586370577198883471587995405491516286541756247538503844007184431448439913013120038750113671444780632338089255755403237404475850673515107328120884956927812483893980700761687097710141270422840953545142924321324548068044503391703792015346163070817791649972799192525979063394664134838331289697855701602571109781053005119361227907975074150024868061836906724591416929245957161882213632970129737024030324051802223579744933084146212500033145215082769889302718977136190360381616992914979787277906150167648513253210836169738198775375333655689560793268075246455736569556564435142087276535405759318203282929080937637864705821448419480107037111149494764268491418096232807096434824594243316039518108656296553798541981298370618057383780553720313389513516214525114880654855847231546050101273434681954122167644214314589600573538002947835752209763344618855016853579537089761643068744426010327733506307624191169262554622039999094943921065261529510142261826494480412356460377761319164861354439104424179650513109169349465217666676101870544824639863584053099160220365042679384895257214665684458717544438000114007023956923531197174107713853430823771144267950753507075547585519335236892479101029424814988050677484701923921008821018652640957625235630129376368726320232212889372733742986386599754600671276383605496225207595043067241255935181228994478706299774358859153193642536832683941923333217036059359386314175087186203767887860696927666334332763141141233111528464152071699877758643759993841260770629043083601348577163746206293450770413625420719253303423220552375733769804846338258526545597544971240344648488820604237153207924707140453189292084036158615912109000173609052170880748239296672387182590227832084963131887176166742440172380714141338539039436748690516602554646695698608088993208531489628282132273457801286228576849599203126911571032165420770394462972162030402607797421165271804177258675006191676227819279333143368782516041706188546174869415471147413767768842262867123143389887789148038470597928657801269299110388507214430677796994168642399396219711407186833972424849648053861402704436603052079638058035918358427890152513789815500444258841060240496386850251050782146451531724813063352740421470776443533190451693437021324795707695371696724304653563237814771412226649698984169792485244529123871410803042780296037355456256515324355395527356979724187316966998258421561530498323781676749348652856203524882342329879716059858271444192138294994431497904390659149224512582976154984979892175293288409348241584470268897793909390416368903755375341679155305978263592912205058778186064166545144745293580439404024570846099261868265358692216135254173657010573408528060323197955658522050881923642161456904598246966009722190778221080806405539288027644922221704121283666753529480426554532608628840300153492962719592348024601357101021560414389477655670844431779962941649912497693344371456906256857926961000203495283091071500522807334041357630014069465196164253497675410229258346371932113616353325289131048968901981826696968297571876313530344784673763600006850444852563370273601603253949300397812892246285448119205482438853386155718632838068376070226809001824291796663581517446651974872158203860464967152911688359828331226819323118729252800120700293346922083648312548307490488888335750880772205103730288330327320239208751305735342764474860585829029418617250093416063824157590357794622972697688750589240320277279474111096740614262004956005133844653672263805979256730850269123029342594420676248923491469391994046410128849404508357532023891934685415456334817458611919825555934682924991173537108556363833018663107123752753339404318694682428672103780603011557836861237577588277234502791794865231942661276063332457555434914705892967675293515028988709067026977158560702383596513911948058801908082590150841448806854980332403110650511081178285028065943135262831023886789293939898339959676048948073120958268206264377267997321825497315762364049614554365407862352761631449622111468824334250495128206361550670766913793969195751933068316814070084051664505695849547830895446881160202035388073911788758803167144243618758547225920043631654572604564147240603303928422165259326550433335743241704031792193045007205492259128136835885140628677546697005846388975732256383834379665680289069347263621003812146510311836034836217588035713368988776007465136942267217623252500110265996867797984932398738200905831792742439760366551064503367914414172098851166762659451863090869242640553940792026560250932931147795030411514303258126283298887271875698284244873386044893720957692712892883127777993801599088707587380524856203459912666493150601604022191179700274571002429223685378091348169875885349350617349527602201686617654487751946150648877565857651197307286055027989200614062526027698584170060891243901966655178743163088835882943011834198844330617722586894090370027064539839317132162715203116815629960232634317782111258637602420727324220616666101818893331577109591421700022996259675791787699558376472652354046410408631392236101117262242407244026342571540832707464560644984809094976098113397163659044656755903441322310024899621535714418494377120664118580117103741546563383068688966383745887229666073247297370224620856537288777097405536232041996245716670407196231957091797745124956705777108463391947208396330587763131463517354961903717986241257910351151028024010934160484748112192490881969528976107971364494941413903477456465414217340702164723964330498926028440929263900135995021690073040833950825741672025500623376898938733706413479381858295026885302796256922708685478469565819475535439529998380770386066872656216657755757346662196748981731984834189929495333019551155804466124650217652635989803993783321631821271301924235676590782792146339759958797744958624430819322181199557672809067844707399496767407142674005355472290611914914986921125066509000486179254274840917884602741773075758835205456567364736895753298070845021231043788941758460189923700076934762795603270930599702844142107730934814392246175976722405640149332547341516016116076925026632206298106762202477673545582098911675058247954055762739934924467853559041723332441986837920422230294445499272782959829913106703282526911900735461260949364533675664062673324831069962618280668714939630710562909415038467074096739374574794183707991971147461458392117796387975250409417651032909572629271571198559084939370651133745845287970464934057985395419998391231977775292366437818548712742699481613612394800770087830432376842268691914616899471285579664260797242811284191074937838019860287767319452410495917049931142867186065719593599617562501094556762967892692057477656676409110526074621883890954042374200596838801078685037381306537517039407036172210534895145615120266726663427510823623981578344551907257511944970247902273575353717003446089929317640474173772083991207929353983331433183430387940754537373345310378580616844665434733107217179980151351709275077004185511233520986420506327313303709330816592867214574664132424234611243779229540216723090515370952081291277510304949795686827841085696814045311079554551687150034208246338728940533461071332830949358670531318231022203956985808155588768496650816933963784129960205776705114238306095728024265003868103637210728437357930344269484930074944957404396764492667698373237072932204244882653705078199245705125493307009819532755186232703476491960621226427740676464543243692762479203536346153829921397120362507870943543318303145116024809416659449812845503098371210463161214069806989883920623394446562190618793148740135807171031481833142081213748575308530701681751107948563899653491875986723541304470386953390267136605139165390749421288753134433637080296810805613737836014122103968816950773854413682872768084935766835495842060133639569128863288389154381880144714942990435809755694002400521750570093745309191213187919934374592966639514684180497641208747287785583724767323517163615165863275561157558473172217879865180230346925363736883960486923105794300721100516110685271760097162466456327755216815272088263168801713271687463106343893029869938093854118922758890840994739474393441559711731642971996968166449055282571260098360569461666667370637790399400053536008617314370821179095316849895639038453500823412746024675594260962610439810063853944146638014749229589344396297817336621844257830608383475816866863404644933893567976019235791813656695921768234122736846927384996732243053191089621967353632507767594633313125076610615486347742052566997936542766484421439370533300005036959747558533443240496896124075455220835829046479551182454230752752740437545501899822024207654842394030573223712786759780142629477610081186523665988535497838746686631986684565857296224392535272821178950490008340961188551491835957024720991523547942090858334642311368655128294552734473890993921024198151289291348305299682152632965704518584887964853892583813290194597356511659991129088960155218313234247340131575708763432106445532935114682239301701762661699458493656841482597466427128229169600400735518842661443429999439882713554177888718697850555003879295057089145192807940744413922719463607766357726053188703273036882237334091651107002809340670841818452832523148892548623570082264288687279503933545551142115846791665675038592988565372504307251184413057077801568659166251590247294993255319807935940145070123862109528913635662678604003071943040164073209095557878106212024268214446644151792428634029215851031076772232673589495851057799690169436251799976185726230034377805150193995308513567465993773022621374952585657329991279327807325443510527073119136425956237111443350402716656402075629811708008837780376744682825256478024585114595183448801344705345944105981141435073430322804110021102070088909895324529513175126017721025894276963916351210097116107657114580950312435601778691029914645976732059395471189275153254617631789141285352543535901936795668741238673921768364256823614440456711096577621650091940954206332820243625310819775763930923725887618036134411401966297685703416618893419956765505803388318826784073902402511949722041768808894339943403365516105241050030787881244775224977074941446432092088695490924732830632525323517357047575122022255444394712873785311508552547977738223309609991721994081825901244140237429653036894470106534607260736640577101141325215764074863114267978721704785489032106561952438196545036747999768653357459062212578921753245032585031467747234047269801119654988555409841382967492721241644061593757181482425775052938803491029220447776997193890946016120706492532436011415355966910775284296353820376493063638256118953328139503026406925425437688169137589534547002534395007959964123423529784735947414801398005351985427673831480844862991429920772118918912510027130492140935537293270050787821148304209248447482547203500034820862138393078195464520649995400297851664595996797319979711422121133485169929669560577881746229933308832699021523646380974793337385146973151780475746728307618557565478596044644769277291293382743951156713203263636180428592837643450939916782116949159845898276545372546564391623633129204992998529591069764910341358968612538162977471217025630124483306863082284788026555770071120382912907484276308619289303870694356215731190942354927822875535832098464817643521399545140139202188006785852768853932419835513289564312606690434227420687809408912574754042957976797450756525065316882892075191906514893804016390034958297648449750714715650041814384823021469397593285258663889173081957416654984006367974335057364274687261482847790237477195753761960227912156493958373789306698320154658747429134398482136084689310182123067382022363951256593597270499086914901834806067221523648667596991596384261343744683564922162596916457364233034831266340050116620220885860732783497360832588978983304834017053349546129091939624232642947074988069023664871416759711967004166483188394881670141255238532539823606758118823165709893450501002778262031600222280778155503638279270010352441222430467747368570403003477679895099873692444726283470376463605939770565392193224219410547398548614574533302979936264928611242957651906483956229741822327135295637879331966337987678733485743393955636646108223921183778055752340155640773123521798560123340783734054122344817825181888427242331545451403127221223305638900172784683368595029149795007986709153966437519872985960187707862596215429940342241769739901331431067658372773328044735714091652115194957249733454683789720246533698664052627603799861077075879400600260052841372339809699346076707944779560549169225108785776623441401123510423038769084478928202694082480523612791182284021193432903996794300250144592251792360059880469866672436155570065069017868923365581836660276244695842089215055631251093790375246460886173166977459282597649403070603385274496461844420678025231724401193497701024641204195172490451796770529743094286330053543025844670675291552317087020491627803675404886133344988764781260801939845515651559468640866564319489231735161859233273764480992162043270254230189503462968454311558581019415377277790340030688630376249831259605782745528262899789201417611005997158376670848219853547833850834835152737846313753807804473239976290498829501334117793967281645585213914652439341445758302806300175918210452146531041792469557989706224621272431944626521851447362316914337663222165585594651384571284606376677728493456525148681998442508412789443485075161983337581983311727212954424465377896912806884944600580046971022248415778129906311986958038084482203086007620264279990521395946963530434389802565232047983629826641772272848528928180911941210450726002552896348025601113381268832606973462386548986749207622746792721861490688865118934587132456063372101315054347084272129489803674002028982417209261518329196981715814863497989076174566644919680405657092133492058248383654871825755004871929090458803278349267564840036033958592893993960149078513197137112886791257734462698772732195324021195129120082203675938219766065252725908119311488625468039903859698486154641219381058281939910872308465107475293810276215810147183704374891342250685314161993235625143024644169186864349281702832025963091612875460408418513027864409465714211125277195467243904351963147062235093057574602932581742490799196097256325868555005022786924630018105333783920212837140941556492850828789720770524423691934872277225316570403187668227978252255507916796591433646529494209454540594692687742504127436780040348703735021258662759605164532416520928992591714383209894873868892046811529925384707417259753156424059435964649795239716683139597688571827899110687614401787726815202316602848861876615031932190150044626583369547425293026156506008702027831699761201414320306203459542758633505938341123237680456266427657726643906136696759068303787772540086100865200323553258071650866426955140624380606801241448650716949657930055261359119023392479442239831032169738560408936661431511035283704159508091673256457661741907657503844251850293909437725261701793695480625691116186235784146164929931588557204154925598150564427281898606915992812531964245291357639072985063211325589921691980366739948532446454772063242073866980960303366144307193369018288681823894079838956867525626572965896671985179336176623318471661672695863426835910052261621831053930722728665203938874392814279597632844082871798889962177806170533139204309980703749572569801157936089926851766817938220605344890992106259855805550380828851826781383071216229486055957764233726971671493478478102902647831247776400225096152005564577179366150686148843992923624321400478718010162308285397241171742178882525709378266563169130452704229902666760160342619605046891460536692648995551912342685444473981670722568177320950535461117305074720421059485341774291400660437641599297573234676852000070977684714394932531604663500497353287303398043848873941361167309616336250563111125332884001710016142685975578182862023070643119562543083301577248807497436275937792767343748715061273864793979985868968249963727060559126869010414024606857404273085926605663337289025260949920223347653890397447752012294350495468219322926238575057254349284438601912345915568402217553654036744358999819385222481901844319958087456789765758010149749300388785472766531840821536029726820629217116216547280964463972520884737255604679115332874458371078906613556499864716015221858083116154171965848752417411672430091199761616472559846319983237381909712475656433435597841201827586603785041287874493911275365274669007685468442722884925015160012366611497260648017600840233319454242873846633785022284147194387651577635709268558997189026269101795625964948972837022661677565720254647531472313053352124712795049998245739557739428196532286934798711307546524026693009589571523884036932104401772395300640552441199381383542349590179625757688035215740795161587152737246963389059044965281659687411420865896327043909571834868477111554451364452790735574096157970686819978753617844146585261766050681915573587788942576086307896173889302354145724398011468523363682220887813788572704849727544259016706224585051449402001098161710445211496142189490097626633345928471811896397096981065228697053917724891639859111402423075907879432634972778329104925435288239366291475965561698587790838034381663821831470586011027714225071847311255249231869953275750246222177062684335858983679622345912151288029147356629842863224267179974485110813676822801465777983216878669158089029867640286250223052434852543006290023928738832358155838482341580678359692292037990701762913629302927032049168143009727725833975633505594480303804295152472642595274956424126027445905481670163489282513130701145358755807724339305514745233568332093976271396469883010543358011489010903421493304491383755471012250084372428028809883135664315956903860638330169699840155741804740396610505338487417475953603221357522367259076628094515605136851333477143997789263967626708697220379407393438677859507533183465512647917689030433414181159875086995530675403469125578166298880166120546465185600227460544400731712307111330585925535992212675661180398882667523970297082174987703518042494204703306826293359584553211493311348400869723234972944319742583341091692502720232537964121043277136332149927394141287834501265307006254013050615306394426129236245149304141872622197242755454172807884837747259236754958064486566213952914329592594056369596261790567525807907248483126976235209422413145793139238098513562247500076189823719195967061233507032284862565676619739053859942338773308011356675645346820813829846878058693248402067952100941650283690162290173128257027644973657139099377999163479499674600722258023039956871770257557062553266772951216838503222845722756861463325503918519262015007474430213042704264578852618750329680792480169890079916810553037268755522688975578101850182559795329780308062248227500295170558852337268229810060694828268820609175024982501732665146407402072464088779376264598754514331185758351887256014468920037900146867311375581155453436114899801170054313727611268465820979699093396599863385996825082980101673543039812759462166343192821872837084698042893596190629823380829942401104666853935519230130095939203069929129917699149424823865211486355096092616941986586503158185827143365842608547007448727682231928659700248580075532814665568636072238369206680416505050586258504831103918528256809883973882271808336064962671535007456739496836355903547383330561851748482519111453442400115420795264202675539638855087840269447325745943947210185954052089447909843138515658959175986270487707741437748194501583187297991475447365756953546124213074386878583553894897036178229072582618132938546826042639890779132733442224948804642802875676295590861075535632715727532531181359194859653070477548203168362226140633386123877589292135549272936850931283866321417006188068266167402514157021338385720778648623772180213673825757827157578139411712585820168292055047095987520881717335050178183464607217494759340454197978353475518113052766919975139617362824861277965481840861148663068981286678549083650216201750724848619130848692709843029183363051435389963718219179647688269220234882180457838325106296898702599097262651220235085261106149471457553906363304709282872329306600820635733860718539492674637689688669759073772894146088314819018977368108256462675057862633590015067589901160251074067600088402233132163905565802140831061660188644587841264894425326505671659311122906134221563371274545253900765322833825794459709056062653708143549287913682432763630018503699698842525160224073348927174187474224127963575961941101727554490887838532450171474224665082997719886573767349631938832321977533935437485781797758706412075963410590517495869498991454069782348921227787323626851577029964608912259799133295141380386867706127002539302652596759815995091580039935698483196374399675342263576278547901034944879662077295802976659562363812916408980034483300798327668224749650664437864491551088900692122997402393974907354155906296063082435678755657501935033846219780391230720662524089506101301947838781827223207871340865649548721234507719319874787737396056037524059310809243677396439602376486681028794969424245319730299019144644165745668319421640195082405954353680974195859149385939843104090686993019413423507381161473689395250260413258311439972342708262365377868836766982563487632780408851511932727539552015594449776492599583217942974321427782164644341516306678617671077610039861998747557035776904596039283131926734709695615063783840273436657182351705460528983619167609173382853145542726903920916002012135539064926938405354966074907228678203493155717553108894155390939692385724737980713921227383223510614847777432458596420300870699618294770435533420181789434466128308277223706607744248284345198020117613011421445793621735517884129459357030615513121427080551744893080721587725367168283629234906361242254668227632143880117421384576114943358624800668229781808075325867516584764765307356176758099504766051744427101304890127658753426756728434391979564639250945198784875386574972305081947051932186770853281581921072612951408199620537125056368166762432612770038680160508126547712127454677810428726952647020770305562011136609437421968676847868238907478186447036732800299329977483744752889397110741034510176457047400695667561060798825509595505374263848777074098170301828902332364901826390017170675372992357818000944707558093801086005904043188587013211374204918248402583309685129172015278878427379315214330883334863010402025995945957011879167898149088101862238910142147309607251239908754554276979074284498430443364901345195252435528072385934335708207758558497728474500632270944013753667052873139476637582732065639392374385965221872003750668779085879537406152279518894790167868546422143085521124805814773280512301224207097864274771791706782993848300015245236211323032849826938695195931695875271445151912841853815477661817993869972861711293985589026833960141965667094369728719475857190198746068715768915626651150691132281770618359013701777992195678127334640584897697587906036921027463905072127576800229830591761168824806669758329209207794203347263696077607479291204623555520395058139428969576439295835036649072002310440946231922210740368371049094361106870622203662734746796146112482650591028242099045494939967657393203552085892319746662873355725596327770215414974241710230760430545977944938945457056022311781345200314500284453320095439030610593660756147750103372148412763346469350808977205035999374537863743635352549829870335357214264014358222610986033937342870224272144288281785121021013072457310319865596278059439159079179960472740100344329693445871347816719395135337048134292658853942482964703628191170894672833219981099677551259815405162643514348943877204876482518622584506039597434113579380646244214628416593855205797587408467863535057951024365251634865876530111463312284680205555939992471766800795924241765025432382163669451471325199433617747755641077164299366562975037054438923742589817269905078896513556472604468930558274004515086091258020597036037566200839962703925361648583075665896070392044996932245415629099026432518268678867232524693181474447997297930959122352637758379998434085831597688480200808147902118832872925215910271289589721796938080084395913183465444096420091385366603560584574313100191413005288639459400458812036386569276309075467513494721166023889400585322033472574697357917752255322022417273947927272449579735506112553845297261309989462708294176122361635900018175977232211857081991499987181841032620353396834074964534316883139929506011984036902236718619383554317183870758339496744623383884876655804980549046727187911836163110334089798358539887987280708468179147921580368015024710458211831538794038915855740678263108410683171012697794655779517488393692452101467810689886684349228381817593324813936997384038040217139045989095911005160300044356159017999091044312393995932401081205881170640999017656214758738075645333008158106707688585565800586323828011575650470292274334556015461921874404984876711367917441917631936953680941959446450601330856381723849840708196025705880244894922473406731006148515688620186768151942619672959877981730074540987232917497154496156545852502206930467293067938655187221788066265674460516475657105186065848776895369921780284971373485501043061618757612343283322990477535586779560516606817592834985645268651109112331830996037795239964719363309320009710143181366178263802454913350221762848216293250011693706653137627874138428673928415501056487773003638990047035108515293420268330301541959653490626067614387902728374013543589997372523218552921599498872301469708027242933976572536736982346223433142816873789691598720700149519519140946600054063070001424411979229035878144900365148201987999651379454908889797216186267316657113622525682571738624039263569339987995779786870725848004241468829280196547416350623938281324025401555471093994326430846037894269825825911682082740628990965222298885980080377688264637001191455860662571434855853768207663358594150282537454179944789226252800804420387614883686173918348124553554944809290503633288342676540946012239011680573977262523637959406865297511975329928668656506758228372851958307212845233455350361307925140044248552588870062063505241921105210394786281576670635171836136692402426752419906405063403594555156431709795473281141242596746313329254740791257440891857674438690309800492256353245204705411532437901967600919546548128444433420588637347757441805553474291778283510650038505003385781173585958616570530904291243232196307035092454526988107341102989912101042076977890216882105470409026237184544950157015877082323703097833356218378558226911044848345309770425633215522080125056582013894962547111576082185540363517711575655111244521636534860396327135677611827748562344946270495873608958230286291207619931067622025480407004398490618698072244097613104554966052825332370285456982074814986872967142466924556027109748970121614201403182865445189415103680520483684018088247689991409694893926542903580071858993744625516583478728174698443621445494595443894966168797619448263433503773282002025370414889451141351238411041400489021251892764099959755298828043369294945712949695905863262748986362008084881800535848185597372762376909443766277512048562962488406134466350695987305204557330014363719243710621590954661410441234098157547017131924713744661900668139039322060752799950736813480158470413825626627336445063574094776715829511089039309010125318912420554499484222052050903243360257230674158937931149458250283499444235534016387581211789578836722260638434908238438383711583624613584803498621232604803921146500288780098201142535125722185706475945483306006801370468747771608386234993546549663387369710401397498879134133594310430847757470455686905424743169150318366931687102456710207645399263683473701106405761135828620570820811691379395646259755455092603379016218983570709964706904164520612980794941867752860924613783196180661247969540512920629753551458273963132121026150527569463204579686730141413004845695297678047861919412923677443134813448689761165209609654241049748804438828597395045185002392125814659001063968633040799113004884730953910813975886480493925158031156167656733964235264867209012489243786261997516898705862756124736060238227161860668572005362881581459156883097049509614928579145950569075391549247440100889910658120324791332188276566683269287684629529161415319344081592941569053933101340324081877015499594143700808733600949046098112980273030575484058799364380393947683825921720650018622667549374246331196061606918174922606571072698296782220770427026448840147082808593481320530485345738411831575806722333868287780072256366083683683647578179128649945335834847683037063294083909261011427073256228428422866419004969976769700507137261916753690304565919277677986989036775197281715289970751006801863604742566120438707717043881942918340187130609907684260920912502624981353372799253960804668722954792283720708659530549260963872998857997183017604120961627977497068999665439900792594591919459171161836236523740192519593322676119544046234198639214957466931194888734049970140009540966602194642460436753726618560233691070414683773231464783762891703932929582157623931827307628076220528236679927864821847880071348878460591814659296025315590773059357176144556167951906553673327466665827196995322891950870005123889463062747362428528153665762410715936027676083888527824293399721108288237494474271498871394448477563431710910466349507359965210558190174368020022662436184369454668743557555783343929102191528287656408798666826779973261931276746128039894854447455430656697645037479415420294901804860315197626865397091414270789663166524081675313539959064597846193741586009398473224037986771859888728593353120828144052626049436763336682266208543152328168424004085748731750109044618586742626397511373791136324220749681238285919736443839589522166291639143016121428114134965231131083737719822874437699787286683566497178684161842001001833686867787786531937424626146233547277792316173275065798897742020527391682658621054198062275414827696718950564661281248516578885172363599906708896519225896759496909237896216460209717671392634345969804130962324580229616637421846703186589133349827646989214799299166506457618166044770407531651708017305396009809200488813527693036309560020127996425620851511007326512823963072256715200946970842988085946422336429564651228338937328002115545921834138606150747742013788466128245116986044641979158095237452423073100503822171689424935632974846403613109244228192465038707738945638148159120021227428162809588239603470457563654629599015182982022670350568864311361172856550861840988990883685222967330928355395210753625114692516590760364734242574060517464774120552692144395297679527234340727620638664041710055427912329114151737097633884628950590696818430865165809989070866480137219829707784723651601465756314914568540680529237185380924553101637903611487139306477552431886000404726771398544024163436721260272410138590125689202803231782928067935087849463194530774457101999050588803246137723851242271994649755168152863461664650815610721993806987642935977904042017392087346633702374420076117763822614467203441681212365813424158736468352840267291183416720042047767419041476766097211199140441831892956417524133156356016040879449169776823686006606850064905103882804879199825453438818628531768536058551031798966995935721632556518427713142066602695553356776659295728591468407573223983383232397216495622442772663764642975543690864836994050606970237277354297933386045473259986388450922355528003716887821707916696792712006644107010607684343145035373828201993403177040704409119313277589417068350321208770833653560826063447000778207923211548902975391891716849588608073267468910922011545586925885202591553307544087884978584035665105695658399143408755869143805155558771278803360879471440822451843541106569655647420413897135540973740661127834328126698075386499677412792204563837349846696020705321526069772099980465537818008958717486630986305538321226470517398703299697079456925340860792820447309646685222299261897295269201797813340978990326449468226587215933257508087893692517789390505224279689329400586398306178760354765596632668391654417686159885441604687298141932352967598997800458883815013390609099854015571472579773745247587421031032372828559694465579392722089270860844514180626519893320010742311597620550344997723589359088725043316158549686322524825711308373634068585499004533536922663178239945593764509856313845744805971253533935793544020427061179148582694366435745384391725156996020378876477778404355451418742436126088356077364851927620470768393370199619805201838986096648248471111374974380037102200210668363159291404048162625179161582939411230315418673906990890797310309770372819326329376254337521821297376875560858991125498050051622702278431439935791413133555258988492624196001635470037040281276257305104998736308493917289630458059022031911162703879374727594852430580771061007540326362819219237230038084332008232369010999124238410579199402521652650012477936310176915680282614183542697417149365147633896536580638083029420844706204045611460769013357181946641572783227590705948536992352495250871574208304874748743623151922412396494105127681275816172854305327972575591176960233762898038565545978412054153742922875757997959832462697584394996226781343415238887719900730960737504292230251460448442703155623995228882204644756207413778095253296642033273389839642215606378336436940414095868788402501825069228043271838274791641600367607965251379992017616226879252773882870823629648947971528353056020524848318552226267791210300365857014411438026676985026242309108188938408539570849819391660801674544278193988379211636270661540533678650306572631700118763005857846842371647716180638994479548286421889266763893293212873039395005287698539422322160172627167570088310364876439102728681489403963559247610564050609144109984750364254715597080823731111385440978835762144807367751936906066798260216810861768227412354358213513451539926932164138244677954356848850513486763907946322327765506836597832486267029241405646029293439921983396230561818310949496279469375648992376456016801948246510198750322124711383621613549497557254552098115982233697501007619387752305521238252201495452404867101943055552926447170433317604089539873033974985137406408323695357006221484351906614617925880609925384934524783613581389075803086593257999841477174800039686866735281170854951836022208198541519512678973322312636189969200996621017768840548694689662844917458687192113185203201695734651316713280029791961833003598884122788142637640389552212862076758842220055069356828025750233922226373180620407018321552919104081242398885976094876960686481057071532365156995443716730716688252053830126666239240795079279131573897361240813934668203845667050955170112200921414431598795660941707479271374138084313357483426748357962428643931362617163365416963411931900485580245583995414570592520948674276060864198517248801363968957622338838381007995752402834200024942709976699803481004638189268068019006188487329214302355250243533872679233472069324165312638272479166580418543524902434061228864422706368804609741420907008751453996935794201905579888067818446766731670125186009622287745491143183192788101927282369158026299350243098131992157904792402294529622428729405412900615542556251486874148521838615945851364081306952163462633838166950288042865627148230767810669283470008619289110380969861183843154422071104655925007956268305193344376422159006807716958065858247310694748937072011499734804355860825174586934987041900266128836539534524724627563356784350482778564247876649612545037087567633480812523460745797631384358353152720757167587606193059799504184406011145462048490262439901541976009226201793574559060433576751616321782895454256760916069516645467104842875588838836328419296359430282920586651618524572163157607674220258927982339933624946883498998580171026709363661728268153249651038567913739647403477893517873170422964434978731403925980273181998364404935995931110192889394604269149330559466432338324224996132976655883248975314418534246764341921188716793555958795790571772055755062608796712695102527064612563154735020626819683535443452262469937532119272380951980122920452933501895231435879763714902684501305068869819754482547800441175606179223702613234393804166881702314097804618369775807932908588256182347755683602494658448543501549029772175890935751808367047534882545164974164367634005315504793175371823801643825272372039138736717690261401911416691128655931644717165115305635817019187693912189336437449091926533555986924533413863101932597291791241323952507849647033454733036645048310974202890199508957463381713320829420653961665673390314150233566848861210787830029369842161894266526523741471420438185190661693504583082248966960484432087508636561703514548825897003770517990485167910179796602468549944500540447809262959318402813445425648288379866854266970155016366864110974458469116730781080458067850620043205996547349545584588249598593680056693399347672513424205459088914510074471746435654130718955564660904830038616440022709853641745346981961309870407521235431968720361707470253576481270827987674808984950174113022538331362454364029599165504433006354461259820428098238838748552754258087549797203807560821918209666443988805298283605542400063421129893699146774100842132487468095368810091281472381244315419814271264648916448703824484722779700106447545773998898206203885416004137237318964987425611368228154848497819305558926084277010106826054432767138712043426151838884511814506150565576150875490985446195224938803529216876495382137013766766064773911102057880091975363025658411146265758761505196148383955163331621053582405862295798012909291606152925327349473930243856667997973841903687560825242573470269590110295066647265927420145677096241440894932807762637887904817185957149076000984235287071427099951857231587086432765524596286965865783777313019198017595763014612075919916731862273534347852538850086603996986555371338397312492210892056127079025292052928587982219297680340783449097031267441021847770836513468872513299578437566817640278093032841387670657402359878493061463278199867898935492401262476892036985059271916448960809930670214842832008112873623773442996000336331874867113109808689185626637688538903360312199625041307821839143325872603030425678485589686390358568066079108342425696316110124146916201101286175375619300357360983574952398887504133557895316233668005320709953332713021003085142071906939205846204584899173533804412063245330325961195524622046638219886375465852505448928492258540849770082877140204297873862546737193910840925453329053594606358233209126982157450732044630858994484732450791463961564270923657824441752286309547317484428878258928393750144942397408699983584038137367617283362754987251150660334423588665865346645309072559108886801191878938239825784046087641148515110558023265696035949859839528932490937211073655374233826503489576620589789525005716776535195899771692811901181745882059087913895173435475928159365451543404170031580673735051697604659665651140211736527853373550280592861275955989205931684372018801052795188260178975356097256749404263545144349097014148198011766822990969787754000721357030329880711457369763715601461743593435965260011483369976784037333667233447542150587004620401835050964857065559238156342884531570039789681760871988426447257608720164111226778274758306263656050274928837404607207981121781259721191437810909530314359409564350182155534227410167933539210654033271638331284632578668295235444576314072487072722148428797913546968313471159089686744495674620956794855324166931762341556615135368693629530677406615606781149134396195245157126236339888275725278113693771289393699441341157310705432947607576662708428796690947677257225679084150668767102563366200350730191240338995729512189347442329714781668290750071907226997325305126164057194171017982126284610940322554983719930218984571639514718952301651303355411856825997748691848542349201723384213294744480056551212686838694900534727541321319238503406524570782747685313819723774205978050935995199548299892498235354913011123630058023192098982600203215149604181605334456472935071397243718289089546449323494918405286153482981123564421618278254204129153328246827714835881212797054781363886386291310856108408120818272103767010939004084425733196031370462542196403641455171428803653798802525547380869002175171533129279266328960407727946025364910586914420084167078905440349286556847045254860005512782494340704861469753100010740675262617383533703611431268602038268730560756558684186062809506135964256211280304912746239248028853391002411874035726814180732973654552730328323368534377258635106024856003456120570199056019206483031265469691741570546200292742508665070653525849687784223730255526799082527437578891227339434178512640520792361309821248278007789794397152027903920020055634414004594523365673093954786454625273546693785802935165149100973483022355864535181886926388242896916296594463166568958632698735740875562186604163776038712050907469198536098180536629488037067964442406326332209844041250162455645369487828475959696084636513282426739403177533217070871438908852362253057479510262885861056058275999585597873139423887917735448630930256272522672176319634180767315657176075044280796273741306060400043893653041077952646505964352323875154079647502681834383282237750046520063667774780861389065636793255165082682693798577451218515541962260354798472162790326269965622604033395397343215756155704223955380047959243412382830290858617146426068686458281723594990857154257774136501935802723280889102884246428672119808040970785614573579236250876352501431695014087086535867658073259189016338786013232807161871965519627122298976668653080753117533967617323954983890869686760209135884996067324724344547668944552947142475669777078473438264403760697106561267755425035662437354168472054766435957204355700590084271132960900584384385144330585810529367897088108676504677401900290756340412383411467836198006758529655320398537651722779097236210168371727086467475260211489308262859201600315107499296168221553288231666978684183942842515603948752280907441531935593944385324832347620960414963429359270112669483328594858362107527852675296569760693883492213034520215425035873212382673479096306055475728721448552322261509660844109169322220105587586208074014229085568560453021847143888677249211376920616529713736584379213315449052917532654792868163331910103075031536441709736507446422649716376161569099119356798305951780586274667342208681579173901962552720488919087497264924429408502658082528933599256196007564245513280598321749188657713001595991173728691334273117741973856999179388201360779941194607810290490558322237603263062534153369195841725581931988550086800930828782821216085793363471979138163420161581621528186551712923231525573392190127066069163986111278481402541679744454120421340079623019007725270859699602222130429167041133230095527459705231864257047170943936153772025366744199869952210890846336259773382525706890707165358439978819894521705954559296678853057659455919337216580183279969697417226874880741833870925312442701787979608060550516822363369849078339730600694280217094716518393223624273983318394951912485571473672413721083697003553534655855611444849974390519915922875150352263044947747316273097295978435745023736190151289431091976385097559583431403800735591955890498952560052685506547484098715569342261381259850452193304336487710291327058244347830989800097707276946276884859875451418205802502428206618240772675583079588601515407621965655674468623225720917700485777929072790935620043995640385406415022275445111613587431923926336299416795558674855606054878768398341737210247030275810139923896925204608144961000149499520924492082984732360995205530121891982111289153836067076727430757686158570087211975273451584088467137026599003615581500633837826787581647731796066336971119286908423646201680312427555759763819902420057121679347547308666644592905174147211496963001506702441605354267608075529395692928569054571014619665440608218815389258341097054200598344749415673024132258266608096818533870660923200962483321489949835218496203949121511549229606195968620881878145847270861912259107050466928151887694212546633723974192860377039301318639476431213549704514146069567626525795299766845758595047728728057844360789864304149309479906584641722461196337048548953902579650116205740136877919872667405989492473889839044031328558569503802175384360758175886936694079544472445398624423968058216726263883215923827612357077234218683657006652593222474639461057810259530149865684174098202087180229650395593520149556391910615549030903248178931184527139862220366353327115502949736876873177307057825023055341546831533523295887818755848253524431679219550299528008110559845578135720965209095776769379217633933686218192709411418338532741170246683927734238006690957232023006976361700459799613227600598976899855981095003548778654921470157004164566538676616184033471128935134680092729035135311452048279361168177416836078286636961201645774387987283930410858656196156680679993677697078489143544766946990091479769080426513801338400056507027127111754437921602335042267377349382459858943649889124464794854988489860636028582070744043975356329892945425314694688463504948733869846347809919193603637982241177961759438453638038285748726792910191759918804867544472289862675919600674635684282194627207538480908563971336973391488634380041931499087970597966415947286995699121197272610955183091912027358164998797950691879363271103632666694627697331805357595267272181160031749921757654437318204491946521449672329347654623128732854926519406108448833042341978914894742908038818657601866372796411072634612798953610905306726019088198285539513735180689252363848174947821614053250336799574865759022998375610801779439150719616765165989910655619940485030667978785998403808902815709132115503916328718185020646442839668768999068224505176351590106549803211893453317720743070717144509278874278210594411065101951077820654225926362518683538815328292000516255062163052532713889921668258952332258262460482503065515535085842240266865909043085918917678752490742685876454550956472821357826347965610569998947958465084051816037183283782595711450239651951070783266119795045000308634196336619710481048347054602722425066190580543724120785927466825482888237983464610183127570462925716788353875088597283653044134752219654033716588896555900224444747135753112787928909159720643521330088217082510881868501263440935117574991866376956276726540613205265660441428139579816233950855857740157002540643697043600859325986986162072683667686212944632034864673121336977305445236813574999901260511744577919349189091606877218942585545532158534291990434239989606755005214273496226522599168652279815330303502996997246770923408917008546827602166873871577356534728768287203369836605570135481072715897375141810803784577443192272835198492737021509920827350552749396850646293127814917357507144119908252869399789872617583905975286948893328253804027019445145285916481778698730215844152249855681003885753096751712629397335831724213298401147150509941209655673975673627211246015896857632562951781564351153340109754989499842744716685675334833886305653922982257858050377541822829151511531474121212467715313188109346545271339589512130524850590109443708341156591807999608192203907219985955642555413403157176936449458776956608098250173069957549357901041431194753177560168814026039862550500139658797862572786972237412351226306367216249656744789611328258219923417242602031389120122540787133671774511267323980201992291931889383997542511459178322639849060470668835662577055210558646182399741481600572227737540254787765574195606574563450881696984965407383588950182747482744885989253206752161224533742253457002938876983441564318147355210940570927705346853858031378850828281973092953554115460018757406601995250226161155334614244202511426969161474596734232141662259156809147171535349801704422427978345048091646239861356377204904697308532400904182249184347652487667837361000003914832936100871876696725414912306950340400557472931917303859870571470862516939884281809765995660588778636121738543497117918010750912117927494152417213552407839311570539277585987626037148326064233657466957311369418206525385047281353858112203437540087818819385370810950888640086087332157641958457149632340065998211332075823257990377979680960483310296864757276900739824163967696557852002924049906461739032715306205797381982032250259005262533659316711665706850494800236330454310767017037312602240513172346087845030061438332206324120302334756044947203916269168301219636037026705772358250606333954357024174090431088231023428785500140189859886040046875130780657276828000017309987518080669274906357489274521504801049302659265422446301921206066172090723143470274377274472059084097255007902093878823947713740001629625213872484145545860232567835871128253542152293337571122784301015915939882001138794191553559077179315109210767430326761110632912422401833990983241659651683173337348065396948348226025920771423079922843669498492834866590687155945420716250770062691491307273830968906577871447811850492297581342956841327053784052093273078878380178170852235078288676180136892655691524538357543467889029537458470324529758321310223949959904999941944155368072738264569048502959130573451153406102227470881786283620715854571570801271130962724468009020240865779222387810752029534301067360023122893599184413656729068421370658207626673771644673278096184739098823416162975045586083674670469195345499186782948219614130853042446707386714700666520436601104551405681787073573365447096248882962423735354435024558178823849294407361151673128729701278609802404002159464190439881626982439593863457214215853551518884460773789142710389654726116563729506227960928370195129121511027566455851891590776129393195151691354668647465632246360017359878369667495820004881535097953341194059159850950137951723482834982780407789429813473934070392511183858687300141769093698200632095294438688072834688611097552816226843810666736349811225701156581583440741521637353733903561908145326001626100918801217830795751159988454024241766271064513507094827727989124931983531898044760916453236650613273295140428791992215623078633074287697339650263117552330620874698423633776284424612549080953189635709129795624623092286105877449416499745555327143812374439156550906679903426934247328167421444618587226056889686882553886409804067400305475347318593505688462033810511504728708356435046931481032212670381356471213540535228550959977389363023806602338849285667685478086616001638605315423003934057993420085118242227178550397778694436890950841597730799115087487717760691911437837006417965079480272358594286036391772643368399728552233083819952618207024019845180878000415465082573532700520197905894049085454954147207773815075305444467787914433916175045535537415985912262364034359956874446092811773867480683329129171642957877334540803451355954671362950374515822018070422955399573601531260779529940351563018649242415015710047045409754008284473379033107202955031105385362417024434902814572277768953310519885785776948700746515552768892997714622200360272895863177236363278192528803813343408095382827032112830628601541730536151516171158644228649176988868913928662860166124327128821475783872267320077205888451520518362854430530165794583930640000304837664628057268404429106561862534779165541892737151665436515551931560999439226571772621751125174665170150891559398306819900684156045176516303385316997837530466872815105995405582549102460030843205549388792659042067245465521038266827141232366514386438585338137156245509796098120457299239613687097589019124940032057533225788052495711802395614730413787148446537258712847330690020866337044643081002272299411907402574428247415417869013171751008628288236332266049635904499806774431259494346207394959601601372068600047537357484148733759036486990607717606653960697258802631747031811231417001911547916481394963518432301891871171822216795266761905615859661499109345077114665125087446715409513587691058478992803999937354337461994249401875671140445317604370660971551236782568808198141688461743721828779147584350358397682478701234378298264227699417098669455386131440055975977800429723171935750832845525994508428428905983632058408195283687217604520127737711446857781982906478896949684973244801202398474822816148437237618762144305671776477762018908721181865642090700521179911323026439007151200682437124217227613204061711221366983821204025737867972731575562085142016746867560357127515072418872958911917355084835830670980162165813610184868806269661292623812465652994819725507463660371951244331602910591942718268121547616543845089259087797587010284745374248926249158425549386317128247225019979110151976282522036396199028292340551694354326387755161503327906819414770401646737052840243352175386116187832527246513027781738105275631827716515268866233743272360807553468657052357879802376640464709701665519678776023506166055353306324324109648044073038323936528496363755588946519620786443669353112346889823424476963475085914202386152184476360612271039921653894962655367786911895093927240305619865721670243369846804277013005613188330248631519877092751557517781704893487479945581999999007442448275626524031590613614357744094556293048868379188894894377383187762041261587321349998644132349131609375003504342905173863586804900772671297891368038357746574970812462207094143711702752431226879135502276941897521100648231796789681541405688391022222403585336095225370197145513014507336284867595620431277222565727350508877797608312981723226924778018462601830227622412818477892373640707048138435153727283855879632885201418918148094533773378162492149401523274316380701637197620346736897604933267192120739636644724881281368474818581327707599502401709901674919240424350870249481563215623833383217303927559166128902979548739694723157142860144010469384626473534837512131125335749165727800465230229722578976890297798135517113115451768201885949174235625749601119273660791497729211108400640259038376302709757608012440567865230435487652249528476000860585941203760471375800863019720440090676073270831066554246814511796484628352981106495143094227656267249207376434466573872139894559128297683480969713645378875872254131747170394980151090363509890887930623803806874342934640708179550987986820067033190682589149909314892119225352920799915316252548592050895426694336630914086294867673709056715484411588409430532761330784244539442632850245628763959315157659632122580776159143796734994556958865580185615608196115276957304709512425012968339199983813132719991102170669911696878874558203951373270464448669967774588943750051415830830637773260453845929461187741464437298721387462961570656467721827591708550165755212143549144111153089328401345658953816674713866451916255604560634047724748050432745055522942328347766000030534684456792540888818274380536140052220957605797747041033799819975239243437086085443654222064111695082661612522311893477849085895117207126572720313403071810870666543374394161229415366779865665038543256765204098612239667718945373232599329719263009906355300861281548827493914158955009580530673810647795808394490354132089593113736591557956572173266832144139952908180324569057460932948015759875417826336149310876195625766409031663140780804337554259420103571523758796524205284214276519615521105041646663975559806514072900319728154932095808575982579312915034357668947894909991403677422183278311985995188387367438730488413428487817915733157072463503634171878015737434367228875815785877909236084384767875506782312730501424707568996968755913106273737499576717783444231338489206067173890312312435800256446782037081607005774123724908300902971107980493065186115347385498502935509592316655789137997445573644035648999571043373301491848917706684861956794163113982285636278741215690340198404375536589635861803518156941314038679324818046865701366803718997342684917116967156885660515742921838628143035499051153831001561407585200551160467466683016081269680038302518347367164260414487805865773113686494089998014377263870116193961037229715615957650037088110276881102663896119719595421420376352930203687638673551375459893346543272275561107199360348615318990394035759358078732949126425525918342026833988610718588693747723262086919053584005814476260122227476902415158457330598582337767905671256624492339019746932663157299607918492799270162740536911680188568732850010953066728052217313914101598652756651225351457448560225363482462120634159328905943916657352038506134189886999736285677182368952433808490975599025281094635880828625643700379939726749459442206724680797751276343276787781973415568124988335790026687073667378907036467763701729299730449030309216951491577794164747676311191994166818105316983738117316836288560344564096989975666298639354775944886336104708275962676540195599992335269385711860107630088484222075322491351445503217364604524007901107632324394637969980450789236540154164712210815029137983025181305370367907618936257592262954590822413748522850689858895942091726565258914102074267907424919258794179727877909652984551421771094839121684038290490255980425761842656882725224320267954540241389936306197520480481208214311599824398201407860173283340382304454066066016128255230913813633870314477933588003429236612775563905599571399938371688904951860320637993617546856108301409066819330317031660059138807027450427501001153041198457085103866084151800209631016127391516044241530498095382199700478238370406916783517045578021107746145623740655478880645570640883296250712845523537137622216691390187390307049868804591619228618484776040723426428522697429278979472522309381917610800373842355050315574672649423932266681359971429330260372492713748989686810161590590593404983402660015251314791522039084629302619161931722435063892013615319352702568945091210898146962352034724827915394022615948291919051719862701142922920021089681709792852116411525543922130934840344282122012599811464115153942360225448276242967049987507487524874417921107668487018237933480588074622903590857056744024721611435825354303913819345438847084390104559150516481463266936170486121433038778702978427162813966117896579340696596749530472298298361349610356841372772623803622488336691276047152080505370999071280759406223038145317055165879583827821245657425446888680068389263631038152467520500429084593128689775229857318676508122155075121207212342033216200496327904796267748496776231661634717247210138518816355453526150275772542448473721034475475717039094772240415440276899065555403547231292042283047383640812695102291243336924263066168861206845453089394458681072208581735854750787962586826402991460091865009045233073512341885445819984607285473428542761498956112823120489745480967882282872406478019200464503440995353951099806983358412643492889593708423412330427025495778385674166828052923879259771226315274037605072261611546950788594239834158206091559506623674976250042659491462116176039963366354485073734378137613537771656838556752884575606552998239499028488127553313826101987239471975234775921706585716692384325227467277941247427303978954633150793445672549875677058837707697770658188160072976253574620281022403199488396595380939015827262145535508596799762093739958289774035490778648548500514336888097100168168238949332188276861814167981004857044863945231708780182834965999980606436571525990107596128339633194233041103116602818738689068071775055226695590881339421820930081587304539579761101547642347711888062203121125574800566616423072045702160353405916925260020833702315896786466574031031360627286774300906804231670332721977432062380694355617899306872928000550594466032877759585614670345059804639786497065477109999675658935368811931226789238945542838683544968305443965014600875731687884858449643751538872196695478983638440580851893466217584160140653090948977935413705516354582260845432993856749877394301256552036206265923504992727890959865208216424951885810109836669593657533222677694295780713661566593910184157652530708614346390140593518413902253643770564904662111026568408086828584301759677870087026072273013799784801269810462497942572770108269060511367243348050890389201780058147495343621251247688154701742452883455876431325403044220457463003399327603980310397716870349866515474855095486441344963029011521619732412448385231330337789378033724017869182562160449577482556499669381870051757119393593475742335751080108139623754639625407821500790693304643237076134575675578254767128621741518007785631540558860848328556774552143722763059197265276853807213875803452956842003828293550874539928594439182111659869043748999302345888775358179274424166383060043988616245535873173522275941608160536787309985983367171023088861564032433642654262606562564021118961443820222963110987484749564821496050403669616922929918183947467855021625212390936349080313407294925080696315853466671758437179764264936028081588892035921840006771959656077074251774254098592957221062766965970673471688870698034452827373938974332464074275440879767010780670825070043428237050119715307488036653262507785096785160838934055485355511250117726253889402904773795410832392203734104738679629089490007367478983614176909551851746369256933127375491543373001462178362995077880271424165455974952658902546020755111285441692742955280899841770711577180289775086292475826004126727326960564152326018298484188410327658856418633300587849402325303427501588497251970645645210128580350549557198568818108800540816348462693818273639424712218108432256927502859407510467514707520557140693625438543148001294069766813829198452441247443015120042183091784341334839198814571002825677714370147003594262552691950618839921291623726576849420450723844274120853189773280317866457752123406351063814951711231179100829948751274419931753655305730375798103461178541048603071855041177557752982489468786069390993128846898426363652285790501749051094108412839582967142353317243143476913438122105631977579691899451715581152040319716114486300667351830444534001191541700791250667414518517938816541227541009332963071186772835631657571956830860317343165519583721849768944794152095640295353246768764627839768873846100993523202623220646026093218589237229277598902297106925114354125575648759195011030276151923531792437097896312695466041883061895794196736293483584247383744901578051821737399452310643232978240056434253603607194903396150680038578051102510903290843435128858260598622205060383743502918760382928585908733503523007862758459919792763354352959996785259406156482046790619397771047987644157712030975731493226303209834225766077228972240598960437577001370625412330355917580037462390855367757004192942013985348465171904759508126021605462553737477257031614380452310091886346359218140336707813127575223706745341488465011781771303932632909075692655103802195667171806198429173703301620359281300149261571437397421734665912481243341170202010138800395674704960287004076697087132007015727119934539280874056201612348239865131919587709144848054182918395163266096031793708017232421404615583285070362410849788446167802612114568552620626783559223154970914268019313903209111758256089709723078447180944901636669119030801552466996800262302972921621225924576528691547898781176311583278442979431141126260528223608835080517639036393772063873935944262435433892508225881120012840528694224067102164424596943953878332498896632454377670132621445354016048480557208777447521377383302629109774125724268841261761414406667212042563354465228610809006341763612616401603649425647238778365368198549111667182341101780370185403476794245691555153588577810543063473304670011265516390623788969026766720832948991136633482195768545511010865003788577588592299187652899429487599358126874928022313365148464524083693780438148199272147580379064934519304788660805862707729415368638891899726111234828465356807995102001648567994986866149354282998349380453742874567497636871564145474345584713616728090046757482428360364235617853080755214258811948790807720261760250361705042758183075366467039443314404032302639962677565420758783844050353354707973338056827286262420770800113398946545105231249591299412060714259854942230913763438825138076448186376003593055767458972049511449423600785052874811983181469697873596500442891532177734654932992889980313817874751564889452266339867955153549837198288323775622621973791907041090140746607378109688341468248361517703889190061801882388691851109164943818598154021348723870376835265619219226408019375366204722656950176920067780381221758512996055717294119388107003939181642397652127614108311578885078003468650568475230751105348710679042023159155919316163451516606460148577578554199825761354290221358069175473789392632536560632639168193854279527906038512215188647377138548210191858534011464806650774430563575531506212855553022262063855101570589772769575209558265260791283736672855548211505750893044441620406962722750520977776661751592933648971144084924622367910004489867277613412550315762803175957415770008314197313243243922389125716629126151462706522982047653146236054470260935982461055374279105402766407296366659316545332033146385635150759984048734929254990299121394327110483505539048960253682640962543295694094054513750249082674078774003306744107034667229805990588829835995335592505370131953599566939986724121659464430325743979802554021775304230969774774557238943236768608726437509187134113356603404966686293772897458843595548587567550975007231746860535020803401720605801375289016748091784970749572679792159956569943307633786382699045473941678445390681046149421027895113800134259102295041401252223928169692342169605643638867705592933467242248654360720485393055194463136950558238558898707802480204880488417521973991365493829849108099285588812901376497709224292994970851401061992246768212126246329315620123820607545180864991269828937788591737249328907458142671216444496869346481423548492940036617082895938788012264599832538280485773205041738256569162782161579231880647405559503832201529863612558687480079595141493707859527893037187174045166720162409894535466679224598959476303641262813644204473995314757353417793069051934616536972000426173876020159847957465132523866451212847381201518071530677706706819820266675306623340036598698676624645879648939082682833154095530695661589744128310922472312139490053093523799667300721761326458914299669239555423204156153961558796000706215957792193497971816505777007696757415571568584420035373945943146174284639672447037446523601833655153499006926314156100150863615321311647560735009747019634993659497354015418379050674827123668673912147931385072982603304847883199260863299473402680954404808379049707300669996673418932476959714672132866164756351567326428353661600586278537797992249310380298339323859924304677970658913345021517928840405143503143491051379238143662631673803364944338358948765148655264445329188135081107800638430092147322930409941321342388488519222656895917723097661949977391442341466742949273149898339385837092367467353799439184616524959577609154607063948751273260550948164504816818662696745390158314538600146399719083262290873404734113653414664089268758684946927732855478741814683807708890512203742577178102564671976259976733919653087929680392699047981924851804635952081623753747805857516960993078431794198829843543113129837040512879950198519924108578304390160424365113041180204952486665331145338465174586589363947372686158952970935909393907194964609119891464651263023990321241681127559256492979327604847666726595961035435932954288587610313272806213869933718478040586844329705989178656486038104493941348564827472756323251367252876163328381174978951200937417654459156036201883352789236880694024411008561445443889983312736449046804765667397569423643263845616043630946299466263696098860676838652060495399127634842492656301101584750813197077334182856560818045790660772085140059636345783790949938667069137380442495504797405426337303853434383456225821492758165281966587072034351120852069884415946144429966777092309225162068027652489730247361798188561137286904819786931014298010391305502996660347763660235038660548922444068719029483225723457215202443589526600035821930303145619854193231348581716684342906906444995955275637830526459458909383917319300349216964172903312042281882487353067966367342320937245553235771303585626284389062375083080768792659820127847143949915271028358186025405962278640737621088645043383738303418901701297394786922281005664092952995543037348721747375239427655533050581493034591335182820617082519850060771101617511764377404662697227899381093608743313199679118768391034525162240553483395942458476248264216493637819241537231334418321028815525835340121478817694360242178731190366204609903236533108959464551500457785888693291602208661689979108760537988414176849275732889852593234407506626384532335043523273875375008879880001317503130661557155317894563680545772151929102266236714702196280747342649347041904152362942019004152690624522050903368048907013994869890055438546102931697050036927618841422656986447887543529470735328583322101149534391737123066026685087064399954355255762366559999483231671019000863429564448834992725446235744127941780457877018398005730351715876893616539824694080276519997904210435929492104646637522716326548850749953942845100224232384121669418306044587437122699758367710119767413830263656555528452561989122986603860468075039227301125237682522774406334208335889844171491836686946095138142278774305249002045086243612493141155284636766491402022384175485385934338321288225985139796531898485583341230397129266845340813284369404483618463283437450840255948528342300573945335160006062543793433595824747171891419558431828423741867976308403917353758910718003905358969705055207973408639252887959303267545472037580724641140823472617402018915857337501593411207139952905584456253900215666425759676702800601258038356412439847163077175365234371011507303992758625503833643178483580096466098486580489159238312462000779753281093378235466097936071164766162433888228014123671652929989452310470163849836912508531045985341275914350013242145586314680720956598272829678730307030894933696188066931132885248935578933801649582289205617046469968129255672922028647591757299793095315008646838908252664337592495826187469055249272301342389195548258991351078481731484056258587771766653644148460035895341325744977607850372495413768446600406090984640396311797878449051891149527735979292239990339423454144176980882007717455261048627136974381400026990032619521590443881553156808400011922873202004872175473759476859516389140412336145477965694536028751557021487059754574857834957286653587134154118268973314530730526652370256032414180007449024098882821949176040277058524269284102824586678779431647373543530237825837463241575480924811041804328136926368332971910212557044870961725238230892225796139983724400252463864604998197275282692544093975303107135047505226813047845916797878688701556493859560023282825431268302268166819816075653269183969839632195468275008110455848661247007132110660173579260401823097704010231724778685756189055643780922343262668940926591081284692715423461191014389037859855446897775485542512449672889066115147921749242585095252235419989421049390632178900446790452662040685157784250130388335897743641803149401847384585286616324569304570737013678904511337651006888677625308109637156783708718023914662848747545106513145980299920716190918649074053895283226811149410703084239933371799214855989738501146694244525278806714229287589658703705499098954613343954952257683184950468499525286362898186879878747088658738610219043396773438124951904061996316690708830863818951218337463230233817359039334280350894160287117158112890979079057436223775863091746621369336917309621363198329276162540277317890485232253308964959287244814182457936836994138323276012717256874777881692139485003129173864118298088300080119420932292713452912368281639379083387623076757594161765306340305838486206643168996605254307305782564346138246292302799201868490753402388842114846818141581085492514217426959084268961720332538984547813696750918952295397780720901691394985073901743056384792581200925136461453930790920657706577620465441905729651057818069667552159670751268108939047608016110567107077923741533732209982530543588277176997699464811545005856385998722778915472631877353281942528659214864444643941137605892983402603174272687450073045259230432803327946151379408954846593985430694670079069834379982264469450175032911975687826834680983334271507160352299887445953312939406692126256399625258712528075927246503465359655115068190659015144607836678073572338976547911003050216150079690009282607765027591041749652345260938436441480392895486551668315666337433315917790966462783929221562309473703122125545330329020632143884424943177215566165435093656436978466465076134920464183641857765695638706322855477818331517769606337585108566280470623100810472002860860014019308125666010660860222804305617280618956974851938346153968316241283396846187909752488571771026229215186661933393175550897997670143797823996366735375343265269209772761889681273485521646490416974089532198365429206887977660139644305074502689230869437667706826421731181162221110715691610670391043353187437239826013932301268276233864884925633894457154006450849089470780361490679755282589668608765178466695081981860562792250640102103713861644415605374233681373353561608286063966432888325117637850500433336969924364865246028386484581671469821199948315546515115530848828899994126949259824112986142140915709468340822059078476732980479427752916004761621592384471434531227653429624295676174344096047119656735358531703138877668708262067065804049783489128943477698956326410555198916184597904443768314777498906620277169305497925302009637626923624247012809152189048077154293635439051848901976044704491826842896344505941022665301324440666970638745860032436813570691164074102208647634602790730336806032770166703707981019014789988831797207208341071560333034471855691537123496428854811427100451554423778314769239124672905106304243591872500633669431519062281287742123593915412593848242904102184936248177341483258631398398055749469914889561675617054232343201850792034927392471240675678804260078965438498712567532017509633769432714730157178865580429973515218165735691735569289587750979543103340123132087251874629512563007072382645182961728019036087642272299782168696048259835972966401183831044643400161305456425937046889071052939134246183778598384476783868291261725282285130654480572165455551052825204383788376891284193753542206072249984207551468351469351688089009066453337761796065567583577318487941571723453528761444228683164568945102117364642036157952353751438177978509918241271193133915320558877503823439475173078067857387123250056711380949007042032751372659040550995747484431697186960115094079681365959479119230966969064588966898805141648993024859408534781042727945302604234297909411363671940330710605225695769372860081135002868854170684033645812439516451495106278494396392924296278539894152497560723529562807875974547134920793621127288181039331046381342968247615125603565305911139831647342141812586653730051084390353266157667482724833067373776359017305450291509882109193053747647943645656754296399320789992042947033220598035168394439440977738319644256858103986823849267061169643855516489019049524010142525364181169365142455178740960452149976817852907826108991906827272289542578033450095207698543917899839822532367358210171428606179184425695169151031527457857143099508266463920719388312231912436398647838459565966715269467668469200217794354238798739148267090104364139071064142713577374062846420318984150530801281456332486485000781904233636505435851339139625046715749081817359291432071449174156846951128358862872631022817569142457196002212326959634129165627225605762058057082360186654497087880249423614550116500869352432830318475999131154091593161276925859614358476038679916486605950559666534128017704365754271414874002646083739294738117548859661835960463896970712298639561588259062292688188818511262773511731704749518013556662861453621600745411609327169499328701090785277337859781553552275994517362117349714597606156898704158980470939598189223592242394637822105026266383138802757897454684576477754614101143304291542489546917773045670407065745898804054816314523221088558185686330666979873916353306894506802296292815965136660237055917894850888458966406825086025913248219187933260699487083787731117046177815624047193340072386942676688844372235189746615327893382723945411759442419315233742942184482369931385746276317627666845428602991291379289360631839695950418823746284793315297777712931439929189196529487857948695815641864353458130430390741412026703917604100861448811695653525040945308276899136380375848795554057139760349180783939613615800865499579932828124006673921224466683372805987336791921494539066667025997658847000781674078180429450322009734315987288933250696353170372953960697878688784716144826661042742631483119834291604949530942862027534680703692426186287688250656312141700392727594426688648837064734735739984097205942270660861925049544391747423902301235759042612014291818058482337252027384479684942860813395731702624714884012168983548122030091032765601462178196553971530896936483686275586459202275271384450497928397129102604284019913342207284077160293940415346451135868400147617106141564468161302400189207350671406285355158697253926103752921705566475528219154193972370001064820756092617274198882429351940512006493753336539906770848310409307270565838328015550546104330410462450794255076568241975167590788758501607596792542760552223628982105391985325145536128261144730524762671570614281467208581916150512531821608572376678146632478855934941789320982928564161811402762521193578203062344504875237009647750881495546223710037879268447908022367799468324836945504047674709580941785530104592192467022511291850112734418883190756864214225983237408062927404826468641358855230669186096956737996456750808854022594407516579008069359473516404920512030083890943616295320442441086419898196824293198673849463680960128367681395334447950302693871680681993825343639963619244058950101133756203103257515713987305316757943918221777331290611581778865483992271512802764054445441524257280528794769861330839037471224717575223796102345550372128492656035886797206253475526660610889938265418393106597984242092188946275001222711823842386151106198110938568774477405613011890583170250971153181358886903146515630650855010386386229372031574362901364679675063745558686162452104700551657614523247479807938234226379380233693279435738947280388669970571216491940329356304006094143487706557086639755698905981082326542887899787294168351170016535359666204774958916727332002235691855742878169783525538962657207988364785840077518293692222895811375328229248235528126982033550919472702516513602306516427480230993371853352605197886910266791917312210365434511957780293027548662086157656927476855160817751574177421389733762717109341825820827048614353659319080624264223560084265204743824384706425220419238052808405769554252829378187794306222372485304304915145225766871788905669404543075416895327263428875459464638932498069590163569637759009947773473258980841324905852028250350495501919273662259834839452270474857542631385411706735947809466416473005819281129981668112334247671220694073327180728617640401926257133930405884366331717208068044711258786414724724894551634526507193260620253723474331345108486148704399317018862188608331278287788259911350147186962435678170329493383241750279609608442876990470324288547631115063340525517596445865138838174532623358797878455672760058224661650127209210248770083744206835129175647800318516602045960088027349864387205677507021511654100311025005932044127753066732013161912226838710846995205810068171299359728311513579056832874700315969482049621127116356524453056890301420983965921481266511345416589580834649266391947433617136975476922684432671065318853348015680697378568910082198290847059207029794237939908023533832141983579320622916949990101963546816829646189602805137560605788110468556593290858082965010100019882556017080324388630378142153937934313774574513385153704699211310393616720061247156195504244003319943086524645290054382901611254809685206789135920121363228152477418654781169368985154289878619275137174960974284903639308754379861606232706394170215154317498100056889489796996046280248597616486405047183240657169591808064006997916494695863298897438092305830391634221836563175519674096901164898986037940243514594713148588007943320967750475878277731263966897098974581635005666320965120298487467544514093767122082210296775138958027548539950641487920084346781838558776530411784715406138151468455987925939267790306315487340774363538818839284643790171300976261557903238492581303071442671700202692882140482892074274454749293036927308272631646659630447145851340646913329505655782750954550571774000435708978634873115655128305928576745762282356322166804257052765942275614727739616679634552630514437344518938830181094424900537140180462392501355773542605143968253999647536185500588230474823809074033490454288769996016483044430495114006786385635998723890140527218464420631554912420396752203138298356091846595617155028815161491420384988574529427356139097032272952039315952504107683817327945909121619697648189937569577880014702098832692559911501719929219768251540358293487933503875546774239003857150462454994692065951693902857897559413006626720682135287678939108092839464889621995689717700609440594107424478407726999791687717801138345348038578264640455560628326136031841922582034798028167418357495219814863450733449007175830577609275786574201538957228395329050429284090586218919618119536273153981540612682574728768611561149449285282192196904295099270677386706194756492559417862067392118024794605251119660545225531968535131513847200526759161828253954488289701775915254955207214606644172525594152746068218048757671410275336228426151925913061219347812027165544698910054912009170915011011968388727467221762140927167297044534714334598917521478720866165661213024382456515671609475627233550928333588255446848560092039373796682420639950545946175472941813168439298527152827215870096342468234376379925190975075849615509528356369106154110017198534399273204814913326977735907999887828489065227332144045083796838900372022539710315158129744227147069610439759946298206981527056024139247125867109242629445062194262114696755305523219713237226926543483001587839937804073478014003040611131422241020984197653892123671159333756337482590531876396165335680249024394418921936189191007757833002432599830286507578181347526685473954087092462283239995804723000274326121043458296364786224500956691871367474561919618878190495010235041161003164643949382069670771952704610246937969984438937958992736697300027416870935664665477221921358908039190394410257030096123693953478885831119514523406761443258287547448988142771475868251798647892867866423172195385481537854188207348441896152743184745801028105317445835504687145510782192428226055469078380430177055960104997831500125368363206709546269624819023671896098116734064363330141274312872729842512080451181009877394053856128816534874830729655095037824511378836273676119379453000843073508071099391750894393147781723241450740566197093622907252148380413022438330709020319962219660941831694726306987596440226144145471838714306121126874783727959676985143139312362825028845231779810537296269229298675500054223083395992031200710877049509706078597207580811708423554288778759173480783821725345424794677122956041089456672373818097317833158056382979218505408206260259708557196912744040911738678144468657780421370650925023632434455406423343552423472857210836202833840285360297646137002861362561737512053630725819122289641161314781000296889388961619568682612775994741973641942091852796064238090084098381768824345244560575325740491788982807673222874455846537565193622432260884565707694877820299934549035564543796534346911671590231863193216245442010582332552638959822739188482676665983436303151714514695722022667070204066965895332671682655182301749083902812355945752911278854311860252748302833275152937766829283975347746176703942819841858501369139122996161014405152349802158656358035581257848979201982921144737002696142367885499998827674101579759025288088622936523770203916097391228038126608172318759930229154448281538812034302765293291080986399630214830388607822391573047120807392290548509050235390133387480448000539972550755491504367410758424956204540000588684269089645782389112059685761954710120254662365584833991027264745915640043005234857207739035693591749656539935236565395211722213281560482322584862116909732087382486264178131604640732327096043650443057135370175658723382882671761924587285637770661180070755706336954101105080161568319751179896784019244771902695935815234307794595476888379343308502692355648926775473185653781921896358493586579388860400807074556636192721634343706374916673730948549531447057824036810788418506242675641633594022942032609326308906695848043598893801035795732627394841108491192838540979089709244157279648405268546011359160151930170580986385077893336578932014133250184160124330197434474164396765374130496905153827603062350129706882314637284945828724933069170214111894973599623799003573410349347161170068168983120209366268435730421433045246780959123084793406101538241744682002748715188189804170612233337711328769192818660132159681707706365411112605094163778726676926662188448309342397314068377337902243518049545232259247763352841752854818215148761070227048640808615454387476475046013890243054722702860762915251580411062889317951904956271997815311483805819423728644496871704381115340252878149935722648986817830310287887730825654620051560107381935246756680187800251860019550592368493921852652978932780748599347369318133471630951128698506288454170403124372127762266003315993447767461939724554431790312524924823447257796591265641526952835064603816838343812591421939243704436286033972819408249411710515977925874907402804531028435229869956649144353029735538430845147537342682460304583517455809258571921442598312378914520383670830784103143952704309850453078837076197720939508476321029536193706742938440916016420868191817256865953520455970351869786790215059019849997777271463894937996391453396579580309179393133130970282106141079644548788628230343483709188218455901565359383482519149900880428807980640222702321362365227194285513854727704124812483817269595668978307033348643493401070597648079809790013085898836593154437723060323129201987268432882982521319498527447036053637703698849868089213904295824896920845340771753640125948831887070126358246685749935011320071398429368933135709599242352342983114781075578754751803857248823794397283139828638074609324042777201094022668904684068731544744206325978559589512841406490635610917435519211564584654021398316370059336147609037437339888278307595129851221232631160668159824987018878128836564686252236996597339290680138514178885558295384839255322504312721197311510902004547011984799104220762344421135192790019864624797353393610498401238702170890955909154299494449676993839566048377806226883056316954554698249240239773655310375261026397665882405587608562098518383901265601494448314254731237330318275072354814289031822981439533300272366252303751819693560503767664925364652903990579223210251061802878294604027792102639116633665276670525986746042110046349396824977003769690415545476284257037737980590160327804234337986609079456298116748800225647865801040370439793781934403572656839199046158469658162517674100576206976761234460924558693296474318129038661355775622777452294616100855221668408112370089738150136931571638416913773171964822918504412451339834023495220176320924359324875968932164790482959856578164372077117250968977470048375550802144246387752984215144674580059655537796913026156399284545794680811110132392579346995540805629752941492333148667111438738621900156566140411760288681352610177008728771368457284799086575899605185395677320592497565102700404641567309620877233503858887717277900528196556849007752650689015533831229269415325045258919686455176883717351733622616452252395908987421121129274769099560461892142309357088855995096476110835914843237141313881798508533558977816630408699265842465493542182103866653172324434313261167862390903500971552012557427678304767238042376939231882261658258897093663542573359167496759484543312195431586014826403472095464430629622663802052983615530522330838027150256642186742132970770601703299278282244659348473164925812614606486316263708212306992909206496091035177209823238512102345618790772928676671373954492422229970112579592196511731092335702734032290436071646571869156128266126181010315231262503860561360920015054085027196785742046267129417704522562770703043463768781336594536451405371024073128273370427718976431406526071805094819358619053854125898943979230885122557380876790836518179443026516804763770907843081504259316489124139623836015714123374361545829283242603139549862094720195317881904017037339591356076256944537695397577208214010231841690099400059380617385906413846667789489092297176173599637530477464449451020562022641520223922294018696742351914710796909089541906532102583423995788724789539045440927154951381223374926327951236959194070882652486382256181775919845166951803034187449058517985785184354871608509746160561297072200494913426645936137479510765630189639151176464356148443170628939716760689804400073720433796156728495400767466366505299327613738389963801542267140636143630309301609327863235638581375039109992180967130473350523559558517668279655967577958473451666264221526318548468953510209895093411239707826885805847734802083849072247884851938510280607928571968359065726214180043987546714058163865743651442657598397996352409164760896284312944193158436670852090115811192150642757669183054843587288870283207332024999641945815064604745692477815772839811288618979378033906359104819794856664941767908572994375515974275336580854508233543877825475321604854472117254215496655722944561865850632082915101896577339481375038022357307578690503600802543281016384937549029549425780301313300744811543528843179739643405224421366138958552961059423026060004056787126775081063159986435947467342859660801841843214445102804391396674721208571684848509180618187716767380323860081390984483023143724377591950087759557936913794247869019609998508890924836753504468271125469178183525434235925832164188933041434825502559556984613214255991620342323090986307438367152072153777803360207060131495677542164674558408847290653302972792928253079426887783037388018756514313755284766929957032394703734670211226312679256030407111846108904070754456158449863475804989612645076093469677147510307798562153702375056129419476723329566999364263219381079670611977520838735278322647813168413342529124138666680799278283363862205593594703022508223570101951972899202206945462472559379476357406254859995044124938960425017932752659049505033763761776812663900469648364076754719405252318355770310193809876076831568194532113285038300314097126737929983703694761884713874596249092063840302162601716181729188652630317312359494371497690492658636898013945067108957448860024394764400401197021957900119116968950199731800176267139106366482646319784872371527562043454401601091428660329549104471023783969840680382293538064561907656958178533629972799482808170221783695624307471435405257057104563498342778058091393341178741877906257158223620505190472133538203526280540341401850579911453936061769958979024469531984441468323271972654188843651844119320774501562711863511334771595036129542620477606063147886219337944964487535643707317120427947448095697098679263351618172415146471655580227179136299509394390608221215981315436684187279709626526092217477635921030840135389318598996323202661930122884664668706619165937947017880661025028238767732169692630190620009402947810944670291397840201044820217378022820308646874826591847769624086685137726428434975803848081663572006613708869048524999126275809020264791159374375801005215064073333794337248109510209107619059840771985604811905492136444994315454943744059906919640966335513890561563886690603181502226777066212099124767675646270887192684154172170503054489453158295910237801347974721749113420371497325284545824167407101006028299701916777968375653973403318141672135026291572105408091248166634521068460063954659702751690547136595412555777559676398632686535670072069522450934743181853768019208996059634933463834769163526379040980301622516913741859439361488874500513207503244894765672714270821573353452530559172541913053195912328709389955019661746334427820951409111231530044853167628262564277028512254970216250399355994316571059601887375385864230084473276147977510821335374502393591582544144089488243776335319339394498790830147947182836886593028903222437454001971117083374219540685328848968954717269807866056210756219622763913978856519367364544671793329493851441343018967375117802942808140043324981409485063109667451289863379902649901120709918061071449822258849703031240993050514224742766034261054680278784926346239079045761976407768611729076780845164624735953292452721642754099609837960218444915625470004198123917032313092313569910785967729214072543649364641166887781050720167293266157062596677494602897639432759930872056549831943717049712948743121476996515042405371041601908813773665398608779656681160577599050777540254890067966833271559006980486587883652077367947458565408919199159111382064667216143631314735942552449757892982745331563423919474907064583620954025260756223687573237924678319153177822335212312469001434466618853774084016551812581094882585633787971626716669373589297191812823616645150337026160245904105900697589939203299004693285937964102480676622801848190942994080077666996415847937326584705340118719157688007049049958327554106737250726229259205998535961631346991629060530037900763711915410908206891914580774081092530972421575267667436727751214095368581674310490998480958117178236456398008140530369806682898943379957420630371382894403168938712097780846814758014360207256161048734073531331029285928874364524536218203211005890437939738077901707960010752560694700672558773256900351374882318128825328703655417504450296102375686852861361547076857050926516307958338079773315798440971427910918757928996432029110112504284359523933033241434884897079227669290590677183814016459612195216745736332539418965115065026447025369869241307162360381390344327787647965297073370305210829777566969414134377646292320383209948215406675907518775546584754792777515058692401516872888248751628502978204771172613983365315522090319678628542347538898456570283254620738623602348921608540865101282712319640205098827028019295139196467206800781602517392729314937380501279972402346950368192544798970156563523491212218592829319818767006823867085320474406937990381325026103800357640630960440455365701876075549978809545547961785807610175650673246675846850393243488988543734974484345353661075991906683513510441841444481794034360527635013260276709372269933925676029784353438759281818135148649915097970886557998104505818075571197019051652154763515244634755178533865243889661213449173810708364875326753659555636034971192009672413349079426686576138359526920921058726682971154554933285290574556759143356222349776433239851863220716520503226444236716537939021237287448183077995945021271495352003637502834580184563044029379295818179520065368526808775376840778822080268478089960853312092385589404973272625990796036211928229283846518216309928075087212122206153489868464675191912634982735303588785648212132648168124214339079269733864148998598453488650397891692478890944197605704572331003676241236601151754921546790378637945288852117682497493711800007645973539603763388450947442234607377947967206938374967493292528047208782526546377429426137197228262810286879213113506055050874818472339325319307844281902616159159761928100454099514811455055972970603430446639102430265774914805414413377789186858564461401639486573505283919907716031234367155603060248983564132697882957146741230182941302091804649233735005521274517391017103740721248968477612680489119685474430742623589172561194752246815568915263362568137255227084166663811675396900261208271534209385045453917648178637416483173799790297102079683187127180345189810127719017637725125337662286951943898868081273030342891278670638057239521828494517029052491911188511938071339712098580379692487506735987850413110808608633381767733714554582910098654243907069296446553083017615245395123414929894044156938173604552382328055016656372501243044449685535811233469477816360284819554710316497670642257739612290907113621603560768690996559304297714326817384364120902871280769460214175174249894614828594035378227189608594973849650263250574945319826025625964527528203466905176377887056573056127870384994166120413563577114279469055594862325108602452422859215738532737396362664095375432631059021853085878748250271337082227748629448571818492610311296623101934886921789171202150147987057455804551574165080999293482043849474390119009535074198744312489286988557826174104332273176817351384001829865127273049372816877324991706636732231915503393725311758804239930347996166225425398682786125597401437434943956229372319083706342505086783469929848296855017288822755282793262899735580884544540448993628011147802133256931092330162614435378160209125329342366574731827919261783291599960798169813253993503731421081008034137113611493352272098898305426280827984428977279091011926066444479766531216932105495067394228272440157357254968362381290713831376192041598556712438728177776534501116508435059650389690927144600508574893766375011230079620510830449248462277150822666798188479575070505358363955521851079781000414936199111248817737523156195157872645363812553853720714303312626735719878710703016090956541198977952913492386955093455636720479258121049993679838124274665737345069016751696876813770559910469176187787568571475638272678790045415112491428996858893756847935567974665964886943556402459497711149229786941119235715973596736504162514616926576182034145972267188856725678325690826946574726313521741076167437063255593010570267310513376273271109995870873534916487655885891610067058776552561550116562163446101640110269166036831695683729091922663032086319266329655792010878180241201143139489170976416038687705754878528109191709190050787056061925648465249569032275049031949590175156140733551731573989486522017167492287785362427935743571607939287906965136463452992368854578637023979299287892532053637054577920802228886045787975392430217710631915654489390453970021716621480983150671109881876867158385388043352029919936745190692292345683223645357284529046474214178483560568498639566727793445763729127983491484156476226232645881065752822143050716180241857556554960506580001621911482397031837803323828858862454196747041875018087192727529304164607370188427474598010922322837890302885735075225253878689691807380009147059641222675628804779206659770606469035006094123970579758796740050708744848976165086430945523604802186970007105994423795436578617644586421125617304135702286654217274246023648581483860736920626200089700337468808368788941071202234112937053229506264171736396500065479501590436749539896484864184717568132139551619899123366967011316968669993595508920874576084842117988997580743334386716975192239322677312269654988200995410646662985904588436966761539634358410285036243712434854010732050224244555608098410182325802077289230252311605585004855334110760857575811593148899481287658499726516398095207804440900311858176217635283407434740710233557140871175747957420002537276096422092896070591943736351051952598471251702826457463677245460837852727193806213476320905552294089414275569591120460032728672873156072801124225857585264681891083766195401324692071278380729606865865849489150307515753945245153009323146762573594373064240604778679063964446704949658007983062221525907639361292537991440475650436420049713137489849324160198473761966919962351310589787857265820599763345881789099846083736916382002043680295593726466878372010938291898512895375593719092757449302736462954909586699032289451445705757443053969186645435949160297332131129705331123048855179488945398528544567197821570108780209022596301044012325467999376143567352854007784819211216627588837826377815897560639994687303233260320385372655510226650522509456451845681559377638804927347421698373350490356878856993346799466584279721528850053818301346163005935625306110022506389210192414854407296881131733220715507091563083284837989310198896081022193580219806376406755355839087227538354718649353834461091021629258005340895751933641658271369315307081992109815266173411234135339895467811098454993533359081954366318576044641847283227835059704938397189714519392395416829110508446333190565699735706029453994363992259089997897144131804468571419239175646763795001792904082456651097288538151154441206538370959435694244959889786212402571925236776815233112124361789084899583166603549986275936500500694976242426935057619558958112511701113709065723852710847946430968155905348158074618619539417528933360012123370037052138251521801082377237617890039557480096490721213905038139083135259744641712987958217482269863407372507637501199929053704116666000404732217758450935246982117465811721694215595176393066216326347699964604041838796704108677054512619655896901474105567559577240456440358503525615233592422754513617356934133103294099741900034962672729783839229830259936827554401014333222571438379599489148855423135575444839251358675539014370140756608190230054117722268506528416296952848367056515982006150946190319866988616089310873726912365210104703522756384808774674700062600327145460599302671572625045605743996944425438778301559208451583349029965872535091255852301066757855048289862886389893543917601951518075048934818235364743106287066989695890256528865309822281006140631834895549636385011064124760537858546504534511498408052058484289945820809934969362681351217252908695756504956342906377958390994494390257098831861742156244759998832662082639824306679552013504580231914406056513708549816736216413877635153113563498977379218612963838446420824095085385249279651262505678216605065798745277790480301614395370037243156826029248130145518159381134507462703579234912251222014965731233081508834315732051197342324560672745909778505658131087029716983396716774801973955592340840042008545888385007886262652593506224983813650580822660168843972486555562952577697972872981082276527648507744215937081549937807046198208443639422460370480878554174604000348115712854658000946495395244205221928266228982599486030074205410957818052794923748653893783220788627139750470321194581391990262502123303295724215116987906708536162633602861315145000166998818239162261365116287740506033375162403437416825672512458307841556659798969700812546269479762463923629239743325786451840541047616826246931617735805058133610391985368042805169444365429875783733853747955705429514455358279466775134737480199705191133970645635978091750324572084964821099763810963577947848292362959082344482246688673734043224718929037697628582049913309267456787540162321911957477465944237023653146317976844696908045562256099513903043385280911228688328657655551657552249685026879278312884061648930215590926196660888881140877409136383108038000065159076264846711686172440763378157005594859025836199421116536565430619120524792674831113609111320215403553977658134953493470113981695376616420554713309386266389358743910477593345348652589898190026129752336345824784960331317540977671995435688805171515518665394889882350492432197340743090321995761863179383367554746174235644688709776431179011648445527650742915047518070557654290065546000475315707750137029075337001664217495724546530758534808980658630253192962942914183516345373387414012804460876521740892262798898471364085527423130769613055060850707452407600127772516845859725968980840152819836412528183919272112779203441776682611633165252715748711574184447982944855019015420467850918172104680599984305757297462192944804210961160415979648027622105436703720954237880557864246604675954654705022543471830164181371075076559538709113449939234551290261695112595209914627743424112021268947555009826907453865621106520239386521235140599644058532761010290073840837986327247962936129831870730460483316341120339502499850325685144360140665424156032356638917892349867393138928305671248164564691812152921171670012423304675326686552868789209447000580546090034776646012968339341264865782218220654102371737301659831645398107227150283013593577428238777838366076455826010208464705052802644910346068750390267347982943753061709236845839821840155370535452484085104452025160039836471846838144121463332791626674211305131796877387161415408913665022756753638629652569149964881770616383130185319442591342277063167267748829224503070897585067288247830850217291141586730401295332610740513747803722150853324201093122861206798078293934380003591138600387130022000889856369429263456509192092480732997706906986660034329015873430051653923595641223617304821530083801210296819239365512836120008838782373504200103090410152098220869381900886013921310889294863682872626507754382895138845919884221725858576821876920787271232691985746831895732899543774893661717813169583273272377163809528112115764698920138382552427322471101531880055097842538513620144220390183969065102739471313872177562813674957720326884930387519813006796589211630513307696285415329120208241993226179370436873992158591259314207534343955694416552843573378778012887788206256655912672500997569128543778501539455251690254408987609368894039846869780713486044590548794559959597820377769272697966147183039298693561904297415538625822376873877135570069900044389942848807820355697557833300529797877513782746754287724025396432274563144316673765138764176227221778366610534509509376529590082738246441171474845942149997030908299571386282347675162515159284256390627732615930780138568820986881953836055199820371253983918903881654883183087936143734964748535321620995184529468312853880010124051774606503975724589028965361518126437288407339683094292394866554555179391910569319138335945871044649775695899039988177766965614674569729967390412651027524293416659489017429463776318408403505537417858780465057645798499012472023963541741981604913074555297272421067488494189723534804079142263734001261469534094210077611173557403887257841715376337758542383916560627128830902934947618147972026608843899437096287258201922526437736165458185362373078177616968870326550682136953677556393968306598723357172459693702731356849156089067248107340913629429553797993795101602387087991548779609859238306063798537794284736342390310313986898332702381719358776570385111750191697354867270969503223782391805992087246542856378749314440129104903516983241146714157942466207998428843852082437620635218570455682248351558542064895753732011636648137046928969180544629508666131094407365744748895705962086151973689498071276209038949344489333786217386432184159578231165936434007340983497214197930110056205529978435596722625396583244406211347984323610601390938763953195269188890846629140896855095106602859460886843795814091009366945822955896122546219450752091712886031361847634160170447484451307527229135035132552590039580941000841358566666481730433457767465432341594372291354876532259508433169751128687633116297597904500691609124373206877056722058498598655076105091451486322783280741216729496295911598198314741908176258413861301721936109307459201928453902290187536178374665373104324568970902109666823060624892178573098946377252455702938305245664119719693963847148011238580514021727618331121930541628059311574493846411301786306935694677429195430635204034749976132023918713549354968795125068530034729189795932782132554447231715339090823276704086124867919653918971869300678142258580445488068453251748534338102283163119275401754792588387380219334617378015805329916760792029809831786906261549411450805709160468267057328264527078899897218612737557355840640036251649646590235627216636389736704371639004085234159125325815895399194064879085827137074312097606337233483094112668657019981895885771311818237800140785832732645572037534072261545104781981394906159971763446212471203534792727462921425089071044741728333296956736502967673830625091995905201166525093646930105671595402754015200967460365968287011661641563895252630377975397216177292524299090889209525282806971774747724403423269201764387346783830259499433646698962577657995902767219532824322058303054754567000845206075918834376532816191035523680542271461021058573289130284013230631945116859263708051288995137953482048241228965962967653649437547347846721137873229257126224607958674417718007616684140112852755785168503397023753904956075888836375063579535900520060401287921027797575617462290277683020949251454437305023299568939908735743880951343439901206088619511894585151994861111243313427526196295783707519431810723010731308081399937893524176650828271001542710275457472821719773068318244348013973069910738524358144430297721934659337231281857980654918420879925047855355606980502886765284197006355256326853167015655780298406386487405930223174730177547689737501324864139730152516410020531111885267339723455938027722331793779514823784820989987104769444681790972319364856516327563730957454048152991982972115294894262382657266869121289071921198542237575923306405109933995022577973190392904858742712106875254993414141742251879025811636493049052738698747669206996332558964197726885472740493018550977859087508389314660389659805664498935005475929517195186054571972452510906191431154312345831725700766875382268203467534254236132795418930593880113677397363189018716143526747156523221895103399465107193751414217098807323162738923997987590207721142089016085817378058756259075007857781646165985671573857798713135333624915775148774525440103911421401670810268504615343955602859177692176520029847589433016583800542086395469073853431087409063273217061149883510170273140533715796618407060895071260601253528312411156368354373331389739384960542316679779297981741061876788390260235056969217331917149111853770309351941451127610060859348304025214551765165255503625585682343764458782010040438262269631690177620484607159509706696956257478635240159944011413431286993155416382178195425622188200740700086528724217462491660190594507672018824994425681437787556430204850142522212038904596461169479374426249139488201046841075329577288497817159733883718001329574333454389486523400448949686732936459797924025930998051385595174293945626546084881163162970488605290636401352009603939850632927335588296030527007524921752190612800252699947724523193133281754539108276203425695703621645092366258703310746665184676011331989372299937523723776227695277189725854113737421057887637302659090647514313619954524632910631926196718413007487468872170129105598216989078921824194304447908826101866864801007682069816849166856887281864119776267326647150011751470835017929930315759043038050453126812243218752948688819203661557622718311927812566524711245600267106579851691794373572219214328659147007455357026595816113093339422776744312558995304043443174478187335951566262562698296927288878098941990867345204288817475830338122685194822990778316840799621572636438353866299218593300998347802278846797961076121061834869563596336145804909023101860181131431946626471117200920948437461021306575792873867672473180478092860777459125711197094762442871058122792492957747732775816541328559481341135007645611487646359550633548000934716956298912660459149933697141249046224010518777513813697734199494722588365510494139462769086875655430898120177365912887994119960270542636251789475076649921089990590229971612728851839431851844279963452819669582740741423182209592919533766306395308133082606861867904174441085673755298418030686534515734108699642024980076481221696878539455826213041970042936075409781621034098815043265393922519302289193802705036042986419811589979605363431520936246209351176530093595349665873976448685240153954450236173804679058243408608325247441618146137772551505731901388181949333960058909927675974639533990512607253530485076829155475026103373184990946015442219809114735120861559902356491323456906680704056770941422885575929954059786789944257893303540937974210097444867809221568366384932464427135386114524517471229684051136760916169971902250912226559515943256382761869066467813263487293861282573686907677247342941518122490905010437752009735987970409616139099177162142105617090832289827999387903008761857884682008546137644567069591530859905601642935951298002681506635903023411339631704581622951955834396428791184543360050075048974484619255614816841943054931111869764007579836355799069530370092038206122708128361225927617088093400679783856620643996167054868489807452289143662713716848777870236371909518857069671720480557737799729099861199891244489973971582650482667983306750679985169963737360154192224513511370492264934479275038538945727199017807857590730485152896171982363650725714510767793405465582135046448934451639141945436522763705497305465250399318673337577720596570202071908670878271171964091784392483734346344906430639593153952076168478407487561560677215530903011752247572269380105882488450505484176600661589777120789360882208709006790874497881269243869065059330919938335195546191899066957327322071106188152148481108063327156871376726514922742115084234856725276480090109405856252175362039182034480255716123650905640679569614299452504686877814234262095755808981833940454745037965426463509553314219715133725378912810288783172965032976110880278649012744321008597065686060600173245666962763506394945848448154157492598074523065335223225953981552295752523775892368872334727322052251068095363232690857188938583129945624719798718329620865350965663855686875873965188420082661420670722749764638712533884161142387999445162783365447991239924620575758040421590856300310423721326166476860682620628589063097735875286183838406459064390890154569700641715056678323768849690138742269269477728426349990437239123508545428633630360891146593496227207701776541727185419294549515395118254326415553729909985738366107578533158058042314635860928225141128241233878480272691189422736639110189236220532578763996358747705789372863284305905957357109098750348903811433970261569359379334660775095375322904419236908218600829336354257105531674521725352933177402773083284617411400354659847017666344752769349806974535755440494628391220494039304280795009047297457650808535202155975667670512519625766646198195662489717402965796040252486315253797038341430232460340262791676247814384819794069892080572199804420809083551169173276395663129720288676279537340531428833588920075046094001776966619126310147557286739414517153247004667148294048479453763380778079186119132954742302496438004085631395680886744772249716813418181193018394113599018794466824191496019387053561898287885548783147358381727172348149144565683108378660119301207141188575622331288146926114323265507110764061794536078430101552556424241579463100740441225498638659319988814784839337343161083991714381044585531461346437568411644743410518441228592329602737184083807339970047029574893380085019433484570709298601468913035109853537714196643786134665269554513123722589785047739687364736570521223669185348466592073012227192685884003987531252441041794216524641386298637237491933842544350799673696201407864965499815448534043106731882066694174513661217732866072071068689565942553468807190201939501498987362559814599765731381982891217101927589963152583105652515564440040077259732104869660986146311660695234180607183654993953292675848288894209745743093467341954118224767494854219555166708298014606741568309294300410547440796144211227018837123294824971084545047080297513677787809602217135478067362260077177961649594738325443444682989534191325386959677638000933658085324420538753744103843040918654877182651395653225959595957270407699171896791373676352925214528304391257225276387059997156727301382198275991617364273872823710589013248302508506438674115786460161840635289229862702582379821720187598817213637238446241553422073969908208855698306258007061844028867793421367519283354672347795763374552076709987977373931588466558691805350996026308089588254622863394725867923820895348520740744530791461973808846376795862412149839481690675473932461187391748475499716452172198955964554740998494773085506057499129286956363692763649594896237046698756945635347294690891923103344884063793823278774460306133223626820517473078518241697944688801435832300922362071455077228562460235295499250692049566383041741307027425539548383457178963162404422615474274312949097217195675396591756078546835113565185545229195595151022754191523622738729205484735993376276207410675741930819231377397507460888041094170572975397754380093671144926226946690693220204794184821220985822166747017557156374576571178176056964454976472200884430716422093920590840847145141494026313086192287096394106070930815381389478834378885627513647775766060297396292985665949247062128795996472681781625383625345131237711451444423434767249347250796165525546044604612207057533856226117236567637282902549730009406840734733706793050749368278256380373570675619899015276085421472506345229460581263458389850631517481928525922206538251784873673205843002904707602704885463008620384628519297512668287788544576181556612096103185261153889970203416875276253232165898572434765618001135518557580984107529315691547048734342313325136302175599980379007734726292717790946174275487300299128219919767598952119839238663479432511061775905802236804431769496356774700080691918923050485227772303314193882892226973463969353933362783446949478601123664982973347893283526315168091872582181951884279969567167906508416952598410237496915252263116272279540298463614505964928856058885951893122214476312982060348179911925347655183155582216109975626683866651061284228448692135033858512463700711155870995941361202048174872881097967271752525797346999682883348391786562378120195015050731660288354330762850689826480654186277587324249645336899286381522839376467908669101848302033831646657830261892739901442364256411849019901509420627801933351844647498451959342288991470925395717089104555982809625556003233165953291093841882055727796469477826046121921172567180676203982101025154315803286319330761325472765454552024903700971400548682557006069426271022583031876193858143257582457309284192196146855364587283629154800167543481608478006232227928792126648583611548879970673119290691892957191003551542662862830646686402684579886510692756200281123612451679001729708709471372954168974701996480832916269024899852277548698750045514047774098434409428258047085721911298448915168232938221083504422126673387823462938983418483684406323987899845504698901447350454927175579800242537912108825280152238322374819589870351239641677694202162239054963814438533201494072621817204184836869932049155889938860961895435900384899670337637379829225653572439627293167508478191158652629545224017944302745910532120350293333295748604159116237732428944786669739966047776789295673253203330157453925606324351029154543537298662490024997125621880487440294275511447055224049226501257558434002082880004158052293688768652210807744821159088828031999154760869685416972186054253041093935852119244821409535934535754377953577143523484175404078255569730823173140810486329133401115892727844019331649757956732709921070538562427636355936189895149450032770935860224253430740294791359949091193442115842360122787097875023132012036389616315601939745559667354240678406617895841715045402873699182009029435017245366967570325510437665420219356427952772310666726200551114773561898011589375414471155138102407584896878907385077450518256641546615804608711283302881261530954934357247231969141744207576914259847270000563599908456766639104814581891741420374212740952114135093216278542300577815964596316691867213258729154613547636961132824868486499463345943265140204718247066532687887441611850207293586557401049931261099690234474081786312657532440463632862863975235309556252403700918696786391142375716764140038182384122961698625003252610692684121439812665379726474865109186909938867428916463253736387356667303351679471466956244923503459229277081779021989933641920844501240971839303287210885986141787292597371234279177799486373600752218914228919981842370351212715092393685045457377207409029908287494328084785832176610511361835217028087515053929229641249381544888898235686177596176224029461031742661695573051359255370937941188057343609135851844012227569070228090961530094168767531210442551897173452081772696888469688589568663935536099380054790368533704594416495634457745307800293532028029604780469715496841304182885902372534244731295207462812133445171180515692683179645991343290058710362640909274417364991961690692377782948424659415222406928786604739127000115119503774281986786288144671235598535737550185164498831957782499908310877832658324177308560300772737474664812864869739119752121805534450180360832981575840859363587528826677810409546909454792840326537762568585739245507082424509426030170803121232381285632800875465636116326203349548853673778252281627487211304902812263458557075760235212685994092151211306090532739776565927313951621818954521152203081220527443869323717158858346140371987608634470108184971962224202859419622850975236353743298281720015463640311491143602349332164677412236853427190879422554830305986482785197023538906569050962512059432146171507116325190559386596880685438416716758074710049876835903664769360758417679964929071160898927610887793745099698612775334670668179827576491501310040080973479818665589975197607424180886481165278681025383059661935201676320726154442941175785469871571183181039595557101595213428251330589021653077054065049553790369402665324757772489869944481525203814419763971177419453175974722748894228135914101617264703726725705546095149675044657934101437571748538474471286895661689289178326127999898445575978095238263048555478387392465598538949214377827561441125166201159652874800034810397931121193980087336823059264928870089708801977052002360782344337465580426664815848115414849135599398292157929107097201504739437232523019854198865552653321123009987187092888684296325814733441200628886892008608174027084547903084152354777765234449799935631749542457357757753360115853735806651757320907470917072133933553219859395803337885946315904524223949149904731780393028561329585981657406884602955928652588644621686506497383865558267229264288763564894713091554243678518388648210835898067180665899970107509660353329140978353213658632353042860612132146492396033075268165780884853604103502610604109798807866682914242676568707231741744485379820637425376978775013410664510144086180596857199224237880126006853559692842943417334341122476606627772746726013673964515302443721763378168457541700102680898829201946152643113084024626075813884314312718013752643952621451302714332976589067730497384738640170524836379626283108980582159296494943766229673791918009998021373505927619662011828911341274584341205280210209162211250389577543997900810000881984507725717434224258658675394754521085194967206152944600873935010769194058960197387819306128772633007985240835059732337030794319481490418837491562465911438351066180015079668098363608015276207388612210156391237750471091146761030346190747115296686526810204358073609193276058373989080841873067002581297816793720300299569438091236536223784441344071259291217114891965802271988160709073319992060615937693977612304750268003547342232808060489308289646065759906566788734810473469721576905170250400682612942704233717968133675339890884577722751308641724159840187230101259146113922025523915211394096326712908370617636861045467206139878939585413999628997697614454796201655008752918380302085707301734410943089343360055015035039055953457798086617748268128931787557346132597647870742056034922127665563992714018079937590733064908395942809473832498389246998899267810483618540333125870284263435515506840701514394907773454566635678268118416404539065087445359121015181486013485862107478491335239988328871978112765800334882728228294807840665669812233241535339942478139812603450761817880437384640162464974291649968841118634714559979456686875437136044434045590802493058498597116371481125587076466238713806798773412086848729074851103335496850392547135273038032151011774639785913608001127758183836767034680536957111537184061692772486100009336698129143956933436359238601321128883730415686043761610971150908301007571578536215944937739050719361997911925143826119438211340153366326589252428739801241932914754546483361065860430159972206648674204294590424775714536542168181161634641024293637302390484008937461821735088958616135927252579194382773466891185115682139489086947276655327426722593139660026128622997316118218380462876794290208754003477354622743371572253982903165092073662776318838762211196183194795710247477724100660174045760445058376052615995877999538475450028623931852738904196421372696047656344045224763320834366414271200897163533865665614811959007725521483382708306129371881879765407795362324859109055768497250836906333566527957488220731766017141912306173082970074302963440283287395443771423439068181937429999182922515643314075179927256125807737531136369087629300277667336838229920583277622411335843461563742968932201142803983509429477461136854657243397109585841478743100977269943420829385104232447795087781465912113297010894211678623705965150700484461833878856131894118977709603682896926505535171073439408125699989007989349278739474268584244157839340357325264436918310618925107185804732742097974471516596753414932219044574858003748803626419476286256171687697676985801836601969308150661296229653462144403899115936997482972102734735974922319948121663005938871363709282105377918109741509377077079447688948344596851544722480880373328108115216690799235626744928097569357308956401683055035075168563762476108177439298454608373032714971704313591648122542920951088414943133173523372018972523165503253363141693531511161968499948966984755939970016724302227753743417470937209705797223698511476469561128213258891261938671574726106997800885223500281431698793396355527072136173432996368496512014021138266705312354922841594079275516712102450781667516045493876225672948280639869379700664481876693902665068164132394096871035805771393110186558740550731190364555971824333287226155932215814395219197632443915420410606425915286142404959064880682274675765945196459530396146056103845983524171730356890792915262614460706786497245967913926379764518198034875036891787294999035808466296815263854438480578933012491475355855792816848762311137385020948268519599715324519088435955841711335351349370200518425738920467374235368788788995467688639939252124206295384692409487912117021103376128324228616731966992036655857939745456203602101922074930043779804208704794499574166161959421246037890321414521042179662587515683675212242050939225367341300122884692412215593571366776730231057912209891950380490302887205722507914530375040446130126251293322898841134444114129543593664291419917852923074569182391907341204852056330781692320385694592386299568522345445566053701812854459674772205798869280405209725663572237220343194220153263819723204639552182675661520404431710052262155978092740409984567595877370587825151060977176778236395913476703987780876261643017199431574736315465837781617665834979547423810517542841383528499438090463457129894275197458184370436336737905633676754707243640248800035849558567060345930349497117998778233945891822882986399096422875760385930250096812338646505264356313915480174277061645297478161581731878263878015406334397352842261770997269666211414744810263380390084213493192086442692042984734304522516178074519138798174617181395083403367498013262098511669788330921338412704730663775887139943679051597059786162534403543566421050964658713632426038668996159219539683291980499219889716654473667832937193208268647888656311655777443448579987383265155039484018858875720684269754817166776938605226771134082801510163591078041713994425293181609800698495514112540237827670264916618078432083037995800761757763265542142315553561132329564556978106353270215680166708740535584048510050253582824917347265595364849395954931568374261937450736913977796607642277687748677791239742263083296945898351524459384938845019596255639930531304886168481828699732480651915878750183164796944498225211564241256740895499827676619805121019877744815631382692369690918439961398018465268547545731736984049921070348897753709943760994625741959726840706566763329489890699249359734118622541469164998798004804310670692863303393032298561602552436750721376712178025913494329140431471892671110786995618066433864316443605841350253591885804674706917943565892804217428218145264750810283958806257508186101074857357903716789664038523002722119083720697876330434358721388372996199028061667177571772304918369931042900511817476271448768988409734476538974155339521207943344212993083974858372702350230588074160432289864451416989690478326448807973282191197099323845215761969385294707229669325948012913459705812127696041795283778898238917225840977856137176491627250604466759483811813009209878666554125751246211852824778476398366838637605481694861246815213434916602934372113949817427840996267812113901281286626096078585866387774745894706117231216749629661038622901133789044756609387584498693315270794603980156414499721975940001997913843274084737761779609689791955188670145115939276111502593146017676517557145718683494867932964266369396822038488411845065517490039519111876505298449426739265582811322589248602667462340893501244456165877673332657600318717395794342742239018514782170139340183308031844563359076523216691877811078049657524615047060570906963691784445882298396340914963679683086063408165433879631350208191332975012306193582175570093717361154894636322544822635553104161200089371331593107238726778965799788623358582264524505682944506586664193798705329432436696912858980980608097172437968596164609609287758463247293130946568804214842472719523306095028931260927695659487582437608793536302855320243131652533450480199735509982657976666639301035701605498165189372458094550519986107299690801672166352858085097021428812706327387933961961261393773763062898474104962021477476011509925065735575897990188857695212636819642870588178539359408095514047156003347847347431562717657872759145049322088166273709993477607816901459391440500834653315542090239583014940117551246241494444841921956778016006639406512849969286016521017075950961290380125107064777625239717545673922787056597730463497628420369003172717307767396928206503057525063188625211646971397608808601745564117319112351060654552887428948780721028688033620292472826671430425695412497775208063371177193466396836934253225839217576871257980599452880983800611781358876904606637192201215346973808638425050894626201744224197609640315612825649592871615024105026450754394160476534367166757794630563465116598711533259651108049863952105132570635785630106551843635893754666492135142625360768964376017763864430342583936681862550945341179131874119923190954175011277732076525290291054676392214131692410419562561416596068270955528688482353624050698690007587141858940976432148596171625598597213181214537600970023296670787848183066551909410614944114495591042417630250745345162956733886265995650890414698096473072793561291813914429943143777381076919607401264736805163200985271257571921669042605001735421393324001551537551155400359946812662647330864624429897220932326797612684609712935633551558815453160793779216426909658664121122796856770029991266512331620241608608202402485774221742147204496764671569476581503623636490713136218234351219667237710434801101097413041053304721567441251585022724085864672587101043760825087779150713575581063182214115085867006209817750951761499460125619969187232928181278155643069558913886958823488780453310748744945630347541095748039369955043969995798137495133598353257662259486579026687631154356167899730315590762817269362986132787482666424968547209661555339148577489328399358943607571636959113262574494856793455288322870998154816240296869203696025029451595378956591242219595537023066585439227133062103182100428540958649647010886671306519208535103147186785337872741963976665940227087604294077542837911420567182733062656454460070850777543170108657909559541274183172483746987082113692079410153227464309994015941701044846614761564350891381412852198706950803805689662743430281282005901970934727539222385121586714283434547698940504834784710067422299692832176216471764154003998817906712540183424046336392597977252188311142874458297513147336294494947453690948789058411487548466441588450499399318761093051394713469321455588193037505976331261627263673711831768909377225375283151426471292417327782935422324813915213500950373476329159164828027297026928565245097836584194692520836964070443176797712066910840422741663187352336542805814209698540723970569948870689990803779888664115156254956054794955096736966467633219050009586599866396201974663740564491198633998065954393832285778214545504988481468052043259433359171074154671769443232707999279786300007231691338987360335771995939871859086652190256568212099453470316800454583731698386151345574017326802539320066306594234012327538560023000107496975606438341986905726851028028815738437461099459583909144542717087619638346624762890727219743619833161460745275051457729668495422447749171610496518219419644873747396048512790728243583416664550445679102000133083080927455320846186042195840119093315755682359766203616188873451627751376083626815138510608178537310887970682069065606932392712540252433891088700763690440945709544830489911598361286336500909062790687813453388015239562698372764239236757983720941516856232859416402976886299640657826716463762533650911267814272641278418303230541083839291987114283384506071030432749793896007822879760126569252177235670714611345703642874758705880583053769631275386134782950565418057934508869578671027532771783541132833699710067288430585393739602421702512966997037194555464631225032114505823604553982548146488823747668905624984356073654837018330575997872544715649265793267024569928292426024597108741726097656051219863836687109878465430651289113518652586867591263082861543156586192785186039113526288272523369309961591756917681701029876542077957822297757149827088632930722212236913255035624592815128846467028119406987093795825163191136121538141423122072984174381641269874777075175116857190861558811298156560325175133055572572875841927090937070806039007162392132523467217124185698855501466083964155290668478696232335187779523232616943989359475730610416273763187899171550251517501114734086176039339178543599693446689957876357440071396171261994606367213056031305555304942442433001391153324739477308550513828204227459647850947614116345597271015965131314276221485359807716907303692608355356607920240136548504770335422866045268618382408414502272528793989297333779576443934202791893423879956772815959373929376915814925184743339731425544569159310931353932731344708110450899758671637360089802833178112008901613206898122842897331278671082437169973529398242075777961024820247774223952145707633005119892890999900534029221825751086911970032119848320278943742689684959672963894709337460127038966670787487040263884238056202733528189157407503256583063590682403096837100620686488409197620804986374165713060981814869110112627046860768713485412794494839299697795197458117819711402520192768497953298213193549240736296832536264347359695534194773123121217313978825437136079818814509963552286243281306969155907944032972904450254431208328677024379876796648160991069397953767264406554252591071478717488758901317217015089678929430134010849015663042120500433247678211834102211745623684473567018183923474438392540347239807866130689433260894241267000491946460508842367807955184841746410004283030659551844890625168422171521517782649878231724530670273153560357940788404971481991793327465638139665898613261430344247753913072903875961383568707014509293476642344684822497744561181829848232319886395451046577158283406731405698032559249115625960311646399924656219647980626912016753221523347722232834417179249101016102418582274890595178406901920859172709528667097120170073915072245864986588249576108236440455758056209449467261919916474100093281356957342921347158180772846494011254805640614472507987988908798998568162884375847337750121782816279646822480042935827667765425207718797419135101097084360657359758567304323148010518593039935941834309053893551466720122863545787402002136178172266725062425749550190787565518925433349734238631750138909079718718257312804158704229688115463413704357610932693645952344557353257031486523390334685722611546650140631751275015609346433785076839555397963540328896422637605255590470560024272479563151836245595652192767179322799228639145134163058271005733637465670370555825458330852018753418637716564110042859592552933385037592519575815583462724714737066710807716983687792892406410537127278122175293598892261183585880652459225857283210454888359872059147462863710477194606946008771898727570693537764895525677339368326924858806728832803710437914269560138502642452135233343265692504918704675591714159467051926656445652272189482052370038707517572951251828210364619721108766630201155137116004707742788186811159874839371806715149007636661364003009710466462381032010693549549744381569565162181881373947097062250296819355604811087341625256394813040368389390215388313123750224664237220592212349359307769303312194921497551058992542959424444036601369642245855164109825920707745309329043404116078365180559913410770721959310227509957629965534959748902140736527428218539802084619200201880439006505268686505955294169899494408161713439094316212348375091927379720611884352895787441694405821045193558928864004695088698123833135651878831940464381872080310303608068879800466815594533646419266442184498231227262628563027463617210091914612441095685949229879430785470186675950028585324738473681784447054737091093698904165087196722440335394375877813188797206411038555924246517753374838808320971410337226428305950508688516820360270813193674550262714221532962580033405864710384047314825263554277491826966119052580553753418938525197758107937290679404679357033612009965692766550206624732978768428445525016082135330804675380978605253644989636275760233562351497056653343902720169755603418205856902944053704945623170250962865517651148249238073499378578474276396042514446890949415269222815388325317853678404990898060814650055084260034573331007068055764933259523468225286487601534157241250938445859736200550780667263204256396007991659511815320883111634039804785293909689154827947594096002977547405365958849079237149942178071925397752009194586820960086050990196062684229763145490999104579956922276068208979450808867270369552028298590470560686579987943569666177807689331513486708535305726717649123126016340065440911197587146099983485376864221487220373875554280569724860833929766233825737538146986997178184985226992328172195077863574365536643491702361577905313086044703171163503880215084100719800640757957633320672634380735464713505362680582098948345485315141416796279587901110374293093709974974791820486732136168844456748908268149699287593292725853550374358609262348935436668593135380121773138087969531376656009064020475105229903810405024289068500900915246386765202205190130900634766446145373778608648114820261660299326786077983344894177675446338757506301743683409507149056777993437659885457376422420244252486415448897013345488623104530052751285670005530546282534189078858298303444340461407867100939317805999327518992782793726482271422572170813080165090075835878513845528571153323006141623345466692777526306088100010161693539844569516392480909498122857005222132940141067762693210670549967761051335457911071868551607889529312800111278541293143152029973916919336215735241116142799042990399883967431867712864598541693034083370185771108010617615543615236449631498906972172214463562530599817942056883009928502887631478894282246723621602393438669784998429848344225805210369300385362349679941300730200713607710328152383242062618971845971415745371682830407344852869973908177697250579235262939555915119390841051115272456644316263481598772281362403746077549155211908334023620419314807840958585755592375178961611307652702564404416422011369815688846636964242220605750287478923586392112850412646034631769778159338874139642641776043085947498618884806912178248358990054734901420163242441346943203338914868387874953568164254964731142542579180935444323486767446640735202398288771986982914029601573928925114259278095851811272022596720286067734604457979835512905869400245624403034708650183561834836373236331055982214977215821137257183236156735438543842945860714582594260518228342296728594710054670648518912473120922069183526864766941277187716074862746272500706262163304734378944147286822881352558781374113350916221482324991818352088575035400726617358638888720354952889102709213647559292923429175139372735613847729843456720097516191905941051544239436719653602384048970257600765119089030695269198437426594330825962690040855729741924582133059494262478696668469874643055476461227158340691322343634423151679425609167785456178603138129081079136551307542456863849358132221656306800455299599400744786179677058625972969693041519302882423281516971063127860187327234454574880415760934196521566800565352177823612944303414503080423909142535535734128598579845072711659405061010898143595061846235129583492223502186525041382792734497079905580002896593055913400444227273878508372466454446516437201537651985508846664500916692461848299656417879016804746317209546330196844169709506628318811057242658323594517628481976870218367009263231586875026660136816540022674319012889912080868735774180729713972010605279705773800781145829559602559618419703347326694194557856516414881963813722559609381669541483980071903025279027940942383566581986108985978000145436601055152037368467356426324517898725907145001930805060232854631615031478495668847153823732248383526316577326620768847361151523615773864883555774706724431323968830599488235506792360132468717063916318233076084926405852437818544079788796323914714444288985492647020559504390627645247238324071986970526536138750095786377598864133785553592004350180573666666721881035172035567815023684745699272415103955032957072741752764692409006170729681221599018430865444977329227004454783133807739036842648096302314534384396642532467564942591515569675041253798150888340043924866902453770528168161044952125319674032747474676564909992886648111540067978326248382060251104274859865742200885601256157736948774856177972800169760643611534759958865581569637361072258124955751707896128779829334121527829375636561800596666111039577064593399166184347959161577941898413477113284292393787137678627346050864762892641535155719043349713071131270702419341261410268971110493850718165819490528454285133067087223961083491078905207111451405953185158515853767635206939987718379690058753315956316311749034746915777409277537639880184995760529249784787127648674649469415664633914478297753898233337576021087685788839610202151485394512299009288286941321193191579448088236182472702554217123623637875814086247084945125122005440106881678445917194209782894774673405901877729708939184814457840123226490664845836925615489027231536144054254199569087129274587785893940691715785298733429404850834967145135655114844172433832876813241918661210854706993016911318043767400926292318223148183394042618753569809727091120520014070586148371767971615120140622786377744621840552151281181898099992812022616656056046848298707081908082870955849221813175704587111027469713747717207300099900701527027987736969439700272298476588785477889471381615376308811044396331031954819538765168665990531019099404721180440882417666103814089185044219766617803273629694598180894067593093932098043111288145474983451286947703439189817803307905592886732656129036190457162823727850518949825855218969612926882632127953280734261448867082504796760365333722078261298650802223714750451141333891743997181639572260599025543760014281947167543675089196554987481409283211442686916653136094643860502988134477786692550424974775827544994103430310292283811118968997800129780431065350444292416918500359382233702209039002795342688246172038121143687507385440136221954415588278043317043704846949667335213585352654528359596221827992956054002140374177862464727267494963269532829593200109782061011815383431829589272047774545259773215528814296690160032063176086618514811456474153397393247988030216150297681956385388097497430845580971216134072772660566081284090516640048379419495531184702057661411278931002886534279952242477210856275396440713583598016358556264726046029817851659443990017401421398102412973475790041311343990411078058333438229510637292471112600836338755057509360373852942816283174814682123822789936248511998650283964461114996148622944769628306904930164502563598314178014652109039169425873857468093775961622872430728185195765765488688932351384354828906952687043099712879222131750366710645167464650709972205412913449723816360328293745810106701517512014846463987701318861958127596672404591291451592417930859313993449637264132840835232770951854816623108131712043026479968979705878411854661468409339575566020436131070914796783449955572668194132577194257683542911894041543126310824186081428877476388985660038413495665319167200976361262331616190849189071705821314589132783260637490905497981392649803450342781490887693336941783150138493995850223358349153118867621668509691425642192115316502232240990384345480392942705088007541113811962573229687608329292291157177241001002257589657038884622031545881380878126113688786984454148737819032564180641196183014272973042837639289588585250680896512346553004186865655967917060235003139971652496518747680211889468160506385959306146765708706308600327262878835033069277888028487279447064784960417701321945498780148741138846470140074837480334899071305406953227733579520585966520248404876007140625564240791127236923974321359986879512424140530841144586363677231624700798047139774016350102805243841521228951645977244854073966286086461893154219868426531771190330602299153923016445538893745091083599052117156965141297230963263142545577884234623038720205909240552733553685962151376374314848255778198270738566236197626918195535472833432184308466900076522195462813292018434076506281442229475366713624340281691091800826839395184868860809601275118581835907723833532004075170620769348898094514092338560183765746415066223939024424472300991203066621827324566707834168877214916451065278544933843427462883560116048300713266661837893661415396899600971672982900307111500047303102424259462647415940956033831971889543545768687243114009245809488005380564735244320235678988154580607178843795479024433776877710634281567381041136675243838775465823509539333466515464300273664923129670816887540812102204004070069727030431827520715939923294994935354449001874990144552202777174798431767502450095612372298735844803613095920502652594198536532553083542618230268690247898016802352775462203507799328693968654267154665421522114548514111262000582730744455542863893325155509957200182287306773835660222235042201256514484842805867538794368430993808452456109594125129580892182132144282870428241267320638910065519881738368950976573519408936778311689208571887741068267218635999656805344064032097181201820002698607770460622540255484248737529143085817505931112405900278576907886197754535112850140289373937814711688578715456441880856156264197560511348845809808695918768316067015124433295715051240884676815289565480369536360551837353930345633763837307733327144937238769531823134111396220461410747270621407038352707133991370740452281801657331975443445505906450216216307614137497446940395642928752860110320402772995324086459709849246402725512222692087528063786075657443192343504436761024946535849952977345362408739746279968502708864575222361169985866436104078958764518609203142371328205137029387472741085544382364976311245022584048773997170149256263680918165003359009322139467939595384982045025111937630948003214896006336056686555255009139537052595917637609375399456155813128084196234342739928912352039252704238863724092379294037390371811565511408821055944718438356151843068321257209548756974701762269230663763123077154689532439652324165239637292023619641606953867870434982423751362841730435941578660357745474173488092548381937542584746899248793934821992100510854798264626634936580338116170096207155180805299590305527422779595592091905631417873901256857241201195467962047843403003655797507545141912704235639543770071454088386809369673326909166920219671376851490661330511767943141611751125430047950676439976829133466862774388231322310578808019522077590941775607915435871359567519228320569861405859106445926723598144289782668818792073364160194933092779383121786323000148643761210445362521506844779812572811119364006067575504931812507976598462954079445551397590050905314043426637400395560905715625826151067965831259186814539493667567023676363639298683461978400148740226352353852317001632866957767216751256563400104831475992921370430408903722706600808964280317667286798650569770105410324050027542357845256845702240300993151755218980435562513768690100312152038222771874944600880268394946130474255192700250793809613543561245007975381276379733476577990170339351066399207045702875389055241666492058635382630608162911059388918931264055989377357264506099205323805230403647805953192956958149075040936357834053661887261131258496843245760607377281543224178966252672596467648025493000142722425422260325416944406451127284038136828123076021288987400289917335145380323679846148531664299701324735364644469384773373871340872870309568388782453404578975852374259370894262732010658610847504762501914523813459226927628889843169504819633598676417371539983803751471758101981300096286319552408251791405210154540119527170614896677282876990024510854128135788040417117247216940590429673561179386367297632007184616143089297776388500673282365145669497849416090016378597616703916760384136563698930920788283391474029838327098902003058347229771592548890229247273380304808506856785896068961632795731363285679131019001814674973320165551461975307888983922503735308935922652723148429153114438491304252576435362154978634850321232527132071028918691368898430660770228098347090503922695620518963084705366839968586425881016948736900537823153689672462682705828817195334718936095972312601606106961338800148965079299874721241681976688912830330081890930845447792906630777867897685945515832447422208056018890530066249525740463405294780547796128154439416412168777519805689328542201085540124544819860786464150300092844491272949671459470211061420317084409070463974389246478435647799039100899234063197695436582425572857701832101536278960430856598123179711273433656031502951755224663676040082431241793762246521809017141699098984205727568039120635498892928770654216156933582764745659826834980439042859676967405867859566279804806282672379801307263554297392749621495316574268940394939725774179003517263805642988039603589052639978258503356296287382784606913465935542377300948015496401042461234439260741259175426668498399263836127726350540289490273286470613683729747872753747889689646072149367017550396274477434327487827751553953213858471377295631902972665157470695856564552991540851104908235713607025734647748650420651700039622059946791955170003233023812589158755983812439225630338115081910008088029312651418540316650423461982833377537335687606390095998793052227041297065278120534222893118515336469217807178523496769932317749228111160824938639464455212830135841615311110187670744747025592111524056273182546376409502543901531907520405872234007588605730065263268084635279859313039076928928429661821262046174616687760523174277318268435933739425417898587997846263992019950196323055270195678501063236703497549920869315637524587353740677639213974856047933299867854958871168942224614995402764084013361738441338666376098430292765816268837673042179735110716539949125149642796212637033298208495117694684691729429999726483194656152389325725371613916488365710451192962242472540663850116264315397114325523356500660924791471103758504105134038471008779751871223870610165572165845524101103710986432826267530103284890111525009865193929031875870570354369397175430624483104835539334394347391277141761894614291267856176890499330303531099756620795927615597193863588552795963575946807272893514848771684443641321341713871621814697705374880850857174170712814800643060320959077076003370783718106262085803603317907075849133218252356209694575909685739597023393709904378691375743712150456493238789780504007516528278844705329938010397970819999771166844256145603770969412997657873994515931705452486360924088052681866378470655490139666147868861855699014163752825063506811989556654050556256496707770130838424651073867863663530231550882508678322540802606582890628625962412287683959062579662585630514929115235977176522025863125420885281229227226585084233370410076980543731862962176201561123934544094353139700701225536088729903202453461264151614589816724333264991323312811704576188678834839273508818168784430558576912288222579154954440190355110610076153444019895474267329529064469748469982627574128276336825363239546797161726076819656761528217083319276960616737475907075834184768575944278516238900512302822850808147453909982472372065464824296831697368974945889308508173655849866736134547896347131510106772812233998758524120298702364767067366160881533803605881680356803998461544650142486290637032995838335649461992017594959199731254528141839247044485166747489153191065186245038456039717999371424970601450365059704079856004677960692490755300206321312373408307256477645061320084273812846927206297278076725892845247053534035233342364908106936198162666749520175194495076137713030781604071760219103058330901847606828824670418203664331378005838135250890407941633204624134135693690703824369201313714981017356553262135537944329715770609846195772296654641028784400972432494015258319623551243919523170854033591203329017471831622728550450085709229470747574044943906328799357648142627117896755033463766475761683825180911356427992930337328949808603694855347747061031002980074112877733930848511316259331864385984010184915960339473681507085452340444123174406255382298279533017633813957382512255526847553088313285708508031793580534632715070949459145866341126983266492796020837027583302637000026574787340799276360278326368769604439745527547592833503265494820755599610634634270385591200650649801825453824015214922083574328435408642180644980666509684704092212457045272156499725922845805013187994124481220030503438118692321680163466113437778987647392746788289396918615625062592532797508132851396053159151239740427319180634677341644009345205850918251860516153402010314297641364839599953531772474666323032788493849787034259703149384327488218214346406933951014293774547047355213024083824355996123049848673949963418903744577752879978840540725055162430054128767809477428732578683444949545201822281173884750187703814397739662000291325919922165354823972685207934451783086509749865210700430361609495090184029678054294589585483720288095083921335008911765195058050766401395800933982154394343620449599633060543556844905559759959596456416405492111168997291258608909502690607270234339344558884656566144107043492777972106616210638373791807125572966063363847957959276524325497547559481959074733285934739081463370207089009091677492095484279048250857495268745106795526291693427173997748378171793322587952552568932997293852460715477824520729711140230842952993872325314432337068878419182652454856348358484004065929364092240885527264700635143379332833206799285920047832713090213674584574298686057546344233756273023870586543733890418718632197792686571604085370583078571436555661325921593546936687696559708923259696524977513752002662389823568388456526392074529877630331777959319443169181111557839741391498479270419807646835639834557898619462441655732227621672682981826000834049199716178925709002586347340401765717285776039558807581612075658002521345753355547680127381281662756966905222531976448878986358748152316275788629121137178227491725817167632926173832962958897387802626781562620208575726065964153499946223141297181287404857053809995737454519829919675943997064569113758120977985504307686651446441972194464517484168342067839813751642253867051813525263946869286057398729165700316946368262540349303730331963673101987747570185464376741715815410188800913739622321606045682482534094829213980354299386091998189702084346216246103726687260870364081965448710100207742209916617842684556110493533589047266026456839648867713652388124280325315132773596164489505509639754991970874505632662538149705534141431554138854131955159013185263304113193236701102554514313807815642971768794120764426673191403724469320104244391963540877869720966310594867627432482659860019305872505897646485687884410543757958119212739783447441625895090850513552482036193285878711773325678428726976961817886464694723525778152721004823735614000219422930752957397862824357025604952774219562145219814669964178497044454587549977814012738121750401786992629650000980052635001704524412895791239840371873596104706656259028145196242782692382544655484700175426960184122459764845379467732599479697065447812228046246883549414388147512497595045944819569072572288308627275936923814523557949109148777468517961065068933212450124382385359520483751084599197986283865707626167430624294978316566243625603130533759032465429186480518568282852614461149027209027007714150849351982273974062367905547770891823470904842043796868387564321779573636973129833152650128054732099648023336855391616915479904874586179071479080389914226318915637277163184660264254422089433857585801193476975426737317583085857139871714747748226775057283847116906980671075561867251065144325734440046357457931533489097364698250554694153981889594304179818217975029614419017545470708959094692300220505446731217275117157708207992143574367516636754412794141488128413979125378053678837984960409235896903077479205029192427728563158077102838506075439062631756929959980090024632050075579138345089231737720062788126457332606746857836764657565058190524476778501130926364889781848512328134662444422723495636221855392521597825081413422717189578733096196515449588045127371307601158911354593774094914141215247681679363095067465758144440781960670037441823608564321740664195058649497354793885782155420362066351700140805736638412225168032233811913841775591891941453509451450420972678525270286354283795851803570226141408229315025248030205195850249801953853389779983053096962556627529189622434194831643556755421039346943463907921033617487511984641376931145845860665157301949130379163438242138000783615870206351180082110916856180981769060823127603880988835502482994582540015891557767750667276360396629727080285640471927390643853142769801089082865119516172284430340916905240521944302300535299001809473422485156817779106335272637287573990533861005487859137673960571263219710735152482664772452292917229572594571033663430546741041957959938310088330585875927369045191670012096992542678235341749083825949019091376276327626295719680934999591818352511236298668113247443964626514015364058118361552685522014823433197197278338282214249121471775204471361674771474672508357338869280446539324638467048868390886820805732484559788788091420118649981314104882284282392932812478949037125609498172272929832539288927150524217141695934979319025881904445421253093621033840640289452265356537331811251886963464334161144920842424576141425942141565566920839840918829597758225665265352874834297401220507435633231763905251852538702912373113013855119687899650325731592838464308289616772514246223954088612625583430499805383766757213685324671936528289529455569456973418633706669001082870204219711622295016298923207237425274010320406153627876897589815520986219765443021168354404956359524628823946473925971479784399502901659637398969029606608883369651970535826511239563595615986008829337411633767564048623238468594181783619089587193503123288422181824998643250524863411474651974510409585571933757066978350174214811318301352404635765807526653506289589477515655023849289214411267355095817735550440300120340486468235818821162607077991551767459365166299756538951462321743105546419769543531442900226297735362842276176879048899690979302281540127459868343072745320051446809373551571745509565565285922525744494588374695338113912102615178390537875159258834085931324490093793934896653358450533344659990675150149074429130805729243424026487330322885995908344234346149800967650451537537224094002342312079237121977625881853083264134923569222714007870864175062554737315889459694107230093469854970604479706412624066614325104178908044978560376184597284990684835140551425367035308306631262188219478509935786381425155512939608936557184802571535055822326375336973710080286094632365746166802695118952552495189923244832207513415475124274042512525027760336437754304016159937394519185834395042116172420076289774367491151517798633479652150011127630595701595004701216165509521822293931964193033644540662731033298725398617686465622612062791644539491772874438393442939464192336359415979138422044653597604278665182212955123212930075870095570837619446799480234044576039605399918594138733241526664204288857456070598303280651703482682121578716291653460847333018422221787118161453365112688508185421393474465557431595461029000659855856600083234124073629999053779239823566066548349420406382050397551610988205393073377912745845384551550230144585883361945649853488431611894396614825429968750555811947706641911193056361496355343810941978233084988957260151713513334929583203312890413083895304290303752736001018686672573644799126145662626536408494299744015766040236156464053490578174957734947724290233729465991634417110994265545384126263054072506407920060666259394790057983665015102011800359484051793138770351180088271485731210413229327799956506554357168560717098323110524984457915728625009419418534014433657170751175568394070041180520705539516296239114356625483923147502097207705306874535596909117644714426347188886266952584113902525749477542646008335417923414198987615827568380605570654462716196835703155712573741917717389336989379645051347116709172494172212918729088448422668935596077196788350588121282945374930373951499526001017456915431935430694088618571820779645288422829652302013678746495879945703325548450033004461634445663858847617086972663372249271736789010564119852545037239924456804066991928390657974182760313230105388325459313055230964230170991575713736626393347691918565061825066957743041865610494181215489322363337438003825747008260607025913334890390692182825325955678595545396811771142036567368162857140707146129565489341738143898728761752098236332753286694066905111341723269729056500423508701149687050856716085412512394110924625590571084229299816561149323358934241790117239633416108595514509822858119984140123034532748278655553059095515828743116819677061049609136516702893512812935243598085644460657325780292620504881064600511430883192632173376643627074005096630760268562199925482632529719328826503298942153228370034988495300203395534363564852592110943263633843830733124785070885513718536431580877265230575421546360869633653057175821110048425022410628967103037271515726093426323385298178688220642136939156425855591733148795809652242392703327931105886938888993573166872587298439480509609307916789503824361080671699475818321095892107918706359208311853209675545703683363044473977245314663444328033478561872820171855023747832476409835759653400256544640604662030690355970356743179397414836231296683107984621408509210831795423373340386480087422097169616436881535095577975798321363319428270611435393258636148401317988793091987128386272878260204102183402954001751993475535756564214050207602846831474290493331885753091742890454732156520634757605388428896300032328840336413312594747397226275034229423311186093081248656672975004846648813102366260152256985586429589564179860782707223010146695709274151188285428110834838282881527611665295341637484668631032074464790261742893486266851468868547154689158764819190828534432866587610122329539221163148397936534791645718670922018584002480683473569694952395991605274060230003501606760525133744696293291573913289034258963554161110274658765978968146673738243072176606474786194975396264527669583240906048504453720684005731194124528926347421770233127983955785402412209674522726926688812204752849977704587504335843636224494768287392768298543473776353752620968363590252238500669007883284366203588939640624098468657901549356094964135379385825178489892431974055188927941101942951785047351585627135419732742495486032580748761243867215712313684226060176198421550054087005139530616803448821838815297849590586661350777240064551863550474185451242876516475901407410892592712877270970193522301232698921748832061239615483337662111180598276125467110508222252571472457571705125583784497276873544411357285531494944189416387454662251076494386206968839921326740319654476032759186834454829186028497051104745916928547982887629927330837822629262908528912497129814141747806582967508405282749680490967382667125003623302059162197138629918678648483450262250684208399619977753104243920216298502179607069110221009014366974960217754467638166161287801443537534968276002452979208731579687354813803572263442445337945649705687713601329136288604578091561143234052067323395431911441905263232508376532859010790185839145311380702878843755486647779068787322428292562723858272061773427861394873657839778240892133038082466673817462777950335304817769388109665798259244314445569127205668876249317394421737818101823243296668890919039183710104254965128134345346526361952640028045213591858375957392529306763120080877504068315428223339748219080925165352038429468465014269400307644280797607059045900410852676995915648632667313058567083430974484957280034779313038566581776580988865738404291159386952656242478162708260784773577147394938327217372997801197033844201789005683844352824923934838064419139568106520573444084912392425815218963469285493806688565351322007811736754364502785981056459869494182398575581768059752814674264816444328863190306163732588020827643706664030573412226566101301763295362157140493529664804893193876191984232781255949990746544144669961184161188084970341120512112076712487426362610373096847613156888719322368382870343281555371085155689905955124361443856494676616065147735912611670323823472371042229683190125919809459909760978068858499762535641368964042771405669603043602829750192010151858874518337706330964455364129288029158269934072474719471674705497742487286334577863413103794269917497573644649745119447835670730304771704354553812580337157646658443870669103069088628046003937276501068588742183739307471378808927310079794173821248477191533309566857377130646475469200020249317592158433217859988759467657149480642997710679634359177851675168982705459432297792614708498938864836537627664720791042710339845105169645204742712377044807662170022985426738120617778447561668340528958756184133821812172389268754869693629190235472874395973536083376644083980312727763713155641979754703477259173591159531265446346506037411634915801697658539740811999227848896424093751533578364767429441680100311612548192252191215769400868658002516946587368550316753784398162425301008625936249967489853213352812320125758952784388957130745252245856586087429376938397467013331098813844813223857307539510782601344177403744777804530417136289252008054476804215711747828013795112120694859871471641714118656855806034169074216012253480197487278223227762869009339660944513397280331515814755528374488281204904723518717911570901870415449641369602061071856811018807288413001668822377083013561613765116247002746228387358426449130713485543490333506473147866485886199590159430495008356795439229098340836960138008768442155483014840847342440402422047202220527586128317862068021318483155190659226865886573319841627449748720686210265784808175579430073683327896330528685793669908953175669612371272132016896554425188024490263881495695387767455716146364354357213603669228173848577677899373739074635518638208213076580394191369759399412608363236827517007607311590939133937757173952474103560090634918492638840193081400861170035272045347971656204555621667844174290683910140646268088831477981812169598199128138334937332138368884399559022729363177038118886695630026859144734184734579236402486681565013385962623086513847933729084187314427314520740066963788759578467591307414358516200623080954493625559958578886251934354210227858619270070971999051956394959098019239913594862687950593191496248592628718109300809926758676090713567434494013346442178493435247207590590873551828595533067992826278278809619175645846171611186652877068265225565215994081273793637461568823658807919063933668185356579060482307980144024553498523801200540092127184982823874484858836216814808385263288045718237627257266175851600014818300044427322967404061203986470316377141036445637583436159523461750908864619864763676649505361756771343948211805147415564361604924968777458725979307252387956785568834870818655948706134859384465262300825383978171015643092834527654972849572919706718940750005890505392827055898368039152832723648602926249472826081879633338945240057433562668044234827399250465681379323564282966249722252857768404778995945784985209922874691978997704073745462101304880594244203369255408074704563543416816349364373596829496215198510850444664348256918694183760653233091490945145184753974945488450685942226841878082327641649384892593781722839599841929946897336788736104864550871043701928646145118664682089829927631346669810094022088181501357268648207386858570652010858284404585242951910701661892699902363379822451675841669268789665354088045623648241646353025620427355940449571388833281308723140894804044782594891912345014874581337649404010488422081603394919023496595228298712188608174178065053308926699639904605109905984789786143073304655596850578261904981056453978436363086343857808895290325830300100393303617260086624179943128728651744807376697651086475526367644981622048782994635899350371236000360022592849352332709358163412098209568915858277727511324746964022130369455594661874646994530082149259315673487155161514725373287469857463255089331137223179443346718454547792946957640165489178838612071487069255594315403636569810877524764904119719183688974771574975514418175017528208266333770856912036683518405056691131486393332963975157525577912266997904069387904307716129928447925642053463408681538587669249134216459067528859486286730249811912441103044461961668836549236464291550186840543685860761265472092554457204475304394046640970645448743141077267777721347590575469919329027741658211262576298163988179959996842875346032527833707162578014553677550186640856796935407932503231850015751449053693367886358259911544120071446485371393834219408065030271383744248320335397655892398616512052071826077403297860111964355822101318197814026868404950395639018363933865609104019344776585567872821590108095655771047317331725132974343493485451197018250878929440546227266807906987577935132944054503944494466646770702064758709590658830557855236512827535084636989227212645817542610359410672585229750050831613951669682437231940524981706418328105165225304658596980569832003236083479354737292015835855808882268923867590092155401218922869222478157612967675447301721094663823661814198485556852121510572289378074994093801662830701015959983902354685182181935618414757865921121622419474500094286788573485402880030922303026067526937353667677945090387044533447778947762198717006189487075211311631948246030768413132899242747361180487310920056628280808262242872639884246444936576065912297581962212125668669666159574873913396833084066532782419728812262180448430092111718852644181641134225225735929017039792319076100791731580515100174695786964421979459560207594416172922196198310329192072606534612721478597426743450247925403506805308595887168051295734722497929484398920524783840678409797056282728375622254014999797189606446614546489209080453511436644541605941450473710139923080064302436115648925842879670096574866896944540108953057917210984697501605087724581698158953287330817027476194836716193015570991327560657597692584870813133896912390732589661025625772734054051417272953694508504297312515768282409842527940695214591836489722332412123554734964208827415092167226268366907511265968401161215085183614403172495624683247316958142536524432820230833395882066880453202607896650184863894750038976967958914927720779315512068256637762454170934809776714848541571069603433312419819514652137727486707919806325524985319242425663472033146291095967868818395502945937602769783223199338765873915355108524151892889264570034511381470729790658232305941951498139782047047456857159944941421471880780854200610156052601803583471987224289564401736359448230502125182332984546749810431454072667403067235606556388398411752337204724363440009861352811260270817770520039563758614325946468215457659454849766710916767245456821232150207411243984662069235620787284001872607295749603992034184090515121825153734559429075075148938386117382457114135878798134773992638679196580568717639543843626688702325900829046719115795935842343079383112386573521083015479336508402466525704327461502324199087889114295036810524951413249025462139808787461462320478734602684261500729901419077756518023840939817855301609208689374850728976036950498724668703750877781537644002859494636265845187925129917691338166532047419323938271235409365775773298132521356358015200480508374668998917428033368837783134877855378361389050616281405610667397067651468590725893136461548944968773626415095325081017375905327537471019192170403558099989801706132873957778138238384844661553857236931871999252364190567780884991289370639689359810306340861934321380981844891652415371064607997793364506128253253828135566831150079983419223278703506180473417967652220782724872439299461242619559640252374362961923896357028524884076429811836480105979179645972102051377867881299122743232536647881763944637661361473373264966057880603301423421229787755174235606777010423714889678946655755482583212896486016202311339832258479783713620873796196383227337278722810918029904343434036190257337229567079284880105245075099062966690955229841386763343511272273498341404157823339147488382185203776582631412107776820492314629349581768614001243403968666278035061027676842693204430821236597740102312918253650149254393126490647723992501186788972308621337117278900387384169595340563183235649490675985482098571466196660102929455989138845995554005101392312006896075800507005678699543052244398621220163509196928919451233466119183930233860660402620808128276455523583395179320111289655613851787695180110122694576275947201010544780903732270201903245399821682358334747893932934180845081844694665667234045609573469138526895292646376333829538704588906948693745209485819935523698303742159551577998297317836668744313749713018388311829565779753867394153538919423446594226681627342366517975350716989632313198279410534309396808951987520864629266828735801747388484062411236878100653564694107013602851931962226377444516622563814780585352956005554110798551808168178534302590795672568982103145769065883781500538315500218714801052418856750371916152455491642020932392366400072686467337231766172309759475082847192488458108126719241346448181739378475045651178322055060158543057910574620677673817943950526324932954328589272451812756151308127052319068815426774540196605040058639919339039514541791484309654423342870517487997932122047435097171172396877955954375796136047680431613779173458225255950165313168700356711873054462657166662852116297358813516124788625261182617324172839110576014909224458997108432226113060538679389656993617756016222625269654375536453545746221501151522151618977008071132910701408533112299255994498487297937030156504609695445921482569292937015577231506114253711561033505081228152784776049413692466365223782862467304385666987790853743903841207100003874857189076098347555684740812149754688614862585756820694887323808011335414451536492973509167075587690263801209214519247584902261690826451882156695819057018960197611374804184179053991665721208222037049278508800960840233551868797917276137689851563164640757025907624277322398138643106444460019769535245528049912320963298155314848882211789399298939532326363572854273534967972508369252115927231297638409425163929579503397644926740220699545436482980307786795321909285429967371034225957438377109542547800117501958087930286298375308298020426552171729394395047458702160219682125476399814690822538467306513487321398857973901910622840318590249176339463062890823697651846828350321730298268242252486204381797568583730203377538206025919773727319389558401947170118150562397833494889977217513060106799604121080841952773232663327079652220961685980974102597567676695765109621034614278179802672953743555356002358497194567077261991764368436379198349826760109877960970931113857991653201599575231645659476433126203485029146295334220139173639795561192307900095352853575264853188423677969922538068371034019488966835800514966504415823381717351683724488486795618738621265798791037472845348644379720633826480663198880972629478527480779459898244999023098514302254162505130717658884902430411275793375712652734480721160989540853833705419712959580481041769323825350771787197833383664486197557834678845581359758084852031702233070714845284738955112861940477738258144615094541725784803728896829519935648565267953638556884954629176457739897248370309656938252436026462821112296086491445395966640300364724850781507755448327535301402035319978564782758575284624159903819571673141390214299755494530007081064492071408248979458125518498848787679856887044411227014316643208945119370384114712794752027719611205102552338402653440936123724844209863444402162626073369080404436901944141876016516170154946019562561069527685018095669992280912496803373817451294100288818471962156969856591750216449618546184687167211481468170810847421861974071435386973016821170759615521378810592706604368303992580223340269852409557562552716528410683476361940191477580086956146227137764338576150494763086400818181041644344185218069949679379811470109671259635835020412933728353475658522827640093277658223992784444612948039572503334052483592665196324212359167509435134434881068100063465052252668306113395213070089540218937981959097320798549839104292826999739945711974434871258515469225247056917728123937900836514775184399343570110382195968465023953055343290784483709454841006225374064284640697767002332523366139853611779369628117139487898757597134301542508119644661302339544041745043312775791460962638635337725103415439370507653946425284208857947888026667672240341149058077241331649875443997958096469157278383599401698547113075144475029208929555108415764519930225098186506799385713689910854522993885875711692958368008214036414275738192539964498163320359500823287476544874307559626434851104966704710894682577603711721117410072076546114663057244228723651636958946522963220071536606390176677771814212098122589158640075491655231070311780917723577950573715054177682814391199890456284765434322404440377272220412629777290306882803904172600816566993128083191539855519930271612583287674100519778713680677323999153064960216995196466708489695115426799324641078278748700074704682684047043516069805659892390780494056039354869085618842974686339175880702133441759465996190939556349069323298319784421747596516557898655394407472776726218172287968786690278072238471559116173547129588894841301553871604972256466981479404672858168673301567549074989457656796930637985226187195213207647767542106989628323043806839296356858651894891603427089972107756285049427899789578315721327904137863869300798764098050883224526995350947017989222896822635675932727901504188618639229686412793891406716971155507652201340273056749523278687684657810841389052223016974057128175856974665048041945953369380613827143199283055198990517745562352429767778746528867408690461436415484159728226515720447543475064281632913642747295245609667154665881199056874808335813352250606075739760412789302308566416389644300067276522689702296501887461051615975396444451770403074060600032742039947074212578372125013326874278564392404718584242300078534536880530196802550118070133275157482077467486143657148359363382331408358052197645914052581176311798712284406385061249033291909044667408806820160551552691863217256551238431328243749787035159603526288005849054656546061549438192708256872953273440112232539960523362207850460261463137352155735465516200718788479381266286060645521524298270478579267766421524644251030100806013343682236793683091063472640215393068975792083130375240965717030190074540844024199920511894099084226177123660499382173800599238182088698818652150248343459753849582678754778433538184529498897960889584395297789964145424970942505706705093676478997780165907090560428545144701755076100515434871326617738367216354079692481824844657685706772833518479148776923483083311465394860513513789416262553981015116200782661547323297157436338230468679354906816769743936482186154705884759419410922685164727658791437740217307178587704641577342681076441324331627702346912884108382675611017017609667332769708757179984349334786416613868059782274406825871330444424922292490372224141526271087618594181076800331088447462018757873106024078438128776877573800122331041267776966080913632165122142640153989020463705661113683335767865402816618624162683596708327530677716742982666606827215110542432989582627456774269303422632515190016227652413293169530620257308682082359580944901990632790503276641699047533468170716355066260425335863043463560684953893543336375692150214351734247698105758314991873938067115392364136876233211990563978595134039150879342304251674250494266597093036459197138345964131314143567612610827979274868472506283971704723638396870394203016767343487962888845413756855282838577136434098968922051136598133181136060777949596187659366799382915713855219640378866106605930417335713241148083206377294447981782670801500293651164282621240646996629327189450913339546432404476356472701863663758108274026477675988885546589573759410563841028798155659915471631187443408250295250943717299408780492717906134965515849698159576462611446651898214266892135261410777107516536422091659851467419643676898827856759334698232954588532700602704745342649744541816977682905696422219544580072295544804349245632137849626650450605108865944953193659763562945520790001256805290320306741811081035546568894569180765930050686713191453425825195357680003628589660061889917555656515169912640744302684314457016345410442018584991929844001202050590569035786611362792063228263137400823720890289506259325968992335475136234653533009495326374114344562253235095601148372551001027329223959323504704072166812825945623594758334254234489212569095055825098617066903802255036698091216660175861436158886498603612172417224128989992930378025310086702280950439809871406352942722180045009728156493890651850170815351511034550686276705269704282162011742432067438751648610647349642292519977642451565630695478539817441707535399744153336856082442737149792303388105393682304267985538223446957508025850977522178318780753737592105323964513744664052912131466567361872839452411437126649314263686261063739529057546658418678347762086116650214736513693997208741806381254394288988840506992333798932806827322554022710016415206648868994144086183698350939567992715988001391729883160893148150998489344725575823549430628915316883694451910095160790621992572649143579196232140851196590860575317178987372485207333618156661266582692757582037181899063052909593266244913867488002206112667122303192900573178014167479539081922223916172194307714465116206045908404327242045873209581842125227388025751518028846937688571812878187211013517678622994253388532156927904525029796967495478851179292167844286214849451224215129172400797683057847876851622841986184271893411603802794746205790765629968257714254757574655294016498986431540273335832404751764046469919377964769755258860555194966296396560816175442243248998141683845070155842908460530311551308382267268577059520026786273327023465945307864598618677923367607186879031375409852409272079222811626439387431545150627976988787795809034468229683222762688100626860499818568065120683534972734120119315440410575115202872215888670847176079946626450706859448095253758108097491836837439705402373515432343861412854081574870137942455780445235742122076327112670692349440993635719340108292366113248450419520466063540709368239997957025649806546742297995008925546676573949245092777424044667349729322639408025663888112275531657811281586414957255140167722943317350668339896522807209892539173405412052194113023663425114659892641161032920896589730137159049393795152527354459703444711975199095772164299411598871115313724572798798737708702229687713839058796555490945163498626530540399579280229955785297376551307446129809269621646483226859901004134318306091854976876812573292029654252603738394488951620803283287783574919404895991045683571649557563084319701329457777589315739099924101221633211716390818335992972885252006300170559785937312836253665515992301475640453959117876121020404612159088382387780582673756408112704858976639293430105648653351541440419622860176263014199184709518911432688352979694775079010619857429479925448818196244303090015407086136850674550423707674189011970586421099680661971029929461057342777847800289117549885590829310721221779778336835144287336359686005622906991422442414613947794091379151599188155013832352110960724768814346591148981270475051455872539625020992544214069966868616943685733984461212113112710483620609316338121625105193391612196865293233584400234531163638606974868954732530109077059969702301284335798797339258149807675394543810087584752730292750921069708658933627944823563913808479738088494429376550113767476181282246905670648065365451237615324689995285847409646071907103625832107114699450212160317606708139681452477205508121425968565392403687718990760604440233031346399425723338094082059542712664622522409320562158986928380329342695157237536476600396827150241983607748702629700518602811445721326275202512175925814605808647830989212790505395710889655706814001649984678970952897382572149966867159665866013427123418171549729431936238237196693606760919062370379636004889020092109838974779309188859963335766213909744191286924073700153470950059958436477670526064625920918397559216686596224010733563996218907847533602061382492013424887503162643002979763576192293813108503418290665431541386384669810261501967279783900303208672292513103718935612377718037855252196504823088167654404041057814021440190647794846762873607357154197496731144618392756155949401174183825838451530372542664728923579220838233353520996066741000318455636670149786708618772438204905500720820392478143630393397216767825957680268634243112443831895902886145590090348728896416089746431586619616225039999020115953142927088750015239073395002266073702939397510752596753940031609391795770379809601289265095837572371737778351275235838364093916907653581232895374756900346995580496790034410004939095992438800581295645924101709973344367244143437702158996879729176756233262901226623178515820307264192003024977886791917691403858555804644341697480956178147541359227274462661330062469707055089311088851948303403589754976784482848380243600801949190992409969166710856718768593463906171590980570706702701298158863765548663714247076032603448811109806974952809176609320398472293132284368291481113035726573755967325204037637107237084739310758027819534613401387631941137995934586161669716386446716607757074234784824346556610348887596078195945960764101876111745110132036958897093397822254923960943258697498449484976650211226064247837600788933938870761954973172402142544220465715360277393839535566639112471068317809288490918056926627185836388905919710142255099682834376866234524040435700501241958507044284571288938511843918080024821708230431025011580715238599089231279187483523726997516855109706972354127265310751956220618324318465154669433603428599575144252056721881416140332970115736174266800715145268738737859760249190171330107154625716186223778171963011905916093428342469362003455757750142860541772017969969499803457480059810546450437011611915749688957794717297547262714080245471359870421441140259272589367666425910554563741395613990138180151073916565135423719371694930074175067694254163357622690080089882520238380125078973380771077809861923119069923080988104102648769577215161821678849058834225950410261820331985388596595158437614756446929385881653983917339412008513625845917261470815676974132227834989942430597922608418984632430919505710039667503049020874791066201492490807223191538921932340852783461702436933305835793257547457455949364479645317984222196059053295528642335100594341433356542583775164481876495954659635974629658223585721459636646814398175144086438941155873213927051163372769889376502710707625970394446780285823928698222526807386004319459283870909341809130618573360008187717184272938471821179609392436539730660332468116585228902059278150358397774902100316279470084547074899322233106818155904112257636943274653577210042960432838060316999335899997056228425322648418878973679624023673360107584206519035608503089663143040158777971171430032958861475346111058895062476278282157252955447373927966697633999708867984947468719660449157005295771321159956579640428461679606479804405231019756363266784503841957549446691052226570558287224142209445196319156583584361396254547378431196992088086321605711837706110830550610227253940929310802740213075806371099026710202938284414395201025363510472852502289354623116858799316330927645413477977321458379561409090686618433102615990440418426404554565704181066342240223479967247630169750675138565455512312689486126214202250952026444515691597500694082920761942361729229939480114305947348464402225081096257888822147798711124069136415556358082881225200203136682289484830856327906127680730711813140708021213876399727573690294785248632509659312542968920062533970780333652811125121705010579052816664353704641704665524771617581688102956326967108570552674445186438441429617091282088040945487825226852190721898557155783693779349334045285959821029579434055075837295362024129940862459099344581831422966575918983401579177034897602905710584099746474106295797584899413597876165250991888429650934076234648131832467925829497908652313982817577690133275427850494395413025117902522033456142833247516350103111947836624555048960643487381713860578142958546710944510275330909921871116576278791552150012426639243983676735929419306291091980149016722798753407772471163761879757784075791476013984289399446975686756729933660950708751644312606057426060567786703042485541282714401821904431907647051700494439902860468647850463059135302119773253064681942278232505709395705712425980492163981663464621307188157842447353667128677016303983589248930612995241871886381381797229320881389618308757449063775438686506999716872835193178853326509489897067802953528467827807203523981719670287954904226702784102240734399918299944830007812318701360619591861384346186853495025515266881796886851541999355503342373947742466568472949471350612006597330960898859005918474283957336106618562332060534910508686898641332779880744226365187393541121520601442280166492034315302459110660642117776704153300985054836118753151264813598913638882288492227484395532859164634304712996973781958658441565127609895147383613179214267927313072925348418472928224494524043188655674287284466212368277715126057956850434437196289198249516909464934879052495821082174373832398124892579336027410032643465086057222200653227487583539114459805010506810541373390996949035395559001660750901842279407982381347091503030575746520065738540398925231564060021346299682697509671819528376316368652868262655523819234573182415784968060555435279595093669331719908638310195462490556522430982739837035869953696196267300841301050856043031523408097751967622017726867652998805231688112276395473964527159235683751642456803871818012541157282197021232656968909374481195190126137605826397739071718875478591275968493997810613977407957619069849329008416289912975129602772390951431477796360825567791132256163083032785463160497428841620102722840477320282826303401070242416947342063170435509681724043930596276441685787657429192626986845226615579701120439211376299782874003179578849247655929881468035796016938396578742971988890032448588226718316768099871234089447166219821759897003099431688978282515608543615791191769174411575781007874049580090160546513851806987109574925243564427699510179988875206515399843931299175692408952530944127787897235456587572958408624195725759259600658940006047692882508148107202317126387450755741279879921513694163497643499638026643792614641879378185697334169750816786013023786752334150204357671706024090547672828016067660577677175720705599105453962731173668532021763136606658717411691064902801143153820207880030618216743198602259378788951923213568992007500421379315981679461219103542004628899742019028507987939408042562989922974577285122534231232737711130858661789952276481066052954679620550748989525450858350187808270726026032716822113216676916435946415823870558981716951676235089774541408081228400921295873302065423810820194385146216061470369948245796312546731039563419255371158068253084679054648229483025858321901829537399720244071753647133772631760927847947130896005638195201150289603278433718579509790600707391943672050068729599526838086267680722526149553066002569971073916527369627039077002326265772528300112908650110944580798941777666225991005891408758678901619550053261526832403707479122020870319738541010097811168725753814460481742038129736793151575863781808994267778969951828578397241409109618132743800875954657453387892936592764325404529500530215443083946269188697764679735820183459507799439974065966710045529169621278504458554260349711825876420715405011902261275636143147309394499055923051051453189634806588056977100474641317971283526505041801980906777539670885516338774823197280510280919086718312442402076171181361635357518258098143664064116232952333340914970959324304827368791678260583802470011915112374092557829218072243273461015419278185779128331737540617895877385792470094566067437107388187650708643617439509616942366161028701152199583951733976462330047813577751020757954020725070833826439067169411549168903609156624214946225586161476254189993894180735263814977298751242514016889129577385576919215340371649118047534023659479312890188044115572486217930746934512016309848083642171924027846522156847677695091467480990419282555599727914979701883047924691950642654812942166536082773635663992311089710378104305148566269129938552298963825215465570387171490568563557308450857802965122475013888696836786614649986239958491095413052076474958810890769625283556350411649882034677449525777247419330992498094552646677041497457700829019986186636433069301697425042667158506996865712042983200237710206780552721096078505853456983104152832934786852644621865638591871194727098229358531797587107983633841090890824533434706173281777501416767219386842485646067470355742506214068642619755635204542369471505005117896454611300183723681587559567559010159611178865290654142073801149353632419953393295272452214438339565042784766054366013361083872628450404959325890180110649986330671539910382192333422196154130053726301542133721017849352868967008141631097499733607494562823978612050936153293991956863247980894920531065474809039400557572290066717385402526842818065875718057540868031317986270385337730102790665444780621128104660556882192317267317365167923325833793550881794976547494861882855172873956344365268366833357160079717383954852182530973703259452391687010878664444951880380577092890133518853665674224790407957204673253057405734444212528490902093079883445343307141782557472415932743531846613132007669891885240113031248111475691289563930334911767666229342738374976064291307274778142401790817941229642841439696748525645560591505295026766466075834561445196707046535041495090960607033601888173437165445814521994904512030353904033424932459542509196766582780695975344681405034296984271497840560831208369093192002410630436020100266717381576513669763582075634422418774116818360333560421818614889664331001623565276621546191546785322168065740792245207396344487407685101544979954655989903915582796084617924717850991064673501781006603228121063896528737094186008150617998709986011923999782613554824897013787064176778331860666405490012118745901423377349413989510793314507158719721720519441824598143072131018296723012706484889280315755762533620220578432244616756750286600532124162436454164717971223325977174582761659140041220949360957265060060419172813302998131744816502536132391356822424437451321204354619062164348417267206167854710755195402044310596406532083852747799226093936918642137788791283266897487231611469481727104419064917126248343774550869098512319559289912019435591172396017464595532043659269974119977019284704370105004773824336822679929102930273226042682185414895392367171303902224619493268709413308735502865219738887692656547508396021144390529690776595071430682240693449593723259160445544927659108508407125741011904206758944219328461541423596491724755122585362175799874730140655609589000142582219635417735309466287782376503579791827891174997247732838790924161070462027076826410661787551143403593531813394778270738571588071310516708721571834888881219400635728060177540715525373745747380323396965883791217568109070136797138113398611476594466665511216735718346982603477557159606552265496562073713121868748477405326243720939201258535411106994965386593251323071684090951115045216587396010720834528063875976841810124359914004251240123539428008018466343337410427141372179937978258423763723569954318958770591428483191115193003122748879044860065054279575828639878713941629169115372725297974029831557674647403925439537072668611027173786661708802253650086165795135424830554055450862756153343325287648896814404506184043946131614437015275402782305269012401477442976935356053502667802621443686758727825929221202394825661934869565054149140094153025477244353292172866278242497506285880191871995976486986758395606957107078778565582869118661858868007848290935348351689585030041873927147020674918498821702928481567016692629611767859764128680646779702242981109968061813295762503406977949468566878908270869507115069994322398161979809871724471584717953163216801394658662835478704591450113562736325274074131497783518559766541824097456788641338224247578725562917364720035763210174774984159439948545011113059681142495574937237811720516395237935858138198054668495676299277587731879023793574796826559131455782472280671351769406205298083197539075109717425427831487526281272527845254676700145642711167581383066319942809644533038520004322904404622693267738191181515170567673624181739529558673191878588137928203209741379393020603903616309964367476635513078038573624684145702474136635749150857989741212578368550070065336945316511537570452108655390727615313393146412962555299709040131121879999074108274396341313740506342838656987492804189060375381840264113293464234251240613467560646585933723590441747326652295980681905579330423665721838326431818207753598753020204419908368028603958289350278096135325671869621105019832034197110223329812462248958634676206144379495541306007226064377327876976061549849499852469854249288079645884264504910136087645752397456168858443183176019853427289789052014312651651710315896528341629097662837360496881969546915131020547258071152712790583178055804718582723839133700216840019176221646576449725737396631955946724807391657836166981910232802689796919565679171952554017915943842836187758607197864373736459209655227672880075171974890052439244962349881473334445756755660917202273184307105694168295096633570320408106963561204796860850101508911875365390337285830618787096963671499543963075630792884829486025717941886932234309796860088088073076929273156870101240886308570664927999975684935377890946205393880024900335420209985281615456409145158041576383574413589110645769691595923458599112334080638011093544484068017001255282109099355089644533452772463063791448338093585083578022612166650410424161767103083429275837947680263174592300392185353843906707950811273137546750365340731940378187761446951663967987228200243638606032156067321615957783045781304616664014157073798948217274341504636145717604571493979776267422352736762211803224510655307993289636700946994148177334029612327666494895979705083498484364184761093419129882289759468056988525421719538050790792047156418119957551026154801378186932559924473891802739654493882735399180319170613143778123951691758784099762143114907189435786778857664096799935450560343446130075807511908380534604426643899043393485809227572241350676662475300735959312613927420394444851425145064546607051014261469983697211582674822410528897336769469182653378015302001638370430976428718653927122384159533564381637219314186325713262293893259344136774727254872945605736217396291285008426062014215050866260050565604611311623157738209798368931439828544290068381190885758401100821112855778179149167646856622089788456253421760432868738944444656769510006450003930368234340007494885952360127206231441552104682095084996926172918931822888005579874529511447325904505179729630635868068516195949350959699619064072947401378434732491810127465371421326265204320843645610167844664545384684969320232346198577256045582645991204747511945017149092119058558291965997899089564696416173683903372274533587045120555682793372802900478079275134207960737951201167808070998112060721723325479131029479415682260845894877923580842092819128514681394924971683509102717544267664131111390550863916663639292997400565603441697858972859889628294998161930688996174256727671017445582874087836689000659415990744798584280604812962993479129099341308435059876455437320300366898061379686180733375489505312764526919689673545559651962978838667431282080675786951425554004156474099017351659032328561097801819623235614122100191905286339988463770227533758468703331728998403233940958968134643214570738455082512559711605690738325189789177154584799388740220341942171457056847352051324458213737183717872523167519338867989292846036752005717762657775282351452243255828000138073124699091133871822641812878006831352100714741057827480660800840686511703469823475041530781813027361852248267758507563827035596511145168810569773646108433557312969453820867085661067103553602236423376958521983070541048892150920080542006845544254389595369484630429010771920462850190484056995073564856779520751567278489033450826246647408389739075709254177546096647178552809879224509769839371766536679066343271738877217211525744884337253291035189499122030230551190252987160652672244121364254763730968170273739716561320460022178145924075118732234830687650317414861497556677446811164118221170835067694130556814819548571163176759350701750859584269526939451908841181277658879141657658378532089128221515018981151624459693400158794994825417613341259976604187723422373528442461831086054789690970046879459223244346545707862221533481021154897433737189364672181643813248046077399775559446208939665911087073017201269973993109033568251088014342214774974630917950074443094935519877530791114107027279103556091129899599982683570300623466956257439090275980095506977793483357694544820706592216056092579083771625069847486042856702213415606108069064012449074224235824177684413331730725527503842957281817626364828165060569797037172560009789739670151249868228822319289590142244091102481363461256447753054532462173342504663782805173445691616191782193658045743762695019480941906600504555575628741247921983362435919376878833064220095297821804798707424817239693898398682319913257940188874212511667718801624887757788379871792387044506110129107234725598179911161312791823346952351561223435079422367160711620810339796434666938588997136189802159350431494095953285698335855219781016774247343789557594631937643117621007509185661565458124880213802356349038975998390252038824618986886498084948008828574538020540689311209747447498444256331837137344966602150252258281212075976714201427871786251762471701993932798042873137081563744922762524486192687098434558422162696759097052515373270817886819429712012059827874978237368400932528133471629984528768344995613322442090552615181378939322787480283921108060707075341445215366327247007898645835059127987784361120095088885852702189347573574604318009389570233279982708139247877077583056925599826370322588979637762226281142000181639349562162974427163028891420824368438941829264553964320091643636324854478676812683592197015352261681599124711435068411349600903940317352804505696035603683909528249276587666112683325938869923655032772667186745265677254453926487228586367794829753649361920892906004123856252288866993991437650384579168422807691476138614647595108515820717906659686238968954056677911358635662301549012288799625030024540243127599423054660590426383243449961904662560031107037852066050805995275334899286111817773997742320816825509107374459215235897824393226380497201274107955965439708648031952964275617147555364900786944661933577603781414892504782103591118525895765370907991203390706377463608504988083726755403208646387123289856837152841634127132156587775005523121520582136161532393094069732825418878399908054379225979034332752517723387257423350518437544868449835007616419312057987508545416158088863717732518365730986269321953808516650838518037009184301385633271251237136811010812336524459557391412067284628188562345087547164831452654664756947681364386815057746372873019122845942692614343875097825304632002634384533568914093943825306816661321420698546766678212547926193117880558234822340719778385323635286651251126512503891390308533999051309822952332137241366445268888072720745205833539524434436844427399198972748612577953616538211703458488715807440310159307677571117207727218018687598468667699899948278734912855407597212780179156289175425644797406771792877838462367004878797087298832277925591074836511102683127847927941837155842665259549098209163296013074207616380513999389902710025192663873846696775612030290440927278920462639116906720003219272584688319794359409421840814808255858287795627579634859322591005327121464180817493466041244878459972247607807323165160583416120315541382902184551370986947802944093206217533301632162472807941021268648135753568528775789533545284900896738676612882365951916261799179917101474192462795735711243276852703787003759534344360138635480976010501714663336765569693283600334549893103208019328532786912408658540963649821865886958184506273837585704799076595487422858477958268204452612223110488429622404167291333740259961566095033575211618678864929813536416732719482238082372547059668228934107756541296896476107191756190978615690912416312511316586696928282022488909787887363994214671817100550419641279118403656778669138347377027255741399608844865434912755650265955568186625789592385331515498798753099243162089025489917052500734452969450147729256647608321438463431861509885401336558640228744366254512557208391412760649029284382710875947224474104217651840670872133258085705186367549431865576475572017793842343985733670922208614660023031269046745616422905781896745681414696072784323845924011611458146153747734972888685838405981846584152002244804286014144969449890310997920589006425308073919591046094355769818883544542427137495815660898451888872451789334692884451459059375857405561864425990602297002421173623418693296228937541887815265654907933574894579241339817200051153100352262369388195869829489493813297128940804365235964416900926129474759817799601471338498274494868127157631065373919283866303587275788524612961932389475876957666515297833439455083911240470072360552002429840978859761381114035469504207892417381171041894655436817492122723730122612307679629876997241153608872873620909480192839077563266171908285824892497362340606159019051444613125060932818128466708699943608511144933044647804006759579233143367481975399915628838669230158346721534552977191280928316979315316004306125744351160838460279419549525249824184483098719008509562231981639281448562179371164012566265244925736639981234475962420028096598420351674128644748349454408770391056435598341884659328992051602995790226484808399028259319445879870483117556677793819461223586501103375669453395013190660065074049659283505490392065942302290299412470614353829271077526333021235245703169720823980301991490315074508499881945426395007439286910801506782532251737685958592231706951955257153032753255792194039174611342922644512176775342461189888151081860550475840845832523337333296771108345204779264446726755341796124339392750286047429148689200294598850980548378328600026393806844345841996164357011586500523623820951757873763464401532076328446292544807454926962862408515355809332695353890303122300094280188322095201694748391169474604487574347277841082162268547290563896829189673457071222482525660889501121608033593697579357883825134155687360196908201394639190598914672851560363135222933260056876374713358439939460289400527984768174746044286980174936986349081526711395084790008716649457752837113011045498278702727838038442464870297452424474594078891579811778975665037634865860221227899098209581007656077000704803580179024553841389259254005757729218785349923220450822454040371755960762681623853111815704769630767534650844234612658743471766833849198694903963068567311928232295906349571903411393690392444907094295539544741240920485748543646169508601742521853752659294618202994772109543565349802217780483163914021824743609387665683260383890362013074542169930320935071357636915337798787232836542802039286393990600479716282152633962514002042993457248547944029934677307294505705272154986225576208658096974661818576917364835190299280157046554921569865625880462688046980357682953246640870257087449485960260875321258452397052287389148017950371853348415582257986983473394778788738200777995617860694048207181627330703991391259983740415398332116390338145464349658624217723650001647920087164508938510063477120016577320418647818810563595800500232035609909800936984558967053325186020429579926161536290825956980617648090427229889368223780723636194690529791287814501508614091043160914709928071628200708661916404216171910425579885234517509463211707982261714347841790494141307112133436448901006220417565722634431014209455591760864773083102301157309231851393718603608159407780354247256000950754449248613781615900730687405314630136437223147147762359146365212549560572299520546374516911718742925449380788152847307059331283102995866015724356560105964334609163785355288671241812902791202919770513950831622045402091144310243170099612390347220838559595454844252048376939351402727036738629720825357493884195520364794458230043092874389538770478617946265242870752789955902206814332845437699367081411996872367753355472327080811602810132789862098909279519200214295533155137763284900176635978459290998870268131395410147006157822647093843150706751972122782427247474660526686971598376288138284196272850766828156864024402566816814009832512805435975974573363926711320466731820564420074883041123958425824997763853127880536079724456963504804854819498331469426371804231653542519713343899268806640348356133599302168003823557110581011408035479160273195277357641138835250517421920088309777560109417789034352609419002334692079219331130214700574140044916681881311246478203604406283920125020945445119900504943221347652028091582285954876586837802752763884197204138134451665675830098285234574367654423700769905555366106377206498615546054755416182997196452375695349232934243560125637751675133909797188749304591599013905630892664281686405232704686317410118109633033119847168569393531892589090628048187302745608465886740332871852053354867201440653700599678238471089227064805341100863762333226284201241082482007657778045759261878512485274826850883093389253851253125370472086391439339440246352043980881932069465167148073108307582376046163482882656277310517936321176914545603747956426409177552537569063761819083461047066381624746303275519010288373264856666202600282037203136519537351666033988939458006534165281019472491167150803424028978180822444873530925006818085133953555076689141358440590728016772769798322499557681151857673345922886198387722607531396575260035112002572698398630915645464786607494599988787987061828846902255444862714219184851469773034495266427351143551185918659234372400317590359567770594857180734815144530804247918646015760238133549588807098096305059753170671068960375363869138981118238908862323297877140263119420847266603574730379949470319375839713628753653755444190383097391681296615090098079047499675210160252358651240536536747040411294753889860393626833476787910195434550449277165003027597298899008449818367908643595833031046344111207430294801786639722287051981169185716107202557034933817149667308489092097391127744101895894714137221308748805110254716140764874110360578094567357180126793016432302102960676551258090121579434739449570079765317996673035283250218236858532913502840370295010744025826786479361728110072164269072261370024113115772789639363680572231408997315529725917748189999724901523534498223764018791227647962753176285440570320888005149428797327761993541563554027114517717767133005072122258896839308055617941109079421939974079343515963506409326565122913453854588503048369370454602639342129846452006998287463619272927040427751363272952445918394987038614113111290853246750695312085316099916626290969523905300744043075445104795811538493267964830506150924582186381740846463845186671636115896932025891259004446663219586714337251101264590191004953380852602074475935961675538531631617595753035526212904063640188726290924202935153382670690282179079234519577634258493456301945606215162757698394895232396796086121773795542474719752040542541398892175504942452444566726946421622948754329705867499733141766074530082698195154076892325957519318669600251404805981430482469276132987831736565164448989573445208835605493185285123578266467545204530231578708985450617354231882996958623257668168871272556739407991378099716424758352400768695763660389707200037863861712453906499315572759791714072379319615957578512949204368868884508897360282100893390400866875179794875948874824455117027148971766791131536624014088659171212653435305481270679948011159443487969733825880259630368535708763811337890456470508741686547057746164443245093780533149953047176063650830024169372370996533721945025443712267568018353257695475503133991659359787594822070651222282766128774778707277362613283060357693573892166627379002581051495983694186518769052341544577660911824192206988018238522786359551665772877569727019181566162494704889385494734013334511996815547016438737842913902503687176144537505434057536574816516196206415603635710373821983546200022509103365310515859269794144414717737070325443139919173724605363723087015720294664920527675222980306210331957903651461153914681197920219445386858240357041348321400040442966884252933688158738424724532465281597461333990214251884300730307070429161770742458457628521291898912754860816182636067089840200049717461414765854534827781093784122300793091535999054093277164183985334205623560156816449873870042553731130778538660189258255028751689331260456828463642957994708573127013703336080566072942751333556060233007456938541899400396471913775407528899188979306436832316397553129315950840035399652737339141834553909627492710359054634667901020458987256478265871103198998417647207349770207753504664191106937135434904936605758570698828237260476602817663355644258177883642145476926860063702053072392766915839155099375648020542710614144507739835194076203759070338075075320521098791730789069635597927025442973533754844277847266665539545329415285429086627464623757211214842752299409267498999792770324606399863497865645268539452332930066900811690248530625179905649389831204083953059058451300232942325016139354421561893480156701114291540797281762148372087220460684584861994058754951982482610745995490580779529048112443308824287463264590470790706845664983785111807822755267419183951484867788577812730978233518188496114945392242786765153899232381285531005605851026184740536193778503966065540880344620443608065119575016331652903785904116100821939933661001762117411238413082396055917091784825850420139230649024186852995462700400006433503376147805961856428492544640010483334430998663814367485954319976737493236484816901100290127524003426232027761244990119330732542248441300683417002621236467159609555995870103625913321239894737759078394941240945281339060654974655277923809100151855351483126101788192885915707375617358253162157570767726054430394213036724980165372630852936817287831092541792645010194701893392383446744704460399657677204501546563922695527133059298398961418808851790536170657825273998402634907378526911023462964266108511814441815276273399404534099531438443504575842193940922569458396982899019332484274013404579469597897361408427335380032682128139837145158996102569814517882927227637864674204652994777297448042584320889239366166367294729760766630734002541892768704448116436635051471800753197087976724574184044154051944457038171642681996316948315066023309817253937930311182310083242899481107095811451329506153042254761512505240651002264702456886211973254710216590380789283949896370413666345196104786797250581067140702720084119327139910807491123430985448279462072602112733635912202002491631614148393577056372713113509250809733981937884623938196282837309816767970398600546381222704895715213633898685456124030709170880642814718696497290286238288343077109078880320483658882621576196311997917593095460954622244709181183493525550587430320409696533141905668469613927396003861994356287131870921982429170910711448751119677895652511040912209928839758604838495584713997240693182621002059736595765505206031026510017603328558871819405241070843391492233758268648534645709075783925842104030535672593662471124042476719670628918369965142446516153561368894080400343793412270716631126080169780214117678176055318563893484558215994247432637336141393938840986824527687569260668375601564587383981176907282204687568773062838939069272176751093446165575997969076311165478503740998853073322560038098164219343645559482011072492269237640909399695553001068372469546914334641380981917847670631321712912003712451929817145380658193388685856305219760098593643169926315086195455053781229535330722835317822857439982262742703956546184309543598955179280637177378447254324843238817820123194169025030612293873059804214460823977787678372757283160324711343980203801234720808800976333398304580700950809430009892467423364450368748597760096813746034957729781928455789958775824678014899928748594197416291982239844012559657969686451515359086677530617493349109307681181794448233532042581591730994961489279868871167259974808310081812939201662289437727340543114542512161176106488936543110594994122139029314628796201762865144365738851005240578414882229377585540637112276548451228647781688251296238040790561219487143696374878193148821478151527386143405364177847397047072540609352327025833346957992622249332243486839985546722305826305089801496341327274085473913339945827229307287795878235363855232431950784683192976934670775461163630101969623186631652135768765280693760359502993145778314617385316899642350228324289811851506718666541454822653408443541013875986755548838723049459452017922425004120650004754500901395014032944192802389025892738984277095728295886575030992596131167407787376530013761268912763841165347058332472335394111553453728783923276576454427638334318803345470133377018005997448893505637270243285049508965297937492595138990933694093612767567978158833518433166593181837931300061746430220328996522777563977439844037745238077615995638085769215502489434312627300037140593561456652624281726633698431312136832090552677248538282131868171301600980389716021483531469598823397567534800987606227373174774974668064769715886294431547353659779613740810480981076991249604992758191085869536589685066046674223072532540922452730779037267757574306237944777032338292837794640907480850736464960413361581836015778705433069642140489017559074800162617062876660543227021894444680898354359884387687842821481222635669560404849289705203706847303014445162609583990678967814765360277005847588621539780116342340516452269196796386307954994477894443336224197448843829171933554006195524330951927805982381106320789106496226318726810977015975742748928682913362982688711319220285087721499738161791725469219251667980028752130943203217426876167488275102690587305523825285996850118217366672594002940141642394812324300860804577006237432597261858344996799370175593412261621357276406832373589517292644649539627142589572860922326739621068591085604913278213522448959351563907924538122203902425656432160125785432922986341565238529738591382862695011218992690986544436865387684362696040688698710772348384317024139990408788734573599714999080077815151021648415472405940720764021682047794450642784579803870139120116547662908593889302770837881900054795584218177673606213474288328466575602351364337393471858693816338091743924801814801602641842562996464490333713276878021767066764604144593637398874333467671599198769210082304847836918438758751328458790318006937844489556912749383882634864788252482974038654734220552546996488041738592151981211722775842166114514939469082018998503118364836598049559240440547481866956936304860171237053686807493625571549949458264367636947652729995162613374354179812543150929300508425474739653668972754416992580307213338507528402540380555611859167984736179011414689042706337788454137420380085013277622892408477752097275718847992053134399345903345388834743846187467336337872129499303913754445984919661374842364471324379809829058496149339650724814804820095986501388955227346261094579289074551672113560032421990808463352902809896084737720679872435270999208983981391410301910449841068939559833303221369236314610303701636147938710148601314295224786152712331756807040026419796372864881398273001668251711131576237756176124010715513751981308129506852394934963140843832029463465591536556388284814538719573874711583647141404729499855612415652792026151061233120790200911956271342885140329197668237501596708108319481252006128077151881256030362032328137465390195249574215546634696669328450205383381266980235879308427317260894761603946633194240995199798400772166078217598659009955025168822207240662753997124588303649934930812344395190247939936152237791434754268984905808710763284872312246446540009434836914096749276750208222036767375709684788519342353491549137183595646890915649343298010463673565134327129178661347929690554456630335557771767802670466717139484178133900287845322875898973099090075357783126979109334343912074242583927594311053419615480192483798696087769810254091559292944330958128335834145058608347867477336771279375665605596938108472707222106875093908140475881889353056294095331284442934120341966025987721307640637094637459883930512064317547220581843425597903647224584680336650487038862000718239303412076907419551888028890729624024470907990560838382556980121698319694724134268551749152030678322786495895373205667565643370083978360497297709615655770212856270905637847385464759281259923579061589196084175195016344272644036187296322282707806630557616200314988975603771217117079203908464118351662447529181063005192093187741238334075353692821304170552221014977049431003569710585159181188233105183968883126505075621506083256277964727587979375416098969056635508421460813878203618623835436469002125210731562351210788687447136832780395382158844274468351352558708449762400644056081387755969073925449733272451686835172816246389216494977966623992498751643984000131069702826602456769363263999116465905730043531935151524191561888104721079713434910371193978931558717890324595928699087193933725099168436157702687285466459440451648788337407116452174998948664959216317539727990507963868331600749875248413955217638120531025643881506463868622757133181047466372143209209426866022515182378707269822944845823484988486834745199859077442306325635335363822752599851679452909281368268482455637301992821742342568993711289102211640000046317281549066592459420054032628665842595682302948814603280646835972658906372707549174994474174219092913048923635474561516410766453099800953143553401953845129257893422797176028334443543682034991260233149035853604277468027791221852619702324705519086897903752073009231023204811536685852146669509141742413525499320538187515278637342110408453994772325118941174272748543167789201257029376812966041526127467883971224066873984256290008973239185073536451720703391126736301061641271860904261023686076227057030495516458249973187699614125870711078491524947709801441448774812461645125096204970400651894615453605813259133792069661870278350412181286761438077182712023397185622947686948970596270352236490578906002258380415120760793499571622543603894901363071513389861040099451893630872250780492335081093217690407790167551644855015492121587103919620990533718860960479064203390739075733484456914823481647148516069625013358614923895417525922362354832234810769106264838464446916994187821240724687601931359617022299302017337275041343387730403629953321695370009977574693533480021958872942319383015476499006262033594104213059174530142139904069649232661197527877985257534680334574576737178634586656024407043886446296577026024648726033121620286154410962085546534507133531872000656750523664974352387901343853680315169217662475620521702596913274267271480191756666591365515709047918083561900999749347572859854249335787565434233691494801092076346741553543616488506923341590589906148971794364451378396542882562677180397408000899653391318547805334278052650668658465003473542111541519447989207572001189521692557774550350135986223329191048248411180529481529311057395255797005614256249578725014115138782847407163134788040987526158548047460599497686397300992663584494338630880498370255294182196260360406342212658036112512491138505494259627309373400214899748673611808289975113266214308983986872026578538964180955416770896260217799742618256324716015955061865499627611486568769399918362739361479383924887944447187166181478133080580120393879426390451907184759535622703912109800113190183897633300201016351177587715801298450734579877021229433911782567227451465402787111157539766280555751428724723223107582485827472502870944751740951814635484408804576501245388263201848830917150633107060719824520537079517076151761579422842488211744836142827813566025917034491841206728484550897419287421562910110444127322078133358423557208673928002007670583225684259666667225363005221082195781665189430426215247580698811434014783465744232107059973133041431650486198126579842609852352717418871670130121346334260137534654267129977301305435147060648662577789310805175724197252070469147889754909052574865533074462848109623689383040422730549628296190047237385740136619234068324194195967573893426891242621775691321019628712933088066906651091032887722249100003169611739760356552341039166032352057038656816499480829908662111254973410613228375004891125890910954553927074021017647447506778046372476488586055934975193555786231664448226547114964248519703031927437021352962158135042693802576400613496303635093707090684214930224404601318011982076785996300767699744547048618685222477836551125837327567341493437629554060373094107949910284303074622123054591247499831544171450265433313262322145182923767449173961518488030579574488348157913696355960509066978556952983383440130365058794149593973575997939308968358776958870709111256488230355053436511100670593217374333014345859202079343866521648593404826541511951120639343757967090040714388149120435728951948965230485881302452675155893077754761426524932093388723939000608030279393502987598341689426957326849271349235277192086364454119138845972429079514559933823025331487864103056146829439522353360084766425692091289263804084384071829659378073450267411725052911438654453655378955951766725883182624046433890523480921668837399661777378862181103773090312608759699335073193631729517635870071720711048433373345214823443679475985201965819458987136978655879739523015978327593556606155662271328876182667862354319521598939209533542625873393996073005746895733726233428629897708222912593254287312766798374105039100458295173475360129248727146025892670603554691419954052891312825473991231180083753907793659848821345037409575084029423210397188239292077553905417525039177956558923409435944442696886002105312706707195381196624479010649543032716986124644992909219745016710824048556996195001856839381224802935948298101243496297877968749474129864770562876288357542058618706663638015378726908570253137100793613739769406407987128276025115472745372803177670714293932795368537317926708182371348109286910977082584022555780236964654618403065173579371941159177927056882518277517976076801306925851194181873259236580630583536748444004222079560462074816751715814817377071976807242563972076973674825784071059833545136878309348343552998561590988640429218437103751931398888524821503812035633119982931874606810475460473358194331004926239695077704393958492310750350225668458209843662559759500362170561409105705900421759066165231152907951597981883913171126184619035994323698110382281325766461797871235320155116987828414671740716087460399497231737254964669434375806201384240761200247054532793676875294851714491970431122111224231237570935785247817464103377232177227954768304561945751255957793013574413514673128473735830914709825299500078291853224479084276097424132024253104777468629855357719818765769308433708459967857210533250603946679924201567482914390487476408094182356554400205285774896429750017474613740273091891544860468542584611486257304694190597285065756117301335836947856273827806087119108919253944794762702508936738836241586940022311554293971327020485226992428931550332834029006176226251529169776581441684552208925740139213800180077968303199537199752644522891154440966080118235138140362139572832931037857865504594340401554401226658247072705835473041224778980431464136837323789433887563499986018189443755627467032331025672983499831028968195614974292352343743956212811732257664010884749284920329553942032202130833479367793679506914737565695153396954617021259164587014689107194197161719625680752921059126158660984624885399058903951211105798000709061316545304244154385192392875569330176621088391257626446361314628374112380436853307941901207826918662052307201107331861777737465442605149960858442430726312045990291924444486868768277729113204877425252692796731352909802799507132156238918183702687563952650055796811729063370578918099685554126663652914639369528694037436427692693515928658565857876953686242311495700021962178459546103522765228827063254624803491166550850428092819454781046417642618265762961495606229884796898334202942729487259274968610258223520349769889687044648610159155316162052317830991038376648169482256136299995306181445629473881600772942986123809848118774708559923747107949275625947569960517633127209722424903878189773686407773275505493365751685771358902411811986942795196790338133740655548445683575526605490384041243284276107992402419900070866222870247049451019758120664464635308167844754517986133784330003904308768811022811400343071842487776117105738027732408077619208018504404878728310501797548175235242460393368486907969532684131065116003180323824020601570308047502047087680173202544091777312195523864753783878905420662461113254065992168948121094090955217751375989994038908394252651791679715572955925572487148211246270711608944860799227033661631560227157895953465776819449419086128645074959997049995234760044929733461237877915470160812712695560710903402064857169108215927667512155363543121572156072166249904940184034807778295371815491206814081217149878646504091383886974019538324131495538877460744982593875322374767018531666627744712648743617706472730301453458579517102044171248971449357222475527727969410111176310000568530208914996592694914685467309512363203145217742854059397573205170648750556028083293285895605284929422298316241265679562023015866265586240402386229756743531970486110132003184882462160415747559848531427558660948978749981131453450345466018085830502011619465566779057302322808818858905355876399721227990647171769069919337586383781203017016928276809829000556268897409993206369225367003576110675503176411224638139413979320536442731016655068433527568380563330442272383564508295687859748476217518061367890468372034172640566762582358075738731305268668642259832921368954689224760050652847607444832500303843079236691951013313630887359027494325842806889864615662534629740354215919134153946597242767614722683065776586212120988155700686235776490370022939825060874150286231202111109480425771636454317839288570100879026458202650290668486309212923903466354180458957948237059745496384693644206667691076808132839139985525178750326923582644699166052284321159435573415406409682165476731226095466410903062763928993264398860492676329749116848157516502728981084212347682108788635809575240663000947159965848473192924581278187746368923220255604454677525288654790449061413469574517064460429627520778550282570987064553648913670622861105417977209130114062618948631961710160689154468816562770188421567788315016319441773952830995511366607346421822724992874238795517296663420005797414811201298331168160471121852011017519638556051649301077909815866836586638934524375672207722584968244634134566986223574000498392231970663398482294210185967188906772337916346658585146512470712385033443749047354714888107314573731644735907652127018700816425161371258062293901121506066142387770335911539724288430791464295316671126424862299000913462630407414700364081722645556600211711107456976895696248940032109348018475810486093984089246905872848108635610450454571300811040975811943487623634866234040305311577411193409724425514674059903667823543769360725139066485217131506190195878109834936730154356095989630350140915666683803911445901726904970810192923364604826201200724513317019284146915416864673600673704995840337402977689955325531299859347731678978172102546492821781793031914180684730795478121027597400011196968922059489243257597458648745509835409885154101388073434802465889283716531778138250222066904461282661077932634274420680852639843807978253789638957447649172943946311781830017494020530727499626031880117581056093855568541861606332627190204961476039060852181798893664089688114441987508425316011607779115536669108876918055028517059039498110451654045346803215041588978457342959038395861792306527430290600991115862762734380831314155178636278620491213238573157890770653273100864141408696524387689179540241326075676177739595517545970685899261523175232566669607129465498810212972039604075818424487950654644629207165907784050525518138055482550949129845162499142720689944747399312960467698997385905724961070673395320028488680960307150140768387203191788063455103087358422162586468027777835531968567995087878267523628732155473010612525684073661264133289610043688667911165569647612342300116267070899218517381317502310539084142168433168584069414020662056908606598414816000582602795388147254884718729750167208493963618950911817096928990395142058778085268653949731134749564990479209136649455453538742885743114993773987937605651922018905617386439001097162799497990787033206337244367718857003051558989764284574033370493316221912402649699604963483478850350067343994623188204035283747942170905168208880630029503456454154391853805016861772493070084165197113173647111453296030897739975938381278124685489929825956375444642186277583921348868059772867672268865051187389635160727650170881919503590102825985368552769621870409457734220671985161248490774995674952858812358464824595483997585404936699567023525229936728878894768728472470333770182681080549095395491849377520594116290798213288515110924682075895246159449288254495801549402032081623266936961496966198726836496113782872790574490611519947682511625603633056647833534511436752648619026430241864277436741288055632189578219040074389442210617355130087900855952737111141775672439668062792053870892738114615093318748168653844872290587783355901761470355609747380576255355360868083047769537988963655160720470664068997829559211963121927222959808508591535959344419012768005246497438753030724721431415351098632586890815305122503463970627045165658791405131174599034234680676346363260983164863596972432397297724080932121768716562261537686364213002034130490315801511943348138542127900952681196057121973576218146891749986812580833779602574290796303596119973563446946891272816460993469834549563037910692575766365787926422379643978073925854001925779332809364042218324399020833222925667070417835537805479589883752885874900983805187170523728152271835490147796878528226394091897517945329200435534076326923123177586771969784462593082006338219846672678125085692673374097965495172657376147804112084995471641956457206708626297058306947333992947130094034639023073697595880649587426763166270091916225590031055365192688285901694020731673885557240135673224203742608088140330000452951287677955416385564812672358145309659228662913689245873763374385727094001829609987980266507121581131204518833043109487369409428722433792213639489889371604444734063001045918998735151059462485729038549264273896371793040351443236633599383398010981153817452087900446509169602833855771773888778968506883655820678114133412454186169642068038113160401345137457026462460884797928659483065571309066171317644130661887026466902370551048639124416354935299582777319809038975095983675414015917993844631160012546704709868128472225817749233177167869466273110452708030487753143034777876605552636329064554636322527695114816308476235470072973585112401559714946160069601864374863347327403398681933592168501092095893521653410654352313408419341745272747180474349271956513663348974577425760081574741270432035932940655158626674195376223654101033306332184680176949926456175185390877294806261975485082987686907220059688628226977927949773853936489218516801221506639789774133125615372691491079177115272918465607347147223085835178066305517177451316592950451527804741074529965155135695878945714507919038916918926588262441810572289350743267788965673228890375019530760555160822779732572826804394978529120687879426205247358256003923884960472307318354700479129599793968384630423786835508222574346887736826071905218754176631862385590124951788834961260233687876894310886278944313147639285624605626567973591588376776631397844223853994088051651780568685943940959395263956014696122776212848545333919287625958502317818458732715110336106460673554824631376862428223830174959417918890852893079392145673239668432485744764129214182003958205841431414032647908014418243571732719155318512611627522801834902993211041080847600152517175707162868490033992041972132329473141925720532625169040171526104668407292953456124441478240022161397639729028156958211320906887984977108966781687000861876917947497328404568875377919690523778985359607210082062067725069832331947214565723695913972963805476810637146494383140013767720018718463334163126667672604882737293594192970891844512010234245344532020240293566610778358858312731595383929937885756069137566873882718536288907857859523470728666872277981073492229754328524385561766456227372162548849860753754196099582912272117897545747245728366866242143855316573621314914235879880837248363305356214749471827351227879448384027861793012887589545932953208254743618404521395268576231094950682657656732608298694068123932636479107943095762947550861752398130196088502059277263162190824376286011379274094801065643053957182413531989325148417782535207409617474790295731526004500709210212705802213563433784414225092009893672134190387795296920897608313233644279696122572654109286920420316668495701234598152571583398610313937787956065147020464056607397084212805150208554272256430094794372066790993973875186580480136877704607614618545741597684501660348110475898988752792720020583642689473474173608739910237042908900409141298660025728616308667961925940242443779722663133776577598624528433885655845016965068314865905764563517644732013123316244717038870668726516184292093375176134981982507569373471443684185180233379055366512946196180917507371133678204808312018208406446000253787133850209880473115499395507555390532716880859901505975305247340674016947584229437252971391179295462267727416675218337724690873899548866245515582147535004604373437250287887460793295782966292902950464376483211047472297188345943446809544933078569341238753609289407220656464411266991543309568606642193449378819490469304561234367059625166996920308832376474873849856819735629411764717703103486773507190647756287964727534867215851240517078356355884123707863206052504484813982778262554212603962474231499479174291431315702636106419380099593324017355238672104381211311586855292705285891413623143647705671527040309995880025528954174382082650125905861262240460592943281023841818733430592118486473194416581390613545940051987061925670413695577810325448992429045191462431630961902191281388301596404626167523030774597758308512103309143443365540615595047984983068596882490438894542243736710664192749952017181214565130762457083700179924087634745023105239080471353923357248022682078661634750954395338276722403371498636674492125873436441298289609937136350888887204946601011780974188644474328555423541978874418726733668721835949087333521268591451113696146885772601141081716410253952038248581212959008245960087076955478343690312408101878823027566896299174850919599084772464935925329247407697848715471010582865660757936324924870483578049283774722967865025388536258552614505152940693203745872271223715274126543255331342941569723679563348667648398437085184918092123685877523682738532877411341875113006274973299785830422631852191294012481354982706537549257128038722633049497883950942355807184060075534430387604750531616520129162063957469992972610337082880914357935939565520071674291723542239114124720172982956084903523862645909119431815654896601883257549425552423739153792259700426396751813624174691356624607158109870777446261741413622559842636721299346062405499915018015172563900131850416882129075599431257289167749580011094055418397665932078919580605308082902916339339251419471812429501096746025940092601937414039560661644941606749508065099880507112744392881417676010376058623257315363654834945398777875709572873988948426538663498562877239711883061101308907754404251134400451441455707310085938534234333520227924488641587028420427653264088971747846854435903893464641884069499609034413839315472329843121920828773748914816404781788883318684685346725541035541219045972285067459021523425189455980453963882904338205835620077156308703421991825552749069148018184221192866612228345487558300018895689021069828535302239510900969464225940964287941717257656113011176617253414614074799397354925654995122573246949672179474748755808514896184769545491266389529062823681508777639049418002373116101085548144566824835394789416737281955967965946463102314953027852031802776420485532166600559085644279891123001784706284326982383934194455057270166323059735055387456859068934101356364434289604303854817411884114571972306898228089682011733349407543157142095454897230265451757321997495524399301749334692642667451629453260039321478710651786649901680636994778350106552271601350845349281898497312298210929305849164120418652863718430567407522698543335693719404908467700066370182979786701327050841485915539625716053607083093766585093085516005895155060432748419714580271695706672723010018855409522709864389949280130811060104899762459041420233066897613007694028296177752108603138085637199398419252297789677287606479303210424483707879710022769109456395501925116609022465271885530421196049685120062628087954212526927136241403783278048677220016885838368295352623487555907488916925990391524841227959973637802411392286974948672245092138629283221214951039967432367236482171643460426199570489789328125454941523139589891385040300307872034588982370627015863223905775792804191998841248975839313874213797955020013539717728980056185819052610428002920095585867441320559258096646044587258924064468991153154216591997935043891695245621113060017813757489832932527698174315639599444718009505780054787176976871363435664702048329615019269585433515553651613383907969983627580239938275899515359637460726031261824487106705630813810385777522475123518400390354291936181491665647868516147872395788167272984464059261596757107871364141749056370395316769773181690014736285498598081696841965537853052749080621433020418288223277840744233348357540799557487520523028679537915050225895048894419753313279978638747914871615510454191105332297882290188434355392826888754671448773947842119635012932066078083427329142588543484330636452505010468973768420936931808414075746144964952133242842187619979197769884920785697668034887546217278368434988901908632609977917875678639241822500196603522734740911608817564474822843439769324312208993211961785249139645992926319346872185793381086171276089477505825667939399138556388964943383431284225739288184610563639549264426935224627434881862919737826969113340959712558674149676018942947124765351902979755733027904506137028710957608251905039359756655728330693694998255467385183354655243839189765034573506366701506813722870048000555078268865706531122873861118248261428786489199898725845423738839330982989837796985775301244303078732369206618166512826979952528406757648852737510445545263611106375504071154788831118525477364939603566378996264339780400367090410217787088396224355517846238922746945150791499004791575504217453988516943944317413949456704650558033425240109604541592671132052320325061105114679560224782260376323031229717855209647617309041875856769681845646931872432168828301243932493269216662184312370534274638125966222786289088546102192835993421005011291861610499643574492813811146457561810430477974297578120100278210769553395849572722645497352859548705734602306018150501644820775804086758120195321843060744996297818607220623256665438081832792790644658907290829147108884738243956754495881980617326018886755692071351559722012029028111941911975258859796838073075600328034399264687442625400019247844926033815208144632492304640049655914015038072785057125586209017879752848892157793390635369318813646502455694879287842988440845264640706411626363348561825528132411780391086121315126250438303476274275388851193750162443575434327925679829968893436435700826656783105372396571287482313953907645628518882165865091634136995395179410249147110446511130175008034933857272325672814222072629638288001350844686451729908953131836471746308823916046678487119422479107142776985439010561347301448398760603645775813775472223583192256390772535634514588596912342334699293538620982147149727691088103664709888683281811640282881354750749179202902067903778382153599482097395727717002826323052105574440030051791265723502303571761161690176556440766697742415477819202939130192713127136215902075558450562996292456310702719718567113508445741561532105519602967545759371656736342140501722313642040731319123088450856863733320812114187726198593892976684534211415482422513240047422085774878406439110490053950016665620911812846046954171832043588272805446410156969139564463503883748689750749004165054529389119377609637665270943411115143022524258440355124313220828009702588906867404414673202965882592679447748689893818346566632342409649234312734944884710459361266589670072126300893749803206562470899559827541788889217153165555195349420661893220213287857200279409808125539598459871502860907786054385011860541288913548766724763755935415738822885546828773762941495779320920130329818116347964116368458570554699539832270550287262316144208543284034228906748101540208879842083973796012333065390303007048219502777199540993858988150347751449278033184495623917601096759928302541112904028088314067826774316121737105202941016590580889588766085067996656212237117514921613901252019532911262585383092386840050057288291370631683582671516845132075988630377461893462809037511749428244664764664878835931784892042652082518100562242564295025332926938580869852918244766823627079915861708629610298931879757025387515657468742931413902565406006943916191465254608397875110700894227483101618068044921046856263520700474205003620068250153517427304170348758959723497947848626862897167982703012352550901791727090566334683214311135801312657003287107852389998243856376155446513383723972541774991938305486909530692546560676155585523212344612865991853103603076890129515816000535826557823300720878143923998501349723244051082376731819602662919429061906178041768983738724376694655769401109273460054436158821660025449287725092997825116541430969523416818991789711852837267592594484967521088439882623953681713580134244986254017294224154164541481334752405620813095927182022306431642414636088548137301085009198519401400763852906525101555361975176293824152218427606248928881702063949607001933944551390172989938618908605091103250664781568666853653599432787523251896457045589780531436425369277316036355382418646819405102213539051941659587598005885706161307206374177045560817357950459313747261625667372096362163837008300650525547071505386713169478707826096856610019152279411627081406585811829112432195896436196398434193535626197582810627798471516432548548115714730601996140165412203187373303066296950099823308748563755339401433801124035589321520379636956951584469049364833029810953205164540627558444891208197924840468640938317735607752370023915740046997771472445421031561436205797039154538739492619676477861016169885247252718114748785199342651658672625378550254448966071509069468470897598913425069055339793674365314458857267323953811667494403075576786012231491672497599689089017262066664106762597479111125273541875718764873271570976646669259803468595865358024856743595384759310571623394755831488437468412851182636051918678150896563857702296919330003564844943668305644065357851889102810294273819713948495250377180297088688860923116560254002215526602321553351053832592118816830869361924572096662986254881325213020390578671262780503266234954739090941299918669007820430742143433338675645113937843911763325616731895132236584335453601724520906017517063250857443411975667839280751465955266518466186567502837059367609534567662180768206081366059266625330658119601902258545470399511739855630416242275200884973669910329197813212877953086809105429753414486808607246152272379771206928169170173221631076879758202029093286954874914335490532036430630038025865620736996109268448529255304144156030078122140771885385946052823496381951625751464043548018565599991920803193002916673192094991654980862557868252190014584831558424064798804481074800996460516208736221092925971733793912313481336770514704340435704947194040280882950347580470750005592159274187562302122036904697443636293612354653522887909629751019439594587037445990275362403564743274560282751176162847221938851064860733435946469225104709263003874621356694737305244034419627733250504690314290545367518141322474811887343896921287873715295139880769826283545526708374269518740849863617390102203467081541635518055599414772894535843159326469271727096035825761863052686287277820580857765286373796300692035250134323897499659181072599683666976871094016830764653690840878280763454801323367759858741876937762455444055917483664261253120507323404819412747399947194588564024402125882850553870545224824276340791142367952427917199362266420292945828171137632731261510499990687374370943668981078797044705263560043842474922801757715419754728949609442252639861681152274562278429094071138399014082124831108920732559119845382292807647959006993924121731706530323632316479149396325570981724186323520148936912110016381595938428260093917612177036066273407625418256860307938983661906038746404755846513909105755306893843558611781941284199902672166765846459217745275278198596222321559716182305566275525406893317185737736565324302204383455762363566553659507277675057820259968147897083605431870305422298533770278747805104828406945993565486057799508214127929917836569661057463036307871182581860191996451063824903406529012478666644532939869325355187870300972990024603750550098421184064787894283892813929161372365351294663133334356948702028443894076499926151121647003567358204526226357456558120600933888181163748932667604398064796329330167921385965704515012499487260208463116163349422446052907760924685314882289115569153946083152254548017695972919143215375710262458049673711762732684725979028829707347315639428066335120489489463340757633398359125860878466253300652958420852682959690103139171671939796885712429359059134619601050215234547103108779532043380445483210200166084961610625334401341384675668453076399634846702761742201744792544833930277468710371371591063665285783634388242714688009084036656217880079603452058064258931052363797331534290697827940729794737187412851415374407082258953555349019769701315188220403064989467036514090573056320665117573844144503259575427566649209390457854898012990952424097738815040534587461422163246513016152193616766045503185719851094518212552326308577965071291651218449504868612131927702442402208475180309191486203641181731236733600808465655772593410595266499046514789136983513638135066953628148309432271784977072574015230376946817270630819622880696449982259795182907461373905819008687336261668552519907127617099707916586492730257972453279110719421269260671328371127213608227427353260738472427383787916669711983438493994421430315566788993660664114037496818687848163398188643052246231498968677401993279321130692664657426235328528472088587647338757731405983052657689778266816994591304813328301329437202846569067036078153516574571677963640935125268533192719972260451979032819227618978047722743289450457309495624932036393694393465461776846888030028515332827921778782828048045748474713728885868149774685598607622865925181993557611430019230840870929059198644784264937002527365821955525494907926223596484435841730450813494701969350660070915295622641487200058167742858480824666010249150884380312997759604342579668323788654292307144517747844579743880378286853873533614364657174904908949455919786421983469669950552337907834008516282852995848273581968013094147252770430573805694073515951999600536509047468992224824780698763905897455065532153615382053823949126629266587352702099666586586070181283827289617297257770774077611545270370242844347680979734676005645200120171045501080816781663483589769429421288485342034896563939566011984674706387785217900912904499009532162160869208763359454973449273076087066152531285713078154241190329127554650409376317070037452383190170564312595485978336916436756443938134077434788455199568214303155754701219829540638344372252983265629914740615769960471181435399719009504898858354278796406552329457912214639134875829509406393636991582691069761045602887109256857672014177745504540054584730353554165854494964445875309298619797201534909495930736054327410994358088145903894212980347605572658255875325596041768985849710230564167132052205078542451772439168117786512838853518837002571831895652080708453288335194759404629618217879861909090947914691449995655014944324368573649079700846846646866651326320341799114239388894280721042726229219760960838232053651300741050776768620512492286395407003578807342700313235810472768719009297712641451280997771960278558721902235542080787853505783765279680235604109265393853066816552975752153929563551928053640537742100321038144011560777959516863843350709834168699846883501667068689202520167690854051607046754610321501140946450409441049181343092910712641240833728405184584087287290984962369704784262387442544923630298195838492853530629428728016480733650142335673157683643249735133809013783621601255530773665299575580665394525797929936929614514493912409341628645946855967306542924715541598194447628335691168228987757503937865171524482802264448309815575842002653203025962792985752703657911652146537176169548659933974907481136245456788008036473578918751757474675425957386653689521102320888544843598458267140449225116151089841486115962804360882195789224253037290377386934459769790175065130300107697992942647274429819345808321053730924721491280661640997017879030046658032432208112655471510536736590989925638016306283754474885131724010632388542506722276673490446759413249024313415539942488642360351259475763578752939272915568515318922807474772706796629535632563642145229814554377926681182356014464131275934665320922888106828116799128490440468802009431930338870348268878584288864366604278176071058069622027638509296951023933966535452753785170759142019859384052414545154650588068441435329726627745567176272646607588852198062604979227417783160384131481336265463153150381901212448357400339320307838413476501495358846982288427606739967992659479906150091377913133432610143385317313857496791296087411047358089838359032209213649924067295942473968337131047415966849272449711827494097184231655980013554235297614010911126304567990792698959179310987497198259851805596925839628852962534547650675514513444679708686964228406209034148148779997862665612141495670879111515189897989354981153912314091690261976032903937142730867248238244164932367741800362863272670682237257254029959332710364514283978722532583679754428697713333550104229915263230831554962240503954891525604064162765264298948223860116520241278535234172955684630717332743625149234850181414610133374856925518934457888952718023297383406342377476616601591066647741925774015450532600731693928535748064391732285296937209585205693313376349480231932248872055797551115754938884960837648250582775791263528368527430695598967545932191210512356888680019497748146578799007353636526931180888034192848705159174796029587146245442310654411567858746897457480902678846852317327220848946386033990118296229285059294723476221346030982331968207458090468242453606545389853429561914945803586273324772805359210131290294170379990637827060796491294460573281006114906090570301785060937742169789522066469389287198450093535130165742763158430796941133829302332382011186635474797199458779606596294392909339565178446858171111179595062279433599343768879013934939311418794413836491032556042683724406790928125247648281616577901388051838780724495840876270702275915426198083188495447819519028152962324365952722056653391703905477121316513080203539489596480083476925273018003965791338114197075708668133084309613250840766625545331363041198338529134018906357729128240882850731549336392431039021320553578096407742089968299702362944016360831027409608177892959908655361678796995975624054552116148106217193293222051361607207473231847822631276787584379207382495705350730592672122009689686268542610357483104328168759477934767205883014951778276182602273712037392919320167894810918706389785975664403222238541278042547191376327053656996764827265436722134741501450999722098163505193247284063054632696323491656674865684293195341924457468830032150876181076054755188094980292770547220796613807826212235148240623244572173800734902436943080814110041569573904973592271661288800910447144979399335908242050078452178492636642715636937686272935956792501869473103508656680301566711979948816823993868901016272643381415024816712236381985070804470065928775848767037398875483761760868494458329432346475756717399887667032421099342856897430793716307156072644978343643659871131646357015329386772407755414680350582863918476134594497502359418271340953342350371457623862409301308307084655662315358839875646577809248181688116933333410651385286954742025750701435280625491420417251228821470945306351738837182487064688140039125888078606465726152748785318467496367810881452258491634325791980707390605231581693748563327148415445400331825438461530369853462180789003198886731527286019709773647014113438710760873521270016482722394832155192046820415168497849447530611392407969807529696347439743598435520972969259378822623519294336260143302007158397967515615607281900317462831180723216132740886985687136103084263434285319330535822694619531909849732290366102279347956328077479483781768970351065332010118960565437941913144608548790259552823161692393510748492694821170693703607858074308563548650106107533468237705759387053103108618199255819202745250055265605841781556460531475563640093638961670062887996242411979375984221235540097804896052365697711243623846663622123150650883137231511771258868140159156609190642838952789274532601380713677052471021839839315646328063016180497718112489368762002161482125766766826746634276534370242063088135347883123076001675138517290614570536517407459547546630385651364491929423894407033139938358156167230390707521415521749602078352597352471973890454577744584591716331212491897739911481394384130195800838513919623724509757905291998616584555279450508932822224191754117468070073661870393023991996624936165942041782956224533872551863548064315153458341101328647068709229039454827706516692274569168579254615155222452844551539744855593900138616769847669591454395580549949312908648173697007424289257191491114924698004222591695925164946548104135285903320881827375353817067843832924425488466378830719577785677909268356798584347694526375438265839784134846536141890011783802707828390139531956640597163871540926903050388391166284742793466496428230885367665974195577910462113241592456413395388888070472146622163869991769374104154292995732491994258286238488044668762948128530247278133507290686076053591306029105073632790346694686165868441064342819586117880612663857739359665921641509515364265879442560368283951658955470705689351440614769368415645321059378934370918469308806464010009737944083094164906508044278048000641681963828155785850960192908489017394159221209515509845613002363594626700532869481676764225354026558492729114241633812638717786613925534725010954101389215027399740374929882317994671560454930041101013635722989110859442600509742713445975829670878405856164220735644176660243933510918111742257740380500191244575859778350256263685947651625466708440366169022554938945064643179493259640476225373621350598916282368901109453996738050277869384624441726347632207180992656033344433930719860302731909128648555989195093786406787285101398430298144771463223157257697723076344471479297970362945646229683267413665600855891484970810359599843179744803183006222040163149083397660028992644756292940778321687898632927135080761663600043530563869244449741659984818723493401961171575510477272477482502786715434367792009967937696735603438932545947665185244835572494818828193670057241104342576568283428553115817991616585811953344798145176374703535194485616522297637363429005388453594726564042651162385950622666544262167816637868235774126079334969690104779387432317365796037526078928404211440303520498760001930960280955329761442241480163612754119490950219165216483540256753640187914361804926034058796983293095463952822915104167193062441158782865373479645958684446597437692638501209283795454216012110990186878741330163999963592384293073992582363633887029179600295307462799883501261944613137720097155741858596251825314235490429087972140091768843016051927641250424943785865211832779160391970415044801040947367100143007792099291719340993232526231419178865103562340983955074843254748156022352660600797033108431786216776867919270932649238384020876398238302928116992143935081861427934023968051497314095231728149394123116053718100277198426953572962219670690705589463282168364051437957604943780841423335788325580914561447280237791448992693251750909377906949075230752792368040296461263954874333032976074128599400710489143996720335180384789282384707039463408735475929909583492771940295535061111050947382633626228654359937159726987668119076899011735132690642288874269593161568356515734109752712784077851848693918026344557128952524092721032434318377386789679169695683997740629111417615716536496991096094947074198625665847240795279570676432244518974723480263396576728671270828659891124791379853625948009030290712786444308428404205350745776130015958252463875282035114204737829868162217862288709155984607984455910310301616937654498151613332216983656906870806388121866456353276377686237830050058140887018204830503620725828158053402737452383445639560481804280738447270723496284135279396839045840358259044199916339840885648423785004638758857947471081374049165624650751077252472572035597049533356928837793708034329990036897444705304896372067364570048042570918221086161305351820985675858343982728794459912907542700174578208694461567801231486590941537201145083727482634835119202975876941769883077497968531672474917122252958316117114439847431016282732979416250040963627832523741466252052992449774442671063963766045732721625446953569617369294189321049245826109613981499913330009974613316863995238331712423635934409357683557906736846920704200758166013387257770270944801223039020120656131148896731497858687178638954095625803191056943407207408363184393638205183878921976759859699822464049775431624311959271974606959196959687095804343209704645346726448788765959267579570732420519121013484612061751515788190320689750304890648345045710673240184100771457889060580487739759934021083815864704025723706956532346118572562095135837775061570688880941528997748515520573098713059555000066429853623506231534093793306402082462664070976382131975120248918712179627861289927200143266053176161136197018722089435743452921300258008976925030594153709473221659255821804434844726344504448792991299112619204620906738099829731657798306546130680666182761454907331451813032650923941462838097344792225810188327669581003419355239028498621812209607582829973551730264940566195303301072772340524184946166402613359182661959924999551212191250519289329223731679219421786751524379294727044222796539855700868057556421702981264620834003162484214905081349575486268159099257313854421393053215247568099273560626150806348197853214965220861501139350813521684606907548060601048949471304067371528690434183835372081652651497062365113588543929095954416965543273292165553459505947501445632646312812565965138397291133232677209377242399804615715425681460082344965246906771433273049756618958254118558295271666711552475987880201333059313265862270730875455296100142362568761497726742558976609792307800400887079170621887611038393808863950718142916553531440912476363199200845162357633882222386573891920859679812575402958425996997906711344050284868255356115380912522210195547531558613570310694393536035798036514431050268132981873560999937035245233735659307906849118551013745927620919245061029537767782190890620092678632718835143950423498942399188054798322510829899356220463916048219250296002448197493422521010434106943725866892741074405704504258452681411057959221841408823867666553024774337393574964078145501673073101548923745683579691621002977467340510207985171299896389073558715038659822395568224670073449313485658555362834996168617155110897030576012050737591764408192899611205395383551438713202398465395230376225093808267652019186709750902427505635096653955282839994890451628859529907607116023015434973148091099986284284873517486174873757683743747331185731894300004220037979902384139990779431787883076476842543542539284733469303072571613587552665688811415173209702125089557138801167763223518330477449975104298434184131050676918333820209716639651124803114976601477538332169497693418664534357585413790368417903699917070814670227791938386259540718492349428254211355344727340550433775754103396281490783687041866131832791540688724137974770691935629584739182893928004524124281116899244532961781690611088722759010098649870618112873494837831321081884175827782896964588611402694539130654778024615663281368595459989282848908968288756968372268347600394006139392881875211751597619423860965201638229877608026767163975656553515297682918135436623599032409315097812771403974300737250403032875970218978291995224015083597672203165883810407432714365313993200403127446576954799906247024330950494765022318288431632138471227683984725428919088076347286203572275066755683573974054519751755299551986290183012044429364780039290369962622419952756479526191232391782342200679777806640638806505335218516017084868936049642671669408732002714556449034927752121521604568893653381500909437506438221235427641972892713660225660122691115691621625374822312564197897138192699726561707735638725658417876855156937296790333993445283446738189137474267198523162661007427072188697920584740485281771185963519123829030962071281199597922138982263459990974295492710581214894186592724106201146243117702071686819461646992321517193821010443268338013584825011746887484788977264754614690831034121296021890417257113363799596939495350723019837579485864321466353672444248984551129536226836120204831484763831620738674693571866142226411301512061029806346763661079497899250309841350667797426649047290701922975317703795126725266676327545188888763750518987335804456612271595551829467990167724458124530341619380225898499142500795382335960532619100030467533368368051061451579994491595576398894008877262579384864254332811249580226374492462385890064728324892463384212133966482925263170374553353211171724649752419564767704382189165529610787641529199752378849766807185882525059162948447881835144537261763330242272553846633635198423152850949174263335229320462841410678081247470407608353363934311300564937506129127532309229975943692114863755936979799068080469962812126914994949412204816482379565871421948939632794012755668076129747528836206406578865541566595536488427584508628450157673897572236353060737804640320354475458275908248356427665441107965850469292934078446973168650886935315528271764726673122259272314877154123800200179281994104750948291901232806353725232408089970304309556444795926969513786156599960950718855847297924786220926461278669444478408161121402495029564475257049060989150936991589181385106807587296139736757702342426932933906390743705940346148947158432489563900317086157149293588349093930302298373747587820619128977688119663950703734964412806702696196429667379117055806932922710937456466715756058397804424268672901877857755302632940278980015075852207756186638910090774518667158001016840305691037303375792014433122504133033511862880889546512515549822463817254611601066080722864563944031140687656713147032549692781842438631296985905252919891811986756707434707028839484781644578053183507273862693699256349078863648392344701902873402159563838637018578961356310405963577856633629268204918908369371511806164669244047445713102075686151994278893167356010774450340298459104477266348232366027396060399811299116393960357737782031247492794999025280824729017839585888430384253234626155387837089486489010024359826662275826462571943766931341382527948439676105150201185525869162744146329528632932003021769995775271865205375701017625535054993529797036642748158608156317946982692227843128442496304575003693253618934914450062226513920201780392939222913980022057638911113274530869475653012934102121160114782820898034075790972547455999417964392070324416332349412068398615306665007792754500365302114011280695956153132154046830391026130761917733324037831217487079732797953310661506880178891068695561650903477048290938527626379886618160301270229658324914337584471676286351803089765991251155828906426655205650216775563987098403330569519649605909846179794012076058246505613731408420378821652972664642222210355848553200444472849938278659986378789562185491172177819049335408510120872604053587470421817728907386194398525294811329855991304569127458855109995199301793559135753977930085574064119072593890346386252385775022140738924125066887058523848340689469298009770712413787678490722095694617162685909045604536829658592006430301738995899906171056138287376984951573954722412064426438505223471878520873699378687430549513372707452921379363163551534273711776888238764064917704937399352082788831561119967489422023306480732439365344829398803154119634733404177864082959872075514254678486698476320552047412986565821143762932304186207492616864189332435783755201427993437832135962687136656320574943434002199306516184160809653066159616728499524516660527198039368459058912274055139789835358003294595162169881046358420289976585221720892751934305525047149174884169851686744464014572130556542519564037444937429606162740271907608973211961450881701038973948735760527338896348017840954527901538849985036351395505337556913563322130344672958406711318677746829718774117239900424211035208614955262559924263060704613387808626862652562947070863724864386456597537330801084220104265951111370336962941206581646568021106458414137876873553751291990837900225884045894705785330220865360404546753873366724939119360427438262762689352522926823177689208721654810363344249383115977537616172880007093060238210763732793638128772304500107731005806380270521735051866561312671503858875767344519304003827838907273389805040927209787811485367269843919466390175383775337912260747505692544670738591019304084391826898451285111304028402840932660705657990550672469573269292662400356205492571887094254480547694129479416027116025997897529662721321675407373079728288186555743796588071283037849794188901583304913406432421329519081911496769089430186466158067964115289409853440081274183977563418329371881808731617590982361811897643924961814235702713598442872036196907691367052912826112241791948010023528690797513049524146306504044137540786499417585677605993680295445321143782281918240553823824029597273325322933769008319668168247621383939193454925286274063807747916048158035581299086117402579102693227398093366918781483104357095885789162264748161640993006614019782165059059097941892414593235114444417622338125320667118805522286819540219875533254569826510128817957215019171115378974831126525639902073260543102929981710642161595295673980180113890173176520175214874856836488812127284151853057487714520819517174507583455975751552947201962925463511679115383698612945791255239473979677259611954420451283417221061053315721846297991307598232159969387526995819612834658403469128504661350358686242419407988830634390282530536815805166771490596155075285921083223246282474273345908905101181761432218771681950644216098413461578711683622192839395874340105072449486200777392050407571589388447085519748289649338815831637724055102357930303404783112479113455321676090573826953921638054912369087978140401485105919507930827882610409705291558007193711640988785236147966264444959025696003829438332677711722938649556541834114128842133933722366454700092838214933468527914456722087160598053110733938042078267846874254217416971232584016165835555236299331309061354338545261641771032416124340916251010639784651817944684296165378286305575347201727422622918352400944974600457115408776206966038977102206301124923887432979015088777528366072610586978359157478429499722753038136352589177445868678746155020366710010047111026369886922538351050665124846912019936576156200742693120439060448290139904533014710301470407206278125098754109858364355061317631208629899259480670092679559758011304425679462659182248300023968871178932032791992540923662475127358472948010257588887128170433731993949710274927591640441671935469654254628397931458582052890467113758298067787489284029963517951505947457571912234738043390282700832178911787679187554351319947954618407180448077215760990140736602436657566404080246321098143568323959679092826137344803847389694187817103675064166662577361243268410389210258600900410273324689384169368545203826084582587630461414329766533286235796614829667628959589392557663398737008169328759818041814463760082426468421340227789923416159438004883890218603315166259006080982097872724616141927427525385710843855412878301574504498414796409804408739120956175169911557768601005201711675924355529253894990216339936308617828394346011253840246025073530809014756499053108761224037925943839638676834507052535041246866164739857736365254518808718454063394549567407480944142239312849421496059145229635261229417713772387882881429255875366512811249643635315287771474905688646729971702286190498207753786284099865109549759386709370668620116711671919430485308230131865508429218882877484932792374420149044211168368002912607717043069806646454878165896931008672553383138042438392803588058541430498626662392112778024271279167840814491518250583212730229742026945627314507405832035005638489082925193655633878608594424098691481914442198558840862937305832176783131889302342051139322336109073390322184845106776768120986784849976941277942871839640464433745546516542151911483042973365614540761345672137728681113219972619688079395826751292444973395710491920467602503086121063997861933460891147395597841493668065934595429494057414607750690143847705245889446557088257591047182453309235511224388675978180748442429040764926121047672889734154134168360028415505819676785429280208968867981943769827040418081016049008352117533322521984306630082436426174117577166855011393165783452805208222568100322838859594268109754872628948863179694954200117329620943458891098083499431364081269211208817579791129284190299233084630308078295328985575931287295790594911360349720449656602834150111862728101865907065776584795570628646665219411027924867042990827729917932153528143739094317479733401953652778520092335573327232215313086881561411077078088336349965412614055708006414372376091490249255439564185940451183373524028349493413324132064511188350187724015220551196541898286451434582376655894494403689058001504779991071042330609764580212840788713629650417424997022090112446459068527254389719611820349363822185903154801544067987812355382952229133863081407709002560050833752977093238850653998840562193299211688228004807436946778703827597998862912556200799839630103113091180513784536678003816812470149114261483400304869698135053933842403942011959416980141444020124039125499098792598934769209806056920615186482353842858715105681206843414176692647067214434050419532764729565834876705873555695193968983537554688869727863748539505095333801246080988286094326183622567478360720550588171281245256692315659972857512117288483343940712408877868362489667462309011737956122727137735025475147797631366228381438745535792675033716288221836644673745480563680037382280019642051662387110921791757324174802762429911604923606890473889157202950510516966565618742318053296510277891835341296654512843932588795636864923141511407415595525325317981564481221795948658328689847379965399171723676504029847141856526977087762498885443260373703806698508644250402800901245108788647863857082828587111540898736020548490943140533055560534988219075966414291105625572996932734465953734202898584708094477893239669212975442286397461919895342821421675828102529022581249544009747799965149918519425952167624900057063566364602824419675981218923877808710255112416608294570526252118822663006956542669251064293019161619511465597582810334383324778335397786785107027849629179190774394220587357265697118363977842370033073485617860100592182336954213416630091202906154756843302013438120162487068824743926853797818244043268023888914660881511793459713503794356106302355583596098839812291588850658933822234056361758975731019402705780292879156243327807109345175466703862340846513248988421565349172996688069287731035722528201622637672965045155784647752046396675384069725389234612709778772689963433506791896685586557546171664890279393323027100973422774573795223609770332338950238677890119145271707820470124318554411005043510210140386468286142222577513200614659694371285492552967578447596340176926432645793702251635274794645730477853293104510190351104653579825458018230310055397621693463183862565832677692803302462092204284195949321704915613377963447388894401486121725978735225917492422066851389948364367965412575114439332343496752944903820693077937465994203470166153029091664849290969570357812478731978314738500187184763528060672230822377934449780318413204360378480681191801086771598952575436813195361638631418968692062555191427336959163906709827492641033307295878397960724280958286620772458414350186806066515222541894941759874692190153233167748252462003987545200522226288199720702651287938935342257110402760118842005428302834640832630307342385544135781521151527988011286365853391120639134928229679871193968248523866988161602944887468706749451153531911712855249366439849175708845666633221564487574602743773710640135305607045027071955036873596968289512728402702929904828178513395281587941666940543602230693191375400564502186544497634498858123321977991235133908720208347334164498572659303082046134673753412369826273244477349535263925971169979551884409863582603252686531774663124325455974291459356099881039102599725616599887590140639360710392608499681703364480883246459543806039991910615986152557799673177497523635281768446350249276234957797195967910804203598282358708945048840698550421714270550398756940717230565570722723835144421911926224958083221715869989927707143199215885082093732781535246932681926791885761669553030457626149169146851562807380591700808060843708017769763744191574543024287284893154480936126034352772327311591414783553501281452273210034144372299638745268628304329147958102221842552199098301652424486801170159680163741275694721555307939132149171417531408702921483855541453800507630323057384587821251985560295876262080978853921703510477730273738912723405212477126182578467322473408636667461591700714768784627359392670977781792144926423723702659021342705593071293366045955201468251641716468660325976952523338330958788264182729594842944197602425411227155546939123982194036554607954168572920396558911522969970142586791758555964322957174410307561363410523049738984502073077383060555125044544971724222331614950321139726386520319355107791966334027302930707212302834688850453140934492203563301307545917841547207153545189548442242830936040012508925019365076387531770027333781183407558289256930526156429156795177148363545529460246884825825425747872246866009749954296774564633158483895367895616496278220404129751760024942935585385215436387080414436474109405668507233263288731124818562443967274417658731354589264325533505575591254370059788849365330164449850652196918262597668642677769013708350472936989833567549802481819132899534562158913965918694963566148903599188433775234187375784819796894013412449273405805797393553005688546344787123661324958794312382136806311641585504863726701696171400502529656519333569352549006399900471101972143931235366807056215453491095908181038423436825154926523934261802601579236235612104701202564331995909949402202806089341091610082839862695341141888385777860414156259280902328079745332391729623316085580981641225714536950506472814932276118632575267872736736024565970067214935842119877215253058783379770372360595065038825314033095047386292912359171785004735198118217506165122720707227976030593960909782723417644073684932165573510683228373107662699898713374651673746811645909019821949813080277693495980393329047328371203361340209846960267421895286532353990356092505465965402497996377800906919817199824630481520433140527074075479298618953320986463669857041065778634680286365843662405674115186828877140299154926931775196233666568754850240989922359781464749405542821816176294623424863328204779830622392546624331574353043146958507843437778167410621169007148527392582870070477762433403591635999698198483362884072096879950082690603901893130671736789188461933638623564717610234729355029652586277092879723048810011319747147640101228057637598495883359590584207258799382322201988993325702267915658512818395705417254160706169687903562668169337024653382989378719066171394612475476084313405021889269836121666299640536089177595231660898181486628335117106674935674835550370928248374808048213767813949250598746604548313971028066787240699388239787885654351021199460933603783566395773717052588713548734864677388323290604303411681841333112147306131727855198256671533129340420986560501909759354936579229945216663568492145050700536491559606723065825213711566580730330795568406170370132204768615138271256159487211656433092308766430595234704728398019592966964753075906959880403595774178965104510910803514545040619044098485419547029938907263289585270372590830034478511255954889642767494377969267244939292752015119654283925610327541453575365234073417126370098062254796605084287653123254261085083596603785648461368890076163642720679069852012299700879679738661494676932762898136244788503190730746939072202767082632033470932867263569296605279127666535824118427376118718453932340691250944850381648176081050892934134315816489527736809145519267048312116363954465332274930071293918132059126085538398287331604782416078379200089666900754572088184885578527422084779547595969327535754329012602849579944244906491829857291760938396893499790097485091387022132936380731383444139429423234149267145657921073289846961928880499604857322250220359896012005751935836817528770183993503420568027590559012466192262994474821175019726869125202324258839739638197575165370908801203967882700747552013974753486178707508004893705767149530548721799940095726144074613268020432480939973176767339320056855712746206877441267726069516178279300081564528971745753413550997547976220931360959309237805998606372240335118459838035777568710254193295055120413112342499754555546888187301525996630456310878440540665636490665504991226186712329206418316895654239956157111423536369023945398627463406214966984320520005298354324826155548032398784222199824501130657966698967944739320178348119018864935592469097500508320383167262693888557068716006076080215629647650854536057051062941391305533898872434677018798988550120297651712637581865986179387335088496428146319765381918109601162136487819019391668603296957094190870561476470336938309090562711433142225240246525843059759554315576880977294416939936046679265201473596192430756756097218166643485483837167240096326056210456838474225453518473685278511972596191373481729578569580726666767793189149940442654615472979938941818936666043189293632896340222773233104319648949745963623323130021566116943963065834110621687075993635093122021141569929005588238319852612397971927753565962093217374343214882515976418761212977595566851725860983033006580351075590003329581567043776234320665077367223020087941311432991413311128520726248427689829303130871507731033183031084175685013439739652726297697643961892945242129748711310632980809994739933076876663409643904525321008516614582869487074839775506869636069862615268647324811498655487551740821554932716717804770717491910277425716715531040638830540084077055788552157413867934739377261429816049599452506581927011229697244127902105857193667037111872309087771846102641316534982601606856694481677710891214163163101764429567563454033710372950708663537339192045430347683987075927451103876316342163506660468656259536959917181820863890328319367138539918323738333398244541585462052468742995206401167744780352882771235178152183279781739665637475139971843236958281947441354869431582880701371542692595865756541609268476695281089226011818884461785738508257853499602049995271355509979592943921078712528921239314154111189417230996997308497940469786777706330680889069340790777641456013062183133310521743942138578441491508440540836189520300437906381723839650039097842578082424810592770701342509984236272263775979978752160417648032690875284174877526900814628687890498883974763217123889553145279680664463065928310804089574596371063198185737330293016934786111575701357960253036056416025235809679201607812220541712585473979937462458668986692303280734819743162184781866844004207419218420667484127641906326776572507268545508916342352805002772113116432689806726944385249533141520175638912657602654806746972837855249673582673145259675045369754112706059071240738597867643122252736948515805949371328836481888901625015340371327070298881477611296787152045838004029603692477699422351377941101445366378493265379375998314345270163175710220889704338352806515651017517873153344840037528245595293082260462520682422889536002273197545384803611850349710748409123914651662448667421940523266672159982023513089420127530788650790586555163828944462424977776579432279015861222942864709711461851568629508690782340478251607812117197301914935964994655931232686036805160799402534396692030523073192271513659434841839163122718515059010377727124261680470674358231981070700426384934255597170002485108231196479462986723412813142642458296343374555396669210162098175995354132419476230658755495569718945472138359303014654562267685951543081394415585662324491082045483456430373678452518129617939720082378828222596086560184358971429326070721946174275420586290014535068965398283292919229555640047596460104229261116425729252684151897615875725958176526608512675306106198528745474305064349646963989864275271611640523802979207189984475551606841660470743541109970695809832563983870853162739665589781648890594407522674537911464951633759922324749761597227535967819813096951512349989084565006885917040395095748920048808720299580053560668172006194622775778469376282749206847567192092327631338624767755654513844809558546804879476620522454180464361275555055918176433901861620280210739151898994150584389364260566579630311193509275591177796856469068291088668578814292998940787049477669938147395301148830820327986375836007671347704329962500905860104217426334295572556843192102943276969463222177974298186315775874367177829875530590713302115240750884248520006361723083229484096161919378915895474663308523317882148823676402341711227363077198257215107123895797566128181529910555181850877872748272797902088485060680539731158788971118963539521424823918157063572256582245798502670935645761508105122633739179412306819665116420379309202095780878473958974165435485493667102881675813835147687356991753232840084691821363632513021958513649729359807469914570013158952169291538808428818953094874535619335978095475341661282594923804024710480737538423029619336777206071696195381388376976553690310143793817031508618268090097305132534337087547413027988429812555621644284353032281236192383769907047026243825170758449196454733135352976243505115454216226066560439135142851793336291094854764641123981823740267782855585758243356650828159743298473876099414507452178230791871581878301139738757938006094152067320197388563767147444365471619438911359462390387388728093957437394548304454740113703441639330226481601299811615944300934775610634219288736466422105394509928938545456943498526783842387841036624687704117203153960387891421720732464410753118925734378443127919391621421313769958110503038748904681111084384111541946727539976545878788189575968288119154164804674002379602368640595330757808910434376063819158553215105622214295394872055224063864422851359797332887808970591576305614087141848254343332559440687927364371351603815388330840894097042745797452162347492997824818349343682104189220226494207215999669105856763410259123721750585126300939388923760417048601703853422253197800062023415834956190866084263381972641787038278758467009244301250072412788837953231216392880022622201712245338549611692954083117484024669940007045396105647065597315622836833901653481996894343813855753623290295518809896768524261732644388711895874792597626990401724092658830836792290600638370073734033441955505529358945245555707574734124638015943804472396706593877642864412572932779344191009585027507776292198240796934266251809887103266808438785834008270521897982138335628190423558347890165356471490617404343290459257730678914023204651413700298271246958406924102370906274307856993329659560933816454278328130451430331291194753403130681858467480644401966267125741914417710131712339962769190498310985920520473356529928319061252712469224646611820063104427208041562967457848525615369707403365485556422554329841762826863599097952007015974455044663389460814892648789210004277596059222547466290480104479436124757600784577216874229863704259416846023276499384970377165341898098137296309259527875739753218713975886889673779768969406299746432430251182446683101417758411297315100769715117730193746082553384532302343579757497682813034814614005252977356686729343178871271661872366155586700785452332561588593535936043525738377129255409486132217334088173713801744937223890198243147146591465215033385819052164665403861116800668295302619520839707519655838761474799046845234568145381085561636120374223523655490812484824626496835650437128399483939959156948788017101011569686624466339074390812346631057733766806689780931640302599712957919987134132130757358113594610957576272977005583632682057654082156119433501787241000672805551115877561665652220713907080707275529640918902383327263960030196454782992610741766263125147705329039604372057584351366848390395783145005578723340763534714012690073591469883115698434869179014037575680827528239608285992247973569505832273661109190106242793349951824206912006260911088637170048493146317108165964466899316923125844036127006599354329357467142347789218625301311870866688907994570850318223097583145229639403882074341782952786829408985134551716085786526785700516581342886184926362109717086482642738778886988817366102404041008369066290125464839939363593407787733895680583489506499402285863089491816218399279528251776511262658853455866411181504847288884628425047808990844923800252907908198369567385546315701541030545153516688694126640091842463808424538324869486677547122544532350423322752016395319726140395771646360158213696625980899123928426031978764344189380293692669936256720493691883582870599045201503836843298983798982050981512118140871630743197588140347282424104459837220361291003285075077154860972968236907122728620054261410127559146029460335920661318803763941808841016533741876519105069374504484100578219202594835529943710717787645423897992861955685017911377575984489480124864743232424669399480579214294699973815402606386023078477025856792027731438795161385036791668434713296671094364490408845078794155891026173994003762222858883352576653710075710607558637124144407335077695550214393601256127482915041048864141455939921266439218072930786351347898991849806384274871117756628420503610794257219892011224299501918016016446245344092803554816762901010942611336971823042166155938410079238255549222902053846255099645724833860114974697251114558631742737515084501247458686095807283193902872307272285303392569066982707656363776053534626576366766210791044944096487213262142834149510860352459889581991253773387968502364764958929685081236107215219073814746082800920460927531383495124073777344183493512082432595434705554026877000518895412574654738723081565806869348872939559870560122681819029447741423524171632784485758775801034980920811757255737097787938284663331589188288671958806153618339692233642598088493482028035568924297146053457761230199918192334609284189176029487517508168055856492151844156043171983205395503618021655909498906791120624024510294488746129448748681794611466023600057375617084935498804326755883278204147326418348496707347247262664185216055142588150063110258310238535919454412351794289497634556076739447577516601195415859610857849600255011355832026219720232733697798401790387984177397241226834208795997837304272113978184508541598690137243024206284134553313307850538016863375403859467849200737675292719254452123461165263729594613955305911538849204219998751097167038313113447202343252504341668435051468013840963118863040175813579963451536964312301301007301462728881832211387417954054670968738924726506484832374364034071092194095302736520546917821768993127335549132370454453121966230394081407846552082054147958334515946330595989380584055937405641619662504407708380898673021510479456583546715146789716372405082581077801066157160129557099934213238619012513738138002942223003860473763294160468497008503806596372723216846112542024982285312802139140155949980058215841995049606821512714368610976238959335604050102807259992573418905250693270808559682736222935287169898270701023840356966429858012241827757310998337367855935330236571537367086496204055150118800377492055326174323115128457366967711727521531261767723430302125871607334867528965817749783711256902085772399419404663653413827494620873003286810696991480982642616366929876103016767916472454890584455029144825790331598181162567517351796675536548289843271702724017256347927378476344146817629737320839039602358260409825528058671072175098239327846761856736134529066262505649425915611647443484171160585217641263530433978902088349004160606642156916507312116164972909715197029342821915861328095837510628652624616565978104470478173004565499937417092957124697222506560337938992540249091711003181773988314368051754190879866941891931729555197497176044834960673286313452704750477242212319852368305987720365589861336191930553656526487853621562624105484333897157086737452117167482852663218436786511403556456229923689280455209739668588126940941278837530384854087774043938113698414924129371507886775320254096973006132646953436410339925701099852439356630127201926064940846832047066060655831129619117828346110656183725204492354321092011230037053583377789195162470310129462558132229932125206235667962833600110475635028037497821326528486683110856037281117687555770156929502179171788826409278053107173424430227483532536716744109767188972433691403085566792796275845000997493753236223029334306215890766941998914919503178639102931160291494167753862393418814424397948922178083502992367988730574510303643336367060293705159945209608286629134069479869254520851845394431447094712325759717466270201503059168261396983499350630128759254809039139340189196682995201369568067909070381295649170779946747754106651627186758266859667382069614246637764493236618998554510356945321282030683297260183112754974190408061588805800460736999130859233890426773973185440737918696348396315738121433773841101237518390027657408439125534094987106555742211066830598770771978500836003135528466086352617242669025099721426453081077906571905105934987497687942796592368976382387750360357951107557835299416089893904317474153102337097639832619532697857571471579346714721653384634753699004394960830498846560573720892268163883192460880191291096826750790717157275374473936262913984207100794491806430878087076424997390406741890296336954245210298361849732253911551243771725066024813527556846163024706919374018501244342104292430747865248080021082785470496649268473749796425440825520754577562861572756390953189914408473337644511469970701847358025055257221527857877404514318850963199410392701128095962027916778459182043570692842558121685732462733988269615620004559059926627800453306677935441170731453748880757975020679828284773042061528595338656097648992741953400464464626226435653230804995010534765090513052037117211788556965008912427759121105489160365521201262782183023522582735131261494785033192320709008769457273165610457467584864383193074152324926797626927045300028813112526755387040767626576049696403476396606885721958242206616698442952291443427324139241015858633485280967380828849825704394011400159023786171827090467686014160119700560832827618827202208893508775459052361977488047959283799926914137518563396398068390636168944279176414156525210810589301564984037425415961492212000517314754136767040710790533301900276503570844919255888437249480869399736688460221658674396863107073391533312973033508969640766235643840236539636780067490956349608165816936907452860654730499358231063224641646372117117571619715705960736401027265051097348470123658408162897609070447785703583263245521019608404455531258933497653302861043799919194854867735962811429472320164340444659083050224877101354874212112020750154777576216924384026699045790488032757992053448014577190016048903258098997943534745678647119502732590583437997934325336468266643537441307481378558935427327996131103764996530492647533582388370012981517797181479043520118668422278591474937779569739854565740188678278152973648533372921182208239147817321808448808547571273544364787965979100037224001551080727776367428256093937085946245569311388835237758355883383839530081636856246866634097066965056103811222241611532423092599968088016051350201842360602521955876310657130900780778444742257052705809837184052000744074162675379375040899437340447301935357924950155180769798738054336487750283743206298833816262646269820415389105872277116958157735292160145616310431149459417904732475013645604941687264822023589089772201543980183635769392085427918374524364662450573238056815362227353009955948539372809930854468993120414954985565422993625866592997563851489637395321523388139754250187250219812649137093718207044509330410346513884154196091101512648234433856279374165522723739218775303250874205319179346899766740879085557562300855874866764895683073587210281487760105489880311837932124354498584325241357410442848808424610869110811741646430186536278986043351221222116532783789387653671384176822509129241181851216219429542779713588083539047433092609342804910664856706498598252551816775381349119380442681901534176855376751653899209972427163075482953166417127046567613850644878275420904820093629852006007053050989975894237117513565560600728314158663135379227912209268829566069023126952896708174910467113693593831986509171476715296411440906096277891978270915228103358060255127638752220034977710479727422870900984997093253935420569801037547896457250660552806887122346685573981717222639685003005146223152097048078120852241524708452776374428001554801539636763695453860463330894630866203269700160052309089494431580371546385915887414182541499823782821965298988596044927239813264618030240184838589066108825774614788359123462267696126622199465194205651366606937313425084438755761824427516866514291309856908646804666527326472197232428849554811769725613837187845242094170326165825575141137163017788414793272137175827518038943145877665912626304312812942252124412622940743018480902880403138268126096473709463579455839958210927636444340048671488534668449743293544225673022213976560460280162511929601828964082158596938277461838310871833863190090594812411587376519878864492217296513846340403073552939498727539488534093741712163009516616581790223384085423228811575571647154884872075765674824372237464723781045918937120864366739401771299937834449374041416912812839286560526441553478222466306644337320443500745350039477366596286170610841418482613624785302385978272229960654718090505880597822276919284815663736031339544178469582477111273564754054773894567727186461037624333996041900683818868185738831926833213554030493403750563785930225878559482813720600112497488259084957071157230734712271530464198394020277079688965721744793497205676717943210166061575256285698381146642374991819112660042152661293308382296764003766776563665121641852470099977394058513514230139648728306990279273283168122275273621471900473968960591900157242864919066106692867962528739746595915772528905379618595999442255821162469065436369785654333260277577478370366425193440117220033340966982794417666770674847235744401936703202829269898785981219910574048308876088830968849378473610683899501441231514941281480799812804708961115428621067259571062372030643993622625053946459168778124729654464033764703012100512509218230471196361681869111199792395119633497929767653404222341373062119356461956501017869036168232211791809249055349347768217211616351498795410152876488100399868551416147390939852280951547787116442252997731305230071904094435430328725012533879853821987140675123911034787567179109824711596942875647040843392868067235463248750642280421649544757979316706630912855108689366274440402743637928553572638300258881829906574208030552510711406673892313104989594345319403363517141080759589631032099389620337301386198612353044208786017799128228158878835755019542763580715555693166600307277932563366294844516074815472710237053534287749917607876266861378378167326619638784862298524542053790085317091777166283688065927423444366910978436669599501674137202529542624031361593427252873001997541098915698446133373220844393688172297872660675356569389384306692081925088903637833883085549089265726682682337153859114230683911418059775604144531036260234553986927912520307661159557666914139188636043905882849700104393461151948255456539869581732395195824404165538918426592436755838718851158369831654686166702650457383052792736504104802636902881090183456292418984160043360452485715932948412645774894415746181346526390254830260503246147574174150650584290561871150153261610732910401376891256559163100571313751727236118193738958686208168988314405865629188892619573439808940860605425208826876343439772622690334118349654796769795744820350138377116244345985529957972779795923740970109791928446482461350858801336912505118282342930639809610803584436077609239206205146230876405034853283849551547246305401880206512843601264909575019453553147366884810080899416569826526856944606985031462476127181379455992575119319439726289638085284015353289592804390678273929265935835374406425124945280922538219091295048243125415830172399749848364397185631348033699748190827993097646987017700679313316936816142671762179416521228729437836537147046589899942588781518915696671077888893433782856385703068644204406175250373351679046759289243461868207843961628591276729110936613126421829872981832155859578458015276499313846006282099259200390912641383860715914384507536005960938197659371808795870044735682852873405942779135443868242549179184112068031215382963696542532633722125674869749223492672086781520849925179194575981889128036932947438669432724007542575160028992977325159033605241688844141411409125381367743472640624331980837741234532107084249382366573659435530533618649417611534013808543952354687137804695832140772455665983536950148980567416254680315907138432913117585945114647661008937165613170253996231274593789532377801235469877926060644901052376836544428650229063096784881264716531623854144261741339200617952061354202750111728372407682168981732894628752570387723973778388786404492457781242652969659974386487809996059352711235458544455222914390216755114750907533976064174673952243831713904672876654143503956131249878825886598177043792610963571289078165287340244205445550533171091833685315890908175053395698988329079649832909786608635666016027408758599018417682488746462063355156439447660906037448974970180757070375188896030197144756975721172489915992798364132738868760512194001742004746851531531382211468593240410736985635470970324512695531232628960670323718234157435702297370741779213048443324475978696644187339082711697398695972389466137105646943427627905070900484705061636036365934387322855605348131292075217469667490889785383749626287610671217310126226584843293649717438068221098598663944113082280059801590339040110102552160454756600056826731634231313289059749039275738874117569446751491643565747410774170937185562042937464759480189282410015787989368826465392287874255581977205691724861350661954603297610788522168779468199511205697748404887179618203649529683723083877030517962628965427464587744522921156016953300891776226455033321472300979873196644167697032714904363801961685427004899434459911717021434530922791544430275113491914801600820942930104590520480541646197231578719826532909378562691424292419333009161335348878124140756386268580617433817024495872920904483372405922553515139020012818074209468415619889787809716984941223372556158227686956724215193420640415939866921574283878052449459646804996865587805889870626800882231241861237979176407690245249140260510733362701358418615151077318079511339349399940306814064077409338246802751743993046372137254652812209548471537737179845368921380984768384333161345269239793581964048224543120062802679585241468031737881753295072709761059426261548483213994961589254080013094996364297553998241274924531141045654273442065830529611593603487872824819100525481583029669210730999445723560721161449781097278803898796884436427290251654134723049811751985785355499986189710594269220113476334305155408396670177529600966378837760464116669293195320734026879888199386583899740293380215164665100825781224754394597492919211194618104997644854406585201675891247145712921927632366856424157421160541640492048924313047630471380075883082794399378058311714634493343078889917340685082692656209600478798255110376861042844708296366362792892104887422791019767435994573008275320230009304893068551476064669952221531873218776907967301763558980893925219479064339605849251808916815240151056996353198416864462079225862560000103647943731874198751574416182336878459423744934076031641836368998232940787330237018473070314997264161989776801265134872814244933811481580396338181226792668002372357024722052812714382637849356862486845612630848847463310860878045463619715225065881407648805274820847621709354862588539412036567876718038764867204226492862305360500743542672048873443721793600163786337494933989496819941580891251199776093383927030805372144126634885670877804682255590494634984682092004929380442651566182055103106922783516190554868117420854996098547281693915864954306799810276831445301748142474410743906904632397275260975555380232542913930673135520472753725133366357598896576422593623415250494413258099883106975586403784629463353037894294941164893840966310129962325205816007603894263657123881242604815220467140219646828880491110969219241297978839572113466270302609659802984417005031195946215340326860970702542169777818691057148435556840907421769157263778787323128197400658329702318189795149046823998093742488121444814616363554406264190312730085928043110055368961066436785470869809729451122733093107022084978443036731315457018224088740415560566412726184978434347134872050939342413156773373987603991327832641129400905167690068196463928052463204831665281175118858414449491368718512494513612963439923741548546527920353234713062982410036610052291873806006936119590897197870294728336943124301259068535360882681495969480875241408695568206097827250683670873286866600586313467244311918030266999049588644951761592167608818473653698565662470498654714380005022582522472041441961231125353608675719841926253113873195119621425161118186209310583639727880521335681701483736824575560336711914850268061193580213832852537688056882028755854043920516312304119779494535422101569788865662093227036047692956321095639801862912261847196716972891327123752646886274436408057827219664534835783404994133112010388842772577007200667758390497398953581358962981579294962725110138185008611095758320774785091350373876585929500809023294113721372685814710494660539045246650428920989264845004638802193492661062245837727221822347181136144868673889970499283899473568211086476886866370673911038001246382705655217124241169752441691646952357567090867508804281548023775376598657321729102577787304960489309899355261293082134021864224658974650304210109519584480709243086778734891295531252954559617249125515680536449963156836038272398111101605381059768595382630122428612861237170954150738020032329315692022132009233415960449827582359138725724721030478104767027924618051980572602668569183399679659365233337843648823218124230792180127189875255885802043466114063130514201487090909777335544987572598755204820443861003268620885248478132042694234334758447875370582592578436634444954319084645098575422169782703414058264154085435942156637043692014871191023539754312255088393446928835950633071118423666369226098208886271365943466326791577098464627718842542432865114177941775522950735544173854152680925017801621632521649433064163868114167632730842826847689803463493468540901674706575542713848568815193493574220928804579742625913151717920703275329230160218880032282185831698035730540897688509971301594538406818504279835470710635642767887784076641958882295429758846024362264674394624288855064756496738554321517981995568816389762595463606435976033406152598876438516126564078074634068932695417274331447547172471334555514464923669576936240946550164516719174081646111586244514721202869583269117420885641606421519578203522935256175648401857466558835162440968902665344191561074358790736113746361580751771615360701295874924593166290196133059640827060520896732746860821299289761845221910142259610207544481459619809241986237235989908802437445089869257481036513103783847594771687019328259885032877014188229806027698723516926071091633456146567901019799416591373628199344167638641909885845845360806330619314357046101147253140307460524688255215156018522475272019247374746778251147183364208926781928186160451075381843169702855706250445921094272372364512911435506205350800025369120318327987793532659137529433193613781646039613746002046954779604095622857463554039748807775456682684438408808632112100626146328131115673092497624574305652589724276226609364431906793010736583073667544263218041859569056658626495297854770285710868602425569071819539042197910154027170539207260672141947950049860110669343040319353351530218711322941446801490596729647075318607025720686950287568856534042050752386463784283070564999678678636227495000271724994059025636678420045925613506953756035358127204716901174248804695846722983666502014913039130812896231494556850171998256871648630996176968032133664017012651049126714001447983875459777286164112494771468306349930457646724576167515648770813982017535186583422168622729437213557527415392400886764891778621019744453776383115834893401813864487945113153758883587748239172667955213541898130036340667907368477438828761113231835233483690546354741057242048048257447018692528886016469935993940312411445870515853655099090250750705183486250507903384844057736885457556079047567949214669302245696330681237016057937106802750452568383794096047921322752099178542885951754819387209563477385598094115698423274846977390532022954346999295875098396831826412296240571088423717494835773700588633575652621560557661304144756787658965057989725468430699142638605212887029109748692197015522923868151016126241837927230041083082934534215564024976200100842404863535324135859693685425704368284770629034574029800828160689569979810320592460272358582082418579707171474567997866310612008869841648155777458084702427431796133099768575113055298758470453321738701727499989403540626494977396102350657656240616019526228889989911351417582958975139180873634044243769602864778785210472119982353997019128840046426664731064848156661960493060297938934008973407425703719959369008295420997341804046444226768766926291227597763982849507911340821575166217534471795338782940587497062564189375242268212383342791012966626072093300610220090538615528516335950158594251084540606213312191883076625193514009042844648354912850042547120614141150035097580779098758392028958375085678300953357337843000453570837996202040555622908555088251670137284501033534636281829733140158962360087764277892247372934140756498171872622596485493800701066451831060381921819091216202443333338898890338779999640504010296112271425578638853628569387604783268224386037285697574567646443362321555517519181072347772604107119533438624303354064568308672060458315691168594045469510698426101024988416952373182628919111450723212914698676595667788982243093561818913920585322110855908267330201472973879547048466203448552227646151149122154933039712376873026433962773494253678192096830444327969492376148959793956655033520437817387122737186732547914127271460286099220382372150592900640117890952670292048866515647654530331365210402651247887993288047062873989892326929885250535652216712431981563177717007878758225032009468479589036955218371154155224346382680680081401833269802821860517164183250544954942402042095222390372703176333937739113001176846778621909482000283232702750977921294484021646640089606310754002398753137640289310015299810355915800458918375718462177142678392857692926928169171290236986540148071556405002370990327614506718865173073079089881250266062234448289240012170904072836480640795834829066562619839341227702470786546399851499571344648169481325663573367488917559753366950803469651768648343251415366863699264795176994468329586155419529076689770836523857528151312835675693550462299555329180460172288718499347754705094887880985457011846455809114052429034497793204169754087123866446000359740991614824742821394085090864613154468551592335890674340092189036595676996613366417484498912946449157875052891345703757414687277017497504742771338813762154001061572524578325344304896530210582031586552789763539246969776947755309411352060904292368778845587447336740097020353412181400411558075114291208880897893675153526450429723561241017042640669697765321783524125172228472109524207683390756395624705373593221304262768098889334651411786362353371655943607162524944726224167656714890360616076708040966717286870159296771947319479837094133184826763088107824304807615205560004732579978502194610551567657112102215957449632512360485381556271513785830555035759186544909087958036116860670641205374043920861842646362610045655557721029758252213862881604223487978650984403084875294770311446068032626041200710935265977161081838644122999551189978926526601781899152236099118598502136421422135426773942623007116910572077388947237583734024233220341035459163282772138367574150644226941770345724242776232292087199963404963384794979755417138730321862912718214291728299624528895805063451849131480075500680599793640110438647807260520192558088540147230122398403598841688754285700708216993628890960265499767963055284115088511357819757067811952945104474929218545774316427892536694623877251391148528713495595486004346310853846277436409829964924317101652319893036513902576184549915997316556803078624823381062052023734883036584265234501515872214054378337617351617093737181856853777043787038207339628249215176840661030073519391020422902007500386863681499671358464224547516033307084989072265719751307433037699961980315625674313322698876699129979815685603832990376981691701024498888566567715772666778990187715460472207648337288130738192169188845910672307263278677561119289959429580121914529697784344869509573118480128063896870193571693026387597873823833442032149188139570242391127049515742268568129824133398365652684855999612049378207293268722767524034479991450136800626752073069601431413922035760199189502615545793551110441883056048145366594740606355463260624519239652674413319169710247618430478714482410476228191954513601064738209562485553484522853684829328558203986504755716515638834089869481559562428116251901940857016504476786539931596210421920825512042520745098018946405132613245197373609040708754976728275183574212697054695135932664570198666172074799991875393521060690814678014130351460563094951306840464471170489490483955004311614684735767191156598561000117355113888842397189186719623972815334015348463760896267892822908454635608208509181121437200650332146754938370388291782222666283765006868364458484273423850900006336878998265377343658509425997817346629541538461178147605784892045144065878617883489391206858924502077011285882697652310080163905653552952350613740054386653162342818837494675780265737515619928704262253437328374854685480908559091602175868844179571264948586346128625251899695396343012617047516379741584793278365610764700019813484098289692730864881988358944699959234772119290255858339934456158496619182903797441561449175303489284628060133583709917831915100134071633850033510783849670948311144989532621007441780804682704833244755297718385715000128123327448807594127966463194532574044155008419992176215083779241472955007046113573398366215228683722493530714424683146243538211942175529064826112830021598415111411178354286488099928215183024251559558601333824387417438264166986767148580739404131155690101927599854539383197168047094946012085888770623236423061022336480403066281692863386102662973755504117633268204736362273479490403555554785479163211471446136062851606110441312679834132461192319883930604611467632777807436955027568295384195880438141469645257429323797924385592369025471257578604678280479436844783890910697703226658552318163749534830848280466643113518082080915554707081990254851136761298500528240186537127767902873592900742763680740371341186989852598733074498382031791835108519209931234151638941957932320878236171417088947072274796213466254832202987020934968298680860986177941910937989805486220629090979593753249140073464971450916076939115933142833559201846291522671528384780738398402099219467097850847182171239801719541049958569879255564602099907114256114413348148335897989811835406040271762228763832693745816755899143415471702071303478670440826640120477725992554089554392957354288468698769098809161496744674563748163670917272836835121599727251092656589855431046682701179683211847970818752166724345222873902168791536148852278206242304293097741342849796170048221194107119157792563027759934260139035586793734228001032942486934461667922100374385496337210272863840581743947176016931625772389865574720625677414607902984721511201806351767399837111176595571075403026526576218545692525717039200182996619152406233359892772326003755268720614685118559696790890859297313865021343654747864570302699193198038653848237954945847547488318307093169209357332063841038305886198924293324465544441445524523819625791618816974439611185526904693156475009335202962169844316354111292517050455593932307438154183525370677315040795952679948917149984316430845154130028562638541880355951880923222409300706771968637671628254536665400539646827445785814549468498701860648234339840450246592733510342948311296031534372439294553574960633979874746290704444439815956748515677965836571711605732364947435419246962225167821490600493400812339611392331648455388748497486763520866628306990190481017989047861852533997470138915311633190543364477001668812691336843759589991266867541227193107220273228670422612667070791341151478089957256735380407862331333195269457859506296025973256589838164045524282517166073148526986064970354468422613526346834524533962138450625021667136080618983059460488872549579557294120871140123993831165438726078275509287730901454499666325231558113645829847054572209573144659125986753956908407147339284266341307885416033974282727404310182749924457046623756391370116466196662101727109774136444304391749408511404045153547934274547052914189453488369365260394953817902905438271192048260933880372075064178502503789216713106118762299359054083886515038203240437841160922289329198915845149646953357610531004937156682130658002010501686007755079649586517052821131270475052289074249219939669598162023024302928990692079398893068710885674359713977028015329880017213327028164656724661384051761618131339893017365349608673539738359285604441172673911024035032828685926856015077394569868629532939709088546845496595644355198923426917188961629870763426483453689251941082790727200386807225248455476216399210609342165352775579385481796406439170159346556077416290738409141056119396639077101272733942693017105748651098877278044830370956800413315006192955605144127686811138537264929652801876402754187050560754337319943353922355809543089412977370335519173561777715789682218548629425741932516867473766525489250335479192014314193839897242354600160068242268508733902874609036073612942631667851038697214418735308719891846968535028319250493659077124648186688145480736937232232727781128252086676346008078192735168843818516667264438216454300789202210108023101592129075117362573341749736369446304180052676383559662118837521784809869134576964432183467371173208028843728164589700072473858959128783036698214861041098493208745598031884212888324077321657847777906061904359588799443652379778561248056800233700664744116853600360447547528692128269560655463902192992899861735734891163535311780351392244985093057799174120581071936933983122030543864437840543735534751268609618836888492132361870552480468284352041736828171349288503745199993197262778705167081403298575399560681444370701123020837689961256281697158814801767103893074405604163043370773964926570824691915277833177331050679620574369352476012816693151490006794327340944126178374055547460385032838152828886224309219447352615287966544234422974225670397830042088109285734630152125297329658597325040696369214953445465239059330306161094379504973245080829387560253750673935671479141962307872304715237592083168038734792282083690715445350486708642204386186014367057782998132199124058240942070374119376085691056013334871726274556982610473770440286410672047467482802881262042095491326189252367496692483767079930214348553651346480246012968333672793918943764331940976100898106014275864841813290866109350189140471496275515189214425893106120488739249162582456573195866383132227177861964168665999327358845414581702795018801736215086083757836008840904527338009117499170756769786984877372870684883441726709345659563307776774301463714686306011651633658280226580983010914367224845462244453310628304921206633714524309452242081810328799617017416367826796903599864337958600836738815410732341126192528238428405474504916150732517659911411491427408963473804067450280801742465115505610742964663134391026250245264299810137714261935796191685086535285142934851746967308475867794679071927203765582370482173932967969956254975341698543514731778037345445556591931679450581534251629364969199351848726008357345702589833401459216003763228881472966680955378415069067629511106384824996957128040593940731834903731211581565699455428739027827049860561664592190013115921903896822559687819847616211710070212159501419477320875800756920103060432020025888447599855081397657795287941435739858430507089873060114541337367245998858601558002502549441029750800814654923036351344001425105936050261053277716769288320286461866441460741007126102068571335636425977023328420896574561863354162276569643118445047592260924604991096394280356924136988385411146369801180806569692588328938413626732534408110662648518967306462495282866417913153990743230338615034257763803267416224495951680966814188469905638617499066701139974472723573646368892257072567561388280770718789923866214869633397587993296433078442496522144604663390262257760640228067667345956922962260841587699862870074557540312539417174680184403597460616315696860394368808788577327632200756563286377868948689543614919036605447940089384248155914118038317930180285000370723285396806710305075435548304146947573006339041409316316993213817674391910931883320172163821821110884212542634917152336785920402026967135502168412059029295921141067339226415020194848709582047379971499390271235142398437785810351395672196373082148891332295998746669062060649191030770369679686914873178684399990742853479009423578672453238756804740479097332201501736781876091578865623143171385017231907535879196702392308996737768829293234963707522092321585710923052675728485803908685878606706598138568882242016106395873697627012211485456017289085685996048452079800986944849227403242502475871146622354787985708581572838869318722540885304177165704798104006325807150577508808650771320057267526549754348761544558504272039902944188069239215942214044172996493738597327824696978777720361192567291992116556795300404280768634621277323805237376393212309220009157806151460429081704288713260347209830635569516135417737073376521468082979295017496712603070585389251397108368794481634814995604906581235298051723819211367095247595706387210931664457354668224356850115884871784837457448803221028675893881252245153478108160859402766726013997709679050348736981722661336365025632255494837303790811274544989044791989315422608764795634024515279379802850288598227358768063031572519135799658817644424029074728671192771720153578272743989324762052447413221481940028447502344212234518700071726843586365487005578543702056132015199050962570358781178265233046777111834855154540637136392549295692221932836221652040807803099347146661337405830035884130146313323949132483257192357438011344263689834031609308912908086725356797150782145714715604374426284395762622917628339527414337140415535472419596563822833048239107834929288329468911901722905462127436425223655371682674611704298609325917085314793019680862321706896824301303812515939345495093029456714717967829391514991650167308211505372407038428313320955229546515834690864500317674434131745111061483349270228303939342046936223294606754791882255563359325999727417863855057750111444772105444809585234003162611216019401300122854099088285433002264786506686772181621958089046170217712806456262732321221213637233941126492638880371875728764955201121610233739769462681996469415715279452602065824482026551281803023848279507326532768835464668777127572449093310789743210960772768030518812083940820266683989283853903377494650484356931932916677774013304828493881971905996899231481102130132443274325629859533426938020944128922560089021973584870433670114403972061100637990092987732264322066381923181269591024257690239049365084197838278289017554719761055093393680659864708846421441206853891238814826439257760352109644536637275804923930139712903848427496092047392046275901368237007642492408727153410783084133489312883548953958973466379005488277235312704374286855406271153546936033113974790056394956080075505218665976018569687831850329991809751482401644395527490062539988449795467064232794644619656635408848144508144670556190018874808519285786679348709613796972476106591353440420485841765533705741388743872438962604133231133923815960591766049733178879244101297819278205089891429371122983629858170787693088526354335149883749464279559943101004827026042868427036522990466748464518035348927503048231008595597802682443540529875773646329451582751366809465431230760142827569306360272279054484004166361948080281602297734512823938672004557267929383558872476369381283062127741236159519809083423184752084712774220462300069106462326157011446526019242601758931394716833220040523412234912405164072786162257819836913753026760839265955137630257372281247606611499407541237257445044572057988011833252026124784366718201364863493723748618382766071569773441551435517936771564419777489142853534488813854152517761277497643834747410354511741648391405329476807832957145880044158497793105794986623696108567395034086548106723534832735522500431407660956609829290281334747505054931577921661162945438485877227143484569799763924625818686344726987902081353996204823363827380836116962305783384427369035073852525646147753353552143674355390046325843155013734769722633940456723357575253559518018199249564549093661829169800237191891850982855046422264346610439932624917866944845213830197274559139543817741949976284556195865983243130552186930141587046521260000505388099182534503755271414745318227602575128282827862021385897166561329047144630731200193295673030298497409844385465166111815915774650371916321278469490372432462011699631866997370287478288867974444932829116133238055225586687089233965149707824634331690993381296968536809895834419127295887706382668114356046210275279363095010888151132275862448329555606682830762098015261555013352794961129689612457369536227625995059455526640276879418111265803985012879830454662596946462355972003095363049851629547353557425943207983233249491632766257230782842738356685606496480569176757363442972728802465924817014941977067140016578757741932315528744112393445811760306924776590631823742293171257481441556304492113254872522070909480224080777084015398063995342686035220915657859820574886276466569356921620810888006207112626387104286061497572563637945391567385775418400402043185648550185150444053215647472324252687870467054959670036550818560201198438060680661037105053902002837347687503271103585190122014852576286071220178465626720931586765042376146590756085797821153896263134086797774035371600934333262085464819086501938464248723310446039730601584037176470999137750860433421183742903406211955106996771811656302715320847102454173579500790779755650998916907636137589646636155058347103657848503406562344274938743867277312430729925229898207784035829387521371446549827550125251552311684750273822724784707237264101127135721407556171544466598358867471357041248715622265447476351601733191164291407032129641190120323985560895682744489581960517585610639098497008082961346540236722959312820208551748743223414212901676911938622605041963694230810420620017359316587511080115668590454436070213646229887315372706877725789965645080922607567674520239770360795729507246290776966030674451777131016726976748496420447010826306847473913441128164293850070288076383448059034210756509454830103245654765483215623143961427055998076899785695413839056553446033702148691661132036169438400338997670611433530107874344028403187614067664366099865224284366802663037921794766793774025946383781999044911336950171776932586001132271198510587033561285317283878643003475044812226528106136909199073547206252980106392981152309556700023252171869741909877525157005594727419600549006088606682570881957962363634238580241672404799359704077017901539715819009246470937538205794999336233141703492810107571667955053591153572840896912617672949862613524012544214660153892539634465739149324581779592913658694452327145122042431615481501306259579116212141624952028861167001785810530813072479960947123957022723135547843877276727341670741292076996195686513529134157118438659094445381462449638070789631602157812653491766244146144532481136217525965536196739615196200604952781267838793105885686284028014686524406140810907001406205763708275287125595100696865168832007826067771462096128767758109469673028371788195859443399759511340722878257537948655242368295675680194749597290209555452837961613880915586678089165490894985497281159275948237039914532905017399797542464504640792575553273060789561124988789291594720319127864945905737854332750478301022431699005288014253966551955948384035638864057796194191980166234885213169041539041092056964964813702253009551960674689415316697299872987396200208530164124660356685834508031754267874052750480169734294818778309370839628330736543094805279161649052200172177037950821017622920099040891978466086224837083669980965659978493322686032570258661616530354216931903188137413596728399768817077214568860111191807560810573124158165886560408136775153884363797743213472704616430275407459087815345352133607907428093160401690403384744130715058477769805332126302668630867198715233145884384955364056558455169295113756918950203869252039794963475445068938879462006255523012509909962801780213422723611514640476981769117260486275823053592845068207996452758103569724363793960506650937602646498324849672499124737575545383282544399409220598394447109754632523380716236085219207298975518096573329881403763171378166831098379543596702972137895630804972860467373806558519256505111647444972102260265097535037589668949575989179188313456014149443083240417415388567489417946036594714338873840945538604269870511865961543525873814813703787962414809592170566167934335991230439450397688602269475431548502463666573488957965281389180445446626582511820834943860118883435019542182819333294932726913194883543129524677329081366025075839842558796997718221934485738190917813263464269913829124109332257509666713983102224148332387344007604692507526087671674459587077347496960435879233325349753909877283956242395232340818685539537994030859335337611959195044653045372921528235932829124131504145636931579323110225539056752779244680741414166561925588129848942442540104006760878879182221808695254166261073331733816327321650147718963241786741358347711465075875921434974095777799444799807285611774084999490173369823316990457218384404411121884867989320665648073150880622864378233647582098889792385792133758028810142346121750252180803876450485590635121389198123821324485343850856142526072450256633721719356051084371441316662191135579672336840409337403345482471671592009468132583574090279456480675163439573154973993173340088482568331541962024246933366602132368093512642403206054778656619818272752704361215818762267638773814881207319839774168997324645128119433798437422528306858925118059737741289940216803618527216539796992620666761165009891342551418990294433132660030051679503457206274506376712501148920503655695208199844972182424407496539367592789663899514752774770074530303348399317953207902495184287170911466901469252813697978584672317314973082990451285048799437825171071967451198082439819246698220315185089344554061052629876333895442385464768763017726759049338365697464900204656562392869087174141675418611810289324927351677790903475610370620863261343200306986534245558459414722973312626902335855850057344679043812636081886028210093920136104373731393429877853663491920881337546192051685801956308025833043107336377733276415879521738698466714218556936030944060379491532028213348883600739973235029175729924114731676429888017460064444556964800113114110382502606651454782093715472969017336398913132089903859006665375564551479524279190663405217501869966984328166319587706538895198346138952176093563774320910174764763159192881772312264036144490634382017014454187320239944563045181516584282752463333844944430942684776882742688755582120748384275830692395716696599604453658273920517956296168360185618437373262462028023902889735323981833333533126168098857326656315813368501036755862960780160903002891042776188359396089226122304934854218729507765410234576831626676600068912079869267643704349531978356401131362994259101059793051875415834897597297635228514871552199843166044027901132313536918841564656382797097417713998426625304917562172492170342263362069696056721888118896884660425494942629926538109914512218441439819087474296877450996738785468328406648393541756210550855150696842368849887975682948387211606217373404386419176843806066000665845200597394844742341287713350336750901804688111079695350378223727912029265948126063810977583404550210597856660157811931421867249111228338027788137145890645168087334989474718048349688721410096963842185288211529010708835645951444413752957107287198019477715042112292588884945114643141402723298628167981476929653729342869432503713945608931141436619972453045610947797341339871638322440936800100634683610139393201238724411682213463495192123353805520184000074385388581252735003454472243877165900635744703247330983260727332280953443962394502223830178477436729060203634675162109507901879281621234456539109128387191551762737814354068022962168833372510093229239492847426719229816405063219056277709818917281543052326237333512471745647929090718497533982433576480477475082276790927032627249127108239311838585942546467108489165485293166308328493006243492849690194936989341792706843972699989769613505041727318591166041370223635986786998108496951944539171861698085983499490062011631347862868294056178084928993088511201401246491311867093536697302672938559973661899028171254481604838607610907065462780634890968957818053109946090458281904605454519972084566419860622618734592435551461235527409001423746519265938218745142384563712457026313207762294197207846933472705615073053771048548534275145977208605301618868167471017326042742482459632716457743357614109435037119602982552947350114741798357863506092648674017183619422905947278179521748762458035312650709425682190946241514162610248513250198153391028548703392749465982618907675993159057982452435560337649590187873450379476251359420082589543037598477470078370905876990443606007354585035022519763998150701529373148047532805764465842027624350546879255330860660340518615230313598501551698112482803641327155778219209367961789102949077040256263156555689453782022112312578505977970191203059110161724386664738066337477483972571139983216568030141986427379663420302804645116808505665440942236738074413317152361460841336391993211685418256888277133708140289172440457077634818354018129928688536694091039417845451853132271992071958153953482859782672095696622276196890043883006113942149078431236110415840425074349081796269161220673576776674696830655959655879019438669661196844186863265052911652786716301738901588023350824246095560914518986482719205638716963982684316978428673215191182322631368180118892028726874172781200095184745852757256336510340600245822868782069539700887060997747396323753727183279057470467656358393884407408827627245996788703695460292666196022348684818412681250899165017245028327782501346272406857961093106845422007978595490339013562668938972851075772716662932837727874181228356897899258116152049008740640906875169564625738852657760744963557072660861609805088635492323351072726280100043987851152551337413778160393227376803444876340464941451623572769309920629560862813093942623762232710205678706832794244647859578327898660032799082458921729411507276500248198061642490913293582613050006229220285844272441173071314964395621825054401706177252335603113757556804628860984984847807326085244013627331809089004459973348429029272084846992987664401987964831045243010691780978957245176745964540524726791821927418738800005473474959354447712541485414960660786881374302446732234952994435518113660154430134492185781127441353538901262024145139761816365583417028838411871169065920602354021932203567895799077941011711710515352100783763247551099616775634773207911236337730430153019685573674065955310313627341857065281003890770485090452187706510625551686337978433932089232927085743330602624533580353035846690329380200509170303211352206922691365143621100916614159928747545762434170959012401520995172280208613479433035773341462863000669737565865906037545940702124878284835503024792017037447449724535147168989403502478457514675294306572357094816966726303221578502809380273841634295509238403888963016118164465778704334493492856012324369213987681347339583997393694113934721871130496207181908666115560190981785791428208394293178514761051357563401348671401851869774523466499688327403017891744250823563739508399382110809132532477497795298020899728959010805008190761762499422290579285746505877384945449382925886792414747048067152883129537514665635981493720473841309550496373166879877600208064316943919068633129009230256467699726349797127056130895802750854616817614876472550717179946273285665311803865924652586112347991579497695984842363413574566964349149554443124965972914243046304810900432298615248445948810574110833980408440477805348310946253867273301127287750257780714439421554306258054385195986388875255925190556616291289598745884697903178199715960588547315279370295586074773804815077780907847042506671586035855574742533646267199005098598964787091164366601486543975106092900678099966697422463630004901961632890330485507251959396608088765715738134708648191089158530055305769801959818906200661300316598778935614446973867160529193556412980457497320435061281848636251276342165866861987045487808663705172587720310761239772906519331851015547310669608851882985024400449400684596023368818491544796982188245383871097084462671874073720854096278213439092408252959177914265504733879674900313789788352282835341715279166487255676206563514579197041959239353548459009948853207909723500544460913358109482071889722304683704673055106251667632110667991654869850481550998287980453049932692137650199577439142749286723008306715493559424975970551974196811602678103117383527239668334140732225466145375705585141678141019060777520521032565910043011395756279822042468099816646297752677509678668074464085037545027270723353785474099244406947603459018368765677228000298734109410026792389448206265988092391622735013199225542410872697831264611567127428146076315224028471094300025648607098750281168317893209431612308307426169193730249168896759938477682207361897173785925641767582008402017409266094130066122546920205929734918187240126490040394125126850618307171141813082221134605763973818133832359567777939466668845541880854418627962083029202593304942067270767063559836322569297719599631374115307249271092115016217823636110830379640020511847922205858877787615959475535602243730006855718694601058259253923748173830340402283752606166981584754143986615511810718887661301751131093678043006062473797224949242795494971499404108131865703133727703704849765898597539705020637968473625182777362739122429631162013627753893404144942644702007388910712776284973457593941833867723164557934225542396759442279294249386223978893933294888713758873820775123809950730200872409218070462092798891672311517053268805920192269088915747385079980112610045226897794851873583511741003273393060810484555625746275050459458391454599804965871014779154735947246667418336065897275405494588558866672206851164089453391204180954962011287495036150509049262852005484870106532943158589074021283316944084103979302011565258146574917224041760721041356681330766260812697030767866660148385293394689492642720810418440469974055750550477700920788380804014474949010138099002045569590938475276821432375582808348207896257750985820156941751730480353542433664989577954595711916198068235605805602898570205199065189641203090449622681952354381134476281558480632695894936431062146602377164885211480971035311997770232419128211754734812219482061298512273345474619327409170763635366204943500070486741171710431997519108538200150754667444913521678163146927528143399015841390208437130430649080405499210697305248354572698667756170156301204251623445389802679717815496751798108994754475444719251790909685927303119420482385205754971545422859073623100344665279959609905675088440054052291780887603556753151519838298047421150646260267016010414349445836494013680759440144953992845572151065831914213999111478536589634611023962778253059450133297264862892195477757889703535939786948960863610982819113799601755246239655168994582952001334067604666603145920490953403385541352613664990719873994204639529544562735834792008120463262386852586039537886996205117584718627748024182048761519163605949007145614258997549077462128402222199843098576464394705678631509247249112012129782411528591012367795705609970947078268293058692975042407457127025540000734902291497135891282039265032947416394106154750378212621423200957649576567655757805289493023602541608761952093396623845800496772436106202631708641889183793955324204261257846642259007467669121748237784081010328281313383255161712370345551391647766643528377718244977108764519528746150208960901238854183046104586136309973213559240235957131127637454354977630013198225774500901099908162985838318215952371846486604002335009675919964198702701518564070125479291459331906695118498666367046559050538587459246360755999979009511234683663537377460434272067866091854618201300782808106148639981093006082693838844915229633981457614576426757411154644862051388372313308516639513265798838834988383131212498822937147074364120167434910765580134126057068858954530220512230761415443424377485272964332928799023318116340308539964739106514154131455116753169874362490300034348093991765789666159855145417662100637532111702613040681311169932134885753469341226788388662040476438036343149724181605391586483738252013869141793694482157647077199868690350494839702159193073722003453060664900841173700660318775117102033749433758242869467995524763592650747569943292131081614317422576883250206179328964686915494286903868377890444006742626198594193537478041345784978266108876297808572645814135064392036848943947465740126735856584366821135314774788481363157406592279989748054141831405814218100121722180543691400544067657062593097273648525197604521466193408088916514545069943471931202221698481460208117364407118245027736442715527875084918069798527558815283699837566231627721030048953689008604540500740584140581859450814415465239902769775394322048555376635924005063914550092503715339707517046512901411761712056377881686930146822041390812037498521802213022765555992544605492398974119609878414793927246677410519056324936775317784709789718000890938109039668990318411722959264171264086974290496464739259947941696193457450520776658449881435156345653619165122665694665743886388112224828925552844402518007525400444651960336635665631003267198217603725358920866937852368725522943476457451260859061903960485989308597026036528719854727825767028703284724123799312004778876166026987908044465644991438820699821672802236549687506242886804409319892677433179791661897953664309360831770273860050174383439735743105984913409648725706416604489285389078913144092917002602002273687350059399681026808109093911105773415532207136288713171213371210503479044231490795678964388423540023256989744511562248910420050689420546786910985837464675928294966755961782586971953223381345457583281501331106228046468260876040827838237408213692362042192382902808226018810675546764536899538372629572799139173246853782930832800861806893616515636264488783895077547862919273724294649366781117963281720880321766339533342205793936504701479886264181801176075460752140254964804474516221282221102841505133254247852351598791781065188134555428464963889870802427048996108487191739868427008188482864821131868795359625856456077729983758668940927642284921191105410411329496199519051140940106945276256481976086975219251589209949102216943895834725715475450573589701928057320901218608905525448949212034925752643057502724892110879054117422847824299457042789178468280498920501318071545155788163631695214132445979708919129598561191991476899092139316388651509487522411156766383194332472411050199312779544485167348146877235886584316753066671887523269955696245584071350958271638214418893233495290297389763695343947637794931642289942413814998247390740747118703993573360361135353450064192712938014480871933562138983129499110088820969964670530737818383031536560582577339368898770848278856518862193634694091903572696738679039980907439593346575888379190220183834480491560060946977214640955770281090701237755282334800747631523802206302916203279995405063050403154799066627235692869109492012266181311397020710650108562198748720517760474305770129705833942640758611689134768742174652000234677964375577766200872989506493446131362830071291375274712269559959001666217236337591505479949954629702797582074712529745610899785397873576650594658192503140774384203520234522167234289477610031398515255161302314967680786024108929782142300269645655654069766107516150602271409956581376220631966496026779301178951492453829304723811142924999575975724060856578551858018937654624827138793699486767767779652615860596214970233227732689231341887087566190971123257517223391549977129941910777177559390123580573801397010881777965932176721337939494576308335661126182204651398186597595409837963809964338174785416945676889195903393701046457565515001055086889847851976696031324020716802380631086297066456078919211971812220418707640781486903433971733265499049706928176009501499399333886038937242447246253522661079711308466055107800556655331579933654605495977965551653192045899632748873331232949067901219030550875925701240192761051615819705070069951031458730001151351377894236922673260575934154222230680368383407774849039221365825374458892347291723117411244144091307607920914856176506827399382972551087342268887212756563892529909655096765768732196438181211486404314398152790912414441500322689139604081172726162775371734079775715537376235104936857988787337815141448832175013770487091913967153354128236966109602839155828781479787394021334750738192393370145041425060939159166644771817079268609233049905025642389016356941196731756667306738466187887496265944518437241620465131175762646830970143555954263385462529690128492663857036446813689254256584628289747792372028409432276797173564741712980518687063730004809906286065700364286379065113256907569899475938840870197569167262367637628036497832917886146704957823499795271336235343892186016673451970398047184411200566988506681577568401648987484101467155868847523462538327434198369691634415506120678027053678375386261254452468381987328934238670833846007688339464372149311714070378029997339152440747963560514470951688924058533802504283181318754338185517069224609519942351390485135843212364653541658788372126807517689512838743709305104602964343323599705014864548153792730976030268947232025241177387717182522122130522234338825673630395034547630554424362690280437481488959176517369819318939297126654695583281564803245283031246564127970338107622292254284515307699491520921504354992940325573910860683725162347252817058609164420358356019089931797912368672735752075035355451155345614992443164195310072356971783101750591510221166436058495245679104874836772121566218683233779689947056602766820946069475564789372562953147167478635502612488158862236146981440294472560028675513228071261182481162694909114189306675867998670516903903536203127041143619073070794206362643093066332642915789617677488904539879349928787407713785412794722240168291228198616021798386335005760325081540285030476933704599464189760069533273616583379298246335713034289101757944649906494783742960318645299826928410641137606279964312735596885923433813862916828280467871059940583767217977597411173961314426284344623006098133067510175692255417424368563368651539578292020945309984997215675994560287282402357750711637057490900352405450903261597297302386899770194115486740987055616971049975924702207794688098835674857831877694032844394536909021795972911136241840834794470217104409425786531346240532633891401731108586949198900720443192160725354756595491204238158874534395380174087870559791830524131774652111312180454795870980530321931389713869303166375862167738467238308506971564126807143523549807973557839998366236427448619114562991260534525331330216466450624236742888440304046750525215747294291616866399965697710439991649128873816424200679333198167897499059676529891152399680934523220563394623473856761021720159250728626057475817789142196928422474614506626862042274999643013922679437795429986351604770193274192318318238723878978651136624375889981904495022039361880264040401270966285070941108967361455977295103597978313281987373347060232353731350573179834744007891392738459591900720151707014859159864942598658928431017083704864012716574411744198575326262303194715541190025710522438252917762532354829560973118435878284626303417077250749130544016052714232983685260854009728053281988130376540848106053116915841164190472059274578814777662371465511311242933356582883055075679722644782259262035420317113496611314948194985413305244310495681635712852663519637447156547780447652958673711203140238193091718929661601331930940759172868826815335084217045632358427897429742227570765154868188119723884562864921761584658195226038096132297507217068352036048923622127544851806510412952328293959569364385065312498861773441803375040119732226537033093286783182611000902490990792970113998619126904252915669568021080492916784291930378732643264519297716458648368675001098866654532724444735697302872205459063745206144431722427718488021906414223756436325633945742183802231846163537511918402109640964673968223569889942839703849934997816831509826013156902324343090701340231737432058448028021952595634996158269102678642996864568733433684842023882626815871206088451104005822439674213132666751441461698306035491785064277310977542270551514116411088273334874592458096747562011290086801706181695201124060232745764038198973245881838195171534549769723839426321002366140681794281595503666051676654576131300875579878995341133649860417642314088554503210324455556990987886453754523207760700000437039217261271143422902521467669856080191353964686423722578814572046544430146216592163678132220441738857498989776767512925232546769847245422316134364903663221474332139701934622926589566778700317035044929431922683708433924706480483359816751066088714862410528112235057755561250563345004625120267567566227584820344341952632480863110668761199752234369022028077257229687953151310535523502001112971988014325037929787763930686516665101778213186116011097682853796400213693046032087459367396307665653593786330734916582894388038840855513663054591623971977157718996834522137125068649737985782548021229115306188742322511024858479001405885935775672283676308830902491695599144913293018176844708593485696189733272814985276925357391801203348902814355705389669611050628346768342992919072426288522767159791763560357687853480923966312549507042455953910414810377650703983018738761699328584804095696840513232243313220188623571999024820669156130333047016281315421691371316008045502476310272159299345724325726565750917780904976222021577444330410718343328873090677364308999181134420696834986346673020049013754448956660210516947768693506122599898134140942474411429662888930511567860516744203897581711661370710291746895781798924314875438710200153268753759128007097254027970511869167628980187224606850650452453355137303083982060277444743017551845616536900671704716183902032286206429528805375803677069090255713743874294369330264459569482091737235260499259227053722015834542391190419249811838051259598314255824948167950319503197206055198529246459111387475682140383028747075536120508018820722722788287633866401750905023165158006827003222675920776262710895580988701024780269223536303404061814388178907837027417785890191307875257637402296182730952016474674325607865021802585142836783018948485315443857696056401619251234962441612057959028745538836169541040292734075643354057623608966350885585187134104241494909254548856585046637631337847889515733060654950631208601927248646036365745734847752110066285131592473304371983653940822376731011766773619366461666784380606526126898088750960312974022813954898885996004844366320982753662635570697838181737986535536171974835468345800792095986651871259582993353114129871332361121292649294552164623595094613770264755545687572018128948508575821771603997063810024518989700604568315929872383595700323318116330542604143004926611706130829904814164388802248436753152847444860708873388133124724648201737307851528577184012065643208045551969625904286181006351437996902306654800189412363409227715417625158162553901327777148830596992275916448541524348591600751322722608803907515528481044013730404616286614730275101714648948764672455257044982446917803015817303153781740664148140564455405472598576102602633754191449261294522377216460776921274074241335127948198096537610321170439611436039734760545866724180833795056181971908012692947422076876514760522533241142601637248279934075620371362245893318852353591392087627941575114341707160595662736263937150213241362689653840801669296620200030969650615217477970184106751271471436185238770605438046262528044839393986076655776658429297507534848928015331487528095829534784644258422382962437281217905564233686885158217217811571355229582872093300396249912125495937943697957912946201385717613825648126466555269297055475866054610516694627682086258730877388406848312122253821640317646955380125740307444869475389152898440707020157697553082775695362564739556198263640237823185367769395229169747608911738762428121896703211514650657998449100477678652165227963676068918587804795501316796047356030185278933162729952842335009688443390591014227128560122290731796355884694724984298446657715545949852887482612623009074416055832075351624913200444365665743911085558324266287653442510625646593195557223791642496140171618605720622804924993302106032360050352489165694499904935211772922177734872750468071431095290072024180852834725548196664970318380535916591589397969013432960607965962933069628357169070987745295200338722177386466686164242060722670482984836527704151637127318018454004044305402488677469638091667173880810906630874872003091859498286070927403683173960797046427477389989093490874107073190317559781248993912511960437650063129333128578498881273556882772977088533084163393945692252192289452789458521204049308524651826526077652899873907257470348948352814257094242432160836941439287416085214382191571980446125306989855181975354414003292541189616883602293881839282881025131498618010887517892823751995687021837829028470574534948784699573611884595048808406509097003132342544059484871532971658464748221173578577561405855681750615582266905410644426269521444324301988151019089399534903667923813859120985691516502795898919625528140827790383555785076177007814865741109184790130712972984589873966124120087554463697181947850385047511107472196488486324480332654664394507738838573584188632385748844545925796250841500353417936330037696496853317663460851538585343063203833436429346815141807252458675360888623712379048336651830523416568717026642073910026763232439532470083188260998291405724599319961555312678819068796386788316504473848280616189452149140524253470261917245327647996785444377502381004103950171606118564760888678571099630139597316566639652030437929620269282416095030337423373289557139067589738801726005620592852261413338701164753487402292386201211358202989200690990285062765689288030485461472144670045289337848316305619583567836737727373979668353080826969586263187369901498334305513533253491238284855306345416986052096814995085695523457702553758410232048776984396981966490266134640636122454270445175608523658436257626734565003700317580545738719278903691159283992856812257061140398182867925332297429985364034073722022603235164414901785361073093533818533695174476729247191896583623213672282401520797678069736641162687656906329382834418708103106855000254916046611354811396500349845133115566904928964384653673243284330752733197909217849630403204733263427924063807045041360874644682233418637781421169285291726326419268776328698532328260251119336541964839167437476200841505780297678733541161219665973582753981842996228827091374740802057697943831076002470129717036658688337164823979514443258489331510099841953388976394918495705921579354487586228148782595169894347269367259319470462865600151097819002346672143736322852157649557189355806525998887897116193803599673320037432013190445271721509769249406901599333210440354355365460063011371803704772779271531217647294043310736316808201012494967200895014450883231236551100263762404054612636310995712479879900649641431010517025055660091020717003139986138242997696054565675964151029529767203007359428895086661986415851635107729922650172089949948410345352910190193833145483036121827028139213834124443786984874337051346420913286161192073337363450051137779339781243520353597315723492182910173872323597620881116616148721063168058341252292755822239869832924772182021850633693585791973224488796541475883611505522101059729743404568888000343196010100244892437648648555206522154442508504248061894101341371284849916618231456742160705744944379748758507086651686018885823022593087968247876642250788953489687148815788346658180190409652216531804956180001252072983655746222275071528990199462568899254618021869985018014061214470282351043258970721681887530879308938337918289339001560793339189478969568139864349075761451436027919916363033025725420049089075938802200692790183657475282193426195410684127605103601164559684147654771465127235836057208152535135129338854463032909370617372424896353810369266582662094843990218868912456343657190399774419471783528526454660294385270136594837478373782051004347126131292018786650929220137788878493696708703436887185276845026711945205345394232343235316929095585974038646297453378032184099322238582888152111617014214838508909176800334786855622988161323016236612192425679666710607936952097124723877490541583660915425283386647352378312299907341481752974862488257350580058710771607100650282372539455842641236020319566950555979384241068662955193142060278540870222711142264503816206797397471551343910631515784797940869563261420184685927415015230050774322378080974803453008196606035933737653106917485255187610974405442198391913147221512807166679388112227447340919514387890696037684649950441012904417876837539725577140896059937659590185907288034989982543768152042836431709897870084903561151061333764443831949548680947372552149500579063414382529157255914061714251516392708940642586779859398576096910609908057692624437680489212972335443437049228708177756155378972450265655955297289249138910724564793972226674543746573836228658000831908975638453929615958645679375725181702949859879235783185967068219370850469148232364029598625303161769789594559246949766920454914047628223101556060256155662190900764470615442963643617379799405905133490059422211284043179510423657945038175378103313619843573579599615523080275818891224899123455750483117308679520875155280496578563098931870545878212262099186443144220861808595302503755192098652024890370263735311268078809628391071314751603504513629210794596079529067587557363944370848772779230126865688676247039779717605598832667573359033255333994285193319092453161117882633272139221231336106653349962012137513191948545643770818415290962508849856659737729527388927139744445187631064647208691396637139073994405677307124555038803001088410226961867061980934610242928221466823673052460010300341335565534207628548143338493816744310989789103231151034363849756338096548486788976558994809420791234871521892739045615317812013469450179500378735707545699466041250656650305744282197874239751342473461652952322524424921237648773792664009917090527604861292416517414201505517225326113305617659641513498046040326946220678528704787057513719499291135369678259344911455141236917646313135227400236156291088962737600101379221288618276065143223232526797798690485600120591284375495283002600999478296657870258470989321279938165457544952023729639370001997106405256712170181443676340875694824256090466169858983800954316578681448786591678019071948810726412205343092870399762033906020815248782098590085760298149313240909891263124016504192298218608977637123451013110030271277726456730077016594285263240024866674556841070765296690400957855782866407790441819047588896327182280769295296777011692684256892805968502153371848955051588073072004513745550198888930270981921158011776674605781295428973504294478571780790452721189898749819389064954887858456014681498538210752822248370681954474158161428357653375152202196577175132151565634009527889710875085685953896483866247625787042378227439772738814316215831774017533070948328518474220713646046203293652000167543288413223721290503977053120915823811572465771663932849357743703059158212143119013181293988510424636029491033819019788989858100241910873576542972805729139289074921921049816974963287418812888173543519228255318778215000803893973283038695212806469257544078219182966458814080862550940453737438242661714794839468726555309122311905484845104281224651475752179557952271204426896368121841097980152691767076042330961551976503152024534383779530582305077274337409603942894123954077214426349500386895755878268123809351004135604012438933728668360221104425982114269487905038073114669982683809497061248445026091848439686468405296747702986109416933350078689748600506186542508623820720925877605419852888928845155043855187232876401407533830077453649814087581209756733496377835113467798123295173353889390410965959734016608988691547654907286991205210867731142526653624246671486833087121420833343951660576149507238015383976927868352650594908757310875463204120051053880168754940085111592873886158929742853752713897768423871633181852269306349272437842244628503821313145834967599540824189945794715759840321124049131353858318497513581121467502755024584258516346275903859229485974558741940436746757368719779619530298178121614103224490310686466048913678836778217090320700783883284501719816557397003796573232119267675225371390091143822378695740472536331987893377020407875023021113675905491188990637147482619792061438288276628995300780663733223791453923119481063368941837406927420592293390883805227598210795251139140355449711205100189069147615319182775764618649558447593856891797593122135304340514986188080237380572849647826285385108135393171231449880983116250443871907738489174158504850480269046708703263908991285149829138842561108515397859008329298337845161706375594908067360677068128653586614057183379065660236044723296261428577069360895749395358620804674805509472694770181847299431871884376213899675320379956164527371070905872887960417479366999030015826766077649402809875359115974240089232165913353093374030273617024735988083573448289455982944969171521565807658029620003753429215263517914723137407668972883022242021367416536980262769029236761284208188645118267710898036114654359990766508279591328119382628822323267193950818317999078858284125226375152790025472273214957146325230158460591284680143642929086565449338632321092471034968357354994495687307120450406326175872404110830287454334276945023770320339258700290096800440550346753322801362352123120174739869296656870628947681351765288925319951880964073360961048998300650691600834829252650926209470562884324133562324336317620438718900945418955876851102717464189416479405305772748003122632811388322683196958588573943300714947906901782600337019119083984801505189181431941197010471608893149545407748976302135578637029237317079961868717681603219886600634858752803835089346715499190318206442977991510153784403528063319133698733650625565686228231578394407952314841836996134972113136089188292189651548810798341468009014958948975688460545479458962118351621075240494185764922942297879036392389956016309181905390334257978908974444607056963788576579999805469047412874367585881133694111148858740993081021485753386405218375207533201915666979477870083646017777637850317669320934390701014082920367869962396651921544943390287332987301732917803030898803432430053493011640775787147798033068140738978410535222828829619839665725611817803784418497862075032925811747954693588290688694677464593947592591006532354537798810218644826019087103601593042373087691806632112503442492344577546703353736092686628337113622133791077740628055240488582493558592052539497502826703392968054265284745086102410505442249687757044224105772655831887042895718560965226984037124722076150320764648890703159974234278591512938874863342542625068480409238987852367827038443117267391723403139778310271655759326280943313135112203375393597240134433504151482906670825697077694792756205923225950659934315852619936491987066924200904678991714273389099144314596530687470217566088654554411693482394435233818745138484916189239374870702798576032254693026702832434156144580628537952828467183136313574925440313962780901809716298035367763214317543935190696678083304119018669612195586888051946198630828765018472771511450394446548485245962477683301853276184327975767711897002646306078907119650854381196721405420920928606177174273756194657993551224038060692170369800365999864946244219133823031324458649354677911418443739581667242500197400547810778741840618697850117083645346092095469364823732515384004567742756529146846861194469754823293323218037699866672919734739853178378598841827088633192853041568520759739948121512496000607867293178281325795586256376188355997521920275459006225438529710996699652820684594113029482298438573496746361694744840025973291991701914912723681234099571005147708720824527931684292829204958025072288762965711664153607247874958913225542107141958905592950444566010666046100452378235211313983562394972058732952676883674898978795338564173453764366560223791225075698354516896211284339586533107369473078599335299539702743148227625706305569593222856294153581548855467624197678213295683965452949252587623092607661927658037286922128121493430082873328461492155265529319419889277945295536617000998210321641646134702524984738473505207482051720608306571693227298903447030452300318263690600797108517653586420141106878339574627109775382872955410580504576986023123814716709582155301343008079221078910603114101655555737795870438066322174298177800338502852697402650720536982677523139266229580826571750890109825767917093247334474439283082810163903676811920570436240486578080282615996429781525276450781072984129848608916217657832574605680043500349662495735514360528085647556785645632989286610527664321954353532713490449426541271751451975408550927266587097922885518824905379804839071419976919759854292860867404291968139777465163473784009551817117169368074314185232233602709281238245809719659291395433134632937918452959627989675259382733990713753543943663750696514791664800513008850514189392379341292709608358332949644806175695683814647411193875065505444026369382484015166132962399492143263059163353741802518599369371914757186117146466837201483284725261144387753176904675484824502965381067056129167678288654795921107116509228106815295149153082963273558266268208333044449887951424923146803601492756459653883175916405200610678723084248929798295103422484796866607561423612629474066737583358294062374836759603106616029390798006515851688009864289062256317692926868976746054767420605608185056517677908620062289153017760851247190547213036771946286007495363726101088331293109523884710234408454000751008334689556763396908179603796868199347881111542977065282917592562094808214708543951161104661318845133244280666278385374777957215477147505546976684685680233520285229881033360183853537667590167695821882302229012037769678235197934130348309276943758166854735546902048025802855731999114307108209316386282876351889020935991149618318328915676991802015260567688889235738386674168547351888199227059464567078980587604628864145033411933706453743216297386086254655098776443194824355217113840785373993594516716418643232686648265242037457532079655708297082373581081980562789940634646500172188958564871162206171605647342755222179082525503440895252626319936101547774362182164891450005175857316659338696223291567544170451464470163242642275586674911759468640549698128732486910754597892232592769395244110138524444482669209721454415588486311456603679355503140443453842753741278141768521989320614289305798265184017619887720359694317152254818216951966975202172247616692419113602564316023172939013270135111370459472660793066072372140286508847976264442759820897250168841683210528228212218878768070924676379842158305101444377211942074681401771480851483411691147806235752074297773289371404955668179320378418739454380738332717703905801264157251823464862860095073664448374279974816408632173194173669794611920502496910190063476023247784178006546892743405455810988302410321755218224369861399671587290526334985531985997307162786276973564433693019198696513749291372854446599103601199944071446925530268798756755464949628135681494070130335110489067695826310792674696328029602513306162687147148291489836227729818466599004486385590519116871948814068701895759635926937159179601879233235298831448937020525972152561525149030181446181681484993525965436475349960806034824647218660125259970156332645252870531493690977524561613264151685418655968304616371368462456180263748196152305235852919563354750683321967765343344767184889919546048254130459053854794448623315270424075651102914664328614139906477806783062319714151316317169090410412477223929445807612404894169642935334224560073335287403998573439770219888906406633489555976642333378835317630037944228754254058619649960386823800402822044695096024538939741849546284802831081654743442878038712165786267204347854365116233687195128325814888427379532940996485886981962239185520924664088313930915550948572195063619168249991756838279246035401813463167397593126440148011192308327969543922752216356068310884753771098542021344039460848694682191403619447689501847786269607147447743972672886603668081632642553828403627839615998192233051830470396330674102538808978233832875768880177855275251846696290849510246442120729848928851148942732820045143559364440627012969873416353333970504622698067071088882911230123658756160915874852632019115757161023171300174665520493213432614697532669588241477496831543291188903526634312688910526128616624116207109107161444478703490645516325404026141615218380923895089757266661228124765471969159416455729599146570735938106539508994665057189513484132950175717279530333588805811168793211199431380563667916337275243917627401776535228497260751837849749363895213096698144342503419747429936776746224432852980123126571740921580152826019953297604166403661858873874935559080349591401957161955526317222921851558274174396355624934097190329350998388380414337213319694952762411301706532002774418484319959533307460449260225121430979558942644492461530354326521117517010101492881082505278969649722068761310691776047300522275720791948799461410402429927779943482742947398888947946797596013725804153477883943739613536500871576982939363013645596033772230068863601984824473864756147904429222550175632340092739478028024453331765241614719923440676576314050101764661474334330144806054671541660748592600998511900252501214970783742999331227918751516667780721549683557771884131658261081697479489616807384134324738910781844319631089500153407567328828677300443163739616093535206282185741622371327487677155494116546362828404026396036020071373689754281754472300386612157519834695166741954589069372245446448903267886125324168451061529200901759158887329979225371708510002466162224740669115528468044922820589191159396430708254958109854331743899187679195880738474994432975074344930403472970196473201256305127746857555666390670257637701048873616575086030375468452728956782130625966973244441216004520471653104786046235883249323531132295024114394751728535793775725292187302857809912440488660768233977439067041309841967841103877923637725635489513284527158063594975298719107898625483547259306415740210809031304893133724161700341083955368600076242686742831151388259590480899147027279142305136068961698470443408813389353847050008589822043598315592919433507522636179276655921457499141047856815994469355442099637738624233922590553846383226507519795936146513426597594328579275739865851721771806432567872577022518154597387844636065113814836053394752087433829608695168697651845833159952861179571124674307726552441388559433628315399011111846866312605748361660724878863198405575631298748726601775851634440195874185315115563750597371759147433369865327330389049100287938605028961308871322268215120843156968240181274956423326829764330686140987413046209570643444308003516880435812590940329381313359223224801010201695894937915787931358731260894533208731864388356791630462318466286736970227094082325899456334960687614899690936618926120145945933275317321775692711381030508934332890322025990347897058774601187960079641275496083645639000012628353963561389005532411454288548271096738071083738093544913185007964600457621545807398814588900352846658533218676473797222468323234173071542643899121919334798797073873614719827261184343992822352869482470446058651111171741268239092538011683239639914713515666944291019711077473509892869595196442896954847787734274601725256615908827890629677806321294769393824934464963266320583761484830717986590840054051939314226222666425068873806435062171742087903440703990910626441854256934852379811123460652769931489408588224974500866519479731850574971367559917263539443340756107573371911952362599136640857213349676395585858242348340834060267962554920640047944612116788864624734686890357111246425126268870339718408237636506066984149010715498501101842955907648046016952929507249965437599943846726885527121518618426681641500013460790701514751059356877857637808312235883418705120559777573581917463102040129070784285324469992918450388196404754124086198513169590630539703910076470817071769887466199766460670960654279607092604035383355345464927290020103689586869222568925769449644888671972908637662225032349146850984383229592118912744285901214916080115976222575269961066117537571069617607354881568400273167132232937866122819823647707150583184933512426687864981427875494820393490361160320008633031187313207876141978183614366552236267529950739157671400667796191140883458913258093454108478279737655810315932637806017131382539147719031438312307661451991955256914826328490069538720392387392747032389983908609010689209426062921508416382967900782220640327965848467159999158431345282447696980511437957409507783073256864459510051524287496375927932909824976803253804967067052989977326151308594185868486705564548393690588844742725803209795584507896499023356643702536322698695614521735926657149933880213206263356827874308568277908842825650137777514729888133593882773764158040209747978569080971925632990553927829538714913177647610473150058135328464022896689440081700784822836643984620948300780953841579388891284342034441758771259733020733955578963660839377503881488176039823254330283478146661926969809514895513809243536987217057010533248700650295480840187234798823374343883250661732713565521755147647895201167416294016611209727371065861763024610197285516974994406329619032793386879823638127324113762305658220607217015124066903884539832523183756770652040021907311166022553524844839393252215803368709695125572250859921957194962069718701697071319023470179774743750177181318904546629427827235745324712926237613457125193615880637216350937576685873871142359018874155295818683763040066146838924571810893811508801040435353524356648366127333883150850229648707729811481104798910561694567930656151837226553217800053325305672643404074614459496128797129888846405311456882163289119921918202658622427743286811186795071965399644993564842254144034265818675479874494675695452214481382487308682065876884755649739794872247099328393716324380575911197275675362308543739211657622487363630982632770118371302332515801351946570172093301832113712002109045081704061635431907429323503812857675216598242547143346047376607237035800840248212379553346598667787415357983030627712378348002121574497950411134999297923919224173650254276474596594418661057687162333417522669145584834159420242798851721586798873306376095358491981721675726115203518053109691767886397785377142211105784181150230162250682344972546472414202349880503127324779597140449556805195797229051055257325870811908697148106386975722255394684522101267384796003483878115011106170062058042754959490557328819253318774164827302113746077600835643275821262625025922673497887327738169377223238745338998900233085646807840585266737652973229802639401829957727973461297533977622074510199185404789837289960436001502770336150126026651698388970920467313695232909703439976149242307513512869313061310993674212000154682554971666476007155103233757163181887944676668027684595961613176954724928894878497769007535416175996306997820020086544872767341935711480419815141415807664257710181668958748505535021907214329916757339837240464497521149713791633704180584058830659978189973494343448318713583068184496142686596147699395539172045680453747681633396171195766637748812423425924519889775013984448892005368588679805629099642447133460751206271859241029594769568075974914358691440141970352651221754615678694220040431450284650569752059860333714364640270104460075337411606442051616424329345632487595932257792526209295405716964928416756746948626954489476010959106570558950365076928620381996494398375235644709038039277386836575558640671485824198738980880330016889713886392658791658694591732497383864379674443660509332260290662136846744476370887838784338632537993657149862234175829306546465111604866003401852916909128523814672371967531742165192397783781168210944054691272892161615855400488519684984644649153092817905546665260168590036819218858354982169068613288675819414879518952583765389218838749378309248812917401198341215394447316673066421927040181277234102162774438908004209639504859928176649552085960911441968479497575452729265370500477156381399450908515402616353550077257795803390138909771089003231677597483364179841713457698423797871265608113076200612906245432232970255276398823910923490836427384955962526304617082204938999375728788969015882575500963991050040824034331903505745171754711530451083372045575912017511758726745523505878802695004405381599277752521228596541171554791771024460161656023563650264854367601316751943388775406555503542865532688244237211807905709344683259477277370409662220648973729312397046664197421950230453813402593208488308763018830150539408829105566547370125669479619327485376942271039402676841461854048572541249631546117009439443272592857442778308649287574486727799729631325058074434300535435875458027326955517148367304413968836434935772618481242664921795101259689730910226547564575780544393717081612513243985570477985607051931545533606549093147310049969965079869071767282900409367717549035381679962962235575447199129505040548365192706978988754176738210921973772951492039374234144326063479833573365886563620497881950358937800384809255626594884618880806579318403792031017086079830426660681692629452246778799505786878161867249214371969385452125227957450361051270957993076664965764554774290992785536143605256323394347107389294699130497897168921593845364161005786488075663452088064168250126650204137551442283700316912765058699884990354568373668310244708669531765200712049045431858277586003369610277385616164313506193038545056376172825395036219825293629526044582951924991903149762039047634433848394451317563342865332094098016997046538995010063409509063223640263580088737451676353931821740936716640792134104344413763519873954434092912715582439921446242314823762800231106359938656767162908698224819404028910825725273117995161917760405905199469225386400873155672797556878027580417188749279443027351981720739481595056598753002600903529981754629727022701060492560744345473372089887333507180707976200868006627323202885041834431768633496827593289727251374855915266105746714948927153828146360135523899808205721595632639695912389722833094133650178220823622601160728200647350947754551925874481384858506037133120258261153786558659484262995882496643662694429264812698952358720380531667819557279592486531851591265815492220590976319128942696526372713749386228816854046729268743402189339914868596352633929061888738876748570857775987938645304381080429118080761174155093115992895950658587871383763385089031810220988360122672474304226349850367135488453325826452702514362069204436013497125000266573036522773781874180930623021454726572438270955715542508708534218252416739456387917562333376651044755901118753218238461921228368191867675747090655842114291750297659852792120699712539439053021687146561878166467600289520770918496305400057756905821860051553669261398453856975285399410132263753037058783499923535941549474383449586063842470861027490260973511220480729815770074954002208657621520752532631544452481912639600594865661010285712490272050166222970727792930444311795716970003494110253215134423211506864567051108262204604879298966961342612853903165564736281189901627967909438304760847786201784684217023679095528308140754596223924033004230563158120028318092657938653141739525236761070130315079589047501338986495734695116691490133496599676529552868300434902087115673855569149275404616325316490124235524809386621159067485997314761130222507610302554825858294652873009060827950553855097466245394902891636358655341487310264874080074575253257361445961543379510839446190506474205237593636328514206120024117391967058127675707175092461224595033746287080270601302816232867800138203669344590548791642223466219482416864378197297332464253165592575041996338201039673777557882958070888241061486440781003079008088254080176599679237464359543779744373545017949759509343243010856834841104770859992746514470042327744295106520225031228923666486676349053712360350413889170626928828489465976767728888360328008327337774527754942138578361699121204550365161190959766783577088665871014217927519921259799342459918376695494755036807291139361943470383169285541381725766039570139972062079176491684775977787466723833171069633036770956923015442782444495431061467649398543507162295509895625616569669645809372681723074029988065881339368122736607770027721345839559313309499536723436459355396133411284014836194944555930308546080982306497778161972964153653703481047516156492961456771698141238400502977068346996635604158198533689515069098814401972949750837207916653229303894815706126773236365031856087794342945269808974228786867194080164115744861519207984016152576837926892355056876650536233816506886033885586498230433159715680692231033098465147798458964111179860933086168332839335610501411954007155570778095198928294190267293727331134600107972614533123609427404534562024569852330687705664448601949827332578035773816604563938628658357040757475095514096923123212708806184320766662901634061605680383806689769199579556908639585119162558397663333365242103444540942816088061185458838136034656824573052008422291729230216706742235184296457571481306628167338608858808933584257195087570621696249689513130892925273551347371765863633546289218604887896798825922822232004409307615424990677714115646728125714102086779177513873951101086991600834398071315832411555026989672401237008092357420306574068449888753349053978917893990688712475935387230290731200653774571026521212723831425149940019287935531468158784089844868676142433174758187659959532878867673432959300223912233579326411443487637676590674167888107441330729299192831401756433238396609093433146338579860809209529586639447987703266310253996165567943883181118354429383721587578359293702367688726426807236892942421514953500919157960877356018871225280042167667470225008271759191814096769211607363449682354554951913432905044603405939098752157441104879986819997503399684287886606072816940574216235551832704012880445701514185865715424281908345866686616572292497728250005831809919799309024393217549732066313228870525213708563812783676057996901561696009497456969183383646226110018773650258946953374762094589537986667988659731965440454282464359565915827498378125638702287148510885688540042573354083100456124479056696544925624251824048766147591137448108136220642181305617536864356942216053525162913695016029336772876251599700765944691206111271207110642166017621667885189064578867208200317597727672043715720629667684656407434714479631679589937069527634217392177165290924868679684519133016177136162710789495864340236469183776003302942932221807802363987817771700034385912269034783579528814760682974606080303906439110397926022859186823995007504564525602463032829206807787946842792615777566391636410688260559904445754824410010217775116355618762761839951329613504024519306784631807839265935037958544928133407088700203809014923094677930048687591950852840055018757292447873988905812171139167163479782226042394582469612711176017155199335133462754288707155909563841743899339463921837964837836600296305164157869808223828572527953837860020418854330972908367660657947884576323095051487346068861610848906749924430373459150108677054572816354669534483571520485070169477418731988011979978470474537213134548683085506904530999662708017208611901079928045209039833210645988371356705891652637186593903785756495337066594258044253459708595043977897430841075139726471779833967233626104366782586830841786206808046979009173617229199253614957658331421323161386153044263246879957662356964993281115053856689834197620580528075576917678560026078566631890258677732213985128627059815011461690074012563131986657404405891339871295355046547866319439172162890159174022473972854879211445656066542012898806158526712988615745305254305399718323969474585878724929191886153226383528882512726904493620991502557767510003965557771294183952441161486541695413622363930375660476639035657501707095503452727072835222105143674788104964661747212140769681361986361762298367525077299861337482257984437436027526269066113476779912608345532593675529973200198107418548238158765257669427121360277065953860321646194211796794800122839957978771434606108579809193799136904180808059407319191043448769751694778677278397850709009714134467742345172896707023240305274625959060617649736826766177904753699527391728371843594774415892353402664058209474616243278503349633491469619909743923723063984054766287246388668793960796078552860463788158271182236045685708736951605243945836996756562399716363165612976490244712268517589128933941183760928807374248850868537228433371007969925840388810886563938819137424894853143405101617755521623756265241861336666307949487317691375637691066165803165771845511906958229614814309501670708375195897485687416548574475800114226668200416902764116697926902206450718238421568955940703773468850740982577130883124596647860006128317074268029826512659502795070501341363170813080292393991585398841966879022161361989748830226060517463181341683923047247535384458567244059019089471457781349800384282014028316543638107002713761350752142218389671169591304880453828512747641156699279013126806002720825640939963411782202557020005444459988069963813531190587411634843193041820088256488746936478741472593485010018511295759893443016316479748842255033324798738511584226580112025957263857714244672515643844080879337597121263837276094646075719333958335264792496927380141273367039597853589816626607660610189672797980589401438410931242031365332085625051831099081019816051369735505580039055190336255349634795389821430337601781661874709758754389596408078152532196122633142367000037575569588873352675383437680360428270105777540338032861515683398971996915493004431029370423934682049117609970761673308458201056027193374343307652459610130213574662409103534160983535648900152495439540203366273741681208055243125007128620044449677069271297487659862909144508260512933297358507229167863180115915983280744052338401633067147029545847721917019418152627006204700022638356971326687110429213935499698587776772778180049082315608762003236446895677332151399982839440625035099678021993142137690756873452974881371770365387776039623227434766691484194374346584399687766242029249760394459394282266211028196707225615288839997215212845187399038891085308037350030221743488417639056897859897893371548693921661110754872818215372282932366610838475039072443571535809800179043350640931726155796507736456960983235618487788921648211392933425756386440682614511944814229958559269988474847781466414400757829365449220319067172625533760230996606632785315346922755921507651355564673298874991413371510391532659539977440212449921397735254293551361717371624512593571046218147373398042961207054002500448879607619369880130138041839562806212606669712529061459905294392977499777436462920138473239262113326877938019464821902374513985093773951273802773030183122579933956202673860894045970056185460970783056440132011016834184131541654583182347357876160236066726531743854991150725062974031570028950648942353573585235592725280178124299683447445469456539605139080763373460275348360436280939122215692265766399221234764877927521173648645600788520696255290229196155637868495255966902908874099100250294724839432540582086284429294027118752903789778057076835028179984248392479512498068157977211196444214511414083706874953872164621987173442002163045942698667879880983460160365738803341051013435947680644070532494698182086225050459827482530514388700783640710631703387593966508724511461189588237660559794113487578485959266805489890006865812924955425138810276143556640621370659567617981742571268318535363741695137598890553822414767781058731047237106412499836472171318781792575170635978130290955838081975244447759091722054625052341098126163278079861797314958706251836070492222190813813714852845243245669071478915259590223437181944226028971754288595489277431081832904650262063987928769949890472143737065817131590576879981505855659868343544576348937181606446957274852542752208460633088559631046230503249053148111515029347570381358550989498949978829678669977470034922312260055811281296040634543712537780322640714963001518172666478347634720324594473550785632352623593242311826103516842209224331671246889780716790617616199917480832441190610584133858479003201666073926852025587426337300477392791634660702980900183825976114482489158980017987541757213859373990922688867311414423508302168684836161626073735990547668134278393300477863988319803763152736077053804308674790454313059550848658342489474950540398753866068732543695325748039850012710545803112580588894771910574744857320466894987935995081904486925939378044157559058040393474102340391274872418493587257576187981011778826583092081591859664031267417374735210824012043153608756959276233582142502527384155115301186924954413774978132502728185233017807544160107369055934414371095157984889574662952471072795080106546653145605390891261120781778557994171144182665964780565131753842160460355130039670830949399285221043369686885016657835903302339877703331502295817274830086009519921275101447854268328026583618441176102174656986189565773111158772328944347847234758343617738745526864373505833868330661764512010454991630986371762591905528474889520568312653907019474063578174328726870539198052363668748568255010271275752310670586612427395255569585746919983055949013842178899949223199443579088125451082989429381834566141699303881701282118041081188430328987060524102238975254769412950168921304259803338770705675335788713044807723131254235756939671094300993636172086793105454415157489302748619895841442818615895577227395888400878208957958603159570550214180646240379491208841056157115668846428106056136068781189466266273617348599265414536323144307858783431285448115293210271999529815925814595102691502534356546598959735983555961603918340380848706970029257200236062486803398574992557194082670419248279167609791279513171562532041941424088624729136336201738824405646894698886790209042608272290115672819347322752800947716749030347746128102871224188644385055476110623727054346795901049773115156258417831282307076660365057455047231265931362357966427233224553775915526566802054512520197845948657873913876841606127243667991186810931621193243359863326016254704508873714785514724247917845511502732378060950682258805373542044663808418090457889654819545571331113101961548023396435121376500505468277734685674257146987125407139046255250797719542850730178182637629039519021948244568427039191011741250351991280287667939803046160476514470808922025465050131256861605949460177672625331787989074096042188201475656076753149083221074708808509423595011869059465767045936525647643616245848693344664926479963468380776547419730067580802443933294622350601396504480304616545611504785770026447281894246520977047427323687754234086719487536528747649926191246629184004756619847286859474303083431099760438243581369643930590983594008510324576292289209201001327320503373508686948328438344204364138398068761109128380996686658205733787451250344833256088341379876810443416821163439435363206748204831987752702317650735347739497062261446983745184669511114733370185093068128888327128829613103600117634195190965486683861005660749002011613956176363770903802856329159443796655116025145489808204454520610499535776087296971036115493456482846531468690297245003375581737514065317265796806811208277031127697056227106679584083867788829313779831390597909389379071059044337254028958618220334919248992229921777964792775581424937362172727237054485106377559976206157737563452609423106333736983290813125535440338472698540522637676950648007247315160919232761317613271423523745270051195708709388774750330637002040069962017821818680636176416799175380200356863789845705907016012359422115093849222331798654321974278869394062359870178192154168252921347465354352106784918243067060309359702325614766725670043209036873910198105331852267864115784115481356240433630332442331539007950090895788060885284453603756915751712136841367562859733992322063269295234405320697032085790202415422748427574472256896585590047456289134807686933940331590063698450718819204622335690174675894741626995317511294102210523516322240848468308157132287362734936007507722137440775691562226660336188952825460129542890543633318996166623227831028825472102416109355229780015289688439334646312303573845778504372798446697146089829929201775869430731363790345273453262751461930492727444001155550833861289939830768821751637920932910986489193591371393382650139085090955625128545293725966609939298755940616475159077754153528570268134069094572290665513432404206502198702137905646112681935147496460465006620848007191781778177168231899143306677421995210422610374928454007151881100906226714768354572798680685051643621548088182295132230997916680799393128859065050503985617553530512924676626728448775503672417018119549724315911420167913542621328587045993784666818888050536109796445767721992433901087125166448885298413072511572431725255705622027181721352559412787206891304386875460500664159391198451221987056047932870290541175370225259240405549407621442801296223152461223743288102316486358953558997595693436471029278827156187530954841279818765925635826139328830323757363401661801485071860701959576025611563462150353023408340168510317139393528227577846597958221270811369051414478895730592133025121996594342863000139502153452924523660208026803903077888278487585140267566746713671816343032738236371261272607774810686892581549832673847046465881662827688591187676967912780258430164251010835071517613036155974826076717952509825643637323908332777729550720579032827135745055268168855550960073910779097529051295750007501868063990242863790889651681258708306890295084422926718716146819242620880475900814245438558681466658662448017065272866860897589763912135597564144940690685826913945617164526230759098244081372870879266503500113656726191907903536758735681683492727461729099851398488354038204730710919672462348812569265688228075360798329964702679533855927571269040875275922462141633786489656565751476065624691419427508211868759778221124016930730739431367749169077747807607485957179451434710378178254161332739564343747431674977552998513070657757139595890869862657643248653026216131419442833849274585854883783026439394609327364562371748758064599235794690026013750541512203555207512373257395677604378398705058875421507991043370203658299176298021974004500684856837675446184537684346537052385090501285917279873008757202361666686850288224246879762712710715673473718293268261727434585999633805083472242798950282423572053957183477516320423655932572935309026646972664910904115377109826580156391387981684283673752451814977869912202156897048775915484913824798833466548794844788383654810412069248957311849421801038481560145790991877094734959498782583744176041473852269701792655385031019006846280146462368088521418934612422940536455721565129699806868604638625344720009467654803182943498835542772198745145262257201875283698755356704753907870529209619118643010735049320420103983213862590596428900656940829627145756368840626189053300331307624113420864392265637765090593299145478590125706078461367788288073597200613198355038463441458526660868863883201072787447367571031994609638025282370940691378035417990311468309192297862063340941489093198248247713556518605031328667235090739150903838218463581532641582484846876989388015559529409733944858904963255417131853907746633700022205889280398001763998649701102786743964881000361482658402425907293252602212447155836370389312537259131360221104126285649363439826667502025366454143253468649766183757216615764563565523636163724318773020079973735882297065487372914092511277998058112027737923167747313056374199260968251855750422047503173124383243656593135063319600317194570672714938648905125742928565815868905581216892692872087166887584556720569629410683613004018151047081410580532091155306446805590241346538529489696554247373312497004292428436534731288840779423160496568960344507362937145149495995100188308926381765041351071651510652429612883474346217209257236537525147531824555315663245728619238026365875531976184665591498771170415233736327697821386988603167418790891382561058018327069858284585125537874429370562114015511096762184925357636400989600404159458778969736257627184816684328994909618877987217017852159981072631995152220290186919373406566449947645420994020659808772531934723473492607676043936870117082091387520788819550381051674228299119196267731747243803437540330676529100071580793555245237565247955987812002958587009641542814074963188461456240619146938625045078655756961282499216793446258812776499616534694259970114812407984647922238165128121659346969382914017945603937075445525764679883512406088573831434819125825089338776837605639379416088461909153224988440864229235472674976565621890561416875276546782071017792585704663278213240323535392373083847939830816540931129331461904738192641846940972733824685648772188303788801932039036036144292764107784266359980325274239961020008849303415726379966825147675266385493553753186660933512704777062006365983815160845135972143664410103020644538930268567753401167112460141192890481675528615468380729816925593726216507253809245302767130306033743563425411638653627867486004044949073363433984023676487835847006076902510315238770933331062419599940461092041769224057194516283295807764381186215020061657291247751460492904250437447486811160247629978013762146753776507537946818613967990593269870043713966508817073336146374979434730040695023882084345045610327675829842519621448812634551641812509685641943215750675858061183140637780599910477995554363383047151420892696897420938322809953556972759339156906447215736927005521429642887686665826591981901558083377648669451313596778048463103887322045437358602835001202353750161880177177367566421189701461239029463529714641409355240858357858092254221096974651159888592477684658601636193212186950791693806798867233557401078490547678770260691762630955392647246897812715668868934399041851647418851870668639464554120838845433034919726203000986738136348227219140385515000367854644401765654324002021600849180120579571161576866201382916387500849509257972216140010358458031396305044149179855959412783509646654877480197178891976472171143509313502778918218313421997665431404805374354022572006559537553366968709025017777254888871686482953091669744985223989795191254470351937769427581063276567090291645247278886950723579990465858209942036787783789935932033037795866538762384996617276265365878492475069182261913697113465636660932810444554193722897971173590292871530672809724629381370940936809280867240632229176062772985323543299311619414251729138156927205680432791773958849270010321110518947064206917483423511228133795559457425248302950675024901402950497906324630250649035459669914123743791703046280572619956123878759498071168156266465434873012251869309175928895056075393852015924280436083080475151907468583072940820277296956336404625047706888257118270601011304673577656573005112137699639441291780979205746648682051995868241719843886423929209818675070756097010420764602564072507196290155206444579864449940381952244502764720581593886036273878356684204757050537300427178220068294590047842963757760413537384008219426783538206617345633793375978819045648975418350052919432123109868638955649837333815946058120342942322239524948146641351470315080474651093967551346425569868559162558509418157842496002933928278928237038691026060818906477262382484125543934364674563022909326589713330234906231580926418372267093044249622189657695908660476285844146093071953360596667931928746298738916183394536188982378560200282197848882280816314830533399681725900966723726360973927229052395978865886575136483020854634705534570466456518291760670919818941209399202538142419836438798046378418608685996376514868321211505115649464921284702316294598588467489308863874912550644100790337515799893721029791214258388929450706999010045105092372604281179679684780513752722333886753176532017005681786115549252839156034547779763390308295762762647815212219703172276271879145200634606401910366160322443912447148725780194956900430008166689528023948474912349793237386414124150215251453269660038010431106146553470479943497932891190611077670352927726724957234725762454245590173420948561310581320012096193560104507752084587259745977565909716812154040069025992724998536733660064830467961284670876855322756957059831097978611570470440332739601814429369776874877074580696362808053118422383402690714694837934155578842966259316090327015022175366462752799929867145614865350599579612008673489109581203175703787770552465668188422745177370688760286682155227429856710681350932127309927601089522034877939497261453148142299453125656527752562814975823747903589159782986488560047337546563648365513364373303896090277729270818890790097983368481681865066649409992111478920717762263007503091993173023046044858057111471096740852260212223549082669840218156269876474693729848459343236403447112115950510631368635709211132710313929497894674854482510519178689902491315762237110112387443167025005919675869995345945640649615636396143856231129648494598015648744720721234282345524370667537927446214585913293560379846390643864553306617323004381134114767933933301677931378606140880761030638574732355974171445570689297105754917715513083441322506918757121984414604992700900743222572990770363903634670457635600833426119361004993682943681752381736406647258283400345872665021346371524404156927785120496634507759592738221938754314924143015178438986468365850443838708837423147000872103401951700502426577118161172592925091753961744304033954887098559098393545803697833938502459968143676545929372109979602317658293769446111276584442638024901625882887160309080383198232312167823639761524557846518947044537677641773867387655273604273807874079377361954502174395810263138804453385509525736915540298792537618152791576443905222390525283353312899039347229055684234853926460720186444063246761552486873025651034011387031578995964599552305666857676986673213597890853271115357684424373264670456826901491081390500981094807041509106523310357874399462975265180076753729531857246211501881172132542262227687934192829946982054762689932207671340003062226528703666100888252911319789370396981510014033840778816369173946233719152696897967174293032354376428747126658194181217831560642677186747648662075119186804496248585406678568192240462555004683134013024683917387135278598659674762889620214385197637015274341276221920368789774640819908530742741877426005691567405306225443508244641260222945558245176448293923360572843177731906507306782446009701007687066232607426407398016454190390919757779789925077780196282458606361131914563587859871821488077447253566233503933397426749946444739356273721409429571924818746147608396680057122192230384779756176343729301058129294101693064300020276939599723209097040409437388874696305338315751844680383399910442320896546089580912879746085677689664542005522700556952711169299029261849327996080343626375055201393841522404414225751452198777854016587683444427332061233297205288969079409230084690398521378970900857356792728119484225045297085789303468138536434231561710945344276015310802164943580134424441885085895317978408377322106533063699983412075672274175965211424237048511700270842089644330549797476772011854800113613669655615636724457994136149447142583451958896144868903464428648766822796872821620789766554173825571460269539674331092809671972030597191219184797290869269001307610018032997584789478489051612225884034426182716748667553743962182839556453596586154911859898318001423349029382817142841562101296552873375094018279346772135040453753754505447889349488782770723415113935939282533551790000155055891210037598695855978204585589821626023045577290073395605957186120802511434463493416559894120590235494219373572206502924429361984885368760724839527388447352949908844345308565128129308525995650555768698382878366295823314011270059086812076544253958501237667669439309909027318070185248108513173178186912259062750728854711915565953049539241010605079363994242652753841409733667769844469094472711323229799419011540000447350576328993602921823703824873017283560169927033414726934908786417323849767068745422811691088851897239401077664876312831019557538280051302592377584544065872346517536413048435754633844795046453675944791951521368314196006849762490192378767771747348684080842498325865598597711260475617473741060828688065537136486498243058281970271118129585637375924384038822537879584035047220147614157422578549875149104694214883689974439712757678090095139200653942961317819511489537231446724252754593242340074999023880600035990227226221690903596200679667573456392248306786385292364818417340052689656779027179347994346057668173409659480924291177739239503593511956634771024049203635772388905464068999998536319926955327686421764232298472126032727096255054578317849632180159474957670996540497110205823915959213602563353582659948311549706038511932069338690332776114928842169469505458823625749655689085048962538363288303365679882873839017383020409890056139179714603911023351955978007940823329816198526800234084269246035785392305520455631448177065695324688449578429410518047384067099715418544926626631204633600180527462941793791171633771154327452030722829266254041916254348843421318974341200720566254118269818439758657661887634625920584546678494825563154408685755292789780964139809255637377265103944911313044022921488177668466071348529903410600513603470752791151356251175371326342605171782276271624692826487300315585806261882380582056761726130154574285786550492066302373447642747774189461486791934850830619184688239126503599758835187528843681471619212686930384406684239218374263826120782780980867718434423755588162958584805415216665816122783965812752510596870292371499661058694071712215989643076070299095514090582177881836975273028852398557889408667962139343170513141306774349278307490144591836524733603254137770892616457317458604289729656287212537383126773226585262061955769251080295028529700799902101788873764227270221697628731760353220938010586203170411839523130181620836763879228215440001584353024309238492913396933385759894055278074738744427194120370672785938050006169810250636452138037299540544864017623035472856747681233949145926015345798903880572763142137797301757130637689550625073928802995114629734532559252610138720192397424992899295917380185294572816296308292539781758791029894246371409622820639429815862480882992472120792006637060410342091863853185753914171615243273407807721375861129165930551613916165066445317402197794309975400683774253141933250410455557170413455177359403395577180576363525896108642580630479712101478720346997915640759850292616849462270294999638610666501188612825907718462335275387314091897683283345460235918323021311443225336098722019748473822032473057264034698597783077413058464157556068275966411396760874300796173319994135328003550699021975830315431272113518837201484597729322922393181049046472793865274625725401210985164110176520074976361606355407165898425908370010893578050566200176808464100713034564830216954189122204542520655751134729101518420356724712832004079326854709685639916883861535600857432991744391629351197221904807788634351433585678714219464257805898539604529241605662763713295894340725931470268988002285423370080043565250119481184016915224563939198338402329084470724304427989390037962663186651553000129022173643560554892713761303989089239907518020902810937276362797070972789231813190973288877332657036671215192036196441282602648001759582790287725593851296187423059908745526298950651909128503166422385882892506474932521946429026063693981639792189087077903758542361104037976557839306167932348688458154825085352662176229439762268566423775831007978950995232979669610653044154311390250570839429824227912460293639932474605674859508827510006713339513348073441800182291248484856135394703241234802794776776473271681911122825269986313734595531108587806272965466053276167511484418214539209068670168461550264447625509613054425490879077653930294178277068792563824876362947654070930976503870964575012899313078304523658811606650984537046747698285630113390963301243798245864724403754901122667089881922776609574616845371321217365970979235679323019058476449164848342238110456830270113334067786443176234897722060954510356438288883141560135954788232653509312954675472427850282934151744501533833225835265476161207659184359216261794488341328886714033149566596969979548222588150096808353131289710015662054428121031688446328774357298460390978439014942330497012197967152349371179906002327460713262418390844343658120891168385773834935427427930360405413357917006661662601464584418558963417479182018469567138074865828553765674912239752074406094635272119302028815148696409023367868920119953123423182344543259440383478367036250550124570922276040117487751838614001791397699917344733393373571287817993472603216439934675502292805391025140715203648847287648966119966909495954305157714306499114051838361300181279684070042599190809276646575666810790518983166979547740329102334762201571065916861185639369795095118624402335032752437496053118324770719866057831041348872297779663527873163072607170839228486199578519200681028348194937681460930496768457862684916378658839475845858302180708930636971712837811969016235477267301285150679427633112478152940560171663480343455411599871840759698572380931856035345444678176059198413959580953206160758332830075509652607814934720878773532188425545916315473174409513187191565413612650464828551122453092070487655512044749874387816036057096018917148706050164963423592783658993006552190268406158072429467818924954606651759338795719617975114077914791382695845840387609966598338522622437570670027020743699543563639598424214843208159662022104595180259136926529203151070289321547356770853599518028971843026791697876445905898365483695645068285010190462387443011329033372800808730790487868278750491335694879051215750451223509032406354371759158567690861307048428694227463313891846168869972018275442525924403162312582045163987465246276986731438372087501524924038358663388415060974809144437248414110720260944155295505734332060917641703384582406199711247797765250671571917745453212495658661203795806535343949986688637918384341597920145626047363220223309406632613762187924980348818645817613979776824703377250636000785624510844483005813778804796541451578894062620371318129280973850131784767701862256959869542447010184869967183445983880178038955250517658306653721174474053163133987372121361785265720799810406388963632409238047213997025723213936292364473178498764665529423770243356209830382020906142612244849192613110779628778792189952391045340606218668152083254768767467865803800697966971533278234218088962384160370050798141686646746921950576416806712001972973660345233146421273667325526939443987031059128205225114053959396354460674979907873374873350911847270519471350395193332147654591292988068461601698492496469813697148990749230790736436004865068100190345412406090696725043156304678550767485363545849340010832091688835721746374503172209087177622424248305294829497666282103329831892616872399758856337096786895959523501293456994864876578949238745416741800016573277253449894516859414689422264129572067047872821652182420508424413645952553818742492665951150303994271608362999518046974382012112521010742967181480771066621008741011586210237654238175412030278108587506363817227034883116665750778867430038630165906785258958937950515130439689475014938260793076472790105338728707686701377671299728642454920073890591202169107166555891272866011250641811808102345598281059328496598037939288795486651212782960227904494294731532391878261020678137971389732778475386347453883697126017981762217070859887294308597072770925539176920127127188330670793622422388086896494948841105921925640154172712656540901993290716618381462419732563689095303734501905222579154222622288112780061847020168225867292022296706890797262307672245819547558079834244076170604995373417584298112950292346033047524477849831060121102669069175698979573922232387395134872174455996174784794032571287844706099039506171641060465879497733828060843896339981523095764085588126198349552948069711119559747409689877500930386949567617821127561717996781426404206761332238128101966373067718737077407923665758474834760572190795970548211426670447081778919463836976638297694960423559806025309046865891304329291857080858370544477220395761451632217304819077958306005298556670827638628973525656079944755267281505211033985555314601184976039191643238287600703990590158993404954454707871076915945898093100160705048695267787666699482282405330725102338893721805274953528737441704192539158966678019005274695229323617581761174386448990666016207713353436483887030445654165650960414131774086243189475627074242268352547917882199431738250137985202987229528902606985994831160699459837740149407404381361852489784871554577294147150599866475825329583825420459740035639169052605749869285399660001692619997809642508987427530491264922895182012499785371777634142654887086077246783825943446664572412586516141209106570182841593473414725544000631032771745090922144712653103956317810750578715536639793189954206921758496155630252117241970421335733283438140992160110457827552829275490060558442829255171910003372079456199295646331414057236279884013689040666874709674522743414105769186279676637228372377665092296485896149731719777227391420431760417769730793904341314383424925006401304533523117715869002006111532038291416103074368920558165131353058743796099351301029684993449851644593786699406867047748205000064108945117447559873595207088059162209616088110327328355874900858053285078979391032023387829680579200418797306551027416326988563340715119498037634683549333941851817546120972100395035560620072431151967054057850585596301790589535669895871129301026055475804360022181937392267397878251165975234146631344764525899877760911800086673125325242775925038255915793697883053679278422348894833562645437454087465538241950504798032941724594287124001537732983109519863147335683531644287507403482787097937161493143523409930697014028660450324087623008626480412127755857276931372889812141346628384687429780175065704786291082096962033528972920637508962083218762521527088199569842298353089382961417188761880075901833761512672469596649739073647204481586300852719708659191235582526109880196454257690750830236059027970833545666967520462151747317188299103898130413074606697704233243359217362426980715975424087032681120687054066444777194519818003451880986507332940909879481744707346653627945344605598979290077222670897752914702662517737815420555884917534463273897335796702587346152332433594681897767022247841745011444766818812021620871224841442056109328935212807971945292182240145627254464599686015008850064623868195271814267639125224734364383055120719659193166783333146087404149948121100300052118286632715655477952972286471515810111746196822083952330240260040641178888942354028330827127786350478808096094523504590127000317827269487015702946580856976859981927567594152184692595130777324945642135158120784706309909452907437218868474878140310271772638781433019461346042466069035856526366274108049192759048601981261778883171017828547289024125058832713781379672311420616425664778112592876336011882018695211616449020604024036877623306299659234651474076477466629907669479602343961121196831336267625918742374434913094373271538740951117497511260902181015335048284118353097803046495953419876203270324137080774417291268906405560242322603651568800946201681732662764093832442755869106142615453361770096473507185232599431092557659233719746822103371954998313707255884559305913323524230491282294456273190108127719546518403608213781380083048345208870065413829696252845216982790274038594463838604438019723545451251623784641411206992105231459040031891231027113726457785044368030704018744981205579163652503141883533583072696714724166344651638726098965851781195243922457282715395647364301933916240076183636008515622013216398614795838826957299756910218570396411678907725907517030201217830855041307380300693343488973830026254026360905006852322342139262619656675621915268025006618619480251680160914579158015665761359536124404726843440696099127413352163779657815647778512627598770437042175756301039318017524708694026745454180692287471977367493975000497253441589438786135326160744500582688360582744021427161697690459950564857240775145352930139694410746522712428663355224861506876612724071543703069955068359057850237452212868655246096390769246591783195142602212287549020745351540854028989713929458703827518632747267707200295952493246934155618473918996956824624676941816252514204108910552979556014227534721509397195249006744583242348615108981012977243723080711810769124184971370237601220853695377124441010477137856600453059020124518772592114626607342791577764092559524018243142445137832377472310344498164659517228289063869966403771120998016192484245369867223331797748315745210730354345668043471052770379389718474276506746987107952629606283022296038559577708346026666485004962807241707703737083730220060151796277650880514811203269107424674665761830590717328581576304111757402564895919397736102247390629504916344389762541592999139777468574807408221376303170626982889786817798770960388765374618017036986324847364373254966239908008399886844513891189927469810808540743126071671314971019370944227370689055637605055928884005720304869271702607132018208018386086884105618510429447093132496773807660977274736137473933593664348830590636262255883988007361811216311452788140141692853826633640337172758469748026085407965376241695046873336174218336210381996926219793991835041554062979187063995075440694303164310873537624927152510396828740813981876531884597487966035963844091219041897413912800903889916428365077694322788451768272300428857018164829362173921422737936725316863372770712303550964759390865862202860852011991852926921883321620319475925712139510628841771004192611227335809757910733173525518006452516956941995346899729925106630441402427372129030171863100608986393346116780765577019960602258551132426394546585711104608110646654890702041871055427835748229559340737516940917120560162080908971841348916250748570947410468014043585117714239329611134031893708617963306337544304327766342700164439480192564215008221234378754319089446135725887495927510333691116641612645547359603727858508882802234572731798629859621647315796754774395039132030849771049253556152529855290352577530691156048329816767348470549339607386817004198738393653608184658676112185358874525245410325332451331140962460561417502763080997349161939215030589697197487348956492473875009079292271059971299450855263440286028283549210623467230130467753441087963335831048345896702508890096495450512255577513657266844167709079144520906179327989508529405486522041209848571040506761340811193947189630417431795420964970504563984746455691368001557400962581506599217086416914719876107488150936316914457215011537937883123997778710488108462482020447504921835138202500839456008952229415712270049836714907596889568703404953404736600517702021300261531452597301926808099376541232870737303055099340581169441740186797992095870642101217853211904598076840692171458008045836994706775398912767162458976952927867015539257040919511024224687062719008969141299502413719620935660745514610883117053432955900948490325420279483540885993554311910271303413802323261406587310354201770695243333643637060845419743065221078878650995797852493463864348853719525803772120925870107965355792617739036544399443659143185733934842359143235138346942542389527386223087814838810526075826463141266269934665711475360137382715566807967389762140017274155648499083051221610333380192841585551884078910930611637341266578261882461272614966569497097376379545214868265712664199983013423255416670119222332551594303083200598368496892512500021892857100390843974450690201304537052855983632859362049635280050959667128256934908200616730198896438146410997749233597005346818922417683756443879393445388595371031398808779981225084936292730154003106785759870808753574070136497213174104837363060642062603720191474478075429304412270544018183012231497949539278413948195954747028319227766553900520219944811784177485811143589495603654941470851156973978383093621881732390118628726953040149469892727247868869066424494038884961060960981477831638965626597000588675829954099287463934761940318628853239957853569850888998146981786108483897560156766407870187046990525843050958606485804730946344606949493307952795626545055575986597754562347702371060180547623242241910798085608577489494223050481761615000676477271317165344774866795842091491238013668549546149525042197535286014957892130296638808148151666138502432502688646019683560684047322837301632161695707602635318381448655406538639049243603908888359584519090493690721345789486971881216869371677571988309772723370578293548401279547061080539070170689328089166916331925904969845197963786571954783165713226415074009317134477960219887598263651445055025550983776250900224261143538932388107988048351805762035691037887226663570745785622649276657827201077223352374668877539336488147212609224364529560332857497068092182241721959513949901309735682944171629593778984070421331678618501296285126257782339000420675172603293237452208981408729935933601254730717305134213071141843961457017903867700137815412486290984951326469837261651997419821471728871194291093977372942026323191690206049535547676098896532845437141786743224174717679364343479158100292558086034773151909207888037853574109547500821581208727831853896123788422048669386020735498652649762039655546861937557904503884098912752057806570203053602755498571770177245799984183588002691208794737924814373135232184066468473109688287541706445809966906293598343018707406646568582229485419624213114824734541945396071675804950517868312037453397033057610393854715579011829455837430441493212556434571238888008104079843097104933444496988435023395762332620429527261141847762957926881515067266689177871839541760476039055134286074914811504867056021102692222737898541666409941852798002897482234703764433604962775572876407509086964300033426616666202780505449669488544362490765958241358344822374825532506461744252290660480596807718710553209596615622812722241885143658045121692264175286863167112838156002021847103739066512100731077331590053870555264271656151069311317184560451515131202968378919574107486546266576999405670426217891925816624507728017463149904088919490942813137638151686869517966587768990659666923106213014841012959863913796224126578729351560474005064770821471279695790135513333582742375056856333436322781659255983554765219279184570829888239958130067203530186749002712879361580465179138025022253275860703594011908798419243826704872804250501053010301170366274465975847542073706047964875522030519357741520008127392537468088457839982155750996130167466783787801924491884492584829936574066363665314631399777545495554218775210478388552695087329050101113395535730513866631995422095456932672375414494611165654601901996981773844608715973344669289302140121188548040647612814594376465497542867460588763605210458420998719268470465348794966712411144513447699609142380100016335429826288750960711123380261271678131309631304234331930363908451276122811405841284409473807398841282213835318487506482986415788733717562516529133593983206436778891561660143444755309805737437343552579487604608989790904021664015416111204550869604259832754303190226701979370313871915593136514910749031078490873996829234992918962906946260999891547272413914068746631042615679888227030981038892358865154035879380112956752658421628605223233867295331188475860050270939390996955226108444567323140443396208778885523739027812717408551672944873547566751225746984241850811684035708425726544243354692334815597896476611284919433991590044865516744759415230617034046950490177754257050396655748453321283730509847695387271162861149544518015457553121180594034322003539521464891819747015267483874097125713735267411640911930917726021110017767903982069011978130275177993835886746529912690058681653482992984848301366468714591740664819223482009429960731534710250097252002135699914149926484729748103875838130464155681396856507423067516637611169586739725387981087487936739646931464722438110754044464866597336318478137147363893214132813435817370502219957620356158534752135549609843093961028341729801084006568795605658120033994070470604196434259848046869058681724684231572160669732510933155701563764018566598401307257004987479095987118398313706941454208801008600414597309270412078760068094465742652070551781578270466369155592552708365917670483911701734491928784512228330563710809066745899213800693271986407170138324628035243346702523385022052530598374068877709615418838334909281718865046102327411817754750434308409920295283971264669741801852076539991847729767212381157718587917084532558695815179281479189099001931901382821566080369779447069973618570756548347204545806518960097303264118354166863606017819147866868167845584066536406187647336784202727190493563875701153403624094577153014014575413884074452743952059362947074291116228873708657084258445434007206742940837811297960815292668101750083906588048341321163483841378278451022780654310609862534635444927039439921095196807260823093824093947275712383016783436362395292191680781104913485696213882472815833229767246846503883477935873368822472894965783761151359344612974662149145744089904450661131857708332479430393151472066413627913623121955470507569016572963357249137751109602877881824777266553505531864938834821037766908814080004496338990076674726052163335959153316400887580778959369727933857341477397114293075818996022430976255382865979416362676948317601484324261385122253017875733728369827488636637946346710587443327158064797664273682575308163928521269770293226205460322534506111517558221184969273433191491950314348786709529388066530932710966760196779276978884771724386215898027450316350093481508885258197837449749529000579013579624582436669438840585621573293830087093517389874511456940814174919063954527322985252658515520633787567222946887063521604222964646468398525504503081129842101147271114249605504201859971788032923413331353779176614693663201591087174544713900440103919957409341548867922208317100000963683152966194891898088194836848189139680337730665450813079424790842561847875027517682148705130566392664774362473283624311445539848508485597742413820064484182003652570600045128690863146983229175424006126487323296794881711019503991321605256847290019404301205831654842052315001182882988015405299456178260755639232247686327255980894153788897711726043105678484195867729671977874395520642628310546229977989496352670420945611737277143975949076780950068203932776114324615524481774707072842012820056341430456074956407182680074405566595242215427021330964004605679138062193890840145181528637393589945222747905788088402672467705653503308425973031054710356504840939757740707873163705829006945942693079286825918852155715527831860946495247805997777498570436623993263302371140226314908074084170330607590327258085854080558868667649786947618356020999633997141053400182093424693607248384644385873718313736661361425549865758932770585531320609787474659513668039306804017256316268524544711766221826074114909356287433566977119001256199442498327129628197626512211425337090902535106436517006215456103927475566826220120464872205797055210178958579686291542452969497372936102466743125816494740700162367634661612635867879308873732937269877653070252442264552093180103930321679507074496133279160448890311092494005993390793459171313201784888181555418778339366790674496633011026527140117844973686765978335739211372001448441040042367856705269719817330635508862314626006549460622449355115737302120236877124434121119017757704679319005318030826805384879666714781714785235450393536961451392560689661479408015580478782438738897388294236606496367138833727554632895753551395926524225046612122677284653456043899888133001164887328569445013448980080504346507592774134123318858229753171479781604000721323974434580366382404874846645304342960519996718949099677894653736218352041482213056800787348874354696085935373397618189288228270041735775304938572376716556613731246025205810934619961105695742193397310579368344201631341817329737737355278907484278465140528566959433195242858468318954370923940940404958617475890860434072249019078565786606813120395362600368099225365259524394067982892409141407089226707231369573487125477385005212160751741295783576701451507424974190104854725574427967925596098257494384773228017092706401751619796128019540281758937557514009116619097935107097171827655836896122239763640338716240367650066009371782719505906214607864265915041841003233826035269029159364940722455434169210922252651248564941930699545334202623861147076901967834624327573315188570081165993275784370721626834989843559318048422479714060143837351388602140480089222473061189992282892340259961971698610537331995388076212863465219471423157961083342491915142497015330692720877919072485991714323464943558694645322996548635914536445364923695793911950533826208461927802529511360591095939960685107299270495091104232385860868168101082916043687767211155510476266900524304871698792919759380183383378108496184177558797819883325576553261765568986853599935555245088109422376955269175366410874987810201381722890454357873402893711207577379707795193404957285219970642195393787285378945201797685425084305448465450255143715237533125603341216806053259957369977700845212676244275319928215952950043477365418059970792492582830569417392406588130463911819164242076648112407234455189666397865981818607855901497008392768255262894894309645291234232514086850908543867314406249254707601653189096871458597650043225690873316289628584698783379033634067564801128538302659976959304478924932223603408591477437512859397651891200488124501296384569835756641951528740238974534883422617178843733626310855089355251666616391833343586192748680050144602400472287863740067043912201756146497447251731014464147702310332734613989387442153714847088651024895083941932187384769673855491843012998419092638202624267717500260853395786402322676851625873243691730325699314474162630352806064950473782142819816683080166817387630791378644784401215295483746747413976474673996463337310056619570260313847719004526062216841282301546146626148598983382950367055064604842347720399485750378072819159833888995868872297705214313019980203110025545768477317677001436378760774371443502439814786547697470452391925699008037513210942725548697814866981421378631151240273670908276301594948395420936738674613511549900218137785354470797057604685857611886582833850141978318757673596105058919059437524961958186504973187899675814257571307992923825533818231690833399879198460858513272335123621869214671755711361865562553975764346665845395573244548621229077883251520899203044011921921096009208817601521518478053840521890247163659321071978482585941536277558884663650433270481353941150361302477767545499618032995475583450063384345718732795987171066096262215512981784620587335635516469208355286318699772838867087815463847013448240653623167666936139509350613976947615255099200058695450923420970514926270378441722129934179019316169919441081063682420008040395063125695623304759060632214604059272067297249520822834255628338988181597488891321777871123571789567304930513108730909809454224132259870005589467421597344390443044505136394155829987681632813784676368200317948386760161305042726542466087862976285821925873894088371965386683102416516473623605092049843420520296456429464687849011328180440720556778393165074967127233677821896430567124808499141151541203736195067239950485352571123233789056191258526282192998959870037625980764204772284789175312599483369211015591291440026712916814918069226249839938323833571405386659269371255655090582134752355471956383550513367565709565023971737021985835664669975404400293409872720525799006966411577622114115267024533888748140305157049850373155947553987084819910617235287827708054043615743281582642273554507863732809930406692374999838800629235317700295804869012233405081687910738246774770876381111526236725504176696461283944956627112153824636102889440372125965173565754638249602184057506362350436449631220342610002789172510402611445171024533496256261440673296720785897447144214229501792549321223197458412642846039867749811423176820403320054664294830389789946676438118012735387082298583454357746363185976901914002803337849700062532137412310255294158726059558716583410354837754676112043698290583470989649061479302034395802240141780936932344391695792289208161771370254585569975440090665108891793310191178233440327344082118350114759902613232919669881927306687345239961684793058922882281775234407068342763140978763220097252654874523036297104281188584268280912184764083108893761796305105576071957745182296496265500004307051328562149978918673162628182732212122701537052724152324346310309563126824325653877641680695229183923824039456683850414525479513738199601776277326438369978884629203827996779660976642942636346247747507069640440066123952274087957947452216277770307241454873216831833904192103123630910689193962396933955098089872130489964190160595641053179910845973645064455542308424370085510699846762418177690892084350775769378267278078178991644555058265157384040979953450240570400787246960240413812494132815418990299106787286148769213484340106462386531552645076567331450007629939973625236624356209644210390310524425712416442336565034505696354770993347062094789237082320759879444234043564175182522699432753816893761176502307214152445979612249651682600358563604044748897802081509155644698520675646589847004249325033281320073690435248242705885584045484584116787990194001573512975689403914990343972601241568336666906610898635138346758828598240715028218987984855885019322437604001930309031046836959640903000325941503770183241285672930360669464071279078303362033766557324191666938618335576540942169172609086399346456806955507269194110805331530845787219953766642700201369465830591175590879270857083166891997064978978420558639387553241036328397277731834624591134410849951246833794682832108926651151167784035403267391075750254777899696893535634995004253030342445911196724898020008276636096953920328642884186313238090884409380843471994583397566804998277431886740282508352510506163448335133846001188212377854984166304213557111570012284911852267141465136271660470331249282491334195169890200198079820711731349476420390509518043295572103526304947299332925164593836111789438278821944300728172763798001225272439965309114775123614218767164966209376782857007687587750371741703935614971840252764365313511089540717223796348376686359923369645471916623196009055489426207429793230667059308962946593497073591682486035554923680560365228429157174165510481511999048795919955398250128257286970394683926269980363527962826152002705960971988776112509699678166077142753690546899257751471812023784661968544677777302837023816100660109220698770667118209073713409383781316121908456933868733702465732776225933827155682744158429598194140115510974209768491009577241422053548960456689652006185521316582597559338562795241764090357507417761894116221742631695208531148008338803342819207150538554295081072994886858153444700162615746068690773952621658380815127482170944068737358957533946676674741589625558849786820296461286533110745369195717209189311455772317707192690612504538866306525954213783947795248077286002083070186707945408738028838839687214506028890706006616214542100377175372703464966839595853132443408711694216290981153468806831067681327605372335813870992551562309834403154220290775400130094131861672883463412175299412825821404544441402945934382223029911964402801458914109668362507595248415471139333026789910098115001605729764421130901894836081849913062348242040829661068916137311103565939390825273811510378626342557596370629332786917228484938873922445854760805507725962417039521722423906798725706856368498503432914581011036085238914041323444951768305063785611147932457045750705935517330121776211540313263045065450401304143635060300083634120728779434350415211877646727158945253310436123364872292358035997169566613920953906235235638710481810394656905395276872438760309946969433374839017327940037556955612336202329430995686673487778869139830538018812945667451759239876816469675673332371241681848406430761311916886708427173674332777026032786323984900681917956386118193396292650085742612427420178457278210230206163620848477706494580928123023517659022499837164957644905080760950804227705906538081095107315452279067721047105829748016890040208806291726585331558276019341129785259312862591959268110480596001245099510632512913733706746265202588692500543308312284618707722302020987365169344811880730434202050469739143384552079507181018868007257433893847832508103961502864317881199901301495956643136521699172474530081285644510274241960598720675617129095792259465634672058615517356527589835989411170438835184020465344617517579526010234088339518208013041913334146371568347010668422196275949346783296698582583913273236461801923546035723365743181606984424851516368682332158777331723851787039126972223347347730147884572187641367232730001986493170086905463706200369436793972142102261057147700639321805927942469690337462527467246219790462556990656639103141694914554676195455959415415848722847458361325792733820729497463488962787232561789315914902842893910415583956419143825721221359902061417448095969956245881625413770588388546411877376084659951568337462256794355339922682780345994658068422912441605964114676386045971711040858125027256198932285528049303612205986599954025437171140139340802505819515534532231861244214471524952770020337161284824772314955332994108655506890556102672410485776871107231375353892826819356898615659123390675613347052281003154485595769117993626302597731769810132485554416958330374317666016657260761251711630153573197625519002194572321865980644179425496594151255453160105965271480697173791572532714336936913175287667996538049747638871728387840146644977057589835151395600396697230833890864655408256719793228434402787767233588620712817560699622940076150478954079419338743141113956112201715125990500988168510608497647135161808981671394411733399807553272800859733086307657892205599960974016933849780392691278911139161350037152260794759195480740017852208187225122640392935124988028812098363743965978648210389085024225265721921451290104480666068717289450404683952090033044089844054093361871881205923672440594878512135285096381285380052967982649195476634823991879689571151866956729093342313962967407495064961455318376045756809258454051893664220277913530336022113358702743322217712187776645471420996181001303751850050089415044925679417837426613659040176820591922113604925934012221664639859037088420205473895423632846823224007542388439771906606056187632206640796436435497143005440530731836555742998736226642325736301388597238854550665575232210729961110128215669611153952071650731696465212878294587793321659973946953172759904415690467810241125949289961938764163401651456883303374067266409497452846566475118248057577897491696772491084367965460294378239446083572107549256210250174710096658198498198630003611009950439750845754763216523085402909991524818972701840260901474421489292198027431417672781211294729724974417758523766792549052393162294444501447463820365662674841184366292508009158675333204801710895968155097823393252007985495476426077652928224649720481189652425148683918141615391209602225194674976947737675118210906746243327711863764515397089747729433087701305531362092872804481776067260329749885761266955792111089972093196552598632683218780692398450794744698159883133676900960325736213077258953570455730139690087937528289774078957923721842650527011631489350829465612756170333107394154661292079118414559080566764946944771370451048501810409215455228560590332775479013689830901070405050241963953306896814328594888869902034046763635357616658580220228927617924927917914260911414710211356484965009006820492227288599609589310428814263071476119946653582816107022409441839475700354262498456924916818756655268983316795814673747981693718011352823813304187612619700636020167251260747567984549801835890338043907803455322332314439198786121755621465803482621762608555071784026312821278352399558881547263485416969389112626950768836661589431966182272182092394198332726257382685935770526397775153812974300832944660234477008739158208373768629311452886267400028945582727172601171990562248026600649643172842016696254241120022524837383231435605255138569939785186308913359649096243672859767581782871337240319005969642397541974578152540394329539691041860159056512882684817425545322047857798898838105704097914638102154180087522081330440878376348541200373443687660267546064535126661019937432990328234551846502742309777935224850507562013310560793634709648203768820783938858058344063606105533139485796252070575185267716653846967107866658548715971825404097670460084742886431924911867486592280544131051602497446402033511404138285941851524054970458832205650498114379702933597053230436779036667574081777101552929028332797841663750443001508407893580146766240023904712607116397675472978976105710807895020096487793513217001476025387062699942403812054889512580477509713356145784661181627267579568818802567076243379720301639518387299747312179275023133264747696353540936451888070583722582561295111987769282658448503145328243262067859769545873290008036787271368378668855033138009593223125559889915320292667896427812266158103350992074325640021087227653546052799964917902331296582656290073544695271186541809536928463574109128624334052643658188546455467971315453531243310893509783677856056666027512171588213362298964293568334605741057411704163207855676671263068138822976470355410790911269430203215229771643717773364179666469179577983935084657971128824688236051848528148576444648357702691180376440455024324635722909107051373483852464105366116199124485109635754708255105255886205780975803711148854547529968860063643326920121372876637528612707328057064509729465839170406645233390132857009542347872403380901853273533328106787653656220548820306435701823467073443640101138742277729650141366530107105109991305128173338980165321978683776079573567286439906400278500858773709067294758404228863608143863445338747998524975813852466175447139349659977405043326488209638013704601373691474985123446911069723906964231001461399055435416118493525372749861729179713555450191170591772579740228813778199829894579036230362560267729294013547539159126067711313098377608971990045894870051088447447559570812836887170391113337944159022199984310839548521438392541070748551700985581284314491167369750521388314398408890340588086095963359974107564837867396510528896984442275717824628505128235192854201740560918209454359992844618439467161470942898730449364511208425689667342959808385691230014967393733089969291224815347110066013588131747726283732838970958721509057061759918615322255724740110118765691536741672823751585836191991395493794809413905253866353049085463948966195757257335443933361440896170602252370460258581744567773084703207096530694228666165885772976385210111097461553476920289683441202546815727816633826143486486645393659929147553124816515466604142831238192055086503832120386802480545195541753803925350801472236213301299512181335651728194892348660800434819310682824453979607584170483474271315671851463764141631708419703146178217731830986258879109887303571319092008933584205916637442573456480098337897026870207622177817083256204939687473863596295310115570844616230854721248644779504113953035502514942139413085080287711603414921381066189583980009379304369555817584868994556706955143986535974472094972516639922029512987427789252646167689821239268247164954953839215046534168266569526304818229475876742075922216472618770136324761781495826309337327478591608472749241421997498663568923738632890744863344800616956565062949150757412190058428377592587869017493696317944875435651282101657268340481804472263335242030829130774596210272028971102537469941814475540653098332046170449998460557605634839298998264837752483117984388097474884920579494762403675645957878093365905514925899982142635632962097105075419694468249005118284332939305606088367662850169990147446337967634528787368797487785342888997938163001734119944535292404140813459159106376275972186800667533006966339446029644359188303877449287713221130712421603554116336819815834282811188264602813863422459987098449194468764661179830346664428803310745643156018137559599956879860254231624998981403645575696585636317065287593666059342065846817548819805853727031032203556282739571407984019693798214670982188503192281486895743106979120321796558515679075784088426706971715520006098613988005860502150128136119930729009997409066506699782619693770676497843952562685337961168498262963978241329444739345905461201917639436764634382904065387904500153631229959204358175490013564648913351853572256715413329601194612547551775437428692483328537555581670369855937663952133932514509138780025099137717746479454040948113973657823205437341558442028743249868570801231844456042360916835249658005988028303006557104145113467693577081975009511555821208760606320132032350745478090208698093937160835459367638040280556351026778097662132224344450565253720692935482773846799815866637336763098956692284469234257224268729115529045779342870327262938046638289822517124268957827873961518067937882475147284733433662747167424921959377525317684295031434301442958511273788684420090988613200777582569778891900748822969399282203113576688220473119929934334054715071911035926111869170684227654787909499815656700877745938741624695132579665699851299107485756010394801715510217625506910762725670112807006648873695054339407285963515361527410433455812350466959917460273249206097543959365025377550541867891332639324911035797584618810961212418863042962134245569594832181631983161672663676942945351485935820517203156950790117772635953724882320981300413632063436585282560033733215911546259711027598419177700840400958277836040226750297524795931696335409192463527970628760139878025882639297795020790381046489231737943707858190547694654628188582319130523683362654797152871399828721815553157860020179676186217974008284569913976044380409576149342359807862764087665040802747970559549482400144182428671734181215643847091765999155166865592680276138620097002076462690947458418124498743167300477729536848342433146273441310779848043243345240825254336574040494102181304986875679380098832378642765009798209616943302018716756503951060623044527378229680724252640260231955996465448270677810701588860409147580495562526864482853081259809648201065678091025728619707016018008989013775339085718663024828560256283531814838909628611748037137104714272795363766001009444673639011926987438367236971590610230445018772750003178355186137072064906369568307473307381323845892960611614082362319426458566106989333117575928423549808297410402943640619146734774225074925113357753828321851350830019013039761394460995042668317446703551979955417642206222620714849295192515363205004704605194771831491255356845276521042577417528980298840455830873240475530232494327477733652136365249303954057146088425274590196901292283021603808279395862747382244811363373290393992771428896822831856896036394568317175498593905002925187885708256768891780933840910954365183934280727385726658394187121211930528708176420840569144608723413809054859059012934423298563222506073317982058289920234544138937208865711003979973695450284499170953801458069986658531282737243776792698116201323387733090761529812683811606161311703434439309876778169111533456395793903007360791041782833406299994035230221599893671350294816340667054521891089015465627163222967131843693149953604985989451415230906250869466092591612800750400000223824146949962089094323147497014966246501588972720645032022635768121834482976155840392842268113648460612535652188031097920039206388696059337924944666616657433003708428634351844786210555523878531789724994487099767874135660782924952200433509519443121071601893235566211869261822490859520252902776529907640333169497130782871075283394795782358208644640031648463469265962477766837074882233950778940225749744661802569475514055771424601392626417193943793220210081523975012738498225989772009602131017577805396741882402735071720618177286329782258793674124577550859448177830401973659987505851198954494832085793973972395748126509755506247400148480743687239285952455509984195472896620171671961262445007018200996386964399390536583791728326654362367640917863980886399358832889286012668403249149936236173245395465010611916658717635852762538917794258394944500686594425570961796890270718524473942309433238576155000105273223021977882749753783870393767498866412800796914693675642717936911668674955828069733677727111985563040714942473768435476266855094592372835785007559078138248256496176071275153152296878355601626018650675392246941688373122598118330832953688432890108508281391110764442528151096294543754890431123317348005178988380352024538024662944217630792730802602740672531700540135298052506310994644776812796988334803623536503617311335617690270162773304051462243674728320705246481907221131925874231773131285621043553614766317511527653228856678763255364412585062497325252472820335041035091943810886951999862189218938889321716814172617932451033123106034264432053809878483010322736454271074036967840372322439129068234336324041391484406123367468113161617772733697175898560247630885088194703232133737889738918896894821654304626868529959524019007940337902110873692486336985082379758840680199653132932182057728874518668163160404927784404217681341137117473735803425114717870835668718579499525255933900410378069796082335083047353481896091466234115079524679665349252701113597028178127168277069686307527311326249955360689449102258207376770324370695956911596180139432918227728559454058924408399168745003551772381937295513206296614196831993731206658054568307540671256194170493015772593325372520901873181128001084328719502473145387863546448615088708803182505175930981492341295039087914872476988230267527997064640487804396005647401021603125213637688014651740542053921024696557677765610924665750177530430760478767028536868272023861774682356309905972712668502930322454111386580574783696212399616172415157198450171037451887528976083521023539089889155389922427489267530956224420568560659385195853205015987035274195749436601886128319621761369060376539647928263979237836506791538105078384426700597469113228956421460962765397495278254604283661553972365728784406679000262138363897846165161720895243639960071343823080173784185750328520669249296064689716786704962132392400846643833731438292068737810682109963883245745688656961816994512464860367766170947455993961388452748885927181816149588647216311444664008628431683969622101712210221772987963194428270337029702773278970229559520015690449308024269169329276979558892973391952595227389165347239809170691260704940516580673358475317264648195787975107929735942154935788145326877979669746544740588206765680286780317118255426277374098902003547529159833610615894798966248430104539915039205345304996146293414877832194725233357243687274964797767288598195448807338019082266993800922581015601201878042481901564428252707709442879816496292973421402312091495832793753671392091508743396313366402739746497043703335671034737499663436729135564861801029564923422029602429812527261474455690452583331121779538629388320411199559921677365499274542207269015206439906080576830027558203651612545546130563054409027817218116841708197334678986537434317599307495285538295368929448370647947384045435417121327774302396120535610399098163235256434901085765062265931611619235279144098559510226984699938011538817259245910961957839280077084451853139901601840302642318474634114704808401622738946746288706651975932013917843822755152086384927398476884533770180902071306792590036743347590413590280050740896574193788661667955433609280002988129110753502338983039649487291562835331472285691510719220045583740025175889869692839328203981157725242588399103132766237040028815500074071025722682797245929424253503818576274244523188953400704190981799750594093094008786349634978031541296262149331864546337141664693918714626021033666875748004205271037079881599992718768162839185449978122574670462305740896724700106475972834133592772022971822722646109944478727428759772127140285268698133091502870962501651201695013865715916826676503376174523391236405503115020011431751475598642393761702645975278390557094726542139206668689061140181777578583350152909905910562745789050260484882531326425372067276036812361795741878960617368240283315588935733009705417477472153013472020051593467482959666689670924193616400549453106942065588705435253866625800720727998601813448351623505344877381598468877891995467806021763848211971711415213609421466647644950968921446834078859184166527222560210727918197735043849029068525386834975878475132706552418644953430525505992612728206465644497632707326466320666652710872285977023280142020378723078388924950261834382640101062898321193628995968863820392022510062835776342440750670344323707740622933927501570030310347044751351695047047157241672895907372890764351507059516335895196805800481887642146671778797056396909191619937991414933191964887279691752078635549216242708990417741443426177058320078868780628687965570322437470620099558489328595395442242169269608770022483580746280280320951035062583883982941153843096704401074878797608213362250365745524603103746550250994109769055601084647127424047615047555336917452294030904663811535728660304971191562167058228958882108978516232526357752294671427543892508724817042301770614286458096454102697101985171403294775150063519015056519067256448672744114278052724923124748494646920896602870580585122948401472253399532823853775740810716173619438722513308084826910627236339145175216732672226454316158275539875078316903080528400520985354460075507062035128556313472669130017684767163579376111076537332183920938747747068500623951064460689458817181693737502976576401168483973241026918185638250860555951962403116767825715459072928636290388307136373696710204664367555878097867524702000786665220990778855083178655041555481464052141946804844266529538232374384686646084509078967877756614970906055662841949573808033211074605928632987488967854660810750307252019314835031294756667415080040938092243484979121061956770099122336503640596769179315144919957521421505017697333653566806371695339899339611336376774165885264025551652109391262391897196050244468176638500983322565207478719481400443702821184490088876827931507884518583754018269102753046911510987066009522486117452399715013848956860721534755235001439922422136368829465656614579254138263131739587788643152320184262976139147976242071751339743868390650013814068639573374138097467898423172556100357425525966803552985545439974762373695465376882626500074361052974545966100382311225954564040011414657176525937780268693876428794891590772929607384240895128422018826278262533621749926025844576228398259899941179734830318475446077225665829113568440548629228099683676100368956191472926386919496702133016599433944505869977021993656131148903982363165709212323787535741701046673258352784505577543134181436300137250492273410862147778233865322398661580054534319996505107184219677052359067828561158288685414961131047141970730307907047595663647844471070866665886693087967485467167139378957571838086340445026989184069688853579130387860370080132571817031876468239356353594544690410665406710361252199035873443996023694398589934782268559108681851543554538826333718985592032295105739411988030812739829091626936972915608776748635756005945810688355153498936111088469104324170792680189136336716381333329799587170043986407531192551207948565434728797351167324938313838486653901339357164416280828207860123710072468709689637268981241068648644186331189020024014289761834870931500250506185410737122870895122194112692175259687095495393764526380162055008625069087398012356575196927045831541988082192447117553998702008766962650395368075777871012336121028984882841085068169813555160867302235275083703550809446485147314537077295023566692030665588176853839858956112042927540992358852807398063780886789143270892359333416561468282617325488481512720562231064649769208166873527003195984265236312666151084511060772871714248030978084427540105581618739208398350138143091192108386760465614043086933918882667687363592447369931441289331933542217850897755254202174804337290674772205789805719226749680735799152377017248446438915627959314712396639427154822189420343832267177467371090317133251926697645022538394565164590598628029748406868808506755995920409423586975777956737807405819582653868010272523056595042868832501634350649345232904976460075904643747596727476091203767799729181765144474367115739429602884308375177816297903036433947230216992996559261692994954170652271504826639681071202493092399186660581491538561730215431487918562407171589503268704550528384052467446089974039558444327224487151549951446616413175803328089155435551170629144081806557016951437455884199685261920499078864864450979612673226172594755859785013725877195392020271046798076796801492663607510564510191224417682252164264166309155434759381334974179567054488033118871407036833326465045623737054645821011971180973085856197214002286631269726249184983619294057008374907806451753835464830847521921674989559422747909944445828333860952121149329780155527318866037091320139441288554776254027035566244510760756213490897223399089704088836697228361586944675201410294719334234471357046486158070820487458240084866235119706151701298885369510278387471520998131820499409582345133843449105531210617315551130093445244151874362149552614473975831416934021903173726752471737473976751692375282268416287556581497490061843607480938584062999142923976025210569354559285116569616080325532937086060357443869211979531262530030246315092009255029509869696640736765719291413916014120374433207690297656586483912304621102746568172018459777821883516169050264494226350035616725944865796768435518505907154075188378456173581082855917688035618468497683214947287093494338663487100883515156349124378700666097091001643817182401274122678801482843761799583248501979472835344918979876213616367604358417784754954924663328060513492185407559557314354744685086553249882863288088638835666608811585586832515451166560173921607916020868532109169773747626758609690295903478156068612441698223112461493000073636162743193182596645119767396712750210039955910429117945118011163176117848166596383175081556699603387655390355075930299154375692811156668798562609190826356229812007292141895936157840995864910750631584886134951509673320266438319505806252607391359703182584369849590347382292420760634938040626997236608217501409719715112785948311788051943796635140995668840456416295418828055194307951823941882578578942676094927707334715130943930850040102733097071488697213929370107662766764079958726661510288332456169527805625420901472090617998977391580095237276377589562780948914580389254541335183312769162088854297355140185885887990195375795048202978038711082855940777609740310666887493455833990146465664836408788437290939192029656228445402985556861617941923838151595238479505033476223217021144786854417119709117154030758669565697551817744414117669788694601502307567029438427841735952954627239648718230310738720336538717575530205344005146149421537862172918916829883200884682565445226315829503853263520960106608318541554016121621699836716495241588641931982326613827948963520738057821183384762912336930405767280179652498804703653023826107966770114151243902931959950649774946373581100051281427596623432773547442783511625902579641561978835779895546354564187967594971280338511036839571195546420996041469717005345158071071302429917408906786909081285954151214848277139187398410424023417347687341624671423754348522447896657162169199706520971791872184732137892438002884951356372946386014089879919041667873780649432746601717169895220293376144933331391019710142075306149148735819267528413404771310330636987075715173845906572523561672526513931100827641068649395785698385177233797716748049437939013279385470213116196826794723035358339938625190821855988316773530393281966156898269467193474418262705151006205953532651600260960803221246110941211811110500492233079677458806720647106793933887543596911495357337548260681482288189453727349202258308467671886638630875644984509272131168785049565894864579265052808781012293903487272990524052103931016120503686152301831203272585129285049197203886543791854959916655604572031600460118435389918593300622653757374182921532664018175546224018002718573167037408151442479952078831787199339467067194476256698919673047783734540755180423898301038274224770735992393008218915045960693384038306299373917342153824757819231997841449697265449333663875423607069862430838311831199863372668006148828762248926042541780845618613367539757251994784678447647612250772517542450383172757995984179816269044523935735834392150832911185812769253623229097941091250113913144592327656333749123625608903958051155923028961399313179573289392410949129376436601048261859383019423034732155013862513656969348048455223104210131887023361371181312218134910653691394748096922848355514614654518003833536977046988192686487180282938771567295903010861712984649106825090292766909662562610920897673068190793473856545126496425882523153453125841496516635435591784285371801289202523256599030433276963270614243404985607740765711631548816933996801485762966187886133816595896736658279783274961233381094412756609653521267004658217425951284929443520138550595062905651252173693076339041658036133022156677836450214366198116294039847822274957531337826991471822431708392242040890790400409876775726616209533591551229779183213833512723336493463447762523325833293311390040873465059923635341437066462880822938589058378494346611745415352790003002838450766534789663872887585811242439294395510809913706047569542785124428269995654186472966176326401542085352769607009439404050616130463132092621656436925432483487038820880792318303355421811403885473072385718708493159954836628491743269144597881131884858311222580868281304689262932636789238198831725304517067965126153329855118116080421847346848727700458639249151201574401249836701854276769703918735234863807147808456211859994480567968629595702038031303792150353332610505159893610095309903153851071217313792868646641057415620708179830530512106416693885506606781198686455594278589713064045604914234741484457152151875163742386183704169155245562994056419732398064188834113831089146077775085562200744516803810755245343558790810570875691865847297040448345537475391157660498522026749115844297434254090471218137681701135363300854588350416505247754716608740900823316557244558434311285142029081726048018227672312044622364870685534729771928047428566656717354589345395408415028634088010287569674611209752450748707961178811032330923553270046612095977291519350644056723350104171658909123824391409072944746839034786280385481714884527204093924792616040072230512348054816919545675305518428759386926874614421979945062605702583092482363804762472106201880021704452584835753985367490403865998527140129079592682658903576386849589328104103477666866530002062577353980792102096386256192307634597255698530017803183779074461531374004511538120365262382582305427719953778592252743635645954257482382306818361961595097548261297195286458587190333352502370416635531869858569498141614975650741091009164999814343314616117096346965041185468419651269705344252936975578232054260372720072618554114629906521869928299303366964421511059607233711933099719283789255164221060094805768760411384600720924164613161359381101862980391457260071837664553168850624447420902388077547421764232920618759692122221083201728590202385738004359097708264419912981094430681854173403096205409887342341954996632250875304753198567005245554653130158414762669917916245980130954501740353351674043670670175243209377814072348084536632794037315271453202115275110447853786715869582237774168834977732036333886665124470334182020881094376661777787231913575960749334633796208370326867216993503768538135441886643506218755485372255577157330857886441118269107857164627072249342325424419482730914804367290018337849217305886682200049670988239117977671764793918725115057010399954297433256653850221304685452309331831978035028321299022200615545792776277937401685624606348795680677193584949432968515608412014209644346923446570957654124371507912447557905382478855551683242397386191954607065377346615486089926200017355939532925851047446491775818559125070409232355921472025896323416227538463826036999401484395848875680148598350387214094662081105548624625581943765739013595507408575563047773701476476945848288445506255287777370620739592729783002483947678791821089345390979592436105478676978838945759464870176470558043267196731150671834963543406867653662508105834517534800618059351406931068751559403437261505209739214190316855767819116416141400223803487393754936987120752109783721871936785053835686626267642396454066436626198338517002437106069868429552475432037171554809989358779684441588140081525938005594827046452550546099759138678667014892002572997041383744904071049464997292139935644721322899028421502770531899653044031161557526506718418745601546392760204010804131171226846050761408489532153605671775653509385463681624201164336214264191735573145802682755691418111546652664085346255880782695653769613766693615529363179333391005016367944234523834407453214380594963710259513986818247780321181180974117933384135454467309333432082799806309941724325389954775590988597674630594009584277030561285042652357548199017433751626225004233351848594619498365770799328271857384336197115527232587182024591051201557765420386477971270493539752938869561325813092107825201524127240467728956303382764941186821671142951636544582378255332148053879951001820907340256792743435652012102161066696604515119640470397294149874505137824872160211459714952186316474938834909524562795986648254671573531641024162576333681506248086226478793063065213299464144728187624987605186893402221544723133332444254066824817267439466242195772842300460181798563757918047473688918647050871871570285636930727465869800221095293471496016056827650006723283984772001363405893621696360266462882649497801192403210615358176909266812361358471820070272561043063249209424830976000781911567103637209217690164492388198653205341827781640568843952326277727353760582690422316097258642397899541927977060089099126972632014273163511982729551848508271278951319307105307446497492190811724583279764709564447428629858566774871949818657176406877823964676255810550131847139933574385577394725792532457384525843015963608630504357722633522801043381699888944435164936962111494454086492913222301250688262390618904146327781179728196969149267323743696813679327577092902056533464100235041410865883785463544103156026728873191533455406393231810675336263413395197464602588098112346989305492669655428568861628461922808869237302011329107452281812319332451004880354925216917791095461265679962466799511478091246087295882741901012960315556059587682213281449530114966092620797233919588840238265055549531086342052123389803583660739758661628892729308195295886220112492127819431892561262073913338803487564051924468329069581181589099462928957229593999708594615641019053766750395727188279422140095655715434418173552428026395163296620023531041859805463514846849033758008434618162212721739239614171334623767337637521851906085179826990261902674359263030917521341154667737305591201708296713617825230484626658862218485557053635027450994484672800219099252219690185541497462151955511827386025627533771500373774676792122792995889367159130974823805861460900665861750552036083501417111228744258434283234193341473496791359661227829270043922085383101072056816658276843110749224281921429594984212025501970475043756197431461791441745077286545904789918400834246739501535773927075704741215801078345325698996084353918172692425017408803863377549818027753533966988944208329676356701372611134474972089733716234166382592038096883082243702303190522819932342053212544871307304201422568944668541413839968377789998595148248902357698349765348334342139384363472307975235043815341435756568223978113330327456584486907948343540898652809758830562638392732147502138112289916569671748738261882616269077252914396627407561932778288709377169618476957824989187872678534188775772672980746114890651719072331250282024423906199194266262381032783722493919188564871753348090886180594539557540795533037964028670417608539163856810318137136075688920881034955050229612427875141370881162536129497301647174961272722201718887547191447506486267682845347753277544016193267906668546120998635430168984846847685403297399181732746742148691764141790513091445669563698671462091990888030421823412594990932942818713027659897026560596045553231989388178401467144308238548708274773362083555493077440574060454863473593302397852388250047713856840000303059821686340698728120646824644838644135876188532557130241316628392514344230874804368460305166652310615712234365737950581466559339697376001493682427191000205121152695078051392412583399062525901431242468311484827223810073578985784440706571688630473274861412408950379842467126870578715105905218878180421304282644798846317925031887444215507670705109117916477782923255912690750966339136278795301759794831233499299748692334386111988215099450881839863246229357735526526403346151591205267000417943495137097794975440804819669773102111584254492775334825192239607385674490927376202098219080014780318395017520110616356525045569363738819428212499882318817859996623777347214868739423162366368960023479159538929249089787765928209751779677202494793535820322957997892253941309099342608564667219687497956833558173532124555896450401980467881536667500627497259801013322572364149513072982486817199226517130406962283742348157111019428052594863022048246219659915141781095376420806094268107256090016673091744156912151218299392163618623231193227008202893786309348951905491261863733041207281273903778703991777970077447236673822668281424890520281005950791733750400314231430144960068635582090687179705075331504616573991984842260998170147077291764711155433903037204305966698316211779785351358934581519852723726700927354961872012875433972313079172617069982105276102423218427768628886447431978056570587566548456958257909371039416803565112408410117846501187574926943338948391423090532731979366820022447452721832072314663928404360547131971055410627652500685449767926760355562959322376168940588868598142073774002797142108415444322134764734645707637483333334035086179904694853526734753193121786615741402231715957050198407432557540237403023762068510523624861750834879033357054622576816947675453692736113674221799354443486714871069117489636708199775121878344928517051268992476513897566340681295883336084871678967083302019479285230832674279573631511175176197292743795942584887235931045334514115008616776583549926921291575079849979342149651483676704074662734957300476019862639921578866872257997706391611603472075490829303425818970682923578836614822135496314345986843353874816050366616910710846737923514931772204664399801689284578015948676397340747665032138813921296158542717249724740632312366383803820073784926847081310011373204929726324786974663268642729141228519788133764745670132620941841029621769840809587668866355222118037773426968850514032087449710893243313459054883920278226303332656736390670611059882338561892168342405615852158494777635862911025712669326858071914252940121038224034409194822192825123061450835001887751934365690427145164261457517546741173152104995636932997820813344994760425696603537626790447385609156691332530469286210998887814935031244626302413298877984793486571856483724327243913074139523578910900199003679123299404293625544665929498747197205265549079645651646849511817532332725654612410709287579687047848868980151827062241659829788399485951439918838758016345642963857621642433890700786016712307733540500507324782835156586396962922278476060225867154643756818393701261728114712573344104966795878863330516110999094528540442123583010298943324143882703656693151979114491441785659004023663865039911347946256138695797384591425506979206163514856284788471642048798290016698214042651584665239895935602061715218919505155415684185873612981405980174014286404175518274753786800514095107683431135470821239901642579397198143760695978116715582606801570793702348972909901472820868466072297813971874933442523375339654122651153622033448737402323532526371086036967393358283987427530581100372822716578244119019943206754528383452730739469378803090037781428761323549039375800199182834458564790464611626422561397300696410324859355120009911584233809628607352115602665445659449100699906712541658448524224853219028032862636671700201240363957140169903986838773887738622155723907028040008645560961072054962428403550782600952557520352134565428961521941308445895153672733303562179253761039649493773861385573214089494611445583294531167974112060114571862111330861919967405097139916456974887458451017917225724392294257867180447630360577006855609053646392079455366407173772065507369720086461749764707082633504110173291604744828443972337160692152345325471435128407186320407401830847393683135195250088120908218508006841403357515758792945679150213231527443287777005537565488184895826005293848348145425347767974806637786860670970885312380540155469914557907185486180217896615819992163564475078931045582506964607062939769665731971909935834622141696049332066557390210473213504843974633763290800227162244763727248310758209964629416483508763696278210363092836851276422304447556473642418985544546016022394975987115837199323564687063488802202592603861546888545749246642074413954760231707400409189855262046640479747522808546651249826403252935031115144940961356176704071038432259666170172376905866802887746216194990861579870723200059878990041935614573429448912868566685247364729901263384904490830067763488615868527452829084754668905587557182553542441476379298992307702618504822219343737353336997378984111584506954522840487296429622375509436228712467484822501896634090362685195562858476902299238995838456543976910555559223146766397138628556030066740290133986437909954106620955631333469925871867558773686796147695732854342889809239372051988894341534392837570819535971254855177841282100241150529569018785547215845423061179226203377397658847567787461645749888745248751482107495349856133464328387820091499735725890197877062543886334207581902514679155654497235250328162223101409659238942162544411620867994600262837062058646710246013429029034681790286906528768821854374644723188266310985640322003205391588111806364609831653478094749340924419532893192569084818065023571327468568781255631037352221663943540401967088126082040990949241664735306344114458018887232016291585600464113394772475014538032489009970711539335908671380730486531262925994625698241789249714225621265035372394965932848467150963812299448935503092684231268298124961759231341764008161963924905222030338372888925887767752282937380478888180744924413059140278989138499068624821469731850555483375156455140228711834940620933513533342215323753991526582549995521437622190163874580139605435076726882656683551631629547922447053465448168185593049960538105862750206960179902128971826148428082187976353706460242321311494843031810826190344056845468718298210845276124603281392708531502925827465259545119701573532898774602277998135665844918402939567021706909438146444223082526338431507391191325290720445141874742570337684637279196160599147874086787975987406737633288308577453377588454555653597999956253286043287592800396440705063676710022592866619874007958885491206863422453170200350724618089401063216327031183818105440281290139962625741272417585032352238704918432553284113302084164141696613320614631787422083645936077629159286974817535187261696283686541044949500627836892483096821347619284230340162013605101662271929602095110278191599663738451586982031335536742405392886962352164552266212057799960299711586455327791367667357781580923390881819234577870845792618335821339541890613934186970283870028122139642400701973526310909429562385011796363606903901050933508705871302777429496998001512716860799450717291344433559230609999457298419411689166391077722755702585637224566710711474299007352922750914933559563038062837744333316380929277685192005427927171411596972746468446640430767348399773640686995095563775295137234784726848893459298325595369761089520025630326794107422807929134877744690886627464457862021099545972718680822792887261170162969485639580758791518648747689488792638223253100458104410806595690045965487109578724748100187183191007980096004976725752212141485335000079426997930523218588434575999413751031273384834504828436528283292177261913465151144296320146304404880427243440390568318589125486330810504019126881789733398163441463511278942339903936441081298855029029607366156152078610130276798861976032542868449684697362006268120246222749615594028373556199664271953032538504318675110356486013718370247401516799749032633120553224841882469459591216418928354160273815112429230992465984358825629341242541012748193122130685050438586240360136538494518324376724603220211671254916830076263939835221643387758672873902382529416869217756732025879639820632348158024474392650023426065601590207434279102239010569959369430684651945199898734543891591502629380251952399909938589644331863911678452338590876288124227460068789593863799295052724830237136093508013215089896527944313499504453861123185867879799549628431867329135607478949619844312211296499464784033750907468142477526631975980533041569582870172218839117026392712834433079782435254001289809702308874094929306461892873184248273755236919275753721727425384231302228990376054578009453553235286987394229334314901386232822127997319262458366691084346619609789266405661909850958413264795633739527832236109722322461624646445504974948128425179066243263146144948406735341914480241735608705907766108875150042497187106868080774387437529499076992015109252206190667213380592549163288567741574144842133066421265532690898718295586031245667747144298271192485522747366025653299373154712905913065589722357500594443508286709756702281015762249145425338156747735349320950620186621570944044230155290920458809470112313198063392274115282983170199493119395629915756361640426965002701894374374335145187930044880820779599499424086446396950886446438073244619948762967497639448664058350904819944430026534279317940418666409127412641024731959759885249345426480858910672782193746393209895213439930400594100998656653204406389320429142328818559729998225740058051096472503330084241729050187322445235263852154493496162594176139455394449016722508306589127394592436253998743266685071361639673217897471233417982449804375477374684328505324357156418732805937796560261620897718459135591391528389771921960625049452811464146512061131127336797535368068537557923145145141772641344254024629691265051815063515050673768345057778449958847481987154100286332803042325271654983295615966860733506590127020361966501423901786766581587302961245926873800922454672382046925942917871081086676970828027708583881919181245825819607093695826513375563293801591146982225677500801316007023150569063117250761244237037985500147503843196057392396859621647057410390797761118297710255106600791077533392957170916932089884047066390658703976824256564829192370673695104340611591319576006914792362163708911844746411496205477579064578372781673509148167820470445638098395355951181347665274274518222853913504365289611819876996755143576509997955576026251531777663006549556920725197341043852175112756324228587706043160451367162069399993903919155914423663131776995087691992636063654574030757402634931749146759982174155000487729381530721975591873890607684502203411498273913289223398386726095752038985653365142055541457382336858461556305857411070697523145840281655929665951795987200013389130357994357327504118327947531150546079827094516813503588456713623186027716835163499285913303956748798122434465961079189853399758101150535742554409234042163780952377596157877166171617789132685396952067610195339548015574620332663295119382938104555664210516833168544255318285484189087438823918873300156428507357956286981216938183952807191860771657101936918299790332791312897751394758612048948987030697359295823253814923996898441389540894967056634971183907713043888779023367509044034008624470403929036520279208912439474605565688003991712893429949124187657257676800446263845524342303425878165405161466342390915599562995704673769867632395303713390045059316807908453704908851043496441163475394345526031360892794888905991493390302277094655599665178220383897815204261283994918930424621188506760381917190090851617486213110264309764329194029802753486304212081559456761745808339182942083309751273072840925505513087276402068015116266895289204185369099737005942892675665512027945583373265806041719338263585491558013583008423136614790331964413851400052503909644437322989912582762199058990314846312409357333224589193999178876691286480699950646669546444075536285259655159515004384281634792735522302774687129827217625851004404271582572984657483617591018247760437345902042527088115462851121316859288109657506336038149640814707069602362653586474881126811096909225690318853503634875583857005226415238822454753458474481353214881660750515699839451577087289904668664717928646597702386864641646185026216279599641575240504620322963719351712086573435232368550998872164790912664759933148004901822935264547036465951693241873394240052378055737334991821133942959670223071559166293238076778349414708136654804746206083094788804906391244717474745837179074763240774180947609106452870777841327905785690019046067999152015496441695850063150020711258053182551077090846011728834124110083911907678177067928980553633443532800391326731767419175714440494173588445540583251521970771892664054635798300054760451314627714479145845349361789271566863337139421832780388724600556778910589090228190645356819422559563324378261393071482485010583364961767755242676404613183466998314296425722730602951611460144320763951046903871448358755429445170365775531975134569339567287666999453108246171973455899773924462132123868841912632318759230220148949640842215525563703520859139095893778925338313386447090685494279762138062365699885487498090461664706505892406684922506518502547213610311328300804995381537185459703681994725334725100127631700174214000550668499259424451143102809400055292359906872283881735620524986569623588853767138979583999348980509648806874042207050360604490824609445795928564224903563155924535433090778419612973902655413380158026042964873031684693633887369182288355127969857147309705470115638360260366229125652126128137522940059084810396916992116459403860551755100658001197707487779104712608407210248099929469117143687681124654622885548507702783672484226496459211484295779020323731540039454183778386033531757844394016879599778002448527396436215533687842639913063769141196628286439882399662788195908763406350774508968899793638888894213651144900185138843973295337620253327640642262943824636202237290206391025936689285947122569055326701049980471356882725661244451286436129345458094957293932491240530062687279789487243751593554095209573003850205955680876301750261139684039658924160983857566232776526913143904812295817665421224660526863573103936218435088351953166472214826268846214193837745039152150160220018346015072859416062578749402636061424686196210422085716711215761623300544035352360888541268721063235805916245770986773807074594992401697182214458815693597058324736466052379778627100538412252253078004834280738922069916819412813516395455584427350276178453860688375674971224341115827170582511369262700806637570541696698058500180363735247672670343661080716500753274537036906652906709954748250778864314193451133478935924088991855382211735650324027465571329698034225368892200495286871619724015041957505961514372753932634213883468562983783704400562636580791362593059749487225114507083356322953207689362873576898254007895825916134377025970978055217935440422370856785374080644222037922298601437196513164966625262446795334799228395693899869847193483691118402372778846503191176884708384941530067526606928444575786102745679309903924060615422498408964970059642965296188844899840580291663905800347464877203131346589590160275913827824809530887880044986270756623036058691876908659110131180423862361349248804127475621655947593695709404360303524031449749854640832721840763811942231133213286863507084269337817180364109929809807150805001802369403878468456443760650782153983055322105109894409871270128671969097569126576920188461683003806296268326320487070496944944748003070473601744106734934766824669723410281821210551282094054739718077328038290291154468246267747196708787680476679133861805702271195662118687104324775822123049582715896443937093909767831229256105789480432771345179038169907765140851421118006145217542202022852814755708522013673842327990834770042535638601481450262565528317797946406827254474326669594441901979569189947235579514346632381611346876531028954810642458078676600706115582032442374174252887014956670061447070476358777287984270564857770222053039542163712036897802787672720922334867417307966057040514588928907969251782666255397904519991020134945531973529336654771773532353744308054054938675002815317713467759620456414725828741344998708444899894557027797660973155236481702515857675133718016433193908153694209429005430761753227200207872563714094636328862596601878677062227131274817934892164792867302156913208411943030108395445601918183909960538793664206364617541668063395598956705942412496059797117186680286304990088124002048681174647784144697898498097537831743906063008393475522960712291468758062877965318040317200884039455911931995763902352648653420401065070909540654431597189332979365080094862382176941826965878633596054299377289798703548983899163519859539659882994484065454618323288210092491346603981302913768089805435189063541887934989617515230863798944661001435474884348868646533979489271565882252333178992639137567250506574051726781577072314865814723705293550055475582574513629561405263377688050298973304810874378530617206892199780594912433344258539635920021855297211141823165380908853158928531834158457940223428128820398588832859315645477188945778159202943078541090608672590985828964059477176636336753380546492954436036117950849803391972219758553068366784276839302767054498765849342333930742663626535714827727698893198727805417957189450384857566819720762854651670661392392367638294851159895903594972523317818983143479583004946589970514616453699057885015608810709450319786251805873774826045617421095276307675429477586878579387473905122215900088759813164641360393428723581309132066826783467593528508120013376367346651378757052991437374128478961298394882053577508652069194321093059142909657331933929022679923973730542751472556894346678805948225751471578839435057880009855459986125929638483991137227284255418013896594935646465551730681748691995803208614895260498418564211619822997879475094404189467843380337148017852137587274685217929348202236505207816559812771434988417268949054363912052685790693072346542701711020906302680139550268431052493895881965878172652838076149625048724056084235988101011380159635630948955726829339952890991204988227709201304366884974298857340160437537380820700506134060537653389557707561763240730643349369391044304315796776633633343102688457374722668683530238672912171071736040765228026372443986666337896949844633680316652407496902992763799420109441092195461684795568662780123683061884124237396939540415233551000984876697869034570701201945244326712973192717378025592998666083500996277051552065386828559333502585866791272136564485372377112612318268326816846499885296415356611664372286972179317325403806952669491181611113178501857574654346372284738729306333944069879082688940934818732612718872860087727138948450220855083744332802860348827598372204754109645931023727863283686254189259989080444714833223523092750773327151221423341996982645609456704984821405774657432200242609962099103628155435536012340971535816697782098823406917939375975223753286153991183278530143879858896485157537885276721988925553137535143509606730129603557062960285254289071455736011497214858012272275326465199444457440122418753118660352726487521305229069573178857143145008907833424504902141743731065079399650106254246310125255735727580417212702225580616271885639699550248954647271649539095044339410725164899064966006493876693347189650107124490517549887398448323707049194897747790435886558902105926792568941833574950542454306502633477504610308554456073403302737375884400814906531135382083426796342697378763870248213325697001638030187223873348446899051303607862194910693403285121075314363962660435420943548513289303612933653238109035976652017963619544874192190101182781646596474410006631361700695735649179258993826530567009271395675466434106457423710314173539204471567020651172552632676147486215545798572814642369262928450312700095526081562160133273081308829142352623476104297480173619025803324497228601731202247097930051052994779017995329229244652618872446542545595791271348067337861741137651112359729289277180159791555548710381056700876085116703465354941059289866947352420347261814362735146737207545863543819274710159154752124455963188327242349268923549214312047728321274413409125738062506114986030109965982685088168132070060688950712403200969292485427082798171814263812822608685328608492144255784595831227462420394550658802891611412678815528717043760051079337472103818461291368559303478236565903753348585997188496777716409382439107529012217585606769290258163345378927858057253986932428865168513932641004633651752609814341025628137628800699428263954602158960627480287893241545959367926271277246069139173666526852308923008211482345734996276034716153090585948040864274254867657987112315610799335029395693826945203480482643579827681643934111081980252490871896904856310835637529223760258915498808266714796731476684060865391226270936518040684070758119335741358376978262886964353982740398891470661256911916135978451766598795266270301359378173131116675981940504323623404326760032630638119070098343826241219969817070582413914654783622751436040415180422212919156772845134679579609586233936003446588596550613996644262293051766614683820554527720962316707738613763106820302336962383458941342497227283031500819486241551955922454872886884293511809863767834211713438298077515928450834659544699159177672498959556768931607169005252557921491491132151021098733321573019149261474425219790362238217394009071315919646698451662163106705494277643030909478016321316597665375981458323396291532455855023409869644749275217201738911538330966032262970606951500597975408352606193734299138442489999308742606738160474166592206289988652793875629790656962563326937157367644231892374279021376036396614184945398656484135019065492154930683845683648896237682932947688035623358214283856366998707625347022080685815255831444538430661284533695282845545802722460307082035023716100471038941385295872968332197160818179593503342778859464650385425046862798084596229763577011069753377191375711111645667259180752399381254792028431043736911982274697150821903201908300148113190956180915883283611077558982046560210203784384214458454017881942471565943659906240740446254917483188693883923646464434872079527020928250029500847278883417465155279095280553077902123003531515890180394059730151985417505991877579048927787654323886852068052848069551087694452782186436683075025511597405703995774336673920259509195474089015753039225607155314144253740866469345992700049971644105934797932677760979584680366744593685019902638368224321322420370712231805408229477068974985203899755618087204677446755628182507153756387376033893155986848585025495563303158352260497194127765968184933563059367038859932375142657971473736793102597068676848841805087222878578576982483496914939932305702365651481500796003675419600733991222158039300764647179502966045230315014324477082018825752909479449439647407890431043958523212495970266863739971732747493823437297688002359745881478868915828314412064256199891402159741702017442359759347219598522905455214611122032935605483747186083553783138109894545822359983967054406598830156173410093269737495612244737284167197021421016047994767701937046588500424960959967283972061309941976474517783889302540926217974233066157408246880055272202003025545738690719996507681627786241743671869404857539254034695983902717591167562037701588437757778490578331273171008491232862106426323459872415441340835344235557127297255500485967801664326824840938902871598372805759966956975681362437350985913424785271834126879042490789579709607520010708223747978165551817221981162309917690615384014314510074226947059075137829471940089472312094095385025770700268112568039115460052355887595219698006898024491333609058184880330974907131103096870287302117815947497744711002700065742711509484366963968177104983720521250476700957654818992026570936014510833752286331966202900366070675277790891436161578942650743686887257056402346128465068794339786054707893285374819197004445892376460703748232511675236937629011598951188298903601755563568585126714422491990436049799488892213176082425782130571592892198255670429375306542660563310357685671235078985087685036488593990422553690791272363046602300685971830345957996410125874485322421205836653015506730183924900009038881106575756001942797118622620039782558224949283269485183014222773715377884962652241984587113134247316511902371043486647459143667187639248089049375284033306896614526863490502315153203313476528681663487610688374957895731170700515586504687370962364913524449566172010751055702392375576280288883508150055229679147004192693554566667481350526311285537900768432995393166927288268757582039210180504632542879848726517694123742562896599758161869346494747568998341290669953785225729668554597438931235540287105222829627789603651416076727833247709144875492909960708807762596081180758941321735400978959668717874528063098297722885692838534468846040169296988293137440647144987196855494929354498038324117439757188494273042960141277862925213000752386430058062697304699392279742842278906389792814354758156373365010746981737778951238850105034168734665439799067552517478730804476958126609375361405120522889760831979942746678591465441523966517792556613276387611195277065783742514515968312228116862381100936585157731558712217879962723265313952320391913734167158668385214514414573149149546690223440948950958209116318118618741815714304435711668794082666058420576811458022917621372610390006413825912557044129295303710153790386358007624945859877325600421534841331980178937714933464508330296925647976185532251870454769844191692463601266480524058720467530101546393230959175080968231349899696525486739879685855402382139989723596635127194091395837291107432797239203302066372744700137854417517627585919766890836405498607834585319698604518263026066114945520639430928922867885914102534430088363950146300047104438528213313084478884097560037877118223280718643880121513520680351762048706933687263704962927343780013650520378556876076417495020563786544561918307102701438039316513338663121471491494895604364971211280884495912614912837286144276929197998899287600671671043821359212343168013220245421313580920930105207658808034860386713039736395001589549190762189364956359442108249785022907150408103620175053367305109904385881371319549936890665222593464878312085425881799983892948213622986127214214842653353552052422497220144035742472223538487575111843582361123802320145269029773709405477886236859982071670420983509966549732198985022386807097924416848197804427133193022915201266547145081637076361188870536397443031092434743130440104776455908400832413585023939387256770142400762406091567630134148342937081980323775285399758100141608300255842252469532694409604349570773285716693565615189990492200818826529823479302081895572841755662728842588446824392236587826490256186977870640365483057685583893297677862571671877380287420021431113153779659602491759099713960402208158393278476959878706475652419674429209389437585036182169862725894424771119577354086891139843239542086733758856000577978980291138581540234548441213813489407853646086214283513593150913246729672035171920379067668430162936367475514949762398330842775576375515487524123499973429081620295698272989358733702083263254423554578438796946675861610491005908830643425175514028423527294207096550922082341698502855130914074466543739699968032767310799894423927655707419538052997463760640048669861069605846226654260912971432020003606775337666368328813515294081452420635056504989066948720911380468018155338364501525503883455478536869381729502278871805396847261303657304599937759647719324551416417573775810543380066433199745976620456856159585513413773297640957376941741781220742596878578702982189209821222649929037198778612465096864423988561183389731181219635753514642700596342656803105043480451467425516413021347163482731927191950998267510424893005413015990625943915255902616854890862902800740740368802578829645181668021813893664508269510806993089226702274284215864977171172278677054667437041900613625471511940554851251644276208731673526541833895497491342221400445716056641447417101886995138867599407391680932384798660723809431589418802974268561212197049582239707618997922780713732990945585489625238425988988919611082857353562464249708106920988272509313907619039326092807249922306304662737402253126941222316863666709179743528516529923519304400817859979402174636742139166154626213338755067716141785114379433912390844989514290587808607205561072155457514434112024484713618892065040085898003952075734517555517202147649664171156099516634244485387353540844462911035719270512727369872046973108615488349788045263428289889410998592843365779524270365338159739230790716112504820668945492311470478075357472846867301800770156637009692979917263759245586822441234654407995185627046740481743280835983461841103262031964535288125353716030616951532471667960633764091295653914319843548494837372898889643105274623307526974819803822556817557447717033647959238717918356140103800634910041911392168632212829681904265426590552258777613104491325402947684862237519240743326501172002204653129919471088729950904110634748213291219096257329186280283165443530297323138930702376388248143278974518568644763008121170910968831344724967393859606506583382890660839303378823422578991437130186879766073230898241572992550352021809699529005995446240608351919467355411224311555531894591838630276691817258443228686925203175681269038924334162505917651708322583771411410925926622882177412327283135185611512969442077704509268607785095602277536125573543016754233022229632261309215768456929352846558366148052010060057956004185057652256753844468229761994261117375437898605957288098854683527544562427646140163757584129002297476834826687399882575146629324275064962351279182798593152922319168650459603289850854143092410909254984413930485772591570788853810267741860158533086648245227767969344241486204644509037698806518462370245068189518355749109215833157491731537479616890161082363586951827979123778860837718287712452949338106586006460477234566073091110616082504627434151325144192952536714742197861233043107050081269857305214560678137619766307127915046947627081066674684054824305814466671591074491832598560404257490199388607045184037296226240773858904856328598543905906268035970514117236467850890056223722872043110893653444871970140014639178476536921814965439545679875244737354307751461763179405493107697709543644087196561691428204849310258664796696200643323893008802959933838844150812832716812323166100763412739069255070615776138115671876357255588591960501863817124201528229985459898359914866109009597328228345430593134556830061784973586543096997866151052792281885210207727274614460616008401051731038287659102927577018239095785927395082575953894424008137279549971004103215661676966341249386963534568675522478944152062139225339339865804917933484749036600988102533403642927648413338036485971724275073266535453154787516038720298346247538326753012563489913808918530440741386308802409489474047663175299103433704419724541102464523968523800618841809514738010385168921921313626217594312024475871008184553165465162562302521379460059412458171977963191344313200195253655444290708833839801092213971290006172008572022390994854452364340535349640083372831083246643193887599996388754158320720673021779886390712025227838914080866006909929215377966864481756145117985945745977818822699925221371942712124573308525991132054131215986654678387273592406849539720978312338985941996681487214103106566460191943963958310675898248330671215936761054142723407517624943331266374220452978446657215519140057046078056529745928880997135453485776064996451082548015912703659945262228275302232597962635604171598948484314763715790778766058906770489974088647123438898741140523035121962282592342364003449312078759642985655177484008808951350261596065790768139519335207093624582710353578865678695288306046330586509376570182013485085335911769712652532664277168712273169757393766746950518645348621724855388527120911906547961845073556120479964296756967082884582030435595440173678978968238307027250918653503515799136213468224087762409746138135474660103320594115171609037466632693206178928558214956011263831954902871194291262328116585439753968349264220405424952339882264715496333383364033688627233901934575664161520387555785449591875458295429410658514083888914331616973380260621952940680998107441005798665785952339872134722015204255849731686327423552647445451913641049978335974605148661440510327016137716601319613677326042235783652915304616351171557725297491000596559811330216065379042347578066928324225168821942318998614470513268271872153573339174066460729654258883819392083473625159078911384675169272658371937069643644774150634593227749996583340778278987775655920231070006518458141662584638771867918390801730982730969863292218589194620804955983654438796215375887191937608560575170314118765661132269595463967635837140637440082153620737906126155614887167027924965404541696866595636168372700187416099992263526730106883511001753899153091792248433422962758942983919671413379946559709361550928920311173497192015430758768960360637470347323608992004790617721982140804565529957925733348063422577765313006268770110823755653617186034694468171388170809526111565968232834125814428334630501414344526402208582935264498643208359828526523196529010045557769233776091836068429068841933833113681499359782671591625767161707203243127929610616646050104285696429198666312916288450099171409446939599036767392344982530218294049591312683911145616845821612285647673835196948294149845803941333434988750439960892063633737063865307973872199196406176233621944119098838474720917050994347730406580632211604935007988385986087894504700731095039155418625114199179659433479731972559243017936699390972776842211348960536081446517906202246755142107694333693261525167892031647699525155469471771319893495838836349627946130996891158208673367622313885709567131199390458609443367419725577689148815011693955678345803019282735797357589751022218020773405526992830208792518700581814035597017944896581669141925353741443755221241050888715354948929414890001415616181210687453034399380134140447248064570798003534124336672161058921203279703105964382383372093351321431367332580010259272699544868039546650678921991040852861531938165030867641850681498710110922083761808459827729572190966821699407259240999958971570717089683380132151703275428401802831413105718197928375898017185720074784764158915971460648171608179587144569677221531199851987864494194827214922783685680915385108930229092777975860457716230870097447536112392392414695044076768311134909042207026600089294958201150558450904036308517724943431884657764462701264169232471105692938609527852780433203240813325895340152105043986918955639271935232253089330991621174634994122709959846966704451628455530484987518172359001890926351114912803103868875446483352732681974666461875877022627305641031923649552180737552455353231222505951191937804142131271607336835694585201215608117270988327758449444098223003196699677353824670496197431264029557964058811704824691575725172471468022046059933721278615197437422719549997981093190592041977866582944634563273504173217613950178477403330135976004902962294321445738955843900157307400350103061993464607139514814231935298662530604820713110367123979542209552577847408714837695199002020322942108846281582296090853805829592495900215092788458377872604384281265056089735002791992766310722785120519883573231647433198152826251274882929239583585010541648337636653879549366803144840914431659233881749251853081408384282701726486732017299092586644568302369590311557104752417163873565694447107186211153178398881294717422352596879519426220599365806007292591517013556340948431752833729169316165406716114180024721066223245195235817912232916965800867278022094240290237797828121752124001517465586228580754655195075314561825245174573826497929626172012349649987352205172385985353113830007902605904369048620970697687295495191989303288228021752993454259717263610734107659150604292395135726755976351824712767787098095305189317387711065968932531045699965256180165666276192207858439410257174141078491796068178543624286506850222919717014999611878378131211722316083914301002235513220445136766969184294124100672663219501110628936532809233284881894539132328644500887529682527686229045887746624548135659429130769908694929620734028211598449516504490485593618056917829549009283976600006853232274335104276120247549749991206841569595484772965281823394083681422828847789829058486535029864962711360114095799769400845363808514261338152843830840700149978735887864758621468574033656460263902906639505073063209422613945628536008583040094251458244591076036991024333647480232940991647018426569341389481710488366186751873993708748433175991509641136918264765058567308232743288901744851582567963982281959646086070846399691932331699485975503570363139654906132318835123890768525966953449441055292323807296246956143764103800566076895064120698470803986119107652153010573268672947526595490869042212291649915801373267978319651590592514250854535322238394682533462564245880819184818989591010158771026906366255768687549255984946747011181119670145180737244291315632177095580202990967289506587034460003536725488128826972431046077264028630222064592644918743205600939229674395392758712468163189957531616102422926870971369929995249234610926550093965180301961817206798151478170981614852459627038194733603811513406331456340140889484483052573063694998123205157589472409540833888853336733931501648695584905818691474006658664946443398387690068506125436759925037915750493765183277369434718379529652655236635550246661872184871263247462114976053595976171782753136214887854916163254096910194703737014387896306607562232393332805101509446644347329245410997806084326779960327841608864303684088960455788990105544141228012597739660270022405118011953855867078915589962873888694497414722524082809886498094761849129954775230070390110732915647648905390295053179776016769967394632604539524789655497825051876693425709342627600834632349671366506951274180968128834327769981198270773991148333685154745829197372481488528233218670057142053114128697399158504465431170264035068025524780042057008821818357802208603774116797930706502428911134389300254356428558624086548545306207330809708223347312123125165497824549451539596220854522838879900848684066487435241946123030594290433490972589927811993087412877321475470922361760159146936267218057415112605198203759651893368390305749810201661230644535828111187070050791688624378547005529060315470079131348141175701175886384568613096636038293376637002452949149971232818235703300229086556979534889932839285206438684277372661507734559520147206223819734572376098683872432359699188354861253057328885597463423302347226294336989123810627318409057788200870538974773474259904589788889532426315149082202240242045675972284348268776520729030791859831879857263898563309476733264484857498003819370407957369000355423957080061485139993911232532326144229345409125232652838687596638372914977868216222850320261830940457787276907132568721942030547730248533027862430795642504143390825148262800538030644137173214547261128062775070473636348507981187162728859158659232852511578252248871553637133412541529609262513287108549439905510572685240598965786185742245367715132621108884691043310700315688479541023524577758039770251680244460581843688087354752159726081279460631174436050555109592552789707715042169363378909282329049109481037580615181215087615490341442550968547189771890585927799354314967417992287279087942790457731197894470554709579140943737757149327619762805666743545367595584615215059458691182567446360331875209229955083821014534308157467278939338389231186782164853725597742628361068236310779780775136187287717969981668329231241474746719492803159442386184503507108735524922209156983420154834126156683472830662091100844287194840586315331374966336602813291040939838863877071584466084809463054502178435348036764278511505744075304246017583389759286631508891133865444661564426242343673786386587052119297398993935459443644137562005456290701266876483217041450360565788311718675641785886486043800282076099305236176896566130691238684862861990156111521042833223188584226330184629605580968920624435708766539590278869852129304619428202705282708146462976828428049158397181703860224913037712871505119529890694268053311644571893455041461288056960355313410748610458783886627625761269851786299983705018856309779593605973486349024407580560669732009958740818175036647669456951305473449589559771132641550334634276267443756767192681877765471366941459714222939664402648275861825473093054641265104650072446656793353175884799945782867527999576148099709268365471397729305745644784039566570547128348547574546615224357959891743063649976714664912158189676920203318260748396805954053427480449000740983446665940805774856552620229702447910832562530136864947626227415920459744012947782736882351976542293913506112658784192877428239761890370867531125183533113420312234216639566692174172596371414228240178652632677684521464582232252915302078074450280728374260757176393981885826069242905533921211574850257673175695362613668875455626899118063191438614798488369636646941890812598711898683913856497779017979121274688574157743450048693951487629764133058693434472974481364890126190700525846775212856897405877551530915051549695326260755255939682461070125569440523182272423879108225446085504264676256370721115218730124654126591386183555645502125160553070118592946574322682296211959095188877446633632676533724639158579761001192953149128211700287841988859502525075278094897532751050039861722845751725696768961194692183596855378762474348751377666397725220904961662833409731151856157838400454895482661459736206300128987862051370612992944990460710538526677938179717913798274701913733762162816109552653835945985838691143152528896100307939113828567491678380096327769914610546326597782604003941923866580318412862020786389413431733018022799535679705131239704527850874852891222172905704116815514100273721497863674979533151205037509976797044657631638461670725702571161422180639530790107868657504251766902894827841402949673273210429730485913663318818352936371869662427554248404078281964399783228628293308142484146657998754865439603952971709201647135073632946492155595607502351107097317228398868014664910065121125789978239712876194546223574392563645871837711265042838711884686798927396881659933897137877764328322470093053797220957582972214115544539569534682597737436121742126732271661105278028852410186082370089376185699251422686711616889437431283738768842234492182651902597223087388746351002736712412017354753152939981511960809675964538000137783935877756688423465359181153785148243695529737082738585447788349209550645241976721526105144595458067533460282107954837741475819004077165467062992153311548898182534512986136164422007217810901572594557453105890640074949244548720769608516307407890205087682229037211185820422371005631732013471165313604015757434358798292643286671552265319695474582087549022099966791974343471027215387481048188282699527796747133148983032476370763051451759243529182618252236363465376072487207147469503489801668936379255983432157855339478428451689006260558352504169221843504113526381109679252687469324412886043235537422052560092283653882403829332663465273038451382318444866477205717048860860861090674813126844837139713860042451433738934728988908020457351720596718207911914972587307483822827659686979723515704876190871514294945690497450029374210705521503845181334420902402090019452544196567693046027895303287228737627995459938984516166748800787016763625177824097785472630291061670176109619086294683786289362110710385817661901723013452728466226001856241679837493266696463616545806748152458638639719491901181053318931660989836820303686064697473990704088587788020194925638638675631816327463239217389745168598983592813247160327385603700029079885572933668469676957888812945304200476796837619417675912082456854595846597675038587705772000835909457913115412844096041214277624956101129427477834745619524361309272005378278640738515293142105952202795626020093951040892724544431008143152551804640699434135963085551938972372374091447061581499574500172915871655619812621064731197815164622160064086581829917210305147192309852889988335610549624735103452681312471176364339953268724106492257641287280540894182532858270667982494939297864536395181410772231269852327173269956622775846599329636834003944294579575020448619577370513344138745988757789057088790456636487040091496010030026895844071277485959145468126355832027690811946958161108066905825966338562858141266555583777058951064713950535324281071161316766851642495851617384193543813378488501685085343927957763105191760690513038453859647179620387242530653544212143660748220502399918644695865756194922247030584272132299438117287221868980159360097941314812253423895469013456462915939530601197821262328729975290012578343373587457632068250127306924138157230269552383910259629562368882385377289970121530642007673026559935061998532784250126812145655084159034182516899444485548101686467028593018452730993814334443610354562773274812454883735194095581299525727440035982620426685548586528790955442110985199453711945908749963053596338963644295206224064724331509229060499703880712493388278887500792929657797869189822779623773085390118435225859452779876355785010779927998522286998308327421794465578087853357321121095978580000555507448007501187592324619620216087412966291511704426833188241027033085602620865565642778895641454394452515992328926292454374068345370376201461484821720162392590628304544019726019866492699228611681199171378514471995162772511208785807801096210140160165359079303413230367420078936515202133892867345120654652026636669952751618941101618567761534400496187169939275610249269847349097459441458561264427248677729072017727764952774177927520053338485734466935571002223138781570606681604002638914811070650952040208230531213223547177784995162140449379391269279121889589600898267876130412061608658180419492175548352661433479148361388242242426017042493384197959031016623472960063900720293521565582224332785606998221968289021132073089434506577328328789277241135845607123450754894986383440513777056755671147462114130545933063066072620527868593472885889267572958185125666396726635351223153137146571102866282865530534153868984695450884406139144039879609572681326159242459808714322116599449066127609524740953711831771126761861864431729758751963633065857996283794985928961787163665903270075061712154821057451733654519525360212328051542415859345099699536058622669998353174081357669450541889298131189044077996657502944819966119509607317925604073832844385945326016141560884544024820163484102411641879752913312812937342434552772422385008142408503036759444179573264676923963727280536062102206097303742534488215964350402448145970963927683157485461907110448245083114406607952378080038490166942583721613871278139240908924497079869672394139956717256025729382549263804295893407337039410333374803058119211951200273013598518514809994860430877723091053302362934933554361343917356675722329430165747209520101640686398703417564065516433952645829220123885544267472273717173266943583133405904313050869451884207537202312563908393486238536044363786400198718215792146493162197158856643160914527688347246919022950703839339824795886941833322980629047029942910237810626283900129500623921341573430088430668020618008391366327489095520167227694749037126054875407265067798925106430581875867559289466865915154263778628926355634884063271595270782997093039655929575404361432444267756069644351803931493229460957688652025977956933355970687598775668880421897709355717788467619281341797017084023519600998799360135818782135342646356064348937784769177672043056258605400824008753536016913020542462865656709218466234554191875648156684889108430967833564880778512827074306284193709468328753569631167798912264667340111176869445332698041655271204981904126557491630951115211367896258696501993102467014461254292802084581925358508052527075968719249663118757616348686324699525130819539509094926871854278638596262449441427437423123712162281042878876036851056506846280682340758558989096719689662821720789486869504183434065830378052507085393818509612619358670424319730652931742711800633021869743735764965503641993891553918347616280020432566948497806396458423809730276253927369681589323016288791511063397271332247264645022274743462459413335429716366966750044185482869300789153935845296822598340680070417828484519364273808650601813397873696691674292980330835893443449220067685076758810909244178050149568345771690682741691069672060999310684372716862733233010943340666387667677062386423248376279595011968765137357388809984200114667618437778679607166708739814741188742344304654276533857388971580362359279600468929220094638281027264903196795045076515212712289399411052085028994395500117374809218481783655810672712228738304727936683298083769261269142042450708250997469790627634139481469999078787740758711362664478113326134058397770404662918077618509739649873952723682179598845477464432464136460294138559287254060896201787709163655673972501600631085049876445007071366563036800907883874052866760613169040176939800263426452843577208747001344774775671857551521284234476395836871547191403848911334306271341547408520468176642106246799048048103161987894836346120527200678694180738874670934320301993382763000203375379620446749112808300915887041217739856302412661514736274786339878165800617203611142764228370382725802392319943896714373525598437243588334103223894080112191188480178691461628252379566540724999162602299058981359685704568718309511807747614900814433363744682725107283056223105393128927506553640835465866180123717179460239313453321760585166963655708386669203655649257507810719145871192031302435392847329937010121335719098714958299871835492985820069623603958052029216812532409616184069468944266171313974075534722526189836417990166704447440882685464563878215185437911711814292763929058032421978143837350401552468263221072697425342004778076018145286521224502866366901688373219335450821391554960138927445050078135432045654178500369644974412064755040890341793453824738458227367285404899552657772022439584419238447613682941953992318801310287831232794007140342288781017671298565193126162809420810609220828114628654709958245916457108097099573921813525418821823659162482776319681572815588113452799803289766349946212653172989563278429617565499116682851256920615509734480972623583055982959878597932344602387358850861532434307328868450885816020466149168462260735029001239035106885073757319028574615040922872540194160546774051815142614244592128003033211481382446922888496804944947938312390320363006739003032544805796548069859933060066110607460085663922199245365610507726521489794828153409823354082289037113162067061297808134219191101426282535973734293600306867565745496966464050430530877446943699512572783056811019044624012279616079701744328205730697948753476187478090232468763111295885090529377486100091912931429520124975899014474995376218226482475452198639794562004816886087520531761029372855003358906431331636828763926809259212012822745138302830115788614569952813107655017557431483462315450677363494598842190270780877550045592047019074777476345469334948856575347992783893764405687424830183291519181010225420045841924588475407549477461457319814544807730057575767649432983277101271683834880696633027120921401185968494857684651705078314623681070951553913042057756047803660926157317179527264992815868921918704827183492385041997979764884249219600109313956843748726514688277015203263551733440249335079955962582726350759094188434243027271743134735503396760535134070951885606299563723288762386499240563634679603128931692517336980695114317088714482057449338726216138888948798572309996763187013096900027309025760936277402436229382878197810958306071924601950049182662137723215399017909790137573228647299359075833858418783982231130575787821637843711658149157050335167576592367290058323384631875791736092928984280457726593627365237417749651680627094498600077632813141046199457011917728705178672078800316218178516683221237011186413530052028002444394105175821813322961237880992374526326392497479473096325870232035604674915166967823175302101906580859274041902955285864895995439480430711375517920520508292703201475778880422172690901409911424750183186755264378845008534245991814250124905143191554814072894460243684326910732246761694365741572548827190184424867312343624723715905204828977021679882433845524343175180163404928405340221271716917581637718076386518270596681023163358399185625031246424840639480560510734539392788311143879961879656085008522899425993743068466582414559685227174204580718882917933033840756292602236195337695004270325348585169230288210790855079325274531764346803630836161493140292696109296239809046648720395476593946880147909983471150932363079661758555892276922038386461296906284968650922584152446918667029819536008107339388770451499557443335692879958463190135728368081644314528540882343854194591060151397489764205620800847531082532437423645555727743307276500162995964989989776162854653432603512837726187510993408878943494247578044399488815093094391254343140480848749376004152146027199837244665944203366918110780677869677219525848747862322826183598632726007421899942304839440356821111679615061647901928665446457129921324520914259619043894643477108212059654022664064572098176202136157114646573523894866557323942762183654271321129048773505811394214942294536063340211936948946358525606555027906492445129948819853673137727011888176462437722725976406054602633183515336934502620029268347070188296075283960249744907632630916790338163651171269647530379273304205660981917487472836864206915220866334720921635448537474803714752627132328227143365641350292732016157405268378703085089180033613959801145530523978508816131259810031298290450886622309187550975556859325981790930452814367072826394090647029265217297929665674815807180771828264774417227827442941209523576141115170160710493223092111112673654923012057813272752438957847929815601995264633396035673231731557417573750591859305174576154078306620508154240866275808468828940883852026798346278687824235218982746203474251242022422261147439920896220072996553384764496062195593038918586226839461918578624666837101194561583627298651921849284933295440087720921362097413622453283628979916403925456470999545391426889397954951799684910303936583391544660465369491606507661968850181328900867585692161604495414335210112800143800272696377447941956252531105530893592294114657698424127386368465341964450762729136110742135650125096750397723720446362222462798108212135152997146834692488756431087647186580259309531677328069211659937872762318507920636469152632364552618983220601769230582871007269040300892978194617855868746757967893114573198480197190398632414723505097904501260561574661627912526443202394804755349418352330294619494876388665808044752132504180131507579260088215980693127244424105499267390008113758333139092249786705007415740996050484800675380552625673956274476479539833662998403575172406051435295716077042663848655576247614101372260522702431156516152948913729843084724081949017461269576096919108833099008492699261688182341393437920218275195754404130700610846838891353485962928604706267374709755888492279175041125532760691397166540864773195819433866668709655258133178014680894262283655058423074919110012283009572743341427771999554199355252579275118967579298935505979964983803156233882274093384437749489696162945306491733711064417464005291488511669922315947723515626819851419246353428438004773753897609800774112741814664424168287723537458549870571976158239428506650234451944065264656672711369442248809361653407302748436966170004096539293299062037186059498608980877364415346281479401093885829389415165930012152144018799560749558145238865363782114811887209985298336251137568441142812866739660420607086355892075425859076648973495328606055005100543753109342981924632731437159642429517049681990622039163726068518103576240697660995944148344600617715429798445434923452804246561459916946195628612395344660299308064857404009170011654788753614550955248388180644041207631560888680456378105865108413343234923637685427914847436573267455702233457517602794360747148966908832211903140024075293035031653199419047832610294092404370256808338062286656482051038583186621177681023814227662922478960569237854207652429895165928358253846293085944239346638403664647216228142546225827721102964229653285890929935822984824459641300678189764325417285065707798947580432898301236361958102548302086020582974255714865832627200829747260780013599368004288505597297143960524659214772347304580416408220267196506753087444746348308036030830461875591656321857116318144032956620347349887444060980630746837311155617092030209198612962096008606277992045891960524667220641009657224748370440007288527946162701871597979641767690608205505598444819668515769375275269479096546356004022016343587392514525829889036455514759044689637827718525604820288810786977346649113293794267750697720973407887239428754223515240020040823475150384992271849248359243264104063769957755081754897611953381917666203606772763413721584501766949331031676741319542530866830530541398708943427139179823498188447915895283370150199308385391381874142687252446296948609403673381432404091340529258952775067419759931053262317100826949702047248633613807730207957144965046319516841313687223494380079470270624091503673384176039212322261315074830006484096874295817169493506891525856781987438592980569062025273710045759491102962370300370571020877532116888079556482283498808825691109041193074830088385765126643825402030882727542190717653082370416039564195373223701725330789675169336129952262853851790726158536706419156999984658232968914226263636751144418748363075438871365343174302968042172569764547853754982164021164251501874205663373864911379681037076641892865518672613104101260836382422167573097125057764107974679610955668381371951746006914106032254051462447935201236440594953158495968094625606688239953836001492858636701460755670038062132466786264575784650481039111060868798784499558053550046641923009919015589895235918102331675138162277846001829421764088434393788604704907992158582400646198075673565434798929175741783849297586985469149242228478580412769944537571515762182732078105749062351189787559640252891214644666161091790205886772016166356877869305721516702254492572098677903418026835096529757793810129193671620736122468350353607271162103741174939681344767106904443439310996368667933832313389166396958596042879781030741553243474597598291575247894700319702052989614920940860979095878979886242408142920774559453115762826880685960058940758442027153076089243960838656813330889372815212663959171667929832551035503831920601390658605239798478582922470377206198717959819166031204643599812620387753884801622311089802992055570267558574506669910935350384845860643012207343386404879738626828894548564666529017962349726377786668772093477943806023678873359250706747208188865736525499154354792194492043173515074005771328492325906041338973380987721663127156835021174085619715770956230873361939064546894509129609401079224902124259279793731625675432244981335425976238205977813749016772845978756201003800683100587710338824953688101605548933518853031561435248638972740912471724787966425533937073547754333116685439129795442443508568643321961994394051296059229890790219321784162233514367332077473149249244450787143164720571599420466702479104954210638702516880416197471851200096372381167942224802712973032328844181471608779595692207664405106210423777891344077863327098131026335084788141252716345088284965020967251173320220959322974290728885215681524698332233792053508134368023373324692456625815585411374373341466947654478058012548684382294728852315100823861528130962284559822952129620509591971218232964805131647898190892638969755050608558887924652601546233540912904875185090789193352700662621803589714192320350243279123886139806143156729379697643659187249244565724554677727921298429309193676582103497517239149462050867517274199796244541309318079983689101745659095719038223384557396647168660530362150708652832452743498941531402579580102829801851356994641193371704983459537561402136012243398641739726839784736982928799075915549405347953101529345331285652486014179140176176863524250743312845008273894560262276541087742448486384024949932322554358703977690614519084182887278113064284479458746472295372925523668528617228638782306821042051303470068896260975825770714979942558513542924721583302953630091287416458369112094383651682972894409883979522841113835602505820799871591354992002356266784931245289808907016318832889058932850597606789116651386831692005757529855068896120001096075834623179091818868354728600418954948176480844847780247493601867815002671262492107014534084637796864358392272635103151836983192557519826751532655374496952227459625602972585219256562084394783807681498476109652371796652221421837776728953121334624977325354556763136900143013228565787438511470754645629781734032294404615771810206376683380647541740714392575554554356091361016988444463458663267575070429671332649282163719121942416427722316240060525367404306594434137225860132617441591798584637439281172468790859334350910354779032350161994313858568505438095390814188494366363080801220421333897482244252497331603373986588545730997080102064430012654372804652752862720591314731471789250917633102541224285961536698567970238093016774219992597312158207144952263234784327797141919547585642686257196445285999550627824696117699409615084527034346246344742656590652380575775879397323670918930991673988985916826116966326397991951696250151345498096982762826142860829951604865432451043233977911256125598507187530010902209999672520595256872196661743220320924975758409914550445507723531905904302523746913972124771328624543098989271266114361266116819681781860565082553301315592883366839090346019327331986894765528202113171882065042857655300583431042112577573447803375938255452721159065650843247719986771643392154766550583729879533766764386168014405965524159769246844283753347204893965609373417807790783082499643322153946282143301770660145334229625611612587715654645880158822843940680541411167504191035503063683077303414103232467608572637685687063114835927172945994628909027725238368906389514251841552842638929907079784464234660520922525935058908374232896410784398546451107426972495682671188954077805483273261540860634243721483455096009176435493532914022309216817835189021880599351680806406580267516592493766977386432434098241100291106560723509327226155736027808573916487971921656079263943028181428458581412117032158077928050131794309766742658163052959021715838725411903667199982609300227007684877515762740800446315215176543028372281577354034130028496553425341907771807337087124348021079729766550142182443941484054934649845587177647303606823072707893331755220034683054382661124307071812314656752823573741724950778448120613239394988627866870602585270316721368867527553294648782617686287197285667191446665684710611782158859983195044506243145131293343068547312950657381489952504686769046406635691575527503639009473617732597126848817553020225970004462173842041691004014170976363270536604668252023836027625552834786604662721287909652893721804518153136035579732474115154078595301309490493149908811792838526651917362205573346787376705166290379211597417776041002308643911552762201662361089971119722294035987208121731875375592844920500171189012291378883784969992858577243552077741786237365526003722422379891265417605725628570901104812468427489506334641747384200218483024739096012683759150603626727502677302695095063190406390706045788962087446205546292545685506336504543462383796229482020318621391215610189411133235612679580725820285514255791456292275389207976859287586963922020951107837282377995200724878837707629647750293567103857791656590828282404838697532051657791897115979668567983386855036143273691065176848370491004372905747082238837868368111916726567856479280502822043913743386983676471058148248037583250031056443049275508524787697323673487442243831089551666034070681269792559243452484850041589787939375954744988582079132496760449648348432404820527070168269142112792530198405620717105856695308184208755459707100524708021800191551599183744079132051233254850324276989683729552080312455364320328232549859190809998431707544634582818258244370789774260546135157049897937374969791669333848043055819511542662863610492641617906728446694378025276377159790267611510885659986677206595460143739061172432013383047495469294218313956809961429390026931038727616014808763878697395251243006439155502302859151539911563440004611070482156390186553320512944391978100462112907922195074498023776454426795174266835539212952054637490344321961848814760447317750688881910727440550262097831972525655154338211079427861752833181169647726598150348690480928085246309147889021744906422334603292082905567509373495438855735259173898448110786178857497971665083331495159046754532794985709895613918364133800884225029258496817267977058914009923511169261793447260448703937771632245243756147413056324978522570277886837482675335888640622567771097809598144188082222705739223017921262053790688209607814353323800614268519683017145030196947136535575261205218173412433542845015682721997000804865369663981793687106957471048286709093862254789465357640233226143143953481082653053160837400256064330674066900853955380495853453688113081250444437012002622983461369766529000093714542131899029912923294226859702741585801443881669779903386576083734808634397614039807938191359174026741182967336808814038150645906807654167038828686972923532843839026434299113537565414877784609217679124039161647704966945285776291386443301057943603282035474802507616401141768639374640296146319865007805543828997090763044446588664198722291921432528501279722676764305126773734475187758855134641756965851974756940812500152138089329370418433565217969380818511096044749694973166347385891203033488684311724486470590373657297718440412198884362368618999007714726920317269042338010629655974126642163192350110131271383644425670227809770270376541729360707368725586135330808869191727497747659193049382943799250301234150444017826315791772001989305109595589656805806459236367111617548071726938254640274884329367282577969441157520948255319067827636409181020910906461863507403351450027077868086598688835792721003289005872003623185577806522172652902481900667420529038013681277932515265352370371245274557254011773077660330199927872768269328861925360887466260251273717725492881564865497567160220851522666758794486191966504036996327901242124210576753042062717196236123222645376020544390044689725023573427215686339034584180817257115784454709501084251384787192400623513229383873919908104922000692337590187375600037536196509175000754687938270344097987201489679860763680248686675269650498118980875372706727996409180243392496770959803848309990188408189965423380482012024709591762835612045349289289457334181851948424288113589890041830141509746680203659970892895283715088848491304530537385109779437747395203324091098639761143970064451196389399116918152768229001808498032861403034699068612082664455189530896487954737638396272809023112253189639417798169925887451177579785889458747973289206357037890591739149347581844312681306504466900374117576357926537991355643752786355566807180052042691451366923812171488062847309747125202883917606084469654438894994739094979338441107588389853715991220041482234828342039793597795009740766293453910564607965698796153024395346987285557083952072912825818345119956188064171907816674596088581058413010073837002506007702342317557200950597522224879065081069891083163291206713071558217118457084933047457208068202628664282280634645305841923518262253899522377335383071985472067856748039715081580020681784404394958450063359678486680775033101026871652899011545180579520995452514266343438674964840936803493040941533034964841417036489446481732479569598151529014120365173395427685131911999144183713525366562293220182832394724073056093519237338151956714484157159068625173622862188549538192470504412399528427922646083355368599232176398667766991964762587974559994525693746968026053014697077201327072202038202761231870736779930616128615818161695240281952984995401725769534547167002044573486591583828537426297207285747192394142139862369093159798706398537989646659908054855992778523323672074306855705230961718311371710810663815910599372467377717395109282952335465208810255300146514869279347724194477898122366701894025459572258876353595802338392748715448385555025862121954516817806171298234105931017248386799959660302609203534572032862581793311613588041207790770687184568333894867247903466016171461616747200915377505860346594116607826398757998931338355154800394183340987456582220093293350691304265019257228256560019893467726183299865974151267587687207480522986246976413164018813496112863409261229460659743545885174981279483266508443770684864234205352310695494206297392037412359344702638635457625032705478125977527589938474185032624799732185058236221109799697332428226617853508517069496757112120225825406846258670505926330690528829409699209490187448110511302689708600502206583938070989291729123798392719595490894145341274297522123475574968612906903139867306295024219018582069616478096285790390819475573005168367353605731502270697289833622786778778797873499632552842129192231475905381297534863877969673603909844088498368827564705348836324938169899345767499455605229634681749501756598412561480775365774763266135394695097509825479337633661197718253407212202969508911555071336730743008976872337190880664444840142856243101451320490843294071000967913301315430035631155958460902084724382831496817664779780616170308291086850261894955403729796164666350547454359565487941448529464247071380874450374513799419541426132206510359844849556059591342544615759928889620273784075018875758758124862962022197823327652573742376512832373374328956983073909403033982572065490218839411081441966045820240996073289605089211766541834807577435796810364022231300965066467262243775952054098708487319168706874537206032885094836129793745383702127619462893325864326620091845635222019161696936862903083147237700895971768430282714837762379774194635325811644598133178974409081347556234919454715750110283048076919392538344339117550882459348560618336906118726965195696466011861835481850966763559826624263966728972343206288652579658250349070747733040117436363055783833993541241912050635890464566782096785713440785652360860672820696738295365968532752218838483412033932531202348428918369516254098507666647417152242346639071400633248983836220217680818957686500689428195018426176069250768544530406298614124803832534937470939559112236749975192257217953377934515123738648950882418143625382819967939900928746654413922845880097279610367090537956215132437425445398687249752167584366516245280540000447837833155408331449284050225288592048063156688853069630104853561113988498952242856467553994484939982978832341638730173942066587988868151453792538713619419492312146561196276280935212422264163573230422337631845723147080260626257598751407130691217271606637007739337739738773090911157747709846045553122727819724856869628817018031216392925388667598663702998028381059522707214819601837897453088773391264776182326153226123766002091453245247830667605561129520178130528276139998094161914847172592733694246051591575018275856717275688807373514363090697263461772731496285731199827932945445392660222909677496433202144244134403444768532813321988363986514245033872045729212523100561502529416207258738389374544778558108074001009328145242539899390456340662522144118125274644616190057823260586723547625796981642455968577443634815432431518278774231934957114526537877348919339524077838297480372472709711930468322629168122218591621903660658531996949625075877139171071718162930547350673707627839818306524532090029333809473086823537269754960983279086197613176409774223291373329782694288567992332467439963310570259224260346859516093173818546180799249221889694466953914422308548752533274320409417386354526226244502157243717377837817511322072298069425630997802594829502640089960384847421133428572128872153469939415376713600443113853609748637871560247763750267783431802083463958368657569120084949253423492094442329489694529753386017905180018002664053978541488328540283044934940765651859483668657451638516072820838301675231933262753242333432718762720101544489818450812584388314271035549364832853752259479416855392529417165507837570734732200643522208688438462212709537614263670960086707902871913550472232947370651409261952803623432227261937565922285947119502090080784659974020884021430335848545000142241796959870238739862166613830691463082691798305556063656492228894898051216406756870177250632178040817590063079976724767097893003236709937239237998768747436404539931815300141267193101780829130017308023166924460990309377364498003208398499194543473244210032868766511215967009980767689206853936570045630186893614367216695788438151810723563493247360781277081177081230642906308434007648693905573919937538713081228073983845402017826596966094250354794225482286894081140134801315126617096021103190706351871574461485359445405009716882446403099474926610484894762175290067470412618447180175506981774150801644298050027470515554704238340949834358454390001975577039737553174000661557785377426442615654806051052125656353508461470916914551688469052284693095539082491737082926750818347453003564020208726419804451323586289381984003129078477067319918609400076185719119331355116302933199666138019642907734445395658931583303511528876351703473206101474941781359026080717513383047988234027339783220873708515842301397826314327574101823846286908551346044306972348447866585827965628489353114419834880277817796534620392956045247833978636997039640167777021104796794100969597819843398245500322337777879942790013078581307594569597709605282731945561980583415663107998121466018896900377933029002128579911727544908721846201877403328134837225067692445676895379271207361584894742503649245847651308899405033641954668525256772485985779392691377645641723366908169374682370057298740475415001245099578245557845946350602205728692438549896776864875740845016446087030838583779314942083894335442837766764834363167658219218986961878350083230444093367110409147826877914785946141933882847546899223631349451804770686102681520573787937368499410582854919677093198812765949348754591104631936142140011583648158935748054058990191260836273670819524817183391803743864353091150964560380518415607608803868612196548490117541462585419628316736898198633186164401255326863291513937967717500254176547569038983901889752170727858549829319826094750777684607110482616522631733642669478802366501386415070303346594006247407685709175603970556250521350445394206284936595664091881246317017309623653880069831132752870508969663576981916579782396367274164693390771513770260724509154103915864829249115601301350650582597738983884023376807910466867376184445895262069417515240441663587049702335817156211106790823980839144469178810937667269212747863717168137350950566904785683430853990567301264633309183972178432556657408954885441839058659650644072482053418325956849055436746030289218167001945640933559048488916792253297183072371688431897949592246343675091015195916850862632106697228091962465139399243393745463975366933346952676034991225647640940898896898092941595920531430561324097217171661389119880630011431236576458072132963056087443206311604404945187500708942354950075210453904629593474186958002219971710668287286987907458469007507529840918462660904627059257922437184467403909364583300455678675870912756593620872205839388704550658051276325100797899863633036673815851384762627786721570813147810494752172115738687295192908399898589835168465578723717683432299050898846418892809133769616805761765908813143409942278188971395208149426950825121335826885682861477214868012562522639941259957818618572795669284825311127769380929253521013137318122753810266422198007483093547479413598215693802644349228643680648751298953677218838392679882180352492445595841352990377801196652386686247589974242338879800618307654050682445334476235916826757685853247769538745155961618932234295886315921362765187932627447854862371475371710203110331886279839016570126814452476092045220893035981018738602785586438347948946999108091796849248200398857743037933834100829681633274054305898857864985137924824794333211812849482772094850745633007288853506758198335101163697467549069310135273496977491065591538179511841114107667614994971804160557906783233109501666439646619852388989997665802027005178490008956299081412142422349769597356565958485504778954286331559245179744555832482924539484572768339808190336436048953825028326223007523440539290477155302460557735624138952645078021957134219804161422434325969709009217610695543155227650605270177114858977778440058434472760473311995993144730133499017658535860920989174326769946975999400212491736087820522134609808631070475619199520687878956388374615879996201359258180731755510877967695577011577280183314174141724469493912618289881549203455476060037294288526913685289531927212696063533713425487030741725073386109205058141562229968330162086150450793273658976520670812470286468679602563290517499233294440454338026733040585400322128383239766035623631346535319719872737843157680501693961690424319078297838622830024242577760969868630694573464326418603050849501458039562334688361877916449969851436271657009006861024348648961421891783965100459191244081301604799894474348199441780524002196877441463013451620567722734963840372287695129877903389221284087205317870702533491427684914797374767310399474026461922344849288117485823851159506234350699076684052807308895960306575083634610522046589784505138978891497036282377037286040176649589786689316365339197378268736933269370338479467718077458251323579378227912215325409218774500028115511432672830752267573953214858812949229888914805283627564877180999675223783309017152957025227957430415590853014782862687002865226827302041792178559649277827987588914380647203338571701202226732701025219918272105948448324319957601084746461177543374952709165100514099216981091684144816915164041002957537674876737109682227747251461831208084983560321821876489697102299457662946463251845220646666183885679278796815534678019125057856415457738380969448436089802003415921200016714786268672320558611465721335601737078197871775893228008729188601400666864072025848012528371846211774718766457292411240710934473270834293525076916534214727713870215203723024136807931692552889857993072560308632374651702046443998153019141417434226467927062477665196232511250473766576370494192892112016865082891766626900310097950751992952653270728015582424801248069107769152484709773871932843377265911317534293191696272829417277873559520217983767920384270576325656008411835323702167352190047738489218653240201527962958682279695319008488240561497919253935956132349560539100683846628609992884633039697942006731203229480966661710621504189614478956904319958626927324336749395238762154320498123835467787251145484386956867608852558993831089243435088010035643252018997109557382176416352075785041817134735971648208860982191314975867287893613425193745086219200307506665246197311466014136627682855735758947104250772943891103804706507644038003070150841305760164175729363321824829937762269998383261438817495162852852045514624612364272953603228715873312161420353667274768735452009939775773605700747717679976920423924675431827018949819914259484149094906735705069304971280166556131157932861111912399124330230226041464385225807322630369819667190939761982688806433140714781261780496214155237125532751916241160763278464349057616034143968942888502604131568480613155215201850784092914443414821542991278997788565418668894206745179975120603410564999713035620900700320056795046991677679188791602655342035136934576528037874701560692084311932244818660675733076584616337670568424556988312679080826288908951569379796981137713865301548867272446151044624289431992430833230227679143170225139483091682763035867798456646841149020445202157763209212083376926995196964808703897780893503609667740029235618834538016124049252882064900313194226659709725827607672359229241426915285690548991843269329470091177289259591748637627946699343916652081306071105629500541434486028609192523473866717823713181362955028648192588886924819550574301510354024519496906420513127871488237018064959551436904313498125012738737481694793970359161188742271710431429714764349025069934354198379500123553001529860072550340252676344698471818058134346300975169612039712031273969896930427726089170512434268183929356632539211845090400455939038239421187491862015221222767896953193913525369121224206353551578699311726688570614550332050658896353918391229073608802487966653947055537174237158337191543840535494665798523811306029443995326026272885258179945767359102147891359095477129587163349353537390674525294383290327271170616685393946293992833785753803872352986557414361681984738190714259321648501231182564495185288704634839085407267991476682217609547518136680876796446809501870261036984934491363912265784847226170630221950327756822894264574491948264261874808081081285604812608676825375157090881867035846965265078049715960139721918518196639535382576417239484718185217104593741594909286835277019209194752958207673961641689800350646578738171892528184225529882256983727649270297871659210498700553218108496238411144983609182473371593402500919523096545430451034008499726072340768789184559291116977031354403913907395333829801808764571264883761503154285612287935027858473579371823287742567006181879563578862456172844492558154022388678913047274158585528088756181477096102656068462942267337060217662462215388992490421263463896301784505243428725749339900962483217413788701137958444672321053252445780043864845346037956980412511078291438275561024276792138306675467172237563780967448380706262660957044414700443037622334137395360428722654852881368894474121801295541522095716834121429793489222372406541946377961702086237538747746184749614413373127038755387170572688112963088997220778483171837816147199125886916024156407203980529644305142724943352524253062807261192488583609125371835228190201352338973449193354712908612344841949413953858179000561614266452951495655632491456116002764942619759112813991758234970649190106056314826012973923910383887059931073652901964167434332593323995974895994609748798587061617435930221574912074637675304626229196708226374755571886579334522491571404787418374661083087072303592455866369421888343016158160382938981173663061351556439037388920059853311790624630334388591160888953344693934209776763067631367021373208252709400358830821248783369703127373303883899505920718672600891901737156167025060546865603670548953249154215224542103213946630650588837597871570601815498640209357425194809862311495351406806259468832405435221639736505730465233454311039515181800610872892067919456700368523369985397593587384747918980073758417246369816201629346012415762456356025091067016920656021127960702936875686951709914489564674498734211064350129416163674002419133043488054586407882848532225584749629377324261696189732893875002968892982165154208710512134207411319856725045863817007992560797742259091896929293696548503662214891407154099066139290637553888568227243499385162251478282241048901462409640842395729445866745129215641092329099749817401353941976406332056361158786943898653296240984046052113646994558741607896698375621041874519790631290299694566091778436235290883124742001017088831586661799178675729835184905435834577135931415693333891261852265475124100428409978850086996134909102484158912575052324951775164152109653360832899929881470896938204726692712254741184125611881602266450506592444973511341947918064678426167648057360874458133472454325278435311723273234009963066621219199921803338464533223868743907548396845043528102946195074914569941798947118751420833370184619761916977346454828716436526221991716728239199814983917346912995867445696217268554841658646127136672202043745351425741204069803304721026755241285532425418446665637922216785321800430483437815959030684234442923362325840030300076200680558031799059846798556295421287700872437949105648177736977858440819746751683517935266823508035078357880719356661342009119083382222654543824511481532441681527836538606206417340631502275300904440010695292881088287337460052721921279862064562811787305977555929078217288153639279150986046433803410091683180947139326352542350171572084901078703521315581485429685577155236560350267974105583873134269330433822190636929112605354314357354887325710694967172535479200862134937989991446959655937761107307827862821332801446835839279144691400855397688085533694990389504651963679837648251028678975279037431728900769945645310248846443810812229063662925130250791607582906564022040559958287134570249350122562586145562442356764534201936689718213277735720907446682968838623717214121475780322065675057490011268783126476159099184012361921201723374978691823249625326448340746295418803468564317772025418762801974144805126072911980465684049569163905300716177035910304508092697632962901008018880551562378306825986206992209302850443455948488042013076507829585860384736369791086635480331322599087297455005840773568948673258077956641179587546644245907216395129455400211396957982920375201227468909616690689062377941789375368873518706421607004749529820871304771228443274505781800167757610356520552045019187940186064899683808336005312011015512755983493737809626596115020492806048688801214295351794324373071139243208591287152053567911469619994114872020797732075198419955518076171606695900604133006102417652764568147118590824239293009942440541763849501935214158415924727691158221144565481514947829686395416042053811527550453349113755324939002010765299600322341993333107015060173061662455407815037241295800058915565954278400370335512110520108554292266943192932748038778959226503899335306732281335186333392454121357206704423362827356540083657318157285190539220773773934005101604971253032426722469904171364927232853103050885735225493163249138193015604306756956485056066530571126307804666870676696062534104413215376955736228267521025373098797795874963874477826259931932375998758543011060676624783315084684706714700515824424078705562188998551179588757164213339648722482209635201851161871671386692593493921293707096649710016795727552496261461143046613492518720545109530429369408034436710711421733815543683142486650337584504089222932431647515895830464065211456958520075213499996372665926997263564444138304018929106620685213765228682910613525834190692186927747112489233684796504001171753856383780650527482896491240433022351696176549404299396740247614837297644043515851959924749088736680328733870148372463765569923804132829018841331021761606397866403117574487229084695476829134522904235203684990430793932109239066212539956611742629797099908176218177468541483313005131218680307085143003269064082628407785604201938310275304393492369274933147246685367212772789453168503578480192733986650697440768216577633312107683667249678742473022108850015784514919391261109844818394544063059284577540409017113280923034744310467576799853188298480731804470771764460037295244383132351894197469959087347374583720855761920536783745456008051669504341125110433355628663965350147309625088076558004339564463318037824698117928882382531029568972281527464692756597960896283047150291972694224872392103370412561259112951249608891617690844618690706530424195304838544593842861701679230522138538506792608394567027212404098775728829351927369276258292424152168852695629895093881319591842058185008236884353368617819751213029690176733641797482665223002980859474071986551108414981602555711105562045796123437535533962721223632178705257462525988962857301066153257674389390135028659653837432754550584241250798464065113465458412137244376812420084425980022043220989501711932843779352622212284481267140335259079505757927734334044217717896122116580258351837942130030174929237165463344346498954443019901054059147062100857105071709089092855561996110668311099866560948872470563942757764901959883641350810589537671633233888213768336709373440222043605029779075604027215432211182055399413118722028002321449779574768414447453322035978038442203104712480280212880522297664052734417921488041899946933961394824551692076120616472570218986923581640158200720234507539624122093666737953606322344655952277071537634395813269207519049920038083554605227445005744982441152229341521466810403141010914086968701954686694046269840890698156817000228313062628816915097353982408945958868732972879180020547615507333380340425911464372962812684779553218771510179259161994498413477011491736087996239175270614425734997395421230141941983027020451353068291700311561827395576891508903896253516385707042817817317788285271217912772966697851775114068859553239339250739340048476202036920270133573217702286447106642738814824871515820316031774590679308060316264035994373741703099197754906209344107304360264739657468189468187111327121305351050001419082390708547391601452848904603889675230564651888857183849962547840381152260741941251540997147311143061570191829062681202120600086734742332925253891819748726086543860857816496132823686931884876615310780313937696905552658595332859298392064651986425790208216403230603441003548287407749297607339174295712088181017038428425440491205458509146998392860857660039504818177595178390719025793504913864552053219998346226256529392775409632501626495524880349338479537860603054568384470560974932469577839203067744996262723159080534095260908669391389618131056375741897832332038782996152235694779937160410215807944689661666384680375642301315117247022848190066974026064366203544696794747384160659697541833646572536449838970325259219542965595750733914554800704049466125360184234315634806251968619441895952890343767220177890108423597115954671209599962287921414308761614145925108706281952759056497807792154204906803649974145335862767985057406156683672261852763246331178115333281593950025097290114400451688021607282459624501131063843511143498234329809992554512433568413151350773558583158575241571532328547612761392907278060435203439120741533485929120054229296725759815418702877636577903697393433131590086019466990690759935993810146343269155651213739769083861886016118769617265380010569010424718282364915270478502560024475053819628842947901325867509987500230558931442191791633456308083509003538077184997882114002522627871913979990419521316223376092338697714313428718234242189684755887622122754390638998336188541020666394102237971391700531811575107601286100972962549637211595166341752175826677000379698780866904889198409546362006077934218644924170074454819055541630519917624932709873177694161844034626098840192290103901879787646208367816619872771292746677486505944928622259828284463252085839189832156134710192674711518047431722387115559253143180008962128442946601142945885300871577005947043840963615801944380789600854760799772207268458618480446193358346683072708440752970897666459541147668347167225805114391531262065445113212939527645285630474050451875366779109547972608190048120029714219035027133274301030476303352606290335610496210652360055442901788250621337877169105709043398412343543431378134712572517712425083693703270203030432007710038189891813180305868029528229337104115410700113133397962947523402930859487973490867517165508058481734769090554939289888788308322573336625029833005875070342888407973221188231432616286910807333773558795669967969004731588210471009665726761386206045769685252221730178950431314190201496205833994070914750575576555302494612931182493930893392274742709002942857469779046032932781685467164596131987409971173894508635816189422868998826463595046333346426044914115014003389430544134468535676902651521541820580295531254714051313221337647409814931127282302659652335211818060188304448125627464680002496345961181006995708328105109728346525717943860708076282187676692646420066283064097124411777220004741566140098369829348802614594244266897643742232596379396758249539213023863318688838376985240052582177469392796308376468476643526422012578122078369654400819200209463137938224007900424789357219810593637727867287011057394456023956715100748676555987928729275380008156027444505330102009712713703892080700943283410666939908444301310865711648543101854717895353658734278395729329176760746966106662446778495311029085325981511181042887038070778318716213283087607559281051765984844244474917064379717981477700615169397880691232743827850318086271408974598734439255550382759738826883169076147144460294221716597942902817300588026491085935459636061048779174064047133333386426338478736607383747005381205466196861780324996373014389069427897116619551347212060546961824283757539970538697044721696882697671756351688131929890560645839170487829978237893263272334957337510921714962377466264468234147582030485565281541916990266488858721147734372266755086333178838220849402797677101364550241020826515095375477390840162475302666488321330480318480244354827779497405779724475772370199426305396729949686646777172145223476415427672383087075438775513478052426475771962408989315924016198408541088007279488968016977303184919557771213885540581272526720798131506220103297276102790359364812632002696498549383209724795403741685709524915986811994112795501113667439559896611427856448550262919532091838809045527802409498118261711562860250320591164566878688194759714441373339187940867450818993180594856750579922369446835815845888079186168627543442468509115733470408119687059232693009921549509194015240166426839388598640553655752295140879255863786922283972605310081068719068197553463386980196943821264284028353947794478074915348689915092078048688909514569453300922576850186047625117691494169918358294414316247120866652388988762011182047566731299300864995174435633642790240754898897315464767819319404796777364241843852977950630225352459376663934539241179403272894854109723375283607150129682455107744119547767004518490071915014715828672827860667664795370308342179944881605363759765645343418128396751012050774508066887040623482473630278127930957839954942810861173187154495003452499329987552534104724719599136344866626353782158138180310413494899019591170317422566276822392338303389484712662178614307582537666697049060299070605753338988134466025219693332227022971260359526738843561225494556718805025183377165712077523240029476117100878301263404927136467229096823820162688764751849878051034020146228439698306895234064902643715257253668819093420919973078804522142705271755792505979531029350818273868918823717833909974127876178656767854296061336258367553009423165544013588991297418242322313472247287259628636095816642134401400152001828914666519743158871192501934264545663942395043925811114403806932682849439104504853036147394183208768468175039070000752629408942992171003872464770628546715789942540980275630790663291345345029268467533501693169966813400203033232934285669308982949938627966026735828639736828556433923918391613946679920176858793758992951696947217727488951114363194103520587725786738789046097097960268110671132473852673139162181381089783174484928924825293035075132491554649848891600959869561854355787354193628964246693579939582240974523942867866925814400211391909981600478085092336551187261446942553203987550747570070964807646753123125733819828031287297616746898083095898372438782760307336458226344355939948063285288753843299046639198805749088139559504718967574194119879889204126599555110596031313877591470261726732136770849598022584629081373038973425372308191538532719614774719352934272936626398541888003537435535531473402901921425905954989036969978676263518942533439052552921580726715789876109888664076371265698430785990147503069002614141368509668256756149392752466452703386212179626191122975436144849328230507589490039429098632599238639303747990909829931888689263203123138837155373095751066174509766489627185435677545657391824311476207288399144130697758696838355607700551086043558651074447820681318446031408150251300240986668569869653719929334814542146954516082967589560006230117389982410265115970583013294730147826060313991143658925939105988996132765744133837896653584826530611543516925530521886559906332127717465525427334121178580055512405934048788902742609732901866256788250639534805545931191836624973061009406101381413267223476119569682540469573097080092598528123368587412274535552270436554798884914216382281206744725485414500488014115555117261490315714115057284677178209053663828704578580339040756183225692533666082394044550080231289861240386319863090775932797617996359612944797524331792577419830383243503549840900835127626955091686592722434897336131668279567366939186255269414863412975002352710329149201378609655884625062334216894322406769479628306468334421137068503046015919871799000061539422345653253438209214329982554141272416998608458539045094837948399341081901909547386778361765836481908756977815311746790981912268119882309921178086497244886712724882359465825721834321105443400929097659199483863178320782321726377807968672511434969853770366377574612963942142530871926136502998956866455040457661859975398915337380150914875660200158470955815554542592357724377023222524862044974804091758468469010298743547294072254328421462035410765811771097964311474500235521990303740559338413162845877982781147096315920319791204481839912383956592748187911271824477875050821131923051259033545153801047239118040228355144056938256632236438431875164337452858020556043704140391271991091733003533020199244308611696390221285151596766538009743902496070969264278568951271158992562417951363031855682855575957687273845478979271925381276940291530902824618943975410003625644793168776544561933221882797537571400001252514817326402390459250314018868388199785822333007201065804753428881262572098122929856258838139148850492463928376473862657281971468566894016788465201476771701947898958943952619540011720798345561644279536025728671909808694341933491901820595527703446204788898816020918889096438210460763927666083176108833482227321461840691898954278166654047475119775457168524898889743560035792060911803160472715227178887051879385610267598495191869651979052621567979893561439152505332446998635985257625078776828940880514164415486117670949464656420133222474342683563796815068149994411290716839190111077568296963801573322989260464562058748603129607483193494981935854248239681961689814502397176818653235614181545417885056868040247403916125388377467252619003553555269972755933930581958615409961679539152614757303231196489993771766682426308984624109955410354049403517215765181003272840722416240165438661555295526912298079657135546520591877418604008689576105396824541389082675092360845980862331644411734135967554120849154560142189130059377265933106767670086274196019225022541283941613677841334640954525474173734186294109519157863747761630874123581472767818208226919473536466599641627474801429622610594585750922842879599896562164475200716565538159288601346775063821644760132610689872574590535059286819151222206769318090949314251765576715941093707695582764110595865129586485701451226938005958088788265289887520258926359618996967055874846292298915313561873205523724076854283660163349115643516536799825400270006969596664652433635792306526184651942790894730575173530702831416853764587670377021171348901908915372623320725045493588483537137306324623490919699152358610815435541744044385690779346759159144723957556415568395806172830178282280131702092826609438303132529535076666477516243265729371741587040060235177009753750122679638302686110394231792155591055943858717734867327180072453488701905008009706435199425773475589515200925452932645195416887960023964868036770012202628990082128630219099943726496652132261124053959842684025490672780265356988736034321641577721910565599151073963647968165039769040657851968713492631798576789139330788176503909092799266207746495534073537746860203701739654624645399515763093351054305919618211885502519330103562295980780297609526790150775113117530269750209459980644378236967170603523007164378832253174087244939609438193741264773357459329292065610499123351831288092599298341961909722550413385713014781415551049079349208043707257164452002914397950441138240049616561050804826759739070795693359968707047489947843161370315143484080562242120472543494618493584495072424933481480362709907979984657709526249787684571103376076403792998329082221963841787091048232476226203030349151203361870375846471796553212717973072939044861397431933330886885145116598413144763417798447190889674770592447476534286059352641233461925941801040725488091902279437653312416564920704483942935720982388425878160215016718679745066073117149153786252009181052918665177564260407015959189511718425665042000161799061403464014893390423008621596839741261451080605763325902612457597671966168928935565458491038677283987195278038039981558988487619373271269417518633419057948005316993077725952204640047854245706560751273995104441488591998092363248851946790236204607911459029794835358296609983155518035439790962378891289305409529579233782834233826559299673995854626923800966554330777944938516143298465417175466175952970977482484706337824232511420911071369089333821699249316861811025189519865764105226831753096986174472784617874739978599577101494116471935856411561217564422117587923541264591130892179390388542841816606979155565809413382249035264708420338712286271314444446756520474157520238391039298468665551256204963989523001487179199197101138964162145087904526614305093033254086175887480074708584551651295765017569008355610893900772921489843692660182070172134641049593729540710796623478752307263218311362013554138672290528163917219514752703314797822180883466529068355009639420973534544215736407834203376794246936730030986593120713526962861344299609020403702679940627954957546378908987888397394178709507585102439654117470576927614918810698017011396628901915079418821630017571539504705310577625529140740406667072276230423172383059289186617572789271313081919797420232461264884847449382136143731491644830579662817492049153274956977368912325509555099442358058150821751443256535662338995889645429119644646570884198395880353963544388609807714317389143331909170530629273159034767121442141608843110203110298364581231999790445934833823128246442023114015836735215900427162109335003137078401186407783293796474526355911551472959919863398976496304178742521077569798641061674871803056025620874068036428941125850340035010183846436590597837202684143875810792780195167645887565583537442699039738831649946360781017739755347764734485393461072147517522757661324068778399606391293670794617741119567830736614536709338063707219529087784118249383576207615504883903728834160446956111464732409930587190809901753359013569443766769988396804858326488932384536579753126691763840889292680671388490949603169964975759163045758792109921539003278910961526015494338431605007964825793180906664265477392267712674248239099910258339496810063107279274508952291518973792432842454945298418400283235686233730228087299333822360633966533142043063673227214002383432931535980870317035944798529871889117933474567895966117423237181723984098010490410460789454765399522075525569734710116549688095894924719799240844286536732584326003087361028106888767364445346957692402396743497540185262239420326060461133144511742670511575878396356179348049152299499085001997535432744153549389663844077315619972525331946027324384226577907391812748948703359829935547354173634784998403484896267125096330123019909710378751771895753537230686238196016880174982299727773197070555719409489890223959904791279470520582967683542105288947038187818479194172617177076001729878647136552447892879841517641355330837834812018127418847736194895797474041945716544788675754624117574841708849870883056427169158084143249742400001429184374983358268177140395403793512044926814876301895162693869406624834358176157425409911004024969773376509663449050560171385374463880454432437699446124721085465729218899751571260043329219393467609268166636881429251998990519115711297814066706271401551874735290108361721085063108226551569031552628744301467482171461029316437415709468875287282924264462470213610171019272010370910915077258851687233789719898740856967940277027947867218559257122700831856116413831781126671332062615804440559189794718199455115959036348452457201946960186125149172263826732648058696012857512205991423058807753712125082692321320845992321237601389315756223720177931312884723322115942440345130926885793832510675840937961674271834873385309223023614302944069207602720383794382506009562983172710947836811174351727091269635781176487261126192590675755167574790586362940732568519398617898303693013200869327942977251532634229874360715088574802739255283049686033319478517488217518406694429300223586994096655164855647520983527606828291252669205196314358107355821972249197426638414537331157370836922772068470278179991656715695747060349227023545515201202615607189252701588140772253403971167024095906624541196079175981602671355646200581943156153473382696742690249032768326215987366997058777143417936218941682167045215019489701654182673655773925976677948284259353330169863472404128896487942880753385911487654892060730061798489233935946747783721415085622083401662912925053114813998385233408498813863794656135589253315799643976981777548632453281467790585933360238156136442039750902933626430636153686510293561125298307484984307740927848125015468298477623745370904177362367414724846694724330481004761866540069342432053666081157442689712537919220028908306657745235089212895455780065303200673003854560406045629016880370884181335001032494732720744002551607013715649086455182883045417772823118943727866806060615001769982499386271396839982671511476852648039033799866632589157641756995581904588549023873507760294902854529439779747367425665496957582705930313504880781252325669755925119782742720658145034938494079642822031338764805193274425510300715182089604359756052910351916750537809114367755191393097869314997138588568572547151108726268175549026420384812443633937257331372277534371278552009322982225743857802657790884842016169773793353946461818905686868271271259481111499154826933406367444885605293885289173539037413580128108254118840348351085775406722332423580319349519248326739052989332222268633115488788428847688308140954871361489905441933625366055674431448080079941992604269083997912205360634331618868569032395834796245732651825446330019792034380674545100342455057449350520240340576266745580662849088410675421086657019588447704883968574126691835880322862122500759302970195551846440210190606446731680105628546011796006716284240385745463950644188695315603157881481508084405279176636762430799208833149441203355140384959162788604709882126416317328206514963617058681844612166950472287501526782726382326455910922261950753791526633759591464020457249495101086232307129346563452076678149023875925142925585761199424635824882658422401070344961908345014951515536444275373844455141173377172372084270151154522280253111388978538023229354907986311290019933311934972798391341371928212021282910169757831623317914389189098802530667288142485504649184036538249587773520265290359097501750517787314520473355402281349130664297560050219314348183943006760611752975781591351067636658376343206278446506540130911636295462311162675754544898418543443494979117120936456403344954937552655532102250614430965684876783675812422955470561448398023322532536675222494792466242646456120263083154632141333182441394500248181733617857648653549880607023767767087720390851805346542190712814861131723067892764805448331317334137399578223947511298635017365273365615504201175987484180439227464056044868520828863370851115634768149384988165347339623988817630057597330724245819895595960030735651626010421926877106176927164169686942686424911792551182527667560649197289424419128081778472993986543393656264519312869831672745493006913949313494963539281569382207829761692366550210583905453137759865690339900831611697759251163200637889642596337136568721008965474664520724501337621398625981618782385471771360717083810535305344969545727331126620412333738286018663091474549195700559076465243049795117940179504044884836781108653833117704025904345733346138625012448667818593176366411822055691208263754198594712664877400318498491647664231358343948590904725487813961984554890956124700869439590739388525472978409810731894782541058659628394332544872893948557410154125559666553532819442752587342904099518023123501592293174593621841565547756836434873998655889409840213502546181209300334882312657537332531822672638037824582612928102941087324006947764168297627891246569273875884438995962338074181557314777383974994901314899115403764813900682955127037400795339106442462758687188433280817494646155766309432584896668470492063551516901725217890878178898885316445988496253435584369115213344414488130422089237102977364790359963977287607358052389105408741778736150721343954389358366877854657523581723303695461203456663289901840083712535001817767504367658205937095476070622596380771054874070636120267754259661737390189637698380117344467117903009001748240367049023259823525526605269644392607419878452731086941529161857676268237714911530345306704559648712097972470946880512514962395360989661820022688761624776000558243606145202123244264799913728000670672552206871630034569323365710040621944006936984114137573650474435684037114974651367050777820291669669675325126827443862786241098072543687101468417092374696080457948194617452281673656561865889899214755965217683861877616977333672211422750131536350857657160060334880028480724275128701564304271459292505661844031126819237427428827368733178703132718990396545557423426741826838785238922300763815163678994338853514025430185717699424539283428321226743230425409192943459932602444080768096880324206278275540821339901455205445667107054999862624608124609814628614441487504613908247031414448876927074438376483210706125198910212211630076456650641346652949939744819271732675944390594293622863257864048814038380418069163289498430630818115353259338509279160359493803777155465418812456967220404822228534097292547309462471688625677303065973127531076874969974503108210427550594061703073657181454910126137633389408183497050420553919624588596569702035643964308946771413529967835697601809212875195526997280744328285115130749224920276549094547790022556580068384615550825492322834072979996167287859488563934898436755730359312836247383729513464073518607557840918799632375111272306564785190402795414220582394064208977458032597297642241531566912515558090493493481152043045840014472553686546365276476474636182725349567197448834058880618212667440289526077089021443583111008428879945969727434382938787280176165090074962951199125202347675520263410805076294114149116718586024534189593224173750007266488421622416968807020323790293881314010851977444169755807839706273634689391222318988291750000691398393857889759546873643168704572192401983829335732878115424969022613138159696122126265325441554463447773780296417179012029034808543361700929085488736385085907555722322825575488353752339709358687231510412402518576499135905827283667016867123094019169059904450089444054845245874864560572590964455298569528410727644438002252613757060363805271950782814054955736777905427252559459163804993339504196341269199084676896745920928634494990406018812836754184609814541270398911882085617954638413459372262691397174791910740068887665241787727885377119970934406711454297987068154455311220153436223858911897149537501177142496687927896608200559098176352126471177565715733321742457015505879745649975012300487611962344298430867262855255517079712105644513699316605508528069991163207539396912181932469224933719834945101432185874990249606492676309286238133620019455804935197341217102600478293881094326176251410076247670278965728579652657524595239451240721073202098604247323007969641267991184347717253210974231179983210764050111288508842505260227302190683088423212067798862013248563655637487376105799675359050561449273052632820745347577873101712110961037822071993780082234971901825904258069400487168465158132300471552375270855816151670056258364255681581024330780509442272554058347302361852821719891255642199449763902065154652253526377936350858938429110944433209802334964876628820238445072958502987966637128349225834153934296565182729612409441579854140143254944147080123366753604455869746487114314240525694892114629934117400817214725672463608381906927395679482517744485036474499981277441113715610965324167492196422191204202481334255324511564137173598699862338861954249474051612916464542572202030754259626345741528043587448157513416778529940944535429028524689265979245237786802390995938265715204388111400159182430483976108851086764494906139381246863349322278266732017705325015439978575369616071754932734767923053706220713820608245274568012383998540668091100155455701293051308434788102417343288520927975124430627374841834827097166609832817296279714476074075154655682063459316838267600730601332385923911920969098557552168471222158374875412159504708622412932938240167665049244950150517885670520622839234772461091433014126357599387995603114584050181291308649552880818956731971970658935574563675262839821257502300291192003990114158894640386848464940980509433686625012935760487425428199986476193674334179661997288761594647079947044391091725059200149775856548364514898405026744633143206901104763186483977322570876446501602366937616604525189624181233564352396389492977076612140744951655394412219943227768260568239092332905376270672675620031240964526523068831357106144042370285056643498314185636555504306569072209991847840359387883975099290758614256660007243689497965960064807779315743812470344843797637590545718132047271839982026685044008543174618803331987597247145395081503847139617213785240690206636919275668298471668368789978823590990556782607435469469355339682979656545491607772450722064458471592951324476240044423546867393407722771476721059637475294659799820515163151152918815631325134478476448307375765130479461192150601419222912915552665549379399624125287584174036731055398188431608837400340216326647273678732215879203051450731386114700311274190047845155854684556540555566684497421240628512260146352102379494656525348755341794953262494929550101761902139609439432914344451418560786720082136825801824037328237957474421603741418718746304476820791436553091472975787932007727664708780873357617197875711489644528948468370035084949417745337175681037008692928281210859418668940451567458764687817242481605279082584092325130286671143695646441936539235063724346031447383631754887279595983886920753344514065583162484435701628742794060453232628939981170451770149979244646418953471888526216212172903225434704079205468271893472591018120346659042697631281090131556765336298406440655704637528043121020008177581265651342910428844953544857092875874996832234781452821505544392233141499506498298304748879601627137256294485872242773265490016076942767196760120275665706127760810221344719647564004689611475296666419896832433882636428786620562245935146808980334690702038380282611491331816961057436067066169144803707484116857937682999475768908279253235321284353173267266959997524357844225946255880756654599755781213634900196723431910012533586007317493777298913692216140106465707806574166719648954569602434707535801222875643307363684104352003704861459849534796199660689762514179875932009016574372581329582531101699747075968221043235978028278099691026138792846088819268089987491523983023129589400627124344411413481909527262830757180251455947750209615175214246865793019351806350929666113467981339102891517997422616935997542716876596254078985582436456203741327946568419032630701544962473653384797418321760319210720351117975040369124282538449430191209378978381042879758634154288589652383678935504028096315376378156167560910839512044334914860640394457877694559804934541956449693252668632679050596089000202186758743110729386077291937761705801889583113245950554444012613480075224632549373784824403101968436612885192823479617972533176903967755000170008927171485238531720852679659015896557514523553978224540129844413278781051894241527227547313630829288805602919827180938170120325390917183440889552090680976438542982172123734966529933674749893066672412937929352558406288514954702883387097817975349599273377479450761001208073086813520775041674840013627640074788362249337501148398531209227629698625067998411516331780699544123537537726517271854976180070195963370755560058298803831467615447161456214568478242224969008133275595622745996698675958075663972927934651320213055065911545757232439572940465718697649493377516025908655259694793843740256508170766313601022586794911260347692261036654875279891769475422627697858598627952299367027285646942428790688745625898499567164820135517630462367735032239063140348301689493747712775228791427412415042768562949150604769357812529152313798771132512086700248595361471445926210300475825551801713034112528618490943614131733271940234011843756953605472514552937767308502131881033580878737157484130642903161637015724588374832079218331307220479161741926461526945560988301605772833083616956465183169182249562403577106896058538683693467362049394753908285021902924118888791302173615853695335112287860799159453427190176977699892703728015488838948772571979393450643594786114937517864232014949354705314727338852723583174716519601514798433657883814837736014814758909638139218574380597566475962668711478796263121488761589244030455134881265644582362549075511300181622084776032372259470888055506153169512055180415167576497490900412631643643031009647252040952899894156959644311551180929419613940050260654857524681197528672374911931577824129276935025068688750611947429726701237045869315476992076120181989884140336148197210691059639971874909473386129713893545281254201202439351972614363599981761621426310699537035611324556635989877598723159911107669637753017359546812946507941930252792406817096162560052110225315662198375102401570300957544062146238163323489090069922744719495264437940802360564655302984694327169321986658370349177366739216068379715717619459059594819012514747952161204078092748936217583564043620621999231817443662696108803144819620800140473804891138280700064181250443514682148671968743613449028518336329994578410824628231009965381666057489632161601114660614162275086663224551761027601171438208118858470105045577665056221109190934711466381459422765834873653806691486650027263470089977596254196671244529063136643955927024224463036904642011010576234171957732320289768894936379281760781839146841486704205698305770700106627560019046568016596639561301663479727026245328523518264784788662066598989409135996372512832501737758533907314493137030060105600244909514001482225123196618754710508559570440217362789897064243127805581852677365974040633513128433787863439279601119681471971790718880333297968942608416166316050695746908956630604755025788989849082169056889677521265449532432526892943718715127747897604082067901970340226411238503178021245517577865743827582876342307467504574211644780660385285622499405683230029371607595603671336034522409728929512270151186692482272809234331911382559329735429985880602914521496689461704838814348121605416214750130974865857749123125522524516602104142492692881557820160960374493391947011608919700430709429585575061771774589821857617265388296660516013062127513771366461635278891504866475858092629314395081904569950067539261685143134467030844411238275355683998792456780934574320954721789182180071041329687949354825449455215971496458651152819316262384884444869598692224761705921563418954553516947401392492301399579141854330282950451657145195285377699783164174382160266729202240043656451128203737226267745427213636909589292445062578784552759682207328468254935704139941413922743514644645593784847136267925964161612639727440297697266741661619918747152039308593664730333616227365453707374048490333994140120130301259848867785156102905634164079976163253886440822437622959197798246138710149593790741440480116209263130793123666148051468904947506361077230413503530428898216970870374982200233622019131630553218555428055868993606772745701579502430640942845511907448146403835375894603576635139228147328690201041187050887413577388095273792599763494634104268378367005946115640784749519839383012202891422797974478242753623903534912754326143016471262742921760105051208082029067729862614767409492709559903631725971852833740761074525992142219062200162105622121327872417921482602193563183597901976515913622535459945280560246471949053721407384751855921839398079591627203102424771766252143167427113261393322197392307381190416619947822028499473028055041823159843040538647933708229219575763370472226053481576863594513654122019906956948376728571979473939017517587105977763930180181082880702719041628061910698361004689221466479512085057545617684147031868434512380433139470418425193646493034040823800180394585221473520573312908917287023273397466980255126154124091995483414316600493581264945140266650546242044221762702925977464415971239396970812907121386443623532907769756016516407397073746985938729970358725740985967396973239959436171768311875660608263904415288612483529241126636201546218597702101294512003591287912582382653088219915995436879032167957977879760613154316145424447191460228348095993698599012999646748589528174533904751042256500010669521609607701226345868595782489385056227008812769189358734933724056311137110784045116698735727799904824185657687764555098860612356749835111688867425701612947116497750887512896937581937717341580454373002446293961806203806901777065394402784569164990765853160545827895096187597884320608085361497778793440722850674713789188866123849651513208483620528884624393513500792054232603764078913967004547521328174325867423164497990884429141278024083165362989695346755623134936514694933817070775918757527266940442148530959104732872713851950733328276143616359697540714516569072736925086669769510341172249233202597087907885095661327341648872175409740012478958027232113736084744606551025443947940976893341709855978788655910976745373946594119064918507397390726905848524354451235838986149889468589235602484108647958756860310804616630973297729628220031216913502058990384917692473059551588721315915876371498552351429675203249047445420440143167672979744217834860076677756499260962781514541483293975914913110753513732425106085074896596613566517546122476474754167179596059284385542843649296204317638588111335803608631695584491227198625022662298077851148096704653349275997448449302716595527133557168915830976334541711622693092384044576159037025146965018275412815012378147319012453328296708047932917933550793643995373508343572774698950535976877724289189452107773799794962019482110109995109833447376303103771123725520481503486896875326582687354317090952420403139061894123529216097010535867033774026113436328247556140477651728275356053217845043947377996771977707392002312058925947562031823733744058741800346690351065084359338886263255589145150429829347630598550652173889244161653324024948973678312165062585840367504828094995852917223373393845681734758314460775684084621718235562052854516522889247056304416380668753582729144319438906219108544325100926127537817067627458483632891679683139872093109034500170165524963133419031163266253474516894114909034342778440335623280587719247231208457199718720748940097600213097553250580346700006641000973743848400016925878424885347251388252182456663363289022877177168064173286857958655323678394266972519901182037641940244740376977887058129895732042792183149824177260881119422511484832700857637972698683950140318701670718207119340657657801463621528090634610459623866391054974697902512224089750988200848583221531057220119120233254064006028909614639793063518043474476440612877606365773303982284458400331777106956169712874005005065987306125131585979152186896246063102166030011220618613894422579270191869033919734067801779090487308560445592970487653292139625847822175808863492859468827679227518425473686496067338339468792789762114138360968030813841838348697587433975722372342967101902159115305368176692235869669356959412522989488110307484784273671529684795274138866134353847092395771512557951818857722389558763858212644214549610984685460388771099470800282529022828179718607277618308977410516764439103837166982278367428308530081787841950990863434964422138948627607157174426566816600934371511660408709107378550028372266916275119127928233756409895005128132652309293851342053645079280636129268169462668048907359492343544942708653150288476073686542536556487685156414033247026210982487322053734221251198363585019386088779925167646257817264924675797161792356984861215021847194258487780137155181172205487866531792321676153020275708506028177045305330886337005556987217220126627359351062180403102093326652186667286860770000119648532589353844173562919207486535505894476624812487929910948475973145662403498586168649044133741759937998227768102723241616605513293469894394095051366928490757242927526037263778057866088689464738840349620327857861872512415488017611926701181114713729386020332566335641709824221069355216948714495645198249192722757692981213241604879106259854309284483407140334561740563111441307274601347039450965814284014124577857094575962511272749111937817926883373599081988009208309052811705529876618477541001988822784486588756601953924825403002024800970335838310730757896924870745431207756778273042189509457858966215965680228443897351994450456250652899339940553932601740015913871626174944628267366166171995552995513444413399902806005148338087129243401502426623829050523839459592481652920971159627535359603608465724860243418072185382681573780581899676113995918372057426390663752731254602803038911677659967468214691522747201990710276802476720470607462080567669293487661777071593648202085719669221806202834633182121711568825243449184521069563434167872575482098470507931858803648018748944994613602452445849650590563568413634468829764174521521727115241274207542945882261395729730637830484252468419813382081687750880950188130422600130555982119179455199957838471459766127890627617231467553858985852348452250091875334888441570301924848199527610674529985393751952698691157818373074064691650293596955471744688041825142143180610051449743903288267413912163318399909103316049487354539419865649946429066829394133436618518559064241259223145122815527070194667287774839671005156162084510446952476800286859511178219984081266395858640445550778496701165605159628828056394380480820307589089078172166652294983076391953157916409554873074145224694065733604522687668100741870887102326518243999383273775701573633944924371549785666254070179750583506121390815118391844179875187736879997819905101409499867273845625423864598323502446910138575541017907541581016389975530612603868689522944237706631708166857127197362723157585483707028393763045469047001550246648660013845318832512998358887145088099376376000620995194425068497874299571455522663555365637648820199126077415503611999425941310188479071079435042046970414112905576566724726217674474286533713561504148175334064751925269499017005645854420021893089612404422391544176581237735959625760762607860730004263644478227253699276487649660449991255143597621819826605192356337460871618747290248740571706195426723680882701655945322339886824632413727694147597225432548653188247654547611405328196017142163606741407923128334416936351256382550812233168915252584204580687051914264120143774129505176994023477801643981576859340756020489178012622161442089221080890166657245821981521870792779408101378787558818765885979182972154121817838543847024518824074597378426733478372038229886604240091490558197063897089574800988821770866540907430408727754335978054556287964661979262054294041214224113596960400786632191340865667830773371890563933071071625917988500671569171155422159708222503413525931473017342220427532149195813064197552508475024059161022024693179864379395528173451992926076164027035270127804207005611360928793072963247626042092002709874387020234413917967073275008997315099509017086436220614893013981441316640793602298768100595053599605084622528406324791832095596996816421075015443040688910995141556746095470228230359497115775199755040550711379158995677397165302309596809323776644714670443162236354941469245390987415780980480322482599094485995882790715907152708403409851985258973996895729802817933315437903704654423843581816727954247046610059747311884326786507078933589228883255737143609989585511109299806839054191943837748662102723204921547389113897050143421589611642180116767463784409139965265044618668381517677101302281265239017667771194363775887708362663765815350786872528772784650283375522864774581871279511167114183248800350762483129190843172824846345630869086707448222281427918605455257724379087749793128898322279070513538056027018132148102811561847537225983602094135489085990469740089583815148275076493835722579780879886866483681619259493787132493442694542837797698563251524168116983411342240271062033995374310549064336891044493155046649605320248423261719297911847347794232825968748525450840295260920893764252486723234627438273209769679034704493627539017953543640292998359958449806538527254365291319265207274963765385182048141032540058409041359384362559116388490831661090790956919908726529452781807665010431853311043493951208701993713034053703223054466484668899371827643168044773709561411726645519317293581916615401600787047265572038179191941437528022609189234187478609440070152374633829788897060857504628564504096201348776561092924911101973918010354579635771839844296241890696559957532799867002698578004375365207434433728483280754272752653285743059628887179418245444057820239357585337530725900461032553772857271550100974980713067032446609229139982946118496734466094789535258777773519529562640364084700487001693292335288194827818953094737286972033814807218897046457567790576293610328012680303054992765262024566274146998488782218393194750299339937579442397133357048540148630335956005643366023251053486917905358259640913269792840476840578487893879037612245729067067918287547228200669820595661985232350530872420589321180210176989344571354425435419083573896513098856024304132438282982901114332587358309378940331784777233854173714286588041369848146428628862695478137554398604309619187082650425248587050387988393007492283368810046113090632222109298902533799415051680876560776545318543722931314598304332764695623946979701685366689838470369801929844742754540051166954093758009969329621480006521374617861549478346647084470675218441439638888227040790049817692970343838592064490326897041474702911883812543423552685939844403778624520983728284185044462151316545904546201022759384738076956399469242748684048448410196426516933854342383138211331826385401104797619531287420910130116649349141801927499848543939034636450786417897291404266330387265929007367185155991996333485606171214327462609503522024896569033642026726448558441086010504944235360092675847731297966739030738947304955241147126049972545907977076837927856359839962665463045651569720617168618938919823842373083218224881306765838057316103364156411067841291817740465644832983070559595923470924142635116125853202339752781786014933030517584461790573873351364213681490242944646548864297327484590185944174926499784170201643050810562759447246395402140621287403893356193991239975736506885992171736810332733872831276762076367539732112388179845568851941624010591608501530890520925647397395059795331223779509709358911368404798116419816719433075628334919629739807802116268696518707511551895496500827874050490765213889270079005513817137929487479106781112037877296734537192912067904241406184471550016083714854389298397739549799279055015076911085515511935593779312025500332404665441982428566624638023794326803567079139104432806014046789619111629188157905173657363237571287230056070899444594055857612958888291039712420907497917601647021647991457019873817131586269167630740400522061643806389717002529087939456744811456661047559687573307906497815558513025882436271906422274999664609102135655247187618898053309884920141937918290910445182752375840880226837579784415511560562393575988283883091638832309596911316877530646622443853290616309973284738125611415709445839471515806437314484918037284508818780875951700516043394522466192423281820768558724471642018316317939318660048600656583745854067121666184781538481905564567868847968431296854882822389596285368141771389040077920330135666773848586415857961243902108885896393339285582343892826519858039330144282788247141967310656851390843281013851081849457850426718800509319236656201574974892160009137327218624970578108460900527831927701445407911814504001377487811185014277531989494439799165391780388462380559147542224811971897573057190629879067207402746510691871593922953359883366391837836672153164015207737007064023895469883623041677999793423644012354606397461143158943061139392986284312996377167468644164813312888197433431469166147783939640904641180078298820446793459921845360347748748262697396101620541542612920210470550830853554896081408732219375987303536307390290558900368001352045358534318680752161087169229653639876571526742014480499082727488197886771592946287917973200445873119505588236815929360605859766620219882603100038112874867233490274857629333291242765767572781832798058640458917053680634269495794700163905096554522719395191178206107283618597782012971839651521774595926741447078937043528830551534075128046470681783052884944378252418779206479682796763733632738894736029278954087378748505030123427681281550551998413871772184615278876280801491220747068249198087054772305253067631899031272017525716589285933179479913092407905359059746589315837712172687261057433239548734573642871960706081987432658698242011218461361957353688042638146963120811347462369645350266942716185407105154765210678654861092013589110758363411269511216781083858731211475234245332458645860672521958845933530531599764550440430515141169958006773320528963078090798186443821722488412796694641223512363054556032854333262689872475505846844290417341568250442825860508242435933942688746609625058770528896929807027250305553043317516693710273248872028043305576996708011355705372351136113054763957697383841160307279060436733771675149596616734926909837777247065849953341411731974694334556032313508536691850768764963162022102883587950949374503311958643022306995250366917482207544363410736788696541163859648714823701813018883465120445943635492677154888077432713775811142957837924987176032971672299330536250824505613148403024852839701702689290685087008570702764728455458776361510854659544380604649393243768834703846296795174664428940652980162527632387605217943537327283107054454970559910046547839632717647246814168532766799647594159892030963387793227172771588269710034952887882056424848367269503689987051827382351806061101203644758812533281180305799403537955806181701558011161367817792397121142576253934506131720547891392111596709128157903248884569856466068802899835761545661021761491210239949572230974377646326306961934875931472601957613580596981299752253673916044005294649732720216157957465154516021963623927395667952787801927031927977776321639274478120965925336313519338203846722756426621843510290332471583462224236284389500540003537939199757254237072673618343797504494950983088703695781742761812813220472714159709936014031964156755664246141455475755205962112919803119976012391723029191450903277712645591412851766606676012826207821243494044048036912593127116494518987516973314620404922445404732293810187696792389209933129498976680307215515150115061383539482614629340442020703996935407046282068298530931663631992705193534950300346875999089224497748132750177689971060023877888120488098875749773759587558977840489205487252258607646613691412523872779876927855120756714294646732941618752547460039414919441812663804916388318265610178279177436800214452832115010239254550303913439096505312103069502941966481197219603439399764853528997721826534780903547076818855433324625031179483764693182041669350655963203473041237896880322157855200563059811866522872296588633615812066168566383827040607411871894004423604328689476886448262078159226261225680496632509771660902687960695474545826255254767755602020788548818979899960412048148748075791308035644818629290129781245399830543389534569004361451142336707091664402430154934905279137379082714819976664972006820816245278384451670600456949087519869083966591335091311342988304092827651668036301647472586665847219988567061332485942689335227039693012928415831398291122020714556122932073097651701967828292266596880392380772542299192782278960485027849830278652495897049774081889900271007680871820900876266922009314766902136103376116574027773583669058074049643613282381802340686968058250589741686368970944871131914707652025079149907368656260115091001124649184670717127471934559170920645134128809197500774593908877919683605288230921388573095811037262130021538585412375043413220229349964808423697358268705678275880211838559800337182774675875440970223439918467702146167245767605521840420814649394491408794897201305895228166557516378214092514332091801640069854101355726692401183758931593649049428273654261305404554192348038935219744887923174581055731284462616638428019554611490677366014813933072112664877547624871013508781497913266479174910590033251565357513689513974905240111859060786245828559077764090037309318365574516694409591915900641877830985577293063355844140473827113264208098165224811184481759049619079607337546132804564120780989472768437781156889687551298533713255268632243437856186589363469825570672560441593906187224729111789280356136197369845731405772001083168309714370898464777049956464891646648606172260673526071041133714511923548958881963137082135691328774998808148547458711403857192827262663851142881935252593891011550868139409083827230514614121046822197696818656463286000086678245310603222758951053548942993267751396884456410156714737833839965186807277130424862650827183982525049058139633250166332450615929056917333524496954460947860811965694230614835018136839827850676394621348472436032384785532075430650600860082325812541187234373060969022162174159466620003266090618832406071252524327423219857895661089062934391854466518382044641197799172782086845119630804055165363421402415083411665920931187557189326926953491705649125792950268487697520750847061648016542945273153707301032576699081468839466784699280228236354333171354660870048454237106141591915617293251573356217919747016237114063785787241090235023391198520886410360871907077623427365045177099554033691896836377873084571748411308667107862338079360732422976969145283947388957923903371382209183731095280317617743892285757119810445884966895580023675302763573545278960509327573243387620952077972873411190584472230022396352506915330283797094070821119796093275467760995715236959410450602023195357025748882629131420272159980511184651081660006846972081199049077400530056736261995781718811590642494504407765731168708322260715462588318580687894826167940375895904054415919431240303679213265940551373342443586805030991623836005996292641003257719759492024773471182474491686169072362689717879495800670623755427027555050647007167790973437180287622257759938897474293584271376384293091132908008385645291713761066419599453734932705512526216101286057334963585131415305027107807547187756324954747488455505547082812171583922402210942030327579418368799426013010501832619300666308785649808820735463573792005387513468732114407913576971400039093909813050977360415167016849054559030728610896443708875000932630834129056107513225605561956359495542015197277596822571832321214451790942805710010732718823038270102224209540724761346935125119835994201016663923097716816756894222219404132603239563502169255915676531397625418522768181738614461678907974092513223820806961446439878505273465391468789247885633295271319335116502112406175688541708564082262247798317119625882789015163216268668818359783705212474023193854640575766942815033708494009174605951509158643665656268563117949298796280286656213908879122412598995575315343806051303577484707459178463636034409812569524291800873694946400933888944472501247786356420024175639600162952212957797833409186801273197884496414927062739759155427913503211791461602762147535579991823883677238607140188091367301481799562514775138034687139775147317770761026453156254915871941248161920449559103778314394180877960415276346261426341427195471897429709608953273764431356310421760870113515946922344287499554989900225094905318621441186257885610199515980922136377992739334858265807697326347414926732010133515526977502247071128897073441746282313481249713337584229394121942247491543275216238236842974921584620497257259458182473933010020061407071649668646574644429798073373451400282115940910344358897753473661998315179049649662765257260593786193914932570015445942559902692809064052098095394395071891889011873242477633047372493613589550519478721899444765040247393338562267058410989369660223630674976704977651949116009269051375749215280963081432781062415503270674913638626555696159338721898356476826488843183591866698091379629771383929754325623268381156048574608310241185153304566855897574954219503129319349659814500102668823544852090803130402064403777934577768182108407094212965693132657346137053456117210861246332546807736711026325872892989132533662361306623222389506436221043277440817305792997434014835563434796595553378528433762711456011118351848830924182677152838270825835413062788465928851635814273820215469011622426655644329217177315373872765166519050684707979051868602601928250854895913213413466081493734417495521616919644653963622785663027365082564953186066885806844963265969927640163517872928191595951117847559265554748132079517414122239688142454971975815478921056700321743452775604003498688422168752540420031288949664281758075775070275549800576083016224678576420684426979897149328550747341880100569062620675943276249532558460078585959755828743999110843512228431983793737780837175449459841899912821968686333715962572826174494227713195945504929651795545074223864292150277769045753158523402769025050077725073277781614140266574481517501803449181051266695772540041911076566290006764076766118566663175679551902102259297294234470908671007167790781910415206129977427636483263833832842906248465512085699777207913562427536270497548357215925169790526141162180341972119521810024780833117805549597438585277178039784251391823514243682973315214179242178707815099484661286994859736913064342100050629981932563029052475470501543691444900686313107298622597676318700362245605620401805379750467515407833905614906372956017109338086578666466417790388820257992777181749859565217525366690209399586142669779247584662046823839717162471719901986113583318955895551818586217070992910413229560435622158509212070552565408470375654241366464142471122760677708416794843532755813364032056426249024872852396132402274457552909112531921068242503738346787265835547824143524885929534822876831831156011134918725324158269215380179377330287024579155387852795770071565752009841204818455382256089490191369160649337645288809698226290524235093311472634356899854422021030743412825112795665038137083749697071736786969336608545078444074688008292715470915580899581707362661887268064431066961585026953261790612558127506517401208443634325259251666370363376854153289816543524492880766669809206310744244818427742400084158528716868409243647235597013480941312715091953055981275312167006528985234716966322367696102592148382824324581074558630588982074868401623859070107867757204338070489140890039033916765246408886322095831583162946768323540106512573476267805031540496611380432149939197993686468132972764197238495558558358270120067321893472525290025090008931719165071017069545473567044779502817764319781360321241596064094070840357100847048167489298062024624736113563821053967282443681247037933238714973762811996853723531776233693048919628395853756298646016507027826085924005988649382629605758980330707428664643310220145779306211374490089103338548332529357958859418622865727812905848409530911880389339626373592514053729106448902464937241349164344578459011577162724394265456244249997674995399335930198308798953231134491960057260002939778733215091122867300544903976365979851479214280628282709124175829751130499072970769314218616598569243011775950787609536556806799184445802914366076223185475563253579050884402067695484164376721756693083326669142399146547672340032960229986575357589915191794871138429542368508413353307184619833990696424477324567737638249693336208946961599291064236538176013477282085187328910944740755931389079948273181309579359740413168611434551942934034781591485496017272947490866814798370759779774876420942592086401206141349271705487173688646433392152219187085364150967575985202585871406434437068732157220629078905600412668680040999295799708364575144120705308153324024247371006309388492548360197090320241873443252421288505743695022794881345191448422875360552817842521749528153232222233211280956618691592947717268296748554017044126270361022376334925273788589039981128100531615590816972111445721663641503369483499449039287754242835395708834403975959679868195775278348079048680928403694191756848437019541628298310998928608161313946561104056425488352597226541631499953380910112337082407534470976124080898850312886420956879362625182477957707874386237273768467815534306333919123704839945746780711645689007480588135580331227015563197514807934139540774561631398995402296649902284887117869232509139415635976887153902498312061348751498945327776330564757732116719113851888276400439271008251259722870924488262023335566284727366312082152114486804549531899630531847803944743553282832985512508753716999143502780680361761653414151875995482258502113595879655762395360003592104489354600061570143567311790543430798840236585847690089357514844148477012869797887417928273713288353553622562797675990006328590035974712224214115279895463723012517308591075699155615905822603694706531885508488564677616710281241658218483900482483399227980707674437104042607066524533606090967681594893876799853298588281204314205267463287853478138385510504180359474623530377456056417262669260428068129617171286523241080110829982015816721596264022068900029491760638505183605121659431199370467287215190863617940527629030117332903952837044910392714751903220965495033383870288364483331177820622260564294823627329189187176534834230400712680616580563288961923469640257924174358591476288219383803188709667645186221093018303019451890873795380732779069748436871948214965630942714875008509240086749127948282459806798593353995028878760512955180239833393376076469562692178907767495577099320767867858040855115055494303957832588296977745386154969196601887531873275888198800169403163855976307974878539399667891413906410822530684039043284390724601258172416166383003662028725780338441259418608452962969296397310109189026805907554773058824255031524442123445089906607855511986096268047643051447193835698445250223768168451219448857467690960570012796689641604036520854563569892845761329208991459528637670098844672545677604446459692235590566941613246986907040741893490098518654517059530636153862914068561581989315268611497321059302179307031878772622628202467691263150204793355645170695253522298071243772378141578160491290525851971809945708089088645744814766490337257481264715502600937543655423027971763380509624303615333449824683383283763400500923257795418400788813439617783499620134253845596640661344686441406423892723865129414875930682249352636037832317037151399289345385124221892542299872223799536933466562948292636091060288443814879723168680687021059691060775932488892239578220384346906018408503035766466215117257112903629724986528397470970949371896895309866332363170479546084796712289859385622789867327692966291367637410153827726767531053205571132714281286998558903022755694225468282525539740694849298235595035753516906682671942040315144724988413272689517056494888646228844835748750864526176743560153141796609689198788732445137934064615200505262596601141946335568044978332004321959685503258059828849206798983644971745051378580032126928240098810665141445028371006409991944106686041044241675445091206319475559906454806956670586612123031808258857186926450629998621242208910982806737799478652622432037910428001769409319253525487492725457976013539100083199881956946959572680066113685444837679464511164253362660733989735487905637436070497790193488607808809277504980378075129040228241722517691925073381060169214652936814823866378398923125240976237394036898040359962797215462425355979258689029366733760601749031510516101522670004803716113577955993636891384517206737426678642464897257615876662093825276242594582441281748063404977647196827185376013596056136690334721412672512099911141419593210341400614725366610714142912048511569937386380409674783901555125499930548251084229528865814656682670056209146413147338612000267630052351592659009569938324255333615411113627433936741291388540661808720721298814071380248890481957874679686212711750455885094956183687547717633679980206840250429368112219890533767961000709740461081309709632795303146825303900205955809755108257920897255644011555573723997462539390618802502401693255728621090436145424118421275612983377794831120262382780568704113435559105154498787051661656793231198780606267560064276575564600119397083170862664452485154860676008501435405768898945500846814903802539391826475754423151266523641770469969699130100634870464999302322822837905472599464975238224400029723774186132383988129379931026126275293037297068656758625609907404166258776792117394893088714451951722313146854003738958111472840696931298741030436765785759403490395291095927702765317173946819777698018684873419677727334895061264106779872771706383588203599590233424140185483743385253303892319804088393939320406290767731962698791746675924496138690803120804919881958964938209198799658831555261713054615032661219726002304838172907029630474439507246891214720076203318227409457624968050136589101179419503171773745771096029391950663701860186792593769113138007419996393727777364782841008539849497804059201359871255448030806182201206495853311634363423707912117406021923027653828720027054599723216666559157922327250154896135200908349419575305033396765233579095231948591505389290386467177466712673410379588128837077560273089514424489263062874009086623914538719489090481666976458870000209690850851329288047516683158159245774211198482575190720655475692781988743619137723205299557063147249282973560723054748812943555814306497785620770883588665908120474497102563327776547109604042756509358094722086672554259711942943639344097332345910037391822334466470922734711717194324013734898299849568345279184933617255443770792793056050438974961995618710243638049705824727339025636850751211618094702332102552102353122228815539222253591798000670217465754852315678807397107694562789219144798516603002212908310062385311657823831793614248201816927331016963357648918589285139610291818965071889752552906948476477505874070962992998184536197773340628472098642138920168669283443598262675525455524057392092608203285307138965362310306130886603536032831172398847009423911440713398034821254638179659536958653923181915235822152677636858886462815142438468004750153863201824907888395938648308120396143394484275820175571193234576387664597305801967938296627842881885484664718947083183032618966788738287116437250136497329796545961200495928415865699082760568066300646124640072297446632593254913008541354253838060382417517484778259220785113624445624058293789422364962355421760803968129133877454281197084282429164518096816722004988877180460654602273963609224467774424362798466096168141276529464012409105112566246530865261945544793731532773819331789271423654805043509385392683470719664825668855980888707802555116096400826518635975284378278851923904105582219563095148476362924840126413487942441730436804998028384556783830733358389534300492083939983504142106417633540996346987843549024299442792805809827909364985992506988711636720295629087771894024221233433154612122902361003879138783304417852453023279790277246738805734332399841973058891021882539527016411009933179777572219885260575480654001772961286900296970792282442479303569136372210406816791850859207910508691829432813057995825751447360865711210193333375110331896013854484437496739538803640168743374323498970889234031536089551045735802565051484381232336275606189925758524552272250577555889799693214772846730884451399793186866342500484151835685245154276060376539817335542312755808449728617820452595194170559336938924320238364003602949557660174760550825634778448882320105413339735792710882226254025986974425731216345468004998504231501634212491846597857575601120196306645527579580912396733153930986848953335463091544098707521086003907284065472059021746293324425227714050088710879510569091968646499070228116171012949933076465533691003016285411442245138729370438334236599466703744292014124543065791970267071473992678453588450155421131305021172266111181071108961231218901348272457095521406700044128672352238368841084913230188853994717609694321057909060264539739315170892027186244638320051468061202154035108544013232662252300103958384455593847549037465795876216652327810135203834638509288465413464525829460923112658627546827366777501481981745537342585066073909771873447959924936020843464256245390376910432889237059686900792183433873179941784414728552374689056812001000868422703065402000597036016392594225300525748432871932760778149686723962919586590826786441714082913404689276418941044569549832866734761716013931611001625176262180014172760699834147256024154569576551944214605870606754302465326727287840327755304246230143345572623825672273321543437021110887415701952747680930836457326490121092321031559709927110778786789116113858816430587939368178496337988333577457817800231825427524012500367232050898387797538822205675497309364029218048974134768468802248160247257946675028460405405912369035435551453428635833447829082191137757373386978716285044416408645824595665274437291048760191503095044493517224955533433747619523962349782135966565387504311878837237135062866728256559580567886623546723580269624840144110930642869199230679749037556112023728790855720800492381640281028380464576195240051891422603790399622409635764235202734232681257383586387465589709717891090300422429387627999436983186491029530995183706967839691260082036673542629483009892908510046882791542664974304086329027326264198511497527643613022722955323211974983773694827548450000125895367921817118705761613673697081835375336744058302739002942439152322376422337353642355668865901672446496290051195410553428295631336722405146615284419933770456675503762578467406287460470622040266744156970382370621444206519461918073851984021528469150685638162611148416348763563901150999075237643670465004534154076831019120644042134427055686525439755804049397301680113571032082430289839997370126033602136241183431143976377807373712367029846265649750482326046147774746429986664271091742039899867436373870607708679866412645880486075172513421446472418473929002381913349790810368743497640538983538081676455511495952731789572218854188811117264403517422593897914126999252732222464514712099661876751538152560450122306669797073305659252813840874933013037237314777667383379054800996270897659662386822625010723422791101430618316009928769577307868005494601801880099510392242273870003111920692642664078228501923003854188380477222528477293822405777660116183379691398414628531493074523685598539067538038075577842353685151721329346449990815516262716853523902425945132507132455721182020569931200164724670729572216650912408750448549894096830372411162015113451072103758066153152098301268865208126547167567213616593268382895957846658485711413322926132052278639062166051896046881395364246468422849399993064170249484086554022707745064308217366379143737885833851164861978926230822454793422908168746903714780895726711351966937292731106154630922783237519316445335019086342105583840569220951884609419690147404914340666380995703297455666060296411254116013937216070968528719468508448068559591143740212386636795955371483702407875050403328192950832495404076949192266991664562421113622727520981021327859326452795747853664059965143321198663546386077949485265926011545885474436618887728110467583187395132034648279514780022482390189879190537332301453352782435098301925879535371411420456089890166967025914146158808002171699143851300444509092866750496775168042724845138209851485097805234335078833507038921934586310870503646547543833330069303979548632397327922034946082989116712060368095422010668880726083071786746908311264031932979458388154165521053065605465259686700847488126613040327779230160252748193236326302143289401507692095933654891617459158297353490765567147213219965519502310576217810627411393313863119128969742129211599339046419842085893242336609667247479755051272729098790304857505905803743679982333485578265971505955125624647081840713186888416883704220753488460593189309968408675188812748323621675752348749493553080072668042016622795222623315989541769784641568816017064159105986038849913832621740274210663032548115918316540251485927988607006034865152048629817284417248398328815233141456127748303461956322869748017531468563099344990740661573498186448256106208604894407439040233988493368929791621657855133852529679708706076979817703867224440925877171335907186297400530040304042599422487294901459734131173772311054165943174620301549247064546903954726062819019303481274311180342832707964412711453090714341907821638624415508818632119443799449476730008949650148050065256802673964626270093225091376292425410198403920870725658879958168692095922688040124935060813237838213935802844813540996426691062666431062783376129797013577147163636696873516012288690343115709390398076680605910645979963253024341701809302258890589575818643049490524044815186064191507359619615305547433326746490770082061257446888612367074692410262636342294112000973967531097116478552763135437783048263637759469018060252593203101273549643991572841564250091271730050990973577393018227854900689233794106384261920300947390632052697008404414515277902016681071522926555211633066838349127639122441045159401972263954263789847056937705403221641351648946067016360817136223341118602196406524430218081797613035902371038635396386701402853683658808472871413040385301518413268876834588241204886141238439139331087537415105554929920681323833539779629734387525614164928258313698428183188376933565458273314175658260434446735242079507308112472315730184459058679085831823609915230701498241712936089348088459925426877557043375020095235760342987494978764791026245927555265388923296076428098749592411317267826384722465854787982187384373868495354901287041033482093470265363647767336349550661513445284947680954351276053744023306602593058823003261072005478879728725598206969573590029622707283019993097008525525365623003660623824020502297087154996400793138063689098529099910168246373528567567729594124376097171102243249220154526766525413639619355738606422823084714789733990441312821303881491896085970550636730295172817405861536719677320014928011128258387266755016099095986439017938760946168795147121129242890114941365529326387741350496381429063357446780829475025874279046108827526925712245218100697354493029000223666735054387459697326308759720148958055376793369543474693839846113040240452228240094329879012297090848628787729982849359674292091575241618986709076770395653074652725273499320486461116380970411624990112164019053303367084617810034785634937454837374475988087275654841527667327373341836454352844500472704373682208914834688706336659383434950362050296076711945768541066512451158824891839714132087289790282650878718601798915595130985095796848739600326758201661145920775135552301363491062045018531897942743045746300009507967402457328211242606840795651446759430050911586343348918138503138989644906391133718059473066504336523101398298722425380221922164795993461108409354220895601929234340778517657397963951900900620789701250339750910874011682521956441814172502105740586454151074477129634618148540920490240401536617519032598609682761705255420523589868138594112316740993509853324935617654985156298945223974093290541784578577539088224703854488308259012606738076654844792759708159481777389984685778736259670011115742190408927378862894133106854381600723983691224876514423533538304162648212789011409719649161752807034362238342720889427115537169277940873032067835119844038438261461900286016739350454935924521915352478442465969673431192833204239363075806518128958965402949848018858732923858007321714500296313218149028083853497755105519916619641308708304002003307451776849814696626344864872953226282097085163525489257668321950024680660863170100042897253193410022754061111257432922054103366061297696428200957854682600732587461713137254948877600040095768888543632446257983069856779547908273605168409716676887577430829783742115127306425392334985565941489294679899643979633967770565290798420926310663730476803033315392342660158971612709462772504461922307246870573160404930925255888924422893347672714132083789467635118457424058242408421235001458221889434066303444181984319491623523000122887178036179304835937781143450955734035613777778440075863670750761978481430401285153976285684613984879708160228830871871017647676210960900609976498353964205772597240908996277182437212335436619266452178302200722703131272043483516362555778919029378266253751225251003556523830831244976137688451012695005588059782963333998828696132320872334893851588136212545703278872663598873956582191791118954363330180945476087008075722011912185165644705889548490744785271567406545856639852057597398930550102827995491531683108851931891703301725596116140313147321366680181871620259371394692611732702348942797263301560220534465007448942403757947987455493856050025173840822410628156485434976936668023464144189193117911011568623595935347086945884437817858066566076942086017896872292237818397343361110670546938727946360542295279508236761888274634103940190749475115826487105368081089895361675771411676493189492723831490039792208657542541361237618751121099348448644649373172358789114636377351093279485402774927078476274291388476950584066505195071097208423347898193172331543141352411714772902906672066919390469976793862155237410442495666201163157245259013706709121113989613495368376095103810170232630109574707818579055749787178777802161304783559186911392743283626010632976952027377304981936753553726322445463159965336939745027967919596953647820261013358238804972508641015214817787908869697394864251724842972487462219799982106813511963792979256171551969843821216410962778075845069149059600722963308063416372925541910510615838721694988581515483840314860331136963940022267701424131482752466355250353186344718715929848771045969986472898841278478463125046571433696616509669274856024799353793206909533531140982901601893242157554442533818700340317229888716688406135197610855282496552241270193430386647069279108990863634038227695817305176702757132859421468078192761364634685009177755325638334707386067289104593048897630042783201056576349989392809380277379445783423183924727415070853660175150882346771878976941220155691730282327097587904812178318093368351058545664722847749765102439334807284037549885777471307178537130596342259441354583212309040557336314933191801241251063249565385857676478215358581149524128639926268213193645276240709012494270457954372816611976967616347795576675862698728886150235636807138267516409219059247778710804238226747975669179818083638059773231958105221575605043192039688437625023207875328247351345899160214546572404354100913545768248088974134511566900051994500824701745594011572479158228263507186822023800543735334221721857132555063906377831790061351941745221080132328164700838244592127001526316745997324492148651882130491533865869109531762998662391959219730450483066887210037578192826960670653570798842720051684649868522412831687308259084868355471116586498254795776956738178637770667807765318446470609276950381290648395499542744882123259591756377492712390461422009157508030476890716041315626025862273632081655566818836929602118013793881084445314377022651400470040019057252790521194035265754796617381481713250724460835221925350452028401883495321978371942490669273258858804194994065416569808732213079336140751342839221932970564837642512910785865996497404529369605121285761535882040490064367139901513866808300777195274845561081167127614287295138552210989955661612866394795700366637819171810288832929996633294038615607041353198922582619386053197619439940898702530298802328836361924225035031524713364704896265463991387354839230074412960798020830537644206565741520225684858738291099601824262317431110704701246337119045262230301682727557153603312968777233576152126989240614799435871539139503567870276655995259879319738536741703020831339542875916392397003939480375912888223875348269026213414545495037625913672341739313933853463532494194082832763752603778327521781160097223935864163582132018334029932724014465476125339084862348601199679918045968138864488193200153866486292849701067234023019438382631548424229415294631407460543493719728051597091000552675141043117789275349934670388721452347936844954857080006269233012536898142787356245389154257395579022228718207898783082083023059600513181531806201546623257115914262838137468707395083391192355348718366396080683718300545756080143420337410459443604298745602125642568033801352299595245227685092062361107188725142472465947990577257490091988973225767928952200411012101002888195982156896196777555959771848153164187783765113643410959430768180316552569925152155715000925226179432717819530118684150843237444554115611125218514573388974037267943790738410473843067288542082923668613845742645518440076492161231581658574228174774715853010443945580658535503206472975801699326383248910350429087991719920369107138423353280175879063928153290069233613564531485530611000566278757016485992632212056716763257206157177175322325505512054578433807995288450503860582760674801534313029323284850968267119936904747479028841593216157923194056297981141823172730668887537161528736140929334921050612012402140109594771019506031064151299654002932790025487952312206776476567275006483829243211621333403411410670699714391665307615872452483660160450511517864965017131509719707244489485382267683646781803133204506275815038175787121135222726137034554316026648907786493076573179689991946499317822241221754527353283888361216467849745172672777776721868085920011842741355477119385165204351519285640374987158004936910452541046025563314864232897758370610900897112542705305779856006606473669236057254507694513384543021613901348321129193177651726383455725179104885374207061665633319791330911718070424492930501200948378116370955068447747350386340666241251040408767004560392120301555000697898884059903141631339000906995840952535080319749073219694530839946097509731586878558630581645462448137033209485134347716885875258633086837464877041432062656422536958658086305311197035333279186758855901469857361320262613139311470418709566910754367728008861282128111288181115684097383452323118113108902325052882612728271948086581536105393614007977624809491537820416036245931449298514885517043075748693328316720252220425052514281445099615436603909043843034541122380203446529893311988294065502463077655070287791734136099807052243193948094358248751069286964027528446720848148379461527789526994043537273150540186930936878257909820427165721841360758170462115430355349048848442098328265378683723883103464356879967937786411179428449685981189226695248689364425369990344101328288638423595557335207599775146853623712736836845135081996204726299836132145772411625141709092180223467585576804750737771407423849384550865293863417768138248303819535870180088824095777127861138801532664152445612443059851876865051206076394762241396940367203050227672709439498861076772589360706311734702524363196278626054211391774929821548943205870074037762915533720346491787878502107524227068598528744161278481826002148342499643023802112949861481922023801330499613644733079075057050758576594650601849820900748446791832988725346126581679692061417948542464975205552127560448304907926731964101857430950688179002664462959837817168026127419236832782336750334017073829774323591573782083281130801896940771695633071061629377471922768223301890061620203093726756093410279835245375077371797831519929061317783763721902704613089786757117956958009450503805455386827705763278416624068679785359502564749981229786078659813442329560557387785599367969026844576165144532988469243250637234672097613946733923128214662054535509014707340934058494666023824784102172833385703539098313629770817617928424282587924723927886892617937667787217409869464849961497742019720547570426663797083651852052569800917895178994302259666510326785176332659144842874391728771134313250329090577093164110041012454949037561126710142135244499107964861612165851050955461313466628293617060927024529840869883114396671078367983378666304535085493496086846311426030884539959116871325688936441085801366432738715898435632792529693980899067673118681373608871619564792324881960217479277166795563928272325081447009453037389602407623245072441503406072898157773996557220396908285117327224337995329843754574810641163778063743998249343808815804208802004509743597459183998342494612624653048789701806824462009163421275931795780374107833634288490343298216744415503203106059920140620371756240261544362109206916360695933700447616367418519386126669049696533444130895200978995181126528024891141299038934147743660791430658061368269075418328953229427942542029678712125959381087586958313886858533359381424156175098047671962509578860654324362021668738331785378013740126386929836253364315125348391961331149595653453722782558138208198674546583869209128318410760580821940516532251573933699212464819009589694438646969651057574016204733362366005538333826879575862482763288645425533070596410023221557376500484095969317155939711545922119339458596233298034953748381339387763627481323650459195313581000824763081591538481488608460620030746893893241877648962986036233276320942265565207704447260116935966829722540328680788405784335293082976414868477629877819760429436804530741157166037209695070008256928328407122192861238301824582625058714070364545125735556259088805854866638719303513090526370338424923963820035272200889455422395494126677688853044046283288415327052817026209726515249324800087048150830185756944517306132386735159194349796218479065378127934747407306943654619464317478529390540163731993422895793269370209460325120117060068699190218981469158480755682596025231471729662077582996032232976429483225903053529259677965131960172182685077319274310624507908859188049711915498033393905217896160405482219644416663470252992962189813259494819684620775084844467765985906645760513103041910617384268650128527953819823106833179389541849448456450507058789759600573040403641228057187561199062672662789808163669932575737756156304488921666698108553095329863266115040045918468212356301526027597577828017762829617457946585958413833370740009556682943515402985528480401079444673727606737079192587979838131598815991919790964286548865619749031603760802451438784094433828231386312070398289194136751645554502886203536451849470785753371059223290168154982650304233622893838888778372558149206789362699178473876939407134122139246110452045771289887652485433023437491042089188061764011627138604650126140523811695215059227121501339319138742694357594894313680334387597198556197693417445879085722738130344475851611772578249077173924658689780800701508197100667334038257786025057086002631232556252907254594162155125338472308100149953645446184640108907089272293662667899892552416072718676411997630051271751880563118616033234365250737044641194593808350168210751510344454349807753439433782438451388070417329220429049102723834959511329451677984149662227318360396922566475513135779900455586113619930669775592698690537189718152551049027839171349742151140181331452181897645010461002840974988398060418430844993937119553444880793319258078538517851063430184613318528653788530502788308398269018105432097254694981387957563938506631208672127260013299210333603499960489391642778094024715694700535797544036219601830853792348909211147382563857328103950321878391190476297081991312414129819359193650929731015540138968382049977864989852965257443612730395507351854068181428827324406016330769254448874230825949042741129582973338936829587193732757937382766776545202908669038506698002009157691276135337573540169856914065548921228826359552194726613762104791020808060558874455906982014987677806482428815509697914277058185043865183969161118489263080707772250701811773510628895055647950974197419932165971125200093474089175954137666857853872857569869113283955736469534216003442389217167790344140364811008761404603816116858263354226081190283963882715710037705265293447373792918098425125825729866268467995192439459955510044962111591037172047448960418718575160898390192117742787395641483619617503709853480786789334484455202776183596259279550063135021047409547148074849388680003457439751800206534086669320511047555615944866645370078780033113715281804974079521676587969549118668323583070295127379422862699610452729570439291707060448133056381882200747544244646640274557174174288850457086956285087524435577824436973849506242384700292896165341713673182326091079995325544162344054029983193403159182496254917173903917663511771829164809145199403554224921962972988360217151111851324719915054422349407295014669077292086111355432405012077204634777278493705012440149033575967592240591296619472525374538777531440276478726110050376677863476786929420360213832353817893884252136628166990850730401731609805196899772978659616780197982142875017749570741950506283382007409768017179726516896277478203402825272100499021361590122743334549257291822311128487792030560575302636605960831929480480935770109644958757584781978079500940574347723079736817420765393885220932995313578810758287470402145353783175405472838101739663538131185047659712128967221870378661578710608374375654225816467085011523945656027125246250882114328507476040577791534726337961401653040102991833212738592496916063473424130491434356615017387259479249659126551686821911967176764219674029467931760430983788139241453170907393322518774776751460825241237143628447876458711863676579355835010667189459558619348448703088382471625449953578867724081137022711547943937037493360536267326942888783869981647138552557402059409479055016157832581141314957574495039090173443190843897289325892330942182850730416167516438601280852452570929150404380876881752548019039568958520835038941060824597640612913723210324778363996891082909386768122845403485860076377715025542078514107785615608886780778907969355287868290164615256568290764175901500448088943639296593211783212866883365397760325658029056359276426581713070164801368656138970470190549180218381402297443870292386017667880054574986536118894900679375963167964739188336689109373859735591123816320144596543666059993028977019132196774127300134837022531861871798677907713124448924870567388640849352426394269237762992892026893442369455020670876093522535748429829800861290223743166287695404269536092813938545763497487435705927389246910873989890729100795234088529225115090528874200463150722673223331323626786013823691193439128553007504780124702255350745151946994156412350265123506412732629889727306789925147013321378964193749526573317645313337600527538463454762928074580499800442182649285289159950009520724754331421680227409669276692714329537697391400426366731150385706468261902047095968785847547701383643071575882518376458674366133833475868369386736720840934993289863896301171126241352423025733763951120223208377104435507026397416338769466091194026414639967665211968896197418040053135674449188002642115858173328458911989753176506555525443113280762220321456255788113561214998606960533812092757530435795500077712754886740570004960831272202100072561830984956431673869298201670951841690776474294981009579432184445858943915163770877853741828225810812979700013520128561962961898723940248002074899162971521702709578237926839638556485388544321047264740890779901291590613008435117614400241263008781421495768404563054022813906676763031052713027736985801603031426577962911614098490916199930808157320118974753175535104645728265003107324566049365127746407548123480190049644858242432281612372337568422893531143708217834748739512792659499485486646903425378610192951318816408779417717718733871268656240790409073587087268071916153574962864476737027960782876527495728211992081414267269090178919149883471837907235834781541898169255992834711741097289855049547900813424205323305375561858780574472951315645021822572681824375628866509288752983568689453625439716258301293449026374137870297240918544169200326796468340782328697598637560296462613333293407595671646887250761311944905619232252404333407536476740013801461007775025196278753757666213997920340855377512442986890001075429073921664832822681383283562827483381329048641244168445972391502268315098406982033439805857896572878841107019202860392974155749240449900423557532059876281555175442514037269573257697707675672489397382018458316013096330784438640685777163817810382624951103902019369195830494297443215242246534603946699665376524666916536566363696685070923653092745384110474263619894898757900440807297100354370675099599988928324446080681000907867523337240617376706306330957699739184753599964127597842667827382302716872161626648337008242139363607876869207898302293649718580134660372528033054578242561071067373833110618450276340766258662030061578102152302060234638737350031240740548108026335223014906331641915712539151051480586311608053094498727559989151481372565085222135989286489339276132502543143351206868132829591371463458222276210540034770011235470413407879736529518040754674462037859904388956000740194024640568900263447555802041237260440914827585194895620636238726030002861720047011943368355033211551033036621576288047742924692106774615454192736446815463443395351522436734258766310359038140008269176372350272676855616037119299341741807632257001742683760132656650796996487353890586865306216038364345111839322817924447604276480771336840693242991254464501943399818997962739519082130078368392726675212495402955050918994810359037381465075669218967074653913566978768352270108045990253924642961154055144925632809259130258920989030321885492655511228095813551544342120715888385470048910089269870348406851806594413572247363431018575144611319981733643998348978849565905523687482001005511710940162570383404089289843013691814448385264681734339141503833408330822389289234631606556787837327670098815348226623186697187184138956929143675277283792543875468605915188219667039700643452675649293726028737279435838671815931915475196108541202726818995830138101965670472691593277997660303225858207798178276162632942222113812443485779045290536798930750076106799430854929158005723491866499628950061011626535545777512446525772357183211654641784928297974125734403141106698294824859131207953644717197678748761906315636468328590421301855194824295214150924000159222758192851519674280814578640843910310182450577904387600887307555278199412748716605907320015522694209611519157031043284904223982614231793144549377709455929705200171591898174728204598911945940263753589510676046938552092261280319087424998718874884768254040204556932234979021090625366153309459791471343742002422068568946397733571588576932720300741645729149719180666535426965630210948278046681695160142120299121299484877853253539335301156227867144249466023689451943981192646207209639663070694500451091445117774202087253482353031145280746580744633995564562021559904579436005348491944652118781698456538484363454864157460191004318995752970364338987487321743570581429310056747946456644174787162873560146623028312453354719010823515412802645728118830709187460860784456982761082564011157275908832589204177702239153726642570594204244433930952786169334510089518876703473779507961725226199686284140125279451929422391237373474084682244992567770987236299834373836217577860295295883749927710641822989612366974884034332386156824280058469029628321796739912675233859649988789984130520314359691912313819137356060744241925889137941632753720503338853925518115574292673525723671463920720357916936011834686366908760273052391097693551150078182832544430292592099633690696201710356496933963501785325517139826833873050405254591452759392208084621955822629879529518951357097685657460346570569722766332589742647709028714896222181340953030965448337459490180139177546591499581755576053527101632586714890931201557335377586263670338079886585842047067732543777496179949269611154239963277404426720702059716370138925347026186560241845022181304669907219989749477174826869600558712076185672699652629586259629602151905011697396873234737127187812617730578396229213810933841483032282863137267414229065024980077786078676804933928397630796479113969406860592420300777656715809478954290858290101763831669206027947894799502362475330280683916839454071621436377546671376982076387737191471715664707025573589582761827345647457979252724858306153229840621997303539039653505620346356179002883927928923381584571335215742438820706577411243567794252283652570598607378129535181479733574847010052842694224103744874219431990012169704898483633597483855987033566434962683234860138529496353236983654917171462553971111835027064635765629808624954444940433465662301821327215019976664315977327551370325237398983243141509105166138183502302447734680921488259847095715388368816445129764536932804217842557789475775544708355377798835722867617040050191483118006607320012589121566421854855221238850925019815165240935160082993740197687708064534550287193347619000123971634213162582761084205355037267790034648187585669697338184471488140374793954338507512871776832376707231582043911027904447683875256018288447334249594852756303543279611836006341632122593896579358016329305323688150725194909509383508004883464080908659011504409837260032105354631725843877348148571117684610501161929130760558308117262727984643498728906973249481593471059329279916356018570521515204584837677592153465170426687607995680390363583584143695293252724721078931650238960575460504198736405753628309191683049040035825864893424357074177256832258410853728990319718689327608128963568350310972258864920232263472533499787269091961279583765532601519401174761203013853405599684894208112983824999772840920649378800275862660326278412243508882558033442830328080509981879406695389621758677019875232371560480950607562993140492980892926941255490964443019537002844637059831630903021196274702063563896770247578936987300322611804811184737475689900589197555700923338298818282009948197121607083404721923747812935532335203035764024244747801512606191338290645799452452995496289145743844302960060407524708158334310014229519849020454245328179964323857835476377075065939688033266737674806271485807453944058229063260503213193291958060186788793260293255482283641393223492411901867918935789247375807976511609473096504549360886464812480998419050622578283179413459245912998264706901758163858578401441077981331038643268111413647660636075946381064597522373920328696064249511249466555526733412162990680176910739198309013001855557609500415484303108992590968727870074541640481125508660018900250686617261507667546511732388501772410178760633136355892137294945697231698205029918422353484930044268232931682237040598056660864819266879365563735587223902321892685707200887643623704619926464527952462323225520498181483249389692689635013714301632572375612872111459295031266676450124746049872174317916013795950358108951272232967969998573502780986026807393983846408336616539363285482752459606335467836228833847248310822109669250887836681659863725155353788048859572140778979009164786669137280268562699628790177113606296536270929698107827096284743739623755676063713757569969625900090143588361742663759381153974898456397247247123732303291158386528341232170393718341712991008020484170548780387910959668438883915631967689525789221272207917763327519651073483771018175142343897669011529022278981535221811746437786736786354705726090787849045109436232822162521330983939106623534263786549552306948023863741049734022023010104661302750458249622517069686699901899015581512303987268521156486921252756830756367428527834283116168456828556235881450688610573271356588096022639202470677658653046865655950459588501898469761561974638392493585684060264777919661249992566142320246922716513381327492119337100906402877689795770658746931771767082035062144704611687305965480759057410435719482431817967635626137464499195209032157149702261594384542036992912808326210979767913999816599464175210520866637844055540074035112724300241184999893713374310744824690510172122086194884714116817299752618400594832885725338615529178887357672440200597720714544886826518229467161843118541926968517805928063573072200320123185483993589030063788993596460502069299471168576751439217916391609068257679678886400972670224500257954802452521841495578279938557990589451250812260873436807999292914221257723398820000628838590537887848226337429939330714942668308977168534830554139723814158700284723598713649073176391909097473832922986706294567424232158251668241620974733075926704597976657184864969072524519469272699640555990394945494257857059976830562022598524506860806757730085383373710266732226058240446756562619057724088813736117608896598263164264043654463495950864145067725951244732707573256422399890173275157007329818322744971567315173638056223264906747172707444509116920933781502057951418772258526962892465349995798527054847616769036281299544488992525924850063611354488287529975803868396549336957694839133866344348105005530546918410852868979375191632815323396281329232773404568320098015600842439432915053640811559762906066288721785016191035070978884170790269026578557749559516999703213058375792432974155729134948993453779343186519487419573569833823322792100979864002263252428434765073119822625137033195204728164323750902269071588498210611322423248443178326190985094167766339381565105304915534014733609600470514893810446741416625126922071093646019105862624656232004004681375633772496486720532000013225835051518211863970302848984220638078517074187732070661635061790606778038280044560418052431622405834614232706862139533078732853160101433433461559062978397292584641488915363079505123981004195263506200922972461187857711261954622906321125405949393993129537692114538750244505137166737080891792498830923140328392089635915466799632416005962290901694693847598225859905705656355851562081543214700005501792391536389086752992064960132637390574261922741922424953882565229707818155508478043117558959053230051582191612809448636327531891237979402141864536819012503655544807671153155354404661015236097727227019371218014573646830239989423879486697093729896333495481555624353691898679907890734097094354009206060472697504336824529633953048052780204711957819889645672899265557252590504537585316312028279034613689165143856480060487160139184970848899568719654705800696757853894811939696339604815151855629616932105895121669045313824820380293842835091539093846481643172654704112113141588044412442383152500598143018430434600016976114163033214048527762728738608114669933940777822722895564393549962599868895511130072868690287895977555795608863069183868046543327345357761160923162746550154908821629626198358967825121582595397158927534556449620589368534004090025940501327117603415833783269087100472799016326877495026388977864805123490770779035498004593854227150709262066985075557969534799962847997088680246952203132197823589135543423352961436801654279002422981038196829930291880808767023071091910789917225115561338761447280260166962152147848341857107146653313342100880098823332580853623853850254194824297596285140083426411379768617128210363223193638469737116729782402221938976213260213127800322266168008566974983162376919954465678826617830175096142497439338165750279377538772451636622603115653370929780121211363350674704422911350930343678181465404351460748460019558580276041981957250488837126536718441628243150078674301777571508100906006617447387171990335526137319777096270088043159973202064718729900577372894639483905089871079735712058999994124211979183599758509971904890861923349446490919221610552600530196783760816910804560803331982461839603266342429472337374904053564582005453476675920844273789521173845851279734567152607323170280823052008595015371826222884335757424057311828299958333952192359663900267197214194018072764518247295844541789391848346053730765178827444710136043598648990134387775746303167071191149295407735377964004453745590626197637956126910877317332081182031730371732110267900854041010637360764022084631569475815374985252881428576369754743516542464723765689123539373116047990708213936657068021744194833406938328880541626254444665103217280180104454763664257325714688519791182097635960929040450426521113739056601855791456357980691834326155138205705781436226300906342744048236344708313566071753102344552985358131597419762583585959625878425890508784047045187055204770679816073632639719825642475437674552168445059452535464638237077754329310339873557787411034784080281337910312172894036088064227944330986342238705781444715542820159017080487315632756177446737626581680132994069316833059618358777783777095092384206864726988995174031177026044950168084295215727365140809977394011917738728059973834327259205500550234859150527306823611571987816323167459508651122947519135548950005099530427826439947322251724790847005115598871369494355879370266093911704098140904151754653559054914751457713324355250273636941701628371581977554026949233333050747124965606438033687764279184959330987169403246080503728061758974255033263553459020207873388968297835118109423978719892158606429533467472681820726947876971513525183679426323839536661769804686769450214049209107884403355928033795703084510006421066791108428031176201394039546953032620156223895537366365102415909085808300606454008607082930485756980663001626362304969579328389656779360001437999635030565334026221693896496919120401484957742636547495989060082049375414421818306348728253278291825878921944083648701203093611250310714549257426479240478543366939086493250384234113399271969601672687509298110638894607737611443437354290745526171355013178869287170831721458292173333770362406971045631262958067903430069547720119745091353282954596194491556795316720109143532642532218237574533743382148029917731014753647855242670043769382644735885653966974504524866314873609779608366865781164754406527038251394290088783020666444325631840465949701019822033522572029598842494736129995157420951826195717248040045220528851427609873930858704374836794497025902838403518395354831676842937778419235233407481694483240736142053382713487296102343861437021267639625792566816595289388861365923377061218736136110574794835969948746392870996354557227381598231850577149639369004747968191924228576417349587675890274007162835338584259110483473108287073289339517594423958922902060442259839696739505108124373032395394932220217053921154958829951703528797500511973869451452121628963008174605002687026471290891095328548231394447322900529096095234125826668408101155531944089082593829815685944211774710235557817150102656735147917123256097714219188517247333546516852575383221599072726129412722571059076560673229328106825364654598264403003298024786254503103200009691956961395282835640536984099298443755637077554237916490714224914076835815280152449046003403589244369249193492463116114441022059421110477905553801119199124140028507322486832131261350938654686330235540939227327335491229335512760650422404754842360682068860940474702944680809464703928168928893242583711546231170193816574291422820980065761923722132447231026705943373863763033034534307877824873303857733086881689652809886716178932743964652968751155197658722579324440490287823633439190583537670127136848294730958280049311735785176323558630239619173725021500054001444052865262794718807058293718304136331492395420664936971259690974312414553419017715380841738095510866778717835151394480686213427387227634351733971996801152614549534234624786442245802346366060123597109486149124975791167554182588675385128354551796690513737487730029417074482448220063182202432338927257722929812560311138359177017283279013549103529406490982898858915468574789687119134844022107733889968742967686816813265110329320755768179541415722407696657143969505916651406144827871549810054984225943777252388061288163892528974317093770810171897940044411456316456241096973450935636516340113680895185950622311244284228545243017280739142465925614765487165718443806821206481289678909113416119503428261125182537145707021004433573366434488883371053611936357793560850984026777170261195934097734824155743845809438727636455115416129899050641420769920868875325029017328390342257004594132926655119338107365453046744440042085322216777306120193027410177209814277526769075656579307223454739808678109239970151889526042347883426055932712576015082094261914517343222138476494071717037331751280950619844886152621102123127771407522590653545342174310752153562315559386259306678714168897153326216455831851462915495707961786509002525058466472370342814085997391697439568223080593377698292301839355242231273794180463354687980361062413460805586108942485218052230163312689558394931777863519134868379910958209391692033140342723524695568095565608611131722133183261970775027349719968718101386107587087014926040494386137904397194646297943133343347503658742880308101933821657719440485318871931524276842157596221808347626363805064475967185560071640186909280703103785484483212108873252078809267104667446365460133156579496183465774133710249637439675179758768092040798286012763616836745429407947553316995618143531308926890234437539216205147508386260715372984222054606574113655419274421473330822663835542937644727347984435868994026150234272586357876714728787249474531626301960692309138256207681185884570032898465229118878704293090477661526872682972283274606226317973196465528789951259738391595026020462661788873869008273822478057672594284831839708912836029400455059159426090218485611730214999511463468578879610369006095822326912424592083213959248769681456890713431312340539188646046486237098592103228273817250203739062646811303191007588556274824428959419956653222646371680508599244211551799078907723833012611746324773237582203643374041458961467033141077482431313904396224242745486594499031525866058861760980035354471045780282698422051802735500612091072132732856553009061872859669758048099462953164571858258427739422731803783951882356576432306415992172372863290332572094755078311482970514670314642120049290557708849756781385260736012977189547926218745266550659242998631324038066556539330387966825721221818779305658008486006699524513678971567424722812353608549037498800549152281376249169564911564816568760662617326315067066555709847786985153113796549671829445285972887081615584523774210097526069585758945258689056208656631569532649532005846669238693061426670224092540560739481027445722032878859158392774123819947576650046091888795715483330817581272139401110443992798381651782728003401284912830526540876182088842071772502687696264806561855761771454326778925842973096268008584456197253734209415216598045892702575849835626943855683106825839677052314756409767240995117992327601934882628555813119561400694384572554307036545651713580265183282316431898678022624537305867828412061827910082543439096770111938860435249671781545938961931594870515880268241799498732559087661200643652449360165246444890959512670909905802970762950462867957879952585114679336516188668756229164471723905398743263408907235802720197665733240164883024471996934554647772384763703110425799096174866361567278671773377592674911085213877045008787313808107048193952289710238541916814064877040178340363098341588338916310955356232099061529716969815255486877453466324288230185966645546394512022365593507327305816424063519244906341044992096686611899004930810938307328492369712211281041980971497549277293744212377357157595427877010217412583887322451567362313317844587777702534773473729984010882179429080901943493649017467581264412467402040655514744138632361007936342916285902739755675614404175320082083288155536806656748716559014107590310686153308463986585891934646603308259642923819295830113128422338536422272266064967942365448331476614000032726341659606084073342839622019704857640279766962106373722677650982820995389826636901076571049452506485005176532182788941384678942088841615872866739792052275778218831795166216534564063036768525113611123958543181928625220853053031771955956039894405324467765492456565223936231869460531048460931492893935265604932183068560786124039466638638800053500162929632600847673836113299419150823943050028993742900872527805727102843734931020322595211397473675509210623067469924807814362688214951530030201902239144840615038807848598476018430000824226957607229324155211848073676353992918581672435003498098513118774444162221262794427747248190571103994667578973611326900044915393416885606672079591998320955103373368842720144657340605676887584387996991266669155446046924028930375565942142591342535185692687798056742810133153938224410869700334267041338504842474150111843194447384782987507846495946831029498043229497439315248441768224848217919253621046086760445359157474141532111905924861921490485058649972934548878381984080188777211861723232344488814682300159679712331038924895326896612973266242113087180528529352054982698144022258744976522575175621977232805927716934487060663282259161187569391778886748868997131362711775386437643586547706280200169735154006604040413996744836113113996763894062426973233116194081992950333251446151886815441808226556426997615123620814637631193679608525818478051257076524974769424547857470882021102420928006327513764914095417338462136727936160043912948034380127158610567689545344425328330710132912565144784340613374006303083323527464485638100192482997090370121648284759642958778597371069586300441627941545673942057383267940234818802454093548329048301982246967644143510697792857098698408934168638970755104338946159785127587044414920491060772573757550616750392772038073820714927757258784709361126281643408545604218478087514411581411607023502022415178168742943661007505335003537734650229785902901509471201837798792976114430010212850127542330849288171280533221778281594634092198577565261347300623282018617776803587795542413623851309313128996176725766846414289360832389853237737233615436054368786413115403416657869787519167553906142629211426536933162382901957164065650069247471958062182628210287954614024202813910686242592042689540082168052122194723401818437658663677890239088071054927493574801880518760005870413080991287053730047990666493194058106030614377087827784278916966089974630344783075495583045441807412768917293239778936799584993914588913642652057762725987395532515713997890625503066354707287822928642663409692300788024480049765092839895678220729736390647686607918879665999654898929675161912853100286424755468211117757301840388136001609102195607462101783418331826508592194778723616259216644279735715233119155885702252596027967382776441481498872270843980935258761201550247594606805430854068630129989142830142157075145344943408628254914945022921580004691242190179792372348417711152187228151993730644687972724863341579360236087256579258667682642740038768988841496326651585332234261106794362622886597354195174016579080719520727622450601970901429138466423756760642694717165916279528913252829447097114321528528580843454836492133548569361515517271908783345644485287995454353008408682806348145112653265320723445870249628774955545215357505805828697377432550243587010510056595320584702009329708420390562394987189740650266570932907349335348468455698621050588979838012324714660680965535172787550147261768909911135810321551847362665274510961439302517230376588177439873923641278999882380211250571007955465621194548131855168342658001122112024080216630882679482309083154126135511707914312250823942622622677208394761177997035787757800204129006832885254509497414669111124529590148768930222354628092333329280563197700158946823907672478158024089694732376723194551102978495478626416508864659965540872363301678480293186655110936390211788641755185078810136606249116391757755969372769803698621759248678735682012655626220135209305311849153424451329784168647749805930746301660411784558464283225641226351254183312071227406474172268062575665273427463489155791086046643466597706444469076033407539121926574922685564957702424707057026267770981606171130863479787377775740446464288699989941157825795699592060994774261034227654054880903891739886438050776431702828778347139455661115283401548455243696832040205275042721067240759368443972010146999745317570424629526352414325787881420280108119830085361978423416780281936357426968738732051148197815223661377809776881284439729702850271600818557324748292418042664068058476798554702940614422805370841679132408008337707648920584957930406657944673465079172256164244144267722502565185913353136530153137178021317766982651387288369555950237817703675414228541130769826438164982305289661021980118705291523982579966392836407453682525914207896937576635817516182839242138715168325588265817202540639451231707778902179962487164017367437270290788076204696642654258958309405691394261884494029699584540797619485427294491950492031258423370957667530081118095841828795355358148339430536796635952779448219997606245822534407972979674385160240719982891772400953548175877385447824078318834795090353312673532945337216959982988970345076019785871531192228826091607562696095567677462281842554419172481440664563198208689759312317897696695078927142505906016285942672846374881304928245110092371124417104024498867267452666050795164085657272792817359690074400872287180763599529530373776219261925174566388830166018008489496344630147490235520438441648387350567125544113452947498574078461951627206702430865770084413088883145151806996815675795187416953603207892042878312241890600345042713425002686158967152447114081912520604305318833630210467866241696799448001391547436926883397626512934925730059865465176103503935983258175307270977415969565355654120772845994001076588473970807756564267564017400406569978246092558705669056046464922810052286811354150449992255933707961567306238562866330572085212089713242477483250887645774952272333725478947197123188244213976476789628205021244556432995274967880448703320602628053185067865907200568902367439262421260967737902689035997946772915525683158962586573052362967955165443374256166915733931696612586083312491514506812139487247609869755252723034332946269195978596685565849029057104362960161244194383782915561116857798792853419791454941434322575983961010683302927258714297496063221415833698253444835722933401095651404021364450468790993516900253106692587598686373339045313275867344025004680643859174128540700657266728892346021812533332507699829323983737751401684256101751363351510602806447666007912822702144036483167148260975344103811112702231859099216248632567527699315130410935476214066346690984255781623132179816980498516620210015036213449493861374430099051767980949303365597219670071527975867596850472371487843687995847846969219152399473433504994726478714480644806550249935532586191405993547251397465238892925419652874938081931080237135038638687132005653168590177066520319868436803262898368541061790088764435706984758214893782587220528232297817238933332903127837605260749684769379851472410581378005991049931056787736080454958958808854869319117068246996813291390581278697445298909675200737156622071758482429684130682015908660167717427012688539500019470506762499320226555877499388322091618831449373024981441740371093795828481432875650089848739006428141050347874362256080317828556955038570817542247221133790825604435835031850433007107743356010775105336584094392148112652720157666566570537880788146501034456090915247405182042692020538638042839621759331549484560050136131481002785498577932292301524409076062858921254590132942318511855980922219967360502120444823942479111112474577156775506351372399084414700417886920608159228910473144801812829643387205838984113603625295419954170190351515778295727334884818456429481626191169490067137305078050437651561430744937631790862567268508736293442359335338021044784852534750331738121181666050445689418148549873758014113396820983710920527795002319321318676792869445262096744866504668392346623234330482914520695904271705066582353293884056279560774950696104940355195160273234053623442825988520854992048692391890285468599703863498161489080777016202846708120181382951072134151935183992740340779285381044088832850990507832132440687623612444010936014081323262535696244797291713570456196316268283694079770102366215117350546617562740214675817423935195320561842580606349380608333423539943984703236226839016473519961534286267302400284475129348053569898673619219749464852352298244229156523392799478858932363667152774542940827043958108801005677961497839112785689411284515731206024510889473699256499959399182089628906417965699513205935985567262073742774494844345684229630789784913592016100923420966772020870967878666460772780139801211520468255766715533041445747972952298717723202677060909779313899598734666652005141944056432258371117079558463245158534710685481835704231097107638518785045945559098131472018208641546703701849306704236681988473191121436790188580942769459182109266176387391476411011711066098409919548116623726050455898898432608707899612018342567270351910261519017326670909795806474835402533379101679767473299518247925489601041224194484558994945119470171482712946438622277817943997040342856577433690919890986133997194260683661672177604790661854241651111250695976585022362420081056459364492202096610618772381778561881347727028673260170474329100595586912212208616250406998961651522895391969099971155040021882061330513170017636444531466568154060402687171700735901311567538886781343250551132694768395742907294578432020065274215189679190587432061698149082677758679608080152592781459481837640778987068663915655248274154466872850217015219592899395148121420252697177148890204209383003841939089545563162129984055039449048734458532922766627009998144098365913653966721328240521827451428905031043343625555771448187411851085495496147889702950990171702637111903229748345969187204228482749611911192191081760282721742393465758892278598519221700104891468840660442276898489152703271691752498807781975454498375621915580680022902606198354538130706387206874562215345634571739409459518385102776643705558408967701413903155975710444142503300630825784719073579345551985025651196353180877632694230206641879277476420954089515444153707363160061329437229206905971086742018325556294381107176163688997456231973339945701038055480954491715528532398634732372634076837877553762086873779822327181440470949075571819511961153566062986593470469158818867387610715871055134499317902519384037152246800038029861971230734482005671959092867997108090632191124121949007578610680941260131215600539954443152476797616799809805987558057966396318830185457724503283302228757883983630146386628033657465531169682202872749378783172475945260901437530070432673245663174013459844365434728743355337649762335709330922647833887271057475275038893108714107676409352472300725310033660567334821670618201468466843976044961865207670581820571632069430412141813493992802385812877397668325167052031586828894131643572200538729890538065940541617177894323949996955767846129876967309989593914359423454485634578565445297058619051096228211236172516461663589880630571622105958242310940021559770507646272739880240303745847626156654308566693914028514060774740919473066302666252252967503536693305290665049135128878791010634963799816356732070879982294968400492888382980462690248324534841585339436281215496250476055865376287717602988052480526384993167428983422352129400050998612592476199339695697937713361399386705606281630671302134539820483428149847559000613229646724717097333754259411953285487560409735185857058554565666134096061958736085551843544343556381227285867509349578637837437687162238730813462588511797879041501158478468344573142440192131584723394004727860421621461505517255768674894291127279524804749141003468649219868029598745604315376260590306847966172922674001417137136902859846584703916731913084219570545529050273861830881602150950611581502423595849531325386386259861653955079438819536996069828116412502306130992009029100445515099540399514749572622630420802168347988019319155234824946951351411503526096275291922503057247650095185269234654836346947384097830496452448779743656620127864098906487516245121651788698707467553696476200593819502388666355500688621849805943546422760245801710623216216138543184406258576401342509426105166479126695187554000983055617677385144879025550110834073017201705479961787892331612127418723426954894533907244953715199661531432449586199984124562040045493852748938380897901190808022755846597139518197316428210825015991036257167517751286662613646893493419686196971048536061454141809982556768881673135717051106966437674070692470678184593107427129626089836121735382431681042571812325165369443251476717396572982271073926518289812619930021035054598826823198162466531651969046893031782915418771791279655572202544580232701566286710019048887669371936203521869800590421490828926835158812866962691352821322528075386100392123362234681943024633404653149767803336978021424281160221655949301610996580708356910746192734010148789737028021515940378934468447306252470786900292167115876843549452376322458487135565546217272246301281697939390562552727998759663723311825502506011331987146109970570618698679984831864467548137698557702089180783797401164194673762870461058418403045630476853816323362281541813112296131162307902076285472435108012233387778807017552326354907426646548885547395387758253020480475233489375208692482096296783802067272201234356310082817693536197604591086478017453713645918716842282892980247324815535224827778969556584243248785139703151019857736258500128942470862865831682349264640563221352766435001429918448783707092102397371571030331749601702742375505053738106762753176499034044271925034805104238266008559643861937976542673162616079846944841660116573319647316345795547295086710286700433837437136588010658054281473456183258214084117077287374659238661463118228180807278402241292505845196305903470978160648326498454020811894962192756364745042772453162991187782517516573570893376005737881265445732643704300527436633154160064338677868828166549251781666089339364332574984265222741764195993999848842823966060402669489494534014868754546177689491622051759734942502109984595861221683232474232776609385679784089781327455126992965946185643381541046754183163035855565930828924064330793009986745411367629778840681335718113611206265173482729635541083356948167191212559746802419828631693147647889416943529388288803343642175038274134313002258243460221336615811206843493217117952984693404934067384894265339461923471212815106251266960369505490341650079216672573384493915303976864989373346466198354900691461758722939604740485350844980367795171773484464272778314415985674734677912699985951001937010065987993529681472229277486235531047674079738264191567480278521530670213306426100417582369664017922093172367455787475743117703272129468995759830337702894158601792573419088492191635127728517407124721011814475400126943865041583905551674511402746427462313299975574236704344941514522968200915258046976160844821749624175336784277643926524152651494170714640890825163392617458792020021244705375556282954817692566097880031811898211565114199586391586358603857614706306827657679427079694302776259838640029545147537438023363560199964036733826907426075012170196283461463343899773164321981341469835656044536410077067734863320284338631396958018777031104939177617954652569537118603995890552008876666577869341887179197135990986357226448500047424762532140589803217799372685996006380572930417618673111264270995213077936081329242615683638438400504642702993623833674024473999064179747184035706560205624433463502304081952623793656025723113351936111328213095744627441621202969268718771675533667230429272149015502854934993676449787753092437554853946866379286217769295252508810671234546190551666243785765715666773777344583916549831117901924475877104672065790033543492106268694643556673470136479769020024432025714068571662140156427308245586131193778193910880604149134499812107746170855560665583240050510198736024232869478267481382028582103771199540713205528104061715011237450447317087626159842439658042604612635669070544405410796264239533032393949759660429614471869119062626126091501589685077893584994388621559495121910213278752538484123119794835689039626309472732611652135608633294274803726846232296119510030798793137610805302104256588845402566111382938514656785146726045548099470850870795830356644315083045521021138077661918155233719563710853580812547506117511261035390527962868234722029721789405904373804560283740381889499048263817722217048765439253464327537177832259122011047529406646622741831067370672883957478285816102291327514365218899099979195885875350386915906819324213756032159137679302009383851027397194910428224374878885899079262697286222692285633083360018156295292572298265196935970088875636900050185563173837077687444913087450859726560624968879757078458101665038225780239061183346454920360315000210291413698696348573391375976593982489754284676940518383908798206004156793488527596798963143419212594712412874242148678814059029071082998384592689967006036471424466987877462520979497337473829676840523306032970601041400257970532060073207250524213195005629463816900560980368145228713565627038051781058942691444223680293205310303817785448969791184023000614468531523802841680819852981211297973280384521722538992901900647898062495324561234989121980762237943836095021662881777599420282273830471708775955877217210737723745395943784411815978400081619663596154863271508105790297459019818854021018442198634269862911692595937648379481596184535191211058288149579004508382576116196797362830730163029292421133234374420090214265253058981618168633198856718670371371448852040189044908707068935598067035540845871859386257256111971334215597686934479763067774134520597510463779365295295606583871838251586400920605257332161892793401432380920587811038690225283045251240027668670098811105095483123189853020180570149311203196293793364099068064456641028978539389252485932043850399183061963849538187822547072981194563453207534319783853888880754472026582171027739918082212286800392461951248411098105449302314084461123616906062645106664395202464576388246592727912948324827691191396224576495942811872500357957183516221489681173968158566339658777487653311233487054070205182837884762491040292361520802728685488646547481270838920533085994542535918141400686632543729918481408859959125364899257474764237489431225230064804236937276890844294817718080336489536124271995863233423271910738405865464634453511902833167772398695834253720420971271445606521829815733681220073155603653395173486704219966722530208349137871139578003945766705116300954662738942936156881077225897253727819348004308977242544376030080385234775042083053216007858412511036489268494698571021838547302232259994238924947931432141005192535933009388934959537023958462051301989858894449122255481509706227938150866981884164557277312429047700800692738579543086318349436502822399964348789053892519294271573778469620288329052954709236040309352152160897292608187866583324112982077983573367093914273920514679865727145215227472863772761166985349899257502753893164989379267166796822537527185261364132028900438384232670878431440478407888778721492826478599300035882822285950622427366657337940712086905923295021455464898348707499849627659696208983398354342259577681814963931549187048277580272373150136690667347609779285632616623901971229732459944710884559002621553850457627527086369473081489918541630938218131041461735630483427759620782812914527568132727013099960698438235356601842383610708084966984637599501825359235416587524919442142494597701086052344269711881348913191814656678934174659968588640488398659986973512589591336809075142929541457379300653472248572166930013325501302064214410081503917116963816391236582596310133569506407572407750118833468574743832761008195520779778304531710122788260929068125719293070127645861437968875897162319383073594721459032858580697627069844088692653756779537669525040273835461348951912242491989028879443199025424118853705756725638925574171809141251440139768683849770560335981299864086942506436730311036974882836356473982824742125804544143860608528642855069971629873690438479571486114496419292514150055192811673538499492096688233555211857006932878887056922046250919289428341049689039228811730331867564648055709468914023451190143806968120335246816627143632570080778124965334503986779958007471001404747738320005234560565337512159650347722184000760802256612118589627878969164976781126083934546956485848956615697180684095896044938621359262473102289187532561343266380318419889287001442511500680268162246554271755119208473643539858020864665669896108818730263895834201198154310469759913953221997958797264988733319862769270881029494362383274886891266894280997829558463102143639424975223426109138246809215723559795684455527560326962679360167934047839024123657774829193021112193910545516544889241129988749597168077496489629797136426215913125899302839814412729475366650027687830362113592727483737883510218972489073661225913205415403073121285210547582431471898222852482694243854780760008075148173024148989569420716092860267579200696881918311429117402185420671975548149847085475710676987436729632577683834776057905914888848838268654880000646385400761208465927678919911631306847811363750308888080726133244600608979254592038652541180687000692330756262606946188597654267818554476086542956509999336050784760115912996320644543312117122420979174381393341458984700683866521977983089145146049452137374186541588733222798237898140787042527783543369530769922912488239665379478290221767051420582771737173294789829894717483820257026156446827596044544821255097970354878650538980647867315115081488863922382599113118129474195812497681366480239836465626815004388959501934907444138232631717317340710787110460451390217568439835951141017156991677381659730002953297169377138742457746073228768745481189812355547563785811780762120248456105987930642413859795614042019616289445083943897291116092186113253368237391953944630594346096040052584412405849691981590624225637675603060609821699629953131209702208483661299483943039856460885593322916097311924890885284585060196293476446591808502984248325325572190516257998170909551065925963855179476329156107982146454789122048472782905095799592055414249619594832918574421675961543592151374334225091221276792436970937571655227219588414472147465394641600602144115409981457659038922401040335831522079945451625478621663247472986177877009965175308267626422592238586218639452706924959008158793478409047145551625993850216245894965062548506746439438166630864495384719813824435937034067282183792513486521654908931215232846820766619072532996107331289599733962131632411813227852083526211297232400826910757059526034981980826952304328847698993202038456699329395253941351110700840458906868671626074058431645146758989902465391099936891066705057705942284223682586688212785117343005834682974207221047713747108151686544670642511656805995617279524602010097808459042090075553962170510030490241295353309701008926678032524403016060461715098362907977976542802838616938405004349909604480073000354554857514338937108953921079535659684233592366530597818750672689755974404579135077091371659110174527843468351915570680034117417091256650862945062531368618877174428850634207648104454920000055748575122159476011353875793877959158510005953895125860026454656880824429303974617985535478356000010615168173467558554118343546604925750465035762961980356532673787718771143796689201639967558299470149655657720338243237001110873751806659434694607773519948273602869238421527854129146901534529803731661412888281203509078620093588909481153292132726561763695475575346150024485159542829283850584118320829787008466668586248216722598452747717151859873861712747694990440319491734210388527100938201001110768117135680924431369352886902998096613121223908886141210892688797200180329908132098340338268819280567238180140188698768960838815702867380047071313371051092585394631704791163621468255350244227616561234143691086035912130239577164802174868138526121643804708952591621249884869038402071733647222063438244993797662239435430212444585775020249239011307888132618307942522305017990271426846020498396261756557244773956305268470045291203349048060313628382036626765941895493935799952595371290459457460235853729797993957328692946723075830148385246152221659448028551398234897897742099415149930756295901755326398963956183991783848389922424596128950106635273784415750702814362765786987624215558907249167171087574871494692023139057941676081823504252854711156282207020753158354460480092476242725975967788292336701391633260308015628679698742851870893769950541117043377438361573326645871677820446229843845017531410300215789443643233052755216138728025781695163925430376421350810668198157298606454104216526518074409093710351034725092403767413361089445523789354144331784747433759842064258944496507135811522723761642735543312717747406434470510386364173458933868662798622193449673109500716258606928007808658119942302343233588504406619424303957938758466079463633999609222692187255545430010704784039677233833277882018431119654785773551533046273676179265481852735803047679616600656903640250924312304595916803160246348559058976372882368860115060839699417007807497977333600973827903627134325091640307417420378523857601220613989962686112855335541984312986481208114849419615827696642604242363187416286061770955152069854721650957801863731250712519404270052073292197052522455327038682128829744322227720781157913079287371794605282978739589182495762870009717558276949603622565989696888188995118212413614036611879075323064487730380328608871439458321928683902775598186823852384339349723432437363356739958341685814298960016819828200939740510442889492049037848736321075180599065315382838298725555702943953449590889139139674666742914834566230596128035738571996998002485407783957281497076343067764972890432786167973801561316022792245614607391645074510914322388455862694637848266820931791710625341421236178624772408589685009999907227160579865363386646244280559767068107128362087020967483544944422288626486024078560757321712198611967134442174891926961974139551205305196451462113568780116198045617920589793460559215365941437414155614321816334905345657229586864557436848611348706427137786627735206463166116749612485421708446644712404690800389802673878495994050643655662684470207351212154433489529751088352718080169796599464871206559633905260863317511921143478133863494538457169304799986310108250988957723989384039996321980249097413546362890081544246833197900964677198239566212737135931271853965037173301557624278676411349394124201734903614956997989039691484889738318254845433128065148872369074175713937001766779180325204319294085045198397381340559236388478742367999502292346525753208044773495541722664373625477100162300198193570036109991994111177449598555492585444103219358419280647504616662492800788717034518941987176739670971976381161092976578040238064129326889354476351471636062011070497623019103660229870531270788902578862375709150916748594585564748579738639198916608738238127141948438016502389496920010952643435043290819787931790063855242938980638788409211091229420150069650733131276169646652296823840269368569421000412458835349797264796587348560397547407759459327196932610810197519726178670809396499013088127409448151802341174796992071911640541136297855449880933237772516609769758286528148724223618903843289976804658244571706422935574517562599532111678723733074907543284302828847916621644652443358241484268450085970895763434978766571322065552813025960034432415385200633916677252077886789911776612676376394316756761760703519050942051059929860099020411751904684163443267819476668507488984309044425370685779014733726669751075689992610829165650297952720315332223097596290596013198913020449335094497764704437011681835400297662482877854449768160059944814815032344365317462030496564513985264355894553482636109265723220890466399067103764614631198405112062480567854164374292672136842829715402006930183075029987089060979900403757366628802509337205110606115708634081043607864391108383989682091884623457973818105010275558826110086395171991408138639034735867548105231457179828835257803527740796135513139340183852944939006789472625710314222051743474608226225519798981849815503627374095289401335647658775233883231070922990932661728948531515682788533671467041109774713308532448114904146399208592964969753601589333860236108232662749994514512560445638465398272415109266758457159965203662345604602192221737469332711815632761013908952543817233108027387537544538062802578341721364762993927109923348409957036017382375851437513447532939906709777123249972705307876375928181020013491177920368669838061436502713783336881163756189483349932018327455350381753233631682457269712692702790464552658515389606020924920511600031182331811548133363207050690377271691250603858754566646629354438432028635500528614180118763217548585790993120610280521494470515906927989221944562309579735315691462556357527414020422134179494858472118847851121684411159495737853940269604141192421680953792748398130004542390775391408673465434670165597859738508403836993612934394906384391886439963497642574191199619819394239161339364882813918358132576452757800098968408039858474743079088254478759206471289271666343857579625718863304888158762539077503605768831093429283748704195195225813491207446225739491227029415061025735798473002055824830835477604535540355359429679052369938581506234520128749048347929983461817689630041048148003316322799958270389791584962883678102935359384441498995909588878636729513558014369192760915097349053786495767114273989523313850726275354545318323190445277787096585778899303478210977700202350457846159570110696600103761478755388376340385135533459372274375229441010904161140408046054466475511947007393732712222244287271246439961997327815833238578212640876877372403731891481132014316970888679894118461255217276253757510170522814884756385423600252686892491557435158557447037840259839561951891515102930182655871013843802638818795787205812858599217652936026289444656794233852078585900271582682613327249938748531211258587839836460051480481720407853524816739479601483077689728439926021797757518963716346343765912351328863845233873100626363044863032494238875011724977427439927388565730882162184954242128248398714137864276035654937394635106370125880050324819752174456076225325258280999445524215904696128685986640382851859675890120949840270659781354634688733451383682577644997818053136422408582779306634687525067196386454814184113519449519549190049767785141921484185053219356543081166969780712321541854095637530828032759489292931851243654704779885384188780987669694662738047186613152040478032612634798679467041134882295206502162510341685913126832046381805915783180864565887905504094320096096450353297349395338411728543313995765909894138821996273718396715377674472620141257983104182459899505719287755102950413238676828651336897996694175669375088115565048520095660588641119321441816715660244275972691361867361488570694152723987199933630546966608464646582061866824390020175605408966838117461849963708277147949533994594422632904559599281532741908612801268592234626404000055877351998767842719977948468187520991300431641597802914347844013626285196349842093868228114611641942284723958940438439265977923607143804820119222390369320377207255450811135566503794070592121669796771671667527166202887216213343444856960303916471222334725030947897637590144875794762069297425009531665846027441364524494758027852818057469953672408312637100415001630443619644583340309493367656743464085258051890208744425317270793682421990301943372667057341134279357955145059874554012579718065308319579954678461424287954040817021414110040869450372935367716071920732709053436431504459742846014227557596028561189759550534590838351438778476110726417151926570915353617475428601306342853177104409208614540369043546668184454025552074950518753939234548339744799878896478964337164982289323996819673680515549561375714081961348964006442322678355347476546150550423955298697146150058487296745308061717445581402454476448419927559361267619820151122741962958733991076489521967515800259316168163515518003102406683279277445251325999406863255961294509088440777438901764207213851744699295926525025963049031507603731350919884567889685808984499480651680788949520883830451110043032304416792535252100479931903251535974714369928533049924797046492658330332326864794173874429516441905923951036059538668505995949561568154778530258494163259138029147176742500917157445862421743164000508345449703134044426459030525989991294684282583354824976567505087232921185882488021426769875372665958849719852084237647876057930453585598166483708253690784366649923812615095369353995464732669382386158723953594101356736046884735728843237602785846480905691445007528083993139387427309507912923326695532983479068852556214769275862912067403680910201328209956197901203839226300367714778250839049529170857088153901063516901009272246647404986992127975109019997658779896961066726364990877830420872890807137366882830184509137813633192996683928923078372413113253701845355542701892289313513949532019417123614786288546888420473222083139337508090829187316092823127876185892524561678761041828941003033688275546633976228744693731222851872205324294519115018217677769887699594497482004047416600380237463656677591450076571581155687203060894156982408948256798670389059905138988598553957700235500593567576583351310624572366473088362245186816123497514268329020596820577112167775572149410317626311600558059440627167838446631269929374773450516081876227681664698855788773548557246507241844564568017267473090920091190541447787737012465680616763489935412235804492354411461190732460432017258769799789770765891272182665746641551475698993313901949746736884810848308248787989388251985691764665338762645833932192861463570283188049135556531316448752971361581445372592100262264092554703299888220716232005623310412235343867613215990761967202424997425454039943430199784926868012448718934207658467573854150651145189518696983133889377668379314341294051736432281582491088682899104400300817840457622143246027154378380455689283635766025316032214052485227260964651755302442732942153080804375326379026666872142780683818269057590996012446868521613891381550964890884131901336596934913127822280945449958354217690562059110115157251217837806682280771384291305176143907442815925464647981533788629809516186587427934766857807005671138996484554145221474150734938983341400904730581201594412558309432156491237895670002967688208616396725972610531655133543799980450294303819482286337343017359698404783624554339978802110421334063796572736457593445764441864279009402245541141461822315280650993193561598678931154268211194827788802762170471694795454786622876153667460975188509697746342090483192233349655198511107799338266730925982882512458163546422780497958256453290550958502195184529309813876344466832887496052514793299467884020062622109478296549301339417663339682650482117086076859598390176150476981833949171685848118843385601180860197222841449478362486154497420697450319699856579697042147626507806196611179768476752167706863532927500001484593789136926526261920284270242719978985547852463841707718400780975219476971294181606822072832906357240561237696140505272740796340200501440998255884512078521630147403001069698679090872628526752464514999045562355239525614189464574299589877826005197641590264531425636349165405713884120729825817062368373483606318518052972677681667560430323999135421414969072820768426490237507667733332786505735580459745657826564165249984874282649363042449316762265036637502682872062323969993199730561505897873293262175178449347952453866848281577910091030190645314737317399639462604579067815796217628264791395538309954585769129988625963652169550001427360092111182054453226949398280746244310713365154151596929720297060222848577087000888646736677176087437972044390827913579858067204823562168478774944119963146128323394436802481517343008117688116474628030923151539199667756215969408484983179374685501327619012905463619869788846822759378730121364010775570295324510440656069593773377991346748087691176377645508369378104482892674659834472645496397926328048534807795794846958416642621057508481593659631649682164398297294307599894089412482617459831414726385138784685524605424931174541256223780577670099368817894726598496792913937369969450306689912011615858255346573969926905064661414451796342186292300835410035715317991460300535966503004098834742604774547768421040514303758991725808990831554747054286371992416680043472402714840401837391438882815991804383769634155993058946263336907636407355190835724233355815332142728905391867636133419567629274580265139109832509190258368303686801724720888735712702585040164408217275435368787585756516709340028327773654804649763432335156160957414121609346344480909771600931301182236451347040223279315799836340064731414923256535702200486807281972729055346744692197220353960088173571643721552441749175654000045495748182685183653863560406177104198647368891558782161891816749910856936620515146883180662117301525008583206125441359661963984536746495772845778066351838738577347765665499852766220923757471378249388992497721196274099899053326480301190339373183957275223035480522820309855999161774646686216899665546194903596251974714419208163273128824008115135797966789237669719068553996714612687319150051772514368897077428640508000866906289271969896487309615252551322396869118892412331187895530820881639004283837404338090293163640492693677414835416659440629602549074105110401170916615404394480450721223988476127660677874162745808698972570633603454399755739276033339823409509446163347148452449769987273126138875598033267640093911544127312665660221222939758652190763912655706665405746756346852182473706914435820346877399439083678131167672273898396564400919723900053277763792425927876930734337781707719374214467111761181046852896945159817797449627012368520139228291871885026176964256030999676152544762427666570522597540664091625580340619310180301980518637416222325343094691937569972292416571294493795110696024090081490093424015331085076861330580275033502856333942601516312361861635522288314423154644322196260453636309375392275745080204590693133996424076159437819732710497245826631994029553368812514447351402782555302862632157503061662240778354458122638951433648991792724753814852854911590163295834969249230057620412837827237649180773444549816654092871104023132478938616114354708071199809315338288390268468649331019080491653477451007707899589644809584091857085611573228523837226307388368067126753998924416374650368984491202835434045824664879082496168613025045616607257294454878554908361990230579972440780806962285227224919862914685664409108319154893536492211783396506249282511353191791130572763595322350051018765758137525501115364775191803849238510519745011566008834198963215031759782542771501745182791280151714133687629782283193694990551239822698114635365625393567833581614498102411006138808065989930612473830410625047450086789729493075217034931415378339716269141333828774215262109433136513883533167036562603124497426743685260011186727521116886066394250907192202566634849091651842160826391564484571594206374585001730839526820559988896050286123097350964113920913774616005993975802713509226375875990329414898108314368530717094694562823816157941337704548933291848100764722836917343118995540422217054162835109175680372544695956181694594420003950526126451322472077633685459895076736684976339733193397114436362042974134298451274983771393638728080907662777667062158727625107067351614268295299161967585410296257128288070271762390845457061510904677863353545456933964313900290336302681092946085589654756268833894608823413596987286106076570138236391612256090085766163560318477600846666545923957879743157269078630075945569169220961165996183115066236204598001924501055837762505464556588615446552317812667787907736404782029279894976417389703495934022844272219056982957470634632364142983081870224055911089253494526772922249248966801374730832015160774796586683511530766246050018378330440891490835603686664074558829511992029021652238879129194511763197855800087310463004735934625079906693521498527277464110906964855027357994556842665122290158014610035266492928626739470845092964724239052687219960019651398168516662904274535004813452057481353598707425922325815185725009939199712684987296381022662907504673892875507749832811830090912642555202194947205547984528686206931128436406765611530777434402188084575234108227290255524056778925524970766434564596507698954425553560398537644988699017676529881440268794379642302581275279034828272911140844873034120061112543463061195047330901168176471277509372252100527246946559771844702821926792349645459167967397797350059219232156160680090660718758406661515052698741067947625097079351370257315204876165563602838810829389124917064301943764750733108027308081937493405168469939890551073907297848535609999984717172596854137366956103006877057141543381382048687747925864989672373989579136294527082631653973500076672347486184213776938388181839066720078854732897469535128018520939582187936690686370578773696625550491841586317182008319089106269573957664232247912403659801609208438100406150479683274968687458155129047716470494875687910316643922410669733217103465487190998259566931362357809410291625534973929973207708077743308863404502205385704875005943006302016240716451880645861492759237284574692368654718144162897986087209146208893814723038493265647808213430434107851580701989138048286078973705880385987944787735570268511067938128167960905461432370458785775702488342460557990843491824702861005158164949759584013948245388958767897552807640746838513628007428224445336297982107803714521533049273998416909540284194898422742397610135612580907449497447984478551640372843427836540242637609659095538857238913601267168138300862012102267584504357723813496560338444299618989142525759860647561579648234510274334308013227801105016576143514949300894016804827974588799687781726977932503120603793257616547235853041667245390136762505150448849328104318645867992335714142140293753110270103358197517929589385083486602211759594140630699403666586075072316706360251175767662260810046730374560231186196355960842059244988969970494822988099602054614266856358413835087745119730865370317087033311079822703926183036096390003580632898889827597584906243615597695735113311814507534946028828175856879825369005086184908819885457836771437223839323737211340829712135262347355531357424146989337036282339576658255771789617424972013757289080583364799234471605794555771748480546955465550806114658409379823768552187920529504324956684985132646953009580838220727065102033649748693683014547921798448403582260566537228274217305956995084391362701121453219950772429740289027638295790282034990741738382456880114161021611136294481189827901726020809354526206769379985200404748108420121333200300368381866304025318617976277054294787929611038631882615358780714840342373273780358903826535694925962871732171852894585231636577082649917114722998196293324545881881563201725712148911555455974960804854499454649817954206057353623100533316986034994709606634858858367041333106382675819908196000826189635968779475957760757878745858832518332997373550266472166821093394223289571789403585762986698636296182451769419202624380495702917714513480844527963710574054658492402023546339341151466234845883480964085164514835170656557455558867794889795269254890103190940425132350571256294367309594369281217691638258618240907958064866742234746332743918392724113914043914957662170695359915380276811775573251393041735329312927654502020049827826029092646745428685513000101491027593609917083404604330537737463346902586489779338652141038379069529030369075294742931520190202951604286291873884994189100728548961173017046815460827839442352237889698247295774462816450313445893366202246069070312836509420092936105076787147634726131745063416488321043476491612926780907422544800466925202899329479668729541406174924341935919513732712326756700037655071375813785398531433796818513551021494201134563003528752197559829686361513274547795204593518153921932510560278715007482480794754891441482883587454358930892451643354422468461568480054738025789771104296542904669119926409777565842409846909368428796013849958510573090743473829370856776007362983524156356473602042621337127596793368384867551254226691625406313796965543642036288032850941685012182826161015740914810007872369916978920575127802639045590600612278991749786750461132660592867484245110227240880345987437261954365757940625146467550593461745197807034097439603642211475329019036288024259778089340816064986101110289131604779169411799071377944924318906236618677501008115914149941627997875483939447227468123052350087554661528114937193351338472614239070867628656478851182877754151971843520669929115435512419951586004950877066375925979960488363765931522537616326012670417044772060893209630575603502544882417098130480884512651200601295630651646381196827968542932906945551380272138087028805821009388119461932530579660446332595643653495639523802406723862283525780918514119586548507042721340010085289627531599287988442408188537464723505347412090408746916151165147223351816621691255323442709524391088190165355277857022495184379214558238586696670794034507310842445561330950902813069326121856313178674129975460092433530127503094860350684731604808807265413383503549530305761689947274937792979086001704661388063918387338368998258538065354750434703622781635600222438786774771950469720434946523049146925305168302284638024202917101535995562481508614318698482349829036766899692493526523532786158107586253449897491787208005653115870284650016118685970976546230610037465604346429256920036617805414821459270815968467975791243069192806267404820934942247203151375041616289782939173005115790377835064596705103479881477447510984537897494455585221582413731043677409207774754297087026209115931957276336700601275158092058395466159479647932392110454082716391207829728255019293648449434814369503530029006565395791460767554448899946383777653251290472148781739872988623093033724264379601988550496550195921505996432386074592488701533088750845552419701504024677941808518622290950567290921602451801710996926723826829835036499564958427873217313248038125833219807890943837482163474534809357203449949286980243500926810434931188003905729509316144844676424345154281301941208436799084264477407208066335793201638346142124285330711990086313956254102857856254861014172264785548751303515189549944181466138184292099234676398152827033235829852794011404739811508396826570318746704114565792041814670521426683144861793158948952962504288008523295847583261497936788853686931455930711532020283879913891112270286680810154426258756220583227803881410041555545489488410186804081582304172880441997495937022089768713469863306869461704592746131753515426474141110229998203856973578787188435618257926900554996159545013957903906972121702411965133336823744676960349154351239223326188189691368059753476116997227794392955610189660725965684200419403264424662255971384714923215653745332583295884549072171580600723066078662984556409544811980332138210029860307734632484144611120275605569735121497012772380256194613393043148679012315835033664548075432018978633479821795842468836140938117193232400507586051164031682795266988716392173150547910226110655249009216569561222390853489387670290898372913294632930799938933440471948739762071680552694588958014602727179060309249141545176999732102880643661265151413206719533808599788738605431050901080901655335363377377992762313644866837645403197902689026766233961594765688968313834131542414630082887559488406126442887608786887453410900959930254099942957446435056036171173260209165748051019964939442222136662410267704263002706658675695218875045360939313444719022097106562402941692238651275817593592916090779631447910652855925290895489345579469229175735878881282014224458342115851562582502134666092484803917379909907432202414743910818490174052005367056947405735753884062340811299245311913054202756816586132099666243560101693156471623621310541853742658509014272386748139835092577902744606806400264275337380258562609638819016707988204498746335612069215763871959264091094729386623298538240971962523434276604357285047206641407422548796366247722760052596327399141096402516374785076619454114652745628712884123280009070098722214025952288016029383129098597947528128953753575489939957318718538664462364525371406020935082033554973871449640536358653935392838280025183502163740778613031792532982601995791801694364312993257667368054132399377275787628376152031944757500266269641722448618301326527044265064365265330907671235041868585356888974307256219608289238888447657131709890300194834375501816203856004473575224094539628468388263006399793998018702056894134231520436418385863626320623571206048812597885878095755678555545955119036356938098844841526827542040002125423971406481900304945000749251879229868483828515279484045161983925094100850528260270857628764499683482081658536374599637885227225739513743176489530987276254182929821021897347577366353569230262029557425689845234360915218944279469319676965993136401863071236289847859773293925065659009265512357700872724858804501859943195340077778740144726152399660675745675088885847166677429653423300514441733920175711920370714425065841185944862752034635156531418623401867442103886753139063153310043704934140722269765507396766985873493148406930946190813663678227437052422532053696391628408170851768439508257296953419687515573501728900338203011194959023801093936098662202970009626550925959965805458732281248329869610496387666605238803449488020235826757735018098813024341436679355126996110316058361163227360652278426425585994828401899118439119251798736090184137707198879215755427219303209691485971999445087834906330761850386410969924544953621169398983212847145735303194704653510992195671918923093676600745756801228689946728064675278915432959472034231552639607703349289445089624882179051640899906020938105857749629762774700708410989051577098596064183293971340776325850429301354958847032261815540122047621044891069221515605896469783162324117807652604810274308211185585430383303032825847697626133153937327214384425987815439203075078801526222951546662166410068513634695535003063407284297887776354294863030705645905514374761299400457383156739226737251904646427335987279492459536343627684291655677280410753280985959886078427917312836757117308130484510468442606297117233679680718913711384282795520468919002860350979634016364298446412829570527422222536029523831250748926947291759290924898145899377853600453411434868723632728707622050919931164635491267063935615418930568663248538720937799476022566376516948045390805447420709747649493343734418544305114509959231550336073487996680115152288794535393967051537302387716874628471567631226742995519460842235130074830292214500209354570641733993648644057876351323587702016088702522308574655695860677031195041584915465591595011781137745425199308403940442065045698662392784266523359629936233231944490183756820618820495801336292980854325856503195283359614848577050520471389537204538190552846861346391291852370137385144556133084971257321522420489023194405437047575343817373074426782104485964222762907997811706502624763492798589709401167924015237822160747902060529146121062061590871768513519514425355126306781201459558250658817571025455625698811366653103769695889208135036053140557765857960242534630838453227114882090832241056746031794316920217094426507905227144845061975695480141587541692329632420396345634103779182546036539952307094470398865826810868260051510087117582639546323599672412311595907827735352192483938814820892907026960388210431857050773466963479303447287145518331442084899619120632873536974840304515837572276419082127468447706047206338483004031714379385662450820839256085324793327045998865535968985452636027393505313068783716896476037204016016191691701875746205562256422849654654174263199582718235846639297900753509227101082816682266225106912355852814948628376849381961233050715405039161309740351183303441081257471754464939469063610597201429619106362538918226059958934537313821216077386491997725519193604227786495562407048885580633019124371633007340876427240194328992291753583643487228291297914420446875740077847738538198631420343133005039114949226441597272281101371012119735271399646838805372219303846103406093662871328294832654902746475837046581183421294852097953727330587763624860592515275805042302855069480396894218648848504998786357281616889737523584943845470404987223344275205429923613235441970086450826411128211782935785337869761981090734799443425586322721608645456697528782111829785222317903112937272776045230806351879860286006388111517275697189725265161615783948064432186201586821001289259588471372986102598960467553569173633984635738811468971324020525106100670762654808889526313956232529938472171543150400264543808874736370864992259639091916759568587752091253111998955521692505156390583074107557375015431801786302094952460524345126476073249202168127020120955006253079999345452661994617068293789067924818141262308808942359293880372610923923722336576300946684185052365384942434094852358557940921199038625269856596208761792119372462260782460833944140116561763215007969745733940557756882039613853344100593196950043220399034790326918034147234058320082393211064017812466985067604706550241930175322608265138941603052120790735998627710599991278522602701599243789563988633914618428684252845685527723986023188783630342068130257689719972011351940029144256849480516717544229012742929116977780991926735711753876529261959759511561430575380338173027751354736211209604594791515098692007300939686490970587012230980254941359304735612292355277609371266457963932385669497240167503091859049690369559661381212573265451556374420775074012186019561836000298051198303562735857641031091673861068641743138389936907889675169979707357165011424271406444435737450080707790855659024586922668644211945791258657748505649599249958058483382743753723331593697730872914750092135650767914713061530810251463194376772799307264111045336490318499811003631066605520695088136499345401077517016332431046085016737543382644898635511520731007258067135683519525034104540878967800671017923116056585812084155257274802971445593279859612347888299586038819901455872436164111079401806780802628032935138886349761631862218398177656871033886944417250070459961158285191525243225245324290228609335095507573978172907778397744977382361688254074053829907265672954854806710330633326508505432440134268569964973136372621079779649638647523369281493565007825388863695702580310581251495977773712494168251068545545735822901550879698948667516607038935733671516556310847611952302683577637490664828118297749719632644593093223319297087781598273175874129400255368121251998492977656014769720531182703364104007541230201428419988354116698153568120596560869788075240950604940834869192447102521525233300833039632938017253770582473615080014277641558584123712115222014752750306547336354750229520893960926930126223735596745481472437090559576993950812844942731468976903531540700702630255044014138140589123281287937463529996003594244439470678960315894492087208431822097247477390694464247187365482447319909411028184394166978489425986189292495032245444601648168410360254288213495809143228808419812751874452457839106526763885181509367601673816873920557525024016569225106585555429553138463770636511454665152573715394835349564001574762895404088508640764037592699118690889559951751569541061198751743113964403536647073566225814320950652133989259914886271871426477305048389549825183354666568644824151947198163789919336204261856472175613725839741803192882816199172351132017620009588322391739180020685860212664229553363119682865220384675580346807066920986827027093766204500471040461839021252421608895956271203753788744383520657481498377022195296010530827206463896081069637675496210447017277045786004471324817292231865714116627089859716926885375431466236621213077002259123893499476368423541579437649758244202401499033837422989726091992929344226744870361648233044383846568495730165813744445223406373866121616299831948245540609946466934431955466071161008432175270169249162145195449399458079655530328299893672707940422917251785451866966647526745006530665350650156402606464377887659613964854801408823511538177249297405584568482561332585562104732699689233372018770102787067324125889437288716365257525409927991264688912205238304327743996687235941656461185557208107298308700558817777040962802313397586214253862645137554696101605497845980336331552467732836082652225053994700337977304462821455228446111690672391563336460000090815173199198058523833947899044694204450763755532041638508426274701982758551230422275415957515047194410168237991182056191136768425664739371497414534680520384826489422326479137727231509396666630756967330077357374285289147374405879898053188187774234523463272596648218224508690701147305074520000156555414513343036088826910196975269713301533203842768066283422999333328132988185639056422092946800084599878132210718956876449550851655387237492932202918624198386598169801789623451190797634168111684759258757626557114434132708601527697485442581135765358810459062110997435622973375654930879611293608959691705680001360952192808080983281872174534275816016768104554009644562334854492855491807975420383317851944007577029756249932885732373802483128486736941518100530840984296134204351495088040929783526204248639768594599607136909593789834519894770349028438626726559893781874980393241888284099361317458584776002333113634371117615025908815507748672940018497525373143297293705320335768802128765121926972286061737767145402820698616468699864549081815376647516308343698479387650298060160390265303863727234026805106189425072271039007116733416053159594373323247875613992083511669523539410888579566589649175392258910955615998039947983139210647248362921394934343967691438632081699235495180232653099672321344159077892282808191454548772264333749343433750606598678169702898453230509440202513281269282323230414543931808770740482575704124922357127981732987664028707402847141163782215571010910646380391947589614100832496245765649280242580077422064746121642213751093045090740857664930814993100566301651242998516625139211545157767837772875728598842101945272053980418949714457767612158018608609972460306623510604716737392495667233703615867393831555549507317273169562853269397375073552594121622099152030927399017321559960248312175741819636320117450398542161970500523751763430950984143922253036807985982671127763367066857018311825383100896532808005310497338309668040660993836356538873065877357794579785882245817704228404974331624631448764736307006311197030492605756483599426969623009925831082822798984439834599819151009993913345526699331590382150854167288390200935407354273485370278940286870749471863108255615638321439454697732648715846696138762977145496629527930714426907528280559024805841573351445390345597177934192881267075959035121022464205213732459118693931951208588177719885904032542363036816362269238082424725032914480167992917352001415262169216398204162450553550681840254027047573005407570516316452332082361993264870569981414035368218761627090745483358305537578269798578624000005071543587772090636972612589234367925909274300100016002119084248810620075908691525067744564371583853534462048306132713838713957170992752687923940101386830455080466905767015504397056158819186104279169290601127729494876560132135610029523641499005253561436092668727881759940733753014009338068788751804117084928218705519277218222064345864329630483923942522925919545457854857469910511433437314095138052090697311266558187822059404956034707988880950220975917980418365149359555868424262081369390510530855521986897232491661594378548075639193579486384503968439537014065736567633023182334576828597728145681607394145052271004357692328319210612501767781857708529669708277455519839567379597286551441997845528108593548686337627229201553440642185139306665951471231961435689280998132220677546748563164243790923514567382306031962781545186783287628480521704007585099685524066088190435558760561568017014489069259953761921306665057392703533162662843171365837552350687135422145610192645682911686554547487533536486170318398663886736261354873933754231638577530283486519021771048578801514874491361907891795483165847098769724413938096827149560305286502409919916090032848722889886111626897553310509123558165854736577752825531081577069828661830490546297387245929049784622918547499014194567651526796868978096269482767180640928178869397855089067300120408350617161261262654004221923653191078338355838249499564487072102083260220804789767159121838915269781496092909953454774843726755505676459823603823239154722203428920852109939355427832033604445559826632816680610036771377181859575034765779051475544612241810112253971313015149009680087682347810598026114132593638783500846941374739441778576884670374397536094208229810450692538229557810001368011873717781804135807477522752860417248160974129258337275004998492085654065763113486198912569599574775368794567900516629144303840267496849761830374436086219548231818054269465686314968168965316028169329353590649672170005620312451317210695550051189372642673897569042989847077460736102752223373120856377891131255816887279681801508438979099668602779532446918696760303445080625164405638601572458202065521533067858731159120814040248273187680021204145731253222175031526204005932737773881061120656676767018917337466005523045851898451196606061476899842727359510916240621926901008089878204478209680514207013609943234667149378308795658570885091984590097073022670964038892261158092125619153759323084924459708617064348579141496291642557427757455678110591975025365015186513644318611614282840492516627017251228214563314194836735548563911861306888408831349855592617921702369599258844184212706328639273478193442437793165328503327751537404510588539395853432308712962979418394417147015339109609053030080839534077774103182808048678871811863420579699609469349117813686688702999923839668727080185900920636939812687178353757466295176146118901344370338401433487519926156375238378396574399445257260341086082184010814838820767384550241682920154938232862666795955408116449135326659130767534256865876079898034947510140656472881022106533200338410641666321120877420421029890590343467082903998783545994041227238297100749656123742764274221161727461900239334503133023124685017730407979434414443177470700095669495697592016715433526645956529773745159189701220594167245429474492753532764359044524401242830156846147477307567966945453657093936220130393855379664167721894011732413877340766408951940818374268903543905872005559733390706359723317245954064111686669654342984174919594999867287423834398574658104600156976272098783477171343362682695810849950700555476725596465027886862169008661006540138121127981544010961518313251875148811776375923685322568553958905294726149021395616800307043380582655104441394614520171588044414309285523740053619287325350249398453874048030120914833335629883799122244827075884876300403636514179810616361808065232528645210149443593886992029859693628911388951858878425539809305109155498208151162523171723535182886331646286613414767060818807612545998907320541965575632841845964521966936839374952058830290086075508278925560559732365049633786400195539717720702613785387742455478414474106563161794393935187486313001787980248840431795749144029284165802632135961986509301526826370843914344159059694308816008161361503312113815093730876286858834727507341880824315117338492514387459827124998044269961597570530903860253670470703441464812277576862646571221327446172508502661389636575733254494832207948251987781672009585322115534698715731563640684403583604228412170148123381460687703641012082370899369218491029809397201852729799129807317905199275247887216123348652837944767576709737989922010189862093038947600243251693518596358479670832349096181539594944325809401045627047033117024550193584936565057715672326488590394586347959665234404707568459739354679077671370756902295727955490648156860877422391612882042410284518716203620747761323562579043761747150735916587609880676895905994635370010863722273126769801098796562465268411439327489106281646543683818543083922513368786907524202675776372735320743821392530220853398763847148390537120640280712641065813327523034425106854744941197038972714793937735994911962140098231552273585702647284214007499735060853288810038019634748326236701778123564727602593754333054796130197862737324665841254779098481092493154346137140997114161245562951714122162687757230862113366332755620465329440548889581941178246274791922048781036884446479491803300880500809455640660200670842496775201049396799686998918900486565800111990132768137324043704811216893108022168168375431836006309626874023179046646144444106307559103590000057885996613988756913878239683630384723590479489848063240612150258771928538113653801457450813984966808644860010246390465884339473620738112061884724039249788689008868714849935969267548071250144093828080853498143595580802253818949659702724116676050277736492750552796104344909047655777221334026514744571865069818229846052655998499494070200582416361982448454086477650103496906558390128572045712938035620820142784046210186739557559959357927141939956153280411190415974284128952022363486029300047005550217580569794653224532352308070029310819417991334685271236810342157055482904027967085730495311927439266401392131281324742838677888580386585614009354125451229419832667979901656612126138297953532699254955216279922471561665669359396138883169986326897084506473573191562081829687844024114672447720920036088462031883322830526150381862542002127449159358122645465812377181149048365151198482645510439081639127877599422957920138170957005451160173568727443808466444379197746647728498979285431502354976388253071524854519574089901957664744412851556490827022977068110930368363303653983446027944209675464765722092008442428116039029494952754894645372816242338118708060422269014103641315803614437726009126809853177895143022629377585635536758605030940058287956496834233654829106612645433359321021485258962735790855340222168080013483883724764064252782504874026385674430977140907673940020293031935854920062592786271257822467519193045391402304659447579383146531832408506923437604577337762682895261367177091617819763235774033800180825372377973583708571581185493682118183039034620387863142302964809863617497059069207129090764557732065575102305938780162856873586422888468590749071912270289647227099428187186090580040123784336391345487686828224635734252162622966184436854830053869246003919080296615353213476184297417187625814080204099549789864184962256605834820320278655269095610410661597475876800645080568421547586501294224259715454284414511454128959273189617002402267318364760009248724467833039907174873192765619689603275868855525125034995005956992921715484677387726006431501587348905313164862595347448373223623021540689831961617757864163540393855026474945340418150160256429123476799867509999670670166563007240899780856594599636557609916198749653972874548086102217961739048973403579064466500698888446235482524882028148345283030208192184334151459388196929902429924568813308807182122834927739095474343851219945650123698203332637430696494503539336646380359231361809197001832665560704418225601275092153135810378964631526807775160961287877259687664493662550395980987843754730632579853014349609825881128325441610673651112361495033190630464336428705897532526711843197980731258897699441398588814113500322743719102956442027946180942054018307629556672142211974258995108600422421325985033907569199315446300247380511805231746899550039585789719605282172566592228805105840481400100617986718840032353024030461651380238446247748140179746981300858626084722322611794287475439368540326226776243237224131259026742552924449593476053959562530982737437189151128149508006313694211824403290835240217288359121483504870952804194389391341361518099491595078217033802443300145555386921206871789700847378033483436394915489614269151199692531298404410474668342133950755960268751645718201958713519992395758688037378822767239965731961423432353752037984136916659325642423864974720613352283147358589104351353517750223498345702556037018140321978609855557952962489738815205326644731222557537159056060669485555519485474920813075722017769707159002755271498276817172347001184838304297851848736512238517977089390251393694412514113211134220724118642530181416577898085440206181387201399564193684086404145689215078493373766978068080564698342061186422965093194664849935489895015930509381617980264168622174027503769002754928051370017702946956890348993888137595175240450180964008014537739808827333846452611055599219837891295397798082341580832422931199928642293193592507361546436826343640649827357761741194916142191226295850466218789241414202646468976306678111454506161556250236226052903505931479175057274241989812713894174402419056812568717098852418398576747501235658670035765460863216358160316942881412242178655855122016704202356021917635375791929705247656589214688211797619837271801962847079398143049343322951345832371391805883877843546716296627770660324260368844672081241375820880225050991305134753925012992182048918377106418245397344215060147696240695456078995712502560178920303814585702088721548402039597756102564763396391051452610383230110017124975027493901659709775487262802360402975441316059702755156029051865087112444982063176106191487816982981033174839535344643758152239118056838377938261498805696960027031646442077861871395473900181445450389398737266693632920481995297194212303511025021384540972015906565711276014270720391664899213554881961132497346594546170793172719910262448150535081591844881535856339376162552707172527680029127200638154973795801296740123018021611483010831194048019536111861149869054098965710328862885277875194512203530867586162599901581708595684823763480261032860885411029244810999682122393118752643579657876711077184283190368083414999368009669124103364634501130390583479180402854655859286371944586136802661331197781065483732027808312578660173323136038224412240505037679575286350068991238085068459416018848515626151846227712900464346122080687629290515769443939849787473902980932018603283237779956950264983265724317794108848537342661573598678427468653927253180746158229194574218053851258299224123175680740860400731968218800259732006241036609662124683354219619618008687658780190848356119965032095393214729190902321270587420231089493394456231107537356116193311367693956501049775231968784891579597966199925912895730487344403341670153552730877748773412106112847989418652751848233264109817845740991368575779992201321136074380827261770026355764991385083986433993516360749219413236805431229247233531313436013754467670435229213078465288961624948819665676208352918717800338630489360858238733495263780980569197758644873824912789700617938099428116117058393713918978802222243732759077788186537688194585600240620554782352774662093138606886067699676295766866926968512119353405288413423721538830489003070265696212023977564271102565900465119947913939839001622567547576955834567168707938150745573846874167695157165008348206280030250741956925841040378839685888613821635255588433349456512360950077978276180317139987811249818531662682231751893209812980434699542971716964193619882093202418935064316320534783111114359927962297435641030003203810378363505920252895466164084671172084387778813657263210056256029083368316080458581476091562504922666512876746667674029743821589489674018709996744346794193649939124926541582481723714753113066964606043714173843333810674665993760123739856655598125921849007934527757233534344587093129384630148385519511231824244128811212403207331296808823910030846544312363604131398783318986951451632018010772144607484171120681532588567580677668905122734082402344974521901141780065614524832466917872362761875226273240967226234524052975099880975071703044606557241608290085189489207644645354105857121709266139198937789897711060205828209762756517963526672539995544292543482361367894522195609176242273937712666123222885170955051864802332205439369074468033668787807585468207104659706307325434406573747379398900854637629220278642415741824534706376540411330780333056283420179174746411081738602270244370124209476989021592514672336340750429950667152154346447475736034402611298875570244301062556089412518624747221428637321902959288881292336127722966651730315543652710875706641252229417336301973035553642556288145852507569564550119009504521951413128893129175924381019435755279000806356364266944717804783963606976678692287679178300013421115534615051154643575323622593654378806003315203835732511969876842072313312151262973269366816771231327099629010190594049126891819216437179577207184363852713478821143478722964054867597268112942189898994628578569262335569897439752151358412139361980261365912437443821706860056757608202254737760338500397756474240717004192486684621174751673074421556383641096143767588957036476811333587698358428598978053237347384778674806350112290394861914530075414958272107368010208608538724523548547291922011794675938370458994011697920323719521779055682993536457481876248266190112080301151377094729149758763262380410631974710605295549894852796139272642744814126852099819566464436162710427851101670023546663261681534571924963996599991452790709750732782515171616565391734837777191363413377778881492305845396967878482332909250889314398681717299921695623173524584493283935044730004501192856457901280620628571938174521578045624867383428277627246625550818342280848582520102119489312266247761753250004298138691112552490289904702476480588991894920998689407214203881860790884112565839485018746201631914843546286916236329723707491066155124012411209473401000335570563876487108560335109056140802981249081017874480910637068049258692022706355827242190756151553706473326800396595672241009381774550278778386814188329315155964948089707352315534909356075026714404214006073690940552096831479888099098850274409819927095079783138499533823045052243514675251221771964349071120998011818496120897209534098964545103454093050232017694449297790137672408004990643873322139480280425951417298355779260563208396023515402915358715147945598734055838685632832520823793236786982863912780496734662275950298917892803777442500633728446449320857929231878725147080302057048238735451794715395788451283051120151190352099695981920291135648449567376350113353977637016981589438808165213742224964322543296454746241024449783237482567052223688586478736929770566263522944907435403435228229776460067466156540072115388888116193014098901036923166250426482006352732017972321029226601899032242281984362925716568231114941927861782304640054085574838808078299657888844491688792754756661765778877423503579966669171908022972539013182834666858671659780500532990601870999856817485473860288679843861949921997966738450924836044915536480538630126627221475750923402346533369528306227201252008249046763319135130079729041020021600065618380862169755030304696115923896950533920833579051213526141596269754985432562109968802630455829972928201144303824839527217236997219819204634183679545093584459327623515807290704806526868362380468088791359797134451675613935693243500426371209716094166084577761566747695225234245740647938603278478179591343253526152600314283665775181506217776835263982959452424331761760434866186109714027596272832855090868960923188003246036182091107738141417313117153835534286322743353199412870901596760538644413955497882006205303858050106261978526696944231296669284687129998421297603674261364746532699782551215073761934322336911299479531222147667178597512189195642955399766481108967633207761136955747969687327639483205385716577420274509376385762111767546028992667570213085304775736555293275418835997181219009136234794767293880520352160755751063135409662969058560486773547530177136936195142169047496712046729901332102327561181114159962669547484533841904021783502467742913907855057080970245395982803578623079249282134574564687960668944024597813896179455509298780278540374374247995284465152627401751679788646891563391276571860748766708545483940766194532966765991896964699918313709258829492159027391216270820925736272395293236719321547654736996368512817502430224785550181375947804971410954760450179345592737802523565943560367825036978091713817950582893091968470423424891484990431951040658029617964257842408594100258734253662823369955303673048707136086607876711908666128927910735369409997017032145303864038933054587987903976736799401048447077227651609092849190373495383863810704556171210763417569439413129972290828858569929860471339649927934498733697168416572611364821924119449763237649660983137206439376632483544438590456902390459519848771716705669703903946964916155074349419493951468255605994604070925428843700574449304227710788889978635781438597046361288400744870345716866713246181932265049846593440098116771742201847696396869280890828149914949239358459841125536338408723228454628725669438613920855023775118528346734936601996189471635699232346854530774720757990366876738197532503965588780997491719649725156596944671084937383488067775624665641550604178576815197318987394728678243680524145147161779327230102155212232546130967858744968825526105827180261437883621394756248475353820290942005461607768491556543440597591114679637429141622043191443684655600610209348975281666663929831488952864760920938610408765349712488441050032121855882527094707478280620882689663611856126632863479176406820170324110712406959034365512369886587040704926362749544150009555057709755234821672643074697059680964634693791819822254911562276526404414935412721514360056820258036452626277449018115759901919602845939801328383813549846468831244930736513483503649518586889857139183702547640888539848828983699829642950767730143532594417918321915803772287164467184380430633069447979616742672013225345780046227904516804671327891138274977533063985152747540559105391099373287193455130731578139539962090253723142354068895438757141448191494107686409006210668004151660007871682042098205880783486331267814251816452713504119655836857257537049949270642941978322397973217071282030337906143162685048666507787650341000456032121908452269144248019379297271001383889410205966008774586587940765946672654467830392587298547163920433854083990810153056198953898788985668019986989061916306460811223560748253862143906214158909622783422825161998528137698418201593257405336355448494474330642795195861063809831987866530494477178744614033510060227260115353456865416018561378035541143338368571891217822754464781144348983935740626918393784346945606802796593582357531716112512415436136866486817331189933953095360685846541058431948781141617854735559458003491474925869021190259664257914636910808107549798265144516826498555255918745832520301858154656905177684743472520625736206976787764629241071577252682763673607012697436532773784234067538963147574998775124126680194028481942624254442591742995623038854961581724940191776294082244759906486197831131936306868020143255770271991416537245560013436748728958010450710951029092725060328590296662277796922812757108698982524666298325492922398717496881671996643919195140389056076443630657645042210111293700287494412290992755714276479085847248031383890835301303142703178849112910759206734975597399100356501270588058451556660422763989693417025901889003762378525272408344557048109744469372125643625845744060093895144509316159122982160934204705646387986774049515845447943837603080838977719823921624153609193491712243247329513472973750439005861142571354246071985803160112782730622724586450108995951124782417802905197552801919528578452816336484179869378990632133495483651352798408293122425622076477343809214637654619560716384672829168969715023614098453545892093122083595794246447061259644909501064453003813049349640555020137731050264221246968498719776797580570944687112343658602284489651763808284093248390418734559890335543424086179296687686356511301336392898146679374563179060797936578558815976473223068745493476542436159413420409260337855288663075347491910684726200116790285336954980760071107018508431605617084550649864638220705452820891626485721309631347297068211648466625319368807347869363115908342688399062697308750041348812983966843332705643554118058063365308388182023469989995041876344327829176994151877912017525336822983243868551922841413351233010398159417414863558325495029269780268758680630101227283765591231852401008859487324854413485215100559261899982137421497520119471317257731832573718516250823858312079105794857875503597189673784630790220167018067029108208763371074719504100165139077347026404730976851112547344746125732641466092764478331973490248472816818520787350211108446458754509752628565701062065556301222981418998812135174768728229360109312484291296846041213046342698269413277305242675990733336091307760504408430754568352625646369579481160669882801669897802329816426280254416216469422784206636410588460941636844544331243613822171683595844186945040753491351576354262607288409788042787692720083305003296662781170894970642522816966500428118179518710683339645498220142120653779749359317122541800433760088694455934883724064901830933763091718439752575824178419962519818544275920119622534878343931678454356687653145732117520290235219432295953533337259837265968978740779972917020865352856062957596585625408911786527177466922282148046239185867858019723369142061435069322793675803716982171441041880962764985237540639947852728541673454737810740629870966896994281681185796559811370131667709360949826824851076727805034081447515132015089792650367032683835269786981367454374034331589491128956581312565525141647178981737759213542523932744257358449563341738781417090005383589912134258070345320620864765437786600358481151648913715234124496530342367497135833152352444246598118315607265926071487516015579910581280300172240626407415657687638476202938521356295703068280244489543312343106805350182686423034628751370718700572512014879954307054174448594172840337099712465046517948231545672176840773342476671474900015240322380435338880539688990096573293832987758422052039611807113885483106114625597502444318588394634706873408742286084739112454625677991986420890629326927137586235980085646720623987930993748028427810699400201419872279349787123983190052579764412364594618191735880978050140875795392402137868451432284091322461169828668075366367760457864967879035545805353616940789900473727147342358211641105444893430150306293056082590519022459820921665152014223026041190458216499928990316583638737730845914294088830179570755477719107372905421527428173481280257655274091932466956022906172049620363911964253245408700731976555317277423791166757820687160187977764897850706759124304991203035400360395596425222487934208298848168764641372351112065022429826561501240182671097533250393048887679002894898964711177867810963754569535709996363654998447483594839513130788869886919871114301418087280035656321149115757884007362962934199419614151211274624343965760306285187847606272294165331485476864780644055091310981298701279492772907432216239735739175122219730734033423337826408433061339408841578367745700996091781034251025756735538031253182858936225293767729156770624994997867870032694926541451930038919954019435368362060283606498610642384411726394225656687645488430727076900640994961493054345478078317305221167791794840542683770750262059747296971549448191900657225892019777205832839170439802025457659057493538295322995130172850328296205705230318734047953229389722263761880709516250520335612557002409843952212636025278540491333780843880032303126648520766600334655048049808725825984194177387908352066406223507900100291529169340521402215968711421433347847495645232155509614048579417945567863068953823790106680513287621674425126732355725524737093571921842095692823546143987724132064762014372635780246588849038963559514068620843142523230209726414907040188034757459059091669710839319573043313514167446477427270046423792745435836614823394573610373336577018870851870067079305661498603233665465577481787819496991755333527960320521456538802202027124073501907453864175729300170743180728671177253986774198696194672346824265320645242509086259765801938644647236369440553390860208768201743292388083780073500447850125375511100805518257974344785328507216985879149377730214019585280649379360260823095624126062610821351246790153059059647484865663034765120068015887071521811185160159308789277766609873603959127073392187450866417629511330786838880240078426390627291994324350140543676513881018040251946800923974218377998041974662541930532856251755156910068976594449763440787479868991664614210643908899053322548279472194547553143162131923010467208024711324954477777955432331797417422443680459707588986976179289074277132280502192606969662574149066168087376566786395889307548829314517901208003570732989944298660437569240583858482485613604494978425844438492918061044916732725966904556377861646652769277054682206884482507758886242012950206913958603792142625543934188204210612303025991188961217077378040352963861480416133338663542782768893841166228486143511070934465021341278729023844974688860339292751919446131802282955750028097975668580620061519101886382464328362812371228520574350877637856577202895570029247528346757590294237284571083035189946021931883005823948394494057063602235596377933406259728148233262634473328721719062883410913497329899378997220416137470354023969709511379790986084502727263565375181054816337969086726591496998560589244199143256468467322036724746929390015593307241786002064720375136880611651258555329651120592971839622188722844461348767378961089298902311975886536498997917173656813050344304374239505414265589033733072065034808166957920655445313293277173471079402228958553168540822851880793394887107016114253059142347864031110077182025757225774843315018094505758291712456965729821980193365855969892708399720319983304456083244018787122429918464678453735875694595701791139791335363539574784868459230532241529874481495937009876329040223391337093193421545373450832075709832037166619687240872727078666724563290113069654260073872984518101974818695112019569998731903822911445945092712150839005599421168317178543904573234137577294510276393128517096279634852805480316636254098952248105985279867101044906746430623854406133571953770649446930960364516321353177666693181876272007355025434227330473555032926501994283929729355406508906202756193167370245116884538657633572766772449043023430155396781555246916085389231937217245238740993671532424905277250799684995442212028595129035388900508036160986223401865811322827870812071956090902368965138842249522753455057180627533768743769635478069578483076637309115348801498998000383992922879632342054709736827610053312494961390532861837330510365002428836786572281562959942805928065063157526850920675646197560787395191047371518908978684305398770791926026164746804884110390453549413314536811261261552082943017352469507245638297687455392983355138639396127747817812574912484611166775128220836775067674536599218218144440073637286455764752539936083068568575332229273747108634535608674275127544573025431481787477645213515109241475900366318174433330997824173114351425255144644341849910415208429613876659122378791792284302437692345796144226646344004811028597674178932940564851529650005799550449555952510486514881672716662181957992354417701619367953310804884514821598897385163299273584325018673510350929029469165663874274032593763005362673856754305140429015286355153813983219371159818919721665389719763639533971904786022594965579307664767518585726815902906267402361967124843527244203685184599336258004714151549422353163698948943022917970917625952188901028274538174712166205500888525809310070520341378484531160725267213204970284686178124782390949639150007170389994312584698489274644976499322484780316010718943213613009124366014745165599313921938852582077720594071140229316468139682416981600922907810541225783398028613130533950824595065351024646310835155135066776958960137961474918547665814636919062951609920168906586074718375517555928410148300742143476590353349085793766329041531386000018788943878066128622968387159525835737715768244284707830885550965046940287886955409194065903534374867708796914093163254194483775585920228052765378162550094325354564185793648032964146232027160647763056441048477976635042777654465968990343545192340392305309462998405442212682154471622357871630333440797479153460251459072085199708446877063473866002600490371674817239112698860335139581770530202476099189770395688042465624945319177667972733901340131365345152600633590108668098446058284657954279597954795976240072284529020518133849624011449009833052459309105363881240761323792398215318823110643081123581913675964616276806821913140698632298544426080273701373789488257595642694613361918298866528182117156349492754524121474762129409198104149702562365939138790734934730188370589429762457021421063362539522643456469573667193047831458546207699098977125226454280791114542321243336554591965886705057069972487683943114581840909087203319843631207854035509565668265169340835622704744670877129741503264233834502388343018730143071105743042403074665454619710927030638094910157671367333461580083699104472295670545907717508304169596703638584464741777365265993806322477575940339174591173139092168488280173065331594222814449325194915999341261909584872535662278481578962923541306172983043586418021791700043640735946194405723381143847219709579465981864026422092450274958055671960101935570470291554602665551296854149063648132611670315351364839820640415756473633593147234951096984859633069073742755763112755406208211666442532331008238785866641750397872024618974703470149143129497646742567772753342845967394171759414066116687642825399179116611271991170749614902679865978474629755104026966198278116035525698425109768883868658799691345731383813998247057177370011108745270069435844650815229217025565022696285384483778894699909372946363323476539758390517818826795150079872630923883935737058726856014624908682464752554798517007666454053877164850954450675052955900581672767969300697386035103541755455902614469075480190069876525265316979727154364742613195110840238621962947071871598915026733931423000892925354405554782178560295718504333454690187869205845628159859142164687342231821413590604490804710389051860521944857757376616225421686144292857259499088943677006834927770424566219396049550475962379011998330548815618243643514970434235761098306835772653488390489051484397720623628534501466372315316294624214403837680483813201597291554039533611224870288671368996146891006100233823480232422891693164481990982912234001256375490072038656833857191727064900685493077401413175954785399917317312603085791553254792642851918808283923631915132124522168984844955696226156945029359304576997242348206354707640767889367430636999667662161072811879951914234055966795801903624927949940102391840304227473904753129934835668877254793511600753194878203781597914915717742051089697525152795496521577321317555173149903830610305290923777392262531131206210794147611671641442320858883215351605523941243644729052964927879600283726781217519999159807942390533415731939265734794578159964058410621526913450093499037294953564769666043492964367287121038194766639602312402263139345918530723398699476286806878829659157438998497624062724882055092363299017851602722567959752204433109751683073831671482469774239328768310612097822372688448165869573063165932670485848194867808196928734876995971024998515568062594370833653623938428641503525622968031517194985469977195026369910316287067741888824989178559187415071970111835650473403798752904972346497709257721613216836930526988026091227294142721633090931104643218351468456003772694826899656306773852086266146500489140459088533422829091858205334616619537092574321429517291237013429525357045283227986498909152044158653805076038912381890327995423462425040539445002815342405686787414157764557139658902906735315313002670285565938407604575578566887524535943153505363847905536349888747309811589479961971543959235305643352790361472717773233947835217914706995235720814681045335367328767739840314423609829686940114408767163226015119568473461087973752189315190187128386814183815226612377336009995042422056632615609846571938226087191413259731868394045870682197649810293779994597788236207507631503343338920668740995868364086600608780484860855873747518323776450204580477629829594057992790080820023676786892142751942934911124946593024243384637841175803337453452413323055831118112533973576627302158298915954783108293341013347500027547021807233698627907852885391560732996139726655449703306911460050562893868686045726223134271649179302415673864130367131878644892820324348207558380904495957160711111299465128786268453366549583363958574977190339771263561675001393312354318527457546555191672944663750056686416353045493002204781151228955995658676465999016507456159033051187608939097484306149672190442613408078418833060771559052075135601135966631174281236180457479057826615910441260373344554772050238280114412244128505781827370957596819757297246847336451539983316874993622152881125053117509452012554353284075746940829954537048758660120177913303088357710182924995055080679288648823824746854353039856933703388508134110061639799211944219394758684470254189483414010915243621639555048225705138736263229033704686159817984809402059399091247192884354020515081854033405227354039074388965729892315607823744488924203058520225585281667933729705461818257242162729124206510606672447931009762610323537059289213579104429924247022174095168226357678309127700386141137782879509797561839163419705339632473574203427301754420655259088138168175514935557261230311337597672534247911443837635822222130360135247093247742826730795581536700789031393753981547926341810728696768609281109752184484482118002658037213941226793236955238616121838991647732626139060742380690935581345953808647606236996498656652886206577690652410992136665560591561993292106226210126449554696415692586570387868619094847100403977903833535384172352771977251897846054820565257280693891519426163956485284174470987587070599049106258917454839205127445865697805624384722841491347309426610271353939888184099090460218039906657701131547351556745914993267271285656974706215340586660138994787757322643469754890933775636559755181244398680637101512321626083320371401761820132819294095768206053130488490012016658585432141945959076225097005562481591859505596528467387358418111441983996314696003237707590019987533111001990914301919991238316135233020848948832449187127607232173876079932493731466913293810793217220836906310238720826377308217719610256494270760511620135871596891375446344229383563108537382313752850188667632578285508737471248550020160947270131676079626287530696608469281248832398997755376996611942881160501639173988327606899994600160955338699306094548468443475769927888912838466080952630006542566286296469217498219798325599902241009004896087770135909714186787009508164823629719027022377871336685554492233745601777973140816921964766149528327497064469185605845707757099773686478930262563601259331519780388702339225130048262140316628327026799023246991586625055261512568449652641596870202797135378046152076911367334965619334168919700649620182503096129081288298045266676656309733666603657070585239560174661286046910679467986967335033805577629599014788442216589528970775999014754032854082839568418822900620925820701348354614653154346828440694003786714520487636780301323513565600309854882737833590600241492554955340703570192150991651389824840951004637196837397065475939666354307606122555689968662931000151646654469707231791916125533604405484936958404329061167619136504530957303332209382368385408440111199972754570081451353366395383453787797143969599107629895296019414780183959155078667847556568702076857135655344885681267726794052126703424667388595726033347170867510974034289081019602608707756189431835348176264818251777961884597714765247770254886864648695252161368652565303293894761971074120541063303895795157792097230819334145946516854657943173050521100850401357400594314969437189176441576841061621311675253844179776104774591051000900095959166905221438438908476740501874190200430357332233616086696503594370187237173181306519805346586000672556129081964505213953586694096125775872499660625499242317736297468685441781104070460060075435886881132115300731610275023134416489989370040478161548290162715486246197054465822845128330510596999568337390083213158556847943705778476194933566738435477878991204540330065580561746271205500780959935453351164300719781511956156419129628607612618723356435493045539067394250161073009592583456712347647999721293245711869775770661879689336648534038057233283053752074166839099226159711575623214730389384741622295427430419751722301819318964937820137150881591855511532795416471229096527870960874074474674030893159601820634470213134072255516083376702769231056605374297093053143639388471968611154307258730944301812446251767832158503573509209968207135906545547307513538107343939934999929251674452077237005347364924984323922082296779202610092472385759572115417678048616454958745876366119181078771341712237898326417094149412817782881421622258761943368497830365436828504930127540982702047881837236647405729743969540521563342919406821520364156489077486236547336275324759228476637702361287494857417120351972922160018333640541959854166323080637258142540642328004820718053469327621244671067380738966039271519865428931824226425557303880859878759266095760071417426490786754651149692490354570455231985556940345850275444455750788671808335848090091017049601771628618397648220913935843068098333078980316862569720153288826897808687122190691531812386048439293157437795901841702608052847596329283776723693174506507519412108993142922682236690655302840846777188037537022978380079786184613163096565472708087555359055903927287979086823241417791612059425682301965830601239171453881798126975738532498991551344616347545877082355687214272752905890958471737573796723182583121399259768926897416560478345637414993172819987235844180999944973974667243304781356793622374805193526974879068057644939228738602944999399175605966099042920340154169085930027879988628536464480628976298171371209352298808108401353708570440696293437063654167762431610294066014761025044098946288420333983409591138801913765329549902023876852292916932672164473803276280545945145755003354645349026763365287779958467324929132158208623547778467820977670031206963854583309435880118770245200305425965693579066787441000296404568805988621426736740186661093918402654539633081599443438515629851724176102789156704960010843649201969100500776054848420303412374408428049419098516595949097994909947605946152305801203930558696180648605881768388554739947274382564920343045871082827078158399461767021093040709970583556741013978863335466903286695852496123375720922174414674632239330208647407408121409978219609271418743211764004977911799138954072835349255056652930298430954476992144636289490874998595345555955897478652484488443052783155734672213533595300320900445315458080945073729082401631897930856039571102084913058093550297579021767289241933179998310134402962527161397238008839775400889395481197235183420688512224880913093036521440182658167630151896759099826586446596464236766474795100042502703144634380541826459033344895131320515014036292702304558719675610548822638354998642165161835463798232594405824668348648790454053577563409390720132743490301879357063421603812968544512903919758013229303826686491071537345365801505557106967049347582631500176432245981705044088679344136538748196173403915454259155422674320198676493397418098375225279634410125556385740514479719417733172245063873534664052170096080078712214107095764137299727406414694082062657632280460436575365363470416952114463875655506325689429940566513377075108282983816459481699183373849518988837859297607230163557338431666620743225980227427015368841774071040705322641751605971542541130423406405355037639600993955605132619650860853044351346042615577319694233086765836160542359220488583270726754029563874077848682185887271791044776747481588913479672868505230074205414452281513233150321918628194868923752442338173037167399750230924780191276816594293043979602224418436178493704136935049646635598878962722968457010578775469427452470078363162945783829584340450209130329477671742505400159060628796254207490502866126742153617138650955858210977860502358125193573415610074556254265357901239702679258567326602098188986043606304985780175450533601414983110370597667640024908238724238237316080056377778696646258045171900299240041339610438108836099843896373270777191694205147185658320379619887666178619863579965817012382249889553264422692437991988269706838511339061800195435936570781143092716063293415161205271537066179117159896792100772969782934435556728389021429137836471212930960561506233778967808377082317557351919614606423400582633332226680241360751370489773300685937128556222322515656732184687974476226414756839127866804293390031175216194666567126155787443604255414337943364734926369389946982732344140794053812263204559750634733112600872627988381905814396806772836983181731183256223964232457705186654662391042078965493377931112613787331158724483444511782613028400853011496295024290197975474473729053062044084141078423529633575713140203271025023030627134470316409304282234814057855438097334625771593776308713167839709824828308519377049568274060993300806468248807253685308394236730886000898777156317617137528552810040806668359892464492721457387727321908642038593473685673172083426258391242270489531743974419841035651089711290460142286071803249007453877038574424840811610048434374872513303093756819275810741772852695732662136620784658917364282396499758438603776545339767981626947427147477075918990112451880958918182302308459857907628261872101269811850226939094159540530256436534594175864496782154514817133827147463819400988637798470777868840652057710690962162127020278224249266226333464715140259681600390350417167964453398556139839612721744760695801592645463170356474183391153638980074867970344005772434833465107901788418164609908516295394210102163822966305180862801163966053770733353370793364576902156993539298029653473643463821834257678944515611827978885465863594001766176337274259026447210652182726370339266558262267069870948065861784655067468940458367125075859743504007430362793293510135324808445017250674791868812990244921045742245781335206221890098034436213658239027518090774573028406006425290637811421114434714058851705525206546708403813439340482269477490495715804232774023098509105070367028268634443051152099531575378383151810264846855014515309442754272760270608317536832446095587595572665559824201045478748820694717611863857476680695793554028188709475459638896536688959318893637600142311380115904740343425766037672985662530432825207600884641140980061041861077293683296054602086671843640972664775865722688643001618027963982808038365735085031304646324831074104293435502300309518799264652205985139791730742737481574030196771613968086487808693768710754068823347227565129121032714291326235013034582287939804662681032464390633026903917194248723981218130596978195021511720046825833201981328862853044286456199659279334578144756458798527214049569023710044519901431134073809284814847868480034332771377739247296074009986753959104818018508351465028060898596958384211580123237456685618058906819917202216657710691405152278524289740186686932345358446123292099536279017624911054910120031998259869150963654452698409449659643100450941667514738440048615617941044570272444630525646423057935145081092804172397467433804665892311232329807000387057386351876909175954557067803684472822937191016492207027849533544720776537155655017438985175374272569534064533994855814944278885332449585655234208051899733486865299597952682149559334919408411561979007047174148299404951288034223719664115565101271710881849001104659183819190909802739887068956412412446610204222312168128467458933174825127276396864241002994737615524951967319393021462619537410157441252821451902881597488469024207492095079764489087322547681640734889181126593582463332838082485528660141101152153751346867839917017981618994401886227546986643618990797970374166190655132031615825286857873469332542969014161043492723194962728503148993062312915792031367161623888136162217160383045125509282723065087522952759224128471529954016060309505346203875381293219241841154357386312587604361613529816124416290727046226539412743410541052539912067520257148675954417474150146511613138651366308238739927682066773663630994097618477459941480072321001266934992338472319161606803202313371694773862457787188974320075987168727660250695723155612503220155338997823992562762026816465727637402375764819443479329670458481257161131122068663435443880705560701519119248731894064247364813286292754910693193214068260138812124662415494010819947861936864279285027161132881594915881556930076379042852078024998409001634463703084219042517036995708815290954789685488076676050555043459057384904592637259359982052089126534263338026075186991653749230394136394739506065386913256876436362395391199174948148087658466031269957657049339662499126931265956129438919167254162863948523716821778482161130523081250357305710259568073546224299548120776753866496172864596584594109117769095239607348493674316170709518999165622154930822887419368778607114337485751006947901809869081200797678374306013372680428203534285086495522669393177396400479984662996891722340345534528407419492130387870637611992781097845498375866003108135569969645588265060924169653854835352608064459412955589211045008880596712010642505855978504841339403196488684967064302279505408989558863229844892693220276517544556752762594511797306666519307156790015364443288768787265267034977243713321109414767087237125135259412388213100325266260108401790203600730378846797860768436837969372339458906502407189656076268056225569860202096112700170139404076224771262718918679655267077830131428180547137345305123438418613866568626615300730892062118657526420390304414856091579186933778917003640504488049234420076346703473380661565016864718805005511127915608778098065131688542875013637092331554692868386387728159123285350447521792749819906690934358829732169736926888122954616905443789302209994442540722024564961438809213753740496127734400902698946523025209828234171494329336274139682748238682908812861327844210615391617199107966806323512613546080166631559315042533964616280450486897690245609663162960601351801002782250059904911599060501990756294993182624493030796985095338029721085525716766647089605604720717645961729737395375927148891583557080193361096020594124994680532101535107782959960267333499159301160494122067379832972948588686245252232676504628886541776359960561643870354435092601191220730069570845047823225588412403365690290473955267800064347210101479784614342893024572920677613512724252986636231340189269277028190287432936275678253425908764188963415105410332645052281922502641204831752103057815357755689607862244027934974793569366857234401302704449157214892645237351625420706556870035169666842989433811100037958840061883651654614993476850442098711254085395796198698607167259569191412434402751741842218511211770343108547772953373465461869222434596099851166310650275885772425799611860616916470765805065060750518613278292493929107125450755194968365977414544003487241646064587204391089928448689108341319711194437158978804559356484932692079804053623247700385544487834549677001731344470925934146598819012340004677053920739950814185135231732154568876442693132786222932675619895420253987753660572536313324346673450495864636596346709463899840656559035288822086875465193789615281408116563019449169139202448689550612647866260981178422831334737075447597947953303211611304617512846187481820476244754192099021248856687622938673861118684189498849552581817173089492984338707569183993657805647695197751790264729280697613822382295280841725205828791277938352226156307555514525043725254482787039878730297169430912116075203283235987575575299446288084613213124391493776220743096947549706815584263270951796449637531349394427758946384769820012655211270104247713709170056094744634997430925590778783273752355768122176042850841761190900528290426631024659087428858615184335543656164452813584437587437112311831474773892128782740773189786884421358906721628316384453673741249846587910496853010193252276360105909206852656591277144686407085064308003877122476080656568849958715636446898671581400590459752753461852529886519270724705695446992426024950919646614385739531710612973131741434434069686380980961009500161835823041919283487615495540951506657038205598503333691901020833245669921632217389608045719627003841274349006401933882716473576293368641508715269784559068392504242745347211419646662547430103221165049582374523124017412008969405143513718712045381283291011171983383972939478351266458721642598859537282474146728119691473819497307603810232756059018344479844794535603995001951984740430375463461855072015190987338858667776491613712039266090558464864855669721286822727339323893437115379742316438798036027395356550004123494316052389347724507250739749013609645493749182956534286092560024942758179350877800448609391826339740013386692050428007848382415024296229676784489509950339539884872775173006370925119841847686286319177086900521368237217816174089280808984525675660150836519267061670846693755222052468160286511464990245943092265313922406561695981358427014501279629496723820276227621645922394636759747727755685397966350192885757218199188930616810115145129729412740164848666401054313596000766999533141941421327152891055790982532622610430637412755999332591264652835336624422053674611994174280780736040052557019369264085905640435883531297232752953827291898110093334873923064682344361484839020879548317924492445753691733834702168461967352848108048780059765572471853146679944040869074101674361014195271800618316369618599515532583883162620776743974158644712527106452999709773731706803840278512133394330511673812590376320208474333004781085395841559626822763063799388913293689452372431018325393704609190186583436284971432055917075793649870448846913797454494545118582482732520329607813258380367827161599321446300015310932444672376112590293897715713210944495015959033858765287281888094534281611086594031524345530511712782066082197936987842172810068381007950011534988150324905202966526507648238987554375429138389612236884375421013054757676323532973811459821235342598473811883159378919910289887677191224436647463132077372946919837181479926130837690619151144962120299850658258340882933200148541433237570507184185200695221115780070608553567726702358441286429234326903255993299604334477467669553685600448527156568934254738814488907433514726861915957229213841427422134592354848575809547875356372257658792461215850593278484400833439115780729208809551829404106060381905632377086603161233552230193520557807396725853613230629151970646308135719087219795876320986019449131133811690220943927764866291601621529459064442023709105101178834789454719933462966614274194130214154737189928630882706270457008246698925705770358451749149953140438194270478767622974088522628716437765035108128997794809997385490093327451402853140407006124299509350780995087526835195753315247460134948992002692652446508170954240296914733593064198051199032666471511604712813917844121617509345799246126714387870782189853137687110926103329622199814375285491768031700927914271004349556976733274543112114997575503910133921235161024564552197870232097534833534398218727045552197320303776655489845716792562081807184988672464044576051886680956706788928157238484042239164800013715556336603263051916469187440127962647858597127317169771140043222648327700719890815779649265335722799578629291005656290262266499395992004082535286272203197095795396642844913170762082803730215490434297763431261552654422034019053176563018921929107445857573670202673614374251953887789304497945248587876793598013940435617126694068824752881510333988185569869517047260981073477868541502900607605141319064643690113739250459068399403172714209053327280375635902628793377186793951607346628608335355168981654865537942268082286460206647515207377918217560986180106486537708537112147112804690616194940449305162622999061365569667288281428868127609221913710165386508816450154143251082876610838590512936441735698947645676857622116718044310258369192490559852480432506470599255571923482983027131737790110802460518041616656072739543110260358294816312974689920795385377602295958099351703380796649465404831011476650111605532578010133819367838575910851346354420695022689556780883693995175408059047666376605674635220903824440227903361372481047559163119108943008460760976425230076771135239772424362029094242311811074956628023369728704892997969373451773740962203000473869416674833635101731723368380999148437314501487718748361493960093464105418416383392689914395817055499885443035100327955492264992252408088188447700235369057755030052463654296968418935899435886723896682441696692694479606681552119072698646879538649766698886840807116747954740164802938792115797619864129247657957046477246245383695525675567105999331185331249489486267056106593183584328409879953638750882013378244676244277510387907560138049957861470098786002965625474601404746155498457257387156769901630760931217796293321330809810206326227778189397532657424782729952458816509044433303155629165466612243672513388023367834925239434617144795292360767657754073866036380038562138340552847782276115027252001809599805943753422734831503186905458882143336423643612138184811455754573133821204915020321760704057765745440220493584882313679240050713645920838702348379346320586882479918829289616976855853901314717552720034712316800068268824205110678351447627685288288934947534696299655676910642551030782478358242486018374196950779612898698191343635714055897648574579704198983529541482827429937147709806216924564758710033466557743670994373101970881202069754505615183791601687546486321843634379022757495882792772099086061148775413858978440497248492406653081108822275776819670630506346162993190935060705980309957709975328656799226722957240026206166135787618312673699506983086156785510910532314050775778641806829861894393266698967675251909572175910599969869418280479681237162292390706672056653063584119136128732378630013491064072121243040556060370999134268431231734185194260371404822868363489269921991988780298678846938972218019859655833095751497316975475664037876848253730970009471649022387974078674699788258922025224075622082518112652361040295580926730302947793439636072032406765006800292310538508607327587417998435087028223580516535469501146842271564605527564949862747372621302352289129916662842782334704480351982724613653387063946860488068833465055026830089457132211495278513158520353918252915068907964956261883435279359868803680199822561202943474935893323868346209211548116016082578439084925561494549678154163167490401447762160835439049888940696993182822479193416677941892169670864898004984764200679020254648168065791650184023591432528234121976340266708491144985589801830760239280937675599747115366177869568602006198135418623579800140732443828203322945181804692132291264052708704742429721096470700126333643452187138381249990809108459334806543241726425980246117228847351843899466129637082576574611274097684519857546010718100884513532356392293641891107831914695431863984886984702118978188907489280582323296741627147534110896492618042147490580214216493547480717986789771065266126447979600344289843786801138928558319734969542183054621731458626642692908831160385810941779175509111978517787641161883781746038387051609149382126328194872459695078702606411283416599942694497119413087466445803795776010568354856142497807638830981965381799483697872205644880431031619535737966102753815625587233076281293481615234077248952520860341830765068105181016508886646296791815700364644922543586909565023310674379122538910337920798502435691731311034522096263461850609776111462444794422551830519237144347008678664524560540940970111041171346655764069822795879629913732405273380153801292123721889553798198965542339283576396466497824099219221792556602158535885074942776592060071901716622323476505117980182922548250163104434722787353542161998892808297306986924885694839688927100061860143615492737668322373080666915589882696261753702423998894512291655251443927538623703781670844840200938832329375313299977291725872248842082263897855945212910242945680404906782247913665554113161548537003804088363156132626372959329358781792922902082424668338296976580550285022678621133499088203443907891601755337881412871814168197791729483529449986943068051975753104325214912288555543609987054610920621341592623098854175690978980528125750491696706131775236314541089664408028355398850259257659469725288385269785335893428815744136639779907630260931728740372022306043397580726502524142656939537897597886987147310916584621737625748451203666184652233100926517851393032097904797615338990714345450384598419191800443029784776184392769310579310470492546028317244615949142273747946282980702076534068640068778864466806806531519350004373537007940463081270285514903840362287027556665190462362825159655014674233517325152525069327431260914297922016309860903550132084314332120245845937176243008077664903894222539699777843907767722338277314872110550942626659105935837634027933864945746123752710987472033117868211150776259816057675452769163203321897024304412210922895210712313894541485240667647539094117916316254653287246685518570863337909006251281938239000956939270415865339374885972605122895007652672087514165998162325830137723593528803683356656946864857454673552398204657739433182442014550373932736910565109115670006108120865255040665483275201109601991380180178407170115242878606661073644793399796883082293630635807403780360265347877648979997990029746523868737512690861678365546574175763082213521341355896830900113841434369690136577722574765491400609272204593007837218500806784933774114133473745144044254897707578497587725744146040959918735621228855114428972193457399001318504220993201480129738939783285917020300430590980918424026831231409716074143660199140176746413756916430143242135007052894151505613764819641048431167253901286713322588866427783541616631157338987920322790125341663883558358553840398864949233759169683476845282710218950149358528550380244753358587844454950993629986972414596300218486704843917511995872095535174340406773734224395247920697727596184283284822543949681827604349011609176201097971052980530616970151325072953750158478403018233054924391574957922671734361677378805498983601902632236472684041172859920447583029730929574034317050833976011620839381103935885876678576743069054135708349689112052639435994561383342547146104094641568790796031899347272895145237753639101172119100094978869827808412900156370615120102620107255814940283815015596453109250932052107254788439782924690984900510682061610506596402459622550572530411414601955405249670047585803756854789713555369228378047792746521600462256294205269872496566292240783147910874212689497203368874339083357265639378110986537139045802670396707793001425580198176345701340386289128483456691998876808165488514631262222991194286728460333066992198733199912738484541630266988532678748439242642407112034647229304987865596513324333489244098350316469565841667606878234864581322293686108164656526105907526771632702783206297116731396357729967735357534683996591384651095497535541650765916316599566638869002424610794528608189160859584835463339136978517478817717653159478709681217542385388824682845808297749089749336603191869330912046398413280000376275408673234940664992370708348948050039162253195062716169329108559640196687180164910634725455769369495350293702766130572215408371382918012446245373960184952872907157194818894697021003720239096016466065683450136926777434606683080608728028116675035556348625239784723145681043224337373313383389554919927563727881048687119452987395488268419398582566476149334622744726126872110442632178117313331288740435907010411074594332033570130001278518686974587122518653180376665571217908437102478718705765046334035674359357468126326641902338588431058931927407079149749972882770786355234182926470197774162905340603434077177538556719952683771794640918719930821765640503808152555653226572660592649782924694468032190247342241477018658836317345074751232902999262467264311971217745650086758781222933092311293105753658010971905942853020602865122699033442101263524804374250808983669913419035333012685006210552427409993516893381797897229199924578250537657550203860816495896864356052248055413732940767634361343419672156550027849297327960087581671517039932547986677010658771847399373216967047893155273380612967508471482693540258601188569523781714662207677524654489406355912846153875529056623882650285431313575415846863638665564562974454257760701362829492933321802900485195699802064677758102214519957881226455885499775382198943202524524569720493501449637634137081316270663817331820468888622989865029054615143809095091809352831156079207868263542407546759581525937724107883833430949220469741512260087679280873802697308874938748760231613027742062932073354402786208966742359534531549815278749389150270719404210516685293728393837457418846342343153156963646885823161492364137483358653012201248014373812351385582456830879139283561158823904204025236010200401611024894079989502405347155259557326103102338160782941597691579401133405710601314576589292696585595052152235918786724428889968025855590814079878490257217986082544883554752973961801357273547528223391530147544092628672131811256282688256415390385810922272320363551997466600221587572297710101064703365085479579363368501845123828574326645712838866497409386715370168655250829040872232716877242048256915493671848013158667994366008428369589142329300093269235288299452824068170741922220974210384190275352842302928274743680690981752521588373866452432498562260206930490004542317597795003911424403018226275492256434731313650739549723516750162877174206483046206859177935290321984363346281253454295130293475912880806814260617016549255075026309750983309103889102802694799846779530086741007576048256783810693204278368762873585654564598301355590581481076792433174524095739379872095173817962629499912216975467916461906661778523379100704724191935596032909316215611016424913835881907459728344792590414592038177911710425011054700497395758150297913531000831211948609610113309433022307739746704906002335723256370734046376891519911766182719016612185909945680468962257613540271965462779783370727417053477344077284767237466686149401519719512073727452460631695629122727884803469769859877525193944383891884466938364921902891888932241526137729428973364471242610856814376686111341994370771365516312985612396058311775685105595182051771037837751014707028256280128355683938877258958932604936193955660676038734062411194746622652276227534143771143950665977458905162118465033856750621355058674451040382729136886452030231314095173931531092789589670273524158809031280306730669826713061082133486708069798836837721347702041996604940506057536554543827753619615791264065049618452172043351134643000425177361501742582913460813980071705999351292537706545854939790960212594154885164502955255431987501573746054620396598780409643894724899356974893484746142449881794570164477928935027596212344287256481424888449642266975358097525830930798404778937025684188706097918778241627812407038268506370383235560271153149154734145167380397711166011523963222947086740592323774382803628670046174804203832765176994216441548312075078104956415782579656925065461739361255236768062615161529647296713012406802641623930382960934387700169516277770149899039905792421488820480223062546776368745544556268564678077944994031376810362316655907086034462318799085695673868436844799510011575443280474152289739740540451826106439659994165957893796150034574361432532011573259756404779711229794595088263531144750364904198316980436330433330228169399494069703390777485850354049154252159510497274864756308334292722255846167231589192004755089913260390307251029670813365374228082254284273772541760217755572009666407889553323106824423223748939658739460188745144898437266820192165199246130115832391549626124275922041055527337107853697120259294595102896133258528316003240212794405783730814664564231688357186253458131288249050990270291002915416787573724651550936953925775049175635100530886676135616575001959233234266038572509411731269305112392097181019070681162865728647010620749496770543718000228444839102588785846127498456352943904162561623106512393466102696425482644824849086856321733710994221132921042483739440100286390540794539556129944580841777432939218627895486991487462267847594036508208561858136730765519246453467988953349095747547620078016105139832275928787341518823846253022356227835311269759764205471541262705618809572913767262022394522124339112367056765412068159383589887421058236189258951319788896052905677856322640348425699168116598004059907004937275079401645680786859077077300294351188389979965258802752845535142755917504971188708048215069763894934104830666317373462989699355099885949796891378404035337845848818601975224081589964500630793449451400862385467375521462351115072504151735661000508446258862523358373395943039789755699245302021965230955683146414573904859917997796197578497426003062469069763550874021552123939112521196597988040838456518980911059079955083703365788256724201824251999960616001951293912335097017345119710090973628445489882456997265020733567621214432671139818078521518228070798796965108310884876475549222812212000538956553574254593880668209458085370173337099977669502874157925859248790370338409910792552836089784313038630000273430160104224132401384708705443839920675500336502263532167793940894810608407898531857109386742876138085668464825641106574171301129138655702510770562497211950528650814913969588345258645651790600341259630278037502840734978272017564841158184290519796840901181454485581676129746582224715202389359868643237675836430543118403187118862191423142586230264772765485924672910959911406567741886328717468270790804790088683373226757745701292914410255329370058459070007438257652468659458537594650513023508852076942554690959897277859432297867306730805522647557458254501703829479405890023261295038153064725702848765496468039690903240883343523569479016228556490869070704764946735904518433545456220991722807132996410736565771796858577094063617885017597872642647173075667515885882784374262108261016220602207030237489473845128605317969861241290401874426095032780299693927100650916447689858179137614691275436707924643284334271742197069365609140142232239134186331398343936976548501112668625044243504077116921957952581532946892818785354965792543316359302540136124026877161982187361635124993865321903637476545690925497067674776324395873497039019680379157125291464759165311584180048352313118475754732945768231555556340136556311644896687361974245586980903121436631169588769283724512099484185296561060040257311092732304344834905136632280329919949383908175729316386619533749527532662195587286875150969953332110717833916112240355695233371411481925977271197692835497163772478668358451425457807801821890376436344638745068486088549531410142993150385497114513628967927592628021414621322428060747819656761635093241508086544137915282682289596115627006602575984488591453166750449360022298599408052141994348936372880387012558132516458080423357864102771454981540966285219863514488339276739134094971434053315155054230711488937593595932559818025369053574523105015111162765700494019394387869209547453508081608704027791786846097093416460455585540535912879917769912590047866370588741881450225882094982380562446925226810776208534871204663906973843849656017194664021843934468159282410586457602537250468606081320338765915699327394721909846916951263389210379146346203661822314223063538664772893194647166996390166893844902487018536737673636349466519556114525535465150903778547151378953067664935304510861354092236997437656851801090535719176916029550889574623681628156656241436052689810410884476385617153919320766860281537806944647725227426406922561072641453078810234591385070526770730191654927846198467925325365897099140256195036177435339761267987636627146194959798064496999421360433073737778167075178189374519918569065209587527868166570594561662262002130178105660187269790913597653250614212332972796993398995878212225298065380620649151839897154629312679306144239347716299576367162733995166998769798753528903319801373302082504649028460021352881053121691034631116456524805132942009429867225847282985200072412035887153975989292779628390740916924680271118947249906016081237647363324407120960998331087047444543541672120224827480378934325584641609105297078017594511754031940195974307878688534997761940962878415751248242175644522154752982671874174338621965597877848031204103091545314547824256754057744139430716577229238080987761911334808881439788127357843913123549430123582537287490588059317586525588411215593989724209097397329405754165413889636895252349586101534816791553556447944533174818760151412289834898323092225313194304807213052705195871299976091152165402873034210886844592534676155721194288518516521611808221512677870001443475778038998554586486544890186334881074521857499118864542186637542983907530661295107664955079251792359874634066548832931192111186503433738295305930582160999646077289286049884776501628365374869107000493187803765895937468106643979673566861544685778667764807798729363843013720761460102453965482403905613052098225862680311775899694363452212490013668592750250546545802933428034996386458761248348786224993358979953947980778352057841321000112842203381798359481152483735859788006649957117108574174125978073246404506003929659547645922244684460854677373234781605731290005866985728328232120631978174750763212647021540893128245534067396313104980762377801097982647326490565004840897025796894599561477919683307352798075181561519977367013298282494181242696677066441385386922990120643769234870689179556964179807440780839674539123379882777718412110328817660152427758874525469915430336299129494622297839702603941806307063050764611856227982734798219828310051974448148156365443228804207017877881674154966213071787643803211832529798636406668539198975077515549711295217221797784190531761650550181001473932680047222409373017649388160628692173622808971970460546386868395491298057494675414698334648307309934750175013429431313745075743427730337295206214642676984799949403774426794432002160024064602904204292480380121878707175593131201720715141037867528945157989547224560289409823477098846958877240677844758348256128171556030361863152987998237508477814338253411741224467804013644727450594391642745175626045448436442393878924026352708529270197170213958523307037325528674770485124523333850730328509805165936758135289367419978931160164986758355628103072671446186786011529053735159099126235253284921487935097825940227922073529174347183068435064622529501670766253852695557430848431348160512043648948667551726858125912992626232152540844554273230146496487193088716514355181988126287043935842178047154427824465859714671439890432006196774654149083601450678562549916493119734484128436352600655868038277471519026201060320398514811014999869571005662649006725859988705055955511493840224722055584510934915276825891890237762112703975481926647870713811841884085237016277609268841929178285181169864139541395772997111049709797347976558033192287170439757226655078521023597781086769384610829641324339271021721099348213794992828363854853480944948478127990001827898577023478516522266718612165401322667724789052272964892124879791178973244569907356611104180172609733536808366898530123698416892776230060916353099083607342406027401423474309694673943558987431832812225168356497233648341090575135647519853570430337949833543457532065446504398633711514211440402079237260600105070431038275139443670992639997563589318739692029567276278024830122298607954917757019810491338952971329514623974284464247279569469061547056430298943354907291201577852518880494857851946271519895363286386423657862229784548924049751679020985839247654741955907397520824867066491457613570795024380813960807960685117078012788469176137949678583936616463957817805025040179639464930987306503910890947217538477897227735854855481435324118852512199564791905469580867640487648498405159364491073311749248048264115416948646326106245304377674482491162832636682185817173720162512381978727649372206651567753707063188979197558863982997507375422586154179220842273858590061766398800577895718451341807181589416566475786636172102431411109984892105634610430432573685463077349867645245606393990549869015338361725451834560413540693879379845061971498781543113517048472505673638341259698958792790796680407035045605376432528397038287871249553716073881129736235835884887960313228655806351890551805533156987171697467689189095476979012127179580440349648257216920562271170830507646217900699676674161169294674166615350217995231695482139370690749584615060485291205130390042079334996339888301533683764927403279057267342029174488342917488267401687778773322177657111272718158257894774558984485192138653491784641966379600763918636464270444779369921236690620569557456351965344226344232859089232506908966423165079707423672739539231721926659236634936724450897967846866513133072384421604192525278965666857147297805577519011828252695029496046100356850814776294927280400469326492048349722010568046074339962577610553822033801532505833214829116239967166750512417529500269011211254752378860851213695032444200031359947471592984904758727703504459301247584135671917235332396038879638905089733116723982128843440447040271120052540852922730749847576151821769514140782941114448837202202127994396466316070366582274608476112698702583330972560674963013375117610042570219646827017995083424972595809161884710591772306528791969396257121689537730533756877618411953723731034475495702060345789776818965532569500756422045140548310873845192711312516971914504775542822053720228091036887332145802512565569819902260639450409469815355343272350509764612915023442252413180888614935386542274683824062602854443224958050474421027793438970821133432602508202977010690491482803305193504214130475026472046200248308316096440855247766975585638410992027246362618601481226492316041220188598677237582896944472132092961713695917527615089644316142795213221385332238514685976131294648408890233995802898144058904029716893066783023053202715046168668185777009920945564168798646526157555976011258961835957999957295755911138666098612898320554627489025399240566141310404907596753644317975232746982954402507451825524862243398400588484946081236725573547910692657459582359350759645906086463000645445634983759336340152230020207068778834997981788832583109767061165862472765572576792773511924593516787841067753273110483004852956834360850617825124657172519004873906307414286209660822626710708680716489125953139603203440401358414005661044962539819635090202332092553341405230505842251915903845732952716697152085464027325432671367663193968080256164877979490243948906505370648579764629628763136117157438694470057602101460115740145759911499383090642233719440204006857877278517692667138407277331870602455434638040937570249008081215905530864403787781187492332187622145323096561322821690709167514153669526720477356792006683663338553372536218897155348080465088866084607160945066473031865521826963957713504310508614861355519556097509511893574134516989795011762687234268811538387634601040752248871410009281718563724016258248046917657989984479146481685922886893153610591790578108201510742286156862425966585618344750084998288865328292159204039677672752307351857469755623435782784720361130311058667614641616799754805533166558290910493797830459703581528916865837059215137572166993330209367417595090951889432579131202357881402798510333852296755129622058667777839147243200832987352544990556683350492456661139477540012015864503163348170638674637905193141805851999891856682795320669238663527431150187020597996905744832513684985011710721089515525639141580881397154134658930682528300161237206305316047670655514013316029839477822141560136567611676688233002554223420624401620912036344063533923220880734351161396377682321457263722968981470416358832475698506361248465908740789369073197094769700461949135079402036823180759125545914641527553144856429010063661739618266199883560478267786282178795971796960453410169841942712200110033911829593073310267247042677982619537363672533260738222007390620387364224571583586681482253149092297364567485748912284606192984080837124925416549186107087703015801909774706290731937562606849280921179616868978343154165394758418392444778948047629933408297285492479299282884255008106846016098088160646076169257053257315334121954544103132023371857681490446096868776914662229750591642206184378818307247496840553009367574546082431449304119857863754083344020597616808976737333006886353195802298584486672857110340901116198905057928789469262530354168266672829867625820561372165667449048949819097028888151370089044477718166170780908510293082687891255820994523980213668848107478872034306051548102477041088408183989127613706420514676971640796275558583910664314536905804453671719955118294506437929818640207202719393443057041830699977657926728479719939611232930298037732449630327868353088842998433475755950500205408465154588931760333997451014593407977859239621855726318275734750437962630248025328203341394444928952790173177300558044120831684271500993905769702394722614780982639332813636661682792471914600746235597346725476779689052495988956112385487034805474873184838931636358752022784421193727342854022228658712925412041813046131530157621423496261929027753472042657468667887672305652458841186137920319001964325503753067644744327341011318009716647087735769639281372412388897085247210419850700343405438370956792879002004922167261798857058050984949712946998956411741082124354950621065896319307163347784430101435368808118915928126206712493696833826459359472862836045000667523158509545611191764236391097607327181047946308397951562797496523930099784067105880322982162322339528826818141576817420828534458118600765975071329294640774661782961488391641386011722235605330907736151768121258191057627302338074610247935950074819020535195107305632780089545922629683339830643500582424884627873075673161660789415357166128880819395353602416405072916727388523440422855849953454265982136155594725264868734597767487394709418899080342496914469744095045263709172146381533265864949110428964614620735426891091947073434152483778852351213650916078062088282107467359397641262583966704219611384701581630909638503554399492143165864976549420626475604857023823247246590100679753113709799070133641369456148072435270669328751832798563177609790643013441868610560718256794286251364677583668461656721300542817623914024144790260135935927337990725056300155097468130627004979906924768241086913723001902045179577076902248615935249260050961631516510648469299086445074939041949913266455730455540508440225952324389450066442702393175700387011316902281236072014272183635761380634358791676022236938770089105693366899402526202337966213087812656476345966730491202680975212416512102437867861489184580307488298735919301369216555197314623556305945119204697620187554741346594317774238512569617219764114415422452782464078486559741194324113974631319638826883748923416656532229664231006592284691846592695084760755427823402528795009596578279346873636958907829087879054113525326428240543901982423212623912325944558778050033862147363846777516296206443038347151825216212768318466740765484780453059745853321144431658448647615040330632209650098159507837749262738252517222285082101044452313247345197366296511353276808542392097548314540463817867314292455454817412845719514895867679060779245599489643421970334233409830862588675055153030220783019655428794791437726727294832500523955108710089950852996601342181425795383568398771642254864417083869553728506564742887836210408340708358754490679821413375344077169886199412314823848391807674250220782320131687017710281883891609035592659711199941012151102323857882653461968661927046572298162447781661001613147617025475051799948036901052342230175702596094684633665477416607719538260095865578659921128149009827923082230640996299001884023519484603840106367324712367399036564620917634067243515680498626294123368236456777369097976155024442701535081002336434273570175134928792492210834616831860752839203546813187206958501580287129771802462803120180251047369274701507383231575343730440775965559876146442705022359673381685141375896013881255171536811057301676295363326547968236784125188442902350294944329655058456497623341198841822911145822066633681069308210325804794226653844797598123753692428924670594485279911874578057376274428537320744106676731084945735527552961559477350970689176718258830424063237583482953612860487172000765380950623786017287877640377359094065874500176689457914085516992738438315440482902412026214011991563252566194689968392216817837940083492814748032898879940188558797550387451447220450346959156188126994267407934656468673956065816311378323782553309327850894618253803977958381713118127451458523093116407694824275075394093137151182379023585841067146938705586045360275279376968571859578959340183930855867236447064881605074200693839951642910909746919652147831341906882950083267564710042225692421113379347968239588137584219053956083277700552982870616051053622114745541689680212262565046280205980529616382607594864975331146199920093781423400047142231422072216699248207443937036998969533894815193756678100927873726700573859194729067452691687809225056277293590717984600438320775549905979319159786450701911048070362162329659021576396839460961201911214685590727017008245269155707987879107776459213453229584510483378904391463664793228599771456965546580002565829560230598399508508169194500192138987277849995311703197213974209721292076373855643196848700668234907955296537200900456990585889991551432322640293735457741806844178985911182982610369361858410344088432941950827170031981481027779114447164170135692409965770589728440128543666435460158545283224466124441525727030397825340080985326869257082924107003244973439548437835002309204843776242131166850068874452259086586616102043283826011628570530802384674631233996375590113677755592270269798331792784912300343577038241200922819397934544689828940857098625660955167593715778334605867551986993628290201322403872165192475997158758621642832228855795012541466955035020854868049325457369017666743528345673804006520974231874754971029368134544150331648606240341227346770776395211692059502994446538895506269784750541624760614897890641005277961437125718448242878413952222826229118278232304435266963175444125342857159588401573003655658858383666253197846174218579691294916240925022595444296909605415244603731001832818319664880047982396850935247796236239881068339578261732732148830767506187444207223813816661983960412934895943677473184318171705230653061950457401657353356080550875143697276775230301420657905232572933633631395431096089882776291348494777328288512688517730046519478956278252769550922872178319379404838472837360909970021948099212234591255112476365884149977592899918598618862170387687601641500499646528063437065340960191616079193355300432197055206819040554702654253458013062374742671634044007911700748781417278316808129549507746010991203110740880543359367697245260738195562573925718483592767918906120362235830589088928520922591172076003712925184121981421127456063836334707577371370184251736201959112991340256069673646008503467094216574025685469752524970305934724764343099693396777657097927126322133094289103142238802923769862582535555340919944688423879417744394415845849112493026069671579380334118951375771364009174349840824742888274477974565830691900830506708479126683874712619763891373625054522555200780254129365199075494756496802572570014283498081208686239987337184968874398474631095770343259563259891785051661129133941697360988278261013752119876495983140250325775830181768488285643366995585888742640865449329386453809977171388503584351217016417771218188262229599042189433710169301228661016097526745833777839973542781329551240461254614552337214471023984511816422890622983737734619971527194310641427145706902405723352367214361377256653521624689453131411068580468765309208111398757502110088866431289625872064653483524437430906654985222814909196979529230455816679648876399947006612806870123125245326935441365770842420292966510068259163035631198721307423125461987863762935164795731456299181990855196398365828299358453163953266054549760767068482906070565779746366009851552203886847635510641415625378414423813265161152368781733743337301870346581832726741751599834147335929816153785869389179187685228440703487015725528546885945326448040411386603557183387097355963451558911506862909862571482898609289498320388058551476376353204548178710436100847074409249830773247116910794230401187173608193987905883319392449256264426710065362184913804269046766597303590196379698787846719776289914322811143382257841590409652558150884719897170323129147495673402702954063847825280780899569476875817577323971094229577402487866875984370302301551035812035855257736153822948774619334161663769236346989896034380146533289402806654303751628091385878403145622583915157455737207211994048560188461824404620826798558154951969546788054015599125962965697896877431543939113176531988461365066121567490619768395126170339542599352728074040553824562593342798342077872243773250616866079592191929698701839011123016350414118942157343536141923966429224657469142348481842358137464706594782866151562288904103224496049395024191059744952784606874150540318288255227548273672479273908614796162293156848447341628727550663788624349820131367782910121884735822984577905223298306266615289068560498862760869044350761196094031712498571119276404394177992869718875152936983032857454847440812474470676047496703667298073571550708228600226762777698613619676275660410515932799196762835715802229720823218437501601476469005582639120805457709587563377339506963453476888136117663187180036978667263921250628397405932773632256002906505730581581264492530816671055164923154521568989187781985185352029548605151735697896192787085727454951974140925564155096730594014652879704795001636092603292217729675886479143998987777717746285185064788437324525635827332181535790862043036662211571936342135155293785693109107086699856229635025310177516759458044994291995626327921627191532615928521735959425188299320747012644020922841859461671654814898370763405256729454284131153411191651600812887975117463215522471632147268882657030262994741187418611129463835041806889943474294551001523399673335325420326713833114068847672757126681454680796603550094144422514695221517713796961126466527038054287964167437748277658351260058864257346954787241693367809497354438156628268017993556528064543883349920988666962476956569069330161776450865184083440804910519372967102333396185985080056435957067042673462504186446426688239628717530071950725592409095867449304459861142334258571124398681659692737949995384715941321305969957323695215399557070985412937749974587667399119234021644724221111566972459433120474172838742445110517858468832186754979109125602012123382803382977259635502128897904918728574505114724001920462159556171103954541022152530550783375219914748884334705220437163535851164374887873603449661324812259529884448763226044682745768336111503695267912128824317743718334201676327994831227669144036970771607467825525877504796472327537319554516174151686128496833570670565108358761904049424678480936340741301459360191793295876380684015278531141221763749501678757639157150982176288598824407845294863809402537106339862277632852200388522472468540648795375868320756667113329658789747239691957777143373263607955974584630244186583105457120987808291945210025001147811492767268709777504745669312784653713483450353264962812557337292416501186026831958195296699831894958000451267810840991690399072243974768789603248690921577382091910366604050988122734365990904525741888646766128736522664393814382961697211977639669627937033085070506201200178804111868522361768256584367770937508570207977537429154454338143256466349770159591666124312467808238593491888698210776468626219606824928344481448306485941626824003307580118225938641532747910396697613921739610380387454452076717139978132882449980975684820729533600382685949535853621927161321039914729390200980331360818093476218834076873764405303476557355375184409355523067513142981475641996997511336881173973132233531451776524459915377559284141376372289013116840413325252611566605660234412419561358650029779092832645270189988278141304920425508883114836179637440765635522009679264537550566572411170539411743553610686790270275687713221486149414120543497205212005803846457632113919150953966936573721600895738424315074987944922568185883578344763822757611426470699021889445368164617940317077721382140151322668212189110735922602485521066144447451937641832346254867167262720510522370730556858546743086821269205198991892698568393257366174230403000437791686398591123325240308325062877123973461807170496245811388941499749478143173231385760507546731478190401426521815153600947420576891681502152744693447771329466578605988089131636280392260012494108348570573634028970845269168174209606449493034803593350575195735198008884871997263547933947860721808774751322913006564161462246510439629376005013476202384733161473616415430699585497005122255529284669547554644765487511871329271810876424567338508913926002113025479400286928800575298292378019601536089439498033439259850351164015359259873510640522425714233143369191885719272361976633277575726296777183850006441134936479355340147325156050402674008493489853016902914413730869672440263109772604888824216888554412546472182017928664921236565260425243514537805255957372359537891465977643040396550764263675620643065306841079217540264623037286217433709592070402827224225967221680530330872511870763358305036534035383888541160833164790565881742022058651034746957001941565933079017544048950946612071474705862851254023966230591305477645877991972224902474010207295650177423375157612017631877469272434029045322580144754050200937826386069637740118415558638919432748933751068942548377896358371322693972273879138188991798763912979393250975333536353653188481716514713404037807758403778536414100837437768950592841469467855460309699921210009916300673745538411926854934548199615094264065110136802971248302243319360827285925499441404236967487004793878929973527783381390365845140422134888885904541333675512507149387138504406496112902706232930468729509707719326590440551450868193640154933770954293609748582024988729157680666072358707220751121637110227724269364690996479023366319017480501242906655815589894445402777980332802595380047383508480567081971831022840776208815055262362295779312728766330353307580606268768909100688813328041535772668817084399218115577520591528529547349136081442904122518386969465793704054607964011283529338526250719330360824953106339587263151173452176700054607567246015400010651647178456323874125402706263898363128368701971829630050524308897029142738531677426109658982838142518176189004691276354823035692120202270964409066592860315161289077848159431957122218704262797840762549215120816252010616320657583622915765089912031011678551570973659527603766785675045983819919791080550653391162533141954044554175328860410396241724080554585074785975880768387982064670577852689539877728564707548881826313306243439882585719809572076257669629459241423656170902180943300927802103465074399502424113148508030706752063137979001788994939116360122937349171370988439577277230168390517017145479758956254934512650586361884013506930576857951958304032419639135370726354835320112346171535308021129815048034038977249382944426982406039697839135736799069338847864607847139889945742575947964097979442540018056527915467198010975212815456077752918813052598198341424508008420032149265972811556105450518986777409122424558496302552469299580517886099085445109651034563600122643721562145512123304508324023291365541831873697283370777032902211681533199592625405772802389427728614212654389589015896740926922982960980387959050894947905759901362065609101649181982615211449740753855996249553743425504518652096195846317056882694865210065334487228898030006027205819871239130899800945572271745509746607482819148562091837263781606230054501448197153246255599814203073844533080248865813233599524057940666214600668074182920269042532563561747187859203137006815849707392915705776758156294570852778076814877576663668262811845660925391267126438624106796312906482885848862663080923741500300782267030400313798556491604927461672713638419099893696323316463590923892076284618967887219992862994959657160888340851104853644240133285966565741017603535707042768419740542952824059786303190719237800775793690413833673170201458610476446991355660285749814776316335966433256789729933343437485118754222810799981007503442897532177993741705318230669044985030820962454876803614106700568116485096120122218407939503738842716537284446927687616748512604193185657808254621637234741986239307994256343600943892948195153473808354341489921485903173517005126124019826866361335015330107302348047066658829185016810181699670929610584258253934239168217257799054903648248182399591695576722831712561887854325571501165369193729908412870772781287722005291998153491598274293459210241979085203716480801155277203699348679105881105665503692028988182009033075724556424760292712283306023806694665712276476168939586639201330992925549660484705763781738032872062113432883596268262623403584063057196524912749359155163998305776903354322379630479706093011558261390706186893980962470332806142594765896917518655267267354382113235608982213473107315670811815310510921937267115925420884934451299162996007072506725282693909984876596400420564015484232560745594803159076524321291291677108339798471992951834850462730407677295987456809213612761223492422401755343008859197585638447004121775978543389614223878164952053539750320781073695437056082096856915367926911058852839716551458658518580077367317828492395110336731622891370772555871889398242382632423457832027368874511675139429565422474246201760652632637399865312811031416485835938192064606695149641399312377830791417945731636939613359252713686564107494459130366426993460485103231843845952386756984489460824637283595717104332477117309871196331891442849391560073810323961938492498887973846068668683311334949692973879428002430731081514308344896795523118512868479938396613126689225393005009648004897049307730409009099839788377575028376693989577142722879742125588919627850831441650477036180642382247292668452588956577494083164938223885370464569608805770306453107862348831218294391932349296846558564752315502795989389134097335408600750594272540523298076587155473526877493798806256466484129103501328280758845261188082457730594578753624239635812754520531702873330675479348175156019341404692580622773717453381234596176761684318306679401722567540443444964438476996074162125182441077147641899630230136900975525025012648419276400031981799793672106653810508093903575759288202756685399170908348141531356627119906686200147608290204378695607415055909806446955588566970715149744430321162063254113810255270686353164938638497351414029593560020850505310665550304024645770373060225774763187879587287616045971130567843783786699292868950856658189740620234085473743885499042201471703448563000657345855197735088709771425666082479159903242260813361560493637323538448315148414077766959914929580045039812648802952979165492623121046896793411628764308456231856771994298807571713479583827656624620242686331585175338793489362850859466139189594231507794125568685664315187607699325125131346305484092367288582112495700438222171484276790265843630995378982662141408993879158280404459965521846952092150470255316013310435651623651745238369091423304235678215090350199086847056011053908157652528921597660242977589675151463654468429130940471773918688988059695119457510685719920703460803837819900517322857109787680293580941515468711047119041757397786620565077098067864691082446201017633900422146668484291636488688262002882548078737897905492467474166425837082652387050909471551847517330059665634333830590852490489477428413245289057326608275008884148458169041943302049807937117850190740295494964881160475537783247023375266198619236359053087464342112816145964174805610759457169880763640918678344701708994154323103742763614411243016826116224706445395281521496255263876294286697542418567501234257880891864346838279379576817725056422411132687364441174150532571370741942210761024338883388137294889600214590201014181031444592800124339654978722958982057746054521592739746110953776318597384412697624691192775577254428932362313796328878995670367221802559354585283708431134389855874570222435974042313413435655043504456287211828681570690558166548669328183123988556586104709815316058274653028242532098794416740813869933691040498484668668095316140357490120377959377461629125951890147794171383723399162271300251022281777658606413521705487911536935290626746503502235782994225273966365658668098319175576576185357462402420159005795350209943592917935413111085200112925999175732815481148752496791770786391287058877038410317255456198612313221171324644545427957282978842695650018219772469054691286936573247898736553291111682336495799183347146719398843352848768052292602255664939391577144013331249576970109682730405177389273462266055240643796545331982195404241376470438525024136156103211533781308051942120129227299464668402829727398754440483624267960173424923428254512605107248619785382263202276833182568674170458285008680618702683514491236921297222401371766678847519903165162023097424813691273338286043023346286412227245403418898128306482454670154842356668065641798071655813915897819996288241108055558382120467575403306582464942444982218581008840443153594128801823915562233266326061676311609186353462685644281828825313341377117408075341073100849077806488022876883220995908658922820000098892974105018611613786563657938115625543605950734194558005667864271171114349041724628053803232663199774091310415243362140898162167972114504784983623531316928986228987270756247528786520773796102446421717570944381310716334876764794907250238638133155343681834589077895035554026359594479356317915596037258649577407703280776515248877303973666349169103064333636046676185115440972975062475377863837717100626318220377244193814751153559355561492296080532819141386876188442286511021119756637925292918264705207399463116992679107853121178627193169590974178017966414510272589125863481666083569875926986304062616297949948198542489157247976639997260663880535986122605200848667397714079056935214809607083892318609848923194702671260819904254521743510864534680288678845244329144885838887034375346588603617279555058955910668162577908434944821302548545930035093380238754025707297533256188503180289737888595280855713764209656075072729483571620260400149035020789582331711164731725826472509954973301736335485845222361581705174021647472699080595225865613544711723979885972697338019539952048220984340061261591848864178581959573864091815184306362067776149021574840267163575804747341046857548934696786019676161933399141737320770561819374975591664473060605912099751242087318788058559768554094701653634895432956364234471917152513602482629035286403529689785188438173435872171027500203821496247530355655523057229460212132958702686701621844553199879781725186838818745924508364281474699422454454855904690813857296361863316589727171084088639588307699307825620940983252484947229435629900929601373764614605432834034625372872880264739482689253826945108182201173172202479873539827640988547671698869167059772297556395140777153094347049479554283010200925588291993964868576742224173518222013880972002342630926975746917521648341898022290552468024876240255634398368894123076962039696069697884785970176775473910868031361694174179434794527164265062237372342201357023397936846037404990941173434714959091160769573047199276661034657019832891677711088620735516126036669486521348469613879683759615995242621684779098867101347848670144166489489214478198367784763448157794590118606383140420688630787625028401165745713463905146413260438550786500637967711505731745861552707644472649107886862904677439480840605169172555369751150748731975099793590501271051054477117893422164672701437508875449756923779754931735879632143297125116904132842699548471086406882012835409941404382717244568196080285953224253442772880840354048640498674940674843249908108147200871896220732631367896163567218130435355712154052855196670341914241712787086843324376402213949063194072668815664429208073858613771403535033299198561853641609275093694129828466877591219277082160443264719278329069387683595100774702816095943400463617009917775507906226630932526779672228180888501838936771703152114947107525652638023444895322977409448629715370947133468938754324408042137836822725903513327823557476368787615614234275191590106679685214598186503419793736798194943049769928467609439079639349068745364569898260801908582721691348423177950223470861707525391052116098024813306390110510340872868623855203423750249701498581842315895660068177012544896566515310958507449295582460061268610119922339912089049093587603062645664806043248672409514844390270195561773384513335050084987671905587511532805808016099875022527917157034719245982293163709517473675180503882768950930299819510359485479168327649170398822332336859181264607712397270450271795177506055273777183897187929935457129883210996044290391327006299558463609854450591830121794672265198976929101825166990976755509525550194666579467811022213773751647269334453838385698822150103325281072234685644790659171717109289153529573012741410245022451794196330344561834256987763801128051406876516899050069423374190560239889938906345486093473491069535854512559220308490277088263022550741822260902698758598128747628387386480300523896121100119276076969705876337820898051792656407879322496948047520235766748439749915553577997488068764885638513956584187321509664338859150585226881778394004110677130173239840066777752619019728105264858768213691237457658574890883580295005850721750869870021028306985403117858370518082436395676869521778077477556970514557629261152715434958727624293813421875771783281093954764614024623041970510057990018906069471163389064838728153373336382196117876870073463040122153966284215769414464968134533285312464290476744631586110662376045194043631749041774445928610285644049967633302170607372501084955685013574824460695380949228329306988493740050186406403691425512636353147392688874236525081337491686329326722615736582440919702358425470937770415799319869208578161814513260341463845878906396989719091408116227869532160986642961066640739911946428499798151789596101532734258824968918223699926293152993925473469137329685459695746876212054046260564930857543680493109756363930252490430849014250232299436670318429843687516864756640580702476130689076910044052070830245114639927762645349682761042576217687737310446740258249339833542390157091749628609712821996188182208451832225122162015875311497406550741637181400275675707675173169059811900180325902084447916303473408826496520505499060745326546128532842028844411063088051329307303821176978768262675504022829768522736668089137371081027134139857312648753138774778715480728570029727360496482080833035554296369292142862922571367290034126115685323531108806994541982974451498535383096850016137885513254924512689856998979717216223564053751238553287876578465139467864745690880611568644308788047449159035037628412101704490622317830519003492095057160871991383539396564442976968397120512004931329388212883227500607501183607606627980445774709037887093077542248949635627379759050490828084178762818260117397323027829859643182697624255715892777593784693727975098491979497722209299153534102605089141877593864212491152556505727517574659271332641174712884234900143845575132282501638191228465762440552826848308504987150529406209969528466339994654717920676789151856106999431266981606643808788786002670341039429871071511932306483385262204752250543293823992142671843404206881356828543500771352360839693355718024997642419252317912700252822652945829796399760540661515787540768117222064631833264207648229130428034038994590841424967620715648150368535156786579460408271626107209231308645888077345713395946982799945428349419361552775000256096105008828476217857310371647944475602890663343558679304930182006519855864707922826284316357273109806907541781259841895800892101096731641652885809864984625967519316395506938396672488839135482520951956261797776457650007646363301420791566138029858898176484288064266389599149743463424729219052025924763672174739993121731829611759375407231282705806499459833466404097676351181623506398726659268521077238213872645501308857491129867187445570496660855873588218863106880312121243580469093260080964829998995145525682211322291489096949036803573446404952830571591650390075954011870234819885772048693918361433532682231058683640645455022980222466259893105426432268686070806509038379562530560922270267712437799612917787261789692346082488411321440948121020365652764022935542376401608864056581526014563694448786876602329794691150209905076292322426507055371284667632845082737798998947108891475619117535128663460072799444728642599078290964461169621521812221543795229734095554015104111036984080446453423538288670879347180380086977267329787737105477073053645855554969538929734131688673363744616166069136019661134740365352068485159345203979223639499115317210889748635772450243854058100261073689066905450570596455812703369987568458799921390727810374297450514029398796609918116703428246273539231178601701044963934798780531055678011815792220267979248672750589187526113743770847739396312843456301347363467677717799003273468441353662529139591401510074133071280132681398733336600874086987258233247255903213073168872788417552159715325860916286283211863719935045435350669174960291113924413399694662685103061739709559749971764171165706339366191475945879892252931221995423409184933947915215230012199277540639675887108821703872042575791916511433178998590246740586376597520742527761735409223749849155129026568973378632060977232822429606941759856626088027348396426204356057102754755923101916540196150720092897492382274113463368717561829907556958277526523393699761747820586186082084262320407171952090117839560005463005565945528208030094712368550959023375842014219495693868715809923402360517222867102733493035484186382397275304575289147911159766325510163299569882256140877651660007952479514452047157554486274129667860204315018523959514345558956654241884051554824037067398589635438686980940857074335870713021816821876774082530313615056684742931224633553251104233923805343358727986612972048567539435640084859352613425670971581468985306131114885005666260763698074914633548358070757022735526853905434911413111429949528666846056736260233164997284974496844441790861026672617834338520336925105098533092740221727553759917638558857909195319181653773152023391965005319256429727282010152278608841491315641418699875140382763612078708636745391579715743870788405899331582767142269926978522481388654206549787319725438768082084504661255214296902618806850686419438908451240203381533247663822387944731352756301446488579807091511503678097669628677663048879794452171224828030846083542809234723380902569886759421148606377442845074099795910420317396766461085699764894398360066814296957640623662064680732678693206197031413495467504635529531755569050862332835413382565764090996857997421152752502539026727813903114543001981767896755206065530642645069216624816070758579340922224936568942885231062314440007630967759415319528793655299459092642552705099911860339738547885952523603609073915723474170088131656960268134041247123600530403098132840688727657032362232696333415225479578855455273302404032226291851577723459071473939697741219281320832551463397614620690311919797553208463518892258823116360224842844210742312376479456257735546181723558580272958944058928746292947216097462853376748364387857453851467345522199273963570975200558046549217509404500893994452685755989687485270107317108287714553819379836576392036873837249085229697300443150378631430036243385494495503655446391125449640139445810177799374098037523420484385723922432311583936966557575543039513221654876896904990224281956134380106612474112666392011540810833436545226632416529528338256706433100842177968350133115242874725522762233824569733594252642949873467592417884839215296928493161800574694790169769416860663404566110040442385009741709601427472915492502991424744240968344492769074019944000170208216891972642723640362433120548407678019101764295464010075093962668405771601324968238615061361143769185950523402054344650451663156896954875583181886657186258709563829824323865857762882046092083160786485592817787586831871472187707684183465155320730514284986273579553241685112393216874675761847713976729315428569385798947559017281695348640899534281943974339679170650300548561946055630369065553096200803615592384052487772727644879468988545097883509680022610705566540887510481263753059293229688727244675968264776179965688646289333605026252011880377412503948324059514191444554404377761013491893800006406768142451784845797773428054636269438478849310166763565204275367259233099402269804838371959726721259762783782612276713521887115491593140843729363536713513093541243022208783336914346346475456714081010765709773346059075247623888338449186668035344191296794719791988913371086461581174353182730495335820607031792481248210668692971528154172000945289369936621299693042998424877365355335050671289008379760455411358975362986351079259534535067585363700868371749472092307695641790043234103214007924770513752265896252067606495613796079341257470809866201710284153650979270202735953211548696722746070929966258970383235583035799988105741346524964110058898850147292314474421753284046892197207901123649158732843621686434533587565819303878328557607727983168243015123150915605752764705106143044404784406207378855848736211503477875483686899259554059390376843900615598865905935022115122418418530038198470579932588194210279550166032842850436040872460826624786537063877425667119521406102799672563714809789874893605271934345312445949150681696927288826706234083139696263880103628495090038383374305608512739756026310282799967957888240008014534398215875205109872838570025916185789871547485928361498367579570795841293699569664829568860175984051080398354286300270225941633923645818864350429948736293174384386699470454081194432237205966078973313143017905049976798177051801784727880393005211617205786044923876693881472776097302963889142229901797228690169020771909765760329081348063782852080143667468188625135683528064243370446477488172173091080465406310900686242671117262617448005757905777315497921239629431837601627254578907070183087855394357658944937435662780449280936694970769841620550230571357186302235155214483858301072530471363966410160246308832299702056875638044863478545120290177731480177386974875492547896868500848878973266926083249267880843145542324090114315394998294418559750846861284168704771918771387936383166892145274189227033554870209392439284299308030354921466641742808363669776494584427597690231085353842487854720793164918250366720878196445343080259730230489147930900703830729914880741233540106408863794833398092043134726892421435817121392110946194567892501809476669159379699680815009175306633609680773232371418562515029950692618322046884588198347651926695199532201162948275280443966545730175479086818628093342144702930433634201754000849401654959558490828515561071973714774113679470669335537767813872179129343761330202636802024520931944703194465884854797532546784293042627149538330337802641619987263552988941650769080319464611866759084160079951382570869345500867980657986289272069312889051851402042607978223170876001685678722368180912638785110588901529514649209541371302336556706747637114108642204733251377166782399198131958145344635140440138488042179038030108906401149558729551883064871824124392964040955464954499076597739809986204883031150370825652859073951385045455058194120597996221384961060555652371441075716080644998999917366357302439324549473949052698526472468583258884566643010775647858748007492608167403802633736866054461565387472955694839346383214038658648796653638740584118496319280636891957426753019662309053151951641753851506524073665504871588250408345644904125428928524664937713796921246716362612359628873762043211831055236811476877595811691432137352103954210555551143105237039915479040504598490615888005303991638800637908213066562358890742611509872867150514841423766946710795056796503477310641831517801621227744103655610073614411059522681007224448435061659585515970820481677685008118616071395108753204636467038004943958388041701718536876591814983825795163244267133509581444752541853687270526327316647742934837989770316474831898418850844295560945386084353612593173529155818073404869535991061698827097615170804547769529254424429688619737671552684322415424261206726705587694803838905698581074362205964321002259899980505969847386058723303065717732491863520765959704771860403405827558548366091049295809093473401855579888247244378189616016495259573088301287115296675012911530103465491218576009815769439608659324639653307855823369778268886381324230915371642009700121333836426581286764124638322536355965084970606165993157215915018384542880654441300937744714766708757574110319382393378270068384721102783369985291691434156247171514354247160882908988021400852377396943495054946342260068554463992824007436842672815159743167564658449074872591156704952954728742342281520846654933989657241428188933860548146619296347089132301540639176900876897197053389834802408718554326312526389630409456590459900456203841388507140307431272357965428588278925835760660474655902964438128993632189278212993948275608382003869355473734961045033733774662201950057235265744463317625928416194774482395435241375392068141008351419665185989083763118993919919297169530114814067586405850217336644432905769544110029235607290219122313573766844130327911525058047867549932576094223676449575550927964607781904505535385379625071848745549481269922454919208006038005870424794444348567405296224595253977009393808681708487978448717778678391549272235931313737985939069724139799817283277566758360803867285902175251432585091237226881649556580746863769691265860987911710788138699577201761211153264575192980678668967325763246821127180790215596642363612980595849773413086795851448729052161513647035777948374854290497680396048587031537243251730236631091037700630348074181837763169705739346675226060690609909346601362688931097955452434514266042536710604579095559078072795096221926203015911864200668211832412198567426029766098560834321342729196020433908018258068559244251192208688381666957284859464231333425780771063488996826578199844198799445171448653478174165945947274551108993253487648578734757699526244790775148007790487948130752242587456785901985094683689962134213483806022860508186105319620004547161394781262848415667758862868331214200570673202095081321114884627770508045348236906688073816776440147207626920519758360667488445073785300717587483999125970886670012480510729874201614025937315382254203611914572524313065081326910331576761947868789215309105446404461328280710362973529730123260145167030582721794398134867122363482534067862116766655032134408843623487956778012452674944493927363779665676882385573331572200705394792167315834681885956812462794110103194865316477608645528318946969116290285984397351511103361650657717669743366327959060842387545235520901677568942044511241897191085485607019547330715494641508826993798708680849049365263135592511559315745007542589502618712923386822319162485827422058724529751782487677766688543778326163165020678689346537001278021787714626211830890246852007388316110051666773217977838174269978511418753001503623417927418833827048073778546656315911835037630824179590749059249496828790078785124612899922659538374556336696326490875914856311814407061498955174614817109803751104466534969656566156892637424346793285119123281697736907028429311229995812072619920048295130118959739177023594069346376598637523163933257857750718367534383085218393324197452917766725709384741956446488283079675269420998852373432936234369891632026256392315420809707487933584367061092940260590721600943766642575388033333266716418108633782469491030854840265848428996985690146841162227402215758908517979678648596727653992460036574085420058643557600066272683808531163959912225615555942316330406699572840052747872709307262006950508257088720558253455750627219929024332309926329582202083161028371890211840001831515167959851728698034294526908754690731961331270659655437446842804233498005092611923606196575128672206062389108313319104405515363281300654115716263055376805941504633701874687000865481140633846988045592082697684669017794895900436248028490855964079292172227222542229077721266768204569135183430981218332453644531767998705427868518181776880416884351295592764613444541652718809788824119601175329987137678845498241594311490842448031682758027301515415736069117045534172564319882159059225273716894348081652636536213398923987538072308184843202353780828604432768750255852347817825177137094746004718715490249673383437714203679027236566805039074931897215051055522413627124995744871777188102585195033780739063872613863580892640604003764541068867863171669793644218699300949341381651075251928930034074237156710642361445842872765016113621316981877672820107876009423321656549795434943480618924831623776984927982551416661380716365039330029334776321090250569803465994364305639263779815318558921070237036669311353971657732006706436039095432162101699380983085466054018499353663259583812471325804323638848359645284944564406336434069613821023344359398425369163974449828163492105652220229789932261026956090252106044953629361255419695377318292366705508002894146960190573062866878564383341987559277938257358743366658739784300953571281319963189128557442821271287040359062702078320868518189371229009849707932791865542299742537927735062519926399968527384985586532277387446239098931376333032035250610627690911757140733661214734251879699807690795253445584504073988725142823033155483515272775733809033132912938567049584708070482075359856859109904171332445775200298777325949917521020872563919132644878809475399245119155526742632674957584425426063557227796881142262147576560917713793473730141392752103478067548778689410225278056159083171096649541057256111468608865662047728132842008946753196686816663843136504211616966519962590451117525164425064156803381325938999095728505619664871045571363922377661754233882739984858694224005103657620267969247712757404292167695365195772302246478891008357898329153415419172722022962140520399828327584398468339913305862461059401283160400418040954378145094868220300173678554991597288237947301375779328867792194010465238144481509000936693414197292226978470219761928236869840589307232972898834999397718229152158593852200760952693051288081750460189659730213068971009702492667840311004740573375425756656257352554256282090578836733225073682669727049679298603799622934628424166649747375742847764185792330758739367533784394956666089698568491413743247768905680796649871214457293420101383198867236207767252994847037731754350596764505415525144000669496173543385398367131043051354607132232819428679552641515224105209998717924500583402318547449527629905706957144106185983500288607857200309004520549491503021544434697911053064283183538845712793627991332422185411882323499743807548892275672324628147090032745030290350273270866660341474408175756608174673571325897826107139518776512511443927006368703076580694995556122422954861345514725219319887951962772884010113330764449279662921441885026345280164759956989285288210873708498457759243458827722934448493040186371372961352098954125879596050037167924853132888314626008030824765580148259059317602219567808417431512150262831530594008690035403051095887533837752724401233898659345865251952419216047675578105232775634194903708134422880645577946777106429180957075632468813751996901051486337780288728509948344784467462443464852047970259597824927017278263208123990019391304502394177749227720677297666232843283092007103796386462186098458597970869085942576408673505270274608058650840411123513034720019011249023574053090212050518853573953970968537185459489251759013447643386242814062965551679461778016682011250506922384122828279531125578012976268200964656564890002332070294376705332202068028170854719135322751026680272573328856125244623124273966714208329575957581175334679879531358488765281279791556576329247991765729639298800496030222164318424614272370999991840820787075015718347216937734884701203444619270112174416335053438203079674762298063900733141724901984145935897741795310859796771907087169541709813944845640676036143145363148693190699403715024611669147421191098963527687554716858760068284535166095569095441593117709609307617209838072333375624437927407738854726909738648079568053659562378573671285111957776762429205224186759004790839177754785078634493765784119713631402656915259953931365646538870094031293904283226234460256144269979846887656661722831979348217097085946462228931910755424736857373726508026908219336240844555897230979956395045430046862219091978616197730170157616592619731695199881114059784250547641939214118772073226524816023597667011023295807514125700178119999051556559087957943585901602176665111619779063736147279307454874458089078203538869595115330092847748676275342392301287326798666833049130656355465144757174501689003085876151906680204309921861946396890588173537839867628503948044816783772499877528587852563481633137339916361143300615834253814388511958509762733064165437372147117322336123739524365065892403094091459420735075830495022138923946040004021182226703583735038128431428318037525818581098074142042449429682913470408106149716767142411065860539733183046593403631735121056230429636326318911825774928489685579475764178686585763521226363725079799784593825805843368492717722561197883389293142562241338441807542608666344044456391049402317856191175530717111025641433732799523896687434366749508386697201357822483388831742390322005083579851650784329049076049910986000859184612290677128168593399039706885344698091951309538568538442267439579840379364781548286864617238675157424242691219366307296682846797190247151739551358872824531300142262860687458507297679000319533386615612569837650096173791911584109366226263406191601431051247980826008506202261406034369648046762111980262601994884668319042662154676890585046762810719818764613944340924653261194676001369872295785730778669804722586498111488599873499794707337678006959696749671711429152809002755396104921662811143107164949692641579552648067721438959538481282957832757687326545679625908651937115608497427328616067436631335841134465938673132822332228852869282711391083203680086705606729762995755702276787322896617376787110697247196645122019132522613117157412128256405897611794651807391263308251688902066142143436803231556143382887935822160337378396419674361171265173414349391401550233852159065322338716001479201089966385215741989310761971921226466443708510281036447401334821437867182695035730957597231708800260231263317478384058979545054743187262910309138684838644166333469190776483247170333462208208624589338375596503917222271534627520527316103316530929793928920482147274442652182394815621573548655795601094770446203186444739065914858676596629549427198818981301734133155942875921468695400211510598475675658640395532242257904040636203749023550367436789491443232116207623034027493581794961900771826667044060279603085357282552219894081560922520763877471825242956613288521710233521078610609802458189822677324653889072448528057838288720284126340603952513144568028625455761993544139573088612827397674437926692694882989345017773909632442923916954442751549465901227665703112810943469913589402229507387870244100069591161525381282655296124579135858935318228098125146900493239427808034321900246320974381075436684959859392718943866689982614660268081180973909699889185033932674743708157493481001710119541238652133795383748242248771259836199755862577701245811254534289596937535886031698059441744624284577904128279797353440323995996316513834220552418741955337442810335006165593955484124271613854799131685451564756933606194857691705275119010440787376168226439233464141597395508708533055879171231311583028941665607855184366037573092999643082494651346048992323716394638237319698018506899019033708943398875962957629916911974997870465100321961787633887437291162336436526953772508005914761457940180230855276951966801119008406628932383150119944380588128442304438457902251361669954545137511377587362701799340992538062634178241548461707287611901088893418804791540809969638426648021106359326244971468438206901947445248697654411500939787969973110485580488796626406722094799121669818189119650221548526826243595039505512431123769813178373984127891257968672828203330877418591039659171310255552403566160166942718218979731526659822211087789889886793762076614579395009433183354857174261373241789205170994967517446327531051331226035790475268027004524687498180856849444640483837073316551633253818364322888259762488476966350209245653556639429758819902352553479042171414502673763023871835424083676065814558281341042966186106366326723209035517040944940565845726215193751837447942457842367892641042166387128990248472137520324031750765626857864309903315793001114284063842145972262332559291230084697591016379645154696625508321339492767223597442212109456856412759551930792050405728595816093276783972458661234996041134542366443875705886352710932548228866798585584276407931294513224856602040240874585308154894134082940205798598859054216651846609141818559925230696504228610393243981029185541506788897069405339062125663056756376906393515426772964178104752754929869463633974587867130623036328155144353581648363502381182475210869672174771502360952535467302540101834343331607320133292789243457143060888057610206288878656334781090785586386534033398000960297645606038936142451367654045407068683651441985779830470448367140836245416354339640252493932425690401442459863068196737284260038507709102945911012789043552694283076622288514477554878792106704127886653657231309432119627175871799038687845824133227811213176967745548788229971393396085110741332517037546214866175035600739568810383572482775109529165717769570677308172026978221525304631823328748953286697577274862059078519750922382769663171869469045254252329647876396032967085180397583637518364772792606828403411602035100001266393152609057725296378491993800563260294100049275497559985482435990622923725807259829770834985731178653086045560372756530385666868346413929722936522243468755374938462166495265178772203901905777116786128938421655618323194297372788139364575598000290967277995175280823124534867120266882731520905412910115571258152771042572144601239764298176344053203920673993455659986509847667741549039444311846611864806931721586041955199149807060020948230125671011129544393785927608724317098334202378118559719147230381247177075217741677822133827724933931888815901159373876874458335494679893515275308013876134661595170287215000708956110226819357435837592584588661677716786738575894465427255663934304069246196976302332833373990334895186020267938861430204296777020620568758552563691075831068798014375751362734585666407811800672552856819423676354901036774822245601585740844656024210534100785308870381977188839348937148976647006110153369971598953482238547099658252315266755500512242579159704992811589831126049792047240394831753009323778386019339629046202292193983847273135259632061851023924317780767431836715378911727820075911689175062610321192953640239274365185324480177581306685845255902333621247828943322502059257028728584708426409828796926668956744289047168679093387670493503026399586106898128436095800814077722338725803360347362138620307345649607738858683996934667993414275358926006712533933212991252309050513829967128246191960651278820525606559289379439175307033227156945475426664722563502604340735724496234446952754329925070137370384321885090707248313617224837699100922371260303699289202645982005161484657271664635974255340702545131187858949418514704462071666801145907711981193076976485332890011848616584619198622031147667772274641463523593125307240268642419280565306897407242675197246200124143967570405917765055143477828533952760470537918123877776826034053211259828098815344644966387790310366758103434794250768423408145975687795731713883337022617736641252811654612044498870212216575746079174649953914761741565729518528526293695819765453848796685617129117520917028818139113880835308438840531645789767179731980387032715886597118991556870352408890837838781136864813127814991075609316797649942642909711163628520343744288762646944725141220255007000837173639671886394751303459989805663904878792336235411930565086376992715868976510895441399490917466377507613937679668937871221056797419437148813887595076492695933700846081502521671072429834373835903114869963052380625229857388817071708604420342731486569175483403130680272439947217144894359411369298047044808897254488594867268102272768337054612949224724393978940703114236838159874158083886579499286277188982355760453980561138927705806535837457025177357421671019535386124299067385660318349654753013034963346700355672422005130574696102488861148739130370393540339505462211273250746804754143527423327308250099520736685775184547645345503299793094498280395392651058904796557103681711422843543360227508969460390747882821124111714600694815905657130900025228841795728952442436300644180576503328080401480512176411734547332280132597721735875785280897741106408013757226332451070271469797475030918801718465245431721435033629452909020231096863791263852911353874024571257154525688329336826046337419434681835121155539236265504176080701641195651487914586261989362076966186379917970119486586785884351151037945845355263057939807035105232641127402098649368436009760219638262556625290619617002644012748424547013690756653869536124345826686334621590851969711461036602626964655416747112431416851676819701162723979511533359952500489636871412078056731462552934038973802782537220284642153077497177209040106598763618375920981333080586668222602277895192341300460385620949461107643193098435541210481643551984645433295850604087446829905791385617778993268959381178080441866867573457868254575339064949329810365452411083084940870734086210763724196813477017131124778772002693181647076223588066357599799167874540737499693687394230445567138564513678976055896733457075567377400463566549788808216512218797394541134878241444515909396315402633169217316446164805611448580006707134796636887068439292669491512490235260766203705565425502259204954277155583245090842203121235183689592201517584383957085528952431741120419364774499991757161518135094417223934843388972972033433849293786720765944680352572178315953627277615424210804677915345042499523533377357119899410600174552070547124324540599220213923140158123714538926233029014479324392834819000474634059922097115326540794943012557072169496633943342857826097005577636431433635249692887392007468506685134518108603324314084574724179711397078975427953563746080444007350417123804023261965914059289816668061750320807641399063392757749797593814544020132204548292080882478007389520806258531183600251965305540847030547859126926693262377284551492598570412013585658590153113116186498350450370451821167350117666622195292094972392004464263306161547438819629440563645097979442535969583424388183835275879203569241897513147557789790747053381951914773233687061889028025438477242461915186944327540373756196749427949158680475960451641053907556438452162227810121440220885246575385780325610007015426929656126065949141281575576056172619004556618207108237664903558152439333750416147013250398675769234775682138661095791753721659160742105070027019041205735958141707072768386826347172192280544523990088862411404688818244801273613556378572321163425786501495042410381831870435626259568219470987238049778924275277078144405026059012922779063508822935399633034895658744311998561824362457129300370172372178215128538125999910406302174135312030572277712193867746673261354279012839639490584834155689713000997014634691019809380832584364786593783089267579152142093007524630298270107173628412285974670714203669271361494669563256845135858439152394073570755912103546621852340521196258566978636141945613496110624776556504575330800979774864211397317651642000174044811774833696894272907358912439159720651544928011716293999254694571186954441492647787585390025143229503793777063374056070083548750575860102016812547387097303580468628600803672129755560873699423315278983271721610868745334892288128409536086945348424871443902456092694950977694921490246560016470819396954818742402057207569343704216542429268060875264180765428743097733046153402066838751611343104492622171113015339762341907292901102583976738762144432825782750308884076928426526867639692963332905335518657597825299532938718376702043107607814845745222973535843528384698664061641843061206531187151407584400107656170136120420946999376549672443497358185425746518709770204374596099123436991929233830858959048362747217305261801047021488432057104366120384650448124309738733912153558776877014428744227917288421013997513773177297330453698242307867020530517705604598821952659093900580490166998471446090769982905242328902282209359725827681296848172282246379711750726308478402188952621596185119736071988089546665235732808183712954924867972006221874061169871343284815116152883557580670781863194527684551923663918305755667684502053157770039934063852522774269012707458817790473660291616792725805741349849196053083598907401816062250634910859362545645792799618510502185732104028662819248880706992096502382081291728196901428266792776866669159308983626649633341656134710258228605624707916377638417187525112503750899874855450284193326729161830325866743050610610632299034027008880484663754984092036167688427309703360171077872621759982193144441506554675118443054533523974664914861554658060211203026390285252572899631729210261927210852369285328313081948996774346257981506023140215462294593265134352774223121089013006998596183115342569154289029705432040109006596816774752616413809545218245651700264444272449088235280845119634177821330546351574379877486087537799767398118490294330041912302407991210969785351752044731862293342715311017766289970744866129403814855440403345600021051395904288876604950307393641938432497410398090052431042802218949582936186526974239057265012490980516083729291665537989832015150962632304361640210543769901854785249501608142482509347258026335624369435504435726392483459024536908439574157489408772068035572503953585403437737962963392929252913171513178547436507718541245719798440052334659460422183794146878749961033115960152781307770352196845065096687430622943176716358097290494441072347714052233128034644871307300410281767413689677165000832522829426562011604841600194621418406987279008724369027626603842790732201033004741855831580258165750427718999797536742719196424925033054520591749111708509364638076609301259171627083049810462550061693505592290537137994423936891801537842732734505522201754225608362684842619729181338857039400331125374617660929051776066966613224748329904099882132524222888420681262943938149125342529108627324745398224450569467187860390850445587557492441286347244995079863912324023141270614071448247088447820955029647615668640900574960126353136149132162605613583305952089171087812835269167256038042192010946090067501580244778670982526502401823056625532302322776604418923252527325091627470833923382307065696031840696661913860993182862002662092357296468056009567492317972942099602659759498236041366787645697845714321283648747725361585800150173605380683351355392444946611322752330723131985354798125385589332303932994917144608533605054796564078631419332547081745222077269314376781021811481878618867493242476325387282260490036074663164210340162393320150743982926360508684267505378083393867161776855474882045901380087996874457888006770234596870657975608335434909179098228501694296669909074965674945733415070328830339131858781076269545241641742622986477456204318714373593351623298397047091621114149613326056335627244385910660536875535471645373013999175836332750055444969490429403115113290910153818993217098375122526021490430211922782691321433680932196533777679009326961456856042431914679368229014331600717838846033683317064656823703327930353293010156988465098755818388522832559479437252866188108050236748755566860976909655049292269315325212716726928816859382519405113288145194238092743086424261483800926394276138212477854215500439674746619758227927912323477821837779823585897653709857154732647157706807524024893394994074387028317799059216710013082830135999358792152265143349678424240180229533554999150833507922085373107938729622470008621168134505364410595250418804082353048910501972129167979814410586274162593779132452804603745504676957792614522889881452377878563129490293581852107024029799735444749329682199501410642562891044786680000179625375048089998935009547016168458193454275061475732908352669009808091390817596725402704499398063715068852612469404924676031919211183838883298482020815031821701773604462454706749999476520105239370709700393366124651931279033976444902861394580915844960862834714629791197789007220069571510937703437087984013957321227592045543633226337218760914577876748901301074076959009352554803367148124502858031308478649474541555889532562380698356683990937373101914316362814089397895759426503667715466583220902077465470230245333593011765878401880779553204122177629748541567331955468326053023162528135325821672151721090704641050126027916627353358058926535316016103848578374603697933607512391600509861078870194468497829803249930797771859702882420867060507015042173274400180132357705247951906352943001753664944889788613589095109187716252004849149785401907073356601592972883786504312057412918799182680827042703459137930967196647852680603116490275706988274371360605781250403254865257561342592438807606076424908627000653393969224577136413318538315259262710857211785657107092542799611922759188271391185041479422029992156410829147152102772853305424008839939629637254573448072998275714767700707826409025225396537713540676439767166358768715332904371333031741752991178254744163659223201045674457886026134525335462874866982465355935284149878796757313854032539360808887126404479751348160257694254043814795833155662558479666993184085758507013112663280549717783383829519448976698881253776317122151421662604784912792557714897363073666397472744794023319629310336691970845504965283470907867098373948446306589792816912147004839929608507513368615174774965872438460421861585097639062670824245169783739471720987908462384646502287794547465320767176204963195042367788623082086678059302848194496848349624351986394939728764338577708118639094080658861441538527857550384990023299252731688244725353939404845135724869493523191916854113195155876895292852502808658027209936340238170147789989594972323235000801111694028801442537039537602221129808522674137358004911540715708593833903130999585545212538022034964389064793182023945478027214020514286668642979239795590036519529839112349326348820144911887704546002793675784832246519896504770220466788019486857432200564719975409859036407688353058508414332719366973858900783733534877456254615990393357230821043683357284821051091346515897989089918848776990982286412581499370115632575070683243558505952075687535899190742872837602500427666253627931730055279182151986792203199595210598862098273321570035410496608940758012659536256326056736245405369135190778169817948652201066382543510238488915316064905091859199131837516688318345214388839116667553572525565214031132632610306303791386831271860964989208889893972608957274098620646044451209952615482471292968053070154761128598317330069161924450292675380496299797716665989486492183905489705272521328580838099950638483131241400195702121314444493411959555294279917691647214564614532668405096261755888062795906201928559170207695623930947197071035451370337798862953800160324668711589305265254979473632956376176339760062624540124915650918907521458303453460712869304621016050467728871967702123882311546642475088144150123674371309660792809145996458247862202697653420111233976104117457690011736092560044197093655433735844339679592711187894124121571688929716309031248255979915491698402770667376969788536747337714212437630371840349468159335617006883042271339765472436510866480176825099803363189816747086384570490409573438969335626399636747210639962810386320390543711008882129860816821035255818292736267128584648562979461013941787077084925434011237457581796396641889104392754974890141216240665407260085539397217518309231492852069263613260967503031417281746484270209628000946875581034846348769112706522425778651066471518906377421400399534745198591845621021660173866927404312163662751831777220575849820417717088846012564112554309894773908976357139779161480238723615451919512523855522476842366897885696076899382990955933139427253124090209827152554975494955239892745921095476573875959851552242883589237444416812125048775082199272442299425550146666462560488492640672357176469491176925106091011565501336534941567398850346987727683207072312842976396826275279553728236638147981020645637413595507091504995283514576022856851837091334856436234930485926053463415520735134597528677957649564096952788897064581220275838198348311439676229224040534207054016219529151360277914743710791157586354009703072844557387676214264100452197053363657733095885312581473621873983947989291541861971349808354077587764171191631866567371889247327122351890299105123821865376754702063339683276928777233540582683219030636488701744493783449352677877930727166411312320184526592191108816889730807004281087942042977012560288963777816117467167462456252413904968273481437368646242414605021707259704462176197854196798255161230046388620439643650002948226370019699901659216696406789457742772867145482088556788996658311606399257371964374925672726918519674565556787857376717575332726363942133983176501845328249202131381758604519289612628025642110582737443160676702935874653454344515716676206694912920315278718940712779335083955076061356699634239219652835225292961294702561157976695179765248436821025863572767364448452420712029696698702506591721215852769359082996170305362286765820198498451575774930348100279697692258326110770913782338214398908447165506751602042056692363640111459480059683411747904207696728069871163997398623851191876549357009135255102380498298502182355940489972371383166687967513615783410145266845864038953877134993388895145849594880595271784636510843957448751498806836029880104536154771680900368170803253557990558122410404584234806714348373975873264535452888228105738823875961649044743142437539588632626729605785766361858564262149864353148193368507795699705693501476103996450853305300314822624283646170300127692617758212640347133012408693873880619575234288694630398690653981963494071109148948833766859778169217547300695049163114659365887745569300525799947107732577018915670117070511079476344311557834057031245713149665567644172334875548758193855948775017884788293871420470749344602290302818097024056899054674655561836116177442340966104590788085462133185804001929290641857399404894032283178076149592414913692929694657890251445026797295515813077762300953714116149614117599548871817523089103451294837534786832758876572520913713759932323431082764330788685851987453056214145084862794345973353460325254086260305425919091426705526634516240500293507908742132199606271427672833201426815710845564069928584939988374650066548524223434462029835531095825644297936556274381375963392358392661459206979591820350076888273628240393685102784056251982796929207040970233352094342618866948874871648730939924363037151315577902144940790182717946861503909622173851881968123016821324352774531855767719892126617214639400642325389123612111115428202961391103629503103322182705473219471876541466007728012076545590174245201271891278590576979370054307484881966141879259626769702199995496286060572913654222726942300325504270319469898896889270470819053939089385751360628355340054455278214250783767935779349184068830243755366176352984909324676479525668959892896417768800250797867073021027274151768206674700962499217133852674669210185206419959192817176688667256167978147388397283358321794272915977280892340424600589215330005610426268275198578055031721493526305651774723668361504015343482896459582165981872541855671851752085819747035960150823108679690575838428127073614543547302094078075658290165894169578947555738854438099026919983300376080223223600086900145685200422893220800781292557309575519579933189109957132628684753485931063755717248517084766429407488958100446374596382182070948285971804077072830945116422108657120089826015452699449232347129878903236987525207104965672604391448937144463587408554389343857217324583176267266856497140368758049120985233896992248371324517114749553632321083003310032897963163197577592000611481184790729066348007044692917455863744721384625273231448720267372078932595428937704914406386647943953890777394247078151736353574149508423486432888862155734203131837359436391770356103723769799753597477171490245148038611820259805846063263503876747402327995343833913202532233697238472008360609159429925637158427536777524702442071064814125514297876432552774207033249264734224170076326155332996967289826505060174618086844148960946167525112547867803498569840727900586616486616299361607702080570110507374010775026964840683773285045943592137358922182604441298386793840833528784836989625827503320180290667577228690453329511654292335352720108905873138873913260473919552346261875914481855425079604421033892101809722209638685608971802610240369594422019575792594491713669724786208584307288916194446577055704962571162673275127084459072785841459472692209121462461103799118353948165024996479057250459747239165911622773510677617868968018868071727414782430657522175320775014335270742414706751879876802524764752542267515224527399484464714720122856639356444758420674104646125093682868383927055910724028464693193392117271321998692899402687929877204729935995072331014819975533287438259999568653162973971183700231341685285444140175396816497793151015553028958887251319997041802008403770970783621116469137560455095137330289560170381843811515475143011510230816930086158465028172426931879636899873501746892730850910857344334449842950942612278089817177426336288207657318525721860636225446818802444796470740350053909870741582739268513917369233340678070653080402439997154399750227011349276242279593163417972774105248363101436046703607069349333062585057969289423360570905548951409040036274021839660383836416483865103041498267439041891617138876274479827174726317660933458366013532348803502804956457203247889869437967943913228062718041153804043465341845650555334369938852706946577645946085928407419533683627126129178890603605828471615893680746736426406867460098889151061401796095249818202653393243708625449290773956404997930816365826951825459346890592267627135160156926599132258591205756607982364189403748077299035854033629231987066975122294286775590483166673100651840006293594382359317570297386336036955779359969522230161085971410228095013034638025438974902530926549015115797511810363605452271765553930451495124381476450306379486485374518859216285291159234403818075571410840390477353103459330625575384605717552629933410378972607327915151179625525883079307523100026533839209760533204727686766151614283412190618706158447192479719189668390894217162274341911015768662982304938169155862426732390016381681670444498092800194585134026288251003090796240422295290521471129200974063240893650002169339480891704871170148542648278529542643708332191295900981881547256006203518925423404839664128893601602003468251615440528088808446022350250216964577858778013453801134663430070488931729408840399292197880441541900701998939323600408489083667914671969195570724726179761274572370841778826305492582143009444230114088777175861594949358567677200735249774975463370699605550813227110638335297762562789220745031274848071372703247721523955132054747784625643168287131614021805660133280695458538737021497111175784780732220134685882808727340522111248953199761926362479563425184253341941226217299927148705923712152911616044348998618242210362921108126260394545048047384268852071125813657936148325291992487024899603649038018525039027358384803091809858413356374961062869172521150224537630460872758854809520501487014714217145293513238526160724488888617270357031387682462277028266045333458952507330151905491974363527138804905139139158667153319549508593347622111773333157468905703227147588455831867675159292474386345883287590843403075302202987869691752956829177619533328015706347350685165181904600297571856958681951615334965262930005993169985036863217135567323405266418412729710748217602764742429648114644647516765967661464603155981146089506219796599405086792085657829524771292641758272495986392180322200207895014417109718434514028351925037488723294243220569013738919023238807798378986122143279678945934727483951163315146303980385226225920436499079254938955464537449977587799384605323056806646965560214385512577718107919418754736733524291831781633805342257689791179439279662722432876776001989595134756535137384450480094219012192209036119032996908180797502122575725379863752411589475429284020956740828760987220676111448287692774713994791325035898600338227863064122568918776270543942787308482671855761196340881759120350418939372294561080083523889515280716942888962644481282312453751755144573561655433866712303416183317134689329119478501872219601567320208743614730310883941985898054041358617987729204836537809011149354971571766617137151647492774165738494834968128669243532954498014608598657600976222570624501131667931845680973973861258276249767245695744417962920210336147863323421492728876569593776957826631167815347499077009163752041473431528592155476222255881883837848740033051617387551492332531831191968252510671158395492710596136572257646389369086527402292493524533077558763930540248436929928102397912090502096362652019121230835847636045379762563940655189980194891770195123131509319165102022574895227011767667241198287220057941333617159969378744887601380605594796082203972267828947668234751707412135788019630238962452221366101854449716794373288677397380087248548794745234288431301187202518350135960201383592061382500147879962994212810655545873191048807163137352220384923630532168998500191771478100953026012930231568540491376333531300052814192941855353584639457303011770928023884197653864082309482963737599492126153815822763341017580675252673846057766736661976743798762582644367304616014440396613669703256710369545336370489442449215420387582577416714828667304629955156311692742038625339980293682346778419616580990823996719875956647244704209931634478664400656645461483852322994896721722524031412369766436996849328816363007758982310700568500489412971563895438601627581302283292358010420116217229737517103577674849680199598379819271161324614011588901002219435446532215059490687588143842976856758772257074289369447125203742898274298296352795754470550461650911808865444242696483932694902638521785501713931585281985105669256083567264429344352214453776572791309633041506787898440103085732224473387836667956490422069033978351488088115643168802471093903903174485104243629909267668248509858761250828077301672965045614383749819143427084104446556201275252253471993617834347795760591330623529960714010145763803006616847895743767991458120582129325985328258568238168938426190457454852611332716248553745676895069929511877660639156800552526809256150932590088947676355776875561970951676514433893969243264734760628761323168738822102255201523567629227921023491440680515955956419611853609123099181939730315895770646755616286378204515596614353553000935106683829327357775759316041492328083254701087063204263188718434264639776826906852209774631916803390660959628634749326013860670642788343274927788053635774023372672569329624113531385086348453952931821288784494990449956886475043421433697033642964878342985670621528204927449738546605221200803654375085200940559517073075123232179105128076053982955954728128001455826161913348506252464844194807396915151346098982607195042797919312272149795254529038976261265486656004448189936392954573817048177981142076220465861792940778201558723905433767971224689615674166297040576508207458539832259246519487200081341317387179283555217230921382011966654590166623994406781383085442838528106998452061031472193589211146835375449104146185450667640070182728609161954184719741032969606914327645696042358707215450499810461045272165474405886521336360489889243745057916518557268241119245010199797406199152663082097633489114828915796452071894848362952991458531450798709497564321047736926186761943992421135778265149774445902298670274640443257880859450071319215138855731739317063177405901296842957005412381287957639193439071827626050997152351890625884643236221035024786873046686879111316879288175171721443807548999125325011860929342005092302499143134244374632531372831906021596006317355821293397579523483868493030894164144177743703520516425376544995209001787693067244766298226607890808117589725060189826557102483739820747701105695287624391816628654927004114065446917439679308103687915461789878847557255746070231992779749106331264375873411455090075033969477358951510781873927321971349885841780567800648005837188120480135663189961147513467481360363424025531787935187481771096511829347406537116916755506895029672266292731847745196378231465127216419329862120972949426385415506179494595585154684090893881148474570715448847735127300780424153375065652728149298068648029331844917244480412928414333499876144154528937643417956232531797510291106038414699241083547699091653048615624549397073657385537635719575129452183503664464359126437273686142903159669138603648116136585230329208393166708072615988491500668671648146587356638174085553981622618464042254814902182845769941504949647202900826429289510153795209390799741661946192430113204818383120657355167427454265206585597227596718391517479727737888447863338683999986384710684101763267470614361407169498029810535757388143237886489011489644173879953702443339327840173177841373383241256812611424420110164041547984733955662901792809204631980552818623777028194972738367532568193001171615816368991637817135608116075307650775314081385077456233054101084349779571929762410443804348002681081108547927723162354499734488176926383002454273790836589525813114495416356641235417370482988654745113502231467404684308361008953153612641828178484538274421860830418081366147538147222432522179446097832032421070880570515738056516271592216649423410289318681909765348124971047016860521359717174902025817188245053233817458572734227228427690047803548611141326822524745282053874572178442066604930837895222554360985402258937330093844412457653315980158663323202679549466902492340949974752474787842540262044551617419281262871410349037078621410129709763475011513390840640308926805481825453325957769601547796468789018252773467558666535374701884828199921847997780034921161865906344280871827566660471405194682444232564457099811254690815743681499402547373956812814957318141863148614425469243920600615187670517436593709569411117648616921582687959790639325441063275128792946013315787522703967634521205607470592441588772196853102258752893738271514209073880617117065661848346895102044066319237835575218384404224637254109548245143020276081695043166675268731290815920068745594776457622508539361073993218662993606272460996471162182016789263533600013468011809412869210445393461550558178726760598068151214096294946331836280033963874130727681803319671795515543248495108382244929735012514093914219776340492058945521190234478181716502570691285243220364882949030789451412328957308863368034047783831970201740489875959130365524880521602777835053923859107221449738895217586517864686933535733052058596710784989899136046308751057268362997160025045959774852212910984397222629129325519478366935756746062983802585985243473714680499592912228022253175032922742940759107453084124141693967290944673909915920201802075818902085820851072103670102603342326199616041582519649979549914795879590359926353264103657669000593806151476055942656971367390807609424464199811226656988370932563290701128699088473117955048469035839284827171258403059751846693088532475128032932245947922558492183480189256783522551095182984983276693540036754855637500722884349048598740208657500885227959109694198963119236166464326240565175853524621685597218972839853963881994589897465518153885316789324570050799402146535907832632320687618565446871455894026090283727072657869460742557616800741018220972728593233501215008002630220927160816546777965529345028965770930985204943188213474946789946506791839433531400032635592779349504697639039646410842635363777493486880266285520323855524227948567198968780692523724297254303871200021837013613751866758210078363081014737134373515354256193810602675725894502338950066658854109955154891728860478084551553395705482807867283844422124430696826593108514928330771422497418842998928591979222094265521387740874332070154557544184621563787493843731723044647019733822368781124607426994060195779655888125808604972034858277409693667050358934901986721792474483403290455547877712045391489555025231663790171622035034779650200708243510328857877200395237554271049903287368259393090980604356941720644257517852839667367172444060154117087247427201353083103889577904879953453547261755302845438330126564987894432513478993868890332881137828403392153354325164414141271286004371775007995826608225333009373568204500436665204769955630115749307939854752373546547622560820789581637538567735964779354874451078911391682667208972873774031166668441051161339655682738845560908508483790245961968273199307998859661246609309189714251669262176160258239486644366432583613100024349192240181268991245808807714180635460366892451617865363945590966616376676817750412716244799437953267558126805903308172044190139757228235823652109690265243097194939182672710975482829774076111726534265983375442460293269333199009301016947656030989740990751953197513254141349604426569396945028087347487307043789850956225745258099250712082510585153306464741597067735388772206845983658874914259236542416192722465004205148283357782631650150686023416279078121016332001342961160680479490008378193046136213566935428283700590696205770636584409586279975818736680936327602827689067664851460878180828429016127809818207362230651447019686577734981021575575574291540561620337489701151929272559342198024172743924320209784805072175626032373451440664549667722320792567423928227678044773816649720106835631408992769009801987938336406561638272161599441935204611937767767811967389035732543232152363656966838247543766703926510634393014489745953696868392794561555068662770012611863899170519786829357894105553115676931460230560401328430876740465388866424637838571431679344451048958848018505985368346762071746427696868729167912311529067611263008018529404284107524299257775256764625685160719246590591357735178290163324672996540584683311211088140335917391684902970255775099532182939660458246421133866474993595349078492344400996188775137903298157806903334298402858017175367358133945305223581310572126923362699750330022576673017764906462591715397084238136624611715124762420784459800735997479014355859422910310244346642744957265556441553839731057543347765752862745992469048785214343549870108811208650947060796262708286941806742476223516514339037960971006092469166490900557783361515073298771080506793358560698312278123929730363047771856360810230461552023014154873513210977690827095857763280204444841859761373067480772872457961414882585409768245492241560913356919829665264879392984872925310041676241811851033478655608004093652619470334195583884900431547684031564001271847252680638484862935708275794812199918693792416393387340039371401500346979094646221670303290431960080953166350017573417214053565317382512465771518269185877186376992979814071501279506966340649996821139116074213089193538785367443983855383476686345810143043259573588746733391451226331878299846514825191088794752359910114464148008336473180303535432767664925423992086848649007769042293619509137051961453897688906764143615848141166935357699498761089060163027033021360819302551134497128195532926994702325622072597827880802427518203425444077969778442652237264036417855351164313413851720599605649554185880631652206496824468674205945586406471807953141740171480005043117713174446949607588665945718929707468340170973309804068383335607136343251134960840815149080357279661503645810695397277841544563287188224153452709039404576349057560926305074541486152024733777181449953294056694157308834958506960508447484774710286746930503644408323508662082895704597359946661560363673679201135198340569401084854401271490990177743541210825589678081978465000588335650400989659073563202940752843997471321889249733186954185179270338639525497344836120515997884397923499657622232864439949651797375620863151659139538206947768390354213183156175972991604689838047272357848408974312043207613596374054528629334797661037647279786195765302589927124424880975615157544873208426385759162499118171533429862427434441159595224399626802907106884900743442653290472986402872091721198677096938447709262073235868870638524033304234202755740270295641767384224476066568378306005530984862665704849637393994357043577980031728416256520042378524211695439865009177730738658904709735369350137605505349836770242459090300702525776739180465293141231957979442061571440415640526130610069035735979496807319251304299718136601909703908612438232379375060784169340438558127493127296672490906067674245426011318578889700682301646612801978994300536526625837603970249515303093065517555868912688999879584089627927681462512890515603586745451976994551683316076740203443029984601533813142756069675862789680526560097662444295488721138089911495749994006946888366916544578966485192519723936736287124705447605107346170479293885929691608583000188806611302529429528062474706226433741810599711722358475488238555926707770557149459000091431852532548776579703832823674965190013521985026913401111317583681693490841701581256654259375430869632746448313472391655277470733001420216537453330910312510129500189723812301385213521063328350045611363373164604155935262143563024603618275633855888831135078731809932057557111324192405774023940698349525230796968616965765518304874687973295250875934977589459169455490646967325222952759181512860929424637884521076295777055134357953612093077205947500718427334756607020769945562320700874531353263012217486099022378320680582389336673553463436524778001256392034770716228614702717832356660622638432470471271704439582472000973411488856354767955671984283406802721059360212611464562358882161745564266148743729289933173138398883224303428840327189282086807176211055604020067845225503645195195265511840925091391849345086903529832403302204437396253046937600355903939779902473721045402231478732148568376400257245341359883021009178720551861627745925925165779412488788333982606041253782433947606799786439616437102157567853679470427550769866513904335571847226045979135828876637734461539241252348550948147821656061419665314998703037131091432389424061728409868876889833911834396814734185556459092844234244199206336933089097201586279964381562311441043383239411523942609910396680228729294681935015053394256061393460943495042589353274087006722715151243718764866140739013903814994291812215940187270118451310300401242134033862956908774442803168390846178895526244740310702946695219993694454415965722429705846429523012755100334006549072266799962540298296715263988486472401290545037275669267602967126270250828353674392909830693975016757100535781986666716348584388195025121062274867764470587524110012428987802673285935958131535766073667990503572189524997183510449082661865814447400720550623273987984851020300868929302243197254222682087163876312803929375882559555226000864017988039594594732916402216685474896003995441580451627170158079441743931309872115001910396919006648976150080800606063526305447287016111940578208672111548035794961729777482637280527359540435303641132376432292385751002068258800277742758442085307799811793639784230636058975357531696893888988046213680498157587313410082414937852218504978652932175097712148655167247233825155274084686792840228204449482740659336620606836878350552212170198736478725210873727734000902809522503152565884180862631099861005257972443872922724006518652248854584734837995450689083013731031740704245270560577586497891335701540830587961713277749012861644531640752900293948323052331169547126419342550822367160768207772053409529687459715349624788458293954145329925028855579537969114833287934315715314785937921884379567228763156027003304226576937062990040928181158384155862814937845370617222035064087260076624059605967582162722948269819350805798301407223882177354846410135004145053167993782239650272295241771854050847156926887488829110732810234688647943004528767251754267315547636448830561833533523895196845713907839316796680436822368801397095581053583882462364466573872295361329208499516973863660120329050449349258846026447758129250918305191511653054169025057274433906946622936692447547833389124973425228772729236529787728508814525299411334218300765817012689921022025035086335940050535081351020709427863889954906483900349403913453595207350967379231521723342282780635311284232007973124568739888488807006470487734935829331411981211530111680913260530664011526955791152028983325045620376695436862968965175594534174417167077320162581139147434442937341308297006992129090654853629229459805294242009564146449258446269276358652242989976174809898985931900213829566852606449160078475355935065701996820655727833689768994217652737464707751274822324492034048936856921486899198998503324097135064509262051817821760147392235277324739993191222845221194262309923543105868482348981463190503101322607189226084144753178731362408360415352996396405504357384372437966885420072632709715415180541727557762939768490839646325913741500146483616411145587933683032179016450576420827373111512234619861979928484633641107397249364808556110761320593505551755097971807687627796368555912035656474453200927371974370955303020899162737117189538058633824401510886260854688286411303912311712067963073543293742671356533269611838005808875941537428440226231780435610634021809152265656462619513586560183001617964698376564766362820203428814984886874604624785574714346605741810078788060539184865712654564869013022344991433519948876480742365198485558759466557737043498686054746781872258674843369383608432015818974525979126638847082364258892017596437150208961264224633277960986778098624843753442412350918101345520687222519591086960826484815091100336584006065304679870427833715484802649798325692846899440988256823938939466596871823681549908230111877208237785591989438864968961150570820332919826819187446201818185709573439717764677181087091639049264365931002322217730445309144048543738966453778206107693008505713707529261685010515997960817730912431675863165195958649212428250767612891468520664637271509300389822993754633547313390887114582484084860733540033466439669305251032694651860903671355706279907438150415513740599104567337292280475506272060896453676787398619192873764748273901960561408197989295882919322198638602630162630175073604472839864217196137062903167260450490741505399376988439815992637507313000451235871646346252537758143605041312739140727860761096937231477040784701597341766311556071553063353014657535933237277002712326459189737779199386125095778183802478764063195483798940683488905812781032138947392648847274850924231118896413422928165080545458336721966680818442274851559406766465731060612496874321791965212642661449659413936712480552788256077718582826219174684249094761172118031321684363175769364958387675241159975204641740312932724123110230434488615319928693006105001791060272149661053667574073413169683330730465241457702769058845706795267317204525667024318349488864313005051781122173790122480324395005929284654109175029709071859098583177590209451299754706183212039470654777875581914833338237322127305311846886886609746793690990665525515185285810250778773974723483427007099013020769765833721222261392795804043513361361170246501505761879206936604489940305990169069840564207566777713352410814821327073187912026815162857109248247746803262186431626786018494268576143771278372217039018166921959739567862320250560768472708251514355626792435441115011770097054990459980833070337641300785792228805481713273499237536131037388889551875296326609586612801518110567047647278892492606025632969951055305960071764126256361486697434636341748541906433043923999029211368743134768165243854911831977147852659712829248408355664097940968309057973885625982628040796144393325022143543885672692246009218967495512815110002110440173980877632027940892416870242350328756949254920525938980699216938003421414878838241674288288718014150631794603078115100724682462002004029659007041581775290790993151453863533754527888043553020744712459734255746274672401184200030671090605184491703679850178613137882927856365154339304737461063024183983884178356093214656118716846704121427067393363262888972973606061405608242521241267614818179060121705464625339075120481127228930543048690252922230433555359531308565139742214228648882698054034620306976845499689082070383346404230950359543441653195904019502305397136317974824235789314573543139997047949127329610647927668000839493368299684457987022776030073885931622438218408919111821480585300529835281581473895267062622702751844133201390648781968747608710270015522828433253714537593224503858142305940168944010629034066704752220883486473166926995329516766270509756831745557024053791728565588632121753658176613654478040599649098715961931501493077060367478115305514263272402285513305624184056652904667502130304862158553083868504418417361601662101822725032792485534498115940471998346423905791739428488555237201299167749440680104599444853446169634063797012291849168122604794590248272348882134197804066261161756949311165139657869075150634581687217126410887870057965385705645140501672982306941417476441444543384239756973002538751617801612877475382284127396513754801432302728556002594643305812358830146535295454143124425201977924929973016448237815896280983821495643525949944887694957394504972383543364474364001524380945177694703191301986565682724123690300985297021759147761233365073592293431961789708713267602697339606035256260059521364107988131346842000176477678710511056319082991148112665890073712107356964355630264760850472398283961440439241402765090436768570968945285995871739768803749345002049857341036424784836242115517153169804085659020011223336492641538284264399732101806624807854636886918684836084422546292322219170890922182939035603250167317415555830268758600618803714025598894498571267851024562949259965382361435634463095426958393576888114260536219934412165382903827434700410458786567366321432880611666306288138666152851068768443410636538877083840383770036455029793641288261165282422066875694662023239855520770689377825987376234375456213712851818459600241674678411547485037920398239338493750768701471846504649321338802004934592276500118036344348690804251856634357539296796402348403469779942894413731099846810571210351689577638984408107079762582578713449567795725650991631148502555986086751059852040471093145616326917489227068082178599692084306896391440507100913424234969245722173861283433695064242922061856960666068719987634434467831517575763398721641732774210704446875128585133341071796765707380869464095265375778977638588214870809095645491858613971510518053791912802781757750140426882631811289963609162333331385032240138527635514558825463900355759319179346428132969502259173036984713365052839703358404858342680462889092405510847023763864885485294346092728683714129115023337001255487043623391582032521488349348906180409328958032492525805841741762025232612023382568864355157888654483037070249115932217326458577024365381449725912978313122961932512901240071473485323502102790957384983431353480638370019459144093123482869055358898067583088955899220502838162243608119371803919926791581476838398191169610285446585723880821441094419231112866761716244777841509015666460312306671048208031683917186204399840897322149406155431326383329606933091839987908575486887731412174488038324547012054238806489636092389239481957855870625312269880593949378556502216472732296127817417845541518965380216899637054173603989679881553035863862698673781869730701775510260678497854819711580303505046399462932987275346431627031329708766205933424314057011384594252188809935282722488623157903372931875807349042429659934036777525916325951250510630552415997677597635994873785514795007990775764649716348412768007789065059059942532280325061224170504731858615222258262538751230707353866035894729455649146335923940869354106844683047714266688989868793079890097916091883540907105610132461640312645240187115197363812877903407465055201687418949024139828584595483873709522042233671041281050349858374539580788438697435107519383297224629544101404223136545128179641582951974212363847360404580936726247129593044597305440115923373977099695201483869880761840871949258890760747612236962080717196710528916798555192022254362593518130259065212202982708134557023232049548518843859269126072860539997963134006881859305637850539829923735708121658570977453818387835071324138385659201702649804193157902777857261581750982176918834158902665569579282763990910516480906778236681072931351565535676875143488615147419689524653482524622448705391329171206868971538897671145690154416000479303050497208713598571684809699913835038832607645854305272211676057190886823849748729540609058728736118547872944289211294003839065858809066400664369354792130076107027034332186393975742394663935747799654099775829345371004602367124259739606886502661053817224077767159647625629133460577250898777979770658900032412532788337294090930728394633197528217691152957201987608635722416856116507590399095467876962931033143245317408564848410653965673935559897430729567411161234095032498925537630308795084514812172552461117360774518648724668297511145160436918316873557625708675759001317782887407205694467670387108059815632323794506206020453937787712824309193280867204271032822109033532409594224363597405029146906929224390836940049184456872725192292947259789506748110811970623016893746361495008038530565194749988520213418728084562855676866094662743991998576230234017183538325084827272646894295796589680082917117856585457873159983187899708828167085703615089002721838435555974697169856382144955011270555323009620174302540076570689611586338605602226710475335183667756988425054673660625849147184408710576157173204066387829778442371383266686592775237098483798276364034278823373896336558745318536872397849005796518271296728189873567930318563903123061125417086599027991918028315829659790624318977083996310709395365957358093108949711996413746914965978757629423815930549503919916381374413510333070774109748685347399673327371304583397625603377452044730469167157508277239579048981248439681590319846947649998609779883605464979656384724310265731486148763981614264962283461398078265629299214645504664928377612414436608509845176936331630192726137896126327442718048974588253391360845243902989365142684848079946387013849269845576366593091787740290423296158297770632572654941259484624040664087558592787137614549162878159599819765058351001425254105303536649809615614064932405579865284568193695604952394043296750945296167825020568991304911526565972771432448431049257299562791882443205811889487346246138091390312328930556046749951799054926034777631352294915933036024834356124507651689365270869676215916337048498092124698173716648417880283944261617184432313966172378598738631979411998168560611855905825633786240997763776940238836085822849855368108047577158395723245850470234061587366337897951557074107691617129852112863126260836131701702798660482039385036506406906223022684912630248768292024823804505689838984120020381193899276237856210810816117293605137626322140085186606995619547154353532614473124708296865346330125262990287248501699598883618629329228769584808577456968845207082560063663666352490397424522180568140866046167185472690651089735484696064014401876219877417897157463198521489505677701034523199084291541122826793823425117162825942882253510303802909868972731693661071475299328029413834017169028619922711903501004596572980187771310303771794517574799569577344846711325786644570539135687023903308038596329989828693534111026088732745231951302025303126907904857428802133983799432557047639477582132008278026970530274438039964066863253831914189078466529293978557864716689919532025515589778790465267707159847871767886471416068540323023231554699472022137713280825254010570275569642961008461321121202374086342041096201137954547509832473939735389582995032768527348252762952552418409314695019022836450396605289033165561966835084141523613464776812242749702347450613373391419199365153434974684238889441447006218319448145416920956510793465875740323174568287465949832223684073744263913703792021108066454860117947541434201005236965273245155351338728634683874288400414015732003487330753617800761448176442551306236073343039332112905916752197090898935951627657951979204592762312700870974150778759230297254254466625799998300058228777040161805342507023709393780724590839537824316849398545120740734410590966907443746633494583060405373488083847925788368791543681572883742355731481952939487371114398381545165351557431590411189462481229514282829226398045778211379229116269705509226579576908230851402705432747402897931640419471964511340105328403766180992577900714545223349772986948244967068081413026401181820624574731347411741110098796274688884990949391870636718919648043874815771519044793140113316904766837596873880242113384337603121005617096199701760208353762299756838901302556173183009008203880527301538077628489467537707790238395664527443961739827933733240304269989725012085280078876613556663811747712417320641514557384651367567370539980128063455295778395397410546438477544327716271194090510748954159386451491083798015907763390619995825692019090384342557305404433390731528983619349928363304249868827057401277471205238267288581184902951358240797604506982239072694835983270705842864155617270613100874476687682672232021849846748725268018982684239549930748757720348726581106903932427999385138908538533641322995518229219072129900294706215224019089842365639740294165680388121565855973627825707753142647750378409928858971091965990143710458580716070800958590947751934418660531013678386216333374041027155026973709490113372124248854881159841628377953019511905187516405135494078827574260480958256239388534146787683397959314334569732246324570356955808953850632957361065867797092994110281315168651901008922259683272916201281939154966925098334047282707734424296416539843815540399385220964410784446069160500348505770359489491791245666440296647541259103195110530841368589009468115421236710614483966136897350251778770711853610649856733622572755996079231673425181919149233471671567375296187099079661303427778156086703657540191087073648412378812250703457008044505225023587644386285009977873388221815735702925542572004535195469641650363675097354696789797401688282205285190521671808749257217259872082125711520429698820775350417454600082107426766634374596361160785134089825037348939811077915870421649838911373671791323664360103140895741595057601033570816330362699060589259346693703349113599750308972806920666956703894251101234814066573773555463941896524209383832656824100724243122543000821773048722044235682196511290233953948632123760915308605063102685560832799747998444574594118654426408053406756736163641678135150385204553918279948324739049130458066866744716673202840229643244511138506529327387021958228837729438476364940937618166988779323753063131457442518712991983252461573884981566942316245550286631322443438635142744755359487554265327969699381345439489752843733426941015316439558959117317419306993444770539765508195853256889675587642439710009205895644462623350252092194796739817632547388340812135504163985896221048013921303018704698349415044798829780079543342700206756840911993909828257569385470501276880557134985064203121744215116501243603320899272909109565726816012274917875942301242594609242892750099454637428864011125137925781477159084448930984723072587956388289363381470006671074872180615379864770589893817551939581882364545345905396648974203967799454444888091805988847417576478775273009023581797745752538102633030286341941665558036449232073219801410745704347639748950914748806250021508767098499860537338523047872253907699543039203894954407701302308011917006881488601118669760879531763170049717049225029141252892231735670994160388001496957009405914873552222353831549692884314217545174925849949616235720641500336480257204152638182839043772893280463189358328263830667846473380606952225592085382788132493791380065795923442615687051313147376488579874208699322504694973817311473179751614021496351468241993642878782230061671203222239707868511983131788244757227546127416505556691136272817688786544697343391093484234665407780613135969262418705713027183797226503341841745637431786608796096043550552252634826116899685311469225561834240304859643611170928972872690363248129425954433799503972755473245793552369772759904382834172634261385029430247152201086633482400248614682684120206139882114845656637943474770658802238541204700010856043524095468248537462121921128361988769392601573485227059016114545929252523523151910177736668896778580176432997548397985004185598156119493919669129142585737186777334405681122031700421993919926655225857297598097426649365967180384283605453441249786239504199268428299317182673516578003553432302100773696108350908704333457912008395106347266076396215023034258728716127192584017894008958947534213306691425815165690080484797841825764751270060997313843811743116492616029578888558406484831886966458752659002011150007661875978205486669541901588498500101133945865235743735717323557897501414696817847557155894676409565661326098366350375005910866418030439285997512281714578799696858025101144464676915439174875750035906215873622656214923152237661261385160011263129670764533779540424435898398469129279516817579234993172056460258506529963509317546754886674924655468380875019162398906305767316242461955763196469953384540171564527651091419804778586939787098954446347413939335493677186675585524328416431110630106265315793100986055239547634282752651190885476316960550237729620201445387520411311304405499337738639330437940866620439816713587598765054706774141019543595631594168372100679199217488347144335570222296629514719321472804494738403746034712287653409327240988078943220390388014095510405400004466685535515991648460852991093293925326062585205040317979893162945676952755294445810172735559044259650831355287261392941201053892232574554017439231634647607131082840994198662098298479915253564844466831866610839943174392065521553455243180231075186264165537527903046744969916461863274148345352408354746286377947202581574459286292827618786801560443043288889968140088326285708669487394743631030454030737947956148458918791624117495708654983344199313726026630337253197579358561078657792362197229364271514586390138904675812164853814545979325610751155905736148522224827118838517069927412478505526169225194003314759777087106509292897476761151233902912201845337058885406033610986054042615440473134942764161510744129653061056838575209885358406374960552374960791794906800630495982843407701215765584348325936976296907878503157714886914872559406958809932860579866630514480015681225822363899145342291177517664192940288860583658114343547274256638253789931139329485634923901399209865382303474548185820801991125037680051095400157627617697498900602149592799288954217066012328530787129225492496019709020333125278501969934203367994755168849858612040488367240076733963452794752653255008191061692666110860371073619210985540240791922193671198001337699438717316867002576798542394877768035203585732087896776391470374776688289372023627579006857316418855843362924330065199893663121639940038495572504896102462374578446315437275197292746413143739907168581964394993983901940692215325064490849494022172997433192667395611715562690729484520261673356405529858543449981119535026249507172620884065657454133262553498773917184147484785629573643360042542542132337077057181126525832741932114905234070361541665618905293240146370664106496749065176341855172398737293277967613473296914096245160201188003472178146213567623992470628255759141373515416775893849929167141617450163647094101707506582567127836658886413126908853913480255968856536134417696938087147063150200321728059348465034565168077162150675887722089377210763890092556984511091546108924160760731761065183248196673055997489329056671470304117840301398236096525947830414302639951706469643931232701125173695785742933214431266318531294441093010410877022919394521524123032158740241242720427464268156503952981745968308154294074662590588959901832147740191422951958346929941915784808808688587974386361187019256191939507979631378573233365884503844494536514713299937335262229481111673788601211482761629530385646905094661182257982942208747825703232612428014615176716707720091178975657097044348525979904149363910924144587796797188412554213539471877960705975966131454657193291661916071352359126531280113911385758294448172970137939703609167646323630166846647093683040924938266415227112342436032261645342985955064733129793399185167224967033780171926192823676816573604522685089786166438176036691483814289500765478790680736688441593684659815486534614849536612431361059989327737413162839791228271504390390681425549198384101718689407532163420283438371569287422434253848788021945472105364766227318648460589584681508016475342567531386896701069178861406012200162459068889165138157681837939400651203005741912151418210547884898309464409157029624094994554237201199111363852496757749197585006456580287987522472974097363792994541167423805726900608606691831148274960468992421249458301302296504571015353524835839286617790793145468697256906106987479770678736897484876131560788855006092386892114364680790222089865277774597313224799580444825912865215104412355783447206644481835900980008801449756356717702923994460783036978532511513749828123277515279954537724296487423325949131104013492448465094418460583400545967765462085096036733651887412959926608969456654945204117479153345707046031949658278892840158068457279847365125149909407615082274171476503032393137100001346529830804352599693511147566929406715277502142169187939298251010937858109638969987614027239793946882583103504256460542533363545298439233605276732915990093907446304500794633093768844315674109852806598118690336289246021229744440211427825486608232293380775670425384642097215770538430511405527900548067383932460900572155666109847855414991347382329019612504514987499654917453616960954881434914116185677062852552045296267779179171950785730655647065275705586006436203900142775572136569756252350738348668900733272003877292454831655712377396072744056760157255863265701273871472616879839801792381104507361260813099145143373491182461354303540057786394550243182455698933034993555886978652561281269297987708146943820596381938450536244821659741077644653354602862408663992114341211450833814610963809804991913488476957723950663879186656047724902965134668531559689334558722651661716817291846198264882922200731509333916859071490038096061564514219920330476366331102825196478955933261071171013733903808511972567524770618265967288234200468161103340865021234640170679224395201334717732699520406371434279132347589328633552018605184513903608743667823932286506689283270043249365383102948832167871455537720295507298003720072364828400925475739180515559609870558175133424087109285052801801726520458810975538845275846164627953900876842689309506727479191592261497831113749884529474190046693435808955307129862686082937309794341749531654342031967798837998451844730118684865133566084029237528285168238410746983169945872433509296617447003636953131455681950653846564982815531534879564957608483860135203440260055196478645385783732820413705070764228377144280723109271469447607586368643058189043028242582284624916201089222949349924877350951392681735401304457467491972211140671748601481230320552474894667513486999207874153541496529764357233554168830730946476005931061748049798425753976521785069704109077304447933574566175279772604468395150210152695694799655985466728254607351834112622600827969723148094839470344863918504602566163265502500405949225937893001287771856468314756309071072100373790670309128864361839871382321450837977435484370685093895143866844359333795709051040977986073965490364814328232230676314683802517496678687279809322524510850570625549342855897536897362968268470852008617788506284605068712776422262841540075869846304360795155973021661785135837960210464523587514443557767324057947764252777783646090055688261415660099517440280351574330260507561435307600254449804451416932792587435817151511964037086578932783675059975579000107685233892545863846524980453419732937157902504463944462065113133119986762910333441761066047306101201237303562852224044768867777551960216989490414909124487353548156415365042108855053438467567745418204427100474380733918711136139662547824930096547493704656916210755154804578122159303655175601566048816162956764921206621046144258441509639150070667957441959481301374327453601287529362432533288288125371464141439958181681849847465438653074000041303493202959441553669905007617901311172689648244451677567486677151371452914220385900906178499495864781610953040592375085138897240827299520547826144068236213855327494029817756464282050945226231700152141027967358522380704885542909332410485999394392168609275088562398575381574008816439049631454640846233234438777580183746211434251140467749487785097129529329015070876968553202842193827834712543575929724754821555548252913015147195857764773406299078600141444846107171368326368791808523252454410951612331225365328430311220979205887218803844083989316199351749857028739509433943131447946063096311087441069059238152781893752893196389672465440922477670337768015512726095123690854112165102923142352980404091258669969367259386823918093867498188206259153639205207708972239266388320362991219272462533504775510034476482615634077228669358736687461747414942438824793764254875300508226651559546301386294416720884418333640790444638439289380776649537034429176507401590213993738404530127169497110730892448317911068611712268577310434577931826915907769920880952942745384439509947205746369316428875932436912828169609912281931697267219305640643788672457569417229885478111324936657594019427484481494634238072257425592878341693522543844164240717304429555364194134274763920894102819884702661867803797219359122152045112756720192658718898380270537497013996704822394350147087687790888515226577437065879155378945793946639341075815166235351413538338670285009468712293080758724129680045447188666719880900029099745691134291717425463188466298426362816303991117281184967946159091110417029179966993412002278422762106788648261959539190307862249345383757856027023075038538837100199000232497976616819281437629013798625596034662614761279849540117652090784536324328113199735924960867801465520870156275143063760349129503372755605979034833160978958062513658528675673194971904146665929142385557320733819980442647015296166280759054488814469840836650746429794353798602381155963290100866248873123080478909347083715491421598101823620068857940713235607603785740421386688604188961753286196811345693942012889418325494350426444657177786564647277948240517508240794405144441882834427611826596621997028133562983685399441827308152248814377377721611635824125119056489956916656999875598294705701409167036896087814013853404110110643102023484299956783021092364382585425130479056746820032104321693976605901472929520279145262633421370418836155172055367884577663500577545146766951047365458100220360715001634213021853754501550059258850017111550076371807780875811771427382542595616302111921856378634274383408657901645848591962127334517718817029711429019115339047274910177925789996698275141064912698265939354956291900259635524210880620019233917925140109240803156597783025878606076697908526192037943962003680489430417160380196531481097868606870805307171996731924307019258101562177372514525659651855782599533087072977970640020402843911064416477140402772987778771479806279775574900990076287318618472480021846221482507880713744796220264363789064756932590050421782916328243280372830245470315493216319003629177126429065595501212466678863353925843620226090300145690577008345202463410684892613009258386609837053344431703020521725119626433591397924868264704545881483190275264523773553315203485314927998479077307902825241003856902534607420690061308952087135267319976123560520754796675586354671512435084389102470483167947069597621584520999948959650014334295937396032397037788307728388376654176381305765351093582302239243977601505383790815957211681511205333286758849472306502028313903114288042765192893300429486626199127671551835419242278858089891880559014985761507374888974930377769510509514463644807186784040198159204298282807746237075915456893643595273537590782598840588797271021337468689794446819149207982302915488997139359727677262374023315448820371229979569663177875164180227265478485351776937199633842072155426076833861840846460516099603781035220819609989329214761760238751567917001640579396171897509246224467276546410737123022107505304953280356245609386628822225254304806701750914714413085612196851276022111032918772325274400554248943973133765650063375371182997766197830645358934729396811243275268007321354767573532595387513365729836426863786987701553797623620082079218000847126467376896981357162661921229847965454721636978829480059216426199068638085584127362422473297311656641419444942539865933433720197116535914079835380537472039576763888425550667762875051887965907452297121876380217440987989198027561733509392543712582162922166574271334774090365329287976468654585827817964777745624579909479346656852548499736195864243954356954607806487714047055940700485916092551153165533305881966145865873628492629596094373161358584675516107553094123151426407604765416313829041154210819917965833400372117294671142735082913550467063979614058260724555059690127388241276687033464337866999502413468943402939393981806121764426109927657413840006544589577535866115359230148311943288393462509560081068980317080265097344384237423308698894554106880060814702321632450378143110425079998443314104241170112337503701304577655180235799533018295898188285526475679653963220510254168112434869489593109401888670336831945878620902257665663893702052612038633254048639519430470064517922053046317193026556596038956478696798071456049253709270970042173266065995569218882548098262653295156807949408280329934669128041960525460465585896769376920647956030793556216219776351036627823287406411594352170524933999885623709347831058908723749419753798397199466882353580315723433962826155178067010983021035185396284626123891280915308500591378050824927295101847040758499941345473847517293462319011250875334750887331353846832605319732728322465524030431529241139441933997809399554479677170964582279820722597791235913736338282589253161676152764745898963455454911821328928829060685206140503511697532793983089055143038989362394112121830577554363059251926537969604404898080731622631315083735942889354798695053268340501624882072087228755997305065257173584688934199634834871050143695882754733824211026800452276707857950997422569776314352575224004640404994476955305515748952557564549271481593621529116868193765535990800069679364312581032459504369211381437368961371093035503253777525517854229593160548916633954075817573366163508284777348324204797523865182359048229940059387426149360051157047913435614041296418171705875252193508035951928487047722994886382861693292670983911249452442761092247954803777610099656975115691757702485128318398648639590236057475557390823217939264582841462739436075971375251881229991007697622452575840371227620765465533758800962160651787033017679424214802328117335184851610214923909819843240374663740560504000771416025956255502656443270057015108318084163093336334626377375074671971718641920638086818192365512583044937165165563746473291596434474668418051604457027400327295444100057271852087203061474354734758581687273753028650018298598982652515855378683070350026136840002640979405779361558767376442183247379328961345059112783009659227424280495186280454276649947988576771882113344430747731717931773144634597915232847489270993845316033167386538774051279064489022761300785230751802982908189664272414764581898989174541383494780642448828326135455851811409138384970423425846216722784757726719560601509048768500468358529921739475047136614708705017579337566217587328818231778573272100439726734876766005851187448645344938249958140839367785078318922777918642804007385852833154931528517025469486506974309244608767677760564324891088576021095943514900209450154348755726205822492294370841731216345428004310650874508760453574317672580000358476271881288344706657140924655029857501067040570076450412672218683430272933694671169468434851004582033821634625568437702232293213452256764810468552135763521955021540644567553528057365778545343061137066162724892757245400944518253218270569483582247706556370835237628976471242557682974766165074970898995192741913380261153498986951610791279560939190813022091915823273182139869710748078369890913464365873360645276520337690610959583761520521776439255284676894490004745652145655764011980077819167498976152929323959759823807566381851698075713207279642031628863795042154673320070398273033783344611789406798011059938123292822575158018238818040176343717741667271563718720239180443164350158084636091660563547462568801551200225640253856254931018557640498870735921691719478556714458313894797094839068259535780729961336357603113397428052317691306800493157698015796832515123300994620974346308257637260487759000829829930715470533575913944884952728875692308613772709668587211211732578055315859843273625268767814252043779722272240259104641845495550196592378633872201774807468544596102982360932411406790229145457894053974423574790236287215191500566812471169367321017081956546459928425411335601968825331914516641608692470205344172136378280174073842749201783471863921034832997950140202964418236566926839302862055726039354662628374139117131049163234750803445986849672160150577339783139882649843790987418354479339147506597855395600141412069105763490508027213876239590356434019673987439043081139756174888752711427593042001867238238396005763106386274300083287097241208959175163083822670309793810246587218537108922579819745233828605564130635785402094108149924100607742215252453487020354586173692087872736791554233169119451959085314804881305494642569450963390878677990084958307343516005050872912069087298842398891762028493649155457146991412691535281673403488268168995554084832819038969401606868900851790501536981026100482175450316426009092028616389810367254243870435128480656948295041728624513826818586651357442530022636736727454865692445239608301299909248670814810070879552930056642828299836616363701892541632917805056006885630105070531641187088259073073397890275911392569641634445985914860857862072352568271136103130598861377411780307739315899250084056596271635855296264721906877362032837624535420449362468217860329021565377653169526402838037690248506147557474044817401097868738490441260587426399906501102920383123808634504529281128181671531012494195890143005995617084287809496253997326670592847684376622947890497703325762298973643591525400119600558733204629262696652708191544602468731200536862941199759421023727414468510350024237559103088151294553888659328635176905592777854902997727679733526731484054465629629304802758818027496491752687654277069520588637928730447366775952269794486435734356010676405378668490060903727607156349966795378474555555258203519489032016808534280328807050846578201026671897206220879282779794719227730988687150577732967046348245601838121281549361475739261821388345821103992285708965776656475798037149277497692425298462251861789226778127706671096911563601057236812222658412356639637588778672995043583011017013642723479114245826878425182547629739408184128559265654821783420918189056169764015015833209484708514141618215230420506351441288341115668597532006386582601574753716547413648306327583703104722667103231492619837612205322605515325238273411691819713378276232374983655626326661334234012219433269970494295251135909725770274678297675618261113275564900551074221836457699860007928656602825982410968162517977547150129632932964397514978945858938893291168812931958952013051864570985328814679867236923772683581448604281589437223599708255854140028305435628966526496933350850578270635824026471689172705641880576636947483037193537703259282115714671254325455890890191645194436735663704840232849097497908031088467114399968441293137335422767736637745916302663125596624026736408353850165725411491195550555960148258135570370068784490105778807897022416528279886103432155742966400295518967406190719087905481345399406894929780330588892995943017593957041368867071450143994555551809830922251058016326919921267213982316605542796363779752017184304851133979651718548279440474493293808162400006011734679612872504132780820677967781794274517842043472428318318094327840779832262813440738291287331249090133045562513707644043150588822797999726140010130910636644083140024215753049523830693340495790838626119653254201775488742383864152666061578952606505206339807585197409602305178978627483929610883629765130567991001185277536375470022207900493377644787402072191218133490057042050535888469335192896040812451037222073548771235131840626467870518681605319429589814990974928171843326403523511252009497094213791707568831037112467671619674311010319065726727907890405031237291637357492870411493345667367367760213368052080768904672086792231371275899921181879672709706517930743284858247560799155251258508212301206845912624909343463336364544805064248253672804856973286128305068759735085879120568785212673145050657541455408043620121224269038266159551987218760085565131184990058516259532236352537245140812893810337002219903442419005144129014674425020080051467773091305004722218519143210765377509943044766319189605683652493406825402413692052338145414265364164988169040977887876600456084716871955355652155155982023495690008643130846922683646347130348443815512661524649623439536326129656894676834611791238207498556364845164679132523918899638794888447434484307380283461424793439174297291245081419906866150278568267917494135132481894728157278187223136090534113325055051524375081532878084807818125382244243177532497247507331652328811224700052418949925274615819119032400416270687313569131020281622692787928770755607207224085674524951553674558249753201616612527117540564079252596331917131694909336261578251006729374456535326272885625350728447683101987914618027263546232719550218654806001510617524660997345024317003933865869536620132124618974662408425337884436021435083404449502617193821059513897219082188716839193703618843757457884655299649582763086461710315771637611470311200713673657977293947702603173749478390230828539041624277215913889920827355550751926251199662511509179212794260438426442586163050791893464144902653837619213926152160877533210394649932193976587177663314071808681506430970419716929232302957062660061503961276993339527512227069840709770255461656406598747296122030540308897544435099678609436050089602126997442296220504087057043486918279946378446041534994484080259734646932019140129410152789547274871326556533426104917542354509488812410035278204958570765769576328554582439234454989964345932131259151338385797261170075620190906940333703996841738944685029869746576546466629335688817144283695744078332017470452164574362153210054550230409868899896001683693720286009265017618222003222356969299516599333935690036728499191073424096308661251185661303663346090540574900987532646055053802307326282393347545592666316756851361188918966672568874545147933900901590910268122897248309819595029458064552578015313272707645510936290531230692644474912870596445596995569302632646062217868923202216637335265710709123094932574689977754499412349716814014339954220603469956529585314223300370159517705502592265437091413651902543138457569938957785168847211272544253972131444968025959491475629813076171480329682691144897098226738128812156341267698848488064989673826782540001412001963066995633323304674731630761066715494487452667648992815226682251733935806990373224720808732077966781039012218400218876207132104440378215790316620690342559949560521403495877000530217640437452020827126081356800426244778615702785867761515418138667625527005582764359275091964681712658180401814016037415793748623410121884003377883856096187624240958747583822574621217811574643585852005581172098111018343191537798490820615389410467294076538378268854204256814105872684002312088258031825091934776465844733679034787091410363092228390121612379615519252870742721194852367872318130739140712912060487965777438971965657999209314096908448914278135152362950197780564396909319394291164381898194588980052160976087750948426860767901256845484016315648980055381470561612154739061425034140373592917868554598214781775479222126535948446976856396129321218813348840728230111041715454213702608625171050114312406999376012961253850502916654324777222994474594362520221155355668683158267679202805383271049191363703923644443471134793491427153416049052390731668744810116060974449999816776466274994546508731809870963188096260470673424279113507950966249249244341120501807910311609461747708574277689648683823443467560296811458848455435354995239670740167319154496541553917634100337550800005067128531773961572058892879264680045052125068985940179202757375108688846558813421402320495560351692353459642428516960127023598389663053670672312691753194222981440635674037315257076160091539065037100120876744344854234100793631729634154353367132538234476440469994832052291138254478431474346357873308308333279846408514805683508834877136458493885016372296313461750806931152725543960755924540623621140407817012785131249101090440090816224255088156123409386011146564133434506902085400525906505664685855293878775570262265235421316926550363602184944007240260365686768943704455951608723714459368413168651815109801832297520762338947456261599205852109203234768399077956438200745576922822291038766737738971621250696953107277776777745593794680688757189177105997725324872774570670571480855630352963342026520930747550568501717756954034607649032122241406017864589454692245296981129378683442729959154190450366915107456875659600732446822502810494010014189008748531086388167057042830057125387069042998647685905095649375800318993048983236237316355892790221613865825972999675681877219184775631402798616499993765904328993353633181714517412633910625631923297735445894133472902615568895223521115845252853407701482523358640091589008449010261815693333182456113067301261270553052561083947985051041689673279179575052079563666922964357392024497393026645311396188829707522472271348509489289928745736234159303989853564400705462508100625499316625930879835064152804143014667438808850514337638691872752159341651801152352004392373632533249830876150727408678902569323513937243452257074956396267544170320754379707021166954882292959568236871301679551646949399293506250177111008999338891488434726635801627237965879759884561566552559268960260744471030962663230014809252289650425704879811537680394179508358502774298618309963651148137730037101330597414211354224991986407570211676436627839332555840755637243293331466547472768059810507127575563072800133113385186700037726202233174053921638453106231440747852122795907373560856767558189374294927505372058913087925083400875886692998142953037015090634084833587717119513975991740991519660545779286929717393580003796777136768384877079958624504976982041535505859290756013267862206367974707771238812440342441971559414160284114288194109584080413266099470120468823692443983291061583751799510130801739742901592006435760632291047628186338269486572023816319762384864197445239866571069098453503795033286138401214717468071270064781786492431697654300619482038373933646664484012656265811012523042630145994845474557476116369173155095965740054204178328067095199369884106699423141614742493905983991446926414797330766821590346039093841092425650134522448293188264584571267656819668385430436978193502227112895103477191428772340378622688261375681548056143864487507140042401869591143944468982380686143515405203815762570113991197489780995342277369714769026900122284696285744049555870213894297279573388272181196587621182320157825787900821055348204954138714234595760533784080382815978955523305348770901751111934559170591646538489634362808074993605479254167091649910361368343213308613353779687249725315901430657348812123284289359426016729681807683701395118053726243885779588558695661757381971375828421990943278371008609231261893389635794464873209262352275146710920128971963617940972774010807140412240684938918967821471666177565321249326564491305424788313665401373720535950037592877449322796905901370953686280864781788177449060876289575548790441002273774300248151740330343444290185467423009511985067323064496408141149097552304953087966520996737263400475290258707009308606157533490248139530145410382615367799601857142407855926447777695172045892365179474095394186045064763398411721108969494042076528138763199174222481056557876080024241919132417804027296693024065241675823930981667025798034302963219385057611321036639946640304684380187727178040281781289598854503369320561680944993816417154222957012346181149611819408082639695662295577943717117609630741703170402040845970411890471705733038693802973358203422167723358566585436689900108044099362028446267157870666885327246007266445279184092018184938918886933848306268267909635133561890883387957692380325926969334122080647304358770110128714129989225624697813428459764809763329382130311288873674320053575057144505171258123151255779628081345552058836587096995468768594366206457734665158639197685984689563563457595402895110616986883582842124739355975629509519916926102584786507856390136887859854383167526814492778581490828464574059760477619802665787779397607373056347859625339165466055049288013128389454936497975731082297058399272069370462123541636872645087535191122769414621570271792371519467480064575883463537735303885608505968544785899211468642862466622572647160218127540686765301201770803107720463850348706414890526453222857920298920265511305174371369287230697082823417716856640393722895096503954011661234112350792080931891469199548844564742535803333936190401797312387899398694725070902203650486474808526696530184377872619857179461536790068743806731936666355503793305969848902199218039719817704835641894877639761591904377896959488875757355288797997172144715057559380480091758264434300155325904501489719308216686766281800328691651930046697815127916528810951098252724533668567470117911777965344367143925781413126482992262516147787309784484722309653284727642666483546989637204862132875397108148759444569204079896645772645335876665291469440041621733810242896343674035690166662928952869196330144934845069904231269368322804962327793482215807254037719941026279815288588673007618439826403375800739761667236908269411213602801811456486651915367504473396902622091643606671842352265118362943034931332091483459295121027578547979101269830695495691555927838837729801489021273290441602172381090118327489735453567638934168915915817148225082760507121087969883350340467209793060064613228660361123618328922923063726720577436314230513644063097310987419922907603928561579060772010009927892712101128607703106973029426584617902184444860116943715780076591167411785488972492608798513035724028550319751424381378873615997775814396054723534019715835819385601992200080786564463605858534366234847861973897195013175948346014393004603617082177892288058036232330728759666467361385029652522006183777946179050665104477616058811544680782566938382348416759222226298729837516657680480838215568699553093944724125795419422682623929455240571396197544040297990754880667423404630357502317215285428791460195756949553797542072989978964560714167947077964052626421424416294724552391240445929029713799061907961773022994821417935391797687360693118611873847901133733341108333440241314338405171747399062260267514174969490499370955678813687486785739224136578716750556195352167671162702311393467970944145820735768041806077654803499049192133832336914990483649250574344718544689976576772086318397683401037031457989223335507326747289200568570634680873631722862647347662962219546162392146366925544172858899242617890407906071109428377009392586104532088609058012550725586554375909026254745846346149067526493288400420306902424037087755387039804622339246351273383580352391123409974770328454266028885652599338957231070435709367585253170232434424762939777960624498743310252965758770363607805634949642264059741059275337695536246041867531372722482037060983018616346313947801637174138555659853835396717970385812106005908585862130973214734995132173530690163549642151992039921954043892806884972604292947861424899900602138510532714978907988732770520306901305496344328590890917485963926780451527290403844535466594685290500600706889211271529308917067437970028231589279575954038681255768585270324972323715702039045445270753737151795700424403449563626154848614517272356673017308700865560673485608216673225897879959584439140168985857754306490545505034365302604490060099276374802026567848889393571219993700765494502042288182730606286022613709987985120474028746792060704161359685262510964276466942173403346718459992419413330582381980975514397295279389203131088541252286998035827784085638426225351982289425024451657259190707349407033397058622638079760502241594878153581381127680556303055526643427119146085771395975140356526762712351194623704563872618108308339492669416636232884248413307830776351442491017997196647025253215110174165133665054507200104975751325008040660551910918375899600745707892454477329425230460497043044686152884528572408001026505746599582076415184475767435852964565907624638492273910183900636551600842796943736225381106139984630500795843292063373804077335474578661340744347072991424731074104431432853650107147043065336208544955040537155587695656771879619476422229318592815333010843397835388811752534456464209097031607611947049803445956808209715360432551318454394957682898979356502217767799321765591008618668849566097308440776464877294507613335080976454857898260254535146728644461464390371314458512999735257361731586431380290771843143776462474017492575073987283267029364207086877635996507948987093900017832085452991064176927302317591075343931178935192049678841727063905297500275048002082219030657242394980658106860840165932573703039796269141148171599212801638015570656154138844490561706956481510077626593995091262505540040853969472990251631990339707232047315291192747967414711187593091576968502849275148678571268221886226796570920873201616507306494038443521616453339476938033747075832172372734807634787869009360174709351968911463368378741570683071115488781331599673258572229971667924371986986274342302468547762180175863956629841343665699292103039492065944249906514148560190946116740651422774254293727082814318369804405317009821094331485743262316513737564167745496248304690305448492979413568250045799071076853913315150363797758961795472823636510374390854644142100192561401248001972748028988918819245291448107677606124761574588020202771614244088941049748194072629071182104154380292620999492221110899753534792825283538203579453451145718090541302492435069893803286343397767957580046560225599808939760269001826242610368396902147604803986811619276456052802612648208212816663435573140033738367853956902261868067746700747749455490816728413928939277477158077078450346807034253832730696073194937527523497906292208893683784928071171415660446132108286928242851563944954404837600731441590894956658557874913186122728774644534281298574754514082804526724983255469544184786332108596358274710305674996200997304348734430375952079790562496508198378791165672688531470368011631270449906323587795961569416085378397528574241396918420247829288559277017595301795928051464530797457123845740688010928458872124336789731414378185374583734466978704918577841221877835563173678922870680551178340043651337665763462209404538181630322957179266287802292514511099501788800001498363895176428890206923018657013749690233848358147166981920302709415685694116340974575310906182204778564680301830049197318637284394258534886235925629918781425381637710678848587075114244833793022434920440104148823131964839523906505497602694416855527977641726653614585874457376663463236356465280200823021188151971771860511011306842146808892544400395008892395300188541142621754991972911688959969124585103432263088773109913255239943338655235971168901544125042457405977159212820017881085544896768764061625408398442830951826092981797434589099200127886324106917903267476171910968719008882945990384788205770997379176478990216164214356171508981924711995924527526717272031846062448115082861924898558862294755509191229563410790958588767709871391713742043000983927027637880544859176210372030630519514682776987459045224273820512936560534329134253204464453287726890902599945480752009436752194362148541444401695247106841114831607364614675261159774392559427625824967112309847914664080504325357269282117220925944425418053648073008386962316399650592326239796374483130063902331626565801670755478489131619544212881741389712071196547288187471939020613641834657871467669270493825084399270777257546376751107392202587438052350822918474254926463352943457814516602370342452439431309209058433676985714142183377831873382752186520293990293867892125984253113856879601161176616790983860835136633727238340935926363623859691612935397143190465413708585612018539969175606169706194949531810045634126585850397864929250928086888355527104214864749792035669128086558504312331690511164764108988696196524955215525212934145674519112794014472110340203758280625020917819201887777533157061897407551042851533081560422468894347863269358713995695684565909658413676799420213902144446423440072403847938685097690514199360485192731438896216783062371532099485391936359644179730950025176211245335310063591313951434650466391896495623385216603250186958498861576111992154470084572195881908591109150419493501142494891377177741768369419209570931180861452371911813827246030754800901679301044313851951114794056012761542922962557902827707113095265049711923848307789399132135367277627655549251088130677027916862073154170938794484753709900020255093120845359705183741932772984768843989700999236655620272386880387771161514073340074420488140705412513911646601387936849928749089828849605684605362993048456285196743013020579473691614720812800360656218625486247771556339860473696132799411013064142977639375737860739999008346420266705893813872231251269226373573327552516899270513502905478818288014992969943323313791121331434675138259237056679176339481058067022181574557994355568353933059823263626452491905610503725370002635116613488565050037749646590712889609786627836419447013390840439347148717190543878298378999717802760979894038324221159844346829584479884078850466667660360985620563100579729076147525773156469631297746187226225345372314450757325157563362353656202275419807232996577293567677505017129555052885826457250222657054496017239523308917451941149853752226254378271299222358756831514287503600012225022283197745119082530580931765778951568177341373603649285160413748009896630292327086410556281366167749165480228158559582268158790132670600438119104936011487705962046888046628094745968689695967551607546589615751996346753856486515639144104648400575659198890235392520602777546208011927604850074299887654680572891889162114679585157773482058693224779252271255500632181638900398968567433719737367913101157734871276916698730740653841548553237405774127904059619630140387255996028172611714208579455156610950818733681977631006199080169322758126421194595268749626184805225679525773355986700386878300455889983175523416315055845056272546365711012944147836007764397818278046415553387240092975018798025853591478504906753146300937070691077672279491452054946700071363878241831276997891872791911289948351932135616114666523113405103066107528510662900668944384060037225278510506477239152528393989491332520422531926368453578322805211958542071456335200707184350734438279354036191809591592272117368462344167636924837429530375589485645005484916886452603024191959698240792710001924482001305557334680007100683913900059072604119353694638310381489813657494085177415673068728728131459392093101493156840995619873219030701322252461174512292155230944327778477901828104258256381008751886326501104171033104740965720075818637429899379332029141615812638764094512994713632719853173723330163507322234298998448065699760687580930143134560266373875279907079813829322536781237097043741888863431661674505740913952469323717162967392765326482699454879420693787731074746657086233002921197678178639510587351015014537542855558733192187606758844199458397972543909609600533937280071045228372362318536059603609528357600549455238550306520675151330309799381260171095773865784596826703313640776210020571009513256245798589340390887102685150601168927396940872933925250475244780950642563525439633993800929394195838893212821222070976861166718476178622591523641141393950252689597646558822023327125605832892995557091745842351447329201741908150243466175481183809148703796424393038497788221452923746106329054296020180178042644465241988503500527121485888996907955493764033983164949461757514151857194820160248847882845471470726607101824163603444612008570224625850294294612053413819613750277698476921667699118867958673546694765182517624671749366561179383832384080537565405449552703472884561449834482477838135115813733310464395402871480080494498115072411417950878884132579734590193625238839180476633227613261238722524850166659884203515016672945428921393684927372876350946445395518402041533112186948622990270083570901763734233243167730816209556651991790886690424766186190351608071302696934134622421272501490496270458464802564007627584186695096777955741461947713527510208020977257075355080875133616273949218224946957639122577135107327674611691531138946007144627288198363415291178830643009277723528160147817017701260373275180836708658938424681050902750324093615135235251505370098308471270785355596655987462266223064156885058108343801865834098450600483633503142953533533264073097665931184800707436488207989333326445316508195310374027465108153461163944221539660463998681039942446771737425334475760190161589786018716957936408854397683906885271685491477986958986553486640831375612913427996591346481358600845178849959800455343809024453883538259323032131563483025925459467181358760836666160961457523692473960551329322151481916567051794904799271695121482204182433331561865372658927181828460668992110510921297410048531573451734105864059906186564765313666675357534426915824527889913291295925275664454541328351432931609700352329382658024500739785122500026164399528810508558854206807515871709387457812839880737796576914727192032287670074134426628797305372551049201812881162693841091460609785328509452414015467409990772262869195861123390530500641428278658905133246614332629548736510840793099344954000834775394837805043907947579129755622246632979814633053227601416663960007266210237430485599921867669840917995537958238263817403791894611314227218625706351630976346279665762873195851155738921339180564633506229391336222622134593303797572079078386276752066435278609220731157703744218082225496401440633196644098424114285888744281485027215721174607658747672243977693415013491075703179523847059357675361779897491307837146379718095936539298676740617968273409419395208685077333517501018707945327330327429844938650050451266762399463401923468719349488757522193547086923689582958541090704453863633160880221047003620862074778024022585973080167720257693335084929420815571317436008574431558861554013181614855028171242121337255168240964774203690752578852356674366195315267252472398246753521677799435610912192330243676051178033486113907154313944243943152460494918749580939771654078569867616743599950060724519956812951348959834357517053871232994329492205853514120392907678270010905120190654752517757307307983711668223706646304104111503757568957417221811150440162065264623730463308296646732223113366216063930199923469405975588742004580714658184412493430040034742852180916530605180385773375216017215345515639740816323049677961228687860596075585705281365377138451633796889962145056068754827434941557463102182984670102476419252883040840993090281384841899238357775762962596439536256478063215137704920145155820943336661438622513022240183139294033439693410343165386450959242040378919170044381047556885657738364622463908670065835026925225257408983375040169115173609084825686245233698794851968279745551155829340921018432866785141567496899851806045899744213162523282481128981208316269743373791934915168842865393087311139733600242122524282193656331787146699296096376623505144001617780803150773876790442599441595397347226173422985746682123834823352488839423946595787851614420219194235682442895348855906242496746523434819960945972511404923913731593476074506331018836182626037288887887232072530881403926106663697608470797736318286053250338842735838869138324922983242053551964201792058008573452691519776004074030433515594283239801577569933029426111270556813084065707948555425550586594652118580000639714709681228841395512222494065585539860493720927851779853390439361141312675980118098088879110916419690866677518890555566218836770081030110314537833604429925072147757661521928526549111242460551264210322228512695897595558446974549007820775934504823485961936132411454766072953834297639314296529666855729382449010059595995105070659245309908010465661988271061522458025574879001110027051384855124906048339474993730911046911288864434772157489952767323722536230758573515315917491376380082913229152538297167898301625864930830377862874719416205668353983687364454049767846279551269265176494746082714746462589198654830437389927812466898033394967605783023629881299644490594980719641671088197440685494780190053008633527321571152275319401016191461723719909466659153499719318038699781141574618333073676718301753878014745970356250899092803958322813146966900437234233059171658252980879218097273967749273527497489037724381551945684021443446889990629755481642298442942942892781329792313583644060150582290551641658458459806084371487082524115388133367104741151599686951685143631732267605527443464068270737942061434257622080878757418762513487515644061392058544687096840424857211015260782436599506932138240680762144613133223474194089925490383992365438841339943705990587995813290172633684180083319342702929032981436743999502278270819062451015898602555301567257289131289835783869440528004381880062618424482651569395938043629350511857275638902642624345693052532521967099844117710709638460858621258296713749810264911580350372522987653840577734101237873101514383540020560995370046015781491809598739274339540851110961932008283312139885813752224757084443047218832657874731469803984381560430413819369081464689782675877887149488163568657595400937506514440381602030786840118085059090065965060960587863259500635578268374544262473701677299115393759842252452630865489435775810567783177009315883455166780014946133400925659647366697299310595495808988102151591381699571859272076786689947863640824141043537903757637576207427042316822471269637942893965838535265624978683793546414779656392629582256565933871998598786788894760370070481704276963974025741578656166866471914617468709811629875594156520889380704961715759589189086881686519062029592737001423073731649312187950274550434405568807420196703885118266275737616663140942839650009283762224662893718807503212155428312218093161603032933208656505322516934347156120728909646305087034377964139744526644265112271957685501435204004455423739856305526095727120417729002661537257473237067812748335581394636999329922441831125320134904083333328269088896380122117152115341496120702988292217714609488958432470920110482738660325874789434434968036494464771258723147911560536221841943804873186535140658723492606357858187373503865541716478532899960586053762033864395640933991590381125591853977222690197982102200446794437947340180288963657723071231180448692668204452877794070099361284050279898672017561218309386884260873672412179423261783589660281557546837675635132945838846318392673465088525919729919015627883439534712453978831254782161589298743389245144829907265464784127885342292334680484379140190658216299136154583317137378238598276952632266550662283973020422414320781042065279768157515737053511390861446150451035057595679116713518179441283823012575355074214467308816921968160028987645373430251574426815386915611554540192017056475663710536277717745079182803127513834980157091799982182960328464980582303729499846035954873287591423395354710895518034335080363703311481180907274267446837257965551820763139635984063916024591650356183454877575171349026509657825322225968295452717975582023146062928786263969168640990375581700423056325454960278657184358805374554395369475780145852751757382812792226377850856133637666267377031762408733823916239432339312342897640909006696799716899822969115785497226472221124928535202199630947009751383830555169273550702858445689085907582717917758973706688609814958329148067980045366867935274700912445438460173091253609028906163378432102195968652762889450514304533073936342246737189496135041651188573709389061258064410696976587547500663586611336501782803583131123354399708833640849610188946550045187260240610785617713041143863137826385300620055058340875030830386430054377850714951916064547146531370455036648469235139768995597810387321514600321384316318569676065632549746205101551558775114469389154066847312968909217004906111620398684790973699251300091439100949606453066826968244663530258256508781491159644345418706570006922760359746163538385890182208926117276182183487564579890974088871127401913748555192695050373893491262385852145441215686148570406904159336609481713934235121691412026263971277547030872121188170810191451298251244415378658452235052920942156925628069251550343651469806071889895326058146230195298104580778308163578215908385584008476638022995477232606636188614558134996344273417437836051396443415654156190542928195127560733044009008208005157070413804086115594317191507854464503003930343629022773697919749175417942160771417006259450318455606456360902708595977037941624980590549266227467277728139909523804738047244115906418255884770279294855372264660739576854652484560860566137955060671377165539239732742725892719919149808574519139832163941823086151053869291005773754325239553982288062218763479812908769274394742967493491294540909018818268606037671513707143162011035843840028253970582195374800443286619172609504066711080235212622472558604918811253956614371042119077624608259674139620275196692160389996651034602704406690981952077227280066417088102404157504820336807620018842712561727566979426827308954267729247278420524569772985894735732530150656176488580184070128665722966687596816748380955590648054415168382210860066667719948456097019392857443920529266132750263521338829243339874486428798388281959671367098059982111053606104725662556838392538612277188372512120301301630817090430813727469013458422058682592500763401976075663396331612550953530138203017560021340689300592827204253910906346542931989708563726973019911371313248263066994456369637964270647020950139716682900304056373070465848575206618623890466077742040386766743008420180040439160818498131146374512947762368006752243073285168701679884578005548353556587604696988944788821560788644114671210303726245674933220024221566076251722189533111482873006120273282667592821066276223013158118043799683744671420825111888982763224818224319917504341440551293939582624023403183742230971043805094002552574742688189707627732529607163993118640576434390209299780220673940220196703755014800524670527586423951306949402659605603756615803760857556564069240587382257725310605926740540002737970353448638383350139832436469301582896799233447373080000332148231581054301827436740796841343647086796750492855109900998409537513319432884512206924552478485474291233165423644552310011254489609104031785254133455982328473029044235692319346979119606588981093391123178303929378589762465834522489559244309220687149666957591773914569580033604501301894533748234079216198834852258111896296844455389697434231254527690963847998337602287119295364352422354789514611305493768111182324697502260735639216646752199274589274579594113566593755442409873036439993475431629744759628098662443853962619109628823130324420210442660490385728257039603870557780867339741559352746852183759685668506476351619641711882639447012292083062951995598771457172350063475505243295049845361036839930311460439619350969781786092875657352271991348796859544421153320393685626387260435699332130342658901667914779612909066299341122448011876108231376496891910099281582471507713726927381123104035320801326911721874628788667915607828210108295148200806248716851941649869729214714024400409201862083543587256304995596229389411564030047205442680113288106651549435733406273528183245703392808275587629804202601705645400903971991264057308933774306732626745979177076033436696155052196696692740387660292900095756277793162536165213754317586470074186110871578692130170805936485310789715174736990115528682280084417322461989070676102917314502566217006958289682222160377945386270576040793257268613495141454879600181464349604872512626574055438895669174668080245806432717190433320199852596757179871010146976395966695777258835231264788181304769247674718695010806430287710309282651441266188666527536228021399210241059771462636712240829151519558825210171333051744977019471286362288811607498046388485152206000484939001883188265534623371889216914721976098920619951539648134086676078698430599933990435300538216529216078432837139462459791218927910992627031327326596868873631022519987291102069824625887090043747809263615124351296483625946219611058160169450554443109170939992393880073230515945638223012224027045898875583171347216272510079621835892783531598887871396425894044287379252003436375362827197441887435878040158547731393311047402690007719276905422612229136908805580675562105050857023369351532182769891886186919354473949537136568072507578672329720485359236971502663509462703468797794321747281613000005022554363800577201263459382637825057113938888887326489058305423821251682204579125874887423438739976289234492373497282007210849367937057944243781320754361317659128039601619998925575941140998621794066561532257222248315650370470155967082095628314997560777932669145488440318235770411886612062440457277819795869342576324362416310517758761329763156231892246362697993799989475124021839429787844142901818367956047094754858382193158915225628631299099247554708657592456003985476186094415372440820785861645478166261244235768963374538449445669215411806625767334211375890239373398645587590606716116841703106974185769966856927504141226265229945462052042340175834015093741962672664246159695037496297223919576747324495077621314046142836952866832166261533173399916220981192868069680972747469296813645101486494871283855880042268967460154315210534909377697460236835979652706874571418066761439295549206807894173378671274911414996143619879992703782184277533008964258461401696139235884874257778393516320872858961656494047052756053501851257017870057533376184341682955424639658720221546564656557359017545789457829673732841204080361368894809621851545579216853395340894428419893667870113106050504168551888268923428928297731958704378462489835942517550478780153782001771898906371007629013094009172058320646291489244764704354358906746659912233459060364920461130937060947866685593885808295195803135780281996821474962904100552642719359921476905283536989380415476700404696408879860497297450772344609045513384063812544516410071622312674259335655306966787045603850523580755754089566948906457312314770208848374295988986694865739855592106136338695955388093365065836797657772607595026171487815378772494724551722087922662022861959432876729329731235977589728130318552950118681383312489577747287288317048946848968589284408110962750501257955615851538943189350382254516455443152742349142629119774488705927530359654350558611094709277806028260326905558545263342823562608326677154133360198128594982526444365035777954768992651924543160912382384071424604712082157237697980695293765313045145891818088994017088898096324303974517380436215895216300987341138757187641579420538030192115684418860341441475057528526922748572578856020030316183508135122741359218543937996353652141270858990960394122056023631608098142380505807305327988267200721915913069409862806145060282930501322188599963804946742862555804763027523082588601872071674134618078059466120078271835047938918729458361543848691301587571165825051354163873117135105582669928086242186581142123980079463279391933813375870186276111275028365250593456353485110654391666538948918056839002262141401847124120409059010059473090145415333740270212796096965810309583946018238300950314387842827489238383327671183706621848832684311583604081560924142580612106265721884389983796051440560381637805690750892076500687031279327135154399139244853503595786708171462739500369442080775450996377877639001555466785407849192744002788027976161480688943810915132309152087305245402765976515317632207734653206540389916847073895402391999592968901678304935052892177143628980873249321562961702773170759823184954780674788628250634993339094914084834840328544142807930755305940363264047833995837943794153243568859567556445750663875100583879855377105831927384263786098615888410047764009290247761435985820149433708448952103491178345581935814937043091882603490390206984917878586204519077207274315764470967013031556021965841937415142502161672950759408498535068494093913170110247339836733809040422967932641869451379875484351285955604939342440510130041608004878539557324607668399047309470997262019848474041865954588678064277031324229921174042171739422860104817365574784795799489555900479801335318885349408873577605863783073661639255868889095205640183442227503689894210627681077600053612777006942598181716112535746998790893703536488200813463726346485015858724811658732142307925656108233068284876553713402615620570477964717786872186196566956809689566686499207432077898149066494487118431993746410104238535721475893381629005271516738287997950052247545544121594197941276613696678387412133254491255422168052989936222670317572747069477815333773977614756732558036516004460116050710035330173823493665849327248258312714208924730529696898486850532269872722095451287923926799829754527504854854015445816389183697208582663942863180567673769017236352587834940640616967706562110016532116688084990186595669751936500326160627083596205615421308397254041576391271113518129600947340403113054660182178153150622018302049868706875773243283065025244834819624351385751991466440715334797982768940084855453724535831905278225144237056405359109336701001804330763294993731893657757089124165705308850009545675319732217403915708045501669180331641227101724170233825290083764206249784458752979242060622453159872453558645281209914501993024005079638908167408113762896748939444941215476208157156934785805289650637120547425789517595366160494490529022313485206956056587561943946587135040403479498440218400456540246846449961708131087290348320638655107598568775008831239314779119726970707307608488422631717585801250421874254383367961220573525840046744471690763524669507308716486864343024327069217921563775384217709714986340207419082527830173356292289938464480908095870637510429235367707930163061167986782021081609169995151540632277495679021540314045310726121833610275298226943018739092225657931717522843362100048040375035738033242369695657318983659314133580346146488498772299355191762320267597922409565577609620806416981218863477152543251431578996567019665783952434562742396358165582098295260875176552077900386081782624594063264098164520903096159614536819348119961183069750018421843860323695018798149636766780786145954616064257152323433947152600050819790484171131623982256575653640940319920353369838300750230299043090774456239673305344990670052604653638762838383564230929917271278050736411211113167140383922935886640216526796184347743127270739488706744199042600178868060048769963948289452164361921584350008696754253219806848203577086051763655865073936014429780313276929442187656822694108946648515082053617366111352803863136409929851258675037656196183988630495063656575756780278857195526704915755097125317706986601260293585120244224497516459349873182408936085237016445024171362848405769994573824443047563048252959237758224478931123144425798326717844901034792281346676445943205070372991153284886461252396759991153561663876820309015273469216451113082681462723607309867691963839281684324896944405348708273048756478090937943837837055732083834263335312557744819068301413494088173645547072051837830760054556813053366038163406345504801078624441768461451967266594530197276303324068197010685381560518620925094856814217525008638286985495211234493127351989589780540931476719184968771951524919917934933593533329120697250234514461656282026717955316335557597946789909158857920426242954439723139829360215756707528709337769450564523165379995003057315563054175684885251733040469804823068952952946104530315720513162144097626607126017037863734028229232698336140117936642300822212596175278352436354903579251346011959387081443701587201621827974388737366095980660032438307658412375088884428580957579270772640390528587893804703617766001320100421219038125502254714605914070687685646234941682337485121745633812892666482384450000774295422192974622321329431234910942692398874979520723217327504355192039409644090527572951465022308121293920462268219554560295838705574107015008173423158262624744471989924604073463673379854592462875198428369579842949004068846193725163869399794451802558503763997218448129577632492947930151304603698351522872988964150658612382631821855705556203133354195268914864062336302095804364003550776676523244678875501974996682702478289314190068797365639002345657854697433935285062834775145942845339955842862674932748728945979014880925613337775646988070675056373080887788253691399995979435714008662683903228640687779290006647794177535318151173244051160324508823376240508036009895639011105267539025899741128837141770709061652574980610426839320617030444875617374376934721471947214440378282068199843915477192360292467809410365389357637827842481106920079473085211397076613573332362687730527242627338173816842055130332335144569773521554852721250847062359334127586358640545835833523128120746404304228169060261072477177484444719816819573832092886898561946413190385387848727964451337440612865976036752261542524035519564718268056047909353309732459514929320788959952445044367660224576580576553329475765483368391347130128613908191085791587131247520368352848108308326126450529241428492491866193100729398111814007783902495074355512007059895508753392314718373071575481617691252624124889705246307906554201756677012481369866482619096120894888197815680330921577670241715870518215776800071755247767314238670037965907362693074089105243939681757714977907820011842332163381295359092994048685340050847693336708270578654047889952445348603406768885374274090352273181679589909281297208513857053808036269019446703773789023719471763070472391965304455348180280702726717253628244871812563774719119165837677163045151860176440414699858081766326741051939407255155266380800347388164734388625114882933207234298959880384524263528579801195626226364419734530771024439021447832174217993875259907119773219167547617613168537677724969229883939325660506784840432358514905282542710251968323698779893215550923156986002056337920143411844677975040143821286367762928089711978429532477221092625683450333481734232650571735054511069976125742473331565374900384090747219210172964800681911532465232436296277336063615130120909421767958633974992740174140106488266752721647013942817467605738873873852709655663013956505074321791699837366960727665884349177165159305790513376989435615606637955604604542035954036093199760149310247687408212271314827320356645698067284523547449522240631208775973274637138359550028041649937838006504421585186230980418809489411998669049092702899033569538388926957423539942551700815208201525739716268108553694636849609101402554626673108922971333926431957786316531836679039863899019125665927935975036115118513513762493930093516689201467085132551086885454934681670378785104789105657933751065405600023187799005372934210845736758444172160529838666150217952828321315283555173226552165369626639582817780105468778234415896629749112230905504156817276096334459549076858480338748201293724045677614421439838474173288853745653061129428600057149464902832275454919832866195750655324757825269429536774559947377626035245789663137181108806782537055619883501338527423285854134578036910471161529065465676759306452218106975496468760790975277978696412728679310984889134784711783653893405635048564483887206117011746459256427608590505870321438099592402949005195995065303883392114543627490353892914416662418471323364803468561029790715028376185669334822940429789682602640397611721953260057564172803475217693418396672756084573081870275135058159980682034385755543264303500100113072689421351982543787170512211001478379025391953243924256169730877276168017403179316469575006985569502179683543840922607614318117136898546578078924466184223735293565802937771683066191606886126806641514653161550277162336934656626497444415593526706504178003141951201381223734847675622405794018480704854134596752057203944523604546190117632567973084451486411712725061566172784514977319244730052496879120173054747071032099420713604031351951787797917003749381644877693468351255824587138104119713204796854924319170496046175246311147176623517369431638589052155965943539686628677977873124689845919265563042834285400175239717220334197684653393398936988053187823564563526817211618205924743944122252966290644963161067440523585643996918706605503797648480822009979687389272869888464241240545838654073704527435073733526869476079669996712592836531042209055319034280011675187945558825238309525773007539944662415981629389199787326214004941872792493902716515217079338948521134329664389775316343523067475233387311210381130263530822205738972205577685916416894397323958509584314642671067075521781303708530731075604981388893895882685930681412022925558180283777312743716763207190609895727770722617400627444280614066742419585085148371952989705155398098846624085027156771008567522055825574164709767978251470468609116987993752921256347679389440479311623125182612699646418926085683822960875670555003597122669930971053524946959679278790616414211749244645362516795706717465090594395308003668119116691607992464211384071810242370778593785138649475349569000409399900295565343601575303380428058850582513716671862070637084348071291887825243747347182365700404054400844266587324289875726866597524650906858982625939795158012228955410391089504346621369494511322503002641539218723287548288188700819999464360616398933102662166621380886915532209192487477104708752042486120379290548287067750969307617746171301911075338137469929319403221304970656546392298687057417093301856375390518782179396062840087242629519233438801237570645455875543637831701148411179271633079856016778277565685834774092725481825020768250746479505248363829732030430507733964736826520243569575576183639934762246368452006943926773223536057980035607211748943709554234425129479337377379062340199540737082035058359093510426825752628469977447565868567374392998866964074146515062681157723113047056253682110439795444773532747922672529944972032402711878083887360916205453059958284677707103022969869322655219595583703938415765110923344160964191727673885948198066796826670514191636987556511806434778005449716334132759290125774397245472092617093676872399547988916254147253794765233949496512718135214102538288737609802969856980135556947702953563471795229429279516301280816936415929271743235811170809144604286803691618240596439003748879470565642804055383714167610492188742885663322434296992476741801365882268381846502310295519138728911493645508831832820385870249720212241956562596156759759992376787087272760994411410284886613438418096239174441656563182026555631214458481924029818395363294260375835866367197751370383314851441377164426385854921919590667128610151454369093847830113121803917276355152552162227606045977454508004525730368689832592170787919885844666876106249089799012969981618678170702118030959429726069426301903328011236210676399599775391177485368087204780320235616084303909514276256957434672355702872858197910570471962895646655072692614261972144011720516634620180642872423947183313035067384347052661274888146671639528773970944352171749163206568191757024605067107180230528121759082320471022744625338224720673522423187368218687999381623175709857470687932274074360960657257821443014357402460892107351919001388275651736525572765829065234690791489899640338858025196837163058589278537709615387467361082814679608338598386588483263651310078785939707191103791441225233853482840664004721267562156234848645239079161522654118622446533707046748105173582895605264757426433303646688702621286651695205865871567614194765914618349002661302914352859287439719143278731803402942987436225230346148844546645779597645041882204626829489440905613703109574316123643411819537039590314243238684627456937003026762823633672858636292405861248437905838970239912896179754312673741900366672343484388399541865025955667950712645038413210554951323753984305331096488414125088345465276010966493726815856873432374198310772437983443331716550167827733292232218181363951691467449565338844544986077698037508390421258838375992756936460475413402225519105575868171002593790039671059613128559223680115202926159689986450315848005867874311167851802690597977657911081410046092046001825104665444481071997617023011021922409467439960321562773085093551425192822377586588278324072625172940778888997194552223834962435895192919013632837318828098277290351733599544017588109810344528411490405435455814903218912318518866060541757435610386522702153482110009977541963395054559584759626721578928360215353517734684480413908043765858658200103684865044968582202791339167692487743694501681251141917603016083000722423513757786260722897669710490291409056170949525783481092683865200666614739159585895852974676973225236765539842730333922397375782143869044213889937377752164213970570373666805479333503843262313403186985430593298035474668989917757637712606955964976431185038758708758089770763732102479694541045585779848550964986073482225989333452995971077706188760948102099081995012020441448288814106086168141912349925095472845676231910570934686218960676397005827271443279093054992956592148223313935519180530725981109011148122439917510498557413094635146650768207077547608154399508962277017646355420091760506836798625575850258172923498444133069700277952540351108223465812411607616872849533243188515220686044281203116225162747468571102852052536969487858909333493177580309681733555457544556178646498929909817616270235245676681343566141295120103002407867526409927366994435480596945905713305211502878264896468770883796403330525818276435938647765684777037983571438059514945024664485925003381595200914319687603180247361709614174410051393376635406834598375636447857841442384380935902625961248055779244927672266045231813989276043580054788261574063010602023394281527578748953068379951818936485728591852928955883214660927508430220091580554003681396385085745170098343265151528810814921564068767851428485915620393319219268154828420181177389700724074682221515706696859186756092125135036504085719424268691503379453643681630853831631951116864270938006737151743119456024089202839600556688966060651451357359909930614899596011548329147763718754176340677597214181855725099280087957621270455516087074226156617891680377770641660338336204995164466205019577479112765894433083053700636572474684806436899503797889234241173440814751133279334011272330088417489429780938392148428400456558537579935618668196433630632112475507836871997455540343950896729288475646188800266984601558402429162054776995949829014876906091581283098772200296211559260952953609309703516305354300427758733655883683974422782095619010298252368111992537074218667936919598576183945907336575331902399953279159247842251980753797192906777202103197712945201942053889199410761088273706832200267433492863626142936535132277262186374754721546075936749014992231995079006898953691766732218833710333648999034308146266997717866499288069464707476204269245760824709536559819106705551701122533934963720294564119677358428409476598495990848106639709510148696554315039935664651134186222907605206510778182334662907554285097594817530672116138291041304380790905218220728239460430244861020297650661553406590291738533306349381836597459643325081571481291727922991471621047918283944310009059045016674197822638696096602946447851922898485380148990508399855034015238298033732528652646499749509401228585131539017544718941257133007675270322963434558351345093966139352009295211576030433656801849496781080718263231195222281049606982880268799793659177658416388953543171164818489052764442845018401452333620860769520019423154641217279473372860398089289514258891550123476870723286373738756981764679705256881428998306207165861315417166055605439495011385559831407331469297832192966670182833234237837882006736972142511497473915599960188461823608706665966701754386453315982230669588405750021795888563036252805492884136564134702514638959500291209297378943659244982745926005055693199246281114018994166921092484223379806529853029203985579915336984329401558536484492715572667921077421442974957700430957518648110065528589526398763998759156025953544890603035272580399906953074659899880330940024006672672657981441469389855679773478626288705189305005463870011804086734222422190988987519543215831272647556112395499588895626438334732970017520378132225694198959776767160968206784596975460437468690349183008383104413510603881254880342919078328660586024356639510136853114010266818605236918955010083930444147318348915053686225262623745323912707053475331676729540501174727881101064710987486598770306597602332181894292092903951384868452184610900565485456544846686850770794542241812981940646221768460864183264932043393388002717803763921512691581490489308417008517527292121067476591952312209156657731012272572582032747777953039862991835722517680468757209602882153180110162147940821935824561750970791823284194836767169570823419440497532468616678952181634031739643181487189243767459989294761229184311906861886008728060418279209372005830853160953722028757120000491567367754683875248663336630081483286238315201641103277714205625005752330005550620342842335463105794036848257539896729261151413025302724238636336659081240281593368951588425448884642388127188484956170951464290523454866504897908762490531372684382719233675190592672193140020514509448143782833339098387043043493267507715547753662503612277219459244438617153394741569308961711638314322541937798425450159998980695964260784568388350176716276199653757191747331148435987542370337951300823020303902275803282894281772947929603933680408172955785352391748403983671934989345717238112825049878817987891275533615181189151954923489201426757814212757361640177991801211096794931736358057896595228168800517389940497939507241766460849569062642665215727639519530667097443381215619184570385692314595071623213532898509215671819140478328848079524917718191868972794603858331445730184338797312321499502494709905429308320682640773902700905185931650227213705770726359806653445030062041866567336749793995948084328058455374415754385023892172853924618404204808962691168399689610906514521024870644460256378073066598566884216566590319466669459125578820754495193218581503722854693676599832499184734520650430867543804973624642450525381732764579604750618138712533418409113554419156093359880059716596140356406822595884460690286387906935014279833900295416061954087936179037125519600740993794295474103717801471796853546781247198354972982727979757933830049987584934444855651408850179731831192993759204661979558817912520468531972469746612845161347286127623102160329237473563496186727669833534976798566740545753057266011417662841668901041884465409789187658032870638060941239006093260073516086040155309266164144511287706466367857658293563267376301332589420073871409654446873553168476740729311549802551401137641669855508923646732718031532371936736829856501498722658683434825634379735634064510865090281437712466619538223902285518130228597141333378866744797487197888421886970663900242357408286714711335702165198876553147593663535427700921121288346949677971707312156911029226642043022025232392797566500706697691342739929797913287246265158831580330899136942268948237182622168733012536682446587538623326571183236766540969387955661842505466997540669025268469882863780052163560724659656448539363583201417399770826372286803850517704472864706489362411298919020818055435685409312356399888059802851954164834953837909881782414836102529128392595413001056840892791704672757137519444729852091249568092508193376044298875571397157249560558972141510437151686122638105413608210331768407637506736065468746719470976380493426599707716781911355991288381188419756221788840514077194071644207089964011418247522779318988497425288983602643569830551015198835684309637899224210129601793124496300219068515708667327799413343618942173613882912777503001619608647005004022472516263963909938472847988376512151194067415114580964915556448257771858995672246937830783904340609549557410762707730556839587912263591257754027604050606977374084543902320029823862453733649416347073396546984753257829543280673812051994540529558997440555799859884858169623318713791016684145761161417115346520598253068686049469444294810577671166827161439966830255618368674166644453751962115747410083385125925695631158952975820447980055039693581818826296729080608191424093583765979428651602187278217425725666441598698704442877962004050908203859655569830104177555616370551097959482573472287687593660821936905287718959591530347831797631585840523423062229902059904746808414415382698707380990805462541131033514654062160844774310786830315379896926780998963771586192763720125791091431313951021493896969236524415034435887085264637300202618524051924670891939028070576580682179136429847945780385238809968300861698852734258731728261422608589698888204224439980036997422686513962299522418594833621742655223533626092248234823597517399082838514394221755050101151291031387038061164560893939613080841350360388862761712768369657623190798039440607501655325316487682533357465985294168296856557118978424369050416214306093688347937327582470596789992967219778335558530830642550547437210215031451197755427539539770515295562062874524367123291237573820543564484303824799009300649451273728663519895416171985714217463420866928187196208812250936662704987425227668187252886099186179940492977533866171500668043172857500945097397386743606841071518541182294248623892114761136070818203808864559505075575056218594695110815167365848720706004208793326310679426410829410967244803218307574304812184341135914142854036540263214421955854809632719248768715497073446916162695314825838933958053702325976730278133647275017356313903186065824512888584187158124289238755413252300199853623871890445871289937653315372482862364345301733816166801120291814825060485468537685662357790312717553639953309114694375096421849020108755937514184706832360841157656351137011471129537014152567764161376802242368065309417210131165033567964551313656145439884549095620855504787723406143487355077106149873741422271825963782478208636352195346882147451216173324272911753471237338142406956953250467637840977071945371374090948836387972078428947317340224400207511533696394371130796424301969656853004379658939712716151235122753202613426964659792681970957397840535598042778360727272488838353019983285029908183509274592456386091851233669494759434572779562170899987225780809802158352865253502667230020531452572998381182097197088834216646141133743470825647978579272857267015175308484048685272588403381545376808379877992938702866065867037650833665264696770682576631013659716169523241020694698668418977288741876376950020601950204505503283291629098878381965358762866697866130288599147235787980895463997695238718164695286213211971273641046342421168351159079306713855150644365773103411499419492928079675991770179064634660555476269188730838290783268085392448336497977489894944528810471917011613799253171301286488935618800401385609859482346549658965465888531134017469784542012734448980010106349549549423441450782914316898552453000682052640886913714358157769966972401222637033022676679978346799603573728515188086325032374700998399431017850832234984635711149487472549808158530598465418215322459260170684601465000387350036880383938196669142093556674501204269493640086812079400505070068398181453006887001692483277765583785259324599263263738366227286502626777736236125190982818825739756400837909524387682434565346845386088729712336853811792611487480677084989518451074380629067106160281591877427768303553072516087047264753331136099664919592736339358577985679479294787873855997894933861852687345337637459700694168599834730894406182991847481125889295315798303718912921888540879658350497126434592840702987431681333345542208942851112992292735018656184463975887669201837368162128781759557223359602300604759545484626184997617858392150000574659494514449305639260505654405872145423802981824602518058848859940987596161867288318014824906632666701967607654814861127442038549684547700262605590469431807421703993187755308803971359871053507637155332654981107651212795070489519690400486822460819659047129159469753117291069685395811025578555091105388850664135096623848460239905138486789695248404081882709246986597503492851861282429235802855795052229366989000569260569674949144065166517572902799556680546270079319858582762263128712507027106588136731961275728957427236516318942648136477264674602603397971869934337222801160175455501501613202798706168947634702950819091195324517533997107139201561144329549300708132738714857666526499322978394167742275082717514550046409659954737721214541942918930805926287722606702223023324774646139110113335725206857236280167594618670047214625092950749291566242321845239204783359032789793780354237198389551393342952006166090491981341783315520223210976089375031152241063066060669996318154616372336759625468541311595945631236253795246693256151170487260124774047770468783834661492528399471909332454462967006056481637522467160037018819073609173581227465255856589801314977161978417952058436274537092477828411840464370516662136935430117632165763499467118265387030104324794801714574108112141188552706836113090002776371181592485369162094232272542219063456252248816028535184346833700544181246872357943232163555789573495960365651577553006346270283110039970326141390511255799479871608895492212359982091136484479051587785944876974253783114879912822364091681238016313175506466424137915258991869616705113548639503519541275022697004863480986251644354528813065217812990101186844252863366579732904675281816680026352332596004300239816700051168973078622576327215842081596473784875472246241925132276429878325484880585213567353383542359478159212051758133062751737430030819834090087952757875265800602393622586886462667864993830184507187649216661109766904048386051483140846850640621094635291218606254580548408663699359146741184001525077321993323480166765502797360215792376501721185220828408728105547139437001775111996204607009525748134280409773138399988971560194393522534474966671974280015067373873523147187451116272538528406304507239103729719348535809047147625581660947701654762709067555855265809665764451627459430436714737385855587533529164327943506075278009114805105264561192397754657715820319933496143853557419326793972668673071881213775887147773999697519159227386524678159899725161200566594046379730266443015962906156115043729889635369849402136070012387623244547905916905168072993084617952504430160668132201950300354211401535534493304552126032028942675519830302846581691309851393450224811836038855885173925380723107491664004146933789144376242863763301963908280891817254741649043228700092168813612655406766631662270872144477236939624018907679550751570311138327756400320723726422976425308640142974105715434666953066605430069141106112559509798893377407206551864339811588999565722393159789284380722221231483060080395296409264597239201749623301526272918776216185446015813996700112828945371601174163273672865493150576359660068808620679136696162574303312543340289733795611750407023490989443453307542082654922673802658029128890958142583753195191606987149176947028660787085876104619012347804666857974961636123051998945895243649873965571334993162348062003206792999574307774722967497087660628124900935434401751070214481022336366095172390754301193006410898971749840357064265976677159702440867050553136864925943189741445384501780120182965367065112224539063078842190238810172095482933727454324876655891044636838637045728169775689234483379001673851438649543639104391901259955676111874126307443530732463128009410068162279478963199376862563045746349932911375764052977415961692672239784620519048426602447373217366302156851492227442134000043347419004207131308490014343477491222295907710829617851859890910280992504837566483097361639622861491491669542660930083087016931156603418636885540935660761190456113171871553832142119759671442476034046812513504660465784428499472242305933752081396608026450123983148037893495601529637778522364114577673486066656706003378871081857011818541969143511752341851844671374461555883748263267072804723201299222533377098796441106528087575151602999733169326433448397529291221867054889356848401645023777682772597831389404967823948899972559667132146123422028302736273521153362380203328457963251595886306831520517177456353313170539117313476496360204375798583771689625609114259904752997862359237278439785991490769704506123252270650391482116068956868446164157434910690544843160129542620514732143562548933974498307258847226395988049332474674718400283882087064260503956417021561174356377158098056779585418802120293245763669870186088018354453022808925091045470147768133546398248604317944811586283531299869074697708193480543047708758095193938682277436483124587682477864432077771101642009347061131024531727101144179037120379225431235176897652371413782770089118529181202818837779938559532458801431579410561681329190279921420262316394882740142326168698103532170696910175017308153831140289794095652793194709940952293587856789633891479073842201357644116558002739783462298705665479584090888568444301989018536523428797403892711305348938740219465004853531266540816363974587016764663913485121976410126864341895965343480466508656578897190428554001994142787916333810429882505930197529862176987529206900758900480907080293768791226906438729703439829160650430315234618630398796653840776213154197103017552551305272308684667853412729354344848309750430431678818361700316231323909743705037645212919756356296655952354134811573850741510096245638777336425638836072362691460434405003868050134328527789775198870679533766274041392067613059243530522028192200478300893922876290948067142619135267744035720677583307002859364181043545356447779192109945484630961994809159066168779754047863020883278924689725045328779298684032152739967161665846062722343856326902937870677241036401363029791501767333958283770463318063055250771611727073774174485046671541652840572625500174639835254854761024865515330227492748739670701637796659656241012966561662815017992309285642316212493960714991006502304938778022402225747933029250098877694201498808343485094207820939506655535622214593785595768277073900862016211248768732722474216958555787512461751958577872380117947856727868692961789508408925135222157247627977824064962437802850282956128492269727037337179291401489875372608605481720502240643206881851545130354319487113248589120923418789974966932111201885978842860695598998941171250952274031775617138468916763704048676440512635288625549509613594214786551689576335830233784746108881006376479942833729218901915478769470261476550411029830403952813267820461728823771221497681773737322587287479099768448187587631220942666533985650003574053117992672442670657580730497042361100241347715486157313931877387167963447045072703376822858694274878319568946688752409999736901809074457670689700535153055310221088276677290474354405037601888583448404242821307694120979577942634742639902694511293295417556173227171389014416792864076008484747981384573642568934304004729379223717211095313074593823205415748022708961484722155266550492274567561091886290100679830115179021710238530967919577267613475057381165273959098886549455962304442949161890127852192440739715966021078315447907863359591831217748479535602328768588953220003085821197341444832971506783242184753442856060839866928384170475261218630747648184777889172558031750155167027774798643954596682891418725039912798274253655335641191357522116080934386423604743214068699229041559655385703308225236071697896407450423660212811093456144262467537170747981331629486463845594237160016225838162700412230193037430738268368413278076708988685457253727593861258342300823630707586729602776210113553278145178759342293201856606976092921969492870073177922351801977932063614860486539065810455167648280456005624939025345575606430312414838956759586074236973874122389748705803680592280607258259030033258748459775312921912147840944699927427418929274773176724058954461249082319783249362446836375465672398166710481129806673449149481259250033867930904847564240839345493040494483342318909917527063665748514990992060228148272697815419453073495801558660049637419470801837960507129850881464928687417611515815472568850908880870376020206276876776566123920230218664740026273913679345329064836975559338441050651163207511145807068264570759387033503260384540390391438941477515744730351449396022770432073662652303242655214228411875766391402638949819539876787357593176392177394349155732464833876945201779755565599008816063954487898611301437021953729661956360666414780421826721832580570492400548508981191767308380650550524370508856533751660664357706274777851361107978049808342235490363175697545482911770177986616081087168642594471875996536134651441937770966408469986286795782698476830241477722557038225263875395154374119860057854160400045677028992116034278672492663216848244076301638029855503373714677349266378630365558647804153818006617456771554724643315170691842625828507779744083483039650808157557727385252022014617234787365014913490347899514285019827248430412945225092909265702934490817484675940134282685953277490456489277294241507969742511849750051501023702138690367195218757259823144360750807538310665890155279333424279915010535551165484991859683116587398519628413445044295987868063233981160132011147519046376013468241666903968650624492739160386030191891206419591903863549651827717640190376151311380390643486526412569925497787468398709181560006196170837871173565876365277250891731187124528581531279764580582045458386429724880684804926111780415530456459436053909009507782749234010094499283477831952719329340320936247136404953988252857406646503953468002346896239797218109455367018835381016741337371237469157829563580890351194312166034859407001630292452555122200266063251427857464909712609002986177875611106348644151021161514512571308242284792366395518438085781480664515806039629804032217673587841202286077853134549626379924409588144107495072826442614400481959695515536832656348470092634426079783714492139782959869295121179123175131815255633093666339057355239053496336815718887079364992674187542670682960909008645517786931544755416293370705676814636709562645606078608472007153711412375939385383688971260266913496010356883538037645558740482749542914239940225814448442905362065542896221482398956549501216040846307287329326926290246767752259534849565081348397982405207407034815527944048752953314607737849627725582238264015722201403270835759231522193944065925438111999022251133050685814344362091007309311478438828735908905864917926129398940504493169967515902003828774688612832153353058344882763458708347432311205567971972293333406336293188511092931506243856949901378994899432461590393036523218113488683194181225005046069075187576587576469149933496015823963812155111627448131733172499752776108088093521047398090587427230856002004021191635097073444481766797569085489402969666934359244525282055528222013785837712058715920114613983265090282288380299603353028337028333484917795014127672288079041449742398429331817535970871415949974308688908522459515319500353441813629960153091170832150072569382906865100665778016199086858321347402566725242163084830296295412080265341418216007428771185992356603497999840630242174916099512305256316163048047141591218777076226841121201234851985161016515961427291596378897624306051678028450352302023491541475760585363881766614633952930166914513850611033906731961524781895839713504716442779772637317266127183928011305006461789076229318546349543737957855527409318603677408786528664471164536163824499509533953363650802630930642768928696748103287916309062886186530636609122283182394397699758293055930365076513939010811095957081825112548674660581580846061784955611558592219781417207528969195640503168135714293834305794780426679757788011795008371679969657524789091681984164973466666657481272450846341369640470233537527814702858783491874561746005471866918728901309958673299941620628792851537117942854496797295606622342615131398375232494180307082533904261711723038290588270612509236113392430627017595270121336147035321625371912652789825513837953625791067690642674818586409664383052058310828825936890594810815792696613386851094702409169055496191557456657742286760059283750564354421371182103160194879860420754779178506452948270993409483748368710366609123798113233320542797149920670510654564446927337196035083793377284322557678565145246340645727577432861177630874112653576040619730774291115419024460888484894676999264413624952086467815529230622301238193603499453318417117530664489847304141451891686062963676318234759142817181414600264212280802661675635452496152693192913536512126074102724206588457911460155489074120911141581920303844933117037644164628855938474006520954792371667163517565664588046199523940275475831347388454651539106638054804628804830702566891830847876059911446359495585299250751946542208396672019847973235307824455398538197239936529350443772407071309477075021321885344219846229861546646350428179182123082762812585733257589911179350869866562816006364090896080456572241834798742888978341134316816585616791745156441864125185085009694794796362964571827378176568359584796493994070984433217380746001246687637554836337418408341590972248373352246647072434107390673216336797567206029028220033725039843021712123617702804290793994533150702135553216385428790255101633030843553991594018949783725233246570071666478137942074919203414369695476203336212734483300541061839235352688302357882559250161700380693644988572657641210226285847232730855669852343752502364673370836041178055761952748672002441897997775544998281871316781709664894664928711297081234032596596183618175004515354397632057081097226461558463122864396518585004278419553266894465260930619318767249419210996663266803830225398659098749924677491035033605212113157851732194345996011690096060111084859199348787432094223275193979785047853296198644272983890830830145070917104863035571183943660661223956416747198677198298957967996941487575932244421935801512071472006226971916101336019802641906756689332170397323495044024270570163937469852760446517412447321299850850287811521319908723165244018359056697984097097719303028150659219835402138762271196617526703751073438997712392704794559416714020227941075667034362724114634942489810546625023977258129187756329020796915427440902340916880992464996874635628558446551309820581995365352390180249030476409183894334891829010113872464401836261090175931813381561151720952632900044521841977901040875673437777045007455854750736326750571218622729216116707897971072954376352763569011968258157021556823959209041115452022846105570186986461676692565010869025362619180480078905185163547734804166654739128104014897594468143166483500618202654944499774427998542383243577611918329875500307599057226250629774842968587507113416222375221823022224965870563225075456831160384148340307655503929332342490070595221200845676562715689244577271923444217482584307103903295446290418681702505656888790777488531758573271238391724702338554089974259277011384033905679178886195135912586832100602775842160336307236630429947315592991516329271271984171651146467635153686356090597154269644749170363844524452992505531460014216931423437852107740356761666608051906458041418477859364332638847812184001853821732289352380510380439112152552086312411517819489952633606640928870755667680912770553143464990681752697908897310624345746009080581894939723266164385119194742200006668330257314505084324200623093479877913134894848302920789196372763203663025035803769919789441097550747745464466837369294249320525661271140134808787382625942462166676326785774277403224983151913828584735825459221460504649873749837769297104290150400194462886729424085323658821121837127154520712249701635972127158612978067835378147187583493101517191705137130790141298916144145031490623608758624985979905607288800339164944890071899477247163817139126164017271930579477070110398274107989012643783512234598256357857038192156203622806492308916064946584452334621865628665290699346230440557607235138601536031034362050749458784097808267117874194735692209986317106860067050847922729416041838356523894540077685253025920445917542321021264231872968959151695000251031006386013562201368766721645130334035221710148650394301322845009658651992861755669548991978661135422594173436768055112913906977996017604372116931247513295241795608368880886133345981045567240594807665790879160247665578858324289237790104654661149649484205229298744850019207386711494429234292024406034633130302758706626433154315079011683823679669779071459788822464979978218026220124094515023385460921526817552089917364811858470724027391239959795369188966577013298181745795575385847963074715385216965109744255530479592217631798355540315607290832250940380962195062764148293434247648475072370810101419780743252953690431831900903174818502493238081136943480484166498930846780486794676651340902117161764742343313235650888878478204721470948368872434837924951225563775504700156291928342843707478338281717620054671837575522306644136305582026912446644768360921118174271809783976854626803477349930033112687090968385211753959705879142610228138978935883252055951904660753688364826009421583300599623945286051430392474783343503007120589921168411228599397209586201754196929171456248591768468374323393610890824411715848578883457131889929545056792461209929496252693670859150617844831789637569553040752133913820842543850887547297364188296149513840921938315200726271423610491378542038014444309391357787046141054563699380926683596887103333707506124616570453357972480414217204702781435756715192180539553714615457925911125531593984620271099525369972811876946856776618164318010490407236919689251811491258689911355702405899571979844617256008479657816417403044936367117578105299729266215216878608155225469707400553780820513161091736685689782839009590027080598935606522658247704153061454500729632485335304662766676621631681878927902680158595862306985477472588791185427516658751362368222573141431510572363367465723037195855751784734950702616912681005229182192390742275683554796022997772594819145668226084480346700975539828601363791934079683062108219596261189049367494618991945850777703248609153085351169632239888133938408425056948490381132665903061878577782704230062044514917820023947045663366174280226143130861096557988433464413857015040246369076896357035629591051897011583888026884687884053532567860466808308818102373743617159583549896949529102879592534684066501560476781678329863780001199377461212092467157406860941007773285640499414079579338882545366756940766889289401538541072976150988422635278698569148723780206773781166163248609606387395883533144088698461448545733566275546271616870977709333643739013570021498859681066006955032702003674129692042857696798732885426265649649379587286526146111068785522424202655481319696712391297498529652359675447427943900299210189770910776696164563913342897276433313066541270400916695663530483783880949480504066212090013576163151846960855549769315018070075375243203325898612208548155829218001672496709312930344654519833586381306252095390028018776760574309303712591650801913291607153508129477726899309401504541760037570781130644260966225893786875928298533306017204006980468867801764606629110434737873242585339863274357144422615239025539647134739385770126435750667263491631355825198938966530844168587079737011275245851204944764866528427322082983359248492813615500226044685771272998543893065211243165505268753940133031591425515992388940250798441718783386434670553456548665558051422927212235150836220065954915178714145574371822593088441227768017570511370428083333930466540271428793064651965954254210213018870015397139315346248550403026944034968905103577160939698125540336621138542034546805263061921499942720953213015842056151310418077816676615459965609445319853776218060919245595018633875128734757336420205534973269734303164900350569236982757473770158909357113382478315769796534167772245896629824010540485786725538983720594000997239852136918096272560340797802340293028750847481342456312182325670057898380175003355360484608969750446697193461163163888735833915349284230093243387955587310457282101560704487451802395686661407286942792476326756247952529602569488249068180662125766827910684390683985970959724677954000207892868043700022068583421578684603519870783379090787617235250782596134727796744355267571407291622985369369881127320386077548910271741692142420945991622126361084865849319765479397080846180366357337476487748992821872433219286733518465515805796589477199537003720650191528154298144675638862534067932827812644702214058310310024425284905236144544684830482090116770785970203114398421787873124567210123759789844131829101352628417897164756133082993531767132842330356132747692884816166096290869992963045621406265172978601095650982179388614979110769396716876078877698934215700372857919105286438911486810805826958992868307469732125004975285527068411377273763654584073797357876100302682566465137143442588323659595591430075789115986496677476522854316328927421542563473248423762303182176719307348330827263654020129756579079354410781796912741964404481802443095929723760044414294330300599620364397550963039473323131713409414522399395886712787003912523175806687304931815648372834243472732424132831148727062312576325138747264610083039997259160776135736519085358379467896336828961184015514251109145399093401091050725061185854522267844024883313699408642299590288562130054844772135617129487289689997707248334971343574352685173601283432726535735128568662111386491484807422077232382954449031407812627539662061203726355823522803194627105885595253520386919708627422290909938303212936220709936294158265925135978163506164678342867123376691574474728719754970474647669454967701786623945695531202746709339461227631231407676999074355848701746644954052126930914855472015026203677357044170672902463477385807430347340485189272683233128992843183566996827516668102141543555870429342846562974197572801914535553863176791349326998747625984648200699915615023825755062181642434782846093339713413709367334105386405165834913069916177951275993337461879792672552935318151779272062966261224848762705205042736651365996126571812882520017324091041840162704842857513849875419894472008262359974958849914216329911973302857812582514288645234361888420893344529564435705779072550419799909887798218874566780925972574192625232125004007908128593342703677265473689849809199327821957546618351908076306978938640095931755906847410835187265860996895758576308186902563683150625813162036049857385216328633988430329168382414586923648115757069748056601436544782656289792668318000697673004742604468175182973491568872127433514118280706236036456732847197199319367436065874785200930134748924404939881244631628949892261266212473956443043689505622953601616709782820214797875372461301781526308302085774473896998442852047406778557427160151268999809045364341053657695867599235126575898299832980104084204313233802536360780241220680239761534469587160277694612524881068628132949989372610294802079997976736754056612793158032538463627984414178894120759720335885934844263251103099040722999466804671554954045752642582415245000120691019618058773658657195613006749603714069932097784810617635384351578187694597853577209754050033363991349517687467530085021304432930290929467677129816985589091482213933101998630334783782251744592465166936418367956381648097052312292097779560045035313731057893503136766863026628878430733924141533696776051397154621760666331505621020116208620490681511165278918805093559285464854322017917848219689469704482521824859195388130161356831572544384678864184107278777752885161534975195221906826368003837546914452936397693932981552826346122614743177902220225170966066177457840531608768776346082852629219263542166777615528893527833882806817052734033494824894907014926564849676216978946238853363703651376152737884955936604424552478577659872078566639426460343719399233009916354644988456909035927477324963919808443702210258566814008422125216873436724207084425893123710395955769846955716312370991608669539298932189075076355011694438016396709790526916626244770575255060902681793181985899747167325746160051845610243374599822660124679888632578750840042532132571615729135889635246946051584700625881621833502432748850330416919118313591572984885965060072278561766962288758149983687939552632533900880401776516319619670559496559557908355408902012420392347686875733667286399659978237795203224217668794197061867084423251077210004042963601410107972616892283761394405501294681508505526347487463438469906424871561586651074449307956490577961090250675334452522160182589275752627323551221673021756521232157949651230277734500564127103266544252028472857007048647403773692723978634109088576015676392633130283621456623286559530486018399777215828598381403072047956426367064992026241521170345020047209011174013598698297445200417855360181046222782226575818313353328874282795188454289590325204577761539197177810816393476965011761830022473359709285923352423472327714918506915683856574474209512167453691135376301292753958330249624395442657138657613829881616587735177355097602918633948578343118690968221763249371142287730470898741869841295557441597118983388093285061520707835077393677536117233755651974081623586464896806455403873832840981063182817163636457728397188425349409355830646459766525857329089530700650721495238663287606791739746992106405850348513943743459585784243338314377685359566694967088509276542086053546529325733115964363053422093258018787073101160818468093312485079477586043535954120667108346626402327734803074838251078569149193200594814660467163863993261093966171460752219832939431574800062961548857244967994130787274278546385664790882625206097270727996527332756010026338091558414173451760371731187141705725523242706121902571639868656413023671763422027544371112024123416981004671741213862296533203093880371403959772075449866823893822800593631433332448210347606963660437103047393863894648769815429748297483354434281844730322334113581452994022420528185262251556791766032138601159168092358684388441055485131027577822341240818763324094722273816919329473829417677932506924776391947832996517683671815785344155557376647651237918288541940418878996536521285013930608075867348900830881111712316425904455339158710913305749734591050764036188615370194927603874088900906125192790424860744626243286665998565842176835161650483806543514268547266377235320643525718337140412206969126865348227775529176454083265732495669331255432802935077598131341244886414113376048984371464431343704020277132121213795652414388244517146775584506679717565978920781600471197362614401409121156982260837118482726052999934727709402010769841586398642813374523295690633962036554317915394877676749011811665292252189215604097041744140125051893185453549546918119837934131808258786263485600789757547267279446685978086211975972235546478140917364355532657836651915340768524879452771525871470670263971178742725216556216259400167520049179155725283413451849530105697564233233945642753924445199841760098087063756001335538452099362921165107024064138363350010845416247030627589799115544940305916314966665929320986644160650431274744683451684714424936718814736367846612217687232995669973809122615531320955630006943866084144958781547596313611716510765020732276932944589232686003511181289621572683593161892135069442662221667550452492237329620234812397031420508223279513129736263722469664058978295026097447416530853138224564583727830921683462790669534304458213068910240992458527617235379182214569044303307280240812323610179020278535112389062713002288524899373678985489037076232601581825786603737848981425262496115189561601441505805179097119795066516701187825313196150022917811691750397079641698945634533495074930454335512645006376099695579070305919157209722802998177649094194774343900462418240981836592219050081682155513143156522758059965078640110253185566572293874686103990028664660399616754290990871157871519328604595720255465760274031086153643407406221086096813614703196134670578768014819341856826041152609117362744650158043526171699816511241826640457823571279572545101065596518807225342712331936139136567573987312814986028841019370884550891619069003897760057423698310864488918861200452532464452496465607687005211704232903208645510474557335903898834570406440997744011211304643289170951864446228440534477210413346863323404991976314429414523532112805998906031252284422125659405326203806881108791401513150045558822775372031522352334858438908494902455703854698109377433199942181107635137505589136135677530657179862355020402527084411653535603301550026336204928459622789152548729777203410092203196003137915797351724606101272778795783869253508421586686816722358057985228997227993605587476940683864012436117795072569005777244274801758223184361111211608110607129881386302288248943488189546239737907809437930352817579554906401929066652745612491642786785486900347078601662754265646657221820356844541340347278563978556248775046109520834423651876100841721109586810605083445290289040468591607817112050260679763681314795851901937567564577072992958835224717286085923451880735706280230823492872884917318342139908153929764414935701054732164922434255891043579671793237716658168241966086456441072291474457851315791559613655063367794685847399858323685088674341157903310702898410422534909470460290371717318450136759133324357583731357594417843875939632858066872590436799731690278142711452558753267053716019261675098776137790370949314437707232165098438380530619520025138326549117837853087396087845542895574048982688939133434551275738958098106092820999944764647695303049794031658769419858445827423025086100346831664524650044311180459263920834383146663125838169682763804501001633557434768703919103694855210430551376801646056796074428684729382089749823171924356761834917932237834790635498923784780676292047041147714929368580211290234782789767966057604526742527955770842652611078732218667996995500469905112498953646162943277231562116714650562623848245397271829002735513808375420297150461150799727665676289507027446532038288861275140665624937055860917682846811186183290033440092229386227586930401951283876236265310785491969930495365862488065685640556721300242041349654842663657365197249588612338828664460480683082386795593860735668256195109421855429429179502696590724986197917965389722484839716696963196099591531172216258887133536900508215887533389415754256731222590092849286303579627851017752819686022318465441000181757156298251142451056747922606137283563613732212128657368711748247815360929624337473376778549262234054364978414271141677269465813545772350163913386375931654752388982227574301900799513763326231592636417350671725754761487257482746504226838384691282871920426200092727709563164817556663880704990473093256707722636555037577649821671489652771341736129243978197617979998954094378635437239069480555428567092436872584526087016712154434597659670541052123778368335169874973078352226139557925613489444833359817647750112455042878943993158041709140772588443554777562350441536308913227930032173938565301179624805033611516985548260604136740236522372369409777552875695743365251841214325992884717321257744114925929155044973888458803192589639945498877834414636327045987956279417260167443948872416289492659927574664423178559843848556319625045844150221828187739239767463663920687326373622443048984445149269642158877477355234233869553483168285234776162581729329156464788361724482124232578659692860342376908962209316440047408101285242801888468620778684174714618137233278051697889025310203568591709817810896253734833994689183316053040738702861907885241592429073132840271827370622544897736985758845292735568199223303038988494343797690927784808736805597463123833116181943200316557232568987343958468459192845394679315263216368849041692692441834658530651469426849661113171640568187780707211587739586740879081130409371218327378556917003508464754333184759445461803327889018350126993654985935732304226549690166724542087728453058973027534513346868592845858969589042848302642298438607111770159625134275313137962008142116331086971214837691623908292088649994786918626802752306179373879297767087236852263484252422957290568299508688408934049446584894658024286486729174720144036488469414845533862146399261163266783184608921749403366565847842204019337218138092109752639149613012371503448429933489050766624348205385670833877023605195921782952275331685061530083679498311069465961451529869499836169181607002141288773379648039978609177542494967965058310604029502299082112451548000028377590169715465184608505189971071974274789580343173997500816404892367955209221100212422358048316409861691878676892411590460112164647383340046469338745127732487976251551508609987915171865244154409984544811644425009171882849680995197844268123746925141757023914272707233385560717448860019756520181833450959538218510751219324610747456858665735021088977401771956205970054864304571640141874577420698532752353684864139866351930189250389937266932076331191865192930967433603030697183434401404747043014878228040863950958711999971188822816779113604308107568734690356866773670842619028237099553333102798999048607780088231074481385689207749082643993865577150614462597822740894748377052249323916775377560554756133884108342926198846366249680136115043320950215048403180144692796402349386101258416729331367768829303708327084640074659954403328566344085015946122185685176081777014380686029742971199396864021708024206894762036893756904510853025875260539077623999579072785751183134051749331920999928164658809219525475709237490172328779009603634629335570562164080009341305105484765874446967178911161905088117031510849362189437308688765997596624562838893221315223025279867909318050679631000121257697497272956228926596782309590380903720757387397177104097136942926225446794229577954870498916408618174578534782193793441669924275895761044523278963119209542847316440413483689270449948765846702907785056331291487448425764363021455445059221342316745929663144543364754520955072625440304766937919595763008669859317479081014987339379610933800192322635066866144746242699981568902753964807977300784551034520410315260337385353510142867294235899237856315481847831589794156089189269105121357083314853435904795567459504898003721262023923835178459275920837162806271823820355139463580462237132470126816260999577294719739919425735034669020273748017404335328814898987444537256800328575403281964397791028368258689066153760447460882064624510972936140390603254927303598811045457215858001445007307999730803459163572917848162866408228113680182099759632944892685475567162126021568466683154374279594987719834853628092579903780081473208552555472008393959211430418497906859192027146957586973100780173421229038318639386209587173309407118282645104077745308989568325917076826575735168907042044152964371234532313458920137495563574983095216159975885013356216436189623088920030438657505584094330845885541372921184469079596875349777489203729743498427157401473600721345348447435920044093181397474910529304811755891282624366547837792959990136910728194313877694412210620090864393275089715534864837054106296150941694456714742971355492503971249522711827166195283509579030983990298237145062939490440216085252267585022376177168701850284996716581209149663255152660315457866921464696860524170143366653551844653573632572055460968723229903550389615876272844547696878030237733198159408849928539274280877667801211551836646290788536057038839915236768126669177658517928299232560939555103323656836378774606139766251513146699989734705854283323857667475026000622888855028535077809726237297990681782354210709708044766155958286490950932331219421676507663951300830163693847109118388891004125007536098649525547183366465573450911859562450074065871265380333901563095163033780445331201247343174296369532097131498926353561933512687814707158031617725021549483651100042465347754866844429286885383952910714129713792466215464344749879390264279650999179283466521172457751118813745967424273179062760550395746400206506133242039687606527577962837791842423576476480279872448612636864194018984999419767427702165502468395187478936997676629140241911492803917700145342469115840206710693665491138518625806728568522850697407589750753621486594559015628862145353857652594646321966069755322411838018747590253915591895884853279920834131169221855498923890379228275890800115189313279003909228496696642382732336751977947319018189007708610843709163304029980793148318554132921458575108126960158475325525493222287393762733671617473661602706132589109216686371089676548394724318596129741076389033192303285254432826373603589717631481401397953241350814836838460708643563622737997213059540821597529373887804859731567152892786486483768877627486645219677447368848951205764723843825105867644565105865713967039129340804977860816216267362796024714360497909625797032692541211310938407911535621443384701629454574438017112075465760358947170179669216536726555578265806988715847014442013486980035550395639976422062775712479303957600702924868316896659828272931187008689983042828929204648014182321404271823736523076841746168669212429180446950622416557372188037431040428476493539121763969370331658691609977250693978180468900301781249336993853552838479847128034448865687949144491627355425042502860249131021710030957736373616752632047695775134392483539027003171613431504939266767691788480903645611979418438702609606874017836385958292949380384221300190932082072464653228316570152046297963678082904843529796931278629458272519603712116485202266918844547850217680737756669247061392304997740267952857252708860527445744143765154780172246412594153607817384909648664427135271232842962393312503143249161210961995099620647696361930615099271287073627569013783070615100757166476804258778221107302519164980078551762167883039266899439747449694866626560220167604726510904767691282200903040682072658237271817735727988991777288389101535169411210804044506556606524663994410758751014573283513203511670645567789478962553048667664368366918827169868252197188408271644721839218605343486307170295427925489937405527685470141906381501447648332388186380802811420502724555834798190183209993322330795037458108011158663827510148508283118831344554013052539543262758302092777961344195560005419610324688730314607952067284997335545618576955034362542317952772820766248328906691086684300662771241379349706248941171079754336968535731806727249171688886993782155520031394953374820658593221554774144655915323548847128367723360197688255551836246749983819698532618122507259515123533743079983783517375947914588638932663328492680210515725046480711872190292736623866002152687709404873239756278715055868720717996892457021370733261688160189972143452911206702323704657101354029912248881201436967481468735499399826651220193151144510115450413214871150915316642132744925523748070072038252858262295695234257403330929863429452854257359889098547710209132499346608710927812839253104909332190317950447603699911330824551090497284200291903558308498350967258472692224850450020087989548746741743837186560631224854373747435569209767015585049972825800912293882548630873963231573656564203653270918951342358411171375517726320907297449674906109335687233547933922737815147493696563999948243570229756030732211407381450164838676430397207702869100057476440283123464757657552884590069382825569164611137525640594372253500119751200427316024257332171737689905386578039306667198015378619581309042086634918830177925827563451890693778060043160291957360053012239689514729029059746587664002876592157133439146422960887390438433452806108308519422521452896979342338068486400342036885431133409111549532760279354145212441906565793766293314959194837298691911338967716469473649184122774718258116555049133447995516222893461116069436704393168738507108134280125358754387511460731600959019161192241177378401701943865496812581095157079479572404554572765136457477777304646302067671958916843041212919753581872003271943012275379761113294418601597986479207500894775621646951086247333770675310006230870703023313821902411883252182172920823675001128556077595621939713854879915598539805438309883891689910209495121531755190068589931601787693575318465051780582332873815407859419118710913610612123033955620887810709183795729986823877132007795889882832017893803393147391156673680981015170728445174498132409026185568099010772532247725763899763078268687713411387993671036722502197532072482940116661613435216501726070742319337693549610979535052457690056366688731490191026375671510067867862766548825501114803108053491202939132274436002972500670933519181448081153512357033045566584019800812050196685701038270765593213424548743767118046154959486684959877416025196194943857892830803275217807291209676901521814624880504646461112373887353335466447613247249772068274600812309423855524689269740269231907611204391964021589403125696007655651292306433240205297628285953669128081092200885466015069504459366913767365147969661426600388927634333584550515506375152227496143487541283428624081554226613864991644260201274655282405680403984830938491170879231450156376246182357242752901001632148320545046741174682878255321572448684565634442936423704320963526053537420380457695334057756657444897891489189910594675129943454913698598039095288364805010915330784205391289683789084711014596330475832257599043897613182313292657294182769021364838343372089126064993610513658539612245605922485761249964706068190351240668773265131508890540534882723861992745085605691686798247458222984604915366906085099009419258125771438345650991021100763701287282162376549556271228676465950889285672780351790826238473639238195011201508325066384333602802959028389455731723205967672198337094437445716612900533883150514560458399167148610836236265048595567857548859854474898362679171954350782314684317697444662797098448811882542728378104247922260741733980465344124002652979673468176575858953165756612604921124337970680586663964096605222249487666303713640574551498295499589211464872692777565474198169796982939117998292705383907855417641661535264747340546525659683821158924368200825079749960408721028027993026780922874779342222157894831028615428475157497374899302849715075256380470532349891689814640324783638258966008402159371251494628233151330416058391335764163902297784274992787603367001051937844275759399484276439785998383952217111104192172947026556221775561432735158826729224829254850513484648325580515351584817818258417191418562642329582477877344015904291423169036591934885600153871016522778746588541150319604668864876416678531718411593680525769467505218523898457961965060283141186713038043220371751332187418499083948763273499134267905441935978128945601304897087991589893915497558095579175936015435804486653428730830857157113215235999560861259221522080511939027492117781710385309550492200951360454524167612850970461640492654189112315507960521998754394808854868979024747724623049264942927976236379671566073171772928289296537039577383815594444576972596726732032636931818795472978167165859003669075426084208950308964806658770145764638827918304609692069196154943188368175960047691169665469666272267901131619514225938588015279049430574211635436362890185161315578952264512028401880749188704945062262816137356605523517736155449986731600489175951721982138294263771614403958215752735877948745067440329059456342247203594197737844583508162375038902538692476713714568178463042616863568286274592428001530093983636827600932307032762627544559229070215574946825259852090942079058761576115758423310535230506108656918853687855914657261482506793074943388525795422685764264482519228650180719057534225784168884669448420609870527718327292559425802784143531790310455124282761738620455946457421140042802117681326275273483579795773957663665346500920915322225533169584621339110166085626220363876926600209269751027383143853804723857321414349500088440637753891747769357718730343269236807351563937924835854200106676910004059695151266498029184828078535237532940814355422318615703800801451468149039844431005635196212125742705330298696746250876773554784612509889884182147249657711032803773446932859794309906577534754561025159964711567821925862787598351269287888431400412346901567270534599612448261791644699638083336456491423108054332686479234345325094812079256799415847729746817696580176224677320998736728797812267971996255776618233838742601662925280027102971454521249651319250090222504529194702462761145896981859703752596333132470621570682755422919812760515014045659780240371902087884264342565421800549273295312136349681633997042635109137155779223424254033665412726715860105812699885909369622410356823310331590750324330589059676871935679419333114889556971896100268862174303762159809036095876835538598972726737492587324321872109985477975149115193274435184554286766648520520911117019068233693211191736301140778742797120515372198547116807012815008801548680196637180612860527109971258664995166823127551764409946706097208130374638848392641741050464863079948959160071580513404118729747857449002393715240460733731348671555753846590437177940118067204940103107856788091237534126131818509270964614088331625723824499546818646807709344303536946132250463302933681368031056387606154174739131718376617823081123068052215376451981419799072772021460605334797474931469989094829912490281566714077394682244285202807524484431765867641282574759299747261885577538992311340010907880434912489763416588272764457044247954429022409576075576761864109711394472105998801537483294208046990422192890561066969614817332571825413606135029923210556821830962287818459709194004905077663204482541981704272852545094724305691950763306666857128164053862145709099615570341227212681575587608000538433226731612070307654126836912723629110276657358566076076764711320215903749260570689980702453269392776177729335928552955176080233363682807990718789126588110506943557391725105600225016945555592856486299166594363551508920124486388598524094475813822674821852967443888322763769870356754234073707244797552440672920282668178739014706661130386544882156518468265051830110378540112391810931233880375872286552669350001735000992988387508928527810421312149565973399233659346192997259729785238597836073407864217992309543335792720935363746570705426883301226580019877474665080334205719827517070375658963515729975358571196869236271182458122696519579329884260707628077284940092637712333190383112161821353289862109156959394454012789607475754738141345298830322788099804761359002598117652150029054314171681220724691478931437448060857890809263778392390621558977718046761239706732663407349570243518461923371990148216599362443519124435663973873544570908692730134768529685404885694596035874063250002057539926097436393957993028373573401172001166195216902276845140712674736488247707670231941020883887298106356967677239172711192026335469776958016651917012798769148223516086112508095292130890638504436194768572769877153582918563207222571564057876857978305554730305735239227319110330263949007049390282213128880137338841035263763671740823428983485758838523668339625091552944022930771251133647222985653116810765994909828175124485487242357508031989855826658875133985345083187929457667203410161346335847262974868411877036996819473371642838989610377236762973298706599465230044265879231119340376420640797531816812897286950227766094729477765595587043435407982854181111685589008415061248653499746210087104726668388719987623110749457609087472628288237297563267193005822235984555737788141622020110700227426656964203854933783200609888001754328727938937880621928886781014164327472302752905140928732203205348141710830515390462036482423176242813309903635913723966020160115688964823823416201905717493240248151403606113152560925804553158701432312700456751279169864561078557236215043235044695925380813546934947681619153555399980774705170599054340611014448183583454838306453330627984074226521560675593949481598802828711363171729689834188864897078509642565781964412514906041384018107084821512442461484329275953578896297141998232816278736115934845735031540964551926500984934969487842977835507867201972465212441805413729984979793396589613654400752589191514824432078276580491196891469175682874681994247170184227341515908814332175501418466910356540460538637356057184376492062829825918037902514655381258340771610457086638602223230198055486106822188113231776180483120653766805106155258012147576672186687990420161811165144178788524389604410425892747466020018031196924289237600624661981641733569899563365802181886110854746488937366121420182865213774797414929533330358970488532407467063475728738076628174455482310537876692404655018935450086504677611948028624113232781056769333415462768374646491300778964839599518924105982049732800173447524063825643212920150438079093392321799329878147092046543846674637253711804436354565366781611505338024360332640152763204008453858891545977471913105447544844600584237689127773738546455807204517754172793948452908897507552784990004616172946782474303578976065062576694676459171651370896987670963614793208461674489766328775569354338900004823284313608332430297157247261843031987593055714562183823056370837565002698422635071111125337016399988884538398902224553909735305476321727326404273610074925172129457514711930011970406292232744682508904322057222138828712604937930701108215841692031366342243648006412717347554345831336960981289297234026396788733317514163006374053185115934483308695771912921380255421866000427898909834001747664417200716521232712797096033484722365217075605169910044587256202910853187556038311716830153832784282067198946273697402013594568457267881286247647786833570497933691107221961278616593290318011096726149177779540795724471425279314281910877554097260242174359267552824125389069233139413358354615926833786123180607047811669513716205614372091380380356515893621062422764636567235017819257647781308397480241652123884958605775479014690906007150514743940614659684685447411898056751616550446717769876784159836659598967639121869206966949225400776536182792017733250810243639013858028626001537844831827882509636261011251529783842489565204209585316493565137855061366012314705813847939521309462244914904366292576921760655992339451021114438989223865864993379975177426461487220502019322985272707676972251884486539051119155335475599686197134615545738842056532063843858399687185521658705606453456975923003824686553935357159890477956478733964658591119819900653650805856787857371870068287979215015413572130140455634013558569595093891585545589311000143211691486530731471358632387586916522025614929498092196924633430888397976233264707064431276398703302060441075218521437828731603919638118164941237871112846029065493646370099245562602154691680817431221825074078475349755407529840147593060921443165326704605279530964188982177406844271282160542172153545174906439023295085962625296726527478985832680662758258009740584930316636547593514564585955461084921822947753069913969057884342470413112404325701806251293421890054163056892660783927554147760451617100935927680364630657980556026172676249391959140301915663567124723582267739820799222028392456339159702661783116615776517298161654306520668576764356149139541279856484308096060081502366165707555560598201483402238483073728123927061943613831874605449939796983421019574355170413956870430148833765495937145468411486543660203225955443271919252313660367727025704836238217816598061167820486146983114414672550782809861880340551201905755620524044624261480787899374731102898812778664793966617992563120629178501981275448689890977530849219756408937567059773169046939348528713283770992354168560943200188706514093965790067583898997656276842066357899185188349830906259689598282360401456141198101342958360875909812128110456050214118950189045792843872518809001951332687074836357750414161532355719261794448486442456982129613818100517577524521730419005328225997071628171164683672396092762115668985612890259951264503741111728753754343029281018610304013224247236471705910815419248169989047854090071821408224911917598996074790660402950228317712927933871466400629594807323164567269368716774106391791798222994641303972902565572660955387298289390812973464370595112506855342847266361959979285061229238127888232567631625070880974250334716848426562553176263581674139273486744012011612378275086258776436724203876403355294832527305079462657301610546918941846557389946751427515487280239414628801717370875069010355377682873333526542006859518285982068692513133818354825801884618543608688309532817732601175482574012981470218289707788961819159209629496719864732515475368087133715564673481711466554338651184066817587363227907981019885319812342865821093309004514925921712205164085349759441721191581574529967331082807991573660269715680804154479059225676442348344183092998469378628321239798652661019404530556568460808804088175595921899376544956732581745233415209982022138285780960914206526034054798015684504880899645016821772020208273371629208414020648876387560218910739214811690372025113016572154523417835726946710556477749151033370479195199878306440994871588269129810812124220197625518589282475728175503784349427560621792448812166594161056101080329510833383336417149721604076927720183413170121151630190548670589369349604586712958395076305420315754449563859294180306388927206747441927189678624116963228374675305601099232719909315958245253940808757136114174145683892348968059588216462943004443952186989159541936548792360793571606163711363219599423609998832261356468906294925344385505157491225239005772860787802834537398820612222467063478864976592845628261763310778818381767019131883985532677332618458430510904492475949616538692691784935556864554082458349318576012608539368647859168710090477055069303477493066318367582088789496517053457463142657734422763805806345816196471589706270173348232571298995397640432175969960041687534810759710281707191006030588596870053325713707977965187933071638633764168226384444860955354724387952039445093218364334926821348440112204833822425362092453514460961226511202827503315979147987086751138939490612714808306534784367688363178296815622271395844776268358658625226851530171137354676927238791562631789185368367148487902642571942225885011716812374810989390342594355034962958813719199534712640536522179349255291150242560339678153693324288387140389655100414500565272446954731031914157200367326142092422343388481371845170087280068008795955841059075857233283277458390207643564615864569642082595934817172350974938573869641725635297624685315884488922578257998605985795126426194454735658063223219993789378859923344131315491553596345727175405377852184695545045859707440295910955821161104259677832952405592364453215091292309387499354970817648080890953980881420925050987314121916650364882058180260644297816144225547190992038429518447716670622262336674928284249127800577186722313728900947769122746186545662570439344113710640029570675868856239981013480384853170703365910406122912694684443049913356110707846540408809765410841625707644139203296702119402713116225870655112687041145638110927994095335436308994253476382987420951623338234890350562802924911263589246926997461988418628286982788816824007972175946507083356947934288762963105182836704969665465035379331650802237069680203088227818894277036001272506343798549860151166190467252837436244040541070562329614709473938509516016133780931765719181040985036256392731965490270671833168866079791942988000401350999573272352761297449881810709621228696489499613598837236413693443040682134991066689735344209373278149173305850647398301940134459448456057667431458654319109771214695744209389234300087653964227689152157385646847121565189784567564168617259284552263132942102347260089950554496482347655809494121906412007098185656321630442166795203115725788844335906683145406037780440724939178211032815128588978863776267949579667304605470415356310540992188941672391109177831504636061361302854157173880947236377502486730672084943248696210613422442600301132240680553686648479142194840127078194092324160168359634934520565576841408165623215842427348150060481523596898645620078367659439773253564883662159642628784603137194053827934398504652569615726419197403768189859049368866120739224941522455599330329097086784387636653665794790601619128649233926267428494959993159861144802306111205601697512274308304827116571154712081734108613276113203656948939519554054815445358910110293774428625298041038627236818600801436260074076510839219330093835410098678416089563120878059066543622463225403674897872009456882129285523339954909642313039665610187755053213971097667674076996166258174123358304239214815317241021946570979924892644494395564995685560953690964017001483560363122994960632592830801937954360150968674463597335526320211759930335612853130246729803991182210967049500861882794268137452569718428717907108888624340258396631458762662435768325051500567892710170062326413823947361558192226806839694949760024804255154862789940680588043059618251153342555829657481750709147337369011087897816608808624000218293092074091207919309546489439934991266962337432190492656477140480021639493283971452697719400769015487423648364691353743558808251321401479083902712254042613506740645913356566007643556097654708429905135521301536619650697645133149078574669451183168669676515813308008817097967047927111177868504724639067851057121326438897921785351115700882638772633247072024866134196823963938503834767938659717673878309881653680775541647780518672486505212320438889106191419114584952952365289541486814368334326629220682220743564522501022427187628358795708786134337481658529254128671375883073057082920997010059765493716448827601670931984913345676447713963828356339586737456545792031055781192120366203515149879753279671647561605759461769880699746604901485633309349170489966050425843071270496396526169843469150912959113169430974353879191599867209325013043246417963867656920279776033383737901536969314636552753669411648695344500449105982916592393831785574582922965335758233783263899439432130317001474990354595010001670012014791417030854639182089938740175205467237391263255618084591835268709077744189957161504532700526897437838878669707593711695895725964268790092185614846686515528748543275691427879194063223657695390956627508529290195111409686961800148727725110503061330723231108673670073272785293266201197790288397675154692429054814916351842357886160004972837741158592858395380163086526008796149175163301329852397679682520837981782618176309850164332392308532726024839917637513712885161830213646042227338692186946942274405516033671462430581968326302773253940015480008913280880125974167854171679027013246768606925461347441389382174710243626299792473443212252848996863902463037863882210979023101308098113837231055932841844921457141642936776485921753349073096631658229833195504094321441008789440197443683224944419573007498025500155947596706628750151783845691803527692194283182790697089128100185825542081661962067322138693107709033758438603950695255567835864919644985019410116416263711852765324985560993418184478906053611476856983484816710381465047089339329310204574902670555546505792313250996235487298442934709805469841428737211802227655852045804581767443296294267806030024854842871332365539279998443389904229154558807007454521988943141957942955143380290881089661220664644061477474363519260213743385361856228341360930995579557451919729946571184333216323884343717949870086839067823386720472440399347976113009378817078902125497409670059072214744290747832220413747764823767301744168172686888723537436268047331541410943358487342384756215364885037110486988173088585466429429931137815998355874814224918610577842361509997045033055286598773281077240740294223615441253457190777697654202623829202504721591596305492978228299316203446118745887347400580233748760554708136768760070301846715653829776306917440183058749934257993960875021112038217379941293540313707969409693185103444055989257958488132740607100210578969070999032296409351537533051587863658076475952018557464267900734220801731549155686229714891087516455434370035529299414153151805282441191169984073742029038169627280029462306530895875545154987022620270769472398128823648927032452723457858328298530832015895319763585400803529439829347956014204244302373172927017500841959560086406335132686185632872139780545516842895692738297736059935134171858583060486369253108786043848056090362293067590764764856437900996009325533556102046861142813868448711718104742213999578158659304838328267639444285859515093821544977109600287488769834181738620797175934329491050375033812931148346053536730972225533719195349970395392918442155047259730018412118739036413964057256239026194945566813746480365607016872724897310920749030281284473924992452726683606585817401105161953780279550059207369310502891028505918014591383364661334028465378481878755150544661116322912692521526814505722363822815397714615775779048725112326128154039764696603441758570991511528866583268428342404962110253935791041861429135215875099602910342121062977912780718390306042588406113806902965039254298342390384602483604837450041535034068245206693460028202516082035005897891437147381544421160875080861248760396876259798123471662219908135455196433320842771475617315460733466561026939316543912297420588020451844015683113921113865256313939615341003551327736166364919943000489951580857829856450065589369480157255533795248183287286266773854867410558191251137021285100163790524749840350361080413766740196996279569026898318923589601572029628097674885817809826870224955878560073515071791185888141770484572975160668936212450371396891792696334847721887062782973264655085374589270773973322666962347930790326566595631793622980457806347425313506400163139092333655602845071637632218837716702951551866838088526720585104826483880776077410384552873093652149060157688633417667790569215294945059365343225358396081996082280146170903811236993615237741077879566975774013079812148223361892212888325311249181592350567294933230894298954060196348235619478140385521583437762138492620457899560103951171064568401224684367633468408690918723077399610048549210407268233741782265061213327061305978740277023248004303501424589685869937878013969709335163671134963041819242198123968476449252557599545698720593959340162763943331836180328615453069979461201653297019152721537401444879258829624152495611057994347777813514476021121047467175824165223537123790226482737851844029533658269314504078078138318133999654978456170404253929844673378368064647853224242785202144449795357092577039957184092505890140909540317818666071786153510894528234538924447170699943423072760204500760255591488161672793127723319710333658601786271088092806844482736180994027904128328981142782038260172326829267328520635637011331715922915492782986026137282319879451078317642231818823206956605967305306705050257498037991196078722444819151049200838671425611305060625209770736646947656598935340173002346132727317120550992756243692111048004188276049022730876400646738305385648530837756104276540124552196043565349935333556498081547278572993547132407074721377921026454395306072823427733893785239558111353641030086107560853806222853130691267063085633487435181949936315290768561566131600645394772082204245632900204202331542004520582697947688219051562753212403401259103134569585921393249383958917868512945139789937941578366120040704018435272991937127853016002296529429947066329685697089721626171244443751351511265080717349269080758613523268020620217319010254575584809300969507397682806089097222758175704744047926639713965053876888841336345413057118581290264523812257115408147409906956750053793104065087522063506484363851565903127443294393179726543260960181381024409826750262917737693122487591912309344746141095508592402989310685587326529096715271301704474987824421316513897530350304441869730753505328779971543742980627482678177394661012004222434055889393422817186202128028028343448751908874199384190936902264854614388091008515424613285508148417288585526737781514605634241091391797618002894675006838387438277064143929216458817032867620166192901284671509119163688565414170530551434286054444503217991468333600447329167567648259903747197174853164569702047754880306566201926053531118458567033287364628597998330944646041044594520060402674815523765723121642945079014381435577352867450563613975557574750529786348626845859900135112623343234681716139311954273769309728730785369799012271288562823789564638360226706383346636751901648413214893972957963364594615934410646908980258903256210343041600078536004022659580754892004060009480114120268525720660713812300226399663898622691419790574934057530665986978179438073162187525182974810131739962251860246024724541910519227389390474397565881819015595698227908324143331486372713641334778691626656074873406892740450241756228390503859151246398327589989376391172782121655382740513751980961484145339811120813461819144814464960316969742263009199879823156253045649623526412507952778670891236187922925206427721299596196857934383933678703312064578104815801228079902347107315837389443850981176816776981085556114657437370733423969575263389285079966595588290870223107928959364974824270181894796470614838334340484090453127708144782404805483777903595769466706107268509216889310181626721502342738311146985717310600875264184990580473275032271852626135195843396348590637305981323133896335230687756714480448602665404755075976800158615766566683432869508689542745908509618921544201535270102759536929775608545584262297826123172572976908005698661880424309523931359710350939787582090712651278501014583066589348664771817803834464642162660379962298480896569031194587733526964033395185483027459629675212710303462639573181418133533232105687399543197719940552369964200957663101793723883184274278733368225728412565440794821767685915835227606892903304320699403813906530554698131340657825673237618983969575374126685166859444957063103612996648249979673171101542925261594260604281625737501270727766351988000791068127217023829059088210744731010306609553121465421357760618201123849111168483248107613814239440263214940487106701459963219369328846703404913712449772159658448254179096773751074730704160256976113694056419502340107842125721048860918262509093839769440441669078303044072865977451505888868677373513091590826765571554011726127144238035290295409438438659446587383759713215677441587817250336041767905705343054878470666509757142481032257150697157732813808669750350379838595986792149368779712251103146052195472806207415857438209582261454875322906263130934746032910488686413570131793212663028428737927070502122294410189367135788097647748868931031632755506794479880564580812495772559111959843648939385706068418575478917811829546879636387580741433745325708471446845805277525418565440990798146140174492281457035024817239845173040104525432345137512474096408402895702831053061936197096509942590780800309350084318827639446296724032938361705258381935821667938951756054554035864271746088096906003868312189323628810024032367491569845455143707693726684515784551977457520180339062116121011430384027177531069281554800296181571836361141104722211718068167096820566820683572409789405014280375108106776962203655913193980252481960637161681124176383805241098376243448393695359631089692825204596320800681847220175612127517139027841256009215385685114894197389354426409042384539126862814148339282275834419090052022740049260917248195297747901047616964667317102035182182665727498139914062839027217947979922258156286687849212522656728400097336881537422408716151468325224126363678412602011029281143334406697861940576993427716387474330111854310368931770656392282945442707160707418269446481336185369810323421162587764509419926042353977999403207589433132734133680821186038806020480537823221289095307681611780038567672469660516936434747096418131268189444700005941376305098098353210271977989167679392839422585377452526231196005641998074823994800694533168060309335504956248776080155275951962837716264660326829061918382366420500864854966013939625007605042374357410529949979834598455706373869096201221981586664222081006779659005887761072783076718551356702544419184947071141101318739112666982653061001522569243657204714305575536110859234035032258938966239907298583298226567672098825611286024903012193979115521674898802224593376773297323866849620256175331190486757996855148019102903176288759291158165403197517637099711638194889318200274199531106174605303450294898908555929102345618350868444359113764059473003615155049144043547159438257194188036915442318755349165697735862383932475783326152358954854802477852309732492226589397642654611200378221262348791442236122893252533379594876472505816976464072792373648402761004374733161374667880445618953982405439848490327509540090373151713404347408769471622501949774160371530064209522378457093352848515175864231735139392200317654838881845617904111413590366790808622851625382343325526590282226977383564147764678567928595673818547881948826966647244638437970832621776188071526025932319201007916307292212231812189921007936969777539619469305378207794403367732898769482621819483052381292825338608479849467959766640221988844105853210390826777323461981561364854829578695802352851553766729021125732988003797003724807417945590866309084611738006779352820911221176923182865241711264794822708573130340848482015022879594490429028258559031966479160103219581473141192355008621296398352553624548108368925057270284101934079612538309738888024511916572946924476831984452430843777580731159239079205999202828074744898635094532701392421207895535043744145951613030319494808206545335972605542505283098771824745304087124692871224347958998472668412465633551051399051568993566694906051689728437804654929660292083390380202227034360029157667531524985660877719266939719543969550886572320508297468137828673867005917813769899209377442033872106197288416862301246174079403733733679349887915326779399684228663790085247071897695610965603693153448333298029764055632820822858556723646500509584819097681000979402747831908507725668481698131771742386998510753312749673688847321017410656540688283288150491644112817787997457492240309420944314821273176238672427084951072396601644778096096032895176795922300071695155954187958872365473508416157814095912713799678051550685046937223625973879578479759251185672729831051171472809653703031561361169150219608503862196546880640286857420370385121453209192933420840697782252628689747902468629282316255840628076456419555481214188602559634931069870395636301979927479914633708382199985538603134994187883046140334566948807100894814061321061706744775125449451927737846858794534991146788983540504720559986745846513129317954042841903864657189119220060860138901411580062785591442057290184720670224775697627308347470462250871840405963344894790071910897654279733344020715852854862806805460632084548462295151095629768932993144484304204934853661884541850507271513819644632960200168017609599225231194368544683076968317134272279918693754868891315983182626585509236142031767350554983948211708688703824486812351758792379195301825246042340254980994573448730732498120108368404268758907344977545480148321262892142246648064147722417142365796936054674238444686758793909697253360346441393807836056493324745324410619386907119268011065624823497224382214974356184806366502208926096576085050966036385654235229980030551495751889895473328805231881825507613438856692575737973176138311447590242223000296081742508358256736852449745732650194386204118463824621044774097818145707180767203759634304084473904264553604074002106657283228641044075364164856699724216401803576184148685215217322104832436704162951042759376451724856967762005569968135771418664623108138809584079989710310576277683626399367869755886518274758053382078903457693834445407427668951629332861190600160612839430049887412017685787155685489620315968710287470809385957606864875650167687869181990549589460435388483334926957297753885038934561379856219226074961384010647862642486913755970123351910056924588988549346864175618326817377260353627518959126625116770448553997071485692730583586053602059687236550916178053638519220185963724297986325982890667014461318509252498085868857615404291368510974473743698258516271650603933091968957150412366365551063609610642732159099292303927098366836951335997415463463362676872116891254463130489265219958803706217780528784031571390859292223985811686470867421456250325040113755365636492931879592899795238474010221646846052757572898461879201145470866526988427419371154055813289344039008720255186483350660356339383641100143131927314276486610099076364568163784848554053568666578182354529578767591762536720311679341501476882353423430795543284521154728345642851919206499252174057449724964747733038183334299997422204718925536083967130528663166079975014563511892382843281127222799001848782985418056924666839531750518714385953665422238544545390147619255121137556647943075125009756011868902069061479643091911672859198276376634847934557083419682813578133793526074228582742452066671952044411221608714746444025583851774713668131278211211532200756657720864817587679147512402378476093094243755204456705562060721852506777614072170152463439014887687236968487329191272859809135436123628733454923541084724652675566694492249793904780721595851057232538902103634229219160729134103927629328787837086192006889148073842410508528531287296996512653853936868699631750122087296248826930261192255169089692569184774583148838333886643516004715067920110491723234462466939223648300450880562533725965124622219459122187748828872016443916928785302310228127618739695740716277342716641233931578633473010106557275280533888401550729104038157217819505199774861351301401289033186778091121041325815978681236474813144656919784643213933288785928875661549727589668208440425397467650468520738422335612229874937595106462948350336240380906788742002099983415976249962236805924347998116548841975524350073147118434110165445184907569529324089100461449791752927914665082251269239660733282874746923951708486003143951351212580478537990173255345897068681194071207179624132973735103735213902417692316724346750520723231402747724465725029395712381357904735732477466245806204800402410250288318652802301206788462659315431177866377444540332229925835748131849004104945927738795315232410520986282323260327706134482671374511908354821800651005130495999375027287190252402802979358941967315072258788897420226446750515857495682372814792675139212366448868772051960079197851496642799500497239197307841666027408063450919764452101645501283697128969965232415126644747440767880877567462389574943167997402305052736542151487027602200436441465251749342152516878058141624603954402647099874478689526868901688378930677167315968558670808721205089047729139779270802044515816543652104836852222583347851135631207626255510480280979830400320980992524711104389388477640908287008045425684068849712792132301992120941368653258621418144299768932308845128547432503727634869150490227065180588118680968012272496846271653964135688764750513688190667799690518355308598094146279396232599668032497729730614807229900809585324168048255108764249737119229060801782904176117475747757501897819860260322915374703439779205707161683763925339541586342578885352163230251538362906558099398554765326562226693362295105534566145296309618065226238420055128288838150204072027484284615414032535526632112354704124436102933712938089775346957670298697046472323366438425037834129416731038957603489496100828434502294237480321003363428326055218286006329993839502097406201815253311465157841728585591275525037639444456541061674436367164748019203112359851651788908415414843341216710762597004178467658940828820144251801544158663426558961699858640758709943405164779755353561808108795789502496670940998834096362237709491865579908488570166963399359920922765051852243894663679727497520831284981358636390858008122133825930894296674687085545998510450172372241701425439812541944868752972471009635843130575893449529713102926903257315118922827081087722028694288981568009616263000834000905107113275917540064358821872862574061872168725002209443312467795590415273166946527110315835100398095565981516545999176154392714756761165249436441502618511486839960801302491768472032217028635596923923169930167028213943031840369013260143745658877155124167164288084532038736553166449907261801006793556920992176993872036694530703415981038608954037111465657962394508233559460161758019093503489342828478623861356657989551748939200193341198580557391947718337438378875610352638142537594505246017609719706626662544683418482739248957226753534001049013199350170199079969992600814671013154961732527350425004794731377947711533755896134195598584685033239000835535802991100258180589419470247702160130508113956879897239269639482323141282836202529066380728074214747945443862740892060944281727628516872360533059555995987611015324498069346803129984145525153857468425788863944631174925084158041218876966568112087916522217736496724647962249076038024425683267686566200232181077792815823602860668038627032979919352410406078712502330342451763411232767134213216326053127996738554507458107904888819457193861691494362185623452001496259013479437046577359116995537693154095013258001616378858360992963203278970341926037083085804533194075576771940486900584810101998463370618549431532838679668044296603955214481943854051949752692564026285271662494318514158958726137972623119520424929339666449781618861732798342328968171374872933831488233624964867219542231630615677650553341702025963191895887852634008805557027997244172958389172833519013168602858771718717182834466608103654816094379841971629966007574424880332318139919609406612064229323431671196718369751461920929580696379816900230964764482653102533071291138597233054692566797587094115024927928775206296234662588975353513024012155776235596488124986506374551806277923773504415304710187877237554118899140087917769309825617097817523501831585263729064349267823422650239803128755682175154430343906452585598558885182085181492663623995008899098220230890964525031721182006884080850723406222812799358597895267776293829730598538593372101315902084099565283839810845369385318891964282152384433454919609661882861441480984512760894921197973468606616321240930854245409269107014948415911133284115980322853307835703162637494558054299700800763097891855219468669561127746333430918005664503755293341785732350244923485902538094372981546581915139088271221517694562875031335838342459382894964700698444813113688717330436809536427029948338093293909347985014091932550890646659049638337141379217906430131001345754913289634182819684872607830721606887760314747380520673024458972443197948688066192716813958915555945653983686989843845301329490739835886380783718216444416478332743075709897767068307521332951208517459261320113939626456809311391957505620452714059839625436570135828707797695790155071915259765810553980531478776133076586122012097173828366245790882314042047372662275378684477873193399352457088280040809215748480251630459092404161339336514222702595626825111793899464232671413729834953373129843803756937370346575250562204690733441018364575176271531110588786073759217979956569148824350422229614712841997827216021177339490426581315329793585565914147851708808588569709480442718449523138843166771069637140000011101863402978564242986533697665536680623860424578951588016835728340585280233086788571911010571876209633473433886849300519860842585849661593671942144600476423373532702170593246288627465771458056951692095290472455968162638489824955490508545318865322077690575755672949583537525852781709120533619594144301837815139663687260034001202877787001647848769447193938043241184918264703337901228545172561863872982835418147559215822440077605136308000132384521511764590265561133059219712102410794178530177092035609764351717561875993687946423831588462406487913447672626489008209587005260943642411209827246738833927473730843996112954442176087940627975485996579124463205407607052864883699175309539362592039602986035647146005041028095006001836032131550156131517389674274163150554032668738128187321260271023000762071735166324058157196571287416074516898140324061713445959240509641772544890746042076689262041400518424774310860165420422582751090085833205440782531416854412722932975736423642802696336856708456816078964361654133223755239170085368670605181216711132094032364243446660576480288773517792697685819607240276535595319123094955037005213181681298084496510699967417958733240915785965609492482393076278527249957570418350011763864839127548111266679518496605018736585700374966150601869786424968810512223736329429742697293356647811253110070191132957294767627118552888877073810204049143786948630506784536817406335429156686005015392897423857518458267206668493785458870669174505046021925806993097881059887866917280488960690500319223169105172503072104345168148507096407159591950780550226621893254985685662176471198432830014114338215370826762826495829251870443478110040337659881335936288476035648669293732696040363908518741500761107773763420336280631566354474440911526958691265192513076301451140224821665122041731281891540943344558735277092506165702694901143774614060718344595058164648097730775312563328858618118499403948829802820123385892170788539181754079645846246870671077412002627628392974888398924213450248055555922828541811052567231717808967147305277576021865893373443711465519649984784412235642991870237852075339674495316993316735119393928075828363302339214673243652597339170232692564686635832704160593976529759435094044304548301104616312181447298473919974162958658821955424526198639500859760129019201796799606498660463333878774294096398475896284051851169673135668037934345399555704757842838238678121763712757763213849299527922030380065060268480704102441779562725912149881543943932628960031993967102014004842628330639360374451052498483296207135659883274957792745383301245183390078527076182924866968022003745797596173787719438014758172997464275555742727262037385599653372727847063031941989336652540205873695054288708927530292174760735505094686543426895192797684006013518841183892523042268837024768148801627696287083635843547607118464279602045187945993744785717661117603313542805438861224773355310622773590754585462776108154992898194851873427209486516044008904602423103824342696951479965857550204184716039286737811618759254004620709400834360922386000955049741306200249521704541227470277424760409548211845588858879670252226725532119299440577900262611399012142685220092958812048256025722993244326659753159086776749725424481838476184661332447965976386087574177621970182053442602020402990450148990689273065123142074830117867487610433304303166533947115888409205757107734271535200479742279254285679030882357367795766950852414467503330288055749541305492134774469585690605015085953763087044630425394041161260899482479123686903054143477484686926271197039882235290353033923811548856660857662559885011465078476069680861011164997726156871065172875745312949781028314804908691606291796580056684672587819705664421383081692684759951536240173132742547776746597678309870580801823271671997896599563055086977368734857017066641795898421329829947248278343329223153344368854847670412254983139043167683137618585935834751545667174692084943033888807219075832066388281217562619635187501903833110445311792928302599418849967977053136703415021801973267565962916211000756120305340318053905455842794092860103005314586070844739030819882466819005543308180579149028209219202090486098355743126307803153720979438676221917104413521486416221866194491930302119434125998603427744905301062218748718520321117862818855292175647267599928899272341618903588925355399501409695650781089140649750893000391185565174111898498935250408756529998713874437888076911624518417690976446166206252900989058659049010499699276099699873649768931190935728547330723527207234859621491935735394122018741941988051478709517984109590499837970558287107650343392142093319129700109807139488712029620722116130387410218621846281892499714464274970424177927127820268682835635646656074798141368196617547692893372767802008674631135603231194662899687281612628373522984905213790291077625324910659604614298676836174029619886088016221689897361648026906394465238064916424773726534252053297880623322219163405766670430888992856822950877316536126713762995581241496917685404830689615105785455920550424074026255693490014829822697085292739885546463625315392587236144283609691858047889011851605293348239785163945328544278761272196619524326759195929011103611546718467668868958147548574725894659040393277326783117104664628037176379293542272716029982783597193389948782650081503850564336922779657439063494921952524045673571775029608180132184847112937963523443370409610521114256197670921828159371706063298701816410062901578533037004499570845529780129953639882950290164810145178314444694256462640161357436717662841085181852382117953831069143769003226869577558694329892205973468498973248634937291238088100442368180861100605615486195350504266414843135877002493545089956045362567532731383895085451665483347791451108008511192949114302466861825291003275052585918475299056857967726024352834609638719226472653170651398677346979333288338011966438413892957998051595979625211224797737847445329558691528876192897990580022575466544155139722890920935848545747903853354528601382266206351873675067950636494126924759726644049145695807870808502407859727208377459958002873779397134586634804864236640206603222176131189466812911402911410238239412466771985232610734317595918270068525095632760817585018693950285533283389380988095916749030669880160041897121892069194224384779356970386986755872036845476465859156434811828668584584357593711147400086136649418505491424847548914486327696383068973556231428949044561891313411657139944333671065921928171664185293644026806488144571001640304620162737895018858922025640456578777203387601057153764325737752716018519106847286624114829813729194902942256198339639228863985019654171266351927673769027464592044768563351289854316836798424144807723487328322684262088963938023215907063361519438585042847164581284285785141712011351112092896112554764380380401570436148446406994308866018531886637868539101317695266665214848713114065425793645553854101111932869498539560021237582583878070863213827539908528618613660370335752131888630152734621455746512914247391910288217209535619729608024912434278723310435528118445934683685511299659323800528413246414943751376939307031926538398304996456843170708051832913133324940413351447491179444364545010160444934405934381252231369086996646280210258821830333828732970852173262448870549940158643628098792297657123437810902082447016852008304106106785519982614869153845125199891132121279358520102910397263002780393832044446529247136702827582610307462871684258475808673481890026803810032966984236053492581568619947005841325475549417817308604428523089306318907601544907188045177223683031743551750177779398780782224762439276044926147788239389252891132643685459894514346718832481953918424797438627258260735293419486400790781731181589091570942668951713069126580604855045428410789002522512322565665441367109009779173193951254653965686324545022559834577203145069197898014542473698982288320538019745152328584420285221396650267228132015415041788808886327192148907863257056384824675242447179165750374076059650167960068326537879765219020663709261525114343106040184447477125706492637229117767099416965581943517362044976817484728534382634368503381991153500679165423703404427964320032577740931863522545441156985372504337034986513616333357810657127347532311326908760023208395094020219660490650519957264224405217340421303276510450141209985411900054478684222378780389439477962579532478938364984669412506382231858412043681879244205574257949966855814937544608765660577011240883684344125093592901998045858977306706623456392225858442195412753684190278416549389500602803376646064935909545598540229171599981062032508030257839276299777021338425191461009621916333919876231110781811779605721897291593432968259464946974431510893364921172790379112240543543716255983619795708092118746730977170539940307133946773520667501437300414031031117929755543066233946565237698203390093652111139858199293486507472523762348290538897969086047307107498013538277904253891760408540525616186147507892190043819552894416689268429391872279599683133212011045843923956230701750119366278863543166638011544840120596301612675175999697857372850115019732983371477095771862237372525222348351880825352739986546796246190047819732330164638257263525032941297819870674249065666910962200282692175375292821939369970018096384225159928992843066891034748471275612084750880574645787201901246449552481474976586528900427848664958985826467689178142972877318555226005386623391574152424581379777662011250967553354519487300499713064484552648131113445437854642231457479233639058353345045713484163581414762280411579011869069968072129171623496298283792143354995130467875112711600245448699262692429029571700947201634397546729047226908677070474347268744505650273036980080126258838715594312804421688810202274232468284444760416869228407357920762567324763785007896551092598067701240330213032648460123349920493640334297183692949514849479853742736880894110590383962098832638309539374880417578657655376773572049044768504198961465439033888101806233245877358662892113068503853193123571162828725870916304811959715558814281700497352412053046932757416815824757188386086745484127112121137831782460281889800914906641199141149392430405045351122812238923742108627606916931020869633863120845997051771342847041738480959422070478220016208043985127528726370640519771470611877077234046142672236986201445408207176253684720415628865413226698842925572778053620221205190770468204913339959310080245999222858527270255830393913654580307412095537355360754251028177354157235377954263968007689179802933051825198500257428259263420936871250263968779344314464478663152576769510075088912727322007358145489139603040807804742481527800612995874332329767374304668857911003965856469106276242980231456374190064368094717225200804536192294499297700614767725722082023322661284511719343599717060733542283917651558499802164576578807376772615349742408001690075049477624571513703420167617429958869759324342219781070690219586323930344905320300350020273239459538779347901372205454665727451907682409142127753539553669653697215982263117886590337265687066472424730389892806851185490254064496710123869071380708768157732272904598094474958139736336411092242473567263345666033950820468651263557288093021175224160686447266073436026106135533712055405724318546563392186302946709949496815296148919719369777750205434097232373213673114886860480997783439955348611100424943849189542769400249183242278462954260899950754988277108899628426270854383569792486392113792430755580269135285838685917951286069014543505842655721382479566441267685130878105937311968319386181314412265535160946353663078700517480481576004516176276489471590396698055267321124734174437147271983589276883985487755254084537878695283488977118958050872169902301066763705803118719813770212807304870247745608527442279586586284112881762662039602802889642335942422915552018340984712811680945310342645096705556644435372616226402247859224610515642532822296669213399272095420069222594500159343477265174699099101652418061000038503291242381773860586068415234014598914886428367335186747040309181547009457618907464072861232969395761230008610387218784345264213454817819318378185992494121801544939423901254287608550875904117500333669844664781329620554215583392708779461334910932684685006622022767585868915274972800649139975312814227634779834971823923224887910623290972322014531485364199654905673093919734244858733913828313770174777868448014814981761966042647141267709324258335454567270985916982556752322636597552618699467648694606444353528316683790710573751438444868648468151590769502733054516411324684541636115416751705640035907688348478808245215420619134085195070606766937460020143514519036710384913957293575389862123194739763412526056806127964870149171134857870733876704701302337289620937511815658664230115272454501024894560418427623554975771789265964856101955865317919407433415473851697919574708895442796172600346545091854815411319773527056547093378088843025720257649183319851869674667343081772278130842037168202970387885170853438359677439823513034121848726392550306624654280581122146741111206539986803085508775862661486129901961907446585642631697465765679180098772292268354359879191581744641747195886279680349932392926211362326009740545752655061927429149540074835628048946933229350222642807508967729765429962865067245672017962038005286553927122965167765591547316586724990224408828992669178817451433500308359107715293469275950330709989409117535260286139614681161099406536304882997189183545609256619962559573272990415007302713194103712796848978740474625068764720925244632041928867182823461713015958031732843033239311922788582570307785817646608161751848735599469668236293994651989434465328663257011440966532707192525601884166278006538836494442168164178303783115368349016893450538721772328192934666497603735113806396502327141743225287391195693021476569666137830660864770510191571444629563349177246772198861838471851487624174281566307374582611908192900669673670946419683863537197557281947364200726826833212133572775687196381514408722821967494190733650599923715266527081979915762093952826233368580245504425660428008890865128994050184752421912826217278875581939785604201046136813359040706559336115681725556065908185391512855941879297944355923674901173179931734693253488566767853533406607272608190828839210824087538502828267756420827126792621233204468606935112243682331205781230880538363472811267566721769457442256278068356931477805536954697897834467332706310824640238926361760279980703555434993253218056254344388018486132373164768678218602500905855860670392297873463051315931364754183582487733915709662780996838285407531584160426838838752285320770504752528982192771934791121261495794262242540521655282356808172534140456335084200884035677342372171428279309368828355937828243060797090464826583206039123231272266592805379960919269775850437979729524950760623297759244076791739920754780437671718176859617976711470420901144604499446545386003309379059078160538269535385778797072799867268564772168875391344808160136330331032952488601673018900189550373489181834549638470478258637813266999863466095451268466955589397388642166543874493009740134534279801682438851966734118374486584064421370321981689484366169824005324995734976538914590060275300010403476055494588263426501322457596453189985294229837109288171167450255958875062440101134793518425834525780977824442851805553288273882344576091798305421623845596948638998741445977214995773350991682230818444560140525767497897513121665386290771614348483987441253100070670963578170829533803231574711246343837413349381187824305688595902136890970300997094044151845650942675758496958398500529997943655616644506119205261963683557339463861174421186277618380652558405156320641215655528268620801999765163344260251140891373038216939923706360653546517540434812707362541488937425290260178925788514462447462353600207947422684534331031442019314479471770268354435118795748354351393651789993694444629918160175278573056910830808489984591087653126638676011835826306904087724235800725868334506653377894448042851992019042903705438262022773858295444298405989354199414396741432833197415496670497259209202999095261266739087723719189449655189574023712868586936809238675548380177922121980257498481663302847697712074764013393530668865329393894675739009638928864359115350328136744113583167217593702784832841714343331742739894029607489969674583065168829898639212574446598554807870938346241390231857979012312952361590174127467694342148312245416786317883890101779284935728848987799241092004452713488694624911694959321694787293307180103078297076354753384776757033959403297063871177456787902730788978800975100183335220975815520335603736184314445717138570610390385494862913840462019501518815943232611704268203670030662298264357841365719867165059440947706503477313328202329812614280460006532619442145570111271976163566376317859109910498861422771400848132335794135275097708228464412977078096127157209492739026589422224958537002479558935490081678239436579343411006893479245832011398895616252549737047711602953750380076526223961012923865415612381909625604284102826058313604255735562234493376608714414434895508075806430696607790343076607649178261700101940477338165787016044795573449851573964342710276909394075494117462431450424187345580808506738216036882819671962023713800644039860945999282786531860129834063157729010249888332617943461103467449694416747930717341773051065095378169714131157471664923983096812622289645526725609790587116086332714785061712207123259109488716720075877694613061415043943416161699917827126539767480428576392081580126407037740536000215683278635289232354936385186914221712937723135524874347367241633946904089362320207896969254009382267400748026962776544089072121001043696659830840430980286459190558819889141683812949930225928029053713390955277825820342788759979935161186201305219582709717516303955379809676162143796453305440822101838341006365922444501557275020753546818497940417055896814909853116848419892591366756733341502745648290716954124088021789248523890603117455810128062705366695336785359023036058674689628007785111382627182819142086853769063532845688921992907828069791428286328086404392870798055560931278216201743750279120502487716190108153740523965627140107411119998046138159276064514275130515821009752355010334468959463069673152351890557930882737812934171508474212521543719424871307030615265347872883667976988935384467514556255424324999871822805374985505955588686492649954879179220870658147586125826359326454489108582258572141858327334636433724945188474969209796726458936509211176006298292683162004475232496497702607304804608436655513644023623658233923324417450294301514420315103595098616402088131486762154247511850908669303165048636683295595617712410919071271702673117274366197525355868545841022710423409928554508361862581384748928119307233039179075458190365365672072404049141553510063627538686593619074142425897632511348128469944021410927172971943694772555376863976883042858158373223185838805142653262293479680468119895072337611923565359875652154306493340137283053644493556128500156877841205963720283304161307272408880605652503796995910516070224023939793868722035470712237652557463878185491952762959056357627295494103497281919684258877024986600312826732058423186755572461964317251520311146440895995245133329194149351354304880823437428267708496473945947119848413926234586312411542699651474150887825060027558451550658117487673956232182058805076385322055823412770799147924383934607588514764395315119380745542902040517448888558841197949428538963201619154742789225464277606215414302758190854115142278450627253396242536888676123482172103791969029442520087266056556458583124076044000158478908275017570873697732168459971391095255583656089853245955778612624530465632164668679722926013751043540283814210633276793986176147868633775133938189442747346916119579155341565066837174154395280840055855552120153968227857484694407680980055721200257619867416025422331332945951348208482533288313116980031764704569186936488439329384428245390721094303156625779306324737744192413177435604549226964443262773592444858737880528102746452211764683072227481455006793360956448463147174332656922224973040774944508712242680002095980369791992401748768139694414428134937993429953270095510772597255267020298755347254542881897342909395193605909921243433204337202339320682016119402103667196417291585538118616902416350820743706422743813071462643417617359331587048446378775364311695724187055542523889046091362454102488603701032115854216014448334948218403929996675461215222846239027105833334228328479327465043094723412368761246758205011893582433657258815477010413746374528281293412201325558121506477265751342847356139378321884811860299610263484807660970539488086123993959330678158784687733383924832150323953572236750675796218484127210397904488308986116861733755138145934577795968021473036766499222000602096539241775374650867515415077430573252361201745376892512344235571031465999082213336110171047491926847348703910783859493871501324400117888132773810795229239581403213848849903191974375813825355838328605327205025984443024031881151694824198773294375983299692401784544772911622097110451075581684279052665722843849215560505710265254228644544015317953719880871552379055537447079035776861350567146335836540295243000839906794973247975783020577800475098886321415796303869485693060697250750517400678959478766552576810883216495926466935674579556466840610877524482755145592591831839995843423962174510340057217389588655635244206809070454043234925878635683294778044741448587388262241971842224489898087028063455490963860934289077077749997381283139826990338834233118595164568506757637814262622369840566681834125739656548119381094156378507743876124213500677159685513539461219633893435880318720987459878720528423912900884870315759469834192221196136034070753094761558050954821493536744184773531409050459812947238952398586071209678567508278659284112783319312416129017463796033843116075973561394779600044368496173804518981564207700570207468138374129813849306455699097463296399050971468959937701612612977671318929579291144713797806915167567840019748416323267206062608803919732715280539479810686238332215295937516148594788229547646841877603139134966635136842807411628551567509303209527466259302960525084319388502079546833834869786232168944617976805598480411938002166441505457358663791838677498297310325994935455698315961198373016058106798032159945689828484421477826277846481198212812987626234095952210688231529712059722929660534978654495381413384720199426416299124885927271991555070966776831875045600146051786140678669671580035649090974261816414095820031269396335140008019419203745014448911180794913032756974718156963070983981099984900575986157837494987031523073017106353362547447214006315483809111949331004008531051288423909972908329044617780416688602287649339595724448958392448305711349340988192836655444967395757227421450364631246805654052458647651934661013984020432304747784024968587066216942264986460949808363028639290649195082965239966604009549317925924304362868369132688772144797351444902770521451272103469278959107003554408556850493173481880882395563567510472666033518105447860637312686325038979842109790131096397177949627440808469201882997862939830241969448091198408612998784917298066112904150390035882424227118728601099018745615281653651722853576149780353125576224347385948155200194514770102094448766841985434491751985504166795499026701839707363133653939589871218305295028807268392791709070843568072842484076359220919070348228328214263671657034313473693566857470252009210735513036095260621093645589267567064086198080649219048601337193095966582289755064806485769548382438447717141990391544435031522324653161966538537327509221297331067274062256716114040952932572447175449665780076672706783139936965625940608571850108024587859656463047287788212184988147485239594060466515237679301017755907126353882110574163144053887652805658333548666785437205364141162287096368034096705632034090177871232537700105522330476703923387051149421480487054494643161367595104352193644078530032838792025494507961237423146460806796201492737736136612311591148931084136400398055396778818302001024104899112682308625248555145578635823971085366365523610781744097357377244999866298398149644254265091056256424825370736595570140205323097440144650809347834402962647193993741891303055135674957133895905050953024511998508757812172999830462048857825154808639668171488456746434411604297062715687285852056273765760167952271169890279090171044452391974914531914053684937379162920791764597078069916925430516408614397296323881835598413929117788089962038997261211599171272580484182725752853288461341390296567722842344896483898297096204419516856444357510742840436654232470845198264041465931510804412509658673473285364342557145798981252795539041234040276139241052993595258662464098226886836630443068528011265133757249166650329529720552967605318163001876940035303594929309191114904721305531311647175454321543471603640307976341799616129952871266599765427104487921878265838205522635124539187568473025348174502776951025924876703236031815919796671012361191198132055284469354600485443797008308453820576713103522017844475915825669202213710136103518942705942787162131740028975835399183079379894815124074794684398304561544812864363029272845024979687194051096353154636877749249930829938359690389355539775779068671336832988033869870019961055258157934368970065334942917018361941597692622907624907917092341572265969791693761252728003964748194670279401891884976849806018436373323597952630660325758784315452437388301351748428686818912094501732461778952826553413472183553686000762925267064876018750190401209727178779536321283029274020282369986736685468821105587214426607434706413222565398312033529507574970807188071909393223630142066420642569649865330864409818598945621313760788286628249236673926137726610041991761592316662913693643350341405919729128249387511402444927571322908683968902220011359507324603552070642890216011769171985870782716260442951376499570974260079444196347112809902017126907947999127708601950572861804031762838114311121156183740675296481345041009709073611183795530626265935351785450749081755543630780238567182571070813360759620964197139123564445063393579265616300435325723912907652184801933007794934307645524777744388034550876748986016921213229259352954885047036865930295745978032929080398812197442082673987153971081385350389865460800616940925418235430952023116420238797345238061056118757483660925143609126108523573663237437041818026553371676664697208491484993566272306301722588615139458550672423140575059517045422992788218444700745603225039555834210630197999543664450987411235253344397856028474926188427614420816234055563806912524524979700614758544058651805924116999233890535967281382889138734606410405990359096958733480617526756262199244187853374760426329372339306102299741230230106189684170790954645710713012122114709141666132477237340072622166595106577245119694246636123465515718265686431526253215423025296601071269174209586071979211459157137808782528475898806241384945312586086852189138942189932213973759751076623649099046352559312440690452386997836307104908560381584290102753134472152375394325171201226124836521445505461589164694717305291104310582656233802645273392690425817205457792277227555079724072065603610499895029759519674572114952892022685373122246281737406712780838816724413885317159625622757492910840524192515371349897351693541712053636216746562026258535137310529064576165354330201560289669598093963383258845940341557124173486411025529075017367042218687891140811209695558446226814634942886064256896455070134726445461038055140124711434169518218198507442535503588024103475000296049811144571178271170463519786010179888048582031108388177277550943344670332673823111707013943363895387750750209775665204447514513764481406349039091055832114663481806436871674948046507662783884027094173976778710243303382099396543977095397389339181085512038747069159808159297994428809686618015599385186299317208907687839899219363476316579323765819774278728944959196335022961416585185180105022475307875141448953067715795341859982859260616476173222311599402053776545459366728008382982727214405166427457770747388653099823570570254225657302340628277959057748052245427281890936271026470131370088544863027231312547588868006036065672611599786111187599493714028876918852858161536946955523133922682151594260644209673680775307196495711705302224259311520475157036042179830649540167818350433652176373092856540999779082626585107898298193060461559297581483262204612188793850141400085406464915457538875829142922345547371201483494026560985001331139259129062657507282419449195194717415268055217676930263199438993736948152877726930248742575469045209253163220240195413451792732346836582310874984606116935290654307002167318560878499217034280642478506302254007600862392597292677267354723528812003248202919011993670889429803379729284477359019328961505130629157358763778258277938268431775138612468056724155320345801742517962964004358647640523218821846076149080323714043995558192624266905993231677947723545500722280271139748687137533585000107306343112556304322389257999837492962319007440856190434155605449625610550292716722442166662131055066614776849213348040930318357600381681857452404356623135357087877702465789345258014944390989582038037399446319268823367967968668484772075031151536326664576049972228950507925850285949833640650380781619124980929653928248581762538988709080738736478735212326528994573296757206647851410387103013625782878780966315382766634541333173549796721903234931025749740034527274760257206594548796661954936802872918398334878263940032962159412813136727440698906994459509772429050648386730201059043038153772272248318915710018168552816691052679534068916447195374536876785019482580983035207118860053764591733097802020489432731860301078840683844077852119886158655686597085693069676487122688990498534738840748872332444838366727962609984471444927187252833740057275532363190548726154723055703906600847134062314555858638708122858762793802642744908527886687235739152038327183484550243554480080731021031773629321523923000868026774995292327544719603434257657222826179175497712670661191579776539772822803911740881526810608493820375429700678907987937290999489871079320181156156581928630079198233785781270635584510367006300100476133427717828940693241967934386763500343743194019570232525694339095739606439007295889957628863505944749795528731257442260072673089293315074129694143224805573977017244996251490067745818055574794790748572858508740065425302281894423507816614234704313957412295274138757108144378590383147788915764587534410657896628691443493789353508295848231053683406024099186077863884435195331645186736905067140917953922544259199967447823600340254716284751497993379059144988460988836754377975366037933352037494355416856715102476461189102150127168443753863061943460293187909033620762023782727106051374857848259759491215233608955448926751441200869961744707419288995492973197597994786191623224664759401584179126202480549208254146853771575386216841380523421310110714812064314879036336261611251616405975276486196025103543912333666651462288371262123410251547527210779227211204282680412176649825129703397406929543780462430612423138115904646976900036397115561639734532216174874878926584429148211061993576508239472909207833317666004538642646491967530973249662349697448940842908218959106934087591578026995461295143858248157790012241050326799231656996911924624500795745588755823753700739390184672614176614902655584922158662973042473590600331213200695127365616478597584343188832996552036205859822467119959120814672595444266727991902205039260906405252398711530786280856492604797915189835987179137182199523535783664059758013196825716808071829824274545544233619922876894436146527143256493485592146681249846993819192622019176844738651645235938814956046960778174736840209001781661074243510516417334174462026870072362778176619825481483951282210211109381276689323102055277094728196325349160303073095506682603790215306684949287315125595469302096496662193699811046036239676944408986096664847797096770171575904115324551084363059637707979344584662241534316066458036000400745492080877644826457943067525180408001634358119249834950577401432528573905698129625615994088543923185831507029512091057324181296058827381468674906152938780464893294283154179357085023174343988588732970804302698079000552443636136378137373421594605347204592415658550153142140660135272209444209518239633833584177188596465243605918075441793016715955928515129644056560144378694005303894493117986047776800654227186961312782957860609277914712924989077490939775258887944935097981401630159770164289367957258523003907409264579795798559082997357632621703939535911334030982433766662664295090708726388418773783846794118042564438486268715124394927630614778840240744191331921006090637895048323543263091517094351568495962515164740953968829177797311630782423077236203988604560883819113772009213630144536305028221136009316876988541195226118302112643088345958788618642805363249989428376608807641263208328010755783796721473587675023182061450157541886876233636456856518266751744595540095478663211885243818689369520487913778575849808708536731950926785678243387414398876626198881511496019715643172044656942488322080523629627159205571807543364218811224856603919990004804390937540420045452206331620666323828278527709098707600977529648392000187339699287928243751309217980039048981310644109465250926243230222289493814269462604065073459044625879118223732848022866953742145635316737302623930047083563851453202898834964627872836439572624051437873848777242678998236228466546646940269220857816629884595677037162038251852866828001631835010669288575317489799868724171572596182824323982483876605956144911985003295659353272800760361577160024553195037188354511403913194247986462395865331835933330798980321521271173350634539439907891858048628487965078924936662123127283743920207125849678186886389047724963884376610334345407669633763058198513380163387145677215068347088810885369402361095049283078785684209120181162272344216420497122676411709398943060073943232892657478072890586475470832756881590213373063892410962216648514639640771126770444109677445656833008181866713487149838528835425312384914404008580695045075587284142510201919838887615973336576980741387931224922671689354609224166237776202552668610528706943363696173755583721180336005905329981816843931868676143303067419830573795790051210315871665690130886541220466250810159636547749505458362294429509740060420109780227126285286115753467629887621962111698708477499004217766453222593947473907139282302702604618485142352236244743535411846858104301722840816292305057795364878406506784277296638011864410166736838824129053796536397478645761732796372265484518374001430185476577109520289037230779622568409925296635469543978339554738396919840751047990536817580427378811332423073642965002853595532925001005865626867524603364793157795393447882786246760158198729539881320039736843547139296705671924977810076325038363025881444234194064818314850218825118203115230556036420700075081480760846875455851782997671821909535817388697240224955351754765365992891246293759548267925023081550905695886409619591594999184317296731232708343711487968032519873049654116983827014550707973525448719984690432860344383259775523186980326752416539251477767949729829299372289261200328905132617395023577647740953932046275147515960223821279093711431467011152513405875618060405299959067141269944291008755906409546103839510229444657479715439394644243408875298345325893287791047867116118988721256509369879707289168581796291073609898315726371000657251226794560430240214040810235229487307021308333036670342701231415269647196493045630146385811227128519350667779430430646293978499737225372285372869025457727402534171843623258835000020299426637731474474809461965298545172294604128648917386871822441237487404003941358738320432855845553850135690747680666619561939227493736591663380205430086391288505974243011057490520449973540121151899974607210938079676283256229565975176862240199506474226709256059932413201549416986847546663186357274315284656327692889541040706315820897558222849051656574873764220968345991857458501253300489263837980884281790717981622780430869744359900024780454116526036677464429798892118419459239990560802551263240335146601182195685003031656138205032841659455879756338931846034112369421158654431816012939097667337499280817128831479411998267611468338465539977841920200634324031823921572412555412511562214105390515729329622121376175488255222354544408391695213196537244637979714747317094194484284967023018722642284994322528263919744169876194062533411258961463077287229536727233917835686421281281480087333925636742342910236315756961821915316465753272623785997698938541913367552994367385152006500479520372045141952826997958274202061873627291684160760017678635236291024754059362189286938820610782477038972749192700798331518901439737474646532005581961210298196750794565505568504310520022681910617309563946093462874301569029790004366053103302899773167462342254209291821701430707471689917898754092161994296003706016281381473543092400084086731914849199510081366548370567723826035714501942209158894428950703453975794371589074848693913425092939803509758180045443457470290920019944846112428726948449812983089674011863878066945721275869831226932091850966543812123691749247893919026439132629586800593970598483261229400588235005593106762024180918503187311284287888933875233782635848377923947005101045354055013274563524452409883750354948119434075927906721386154123595013911775790094206400376220297628606526672823852048517421539565599965440052292228327217977033810829864801076914057953306551448488302711574593782049856615075355860273634228984653804442410806269841234008534448309156412300861011720789296204491820237826181981923335892654982749034715487016066834204618847044539309970416657943136492541819676473641934725269048676199219535851065935464939976173107464384367129427650097318358745912564037360285282829697931120643364865359021093543870023961080691540467159699483899849341923054464626500666016199002036693792290318001266923637540700018707388304707267403118088658062518049978881649067273586635450648764739661002350658523357318647220426623144837375786146131313868029316968926702880880021509556746426639070125409874658982116508081058597830487068429030817888120268864065010231782442383978673511004976017568105565125217184853100937753558282433047302191577616888812612100831873452208847636747323030953194604625028207192243601688656397110883635433771360263906196878480514429265403161736400345082264855499811856633838114595550895439922643581539713551208648386118307034543756698533537888879113340241846556609001788731399292244326673758947389200561689916937503269593557762546914348640172095451347871219732090771172350854596074479985038589254109015305851397374124676044597091765690485579419792925712482670189398410642889097939666775678689814764989853695477119876484942765453742798723762494637192313325884054527839762990623208269299128533122850491554563865151043289470667216904419803448474471216059797697566402228591735005083751703743351963115227246200336527339278086549240237031945905209558217010138639133503615435184480924656814565594847844179047506457120642574501570276279137608263276542769995520894395956194328138308151185334110406678351693817626334495199200772336708188931923198400334577507073108646412087944516035833976374312798977619561364760870406452580177934161568892533117576832931639014783596952392038229031344330086510043301981010206606180107198421432437949312896576965542055005619924219749858346318551021467115163990274730250504341354876569665254585886602050426447841612807052231122888988185071533084609306502580987856627649253599223293027301562331764434196727777651111114185172029151587617517815513709775941821944337507750064651578273300029023958503531611309038564381271133946357544511047797171685130535540073935194746297667157563406661586164069775756127981861370168934708710550637367897679108894260339989908898225689778826117716197706836864081566177026377711873038777189322835314989425064296186296384282560597708745822500480582019234522023901504779548068741300867129280221982808659441885343200160143861566896007576744286483038753684497288960514094251552499123636135172023015416918055941249703468771481260521434010964396254488532953241623849847538193032302680142906444583570555828270247107131694814240682979354782727906695676743706958131077925624154143252185199495902886137591375477994061656323042762886750456344577656966256405395597252527243058761648705279302562693058303609606148984799301824942480492947950496936193861470377453859768272441118171787129179880133285983045846291948674689578431086490291455734448901284396323662640809735819638045084232502173996848672944270103137765310241359210630477610998105060060646869203127631387834221556671242068664239945185568970281410290240391424699815146780090274547450742323650130328982837485635477280604396549716814592627027631531792435203930331359937204677313673766121075933042167012322417425239198684330541426267155641601155611516590612990481012868389668653350080801901807411593486807647969766530476760876936941951729180819015094814800983721956772593488463575560370463729195901107736118140868307852542981215928593375577211399327648825319126652606130174839568787298449902725646170657616824120266298714721683462716399333432819707418232458875228011042210862607401034549012087790395824034378999143500732801957486315951103608561731248558473040876847372887730546879191234612074282331460029624788176692678081227487106161702274209160008545916391089967089129430482800685846976299832242983190057536524058219448865488448941657744053667412006518994008036485976042097290058672207059021154823018054524235878815354746611180921275387446133413796867004788794041780016734758088895572937296610480334195288472015188919589181427314517406338083667510791624701171682469828931245040649550650009633490581985372692936752724328845703945433234539595442613631636780680310189316400281679800995950218870042798200713042061808081649960781425896447395397472185639188606105562348401105390423467895943186865473478896289072730150811503524972698199597263222403759178870997585926239706352320057119062207162187025643209589454466148768915040330091812588837917421441723279353881686505367657575495985722600180438061148467705326877757046505559230072536400703539034923662362011217969891132531758271839856782712875517328081815506928301263121135494326106208698098521347983997561102839353104813691078064072600245699939223080589233157054285251936217504423104934796639708570840225766483034099211559936011308505844644786571783951448796181158429351225853868571644654296328161930167375736179506762573276254531318247858226243076164467588541717127692371302700262996858956147963037891730461048395081859334064644243274102933979739805613935772651318367468748969747749567726034620596398917891238113413141991687533478793652835831199618597968467199243613909729401553232931515317501581254853221426354185059281448423557438161838428690922330064083221160347976543732763882425510233302081665144325675603356269769640454568066628008491687724949732026244542345663732036395608346785076732183179004375300961262596649853376808372784173798698612047835078809611508614396051049595055655379731987723659341912633827528769837718599574310838597636808557418804635714861368776182546204282317886851260839786007243414594876031500094481309849002153886404915371936190251646486226331968846384985458706441810701934836911053133200657365367847077073744356546738371451637438711826977120378283562022607528170634685051774579441642264674324089712375887219408212421884007119758446053434919849490358096688211716457243886648507556727625482032837827797664486627360971381173349109542178557614549398518873185711644409563183989109919201855407732457089824794343412127790659374356323197614757400934503473798172296350730138407877875934451812429954784394583632208931115555732205120585724985459134178497736891905164470268290779624620061797517955044965127827503896365700214581886225351823000309666007846113099546936138044766213951506893333446105361881391091673733666181986274473919682775653785759999296973987076123796529301477303577249800088455755244249122419680797764887308471678525887313869671447544411475159329528815002293702551070605425794355749157222159038550411724760310418361714897717163178491968486248053523570704570834207763162471554154974113591983537432768181456765144587081161405882687229921589639417651864834899504040607094896899998532971757357842174432722270392420486412878462551659067460046561164566222737297363537283791964789025989373228266610109609291864039186514230233247429644759600126838887663736336974115477071095720329252317051647888655271574520887200953856035593899020327473548859005158665765287488712352610910932699369940284767750344979028284406139689979921037358695692171018764842366520888088152783422499544556025368532100320365640095684666003486944837816333676302167814067981417326602706912051030519463575348306451539394970135109760213137206638400909935120015215959270170834934363030598286106635386844207437456562901537479229169314616107979114131425474190921548422874707592728776233191933304799268050120825885569960034663793112714291806384373006614190939056153406337157482622233629733946732897207791249240001296310470500151290036766256767803186938997114580662206972424324042262483361283038711911723286506282101409304792648337615637903484613694983497666767766728653298318779087717977421024242068438055908771779664632090610468579990475502475289126664981081962803598361429666017426432403273986183816120547153080385882878685381584842172276680170077500735293261107764744008369149408699509572490030125918958943037099777491005447948586483690255685132309739570292467612835217403384028101908895584473149457259536352364567840829275513341790789382160040133130287785714210506295024696937942722169655735514236906682404879606870198675139683374956595917129943223841586126078363518649296515458300740205502252477238208441279443546818572359239898075028657333122183144579457928650664061048722807294745778418806478223556267665622604485809994782182328639133966397079094519709184378127710608763019117851569348601611303817139046038749923351621500154663979518203121682017598016825498560534389951937997398128396277564403042790776618083973637881117167638280699878420237461558182357590625641522184758629906988528217370021624157029799791187313279066216345232723697582036658957032987666118304183251285748145485335868264667458456568941916259504117761425837522783743101015996137309550671320426443564623656340444086641368920700554667728946024733391889878680742498163762360825484400119932168990085136002968338156006282495871351791295860606352581964294329548985605585330927167938591430084179792088962913732037437182047527943504640212273208946390238545419144987567078141722360852751522742150397988767003698724702867731834013379458900886573608518549542300123226000145838237183196734222878588941943351901661991057557455633348322518339660929166111515329810977233113276782341646095517473067078780713450486538747370034824128152846337198814104684139631917147215729149235792011489960814856628482957954930234342749275781637886875285097520910551211300357323751240798742488761471282882446739312049572372096979368643131653641844904341719345792532977440623292598126704416149185853610766721565338945847055378388668554291091593634881869048965172826123108874643783386155423697928824257952599870496616231851177630561410703550060951355483941543312816863196554113733506332736184516170496601315735312034697706141964201460435863293435752371421259165984581551680238211018838857412008552074662653807304606039837524533150622389504771133933539932463338650292026974182472934615427432222006904653489308598041684438379846316330777486911835538207586885372904696755279503194476150449921677019046682329255711537431230955006569036312923166495964224970838361250966757786357560088764848893709249465016090920406476930851605358306729885708231903833699413607466503407521176647267483488579365084151550370436492578426285658011761430510254523375402555083447390748520205482397438075611213679640194460132806214288269745971145864284757761511561453329380999426770521794137818221634862309766143924042705302584190259192447062698199747744268828822200138244241925614225395352958597852674668017157320142409152811942182242979286022291535682475933654388297493590449153062811978335651895094544657057688753301435257518111925370268505140721809336740809554409373890563223758941426794944731503311946144112102663815896186716456267776453207231821169513801696428138288121425048334857726871075511692421743460876248492365430251953252249538674815002297329445903704830839652548835101270820051987349621885464297648363206372029228320668865165795311299103612340852016715065077454131299147578072167136827011343464920412700929906307369731416016777142547805187453562933908378184706650431528743109379594365024073015417462720653871811191203686319043459805264105281451798039715198827716068546460265812015117475149678922772666453027735541929224453408160797559469726354497347903552806740248699354383107693626429687438961364158878537879483717751104458722213672955457978755629259354101332291875251717268341989419401460728408908091828320469530054403052962105519725283701020976533409466283794282846537946962587376194117832302566359297698326306769597226782057725326576979001007676711497041348469485849455915569032500469987787519455022746243006490305245981952654549580109351493682090081826943771702862023543625146659063910987733696955999660066171662485949082176889189223933994774442302116096258847049493053808061327293212013556464097217507709523543574969112368382402211549617390856637302953329519067062175637872100948980560360917361551177802480007079765301762594715294528759833531693037876431316031612146093984396699043032711386328456446389183932594560048281078216840142115110999139910333876100170153043355512416231236482616616885551617276448232605505995720940572721995795777329628997151270082850859794005937872400217161401548430561077648190366746611893470295837689997360067392828014305538661429643353990639097741734992081850513753440363720342375112600911880952609846706888151587455886323558039465557240743822569634761352159600407146176918674746744721769554598394069238110665674840224056051037855005994926956795652936412594400797985996805443740993076541378324381241956264639242264596966496194050241121217861108382740723556557927317352737611036421296495161358712159082806298966042531019618480740830377968673118100175119497548462434003510061937100143409672977383225113451615965983272756225614962131313063976954169773741993468740239904958919373012111921218832142269002205338613871990462971094485019256770358588541209946851418483934349559649507657671911584214972288199230622778674156725646195670231275164937612105988332457925740101661643894432414655414293638619463435795304917686498292741369775857195121018232042890199422911593881922276496388115895039117086175716101055409858227380685288276535249866827014443316714369405816937010402371383730771963283595231617462117953017324215824888582213285273573735114658678470544979959747799508198800671970356088413205834400139444301506271106329805380005822761590022101195079757874630206008300600876596097348879716896414674935980254986146626067456515534405925135782525294854826874307077745680138512843341447153271213750516977251439883782672516097380102816954333727821355599457684887170343101114221737348823728921477791681251109411330411584251731691242719099028076921628158333997800875933919912580834281925841229013124882820610220775726850527808402034236917946648130704228097779273112188694460269663336288931524591306422562040433967137353126256899863952352573322897679891069909102376382444467464885799547634126993557894683153343029807046511429996133416565167432712937567893455048888879631201984181274551330691557658873703585001494271350877678619939000237855629377902215807119941095017737598178804725241386907754587983045838194981319641196428069456691797855634672920258394021185608175529995248632930965022522585051519558541918594891051533159407146563118752674897654820381993167034687821888420286792805628088271862632207022602005621454133026693709599630669674799143520494132648339050491170768848663877415118801012159438896452099173732921027011946812124376182444566131916137265412130570328503646712226665374040328919219573479945257849547735781804952757997701536918781305603128377169147932110324901772115276279460852449237103895731571678125199289287093748920229412760179168787005562129908233760032020415799611026906414671369207503049256900337972894232583792051636511901435801398679407594617132147879259635921121390392375222736577682476433728487186645663424648146691888535021775445324959162800294525878463774371943791143009708817289515632123840515870257753636351896386357987087199151074245826022722404005349308881609473482075445515761707230170290901788442868005549384227252468897604645901537469639091881035711626565755928325193620673033669748961831205444134150185624238865908515225809134228792823871825564972229227247227563093782825310569995063943498901899129830556214297657632739153157975603860796187732869820604225342637865031088411889434594039078055620749267439293930373263398701147950734986678641100232633679394468802230063727150893663483779445419000016571641359733064529641641177220318585648471139056557258070523805246734480064929179090462722871149588914865921791076902362699080666091671399981191250875884577376986974673276007022076204760827248390120957547227726727282056203451385958110606279900673975304447061597855635030647512444591843672827007814264979339270984655797171749344389184672738695160514967913019260972545616346435878850438880596350532982152413833975226937440626841960480017559357052797154182853187957210123137273998428339986120250601429389634576676254357294188005678404207633846334472688686718283908359678084670147410817185051893021654625144441512960616321339841102263818139152981416938280965917043204495558015560883104030106429911358205074758058472020831165148345540638348260877829178782184201390342799678030193531736067307911437031608080318025246895148542697649315557588451526469239869708411667407597336625829185666938503815790602038615110514438118636910268802527754614323922858282974577512946626682734851983728556102383731825310160815771020742678967136097078612380617073551442456477693410765875657493178221648462139796871385951836931383735817840500811956921301039346606517545788930995563984204260446373456485964512238200523244031161199568708812939839690023491753969184967681883008717678910447582359782175621835241390132836715324216453967922683256664731701159831852570119223120034456438847102808315869907045709503231278054819456350094066576245245460658850934738769164937849802913482138558895253866763876691848766242627183931173167994857558839358630141330238174257422778936493417895054555209128002873689137078686448405234175770504553872131889058150565013093330892385836743727031694326647319347866403859042903042968299679109665907179946838961272011128268438583112782138930793246191910267427649811221054799489320317365966737696196587299682451099034681637331911922132220728746845311057706773530345976479272121904361630621157800390589188255947759752180226370690350925030584507084192079783456470887125156874168482007103446438580805226151460915172895384464066748819656748333766700919409494368451535457715885797012688486881303291361548546454130824352304147258566177554089995294908460774338652428570987019075626678049325609180480555059394701323424035990017626663917652112338566992956215665557541501176268637844840458353184355184539114686087158101077293497825525943756099752513713611226163631979654676808584896019129615663563716689180223532980013718797577435488697776041130518656406508152426901091144622186182770842529949359802890299423214542343017331581119685314680890993847210185384950198188243450224022663770494511342577868618515334206786286781260567640091429664589373211628474499690939805764672419102659552094451014985720725933237828644336897741791353389706530308906399172226934374786488994083564874050335450901028481272224484028681561807558392529178040680449692328925747954434168700200844099058218777224485903680498732494101114983374754335384091322276406668610821607721563054726894488738236887160895728379519765474284958435619958678775502213733724402625931692161072764758374653954458925876807809750854995427816582279601899255137020561786939273731693346049786621184061748066108370946443723615869885013083285192704701470870192213978555354239815003229938523790197661539554797987516628318685273896842323024788005302756073735801055028260148849742354321095135109734835950229388834096531547303045322694552194015021437616768555561071597133883449945733695530657401915494908839309617410215200830147016963799337732271358660562697592126722517500901585806605095372497802713522542361209205588992711773747166029613623518821777314805998511200356582161252356370014493783917079932043072282291634608689977146914791095669591658967712610921488066284368649150455283777184678515801864245018829381964564519616091712643644216930394383070132254846378954413758731854061755893745428349213381329933735993082838289303764293768649168973188279125896480029389843428166713171051160721137396078465905220470640074760706959114594439823441860299516450381334248386411842013973766249903710357293178537035584805377580015918241952814453724711428497868586445973032194507073504070401209950499385992848615250493300043496658942811346139669214443221264267135257802411005474050195784790743601275776294271073623815853010740214044465143611653521669901281383048967065113947144431888051677386613213493116525649511946308737848144918231303685398622111579963321390996374559074473396392603756161844884120436877875653518442958322681437236941954781669000046319159291484435500955285312789531272778428626732424999719638632457515287224117170662066508096383212538335209480723522473266016463663280173212077771637676879926757743091069607888493581907781631698085243333132402733817482342120042453382706236065524598086960979650033913374711560592696097337963837998306736035602403368712180772377928226204852617276698042158336595733273528863385918064223793830040335662668628201955692334817654487163891282482418385101631257394994888838984327279199504490597742008930414050919398282346314885795441780406922047540844530222484973742779442841840490719995556710000131222973219150040686893113395397497241599922685187615283879057717512350408674909424307394836165612148927058429358754274465750882653961900902694869322702829237012082577362454627371833398636439487829578022982412862452363126036513400663472120359803219519724627956779552620136473322688524928007129969539037286733272687735496466434597257128652446858088425292310002578580666116246163606852837684105580075263539246942050144162245444847281901854902088307423040819848794046599474035485024128069363715113450587306031963983472087014725830076353119870485804495210219217018724146876429597146372144242494593056722686888852097417560372359714436371577310117736475239478808717149783537344796927796682548186370730965286125271322018008335003881200811718038776208091543089201628399218126570982716081179331953559779344544006088046299269119677680055838982390532860701454822702623950701243372884411926506310650031814980125964158323904254390993520770973912927005066214042537301646823923669262799399587829337815931663159780872775845614906221188413440049496716315434272314627945278667732770132675036642542769105664098197803326731675465661455656179007894552636131549476663377505537959261520904412906466360149700398797395420642793930458926210647909337610506543057835333064265970808444081510484101319063579537703088962237278022186398701622667026848583020205877510690230156356003274416434084707769383126952179445333654873955613011478838603861848782043458820129540104525827735217628933461192817837863709403629904328101527083036532288656828525343970879363325567368002713612577664481211994594242412846757192327152153585174501594159888633692273372872496372412591475027731141686239347127441206758256172967937819147444678428681419177536225253566916823850287556545371097215293849553984719318112752855714299868994927131287321511693672454151018804153322601369426594461197978741107218837435921096928759230418213872980930979695606498661118531075878513104670160651897686902391746623268962805043121105229594076532375043597938924088034178207470562184912959631534120131574304137906717370900684071682151759773335199404523435811887501645777861397876736536044802953872090325219586228732153300957029495382547553091248137444449887036651052202636608090342137694956604415637976423925938389382248173900603030485421364811640261275086642088323800122455801511336682115184298091205829333728368604546908549398939536527938672005913157264216629465122053638282891067197736393761093286898236238057766400993485372460690847555331298688451831091176768298956378681766442601965310741242688026883206565248055801105799241378626234817007548111425331159288435436343067480047925384161395504430877663202581168626110322815145862121439702648109199312917678158920939814859017008149768971568138693065782796985056595860618298038203574488900621814102624019153389643068989802475514660460492288671621394623451530918947590835270149355778249478706088937898223456856298273325622526970772499490878304319105724531891008247247780175538581027351168613413170147455515810344773217381696242884419383122737681169798213672940984233879848547244461931042911930151589759685055300423924603164650960388271604602677550074730728736754901872113502349186547162248292956039707599033803654590190914206408089514673623499284675086764002018509392439826729959893271256867827057465610074041068439497617344190457958515770936657169839975445191861176844906387361049313413030283095143521601415777660292786623282984718095929365658051993937377770022240308712910054027201502353796648182741294390540701440993204942813114875157225605693520732442025536283265539663387648728243205429002088558115194356218053360305263997748567265922475087768528917906736455091033685180262403711902106180577442204655407819412046842808937321472207326208059379943702098729420210860804747136643188845294483349447228276532768903830370009759721839359561197609246587875036377921773361611988820186384805436404527883900580102538863591860566354405043749293090292449345655596661451580860006201351960250648893141583438933837037271747029532174556555625000752620664999392245614010829511859179050385029709003518544980070161411632018490345253505758648840679044189331704584343415098298759961026420378636553474182462584305330897222373643607572836204338240313845497686251299428119610505048715580798030654579873160407326272122418090337933250896535984039618137830328617533565127587575522832739786897509510497049676568946100613534222654443450241296924762292899272429028587726522069040796834126141079995993540467254023079828952537449759916701284400820988930730177000618702583847614713691736997963250820136586921838595220219403123653931238475457295005632472313775848287081053072121165897022678670321730577965151770074881021776682771351732169007489922359260571747944542525743307598199681891814026022421748804073375987492873867153649323566483427277936765521855791330120954880149116093309468395366247792849920631643571298494278601257646561529742924169419080781014520243444119131847460410834251489778032697793897764149536963496095090415074018242805409877182192819625136175875159494084752223825406786537647570945790249738748835004415858330713642124489408889215687055798479111551656084473929579665739407880340465650888430501853466731394638840299339205084485917976150141807595522379002698400436638360633093684599024296968337962595653783780642274363576711937995898440514275683837110741819069712016527908472492156263056323115522905167151098562976445547066517432518904781136705423505128360903559801715265690068004943247169602500372698747015220992750707151650348898848743074043891453562103643205989619428243096127930609739138045133183824102341730941895235936148511189396713463705273079834217100366911832182982129574109995554663477395902208261876983995421627980559824775573557474344159748796624611731160162624258684171671888166668201838203387163935025526369091811178127235448906617403074561747625637561056592182564148170441808633706763731440266939203420830614951570585167331591979936245831176840752134388958716674810086791301640544381800350553564084170774646485098274120953570998598063997535280420435492866808903404723467421549534157626993741276474628488300018259356792307278120434963481356077315465197877407268574863156758644074115571150722564936133588509973168760316878759305130274778968271803091579820937109919233496566935005808343165420012540059687914740569569604516029899958193149866937200722345683601937967807508897674542851002993633432352122719605518289793445738795098160207213408111204876707441815416276009887047883896870290360145004855480253244789720934377445931831158082389070469111922873683974566195505230478413486739036273211716733122430224396511884242022471235706015445360071963122191102614485408808651985314616121348725171094096276690154547932765738473366861343242678855754379783635352064784699693123674488043523217966814901250798521507237058909687172846313390452687302953719309967222567362107077157533670534488440909519932185375647237142617933666197275720658270473647940099320333544650025274888065212430069090213117676761098079768347564776832539256237024474110959125779944051342996581854325158321135947687918183480626796845543008969404789144885385897883621740814208257842273574928798059919432858460824208739988127620165110273522735655772383525690679123907695717173100505310554518040482802264836817199442054821304146470667703924337672621942770240463148886507435159795484961835415463257532734052728608190865353610206473956651784048279022703192491777569213670628444413214029405479621344864580162676387691610935442371648426417772571610902694218593269417140093067325114541068423980315142210927918673019272606154295729634297498412197245377666495928745965154632451418096126738128450539128247759729644404865361976913251788668651552402037217831864333711287339803043532386585851717480645317702713842940170141075515636547761681607916690421906125445768651576500313416347007439688214152746427135053913097770292201543093472765035655794087124004210439872648371877072864861797786771370371930143703781851469168967142551194124046038916696957708011786758771570064379304840649710918962933317604514676568479494041075678417151561462288299439465429954260619146395323967275808812689450066773820551787768998563164819889054846195076365731834898764922697999947379440497369515450349077295445800866409152564167335018839006948415585009537250753668233041864104270041520147573461022756567939355007500448159913825451150796455076623985464309214590649893265457309442494574841113143912855339107620751296995524568593578428423665683826668741015778920391904800829725261836561889063094735042792690800464362468143382748341956777182943758899472576789335335120341988572794190643549844615597037570434927814748454975687183563709600561273861405977203146450421667898531850278982180945823416435215796465877889165071329621311393562707779487069126508904828713719303921452278443174196114542713450312938836879925288141132525980308031961154657813406063193815563515916509264804034316516638291674155219486734670288261016937488326124474473096997984538037391993110487022334546541546283511735176000098205186134232566734275935617306357103467029610096678643051589681679234543792898003128841660620686328449247100677534696139601510671788145679825972617439579702287342448923749950373343492547438879741469001614872598139496457436981101583240570174030272499618514504379270556214625836989549242023816002717603190416241658440603487272956109053608752295780829310191248296513031098252914928203918122371054545651444950684888466811691891528926361400996338404839851892388581517866969756018784138854813419516291486994224418602220990386312454551301383179694767350193192486077143948759281936224611531627961283496496010573356976134315733454462068626185073420524863204517555516771646054493948764539394926444119878439690198493935905813516983551484694985587626029916528403790322872285798298210558270185385826250344668109200535377105497271223138884737610466825077836174534188999407533920274894179638615245767633229813294995026923690217253279617370900048420849194241674842697733841496903075662531323512979649133270762528850194591264231643261655760739450159353071966451387522651635183351644861452463611850400816826875729146661295981227726442561658117520728251699448628120978198007218267795406446426806588598748723090177035895400674961641544073971068579026330640517405160414802080563861295726185746122476492880446980675647045534177988748841662681470958484727832636974713374514408699854127358675796074239522750067583769829387862117434049731626494451238683021743364382166735664716632685749076554432939315279743997230135702453248869004334037725774600695387478002678291181978148582690338400727168547910317370943067049527121924064063255193199466966054879597874029487216117243782684296315446320084681036378701479876474067057494185806864623530596696277802320192070592881232115277072660487920964254937659770432875640690881845556284042653133917810659302638034249510159637069789956252333410609977216427220251921209951891777115104526050239213031961371267369397784405731332233562352437943212115631904983806675178330985789632423195099827889653706061751572594543852150935613609422969511186582313712635749323635450195125213132394542161786965066569183625883701997530231103128897800246314556966872853987977830952555960386813263942861211520991955140950367670937231891166834139730337621403114692643509129566210433677409013974440086296320705965108347445379442887760247156921121767774472618379001242022666431805425583745429651570875243789465087410967070146196085876929430226593079128660840874064556605883946118986358978709499846735833153953848088761044177400295481830650677494620779563133833735719924567458765762948860541801690675859474548035081278397862071968054054328282528845335963062943541217993410210415183387416629589755150480704207088676949866559550737792423576681511182932603205152179848377201571787352510876332837373450045291653742099073466017906970945377589189147594316613057858472080960448710577179086730769106520572864215080323453380474418359108604386905874610847349359129431855699931705029267505854188059178810741178662821771878362083198858759298001672575973005591194015577539076372146643235788995294166100174859982845480577514268678983600051821451075184737860421336703012241567794856045376269178521288246858835634885770422291873350101630734664527475175185647119836906399936241705272064239776392908357147412414351670512080392395593703479355071122868683897739622689635083004502603856976005774396394601432190189840708293675516411252103489904048713535184884768899060385590727222716651334371723824158825861130633655659630512419446141769350504156593438358669222484667051281079833325086248504521455447697417749277866655483985892000714396260728366608039095042598099516897076003010967160517585097290770282003029376706907795719313211401349201661385168951213954932538394158936144196807511827228953005098404747183742178707364019396595157683791211344890738983340807744741286332664799997195588767359349788852945328073757201748055620809648072941720895113307895236236309754281552762444345761601862832626634856737149653154096223605890258425222954776995754184297796326307071762224267420914917361716231558458857681913228456714992660368816861309605489013799128798798171736279679124015667443070542085201172343594981506057680303684641070737650452702252454471546436427269858268553991265835046540768015570713690595765011771628063671907707355000859393284893466529015353059602200799600466389602265349754248666560430570718818553241355713388674358492880293950437828885487378661774434505409358928667198284538234096594645907509543056188447397641678985718236728683100964785700267910568635529251618733641531016442869866899835286994443211247737196123697447383879302957230252731158723397382687472150270715754084764675677376585847519556407556343388507477120201225212977265573461183682179071772676277798553797970285249172428305272673965241081241359801038689000329751670774477330786219001220755238823534940037021484887320796765518242187068245343344822412867815645199297967573836286191272951592833395319768299666072835599286310532244967910118226774780479235662871147293594079929069688689623924188484239350021535127879924450276553977845704169740329410678260741127027467527380771994720526397981344789675235449154970046223679070869403551544466063964793990233550273226689782478204503904529103301277106683164062363857093662758696688361747039338405887855097739746244199451535613621652802971972589959963988049587445559374129710569642864122006986842392019577656019690885247450558476590578197193685731045683312943551973558073261596857899525475733859530355786772988658790483309864578839326618600387484460128817587944061576694825326612389396075134099634137244045666668715975190736577584933146676977930634404805918459848500261122408306684907238043066729708314803826744392879309388741488009807871593749875190246357135623057723091386194859345601598626222399584626563889596928991348593438575568883667824419388802090439182454787241490827785318478873602145504705463450180566122370541900663208717439365234427349917968282292026858290880965629215462821599363645939217651765775773191520408563825708528106691208489960181791769416770052230929114741645196118043375206191909076561102103055479251991755054647616258756020797246470393516797586771289421117811422887769421819038181201386268060358670224871005075321026202340480557078575728278056600286950688413706180430415509591578259929272527067032380988355037694121979455954375925697397612990730424790504171614785300108130790119934998633282285179527017239006535691387562655914337254898066777426869334367192968242573417825870731054769162522051047848023440214060416947369824192495685941143060089530357754657310856536031347974587179718623471443264619663537003552682732986623858892892298694603799686071229504556217267244124918354187497924678241147888202173796433373097241732033346218521081391215019197718806060517385487079546910609209441739730201366081004042823718463826310327843718625042802251640709786786913961798948437734558615393805668332769447436042440681046668408135713135638541926527984338833017402353339384465231655814595157155849705691781562350757800859840809663868650745008989268579773611906415031704282579192684718864067892926623528657288620274011105960616680397283674511773543474295725205376478091206325313027673336936641188504119702026941396698776353774682436016611470012210101518047439367889101100310533385113375993027106179969092138479159633051168343891535661332609549250171249620597719925582772225714541960305875887705716371419203784810064769508078961448917950570091649833244980712347025593175764761253496923989826618795537045009105526541170029972588287118825652591462818618185650120016082423891582481349294386577238798601087322743071550113722849541755522801568367694979713081114444192919494030346329237780025042480219685801103233921049911625855518213639336971341346200948301418080207535139588225585477963043827792578504153397773436885603716862563004805873454260456087770434268608567568701466599214436032296340159451404350931348010380229222395148068337213092591206606240425550733642640420834622095950902971246592463261819758130613639523738421033609010508779894084239065495212239286167432899798958927686046727439108379774781084680880996333047977140701187200527399730282161508095442235544694630730466167831657171370218249280825132501863791319386574511567886248451411814265958338335353456729333533979669856563956457715208592003528231218005937655517457462845922669540991832847656148253432005585031408880285706043809635668588505766542811547396508773846467384715174250053350409943829062692395540288762316539291841120074614499644511708290033385239417246716218536888441407409074456950167656643036217927524321798629421088163216675176247283611976410048645708278804227202369779345720609807895338791278409973985863483015607015492275697929795940910877521948362698499389328076946978582893863443278017040896019651621267382268012522795127316082592589737608265521281230223348563778880605014620560697814691561629088536671077719190950239687635664135658841229743535418249276136655448634613470729259280101457821107456713169440417356124757714923518122903765548341376183649393624987182036128758727231271292597659338378825926381595949329496680779897172592933937660343033792880083943163512272935331447983216142010253088035573651559042162136369988465007810075197075118810316414808277276494378596732394912547021306296420885300239995611021315274090211122879079754679603713435829909375465187790983835482295779232035012786080278162472031747259502547725368914485761137192830439562514531707495382802929214372397405822589038224701706154447319753107940017428895436278541191381631831588850073228808407029165555110845984184847969660077718305578826582190062195271975075658066475739019745024040347910514407306347214585026341761969633531562427338229739455219064045807629932239922031977738025329480772328627183758630430260631608762756083705466869987004176030578505487937780823588180892192070613115528314554233851555216858805509179041728538466673540588439413402531268354707675014390192295725817199596447354763301177381607025008742173396575098081145338160251427480557905283713679250583584391765361322810037962376580405348702243718230922121135087170363085176263503467110447908331781906063252550133986186789258943227792151197490565029209049250295249407671505003090704698816400747910851234034630077455435280308538493798322862956837853471151952679448034062147976296138212077529816279858261690432469198358822915294555177528967048793845784320521466217912770187701999263654724695076338115020963117719179749254146325103368215830896606185376587272935654973279446145602443269011892655046697411859987302246565892466123349420177904593449624788607290075247390429041381794409743146556745947200603029824023703684724668080669604236158687004633562203646438733192364756220157077200128058481196243048733885389978419378715537174123452676217817474494838879219182711562795061847108599187401487530755715176682697326172097934223299758301220745155705144776277708586844711512432535853996238550536742867710259512114321156852853483210921987903179377472811400574016086741121848136115516434724091805841709680081912045426157687324664860967952252378865238508883524351857276994740312104163641194643026685715928740711155193470729866842802693875193199318455611376060079950742312627201980481974716480166850016268069605597114327264847178796365395631089741809923059597997359193827948924246367675104012498920266738647398239698443439389148338435679369281787902347329233470271628269937582074191091217042934163698470550072128591309024110479479780745669000587602161845631592585586132142823785272769545281400537285794269899513324658559690372722698930024783270359142617232932445413881409061982390500505005300184598679511667904846212086012313307278214079593451514462676728152563512880749602867046744785470071768575868137505768537521751771797179987017168328387871860554588879418974886245058587220851084314390599216033510879382800837180284197612908560375946640733395098532717653092021513009202857649734633080858168915348782390747456353016322905607080925939556395110271408972732803757267627019777483839689310357524090505923509092522511879679798325512661026044791478700930897821291163046584302701753201466004086023687699405677325801441552417886373157929897402974483412451711329512818578444871986191958213696399187627853979117305281418242362714098079042439806996835769668862162936661508487389647613964061568013654651324387503629243250361666568160377954816105724620375615152389205029194557107808293541004555803204619558172038631506228173345536225303466106098248824816748574906832160709417797965364964216327913630631527648423371892058652787722911206849341354166712275105500106486905728641079587725371065714223719507989524081773345413237202460555931933935275509262353472673161280473600341946663428207757613352777570545522026370479566685383555745826937352898352852910864102965713574298146905109825352321594553414174708544816487226533890262679495775878635829455625447438529605000512026033807303508703878846796164936262323469251092572758716958801847180450760507541809184851470151151313864391572790598461703394693922430282195660026927175284105758256665089308050740507214645624899348237081784616837878857109681617621627519748282863577746988965337836549990634360427967146403324356714813336468986889826341773004493068293715879202314986745794452762513436909945301206946574870020384083952702941840622144559149642088229945290187645944222359824583918637944211367044016326595340220420704477010631414256495217121431357567459321937131469552238809528983356597316843345371234973443362745058061367189684909665469167274274124216167697905639080087780532067151274259097064003513707857805032446153505136151868729871649388717801372449358241873389672139968056266985283412273804495062060300130387052905918750896700455933976918424556049124242524642816232168474922053940600823519191241676580324052126708835717368306602640422302944183074091464584840005570853687106467242821423580806143496687245255196413665230678686158745726702796927868198537299400528572789745547708569486966886904406344563610044741766661944717579645751853760830767209423458915015903998420128393808836818642637782939181094761755061044307274698740676238026679238622081084097801079329821362591809184294424161905411576662845628188446049905194344617614662970433183596465719010495941525203180514158600677116280915913608940314041419542306835285475944661400224250624336556066498549229306416140418518756901208906107126575227559351868051239674541751859981807212562928290781486085604801677966766671352225328855290884767529022066656963006126917133637262798283978488936540434394958384309446286638956726448441320823884991361546302602199075077074842685625505818358678082636814677451208267685886072766519436237180561678373055729102702254063678280150591643608309069620475314121613717259854927029003802820875533287919538948839322244450254379450900897388204751555125037989841478953570961434043761706843102137941717691529980173623339859346318030849065357653734359013994743289502609038766225477127346019862638209630811454833473326018242403727183889782930316154406377904930362346998860241313206892125850092513329161279550471518291236517613219425450085705494635891393220245492448484748667930333517615154173265238971059480455241352939416623986325609160707697174616491986148233500002648636574371989688569250544675716822100799166751501837231181340073635273122104285278258104660232002320614680122491363187232076492507037779885808066625322401686451499683623852401383764553249305980388777152550532396539479580992287407430533550799948149820166139170938522425538908246266439487079582858900239888082341033092950811448804879434859069824978518458976636001831887417090273721426738013529204424088610728119108146201408616217834753802684082247920517172359211150788351092305240292581327528271513694336161671976107959996337049367145261744622174319413206231527710755096775648601634721431814612095896264687165742082310526069998261796205396892981672786349149818347304393479403223296793274771165901277638957534557489344311596276198568128913778550320981924453973772767750869183146815946378533949961406126434776125433349402865765013261652481046055479783649569617336698569787946865479008001466888101034155050130112899385087790535792205582686264387072217364828662857541147899385659684011879149817917293861842429429111375275308420831471744373267855680411198060752788717591561574571375051872608793310935388136244750147898601325097322598856998325449866408993834887673007621190421132597978580428134699240294669477714401894279625419106948398876264600853320843446536372917662478951426542401776910277870837953652497525796570449162416877109163125302150934219716750232492896590951725633491710021284957458012383703291263189607372877019322861037934402777625675659916041650464505527108819115850514299011971399331432561694566117315892073215182571104571789475038700378592842550908384358653822237741610015185898366931135742913700350718096136814717023521221675857928302709771277101689503310774081204073273082031374892218742448323733766366329166171764457726939262230905750123978615670149244281849307847006609465135699563104490849535735992926756719273995683870169949727756027615599884358925495054919447974180388004360480288801625419266246663415896650366870231840273845346453221498141148213062972343812091044088737097744687673339464113966786000317110447062781554007175461832719405487690539104621841734658290967627522712234001493443148472017543905758844937138289379686889525903422478038170677631971899633886305962149420681090712460657613924312567267184995082838618468303447578274057044444569842711240977638297126366385370548266119527763820727199117047041370134607719824201029324625200631805158932747418907942256004793514785777042942737866977298530102667789951264428236721523959896043798601880250210565243694924803731821957915677343429516425614697196657282368702283766950322502299333985375759333527247542925322677841660957452498028728546597787240061741477911902488853131995121995336558694020835964750412994165654647949837349563027241967926326754063107226621695241297166184461376673835823696436736348699682216950762295997690529292407344138715117111686238113274291605258496511657126085874748426391826150968270203557639085242133573975905860590514759992038025040366875675521280375777444884205291240433863126227426702943269491043094148926087309147954344405379474428588115140021562183607843007398980592096877902190526711488987416812105586027176420038715226928605952487591799002582141582038127528447652567293656100126618645643957914001822829469444633020632008293474951775418372243070473697277806116338905135590261946905568992511901913577575872033838558064915271696774199399910452380709284689315177542694326606473558125384305139885931960440156841242050647228102913722907906919981730805580362350079115099256661992846577187169209918787435116245896574559261888691226311309197480971842298987596773801629988651125551436891461135717918147664004666687281554303371604971733765835986989804076413675421971624420684304627259569615353133939732478982696274535335843986040607052422648607245719585193124421553161265586961176898131263442901834170999484682525283174805341987530835997924179783811805238030053352697411669326312326833871588700128357949350776471855514342881284696319116267472260348060097733423608772899115199572458326369202946376953426160829612652793389203286023950598770673090613812377171695457440650168598776987024119204174048688704491255567415655368567799295718152247541293929469365078500845813875171842254556601227439921987865894225726418191121654022948516670844725837400155559548879961801846325157814440514000110213456267986411008264286868096710340995128117571872640372171064435589988149465289350393897532553886382642186741011112491880220144645361438933394336349633154799151387518364465406019821087647388611321154757194872171674052532729046546106032513296814696471029305992413359774989215419220779146383422175453403623030359429892583657527609128554564818369215497647251534686789677937178068286868934739204996325316743173094266489280472552725565906581401354068635728449428359129964110363677028629148889674244108276321307915516324142977334072079514380155764989503497712523474635469201488506438325256013836405400325247926656762037598641244941794824980387291794509970138273974183558603215249825510920543081852265575461051179052132978299727528679916663855833399312053118021836140482397503645021007372776538850452141486429824185277860332020817658432659393469730343498131254363462430203761359369255644540564372954644195362116796865001463086966452181792104434407985679882888707724737805963711379178892927297231842597413022998652636053784689864907832364341859227685371771069651239753068867698635577055186686890337861177041054898035954083946465118376761791577802442910854147335254398315257030810261812353013659797278270058892245990785562338177871534033837744252683516241622389167071775894956447005752870547893340193000233849966602334224979392265502818586641269028660770047274625712961455303770558366862585924748027022602535214195928549101389998151251085714599343496943873185275146779750314472882219264680211993492594462275624761893216894391988738217399841988547941207851705966891117086265375778871430402838261419201882088789734799595306723817702196490472460409518939816827145118945322010699841457395449143674569761973195473510164303265269130009885978661308726156572374743423758715244182400477887365878928931951557490712112520048836335665565504956335171898362778787312999650626222344135884996489757733254910895273246372769160675380216968821245539027204814307459629116727794277872779454414503835491685132694803082555536303470657943839781537210233761346991154538661932684262660680248817679454790908407511223770434755289331725971411502793930961990141808691640374738644644430319329935013619289241325697927604654914624929327149997611304204460721960101193718262563264519814474294363344404956868035757900551604822869797595189377269843960983821553038435982237101820704383568565368735998573042705460532133330224021420136021343383234406588944162967845147929372824016488009499725011840917444595277744956783582793300321785632551891148027975874247872998533408440359933836427770056143625633253602122915632608497846484270638690421021757175645555224685566334472774392683342519438187852891316033828967233736098399644691833658983429164260847437292233077714236056657549294178574793788163690244593121203660522784374710443037061371259331011186053824304215717932606764162793817352068484397764347015562318571577077625347328766615563187683801042265811371571161347308991081630140229933111852824920502773852457367175438708404809366981682223277116311616823909960525006672617781800861403574316528585358037898551511465791283598987162933447295870635468423832690324041108345631978007204801976890609295437836836287466863796437662807960679804603235828082076571849562025119847681645931995993635798061948549062015349306814127902926528764833779537035317553796160602510554933954214238260936103668410288740301673582103040802231063653126079988819830792844040120515778416883615111557500816707871623692658748420761319178590071142045858988027747854036492080517945492107292545715173458042271862416433721941108747063789281786320888763707348211376724354719214704519027916965834074229595816013346579753908639319987483399327239524575911033823217358181032575591387347873289798989569831712167917720159906341619684143521787389022525926150975791549040916226926265259244262755317617141494448346554660199726265220144478740307218698016808530793708779511810774463117302711450665143780792818683542758317081559533398122155776080968943289307117080077683867041359547876794726947070761033664081928130074730240092796707309707431607723120234348568590077600819534292002292236769622263559566856095864324669376772519082568068660200230714386953245534720067656562844852333732449625832543019070174460376131848612358637253974429031361786251479232523845816442696168765893969236402407187242935137248783697114437472605813630186187458550908717422889264731550186865823264693273785327150222622571088912422920074045797546032729828339865467059304095516492363593043080363478543572344994096209232040137492716259046050108527147163081700549774290688900155545710848750903064644047549010360368286256820941886151414985651930853081138289552139540557286105984659524509517367080019485773051873034316358619109171046228193742241343257575929308777626008781888895415378046195592401228232832498470882173915616342519263968105144316511708390865311231511890219426827412896436725837057302331222969776436093076300703354588279700431886795518063371399446646922348067866044683110429847723388556033917781238103663510287378575158629496885466776926512602008746286851489938064058246250435762382440740052676521784850461216650278722482032621889171185677913038038088170206375789993849301291851308920304521648757459052852819639534647549563119877197221349977949126960927960046450777733320159389494558976085015951578610205908456798679135715752717232692932104161247239637840352088624823393650124637371611509651508909001477836349562355926598853355615879171825515290801554430949354867000229904451252494689570229167595724488693552953623916828739132795305770391206992151627000565623824794365538905972729091992363310041592650286110442750415105355538970620772248737884324388464187099881629388697650479945114235597131421198972808503933334930092180835421455189179215924247791627210108475308793424556097881792732463865689853243374044812366239926158392400119786714090510526521822335085274579667346448725685781130310007103719725456361009659507109609034837863876379351920485120120927567825163431602954327620945187366993179513915225688802369248109196382355552167517752203482533993055015209388314442343076979193952502658362435697969772661947129600902726402459431835377806714117503216934741248670392332588514191511957695188807595399064590985400069136972445990759537401508379210808887727459228238443534300023694801974912312431178401187846845418785141384421646746624974138461978542314829736264099802319916942967430806936394750953520526493318959894028100864622370937347242882712784313484427804228817081311899857071833247816230327278436422495295394539139075767001409153317988894927470966725676636319004391396794844730483865209964883423709204383826691408038352127037655630951569726062059798361713128957733773972232939004877485364727540674438703275825062271507180263505020138297208034709185811190804624699433043742608475033252454515407317677523951348625627157435462356341133578360631258445265433183288577212270573735343711019869190541403838797017867266616898896942780866803272639843996320908165335260814397075212769632136234748282837236970086327223819634445072229755176271182769271150049884133456260744501903488809923666870333086805411385509149828996129853029166279010222467821898630610236754889690012076913792019140028373886351165028837676379361117317426673497188699318660633315774689537039297159488690412229471877934178176282708499189786464594097755602270300524616757257993764874211587995115807159636692160348688258020046968522890832362596043491436233610819584358822426401822203674444545316215165901367751589852278369074073308511493386246306982833448806517064439026149626239976460420233579204614746756375203512537259176038530431542139661704129737936858146250862857108393591417488744843159016675358346183602204271505605663707909825792378907147021363787407056834848920826571352087911388850983739868485691798562403239046557987408335931182833457314557885654098903947965965794195041658524221946301949969451919288174161545611799797799527581166562655017419247581312299839025103255977322893174695892565387822663971916646489204708707552799960200493929653582695703304426997807447633600302539366554677557846211232055091241131222410490545578531368790425307419030903254566022209613635916681206553138531573170882069207523219376551377976372508392652956790287091261002001575556551228683031528348338653386532454199956468845483059117131609946670952053809098800589484824034778392815519705585548199953026276136077574396902938003538333264071917055615762936232043181434030102317434249433489981277581773123019320451912201423225007711469384897123658838576980661320978175807959566947018286432765455170206797462834041325870747738860390009475237280322983882641103482677846847478999729304303248541700623413061363640002763634364640322204543041875358835149050628592624194225897755842455838750266229669271124443186174267069621241473909662363269084552019940759434829474219905124096155486121523027273079715281333565967248785996485947873833409072323252877334414245837488114511685252200535800695663941683352778643493057594852226230218152755871197283588717169115724079696929515793814553194264613535375722754906960262336511645914048894879264430292756648342910479498413163109083047493142276639660740724420643607955379247081233609285986414379992202551774389859264210546408400044775391850458449174612113053396871197558801296026660556312456454234193864190413976921496187954939685518722347013087306229170849923148983506461553985623913476185020246888053489506222842662169198648120259690332497436275014899452080527539334334353302741515679067032615865816124272540927386474017972030255145912751871583192116256719858026140360398709338001722816080478819416789261796212475704279303270834729261366344395043159081117851970116965515873588466928959917880816433975052000368074162144214749568476690801518543337958976354048720090320092576926202637883701424778208627068898327413695543096894651068139959303436667913265373397575582686603642523912187753202969139485368187914680478927046187750376618094515692076727072016631318871300835419580737728096279638538834221285277272532773995845898463765640519403763561523760340153840899483380819532461815224733322998403168561356485435059836737918073205472581564462041047952670879511362695549118039806598856006138502307690996077438570384373557239819900274777128146021759566244673591444698773042508690130007277442002102049717160679110819788900442167650261109035565373770765326071291855599551971802552818123991342174787253121445864918407212236564583646693891681688444698721562640638766384508204714730224588545901200081308626553076648921365881548790420609194070281313445870384590633614391785744809280974916322949162633128397128500581665148629387063811915758920237293743449631249010895273956560109349298365621130970276506280330644836101941588944968700512471780794836963190046134649145482399465579726974441072820280020447370998178764756444511115635436962401273576672699266342541124133678069943423285087749272095749065393444666091654607584702373054699319371546618910026036467055791102478011420171781798510417753068794191099517861995822573754307805957121589325260413686799973447366457973378435652691881246541447545878432997694948997271719042125206695370726031883818048024053026777886968904663895619181998058287753104313008252828004218615268482660520715215383538037005165327586373938550178394103561821796984285208473881524827777750463580552945217715748889991232308200727975065907277431106545572186255418477438050916973092819037756126448936931641488472383485551518203497411122848867769387245296050971475290764763647566244147731187007572563160698356392354791128296585756475552506937268786213648681716606749801252873152834360053252333923226539560164473168004107799072761494715142844766124011742460732032813149733005110460001013038646887236047283981398666053610558739031191486564700607404227716128938113864884678180653148545249046512851018918433002390005122394657525315857918411349342447706765860763013287368502185473900965592615914148424085688732580485686832780207248933767506590865069798583169830731489479172924414372369139551571212816769408291668559170711150256557283938390185034525891217566917469470533181741963508795608003398747255055965143195191483372499342534497289740949405214167608445963171421312630813592129336797323701815706512305828568897078585777458219811753460314073723988494035888318336467950327066020618149362509712652232022268983891357187469753100006311526691852933424815400672233277987381516711747367170567672609829711818677812582928862520111681750800750803404339269982326002689031738940569718131637005975922081538037600086752137129864503614967836359392295435892876089601745102601743811524882346029054375604949724504392534120247511480198802808320083089743163262490214236124310576062334176408679882250614553635100991942891884965867943393207885195622597289821816265764917201592318353347277629045613326064773616817502144894211804549761807520102121290055825983373254481749233576055115006783396614921101383497582771008578498963917080065351643488919959329149945022424368905204040026369257594151750568844654386320493131982708697850108087309371181275837887155497602330561650639048035371007618537700131600966769898123853969108369049407209692100846064428060995269681463602518986116954709533758515979889265803245382938862287258845477660913978266741622910048381271346561093753788255969257269394063968396190885546835791804213724907726205738550282399041878425982139307428964285042478393171072746958677407537298975990858017266380548175217086279654846364470234382044331908068582005865807851827511593784942688218477214799720025561268900145247238737286072418128847331003129190367299037307013076456735920242808300962845439373922893761707948744005348238458303975575421365805081668568779494479802742512858095839039080149348051210344234344418366727668745527309621768828368619445159745532636807825005908714840247653039234972766241466790552420201836677795266273341114450590314787613935045459814958816808635356475113439455172225927627662156863527991013203837604689241246359229461130116634867033886473817988199728897016190662795516126224211736230729182959648204029425949802557112157433692437283165608748603616987056320118298894124213734631272289833661836217107883618458347063840283590134950548172032026516118978840077208826489705653844676695478980554133225046662778022732260591747704151549506342002421165183022355813318745676902038114006246736742390500059826806582256963368355737017135449629097831747130427257489678531608514047809213842078935246854759939922230086055986374473119483806518988588721448907100837333439256365360227702570639131049053447948638958775342225475619383212737475913906398982500976467302052527794298165192641842096723497829865816392047753600392623930706055529500216479956437444766941696384165186542356653991966221033750980745830660292075269425721446167595168232657202209945422723898639737845820634227984067244441059708159548215152636209077460327772276986943361480175290378403938811167836140393297587793111943348299307744452438802791916927183494602962252275579094754404550524937673854501329778330398035410525138848491854728895502944736333223482914817267002711381848574316252650624813098466908374124737835637364098155623818603783926339729580599178011106956086843293481352160762707498875296063365894716545337776206637910813866251622874397849810446716010945518349386517613408935149285977082150823703595292932339882070789531566161702689518519491472186268877306291707482287877627754343514834751554446386666629297347667668573110124904577035775901356698821816180249867759348320882250221490554118048097852734007103767926738108360557794191922146891657415072043441477504487654676243900766751545216177185652378381979200689675649826998936434978716101427222846855791505660080089817391300640749484292201962267599388885271369827760494037975387601352610720934725007092445161538973782379481499831129145791258503209814098106287886573688797799562938464171978276197130658168190043228304955092026782242036378917672122736215886621746574137696572443196305609251298694024806324142176750666544575805843156325256021708791399856626027374656847355050851021521826578313662262130458149049423311562629567267323128853950295282691961327302964862983182452975808103683079560212116395718563423486586117364623514366759710084303184572620471359497189876240921672343208401924600344414589582649053166771881004286883158948270775375234795318206376704508454434796589931760743851395180057878822716729817016999351856746833866587021233286385208787420490322547274362980710923920143497561850946180567055816458027695494583471068569644289172541233287576324892377538700583378264023134419302404016399506672796011819110362464005190383178719287290414758454188863082145871411713017636983008416336627022447484641115336965017233415879702753995260513288084251100786147565222521304687425195734465587044592558084101552302176354854671493409176256110597179804671126179012107289841552307041207277401594606904635941842542739571664075746492627244702472305760381955578057754585532538952390251097193536695209973278640625840793994678603353763952226421719083099110349955603811503414680948310594514569274221911771272728362648429347378108153571301492073784424120019335591705475516839510353978546094450112621017584938710612206554903415280739004279977341088911128906102445510193184548305377703629893783245959259995974529252090320036295825523977861887466513766556626378295698081757510907132552401097468965761230059009555660372097605369595103031995790044984960754877494709038041555773245498772774310404807046062457011375824872685617023972766830420149405788798292865509196427769646580859956225296692177901154373497187009022973099538915343409504978948683244262711464032511719575252761367263825431223054347186847031039853515786394074013818568943043376420906635846780223127890448476915124490458864985756965424778627968660454381495370477543114624187163354245905875801840267434483618766889493794111215487866627305336865965703362782655734730530616669352275496373763753871184288300026264385509931367689835789153677376494504384869932869663958402321861087330107529290203878198272702950959801132046540890350631756439650499936857261773722669616721265728179450263641687859871184052592059309716643394581404456453923632519155116830649858600815069973023433810223598665346642586422681921894852793856666031673804204308485851252653224567341661460394404911063039724607827588537859059115137073172488636370138960176050963417087316847380938683048199768794058102211579873934261033741642398762475366121098875479973859136518447227952783011012773055643035800576550760651031103516334482958233025793823334757040963793437970430371484447283952471394803171275146371370714230509444013971828962469977528903301909695695014470457726182648810611429685104902569336267791998299826561187140172417582654639772632061323558423854864826431357811191289485725102918231806945561373599894284067006925775498247168976091693207548204787039905317727131660606249217101187265790213048140366357756299619435976133336359958087309896945818679661444770813798003976569849051393544494680328320988208704766331825459187628250253948060157165484202161343876965745588909289030953868202437568896825363283449762542228113136811638161414637522177301134335575619110194962782684575961273217126995911237007868457734190739522043780788574001777681644436018201372426630505092767718401805374705927338759284719909881898808411439424557511896530108019130096279414125555106286478405136331838246366943414526542874512034275739174809319455137112247818575788974660640544223905133011965757925774129069410566621564447454532179645376119123944302456900049148039596803127904641410346443210933233139025523418516706775183878577163569546977560612023738147612595849068372040132579292575009631742747620033390838140165826337743130454799169450278215011021192883525431551388422875996426208938006473713773630299686145460181092917823398307911809458722761509789613127664066211813346103816701488911502864362499396251169302893986719434991814803529027233120794745020586093329761104710944218578648832825235957841457754446402372782331804881046480948370435670392101901527118038508408342820319300127969031757773614197666828363137259633777787564712311126950289472086295686453579858274106969184195793971987077520456227863680534172627053291572764867614925302219521230199734102741125173047979289126312562790785116307678699125963506502958651630329860282096423180185129084482780420140156670675146189167700262445002368238998525316851131105612555103314853774280122522820409711740471020218062081030123246348086398598064160741209307809669813479531950458740369011434194358434790764440540897889428996949858733352004049387366244567257141233921971628349193385025337405482633618484308354674405203970358356241382302441969415900955341716194964219168147572239331568625681000513649597816729607669122046755123696177264174872437526813179634745599735337502976496560873322417841345494221257213378073818993173029301607890028077534593974842171563716915854652261710321564100418232102548939805723632483565770623640587616621657211793597950263127348547965612609825277840604809549134414493302468108071599261063333501962235937422973020722779488186081948143740622538028769722890870786971232486723174265536724443535440120455911572197918869897035993605444816440699310039159063713357068746044623750210221213267162189525111170794791275758888960348732477413031217315967528497842231955104419546573219236351381086765792907561126825938631042718375329080472495066138097671303341677553727292227534057751592571580428750867406433800864507921864362209939388142679195899494327642189329483792553220445268803450626977737604143816187561518500014008064193658947098095717686403124517075040359341203099550870110598452950329012361294790109008953460122039141761909654164861789895206355245125029181416543625957125946373848940492833013993349173666366236933636153406554024799787877108096916354524844042856849460501561954525000450879220178372231281244972964708801293270567043286350944319233185962101647309749164820394795103620892147379805763778848653856362939249621942494829986091797023999590431867024387550813303186688444020392981212328265552370993158666405209196109984249982261809520562683663596959804611610885712380450486586802123030407451187573754729644757831956373357254817791698639642060833919921742284360839461693872249601708765346943320759807873081972366236950662253911316185897308730079503909448243473410897906789240911747351096834593818983063792800314625675381194152880925286896630567672369667235074055515892901973832338576129741376444211327602986228693967177082312097188858350847897210041474739409240162499574272945877820255783000304156611965937480041430607449143033748870357063170306892146193011419733338956319668699461489531642029218071809113209368641049731210425328967055636999639243594594724225632482545728982528189723048837001484146929135892815849293501595363422873181621660109176803359358770442143820471099640644391640964794206949791242824379966838839981502788983549766232566324768052456793024957336135985456862505865131559046468858870396357136071943727305774863048891509296353393372437562211256095705618365063429404306260475418559005533669819823511639432043961435246832676942549516812543307521655021337907180092011565062624351097974491344026947382635206532758731590511607482862958420148542688544286440358781913497578398209116038537614618531251807589555233540152250820946914772062398343041164284039851196463124416024783362683641244254462631562207006342403686972958336675324881104502048270348438992234625814601823644734266028951862314184434585749461119700312103377750896765369464888195015172871582897466244397969735881444779306145640518904332011473263688834420185277705737402034855081233492834851590650807137416929672928410426847619449576117554535988769906759030198601880535159880735901289289660116522312437441390255963418276209968785513426488954699412940630962120425207303490080995110486239083961624078510205639214352540687556539898524780794997081152642006294926263957076689143043789029718969414676994568054163504903496630488255726398799538433565943591660768301537893864515240503968578158661601674260697036707598852331044557472912969115910419300475571054046413631591153763612700449297513090266073912444092969600641709509536635683903540651108116198017500919689966371951483473784720802827247107752969797036137779678566204724027594660931533116822985759038732030689760896621330603030526217022605972322227501945753007421641647974523619165345354668834207156030327150310737200852236394146167092461113155691439435908491534157704798319978841034100889471966130247135403399237701397697459969590889588693252758374131056734219684880206401612236591837542462137727566340263733164321026018369074728223194873161121681260029505920874804145799862715575873830743263199076155371786828241392799616738299033419866452045816329329172105753014532565432484166638897542875719892445870411406023383590357130577160697619966207959589292100935544942000791669055156291495638707828126206832907917622958898897516809256746997074500945193938046222739424033609195637148251500851903898961296477852344348703755663632739269359165470001447715499721214501512637547714153692700139605671276226932945513602604774656317935864910270100941925916688105586636797756381587790531752619179094211683909440511308326876991730530473914153994788808767231681624322698505336545764344210152260815273243675076935700594077359860363482846020659841643381679062716697254646783741321708860683718139344085722100193127990888784710639860234369365076578398840265211908478594186101112304812872559248781452159812654314683166254484859237014957369763829889824003112456725161597750478115097309152270390874453683082866465612061328022037766131171546668982669807011892081894159774737855827241570565664553393266002237840759393902262799590717979588705214739857856674040300749142897751314146144128090429445592677881630911870374854672562992361639108437911819291680132018034799027000214765608851759156446870719164435526186210184051138459403666298224605821337824197729232766039831050849714007563430674523878094997300238609280361490182972167888120972470676701821157173985412429398410211845280035962474991026022182012816960189311726510176001306674329704616514519261953696262323130740176945390078527886225331865363330495130690160675863695498366830184811739594139998203938826083758486746468585994954084058012885733804633362620547362273806418020079626800508286122799819911830941255681813092009081732263557490038409103770579271118494248801327051082294785434771685071864631713455898380755109450512144587885837041536103287992175158014198096877277595875378248863516757253461557227914035712191087913745738036045561028122352254591361645978158230680109323573709334152542474072967102021386881264511605276194433574080112199671538242679886614130365446016932370765187093639926045112080952525710174340443535682433773922102184134102899262540007171962551940780588812538744310670986314542133981663615965072690681331640931105832160187664646751109383528335571351895006160120611690396986780717151380767444690450075399152609493312410707256186735219357841287975545993864960496322741599114500941607771385152780511152390345119938904031047390877736141744465378914035165770496513600594641703330852358159440693342097786630079960256036652392277911311902424710690250935751186519596057224983435040272188940499795081580152464423042973648815094814729665654063576327420160947523949813835681673395275960514677439799130882438071871208134687140151511736647274688402605082168707709954987553730487840128442847835042614390264850336432813437327983310960041291891792999602926722175766588586160088684637502564578341157938340269018077963640839072863745314485548581710234730712851322275713122400562431447314774012754429926895234657264208454990443339504725714480587892684873842171180600146883414709320260336893172822180200601452344610855929970048507020691739051269454922026555140529545668338065490429617656196757322352351919451349204048390588774647280857296941981266092737911885000559832636366312209863589327035838135943569263084946809417048844294547360240557151952151944660519384051989635472607254673327348336626478582527006620602168317105266512316076709202932160670528934486139596632573347485567720092137661906301224818952749950786704932087120821219827011476421703708381826650257750003793822550068867742731368987732327972209170719166086434763764446704344585574462476093447524203215412646189472001804276910446068937622684393269228426950917632101831490820553448835773739403806744855721183472693456354747393241127566983998930404070524152839756776632796138890836079228048908638011105784929112108586320067984150552180070286082111926636134995583067737647877043443617684832583249285831003310962880627669465454066728880987683070281477724018107088969419875895378937238305971977314319119859387154850060418481861299028089676462146423964704451808689411752585281652411293620797369314467391242443930436844393632128593155667416225450099325369794563893016994530462075848400017054746920874584815516358093851237266417125687955918040824492219963257265386683771214017112462406513763731864052703937274867663148008469234679529073745862315743595701718090222636759158024483748538922456186412372912548836367717402787750415424496391937586496854795652598905409768805543620827157988707881610863603607720472338360223793168972917209730568329956970410663907100290145090994153736420318356252921815091589620472749066202803123983157949255337681699767023451493519187428322374001838113208657080494500992362177489354415286105337534783333562805509252274510620825333474396685833149391739974254642962404529208139450095944485416518362009995773508440109699096670329615774575843723006114689288005212265003393267123216905267560167263810069935451471735383355794776683385727423928438892442746396312930589511188488028667913045672486922377603824809708293179761804391360671563675102064535073658773313865125372792879767885784788246758870365656536675642712468389491541833682170837485955254671760791862340286304621046271982599639662736012125242108365539886200966075552017459023141396491789090395435414855976856179610483882019062434165012053316398967872654978654944992971273148751294126802202588240826976044467728804645441486593606416169392748593074983818853984341964261676274178800380485067627149960317951085818240711926668030790647990141579264759652561941445340418759844298912472341273148428378522230519534676211213570770321974001317233762411455557686629271796673265035501956206796828854357604272708484716729883082902320511713772054140944082238838364475052544978881070074556167835421764345052139190415733753361317920590068189447917363272304892014393953730953770951380243668123129993142838936325459665770573114155685412126519931399179598625296651875601981410845071282162903102851094047598705181923005046211698819332789316659248656304546830911935653942830022060451136037973801558919366040377567611697161907252251466704062252913959259943767023762784345692219878004286651347235246100424466481542989018653492097939643960081247729504881391002299075764344232842044855859510307220228880902923875133277201983882010319903113903177101599684727499073434315005294990895546571986334642040991258505614818272817047477228045283699055182136835466975077500497484373112538168264597024846307963616504523037951589268308581173201173924035146323741679357117469150275827937726977071260825225073279068291225564470452624991324732694174977256552307846080509031864497189833410057686715045147066043270201439679679806744922381087123551921304746192174733265174396629177388381412807844453632053450940584520547612670266144612616697078507703286632123917167901010666475793695350429789879983712340134402978682669337477106014616690689665806711114827196637038225066924783562122559806456873621695526068819036815417364236456232578144171232771837276232558368098291968404291741970084836013777283111407062821036943910533461311396263506324787227948368922301380612396104415621995631337224153021575965863789950580778225085489917474965294249306834258169234003227855021835259350962535035747675708267670036593853093286566606059500033346637649413343366729800763589814013801618381318597566993521306805781056256127211822301108707649972830176664328823158222978792539101554146405093286493884477407146491339785726686821639108081771479525954329974725758366659045152636691578941246240012308988824491363941231737046896059348872186572853037433560545576920253747378305917808581917506636788849845738542406940330347483084850740270052874275359125481212212806074304842051445650140033041818663680231058175297258718714640845870399144753120036757123361398789259377755649990921725702391913228228650406295580214868268493796807193530933250909870476110967269999482230956002815252224380661997374464524915008532182155474142895243535460281478200829575881864385805789873345387195830071752950743860376188656695071531547089940161205325731709011120982785137861319415597560284932055032839328255551415995928629712212032400562550612766522647467414794942661547150936682431420943207730459291294986397234241698729313556112652270151860700881005745127979453662729968504939952672799314426860567124088247347934212268089909361172756206725269659108839326218724636042515617258452535876429212772969716945748072866807549154859065334339399712537066683115717059416812879191632040681371871070018494911215715931552755584595912017848757789105078231088069927974994069770665610923327911818779602097839372392542600542093913441153974558232146556400788670631047498295565512330030649425391495609493222824559850018683062899087629496508089220841747257725620035376259944180772279377953628428988182950218550291706995760448003364982363411696508533943768565600899142356979604811035313634482464818919205767040221647264129555937069563387594806883020891163230035217221977549044891701946926314087044759551439369422514287260425585119717974662061067620811982096930293794951073040437704865631792974483489898628114656863972390078356092408487470981019777268685172537987425166783813605586952810993977403571041686202079603328956462754090198708935869081622254611961680846626338752526747086504692405682798789579246381032010893699727958460024111943388471070938119598658340756985896762582845653222066442768540808049909326832964791024116484332959556982779415950469188452984091788355075443516210349050626850405614201962532723323127701067947825093120480786256507486099003235437856295962484049475298626528376783593421212616530848677784294775703679743128299069817162653271228618434702820147012427224601517870620964562977322326276265880177340664121993695328339208914395564817993625354749433299067172278897579085493139184435293080290173421452153012845836801621902739923955608732051104987051776343847098086525436680473599875270095660942086091074716131504583263641648207383360314552810981390577221485724502241703894741104362716878893804514797368189136759048620005667860064011570233936046357189805517394684832858748308375354572517751339641956454383909129604967506167995965994577344750452138071507334715011319688226450707705540703621313410374864305526534655620288910541555817154141502842494380177484546563378093644377124426649159164739117666131340902848975856429891811222783186921851889417444883286528365410887357498260682747120426174142337205541353309996624015862478066848984965644250554950331086066426116790440078059975832155647503391971177955213662888800334393260440863787425438874075291922441801730157233875120527520874122075830128636938716033028915343940191768034342311289175336680005211841279736933261690832074539661825199488320592635705098944019095779796685208233051302152113451052687415299726371576008190625968166500239729624647108718550642969122547049783359572354890883823362179108981146339500795515335640462687582368119338302144425964674916568093646965657296602461951978769147547912741776694708805768208075213450990925365290753344384554832783888695096645800892338763742976534870668059800800438807927484514933830663000258095551288042538125613935670495635893191617393670816025886364997725071580117749602407684447847350037075233286984033239394369782293065234980982386664187602326014302664918025186880268494170948441659674683314649820100908553681904259784705367704267029210170655754618855571272356960213169172980363706520384424182438651600125980938095789581569800038376454664928254291638892293927873600977469449673183031073556251079724308814487296285768762464924830262700626027257988306209517229558005657243497877761834666094446245915387694405654793784798197570914072683006446788606728569805291638608878768992648522512960885062688955614217452074071255367083838591351260153418807556283384030895709586030615809961117503046826488048331588182339584777905288262441174603314911422199804899285322631259278606074420780991422860587803718015536157665117242504927468186394787918567496463812041581720740268109737511482235142253924939725970443528084683822685426588382802652408491353875676219154515428095025886172032928518734946303171172196911933992463457374390957591242455606118974522715221394880163212878642828963291837269257175886037423085700729328176707899964417159405492295368642415557661578064032208972838867631540448236747723011107725370119259304046898810531689266719711062604084761470293124137387121253631025653192523973925209434203546586959587060681929165994092494343430754517901665084871750219190348173610319593410148378206412851980925525232191974988678417625560604932320745381362287447573190908665864882534818633024265534756060798502574826934126057014718594525014033419666552207019765946488391856017097569907256803313130216758645967412109057575851186320620767681773470224222132733872817564827399235585437926767661243245503658202520693611605567714324773791520728182681070045068312702696901644139703557799687723677871260812049406107328832808075133545313379628081126293046762884204109113798874893008321181476141709561830806636782403443998961657450618151907928791763430393175135134453376298160113435674637268755890587534711927437198695972969658993204832355315639661114536264224753936101785534024544503452609305290994162144557994729615970065636162327526787710329240812321204112496118248180610417525955540191978118378034252967458021929578037586571769326871882943807089844149156565973299486018729398168645343724360705067107543893729671989003518579686338410666144199118172582633214637371991008063518023913626002822508573770765116131620433041993311675853048755926116598272908519156394020198557602141447561404629421623240929462291358604197770914285224608113443281391052859400658987190696870211923284741151434474263827915638137701871838725404781548121786170946985369530091544935625617400383234891783691158585609743505380273123481740108394530212400712168699818256172407266663171638224327214305174899290131818072211450066625215937090000226042809283664591109582214346823014820532009691935059910408639655748614160462728812648665606981583113836892663937121175934511564218364567255376099941863115701143466490454968642775814208837455654561654959713199311530650175450138628578114766031172773882885352261007666217872844743356298446199579990455626031121050295565474618226530222393456763228892558020468531400551685312384643056090655681350311583216539736905675629466490429012646560299789443954113073063011175834504321418377063595667916750392475941152811049192895622146412594668859370269212637367960383796161927005132068297705025004107340129494252765101006973045370232473198756315831113352744990163090053573162424113688123170273996807314784602781375411942396096084124435349021824320155757043293298501657848592803754971223353908543395537281216182680534648506842144526369271659177044811556287327646887022035767031057396837725809528412461322367529123625249841512330900568065754774220125707960348309388946623171072452433074212303758178468506904109346233044179357320362531804011689245251570543874585101350867635096128755003996939027007382628154021267070176970953753356526798850914551836777030072304599312105207402816375873697655199588714933555302381122824491720136039588476378450430604272922660660172785341999445890019259956044030873717898574743125679943574567121538418876584427152769648273541706332327717738443826198941112965462213641475824491547974088222074887188823885481935598947358419132580422880384958093977929827846035065669636769908075345895069712037093332381893720312703066146514715838046188970615832335323897436897904791642072380370970023124174269248945722749617694253836122942954823249725474806751774339833470514667734456456370185415518526395230627450057628126740051834117891288262664460885288801940715846210338585748723954824374464106370488132033465427728832181927624733395723356037774560183474944022039208874019485622014279713295725686643218525031660544830820556639828164347294358387278019423588286806847452285227055736099220029339871604735147784258987983651788704922692576234329051724635282020547308343886511838069330459020859113163190649156861609108462290824759530635314452768229123334682526975333109746271979061947316617021433473277896080388493479249110929660204657087604005337780621718359204683072279944971668961704975916608103307324913390841401972014858690287705073205274036377525795957134592409616750961046643095000967021089620873683174081960014839887157372751607955448355746984609604873296430633836690712173870013936143707363318010489097495618482819244215913062165074291665675149183820315953146835554625164955102142441391590651239437922068220800351172605522474735126934531285519989486010664000314267249678126759205442760512256346852143444213571769575155252522844192284001058897576644737972593139549474942513728174012741788050528340883897361918501208489385918746682049157844372029229399807186691093865426245121922257405709439159377488851440367003851054293294056501347375274624290023912556938310398704084460296333501326751649620193000723775561185089965931624778148033200841596934111632566557425997305947495275825299868014506708881114440595688167000779592676018508398580480358307782498094905705543530838993599838106510738485726597709379714999720095204175884684057662153425862926926423154828169633123113948836069141126698226448287521461311417826378174564808563062383223034456726692752725723200576102582053452704308441382659190064879952595720573913973430223283782866650453131718036319305773495005343906104764329311331947033139867269221551563566182347541181666815151515545848599885688382965318325925905937203196071538412293099712249891733162875350660190688746974445070085710035404194960411738679654630463662448429336872750146713990797916899081504046493752916896019334255636123421169342236049754757604922383290067393586593263878694106499828113934576683348271598159596181100623164200972878094593349952149590521971936215750074109586935344754716285948756852973725677856218353277930398850429390044884873248160462839837030036691386842639228101323354281070239571197364845941422217294353182304838837438035054310635444697635940400348947942760690218845912122686548776133870344884834356992492491731470001309679557581331730982376811757841628475569034923712687609383227609966558182549396240110155227389392015405059456756045238936897125479459480455551765602950080112313534197893903945442266846558495851327662207300732191808469825823043854881857675285067981794738553477214473000783964136976919989604183764421899582218289781300221303316796143614015349832709710380343153804968456471309158715478322085822716348210071124181718269463296623483201239321613301515608628001949196463609731312085464703792530911256140320455043657671928528152009118061377730501331239873108762208306052787462323051707987530187210607754679780922132526549667263295881635330763303988664717711107463476925069283352509238189041582248011582495274843071492778044366970391808702331389393240447166373421957984425649351430976613691701365016849879768645695531207974130297638973425324619356646867851505540543136246566769771718170857902251914866274155427533260619260114453512943073006213331831306884183016163582663739118617348322733856726327880277785324496097628123160718147106145369477397896653872321865324033704489175064563823680605296596295691608834597504885235805075941422497447703497392050832918972199113165157264161560235219043842687708970264923130509182679018390996969307044910236124131615166987115441256410840229236191937870548034226270209761037466588513274444303015855476955226850107093175928754232558438778397300102523792147990180201052410134802610735919026660070801453721856996771035350096473209654520142759474620584926804024580312708406479024721284318370273947857203975398610503152062183928043286016690322708831306234630586601140293483803361261689823576492743408269539192546936828416887892287916203780683795753660904220272659323267141075012159837241979336294293113587515077258258025255796372227096002349841437925377512502050435598483180282008407674749995871195945317434969514945743493556004798244951672795842287118527482858699544293549060705013355187819099473988908876944116196972875103141130922020694280129509483908505914099704580957248081882830046877615958961676035666873878489615243290397560984199617823512171560163726180281920008284891284142749156284776329263072597394561036336128107350458872074082546365955461439184281099448533273846690086992683058641027123262158765452967736309667483840421879301025330926816862361548589716379147835590248835912040658583956673745276711981644773865444477569706557192687001860570527101271194068451302625063915201763595784865279822496077087404630927814739301882374033825326080323195117885701224707874614149132420901181861733468223068766683969208565246685640208672565889451900353630774023133350514401748325649903895372065853434315598532542310851471642746614492867607689444638618696773266129291963452473957220303376254454626201329139027738194259037850664499978804444260422373349672350009871751319902069108074755958961381064739355524665780160722303131359862158022434745772577273991052725956549212414744341118874423495688376012373371977577190427168633517300283817172445184317975913195979393942745164240455152566809402458425479210306058305132480359097837358411427556010243780176661939633391893449109791264800037176343214508558822037661941712166666759850201506394136441897732509796431774062012083069519623089047211318650564220877230761138483389502480134592979413510253321573889522286273259465533980302000926509310649411887444768303282238422857978119165773186215567843341893334974076030991432956046817292155601171091631838898625155456946299727254039958992110190721766895744394194603352364369571586526483879774991417702059597112692671288939104775676865346891519062975361170016448355989896008431666569807374765417727722153484122204638229783030126736856906676018420182326372701551133583845377905401597475725914978841269159863387647973158587216428115763612951762260566190177314325741067630170850586624865889114525396321406427456237355475776926106718291540808374020067450428136857583395570393257899780188377561841546868476135262882148358081501438591927335173664258255905348721346451528850026504367266282327504496729720379769786129201292649576753122313645559000751389181885177405981036617937382961104223527079455859755191535405267709375415149859833200748948972738482025802043597896192338202916174611988894934726103711972020291326410166818313724034096196814038197662769331132294552617329344942952921299981286904569634581686935869793329075028755569659061307217086977474908898548048345605051239507953532705952448025342967409988661119563397424050299048808898505043157296077333436616435511705163812495515269178166908084636400529910385991674705448856855547414243634765661284793921702025176298236955299809130776578434069703270972577812034364603801132798410250426267831826418486220752689564192171570315598921866752365150657451395983965167980520930949610800256997908514091500358715916077813796992115438707113595250622537128411897420626653227699062802580884539820608651470902753385359911578635954954654751838154940361468819729160600427997062728758865244148527649517081202200403247853042168456954201743887441525864173006457011171844109038485501021341472864665112591402554242649420604281929730167557304887005737849625369188964269919793226085213796763320783131226267197587348542496408306206360373927027640005065991168667186883773837050570057333108517101725193508557652554041200988904190555647668493218664996401200534228290004011619115942317509971789744478965049557300692038027398301183272794938589174139617442278713400616498955182964535513633411757746251687579965181333425752160418422769059049805542984931794531746227800411229395024627567134271353463901809241895455882724493283583629308492375438978140914560486221197975744825976491293544941866993335811763265965737019406744014081598053511123702525478133841167104691162246907992080393445311418230502571135134810339536967748411524929405683878770963208465651705944799794681392007962289802638882711417173136216835192734254031307876232919750121682885109381981510287528822236261128337170813433385646815425047943061208110556463326364126136050611437520166032625821935172598492150327205728669564093772098405339770648597737807978606933128667806808109798625397236625711949876264766275125303367438325491125271424351903330516172199854432978076519013763028678965592298521319788222400818365577656890208995089035208053808996349463958264715643657612386956818945110213498714608463630550405198961025333462103912515954523554807509369622546625098943724063179720705439866979648442874411994660801476245915574024618207195345505977788066221804840634242484374971214258089124028196787460910275376609154695262991000561470524822271521008316166110556140262699893243552969945473800467528902831425620179089059174409550767659707267558767020062530458969312785442683039056833955849911854315820320627827142955358661653608894207354738540487670012167240739108302787354895723307105207527461523899646742842891828878206729782049949091981784286247712145669848030305640904210794106476379508614432058830334046612022884281530673353536523705908868455634184145208517794120848051438214417498048038160750710613680400070749562973143120425693336464072339893471162860999174674779429486194589976002562263852051833434668002126327065808046078022077315617415939631813414944823337690894858638797190828144311775290321157101280920583001710911814547004396310323250428416848568085690350510166920742673030595411032448291435750595457440626902841362386394184856279634160377235201788035527963460281782594235025638905635297754122981627099392160304785659925833825417719279378101920996523164654591197404392474152760518883858173063105524402882854180671702379385497427626981674005649121451439031882506294914212273243657256807829823049263404260970564141291508353231378203093856295489406110457612027817520662036461615680666211126589098717173136794800627319370232801057512118301744977263674966731386238296259441519735048331210239291794743603561805571885531992635395168806327677357534049371509020904627081324289980776228931291405283420771505342244792100483715437791194878723986183416102630564506935741689952896345184146637165059003081951992470526860499414395505770625210339282329562670303481192230176994514191865848451983140925474006083208237420862986429662205595761033949071502244050394769833351893072997255938172965290465086174111892521337789566370119562911865594648121957449906341115598042928290900701966839847820763016834280865866253382105294444252000367903703924008251717514109667160312988244490651741875224540142973958626005347904749521878399279151706584334926383303348694762583649087672921602499982476463480592980449422463802205121000744645790599745074000788356192231172536201478380743241404606913077849003048889958193980449387737654090116732156190733240695670405242946670983873187485068082096296839822230151533075057140644760918981362511443567028767201551707534504980764755857331833684588200718734893399791110690774386551705117711092332252139651811560949545101587292790335444633139699654665195606086816850738256609376875448514049561295357878411404286619125384086465746516329148542415988199169634220745531961271803717331725761722034725782791685565613015276307518956644207802430690753215072082186479185517930318441277932211425422899337353075937889164670183622065404874323583413172778318427974112354715355976378613011151720774469131200380055263495293154951676961052500437558680964755798753985417189230941447164990179432091751934824312632121603090280563681700392989011951999623953469393455436822660824269513910700181388300874782209123936927812237275591323840634360279781578400758949459776488009838985705655119737855469626428191652360998206120876782813771378307649461708040808418174561569080903681600061579594167383143438565869894402481564190439540516411853660601518476411649076898707424876947392167758699812953927532721049137534519937334393877254710284458493130138781936045526922576779451047797325135722224999528212494578711394029057158911010803633250460282075935206104917112078913691668301010195610036298467208340250064413442955619954829145919315290558595228372383691598350509246241954214074812631545577343990107022994830415255619909523453054064913142082433886968287113997569033094714208060786231327151483456094033001916037154306191097301200862275902051519179564258796646823454683763640485900601316000742290939940686199350791093995643681275350922948562505676668725814690884029141239300399442950673331977160508734310524543107638206310559346049362008435362168143100657794669382347170229173732023422839854608456541058403589937056092436306951409239989247624306911150773048530011529935007196283373532108460060279040506293968242089124164856809396263525046970865102142207577244746225679931405447703461963916189650718805273879998544384453760893747890632591142169426169704776214504843796811037607989246397594807976628431345363711842916262081110984303408951032269769441843823725167298639514610487242526433731795302835806371673494033554853825156557329414980779048251080606717764380276268003529101650390973892278764503434825026536797286749002660535232478698109094782545708714564867035224270655760037927148968118802918985073377537257985692431331625048819350223290932194892671819815854385613648725943458242793761821257509522473385825725605239830642625553663800318209070273868634017833261540113260908547853814954539631732817455483788911083087540994386136610470145709205111458850490925687865146007981980969203659704421282777464817949913806387702612228341583541394486055318734727298163839472045582007390244189384185381241382451988479588820349199838706487356789425133188032331891196945778399455559205230512678460427599750649775156146831578089532129882733074570194037078459858808448541768135369720321482580140193079320128764202996625903256077853001502383556551459348567871639075646992656912531134717423651529952785376140719942757563762192667240329300112572961363061787575167886163550108168455744022020091473583452124000990935194772238769473744441552170164412603017924421470267770699872909783969368908504056595332912993990268239067757757449298860809425989749022822187950858852692203044866098478441160062714048619846407085479237191073022191378909261697210680224516421437849890427274622449004278032764838734406802614463634519415890758334366672824845289874317956018977782512974966550625953435267640011766524662575662992621470440745159598216751003179620392083822825918471472032738237562246811562335712975650421892635641428119136931099480486082336232333223953853183147255107740205248941764146467331477454536230650214259283458839255877031905031664029707356188454610685354661693175612255493361907222287604169615491743858842658236967219064134478450795300841585072969330237112546019399490749267779502995702146003665192975382351434032176119273799694694034105359823707310328033313401523312395501697409191386506870488413828611569181076620120187788741305750349168827784191654641398625408867555003449987382339883635571813383865689735890363494320523815709117228499594041009903272939897936182063592305714526871223047192420242175908427544795173342902317870917931283157163474257775260668985875053144867115043283002259735110561063224364989575986715103799382809918472659993607047065803124910904460161549883037791393229999096708296939877193676936418685465402900843943855049785591373978926845845485558521414391761278012406139229992401094550736116533648297197050191495717678214923963984808290696638862901234592825936291240948415032104515452778101889213679273716121137520729615839827428686373124564205677057090419671315792091218555330139710769184692429114618264718918327720674391447488808076861771567359552553086995348487527306932073509443852738388562181304273317814009357768930863341285653272106317748914681570736551234723438406248877089626152621979189116578055528175075956586971215756450230646576317549132196609828121930628910413979379529134029575564470044346579075341008328422464959719111109217036026850668863877693573267222204578546994436528583499472786586678645147764674398131097543080039798783406717117598028344069249455502942217082230276712858673140785486006703071599554832830523544031807824644943323878145542936071119668462316716505565127003140658490825847755735439863874575492834259605877521232133383977630526842333782833297929206414383478561961270527826604026042378757139700345486175786474323678642465644078376788302210266199692984456654053312014498099989305197653254070581739530711292453065409629659776001310417274088587959658952873161085274834866536742631000416834710379319039611613871023747446779018347644151779570228520066282212929073014309159522235159978145448907046804171886177620157191279836417189259467862306069029678946352320149491304810109251421485971620661396014413540529737967726189072305224552946740898411429360030193125012710757486226205329158688885398526285223373549188407886061859385546554227322332840398820489934741740305346011051105502740768980646735322252476826204033001331394113673504679118287553560432691656389751681350009878264884020583474327756734254651368427952920640184908557806446651944821591631890503645660972726661243562827941575517384747529405707328133721450384423839465655473245394493959630172955567578917121319495642684775794239740337198366210116145305149313698335230019258844374094591074485730741894403189799739803507771358071797063045642297587991635046992716596355029467668255932698632315401198558875081505156718108679016584726747455251227197066357468207116740534064379863954495757714350062781901805560124392048016238960169701050479636520660983560147480566500799811194263918640485537770173122985006785216014464266474506156717352364092036563162834276369145608792243514698367818605941856549663481361248072879107720942204656128861491864207083546433940469827188982006962580277205468377955987532073716669946787087694629660287541536477444320819166960862987462905656522576947254107857932566282419753924297654611148903328627871147256458020823527837402438165606240085861314424935024313763063597166199976522320507433246904877775850557517935685313693785654434233077837495299712661422172157021113702309353938897171200473674126136725429601481726604545742056679049906081892984962324222142708990046395884380339381754035349455483550922476908939416938878196111579298049475554203106792220528095547281503879408310311139796276661634238538932317288810174349660384179492826543776074998342255005495236632337786005429545802931060182764917746864920260033830200360853650360041691555065010722101439254668207069496104998667124835810281667058288576747418209304543025839938208787677755300243389694037106746301504259590452397649443384781910092540718618344894633849850415412059243601772565453830604388475785313349467362127236082425017123669193311072032195633468601790235599632482236536457995789255687244278082906501431716704962489517873917899033035515477962887662800857679567865552383443440240693972405374528669290417744126384390595782375863361668892799848346866516446782221972881362600295575995577241383217880046965403774949875520299889665197467144187197805549935720459158489957839588747821741073530087891417140431021369903579082343359147869787516925773313368742106316925876731790211918550613367264568010033814647953403526623895488302720111720432680115883580865658656243170176838673833995180222969479303756316617014418995820421745704907630985201883983848780832706823287488186119566828367169926517595537484280627048772286767540045569403411845236093599456767350282556386742210681177402294246114903459812073952124045667713226029232586833088866536141493815976694447632961358982447901393886650279500986070662418083994607859381237008496134785052164567035597448395184871034638618125525151235294586183725925372102982349449104521720330215178823107621672687234713478059579371723016950833211371307543919826956786128273651647905713070200498240135473991198570919866861825103557363202509859037308730403187789604964317515199022731355491387067462094484219239889186782598731693583989071553255597238342702685196213267659622139162277966660153259071922870789977965020546124398569641307077002053805138655097665115127389591147661796891329304701001003668780252257132439998542327509404667645634103586324418628827487533523054215461019983436171792177157451034538239021848700894660913567617567887600478774875736965060425292898382541949902311386416510014315211177894359369785809846992970385841233673872011251495023086000360051654776593464841473368093427478613882288888497675283982491100502947275195043134850966551981172452913902904531123682890598264740730633582976559016677395284177159873902950781585424524652292893987564414667118149870141515772659094994765870480870635092312862587658802495064821749266732050641358462157022118317736870286023076520427486032400546392531091383905991819158179541762953411239210068613295125209866657488701294123151182665251138366517255014693031411537655775843033854088726204922905702577390403977187388345210442513644019619739858128375560684887598103257635954781494356873065121980104394964758277972397469203257148050392021313704763056231034352807689412006986870989970849296619474882656160328978736423682091266995634994395061126645136304708176484690889967916506316160629992252218731118538421137841942717983348400995206558533052256743877380868629276355885337690486374781504857893574272123307890586731585192155136737152787742065277588972460718505709303094508867602788627408398133465216912603015895559993320119504812194951403810534263098545352204079375349044166543959829849536895725933416595263454474804022861578208979735097554849370195295561744663585402247008603074732722679535004130435327249195566603846917101219176363942095054621096105847309116311036213798168691262710375705412960390172433751410000572542902974590029054803502399741435940679927423343607055435442180576851763201891586178187937301384665612499394972317549297944045850376222762797299674210799638943571095245748987681979637130867111494003342019447170148359391596196352531575652548881292104754482662458433516115651226908372701802278023767999932397691286637467486821083618819885004941933817721711384629750386765218006728779779089175871828472258258355395428848816477405121663846722173586769144962406618998500635270149247010499269417812513177529698976384021055215698812388229440900965919076393181590170719775445701025077060852938446351121711508855316648726665113942273058067339272344195739297674728055309517623083476260323106884682582415613233705270473426244842601055456064193570234384029573334236093277489840205656566158624272659230007511963984466374423243097343951493294317552243939653412426933559524646080434719717942211830832112143689803174814564781663230508671480725446390557956543261322486698369644241467766524547762922382675391235813617745568468611488530775925947211549231207378158933263159305705938473432266926482068991259001093878003756448626905522447964818078863096135289284647295874252347201402869423772391112361048770707527386250010758732337253245767733035921018938252306093342343248731687293954034660849387325682189089106525587300845782220530276288091711407359195013805409904657788800475034080441092076197035856718803218664370398142890825389429484564501222208736567874751011455131035528357507551698702372469274305212791983598703148335654779901214807524606600875233936052896426751148186395446907804676720741592617022461825365313350018718688606022159481334340157443452085846238138800472779245735674679175134065076753967061234777028740424670307817141145339394088738789053483641477088517574756847844471003321165897729673862289755845158458150693965859302384346062561255523801557839604837700512698361709141624275734936457234603468387587289847010497395297171579345838815738704705947956237707337602908360396326358923311762335786101675188440465932441183795718803724532898160154713301759988373898544564897875622282491206496622517212300002959145677390792877239968116360362219667329419237835525884334656015131085012087284405775425946968693296221629532393223384164218033707771686278527373915180059031916432418680554204320916251938538398968245583566723171589822027772506402973800574167968005644598841663594510546946539536433670788455636638383380554590870951935817176272500447812178635178939579944850162128781633234006051396132204833016272161823287463371542868275717365017493424851966586569746043227579820540425119753530544707666654521979245096826944288801030792350837049952080299633892120080869847046179546625497795243410530723233269713116252338844071764593399626122423025679158128881109947422947442548412512173261929462672979846915223143320946211393990126245879400049756251880640147390915362173505914399490535171840404369685465864563242297710389835224929366384700817303090295688783916699221441267176941028638839754370838620330137523979538465499995147424304549726091321913639274214373619231061138763667388766246514599355715427807387264326401008201672353475244600121297335049550591514553693268699654439715060588454877583036521503944725912947403197375495503262218479309165670171476198952049647390024760644662194615142100568181899458186565539494308400099647049327926214316060070005656938288948984068241217373662496917511275211588241590246493594894186816949169982651235083153729281700154893341429602780782277262590586603309973864839018989529517114966314018440914125726085821924391880444523349175400272794636770235812482999524890925002934221112468024882273464442378185249700632527275614103463325696148978115365917268769179915875140753856527418060592806639978875604132495013908148216749077374976785059934323474721801775067610259425757968368379884763660144011742079000532242355707425555073167039133413340837853045345982438914389781127834410897649829698268570355995015660228014462849303873259389086853448978907869166858884017320122315513697097886568076807682071490804313748727629333781698623542657841196947659876955988095858888254702168605898890926178584993445682175924929361120430698916195724094373318322234673162165945966766852727121359754758089843513776303500462002161890191020020782557904384736274958288626265035888599287520790924850555463835598985281782293846896281930607572938609548487004613242280159251331726136565268130933286223657627864084894305715812218158463862539310772897557409224711280270810942153706763733341246239519999984352594239034844049431153835565602962204959980942002666717126341812874831803515288827267614154278265380997077775746486002592860128587345452054248646965173847400715265366816359894401943743558903837057549027472695709729736436186595508540727184563674623852815522613109790946777872383858433247576235026384617700573620336757054500451544490229856079120781326417066784752614110760091650555251307052939292706049980234180336616048589454471700916078205913094542731773317352254543091626495807507325941436944959588073467537242197126198674525792733070566718935730656929052435856819362229657193952411892383303759913865409693599894212931167166964728526167256735977705021857834121053253030777467359272941963671627170786586605164181901341375670061164780635033061219070612230741936020940519899202328609612848529438624646557139852407781574428277198655612236710362616271303046597151407935370765457932508926014298074973495383881057036906587373608781162913769620488253350327055325811943924887150796888727602047469342514460227182959318964068077547343987054127719816576055151076100596231648067879671352084760208461278607791403520433426617331587762936062901519416570873091624888670769559103810384673211011207178136802774699689097048265527964473773160680458361906213603068822605615050896401967816523604860310564880506361377203314812318466858845709756814175824856942534375828134637252531522381244657924638291449797587113537071555108999041637319366880553122247793042862509605811389733341076851202006529245570033521252950274594356038385414843032092960869166754198013516866859964644879873982419966210094833519728016680637281361058790830691290932386764072493231111554725940222863975682035199418318819762408886267548388213806164016129464364892038729514866453014453067472783019700795545294144175494635633049567810729352731026387232230181302207826579186148122923972824699833184996967340351167543011136437696039030543975009213878722691886659788037765247507198600578953036758592795745983393079743371360291727647611763701600334401130317828929946713881222933990785052370447403477473728106412052285342143425178619917366034320869218581041797187714074871903068262061493596517135107127422249996885588130761921118052037143449737092574085835603854252428410903147363870588675902614718562831201412584747437348991474062945190988958475937702270441771415783735831207407005000401222832366630858751579558239864173748334364877448309024026524690506391724250707179855495414754357331018468658079223248579876568254208771886545350241479387096777768010816324979687896503497300045657047590770507639302662541740068539094492691479115113359485859733818434183068210327313290683355364703803525112802659834798871400119039749513370084413303640024822057398525629469679653090819315475366318458671829689874553527983041495963229801087766966564149839627024885385100563709871785881416642355382025295661135153544372345537506044332386610712350530115330660757569368842621291129765832079007323553752101405231803706442416807972621204243360417625163231873926582758909275568506882533933774210277671698503753349619206007602650736399364131543464919158536463706033331836999649695874124491650612336848086678945573825243620363823308573124327078832415591903594563955164110978317290245743413942153500774718950000983259969515364437223534337536701609375899704171154042573775259477579945167790985662186443721325746322946814326644119065786469373077689640110390599982720857321212944206427952626608880609067657966406085614815992391817577676173886180043881149095328128695384340011808426353097175371757268196312160976726026718465685682794940688893955849184494254294363971610953054528304689624391520524646589917354982254218658515683729548849674653817516336493088829015257635468937339764089433274348383508775759655880314384019250720083817935028082173769602718778745085601651920273216519416184378319285241422176887899666713289134888978262852888323786711528071843607704728971145010182309596980255384592535456273996352361859548706328732884753906667640635918888041458859356736464111220756215822874273446337892178818787725473217653601362553416315445295509115613764772033134765719479350528620367038961609921194526929819613821343800586980599264587306686035598608007369077766006150015470234987894833506385431480807319505556691533802790938796476248732757966996792512787989310263432485589012249246197883446376206528348064328864237595372003179564285648074124094451815057070373451909604499736641304944242471649356464254443301536393580748198813359341892530310706868227067001521437192961394500172245376223365884250203725173528898604457399251933181113360379250272489423292205012792240492439657661722176755415069777123569235191254588005458113331041305626270948641891854911655225622096357367700235804661498924627590089849976670348328399403297747275463782470299436302583991876898528285636150567642816861785973279791168241372927900479717574634794667463740180388784939879590462050872820000775511551721245044487783565431403128341791372196232745615849508923192482639938007679192635016527113352706786309580517089262744918017813331464225476666316084567699550862726434409649655284957335381922930535394898350526581800195416062959748475154638000248793705257369806491630718380835030353439017346368130681885384990847533467404991507317979091863276383479353874262161309051057970566558625988570686962089436277558427701565908113249450060498956163059024473600434208518742224833134645199857549469987772191194550848884863045680605599333382207639544829291761563495655691203896699236823026872394212745123988175903850874923201168932281614564135097798212231191581804817643706174851143964861213188271920346629120328988560698743280250777374465629939376469848495137557221356163579333842131137166602843851000455900741119108304623722887035987537128125920460993824146323479751741952082391565051881371867377184391585472830509943795986057923419395805590796912039217222475336511673970964658839984502154200862387561070060700011793605597483908039217445683730030769291033331643938336012998357836426708051807661267771573346405382586313808254471407495814519334729952829496498529487178326415100195929509283082744639796384411602562378256488267165393699265958404963869245803427334525417875764986195457147359985489082818214677347735601279557893242436271563109865348051857108599623448600397784386326575857213758357895505932270963349297936566070568615208270634446822071180655116508022091630872031590740788633960306259801432340034432278997690798217102406573636181556342506860819162029272328549978907457056974806301725620602029482400528822282808314285982705282752581728549236798306967919885344815517768196490592039894420802712879570721176685580820111196341309274490752146643385959230993917596477266518318805936599058776525634763758451097418812524774681445252902274861718541122205356067483798434888889365592731022361532035237013058887917971729212807634023264039690100135771088267096353189112711653552474916140702592056459641409763813523295385137373565581109489286029291705088903201553867369519467251892373777468596807925095684298488402102664055051055967953426962280229866293494614204294843011562585834999928543488515335643809747599915263697663360934848082351515620547283130936393238513310432558623066768770651174064982395678144429105281393580945155312072870694991438983975899023065117273719829758673996393527688809631542832680299952414241238731643073374956098745415952073471174344710665176442992237870493469780611529942217073189393621708943333807996910522795619196191013923125702638486605803277501089055519286576008311544155993666532642794472658694799137786328666634396795154350978586403516652339302656947251646442587324117598241410841434068206357319316601335773718270175500995359170847556308858404891459007693340445513334582345978727034103248361965096120776763041177768098565026150903406034169968171848700054318282784611086683660153415306997655053009936845163125696086972335028842794701264308871012680757559866425052978276689367247768197541179455995251235272112375807316397845681679565349545893724051730359266553599674290038229163875835551331458405769627179433918497403497871317594367481924061188571537348201654891064900278112668434390642138891419454959906628782807888586540940581198466731449668030923588633306493052381693323568169134749344068368742497440611410288244782934344896836913419887989669860336138669663503746290428901079587136922283387717352222480206124166357428604131891855603182359455562377033071220518589505056907859231135602407465961366772181941139289898275951379397434111559959063323361330532168133285784103762452126805247873419782835419672759588295113695840451817930039212707663965954786580975347475865458311042796836892824060691553119386573841762549327114447827772796943869548506397228276120123906813583147395214824581693591110767730475106610274120527504815915451014996251102253093541544236785581861541912254165028739619878687989166612040755150613359405069918281032411958315352795135982911479424042804622228294390021985738040075898728776584024046372069603733299694792994497474324518467482048949095389804039981327772158735809292120788612138336392386431429051636392189559156868118626627979808782029625575710516601107796678449513280878606074530126172841904855793125047244912874816787663423025877444681167757704057237816641517546412800782268238499605540570840162416478193204262367559962283131302784731478606884834067683842515772015660749694256661945970314980266863245881264006047058342437127992141317927635865846992893433573217057991009280626089136165309255149620111925043297468042762186450241396234032844358687087678367754451170610194690301486315177707485109269650684060795698761498656269129792343578492596055296253252600545718220382308506779181015604925452615158948873118314698288580627911811770203768843266526075532002208045230849802165515175760963050842744730119306649616567218194710429598568834881737984978949648551411309543817421270070338108738442413909186213383737074586376428908012939627761080640178260993382449656329245885343362313422363702375587701382804612534925090362918018184779464614751253352184781154937385362892066133200315645085407564346896699661457783864154753747174650051739169475964045085823886508307291047960728491844163444527311262136551538503888401288369470876582036042962312097800908254037576232851951428896781422369828331597040852930709257840490424962412685763540549853030902741993722726690754412381147543607050482482755836187561082402032598999662011751121537664287652038344921004503960325231536376897257678652477436319611908142261274205029322961816038698927451636709437708922545628998656531725433157608188418905549006726540914829573577217907743648934376704110217564784889767771319618783180382266003491900909477720470313797887965990952959745309054784888990065799893174917584531764972524699124618727715839928424034786988406773923602690936580924299452044856119499909573155144161712374954555071335728418402444893339578246535943253060732467359691857032143379397490432128226536199995889791246548321728705501927778102680809084215948970962614248075304248820818087647116384148678858717894976304195961343275316651992703835783721467464223640440087804017533757001654939773513050966834173965603116086428233365148245183280044423455728067572777502972472560270866859808901614413344386236938857640063390778723104345027434212951678238391399320958406954983679771505134677625885364141561813855058676640067397128644186901552123834199805395367801400937260780203699197020202994977909650953712574991097606622069118790138811662146702636656379071048270692607533652750409728993278858386370008106004660803605713931578122583451268305668021707072713297954800203477834491886770914517347072622726424041152006927594600153147678716025340323238154800601932516084611687922586854454904191488399762446279435061009179037494263949593014840298062656644484127977871583307751621065899298345828926535167134853856903186781672710558009070887907799291229804389950983918225408072323759501640593867190376582072810322902059116591979425130677567912744061423964948258753279362187482189675055665753457981805252902495384770347734567060740525839153309968336358715053407700260224268319770896370176368143148680038008599966088192706590852468098213996681668170341852506467014881541724290171501657146043321971948396422670179932154960155507134135674593613861091707617984407618891286349001365452034695639788519343337219491547740040457709680144762557204578308161395711045654781365745205753166692741836611261137593810344487132181321389679699067006284410592080081553752124629132876578288609065550083593657391481001504424362588479011106512619924084338726914909728885187208830316957020080908893397951891592186004396291663144142484852542022157365860387634545569818466075564849916424966902459715412309576253088835937945018510443469388015503177780343603956699205515607267932388577083000713179803762915357488623962702776345294458853348860944554073762945675883782848208623134197212094405981191354572847722488837863618624133440687490774464487269142330742220147070168261393187185868955267580358549448335733302430616583791270088151824473042009125564128367621941775000768191579388135788729443873498803963815887834843352777386856952667635246676897934388808174748472317288617647719777437323974964059475443212726915379082899804434460839468342159311415381178080176497906922067160576495597745403637210211653139567517860502764065050328586836991520195018758135420330666979462466871623389195943707029733316090972889548879434998744547393295710674243033884513548773371108483739419697762265684769086396862404705276263801315652021014801279456814214792716385540223206814375681808747156064768732112437177167193480234494800257538694619295273167858497876751941008141557702805008401978415367214438426220118693070120199066051822206218350489606166435540130198533381223538729038740571865671086594934770923515518056887596342208266852133434411625183888405288663870304341403658841989119763058455424416403046693811101296003536623040186020498200082122215538806479916156350239512764065603511497402299779980306661211921989375729668015703020437975389054456099612652500289960279240384342054492464145478053766010954729185382433373137664249859445006435694905084529541790685338518157400486010453484760484164718960075859793917259580420225579566800811451822494348943473274679785057120262326717683164090047831276223632135013955534669877872072035127612472106490177779308459750111424827308812029083712040173490726943314637319404203074629852155724450505588024629692780025945193712109634751518083562990278765899325134561861379389677034610734584201211685020795133428141526697602650718985973002470910232189082093324751797267106857031286309507006391101756733525971565235672449402368105252528661602985780182408947160477601936128157465847883434725845033311120759354194017202623301315797680174785167589598166319099257201917253158903148754474468534681281941640703262447661454589200823708725989436995001344030222234949693882318311803796454035536408940478517666860618385605632851150347756849743496347619299874407689368568052936134508441887803238607009063968139210163675058534717725145149292603702274096867138141934942922127833494368073186554404894000055943758814826701534482814491921741571102307764202014046995725074858206524624614981803659950076896023608860853716005536845890936030569725846852612290313309799285378378375535586161945706758662389802777622900411230459374176094469911103571807950001724687561055785669120776445150139798768901291675735100431298665352202354566427519284436112225993454027251452168296358030646718329502212030200829666511621624073740780523045023400593819616208959225462887220885525039166355967103753862761607494225197461913552473069310862500689125506252618151099668876528812488609812200986609567395522292367652603613669361439392946329302571335141819410715994623815692228947657754934590814888829043357421255749564659399727205149495181458800573815734684611461277610356845409927462147743550956245023841023414470140253431406753402067926024248148841134167250979408002999413560059817131513320776820023992625251695218495562753940004168222931060658693771568178628921922223947266489381889777153234685285283915845396160012647272766505225359327863919550173199108051913813973835832930617619772478103235041639501759335245419271838653079652773262121998642635494811691849165497076098075968201108723622053719058237645704148427294322662664113426934742539813007816463166526197411051414599411965248929052983723169436215160072671765621872204491836920298819314530714109812104190662138730334338610650583952530915386032217248817884213673718877028039826912622367350381407729004811686237381548758782307743929692875027811127533291871136450224216619710027140630090639019268651492414118832208529280848687905147089936265265612379201782594236881600177696004125155319380358313416589496236869549855880751771816633183447245242807388031931053583597734661929465064697850929372374242418833923072929214170484651053335887937408303688934491204761719048706765207122457491741633297034849035619892525539946384165257159627187887994038851540308942717978546354490644650715426304331549326540585062774548040616925042547343453532323428047470900467418069714944201598094790651163682127180807772359818432163388929961480426253801051684664418274901704809385382829790961077365036312131392650258028311258808223795030653467971932372503695518503533283786202881545128745827619089114478350047226420662645351614475120623493968968739361482487345886105209000419146280037781924302059176954929051205756250240748183315630045406169990064939850539305371921898930134411892127953842406956583723622284767675343196747455508209500216775026398866446899489274094644003765966137708543806039030315847672732535624858944027639567411674661183011648366651686827692954517176184584940371032375775954201149876396025088788344596942313893585020129351015061905381646682668710488972430235629749361131922583055385438727072608352615035615035638306156375890573059912929239193869758829426165985139385157480695073034097281556957626102576740464472634007331795989227382198602461030197769271476806207887154235716786915881844800216468256275873225446507273662063302303861868059295772534246549468036802345203696827546773485749599853213609890301881354421239420182691326106907571080121705362352894697785063182266364719188054286511719775482527745120855412332876967530455730370615482891427947845220150205028667156168679603587536477228044603991741667985580226706763429224625399529453407289230305292617606086385075703956863341375284830701819693365936195583795465432513667494827603306958825192226418811456865271881408744874262377127533396579671846356441796900750710348365393194821988767394252476389622694782153628989840032928659293219655361329257929631783976267804302128523553918275827913017876783897325990139905797091528804758211985917692119866292813978894679341616500131236895393657113907312020568454954162581670593152466222690119632822896154875012683286734195941963812135162286561919047689326473378744442239367909237409530420880409537918133156641572074284285561144290102983945704763916947836871857327260643413477265110306747485423316141313587660743266221308059880925326541698573294946244523754934527142064177484987709111814657736248692683191894169750452203010472686264367149359899238714019270468730621978706111175782912104259057770627243271694013351560190003747210504673224479070260312091043079112465575759502069737781557820382998277387491111543872175181321808177900986046826453684427475174680458807399905680412275353655731296755853975274798215421112996188850698800223953727504766388112466039922499170593514906451285837618605897272965733401346439277956980178796199734083231564890040684119734096453021317332377251803027389473821732250322132977217729390757715411518610105309780741576899355351199404760725135513741337292395272755923881473614646399019819703418010944759443704235708661952662081315170387006170627184355207265926249870796945152580614557042128778850679859927620750932038459642514755250187818525197085933717847913687049731397534826595745827536102741879122419570069040795073193406423523603632415188752459203145200783983552719561301018672021677016328913978058342548608349387114938957176818376880272442288261047146050703308790082217409625208251045737600679461502247054977253485226083000594729106690182858022351902468948158617896965515871530808680180768030078155435127135685915577222983167760143206473060115806450231399170858968609027800590036418494032692328121633742642166106001987339552373039512567459439621507643883085484481120989606095179973924598184004973648003306105893800183932923585789213359477112111321961893262451411753328836032596836226122262781807466107596529690092544949405073536757196887816975530174741867062870192037528715355957897297697073749757283022426653608551436786206355425697904745154249171505011427466250777608131811435131138010812676699894261513027104582901845775819535390703616096536209447372128421312941970504085533960307717075427911762197135061471658568632181974944107634065375701009079310582008930772772608816533051326427147058073766371994393882323878986514797977966148316330873547416883623802699917509429123374968995514588271981600349255858107107519751132715825447928719987536505119869945111629311383035184487913560719826942659584972517227509909074452122226806406525588722114425480667693812092877518770759598633362776750460136852332138287123675102998532668646388574315571152361201193828506384829555507457582201955782849448361038203284269064511602291573698573434702391844767399055640043975541077458955114385038046872440370493755787387013650915504802767665477497706641206204014761483962099087879842647739041071656306998444579205808710961411481712645697752542434684025861738350850017033335436951294640659798163160410984341476701022967366662179149188614375231462050041351406943272926478915833741025149667344963147514214203612698547944229722703905535509636783301772609274084075678854710214807053119508594200569511869039717316600167232103355325511909787110426951443465567251833410005022100983340147102645956757978035354772008190382914179544392592489594653320294401934754090520276996978767194251539479135962972059962891286276704317383495908167119968926677960928758380153962023681754118609050950748405177016001872023809560311777364952946752478152009961134835248920617332413401518111048685680924007319074116366621464173102501173494425948819119448416561148351402876055810896378538852734317192981431282422383741445163268295988210710434795071498617058063951708893170429415996879434913703106022510577164862575984471287863647402465646642721917795297516172526249439666914574677486905609307658636001761809258451418144677101685578270957676091774833557444783724307745151496204890994462953053375557536690058725649269687333693169321364368087823910070722808353679419812297479845454941699964919487556323213828995435010050044861260479063181684775517140744004898962408800992029736162492944138493761403824310946285302323559049012585856558056018401884742017702063574400932647648798859793880309850773247136427147979482132220155493795745349762203750594863287525955379594937434508536587441210907402084165935546193694581939391404610478029921461061099402077856345899934963783574535582436580419644208925263410228196631078531841706485201108729704166175589077750633717689732435972955678152579440692053886963687645943889674676747265923180036876280047842056672230091621560093416072778730237099121142375989576354262640881672138737957184292327986071990597235393260356321834295837452790274901318467295129533036858567724338243684520100302585737606002498429100489988907916967230974764706211225695605922071076449435349904191301930563872128501435334843352362913658453611035369263247631076061258677812235714766287019547644731761538816225059840049912336910377512183512538253477778230246667878310056258415935283763659931051940500980098483754114376476429448963958345484002632737735983385107156237369218796751273305693408939531513858696078191654459777551364525636172654338854100351890531882999037753098912030262351391044826927903015295584376310136506713612637768528266876299102558371061568838029151344023768220331494232672765204184698659696839752637026018496160167558787731342372117872188977783234028965627944172291897629519649811855196883537262961970292849897028859455830990375192969441484270164579429010797489038685861490479159939204380063997944740236285708227167462211889277089833659686888713855010285893112581132104857654339567403411666121182842847288738401169484966590482256816528385299536182995855290963149245229829586782010865200209163266042309891754997251684098136002319537036992793037216427515075165835925380949262986419883161296579817017642239964375014884703461755826517716243573887760022795718712436721069907608888879663876840712339872349944065427705460131050063493693548839996816500158781419914147246847509073541274466632718248108303077053907102025984329597164822931046046894840051493423724572480601745601282521702262197678601288780184418833776441706905637962872823575115619212104425481657239488188655250377576535580761935230465888875187415868590230812470278616208920796982552986027421172432770108331635000486036133554896339003375261373275189690101484036679296317158359006784845681633662624802862446492127222669027282668766085872574200296500829681937960826858588129267761251716228483364239712974556975475247293134068868519011047381682305147616549856517000041240627294386073063741478994989428206752613381363338610761547830676085021348812582922574946786172689178560964228760201288891273520066971740908283954181912534782119150931703606508940967992333441951485755749845500019092842240312773984510714182151161540491271281226668340595807287854794930929172365268825103504175118000996167669518517162318674359849577406020050052946109876081884085445019838619902942912452967620869960734785954254100273798500714016122392895770313725875929870485339158254491369233307993419685056374141989366672653537259265696200803491259253202393450412538796294394242291627199021473615221183737839619940337160987434186410876129305260157061599064484268142413787069620848954716200888707011272302161451147354248416265142391768477760045413468794274765788121647762331410361988368767446567020861439128296492217473429321659306665711536259835695600514365123293056479561077031505044556542127819711741016894090721422834919755277491183112105706659470757057559486583662870550139977018767991512737233872435451459205314161037904938969740356484508137839888265449879367821018188009962872567075508935366421765052790796954810804687123103529788739454734372457161296395586302303712557882195399863807720313958063691232274829576622552563609601625652194090730265996685224493084006644078616801734056017405189801820882515672737779883477636966511114221578337039041925750460096660673413243000598498467546689116623542111152314918703456436456546783771526541214237685657722538477145709813941359433266170492368733247615185167115092716269534610472693133666089546175181353718153758947737714141907104929727841717543598764175505530258255989878007182224981357669325190165399198343547511260280348723702710743997577709629718791826023609459558720828185790110543326646766476766035987791196035376476513996388746524194084655039936430388992271419499774508165521289755883209422788826766763839291031924239294691960168456601032514241503567745007177182244131497300758711958336368851008801837810140961208213389234535254110537536353347380893987384536720404922909220486811933479347770260939911930659948710241318411400607444534507029638165473465826184178051655812605476228623741542772059888762503311575210445075194454606400159280544107988802502779357286902396632120773757076246321296377591645915441567017414890426685937144875980164543491892595382237750070361523905426759187868628541239613777868617303328077452519638554475434407257265273988469054383944265297090613108620774663475085891720082989922551469760943744278955881495343994243644253795805424741460107267021195116681909118119278149591381955671891087464255966138500540190981111705442920729400000984007407715880287453986950947513733422795508904667685764472512341948095381094074025534458133931213462943164170845837165561528230492237572078341791574017671001100459877891900478982690977116595373276048783066917507610730505147770233629736675457433065452305998287230300080838360995726789763419633892256059448456155797827242739638818990100203189154443241273499681090470390910988909266540614748844694137736287993147441825321112868385385680250052779221273508418671387921952473193169654366027922657331454164569053626020069680808993917736490629975796935108590033697199037345740892867853594940774309298201381835423980642819548523250197453652521534878767545746633121182737800556778896867549707335118661726617745584901360227951568508066607314559448155663094232519640781629756732068324712078427896454659649134742245048514707299906644045155781698689797891062166548313013338552633772917179325414501656101399162205685115628716215470366420369659001231064671689668775110996142940696365595383496665054499898137660013700015985619144626693579443374686038756873689424057831612650545835698603515407025368529327088702566427459951429000326779481983115873247944141279198870763054559353791221369399946274152484040567145554964935525096949061633600233953654477318543451909638363490150788066103003178215293946802300352366128604794027447056188695812963909145207608052206873515677260783382909287559363990288314592136597565392682063088258612483880151664764008857616438585632716194973906664428772042784578986855845287593404555663004189006163650374829686216564877747232262647781838053696999383043490999513469569039531457469324711686099089985059805682689893080964894892342181983282865179718862782125483256502909283441790087564428918423260106881449849691934607187765291038852418185576528400614930405962658388885462318833611875598588812496189765992349487622774165301284424255542975187768563675136889023630380991475571551195280737495809980994272188063393245896313317397348017345072674855000117890827623604020927126750356267034575861433134111367712684677192431794605038531206993900182316933346233011128121583793772244860174329737684621432797210671540626699099617676559349648362138049060078905408939886080096083463267132208720715318504192188921703990246287041952030800621123702179406081524484145629794285605178336396645616167640474736882860215729028070268637616921695839226545380390592538514945972234660025518370053254724713491583675323339518060316442650288089052407069094718598603239061224459246879204163218087620309638494754526009397528151352021837569009904956160776275893565699431760508527660392236358391761741502098008386446818877361442981507310806220862366229743943552025321307170251569185030601125160127036423216285026973740513148370814389105319339582739111645428914347034206861827232326817114659806119107923286792243046223889091266245862049722296206963868515368711064820602889128989176098492987564719463547712756790804826952125219115370506037763062523584586972428712313833541493402454973011077747648987556583843920586330602298735846270267219571951224827990510271114611397145514099545477982233960302473247935298954319551683496295012620009003374896512047820174438139855051731121179236310467952419487808644453702266680354373265855168675365778487344777804929973592891389612530812370838854550543221074968966539374078505055474076271642695774458690336854554136325327812075677826682937192846103875808308608706529004993652110647461542549775109109880275069260354550483975951432129660333894274639930696887805404464253451686753399162081348856998692463654587329767274074268238312447450406026259651755443043269938615131454769663974301258804925481548792460490672722939343535323271930701471677648954820766806699932095625761821788827552865130062167878535506785343980689292115112621548183785576593945953726263721968703961256948993818414783863427500888382282419819367661374615677059175346341185447957118524139832537909982218442530089587353154557064559459082332817989841293727788514052365157237562631705827804412221217318329207142870768027917742410997654317326756993508377715283689365899105554356237669711078964318071679138253370005359268657859763684608203846096114998848301477537373287428760744169755706031717375321186860270878768170718737034672604478599631710854137228873748973085975165116774233832560196293651329077462643912121754071399658603820174157333171679678203055606256348795939739032866125250628246696639922496526450139911445769947555502243161650540411815383545168748419496889735909935144507019306654469896279692994680617774921437426932628942784793316989327655501416703424804916465090903108097286800431682441201970695593447049245607836451247092893131850659198241130055786368884605733575717472221478492703747136529159496374891794656061325685378111341866197371523804241822456944310033760499992961829294246069988842774444938432511097470997519781759438657393096151475957318521989261816917868479486928917564100803609653304859964147880523570883968211374025912688858826126114089138250400866445641918352621633808752205455536313354507656619764492759913612765658554407308457707083530930810233784117319544669718102667478043331392709363771787286049070626964377343493191752119293941902890090305100031495935307535904901026804958706979925234730554040407302079502305495973125687559348251663931835439146789430957089131603297860869081735109009583851375600291715624256264246075799523901624937074351533946781541686348359755417233626412044010466520737136558649291744388555652270784804455999583447742733932995624769459891188764610643898768352463410216007744005850325282005966542010932249981454235058980375790436695357132511701889551239294733873730713377166581198596674256217980309231913391890096681580417834112287390410657861243416269318522241854864602118040548024584565540831058996580466454729791018330967394880977306637367182063308042219103473572121784673906911720991891823117569613850650217144491097853954635846110744901913894978710869918131518459009867131565605866036875029034903711196099773956620478988087967215420544826160910164199052094759967826049479848499982055080477350539816190497835223645142868202656511295629248598178848471365222053898028207174068875961345075227812806235475083615631097596258464338836647928089422340183989449647699522951875601726356025211834573242526600209538702252777547240495873071361219862559359100857202695768551193896728229052783102601011751239980758470172719916518855888156405963158793740478188058834980935744471520152902885672867086391434729291239466559131133430727393764143243266695480298865788256542231126412416528705171962593702246122396646390849550198682921925133231079735093280438312771188950084420246719030775192972333477121173148188370983899161129844824944855304914062924842421969507153648562821131824447668250011500705256063170733765839559484893766232123271220606989849120048664143255506483930990027423142385456627858599436675817227073233434873875941903258115557597007290781749594929401301646048466308812850227089450404715342060400106250888601403861486506792771721125979536228335538232049042745965966964572292722063642273060214166967847655067749495609195495873844512977356686505928571096880110640281843884261947682387837274480816224373398123129782782706506981394424066771472560192603794881191845350213364333971900603470354221404453083574656624779170645681158733093533313781622537415645903182833852876299334615436066985660836487078177437485884640540350887715873665131388095023959781473179095708345798901167831792121985415307380596203283670533598094248513809103462753536707873497147449988153952929116912990085538202989735095899711472507806633306876868873187405882595978417434088259116308945075527253137236239825359453455309264275449357960243991341568464619075574878589053956597246682552706964987645352023103959559366212290469756893633583157879037375794146475477950539452438837462461610837669843519292440188412514333541714289412784094222519998058234363954724736844616046593034566217313032796105353515811382896949604498579472315663499390098778282949088796582158626744710310844527178398476827803682362798254964401574502789549418078658836001884126756505535181057452641096042530918638669402069142909871248396708158530690313870096396558525245331018840250665845157507466649870553572134551024736572354481116570113553493376557876887774811261931088751122412709382505937617362292687168659308521937403280295358591357320310743496326523397102028424806878435319247804931735747276362842793783182444351626219404588422764201654251282975273068388283655008849568551391898177251894687781075823084891744621895074982891244444381701765509310526384004250577974281130413074401852066350467586839878515282801022169308100621245212851116529392988207361302593135447549682258695669781254800009972674371562955929152689653512730163013417889637436136429349159156175384241010841519847638434714788473155806019809592371010329023456108187209504559983808042030547027488098421870043895330106442680428244682404452282460704237945143292386514757744755982864074179464120837804558349771478209807504618436226302690828340540765527872647935758290241335950664397719721882901228363362491232670175105030986729211049537929770117055269607338163455062622644492909696631693940470711708651775047481553251014163151052990505781392340410204205846708729212051188109348459623403969536866146471881042345425211290920987742771407937453191643852963935365877688338341598688400675955094632506411687544694390272871144329509823774745400342798652658453081211417642184386307469280126573197303798060434011940259508471575500613779306046078853609652871230421213350589455487831496546026151208604334125016789490276787070711643715571798630976516632789771478616814197293438876910949450530576077227864154611094768983971091346526489255071660939643939114453500944245461461202310449386057453610034809117866056778340277295786114784467212123640009806296407136001489395623982343096680946552943481490051707931707152075991149863788732729478377511325179443768848700704755164034828814059724446167417065998243440554192152616252630594521182435796981037556987177018000696835654344439009608200328536934280715650536589881035474236263903463362365311536575722497126456564908953879461793961241433960618184621759671797280318113278037814001911612652757983468664004361164121245511573517682073648410316037238947676937355608533371581357097395716679291378202133767123336041745063833348059260611716533055006351473016728107882477563183934961756230674594295481821559102647039698660562016104173757658018967550350853703377377033351905461626337050465762027251209642150046130690068657523824610997494920148977994647854046939862547470293760669405653333508041329212895906438166129508536207343943111762676277483026085593150741612497706943736330470082002181992768447901468976902079763505214356826023860788355411573281189304766098817810924008812798806447580136745773999750951384792217588416642935790315868498777490320909390305240601469061918123411894313925986853799228493783860544064040206560690193897283980166844670844211302921930275513156589297595574187306702409685034016859334833711521964719944331511509161897954411813973792753215785395301383236706930623425143776992238803664016938168400356702807807777899698241317412338562982684312855487746561246498958520704245168884193098858069976057830978009587644971769437617277776981266664077037719711370258167524541337506003803275609802989467589112998976993471132093042295156931497928960851071779930381336896885856868003700160389066186408339470461624156264785519355313318644575999250189694829154437648326546163461665143285552448665950766174049298614807290873266295058053795628681348545965684143359139274834175073352946963514890539868163604192318935571417836522948290986132558242969718275466075944624047675469883361436620949771866685412206018233009428384301673754283167713589544541270186591881646726868740111521887550895191206612845859510345544697595239149288781953720041559549438114940693800167164020001417083832120050108515735527016863700691106638652962673248282647113802392571792741899754094751640840438220587446737160508628132201209864134230050749786650012690771443722970510902635846840495046305342358410413294164748436322893831587582733460438861677813077648668652709645052991296654351191653168693660477331348860635531215874220832793429863885517617226408520967803544545953064220445679762786228922730223497824679640778460013013986630980743950337425446404156225721062413871841101733602191461360399685326525300611056667591041917579859984100644775735201802895787833209557999200310588953302555375520116910592266910787537107020682117219499499447061954878293273569043285922034035926684102382603809480151663299849201757664751141786225895355760709945411989874745838887198207824987318463059675086016817505974221650913804835399187487749860536312331493914277897524261775249575041056937631407841825393477847447513711968498528614997075259121250702406712463899977367751907945246033772293401283371015526286755938853964543046850260694960178300554756402741301826739244500899009063269099457738257817568264861259596085546157308575633855947144708093856738498598774391371780520450709522840466566268406181797447240816248125520877787381144544747103772189162548841479251045125844165408644393319060297551495609555629177085802883054539736539574571690844733621913502497099888706633468429482939125961975131043900058086508197002629173459686151623382622575001690747556324849028682636915905690225930599494153040184309512124755521942418919568602600695843588296199827525296966747090972807165878107035602438768605070904855849514690799030695252604937531653954708697589601468320877106445488256639548631628219065411215946096098590968339948082665965713849657771157931799944249696091378411293020921258668530481616223418396076845330344705053341776220453265844603134911939656080398495972769111076628741602436687069925794619526929956087399679266212282673075607351877950614570215762233866399631672927183184842463863439668445598347674848235993183547784896502213710707094657093049960590037750838616710806058132395888537148270528560785978209054124298589787732503533963809592332717341218120537217868979130282533260897720165637510149208833979850880235330927372643281967390497513955549129226924769356356417319050069317013830948168000226139163087621740568089532031053267037313110384173429147442589381529342817842175072947262853638670246278158572656205755192225859262763441933941523530628887587166540697964208990028305625732183497531364057532001713735657767916515014590804234049772028366933709956399778568412737844183619341130845535694677973172160533583072543330021637238426624777975718818213439506286664909490126949633772600241704066723263135126889923221407481769825581793037466952364114643291981133239995786845145865823946101247682189291543854044588174423666826582297031805838922111893444259195089613221357741332874998998979136290383138150247176174667841430519479730149917547420001251539250012370557075118176770296400737965213974267835059815592874315700966823949247955235794820533527883299274536700407890668379417444834496602647397648095349124191438414083146771836499480602241814333799906995444890081295861309711626894243733314227790254112159945264661235237648315093971684855425093018688089525436279479963800909309264479405524255531402726563711596662453434795329924846908946695752603286139005425930348781124222544257332290212286081212588013611983871359591437878435730389892455131875297358208560438417755018217794876074127256525695841301188615853197732248867748944100005898683269049244442389450037571057696967624463667142923540007841696968338311701105125879918424358031235351633169328647362401068570122969869318759466739313239496060623414132806835463484678937833327953946868427223690822869600211433397441916092815264909667243460072056426774276961594297187580766895694670619812390440126921277551794668845277794856277800365682644602406766921214671750220646094996177726345744015477243327489298775373417737032374862290922647174147932503572274076289001889574102350767728575885209085876729268742196638179187714596300327080894754508229501437050297340079776129068701075634214324021941270337733133955926758451582348418760095232838612868415316034956351059581060017076387843531676977244942793577123188335656418054796538061389738669882973077024176812440309117009259317973208880333436081645286504135981598692120263085880777660362134683251619959516830872691150447010150717810810364997545479988275093954973426334560547316797814827188873761917188614795427108938863767496968316277027833692613706882754692076845563121667319891187421803350595144378331363228561767065714899240196778137671326947252580808782848656316392246398834519282367039559963051942961105021732300076658760832668011390861068793202361569382739764715634398899597376472497754627953767960371999475537243856057319207875001366079596831590293071575056979788460998167898428068706460293675194577562173845862164321158995507739027726032436927675880336548772435916660761405007493045131984824214605112122795268203261248547370434115913619222908644835693140373896477491657397157033729445874182307279176049353721994103881763601916534498946658580330360781504280465168504699091673772655713851031561900985992864378563996299891603547683122314983172650863071621657929698932861854099937584029660544145079373291275993852085062902779176003517156872469189923464326224086206434180523926626452470609573847778380132742579740748394582790675577113287783604131539358789057805619039989135729923899627359415893194542137881069331820851772588475633698968335689743840476982930003921247425124974075919079760166849895163876019352520606242024957598648748449136903274085579065927595111912857012856901076683317929787529207126170343700108100129385520005266381081089657692841369459477769733953789809398415073149917344525747221497691758957978612280546070068643769347203824004023371362798618209456252634171110585187491556287313691457871814941269834995428890062930384351507785370138530463759207049730561538909005960549809040578094653757175617515474655240138339213937086398550268664836823871990136100886207793336771288453862719491610475794694810377564199910509576654572808980258250448574351097942030495284465081410596008824444523810117584164883784984807671964874788872196348521030498483081974033107479378987342864799495117306164216940621821131661689888255828387925885652896141447467043341733973832959566514776586873170871924431018306504114584983020116573140006364548093391867969253582740801186432703045150604969219602890226054664466444040245100703681717824488076896162232354972777452374661417954801535148637288296738750811475827334538814415965500883619041344080249708275139635669174569519228720787070858024982088563963996121225762344320715937401571132680335196779354587716127866226269180514653642542606685681853022846731902347254055583808215750753814218957707375200265600488112925302364446376796291402301482477679336691384153207979385275796398708259297664415464279999436705994992665837732276215868694303856993514425958036726826690557279526225616897775046474352684369075862758580855668127224304765187849876590101485295340359227127665416193586285459653529950323057525126322895589053246757394801576183240524795382275425591707048431565225256649696607157729883659992970541233384515885623991487717587993407281719879415697977538116445772781531797410187085700835359503360560233331029708016776673484727682522124967908856459249972881364813823853767919490098125147779492523936114854785786908260991858468112983813607917754403024971644984698319934430672562048149095174258908939622942233031949904512530994728969223488498992611806221286242961785301365891240950927753164914697494574195441101629383393795221717709199118752624560220759094113482772700957008295165709287851820964587579931294954073639202386247097231611325070441442757965412379415392388996029480556079932746782171021930353884293940635428374400005653730854313377740300351358348511010324074189048982144890122788473749819803625522220793316720064104731770784864109592202643461825253462144337987776490868454163179455952361830399146548805282314228486829209741726320306509652753883265496484433166571157235625946265912563165765296410356473136262309495511334595836125065125831828213131186855599409830620273921661664884785989654016273397982860928719752898283288376571478312472577309557048987642302145021807909832643189499447821632524788236445696312704407974073654503723991986959442731640135442636249403091405043247549396865970970378304976409232245160953193988660491398687574480869853390932184444198458567259396907546020588606124330084167151965740733492852441415302550815875073552143824848515142329369351047198784013144667797153416625594774603416734967569125332941276332863262090050858597858945597214151902299281248447368925853243330221267569080180448086957270983870055200238595757210867972587089933828543056043951701042419112516414382991639230060422272278358602969453250855178081326149498791324953204115328186759546771143650048126951776028520598414473191098158762654101365883543582032616915698916202905851533680866950738934635910229323526315239438435263984263932291177379483768905188723257133440058489861096454724514159782173449516732793825832542442054076081345603591787989537094974035159020746265112196313413195300634418519170906830109869645197604104649293268544917624016708530305308888815075222060927272440523937351330898967102880127006482948860906105925687628734181855118323023696432550997916493773274639950964092098049891783243715744660181718175438008691479574732247508476894365084559265229192344019207503359239753548511851958901544913242955670227476551438017833529902857335618703018718430465704288842014512469059206593132231053266724355590235481836074413648447184003121230162200282922574173775238374728103237076627442640553228780615686953117017241884405182248797560597793577715197851932490489775452477356011464620626566262788323751182381767074077182897851937519559948304059105014494820032630852040599816478107234389058483569766742284027565563717671933779144140642080328310940929025313453387022940855264862904828601424530748839168825198435329866961759829597158325118094112672794326706993493382602382480783109592933478959513349462104822403526345006825153382871506309017489489962094848211170317920899604421492761402043832252960933346032241592368583183000714286208464513269431527941539861196814558204514136242576854795982270740768469590615079334890928319780686488427376589773014937182943771316362232905849008991824127362103552988909548189064607562618242627404397146455509411487727271214124303880839890862478228804881975835062443811489294702291681798332724673772709138044917355832650998459368956326026747361684668738182557417131037652825505956377911408398821989565806736737180649828540184189462459572257667033175619811079250325580165874996683036586201928623452141045038284656674653758939288477598618357412220766314693451295769357215044805235519792716172714021821799442987698526744203922649001837638238960564099313314476753999590292893157041789827867946737404654705073470868733514688185340596630655064517179373280833686405877741232611087338138644365847239591785284548087694991098477834401976610220898166093397072002526912950950735198233622623479590252630959334633805974539565335151771241401546939114568723469313391730176354851282681058123283704898642757309595578098127974117285619185205398430198164803777211197172417631208331282962968797546678436148959641352537559820466303367467576623247204052100042136036572364152447012030355818709277433573333722928208864757108556170109560018315822638120226727621178424650795509458400552141831557578163006793566962659546787538619706506807299162699078434504640410100639108392766756410228649309014838192101451794365453067843806966957181100399796434336893941421326757401445327434708853510759599244689399721416106680489885629613572154617528226375768225913269217281756975563633788592469141307112157393661806594674550946743939854337452433452025761521406792068212761266871947168479870430008041581019860671568491133594113734428370171800639864715615776297097880024287484724147757741895732526775397642201827083461550096995181905538410007043123503896147387586256220342387484116608748404034873972942523659297171132394101392584377584058323652805604193272411006990247128479412603881686601947538254573333319472242087258942813392785898209537865388098039869824328978710296803786674529351844501130496481458623261390763663203333204674782111171525681933228011496009324629809190402241973528014311298224704299882992592846453480843834845318791246691260290281837978579717999041824648639536831715460956940123662274096932838525574500668430315498061438522629631913122387681058512741168790121165981214568436846464370521727098323926212930966167790270005024308458477288813209379914930195188956141840892073007296181899716938550221497984850929803678074844781233948143930553178032874633542503455828533007941289629700795896070034606614197995190466769833840684867779375946905789951662791445787725557731159700560643157791105115264352735678647386154179577491343265522176313149720733506343791173177371502509559071215455735591102743289320102015524557032502358967357864418164314017942931035615982820114462509428868008928532486187831828397088890374315315308483085194797802159525673577688129322850136152209123611335575789159598579332182738636024840193747066716723164711252683038278377479189997088954216267169567309479608404418398254247785402317518224594672321825960285822455853275091814645863726059993452097004559926632737528154874269573225283788022178808109287625727394398788887961818687502714880841161852832722276468210733008877760066423255860667569409763855564913522025787131729330904200836610776314946138092431273167943772494414868306397692765869777065023352339510736083713109894647087591034729638181102313192968419583438685258381957301467454505089636856542007595644303133725477154865316980791747997273324487356141690165401083765283917986898896634937802414173314069629244285932071840737115667879712451034192072116835584548993150661151083638043438329804217212682862024618951664040774127372603790807247875314118487571582320205233201561093382035362350654087035587662492781771249593932069489805183688500218211515046138180923753021690540754142740561550038104395855623600841216974594546104043049060312756209895121264972972570615082274252544936623669373179419303004464543827705439169120534310872145744537958937532626677386287251772162285836597278740882444955354045352828727795044984722033082352436852725297956166831022845347430967476582419391775120311577453282470980362512617802479986971558467053819061265943054920130005423269907607908079676722802147518991109759176550056020683848657866019254361016605839697736115541674019162654544261316496331658205104405433745776944370256233940077056737821051955729023465751051995221232590974834459583583542543908571833878719224191666974629833876884341517916391017208428599087456724201651674566869514088979620432624701516184529431007099769638455607385271581161721453532016581359087880230113572296832271794177256581800086961369744746957914358640045766672689234949594468708658412616789336599224953901282951415897338652260751093490798775191506538070433963299566454167949317937671066357392071340910814478467362117531780487042717269579223230925150926746660261031151483157446671979122981557216884382945606781499762772900487247311498951551575827554998617499244927220173504284789675011851358590568540168899252606859995546141305711248237944641134060690049124934431694759187445463317770484790453819679244187094398745249657181576622132731509314419041588500105324597558683959579200301953225412405196120548824901339571153868971805447311055556571231528496871135995903334469313660369763249196375550704196735170131344397260723978456754154062985458364611154076228019148316277426270999831526949126877240819181935010779060408658199750752830818601079933432620316554955243340445962522327339736087727456192539790062329657399167136782560013396545259910945302207434116222497692561116029476664590469308968468639855094640124800818898114122367259844933333176958450256480869822311980413896301542369230224657424491040057068970312640944268225143546207966666680542920296917728952964948810185314125315571568811668437552127567329507008137310362691314111641608570332422562578665818568935349033404104393085810789856314855828093933856859720366634592386231035849018170391705126888612955024050260048543864847416209793719439501774320432686753209251188737746088547384783130476311288257554228792204780958198675798874833730186910019765327603812662826731640107503910129303517028614951341462353088150384623734886628469263791681353490610444880641135694785501207625786251265974628906351307201253353430382466874408154243507220860344872429372338007684789141485762364148827808803332735325069139725464786816403003488281293592565244200645296517090495671635161052888967292982376406901042623802656748534748081815835188023450085750285018884067898786952791332216049303065885700593712117458760288905941739659190729546226097056516324661989998244510185517476615291648540168792405588248624097230120075584197701011372201372123461352480218749645542467840135633922773390323193373750085731569658568835052402844432539508233698240590182826058106298176681347493021150472088685727007438358379948106199909122930332480378302575507537267759377647513899621395759293369545153100457627655668033944115620681597295821670653431970179157955044322089312373186983000789785850693879330200822403041229657222612183293181926244182584062399361590323014938974457311476701538259804435815150492386026168639711468207205976885984741248131375301867016617580488513371400365868721966329850941068624396128174307105470812612158900962193193284529410371223272501463697754228754955494011181784866590951640589033824514266083886780597917561307232221710113876099361144886547992451348488944146277296486304726636869841166607609889931853247768051769581967127040535900228081432808304754090147326343336440194355167921265049807628988020436471830101730983934505731410676437531257898125700993490414117580146160416805682298469502779923422957456815945387410922058443185411488563695760194358644711112214076378436905845901266730596458572545664057872815005765586999398582912202710441201313166520589935291464360892376069348662581381220529182656289912116743724256072340007949084044486508048803779579859024132514840645438902619298968320652361819777174120118045544892012709975041661497620174718634682344371462946862889235931198914640109091754565248767011255106617449189368483008380042979101915167750875029487892773318392619647837733422376406248402557418068349640665140628446500097078263817655373525692855076144187454341866760039261176402585062185589879741442860432159201913512306752171594648880931235697665674077816626596159140077026389869340721496801225782689774468756060525929515619399211116702178233050464432102755356768413157759613178698389302334446453246273778868166362148841170730242894736671469705894344277873738837159537452351469288598882685453158198195673775134191491760930352753710727862722201954354647663188424129020361273801807977996129297645541631191158348534001217238464462437849163450956445660598371881578739809632751451889485302673164465240614626418926034991457851490437552324075501223832551851820244462793647659991249865877436678348195527361030900628443527280809779732318114719183846707510742097898132121045248291308924599815878428434570098005989353134518172885161938034382982268423968223998565931696218819085015312785988463761744442115843192696158289963229863310294119150733012216785206514804281136908559725951092489379009940298765569349000374332275527784485906334542960152349246592422795555107385896730456224091626853501499123564758802801891502670221448417887603556803219331389813661245243153721262756357460525708803176534506478677780281655365739698082817243759743222501686538365398788748867770320951550646028597026947438112868629417159430184223377673919884922118997017782821325718120752357750208314410500950621968908499899123161353660701497354976438057180108090588974639476749833773936406469652644985405451397531061105464441834612303665950307282666548481305364979224693788472626157222336685708876259944939538187483017222539822417092186937959466649892103648707874909637311093419017712515887933845554749342450132061020131513202763236415241000377129702335515694845666787891368493153821514223710460635040021578295270413872238737233598495446389375267596505691479387573973248538478026229984133423658968367556314959144473103013223238410052165202668161170074683176281794412792953377586870894575918099824291852527801711537352950700631686412586069270276032489081584341648935854133819439639805575851123720438179336254188543244290316755477953811661720789634736692094733811929655848768319982669586639192945939985770175577999876012677441009158035420578054932103113006414276164758383030004031017558797740261736011539828446545614692597980729144586766244670755492840013195225004611957475607661861254690367239191140337296466207346837141077711904546663764247824477940969350327954337657117497672241093465798197539264519211401256666290427288769173283550790007908408493096334522594234963679293788475454560163194047979612648385987819559989840872274073641641842745248614808344239808908626899021892509676110462450208449249522393400173733371256569612057936806534025640520402562270060297477831859239194468226103308058633443827637770925228434541490819093174365714197878442153969537316025399693837856314372581155677041839044603031756573469193606220127006555050728512612679868929054713329810070191060846277363678751123008993752214800052505389146631176891776464435931860641217479906601496625505149869391788172796853455221757769715770944729754356534732435163751267998331415889304290035414680433044210179397656132938641729176675730658244221261152200446956032135232489020597518239764444109594570271883411613896388621229918529836641866385867666658661319705599819973676904240038870369822581734671906490608832195477223344004240047384208247775105098587789173073897552820865419496947871623237434229641006796711305375810982031720770985816400676510752953892963555264317787745337554194291617941017829198727485378136250170554755897482648120869655898593896282431590341391521073546732791705846494516484318529359511080541612807411166695155173163034020383158907060865321090328751189058180146787624535427600699707582657613392016367896472519173928332079683236844062456385603149253656433813731595136472148928425368739097859564729136253503059606259898897393472321703569489206084360359178855076388537563565485188307330599343912984769281796063112235132667470013069602814159922218049486254854650191585533643064200974220725082257198072554516873238496404034176513647450816011009311994758030057744416429919870421068050084058329080589719204966188895392610686985140562517495934951614000571949711251126003647354179974329011381940946642048849562718352875211730899777126455758478836156866280277147171656611499140493835936532619912331656799958440403296345682035613474296232528476085126350293470027188661056879711276427501334943264916794669142146397774754784835722816638673447592238937748931571121466136201580587179288483289446074145886519839328429539576836523657344375985133106759366979113718889326279163953048044014136177276249425482021034498317388879958096568275356530496921265556344145308672455553709633217577845817182762753542121446866314063441160760029117710627748798122681803557401295345312774736153707196848088306705940962682844961014976415131006446385653524185742511781445405540329591953089016470519474105696994107276945204036598439485035924493249563816711868507289114551174318575164684376145582671915359005235803470047654950282550240451271300837522523093167253269574757899138371452481597196945430502867454785302767214618226060432466257520841210282980373335397147274634660010607100221484212517332308272538286032323688655946052736469799338474621130607617107092361189647220625834515835545484803385876446289821490319901262329659402653097020577355458082644539760744420273174380075086657971340160332383042968939376246599332802251188878707664878105798922930858161960071120006349549856637031578426222645594886178354257579226664580565991053455571168269698959082218463529854644323573574419961799669431805754550994660708842787675442857975536605954736001094993213149182289929769657590137886911507585964015425527737595382885436040780603652511287536028211313178877749064498250208122017179337631069415265525169054104156633002694450968113384041929698687156434679458878430928277188766544749558008146814956777669073830038521254761224783615578642999438374757453189277992977097035820435308688662235320968215011768799540701364090528070086236250612257262057444584572242782286708499589694129131105802278925998704321704684328154164389516746362672837282705558040301114535276879623152243856474228058490950266947311326520969537491183068389083230120089102907905828723983168233879733619579945817455226912641243304471648701895328895781879667418396082085098559013113295508159267578594294983765157716054626658809877425065105101553481965661872635439778460958508430377351047899515063880790004978298960046175743450485070776766424470117594595321210488137725378902443217800559141016644855703782696914057813353756790801885784564746966096985969536741443208346086697390205630636472852137610637298209415101684967443214255315161670842532497937324894260062315330464293262648812719602712350953696196384393383465979872746137503615435085460363211071915700613299474532983446141159425107280496398582441003935570956862853542350172710076458209677299775800336584123740853542485614331492368981620877429900533332798986948806159317930574384113638630480916478988415502115589573418637504254557759395327358118930011717479319614008512571114404014724016757666141300054409182750711216757333373626910810954277209282889551577659787603851781150848107850294779698949747293755943823165478356119299428175190067514820374788084063247317686311287922081746029762218141858114285577455018926882144966332428429026115965751691835790408035783062601494863419798013684302334563683124378125373471438320405886801841270123613645045850998376755767098322320712364299465175995056348026184462995086416354987116974190742225535104579964170845364037336077375490253882630669170838167344130397789805837093447001476764734820973391588086873058368339311175146683570818086990983125043642738058769931206055925975525233974191962933969016293274428319997482054584929414459446458057867252838313602645187799078546949194101292488827215029324964356162255922811012533071109530573060328640623641701689211960788757638926509067563936210941340690403457403351635710004437142628437079885733610365817981293171412192570017294092379726184511484822780810053717441590646742033452122692498437422080422996212927755886828860771005716158458587868704601453322514548162836057185731811959272381535877011615327602059301553549445207236461638713130725581857272006397357505301993363096078838128493877782050806536335367875963244991042043745789835793000851705078250186762586175614654793372370208740468286806371257904361652914060718780410096883326309274761326555936509825055475771058926789680199545144627255619685873212278438001182887999612230059216210262807015354750219727333619354079017834275149353372214675296884372755258275844120635044915878099536571470257757708854269956468605419186933241795399910288023479826370766864318192324494352336517433749231856216869413292241022662683683162005972963480017069839219829046137879382634038555480887210102976382082247972187066298023479251317073046481110653428168215180748929373493245921872376408506376371715174268144706121145186319187089079369429388001746188690649812968347033598343122271621287971439451851185101067625159852037613738331782653755638449333142421745984489066981862280298922959350270160333517812420715661245578963033269843602484047348097167472644690669216786260536530630289219946478724547407034665449953597390311175627476582228233726666215788000469139862771642698474882519124573510857002464571742779917775523167449541399888253095224682918576651400334065518415965614044780667391353387710253153304377388710838094052791559551885406061234395672807800732455929355524432311417723694218712412217003058249340243050894952817718427884503792626767145486747550481522455722889874407112713253343609153855761755237158112845555431581241243594623621329493131329949601840556990641954833788015041794002563353885240953344120712550338938678403923190270660048687262172905270310235184450956807232277849521161463777794400416679844646659455946676466696080866228936582967192243944490801506863050750691119752830060575259414221103833355022420038180119002064381711827037310996867544892488873240803345385983348140434871573311898741339322008883884466216210203566590289061018609336682373876342279301785860246987696847166014476298842119698782080155569684078938069876786746836080355277868812473285888111877862986339555163478256780811700802323687184243978818036735819777218886317412553922420667061179945962926993125543027670111037583341253440324516033456735240400696549179051410250729807803563520962616249555610378671618762342581354395735219856509772387606610111534230364870914136935747549512115801584625987702246885840846765507597746685181853776608529714070184950036347698277976741464029485221946346251097134505495855182983803046939523015894875335013956674165377431860196334705852425074230205475974734849269145582765383776701881735607335616644765310738486480560955183018883891196389781723345707496187855287009052626232431001320473194682847496919451300653530478676738506669585617148482347128014744746481995443396376476475903348169680320518947130751294108621321066530581587930411453055352430767685922672097665589387651704135590861562852835707288360206785475119606044106255055269123911332722672021255201334855893439727107481536952920798800450254864817742457408554767620287895553279137660877656172813128032638280181437348842708071670541400250363202994375070082405843174775079440732813936780266177160292229429714033321263817971760271240791790669903009898934032992835917220904092801995608895128066251655361554049116408396074196069146853074169915408317185867438412258966199679171606196477380893404828987287174927222928448906386389264786041155849502957854243284688608709590779123900727605273337432620413435905351434460318473548117351603190593426431793019712916901191032037609866364970296236676176978457784402839558343226305621872280389202161200562884946068691868659110103013866842709054524089546905857630376205187619439636303734886673400666747988006483618828673247632199958371098158668133394074429135049947455337730047410678527030248037030418181559298093471077418836783539862126834869849311107201219978541100057198890740994822960799502947232516976124777880640504865043174009823800280340282305533155404062244463843787211739167776877995438124440268466251484710600194447219523591872395242991963082221524377538138170401589123608861257510608925403801068517575339546071047883767702715907715289474057212122173182895715401470889985443788018250141702471526996976706837385892395074360083783213089526270031285720275833487047734535686392946309655354829499287944959650400283141820263009364550378319903114271885187088918512344829886302246187072651784717781455748729388129924562990181072979411021856508299106642648566302502686812502122200255845299743555520385765332342820310004750625741720951565958239967499566145224066034295938455265133668287889585159870111533873714865721748404470169169922495263847805159482992309666464809598291283442579529693464750067148150827544979214630200740276936109929161159149925753930168524103073920457727020533911675471262656961000959491547785190449599535337584662295815075805351327481574059767861457041756581843574615097350952627346959137736777656198752020198748199416173427927972947994358786518892206566720178500287701270378419528316717638682783414925408287105479130186034022382343543041006291663847894806658794612755479827598330814485478026433731805362057792460188716108671212190718489226298712155355636320497029320401501212437521629693013071793866404349531188100060891981062388775397526603892412368927476264512577045264781675255494633467663634499842547924264127154187068822038314053409029154627588938600415228665172643817922345636884901956680188884108068268893850988378176186499751498286082792916507455124745776502236780205012598029836346916272744986365627708269689553629172796475821461834668811619392592833971157550156563304417351441536227532340918314249724922688158209895026501424021053345684307567238525896703423886141730101830072888338841583629639152897470653776564836165919772912146344802671221700116794839594647670012449279028273339045784521161867225882373615254068998646478052187787163007820106050513440083334284499429007971920605716397569038930929043074397209139551362355673532506810229227014994034176397729470024703263812786686884072069572862128721063332110663199269955073891199683935935460010077937287119794196519592801388489935369535656148280993128434414777927633629473364766208637348509236259594581190074172982816565863109499519152520920533386174730600305182519112485031884985115331394414408491533415511386361351112831776558202665341741435573312873491261507499333326498575544866449564225749627008710254291445059810312211078230765374700260905111350664809523882175647634772615875792275636023048773816994922390218123824506070339121475744692844591202921198995921714147472574123007213738483174085820475114889034375520946448119488112622823031507512206560136714479735083553206868776840597316658691895367350219766447146537558843098431375348893108402861790861786425287004841635048617361509625410210793186421714061695829640235495861703101844495952640737485215909247247696873751350139201897699396405602657682261499534671314145287887020895313756889618156014850386279553587390555157718852023169337169826440888919839129548647446721646560479161641351159106232850749746567678820972196779204925026423060522931250843886838881138746850290253127021955502673991386611834523488224722626609804936924685198139984802889755261280537625495779818445318714234232579087825808723527233097134815580239225940329460920975067983668826579274946448958266242630415217489922664342007933461306763365055096837181500749567743912866144416800551236170773240277095452744251778501360419707838773022571007642757040892543187356111459483057073978370265660319400373549250786670229750166982628309829013501667933797935697308083977314498995603782329000667487830891359650763660558759915710020324026542307453253637521703459362394242913541793346053961555988882851013597450630356824888171908986832917020284190494099837419818484106767824904169606231414687518508092223220816623585474829835212747763413729919287225201418810794758931712188093713760285999643869636614392163940279231678713516228415917306593445909027091210871227835523346950452932725105234447652169172078673170525656718803236798575103323152307293562660638302649960538443777508371239316671907900485362380057594149753052392429276219311782621069364795240122313364025997860934051988933394942073924982093942930822688617814528801843067324637148492178364669482004522027284875997477780041354486397943604933862063512588703531249548158138284228840269794910634747760532295199564393946185954404114943366167393072371562808972437733474266474651641655515748852558596637125389185467090002279089620371141967324029390510956995939930387125795656669196976574236518526343805170524296715420419640049599068328213936815557417970282393568215643709442412094784119592118681618112123193183770594439251221329108175835192002145303648984971345890916693595808448399716956859742534016675520283506214936408898723351447019378788160780055610105334241760971970248266222787510949461427467377975697831996098910213794844709521953764702181130662527014778783300788473001951315193182975426868677893958587642387356717941325842198608267957561632999655670490836744622940616749569808222185668432437493923035433792297093549465308430479513406790863969562656845470824866513017462010628701416603074965925210898654168287194788888805615805812814705306922076593897434588985810092452654189022720482137608712403625924870186514803911708720005239264489393204381081129506052102818518598028392725836708852071403779695044395096880714496266787104424490049319816053055793450084410848772462132866830422413943293612660903013374609715503962025458046545132927761059933976608307280981179332198523760661967152903341039347858535304208584329130557310209814782454840382620273352718988169277181888911544164491882490880698468082437024942836278092005275614260590150480541965232503136480077467926410659905843576520862211600957429537792365726614105460043022798975739425062315850791245710365015100599915522142622801987209455296978701510623472019697265826843399858275004923836215274619753996443564359807707600969793453419930472018026559250403323703119079457320164569363959357905895699005015317170621393189338149864992359533612181391081925767940390480463084772804810633061288092010943138520735091840655396945000215825906062727188582608940921078884274090680944600719464877590853413506645134225818749242122060515575383493087766064265655779643279101098803462312373890370873164769420132970234701826470014252055965241924267668120616081456477274663193154720449883646487971579017356027615424021825009060284562555119829244548126769933556917774632139621872218489331465389847838908060611264541570849681480823976839679915661599040208247927619685392037534236368712663625584673484922435152467633975697864878732513908642029668475359474298519724255779044833143034915106992696537433354402947321797601156873927840153171291103609568426715871673015831743357045702508871482399610581663564644257610766914705323022632881832940056144091767436635798645744170611668531837794482076618344662516416004679159465887655555704181920947925487516836553633065766146856405695366718229706966430526815321751040819990153727603423215907418037857228836996066181296758300692929166514227001167987783509239278277832396759224320782548935934102709961474811629261493899839015982240646040574773231678391230179603865880701221226261596867944192844761039405670490940436002139510093735327818781612633366054588538405770737380360279854215170214391287958928099719484749525280910556938646830965528215996502507353981640374255189210535504335474640028088196863617612086353959004108890305155677525856468949885786745353975357208407858327490120310774185581012918571737928260214061852819571086296574463460604878458781294247893701177586789515795307950044204275925410932881646751296050625247242448873044340408277155608365692949291284983158264239494077440124016106834271867771125001164555422078657268750765691416158547106978490246090867240256566469009299170920344769663805386274797625178003127816294108905756361281597285342582089490657684004613361037112626764236824684817258208844691303704236986849172662784206396532621409293130495005365854259913922821496838044370739597531917249447446512385606766338539986852868436199028737134983874397338690239172511107163467995634868391493344881815723406190881233183834193435185650187912880519309794927489218670837011138059836167661047755561523047904046825710084797891250096097510731492526903262015372278547731168054368676282042321285489801762568540523223405536800374008608575625788778434502262884525373621537892072733063711773849907673333674091871534528039113882099813458769748878788003734927218561638837076686983143763245670752523087917943118157753916263645457992667012888983150908295577575139841811983494376507814175611754753970170354954319578439898433302132076254872160775541640590542530532208848586446755942218211061458140945235993832178152859707038102134319004090610531284441983375347373424071217462557401467268373787435011936331113419045703947813662681311213971734285652628425078962817953457810406413163732870966021170217823025416240501240088031548739380861014379348184464199603126894343541108375606112435614525022462952626299424232177505465874768131883430397243282670164519907252067329906647168261281340113674492403450165814688866735097190423882172421952830226403425261848036093229859543214284493491682509701969944139025330763161853779654873875021790178265520378521824973112728139813635478154828436964499686625420829793048273457082608117558285641885362489084559533951464409557770197089786401851286600432946723026749249324234802240007433745400749643462633651384638462145088304598118062659164181262023312310622963044982648981679199811061755605228788055773719319257845900220704461904620371627141222729490043753127668971083036685191290191808233247573833097262709243271323777529046345782773246759351042026670361339204934157297232788560855398094030048258196584664037511250178397575511822213817305609107462733593462632017486391843563838654890639116162724644954643152599943114602769421049781605626559105801912015434215642289058787207805279538421556960472928771853858469798426500397998234240988499037600796438243141685087632221674523098276279101897323957503300418339927904975530998343710774801529718338567073399108649352651166863954384959585608379865315072579403288970748643714456623874946985511360022259072245511123661407035743956023094465662212516086566618438588101104455161505270899252808814340802413461318642327200161547543271002272572007887401812123171073604787244410881416494148062811684911809386659643518499674514677661846130875827210719657224410183948274466530461654290861980357452054644390885903834914258024383830564999340912166501706076930703288400371368258541479073626764036532982794389418912482497632804586441315380850363011345670617366033070422056578254519447537264059144148204434993687285795572567543292439962264657883711963584892800419657505038316875508359825392453471956459785376857019096587468538470115428841335295195847803893133708645885664357481694164431064656146112245739043666494161086238032840061685576535877071521244158253081039237298191053896569304954347170996982312614322100349246309037050719532915043763237428867748678558019664382063863592575930468701469219475990944536868343951431496556053131569749784038737626210107742071653815735831244126690418599467930336304148047777719515803742492422766237404626796257337247255705946795319720903646685756929128034454087685021448818812897640308407987253967062660156572002000318746399518842557564863141280535590614181108183770198204801098923885560453901392598568668309324689544304823822023913987306096539486663474558405960726700813435246573050774860139541578441664653203724589785909206860325027515465086408591067414111973007445492414345819211958745214198079926600056392097610875301079718825451119212614901686429748040313507535450991191317033979140049081680191050768962595200112326686205898393114258350678370278400195070125472772442549647257625781837765152008082092401346803733240992218068294653475246822950012845469286717596315364731294588412192384172111825637426916084199318436921829348150036810493585055807622520030921433782402025917920040549764861023466848913338466466823713791009032586728961832033467611924046131968042735256339366529240248332978914439800730456058550144278677669861533729195657232099975094132377335261090248886101497229112647507761418123012379822048822810530907521789713488705066230110034948390540536972372525431947626855307582524386336319970013757953402610476002851778800065163662700275613361563793168788776636370143064135085098343280500484794268546710816949003772402558116875663436579707807124071183148381189351236987971560763538127921976408831690482907139735907274767466023927136662742186517777519663370137988291830751527964034046550876001242090187664781391906346900016436986775377270956141826433797758243109688005580259737978728075085780142032707271274416757462711352683375521475443725764426602666533265302814301842933596784056148700452833695670262349170465454036315854722012616897999292824731833679601028697505195617728409673664745255705062298275698002856963334384133941997981098953067637165899413930229913027687046556498694990721240901173435652907194604801499605761777554133130280282656275351771312290438612102918729807561245746441911094135555118276139678067209103171919368454170707811277267669735225473312048990635056513813456163537302038961322799828662124445698384067999831077164457097207346134308981439558970468525154645854080055597913503680884347376297267094527732053349686770029179269164221502859925172645989914605996671131129172384909281566568896658030777988724543937416794337672916626868955408830702186849069424447800721148408085130753330855923827838066319922833597346735653208645176022462249487229356680961126790645452052937625756978153886603794540505485173600925886869709011442372399028304350928463915737087076452321719793299445926976432761664091599827977435637531601533466462642661488052786240728628863124800521319676023225537604958861398723969712991998631724579477754790800787976390232131156593699995661604371549776225762777134625423099484793810713760783901491931013998614771247436072802950860831334371381313294999428830728758416524305281576191484380474887649766446867632441758620172047345344236012846745596291159141034998295339376756646149564315850920709547470727839007806666970313288816316742259218284391948798411399111476322522073426194465846331939956014014765032352202195668965940142849218232760664059138932340913270202713411616989634974451873857566936645113534002510270019298126295498480164118224682404102766133776474986102235541545604031507494231545479151801673883738374892509540056238220301827079517183173285100951303983202197750726503879767377532596160827594638800189716333329739879540941154966845620299870100116962398740721966554699201192363605459030672023420298439688181027149842891927587243123019597730368710917611027068530736336612473457255286087580654706741986605691690421928065732862898275792825941289769419776167751774207302227564932908395194119688869882704805066217641362063351950097180937094754601854816244314631991973965531637030868668434057471452563398039860597943416522266008788914572724519596674151814399339280008590098135318789781038580059093827145794692707851286991412246761425565128842492539169148347556490284655928013970478873781872350225363354216268452971652582176232768319198462187454192174572092382125355150244798276045237212392100807531612030019501612188985187012074189910106344588257954874871783871860917369550569822514320074197849572485808407481040827029858922298083616424832235600133063852829646713446773982239030884642625191892224257871662147890154066884766457046711521682046198484042391182242686443774551175757665791068452546862879059853887679259221533055917034640765785228217054436255013354264707574021473487797225446889845231511630666377024362228962908637592253432535753821372905662405182762382118242089489278016673393153447994802251894396931423797938376070797808790388147260212381112324487450358692183686815913380990232667274914958993267630985655025209797812850006505848748569797694320021689849182946768321959960567402389955977457282141286219599293437419804979650029392470809932538384757213647573527578845580157982968297598852646125321715060234821125729723213942999509041076115474251471055404680548342312363451039381452737922197376018013765339135927602330854264260242210970277442301507948089930839602708501501267340449862271044677823753967317866763825709522907689837197364871472413532127069740442451328485595330652859920471009368207502711068925654163696412586078657247947238077912734507306045424981221630457221144043409820899848263917247390233110471653449345870333568063453471731237143764863576633542731131310182481787909639026660486495000733547051027696606702188348192540800097397460653481555125689556636196066884243111829943772921952780894130745044591088704966743550779115611580203320444864519381031977302165814566647629227423172806399797161972639348444660449764743743581024876486676097171873454071806386353622818718084519093948582144071853302802333157498315296356881364771023287715732297662705117030290427195900473964744661152441896087717851654809586978685063424611601241142328834208330753640646425635405477080351069350321765700947749737592362536748153415327148766289864614725700408083277391642280120376188447714022996962734230505149747619092677206305501138528018886690842840359162488563871854482489681238731687327541939280693164202798644086894656787404580314573126576093379222853591375714459366587558238154094262290978804765191923743236000654811161452868355589506248827860451102238235739978165254125074383257988165945282221319229316329571994919163705964973356236702695966327787689065313863640097290452978287538179492142357498779931174180242172931354534321177225629957771504710945612179248824156519723145252549470928799692552181752918643448969038148275318894446521123150835952582298332414934721102204398233562542979381646550772818276271980050851794905054724737753090216866607303757462585704860159042348037661321905258735559657256214344483428525305630290170761499030940323766543068148898516390595744876297338997054825493002215539701314874838494177720626731846262788263929084212256450132441486198861255775842255819441814569420110795848516024761118427106650131941162960719162820020473904034018584686368983010714749458993949597160013352134433177590647268139984062234242908276090379034219441553960925901722024702696583435687943302342406435180299655457291181863036081228145028229114844179499251974248665268206515607935734942593661470173263018918247620864847759424031810088811100098564006606230898706966285729718309213547648089740079513804989503359931634754638714189251507429714092080032884112677773690896553352271872519562940255833483037236533756316442537383600597534855848453001151998894011379739390817422204927290702075629744743170831378010169287309853222749597050001913599831896873592159301652913634310469012464378406437247682596493895521379126824961208524521935734943906257647170765898671589659788338631496422951083287679601569154402488110180625879857332495443809956035882316605454136990923238829944223013649323176012243622201987730139531240450932523511855475387732603399780625780393377030383039778019590850596760475760115551546476852695018568442516355114433583891690259447588420428347235226319865248156576481199346144247874052308024178892096433389602071349541744737252913332184145408740947817893406461863597505835526573666559149325826999555674550148060543856950154216351745231427025009064489149841662152432526130195094824373770885969851544644415841594183344769854270633966857672396864707059284501831636234937403995140641363203016343218047933122866952342667892635841112510362470586264007259789532308394563569502540299410738180501036866764659417906306598464375091575051768160155208261415084974621052814655037720962697062722443246913557316691644671890773034943732574244708009876113718689555523080488128736877062252010908803488437897400190221419653136501039115015827064968782550277769087221651555554687190598844468716642371624241575901960710015176554992256599096461826513027534273624927998269214431050845289337218732752364831077343426418518379455863434895646811069476115355908014327373462762184364271853638303196652848523962754511806789747899239964597432380892480104551540607035234870521959961608179965843098515698888474162606512442744231610595863668357103299227569828064515708670528030052534553873845927176677312976195578838977680835979725107141761555772214358609811718646967773728413044933403542243146221883928462096182514814654160041995693929056154619441682555484740615269591196636065209916398486385249439298259792094734507003114086805718788024880294572406800786109130374129153187210984229837578517401218232493321833491590811822690940685592849184716139461677137598344715415995188753951944876053539508021669857387871515161777579103082989226310349312828388379514068068055933399897461308616875751531666560040516587627668369490914760679171486020616204344117897126882931303974782057827229910341016869504252965899600598486519469171762485155514044956087324508226554008630704827875005123095155095859352540829767408729977633998738092674643484052063697571715091746222922397772066037792402900653671799096403938839418774173417491990985273792653043949720791285354922166366903610040081518718461233859267665149116566296726646349180243151627628501112839538652709172741545248663988872354669658423988888319569125820596897911257182737076799629539918124135829781729002189178855554404541591700975117966391384989231558981678351084484856472849771770774931390821143951934874112621596021891218780306566597039767890042322024099683116231912015903195304082999603419488341962058819971659893083706654205578204639725757119661744905635339299574532019745309608539664875896395333816587856695634693378616238589437619360347678775410867228404073905823412830397500020603948801529386860915472427929731456965260921577531118013423385952783490421716581652665085120321184256487375035694260783125051318696028686186552325863625267925551189747509353652836038720389320807114155245468147850502706597632642233339725698717393980036367068640506989492683372603345442681041874448466259558607914017333093259224978733879103935848640190300448845468843683210928747332841833518235323603521109050342993376928888187300031524845447894316981637186452367623084347848114281411388251548294538629632478055435483576852010957465765823249725698348985534943102400516308646595981074066421119936411722901230104702756044229417365238288637448007999997883737726277336217183625368728399785774180046853080171111284899029658350667629005913098719955684128336744242633433879665538997515901911459326557135009826234171818906848554013582149590915718958474055941469734029859331673223125067676542781585799044461891301705259253648472967566634113087494187529555973509573543129491377621704140792641219818605429476385121082566236603454023456036310655062702787299828494970609592192297182975566729601123596754441497349967373829804795597191194394494734805608061748227337231473599765163518541022253919223514717018166672448439115878624038627909323249776229639564175957739466914384633777982910767098801543384856402144057936982758040668162869292067492544593550230356967472735671146430188076659056757040339585815732926519286891831904266616993393677677418762541201769794836221169206373876709551948717055254146200501497352305481477041441644599083177165718897236429194419105156534012613271058827709700701986587795157545035156850683811399042129935875907714224180375738388168776257386946769135846414253670175443105674036351323368358148775379914035777241323039527229522007952924207527948765058853494741553003387662149159297683925963258930392337186279480772089983391644614967261651124462478255150195448897458312135946167227776067638765770444762797112316232425523675081495730001075777285817292722760760812499378548718669042759672113052004227148968836005552715224555206051400636280021927795252033402213016965846854694101892320163427796346731223497132833135330076733637107545601557687988945819228013178996525558574779566822233664915423480564411375531756814381779089982834468085080435291419643314711505824543698456530714283721589363885417539783638812147492880346916315592697163300029391948906155538696690644094688045202774687701001262711567111375044892770969777046727834571970483346485795969342195677544197239007792623437424517635196500957387849271246227309622059609683258630287057956335355762304260559835658531752613058353242009835717279496322428284106461933166783057113932998099505295894661564429959739183872801564367806158921135645896041592606850270994246763127416675632438334815769871820239254990029617503828710401769164903126243406663432857006786881373323807140324000232531596673425378990038225725290442378636478584058434355751382859795945318768066481316784943135770631343419845003677997273293671904519089572656413791375558977698229013785450337591442153743319013847339441473207221196262764898326846844345792103508556580296653086525659732135615585795494302739062910249485838362911934725916455048480056637435936276076348536118091724059657451376851246064158502661110230095854135311789695253191846076370569303362935330064769732898064661086846230582634005439002415732000618671101696725840127186672031283419870886647849682688405008601830428462576177513706163034385551344006309506470515261109209042277971943586662420137711068514087936292790951030010976097811786195347471770239470185619456025127033772361645986092233937664574099503756117607779766596958169330339031531695481114745310941741002423645719212845186418656556026601572003300230345094397061731123069714215655754232968198218647173300691415805188721846593732996324887015747556237806227135042946994289044060404455835269862031900705242165413877594600041255670715245830758963915473296085173734814541749765404701867768206296016173723000838491954700890793601207911221730786115724204787715950194561575762078033020655859985975755222221056416081786862184594177529410318458103020541448194908587898863577661827661081684170727903677731133438162397578465044511751261237745323141765076074010218538801356374361813361778366828588461946988022641556814978545769125276302512348434598103580001504969236883705462401881469413904585986998699202763164720948364249410892242583087416896820903334615231871569688090965937661219826222143469542876121514132770947702216655035493483528775470596349216301395605494183991764634017159813265653202679008983074793092315682976446162546259491902516860520940173012829570554232037371304467109946880926744586435810511443190778950181838739280226365246502849256141580125095856871331294476771259224057062654756318705788433882126694459354136291777612575205557333232924265983658787451869675123959397976887707874165517884323890224592293097422873803639242607927826298155245304318867930380490639660557045607843183859291115854915691992024550110496598620562048720783929959338288256359929653419400788573148293197840988626702858933813440143704236673117930557808259568414897750805166753817227045582330764008387865740963803015269304403866327141283414796542002510889453088730356155940904630279980100393074765367040884547477112200171403359318494504233022311978869732582867508094483168837084833921956025299913446723063578211675111946234787474967526321397986213353361711295903739465452270329187503162323717616707414875960516025637875650745202775276135413545072669711600978604847451250896486761429537333469392576010895470919067558705948242630508025504644862471088055703579713895895183458948371907900824103836557000282433494769950192903820397148965187945245164628476991539808117965390289277586755985594663362962389319242813524752581561551726984486080137855954307487342299472270610949035041526154089099492381032621639577365838747023930882410258856128496620333053698344197740068541130744356005686312232052491459989019960625012336620861389225999124740764260379033715370466759647236977085925222862229053539860339658607473744126042213558543821023274517519436458101808906971870394028453560569761735360939187392219012425050053995787650431274807595868075914638119477940951064329542742734100411096710094341678785567769730370964518906388927436691146688104070281786238095506594147722296925978734727228742386190824446439347856603932913198593000873063486671723451577471383087142373795955425333393997693091845675956476101888556020666879965037449232816828452154034047592146980310246993856702331988315940556095765342932243850917741901732735953160474183646824122630227256987239314940950987973019611368909858815049524667978741723670686472475186327641495802036592929034033056568761581544613788436438254818906216152531809048884235720326192779608489286746736613946382756774924573690700046702373311697361973193104884961609038764282326178903361072372622377682578946196733328899981746948740173990999841450755597616555957264171061355755485577274964089726964142784052205488934948686229500426123354502995893181511323559379775000484084806475153712710893053849716807126232095980735211254189009199292948677871697124876481945781013054982380392490456994308149428605627867913179763275270217960966579814554258515363797885615305676429848926180885586534614314363030678391448053569314832316682064924116665137149195298201628097510621842632783945825439891655681412825712565163571972314619038776899580847174684331886292859624582822669201599116432460687403201671457960892120420108719214998841806262688440198038828819093060257494006592786686079503836373372533038666670691612600630815418013408456753914633639456019120894157068830065737730896202819665115847131600924064597548902340894857957462312683594778192023339893082810805747607988683449187564772451427897282345459278753757126852384811284404150733980326426605601885285601178214825970192621119872355451693274544043983702057900318493896460774872297302283296074302476257830290018096616256582991375215974661806304794330303365728120670089460241388592418918889416857376928270948206236860239573645866309572111109916894728818899123708609162751172531008253668604229215768675199525955443398281036469598999773382708789011759788089509463528606191255150716578419375871586190695224666960848150998709436665572489021528074739018639267974569175299305207671686074485104768696570948372284959502148977923906235707142136724958412871723403096719598030429157151297856453876824771919117230504088378920853703234928659181636752526411528580891177484845332445798759310867191798358563910089509760067833348949842342881214689401711361061883724035721515604027879183888876119634409563933311618972232981325699886803811123639919871217558838152040205194589981987066243861939537829680880407525820674623571780239349912094890809819908943477248555086593364480615598164494034958184442289777005915946124213457459004328815240636928297321670167186313423095524427196562307851886614382984437827408004674852938462992446683913904649539193259675403910325166971894958572825820949375424699499568079079040311633961027385523850355703684194661955238247186121404732823425118170236836139564363013533436158495325286594507577663668706695310606748062624838157130302605545864722768749903637288960492050406809711659729954625484938348307989875963538985919619173892179645499576658295188642135399582644935899867880505106602131789633194353365453963353491729108824365868767372470820319616161695745701735729987183899442110768446739911588187130437174873031816959952529059784792535508065833645948574148873864336998901883206756737538539462758246347925950768004310855964672978248322382405883111640807525747275331057775267796463843531346470397553424169013534986479431716993610288296210804692898039741194470317549557140776625725048285450096614347380233170657063680074113526870967886827174141090747736873393782988745574068366186957605117110176545884674350249423069245569280518315806591161718588630246417892833133462557789497296286786275888191274707128629446339906376796547019046597292787409450818661123679885908805453760900762481033655620032585352286297704297458142580453281077056862197680244595709922418506596507707396130616925846707643858004685258626301077376354273278053954147669251063266095281014364473089316546005819275192451485647972515595532540110893986883386045716941982901888313096847421332423923463825762178782027451796475716168785538691303188861346120501624030796894591324943401365876312566718191857342618814699661498229639940332265075694366706893498657543032937346143455352846041259815966004608619928099404004576859794039098976880767202087952580664847254963364923998957011607258731173950257266018183376876658284141861174086185479822402289514073827079326180851399474597950037854754697644329587048222271393068617635882223061642309144065043367639628191768440311766029640883614208412988457596493247031032012894199624546637109356742272608986305704055819844688619828661769612819605404117075398146575507691649371037632201190541990877941381239033545080129709558865298003891489086815680714090462460841632815544431773410646146362801069758183498590984925941212041310302392801994446081573676783230630049625836044128016440428654064911236205274097815576383191608499294108438794773258800695338022252480213256154955752933965285940465061693719226030338720193358624419949119377452611128896419564588295773703788406402165233962112272515833864053942203790280029756502105147392633748444555477715687262825514035224627997247306463121564065964887015053349503404134508858780477723867324918647999870021832629360418578476734513638169398317497247296543033669206114688483845821850934113927478825240177299719746121089835728915330723361169958694975717611059104463962904351535009585174460123545945262070685529242837044660087999607052890646949917920018359454600156500436283923628267557307845971625440982637336630346540205593933340499826619658275791811383968524840432750306192747281629323601224686392087875929312817463949874594271414643668983323469063565247619680312856554389572254027355729728498710847006670645408163772908607483234069490141192263384181778530137906198133962972081683878046948887664775542241413941087171754720663078126332675283565698992086550645063897860627272771266076004622183280768752875942725330220303694967753262230003465315398762770253356570940969079194783463275393382295729590080358410931221246033177431796034836262619051233596592906009513856384876390600344939978736677209605828485675134091685048968763549227408125051123689073984802750280117276379034793763747692094735442688755770186363516102992617130696708073933136191470483335832473142680648419944520485388667990710140400490805230227189172198023927328395044336845448473315234819392411597203496771447098842913631836947513528489294304161537812110628029176115533830181094941285752854599996140641606403516903059159916516242291295418541844976718916849336256730436136118656968382906645358856701049178141761808487763671456410384237451459653586268818010883601266104687709297468305764469565791013858904407284092674798203240508683077322290349044877654273584134347993957230282698894010519152346822444747759341412476358004481103784261613426149882508837959670841411874665805373719115772524357648080912118665484775714511399030432732183715395342458104079984568373816468118159282965500516492282628304644007100399102283786688375896290400700530406673022234108796437328306168630732232024169094855938102424300052083773110987081740245063724974324776912039230548313241506202210923887852626649638120216985480791112539482809155027700797085246086037289298286332651897948326504519616986386985162768683469246223645195797860290470979225432831501099626088919657088233101953786797800617570840872629451034599776867339510226373270920283640507146135516164000725243833773421091016595758777943951271096696920962745668820790839222865181992755636902416554125550849491083393463086357373849826378793485246241148769983969407233495537799569014063237159614500463978022966448432795331432946382791368717319413365920886840850616366118017510442530841760608945317645396794153333884699566033363458939099552407688247174278739929085446147238145527962184021459234403025419025993192721766094375216178618283936902523392894194078646057802576331942464172093034795644206435207052261612023913815845968508248453188697105712663433972868709867916424380499393562199571848235567866746727396643845368799526301107384559869907713236687075985532013219618744716360817715808048252208653747539544075053028847850796567194707360887543817412235543381007001202258336763941275936335876029893369970044848691443617726273790021630902160778482691333877773673852515683364279730017524419596067642851696887947682730333812627534538755892899752835024626116251264597568245378603644037980338829896098728797510458330706150368216114589913388234151837035566516814482111088006232509415925178433685122660677238181102174232734035039648989265611754214838944909831158988959270700331146431865788619352410143853064955798634251200811562170982658913290347998850129872892129177733579775319473427054623247994005776411486881968594196700400621498399032960104680448188920412322515685121963609342365048957724079370572976022555278236784023516160783196165785808194963277997757614450979359428168145049042729494107614348294490347861673541890909653145429207012969631250859541183367189358162528137128849914282012262592880838238412132396167050281104533478997639216512217760757292529527904172299261753240044386960941616213714265935077915157155751979896857437728667730343950389942805627469350945205579526491232771180420834417714360896044703848766366183174324074189644027268663392988505141959235323377940050669187995179962080620231349960845797641089290688077580279709914490069943693387741239638852875668875865865928114058427590127379652054195580919294454744016239783494581665670184388838446870427307465572636040390485475095522051393567610273521878809908966086729959193829971431871683237507237903123742595274856360884623939510426940463791872016462123555893835551342153266827513750011365145658737048533191381782236705100185403722079320506559752750604588066299988026249060892786574999503959803195261130946213046482827431755915693132255541843033245264988423207763289415688291096028377495696936580224892216474895194244927701222632603337456579370818368206880591119041822771145559355141363602235275458673780293109744328745769324904909678918685900705470162113712292985828582131770102586079590502103509847322477490144756721808406261972984113186108857782746660986619832822960513940180448087955728723475432812273199287832509235215667241106532247134948704363308046155898205554401407312311622150839381533281840416147453720940938258590414483674850083743292869163812844678339447448218450043671211775401706873523286847258367325237243918204914433436133671010313500938903173032364696347887065481392890636536358180485990828335088302786757798366990005016772898764842095050115004563069674307792870510887517498191618647978859544945763145613295436265177590780832848085632709902073601123944636657008274284284705232041927189834982732642607132460410141450784795399041579452773922347123332357737098070889002534053085728769510252641150832718156631279918150812658933579096430760413866544751639350370270424419793199914835228499030900130197673858283452013535042586478774270897280017964180973579657242194574932056120461225453344115673423109630453959416642425137188970711561053801822697446121242146417789624929428779057146627526906869593941528823708541336947309298367912889497691020375204951413770860320550931379316464355188922428815994731323649294814790625628426577511553220184474890994324357643146728196176307913807280936030461644993772549605151328053489299113570493204188655592129381547373737585442931750029268824098099413906317417824719520042823673192690904976501248813469692892292021770581844728150007205060979422187449536074607793408633279988803618766573179494883856262592880406855511935815480322133228560151170473328777298066524753831183747256079258503682071886878633947674099725770364971068480931110645448422059628908857640322014705660919341849607910530027315348161169962120175034380315611825197105429620061670766532687847953950721250622599980563139123839489394667699031497815930361205970817703116689906225530878704505060487666724635951677608158123976080468549297532011665490618397438596342910183187923504108986089823252311260537505429694520331122374979239370049752507136172034718365425958779495902696306886580264503022882315761258124210878012319614312697500570297140140810835427180989956581422201881188462197211913489929046088254748808382132203609536785098627371314410692944147435590696031959952918692682387239173822538963786469841155626664030489062312409961531604368001183795685779457598829511809624078728582614846807204174993801584355952799195953537219304340770033273664774812840553440551053586653396673029758549464540799060133114398063987369073591880924611268909529186888722139795842711083640355075927100609769906517680911779317077663445723460714178494007835423079573516233095048724577884881951795808835338328195109513141408156635848267074805326280481845820152832174249719146397995253221627004884259371354912185308217009247785087575712728536735578040162058181728483704037067739237729621294096833649903032901768993954417145993983488805506923366535638632401174052300773240463267585500466943395429235027703172584910286378849234498322105173128326557892367084577876144352990185469836422325359024068917886427666978853460239795770759430530157966951356997076289400859750986761550406859482935834125575187748828473414721678937535371603683206580407596962168750999139169244476174306770145309588707899480253446108943165110927759912167186278537829752471026616699652120510655644748642104553838780342043526072675931785773050338099842240324377677349276411739461883516733136704493790486125509248095644110047292450012153796057329894318975261596476188344709149456761273865751897352087933616808662764564177389993122078444695692704672415676707664013576092181068041923438247209008288360563005030127329461251605218792988843236790008067706421734224112164342739418231059780146391905922246707497199767759261289975876430082610511902135579352629722214912667763187831746217784813283926084641343694981541444232194600948860960696204224825425397875152736099528522140310956547633765874622525601573810126072812381994173383803379772355557679296851089662147784163756813723688569618040436677427384147570546365922395413402388151029638957303784567554961280625038652428002024901720038577369361520550779714014594046211922405086351064104115380500581193294304650561109683968484036036498117896972070539100797650702714528713645833885465347265792919437044530830997108993443340315080149976488227163739352948649400169656884244080293111787826143109015516850023902608961293608978693391633480062622638231970841699035409799487197897996971680135877339273317960439954554949907906005227554748214482857700732201307260396438081201447581700667165023112387488587559056115872376843647052235497846764421581476070953022365194445901927662755680191583834509283188349150850943105885988014135283817188875959670218833907423683725225887752923061806369555034269021651691102867466759012693553932890043716538273092073441781774750118358682031507029242217726006451898334867135648841548328217529487758671020361756787395925215796635083469202637963577476267353141249524776610397901814341150389080740229686287148348880083993229890922787335275786945410698158009415687326664162377207021940025552011355480351450273092268109483888883612762944255779016679053127424353491135794034071861831458499786606651247784159842293209192925305055666463485622724746674737250601777312086004973675660729047457400342490603471758888349686495455246354405171978471541258474435570187258093838142509225999811957640974217501501766332275493437730856225511851817246328982489307974300614464494539043640059790857625524253877411499192483293669327688515147961443939456129439355276323284161376431544609242708434886760731261953482047282404961309584483674094018713409101656107720145020751722969851874303761224191751093283757752601964414889044163995481115999325140425787655723947656093526298908302991933744527776553077965022610374493997717823847903226932828341204232263207351411105470621190689086583529670429305330687500391060502235351073576524179017202287829280261616672568358666119816094698466341078901174565528639664608916309350420445754376488207226406794348158769996573901286176058040470105685565790218648101321564899472524356167934929748012766743364967198405016802329218805186968012128838937936388808970679127030207607928644858666923417320061284126427323734040717436135122439957140705823225273505428014452068520813409420182081642888873533122754387453732815117080097965949244929236317180811416461797361753078498821713429405125336421841163575215925438051802759426939815835305107956811934569903970228059106318648368905245500842363493244846172550027448655789149782638769990878183535897904964781979695577550990960116086503013655181190554055850970022708437075159812116325760230888000779353385206488900768625697150184782522526716761638718864303910007914294738873200666845262148017365578318242454642818128817663698136326405786147503962878132924584975275640529727736317145609278668379809271100975508080030251042036429312835343052956630599675995339739964797913453309950215180531639553956908354236164015242085731097878276029835547180244353342912148396074071297129160707899637576472392880112885881581800012265583825666455800083796878976540446956828154162836676361447340603893194875020350389257760898169265664721845924695318409859080821167263373689078654481412041559210886452687564018064497712171621862310397525507115198909650019365478548469591363748360344351346546971344837946710016289439682416567166461047597330199840488401409983223100086557798619850681932828367529339221992360967351989329920549483986254500603011501980772533113022885902584869995567336842849079590433201797733266660861522316211757776424910936540190623541174929620069891887467681054781673312357605959426642846414426226204415914072642741854661005898276408763550377943505273735161735452162673931434045337674676087841232775926380160587538843494920202776425199568687771011988681761532637870297063082120244548723500228920068743818830157397537343782064115271283092722590999363080409710859373083822616834614099322355684442839139119668171119121597258204008747381701982480548466397628574685485277485574652011324546096585777836556737028658846570056679262322537574381398428293736904054944567658524007289847104899221972160761609585866264378810325378057551316072605053494203165528651434987358300632362564258825187284361984302773420038108911980466652626398325613859102309916245221088029926669489417947495483594980301045489399512355969993658815579900362806881797557215641527632921091181863764431404639169313542816457296816624437946307110970668703885226814424680109628778413228302736873787379247957832434335974929933426651489511407248091807374567168828242671616014924156534340875599329424800176423742978126464109301691749530814346579700677016667433868513553149485016115825845005377817044652475976981004110307160541184954144668286678211979295823610921001222249405912449967964946335616154466988921823509293358403064025388770725784358925022797076478500753596454140177923933074148736620071233915027344350523313987115990084461169809878141286486763057939330223666972427690287858725213506325963174953974411169602304015833318565562352268979532085540055689205593659057798226890659643906151901610634588706499366560178129095979496352199865045601792066178769544877831536113055489161448164945888972487607229323223711528080455107235004903740845307736186382967242176584899733445064788833135196066267267103310065263824809551845638940352790556397878749730699081839712131415974509742830392747166276562856293394732006214456183820171797876149828484900676863956948559581252422417280341006060269032488971705403046202636028501274551565221299045271668094499894029611907898886084259294552977464967810584495828827215341789471182716159568927120153569583369087927606870627689196451926661523178786480010242880450962357081991267794976348205606104001514671475716038489623357884877531504021741265918529702667403776034285068853558178510185441711457819371858290391910912482922310001183257885335930121935069572869454486239090388243723540234566185280903229342808012961164986474581209578441795560960236575658137730895011626178909224114003788791643301152751727270548254904033090824451185331772353499885832536507045037189614979779705357348743530611046880347510232243132011505295707014668466699173725612406177039272193930289155522662869059192811922115465447454555907638005645341625555404595278855760079114550915991432887038891450227668913529463817104994532234327213493669132173193797132971868931646293491981978278942039178949246047094837336291444524548763115572969188240442884874329239899544789161211803660026786504292090267870556155138237643027060194293693882748046951770929843809731818368307227689724018630735955064442646092164103015890612166065940191115346421458240488609612764360582279171906961294211534166797671175977635826756959531877395619979403588889603977037073055793212379134257908232143688563227743385591984257010497387424699341948657884077612791909497231423995093751291189554769670310345831686973810292756425432024824895958086178038384721418935173668745969981843141810220875107510156925492145784914163693755677498790231977021530377895511420564374418136340501429130727086237945729109241456919067458224029878650613253547576621185777005560858826637487541405080554381140315856233144278911514514143947234144895239932423791327324957470268116567093670974947423853756090325298702135259217388424092915444140421304832168966837441462893409645223855218340241503320011635623730836544112089401755612131756709510700677014452411732074057922950789300747431617216660999664330958395429341682534983133216632978632748018695103934434928991729631281790586020044866447855410598441011606648749177638784562867472837779156430006795190592867766089818130914634138771708349864472916412124272099507896492588692162581568747076197649193055128407415739538867803124292357660428522101993344719118401679746227397306141245754579503748599663244131555263979461116088912683485731367943283894300630107393306724318502600301343005653699808163683243510708655246851371296648456672333725072724387341950923215002555022713073864311104812322841718746923513338645882659248323711134605733400350929900973656974449767694060320684326134553306156295512816429924621653111416877046294191009561630207480863023239468442923433708270710612882094019930562356671231837026229164103631819732887371781540184739515263624683314927326484113855977573578198040229044244423387442969090348116205857120475333180391002686288234209650074102147368932587664878272515179500160182108946918417110306487452348641333071883039637411331947592453322503521774528643394395466534179197920729356108690915899218358309518792134721179224150696429766611665349649101905055945186458589158462104314911303125784717581689915767029981708595778689321370388833996275720990717144159876718072800245199679120460285911667973633891752597732284798935526358869181211478773274091990311656678656319732641372560426585066740863335443544399123450221951929198834985757417945606840249332975932120757610527721971212845672015780484211304630638681285398390668823804693000143931080746530292854437342484624486077695706959577530447587300951458726735740169825544740965591813217258498219193788409371448672882636170520624145857424844920761899005184387554840762655432724037170260077216631523776371034149335782692326469376342379294850105255423794580053358001784739245502915179453433631335298201374329578449806529748185818737196060920839668487477312501692254383659776531493450174823384816992644538337439173141406888913395907024430208083111205895427750406835833002768587236703419298137526530354793523506707131818255272275211496872729366631555627020030201434166003338884871211686105113519541495185030445426672897602368192764186382105991970611627209700465250288726533988598472512275075960235043167014503355773996730526746384455439217231993308330288699526728914384092861986448996610932570723548410093249497573288398792817553711915125821103063633616908960356587980535204348931167238847547889651835914128345729423697356509523189790013596403463929436258485372014823748730208677382941680745951702859201526950380422854313247455793882480749182611571708282799267464306525328192110548605328397660538079893829625998796376688960947736342758597216540576927217057658705248096167975343858823084848566926680949508503259902084807611608740578729835607249117912785342838321000786771956218430971533079935899228890301154046110182100122894579244935542798751779563813094322593946690503957086944864183790672086818243076811307379894859706975749110007249489687414840120366449425013197228930779672762310847425830561254203934532222939912954696924836837979837720031426651943309374706081781818187024412680830492779454166973999501112589921365514926479885935106867952106381740053044947908446731666873895984444896931964621375725394788439788308689289224164169195695603584680143339249520656760052935710100983326230330567220489647169490649829479404069134722564549768692865059620240250068543433448996837656536185753710015903124576504656362236673153548324921576031302283961217116060015935271992520329929372905582782561095797667328364566427004916549332875821445552828636136619355261600435386140805535457073468518811590687842489713722770978028840977834610374072738191644166606819580750808914609041065220938980298280510365354500292325154431553815752516556317096457424133505513473063474855193847841231669523907126800412994118883900223873352555517887427049583148737652853465432155781264641937323335418481426636633776620762407623253177548582105985629891730027752508749209561204883688329735084470695611245986997030544848309121731849310874369473345070765088016388238062664907477621484662060854458781138945247341390399921105899027134129891370468368461756406304501361668288211206929052553028494255751318965989056183046081692027730661317009587924792813211148645899533509995529324840328677659929320955843106615724457967444698403883510494873465616205167888926470300038769196973410133228259590738770689467354483142512774609565906946687513140318381964606632234768943760788581237057672551075110613757245657736254155248128237662822710572001410472817758914034759124338395632373542150289545751735231584269777477623407575480950918463559517410032858182785665592766877360106881747614904719002558601212352502025993093318486133798363653226623270611983427946054668380562110045495091433478984178931318423082307979005034651070169269563587884664160054137248593209388490416164536128083730695600452431761900712881278246018044663972632095690830217227794491793815633530352434035725272877467214574847972185352924085260847495467089717945607463933549052736238820682336056681559058040222294355889619932386736744163175449952686829415601894970476212524348184374015577384097517150244206805816936604254217543667664328415843642942586655906641088346814509677298829130915615391305938377317673450720337987704293004243133772954268497961089587434630230509995731977804542425246349965566975441349459379389183178363405877467713292730592048452372705767595634171199535037923949297205663410488859475916856538515348965814158790376352488964830129981555152191668068802418500934037412924259907714104989448904592036544111190959247515994347131093051432909414199116324917816591381408496273287559517864648906389139827982142323084349980549910649940570999623249935695971320736277133014865682596485897893417874802367980480426924326856034056701474385259999049231137773414696217617263731027245757159885848045748175752382518412753641300905625812716835246400821966655523930119861487612392039763063708767536765556785201481610346456048646497389863403007159752307683018015445030236080342668037836509264670915325547576844035709082303031791413636038727741864589265336307330528034566075403465919255717661071108104095461110368471730613364671787774631009960283940995494523267529978271803546829886824619869118384698881089584864011064162354530869124089281798665402776114212240358257102395389692750431964802762037832775066428992121617775672456515797801587208362515773745760733249910008312289525905461440441549066765199385447446891268679303113177247448179866922456951151706362020759693660632911829716618433576475241139790102251154242816908528022250450981767867803558931534201849855524284799358243150998916965721881422283970842539313424077109012783843831933831105650780122859686095895741119298856718283396341771605101121615974853421203360005170563667330635272923795463088430115406246588702249581150538504296132100437776114807056930286853774695198941280190086405006662651561232273593941594566552761730574574407597911026456113874234900119686826885448496068316690149215414904012074198314107437941799443150982590991531784430318172638474336560520103645446338501567085733137763436413493315389338267192972626721861174167103286318587753269223934950123978662112767160261408340115846051199555607656554920263460662410183552407465809612192401195320573070773250842416301491724684915021940738435317613011289947054124257867463092772320653060087438402994398613605589125409869592203316672341034881504341446707361090180852395219555321794824590952081466548764030252818435414901406730972041422974669260210718222119185898299745559529915299027848888145090385622826469379227504799421732362127218584724078078833945645500687043085309544986469450413470374402201443210877892482797071073660110974989730604056046318156320741340750170937699143748458126863544339188880724219231495313420489363475077542204626307003566764282076404895795218182592175554242779991927099854861387669801894067111778808467959065908511119100516060170238400015706520139265662600643177332368978027311129641011252107272883871386089219059573370842429055782937866436073459270961754225714491193324884157600453856993632588005845103844788839145492056900071251462304457648310611638171654750320943379510038421255145482461494990532080730885611760021366300842493340436314097963606645635285305322902041386433177480802698655443742609032379736643555892142341867619804759785383336053825587684103900516850313937175623658513151178089589383359377349256231457090881773697807463735169266581302046223347983846657408347381354345704532103479171281684735733149975097857229014295548693540809724671435015894029900535976034010279294057898465847296663518124799244545354439970348517886572375840247495631166976777213913068049604049809145543319332295751665669274110146759762016799261573716421411101699204575709587852876039440311852145069638205503938495404586748282043737111876032061118470097216522636930418605008415589792173003822406776303830768525089863309554964511261284963810676505725802402832952301632399842123549914267387636631760109028803011314029464036694922426456977608454796837971616684142857567601253160457408020203669920595130105795390656119568728431017073938405507710117264504626207692988273990458603573252524537666424722907361194942589611483179189910413672732137449521397692040666294729364434924328362463135797096313441385703945770623536197699566111954701645305961044024108706083802244515552745416229040721293642016840651751095285988381004237394566653027418658430449567107850860783739925871997957133441864578092905056008038777301795078162964773221919369694608250140332541569882128713830475103985934672300359773939576020146589492147048807393105679704451012905083612783478834870095692801059339545803442184917336662363905492911570660339207132740454962465684262546404199543398471799931011005375180539152828559323422915435998486670570330810746580915044424242473511259878044004036778510502369719371765533312504847323203203898134013694768136779854752448492978809719858096281008232526154246099555686209217811039385766039823410632748717893650805799752675061703290401369306250852479295820715944659864395500534357164124385847646451395939219166301966102767127990353285528147525717703336084569358530571042810852483191416604694342580185542645401769261036325325159911509286268150299807780639671279564544196448258921723646071001893772774667653178103672242818052717012508920131129389340645931478265130477924433276855274171605695489763669163016615574225721116254259463477364851594912127064882778648851210512514743498661152751345335958602097507855171093434933731395690988341646577888774253827778448628177150999269458743814331849811350137472367684692104003392269222651604763065263966537106791045868108440902385328446867731441451335607495034872737491916799527066933583668704770807689324812218753294994155240148826591159068881156519818899361001399558795388902303893727459037783942240321389028104452788984623430393869886683948613518827663447208748084156960572777464516123982383676783485492510056912917907147727054412459450090389461638911553771966516661418488142953986799923136585357614697764929786379391633331357060985808802485503223193254169264457345183402945960950085329853504633675430435003207057161419610070578983088263518407199755032911519124162633995346691857399424440836178228464128463531479732456132938579014626167455281496823138327460616623876776443958325930405777759740457197086135809161065505678871375661747111785373617508296542948213708339372656629083155966221847997120625898630147516070381253296515527562196104714941290677183436241359707903431849787576477912929220543287522955750652016085634080318455721436842939703859705771660003084370670153562316255344903079902761458438530100280413228140163839205773201992604044261670342306917887248356726768615353526486295969268671642068034532527365496891201273423615530591978652885342647284060929214158729074725918470455162117226974882100715027662772657047383903760226291345646023229637901467716893578674392961347454147209826407214921359896999106727225297137699024402849802639728333185112875850135132790505890735427920725673463448288750436833724895562140969624228556079683708282689837750720655191472939061560385815029744452910180985686402470756175488313379793938656540525321168793289409806865842365648507429982379381530716539017571677910384222539223605473364747767908676978288561788843229402666822267601058535798810873871718273580550511988131307251465127973137520012051623736088459189690710736023227702640001391389187722761997995171797461880356310739507094922216396121206054283930998553264288143977440015733255588874041865986222990845493057357521091553756803208884907634813282543293996655142404157361010767364555486224643596658688582609749412636146598295054399148681404784255604143244087859078369448808543849328788150200839245411588361815645479298865965970148875012687418064577143793712782779237495110379947320858952817324174883722613436607970170208877665015090620189148517153345781822847567246487228109246779666684903369725559689616454791612017378609536162893675350434548573430686123025156502313892853118783272591447164926998930580593691119832025122360099859931020530796420424246938083391835923710324140897878759578583549109932299557098947397072493558229534846969734864787045844390801745164804570600124694639700873288294509017032889783010387013175619694167126028171371023895223943848288069353740953156761884862443963122469149174909075024895670732986501775576207432504601750614027014352105348364015556139325465578265009228247527950313049953644882200502341379053772182643491648416867816369192316675006210458360400167933189719558949916109519694138669611407485639914542997469331481209159605633651923308219078398599685602707448771418675072123296755207432917391635482103083617168253806882824882987725212917421272614518941120199360444676845345386344938248214321930543172242547317895177311587147855797429314020643371667386611440260318958635847090042756690633528459190612981021154584844647626086741489247027788243725171206127984570241305647215776232183322175113031829352945664870867151343777883623862091346759334041845012045447571842720225682801632985811089227089580723169136972147485553967932676071641066924162394622486807138275144885059879068850591592077285113973851409887746658935073693569690158403731572838029649085331374884776227763192805320034627782919093965057503596997162117757242951621537464486068552844720496296579137926201741289641749045132903120806986940612539653036636094549090637550817079269165812956280487362143587752610516679328609715389334732509735390006055701410682709964534213518579185657276672794142602853494613324167246412552020663035327221553246784098003712437725103720324042188254113856118896380128987817690848144323948214551399864089700667527636829754714250015434730502709730728391854915845541629789948443327504717634545451716708525000166333602566105720702188999544220327272949653611838124481449276784229143081189023977347706789226916520633785110057374494612140281930408343865897823055318578264078026528515519136799574512009733439898293215438670298495045678385769765186430387862537160314229584500266817969781483619748399726066751062522157381742198779724198470902216217601175722674747182659411213184406028316670426875400464545562958965948904516264278744943328009689136859711763722648043051402542773359179757359222514139188156733351540525235673287824339479938690209576825564979412459333263939267824211188085644811903906904736855915711258902925345737049790625523257367983135188335836003149897629846742476907390932542419786939765622567279480412543536316819619862026956797239529947501714085814132950160341776652409161090200805632651272129661306767174889596080613301877654021717840713784221614823650038602065764411012793071002783432662366108931434087684571643805344612452210212277222534723511185217820909770512588746376510533253617944770528326643725817789505562922068601754837153400900736093597221398032271996340161559165974884201146954234876199161680409017106586961501292337290187831477996786990727004933080033187947495543129299104245496551776731313944528056096827489697861374727794114110285488944999311167648140378238623423728284421393422542515014275405403017006573138096977478250288391355799949513853569143089551510056146679925884138672361059200685128413016758283564493737061340278038427708453453660448998325755239608263326506063739849471480760921892624767430896972964884219166804011256777976569744488923770469127073803324438328655058392529966768520876804137137136643789983861792389030461158863139412088859521787107541086685695474275127865072233138873081012759106305358073090423923480635468250945821704340368828278541534467094675977183087664754836681161362997938628474547545517135382299660095498427782842542718435783179783511686150740034946395428497201450952546528745502987694659911246302090486844453589693421208518365671552801701691188518728663812247397711579223238730788248642462460867859021940404074067944509709964926370308533563312613941080245154016674048061103948976009831852520841758193694333632307417430633824936461670872903285774871414802220413005247487863719608787478931346828612706709575774468137710370321444357699547206041599997559506940057655594416804350406708800998742245580228730813358889112817678076655382272363177373049980024504966097786784685240060134592784320006136083139429590274779288495667937261666606231992055259917657768536962328986977906299616788973040642664773234922947194598145816258791526884666408229421277337637632606190349437896309815318670310243756833822209163688475426669274893563057756786806239280127394080433074148373894874864314304113509853674629424484353459293438367994047695895327514482127614813070952801332974847515962149684435020403073787691979280177039248247105037500717088863941653899158900913357999765816986397343765117184716263718765746098260615054871437765255986992872143245558750873489426184426512877977146654991525563123144965368241335560118735609547974750538225529013210840029815713320593282202307192526644876067642076535507986966394871043827268439274659017742001021628317307442007491580675259624229988987608252263217598685965622262307474489199520294480650246130056289992163044700405333559608193498193705639527383696146825252940681342124058375114041753133107448823519538134688355419125886311682817296961159079888930240140707001290179505400130602855551417139767787507123042890820021453430545514126096671216988873632281408390353168800722548484088346940026557079177862717010233178608134431930173451387113996542763005180582735388813697264005436150429733966181911341714979937820505025333030737871726830579361039181455074502776278084695623291511744189545532160031135886893116862389320975591512969812489149971051570402088393954603398830444977032110297579773441933690404916832304237890737595905489813967300264875465058656146784026254213586360910307811977946597629891204076453432159407893374000033488073218418559333851857328228225709763645610542240960727698892314031975846233396735232023219205859520908898233728667561459946592294645749369630599676248563615284152033389487670066765631751973762316706479984598115617877817120321386852502931686215393266392009292972128168705904378448222682968390741080461191555309754893927915848755948996072291157447933881805015985692148084241978126330785405173938159355673967032965601017893456066200910725322260779003270368885082384449662339787783454839228855571681989957958636206658656582285499184025958231054799012168858965300353374119697318441167064432982453641302709364981290402290223944891985514574712265716681935200021122217945612588084114126531848181149613074394979339185998211878580437803820787370141818769945105314262050573263954571709404100460523597503534904766140711045470660656170314798965873032093923177747409166959655304645776800168257583236422831662244916222447144268714277117041290450403751593948547354552001434763924441411627885867984432281724090578299998734174889982880963629575301863821335704167733377661027061578965756597793348466949495352220831732095223843911430971517394090681582317274730352712109055689808137012702437774414073249434914121212669440594670467337992657785012858947489825282254109330719449507275406699156356670734635616002232032649111729173609690930159296972818379379715342009920081130326057133945715671090828288383150582561044759281275261427873404398122605288772457287732785269729522591618592242649380949162878878860885036573875274734101298744919333827716842584138164737561006770507478024957070530374708686938073344845798082616067625088908154964880096499341493790120138086383203800168332075385200868588461689078636843878445929350728106106055190310568462122227977976684786966854938757719114918699185845670648647318789340010322469395334022830898744284878253064927485187676523893748026493615504255348259353725801092690476146607831110328323396633517749659745464525044955833540038852657311252260252790009374573171054209395192226394379780591264593097977955478123281003977901166564066405670089999344000008324315113017190377507343208035979516902461325753996745592915539334003931359962008099861613447883364109979555027168402267796668787775817258710867163858712800525315300568993978552586270026865651544026640605676940565546710533604856145992586308701408035164249149461929044184410390114196873321715642163773325401675064582430839808704658359973656705617764682043625950199301523991316130582066541175837602336378309492233535390217146149182544741398003620346474027985413790306912974361439562679451387707755349805450202416372444064071629404101707425013119152359018144154237505436289054151243282531202461763335626001719483538224864715885436054207634900220037001430088673820456074208500217312950481555094553263859301065323426980555664982059958932796832144709036164308367616703586795657570061140710078159896152196255807254102772284244775161605640296738896341542523071484200694729384334038183194034454895094594099822034451707002188395092846888033532350719720082514381323602885476806836749977029504648773618509503690967199594783679708763073906189922043057526469527865204015589285007063799557231269943150562981602098744749225459094185387294493213322422061900603861905539362573971185278574991218992479513609656628931514438561042973658422856611606914976534876022978550090953691849463313881688853335228115370944887465031757249555462649824527971760112289234237037468147229086843864473890549615234457811176909116545061732182151959492860982752138829566785111008406000660797593214664324290222307465853856483402126086568789453620409326984618464457312602429652226239901634709705230818480704332029351138341520933828024171299368483733988694136819462941654477994777238262749328151895588831584952571141429066581371322372368246038157573383903753363503977569426229945665670339942944394253509466698608814816729109888176525598395178925677855965610412837177469566756384131007483153581600859090593925347675623172827194441652266056162375841509114664434748057523436110311703577557513625915181482468484514282632502415589825161010907767245367406746341734605691188795807330770244278019091389083814550991410546890547853866578774996193502346600437810900311908204264814472566300473176075437165237669843804975356351704474956023075081811141236242876578830933437372306749179476742852092603517064618613839680652577660685723921416300548625877058415547114015473397741607119108409959551124229778651222556779546370847742562178228012400965422392377900927024548357050639587306619456658663363019358921767654042858601688165984859251950468397746737341106016322931544410898336045143066519324188772637140285583851453965197818725039676700010244364835001579385153016858683925510196404093368173639661673743985350369557129800782189812926612804086787429992935825019257973443862707988831032475366560844626211271850898887874358046279211619389326630880721379714015267511504260266508289904681121619907629089572047607542666603087548220689933197461737040268677683964260519299518105914092862766234953261577614850199352298141770110539762536397178636201373751632677548568314684164273249626528675752793868251357374141804644707334094770870399835158939575344795873135302727400601710919598122671032837226079641661455312229244324686483953368535261349557118449438740483351306035235201618484080663344377620167178891859344504719841411061032026959466503114539380567686421507896262340361421197519379755462879837708686579690175509639006415287032865367999667634000234130793072502746186588471760562840757243056600949680335782676156413904615289465101158219016234445277012423231786371185260643190209017571572719189904059061712889222354014708489134914521112809527084596379387141306729179259594950680321553618438210290307076957256106656375718316302625379336110323387142565111293211859769946097040738402019333142399887530502502057803835156993805102105263174076461933345712139397455177144129248737460204615977626239789525671801197573669172810095965110683815243878690921557742350547527175451110439280638153209907095867546350773406779171628842452590018038942646954178959695763449313587517950659490570686149645016471008674479240573738653614706210628103915593596135390323500530003915966927031937487480570638732596518532178154244871838893154763185587204492893526509531346653760620774669861984552537048710624128862143573315945166290964611096806131364231916056884698949209303936316986429504958430241048255865935201028328832840343387176331920271376410165617889428293339954403924641035408070669342516585730455277422272747369827579842378195360866171806163082999292723359434957952370903391444888254890806781851731712559070006061316379403582282058989554020121835675601556937511925259233989635215255960193106133841650736185204988853930029036064052938863394406096294278255056615652276605351105848766070976237926923040369314226037752841988735464425136038382945050536470346464429350433039433788579452563329848070175716520666549758326000525901369170605088833587822775126225438973434265776096275624337906790071018597580176006110957128416971650291792895628868304950574724326136192371418734441652104029991378086924198052369372883368024467511502546627373818157016584427315676814865507541237130582630376322812864272899453642501476505804436777510497374202433257486660974159091654925457937938360973647873884320177790168294927342989223295667729889818009872735690500836856147913119505056985839913828837064121791807350693655247778581060876594902038880641053756270554862468040183046178812851726707313213982524024002756643684117327583108875973605751672690105946668939367837268891479990171687981399056325708967891197718645383380197862319700696371075171802021865156050962997339326744267279638753476857376332628401711467543177269375784087930294931901886113880061442725076838502319541666017116668544611609015884789474504367978866073292702938956598911471010779232527105976207922908790486918703123428286339554846898861412853101925872680261574605541474812512020257356782884409293879533186346766458190816467478092042765288387371363459525008787279353345648784265090490616399505698152166217814623560476190551858480593895935615091920779794226258402675463158761034354190297306455582427041359448883394425799207142966494129254880198330932917141606602401460992651845949998900577904590514232255179558328219502477382810073616032788922089637857841232996345743360403842445592055746331060371686620048002728121525210347340519896389744186843142532923453010936285125811063252596994177782942886347378489514780787114867418945786000541126417886890978997064505194318712485466065891282375173647438821406225814176997786132867942248726237324254581324531322613454893610122085231203619697009180794613578783465326918178021779162101358523982902617989776255419480046522798255746496768916402737262053274088050940167736883769590546557238985589845472225415685968174858331105028734311046664162044430663124662720108733328933846218212030035911806765361603920008659492398907699291744346824708909047976608705915999919049898985986492690997272908294758532166458690299350314242161731930045810564688824756531566548919410653254436146568442229375024870962973090582137509158761703763982106803716403394072653136105290862276493699826733195143692181317945370011317874861519764091433807818271952465125948294590386680680156780257478871747002398000243606021271481032328175313505091380218728226330418365134754619158616819640941550093916426457898521371786717390403146234000901011832384645883062915873919067069262807776123171002227699973554764504474687584531370320123881875197828963804891554373729879602910101041733126074227205405957985325977528561044949661555052795088490797461372942746761637885947014246938459038246284816279333018371061036859784117369489204386815583761771160044208364408761481154636812024892852298313627963842308562065591033819983778666749654268833089971498595624890546934818306716230998413857808323463361015471610587947950384815971831352599434637547198902328024895551291798343445066540399113808029961204905297999384272435741900148883132670961084932120241389263001561751025669133237353409540906325304699619262567038529796651703364624739325238686014615588627477834909436312155510434104134609964103404472723833712612387693326124615080849592000870910256263301833499892811797438561028843073328395301845410536988644456825267294450971868546075995506292193763082429288221671206617440455258307998812109413075491911174803644543415971968768718665400212977913779635481245055253521474751143512347611496624360301940643720261730972296411437973275285528724446730620750598470015605103948085905842304649928166878978170253689496333852394977616341469792622485123968701540624850408636951728727227508859332521284974820445753746760968572902514346596588008971344912876940318199116709778302821255937084259433549817483191444203692868066883958775139555124649947802057082818352869093437547344406752028079300031871884732822807519490056721936808312828886578499362362802729514583675302314678907247587815177681234985036727557289663279917327959022859401891844886568022184373857866975507168467336422509285368272796399387574500449872340120093588716877259198684084343334420975747271163017791314609807162526133930732614165910952944373992803974833667571103575508180900379862227593718621160260822779889456298200955502184778017423358495712137407064014187097970249464254689424975155697157382203773606313414311432051693658350180320111992650025295864217585095814624423159333357364948541720907283169737319075009691061970406872744942916468852236524549792689484863983945819233817906719752399438955205236307162839728342499240782220069429722645720587369721731466461668524846017443534629932224589284894502898103581673119903683887794277896699387801276780994722707562933591336628037220005606696952793744599750201706644679834732194836711185159397950028839083596723277121980375207340430770227366966726510092193850620642165454444456383202784044088662471926080674115225247220173495810331140858850894630104055160828174550381044200184079684196856782536751785618966100642014080817214214363698108179543200642820633493840406317689816009928849445347307398153455457679913553938882907616404992709949728471090505209778733859261074842781609295165917476510213084550079321193721980749768869843179083579227528851888625006245460500222596632501029077310997477655383392009807459738773133494727152808522813994774637336141404004250299536345429442439574447346829546592325980484594166862992379545062412802956350889781624183811237041456364248556580764915305601692809289107090508761772125368571917628596429391845696005578901245674872138741461119146507340975384642277315719244709781388399086389851536547250606044639846423836800402497008927211060533937211093451084684608266109375128214630592729184192750503002279195800716728862588710506288055135169537155619971167778536765363450583738033425765753784847132076129695317767574919811907232884890278958112708582074362542369058717095356579567851282127677724496857811702505128872163987626523318109202851063696557864095881367397029367437543720275621659018384085097947321477523968308640598264241921708699846289462334551731346662067795557849483031858695981356373694747697673209728899031682287967670842271837284712319606249088334597686387349384049970030762309009718978726813691644567892053268714023778393940408497420782780292243098438090236270388271581426403274304332625303997022030611032842862778186298366405160937570648853453937155400705846490891344136302630072982198774988194984886393622766006165891322764979169345693039673302039633968424648495754035076551755097079676779880020339610157534527328948445862377318308509515432624637045973575340186114776408809225757396857257755958143120900085968132527192666928716732061612166047346227186941949733482437525514643712811741124537181239362660598265452163416060821503549674378734377917543163931499768620160399955900534222400446996888823435437364960313864656108063323165654750967392253360360811585873642448118189157818779160190832364473061289585120514681075541787003730890952105726836153618657870203241948500430039536322764875317530574392892342853413938254926527307600155184518131904217439597072785345036025132941734223797706453574383975685315785306828630630455137847908715227921748381285282900705092243008881905135660938508622029397092163091741049418822202671570721000346241212026018408793475610009564552325068102545726039979956888575328431784040381367221528124765902285360437623864802647700791313683546397514395914342166092190478689852270815960964899147669648506074332201967453140769696491547724490449991613172496678647908033222143363870219005498420353940361019613644386693391526103884843352776667629707157201866596513024046157706693645621033022376249936188708728859047897167429856932641055619968039902042100946656320393842862835010777798248050331954462846945231922560425018981696788696468641460072725766133789635118978190491091006651104341974268577045664351648751728376445561079189950398496714112200149192978954326833373910571656657164988970847287724481068210389758316583606708456110046225336682608467563764841277531794016864422213829840429047343140532316909639719233338140316323827770345739941555950717219268742298370219259766650088963029653813428493598786318204456555345719322009637495415899014067286366358079815543579227514387295514152099633796612279035925076667778283303462567630511192380978775422104776091500254576884564559224063953488868448454407356655016796469196337749959460553419758313721730000655671337452181234651984341200630262424360998840756881295663220224515618532444483759761705892864088397244313054802015652715273713565124831666770003645040822121086486133045586906686709458884773728618222799302470513410737999905695229678126040301519437900694251746354393860751441159384820637592143709228291203076535207281088070465873880042368085854696596842196315605901130202142557813122906221926635727775970500395534433512259836593524759930749353684551949477920449564539150323197564752903235711421758215785476226681367605115995321788815247302895800530494634993577290869342493189874619027910999085395091858248363194390943172641158137686746654915259546649411828778603821592045320258503796384087638624880304192517014050782869354253493519968342233665749271469352587593482879598893567097931300301583710143616480709371954309013851387333335578061621031215170964226989238031492022979017700332761029563042399694346898085564880754378890210155449770051216591427591756406952887765025641561372748349926182865135732575685447656431993065340603832396250087945738538025408216425593549666982204575354470934128414238991839149043158404156637273099635006501778350494981638807857201146762646457845530182637023387773393815493847047631607847138297510470529999817906500142538392142083050410078511394246766476496376779489480665562639913936676462789992590394835829084615072180293865283908271097741178186998402547180227873294830649542508590603502670411452590841989689348486923799292293210110507905217863577586028673171805976704981749319522909827608008914031544470448625707524147605893672972706960136918226328712569530761959607918301277330779049443136023324974325687074207059311495324507982825743040973557608925814775024672032972574740981747319968864153892716478628023413536720761932850952190781122538466423516502669327261450973077581908201312476089478352584036291453745005116529165487786848965962975879199132784998234937789778288383646488962077055863288185118793752078725467516121726285705644126174085014698324346263983788711134088126408417947703317883825601991240270536387271519565073241808671952230531839391941764562815187760394041098430985739708958307626580154300319346042959071880482110996289354602535008995259901962233446089110762266404068719596916469415194586677982882144330345445952364790889217209328215406790501752166566799202454603317230553530378739301450256497718334488651259276345910725959595524980975284162782088514992346043060535319238009104369400017209014783309209614907581808209273514515850991109804432665316124664469186885444110963004175422023557160884892696842256984149736755112130257005841942613006544126522336975001894657596410086717791889941293625061055552068252751617425845283017566927141091121014361350478840774325491144959663429842289457308346610936760326609102327927156941771304720112331463022380689491974470768104032944939325308437975922067702730058397378252559576375698751677279098664202052082385139970784584367528541626388025440014803355011553625761467212336298970589835278754015182667019407890401580801453438596410811007433610206786732944254432983855665584434946144393429973510581823950534349994456819427326664259064015718343336027660301016934983044398157684719264963194752499626175051170201440824911948784845212950664295302370914995684200795791538040597416593997872120513302273974297634864849209050330852524734517909337886706802297399128152681576713509054631831999295723493756272727938459909517723540079853339382000778953651488831536545318386553890431026310116919190714272068277509499476894973337754116308705830423748943852738507737366391912198479946989431230856446992894677936584664276169941861034577270419330770614302470864074716961000573954846385470828207439946024263252220913886442406897049245055288844766965605963463157143276206985581347520870747778380734670274489056469574196093111296822245617223435716875209535508738855795411282544363756010090737987175589062521577307193908707070689602759178381106694720061709860095276530421521395604723175424409060089560207695606271100139482792150399219932197169137540051539928611502226987552105981112970443137830136524543384602082586441938623532934607043158024380701318911920240866340008526649449340107419030623621907913454529835841779924621250838369413687853877739815382255633694610486821745294289008263374483581632279079451989824318648955017843919088760152169960805904231112361422376852862473125944277249393508053832101332626370407155407378492881712393048731933642341729961952060596842409108030470507879685099321375862660579564971372939548796552101247669914117756346384030735162481370481715617105905332939750032381206908955021486014459279582016027690032904853692966911576997049754631109785420195147672395602749184045212172528437516498586753770245321051827409677481269255577387128208800833173191632309674554237075632481216177604616118080759777183409084112784256354649845660317467513463539849644797926101090628473115646305874298208153915194889054234471712057806132948066234492202909071655216925199753622183647387845847514696381666462622730611915634306017845845272743204066992494680316849136202977564651658625559959104272910488278215685206145688556211567597602754137797731881570693070192348870668184240311695345800383163932952916949263293685584764029251733658130372672318115759172448862489988624354878908590456970865213763455182191728920889718924051817280361085478320385687406243431084466744856927616073188159562269071498622814847814414373051866790052327768806935407155474960302635025269890108111201089595029632358555570770620521302680345494808431879611841845435096835196305083205422463815239501023308641738276692343663018150714490176660937108551464850545747215840660520987674834662193180747267510761431829042464862454920183066429899830711806719524896389531114077758444734621927819040437631495627406124702461373905474736009354291587436033763815499586711316736689706393563735500641215563369963983012744638745392422997503103495740835458354959750497952277333145572958649465884325839503660498441070689980438122725915129273484364850143006547039560686325108545932189175073128626674961459792788637520171009737860486469074251492563391291893398666060091313333842729013116808887418823726097098013091461798388009622258262356571499114176522346391540078899400727181548008439095912204938312749905380584965761586034697163313810765350721132925390566722127868117618602642653778520025180103826321559823386614138007746398483245953591971102469869890356116718488368565592426774296940867868354394180878994149947635118345890578594715744960763834771834934102006954878562906067401331630941640267974920316744254479794633864747783961416350223387655201804345981330364210789784359594972526778389593152668551574637129556929563931458053512631815898491804936766612223659603650910860649777493545266422898157058300701400567357657033286704892226654623534767066914505236692193053329792912442425845777391474482409921851276574459726328907154838777200695389074443095978718561779889735527607814456807823300525582361466573720158421808347762156298183356559037190852319582347256373872800257015209833344821223351678629556793829160029456516326717214976762404190748602317900629708970074597149150928330666555349105335258466388923945991930347457557062085855137882786020074506661140088508222777553942553313388189210289639033159432182704694312206319660462539061952201174605160440391711133476190951116490057117041487221791839495598941727303147351542273083519598268775562185702367396608709590824411992907227408955673250732249057439212612669233460927971597931284053605769145677052794528954072619828118880037701738076094015065216735502364993529467424060699320263896216478695779335216384101067024352519830072192685777019615419869695978941872691503652567610815635810391059345502066101137308709497177432557264146020161812455340768050109432640975330553633099365729801940432469000945711850855852258614396937521289993063004321927604133524871945551647233916644800520678684181150180172529514125565540444720328241540317686988136651224540885470536398462485066101010032372176465194720239713046925424081961081113450209682492991997838603861996717357065753840741772077575157219588008494832041331168840467866321095002661206519002155774292370618366257595330653365106203807272072340729139129806455876484539515718578887823134275556499561056483047930538774685961441890654829141875753949578446456000253329741000222526262070932664940369994766456382683960266454002976655302146276490156424324553388883069163076306331574537212667223051251520496814801127519450811948623481206228181923670780223130182180234961748882662015495135371702347867626182794166397333551406134758792248034008143634172141912163707334655228593572678544873493346883966979926264547383080483890750954059623680266620088344513675644304787702566104147525094619611441567619679294287652561189163265028092558123679215390735212566850336175605784094877925996104859536983555636139248096182783532125844056939702408074048888983900521283892131756437467796565552455882610547269764988482880091509696024250364552616267555354235362308008211222962515745272920181331031720333492420226039661438328964982195892272407406200488612730529268406941620208297330137124637831782228318574898315632447636700536551215685114594121797197556366896813720640607447797289911599332012688352404502784200594644688082538087231580696159102306949658487787313156135729960193960475340349509197099963462077202880004098463002080874445994446736552178704807145777805979366630064147467380478593576213209837118966394518928546034282141414295616960773834827857049837056109538930787384345304043901603289435552637825773657828155054712386815951587333095950814800962722556043229751720146948685056558200963194802932059225308414146311250583152257626860582736604613405751645694096746855391213824588117745575129138021657946365634653814763833854481920897137317405925317612737286915684539112785143741211043374610851381895530520540044113019084415083625651428550535086226339978580694752863392690312548452736046532480789778411082652333059387376016397015769586840109363726268587013115637857985293100914816069620285239232197914790587795636650095957019289308484930494877159409098887544689140016435314353650745830862876450536110865643849798477123923107978546531659749927764205981316455826107435688243191579459771113467745650255515647657731800444468044522708404710850852550594095463967618905163083824058898589144258297126775386559372757184664891634651376996137680704146888623736392906166280847051928316606742595738769597509145969389625822339306896108549714297513954346797169387326928241527186280357833977006707821775754226729877034502604168411321586625541176605167277593310930812069975953756477654125983446420589160010667111673181633549804875146712607357238131231845953685316738739060208109725278772715955176094016795400930321162774229455181819127068618664526847835567744809898094482576666676301120602285508279509149766903914984064941643169889350664385276566786224432911638071223425230198352209192805949218911315375092941898740820515339154726258883855956161302149289518422161495582352411474328713801957086492546467286922417420607929049512950884631406892914642706575723674131172793817244268614013096889564057725516195375928079116790325715305069438231519609402927093683759694369080328893104670394147687192919920129451730952362110973747515207883525965917620429913965517151348065339149449807320966709560509703924844107227895684327881495912050475516346857532731862217276689413440004218601581301437235574477294709285757845338441934510574144331263567791420200308699738139734303800954841325534588630405441397295817376290335719849869719649742231578181991192430560464852418072948155741546444496797120793517269039100420177556145613311522486248543104083547229474551552759492592431158839547849965730431015637464635570505012781858505623272807212484185171931450690242631173029071013639610683082315029755718226422589279999943274172696375665005731498618235471589583596650920329157949113243555505748365969615885256678035307343024849732822968063932429117475345099757050632787303768673707247618429606122578864023970750800834293703146894879723054042945929798828524246569465024927366019355475203146009395911081096812857889021873397652213229528715827636809308412667473894205072059216881472176711282535759903567700183409438784385262234436236330416752183475302940486276690600418540043479898119847540448446489992469203312465690707347927223188997440978955846955323788518849775892575300637647332763049903661398041316434047068072554910783441285528890520735830650156565648027505086109632652525227012590572953356595378709363151389202651796216817933244851519066726807042203168097043209498420753762089843887581246571213847615317969436857908982009165275180899966087880272219540944693967884767415768761888697565582811486271988690146551588581681787459064749743947399790764593526545717799804424676834769841907197191410112772262814429802766377798631708785163469552339242207067529170026306811305882509042422140805201383245173510749566602071811927667672431722888918695928548287648264545037284309989527339800031728128484429017962867681104353651585076646360084840649983920714689611253849623448042970093702196394740046752293726119196500704647004364944488909477845780964411742831455387635994447172463934763438518247278555112484578120180654092084822318670057444441281787685633905500717043735461523218714764483269159402185095395506177521748129425264312096738622723267634133628137597326723679628133307984509918785091647108766602562382057075842202532657456593211780502149234739829227723488131724014387594375821437262647514354689452477203997402886353718287682484684123094415557511587143737049252546650737525259115158905389002377486860953660976765632994945644086557753102132066759927039053108667207892114586934288512670071639353647605464166149970313191261996698631240375587331899236795094963794804440180457672500610083978498213628956050852262101720978165014795084263147700676922403511731885233288185916677960319895068966357024991460883230388643751869405854376136755287591761011702179603282505903266452624236105023972307667215755090108606284713516313509779862004729549049899319275344214255575169056201946034620269719677023845328737425064591570541283994305427141213150180660596903466373447738345173619900173772673651922867149241409781719180512931288809994682422311194410714972553169544824473052164483534867173920825057798425149436485426359894946894640967975020638787443900502281127985083008402644254222535186809304264797701822676595212088513905776777471367490533820684483872941332334216958365150452086214761399189310929674036649425542206860757636977359283132412387350361331200463481967778363831649744261833241539698381777886666595273473502071491220431329097917498672854901889724851033131306753354450173585621934573192139483259988997546700651150558979462718732004300279175926443264951813980902199581257485207810070307693394858154556903858799568075437334640278260281738529354773362513699777149213285418653134100291281028602805344162834538609988942101019499971772557872041272641024416723248396598543579289435360131661710223581629924048382403820901758938385515564119005064415535883049807235145622857983900491665442251164608588134027646521732752346728532064798538996235068814513484906149458814220267180945635902434042830453623213395346522934563470722561571810745166048532426613867887773091589872036660601742246101001447862741744095632375834992727548532882615552832247633105695465635502788804831690522975561052989371345198555058410180092003134230921462683067138609998808706919535927123854045901973543483944118309861122342903537465876847797121509932062558108466791604019783602691321287161637912433653818821231231955232920564830524060031701470955296037313826148635218156691179630145790577560173456080953106387732007744660163015570506613515448382347586356637941129440882660893649573788800026587793701460888506735119145457925799953799061413792020709242627465786923555235293416557941529857442263780523503300873558682661089028693054200281428665134003249971487081199139641636312238406731538497701231681745974940091252867598653043418762578448062345192047173640045877527925871551598429569459531929173544693039185062507160038990452588912561590133384004042401954498156362035208574665781001321241794382908680367455385119513085090416344982137911075349842280592574853783746488848594643064184848940051804149392909398102848334479341015968848781565848445197629604142677725148013140891553689472192608323902690060459422027646317828822499958094660402915564062044619023224631347790355926699068989090614306027710412974674217121712039017619913909087910381503958964172343075887393945503953581565777572302074818293794533568255315316067435915618315398665724348337110726440054527355779002061893698092613382032996791308899027534562711965121047546577263146738188378498889690156259239844294665284458614410789181262109327591067864159326044795969043143367488514245750864638806906007140607052031263642339869255683796849697279661531251418227505837367386621597686451468900133403734295407677697594166252869939655753906893156609966170135631661259215375416761856712586241821566365924859232793000594090634958031163346831377787704788746350935439427824917022778341000861443397368832442079695819799212812755392927942449197262818020267925373787227227176820652649658783402701544167844927477843313558340803112097198397083571384603163076114430015390015733826658549644120701257950688712350575226101326142204953890135667049586874685047784051953678195527979724325867408229087463346948943566137695127104582793562706595969511456621996981934933689107182782127567655575126732639213689579673633167167383745800402838349363201332909496751370591576687051181768219371079411124340872402248693678544130399070653721456584889376835326459010180860964560607081376325751340833404130369842047662552394719637308115388198045527935706536335323710930475016339726809489919372704621363614391171021160917531918190204659916392842661026156238427423727285384154086918989551115878682329498330438338474840747989951307842826025710536584830170455628546629405391623176111578419171818071833779934916102529135275551893900976356609929833267986743293155072594131769042089643373616560649756182183810262633562214753401030810233596065224417079442221598609261683860436280193457012937995311937440238922936206618464893332795707783467298789207236452966695457014129380752438293399729807106239060479525158867105265151236534983091025288851798786513004530133361473983903207155056468361179727224059632370943543796712361554476388960036221792210640333047950833531795649943957501959808065006116669120670096106683089725649727138820386742952118721027283077732987292288280684623980355043689277239405394479811866056341204098460797681626201155572201135031404134829088249385784365218446493610491581105872935655427834024079448583499922494441537396143131115449093065984914699923789154237862115163216515606877558714394671449655218680337542523743825105697726396807277541493933358810382734894607979072469981528764821087452099166312658582836521287988561181344350000742293268017771032427025508823120494097367103505918309033644007493936684435514641983047656416712900168690345701822949031215720751673675034928336202920252713713219325332428624572607854497545338412181131345544792227060148612758873540145747505583035917203289187936999467693435639289760837919200226697929379733485605670970227144511977097362464812747544008870137566821354656254221232944366803806268794137451279568996834116670981195839601110836709732987852652374230870448930707379712591632559584110447578476427084314594070595777646854231317665931234018759056778774156068915705253814266979831877278322615427375570181919676291092581769167136053682840055092960206957550598453728205921702715052590256481294868076220421601876918856888679332748935259655805158248867337749815583913227078888906126971173366680517341826384634031524566096913243500921628387154356043482898574312667631315741779854329452834882023604619311246833221297683902224565566740291489258801585885889349422410949044695410855707388833039986353606752538340914612484976606803112094857607816331774476895892016943809806574588000001225794166670728544062168151077467770065267679805452950637155413210202811598624006206318775561313398261887661710574829112267709113183133651039493735164421537391979764110498069972613719954239054401999782952415598010649201749044585197773920648523172951046231863646465116304976492492157602321239089781335781166932610220955020357009934582135496899470994268362920386307804391451930778640527978208100564147326560688246053580243245035992437963184249267166062041959055688328145098893787357350257843314328129922600609185823832036056778620981525516199778438248808664999825762770944554452191701287288209848119785919646386874648377334526639331706469900363554869929260018465888063133859890138922987917178141789126613757329588527515631380931836763687892542830212084376030620792933879208972733384977584612176049726026745027089098721498752960011562527292709552431069255250358602339310065997413825232090960445234540390312938683222935538397374195349592373164732190224162882687711002390607684402494922784191959890598500233553225018409211313672412472768075462509228133301879219601609704279089452621723979661961413090821707053102734202739947820172222500410739528183000643486368197110255171622058569614151873192238266175428563191297214563396942053617798284803425773388018603653891505789446803706326305019685449901277223290438674325107155684313229189436293335009746629605889289692629819132093929824227933740574790998623512702141202090214908030965944586124343731283131863519000290842235055876032683317932251404248828529151209783514807926235045003056056596487308297415744232695376148268996868508847610666739743151592975405197974358081107815860339965212933750317212545868290570634356735515145603873796062340148804190549196314802329772637957563527004661024176422582730002073428685041786274757235686803982009290510842466501680308503848058193946278744597488963958489727509369930114183919084912307189419513158930381083624060316716635734077812324184622625205359019243935584554455878603819182716359413771372983303702498409294205600775459836319210788458608612695875258869923125047764537668356392761720002149647935852297444896636983426504688538842949566790118823702572842645726343971402500232122823311378505847208992748883892709562328010526589489590339257863973981175956602167627764463089718851500022083758234109623385765683086314141979386615639664919414203747753291229610257425325210850448346873572324598861903230743974580292735038872194394856566063049725657436390224019497450078768788164750776432193482962432614680065437048419840674765024438690487205858615067576789762965507899626260006688071048449700903569561605062087721888608276549594412457751501194380206428034602269666779624519894551895480096040587816597825504248886125040650064170979793849543617206084570111227308398870630140005528844546385239777846076753295807624875098534943283292980784116497937553701863006927879705245189194194966151197319169316620752963759556031634805065131279151794946833163802163841447193113689359424619485488971850469096301402795030327230018621493860714414359973675530234878327135200133414342580820294607316610661957088743426162638098394173730808604091700135263992999629699719059827626610385930590727989717556772453372725426181636896301201540520687339478256492157942972079462304059943646748291972086341605870997957951282850532749993267788832984242299516065037926478620136726187197695792045550505986384064113207524291715374671847794558318020805045907377541080385646674122236632547578170689874861876751721443727334995390734486837960764654250333670550803826271270442579504675038752728102164290188913337931359540811735091012563513375907847818408036662831575200892254575435648010649614109220125562093646016202874557224120939789136883232999874675920447301873377102109777680893593019538508634051837696574124217050125235871581966862880033078587020767410473616566893881261248809038199181065774815805954288036670942374320360316126240151146039560692407527070084548913030459856535619519642791212705677726094226966770358441662930832071845298250953321039566784416145880829182536234206429261871098528271414632642085506909994822753768802493203777606451943576597938235680864014973718591499648881586602106499549535597475570032751897816358551343562884388811523430532548769011264569495419350066745943963752378570275849567070427064333606929578502306757515835310913561783920916687263346853157931202081683184750387387868989631157948791894450713476682118056252441464782391025842359561627531961113579355467308965229485005005216508501457990570470881785789377258400101827179338970540078880078315947867619522232589041051175324637337321505583646661739061013731371884807101704282496873619106360555669025287071165947911620739660657318115410129442411087430669153911208349605611894737251394752817191693592648628996839641491212042764537685571683649381267882246691328707471181596631711326053515360416735625864179727824615225522136924418469070742339078138284652208738798168328888951314859354236374258306391260558604291781810109593448257310122999176549606212548684044131394385569692780520988108220342211562158778429819793874924874799700557404673356199885299311796316774460307004095160192162354394797290480374701605643767160694983124395933384602986950882779813393161271565682794556568295406567142036411731199974862902564344405637335940272477551930058896712344484538958529763043170791394292065974170683842936698408728729380296588079092535479773028094045773750024438323403007208544665727930450949933178333670615534471543955800832559501036405844098302932307757254637912887641186637752165727212622408023345933860040447348033808588489336438410326102608595667386990477143489886998906396915791414271125975206709893005385027227993788114758758955968029629794796449777087789390144136756423368158358564505867351401984497834331344211294016956224854746757036889547450701026394819963293883939150048495062617517879501501776045292661321432186016255601754645118054857895445943266284228739828196164502459634343684651888010763901758039979202229056683201137325511926560424645063449981100051936098171130102739354698743536608624745398332781268593911263507246974381339572070061263794130015643959300604984840392924640290387862483360148283479425284817848980102737835114294515693010227556025262243811781070738256772517486881525192424790734754161331307887761404078195407194883757474586134114903124797353838040837476576529409870299852086123054054901687634704532934866876219902311468588187019237793850136658880562616682780190551457538770727718727899371229374840289155226104871312972769049996762987715915432410826257976021880789657922582884209371932198676935202988191529492832102207890680425738234135023710741772041648471851709271261797204257009704296204369080419057887393302648586914844603417507914498236418516170112348065909658746575759652364867350675054045641544482900879904998355507380827040998625351059027139164414398823471141949777272101262865305617051465154578241915754396245521172581557511788364392386599224217785976385115006713834799282329569397998011366359316525217862196494917270567513160028669901866932711825032429206917941793980577700710387381390204640351941567493725367104469144828820956904453695243362985233134971522980281720714997734885632883476082359187433764020289764405849118526001738268652665679584371322510165474485650351886408862414875457612811657533862126186462940526562829585100302876687425464142406961131264099983143617740201478254720732720018950730078528845113538243712038702050647886075730977531764113472837560151512008711854145141909001577336600537665626922067762864769273262317924570582153229208022198896337202872510339095418668808625636604064852774038109172721947583323838591419738085380819479441301276189080012326725164708817877211681444518587602407260685794386581547948126338731982713516335798498504787895155430850047136711686129286168332675724214130594562130072932088001553017288815000265297850748165832611691309566433170865198151154397309613366361547547679589365345344269897220430690081945152919959268559965895890312312324007869807833072718739269693395139076141981347843479685721761315780298501240575412001279293540680701603386042640036441267871664676801340372970585565727791016985263464500347188427977589834095339819673721227548214009367887946272178493538077007262957309847099635350122203289590047643353828722147745041294184272783093390896925448069011860087900086341105336377972170653583658468243859042824881521058673830888951900546287019334391139257085670449249972412931501921635598336849896288896035150055882188242920971805671095889322319647416142295147097624067657107400914329480427163044194000428519509625014773554956695384207727804105786257497430366131616029001265703395346085357683337291421712219625698548600624503968504131170624528846535797472243884716768811114880211949596425572551495657379628595255825038624958167658867253418941266624121351346650399149414795240112919650550678790798242228843693536479353068341022538773836770611463084100423066617345057919633357643496227913106726268236226427987070147558346267357813583206149417726222098148379029977895911077176141604324195125213938334870697652959121914600421318020816094116339997568665375312839150010640636156762754534117302733261691412066871286728859400870141583434209823714706455220379665961959724206534087524511259652361456279346454778645605926435400814748148732672895572913366840409857828577325088706990164095209532977883080338319338367724642595249719531326365293505337825997651631643719041130609291146754840903110376352102815018550169935161428381377727342387396106173066759489340704693135293363670170919964980304940250316216114590592321979852250461527433892990282281358653705125348568195083334481071249903632329711887845427824212543630775420480267512968663604853076007117853352848499877051588992781990645288214453044817703118582879332977159884755084034464781247557460605140106868482187538121437684094585599250096513232739491649125046811388039798356739575944921045666749105431352580044763302371446079573663036575968360216830198206715607477446027081330193626787402338612588666058325239825830270896146398149319511365925501746015106161912248580716462788804205079371175734400201999120563430000666728203136802205957834089576180848446334187424116349021438426175449193256778377678102586958256764109356240211901241246375080138975693476107483444182338520439507055515589766574322447148559289578578253936379813730202750965724652702314526632643470464612078226001013623790114579334017952083255042976324397297875666114718916889563016817218981251839206369685455660244418675394452456552679320782079956080643945392586953481133262705177763965911996792428643971870851388448577965169027593730700757121603344922783402349201939463226197579420342641074945419189227878684739819141767173210291720937121567022462475195239979799537752129212348240466628670021191830081781351702246230086035300626010783448122414224507872321787862051744279697737332413462556550457038315886413632268565548770321661244980942749615973696648755939103137982803121111903888395513569723975853929509763384231640361815719204681166013032050895279018974501455897876884074035872322400077982308178076053000804333155664014781659657517822194809937667973406046432271161977316795352829097892145207264551097173570938947050873548331823157711969550135651213007973416422734976296673734341664265959605589691013506138045339717674038879026872267175421431793238224124219546623161376313101926125615547562116522684322452020903259271643787484730158131533135888006919833181204671423649067002383813544041038004937968140955526629699079102457828326186992185661551703602693765528842763912744334201939178522227144167238959950415069266698903086139137193660268422605039264703487522752541862903913759470913125787614696853929227357939585687141679038451951355023358658904727862699296724259099837729229379704702590496229202171111817259101834474021939236960336506184276966094462175973571394886175456885593022134264015630804782610013071191576885803090335486392181395763215048510814504881486405296735376550776296297321955695227883371839539251051029521108764801541470313322813260704502862082699826069413171834663841636900830682436765667567099067551292796527548346656229588389689170160108833884566518650037594443672511369989589829580666584811277203498124616457647582796363766717587917127722646974496598915239201300664572316071902825110474488461552988288360574192667390432297514002858445842289725655228501288844559804987506611096073445265416340945233433662805297039092115919630826294589567021966601438529009666078781999121750907348394753032974833779327704085266435234428787182521533713754676406210006118900137005992901216089111242382334553777787397774251279303830503059200895773950492140154129623393112769905866081799820076649988063148088409647200020288631534357752129207228782594812268950703616929739781928886938733622552704073195792980368607062550833603895207192975143969901625322990960570960803386325470633315895368305793220670125900307969144203896358954733291190066986295276755692105344017439595045875853355471218716151165578118531499153483449152213152843802051657708382587012193808450343559321934002355694792828150619465439743438706040796221781465267654767724081085275262446143592142181559378504404430041030746195004377148321840682905626465819782203051186821418884547658703658535365972874410393724031456883166673557625945804076308331376374801485542290734752004804926950370722011581097824502299236047916361484124824827109797924645713974706565807206868954263250659064157553381835616410212536880982682277224866564095544652566330885136794350757604425513780000368763256033502353557255579988267180758546530585324781140390076391130608408672304964979630602282319013129817957991638683987455501361491446906874244013283160093390867089145828315008397919643413184255266799163029027487867427400370099608553191444328586941360694303658710819203499537508711489242584154912045338366210510504564951814448224848174523748245011054266064554403985509660252126068388713476103928651625842721979807225880103462707891858384265016481757869370644869124295574807651691149593512364741358694170292900499954590060330721827844143600544050332297859334394567050604246014146389223243280787695137577803659751882831178403861796873919802582045317480976298457568447198994750351426115338133281506307041156851882283430705774453124093085341575518660782704222044072835575929083343717936396126189598025627315851661103331717447248444882035071195404819708721803157384188339969826092968091072838656422206156345721202108409895582317410650704240957206881453600961675604214537362612654351073071191462390657403604257494871218141721634974898216053923069145257926853170773506012726429208117496592949629433585872305856707793813320552050094903720415458563686831942153910960211327760831891090338454026620443170973638783651213413781467339056267663100585901518750755257973472115142834104223430327375142853624004006415282403524758904431121697409648189383399074840408376634003585265870386545336641424897940298295415094055288911954145938878806146378094095690737130153279995377700281202739633681280897521232963169526769570949920652045992688003319095747115363275939367621422059935876299815512917229359939607275152858496252268577597806236997301426489872778911758229150663795937377647000161358479448093700495848940649222172166928277738293028585898381615630454729200830882251774177147671080171731119177754681326278172365024210134221667785444920897742990984179729380490980383629807977183485951880878024047349394481883017773303536883027281783521082285820930811272090738605840889801025997597331319096539963440972787782807535908579439154578217968156899325228043042202075907240501815581321820044143889058616258066209924470758762448935903364851212978681437049393128224699632926639764130263455668523478497620864842340005672282616426558808199561465088343499844373397243010465544847664382280495864759624786872769077982352402746457307450655923068321742076699840654133250724507689953908766899807764747434855482111793252394283629307253886175716208846462642367559893262841716981740450777568454549091929921950085550967694905734227064484555491565079391715542644793564026936256653322532655295104542085801600772166204686501270133283135338549188238988106724592213231132465241763898808672873869282799649111645276828629733395873315479552666629242441582409790679604680538839144833949237081375805865857659219188421738837507819868097734340611463594479980433249582288233583288022586675384373346313798410683143387700389466448999733421964311875008670383446152449874250679519790273506159680752936564913559024846154349873489284906545809374231420264713045485340956926607192922548139248584002002395839304381294748651268689906121677169767068208428223184452640757643083181735960690501140751676533212424217346995696598305973956412068989813356514308139229618487227402496978354694463326711776165630766817812603343502803457012095873055627384132655547880267477202466224117490256828887988910064993464795720827278911886211167900115573317577630340087008858221364484451183578711685261146686570950759791702772034635577148534312927573779240024712997408030250532633020967831053615246339235121085582636053503825086906114414715979531232263954478382360587336872571850312712617972301648178852055999406308605457119220676499098327220535781426898321947374599345550933034006893398038780587975936238366886874539848850687594789032741002905162839786033115100389640061020302053169844020731754032811492773935781433657129775670310041429015460441503270698366017114985961552126969134858501580651257884498870202029499268735302251358451345127324530589354728421124744649484119331147193667938373366755346200733921044969075107972165699278794650721116620790026378928121100877054417935136411023036434933034169774251128900800401348900675983489674106166338180090470661411680416967968119498254269133619654832337763640557104046982046084832515471663516043024945306835737983373651859682896017298550765139287284289942160642283114127788365426184595954313690531533605366937233882805507540498242045502512601552153253921997121387305610302797215219657502419415842244168486686322477155187103155878009853814385052554285723217697503128724440048440222813537875538764658797468627356564725787831182970471895890613522312775635080817521396231887732851813520199204942510601333045356948626855441182720500764119829069616223083725391803309601151229918502132326187826951545406511781535321354467555242872091053415917993276090554998939038765930730049414868044863042372414436647140657640764845695896722586148478571313454847816350238055169321053259012681433327814744176045950292628243086396098102815618665913686025047132327609727016525898111037600747993892413974949379705971610179259665512893275056617239397266419056197149109419536637686945195553833667871214298270130036073476097187387731309805057926163484686356564862649803471943294985140528736181680570091327096582227455909774565733621011269019595924248485357121702101229032080615628886233394964600187535653687010557531314596176546434860402718005689018077586097502097197989415116210086528809019511272406284876028807518206829514962892267745652473301839966845008371345269152932631303961836883625226841749804688243096292861105609720503245248183591508734790816702762247136953508446220465891493915273725252061532407204787724328142653218494662376707100346522066744898873811551180765980394497802869073153493189404475491423454028802090245454575594023459699212823190647128000783451568715407768278089107024277210634786983508930173385895552421984817229493861850355710015011715446486531924555448063378074609199489101586912933028122582117476686468956774713948892500254946238276960096131859182986773226586779596206652298483925969850282644559654100045144465419581334867022509864321008618453970985944058126032336529326127594669186196506236912810244356738931707625908366374423946518334688063431941282998585906032531797332890611022667353532424680889646718593037384173992318210069655556691978343049077159366799461761676061816197726574606430107070701741266788928567079903158655492091196310637150610009889269407843323480238527758104331004326384442147871876584554142636915721436055170841467021044595580119316600176270604636779565689653984403430750973070505917405355334870388292536018991735360975814905915101839418031075311847793364491184094812245027329485517118134426712462631360697606236998274595011309841533733428604630033923088033829896898841118033506497621800897222430321279617959551053909842984961367469261614311030019772055370673826594489351677850905015533766076054349273011605621464851979598997691552703066618797331301566360365021649718027326470525282503264838831074225744908260381019054215756386040666232190970906230874261321657941548206300201117619444707822274928982794153483770007237387554728127671882166152635620311411778355301084864002319476079328751675869431744510292550751962092697328046557544726403654379273674266585207526954343297828822285069693680430605655551319046755096618602716126902306388398947920781139693977730054281432532635422808038634697034456789160369335707809324308795403352276610692606787704329920376556618370366995092854792439946212500134052857551085462544912837088152420222597678128296538890321816839188777321416738055403864492577049294987372560775479112695605191943547854745038290433577898876888940323390650264487747030176492367361018414913852930213478345047850648709888600853015373495602855976712843142767728308025556193545589196742419482022486302649184307813925091446721581751909148337438753834451063046889884365655767282154417310022360256770134928153590455186627658792919716618153745663849804422030755955784933991934336916193307516904959743947024447447861451037060232348791952512947115664855623371337290269220546151292839034031400818487376829249711214693032434065579299333907221381064008613481130090764384040514816502097989165837099212024336826976257230435589639611188698226198644240927390790560071637251945621438543240021770613396840964253450386842928787857619078646085431211954644187623991617773144292300976117820478626565353400262728432201572644773923058191156245172257787018313255549093482850890274693827526144626537897469375683029788469116667856621721627270215725597738840596192810820591104226576706772705606683694078937739806429088735162651913448910934197507492311679554268785225347808373096432858471114516585208092707025726767199934398534256639240981611881491571274366071911108786910862168116207972591078879665054871047429708803554317531187804469103917796053735514629145502355072104238608359348411356971640431288928606632094477804529081163663526385453346492736001530464803749049593229793170790504987624321504589754729849306632663045335581563864227860814566352818737503062048929384744514247031492543809961239532228200503499112355470352070933457318521424604337752488477421166060395727695500543359280131698672739432529443815842124486182945411684957664908249079860594653735123510873001265293763890976868622328582245046008792692147830858619966945756028879449841245413966222490240444033612752286451876552003886675081464259793828888561915735363392813957662795153106866992401672143964289228124466287322461741264388672817055447812982435362443308079365856981621280535227592491233716054198932539875374561435057902486233549399622318460458183489230209719262496413898927734514645092459164421583605459126656411613645579166584797029688893660832993521939190482312021792909535211242816861684481936513207662590980076161675882975198716599397046469497179895628022947833512124855167636797395465164711955963004544940117530159642515608513991707837377956135396803867394477968592573612254612008277236767568510618439241314414314631471701073408335467158658729689058308705437203077340009739949629957302193539618495145851753134918853734433834793510992624070517396682080616710389942923207917966078084325422877732861024510571744433698401439607992723004365010156594718128354080493010940700964470522007251438459684486103415525943738904346305284178578122849188576237753357262355565789465361271234512316464374324134241685923746070391852863238173588159076651747723233058501189527453044679317192432819293952994260946392945170918740455352466472305876755979614753533543725808075588564898502934060974346279167365366582718717943356084571207989021011209218308830895714007943387454158458488783126357741114520882432997227055573110678231464036973225393354610711809568731772495104423076356384917336631682800836196428084281989950399940247549905765263563029614563732774791889610026905547258515186425584744626780692295403107136458700970404052371480329449149145411659499747277757475734694471981316022968046745238967014576830215788249335531333712981900565952188658163125903318962765620237715954104436737250240767123311450911294132686411635750376727667404873580692864402368677356689571964014155930566225449862135505709969432153103927006294367704686379734968526392432647795395993423384247861400528250801574491492004534574644527758962695479376194594024833008005792831203690311859116804565317908476646258289092209989069266444234839314533681144396120615663615679848913582396364990413959484421086466720093240182162446461471016912359038087250903047073463828584450422711924088206383379044127561027499982814749494996838293012085422388758289356727456364718017147668057158706919990885034608182226177136183233406731569582362874747900106443537955221550367191428129438152174689261368365078790655079649272748032123306837298404665197588643749972382405743995454511311681632124038972978673460928877601734692330430038034572399118218823250933462716056727713036767580296870066262164023057038977179938516649418989168204240625862917622050458997903399732728944180093196850491469716801569619920553929494123608218853832751795113497589925205545808717967028931223960076891185788932691614359554511436818159971007440200894762116855355143368762070214359998915348193525025733959591111793121650962043030003612235000330067140865089384582094027812204684294125964783695675732340457441537517291508287302681625972949645993373462470114837183252293382962977985138157758348994338551635145432841296762293138830348451301923659852746145140042101025950633720213387354700905276604725857325173227739161821765861374298411197614021011689362134582974486810110624807901616011278897273544076852678383457999288634718923932091089902393624913259371293159604597356835933063370359863111374613048219366109983413235922880802864113694096819990871585734363340510809732926787593059455683770590810206996613594242541888557569985095794522632633030584968146282523109816459537033812402314668161598646857188685944296103749689743251506751201360463219773583002040667294465092730439405270969988987765982884819324563495334708253137897770836213746639807353202761473344871509630445978152164451825007370793111201677782265965025890839148553531057130041700071605559491562990367006028347419083143149356844887090060452160806385768161907349168770719026722744388818928061901978564501136761964398327969222948575773472842212426134429241084385868227575581046354816305125190407894512623883163058744008710615702965714960658374147254836820662191107880433151411894249752598826829316780030192847325919217293877653530653183241402115089901167979827947595991843708733469237364263803268914838127216186487805415358097105560417229825097777369266902288696519470843218702667558257561270859060089058991030583403990969066709890331717361072278054120036969862600636802657502384901891748124279454118130127801611451825432112312898907704122069216893490047169886365707596162123238096088274893048770832821802645563082412058238762870911910579802374555049765848287117158644311399541024070856696902607971945194955292228596154824520942446110466254811976243640270267954705187650261744399840967649931729376865193747186548645266644574948876372852146513302261284377359382166611965719668635584123887940035059563054141724036273621635677609227002229327289615347134345892208493200828825781171857813701775615854050976393671649596954435869571988085097763140950686671395611940258510269446362340312003205095046157430392486764716903164317577789655744627394675768825256778797886251247958173882247645128924693747468712580232605709571819833542167852177839657384884688301156644195333433349561041595782197341122836007051038723018337617467627048832863049431580201226074852976974252479004763272099730231559728806599314257363339326093038044041371294734294005103245160003633732458151077135717776079210732402160782510097232165919605756692906857383458712142528917588973957858539097173966433671468619356618784833412781964117078215977620386792501432800517214428881070896968802126420323902777766230433472081452507180754797099937686725506714794317813839316780417203642495130398385152243834035018814823688894596382218064525012580267229059119115072197795906594680582443091075043688224170819534816289502535402880624076446772273679521309459408833102225415545416465394609438861711441348041817011583611228498286725816479137261835457617212454566036756822813724700365502969479244619789722811834171695479332462505568388375334580125242433906582616607447271658928754131538480549765589194682590455462264405042337221751808026472378492504184555233427529827241573709682621540957980061828369670914883974186430676541428817393920300549053071426287695102407135723700235709396783516168878168505941981797704389838207484480991512512202129043653074114386073409838287628253637273239648596549364729706656560659766445411082028896937199851052703551677034975405090253683337108105199407428611214767032597749070963247354637087235223247963236244381413005335360871477920428858894222951117324808042264370763233553669521835129116052594450067632778018369819949474318917071871156245072369016429614838921903256784089721293339162247980760400695958700776126294160248747451893076132928488959767247209216377326279814004064142660036185987842090600201452151173077494997324316581508036151975358135608452616085890524053978344263100069281609864428978052363890757304099917901071113398952822294252587218319191095869643182403632404616987651060456900273022645264643133981771533705104463066662511248085755648262865031208004029578230862547664457993475148174338176501757734308510436421870817048084070716467127393574335207776063334259462329216697020351713116830553983740670941045600745988679116425921318722435071775100723040108178547292840945357255074998298499708281678194478426263629344159990102598779762958319864858440707738189404477952212567241873718123463807565964423830949885372843357895516996479157110487073030695794271438714426916162129401440652465012159479581081802159057594472542650448526238255358817765455139784738180866014313749435757177123688767002530826365854428954136458036751145416871189343895325998402845330882159348422751869827334722534775810655261488716401116778066226019737576451480931549434534128583033918360413263918010095592992446729623145325744043162356918602229581183463935145751557549146982347457577319669099461410490053230943705446817042151405600829653235580556530967768260804977006232930330795936568851956740222261141590464643045596590828066879848603405037818719435827800028777454784146953583873878915908097609159543618397695447609756581265935632485463329260221816334536397923235208931467491742336152898242080987768764016638743227048698701395687039476662680687821950288402348091864414460447968920215169395813883813995048468550756169288823157513405965695487333406268131997362170240873525548673646612648022630540018137675445878170614975656619753009666023004608702624377839522407603199386758203051936679283470419288428167330834611677487726829195886648984745645507909890930912857119413525672148971172125158372096614350507558534098144894616246862734864384532125710154150454251605255522279909010565663577358550473190331744173001808024753890684328963975810161164705133330534106141151192852525005504612508144100807579781365814554901532956817798907835038907568880071740490722913517357800449944285493161083364481831969590287746361383697089364339082894720581223107807955069650058992844644190596753396597971717173447324930053244786211886772860461748154516732480725652679259378992750945787810531919014847905275142094423193866915741251515052526182623625030119567648860141891735587905745236092724561997072154229326374761273976750841290438169582376932463486499334601979193574661340255996396787459264485519773271080180552565403409033529554763473063126484243239780715358509644305053102614133271424349259301219291794635380692125672623958040640614239854928060408425314221395546414188593781164034303613619556368174403448836193790478962110516632804792470844554243122631978910684650907125038228160442390841751465861047622281646272592693599169037918137677931200657230561135743515421684042619188470840255122959806071795633735554960385510133072354348143083124143723944755747145867503020318129079379431937785296904263668827282904547456786460012883401308546774544993367590451326030066621195726213546941029676131106128962044296081585491107545725269612591142523939532652405662334962864471308766518770221528860669974447881618562250497360520444503488744972166609652109308654547458120216481894076167355411216295531723214532011905545012788622407217423478856259690737274992942650796243855761590030342623106854875369335343611339510823875952363805661413414807156783917921728738072408220637787602315337088453023186228672629617895189071846616299627770372951321564179717035158627410641067054617953513679355126850145914529527693673618647723318117328243234674632618343840479769230599976288550776715651149946964473251816320656566184755470787846120315658661587299642421089383081646935359458523147164018050989695528232098114847139644648738124585261345482888907018721225344272490537880979402887236693308986441229595429967837113122398944481737430897280846006280400463657004628626799681475798735268791208557160575770001917503736427654857804590731180241688036487735665390623572508784209992161488638743474558847841549103402397285578078880105457075869397185691763891900268262425071552265203677104862789180708384725083745311029461270538042651907186082365284731461982882656851587399862666808764932701233039422085220193275728091737512842421314814879969148725403959729834901606507089603828364421115770521119352321418160085738028216369738231883973526993896846612798240732659851802533194967847282661318874284780141402027818396737693575779775944580987169169632854798492086894109999098358239562907421389531136908324278244214331624289422219502860897367906023553278037556227398279477303328435795783139956593243444965271768049379656924513799938729489141050176079565802597240430876818009685558513528337775697950990519024535541232767787370527207595907159128817189576740669724861385753463816008486816774908395796991551732111281379047776185850851145770120982026924362940261538609080925884445641473244293106166687809774668332705430678353050884616776726506458484434780709409683877446328062241092361353490415087482477335050153812799760945517795967080638297933788931613383049200420087058871658341473573514481798800654576583270359564831294409745369365008259649100209426554110143272065162624300316464312483513016279713661010651981530662431518262160959028468517621478183628989735636274040668576854191193218500941083194237062161443311270727647670448877599513172535011009616257900500125503089810963008223510112035963365309630948373213067073044330144702790289608301221502312673580684980186857402539120571197171694026663507313748716847611820707697096226891471678475493452874016740339605868162056402326083785070165803761884604386298795672983197653041200699144299791392522487469286606429584369541098205861255416677184244951039858329206205317200818108975563306657460665146206326054156678514650195527669036037155250646103837841653642126726536203499333681073513501375254519881025425875465641963595616528718469348929530445466547574964383890899233790616630028803802407137952869126559983664935668719504494185825106266465260782207436985622208478690598782195507595291119384463989622517491491567585950289172159364921836485457495772586373491658772742824935298561884620467646929396280404919924160478135179222877450734999000311966563546594268243898077427349428523176572800555856738494882113278791074740961337770143187917692160533601969103146014100649478062844977551486531941149572135395620241694905688998915371196608612531480941963646250259905879777437231503782921864304755868279617537682697239366252977824597923409270606014772200728830515121049871738096158509868333451505410204707850050234669398829065234787383953542946054580361957916285055838908784484296239925352881094433736486539220577914604254838936912951374089563698296960840413019180695351865219988806228190124971306431822575582513829718848232847683914427540561602245009001635421866533868074938466069171128033901902303957573050422164113884438639486173370692028234738736742700705163336600281921979144381378110326926668096645643421683950617582867336400023073983537302503293886449425693821639360356686058967348247555324448065820214803013091300633070801493623380151836281486620185123219098394454708438107306610660942968195695835816442858530847275666499353260188082218642825221447989118913500720199696589103293494414342120957596868965005159687343436392525411341270060553716458018291857477429907198042307125143709496426804156273785324327012215388413418573238849235482869109385258480735834698671745334333125503505706857796953774756838144083709678413199303385490743654748138454671857616526865964612558610817288239751488941638366212176341070215672928508613059584860056497505765919083881098672171280128072348137536859239479054316945436416742493614522018716165231527086250121437879372275386913614068559289805021555927735436045203138771956400685885864144651116375313346563545763664782701727299003996140393879420672556711620983558524913088502430046451604242878188270568918753293360724326215784295585378922157465376892811734380550574804827582581936066564190116973469254796827600900235224824663683605149626313546791590360539102367998701368717903055284298224883776339714666748484464751790068775293045155148355114727968050213630976283697105568275792283795098838669689082878644149388101256278068280676596476856285756969001440565427291031177149240499636961541118010453792401510346321786978138904143806188597152350074409802566917153332419740833728711133306683866850337710103750452029115741632389222645010710284474496993087585169935056037793545809367701465546197934097536554674077607670741970509168238262135040459186880836073080070907535583500127098069006014447594070030038847052049598605988074415719406010380015272523876556359903975559509160587010708166245096809153764367752960123522903651760975180997413097662043181918428221317296431649179662686529217602089384793237765580309592767047378836758896098088501759504501667156674032739493828688576209193909274457022729439671394947807558744659128202662626062914612802876768798488185841272458565696957922815022042607886049558997095638814333987031260399087097994978598409011206133140361852296749162779248031447786911887779365635123696344181434624245217250036101570451073510476093556566293164032444419286564928195323812851908799857455242097596840450401640779437899984520149972903295610129189516893542286265568428940114563565083620502670215964829815001674796826288686251967646645166185980648204153818683033824515738862278361380878177635161774922081125782398408528325477593205550606425661937867835568259679155949593496334004896012981979937783431799605438643212699405314714931744823351834211951777554187097047993290729791178587193958573465987351736917275882760536583132774916234166865503110443756623019707588041305453798210906356193818532067798758277147543152332522739393203971315008427341386079580117527673852898831386734700440328628073942456681959669261456441502937157730149745437565297081584409226726588751646193636211946680904080310385061846665282805225864700066062116335168798857722234944149885782342970907068332595506345247366673588591731282673410385162330503824534461200860671244807103985284571282065609682552401222300322864548861070184762968520753928435939812286129513602634231129003818754936385400321567824056990022437867507295379062079394516451098020588273403083821938684409748652483736107858589309064019197538287802702705801621312839414131780984215921215922453975219406487829736565157670025507663647575835483806031671570634572961531289544564860411669756826075986675060652597939286885885193599366823246300910226158532977889911114886231192434196951440982566683198608197850886496031713555083323780567819665752033879258446855983592061306246595104859020921313431412114186536993353217299702758780028469764482018964696812292841817081241667705139720813563734075312338646085532722383036162571643475733332478136492895884473523447130059703055658692172028091924064743136215914124143264350962524058510123750218183379532618313743266923441499051081005497168474642990381444169268366684695736325512469486182714050934222589261054482776910007445382353644957182060017000800375321592320199132669805775669098930590322925398499334806047344927810738246176841775075357371231520850625241138433840307688813632162188697282443507100570526032151057449564429800645280040100473095319161068023378493019434529645768004945699151672663278065330591263175050023822450969834121354836805951186339360560774269072628595350651809671009721468711358981939224495122094926756745745643646528568040984611207825827951411084507642024779618173785520103755306388450034787574254659150181466846509228798275552277468018051929073407145511538527594137701121586865686943200544094732175672329822242545874943470987274627537782223873869488079860092221906425869036030426547162471850462677672259443234295959441417067991648151297364019142393745538185897798933996774151796624032269424452827755986009178671157224005958057667412666230244878897248456616542564675513558077329314323326790592301282918241109527329941098998768853073824467201656486869131588811344014364362173409618077013278512040555237678992735849860554821490745208453575073676254896270716852690014001395781933912481580508360661206211779044922830562953002445804654996376409882528585997803594466782737780865682039211221145722963850451391149217678983274111357600574173927914295099036308677297954404022937672812124315762159596155550556114151969569476080650639492664190846135477787228766464567691780835920115620824599907602857261025340016798565288591764866712062528664448198280924427136202893267970040328485647933888455281845539353753357693530046116953575727894056396556388959088320093961876869537137392378809667617012879892042644584485979342384059102005906284475043012841238145695740113187220927288536690563990022449791107831252408790767164276119559791630397625995582750134266985963477586982871060253174318042394866197478263458661381662822078888194054331651244959426927326874348657669178928535533622026073382367177925459773619895097831039248161958112074957964500442713462421654555448882685523372382796581511321413948170442439227460168649633726417201992632296813055959985718600826021236737444902844212695734921053715651068846279889927912051501221250878444870059873544854132376277977809722021399862992230707065810046730678386382484323263557213603735325164307064174443031627504909713362522258978660612213082255331547253038709953652583429449714877513450392054167316105414209668115690154946531028193201047623111629927909438176020608200019373168591982669256013758032462109642883288347966657257339979216837414465391421168559924632502122365903520295841170423481115537694727189772562862394982726359128090044421700983024407942500686001211670909749880359008479801229252324449158100750812262903395405625417002428222176612118097330830119841814558879875774556065995945664480113888632856950583792815855921682948346656402744426677950885344537398799587242611385654107223009299620885745051788627027416149659477511450420463144751039960752406942968125127243705830983868485969818184050113937076291811117696379415964737397252757641087968961303966799663786427369615466579664690755111175842179684413650332700432082465728228871734023136664458057312522464803898797835303497768320129131944215022767293609332496646667610083078229936866905326098919824625642430593962514401018834316260608711543868975709175063584711745723886074779608633070807408464454699347212097347621308500032511695889939517759916509981608236745762677776887797244527916427540498533017140762914467290304704822785991662968179033749812805815549578128956027732951169845365111221953676564346593244368293797758442993089048696591120653888971199495127545059139534075628376337274842792377046648717741844496705268078762938818135942441436579793213129203814412433808670821515867956634417037390140575605116075212054996244588528691286796952032489985267273296355371058534218888865686879530114540108668580265256398711249057223589617245725469235342023594460716775573841797920923261162834843113981055918443798188486224627054127214367197665797394735284193005430890472639077653708316615527399257843039509276440139637657476610808231414975754596139809406529533465097854005969705096439139222334521196507397792948385791515191335482603606521719501743230215024346301456767215162514496173147667020370356170275779552985390604713365762633097011413277355625503507030415622716647534746490947267786183675874119268869345284186407662482166610239507449777831466406735145495036028470594504343251817755365121803945370136077654837222399615609577338654346398876593796371959215141324310007496480847998780552831282174888546851457933525825304917425652788032723081913937335213047352771726278449231017371171973844299101837753218184250110090175500593583789128470483869918674198148753232322607256513475561683396471935539905958466663912379286552657716740268587350657366520484358440285496987334496266567170757219811293332121690234362210617219475349697195833230971503543144045634986107344514498307217990371419973695411279295810942889990542239249072850717692212522835715038456556642775991652966160714512207931655903817687152595593813541640260843737386210888377373961705905195618589064985337413089299066818312425023970716179332700974699241836137012526872495250132188647628412962244522027812695070808360419941045090431062876887449427753605477770608875629017994967153434340719975474449557360469120899452355887230137348605811866734072080403101263394471880465699223736755076545644321853784416152123736754059144416472261359762318951633061796259915092550480804960896344997340933033186773200975698974427149150602689492383734148836284190823195241660002858811017674225193884119982906032216874989366051232404194000483287634495021082207765438294152088381103214794216768791471748233736456935892564602738074744846728309323561036599004201760395042432815435314301222461960629793207600212571385505513541790056815451002939914317313496089016705565419608607019906517870922934936337750310924819925691523843399868758008216453958059232306978527763226426060291948053517152733541958135293562909053352979925172901643656015780187850765217893383428707356252880594079243657346377703481663327157644713213227727247604414028641912506488224745173263351970575154500485643676900450081977522946673694529363004621394398819283002893615901641621073910343145101841144614805333799372535718333335880832403373739689704319866100462612670105826775006578344224526140734149233461345702744189908641784496569493045494741133242963261564492281492730457185513813004616232805835501081567813417788568311973192480131245657378518825342280154370475661169416475952024183928119354192312366384382445205273839142138453506489232870399126818659236406575845067163401734861268456919856328482401866484287313269792201183139807005671598104660505068463521125695392311957973728778564027017362340728055359905120411188331272140657839374778325675937236545838174866661793952633971074863455601102734251491830790518872164896937425423043848395131464254757807135754016117302726205227345534337370672165246513967535358022334476709120928278073296311750715544760280540811948956447341904945636246930318775435380098179094924433672962580278432393572363242690945768509683381477555844494482149303390153593251451171528663173587957068615936185618583760286232389330188783952432117078221146526955405827655493121731474555319613597203373154025199645365318191160829178779099247034196111375387389798963316890600535689444844649378613715869957544419169953239612203024108187152693518571651965112271856753976814205150348848288979403254338924958478299134964698064393073048652440800819866482903550113183839497780085944736197236838924687794824350921725919282083141899655529711816268318522850489236123808937371488581711782264384467747494000534371022852519329085908574681420862379275100540022325092852691761416510565133462817647385318818115490945404709300922043616172485261574550815490673370991770904103714152939455592354917545727425776630131575648411117189884050456352758457344780423494934330036064697189839764435356443041711842237595861594440896947930242062399842425170880902398474471183828931233279887434989580300729574517858964137700634244567549386919754221502239954771742165427582129654337694313587223042136976525682280925408144178455957146136693621285208834247222754702815659732692836958084763471363187479729233955279111681828244154196669614649531224543487442486597968337895080005459777139780514633837081467580622223624436762006962372641539469580415473673613839029842377502864541258765199776014170908226313167924013914562304718774230151890823279568576647310115103954189436808928747271823412357324989798297699389971745974460336013295682646046190063927356696601161672470702191754785439314126381252574237538286573714952332725818857672459516512867451686738471943104374114589221172642139540934545676969815274517311605812415710161792785894730754801626912424679734840948064774208214173408171667928519946418061610936702975186192530961005355439106060814799439347538409002420144989915725586706829356127559596677095321881870645359749306785682010818159572511360029280666392544899220237469794855292739999786017103097434548885281705622663298493672456218144374188711610406746161072838889072067472983332888092789906207682313567067966960658169576469767224838572672794894831770224966656399563604651279634876858861598881518007713948892435899845793767041746072612038356479648530198654299067373208616230484477040572132595481275326259759165770134235602612391367560014652069754494302520235007772108981400575394671815128367887365193752874956026469429660300795151790896999537034298978843179395986707637176820438387632778950750590151409143018123179634145105338073266502944984846342262722666625290286950280437553501097348557476489648395037129436238025943870425516504567202149824082859574544142513690596965596872870839652544122211780628490864747393690595961261301183500148066263558362934642422201229966642248697574788715571806375093838077105160059476641564951616509308485319524328391359179893062639683836358436164549230813185636933861478414677264577609403386003223412952833935749206880731063985156181302563273478784591267124924485367280245975114229686693395539450843714370156917027513632234600491467912159056023143604763382830653452671056813608061087331944753460862284690200545038061854553316948791641917841341904197887774659710446226630521591818810608701409336617126216401995092806341169975616004732989369901106177411138680283215361222358126512917456283036164721035357331297977736661410385044782723274048068533799687540756393343155093768282306327517279806224913731067732520418217093329864635411967163854495736938467560977093707081100981083308314450770732790332916830782947059188513499701241346445938251478066144030142010014948766654032522544396953065067488612949586815351154607784264650562320708045011990666558615081074305828969409548244372328910259150448279250389491409809536061049181994060394461329561502735840021698789300877751750888456801950992711841058465134034858499731537336206050104518017898671550988850289367353645827365404782684029191092533112746220344675615768989046051545766763115359407079203683376814553967269265548056571297416002399891075228061293516244651354993325891555511388374610608603785000391184247306125291668050396386053832987583445860424930025610084985746927814741336133898415122290805031719286350447653274749668390203965565455661626765835059355299603050503032272939929384853385373955223853701311875573720686801274966448126580555005140568811691670512201632397905033555919935027584840577940086902930540980537806750660020566005449642019315262827950400919920603176687142748359764779359092348355259565094483503941889451144647576750880162425079793390904275952146466800938394473335024769740430287632363206011254060678690448868675475021543126886303362109024050587705849687122061926894945124794248497898960495383372206807591646965928446678542485014309285627713807846818853239256134308635883071702986086053713486973502502798642474704793808741433226793238585551315601529285646844282945270782720667055211215909675712920935367242640717043075153834993856563876613805115894278072037254468556191325742334479553744456561607000617799940783986055328478666863449265418982324798247960669255219924419706214761715481518233038566432655156432818331461130319342160747081022697440395783552283106600967231052100068273192352937647222902648449389262535617581353290886010433076627195879974180926536250304634772916524452959142343593767806752119943896063525149741011709673793343478794520620146131934175026097060984324347051092357307138911252577794270201799690761977215018651266762816389949277229636318242448310284193092521463402077421512915797711762566136231547497313763256960184083476832346683904774513090800571624036017180536962649804871713810520284267058254117506026730210594222538126740907862358062353726143568611110921035668792647774567351629291154972704344000150711609441368767410435735705410008992760694399971079600986631675677359005510745267845792013237076084941360814256062566885280245474098568996554128862697761344702271839442934446868125504373609771623512289746392292197912035345510489556424619526643019857967533449661570311953987307372115569404789485123403739122223085819447563759713197361471332262607689013298038405577806765890718171848357108889453188290847382696226543164433414690313276617787356648052910963719056968599765685315744088749578252690206969577841886470835474948929711019105149768038884838107312406597227203563647206407533923142330685684579488265373720125815869218563331499677560541929981600345418890987333661880239803024309822945031469517760811500525614581178079798729532514676562817738600820951175153270019067963929127474607217280619523297172362989000925574591649158917210903380397965519405020199731315426715166290765499417587209348745683303491241459545550352895054752188516622083401419122606816739085257371082378564098701117101553192300380423866651507581119080342880707838409159333471666198956120678488657196506677126030196098839063242012879122531899707432571890269383678787598720827058876478847755810152933559597991638839683376377452025190932298499150978997854179605170060153425908563602869608977001630699728929635441309549768267335581719990588041901666470072369638699293652429474538115768521840639405965409827930097018298405871085514264769527321950497196330848514240210504178487900310662378833715298568098719504773669425175387956555523009648781412564360504912646493078085474303134345670506753669918731532034923023795679483820823933739179370122143452696714544014862269015238938267008044305459465748211351415140698811931881852376013612416750806068944184620250563611847951304354302391768448393890272909038978527942941693053927391999018127520604259803108681454169079784871133754775589688914614550060453129732229838230031051827328728124092210532969442723442983795841484248196570955190318983296616551008927965211206128124602771675812111251867879408098651115146905630943070765650783332584308767524598992163957326661381337414477314031450150069082612660956312486696694789064655324309291715420726844236684774853628246528435199066402801582276894474579146990690671228702256216106514781691235540850903509847967405892946165853107678841219567035870899614503474177182895009306993847443840704290234593344584766901104393036789031746237325745720389685851870148366184868724849112843657571811959407413822426428202336368903735382465518373004365377938986105835291751680627331659418908443739024305145287083732696242023308043806741092250091361078883271446770003703499781277613774641761624383982835175898214388448862967870240799430516273324371788179295085443836022388375172994911705365365835483944871932633079319042283118338791809911790703319427305122584029582564345821759517654769204262848300437322196345524048253260676193407325453504848392337080092146161562202814027443157610379054056887622434863366865934697704181547996912351528002105366446523018883729657617984192562305942639896678353545991617180756947025534611901990657798105668872938478221815929453370145231164847704389311568650687814236495933127751271363093377880072178190214441276746417988328064721735900290452153472658213565451503068296375107728848684255609488206004502297026902992349021542836005170056636059972809874157419021668224350033879901761956770106681491049405032200001804283391281591369229615891745227086010468457143308545703872999319243148239899031632946686592272851882605269167526249337286136712133984594674835184464532001007235386547228428996537485048664468556016235685906119209238950750675176544064039205597260597108114926077339231433369702773824638534881361562575918416844729879932676815259708116887116503470923712677369552963292678650916773051352253739613869419174062485800305161639358348720970515486329156473732967412773699065878898554935487820787387569415410972552286081952318130264133349103798118090269102223651823477292442406927067614521415935619973813126089927174205684206950765094558172669021054607626090741887387214078662018893393676230741951437266352450873041881755977363592011975176162872601697962849036580553011780551425580158539115990150080518284856526358631273877959244970441060429128577648126393682732523715001552260068623501225041402199349763613846483840298994342335895262512589068280032611289404315889352724411411269407421237648229500381312287703457748109956567037089637982149289418931981298607053182473262968512418400943655406985876803650686599598390382818264669057957389006190226948244128663852675439992247031949455707258186408477540839336045348703124049118333010298938424575366721564402838228812818081025793185852602867513281808153449785113613868024011694778304482057470861922646575736674006354254953806742801525061778589163563703821198051412591633232867261180946777606732189386901358758448420687926067423638178533116947401642319708565114065386833550997001811749188440719264958433068887559876332208905194621072574301914205639902326062731521988783173669609717759684286820429769875350764278628836821499220367097490856306280102423617281554641408753662061184839988004060025759781549475820658227635103271387426948792757374916487652932437284959494366161537915767023823667282903052176819446506196928579535341577147682574034238381217936381370962750869835798530939586053900602166003487020283522513479994831567555611200773886204186953234287851776638280436490835970585275246905991775718958015560237103357328656997638025853628623608978994836632737553470703766152768001016022039627929346893127374203640505131920493703558468374205111984925505613346348710187747993118193259169528036413788682397394100618007360388081082687064739156263810748693768114531694592543259839358461679074524346172520275946566628905304845987347593364512315538250251637807391644848870368339728264742203278322281546159013415578560906216337429624335283581472083627547159466777725032616416286833753646902360462893400380997321243396605219462852802921603378392395231084330994586415122868257943940831226123601887902723881927815243539780348199636213970381096391968476554753096138018545324921192292841316124742103990081274197145778991475688748879224178240074177945149730291367935588373116329048738199130229484361700473039362111815784382805291750651403367947487382993812586691993079353881520050675636602683668132607858679155195682690427562668843175764665427001312610019835051285554740001121263332902857359631144515298568140467409142724468184360134538781872651564986420289484547785470677710320032262226841903886315506492283918630662357279767223928449841592828570086308427423211911323318631098841388725958046730085856100425499114030156769253983124711296202618583502296076526429228208166326163063480274510432001857823955793056133903256106086407092512420429583285325931160830739081544681361469248773334922468940628419278839725063321456114691071396930022234157690820155302727910501092550288580886014979621414540973445827931506178633164288014466114247759214187833229943949060254452085439380004452705005557040781649737518677736638462753445980950786497271276044324289052281192284304953228799524955366436457977497619820251953890772357218512765004948644188688670532979027854941751666975590359517654712848690860853865485215047204428279775094945028520493396501403969742725770697820135276114674108908898674132063620430509476145903394202968176430376177161400543041500922835176636142491015938526679361836783221149175946857609976543515241518650639743164489298211167569236645669151221012327943885424525405830123036011344211736087621736032088849338660906243367015010204976658979808579339046300497374918620793003963642991451628207245006022156554883796050306642809317009104192096504537771884536924946791861100285872394704883508478443517597388193223549975338966385301146896364730040594527761899401160066822002483473019698867776504594905513515230227009122070461107417029425240641174271141550996658304644770816226561070815155147689253507394563336754238311727007058815881007811563473708360602754001253866992012562156171723368873291558147068359785845922162630312957301577575926466788976751116661887741175380926765724784760571051193259682773295866196441703221037569780714493478376041536329811371640614486931553577802082642851620025312265800179535345196511798700659469271804238201932004506329392799977395248162905182651696200658720132007386433014592175835665009729923888073543809892648935960780206289225540655013935821550432491916469444932734548385298003841999433669241205461057142789580792068755245718315968027531330602327866212629260308515516403045815428722224993606660977581339990842509876052829917327456486193657518983924752848906596205088938514350989580421179988580251438382680166049012565406054822810102695446758702273984208353326126441054302603985897728994229349227401489017197123786358908459085080216480669957868912261418961061965101935827670753039412060366924241251273137576933380632443992518447854148131526615862310544571131438966224691409238755441202475690786873744576179360099079300202518496599965944230134037198500663755303582567666085769290718115637229776250644406196350976787724891324166472764386218170251165426727491806033286576164674486619975213760302716262938176719695733892012329639641173743903666652703065630814792620285908605120362039833231701988378324201828690395165915360308594491170019948754767171211733075743022382053170586714131210951595554601661835464738026556224309144472600890399731776850317875409254154419369255574049230372487889013911466462261695550783287495902931807674632350132232890568534112341694647081182156018417713579855451546540564761351199363064516441280493477212595972710327437695072684776555258251654219864421732273475163886794093043937814104191922403558727897290385749713492667984095064833937250623360535693049419417922709879397102641675905456526491561258523083215941278089897680085099942024773747309869312162810713067816850092661363849394683786008469210531467967618344401962650773545318606225108583088323149155771771258703219574245443628773692473461496603411664376576595297700205585647828698641270862680913179017788695232992682317329296786947833447260012307813546258348878251923265453611453624882171885711191733806903069323007197270513241202956551822780403553561006980065094586996754433332192178612156512732970504109126264212211035524712227429573609857828382999801358573294594064497399268729899940102161554147972694870020164320894754798459966824722921616419064426947899915237047242177606709389020277051066451873926244196026675117089174650945592338259678715423697464354807333254966124603182963381549616549814060277861618921216289813817545501760340311986122101450371063469073024890250862857704525514310725485476444509967825623614941103493456948221881626228256773823661489099738860278289205929386785363554091446405544217787234188963438073542983116325015488091768952182119051399689090961470624135807744562191234467179003841664791659985014634465493833874287763236744101698418473659081510648650290514194140313518868186051791050998483278401396014283695028864178221464751756279630542451085409988437230118609949381521808068051939139282106174272991888478087085607999342412383329441655159710329045395435087859059095985320974027198492690764421422412194231937449067797262320450369551859232497223115004081113996663356715537661886181723456289551856596430430963663307516464220540635437514805307827996879661918026770608816140794018493465242235647523367885418594044069365011572302775208079849663111665180147951660898788265545866786786683218629262694567184839826635039478714724329249017177767328510600874006252764436341719242728566376159222911832992701064314403239028296575643754674199849331891779338125330136352765370691119013225151406954765555175054760174783234502215950985459933197474263639605567087837107001661316192229457100218321124234804889600166793632888617776114412483117402909866010335584001752005416792120523839634047661991476449634955196113957442156119415794150233200786968265264439330512734143698024916587257269464299087882223946366392524080877873389069059554785453529111997955447483382582446948060217653410338581853734864465765377427252475388181692631850252072086270411612860637409067244117952378746962522489760224925417404685093634241176112795278622996484975397105501718408063483588613916241449437117169508115171826871946110947133561481615981541824476605837956473458791107379851803944538743566244853472801928974915703663523530141412052027603220955308374156136634056456318626429384794152551961747426253467853086326126163120131372602110442148880378799096046505954250712486427085943353055889667326029359970830780102915516692105545372844730301571243006954445610962081985714505104202046253088721157270987768283068342241805979253519155797905259118710161160857347703414850778621045533698401549751601586321631403520977604794900252095288188800779960662877063690277324532286290172899769506507046198557216927322613164299025961296095684876384487302979619211571640973510111717022851586554974148771949552766020427498926947415179734131174635727782718644495400969072206202381744344943718265544658016506123903034824475277395030737203230151866299763171438086306365569054727047671771350886904784776494475955466188693991987441024605670864390553683974664097476828777844727547265231367464070332465690299931230887222991001780050673803530197848753399626416307249784712168026775623817616933774664782103239229273193631263758273707535199883806575155632565676404523881390394255009314054261783218065123021998141491362802718377691072782489457306144236798294325999358857774448641790948829975326823849825268631079806900174134329184585391651537288149193088725778190117599060122235291947792345962727019904523999955289171372752702909167670496717722524529838027984471824960472330399558458364289626405059938431100442179629924667411339036818702740779042470953644879773947203399166221645028314596637828737841638198078423177140794003531546265153659063045452382432019184555453830224121322276897203257113267926052179167190251205821952445019646683162302621808646812046002758349865668511650201807950299338448758382773745070002326215035796960770419693872391917706180663795463699704872789929111463596316163066577261523395210287837310186740539700516777268493770329045350846487803027653901793551634757236157626358571627987459337137599300087128997037860580078985678721013908271306180271082619110884065706305089576090762074772875171521595873706412835778934510070037103571341076021139191523306727401182853330433606505826801537993735761183786957097818040685117350326608962307185297092646281862427480476197525658707141959687718616438420146672344027778029098905031349706728004306110405927133308143828880058118990111802299860145025547075314260027569214389657831738853693583452764944110341450979052612715454220394016455420388534517961799913815963335373285601681619483302365512754602004312333847492660163331222926855412544853857113050759057746367230953619366887508107605890778190120318086164080964248994464643073504164188199945287379628202739137206584631941255629046659326042024606183178613244005280826734622994436756571837444173611926071875401093284223600168974054237462417019489515998959799595407846404760606311227889781204668895652853067021709758412521059678606070145970543694265448366748653132477578920058890679031671360334970690294937143272209965106703324330402274771608835750445548972538766703879474467170922923623474760042392751696471043490897747556884896891070636649416569976310948657239312810218203114389991943635764136905063591425089420304079266158976089620583936178261894021071834369782041588761285602638304599295704123907661900781551781429495992948928194700648204020715102641504880981479714556460773984847796540091384882724630895003531953492769721866165417795876009587764918429535906846540453125126506791230629545961890052143019859658708334230471063967779317617381559069502037871967146699808843564483191926656134616490580107923589612832979200042697628175054225752758406906482650219466942000392975997289993169315929239484281628946191383552531337502620790128935260177107363947573156122634949963026449295910261965266649040295833753719639197459170841869451869832925581442985822991435064600931526391469635771591955779854776732607854919179369084954766379833615523820231769923743148136341030660353185500295356877439140727310307503551011922883343791702476199920419319076958194656400057051157012057065847933418079226216764224578484104479715481516366479225774082419441255158707779835653413063845406378548079067530026593285881603881257726783897039574765269741616017604670202795252778256356301235031419398057335890605295177254144112528523201316206003056694715241407788951266403210934290099482166221944064658004285201955465044649412268462900248529386718968894945036470349984353051328796049650309792248080542459852491564554092714968827614165525249350029030883864411797089716048628854576462750782698973656409641649349401576577521702184165512924814245705426095879457784696951652161791823842222661655327812043479594902581678376819969135025364573410709137312837098697522682089340458932174515593439479980605076859831905177976758915659234062230535633898561875545831599489909087014630193874033850528690768972216271234888663077289067027970045287308861313846924358386660373486981236096413180903728961408957817340726390233687503374221014741192336789006266196924623588023867859113046011606438392225710624868621084299586652145254697544735648723975426091490212585776604123217860037176800228337229941816736149856524567749750634882356495635180676002588649186664649887202070756964032627725238495516065164800267340157324673032356181268734362387225356233674698712408462060967174116816335297879530495306524655538375870678702804460708603649358116719765565853568802591553423501315772269039203170539866345791072990662602368440325571051977675179097601312193707476130730460393891007494724486498378718185182100657806760926804217332292514324329342907372234146537741605001088390116154315478993682534938414258165478830528100240438136951416451858606446997839214643155700737095584744665914784158763051411717729461687407451227873915173139678310919046028395412910639481064479382457294068125917850574969741302331143888704827344857782981625591553515015176913837401999153959100296250051086086400999795202967844728143241958523107563040196541536938162867633132458479290204602884198540038489133262305783258824341918851809100716965287338702840589745920946285474210032157680639570917363395027374891695726058565826560843521072402900450739939051433583379971058149127733604247335914587966534197629763061323063752918068888723873023454701118295028261967063338918352210250134860145767968596517160909807875752646094019095203140531969194072443363443542675562259446664040252890494390643577835220523343722313013381345537489384391854298923690906663103523325041306555730350400422996294639289255771447254155985551001442139623722666691500342659259151512196219664024607620780924857269472520492973377853498349891377600325569724763638531004978426210209666410249029703699482840030219356736596711548184895247645879082110680694847588480003674241000511861795597985529183827358304389292891550998706710359466489436900774748872968556136134554179732849626365378839345826133212793939431335156530539641990233876086104079943733980490334016032976720832717705996475791797849167704422097591713813838004454948250426471124243745930775918193168700642400145223999716703213350360332988527960137534023667459987894091590655288361261271720602356761594758791906117379363107380538775487801126479577328860396862266828477979854226107547886691502996485693412211322553991513610613499361027384641456536665203683267920924467036422456825074201201450923013410709683666472109681711515535339271673109063383632986721977775391938163243268188278889069140350459123838663954196368731289486502741066175264815722677345922263914216273693429878142096183958098301024754204019421475871056753009313222611246466461387176630796406746668477173466844234555105661735299551041434635476729382594206408260939542027262030765445886254200882400872002445571758495893225884884037865008013394707361093154720844214152430546451430418884747748707162930191215884773212149468453440116140406525340689650811846106605500580081327760520605522126644475402331690240056019144862696672347995608579404360238523376532918431369983406252479204935694771402349556017690983765105828085961876234728308030979063599470618004564389470630217435260959036738024601246870064197436188790523336237411776128896787429046613673106587576464290297626156829833149177302644364147943477009791372217859985452600658030986881597152408270980484524839233483882547811858653915528303086308167393219068910790215335277457405154686454931931045709452464985093318160383772583954910715750252809029824939474470970583875200016218286341079238386117507805075495783276419107087787274995590008150095970283797688259627993211633292898090376632536964025452782312771946101370327485917257674969597723739147745132261685785197264415037174363794785881635924141219423268179851235117936374142011968709134053878035139199796331255116817799979601742913176127706699124025409219962559593161666486318064346543300498927832240983174018515747266413527111692239336532656594824419336477205029354890790769698944991366146403402579019334002799965642987335334226076062208775071563632181925134668380246483750538011264349035608239939493531427079101766610255272040436467880673320371761463013027760574195549233204209238828603797214800604382558829935208030986383040814865673279101598093460743733468583913793615955222832236091466317901507336744512442518739453515000345458961055591510671550015044137345678195486511813150581574279881390001775116344862599538818405611703245689285734199257337588951504730519664862942077753809228995770000664635253627712957927001144626566289487432519610669241293226896040970209483515212454254837867669305791784982611510658474188591724215466585895890205957495508064094710655073068635614988101732482468393565473918703315642624447466267077565990791698988517977496092003220485673570030414449892658217838512390135426333417782486032716134516353672629578637401498538429746931495502720240350160517428904804622570142626368571935751437081197045497607309577811093735847572742361203507271198315984747850157179440644333629184597915225333064192773854877821884988776636207413167572910259374574607354121103830360223652999523350066855831102922584753002255225800643095180881404603698407599720229918619158532311700633919343411678000714286131286133686285948349284148866441556821373927559385574956381921686440810045821406878592205179813190378991003503826602988127184499040589907562588299618548208912348944762574253905415460451763520017000120224826919920653810777478245611415619308811065160219685020843078110127362981013405805522061316288649180022217684878038648729399858459102267857094034554159542457700639697668371570186640551041748318732455258140698640221727128262459355239894239448561476289024887311400932549724804164484635589954756162942123071971574879573963236945826650752524587315891358119548316803860697913322081579614710621105927301121634110696073853050080808529495520410078550789434424882607074864099900563667917521567486511082970796430032858072932613729834932536831864765602867932012715218768957211453026674085348756736096174930313390531618680335323795083785690194134458832524772646944045576021619030383423730651623514194819635794643745977536268934471648981501595998916411609456996431579879406541254479625268437651545095889725726521032333810290089914207085822561071924874220815199412812502340481972476743869080661816625955361985561146317506121984011564137963450406456033084111376084496716542181738123810257162265200469851928999467239212947834907771676249894548547908688449683034934499979638649046725481564825197993912934726855994909090162982111564010667746766587816853858531595523201919143976201647674761489858038591506972701725119905910626510932340580850209187481728087401567205983869703490739950024806975431548173133663069102050333166974256558295853004571761120017779006569518268769882341280866844744157155867147894163691136243387513236760885557270417427991967070466801282120273005451504758494340468529392720758273565939370004057375554893568206729017821195330457359281905451060980091275403283669023836894034683869050375893061755528670671708856575932453592045140726599227481224535931787020712873523157109593441977284218182359553009806921028407256175351202086292867158723485695553522460271029736082281745974724666072237219390268285491760512282391306174069801150126576179006717224927363881831719904358441416991432888804590549134436133381297905050819500024944274206523647310268278986621234954295034636679916845384991895565708286452803750714028167067893234031575870352756780487819577219504807712622056025979409651339158389327509711638213749830499759956705175972131683016109383698785801229301592092119987975489618410639570608810348807843824944535144420867426083744719054858938133476027557610164210791198633685379211532783684655031473993231107230149370706563471099956369554106353041234858126718551440261381430879547943046005373316336610935113926805224741569170090806395147069187430486872757657332062353820819467012566464026461360716096968330035752400908866372278341259511522941556997158768897503402580680590855913942326216565736107764386665931716380675313982592591217969407887942839592669861993019868779461002633159316814114537153720230771028497071466156675894509915375669141566989698724400870166187111864870965509739698908938286405812709677086098742656594809521040002257145505969261327296741578528322962370138670042126727301858749107781588418182108562503243175002173052165697792211785870601644977808701869549969615532822237364891134775683444881488468506445762885103613811307577180874860762215208722718152464974674210358843317189871548193188434616090539750998315241274434402227244548188578058739444660515927095801697632756288037369915111797815256190567339713213191346018062352486621777212889296201271897034381139238784870481468186336838532237226396752848069394537238865526372596418557642760609321876416939402770623407338069427243652341074263523033490157520260560352077536478978314551967815463980796956271642214308427633267294988012611002662432347135686514911458237031864211437878128015450430322227023244032351505887680995591763346350566738572559491193161894966422532852204960841038917591470043745116103621694327108797551471718311403763793382321746594171795455644694731291584098387177420732137295671035863035404950620968753135917381633321123935160207028201869481081696900438241772421118348686002425859610476642767811118403346569955881818932243568670403078211865167917498527148280155783297311712827362655497560669733677187624956142276698704017838851580366106620527987396930204611071356320103914934846638748084897108504854661781813218309575288115097176937891732078601402266326489901070170550262499492332433640288348341496550166157663587971547133499458312026882929426387818187854141735408257749963939624148949225225730990371612978161118654559419239765669339562971731743599271688963276714891305653978944761340739471692466681881029507212705573008730739400384341153976997885668803175526292528242512709310627506047253890669630814073175131550493815672518637939437886195895134889458257442532923515436201849193257071982925656657062912511090735818265437855710165230592645183872299251039684863661214710487824431805198370716743435283287554915858697618742864941531606239816194129291959363312920022870342896643628053856636075471621301213765483060829575316479388042063616292519389797515041698244718067100380172961405232045288937216756410071160496285918991406874931959089392293435870554580308310842736346369230291325991476630826885395101591676179932814143007305477967108392794995923847984750251912523966816563569196966295766858679752315405411915470159071452363105630755829067365947458242192638068565963715020325876547950540355515153260275622294121743374557243237493569723669088684473298285430309391145473183058116290694592680702559937175524146617496724214802453793423238346890158069624200373531379385495773495461169944536160958987410788679624175826107122980634512680379836289716286257051589535769997775373710194815122915256193708332123903657701606530396843204612314758816728891568623721038880324808895374566324733557334682629788920105064141602014477096517876210095628063289820006535530678916149045445688750403208355023830314465014733588689957518503170492520276177009446132627786233772517558147233531183598755743341549627068539177247866068223614843938785834075950520927359913117602350439299372409378554815783572131349221663953254590992717691062817888810457714801556470134463089413620631850351644089085038087254389821928877276875967441634420016105667776159289531485987133848883269085679337063028263343758310469248354905364076242777963689336718581160056011090834387806532658109635742453588612365946548162573104861302211472796976788440105953673831217759558808894249410878021098776564011694284555377060773631738489011398862633522600711708365364448673789307999286116857286320403346587065962373923619146366789580851760570903828260571153589433510353481848766322367064297041811817469317230351548586609497951337002294163849080627328381557968013084108955206512062320499518967150929896853552247985767373669179999033755442790740500733323547458839585052328517499668359093529198617200741702782785470386971444393686852581352654227051637031275135229554104284741400258667639495522486157902740439503470672380127612162657599348292463861150585807621430608165288692781348711817486664985862993237454736799983427080664876370410469934413207600717240293554255475308582298783578839803168838777336457758440669870025249308055698833487570687024556703499949756369732798913860591378289703583807434330569458396283637145784675014871691696297638425684140363337589383123938472062480572802608916727203030294155975084184168181813321111275153439611656956155851658528388158484694700167295430046589680532900701567443755222806486307451290555221367007086660958930855917033374681759951341766754134556577867828213234006122700012064677310432819539545932396561280952184045647822527269809086058869063315231066391508988248611708379147206482304920243726362789969651365844481353792349840712136116339544980139877838557375648595079789392481960263039170083859532086800214784093355433967972078081515746689499207349725321758215841926982676079983567201709382070387362466599046068340521722942570459130186779461749851126541128291280956661368834485559957655704379183148313015011297295880815098308824130216471875079607839199624413358750356182282176342697976333090270637841033142771979660004937073526152114165876140210615686913373856043770759568074700237272982269527185407910627435171944178155574063893895553555083289491419834989576009215636549506266212641245502664214434659084174251869353744859431772785747803999060439615959805505216223294490206993067073781680739413316437077629919712435305561767649976543478019288933969280471930560869163727884452079167461542768706528484943128810591425039794848053592395820683543596560943442957626087262420239902956936617414119403973917908675622820072528399802523587220464883340367219200186644134042114164007942852056996958227951089255113558135958560602660121159124477192654157549203780585901563735144827951798415604965541692937786357035670081324204978859318822625651661874391815762159304953680390824059699990790007211561942446622613346446170422099608534519910571726218508545622106197041213015532856516451095806793539230738715833159858751473692665066888822687938226232107765329057832732922308643622148142167359327854548207422873023925271309387599308809968201069917452448136654061870421817070002819476109705509203257157995601491853409504842723519567231220754403298879035702371472408443743413830012455856846765186824980739430898126691941107957940601172257982174511280153583878539528333175847895385085463479698968370382942314416652022177210082105342697013410332813453361249636755745828207877571039007980455653482742815801819598421771096405337848158498906092111815331760230344265187856247593296843397124924767139108168660300608607662846400298420775561387953859490111844857159843207318576608168270676218361233574224261353471406272218970606996170654907273442810646046009753583523241039155702438216249030305530985077652021331632956602126252397434453802170590913785020273192941849791883717935116027869077453998451637948210402174671671710810184165588202462485623260187962386552325605635739374584620619697739192851835758049420395153161601896938748726024706455849498598464239763649554890150729210521683982736041675496915832086340168728137872496464574559614582504592344111673360596532231288735794174811940930849379237152399770344372648788008494532296855899325743690143365353179280280689207191669506621298685564823866305429437090317268598055487648134871971905896028735235588332769566107074368282016832814800808105386901267588761765027770577796139902846653956737632409290000982839249333047136838057974869168120317461067234290011966689696195943423194343137175637429985383360069914115395286012222251600278683414876123101540792556619228500429971639400299789973754955604130302853174808584884923161400044686015888513895517112242272461279725454572818083902097636843085240847441060643291591654467687649105516350966633064683816850347295495827953394746537503912750882145342616401173936641163944044302736477302102461936447362667046248460310277354651281140552898792940827743089360092249226410472553057660978578232045256401384563569966981463955921044580521704827809967730339376280991018654640559993176306663093023756259767363370534490852707252235945429302096948357648886547699352325200212203200401014288511617446474176587173590933565030985687149852220803823899438360510809589165451706789340282273726628596865520998589976657831403660520296889688483681623706130725193924840089261039772838525961296707679503735747305688733641637491920830481232412778648104460558929013131663015032078557623734367234485217931566374481026910505112234053534370667824833456651659942493803238050425456253566987545054640419957854749369098456953733416819394235002831464798912063072262192626518707644548696983268513538134091540737994073921147773839746674559944213558529068395876575499539802431802197526738427517045808766157723573835579432115353822000358434057146089805087360581856193808176834732064876710303502135556219651517825403824235147713037275599872531030316241673112448326453032258097776777209228506559606387999749843050967174545006994616811777738810170689943015565627102231439613889517674262353880294252091030314011402675854418778792454661021377717441774855918752703983173573280081927338940988606772941782160355433815842866849742944838342288516252474557013871104475986386537707355301458456320276925318797818242659789525847363853318457479110063327146796391226295253249109675413012554306361808495584001254334171757837055333773150656914529084934295586096029539062322729060481295994603341313345664032575247276488126573315675493759850462916188635403158103348460030461056796905988305126922660706175656762499357799810388229018441990287562499710880223588110029382078513552011865861009043434374842741102295434052299741919982987259072707421127776479645286595439765088817621198967037228565847154640546426820955258147996596654330468981915356680713443249258285111738857750297621095533007122379073791961887278102779012338860204628728844871679015854131904333595918924323769101942003047941398898686820430703563167542600677678350507362194249477602070892462937784705811125022002274488589280561014207424075622701787236106618982899808917861346518782868792227312958443691963541050594437493404655553845003708242816164081312786199894121884875464338847035720268768985620825524176801152361690825783402914811742995795613638724084939232808967577518314831189671075687064036053539160876396902802562032427194727486441675499162952420398021067937367035362812567860786691347971710482878673252052310293470972351030393947691727807097946334158351060264808119681119347836820947086694711292788317971843822933619775915554956964829612835206028221088076850229851142902915956137455921678134037320073455166794418378478498268183622220290070537058722313579566104162759202362969218112479418102250909811345601650929950405405474640133749277276195069080843593751510641762849991591148234037478792599878189277668255239820986752143159106303170787566264498810738784893657562638553567680214950140810313740698656254182532760696791591093156381521492982740336813334256327958581751017272257202882197206091625332207460947527628661426464977616431513673227535686117222763692724157879191798600588908536187249016703078370487524952176256392215283884340649716415537340636084644693119742946599250476381669615564696470858179954352734882926946879910232270284240722079782627442193870356300557909292030142737850259079256390326617292402098299270976387437892808065013749822600833873246273768764716632899882977085399376582480964060523548229870713605939113241778695256266865195984596068470214887735864782740220116848116032479219674381145204103215775668346469765324074630112849419658253390277771147098337937112478852967133475296264291996599735656067420549292302973625527633454364599060042218195929392420507406406251596438504235977288330760342442244996205361933710230794262117089644246675885625980612140763402361550913818051220314247417770617848175508272829065321488052544670379776740000032481472551850529956658528589062068201218705145139097026516022432318147774509543403819652345991690317517984119203298219379960634289731279753842555897970718414751197728810401075686992208774674953256633580477475043435500951484772763998524726071073620831178234415722680290236473902637877138053688847567576654133056532473911418359517794088017878480329681147081788324401158903320264114444179185856526675917179897780425865425764821261340286305929543394851406226555352056519918146017653205251393549017092051034674018004291216491201935964476017342615586249408478921249202397423969131434508360843464729453569229442307076775609793801213727174824382342671159982751986814661234432667863484238761373078839746736681406067472218299308855516183814189901895286942116521630378562373532869164059568525787997254320906072655200162551082607919502398080961828872870033917067341254431894342592763434391264866856331605799855384490809303252362168708835830516171298642616215170343270685174739492630119613008069164103433180978492394152146401748419489388199408255508352758832182703576502244641541236127969879110656689373934727861622651078675975878932129597012820918041988223383996919087003745760414623129743522889343182030347811937412962059583789749899837802742900696807318816809165014375212920954652372626924709612465108206069404651328744395676691019891738735927686627924708741088407471689046397063361472500254536591383403175473037161203696528869425235446465537522982298327483553292489364951885815058896082490572379661531345488163777943193022052572528032395140365575381338071371446749902261251021827248806093932441586482481836130367988138835031746410203112094575436706562938306267936054080851023308863319792005798617844877945878656304754213631161852735574305474080693851716652751502849381166742268899674054175831424439940840523357925717782686465160682756435043432167662791456052097140902227698203354403286140168694325120089703963903383932594842479483196839566189794946998754349932472068222818923252823674033082903150962333021488071722466606914731735377314960900914797140850774038267322804258005866061631752526326941597904683708017167684489084391164468235286565692827318124707208132504535394241194692005628063481729115431487606567685038956978785501799689524007881494195752611766203973441397074585136762102840781647294463161409935331963636516831735608346901748392341234497806566291247713063825947864441005056959436849253984780079184158341003663865640276565618466576524859020742443705826085805950344658244243586292334322524026539285274055371058292337853740717362816494629270793962102666788456559927989554046050192262434944696950192058727533019672575731829794242021412404375977873898910161127738644464722353701651054069587511051535942283555899744769847473196404120253345070736469125330279843246997498586303807974510985472207868872111127430909275238545748768065995356379141504109725707529409648525218480566965116746375612641483791103034297079845184731608905214816537992054723472169355038712902903602983367039702503746870113590029684565529061354549771948641144635909550861435987050730283246701457245824027544809961852957355857551248277489197390495924519515558705628227598695330770429411694824062411111963371192733215606115588484947560979165903972920639844651185832765045376187740057466455945296340903548529705173290570343895097189075802126614614247254295425643533284849906904923046324500274497643168491375869182318215659224135507542060462772454932270720849303911112028695536586586697680195238199942998192019803699602188661330542870296478349250037250782574163834725422147411503359009648972179038030650907049165565458456722190123332061733194682847972936168633604820319454515361272698063655075771739959764687925739991040726551959883494234318448301141940918227863393316532614650617895983304293014140930571779757042053613211378857123051964635161493840264238499697201509073855618378033530039155204836491132356197879836824557890126801573188781390976111790719207875154581807399768453691093144225947951410987618573580510504288513511522297164184300829731203336368455232197402682709978955180087612957522244436288734139187286947704212119751589202072893509308882017576588375687906237505228338536531535703523363909792847143554365274775711239334286574259215581637524151911668547210418712446608038348696409583322170768069527905260419160527402063498251614925174079937352879938828359183662383284317880321837457610684901717572069331571367311397165045602641320969633255950890454387718862997860221278503070417565215454017400375364943320772908268854223355153629408252747253240634158265143979343666099252075958428439454277377227901112937937469828643013460505880462695976479257336096679498813225068467365798311066445451488302447005922054468572854167828727046377739562330124003135094413858072125180751595656215491576539964935830084929915993789023830954884874117675245826462955880313772657357683171856604227915884440857712579105664621259332779607899822849422367531958043044907224080994908239443456754050233883399865260391210876236184368139744876777183324386686264450448273551414197149372249310110956109333851845755184127006747069681590716772642393957736390559074747656698448868212863157965125906523256864250767066381087454265042576138584117103949776791854342306845559109393905653507308996217200501388522618153825074616067636458217473243710862677934792200975303331603690392783956342457773897197184335802981054200718118324602563172485110786965329686266399516291137088601181110371034823853286968195817157288704365200283717785755118167328643998066724109491688469905272933824002710000285622930916631169226905745064897788099368215460984158474263890702400939954529312292509946775174207759940678190021663941659563790462493870000439592440624937710560727405815628794511916366791046744924014405825141002372835318431419760021962906841779140648847180594453388488589525827299873857502108996850407942118432059981884436319184876970851043537840708243481492265620925638047588948163911099164647442351054305431005531331205121283406532315235444667208037831207674687471134764665765982082852448945893699142633690010082468968396146573754100154623764154002371944141433766245242289003286822881946180299251941910331882626727205445750348301964004051437981774010509202192899436780237317290281504741601291209839175547388472515710194698822185300685478035760952263456205668606954876087358220450852057711943290374181091155496893978734732147421213738097993286215441110095387995152368773533919401940176844763753574613936381559778202285960137317136820657258239971061443684412747927979187544137906586770019720484043492582602179609711782278146158975678273256419604420820932218616651858938968074800815069474689932940366459544341546177709203601280065633659232461946774970261494127597939243928058821335082265972036918692844847938273592418736032789487637949246936903039938666869841487767138642253121496684021788531314917511296952919309613135642864707757526628417663897245555699629600060079011591730369437900500264191340055201562046680902087961938741278530545787157442139875846967328159839479285125065831550490415141562801860400122914451216511588096522184367157976013522812769259934860949227001272925199249527720015849294517467849482496534693109944861806530344046710959455338901051605628117777194738214533810520777893965989785668363408772392645793964155842117678561430260565550120501331427832062467000795236682818994221369074837640457772842439472656145604005911715147656508709610249869764430449821824548843701636012356280624497908893931801557173079518073310597062748289871173958179275609290916717264252660722286745846779288069726598819192216760990863717586135691793765412562736810268665709453825202778459195028390933738682748868356581681494200681368104921560243208977615202079038060899561544945135160818774796609274272994411987246401566045358067970264875838551194626189525383851676159344329381026182616421931281649355511764778627746591542544630300884531546638119514188684005884930332238134855422893161272564502496413271324734288188694379388631413034866196629061518308201813489122816045297056726539067611142234791661583985402971709917983462732331695972970290446691323268480027906316454917309685680937507140215273810915543870774722369863929997870091610833171744740818775559662103765583109417516855507139229431407471178105402059320347297218480844307805701401880243603475025388997210934027276547390977522823474964885969320602582582308757552099542115271377907909675779102264711609288669242072906136090424663901997877005225460564404394025780687089454871580472294361990757509414709927073575425788841779934423270170667587791872841914768413229598350620692447355674797602124232934011528596330403886958601370644455221982127393630505047009034179851113046275305939249620287160157327841205437458933701128146726212743332482091023595938472473913864633453995912114932843694755510338790049815950663972369426133132516084100224659221414709046381961767008693758031433956616419523448899840814412341969006232294076534058374463960454678354894310323382139872159172137278526162393861362954988491591760612986053196040217082688340642618070566646435055609510074411501822610272522281579900622506144911094842503391568545805117367525292967669635132189266644887867020234045384471300389124239858125299942348614048018050000363244210325126967819701827111936555601062262178934539769842398787591428170460710790926313177855398982612186438011325248137453162977881692692489582954378716239597385560094399357148199398214553035003641287059611439916207385454305119850593183701959557872515647047522394626972331201573769320253754710420651728103000904825637132095467826079525171622244873899979759528706902865636411886512307429393063977119427153432079367723566251473477000151252265796567041345406861417466923472220448145399325645824490230092873783924225442361712546879339894231503058095775601637624637606309371861976360215434752810107150026880249971970817880024109984472698812308745721997573280221253614873472345154007777951535192815233510988126261395377776668770429059499710751479177016119602513263489962329851567809648653235401863772083760593532889531856839402023156448596451070688721505989522293700407283967152659560833669730823885304409158271837372099706620976417480410447803810623411051607256111038224093620181035692117046064102891472520068972310476266655593561862256780433704514005886686765141317106622211427519279800643635296101427153350191133261669246535680960774658538905288222918846278873685747476357169426381305378877679942208539722859988032737213337843031934731700307228332822024594176972221222744819553757175626876459017097101767874752717552162424070778209880600030586100420317036938387288400789299663004602484701287060965757089564109842449429171986685982410514954097375509457316882361623887707923814936730377385508763186993368828395266680408993661162890218595427172305962832662974703385686613480077477361729391883289207014216969348539836273180514752930987298428489806289128518769119304495476132659869213275593574689425367738750927746331877497202509410425641261799005665349649016566773376677727437425504069675070858608476087906628860855420245147448830483943243023145338122120992595850229831854813595853096360072237526676550900756318766719323794299639143315144490132234047003316786030189336426543011468903449469028941053770662718709939451560086318900495345699534758706233120378207510727838393782920313860753231405113805353906804516658741275968680795786458284555394401699273405873860215371385904145447817652140696714213910842611016535046141744913132726241267776659832380395534555740021889002626612106859549744608985415211802241501578188429116472563000787192553894359569988666998950792240272513039842526196919635895350899236351978749971349103278525711345412835055017890705230334678256341347048370730941131103404333463477332171164369656755165920774962827221279027631917614110248461285026449541256322206368778098664067819130263133732720451594616881286898408038547623234289754322299462113470821432238439573121532671426263208315420924104264450741196089585873529420575776933860246998033055435575844818191099147318667832882835776146189350905405989554265224186756828639980839604957737377200421862516079491965625099321202737374562284172582942552087685229137090513999740931270881175149966194205193235611086161175963509666509095146492231683113514716922620938087452154975492495625391078353252678877582633649807685125868813821010109235250344603649164586902603415522999111193587418725362344688695739817226795650316690980153236525204975555289962831792988319184391432910455879548560055304906678406510477159256776096955236209564183884375229372696332049859948164039445073550609318160891982391249079910924176936451213060493609529207155489328100295336848768381310880997950290623434399639639770156848544179660518354396730271163953786638130809376556700702039123693486078534791492221170699938011761199760901625225622964639166344214671818156967582344629459817096350100426762444503031600541664345440693434668707748643322819268231813759990972098139076666072953556779024633154419909057502394583427936974953320452005453597639519504510019861972500498306368974141806177541342888419712801151017835844838786585701007402185787756185650561124483512265106918605698125517778083333629260200371431369948813932690305996951864397739923156047210125743916669769509677382245124808614117332311044264706059570192602109632100011452248166012853016709472929706682713135085996764185383693927801851816143582088184296645780283363369867024439577145513930179787103918571612114910206962697296628913399732689419171116957300838573135776748495823314883468160699863321474034714855403547963251674771649166606489168759935458593859430667703536606658363016971920132842538054082500399620498674142868095554535949215207232566993194052518918142570525535613344271753872171891732226555917588277269670164655791883211773108693972582976037482934313965326856355827093850730080232319790409690021167986700271572440762959519637769793932963935299006867320040232117230449156387848179135494654062145339959391662361851765703775205557179976111267667603610250005215537352493190221881391850379294273588149912429060474583962391277487474651951615831776209745159226833587038673316473899164740318213634236728234067231885111005647178109451709618069455994262158125075599128715339747446214369372974998260684439129006970231103808285461087812447098956468550113457713612011035616469473914159540847692200746974996671910675649850975154737299258301198441023196346503130815870588957963536417250853189108288833367962378953160703762842730347631529574467389057298050639652674421538231973857153852567529780388840886453370218668160560157887427118411119650057002280293271759588105192945419402300346895257398985813087114191790865220634972237645393213782728205849877516606029822098078124761232806909968180485351124658109204306432562963883259177170518556202103334514389245071353032826680663731113692147081048938777537799190559233658247305876692994828904658005563259046575489948345265353966623007067019187338510602907827614660980582456043881907041047289799851196407126545988365263551086244240179708471258718900439326755344104458161192700537858272818842512916034253095304248639966548079987288059989561037636834242404660762961714692932457679231576095889785914511607124619110047346552082696563981346578686608909931239532525997820552259204788435560900771505031403227574320764491781410743184326140675231619067285997634753434875389475356353780274251033153832114128437426750100429536969177623127460175943467613824756727269447769948970547450886179976712176711474871545641970956661921969162604391527786097386243712933326185208800100272138183125407755894925173184423539496632867898826173757360747212389955350686708256311373550128618317870914440841045035579299379379854098398389127047863094566444629328516179152361259221339689384106914319912225276409749268041191479851651183652840905258055566366834654282512323613803832951296456874724811678503809690899558440902746976481238373641688818627919301853542152561609910737120208331104607093629483889809286611373063063683149079316347295842105458532743980127104587655056258732812827162534592051362698884801772416515247695616234605727816573291697444894634250027369434478756151675055888628252578668534915073163083388757082402285232439728056421426297945698207646333413121180727151799548483209600433389624966393542360581550916021334486690674601283876098499385089291811726645144830792391815216960661821862104903896411784667021667635859102687531161741611016023127041438789290681091383445518590030790573518493406057914077949865222958069581475174230766138893226624068347505779312804910430403026698031335556871480745608070356752722185806846386971670748411984138374996853897484580445428491167915023341593468344368699809493247061932885400264117771467731936772780863159121699678640708728209160586472044918757486109990752998140126940171835232451210038651126841942644245547807585052292271709253151424919890821889103910804277860074669233432179235480332700743154986141110600134562834136207315415978051133823255202257378443241164410357739113991307115810080091009381453713016163155158081401776002395670423944970448997907264771263499967450595473880861769376045141286635819599003395412634060426735201286709741123800181103673540506606775659602066089930149180247575629457573073089452838964257378318975257054174740296931702316294249568389665245893475028706126021668792528727845966265025355319353695886132753944401213759644742789224077042141797018919118907408952177911480769962633288353976118066408228690249634760355843560443557394471974015146953335523070256287257860467068678872377598790096893316516756691805684500841314600256727040608565795428317185533196983171424155863464512265096432099716495359099601340639444979326022959519897091103898158870141635131353187609696528893126125962374821714594072720267485118126110681035252072292023106215449071920680903410025573586854395875670758449257843991151594545511973659992257035028314857608314281618849354100764396080104916072327012150599412754864522156325742379359753136963798082827591340987828636490496030913246214650606156189592856376439074073374722676091727372327883648266415575006682919300588423558862481011183145797458778014031231158272614957359254873813941665938201512592420318775278818214556557929532545232865748899812003013203734034741703932096205757538316986304406132222622052669426694197841111464487618747971094449762369328903113306460595993864089424340957995340668358144945972621596214380985531326383028350249357277246281158963047374337934633038262263550602799158484406846993305596727142830652832705477459529268531059297493516028436734093001461311410720852095618286355550109217118584560335150273188348206059724461707936501876276515190880455393625239435170602482214296672899168349304873637598557820620309316028131968701118458817342908574218538449580909545187927810203436788762606071833913559459588968702481707582680759121372189539816425247664666210969298464107565157319353346946517901197538558848256833369702614293908123160724786596251899076790584661466286431160195727941154594919691883734172200243033567769633119070140014305377142495414727531573719751168953513604464356981297204625719768350376730269255149510918276387504397562734865048921301233040122672927161011173323988757781182524616085720222670131733884570345697753231160248448201802332860389143009596492971170095177418218994179346448934028992725380987609864714813764214321942616369993059178249734445571630406271937119046563896353330431583622323784681443301016000016706729030713962131140820463691908802105935450559137846406685859704574502702443281451187859050867263140166446777692482499064683878299199948144808606031367008716700141406051546021567305943193133917019323740688221001924853726737232590062389966418981103619861530843964756289160880972007813504770662139961829486785500601818016572918992101272850171957117281018412577546113559683698502529312187564915521062581755498600169185079606163327851340550872026953509285250236217851609715091915040141457516494858881603427007955481589238632268916694971597048027489357337809671917489507484246896299459944456901762804351756583513684135935372280961588932957962947908266313055601069327193910200785291694082099801457026012173132028458530115622646935202019531150904557937620029397463030290036509407130371818860294314524319138049053180174436588293960813047941827999260600239778834118677716060379948954205674248344688387742039646083543620665453547567689594006947068291419071055846354357062194891169238925042602573446777001367650862912448140951786788127335505524891622012783370247907314844845896071807344736720136080561352071783773628829736227604533867964144700795143221234795007103566228728027483334174392756905092540817063647844416772642877182088339577637329053204874065182500392057533153445499083342001738792990404090518198929077729110073545542471120561962316634032138562904575839077787802951204876288978671316345271549923396308137443831698576204947037621731173739136441983526210536325012269802957717784191684935885990882387786410916977279600559302204852989855055096255986011593993526223034171982457631769061548699674360465603510739026586438702331237835295283284658305123279043332051507372246165697598338993471696689986259706098821366738069819817056017627768574297504382372880661043671984651646855655039929524822569111598983851347262475475888697218899858713236753502988208933393869382207603206074085806959146390504584545965752103383910092178630316343204510146174621820994810595895685641278114176481630374711431458132511540452754214582505288744947911387363134128617014270830412425287056645357046085467742296644396339920531687457846787515480181473216121248377479648744654475943969048470856474451762233842936235014031762425204473768711447930919955143021161179154680138245964442094935254343617363115196628972178025517977327465803181232684304779940043446472532587167277879594927768217690571398053907533328375652366197501110808164216088001139735359272536090310331701795656739999726336301962966615548121002783940777009994442264170156313514735992973738470241841206202886613432551468858342668344264577619791300884202879156571194873376801285340675384888665702761639658963907489475159474019479253524224413231139537017468053017603293405800507090461056275034379566199269343962379752080384539542693395771892567015283118287161021549850539860835878611466736880385086454681950935136612292128227891222299406224357651497000892982170176745987028784233672896474031659037560148210703562731590089665558483828529723627637178484735572324436887278567037110712461666001148755853342229593411133280451736257057492252531480888778091398982251394783826502278146100090495596855425204301463861708258971204504403424328669642503355478998863709235532387058691000763861811642536217910795201230426134259973051749935670375093389298244852380327215697945005374595113988970438558521241797361425796410517397150494927075441954297571394720849941058651315469741572991098132994141326619005350266864058814357577128502502786267635735543102225673344956835887083750961358104633844455234922013396439791584727937926291505703038058866473729399676588658297140317599248920627172180932451920197784869578764992394798297120821992120621181136281468462686445144708787729016826780468748260181363574923907339762444435093526618286657165720249400358367761436273925006482179553664901638344816897076557975378414806978461409822946454970280042407905742778284937977266487456176087078645155260524655307766593346550514383434438736674294956132699199180331479741468336320871801644150875204012077909477127094546085574557114590471812558065873319563613209672093533636224906411716090061662628527108162861607874467099113624735440207273878123955130198974694544478917672109252534436826298142140737080276440729659797597319076779912739681631911272795292102977997921709637717187691700647872748222223179412932343954809727228761235212669803353910181012479371903658714948338154230022858189951513082725593372996762081042517480413343328980747789307685382258625360924522284092424832485636447555742494487483977639426382640645915655326791791451277112378253755794026305430768135290820195292644563575715339953500455557917301794140715682314823024812306373712157066588684967933787347852516033954225556217432921157941145699818978291470514106138349714732341556540793485869293162907351524729641920902029150186268564465205429244119540170192905790170276323107170496534497054403717673666567174458136765026421186951734135667576731843259595229752193470979056937941869801397030726061565260029939466986931498877341456632530546691373723495527231321216377846742297051326119018185552420556337375356784498712904886399940549209334656050891924768656333977675915972009692137758103894934702073477099922035838664054535276310490906771063697070881324433307278972436400906330125034924030166922443379363727084489078003233329290637055805659420296173245721957688408919158761569500543170605342267265993040338275138305669164946000839327997661641185260491254131442895099648593125963034684905768316014909970704232289054230223023377158377375523127457427873346824808584441049951300732970958810170413011532485096255756846053561523738740114959990898049736260910305985604928453544198604491611224931538951680606422897134320920388121844319045173421395462903725146755680262817878759858944146247752994388013030353678026478917883917317417513655950818461871570809270573335287482593134011398378381983877692541443583311868834051640917276884209634452748924257600118740158060149049841018872216283905998760403157549881751733028822869489258334206873457911570914486075026203367298811277883730699541769155407379055707911637134049472840558794060519755524974507044559435130207385783895681332654766527766334340400063433659069852498896449321350350081343064079532736463210299016527618980900625780712679201443084434345441692539892731623590268768665031791565390011896993942665220376498736570675371850082706914667836307562831714618600873746279831772025216675376408709273851117993097590503083754998261791313267711475493214626200228520268323852994042786034016115885574007071749269957027354768072898606948246756607090413942515707756355556453065033651394126736561298753549836415120586528661917109697772512868900371261622880008164534225096404560403022971429812760585894748926849388863791109386656503043368911826583162501533606484564121100699235817877337391375739597517249120427981374806657774657801788894035804910845019432631771538562578930913483471981755854784097836178119215569888634989661815079471188292394925537349962670372746123073723413369071321284915064343271750974380868416628769500797568671066177501395966599648330870376584957768430541418984444729929685477493997461132756591831656698241346376294661467308834796872644527817188137851689387696904588588352935168403767991608983983654266886171769283941079127786315978679721190934069291935760548147631844668538510530367599883076115210345162386948925735192792053647075880235726472495078075518093881168665794431415823362687662273416735055725673313282473662230785230189775535334662971884886459461285195544619056492828299318894226511644713104917094922900795147310874251250671241382753534213042808687578752343341665476749882664448529776805242434527559230119981815513948326214542349940553111413227870857175195134368179850107635505418473560356562166171485487580032984356972817684166184434431506445473053515424710349786061314764194482731434457527037161570318505152886193548696474329126690612997019210077332528333404910520645541332533035982650304004187467918876598173001064744092826602704615892345924667886702483260415571423720292123811980925076871658983793837011763761110375404444946833960569263532325891541569867242979987629645025757301951862883108148069685102702895099174769800759175205223384760198292014818895791722829274276834815952803478980553100068558458054297651342281312465237828989453168780054805965809171245653501673899548997448910441652047547064065496073600574224226471290624599934007834500568413025799884400475507774559611040179787601949968986042051392092470914499548937094257952938421151011434619528878295618297602505489427615664655396844894109822579876439514778676134786631797938794273898127253316714583401344029606460357886721992022714544363036577550493230276140336624354154731200935495541256858209737317169343499272945756173618904697877166196184379603511735655781430678649764622851797353436446853653449305820593934458007558039709181761275938740386901932041194466979782723532727824813543367970867981727726808137735895230604621000310661871667787028961705063461251768925889263516888824164246016809290590712069110528005821082403932889645754442754365025134795269063741626396709677429467126543147060888439901553826894382207092181859600320397715368196607169455592231765534686921015333574906889970605288309326594511991225523057445164400388604537508295175727382656948091902048014126323313784016662139517239492982335444738302019290739696241472321689697662783268787256403641397989136335799366089698697297398549101761076532031153831461885079416287807222463005899993185081992218538185997855382243667015227359133466136777285166987244273009187340655940574714527421300601759055973678401862957873773764966459515911079671204264552107852351185509716606224880720084219524794870966999345516146173733196039282478688322882393235235543526968849442181709593148700794854415935764155875915925983697727753107176235692952139255258126657286810089909316709271933731789810672681181393767748693409634323482966863978540784681294480902606874791018835116579297063349331812272671134587849998520709588341662318477306278333091911141566995118040175285365950383046648475398448991316664089277713408193028836807652287977986614527092069183937103246063704611852245024704910922046416716582589722963724621843077726707309030249065803751395868635609918884455393789286649428966665659871787493378962136265576964958325949317937537068886742406700150297608491376427310255884932310459859127688612548968591610546312280016266452779096415137177693432067502961968030397410934314573172517880770547149702220263410900909144815789599891330477265004611095118178714870815627362848982581829778452352070162492156945464536530869387435040546634122410487209885506601921491714296291828972964182526276726740862241708237113092870847367884025181386832585421607879337212291812566892348846491255210088023776640445161926653467760348544116766010463899926512986230561731453704041304641663596955280113626304370490753735402271762177587288605540395552502412419959281450271067651218124417327025834835077184842704711913816773006181227282931201758096770027690486449859154866470363172988917640972208278758191062952347606887510788215356332325317965892691153975345868277703525418005989297786537474148396871924712055681423143312137850586180895327772832853206150970632647177448231165298585083686568766568722738122550119521132998657390507712164131525032169883353523829732558732376370462719767920197116366946328339066651140276310441221843166726479827007155253068323271114602708684343003154031946122300024468885639401938086936800995882219770977283832917628729504803928887574991087747833415891887636747830669207713284980930051733347076014784460924481305133510586545023803501606871555558107451003473557417665358096890852969742969756708638525471057786914564439204473203626349177839817053872080441573608405615199929353525191132978757339261324143899928549369433048869352181513121256299512796839652757760275108116234783505541965341971970890276640802894365792620510182536131243022993432423238117635348726611153545555456734098387836163825947643720436788660268471300502412284809135372990857815594313194077532538504858474649796160450499993145349851778015879313900882322516604152942641952711959425357018536573949567492266404522730282473865477249024099955912579304811667472740705790958779257522921648970113479447548801377864667987329391516580139649515548518717890052623916719243819829639332733493905359002874754541618232442643353702422930741962208501226213372641367324007778749516755195675935646291487128371297065838656692775873010139791267557979579624799458548634434007773652306569887679396288989059416951119891086859670097230156195143167034740099057108818218698026197082034077053903004366320181021259047724483807130211185291711523644972570406137057792997357320146101985279068573199051080025992046836308610047571505116438224270216725176274424379056040849804763504701791667881895418190103866968173661384089185963883130401875198164016610576833116425313834768471275982944094152712381353879892508667209454535429989474732243498922873269070359008769790133839925264042982881749125106124632873010831243221711054748622875225519945139440948745273824183929800486862267713076019577127704808066025268843723900728482389958056356618544553555085903640683504285838992525100794531182378591299486012290870171447836329054392444647745192432023171937041186917769319499100048554167951273846837804784548023327015872088146426695909754853962464324252322922332001381242459445222122622779271091202511744562692712725348510591899572194436853853022118866937444526203750772109222371490636346267329007126791038578927618368626562250238100048486490340371606052372237164887143329070879163905372546096664528189143968371648002743668740899238418127300171473041593552694729204841228393757134075763865666331463911578263756372285695725299914004060611746816598182504445536605285704129345676991846630762385604212441448917743293096010484587774671293997173312292666160471394559155294049189506210074460512692913885072706961630893200986743529795937013225639050880528176454051019394347795621792812636556225895178859388074398573985314885003391254781183892101428014020183610841116392182546400924573494046210256383870441663503383530812976862270147716193450715374323417203564300023200679319787490444999096146293453574510543504893510530983474769199462944749169018471913338414263850175156657318275755739250380314514984492680438819288725249522645087529016790509861271332274399900710019118340597410147981697780940510834347335877505284395256743296826495282776703990345536884577767261414292771618909067968799271090581870927962757896826169095419874064135068465971489588521233237534268008678022639437848020503804462953199873469878684972614090887306824984598724861963245148635282680108825289500964464255975149254302815609686144754963915964876489197067740128230734131506225736642919224387523874596166912733255027859451329205486904117657193988845926289330569903630270978622216812702041542534797579488970517944528853359218063558640902697406954413129453336513608793691327965825263107624251861976677537563233210476958409505271931983457564146124301248377345840849123330649443815014755313690552897194325952930601917121563644994181368430846236263275006313106612116891762197424283208906489658865837930949500042821503958531793533500925635198173833332737148492625982998990747402501045694925405968459929594231498003885336236616497525163658922252377018889689382080917505194076631750510750877963528381186373028252239777531395067868568440095744444111684067391887711747120750488472626115134231584408542815758826729025878559000044391415847293204072402237871359561396855419738437928739958222681331976997584458470175876942742001790580894662389534624202105358054384285102856499435975249315112110620836981785043212330510049100809395437536716746369212309804914192249210492198235242884955012913667093213301410230110587154562114972649190491566624716572879513005613838522135668812074785121035905589434302545657098965624424936588622960655723359197729130453060969706877549925855080648070944790596438028219123806045243915300748441514707513056156769429768854451578898016924720750316415058137320644841413597160264096871928722267786456821136636062439276046459058044645290276396499015117448795160112665817138508337359291465985507300152291205558523093618362879082791816226843357475076962872596001959058627187845645525998050475558614936503078584409065998988174591560648272435633225819177905367758545681583665696879525796327582777136513496644128023009956632545126009520103847866122098207051525396399787034161544113828947473623371681735887853330670577223803701028567819090210334240318285744428185709895210408899648076807274963917882919837622686233857261595033445110548491915334363359164068496413582298002959060365374692298715450048784016231424639515447969605244765806918194029164994723017678536482083680076171057558929637552335638574130020239211496678533704542896955584006993047326468835477601114419335543436941479689040406123632351345554160152244195853011550001128136457552501039016267235323431619315126405914566731824983075900811376438121085252411346694738671363407774598209808307796120102624718500963308210919356656223003199947004467090263870923699277602680674078848614434282234285340382615608009345283045418007081234664789501497974049728286263403842265762602651882850485876062475442466387197170827273464265287464602534455445927520009074793961850091434288670367075164377194195403516469052061590450881747539144014981496732690564816050221505118735255834803291737185027516870883817549357069972094959346035185786650767296919370980096428938245866059035642098209493066559166432412774293400978861723948617252238401291519728164979935283027833316598979880563304005054129382141221262495343089677522917203029038521081635514091757567999573464910685648825163082404774340262716866014441277488533905495734700973047877545601613423911554444106029000711299671575965196733144427460957410076281004848332828499602043377794547608296931529093747162913506767438872577427921915267562943685100184207170672812030045115589967743810000152211605217425202370673779269965428234216894375931686494848112531011847694199694093317369433791139833706833800881934505029651537816448770417740320575082736917528352426063709590742474464118467708843707146068707421055189867702315403870342415547271834813936339228648854277797918760067640784060079721547855749049436451473493189148821239810469423709806699833360573177570781304714924756934850279615946505084322098684394320015161816503438385147165785067841891270245308333570599114291735661875231833857155114786494263419495482605515614696815000371801488334077578837014420572918870279765872930043659301935743891414455510995444900805892099145800536600916082024719346570545326743467577852343649524789803909820410292433461411056624246331817549035074164381286361603562334983862216034578087632911100242917015215007485517707521546072580289747490310296555182567955990890706116288964499758458950026636174016527050298713238027593248028346176956083717995654000920271550613045846679110787472669728257885729165769148375935924216504479606301785070566463901671443221612244011037173514503348760943681127920975102398201910454240475860907205905035138710284513400348893664371277290291042136016160636725876383448979370437451723748340908810052032117856133401706021142064964197031059641730287104048986154133042646305705260749212447497944435272375371473906322076902506080801038237145158585176417484749518702496191051349355255398170067826645244813433653646291929407236082025845318478613896748047192867574883675407434857301454824105704494676990650493205433280614707775993062650494806389705480218957312574598827895188302528026412554746568146002738067818083014997249453444470395200765833844759933042573097076295637023016425525926375643720922524336523514836021514036938368841722725903228901754118650945738459463139512931160853314634896266750047616898313227821072599780229669943208148404566205673624083040363737630246146611113419034522155202798133189186096799032148151582191855051848398106347990252848126557493331238829802991192191963506646924956840592454583313522150748048641523035986205254548008517751107485338917771622111696892539682677632297295769830007255549512488833644386621586750951644943151558774245746592829968741240200590462324224349892086588713939841466657997294419658065119801220060327014287255104555144182421487123495127826357548179983605413653162097348124066067952475028417164490776306091743495411575605555913990758614255589673260110395144916613360343145809528742959315077730214037859943237590064286565943445284830059795788471251817031505139886551015547523566589239448133675184608568030493902096961661588108361573372514513329334766474647162367753772322638719658511214237221846163533263585598919995268613989449619747627753707854771831584767998077829443103464717269178159501810581260456002509916907298380293892399194341092612656112878591424117441810627776695986184876534426174986461565506871760400587846563173117770697980522986365170268023935559632491293465698521447073512829334913095495780251789105846592123043328283838002432097163093511539795417188384782428341248167733143915597405239274262562362970624231137540714867466339714500510451317838396217506342708488650235379337717256879574852720856285199150619014510354174205882853755464191047341194707503626379838216669917150162504752519128732336412070705632129732881732922179330319343086323001047802513823322831906733530349537207704182385385536691214658821627044732951155367307638387117721039750895642111251866119463949605206167632913285162236314507119411181627909905710334941283378370673925045624728000118267527765677785084065279689102115173677769347681985198962939241261639347663518973709231262906470534126879538595834454793156396138957579613064906506135387438824603983095438463394877877375033919312805046857648373062171365555258977515357385846322660309534553858838734462846504324350795709214692611657469319641525630537143906197736180461019078102659384218024344012426329679447385778745646511249733806950898272017502866134475469660385867231034841049823819810959508927507296673283132997529993317468482195808627580949058752070126258415057740498039190117375462343024223617598934666463858449935904383673963785867543288004269718544880559843734449730864684159753534851651158283805214592532731158819218600257279920787831881705146596143345642954133913624185308259030402647586504240801717145429491072746318913689847455623552023823669347158895839632785713998660027272604495386821317450067933513542501172519621252056554553161562041887544380371357427955556756599914085451102220307516220085063518243727351288174904830114237698031943532004279443489059855577797419540574935278352040779993154348421280995893243468433196735969216453201418560347978136991448316531864481453066268195978265057805561221328179452225665931077095791022842365576482638645821419666731840210119366969632856640011361185388322663275837123058983474572973590763698123406052684983603710446693667098245362503882181217324821334231952945831866175335855967808505008701985147458614272419732366299513570396568888916849596337778465808578935929958004572232681033161494398607258254790876137831277343396742605051525733974320213425713740636010403515254518031921264791353399913035045615715225815670797188227546789564245358246208557529489821934421250792334928319333980964620726195681596725144617281662494531394268188899046460508745376470629694462783139959790088408397705077294409735923598571292540441190262585161065349774924861704617245473817972934803643284111287876610392023138775794380511935183977656322459472058772627273582068096824925743118936934811261849025908725470196072602686094443681148386621130819521297995796887822564810330135960189251547213690412969043286964044512049287465751964945474967715155180571773301361719772272921534827589529390075437353311556462927801952787354760571344709336478463708849467425062260669403754905438536962087318318125864871137974107838785415348002652999099425589328481544236031744789843725918951440383096721229206776583019284758182224370622174245610515284957471195350309465212471006191165577688610247145607787449433853107208496284257089219796749517495417943098728172554835265753300503819457611431960052482576420757518517667403603678245920495738958055486064389591796942771461781992333694010970352650801756548997744234185535510398393246043787705645007736470391814940552562680232802001801671735894155155124322861954950167937914206363021741153490236987280498923123249314432408356747947639986587191906611620240385435707460836169679793961357310657951968970694700148307389320546358265193481198055215811096222657860703325764773577793408080717084618437646656672508098358283400214405311158093766858685175660456513933581227086072729709416919571573006557884354394390953852458731443990474596210564184852698587832891427433736165557954177305847610027644312765311484000526172573414087825680955182985795909221955749738146198780998706340547816380038076190087091552376491552788538774961633718388938175617365692738362854036802334068715538038222870234882037233422891830927284968440256176487424652646005575957549725569379812586127037340968378181447441456660432443104687088239391476733822324328431325418857982064617266469812150297750045670533841896315188338883337486702157098990033103311603417669127853523722978090488950833091940551625854137442953995738441820700257713044845933947720691388277214067463252404177208043426145380168225083454241951422025843482149303871636868111206733086708908322642418233498242980864130842680370687436700938543575526483011160067852481379049611471028470797667248174330423712257036848827717571217800826786474021786076858086838698678694181977595755428241892775623030557232498323483981681260269616658552855710909047519251518739505348939058926485261099295048381824348971570054885935864145093827140997921356428953678313735694969969699929356218765897979351596945362882334853753264245658294660093986499013135817681595406889298555002398949678804439538177248023833067846329063426393072995449261381824623243119847373452409347946611526196940825929185780539109742826491362088600441123395533725006941161343178246768753698927699221002223202564643509851017209302923821889527279790748623422705894447892164594799781209954798928664539371694070816450209689319346638412815054536325767292700211100875741585624342542216445533462377593985633222681233802881893347603011944084746657948659210756042639405884585878517757872715653930353676871814389263407281529806306669059268576604735204875348840538356508868763904919081319090535264201427534550189228499555064124329378828864799946613348998805858113784923595822038286155276551282045569535103516778796867821601659686378599340682716630812357323646212242053816237326030347048371588742078128805384487839734384678420068584659066841666257646995858743202262396942504759383003573917391217091979273040237585296270940553532960799590759785847962939845384567706519148697598966317162634506252210046652998842796023607711624411408041090709414228439663767621509706134089879208888497978732956739574905444840370333735077461530123301117170081488496419880238474151578540772674411825571529239075373202485474516488682395453354251740264375964824384200400052410764513863549949380247271303019055918101350943223052843542696705453845754188795634960303569240963809299677716653578741795154465965624870682650508972963857320067512763875133705124144552096910229785408240479292469812803924093795637033878498502434181949335318849934598906367998819200306780846392738007253908145606773614884065138998861150645276647243520408916860093731449828527271139955957623194022004446629241897076020618168923717565865452903528665080183723508747872059349854569449286274581551355793972178141516240257624854758002024270427561369061598989541657198145955145225318808530086702308026381174123606317359109673998759029530551461799838396493992912826993539490684100843095475942559497970822445369004740936253744645358091531287338641871644269337097672044265455482031621284066354329160359918203669799881095384052848508482039182682670159528931331564918487165849659817592624009113153743374223270593352171059165738850378678183029052221523732226748502278610497388251948061769990614622451884752342850255395038126379542663241130771095288732393743810085452449801356058643971200682724491322648336410998692160405422861844076225454533744215259783303804482247382867008949489459844091982911811451674832988095174789864888003987812394631413580644893920428983254564230163210848270821974303069262673087776175872466213760304189477385571801732354547428181663665542716606150493565272994475431461531233525682476134339075867807762563408287274463777172190335776724234492482586860494378633648233413344467246529564214319192013149328765573276399747946348090832064710745272614766177540299080572547849914781181171481039812473259140130436041664486533094951544124209694630759146214047312403352061525639592276117917763079862184161614238848346561558642164493876743828074879519020539113784803286292661821936653218239428955653276639477565684548063957316405694002715304720558116561085746457735763220557756277030313651033138367150616251949909691043276144899133934938244286645783556200408097187652904080961192339002064813842120550134275244087429299206570595396090160491112598692220947105531778214966296361325936938169234597609066209270027669571056393382835654679118455808959767441056786916492069580233225232233874619966206232013723705655835747325540934308454930416371716721072055998232222438946014909255238823458154911214409340208954029496907788218478888987540462387151404806593461307368101936141779240019115350893351149492485714277736789763094022847082435880832348996779955186226866645256867334462206607576038267574804317917341823647155297008854325178205377378236571352795419151951390629844709670886950336533800353977394363279023024053580810563781512300739876028102596598437832847895248258744793800108983944902303121929993659965586849652724893573007457582041917640375117780381828884686912288562205905704171934351792837161456646283262127719555922262242802993882739812897408337479267820592915161156818891365301358514151014681865619929192038383921371246563138053529213565214021699409470985963653165077612997540624703952102788090259627634469051255513633633781248359773216429551038822068466559910946031581108127721002468576591654718519097254396369172619571357156463059564753238917672922806314841440587124515081388351239785076350069056303620514700661043097827989711929613803026506708820300922155832354885658135372662024263132510851901094440938307602920395384388742104057345884421751287035707280395406127400512247546970753681952973691239251930671564336094371504252289844382632832469298060344615322059734321161677185246733991195707930476493860519301768133913829529161415656493966059746581860395527652431180161915033924420390971631669471491554744537278924617642118280619590193701940720802400806876623846904462335988251860495225746869932060579774874111659665583850745370997285792573092883083381384605835872175958972652899331306111531724044965767544412030237663186313044224569688369076024135107109963911679994817132708902972661480642571292865142375719069733955734934838526581526072425823637439104242817738760985003809954257934247458352199052988572528769096214909556822586792254617269300470394499189048896135566769035964709246098271876535401046842305742410370132171621908436962973780025817433028765009649209255147384607881801763181766015940412861314432054582001038385507923039530107442514448582285485111452906842238065155424235712800699297294678870442219150190760006586604723729231731867958838866778234649928360193797116732517015835697200739577293326341459716962008942361679232860637240954670296184220406957098341544248086403753498960865002303234101486537650648297314204444967265182616307540822661226092312699831165550595032980975620684142293996315721265693361811839483586418908767476291792025196932591058672999065535944378839400575137622814653263322394073547176316391355554537760232263727239599380267214372548006384775190215727378221373962607295575038133785543859607644406853625136037122336778362320326218243644166504117383280833228350060098902112815785093841940943837422784625944917701310210015153856473147911513560425373189461929849834826567205948203422557402209451261144206511115496353196694362225709223087465310341675655791301134640087923814845174324708750529263761728444502096648098941852949100513394879619509889735702171881543053176445298398043368265767933872921944432890573000157386616409320105803574666564897702587694429072653611821937548526268603429926564169189457198720875763431578967852283544135581851184108587286412136750218731938214956038571727763194508743475592354356336237496047959138273664123264229266566588888170573511046434027785575228648567583975550695426861967394053131836880253797925914366421313935809962557175604649878924775761988827451180316332477754555127854084993244792400148009376409933222223994235772429942599182618285366315561027856744261186287709568128544055623195539106833349109495612485673360014276520282108997062329994426139482913232857612085677449077867120437273005641674935637870768190853682593232491601038028520949509351664920924441570337304584340020725175816970057222687699098920343821461821088812848621754073328352385275666810511786162537047916966350290736788803422198434547065320494218886086259584265830643865855606769627102908827796123862531731465633451850761985699926646908387561101118251069411658794903839024878785038920920393346329165129819258305685583124029660467688529936803163309431385203104250799907156964859088660385439038381450039438639247501532971323621203200207421956955946647630727675881558098142601472934501007207574005328163531227683096230274619564659257363277367761525232895673200567598727363012771968303234265175716856522063865917715151480657683818366970264691527444799687371637962479138213571658744673968223191437635073229354770617242797970046563127554248427212711734487005525802620577443635667717886201132704724183221419795699931448550523632553791364494724279866956180267119726919971553190794730750207614378542352928824172941034881907828468891882605923436357143300217168105042761547035333968458462611225288077525895797362213403610874364328185165268922855683414945002554522117419866855212312587679632062439959334956915005050698658903651956377457514822629765579672500501064089440695009826548201495182276684542904877750441082432449900746347788827155893333556496340663903534459229627523984065375032410069253036526235926505673902914389631313652374856671565743095139462364804950908608557755532277627651313722408819853561133238104388272277504567841546890472664184989878081524525486208744966775285792716208875501378823565459875553428505512850930553360309448905862539466257586051142801640793643597462329353211123588289719165280249426332422076856550620250003917101319305343592967217720838702106772292656504577228746311564678127469617154601980696974756926635016086450885882671668383992470625217716358254970309017875845213842638705521766150597215161120668417478056006488000983134010811746154487057174347916703846918722505625044135402669487946200583642273315379497992640500551444982298742839025989811592572971251703739666764901641760994412089064287818889296609146232483338344062477817191250996293573907114894646814175976855683610759687280068016257378443753550948171785582392313121469072843304701573746108858939713987754788756133282646916129313769067220571261021815614119333829859708526999469603645508381150310841558214445047500676307403692787801858874266235965547704918860519418164264759118347443352490336199771421142569045044588696079531095701349604810303052038922328141247304665777533268174290767714595762311393085848357544777702456453623841724869283992263928318255253376652059225516289990916928144052694996534424809851517023857658406156004186003713677408877042401567272370448899599712918820024577915408553487843454709688403669928734611374682778374152268207069282545391052026154196698818053092235079417308027715697811542199926149375709602112890985298534310838118974865554025043500292014424348152703769612471988480508297728862955203949968686040563970441721214299648027306465848499754745402425005233582630283719133738849855681682836799866593779631330333740697970524945207134105503390591504312722776187364669307877300082438538867691303244487687568371076091056905339779061670070055037461548354947448769567594200555960766606915427819245454196373995248337206482944975855317927524679170483731691881803552931345086609506060121676588394065205708732087647784465446380724036443445290147518017420713907375129358374480930735756101620980689873966662289301613544215630635194691143580381733412896974480045273398606856704959264384800238847963436612504958483423521195129895732229392406136494936452605289967904334089435136100494432644877482797763946944193983453819933068540114865302419499973426365784803237886162003428098414587310575526037287700100415955277619141363507114169538666123625214180897496318789433934044984123565947147145995890824980493889464603619439102712838493593589557369490633694482441648993871794745197886816455519220347915608421106144015478311759922756529784229265912393198491484835994566882217721011756020421789951882465697893082170958121190861719587135716874820924006074621770220114316508077748052824287755094304402341354608069789318764874395995004190014391862847491085829013955118624929695573243471013886667037963063457803714737054567113834652421438026172127046290771752837295031047144759676697991498498818780267819803590332587660914828348055033156427578454224010169730898552641708877700681048309940728262115156218931087184396050704018641508868414386975886882527172543523844427936967476828886363719282630649224412650917903576319933857502898046300959733088830589444155925909598593456012222283243719379341658521827366209241286425201577527423987084460288293928704203803628282615108835231318027687754272048005219627102836088172886450202068838431541100343548645439358103630922257220332887491575042306268294216492583867877457854310589059486696277907637938988725761177659753788455148039668033236277988943309699041431858007059514761318713578591526450145240772242269872504307695789240237248104794260411168600975642562676932535578735864078379898478040036430151602069490546842091491483480240665172486469329166964233202099103228512958622134035533593688516365084779878439543029970261289122142103277869992869103189018613293081198391032189323156098913245471577295301166397631269210455348749417750294946159713695531029841521183840541562783918880505572479283887587045286879839260988010958935923177153222827145489737634714420182040387324504210755456661183799972503842315714404023937519624754006449123942936066010352235162656920104868652298466868134305738028310305503541012970321710566432189936822839154294538614764523055821522670887549111448861703070103138748679611448406375335089017145514425401895891320397982202987201126706507251295225171609441137621856939667585836390338403808182070076010714489518918303303652364349194048726361028103772976649903731201258422115530427724190859098532851298985168772934605616207540402412960803173614756434161507798657610236476679283147094445503918246363056468341529978716834082276180480618086311328686453200480465578172433455745638987736078624114102023960301995156184433476871883377067914456321640490102005300374489892044501005366819380607955916945380495882611669214568241156493887197500848102153903211118991743477341632577986235971870003784097481586587620110913953990375248395048732791516117092082261926785777462890723280679400851523069267899754172623064404767288627733081001694610667646062851978378588376923477986363697194726661728020272614057966428196402359948266483976449342210918800175839055623784729954478106972361995137608510349795883843561746399504463698035581926111978284341783628066487787890354172184264248907007272358958142997895867761732568487136655736663433892274870544491340208934715527334439087869958199802715476770151169279537999389006306286735219489904675739838080931089942728473802866878330551652372429544759290125802353049129964975288404009387496134217656557205775878007980470120270384826377471936989400856898702867061895705011000566696302801232765397602730916895186918670564672760180202611964586570535046706618639030118390399424099377352536306478489859459233860544519698102308757957569363257871511767992545322932210163705960489497183012258884233123984304322741391028239450332946569144539661394349617254845763713157477948133292104688693105425779384631113638467584020265884217066145851202731718303528233283015975912224331988887148168415943340898660047847750592103843820933030591801582044969892007086490303596340521529101961101440620584015604187449269758560677030952746612727105000157253897213803947222635288251573316875467744960267572293790426753644921099525830487999347268200870957785766030013253064898168846860599896513303868687564601887693423509913019730489934522766923806305957638209516572091326426371165863753769183815402373807813704457554176894179301237764541788259063436584893456412153662092677933109190137975959186652422328822157453068986183712789135199594155315607583982223849840846052054375354619485414657353329278594451292530677805540337437211930398191157972136481122836570142080036147443488000748600305713442883288278452068176241616779209968811070823465673655824123158155906050991751263880567100210714519306699665248998945605429611196428716176539487649087549208456567038865021266256087938772911261847111325475827959881275611478037258208833220104606284657159290265658632896513611850065507812834041419822133219125843969876884387923849441465524720200443666379257855113185571280386402409822789780460264594300354776402229379278861689188845088515799410664957838269467246597033227199840403235530725347339771253655148238045963753849073032316959098687147481590381121201603767530718631388120981636745499798302272638997308645055140743809180390107026660659643972541432875828891400094178700712981939281127117553773725829417859035525094142098647733335324211405898910508977471681430474888480730030339482192532919704438403551731734553597181416401527643276035736726332286549787370086395292153509359677407821888558296021779571143633641410046574919540110126713077892823222811866548566980551980217996362327669251616092277284263771395770738110325393679248015272035302670322361303227481460051563152845158577380102584291825149224717909815938714353189045255867253542940446352895256836283824199186179220480889302291924328416040628724614855190898309578249731824501290106097880219854752643080955448696777067812325005644176071560926909647788074408690042053282046959836220081703165948658936411622630190332557380166173645646204967139041297645776211792631645452795683011546301379505065425714993360777539693487572550939000959452004130491788696054071857233107771254506451753662682643697992547825114404445040988554549197792552711255785867543166444827562212354409142395326669808334756186643656274978301053363425005618353018975805184839624217745155436628987568752067708162766507952023599011594672756138252742046057710218551682895359461187382737983784874599252233479841333896675293614973976221734614416505958976159848205457249809273531048999015721958404197420109092383140172783867151678057139370313110692775013693114585054890845625788342122270800574726092103236835828574935314716237077549547903223278655794098766917960225964975887060296080867002787141565221122218167137580119830159847646062666025249464361583217412710083952135532553393917817152258535411525798175136646970582637864721180525400949014919231232927397031979087188829902916232149669684205558012007702815255823299432289240969488072969901979945715997004817450695839457853628162527003973140089930212464907910197633732360167190095586054993052019278734371801579199919943278984420712869187070540206558327540536723556864474708982161424102464132726022271255747207191019446124320851147513567948253125177143218400864889893890005011110467067834710437365435605955572762641675197003339179569272253322238523232119504373868503020618805756203095041644647389234351371916492681855654631613643430840716778368511727934942652640462781457043257772366593198893512811099960080432633651214524748612862824377144429305706608358178443218392766525618672867869694798510228994464735060724340813308585771357446202838298125565078377113891093599239804790347733079274674113606306129623802832724582681091026661077355180779414948002639344781879922356523311768348992943344878116595512287932488371545499867706830811832564851386731585796394166551063209596030333929755357849920569412292443297211978573592380450340375414196113735025449356114196131566369787100520769757147339799774581454116910936223812732668053963077088933715084816677595832415905590942879977994893590074156757504959385737073935940175641950452385661994108995211032175256804878251471272097700094232818614500861110827540690850111862209756675362315172979026616082848724654019261386258248193640285115210813144947671211283619146298537226241925788483605314699207066528823838119170926364103399243319980972385504733385736342859357429940774938003787890408259549244291738516929167915013383852863532779547612451919784929623974399708442033415805631904185886505313242018679190327908849172070942526722248090785807323918749329856433724720333577298015914154934812206410484161919507338632720259424718057578267595912238153675544638958221532580347171915169575777439529046537873978303199162784322167285598521782754886121769767219403996375079531938372396958000910920048235303126327319230931994157390754680649547428753496847736728537425316778066040876906804081302155995600565815555581503289334073792697309178526410478577027835773059503286186814561608023476843318414288760920485880034444722028057735634291892138274354871815666475108440460492608149590602498423004313342361380318417598065099265370062802847327947851974535558172666258865701620143868326608078689136376208936907585822677199760301250522357301492274599514514136807210908905068473461431500571189109475689358995144671033805460442747748317580018859639735439565453163402734868263926202885663339669551935823612584606620622851451394760263475934570697405409186659608206016160722986339936027941488183227679554129177551868547432903673990997284865471188977205958588606603921010094043932994180337250904316412398659598945686423297806275080247027531759239479040282748696470243608013627027374522054827563044240901097464129373328207572374462922752943957908135064566431641969347728280387938607337135666870902519931375017498797729743765293518238768425507837896463573676763482932696069206898609349656599679663424833236251468667297451505485346922953427470880487551858214685411101888105670113246204884840693104019583080686740142430038978207521957408325508166529260640689719116330544047609711595145082261984995908205141579326302693537489926419741166726503741567679588304415662067877485206911756956694833060809314963750578269841155475188371494286450815305807250466791129672617514608424001780718543948386288896040072732078161456751805226343240653121030456449717410830074780371704732088059693964877834420652126588231905825191332402719045797172921950633360310697912910275769772206740834847528867085550225756204240751138694807624764804281786563442284495844665883781318228206373582314019281301715805930769750859598203176790681609002151443434077787484520403093028561162804215698809998174538865420574440049414701083156187386022196155484097446275775128279361897759293847323341925704101516022311801816673169497824285191764342499176439786459505073346216068027805473056020470717668443595350525482615019422991770333838816308066718694319605872763285343431808471235225618878477150759771371272448114464290595107290245959527729002853379016791760876087991545995751748757694236119508360954450478208304254053148713171663816922337743263917139425314757901261045001391305576220788308964753438564788651227202374112547103014752246917262807134434538308192847864843606812547077040195277952376398580736382267756984764992768722241114152428788767310462329629131920268754248444311381858299944490436321090514798062651653068360260594415886444812359776501687237524225763517673309138099842076363850618165831328024053398609285312733898789718953704907619925634427610656618696459234911302563448846232284957877721194888023814759228180035148079771918289851769314433249447539680363064655713939136066961114294057896398549163056391183087757630040104771020290208972361746563228853311486204395825346319578449195278125376490619945778486949563049760935953743951498208348775212226010883051507221526708241091385521508369892361028595459992272116386116199419676498779818116981085540842107830066073375883885788636040708722165672062319714140035133934694386042960447117463239966177066837946524676017396491925084440596745514549060710483434906181357018420970292490563620518286161831616621834625173486730339330077349065676005486819052523754473850890049414082686259626829027788810192418897255812826432582459038445300939645141920103416902378611216051678988587871951799037235772743278243796861153714270634684213935312541280275962165116176510892547333858622662377606000977423837677711325027848906152459144542939258248283446154016071889585041157343189155255600672008514498232491933919805156287703266762979347197035770275506841152802340938762013832298998632502767813624536420680595804599218994207841013845511330064929704598832871836158546973719038239129727515344738186593114217129677488791988033859747676450209641065582726673744123661302900808157969370668943518802148834687191129684875394157249706417182644943453438635252300686534937131118222556191399254811828839976885337330851538020513178426916657972734525701114790549866262485928772084994673715356962076137477539501624191383718967488895938493032824188586651009927123502750557895851965269838940405377273834113616670801476752320373525433308410412445202023403610379621604004507417677540587606663705419501746888113863594655929157400791532862192955455223206486636799321897947642134994542488459343872676662557922114370275436065953571247855339066286198674339953522589869043840134211059478475210803469644210478486729283348057687538637788413361871727443610496751255511616100695931087222694442973886303155692609483927270975869483602994983970630271467176130926722039058605261484283900075595385727678506994677889753425079555749480485552945921638086232743522882916677098796237828144035788811196960218180055325528476448223504113114404019660126831224213280152454127539767835970100585292539487521225259190365043473017765499502144528073090897531409127736252098374645755839848828061527957442369884286837274697598125643261739377881535782520734906196500546922907975946429483086901039933345208161031576157057050035948967112794612107555497301324351970804900866620238400113288405489194492910360974513633060221980637360845801845842730968852728887214141101211511852800315817134382558608754965105295057723133500278605789543332047084765980935513977466513995460896540227195702474686626925264771334813638346279203973724963281539558519428720094250367237346998979310298694136284823525034135227936540433044834993583283451882815579870202036395886168854677582095189386870232097232934107662965821898091068409091675625789283813658130544186856662289287231054110671635060130447424221233053246057292858445004128002837697259264765377622912223623099964962606193702986898444612774434768886425287482024146974310705833894965914015954772606775972587154406678287192524930442572604161675977924221803148177303342659914090884371532574592107196825046507458562708842935397013427904280648516195751720667178064799411781511467349405578136403943237153031312895107837137224099288444023981947352211834512536646779973672395203213824689122140677908644385679047518446666391068017969665108482840521679356750966482771270564546169820990560165948220104112594158968347066199086341491605191612374596819022926794559039236363633116605060115175504719164223044799813008648777523582294583115771487072303919648355662525157939453772069280580824320970149012089474682370477438021293343214380391444943592108243092777057740047191119988034713719115240453446825818621212700164610405591785173343987551025636136051160752037645920042789237436019477845673665135530624606645518375351960061222800505142585249676473582357355498904723782284946802941161824594015421570586878867607209779637616333520790808241347738890823209519107922085862847778421312328097534817477470427275359399917108766061834303599091856261483778447769380866092541989446146122646309162350122573833097426400366015344612219792816018660347424753171834066536115841928863770241444143874387545393267517932739181655066915134352732058329483657690422709052586972888372785314491710542159601210210782278293104419660334998124933562577156815665365378719160501085646498019248528477036867810918822930885989719420337363417365694459021551237174272651513098631151728598145763470047903960190703527901503606755620627708043800642360696150775696785872195905195361906251582507058585918980831201692641727600771770666420670416254188156775706656017900148350192719175861818250012136506756789074416058424827874636293098332883950654081287657220626569571825072910400422983434418404132233220354404397452182939700246292448348399582346608933803430596312235519652434080367649637997927015414371722797882419383519221015856522381304206402623092312627588902303252378661707763463054716189132502275921749549401357946828243177478423110424936072430804324129203175799368396663501809496761523404123780651240941840031684696323152993715552922147304255461807104038162111265824677740859782709076074645370213337412816844414603417868454645638858128706292996547256520693982898599612988515674690462177487150829641190496738302879249448900625297357520634283181578181249535493681693633867928362771608431351786456166514138957712896779886395673268351636547398895794504791466282433416418706585563532102095917723731857415233506838531685768192726216935040356000250940704767639042320192447437026385984243830462253969919784006547022049498764930331153079837813329710518817164611901049437132708619055266361828106666385478042727316879170577803287604182630698783057240367841541681516716982927445740706372802362431772379551820642734025925956519315755414659830733258703426410277738543486597001909918088702462582502355610637300743799672065655833616300282241996269718420892328500209019484423344159798797114286915042940763679703818787392030763350905967040922244512557755062822345785159565454096662874805580170586620914408160657966551019481367111755354587403998270838370261189994394052170548593289392817744025860457829638305649291102100417674550857354163185971268774020882745594966509541855381850188152405337972151285202875725716385623711055604885597410281328164947812025176836649997857411351079647647218248097696957391906975994737051427993459971925584166142701236895052084974159634028066171801844297022953939453755398114269121815892412151084695920108751148725918155666120736713318570079563731781450990417661971879886890311508739035526552698081339811026702915975571037227630560755650195910607566947365243014772270219241927173093698661352569472987508452671090035949464244779451353076862546718165202745461215060884795171199828201430248930264883439535472848178142806758490901492250648445190449947404175448242515476926373498345003334902910492089634604898934749320305387265908776910480679930131873259661535675298584529972728033912464633933726055992387529960585959863678839613055428288387546196023650576338638357835948887644917475494068458987644053066770271998222593242405353328080898474121918495950984767199133211461987755930255127009881191251287070090629536127072110758299896556307463015953531147457257418939624676133844348416389310897984619916394728935594948766474218077445141211776698721349808366133825402666569561366824849964544634537598950154924377272666181625508137715695665596985328367740455392480550402826124762744125778545127709908759498214396087160684389384171957947151476106860444639000298459382249387157719146204708979303816291917578369361611610514557665961637134147802475374089300508076474958811712230223826070299350316143257999905006501245193485171240964247429577444139799933353964787772565102054106023768401432904212153520188477850613263293354334156034692336799382986075524147614823990554072426803183798736171656897517289946815233380067349982169317213353132365934683404136980608114162459404225169599468078198910381882948067241801737231949033597066952244017933880534364147357258618816527438104193131749624182917708401878342303190182896327354649658961365326355295060029219690982774458352939210543501401574946484473216245487449331419434170707414882558173482237109364872636871850871175396650447429047197811692288466842077367012065624972219719942375514862468844197285811882217606482515581028558232037014350629958704301208599550759586057042415608834335936677894481814511635156753633444487809181916875805898288288801979296853412859715610854571986731752734297040641784045511536705101559006834593443430407252131076828242574047635328681727217699635548689188714575176365194066716995956176996716850197407691546049392199699480366073150611671104618922276744470158506886874830909539866457733318869160209543583380684930561396466115990629461477489016444548092499588571152845749752254400392320621984500698755942084082946904724104450050843038660956350350061347483316387635694673764756509125970520219196306843137852039380215338232404082598715341995515093813245870057588480706988747243071692048009731999609503509597958991297793328770407976925692044200352710894343685845825731413691718887539732909111492100054427317642982209780188181244574664553675117621242347201259810264337833225277532949781460768737603559090364821244115759341447756649668426603174638925625692368859819567530281835112075247161371640635918628556489260677710364090646272261373270586239696135690761783284402572834025672442146831478834588635733417547501684860509572141793388631074163566014621177690177778062934481415222988327116989288173592410068841331473424177468161453805365814241803899374130912586265743279561010909777524913268760041235031679003729715600096056887894201045035794627348569099476691391187359490123626560019629692971789856832530725805479132930003790330514372195293978194868455635325793190799519337709922491414997261402181783169473206996927731235797413182192341451327883126010078758919483731324418289236489882922752236169409311838766317430932825831421381216640102762960585657978187677521270431143754125262806946166845057009969249025656680937316879837324382493875064085759740804684816149103328522162726661911922022181401326711823627059252283236105645708256033962600503458477826491821656890483653920943602556123218272737183874619600294621163246042822609661327839730694780235250128541813795487431433890289137097824123667233476449798103669564011752614087578358053448675931260039047887024789017245380714809365497767474148740714551284656288215762471886602230743880715123478451582523161205018222493467416210406330316335719943996268920268765338877736570857289774247285173364933439800698600739944210360691566537372824430533412932618531383472368264754164685658669158504423520675348554577502871778224107997223948567764757086347073576194081346140822826089659134789272122603904385241935384963900343450714865144603867650740566982571747540472965657845285078452437638711879179929440073803361745090274002398371528454251893539325677881138343924198151333422227883159183567718799641879452066835758770941631467811198597622472510337858966215754197066830463094919228420613249359121524313806613402051206462277034340297823117873310427382264027462164609287394018475961392587227528467633293560922965318660969556993159354053692514781364035632941337163788915505893203320233587592554896751467226939109655771749903998802165316735064670532415442639023778116724719634058027020841040982565611982730577521545036813606476292544862124240117256647958554658307814372143411576156351176127964591947377874779239792555523620667710580601626848459838719826376299392725325322712210523707463288514737211844009106107134635908409257689286663088329948230620018291761519284336369410040543870052007828865611634460890844881336030750998425106277841336128692592835861714787978711132523332319666503942059972574849475348867526684586657761572150926493041342878008542115672277043005603046960549590574500753221165416984025006758819242664774056216160805505733417841711305134840412874133196822677687447114515329469130592181533070277722178354419542973261654852230042799668049294024222552666314038990996892400910086229138829468360670153524317493328187125867636870913121126679654571918892764192791455204812054394566692007496823462244281478969286817950727676902738970541201162335287228166954430190598158164819712351954738230099792779056561408173787697436746397586255721751481417906495228452865761779027895893739269113501581504223705180720356690084074661271767928360683429267721526055642393515443462209294340287062561900254362485458300362557785760120554300778687971967473921028026399025184320036519488500234263453138458651481948311579383843443984210306003833361687823046480562725862169273509084401962515429487289074309440911931791943874157892612495353673751909519096720193577061421658405964239582329309492919769515892891307868508357812548826386098912951206633708162678161213764777682381191450344010526604863537519388056655988126606959464226429134209303066012068930616039695088260991555771394108620741012993683050857754305867544952117728978571400839997554155864885951765871460918383922531227143456745367980760328803458878857222534891469731270293955736867233551799848418471097165407770322843163229982661855662353243326121956396025116217361436687618613390525763240603275472604430901257959017985000544397565142099278552297930337579549312061743758798738893170819884523074042313343167841082337017172437065155225965626229926484702576231086250348166643831291020052778315600027902469977895030803568935460252340688644951258594108236011244859092399985722087574984461372164415988814340421335508393713297345772509971880104482866967852669507624633254529769456216905616208559543964152759992904880965312838041734357509555106463430083981393269262202195849801846128857347956424681862196437871425440423104574572085061865949055332158578844595075299844504393594835150850131392360773519949797705267523149296114741339711235403927532006618940975006932502663948469191280849906811106584743527496801293300308954675771067800809770731048203173324849835925440954388678863906784498343281920350837021539168130851342618144538720657613476134944382410557888810481137538203357598622091057587656472606630472252921115501843052503436285622197248135310643822479861411646091509710184796642501661760324624478188126312275514100209822423487472553764890827989963333020929244539272451494136132487095269056096173319926882808662758881395430496364593508427588056214896335503622945665378287266337054622727347236852767037882448756967693721088817957312986928616203432516175263864123700801933240653617874258387472391965719308498115327277621055359447562310116912534745767022740461489390721169213488612879239037499249831541412242723670744326997030190728533068380201567180800634298626849392080985306107458590166702623991095042047972754872911652996303473888095069781040670674079441882450363554295676106994788461902428269393655358159685858283571392733203407537379395237702815847595555625277997397636074483791626161643694266052055598147817275129400889881824204808088315764594543244789041708200622122891118418479448711784533575342110829298608297096841200861155371122103425165868856937436854725465347288942010351392020705095415358872310935076190334754703385589573999712144248411078741625515776422866988786243032447557960854819459740460695781639519867593533781055074233049702952140501277131887129804394409207426673969006341103719199160521399248646361625866486367923149019878075261456738401984815082741185216626920952160771286769389577773190107069627004898505630575803759958897514696297198354433843573025700786651977702977956121722763343940921522933867722861979052776533490684809082352755856652699357990715083504926678272070876550534956002248988158283526320480084456265112209472390955269745558468705869400227294079706929425338061192956116592659057123658118428241886935443538424104219634105298219944389626003978279874669179949226535918760265974790673692089015336322437987977118251671632733038932764864047864516278821280142436762893470018502376572806174973582199254163479646467404133137420605559671593221033430693730417206552825474815504442177709567626717147713743634253021047292334785804333257126604868422358303610604443775073016311850973356664460630878678654514604628429598769130717630448216814708402558759680117964163802388848950025324963209222591862180149045941589526114979967381366693879360283243951009658415735491786685384024387461854991999801720060139297850807315160000365351371099677659956956250010944432723884899290000556276351176302858423171127334848662585094993771113505911755717431976497185589178106733843204852937962108780803770589949553570082282956841218973945477121781808569842266623617076574108490652359040771555953283680751314021028995891954824790971408827620729069616908008711296713867515495547861766198862093388758438720639048004029308357658049185102231548856211720061003831893566973256379602768288532356264113017231841588584736490050634288005656286903800289257417292415246845595264836116938504218317416174223929647906659927711222798886261143075405266769672373863874042243919480549638228100146246864040047101893018439346285040502836203576981761071963520006217966759431058084175753108974788269278037464704870002400169784613952734761156203048286042342024937477357356974519127995548873751729801633442503247822819232454245883247515228950316913295036497256078119282226234402721850772039942272939486053890433459015554320244971377257843494098975534853363815599400042724831575027102578866626297320736093988923424891633379794367665104032829604483672597235366025736349534679023043322999185262282703240050178694276889839474273672097507311601393415259702218657429388395168741240818517667206433637377180944197770633931850838370830615528157831365643577543933995226543149918848420685810520447013007824104718337917367722365079740085702159205769486449364553039914225970415237802883651202271124214419188382683362802191452872973401031803677830537258033155749129622747659647396645426145538204837909052098584065205462686636418675434366250152691325583977834562102847009659814335213236687905003959367126543151657995998769111452333776763700868698110019127160948397749047806797632331245704605202132121146706174378274264732761689481017029183655567453003522309264854381131916117805968007531749448487153266832621708105746092997347934333250917713195489968271865559049741312580816544399783269169320584827806298926565793171700441426278396416330951619584374009915962196066427700270997197893127401790468687339668793588246750330194115470691869355789647483104851694518609568186584519340550480914124412557390185008400390140083731755832552082313831411536201294100511933654309547126825367751405164138335771452678469723754300459693959886537050371916957904413141787502825369851193860477221411436050228462412925091807523790375152491397680195452029001599866185172369832588402341977874852181796994921410429772780055124433171242587077015335433858676169351059837672779269384955360455757474722528013024774495840616638599151835559813330183628439348939523553030662033629503952548157229659938847625419107542792074850488167100634057642404551883769515210108507767333266829046703815362490698966630195339440975472187369346314840361748922687993805595770248248531794569526910682375068627136026293105359583832923619504879970071371207464496520763755343237776645999802436908046430184894226318348319194881610717436762839865745250232759986376368580259937565936152741827685630701244243855253352278885866591314704299631328037448153453159166791729556744987713627399787910900316672530726499214962039264075638146198777040615534968387953009974834827796712726169008187095306095509732466848015135373757675878117851481707708642248393527246601451961426852911592246386182581050037647796749399200924051841401966045039389579383293141813946859715202296867964455894677557399469074284446919360552982189216840439478919573320434342958142603556876804190290404182919822580703492136159735806600672029893511611097825097748090049749365306845925964995284226110016624921104866223719830598892951129373122478140560362018128047074891215481394363703575564118863406922108371669069405050881006236869295209754582433797187018444021326315228059342235201741498982161018249211446490251937499263269641471772802136306588626524339286547966806296968618472787523599750034004793223019815319055912857790721712822638293931718341731222277363080983320062758074515541915487466955601634048405909584139722873988365779663125672503687257175198566696129181024693442754497266885329560554508835430544748223051029096336607734162740487214832155107610949225129947368548947093208688079952135646527979417806283293243585120829230133093928164134094244363857254321990067874218527519324215486462761410074872580385185944399665981361492454735416701720501183900712348493261675219719231318388701937337072905104394221211842329458285348958299924458608516764914160913072902203328028673875589773131432531365459015785451769113129224205403376763346409438743694772205399396255358572281514933860870179092812727774818028187980069431308589887678300373860464095923318004182789708165261423699107241080050283237733628980177561385047141573826865555458870825018362151119079286117577478705197557111421936318639045161041719642604078095722601920952639109314015117387359326570073548164825895852703846284631592366017898972689797295327308344125863028147886132259967708232548663841086660155379581376478156011633084797494951374225503702311038914503005961919923997703997658458241007997624006088971208384014811157594824738705765274088819743439624942018697823192406591387404288661440323335729427515811049565909562913704972273425521219021559646021915453238580810431154652327402248015773839499614747323982886734519657323419671758334708748055992234617446788096405315202345902197362874912837300487361811102250184565380129478931259297413405152363292426909693141769183600267004418995135795369198847286708643618595130511509552266868703869753005365480361578555237838301692229382585250342675405739175751851918614646184275334159118151935473634430771222070965435196898459586093581931621585056303813606620919310398421151330899737549831930492057069670815733810808285615969524022871075493031099620429358008354518102234336234991420284344672870544589245463188366468183873929711879581956831416864885231913265647866841932895352103479103010811764262098400870648059932207505508870554931857816070940133350028040339955199766879265137835671643564394910281848940872567080288808868534919169251029779961650957175341430486036835207426308030458220560744071815710154109126049779686013981098017520724841425457327192189756805773337063425187163544587053741441952558294809304627672302109844020379037590355307119040555308798988041725351520996296037083082316496312495577003514126513276984782104501253056458172095167322706431057356787317268913790428735952324708342960751786793936883438710683208680434081870791829396458681463141394931932325496287318575486838878945721434717997604283939372279838163744311044010713193924659054005473203665907339465810875917788784862462273529345893178708733077548187852621738253684891773498967004217908490043321000651719501791833614941257732477712810501072230442645713476430694737959932265757228071181237469846694049755146683983273175268465346032934360867703444806390018394648851422388793012779435624743798456671951181506928816255629361810830276857526022450553571980447317472378017063206216654815822723616293314501364308573166814054040979222845520464527097199201831196007598195433535849408000951369953373171957644688961749283138309824307446817510916630665117468320559548418454558990395441645906160253573824939249772805001632016242323610534188139070664610110380465407984623981638124412595990915229230662534268992383842426895855714260703692501616996146508613053492196938066799246360959811736773728351078857300607807151780505779579446459522840694083808725755405345295944053844825808550370422237905835767181827960923457808611465471979683715138996573882706497946638265297871732664780461810002002430998301783849420569026820973050242672408825523046693421869371879937866696505785157703102658509802600805015555997052231492635976233342122386798126874889797948386581863072888605951971222667825619504463476917972911357040917805737327106606459618011115316465636174196417210672584002360408416268743873040078167707225325086621218970561645349607404122189122566914928627902908868843633370945651053373599741287532089153526974974378876339513371427039141589091841927951207712899101793401370315729371206161879892303140933494216674329070276796693986012403119332870951546996002388491942905073246217227748985053736504949460595724105541370124769587400576966616580940462140783188778706721276619396198767818047361989080942297856869990615261282803802508440751482090067441147625799864118405752908849385466984472605644998190983019977670092678325182159442058275389983314469983927954695376225795392747310557215093504252668318439803768365529020583406295377134347331292446445748246374694522102023414603484425614822049911683351543218466075627620081253671637085386751072726105935170379485007633287181784632065731176672416737436562537742733675306026937810775937313038941763166658833336007294623897339027316567025985029834914561061634405413819077221587596940716967197729520713381669184485215754631613894518146652130039489276541851790484781786598286769403412700416763228760322445067687865661600024626555405973141922646715068816887818086200379809543785206323084700970731469536590783794818041616650454382825186942148177833698180079407777279581891535726155742883603404869093610535361961475984926757696527771865467729481154353285249564350397731465789279634727248738839934989168270601909753546395932877006018263781095167423696793602825393501246870361539578523291787761785371144237748335379451985667112791735306642026000186357001741312233886111241549561669196532529496206699983752723620811103524669664469194779608065293966812081449019495658890086815306472320315697116489845412444682745234913130002283054803410385359678634817336857617833826605353044353746781825836373209056334528558659745710723268463502532509111364975801067333701224545294039520816193281815547879582198429539689018467255781607424217898888887643968296220441623722794064579488828814380997724577907282990378539796500606595466594459793710919924402832666799679913621571680781437153187774851015503409304174633546839788606983037354855678468523061978378387902854311031918207472071587761258272713166142641437695198140397014470259530332691702194596968154678815057018358424806460849050603180854478346472016186851473663220739710426421760379527937229512763753659876392844531780029121565536244170446851400972065631194185954922671571507485736628412757893538721420134900913381079033827617957454748468320895315981512779711400912592413529088096218315253430278989689798925306933456632109675401698229659733296096415804731501347152403755310217408451995939748595139715220357279407328363941398499378259241910933443791576686153907318857626080514860492065268625646946896510312462495265365904822762918509288285359245006437877294646206633827920800248145870661958017716756343598342595907254608674111806201559152456703465917398999675622690819970851225575612075365318131432080407264122207344990619822134944491739783583429038202836447670317723041067855721619992004893505842484197103626719634085517067010783237593508266586042796428335368487240187791756545619429847029509379855890669404834941017483734949479288802745993538101033203953764325706060157730428258266274822829735625611089281722647287427672528546734413934826463106959079915296840418176778049961488357577285253177360516960274633754670572180644524682768458322817250631303918237036696794076338848024476760869935132233986507550369344811097362470303367169660239141540523069911426574694592606406100546910898956396092880147249179354066428315146660771533298240187014068100516052475394237245820210856654276512574173627630504519578291939608013610365213764279951054646812033386816813746331121588848774005485547164288752145416492283738317776331365900421659688452756911866873342963051646710023664647747238363055558002711171453822920245544955337285161510417497911382092655565596766521138728578194160673647175327718407828927288819248154385635218825871871096554323101596214353188036207967203459810636298796974987189695513759837077859158474079911505096879732428970041137678371210130948480226365859886809112447137202651825059289436830230079677193071104056767304972496727851887348265905908164818877113654557961032337070400631646191113052887276067091254133935396035317742695503442293335712525730312472335733216746076716046909520848212844184285527128554283189366362837654730842072904496679622079119191625993848374841126503146947023957862361069343362638827820990167095653663939534544980852936030070213304999703792936710569952128986036032375614091128834947123030880662884341634730344250282144223975697099480857685957661234411629251774753531360099072593845676344412211138246941805787104175490230559996668304669903868049895839431097593817110205005076570555502267069098809640306156687974987257381084297643331593022217285378304467586241111224425533602243782162450466036280424725528478230972310946479660400834609794625669495257439205188290219666446710090817517767535242670022111704638592596715487552756494492875856127956291659462030725282892469329132574469501985748498070021408929720470016813345715324695793789645877405420477680217581989000531315761762961359143202752511069741402302936690148166216229874387985139926643037484412885493574566555000560460834536867260767016116308778045893987013487349806714365338159191404824550725960291692315166000362003840983618196293063291163190515993588785863196347830988915202033411201489496112837783695761870675570445554073193101914331358693108809726287846844618288372448911050462632069041365257384021126279701327453298469272317643681947141424434423613431847763770810660063716377957559519895087362947035205067369067192493769731148621199615855689880515560742308858316739747623011610786456546498064735123299382355485495575608305025845445294630697176239430105358775532523269244690533247062016295231489878979498486548601565842331291014857262073590522585118146600969359984704491704740559123370704080889104969810061589757653857632334184610169955785975651318147132647894890716729669011670847978827101335825430105877513178742286729247875263576386604067413101330062058298077115901070815259530955168861976866980262110388213143405464497296562279658494187337817253119963090553357211693443120209928341791034817330206683667967204637071380245393770280064778415239373794602718903005389578789715307522169236047916930660750352041819846183094705969966107556288448956313677240649431421496689809860959620130764933975060465127830936200597441088066693090806993616921473477220080975609821528819353721420555450566202636160137562994051831214516645671475270449890917572311215681220088757839303461668663886525309052769648860823375801044098217188691985565551862322517017963787897651871203910774609946512272887093620657729536105261362183121000483246528825987506397821586889468837820840538575454620050260932097319012780506137045815405926283304332993983454397259222979723769337273483375500589887082106825705495173387709679845169389780544429565214523358133302113047590085053254171573013784741549628324194592067178762925813449318514491545522403754702704359086244305860513808263877842684184703191249063825690359399183489997829376420721425694760649972801994780407618484969558674518483358368496926860985087291272085266418657042140060066653912516095709606737298825964510607777285222487914971496114906045505854476406279207667381288603777545997782785440174294911368122139988788013292958526172317099577321842882840868902902652880282608425717282863243994374848619737937645890962853673820295186981300973264234871215367215296233960456154730572683084152632478951718047491494888390424198139166892473303185457169613883271228163454531174712062297467735265075710921594172732209376067691560836110009264207642770356477335174472002221359976352864581758701584728136752792409388964530787971489590519977879234121256810665770927770268504832382452260476843202816111711473652116071044811790923220585281595778932732096934745171205189938534399765126876250992848633831269598368008810655223088707023774406072983574695365671300471742423252913470035298723786957919471294316120760706647902781668080897366592099578965350071781415644405082464140347464175153878658857261724981590311409738261807826561791604470390372985734838564023124184744007557994197588156246977275354862526531659672796325045060124273177337911618387493489643239657690538530050370060118696618459516783380552992946597033313285124369413381281104387987181180493582050093983423070311299278591342150867116009435685478934050811906783580399054204299979132796127930275999167083636223697559680310307804868883980181724110069380577916719720113734720146653858514753420564847421669082577815773871836847586282096200713560792851928021643051421413341391355469603997907060167953615778511774921911229858237972052528001600938074086427219181419500130353954304263361588855129056432914748974077529257315854676637392468768692265822903652623886861011279682926969591431373670715648685183471908477075678049042731340901464645858690717642022293387379700283858246515150689066549920010605512804355715372651448848624814773746601667630453190598974025095973846914177882065007345293329526114292368132670899437663727821914264820983959160572132973833546471152583166918459257604638840143406999133235676009334928837776363545326967875717788698731319744033006758157456689545894733978077152947010009062355543613880977965469489160167272079911472853748242006370031472798756403341052468083073677643159700631013530326664460670103089208492087437724723244644888005627819428327991644490766730532021661284895880995194202485715969304553774394133404361463337756527683759079180791595098474596928657013079249918296755012786813645552394440385446983146380862552084862863610791968482191506236083676114116413345800131660218675321589120962929518268241894826239764124780948290863043665588014575017562886821644667494256447292331754510455472987870381609253018002978381908563663524246951542593424590925294083827358036956034243062937687742573720478951583070185444140446411074807726400926850942154334906100194421717856422492015346743819425986197079965525211143893347107285158477656848445668145750717592737939484496066496431297896977962540961382254268591455730874623397372901870629664300769057680887043104932747812476214885943446019813176460110877797789081381769044628449748629321697585840391465275708363132654707870299570222900613747244797516672180763593548451170288952839444184406141301215089739994578224346851943064557797621791605530033142389654823550279200761055822614394437847992255680867589801631684985154559888723788241822182470381254584088956768058398204913696144256606381621667285931088228330507295911751091578818849579775349111067559748645114883721462465693308827285655699103736664507375868466826139122623153044014924777923947459082385527901454910422926643443322785346238934052311290969380770825126885764266604560388906727994087890301532174586727438949743552691452405040464365823118921818902387790084689079916291133519374301072605981813454566396965538819157058802478710249029378246183342291446896544056985949577064528101250896724555104032180261972618277302473677683123898982743766423708967257154096496547396050026421431446276019659506367900644224027514059731432016391622475690033314902787577093177109236310266383453595528817345788643254170869408374056259408695941773049942948258808621911491873684267260183563170724309514832552575581045097782197653626334432938471627041014032182997085133899547549415263054647906128229527031855315670317259394953019155620912538652202934056721202743316012853022444740647065881607040223220840305594996976356697881806309937813349236268605926437463035825592657143758539920573497679101488920544965672429379340893737076215224457401033597798920643858205863678087572889157876285087071391397706446583397467846949687737868511631825703816276212556229660075838990446389964290384452385707552819099973437568996972257922376226508269738795404858793159479963172208415207895609514037425294770942893816456817408239096089299539499513328437567622674224852095894818568614427954126671851948578275513670239844611915502853871933992119809435073800541410635770929548271050178696662189531300523069116229520689071460735182899980207234499367875296365473829200235978409370640506011369837598253371062934971062341097449721831892783894271174367741507977099976738682546141733583910262492309566649520454998399517088246545142260604213363560009522183947689950860009036427183770209127547082192087655586549726310604419368744129300843659194539491579299053257099950672779250574463440956401092294644091568582251043880872759486964167612594770457017383028582154642052146044368141877723405764161556868371844443074240112689746875098455616214642275687604092565811303180231604088295359236929883404631890288057980107743071513911261832086939423882104311148594567903653096613115235661327898762098832258405665063735929679012023940287355095141066794129275197070196285357062539813240810809157341973356576472914335983383465730587474186674339276003235410751354161338998839322525707713403198530084106452505843691909884807427116767262214091214416774551738676242816837275131757116453875267451147167023796376483489879357333758428176422452232918904120287502166882921044052253012283021741410058349488136485147135504946379040758968883290303174568664756340855918063925070629699886408853151645918758618381535930267524003131379669150840490122454581872838349319632405246059476652806976756986697485599870746393310397589900357735036034361074672179186835718685336921348230343179527258291214563838700035941760154658490320761793900284783036811627496450631712557209860701413376052516236414663128405458737960263934162605416216893558933691830185488868583348949915095192835714382292552515058401296614630454326127993144791421457761080430068596131234443410668354626152132429090934030921990504752489470615358067010048459478386736590751933468056270135631348406820379562223620630959375066324115545669354850337262546189761673734780512912316995823048974362860570218694668117514332924290025867729474401036803377235232956334734462168090892793324261026741105020394777591503486365394888610001131134088327288770085748313912043399891234546194047283869797755533947649479522101306485811815045601008485128749161835240374998774917379981340150306772957931874540084098513786075119497558062397746722661207811117902765166006341240518393994631069634267842958648954977635144398369451037667403451433851229847430475468449835547441148493506713308746930569640062721232312364568296010445488584931671210230343344661900299329651129586025691802838480449170289771767447925451219455593816502434659713284529685509089904032482514028160312156166289593004039995727440325908210198373305418363117571375572139709411878588102642391815298386193006912768028757838776206788135085593581866287161851131101336900018788232681970233950764325376474180095618918927162470207247665573404318067286050237235269348595311594222476023713850281248265703943784160461893181538662830868875170850690672305970248366254346532880639070111234724463863175953046620652904163357238626905273960801537311424095345629057419368031773967425588432071915483844900193543957005205250208775806417911874483980893378930129381663419102369285137931733277102791316424506479589624192766244899558401582905851104650428781274795527907674223876283920027376339054324758610314819502584507348024114523849742220568581629458754898040267038498347345125399448006850129314319406529622319540626469422465441960972355949517012228275538087542434684009254369765860609646819593392502402111575735394302348241287741979979273016167034341355762073139297536608594892604295711805330501260933926479282755650465074575843761082598017650985166917540619783505958491751257885111554038755243794692723239549727440574029180425442078331338550359012750731691435625457605685158620062412908076094989129700296089902270468573808550964586968076340902732998858933056886328910635944305757098752566163430928555033122034553412507437616112465343568530023076445499524418110864183068961099473814316085666101844230253845020309663240888371377923551956835982970460653721879932235891400899688739853661457762652810558368304639962090341586400446919995530668174466016846916503746565533217626555732185398292535121678339754857883663192242016402584560148560913053897500123472078313215331971718974503929799944670876277796462782068371068743165980791220931860660275440967927213911627917153484085590810784997385498922902095968747973419367860275097487876226956443058276847399109658073711985063848547140901387988886992573532548392788842549114710892052214608929316369964519376167171718218145403010223689407987294926657740775057594673466968070415025602922392219319694011441533151478336016357474297263117204186984822268438184715760839192260551562009733517182459782619277887257281445179240845398667663191694457818981120425043407082511722165370462684033520325694254901273078563428808754578825552754633352392782315319295165978420784486438768259858615012133486880767804545894427221764342398433138171041857743746329043688871871233294117388917090527961617525953482092450481294220262279027497402244031321013132858517080696218044275134173453698066620412047979945045048287749205461291723348949977159501807193611383118230444254669301521798870886637095683711794467063675546077560131093016052918654234304303119420250429824754803624741713162313556458340618871025532497791298152486924411180529893038681684768227664389311948568388092234859247810425583168702168197134451296726446841781472996311370590909269481827615043159466286689911693556723207070567032365596843363295962988285201991525419339243440476870544449723130070063025838575638423483872023381847975611539158900757959534098649781690633110340567002138040214923001877456801479757983775927611642843077462252927921219555830151907770040781612694435751301709854619792121769752677610555380717140784614728711024769399579799416628790808736807393851520040156902599118167143749913375164965087916743549158473142527731361497569944511872171737386463751284195429305305377263431241506176893147327973164017381412029795823193745238075472531692155494455051840686312948600217355075688580302741750180824073553541722040004529954991557759819965725705102511553965681387795420598675340977985413040309785382561966811162428506418684488300121319927360126149308032628198605545869674950369314610203170547488130993598446890039021255839088600984028646363105439193692020997956121781990809357609224764827638168587391903700676103798402415400346132296199211235840555779015659803578580252010062415877954506605458640754822572470619164306521425217289115022859057261973249531376095545767499550699990633679820833901957636488432598391353860621317356696318582705279843600235521954815166304293269047949313112917907732381159818310958746754615647529312830388917986890030451065208936446203388264732119638713223226923817514379243782156158288174069595384959863468088657186385206550152666124978714420609876411369651517759899109459130976560967720040721757993255762374098571624163516324203018157186729192841189800252973077464463183548869967858408159114394274186981578761751674227469808088720572569385467539418673669652268608398120934949578474052826540579488836117564565422075424577399188624074761248570379452522551328924365695636993359860340367976044940018336295510330958726308244788259197676645617763798440046636032650761049263941806271239679213332600630708215852088114538872211638080170955656162607557133174526993650246924736071933924412162166819484323145301971161454373066719202426897094957186963075785013838540060241010637276729348502280361761720264651256819828207538661556886742476771345757506253594528402475337262483463669407002583438740271265320811444757018570991466807440126358162496576677445825321554277068263909558529548731875297269440498977811056611721098293451117730340447038549483661450508230744380712968643030629433015206682582604428083370787243799548596898192109972061643000293536489019741845106195221756620917457809563751504563137995513627747626338670964191337576979376242890940641353134799992088842021453927873000426355244124113665208058205956724548972812460975168888997986831655134350343628282986970468273797670088434825949491843999497394610103874029510472675299754318377092984258704389997419022422836075250107373501599318687088687219698550808949926698214311358860772934125657896477550408722826238213633562526966186329790330168700130390400102225630320248599010671946368011399916607664976747401095389686579764291877561598448287255471589231031369952841980619200647687865510441787155171921450941243119978819606523534454556614057125459382032785112588208039169561581214953917930291577821190352560264982140384502563275575050258618196966986162516673764988467854950557945781774846966812011328311595342251549797215013775654746276946089382628795992812247703308115011342915106916570477460035759751688892403331393610440511343596541067322167299125277067206253502626965364947284707986629832098056767092333204111716985517391238710462492319967894410651236461065718406788355022516520203752734128176269565961107531878935961939818517545327705121093427770176824177172606154942486379742039621116356279618408280094019298420528151855370056165252236145535239590002145711252458677683644555414018672092889703593147639788801223834606327816355534737961754445342422337877171822576685851999305523826458527916370617747564802264676867842466396907909235647840825958540472887575930574782744803431398814500817867494995434247382607344201494116487661721193745500477691301166311633757324561934875945112455966639796079654680990387270171977849208124710859717952660413778853746038620686354731965909814077268081585059635240452474396378237524631414000290620979152276064796527965231114704655512934945746048929884255965257711762682697932150819893974264916688407089419112962063753094078104193523361914260477635321124111505129061494191638940264818967853543608349557490682286903273589474510652365573955219869319563161634929306718712804437770125234395919119059099168222343542184702841847191251075567590986305598499923937072694713342438352516718705919633394196417471214747797215853359189716767182150563876344056325231798955838508272076380954355248211077097355808285017257074085913760739596134489658373793161955380809804701620752939368425132037833249252003601734210822575384050623604210995877802462791689470160513936260977564861637138944963017661747322854944947575735058686915214155914367958821049343395872966303188913632104904114985131056248858907796803723113165860047947997190413797467387799849186843670782893248679835353939221683128656389598861121968394151242203862546515205719025938976204500629351629773017676423272396046975040207598974710677542012578136346777724242096116687436806602814524395347473138907066925711365905603451810855462865341762309413450604577145732982577638564071898142100766942547837600367196114622838654023348486577198709239184904727283277473015442219116836484472805419186051648525981367156540289791690753744829557182038748198248050063004231133274283674018264979618131391544850762584881106459697143296409172062727610337712644190766135906251745269658467728127265442604931549310282868433607223578073723664938574943063818858470347962986617996173175416156392789323368742486103573965151660111672103045349503806405128862306143552704743703235523569640463849583483475333658659938588083064414338753758227716309312975833065131971436302074256853738880404843451561875630470914591003981768674630452610696527160314174437787571328113892479205213494310959452099422568711487169623337344556041253871805720687335554827279185094590163477154285178007985941156646670231084302343408745095613306633012441029760921919043829607380696082989073919553634792325816149115887017803602404363014695723788567349827257465507204541449534741931298739363574495055355942436833302546595211630888340854480355380189670987220292487343005838032120144319541841400645135609797468362738460042315909255473308523258390638165919772648281840219394070466519822187374434790804526768261718970803250375977925473006794673771291225402597066452400833884929743777298343002388406605668388635054790621629685645294773687714802025752036868172780967919880503318878425476468332187452552533788840107726167375916356059243174924332828125040144555785945416841197266695268699755209981714522016445408989170127939001898549807644390477690375410416473343311344740695704193144080235641140169884687784117723051948873568177122792530221374020981169747695669917632590038573237512672613149525139531541517924554238409309055701101582022606183322753889808823238942717373913168067020396098022874105528250159328569182804829541136145079574675045606138366742767096050306738075507493320130437422098692726440473768994909272708334782957565130482167097920149609127448717458544275224077188243746711295148604480905395533950705754146066987811858452755934576554352933615152971543004139110321513678909196118735533910110456707776970327908962053429458880645501376664302167495932279296316301660901782569926039227304136985673907323927800090668359200883200292139780544107522728512626412147521151130078059604875768186559562559972003263964983659753452041841142064087354748827560608454931130029086219613636041007207063728499557279289350426954308775383079081030754321018958108860382616818670040173558581561094523867786925081752388060979816555355854355503131389903773846172627887571468890400898039338336260916530255435978102992961742236440837533654317992161880677246361557422770917224674026752315271346063484083096349101971257288693720587369310560320535449870821575656275678781385354808479352570999499354458433252892306085486303030468456271517835034525967988962172314132619956996988152742179106589771123788337305331209681988425144870044644699165298806976784521136082675707921962651484043898748914247143342827514101919916752686282699788085802115962634877873533641235112149811908777818083077779997711474080422503842898790258123530404232961766375003325722833080734161902247493676304769518765681943835538480024530866527092771796364031019995624564364091945344520853112046126659699588914533886660338082174966361399613847936807617715092822057883588444969777913901843314561274348552115358870228730306524613078496157849711876009222562344367374987734714909678869951772900804769563754664477351296364674944571956336807362165401106889347052678600768720652078475101186607490112815088554499045443285395713062555372273612055529024531831452062152148655336155407100865131479874482360897019235943880168299342613334039389661819931841852610852841413926249483075613867469356144456556827639309446538756160603144903227582706326287585492464200212692495529650950932881502199858142854100453347824063459405057604806415828771072882267540400643240729623491683312467947946822973479773749397106591435825786314878274015557280435534379070682939111596000285710545824668275324040883286842681562178768418950557271011333328489540338431224347904840996520618849363990622269689109590966318098225383172952454251748127915958911033107612489703638634275833226962027478323813956861294360365094427765139906360214647204044403664869456072252651260970946577055430676741282531987694987529845627119821382604505835774590287325559273702161005215261892641941886084863998347922563721094062702096467465894358942615689885469855579627420170267744796399409729855972901578457243682593746815350922904443936564796742020665288650813072408514818429352946721856349179960118463324250917258436970787008530070440892052088757492051809831969313744198640915718100711505237337618687793440106106904274057752294929226249856403060276665922810650053747354209594850455863900977546559829523372224705623235303351141565305600484176712780107961280678576468771117983622544822470211932284272925950469821077886805137929021621755515776733142511936893881315681046430710229091035020382286422995748807644287791418569467309907904120933205916670350484795165146418599729170162099783928593522928763698129019770564773772770406961616966394820706603307821858280504070407595597174262508107771431421083255280582716073568483907394618091802048018828556185158572716606085191057018839595875971615869631510606794931669831979722510613770433794743810242915833140729632691662543252973417970791470896306986209825971339053332552359101440055289759168752667652884973319901514205874291879561178858983306961352116521830174183677669954132828113156451499218953408293601870646087522994954344065195300114538190624729194586130320480868856592491641472563516075660011597863514623588663649997050875356597600909694004684628304658937707309345154975490628734518123769416018210195846952496895995121968438450531187406931738049980325421670963347298878911537401724253308578225039608797295052960012645268877491725506924298184973057661319919962009455793406465035755079654016875979692933908836284694280560245781618363138310559725422977555937747908422306343503966415557529768233898754560521510269611081214505330441191756847960067626652733695709822368836759768734410556228460060709452933928378711978868065938414115588431193406819791021691113555042511697307194378098430313039972311034594838275298315969578059313842311349104797514836431327410838367661043920692413854020788422130142237801528178330724998319588746227834909374141025429478825501231411580184435035715810697533477489779270146667441369681123769044393058165927895627097516192092285277552824406275515958365218859178845401276916770315374687691220638619098518173962379362031254866214775672632473268753776418197947559858655678170639678277380380273567678611350378076663091819089327225734964739631555937462057936846322705501530385317652938558307637731301297524765551577916604231120903211168133613598527202508788097002009763362610681436014954543858904419845179169171288265415737379901255702590326300330460499286272991990882993546958686802536959376553591797963873559759753005967149333080351857706579857971783193717911693374600679666688116954300648695169133741665706504993205167033666699926370820241508000497508044246857263131861408275758885374362125364810986245754172534391885108986564099409302491257122824179603739123021677957094098660134466023983017218260543082873828333802384289840011657937765638820660297237032786276341569704102453363853825734435021505421758495467844748391968761365262819678336561774600293375278843239953711516394612194897400412378724106021833548749062611185701870213557751066254639266526822218492731073053328876772826124623825265066299237635809530057796112208746936135886245091974202076319609550793375038515896464740474005704760932323850186861117596145838160904499633000381954085925615206521108621236035041112988027715649319576015188031588923106024629537953399309626475925716285509345816481008849780252477775259566404974000839845986919239220117728150832633609055403929611743992757581976082933836914915659806036529473820789103398058757565936822123939802209777642121001213631854525224595256235837727991673862073048115810706164475747320411717011092878138777490635175773549165257852409038953331938007949686407646455900064983174329070491236693647067828694972056208387732774336229024280443095438901923410018143307714820959541790876087469637288899372116047611434808694310226832955689982004211496276007325956823137522718070165951909903244783499941332499918197828969465747488237634122015293631938735050520506982237399227001769750048746943233786144337790276583220641145929313219191717380151156668786205218618360417802605808411332505197037407466683120013225849942775821765085936841127345727625804442156532257080274357078074606963069381444365008938050280871124776963854901820948924052783269998615323505392701515036462758590842921112169399695978712399365649924530987816722365560493553279460495537128901177596298467478134385794627679094788138177852645648643483360270720423768713369480237333627346730902569795011649782062658150833593190333899064382556255943211695353699236728400914284497639583564083421704457266194748249370127644681084827610878196318204544875567824606976022668369667135610015330979551833698762705721219874626769309995768109746847221049774522055726454208128970261885624730025907574587040085446334044904343139755143520242630061009069473923960448315582474325506928417105392343171987564759288317703625724605490190639592949519400602532643904267897919989376273344602375727237659483143978165178792399229965932799465746888176040162992503638829600706484267743241135161208037580928249557819448254341704532253451816363562603738032374720489178562452318925324070288384900703421642565406123517052645890085300066997682114983467898846030917751591913733114098578538173863704217358711938050382879734996659291628109490976414955207031157586798387557368190186297214061465433712883133439954799386626416070121499899495040223392268295889809863721517532978086192365291864849781128523996861960870794060206862190638006775528180974885078729498325691924497011764752319792779932411899101846266270083382491860534533009128837139554167256167737882850285740201348739859517960665448142932414440166906518133482007918198321943069333296828194715238589526947450922311527010091472558494498749997578319110629942793915253218296990797447656078223768701916374388598646830361974425231674629179153960261465618746474133187554466049494801328632166311647398379135605100973022642691897848731407412495590534463590963462481516547666700166016871809812722352535954684803072370952128103654602651774793004360517148341801058030105788626131139551525762824404212000784140217577567401543312157996675985196776807015688839053969399709936470567691850720757974127565428821414827141581674333302814237212738487554878355638625761336304542684164744719125987566334455889989401897446049427972258501604857149248805117001282374622415342409309668722870419716445734938360513431024344433773462652015519779970784771183071840316911665065417628283475606634221771801486368549608646281782357479652690765286001771804451828110565346071392949650558085817970042238407451876857745473617021220437027164045347354744855333541569817575489949159075622295793449377515712005290304404074825114535279469671606146057170063371986713374380145728385565002161503725729974739977115939557136788458198516873959251483519109662301221203084432728639638795529994512127549091968405639969174490533136415205559762242313464830744796362643221583783652103761471852916250028279421167856632839414230762352306554196021345446822844670954914522826155670373502282556334216968742229072111639339077867851333781674151982760821972853737388449028322863638677836434402358991713708252555452548919845846952409740336332874917415220872460152799453769781611134605790998183144599235184661109915292909425436871568562493150251420660524107465796335830772435591779047045647930844357056041860447676960843446321795055868293743079826721535436554784069020364634694785237261601162927060480414218596189470361314359687248023012476374265239966911452901662925197559164985847451952001098675979880240864669650027619723033658595822046341444181346038628883209198322283663366524699982401265574546027060354685362853931345949529073478422810428496046806442852023310763164914411304996064323249038666839396412761456965343079949163758357353051997278568404428526449705924840382454540692053670499223000335021833893070670508249238169921867529507224416990570534313137890043556735255914974690907597711638432326171524647123936109543551361432994487602738977304104194680923872686763077405951902284582547819194754960374504887940296741201060108359896501027238419789915687144314583498718244641400343262934703632529083195278606060079917481488196391181029359371433425120893406491083837380128519276143010020851193649140608371989055807688070236729986611161861067198212419344068962564435250062172443325142301807959125312393613532946693126023359304723730344729023002752326921166794050209589587446175004675687654678333610082516807509864253802146004904479870717921199427629863240085365077494091639084482185495017884594647908303890414516323339714999964346675552107201997570374337903516523344069196049910141291648076590804112962849121807880142796291236460356605327539418553585685473575551633272409635530700198460949131758742523847416918720876605730377425808131267584600399820202133711449226929818801954401015646424380988374180035991673776458508517173763616157265240348464804272416649697222936091963983770849759742908740900145651319784500690472721931095051774953036850337764763448385534730289644507231225855469663388081919881214288113833523347968937880107874357065107126008130807081996001811352805845695719990692488970690049563929136267139962998940322107897360399978114776216946294490264229506633721516561979984612019167584161369194063201394966857500328102653236386138525689977129910604653482982439099864063880824009950692295747051400508513083752958349628357418521687970421479736915542929357119774022955788014307978424924663204162331724715237412315817082014518114664710390172481884768458406110977667457280981518972260156731644722018022230168991118601931943341971664486901954201336616073061346109369921765593959544566808209257419959137095043848392521006218559645512080419645694278214834942724423198018933269439515202864021191702901162513126056007587204944872557010303766725367819574328902245953076769253529724535862617831975064307510179103020530113155031624204840652711963574635170697638775792430150590643371554812752543232399196279469008130296038898100879264788729793493897206780937435656329864352754884681094227092299142941593361758775113330587661780882324908320014206188014433335686898798637420868089335379662180017225066468020239237238578905452151274526435830392403949714018980595491453247985072638188027914457326950548649458302260105840431494785869903627672934765071435991886030837428484324247193200798305396065662581544060765269468471842076333638847084863032205410299945858533832553617645006315813398542170627659443049934186937026061527258173570422042204043888844961407974486357487777367899266174452929510006688464636516147872427231653497771672314166585426364686566081127716957317445410903127482655052235666789636726776461474914869660979684884144579987789111521618410830258189097062137471841248227189299845285156305186494808018265538754923909773284601020191089146744924236570362387676044254979931252891804681518576198851966834095101658821048046577658910426391107974155199860607645257788082060079014731558220854961619284993907699310197146869123233023883438094290033483801864964311556352951225503101697522045319328074547698730918958559533485925866119964600344417879977856692418553543193516695486589171425493241763369663778572338666445805532034513095206565559002948432572219303254049278723032786540359946468301493341032403147226611653756389309792449304317086892615268631270731100038363773141536723464831296489854077886149693498098508564553531744516449600545872747118805219155425539075844097016405430641348866575428371708975535604531562822529848311211590844043853261216382774547019149712600511497349969898573327885101113506249051368234149166594787719203186531019394303193443521288705964910292097973199357119584588148577388990547645813975775001479567692127219695535786722391817597976465125281660440556808799429854747218815178219685528141510709165432176982380133591344041803534204524539701877471202921248340268784390386131396308403807780931002628402485167329878766810984685150513262918649161712293566079825405753335795055506419605866225068970761561567080721392030358925683412484145186061700161537629990381131097018034069625525200068274005864827829635386761334297476155895659382530785282753652016121680682558885400409147684007529652317372083779669262594100305481459960934250145958024289736448837916910726526573067253535941964640989897767146230717608915435750630926573497568641986423635978633416996660272371025436363724720081750026513471852548994226459852393693499952980987337663734479818600073774512016376571081608403949483363183580058184483624158965474800929442087318964336721293617454480363349124116371265011053957791677502681453865002648972040812191439294113299663284926429484207881744642028764042134587023289982340421707390545769538557552355530281798079198177506536912477230335768697675153329818384511828074358266355971672247222969418965124686211360071627042164049602843477322685239092959439087110088456996123002562336897096542802666129109423257513454119969498988660309691500214317129762358263944248810077148544327900895712724614805116499151305501089007939621818047075760543971772337065131719869688603887448990230541501597689467273865515359340380996262930639965774752668212879951997665861395576022173773163808519734851696441152669431221355150728373956765256903074239692994234238273207275064171964768532635849062947288494213131197895428587883088240816422773739988864036668253496460093276994376417712672883588582357812470505669875774104449571018390017994852393667339825354281300289942280387195503236803983232088369514098585633740933099977479264958138509295845348746517019872087150992072836570481519506412506915506223827317203897618247634296202689378345740991801994890232969768482395978065101834889413451132382302659143043935663257845955915502897430674330032197937098303189656230663452715470365888783184668988515501316121352500780893434354375050233288078988940322255141062665139594165582796794700843348016694655770952362526243467968501789739839958983984970705661280144184129063575678022029361383044116405938927271340555417618219066854287540626880759946623415878369051350579306826299732987264367650768704208000865358125434824875486148437534085060561610272269360223278587304026281553830045602196033178683042693671903362095342398914184311386109618215854150783516214177191717955923567663900065847343440992964869865279116285076994620867578241502873866205017391266618271707183983393012840674464135092389712842100105288800462614089425435140004593360776578477552513750884803423821449749333810667160136944629476804171326897696919645104833866494972968705964039312098232897456787422101674042427113263199313242103432485762589815101207817242499142592586494419181421760266315722682652454327583457304552194043867009137473282946884571710161021309186759794354270586841954723001930329248526257202569482748204861745819100580860508836750329533351603248941461960430284579411134838707649228605259483261065473022136230594323911392297128194590476395409489341671459392994093579171295496071042958443097835473409968123364818085161536306481198486668732340591387757757983391505074967876754421697946666037943829619996011096665620060360431356084103592844223187517397744145408793668076762794629342238762360688690665625864046465105682527521493445210891623018922633644175592311533317131860387450677787237848578303043477181052951493374452289849504169515251577593647700521816189625600729937007491958937980815188398380769533668202668613654893841815814634972690179495564759570220618049866721887032068312318108903062380042832347925477978368189236802160587087149440168579572504516316265542380160047585993248395539678353734068177222095035180244646840418184594993096876375720654627816542740963940375101181071652655374710156324403041879645889401694487896269239236293858569131018645219703951833699564264608776240328787085969582998230691137749636921337033820771803293656865382965520817819899179396361803801472774139771377221213410946027680575796576152136174580067824512841086529676486437302917586242189574518564850920566372367802910181582208420360002787417315735370446828318880739990773120692868648954096930508334481182807103248160465225079114129624289078136582113815379404366108792026654838513113287325322664265212069948286798396962399809220116471814215961280771853442622548919181504658118348077894534069241823653025263749433381417399694156781835186160240468329992480568814317463363955684806833341084431579341144430694725314361930041300201967313935721913556185824281769261392948368692549640067643023210768849890816369899114625688120040106192859034685843738627292809573971019815731963892871991494940226936786545248130841395291767261434993968407497002826507344216508647551022560514327819217180078848692773957305358442511959667242215528391826407238252421055465230693624676955744800162009456221971428456984078828114800009658465335244054608730569759423731934590719188247649365727261622522476349517462137835531030018841508951827004686743855334555027780348624362824330547118104018006478711301857868433459658094705170997576090972754866940038931452705796221880086217394448724652208749389324333276701556850120584438756514129264661226892208548265262964745763892806026197466011289024224224199705350433666255949036655002640462607890773951651798310276113123595749246930182381180297318156893996941414424863795420895646152928872812181549073888528767317625385410811461972917265834349343115414798021358643142938703422893364655156374735418399732551217035624303799688489911882489473499817300588789600422253500411072599930467169925019485342988266482915379961261838438426164210109137071416737133662394234985579469114920818927339645445409806764754392716114563475941417678407222417896334356552011762560720934646259452532040196791120910386669326341871729240407330440238472299726409835519468431153556957993020992168045320351228968648756049568818796828216639611764672309008063601542104369412206801861813754432435544414852103913451194583026372848844844386848114314295040037005317528528681565717642736993095035889901425823490227404227429411254989124767115604380570973841714635578280479964536714437247573784449123882345551792661076302003181420631224699527088804655524952475568043362171263503439902039977984572757592590300892175607073826465429314162227220924301102638091170278257963905357973939615624878479514094300711905904671630691653106727702461657489432321304899496143754920051150010901499697898646849857216365668771860259827823616746178584254137497612629640537758720383914166197730590412965826054318248786907863323544752119346026950486738362295304386880040049969255425998869177958012846372242395093430491779106755068910534905584592386785645659188335738149801846734905288630368516554987705164577215533970829064985944715781101141003328792503991456906793739522063259621440655278440279498831545123810214595751381276313521566298363609608850556588319120795438878646920159269382022641779592525056288769024118049974619405154355652428919162403553196021019689324326846296898468001568413444047985392101691587636899284043142582291933980151468552890544797559060241956105951852838408315765972646627126856609419124196152761683816873049118357269246230079251569697498437827328087562317875395966362906530244699198183008519982743402212775537437012449447200060502161636117050125746652279660899610791521425907264453609660165816187224516441760218283666892342881682673713765488275207255375520351418164175346660037462128581891105037061915405686116278772313227052631909828046144505402440298721675166383900524581550434582446299348384010781416675927261494026492891716271539320975831773553319546395962864029850687575747635799502819334999636215724917116697132556702568834452002504000962387692498802507122136743428091314270915441045127358633143433859411996399189157411296496778699112224566897627774585301602739737330121509108588038044599484519103791222266594748190396422282530852990566753093241983059101645750576683236544521597863966123373623810693598103542814152306453779464423924167745334707753570527859654090545770150457689466596809846863845781412171763092013659950367699278941170034686462757084850920714193900335570333883931718214092754069447180499914834986884400943942158681088533674026818184243182524466189089649436864719563083431539633791411038035124518784528050317640301425428698102536115148591082288956541543130725534026702660213734049411721518822645913187822704893209202457772837131883630734098079834853088477183564873295461883440915761983699541277202618876014696040558194692302938101560008196511015940075480549072507802410800213207542608874873640876280420871194046030458599077188745561082515181109497625572021413481136213663221067242300469784142128204927393796152304164785532586065260662288305912154498147916074018135552238553571777685367434915684135878117777265525223878426610718814779658908084894111290250882803906406829854489019314278370161286054114800452664840740677927569670336060449394037009644708189986323501589140774922249579073705598595785578235558644621376172679389047746504356880735863086829992829298733846720052648214383728135568395627520724372749700513877451433144330501649947938724554452935612485747423814063674336123425493659141877476360580015264599997926368443972180518313349001613777962059022460973080114212514961597885202623296944851864180356968513009985819015575374091979628496594675699826790409783259472023463729598259515152103481368474365510577928649817056132771724038594229795786168512833593364325698010409873835978512216472887297668243069482319469567847488874136316496335866503566789073086962881903742266963870454916686380967198715243146626456529518487940985333924702234491035402816052650234678544905137371507694644987392790849677988956496310837596221384538520468254527986476199580119684172054533359052989100164237902330936156714118965238834578147192665910386171150617791871753754304611292671431491413266777994234725146104800391549664752743088588729183190362403986650684822640455838051345014715928729439149917991489895796991959664443022079111712138034632620391461770023836919671938842325777100674451864629381107490457849310560550186645605277243164009163215909847470480665952046539016000408036816759177440506728956312383453905744095154865416822901246577834968432614674500091124431953861434214531795748832157768788973393598367392042641478174549186568452065115104592785424151433977476738420712387880651710193860093454802659674492010057793850318790550640258405578300145151651331189219820911694577907030790661247200870925116926223860352975643855659401266208781287463260226937592191908364261093027531870557294585796759938731926657916225170595171636125539423813440906313567693195920777861288938445408366779301965772039183263692011804328947013167850656475162927669110335442927081846969527524055954569076122318892799346452371435580307473547610120836439722488199577206816518427269229251498501343258349977972538768609111189187430641716729369300561251736675769056544871265921239749944533039288069711129583222783820118262736624103851541786202201946439575810582682294995163278682372687981816159459400000081762257140065575998950119844002889928275112332320223725948775164866053666653182433127211536288297262609576783005748130020678334141260089918324287828518523720160595867752935444873840358448748174031833378047815539204294945512913189955615894505188878476047338910307597406534475513469940912413393414580256315356275748871326166244647764378264072705429090888513153565224860331360124223271142032616390023731756214893907394632595363100704316142498510442270445411651501829575085983934949344981491971657592341206699159668230369511462377367864642818417918445792196348043011259300776704205078350899690176225170068232987900949253805469069028322441370532819959814861510100791748786759118772822263827583222102067041016083515268149265700960230824127842735678450587378257494200667632560183517026036417576866077441236489649805704505972327316481311983691393483872537375906398937295445474364558221868980925885477277719458825346251283114479250962949366457764011773614392104996407557505919378350291504626758798539900632127777046911162998136214691352188322693582672590233203116001753175108184638130858349390942607297660860735664841041316224742669621518759855816265449156504160753482496443655206818781653071757641753527940584683225605930481846338854327418070835747051778428386451557374137463571405850446015497394600084044238663735306574708446411692608839226890288867768289881713820744482070616980516777171247006224819065294454836733622990490993128220756414827690185424246515557486017409289416961913463587177088403700822712019486067634463747590615409351233209452159820498086215564295128009856243283307894959469889340454306569418719071450542832764949614292944379488087093688816753460861435896130354197009822636148125033061040288621333473938918304421407337975990003199843250773571166015939265475020721657694517570012494125562106731470023426664021891688093950910500654008647322135535963243280410346996689028533081057662172200748325896672969579545838948365844454870720607041579820874891139563032455758085165100947536736687221442713866523303228883726542710506812561960733744759966845129361540451619252338973275039006333751649998339021250051392581747818767450070186376501555479598603424682993436277788842796821452164422195326525518869972439775103609213447082625798071060364875352785352763268874515712820360883705297208879069003277715163225191140054750095112731263022159846404504668178090615510355037529334785156621034698561283897253641782941158175822222204315851433241946628859106486034403271576685023260825715850121233395393024973105813519268270058767224175995520517546833884779827144907049610122694356895581911144481051778235291509087622513946694997436199838394737097918333003144380078342826263720623337556025418159778701315332128208288188431253978908817087331179729342209357950090825743207006633089878772698364407192256408713359629116588451664540704894600048459266391301931815324121207954332402114459634610748302845133869301773263361697303511904124759616974403104164603973826060783484201643923300583205038963459583827544260524265689127579174416549137114288451136307894649608892930762183625101274185789277631298983651585320948866127979971451283848498529148884498168096730243439599994592602498777440290480145531667111336533086613641469370064701780579494468404818445447214746937434943029529582640111150082303875978824160651540534088511561718767576520350675105391367440875347650516200815556304078598336708190678543054621515142424923535200033965048341185647394040603505449805716110243442727589931980813994367114245177970227169147542862099892567732397109304985322010643219876490608855628076368935668697760057050158607564232489371960041554419279863088516302750285252670373174904835451273688008776267610841261650950931788241437168450641867711723718689475085343630040906174580646519524752701551608372746373665070006412940673084367492260830219086741638329297932259998801385701926548148128442890114177135560354556427294853050067718191922051056586459108956513116361882502619079977610497935772450508455834458727561009998673148503930116864221827376463361828077978944774769143313125373598285005419559620749105284972417197300652772559745576572479278545499164468098074389192647983690136026186659348755080635593579875991915827224224849200886883327052804642567795781434862375276788609243811583343635017389136500164650332854442384809935403114965507870986315814660461144550866068624995075477896558659005213881599731683168234883788989378030434749207902785605866955096247908122237789287889822364422875357280278866453673892424296063705255736567824912327959563390681688896679345841377841148720924663467013813387710133554149584571841873800118546084913990729237425062080443114338737639349197452674053662358676101832868672387510844940774800775741216629975237228421048983617802408101259307208961610090557474858632388983184452555422035964431735752306634422342145682924007847125455497863841911100766564291662020877966691532738267690644355105424219464760032377113015756877200075047537308407323426850527512691626152634962043033609135447771218791034565884889529280418011919666683609446251214393167885347731467487724988018470649862246816088122865461686825205584218370230407136541468096748570782399087504913021241923457239453374669432778475713176275531580707276043068896320123626011117833754635852048453863391041582404323784691145217533258959473108419932279374381674511472731579215292711752703121279387885330444032568898699931436245847599983571001774693718063212261100489023081598387783082914180904337407774011888480718848449263837705474211395262767588200662704642197760639857345196220271381858273889353778494183571883449552897967730216989595795663514557653442391076688439513574211601045095616163292328115577878803793262377485779695415746356585307920962517735523683112870889709733153929268589844571876891494261350768349874908828639944550978194912977484366854514086414757991950304425609452980145309422556984473735997609154981429662205893207485692100515300079392097215043215186754770411236667394811240442601913259393750690744526856913322285595879284422671176967853821828603561101728250944234430095559097291173322687023975013801692310841783504532929918249315560057083573726794741921428432304278742144309793294510809284844146107869936619069426471539898061260990092254183767510486745276388652733933728754476884117518105064027128210817906118350031398034159056257195220618783132577694770244635698045709543903534899124975588292783698195635733528290664392408797405445549406054459917480408818321087735859942664181634881449841570669248907334008131815733631381047831097002000509110482265178107575186948010650762451465835233629823002671203760092347027069840311866697937037139350900421847175825990514393359142823935468158370981554151035950148628031746340388816029180063370579049666904634191402920862881863716683994861481184094190126142355768146099895540415060155916987032888891969753168179552340521547181314665563043714740056789482675720812668740583365186033928725253049521759279484069520261195996586263693682700401333551169074561140721570931570224865965471070205932219168387172811911038295138364039446219000163055698153389431415274297880435768465705825589258363568277237350301863474772151557103243269592690222777401882362154765388302704468498715159398937319979857541021405963466670553323842455519114404412769996870344925695103130696471181495806783225567123298141956105454883991232709603462243576201032600227593229825637905753299772328601912482546859002818138161118859789314611872764845493171819935461978983696909261456843605451936991549034394134891370692648485444118806740096946134555330503134479722584162315222321224974915004376955794299127003693735379352248061845773530225841141845682154540956804097133769572753720805165017390577496852814370001204932434379444160777516845268919296623283322438423438795904258202044804492131961461739632134211782851170243320538964242464724665513381952779977596503955101410918655896818332250643924855926759394426727747874339463764816058523023461026122744011683093645143326895086715073153132013079034509194496028026182438303637137438603000908590115355457944096994555179981559924376375326938810770573942212137747705219157639800282365793350154368059073457365800696256814544524071802120130839088316474226831548020572841231109136078283851621902374742058734527133210301100354350641958154093796248907116324186510386176783957031325439811461063104282408175927225736786739934913625624244616614189566281179982374955065902538004386026914758340433494163180829555412846491264515146808769853058370527304177865494236392671883378640984284984451421446249178168881734839978339026242573299152048843936228149129856457857769237613753094517812248080318943638076692285527920515618648410886406650484156356172903406370862460214222282573134921955263868481607440670962594509998933318798580300889059062766399740208931075881362790479774643266207260926127215302946738383151144374815962839450112982421437416650607115134832286685854694566139853412911520128054385654606289581726664864379208135299560863422145890980863690082601316515220253234829604435443900728179770687424535069603898098485827184256650457813262864825724283372876280693587557876656594993256873682491065057819574401358072969959076865569077730707604422606494128592129307147082173913512698689748771432534655534722691534605717878661920865599142374985218739194447897210480510585588726062730745782918264517389168913301909653335878657631574822187056073123141919940936569058738372211197569301623707419700777045919997133118411858172041110058742571475401388291380262054122774224960796685555384589868976405552057810172283411795300374581938729853768791434073505668915361885666969442669558234877883913194964724404398349982150390558579330249004277455752854202148312380959953650500887193891590499757944352624312362169983482616281516942901692077020913046955172960600147802564309888539556668925384558003951904010858158030846224385149755542964540753356749568914580829980233501582806312994863932508326925647951023914909868723139482553110606069909568462311747038244019534249326908613570212208987277789332201391119281820721126740997694123481703821425460459295119993151852047029195710324051363891341852140162570639559840660028311014631918416487882633903998182057744881734954607868851642262564912160159172018356075120571694876048185219086631353467630804736503806403429896864176287907572474595666480825552776458115655296765848740216390367975706551085871671274527967288446008486715125908424176054102767740539386267253050780149027933658503956730043539516085637513858444200675664195952918447283352542934021569576034579474543887290490722743213664722201599378984977174155020996419312880059794681669788788029633374751562979470992898129111157536159774142203688374146341278222718025497274421723174130103268778550305145274866475988861162221109931457207403134164250800905765873271372732904867307226808771066770520548623862636107806360985559311926220293783035356620915574346718387035687259756884569450659482749557686411448662074597035233582505112329773300680258804063853379005020495230483685650287412328766601737712718913708089944796866456302955281131553281361474489118663205073715809193834982356878507398077036566259866232394022681753412167320511390630509318145295112132298095666542463775535891064686948769315813402339541411610177166421885738488857929585248374719200989070971095556765142290894867402228367574631459208153393473892468779224672178869910692079989701165605398137946620544856451412934985196383749290098669439474147566202016525519467859148252257084092180865394212021423462599164586477311342990168002621929867873740468147982722949315821697768677122621984514181048396406770849951538376910602232930847417437330544822301201860907560750416374982629952956663992208147153751031707019056890030171600461524857229304629775956208312021161413120211291404138304227623461669132894319959766560822299891203328425910107127655002190913747086248550582822568737669151296246531237240183445227295263098779305396402523434822605508915032125199739416776759241473330661403103737446100229031995243912781551675808721976475986201620339889988485011548035045391205925222022813369841206897599740459040153851791664682298507263107277479807234808282828200238763580816255576348294616758975507829385711779470130620091421999042317059447600010210206588910628587932592486757016877496357548856560080820338555026320081169310506979422640491432963798950788461568909823797336232060513125033322906464574651780388385959086420900031479872635273712415627669991942780853326436669295379640143396395342800832562503049403677987267494340087163126697092273769341920052284038692211932994001045541716279023493758198224652464667453186982563967557075567560501541540496081571237347643857684142657357733601689800612801886593652673681697016154131672368737581811770256019955096095503470008493447666689671834078015925974398337411384610733070554385715002841557596492740013130625727964680232990119697714459754801706211909873491423359350753329207858315118820529019637474178497466702149390867683601268666284275759610472090429163465017092193055735298663904094201389246193788183089237101324158377535916520119716417405596364462155472929576368829014425499659686833964901869110072900665636828996032242641891566618471646549005871982890202445883874843891286353984160605439755316640562958692766868766720676887779664965543347797469831206918402693001468420133267915424031175707944064047288067752740212368029633282558599567581416164717406499250845481866630435554186262088721088292805199687581646518221588634658582930587631201409709501937495505132027166063425884791109667504201724346013107559651035162105088156111192353258903274832738346812313467561281581188828502831799850491564796765571139982435717212838435529173032115710339372558858779845851680198439097957662269003694248192550592260135781719023367897785046387898892308428251059394173528901139162360851092300545933743766523667752488178536063931766192776905354727914522593327612732125716617525010918126336028069693675755183061516849233729438569525421215213687146464803962194448469915855014492037064134461820296747389186341344456357374609597073403165188285769043438212768077580452728604451041500777651863081798542477171993269238559039549995101512711163982591748315597189655483409907861705242592375485976398037864316809029122021077696209105901445743334424107236653196369345255656100182238773313789418923803217335535900439555582288037682066251348759870582161208801659107896479616710007701301384916856603084482904621757555374618346249316016754242374317325687582727515121466781565193832410743824217354820719322303525337935933297588539037402494304841949261268841992387098644972101551543668999113144204001452433809364317109317869521717457736095662241397145775941044181023669995358008341328618434282944491041162125369562670153382836360664975441891872492279427692335377635113261857967707232956113362782017915765998757585306653116621124027600976658687218472031785894004475357173311784678384071203118653434622695648896085595491208994065205579956106271364198665585904497358518710497902358639908006529399299507651674563848524286187483827478060419778020171639483287802499180495954439022883034765420219917292288439833020643591058489508168640867512216010062310362627144743735995457742351139527232657570918091471557889235945113376677247995659765090376001753797606035209487945887227594448248288549623454892124173360607787065631380510488848363730970797636287670996731161783648804682467610707828731953708463052222144746774226249004295447041301292847417545436631386346949984184140289364833779897995971394692037443436055007482400774873847043298906381923143245200143938837482813646651069188492926627705008312939222508446415529576428173919803855198094804545155719867846743314912206500172100889976575215860040461054997982762547201531936605955894864238668193014022762749779611709037967984796584241999643042878921835450661370523072567424184558650271957103970728388241471203016964498313756885049923426030884421347936454567552826886087431532221861828951826417202472869852526852120800037034365734527590111465561730954496745018637485716865777280994468781128497937257262624979117122213550198775969172371620810158821299950619947715036648706067021465314608414333614597431015365150462927734239792493359108126298145803701672926709365349125390433121260003741038030635805327821969529430620824062149440747291086078416141270536195652393075179809999334420803362176750394160811803623441827814584884546771504704803520040897853058933113714598031601020458564229912750520063959300584667336044791284778065264295509517561055825826508185286859379482757782262709254987758462531522958881109293298295365740700128141740834065777882010391464876104702916316181985328608493870119324037872343783266515376087719517260815157470934491395242439545586977617882868243350160744656334898998649429329832634525246265386292621704385105720414015946605377741005482392371951854318329861446398828698753230263199128841334055564206852925645982265343992094985271221558711870669848294775317703372864010960838943458665526790550061823845085333865072092475369914492860690500565836066350423083756232970424765867205830050881676440073663095253872601638619817678123721557820259839894119174351881365197123974821698041045417508727816362539638436476353882516631447535464016585384035919353080763551085502297453354471732468837095766331122800180700860332309106007022412084316782202023310519969055575571707600918818132706399426550533485731953466241991963351577333952385591813858868446898273919926956993526515371134595486318824180388835723951855572790839164258627147885026409195965379146130878430934646223699993724459880524584244125727306705220207995630219480651647170524024641898865578192055529942798140818309995091372501341990170113514126850773115705555377605506403058622663736467401843861169880509139512793059701999318013730311214320839053636153821508184268379186579735871074073737988804340742348033461691964695775899913502914541143587303746606066915865336542559291592917516371017935002193632150348445144925970384505750953298070598397267109226844977153324740418225009160966217895789517297009625165742705597888109326710777624887185643209825859916371728579739497910450673229986896721612376622686158753863872732052723563829970635541554135921039246629702212180576443250098965756413898049233697850237066933161160479757504044978894431602253015027126668788123058420745225291050113529758281856846181686792780024676931696032348782799552541582063673614683285768206709011439036518471386360984907433519989245840865046901684411902841536054346094316549548244616820952966484469376117798395406991517584529520107920709403663239916645103799661118954887305018619472204738505106872710782970181712018085657081092909557834570025794502044046159895722058796048052971055721216838922261313769622398202650599025388055062691215975774734529175693970801684688678091361104707014450193520360696690338239461693985148724821029006565312381779361015576200314495702178701078121823666374955003576372457312702746864828638868931225261078937598348517635247764354678974615116164433817643474932463030385600571469859357209288219636546356457597032889308829814525385827122132908387373268452836717402074004458921593442670347219954086468547952489821722278139635923255739099253309443326446059723428390449617728802349740435385708065617687175065912839432608890952247552218350279179336406461457901489172717816075993936161076863426169903957729730085662082440328112274737221683037615101532446628196007898824089065488426877958680053263251006128579668968278957139818555846392849178190363154423366967884642406953358842574394652931842780329596087677487754121728188865177629223946796652775538163347364050872251800282330155550762082998950064575938388083448522194868110583638621507280173251442911517747982886394459484802825570388223404376671746840368188532646169098888355976088903291043821857865727153284661757681944548729527282589935319066945919603827423929349118513004503644882778594712643471805531352195596364522467846194786290280611146563386593501023825009532028400888018035814340755816213223869984259066365234918954418142413711506828602956177920217786288801107627421003561063008531885561426999401897777353879727976847443343616991261258750054061989418684450601437354296319443294043573987102444839929090010651316065701570621981497701045140193901472949499586656552212443117159663958963568344918505602153740605240996349257170541108265280444446921316630700573143919616955322759835077761820403139205850770646079801360294374578005817246010090050211244877216144787068572634835934579879907292063557685295980392285475230491650909145420130928713745409651973014277382960429845930037925701431973420667589650501128923462884674470199739056217652699073446979113048762221408116597658900702565142707283501573778289071550680177304726894475958425224467890525130494461648456950818622215509459221409204907642962004770693368935322017790416542841229739063464040977170056928914227248944406869637374864648858490107750281136117514444008477762896075406020123162628879282373144561547019668159379924740973324483809956120914179845758241933985726625803490356196770970110817005544885877881689142175614611857877713776091111034439225362701601645660804006532232600408720837099137150573397937648135275706295359021944214183250166836732097400565957307461986653953270482245730798438733945888904715435568541435435456822505745924237043463265017224298905005286109727410427292695639402957287209344907883262772432025656082432366313474499082481948807276527778788112739125519439605360685777249742526721484595145004527653191953028730731344675711869862469432864407297726816587315287485126261970407310991847455350119939004209904865479247659609765100788287858491504206804352463561576172972208228018853354599509283362524344354822610161029183310264181241640006363468065817888575669597484283955062240063759244065612767564342060062706632287042187538565974383341960907063730431277744430427143291050111877041187105585090682054812177151679358415780088921247210443191059347770960030318864485774539772110483898639176738024094227742452998898090051261481403886718212969698207646777962971363892167275445568173788446693113397184005030644675303718541785503337287993162348552093939282351172136987921810551569544654435357609064692244375126120154334038806628497931511958127581222636596412715037760906332797759245647949195637734525883199988592866450927177789593420227563127483208939109617293526165965600839391805716215437241786108692362124590870040283546336101828487871568615934931306587629189183245527249855528292957456512076925065904437856624067543937863548614482890109589656341762291908989168894860070109396164980946072078611044556226874043711572555978320374937803753860328994628034944119634814476731652099140011950073268628114848043260259540852805331305903196710595503304126725769882363940398924391928379824804335498433673294794155499915012489767118535678552914831008071940800200972008362023015912478177869473578890410327247327242996354026936864963693000557155565589342079458994896164299314092183960626736406366143427203119883205624534152755130488261193312944456934630900264257881837078699061323825762739976589451547078521015416196044121083277081606054040418056432082753434489563386580901130976336587075547175153571766334081523133660291958203878181202605831721527201146865505393871673751764296254863505761822675792702075368874299367798767770843922430489253382270663404935934899073687214635893755928805438794189915740744453789746242500166126575059587370195248570764364137020044377270641606477997842605120928046988289862306703314965285407560991964164897848419398379750911002884861442000252582887890684016142377764282306756983902236432849268976979573213666042168883379083308556751609493701250105062908493350843026338635039037589800522206657610207636917519685251550107351500559756435560831976342864499416957369983172902167898651489654296293517163336617146042633451169336113604678203441519112443387596683269953237737780086555889159075376599779332677963036798975406903218416552194720291796599591000338711336158440568855171378400269134117418203478722170757273720249640597070989275673405041107037182761887176669138018527114189664026013863008891467035104076411185439037243768174184633913491406375236050694835973565787658979803005930534800246746051049740925497073504023227223883847353985182631647707358156594383082342127638864391713544689191196832419171587125431268133502529367425496441756645901705875178393843990090515489512260910216148276804616632902117408582820045121411662141565169733641937760354263994632036108264299895723750880430625831239425532722999887095827091514522118955189318518696999539888020297371538061048052085051926296856185586078963020937502301870574098221498091200352898266744696804781172202984943343651673080519108345626675548407737284439209667260777993306797282496599169388685945675512442066120231946370240824767240050882952874995096302054949858644722073691841495089090340216011379103715979345489094249577019654654538704656205547042035966850438473730276844109515809175946194690464413187800817580452202010405855539564797174305230493197987500449901754203051608750397382915648938110952965974735128833974540827711509227455592110271690223563715680767944436350672277416370180431201653434555516481399319079037252061498138417140076125721917327609770320910856738002288330118375342075305356718088220257557316191125217454612127715181259440084673816470454606613326819817024475060839356950740094283377498314665773751397092795200740966930433553421110424994237592578864282449712379194663255090752897639776366159770891367354285451450758186063702738025924818098653964671137927600890765638653220260533683699066217504841763076086834597704846108038013013371133702602238350259217531336907196924571747603984810833838485091525031092656426455686971622198821389680287413245073963588770734802116189781078173518582131489549194447065099011950417742746521129126937346321181111032164174536638474893041044535897702938048393831060860040644819263897875172362337615061572448355550143376986557035615606183594652584848740207909357346706369678992187762764769712306016191770287137048414349823480315309853764601781927311993018808539681393009684147409480702760690445615398847457897053398302558487316081112771980433396861415295742946281825384148075193817699871784642045285000576337212121201748694776254327885837337526717928105331326088695258909744437293227589328825863008410110905209302408159644410522590603864116683243517297439882197873616858666327785411640603976524908880160346268079204500819724153892994499666306982654894353010035495400043084308895298076892025946747211878929989519844636168865204911977612654458550727506197627163895950058126037251336106396590591007806169968791313617095544901831827514914603619663095568117444293791728368105743415186731123508839503768381128841446689908371400631839509145672843769558158393560463558831126832159891716408386056993018915972538883518272951196495282444965197200773071640584500542254124067521048039965414291147435806156402601254860197592596836726651979587284246343466325297321648098368276593845532098525641213719981218365397510760561817423741704384858816247028442747974122179669078468997839956017087083553640837966717307900844947807390496992957625510294442571750445521406800510765107518193199629153345845237070848446519401046243765350214079076845987780970343268289924167696150420050508227478803359558034975255757855853494671004700337141001028531886657312398916195155312960152361993450360224636081326112391269158001696972991400611096397199000316659462954838621853038151549165589131922159349647273048915823154764346131460232183168737431639820546203347000291147746756746292971159009844968663856200457578547878328903229519976557073100470794745506495613068791238743367235326355827934337016044233862701078033267091995933249380312306587179206472415087497759320464983718981282939972680659632613911563366925919502499670430575588883536356010690576518079485465957636654545315171419509456460881103873970907145117626232660234400883273699306338191601829174808965552406554928516654245546132615845196551292009814040942972243913813037679582456163529663819273718089709350272876008505352448211495819533552233566898215880545566708730625605939443554100819927480914816141160043509803117346426721589744712295587159223952134671210075915746445558107041502908546838676106020729913410597075639310202123239526999832623352085755849938174272055757495112402136752820644833087593931400568757996062444047714444464520669804511875669639948687146574191590539609791560149017354010851927959388028016765085634596438267800356289361181993501990728197259407436343235548660434461431520989694509679567883368179783177627601279497952055099439141273290648810596466071701630499923166788395569317049327347105693812897770610416933953912096052918342630984774831924633046334239517880437828607777693062599219581179819141525349741783550238585126783578487055806773643526284445044621500989671914443792498503523997214528169200264105664727846372084567641859158599104581680229370409253742970207251805160553629285561136096219824838738294527926120420608327509172660196129612110487219022312694605500956578820233598378565050189613467200648566502962654017377308939386028871380019318533466053616575213967151783835041930429327438212148939058462657687182800942959706571887767176446038864861049704002262111843201927471211505466736747319498791940687303764958199789760106833314231406666244775745302501523886503076527752519461757182696925451549854750315731945559357090531337062215637271201488539581384562487532574085750805256379132666088653346184503991075554425204188811569947608332249623142354634207269749717191363769677365791362167922702062072988166316841180561556672982822388096026150301028835701568474840577666668762973862472327942388700241020924158883789166170133828646132868575415937387994397562657842912817517276558173282813657532039360190485118969126839295181667647062409163415085860855515667903707637062239951644073795393911577523300089233508422785963537409963012455514522993863567360531296976439824831720198278190978036348411220153032488262817197001620171239443121202591474781435206483225843760940364456105292715462815306888389665297199396776111856957784473215867773373253782344282996122670925280834494657317181671982967118640749174129061568605064773606110920950834344175793729001390630341170160036786409184591333349514770463418540042894777705002718424526915499077466337257185316704576590149445267372318855670468549690379144824971384716111554721204711253298656837679464028554567726916243178622512376307321173603628406813132043417450064984352736928459643248167638078040270496175507313652448861542440968363988364694910805776458587748702559113725098886436158239106168945183010511527170377581135576216236536607212371949425993700553536760292759605796002812655352958494574273165324035788978990664678097096660627188253073053108175004037638224491702457426765610722232344944313761843916129795178231246862587923674721187187356251277641696051384885270818434282599918091108829386073832661465766924528251446132120072647164133523601475358963857108346267623229934327067210800506908608561933997434938958321902722117235628527265753831572577561832992250404128759037314911172731318513194773760405422739981580518316472483804452127632821349880157862789300178228578247641103347234005728888323914856106941396736271063699135599465720122397205302899437375006681090281022859333641022032874359617332746154739995482539141922046513002337275177466501600099006443997712271527329229254763933729225213715626352865415621631830360977609257997889269903040781328039146365910824025128975191205158789675119781430150461646663402373169429007098883839634198015242576211186086394489867439644768951618445043168208575371162173676913495012133346712209304616974731441264958792034264581959238580076308377861601978281069667125410306717378960948663919730204352586058870807291227630688684642238933724236651767118999914580136773388965038889277821992579923605793113712465895883546158895684709287952954550457304948782670346387165890868883870374722204857177001191246216020688588814452539709503052989784542727583698357418368882495595231914483078465588440632727597768048060402276831361473096210877002862558323440825688332674683560978474275461920468256510209192714278542717680466837948884934719308419490962402313682461771793005855457609097402800621042457105664200534743854327622681477341732038807301682476621646181999172943076288084724645762127220000241350094606034504114937475605146752657028584272874098070740923935416025813598358463716275151717972206411930813240228997713697614240866007634002792886605132743586482148229822619997748633625250452741868270908741897501648316562347428685614104511416685925318517858124638307002386824819028548694777922819123016869956648081484018118498731588187450572336775799346614777553168649739380068290593887257189668500263114941587809298242423594261186190760290220855014758957174135021696279047522835915356173386779048490485312259311150432906663958714082549982561178245452608428806035606155358533615024087666893191735252061360872508346658965175371278783886154600477493726192294173251873052113034067411969795645582792184657877739279828692661720442851404591286954054624159771952238620472344035099930379639027595800424373264607763773199693816924497979887195863480991471502102607134541375341934521290974635683736008504359901809819048865093607880634885090106281443825895658354093964590837382738318991543374459861944862897048329530641705853983534080646851730595465458861493784641096733900473570218893366079443464628770270146015041191604379360266845063643191565775778261837134884922582967635002734613022207989394328605803569984454986325442510539419737965204600883910911165370784115062065351486308369967422701791541944364500573349801730513713457399859566845318812367794459272789168889294225449462305598265601554167725725766374245687323521243981450623841716814416106926246931499679296320599833996599315326826122938916267083559658885539829226094881524933596509669749240800120729138381099339562570881119284866133463717471271102645169417798482846827611155861476569707395194768657659523826498628057310503574067686772450593928605485422600899639173476976719822880539685892919989372693276125009559475483113028365868951169121351387835284700630861024926051536134045664997902224057559552680191208477568121087511385454478346228868801061945631442088492246502733624646442515549606167725012418290226656426798933458061743420000929790090578967528602909922993643505795962476313951507337666794719113052559246149288447190488413706578525464810909464935035092538927757535891774528375397489786575166607061407306858158514712553115946261935883426557974408213107839680769428929198958788038535986904871785908416714211102373552769897476811373441291735742109184222849033160362296485366084051427910043578526932047513214438304628645813829406949089284363758505813395405317866899498160130382264791426245817405086778171546262387459260312624287210299267535741751679243276011018577369348227672228770086689799000864255956691383082364203196911922063509959015029656759858243630294940545364715488548144458193159908307631161610207138312984816986699193317861833228058150070003185751491135877725317449611591213547834867554704725769305962835929399282841258363658335033005638955434903767544436700401654581812824237835651613548105582479598515282574420615965740277848615819188812968303554482515608511219449668837777696566049033606306736038228870113243421431025107147642695280446085641855602166677453858361354659920835407636514030150489236557401940036100379378400293926219389584601529293285250817375719615704581655927491724703739684440621353227190441447048928427452064698077780225052824612339095953920011679263095748920524167118430814509768224794833338154184592293400597128324706028081620137898157819208666076947152608577891991978282353337535341231682130188421209934446214443546200932279773659410665788248931491623979169899889666462996550406858777771021941195685956615241137840496383389936612149821556858618769490246754333737427873516646954394170183208583139971230005063752837800136593124133561873030901734044615278833931089013775132051560491625256651211832501669634629807654073150987311117831299973154473681767936171384446621611116414035340743020280238746180336236864412469319338790650943380723164442405410163921886744591534838737389479722133458187969994396503046696770893792641161090865967048471260972190016625342922033871001538088661023795621977566712449655058355266554415031971494256506705704368946986089134977278765136934213872737875953738070631033226195614825593140559804996377585446142722931450998348481173305122371159446228839573108046425049032411704565942457974034115213874079993422867841513425259656561049488654568249661050582522612893753910343440529787555102762867851471939882209476502334957542528857195868506840954736452238928088326832132782497390731317167852672524273520238831473683156088474081900923920444737197014352261643783659632157168079129858227238878208685235506670592688175302337018896615222536696533375104303846206788311157276738703741226761546696926150964330901254922047706951389976314693635296872245148761254455032564331500163936938218657401395866870032833732175951562687419269926040937250941041837092435424621337650790899328560873264010423515994189430874548885958788760693395149570199215921123562135996902150231310168519171565989211811749629232000731808970603063935977942317228105818383013076767372238320370769826693847558124901869559752644807915400425227650028251626228814909657084537216773416993010660590513821004796462561135404248061107643731596168459623445284956714438538457356829949493207609188614040944981856094090143551560336725065448714477543721293729222685154917413195196886659561567238296773446804228996669798678533382415891466732736967823515275736228932648322898794683695096364673710032780348879988076513298613574419126595667370996633465670412908058870462033114154769737643324456059493177102112244765697513752864487926450550981116214139274779855856970024795992766700566962214149537062243232304016278937484571177473009361556180934061110023470481566284826007613722795205937448513109503108536680132587224673586410617378664099543686602716659221382084139124264384322722112434162296738820009510996444423883951377927812681255325065660641962227419357174392538538015497634115535544462852503064613181868880614882480643002765245330746489289165886511820197494194517444894196278338163089330860499159621664885427220984070031806624999731360739479000095854537970773673646566556090117816644322950296968976363222480295748935670072054183040324869180398858336832301402652824287281154264985726355573867488535065663953227655485164385486852912939561738874763474179210651852422557347568206386137496865447936689736603827681811710409595999294584888840448481246727850388252702770081564913856183327732946422363458541398804961737180214826782553944246064781234781124548931623080470378589948262907583192224651247912363515010046280191635426038566408231220976427615390413668686386011388530784998117766647036854669799093621325846858933966262585743543620287133780117996989855192725482331345064283976158890038293760368276726196457768182930391448319063599096415691679240191695226143595224459758696658318763571271848715583661203387216615927891102087545846957052840114968292595421735250160034865725208130903727028525632878670592614982783362398881323930741172123807706189504312628460455337381247108762631601545301396653429915422195010626522818692971621385386746823287860479743522687391720067481028668714486432561563115620049487128030730958321463287927473743043099205024608474601459262982506657654500701034232342634569842870649120959763435766802389390837680432793124802398992293801912184816704248551659184298570773060851002621291489712230310657746323751274522140155142646181304107311576550720106341673006297548392124018801500273935487436316793968271308179079871730538765467078806751386727902005059766090285165215846650519516456756111587720931822005065217039892952635167653772227893346748407243866938722348705863835828246510919526526020926126296949524235928139786254341375780526820846105873207586788829056992599789871877658457205587570467902697976051789462690065768879626728193594025089892873413037986860684198022431159392705436595497018801739317117034057938491009045987544747425369895230512209328778565024053911344844358732979069375713801006360911533450442320900429715982598774499497000833463922811800819698185554928489113679309145870939429279581363936969989832037413954832510045201080958416265041070681464667531109337086061943671472880424762775414051070701152076216115747836569483578371365724466353159821925715932303673588352680847301380825108088590238891080906592897580605535539460370685766528517080550812399915173201513522328576753209093178970987250550537207327237687143793759236173176170530356137352807301361591250031195372608621567820306474849741241250582289330731960986593397674950860487215137800882741090509332469355947331626235858264340278846464433181059809097865135927154484710460015976959745886755849611777139157547394981409992299362652437634233138218356232094247646641907100228479607334420175006843632861505886608568734966640820061478213305174394012277252743983179941121790745301271459191491395651903095337441051614757852002465894724933575890664543089514687839222353166946285510581649767952591641857478614440799762654474054047567590271898406834046559370515258234357909671381282091986838512083970389322510407736969294571208521278287680401906706012550428710737765574402354851863007432136817642585520077357283562998546094140569233630486978789169327067935219582628732101212767476159189676315175092583262239615386216306759712251514178172297591495804592942698030789245818558469928851231150588970427687619735330557448971003210908385852363912397811483670355141229700707201050622284639943899548101257265973185694122549828556906682477236868821456146315555634885040209437112866089985989684341205748782803609697172522627294355316610462210716504768201421790084668654242675251645329503604759446494787050491032384220389263613908582735365681599085396964137473100010054413638579948901756306770654399118715028862594980502618413696211790821328912073802246697030414208131767192246083188781441662764707483228463821217349965840504699823986128246231158335886802155968979515316117582811828097017748009235445088525295838360430426958582520930767336607554868542514289234085687696143738563041423039960546562932341251920661539548490289845365975341431198842817568674958212442051465033914125523299539295564993665412626949361184266967438068234507215027476767239989434524963927685231516523428835724816219283108643975903685937907416443361003927588684559506102421399817397255691450918466600166474529629180147955889744486611627532211320941641030593529748503425799291215599998611601232948270516658261892128792088119819215825860273135767183943846639415955680835037942373166591237375816867320179270390037931608612982349154568105634043353417792612784621427541255773714565281372600855056722054040216753744151988123591327269847106987321391112985764687987747720438940762685227902815731043088434478458088525445786737564014051935602196437202043037243541777804724395913936572725506319712710957411667906873990611319101685939973849625145865075873780827771636099358457953852718071074157498403166279231454979405633895426316365782993954086036531723393560509397412879229247024656346530670076912556071113114852046337733735192497158638879971252021188801463381181120838318796659905330550097047112857839828890716175022683896358606544064207502352376949382207648147135238629561083739634473228816595076256694215085658376814651584249519392503529327782463222967167596201821174560321715879796760431214104812884561432116218050789800707272613465743709128930296804323965884545542682845379858936402262694799773405876890782907039018955901551595497881773933648093053821592022054190746212322973960478706506479592533230694919508854603696881565773318748423766927875141731603869809643501278302501399485068640713206780904728870137016169214686757872468336512015541335054146325439101744490154411056438575098107122365590017752887377326879502690341021813909343384725226227736906909652174005101506821651502289506776845234111476608269428275421945591765092287090080211949914101969329459267712019807496936444640690335633220780341571984560973236553392800003957174955106267204587829777047140090708628788529450388266962497573323762247330996278879956542663240644472510317255914937972521274319200351459843672824740399868397259937280300402573482863951947962383781392933227383023035089739951391722802174480952889790782211189578243715035028842327908465703405279170509817266041873363170471772226466753625437180435015799073917581751574803806929201979087303810403370087919422565626138152532336831063009055671383520963605087790641357466790751734851294531055889427476572722003151342604517642625007583807485729851269059971762212663835806594763051053092961160258871537745243174748005436040806287650198540272197151158981750346633915580152919179421251834091621820660209132168590876735680852673271927479261258021923728932949994607737176278893507818203831202104603570057821760953650864183724887307540035331392256137192042784276991132893685925788398393876293951409405333623029438314170767420707322257251033653455418622769654887006708002569906861191041653993836164228440825278402090760255468743818101664286190869061398117658843987515519486488696683667346876005003793756207623820133548695625040638325552602211228259474509059592227719402449015869817381842221301651020344378958076901844902547382045407438151368288496812452885423039511624790885439810212818414585241763673637522181682045204436237617496378958343151753543342341457908654954461314779188550298447055501567792297639966884048661471686783081465276867407879030333030211851678784611438915480769789166423236902817303521772335766337790731250123495909253164459297080337388422922342363560222815826803589430022989801274271734705482432705345487449249681428537560564000934503378414915951025311869998550313055752175692413988776743698989474292151021134137555942933120525449956818074610887168608400437554381575246425921525731347220907192578598985928238816872250969269093198236095179546051207418846855207935364370241559266661351883915268252131400578361492838430842088287276373604905772527797933387557920555631482069234546482519545731117198423689930100901886016446800040226620265863422800568706919602590822658601649902979321261115509302424839981012300919082390928371595719116206306497368625759211216008502151724970698587142401381483873679788978938227199067140108888235870185218665977150396342265659991636125834975640075256883996742043029385856053794513095374015964573322447990096182351188974071882209887150070233868114832786203475129517723694363715340557688595330949130009826355356399175097287117733625578121314254975905408748489807704446900988183453963898113742719986382215825840972412019149210594942314373804692302274037483061899585904670545781119339721558271210857704826158427478391392901470541983493779728939447273089595061841380680274301540757653438357929991332687358783300672201325400169156735653115095207868053237589548874177835328309625743219697364484543087091979693349367255394505739092780451193588335134302595488822871251720712617588099550386327685019957490071706188493433412535424841276456806826376060126858692304714482025569829611278669409469129000089282583755362394693866194465277376756932211864691115398917350897375980441812645047347865115855652903435271750645743711917098974585169640909657741131592242384177584965563074547600718367663157380439105592365855949759036012858616308887145746244355246971049465410437687700472676956191989115589631009897512833863566728961623437118348346852703392865033608662339105494944672165404731215359394908537266255296499837473698767143995942057223419494796157287851165494899993402542691996089551012355972380153262921640843378868280789057667576772463527330265053245552207443454540654882936934528295171409680430293085203330437401192550278434686333351767272231744814154044326839135054065214109435683851165170301295227422170115412323991574947897543999779291717206599001947770098161269896531444157484681802590299676911425267842277336803922137082063666613052698910768408349146275716993301857467801621198773076817091539627540982454469965403880698190832549907487542634075567283140747711841941873129320175526561545609209583061251329011830707979545288323663262109804338157434700721566326542500302894921971309581288426258321820557616046103236883968649732044017523969095185669030914050094859188364628975516861793159179145721992742455529003463450223593310628270792515039089839558803782643375153033626269864626785978694747095442928949318123721847697952927271034648050396003177577568046391424620126787768599137354839055082057392287496698453864753110386068900252791378715602961542525859259571060025617558068400316615247680621770257451350060754334686008492000624815063144752317803698528488355577917837516210581362545802656044496590381798128178938238787946290483113390971955570815102143810146973144747318752762135278810916472640607207839722800047244496244380757973957507068156803625073330413626389230664380733615484882720992735633552846463394523572481001338866887810811125442460062228878632248311573521626438276198967160931529942012784241709338893981653206741123525058693750155254072068590576603508260075589453248654371142646545430666596352107902048323381455321944172090052305269132040833737506568742816061124888257694920216540174778085101772383422519414756570383182311150286861458200620598659538818233622449508918025742102790038010435324605370504086545923145972837562471644684340063579715573497936777091448261667203100194351715438704893111017198637985826409190136856713286297893737698696695813377721207031294409723648687194330156890240078556024711552424637020255253197865772959893494744601669039224811339594654064406129044319857219098324043502700557836525243912646221034882910501859370767139364492620382030559679969110941115732477063716601338709509565892849453709741435739119429017715938433271310452804266113515776800820984604629418682403100227569212606648644636043049888354843916588656651296789817899090526167103845996812980257825000860598512817372017301310683096413507204914210635986245991246657054681318951864052376174864451511691046416525618272180504587973728920908853250480591998488247925830784112722537556324480071629174334933004782458703746817676730928488485355425479714490449045035693921615707476866931346765516744905919871488359894656447173265228295883224564754665605739439163121264228786149282341676002918160025629123126578906269072723415876537279236610910024392146302219286318416501857293681977761729485254399850045140771707584628124984048599279117683246985611559065111845924352356626347424652747626988693478037048094217663474547034204579142780045492449412550028790339313966615153551141046257505408387914330050176762371521362820996963072602940663958900284635927491816189674568581748836019324977629613090692962192883765828789579609209870797462586154530279020219833969040317579253707178655190991521813568179365914686499454551839721051878628081004139730163990119567910813790699835928771827450370762878059283257931029038833631057673321100455878585556756380107137914627484322560357711745003906353614460547928186193509955914372450645261979199510202404867607785116927640159214664172736939896710610014021868311582312436825000465864409935164148353141751361840310007708198788298381754650239817646716786723450471253578498324399248886734733891244713907269829998403762985146438792167219955193047660025782847154197788219354692773068126657396319708805171931188063784523212433369369997526072471255311770773515106260363963933280384757162837485683203371884589396058029585271125813370115133939495001194283630340347058853206008804386353951011761768132645513508799068067304848391800077413364190627796278115229939329098075104502057972519682351763984706919018359316782857059611125112689055220567213444733073500184733566211290091438849419973960944024386466027471440996794275935366237664082222431629940668690378592797215890193294175799529322946778781485978126855078177669839657222439255234613574871089006941399312486415832543129418610582017596210535439217585542199478485727285199792056543710397152267613293478326910519154514781141649367456795916126676325627908157971997830956995957019518434837352821148598141483080006339281549845880434735515768199063158523924032784339216812251234262574740581505527222891729401371427221270948111761143346451546709381894151756782322175449156175577298939439358394542607133237506851439003189281082980226763806478774712179254511610525001111242412251291962804582882798170463436782741211435947595042693644153013123932031689602523577207257576399003962294136509459339212494955894448871908838858520969722390224901908686057902794173296279907368112001093483378157174063434947543566409961682269318966642114829785732969330291074845666767283947800075730630178823216835304891318399671038855994146210906504270230905028882740654889897499493841302584175125874756932215264155472962870223029802361208847008582059709161561074661218362870416690489575453470488889494787152370869954576352896337251012414666757411919117934605797951672512423891379388523819025438987738130731169651067616983943005355757115666571787447021016523028468132605659520745550289782334224803569527528155928113592522857226266206908683615206865554525460974280001114185626342375847970540521840079397010678124008744348239508803987107498999847831259061641806968696904280193794954145003454997689985066469892850156644928103606915412806369967871768717525111979910300675316318543304243188027608708607971286154012240110637789747335086034866211118220675833943880014684762062404339794553010641363269475031927465889927866808004002466205786408410870996963694302109805863168272586097699497467499027921877062349967739139410166162114174590153200871086031505539570910910482771900954496180443894315984019588032332067424173813289856043967789603624523952629357773467847649764049617673745762025001447408068622064474129136572661147349347593412670393208634807295359053709088593880840777996712921397095558403854276006262151982363252281525459747127055651134407306703080946751615701365744626926813096779079818517448530172106801369339662249893078568445594424406659170874017535004879339121283118417630591423072490248210143216081375615299689840458219749110448300992695340881724336510363635135525116020953764243426952335490699220065072494359012666823349075321957576725696140322849262334835120537927278234060776642733457648311280612728990832106510155657096631397214373528084839770302119699529223719025733097506950275393080260366000086132052720850076134671297275105931187512995444298595165463788785414026741132366107010384122492155187798871429866959652760904303680086683693338759652975270338637557398612377245310586588999007327876712245621425302093411319277979061075250382526313762358772898025962728334604871019117552148582589953383165675555785862709508944529660534702537202691343296904884498787769328271444621948921362200627801659507893449006424141469441870388130337658121621317143312982548101394605009038715160742599322489919942494523980007714354591179573352872262403663463299567010371048868279929243687545232467280148732872436627682422277902401252362208449215767185122449834372496328391620711402850112201229376939518682455622800916198159197351005874003363541114579796840976823434381269461610552965715021370318869269186895970885399202971916047762950517675394376847536860132713907463062088102799355600838064571194703473464581102158038379796916515730272889877028107003330919232541853475896728277662844069503527675438702954689770266476933854683751361842143453380073453533193950479136486573135127964122932970235161419028024464103540003588506373507404856059054723908759362414516935155628972348842156248504800252942993140497842071382580888040362873966585626901584259486233914635262487480236578171499399220805384368276865390463417054883366929272776381224010176667170482886148493868280405222930575829666292032872997544378370178976225307907211222690043913112013315104741217465869160236603806381750155925325618327952208178847875068199322306718347950773351828760140957295571227705615017246169230458536424172958749820213189160058078829439840663727037669008566659177077203077352621836650098359452681969023334068562234319954351897798697460822361147786639659143408264121438026888480930713915635131549940639530611110952802628237888342891619637990875729405061080738169324248509491114009691752206055998036328689528399295791851290800472070361383220529118717695624522773297308490742801667746332217345288560260770406855971041482502144360115517800339341501121834793473453710698257407565846732547906063490234406335930646535337728891949330127138106551960444334561687938320020084987474557258133003206722326249818100130573071048392729664308553197460548488532466226739607898624394933618838816633613084022929039201891085476735672875259385797090260323461086764422588526838831872599699879101819358041910301593956680558055026989831131077108755322694011286498584005384846668081882522335905579868427114012914959430560129641354923027752728499161750154652064338070437793241920060386449194971475352696838210454967671226991598365044244271314594768379180115724655738151026818665572408470550832089913824224273709383147076600164656213293987256373817331862578763452415567102652419985440498900812668287412488005942962991142524039110866503453662755708000375510241743299323701450823160047126306088672738624295040884709846426092627656559705148204130548860914302144966483235591195065380086039319847861649438285031077913913603965962576061521631049684400613847364226902500083994380625543338703200731917209922991077503572483720820510183083054451349186121427177863386179465295000537360808960914239888555950853620621638245755946349914007688537233891205674807401858795986003200356743282544179701544021500912247370882659261385340929939694387509351121209103153904520552859725109301248864501402842898346957772308556321450836325522555681850615144255610838356956699558097322808707240395650314743144166824185908147901595433457040674500068230179721155254662235252138665860195654342812711667194269040525408765078867428865627518825679166828556655514403391528316757674006455382441448179451749601145338976713994802833029318716350392390631711101830088757829156042030615442951034791501125671066133970363812306334736503572298858051191578602335564691783128791654093580653257582010780178716763014364806460559601227430012336454660503115938797229529793102516117879403032199398300255824437654600083212171565729323524891470753598218782952413490272843703467254885378826921408092792669907577530077177029528033966149878726223196048766802869621986226503291444849692796622532874500057339627859392255042589992451801906717930419113383368587779515301030702320165517854028306857413197977539714405379360605665403589660181022105573461854350773950229765841573332321688825528210598444298449566953391288773904147126841360910126788079917975447080103150732645932300510632648733510014923957881781987226984675710135656718060933824538443266440066099210357511178538243574940951842834596986387955058813369148814862491070975232247811057413588777081238688789958322051323680479469269581386563692315607594601618687875720808890757436370144297977828366188914970513639314356785522169435611310895894669903292687632784351991236885531327370671998751765675946636426626199435568913316153874062654461091709735248051799323827545813972282338630684771000941006792982807759272040618938258799840590370264008798626715830214426781328933758240409022764493352439119666035410086501780720215788516438736575169779919113044879160412758751258834897165162989278782567655347309873285380806686651045997869120395394578811389571452583582723207771467396609339512236261861313022629084540668102393776110560400142081759026057244767958897680123808399879135280267867231224976798952314471781772617739438172156906040657476148453604283718590695596864751620150257331089580159416523380650316754673314144470939631939384803829562855444001069768282026542257839652043366325873879750300487336511554395848176448756330292873831225891481312508203897107958911580177191285446600757614512682228056726829831871989786370818322222839640604886580694786486685085847877768419825885799975553464429680942954458377150027814197767906876206759503276396762549601589989659219471643133534655486688643358985378932428844724149257597030863674397287072086034238210556332655942210740279438639912909668235899235439431485443366414918555987372696944833252922935120760124541167494149537806469010841798601245215659770538165139373670750793262330292303950114947136838742661006132501272820945403182794547840006480312675962925514576599350327612368441945351169728524905579120088926559547996712849000819953329717749446953692400938238463271116270261727598082599669618239246093794924161767967607819810030501404542746645176236125721679644720106170882149254275691650464200528507824927582198517720746418938910738789467169815144424735091064067072505152466363793898416567942869145457973445441086355324769559562267580619027445505502882981515493086084401539924217954242593320290684082915458553740956490821431724387576061867901026542188235151212382360781853764361419388484703975277540116868870463266893289422426701254804591747896365615367546099156084715518719433722058996534684194151310511268092559425538285673470916294820244230670882309014710613261498791803394726089148892465956559338596250179311774864635147039847540306374449591508781919736690528416737165351883644186555084752786561110412331382362878156398210393687284491495785443789848418307063026270973889113560198968686547855330386910242388987723870836751627893133409875554267295956143926684163822140534591477874400792271733612065985127233507875196237639805272438532267160123689663807555279193072970387159084947010193649083344427085373252582618372229455565156091585552280973813195471179072766703068343174514553200877595337466358654222991530462951042869004677172080191530847988593853651187211701089044853221136111562047157292322844227815051994767324369480484570647047002930302945190725318686754523029927559584845711082517317937626444826410112142239916390344562056184960024683102869257655498078387536915038408915853742995465784055411531553237679575028045365699823054635184549455313240382695919299776689806795067823587850213629596412560826757350994173486379431706987156471218245362543811647960581546836430382492872141666442608571093544196483188711207748997749899893014237921313751767423989519684707869409165734323904564602623108213236722305822809467603545826916974207647487338724598947084490913984773927420688504510203449166619042547240617446120323127542507702701286343273609037894689551150718160446653856444345721295968003815633740165755363628472024713385032339627070950865087887091267856657058884271892229997101903067894143939388311497804572111377001737065913474700217011900226416445166709293669026098436387711409948019663969143644779721735538089655562286129804756898403165423269743500131552439939042877132629321324104456631425669648292945188146302728137677502367871334474589830475355597328534610991602750425524625825886502569053916299710356487676574164318447270263061477015284401788694583842721653564404598676103935846512714262642135565308909679950936508472668961847578124505387168513943172973837591680586734139547763556502220860767331200974310583804947233806575285030324429980607342322067077834646423600780597270825145131752829561033762568219953523281062770845684817131414738347478155430191901662346840569786791358236845137191492355644031875378893821695367529002342303185010197756330686974244515231172186880977424316262008738219498667789751153856564801973359861512773608615247060081758701208665036917137836219294204238695513960500858670965922978038028889389204080117428473214451076640898686657765155194673365864525612045739883846760671910635380321118779699442104925049912112731247980757074485106952478194618461424462310240169164724567535354853905359421078317401509986901727706250527974119562597510366395760609671071842521722736427617221102439217592424600109411343677280147114378375916926649986154490325014435081388517971471250521855091994683242346809040545566371068097831230392095141899550387921407175580189262511788629561893431196424571292188804609225624701684647951291024885796492009229076038703039883323999853355757501848581720838246720513799445485237881058281501963155930173288416941752089893711156239434835523283148222096478545853445800166137715484571432698135944594325420512259840335262428966984101590865058892530276301104245095009686442331775091338424703722121730442298256597359131274099273485881848139680052466885586830513447406374614055653200776364853259093726368147089317552174747410108386390215845964269474897091922669938009171651792866854968316965118833645415302433278953469111112044741445876412579994803506220813264693709295060677873759129234765998568511496983059451218152742874802334977700199369787563692937492095018719462206415784913657887852262176314647779861026578114179327932052481626661378829390591099288954058477832293203005712438701884639418613545932596315850287954025799866800410743114982914291205672573962426250504228703395630807459132207868078292797654760724139461036753606359371425238469903728785387345656510601268682105575332035846158970184632945047333793614339034687700845879934192709069936654009470463668414103619176635727148618034863181989665362249922542594107123161258288573653805964697916522918592166005582990756944376670260199597934695650438191773853681960506818276984359414659285118975545449693190073765414359037538249293188151336217481429919400550974256860868269933526618774241592696897760847506761665431031980698867447949187600063609308313019316903299325804628370294648019918887860634719150020227431339271124343496653665802645683998776302378034278578087786852605238750287790582744509252003837688699644758991704069349319930280853978702163589130011655562241915005965325177356850392685312344992180092031164439383540674619853245363583739910383300373059104289138022903125573445881215940557452897387512765026779283747019109020607128244373170239928461502513247833749754630131907961747223494097109630786434810728058561767321084680147773193841829013435415422141635641452351646853162834279057964446733334700742688973403652520994047243794606402403229014762302836771903361997852879370396202729791123481384974511141170386262435428589748211830773195016357602427897605597283543307840751374384728393230325740208652623636467067733145071009518374211558493442158829265945641784674189099399769840633540621155596332348499783573147975226734304854648249366096176118642332441488737364548168261897390490690930359647475131912760684810480294515934021859166094858344586762356816549062672410975798023906287275363277720319839841407219647736561031757084424978672991001668955435373749127422327233050390152036680634604626559113017783367260186549625951062890126673584887356631938321685935230741945368422638330535597906548327453975147321586249609480866219648967570051227095026187135630346572941987755814075827371071750991927369505370127367699909780684677000185019421084081167937516539025208032519585603278323807870484994878802385093986201584761639332053316140742565570381075166611209965573869176582648836305487937883067521142887633060630741001339966747479175766593989696998988019696423196581350830432331438140342222681093070529270886610540904981691106945245388739047581498963738055561850396673151565220828100452263164041858883920306537504182887022138352226134596108332045310673298785648520337363285267668687934216174187035533915804096462971063997234637716453264495913594538143927326995184037507274221461464991873228703929359124089434975509139834326970549273576969883378587800645052332639271192998420769676963217880926347450701778953620801336648836714332869215308370339204947888860685740274640658457350947281095873066628313088948352284749507504627903082470207224786819611869279788508106953611656203329192377211900580066030976152972403294243338383129450777110064486169316219961287196966191204471141464600739226871553451279012451212597172154808704920114020935685566589879268700857633112276794260545613011495854057582880728261911434957098287709972614885433874349154578094102294045461476982258878108182472415583801850642711062524169188138272267593768961016794974474816733902499501255138286001825197799496770960493965364154383393549447781764980335277661996660834651556503924264827535204142250298215803050895629853432443204979824387606802616178440370219427943304214046423960842772273515421866619962034667130313306588498518243977819281574155865111766305614581719109880948322966879866408064333608328652376098080884059036924546018125823236573538076154503753879341405986538178417261594843441573150673503775417087730895159875030465250209529780082554032972613924809365828969088027795505745932670403255006907101592996731885501387597438665096396183863421943029342879129606062146880031802206944969118120202073683246706640170784543313294602889029197991726770373882203532206384257221736357994918651243418971023395222378682431136099597331936128174472066502662827942839682582411299174655025621993702851927031319483584820885033433899402532558184379068677221951525170412379281953878411239698958714806832698813907214528090015037943433208233177058246073094115495987002989769742956714930542383250961293854234507646233568864547138745065295328027137701452090186104917862463263857114686958836670396770895994026309557225551163761232982559993258770101244498287349973263968657800524995288241711180176052702807457054668423910077993006593705306087263884169268544492275884700925296381049749579752541406613218505981314284417234845943842516602613304468721943820989348543305282006698009598441671379308935896154110560080449694081432680238531546371761990156126338600262058180163631105525136637908009278956918722550162851167950792898252799157533265276629481126718561722110443773395346258284146024158375282012188181111946298739626260018157355465400735131308045905575327426538171235605025289009917906473097229753840107781712090597546972916231980865930166332931799335914151681869979908994411676824063328413130569965457444351291046419938666985101747665337005299944451563379559819598315148534955476343441318409672174179842499780176263074961110733602338153433872443309672509384284389891241136640311310082742501877847395743106429451519228360876250515557853384526269287137886258838431709557884515454644413577453560234480790195835843290751482188645697530684445232716315481669993886790020654691206887685711551302135328454621159524043780787346812275185099385018153528327206281373385339114641560477639065231965717453182050027194319232231299965455976251918457163927763079437208713865753043487212917699879252079377204322623534302969686690641157834627692915483634556277111095656337863950248918884979092313656956509644808986718647690145560654692803651672818271171408950911861503785374120961328327844053243184496435272163654957452517185294673264045761848084225110311901719191804984553197955851689737432090849163738762470566887389853743186788793758231129680689517714804714095005113709716657054722030597222466833006347028318178636235772794214792250846704918290937333416587533204395637053233691269355327644967528490922458169530471043621776918018667931661730512871688728756242971842009836446551195024592463024011313984543683772186269822447137517466999568888667410133486876856190507614673580006490610120318440436768852557340714551263306289049435083676225752244894751172858041200877912003201142234225070780080604256482580948129102964865066969322564655713469155026121901029375550356357118831211775514641897537596085019818201212789956431139991205854463830897608828065958352563224600330605928990129315732329487885902068524025548031745490365951724318749941330307020958811735679674894060828415163231565205377677168830127600065890733293522083074967954424784976461601519765788316597929852942486098065084572505125319542515571108927815169009437363934601477207034459111810623710468680779061584373187663179976067085034639816110935375800009725797145313643552496810085473512056221137077623161494619457817011568634869710992134523443962375754447767707499224148813053426054523611477756472779115045307615236287907444391525696890032359206458541075370450123352976798092520571715536928026220247232069487018557444997754007593547882503351104133941247678378944557977736671381513179683753363144998617436399870059524194417115722594914194754249972917126242866634289325027428281808968966493492861563057696315530039732663884496644132633747479155907642152682799904445754854362777423755760533245387206079284706735712894337462455903299332361072238217052458269741451273259784047479536493188878315459221920228825583342075046083446474136106610314571602505735169450680087476682161097455226471341896590869470783097911937320872952242993680703565845312501614800905855372521991489710303491206522448289102683661689906213410671194288655245071419325735044582855348319188450555572994183502147795939682236935163144995962129471807918535888463400830209098845254745138547445407319523552866467909899586204009105335725547272825871905929055426060996594360281715569198565642998173718341677120128947277537577253253771619897340746292235180694195760654787832725426720894914868667504470172408215355269607458380052822322296711493720113869113398793691724948360115330779536372891669329952106921008379749959499714163916035119969333300037444004769836637016822886843637419102480823673163825626728297352315419425766645354975620087771817927788622177431751893615462761884712567378556461545592256971593302225112555621681629082222247265495281178828107553654841637815240159768117675343544270589899986931576910138667037896178952912254232948760454389122429544893830330671991329195707386224951431454354048986629476018440765354209945040129628949757988892543704254253328775893925499793674822002645698700132483077090082826606365376592747256739166919842161980186698144082457898681358149322459942164778838518871894559244024387044297736071099757730472327475057622853493783748779460237169015370058274132597736768515246143263287252866767883163211278509555353094649239453613216489812736080843723855175891995868329967253740901069568462778352928013065960394274609806866822456878233537555827998741736904601996369614128754515857016664185990575375047887723664196901537273978200222560780526878937370783568962732974542266729107581776560617254693004539697361627000936816653872834271317633497202644690297371616015381441817094430339788978738954644194919550484575074724068254176115466024187534620843272364685030943360637672050029744091411539159559734996545806572401698206230964221008238610142396099958622009027515291723136051299840904449498609586198146729815384916030773744598107523511921459695538574732791909895277296859762535647451163341383710628261287186664291407233161152851331057192374921396145037113142951180900524439630154643893974837272246277041673930330643629572639897135841593083847713824530939837113271325053624214785477685576080521412902601713473361898378670983204401375152860676193315363652418026895872850445919713796162924959223641148745420978374371432085377096124689171992369613202250116627853146350375761990319383326449502218059572292553058528272311535809450781434393833691560248037321311451685104804088846469468291875031296136572790352485958549119837180823539974449631447212969214029882489754295568103721968888726099644226750665407628451595399075629836447614499501269549987086664314408289019807224983487486325201954183949105886510302747701614171456396858141044298689046763927374265831604070075251886825431923288828866974848783735681150519642860306427312591614853508823858210775862502619682848031302243140470521873043823921989194724842740766147819991373559545239671696381561032242831234919650093497532012310803514389435267224371505669098002466270650266487105754190726372794267100231061852963481213150510983430741580183213095566398856070188397140929255418617146436942434035889208506645350636750466336989944585962698104849261931016967493474501767436764447266040679316448765229197227095542330781557379887416017721763321603583481253106113046576071096568033204525996939104832403935085165797351572512446237513574158072672527258908942435905100211379010180848052750831321483704534332177233903840445888359802545463833774338796111750632659588475326591855540219199370154826682315525152266129886473518544335521270421558816588950768049813018156519859030765152617985729472847976721555397795761806336873267303813713144446911107657323673307414701515240057077762214236796492422401848650817653690620760398670236937438988380869485043910657642151943926835375860177205390904399206140478717884216812063312553471119226730264796898350989936824308620382071513241042187631809595830170313711158077213915691358294251720772259372856859111725776785802176610937281529102885682681961057213102779643858844930680279786578268826524205282534238933620052598585608602745804903577313064084167577323092187881041766211697619924870123480619033162406121106183885162593340763502573845146564585825585660385558154556080864288890535518796774580782927055418121221663970394499695191870738565598281540161956909770770360850539870475672810392254324256335217487574470226043436712669078565499875351755074543957837002938030378270890935515965388993501095526440404232222118258026202064317357272613156428334697339199644276995185228557228492470617350778491061066109563844262508883083399728973015054948275466121340205863315857630350965347225729179196779393321607486831427402528841815174622432441109862601962952385861879111722861780761129637978641546708234259779736172293233945146028105329200078452555726278243503122283886241595366554455124482555848600512072689062630022229820518898407637816777977023893866717732652587774102580778139197070456573714216376058069485639208316269904986714236959435689025381035233971677769713110471188240393468010399859362173395929728504707519332557768743922468201052179907580278096397880839993604232924224008956184239244407273495526960608399802280452238208772206961511368816411255725134889740229694669947937398891093960744694695184432678311622427168790927303254096751653640851324244964165615694806238113065375016419859854958440317907087609134540981890127332479915651498661307056491784825554391557722386475455059497924842836573930914107791732124062643051479701004253751387902961481060590936005408805882756436558985000954693663431191749151722567198753977607245682030655044027078024968732629318523341995809326929822780109687856515115406198105767945736048635137533099765331153340651983635368110211853160215213552094546441070587371752988453731198149619525246622852191679265175650996350411623603766799792924136574026912318304576223795281946427297110080067702958844836846533774238541237237546382613519844559206856561856209497562911105760387265027943612730585540633691647395329716446372447626475993922975161943286867752610715431607470175609667735882850625984494076071955216177861295568878594387815247650900214160390566575819789332412079591820123106965537035861188820661652743833637428666587642797719386831496645668187311166450507345083124718973411541539012617545228081181722138322509263618905914562000131506420824550688444204744814323603746668976904483945073109643666046261704908759354443636941726644556230013108216328176571608359814759996789329589533620022136824162654648017017603002938647588415503487079048214210163710134369427651650150369749105139438436663732118216417650484593648590968455866562788372150265763891139547579723070869002680081523381370070456935702503144300050884127921585920939337972767944579258626472801561774332995211561400370721068826637775868948872283183273560504899277849508277369002315673307398885065042604060589276671471486789397752814942478988316343227860159494298470627419336003763107855406878835435251104224293889540914460605434597973712659968489865165587756851430067226861562751755664159702125153714487946094441869909245649103812919878285005713722034217376061227019392132138285152940030201690430497068385148177890544843340841652364281583258609183674539707140550143364255702775515030864031276608461034689559873692315859549995941121254607812564057886574460926515831746554924952137066380182473883007872417835193036188353012678028912268523287594929658622686305461789388462472861417595352448059387957299029708067669001168881787493523220211189802132588889889320668030923203830852081682438376723154173938655368494151793559157607970341260447012061170093400253841634342348158284892265813463458316743051783878454466716885669365115251886442838284863748103755868435248838576829356193760071613402928259333402022634964688385530599073566459465586465978077821535279869912156095947331620457908817324866928163156766074396712145022191604445301827868246655925465463620488479970913669970299144012086996288391325731207573599053720681429356448061878119558167921982709472374642506364883718196034783853008623977354868731767562777478235719522527223758846968903938663738005635521260616563192749676112924928503977629512027394152907689560286631349383598580005056891922575062078773950131920027602244183276492956068594367763314205549329691050578593123531552004022575226423664274353294364011885668640410664798207188343639190882457823376751924572585513425288859611216991725100212021113147979888499591595261761495460102542787358660630971957886327719342377956680547664563311659766158381716858862941754983101245920363366152408732341050662643381375667404444343680532663642055835522723325555525980657453807457989525299372217056532412121746565949013147206751712129667968889329452035354869185933364746059311999604797347802439036815437830430504325839881762086311490620034509294370132902312483618639867543155909526189226772121908474393315802746242699349398607868872894196406155742576503434196695389773778440853824114957247645477499799799959686650523282429655020788601049478891816474361082398630301740430746958603458409819333878010374416627053878457644804688701647759812832349861232257024999118514340286151015083947440734636117792521842795871655732703910347958696783379142838869524655998137517699926296962234297868462296128508958736120426413239554586119022030709355933609754130630777628866948236501291248143092127019022143589591040161075249994373135439260749783743363902276809100965192093170620329997842957478120450912318879633377587185704529178254151089263362009994884221611895613497716301747777774932233210490879838906350290053401779529665057031588778028206348584666752494385634426245190075471047478172218648350581085724181516395584369624165589327006631830937881607955346648149456871606548970381088047028726207626801703626673918847936020810365927360753954934659481189632911720254909438196390300755593445980433768655158012181932765992545529004368583236726888711395141184054829610773045234804251500454149047690664082916192662244177817544181952637937230300290520399440946963363697245489599897157483134821260563852086710767390421386768357237299950274734597299405183715836871812398831606149462299221709963029454254222780087858066348263167203980606628127995370490914305747556091908515781205814715613592319658551733009312185785887645054886367998532838529493498281412729804204200963618839362571317798082641106510920811811454260536897205804597034123928602645380720847388256652060727430410780541537046518007998312358688498111165184349991492685009272963418481088952318337214087822208025056524382227080907842884007219059317455628484129747561390896461947245128184977974513099243539499066803366788090868547924823596784743857986254975223097868602187066268087973606333398539935769109647583493183927636227288477640992704414122338796565574472832744595859429976176561380659148955916044241590311947467256016820250191355418511862076340494477086951612172839377999881402879634729833900785365632622470017419710626470146501602065142759491152743022808264909768975321814416803350201517657504825884555188085774339065465075334991547127511865703608422388818013063056599398965881476518182978966763756854599666214732355128053459076970503975609091383403035524332632462756508006077021281325339215381107685880669743605173541216329953281455258964436740316110039088212290040660654426917059337374791599956009685170079004102765645476132117229001052975299268229291085376158160528990536264103243823519184451621439583610355792425849115682337009198458206116912860201716835221181305158330190084622230731480136678883693065845541794068395086373275623099975522901820000251103787292431718019776006594006458835859060623974191980391484712214048854166489461358789273366743680053408776560644538305368219449032669815903773513511988904866978819639242934055122981167650105230122153067486886312600699841478796939618801052871030221157919266577115463783395792925826635407705053913962577856358809759961931590183433410792100934373333201772606511129897662588342172886965912874017859553555823750696623950684651405646512473573966285604188579634710134797710661947190716601011194496338943948526508549678746249295126058037171306121543961302065090631401628012568596662668649331929718464668581327454445645948911369112238941249271100038793095441865139871328610410285632038808305707628131369108621792327591091543356694033922431414175348948855267002261746898904052122792898283936043499708046529359862056719648147120975257392338496796004894157540039133174621518409447147212825863253670253719929786315019880584540378890509111700490532109675309651902367087969146086080210582272973621311137052021107123167280099401776826152918469799595744336561362649782986696797997374455653336759096896045218337645773338839354157153078395081934147091853297905485195469239554191478181697236528347273997295768745558068874038184997817999074102580782421831456081584399629172114347798767801728988572465404097292919986377558840035038631386536723641173554143794079859994426862140937000513028574795131324865570583831904549368719257102061367551943803999218629411506314972668701016198840985442642559008658543154010823475922049346425907575144378330227980901361050225054797947032876930664513948081119311017009461026573535568236848944795013481990441429758768166691888013864345364491581953763642798704609742766258934929270883924245160216401002440657954479244866856527417259445295011699066889356814314235111870799969489499918470271298208506947052255892558679088232065468271005901308781523644068486076098514376020463906983213574114627369710515413435296921328563884737069233039830954198324719285525216602463423152642943935496373545049108857486286518025564352836779835596284900523659020033794526416073995883666455734717447813287823408319390185197017587853621744088450675864956906652153633210859390365109485612896968595194515644632436670011661041461624204615365298057052801832665071423120405465604563883143935226823680970663403118031408200156473492917890402166133767647201414830741642428215838158285290511016689110806623236795510960032168726413530769090681860703195407565326994428411388876013509666215335541951014750085749612334164851777503670272544266411773307808002999818070153261348720822386997916102001611281449906839411166067862823966206469725556090466777011211737254828772170535159573957891984678926495150224422366350065729073731408256592670246784125572764556165910306768776465441351419977403869500382477431697984867437184643988829530151004982409906941113438390701815799117725297379145787351563127535302044622317273588344266460829658360317615110311125858467444111912644375767162396338381528899224269768758388301325441345700013393405461168507067936955540569333415641041045301951525365206637358386244211401056176372818360120800938517485223454957011018872882537510386025114384520927843035971733618258056726136325615470326129444713965427483383350213582254938768023314947987777026437826490575172675492215007646426651574840985906205736220766427522286500774192901730223369813540519683869636563899758188501004178624509762265467804783572677453776066260428263824051375673375650831937893663566783169414328054260920076634597433686386597801080227601284971896295671042109517968569736952248331352604882492180264046899269212763307933016531979995456013744055366846378122275839112643461236675795166834286724881917314193230682722518345040549970079970958443883760769756441744934987977950738728198430170862803777391055753186717661654967356446773768755409413162497158026368430370336611868932838099674240169094819945203351625269694795726782175911558586293447299524541038640138170079530624684350131453334743927343795909429687284968025281045562606508006147748952112860009179694348085411359566414995754287176227725155905714599865960306875002780351166147233763013220973479336053893302281188154776729424098770069354760207765713172420803290941644475488503669027786757286276639490673642156561222785565809860133543298938463081057520771353461715633586650524827812944774082316831076550184828393885500804106357029734053828665500329272246997272422031108334292373586270685711334040151511374841829891289063743008363550301038304489605943617254437892336268916527146474467879057461632851165124618683402541411036349696721450490684501295531462363027200292984002210778737551231834281624307893790108102856112220064222841769915899232535437904834886852568194162116027374039929182514151298333889439743407377333928330885320344038548795856263314427644956270160922374178345459091154085307979385726734128387823353088217873662005431815983313020941604980378364731584376720923465253613006487143393794658411256716979627463867006710405415733460285932664965170407455980194173741792951882847871325300306839983943919952743862842825866497391224884719050361741885142248176046521399675731196401658619847158557952123989176951561485878852884928740436008537992139472057563499729119289995337235017562040054303220921173165071556603782623429454521678350714935963410806139368526686026119169081047159020545080661101071835336206244216830614511544270667839396565732667092111041380104136445064567590082571686068481811672096471554057226882475548270133929716660601376391621029521590070038445825016115804504213852360275779884474700607908779076864053975155691036447587624041394682178121603399396922318917996076575014721248148928531259790935263980879305416990788210262265760170627930608276149549262184081437743609748406798377511726751972425204736626817381892960636661208698723224321935518161716543587933230954374044393582569235149977086528406454706615311165298027436827172611504451461671699974187569088320964607095994439674166099053094302194075604180124871879654475261936828407382601930506422856782317543396680772787368879093652656808514654154146718040990219330457149313089600935044077050110148563087474966936218454030252872227882803245573750791493834289517638852941762593013076298557930232271366539539572325685039751231508643148603823120826429346744784120270239421806117160567634224055338795169005576772578563263913387862117958612303308793344997683805264709553372645830759430873012200999855388744015477158618305323406703097191360372757378510688541139318265452273863361973245449653880161468564140058550159911546230898467913610414953208132436417774785214636745843032092456588320206275534137471327517864403445438447022322214115542549074714547830055736039258323320783764544870166856215719193201522601976854939032097470750007282019561676969253658758418773352260722455974846724568868169514241483052341934087065978566396061557758528802059388085130685727977808793808736482446168971610892703337451060630505174349685311625756095219869843402740989154027873534278984928747682602254936863037411352291253014312893748356447710731246668000032992531382087414494530593171470976427200376116075668167310778418863638581540073297683354128544879256823536187031180855691597637787655233510424399098938310847430078161507068588835869700308223956693676140439257781058351256416950295119175125103025893245499528049290434855188086834563485771528183101501247936124330246472221488562205059532980795457511121561245268440015910703518555754470618150539760676945524370125487899720577451885382151106549650632474096284734211710475006773327134527975031135732441751121128094791763509664382107607607790176328695105860197131429303167859516491999746326197637208497372053110749247104230456956962157538506455244932311223212314244811259677113787939962504605839039148292234740584280447284701023915932752374549284211546077739363102709043001812271280002951094502165893007232127159356605735977044049681093363417919793881516280911220892517769390940980090038194077719599246788592640150224577634864552244631360682263176872643233103568377483867125537768454312202131827886266066507964780003855930791257869144433264399155544311836632902770741023096399184053354770807628365718861523295376122267425057880052941431452442337250907357109137318998399828764925628892350743798544370684110346967785839660984709329824578848743514635125892006840932443624453232930256813300920689643279208005114823196115443417800985719054232810212838872663079555180724639012721519753067488053553025853363552571786190974104104636080383522095916485366101774494841296869276679934907035109637214593802768855331106213423094740952827526799356898423613609639347892572876276149122903622246560913206379975592659564632537002758748771632804874356280273334570338386006833884661491803278394827591853668963330813995192506560525055069361191593045787555205885265903127930704200964026749724359259663065487970793905271528694404501278256851752730630723749291464260676645590830170152759552598791783355966776226002991382574367862079743809370942167279902044612900052192674849238842874795713086039672898670132264479362622264152671055863100529433786258216976972683698155648771616248306000049609997305854903128602184080356538979301039048356595788623748681034692270418573103481400664062056858109635736938327891095225145454931257165758049199929377399288864763406437941242932818531022417146947864872293157637629674740862120928808395013954766949396397220805579088940182279106193344308229605596557401866914783094557216633904678859327392200951144970853027071269904960975587933715046842374926146417376019487086331112502373019936636585316763350741941575239575772950024114876568897182884246179308454086220876969299225250686568073333876619019304198147883989660620579712774354939919545367944270057157140733004042821414638328741596309078692735230102976081686768431478169437670159355526145604823185087843430052265828770584337716685285145344466506560015481436942367092314809825770229528235357763699297676780030862293635082715073249505304092570110189153062738898541535281350113205788490875506492146320102187649451130882620075076251713933082723271534181666926104061354545156796961601103310915008688002709652929869078626239631644085730379810205699029817263620761206862708698043966163215857090844940495604800560192389818278453296994858981429914987101805301371716148290242200117716526414115647727762242179842970667682622726305220949135995508153191496948578250442410285969054394438342936330476319529915110099170465733082077235973623160994448588531288860751410716699334749379727835412048465945565709464629415419409451681074404038350819068723961064496860730816953776622179310036631455740310108115312223431366162206656237945457750794739498162382111639225926658646765410562266142515350451141844612354952013268270580269588813057279789927243506033475658088326686610177685114974361798977716498486069656480359639905844211161850113241258021903259885097153869603296059662547348332602591395186086032224911982995705326893540897930235127891119969063662167037993847460723424613768003631780995349926533830643643597106744524394087222925735489133496299521249870205310364990516123978007072373698194874600255675101902487685784043331621297395826351624959854395053425906155495951287391368228518183247328255789772947778540779579134747890604819553304184606277857362492438125381829685900481974331424029177806379626560153242124199276198337325578235565996970434630966874734089355254709503155982639451784470861518805551353656324262574074280617604398508372358178206730333923668598421438159619776456211115784769292289259719752447881312623292181086454182581799336678992847522490851415029540604321721338936457854645360669430355889298250960864095394267749107613740154730562814988198377312091625937753386878617370165284704840023721015478684107100206216958237429967443458413597099887446193172473116784608439788027894591134429386506081439209553093989352286682561425236193219456672300234608577007599582223614515513020041702122563312581432537210567184989891188419324143806217888827729367248455173714527997977997661021196895855599372824269993369652806335722399275091063251136392414704658322349626035109971927116541025638107258416583771589180392519916889164193179301456871408054283915956209295143856515610920316960326731992497509171290990049646265509345332022072047431177023852094546693482836886460557889657968060315676705282582274677651584561922836651965498394242170787193060529995899920918436810883607696407206515833623354046122708463679035265028247921649320153028967058818471584188406000481773995493538788134804958655833875285830779820521497243221141321063016115195841485350768914768838410358781564495324278888938698973675470940067479771572590151514866372900549654740025059777471298806318014846016356317566373340281093348032477402754312259566391329707451814011028806174169014038189973546133924215194877052275901490039395766452535451374441561570867351922277684940622399610154506705445737471126225428850923483951238266178164347507672989647908816393960944887732191555129858224607767849807635650021629936754399137336953438559444365941905168288032265681193295855750466404185929358431067852278038852947381678450283289066448885702808967823268405075053207883911874302784272165833313643278293446502799525083590080845342449500733024778022948655200066093679255104537193640373154755076780980283461694255814256444738808498031946272029156290483827895002090982137041144101297170119366241142678585799714328145781890642355905677806634005576205659698596619232855719563947426438309205488252326624638937615521265102637868998652661909740027774137780470620468017895193041994953393947808879330018074762201841807812188334259221376715141688790905627617152850908043368760052956731790158719093775597517726719399184660588817407732378955766826745072202564215418860421563434571901762045819858225980068860560100754086978363861464963721986659647303520663945312304167744739995199416785990023545232794961787002263056629343679762739645864636076276875166291126905902529067884114461381809363691140572896965699629495887101258248348880872041305780954038627686401504002842894794542424747834549585398215319466855894822491354336100644086039701210852768664285842470360538352349888036326448848413561693985397251499675664186087511952564957467043366107954884139021361505082877667390637956911728416149213943351508798767332409356116533878842404317759563127190712487016153842956434161882107398346619137942307523035173603552573562717949233127694193653830377893717899028007329279616869476317877430454096816203321631465652168310859728330590682332101413652788017759713655339837233949303325898923082464405434202443812612833416341259678629401790992713902837975172592421255873354415263881959106792704061573804408922746339145972143537846695367902596619380848026158931137725332016865752666488159649723668328834443890821647725577621164292762351960533012937053467996879223591264383014293765041427942344804623270176865657195067868136648275247861491557199822907755421389282343537769016968981389752887240752702281225403290681777897375572772404087731728188423591956400429818459837416076767717197116473322624191068678577811256164267584680626336617797813498927634126929077835245226758771070578164310517679365171640052998437022242509248618492150111674932677396835324762704181992089398333860119008561521900012723651599564665275262062330041885833127447458508815539303671563400646601184886461785138974939497548171778037066345248392522162932689979040378716245174943504308751193242732237334795903617946085121290439299263260299020695990343829519153869445800974681392283999082647832909106229491960194682890318752558843707655976594644600628930955060194295147903330585242169558284362428326256771501481086810698421522611472120537916808242845311946722200630425531389543228207738909763606417073964288071359569588133501365174027418056964652159748039414165693684314498584371224842240521335342001750964668383545178686849804051595630714631351001003095326098359023113109398585671158196171468156785942019175191557828466496057556939688214479790343930700438797333933711998437826318791948164900087479161871307952607110523308826268240142969466453174185895548661886175835780086016730564746846715848104397733901798804383767108144069735402394936976963490795749935511555742369346014987889208053320441445117594903156575137236406302393843954446454480985996091451144292312169828648433989438373430182108794261566584405873962802371191642336831262129559268356901984605511099369593503883200196273670626311057357439468251637148252329842187539531867952093531411058838463870857006355542955104447488269234646189370893029372966724212281069087180168102537252856460743670168999627809487369052395121730496974286305731729511856109464337502230335389674338211909652951082329849512260370824755320877672503498135795625922455028259000397273082476542048496508572623329371065670430574236877367930037600135740139327740359931418025978068971446932957649568857016218002375154005722954636525084361728125857845407000671571392269299555798423447067045031706955440431229008608947445072297293938859455065150175401476364430687032435759440671914153450816798641440235647827602242713377779451295052651785746235420103202464299648612388490458154746187589875942172590182305050026617442626962109982197337787959719933530064148475423895248820837697586220719272772220362185176983530725648472952072677576192746367389268001349140817881079040136710843121790919521680182154557692841103807674726231030153974817361283946680401889147522769436845500800937110107565125253359753943787925263568574520975965657436806173763872496594043499645465552173857809629784917729980230388265507180113408187552385419458378820406991121957864250750661952221486840146523854559904048694010473327035237867491010201312882252388140324978843612387426910229067288861111635595660602978496931264135436088887437562847417034126606053498634568586978370136134988039644254394434714701109484714256158959056497024180013728885108905693210506490356995510327186924459601478912982721339202087483270422374987660439825603628806602914537916250322102070172737256765085703328546632154017760149165644585364271370782613766121205984216682866859374563089216618387893877839502450198970675089214891767136900965751898437460402021267256365426444318324614969650563275931403160519584979184791418968619930155803551869936424271899636403722091972966950317176285022539445478023167885407138683444661152096991325291324664846736090011433992062139243407783277850539270864113978010107180376891102671076727768736270503270279602498858686179255630888483204528076258047930025836492592998002119369536917625775669765916845530455973932982240157675934805650675629053042553678560751087042787493586500116998519750331701466750607981602877547887505897325779583233957294714055002066879277629435264521645970691228216333645870551618270961033763607909012457722551475159155915783002937744219216838362781037579948221312086854362191896995429505659555962869462212327720107316082479949157516790953731066365015405598930613714019705637659129458568199247836451440958396039148584397857609310902336214348040080709461107537088519636423839672165782940726190310759948120793690142877807141156380725889114788420607875644353541573879110158918290223118358494752870808885379379656590320547191664385162228052848209969448593223197168111168764133693894223388926483105540120674407099921055675738109207679300696585710672172445542894844779266407232836583361404483363564634297485694109451836394117597549964298138556192175302109640661384459650292281251917744410105452167504845946083246083965031633265396209110623317761775210469981823503394186378889831652596453022799287846089102864729887467660953444828939584981506374392150853372500355735322472368977293224308421485063683731913345954018384207923990161519784575270944711246029543427161252512560102231959763192388326888814182980525004991560137793555436151962130615220011035229493048449172895981924403046032720807103460422841017014487119386624729711420346172564214224244144655696617245231764079867645867844135336367243132994466632527185935271115116417391433123013254655447435199216738180657061103656867650726517450924356841207413495524885079665215891168440775470287952523713755423206624583396987722846599165089827349708716088872301393066656619764936394017553461441273256091688137125159177052688140200767172754365686524938392613678581420463018142173656337245920579764261758025792715173985795573503242808290557534116475381377153762432684017843922724097781070434543416784344196594359972306079488075452198906963639348840244790139139312528611940740667560619805340982394360647063291597793942412344184411480866029771279421461060082208855114316736731562660521065637648762505812278505175356515661523596991088613641298596238423750914132591375289048362980170748972142888310904194106500032451702505726678794857717594354944937331044996661924431031694534339536286762110099086301728671665717053282506090532663828706871241621487024251648788402653985532872443995598533529642434521116917277727249352560627839088526648375414201623047549080417449670635802932211115593018226780225346319730475230979860766928410640693420561530131581023387975204230646070003899185442843341208504076035825475967051560122981270319298416731736052097761786984955881859604538000764649065312229717188585243108095131190546449923103808120869758076865278430425254916575598860314741833804094742552973696615557381579024197195430655233754550937675726071664357788931191412486882880398927341907362621477097801553004967715666372186241566793389818773467112491291770519904488296620386657988711178476577170209974147522499878011853254478198158573324834940728013020123862225666583750547635858712587137257335786411941819995522172406727973923860951450331908149431703362259399279667427436288884269142381713041408647296728975106937632134722033394582841504041012845237944049481710619116636435460414452317042086866864959305135464207740660461374337305365657927578335036598340771847307695527212115330419159097972953865145092172270231947547811479565809734984730479800885138988206761246360069154612877130878368255761437991875834716064342723796990883313544513086233253861407738061673477223537329546027449918039108598400144784258026690515261913431716870401046389254436120961487026470992754730009552609023127442691010880212731105331740886308178652036271989554628302758567805115847372756029181055976610627983688067487246357769679648845862473165853270373900036548292313220181381220863745810330684037979566380853383675710777659075313276307600190862325578788301262389221852694820732075257654359509899517463868694085264089371664188153274726558191194534747399542554968296455998666315917993592941132920751572517685611490243952630585531046885686032319584843960979588789293457723318648175536131638285361734337255993730968764302169110071272373022463374756551573422422100259879784609582449704847234879868193141732950061104233499749390457183247620538064545862181163148414290149195017653492860199326519576297221852862084999319910527786270736697393714274811819846468135344331664264952676425048433421567629111463530977291239145951496003799964964983805809103101795104162753534313198918203039384201842702568586887377899152902437762678471450022104834581310721102476255016758221871180956640116227702575703579201214678194421739256393246821722238670238638526425504468012176944262693315091221800427560897684383524138051196054729218400128215089286853686771272202746952672884464090855035542194184813708560408089930232545968564417172710836083273209869630189294091893215771677579537164453253940576000905748470385174302197296701340226097131533037990151922947376080057195069762878851981563044360814024067058241958953744247230289952615441200195837342946729276987448810960443086198620932563590772449700760649183841589140534263737469573155002101179307530559639642214359807261041408217523195284474679086456657225592236169108426793274542503725289145403164728681986990496407991284404966162264568807197607469335211289847362497897193154032421096122936077063276089462799987868916619482201578945414696550670403575764859160932390459522192151166573455150535974080600626659659232280284688041532739857031295062553429787390098154720464790697330903149425080632489832306691608691064259858381086649782753092490081492379073814857449850174616914790266599697335616990871715478230504093641247170722414142743138573634940373586894446173929803844561175900866249110586746341388460303444882948381582383361487767792435581489135371514012157028346781063696780681052508448694166128908636004762324271789112431714795042100501689882583214714567782870310255576299472131792011666344780658991389216949846701396654161441795704501639221197066603391823213507227303233917715679547718346293105299571099372081907019207983946776134115023149394966616262369140002243766888460623031478140669866324254968675965061921232043059402994987754444675537248836816810718325356507301958082297087742540781837274988530779040291853176815948631436797605793820880251884412317508312683674613181914565540026067875745911525658674651023653401566691043880607458538437636891597766334133266990329972226357304172813615655688135041688996410818968665597699954250179173067322327716572435985385984092474015808622900489174821738086332818131229777974861338507960369190181411182321037765580004961694950595763426102238033134153413281985693617322224434706275049305423070762779417371888461517893879165427983821939760926917426265182338738854497617867806905884462411965630111951712992862152758208085970847406166125383254601991328957331518098553618041159669307835405854640106466203237671597625862554623130045336586142811528642852013903234254640995176923382262836768839742452660853349717509443642175755451710420176260725369640909831334039655852709328020782130525655409855127963389820543104716265917747157281001509605202214979154198041652020239403575847553715510012698442234729034931433432904508598668729301019048788247327476400984295302471487363641798922840100661355933311620482056302881548395701348650018497673902903254392397639218430992302684837285677904396714371938014794931087580056432952605623372842336986165377237488758251576053750719394333351342246957469261217686707739752584352334460179363433811381654222503806679435081312078612201521770128486856273146498079259504415007308078471174622311722139528023626750278837713360362792921580066982268436580672125276710372792445546884752497584518559661258157433606893786247593844462237057882217607827428660485424958032690676638701154121094026920698133674385117167086700884355047570019779878367988826655139533708933202158116459750442439782778207575173582879295540477072513816894729040247949835847640111926622518606893322226015285730788005541042371811659256880846035023445882243926208407832897107874075665473808238777489910563697580099643468533390154207445410178532716280472536461992066482011522783781605230847499653911003615215266033231964617313659866528082213407199346302799572619716030259341186204152331321857316431522866826348940030655713349523186747330397523775507553033302309127193789906994644972496127735886947231540895118902054628467040716788352134399619495720556254989255224727651211833740920478976602704253823194761023505896314648063599046652077039481892650710378774731794792769830057653275024229779561831346131934909041415733331715209424610379871925388241470092234478349909436713355117989709739548619250102047851221281629208097201247979247116131585384160819935186443170736919608427065520465724877610622953871518145166605480757192065314112722537857728128949797430015615302584408314775500462737309326163926585401489506967151070437258034632901051823897187957595117411493110923033670350126999295850736283590665187934025750391277023522091093474131976558739398846663264410474224968198726451145749814909810104339444113432788338425896906966893367617973476522199993252290542815738455436205213354540799243618724761763103327059455255394785783991595497999033203649130465972903987801228254180492697780323297814015352450883213112305491780592847367616402757672555392438590782529327952684959079519594806157571189897815829595662787578655063611369627966718989910725225337001379693896902791412331899713770590999090337168345856237624785705690613736546644866191697091572492388319844758178224432444895710202647442837721171387376365125659730582490680788225231926918168529660553113561370592791584847655678611574860715291816730989611129834820881923812594511581977474399675802896433924840753659608791479727979044060480017301130689238199418847963924372458722940974893221419983889966336922103448399236949119543789251705641522712566589947172086329753883896534478746110986671186328883689431733466926140312133138049251241526912726330071251320727593470678077603215929062085946759931310900048920074337928540945907986435815805852467530998929128318294393447560493173635592865165336950082732796129860807948395973968048636168393862267536596186818703028252014473976634665440772361200891334348326283544090198096595408406014858368013427657431756697861140520601111430434489041407225833826729430822707124664342719500551240347504028373657988147906006392392779832640882002152177088086428108386368972383493278653909935247569895244549243910361350374518299524237431791602099584842654351217698079984018919961115055400469018031441686602441397824273534852015994755820076772457878490707665227146488762271403283292989786497709691971274038027660810590116045032950340863193882331953953020197339824771279031050268554004530760138077988707255118527858411648532681326035961876710292246815819737937280911983084707921606871650987233743297855270834662311634137558519894976049969624566387955184210749666465698868603743546650360824325973555611495585072839359424219250508472642287802003912259093099945520766270445897367163708413772349513887691553011714687406800584888791880548189778012442646067585119609124152627864334063624449542991502665328929258975548014649413075681574154783070743266676112651623624541000393358892680923298286435073638186085615895248633589141690433086282528700882965733818807321117960145767959965626327834601375221615078626698299155798062353948010561542230326337977714748709678590074384382465294041056387887095676862663985662956218992746287277679715987396376335642614533834815456802767569034181675552308074886118227452050643082091974079819795317696825266004686658467327477177736571171074611344415266546785559320214850717946719773256451790059742288453639058275048161341501190339428095626068807293983557311206693590517284432851724979560933303612159912178700538013513057033206475112664658538151777766368750522534085485014810919224705011121349496058089983586467608564590424612165703225150396308604514243478356266024223277383089323746214409819675487318020609519783704758105825130638709055764083561208658332753313887674312182533709610864001527193941485119023704136939946373538989883607944169285728054657502132861973997231374715309911421598453308773705780371278753233828175324062715809066639171219671619120662781415790326375467493160887471988347819779775708625399626957782408297983832006860173743843450762785939047966035263638441778703320433044549148530448328618573460447420152471244835680002809760654832473067311720633573066607625193291883610379917010980917405531626506659053219679365989797065191151685496626377791644345470395001385174274617821059496658702729637293805602278470703613161829952557933581100125605523759744136554975330502262238742483934927499763062459562280762169549959182743580025713901984591562498375600033263149910125214655773326995882337275414441719103875775879021433464169755439946981132733664035428089345721130542122835529514232559642045751714304263499455710095095084034123132443537631522570162071572765778241571456602201055675711042482578588988597062989060686333112615616176185346897627256347335564406936061818896145591744692713868200617865579193583161294017310836071613430762994035449735451718751206222967993540286580735886414355517621017318975073430455620755688927886003399726543443564607412732585698831093563006693497041808685743619239030653890051117114427918284693333114847464156467689675615922082302554922373104846881546545753911854800582209737066817217829435445879625099860878935690445402592211402589861711647735173262644379444974074897636932018990433510555838480825438412165399898709663869449416829209727163768217242193894019845727024121386266246544117082799761498538273136278915183218433017224274276335682488845420043275737316634645004828467363600815518247654335454446948057713795635518521705168092649214987885489896853563118077417164455013555431257325649536009580736927070483546780256393549450199076814178505781087553602496564997178634633910345265657794102576793541549601242024838705736541631828256909548191573189510486000823177165969588780306446959031876058530295830094859211097506542712903338189569369430881567867832131571041554256805188234815147682292386227358181163385162617008294484621736362684394166492080090737411371219552064835266475364417254516040748356227897756266193206798513917111860681301230291991330291197556677399494123182409673904919501200070950374371056363342097426838760800439881483834437526622048995885694185027078708752887740639882597734277111625387695002517177453353072964671587739887010702301239494968880582895451062953843041675980825398162506392564251070897286958153082379766794601462588819030673957700236423856448529075855595999364840442882879202335025819524664891067480899044553820208988867129206119690412325095677492717296921255648990409356673618172521674988114028333770152334530576786593649961603826874341599858772662614507086391161445473194887856875997173241641965789156823959181678171804212536878679860996692079554776850367467417564786961079358891334358738345858608222299089397533006079953239243169027884777253223305284726618104614846924508411229791911145372102892586741503660902969003749297310396679165216616148322877408874877426766369981643834999734633207960047002680124245241803259328579020648725014625286755660955378936823130969279419670352766885687208972733535554197917911831584768092313057034824292198582249320941736168303203026346280354316591717150003659726261089622256454751520213080929180094998740214685152545252503721059320216857822680603481502742293488085080770584892973932040100051595060503090281232592319026099552893581347584594482367179009612879961572338315574013671287203106369929988945762757417570946589408824056360591150853782661140684753931269679806845665590747799844313483155695096372121962983207135631627569000397491208435323979331035931429495502202638802194257094840703202903509113599562215727243904000625414284759590527347119268735809230363696690561293027571167285515642882437877201925155380868850367375674394300986300316691696367668306231849443692679265585303022266688085156883325710280714600863195508367087846977380323278850950977037215496648561827051667310072869326042796604589447870382669152066247856103754227038192263918821182215370224692634194886442941436628450167018212797408434650093390957302528530899703730154394702445902115245484607284578567824549129056310280177594086791910266744881712638494268820767018474682498100514304130199573484504438290874865481907158712768789377863248711373323607426595838599071296694941828531671732166447797633346793478591310094567951985173218522371001656949842673234284365069514207029169102894516931728102305331637318527727233593863436716225719828893940507332224220444639389363307775642937673001135332428550548205972252355265026626458690124158349052503352863359984339221690779139743361094439179108685371316028039335403241368637029956579729168788282477755141102348693600709145616368640786535218091702111275940170252668165337910364729999878026945334965058433645126247652454917302401563996856979391638820578016783444967529208757529630169587018343332248285729456614687010716277107475479055002741880579092568240515618500329900369583245451281500662754319572820119236250462514857437341751651541539343282310753651286901247638844479727976008752697105469331486762875043270958530544344452202529196135928249324303176482313423318427764554299044438127092929644093560625183613427455319545245977842205559005137155535861176780247553211753508677880688603588457710060579497307589034176175553078566319350183807864463857559439514305572786361402945828829848756120088582139087410968192322524510688355719009570454847809097382510365975917447003819494259126746162313471960518135552726075646444256244695337247173521927953735124002013174130534173210598829436745052110815820304306232610509456660412420161156708561531682222589093266830187284922280200718882267857774160830593748572011324112015085965730107751818281420415550708259946696258327436460892734795895862676523938515573705591895592422918648940827545177843921071921266837842916513066209230952535059604456731716747070461491129582302146942162291895592124467224038717718135622705461438600101999047258536486935420700522087742401768152751659897329757432715038163194076207783318668329338607261047588908414359246115425074799180603285670945526837319309645908418989787499418552022714654192151385876873344002139019133797631182867584388106793528843979374682105813365137238276848076837943160695981672728781176162747101484775597662095229030740050540728234781087569986657854413168275339231868190765335595688229770506315791216462036647282240969552152261362532288616240939124444125326255904908026287489777629661273053658636065958185108567431203178632272203654526274788565310913613875913542902070429403505706442612034937125163415404423645862924858293649136005501248708294550202402929126146755164680743539583467336374832779672106793808974775536374087023459243531754185791496418089665779565246299347405379261630468414577821350618042565497177232955128141792241885290440573673642945989556461279526919397813375513292090982527783253118458285363647911977619048462317442628747984688860162595104471074043475227054547787828086183441086327159657860170049449097052079548190378953054834061893959107222039365638481777090982593540336742467300546698973117613935444629752673002964699202214415838917205794497327318847931267792456001284178011382067422869798812546320652737337616082748390031546042708496825882373567447553101515930673305077533988722847352129656282152531278600989773367404333456988307506739613225065757805749755672218457884405531942246000859052326021410327349419001714435435398237897325400356982002792434662756699221144612049819325398284040891685767007726532297359069418965715408107350799428316799836247059723171643730493547110423896550876075205413144451362652232753348798900407619251924946727645879618498914808044771566543860333167022292248735187701072510470872336350495389229401938234571409101927261221922768572121589405440658518222749145072613685697767046947760439728267451873054264954408595102284669419851761954747320367078444006422712031005702907210072687687914331734508214963024899583052817933336744446414175209875362668702668352141519522297199647274133598897015841283436616389144820207109349089869261042515311970358935069804458197631946531178585884435507893757023009259835084157234162588618365594252083768950518581792179626646105483908625651831675864306415817555964216384468961145185961755665787491322705995250229310976654333601678514968662039024161156282178100157252552899773449439890204606419419428028641572948305199038815845521877921820910973229495611539127296336128032172493453233358932126756996146108441744178903412554544740137491137675451171635456705221275947223496280667811913580962384745982859505161340472203442993444178252727074125975201741430765460418359756019748200199037236429400155021721846453078444642336896261197870608959393129162079154148333406369291424454643816180645548001513566442158419814699564034519945382479010202828905191436519917976099237240127375994069313366466369394036410949103000181457872737094102120744491255849807855859689418295528838239459355355384141750692264818802160657334281646636206526372264427307471395016369682315712334407321415075195698197700778548130952205548692221099786982006504069170208964347710708961427445045317974510444625035445990525979372462946547060698783555604376449022860822716780922526160760746415678854735832185162269511512334671996414196604151405037467245618592095420254347405586804678278002605607843357582117133438984383336497020792112963200832144690075193750976054591053389371766120720235816786773982502033098008315909557516492459831554092253362777630433191029377741049007131874955820672509950948006166955212312512944171751540172642044572766390917076973452851347725601765232431299069235968739288419126212344427571076963938548634451020356670875939181153998329424758960521090093422828517793269196427524211496836766446187032207614742264757643279348626746755276955106265412753138017148738334269549505599829049319133986545093957931529831659066622070154937303322996012118528685469500410075793277739753380796175983787786784170032372025191491271866991289215879711077987450632974643905314185103406756242249117568048823990577781815979166093040841665409616190693051115448284744102202287488218392695155218532219288392061145297610535490655883574986955818422948621249862133482667298062889207967722949614337052808736808537346356773763149670607999099729802209383441989712145565037438122979765098512882307324904854933992960395580847243351334372621982799923079500846203916051590830361653264627343332377873655622194504906838181619352013299938254318140587374313211056848113735793139543923357363050795202243890221533209785031782602106750246004896755605680470005290052250966835806408614520365543550128699720583293360143737269600177057213939189905709815786659011803597823867391949522994490984689355322615875317037392972256229897025374467158734354787947647045051106765401547121964032377366830136857646774954874648164812837437976938157340836502961093009968370131738247127270333627982978696511376755749929857031286432547480525826664685501925420134072321507951115224709585639117735236406509140897858392036222212143240305011234755535501356787875681563373410473128208876373783526815358494428765514177047793325695836476945368259203215023492452710395261421646613271855848531367077727036935687518604051401261695520645625384850269760415227361803939146470831614010405558348573097339545829307661066332548948251680475879825215347067322554974390007270665999804781248610945468205019278007821790449308196356178798729799561122883892401557283816134434990302038259521105375601712640567968518657729774188550030217841480212213014495156315223133795691286056236693298806092324406227565413362323527460881687806631075158506988691508364250081657411834337531597775328735445334774074698669938090715779347003160553230257413332328527854769610732336023587038472803170271838639966906979552851428664553001894353521366942052405692710345244696222106646792846783554211739816354165396362495138863147488397229189278606483697368894020142607407854669130401862318567641866096563629002268184723036916357661239924626475020021667800803952799128931816713196661805194221997132742458675738888786440376315312880760601740863378405916068646042978947849655300241486651946670492196467806238434818420155516313737693719935141899266835188536938783170753960113690939589191551321792717909960061598361567605710595384414608905235756595538568082662671228698307656321014760917438322556996639184499540827457514559435252547830599245755135181090213581652823260662520627503617272281637544224837848465434126105115761751633953870661782936052370070214567094122526433153905760250631085515987920528006676590340876807298082110065512041200839603606837672508172362071052742425209828998785047196657936648972022086017384853110876179802607675138144805279704685312822296657417401678442469686198840401440482397378381033233185765384888642769608023322741330163648951199535314631981772118168253104549478970252675163781425526821392413895632057924667358767260297714610764648964286054328906860022141870270872573216960381226128152223075210793445223153593860291716200314409604387947881359750486801751782655061680929554991594165704779149209969527019788305919982602933782505405983915296027556097039242704465404571552327691981526187288175975204320684709069397220071165401804421144959123298687387004915943906400387418313877331441175273266129838477255026897745806476136017224266605091978438041351429577163369066671294025824010612187026594210151504086634368851060724569638886885745501394393680841116587783162404731567426269304919668093501663370131812831653607417098175671401151956202352433622317014999242164392957365049061301462090040987785202751153895409448594962678831346689933909304310793502089343110649677521771965256581827244638968609072593778803670854362047517899179822921472235313864879515496389893368511379655110678087646654423598700355352206573141532379994848807796444217854475803471644838004178735497269553696374854241842730176182771163068917242440395116454021459570678968527396093014352967479049560625411681558109065207254269147422407991677283246897945193929592980707013204296688968380277705374906191487068013707029873446848726925100418891183734648143303980856734392065224503101919061860592711103664932651985955048873469110492133542163609204666788806398065597472759452464295378387193193261685112824031887241378567107123964655031112222102573445900286417838111494170437961106867130825538790442728707224181279779693806701459287317939632629835732782638802119633870125847011541427740953598679462893016587865150481490046900468932491941862463105976655243839338560834486360210401332146258525845535816885964003858123101002994229272436561001734594898503263141883191360164626967889583968413107524511817829943130521032392008816517884499457487618843245044606211046250432867584003149555512263920677855338220666042791168184956274982830578024670745836370951344121297204498153006969949256069263706341906878616094322606079442624258534664989352392302984595610434601594598981895237638085861543577424961361659410623670399875576601444960562354026605877700903021758395953919653028500097822279469877564919351980795627983032257771622092569467880884686097735778497896746986775195393288593072535438316250869026693042491500732919274075159271521660048566174098713910529901796844692630782968167717750562853008618409981778671545799505506084293938497950774799829887259826996289792360549195669749915638016400602294756929928332687401753012368801468412092169930948394864268625966460570976430118509201054104861220567146009755772549995177784835856175893132434936159051184542692734125455201014211733337513528135381118626235536390793970265934563317319472453187137529355416744945495620756837061814064828936183688298198955184963461474721965047678382383917534660748558887066349669148078690063902121880054644073508448841073980188439953027105428992770294874952442252533989635597687499788700327071098098178712806984623777847030978258194476436943694774409010984497647716342932017383074414702820438433320933850046661558465085406563080704546541634417174890830657643549922006856649973330626345731805287984620269058188399504572400901997308876881328636436037043611764958370002646840491320018355995312237190424974997988756519304772634553765707958236143007793887414750655367705628142402367629216147676370131721979082916903838627345191971095261753805135968828069931473588522191986910151612000538631047181992116228959784183477985028100198950226394930805824110463231953317908638321038247790961917884363514146988706985316934865554471267508416495514198953857286227615063009683340696153335787253363448874053150423834023198558405768418194603863790014386491895206622269713233297335450247736809486647498813682729791099201480620498573187697493247331468252893415682195411723711280653583573312223182718284892531954984945482864370431448838388753936343487917964138996089830856900050074227655335048208638546251941843457575016423590748139410742206415980678016046686049393120853271105336618808509987405139831355625040565831191504465389867080080931387690914417388556018627930774294239796179239924701349103799378385188032923004710563184530785592193211041429812151451736978373688598936869336615232556308449890116115695238073363338977682630747600609906874509407569038628167478907649442463572405344390319933758627146192087742053792794282674059152871761635689708884305069759078658501860378744394137528476054508961161362228284452139214412249971518461804349636445183522851702005419270909763911989231902384772946921124860991572509223759435173377526439323520589619011094936928660405182378232070873596439828356134372255772620695799565076738316777544394556063255946156709668400984590792746389159445915615061355536771374521581730210702437354215729328275701815271186625276890062637602565828924012063590193522113995951748425899925199923355523062577690036947670101460187282381657677693536477109828093952342032816012072705923586194128046112770712550732690460177547886426419816890395053340787737021739362630719181911349093039377257615689802706749755928954985480130831456547102520215763462301751663390817916994716898382810755524802340190569185922200272462080760334953386197232832700234896219357466864875963254123166753254966987069880989091873256923430395710378466012579136310111383889448787868462796852462983464729409221889872734468190349587716656167997869393646330878991766573293857315161762939480584634877515051065824253676190505048888927805557023728804998110575651233293824057928598899707181124473217662284794123404807309678085359669936590982745125005877308249977339452814068619427780453546113750298471527457249802029524808877649562899240570972038825818879825731327623714148397560057935107039689923905757088327267174769082407189246073552764129697859877857986325364868183036016125131954170408818799649798344248905657749728410333539565640040359573047424939465902294233812702429156673856846443342792196088682035829887184102867926905246565992883794815134534257792541201487515815732930458107368430454452190932033296982812876179268194280762423463775107627162291140525226575435140735076307948571995372283200978833992404750823677356425371264215596880181616947837601221268394287062377441607315957361469583606464010795041807346761276606822348654126691629295613005187169101146007018354659886445907423005086273211495398861182842895038247941981381077660541854973258876713204781165176233155691767560170303044206463198582835347687100195056382566899053486029576994219666308474203718834734380074130219546791109778247353729819329307577281386627738377425252893118924771605914362215855543694650898413098022921215482870143858578134310059732815870422574227503490763904496945377018668212991900897099482938458498520908655187081083454068745798282109485494224847253625987013187558841567082331455539587524080223202045433400853774331725862378505456525291516424507539950024009762862617286644171343741268314686348087094875289390387139000392951927197102998470099328345619443760590935228324246244052319875612910968969914865814075909187209699913518286565624688821241373675508138461876183410395295865437924019001116633989083311188943815260558487582989243737312529892438901100477753732234827334312471228934500832075787194595400189151091013203757480418745024742586423978587959584323203009354311600694509108199536911095821970432735141821700329647290065222494249247050736422204258605206703576006367163072185308418640706044099288784005792592971326186250473385536955819649184244093133910283119481752228364256675822014535323541025294008999751196759410323187281903165575692157624301477986465629656202962231494988641229412058132023664501261571832613653052621731283391495017400989214306254073235609353344957707285494447014831099045028094414766961709757985870577583515092987503980918441483502088206212395726011401937977031467389933976651425625579978434609830871315900763817476097243490068697648863729107256486415301661969884133919806049105406459783620787119059746428150307556271913742567725203489002935785948512223351115355661656218307548188572009991090793272273065303578396002261842777327094555215514404113899501554252483229087995712026320809037159708953078416847277784575880277118407174390243426057692436101821130847483015576712570683354778965414490282334630617751374305422350905416053241645015496932683713445339438140030293845478796863301113691917395049387841323747857898208388364172983877459968479015457335438909185716273952758215262345608167333018710952900647641297039172589597830748845751067773749069409575621194626501991986951705095568439518540537515051252374155486551211812083079093227789186639693544954974093394083890982617308213084833415282768530749921984426353294481012366370360571552753969010324790097149850671828214068971840852058490937954538766266889492147232540472041263379977393563214832391561688759692051914395528973112200729898690064321557211686934744878608136885133805318624461191777583416335054717063621582312223894718524995333398837879861292426388177821331542581562373968778593856633557303123373806432050959980922709961607354214494412930549937924924303222212468521784320498241758952119028330141826632479198013877860958554394933596003466091456954192223579336524259480647852707263536988326072375417563751146955396069270432242716201081949432953876303277247068595942640726388970862226861795588027222787929362096517661800009232970237270808977222879392952735359249722438273629108190559123853604332848229959992682785959900723764436397667787277132299643496037833484521535119397830969688769223084964965253964655295078836027425055267408712882509385179572502013922592707454165995283699446007912295876491081173205162977308325706812058618066047093245760345139257286831623336666926542029548393980109276429661770644337205263424899704976168465937973211616740233774855598912207844133970985889824205548335157480909787784031527931725722093215175560743256091172969103098437079583064193101315067843318480269267569989793781395616053755813647941281933426189590767492764136377850098744154103446863960040354475391381451785352493728010530325038059373864353518479661698016725431165399548491333147057400380535618621470712645142505523858783979333266123328712032305916650377500159460837154734388595630153018574025738839365099213831719075840131550437216394223185326443597514353558294143275944101751577571624492025855358478308121834869398375852164055304314865125925876895661152204846863363715436234445403869902836465994027390922365953285691207574407941614560200100517061428857385703021372034448416311570451375679314380139115691013984001440408324270697815998955090638321607173639171296289271301698530777354608493983462927164778891933494093548709531556828346543346135994175747368724695878147098066148582742669453529005414204623264154600915166743830919935656893894252336482995397762851768875883063249513547844606007904267779756176423704731918124234667963220633982322119550370815436747621205171904749350946141672387512651928154114458648054704609969072577955236075497447514455622922797492833990691084486640740361585376902049314232987284492154467546040532728468170368975916657393524733578836765673217743428185376862222704471107157846264806755163695061321440509662357692830920237855417782481890394867477583455444078974170092114263126489670450945019337763378749655794366381571841371666909892060942409252872250819059916204466331007304548173405918635802910135366956847508584243657157785498927552533841646336136118021422882434172756071843083198116399832214108609814321880048794483474841551599545665836563674895360010785397970479182025530431490799291009289633693642779753250394693466774200053609424522510835872593153783329797321036011483531748511746152512494803435606988251162301860534116736139390852482591225511841803826304070293086463495203461743976082606246118410197262198204228927399474962502096931669915899137249586548778357585509481749412165987118126080153715627552546332547105220407746503028608153701317827177512410862193036536181036270262579967851839705183421715582528081772946532489946106950760520214945579166489473842369322980979066377904978357391866087065545536863147393797725623818001465133601781455471308670627900123552841286201054882269632041174460654813432571668673504060038843389924918038907862226960417448634709199125642807010389212489103714717146117058593364859471129048036566625864628842158102427628445641278429055102990719851306799345270521001348470705320364125079962758585556147036853256270469181785779288391011756350736872737117548611669511119550503032963802783625400782259564423963049912151438818455200194729907165288099430239393734958643305503428609962834715485335986362892076173412921719499062512085517634434403332931534986779429039643477328096191778241608322745213048976219142478144902346399674648729038654438192276843413737357124706726669683567407032000902008426369876828593605944722334795305990128668817385597813994437410471976995600223972966185866692074768307039131427942496004557647214052448375985588871623851830909438874809031858002937016423626272041793014689280899647157340535501898500173496651773570823322166481084276993531932736551483009708241575533369437384130140753153670371227584520536793600579579689304861827230416605371855306259449058137835361329731074882956876408084355312049081315650659756270953351839221411814994292222251281422875795437575945484825187383012805279817535314695797227215275304317543809184006675729610767757306109875353029374950176422035727264506052399334468119619398107699338867668122837335857358474880887799610745946926180446535466147113448717972939363166774559271252554470634915239077915608916663784886622355184824532710683318030060168487012174349942321326444128909804162282936456678644438003053396706833180025929017604574194930771751043234646992591640988421780405103622963130150203955564625528070620382487133050175976644508365816209312917607106169774299450859052518919878650723240456574257978938541816084466125925506469282434804798171424497330724817890059890210153132293791933467290608020439668700434382308804535905910726015570792429375522146575950890910824318781565143059433269273349295055172997536250649466180522463655191651444203165794064935570102554403279827355874220855945625924617489392608740742122436279026790293154301229495966909375504857104140248639344989934848401560022235739171502750333641173242214148678147872925407624554175236171712131803752757033688805921756125345167236686609365743570386454858949282959517303172763990530078470997370129209356812420653073264413876163767309259852217996053411220188658891093167921780412163961205155317203797933363789210853088894941987295217483376337237491960650018153848501756980960660086734977290477611531417292477426772024826796989105894993068417310642655771823632773119148595915782015119066869942505056677478810747012701908283799382701325701956993059557695192891209281841197861524683260082006722553958107416836032679254099087506333664837034346572241843234396639493150196832148801220738530493185193644573233015972582331207635136615864740299198763209137654505657368529655737498375410276459299728722349867961775884524450123070998876426764079973773057262913391656170473511705705786082583962631419562112640490960677763159869556261828959473030189064971129023167643610619607370672955488875364794200873891916304781041913497124763899864039906919989016803846285082869270648285483605012248523933153737525606974662848843366040057802048609240748726846728314437464667096660776261275282248931932914588162513554326691355232764596717106842174963628582770668240356895740094742157054058576999460065960809337747108598795882832167113110927853861425678617158170209680005257694200597320200230202093665244188989253069523456721299446754696216450119387092836427060557051751898460775679206786222777826386554144996460056504972543006651891527049440229314863839872008756816604568610912316268865764544523633746933745791312524085635819023862589046765760853356322306256479185939515703094826267105853023502686790231668140223977910913955757527544464794267610788888413000357598291043568167536735899071706889616377187357306270273014262315568813575910870409826580798686294847160168747073545287349456658942672078869507706516375292540720476646135962108287814510005951787981271577268424529654132808832851754942009432142851238119484047819209397829912252051200339059991363434304519551571722051485311820104859391264427547805191026320312260095274783914898147057319708679328070615620727962014865212379433282009073409492500083141773373824925447600554829824411592336778155744603230311731834810649331934885004790761828729631163363935698270368363587285975978444914946083648807838263190819793972875879556977613504472089665031246377792218555942059765611029801630719810948359352145653689420426172472685861674249251831085423495701210410812586728593156014849813101646827407452885872772836383142615893426606523610795770302110500391065074849642516231275445213800754321490542272607758993396277511042421016861058681626355185673227988567198212578698810047024273579183925029426543123073350616544802044670923022863115559498938075205939663546489219717595965056521381886701509108044633570824393233291803261990503515000047563586833473852516305729700313923206220414022255622473799369858829259351355643171812932156575730578586746736575805901469817166706514554288923161973696512883904415898648925675277482111860805630886983584887503333988015303678495116501792163548747524698939536206004006608985135104462495136872473474351895420860419575645804070319697665650743497499847608321124291461438792223625572404123013908784853185087316377326703855588874703243029627301173121396128124015364162474378858588516070949271122907516909266738754767777392091716835540379236793130894058968004453718887136125707403780643349694005360116525904542570210012455754684912985073092597290692063215227350773396485221805864451905724020071799600258856543865391616458471683733960484281584900545358836463798642263015430528085307573206686106106128557014916671391303207749115610648362988631017872581108205720818831474037512407637574269088091910659172967241733413432315652699438560633479337800930140540326082649397153827283093930252577422337481842927739909983959855874835356285589284172688143100576841229428235580260061468527803595414900738468209352897682346706082793650187536853587623320616048440865560417071894627221973976785160523736751668628088110993530815943336884139498374187296432966811194551582375945935895115048424228353916092863685271729372696673922498830045147333713427026681173905781394718097698347164342882512647463707726256218729801150563729055704130041323802993886811475045934148916709559845882832798287579213101581929140424097893535257350764582520113683708677951412750120329946628095190107661332342539321371802000321530271162950000752337666524235173684274694834909268722746341470879625349116858635408307832699493784558844910298651137436714874930356242732239330255249478319551158695320890131425013880568944878380994545775810662879539256672546582719832251028252282101731239960968636091846103057997887385814665251286578709176483836142019149912525160634110417854309700995666582980363702146508721185130132642386604877839063264323264373738117904529965255240593363622817447665748973319712256722797055134224001976908165182937487793614919075369630822762366379816243546149594898390921440616757352338947779185775790733360056254261437940910686398813703245698847073478311480878027975585391261088855949046624570422334335043155281987850476761252436509605611771332432362825166206113118531473017544979133927671757149827180428825502628232867657473540802234159359305750734535875220435767811087706767548280548265460582428986636031717548302749423314199547295857762603085203252470458370206282758264976656935312410693368032802834863856037959725796916261065622680374505873518471664058432149251920902271216604733000460879797202050301084949706642427941137616298398581724517550044230318065304648809428652405375198445709201959982409653258983746571167380901137410579878098221815392462611463434431187746744803878325720981881632267989195324243653085577471163987458468108795770506764979372348961407298196418458716054835759268937359756929950873967864746872938319847664350218174531075792519174785331083718923439413600437121390042595911638529732627327867708776687675879120537399511217806769745837510090834168452852630334835530338077730407426119052459704681114474930924797239844450237790853557292301794565021707297618139117412976909018553644543221039813615152133536802135979916558988501337424547248990131574570802566806444545010841402271267495363560566806005295341994192982314984303061936084334857682093066977729407599533483980461658104450257644658283741682234066411455270968109460985938047160386404751024371749960571883236128293011501307754661808967249616954841457293583444649587416767749328522625604461329511448428970107044852216185274934150222820461936118643288224728593666086502498027083716317099816927198722820080338566143920352550514978589461842037879433044195215142764412812220290981271601114812816846282142553997440588414383093184108585942086235315202734761225646907356631210997866660447102134165702539869873453454125085495049681259927314136148306025931618943462371422220077973438110343714842725796955671627735178654861031513869237353298357480288092638799895016673684778439352320809528222274290715300415660692788063248513718865199024949035247805760214971618153500194399564157379482939758488988949040983267948184525873516949806660174703646443584618711588728143614502844623063878676313951203723097013578387286145705383250723773326408298919855179203758138302425590313408078069006251403117787311127388550879709727068205817336421032844472667765291561801728489479257223750476064845609029483005844539949756585579866462972326459813577598255194518046560033691915217846844926293885161995507126147573440018131680411959931687439516764852226677453353953848912998976000329071375439869234903090682682232923007291041895278947963368560032984966236882215823226454328409628053433305564989963196874294283654949461543546373740553295844263583523117761325087023192663910566028586128031396386937708196366298812313060824621480784163252135814209393070613152698404965046947918443616169614723224731156190231711936221810947411257578827125198357739397588583855905260035054313768467916031964280262575060068896025166883809583790607991451298620741704120890574575878786776674608468302746872200305355298110652266687581324428802807577180245909640567752359699844817335093727687242016605197267347156846905113266282048072562615134452111283131478776159967922426206594962232199241513253284587292009066370796930438344417243651174481573460843171208589901772125237561611291252627637423409517252419547735075875546889197738994873019705003119567815410894848594696235399268972852149947305255653894541119209002998005168319537037457033204909228037736623389102577716345687994732957054887541906464505546082327151842426299173772013904248582033663417375615023388072306180823017355499634881488381093925090096345770255336096685481134737458078410157579121102530208446741269806604390784301338232823473834917334529037607155295562551688532641391319614016210769967283566460427572210033672012368940643279282787267668529826889124766270477839307879957538147840495309303327973485920413688188368100265690332508285271767128310621991749182802553007958149939438998788126252892856260065168675725641657218700207877947396423350372589443151459527251230665226949368838307051940317070235179570556584924507164385344733874811705481316525148319499695998668044779918888095493256288521580685305064929424762464007330331402366759685549775739057835664546035752481219439204460288947092459108162632780250310174066520539584284939269974113311944088499856828126812935021202224977195497130095774597542609680749210586374951937686254552796611588939543505062651684032931964373836209281326252654670506518810946151401773324074537709963894554533562004155500840166508511905094692132635448210339023059437304795969027292010766514966598097521908980217173673598571035737660459129971136081482535627129949601009045535017247761483368063736412076299044402494891082643359361636726527945983978032288667097887626064717286363266202795038381771540160938634773674282309337214891432372459013326381499944524572009651266078224101074663847798831570693520147326554639403281546462005490322506056444425160974996559461324953500854219376501829252555271229386106571720423720784894709515813807079445275564128408400660680567743491012316061839442762740197142133965297705039292475593209620206667457260350022531249152935768187401183437395822716897335384282250078773907526814204991893248362340869661466319159009287995811521884859490961945717517362687150615074316286457120724472036650925239408106634924823381986122487834430130337389712640134770983679639434706653550963818190977479859123042324103015263235817053975212617669016936200114611000211228379264534427669453442360061013315273581205007492494538032678352232052218738082935052412675271469677587485160933885126938861708264397970638340794571421120086374327685887387845859597440455624897563319865899471179151823478658455550569728016986699584902078045762467224969724613807109334096019034945554343393138513318902979969660705502224749821618546459228976808902205436263899475825455780086195848177811271371184949548985855550211970388827401615213844807533282568413519190275545805044692020168075564321687695190509677469317557531133984062328047902815396563260629020306927105490000992621674816051673192307720595285838247139974164586310736286032937200707570595609716291120853630157233011597473430760781515737298948084899647949571467312148952233471448684997199033466719871031503904089631665552061809339735415613737948056201860598565142021327465872599478635504675175108630797848930598044924859932341337219962021605356067236963572051937157357912704717304663569007859497149361980036475180876282688120909734879669655915808205236042409097638879584435658600486488042290012608410379049788616448948652019763755168494793832491894842699308700465891013573608375262001142502789764195017971992493815894830103652174657232292576012950615666461210558710606234515516997568591614178924875246242915786894407195331546156368418615602285694368760398360301191819698064867184346458345124808641000349448534758036880184632891818664911261429482297437985704446434233375637834923646713678392738103186963125131483984016270996210042788405868860119649756749577429339046393223527321103049057486746615458381499736539270003054404320497587805206937432947475782142605402310941777908597117456237503176591190981765931219016855808367518180911966778078232243798037513305118734114698132115887749499649057775959554363771249074748095001258358848382245689245833496421293805340949168318355330864485912571081139448627351628854814107567437821083307429348226662341895001394546473882499398428544449718593265272768184027196214176630973053479950011364468797264818226189579412281286700868301542186602058453731749482260821531311822474117266224221496955090721583717806231978732708446874699356570273782150385541274134050510517211940162299335386478316517176711583017254078210140640821066452674577249275531022435675796496594772330489932868878048991477210249116314647053400108966434362220851086575614426698459701523220852326947383219089639010328439339239989964567906521603763272756261837675569899877354659827279210117054522509403920296832083580635994781927269690218640915652173152665983341211674254748902812966357180563582182313436877130231441166418275246232297052988580925657477834554088307943234053337755065641748332156357389629029133746427636514701999371560268145521937108254890941414100241546049724995616182911133904131585509929481196070909155716783953667749703701431184625882513135770953838933498090377719723756695748678661049696817839714199839828655593552791448652149687263277115206684726331656919817556425499210854456483813566731917439953536697894654157489514019569411967649806138307280092435882782737163410474735916783250741181946355631727927255013890989722439882934204662536099331287709504114359668274716089270820848610690848984019139629275921114632150741654509908825911114928010090763350156140817489941406351382086078584208636179304035950117631041898924254010158395097294621575373051589261062516966291096402593333515338522193267146635781449416030955549820647515006659110725372365867998515539353743287860357741431491735299337625668680522037288954275941868036509300864046084809569758189055941608380387376769602655976978006243380840468004528225611229622878492681871580545682222439396290776945962896373580456978168350154558134376753253244556297538430181474924604132187188198060141815435951180867575365992729192203911022168269366990469744026097704939465699076949385205393860875140265679348575657830372510052485989741643888698283707217767299273204643576638284293377160858370660749529915359492957606789999596136016099408959455604350827350642962819889099110274654334882308337987533454844743594978266298787290528041391217139735606392157260331662694932651276283157988609042044846994239345237282388585015181571128341411933932713686507536829525655973080879182442255967922028415401817650967969128655891361744730561719730221543760163753023888717068734955997145559175403859981124891652570083000157320356204773661541173784621537039405075773677563578075153989834025521922048595966369640040827696077184027801004012067910739824770994458936716052734610894885846171081547307223384405095387062359974705107209902243639008795809506493597756010936974126495392479580024123530724434530739311351865735142276673834523007423907168562167083350750910955997813513214576557498553533653026427107144682244663489384954249771234215032230252099636311900099479067936614799820557588614421853014248384787394701185637874170198889790420215042417659846782910992208418940427798833202503454188104533717941525210716330926160987025274264414491627708114300222140019210469305187694524659156651992648925837210194597851020246640125218216054444326444949247498985595723644914909230491374856133659953920910864446140196686774341195898924445891176665877825443702832902128232426991521670793670278961945585009979874624078104094513391183485498510205762693180376587212492351805379379887908201391658508120703854417633864940537185462052324143640849533778685722996198867591582982462894395818789680992221147813484122889709003105815964194695620313949336250946967747361731951746627761157283896799564889578594026312381855133702944164337711973887398394616142812692294419063244788978844908203653893594747699101514798485946635176263241024300873257635754750018592069208685662318620687611366656434240206264045809464412275592735104676009176589585407966941861100883553612627068806493482659829022505822853221219171745656556116380922323625597269662724034502381093221957353210111605040153404300086751140022099220313426756496055033707800782507352801020632742117738231817238726461699523011765315645322484832680356560283175670193557204286216027623543855665510337205207047175946149366271376923963693429104977759866360970353951495737195083090422903656227755272378301508193598463534102436865287617358449276007956581217456286392041407457444178960538934378484095877060550607273280134821458676176291866680235844715410027860352764014584747580744332135804691987730361982422286793892952474823066583859439528779118103045513816148028755562221937182122581058208929588823195020478731830821024280414029391622123647866846653335036477152153205907208490826488343947445218899946557310634543493274472093831353344779344852224973177828586139326968201455189655887210221747781726052475183089173453985206432529439382168906924316595453674319677593973480770291530756832998098609976642216030777123741814471639903608389553137728479823517674063654772381348909521401535010379846850985395760768035223250364514548553544060351303332723028598836832951513580674333399898259207164191436729535611599780101241461188895049869111404505799327138077658852621372415591446047053845544027514494123472242814264033766652511721764198845559855192412108355658162583606673248757177073524309256845724744637664196686006506661198235720370682064697977794295877511833536137845566036081034640428288162249715670753182237195513421268604419223614335279386245062888363083275724870752410812579086652881864134393633814639474566406434528728067154962762069513588734578575122162666200105459242909921889394199043936552627719735634802901219982866077791136111518794471085777061327515824956747403612949685652252385478264639647748213345076888639449611339606780042380013015202285834452210571434721871716530739767012016200681062563335211276493553578696593880649028243677876986189496296366667231887930258374271328392544119726231579217399739659214307110631534299971811412091331132843832939434913994433553935525803775182166683569309427240852424771869340369196412973785152442222219211568437250748221319958002943280561066719452165188251238564577590336624840258142703929696840915147032525667276197498833752562138428350035823276940530680907219918108024572804017566127492031437258743527704308158714764195678132918719887389392541290976309778118716675472798649345075887858098138702051510940157771368635268315496157605243752594146017732373711112879054308672776045604328888260075956671700443245657379353799099176941123332186978523151433745464770861359328221757764011327177549133691818904861534124837825005094265350300072092638370671100821483735104947237901102665451067115007999929514449474385373382636947267103570845918330309656237132899932624408712104304164040953697787697606202124913032848819603668561057707878050825264182626269114756643763705417544389168129929689093643583906315444682202459874612084100015746601985913894781944072946322435042198481159286190734604072225410310095392554023980995519983437425934825372958298010051225003643721959719120813864254037403900101709903489633742906727531658538156928335683953492891999828922694703237734470016921645202293605191383608167850015855303230976314549038606743542139464417878886258517109225024571060689855860880946270981141982911883494866063995266473318376183324723754015904454004020400138070802287759064886914025715148746272303928126611581178916244525851021552777423669428869750179677628958033119411844076512036865655965038617619104810156656153003443467747621245627352214656655590777985701913192156381029583780214755704504422359756504224311873037003079033357783337196209718049374681276399834362952559048983054838440310744544497989177005745825738410455785761280719342642554984847123455910362357626893718865384858245333863321768491718935474193347463589722030848259535972779502712313906696383525279180162379776726358919895514363891171239506815682708668984687944022232388095402146375487434329404183454841824113868189028282677455703569273980798351037011040891878979554643504332215641917433164443662117238096456220772027429639721391536111381963614800919359166542685488505665511184343328703710331951031189014401732037682133829305485964392553486627556946659951212317757263347834029148107019364809651770072289319476645732505059990668592216220993114144786628711830882245915246398285621329378823459442802208557996875266355549978655414093099900517741722848703190646766916301419011261716339261543526736594086112758655584259559549913378160021516973504644625522247675499459679666503076899838134478565096573351532766668889391810801322270435449775883841027690606264030190968186796267980443431834854308200563827807637246540718472269755387635992176648128085489242879216091366849766687574246525922673903468883413477112531910310530294923279049963267038254406389347217672182634658706187061129114392731977302329490578554840062952784136474930917356096623763603351246185615661570084770431064686515235083307375923367388740909353231192640613070881717831681695032112856678156211208202475610477996780499383476338466335980764495958018855757052485701555752826492759594984186873117757134186931949781071744353101465125158798411272416714483597980339795381109312500937613893593070880242723676788924021084117178923952909827884032155800764384560544466327747861936237835429881690786317279219551652094199030574228888106666292484789986948889242317579148922582190286825088226918579696652191951604819666919920810141717272685840345872440214883599527278914754276281279721897137364029187975732653203113525397112221900168643926230053841529092580724101353010239742450070896887789279341110683120873205853697271234836890591771858624346985052139061614177892786805520492762249646647220684374040379118625920588472791595215573332213695128730083609482357513448551205302385223184085052347057307038820655576222727216148809347430312366579515884655506181804377623108188662471628724707751690324898839446341320951968711606646244915648810560028889955406835881207193662619310045230438035153049274798616174350938843295925380264517318990695829779271528859504997591502272458766679540845631034233077837794250141918376900700847563014106995690740286160272409898992990417956133927863244792352207178457341074959721859137520071688082335433512224217951203288753330972123609798828688202607837012492038009674842369278935313783987440378280303931590531444857155967427084430097310919517110776657078601860095303692508958934785190585349008448691070848993005171467091533106630028134161106604809444027960896635085506352328792661874100302522408983016358920500242548820649504234858118915658655895598061767981778393038200473853030947163742857678732400775180789414476601471496316265650262070130736796556181755152430753626236529523565055821428870529090430003650422542900909074417892878162533435079225378623820265479316149716312060571810777019519718612820033863272640678653497392838788940026645075743993061204731091721343994838717519400268563386432967197407560256114955340028743806224021472354802115902720980219115248263915539928359988475212613782307431161007741237425732042293561089705354749184941241339030349579714875463498567494184993201255857629755165213846230430603623310970099940896462642928744058201006125989125605133750504679375800725410044397254767085552642630724915280561045647449775687628665006248837926214417562523379504727282548361953095238516506453175878137699490008005629973243028809255798762923474873416720883058326612493460465895541398785623829899282225542222245442077156405804360690639907314017656680538814643134469667246318830272952835473852195844990544696110369685301258083204033975632082656261750016803518466553542744640533815209062756830552141282195999067630569809421823009557470678331057012916685250998532982241515248491941679612629001472970730122128166551695883110553480610253088916090835371497349491069977394906239026450241463019790464012954756520840216330308033513880563179689659174121866222759487721583897913121139254844139285528212278309619770432707779008526073803074571182387787367569384710880933989041752170044475744059606030091829693105210624150603176755418899096861523883173346446875257744326931520322225639587835150121078420743741875062221494585040094190601056442219814145418430039942963161429959656993873069143544596517137099586097946653631547021898079404146653451018457683602730344251470523429504974028014631002622886105122395319006570802177477964701921427961592245771610325408299707571051088309903173217475204135069983103961120728655439864586607299419933327915995630943286060667122750527179242289658995019413617292740218223140944784347589553548362698346212685540868903767296161934799551363656869813106313765577801963789364220508997203609242387197714852729496953740700943671335989344749238334903130142549499137425386489151495193995620007659909801741006431756316000290996125047934606216024367725575215229672745364160681379210309713597546555939594085257282456373183529942414944926157807852598055762295342601031707039995220334265241992046846079134730095783030578307458515589145027009919649505356754337432764611450006894250678540913870256445640513845873746986072527346763225563524319329313921566683989270674167355015151906808386655245988669602082286524255333061317910583620199132989734531175605348255338460876094310485885946077611366421791263863910285339326342261081026753697452323519996451672642373058096822671377682514289287096112343718041978602072432973458102912937360673038551649876182973121983850713605738961218634975303046912040449218637455012227565040661457319907366410530947098742003317977855706376302599250799859510787673473970602590969810939254914915963308042838634301371481207755303762352389752741857720749574972829520472862737016996088604271837727044491573510970110186240755275313030875411930740955349717598554707852066729012740371006815112674116514622288698940246925428147597463747412324348521682637750796617462321121761389805534816275760352164118907469580050014752512579034397138569991275771503616954263647632561863110161823972335432098578768902581173254378954061710052698469397029321777440364189166505581335288194782501072637765106575297438184672359488400634363293417477792337325950337648322380797162506153033277294935385529280147522705517303663358397390250507935499353942754069842616777404960240532602051296397366039964913040207709167180034635604132049940078962606470426108258323622431632086087617970629720015736010982651852545978791794362708384440498801204415159170474143899362549128083872390503853773301211446909882247776358395081769751628217772418220353312184822089955362746668738793894119040019811969941413867076606313406034592103660128598657375366115900651826371758414315693089802713192820248307008670080595675050240806485457842625789077313917200839928498682990846082836627863775621622624261830463224302964517010296054387567058486193771119948365980985971674635088847296023166741215689972382268446690472105142839927254761167550610436114802828628380896219376661546323739295476652776274382685545846865132080333497678498967477218422824571478074630403199448108495882677681280045751662808867980305644801239007490090839216441253782213741232794588737520128761502134874396643177822963353080399630962377221122038692332028966937164897122022322931297359929412026241340294901756961949665824412865354844898272473664499285729773529621755570906149515269718642462616957104248968168388419089885866924539924304189178670793356292040306021591499478726714179214605074638650513161442579592494679038491320822418229940291438474990643816388521161232438702416980056909946739916438901871932680615337970465400538010074251521443002212509331198120888319548672774638684990560867639098673051785384214917508222725811574823461154343703715386333225389689922831401566803490063665965780397382702537930269294564563684386485583678342464862503237593698433409251144468580413253014109068471058644630656117429377731780502695042977827641806125202196293360580485710419154812868112072506523947433491647849949409072213622639323657988839426680034303825456981892707752724978721883116420141277927349723412141949669225898925991692789017338455839379196368538667791736879605108686418632893426802652219204057965026404163952747510740802153646224286287092893001335332198640219300223080697613549183051815508683299662251997948664989693238207361475246000455844031912994794922013305967265191500121140362901651431204682823645122774398249190051950727153970594443319922695206031961176064315987876012443444208092814151129172985559564772354046338009888663868797891626907495594906814905176038194650690211586622463897141905082864343649119332403358207861548798135363444188026895044834755954687099149267927165085642089726307891794326737928071468598028392806048460418507304665230356686741962827455216795036548403971514074282022001337935397051638229009996015858541836720721567199883380641115695536917612053288358772805112590830715756617044872617016642721195848035703062786667921400734759218992847170083794126431271249653816327837274321853047929111339524634059046873234101466635424261570438166298298261522737540862888427106025624100036173553000377748756285884391985103752376601161828209678122230171767088525828268046424659830635424703163380559543129071284063810089610402912338362652336857684123834585330214525412009789888832778639859003938954890482232186512035996658184064993587453611069948989867162796593884949142942768740260845190576449262313674116904916986922533265617801599411456756722774381581659435040299348065489406001641305090202347321107996658327388761969995891888169131186139584590587331463261240804771849280541129085788342135988888858369602183241290560806146679430416330552093362668524495726583719184876796048025001544578317317734886138819919784688009685636209149278344325787333439235154517582822094692673343365032128630408730067814899752848108428814723895131441377004076863704638486907417681106140595200346565542932543938436018812984378035287609850201084946414390084260567293797372213717417817774294646635588614451150981399018755702701594398175946462351861742977414781073186350707561697058671848419932700349039978144990010442990070258644669510111580732510928555519064531446682202859771449177141992445330835214007330761879415416614624977523707017207935990775450831190690828865135898941517234170127519203898787725382202050555337537258033284402224620148153165925766232599652948182933286777970368491249220523183937565400616090505974492391786627132878819417766415657228715549965655583452550339166770729653498822570216054484944467101183741544933505833263578850827492326552612177146100253275592913226671016691650385408962613834255626953489366128951721559165126793710464545959523461289243697542616188057538543352213440044870183903980923658204180755059305616003887092894846844023374386625392040986669930368713847892998609982003531458351304028207321605155832522702281522262979185088285993054853218186325658040399697136977939571118915890988753719845782474431608678862349202769846759649858992070465937758354908076830809541602858758367788824761697995066997100426161786793703181717367091605913146037511798894971220181583952775711276671683204646778164749477760096648519759848194754235499527744080827241230208217318695288127217635495740177713213437684285041647235327777693190684262302571835946318873245519606891013438421861978204361270115096847286099947668716526307209796533044906016178530775014222252891731453898023007396037754981009089570311013615707298554026163108767941743519495280373366777348095391868334859504215620911421382895336074489790580625010403873108463511472012072650911829739563508533980589741745342897063641679334405543845294821137637261888807804657426326432701907840821732171343610837537919105565304865459536354235487784957906108531307448596292115885277839646547878418423525071235798889111119849441716345488661528463989613065846742793999214114425528293260607129144951279655367401524950866081941366674889492023694494942370035290490199155112678363841289150887402349675400577863767103499124390250642259113433510663769270395511031744521619247221069952980677731912028902769690563093278271523333817960450324936937972729319173397754115594863660367720368625549953327448073614853317953250835727571836537565433920133346793458763885682550880969172622884487559897212049367134178899689219673309775066973371296430404121364241346127277253615913254669371686295750350824837902522995111672797308769954917441583449549433894021430153368115613423555961439642339024645307336427648576779946481677901332132892860962676623269502444265117078178893887372253158531597837354737091728387675236735584760808019093061427602415037029393080356512047109459036399288118904613467615470365152574487164670012810102442010960274151999771114735422205865890351671189948709900395678862681306194505519163456005861232314371694142244268856871964796401159554955148745494180020228750682498841664722075264860320123677310586509879181829870656160014964652888536504026104971751576398133694194524514214539636434483348084157965231664173365403236752517948060473702818377414245753577019412264004811560705668677189688432469867420506612006873478058926996880459496720543540995082747100082952804026723140579209514919959697128969252126782351529901651228503258179460253907061258359988455223460226830056190926664367512611501018642709034185677028259085209277707346391459686245409011019636779551282067872668841118005968717958909471283199961400970602922936467918907030132975758845422490873827709311901000269013296657928723122623232805127768356966655065061907326648861257918759967593136738600359142302801600974791642934856850336621963585529523243800067678898122065764398488965528388204451563554268205336492142827881900912131890904005625528346828785492140042627590098103933815410562842089755911547765632146766207729712666843772767970805271323233763932728879228760345646452554118592418180754554898260616423978873489710204536088306493480886869794499542293108974439106205380677045676923389782486211232908762214413491704036096449265648046526144679397742840040127493609240009952881271049695618039466969561302017668796012999336121706798027838698817138835299456093973486318181975205399496061383647707879372998074585585630555425293772496967294382419352725765743509626760255571000668823217684448536410143168545009006265567374391642534603313036902946469010314795367052892162954325355866687776233491410438642295476046278352027562818063741746268805726528489076761461004095936220550988895741943181878911736180529943113902769990515105597704392941213003976564416246988526774524013591028737963490388478737604300778620458576300253542145820418249064745486238293120498238998157086213250945254795776304396850156878111551643050087278916272196818789113958089983490451317179615735913241451222808695356302675710035214442686041851986820506783005729300400567276410347947908998558331686538240720037031437865335620362230751007297746067073018738124727520408493767275024096968818810329525894209279406013141477279874982460360931233646891475037533183684738631600113041033146630405611662237942827168994075690598028963002705888726228770127123687497428591931495489759587815013743022575622759252308612944044019447014657135351481389957138419747053084992662226985799626874310168706821297049326139766707521875179151249398096822751706593220337650871915801555131002358740292897290101104875270609694746292820821472611569519397753136408340906339901922794736664028632780913009028945088996084626556257252624316640890803911522001746323861378782797679357280278851274879541846990493278331163503532275097925100375751498871876687836639857175908140328146842625935513252725233341341383818277717527244648919796519003402895568017413906334774305437714560930370602011101423724190444461224892428525983232565720340756312116857385441979187862705484885873257974612069924341476500722216580782575964514100799647790315794001775188221717546529432217701566442549800487757510825699401802592051658825017331032666646848428149966453782898245076752078649325925246924486402867592208483847575646183835953339850237972328968347002834945967685636368846355381512661317592450440808556125005291315404545696204994559850902552635143889162351403721074382534543564612690922870773821663957067585915544180409946425617668916303572038204453798419859496705723398929026575370472429226979181144304471695596751379944679054631532588389217028903920555228452213314377893127403679299879717078179372448177615672867389371122105883574953091891007141935639119864115685330413619986162614866305125562482767062440714420955897909737620960679052743789115581224469029469983714511795560221618587603702672428274803740120310452685164839762941192379055803900382561593764886794592013562801070062470774521742602076450326396207583964788874539760816148638933191150563046971047805262168809047790499472600494758885999251803645788462918285259749303658700393549661089356529821349157444369640163655238500861282989853826555810002553612669590495110914016908926393227168930272947251997758653834775244689033728292907559490869233986097042357247005755695567371559348948137825841519927459109741335319864651410271697342433734315122184571254841829926620084178650177094535547414725793451500116798081844179298005327182861262203749809174053528242410567304869975870982385432726896350502440626758781486321503407901470714331078185402888353440257375936282439200583591006446801009909728246269517240728228834515579719034323503148252458518984819021185908464565292099954900167010654919156473771800481562579950845262340618266987354449327542870152876258526570372068981249334697663547279732738955886960535370113013138466328538247208583408341608074090549497352159214196384503305830193799776062365577521398056396248886024332293943522926244803004311298126773482504288313498712654335066742567391210261718501429760744078804913087409255291146372899083542636309707175688858749233349481100526026306543786847475673004005065617379575785740902015992414410212226276722369785114901593977499640491385007379443676915122305831327030903145126215128881704308758568781730863547759496799652563156517040501277168953667741542567038077081397406475000319650028124333316168884476857022540210384581376468451032338936354830271938456462209664454432713970384319185804061770553532077178981299885395018339881869021278258424076347171364272447087755233593468645596130035737781999715349318098733636970576018958390756130930169319807826710156194927391198606204894712839917128024134606801451187182156620831751777209863115367658207794609895941054234760919883549312143956121864078468517159618529968667733626025588646472180101923395792031229889363715963653788631148668179698548725536538938315091277889130968306678677306990678539905181438403858856610550133405817070932870904786866747768748912172248314721699631718549256154856365248486894849589043192516838414306843452544779038832941747630670405195050973237891667312904586911150699543916958484577172022830152316707411382684226157727412502043012856372771599694886508785660799019846576307862857969910382468579927330375037287272100199588238195900848286162420194611936195228997176366751020850831153422951497803895783234184459403967481975360615467496127514577512998519906601445221229044830902633761123110029470224467123041752393415720886810104540729580219435074459566865457980764341789309824015635013499310006901774597241150944374105001986181202111799105515688278345900450223059117154727268263059294964726177008966642377898932397441571710902414424632217728159340931141304698236864955917864364547524285844063442527816070811321906992036289712254761183925946239522019150334688716923265461962299842366612535522281596101621156338861114886833421809393900671919619639624122089802718048813392750761161150642787526351166005344476161451424162376353075092913077026271437875134993620008293573359893770819883398213468024817976039166595495280586493035059560569508743376644556216317827629052980031359429385220675860741726216755830478870095542461171842354118447444269955612952049124618448689022447185613851925476839241113410316263255876445875656558516467384589060747904537671206900954645931481382162464340733413981460695193246227290625377167340022182672494289671031653312190429904013577194210393278846745532214470759301700027510274780327199048196386603398975377508654444791351310995475177378082397936562154791885602782499123478061959480770914104202968782174322048620161395812511783417855414169577691354653427386519217202047986779895712711661092212471622341273062828388177250405950521769507147781170669134069614835512738845814799693838230068033359655323005359425240640435057950946517843370328374113040484436443781696344941783518833010709840643861893836465911988947656414935163048134997686564789797948526899722293702632518556283776441918696310963945611366971113783561782808869888872547509282027263643679415339611830739197858849679705466913885545783256142411237116189622801050725977505075726280920457927454829829611871778478632741113035050034279946963727704358866854312763963160766552594911683905332140676579694354339742994881308520566690739409153517981943845207176620176923196805589913290791315120873189977566166399405741579406749490166827137493866274815563377496168937323442501695284240637194874343634330727863228008923408867831118327800324365901225774718203667852059263395989004977218572070070862195220400360600971449382059747321299645585688776353557291912386257251983040560083150306333371924361573958431878589290498665141348193084880621032551577894262033529298013980031377096134671011041381030591473130035001054749709355675162778348254027463068897123891751345993276306033270291253862487822017214801323051113472631154528718797069155916519674324736517856726835232204919008908387198982467744864176269690332286906459462854605794129004579199293494205241868856697487373341516537143631241395150952205250108557360789114051572824237642969025200261851655920539901780150803359409312100311425635107350233876372780713589614515598686522859893588886494037168699039384435703275260880054408555988107420458875410778879431249999701903308244544788768456965777905146772514375053860039257585689501664930612933305854062547577771286947505287307764783364558503956078851226875731651909083119822838031035630225182400013084750793778575520030741905813616142292354421360991065167568411703881453254091156118750258979966581477878153873686134351889581119430909507375651393754402939556858807257304959084320441136415728412919163789220900039490032665745165385188647260072259745889403724230686883308195220134579894031753746134198768633110430978995855440605873557682189579801737855013053886267141205623627682871612787971839137327839417983577823192645399249249130982302354704884914940573129606410942359011000020584666523007839241543614649468414963432695528300225206933988796750707431391929464357867248137875470586271498011658584460524577978571208570893478317842366177839617443577517307984173398160409662563078821299381278924070537989245730847393229200066746148461121050089668243274244162968683954221833906933192189635037651648852488152600301067560208297309668634740801383234895284079007679165135956790608059340657049196121963780647822682403981261004454233298957798316255858585146961997923866035178628474736944069004505687258678351915761904477456235287056758330346694395941530271750975841341878535189460056507544873552258676966859868640754389169874806884432553782882753837343493806947786817444638823844917047482055268795518500872974260843943146866946836255842654154608632018772812319407850711535203620667956425134686821977790757172854717471471701567916788735727761281801762062971264825434617885296489269190151008467129755851743972218761683417563683035077967520729246048860791343783287281345859494246983093390375646176379905719344132128263144328050612803876694855183119649781676578151947655702696896114415954213068706790634836036899418243280522429564732674375941147193144007667088368675100064199561052462490505889380757062851625462554550399575104203659041942807607465671962754655442823820802682156481023717942962344811806781195642309053629976115122964572866547248179437436763212689510396419319823827118966191362959302693482607574988411936788400392436013108439389221515397063196169695690926924316874862823865570171746154674095240362574834350236687985063428186672196989997165150876881941628386129446853062538436493956372146817781343159813613738605561013824527641290573720105611482809526067283761417210185962445134374767738915453188516925268361357422357664152444504122217371064929331499659845428552582213554157628770612046926965495644798339343614272732124418102962713241786938274785499214201129873108879448440572494706510537382877816599079364503961261941518427585702796146549567477560463751460870551706562004350449644618869636894902220742171478379409640653225401571399100759044459506604884813074260675916458580963463993222324130497373681421438869667453308128942201668839738762625873236438533424286014153875754452212146897485180536106770338826925359059159464430826613501302278855868086002024411095386654410647702978629466887454037307051393827603480213005507959055634697232648036506913487098354347519739996259348495111962846298710159298293263445668220413005414300034626313201164204091232130968360164038430005632054481937853205620698407211875101019581085617323294936264529627125984005006007713783824536953471563226163438844056878743210315778583384481658786860314266516383818372981854137155153643850089706288647900233662319909602321455030380298461002250550673836922161585330916224521440283377222381710012893494839446604409435211309742363335078178741524108913494230327644485087852001449174051228483224863323504542035810354208465990699912093023684992430982095835700585970345004293166102337755696348840821677996479979211009475852477685912841509912480976991475734476632187421333018973724105869918677367222005331455026203336841441373107825036057722767837067611484508493433333063745541303080623167837651486423996831485506081973437655483841291218969337069993205272099441842006401859208954285655937652223631802180415055418844430566853465879332462170139076385270435484567546076359525471867673918853436857251024835695472617763579065019905482432892971932495093110616318590697737496446622076664590978476811518203723640511806796931464847191014344333311271738456728261190552598480581377027150498403895377384281429268921089343689767832806603081634905162473892195025285282404339891249944654847124646148371328147659021334149104135558937112440903177034111858562147218851026491424768318547480897583556307085738090944013306041701948693025805933033171541726787337383554074210057197755846610103234577740818480276026576379246999759403793041084351931091622921270501866273787324640353661115089352744541586444699661676217118347648006253319582132223641402071594714588458013554146619653304192799833365347128637686317307125783015432397714082351037344450974533041179916676513913165449281732968762838046135663751684501923789954119224284375303938301503656698323883359290836746008362050272281034484720855381288595342275656334813161480153192584926668774338469108679773701106751099248964379199522579724104721095233931996862833253256352399572560552872649381992546919765637271078664720718642576587034580302894861843117652988894196205894260601486238125570968391962103037506262525155321098951718585396509549973134466724350628345651890213438567765912751471676502866230083592614389813811398358786956177752928709883775323745989954307913576599915755588730660845036770999224274345579486416168493304301797821210210166720092703419246464814310381293201990592681141443563891976794753144042309263485533756302766995888645650291539305989186661787303807024274147235609220740218663542771990869210230304609665197669394997105361596691145874070862154339038011086958164372161082267310074784453174864889421975324487238673721499437040643489480388460979150718100313270828014626145511443562952619311804799584989370982461402544327911932838146090208992486745797939333989714884732700869624712895407506779975070059244723965693005519400546204019905344651640062731780268611913171327208181015142505816964868114757446404734865197506411126161885973020267913168536140322902517396482848554633428977051154871272647201460929821570216787128427057600014889312175455122656986392339810096802419599020092311837509076435762478205262955247171669196136292574474362444202537190203910364791031643587700391893602237115223677082750272504944023501811669261686987915142002993744631897158546637344993937441744066623569435744130088731660825478695225770462880788277568492180771053176988574850456343756412205235607864212345178203604976619473494380051692920049585510556839559821516103365525815327036129780094040878425899833228474353436696982401073216923366134481325035694390986600664173952640232129620994874321371936243705968993798132294232252461375549120044455991735145943755053152103430652236195599909680392241265811410746649907601925850697406528502392759777630709332069537150071999315091366385628952054361872788548969102208948830206637101991683417815319962908355409872158601605518946469901336335170381845738736922577457137899049758198201094536166799638647275648309545093973427208737063035123266972870463632150956367363018322274470800699282259382505030429569471977129971497956118332668280545477662693755193390882534031976465321753486281549361235961615987839158554470459262318865760881225463202009440888983463543427877931216598932841300841236150239291552515369046464673145665821243604383874471951581815745444713557299473054268099755768966652253223720397661614513978730443884972681960067876382636453501434308646560636101910180713171620397078370455243479646195060442351027383832506011691767497601278441304076253914476765271240691634829806064334344930736652808787394988848209642651038613071602843788355273557743327051750278437062404507320362212344958275216607253005868680803301184681025864092937397264120593508370340447171656305047966680057390490653357861083157949665871235390045141990852280050062806690169420359405309191694194051864867739729607307093049582936791379060020757177631426251693828538300372764332892916463236242029304191016246653198203173700017506010959671538208170186191754244189894934783118613798917755192929466373577975937844853779822626711613410098175080683353180028415346091654007816237952667649812053870409960750564785520867517989740223972400742832256123573336728997058093858538871803629496171043461226105686173752360473134341691238423794444234968836253414058829573488489504380297967775754432152052841137036968179904917012752816726154542346518866113654986700136535023604279969557628163288805682634743732252343952368672478979663862852185442655535846909196244026988191347312766618933283802762403700147186553282030138333712368577183465446187334298171713026029774931421232036628167669716993854480051957373255946806996804227892687850883827840314499411936082190429618650833078695249636205124999100650055282406367053584277368844167247286664855191811758529064251894510713164010202118281007977736871322873732597761898667428028780529136190932115479522801262586803956523701302146741582347462824487849431536575353208176160813790520271400933571945321880667875902566776079881545613866595942754715784977428209802093871183251538479548574114405059737622092769554747404515302008816224378083136258827566380074603873034021886018325311675630380815723205992065342456168134532971335442718115100756519357334190490073756835724053887265828917351486911500958769159303518110661390758681707440314838415083049658360091563649073333218782918178235500004455238279808169893300950895426820959612471725818628576672387657207348336015336187815590386343713810287715263582087235606822605549452382329409433271590007560883003441424102678337789003210324604657717863155569016591299088705135342966754173564789380631728125150142308283404308157539170730642258244049484273754270288931587797386575234969771310329614791117456966555992958393843191342577706798288092341016401839958920497461573387356316344739981606220082409084908000616747649568495131220243802025704796405991768244003181476332153975487049469846542794348903259049998520468317061185767279823165603550283362050851963411956427483098877151033619895790958987250452880061988159443424144932959334870651389896937313288930290452325844227319251233501261039569442119299599467667110947318407726724157408631880503372739036947642851727238100311594671423283282910481807382661807134375753291292255676588177784394820229337360293790932746356832289476557956307332304102597286649168840772969745431423385843781955032499757726193297825654982130656167123561532123333662865185722427261990521730881356265576403074588355672937308511841264543170491544454893280826266300411236567527222889998750235861072901829619140423594210961245651649466081413752682063282954705024306457485182735573120390569613104961788062091216875420438394496487093998027516366092541477134666072484430090124402094843042811273911949077774399929783562812736445100495869009622370193524836615726461134959713001411618347965996104447147372925083858667010988217080962433214424959530986699387364202451579658361594818882756743894001896366779432218077457101466272250494146872454826891221889743808794082652730660662900769691363770054778304836628899343210226011516612526327807800149862695117651743963006325892899123538315992378639117371164671060807113305514431174955061406572922554167354579238182287218483977463190153338279146487647890134461846369349550262603982543952676856233449669723642996808666647028890955380162051569006365460665432164609631814869270305495197490340391720352000652281844889439114054361490950001825960102622759942462957521120108023647313161369553694558685879398203666348717184152090347729095367234978072356045556163543597806625813606691414406428182052524742761404440007061208601528578243269904659682980054205096931381341120553493654772789572006838750799426958999298336067203877825682905340697340185286321361935550655555983057481885809176480330685045491295350635613469792400528054823374860811848744178816200945477857812985895561250133995276975877645498398397019185973156930952005442629493054192799384063182318007977508349839172319259507929298481115954613452320123286397531803181317250630209460876633679128336356937425918130368139960399737430514767270711682264839665881484208556302775731301548843518819046226588404642400580809098673149452119346092106276758480079020930549122771655934432076196525308938231933003488464505061713787277969796136098322944359467000316468894497487321712052631335391806791139293582030268689187563469242074663816895903337319216306631036246982393751731791836985874074121163252146875007202211218033509188135548640544092525831801459465027960274078124069579421953961021553885422801645445885932288895983615533316262633647305532555775325012881426936310315609231959757925652682964613377107083206818562362495074300830844406607497211068158968908442418485578180954385134725450463516183834364249392193441559895703150589967694088620881535089962827975516939444543491135475398711946069968134201977374177751403784342783632668218048988080593538625686520144385032701204308021568152644865182663451915735319106520857079702990205714400871447387717114750195239036415478397585613607703702729844631354676516466069089718450786299743224132841370060458209846342271743191968012969980968497600175315177911305870288507614941682208152875308652552340531013165344265907122909460094446141905767439811850487739326004402827258953804317645441823288646668692368249964128114951190791899862691117612475807325468149154519313935416559250930654713214521303647490064392071606871888045508990879916370408802382831917873545559956204320329405485970737669600965971379699149064006203702757824146368722426120311232963090543871914462545609052500117283909446254576574743505810913754266053637068569043986800232249095479885946097997448903027821775128914743395151856905489308098865010299555519443714511902990982900745728385782939788667892971854480722669300937934669384762035494956526986558214098231099482798877790054223635773660740867156139351150805185992012211641645774575471957981133535665157366052126473763887713785342296092470805076458613041445792510698323337033993339261977958421166288513953088936441455738084964571052938939342632915293855310465520247749945752257343899045681313951372750114295419317121486648207359087885719507463065766693049948905666338183005519347191119956733939427322910161465003320727090891452245481022100687629363574265279787206898116134731694071376526888448588795774171744557823446735971381467380919642030658617524256539390585749676438111526745478577405431335100453565632516067088129020808441524955206540324599312513951169234462794786376784556835088922512499877864426810287779672450705461081432657185489643331525068721406816372781208268142716938158495610695455021808282274545144651590349720215761712031228457105832615258522849293903141989304627928026938853546713324672196163437675325310730677216763152599693585875327892351320977739547060120543753157837562219732686152442666351131965373709327328829371847437349840231812832249528850317469318649635547905941648283930491843440449730046350598578494535706989583059309792051844882029636027803824028564086703743433025999421034902491313350997753723537945869621558263047174411956288832444878605105456181818258600889493300162228689743471536531548630448319703953000531625908439317754097647678241981084112245971232625156797334687132392019715771894099098963496974143045101017025381922756511474133187222913216078167055461321135628835759725748129860034258489210909678969512947013089380578213479155287271416700415429951772144478967272361221257389973646113953463748461248548553576797947095579262022588898058592333955338762638370078789026360744498421273517734399228835869229167610862548754508245113896723759893219190895092562462500743552177607211414676046973737719318010297240575115609691900471255601025723839321160787452918493364753226357665309106336938587448932746824708379121194288523365788655984715311321259859568183731892246997727684699515935360935548525622128346609415381578730535190878466480736076812617906608017180025326782529700149399933810143021478222200855646723502766532830660533000218462810715955694912547330535618898765212064470549591213086572628401401632224779406536697448993138486145367072169009532950241987124566542365088501818253390205386738051905914736905730783867209558968352183803039624384756227263594856809858334522869408467767672504517582898319811716653038052260776350900504079328205542538727742636927833401539518232698111887623352173124489515101368456901876713303745022823259831873767798872181882363702706116784576974230970153479828757849745189994510066415229158939107307319361230583096167216914317116040868069681337656253973278709996440846817599120170763295996694329380344933745513076271898749391101788188200225644734348492081547821782595677495160506106797791600701678146808898760406218621325693923179817127909167385491182417958967312773988505343347427625567962995832028357657796893384050719735288959111955924761036840714781160309448388737231355727561015021248572192964215798398426878358526149205229075095493496763385706500713569277242821590523215897344723381491970837067473847816743084896783727934782177796650071099975284290410263572510576847189376903498227018802144172895153783740401292664321324299806383700474080217935116673112754688259448280457201855256887677099841860210002987919126591208511770486465716314004304730715908286114426432354349136829005776896073303012103708181591495645020542437487357304346789498264362081507337700373404541003229026804136117871435094000154356426141056377041150836599739596207687987826578448780850990490626107163629541764538604918332095669789356511898846256348615123245425275388279215034066885237580343518762308818803169015773818471855783092984888250500762663748318379268748768641334734830154263532321070619296336520848566458371925351742232054941802191654790618350028796893778780565699749252704868154380013384816982415225464074060663094645225359383642425648068030479391467375488327493958177138018377163306889150516300886507467985231925320169509635350703499827826091104841337164936330958938309417612625383665461140616633595998141714705344963966803690124861646007597972539690546910001111808532197945594359509153976427669692924726782145464025779095111559640595553471406707165854308195223624079103076619629986402403717105320810312033622748949915417107348704659633724030076266731753647908961464142676477019385815253523494035837796564629631140404307185094468870494065931445131644989345238125843630601413875356270856735019402986791293788965755483919620762020671014104590329421952990344855282829997602103921088222238237514934033240737363651879361656472395472487030621748424978472879755994432993403404597214113499641705761759439755682897851075586742210859957384948829622595247516924409100704911840619960058747537445222121237340474019169825373633606392532057523200772395222135302996639877265812151894058299853329100626348698872589899545610934267091138904194347538949946017389547047379560691245456277287063569006097585754747564885354756573824459569690147287256680566771678596117733470052538160872642101248960353492156007664825840386279966042124901829814227250320205463394489285498199912144810170788521405551065209026233891919436786934822905960441726711882440427614861327245757826936744282882115787698945304610000311645233593874676951962654746582813017467381185681746178075633857172219782257230955615343285424742231558692923731713369175271260929622461322856895386574616694607317716412877065497995057517586184803008255522197129316894160101567094023793218934714167945774878443207671100237465602454692126560043601409124409747280817603376838155250462007616956337518270105721641598949394448526607923149158493412547118403385387400408725786059911472243815393197134506355675604761816162054080820679727731792709274689529661485635506610260638786977752013457401300680899327920582984547951781770960546806690157135014011298276121549807537621593733907026856498735447927842264932340761899961603643621303578235343931902144922497397363589731271020721597809901836176655112461329546746024792559946346194171047960844373515462023131601945772681865776270564539104590114615709268803194703814386503929660297509940151324405539050771098301133141614479391332959077092690222186537662447473307443534503232600832707188112738546059521947040116399757495947393859776328316852703212337328338642017004120774174753376303348467571985817261862304845716555080644672031093269174164486881268269643491546646679196906064266406412659264568833581514319735764185450386955407747603611983713542635645279172563793996511480813372339999261811680403002975193604430938390923392623107956701388576264017196521711416268925673546510494703126323782378840051081786692353242973849382261181334038652969756466854443203023946260881672652696129141580696163409506782984410393940080149943822143802014248014878912979167141692508725343974554498094952101290896388059162357249338080108468196697676041126456859059967809393147344678270997450404105090066386364781038293156632982063716102609702068468727326581200628904864680007686300911316397289927051867353179630745748065568787055837161797057758741718130909308359436004025587537418416757576631799930336616549723072156915691059721293962148460448351941142347066374258775061211608942726058048570816978324801660565033355901802672753282401532985118051653671688296625494120598347867638949631959448153976328949464522812658014006605812413724596303761976022119983469533923499998450036526102169978888195992345643074572539461238265306289492411244118324633314798968316644656375115234910148364780641059909971419574520145685324723460622906464463606616430465389468507180287532930664646852576954956256359055396106671969673453097927390394518608047536898768495954531904168694065200283177487427349393832514828256773534908556972487221194741723569884972813291825122067499704441923720639021643374053531571404831985710548146590566746100067354431075090486569492992430862476233126101838947759542420173126277781103800811850491938796657165874054210601937971698060385589611985016085657420670121936317723571424064319387878197613673596030754199284207477506809776615359193121461012333330826239807244377206473802839719321184258033923688475157501894087522259548804860682868866273195635392464408568050377660045348259396725568094953176602384806771905386159214316808697676133034831054342841352419570324951943077711462083781498902242263461922949815619202828410500569954251954854901927706871711997956161006269395537862097573507447112823880649155312027710407977740971706920470538047760539318771395033795236332359033399250700257406026915476888625960661296389996949851472652991109447123091725005362112806419254700674924698925351699744288949558540157238720490267745152579519909817540706895468564847273861550077673881034175359580999885511680412283479380493195960580463592852176551947649549712236666303459240711079878072626279834004927408738946425122595662984925097343534173416641628927891357832692076312638606376411115753073824571632888746632383818304024098679019732173276950920328891012022425787240754527790895893889810483788796438463140382586782479399042225838051595449712718279515771992801041896935329600280958900464268610033712025638815549590557738346646790650828927482175014083124024201869281729770119975403413805375092165914141822665008824265550399536058698916691326709730677518188979198439906209987468847152033468802959602789230311796721763207131281687636362743377764394841418146386110853701212857706466034769765096945971037534043763344730015217053634929976093068652103325371392916563278126804202308703623407659422299037131485572054749128295697159841370999852214287419131342427833172826728468194886539726117436545568680003381161904452964205890447098258784436347325425384966467784312604649084317435730222302891392419693668210492338918485568601484942386604644623440914678889495109396651917538923777230601718528690009145250755428172014835552913769607197167126860683208172368996615220461501687792313093277436099411817224374247415500012744824091586910326863161793940208510831177768768572335655136833998311817438071784992863629747100152307860625438319099056431440388183285555601736435196137989044428827997027393814824016825965664716868806297742358802682382855331831767843832954468176552181856110575346995789471336275048335129492885547009955663325760092183512960903631997379812470566920161118112783907167581438024341707577410157897996019134249143744222477975325735722572471444313679155865754288894754669009240682744569058361479833824477547477257510311184392269260848462593425284590924876387199303094940003792059692024776443832678747912568553260164126127263364273895000739802652481290835979110113136203721661027006495893191025530899883732923250014590130071639061866230708358621840487073038196915205371607722022230303376237263854240747242887597214018277610264108311697885294888239255409245502062857557894947802561381943745636135632768938400822523561821650681035370973129265843895114402841546378345870409420673869768169696745034323036590437612327123958168663078033770806049338362317020035958604287748275580978515532790342744229740357160948988290148430589919942562554197539843261523305330767591480671888623959863098510715060120188791338425082342305457979948986254221546866969473307220351112180865270528854024454640043277006204630586492980602797015438753887109139093195590468940671827441421520490763502385635949294694461573758078912236344698897194762701880439197226373014217290606994884585955857337907347433711969157337685802607600075809926021693574437588354604673464698151648955836798214699275336076932628312449069190280104721785205410836080553582487361173080549959758047516341359103236063800951356519541804967584900639147750623787331238718771354839750802942716798332292572923704157995069627175048345734490339932458079307481209385377913439671536417621390639115589349387119367503864024190787774416054129657771219958968156357208922074366173049298241059245255097881580381267879279733974120208028612087082077930657896595304831611989624877622925917573454073593995759033829303710396959527351754686679089500938460215365317587231980562825592878357465989790948270587685103756272024114737612334417990092387524567147095859702769150103598391310199430180901982088278443687295263050756990222912609470402692122570554262476537437997171448964960138680776422270576092281178637174896101283660098024042261403488278249018399875901803049030653932297438020387645549704934589358403030080584329457230595635328929088390478509325791561902538479248444116337615031717968202378305736249797902294256629434445797973911129988288926122972344121881670366734493417965066723735950021008527631217381808218269865124884168387782126126963347420686718894965621609963423713302134218925860080351974294759306206657509145418696281774279215608144897609972634759027490043430771344725074337315665379237343483381213231858709970353164638127397206325162058981642163223510878576041569885242454845479900388765010165458741852799924574128046922470790939345247562281111893596712348558596253805482881778625879993440036841435609029498066347343838357504407613386995558754244791432173904444793311220919024611545946182013942238245412131677724933594260360669503117788653208581202935220729079618972909726293220600223714167117768861294579010033439766067446963930741253108564771032379823749640017872927007235653873313406947580859540372268937939972451431072665637431415337330281353214407430309533342326132194984843190219856144423284241446210998979849908205625242531570938779296139084100031488136917586928904909681928170881785788907894079542967702368328338117407065161915839953818994768057858330392643375900558730524835541867923074136177730055386232206574945127622598978394001796673774857457902009582007871040981512177995085311769911736550060961653800246057592987581246194259620681994947235235744313962079257177748298841516733687292739096510325510948283745838759074965842825847627627252837303665127248456809488851775982160222431333437878806621285685926188960721990660832416467817604032944118012466355510405994861080311866682575645030092010548538555346005269107772031576970889061243878961531286747336245180633617776989702723085548311262717322409540452931483969847805411868505009511898164109729399978227034713860675402829732199080545799825189201688426594941762671388577564325315937793414243051205969368233179811490464607673543600641795694630275552022113764515554778322565821454578536054809164991264588871081757404809276260416102854826822251437259118169443592562081363214869997503437047151945283587601161409494530486578982408079527525446371695898147677010156400921488121956491690269560828354633922304728029625316243459337295550584236705147831170203090236165229915683440521618029914610181940403267825644433777850960865127573854334386676494445664846148198130648017113244805542937436682461542586252219144895378539701342953659389241107900555455873566306062419489048873962978549880393226659319142191557414220824045014232630821088665317452881280786706816240357006895518962097438811192844202089935904930016435128847489004152072412543095785469938974899079599026319746871508854992557800958246490804167617967834384922520489427073488260587074318588731381995455108118788494069142590153190901851151420751064994513320419735853739787276457725759592081560629697874505401525705076301143558131228160103491178960507075169879002825698491506932241550169230255178222870751733731500423208031117848675670377129299282192639602413076167320460119932728274559689066061529521335351727785164422407481846311783003531008587128076194555866842171432391730532898614063838226545945288649747886586574478071710899139184613764697381201509617436445947527328180681995138184444520633058676470423811164469455218075695261615204634013544413487010663210455869838626383266897630110505431426325182144614090919681267515759438909366066102090056026392369617389170578382165247157249217267322266058322463240489377276562255610371728833314839275403823145851561111700251755201922590827348150306011474359540663572873098837338997908986872018752262792530365863402426884950473457180176186653497146310630536114811233906651167660354115612143971441965474454510627304894328386813811991181068757978005611647549668725454492321113525716970302919544075322163537742468316041003608953143116473186785609316016790039234728390702540300706043888304917661135193662457098530407197562395784393083583620692017522457364835860086361761945089357921317998486237834505486804152248613748933108120015049549471770801355886002056284192427836760162666418469803876765354470648876226246574342077203823396765824537314174589479322167012735513924342072020059443676290154190065041243986293762944119894960066346980232538072415696184534858122107936530725760472701812637739323937735372154838059524734870103430617954487393145665299799411038751181695856612885648821580198626356433499895871508425386687839305481633792392490952752232643899936142383342459695352440642908967633504553517258145380133397666509539079299983713933689697521844741232992017705070333916780931263017289451602190463340734612629810997713657224666627991549670293732961085289898951305215796265246920108067263259827246150990961504666721571183614502112998696685994077226019965419785207977118138152077415726558437469441434009274847793953154199720508816541515217350295154595197178479930540858762815836330132985944964337256456215892114758383558399152950951684675830618398742224823582051863029333901639756257919588865549116640892323853829992716619075926026601198440194163770013908427532847230566535927983428248201837528912651218960111497177746340262476025546280962945309161899069346610213065681860172344841649512946763179794098386492035618312951312166972120134138757609799628092399930539831022484262163515120156549843845814879283511475087151655573617951004314356369948623336750787083111983222490492688750469692524462589890319848630207920538808466460290671864135133101544955659951933839739426155136330104456265326404535370021496370311388579772309062148602440374983494987722488298781655386130062987755683844720875416921517613641836075155555051954908311170010874416195598122127841131622112677723507924948764275495602620038903855045178648333084003509564006514938182568431336794793291435281633204982677327084322452282904571896584381696135667135713771908708183752453483508687858254109349731660062072463825635777569125910479357827356954032726355479244301708023227221879421032081873565303074181421707394073320928481019795162622287038101443330321040366914859454193009077221044216650239593974930467057481179854136659276710895808012900607225919968089469321842958408478911109652959051818895254535937161607518002790606268855526294658719228638753806178166351636586349171251770555409205921327869640179026271902129830199846710200769330858341710501744563153215374807328943952183766018856566653141339828085419963909719788024471480433721508888791451940881345838888238848142064019202448560524624670649116433949062285376672096518251503586309650506637889734474030467948663293847307916426669050912133805752817005735144432213154986280345778796579772081495345745202644615413495807630734455993302007953481372691018117867774560943523457333839728647521414020827481518099105058470578227611503398573490041569623717939246300311265561549675141515509727558479000358799090511090379167906216543263920527637832311203662292835969463505130981002848944498720137293113028971060257601156594343400688444001983977002227773281097099301536713115245196351011594403660351352893109312634900166779872209723826971464331889543343167923077306655135578948729282906517472669506653676604151073264478782653192211165078313746880758671802908869110462862401005916966095466949944026509983161400073591784466129756631289581636173112263053115343954252256605759565855560404563643571411287700269059739857824649199857137826028173603818760741756332247326851613291318507269796894843336208602893895522260163094766556481930581213023630029836963143689497968186575730217117191553647183626980160985628822817218362741145510768498121038829712476353069176179611139938407465517539124346675795105809754233205988633575651405996807611808931046153098063953384162911168208557239103676585600119051936297966863569115085236345206651140887491897360458144601027338671609719117620334148658560108151755434325970678975681758749430776410118122091471580614304319972110467600351175320581854741055760120911486947569215444345737240142099203586346393078230102160644237373107767643377342055610383631381192736566810952101705469570790708057164906774376724843004107354577980431849834076500731310773304198678997343715208639577713914630488806480842476839963322251652905444372114679612773768752203124340697512681191902235616255512654592354531735751406692837723559825273180703722047107642724580860765157326231453976853096975073169494857633564782441480894690491886972340369237883046688166266600605602336185137148135335670385373237771133476275378630438710562402615615430753734112433576827972658149190537064658293175176283416231262977110174285006351215488494967485620913899137958406226716267292722636264108926221039978628495675740155592178230840404364213022411814011004757069267035487671331275223107846330135451247013768379759077548476828506659275534591029063518542698718519754111829157113293910417110263756371025802677599575351632359727891752754775450327961788075653257465635802408460846523946175322597403795531642902412099024276655508060227264902634561724734482790742718042247696505400262553668397378767644866053078687515593443240069072825248260364713760825320507860656828515644696775652114066842959074415549368797237057676276163074801791387501797226504802265603551970403838753735058660455071414790197413769892235480644887471123325612338381032886641889725878117912682514027072862496533489010372186164595621071665521192966533990271381520120807566912674878012649329452122270027184274093321369046137303074980968228912245022989962518216127321079897660725063998513143359858004462359067174120988553822341240131574352794039075591421104244255751703078563647705142189563182682905553827131980773095164014859373777189940719276717351180623727770183850069759523342757416310334986838322382549885774899275272940001193284535169226421249994714168262974260543512783053398572444470614770519533754258142890831976370999170512619024324428727899378341485090723346954599943947579261630531672580871978834199989488054139902216081128954830925058742129824243660944477604072565635313303488563692460471621122782787855786092207805063529385478630506191891722019638232681965285817402168687791396455206852274051304212706136703809975830133336475490428663364489557793004762216011854078289858978766294445091781483984975225829784439798864166696198735883203201204143923754228576963782384800801150986553479483914109244868750905742502009281388365111404949281887945301151055310851059481052299368853646202267448867747080529651230724636041048490217759378158826507704705818640602657363263148684371710155290293964716895690378636429754652876810186664425669395152348760559768301492723645643323295766359913335942405938378156841538731552837463237546230446858589229335925564750409571851947574292388867777877901269188871510274233938709567537440521135657217192605694021707989193763467823362813703203298167927975521130665300396983039052911603705310694768645093340116985420473972899721347054430596905581934674573614649017002200701941529755979446700652005233455306810701447016823873820358439774259463637423427636050621656277959950524951161788094861324949728713798706216881368603491479269962139759133059830074356063293674509278005308356607522303907145830325656504863198700211365690880244786665030788479249109375342075092601264045613186534271502981123578413511270933135993821774937771516103730370030109203802673634953958050021295421739526862408382216483500556382265680959355115242026166743555525642299542439115026197098349276018000721128405636921025372773262746772379756615131447524467262661998394302696333777780129159639396669649109263159607221937570340715926339211027166347878868431033846699902857935951783220896826551277432414927522360764225694242911567879903965127193625507132788351678924661771110618900417483989270934528512192274410320384495561048275497476022894090001765937384731634482350791147023300383288880673718388716060370905502734098227331161262695950124208236470636928412476284653053975652611461617644595979735307303670756086086856777987713919958131094989149858205380617262549738792457649949510864013464879140866593730520197068492602612620890909920494035486113243862364259162744016381382753993175218487931818358271660448018440854627551546195648341004048311069879210183160985288967677404830521263930398069264451340221531013904891013527949703682309116928145341205556547706522198578400039262678827150776495972840934048867541082787372496668836464094680205743962149250491112228127877290672280701367216504852239424886572553708650991577511117677090702570424911370524831112343893039315734272543158839612694195976036232340158342225083109289971570362804025125777301753170177811488494868826219494763654410169913799931941496858524002467285861328624124508958619343404305389174387345776201565483499844962679320271732179938383774964440545391707010203079846652813729543411245407271301482111488539917105697747505306115823439595883279036210463296884818038827312400287264124573258313060007493564398207464940894455714547940354575757969860483444450005884809140345236183489719081717631711607954628812418444009558671614798137238821176438075919057940224838438632960053273129594008294534887652181139813280507209822490461204368307797684512398746213525008744832075895839505791510468830072816755436433006110622340927169632215935456080371986354219188517056440542172073267963351917457496949287075613031415859247740177388381779806911851138261831340096587216036620345407484164216313203232471348649015236532007735595724165913753692818701017440969597723480600775138372786265423082188910535366979781442883236923011197038399513498749086694168175435790437197356292249134742750840683017385844975218275316614241847436871346002725924810327807819084006127776831804144166503844148659652407833261256243669884808960741433130599953322795219353699444997525605356738851494821862580075513100997426544527080115571126569811306819532992433503313155054855181895077032187864789516544579231358346833356896072447380207816898010950150137113098715039052200622090732094950068458462077115569520419388486538975847930916863959244591019822105509155003200563865100693969456658188612677074326284494626248224272131813307484488485210180578280403636817335105412242870076235439778264417515350062546730642287159816858530217556625889513864362912307180552281587634827629161960265159361374728515824287672460579228978918481166512305275658654519433103007193252661912942335082580500124597777844685461886815792668643899573655289764443928579734756575698103715233203516687788719993833278635703204353454348708153757636264174795292749228508465513815074938396265316689973720142437885980971024259506842542340466289188673912470392891349437107262648426615010114649364266254489080734145034499369795681653484044569001515952494603943609852156580605911971365881882494757864155649902332963074314927020827850830538148047898240056933304890493922960714076522923743560046380245025737558507248641821148959388127041295824072215055140766965525193444688129311312295457944037368287922241685678157453915629035796365194329815012338414970065070828642833969540710219993266842176793281647358052890112816961996321085985176575759692050682608116117624791487399481271113165593619779478391096633450685264387592727898761270358896238625854078475813927964474698628928643973442911411164610574241673597015206353725667684757628801510528935141141070185290878759712047464406014161809513675819231251644982609393383957366542737077235285845320508527599031540671483775702883364562181383660880623859453474029508322626573817128735246171084590645433826721043469432893032096726925953655657162204745915716775027249486256778736609474035238743691107275065944005980999092419025366075228190775916609094881304480753219868062091600871130750686693897383659487860921500528945462084397814076830065213429514419728860929887730096321608554637286764708064343552556027714012350699459345157258621190754621546799627080241613142050902163702512836162823814703037137451657940120581500710205727229533064765808199360969058932803626286908803312137228072520720221691605076183781301147075778710208917045270331799105806368182270985208175271830087242446797884554989661096529347444346375154520643840522911231068853255599473413286151809366587752993172632818046554853285559056974237558113932144511960575018659645727087674370810977578668024472695900329279490048218176152504663170485168062013535886648253935862475411593337534381356158007589619026369765296567386019984804548560706085906782538061502196156577794710621283610409807633473928463804182996446722626338113074439048054741472135827350217684104052095952759225760003175643549405926341590133759095758749428028157491914586202844708085533213383040883194937476199466718161133547404520543379021730804217038638445587716195204462096834839894858279326821525692971468044444937470556430739253087991336348787619638154613090578965637843871064487907039088399869443171307141482454076482045462219854193710040419056752109303992100352599445242543078561488749082692397193573993415754432046190820325027143640010232164621830000472143499044143833532890403721672592253556353016277805547055058664250107155541213020353909250876672772348348992220852119759816005408365491566597537711988153247501109539321677100075042799002886598166565988428057854371905286732521341584093756532856494306249363638431783820726830847429843780153813250182055726446670232413182802727556184552935915966864473530885418756395317875576339818707112405874486266678779886249847125227449820882629558334683882048259358931623535139637321097702421256881982842294090339012002543693374068894992776023797401940191619044759923424423420087351818222822982001602332256363718151828688420476376492733107390619928745907908648103662235965387991021807163925139799919780019605563814361530399492113578467419698790881821870947070718191701974834603778733213822911011788370070005728148094105126947218170514738862213566427578839702033318459888648530105310913402453461145138726697017448260256353386641297938852641651135026270963403748688483069282687304258914297243347228745824216263362402979026469410892814509262821916162308612613233839332976046508083747977877523096265883902792047651425361858694169931776938652587137296890175412792948718391058268249865614653095462030196111202313829037435911294777651955651513336989757642242672191017125140968968090450799215251583165789992930779771016586147866045698417510419987912370019339736729452090694414457011523537650404172539650030527662731690480586571139156191055409651664223510379556830098934141096664467603833760558907761334106814417078527833472221678188967382822995074239182805559169973013137873207856571271066551970560225781748658673630941651017194934558836088375395729356093810353043306689512609382269215357500943865195248944630939390960323162074682221749780426427797638205185021856683798618067925912173084356234034601267347667738159721413498711588292108115991647066442787042438846787837288071511825340945865219750003522862539289516157236833135020690091453357078383888883595598389222206686610847541763939305139402890293618477085037848112356350165094631627361842200347318313819257863954406436736622254789583610293068954763755388656049903351431872178774834198294325011243574197692436202661165393463665673616908333591519067968031547696779783611267470277032307504069161016751951466946210268878736857322028614219933488395467139382308110409784877229493156225243044061586985196603123028180631538666014546951829656144475000061612790732667044198857405310039635669795878671710767744120012123655202079039060191241710999619598200571125614711996456688189740181676416514849898755470350011888815239167225362287682551866708538231943708112265349111104094535754623882430402615331069891019794465041146420974123889795781848573894280047094472818720714050560958745770449408074182654119971415901779796771967401431629338119911529690236658698358718151617974299914084192559012753849871282728267447799819376416805120342994087157591685988254107800307401031414377449378812950160769482380878766469384583253403993436983044545281816394705424657230899410657557792346576976880482135060026051759942475591975919406176758824470499220542054885114265930963404862596788467901527160603540540214642564340906728776754263910705819697248569217717259667949903287726893135553767750222081762740929954466106346216810063208147724896566512539373120154147085023464935510503655840759231259837570228999445596142485819174370336633716175459684246426235087124013429927773468585229338295495679689149451666640567676038043104608798382010077012134435565705561861601294167127032725451407849387872846972671342062503850352555475265880459754967379713217471551341298571895294122797995580354806099669604328522774595855113876574887290468616905259151944386440260246511780990549511623412445379948232165295240239068660611485327233283903925943375809479216092753478194538886150043679924240356830433475000506420781216837555023034573576471681917822760748322306850680945507083583082160515381133794660192254405817924111563150474776322617141966289481057920914284992773242267025905101318120869433630993001033576877288104350260947251673277048269906770814023516561271560395410502964771889581191165437654352461829250849849961906037807834544868187482441990570204556148181799122274784617923080586579616540748791838230310046418049265262138687515314038022083229291192367159317300659343129583789125180927089558005798023469316556149879265650151967086954554929039413340316950761096429328283852399124848600363967824451116960291150395612442461654003763477298355593839917827037203416851649227571269304952673256357285719948850379411049021959402946986504646162019496040280034823287129214458278025429801059883583279024020928364539863219198861601938037946038174775370865553264386138106435567438401377179717881942122824638543983150616223669058836947903461231156533218044035356375013805781373521609733007431910921012956333951544412056272758910736401682845498970779451425246416211074616431210685190680288390179578428523631074695885477811063432908173222719657775588174290035591097564586874032270057708239304045640147002486367522911128161733881967144484216658222173296564442548900453883356527695592020370951978299189943397187903325333977786979479055440941512249883946353272433085462305112005321097965077549538088746001894268060607696562244694706441913495755528307000684860617782366473321913378634436812007335936953819332666066149920551346878723067883249580580729430278171564788665291635654331868323011035239219992924957684575441090631435741944194608123948621025742154803247340735166494623326978859330130660169640791831340636069096344951428167196957786658264213749413673834071854682491636407736262408594984052899198783072737860198840452106184426694466342875789610139810059973490999043089358171421474011805760620390816208011619820857734701945965176006188396782419162775461867575887145422506035976627062908199031873823827572788057956427038351519638885653609821337680945666392169656459652682336292256703212852229356782514755747506562740558051135951005530492497176650696150214825208166203114524106264111955524585706717928177712740536543250286026636597883427514033250682896385858858959993795848166250423115427434560388349218265408461608288891357046239252611003318651050329525561324523699981088235016503618927807491724877707606118789518553140738453342020533370381249060156997713047488351838432887382845537523034459976172316341237153253344552013379747444636966423023684513919006462535172403953941432727830184406934480158377297859845241722824438087881409555143077857579137865043316914484562153613186855475050520431471680537324716299119430667530740364905214780244735065465468405695401290073802803460895775062755342815720553549321752336720076311516206941744896153456860238305877305538900925492647893448580083859514379095802467819910003287053716745745116070124056896683926772294255145118996496599425972877818306628590011383658739908042324090571074676494612811476584817537109599623105903150786278553126891877344968972262820793311727798420675970577459131174315573657113309609130565892394475838114104004240510280997638891005804672531055250731971103603552689643168269855965265251717304047313239413424162930495002058894888043791237834703524773455199970080360626388270765926308040219829921893068046188260113058255839812190710571177828362108904062851518214161945876741880854159125057522016212023216059092573007498597655754746825831296949981730994651490835328202337250376299290311039541240675202562549848777664425296577246955317899605652248650099891716906376179272277504295722106926784437330261151991795171123360133386258886664587615597859489265565396246985403980941328663586305669821549690734386778246896430908847372796237062335499459546271678144725770865958950118813549994329355784090330465414836969830131970918035039317797899537459467254540304889086796948915682638288593239165864723391220508026407560951967238186776239760005965654040596063094618660342771143150296074549195942924164405809508355903522088835115388958731940067226418811221083803604144865174930137867649239332287161182670547413382614049192745961280307536451779517780883602171184680562546803812339522098650359454416393980820881554014769718607374169027705577458675991690399955273403069184611045296602564081199036472689910648833934174494783674668298481450918097616248507722125453314553469691783424991171354717990458439050867374905610297984026496254054908321439942974017029147148636673842170808751382735445931959403909782958967175689020460179114392526619507835542935484623932312400224459075307266490942471590643692602712721759760529550065530329639205596329801157921326313715442426004613783293310025117119901110038480145939374317357253032649488871349691915515227700463237321950111576701495128721655224737447939288278928970613762060884678420373324111256043546720785239949983993791273600542142968196229250823419325465637269525417759687879323938749608006065040673439917572151938682448603852979141250049887597079079978497665748099047840043718653095980312738599051296772290223906957000253076039637386217791997616778359395360387578137696485513852518681517330528424974446631308990478313601001410208773662922684334778311451806709764420593009361546550882170434346855253460243778204583396321175948887893628501985038036354475740341135592406801118968844157095675127911732520645949646403331859508295340867968155352322796237340821418182689836809034689565926751470727990645470983665298220913128636658802254508088816428093260624545599944797316992449461031603058893847278717851328221218982908485989593285615456792259808399774397650824578318112996804578947262772418280046657453547961888122399565520691705284098488142993608862065670950316360781316081217133680072629240426715142053623844415457484246572007468243828020881800969525608286707475839155216166700152893319185682961314555691574586603163287856384204905859223990267631809165920821002089102087527406674957045429886489067129576197683977933985272760374242554141223557701384864242245760132840612490910794578295460134194182359907687101643610471785358029251610406840454438879274648794507012676046183258172912262848966444497628051027787376849563978038698677895688290504817408862927023780323432773297678877814944419639364193441669525394199610543817551482582674401820405517529154942732873428698976169080462481684933823018594192995391011465506610952939461908047857585677657388591633765452785765072321642676307506019535706569373614699616178851537412018678910827740870882806450056826408949369171907906631902845350467468616647936073914841201529805038738142145121468766364394783490619922619942424747786672823412308075694125690005755755978943392790773124489822446095851830184730282827253670297533770309430432872572241077910695428098261013671253742797109062162919539311362805848640226383531002442820416731028566951075620267091583865004562900257740537012440272855870899280419763067333327773274777807148319433167450075478937966425114668101863513871404175165183498574035514569236279600555931946164304027454580867990666318661234111282629849711108790849573026244055578209978182646726777688067672791575709203323340743551014778724642638817889962725050765987761387515808359859570270217582756747872759515175865066363393918659522089567545467149567254683561913239049042724959972954631472561454818507241782389626878696832955244615207582253497951475614452106830265448050479120091053839860501820084739662762105072453303672792859008990208873985290505610895978202232943973901105680341860036089125625456515746802883083431194934613920866031692796338102193291404464661237091237780339019382520754072626249842186432182287015781143252291391273661026446314334240220531544278371071613746972869916510821423190836470438486304575294630180957481975946506826579360563310997042924213529729382085394831352942392744979538691277354688455081396543944227662393373236153962240354671161625908809263625944640662630353342974685096310150684266458189049899709654770027826375003725889128281930316205943209730026334656488608309083483298858398124004485288427073631046254650259796954388014325914761358967397104205146551280815944279739633841432097232461457280363437944418002488222559396343060614558564580198273100890353084194184133872944708997470659340600056278363002949894094802082757801285089300441553741336351874578657639026101903855591288145525627550046505896686147380594433035066156963358126193879874294528526287680390383092348395372548583235621453015268648169370936188444277441265190867003783656319027934694833137413499174204718611947732296236682512105155042948695108138639184227358294297040349039658729457059616939260298681683891006409842238262912160418291392809323466093100214300405294830721754469894795518930873587905316306874320165474069208018345176703138036128559640599931841481716758286345988333334441097660230180165293018003500534161205988106495429468386603962581920184670177096188827521547573470448914834351571391014879876431668868826947824375739687744542433917909510258926649830070946435815593946942437367401159510757051090341335998800442700090859051617488010109985735897808975137395738881628010012943328043396228533220510227557104703559537650701906588306953672517594450077125932280121030458335441907323885333056994839718770502781798561748594144113317947628437377185666390045971845557782085399129487669000857199304663449916372720154043621297018355615067486522312363197063388260238702411682965251631329901756035489258838037540334508701519595592071916310247752131530303958722830988831534933369140859502072136756019416032983915974306744614335398008745900543841339281277283346404877364663375731702265283426388759251154705918725334326613117699827087995382681033418094634279486867950548640319797247479281138332573290576396282125786016830278180648774459207745399118850621244924990891115730656971345948728646902741372380984491578274975081784869536737106263897529024244614978640638117917581327913075613797896027346401713726959896509510944952513161478237207925632120230471196535913434535612168093478381249881793730095179006159292568820037899138517429389169749611862342468458901339202868159589084516133271101604737328075154951577951158332747182406135094095640966628952964525734823779662648269774589914672618449379913841487560130311826605804536525190752114506560691756417028671796542781997904871059562666145821104225882803423009604476236315688303438841737915113516975088131430253065634805310602133252784661292390357061091410432633714041058105191565068510649376113271827158734437135714454343000136254685125715682713326989896394818405006508809708925970840960719684979073627680773173466839993119586001676874057926451455311226612824943399488893183240887195786505696476475346772954635257120357285520726647579870812303983070086832614030671950632130073032928983359542477634277149693004014330620594638675764917388249667959007083866082987769699047434396758696628683761054371549473132508889518019405693925997347668446592017277721288668629881073017461435139077368331263182856818676287228748976618086816043386751247728592991550145874070194292994912636978688740723477165282425638057355506495520864917543521168899744299076493187422304112111435081109167979132282143156140731721327614094660718592811407530307635328281268630343455908999024732695407086218099410413761613576296793174325402425683789952812907260075158829286296029291177846608554408299636545347826753023032543311824278775292256686318465373172079346019319833246664306914442584331610626504553765752584110584366898814051021036712609847035369591600776351008678109303417813451200748158377642437168970275404207725418021538804280795916091467811522652417339752580056572460022907460880647337977252520158031729082183394245275945605251678865214392475034966426230454349487145817150491106065251714696298240379167227168885198542621663376628477788309388388617778124747814117984906436828681764473183446144219183281498359136525261831312685582273123174084442924579630658907413089937186121600685724479810965710104071156957390354754350159568131171509655846590486957677672631165017264806231723308284442597730229604738408564556533985847103638248701620092819283485237497554662922478827164046441163811697971634490282361390455715246656605479912857156532374738480053381372428748398933417738753735166336449211170846968123995760138693553000907268757324344976049939042341310528467890645188096869364468049263061425838114741358041990704841588438000148819782843612597737988098158047581361941315036911136005133962065106830016282320477228281848705052048565891802160676001575721958789988388796142245832437938735266606933831732502551855990173461672378053796822716775326393435419868218907140438215543440264478896669154611293155654867822595768087319902588301204817922051617796011060522293090992367469495624337407534834621447641180579889114704083406091979947211177113241471967904233760891806432576283683033306121587173003972990032350278085401362716954993969969553359972593944520747929293127503746900825534299114366351782750510718966763783337684968272807828120992320377457681914105140826677600720005209243599474734120716552532802484710726743001913556201407616856955798301510135488850233753263060762226735237123670775474979997018072442253611483108379284188631280594050209176120261706839376594411187938559591951628997426446698101502719899104296529313112237856755745783257029043711795834684356077460034675378443530699319390078134449833423412330817268132863981754339992117996928583002812447955866371401295463239588975606980274002458211572322741541793163974183842269336860375242621300577979976884278749576110100642462860235785246737465333567204307728169398054535044980416036900448565873992852914612372215974459086521709452740931987554156701327746084818549186902734724371040273094730072851125742324316047629731091493543314167121578185593872710051584079544573476669771179441458738418180602332977001428675649994459081537597977923518578110919392696879333999864396042460726265269906867501051083762825967995353766343038534864457127731867167735627495884015124974940881617479555360465205417761414352225534574967015699088551054486595881186404634906317093645753306379207425276640771708115503934551932571646489792641218951567980579083466104903729072005128420787119848053898799754469497291514241219333214285234690641998375333752359799353686904414890552912495520881136304727814202136811858599613185693698003691037739973049392419024209890801822745169000229811424302082149686694221925783305872030305352456887132994754932445904487326654779555226258206164003230207365954029195203395762929342155443398500953483104492940707574026333386299292951862860128925151355982101678914000712158067546168594638528991915910025955978583554902192436381770569545899341487537950198433005109532417374756294275853298372314067417374352931504468947634331394532665256762324349690137100527016237155929865225255068855442716652867958261060089186826514800847796491353867075290299075958294303164471582095310762327213671356479548234464907396775159171899232056226735041512475711722926445677424850829870677953136810615815989339583450180319453577592738029991851607750758975191956481338497883410468590778685930714026178121809123004781233145648104361274739581517531834288793404842592643012674112662883892297346716406547108728615261401297502979776098042974423514422220249766717214162544584454272418502362191484229405523420333791791587890961884232859047007842741093896941153344032825655562312441365045949879907924408017269788246747795731418027459932151098074963901348255853075984471108719019285370644574051633367097878894291171595355391088296042344616025632244539915740438062818227803408778705792540518677098168480881309450825184690090992515561316645269764416918431435255239468406800370115109563406303253797829396433630859387540255011691047530719063903991378229996425807759198659578337475319251644376114668742753018502471005533069638689516975315998301582307519148687794924327396843512684826077343555875060195798066036100057358108490911339650365183952705175999381142161397118694452683583432115015973363152133978077956563214016222071891682799813126559749701332981396953156399186064674083315034995172966101812903505202965524411308789365040954528616499905777826149237321652266171237026182087729370266699842592339841485739544825053013146808142600807671477435101631352637472341884411176452201838464587220700283630450070142149236743904426711871355572875187052129145474949430076141302423337566782843733048547678093474316323348050974273606825235115052310924356617051063556764888692139483822170628460472293767838633506131921465803584529353388521469767473784516061310434048100018116031076802118677978020027787357241347648879518286893570565244722832231150837927644367850619052657331423491556925711591579612448878185317635326214803310100894571270550158870883392506348927804517903747042001501413255597355974091103580658065228426974952111407059872520681854669679831091065903060549489261536670687175431816502817913316874299612056967256906394187092869515922467653824579049891060766459457565709360692734015609760844190039127807774880435504580371317472581137738432392695993731228800287834126601681416534359924551863208967562516036282213000844887240690255736746716455163402392172256281082809697252637262360868310962631121056529647235748481634711274965740021648984248128146141452752153375760760937764002682159225115125531940156406180861331805285623173314149566326077014565859755070799361383006478096654222102624009283111106353882171198332829502890217480228182222405449954026877371884853147164784411189106543332052106964955081243893989833294442569145798558731685304410715108610035246065105904847840284881478736340392620728272337936047319984878602213115015597772178764991629050652735679226894474081755442212242885786541328845628034039192744497769534055216892388865831651086987892958143676196939775210534515370770685230779337073100629012752541214421047222390006148768507744028874210287137908485051263452764524509429521523177185441393903007581367503173935357666014330370248320525561293821040786076774117478385802320738279130138604373592912248320074975294297465972713112018782079801303972833277698376395593598010558026731556712617604335220246171595683171777440603569826704192241498583792578311544338547854170743291482100909757663172477239165748420709678944560891660006247515426804892597989468503611888294104581398280706687388583829955562174635712848892677697912845805004188707726677839164825031045393483082807428563970524032215876367468521732675029446297555308892749170029652973472537334761760584876427575463846156463721105008793540372805454037137915903914680394465144706986400333887685578888202930864786590219170677817160577618736127120616677882954343536413388307344904912479969385533161579230701048924305843819160906112071894508507312013990918419298907489752038494544397394499074753797303284503058297713463835580164938985958584758719826825434495616794421280395434153245712373727792456608532292663763734834572669657200688845333360299767666098461124772397989406062983958140655929275676514290965672128805040650020670165910944252848141983315626621254395040953363470521476669327428352850652391639458080423746852668712283879841959899533917730981830886129591256544043015815623055097605306172043751774381970282844905317976580900940318131267574250581927875826693794999890305650580757055460778768735097367305487126118563070904861338002172658608873116712645171875941708109430477402656627888225296602608533746980538905394182308520598815796272924472613563147438159637015972177952420792690525548512507127132289507316816493912944869164066281911323366216086703901484993667851470246201373091597164218884281189959005147537580572652983692491292127174227275009477803720567641977561115727972459742699013074440913497925182202773305397899596067325353436230646622253095559085156012249552569260083930487903444457694571135999699345975983427604146414292941881508326102577522590165487963261334365772152119286528088633493722407377091438240216536034814125247021734002444398443044090906856653826602424643706999142262178218283073176417559266436479480177347142777213768691669196404877258167399438437322370097191509327563661945610286404540523840819038608623612207958915389782626305343186964832552671994566679153494209398665672610318948492496997529977582494893057323628935564045584106373812730508740395361508418234561076319544090704273462158930375852740219110327720513566223725811416926815591401640078608836754363652274198078396641618109730919988082533642275076377642139814960728947290925179030141442977302588778772358138942994553424039505924809055756823140991721301807182808518055522751896779877268001384169782004435602823925115226637794737440233784583663967607262110341316411025549579263103180782240948805333463612295355226388387812373539589486907717834933764082954964645550719223950894003475999054134254747468036682320201338548545588797370629550607023410949787839103481918332595517262177821763685266546550126457354626656068188985320874508676927732048224478618179348834086254646365645234494051815670064092084834077052588555486530913908694482151254506112021201542261396824589645537455123537951867905185228716606289472774425471280955726074377573287221282089075495592210048391743622382111607709472024262920846226899297634692400456917324542742874224860267517646652240112581518679000482735355675207142100539191707623281790006897484001748103758822256303697604385349573332181626080772112943341866425920195370204448624190366475588947312398502120368099612815858315267677142386479664901835025378104996206979822001028683809251574826116982967666176048788138991333108570366836252933779746383922078356368650611908769106807488571892339329603366668752524503851923851778229452180034351308504565554386854565568477140090942466318426987882154516810038922086957444212097269256043431446664089723159843097821284980307293463489493458196944814822458601111067246648057551584004438389009230267889138364944778303585631035881279678874472793786091385766666862108763727772101347645779202157627852799256867974762335150512482475922856262989070678692973808109004999497675275676355290865975616763525369341798173275564607542790694586112604412527786103608255417393569776486752427902834596960298609839647276198788531222932788237064682399730639727276172083291891561570874042477556775003910963962453263393483873480305749672212202547049963053040491297285623623475692137252920799847825247879390965450650269806503072616963777814004491813716063665929602177475833127227690878776531590743822548774920739826771565894721222541082638797222212198822682667751759308262171740046247598414998558802219298503199958560894157772264409177915618925435998697027983807351841683524637371169783864209814235196240677377631585764103884547490786430255744172638521629091574857505657045067282316615038399410305946276766258737688837002333180767267224608642981901244726751226460972921296982518390050385438381200176394002979063663144215876556061229184890944044457516505545314165779622109371891418476324890597495722983399292016510367397400433202885105759525640887790480095726803265104006586929589462406189524541575252525491888086089600477039159240539890678654089422160757141332512318079442863995683841331877923309008515683036254667056727248193517298057743080851896802951004608756896472783806585888987406944842911788375692500472131191209536042265780050065738577741299569729134721790143201025650151004559485585892026037120376785642892673319169429020997700633815957601467715449419606291209428671765709926240393013381865741082539423619037198957471601203063707921056976491015930852183117284692480528378137309456623906811754773250712827867050376779779296510033282252855452482461173103703648242764623778529565530821069758176528345907744031977540591417947732793765076461277199819956565594926169263987821992597184522896624507019082678791857550776066347919762287628473264510570623937676614870448338112204591162726104622821429683961479933566570942742895707401313084067744545245507812770703104348720096235738133302652514344158423515778992428092723773499845022440554492305851107253944582335385514274353405340882882384311909800670575474006757992811531897557692329349849621068959596058803331460961593728121766776252210981130982567092848622358611717609445937132152776548092193511668465395766984180321106400441267169717129236194746869303757263884132396171231386948149389028590460229391109316765512070860247008245322797524674666247345160371262768422528857181081176836874040769083138390142848803155477524519085004938955141777615994297254664413933104706700474431039652361583129919861929043333779485529570120742039276612433814450079934550476289593413090032894037645736179420098887809032047836806648325050434902812173019680130642172298926256261113333769695913814367958047993576172179446216242890235847327533108220726585477635310911662820636972778585549734338536643705275887677774248522926744351477069806666272763368995649726084330788957184710899944709948246939806200700826281341022454517830634339567002724777535770749415239675038250383356768690716941120639226735789365419569002788702478221156460308564307521214531679601274289857377694310996043194357088199370121013086667465695319822581960498425297453122412520668157014389086271538340824915084532382201696799682029420447357327246367896875205280512967583905266226359529658261382235221511823567716382279148005131718822240646321978670850010758820118625913435204477491102965429352191604105980526949227236044992977207877002550819246446655329455565840422760347745698580075927504521238073587615950767623567175546079041161013784563118107530125375972443972742756065217030023584178442168784936242444373591240455156763748943661248795279043255023030320033312480144824377137518698020309319600204128075711575707080086042052678262171692107046655631378922148985229380287782587621311057060846277805789798201811222773224695721124891602306219606980554744793219067715237525753388485603127008491349594218219138973676743834846762458442602643312711332793636658974895629864287537363110493151867967275657033586771814946181448953370951796565881096905049110774964402064129806834882749940415359074705744578891806709886106752074857670229443965743515819165911279226402353812391386969034273112746671984134643196180756229434236538603469189047539174557046661575076416518350463264863198295209277476349120916287268772169384344879341723173130128347199114439713024592014044296951510512475817158691968236248421825180037510505807696425993192986747098048645003925226664316759367672304552182356352099496648503383602514797523889681330106300612945202741341819839334788159936670316298021657515027701067925009294462322901539385236184688881846389472841665855597993831802886415584760211157226217168811869924460961164123445136837942785469705856734803853001869598976544288174143714382181580603383130442178539817563673572250886383997841570437094126589299351922630538972884100002393278489281511538412780385299455968412214554358710365657541384644381626350441299139414479124094402663329457430350389049436249397025222856328693685328277472782508031431347494108849385337804000397172257217346297345047057300927173701782516012243855948143784232636068533926778741908627345146197337530936715317737927747293202724636562277655319839840296963619414115011092665332576187072220992923404464308372248859891566207747509076600432268528117931970535365467275957081557114125933384565792941788514736769320417643299513083798589051339139705737337490304037153151332324347876120711109830744581697913832131568300932433212240936866803189219082321280683179550235097110017806601188790400200152065547497983526549316226128904521711752165310959558867193591313876782356443729898881154195820450549433491282160955637855828169183439662361705118380102027159311634049480404520721516736817559524803852153160136992708533341993010556268734990220333406839210720832835089032213222376055882974804827964439210723224963023401771127275403345750208090674924278206569014095591744816249683656145535914670872174831777282281539996110760596555203737810264895235682543901511331533361962794127531209531710530172591767868152260736538657265022538853508353260500460340147517591872515811546193298899159859395262024265917970071654472495882060739734616502110702808867809312716754436485754973164756047252929794862611836623761308631904616190532556023801285268472972281353364791830489225101557249327649382066639816794860036170922433489963437479309705007941422764581292612215275801276649666180669804281170036267947259161569869306686159019088832355200336225779800511753928656949836533390173354897540151814958824404144098271480142170922219723967261107485793773677019851989214193637182120409497718316214547404118172148153727600017835537142327106306933390933653631267034877097028055899802317331964648097737826101999900502703598985894434173937155600313560590756061125671221916044497721674778573625022696049721398104580669471101894405949330418396429333184709131695789488956804893246928136047583245408491909216749996361722084285208094557457731575991854503206763422866235853202201659402670513880401537690831571057889971140764067249532174821105078403647401333342658386175735433462471370682432000764896147864566546231938083118151555225775667398247517441501271498999462757355829427950252356968956249403515213221114150085072404221389776874644340451694653350216224301477244383801852989444983193211280907652115899107806935298029222142074986382912180156920852901791068048098830174992303470016478005829401438130931600537712918491164871305031290383644281524263725431731456030334974610610630238464437879615607637821772079292242627721516325307439480141281737546741872451247076600588671368609356965465078148743291325810642481367072324790577430020840872374524392183639630233575533612335679822065751692183229107394039017146611216594117403121927334612587445566217074454232874420067833560097605940858952093144740410821024337982512678953769666406627966177153286753597770270142327068046910169009053669278248627763272194808500715628268229907410300657779473171104164743310941221763768610904978192734831288838358188705532691130929971388410702120697781418176964736796947768758266764422005198306318243459593886107972954179421589500908540038635919824386047008547215377021996471611394239388651095254634645208138036559145715331673196458106191417570094295250020085112824865143197507830725085326496204702674270515317424438596440370862364750171633847052980233114773644208779489613060704655814057156119783491600403322451393245383306216172405481102950678483871612664318706178586981738276807797717457404946937395086621958659705228848043612760813294954551558714570793963205240710718933470383590439992017453758909200712256400055921836172682504809945653416530448252774755855519454623921273910260210712447979343996515606859671350683544538943371348087203631934119341215936290702368282531843523292172455839059364617717184937246148279849103591374232167757917005614679950448647629942790107754063506383871974070657715477573933701563383061639422782040055583585617173877251994685430974588007718392590202985652696644357991313399971901593826572302315508630890250851452897651848337412141822114345077932273969371167542795928592027069977224870804542981167997175656368360699212581884612004411994040137765484505683033931975084021504193455273745863947745456491424630060227470686571810030474272678680275897832212679357637312261421202662191367103039884094493997519627067569886536996898839063503241281994558873294498674622634177005238739833352534373909517208995507682371983751178107775305765205389652800327900427000515855576716217883564317860971695966769593078976309225100703171088359211224541316059990642505018837470927888028850722544862059213614728424067535132807262067486866809966317143273209238365267189885375679933956180884583579940957662587870976215047989874965688827742800846280307588430385004499161509966067511331518204596417074541742159333616552420355969148905421228181511233300122357033724294942641324494284352595903418721849443167823146326480341633439391515912867453412184822634848827728307601295804572606659194418103968646173988758011909173347867589016710884107179373294590903878753431590608397306329653985084252411019528666135342275360127526994214774084245253997395565745227349609881311386602488721276638295807991810719765739212722498038785893739272783944915885230170813622963637350611095473586321621997338085703263974837061964034898743610803780409615086071585736505027141164855613366845774502297382536395930319534865553406139861290531397594396489332682394017130914563537659811076230456029082187439535235238315820052296041372532956572365031779599285739953516591573640526229826313549426237322826094074095218329137243853048227122291143662986899729378030260992406303598133727831853546488932536614160471298762318890430050547959494781684705574743548764083883840676271117867760745172449772951886342088683778036252972423110623774022151665098007187708171080719370820871580564081802892542949229556855337314379614966449086403169176043372517753759096723184494742909308357712290308470025713272743963497813239752804951967717683148362839953198069441385163080513995077994147022460117857978886359992844268081371266987192458485091716895122680578284670111200769065936977994668195768946169758371882973026590684398810405206433577802372890925570299372970040524949521641898846610797359324972976905036730311404194138380576077410448636090425850592893508644199827407083244940778567358800485484703346682101205501825113156320080627451678478821384629041244293262878596928071147713415739910363697831175934871320315872951791684593461877582427918293988843219266487842171633696275014229653169602662396827337038925400090841298584923379586215086390249969566831201892755535837593463365584956588819655223453064866454989652373595765021747587097699105072289581658516900028739526255782803736794741832289711018065065553052440470003967286474774424314841222367545211790421153902359416708813171843941140105684263335876609145038007087922862882620851854671567391536356496155167339931545489184899838755616278413307779195071984443115684063960553577672453683897183802338629575939394111375159650278793147882825303549274433405391686849358429300624507515004756109208977915649798775763648630129502235517399729434099601775402472367848135516187489476358664030830537669154965771049135801731682214564644532512175863465201122731569908122581523897926180455192719650602511749866933507427129514106264065974038240278347810972978544535226990220292836812135330287509241444301488503096331440547857010293332325960091385740484658372728928288857085761105043445920216211617667576945984860814440058657549649359392929780414732130396609164890560796001357269179282377321032184824401710475277965913392750296169532707321178399514932625173073600357416814429435418130050198944269999937638345521763536957312285925719799087763486382740634058351410414267523590073388809197832824705772701262184094162820871819598369532258318594819313278762994737925746039153582847325355234256012409216002562863308034794006810923073940062603519382231048838183117479867079031054748726382942110845959816741601992446274676235316148669971296906430237231172994462565457921788198278853722125013777518302442205688170458896485003522266775091401761873513130398917381768727238994525858666101358183682359615177617031128169219920438066566565837969195240273581841867887228311375431752781931770142083940517700562790494463410276626822877649458595153380899446431099144402729837933669392331231834219416605900773676882649642175611907040158898354616782966465063454976492799747855076637787792355827202859521633316909397749230844854681433547710681291993581571396416181823808246462396283281567283431793023516802253639647094315047171746647823815645106995329584709699762894421230640166652605824629060264470711996096233217780484504439948361491428009508758105549339520067865163639974985630541058048730366392655256101131535466902357772857433484122717081690187155225163944377351029815242354056394028823085018535811924485265786078851651351727594148072832037290263141036718209461038173645349708064022762431075634142931210905875327356862005281053693067681723665845108016191134684198085844497787590753673315738030151967759012509885869002447595935559748962894279983597710027843729925728679448661298724145790881261773513800303087081644485821706273440556433586127774080688050394444160840995460052726632315186554506115973975262430282184775812430932348475283619436458810195237605032770692920565663749384819589957085744556114476927142420391305827677782874284956520546520549479659285356369788956095980854157596532379153548743701590099776533082548671235510937772525800406138581657689631224815404828306418797865399566028317263116391176846822734508926844874050186747271617620306509384789429407986604850710472121332758277520990894585670308584067159323653101727311555525615162503946274561896800281857970920949202575174838710305801051010042501823803499961337800055865550375298927207396804091681437527235073489173420328098349071727156263668524565882217363867419511454343494693791441290051507728848191140679943020929783707706247310751254595902450550331757805178475062732319013913520410298875076874025955337261578130546202078709851640944525202445874334957746941527579699758010247756058947797508373656124533323178940385290726979568455492424920535514043792347645020442303239178137935960793630215808323182178111134214067670303837357827956594663943112145227691737630782884370694612741728954098350498914188545481033854716935995700811834101802600689623335851497995685753494994274035109194282248353061802826072157561609205873083176232028225374197602259209493334738676612854252165048880847311503453665915988868399535672211877406499908292243138178430817922183933310832337790844290509521181824310911927371639303436990555697444975171353666934140721959462949835000288049860915185903451598335018197015752619510074222061122561682270322965135003320698054722133602946272816931199750482800009498262376272900933009468786019759392852925949085881650678316745768802087587627187284707003661789243746510622312321162823717308357714003334231467894716591259886074875618585775759137137230939508022238958472346370944698961418350012576432860181660475006121315771151417440523423896670890540478988153949406714204560246804981740572044791057830020385225461589009050111707049199542767635101113397186696127462985362772599515750378548876583294747771118816964842307149258605339962800876958420664707137725843101799184908305607532428171709635057821453287276379769890215264774702629938400528137906691986004065473319715233013681781251538346259561808466876688845459190562698022381239262695963272398325604158604357724478827091303005339785375888811052620163269239657782727285686205739870248091781533468736829323669411875639815208952410365262750269509331404015690453783983972948645663419836245658107569401172481410153654594281864888719453955266858807009985448801520547632457988046061695167793890959240728096392231528103625417297072405852205923642017495911775506964348192227066703998018463020629572302328125706845363109276557819782089017407995331691468214042985094966274769066707032393658106577335876605293994913837028486120214834457746355425287960437124905504511045641527263285357710219041400843181475238216272906495223928556859516003562094019292706896884052264594606738604416678661656388087485889979888702601636831759136611329701346680919804979546760512493163407873773351469428366305352829573874911228963649330751037092504855643822717972535029848060912459140033480701552813303491120917515843844383810963344584577452905162818287073305738185692423470492372232464455324542821394598308014387467698342046049756891974860026949571296556710886758576886116189834020128010270193440879940876775449898966624331626004241632929751753184589868444616766230324216957450580168849109122467907330188871823450822929015327258010375878175908856922693725736204875819165911050697877610633244416738303327518222683764845828082521357665984795943756501601506588158667859954967569302289381421501055829293776150889314401885355392836852626299892965456018346741063423409383963927566907022396805513649367018810404606005176066322096339585654131337275216750508379502522397128790789869422418954964635592793014305924006502548323999171317298991446261467150042015316074586172236571185609997363553095720252900114985240611122427154810915191546004577883029476590374753003780820437987377271448080650864518606841789571225269642940143998683978483255234273718648058433202767031548187045684147375095055262437095532308816540644259667984872498300003922241842978919223436910874463785786375526652207761694861483301664608344188043105226091299228801252771959547422029924447780687464960301640008623359506798279423702076325000370368312119139076451719531228860191220644150812242989041965413552754375727926546335449251760973176893604498760218704185795339050960894692320730760264566272465381541017734139893820669520422864777797752900767279761982535004179187975100791814718456828219862059954722008927166844928038601700844573600080289603197577651812860357857360656782630198817042239518568611875524338411831570446492363019713334820578786840832824860056747011181716543403387683669506311574344514578344578125083961981501596227105796241097620073970616579285855141282066339125720356921221266739297638276511373655590205379936227703034215383318234777268783873855390339173854327059662540928056686347831311002334271305630778286227563559851105943388774662290889905568476158268071971287432995395808142679609623352991273682546670423529097632848017266077912109207217477727236389659585784514859375174541589133800763505559295018771877737025662044830951201115097426063221886983467332196710420928758768679660319727117746909510728115156943529210774803123523639248929100901820472711518815229844320090970791317442164827399493847332090131501207262848060991212196278451639279247332676882131250996950694536211025958999260371006093066141981023559521271921193067762738415305301604985293783711261895659139183124964277925331424013507666043186083207672522650119336725689015172597189097032420585366303856060159353761644209857580224159709814322550363351667926252501262518204893652725941780742631121143994151545511576877713829019584355797135060909257186813588201536679469162063289966422684155321724596568541016527049003271178146080968882319952373497814413391639217828698799934033376731660353147912357192011546942370989882945735316782759272378890590091321615348539387943197196791801802204217887202740455563578940762336100329185013682409296571675660648916085658044343364261626843870923886368058187001968989445928204890304272372772936443298817992382026763161633249261293046072144737819990991946853647764427621134926508698030652335714372504193265655836596357807366864426532556952030183312542920830692287373481089384998792704296343906745659178647417088723459153897578217882877564372738483461251369094690317743304193357207098028412569504346156088475349433257635433488633953352285355244969395905510374406550160928818112446063643504271981683420780826630153203057288814498479461901767200109968047770038231181251093011577544723207701859047314401969713452178013980983815558940019092877417171207272992467464138697388122636980641845261596530856358114925235666285726407104648998935246529668808200886403343363384426795492414034720378533721079784215847072930341034642022241247021495325769511785471568195212250927376014719851230038353798281917920995859895771374009826809759291444635245989275088260947828538222387034862168848877870791202428640187246541508987678665797879638429855197500674811251921863926539368817264536436969204405011992566422283741248413641828869124960900103946149856290444053036064126548107582134850405883497335123349477253605196113468384037900061809432545243782852045921017523919605460167474209405251705811564357671640970771377247131626676546726445876469988313763252308025690983416632680875116444611661772370700187314397246006412372183284353950479277519134285503836042327891232797936346640299752157138071190526951769090488249377144520147953731653224392908591554631311785645052889248029783958991651956945888371105628508905793843066876653747623380449947751257464835029651013628050734518878016612252969409836400735751213510753990673310216762885667602855034520254764225683768631079331198464612221508295706867745350370797357624126903647966773388854994135414037562717552059689955861149353408291985770859954740292046556769185798335473106548902063599005039600907648465437109138188092828236252368104946396652139504405248435951583910747071540315900450099216479208375870553462152183222204672045512060199406296318312558798512612711972252755221009896542517041220563651181766671809999341316385020749027946774163356168087407663736977485692367078069987052596816472512530911033836248797279977622219712318954748259582737381077671099155001045865545660110201572191767195980517206200025152333330190391403522199302106575945984047893088969620976448001113118329577572614444644126774031053845055988442381244055647828976655571317793766878966437310061130086729023419944858462693160215321730636905804376922998353291394332945248176646373874731374970884005032925110694536542725836195885497730704021302062356488319383261957599036135545490440137640913734496394777807900670482396400959013479911227186963482137156873826270999432932450832708576279356338606286161709744026838832670576358822394313454612559288723571418624228423013618407314639649828304817121452468296327728738306303759656411100797740651505250708862444358822464292929049381621544556946115713875088839761413847265929120995394798284490875204163243552494692316395313696685263884092912622858746445475961719302740682716227092593463641952933222965242157693094986296275557652687407352751692376592278165115161134374451503634688997405813982509736433193187655739467170957109221149136319960593641536320983215134049666655211530606860023815612595661885367659158597783088235696012764075795329148772462682427867717833527904085145348040462384973937900726130564047200038177236412124722325630616280782749106681460100288222684688761236328438277452210411505251796803292520967241010373559901721286799486056187631564880351336904763739907835649054648581623138366883797617120406244545179122693872357413289434187439376419068515712523198516619377802651108204904763134947184581828105723951271556434438445068400606634501324385536876480327228739732099730176312051922356813964190447071358599932995342952250971964963968075359134971695302077648078105010685431786359544010990007839930707565361853143984581383755942130527686259963247815324324880540637884393029462691576873542657825744414731953495806898616531016316106647442084049855452987915922252351847511834152519549586593471053761950294623039443538563148574024476296755479979428680151191991785208970650151919068823814345234915290918928264761764358028768496451355473768861129538698014517530558487929165042039336713921179928569756047432651379065865875067779959242712134298024757291986474820950705481045774740966868266883813944277074551468336036465886580630911285855627115427370002015960947951746002016967592809317708328572996616843654380167010375159328152297107957807572239510780396256627449994655648767603489142582476308714927737257339218787480991981576258392642731496978418980413816453706478621145881069278899986800723074944364327191688790359986711258719762010450599783228523213100463292977151086973949985420412259168446131595642531978867016981312321749903088535210048734740631917114321367593901079201770498746354330316697844401748539979513424593120456313702615380883884169140669437438915549335965279136523597566498097173247184394834506083320172089303744892496948744383292518231390974221405900755404237764181850820515787605566580931006535942338189226319230324150618090204299681909772204437396695391607236158001757038866047224744791365657006206366610852387021115395766123723924703990135015451571304362740884848311925022491235235609758871227979265412692586197005866424012297216454367536591823544729956217755309413276137420497022271416111714159083745129351426667754051559581979583690541586326466554106486409209742156722589943471914063692006438327276672725953514361318788647831944413435053707598857465199612837635472580213610114230049999385949722904663418431799788824174684750066321811919386763434908257445781753636868638076410454883180278927797701735374041145252232286242594206193878229354666875531215678357090054997621785904734348947316845580440885188539314455227186693608347682198674662870326828467896438176814451675792029882913963780140831301506151753731747040115107725324346986754580537451935646601476291579574634636718200594147171874408893761102996729309309739616659476748865750804527261823811358065638345917149501827378188197953878511800149978219938520623253744191946332649104426956301073175125364483032984709789615528123373381690873891850791172367747327558270483057130999370015159845800902176364049673192265268983196322834007311752284931756889901956194960774437663254122961554145056070592500454613306252419633641826223103111060780186550681667370646719114968141964175905484808772115896751969842208155635847471122225262885931354996743050034698276425115554204487570463075140065516108397008773679293504765840192817456151099803211118017392204229650105639407180877566811527866120186744668532266396353406685010399222002532801700650229494100909156176252930477956590901134707313003153655658140490934048955470345159773630973001088797292866373950770888940703478741468545470776369479365222556134733196824850070292735049159776259709771036223573760094759329430261937634177976803645105190235651639313744356878861000837997887308341080909735490809489714935006779129667588854712559399757831425980643748805172013859796161158148173012180451464198282583646056774428797705498092821377627998046366779946980729910534631421382576313885303361906837805964863937461954022896072839328898933599543656537071779265460660151377868899767632382992524270736960971015107624126104668358224109235637735140384072114038985057469753711730796920792479369604793587734316113200360047573286161946540355165467119759106454279697310861246457836538356184242101207564647955726207860070895696072976659862914142357721527125526987238576399808002897827239205298381849616888566001569787840311476803470050329798861051773307333163552900435019006416365892590801297601001153987633564598336204444238473763641478058967449296430367421188227801793021150648295417117414745173914154569143958292137954435825098698922028504296088261345367853557901352233366462406797995765273312342519889404353973396101279747404264794743827581646135614589753158925429871916918421371566159845911500680410116959865402651734419325100564466123067488328992971623991144249556872152190309020557863174133736202267764038138229001058799099686842696687597302079922300745323089141487779043401449982627936338945151781702042420384567604305692960146792586754021260998636259537062110952433948696608614450286823644939854644579870133676174676869755618559990553873602204709725443724639628350018483846801778649707527566847535587199292755746981364053847860915492788669079995050887488926823529063073225047910753594238968245901310460920488585064128992611178371049387442969416141733194791393355031620674121822263845705497334251281667416457246784548732947705171813299258020921274869455582844197004631628255744371411556107157039758748150270371129929952349132896601632277890157436561919874360742451400625164244521358449722496718638692436397209465411685768887145812600469418583353096013339255776040524325506707312919913835507678148460160820578315707049116576935193187846130199951956627486103268663244232510738423655690010812743468532672109307155898608429375967014119118887339683649511430683657418887898028826146617285257178640078604901071208230381017419000313032166059011384740806870311433000315171563139629416551215345141038993662086224421631498211488708068069172900758376611866014662623987927036333598974276710964733759012470706372720370761686679853931364400826349014067197330428122312315731060868553297400964201466399488312703109356099337274842869864112750800090708759996750089520555916425728537404829268138078593359132599677050396087251783415121925524797989745564866404188519103975738877595701572617121401898116283548342231439363926226876603537082008519418649967388354909427643250371154407898448909977212609386127403861121728289384359906227853764353358250975849851372173115171167961495005992712320269985269891287716505210535401169311145559337856190767005058341024571506452488743450017029303327331868987840641520425470626397160321191725556578931313048177271460053239169635823922502431219564121023737285582057442334432279099127362797294389849520631634291455592626804341509116993194139253165737323760217955363296436820833494936158322947632094041152844988226144134307509707954109478096183200705369902437628847212119932196640438327038687173535520578063631961200149388862655984797157837581792144986239418293374620335803975439721623973315656847537037565377286915357452760983426169729129934804299434189016666563121979714800881518899690276862923663027994810586910423941063392563709621149647400026504823731867155438836812473494304436178821307628901118270208937028715394897062890015187606484583695468006121124153114020693318803032528758991377829219048906636244110306663607487741371683419049429842466090731063409555879328816784328085007155091759377822667167664609623194341516540713999389339863658387384957532428543578630044985935652277267878850353146769175698896320492768247490533194289155265859718810193548365134454419206675692162201550521295184751708788852695028415857256421187244647802524352308343845018522373895883355905879270905632162459420644199011250564449908950530293564712047651459044565922868178863030197432333230964203944145478805767915193403212495427436927166735847988834508703774431638462094915631287561071853131809286579853760949704477614216720940384301345805893226079330304758015613228299020365173223148425957703947662192136050622126201000468430974596385390433891900503473552790691460598588185014748990950991493140129436429096986051015264798870564090145309186724993247994561116342477251677480900802163674841327853208853310225634118180462060123282226880207559586219218267738628657528291150364055981904016437438312140042519359865876342362297754347950186085538595854558799609043915378699111369730667587315157168193630805284966517942278588110898112784701454856112919107802708160949934369826832032973742029842431918112972410885948869440460994015785699890993589238972891881697227902148764168680751648706753244235068853690516941460635205709278317186202666644265246734014738106027429327098465125314560655352636184061372419358668598736931390378193565180939632084043584063206952328253339781574013398104756669809288679433462869393502468563520132402678087971174762479823641969297624680177909851184409473464679978823100128672243032896695227066617508483647411789582215643502973867043335248337305185001133764183553478581225210844145349708201312836576251477427903400117948992276905773713810078347098201994210286845160668466091752777970168639354351086297064657195656639633897677393235461038767298461164557116503014533633633791346730750945186558286408794598206090694750240483985276894826235548360877859881400448985722374731346205881670984271691499143524643740856249129262650348691918217009644147748781606480463544280064215903917063813797014379701538198950154695184167258717666459988544620709857512984098767283726260794470391985483400658518774501871208012821532322407503956761475937707161146111651276139232638778660134189743497082297536417034124358328965461855048194197983157147866012227030556897932371757861071137067655883272994198090112456646663753421306463624391529212374723895213588002969133282975012623324537988882552621290799968405311249502338594273575494428279189706657529316208036068605469757935841776427458445983774584539001519401286749223224204927439252011049839280406976324253672158049779662997078233753706519808200344457114215238266894648104844906346762779048514610785465203175635514899553977428192276598901871848311990369544503390421034123244356830071082919662743968709456908719144896090095839806445184012274595891148562929524715147704032001381219523625613855759385680324441773631580718952484927807403867502031602483113038923082959522904936062854859638880835030360193401303696105496054142195552127358378720748607745326513936467244682456285039196506110673439921341542868476237685298142022552925379557192623307813799750138779892416171817765475647908957066952001099860113412302057881966412502762204772974605582414786187738620635997065796397530708268739611375502589423659202591607782332660030334537670752564417152876857327189541423718116969193975747157096103193620712330707402687202730086489484468544358867930293263210228387585494718061474228730217525709206981732751670643693038612290368063532812584524549485426984117382004098061732851101727944524745165061489539188268021716754094779951758062740267873858831638686620346295541833876175147909824370629463295154970024893780214333127208988464606803279441986944252253848278608717795970116685731879413355279891287459769198516998777350717331811178579977810859561445206407355654928298099082670153006548451181748868327077872618077566514201219510776965890350504241158725176324405081453912395565327571032519269878138154629374682721741620313325348383535197826892219484963594622091801060039020766332775296831607558705765730517380747894965138734498990199517261010623473644945648519023715130941400006936973508221751129302676141365551970101872914959307486202947693758505716760147207672955421139872566124759962928934861782462188773620735798868971210850161901846449459727719868501346429651970131432225447120988352607864292011140512234126199620507953356131260544482188497143378077984412547979287714036766476110010214460584539620405723994665107121716229231587134874687799296634976522233635433027933318783771657582569619627269989227221362040263145708530816841698888348915804135116509604843965574835072363722656817810751677425480820307581680420025478432390315659968767342607269562294547841435528282944201382521544133618850293035684962045728347229182811821245643612755809474825530021747696762989381282415835011699831843680253335213577777522314335920935065070381117573073149717231427614926783029525999586508990204067659988630254792310811310668415748746962801469341088457376434905345212427809596425356306523077760228111585861656514263496203402554489245944448942442895374639844253960058586229582692554567892242791819274707845862444461239044041528858060444832070815586730972688170220068156226461525129211961126303562270104284419133357895469071748787793173087326609120460442674544877633568443402080125887411898923583152610038539440787465346944757871441937791582417961051860217550058689848484582906882816845847759374325852887919957620441625322010466748354236777059258131871781821841521422473039039137135631582403888393986104950714379293423502935092957881138812228394335370194311203531993050293540018339985409165756141477112483842364232506379687932723382025304132999169324244811357955402925387853392360862145250146588792434519239207689533256453205406230462798003423517819757430884467587258280873246822978198560775796944814484731257281755743570615273760393002250993708794233112531204795546039339609013787502739385819391330877565237661982015759996196789646843195814311623723133463525520236480218188469140425330003491126517968084546491141970873611595508045032658280313753527309825222013253313342429261419331851889781826956275580983719574382736387798621654451714275729817657142795660459422835890866686553533612245534875055113943828944587769432208677025668198277145629669591259887711167905012327216231125528215669833191316071535758814863515009929678955468727927239430023453361352107868966023950748604615478686694780321512689164132589404435844214163846981680697821569594132475957028564349619786515075965898493512504598379868538482491829850123230361871983246286746020506136881413138358261273923762980093403759759497245830033792761154436155045469563114760167792725758744752686764710106480403112117200760085072181041620997983983745079224444862117049632130001987539653544867525020540710681586667319324345525709952299606772456977638283190600592444676465995503800485216716760865900224820358540475839756282991666041536450847129519027625894806661017992848035451637586881529499359704954604792032690869927755461882787643292826550269144489796767591731337998097481723036063245572051152622788860271456017301855581973352227859814788961619500955073603623847330943665799845985055281184747902445560361689120189384102101250825028225981476588044304137523181409752880355914704000556447703743569600782343776120349025389673426147785471150565942382989539666058044654586739419148782548772750649464814807737188850840755649241334506026100513435299201568574018065202506462875655050262925188251955521093789247304314936746678257025494243368154648180088626628138082326673843905874274354609783432960179959363096439177793952647487555632895414116762855751527173317608610556865549269992712516652936829540342668790040428833269708224230966728061419757480224810234980699050322596489045308550539347154487463386195171431188192721406230604570761316123697170705314074732699618670766109975578237509085204958266747567646150389868762162497390827347539132489146088123199644557496517913101244006577827118536893376627312558697033605706577176172900029601547835808082679564584887774086919303387859409819021913089590227273933828919886813115384985820349871599648009679146061818171503293224288529925092779003850376081782987601716103899107995630301258030986228458714311713004201588877638794985183717029619201479898361761498077059773317504397025919516878175072927659215483168454846251199697572169929241620006939424258508969440139829153771064847161934821599205810750622172884570311359479089682333739340261795803837488392205170147426967708554385944303685542125835178106962521039077878029722606961694375528629443902600694949585786701041421865224768506784165967908486102553981438538560064631965229373900581441492722394107690226412559204559908315812951010104401178223639128778939768834647625334545468868234336073761974615053194687757342941083885790509650965288257026280195753003495965697026480025285050402658049945413917598446576691882718554260343725093951951924118836807770169540616748395107411454254129678209139062023140126294730067928564433051947193350154822887428187896451731753435389288495962456122928075388259102035849858376583102508459969622992898026518284157625263542484441114787034525095680669640268818876171522042191572530399684864716220133062785500985367848729233380687917082130213589670211699710060681806585004668741463149608161482756809722149063742707211503017785258788665354537952309071512084031703380468866468423985492878734446320803330548847516274038060997758143678871870146005482313591193588053534826323798350167956133579748298698140166502994656509062519441735862696102423561870353479501701340788433232031452583748399754219456329208645189920040820461917507356869599424839547490300900798609862615983675776170266275015673683867603338157981227359115738142853848925490850419981473318673019882051575821558059580903125847449212311338176787642367131239333854176447869638236843041814073100651712696654289122292666800377089097223514448298164258040027172339168040013145367155672546802033011201201319608184195215459536003704537154902989244882662555374775122983678243058925093816970714408008688994641061337131974952898153816696176220673832038167897384379861013959643479239405014341979726712763789039390186088784039979401757305509463356753158623014913797579992014705925587022269545086389689825305788912068314663248291329876710404517695067476972930112870074695003754312122752691783308500571387684484502227641094546346955698687504192595424640507145380234112694240167640619997577866911735680999438189449101813989583280215717298794255327846731298512226359613889000886023425031701768557853373904598552720172586666147747731789332836819467289365497859754546816593950639152046240355526143795325161643355220406372615902998456663689469231242038262420078182883223507655984854783501951562832598820300631433240574285677167837045442545749415844304062259023820602712567155753008646791806155250943468369340317459261697288690152489277324339014127521764491402491127327720744857847128052313023704275454832768227219131330340878906368187641639873994006270175013410223995972075786182963762259729139140145739591909054361791670051924423410528764214070047166012597177952094908720498309226706217448125051492252364083099811193086076563118956174486318759165216800871676744720420184271499744975869024502989627605618839955361133145493006683989502960364548766762669810554642586959826126405896812082333668202327666926897101952191192269718490762449494142517743705674703905567219348405099554476087803127537003696559463401654885871878311783970122156541201091186221452350701995729762933908581712643967840809915759838979361637837529246809116105453986133044972612839768545428478625640051936752342637094921620033441026271052183724500555422443538180330787842847821566462122862977105616303255299349505595601183648126020828507802452931546106310619976231510615425570029792874672122607944578084139103378500709879964086037983374709765578745766962441408034997883964856822455840499151924532430514589877846122398737864030784464024121342697969857218208273719198108600248892462456322632218444017854569523315263425368736190222267669690269795683236055205473608546313762297561001410306598149780986912406977983331008619904502124127690297868322772465146712680758375143907408288978127821295113818997585377663756350032461481174328561414119247510087820940699713166988087009015485545196703768215656145010959062879860607678666843643995370628293315927117203116714397222305128559622614886380531164427500432011705267519630149430375277191436220103657666482713011698103086456018252879340856962940077796757173837097545625990638502205697262907344438904208981387198237645112164415749807250081561022217232144589759163338796799910419457061929767789204504513832161186122053151262990327798469837495253386552034184708352586368100060823230604342977329747066345131514677423020205561692759532347120023654775193048874530853086347431091521202886013188029396184791626990066471851194180128130814029239546289954312024103354109985955705477127720172771190285925648629194848970762142883561279124886929085826272129016946737541544436162564315507011299557286329136910107616076459191210492733094608364164303028928216707333920359686103038398732785577031188895381963475031695964358724564193376645530413642182611881261282737022091873348052636345707835045086204211185859989787883923891654518396167112114924293806130866565479539665874804482482280662964018012964654299056450927362096306571780206073435933945436983814511036704731284458915652618184575798399296921675050844393115737816065364246089606753455575236917643632591886868991893169334510936930990168839830119736287671052484515610268944211808507853917160517093906242783640818476473092377010166249648376397478335489911420254962770812469936066756441218760321252261556205536054770207848243669762495381787537667735722116037164139726225808038387102937817094645385183891048893057770179949871244044164327895341632944766922585861899702809012608866628536234249384374146442584204110358742084626804337225309954972873190089260575825619276839622773143744573085935110174883034100023516129117117304013369106792157537567575394102624199963547157787613428086845941674736719171872018766292108047010667939855557044986125603420404297484453402360170487708148380815552628667445721626057898375208393617599421596188040422757209984994820805591996871060925509932978858203246331439039425702928712222676555308560155238291872744092375644818114121184382888949474784979101256911596427788052823731599162172616013595625615965664920833368066299923448694514954947874833938725466866005289414549877452672662818222707714144541497353310968996102646472592719228956137259015671138949503913837255010246935744731691696070373834693595700928967056821537565375279197732621226014720103074703221062139928106850724089959674315694726068164594146669219372824679718770080143086072516206465322370615653846837485957736735882793710186521360426422237922552573731867275619384389828929157398130694620464965494361621134485200628804837535146844838089213260422877171690694095251158602505047926343551996870174474273646878035518042443808160443217289936681629611315638120102952596291532830539002269367315052611205769981217707635724160221087861233397092766584021727563876931849780944580847221094563419583970508246697633005698123032528712853146455878549673559925241797314100627685484617733735935840622881627631714165036330609068748091078763113789677830856227554472458222383802584320571782787552172752124980233157984274639078411657965190688336153545432136251841123371909836076934931489230986470166133683667527980487221633905261310709441049098310998440803988104218372656233810881590286480497389646289343661352902250962798281006790359727749075316623257178411099172697970587627035945607450242347934757519706373428204433474022189071564823678288321981783136726713593422428048379521646012629506638585290197768739623692935537220113875845483936908460056559989812973227361994435965410977174004709879819335620551033388403138129658223819120045079033962305565435752489727418027317888399797874796272347180093391946857968856859347857563214598897350698331867280975454562694947741196147168417651084634697420910682713058742363925603897408575923078419061669510067061154356938823388078159015214179244936021808197567101847330311926821235713549525731398636862733916356773947889294375863317714883692922020367965407817593382249226627944663732729199042665027346972312828185884973168355258649372909577676195371866773688378636050540665368561955686119177677773681116303004268874076013169183493565001434306033506031874591156324657801260572593946313209463562474667958023664613610875549989656966827871378661380478509181453905423075818459169145792778800806124327381024322024424566264156125492998515309544141053971869366250582012794205263589334276687221939318572221054239602549445406665756360339792379301282056950060864787608359930332871255671929590398386566916653254090237038001699711366492218536727021182057233858720405321304828566619881779599266256206235285946281019407159630998849879088858813989749652672878346744518589095573450559369309427443523296547013814255702938502729297244575051594658520098261003314937998999945425080579335403940773969006495981661727718408176213575883750715523975939765212242351334330170360598018973919584660733414724760400304582087002017538635211597491323138293565924803231134992046516623859214941642771337894534590252238803132240460944355963737761486519943016313855443353765465926688391045780897859012354623232516356057822485053907470331904469148748224111473528637714577457212993816335388454490582613275401090607913489047983662819684877531944286097951990788575851366332953668874606833294645138643586505523163614097193579824801127171023525976845972617347469880771358170505012111967368491417631367724812553649715539111367730837638612637301181803958761539170435076362570998230105965308795606310430465037178431952801375895598437223381494509906155353961475006689893453032264926051140020843109490990523746527718696951947881343256329455604814649033024552447334489954162416064938025022749970639015764344328486392777801838018939189096486202608698895366813033794064816299617163279855535028985755501714541538018981091513290989409256371005000714202253492187788645445340996365777293937871446625735095432624662258799782748699239732421790815553946568706559708193214287320508848228107929937164395438215328203126781776363722860862548791296256998480527114950077059989431155953688573365353503960439839353724836717581029439598374021107388706202759662125164615665065357765782396192883673926527065685224313183725665083120060868802994402076718523733043049086836373278772739056117793088334562124226304937929187155148231188543034134717887595654815432391270595841061184936328706130288442192125914249361557688752998178782543103622095630759979562617932078313588202965717964236057347085827555567031502139930890682619456555893815062837175172532694769428386361793599325999804895284685744700299212041517619662777314850801373167737156377957934411134756499051877966719340267344728197754810163945165201177238211442574426274889141543449306644721909514214278539012566201535057691337987601118282694572337188530278270648856040275193671873560116940850276098952865827064888864280542497426721754172842767795686366613671846571208805506648294619000413946525629836513354068265781766711769627671401845367024069345958669187038967731642806047227664355583014909874740721810408741235109162308888928459871511788704869052013300226861036923388795294781182455302711228759333104525573651761910135955587951650537339706485338409902731119193177046796421494418368639943582063792836061090527469905905192739931306903714770185802528702465020730252295685154338916519254434379765300061767879953537541934945001474085679309176066695570893547726616930950977583280553495022730890380838461395575045732344598294273303347517305749861293360188789862147220863529892651673711018280175259008189699389976291743860085062382122802159302383877013596584053865093908989478769508346399069809555612228103164062692114170766485906240499380388621603392042978144724314573582583291254002035255785070603483113818273560435115848382951087226655803002165036987908987151113128151720794325684313235902958798622296049498322207949154251917440235752361518396785217136263816319965545982114501539957492079668518692891753430364320658000223261157904077735286238955523841392494078155209836240902596335932342658681657280741000287110283910870272413498855619545572595936933936727844502412280985326844812980168866441169727336791215120185009086939152418127508728022486784376817301320748342168181647802371492360945751636737410562555745923130710278369798029357517360329551290054131893699749071296673711708342380810594520717717508233260841001175073168960354027347865610168022288634528036551056315749885063069910524167892179054079975694060716746086822248715930262476648087669201821696013331736898322975034804450618652637595446986588481702508852756781352734787628396641417557445682984010216443654684462444522519622132121615811422896820825087071202967965067800117960188096655593049744420504163288495024375971608178147630403703028394711751590184374263940544940722097023288998725064731043493575535642350457462677968032451794560351705455624959765592168020548295124119543719210514234502372354232790235879584869458098027606606602390137541628460873333413067801329035550394417822218790926011573479962948071573132735724503863707916441712927355436827778736582291877903846990607264456220316076528441324927061518588538004860509323978147055274720069912652516467085844826553618156707184347672398251171083148913638176683400852383542652571284010522691475505217457887747067456548161696218059799383036070625653669153349999419754404874436707620893237514454137690835577716650859426101294853203504474606286105582693487538794696637294022068194847382776529847717975714339339933632711410216583040090054623452412444156701622824707242387187067735955827374884108659843402547485991221411676466699917615394318732140262294774341252997602453585540722370951834379550399001222286209830908805306115778360045003333604598698979884517072260521387899051057914939595057524598482971536082645734760721695688990259600863572539600241202143947282915714677281605021783603708506386590868371070253063670930564613246029176735567848159814815964722628555790096615052887686915736971503086857028417439194838413245638595628080626651911711005730528769822886688942569218440679179326889276990290397109771329552151645667138458763865220717814385864239416298034305057348299915544497757991175142226859635641199623753463248128496139473152468362545231904093094188618488193102413346498582714502321182356747298383526168695049192307701625596896023532215871875649137956275166932660669140300802310318919016699962836317172011880889945846357731618470070366114885404351979045437541908605550986411671851884637922455993935841391722077007488379397952079557880156487578349737765569331612501210566579210724216445924504860359999291449438424227446691549856927957824049375555723289714688249117666865948554558242945878405816389865025604029816557574131607070202747439588772567885262466665852228000650450853483964125610718451450176387074095223752590118459408420580367987125615031533282781561804860635828642411042952796970039847781745794663261195324418887816771519892351438580937816469406856868205765164063941878560567657384402579871863587954190585865201578670195966538247224533947321430370786783190658780716382816822321552847193795744926298049526400404377643384841834243807133483479113637986040687322985382089500909917807353130589730136291127155453465011112953986989921877923742998161940352561340825353499346797979574268791451769271442664505703120233271180612843171090538166641310211161123690513213170524884224704605960670043136829293028602198509661409598450006910298263285159306032603345886245738046421525670579630163579432367908288222955485562293668327742360794184195531229443431814619922432727852107506661482225699898554123063099312530764425821887326771963517034683876285316377384442469642046758951090524318596113256026089377525529483376298616063559744435634298469055254196578679647875845368919727507582407774558574752991496398704692278391831219291829928858693302658019213635119442630747649693629192949692026127980941330964770838524708906487766617414865446987404427459212324766507465686206149235263130111593175268971901044457867773221300385348270930321182719751578325918901399291675615052487030735175225802811501285565229788553250896249643679187845953460262239203887329664372631810228247542638943727326525652596881900676453732445856531449013871436490832971089239404198961488477071399741580348485551579602545343846292023326135599353907091895254594802112670221031983671853675592068278694083560142065842287914202140685542500321765758331424837563962930174642400116502774259979537910438232256932226541322358247573342215463036056679192678443580796165952762447896520907823950055883867058361415373932635275987575013161862608182328291636293162615673357273684513745381925138761583467027869418259237660039310413726981670689808594738800707623678768048640057247815941007087539919233955320936989114570524110805368543397875947845302990565382317711519812961798769653959987870644003707852680666448399665997280314282934549711133369829317411297842768296501450076725915702231316290698539885632071947924876350605011046848260639180106033500964138291963432844501326763406647790064062454646069912318195776504412975304182461367107058128553451728363936499087126080073993744852072689974209963800662215748102903554266658980928450794799664549315331624847674823393972014970120137385694833427242001400979144202347606830200453717310199723662239624788513885631862968674712201245644997622677568785410118452154471530924723834015099496644807104276515999768658006809025971912833557610041513294114294523452253795780872854267349743638634307526814622854840769849446133968155024700432037667472153494761428824202532090679270867722940876459737793643449758945048213358070487000296632311090321801211246886711413191199872007456862832391997027248034658790526663371582025159427196371066017253738036490681555257536268026985348947508946103892226992289144521275064291871798204955821103212576924050233356112092875145397654249017229909065060709838702071829744313825385568283818435874160757983938233973493618437772441952078954874731995322024855467995475245644848429511082484157279467303062366504776545845719622999536047416148117508625799143187656164550518969445087265765619489276593779055911843093853520119752622467969268550551213052849395413379704357979602138637609625431191488407934819549085360498977198331143778532240653296728135273274675556706932844681469968561657115403363200997726709479155009055119293842167971321124498093720733425302480999982575569329406561387013710568278940132437088332737179472574039326224750157859136097129112526338671752891603400330159581538172801366963675808012203608650588032275453893910560529880861425088313572232519450876241547855188042438263952755140554590972916377994069791514610210764101523716050116371045509911129065743029006468638107201625819678366938782508083242830325047418691035841576589201479241061527297215503050949971657922690194285869900282377702924072923539368553630016331867515015874104084638620843693398962503758869923671824214446085103777774005710707261851899536392118938699476470897562798564573810526635348997396988868305418371817092738910240771805273248953604522593092177793549089194937675854232400783143786858996067745619983336433625883226833524716182264825377602804375971086506342581721234085109538278637145748706810247021590316244138512600136571088090142251626020948384556987469007703302369994065292357612267416836302486362454851499978511726875203827510608021517869339898640200490759851525016498540725437421920768758831404048144221537024717426516558391838302611170256820079009676287140578704973434023170520857739225408105781497487377382080839888979824886084695541739685874422736876034268727123159293329858049890276210770949814434673009354081892609490468930611396258882319995613452749140676594666540890941529170545573529642418725945341792101148876316827586933756770973512126751721433084379611541780215589516785347863425023662191751696669979509230362326700155296700385376002925918981620690443762081499800823189927334420708405703102632400423457755369111359223941159595262129487024883168971805671600421110300729519590734760313105267669232658321626381374829878172413800554221396579780006130528842521917406689969742405862429599526096091017069048355787547600668362803028774430750361049361782947702026806722780918469659827018637574286250257410635166188328679668377883189477659096203913606782248470157055247487952068197086635255634224704643026776709707507612263334941308664840013122780378728525257308798777856364401114752454281446459534874828307449353153966268957764771228578583854003667932403941222927270042185558737349050313556076779175333851554242248046079296682796167920021569359114057438266317656901319712548184741643384681376342671906829486367972303733248483460869947938423490301401911456609110372323363074393308367899300974960134536690809733749496434894419114285207297187276045074574389521158348534417768346295143564661103453026484830866435551110017734748243577881393707916867944012054425951011284120196893811832241237441057946145605407274124796497066985839694172802180639750414560630017156502841428332613606108705177770887586172733913942118163210943541430362835331923799160590487977800808657812318827505716526495362702241341515505363362239869080583094916432641440105912927302787713274159278058159337040717012263122921362162387113600456263121795296642062403041122412837345389207130490409359370890259539495040442401019510448094509339870121258119638789570959671878664293497354797874525043939568102653978046644370579643350691846508737975229989169304558925957908337271152364036378437963771215994354790258614292072492882788561708637973697258286139091208836801189525851477740814058003343936109324746542821486163497395674721717542239219197137646949941066873384435032999785800526900424103231339232364257872873471704453529425911908517849653017218581627229240865907432419498641970545857285510961596203541740387551968195467646992288803813474102811627264424346579116283725888734640456326301274369000262230583073678154029447524072417036247013369288498854397355895242846887679797886457564725103106177770102765455211921897067842550724883633510402815825910173379984458975392371668950839168130857923080773691193527937599431873163064726992246080697930032468757311850443797289261134209232511977811138859421906493968703088721189030751987570605269318190879485492641216294282231177568932026689509460990217078454603810317721149042589947784663849847808297875716477043957500825730513019301027794367240623730117529499319426497883409748217460217706777710190309331341924591536647618254495420973224485342625883633214024066447643764117551821237071054001692501809700065590964863566834313955563609619624921450668798209859945403233328847934076730068835312791735144653095648884217066859115086379306697572952632903915360039930182949441489482251688238132812417914304035006534584613151581371245687454897912655847580637569809984463963557216087964695420110272823830307262888169440280207588771641926355762562628619101279403295216057905253755841910111319560455125157689645456485135918215589020910932247570456316489000064870462936729546501518604174658195027926015042604168532581692599957935374369727758067284912345865236994865408890987150562422075990229528445992921350739608827795747623580655041143893134831464292967354150757617199229633448168344992337495835584403980117804126466858804155813099764205504271221186827384081664201558091116800936583676061541690486101891266957941490730822443156205277222074404757452238782103206183573182561332507618654026916220061347075533582351410802999632471455390701162522777052468422338520486210577621195137165947920206940771090171022413187408423708450891667297074276412504127564710307942024108402552318301358358364098512035350969537712322631990199016049619984523803965434448657302754058854375591264003235569318775254805163098363040049653675337372375878282206617316486029501689859758330863922655390005366649975729081366520446090295943245579473221048649793073381100194950186073609090660068072364000012175992221872907124189692835205757647562673799818759054747307219945713890620523288583587809096758544884718276592916613393451876595479024986221387024854630476329714858531336517267772865514110808727398521718197032840820961259029437509647679848601510085484945157039283855927600826874846589682751113810060319033057448681824669777481148674489107878595731651777974934165614506988779789675035337817091710591542425027055833924440687777743161431265420013349205768839990248101369384613549884959359393803470761904335633851960796161330060697248254683332705254846422748039384899595097399122242045254933150059877872570490269046654990789201818861403247897126334107737467034846857620529897545771460035778131372045893872275697464458475326676792484221500999216992970876675642930472651261938325135457319787073751191190655252890697499793784519765455641709441539514706744696649438494705449098399053103602633980574885384506724788329727082489383815934382983381136916114031940108196498401265867476034051337385492195903470931269244991421100744742999020356143749865764264203889085167239766585228554430603720234306008906032756931117972937955785321936233370579413663446274156729350008483650146445162851266846833416083925753703840382106858828968585589606982092101445045223666307184434147765721759426686247546134845588700794769971088274019157595065088331827303965789316838174845267032963308136495077401281893394821500767223403520926507313262451789545008032725492826100411162162843990297100065391869333445569455544255840212854442201208710388287535821671345473849324665077850798312475305756573167574696084174119888736947615779099063033726702328082683357392484126591822968333847543016795455372197690089597363783005758759433122870073970859857343095031516317729018324430836241285232608493364699969409089166684129092856217444758124951679221649673823271839275124171765769569379718123842544476196031900261722174344889747317371974611591166517642814470142454330663291079797031953841604956108909285923325826972516018202593609818430404072881684412445933223600315202330155235081950507594456488269614166136990687221032818493732183971005006406820154336640193205418217646448370377030162183140582656480253084230615580761365748616934950980518428011630755137165577261412490955019818520920261540511669807569791619907116662208208913491798640566489565302689445701874476443584425127488075206869555912965992913764879091244995883624472046551343098122221702485283209865116983540452116444543051964879907074174260178433221472190257703588304145334720147464126452198876830783785354627127201053616362355768482638443827587988363131815999998000793463672209095629603632927806992479146313466557519052474047275213861337563282347023238789988454949397643059100359577944854760630884339291318066941462765455639302453288974748819894104126193639902231020739003003119166781507762225233311044184746502203362015510722103101768573610966846176907318863496638078208024940826519244119897449857234016463685973553304371943198049989597948458890407104168661921335289389899074827431102956560901105116503151373096730748737428934865612187170020774394064606551229178856344398895042388202127540988239820586993061383799177740148619358964393985957901081005871387548488524095813428375303394696250183743474491869823917186730343878837593420212572780893815543244071742426694797506327314125740584942981539407772015641108710867589238599333305659076127718547298769510196645807009896296765345945117288709192684866768932038486343171959582432264359770935836037788662251197495767418529919438209924714223321034523607450114798498545049906585704799310596240209439838897653448183778886107290942184190323493560424990723379422812952290767640704487295299690358138877504074570604190241692221753017901508560791484346375073865927581249570331082154436404096585476442847743219845230703765548032853858629210189732276479053025074310026070818334654140194935597018881309574271983831634598744083689324193525034542734910604022161339573273726261774494366803928907681564780712052236994338282914580482697331148450784862927069405841000267370141410217881436882535991534837326456876069831850481822360668094628955705406884097749563266224526581399159497729968203526913632233270056197616223691766711861386784886516704375129300938620602396901616164684867849317069005960233886226244674658950306632362318518025026789236958374041955758402346292446806075994747925689932820754805423030511937991352799307974642200775467458624769352082071576861112839267768317394221020940732998903260460496223178851290389474468945789717911158241107648734619790439696711289013398654313994272231100403858888330865207191342594715290219772587853870358895277373417532207319509006025092939597966009824641829459538022178661344778322191360159382746427521381028195452630002775127252275047786099983590144795532158588923557383232530373720652806497571098649798604860086404744988456660827262431411915757076857919820127598916222691551821659537300250548976203681428551970005139071746459074869349287649619169130379231461613268801135384589013883079664828590550673773297931500251181571126245771768331199010272695259584074162628512600794133280697321915577440235858448557458836511186154868089641637661603675577175368926239140309514857551150621329316244837169611945998033775307029953289160107116466160195020998628476653793155434491184602060016668284904914298077240415014399209151067970309720105131842688376208079880867866418686385027202720132505485642678283166499137184836570604238561434151164448516996730305781675072020639170233072437760715316861479237791602119574048429121695803427456972671884986057306600226726148210485550750124237393605963619060778908763934506755806326305108854525963031556273572641166404401267539908601055514133661638837380828010512538529553843425039565899761238771768502849515916075005639655108516972003726470044164799803610435686703941308381066407934629225075781895574669209052957592905277337507030571346976619943609793256435850005399165962932038849391470316290067073557438583664462374764185796050317806040882232338476664875591067238869997550029518543684918924495837887749474590642750754958064318625893738154786510168319663810978694287262802914810499236624771754386957975642513908959520501700831506502752859132987946584012124391248161511190802379690866896855774956158183153685573146162559389520367782545027388687041246717700069140010726787012391854356636990363111752685227036633491837404929154364635054941349164557026543363071625315416467911483855921820923284221962744067872827956686614540788264547585794032970029217814773040626408885476569135880634325859482928260350834441910909335043327992519312655759201244505117118381698206487572837562846936324152512968587628637233221240642126243284654944919405562644160857096514927460051864701572619798803905614678022368442352012815170083784401032801371272439576500199194273173291892322982184929806342262014763432382921396978881442907790716430959308869713561055816134076709283200740616492725309523005811953744310829065641827036141287687839512784650759748600715278403227198511537273621323415852065817240308941373125742419913059914699682787712439003229177669062519637693219891028248754151612824289108893338278140204561783018251929498062849138440999857177414684790379202773905822826949420887153519497380062076040607863315148751092480793476378358223007967806424253690779207947359532787499641669247792266067445042301914841040713467842428240628876235033175421935474371601781565679341216529372366017343274817923443019170153242670240769141079985887727544218690614644510614419478321945230580813926671888824292888444779654051639288798594894444392318969458137167415614857397684237835825522540620597738768417707476535372961246951915934102638865293884389190975384605297269400167163318308314320488550521819816204066080592620720047700923907421289173662506746162721750902699237829613714182888935764029192753594610906668773368442596527709804511983618188678760310723529460216425711533583149245048027926773082030027182873185378465490262334830542355529751674858391185064014675330367764999590740726019855068807290886373596965923510414675907105627413044041102026735844928040085765447451414528668693090816996806862766971306601014302732143609346920564231850131783181349123227397966054832930562790348884100882591530877572097444615916200215431721267176625853480797654468013757666082381667738337555263317860997383589278094927180986641032971428892203373126016645448364317039387285344048599135151438038106530402395844388786617749209344891558768115023266360081801157948169929983287314640494669393256584236058482083679067946385889520451546500291487123315558009961922191312090509813987746883702136494609445110925884558461355884936916544393485569203623302271792177117801951959177777447293567728032692444460793536074033571387974882261206754437996816374758056364216413681813951609651210541138039595113125457429449546143037376547316193420414205155236658882567802671016277879669896924133130668240174254123586584956981936404530063317989370585230427151517951561594653440005979298925818721845070974902178916679520779204688834519477227121305716949342286318602951187384232444612852017499811654260595823690006856249860295674041361826809056881102047093674216629871383326598244084997381007943827096789525328614341208963832347851280850454201840354482081754729356921841997269312803382868165114273531318983154703080235759214727807651950867038665505771615739748628196619041944486764514303864566850935955538929744024939733552627301391202632616444228422105379498858633783516811048926835148489373024782259338033559882642115882580713825347773174622893880518423247749184064035390979757671497369560735932039309300609050237384331808526892995083563359334278275116647079664013626822709951000614101713547861296411830949256043723469643442290389835429129012343619276232649826819225322732203962153194793293206711573000881044708082955517177851868760873037273214821256370249731326626149778149022053771069463298775951268343386330046343293091906617557044476038123922396688686968586449418267226750666947849720292713009998355016071683702142217105257329427328715047339468952534409588804756682921070419428462533132224306803047958307471460787778235525343391173323879331230159402801112848402353465179815024839094199629042109909107163561771428624653639358722375961376025958012975372731843956387772529601220521030892768336809245636609051423634679465627293601286244555603485779439224189275905373184251254916591425607445786344450399497105715635987844059914173389719122624596220558049462000360758482810022250023205744832289237075276094114465200600914690423421969712286146532113263606264632619431025897194645193786960060697722166037186993352980045137765473242901628670467272580461820484470351246630070021032955731574700476406474975825710603390956432000307774143573900134396842632360477640849284595937195910506730656799548960107480573281059975470404730022530892527744185134352821144136095601337564824723369910626810853252105638152972660257857755768039794774951591554897735041377260061838128013233281455668719205740911158211672835286596216345730656795611861970105959463741017002079282286523969014413233781176473199452753998627797279085307353966387593562491026830843385516929869465277978823170175525900116072739487672958839921540542879529740436642374092895623996153671060965814687204765482006219947004071504324117253685039590364219332612515008617126043800060492835210410281368820643984424789832777032039208622057834395848666554513953344878049732357581951581682177110871907728200787144253074974811361884998742124173460735893507445348910307253783327011730959082947974606385110053682008720877710830915383091580928372061111984050050251261017373470061003469540288955547557177852848296691111543995792839989663626681436423542763282992481149906212677549615466985812016048850378930114264586862253985760955352623760574759747738070901025049837530610019358476195568406348955595610207673113108473977316904681497937017472611300090052856411757328474796689601894070366392199054050848236224142319273320335541945144762703819279967657353678263722105368946889470176901595513933532696766720117272158831954453778597559503529541773578166594061945429239191514176948092182706500996033162850287501306758752646856597676575436291887883906748189162852781118060236221094737749054328374085892008764018064636644805605059128003350808997673711019242285957727131465267282590210325530013357879209004588891180304393509632769044428331978089336002327000452119626179056329276203207170897743989035164846331533889561349983148279566456965653136704188001455565111859518077996676128577394838967659356503646902103534215349012049579825011865422139541333217782369347182805069101505149538627388662414083994716054120922580234339924393319160327187926704889913498637114857144712346166319243543188061370631534221101138073571795904726494668069702325215606222875873100882812190689930231238900199800943867723702200981894800268951218341590198055239524272116337152507291121615571289798453346161038386173316466770298379921459224319458290836650890439563634906164214057029558612664701020260205086204265655431644696927583067683463702995460571826372987231442838371842512286817238324916858544436115995673295946425515488003485006278339573027695654826756626939554006699803108407937020703376372589095283780993877501356394960999843356345485837296882740469174914057246683478243973740039080250699990914466319170090431222158320229503882413378308816670009461298306256101861801387183569218981406495970085038221437590704242118282358841946802033926731261954693327939718799388850940899822836145272688386567933578240135128577283151585468572993426520966223576952541963653470287150705103587017105653442307449323354934114146396635466272548910634779181827777572221606194487978843602092331972712517540397351958136590947079378565128158683462323851821808291361493320349057703683513642820351432727377584768589447704407320808402096456533046046259823096726131809827791787907473836935621267765555416046541995613321719734672179528284412240848455131113636853930792342320829346109381476569834130691740406504665747575195156178441352426457182299414643340739222434573243766180364850986891166360252437043946236990769633841941007208500408665726727592341281557739360482693207619820606777911375509401700358281496652229552511347102537045174142479785397635374096438429533973969587130035160203109190604254024444940798658050522706491959997743263002234189276302832830940174345966441461373140295982990186767771579944465449473943783275166906825389610538819074241562506526449460616420218542986027320968918236727356735652875620703188420311661566822530409137164302350488665407447044864988402016756772135758730424426037421237680665137207687054322628709457685735494376236262863761080828938705704545365308053823604989804682730486132926103961581063397281077118008902552890541359706753031050573894015593871487391666074835667111200259280220055920101702479086361653653056423234092099611098626433114441534968206929130338515312584871764002926221534258531867033127166109218877489387911312004687724579949755026863341494758090630078758510398450902969103117628290480594532279252185312966260247003433673530805522469352903126691271207855305175864061866161867323407422135281128630329575989027608193956004912175236568766616871210390939748372661530768888205072006216898572600784549720231250263451706818193576327225493574111709094282024075730403467290947533728304995386496169821670292212472158054539295316060889562651733655001067108278196467179632262173238258281848275105392293823353720468516432738890699733407513216446605274102486804893977932576909677642978234359003564800927081671861002094377162051396413052800604924480445061568895215479636739723910298517013270352169576291162155315473221459645546618119218044065991265017411080773965271519908522141383820928071155190185025685225253992401055101494056520785926711056928331076296882870074065277445795315219346295207838577371014576038998079026979133934799283014967750502670230641534003256898750425976879121405026681618473124085201715941778037711328684310619959359733053630020489952789949382154655298703956859411859266978339416077683421998633290586170259267986156166225654944820627198608246908487747051655380602791605497806527950542494677088417316375803379965698416211213875247371534070854844640676710644373851025012852120677737512054053305787484427185403583997276797515750088368397640419613950718937318815697938580142537628150432938408568423224499853499273811245204772959327213778264266908910113189043861352388547097627305929819218513963097946589576808731929770284688437107816364605409168353291901420307417030429737615132619409423405498328542925719129596116364917671975993281042068043947968621525974449245378269952117160669603670242695707818873728954471099161155662814150813996754983736260625710347256056428514199886790922764571553440224685024380316734871312780256904981756373626386309774197634003030432600443859077622419287143204941567209025243278536435511191939171832399434482722608146634641121251586769100281994250100582610201352300011589827421060161196148151336468400960265043392794527127540615983954201317846030496017298170773072925426497769414042107489690941081468251252317010358300441722829419111033567716142869568286857776257990931164018875332883755158044587198949892276380832181272180940935462950877283524938811589995983577149642630308048125706761646456976474071040882618969557249090889089357628647169995039587366069463152836707773003572461627198672719948909231279179359716262067336056758125533378680270819890886176431932398166015100791480153930700392405771428875682834730631682981650375774149144252831517180739961431457515851289066687153952265670460502378914595369159845021995744342237842587324426377705249420625413393849393514577306533939203882314768498121843994593485180817639541457339250283939971424899141186747017371001077461214581952885733311099315260129730842288184612802045094002850196483861672208711893842657387759480910643802758106035591197517982546243590729325631747360364242965613390467029301996984675448990625227341261068231252080740708527962676837808998824547632679258470609827300692725756754357375891560130039779589562419051707369911813810951118780767490407835631025367948831758604248663405524297611620135439625983969021333761604321337127102546451041046435067751548210840014195662675415061030515279204045146428600466154708841503119649148103703742062550341733464288047691392652446719357382925289120291894713272041555942329876097531932387466235764291312843619958604394231962430345342040248282326810799300520428949652936643113303771949015360130653968033042706339352143216583581949121219749670667764817982427408273871012393161008339760997529677412863066435438872438029442686819370398740909174123780626922719165149035724376572334760125327110743616223565492633679929812400654227288602729421635418628285679892332809637031533327708880796493996510347174348730317729586993496395215118926612041936957243522313033212247232535577064964678656190736934718986654815905212159201186312923230413174028628203236095504976013643876192991668284502316287255520793176751309898284284621740227833783510575145585629293514805425525056610035513545068569770415033237178136461574967681420063984827813739811440055440587203067507414476930562761542954997215018731405210917464991042540040326873548995909186285587065126987855509088757687949282717856981390682027918875126018628735787637067141671758150018365920144052692008861788417816845557604983269006797958639122393115294763971774162205379275161181573353272496431538489006215291373384957038586073243661752825683493970281843356392844001757940039640989340042846102438195039368799232267801160299820113528199739457836006836926970711990168708609397192422602886664744559948894473762321576696525849676083841248104775089906255198415530937953595743828808581677717521053505398386437176928271703199905806275763783240871511468074160047717220713160786923651880788915826966903070682033829165890434397697118577025698813397962644750953925609720413550414774402207210513130394018574972530252503451063800153138864383386284895620740215758292571421407994585239598169042158436574487592861526838444937805071658851459063949778609755324897179341967063623535818369124969940220546556369291560150984008911575811281339593093495962233944061714418636623552186046530329937726580491593524319579831182067107905630088897743254671457208725658983706889351264174028026905078116395989503375465403885114545529144002525643780183042578293798691534471490102810214139078486841588843736536542445407325988231699550493454807276945355544201941661461212507044330277597451619657496789557945235918676921067451112991057624750415868271035465858074668288926205417773303136957732068554665419563692574419814020433165873537132102783816562710045893720259660279944298115641744896646325646906443635602780097774302715993174684125044196781445049596751558667656958992189691789899672890732458964664621513771106479593870288924960862630799247700858110907403798550050554734756276365305758299930088592693592817281338881552735550026967832851295557800447657474716138802931433762053526316813186692140063507421096837856317288995871276147810387702376775565222052408345629673461173072924780477286243471328295705619548285693838811737639987472126704104520261674787753663061431871824938560717496205295585691140252750282163536452094461899552816053475391527219077623237782926390697925888952254329193175333152373391622035359615759823908423343360426987606197023849357396268576800247940847385795721755620318811813139419099968207784561546240335209975645503232088288710225427730096101795382156004249404148445420908837600878681390039727352122098437788678558676858176260989686804264369215495694757790421251554268269481199260821207713264019771750921840912121151786310832211880980016793535445223170878005135885446443410643230803541394810605405457417591088544650476074900723335244939052434918635093422731659020814005763270919203852822233392024678483700505929844843063754285554678509885889174263034582213826146339764557099694105152270523469903096421891358779141179390950978239808144987285984098708632012346628503890126702268105113431478724988406414413415412842669222724981897723342803070208474006800685142114412143739749245962235164714679253348150033617022547030476791685064311660697208595081063733513753389165355912495287503642303179145033101232393347501651474171939127982332849895246469273678683388937829920079895094960018608800601456018295001410602519844898343687378027666251608578059509038327217596904152548598416974375038154089807246456985039864227345943631286962091974562454257983528069729946380092752238422028622614650921315298768593564536812452403582548556686189418607812189123523191696077782579084734861560783736722278352012688939699100310172265786060993657831828612642670946859841855634042447634124405384851119625863658982955464592426974422573800647733162897208261269480781948458266528160565947543097220781841015581140763819777179470648727402983844032454257560855336575420217809838928769703453194769243119774006518778105849713754775180447632342677627720241609509950376083780639906730934926560354457917099138785816636135854204442256917546758684241164512792357196224462929009445858549404811274716828591007075985740620398721021391120099170232766807282227358097055799197267253198439548274478338771111261108282785068436796244460852980785242115327597503967586763538728230539183964915993099738183874596632412980419076123756682775558544714281872660101860706918011498918696154696172270102248073358134618660026732066202573335696019055334704840584687507215667825888557091478174710694561976767383388156049413007270333454042275163843253600909585318386473614713839359993810412542364888459461031719981978023756729301847900421464111423948880439109806646545679759093139293110087005072463139526269621848425135027669309713184274728067064951981919089108796075206747010089558867149537200031712754384679845289206417949227868555602893588595832842327864451658719466182251974775446482567529261890733272589546865155971581139654794470111459601466570555773167887306017433121939858590227881513931131981179786124546376404385524002857131436542033027998728975848528880884604573409977147849425313609012176602323608564243089903029688583548176181682076583677161805185408562388010948076759157295034978930560688593813920146964733310564141301169579062998261247191186846788181271794007667103783935299082913778752116978361666862409331256661407943357879059675326599667187547160902995988464087223736830705360033012824864508030745306442769463166626534165276252919846151505067681419581483877349334749410129317920802475211584308433051471519441803828853273586827652630103717897982530874288790558832320998891909775708486714208428208566394207076561824143960935602215147791705704974253666854692747442692089443741459602335754962886208934444344350363396056783702058705416748108558333846150994349766223596927408376448869102578175060172995988908071944618444763681695838769217559122778009806378557858923867543040862368449296323975991065281601677746430465277206329655399807217947308936751230192752660921768213224914222980469922993979625855523548242305796708823729247840887040977037550925460119481414151091976102169789876783233801626457600440182574335524523372156148959829144068008093658719858791991537098607080034183191232353055124569394451142671672204057192608700645445141207294217909391308176550524055583280490290482329871881015358150396864516595614351599876282541627614094347898843919283947980377122341773084147550755902367586420478958637312037113544293481005006489232758813946895034047629399096992589696080944543676879881850899127015179044417649984138110236443630644034370138699863066921604122283552617000931154151110424518033343324754770925041965448015017199523135007344232828365702032565892296595385121326514961260708527610083153869583530240104459360946647909022269243880045662580788632700723343922948012719831262101521789639305972772052343277102723061250314603645204061305943928292821175145528107344698082234485627173980188872909582129070146062822989854629564739482412309863408665107116597234303971061654720799025434291395677958079626448811871803588485737041179458688124260524637564979144367100350977442040811708309579304547415002475887130527800224684664839296577694163354469436814908707662490518951746226367460592108821705396295079201327596217723194431611011994190937816690142290897768288825090327111558789209855863300531408659496978411052794012009568315818063153198536276763617330303315993895830549988706693502552292533377880560258625956393315548309475301041523517722141279773506421432732046058559973665710911516654107981707777415898649951817519641093374289713082153144689955038660274415765159544698692725077065124863233320598258692695282587843516746212816945922035111223641098662612542411915694159668155425748614949486274812047971617521484495256879700277607175386744787888474690190348500281223315165512121645636599421875055940443940768851950314222675306553160154237986400983607191779780645601840630260620933050816865317783029740501794855851071740358428875124642335607705981207526384700864115689554242999728063575263317381408666720175358215612992210968896145422082278483287089806565342892987645735289855911710340263290690331247890841718207895430629895058188111672214158114487583029187391983319434182364895143895145347621093771636701897839102364785512566837745202700604872335478041439113607443555576936035729865325769835483586869938297483488561324079372261049322545253234910575800667692249335430035552289253232455740642153899249152326738192546856187111011461351662600739573475538072847669612561771788711352254833604565209139871308052122439785824559814686357019159400130122913150845140204893664101953941003208803821395319629300506917395059999912178251357270398474253276685749843784547843281716753587072748296103323687536866454189278785853817504377189927739128782725399257326805273177968868796189484243430052256734247292592064328268556567063230611795997461867042464213098414224113795636600065015813433738454591469201435259138205843535204538773975435721640616513657802241280269294250912212181065472737993583593999051328976179751828561972488931648413422483338592665553185163732216438632532228305467318408292824760377141487589378186516834601341871415366893238693278917618290825369941472822245827616777516129605200109132965201180979304979084623828452146810261848974323926548562195397720007620680369969584283526361133258919323988227784594837587482574983464881873186814618951970475094489064835444109743002868903017734680471167605334051422045588090679092482600734290408878583047259843945815819052562104780379887484098668664313494524773729203875913250320245390047431841294526666953289458726957072629492124333520226185733100782222969799750483324520095546713263462904992377898208627176195798906806085531829854893295344743869917684306971245502232496394098303799975457243255411137092373106430159597305561154128835328763668926181153968659203659383984974782770550963569065766205508057030578349105272681162122558217049231856404327608497577976122881330618881046568249442061941838622723864586513187674469136267559058419733221782289434262186956085161695218973882875288815359736907512660662302852935700407890787478085736452995537784817396676131746407698020921916786937074255088985393746380693638449434571490967343844731601645554009708951502454247272817415561207245009329322761906771519581236010987088018307422030152946490812664693693020897979226126349992085454417232088088650529298219385816121851588859622420659305223247524559140857175286433955862862709013610363831071011931512739308191359601211713637841406343940845660127788173165287918683564102834416167537392286861321756512505958832858234387150408979261255990460286778557362375002520985753379752464826208665946271174964984202458252223926219973189348421848503763237951499018020772964736537966408562683565748847982862036912149641420894948799375682709035233204768005302935768695682877282621493844013570325913128957197351000169355774692150837969390091612208349115973188395217642223761795111387943405550517157202978102466364235597178417083092279280527676413186270157073089022128927516113210313247375741893419640606010860937894803168769651119718842635104101644672260047829369478747063050475827186497753881751216887077889746389959207795236427314739282820358149938174718911168053457416020058994241714741115285607248402963932825633630248698600447209671779012235703045877337310570655014178374866067661705727305818803437484098591725626159351651092671665262880595395438810142041048584153334943885929317659704892182677902526374553673505529330751569259883307570251822452324763062134986049810185287636488395057413723013988340762845046780902784827518231824533543455462263630540644722857221284595357591860959138580830662444544661802888799272726103514445692002563384153210869958434875527931014108547399791381606655982602038226326560468660683031645836061488243743180862107705906652086585657095992810351793762377010256039036892391057997737175788353401640547741073180238231593984774867950952330119648796403641560474711004076667751256230665039177713612717778877669746602008988388741934326299401742799396218674212788956634381120010823631471373370048649311879522419850152087779057024198971648968304393811098627054829525380573412101818370125808765154304399552935710903614989248974635762138548603123791437095833537633025174731574749941845480749163855215498214633505632836381747391594801682230697431753916666133644911215783521388426301045009628800257149849828837017393020633724094288420937044609043721790721538122032163569031001305480275563464888029726111721435354273750846472579564866687228751638334757158720391302526778677551456480176606742354516242033639703502326643847208315089405248950770280858053398163962365031297888402534263327065853143805342848279458994453644910918013910233285673393333325911742769450909301576712196839531025839424546784815643856742048975257348377449497190944093112733556284259709841212416781439871621821442455278322330281202382622443051351354086314070158153637371396646615777706283975487642184916706268530813573079325880263906739907768430133139147015596734119851771682391896913655878159367418316845008462179782916902629406733356520664291192394673992206824927694881068292689063073291741398123876221208443418485078237840459394772430240120641834803890663881898721120533606844078737823150199336401162735495330106962978207845540722527393798979186672994983056128528421512998368241792841282833107819700376499397627289799058619034919936399187437498954413433152678893028822414056491378070441093606603489695174354150400740550949806798827964330644721040350934463432076389946050169557000491316769372617050909314641025118034390696529231164177196623728003442516448424143976252926048681970505976303643159581159615413960252493533489730611290731462460338243180884444809774654569285269258873648034637629720469390677569267050859079512432247130971472119219194900556061327623329249507765131425643397473502693209263384774740707762471287328350459560537370599419552245253452664970830437914436156664098688314766938023758907387493869051185254399252090334325266641843112370154584816186943388800897642080792697522891230501043343189860363036627420141371206837225279826582965770532887200879133847270653731718569779633395099874282381398726956005200056091600830887758728039692475851252228534056544169730074932545316482506470959656141325205145195360495521622478656150789647389148756182809483790305456339315411317497399594572783819272963685215005984393486339428462236210737992362100432724079191110448247201186671177986609101030267477226469041105328630738241902397529734125035327861927784264522964201632575738560948663394961687339213721968843176935327711048893352264182885594124590299851404986276388966612009823934584105470109082542429131463733564029531323653654720017673835941235067672344692813258322272815363543272175958547030882805048472903571506555331183879280122754298929383852894113274141415890733797755193941633594611470528917527662779970428869263184224150098293103549180123898260518741485648695110860148149434068244685663512382299000044417836908600933236866270634138909769058493877680244864464913728954434802601210471460229158444360120491798809117049475228697327586718622534146539770854541654826442600542251996855030500328211758672117635790945123808334689389253701312422820132673399909621560556072929750984911399051438402960414571328197464018789189967058996788643770536168667717729859743873902827563743689181376421568959880972977079804331731947175599323932148406034115351738364645184674191826183257734480617386234845387605951297747300191985373370173979532319004679946127273349332275990119331268168977087695791972820462740674997441182021786562225615398673180655769199386911852417507116560738798676700807568529616194714559773863851648226886690278247618229414997720724767320760844878204513031034630067962647584021686626958210185553405636072941938428174956263710113297721025698851171970059083347653544790048374254905992823436577499625292395547236123428280392863068717353873773365510894383629288113875952969609441034620683218476804645195043369766254556328383696229246983088031200525889249417416422669247527904609821987971139515131030645095443779232201656583742072835900382084164617425143005261029313386927437400428699561307694545687828378823408284666157947047524648591716554940552081816557007475836106480272665379353657252849070693599822792704293095611552456627306050757135983127136380876582492209295706329043012851911750883359214492525406597905995282673286045831422945695422248097444238749230999768030165673615537028893011515680130927405722669009661047720270458203703844148437291002345833049412895412515149384435906292605467959356470053047138647881589138288513555938448370184558070103021708172990471151177087112157822767371863075976688801262017806294599633999354943152821544747864797095174811794156288027195456288141654389457336518079035586826809836441814511507124986937712978763948536814217993839005908034476913567141310319034613794175060097970042711418177503031555150362470287659258505738829972961445986700280972972805402483248546325370412750254362781975885257298337765373082298226941132733014559615458713185492641849614638995146885111878591726493493028121712187751207479060456179064206104425686883056146273774949901643038546630809831386428130307382406733471618869376713419601274040284321226778944750667902606759428206679700938819248064499883990781722084362094772158718464970701860685288723129575845754219267095893671592278811828006943225318076529673501564809045339234626419836042909361085195871544234435000274067566430406223165078983651775203491198475197325433476551306661252515702689798592213015671121325590698617396921576284399773373968565270913772344814679455602583982724569042519907165555388290676115235503215638056697493440196596049371023787615608555851229477231842583767366451400044405591160992902173903996815167446784394854739569456775838089116972598144737055280975896244081105064986905571523210001411549339784186669381558027339590695363497566790938393695501891032076972560856970258151483771439083910879721059224765553857879553672344913974737767405633847398537041543544809542938428457975300479880870143818519917349863532807423256931914765798985240101614195780214812584802133636101102239492829110372212384626618085651549941299913422423652654911092282769896892807708373389064313446576901145342783256691159514852861157362458745174901312688521072635165370105280140839920260831498244343897830271899144293517616187024393297863349623775321674470038816627657130072582375979054316173993725038889819349467530655711670080516022951224951044784934101886418994726031539960039641541313502452964517071431159572096925518324645377766931181486253009335633793505730796384276299713372487361600570984673312456855870193143948471046355546128795930669794281251489683348689052636616654049157369023317315949886807908326948799343843828477238204153297883421080652228357501310243173116115320380208758243292062519449702890898606038712600006179144644161773315941713532507433221150910574361889925532112495292583020380053053603347873749993168042723318204812736082743494694571343591035293289002580885831685514726840114657889428349066104486597809783392387993453585491167399140698264755126459700737781915083465439875961262226949234717611009403394726858945255843645051996367622206943781048114476400547777418301805396416757868009186384301455037873373681078380313708789178217514224021280372288005787522524980923063986725529788812263021986170463350980535397771130513164001791523599701278264626245680365787877119758141569904455255928723531808193307896606803895042213224509210438729974432895768207037593771859421662838929720279415196023719780622315657814189636314570906470244794793349981291127057988766085919237444652687091050835932854824781029714210416921764147629547672309952432095766234128849174939324613065996291130858453371967092028913541542847678525344467275053414769869635993779971265408428620443167538352976191092167393674251245526784631652231003869652532936085456783008222245186633089574490958889364255445762318813023308494126164350256642593270361213470666443634245526983372360100750847734716002985645111543582364659513504694867196119234935457510886044883325234494097742973772557704688279474517428992761539089200545108965884452239116246435264025607134809100319330423302064197441977829560606017963071856717965447879126341792127100054157680858827405390970583900069761111856915567012193309709089274555943011655362811466758701725939782739367196455212658275701486800305541206345791370133686729397659974444165268489532808005191871074129337612213337320907860462969523336230961294917976104843676420452041892391558984074671821378262913896181333272647433344764404977477213290360297992543152454043679204138117018433981606086037201311485410117115523207782715490666923718078670286912668038131007692458101518957345696092263214773020138328055767007195075423235983174407880703508037075539697306772150737315048025665754106694376044337007171688846935594210229395042445021150210712359569880173476237889354359214267057116276014346540216735696442162243137316981801910411649741861975906040174722594743794639418028277534137854360583765529651590637475265352348912158539058314032190774545450782518541772228807478508568800597713992228728970787006904377528276778808371432063593888694570660438662258637854799702656796522624938245267354176267132894478805677250286575593822087757773715597049063546569289136723227420197897995747411771626256444893409341079538149035418316961160973964062677548931167745224012785167459230027019679068771842189670215595686789292666410834117875361778457400461127579931931352583764482613559096887400671424269897564170538060364425734206242367588244321469650805116726547427648660900170033911497552145060677773315457608493910650388713339181476739909344898303964126673587989897757164931704537373095762299942784220839945224386788026957667691110276029443635315269156373119361981901320721231375086785289470439163856584823522045196417312914884790408897436743883608344883172150171051513987806161787051507804337677703682382374910818066594311878787276473607562980419456190897902972727812733280974799637633840852066246580439178334538716427049982526488672112309019406594804913167777636463414975844492987793603109357894040942965693127047213324225103428627276557287401081434314307763069433150559359079283641512102721366202923820057389227713108476527452831949682864338675613468017599359908269553020285301101597672318968800754830756654043269188867456730523247719996175908213009987009915381310724657153107657617858478336359313747910020699065196282858355986737052865168002872209898182115345743422271744751656737338754715140274817832661071201457993312314142687720606595799503462869300336585859754310218703668122109938261783266652947088171295402179485382947538058496518963772278628112684542419988126775162393651013733020928600445226555867409890138641510526562369778916347666130850433463613574466503866352275863412939656483898418803672055662847103732437753413186310774684898285961788404517630237722814792345363778810705935940863110453402696476372398892294378842478519093114780231582834458304988508876542747161843001837684012568282736277638313027869926089666503478901565596650077581864315814206953709611583409002447319437132869697078398635517667933669669302490727337256222027841251316259492110771686061954655857351576975223978221200055459988496439001123260407160447654655624360963451605928059914224117797878682944276852682419500200419442681332380093437674302769238182547605264005798027384408655515622431096284899955666111056069860237584270909385982936248513439665022073153414127439164559821409369432695918307570010907078590522823585792738183401439818917967845489478375896435117920116543853458106503298481892979865044477726768170209341597652025469648703557994006907798723267867804768719548157833639011873067310427476142709759368688628649090958631762733508440221284606412402748097213735378218928535568931880007332096716421498695993395281138029581264308124322144811059066733215216934526489788408337055063000523474410532673476942708929216535639198449376044978635354358721106938337867003099730007106518043675267390756184043749430750996283648981457431845851515372718041231931156577445905827469432334437304127182599102537886406005693667594277951200492018439024287500272240153512546034526648685212125566394786511234954420236913262502095050623603920630238681098938487983516808858975405651885945761879786459696525075273858142465655537636937533781569002595157486705562526811091381790026779930165775261933651380308702864097002369544959856842194649993512471915202155899067102945567924627672968482542020637356219455198279505629635404692313038874574850284333892033683954398465403813495833645031896642337358259331389482761359890271963653123679822408075618922436552288810634845126243147149117156732541161684252318690908059534870382335124409537941629525077137307104534930308490385988669441756854954737126701124605524046653707956533170835425626059053527679990509390219247428916278895346550676792818364828596469290749042422958532782774309648275760437961417151946173086435282370015518811696669120970112463596816598763690276659172183729794059831122833123983149415088433176387605100554631506992099398874368015089085460031683815449472709932278615535309988981187031933047875895427551974868377655170108822465428000310438972850296534422786487053082218197512449952168660796990989117042814698769594631513418051914585748555505633271425449884959971517035742651366230577057906945710902473923317667283955412284086663714546071211453529849629885098875179568614422516961515131569816266308207515582267883262754390022653611734932185944538434949889250751054950843677515035400655439300860257920785226492173241210415035515247255970972246566916103772331145548969253186721698655596056824877431742141980096300966393872957008266215181774148015970494999182058797508099932070710279526054597244919843426905001302801025963062344716535514154151269423814975293590447333555038957907959238156204424602078731268888120860551372176488163266983584755661490007937224387265833502512183533153548248601088052081370281099958830273996407554887587037879231158439188672647585326372707761945749749203248703640504227572412815820958113013063064040898480131369291291733091933658473853085246037419632657683043892775623538653211359012675086801448498271810233237625477500144110156580335768845900797147994435305277049645540640213075486279093718403221961932842324190839932447915159483989711002903288476748460753058015080364650544462681587196989379722130751625232987660788118929737782793368219774416732491672115523169379032482379333890036671693428515713695039213259631629127888532246176539837831412583077799136430598281648708742588176962469455761612245970899325930807251510231777918135306004858615200370963318052210296271257719637846057053341981762127549388343595416909769609545793684905563058425001864647897369174649557647596263465157433313512801769241504903792054966876103952547243442779687785640903124605437033470905015148021256827275434315991993287119856962996134740047281863057148981013608284773048163668074512227479602019766256384687868712669733124384091391690046680354944202018360147948492255563591224771079139737263518971051450363260476137602803787433614897669051192077497065226908020522777255369193764732707874974854742580332053854908763967549011652181835938058522720640682387129181928818329673338035185126350238317707457233719955321170724952751832788122424903851224939366487438565853687418967208594061875920664564157165798277100922382048889954869937503582571196780292063833205113217671048394819656213517203371689306889016035148058015025962865039139818938956130200855854185196942590490916367411860406558629507188166198355982035381324334348101995664161842813132853356774201392991581958380588489333951400472232864874038514454406237429138301779504300234768287442182043067062066702281311975281201021048769874279700134431737605017019361618580927854287952708893683316348617921514924235526307096570678281177663217615813734268823318678394318576266561074942800758343919809513706768939567925167035523342948641880238067618546649301280773660392459886912154438136376810023056215372229206424937780458929221355554761729677589010619968201504827401507940653957318841079626325206695432605120969777119316095479596744301460275130126006836531535634250447184730091250079679154789192480156540169160513710603637175555580134854532728503256255113584590248657311723993577771037357201952030375805705447421337997503091923517526065745120100784496852330175526480840074498693179416894770597530282358648505693386385276024856098397352685226158526074139541245308512179292333032617091073223270629063424980767909543611715223635003207428917110685917537399764354283070639295942692610536155327099840515085494677676587341293236330275116654423440764099008329770492756761511781414997213456350766721455045056144049532193370780941008350123216327372479230864120557479599093949966753459795678612985645568494002463687553556683714616456026185993614491843409938568961483101364417432123736593964559305082748812755973830002355642159689031093932323847783212019770605614376475376186631731647268821232060400937914559237443039545802800144224081586718228976328366258495532184317341046831567568020727570477380350081609378763703194044245605218227290443891639749250533552643413347115455998330200638279496291049089530033764656458070706263069917838562657741842595719704230159302003062948449915739400808326496366552482984543340480075360318748906738254363641028931686222185712533480260228836877999620011562753581266198121815335441724280394796728195290214559727881039991374204341482366204539819980880044828272877602247945583358994066072559207552430584430357542958760844874867416937117536180170711701603641551365976982583993381304454785906067632488789343106908622691348677219503163874046668195012244982951349539145443454484365546272675720970600498769082823271730296633641953020046094347103337130053798811383457280078352246626918192035197116965984746579335737803539069332264329202259952342625122396440892592017904253231779745599884101495864520059972996616004284295264756799215757410371262162607685115230768971608232887593561067181660520149423606747274909062419255629439298828632955981334700767906361063404543836505833288942312335042229758465995559838028315073822061931015967640377960423175805767820024023542391714525803438941932341772104571236044011013472491789477860602044261099889099654815760975468212175583350041483481244409420199260790525742854148714657990314964800420355953474151661325442350613383563581695403001973301689979810179398301866735136775721522473499994114632294257066991255204028546529492470425777400912861898931535703797863851644288222490686973534196790915259708855038494880536765752530695925685706349036143395478388646299467767060516200759451339396320733094531882176656782146518923953513360540283270245895399503874384452991909711431360351304113730737705925751258318131290276655763587405287197485461736223241131811340336837209979300691809823788766332185932987515252375413988150354337871755438016869723682451157062397334193756963942127729249580042170166827741256127291096579520071175828308492182865747162535725652815047287948795523830575773978039144652573130717908453501534834811316585682020016973737358111802440127074628616293217966190924904994022085972570154714093863498058475552091505477032683578057600131570172795916076385019872827574329785469528047153986179330707115182391283587674474075985316173771502106140451741805641781946923397195471381591292011457304860404708240392294042454282163850940494439895595610767174533649871802027793687548592754945806435447131935189530562428556848365262394855790254460490121205745237037771719763257898881551589810384913555218566766195426041621923810227482795672058946704462762535387490705266647032232326719551405110248033734676996144464110513153859314167076003837788651039553101536058918313897265760540826052926281201375289790041046308843980259566276461695950401093292044926042732207840198099058905296344139409179988661679473758888848018954269993626287319836608568546232091866941609530584173698032899547211792457696867859698193064156554159647584317855285416024206830853720185901643467185691532246781382315413896239030719204152756085744892732582621566685971576250802091710136399842380205834538103157590518578914549871801442810510982857715721382605223684606838879024974947192431039827609307127653935528567061718881483721180029123918616410244758804432169942685398836115383087179476770648207355212651324663626033806864885772906714644488810890860739218544225994443407733635967238203170862414706158657307048849792303649729576000476640234707568085844828150033491995667571943894004735599395662451419682954516897722734623209446319775576460226167707797340493841659386248152253195406091011310380226392610186765591963606501540079618705227823145553787888044543611816764230727256580392852333640482500934840454349615200216360784843272470838910685714175937193820732679593863119104738356046095305959876714074115390300617010141297991031023444212709936420265018729860998202892819411782533532964956434237774424237837286338162121536062100014220801052009253052395607985951509028869216405724646990718040980814370288623455479535348195198584474437209675570693376233431948850840181645408446641796412748447194919021714518761792825374142498715161863588739687910476991409219725228128186097016754304276181051388315430241881712609984547241138918210069007124737205676509187278371704210734054896191844127699467071324449231521220618544851806919528202807173715618905270949344289838843984807594664230250485991863845405551005139158007596810990315561247876721279864835255982339689740839806214439819897703555624521883251711160947679544819119592347078753095031903087187896282561066644808882704642546717830956991209192361820690330779611227046770062097934215970057571827149316406216736454089991224013847061783265235697704079944804458091323502862174452174901052775473397407638198860446809403117818795623601410009221279742653369604434579023582475351022850632135168059800792141297486488699415367410672065757109503853566070423429052770171518510247343648799058274922073967483231778090449514048144130829010789987566388249310394988224729000592781314660016255958828393483978330736553207204338152629484304692948751119584250813628978148133256809938631323637689904360794772433599286637293443738763611534786859636126483596932690712120118048304463863479395451904626232157331659564183323594230801422008465758598138588575137245572106367546539923943118976972067596433845437269849912442299722121670340862811657905292069037737511175675628114870987149351769273483784587758671534157976510903190906102655467922849664224284061773700189392412672470984134401013237430472187138909122226261164924525336250359069018656706970011689977477010384394715834103990556141485974976251555450216819803593765513586497985139466986308400677147458988930876953428076007778291339767452991282078953604978317731837853152941107169668468380083573739144437499931485937631982130824091962353963510847645676489769006144577730997514404762453346010319094788430162192362019440254180726085775336537537310590527059412505434316226461227815705756169194174119915744309032773690573448498564984050402482928051844032590338776406937815636525310308813203297248565383481530845946168285597165962955690146136803412207357104729857521757400112566723147717310954483978413971296526140028357457994253406886720686470128902954879097999416774946534412099344759187258592574248745185797088158556302241352116090707549021659957136618218430647341482403063034960277979079973115582757220217672310504171872424074394690339029678646269600446692250540981628518031482710738903205126683825139104175077025859887441559040862570600418111708074436846429730160585234273137079130879551109870497227940419384105820093364618834952827808557816382602247890799390948724404003096660148264479463662898635718192318371789199456766653069794668840114892949496338077953326367390277818456448324422701421960970243389700872838539977483441982382985820571470202543073744017973029348346414623686152328010391917088534593918761549870127322395793881177888031537573379736837847387510771213931777508151603995002615600689165637236508624113770139865745684283283538750258395748057974575886530550005268719137268740609072326746529954133845034800820519721078516309168698467268284211280469468672463568108640895904942060602780952090947629883917503616954235240389699733502911626395605128969513084393127419749778701551187459094899048313880456665347717440702469278997424519164603197580163237387761817075545029143558272073031733148086008817415493042979738518907655542565335367146386872698065058249040886866439184158375978377774679182287774328744017208411101005298254439074186159514879832671751274368865583239601019061796762227783130204528365663542363763132770107114982235074870292946390800548334353916754126831690316314790128845444876182060716338934101840469667447669003097456367530894712232058691249284276723888797766104759528869440955354415120282656869668292322106938866985243677873039383341887607661085811190727158175814831686942293778010650059111559134800355662203762781933056585810461925269539693183087487764398993336440301617852144389721422662695733488395611243282952113253678383607760720342725055915074445321257747254565237166692588731212202692870147518132968412946775809097060229126705297229983859426821963590053281899243559323711133965392652943776304578739289223195458292287860000473478212165048727603403392373118955656014441961910160695836498970609077846862099115729627217447627250459623980575002916286874046164902953586387955594349203285663518331623668322706772707849909264306662017053249212144217764342899182918528440134621430797924541549238138574601334391193113614200675705371188015210469998784176160786853608690862776344523102446614134515489840061656781646453711009588465187039932754782810035025379296610634408560963502433036112278271657027551281495537796735230658705009041354872656888805500626249614256122112306326900554165656501280768813592156590385562363442839392287157883810009019283950522488313748912094699189565989575656876942112877274729802628896777947894055482393876495277371517598993620533344774525177409789166750473288848397896282915668531673011821731212846518080186691468464478285849798497977874327446160419509146503653937841746352696847706270238303008413535720884260502396155443690127514835410012101103069408442352661334353904586337099123805582998898461526312963556915921318844815064943739671647931586662648306325837868359114568749360789742074113279758799422283143844689748629892876607645603585241397727736462581586457414393654470127903578333479738459688019439071575872181878215877978954724019689555161189108754066958178298594909557827394688441564789255795935023157563469707341087011118470039405899942854286654106777634634200302081094247961906255213370135793585930820726610198339635380791444151831395807767074731367517374168869510586705304017848675047362067332686913844711197865809538750148688984166040546361652536808114746094176768213748482989886929837417127250424960365664433396123620260542049912046576143301281216508747762882179823732363082107647057371704475800754337584337177881519651344459841000188866022662107501290686916911949278283410672862601839323079949149273579634545712858931328089517202434593153791543270442142600447714323691794016180968570055855378963904646130177260071159217946983994541132560291255250362754877264972567260693701139274216484015167019433895585706538783754582552201152162180905043227954967687073039856071296819708124438516694701155644613117306519271265548003351501315803841324383724972940598191499547183246406122099289783051263734997904364638443644329382615834538131410020328053977506207811894353801939952281205368491407526397979277423523853447178929761304151315777510669284443517615750314737011591635842223267351939433710020873387200214273984312882753668208976768836481942022908560789806640104892954917833105804009445727492148245101358580491195212215177250685409225057613355610085893956846286822897063942109701105349715410755614646787637873746785549901931618711161523837678826671893204515304057426784245613448017034355145386093316598925456089103326836621502481610948231450219863599930830185715463245244959160625862920264298728936166571971879224226550963913374728441565186667923800371915535682351017174567588089295076804161875444612498652255691649204257081304264941880886451848496892005993817956341252685751957450819265732631104742003034988543549894181477653688361728512628835451923703540650282514595508437700707814345939551763466695351818771897422402772538868425301802621128642440048046627985295223754372567564517173762125643776333655388335223647071361934629808458285183548679962151025706737193267012430841218993575208547670047700322215452651787687016948884415051538507146745773197175051136022270759114712489737766269188496006851951188553426909872641931074582448429727132132708635286195223252743773403483015807330577131994797472779991535995685731031784661889215788747457318081744251477910860069493691817964387910594879335503992278676635531393799439615618385101825195279682773576970901797018868274431966405124322826312264049102510891554258219460862005100648894369676350642657253191213660740031724918208745532705986675308841024454087416810989112857530776851779185576359477912478531785345090718238584450519301747046063486284670302819057143815547786410467486657571759561021926825418970174903949509603050297048660231062144278698425707377382081280283191619128126451522684179878890038124555797303883020165238004738135512818882808702922303212248946169766882992677743169152376223528157084096796719423044389285876146644228816350335810805618333297917857039086842169340355022419781364965166703030755491050191562882456093205035449853686933678098023886008056297736662568757179984916492486014528724213125215957519257275125856786640535491406725482139972511442557639324139246307093353670530726358507678346393796568481909129904868265432005507592933288667778786374340854860274190181075699644668230621423116398548903193499964488022978250792726862208261838397381838400757932452672168492383838677568090444027079611784596000634800469152970088886655637448340005671384866913146768567797773656767377192852757703874558029681999369390596030506162727394706190388047765576246782393047030710881731810117890068456898981153383327714550082918580851421563275657131534383302375161939784894247848869331348210413511530504070002796006480025402848029310203613217943281456818971547336861105974634569766530233367267155603491253157662633470777057717428618135505326700836471790958087203700612717448255253629013320087251324068034866441469984267832512666707406173949077944513749697913925111361021855306092080421868157892053295338314107248870086752673536427184013833456623123542756489204325122149556715428066089259517280929592865315148528966545098917575920555361784992171901981883775132967342773433807869090381786490744027016813462793424272158890961768531518737277503690700006493218745771494408263649038336905737935328832385171831373571656834126125542721339848224962631925410160948926023833797634436766603253608237291086451156108438351028519558608272432433519891464170428117240359812307140233456240765888847940590812303936571103570271752885128109736964452838649365018276907526644308637661618448967831888208688324687718569413292710711107029116073957897395408159505124683118579480212957586871461271435353160106213266408614567006417279108134509839563627550059326242512084812111894111954347275940115146784279510524366439678795141566650964843517258403210704651759365844598997887721277519741232760955356205958466459375279763780498251462617021969170242835018460832081549508257682497155530956233474633250452426324173916409870858638907319228034216095995678768786907473150204718770060806599984656496190829421452622834995627172082560235613130359420232982552172114407445622630558156307951048309044643109812188741213892746067768694619523134384415407386120704026622181361503265080849814882887422242810726625558933874022967062236506414805571033622992875621746289806549496786811988723246065645668976736785843696863763830739757049974327460679000703094228031587582640178395482961118394992273848277566398758140686916726669477773860809267887145943619512418927788459150470709178179034786237595103242973013106166841109646442429020422478172807277724807188383682889390364092432664661615384622754319105844818109240694769970873830295620038481935549429722484749171592992341668430561926704281621856140937464996921982185492163571213646846174126456424165011743302451824996616876941210021809002781444317200035540653471009498251877921488852392262327852954511063276399715573574052317273951539530969400616256533013261885106713607717581352594248933831756667468778683843637894455847407712777397687968848781209593805768278964672610388843424732462832562351916232756845990220593768170405392515306402185271718872367614715237920095668594062457722808882381057686562155402045174850193666334738567998812152154481934688825567248371066808640632072016062256293194601323449236306683759317908905113839203006255856257288046057789732881756033792942669763627212630296883492490353009418405893145955095088034259236794876980916297856134771693653608597851845977961639925403804609180152626459896559631824610962836887965920526829294772806068132797950798002925140124538840377723362877151883381411004046771092177583746637504551869304393243929881588339165861416203796054180704722866212580304889739266007919347895437449157385222332369004246512811096879366690901240980374373208597812353951047051030996300983430906476351130446001453086158867694169000805450032136750794157097206525840646539034253959794346739191466637322206152725485005544061944347147250851790791097856756855048724816994355715402632883491695408291770737256559076581635401753500820613338654748824210816231876233944823156399091626336478860259383139383426958653383230678346006739104177354738949741228011232885197082732874744863090685505172620868740372964693594998340464068676479607945856710309760713927258544561749179840737341905420736863299769919983664736392908062122751602235335223911960327979789162477828448277861440306152722116391993951733065889019272967310503753431728134754512473981195063692967605778032130667230670586845947114086592457023150323878248754280008054084262042191944271998674511910289231720233155325109092509342451194428235995309960578909475854109588767674530792757596855860234514003827719809306654510722523115341932077639221446951484333336522813873585261874240821819674762723817639931514427019465099239160459153170689197106441535022351507138371810095238555142420009962987762021913790268933403798795656363654802808742225692459947725492652058272464337120504670529639273575739234868028503405897860182132233254852300389036444072770022650429391334607273759845929973191177887050560702936188821909315507540911456691776126253803256307580570630874059500032741452470762948402147657710305109728745111759016293508318011658038906892696172041547921191121047818966523226550115744611148984083015514232054586767696908224772614154913008081209414007466310791581989563457800328245852640932992634614524263580081076082998772478282526129393320859397762818764327848350248759133864448877959728070280858199559380326448431242333963467193472927734478627714573758560238514982636834843715980243111677694815675161450953735555930557439005263460120557268805700141421561594015056034142023677433409205241711826190173182485235865102344239602382427261003574853786525334481858608997349764016324886648173104975132108317290058113646532435141321598786745482143866640599182771098509719598319173891935255442696774227446352516252753049502693953053455555911097909451460792533370273958539495087260850537317101449906730077971092980307936670165819508870499847150580750487364741396698562346542541693503532344075680274738989018183373573050782017654363467889958915125027925809709812246256965881195918677540867031796885863478821950590181615138851102936298167557647914021648002680736950720503046115601322868893972030614215250192117876873262342690267170772730199312544380119654099093579874802203195624422586884202497933489844435550850417585129050667900315915036604617656748895582615705524009094956437232530622323651359243566296157372367157468202185597478974065450786338293127863539172935340854964012125297609927351137452252806373426606009772531865832581764782757581349631014763980894469754942074680181915263046693142169770257058224064998830208333306087028388088323631469230797366075137010318474777512781300633650838434572573135359511153165718467560347648583585497992889352972395039322967403888026905054658271008300477039020000066330381154032194322187748928240176420382483172253849656086402775376238096532665197384321478935898529587063546321626241047140108693406370825019949492767170779468746657841998492057263049853601770489632384955638224597440688841663088285266681006883375402452669572966345383790078206483859983671333880218355879655190668265384725393208259555299434641282701256748676926498114257061523180638620356460257353949887774837755306639865699709916602073809526438091395454124414535638487397003425418857748265675233811261712173868152522540859716327204248862155732154614109693927444403766003994931478168651601870085732208199680126904007880212483471062380445726781625178767983121828331491713135694822206336904458353453857498892013264285983213414014994336382783954823769234921827501685299757630489039181225523323726190472010566390795323364235342244589234744820151214980228770609385946664730346078720164078325748200233106470406039916966085965122417473152647096698542906022177099943662092042571787002127904849575499770249090812578078518894559370363984535719958277603120972232641337802127686572821502900456744625400660759930009448446746831286698781602361283904013971543383724228106285288507662222624798793978172426530174983173180889629511199866589072391118199029592666253181688373792017237263623556367271857608951552338003790341802494645378809731145485599918892160108277381949805993786507931940591288539065453489822046341123584456977796440526768664337246631534854682055601910926532741026736481398169740213881370817347406975996660423098480202313963667269728246830526702798379148992117822635318776833617652094248101682724395687609660874807801715590711810071536184139495285085074515432048823533824165279708257585037988778197002038033446781874180112288960553956588588685145519297628180828360850555768845834971615341868279203648760332444946136255748210453850131275250570151955579763372804086984729391457558355484590869262862372997115673741081285713871772176965032724685055116593310013311079883141092294991124230939309941613180924401305505458085523596415438594644475494088442497081729390081735108651923747606075621189209739873851146165443474478637961584984918310325823495657007780193045245196463627861699962746135628390742625573401777953295965291015621692541406722002977955281543741616436080668458457557265707678238820447681985451624783135221003542072688397847388994481930708843320487681471890992592064700969954863804632417907992807937021886486734259556625116648647084408835091865544431721544857764105220927786141850218351485406226738508592835726427043356614829812208767866523570861976184066809723419419239020457420891396590935387015875818055839745829170372490171593800205561751817609851387026346853105236838215309106985466851876260135044546567968228308870574410404627899163368602469390015831823158361570995183208889606986881601376590580222327663436371891771426954426409082171579144175168981099819320322756914419587641662797424920196501033644620228602181173286854993002420167237602421422656439496804900928305539201119977949394588758216927629569441088355269362136338885760740681902933249783299064836742408787517131866423043536805952734458108301621322759844237816912490004931254225450636662625169288864766307554205645768012248219512721184769217105437325433426450558023923867879649150626312264243997229296944311039725488242061562825251681918911456520549657065386608167824929763234929273222513313304906669584749528235507839897993947606148791913901730039218965224644931092013550155748137751860019457352163616933141577588710476029405002953609796654496719943206974143707564228115937388101672419092635636410272877790763956579221940890646178742569443451572967132894974725853510425845720470735025010888239503393797301742937661219651332520297422711597406554788803370029403301950935726236125455010400029973686291870305106953294570768125036790663785658297990422952364226541556325283088876668717953347563592192130956226745537497087480888182515297923381958449688923419782027062979818026653515299731684245137941021008840209195408364813393051861145028398727886052292269496679380381111512886209052917609062297011450386623987541004089032392671736997265228194097884199080715495902272856016655260665940999981469453564646548226002142323004904772831683716114242519365426231224273510080417676138991955745403434728888171587413009376992788260068793103706401166930465583330505679786088240925836341396198911805153738126438150593688932085421973402192228361870545973284963253288687150282174744183446788454096098564251195294928673943079143448585256857739474051881046633830859904059481816573878819904353244437505309070372025566071620397483298186030723248778973929913243653779740369945117846522504919402539115308202333825645959817608388077940234419383993101514689086529141790888334949447926608371862515946160080718056913093351510003447927146810418755577196079769344533390932127189902413840610996312398309798964237322428277836483202571006421214996593573855984075003602701965361871953975627632168892949721957315190178236032721800590356965433292051908153450416067273007304329879211597803137193181065435792736693096292245919502507890760716289552017567065099788262801558499225380906686527527749006394625868202660472253339925332471278454467653645689380455856532095236938892098169251122947231411318262062880866111647633106587054050347507358702920300616001244110160453771903135099206360646872813377939518696073262566873128138800787429008023257659194220103559363067134189066804841185528828019852212154459920008712080463319790846038633034192255939257215432545709500875318562364470868062180385830918553635721951455532334747764700813154965909030571665678734592964202089829966822924446068578402813089070225717054895781398843449573183760205612131288478885805889465864470004546298646504412063869318396608486644527268763782098256110879788017124886491376679246260145195439854343559101472392052289860162363599075514777410015392217499315377418989623929104281625297293908612708908518601346585037100963919949516885543249004393811993528545150634576274454383122188996115505004073896419066268116245776175735231190976149824020914774110895517616720244537539011990479499569450626282102885898448519567105822297087396537497142539193719069122747307160886950679238145832830196838279415663220678549596940769661763092135817934243766276773851578121520757548346843387713736877577242503167372379628297924150915736565557022659459134280881596550344774194496737217644242548005441994757183424691835321252070949098729845999740561706907729543723327953828514133630342883780392722208067761908055685318127172461453089229794176585997640908950995136247482200448996609030633893986571806202422909646028259140933647696256246745520394469754129307418652766512588595127212882435054195368955572286091232538309601316887584387004956316379274705032525552568265971441603471676264868245210526451996979957530207383683617652026302325777548810572575957942891861618310418797245461716289372065474391412428086659775435574112180191890401835312005741551633209178358479814732193409193359517148716723071666036914967960048973529639914914732014640459592365206860059599235560460787475628578376965364239799081614949383901020125771205863709923782916118514941841054968838952926074953997807228070243260424590429906743279630481113110211234125174781659556740312499728370560405349497993351468853825683390879122270095188531185663325948183217360599667237430140587425047568375590067835760964609343667386236976838089726764040881223290009451982793581164648515142473747098041716652861344299975093787348106017943021452429151602679155994848916909692873912233063633038570248524674971375725570800641089382507086232514793054889335372359243309873478715204188596245981847556629371111396180610754291829020455491239024577712843629811879314499177227016190217773107390218107896954136730891359871340539992738485219955696114697889215448904870764801173218243591383143494600219686438387699103850234856621289720088081174572994120830240785101351166711691082146039587996540924663565438419606941409963058369627854832548689897433510430267475680852700665823178216369387996653264780752006674101033478222371531678133950537353671030763656863830989529486908817508639945166569678716122876697523131611604764833956853707252702285519811491094200855980652312163340075904498175909249795827433925165114356187356020184007623370874546083985804239104963674791305855395522919264897706743431024030406021891289480954477924731693664292135318680836198196156139013220558798251854839694927812158866392140376612808923888530582258955809455802729374991953517906730877947750394448070704214784464448101725901589280923239698174191952738691934943232468377860833994387690023865228704359967581568884672247006577900043044680045653129365407415144031520964532585802212162222067099844185619273641224694418010364761812267792020655694106059149297495960692777254575687157287557967194465893085959671962565010818150209553869806492040240093146254881704479981790357287018665910551135296628059751927218169993145412758070565337321365691444526744029879436210982992189717809076933228603349246286308915860408239323675815260295432373564306745211230573920569062319639530396842942108981765948090703527416684863149041626448282154563959139764536324503800735180157527111496094737155999830279401847444185554864022822109910397817395850844365845433130854491888933355933736710622394247661324411927883440005010187517692132417782010659689501692907820698776869586840996755976518764356177680918122797095465446023343589966198631494686291510532130780639547069267492966726675601433009189900425406471753024311668700745031233325666404739226816985902939693472213754626944755006765642371476764312767810183878306520995888466351045280085082398354346191066102517320348430054990221666068503163521219798853675033728813609810258010326112126826695812619028626328556511846371570465520704921810913340253080559107634760136316914231543063849588096612719509293262265322820880611026839281310499702777287777817233065841952665737986409524487067223754361385966002233285322596655842988353909030915228811907219078004495664458474661107613147612067802971998638293362282856048106348161882183812121393718867614347754085046168677075626290579287062597640443369811420186003301811158220298824168749447574940088472034156822761239630960010682452410715800100763628034320263226149904504099735087207969018117916249894316847857734241540468398335716963071022675694058185675450820757933144190799952375004082853234653717509750725487542067894537492162391921695558093604247005458507652585632086739252615864794888961261130875686090090603036216377813816029679521363131078706646992979326539087605376623767695870994845013673215716274754285479778342500372395464615749791267524983115259550190665842133015091176693267288686622465053848032579077748803406494051540057123047638509392681593003225158980667189165444736056882002064235246435181516341152780016061251551127527236817143054391589871728244412620129928845605551409768242726182982406983032847992175767334458605710265077101805374463551598511465176019196349144974156032851251984808114923310013193455070781491737119139376882594993468780118371627588993185565373317835547866574084872129916161106396777917956009110747470689789602146426700937559798390472030695964195330377486631003177874859957626318182530298859470233911355725417680280654155698475075252207959583968683280813462584609770062196006038577850238243210290177148058080858248626637838624277526985638035673022967205687910460163845432428232641984995829651355064707467068311945597093760594075622225753669875973692145026840231006484760033623366722669492617755819073804497264200744692174841138976344812863458666255855390460323296888865225123861224116602716105399134637700227112466384885227505230184886628415053847448612486155144350888069346662979977604602831002409701234488738546890256787201725281536003810831042330456521144163251756939671076476668402881216631712559444879446271845562633448740231462269111258882348833340256094272382630831061141897830267939102560332342270664060401541895888998851615843014491318363562338670904070264622759705756796202767215158094849239380536413134839697799965412649854208925437630404892840339766383596579557279914151111041184171403501207782569458843724622713505445809153750606915924847409342799028397671793647299844751458758171742565323419866437777024843895483316645546404362451795594932948673305268524293181458273209961330740755358270429507962189770426865884120593530403516774681410918066884288862152168752076014070562666495676784991462947083576783514148941111677290962839899041952921462259810501202505775158312967158069833471722516475850356485806676006885818891667451479065066111454173898502464561805236036180710598139041827283343583570246562229660526980806274109453770838712112326001600885498595660279644130714074897692020580048902434320926641311918430379441892825300124704318437223399841507090092850187834966795650136213686351221713469732548334941705473765035235032612666838058835491093904193875008521831616557093490191902165249568525323684227980094681341463515111181860866517486836731153768366984229631015264606857061186054636253387578240296591454021628228362782210753953795301062524883445709632231355251264314836341788429739544895915860915529400311173490344526831422128345021706557997025710215639458988807006813727760093010906311880153894248430283612050394566336230403696690222278630416519400259555888992238500445560340018514272529610976664357147775224776749797255965139014839841332660186436673570347353404064091596332078659231336028336986758403267162437130121173593772149273719720167914401893696929630666058740706062999700735702773035396929380604552651773981718168990013448306866690880915095222171484600083369670322334619588220894094679059648213980081510192071705153192197949294447632207705946458197601147525756477669529349570072364351603579933138233606671159805196875469792488806187102850842905503426090240265090874611883472847167276535696400734646635841307398841612744765105186964014037336684489506756822312126512986713080454098362152038646081798799886503440215163978925393683618867167434729436480513214468977443361829772848241399221558817210234597459034515237210578061063596990273423663365445378419508478544674882360250678650256960624060411638324255156321301112706449711056381957944883742196667081193113285788848035168258648273203063872209833477275992928018073605961698385481665484136680515443285628970664641776945775310356374253900811389161853730802125111027456544791425661177604692328943891997340848098472597011657610765844288335603253303710521882235058976739073767189049978730764944308375403049175398249193500706496724338871403598723304840283214797039597816590207323312240517643744929143380482544039751717864835299396668802442600002809445235263679050708036112501945925748514172521830808772869409365621068897319002295672364146545662858400920710649766307016135617578364208471169711057278424899050824225102496863739923733444851570998727534199035857896249299495168266229668611911078113688000058073584197509990319506423053737441492663776254694209411054200292915030561272046141572920745686593437283832289373655842380157842610889835293464481975532983779029664060748418260838110983878011758066226911807934798028670174236067202674685110496875204197160428859319705363283162699307154797324052835084553035810320191753770723057989771046717585146251986633584324016841678129606854980157913260974538508354949341735211265435950280747304978396660493519420955822194367723574292290645638913290298517629150108274635332192574456788826521791811742446597832830838973589891733027840197299650360118644838382882716858031384067189668183203338992365080968613962612035004352917576290802185642542107498422970270186748094034484401429976526096988062561664611809721478059174552673641710599073025878429688396699098803774048173437180129138670938177626700837678908104897717902855184667925403967305297937074252540119040816256555648644460872274513437771326703275173219035653468129410251586979748460873162864027628446373888499565992136387180972807530159318934760361708897293120705173681589834369663579617508658741316621751996361113739826592729904014892507245296504206770417537762634368053394803784208362440569475596898558231450817091184962242801240908355076811843211137239878927526560162140309341557651483949710744861431781126624274651139763364972647461692927308014912918949555930794275290057484530925925474322676630416694866146031528669079448970266913845167259049772024899262989317393744864406092544118003806392097099465036296819548347414490946887952750783240432111659588296941878934659022243679106594561360634878209133591850416945913791468021773157392616159671072463069907657159967138319413031658528229076390282229535355134793241163471584099416696745685319323308293047094068293935874861462226753875237938968600510125388648260689200065334980958713115588880475673941405327442480939650211957429402216750297696959031531369208961050204497599921121516909418733515950077574289001904191956207373535069298349703422633867714069273126374701719014329857020429596288580515901749732400166122171835517647705730667668283496189332450999075112462433281912082871596744754123973332664717408116442209509275669326106548879121464802539012180734854727410646344831976721731076749267765047731950711644625138606947920810802732274010098834420739807110448424301313077575985358464758006284674256776034543780319293924495696448428658298579858600789403863045416093146269931880065285175116698473526086501479497546637008803762288380546718160896174304460661821210156670795929510046911812247759002375917955695440828382289992251684815754394056029763980671110096704134209776195059360770445987556843952278222143135893205291415079507306219189980076124834568487781460203462734354292699814134843203712910052699197745255173457803732606838760759555888510500931481999471789529725026773607653531015971946663091848242523045225465458210988998077696041121951725443416710028159085582000265846860083027225753998075004170735016127333850316275658293548662409179889216522250474746623139284950867860307521411039173067883614599249922018933602905990678309131566621021850371444729582786544851163432331632289405466342429219547029010708204682062205320761454808758500660527943598715946030379734484867956323372542308942624158848131452826620361443850005762350835787833576555814776335668167500575000532242033558749464368404039258665955941159445257190138448695053762225800207953357712614441562589041344575590085838116074313738468046863196946474756396102243098585786044632791969250758700546548197243517988837804561592008609022128396091097838591459302703758913629281183689049171763775411762045190310886183277841003044386610227771652494615083112309851098332127945123235533084352440600421665111973983717047250887540091800378268659025590150848059814071350995901645504339887887589598825377060538516553852200016162024124087115080486060792202831336836758853223734873841897367582954516284896634078654076336284728868847213263099306305736598889837595494499451465952685322485124024582837519123360018736290450340231128156988092781921193889542799424809105860180157547355845499075560444500902832163949853173560552967364552322938270355127983343301474649840471383790546973238925492377888822715697502104656271241472086635016853488284479315721288241901071971097779657416432905007679456607347299655673331369900207467503941095756046649174478732646099695849011605735938882560788629029144484445571234377112452744160682553206595416127637746812106592399659879362909557065774762266759063730408976201421362121706152713386689775229393518790288269122088789943805696904760932750813486278184716259174000511077959892407270535227837141206970641402774707250756186041666087189372551632279449421005780987812554347731050683956146831255712180091858423277653352360788066342771722610216041445385910697446496056407174237630957551231197532265141553926722542244422100112442535765238351513399513250987689485089895641285544719742743895811776906023414408956430989537390469256984624576447763559310337391554289607091714579428378408086921479201014344142987283795456634762763948564796194371730516321833996415295331340046339487629434038785869459295703406547154012399709589275810315436138396809450883984720072907751937098465621891197335059079029731156350570863198934452544129159696578483895479621077547040176906897380294497152182147765367243893480528868083639195455584796302768876097278653618995249018728722703448510279862262138653051825606967374625608225631678421473582614184188777831734056784457055762542842366772940824459434465752909034598996086461902562330384480148372019207147897684557510872869264203823926692864176353252270687042092754116291653392981774322043570919322654967589160136141520426061397392237931389913702451134694701256186019676195796521888494399353468682654831610280900965648026661486240674278960849058809279703086864688883659287367631526312209416135246055304934926477756548201020667282602727350915179193481647204118016991032848795030137989380380598936996025380964909314384525660889416367925928162945575855653775682449647858193542439698087648321736241565790443141839130603175037066006349068714705804914213512695729739846979173352345346921068151010828755694174072378013525089140829710742205847631569048966195391018897300074670447350827967309497571570112884779770001558938407161099177372266205811264985622677907837604013984533075303224792774347558831460246410734570384251892951583263861617149210138479563940187254927881291136068571943738791956226483209669638021490446474055516911213535596855949606573993843804926539508863181127304234117609609213371874782331715453567550552107293626516949853368613585942067251025340677338679297364374559166966349677306337997542462189385005140196927751055441616086724341408452724156032957178338087194867562247305357848428729852478731558587897493497737879161851021889477424000802878642448636196322854010464740849232483225243992592497484404423441583028738425691387358026798933200944979640578993423029096034825084242477431320248395207483097543593307839608052835815464920912003292519257021666940172340060033343799120818442448613735350342782368426730613066952103716055199435035873450045230953864083666729243486739120162164300356106001382789167337214758471214969198501486899023848621560235364162319276778667128815312981779783373213192228232774153315212968304892015268418822055443942186713894276003640971231163438132813468300090335058924564898291450095179105948386767560847873854451876147637977782070049958834910925974833315392942791432373433412105495477494023756842970616167291357998853357751559777310116551426618499705537370783649016233322434269344635433980098838254790923510208541586689042577787907286000458362470856194144959568337896749961355237509383551119539980740298999754963198946220254638380505866784304699435162689969347328602613048671061253773937940665782560278794117765701111396360304166219912295365282349388774415981533049877073609603248506153406874666984089039325474922735634512361519561022907486279275865552286662157395373856451557613111450579317181449370984482276549117090215494178141244912702414134512612308834981701232940330956761528580543958311154473149557178648328069327518670580537606627849749659188055206659089420401213640582597896008636557375029858326654399305482364514234045394807211379201594729287494421750133403603862259738986869279160959311046458918909036787132157075366204454329888827026736064069010425878710399307992285114301839622597855459119417024697544619891181698249216312786770279631082747010734005715645862738850991126245696426020896085848827828018148687635604759934957805568542483190451746695257575517026892436931816854751026320709465450743479430856551067513067747028287532337418312681115112103708139073507020757755563686948891140036033483534312586338692847732501753709284305018605063528629577346122853751149765768594345280160002982680439481742169758403670674093532423544407024572720102374388958939241718191106435093417174555128056944046270881810240797209239469605811697245429971729891815967240003389090669217896780085806114320361005554103346986020976415038629469549699421741620389059252937024113344032382651081524788300683972131849700712713760033506934455553773887846298423652267845291883358131055761417785919445237955984870188922541182380342177134100295900292717270350185763854703991388952182781414422220146011773144897661167245496968699382832690780565797347869636305519309984538037491843962565446230000747012454069485548219872408667743325128003280110880625226893030865248592049584662567007987207974867167690817686851350813732300505443376788968541550392648002237259741880704587529841098448204355332863284752709502595785029536811913748962175707088649028885442293762498580963059765240334975105103480802082137642666872653141599057263820515163707064216546902990872317114118171537003165389128512742858587720977365178431675314507313921719477423003315086080495240247217985169925104217603042170199623500076034198523281385428364961858693456211396354789684397498931958880421121682641502554814861857473148988094436385838306031543027673034664799167966967848301580454666174428757896362390023349456887548867950806304013906635298128773433028533432981109239531495612129661917940075473104387167393754696238216664011539784566262852628464147116207761456097651708697617340338435991589375624379283610187738247213498909142905360391112652375512037724227103906079669070979100591819630081877914736236839679130176179965063523902087416017356369140334764408569418907567620298950292704974168156842879131921554828055617621979911590271625740114264290869422985973337472774820605520541891132807024898704133166450928184433328143942735855893849370422712398208074317135404044489713550214767203087679182814402580963792633978668781661380507957063341650474029610974906505622068489536368762810060913563255629175310426451173305927448122342678328794512476665494228709467555281046892019858312038906583791176773169555116166407848770543370446178120605679253380305691784519729077206021198513103050141731285446595120018141698449592433368274751283793004583487334426981743638991734657543562998702224599865593711076750411152373905903424343028270450831489483491042938734547597153289749827757772133342223007890046929790277204598291504450550301765681757495644016166182424447424293313512825437377144406020893910384893433674124416596886429669751737840024407188515220712268720392048244210175498082429728738185044039470370440777637929946980157131516725729398309609758329928704724829551883081423932547845948246193576285093895467260180055261782125884143835460214449826938092349816067570719468063432881740264571957524779759064006958293446647769070103844945945424246019868531620441080377299463864097246814448685484762035949698468126226702062272034583151960734238077683804993352895616913786007514687352282199313995479516725850606057040361754386288173078901714427753633756077157170524913015315311063203145734548364178125765178168881626262664526294579646335667194640093882108849190913453243412356925695210671384055456525498630350423607770833905421092354346697382306219765023820474508144593517443239210040368525774053294469478070315394842221510239408533742369555278987803471534761084953979994555028265952511588902585397754499615739476933048685330489949044515465325769810926536444052676377360506100376687583784374994497250923812466046854503005504758512961279084015526512553369295267578387601159730841230645764368366639319158042804619961385415729851609208344434788822655766942554861359578393587350905364351066646732447852685926299244505832232778337948709020125459752776773069914869796078107805884239220925111424568860745314786853421920848459785358302114435153379416913153496640734951417663702925920692934671599939244017356462116277813293231670057323340688698375819795731061826654897360789716572845366747943525827620512709439266162619018539397461819174685584730326025397270728459737449570082491303136804671598481405345743146010450640725239287891080911642145926310509685942799568524937028608245377544433455727666421719799685479887574715336602526810036662426206737862811987337089244793437487426472371260367775158885398489367426442544030526777945494516164340391923525228934531503077671475635644262353333827403568943967757559659313178071646310128493622211595867143656670966718163035634109814449648147703573987601593739481196499174086166480018103741282034584730170497550555620678843657143008988828654679538938088947849059135782981554082397999076234122293625862773072217725359626461711626360148329441575651428559375971128677384814648550758678137535876532454112649028700582059466198255349231653200357147810124724011242099371741072025829092404171676266674193404336389859823361460855375441263157795557356270631101880993128080618253103496446166844266161583103281007569348010683090169402736437254958921353518061511128542627467144989073958684309245394012241219005471710063673891074328816995200344498268360476500133247772603252587756293887383438458500925899701283791721242214946879695524893630778920975972941819727813043652830926572778573504469524814900131483906157076022487113794201752200745757778830252597451426031862804658936637067090473326646051258341328582758529078231504110631108653969839051410645571483650570058310598926260995422462762586942025732231439754987236002630025461468085768638154272748407155465481205305543719521334679504405469700367715123693570693447184400769258256407458137268967914503281448736006523073424086508272487165144490227720708832274502856158856684728830125947872120461330377055108255313081315734875630471258209665784091917302933157878306613512752544200974949274736658760472610231444557613810546698752000603352660172332657206707497255958406165365789226327523852178790873143503576681184483975797794102470531582065812495431652062783485620669195166335985134702127319749111714266307001701912803973001907924936878788874637047346830967857463776389058909973481841856119064085080266660257238872531459506702938763852041217413680450219646248185582827973141388059585766216033512547788106563788199712582880933584774300289223700845387464665748573837607286202126198550464183145758493590580086649562174030034923526627976745229330213483873592647764934591738779791592681040185827915251984364576180019814614446209183064312961954923492497193327064497793922889528639487074766833014101357787145016015530880717199589959699752359711149165695371302207833360023265324195890598873498407494802856824312418041308970509571167927145336094764571758777341342753589528319930483230447491049252567033256110078612902713649004572308555042147318831543713713074653259104803593224670579020497824344631271576987784631539478548844982488755346950022553972390371347334751834575020781071553215778375828505382111784912800796511367621928012096367459334018835272884695697311959981277346103179391334310882134376830325570738680352197115724720732882403163308006669933987958091765225711532483718911315898349927389780537821095487521653511894694496885118704295118636011775913596348461404873833968762125590817093789196177698474356144451548575297131445711761768236561094344643579734388079806948057748608002908142748158250301152739836166344424984302073071457794005213842311671084391227636031329691082994137011723798711223238535958747322139840086218600550825846795066662559946652101737978999247736484156794561488471653454087793628830521368570381453258945706725597441625601558867313696833072455825982110738430176033343012657034898140061092738600285264967307518488673644367707258883752697479484696445404869720873540924932644280834688646060162875638101418124416040816134643109554511576738564107041284837609916560119394691397223231379592614088264488867103032591213131391889286853483145811088484865731362859550756834604248044952896963353669563206770550759348659708779314700462390595512410523727626729072725841837169773510681130743618016713329278887555196239684556126588134021631432690286384983351930688481151826982633380584505663340177755505729525146828174773591450692079279545130509957439355025507713593031345019974958931656765416248079824754326342983253620008680834419176368349351109573516548907922770352828608411726845806114791848279534765659771422942024005210782577210510375312605668860481696005199198340330216457137119246658515240405359889171087331846818063895083499853124971398359280214890917654996949591137561124659455096483901982669588931812901730948210575735581016498121517643064975680476423010667989099475815142468181698110819871823348164533095174874542986139127846792886814001225710549002296231189428867960238774950794801503564735018773281793429020106126536004932113882179352055670936094498693773795762416983445540590320627560888228177279021573515215250449227600460508364368180081323973015813879356450480933127503147620946035904685028929220514795538010711274330640265016529642072535637106643867549289143469439493328311326929392084284073456686312838481191608208229605654763008693915476389885650063105524112515462724643211127213228544516019571920128071626199713655666393096739467927870134595152355512101862864622857387717804733294553808868277928413506706130885402722520139023107968931755496979650450673106204538857149366721277349025309888896515119899992714926155160241393792098544460382052571906908573154556184727400707344607792484324293370149089532894852566911969708091253906418530084380116128656158576656778839207084736184651057939565698958102493953605393485945425069775910239587529253731310729175764240232496751863719888320947605097686993342039186249987255748738023899955134076018464487487262119868051330114840700073275489114570067622183340717365715986250059171425152768796403744135674621696681091600999862573685776488171055438962847011967819864814677531896929906977157963563322987830996595671048495210354552043333979377791401677553608939209084574974971807446751753363546469508538897687474259068734063269647906249147403404941325040495904201198690525503681276473830220437804411936322676635155024745592554082157847895087678073186638120539309438954893406192457245504749530987312873508353645937323235163429501109976342694828767417076913885353028811555152773252235170486883369251395481031813139002958157584103572019447328756408980849918671925512847504709507314130503266458441250571917683049916341443873423444885641917718881451402908071509777625015063765947537705225153728804968071702098582174234559050788493528176441294761985727622559713236925869799536258085748597953418365546644130999692459070865524112681075435251165119557479500759537050556669622907233213274193805181371804805461799138958977340656438279348316953424389093342113434460465323832937512965770711451768183452696864894370880911511584460312583547869535116627638012908704142319348345439827348576304828340500778743754166941199501629532783258313835819231807632251320979373207043584953207708284828907407635995459293101629306107157025777562698918793014490020961883943413488182972269435030320614871355903553836367091921394735894388828250088768261695849643347106312651692859955911702360978171208405488698143860040474200609326107073127905379729160675814873716252750035988423724897687053801083423167315614073002072693329405696206314124767632929381898808062725949050484918194085952499478996395626176628042192132756952343130160163452757461227595700595456453479774252315448634113658216863574485878567445551302754100103149166798160958260756025325888725845866574428480254435293443382238891838457729680439494516206447977298911435342590686369882100815628375894888709971783082778259880984094377727366318416023454469570850112776555674492857964854193678148268408757447514783535389143904570466539179463395916274595032758810092034744513834617524561674922624584647152808637978958816845922138453127533359447574498140098433678548028057348298406475043853405043865991472709488994711443552091344611731952994939974938739726444235532707269959975578197494291237447360192249805951405216891036971622435636378363526627466568194756581268996719535847369643951371923824374336397089619818530905954585943932745086764591999122371888041542852116740860040172212567954733757725913577627455999208295897202094583813838612960643324887819183092633771359407146623261535500413591086438352422774186460924206427341873522879701605765800921362547427440823338587167930336478566524157289623199042062679765453024741545940274824369309340309718396965702558651534285946920015150822429210523333777358233397552117864086775926141828446487880875444688229190716852324578088503035711237605544200189664717427664102995675491700707370705909460864906786196506781733216116298731794716014828839225796206122077884959491961300095990690502522569273327304687056420435325874741465003019590359738596729303939723669446559909883363886155102151636366283516816891136377934821239861508827010524919048145057707126219547798455691190874678281544776209068522865180248009286097267650026769642994191494191248751461909702876464123395240435161994559829224797591063885074805577341416279651782018960662120421036348995615733916498091433762675551461430043834803229746321704456740306051185643414102305115585056637899834190315897852670299392755841335931303592457610992344223555398161183692714316510199777144991535978233202833548169048157196389785371530981819558897370002929386097462694901428405758486152259155311879952060255114551198859493162729562502160326966692703795642918115562138136951280455539785538462835729884336426199976890448577462683378165227792997908489824381994860311081990823658485519967869928447308824202646455842360411491366423189189505744139066942636128239855498645826139243039590204384813644100079175103743409960907953917390848161407672396945261194390331218297806785267782662910161138968136714573536057214250475119560744539814818784776362353256430773932105623860960303378799280024266394405643795085252948159717241620360428243817362631340621236542840335470282823678430229051688092544255546930538344545972243523071363221394200563557316561376444142737094405041901453257166679408397088883856073829438164775005645778494213071349604129811249440010639062662778906861495817562746362954359219523217086479634943020571716267342845058962579755378249867610869481162365180405004461558473564787866374685424633898785360635418065339218856082269669348469341871992778341078720454295054482025570153654564611111039372195347441182020362330531039255710099176679078398879191953883213207658222238625305852087143276956605799512740578243428161295717924971286015197943711509136122689229893131599674963713823716695458051608119734641231520160816615235970025194646869638030626664758222715259198176673307572130418678559975973604860443889723941387805563345238370851751767269963147292305798039716940701876574636728279391591101019635713592924953799166152590065976726560403381360067308420083021191894893995616903884406334031332775657456218286015281418326112885572264065907599674580666539844071300015249871860415726861211962448614510648187501056181330128807197875585593016872251706047282590748104849491222770784593723017701393481644564400369282108987867707593805314982366384153046692971751913027891535353926018403897072408987261607902227033098883325504234553367867759110585279497924963668243845420104601004059465289043780345103841885707779397531345063566930003988234618206204528401912587010604417129652294339400403587195218243830884256385863193384736658583765078724276000571562009891587793711631733413476718313140074588788153122586195846764043948835729574899766127015896593409707647357720909924883269988673126394484795028471456500904281999381977688407779444477640655840782738820026403621511551674634537246684200961009297876637527683839861093654792747577853369214112113029655814622395181133812313444809222490931942257882574570119293313771169894124166345042757054318258017337191841160111078197827322633321904685996774549895108819944926953511814349289233704412393994160694366646696316153918691387172985414599542162742010593543059737373104668755261141944339078564236263788057950475906070675354149532269243743389874185850949880898015625499245531738446033634866183583707710800870924431974252936715855815571310655102469977027113901946601499624398634759960107989442152213347630474765150852866820437521592418763958994848756320464569280476033821308989245519591094534792463047520921284154028181625062819816838951151924861947894734150407887843137086470325372645437305820513608495821101551003017870522171079683457429990981366046823149346651776234924576859778739498603411538381265743887810771179746625822116162109819552307854074723164244634023915512098020344399779472014002298031737436043270233145410697607047999557286380195917913103868801673586858331170891897464421101158387971836610837153156745103104220450899001702092176350729619447560510722352458943366313242183571143635198484062674466081586955951473565981718785192797297322853887333096277493044792153861558658784121337109397732138054065133363829662464678390028981393141390188983079759809198540266496963321729380559662171036302301900640612795424411868000871493245859096543869892676044031973716675049655023137547252227686142025297608773708852802645671816490810014258395061695485207311549885577065550536688292845261806401035473554411321354857246420785329548356773628874738440650022664280065768353452692919907267583849164878046191133942599768514618752468101875431673829008436291985909908978898953946814253597538732061775913826882603482760200644578153823738098358749879989250856951650818630571968625983867913125695412506615231837917240023059878082128801363387194462471836259889115645999188541703143852529152527505301526354433094600695052138284561622177720900948959472966679473061295987684233825289680407683635367953765563380037660163450846917232975020592424302949361341692439734777029989439283901689105446792095461078497528327621145857022420510641994920606219853742788630600819039506675934096251696658798696457894925030007500468637339350256376915395704089694389683597825150719807885309872438916819496989953963538215978492028764993523316615021631452950402268329847403933618924433381544778394000618163918489616559400267832810941781498526575647885515558934147280900921091557052124182080371417665961921477742865759686989561708598383379097620986592471123897391118132177272850382315562841297960842857706561262533392442419223036582157829715167487762416297305393592460258413620299468380090031326730609854257791373949883174915437760618866862230291676597142201157066885722648726274741933044722662846072981759749557068822108126880565675713465373288246806620129017520264940330395043501227929730261897708150083436579499228503982112620866363157626107671754090659994844116576336638461564142288369295674848136541679356109017995318932116328856465814735162973599480044909355595021282453237566075852515744444404845196280550986262396260725544238474116446669000851420220704484613505298475843139886354478368241455443223109372140442983129995757860332186803895023035682259972693104459689822074800381431295445550010250457546220407212872962095471786342436478611796890792823961754606003833086375445312813249010048443157626759670297502217288743211368567904395851760905000944050104483505243460851000082274757627410224160926384861958448667003103023880081168459426078957593314067075294103377607154031089803628730358715707504062393594863394877137851047103406100734393141681009564028675351007707375537819715747952049507639142259014081843690870041469760650776399353353607201891611362365379849574064058343037549011543189646860163707384204277459126904047685808659000978755419807177922993349639180674209464400359462749975266743585497910665048474967415138756661617763943393394742757169615842660946211878239050434039449613020626722155914905022930383967599390479458647049874068202303739238679719378774732283165120856726868152308017960048142719144486359001926798958476149686436157066363820919696399965688480688832233092087013805256159704613600455110154093430524869116097149889770426136139774836774232825373998716333629206147519479146090133953049532149250201303035889190793285771443332913839068587974601086301419971298543175088521468917839814366597492923497908443397071324451709452443320440782894189008677271447865104988838334573277215994185913447098378040884887264946256205937823247024405313336544976800132498389241173645370269900663061463474266688843285996278741922061170818411965522538068343601653209027778296652155068842245355123048047529150091562647400326088424332794340593928053443738045218428362031601953430589903235427986139235758380552015125658825115464294184906938119382759720935616399737937654621095743118719695628611234831377012918318566651348100569215869545148538184810982401468456404945372774881717623863563006457894955004358668008001809475835373818942079419263982112746739410938229403525861226326565808534165473200550539467882471820698155218621360314908865538590586922669371428638056396784390760646570460708836817663078188841234894454364992313656885766470973454257499031000096856772762572195926669669874564806099190450551598003315616430246661695047871855208905537653649546827704379021834147748574030520579079138503949169847811477182664957153726478011324378217598155959039569356834461723285689226465251597762931658443511889529586756817983584792545106521447348085052868143221731019415614042732342897753903423412549476471034421759970307335159339976592693734837823633943302419047196432717873125982442804636310428925954613233359860834044114297366607694626258646394866419305545064042266921084574622365389810159249713724535535023171902346895433623681754689860086799542490434550716046288788851443971112826938894552933083524038115710974619319831269157473048419637765119638460032423089193235627787693146788027188786803099871193599749241307904190679569256054296812340938449985688049141231991246787530676539036170006339400726053189543697513733579843911646140457654651597386879641085091546746355925821432718620062565364565029305343554590582205618298993565366377978564206490862465028256469840872214700327411159242626307732636252551151704994137092886240813717497970124976703467369351354834960580851713351535216612621509128029182353373563819718113559962786102527852996083539698073677829849438113631062134528426809646171637297930733143235804955850340369167664863698149305920220916488983900693379175186601760499216074179230368776094809016656602367617593155863379459754679018500191716509299937830067044679486480121760377743127416693555412692183126493704573318600458571517738412751204495804166421088325337682090107094723638484664869149850289288996377416623366134756820587033657078462575225913894864537992794464145703045626105761256321052727698288046049660199965295389712974967380739805302966972573530489392857403753020848523246274278770723604836787053234099104990679513669620914667598500749368644237043831658490724955546678586923770306754220702117845993349450407726288250836781859416129568865812209335441377016136367999345838812135445739944451068649088731136378247099143699642575605523362648584527789031984874411446333644756726740506063448170242177671785645489315865289732137261136468991921999814619215650958980398076386982421670596352320957786010839687353594879579755096683767240658563816977471698720104577150904180386001295587646343367511650765101925948207471241120992609643827183281789246516924802955167274424819318195214223463029480279814172318056633436634820943386903986712661670916345858671071492421911907208404528088935112558881448291005315356762197037950356538651658299636395820764313461420188101846817980573074445476270941137758096533452854492013704629455089242992640308379676698319915539426886185085551220012989154561243783164646572676093607909963853962228188443462301540718511597191378168907442070383958126597858223113558742064388381501679147782967520734127993056922646668164703377296604047714924459965171085048370019685136502677093893062593080054853719612650041286847190436145349816337176891967069747282684703448374179239500670738611112071026779953434502289479237612995474199309957250268621309898617510161454055276183879607434814350512410317564456003233343741034736139331330249456565475040198665751175984597398792572084165021829503744745547878878067944970164494262409192637344896204774988902104391127055040723752957563046382583846437012540875564294869289951521933057024720728518723151401823374979189653861882853715574412073789734744481671770446601990508810738818809724151083566145501003932774843572302916789396027938365922018474658486671216235689857582359349510476695690544214926721303094958078419053595922083074061733697032826674359610975185522030351321130708139560267990684456327536741880942235234681440344891810040050445629303935664760903759529049603971414092455160138471118996167736794098482797793013874455773246892751400351397919900807001829407240604167977480651283458334352745135620397716230309866662015117642848061479616270252243995729090996996900593552064634812000324716913163722626001488303690069642892836547861055817303647575914603854623643500643733647527471667038434176025227782331785718802949295967922271956663006960125179168423894572625202402725616021619100244252208689976179810739002817634319874144130178504013857670755421243571622040801533187104495547359155377429592195214106310531585662679682845598699166662784614480458912603551766887900013747338064919306529353566406086952651738831808330537373481428617703808600840102253172256994335830859846027628217584886437349228341727244596056277916086664313605637983733264902205856141437978476909039030635877281071401294496392626667386162163298867180775949759240274688846816175030921300338231711637645093200243831596016718437921016984112614250978532869181444313685910057156700352328857035497984647531833846570376346488203168413490428513730819868459328238419726296283072974902372310811709351065297570928083471608111480148260516796295209884468086545072015636679129695445825949596431070648076731363635344272911378964488737755399633095673613750316086483549253384489292970064664932171609513492654760162954902038849698416309146399684591201660447393436998123082462157443898215293927442673784314466020488994304394410791581634974895421974905767475098448624815804536444596962545955706434114467045474991789151083985784488544860601674321539101432528095086479378978988759899283880293807706026881704885364131616051189083965133870997485585964288502332480284606360079527832703128821408752552297593007615661610335893957289867315641638714329466679471495175082542956758662107028891461799779884704109666836252402218920248762630259731886728393954645770974928917059331540787737789224106761645143842501118091240259458470792119902267688641809616991892554110274168541014493440188116451794386454428298539812135691479357074275079421503401708172425928447313639741831262027056370222597104527423056829463598381017669167475260244875694446881579299695483433495045102234406598467833412578773106660329930368782134042641285566808556503553259877502226498607811784341269679306402610533801453160476372693280923666144831823442166381859913236123368615644528463249962763811889540740637417843464159977337193226802274402333715358378205150992822281219629735410343990983768339006502768468700491302592318485985796611632140131511753392669483288333048389675888768458306828790536296365579296866141932638171463039248427370078531498587549772764880141396340805059089183253972356479436206826542230313363889674045137753525973564489525816181730352243030294546198170397291211522030450273693291352030873320777785264582409803326296069505205815504826126364265705615202620530896968957590596260500863576086382883227485749292091614182223857530261219429641436263126352291711078164478367349363470334532465367075457047868865879187770262329652292672513687800134724392424055986276007415833747359566249950726280191815497042742874701392462547864380537342301621943025747778962516193831596076367491701645289288109990761337760558800983735899514506461003167460601117789292876230449819921970941417587630277117850686906806008752016711641471846277972775695208999449511322248823205997168732885816784243261216023180060961590367849477757562262926211138616931937699818766204332823728210436724983538530335657185735476128411741961405629756129095135283662634996990075944993368863898510448303730902961038949830394402505527287659216438166460071003287964001471134714415891836606324614216909269485610549854418787141863632861008676746699032528733570554077930225275362065631967187447174675277728331876377146962500764701515803347731001669623621052087193132963482078419984948913958567138334440749989903652935324186404719337157496416981620895096657320816732960668196956105663638656860718065920691656632852076230105542150435584609977910493977485978732168239651253773745338099437963509585234084218903075822542157328311112613376834289236853582273158389378134549174963212955582516728354938493906059992584043214639444732556509947517543905894656242447679618541362960856591293498459506147957894506576172984280578632300527790793180463076698449275040932163996068568582776033601753861238600140394809154950495583826463767579263304542005612781325699539364390628110368907812319800316838994911824929334246699091282370195114562360151727506514084590624064519056913928239483141467673673692631465070815909705704599704030810577448010548337152567147053080323443900830574306990651655050990539675902109579375593492571858344842293255296538969555722746705355432149279599824708570261392801912023096231916578694346424834848649558848422540357044417278273830131969171843648696757967796926789393956036670981601222908999446470791448029611825414696354369843930935826139271070991878103616359638989797347735166279306452663036123542135350885418475205849041389571006589696321782026313447779192787424877231699910097818435443904630527248090922412478263381578011234806611891413827129436578247705206595826987912422257692155238050515278371393482491617896702718197033483965788132050161514331681258123911166334508960209460948489705862021555618801715466321930859401823047003657658173442526015560684905901803530440794544430855078934478249010496709950796777673666417165575927803600302258392924269602149514053444774858782550607500950312356621166609711910781782179652856356023888373909754978833825730372636365677037456188271768793524134909446857477520485536677411433320355315527753669746114490688863331103779837829763734988440229549651081153593376502013548685654474931701258510132918742291395722372459531150981606196876585230778334490906085096774012859290960096488982260444999918316571977133942363384014114800893694555394294809683219367767666638426420358170637442946936461059147061382124937720836823525930720872380516760041355496124947103039604006603634340563331630418264676055496264532097420399234681726910441915429195380498523042422890080553254472113433562785554175461901895267839751073445722048926319708517477742609110016554485751401137064480089353006527847765416521683447878849624954652028838332407735128867586215930369963436529400172470179641248830688017824734888208694851044890791846820866193499096105703123772379072028189592756945003296498280655412560449625679785433786139544919053743974704467550627711344254172623821405963139813883781726079572460548726519937944401596080860818966028830160992242561805234050355349847415822294689301691705101379910038410977089886524823829907736442249616758854129066272363437439572964767769933972945137138439194564360546253016813443720941773727005241322258433965874913448962336679485940658469217877569454939650320508032439932370972942211879088980356502757750930010606201290634829299990043331813437090742734660583800257682565341614911362005701226258537834857717720400722235210857829309635821948815008954495831086241434497542960801985487218046744439450559139445861971174186603582503323651642264487111968634098330274794637190924738493438129253434174875180112574174418810188265164926239926926933790807319082678998124648147878089813406003048042720469578263427646589092388753900862132206928721176941467718047459390576688736775576906714023842492297736000413238514816319316684753709918574363034711601077642714052085915050614503845286634842040071994206587457365669478868483104024342424630587560563365179830702872192298899254401687509952960514447368217178563896157227004299106709402113943823691885132125169274336641665411316762418539968566244670891316694487113315022430417702808284817702346465170907097748804162006825435391663087399580780113622569872797123430606971268387712585473168550620809259952129928353770045969976566581135982441720320921465900288003448587934242474683595463712624919962243122570928836508944451573080168913227068638244069827459479725153222028281164649933457842690737369943238089731793025723391904867811597442321949679437501126741666013655790174648343746328303076861854665258280831869418366733442679934235492874822559937137464217366924462790696754302625823217607557665524619031784315726540306108972000656549966454887327098312869399751127487021475565055377205918393387759741359872261339964072365415013102194076827301549854130064778303104456515171237037891319898852901990987634592211829599486532167896648741822035312400997992870579762993360330103195059233001807980057439956508753058991327577574517474434555531986325130834588047260679082307693909400450456322598453983915794232362712731419871419581065517225121475041224450827057721247544066861236084668689373602451185327498213373074243468650044453876594288319421933846480355936136975018198934564716324933745379563551674150083280565837819648361260991440414154425605058489564147217897769568331672547765674730064893701596947626679192565649343321289202271037025963858218053343016582095261467703097973456302701871556544569182358434191571394152349224874566350042958921502002706551112742337854979722537521618959494765701662768667319378753010559886291212772342683537550973440477241934350484855374042168718142554042704615929152454053247054760225512078891793912206949811256335211275568732455200196650499468504042977089376852186063336204633837438551596639221653976111355117174387820313653550064531656290215678438148167604157545449839885080634668200397879227533155900506594848110490983661870834045895026980858979667776881062063823919762203432896609256489592058523357774639381292945413579583771473041391460265122367610865141284936569575393096478495738956845356054250540854833135732641429435748377437460795981487485126842082077268806804582301507163359495300995797660068817999639157169342112064249381434430200463117042645227836246104642159913003965835223736948313717377701587964234077965216706036412184240517831726001711478709270322568017132592975539156969420929385412191845890163832839584847263842417720648969518375997179334210517485978559846137910924746891487074143933622841725597552423088408745530142765575435645786142786182299306964959462063590147882450273196345104352991221597259424752722781357402551991293073958375867194271465266471028807371609260872775204039356381313851510546461540845899741486623723237298397628116233550397859736122836509256831876201698904655453484688326844584004271685968773827256670719790714921148131216209740193526925720969929643587667803035218157371267057077305829227124182579576676223459146120642160562613116204222952280521630539090821879608379924491281750922407804835237622913514259966250826287538174359790372596138723536934947843202787929659311957575239565690251208503972755142380360864604834790051833475438969454093862218253577098516990657163997061079637113574724231285490799685270996565861565991519350890163271664130794210477543545080890271787108035092272137125294947766299351632857159911521008408766388293881145302983522422796452421108288511288042048425422822316207832915252071320598609503129863256320906681136438643448934052514980590846471905760135939681680773024251500265788706668543951625486205142477620799335968708016252659972755657714003640672556911990952286384883885980735411584083956681812760842789557230406803345017847702399432989689907398443339888648972231957858505377854478329365681793854878198902076949097485363727343595337802832606428711340534543281754283502980912178836169134626417144658077340278757913510114192367562393115033736909748310231967023389397927930292062006869986268002777702072876664160034349459755890671367627241253550062166246333756717585647006680384421977703985165888473002218808460430820051495515178660980895090939758343699788486911378736821647215409380905628042720279323335551979209658898542875297360166127792769926185890776713512314441432070724986545791786951042634092301696624210504104197182814273725974360736097606117669562225439713400592048479174425725207975328423026625643281822186567627889871348569350593067564530680995475760776120253960155962330315256138602132801705024726136478875564950340462669868892783292424728531959439934041827733852762663056070557970178483630481260858315173273250238833512768843229072295123960525022219732045508662526819809678326197130049492103587554839741918840327712872547011197825475363935331162001707502352323787607901237020456701818859715771733397101526484883809407500233506183305627865964516712820681897052542789377059284646638292724157405773438406745592652380537541879289402298090650452105243090614782540577869059313107230714836128371755657762705601268590825028542815043336508470914341074838698707678587018567899798155497172510793077880439968793106357942032911190431157514093803081528985137729545160624380829136599505870106632180117266731485249611503200281345213200525060485305022017650230800703265608194675622978183301614450812482567164226542910604397166384684716597322649347719132717442030533762733470522845951430316200863144958578580522098195113549582299354384552164827937165502993572310394341847966283131133077250421184580530261048231243059795340226668050993861656404020725050549674409199730174203344444914419376432598343433019151426581231316471081198028409290665226393320757017989020180533743333059696004409024611623460031141487927113434834333696067390012109321168542197351556587299200717540967170922517226407744796550353503529308351230819763389974222409281576342332684341503392864612245314359028537072885405236465302757904227986188094454573725092622860551930241775827209068134974019780962780689556707888779667736181787515857715666688716920460344381011022263752925895005888346239198308558864574173263878888550172582993175703876823367294090938430393586629678962884710113336343297913439318080155125594122959481531232095657343286577045268134126371034040622905351764074445510461668868609293215734546882969850942238334330560786689527625551465295859756780293251170527649224122546725981905424555795060728365111342144888078084992004290512411372717349601136296038986684165644051035756964829339045182392899101371702518918320274754926935881139998296057505725792616049746869103035935099640377241655652114562611861154700380440886699105581119671229851840765086399487953800307983896854759500871676279729953082375095049596444560612306961908383259725884311449323549573493660315992576197870499258888492980123078989056788482722755780875584720625509310666727899171234310442770638965750452180453848507332799963959258187946912087682379691797147470459722819998149815279143821032693034786750971829904044476612035479591145220301502265088672639361952744766623791608847766326466830937289035743186776556077693492788085364266099977276829302125344269510104198701197697694935338174294492337165705973610149333456613148864563005610668837380816884817521964159013732433420218657577182121203521570378278958878014853316890189318364135922852687983036715036127241130066322940233324383727312115686173216455784098804194490783522458822063549434307327228746476279665338608604320857672909472299840184128685174968847679434840602947094427589467607997283830595938558994231114594313215145195500705864660243873034595379874447122956233451468891493683709085051748644895612389823381509957561630558054238921763901964779473782497285346743164352000433764571439408223751534087054064698557299555936785887490897523500746724062863588487016060480396755938246458854591505020805655287846219634005568047161277026222124283298690929470428540672974457029318157453695702116503382909918187874146507907109520168035182051473421959426719201634046915619422824693290109594200349390874353823362492436410693025740200899802789431488192174353743798511190677158625092675515560938452292940362994856674069437794371162294992306364474661259681300465191535696902330316909607729703285212379688877602472568722213551585468728229181187259867161612441239963853094565351617525766015429672125437114548469820349386764008524661473540057329316513637433257098029167106365900876317263204361338338244237187262487536886499490201857715721274978571451806284618102164528276201566110260492056820381641489380387829849398765585560636691567100084521101468596950467761961380235947029865783403755821180535876592764298423790444185808353662912756763361696187517456341774511724437241826714757584394673914837563016833137912161535865586435137542854645202601362973398997711135456917498015928491137752785870067299323186103626211413556859024577492468819006398473541856668765038464037826496889765189428284121921251827216961782814316605835202352515623854667293354688425397029804536299617196943079461849888101500130706623726283186850626290582387532737203226141785146206009052993353429839711965143883391779022314513915297641024765371711936813490518706082918361994426157695270862842340153325449145616678020659703626142459244576381121614865289728263175107578926245261538886695245516501043956647639921441647519380165950116124939888167303176704600580634749146407612112921360636626382218250370492362584655528266700063796667478401005781517995688776991256860702651990731626923198257771770548650342357202213359772888847938494072974655148012743363753105761619504605226724035342960542912604261874081977213615507932528093021092694978045942081112504190104796332544160860479008249632360143159590311642042139906346240867434292802694439772032868023598916695553562278891362899132599301388207748218617598114639874238340781305942614620052651580079886363172340878471669318489904198650677070065961104131530475321786294620162954460516886372094924740976416404271541296945412116110916895779902288641066962635422067314802929097836174170309532982788526181997345658683471962804633299078383401911816309422391426790852912451086674504401533884865874836516973648740577598751508117644213061436544237316122550867107659566733224680165895712160075231108541554562689779282970992177250649832835904681533963705676213831296757323015476369565051194492236291908501066313659374790023730376509544556113638971873063968556488754917811029759371155804372217353839786273136428254562914246901267449462137397656609400721036439535098724492360120460511858262023276490490900393439690729041650291678542023527472913163625437832031194850419889307560073744328263842580357421190411607143168437668431238482685022195689098676638022293614396087452344420759210749370168732470779180020711355658460764518325438246067286019903616810192284799136943743386229581396002525294575574462522922564807524891163178888468679901132182174575039562124349664145805379516289786306795179111157522695505559070415491412133227194259187848415096295439002491561602268833216432297035291255022887958418153987040655970064193363385518187626935780277064803826091350347567651732686646248124057253330451164047199473248188588525907192554822188103182679358800693624033707449017070089529363700818060482807602916966465684415192125287780685073614970812642747992346981878187268184583652388416773294383648315835719211416470379383755913972520386755890702461594436153648498697182322752910072387548586701365618685407601800093203085878974796994589033539808360645466382930515026494013316986225787133357915054656576915574544985308198834162114839595556735157139603407073495415023591185676597290017518573909628136560459674065680925642488867373939227909034706483390330202923113234878814279221206587817039227341457193975289256052264369935589807267701766553178098707293977881323148467475300049617848327529507352180237303894356606965785051552541824744634607271341739949000722488377432112748170722008017782832426990973943428263436983090883717313427952757456647044950750187993798672676966700379729608965702098984794611827387992575415053909035646133630036328112129389599481713858760033327762942594085161269742575105084876760540835222198143908822710757507060226026877952951099256633086929666521609807339259280323603945535681272027218480669956323546779853269034037412457144172500650395844068074808517601886979086110770328530363710425341829373676856709242588338639385355558069583021183546795978173190327171642149992127277827385754045978623451932967576281335325531408220642349376226790704208426537518258737904761447903610422592753918835517158930632533761041504775725779413505783690588483633229120819718871560255809601798415217300111478361701990565363402645172731860234031773119858487298410899493669988287930523409631048553823681888370105396476166763139777427343216535109845623789590961621546578675836446209031611613273268264993044844158681762613614319474309707228782958959665298253375250891960087503587810064401181832778181589994515634253435211840700909182938345925889566034543460494113655849231252140260651165599105728489314493683441221881924403557470615902086206199442384321515892674385880585442260806184903996103563493746806425174095145277085161471916510207188241061058097423855512057866807418239259133463075096155019084153741840731871800542306484342349906368116979271106457792345778605937392404822011332887243705748223734317535977347682699242191246378518340193254611214752666489737954223029926112857261161461987732731036241534201127777512791610422667085254766419825100352179353451300678289897609361512981137549144882172095820192471883297725742526639276451934976936905211805668996722337304579334292225118467603384491051806067328318660793957361975133377849260962758744244676264537435675266187512245745587702510374381034370007159885458867933075637383605479595073543228155802125712569818724334819076328697630297158774811840443981233344351200416855689069564838939624419048617703817775503421820271679777185720095765608721129590395639435397143960897593552245803985502307555870421178628995977051985426164920159697882529761599666982509527690099737936498076350506655208854461622238501977495522561655108221848684731827136769779920963874125097464712489723732141635656825442812594995978502683787008905855667929234815452703100168872282722189869759779673471370649678416769777281625757586347972099919438874759019618913969637550814657762641649095107932576562399192714049553463456868010470070359020043245750170551099542220234354554051655607497804416097668046482750838349654732035153257253964427429193084358738014475872156049561208807844572039025997404569687498064911290841300294715912884429484918640263024470880061825906980827470681317110627358480214678409444963598900620681760378780863428598385269576499833895032365035838102099488704677053187259685852351545575212761219399754673222925635255760740727481012490400360305499555170970650959546577339518172554895602610314133484686488906411245735899774436535997126828977594773310769329198858156838008749554753375628298168024600440554577224007440970230802268056916726036315452138569599847397984833353876523688145515758906078350651867160221735893926318229853858985862889360462598770552783231548121675318229406798088355761664013187840587490685892948275358361605177135355033056193108336290085390468186728965189435852135250769505701766554464593480694645498010136984892322344003646258411719285908704419522958760233103958813581077370921787653259210899529467615598235053355075677759075137626490370072933267647229473435659036271586375137509078893653621102690453218932400828867399024838057208585768212702420322139957641548975302587643006058122197435590612477615249369441760229564875540995811963264474842036849514174457980217508179409171822941606344028812619152057749988664610279958616725913134655945024158006721859897566861805792332908680167696106104047307412010018770500234632923592183273415521684523610960097097139380001372164514516469603848817234268800077551702532580613477386844791622001074911571045941251332525626357470264903038353296328183223242937845748764669573971632314320927782394783998682184347489080594405829265654240306411813021026016945145336368760914159063051874713212797480932869608578444283143138262639150264798618176879927462707342410117906089703460054156510069919916583935894763763968529071101702563272741345006575648100044763819632437444836410269681547842578373912406385299737558604250607400213965561398964376213640598477611785593274505151175978049529628344657936725265127033643027885314531317293242857542578685429408621123592602163218683061524848606821586180807757753282747727724584342842170451483267961969229034099739191783880885135007297485190580747003722133775465413422187254579217498190190486730902546276720599720942150185741903082236606973970097724656124691995025862723864441914477968894029231566526892595836606613539766729834566153317355599538738894853429239636455857826594973688288598159956757336390306915314582545906097050813638241524585465913534471801047799939441772887739527194561218661746562867828406992164548540906892653978976278778295553842692792594484994370397370441999027484397993297232715447976083894249397363286894891212099475757345374105601881135312456237309484321495687278596825604250744843773587551199141278449241530353089766815665457245242539020844647024818627975789525806289837740061537577945426550046345161696695244121598728666727171233114496455789830222945689754245427867358766956160519177609984067557127956261467286816739257388759337638582863406175655971967366134581579079031263163941698220268042380703727831059276873583922282905892861368472774740016754641535680470843104370230227039314492205279180903570176786339469490858851144470774001300745948960641727694646204934395845479749887193570510750212496676963646328568262018628216105912059916272252507971718478904292791959132743771870228743912094012207894530331071000783284410993943893482011106016037745108427606701669877033593577368200231961883256735714604144588771979653289463826826974657471696897096262637624600775530230153877406961041427571418935854929996684695008852147859608581333799485171975557249392890883113947462972823107665358195837727773060877230101078426951336000655132198776073859163126821647490980519086762750789316990017999390598896727689194999934039182946805239219545503561752660063973623946869967956480665273720096466396576463951917997195681279767048280515159957502213269921577690412215046965002429431866056340374973654280901513828870533647143420706930588392786542097153942301373233676815461264979353385311997810200259075279727729152053316027912155094976445202020719314255836668676907602210823039000176567957291044090679739901061962363804044903294025112744004860320849697097436449297581320688652701070908459439202690439152466929920464320380022898228264913004983374643789015431847877567320065691092948496777535950827492526625786127101077983201092579860739603621257644290787910176988035679228175701764143584218095120457813380321130175288115094979361719492925639161049422985558367647994640353614459136736367340495819914462140370359218465732475042299423671813215176648904898427861125145559114502696056355392159022160474031287169104283452520976252591542008379910334891032966798245971187025361148214885153015400281195205908489839104796150737042458637874668404219848707363393193537333170728701532340637497645432538857302669172329918907146391621673743451188944210191191667350897494638585511800854023241810701179373960650452596289266558929622485985856815548133000732168390053975925881066691587385908644997241138078477965365665833818054394361402906647270948439941281889997193538486058518032227874903952130386577573636313514265084251841150191867285409759197636027114904044891727892759275285742877992547460116361248174808294184821517917710959112357555318624231241183803765952232199014904135894245222125393226772026731309289554139367843396727745243761801419010695582141265848985244611182046837124652566657656926550090242897530809223020603723416604489767385972415376614119935823300539664169395918452252306253404215414245702881355709640704366476748751123979564919862157802475162883037625356221960775079501236617683661294678486476845753741781568910755040380262709812878776871771154694043301878986115299904804481494834405479670657854071832873357792302341955572489613178120890895291695073101643047665614514022539764935956050418163928255808959610320665359938405739910021572897461457095894377094059883820020841870286002126221055488113960703306643853890017791663539370570605412091067763549156178263465012373321964363347258709762699731234753017620817073979030057265493617776648160317429839934058703008094903095076950066647133065005449397016441743394225282614315339041652848234388177320185423006734916442681704817836148102462765308952279961236146366615933332968001713920234463109293379376138370497898954872198248707439415815579840803752937239424646595410031468940910344189357032839501865047828530836095847024910318859858847154751436749949215285820180124877897104151795857087251594918573570540990854322340644972492880980814489273123846752314765151780437015943752689117016079152729391295432391996242290652220857538993653079931825258473297428264390715219271988857655982395893475680880711540746713621330307496668192407279384296943084846767307809864850288742349721752053996164982283776888894421861940389443467419669808746823309193761526527952857162953809433533029538708734354905612856850736868716308100592507711431165560632108088295843304754452168230245588646170380806236037087093119430300434529128444855778059928810497915023103902482591556989356008730112520446790264960259199499936767270471482617365778970325152591980627252454944423094140668188298266255475620595900812431573792321630635849680563857063632424687499163718925590175185409592490370946273017161984983716315656735881201048017109807636509095615429048891534849130652466884445205153220029184365251975482670638827459013391692681751224779368497406011155589774191572590035588856070084737394220629750939010506512980068750253829490896065012113109315579915133033085994230726694435574238466963737364633740110560243284239295046475382401847036302055381021394120415556409628427449065592971127222218444836113343204386450490082750395501382200693966415830058105722245624308790099775030855641525264155339459227094560325503856742713830850342769935476188570867001258979847184199646467105611916389632955299821062632103620010753935398101930907442306530659947250493163728296096639785485115289523570573305381085007733739170176796441157920168680751152148597672538652614430876880738200235582540418510575345357998167759003615204194551550057567582340400169744095241477921701423566501723080271939162482124953182675586825851262292146119125907450309859871803586690676419415378537062950792047273293588504160142082353131458610908331507888461350127730397510187469784044933390237259259928475831370329728633893309538256171621047614378123972233792442912579748886489403041724725524997839473185521596467834525330820824862344039673807181408547045753331737446189058406644759466033703864001348683609912388027483349070767727176563049197980008737216776965875040648152429139933466220092386483491239733176785350563308992927943456587323701809809708758953437026110190601443164573014610862403374026919532954782591285156292741744878477735231359582304580651297466787035535529185485730231553604360005569688888805415126791228548325982622824076859971248080655067437567089993987571277020386467865875270146394110441220018546971649378138501278056346466262708082006664074413603311047125924813596345783358322117505606444710548005451312634804052254256957512751894353194918966207311108961141258759349994171872704724108733023194660574331565746625241250035525802271553961711410931907252849146139854105303815034274543429622659143204745657832534588962046616979990799964414296338088787188479293269403489365193981835232942882740103568094161164967668706079170401237618954493036799431583590239214413344321959186387722216200371250021399732236718881633002299491822458751190123408840699724593027352952114694638319944630936583513826448980010099122864606365669544960078999942571109104365644520317686004012170768057431710220018613692169218597989366982142341238692970076918180229621345494456449624234940675802344386795581491687343615350757979340423049055945792128061818509745452307284929620667847464722925942256686115417827740377546173536703396055749786257767170204375915037457812971212151190539949864072378777292208579420426578378267783684023663292585351182092329205101721208179919826418464819395899218456823342672706702309762091979509111758182949039189725147821588005023421021558044544174322593934284169228044282822984209330495676406715129220113198532439682052806901075685681196999488045710917390919674676093398791515985435676779358912240987536960043205579429427402647753869501752926689052457227568625770642590092441468549864058643991760882689297925455508070756586641848919104869364688947502434409569958915812847488329360114227088181558032935574881248159621047224065546526711092722018546509832741566411994577865337975112262986262598362888395541239662871599409715601417317344188062684733424637895229520610922742494025192634005390158799073771102301879793865073958996251270733460494999322669975567539080224835091406078071866088134826315125357820293881205432357910434379216866809018047777419672155367285278948945843665504504453163318353928403691244299526372638589857960510364809808306244564027704252632305743529868520564577043116685874157039419541201139245723910440271401089651865856136141931301252293540620916999275281320755630553720885197636340210454333598757949868317961779257377546425262318790015706142137730263284553788993101319607256169013431689836577843286057370394133660122071700178879450494731376653308191432723486770062626286807898778801548100330495225020209067480857725059714711436646014946960520324382992813266315894843306702315538158833612694741427555760494860658798180246828616593895449503667355063611163254170797449127050791388799802596927296873215350711271981779520810768432540080453883447337981654851766621492040922877072673155175528085090904335906000265219881231336021366690242645664111245484522164290972090681792953776081269824806731247618949970920698543448612680698788180247945430858865898490845989798877278356076122750923223869394196231222045612574226931657772457717370473196437676067935082211597679819740975860992456521390243038189704821482427834879418945778263545916896633738361870118015085077256516298961908342273891435826623633192450614117742845460332406414081352676557451008408335058618808576806662485458851913952624701955112691567250636670155583794168114996045627905018855202809054341091892032770074843655608730786771808738835995199404878334492513777598877452839476836766022341672703260660917895806533605172829741700749970796385778742210374846149604682957134198127614736868304656118470438873360812336755628157913077866075565867307011429668085986803629067178609871296270915000166543145080304009012863450329433882222324466181886608173638327406059763383034896379306104559875843540743620234507970848474998238965719600254045225986803891064539256875307801320195894703503465966486857038532513422781522464983641461316710630421165898854290351156477505782552963319217008601479725474354785076073068904170153674184861425102382082047990886967658990298920326481392439042289057662193262340037156870719915662267698218054994440850606655343329339135983059294127171078089753462899147141240645707763490006761784996341741287396466411373768766125823673306189609966824881035650568897861148789261088003142607517011614820375798743199310112928710247813621495990618819779609675217092633291103854170988583431576522618165662559229822074771698150318692353873860202934954300408778986918867219083884637748062468274261096169535675545063476445024990443957867871006572372989017266001266999735830591517099925699469694713960383473958015627686524648331360947388254530708327348479679614924489082692842880695611115465312529156304321867248956903143319703436179202595097192283586233334219857974058433426611527929442246309604848150689779734942942125088112920116684041718979173297512886435415140642070876005790350546539949831669657586672899515738724992618163761639041024310178563580209374617611211766944389042665713774100671501989041151850129245850342856533115798943477752987975943207579141874040705378053720548675740389876609292171108442161532064800996969803592732721215149991533902640861681343641036155788973430646995515757309997834008942128265907427795759762082058546878626881028550852241310866242025244315586280917434183053512963948255554796231884033568192959418738923239587725941620611193740356895065952683903387436915649539066346951360498266383767073864681104037952544982108402689388071684779573728588777921210166114535865463796894350995793305865717943455879902917977513383314841497516480607444262079837591591145081347925876870538687469430795998393818132928589618846989150674893039605716767105759349560380101293643908121436525381729322009368732846074309759525481071664968214282735342264459638973259376628905049076630315216936571002927536581945761013797792963672667249696972831681431678300872393373363148957967772998244915132783647029529999197754449928070074194968271466568219118473691539817560290039832388887487483100843851987478232480866315029873399423002749746970890793456860660125652694021469799408434164829074676285133259370550871868822676900201080994641955306111056780204284733124397350085038186992814271310503745073710704623908835177370683258466207974149626214402859917299815337739223098865423100734255232065863926104611241242009996761995881526921475337586440401740113668038515278077189640438639102221213135286694277389957649203698567761341109710529362339486949414799710780351604800792524499786479387579706534418535726547179352411621900899511174518435605119224670345714904768124778279611753817640837814456443504327099174257546776012936623844179580038915677918657257250654832516454333867688163469266669634943167438691601065484847513194936314764426661318178553123666570835380011466490500357305803974014609567684473193218598069160130480357779217869708174500427755496023658144262003147233600354437218996801888109605384038138705361074723975603870066638643080022311685413657070476437165875172222746536940435752648656339019648359831684444721632172900199841007583285723013260901219647011046596902381756521923683714849528428367184991369346280009176669564411291283257599247766562531841978200168110886633552551956803980964129341678085444641111421894345372772113265258914803574641743148878666773149330709086061566376848940700681721883538312372043409302201258936631003861764003030689410322229099628226617118814133425256470652839129013215652091730168213031344394521969016423032991083798884623353209731951362009175057174263027561203639107585564786175937236417698869390211410129775359599939464407056171101384980374700052917951456400847306828562548181247533903239785750743511285274995175191033311867081823383573921355411361053665603562171358753451824752755145442676890114594695328942190333569047389520058841275649962090430219730466226214285998674181072023849926976756105903579617634526779053269528845274116991225273198077473012293220957855840717947271869133576607638761733378167003721221327295448965296385416617437283858250488645405732867025941018373012296576332462821860665902789807408135987031359675899366573055564527828044339307904698574219136744950500696790114222870887746500240769874880719292059244553072484289826104294437752043744325808208923582941821194184905882665937267815455117767278627387926295152996544430018040938027190720341334645503583902755487797399507648804941967343882059895606750247290615295177415974474220784401780304433381321069670790115067141601354309697198762486546507792710560967301732303627638043946794287092905826014589593832827508169811586548217710333057991768270346247066811540792625671613815826572790028083560927537657145430599829400139429636054539976878838198993762650794238844240761306510448717370790551677590325437405844555243623140932315643582977216506528822519094761746232718522551381593660445739074272753072438020787471155115967856260683598495286410005794774537025508894099781785815067337679962369097852444345327115346532754132545260478691957467315304206471793537938412057291508193136023151375435519066073007462083987729902928882052280862910245183869782581431121267269460210887868842749538566035248660448319719038968753666907839216188355012712710573634918171158668497478147614012551363227260325308327352886185975760580148233458490210346579367359248558024821663215238360792853351338601085858282674004755396775083109784093798860036547109529909080790580377946757876465367705556848874873954729926500443830664835667724209055284204274767039093487351112218557625107753083159468218282222624650505251839732874009281649269446957845203556964602732651811761241382056234320985598941092000067599488391343772657139852987177342467622753222889339704426239401557199857025828923670773584352242758514369748770932877287029514695134095118992751704775501807214849992534975809687050465483647524987018961853967639538517839313562453292979147421866588939989519177079674030335947208827529306213151400511703167764989173866089270724311331321823729645843154372041824005907403242887767501802748329123779766181563882921934246061990734120317777650657521637066770105462495920882017764547446592787180720626077526627779465381118017884844335327892364175718273887795102954915564932721350418042576453249407828866085829889025396300793576787337108429715803190986511334566264093448515923075651925959992192784164578678374801942413717297624035316941828391165062774270886037679995774527297093028126305497055503098787470432542230468776458733935908953655376179722581396795419084202416857470770302055569850286969709058930962503482526653294421589439149732975529682685217140126338779758860225298316175922890754229320628633066783345996746194070445353771124650957201872492035337058654408766510221786053294512323722612301266035319951605562393622230367930938113176957703220288949840290853791807454289626111157068492979749786097701701526919334488341344463155095229719008831877777641417628350873709429997334883850971232676337199543846437798332957434844442061303666785197440489548521984999900307426108522534788153742621197524528251576527365780656487984986148785811272134977568827098416889363329715479733905216012914745452789519091431724423228584878461559599308860263976862703206057376588582129065588549961248193951831605614985117943380684141881008939346549661463723376010020314160005517756454980505501581691519837131752184236177082938153723242627179247124406166640917199526911775317647543222607040158664919699516092070788467144112500226778037894789574113838577320547243505974734010101706520367857102930468272138409294209071278796957608149100289754369417011514686775334877410948411977999566613469487247743771969199286815845232944324573602360083538670764136504254835462793324665840462087014824818467516930829067780032811380738708133322174239983037397449681191413533675713449647880353501919000624638858698968932643710433722656257303952428239934235225134054084796206594832228009964777731081590661451321765177994565269226660121733906424240674895726094647075417725852764519452014537852130454925703733328186314209852969930044539358048006475189612407460375074196536160213870516770754363615593519805798007725945817501330424865038437839809880389694865065868504426806678380816371222986100145791958944028684247335163633904546816357692392342050743986667823970883643473861739013028751007020817839081856341430795570486163994149307822163144720810852297822280096444954149093146070152125334780347695204852769650347241500912479579527676849120645380614041327551023857484970770180202435353167174780383922935772291304952315969376156967881925868978089262779609717955980906715708293605680175622652433592213337611265886335524866662011555949439537787131401437464083396384209516778280244475650025550295083943050953585053462932976114385859067236089587937106946108733311425812253135079004827215556534676898268595831342973793457199740950085534074451896882763474702040311046006056441931343972562367077501280201391613647157081079787705613385553772079412786823986343918623938471168350144528976519232529811523547475978264979655168212058400997185186465550849282048637973249299556639193391603918950769289031144270434856673455437025530365987836117259658764062043463689761390075180898757535464023424789780742738030170030465450685986113871179249334859363758457021107079601245604493937667194773459904423373815622805179577316134383736894920871100248748814449982732214096470209942683127470796455411342120012765141695912430165075141490088744442754270787861662446138330293183954099402684992332634116798224450208904851761050469266833097659056917564342824433211905961178726747465053628114496603612920163140727247702492683579793019477575597359521328410646939221511868181719136194558274241052986692756382453801029699649870817703446604815888137326210923256540239172074712551720217797331477669551031637954012626937381963081205561783188243931498217542287418573547534539933507599680431965937614515368822553962117011927615649888610270437097840368539937589799086230655729246779398675892538868169797839341867765599914673303014318370968812155940858189733442595420875591849864749540933349299309565054031882825735121492371328192027509414547137962105408686104215456294408278349098603548610871062565554004589695721905041993059863443879023259662774266206301732857921222875013282877200698729016823007105253243122509201272159054927324845865813347806366642154333637938651583848927352633942231469088100262912989991255035068104321598005222397030722013219580079608440259521308725584714513939221569705343111738056129752420346541059468938702630683793186870178709966402053218507115318914272257404657719593646596965942247124729587849013773566951560442128698398271758398295710814276207306806661763150315235841366127724056235127033498771471519301619831285234924593732048698137870716926608539783994743614550240960364733750298200977000017166289554888203310132542330982909728271850537004743179169282595826108906055704981739396438278022088331353492305522046345265273399429959024660443941248626424884796105839160195005429691382719528596176069315779703130392895038742255946690979678167461862471221428763863527437854839855889795671105616829299246812022157868410362497300172847633220059103148692797049262922505339982677899370990155734019394876237110288487926776372065920515428242125423336346959623735446385532034347115111046614257926796384566206985516867772840266129872234372059791976649057881627270899865637549469933990763228543733736255580775168191391599005095091036769468792087373253855035378871534791278142962137952963261684226817559907533911119155542387981323163692149701266676622484387611475420036817668091365403953427062221533964773009215516271772835272296807648545934516244405865803274433325587405954696859980932168643183657435668515884639707588397420931558792315161724569468839229339178727069202490375918665159254026483000002677559224998573237180687964749694827935973820121354176037302204102352090253198229827109319722081803909193742356900458667951598796639824299634129540915793056973371391600955859409649859333923049631202465635220302079025627265976573922318024546100835389720759653856644238653915044333209730269045966735011055489674966257825677655800170963819193301848510958360967985179894727615347364565408609823422820181256274036713456027481922870646035712885225171708838914772255792676063881649469157652583298504516919019974642677472126933917208058258885050954866372769633028003609573061113026827667090704417601331484238274821070615595469879503266390912529752356419041443981526333517366020819251233270555539191742881874486606550354796415947746370763149352053631163557079225543681912059066403082235369192758233676482817803662940389427362869487300032164228128606687602384951489561432627615224624165990859409844583382092794159013815018546923880984111491277940092956367647688958482406738740840339521439489416388004542704123716193091870156789936960914130913502365106659800121601077506551805359862494921495125351255155718001507024531332392088107580764450456564885991108908489382616963895110648256353321430329264190606815615977657911551981555844757973745753872504324518882413414967487772841164186469042959515730180926956956914445405464913463224981536226997417387373913446199528785922706469330232865795077475471473832079504984266142422620255481698433463544207951795062558905480658809461136619723146174979422752016783741562019659125728058188122793540323134051908367530270175906775382853164257545298888252267099268413116595707107790013928144455183251509625713830619969401686333909316952487311373755481019465764999108474923219971138166805088671229422675530326712755148202898643834917793876996448625553514298394347055776414972886574166982189966891649366424661864030126853388951653612792316897900570026617635490980587013677557368750849348798105284515811250513188114681545634691988186339442101461028530017620617778790744890384467822110804604920946351620266527129434308475723608936098715222735067152036527102879213387434862520641264495573144054603177814004009628205747368390066037836285168724928602759143358068633822063878817618004867362679221810213435807654583577208411887632542031043625760883119247211895807496034956022072561116060306543412881784660380339999684700725295947591736962177121331905250771583373329202570931913054397030273269074584914257768593326037908487369022967176709276146855932645456311305228628514729247646910498925014255112923742366143303080797925732878447136820636262955884163406662225721589179185209522506634146515621916680501464829235047987508431670351237596154196307514336701840725276917341931093089136755177670030318668950945197210142318431298307479161716377619496936396570135216157898639626613401100695859285074476555186916360889409268139982585266598290801949084650830274563208137822108812581135368415909733815882980194897111498108810311600696396831357399361381738882226412170732501723830936916680987863934819909206086751878027692164350062615517213697824398495994807787129445925982758653013190506577233296219415258766575436615640402459783618135678137445823394986517492639728864196078904610870449158649546044051643354754396509259885944438549414252792089895827061290594948193233860151040393651499568592042014742790561180025326527959894854558421397921798685833975241190754857845788081885075295882320142429440985683206087226550519637701483704173805653469575158789811129248049412697741181539848435269138432685163213496052514953188436553470131659994010606649777817148789833413795554300223708537738296406926964883426982746257826226062252651486479560286594467048818495927621275261187528471200877353728709755086167741530829905113413269444795780125019162412712091961479097222068737021940271965337256556726055600986705324865297441677733345665805106940630566363801192301561459087373768513987177920803822967152401078568454068026914432383773278286606641065437512346787942995302103903310342347290443303765640340272846644001350645223007594331720911914478902902754382457341573953127435697536355724646524601973253858084454551362045421840996017400120582631462333690102600758733283855573249440520048276841365868248255837446934383436431703637177428944425915623176371723524885852872378925834451131906166079745792060783312075259120293743637321339843521303029948766649597804724485415664821634615291946840308398263433931466883838589641562233658763197150662323849131852241738241024725492124034278984239697642845065808887616336095362752931897840117792433161246739888200276134036837623515659440056261716479139380569140679994566614915327041390479672731369735545349253651040537360534402026988168274224970514507235165605642783441380396600969220257379761538361564702918598167864311715981989679381369355619191860195124262874633185406004168634550573094964181538807739032349719428354292117477232636550768324325821601169276814198576184169604962233378126616443457314803873376355746137377024283996486059474504550526620289008482585466689579763799394046614925263243399877772221409511383187316355215468378398561672739868706634148770541759342125896886091861120109423072838352089890843780151004734580401292720210819904901023914332609059617369768898726033671218420348269835247814842897841279340617629032929520510258248571798635378390153834570401223132832162195351758675452316433058924594514046066780765402154878299239329493521559765844255951332132110023498711756212735013486166051914261537257005395953280082260622189348668923255024319669545319203385179276728197629960918040055609852893093200285874845563002606631886946524952166584225410173139812649163236696835495850957041337007309873541742812825942698944811546270539173845533098997783468598933397501693988976361772828207678439187162195909792859302332015645767842878166778977722546271637038410847886486557098102341412606703954976006258970129833298493792562407066304224124950715053262551536680155776257438626121842303041995012037041174105052639135582758850827618765102133057111227896713748321362750897193417060596334771385949589834929196310811083316783451842645260696880307975925733622995763676306452930826084565708075174042745628235421860156776766213074601585300770621909091389267858537776998596088628628911650224318049207506229615682598222779225565547446416899820723543098812799045156650309836688610052171539431230074843261442477263243004880934979499078649791444841707726441633050249769420762997844210841517255119269518113069472835879779247070253621734128387857985667433347266331702588135626371167908676729194660426153510183481192474712068973460008597803196584907246063536774172023989171177256060049167001950410684036284448047528654942549375331525697094907949079986388144222984945387784279212115428206352887307773500285163477913717111643278236963263574827701370717748480855369877195364877582007939077369997967013795678137045478012515223162380317259834221791290448214535266357728200514180570939863166965722959651935642103599335573425730571444557126928300391637209342210694305076327048498498199022372966946271196681568956893501690567976090237035775926006673463170484202899884820681138773332712299149870495292005000859426305872255294166005940063721766287241003239979020667277986291062789774458633533326283637542830206393959791995098636537300155199388015520846476729712016114954645307083018576162990706013585078081469832259514305483325212087516203799094135767789074584245632449413013278504314851675793868101199548410801199383093662816616781136981775605689485093417269430361416183552010020152031793446327059077458230896237817971963914167701298940020703274480228993033723074396056364798932465851640722293239917973345555651980823630445881260908676131074460081962076059275431953281556078821279894680933114837054321518829233465630303092895940478428245680318868103508907184811348842762515325341282031173709847106946457874056894614547865958055870599561445873390163595587209811885158798527038501085117755941347301474002738850756422033379748476850769361529277523307401595398657707830066636585263159127794505704888438377877018821819343865092005358181755135354482965511319470006999520153530519709741614666875711966085050273514111734116467232138060072830940121669505439192185735925985830602679446517108340850340358510441147373615703397043703978572868718278684210833857405881080788146947098366887383008533235864450292212023341372828939719355974256584803001484891005025462322600958611096427803338699053767221960390403193528249204455851578405882752719247073948696236243492810123715469739358323981424024698162075247462337545396957104136920412025573955056907529628625625946090840736183057125101004403326831813370810530109573857859309106638506582454718546013849226528639457975166127876408934525670197294297931974191928295376694479142900769880515412250542492086800292196250141629278292887822494116556341514049790551991195970638644347434317865089552093475732896151889200846261108503169898434323034056573675572932413356566632622466599583654273133824775660297760893228229687440936894222190042188150010755547383443163989740626991345528384673904248857023757919850490893208277683805998177668124476320023003326911925426833345439954500053706612011435461436821862629982370810743527892780672771993237361664742616320348944074697589189216100866428677125998198589511766209471685110387901124752483911435348418080499104804982803288614726799337996632720115965771794857654046294744226203500234794157363881376047573885035645181085854438089138252277545398934188926379145796398895752339067373554183255687780768410936662812418237763569484453068329480978932067928697213360694756091494634602692757860961721661375006526358272138613538056784308498118281179686108077166862241977211533641323005725126192746911310808508922169329004975186571428994053787891428591542765201633871163053866373740175726421013330003277888151272006365830334135148682267955666583906088408089788013156206496145249420490111841987696045948749740995103257360887724250335114954491448385074742869415966478726805337235317250625725357580467970730479825720279117866968050543501604493530025186062828210724842296364493329081991512091296624972276210703714649117069508362396586211744237746768906442782575067513406143185802536957344162374766928719300609680341297148598042905782546256734688895875076953971542377350001066173964209948376262225363007605162957683714172170430116670057059912098880717555667691123991210041960300456931736378279714616499645776722188021412354568684707456490367606134075378728709675791624725518323227993200661239124796678234063719884380066002654937087754580471904807180927722060992729629867081717870218791122796828878618346830067476453500440210511464088610317405081947704794514882181968763096503939000484428847270053449989125302517413061649198186951204157700217115464968481996598017043086482510772042112200234930090286279715862251490096892820825642204128863639904320033695735298206539039274094518205792287044628339975018166677100113236934166890562000066442311044376456887178121808632016720264682386927524629455145192932162807898984534689367130526002708376375997835862133778708091036006702120427945983209911268437757439181306886822835272509282248939284632556752802626189846498530175528118303738150093403967438764080643908256337402543508139567044971422389768850753185559245820933513289636796941490800989913392425695810142665439880706924672978008071213389811355614577864636956950006060235575885592978899147128276476064070930763202997461847027069225286007802553419997752207719441737004088094941210566584609300864938930674786272716324377102580288972071436793329998582143166591422333840675029151839993003778562409287116468650271889860708368772977937144846016470254836886812361310151431589778493433578119920112927932762993453441012421465744367188440768377420081759070075118266599523201889076743924298793602396599902400766118928292193296215794430154141137907962530006838857268544146495421473137347315482797015826352575308619791310207552427352152801788058916709787261353458703577061699374135810667395228121079991859386790216276967509563539871586197970455653707670797708991658418358105982906581804047939488152406819293732310257510178150549899051856535740234905130347929239743953130730318037858109839576574565097098937084866083345018707225996467336250081837911741309201833640555698072562168246738601877653532450309650571576149042704625723190188747510960030621493752920532710050326483402412993647474783550758865011503138393745795546678931021446766948303264569775313533910138719401417621956587684243597209703995135805125023783571361794038213083093248019153582814573964399194461962752043331923505224159733798005801731273762438135873204991005196343158993079387255832829060544682376817747532703541177265294022748775942590477520251749611324082224158944364560641432005233050414451119572307927041088364699570039925419569259576734805666215348880153850763005319282853591401320332672792350056464474992068417196360756759652990912607200256430740893799135821814702963763259411405935976602370873533053657052009966658064245522006817321217763738383729265057514721795635600483124458138479797886624704027509328394871757988881195105384874445703062930504587444033582377383324109922071575187337614718588485179355431318494759321555350301064191561283544781201945070918922354234710548119042217853141347684666230042323746270721709288819495824461165946726717504075317354134275231586777921242627547929990216401694775051560766389750573244801500211210980097168527697676981455198984090161936141550138093041607270849180854898134784909695144455977379428074014566618383541734326140785249914341779784348421945862792908935442654475753578398373437409863295749697210427851157367146419197624554712336762837978216556493575160091954730744010565621021175816450787397670589516985278957910848387143613253280749448127966655059109894417414381647741937694530042995781421132167809805922290589622517821009149002934411126495239763651116052372444841133680788862628305257105380684285316612320697702684963968403844830339312091458965540038347655294674672221045092087215646421982581693674270633387281694706975296925817682819743946268781613602926023699978995778969091369632532037370271423850578183114899525647029406523341567266463275263886601700338182508368964902971132339733287377050664432643871980091107702167014451996520077747474155373264695570461113220207370869239186124041036793781273375882391248799785123250369471967090387548066502573526648803822182153579749066118614040920977413912635499109470554227042507121812890969521337234426338362492697670588019219263228209866276360246758691094546770061033130068445606660935534457993776287397788282401254667012721517299982784833464911844135866909531063176225908169375930982923455093354754143955598206452676028594908053836350600534845787964512095184430138741286097519261092051652030636665462918662012509886279747047981689917149704751686653499288218129132761303261274497693271968058449012268475697884643160591791165298671328082925814674822783434236412178027339402288476002303172398748015927228395461687507975660163268817946989841390363216002644736238016959320473996331101359416605117943039605974372526205368280112458826394249129011789394233992793151175733233771782108401412605119707862196331462053508396715025264246245317960278804965945805759492156927857422524427906435052980979444997226274522578285966779461723355805397472288098522725122731614221279559775756000057206998568928847620447070970110425481188059066230909857507643290273266458113409812373993289455158138218581289862200965030485019773504632914822556448514386921620692943132148778640254534194816021941889604658733524926329871668541296772726638073558551799577203291384062367250974916323511335285568604668038927899393269291649331879167403616815860278765600177407915966540722794243052481770735610410943435757260476555669905935353669974612713058768871947126828783652861668357304081421721967823164475958108274598479024285189819254722870598210375343110459430257167614113751269666527428757188624087555418622856071976242865216814163243739234616883690317297516477597820608699807787083294904954322294022966549197840376894463283525339668519942931840745987923195401948504163427615538125990318330125223983839671664302254562630841468081154318112207228233060703108841597180016974107314825478112581741383187013732994651700724007319426140589173491168381385158761059298175248528456838839367337076839806191856405108912953742357584878995577608632363699008466897432091892705402064168428879012011924157489233713683224067101624617902297109405069771483204012110479622518796461203194517474721155027418104656577590825182428845664706232432950281196585716841607462142132049348287310357467328575987374385044628363434327984184705979746469938366212116832987199266009818051038486071125048545609523649707720105257042619158156846912396643883018768312693677925304072703569264741424972950110973296883750671044181280479639516388407585758120378332523577447768568864270694758997310511823778211923435242104408442565748959169382056554478716364592443256668293327975876313069223358835092706697347578779432598944253331650801146459532396684161219355716847227562993824527377786420024229306599254660424856563596995616171570811650126862948919310672241496076018431431293173081247381802427558201237847273648725024727456760760568835035883820020746190710970410260970526906098490488794615683129025524131102793971286101400618045491216377770843515411766766942942841945099713133298900183825802304079972091883628909478464931514748843983449095529433319617157908003920053008674978485104737067528727088607078358824888587059319907785532151117538359713504765765207646263132254300889293830569241016376322276904866850150757632550786590214440583550007849964995641339591591988724552885092491290087402897420019208406221370216976738577722283217176973960817147209360457616484653900814726695088871125164978485880358191379981707227095876862034041911859175954892179506135303484759536450122042100977511595573487229341749108247971195968408775028734171141113475304561644392197686207200036469124307601380587442624789972402877583036596493310812754272756855772774604510949898148592514787638302009992938948433547918562632205563079385294386847808742752608741705617927514574637409271933036518804460933335401608415528730994987799483047562531470971395203941360011066987537295616730903551930623511825473680436400369075256794208615285072256754952866185078387480867513382132842976530293468644783870481397686898094497399149069156919777058118211288273267583753990337620458876577283677730147333470376754526542301016262711965745086555760308689465075840966345768742944011435256655293613297851363260188747449372391442415271616070209441481631002430358604506863613491357122521505140268521587727472075362559305697967950221794315903231677939787781654100889328245781545707838215710481900585644916246001906664524794142343285635555954972673933152835860622747234910381035840355626026342545212308441637464506417540944769083112492111875567263802856276492651174930327029851804116892223910138480819909446274901076004685158295184855899009813057268109845194585672825640794938393218456109883705256840836727629244190961946238200466399326527861953854296407363042918914197847321129248472144447021106021107743390328177436170406701273578348162508657180626727842691986258487015578599870335178054005588982451116239547323390796989627790894976256392828887281739243760777921943731246349627824530149013013198305642454515866951889116840461532398961787882870435896833069464541607642032914687884611202407327105883759714023219163001684102926357279352883107136255857494230448014552509458944729582001370990854129690703493232251150191986356959880099738854515218671556142827648609286625222353981842792854177205750131710297991151442660438090559369299471270944385248563203341462897619652804910435116701703695327615929347143968623914124072791413598492015000053676126640013371568984915697245095105727010569868144221703238414495177537409365556536151080041461348086996263238312792188252255626964158121179621056235903014978030995433384585038390476387690962011297019309202088356995759883938101778376701396035716475784577245769572491374669701734674758554771831888228378273992918451559401290760308672032509535733593720695192744006965039409417169601575122391306149363311205139520472281014473041832467837496336031200661015278934981951301693365253787412504770532841389710129915325265661513196922531407733606633121632028419972870849655969368162399149649001472387107929193164944794903326115392700413370005750837194281124451502108775882146341031802092263520508672631074074183972733048985201886447321692666424759155520497012236710217615468394336926044448619842296039490333669783250283386483453291227191000907573585765654706913259858000232685808312369844915061624703208245420260079815822838131983289804063105759535211942600364807032374411511797456266331438234077424494573878938377751289535990006261703119378727008284155917056551862223018876744581735999352767481508001635562273625179927949880107367041453656616293740712242713213454221640392371052472581541867872815749651605596081954968641081927209057698687765277568439401079661023367414830051217791058118729486086140361524927379836537794826195323881598142809904107443439391857024615513806625553094629902663559650351138977084952324599059980170589989945054615265514921100518238585539538320486139178686564199693066203469475232856580304476594909991664980425598864027984991128658383185482640798888797527852354891245554509571097174758125516005055086609748907157537052273511691906262411290255374283190184073649955840432434013675664658487585636112509655586849211491271349733918247841533069786559391416661498477833635136303003600618605024616416493075415589017430074105950969857105788263889070811459778599309852427034766095412823759239504815796089384699630215006070461705676814322650256056728236864229325935881272049346202638715274718482856280543996517701031187364024952383720484680695154198814641492590756219241222841604312113669838215341124326343188882074247385865542508617386048961349798794911266026515010872191597880113098757164917917671049310132088836636526935755594728221639443852255272152454545594053710616332163057799024193774133610205183329083177313725785758323596059935003047970328157495450792291688018834303526760393993751658068073569754776161632898918451545533442451881061179261185431783444522914273903756114419703812463703562759226652444755299773903842618741097047088320841582606930774545957203664576708538373491055405451283822634057151522790866948296466644421628827878724164836509330107110509563216177627228428439973888457621942521423119297881376485219603036298979986574622072814763220875320023056609721217223076249140994107907549235625029062422123002011880414968551631111952990294530476019611805364278359814315786182999024195579391149139793454171865765687508364814244928721183109166835257188471249846937712885495821587693963208125143666331269236823383092505399406404192034109632679126128619206485800846643106422838206223480197108381894816075833412054226161236750568050142445509979271017820915921968412754539199757560903115118072438528233480122197128137448746696384316659506951857731056173702731996601812432366281645110228679333165049165815267223018077883228505745378577734334800536189402116864657129294583972913499662231379533313002327202833084624879409539892074475712963504275454898463227159461389454169748200546428552390340202306094609011024368917051888165497689928642269047777372617052362656451430626466150766025045944728396567345010533580197591591186339922620276313799478468372862739149660019387375706659604087177847930967484902954962443324369529526534970679040557928539061353299702686065735484548428729532685107031903918364066885125341142227782321076320944675419978061207201343012849204907275894757411856427392305720381989189516345853053906982477829258739117988476040114614526286285363050677233813260812032054186004988190652915790281799803582407236595283738563453415529220428771885303080893316336130560909847655056928648882392325207146633510818961627761741758606691132167655799152442257628189341396383530917845166850603930569767622932751264204358514293101416856741981587935125367957695488965418501328705630143575508005582053402378268068152892696799747526637788386598003739374684998953147367025866874042949671725804565169128012065302027859516587125948710837886592582977553750784955931708709930069739103274612282333285862071913580505531053025341759209761003542528707769125002638805094066391818729014243156403230926021605112513550535371721711925489308350114214371607802022700840904239434411906788244722989449059744647081022241875899667574944834011669221498457301718726110140988375224659199705876219171463447051100283966716221622551899509994622110983518244433697844659625162056522590507312947598680809253553405152578873494785741123757438392466418507619832391434890960603092554273424166897169310529293422354082134953738571339035282513031914989761056869967180246742219014698475382511159722843881811038641488674471636401875729232215474685675373346573484294843943206983660348340549466575378524785573206867045344692440320156246381422277154575568752615205060980313833931497619210638278668289933284040441674172201318973343427298856139238127856474201819586600511736929327488419686151044483636182110743555167016628384605324223641769008193856807510730990612531149042111699069078857656532298755107727740026367348588565086799159977144358941538018139217020548954044830539183715946890189501049681405910031202758150797926517519912694446563773947242516606876977447694574731864665481537724151791681988658837884302121749796258507245135771781679090872833084294258503274751806134674114266626551959098400050785791886880717386240409743694240079132705943902536627636837142874803592032640452283558384814334778189577000370075345510326539223377702359995828076439159083802989790960566879544720681479592871419537825565798601669461185543126517046819982798398929397069543636866232571324570297659225637571032512614393807316247840024946509558162218909690364859732015360085699670085992847096059864062165603625034619325088943674289575975201071659986510938938955809645525623764420254822224441454594824128852029009525789751772939391049764279788010460766968846954107366333263466459581861056921705215331718913855430513464297628845174145693551580926271907292295699239014084354227741156850300911202005145074392244791781970273211208638995498769151520042473160886567316372003002232864814640244726561730752455350228232685535823295819234623962219601430847747900564888238541621467558856931391812631823694610175897576719729356620964665810584503447016068768763476368537880030349913578371863534541939437101639216153113215963314999639904021516041771841667876628562871859190791746979298739716697049354173749661766241538817703830652571931972167042954176066950131582311524290392722098650680659956867701325853061189447071876026645335193900404843191094088035803207381893423206775686650923397868010647277367615657487335586933937280138166536692122932493642691642756736059032989728060763164271034449296886013240394730098010243174149529876531123341101163306972101917447242926384378442805628897200934292157174511088461834313949860552245114543454424048254175383079162226724230151212216818975489421262396246160427192169753002964122506462448529339582299790357207778349047519377419747124869526896932350744811953758559209587515631670315921807879599036395285705683737130537538237871847535398262299368504227687782142216593630595246592062580428765469307349142505980162687490512184453498199769635385957730975555359244310220592286261065699649683254100407643933829802324294854423788163092542750853339522947398600434020890477208084817050014529215196121919006673041813482924757278369931936354275151746492325955902627752225889042477131111262632663286284692467294665398471289474650932018703628089680879071861742885929702311677459277192871668488834917696662890424448263991378020076406370138414113171818337579719084915065714288055703635095246397332770768132233043486017419614524551879318012393189574105957567338677504628488759457255905390538960700107524009592963290861904776558597791693777520472450823131474026440571570912994281172134809694366369909706185607839651690518682204341822923185416501218203224235964934078156204316253456708934985858100502715453625715955313027594825617626691811395960649593601768275522537252218932360028528479748919252901901831433090056744593686327220461571075009616278498082281727085250548553820310350965213548678690494609510034664224835650720427050138530177661458623988321020694455965228839605380008029943477685217758016366532441396046568458083900311808561410111047738851773873066461113511347520687275913793358230457124474211807559589030811323714651300039581918403105644460779056105808641160600286126434474211887673507860949187774535828659475194125208338903380573822294360164183936547990615684777104941835823562083723856663643999367516359423224407999184574561173012987484098421850302649366569659968391507177255912568117858355653602942250418897021441652334685483560308890333587311961349018045669362271722966855847967730783280177879864813786186318928351517351713194790210726126758243047813257491276256411157825971266949625816893529889666158788763128728311660093170403356240539525152648911721520643593390322782533274901486136210070270375437502862106427956410093809993582065210976296687365940878443495523158435916795101031349381930317250675893063393628830236300535454606686011216182756101196979644855671275987671235270585007033654757179628835347914876878981493675458716001150502477521548598704021012558597462754919118845245881297505729219450567241440430536251423591985837695312022191843433590127812476303560062240788228355713429197181692272136686235359921456141884187761386878482450825376495908655433423959567593039414691415611081610772439673252094559015556759094690134981997297658741026404919632050484818162266693859926365403414199067880127674641029322984961329450999217485529035339941464871345577355760021193874202910297920850070049317612859706502924310208754335757133131310322256747372686959711379485386974994457880040168744261020539597958618252840594086380108196851937007442090906284085822993265439293980653140635678072770290770936911202587218312601993378182112698415331349843575843154864628713196321319007490710952070940213061008540088551504281378531598868211689683786405200233182027242639676251015459384360092599883872239596591815808356337224818240240499879170993392989365394184111636125082260657499014484355926139950497714807985402284414605764909748763721158867482089107358360235731712049440680742740776539050317409857905002449227500445509690290995146505132012414845697486517915310221065666131944559044015600594571802989091709245567272358951606144239562344868361932181454594461862912645628401974598494568295706469006333173496339780102237955099773686086535240545900862015088418741098702758988350922561908030291235444373092795442721916124400920822078466960227727193098002946275727654373965114245417427483528296814226149114275399028166552957031108893719437285059359776493726171903894415279337684259202175409706854236655069607722677302721074166503033953642656625369825062075035831426534045977870580290021706861710928532457727487735455108154989191559101373037227585318579013913356355317727196854149135693662724013542437430139780865480338494115578579990812588614622461358923245792253052442271734632101866437819351849897617417903621418742395464533993742039220370471869486339674100704319003511918513514958887291329011282903594561739703725045426349574131456328359405346228302920400106240033063487229949106636943668909931106831506446135661709009171979529937010153761697614335831145806216400199089978554240216965622303402660869467223935269607102880915996391501582628726805278483543577572622274039214324807565491727883402052799073282265723034115549762908240436065974308244746820434910566795626081647327715771253154796467826183711835261516563455726412605026367227304779731373718094080017615306405068815852670018974033463827483376699685122253473449935675109013437746409110454404363998625249209797019509067811447828227839327313342228114912146493886711975890109353726638009943831132971331519365583694745668942080246488574651710645394829164465850310914741726777713255327127895552065021940687572542034958696620509670797940231189056883834033071760914199881505858737638514620508559817860342034627708678550976934911563716416827027186639239430335008448599411047141355980914787128623512700454315494031017459603041931491563439787925103247907260350252216433054583148609948322130660238226742239082522396966393105328200083054333998129621869380058280955133292787127393566391198896664713047815648677158539397292706370334760344894460129848025695774176906023670177410242826591794324736113374561683564092128949154697785749950383162729906050036350800758276822057267094218342134668462904063080541366603386634295072045273952817232072049095381552343183157441107423182457375168885882238483656245833021996593979225901815170621252165896589747647552608608104295692368403059090776956160348918583572561801319918582802243627540817361082844469627717854129390906674912347319264007687444545145737977165112714277447433024480070370163243918084929888020167822054872626752666086121577353456836889009088041720777535032274914697868023035654295497426066859851349749064443276780057158555730046249828984874999514329129620836682008048088052080012928132258455968214238883832304702355198257572397714176459424536693148766109940376420900974396006781696632556101646710411001344580318955375551292985650275209061707502559831310191158793650476367070740024915544152689480911201919918241300601125084840968457336716108155111182175628561287742602386997138233048472534330731531238376977054151866991386119981497713872957405021339352379714979179063917278684156825578178850573853620610091866120685334866812577925148268438519227233703832655456080640569433390865560773321335927752037114754628442521633281882600680657157741757981023682126331685153385208176068733321129085854243963455416192150202796263740860580563173306922494492204562243480359735615628482862150412893944584884957096102419889748965506969305631297643569175656683302906674835233493973652804517472518629117572623655545820847475625493000788551595502907947441280754053632897434500762059396084140168445501477060434436336314715350044111328658617524001693387605062331536587646215096331541942527824929419928963095534562172793721270136946185948544978168058761712631184093088712671985945892489758783454321953346518370104259425862554283171820122020115168445319856252880783390837154051976780679464560550250953992137257599921431259610607661246675234434576962318666227492592543063938483794770073060102892816075672862995912380668198948523492593660169537114600498100297911595113761611144491702092914737622735383609110275022282600330695744673504535995770097164335865454336974548963403825225296746795412068788928860999704569340380428477916058599329031748129606844583122968901584873182196060311874310918868077052660785679161001379764899054460209706382590305063712701494852883842542134593909180406901179479859650686651802955213198019501800382275808918219819839338913238866723340744258857229595950966023239704089315711933367192174540251511637804869411704012001491162897214863072729761812456220299026453932505163809355756479652685334250153272403541842393207716441987583910896552330228494637084525560540527854819098646446618838615744450823186282727961821897091056411749591735322815969941114267586846294929082762115801673888735078233084480080958936549681071312925580300808705084888285424569677822743558467599907476319760655940952065217332027294088955143301815052987237505494067411471349070042913494481116473939278961561283887677698892049290123360848730883818228930294381672212171346122091184211727366280101904637251473827621416896213203462577850021265211827608182776095626080791121574465783830652994537038121169282563944430521558779510022333111326646461581580704663089554786244356427836550694226718345803697308249218835860930821458226612729056180910893431127879093667946270319412864150016360903454336725090192741131165352295999216070150173629812247719581734460413727562500292263760051195344742821440577811060835918878693929392560417984509448931508606133409571451410886175933893411381854344037808752909102587721898153756161188235451488691597945722222290221680203869072535510781401815892125909401303551315769176852998067450108060418186886080148863817265887402386006756954532820909164515762219233933258682116618135061123189231448664420187073606688519867494037205791564886593799175802596653315056719866432454754145199921854998230695393392886897792811592445325010406069724341150760249487540986794544973522069293619493291055522845156882894546996812319865293250177308939802364012220168344541344122208812585622117496126611600708042439416335506710361641503658959923761955317755839928324701861609246684578589037120898856458697393151098884278754847141232304220503878730262644805431285898659811914964147530392032776720467849431243371585149870818742267174413562105198739355666923996826657652313482586955672697118791873520230493534062489947334872647245190372401876733170921490898977780125092356388380904775691678903964960849392595421802925435617058118757303827863592612696898658617264460259215448545780204868531433475824814775051442925457363649504334300932944575145620229010595354346431964991454577682163526884672464534280771205812993612721279671980127625293081842150521512502352619936805379478064103704937844283608500298902903545835334657798016118478453526664974873431493127456380779553925762303682523242975895917855440751313515675674640832273119897738905581995494402056178750198424192866732058926134147550271314597986538767073733211295748874406207064839020866041688434300623359350133272296070358977372394267881002708403701792057389713162885028291400487714893826710354401547220397133906521048052951052449893193159114516893092240242032112908510364781587235382176092757681271868616789731917965672991215526507760256730548969058846264420503852728277063664347898640638291507390339503949346119265673687253259355171195294051453212311445018437024586813541413905019150149848247205754692389359421606177897512669689329304965704747979738007196176965950780651261971894277774350722823845771513908786992679158621544385084498826272962070765919588745254186782530037443628840583189047440900792555578292628997447467278511730291217502114297034062970960180292713307516613399355104067208726432927114123727665956335597566743477300709363177665388860548404295909517459334667663352035109897922949439277362916724521179755174127525492803842548765211542837994270840561591047881367715166923573366732826688515012667072520235422797636417010342895772770920656033052082574969284325047415914407876365238187646325986956809207089062521465452931558024898243376078487607084332623662798595406097174067718906370312423972969444541744910192550642777596583027259788878899308970095630089628492374020912823563870653997613938077425771653016096986408367350625144842612709930183272887980165165008282957925534976366219399683266633847239877352232229624894178993363716632116102769202038887994992342998861896488536739740634522082599534718464242167641210903888467250402846023579147947301041652491497804326232882809076051857893850905999230095241984133369301167837141821728200009952777396834635495552426239757433949527105338602981404434737585917503570835030293498721919776929825067092960319417814548235617602193740378069812117628008029045182528244999581376668707199390166475516783121896178384968273898162380090562361575980894350696470371420716365715470120614270640064339504447025095880483627727567116941993871076146885802268714909654568321590938042337550173762789948161203678092937854530185882110866501288221263225212150890140601880382115532259293813582042043561874302594170836894401105540684228068514871630343412557842542991018009795882668652782344059632175604423130474944957910498561944398247710174378554308956709151655534050410791632519031780743845012282804182981068348606601528021344984309183566309064881767175351087879133625933669199918506476997828974407271027308450477708693583847345421077388535283641479001381373027193280681361985989066755819486769346623310481977458748279768662959805850073059785513658213782102001409528780901532840589029512264040236440339884291087107245445638210091149623417461470640740336923285400262769688449560120448914895090237646537912932052391879117009527551879685732640864474469222093754403694234717652256364574455626152140352354066382529479138565465098835484186318839348059334627290145533860645135249129799324629676146075590812006543633581798377174371126819771259112829604888895048226228825018070761064050182340417401281857026906346535117186729077559553404368319853373906043571904434421984868061871755473762230922330912964747300594408114481392754390273982550461933188208158665677562627193376574002882175712099283464414375197742896339767575304778624116200229148140790670587472604954142930900583997051609743225044879970667475280944594905260603867767907613935065360178998897923765405320782472862152062872975470164222097497545065436206016292541415865237260020872800147811324271337177652258386741049076527515653702581469828283496737731717205631966539934271498184919245534555437917751305471839981088503126968550965296755770190671451113618306806090170385206947125444113002830393665295128002240200883082306630502351740554258669983648542093964675159183817714200525148760890619831377163102738134179915598084119147403948666481286409784987307817601260363600153757222633680954967006050444602495016057142171149448184860721401799177421562575611335718183218102714087168423277104437186282275407331472671234375910309034827971987754104785827299923009982528172768876994919141654070051404510305090333757036496092224013247778338162347933318509136207328665889763533610729720330127219366659566026932291939710881994865495314654783070357409772764142006787605717273895226125428126148409022557296073994165387552021448539537549590265642481449835562522910669458372396196885647532881925878166726470923308647114644558383702818325796117355222245974113470473032378306085087218861605944499576296527067317950074527375213653016317154290032237028045219807808774472139256363461754870252972044923484221286233124731301762676192472618519004831012475424405882303131206991262658548712684964795693561016796415539825211265951697276740941770777760091236040557578204825339593777077883650109993694073734204929312137334536877698596690384178080636415610284971530296916066129065756756506630852826326075208665378993348285617431595796707336839840215343069333340351543014740081011359026880046073148399761465846957386295132987075770656078775554971512631143293661817913195373055650221986819018817831652728479858556476981111928741614551792848748227632650018704162067481008225042573081561540160350864606834472066264710017833107831703600177313859209634179438289701605588199872702273384244629162162810830645618658004189236237814145300077410209237583923609074654014019687134089253027765149875266717361320903821052408692246348894306735872023309709837501323817944399363055650742361211748974918838237405373744776086671820851868206597581060174126597394082237129218360514260823866591168764826696833652355482138204287521513017402424874766640485008829120423272162450156341190438703329260464902535746030482918268883012460249613830155857176485793216223359033276643658254725024634560753810348268975530051802269467046778717922741248084603288649674629025219421713073330858777712323504664579194733777125880489938283842137325863706651249861956387400114065759660197509096579539588379862327067587373226358479983839516726623295859312513626698630723759271397329601219358437219659899071439782875053280867190722552023701899688873202156771205898600662544484595287783388136066908330589161775942437063234651980230207319310512638153974581821358361396255338198634541482046275637532083376130026699942855773164493231998115053979436621198799900595787587282534210180856427620858414434789477010381428825251942703426873630170040348756229782973403502542285406976771162058664476833804035063520488698299623148705264549572737852064466590789088980588148652630511095369271052472270799338016040892074819940406251813773193260491006542832203334684473152771040310018325783716524720354656114919571340177853683961354089086395878916137084878046702557537320309264527356115608503323570368839279846551210379862687163709137234277898320886447513386780706278912220168084755162234703240119791185365242454880394429865741811321677662340308629842877289323377314735467944657636130947827098496693137819069451970857606421567733667729295684334345880712486763167892974135528172637135132724874466949432275499528009000011806117448786464280363756573767467866844131010049454167425189038841739154640894940324372911357647989217861908207623504817702084492367168867131462459929088764078725279577485742816356290827881062306596553204647167886744125313647879584409691407760025398279777891736349567376219967658217219431396343118162306561687076865791296969178256384329221384474373754719150283930299972820098106517092078974475528223459231133060277548739578414541645882045171088148854762427643828847441714439568381291631384476003895629607713386884294307842497375035436810587087461181754029359469771458930611548195295714715988617358867161689010565754201656643615820182959892936066679079459850646890658342558221093278706419748198776691314619099294279948356889589011104834839249595445044117849950047667716117392726170494578352059214108267654315655515972759345724600073225152216271818593556436512190688771994824308394274998014459024382922428367855072221189456828126826263255152254532632539465850463524738570066298364822109395851138375748301063076921174931913099501094985217984259919448730104217400169256168748286993537351775461524762777324384823470840417947457846583854672348630277192220410211233470989655057571696241528841532524709615808854128131522484543584563986241260190688605427288286437946906955604181478512606972318142831388606984883170927274669585753194720960324046948051410721688990251994964632535912023482092042526567742736816203487489156367426345967122365650910516672941230925769515973574736750110345720388108279660944667393777562184731194462412519541131887733117160187425690915604226765481965482656668077856699210215377262260225580036315995957011561321278293069055744731263539760920613047744874623485348583008180254004037567237809284087205041752675262154083785798716364982912837357294933535249090944236693174463276389451228404255632194493895836951884898181187601524952147776227869215419789446390898096559803161093877638527419054701642938500436947208675173560709180196457286894324804106026573313507120349098799733947969020556166531349812332295594121593685081382320603775054007045812827979512596065229159986929227303638673830036827802844487381063792370779166603214350917263264332194671783796133004219766027622819272480666831726408889790502524839638711451648164500689854969434674192594126450770341787374471969290080068032083308398130085518900946966596941471959594658131472961801286082435576371555816789098285291938691545794002446844260575388536324031263812236662691831861171200778934119476064981209857843123784475350762756015578457307133019344990048627005693172023755718061583927470020805169345699460483752749108239481049255330862957939471936183348522780579608154135085414560274785368265335249419418687561349476633037399232705959709390137471438469062654417515930767736894908404264108242025006061500499575318111642208830733184886955994129013327336762089532942877760923322348515300323614315538937433427683459031550645941441577802919469462837556664473105392616960751023314535727824084574118273693249751187005833487311746040912552847639873970320345018622490274997306652105045723052650817443442342189069196621193413616964158624878801237449865454227229663003672654202819377130104460544561481850437367824435863872153935359016712438225576333130246217386643989856802768332415322752596829929846326702206880240619362921189611577266639249366066042764233301382496322609177672477929996104187832274454255894791363795803661712384141798691402959046623670876933361565279297447383802606249556756777557237454684932719437557582538654515876935248129983388643665487735266244177386018204270174913201766717324128294734272808679498601807314289204320138168426154805937301329920392277842731162158359931038373944621848996627157203893800591265821020710166776096634153994163169293288977198578211947225124464309550900996851064012112503465261840794726060866641132198517396414820823880005345979188232003263059781297132422808460536443812175066515053217501880043864900711346119262910119698578347349353309208434266231137033984197439948173374015467799403701031827508170715300966698836427086166743597367177240571707851906340866644878144252825418950258998794925515533903748453592451589719776749823073651798465179282700505734737257965631416299789644509384308066504634024299308676803260208921838779049277266297934668539006209930655206932036953603013516195322004716068569623385884767896134134325088689122621757296824657213946772541800432508018710673651949116402513437732573862535711169819190297061678520984797527417620163812014705771305861565453954472122727187883013182311955960029255859218877439091855116183544401956053910182267907369124105695174416812106059791136907687516550295100352036026139725783869323260955535786133391051275185235668026929878288673950219129308912061027398375304861193718184029658757439897597869511004771562729635593451912271048400940105449145818474233645414892696757749093060953362849040993747805241575710514678269473452660386038396601961332259434733888363207893938454166844812459048633221743304979367450860334177477320891932299959893411394361250768245553589460355911545076448672476294245315169176881437389172902724571165740933485626365224972310280421835895259572451780902463812318165731167465304903822963780836533067367579220239720316658554233584024973187086827574964723959733939704506979181494072572682383464220547097737652285244641229207079623550817561388285128677538824524050218362929584582537344839632376413815779958930364853472909445177211411510706750245838091279380771794711252742849088472115980172431212929370150116541559851148116208927717687871593337725752322090875386729724312040654538607538146857905673496532848143112859812101653423911500288877404177507678051524483176599328318161045291017470855112087999625010519335284590451827761691030388282827441085380665953909969689634312614050795368618318479981538125082447551948391179361567977840548868462489093188376288228452941331836945658643344596424222557642657680474202067284554360110493391928250797564072247149447251129450806038452573627086144947395210427084089288165178969074593083978757931984790578389484719052625487807200201191280943446375641454249138132767937158203340206372425549507464898420280473656834831602738544038296697755247734657934175968936540430708426060820874991082199786265886295892674745409154490378109722577501233996804709330506411076387640636946719051129952762963257177701481420100043737820704019722713336924811129154063568367181701473256584073066114075973420959452839869148410745086858792216855721852935748765072283231170458439236177765147376324403361494466936123343733946633984962326174493640943079962819835966338314794742565308792918298687169766365836248032982226176745940865938309511716320076678323338349706535300391413218337628147968168260183708711627590436173643158465964979869286207958640624040515317778398696149671402251215778769342956801737808099174581114490759747792013053018007701164823378632263388349203760002726997049081806608166602176977238630873150470504714499237002852824952734304040726980576230453104459924105365859567264336804828205471372240210601904726801319148518819123624990280685202420476870282150372384847581759464742410070550729241453445739068524726849599871819942694765873942752562796598394689791394191118275566646975673531595999216066787910273653374122414230671953914180500174083370525752163806332787271577951449178223902395547317707636895825465621155268241901813931260721568437744238785976077866029950786035355600438663356784318497795281807362784743695722106066427427169163849644956743043719225711832066991468168432953684722546725534710144506447917720064773179537418392568789071144625909415322793749635941826473489621462620033676845242286887549444463352964298125696551328715421184866298471350609311844836766655744663143272840355059328143358130447969274381534244309722217782724166215142376430414538414516544302258348503394567514123729549927438012144565140296624240166586075001439859834267691694367188974183979608066798917209498895269324085406801475107160538739394889764478128170636292285134631449445743410900586311646074240672826595590520560732018211245055576628173126680449218607263040801891505845954947511250308393938289234884047915095475215238990256709464225337631548063304867077535981947524155788014874556954836318959916126437313855958762090689413977377801583921369274111746873826542907200409699292594643752639942938645507078785860659379978889076464520763183260306752003638011083801432185860750570993840004619829832295168849702561015171893029440138508852894680501867905107218501927278885533533974057087182447436150461230795843051839223384415915046745275460995399187548111300938804681076206345487840769972523513739740677596547150379795162105412779341303592989428564281083931692201639947929067585549718711099381815764954878295485840835240280524735042326928851609900825594822783841257206909347915242977419652897086875122471869873852898269743572524691808629891588059309517675950454859055541373035060821264116437644598972820941144845404970333087224335753959706081874145697460801281732842271121562519415416058986386743025006322223601710695149976805711049730781443072245245098029445713491711849037058314700477535048913099010329898322950875491224882757838644935749844260749200725775469959650085256859775192441126537964299182490105655217983401631444210517170944711394626738969237975694563832153241029907213452393211857274202433147472540583994725906726669565175265107833757481164442045763445120309264156489703649949220298202185522163424411882743913593716274153604113100088015392664470038205364068806631860039324658349866793587626500423803210530716620850554158271375621507583342016669892655262299891057679006768579670074965860960561293401447708741280007586286257495765601470930012127959017227274301912473253576558407255176294303498571276258914100493908430821230189679575720148971142333658646860218707833347509639285053298488684756887823747204392541200870617373226328131261663824949346852305015520551426982111905806830468824120895899662904924468510781396274048704127415785926871356110375169890016245968571470635211437234778091972987750009131197689114378966328668731551271275630166553082120144967765757211162687493689164327392639571671696121037083050215892883807355922156564523133499410892785545254736971959382713908329543349510594908249189262962978451674284072934718171878452730289838987040864470862357979956988069555310349482826409137519598729804456524512673620610325894751874839954514871002934495046594674858277954267646675254641891112025301865085489974677988785439253937171627724098010080118922622348981474790252353498502640782202325563512927544416911777965893238647140774947847487526446787682728833907660394715420192206589298889671133771236190890728618436007279643853551067210323365586946136148435129459020421243556663544710944459106073870721262502784403733512315421138696897479014940674698800844043592169747967583055808047943383495753706370502597186306630449797094359371403485099947254704937404118683435118555029245481896395453971598218128642392570163986920679270246186298635247437079818000672447555641921875739436017336349172019436111740299347037239602858018953584770019878680780256556525483029138321707056519273825445483734663444445006142530577247559787212942207578395989259379639538050639512049363146940146840017404370803786072923062458405770754623859155800119092869987496850885342028249479439476291192695020144710790193187008355583428359392365871814522300059968835864624137500135229985919107294332179442403235112529982257121413075449907188976664037822344608979857240235639547143035217930264321675809829583693783361105989205631390108213553256979522743444116600050509946700321053750081887948107104937413471271974115147215481553544924703345023502990387824905541920008849480719520652145171716858559585200511642852216214091679604479856819186487601841907705854418657498518283861276376298070384949421236919807682026295541893921657414843742462042276196949541766338787452387292570221464086445796650774525773855243315173498325852851173208205591769856063505527771693592181971478707368806163544331030652310280238482894798135408211720435276211961945202232333531287423720246577467567820590309650675123951684282255434278343275546924478973794119639197205773980073713609897802565261269000324672830551359852096907744126917254331321529784288288999219244041141160108130729163891096582728091409285361958438284894630449152268390901745537826433933434004430029620809845423032353131154636597892669059588826568825769220809847085215992476367345977253296946627907493647343901628502222892822009090098076119620300193044967232583169291185403300442860651952964638353951057264533479002162059087446550392051657463715720366327215332741800862914553485235240825097272474679746984995390726856660759481890810664176036544824950442939855486986446435838848583425661764508196828193429754773320135868905293175239526692872484895961065228382572463511016187901700339736545635236369723538345834181811934332779753545649266444051772601940829920363869572271170922003899829777945226867707555249994733171821896858013235684748435899840120530014689406680634578791429672860330715511530564069588395938094228667152934598016932735467469856038321160759692932236623056917124883981385891205190901521139838791372226389833237482934289246932540519090281865123191791069084454101324952694629759841016223753036624739275707749083881279688089983619382724949194554452601292462235787978937182839037124081137186149516236466548432869350007878998986087869138510409840247015525773920680639012601473247554725217713489695104007139645605151410471144705952864231772902023532669061795331881054007516503150215947625543362279493709169288036182142402490904551838994830003990971231517377223067745666174920598632431166621213264575718145245520189896396482415276086332143175178045854484568466348231392239761668087239273103292934468952555450173438485530540875054213135639070652873860908049314051164659744625261008630480645406728802765520043434857510185229662185031182615762383878846722001716040622525759695300337421415483272625568413947654394971940328144273265134305584650680532610843674915569274421125777595883986365325841462851376319326489546353771313675052084119229280503821407463283253448085137801683725939134019095956659587015678297768266166606402545496525081369956792961316008711912193554454479488580923684974352470596477667456550476451457011730930048061329857362141578124165428226083534082046153610817570553181535888364242474181151879604861648830692780141557669840589983312034071762240439202178604106523091004054536180357421121600892323226378361192946431107595740721234529283448153499215583803910406788423058653921158531122743851013539176456568773576981409378033373656101679844318691837205070956127408113991878712013923305512467098246251413878866568389577265118470340912156976664459343461009467566643110890300276225078693141622183242075600101741698314895826758559326967428281501347512585592632347448142180470301195552750523807750530643347989679536774048629751051734982108953347631938335611885898352789396081958847342605898088063999729557786566960969407645362068390925586657395233942327997117199468481235811037956700707478435023203942756025163992407598648598231290478186964792985621400593185010182489404139850761073848711237202812448725356246365912698447422625995628546408630809907774579543929675006778715921803722866853835556289078510292505328610292416471882371086575162352496462462554777641753990827921297028869562337186459538493119159347226156856939949873710123637861745459794892712359420267486211935996300381602181956962266640401301048788933981562858904477792591163083894006052079197123521168579561906153922521239295269009196892934872225459637610056452594325675206447233557932454386535418314380451181819541795013537398681956631012225736449927951481496851533419528911401531319725769814286994643123506350819759966659131484218737369147677421004461348852962609185072478717020495672814709259406954169899268137824971362443667052412784668538507859553136602228790044152546528529627758727141095520452265379011991371620201777642163525141555600509868876054717947663451221080829212292862458902475083405093747665357564144818326532830998863635182878775534285831384412412599051095912182153482777540489235995970438365616971682804038244839717778107842701199921080822403592965076108234884652876154384826730556393581276372060979583735809917864307239498096121736449325010582238337744144656500260424586413160125409952944411760526680896910712555096920314871854874381391475283607774263500628108285757529273679079487454481029213236104274424960252712975682042013953933177313833883150219848542343091392798653586659816277237374329429520059937024923832563731285814640135833093867216942608624873817713067095051385972795493932327730224173820025203970326760842482484680917025695772136000206094233976372943132263885270288541526878447417859321297952432031342516313463542478510478534845123598618525914666850214999042265954158093561530541509086973261067312935818259727848789220412084484280207462650335429903874393517126392634349492548689124421045435249087068023094481120973566363187552346925095322317363626892858402302800527021104044918415990105414170670336010316578533003392640190579222671127631594105874235647948543942164360403836217779262092813000966030952185665075889830829140258130388960775058720793141341858406993911773595392511868543364868703535682416717047099430202865962138286068366222980003624765742428867765074799918088295474870945351534057639252094220946072577078948855867754833230856669155229585663869995072160486453305288446116752938054662343460855271774437946958775137053966810786462363202582190543897932983564641295761167972102458810950939287829674798436610062874249934911551987108801540455622179413357652921141461675153850357519735236384137654334525156425338360165513749796022678815628168017347257746803925445979091034082900676454801918812654705400471798444158961145301519262094865334635385894758916297329276198049146359590543251643215911521406127859578753397568618255446976275722184592904722495418928016529831731175947960256825644949463368327211443386322306499309092383887430433460640679503226119411458733116992821943588425730640266435184942168413866811697220566615626963424208087824923808614445707720336047724676138843239958408379225554619638487652050996621388929260053796447053314160493528496019825920393456253499598725726415933445124961197703982234732430001145473254378151099696812447787279030267879961462927262298483012122703418666885795291444830224528834328508923566029737222147783305843234680907515427068968060108302835742695349319952105713246896881214905852352093867208769270510533647865089511176969369617842449187798664957972039045629433776073232627930705313371086874408017765027100004674367983517285691177288845358314158491680771151769958131922747741342374454689557080604509513580476508013966705442784143180734770395849889540084602566139689854149398358903977505663608663022962170634021772963033890156112646021096471602308989862646096530129598992670720994860345790594545456528647751740635186585757865580441657915723072605019556030066903147758200239358309183606837221475554758860547754564774798730430406396649869922740254587434092742862836961258370303750318402582032520260976904746495349868718963064248139321945680257181887904345960010129687876753323333686262166807199203747809421549882568096660959664148447513095857184467267476183221074142129111325918666964908212009997978125666294056966483348829766892995345588736147210909838211048677694019430446647324967859817045203651322450957369763303956017557143650526060154845868864948294402529614006593749027652876199180916724133197787864518440259862230432530356095433938237373388299444222126192564259240394859266548555404197909844780728892753806496477621815635316337353919348378442748407640147029571597068163467889400187268922322350798066752515409527662697929749620001638147523945617488391213512772066796212244004490190660134182544446266612737453309509991004794803300691243334304774530583812947393327665020515313607398369555667140561097008615360471313707795331565996602220828643076362028092383857399471656634345768615033762761646101097440649567196478433593636133676681732911849176539462227608381777994527603911691180570140004424400262677183996308405760739863281529526219429660807866996120587269256213862833913086481143598173009123856251720605360222447812009001289605119646877589913400301791193793742433970847474535225291569301184076206325123716753229552490731115848218257429931566477238596312126842636695245419869707994132231661154019783695558246798130410919632986305698867024635471069780335940664073498491503093928095586475694257237593463376673183115394468512042503735806562163658263160438390889861600415776655843210943498586134288163627423541052341377435904911194065941149758132160295774142162580462110939243327717360787064333165332905226713383564055322589193518165393707071256332607124286277198922037799657091213414978861712346774587874350506454088733096667564289926093766937614643871219477722141546234082070539135328368287145406995223278097764807326166017366589603770913627998817184860241612634192482685851223367885340965590199382780710857995058238120894396491932066910377882404205199039720005160860395178740745076737937557908194835901244280558166132384871808866626857266682616894175223160377177051093304016098320394187906560224461033242664403553874829573133642211846025949839353694196394813838798742553695742698286078300358349037440995754484167559638647370162448769166928198295685483752910216157155807415513990722877880256614554609695483303374247134308710893662241680001853375631436577184245383007753659375572192456519646286746399436919453768900258238967587363410358207710758263108689737617403232310854900700370556570809720942768750338431487250984558727654900607417746230384586030858240240181405106117949234035246368729072639253433851240146880023910147120698358294316160555357842326671203397894642540951586549373291404227410932292313026251592249673873059445328602544575864426572213039830349456311604380644512638996053698874784442988937924937857634402609859487228916794550290340040352709613069043226600957746472891995721681259275135322437724646448599788286057772210882593857843488089556435239830596358914483254694600746400183502339177374058862064757159826419342314999907462686927629503817860137719933573811652645716807266621857856461250240359210272706486611465320782006323491910779497989892648685858497347889355531172999212730563334395774976961448041073617920767217930719418905676174873524873698317493407756082106382889287350342852250263299484618073533121475440149595111604798693307184539797191158926626121678726739507217052963700771363353498452355517335845316077593974443292120193041273503663313642154826188803796143629071787887479082940491041304567414774460369682543443297476637055208796552713783466450551819722892598580713119122086825587475497294669285019939676625172519075389256228218683054847230311621311474327175491358277343245949397978030415264929097555803227287858254479615031045112969337170632561986772092187769846364589685644004409188752950131416240947608533117272977048840454750069866416509061947097785449554503602549130344007969855245557823355034643593624191070437385487045664293206427415010622899961171843671933726434957873132910002952165970312583208344113857625064521637396034342659217004217707038680494254550888465802489272316160986986459860364825381708437892860517616103615988184698651157483908616085763082018183303792379301143897266959635819503161043922331217793016004072634766384019341651295628709858679349310954964456283554933700265453903783968868871617194524179256627839378450434258940990356240172638052332621443607413704402831896995812226461516015679869523768448597609567601304020417807227790191021953601046728880041227836845824702835884934904171615759651867581644877634572289438364123300364876016538719897951955966565087969149181581852604467042776444328915320622623242666029015271251440815058581871882947576375233116904123780151800835113677179386963695012129369014835684403649053867551443991409716329210404033667523653562014894263876225969390564288738181171900519480434852716756822514884118359453925828154875068851815111696163067241266006657310504236066075790822858584775297778149076266124729923595663200135599825773765826265201318062585650180968010821520205248613701881757387335069215400705872103029304467306790358997152161903038065086210115652012240075842734580915456356190051519830998368495446886188281382517536003006746026745246741453386805720737310476749232763634432215668850825411081634026000043107572776141261680641917365294684688888907198855250715262923291587842010296322689145254228170970153954725047051540006013594573702733309348731008725057138634040410769064634949486121024108229787360116976665308270423858489735008174382597010777795840171469804647655286539961918242682726710724747589125636199416807582185538764128844003096279880732974370763654190586239560078374464592355619065259963769448800090492454754860458867539733311181979750336117396845351351148907892923323471918180825934097068358980430800593757540004244828395234860853032838156728620124388339679974778361364865127400437478637040432478240841466873031144781771397870626650393427866829039385375159019113617757134151490071875267470616331119944678618980124386420042802612742697223693162787445506787936636127438988122390433002883229350606267861314631305460495365633847259551069125686561784236887366382148202637226892364086331940239183106872764622490112883252470043377722949978327882962602064493818968479198260431023301845640008803045124831073861291914932749637647804068487911686484284096168737984887883432020445749330011393078283853798445883044207727674966017935576775660042637248429387720624665375099561903813210256577609777977643155459500806077533860619541016926254826744074528690686417868204684241124198267688445592979728235042194998462161259547159922451878997236966025552626763950907575931297695136878974355742321141215013320325028300599883720968398574858359032779542610476531446547313751874663768707356240473176944547713922741516031493293967343295266183651647549238236944867806934868379601830849589958905161224178047617246967505574939406979491564199779925542707869988743678336448593894609481009566224388642109555930050133894134886390577047032394684525096130529361014688311944704801997219416365775481314488512261852298264583887367792745944459073127590946566310851604621155855702093119444167085346343070162505055216956974276545355773566582499375060212985166699414545152883467015949866832039423721253396166104938985263917023882768057627107851934705358035523943192800107772011019734937441699491353094864597257693685508471346999920641423945606592365487757887348551283421983126849495431235170289892093733415644655577902034871778308648496133319154075432970221323527857208230256899925948748324587990743079682264128546281991833423541274633298240122769552580751808737341719468258039527738257924426493068558215696351162533748925593542049758496021400822067339497079831589719121928548682736370605329940154709205070411504126828832067821411446098763904302423776068066791523380277396925393326224808344182592305691688622932772813260025323745979606115385078890792351565151834664924152963652917732917591553705121390758640611825541415209299173909279832368511977865139226751347432526809765776333941724541528670619490891150514484403450147211061539431503373998678768475021923386291791814514645281450748625785436282758361017696059608696744674005278321314698785634841553186152516361062520207772147874736631269430658671754296772577308556726828750639609715809178066378499359609882010592997829104319722565938536580433671296455161294030702756465015373489552998869595154661546246456353970859909083948375034977113253624001349176977741936816995385801237737917019368741793667711050765589522145652193117065645657563719638555716807879491544460926365096649847797602829860789140089921917859336848438707700886727046179109262513042399490984672145135327278533650748231942857384361920726039783705375896618415543983312692820335369600070057425092856801288294519188189551670924565043910337523377890204658455160821235757024093314767486268167209347130110873270851575269499296126518206339791688429899307173238464724440278733743170979833677700613887871720884163066680178218066006194530240506966554319434889190548040409027645697844514010682499925630712704671688834233271273029427808740390927258876516786888601588644878095477154664726722498105326850603133413556062152322793802663519592104922575523497845183422261655462671623024269983256002304774264885519850606897851402856196671138384118671817423330007262437115071440454779282594033770755834132812920430993563925864103687233739130493855426982688369999753096048962251177538338333671605656691375013754603963105118844072479062547707173163145065083862790759710201619727898405288878607092043897467111578074261459298309136969656896984868698831285716220624245552336509933433431512896778155195538595475923827403073726470891160329942424193955555953826032164717445498761126128752644641665154125300457975116351914398193984792440688245419635734603631445670393964831341749648282671552178230429001023037278738433688274833486630713933531624224183176895235690060115467198633341323329331259873324835260457637309135376722890485293986555888823297593863214841114944965491884079061308866266432189838073179852782997690634301038793060795000676405308014134682067587239557407196809179680677807904401718192820498183270902567166217537952925836385801804760582877329400601156727719431880821011650796099078460063290169870022248942348477851181524537491570614215146388513548850949878224442342576292217787361675318027558065318168562493643184958104628386404440047454668958827345375668554983443953714523168587438212321405398280611767540263721627730434972664227376428767729263581331648839209924565744381141709353903436426651124176122026686811455970295457374319082936392886572511795974958858543455911550463443794491771083498895105335349576527439891394951293613292493795442977619050292342322496838656829398107151898559722828221513339014089307301260122294410531997986963061571512355852775838271535831697657531864967019229793276251261388506507079178840836371232458526359017142456229503248160183604684638886629791319442060933477833950177014038866727058988778333875550484314371017511857548358621657205611606010780142636454585200690705235070999759181946271817943105962851857959152308383240414712193236165020597172886845196373221409719939245354342821861821505387656287921554443129181740585880192032275497902665015229273091563264256719648391861664360126885250189090119693818767569643683974813881560343083103671969306244972765504094648237738357743497707905644600005658378302637285668436074439199339278507315832385493512063218966235485362065771171576479313796443414378068371731403762820820663839113291776049883199360867871336197320658050087255950613374338784932056445394401240862222615837213601012292192621152124605209274943735044017654105132488679437293516161321851800112086029136161573486251846208102110506805122770091157270277622374900777532397309649234985498224451953774490758144550501677955690171384735738553186714991958705005439007630849666681206159104982459970267456644888799360959847226409904156576421099755374993031431185704342870138905281484018130463690411067559287434216002179351461723136520330879944937101669761819904058826118673156970493361110782000906761217948830545000898392969136431457246900479008407080321800048706137185676034350375875170711644921602049437869461796008159828572000181640168198440096114283909272870598237839906622333413694041042276023961957746335997363824884165365993554760022394103469515103308159583166711116976923647178792098316973021840386407670351579304236510700168872821215606131258503638806237002117761296802693021255372914243232475161683100416772311632131893238584936289807873436279546524310553546346125509061499896995420663473818974012398336277279398925479447572210743692249987935324043291745696473680985933947815043789914423001396908400541735712464593535310985539681151942343460466000094308683054384206259674822038895487925949179959541602747013937112172451192941201088400556462469720283752022329335091642745555478429062656909497697099190167979614293960318300642026750301690508984856583327662833405363996010679842279113265552793316193796527631752891234819943811055825892565133527470218435072393424682320290267757804460001597639846501262109614087069735239731418372315224528376701080608623095642867187576251141156206705069414622525682878957392069527559043858021606841273039865525508150005246904426322344361635774929482177994501095427046681892783382490550516305180520499766089871583407383365512079286895888213017324392056392706424865171248992263782172887074147023705080624203426593335475744258174856729688563213605393346841360676434030987463942864376411824156078030520057042447471681127218298962341369071693874897002994911094221472155917021155086607504432528047977189014591521019591569880078309858687442248863681529797845574614211466820675684156196761560023347844806131323679766556207713606274127109188101117194302274257486287537469731793952942378871189521287034889490517889958429837949571494412924901339514598747848890552686178876145646621885876840409825961345135148523708898007509576538762011404930968753673501843889301588535973697549178923544853090669047908133106324763086747948524825121961133040651267086628281607748931431306810950903617413117172827384092685312965204719604451665035221314842853393740418501587367110359465941804027700475594609675811410745003586822697069646243251556549401328457962992622293167207957432223189372123741268361350785316888246805295042450220140404477521987881294303524704887478893004599496377052081866790836144168397522835427223988749314607619214928203894370187511648930920259726010820287170391081953525397228669903324874344168215578398155451672591730263398920895748621100020385717362566213113086744653750821721953521767801984051926119661157830009236847326189275684891875355993819797494643524871628225940710956326083841479736278875772430736807795136318474539801914279037163791982185052130497570195738356260216045449873022285158651844944908507720862771431538841920351169809296405023126455312769065699524242968181657856252336035759355694089644542552533032133440439117775282600275651028508433859383449010706551817345584781573883926076675323297311918796889212762041116508219826351578398439450889247384690889688070732771932668659298498230326423422774456358246145383535459616458481500637080658586392728897527909422507570347638038797062058095562116760294043538604883488927381739059283840864300001727783847223094318250835510752492066592270573675960969334316042505537311241712621219199586531113306233255039087010279615222071060150592693443704636389718423707213983298275183682417943040711584801498100913472248085547519118605504955329109346279330080489189167968159019135349430695592302784817373417319196721778289601700820538948438295826676867743308697351566210576977426550810392941888815993931164963379332134750670551519185073100190050343866108995101316001183306566441387358006019017981020405244994672584827062844874486204062148027720098487268914041188822169016964565748423335272152823777633234410157351882602198541353595217133220269957047050352936656253730141903846705665106556569388283045652781319393436648462727882193917601104995376642599697012108111133951546219256086062551881974549972020770353467856537900950517578038338485194841955361257837240775343239850750734486979928297735385499951994597346738891731064221782319805556256413803790178055798227346870409774151676041686997600394191500170448227722513492907032928851444724117058058495375467935489758716055112781299276102896682294675489656871884917747415785636803921459399042564852171855253087512636867680948868717803123943861766550694803037167402764046063795719077534451721538032177664492964976543537807195609550682367025145611948229202554272136403471399092608572332889713676038764030217647223545052401923160881518561769523573127448339609879095691998781572886197485505560914235833744045163144361943817468872560020503814439142604159504775064210981830983343625594182737878176465208838266949809643857175384588334259349146494433928713614066545913996676497259284455072503431345894440568299134345013539697961987520384859593288737276236654760381409774778131306434087505789783854926198855510754734267809512406096193924432728633673366861429979996688852681479332754344190032953935760086568892133135518181216152652293769263519781665567006801036394839072094341176103889965151833413208081108015228309686899682000199568342714188359183556329800616070081571472493326257751173032868433910033431379581938739794738793303612269653497595697492022131692535354391309169559701785051168142752637343872291096891080464134884674682043088711144814542002203463479524360922054340094128771172177950732043507535869760299130862664687545854630313642618982592988684364992994668743728672594578897288447389349845870360592685594114100330814661277289957752249106265335254282963056270092502628132661262578449266691497620473304821031647396091914349717994273081313624307625085760031422311773967652455372447469105216981607076758651050481555410724005496078801089540626332402642838043152547339836650266469885696734715302859709323375295968989730968215236022532266658525159338983474694724943812654800172837781045412674154342385090482163486575038220985872868290389913035348284051686601966432980299891682570034247937899157227269181022024681784988572657590643065393963939889114254661515233155596016334527026274368162556044599754219549226985720901391221476219510454346940317355809872767384331636548372071860519543458570660065277129477049194653693826431891458846123359960215440120500999465992712418455211740858694831682481447102964979074916621384268674218597174438759323213903161141440829988903996853317295661013632740962471710447402753552513573505831263150604099894231740452610536389700096811027240165293575049871455005605835272678586536578054188229998490262517056347716182672351783995214635956842495797789415230798637948059849555986200403490054083660589010487934546831361748789363298802128823495067020017991635163075803363444150249241853708974738310158757895856432306160254119221733012744727508498136846883709479995343311422691656630875629426045239620612935796933030353660682953329466909680455633962908297070986926469250592855541873642877340970607010143547559531006714332399070822790400953752879637613146655745206705790560492394208758298495152925253655101801498241798609045282107854676232481518637658364235725295086226074094069881879131481377250594968413905641725046719530275689119772837848251268827004710546949003557653056518002020761681879491896906893109122056901526171519021962160617668179156972605098166897896654166189592442298477799952205768090926508090071483395439613022116471239085920781186293323148282563207144802120986900022577894462182146937435823593490365575355557068505492843287402442159766831680992478788048919628517228709013151793393832163119130038223944731539571232202365042652137101707391346531454425725243712033929549968861655797399350152549401168018980527218303033140768678606236443194814964596415224306206346601474790424576845431809730301809886060069071032499607801751894709910011605839426580792821253982982009639323166786450282345004634363671769303685835403273209469871100749267728228316483167165422479839426594994515465796838944412712251073287827489804710429279674327203828507670254166477925017759441336534912919048245715722605394115328004918598368023994105579867478672561756039023513775329402993703065498799162268005595023584096470791046186887173624438199281549705644792706932297692136107530741977323876046767711635625897837904023342580337170615675135099176799637083936305682385484102928076513519093818823281913155959118832391764537636976600047425864619807557429211048357698396070747626552117938015866156629707972912248185134420092889512483457563357228572352800658444434588401725965838157058454501668888905911413462942140577738820228458979534535089311653888643964079985791078236285999377030775442559525078454196782877986581894040004536913205954289296486505642253519359857919671303041077714126256863390626306173004030472530352419863266738805265488296873517036447966008932418547435415019629857539998628705497662585093766254277889611160486184217772280391027053126824212307052161328000759612218296701453168637783974319016144353561108403952710676574265151900881450832585951637794461952446722086989053432804095702338747617602422571878042855463266491990080651057358984189650200789322585965682083967706601713908456612933793304576076282188003211436780364562217069769737359047232040542306076769723684513222132228339299828009227853547228851922762235025981853159082664376975353077361805399221465729857655027252950755834535972239744135081499732066806262676075968856922272524275797707394792579039359114835478284968628746403656014665132214030389838291118004981408916297705207971007681836795284947990875298228229981345573386463753316925223471367772210320426853767915897883765197559752985917294762847513304736346917623139588821702269152174216371319869872663683918861692030029121899955925963505724268679110713229580390294972103643790584696256877124288779454694632412252246025143408017324789028591058399598976636256911556084637275929510601366508152009318931053899426948490689792612427378106806441481111894136570089896624579468579081765875531471830696163587230581494921773999622613792585300350345505883936449647748067968506802572044283609782119679532208973508849771376895519966973836147109756219164963874893903628337517961308895810060881318010771570753625142445610665742605920251548540892426953646949990958151532882359569894544621676727103338211647632027940139305875465394754638422264628539977108419973444502083019186980869137641015767728326673105035782841181554076289583288709814742322295243427344129411542972105214337977661428281507113439392110064924653495174117561762899266981100665142868625026837462592037313873051253264653366459985072531876952915065383671026337303952719200119444315890988882585719131009245617466829197384317807633545658392266748133665830345553654716988375880060137231251416206658384588077177134075699119413088387839546154492569563908933956500276771906943797218383117687408090461269415310299129333627978556100180351301196836926465472928088757536894613587927808968878037033051243696988591059917180800239488834626406419274190351374026513759455273251842355271350467067465228029627944960681495749701455116062266795561849854779908886004854616842734347275255939737080149897924636484974655269311233322053725045289722427979764287813021705252575862243026919103351608159876802821052714105281937289331729619059308315280091649339802774629663268529565410712582526736272373199581076671477966297703621408605748103642415517646670315117433502386062831647455759053086585447583872833540337208812944503678792733683305868640076293019209595786449205187296938574499479177905573487962986046435701240375919915482961616793084512737211491851265825469585949109571099075691740222995204751921236846624892456221130845019537210174287695396477829617989212503571426523201514375649062469049261871566684647674056557243538660116545778567407980145242154903782804057325314942748084553022855190085085808896835166604228044860083629655900676956892669407694257292276492580947854012986933761020741033213436355373858531802303050624087088265694247684738575173857241568746367225834774172962495753481841842965261662239374530133865860356122255072834991972466435100014433483234777245794731578151581272445966288457517598731490975125371204065582139022695431298632585059017960669636908531029642039081557276056245604734046997428271101215142606355463316084820221795979691770283282031490603401387264869570813031221719615520374807160972106148537719361013421110774356123228099989265166430346215944476223282638209063009192561171428956107233800971954125208810166315939287582753518471451491230696116439090487584268213486603050829255769402950961043920378755399509319516120404333671536028586449326684956792179986708152720012090317303340078510082041377361887146112349762633343708847698947662038111717036305443511808686940548837787613359759342435996036498006328728047574525047233331387798700939634529852619636959684096756933471045465075963852094702458978948719508812508294106108811515395758063627204623803157610584396709690232263958931809747046364618565222584216783841506522452440722461134837113707060887551526130886675054184551460475131777774775698687408429482034859870581198244463536909276201245218391816175137199093838623183303465585991127999331775739689073038795793476871514628703423957231048456936273108996654766467386204874800866632897725167020697208750553043288896349818801779517025405743375679523470390986729338901610593126527132534841430711626573601857640392745993997340113233754494998268091344037757779575714114768826733103137951168835352720446307340504359415061724718464029488213766374090373184845777142895599092440668806990112525210343420025072615139607006830350092473621300810612978850728838923889775099594584965733038710541711531700611019403420465736228710193255924410769425409666569376446148896981757244830095165847423634171119906016648160797547818715952437967043123380275585097454587750691480986214996479268507972201666877182883710753340831800215449503620944668434802417387558066315284946140861680601445579304354164027055353406386102275893895895624853263600221183704485610144935191464950943482373089360016546581600575663650108827639043491446204970720247918977192361275576190091224490564290291995133833242164847791113963159065008505780470755804426953220740576169160755486622781235688504717694232836996176002150402479940496205169434463453961484314721743110091493356709811474586804776914362413231081024969668545343060115360983469444446837184238468185310216117029566871160896163933486362469714877282061510879176479750745376032901497600490453978778055119627515879834911647818731700728590440178851000253117424924666953821697487712428195244722489942886916766197375988522619265296789054930761809250170311735662955584050506427896296936424810834992338107491392340146765439085935549662316898625945485828885846003128821204910516763373162954874870716023797823121794737093740362630807524173076547011833240448467375996071106862520993540489861551512024264519855829174729686163867242066098829858045111096178710893713023662046241988780352871430384211461992829315777430974891121569457953494905407860604139213236928415332028104522488837194081377445498031263698667412561508568538769619517020558050562781699613617074442709262586067559884418053893312048050953573978680253852390830155034097717575265749749409948227099374401189684378927848770253812287300052491768188981373583486543553367163296189864375370770387621405045397378380061860829112416611908367543061537522615534549300534877801649067104944424679725497596108025223064608367095050227523679389061678505548495236889548098846571290908307501705397772724071226486721694624832309693605809340406537371109515120686055885678261787148588188500346713792525686705639764589421746585550197456118786650945187251358236285207512143920080235884034285727228088797174417814577580188865473881719375158149352327211108437373796974376172648230084999722073244904262141795609450611029223565076884254772461880964938572638007030710972083805963402183747725179686523839659150969533053236085799288117130999319173578808937279117511277486927898505303281180953792597558070988579354147776807415033738733635914060555131834674480083125667130467292999179976084649941381712657496796161149189815344013305501467357235660273226399206494141406457859968329243198015177001638209269062932477244171957767124029813749816598112994321258608642741988943397965212328280816956185949827637173437147743084407686711085542043588553858717063249404730626070014507541844033776947424649136617806226980401930197596726546722854333259349407089430143551102161976119656898796753682727165597423170650026175640891703370201425386631388366633755010759720937937104765688631157090386449305569274287049619235603021662491044566015328149517275757265565482168992375587926992049475355811147348138155820741864562719794064702477470280479410652452720377241210045327203060269273457661840673406907609705167718050302982187827067226901141804237030604408329602521285566108921060287071183094281777792565068743711277716722774027906375214721701517278318896801207578781150597354525300436488343684886970773966483306029701819086528539694868984497498798904852623530329644803019525509562812052974085097205100457444961442390683355419650454319851857942805156106449305492193839953071199652622637828862972107730435655236656108016657102704015748840757952307287202354944908059022954791656913991558560898912849992268565541318568665657842030082299381628485905434931733804005714183843704562742795674766039104700944754476640006851962754804508763102034451824626783264900157269261232838392827350053526118902842531318717548244173812202253129375977652197416450892107220540400813254683548412252314018346764652717106837172805318030024719631028375767489612421393292835572278196650076949631204026442182488586190478443867239703222262490974199228631551311621696920226754023121927792275385173739633292480698915284401253397518140942100669748687121052677200440257111488313570890290710614369160709577767954979100371085982361478517475275048873676378403111093789330527274141465328812992792700806641747431182855620108890733878732860410959441809804310158800260970867130758537273149728785107787086762625700698917305138247420388804049142058989374111514478557710008661081456069486218845081835898872375903404005699125122070627614042720454856757751061724815375381395827527885745241182355571366054993070136294457573904005882177045246251663939082159041537731028243430200600643800236965288470669056691932961268773208760630091976312922721623788580035950466574756372909477910625711464806666613026274909368289915832943011670173427386055264555387393914901404994089194934714365926127262148862348409702643459364831891982935340743456347859940638403585897001612887656499386491014440361730729289844424689913711486674431025603042184661324862649811049630140364981768419402729237947478105612280160700538404766624880633969251407024808263531421894024032370031358162245656008160364180351217424773778240547798298335876420167365122448438103295698976141215022753722353202433709581831208819951304785159159187689974993292921526401770449107188526041069152096188729748698013861826657663194352717069582522849208348013553537554825254572665205739018231963551257095302646758785837917161484615731194595340211221027572520069262525261052392824297230386057933419621834006501592733256571146200526512121699302062910006190509594689796288054628531076008597005857939509651053501291371925746112008618623808638761040819592873975747327906866228390411616117491746076022194567646615625353122657454228956752938438354514392731447095534473357762443079252774156499979574392936190829883017980845134067966283738682846751902168706776570680189357516388078870018934643685680420215376447749076683323137467821171497289979019863530181026498899819316504737713998158619484831277644659791053436310224939723760864197100992221625172080961770912384096717652070167569233805376051370308227524787039305425003489838904965659398302077020724012650683261015551020373062723590585454615734961391607876492666785894818230183554130181496734671111865967976402346507109940914731255514536491134406070238868048842148151573736766674711618718507093634943940078316186691231133745700423716060026814244583388638379919403996097741079481392740575048630924404142720416400703283058514962261011652297052023615050468827353256065106233327636978011660283589573319090164571153467187952389805514559968687952955776675729978708746332205291624641020282860698498961085532629819866938201777681212540439041541170110033720616256323629459197294827484254396076606370969803245961300295770571999357396808719064764546046045256668023553306479409048872684686059555099689550912347417905651734987845279814466571614155103334108572098788798724950725919988144923564796382723122607815834135123552957809399367933629595814862446415557139150590693396621906790359298603379471193633369018712475662708871499991641833269837042095449745244885844140867401616752750628161138286173945474887039882041652763040040000199264508046850559798707159428671982812116002044408338853163697695881274875313571261350422292094549340003433431669642241505819336265368995496727349828975448135298972219788573707182770917064661769645509734075120355252961605795113830087642972479051500550269717713811718865884054774284871661601377440159661003642348838839565321719162115012751940952670797184421985253201658555703479237680693187785019414071214784129370842293093016562061059529163416982763013855055297780100364215117234913105798330700858882678085325021335264712724685894261409161273078208324595725491549379515513703059398070643448677579425985330121007612439137242493025601433432795391250855083377338771324052838662025231036767182284020201193435917834573375309990786315752448501653676183532262100266612912929397992341238969986093084166173478286407766444785709620754810453592478513701110019780064758322263793194413915045713565031912422424994037015456402133626339917513118065319461001102277068635888333761771851108307076471526869116378248856908644314616659012692483098136899121346724563906607480395505371115847220721932217172031107807325241689956654004677522891348596175145540232505520840389380561080694511061692124004191014266258222109341321828192835884698895752713719802270721877840780201382178058093255701804135884904508597743630003774766905290705843861768375266100578697939859092444490435279191300258016064932047737937760991848972138060963051158220907951017859300704787822181859493094860827871727097441002192238897337869609250189141074296528579604157744078412906018028307669555527091977201709696352917832500666517899155744720851604859453284391587291237095564082512388080747733690095615442026839619646953905960730255416193116244157881982315172951114593577566478503545264644513120094040227485985873234249524059452248013758088006096874346149038859392658581186844428278380615250223669448415617116169819300623733099569347462112623995090870848576681848769953970551215759713964840867290406047663198289343882203824057925219499345020414433258316558930517272157397230176662038227112116370951170534392113804341243883973925105496031932168723055089051879217746964448139800150199392408317556332023336430589558876657259512943917139734844923478544086501836000736064152893914579366445792097990183136728974895849417438457899484377512595238598728874286375297533005291307603083662461332902008268582555945795521101465643342401500936770807437799574245563905024618991997863803918876653306608551003727341594227630139141147329486060443300187600451945373783780822691891014478560985520359039774181022957264147936343494067592744882496889529997246824261011774952808985160813264433242756714939860067585346883100297371033628540547205246881727515824014320048895631153852763033691977230238273856041850701661861239744877455242138986392008870046501816870075808706538826749510586631360943947371961546608432862441907175375111029436744054613649187312065934780730947626410836050323893445952024027863598373428533574582596624667381136023366866393955337029906763154523352914282513437220826724094467212039591697224188979011917440156646563838248658102443839267255209541168118318568240932834843233091395409526920973260015708430231886903991237748020101792575997372025624089278786236443413539596914368220603304801593484079037456958071346183354000943179920323989336409234478484704227446494978610882929664630117467802725816746827717722134262442132043406539343159989525137578803359940173604771458412612278176010483220111111080220989106176923427835918397054526382120545452868980271598104965653668809990820177882018502238817153514792153365726874524874222252410124833062220355268962511207854240827098935597379708978426691027010480607981549880982904748987054294534277874257326415891259966083058441783678239880384187311799927426517530092981436346392397396128384449992151323285189260584909960187649544331673474736654291698855841704072201211565582717644354638363611002621882763028459479179224160183837358799526612559641714622074623795737848615512884203113092867580836138368959212944500636198674545170328521028039130696617900584385536099580754849017996999189582442438452838849142292127632906355679915275045256868692266169401363751233377294372968004860538812058189751634885634441729133902875922925456536513806786247242305064423845249795830620309225660688742311872532266977053120398983381747484070821964184791346980320521024454487829197631926973864224143353110647622753172109001894801420935872336077826848781272435685974679396542196234700133604565884145924743755880742219001586574429061295124892809802375840751052468747857065966749790808197686504522139054804361684631495488432068656570715834686028758150322895186844620090130403986546804388794936442008120488037506987102251795467486259417624748427550751732065483772360138796985589332670722841697087517959612550260376275627439773445416232178401164061330009133480361869279284523274117580759256073571143542638295343667271451968164474974310299166254144119659122829303521782755754313529955167655616877735485307360136305026869831545421806558393194795799938938832231540974110932307050669789992037221376055379647704380787059567670439713418648254581545970760725033995934025596708563922597120560357245062159271611950757779085236368970690137792748949956528916990294552945391059668743443731263185443411719663743669609642042143490177829009536738425168463973139184534581146509832268014425856486456676722787958107329237955244963603489312336135031956152431498104641041762072011840560972730731988032757679215740117478776776395551324239789758303478116087935180588559032186635145010201105310120489186756045320110175346482719759963867676741462658839898393364060655931914664263581902568054871954598643970987611509829645718655387044448556054018596407959218145844180902132689479079322539156221428473436674958018255002534983514813919710043357506711579777573764150138696852238832564907828819995894899399420907264701066088970106813002356502538527500936283201286692303436630635534539498304791141486673765916439397629934356490886638968982683316484821065113572679385657404373532727986016360231251134999888781129667440511032412983137494895880861969924076358807907528989712072412268985703746866911860264033607117994427560066690785270233933884586326899210362690565157447477027514035680450685698287887015007599825239049775011097810832871467565741020236947345175152675348187909492039459350912487127777877235149237270890688736767824980108698277203735639563825124611951418154369487551231535245022769653249859728861499226548607928884751654373999609808434937216771689200235878176305574016835413215498639742434754368297070784776472169556933402566618125453400226523308255564786646459878466845034368307414657795523080386632111761546465512196529242469587243876107955524754698704678859921012683948453791294019623543894253228840451327426514961422268942567994732816589919503429020496964648405201240916708062651308983612574679960634339305425555252581649306904733003609717176200005629269386313325910524027879836746592456228269859752897186599591725407092020662796810807282610181734715022705401053511856732099913846929600392214422507126722998643815230761091926653571270914987385505096786748612802482048047436224888017202575154726547042832881206599403946763152708400449567677365288573406797155779335833905129921410768444898885476292593804418829753908670012587170729144186924856873344171480005566395234683607237623021829884119511876830075184055936012036427873164897710817589442185159315023758779926408237052396522300608340585280981599940897419887784352215640349176090004582303057190938266785640992348137936978004121930123326978751965420172959887977050273768284281634008838445778430056420083551033508725664980433641087493461359026127673076536189434185077639608716437652287846939187674376962967806861535581092109798292116261287500349454884265708961316328328689571896624663773558697004000610152919214504482170246017352790842764638553478531415354764732941227535850871763636680149502267510302121885627420343176415600181898238189559435295097925208531747252575225737056794891827430287561875218862290254257476470354761263755669749110150336420335679345495254673338269657927597886181271668756338354527413601101676439394016199989024621860331214854520421698598321692179750722000782887430447414067461693055580035224051225410990164170411771486953078110699075034764848091423513434659843188924712227495766672856184878101798182119340105592517346373603629621270357884699491568773889612498157462830854525820396422092203160959805206265718553787734534802980244003732618748528628343074020248166619023070731717878610111116182642733694736634684989645783613029114645687150816670632885528065079005393258688278973151971833348315347335149703516084300861752510644118414067194524894965658639068384938657567652440932509403039991457902508608849496555005058718514205536622300675855365733305915396238442636081679386948006723801560466772793088979890954197568908045850798581441025198020757381265630359007730307017163775017732236636580818626641018304596428779492297930230745168616121677375668395427129712092418583020583882889398296803693707029486255662052721486115497975260460519680870140240551186823003430613133724142740681161681753320681939734852204133089506963616763866922578616421827913122541176772070154905961720990396207037052970421745895788581712615565107135169802202638834910408515041624395978585848233411377027798275684537922649744674418292778727536922417327039351293851324103454679323101163962489054660762895922939610142276191022993836461995954558146040387403344831724301116016338482225371352617115561240362765004452911903124499253168734186540491722491464165800138825993859842509000663390587344082237402609465230355631130939907255416243579447482773191463514386231035725090922821234181085405963635473316623095644068856281843308480453392050087639004529181495430501328526604519748484438973263210158899104236790208874791293054843384152996993101951679858319248015689130313756766687534708330277323561712900462575258410441783400398489266885003602427377423366186986041098864727087251851373492956683660080546476387643211283718973889672520240430160139114538242420085438831926967173796868821826093588389589067913139407545238878767010187011497402023087481336993386039099616725334994304694833699541114180258924990280196012267931644626126182578721756240839580378437140698021006835126905532362430208679335562238313188760682640929426581249804440632805260124605789122338711493990106034019104328223757647007984032372926190839248250254745113540103004165257984451736744034160407541328372241233398449417399103238637575069146692988296617667620293845598246924828877364126621649037719728599227941641931930122989339969635522787596513249977908422390790969291331995680443949639334374380026657197575600186895777272594705902335426868311018986431725206858992643754245008141530328811625398229470580673413012501766472494471325834040868641182629980740617658556089542772495295365903878704919229597071916522648040928808515228347191650209765189119116070657892765293557052017867118540682348254200874975189479499704366961886577066282671586103369710357199916729796462106617661381591785224849149839316165139827547909907583492790084357065258353600388778137539587972868117197068976767425820185800351940115361971648620852625676560330250961781304647901305834715655469776154592587629624721929877103102074689093591606594680673024681902775940804126286107505467813465892894552558997313327797493346755171795712317669375424246474054777079095332459901910672410098495592342829040709446205247166496943221310336327733954333161067312340637076293876228507538153822948369532882114850999496935479762124887869468171241161499960474835480661266520082730492917439791132933487171929397340232668802991131285575503849538100046143976209094871234107170494010789165576477656115626441918025187178107649167635359110194148588583197876168025471433752921609399738179786166576133236607170319105633728311693033823921987004050047271205672769373650445488074024570735496586689661735748099035432383875669613745318097632332568776840110543043709566648916244640637869614251363238810511612139540683289005724117490184921414375502693472243730443334821592186243043251514259602862610610391772277198378759111087364071486708152800535806562632387928033779868394730035989310906926841536467274837095110620680704580944217749032648074864616759245108806392571237255106933071687455335639567082688157800306438944519498440797557322652721043102971528746455654142480004999101072359053802076670680468884383338132187871609050683899894460470063603702624007311394409958674958104571636983380033397758969027846465307739294305314504607049804548468435803724659681346755442215856980003578880612601556198188724137197841681733337801605217639602687477266213865630117448374603456871725409591504171732945289957814454195969420075538835443626597594099198198596395055264965561547155340832529269908184707260999615845873441547660443444572738623457081545288603439380307753078135889176794336253480949353652572284645034705432574270852272487269359353251539301624950659697647107555813804150301754953373324224748252587873089737539076648621075978071241169231204742947613789386961510873115229137864869669793814469144977824328720736753555381899615074062989127266251154620099069261282245041382845881408306727521687648942332231085104778332682822356115784472921826165183000083597097233122179070897336518703141311010219977455905786213839572715056871287727277395862618100296360629422374155944397826042421471681796330582222165585443085095473206203578725833825454057789388036963526469546093423288180047734695612222203921677870534485699602650813170808797792011420498367254851096370390018609121378843895478874321199740350499182379436565678513720347510709021926569597167168951357286116915409290836317337397583146619807443960069808961162705506322479956929915410885294618270569987802895335691545704355399416908661770712406186459599374751394135623627803529105315963406540443929849284981526443873271420492242728738361021305510227128189093475068532111655014630216224071873078390047411439657250432574161296446108680586065726941513429585865285859938804572755828546314448640934828100767205373470081637287016353213281065120651671321133031920667494506952347385538528309040051289608735332704072525031625835240352056729949604610315462781405265070853831515342462919846524245433308735122362954106775103082912717954006737320048016910842212626902146772109238993226709609324735922942139254612483365954042674486680052281640593407268975400968217237092646774623228274217683892189970051342896509846891612348663900489521089400715413054202501677946571192721754926653917850238701397169258420907103770698076009756581241266081290024224103412717372886265760338680397382026174499269625384965822579513299850879709799667123003841588589337811368638899416768696303502547624837746041527617667255453793338047745143097053003103898276960748345150543322215871294354029443054843994815575434114182132886172254548908215764145821382901474581392651270973338677772602788307467406216152812074422507630095430530682851276130348881259402562963945805456481199274776290333366800178733285458756396379813955585350469525953367689394698661810340691276887597144333845494746441640704322633617394409513526801742635730026939910939319085048033880155234670879789459731748462802706012099637638392494918969687642435394582764226484007575655303393900961381434097477616162707685066181797247825491899881486482991139399001057301587402153968288311790213664148987601221093497280984930239297498835881998280285038475609076889342845349779638664882770825867401759724481597209734344977250620822481368214436995253527583780908929957721213241442519528469760020439803044636334748774580525694624400695248804109161082289275575612339175082470513536345417233609427922126281401708289924841956138557169239470587865021960706048924729886051921972220538009793680873254907377232713184849142936834111497371619168318265804074820133005853094506792099808486767473072499230475582576975268964706054426295252638122589160847231425258336298853280880774745563366532341988066766999279608656259928183642812659318013504244261133341821369713801191094644095118750084266097516740703287371396040284675857610418594437143904864723584457511449498395687066804329128704331667191454746762814176477147783628133787514605223435341668564525879347533908103308221218046718227103378183751852004086245588577805576914537819976218952097554535284110689677918495685319363984156489677098613710498853554535526128799019194156901903521548323484908314416425903459349437688529436647664349566808609294370511492499606920066217256755026677957511592336275553013344407883983618993254283908719214268501342880053738654213476156512913417702379631352721762362800718881403484602429661776710988488828092662874314945897630067206065530710453489377993259647278211338764999687114313843118229466354465295239938382527829906890900996212396689524007846307743368495715714250888010510361398959482356224297574836687700771929368980025188565380007593362647514173574320203254248665983335490629877578886700184042199555015702812812033581845857956116285586584402376132925783082409933893864060118314030266061711332247116708621393497365596866655241430520988053860530337412513922585618602683538946353989748452079512362130105674807842739850141415204601830900639089493789571844593581699312070425155349012854486889013914986492543630529608146810649547548256047315045150503500756211428346050142304355065244397332804410630168442461905203659928213556355385468975964423574255314941947536921609401475429316847997647372631380336047959593281345708358550770409530029450187643020677784805070377474508055803726537383660963243385502039151805218765951162055448199048982973746611505121404708691879142409762271589600381835842983128672149603541232342483820110009485257960460173569397584566078573188393950460555946559200450989944349581274785840698303711508482351355848736796867265998572495972382919690522150574353249708529690549775421609202542308859008632471553402072095248204844968729406241120368307599306330629623676516485167531106461427508727461393481783836726671244299938819966509487649375027486128694604991013340658903533854634039624475872965407063476620381236398426844515391003350912217787687539775487775707754461365488236493856127524563574912010098553402870114197840318847482139923315879391448389338803904770406612057034622661356918078655207438832346458686689394511842257304041936657766025627461760477687080461108511550915340527838665775023289287385886558391171481234434516922688860014743287717063118360766020340430024950156084730376240895971914394523895810088655039673507953606404734194345067003313731850521700960793400522283837068240654994519208596311817869457114045678546186454946073213886082335788335705668758930758973735353579073434305449863913432266766987122862642674941809123387121595871416483648990850691610248617644203034949683385714185345864420546915957776654329501222239746723565220718788623974209932746692434335051181940773613486532164914047537740335728283975840494428748098007709619407995812250919118732410316994130130340027437873297552176946959542950689513131788064253730004068775719093999616500808893498165115380272210855160817024917620050543233671779039052849007704940268143414168989566068999796959114200318027220868778772958645803742173543548152579838614076329603922575093711414807033459781620242740470057735833708428344625341848037295206223016525862804329371956155520964622836229931531792301998715656425842971006097618900800088780904887048346437804422376418556389126694351149525015335086784119604794256413467389562333204849710550883639664189795361343903979162121828937500603873071891646959342479408037477027528780004537135704840562989683348253408335842535693815008716478154608598928927760243055635664311381007904914396405214074361783316664403429298087716180331732368732673528991159231976498619710911751962555274950066637322045352591893660444471782324869310460365930290516076003647473198692818244113667041021047677619872940738175387085667417130513955702880301008819733634864234274823343858311515211033225159251130560067895371123386786728967787734713508793711780053689588262842925187659313504671161645336415001826793370550995032891004306886872361589552380835928785470246407280838444736774459663348461446642648155692290552474963291497931879724754636858025144495449801432665630558744741701569884041157640961480483479460445502880826651874052211726989656693292021250008644130527031256995436429954949670422355056936566002750797336899917921022516780574333104591330717569980666275188376382310519555225711184655866873482110357637810124522464827342295792577592985311092815510481875352443324568705891605739267563117281624529854663025630787240131917404730924029059280737219967212900847587078929553733331867473793263561327562969558590369850441463340525270344481896791704612991783342554791334133748973054246730666164726856775279175791500861429804357490162313935915754165527663106595831494051939713191704364354802137321532633815255415670567345902820251134083491907468008303140498458845318049098022456230514238690926157456456242022811714530319414730548727961201242155798217009944285469869372002522552721398768146289269668542721268458222632351726375947682297002034550823156958742343440943757929065994268093685412026507861601663391344949841508699842902694504166899013013145621156100226880274604571383855294791552653346700748053188357217617919472509166275787929384884546467645523898391054026961881250407563657207930925602373653061126036830528053866886295210941580493393173844304365900934461062184200943919059949186425940320290904472315879065406967916359012388204951723629277926380201968391548235857945588328615222924364610490784672711623600994324185925815901315394467591064328824870167476274690486282287559634448204748307488987518834732707585749735795881205500829171304910160902137753327414710215310591145882593595649752556207752136294652258042161440491169478353476772142469748215938310404095202665524293884971235506755453156961542098756679172008800624686339539238321239754659155421114452291627804401305134689324470369655676301806641554412240611810004266933138228741339540049602427532687245132094407786123942392209617060948364553457729368644564237284105876913375193818343625607557300346498473357891496390111453180798552035931712628502702047359266921566857464721605734187885842413529316516562576572479581499394691307001049468440780142237570375027065645848537539916124100862062388300265808948283230221162154956177482826809074513273521282188994834890905773591533618603350179943246573788580030554321541609898088089697367838481471137455441853196791783945028697946659988051224433163202883448120989627942593721256104588087558709805615909326543466816756986594766553328125702892957018426317775267103632922820168183094926970125351384723328724676280737805659314589019701899124102112488137694872497848978645971553733698850437798795794163943663031209320880883976139151743085667333096192580865101985558406341134114986097812044135360036713353733326421953805742569544175837388942236285597813957854865089890899447716502423139343639990523410556761975706084228392160581055008985405577687903671570519322181878700533343563845368226748273226304686595231301587222837383900887450360704359994915714152599598683574401847955430010980428056937488494879146082407185544105280076576757163285112914295067276792347148555608329874795601623304346334553316826444055079541590885152635203767998633506082123603870517205174068560187246842118114312633434573740556442127152290748624044923349719708820380449747335798722342615957663573960476763277055204136646831799622091749927538713225234529223042109152998378412797145006374238729440522349905929312032373911436387322551098554636875887003289226191008373332979900637829085280301673817263590044695802963568385505717613675125081195140027430007326775838792465401003711367186410863255372619675689016871394263837423155491111640793047259727205802894947180198849798966589270870299742567686189546354884512846725235895787017822493548437445287221292783490516647021143579131695149730345111279093911765608620433109065179927759196333346080514950895387371905625226078090121728300830754208672166076293528377495355361339193873019765572784425793799688435299528468317714634494046153803251710883455387643490207093001505760393283614123664458931671543001924039763887085900603862066373163173115632146981298662757818747253841142670307690179107827181959639904772580266543427824256978670088372765926511553557969439765772963317065733916720692228820759576386548831111833410924716469740252635763385129709159775623197543757064718732217971874638091344449054442644511238130776001334658810344315647584461120130829002991271297018223748068260269267016907495243219824417807059732810444509787269970616943496225939025765382598375619458348245698189225417845009796414096234520606214469524511244983703019000746474263960069268241739610456737074141641321729812503083911533558458349151645873551777578955163218881778253844995966953642161169938484303734671510699789525291988135626794202535291878804814815686312289997040327669188836979507982790165093713339729081596920034741034617397544871647249063231530715877743097974455537067976001238567965233858397710071573130609463161984916685658874242089470280132383807964177117652766005734060184832641773093728306810793797666230522049517832988240920464410668277386705352898196094301100942302855076486960929737781608452860849947598512569643320469170025657288509447626086905198092583571214679725222895114230282882558277203324500940312110855182237018414140264266179527168990742065893207607585870867041050910557078899744473467547892782045853752012462100335913024452320457711724906723964473766373687101249561363670298943363321828033595865489009543039964866421532167312441911041891805782087422274327440116397830397395252462650686455408519518445030073571908738352757354414369391852200104293083120266674847955488744100727995930758348442559378646223628348716239250128694448336518584005382234674367462129247213555410663990785630224883450437931778250407660954115074099632187201531088021173181187191363206858777675014152645300270431006768216585170913426422456454311243639778283458035847292656494683586805591578032129833721181756586735154229192684161640885760297145074638805376118785253354659488021958202706363086737889669609207427134393184674647052218527604618602014887675341050857350371611501180893917517869426333859331408456208738093812413218180752265858084613936617148086284294360693434262166898616158312110240612929274900047344965458104988008897883417695331518036725160744517166786989161509515866533598756850173829801461093100985058421496331023196256197312267711574570357977392106374501054406854201855210860300022224627674215539501138833898445489219986069800595885038204720732926764559154417209902134333593533091888059872860179387944405152064687170624102381629123407034085737894314210484047179791459293115062653986041105266169564060169061524778747072397325865066470377517842779241870003223558617467789370691655109641277523675898697977163499699175954676731393904277602425327909072232882362320224842941017061856563124239357485734922647293324368475975953263755582183959130525510623261385403729046725440656229381165567115932540255890196022023388111104278327962394033814591900871041286274150389519236847922279503424690613472623595622770902712957894894329497104032944500874280712554113858596028986393751172640886492655325755760541153317921605717609850407749159222522426010935149890699958745829161593992336109495225641084520642090555175378837107963711496000828651310068453113497525289333230455438215690386505437496820462660373065962441493700962462509279045717555551607933870196459722992991232650208351953060097250639431374921191414464679682532475776858497572760127246458611434660143636590987162938283515265193757586652886371649795172529500371483181686636281392436989854509976315935106238574608364042485261042936116697871887396887201778255916300372253277567846015071349043939190699710934666199052671466938855135050804793836295974034818509357622947304706650802573095053829930157408214119098988214487588558586838054403756769445355426830902707861619198072626619400451227803864539902548018433563683248519226050246796414250472749966417182528760184271360607565342128488743136497673058110690298827673511965888718399037214012185440550960793779503037028396369820183429008803519289110218514699702134634426848967610851835627955481877583093052734147019126017500134668101572208488875129417759179922854959502330035072987167084110574958278924269738191804962965685948750884059927412857892741115977860671029005504552956302996240411660477688398325861749554140679071297579572603702902645066638120944220202494042371487630605621767904241138624889398610526164411530539775133846941293472096860893321767091767844137978984463962641725654726662010112409009938266337614069575426161947690335688632118318507668846799468174777591233913881827134396427007272641518204548192526995403462730143006096120226699591884734176171881982968894071314966656572329084864233509734866743130122068102251460101409074580227552343882276877720804935061532658319646312237939285790333885033419338810604513981995862363458855000472258409418510235948117352964752409959455391836054921503999220720492570956200369784469811181466183956414719594303841351311146646596173401241733598862204743490559855996080769959063309693590287749487893873882957817390199862268713144341150099216133123420709985727570758681924334171257173731143757988005595711128849092910760868767567108675674696012206975219686998697264635245952636212714691918655203905630881709267268317744267079530490887749374093881801154437375659444925007467885369120268855676671181029472852536816088478101586777640202763677843288039920675455161427921124215367574433571398459440989017714695288944262803196045702057138041251107800129958719868429025630413014463001751944867095608137982387301041193610394095070265576887289005844905220167149538946566648259773439289481362784945950688287586750614334479364968448289364275769047030608118011345402989297233743508146439116601170693772720985638116820236313989051996848834427214968058631713156918760389164684430739305313887611866315596101390252709835460418820467797307503128754100094400468814254678127072893597895527474296907999598743604944634521773129028420911931603091418936525999488337184185799672674590968289971705490821650969388892421988601368609905294223768397552293761657750529264313571096183851547883732967418880811513844069497347884669502124205806133751245791703806107290257868645604498101584165056035977550322156220467294886466721766293556738999032506582235462470495848486533120316578423400939473158233538722508322929648655128482577322067813610881183404351373266422349490264036108621919829215262147030499408084292079628167103943265394906845971308679778989563060878791254982889996606535584052629435655086879528776621345702004153942416126296822810682117221231901913170361156574836496331974937613711391393923504327051735491348010453898015688879916440452685017162408599917423728002525759947408590368972927461356955773376698662545694731054905902950534412695745559254831007868307462657153377875065266516967686994439646157494098428985434833075536974467172070239437459157308005383925943319897859804899103738124136805048457991981559267016724882281208987257469489678339678537058326464183650498255193549213755720386966417907121542131732047243350734605881921529665704789506052428185594974518427754340521462607919940604237582882508822656187945672524827562380206608062653976846744200401359088524144123120036835836400700549249709544817144007968052684651429581873543873219061909900738086738836051675156065966307357267651631385859486868679280028082268903600682651227369988105368130775080954639674309614356422702776930318620740644691010163498672313114006284074286235406365773875937736435975772745011773790732446323940024192307769867775864374123941495292024009482269698403978294450808385710340914180665865114514715702429710965766955545408991879870562066486743084122457142673990346433513716171304713217491422603007256354842995983500951593895013509686691691763184656910359756691655910906811769413420219694043712389905279204593952939447207301726671866025306605857618265568929485263530710103077879748978895344871552991341473515645722084927994057635993490395550182046237471190603641741881840315180859671073554568296953957564932336342447739482798926545147482171329518198363296580285192322515800276804141280217167607870180007492005456402207647227064473838891964703987635869152269156728724634452295744053936766343241222337181182648500393970004221425063136601194750101754433036028135172927818554454357782345959393885096668258493188658371561574447908287622466623914305210725732994815402754475694856114076443936605420260057910150944908634568840710580741344150408521272962244642670145970998222089536752489941098288351745853409434164884611005511419090286222825891302763312366289584971086508916337257123635020242680028576266066288338984234373866345923626308432541819532189676576915229494606080861922989627629817656283895629233321666394904501981021411898115160186358902749058127240954640791664105761057658842984475071276003609903639109499179480465251934104642831801772553392571023187501549995153584385337740363284889484502858396399490666942069710794894140487583989633549164802508324015338129200553388125317389118998728320619873071545890368317880001495655480581487534661130991505752513391045201547010168775041974184868903275708839549837305905608781499488493406250515301367332701703310786199343605122805258021930474348206289163149693126681971274822800786145871012256093667124048846977236817335580025891875245977806636097844268562458472050752547343506142026835986319398472523730924838196258282336382468100887840924140952643578114333797898632611875465274911792042849871055565633625539152365364112428922365891300743301792097144313724415013723844163744593797403911961160951769169692567529840622986410383316145734951478200848938598052012126617215977856335154198007856431376634377234753677191453166630608844839114860214739563096498287639536724481768901640166602414886079752044648823302188462911905218460993437176179955618241265152821602655190952490296792299807040055453121616821502666384616118289164085269418121464587071699559746578072351733326212691517646808110218666218023176682017313744501009774485870785588346064610010333996025017774888908318767573803617386833720629835011263495421675069725714049926663123729143434750954405742732968801245357127000693938219484605583292395164682088235921479127011890113603277738475481275601066147621204191093523961639444718640502818724333888437178135857646883354756723576674373332214043044877312798859612190870045835541084146793044179414894272715058019621312979945129752565546449926704605325636698782201572715988177913748289630962489535370518677172866378852394491622558110059644455583337397769058130433724140390191331718054796573686549552133990280754974573962240298363724758972151508262902706257502720090788323039668282111612173095865778694571233067890172516235095170609044736574348250090887673833310134998547667868196505607165725447634461387390274578743101692121530049877984824114170097946963575586587873373026354887815337739928442128325596100201798517099289625757033544674542017441874671174872956411621756008975456472146183039180465818668371443693341401212563601714197960088694392555270127875825367120715800378243131233965590072615903735392056943501338684529330335243864559747014359973009230878765887543216123181434963186683744737388427530339643848841976939978661302742753186857391637377871028509489659499950185850192726778650527981654668546744770065227104251724297808944130227215587860914588430024614600154550596022647750696410276005467687631483151249299801940403466946051171392919487579726269142580918489307650455665016872861279966092074967515260807109695102226766592520815151030820716240916717253517216792205982406077583610702431353697051979409696588098125501243607487013148941395456104652177919859237754086762730263830524203168051591358991722261735348531179825459399932815669901978338623511055589753385966702373608570649561801580852279389832987382886361437162334790297673526403255358529517932817399897395272191412995382535323149476123211623902437986236847200670520044099880381408863131493343018541215014147771959568840170136947674584055571829964365745149566433223350181743238948800906142692320865290176358854256198342664950637621383183614344317502230414005753894610179400869994073440707271879365026984780745835759439101024451970162558182471356748279870269369042224438039388949901897291553218426840082318948440281618461813311456335763139492113513818159039011275453241077352054201350495386683108691258863908718353239431314776581792316841839383660884594510427190298377175468488974534127653732140194182297451141891901728222870566522819975900076212345103067168273829540049638524556476884095953016319427064338283551469815801959936218015711325041919740776535108804876132983683023791524164884835756731558221961698807332580239029836125160825879065858709738980216256413829523396622144068638887789213066072334952164353468153209733319508668374776410017520415912137540457039267638321983181875792326832966446761481808497947255200690000605763080840109319084434463497702046320539979663153403347900894181926185467938295684496456651578688883101087675523975992396801280739757663654979517924651480873479040313086328477515241452539257711211717553933363663278631428245246463404301896626365672018494272972670201048581928944481099741631824923455577375134601677804750323338262501301601994965328702203909594916326173539592767685566261893199031464263762143743491855924933799898112760798757873231103600983102157407859495662455987917670167651867793127100342137118292389295755659386813262884013225987635379975091179888024813944097336087691388448588374537657711139333520180556105449952788320156517272010040488845781032616501067034608892458639155904974371128813301629255309421315033933765730789341804128706818535736847025785212073436306338214416714800220274567974577682450334602072946386831473378495428611850126869342713661541401698307903492620911260434543753399103001999153407284962567279391794927696873204647975007976210192254473129868601786707082212286323240935972907693556075225725753439580219013412090239146137294884236382540768706821768381778801092191350397735957577676802847499145042334710658787354494312801862201086697382401942212585680136560474584978786190480770692677447230884561666711828367199770570297056932691379829172461216104889141326265609779486178089520881419264401781160154562408493398926401829873855834479757829337339437750292968507435912624569427745325892651547515410304666630499887036714115046845299239036888777803422937883628560858156837374385032394206716993694029553948883399593999627403438983574402827536338761114115623966261227926181058354848923298260101506277442555420947352467501897617844257856412729082134365092189465383429838038462195988589459097620465303413813381718309236365237250187206122652002876193988573202966346188183821261675832119408396588143995513524238540541606839213392894223606492161944139276992528489417300736339769425378269675338269531913476317625426560844413864473026501661584878238999527094091668838363117677049742501536781954453117269109807446443177287703488073676178713663826576074903674061014740287560304463474855796789223675706332347473679925956574668665455530666918731022357640542069201766498890543994521875447317548372237075089467495358049187250792350835145233362242783415203649099662791029921546766830667176204422783216052514917260335044180201239243696183875087404476606781120991175418339070073744234479406877639141739262949808760301710684814125127235072705927812387958451308946391326216551061259863814589274817456695882697385847318020659974706479043118237284392903145902901238685774961925252223231424613240901684041812727761145866179969593144493270980693164588025964198642146066282695734210264450158232959010805523044512465482552843339454723989865786697974183875649355820453385527954471672779246112325690197129259738299863985447267822630784809218216996405687682788713124238688240094017508366898462083464859884626370386769408958441306852370408529057336541847781622870618366403342770320161879076391622940683178061141942156934524828578606466897398924108526071487687267168114427143536691453696067823345906520453118099043062761309847786267048567372081254835077284125325365625372823406217807287576716490753090192217962618688310546689355103556884944916751575800625964552369279940620364996470331670752704929592911286298329706969581369354422498725084592063465543697615264841396775144727256766732641938053353952877758846854595089559658779216319688489575387817228667202217589191195088483038013650036974574177178107948754760566585409297736128289408506618832791125587203678289875976430139585354726453549589705997808090902321139908446128380746274469254783843189080211829664651762845973930525112441265090465237174485837516620879780206632873288230077387303812133163714312967840071194404483618004819790041048997560651435261312453289187266612725610217728367436764740705684366876439052226760561258143787005435178093214606809250941184492784389097363557761435327587959919422340967802654491279624037206397989735886682388099265262304330863247869084002980096873187273040278850640202023283114776686685977189212916049552925818691666577687155122548844383905176610611260768961104977795151778137629499122580652180244552988782538952711848183330958487705704388696270139486669800520664083714510476429848698859480623655363799063077190447007967798231836661316280048793600062595494458692344109736851209016984461558974055234402091222536675285289490829839475146114277462782166806449782686512441173884741397516564405346352916056467821486215886745175705351107521952279634971135976025571347364192579704473421819836813237729454475662323007136807948860836628972330121905081695233676177770129868424497416296578364127658714912978674170901087238814950038925869672828798709550363751621560997644416393423140722299913011290169153718757000853293905334559490360068612182378140029874848225353563804930364121274649810768805163157129091557604311011912217097542921011265118056596807478425503502464312302002795051202932554647038079669545255073049788573312820503502173834443536415110358933844379576345178164145865508012131022109841823788987652883072215793767435727128227395785980334287782216596059284993506690501871241749523954911377430368754337924971695368064370413592536972868840988444751614454891591437500106539908102086558275344238127576386589938706898585059403310602660573421677350781419116840279954553058323948447495810835873417838932228818902683003983215291423223150366274149824637836769127516374176790337893875363296476728445931462408042030036483740744560353158716623989127312452377761978159405265579844212714381444671940821461891167594728141668195304695501582623156132346392339324885001215007814930610131616465355069751463322251333943245590938002342514944531952964926149040261531848445020660885445667942854984960201379824222691344606574178070941868368871609324049824834654862040854205201347025888640377817365061504707553139562729178495936167828647901261894700036314024340072763522472412055562807844660537548630619791752207088369822473761324526992469755844396696835606452381956010696150506259810211484826453169141408538603168871797420184630678781544719596277135135250255182127023362659780869113979435135499178414243500418341292083162691058378225808102149678962440820503548671384436409469502139908138344578577582233832114057858004884512527566337896611578119651928172300852659859953590631760831350994251879156923570306658612493006455973598483902865197002920738588639762099529540282209924483826485239077351397309772064948539154136570136332575624734737855642841959423266744298691601296470960301735743805376754172553009165398800997304377680107166311167569179671918642746575028040751607729250721305983750049013522014556560572139457055087678451226811694106571805208154099272535191538654219244191331994129609224005189399602115552047015278497674514101593686478854993352507103686289190859958920130753580745884330611544975079293848518665515004245054501310340154689699523679560778189377106913860379348299303981339663596085451622144448869854820736255479927276071769102890135506538306162268577548703157608282628265260046005682913684962489159632418024632955892046678182405360201287971322687374675826149913071282961058815384816377582683168635039167265650013716077458974728959439295085041337977727423247492870884159022536469104762591238518859128849559640940136175453638631472719848209014514783495785607109255936963417774270320613715908522790637663464013546005783450119810712822962719642769267853633347735235087930894521975262596476187499009419956159259918591543616157907025952200740117241928857260214648303194509500812094244903315951807118900388974204491018077506548280015062693837608049165836048297339224357642181151439088110905291913635544341790676548987427103877501962401530316037038310923082802629330691907122861840874816068146681736051272589767755112852706501058648610623962841001159786045435655492669580857092803219737628705672414156221296322090009748159363066467162275729381483074929080968863246693220114978848486309158698445190170254172324478064475292304123090126834389400945055702709463541732893210458551459137277580950584326357498182459961999593861399304912502813396332229463773446371037537674270725816347686085821090266487698768899138533496683851693320556737044781126999750341608458397900262280770736789091462068798260207821893120918525314130837034726531364329449800349348244474820233754733033831594473156063700544772114873352586402321920750560420382311353805317860020217318561908044019363638192207009489418302035663088861191538695865394775883051903768535139895770714268788310386205537717147771081337977881943486603889105838910295912599991560069344800073176684249398579964718806912360337595139167073282063610149556167527568504834979064489463266751613945727839612341051051052076703094826420324960458660609542475633058538129692329186042965357115659399405833685981267789725066741723051546283061612911250902736899315478361185066351749358616063855864188620497165569871877216321045874715941928440664310023422531899727749156269402388404517747203523648646579346511535097867415865507117071856385915140525850306323899015502618396759388339097904751853236438404157923762951309708577167080975040020910903508663373396866552636037818628519219905865995688467213328922587493102402146940007422431986850930441815751886635997723337664597698037573652684178150298146539560802333394204188953317263372437621636583037241219810270042221619657145478441370270439457978712149371674551613098126839432288205493966769859581031791700415892136947352476986585992169037892232438597796229815903483600759823427670223816211364004340947806815339347069407030725468223541383537471394340994964369491670373662070683182959225055048787764396514754066837878925499459884521433321260609365949367057090614226570819252196155955968826285672241234074467994174868114543333780852514330064373013651694577823198351704041360014620667148342282852600470259128416732613455016489439170641652155013694751724819269774967253362027113526192398068521263627612035059287460549199594865044621288225995071952142142418994319108612919971479906242326088841241433288304553904548490541760253763549714353925506484731224806063725609321197409793791636264900562894637249479239044135013023151034357691395308272093598922871271997885635766709244150902115789660450834003088339965005005130106570794413236843872542068564678576751563621869499812605463242596314213989396837221502792943941181661330877735211255328655112610384649555870709342955732235912789832169762981369032885687899919890540226626118708401076535398076256696607563484945079849985186587737588229159982832055758809149677884784384266242286170336351078612953146247881738928717316884329169449733824775793066439966253869647170116433891551844015361989651635459141317071236989343745873022724561283691889215263941140542356295241551377233018990993844876031832761916079953511818662295173735996594657249833176135944961324051238907938701158057126136780605317449539316482262035210019068630735821449113523756482523203994262244042597151611128341633016047827999792438030661985322118440774533893785284656657201533330120260149381313955668754446003538023907572071052322829440376114122917825874409724729460910377306408465209145596504712221964307643142695339912577383243979879590426811630670974835975222988827945133815639591155023066925583059612513181750035926454469619016414944546444986339999377993473023555203698425401553412388381546420317628249971930469042002093756215413463826156876221278175727892054463973564427794463452837191012771115779222886798713298288825674246227605856082426912892447695991915975609688857068636691357131013256541706093269351887839204470756429290362202762557891978060286629636535079334622561476500666593183869123367775899140019686756867877843960451874222025053620513143699318597562638611946788220101066068019830172863911910765457577795579542880750403320264879599726201947664917945386256248330842960450301074805570043225223059551863822458970036833228114828690742492725887748457753635665619762311443079350363346794084964624691395277684837165215693312722489414383474323358069203721945909050802490156418358128805530096395798791128953167790126235335870548629889700165525599336769674760586498412152414728528832688118648015012158707281201855679592883787050714712709090666042130176770981633947324255922123766876980686548606715749060386030715937283385619398482227993760217955778078102013534704147167330584608094262121636587403908789948953043051420142862687058899331400614369865340185475596698148805083867927528412486186440944163024365421826984152198155426911095255826771999155039053684257875374638269489422215885619015630217091624794849879455349752410408229873481443740784568505963871852469082257472077999831953176006071155530342179694170627084640582222074967771839100418804278212120439337700193405794366199644566115212553432918732899529688884741078222273177227999591669695977622612639159024915119052939262285919118377905302412785319034882990323889772987046576680798411912641155035256058645005323012997669366430232084447681958254456937039672997330395716800515816058726620546348706395244640009342927459729876759803049823590297361253382093712581929994245127124287267161524676799304666365999278193214574562587563609045207930660186238481146107438309164960635834204745956891322374593255851858538010688331742502060074662781941205231432996885525936621216444890616213844591392164373910232670502580881676123056602008857703325242855297515372948400618970463338579333819309704327202386142189596015133344567096028971346947232777243702598765073336943406549007891540945744499973346840380392891033956039766546347747994195323578599684461484444839251764639717059810418467574750035723298089432213077393131495303943691870820404549278900787673187504769234502525183310835633060562068219453990600135617657892649971097651638612299099475452143312660186819090137873686995077946803448846198730370049791725472757603373667447922623395273894201908914947719072226549303123478823393687615432975173686322457629287354260529333032925555680052263132583529617214983814038840016916749401400401866466924898009680811517751548028808325111040884910865778355347040934943248679261810462709848075481401692230988552299605494497890260560961101388797407465543918350856590872751395476434439678843127500121544065556868678195155109763171562666491419372386252354609809077799451768357550709939472385496560505322561641406301702783114558395591022006560826199390138768501865790371862999241022573902248465119578838359953054420573403201748340035091019128874204033893207603444098257649991142554382384090849701576759249340607702249853771441730535690566911380062498200417247378015222625825572735388215896581756568503580371872622155271219925098253889747198870833141185055929553308809722719754665497578764513521011191315198221270220756453132574840681276798373538249429230589305698324355627619332693709731580638911216400542007417347730226390939974215304343050531208022537071577088518488489303009502976280846461218860043046351102992092813813622201249928926463019152774722618016557810776139173303746330203836076906195745881946500010446644270717672812467330353363329786830763413955620235731539450101731548874537922478072340040042358552719003352409951801923714837192825032460174696000296562501072540424481676079642870527617728407118545924742166990008678055990014577323399322229804507448892675817518226558368201349398397877226147719357402620811531113278833253343741259814201853211425958998447533189165562441139332317842327079315179885609366563839341051385363510838925078100705942067827165609904935840326782695899218540490273739666144496457834541594987353582859346903596484916159199523570501956693612911957365336739910615256862634637673330982733399826871121667999682765623098845995322852405509406578978855595898928929632255581614724852645425154912471973627032516946029974175012013289208507853864390138261502697510581479014645771773435422321731542693490553603338846948398573298626975581202947158448758766491274198054936919894712299584629127401859263347015488279449068474314862663431094451179408738098044098621424231094898268813515808045372540379322792347130254163170354979361228005317784797875790142903188115267783574744803299882164233887082838557228313305220141600573017153217459166211471494500844981320011317444559215764591731414070860987736018201536725872902323127597084527290735435698101718045053057868963092648073875164860385710028980422476664249682732588317857474179513178310171412714988931827426837332227939280406158220202793426902236421161334364437337181264154279474585197564342522203694973817262255002875131737004939138013540919085532498524819727704498082946959592042407580065971463596698684557407404776125420021673473752366765971943442859709392957954854506670268770592841690922396519230360487311346124956233317246757832889565669278841645084150187333524585304215675901402882431204065158473318723880675451221085867957662016793444281366755264089468194438650351786524181431706864280818801935518964895181902316947773817776123912813732255379279844411808942127780929171310731023806248132739520065362008926293685370283174726459335269070395924018701805675611617264934902036971297161707552527923228268681910777185570426432946213125177289920969417426055376053885887164528311605459042820510719733255580929032986416126683474457398722852131434144475271004296850464160832298640764090150823656025141691866694443619803949706999900111213141574310222475920701428642194745181547959495228125862772776028299165136560768615929084588720481831781429396812492725133426252594409879051226894311729114685176911183184307016916176392828775104994524831422933887741418664321308614692600391449893595516335594072833861065219909470079295048197400575883674018557772279677547399846776656753003324336509403352652784473707258796744689587540876075960476543780626232141994745021252628883069147390053769056023033522315671667712530896204885306985864061882342577042503631232953974432655179725343815977800271559753319822452190561428948586198802826599228278547265946824922290288141086834303557732944073394914560583488459300272071286014023121262353284704863071170549608981580106710101433537554015493469462882167245766749102107101154368651925443385006007328624413338421304058222678107189325469454900621580508199491085723313845835129112685883724586705237799272489160173361878894425175006521264605535756884794884196386382350353775480530943613894636087949894292301420676568709797991704151090163296361256309600224981084951539590563773427431445277146078803096191733013083329932309037221771667046777057580500947211608555786141670389617408719466977003896160834352289359896615546416010478989736838737125328353527086338090534887939287362115263682338204323647897096159191592317537376416448957467251511948445639369231566295813320974083779443063766716462134070391295713668698080729802162410700612636447295510568133928139934902376356942602908190903593252684223389549811602308892468205319203330267222851036435538925892289517037811144378376367909082581838090585084380943044118000163269828532893955929870657992090953722349743733965585870720687505508887576048091685420717253317480698109248693204298093944962610310823595075118429645630635493066525389594507338711284459203788574310447774126519398268193531829285693115273775637279931309420559173250634404523266057371523305474790758375454868880715705879660017546499485637923784969634338512597851245722553224834053157860212967952684396280644575583281917589940058815707082250060259372716664026445981576358550324758523034001894157790202875772840847470386381898533712991988420830466729338128944685656421361482846369273325630064285416496474217616694982147723871580453813466343069324390820192091225126181628976868525494341363056077192315711858234743837450173460849564218443141078704692361272940303080685434294524874599767335300521162907712893371589568975025050745758533331936267938146565308490681319526072626073048207333610457311335653695431079799004106703990901141175642043328784844527968841792845280191110430120568792112758736060135304440893811112425366728296825150703872997640660869374005923993779885732278132998977430628291630867476934479625502747274702218065684499097945850348688725277501940684211976052601566977954080970609494007533571439207822562973975533433921080918172461923324079609779172987093536402187254697460305942941026954150580098272535701927544993832500983178123119037751815366355839325652151569659018785667749381366717878595882656266022397788286695145952768348288566920297495056808441597736650520616911965240322603176630180099293314240030637605236368078322541958781153908998366027521946891077234243876770355284673087668412912827265197464021380775351747765630891709453372718805792990018285462886173993903844885788294119482237276093876088210706657335392638953576883125769885726320173204555845969555855145901233619542362525259623084568703620995502522837692362527126233983616614326697549499788225653178585405124655240825765718662827909612972283528178143826781826333522143910968357452165857850099993902616342444467258419908787831065777254829904627876764955558753058412865096149754389252229735059343119711897679831146357371066733099364913490421180755016624630655218478765180015264470515767709029409698953680483750504355933387099943143568797586535568355918393083988936298421459322655574010577832734641770198085932195979064074950108998941590220220511060187374548498475426616624765361973120451501055257726543664021878134826695843611382434656440123234240830795119922910987435387631497069581687080252371719948135351805126662954909996142391600690973484317062715136977682471790525513373285232758337950233939374023251161042503768639340114915903138324393982419255631833106897496437802407259336550189638042982758070629655705524110163579474451027165812862585098285257857063570072995201791014152655198981450118739489366044625135653776905561054071118718363702242273698353922260624954304404657774020642935180339483366918176341439185058452511772077810598863508508671011269334801651255358301152560195349469911721233850765489140351195775710770479258890109733772432348022615062911849519940445133568459482732565258893175272510490556006665119566181112427286059692790161055658847817189707848742158112874604568817260351019888658439229118655879857346211187265415846739020810977713229896561728667914900508933676422771854525377138134625103114920416633296834498073502359691432355507148965670427871128636619512018939279228741844972213972326338541431386237636317324837260082633071549977607013614270245126299666489348659519370626399586823250204337816253923922577559803149578045923482362174591544947887045867003877156737776903013842557435173637980613722065577290005318510491506350283893325139801876808241831042581233118013808813863298393301434577244189739863973944989507182759628034922207291127454938673421085396036530582900099983194172709905709769529325575610745285286587267521348834848662302589842070516508941904660450759309200106647754996716628499144725338775798267582114824943410416295932178855319767483651618640166254816297987145659311648944151814555698321434238255224502384694859521102868932883841187704424303456567063762340974726674646914201986097935603911597349851636254768797961727375552154059464400212395968841269070279150797192697169709445619077879644051681878961223424969154685563442197013987152012308063281804886897069663249869557894362197773417149989574837056022976057364795148489126638399864263774176902347918555836899220948766615894797380979143116932600315292427032609589816317827565717295915681808065432957032725312746173361208320748138914947920419833482998778574774782917207139407489597283758263826658562827649702031111267759760047299203772784675067466937607793856494368494992080273130611212055145329429456651883797335436347457092446019258096531366179847391630586001406331778159489003997350435889324684534181974136590890669632695775210545756861516590168653343163650710975607151305195619380408502231371832795513989253356986550611489879756428384279932870253791524279782815661783341867179102279651159865676496083171261222119707413991211857355689466405814175068304641702353595277725942815365098052784201240781485501089060690982610904681279449230100563604506327058340651570626508204668342213684934684145611637111408702670540713526916051135546708135400816361916038158364923138596712083619041157379248857561409236529479167215689856080995759748876952621797612420474354988507424222994249298820317098681742632798241796405655442556666550417615821308487012150228889873587832042156881721075232870826195335677138079877904586667714757630684248373336226436475884168001884529416460714209937387569298136939954762137061231534320623811430272164398133517146934772113771485558058825313985132723005021972462919236825764951347197538479875226042996681248086918767098684725037666616735891591464772106302843472736661336398285234307438536999925087744069539974915778988964420589299928668502201865032286426048028744563596731415644172282447802857254456918207794108544529151724953843986172091857455005312166603309000706334834398774802370111947894133476500503007247800664948908933841989605394674973719716691760855690618826627718769552521121213515970219776474628578285027499917220536521465675094677517506991581750977530312387120513122564653966809153954776597501431619401662602270692514310350970196425559748516361900270022796418906450574468609026563529209585416743967571307052470810514407790134701373623976534307298241482881449581273026607356486762708456385644708469691301387677364162893581738193631114856112001486423363049497051398365248822506650404739822705810358002799694211965492033313960259897482709148857936331882980359786775723506395300155281000961025030192812737232302898755550668629110779333779658044783586164162245093264180088991905747885115811575309913172636259519386559566141330498611626206631554057141987710980777729342462601996328622187883573008082500328893327103145584481722600923520838390634644219874013882208518572647617211466346543265992057972077461157532318618907193330195756383081348670995141268272069968770906271568467725184189215532289040441391435294304226063531332951839414216016086110530591987458944414309270247025851251389277087900126884730653711084829625345067937647039644092296479353203118107272402682954066675800646279727831174259224643967284112392584185836937028687923940260056543203153698554516044057610611382497092040502813741612092501049061665609271534093017504340964381322289535340185432034645345042884403566914876133893453510680072561163707101489359123690331811179512638924113254630548747963029158078733475489452757810300066468338586744282928860554257277871264059592183262539149535284358939655651690816675195509394900364813890275128204305848221646697614951035525858750604286998853521667125940428291388076123971259133344402388073482306681667145446232654596589351192142239985709713499922728750628366723371360182098526879990556647190546548650180320531208814464769097858735006121685273052943341255116959520388585672510648862142925299145105381271165695863041197498870066496916664111257726923814858758238317377148225324512907292243452359964702932903253211403254927143802305213134811498309764963472623992012996304854826052518211189950959793508270800696577900613042115105406429753741218106574898551219352942996357848836737736235371064212617609883894238656882519534671251283483770166187793929329886814252828670759928659113605632861941422982182624939693620618885137824571800947902181168628858851293418211909658901639076652594775793324973160691262706686498530067519554150137707594415631027202739240016839003394280442370435323400184499651898717572205782849893771468039943091660790074346739823489651549379346285898706182007699662992991537316768206351880738995490081330335807788691127929016150975014432016143767840562107004206146745847905857515072037709585592368938853651474767635943133560222954503452978435394237745828714983586901463544480823948234712001919207014614298878952297898894819759225126589367771661515445431921422029138387486998737564570064704013225390994370751791783271970020760713245151261554624499724085251655276953888441147637974551090335281877744793673494297620418813145433280645838158232105799116756501481336235387107489851234781168449749686259878326810757621130565438469572511134014906908200152842283077452656896946798941403725705712812801657353271673702732019043879480149938067005354753826399698538857187430599217230691950166183779027654561842120823419749699655468356033666565158974952399785687924829373346483997080214186681624973823914969163337998130092621928030481440834569345230920265180313265947916138243901641530891534069752576195226605835152179546399047404756821730773880103826110865986120994161827085174823529630715092584913271949409656084886246355004146426843880171117241177807732568370597317515165943946190192428562122175738417294731742779056848623604886251200458043304205308479494637219287763242440824660077438628047447747713170392741371755184954973097736866071178085064461149714113981413329376112769458205821976404362314902203263347174068882916810382140048908417388583238480978477574528420194766682707083094867840662907322232890584912354862559076932749145272918549119580584158447961397871564787439890482299969109957978457766591053517878078192758534960393749357946699112189731807034049325999235087548048024986912014899220535694332539506368212589607436781950039220941199679317801818990178718892324918771431248011773355331017369996068467056331562368636248620134165499172998160731426745332929683573488245861149924699719468441175785198442383510891677320045198055060354258246736487490022810188807796999622346199052689999886924916904590975825250788757001762694175896640097648373096643792466071208164295856758725112465685543692479979040855626283463107111685933012544034243022918494206187438169295936211222421009027123795322376529127438689703803899406654389013855066090805390770893667547330252377578771484542389377368497929736705525703725237332064750977706418266635931037580246222824864302810362101962048796384268569887682026286515319889338296004565097559529097580488717167598305074956015184032050630053000507531533430002628773728587811747255561748293045324501171456383493506693376613453931424711326634040422715540164089180806539631362900528627972946766401138809751909457826622580879144369481159510782596988894823888835937426447937472326978947703507215360167189189425079987949409855331174683009873912214422406132277213597871222042128058699978888648775767094414663928562606643808955912682721641899996591315044962440569800977313406364052467995909218744707247679028368077189894118923156938631259518196341582550845231299365655278590754685641916274609397879486410766936174371474767952525939286075276232700207513884349311118481741762625429135175248470153106624024415262651099413183140707922477911316720052725804623692725989009122110600650297626147114706181206981515114757565287353097426757122746056641813789643192770190131231333009247811099751441500275026059577061245846825790508204744263311056857394997270656578352001097482964079360684839814526973009147196855915242221114671277662066879141833806285483926634025528372100306084741761812476596713018644198927059423479461711066326408324559450206936181293135186473811095508495976604115112744009539824284262450651001038284254701324127698751937347976692355399285953283187345110484449803672916740312007981075103699512909320011907162170935548081158287535185460811219473092655603488874653850880950966866314017503944950481892359367969561624431920942658633898194319362098273511309946664455647382520372157412432492287974068367207270331371504545729018207057910459319122929916168762925554139272759979274686477231772929425521168595268205093182361820107138845719830617237853261163063302492661283395628893146536019658767480250324770743530546441550539771133356576260137024447887002271147021040561693665544393170127624434344085614195239012284517974620475539754486860252480129456221130753341618506713639011179135676732980674153931495477170255189415038297633495542102426071645308888714143367525098001925542530128290621401151367721987495588197413068152780770870126558990036073988772916726134958022563071536483326477383249849309686955548368754384177060481369476215216441884016240278336537965775811744253364408491072637909220520997413702542915060584938036429108626168085136367365550819752043513756398428542059116142492074729017037280040264633411373363256622348920228559229954085771637494200704755746619999467092988343983031176075655175370595737526260650999765591419956919938479264183107528620907266967603278252115798019554224260348648016476814145632968367307503821609382010891509819168044984734892246108574937852275507683955342982408703680011870596956657218144050982329483492777120124480562776879800816525058526732799449526317953881228593915002304324783714974373437314897126571987371795166836207155875838131263691299602147691358096155191294667459369856375894553235183416964758066596028702884903769548688555770979579201526575314903386273099543681799569740290827530108443467775872534814793096682363853270967418362562606520010765335788201205552883399489263923493899613747733660035619270066239043129434201116103025045474286652388358860394937369366076392082112640513453036225998081456283649660958840163219682930280493461931381516512211264766352187476376534250890567064786973157084888835352980798024002346029385606508040057959491242694877237172771574020274403464801993613017092182301019648239088614155368383380670916406845776922493927379941071993090928173653567662697368046821448771035650911128038769687723666252536986152479316444247640539516202713969245711820166870052557532433136921072603669224025543769803786417141801394150663106240778041377879656912946086460042286924348723810083047309494082565535874415514715229852626683040153078378901191084483499407551198832862188548203388571900359525375065399848548369915547896216613949872757373881855896900854141556257440632046675958807577531131653412879468295430656873434009933166778466104289729425642535661223708453103587169483937933218318293100184492310026065747358232968899820106326745696110993147897606272604690713791371193448351628213788611150268188697608159694970973615746731756813691519559191224215460911818749677886064677756267389941800717754546614962773695911290682336781371863435789284514838363465721459691226244330450083406610051303958504421268768058002381904368179502769119574370112403626926695359735893976494223123189614396911039824211079183059749649855040938678174759951731023974126855141931013818039355412012584114970311378679360534823589852819942274543230062040567363864610756648848166432080375824854537003944069670155705980710472135864985087633924711361560845001336812785841498730946922656775803202484809373529412262552942167583336258129365297011868015573191322139094036012735503512947937340745602075583866386516458935092905756737630410673776828854852323004254295948151386863483259826978662303917957463224037986996599502549076479931778504632653821664354192998611267521851040397975446503966337810485689479931346383432007422902678280384761808725541422280993395569292102052981184187261191297579695861883991352614763804261259105574702619047867048486845976041153376071117278017305250093912989699026742515172774940002441623289804951209808677139292270349228392009499567205684404284759643097378859138729441753190613142151882347271064319436955566383164890771620473407041523989813643807750859782802951514371274904311791253528894101581023880806187499050731598832734596057031231722901178714737382808602059466076125642936157666101591201354960697700302409118304095157748219004651446872786712629229025276922192107390130902680670323382526349017836851559958569167361892501302710039123224665251779691670638166723088715106861271487326644996535360943495385569171974267101827091511995489989002559732549149573590539687342343368942793183802301083850414068680894131659963632834026406940602994891658610377363359277820270434231518365637336104796187853929087480946324823067134814064926566924026335388760785093107620202825383073635382815665077895823185702341720528211813176745984407306690766309715342055601305209697251333065025858833915947835878217328967847581599433354791817891782577086232600057259471893238734318521735709537922774085071933493875645252859763940441784495666502970114338551479069845861323838243740842296472427411727387793132021310481193337164181256724399155718421453704664685912863547968591761666858040473505297797511175733340420630344478747677353154905340464486203719767576949984913669359916060158948588441562041258794270281471582036803841947764641178274219926565423251004874290875506397172350972615686667870531454586043580773180861812686145692847804265414843875216279771879008087376804204408321008537491904569882098867354706823558558970886829910970368481461539852811869156725674185362968650453036932315692742021231027501084418516161182767777000742622576174280450730340980344480896451101758615029148990595295299563464034930224905281866163683691033265492460729782239621764026553051969878304270745957371313146463893401020558045787657450455853307200445332400876087591507374677688526048675921728075810857034410676424860331922709063296598239550825721001470756248201314065489097859152645339903185686743934593245288998089375232185108153338516062513815607180989118355445310115116420423473284067534791742740145439032056962283231874969494148499915248107362569741313519535253385108145154817570750945959530178888279968102285213086126824439846012317155921787710378260221653286321741884952478032395633595359033859845968490959351498519282855816821045185042104081060329765623042959354884526205851229474438938695620932855997718325188344503538831978926811081406923059899156017265567366873933193045888416513057925630272661756424380899637987868446263323027106645538078378676077024384298933313160419531977377525246044403645382653820345057918841779242706826843990512226827208591237878774400269096045009644052036744169874566205119266326179248213767608621646381430333135644607602892709131704764824680588764507636925546374343286797216723955412190753703902296269846207673590241003492700089541505086033047789703885938330350263883003109275413317138249393737554796730507129134056879813716129713456389225578269237861712299677883860788777674904004229996619629336767776295755981057742763239566432173397543406460062034177701529419244163297275120454825474331071844467451988638876340276625196154741590435863978305701556991538665971983088178283744102440128896300826125212260334783816196200243169497950380844980983346860194254945005464578412712198042593553175998298081594973980728381298300309561051984187090008239655322955021239507650848432317992797450193514688064574430770722777610641639411432891114519619669162586197646750355559022481307245888351202580214333429213718657162545452003611673654372026032815133016392318184047998887328422821667832678386439166434238963610054270840708071043758335022588046110449935771271917614963906460132719855837396186316470469059564861434538579172926650416951656520468168022701316719009188994583864166381706162804757377477967489203379259235197267097535717719416426428683859715770377074155815372347482349548069164006657703987407179109545979252001415422905145241219762258755136223847707058311890452272256693585166359835347697493219127483363078626410309144526567367797890455378111404571919728972024193858476484390875886282015784017843160861311023423850721382769772821782048490658653009095454422939126587556748272174715263359703068399656815117161597736270076504717340589012940283303377623206767082964373293496429615863354293492514323318044056779716033886953606325704476003063778172956420211303962410974921793203040628283844161042803083012357638442324849452501803276371301502566428546375401547023989369747314332957772431431361256112606299148521833712897226266992988883145070911104570935161987702675949086291809496818453278711282097267959828187815789967469686209072911787374900068093779486495583033877670356172569074525443360243230337488366009669234800639135459829430599736617280283926170481286180252881164593513263910255101516470030605114546704821179257887893556607098383784426353153123121330232197283116724050048969328060659794486825136144149717172950102583429000331612537356224674710268169517089992540501450400824840900094102370273645571288835453291304408220649486780364880274959514559912217171584135614128502638774954697791083331964023977981439611973120021768985721431559356132517181318936388737044280144748971802394312834109285171949459675629356881956594848097309574317741740763857812261944886692021799812692658534393332025283841219819293543208838243082843610896876920040188423323078620831250905081502550541466947294881951423555042416742664857807015649938205551122942467581455124151068184775085604290982912091138811304253727057025741646673065280658349110660043039572665931794358970529373326790321286601206066363403007365503042737618162502333195850010680710184992878066304757830160387144026008373486404366324011247456897647165369828596805896034975884589059432566212989010355098184364252247632538834013548709667631744028330372310542443754015315283912045709067933799668790255284059219011780783875241891446297129594697879974615109705529006001633176531547721005663736809188282133350724801180047475474602338067998882881786530268904566806002846806808235010115143633790140582570837252161509109471698880050785049494601914379423875551439441005965184556301252557284695291301751545319723850198843173049635689721055496378926994884372671654958238226218064038841458784476839517504501329839778531723365728979966977083001896797253417622974351102843335250302671415323685631472465222470428682623580775339388969058987313244236355449190304768350899262673732163410995864950555706739092301333175438199555200594939523864425110393314407126809134842070412438638917499856481572499326477859331441849398382652935332033479588299031234343119472833105179578579931224545046848222302868922298552572580586201968580434313542268023711438865121852594966193201459817410314762123977558732711059370064661291854019520784209167581341288005185790026604460844007747098777366342693832765471147436893381926444304538629581090525045200925259342133190508140409679090557124763909446644827223428767825590782612664521580541976916094024165247018024419062863123041683360460723777379078762759526650916044127274392040058518899423832344341657859874211870958919279122091579344379368265788915338402627462801612438633318613800691788655457148198828391287410323842178148259701807104018751799195729409466514783616553689498313944864373762525388068518795927075468335829626460889099150258922553488758889944142809308149336424135583949960159134421858614428857087970947150350553594566206096469563801181949246363419168879753137755671618532859417534308873804751756189733790646655836774865716823034205160651024296634431859343417581191763657639705936971860567484252433448096638421078112725507091198993782675403718778343132452160095011396541864938642359871366352110171910241691257533739016920347022353509090631799128379567399811639723370847774119803814999664545530649654923030132317915976228154305339593842507107810116650971168383521692160071331740601109714822459530686166546813091550693266518259472806270164897828779229717842541085971305374839200074258579609272043796096391070886841984042505441877452561410160484484325021927950011914204916030952030427569940599967584970678043200490757896299618921162417508292190505717178301805191737728074813216050082559714254060214935600146460091895871704946790853651472011119259547208321094331485156859180645607034707858619350799537255431385442900959707673715180291043671316120004666581469778160460722837973123634242671695137577273261535955623381617613456800198395160007411907943879942083684605235772299976144461809714053974015208856942307642898876290982423365681555821007141848672237978431247680220186665662618015235211233510484473340305406727782612758151290198286905859046927870533892927846327381043701336068184134387054315782901468716268175090900906157164244144576912885830684787298024973275502395246723263792416027847589291824384092198534028625744419681179022389027038044238700123746541803668185028766219067731124302786818633481032370488864869155189077731651995246909184673825950011795601602889992759316220267841412871688636531767495309869385726648176396869473508781283654190924807392834220355181158560874601526436712269417869327914587784023069592844746680307737444240377325354014982096335203785005479299124671947489812083508371964775653494386075923168393772210838133751639096348770972302535224953076619469967344221108537867426311430367041018657975163125072734903460516463351472011073785400825172628451653550687294005211221131500661008554101747266099040789151799609101512968390846739492715161172145016052705086854288782043212724564607378013411726578227547264848515202892242481718287054768861938237659428984736078636077982897949881553450542230007346061489972738287474875929028239500573322049936249834753571957849387390960446314173031865905276023101426735477358430395943835629969141805275590767055367160899772485926237761672370193443204711961106177307372288673887653118817458642416846523011049046548245485541471679551611718712562281220809796374901528064418227989418689518386582322972597907060410432404877118122654720507829459862650563255610336400752085639310321659706623493461115343642377222139640032428063874366760166350402365879449972734707005706600098412805780398024773800678104325982653393525453151509308403313834492590403875742195883335692031023081386102058433978036856972399482456670947099664879644882563146782376754431076635675911887485523456194102704035429796219980334361814729247428802353277832341045014078011949182247207709700704321208067438327419990062060643628331710368780610770201883325286701513742551787504369736823855747598418249293017326132929990024132896200223978684670093159204983684294335464829320123367970040519962375408784208394087014316160526218846099130357619581598542558577422192568473241522978575935893681589152541218292395682599772441937392199115215874884351002084570956953708182890172162323363809357860834101656687073887598166459169240779819632195483488400645598634817801812052849321198234489246622368493724723126186542399764884516099013082043842105485638091358487347094388899170248074977645410312184788176053363412341546512518009993847128559526869094541241022914276574651821623144454540262696624226518218653774736855919219464280070801343877844253533247717734364511139080569900041182680751286349990529913967893434029347336082480435281078466249917976375301545194980500568410594550751319741095392000660638907352003510655093124022467955186879406484646436406810078233071646818241891476278794320657120420993037882249579059694113819008471801328987590263761296487442400744113107728450518612560969692881870058399911947812119611699522368060040206662562517748092720159214743051534277121464485776032259669450387960527515447802818921408676060718840706915065168172169978534435572075131770755632302853594280357339359782089154429656017818202811472383403773187529255104692802254161852360449932991763095324835068028230635742072209631523624724977937440717529833890874531857356972287022429031194107631953834226075359547088309788347930202620639273934549539765306564567472930483163159221977942143920396235234942466588098000419697746257444410909386147378780540112347940759051218073089562299062524940114637447471759235520594853633936660848968460212290925999878306697993754522722032301444900507364356557246976659521324810540970223851323509882658445699072689887392059223578696693587647296307078889840540623142790682777459068442072840035486984523582061488006207195344713471303724134731037047860004085572159232560484934077631119814223379917365755378438434403778799530147342238045336180838022207842950560190041797416830535271910967080196381644029362372857611622956022211205768919732085076435574757607156504470747747339072568108952117796212922204667106980456140331322756431889887825561580578155392268789546510527412831078917754592503912182709226103205553466474630597566560906664165931565732676244431337188668497208695236400581060611678670488366390371822461840015674549645072264892217280132289315007644139552689665166405118791502670171900652381726038945042054197010888585360760517427892357853383506293408546850959011123069384916333630700511635194285538916645336005818027423212208207718207394109901129178059474943711533597013422609419860419549099235142475114023702673277971836980387078752767007391927220259610484017901078369481195307534663015622074353776282327675580432719004989784740126708665263741828540341114803017695482079466946225931732134469544741589430276980810073040530917876303320157682766949350451664361135714583183794340491451436295349383419588219302079651830012122805223488868595371480634969812970288377400247760088515120937717538027341898488577109528378369149302097820284211583646806764741012097536662424329471474428710761172915973024064632786548925867777993265937207332439683683859164488671211719794469339315751060442163883224568213713801924635929956806650936936074753937537326120999633810715441014392467893605104045521387923302020399878329832542282574063595516595872264904792727278933681470339190639941266511788817971580747901196168893891780575603110481157413294761413803970349018616356864905994658496329835519853685407253034952552580522451389311253995578474170602062863988352766764658966814525353496114503013997960761389923710749206977086488045660594170207727739169476496722497125065054269242542598205061671952490121360216015555768469417849095816438519525106404215167005018202558508773932096634572943509181670760042671337755298711139980659246717053620335958709248064041414691486111150917369719952219398413822428224071776866429931467559291703163299642026930488511587024942633711124075600511909553885436854551144381793595894678154102446498211043601537204031949123619149334126699497630507354429817879945792460816565118162775599224847708975206348563184358891749832155968701318204202958066605355185446763381053634184482392639690890377442456093058267050720390420203263143815836657387611315088910843096572833910688931392004907808830696511627238042096305985049613804222856993269764561152521162966660627910206602784932277079934403343386561107479486745018018928890034664096385177165583888682960046738087944771149437142035141726603420761917785961875803347483308192235419223209413375376989978819552796864046455063772325793140240572228561307527309982038632840577373012546839542228399226589873526730704491709373312300017083177697244735452085854431939311784667435590474190976129517118426386622835823371478592961889531461535138376694675485473263299489491216214413401169786681012892600084684891398311614760058475137931882311411022399575259311473471127057652996705721190013674289424627363795110963353906482173737805937738201964757944614756854546028481666165007204718998133105887842203891812052957161423236278338435112204579650345465556914961282250915840020533103859795938831008590759110770882305739271360649949781717960783405930425346992673379271932709847292653742892111451676673427778460731657782829766542393232192102215009887450589396572806692488687107459600852384882473145325322812196961632217523886716809529613116479638875320707413897146986694484681670106234257041968129542461616142072608400390960156666659207981839323368827718667224854564887265531920361217406453932744140790824032042474585762146330867795883794395731067095266905605081209052529142316280457118056288156208439892353992948805041122712422517954978505209728086737975479886224890266205610093910389163409487898451552858268896068327543296647811873970098611814533873950748765737100903030109389998589687606848781938690731808588240170493878678045809768475505175580149771444461820311766058051728742813133346105368529196965971734242858421112146912905708375700478456471407966860408401250641114034564990136122599011755325025164423445256998729672664305908249435194321494989247429857129594946719381551707841224836224919653149126106512002031625212268421535235287646097098999609802582014947614516793866112838506191936634716154233226288443022519771908240615892320447617206820713663493103127511548083438602861322363459623364903840657966324585419377237681006453581538098335779021898572712152947214373902277616143615508227321447713764650389894385578045793160226598258460031218427641187123594872260706494087124978935075722513855855004481253911018661008492316699717567543416930410105878954311382363925073188511195932674567449459071331725780325014607440042707957747072261840498227010601141273777296159932411823120319445868194044293087425557392751673780343655844928946165503714552923991130894317285323406241660971984987505325000678922502366658496266696657853369216859640142375351386865016829244421032029823622962401141353625802462946001699805085490636622502311330794942182187230514871141311942610705453613285873986229794683512039495497179972877905080629688145536601092844632492566055818097572738863753015763296569007815393016720930752462126676795560619523335705328083104828455417886145746831356907729828161989826944756126238375236526044391490707119378144582897934965073392490368683762915320845136482907520364349027931732600232032008945658503133438403843819769582466578393150534444179425096327357014033341100887770674075010436915879629473880228456718379508996260074368485346217968033086754486406394027197665874209202508706435956137249044000818829181456477175428138818634720632483263684844167880141487699881179613502638030551526754036984278047281065492824430481307749388280036468996599183710574959258938701343944179147845065084242742269534105016311197169650323600216141523833084570728118753755642271547250574613531750001217530509499420176028997798977557404012693011867804975025383733157516406066590935583592463771439099282962817913970401837743472993231879592415709257804731586376679673628782442909691839600925760069358549752307828329075173103731803963807477947912921207664103450055105877978576543736775602036647660162285928902037301313579833772380070829995201358598622459577130659020995635358923334444583413632504536497180249397706483770245161376894166618514854309976527100266466879164799680321930047508405441660546054488656017082006498702825932145448742023126620319545560478690612290451167479200585174558776149443140566388662136010902328871395326191401991310576119020628559594947325504479720193169382990259625622999722050031118049071243913530529816665923127549066985898700750272303672571271822204411197989324121755182862293838639611463551270052493646756697375952076064882086985183991432256872906378282195197904011725269817847666436567648280773156612636242052535672969310413313200888798755347043635873317009857616988411919744184798726049890595120203493060896516006321410241515694414920037355183754209507507314939052177393469030801151494728572113222940150775032764405399015094240633528440547787878085948895761624785569591798158442886130394528631394191214639829057154443067031062053427759818562399042287634285396460899415499357528407615707778410348933651732910829717092469170045766572404985050066311031388951149053893095528803679784807447606759222987154292979402729903979592647289808359805370665187116242104481122880582900334534554167646811347242553691011614694434888616843167072445067918529602393606335752519847645712397843070187098944062614514580832917525026211326710273473140714281890431095353583482175379423456155984921556559101512671333424611775776437592281162192692188166904656626106916077459720963202988604435790136143095490084362163259120457075492942299599309556479795132536947866119325082876382056703630197762547589673092304483258712838094425711188299999908789329616880614744293468573398212658251584722413721380085384788415328897275804540391417533609578717003570338187550882614708235556133544570586555016208344831393066614828762204714088886407064205376311007064634787782584403493809888599282130810137914861778210479892804506938923969241825704799079297272813785735867639092286963055457610504418775852278472887594509817135913597490340828443241620641112007758650951184662812854542087412631929655601838333225066543439675777991646227734240113693716057925054986157042087926681679322499214399059471886150065990996275321214630161364481139777383013136940364395439423974636032585350759589307887059831595516269424378547741831474464136193899791669898048787474399169869188119387105795136953442359136360419965999051790241391325411024130520803716850550833256011038369558716027174437966182863908741455744987742216291242647983975468687496948637744896155848068321184854290904470906448477578345504674928048577088930942562126423879435174611780863135847665004218127792433544304841122792429971694205976081995003191630443660281166044117970330086951623221157064202181867628957303392136050407553198853645636475664350488058467045443052623151496267896653653814571194290682212788647781341165609637869142267375308218254903785275735038898193255712505603235111896997161990945161159265538657572752604255758511813479258921318459516920452393739418075601971770730869214546412611937119518121225385178499523251672152656335512577072064204429310201636450250476436600530754146804785752236442577899161843519091256104627263046828841583702562287580132307101771692211768382680735813479105458014561789185431727890834570198245233988798538139321955972807993023092198724695646673877779950886832521395405853077459950735779069029788591358145821498725066227633253057886759808729355753406981685610705804786050719174637416865586662320371253261240294793780117187557191261009345665498892806352000179069109911796131589948875642515350683451065521932827471475643220593299534021951510298389527072733504452182747492062225919460319817562855936684095965164329756582717345706611420630055185014155864221770425352316890229287241611023896287680082071113442100360755961571109954056351577228573402037397323283446074194967107333180358347616431326291376036635846602103766401755526189679917247370132148696706745536388870051041834402449060804883273629700472566917844248564810129573761621095644741309874563893490184864160814565106762615344184806493159030932908013069565833151483687888569467946912152602866816660982569213971547985853197577862476176135934986239206343721387134990136968379969578214823541171727848572186713388840472104053752255754310577746605331797166813880640915320175323483021398927805783069943415096280841448884113101183599632572841660141229328889694459772598736038769513700219271928753428234284580540253275200437002773149629688670058731858770554374844936736133035580912981605410989713779844308061963775699243155771210529137443037736669613319046888410544299317964995320399320990432980045923345811544450146058652496129541614659291908219523855216804758442589411875714030261665993808629794241400367075526057339527300403475112207564420553816252059003768776060939476000018283609730456687425845708824678994874860870682796591601835414930222336383575023546319454528196747128510255881232458489679819336401985717577828145436798264071721162844323210601718348187212392977994785972419856992465016025074209952047530377343502284602064075892113892176832645524761081979920414841071143060031477602083345590952900823737672050065179774111239792868562659048158176833317054497385817560958994309480660151036615803420310758853586998761737382743193393238267728862546867938486301840119158837532245420904481588458524717848976818314180895709989621319871483908847220784230715206434583021747433292729143168381337308278374477654989450254520338482189917126140970606822070779837063215578153719367425157844278203241995726179298865805058491032733097600706136471326520333011561024362615944578907807099008502565622108693800757582099146241028602447674352117602418913263977825344749454813233675610085343138493168133784000069312174982263101606727153361905442574388400817214986577410901605821458229388224711450884880500274335008227485727128243230860886562753940900077202196811991202062681330545092339419343248555779324460320762302227289624452931020920461070361607996036565039909660317813448549878329597055968232341766545398508182381052403933755358664145501812266940976029287966117724848094182043068728045195880356046801085004987509927077392034923529764736394668787410924624366756521831070285967670109673386339549009703431248713225356875023628123761570468100458723912558055328801586876685998958634387969462260430719300497693817111747391042211389321143049971096249581923791616345152506243996850257071122271654858646228214949320248850408335368473921466674515143580709192184728850932944326432722162798972924570760555543952346228558212942547238061055775349414792360978111428559480490159305076646520489750125693397447270728096273137922937671627309299256562044664327290555128884270285341313724733467417019992536496551130794683600106432661567066196497477087961070153205663936958628625227944444130142164646558495652730052606738827886895654451121434496753189605990733507311616346669273215261120531302359880713865119901984635762379165230637859451820928284589277054753946751077961227072222898223290141950326187628256243110103433322360936566488490842925937220817377296507885628418800760022189355964253398439121935586876887680179288433663772575904810831871798708239881414293730816864063373236508813844327113973612347313668796521625800425592669685577472286258982515164838803396633336380823525073566050287377807630796766024433657541697612327895228212718489473469706700930431436184282027856012335664650117985607863488141567055991635088362956102155522332530398225751177682252529153568698309891149036475167025087345124280762123389228553533747759833956693595119819327092433752422166595222756896701117613525690995658018854829503065821657172117397482143000212188895986941449965988244981904652232678621393474661699069343616013531912463337428065084554716753470229217398033174932751623086296663732352621524993375692525923337075523927821237171419587565597359004254302036337759458041522358349552816383515443946719628996998466630311658409179747134129188388611792783207956650473431953629181500353358508631174863547633883830742419179888030266481483225691703714369977607240171340126379939458810617339652578324690664969225202600166023347068281032592818265939662577016235591269468434293575164954156386641498693678441264497653283120246646832349813225473691642420077399544718945584664457631104152742147518424362314108209921535839690610942121405145793634368208416967738625639974469760467855306553758097950343587527766047054554180648262036597184167012112936434241833611541472032221462002970059448350917640538284522919689183737513416168139736040038943585899782469944444528818912844229724945110205844472637726630339856258457436704025096412717557707855420204758482012628077207476164763840297826435359661296591133907440151811293907489169857674949484761973631307222770793205661622283781036829213718997122621405474421203951981850660622078717071091702981466464148017615389827340710292272331881162195069769723194967802175582548388843289124695259565863129191963011645244948400815195978718476761518187054359708412224979883177028392890663764042284393825671042420841065916827904999400838174824483143262216333376815248196486898677062342848988469606142948337100721079422642691469260712146733872897116321607555176511760715993190409106638319056404738601569908206227595659720993692495020913579011945335077158390116326705116272060252996519791652338783824434486913365111795348361497647562199883723218831989392196896381087446270314775123859971161489430746938175406348557368485035017032071242614428100456921838735403891200763583811988960647057277361537969360181131806622684268650318985665091874445438181612462988589830756307761711078858575705546674257498452546480648988037589494366857264500482194458684145608396170500484716970951425792069946316881255509391783093525052914774470686851914444263067737271958621004201512435682127268913526783905399439971915221848475685972446582183497515159202167629099478724685462345960653790835997923614102007175077875384195401987998683314762590469776575339004638015634554560527303553813597718549306023796677313982063820668565008377923196578948201440526529885915783133465318912647827941953223650907286648276842877297031476527074691706483816362049455204849807760766622414326498510868764971435658553364408203556989410490466447461497778912799936163817946480962785210740306264942825276464817345118012653508150874280102225429382893551255449897707307349928714569315553029714699993862212039155185504841704719357019881484747014781112690143317573289254229630861652525149687325225660592393347566626867034768713330149657092364357617928959378056326726523044816134187532833971845747709108510221883714233238980993644914839982014342063029397345283515366490393832628890212330588769994423373031010036004632616344875231746232106990104295954733502244741985625131522996554297091026703736922861308757382815967544423457135725443084818354568543014863135975446209790394863822168680688019647616963026854747660735011535212791064480475549115070524125489083303377871953614262470858588726149589097853951812724503710290140520274969945125847129294767079228215691463274742839827862467545323860309365030998330608259796202061400629373471937127764958069404889450956745619917892628729227318571164280166610547970025468643225695971796168528711519637225385887459875330899342807387505821932415344329908387567690038788731624545204504833889458580069580727297924938936900023393103119662511775697985117796696625311024006057703170302504419323576836748739972577364621882078650916940494852585694119273809091987441810540382801229023201660644751878990991165302172700520300504568774472037656197922842695177734398446180607545799167449200218723922471144064068036151420747774332476458371267226589376544993168913209266870124233700126027700160150611255203393881269955979484260169380639722379334195259030422061389941202401543646580237606489817430224069196787385479808954451584237491614926679228520311580867967741781161094717678821097246731948286050706829074892419228003533454449527152455110856329635447232484522912761947120990006491976344106512952284871050293662873792937238034462252621149491257989304739066189488334327308812772947800567591427057350444847084248621065249525553071085774884844328675310630853499309688744853083448448501490080418378501813012207961738718214720860445852603604306029683421601128246712947202053760933765283901593312895684487704198773924777953733006876894420140551358603579097755540218594460913739561113474672330147128156352754981575175514529113905521681797986631415826431935660688032998715659654490755776509435109288015405921255845941382501104229742090304672405386177175929403620412339674815549463341191296126459978473367928762181565441467157124637392976248607234004000439038350784666199057485070724985719931023496856984516219363379768938160693914017273991181107263865819195553885600654083803871263427496976205545701632945215938080236636553469982166109437132433343050931289940903420312994811269464160956249293760255931077429179642024092311222949342522636438143289492276988443341116008936720466756331337210792139790873394201788829811651997313078018192680930026458568819878226240346805988383272921892032150314774382856644359010792783964331475215460058485142500586512760812153892878405790379516071260983840703064579497174832382927057920207389018259194203434076787131638793565504742202590815726340589736941774486578726224079580723824717231820665886755660302344847743411189544456045788047516488570217790836603766026578242729671212750638780877450336339719816759859540898050862971524621914815383902163076451699857195865260827505367598231696451949273990181649523634687351071303158020925777343333747011292599288309572547105103890764899767923281200728485582269359239466739818285066189547168888344709423088357475369516580368089347787320350442337321871408849709605968732768170853512113980899726258955932452075928633368370727333510822196746559469585743339415220883748564685490062912903047649872787551452601017963684863720721895804239679128326198211354297084145815377599774569741742179318572458983623564288541293319991377535962098610163405566866550015310734477576836743046629943530792978810105170133166381068010848272819140942103428338200331412543782406531715608308548292824171488705682557930542717537537594598696397025514395590600645322467134013771979636142105696547733401693468095585519952934266032415530606331978500279144498373111947256982956580697644283736847529989164898429343640252941311781958302008197678567813095246795517331158393919786839596316558426554968935420869461766222084768035354913931479442295739171601887482864409922585813670313011016368373234596682854600880566129992112562418329763008842514574947296635189239004320155235643728590586839731365757080756908953510956834067302505215647276913325313299140588133663764476340005576553315719401390455750573092989843338494156611990054795888751705116138818921762382113253999940984633707081930634398080265681207304119516504168389592131140614276178849307747244197378109610603163112321619020083638537771182848973508287904884469104249328287499629607694139076463017906859385921677561443163981276492713850387751793314798699294809930281493952763571553187819674659138710011501762282196978555019220644337101837844930228561909506532830894822013158717720321779135916108051090800615622825225996857933866608370671752591571680433787464334376963237272362870985373722808902319247090200449948301809609556986781946886521977910587145199609986019213037314512788890875570948795203998978167081577290553934540171739393319529143122058903490570269682600618668536325526382190481563197242863372954035529645244946631540647392959269929185633500813377872774484116423198042975333741629179312435797470229422166200531943194253299794887982683184983212135028819740455210253184498713298341105787840991927025545771873034479224055432599338296810948851848018203660766430685449357635972104546767273844018879156283157555007141677831620959503924317100170519042026799809710131569917414752948249155173873155574810225442384433717665716662128888332761106441054746959623002859163254912695762760375446965119608790187978719942261178057832762482050767475380566730758488855052130812572772616340550326126861876852143923312385140328943545623405165250831968775217045548696140326811483472842431427828124985373289478033429366209813006479464393134707322825098973506896764781745179875436901420364887026544776465245337398376369773618529777234995689948161259182981434250078906572296582245343704428330223994338691950331619638090981760805574198890701516404761100366720431465239087537884803069335968228584712478438615584032959508496902866534657000034980146674535758765176668756254120081233240013706237426017783044870123073167348714243219072489946638148706943876040140291522841075827040228933146283258709281562255560429269538332879560724916825290009936396299706554099539749661557918756677978334044059712630333480768775502367287648101727567126597289483759232013756282282835382865521069505285919119021118086658906843634205960792152037531934563904676229389118115642392169319442872518912853147639666701271530241759264345903783413993006914695358255220078586277084198835443845230244405165949667314980203494433990704707406941470169031390837520739148535873038999415753871655829732909017397035346138823397674490540449941804839043711221541407073779094089061871934433648400157019270814326431209196449089761218777397060999763359024097451773676508854675049068534265844236031596926236020858804854342244984795416630323728580799791613290906638567400295248950637850622927763049365659012920166021010294437624572878505945694436809253311482344393297088599242552335681759684280510574453454339057287044281376587616957264023680375047129456288398793933848075078246598306494730445936674405402012837438675337838730236775990575632217755418212178211651554649530757722961616097444318969132316679200228194890286056664400950429174092159044347484461479731899032358194180904188886200868564014700607858137671002379873494909057291693741508459960959477971983147177221783010750691003948855738910361170086517907315846272012333777556927286954370346057162575063879527712525700741999287747393191249291284884339652436880117731661281804885725427507921754874917378646782253688668701226282474686275635712982202295040773334684745502877716506609138831615500661932322146934727186718865870178250022358222953854714651503964186108093290257519797359790908946676798131396308070698734847563554529377431841194827076677038204244666466532072663029087457736692886242121770142405454068959132679004790127242940496192880171878372361687102886514506496201575976287688879637062366975448009803060073432728732573474424797244753328612670333783229420247492056323563345260419030651884270681886386495969366031949745128669830152644106554513141445327971375115046938519171157061236315985728893264182152764684774322567159946771511173173673951239797282410524187168198245599214298760858274712419239551398200767846561306693812048771675589065535785008640966532766865280736049310802337972661765651680721521893932898892066238332419111021297913046169685327857703512486304188965026953381864618092478208263628098123982104238800511315433137342762393137589503366026930006571286282456754884181024475423518267425982360701937297974129774587619958544432902852501395097097235726411592543305107029834172336960079222822870768636217924872481435692005326467317431482320834372328931303907351968637374199202340915015151105555656434669790259839168803996618096700172103522026677532097606197829218928149991262620762490551039262482373354098606829360263588728216425545624451779765677180488142948341609943506024071522741523435982226522351138142750537749159017943962486119103297621740289914801605068433897156269509274779040688585140160670907609777562349770311446789374814140091957584853129490166559295570037526255417777059503284065596845127664047347932323113381929359716183741648350917216515617968661963853764391093267939791286251892374484405699053918551594753776921845087458497159213168542030164191393827695894973350438157331462737305457143878638149126561769044801433085063985181931907123433071272495267364966590867384933704760564548646856753150433262348892521301626226114832230519617154939877025434366089920961851978376613988013625321334334353936529857774122961316885515540216683265412129454451733608783369639345693093663864095028394101619075508679805822524365273136583126499697818643907628540138456278340194766796256933582472522310849044304195242929881134722807382245269652310616610223439498417190858654982103925884949796935558242804556132031382923229915695377670907840681667560162361578345175999272101583285528745011022280362957718171688859820057086886534762847751057114696756096571447013347602315262178498107219757011442559822550786917853470292912873060097017603822751219310300879586396267142881193927947777053274243182124849095359540988220971842391051630094532251389030471728953055899224973001616011709238917639453701488665850099739401491404686618841036682737707979551931629047501036872650389330090932356270016589654154143720005682768693645158291787860819959556579843860560628309189865713198755793346421449366945920921946650098153289059914859649928557582139846980595366739005881251513399244971051782064963066647495150970110437290022350068160027153361097452070074195011286840849918598697351619378168016341989115778870483631516155605412653489180334421824728416795405388756524678845854173024734956245399189380530631810289643092803918652867280948152574119084441161905245248824558605843833811787470149481383453621225472327152620481573971691789462809421789483123088960700960086091892868928928521723654445390106282279651355597297430647145067665464076761157080048084416085769136798729101331917065945619044529421278823051641079478713484773112587329996284334941140760114619964305879305333287417796193035975522117172243316794547388378671978276434879121166779141127887205025866841297157261036006328524126590784317942925024977161886086076909669791264713937639778571935119859118606424288720285308409857430649802168714478715494103786461976192526975942153561072495719047963058776190737774312278165213529014031380000131119050280147091286771937274840992754535330361814507901753706063113887723744738884207787854510226693493863197038627925786446537371830595672848604415261169642351588431112775818322521018676802229237119854064297811667080975898422155152958699398807940517458775452134378535936904421327086676337781138259406455276063680383391477741847493324006343326764271324009660251031338388929224397093839231654892997817625687389161864506510552451624934963902436542677579818011752302900333297004889285163488789069936820271050739399102954760748542949751233694131836692855318895387819404378480480613902936085768991242524505834640775747453299003632467115953473431016275445688259952648140252645799169748792585953527387160839771077533990956691588821285381490570389432943153807927805488202560042497518265491717718578516776273328030504534806862212602282613975691903983475658665225787551505020677854518945645511814466960300111950063543161183842961623576328660575464773050521051016449592023797734692962762269612736019429834610967901950567218641455365878764117795445656418244032058393770802168925459545057863272581170128477997757277003432071926491589756140786459693850064997111440597832371826617910256743258187705230073521644220929482559942750051091877653374192903850787309968483773315089658782805182024764531297606288237456169519515421444449505232529918551744723016194435244808887029290582685800818606635266388010967821242888679081218620239755838423591539464491674370034724811039846310797052557450474600263003710818470962856461221992562550659749550396368111738246737895869800170965929110928591260529794535606587795455623146300704861279977337719856180521512350555481598677780597140431627189577610861463097818141270995306588905027970722830482646685032102143557198275675187543895257417140994063492520148019029744303675942707659311946717134044436601058732590507835296987985690610710961807619227877571939374779535794673760632805057394390298765433269389618577695553268628900318691422258228043114838612122162505041460200680264469153633441757396670067958819316130400043325207277164193188049369394053199511166516349606623389341415618076799225787920100339684103119839180972136389935193923513670313322827753873935647669549864248803019301579786937568907272051264471842394749153100215644855517098673413796857298600324534526667782446270214529492718531924043376929854525425072632817290323851113756770575309288985406846204317719559722774711212967375218128310382387307796753252208562701425586903830240156619782508032196689288834692644145614849718575697725727614881774362579662077046594022178882130640761765265772595471928920762004950896140677760531909085170964679001398578573829222970852755538967005375681997409629245154939500320811026971679780900756478635679635557531512766610441908984920237913610362221066791168983041194629505503297682993144149024373520679676873573353133953312159082651969120123050573784830538235794274480488202704939868958060721509503841982365581125722581480572785642398192731069047712493431020484090897450462488330173938974543252275550136455617396278200279391267958084057464974056132223168730959829872405420800566173491341332286225024662122818328381666686037009465911085863149344442606613393484751512907729737207948552112066100479871100531680334176783916837106205437588616061267289490242415522831749911867724325936573286737149123722503409226704565216468748017401350097575520019596489406055232497000952847915027243086337527522651482500564269631265596589308901949729079874776193089796125398344357120354084292376905779452629657894048012476298488370322040092412918127253150763049773410869172177420646073290440339008009264153861226447823223066816977032124429502457539224368853188166754662052680212837408511712422674693723969224292397645637402333559589659958911253175946363210465812754608463357533574284756037518778174702595591905845262438609527842080230746183973284709644384257907315102367120161847801302641659582582117132361679942704099326220716599710083406315967890877815852312456388914552746052700791711709828112198541115524404697860436830278594155582664547749004887315006664238589327860719038664894047989367071266613913764550737278730495558830658580572978389712310932305355640451447890386436107735419926006869131757042699829735493238679528204440356448758508746919483797443353809892762741309934619315114244593779218322579676356786526605517572834416556775591027751370259929965687069973594168515226004406962551695400118466329676270232984536029147907627230823514036107717954894242026675330321199689824557042336099544090055901592379026834648382606932884191695106832289660942630364098753539956047124534485655154675542435994913556633796811254540144910089855477432158933504436799399827296814254556634846157530472130498541705540631639039002111326804869632193521226842592335330004448598957069106774017599953306992298433740018940581380310172679495849356139094179804977746982206694246320734672137004509823534946178674997086852302824236416176827925464372433151870839869577529985656308643386209471852322268923343034231924813449653106154370614187650576405095182481125871055008793257411031485696285274419614225688050446801242975619637426798685843622856505981208561489912890844507160561018152784474255017827095669805524847837634753618030944575383974509860646367916486976154207451971540026003332057531166832887004059513287778341971647773640503603431208437669406543342418942976793358337467197850061173982673689389324109140750435776366642229049335647131613047402826122729309265156510270868856333460656223013069962590294654199032350524264626931050222521558638624599586449926382669289300470663465843219520878930547463817593033520414810493107889805781997198124215470712950632789939550487043768888982553792663731061966400448680442760959929133263605270691682117931336258075550648443421009988699279191632784347844552174712867267267799859481314881967600786522883841629546519325911672274122324175702304155866045667294557537073960435691563790939649049513286263990906347326951855746124028125593398081360544441671099348264286535992009529784249232989307572341359653273554631210895686122133120493155153665423746615059033489372412849845437867494235759874432535493795017396360633461653073076719349145140787559298264576195257960791065307705844007686702685662032438986893706799279182483279670668215697662649003676354410616982204194155941078365423813826148323691031888310581254397444431068084990644727605309370910007608223805817601560104291584328471781576496375083971659081393801290547428188087484442899348932045721295323058957647543529440392616909584633885549543323894405854779983821697254388817766991957605297490928233660617554200104299214083673981144939330596459576345649613489756245971861697731014783396798561025643626001507006457163421728797099957218258690633922574705950729490688527577018572767515729440496882178896905200811229167510402659304478869803173594556963523049732108377991581275678541916985670986877272721232518564510858249167998787416958832030534540584166687702858832482088903937872317943935189375966906791253180479653647349141764980286060214558253443096694703961214258030392841084976239209398451925554799054144233711178934407471095379520880269997296352846986984710118164613216613443048351395765955280028747298100445712649253133617104290214896914385512235059480743547533110985285193849797248512794590742138773028669908194960580673302168140956737665801261592681217293529631956482998305105501391436205477065524149695916588876595497861731225585321582206221264539701083241110252779007269211933781655660489798119294649478255490205677645421287672915320909406611779641618593450526753828697441970807386063390886208624556029302003317166337308965119539241962048936831778670214071099915562921379688629383103737251246312039390753668995118393611965304429449546308697014064815749010165080847050052358638517912769457658931323086864925413109927954479098448426870517959117479268863212327838719272383179071611739573921293678944994910487513539409987693718042868923452580606152579295578375948460969856054858023102444480938090152102824259718219574674782692876465203587283227827249378061894876676303879261318602408612576943232888682783753706443787718687819623989017734554659135933399411717115275735872913971026415735401889623010770044909635946677729337999937020584165986768068422107108750375925778096342611723135200574076160043253409665417611387875034039272851935026145610471089224570262824656218768796823118158945947504182634569062578370406482096600953070476895806366308831499954618647934984868155587707831586916209330257225608833667006822651058548949878346150093258890123158338990670975077760669432221760077551448959644585390311103390630132265611676832256241142907212648799655236237833242563003227108594783105452626741636776143606183966478440574529243511005773518097711947861458347949848239040056909154330400175063157739126115025559185013392602590379723415415766746998552361673641769010565847658352701999180963996653121810230019336972739270006925494795641139018244123882526354402622950768861049606097243136986231237253153336170008963296921231594436666076288781722980057536447027989581223263987966892795601571620695826827835597883647552540651163188901419774640036655580509217024298953580997513497886702536374020639910908890269442117607768766606227587567963500847932255201892848983975943982022927273136946247229635871836242142423738131919404013951646919680054076947304607500258668017633717428699275858259389692458536018391598026649434923214202187510719483624113246082853565358221995441588283800496497945714286837799762048165851257379194250996112429618821479315328521697118653093087084702264496305178532233961131434967775674385300863084728143299815248541561232564249868556730365546946674179486726449844823369918058912100569927141916731783738115554936422240650654514432945343997837683050596502644403589951181975591274961824610003696736968794691034418433438995479585803697338348747914452091892671509651296286300673034848675891411914064067916490144961922298003869958538816713043744408872749313387594164170092099802523855347533393155954937737192635593291629690137018889256967772330433891049030368324278283740818483402615834284523848238099920736454210330021934487462757738245605404030329810085406688462493116242185958075730828151973182319088348856235494276710816858648949931333138412366674155426147684925043697765361869088091166940175233240185657125804135577280386744809350286714931741827888696387735461840237184360069831740622621950013718927817262577675568585140936339857761075052730586561218498142641540263883221030610138067559271925290491493988734019683304175373567574029108835608685949532584763507028290011090228789693636986735737970821095745091359689646016503008943076827699421865200311232203818285767636761688664327107148067564762867377976172199849465425358347782503314320040777814481627190503999265111731331057490801553481824613906749379260759941015709860607157491919343858716500004324597220879474246225442464832236500852383863953934500492750470213523557959921090472264180591493804210715487598978589069812619732783604711032798660775394312953765250349730401802765646605946482964531709867424503671998816519807297719046989005269978123368691036982513792305728984864703719119219805046280223472112299083334614385770190718867757150006037162100648348444970056330877829288870343001525424304488482247928016835560375063301890045506653270113700347110401624267153369019473041373840491573872883491219695664452722172386732974686844077794347734065389560697846516880448399327153221226200635185347143818719206365797482539964928158981772239513308975634425372345019704840980414353079828803578467119516912789790374483128376825513976595812954305217606454294782738805688442790801773125689505034831206483214340559240106423367119807882182301336635572790766416977777523504812113104761035817477819407608290393786620509730002558977024676025096511403452272322019305432496817858597503674380266537775958734832934493586206839297847721094950744607772683394335681596841828182989202302688820440797904866834680526253268210442372644960550767754578513254530019770213552152637312923000094693599970198818446029614407509378359869379486182712971253437243022781319062721490450957482343927286256385628266384021390402790927318706289447733286801102717291003729917696876112540786506498846460150996958897659581200526081445537448704113171579487688618816751350927481820070350578834344609853305907215402906524863383670648684569764940296741231249376079876275415250197029993477845898641331104767737652380251233324311690339275446661105131033726636631925713814542711234259943090333284335386325921507756776844221940790742229533429508708295476040819041482070678463621931522318534352139525780772072288977178498878905900312214766927738273395686824174257580128291302462391750879851391657141796927383906542878894312617821938020350090394298737419131853685177732438862849654169612686375153535879330450277342919707541758374933112173552988694554067616754715803443610152578837317286910544383616918706029340318875024402982916999213770750993635698423298722182689379570844808622545110468565964398367937208931515709711510383163344052073049586695468096443487624012774284202802731488650112684982289819445686904619736198467142383432062682046672164441117492598704450533203747899775291865306535882823086598522590952546605168388104239119829885356444349590484940333169868165831220270879029118250571790872621994209413681748991946749622538846148652800548796745876820892320004429165087141679980592548787052505983415773797175330456469124865978818983290764918995328804300954254511092423670531722645785684577472494382024656300747884351257135282178255835844449786458192409501038745344705955570336405611591656489033340412667946159042620243570716799930240672421697965773023456696165869321632692472802306654472850658071833457145577963809530135006113957352175183343293811984779329226992690477268555776120531083273421430631627920412421695743641454694654028433130821060231882160658865788988707033422456238667914177482084120303334242205838280409701350104894764575599427259053215058133876334378785102708935788599566479669722209476412060620413950015226692389551488629394241341540083638744347278638472668071314084376795897912869263411423016147597555453138642494476337687880647820527520910626998725307879123197209871329393238123642476004571977407542856627615388765982431825026863407303811279514017252295203583706612603403182111100231561941295745115104907591218221720017797146576030769271510613668722389722488922872827095230797585886792273828495638374636834675736275060941620197969855220363877814123826894032461896209559251407954632893206031316713863026913686755490602795109966482687436581734275637363871184903034771749091934227076858504148278089911875601334303768346502852141598528572968530246430914141250342571904344727443753962174894253639140190712694721919048218891582470213897971768322874644983375327728602988489039473850636955093711142913038047708931650419199056111818748635167767101687637786027460729260940418516124199550090964404365266155467204237043458828337382858433752974547025331308589784590919297383229084288421077720547564952113763093743209197601441768912829353328544649110543213833518256169334377445546763681559161364056693387960261555049744013265811229120326903764211082420135798214335784963890134401028365985487200756851038013284318116092694929898358458409919220870191559521896112463873293747216068767364484534589710906159157619095801260957999725247762570098746491625390558773156017626618218481768106013636300318544468138553787123237762958858463666026065813283551671137989472539998234195182799275476185036003419263151012329874850441592536571146567121883972489955261072514050861078049090633293004346870008644352026429852158230575897023973605832465127925145951336462849241610023917841371015614170346858145542863392291643507268219116678953572164040904114500333131500542478112954557857231316535487799636990033993126517779096084492656805036099040984123117676225659709456193436165902699692267884913679800155080194606013958095574059307184227668703380104183310439658415119379019799966116280854254175163974551332129994467604223211880544860576941899805840722180692463967967416496510344098377838622174938906029247597963772473727230873972650354520713027718663314348073224288380935181887491526381175086083208767783903218484972487445461037612706838841709732223666349404666591468326254038933428613352059642486992572108364233825597818283428730601601540560618932373794393025499600415097225180892096007268764045267472980039041433290671944886229013696879081991843734788150799130976774179393106579035816402850850167971611746200324437929270908122214643999755848533561433167668856096399916994212942808381200390515900903514170887060811606339493040289975775267692084692305057089821208808171453070801786550409344074309210012901654828135263901184486390661055550860650777741187698731974601960334560306801507160822447622245655095053019504766604720156206789334283929974372536994398806254889340695411531409091515453213077580832581264842650252940482687312808374006191975297122817987309155807306761466963532607218702103572202236912666429308020941605967457486360979754561242995814761623765874352023643201379099115733181102814250749639912873029586210146523760158012694072832924166152318981234535377423954530193064372290052060822508086752570366337297777995148172075926454634337051652402208452318263123478768107703766357049049164999505725642287659283547240194106759975675950765711681486305281648307098262415443930671189281866161915166761265196651616370998857327145461775667304423692721253566929088544760578385546405461203571797895919123179044644225828607269154427350634141439600559685220923945664717532723190943947939166477737648666107498793785886912437570675543009812789617880897734298960622924547105141359591581635833418882586258137848811060700529051857094012436849075166118289180256695729288668090279856050618032275471248022940405512898688151298919562365946515427289842137398023567895032576500151193086338289753045355400611667374597215774039581311755078406465353702209517862507892613397481877709026624255612682381517742741150431733400718124661843409589148272601958760694566030516129191048894738809355492074267080353474287531829129402818860553516969420129901355562188443114020266845538799094769368193499692887643278315301305884047090614202259325360778193054003446626046810532075444163956271039393249067172278768560841815006199630383905699688881412766252438496647204854250373039154624258508918231367301318761231873607523850104152592538726034292299600632318283241471355479102176993187018594485106512658723790212060263972290632120817521333345984777762626333557958165765885901575395956766357322783947963042155602844402435913599068488068836052340344438203787447885432986841770721429453737004229548233041482059683798829175312649858345765792010068872779864946945502322205991163935188877092136479399908894506170122982629173884214101060024577183153146598240563284161808996230059831103337557619002674720309606768920986011543688004334007391121707121070180205756393269065246382832803011946174556324189827736233628880095308250310394634493964030679647352185919722282459697882365593675163737698127383237246094482935285773762521601172679212217086528902954004147044920617460891375894917462910503008484996684345921510352449075467172799251539544450902588678866169519012555084194176362317443214089405165093884951332491080973640325478027049188504618743572689341185338765353034134069263676299576323832242721072659906865792818312787108186540120409556413226310117223237941290489903423637522468600921373101533094163254457174906786936057399844684216469188030496468940710163665990880886196677427778476341343928247815153514762965089923451055335073300912712227502637444574741501704143435495104350122407123682070356515261110738857644277703097988630893257108408574418847808819827363159373605196850207134318283537381583005134965884006148293781131426423699825967574050950307493384930066592508801920066502386015887719623958600074615859233855511271978876388029777004595890189047377424204191530614771052982748999884743476727647108208722930868780555236213210050473920924628999015320856673616622431819146660372760893480489071255067775974203295313637859087128519460434189467495348508503302593113163513582811830690615419618341140725364325218934823775471438584421180057914686140410584678927942597637100183794996492135669843233144287507331891516940222961466608962439573101356638713581633336777346906463717013751257228515197956948489370333937989255761524142035588705008510656981856260041053643107932506651310896644456980054304397918016402851091078803701283642130111256508998891587376298636348042513229344903234932998969744771103112025840897317880226003599758185869024257047759983906723097443134361539024566151758743783071054879377564854542906276040484359431648504508721993867638430146430213260897387763156140539250774918179891128133545500075778743238900555906524576868592127797006368121424608366498196038901507674046112463366237851647991383310383099475796939492661249185899318575547274068263102707477874244232521852969910961902407386938098289381306245718507525638183771570886397702729157483609413465174815705500811574009316981599919132899427276470019826889122325310914044097331981021274965111036511649136357374331153732229140353953590679586849256879948218254814440490947890523761624769102640280909345521374558860051940785688889266018560781050101991745346151597752060556184885665431071324399958123777401567868223579099085948515745434659193154625329316401592866708626563030624074054207137775639215624774120691807347814134735718325345201855863124206464363982293989787931134641788391479960299828817392378902228138873268358612259050116162753963861130732775116066630793825687467812970252368907345389018515122112262017919075665986173524538340207854092576575455522790596903488102645665980733332464981026725102948915822371939148808221610875844764984542344337296951639071204192131749571499293031192264618381798281716264070813809261816146048008466170866891951387519408497123344582922237664299498483149646233482415390692910228822263429397260693531594404358405766326677241256775473884069734441143448273521215794785251845260437113808816312161449023148690512480368732723877039372569695901869644982191124836011435491405529367826626594660031610128503047889323390714575533552917488308090607671728215332304394057126157832508461019980945494042965924910301849198192934771840196868722328923070580463428970978604509545102134200916863356480378059397637769684600354172917804026788090416022250363398276140102702992676508619486887242011588051799180415047742821239138608003065982585247351571648399194447518682029690118240035584969076357430820696700318530553869324279311685780800778504638021841359824398702233987124966373513785587869152939482346907447228689856678600345505025038732020140363099845768130634950767622729115530490720176655585969292808357061859207227355965623797997385392639791142898812402021243196303486147431768556498295625634172776300024734930405667997420751369112713488704920823637823488083059095798129813839305370954093321275492885709785788159904844362277572265737943415250486328069100388651461701528034002677028109858690325016589953461913780276016353751935516202071873080295253057743129086943019212724435153904927932793257253224665493455615887846469919790142523959324748348021849012189889297521588487638134646096877851419111868701403989748802442016081259436015059436196844796331340767531532472515307464625934805892721356684318453070725052169978792206468637748514745300420575361580103129978651001227775458204874087808938759538562892793247415245500080547223765190940777855974883416315430766059382255777238105738337369263253253413503052530148618392000438700378841538555390389720119292179277504286609680106477652372962101372927395893918058380231085482133738821143871489941516777748558313769043206408313891320310085676334245428447150597821975382800419745774771904989527845294472074182764586458694698584184043077190262626410592747390888389488405390321678667815851215023966479276534821229776797736069914148620153905141818569666144675186026834725200746587048491743094884491459318923386767663025844233134193016451133158976380005012041049990273014050773362565620903881163004543319796001589324938847199307595579452336445322333191082935037106337699394797749750740067517029427801403148945497359282920689050274496879191691036403373658099332350002741142752714914074398925044593639222782061767242457707068608634936540118060702358918636369139245673005284429201533311062467421062123892292996110648862909483316919894390228972605961066898050304233479809002190817704088158704043207545980810131184209783048347216903854153291519964592849802922452785808204293524111478896875408672552619428189847686077238835950235330135275678951604981942604343892465839598700592823677706935251207503085987651874224165764797354600627143099438058798451736012279324642617052811576382240653037481686791047980701525073531379158884469970485227351304672790952501197244022395519815733648221537271205641525935408650885212876862493027160025253934344089566185566342299244736628289620411885314794776802542780594663920212288518530194570192837195882593228170714413327142267208022225961367529357973287821983692724909558037190684479876235381337201181857633353675839029269565440411964518774521770234493647398031033567422767335943596932448758188068436092428550253648218758133612235522482463902054423082492017335690288609764440789357453992467228953587964528489840185099260832215435515138862579733015161622566763408610839954852751967475503378601316433292040353901977987260625283433924344918976232852082791820082632291654919254122836822592705220336273965567519270657089436724655221205003690746771067247606824641629052642949253997335211096198271862618945524248596647820153753019075236030820948701935959956750742594800981280502800235564841269657095496051654822529977763807447691312312764446825403118192053238901246510140546270762206385488758243676245487226234857468711801933243878062672160198965539288755727363051464570635907973888759709859807238912443600467150760951309356511895101403094799952105802380888197469563340183475932488375447454295535827007051100074360666041816542362949121232395927556084540522324400477888185124599032418333891794156351951937050101396158092132127427528076511864876628025392628982184999920771323643664639708876151680862444751789546463451331586142846937361652793221389610490967822582930278053796335291567697577438918883487663485369837031644444961287397885874830497622453671003067140766808216020546988957523374435053178776352938796593151749210539546354485136960190641104556664757535689206915525141434701111622835350782107092664913088713625273312407403587902076936883662715038509395207378485375745154474722537516743181506402530552441908974381066217074300439158867992357278669478904531474753366924727788854684933673945577665763470467202790318733306150818085404832892975879494657280435827384506756244741216085371973787137363532313707457891292466416931035259547180821549326847980677005528251265232701462313178210198461768930282279201918219256535834179973312489758419063404944732479257883600554579155258186620061067266277735360180694415431640227952150009424818484133475169195335337631616606130224267666379928036554596769597359023211547463360215549001615903345427488530285980609684150731667803455764920206472603327937658689436634729939400793239297085936577866195848557361268229714996757347821901031003452326062770252434390488869529486880804003624470459416307537357073949104457266104387310102313596001071264878633364867179276233826400708903079382428426377113023067548474383146487952019729375691481476273831894178502348105152407808740542869152423283237658169442359836243692146849162972600351805361026146156122624723570195755058309899607314471334389347091619260312063900365563670588424112223265129471716974419285283768891822557697879304506718174642308413848531963836802067265137733368724978214737882660971016012323515203825661282641475495945551669435602031245794920579149574266347873878721418571133163726420964976996182884682463215923702970193590078781633008755378513425393120971771719071377831345860950877469078409700706136678437250987411334360187660447818981563581717779640931882352030334021642558967299237833854375041964304544918769085829006951017797068818196108860762285489352554713633783501485182864496264925237036073489177363705230250825315460535809209102923081682394962603563452126787342499127151971947763581275256431100512358191592989970530449361677467176183921578983582339394498770066202682021481294359819481007274822221004781668381421317357621299603867632564543598372860764436454148046772692935084704525169037977487263608613109512224476637259700728207930542969716407427040672383169627084152048777752892996664790216446012846300838180857101417504912198067962234693088627204060087290661268537524538585700118353112885685195034117965102762894219030079288015973187326016639364656982706736450452432142433262936987336460648645095992866902098072350088849293274240645457932561338763985955538634713971517318233143253375641255333811356697162059151638557858222931995590645221768006017701142719990737399040082968220132904652495874088960395199193843011835167017084496940671832753988456340886113771241516759461954317472191053425320063005336435749621685909740394808612537227756396616109186378640644375894698315730964960268766704063555613788928821753791275261145726042391059527539471086531119257389108024177230882357913097056757570475778489303834570817631073066457031379862850376974024801006458908807818394102370210565343821232491521594381696851495724761975387273729315686350756461896538642753566941829415534350954757298073757295838764133796666705129576648116697559044885231163343941741338998936641570751974538992651263742122999704263042976334003339250295631754833584806949202953970309859723942890486144244917217652298302244122251956450340222105913425007825440945579057304452352828941550441457210367599222971910680488913580388481548868887527635642093438917882852484583777394788501564650900079601738652920316876957346595356060499161499023644505178950242198261680457863420947496321782962586016942864737862963944882000382903778210256674589473168266466074341402926691448197976359773697171942893446340978025407941317792254415971699840692838607671664663305237854565966584378741467111803862314175021288028936082579578981503574654196393545636052684526352037292376066751930167448056876084488164546468250346216241640155007463224041448128589608046012706850529366044134269866516245775258293255896466964415905035187031295757269456749284377348905214730741762023551303393824162933123797293848197746823301904555899158947405660806450952770905073331989333518010379961964246698532301757190747783491576124014140882371922184345115224018809237550668822718446899865790489402357555820689326364497567339920938220121860594825287556557162021186206185141629212581684806191162443842567802621623542381317874178133438592588378124434658817793162814884847075903178193185886808224369176147640486720571238029422479319835350688274228451069802521147546598509317400097798133645712751309609893556258401471009515380193611100492446043853954858546363463815058611153711570798626335038050101826969084153016743154667390092102269675114443442876061631639752056113404422020798250517923601642377322635032186144919951618080325856023581189812883485786393290512463051464412519492730580326613656068789208893947731927837037252351996627978546266302226853598754052039889306438057175493468424999877244891973958503684001120631080633787041750328371629996849057096142472386650120841700709631377082343276222543665289615275423168123802837787411363497394673090121708078577513717750562955361835803063724658320978060323736697209038286491555482438632143877459883181527549547224294478333864732869119622422792392966680597235013319278463020884311717869046573344976318742319434347034096061593606824594900781589182208678496795502567879215188470561819139857267796823029075220829146195176364002928682249305118301619615575622337899275800051618920850097840536513775111056256385299292334820638029461622014620274272647423158409193120178577831781491213564378877828304943612164375783270079863458989960715535107882334458804490555501095622846188399117094527739941330318943227341890218860031962669259631276403593249814576309545740038254346218366725918039379427620316348109622086917320798960763876407585557776183343071465448486156834057564914172677115002912762958019860866361890953533923015349294816958568576120257690551107861657850992555559123702272703587203870347783744870079475709720839266669533541856798420168287009154587581614086948048877041404542627313472745745872837982784032087650649056890928622532116454680334852585125439968919661648131933088015282227522327532492506285313042890798361845234886493450861985368126274968580306602556260127125212557714611776233905421470179995987683056954530526396899507144616957748894196144644495072098670520231148830834461901390382722685285276105526254926569279239295274777434512548251611775415684392811217200858204204709128560122307438625350418139189272222916829880801702291324843073606809306825376798885561875213547921939367957113739220905123077526740620895763572177316936856679715060689958715723821970622433334471723623571422279923983750126267001023333433665923436669787886595654123217072144484993990622466330550223422298319205734528063575245870988695535472399082038678287757382840300408878828171202607012690406733693221592314860337344087357379883654249861205150087236064754775705097486070680793842374346254019724264550809946416263614613361689857952471987162401329758988264038346334809310045216266689752946278390773180256264822717582084492306451580343486430149553759051688664962635587540219731470782802926768958647719404651624926894398356301653637116363654554544171151093681885921078581139156011944864185189910062176773840952675316305577361678333176742894717004197129009861761619455470113119201361938664152662580110527933097258875082820716567474000513614873955293026919370240585536582103280137972523797911813603728214013823838725987591951270165875853797283879063000334388249424730245096546039183549150489487762928818656572934237074287206856045723666072100850387832591290286995361417113526880621031001110134436487617131654650269256211440358118794192800344976185314071328306230181129419971681889852085507927154062492010465879083509811961649915548543416049633232582466603368047491223896033463847204560139868659520218344676082794043722764171544068914298867459298849977339083058163643247093882502598303710026433536137969322363365086233843156279388184399270180485184483200079020443572870955236835666637458625020982993383815285534471371740640901773749874213043931545612457289804823502372778372797083470054363193555384869695690834241091265288199507272075703025551495384194129895487276955017307371817313292360054567481350621758070170486817567765095844385173824769363505643122594789955809924281680456735587912592349969069727581784803412308392574445216405240388846081223890258977408313979005031679231599885059455617183493937680778112376386892777364190112193064145228792836455969548333761909947689028933173067861147327509355398026843872070196842309074598428712415761531989849102813859160179751349776248261258173225412110306869845272464083725305103326088137579614711725359603119306841056913749398990254165994078700653234613196049819605946409818940632859208825960965426213812048593111861107407020213146211166606512058922090719896506949911193260531720954984146068679310197071678825500431414872685638941530618755321816572451084107114058277798261283881029272241840798634194999397035614243318799826536212137231975657069744459641644547652203526566468750747010303689561028540977343541445721426137399608995544843439329822726132493701603916004073457212042823064591356346693497878503394181722174835890114299564105202814774361684510481224870944966561586140415753268162715512703574079682322872070207080585083680948433870999592273189904773898793249560824722199715083767567747233729686374069619632946390365923333390778572196139056922899136647648341773429469831023551216946671628687937182746746112874983933096761267372698376931754936178608116930691164762168900273925058946239745387320633804536224602523110719386378680291280114779541232349754258595071779828718149333640002957049820146024959965203860250659497850666648431302485878418197000629552114470488605782475116707592583060950132740950534063834365766275274248080731279399013706770808526697083114762062835283064927788613873780843054623291971920623377855261774101438473396657292076867398550726385753896911044707525009198600718356539947386115075683384102335576067197468198645245489677273879074774410277019064851677577255831429180623108102356540821479127598380089572056404264109644052391033514229843070603686416403380116479642528164532427227236591347291319244246457553082849558770661243009689216647116887796491700482441336151882345396418646036674428813860784832637155433877882068530126361571972117680513541113727819652525572779759829843142863317715029056728114209307733165114215041407330398297984665645991193774448032861967621385420738447251885612425935102676690448754132486350936223251665296686288917393211284035496046016971529543659145862204597973939456496570615424424881192310106900564638407885213778619836383730722886833990272244609993867045846763715731417387386893289520495468616059542333107580866511320638652881352920112271316003019089081772107282675249616294890732781301285769587428884738148798200262729750156262752454791037957990134974618334232620708086480107805973261750933202278099410169669065897600355225067619713993730202754558823813197717969676134507947075728369139332487687217718928215183983348068972139786596310221429337010180462174743709381964845254180208792486986056404861634852469281482737370430107125497578094988823800959155742463007954200460943802572981473421481909405139826583784324998716528966198692395619302064659474453249461398002595549721240610517414479350829462020536654880434974470893217455337846082132739889071716250945553168628493302188791920368803620817579939809796147368742882068326016076951539554990492096998534173842431142077060635195869711158210939702172911741265522725185604725490187611474221707777052328735011753704647025140801805527873814973368936521953894282797998037615949877054053252004566059881236311111021227525419689291951696847611775436284758771923479091577403036353181042671294467173349008053573091606775682752252888915330817548883710219240846634558954154664499966480585670116971807466505938532462826775662759478515730895778539818538948572952994063729759317620055617683230344565992525654695507586978139355586386806153878080847611211140780151164224634357277477289793178362444925629199200773708846399088620803936418227816731701496924827317936041758030518414452373373959395901151815464659411591554844349587228674382971024276150744731817438704038857262223713548896652189474871076512154313333755141171118513492421619281851981090267700769120563964308833660955831399683618853996703242338814542972800442062544931311157692417688631219317729497721235728142204911170425112714118563715930558656888950354337049393361201153050193748067129722811075732970354570905438078533174622574772292093100487504345749837657978293730788028733398377182599001969264614513229183477781195131987642537992044739872186538494736495561008504828565320181283737939635687334631437625970104656353599020544086790671245296577033290336036742887079802073457879711238364076649910538908697077788116793367414249478894466166924906390159040602789811533203204378186412325573908442119124243601152476782566745502016677055038118968353441537125924394302454505678871906481070948819374318938067566885928514253546819619416253721952949046019338628849750737989672192657959137526308966954078018660098634327356929638834304099764837343202398634426184794757687222110648766437843404255041685706164222592935674157013273139231680203899370518464655778605548684658469702119503367959323121651245730171110168824864376154356793841376450296986455086825038170976346134582522022381137335910457728681825147393831832814979457152969601517304999991247431264093933208201111798792508134332712690862289723555368679813812265927564043758613682645851192058990870630363093791166228122355569686828851758845417005877212783010739874566347021732917103513573703219211944366016742525976370121125304368326774949514561913895397178849395205057072902393966293673378958221957206870959670399072866312727112841203278847361271836053607287977692728323318417623831874767099178873790917724199021504325107413160523677371995396770730856094268172055810374960513300056513070486055195960368023483749020359763234816783987692926221503645463899284949080150993137681967096896190949898849712165528374203679089103844804996386229238278193468088192581369791356543925318998362501524106817954303251000712898264085135588402118737676034725623343502783215224376686805739746028834643880787535416944189531324813846192594307325839327901263606636061578406132648541433966981666955147707475677544242922070990840634005873395826330033348876903077632599892507297125676959134876758557613130503298097331370143277983525367639256927280615312829660221727081530306023938835165449948289012850656503972701747678152985490509730958615077865304406127967467629755831206085741518414633178137029187827567510005471575685627516932029569228126069198987465197955091570279441064554272055154058335033613431687896603656127612330859368902316608736546682117323254920900344610641692995507925716394702765578221026767473130522554042965979897226429647343955941519443950210245598831184548948542811429773440510325156996410391424714546909668399073745696648136973135580732065238378346916745729005193230339113985962413536453340927094564073980314829103748269508754181056559355421146338158590631768205077364460904123897237182600170391176556006510893080275793899591015445622716090070033606118169249007187710128474344858781075120866454113535724945001549347007712133977780810906242667248839764587257837102834866692243416292550611576811880320179210857304805392126463059508145245846459319018212445799586238996049419410930312543094083805931711485684892809796833379181497498163728977975236482322962625729528324329296780918544951066778958429699782189210020992733765154167792322700203790492134808255694137727780198706378422752868446998336805405847432008862028031800603390855835636891234220843304339593520943322731399742671084778180255139785930875859238507004843677710794729643053815725768730056873523499349510487547923411263233587018351417014516756140406351148475635906352977099053796090774113905665777593900046392949707704705874618266331595203466827288308462647703821359372364048008964913418255527695527054619098153689371927139934310700796460194652545445779455669982563149147115684449816207745787041157228708099403842087941007849025368341421257423623208745868430654303915041229342784302678144414401133983192616112118992891657408643224299504416368300474255307758480128802805818648611473156016132284307893077105123796669849684816047743829714744878799849444210665157822367527508144510142820631214903503494265748653273462007500450865468928665887380823757894528600775504478079674184994879496107275540400553169753673156177197326660462273636328576904199505406428840366487816872543620502953633174359573067162142175298285233532392573390336274530465900056693833988483157902176568650788352245788787555055432941128967287124632916856220079859290825428337359039386185816573778537268155104820099738405205740931084278645288704600925678288887137297464372081432695568888629661075621039029691174715881407009745878476506993622519854316481952710378119279761605621856630522193000154905479760977783965295630850413128482633321723761044353689341449687993584305615883345146959287941265466243664799511893905319477689099979008838830441649137306924437236286015469806489220834101468339682270754041507883154416273142589511613920160400653685071932256648501562359630352955623210450796016844582890717857480467733351397343746476445414484037309578928984861500776277254288192487424181670397280484678693671813210287992021922227569400791931475238021733180768230791714758793710236682282882467549948737242950691784590774624951405439903120136897324289861354322810694130201024436636276932590040079639450271315536035168306089858652081431465539937577629011713897962890831443436538859648832014041913258556241746527023455816174843886729596577589010088773178190591082001591740130750529561893949547878502108398308449838020111981257907036315410771850542735145702889162140889370546673400956242873873369067093858070096611485302836660720285639972180927378035343071902344081747057957923045087816228271915916841942875963351923598545585137497700343708509124176870980008550177216270201117811905949827071329855478997328081705924556813694569133158333140062969162968734274930646757846174768309555926170646730082362265833180080568558953024142549715443762392773258540650564428280455857361430514015908158922295887215586632264875952884140340265117353081048734944953120396835818378538861521741614856044599381421674850274014078038806155830007185738163589096732720083496106592935932041461238823420960919512500187887673177569186404806528749758869839851617938914076967071444054912172158166678313717763835119657965431317325259516191070017893393520575331235995699584190054764209629389986153911353404572783287601770311090468231487892537165879448221702731405200011958725280815318651193848336367904575388310252864990358433471018925260156318034784628351986261479305332788511994913399302014472991250043250793594148694914304164184890963779410508661341849494945478680056281747036359389236287580141629958933930231994367753293096215053314796789999954418653390154822088926459861173683123442090493349247508459276503988336101289845094969471384168617458889154617649826252887919793950544247877883574510856233796156117386839631716558733680879716265274682704596657656317309384900687663146631172115645806912490197837635036120177091997586697235152221766187727091414115578467024053666807549078160486225161087378724413372910759925215773067433624909017106568503527263149868814551663280105425854183922724042091758007744308273140876806303924342032113205868786696839800047446056374696478145241899615770833200157500855358300615347640631353146922572956676268133791429196407919376067287889813890614227553927267553963312636367229824635135293930863134592357072279043013275246385192672668014246492427104557115678401056927379919093549224065183086838880355004877649866557059039698151451017845815410694790762159157852827901042699168737330976797872944491856444065656869963180413969179710778184579685125999055039208398768205781057847799658661010020528061115618958249015852147967841888880730803706156618475203359587276649937172630624980967326071198750542758627981366757127671444724534721457843083882698701324691325635767781181575444517958229051174544139934449913498503597691210020643906972205782579023678915545673521459839659056842838091501552814381541854207326314087861845852351927090634104613224330894916285670042430923270340267825043868270464960105552512061655593208869519536453177310054156974593663954601737881336373431688042519276528064781898943287311436892021327021928871986369860477377150901881069880263078693650072961447787851595225987469924331652749578767151080980499293360886146435706339355261826469814551786354468595263398682004438586601371822679821777763289113092907425315440643351129093279735842023952085814964413150908990625008809315564076629381753751279860017444439861116684262786414976393301576256681271522891050853077461925008032173732869123560688067907230199863168228266230036803292936460321804467855704180148950707581423785187727550645959570289750432021309577524105560850939053711100182582960632082915854318182550054201989600319336590283794891689986177697322590831670907014927019943317368630165681508696220226680042237740848270630047261283034627107118593155955351136713924232675912963794302221546138909827789961907598309295033874384762473394628254401238211987468646271557528490157448108340172913659883421828416858731277270706957234490498617635843353355804598587546044582587719933161763636490398411913325052489556963678669378591919158133326522169618003427209967790209970308652090307144117805471401455167359476970847434744411824488219893290817136863018085559224526085242606152993037074123355412071024496474976954618038452476708339698405387865024268173045701821573328878051548788357763144571699633405608464989829490298432462140906492369721237476593396562057603200504647294698436923572968189824654058286417200115533077450439790918597100098984757029376471409156037590985382248445412428929244798995417084992965893288753033385806062088687972813927633198840179290436722284447356380631538963616081708137275447497699846501654361126853279968710580541995160806986514383069749206695475376482474428538039627173057157836772264940449635644586032141507507353077832304418302858502111403704229443793365630338314221080582561813951707025453196370427476303053734140196172056843308124425517072363838348913513301967028470119834180304282579643614359633640089804087634306142788197769232954375647710536323903602137258736598208238884376449942821527353973088388559631225282575271406929137517317321312256704081268617763999454770970944581598524385874692969920507337347294010903431663337208210492481760184157944384234406825609776289853717463181918834803557873108319653774392030526447362705066991788757907415824352972528067417370888692894864537557692828351193430926214713568043989403662578530733375854384457481534651767099449667268735210128791729301503003811440569952911368060869176547431918948050740112546926889725390319605634217248864202185598915426107211831606515951370071816774362527619782948008930653272783055020680160422418843738259065938747160285755713415751015638661333629841531904015334449924102448035236684537254393014782621615584025679979567552878946740943106922656692784725524327545974331694743559612935576139645988971179584815964822829697987833777926221716279266820212116533013183621562379455012113101353344551227575439066887103400543496631573559851690510624997637297600493016262420060006596687580742355277430695230340574395080131074263065061029296625129200743623210515869900319981255088643166203650810570961972230155023323450185659490470075112257480942108267770087463884893804948950389847193621370191984782695441606953956374031644919238199774681811000346944094223148511935334613872645096993627449812976185037620925102778915484657136719018016502998563541200592021399982194686189998470150650614977117715246579648254228967732154724688864390355087343535780301674146357725334396064321729661860325877207621247946950436337196971347458888742081677992380945994605693295849469070334603934885683058267391804419241173792425488530861837943679777839609612379329380739928653904550038058723033553186120430977200591187367114351435171804208358706457668950448488042537867138794868274332296016017621778065717534818633208381909768526502338234514411624703550923803711719429724681547742059546465860574437508671428261613643365281445088980714074069326774610672258874692364997681995959548062788400074002874499457525929033033588610385606258741585433268065015224766730052144768954793455904186283810502650405886863472194369254806294715266591193762587384670190267704738478989437983369687612044221439601757389011721593117400968058276956259158492981172067678506834205787743912951841678332567581422786409958163511079323232029814097250591478637712939636562810484152422051111839929067928495829026752352506305854908517833219835070564460600162906198277149401581546456584156467796939632758648317593429300741371988263595144159018468328729919236215928494186416296878015363597440752971963429023608274789893248819193811385512676613267533655458217795160801791013124968860936178242178682524539498408589068027543310362463476963678683170260603660016576570410741051561886069305506976217302083113333529435154823470344085248099939704223569405790730824502713272909092680195254457794495219147040314470896392164088640095261480128585284491330702102062859898701209736762818960632235561044640955110816524912112571630656732033867997714806499633811457149633234642185732363347012890590581902771094606024591144850800342239451199118811042937006910028300445289440601221339139864532847762313126228524525837514778360440130022094867542165975209367300333500056117268192964099978501956760172924524483186751557365233553627741025004262306988449430794594248985792139820335920667258539655378646362930475098789743868629907269547306845083550446258363420020205958409930838715491759375557729435070878281109921262686136182053091145831580454680779979132579809390632555884431894638566956755765157675816670343702975566170573575116350348501373846471055731708703978542125428667403942904600963868091863179964002611743968989365443182229971859052292150930068870732931224771534627207736546252383730861523079274191969089448909612792314270901583360886281950522046176083224238685698568730045188996072734023883331529522337741731712927822272755875027996009044693145533985001014317226711216402365608493547537986151061737302586156744200582250059986391345195674199165848773992486937550494245410534530358679082116860788425329920232177513297478944755296423097636643426650096898489019022780218989661680183467689272713768043348590378874048784422117659472080544502277985315078297110461807244501539209139894456413602769472558390844686220266978155206015945556377538849745693505855368234966228794079296858783009823111886598030975953108986598346097338487127590451277760767677247055873228896991192290489857409474890389629488493656124825108086609968722390494392985581106551520696984798996378042625146490688509566782748223690722144931091482201756344141026278771860159620007459912239373198867014883261940703897883383113683862692023294072280482301830912666299692057303924877193151314868890596607763771373682027655265261098663160145946728125063279280619469367910214627423683437909450346044176145706124713900556466088418361982863848721164610358235126381083941210986923689469774594968789307534762299771919384650710079896792299616799528305709695942335053723369796505998017125026835083246077156249323280278535035700843340646424695595754177906195743200650283918830643905833517544890995918509476101819656615000309902196351138547707164889549808890721421752513439944864174116257564650038193509081469876596451912289134938392238100179509114386865931725456593793133969639764239868192995074115041972584452417404374220302295338090156617112486016098937875583180514975158043224435026459410531887505914088095301843711569399538229783265584878010592379774107878746741409511569689057557263838566646873828079463602898022317794237806393948676154375065592816773580884403676753553369269670668264910453759588518265257675661800293701269725132032322947241339210179013064409931398162301784297152822591972028208227623662959299374660520166222093970874721901260446409149284602677537527071017396919300306576623187572403075338244589797711695276276205839604873527041371880451440897782827399428934883693703561395947289109433730616254696408322221308770506858432766367118325866704743207591081453322298673786277279263005647053308386418025035561785029057836095394170240865725181386279410548871290546580998658589244634824149718378485482548809499807924193629928666095149814640570312502985781518167187553463415990828670165834043382073393201970714406859183592352877506509383098231125601196942068561379916091243196418926897548527266236150294146301556823267369843971301734036652037894209838858204813677632321857967292104827605415702097153628344761918481558195903903571424090824356014422057454852911867273228616154454985983952048309443077963635639161248683071128795968690981803765412175329625036974464065361139170464470730805392848632905895087523420400585231566960142689188279247383610760609316117953650517519780880146766628898936341456489974450929515931468277426866494165317220359031794491987152631665319164903734503947943483967868472727600468878053939227320570396452391057988221375766993629747675041314998415678066084269491021560654120539318840768128343851481074672361602471169034481907239546639568890528103897270575005603137525371142444536775181063613984160926399019038451480957125902792862211178757947449588568375484670459233627581364428064905752246286783800893579928419857515917919150449073520005311861337284055586490816609465740406715590610248522746973333764970380848321783599941868607294905314316357627500771513604137299453287600526773831682175100789330655826726212667677924263169905140977478185399961045769656261296500417659785582937238513700028020752834754994155643627701487860735284206621692232170925850966157438142053730752943256539638706173135429127722983677302650783725649249609494548421000539128656857926542778007843447569120762652421365870233870937950545314080624738220717943921232699184856497020119523904421925485059822328817140645566234517924010047496489015401137834478784261830075057565546559008321690626318276385147433379120975488640488565958589809037570530219628506712203906220360895672742025497075142719478164071837817192720659926215522346975827938744930318773197483603204371240115729581867931773265313946053769778846209586810580258752939695720126503264338563540297699001804513567358201911661941986916616671595818133546027476321708938046344832392334794294327739718944027666074643000760303744665116543103114613987274843323309837620180551728375038059024084218789072813178928454952846312496514700321026197267228128348994258881863268691930794124195716073014969512583310435800703355614559503853825561737574526061610659587291072544402369536230828266909078834379366672446339896784274643092437424719901939526019837537335784103445212657604861357960627256757114720526752627683904101429003228656814795997930096470939017789769250740276930886898771550892719016229852973121148914491444379057178112846199696115959405379946780973490728603146312357011231842850706312847269719156818033944297979913549748230247281122112019437123111889214655737766923206513524267418656461611829964043456889020051686938486132962785347794574644981008468707665212813030548293886210483642681855989158116895302616793702605674265060176757603801089268562792579249777564305695728367119127048163462109169692164579790277248745102911649165634365533285052697431794461747906969255016770238512270351893246622897895758890776244453138509975540294224152087164979364749849804383160072578952069751712686127169796213053516923187136969034701984987347729570574743984952689040652470381346315170456384651179991387884694859136634333631679192647785439942042239332701415937018613322138565048574209943979078033128720866920213634332224420651924678694359085339074197029843904549480735735092907987352354548839522751945639776968780164804625535721559139662199538232308684313253298296602668305191026388790310477300254781822735148179350256967592271714774263222479967490478831513060352088158253717076035457526578326848616939043099797695210253451476371838616391186837853848044367783685597738621491302373368383727176038317949379863701218009603019102627497748860077892525834291986370198871970827272981651236290292717636342459365507525656686570588729251434902969930139380007569772938256731479015238904510549709440831186636804768626103079831515189382866409181311593229617731659580965803198941518350566747667858426519882603343349940817652562340377961256693063846771937581151778344732388733705390107867102530436270944881144175275136187190673772387402394213215354453300197930639701894306917129862554444947009742551106452087763313217429559138508871266534959156382330159247225876318350482385374032173020676920049645259404900826229672948421767601295486467938616010271369857867503299111101668450370060035431613695803427576398925557763059255867484286584664574768938324311499786527723165696081834341434329427012640418564074580987075218215071681835023033785582150261575201740591627921559316999465474255497777219791175010464273744961793250389431629911516791333608695266335856537644951157321758324757859253905466871355277801361132154919208599785380396988725356663666230010862528651479292362886953189048993623837885770664700168366551358057756275557834877362904935001209437554679786636701386293000691762185272480484414208682151252819189301344749122573308846086699039714358987710770908858019431337020988079931539942649128373968987085011255446277463109903289328216632341001734465942973250829683084060742924350758815031262386067890053363960166864415216334729679064296894849176421433933404411005898635709515892585310589280597666571294030778786871649802656018705438140797481607289149189533071287985824654650248577111469480031812808220845341211041461002974360057146115087595821936509696308575467013003567505455441074413968893200420479719607164890305553062791441899339460377776719323420589501868278148966201885068442922566273458102058690563934796054804268071044732538886670005988472783517903971513991618420925630177811852464818856911494657573311115906775314690006123570528052200724377734637034435509587172404322754024866384930492832062044890312326203283329156313855929748361249801032954367172619219296886397583857961888610716506391580457041490160606375713066063770405910801749019687562497697944934905893323030929070952452715394486891164404938124051651593293652169226998852069009920497109676934390277692659854830522561800389557923268717574817618676931323361075585553443194676240082144343756005322239234403054674152490986865432054051744629302001223999348692052745727542278507362180422543777166647212951260658744372660101091107424671636490333149815287856251359393753541368605519085454305333840631839696315525607713251906703169329359065554159367014027156791153208672374419050079643103199934938972060086215555550851797181934377166509775756748314889670510773603395568710946421250297610275856614659995000894602701399969046809143725183002619291023999810781533144554188800902515288751160320025601417999589388252797387099665304034962110918721941278254273563735305802983431775271761624017019949610295046544188806140053280785515567363234708215461788331539493132807240956311462020422849262802074386550816542529204689825972876694647928406390044223748161506058877206878814696105774570732004244835447096962215282545525522008213936942930067048845884834005809405025548326429580633280512899186368905980868446260772821644749967815642255745047416773479073586745209250952047063284290805290153927103056902763532878191903793042817069456233934055679875223082148329879416057155971080653257722156848855850996024620939483911721381895993424749815987972722150515876236670028274639082804558974006662784091209910319379418319770321012139255601361742886392421812946692533687613769959072942852807979739161610032310479385653308342946883071530380378176934688303283683022707192274862864852451305152446190695980787138675066575609195960240397618215636745324321050798031869018950640157406177304501516473351372999547758943704525865773198873849757827615262178316199653597483057739572733238841250953948910450462933122229485919903627271301006438348330075829187678492697547058208552526039136133813988735942342853230350754848490788781618977844047241481827413584830363741587342025563888344504993396122783741889719748386379118453715733339622486870546397059819448418434377209022489700440679694297380880969686623368945581870913462943291075550335493832271427155916375189198062678942604461757409679893650815173345153456339033251617537203288682700665683809820081006599218990624737494978737009429105162718958362644693763406167461502862674799508529900518509595122920467584761633483593647902070937873207579492706233485384474568026652929727127170886942802868768746214579202804959492016328211033996951938586600021080594996338421158483039444326007603249397255319418867935714619594869331830523817043071513974695797905459841588895341690890557659767795917254191787021745755840126382351175768376259455766112016165888595418098933308528057048115601724446455808528326302102317707045700016541728173010121793599692381696104587592154672099275510911003238018126134552995676569442303021092022531137285610578731483436672890597320070928835505642654649794603203933556514630436784499593436734138156584223996586774086041305202363941995745144223643641968065935714529394750584504741665133628842218057421705391959404850310640391675855503550289050669582601330493652262108091806757110921355731848169973718401132799915005187684737325926729175599677926198397475653081830280624589347529259498703460048299282452689270900809448283058890444170809051670689841132149948656232436414108844602809132088456040791755484626662377985096468788253889563859409341311142198300927193018567877585057219842654705092041124113080247193299837430536464083083138480897725029241647108123939308365307482572770864683070516514361816388763882132496256615889100753638703981289512787631125986482026749346365339388606038143484485742908401821788487249243028264350119406549211544493174165148363449902476313696807802021778693943766155158043469858057477127269217039303810502402282928088429791923356390715246442984934264570102815650538273117869301547006136411919411216897852536271415930976870690787893291467361934745102485965842900691730386506644983349804333501716158167612476181830019501861772400361306793940536342077804753046221213689363337822439971572571033539811167615211388293116864358349927783162430042473883281978625788718486728612309583852840153514044860593126338431572449697897870054851958623515601252522643447527819841624966162795279435854968430724737395953673270311483601175357588860945642487267904332827085842720893617348459185977026962996083428720693607400435326475364261105187056920330720352707132390853142143876295278984335525404850359667235987944881131041365437199102575463039325781186749590482570635006600344975666716477973812189905107132929610450597276698813693201450152967026905057363140715183981324283573521126663381659157184977078662993477869349517089574886318888336030680993368586429271404537213426355143961377644699590314805634562333620392535626115355881726154930194058712519229586280060143193272294555090848851877855072170416119785543896430572752191367397740361710060878757709111662059641693021989037839691630315389700946568587491872788258567354040914775290562960074746450145731425349046706334219803633433990230383090303985491124458896224082813924327291834658500317826843434197453650843525723368066619405472996207416388404676859533223618597737871012185332692561177244418768995916207307218053619054432722202177756157290023168424855927988907450503813427012519136969074188293549435729701938472660566707331459132082790937327091659789646950660236488232149013663049134043416641001491926900727621982222074949503200755841962371208036268494909795555312699513544103963045683332124681420417246389967405101841178164151087809427793528622364416103486709049917624194356422843381086429743586246539369982000081115905860968296424568569376124849035113718071311742651630117005282241958172999215749156492934688104478324361567912310151117352573196802850083091748155366674395644697549504025620466137495718340011145256235099658631582179199260780575473865787339469377408723675807076050517705329294265287647499845182300968541523605424817695919343987889507158525585777811420866805914510723833178370437581824749796509942100111628275537963608883632867159183449084615181396056358357453906426137959924793081010421093409135840318052780634803500845448256899101038437846032037282179598804032732119755548287376280028971240843028200242599554218278880104376543103413782705236753842319287038551023597294320078831937675902487595510208927747158402469830054839090375786151032631187717784606444258574932625481175420131073995674489204735699804439801328006990000690378249161118605666760969052363504678653979183863846531860410104415388809223770686290251504145150710470403912090119261983229726493461326556242041224188269776200433460908570269488535391400141967546944032012358142235389057771193236266526281185320160451903030670759825572666940547616743829299844841623476544225338262192628490797412202416665999296724099431493546390918611724525673682256035618416167548145647553928923985334137005298022512355711955915312127489099791192257268723985072218192206457311598034077495604530446937151153246310276484351880972903154955068097635322124831202153233174097136148074076151127885319454782638859680664764943794896591635058839221119905019835172482317391822061361289548489248085039267211506009830640427718337715155494867555649045810517552466218959292806488799823778027529378172092390436590937706406927511514223846473215870671510062395476194443629248965969833455021928462528290972343433582535408230078639152790069183357066457410727688354082152095752260160161185206085247711018094940252761908272488025332747959347662365610247749867292960009359901436147313017469078092304241897830136790668840660926845638047785969234201609142668410822180085615682963415899572278375120093559499368902257794321464678787469143332026851366502026334079999471550445453434548211238627764116136895977173015133486811889256628610375884444551011031329045968548486617013283799080855597600890628958071745485750380040437088109527551143128554577572909689692785947060960454134586868639120732848331714329569677903402876319086550920945897303987075953421809129411355647030924406607965776081574662341421239965688856561113195894250095920105315862038672117262049012291397605760546483336836832739515184337643385441713085681474187362572501284228921260122224258002645147308731234895993858222483278257201234301641107717468524203399208878320070507926826961353896312708547133548476238109371093533921921846118686705270311924823088178880950582520420260943215678091266920670384286327910663160241444416921018600185981313879185148046330545937396077951177451448269753716319750737774190289800092157228446128756869186661073900150459986142586959996103666434695643805793473902076167607030758198527071514682934082873510072557635004030751566689908322009317103265998821110507499240513914427494930238112147358022475027867474513852728712724077556130996735084869990047634155327239005693965380121956922285826074175681791878887180959721942655154106083557661931590762592900971033396170992041799433129265238293573285039476947307239220925906145063370622189613293541290689540810535095065055331934435270024068356205956169390390840127874228504497230359803079448557164101406324123371440857280731824052214970159727990500500084998315735836828057911343403152594299105876176246181321676646783092669489513313762301378886303727819528254231476650980984314872795759379249985680867863225763774386149003063755584282353265212805574256420204993804420338204256440632894501171765041574056999419740697139330630261116055704654069593775571393730727204204488259811441935934487837563439418847734922836889052159444444910193342464344977644782241670297518973628551936306758732728035757687145993812414121971345883063138829095591097011387690619634204404290732056996400058360645611083411488635858208998136119931623017080639048278166189915561729559165978372998559856623919742160802780808517893930577903397291051019427354574604028823444953985966565135842721099881450675798036481084990136535439618548204369501427994459006220937559857498230743415380000004084866174795652214285673010674022419440563611049462440110369163254936395002343066793884970702337676818357030092527300357075596234769646721154979806061501130552081989181873369358433564722776221687594560819115903931319470581673430592697835600382588096537095841151509117823981666247569315049747238340571532141247220816916099050847701264773140380139888136679897465412122633630983516675654527116296010228735079493215403231864779513786177469058169951145198907396537118739394964589064612978774255903463587467700996575302369745309897708551456245998543639058112037007728786484783985075567844831630092267280019658249841666241028393346637211890657034208400580341578696030227523670891962032320604569050787923148299890850302928379773402769846044232239599956445262440325728455264925532176091105099829261972682085711595723909829684955956973596123213153582125729975532770255268382312153035204651202451733933414730183555561182485114584301646969454635185346205198126446100351804827886343037531969810573078813908093927987081243565778293231715867900313894280868809167780669758852098040786084238242552308526875876423404151243696917366298248553443383501393754948343104378409570573360841835643407116380516965738836847209395121255160742017578946712152995533231892800683628860031388178131461387975282000969762674404104650783409552920061515898079005482250667481768449376934951748712385727178330828510336057910294223964341375231052185149799223584330278635326990063363407930024514544420675288577466693596782399298175656404707645273243663316533537058931271779090118255115001682553227251672317498663456818923220025684742258425980797643272114276684904342659114872113512250069700160441841289233829377417567692659305286585571582359477887809301904863000576935457152888843665889432085818646344396484084261402888281813517844116922251477502789694555234549494100357628915801007495326811136585091610494618843788668400165627334045415166178702674028165344982717623341425119178743927978217071123367610254948730468595171320791429617956829641180323953757827505590972618246692049423808932780393759984939431978048431765240678539332111463687489574092222333969424927876075996355545289637940513543222334002068617343391216064433747145446694833225191839789090413660511581676074734440818374396433236981572188142795256027571355844157815208492605571094140055309628250283211734125701439020813063421539202584758963667050925108358101194340939092579502916505309501045956343190438946020737329001939568659661416927705173436531711359081489745366346647551465568521038449887293208721375767183493653308219306329096526079560850995098651006221669240497607118259847755569654564584558627744977392570570161036090491321949656560683089342391287234325351466283068756214129382447774461299158796887475885113679063741531348570174376580213732659488281374571136934658564512216332929974222289617796552066179430547884900899469735997449153353982293886198121242169235186446309530609646822426912018088518582360512364879008124433944023599995679627656643707876018229122324639210257677234086054091320967705733599194121279278849638613283962916219217205467650028807783732470870646153480291678150328020552090307349985233183049162036909817697106213807193702839798106586517433911816322563061621630056723290641753562339306359299474395659628246264107516538817778125882638828085725310328369368819910467904838582997092442190897147399883883750815522446093925447941849948714363643961669660265230529661379587510028994504976185977170134179854295367383412055220488280794155179632361052226331312818146609047578130989821428206336500818245801639130985032173637641544094436361613689454167587706930753566141983091952511059663836647621331100625749154023850683647625863003361701453529381195554395957769114917946761970930583917328405662957954695007272685849914627595237426217694681918852071576197114874374006534418449739880425545424926745381535102822539108820340844003023748945114799500276338327045481843790873595571417459125230423258793442342434853252381882094212865088378313152247642904589059037963072568122348582011095934254513202886842113261838888386491566278780249350581586653224137927577600027977916390924081490215782096635714614886821542808578993132405740998080327827751607815575301378796871586645341160034233985669207925477413307334238776313973739048711586130929346214601656163930708419157759641291555204593375690581244150056198572568009920300322065422069591516097040026112751598991745159857756562004492438156356435478320106857679515108788726740277589232525184000044866499858889620375431157813821988306850018813772339978422733730214332013602773598317465828114310257497117947017827598619347634670377301297017612186399318780362328507900653845971902008992057916739436173536379399719581377994542808208980321667899270324564032558389616358551623640792144589060463573638862048664757369459362214851900291643192671215951070190342118400061707244215937376027140680136364651349460388800465322374761786705692926330218024906564927264495342512869048010190446321685177886234048483730306077444203677348172607021857772261439014470607273087211287000935274623652963556679426087388222176285286280949450096932914536508944732863267170170538249261459494888428962770140294637277710897577653228700681082026367931479770742728857245552351310822732395793936436684095595995652763869541445215076210323715797349335799884887267181664280680248704213053909286384086350592096404251820866625685342906329165138963271575840788750553377133210861663680460884178062377553252986246528076504332669874146653466347845631534187947328298133451299553485023265469403667949033894598423311875361635259876352957347862293718397762160246501096482539549530439655579673085986931407212723640869290605350150478105159458101182136514042705182987579676867487887910576726820199534763815765815690759339477453575506096753355759800119765832767122719660215536727755665955734561254282423798557546059633703545045741968020047477262727979816015198919154478432377310719012714783517293377795815293869314023600573558145320861207679579185437580493311161335534806794609429602883310524109640416835838522058426909346726541821041918814259428716271556760557789592985788467451091027188411320492579364987992269296103534207531431791620438717764808152538180092893715148151346281850357244054885779207450174436331275008839066308020760813200976823389344921227334616835307015229346790774107648537939293428138496187155705296011540045574873894593448767572708291585832721062970599901401445963411435977859833888694991611921043732699813960976609911675267094539048871018881195987751623852114562828108125872806937296214563054773132816342377421726983179223885795327126378707500498199891091821783141158802466094587220077285498957671506448702333538731819548483401078289823862388405879677505563126656241835216177484193983762325810217921608097125826563612416696016962129668126770409423543193336456201042986791039175195076598651521144460977730969985726702398723723972304761363669200278407437355153436695531381540475821835267790726589950356165877827314117322775956374828871553315682966861889897944159582074592439108965299790158893308785011561801677157930083813724288408373547766078010306261922609520130386717014380050476092215638794469280885324641759617064000082271884136301325959259758352925960539023207332530309901123009414921754316675256040607776850314615671311021507718182489999471432540588584645473902279212570465733044722952693791222932775560250334783402701550301678561400046330083461756850295787995492213261173799114360329329297510268484406771395872983326748649430953679958835279376095019256812240733798851775005464696538423996182397132094918096778860167226268856062959405058830247115553426191152384510734279718868539868312013029822491068803721777399724060556579476176644151609546605722333410384213315272506569850196335724262548242906892837116785839247448404085708065544641062748861756170087030624950157093457447810823468469598853345570957571990536608815403301832458529789967929305651091954602283513451829371134346200285745262046735111512364540312026708681931076721099528111564889199937689177802794221410875894596189501747851300831215788143368963740146805395795676142147569703121729079048809428176807425210931219314033996740678169185016001018344971807666737552852776639293205251393836873742193496212128662021229735166848030803677376836687520196987487237964944430539679485502972036239860727748063651669083447434213867162208736897024730353712899871581391539561924247136784837490298090190993493566106203775917202288741335903341649057601415468286603125584115989978158322917722559693444241462989508552840711492075764579972074150061139656570844938127110145674633666142936550430622439268842609988483959023362921686302341536373292188138898987854231779334549723372377327336909305291962161698117379761916659855069164406064183260417134388313576060826786022407895711951539251588669334930642236104253661376773936732101256582962177200579023682655263758771670844713867345926553675937928848596285106876792900418180063036236549173997476621072086471432491195198478616953693968772599542098028615863199425146856678954257775012464534408431713358382360127533134699369920394748461752340939965009504807834599949250906918626894146328707495118135122454214261294815074815603928401300298730383257834464974597584439351994797875209245175642966670605307637051719728403149067832978398394416703731733778863953773145700900978236881676121890435314800025496089222394334627662907873676213753072364763100149433291670366230544736020704687973074657753473931302921746506482917977070127934298709487256323591963629083897591503471290191404407463292025504108469005562387760398542073523798513263875283594932594055073503380542356310103118615855539269296515880256663444079378639577636658946491528489011540472186415730210067755957046130834293638588757012023068201011246292472285115662073925317859039470978448036446365788047661070742728455003307483672819060833449663602671099588353377763275210621338459966347155449754845265967610227340651854848555651961568730002554290861452962090219405990649629285492511190975262160211335774899267723123615188859397378341651761102977776331823489025976236692911923088512104186564176533617441995884630319661856989654185893015391753694077267487076098776839031266790571412421359871684931835916137598861370533861740160493820215805429627249924592859211351135857149122972899295412444781943605878011375465809621658503090633905337271676997813324075331567544024084762284060799364232838582322216016850147201383543543917282603295330959998295325899813275179782664599117636587136556425676233911693396961773379709324529135934936189577571353262174510580467685011564526390494489824339891474164733010885460435749048210286002407634134832364203941336999144596595593640895305480715292153369422994668944486977642404199425680097963370723735695245133218818862354803839255921350381947491401129681067364949611931672938165222319867097407636985450110951066721690817027361408367267377683944603910586688983071234446223335351961219282953259947569891055843374324102567573401958861948181235883873681172622698270923278432852443762081173121561111803626877540062645331415935664957901060598818320608677558213050350449913309589078178182752819486084367989128017599640197579833303982400171389781063425306854650488321572619417878987877299320268006313452827670201893898768338197941860997963237210037206608101243404276042408627973841211148097176824032789920676127811641587518053543066334339442143533023406678570817053121071091127180078381349582483667783677263659270089678695058585151228019851789756992568099926747907618257913234546851786473795804076705481846646848496338646002286288574911343910499329950168774578719013347130081241123303302065185476606426182902391019759905222072550808156166091758517091315780324618206957715482865312336861084906912743461008078493595616833748280954409247539776102651005430727265889225273683396896496526205600545765124963787571081754848881989684850230340499191838052426592205342467234683394268134722616878411751400926476888227321655124230773949473530549602917107467559460638935896020038133071535148523771025422684278627141773699090539938856321365473974817609810781174490094745861778098099710428145310466913139529054396913403942091894900797885047848335990052263354147059025811628120075335849424406800649318455304857373381786105121403795532309167192030046342217003555505872465316405110926333291236176986147963225567378784293034338585352937955289023152860127577344823744373249440209251580376704140255822211211745130395840095838145450255118925044797885081482595872304443036016523950603683130210851108656223646183293434526080011693736938019792351696044367104106973186893413253408709908201881672694415618851599564577344845163637268447123453940464911577564969745590871814893098709782348516369329600981927831725666066708751370414779076494894986812138635823426424898192504753033164907343667209622438288465948227295502201070116342943598718472852748400630976727935270946014119042348569700055306304231120537675735035615023960363469363444328945563398763018620962211209874272842347023744132800972318532863220184758671050847026413260061910483859353772669124486046982836973710392232447161926033206735311428024447482383481249141033103084026704261756436905939859266307171950343606267196104636557962631045384940983675991545410630271318264649172369900077977981035718014235650754119119053751079270090809878805728477039189393868261224596999684457371536396432938979432074180476820551047892324282240327883716323547009383418725285216741507740027266125034160087304063223735814327393621124149876502931461133280612061632798059093231857874922691598198344951067019992356137681378464487270048573872058615398698088017259757902909425545363208593771567896925346717736059561924261437366399405890463125366358288384064639892177519388202655945133566880201884713487826873504324050226192532461856947140562350025184099121963646573922271421552572815301819359664304595964175308608977524821927295389389164939330306714260480163087271769296693317375180471723906993881834663294932984057843875142886429619619250992581039386039033071354611830553425356330645443368368492230572442380711877550504442775963651987842971191089203745870960257962157098475182718078171547572210201551373381329389621956186551487238773785134569359698023023113235155812226560070395188962765187397909107827843145610227726873869039997707381812697041343800537832191612548725647398590329731391460276396824995604845062874368104917397503783731588524065211998214616635779782489901927999999145704185581416543165583257694633332818330861036392832529274051748766292659774938767162352764152424131655345865322799576228898595430096206637407551382636242703392280958298782842868448613347644763276257918072034740033464077419573678842969455048175122598504590353487192919976513655638833537634500362644048875475508352425466272689531621439922418256204384423455489743948742382648144339669367385654217791107508569746200131994384133637310321077750057082526499893948093482574008756946249556200828440904861273373737222491292996490769344906664006510654927357139229456546813578494674571405326033961881038788786057871812116921456880279820893975552785287818229381691870890379244242511547479811260935606398538770103837159768273501350717935542228568401738207604316886693742225210103590349804795090778248154563447838741296781718272312547114764722592296817464364424744504166727878469025476624912256552444002118012888764036589148326934868450731360846120637907676554203962126087355414875709340504642077928406593559319044661202893237851713262384932529102257362395616704728234177940738091109405061231435656711195020138630483349645375014294389461648730259679517366997291339028046999546595313612344506095258845412332713073471182568375469321002035054635561154577519868740790887405532735026845431759127384977059201464853743970380845272834876500517595977561532853173448802319391492123629827143989498577215708832357603707577369274156556541895465120927670786240768470955948931803162889594801192367785132432359065581145219566436566032574846985132956217069311539616497408853603035268272077187859400621750871190523132134720474375743101067316232048157647490522324754277918383184302764334396485897953782106986126565682749700009626513751263990063563734634318501034749238566867481605788244787851430012020887808559515668574557675296454081988371670452265393544444368906800433371606426254458309837489931120348273424533619697399803090202677524443061094850263567607083765097117291181866505861994562530616673408864123446009079510609437558905479621637625632343757124560578648334541690823027875915592287940134741678587908434040081659550493078100791508729926984855811791730636112155544185193368367632655976966023957172369160066916058166696758331760148889935842091161618829944260344851265561689800810882105762444128769934209457015008345553858758984845825592242317401396279995455102010239820865014002380448897926583041468856022471489404270598151414227670683131259906155302281021182065739529486462115003967907523298410547961915226389677537623111856898955544447459903173335294806134416626109611236415947684451689607544003686613792181286549839409635220152238052763035460449819826881983431200068980634309512764028585384385108076480252469672795298887086487763148115732228351901977763075300366522946118024029841820463370965641233707172125104749793647148169297179695222295212669363435846358069516041161705960512171261676499116299023985094282379199657403674465863341971006038394612925566132806360908625169082112881167005993106264653003456330473562099035919429787804301043111966379952711295716611723300006850298130669264203452494793409563307883035922060653981317119676928160856939970413287524860864115226213840456405512917541325793859190763467961768311271508199748316654008996947018532753470773502040990229424941183894540228082273423780681476658888885536221176519175079438229812314644383789906290615324122784256959815587220298897976927644648999791183411732714288643166142718711172690489589185361865589334793278593212913720978099747681863164340361398366527743187057299298893129005995131204758759550211630192479908652057235705391361454323721105498614694795844580815168531599447415983570520814933075982735748704149386374187805321121177355056386585462439229697930132015471598209227566124415300625716737926670599799696451274657750515954535964869737895286101538623753215256218319126036143101656444184109818600978804514607579013682107603267963754006072608104511366956997602207806144746758133726361201026924342598988648491264805023371503529932599136571156187883701159682327756900329974250622722155191166309265542179104296368320805346538443247759809393969248479773445072310646687126147682484749622007370085402424756458053967178948766011812533010584045728199966116598222191431910678147438030257413066210875856957328916958457252095720455078299689673461002886355612874574466185009033719162209176222464413114548043221382936510569390007861827682494389685863376336577137042950719007516187774250856402646951973720816120199373678376844727650747431140502430449036267579074389937416192496561517371981477861946935655655863003661588579216422409508904661130108557512057068136959539395713471622252447591634416796333130588727194799865893953227991473411893338453871282667692199203328955551662663582462989049623252930164986326187895753190309334002104518392329309242386665764520372234105878457514397743511554164302415949900664042891028086794437788034229163794530934180180459168120528126923286211242794277138630425147891333400007566671346153617346852543122762566688872918331110244610152113553361924901563170646937080705498701855435024754005512167362042233065857807427574672366235028251401434158818436609546264155991792785823239423856853493978108214252952891486676846587094246237831800522773482441061666933497391097366180079594703200024902334677960195713706409292695226547210473789655717772015082742146102484048758278910517959423328251738602955332747316546807396630295114602632347392062940906085592683182306981203879762974361203759523380086107254202790725172727489993572225790856946715575050302099098684828170497230142751723003138143156030315112022833994905676259739307800626408384951032739682967271527195661823868982942086389209958469833283074876209911782073317757698366306217626459090171440251530716102303199558634922861123687784431250260287110961086601919354635600226494978150118858290433363270889832403899352479872598635383698865179179039362752405857972670879083697334368041185785099868824778172229822805543344082358317639901048664084929732622533043969610255593300408586852685674694056224059379030559241397430000042227642064991754771623860672209601090383929834312671027994734168124834512150794739759756233217636783723700050568738142282817952566673986631047937374022090119015369851106837397112550125704205498752535493325983149103460174877523720521385098640283908577167257562953113078211891939218524652121596357993549455653406263090146553214097966252796595787221052173615649737166958073015358297089495465801502201771882868894315102866541172113889715444340077638549557256439591535600949878692905831676182852894455765744842080476384549327633616460696577047766273432692129512242326225104139929808980476691797292624323258636248140875452144906499836398744658719530057726849897495480771450512807246797231549906590577383090982679043191283793581710041844147001026016992928022226968003743617526083332453018125029715247373309579913643805404895018385496172543843550226783092943158749071785589765784379029267211598161286433175382709620847744747067924077596627556956306853706924832036733270983144906303880144526836115132429958617986002965645279790745266110589562143318919681698395524476465265524466686012544355523819373984333208286129214319848310363862256018388000271881635991686289125471423728436506151294808448368771728660081332398274968714013367004280989696755666931569315930987033034655926563620685396199480422792470190931201146710567441716564816728564818896622591099365452371298129825163765893306384842020705857846444736755484226634039867002395001048398052336879083369017038534117016833559221758517252417090894917456976534134741422730156065476515278113762039416721287606747568611766584968367443370225998871532339680147905305420598813622003826086260605751521948440833733198544167811978339517011957181179086808092394908329410595978530856799638972105578276866629187548767278506522717032559361757948665828090948560236656183235444816842739242523266706428265782490626565542835305992093203224119855776666896145257277556087003805677266170332036117949331710939027491846932911248890461612924669349493830958110957678316899192412267297930655675060788589298415270352709901334091984556617574579965782634830291153817578963539570791580907828262459802781905413063749245407531949512775463328903162070451666343967826098238260837724994469360288030388931680521091574983878922706574480184305431019256933367588036028919138406504183128717496668342602592253167816442068780867254269070715149175885300767654777436566301055864626332649921436502808006206348056445490413995548234765622043240363997326279711026528655052743348157841813369821058565045139361538670143019745484955004756849466260587128280922372465989425316968058587719531355147953961971333036401080589967676860949709736152478964393051654339008086860351096538057343119452525933134040054729029600475165086298744629253138275003098776990901561747707419458478991342977869430178914476114456013868717198803029104446096155022762082230805514684774477373689877660461566587902577658889550701473334139688815903095769436107293810826481130239428003847529058189931220515018132446033006989154915251493622794607804224024083965391042255480585233125316601713877026512706848243300454736204284018798356614340103121169220010193730015611769879561508271977461597790211499974560626436680268668758082034469112097913941429288665474764119893926976711838424038330413756326517753799441298955434593199866714530424544089177111060503816102219853538584662950725286914999984472536874483218386764211417022980904261906634822210299363290454897714492558733317159205999951183112930805066523236449906306728884021866617417690722788637774188281559596247989351993621455329337577597847358287286274398692043924067441834477663416827906671742199052753147549308470845335273716621229590573909517741682573768082195740835399281397347228821493247567700757298613614479126194742757904891671086318956491388676925443795552500461088982856200018473423256023712199960975497142681345756474693275430309508639616976303049653399306187264842853016257546942192530353590622769108420424369023304124085872476331173822857997954112176187102782975631632136268838326401652566747290986918659845876104058069856100896931558210008105903697885897111672186472257945401835599558549732208981574384396810808589317768526772520754410533633910697358137703502096580407379534266192969552248436524653016040008401734098569628956366627815293340078648756552841642394662078359496192890336667579981015999902706994943505278660675585908404269993328284321315450664918980192120207305069842222983196195004084700899824875703988986458034446440918818029090461877933064268715100467172913275864620206437366661359838482740447797340273788070543114886045063476736818803241778529132360164067303407583029406060425583349031408834038018243350282086814381045151521161593170591015858439139859554744495653952518832968392687930306125641790501369397551735710569597611349148484648264598047190888753433541025676949585857177848489629311079584314453122049754497325018009032561834814173891110003972802315667548686919815404249241628421961115300065196922463694088994030243296671952674600560248527445194701651558668286536467320307965985776598132186378805502472997319280190653073372389174743287015284104813634418415193229963849042812210176361466017991630919071662300442347991854957774227770428656911306741117076016065823880271437369036570779308236589124515618222547539280701205300265932249268549851537145357812724238875562469729020724896404845434379184600414387672902502412317794618546409511814506564698383300661855171472147121036866848194496941072889003206316491097668966810411356024718199553882756382528977385084369505483530440479777811967611950150684822590380975791782311738771857825446997164409519148383648501850362487123309077745993627284535365921635859559890153003629175710987547766157436883684127548554953342319193258498842354003241372517256414839315349820327250010767264336045166469298083817820925788089789294288914195609885171002780893405257765470874892165347682539884713449466075063734766854374823453032078884771264947871472090987053880005848714684752429362609521953409845330791401686655203998936395819687821180379401682193224698285605697322370869245583164075739805451311460942364886269687506958468947796450130396314002168845642937299496357302895723874889780272211352976527623331285614395487297546758008940953261140359679621769502928698146679983935889617458802368231372982038729885165870078195503189938025283816584256417963735544717299308949419861015382952784565081417504412424120810018386731141895814432688353204706648316001239931082654506626650383036319698243886829519978543489047981800673090289539256863402848028433979003333450170991028506055351569873461491447419491573821525781008222425810264555064808836640792218170042498299959283888624474739778853840253341249455021273904045068407499459592687359213296465949710199143279918331145883669741404965098768285973633934199357444047759965984815298229713694516831467590007142684457833490206293561080614272920805040583056559340257418541530589087356659737432509454814012241902311194332256503892595076397830094566027377207185360315561493584243419154358647157076951603468563073121937810190769613782229865563990046688631932255898230950829470994565786637651208613454174813322203392518807825955530396399232655100097995273061761030566236977688031186265954602140976324442434403854976913720568060812369448647957095046570056318250377483287712242714021338780688457649555219450821113401290657321911936220934650845830303740587710368890398036376877581095013793983937774497677647347104411501035114111099321811045600263027988521097846993861710455805194372418035387545235772502399098732097969506446072015101024698154796819511431623195822097547280315136040768852990740810639519538133448110326216851836397632573403023380084966720541140556102346624748693287390188196796844284863427306199430345053957333869531808250774539618853763621770618501174807896665857987964148326379492877563499810008974720560089083669566383732335709695575321047752015129687766169628098805370062294201208610259628117288020501291896162272574831319933132994227882089457302681127041610793138763424871000372200382433334290145474534193616519604200452055556670104121863731981127370681210340139355402804568610687559776174590871645580596937986008625465316049066928796098661446409524561301006616375583422562685263320925179238792969219358458865574650709597877261322947338066420229680991549297698499543966464416496104949374352378702226805859810450384920001859626267327827987940284957207055932112018370269150080775545397437404431442366433552318647563154684032273379358602684615134528874057397560954924725570312674337582456239966710631238394711756109117731226523265938824958510053642298954505958361308586096449332035705757827205747735324531269118838221051064515942026526499052284539317320463164686488321963451304692409571265521250021805726787819589802270591711732299634700551743714893201534940914507815471397453157892681894663654341556867834202447754939213979853965991254868138747766360912134689646876114641825717860738898633764140334495781118034659251930869604213594329960282238908933167052807781879023850661538208827586200917512766061850868386068547022426280102670788968155902583873662840662837906464143791265050258678177044172694749833852583777840142629390409537216878159482042906230190831088144054304852516378909125997537451394718468728945385642987484373390808619133281188784578608818587677742363722295888042316577786398088343768655354380275159472148490629131242148163331418971428659835545211635669939406360422646514475248683887985121176572061273821997181482015179648845954330800374682110382341861375049614884054569423927783287112306580935577988308105741491089178142704248911700812664854877050686062434878644673967840707182434717033540968392749108940760339221316655211363303310077788708717515432939017186694707382318753085871176252206890539833473711503071196381181584873322077867019860329485350782356218994740268360126382494331408030263500991158134231123664704578064167400728589732601826826478051705356496315639049195456779764322085474156761049500109191581711473234384793651456578757340345730832718642453783161739136252151282984595577511600442217332715720042338783615989738739214187582446516724165336588067667172889860043889738545939328946447122731166779570981389427044286703284115601250186238999893656399238048349481329629296184945996635297068436634467191242529595677446890356367876915546990814045600265713893667911821464957092997569533528947223809428963769029647241807115096014757015119622003228212685293663265329981202773422903211220692491295554952472275098638707134980988483492072405280057203655357331089104039812677585361698097527476302855852871518245214018365309311440515520582870944823342812555533574200432839322155364755937627267825499316205639478156523294061872476257113191685324330893574379149107481378576451792045711689655657378506067539145485839679808389416917784099885599772570364875993285945575158628160913312351916015162852511387251515976729147212818935270310148451630446003995016674963453757944359950865662276803878456502233185254515571527784930710423163465196361777727787932706478870609856169325391672543336799276659677971772846045658594865635580596523375647921763472734761674433030050508556234000233907073484954757727132808505908770568278687843070508983752487111161860293160488206102925363023491153520095040005871780647446937157203455583663927903185163658263844546280956969026288400094461322071428823867562428773436962341411866192256353703751112509701440419988812446574713487427205580050131866551870011229052100695209137590430297770432887303940433882212017845256926396676659039106171967657075499168588896954078278829744916917360069868015431472604815669901996886998405019054372750383209750411201987118879772343043871381199651295236879375491997999949103477191866341577481470664610319469935841347794252400890017385562226609198241841208202966211316445481288728638750015054887689587543787109129501465976134098542433232978538576170106586375094065494909950179750593344985038453042227315306701780558207472078197467828432328091640377917518412556115826766128679540706299340433258223895940210075219767278054603090526506324337597346474138969974276653284039868863569233833469574013347376851783839216846343269379362505609577527542237189296169225587914302341768014213514674804426013864778673657258116955490802873953758880554950837515235686816230003546883313484566544852147742872190225723407755741750183132929824297715289624861338521070702927600345970623489859656413836877033035960648419854887447366643021258244143267709443298481432860485281252955114209685955651040367135370757078120638169463597179919356995668002534693966966608894015265561573683243325297114742685995993913804146096754147375603725043285337617486597311196458931017872326075119125915701286145960975631141028424150320612223622407009457571787065767633615867531232772516343627755864204677691915840744526430623279769196906502705182964258282643039351950119284762697554952070447801679202615932073254339320893457038321731537738903900209916699434809694937158651226596792036236383313510394627348259952241718381568636529984442840717452830211241149750069541707704830811909393583869378838679880789669833661691666827969358742115539160930789489808013372082397834493989107094312519925247422666641118771148560895747524652783262906073827272514967391050618158801003013586613539580017570738187389511344392410517254019488068550722769596354362336180337464445306837177419252848240619926826682711203872119995853580317378311405397354104520376994068595348417902863727823852637013286808492392961654955219473846955493731233870819859879453934899812707727658996853034763147003835979059685955486095240495833722785755595068396426522168956321437263605519053034136263355070406035988617301589980036014343204097379731933462447180548838382000100377109947808474241408718347155127768541201573193807044958252490191739353914763841943558250797692069288035040222567932340631996302876544418278124718821741662687558665541656043294653512632794066497685827862214952489995734881959645513930813392005696863040739389566925524393936519794018599886491231556126589200292622259756944844124877718630266687611030600515107641345627418138742749808237959859950987926771047311656205887455913442169508754222358618334891578973645058773785584256066795448999022524155184878670173427812310883292355041028585509378367556667919851561798879566724474687558251426067246948498751253219758466511995916783314498578988458541710109153746966696756404321393948320682475994321489201605867245603815637760159905906675066321576842171914432581147896286229903366226700784805758989740900716996292211046796159392280115552003038185874280271584236561255055810590477211498941144800405456802464420875136946006162347117136430346243331362041069849458825558175846046455498760092402220025376705781488497525974251737801238330974128065200014635121954888702354377801513243925427500421642143397217741866970535983771011221837123590608212300539328978568707375300309641433942839402250832807264156818196112192394762570399555935463789429195165901282552855689606094611648299084172021157222238391895143378227321822531029621392384221953410741186449574852576584337167952232168666263580815996573012174153963808321592232701301776939076721353789360803133742767762217651834548637960064394526461605909524533685841017462026341204964857753820762866571931074882015855244760218836543736833548891223735634532112625813102457863742234970520801426839100062757041816879392343756908256869412426992545899279455765726336377294511534360278363173067444770192404672198243450876996965180054570801265333869345799167208985878656888034142863781830040480348050867760480423238377892002237346035175196998111716755406354718920498620492035245834319912258446611168327773675508941071977959989207753114026178683470126985415849706861778292470531848730184800429653642352790003138722692573897545057616692759312927364309691174193769584546943145936740690530657954776598746514394294159297346599479333118489931682833894235255628718888293647753357872618181150240727845571323756882945780398005319144714027212470782279237769844589640330809632329214972782363447028678681142840437178497951157989171090695875949228038525854462035855054306250297979126628193385204158906574533739061267144000368384325928051323473540620554697229618700030986497426518224637503797303438850575998384584672919017645971482161358377400917476448412992329188429855163131807172681514854173467512453980593311400125564768039352336407467058982791451336920759793642196970908012077039185458736600490925711501720562190363374011115352228069419405412447539512905632439430573852625227534553398222496234543379576937224326126900873060074263137202705267314909687536274192707619447973582851041615658363016832991917287674003149658558418010902280108994524450457361452536339177126118984208087052289095119088516752023497519475922144775454510691061450491775793152305177318443410194535473998012037290525844738466505211957940487732758175881670285374619129501440469906348122470917084289509899466723484152706852849737108554440565231090160702334398002554865770248547180339471011263979693342945056380303215361629796350430573111141382583473932006618968566207010036516896889129638083539636733372693760869163789728442525890982408010263999389645611202315031487676736449050463613585955602111092658158142685663762350852053807577367298208577487199324370917018934230367969403431018673379713998423704532805559059927291242334375047503471924951902557527233287385689456227230333386106006533246757673413589716370487505133614153461196167902292375920530139484477700255260344361282843970848821895168666995963244692355681247718751066837608557943123647622073834870404665966206322515288659681871766178360522932134637577944380641991856693261405787607771022751471310071767243410119391988187432951749747911372307100237647634157737426998328493263736913485075676681923137711857843770351971317103345737694595850123439844754513442557388127704707739421975532778685549819373900231545981019308585467154419271962209631924062274688807835861031246240597002369210694123339025094800223730831068827202767461486183356933439719664308182068948180301915057086996900019178475559086244209387546257482562552299393059515169996542845033031748341409094378657946002020112159617945673078260014214730176087364922572209485851474305990363379665803421511620610566374896814452693783404700473661886322815482767216683941346248727990039837752388957093595721680915756207833854882161985120913619581822401736336475408007403812152514498641823359330854162381378196484454571590808873584386098400761974959114949335591322660954323302403358173281792699465145055512053202884584407933408133807922020926610794096762478394145883280136682280277677397883824525914527874188526069983163429115873209078959959435058452955155944027027547989637642309865315918206038384927327154893510114414854591781386196762286733988580054885714535584681697941080957307625125757608249462381251887956034427763408516433763724410474546545763083946743673187346307121843959801623477548336742089950587333889472835036865331894663419172423342296997918769833915050891296746917753960202221280479554052531925156756650649827770630772613266480128539624138444880425797914820958535305880446537017577423644146457393112207237538298359371717383229281358985533469800764333736460626839716617480799754431584080552627266361515958020309591141414673012632058542343126210054580889505966997392177017192586847746297211625286902944772813067070409498253590462081454113183957326047414769650397068006057804351518055107169238987247130635312393636673854795474597686326218368186406961248494016303414493603005846044474158726559835050201953100679165176074201780184385490676944682838424502990244139660786950525423674878371315222417379587177960381121939457001597165502773296806456743532595844726464192885190216667634279692559593305744759671763983502743555588063705591953551974392656456616155953994489643204269132897826315236219467180417575855898243808349796790696467775566832723979155702454662866222614187856609522891873705882174010672830029668340964089638987290930312078763672331438992663570262323138039980290136341919460615860703336470785661720151511165414252868407457860989768313612366337215484413658124614006234623541689620674628713649817513556037948652578725729916842656679805445607307620116044506799519586817672665181736132516419289470320401416236625750885781955287939677655824205902740004311373994994983047173257611798609611701693029784942863564529263474486488109928017070704070212568535052441290833270062573501088037852272885736403872832314066693874231558121743294732117610704159629487401841871115349238877803993780969202804431865908787264978432121639409854160503860722892912770042498298385531007125147962722339082988154340678879488696755832300542739974806087576207775848876566226906661549547930221666434300948435584276839458391413977284638233898045850412883258852132100399359395880075733421920277490467308310813929418313035857438552466218010412184163321507220926836538692243211141138105127839866095379200909888272381079874501086398290025655100293132574717109840893674954717013519309613031787397589359539590567263781025942217149389102535250282834404514961309324836145301749595409943630156848164421301930573414718485904531014280223607431772821131358941325100715484399249597705418193629248693158487593096551105578841387182767958595125841736706245768820620350597579724566615979716172275044779761172048140007103200779598993717309130526899558442586560120975942122646340737572903006893504573079032445171406932687144689982263224539984811572202430925176182294172262453935774175579035853104747253263591317953239638218474587156504926625095837576777534358391077051520345997716928703982579748224587192259451031980220775198333039918972409115411307610759551397269866468049331499484589724546746931829579507469136125083674122577746759642951591815168496058571145252637390175368808623622632522298031381086086206661189779469637289763425991870553028903097873559205369123588343600111781307831536581983008717374093599121046556864953698424367601923659489612507657707808258710012770415043960161754868241334438124021935970905619019441913042501990334973633178553980699735103770640935255205286802726085552430901308469580241514516487053267142406286574761273833629352623198738681149018030011912633781033597104948403499470941650366434549647207871438041384452246239698867004638029322203995386739973995056193101355642585475405239625089674468104051800191927309099209407613116796520491675897927954894262481614708227175155458498475946849173011139509309135672612102459670139496742885507304917502713128250308940753024094088657898765785588116284330964368274789202544158948707009873377103325914460557088993861653334940211493130963325276681350512346679131829971365987219226012662598462185896108329256180222786147402692949425951521037260816521790775593947859974474728917420503334264778691602806781407719178267797650742174665127526763976026710460093797369445819669640656501427453068849586267448885432960596431030793776525301739824471175047387960439550863744458877942271848112113306700539798145123957223781435215899016172347032021376874177926341096884481808972798913289237823815989359453929938194961558018977012617640865362405911657672599314489862659604966758188959759485097353054319352619626314592657193180330390583685516872836745749570966448638479720504138748235674768496995652435329662877368095711122250940963320920950297113713838317140743940334474008396664728795506861133572831868803254296786411904786907233516561416763759886864309663535220947434690393842191516342768326164687309525005148210201515086454742008448588137511765881250869651097863516667840063646588804790800715836175476265299321317464979242872088501582298824166147929053410864104301948066137127799128767271529671172141107638593334617906212733428448137733186606813761093025783944386039948151983729531851183376487680425766088981430340622804642076872870940535830809889973198022245590959979705761963259133400825275039030718808203281272449365848820713722873591175084055050756971891012915628061796184038147962496645433421298186241890958491538368079019898399849500832377267171798189419081694143289682069330746925780631822492475998342537548519128974971127676289015455313617135221098410823694669703389672674691121495952006036411747147052075682965676901328088817257694250162457251055458235223057894674012145255300524214984580557691632913451501230920620071712284876074924498758297734171001486696393934278969805975727328404628175436844919031340625181944827366302650435684967174841599932599198040488385655852655365034758478314040539917142145953348784836822723725662430084975926055066292824940393268513307326894736180756555602405520112230339036671209278294317533140996910790185974389549895417190757778079010328320752979277652314138445628416367069881416953170684919407644130102256775483056974547655619596209239430015995239146478907061573986889554087486497407911326144639772231953594230703393254366107864751138377869793478963041284211448772575591124982197599172276782556357726654407411658069194780613589193191221856017668706002611680464671422547832678617637092798743974911013142532869153208960366526971091758101493582799203742296667551741657440072481766392036880078541407055146540545455269122193188086674270350188434858174669361706188305047248225367070552285675573100131252041062696745529258541769442255695659542704924562229740739877445316877909264408650016706140949439518452236585335455800456632936832180766916190246111560893731642537025723184499996571189526882951265114520846655480979498165046744139021972862399143818249310530240266823744136112612423125894044617794615766626489888344393306903756073211190027704933746845119302601454663254346748237755525384098524838670875354910178014374544317011275908105033408549620124642112895053799513129904756312149169539510913336374163352612977971474925114136069200782801975323063455237150714068412884713175020808568917495962286437025612233429825329832471392438726418383137818795096325239758142145099671466564084323561357063262275030114927273555712420812781270002565914973227999367712488994541157165975648895411768968458977048223539045203440252290536695127047784017578930456751677956951516339983221780540894838086484581076107882084593023966881119265490162746115028802189329600170805011421613755279045618350517716498690553513616680836841963425421817884889542079923703132515801134955857740981256820746202447819178695390266733074572363145395840233128804574290963549118728334838304760097288486146871780697498071836860246165563677770228387153347339753702691653231432292808027350782617397411154561312863695173459084754218257243602621622643843533881201308898049966997708337755363361983861188611520401718752128335645485946688873017485779059631899674658087039078601825077997206352768270926759273642732279380046984810377705777439264026384321247434427325221471039683447009702284703499388802304727913244880671769263214810382134603093784366496468370726397920623420242563073406802955461016945984051811458161445514361928922721950605029808491607775663735086930413788397538368430691932126282722334000957987425158816675759869528832704173974394630449288435148500707130474040060222550060204204834701553629420042536915973258577100470122174660457375408698203430634856076229484995314464941334669124305870121734322734885516777251553006110317977687486092248889468675423281250185718179585324037833496226187482468119602848447831388146666561869460114275173028802205004303807497564757575858916191259994214375011670545357479284623868705177162108046457697765514211082150150463206684884459246928480981673853730717661183854572763606639434155276628108001333683379691072313866299264162371085455046487995349169743462670098850379216296303426633544034474929047478012622620567409112794826575153772200701402208166870518178830709389802291617231893372407183349191831482944310167609098008160928512221772950683174799094267295344607410175355902115255030382101014941221430939329949687405058815823991186631642616506840847470670330960059790045494523581887867396788436072284948362290407733965710227147886088620229852857663398918248436120813806615334490913767629142951868525014388554292608365632952732978680586830764759101168845726450478979282448274982353294735266648324198255658052894047543177405647916456380069518596315886492480416086755492333659842342823574576353003068311268735748663054591805990983018768518096726174030863187961248210771986807530186930557212694530197178757880623101311395152204638440820000116824447278545436675596827083014557730940916729068403071266830849250689174387259463632285874918370328207780698818692747101464354523656037670320490917731461278418841444523000614897122872552770621409903209880000517511416692543031489742673866562529218129226007777804087092216359196142253820781833230330060171520143412911569773875901954232272110615334893415923032346327187781571174808334554386816874152276319348823889352403396722416671833228172678691772690477305173276038560654199084377956075495049752757188798881969303614759428443803525001411026582652835319881865731638441746508787605690780281107029204958000846052465067042760944784464443193972216777000008686784918652236408545806858048087279523009786330206412971463011613747234166500611856804120815710685512818421942991453465313228485734641916348716217769274447214449516179396019331785605054203907922981594525430359761623485333048594559745429443909301321015204492007370436422423991150653809023189360905388144646955957874865225649130046748426570543339208824549974252756067475373298667071106248106567117758368300588548537139133726378055145351512130365791209540469198557247002674262352161370007313244028125386913049942142423198794836165913822997117371260683267586889251258007339093320716392747650203533880242815064030446584475565224947309540010200647647430185257647754376389132950392936325867276055390584948185253802147134776552291049393013652673922981268540959412749400379431640787793595198114151857102408071669575240087731870639309218451405255519542524649560737575397861120280079242571076880678209546404974088836286302444540190194508457785719320514240391873894856976764449434685526135429254305025298490806607355004838360323828922634561678759704158306608537178475446785936120964527417386320889953993489920381921878336135814477178579109295097452478831029966549468123912894851139302487568374029567515748167105736314740828241992347801215735668886513975824311879487225604049507579140846629598284940380241029174034366079304901782714891619564876653682365324959067177241733095157592832356777539264957894436399645600351878345995931942533672205527061137004518496148512212218334487353554245106602634154134193853470443983849014276909726883792398241690134043247214173499949590410116351120470122476452699439765390961300070957712672893209307805534685538437650089353672382076357084908174034314754932142160139782416120920760471652986288987580924741281215767161862304394104615979508852959097041173919773277146428322325562237925663571376548954494125951408440908216535002387274105916526248237021682824587309177847665764838070563499346466195696348881308453083832669168670325235689321883074968120855657753526844090757306772822476204356531399495604228137867893320320182152371033974488591961648906911013203810676383112437685824243964974468511865892708659736046655674291203083247891543632458273317309565457363077417123479307621615374428181603286530139194251286557502926086402960890063198008596379015461300084917033968544246527824917669735231585314747201109415951622896166698837613158242356328707043824627090569662516752053402297684437420733224124538656356345310435674553527932634218868988687932754999490893132632766612781928826099927844941393260944116408663338383528002188983468196895803156012607411049900506618003519004994572259210575367100113972853797531909120694995196140381178173497113727934702230024138535400953712627908686024906791504348824895948062851975590316328454085237355597992567442371907574008397242511921239939166492026288281661765474883615561277179842203752307076474030805261991306790079479720678402898543221740304971644732809797598151001980776464116803365937242502381636629082272317012919208802038169460765118928626572534277490621762270495484213095730758256900517347538887177701494424119604245160289631863484816828115678129544423122961193016586378338663274371354435338009185579301019716056291855750642018563845381317464523343113601537238464595188453675599792760516473250122663845589403547701190724416968751280960251327448871979084882231016051407836072515352304701502305796732412936517333581435873507826709244664199228790401563292232715294173217749616993308041757875532963739358699124014219218603854789588164565990031242194381678240564587941821795680324361213671342011648252247541183525640485160406723539633562872855288725007720004627183451358718189080761742255853750894304934725426211872238803346203306341502121964693297635999802993447540268397045176578016109721988344893871465763909797287827214520787244688545590131780981811589021570262956888987043762459199682202304011965402015565435030693957297633679539318943955764747175088003600440871979964381512043842517125458165964538815316044113499292535058677224742284955951508058687826942407280225000834111560558115982061944477619510134762255065393024590114903500052244838396715207762227437571952282436239169816067144997734245445117472893491171047044135680765791771390520700580653811513861489481412980289297135832522117720233900280671206501204506776026953181267245731981459682598856885465742794605778672038301621333948959978131214296139517462360277351037536443497525397612530443590093513286447219688270002870699435686588983380614648439269223902411916143840782211079404647455490851076956835083873541974242964346475899733143274126498740194694380960160067846087601646883109558855734229641132934330068122271480917011784819994240205321055272114785124969241129225151019913886814304147942039887290715214714301527929064756058513547186979838399109564228446017591573796032272137919630929377364396079460300558930978404025316156297554080301239346825091028808756399672539110811919622963205940209407721494366008494976149146198924453280220370030110850173266804787790204201387553121750620417477403947285320394156332251492138122417982284591883935516282172583408213579095731736859122047983928543920684921519388892657227872524690949624467859375420152983625554364045654426360637755111119303495229568604105620189783495320258799519672981499543261020624179342567407069009957207157047678143669043908933727087617624998479828263463091343946372527802835577225821278186723353471018993473372201789045930953830139558680249412725604448062095005373753627052978154009530781279274759879943244727742724250244370455086066009469423512708224078202385179020099340270374967951246470389343053515871381713892059316039665446491277589925648595938626178658164298071518473743538589301105962317676124229204951617529003388762784380554514770799322734355326435731082137804875022400573114396391712023637071675624278017473608545695518995955722884607314697591910687182693966140563496015336464860926620252180528589489703705557759598510161095519227029159805077266510857870837685717408484098116860527676352823174725674762296762968209163306680994470231671522308645894676595048644739271663151608311130220429813619006929957314908784675801167274474565428624392991887799189717496630018910587811587674941154941361652348011049151158288546682330280495199057246073924829039851432408995388199640578160653297142470208819531207805796412663115199866523436977140599078878225722078271445918075025798203918055812314361197569189895056371782090886618615081554203048759666051920797058941776583463347149603037019118447169055769417754072011992954641539672344330739043438236060559697370315190799669592244804047240943227494501552931973556547834860014751699299262088275662990441312920047844120090159997774172772097048741273104660929650745068413728870374893960407914670241491227037879035520482501164417523325394508394991339781306067147046042103731310802462501729414452452622289069974009080451822555299259137120369118945402169282817287073003372290999563334874821594628315171397219722647320919106127467124960612289785899620382919205807795596674079778132437029246794367656715908529310534589588289516490108744053101442029195607560341521148003508115167413910178483665524277630959296664212184448524823614608912668241184524193832938330286680147179887061237689372728626083595719074363613934860266157218611211801849651532533039880019701279465340331858146021866996800683534859669895896507636819523380103149098136018679815598863681978736944357601650385879267976041103980374535056653408363143373888804615847808830593198820809502925725864667127533192172689864768032521168596007982416700857841344546371054705201235140257222471831742540984232795994523421899525408305530740431037454250805134720727634441860166622407241000435930158668484571276747097422072911232565632462734079488102228602754691287923475192500436896321579749083795102602707229259533876913728934413142008120738576779926378240712224716159743897307345351982569470551293226261018874945966616819471642031178774609664027671222150153531255792486286350475877470218409369225237008791724686132388011370007497003298751325255317628254868719095777003852997756379821924966559226830133068632505855407143885047445359591774950696555530029749290458841782236667869524223779002298451173519723450384493287144153767103726478838769851601547031884795426452574430116032623395362315162515752822697490709379440359383374790147802129906609944538206791746433750307902067539518515490015632361423836945893659150286924379946603512487705956962431096574344052719425421326804650906327069118019686168466124616793911843720808583069904185460517598385311907587033603960739041479000029206448425687817968671690252713350334346038989121512053197723590487759942680422264764154356281622358822498749956423103460976842492086126306321430894139947728640493930587449731697691091615613282386338329810938324888149819493534594290302917095940113267370295116778944344856149126637145663649501694449428872206978602397895626458390063895172170084491853592302333845120806256889356099721519668568015654507521812758424191026340923932171954222349382401289400804474322245497125691227593449559721553928365258614828749580042346589143727180989605826854750909150562231751484193303604029058962208161063261518738601027869068746335865144632605258447523035066722606655322706953581145139596306582449355296280284000148553493709718900741265022547837597804523334695445914963396253870101495099301375352153284373074801640230540090998975892847220022739694927700433883940950565729642926716408118266275067074153236180326339713310741555152757940138499980755669132300633218246001829574588165296802699161488143879044891064073391445568823600086384607520965653434417416821965781888069721531205372163092886662252076187489968090510021261167427567700624016575153071477807503994813351815971107873269222599712258755677474782787967656412467462623835745944675361696715118328003129643310812103103017590186229620946207236363889390937550692819708219102108479740309478129148353522301881512293846205130249950564580829615834261832487806532165742446281119310133453741279701989548505225272547742110918139026729332011321436965171515179034529787664152773042582810624954477255079572541278880791284047209250812054521663038359959068059844963482145017757809721633703265791530120749717411457043376636305381902810675845449588960496212554738981979953177348110583529525801362316051378204773621321365288460146644583234350027731439393656677888574540991542355383325291010885518910734543528736324898490104138940306069052131910703923437066244850252051058692852682422959717252287578524586606076672819283633018358899513268967348218490921370050850067053705430191082262302077310255287781017128851889815105735437290865115230279359316134906768888194359356329503904657645563710571783492347712407013715809338775446385052667465701493333054700718229276979987329112463391638568675605497032992582335033241472226019918277585225367829704541324406699163190144777370056993763256584369360055457049273461392497603868650107814142486241939371831644356718365120066542335257788634506015286936130608106502418964350154785551709402339814147715252624871812067912459118498220914295255528205145445189386561270493893684306594736127873433097255693408311494841662636950174416236010322056907465276194974810737490617044744366093373083000502021150142212215322913275996836224509598047096245742987052199598771088663435361763663106970778916272095965822208130590802015147814459099496271892925891765411327913988791147477323299304269740856938390336270778816919952705211487909686404638683055760503873652706244507841116233583253434351136887848293649816638335406475776496894503577347444622245470517107910163796690144487620363524030356706161875016276971799397585715669457225561115555937043230310300076457312777228454424816886674512541233753986779816520861455062075540977483622668310951624517337177538621116170231276846635801815400194323402819930601764142620188489054781655531853530380818079021919507521995346394380186702267470872076033843391650450821487798915104442969079974903001434660895083954583870914968664974594276764857330213435405501404871187209410681730749608912754348393679831620500329518462481263555739809722729383399368197843095772681338039734855732571461603582159177435867211344140690537014976425412865344678662814285784278272774886502813354429769366963687215584815534525833335639172542267750399644451909719352525788006166139386414358956520303849701852239304535208018233056703808065127872560865561627595262542542368520724105993287822982025778711551643632649017348068171719187026604057362520042084557365002308396050254957018930922460605317680441585537857019718772796022470212962665453911454812824128674256153714606808938785927577043032602251473501576079140166888114688780995904901314374686762996166793230407893278000009889501109235272191293293575740785681480956882115133265117650440011345278549497039297840472286832162483790378985573970508260192720059095274450849799115988956800659764962455256285419686067733067160636397226139995968293592046494285870005333630051762466319717018867415114326930278392303449853312257833802948664295695700544531633343698533607417751868983336641136028039230242513868421169711018057651998031283331875330377901318636027071300858836566494746453590578360791309181784421396842579389980268366743869622018780497603814897502870040986024264017398200748548271591470340882095163699755110061585222416332590728189479171406652279647671812686454510755271900253878164246702659849597329000904719900210808300360843751114004792114079894474606127756052522404804737854075165941622435960583111816206797329704372804401032861376886699096408130098314998950573968229325107887575344379234483785475777534995374826747697866749200171260314184198061301827191157694889349971390194710839743870842937523073700620812792767258626818150349982762479620659562459755178337788052613853475154683326991503228594249082679187367814123945967743188598802899279964489643373662149085088062434330427952464840265453038297861520075340520679944139155434221739874250794687008569959222172817529693733548957847262379327688693053924875840599181699646336266110885156621599340768883658519687512834023865619856385014137499260731301646653074303804346385956978043346965558895780764789014694523252385339123378101820967482105825372548112950610970212051895126562848190392671236168058321497893181722056950289477747734912821055590479893940962978011208339393371609514314470390282955328875485923078916187941943605485472807211144403721666954317554909055175915154966497410030255865701961492177680071802449313368511761122420887784090431578937184039762556035299395929412542543650909140720126512759327731581318067444595868241439407356870946837788618778414111031193104507779099903400991807948609986104521230736172766276616933805209176976392130433558347982634693838520364419003077109247455128013530056139014677658877196717437295891740786428830936401339423521762281532175432073680164688897168706133242172963137184747203550153271515984612896097061522007665285638093754509331153316019336166573603917894984815903521679303314364340162519511054537880580756508390802542640524057812418221866118761214720618899113852218516476725061070711511606230209438487222236700209812756950443327639658755025958225436055355872693747114399347540345095981923139568456103318631716157195398365694912082183897882708299463743152008274136987379354725502734006739577438977459354528395534898173502337694836819208537371846202151600800088260916977780701227488376335806822305605544880155837731199057763786131550104783415558525655345168736183993451065809462463555738414565443916426418149847689932499862493315879798101947055701947345414863454906906952842889095817093267979429980090214275200380423176679987301745339608597587984666366486296609944008547156723241281495234552179345098181569657667418358412979768292469891880654719617264399344242809815083118659006424929066453384921849227238890927121470581647251892240703825647335867851902064285531317812941718999592571531871040200610265791307550428251502886133993370586352395143714372440559758815561197103057839566834061823343312980545218837990866931675153875428636732854165079493993483799475748786308571932593442222813870490400348441670717508839940615624893381664261179846110649731730324293991031348715069296052748096546417471340193943121336897013435863141217674410355731854274224570539558572374982430830301931557934774956679360535961188876648954664865045407817816025381975961815421243410753569319910817371569480287702088099659225518466469443546383105555117328964274500494214322545748001702367688433979124094743179790983926470386874046221673024492239908443740498038295077536239632083086833946974075935744439345625531460872645541593488335023346157980715042419026114093596777832859676830821243941330543877366346215746289108155932188145772386143825984252027178856029389670388036414274775647098746307046332891812910140454681369958291869869516343541380318896774457758477719878017383434999338096327716927202153598195889670464297629647713011959215421213798289414359018619432594377918122398060848557705322606482404437503873895204245731384590490263010008418906617063548211003004579989488938630991410782571916153952716152752599455874674572453835380933542839391425234027917875562402536260459295308181005036768624354028443390960384813644028222644566843037298201919137655925456577308150858864799266157388611434462656620793686671712108091120001239799143203695320253214493125522409310322802515394803851808844988195806791800208663563346868212946382880422730106125054125077474364610789971546995434732071972910084011565567343980954541466472827349551410907196586312920427557853229952964123376379677386405137517900125334349055932219650966883384410052479032221374381842756743036609149794246698794958758586091415389902896665733795555285145630885043724230993631606629276289616644282394823297013525380018277329309080795830067802830403398349478476851860046462251865426158709166607277544998176680562994787099376895508215128249316166685717355435837422059671260125707727131376034024323754551980062991606251823253324693521227932761830329513250299042643161838955413315703943600617818897675002690309963717960056889112943333978965223213066038541394674484028483844564596737900463607054305471267005384300259812942594160919393011235913889682728454185494538371987503404967136402615425536708931537579810107091094392143980507716981441522628995307144769410396369370382573319297658596828315013664390509335086115317625827802727186929620136723109197338712343283588342630997538256105766488724361426689003348946811669342308687894901414025020893501118016080968725546977468496293195684771744067405937206333269331985964894331007550413787753672716017029396026721702105630429339132178697570550956633325276205574111834297576007966995779315182018601667079265614075106394607573702588458530668088794103913619613782134198893978711310732323430011261556299608495076956781170575548372438841884193449480154937625802804758329890518523745758830591134557505666435361187114841010392388613625926998428434871583826991673817268451685962147235742277398655669735816316721926894950565184727121408449252601697714731471512056263333930871915100074824903071879248781103299520889648149473385956696148523751864354860726219469389164546803326865948189775969135597255254890486540473531775589710911730922348524776160675029538640562613938524058043694312630012258608877745743099913821592122664830662926528412098556628341862356416444137868741021644603151572344022110487460188256266150219946240351775218279657072663436462948961119959436812272914710245474047208584163561368431424386837833293022172413072273078322708161527106804107472980758677952304763951614952306683844001797236096553664451054265033333615358849175989434780434899442249246352804986955973765818558340003978808551417799316801877286624138685251648693288513941506661266357323964287929815943092528869274995576430705787388843282089479554677044097283115529275482336759063793511369310585665387581313129461689314095993565666020897913662839155628210032443973952381726977916786551398346501460972070395762365004085646877513693217982620674294973032292992742860956322598068060560276145802268975415118152592700823267044080842031161730269490678785106205289080680882015697467516629795929921229823319231668532135312365776771623511105640175341803660795548175443955146039732380626122634366902494991067415231235740974069732267774311584979044506277585099860851095027366657895840560218865061031748656809040666248979681910405394809112529238583857315329478202892194015889479799118781520802096872750473834568100745910224840044215454866864978410905430735002939171708869228644014614834146610853345812779790534839534615031171078637093815853391462541454055575772685251446966961884818747124075822863159568903338755648092362893949800667037411789127217053369648118686556321195149909058778270309334479855992923905664559237294839246827577409778481791945320705038036133528099278698949612675808680303402867213306357952189816849293273416086295026599714981463118293798338852680607032460167538207860639751364665780380859459502419569964267813374148808767903095229421814055993225333816534343122952450535417004815864294908470001633047671258724832856932443917667795442869744730236018893220529725686542644034702284389624851621108926447887118411795568514767628945845987160040897342434348724541658610209193625445324153459987117696458824604957101471338367675689185620400680385859203228132659944740501747606279122495060137446313913086035771929490820980726526563104626060414418832391037194256424026506444797988028426913152234950895465229551777557789914079340293926360479641472548449023073614824106656185061394019908907616554122521727444395716616155748174174973385847567447219186477388285757841808673522374199933002072756727561650077907608131353869523877300694741069174862894361023825554250120432842542467920243839002872481801016632179211085181593102726891943051187214639365176670038071570311523714546975762524166793840806801082961545843293029673643635162743486258736380132632017464575913911261440173466907471591851983971158938702642558353475580840068781308312056645075605316393751038886792259538224306808334656043625877950179096614231001508558459769953917549470584597955816391126482118565988529686668618654831813938299345471514249334378384837815044580496888965532281824908301606104002117813313546663231755315421795878850971898666436617024286133815540905280314711428641710042450276651069360168012066553699161074747310177669176816929526065730957263378024202819211632030181882543691433710188205110115397885806552789036077263343828047127065448736084059765125205579391854703834033170530220799141927943735618917489958744443750276799575720785820601541499942906816702278130810858743476933704894107971879951457071282461765684876009070808801777526022523399152049341960972563916574195859564723850392379601430123785389476277043304986564743525370173236283314618528292731337286528213953790739021286254115207075389296255616685397040753508989367315460819229067895688390539094291030567984257974062763444173457179435502289859020333762466999550532645127438597590812934143314545143915483675692991867536158042439699294041558219792222451994627943792254220936327521151049113203887443794749332938599077306303470484890811196466511745133467013195218709965191714278660002703578703854169867736248621866847004340556716096714356343152864330947725656608907041348542672680362063535856002645540596865154699467279171066557488576569692104028402868031212363791579045259409942155865810693947933340368827710207447439588163053081369516272079849245758638612667117338885633061932286486398697495620462267980447740299608147937291741656736804139384164637135725906691599766444135360896687720369230039553689947639895420940481161055503240773732559393459423122715107413768628914103477599946326877912082674981957154241173795094643006656474043715237798162813505660669888498545878160576026111929128292696770506449955184093387758567051953355339318189232839893502685951153015736789255448018805131715996305269629350993609985275693641970480828343446632196523170452331127262501873620455711971090285697418515928581543503567486255173566655419053680624967034239078029209742781297429811816432392032946284668057523734936418306530320489775718001731806404162492424360440089699887101616464376074080409746943466410959087366023501600812504869690005016106224961780497399164418954334028385527546266359365626236481207089185679454266690446830933796697780906637739260514401128820482526955345959894741995594700726165879056366461780386012132001084309037351119396447307040339204868506255106315675754356062320622042446557450648563557891708545527667526843238523953018696551702951684348669060007437461770656196669666953409393849011423214851393481150639973790234762949833349932938994247105379564728489242556424952062653476151539642645683695071693009456079529335397904559775713322586544615612266891728739897833118451615267149694541253942941704572338822709673460033539405258986329654760388315872712354525479371129284678346005829716497135468613235638894021566543310342693940851047003371103694131722296342675790629444650279500459900560826977046686074185553280527079356247505721701222020239825697316764041340405088344214609694624364027889771893530654936097752010713683513420567629882445164108251660252708747736976688821686166023227810564248826383302408765842469898861302800447708408934833832993822789308720394468519055673707409866092309042329456143411412790942173477743024930672861322134824367834526969993771561845837216500446162765270822897858109776054473295272224080235848260635725775025473603361115926514492587717746436973450803639121681205744917935252616945555872407169568819359871151945521974514388438173358660085517603174257114147317588564372081689446463473414846065383399101128356806715467759005546393236115098858406574313438107393447545251729593216415378560588464741652119888368914607875068825787284700880328318601729655256357703706878291262703589053536792632272162202802071859252984878478463681962926160826737305454202174274835883314664272815810300386481903172978499872717065301911026576505029620344772598436466970066451243754039926397738364206663773487196905739738646980707902757132331486199124821502967896069385418978008144405489094178922204797005707513279412824879919241281673299425742005111076954282355824833888696233055393529847705460765683047065528085930287010491673843711379402047387453460062075779948920855463920420951180617887442279659983965456144932848809982079683922970548673418834312430862311594813843942537322293761514575440142608702281671049311716694480416673086792581455967842238841513558810624713837724106019555638896135232259662179885001670182874441670897198056700312881876256783418800723050424801295383500636149719888302691351885536586299707453072447454657728495971813043082702145188160498925175519212097787706069259747965880663428459853922971596025294950135819015373676013489869907774056991486691586179463588447871273637129309976684194163262972233490004245918695140627750632226850281836831910661379157489998168978685472026901388567403982910009733329616093856043856704073581111670711836404497308242872196441546345756058224667033568856097721477826981911868352550068040155958700567447451836313030201278649506023362583839465427662543577359705602014422692247438807499446900245060883721252580804718863975906223101815723808466981443486651568616896433227874042109347824137786056205287273336712630279047349577504997199419008631702422760375547149378725833877105099956595854566693121071871164952494741208390537748368427684641373195954326111706966214924389757900034737588222380060927461594724119327627934278965464390398787400612219235680394057791534945491841090646123414220664766276770880870212284098318390072796392451616337294317413106121704196864486546460887468645700582835517753710957437556480397360097352390681567207493141287586520564588034089853157479518688117575009075662991824924624943167854451795415472607651216017090063221730990807326025909621620655726611551116243782871794681703915324721081049868545766369038383113386859710244393304168464639091248634127306487462239470746105856083300737581420314182554758903812781810240365094462987156534732147102988162137417670341068745742844151503821659833424526819306593321723074476541122233843404150361190860245870029658764793932179231364425968392273478055759596288075993987647329414890028793421961404200752580908773640358644023869428022607684732311581764838359268415574385236575785750309379732070511530364132099700255254358660383920895511263652932252248431570273234705060687287858350645044414643901775913725313553798475236578109656335975522543048920433499946132762481408271459133958136245709799889362604831413036556341701067727426328601394036538640003189027590254105021253398594436108716635523394005765760138668306779699816018699646734955034332549826341279482238902342373278438178452895674888365495219708963337892557677495801398456572897189963196533252323568164176448716346392182685110769773054645940644110144410789975749568154730518530227995759171092889775395349567637218910428320584927930097987690031079874319914307473992657298539447506184517122699827793392932015029751753747230910941206111182161177748980578093848140421504456338817275549595033074769253745109824710487697785835324991853402579373434104017189716605574344568675815348609011978663423395052909128242272445499951186727858529956732954150965422714344763504427944200979101649286183865220003145705465702434461853037773309693438598011236751173918732575403676845904160763187395067171054785452972644317022838274279381685803445474816090297003830870442016296330671335997966038714592435877365107351728730159658603535754837169932863464211205764005831309766510369790724976923004283727158778750057978850588833278937506121217662235128345857560160463950594081492166534617565915823191029272547074968878633879091369467110761309246093475080024931036954863371025184538690041982997719260224760719028714331468560909874411274967303511742997990031094240811860911383444882156984396481268617833163179136317817048219190139333317591682280557066889386869272215299099645680100244563417937389346142284955988108002973431864273057881629078975021752394790673541576679971029443505301575929474343637042957957726768850716271771430180067622396400102529755690869940379753025372323468659387156977038802759508304687982671812509192984184951679100907486668088115929845250048603383927548387338277577127422540858969688037910768072383425724848472108280400667277592430794206006198515686945905461122909571946801442985409709472631316349737249379040079537408341146383955846883083709672323642014424762297056643227048673356543771428360619661798441973530953090995982111796593190009434395613016706986140447699451702792645210240891442048421714987872755654670478597111617913854604690848075401487726140860489449487742475718579758407611818453940229078486017085239111181334458615478933442807071737784958786856897177435264804191698648997377565032779988476868160428529316094974716734772652150153256322667265586539824106253411849182127351114965930771077120444400703295239122777209161321716533181864102075880468896259431491840037103824614675416303535269450078274264231440806965484089536679778854455646717802135302560541919059193131153910982366766432312801722276578298624396615216142953646721265453919771431047511387230914069309852188983331510409116948792181782332329203977052573252948407974996316013994937048494774395412837390887528259580099303321405550426574543467274178765284120845446707300596452576564710728012803519603031287140980204417239303953002844395907308456887415341186711133078036113543986101480587741573201749432183979969208081499268941739460735725266365203067675727739952411804942653337352385411848195302328213001980933693897200822313876525189201216396684500305366138902602826229720487173198435458226726201941961388032350326717754890073436107608223806848411990827106532721358833075413511495548192043667585764401992074070506079855416339926252122685655210202366981116579335382805547383798750010551012974787674624075128396444410543925718856977034441381436156348785915815679726369615600803903877300477287655202257860735874639516608431215334884049780179120987129173599068062029514739929735958481133251345612807470011005827723691196853516573439809220397710453439796957454400191844192714270179818742972458441721679499614897392366384513079818460481139432300897036827739183146874177439243592795494020623965132184352630677740164498093299479215742164219138024044845978869614141023835109581303422650783646256621296846013571847641806986005942547348288711361721913167717654510265109685624482748786057878343093947508664958849516235667056657051144292178673903047891047335096767371096384634033781168242756760435703320857731037751520385582034781919585737824313230193523572456349670051228452633174088920427482780274181328754969171596657689888760637137788922585192546955217718087245889213734597720925559926186989593779927701258563238613795917410493280371247764853590410104857496311720454782257272185630757561405711136358531088792252342097914127050044739308826767725202394526103564751356892867369548916867112029201897173219835599129484323090852857586175089557229847624830903403344213241049112416337196747458185901055340188442429767208345182006794110227908998194928659407302854218431190277761082948578834081767699490833474742389158869906615980573796765319042619685157569610062813088227115882288542563862710822523528164199121455362035187742177991798958140091540314917146534727903688216452461734653500076946521286619565293222581075869137945870826448303367631763681374617222973903443941930927097592868946371992024461777638920642247197891476166896144721788856854719461251168919615725952359683261526275576599151835908105494914640375426808454845953542643811642287844491977896757027562422633071093344083042601630504083245090103304708719865256741806780792779817895657590311190112399382327602693568018808537289048450517982857399203868985040353882397128438153510662713750361783643139350599335356011975985319416507523306962244832282449544514304471544782335651749197723214505915659352304779821197096120041537182636476600604507632271790513279907303965170099067859952212583371682302187999854221820970915016556337198096639397708304232320028473165717487066757378426635092264891614877259637758888781594927957322371947953465414164362641694320986263653400179418593161053988206012770640301080495080574696529140316232331604968996941892976127103634749793198911543543476615443335948957075363868135395427526619568145272781814969545829031418324977517750209582076910399241953714306637834545347940761853424017149637121327848297396781335413796748209153567329108260432985378303302392541307585547267622924717264175649388593238640172722199957014146004182671577784696815566336456789609517779121922425964223649866811129697804825260905116609623883717929657326817462936731119095510915928494428387584929860434716894647997242306948105666144127504127896714438547720962337276932166745972084184489934869710085771512952078791240480691005684136084448780979629054254541497151343259054567225106030357645146454001262377733643770331783419121816373905862865742792824500806710261083381317376109098526276924046658991371843328160842428231118581664990247846262284336489505854701900913239992068789560608118616571395710492346937131839127638241964475753720269761832769404233594581099671295124329317228307455165044039370339086216536134727434891346736681645990791297307691331028085881296604851070532049060133155030028809382010653479684648947380843443940112737876430053341523432366321367559256325871444294413588207786065203799833277045223304434654997626903553907749192519198233629412433676541618321922208895758159873709038248933958035629477433068397001317940090658599223682892703292405112962599243864727703124587299948523084806812260817831945100067024512288233498264336228064619735640380576990224389282075349514320880771897976644048501438801722235253350355880883530001475283200732184280001796455187748807640984594408742391531042696473574039298365773860599780516766424255129028485129453852461522321966352880782204881799043079542229591312613935193747096095280008460912497088770863028158486754863116510374692905218439151081932096606718091749473797731068023115694071749209037627823630082940580641320306563250705391106626339676577628110320431767362824076027435243951590174596598297741878399337034560591406173287822957703413810723126452265080439341637562280627773599325772680112254880169825198663734233806892452500125902509234222971515388581749545150179113370434169515538722448937447593333101725574569488765056004066661289302938316238394944612291343335772321781236329820843375346459633008086240488987356156823842182500841519218145254048915872708144637782202868438134544784167324383465567446079271558417651111503108827550877509178844469483404995023928348575233768578156167695703178584101311347022302104118703684630637458658345160843843531284646330231237277145602597369273772033871276965253552903936099721541660180168667734728001906764419339367518041055551634965866585696147838347535664912630613185229413597424806468338563229640998417134789031860235673179058090683773027737880866657415528268263803157779767505599907805200635925044131185426992733271076845409210528142611113972319898287833208525024692615585800886903512816610542257774853915074877601005421828023664657086265707203450172006931640413927656855407814718267935107009857867860363301112417290484258022036792626125916593043306157367501563862955892426502464658061811101066510241146496321470762496526080164259415215290807769106573611837141828927097532194906261854447446013516004430866423041263411870065311993249461596910140878473142541576709465821090876293631882396054915940256523582331157857757434756946127905918677163869083811601351089818945442831958780949673037377125603603609308405716046713027727077408499863584065497430051118680651498107857213239520837765826143348119673980304558539369101500574410150965532491872182469485463148182741361930882237981660702945997671824276717385454105190722152995754340343602291899019097879502614779927753155186875561976952179235482791589547388521184219978204620951980997911295601625378607243250559893772678276780355765932556514730725135465206568549219162207378920980219567381567014229332531464877950946161237190478533391972848116874412561058188177013590587106381049492409860327835261373004551603276859238782606574479783395705827259133281543371548199936628918525827035443494176442327711307076572527918108124935806407883729777907538692841021951616924195368117823333765681455163885941975600629112530449881193982477443922394825804881836771676531428942720102644863581613817068349266279944592499198363506132928079755654847988351021905104580387100680311723289099122179699204437494575559686608276394824905227359170499908155917410244496780736148563975927210548556738136995214656213096439785605382482653978847034026967739979036772624248768429138194868724742826158823421896147725102830134863999665416173218372425432495145334389516704778013330184135964066118517701650211711331258448221269203531301121966764270991029794650393463415525051641011880096569389679185462719792942736991217849626417471741926819638447692918645698269996164694606766113193166174494052311147699769438605603372783272712642319129367323295098172150765313713639291264608591597926887511800651445316701042429835244100983891978704310076927046679540299223094137016646523137491438008088276988331590834822822664077319954262647561679612069388080358853142083166729303636332281448354001193763115727016979466803343784411928212080810593852818954119191133696765342614501619784490918049121437583341008792857244882665348937692378889721729058590875989346385663966246806594892258994568880233121624315855394000222628329154183778608898678863457587265163497992284149914055475999701669193564438242000202392915436915126437980770509216471290577583447614444019589177594026426459264321748793139297740018292245678272527025970946837034748681773281915259564886317995281701688168711511671552845236459279082539206186127482058488187140775761711543693638733930090461419036536516853542677551160028761031571922522638658693605090706430801086955986122063486139017343742228007928476846880743862149179270046714511969594090401474057193293313016830348380734941792507420975318318203403044332491544802076219915334153147312077349113221290492690216810104711602782447379596165527355965655738742113271276161126556905329171046654984848258186378283299549766969792442542785585684510472227912991945592747845837040267556406174005064696511233163450987782762622825612657173663716827691681274629514321384457913139422719118190352818789060526699855536258342939654962614973026177509403698086287078792468487561238408224071131315295082310998484282227818336662352837429867858770214993241886542288879108773300423909632249663958751345533108588610106052586677750617659061193390094405223531442371405976751494546545933936034145096910108536266013760421590429783110616104388116179292100388094457894448568726762185701157122930874156393925517977141737555274499377033015080950501943312184596291215233044467276380274182635098446745050022656694986529041199379584427041380328782024209585268043863721750439823911610799825837907218986483778273516196738509578396515131318724661674846094654055483805104157145847596334796835439181116173168095801838261574667293558173222078562145616778061704319084512998825284259866431517245127722937705397985533795015924514035040233602307437531591356014757698284466149088898576890491505121890513772692075543734672285807525928893050443121792830295861419940325892095163262323019327700469580991316434552491786370133749237151664857045911482344965980874450198905847171555436444811522195831882515657733910317029070611248733904142291040641664732273902376388450369465951258523933250444364486343298098480423075633046443557613942469179986517580284340372263509674091320774186870743463290153655947573039408672892912749553213235225332538992534931104233807064669373183476371390221610344776883794659432758377500554948787650204817353599183813614410110656364461903337013969270629597927975853315489287610198023512038950320822223972592320252880871615691029990326928384529876691350064727656127567057335318128841371043690615075361634531732389387014591432268228260491414992132272869377268879632979076527744365108079666275334440716183599770737279578595715916728660076233310966701280149970010554688141616715802855342809228494994106613146764079140281811667089518507738252272823585236290130022655829241112994478744594058296550161766644669026356816262173084445562322020324637783139229512495820676239329488700799723534633340902187503361339605726383063671069534376441567045115320709481402285136408233819685579776134381490443360422544092688765695407754076464684817792786569923545428251785907894669526891112815454850860246045624985545780507959749314866866978540419035007681979468089457593685661877611677455568892990598072041524778443833873686576274114475251000210519798099460476057223012941959679943752566396491036912332496640058852079503189198073492830890631329011580866780550179415191807583741197457273800475100043969219368840061417488356124643020213841118476872217736292357513962309396605388304179242185348652912146405046607521642664918651302376666187394123178043027296363119256140164257127105825247462889381535970066635265038550997901468708075724989327165850317628979058054728232972273544970583484172093769783700382236003467447378883648751329628362733779961795778939688910233836824434283476045724650531487638104339765372239746820128386349312849423607834895851227196484444864252125669787694164232880133788064037663987335648020077593203893703140108129598700328182006450698571435481427388883244046577113726594680262660432270409139395574400569377973375349072556399249845856089580294657721892032807538490749675575962567882997237580689994153351141753586461026036726354929479034523574565334264416102148760291122035733355438553410473564387985360687457975082397310747940168106585434171298086667723597333453963397302051867718077691524675722913777282685292619902511072253805090027870735475940479472457232459503031876963344895686702281623772956308621573448855151146724220810938413304785705454298013526791363200068098600572347420042095662402896475418834436782501009915780900382736028385967069829080165708031418856306765871017483254867501694169855667976972952148880084098842051485424132348115166294711406264178499114677226337761546948099206401636876699752236825498449524774199955357567410415432995523358835546389034293359081319730154141008804590700395220745694241509667288378197180386282507731468231525724491658312812354463884194558631466176964808859362532670082169220403373563477251774481908145332429436105954745622534284307593920534761469265284276548116513194990205343912987973584179849673666950240652842254525643607426060558506390275885999353641026156116768827270324573709933168183413065764350222200454472819215840197868799030231142087224257057478480072430477895680732180718338899246213924687235887165250800988758987691852261808253630947230641119300727238091544759626127529706621719155049002193526134326400490568265193639821917019361424727874611353621778477851043201577522881437371516177097217975623149382628201840331310389541413288565890563278812312537893772225890958581946595618071669340367518816224199458364260850844405874047215408916381240472234813121801373338012210449869114652419884579273320867099918385488121090860475639622805328805833710311369905677617082693151348592444669241453573059784631330234480312063460451186451131417414691120994455984372405060170029859262474053012562290284799415100497559239268717362560434316118626092848651782572739953444139997281924106478447611216407305327385589117834804656933062060267421486651552833943351040603062525978100563181396173279075157227504809784850806844299738711674233965235883185102810715667061113068026795734613002547017710851494134871477663714934118812437688885864018800837449873067409011940510916521658389142198385960270407820987574201305672646378113506553381317529138362625427249452241033672881080590863215881466653488059439581898679034176259067400712992697103933601374258844918294539931695068753818357944898697416390878654810626306794331285555875781665706691240856153517010952899383265402643843671723114379508113001816002290761485632255189048939752923940687437593660690584118804975119196526678253847516574153956113525578690129464204470887250094024242207551734175704219879806902209154233188728049091950269661645203391075457676079880003753460820554391587220889126443506030255196110505151255973725528439970726610522091743446073376281888300284713568682770368144555914077209785695196887768236646880331641937902768523214726222676656962675668979568302296753536726570480095504657753934788924483103314939360580543684912276235830875858874117916998003702677383734406962110491684171795195116502617752154749823663515373299414691910605386910906075616404456690009671083254358924902955333120877993668170579393422007572944359472605545512155988405939971396924468259009881730548537214851168919237461965618955954119410374134487231940007911913970632066449030510690853340662765013652945681714715567480947113822532185448268537021438747590513543666515949074355982312796940168217441386443824677831001091264395295357143588014090500958259904199755780638334319303688771366697357361400140580624183791046843548796495863559833396381325036393218620543316610951681165411096860979424568514144611150596281056052791297798572892074385355353567437012572924364053761774467027546286148511563330003006018394575522639598594552283160431051122422800569431256467024860394839841225857386211479056658338689861083169415047267545858752533308632506083711151367478425729587515708671354314662967229814474565337258421050023852562130872348214180394579673968087440998856866877554129403903930439656404135874393482903931958203378373076921199338913814213938097466324997051889683368808680369105666613711510328074711625713621250211778004916336565538145322204809703849968831020449650914775108908706859420207280159739679774859369446357094196297026148107204870860615275815894463580724205945268572938012133825982673625428989098608201193507792177582724564215607643394311815360445663869071471532829536247556761860628243856100366460423825807518577344912826895911494382804228938908833069106871504228195657026865343595025822995341159286008532061878324422601965533915557748089371466603507009147692058182471906238848949637283387822995191712843068772761355707071398240002130555884921999150477643592873815044867451066283160196030378745980252301329933843016851783003989934381973254608243726466850234417145824328963729487059139974019315837341453080276380259948244322416548744349415123660063327522549116386734934311727982752394079157867297727788365679378624873651615335283376563406548924174041120916413913571034824929227192685313359355841970929105861589965739936946577225651270168786674501758745662951445096582708126582419871917157583602385253991150540205432481872046903501131025821418219855972340192372619373708118470678967564553542365253499766897569201542939735298796979191002147190168972844599406812494631402180255714184514424671563365950233522671175945256202150267785917944141467036895895581954801387250430079759265729554147152495737359316802265327899581008756493399339052440679617435425998611398019476395512589229200797176703359091647079606773833113020612028838056124994844715415345805589765977289841994403344324756979126786079982762864465596812300948335171419077415394618236558196513886177166368802878185532552854388763546375051334362199147611483913806589082421190320887835183396612802386683419775042909577793682609731878271620439181637934118695927692075724741853114492011411432910189381017543768326514568698132246086468384568447728784527086831566974374836337405982292828037522779118583178252559958011980165006879660080449500304670597329475154366053916021479570475109447712303441019595214311476399626897025545757029094689893196222794470274654344841854814102369204200228368688958665590990455056701330202386989536234047385368610381075163660092536462274508233361590023438776780375503651031261085772916585038666906620715688964922265857256012816213834959323218894872382647624058575080321148569275069967377065345466458162472431366816723834742193564780776393870494524249413574443330617298783766134904505045432169170127415086653488539550322688395529689194651209758428562870396420882453055409960184348341509317871760342498238798756723701368530364224422256514608561651385347312042025070497784541167689472284833130459149669771850219675734548974989229496688565489376988457829408072920332628567305466987361875333658591279709862779518336622863956862765765200035171982212278914550331801894300851503821975429281802459863556779711818579200178209344223249611998335474851723360771778124856315979864809517124679156629671908311080460520409263303137410802481511498596683827072798283364356813904006536584026650313620489811748888448757459807598309252841053958118688487421605762993077007297156342075012227944639676367496666365821471886227245879788526669414316094568363305401525640247912486354685911039903734075999492457493615682711295456665923383330764541514458042794934753262059878664006774929285447394295950547340128118099498892863551824349309673681606443471649774877715537847042169331557603883892876287575362112156425942867182890811417088637256208370287463364467338570390640572709919463470365715009914081581274396789295485166408191572356901780251976187696474126471951521348376201824303666310829094088281733356551828262241473764366785694162267202622994822860179372491327823802953990834246333172876923031067779886473538158089468887903478819060713494755987656472350009057470785683107351839355463735730992513393536378466149272998917569814316197248056251064158954225083544624704023215050649988155006365534986418454507584564725988064751032906782268068139813914422917330912846330562026468559027065176761451808081543513077803855085346840852879913637433210653167776829406403890174903911572841322183682064389583256367321722670771884350269927494431458899186919512427591190630134954343873772139811646244106342080903459865129775003715920216696391140046046132549729686360421452712526369680926400971101817074010519510323902903542094597990011140626030464106259978270193833033242538154884851720147059662102033479080474384121720339756700279830217388455020938602799449151023688079604722468888391640914878666807858725104962271263389943369595852386193905327470784028499284472402757963577663691618615253118726618404935101342593857748425530825571711582844404351016900410515375112495966983533146431520939674096910948105417868775205785368563086045022451326119461295046425776888238656563992540210605468895193160724802832075102157837302383307881410552809684215783919098337448049113102149052963117505115061754961159179176521438444788798544158484205325856306392125778475199351736313095452171181229574927464922158803653958890386398525418593428377593853721955679292885358082272685246651509598824657616574191201087532684496078470259640954018166333587162919657119636468838740979377484132653709120401277302443199045523716010222286064215819680146862413821321223454050312222487084493591311184693864153141954544279107942229004770507654808782531424818934753305460795853454729537349114289858645999386184185179363033375047564470935260016180787431646894631422454470521271184430713260018236928776751900643839853511871996208028826852552453522891478908160971611940671894766726552980959781036005441210669814447121040324484169357383570788098718860367616975336812965294752339335096324824460598006531023142180913662968828342851100964191919128456309970281473737153945059420649950660764886527934068012895893018701115759152701966069381311794727171360096870160310493289653714199683724773172055737462393737364569535814470407410500869765005157659684976988322131181793830453916358476262300997900994673543631625328020564397310089284089831264603754320711788571375849169821366700713324005094554847870083977478720948058753346427245160464946122372160677016297539388612960258737430557670987674131232653389013854795205686119045373669982901955157899216803615914914023701775263045968192277567146984485211968276861135505147353178117971582347161243501452566843964202312031541700966367926827524445078767610284837852354779510664821640166952924994617880869349829336314199991351970325668589218489323934484567442974401861861789610608896156477871252145695190807342861257154980276946855845812345332301662527840803464309295255583810585241336889732171522766405004950434585706604407889987355421564382799662111931604355417934696235903848227687320980083200989545278239306156252282062125119655727789772090774038354271094042662089191441624708558456676174959948156112508123519238481241120180276888135537955668602069418096737990562216898022471771775813857388288320673183398425303577027477835264070479188046789784345406785093495864852327269768022774869990317421141763255856690437440221747722434508431158161751627937250508479139739732524284878816621933796217463123831375375356133535627466988368793216403141095342774465103047874056607022273765315442962683805763631094335563325342321965234034200362662164283863529599405036996134853082635112305422798800848903420705641044013335178879297262998367133583154033100568425757989256311592995622583319425580280902593908655051304647123388859650564594420400848845678951001916537056614272155340897682105243913474298930909683506661551261209001543988914058598263710977410853149859221291851680337688771539013834251179112737436213884075851001321338950004241739641913305368041718352768155976441428001927583225091379612815688791699427234710288371222345620915703904273024917095091736278080619125981225287946806407494709473776141775977216568154094196939883025178568254136291694403830403473398793073680344425942098047973969193833852946714183336414472334204913215254781735620108396038492335468984995780520546407671858812534708709424822924292522740662915226583035317951351543283829671092646928849000200505218239688470542882845348932142540989572405039981527349961960646721299976031515526686096522957422945934923039856832490945262162656309720252292823600362738530036407853736081820222747090614227778999987418272545656258246144627954299029871410546137308441615709846061620896432343955215580110818457907289151841441858040482819949503420160147229115627333798869069976509621531614386825795701153052756260836820385098366580357756452477160670092470870421556636524407552979484522112669941302475272489317606066301132529531616714433665709260476440800849715817513777903259225439746016963249248874957103839406625670766764218934119041781134818050944816505777982223158767227392300935805005094561828363449732458266711596639814851485120130384674021586840254058274633571801620587155684881379947868354222803289478239590564324957710758531319124174738344042048280910886555577896236699427086009995493764628233623260085706605163218164249634715099369699775422625024476874692567125342443129092481868405050005439845524322899579615578792402707415041573255249233569749736020622875593112335944974755698570711521841369696513406712219591125156888255939854305367776519816458166168156717778270900523055327573270285376327024850178032178058589863707894871524994894119412316167584746863858438980631042189852061226807246730277005837819200472933076172604273651793820876699928155115428370003332011500250834480077567028330010209688348224402482751318277850338445591279274526050172241875496575613981399258077389247437285410393013504218972910575132570661989178445815699243695712764600018403647650308571329039144697006527541802055026829719719635345385820056638482694206094446840836209157485441555127315596290296820445309470769298850370216659142685000831761980437046658692282257050124312399346369046120994409781678358629671840951067924441454791388399905613125387386657018405245481586696015070916553690441130558987687571615125428290122333624821874130533982756496063716815997650965809059456250838109313777917258107133967350680549836055793024713129299444674463816673371772071861738788795855650412438193433547076068626701802937959045059488652456085842754140630415545187800766064789085823411290309424234136500992874057149280893255986122121285341065700982470395521785267522162077660246939942228459878592984605868374280012034738654305459066421577449594391321351407559038958572736645993784941385040454221869208968879298391748621840254736713742147903856641158082794965611940721543154305626784070565278021502985282034645235602266830015107005040917693431957328369998405305563471108212696985991977764038832603870988732302949529590246899576884015172714321830890700393485057573765818929787469321043533298500150156118087024543720781688406027251858060135281418404380071771729571012627406827996351364231884673404308938101327155973987825232981379710615535061353267188144033702735175183427333813433348144636561188568234205426865202354156619458689023961516899766472770342896050402164571319774409536908938294304629467843191616690856342881332921650774663486596313272286867718890609133756432933823888199692861533758992533903915566257604582696195463707654938265914733213114178009522666570071433428923054618616784379576695905267258918315547334551803215946656112159959652313747276125060942934563260848088557637957465708287972499196378701661281416404823367180900202245624239971968213891032224804289365022495590672492845905647786120683387578692253282642978647933341147253317815405986691431114920832223710317708256346234864563811847538026741176628108129199743768883462243165909886363583353026676554814466945862009014378873685636781162387420927784750154419454066752242734209509731457062360231477399748084991242644855976144059228453940910395331559131983721347337119434571361477253457696056995134422171991188169065929553974955977601307846054321254809093447099899529882196886563830899869730523270718518683536799977052391612564537744474356774370005880092773010923092299348748569011846851673928908464870989018411723144265614109720381748111506140473467761687446465964676903011354574185447827741582701945862511561122889434867118617338132566007270456982953622981501676958132133761604775123676163873687001569426738582422096878262398400334156447050985800265393538569812479202102339264950915043475567290179083765531639414331759555924017725283957643425972301514024499256330451480895809621835545312154864944721528373846912967852615018063535563179085181547556942896455838708815061160041537988304125976139738627755038643663433709541834805720310536239288192352606326691328959515197488154149921480753508740673208009179590298417006816779277649070090738523945713027829844941742209423150746103376795635093838925825801839542052589975546660936269445801352995513153153546227841369102005767078812715511075891490098786314629250801389653526308739966225886287620332237913577845124122827894029705690727642362112118551364733912013078621320758395721254521941463407959258459683266789848999610292981132707830526252856202984021813258365326090813862829424765708280562395371793320882177623520578704671874238276812960542115721917830358055067000762159218355803909394299553487211803038843391555333171203745295250384128159932248397118923516172492286169329553311417948659167402139703582977474546700754696903529819540515151533919745056356722315765223375999897347300971720946528193661385643902800425815846510550261184605281464154801867449477479060367179694744235199290593293459943975071475656225234343540307457125289751163828592307705321623399335583097201847297169641845962400931770038085804157992549097735850237704413639177479791544194992490805742479601799388178458155010192616821885117756540157591005202086755834288863229044837651480782359730936360422588099991654338182297025097213252115617202015452461263013918598507867338539581625347324683642773092075344252650090202119903327647497735168134066368848119980600315339221263635644974279246339760862186177417029017978005081334347318315287561489812989081140659929352930870587434765915035440252127739042627981336115138079019752433714906567377234289975718124386647854171909385592599669962265351064942302710128951463164724460957715859684203966295806240168484982020821818747384627778105188957482019304955383935392897133870303757245349466302465800373439054203621894344068842627757861377444724678639203379137738516280121940713153638829501774608951374232184310313191626193971565781959226029687170060444262627082129034248976375708831476984742027575693726995117552856634478674945216770316378304596894104773710989398258981041179862031594245577540984825213997304522384371251202284381432580369188606471677143436260047658094927957453828124876831520721314903437417939826019826687936710626908368405401031437935356640458938904473490245964801400063922696762146530012783905262522559205719612914239267800690408865352270473426578517414926499441489725900000606746544255525281990772186906032724369635256318047491659614580302904907377394646160282913630948625120175593697556335907465713841800037990135299336286177799283531457186063055366558588996957297763013843350575170176892356127994707448004183889127698785956004473577155760432081095360603885105649644362199976476147683946871619259823727109072949973459660255976367168186612802548271025259890269939474220845675880182736672359400421697293479941390138023019509727646612773731794082233310668403208988687717414042388734634243949776932477961056468803772626563792711485213373283280002328364697188449841854846108848863091042243032037951462571057867438714676456928008797041427421691021894224737814114512412066821444018711992831454912622992772618018760345600131011182229710353524496861706579090741596880307661922247968200633195969510120927686206798356272587834345184421991133748196536724414053327975976944961248135591756230449713230720537040384331578030053947581692548234527384380745331644587806242274321234119579235779924291104203057132817699005623350453619479506168954944535482767759499335269977457358449425874276030406502632484608660447484274521358093572091650862822103253577335244145992340552289773689573205130307154583721993556260925146804773721698557039487725608585856224446184657045659279992678966369310739727423948328567257859039003742811822252537063870534617389271693504502621052519741700885362244214135240859256903715195333722906432417081971981995048313129741307159264307484509700655716013723723892740068405324613259086237250492411537359691589681900361920711635849071763831102427103658691544981044811440550427114015577137315385441235397709309903970822136274944280004418176911477373599800622575089930490761265500002019333405507595809210731481290525873509824617171736824437987393684241230697491418068214363614152581326530273069214257955233630864369699903222331346175993571169819992851385728254604760669973135657553981207053262338879519117646271712688786219460757854087331020545700887390720224553140400042417197676569694933457420134456045855594958644164049513111972391618624013454377574746807997275782643197345179963573209006178849673266298912146791189665994079442915052837035458278281061332055836498546447709901465479310815948852343636504538309481400676648035613196762097405356911532419986566047941365298262020530067330832592005763682685670217425171781947175100408836671562126628577565077841477545206442667703793087779339336126856743521422776023317231169191103310080066081362138726250207768622758710544686332728525542186889908963695878371288670180777107846538172719667698811401363052728513052528099302742962993829786072799273466136412502209463765158509768290136828455738142413218204157277348126251106933171471254693948780563077933766810752370701257983370031380413594861574979563505366584237447426725180701367445489296571996897436467920040494978047689676864655146560390425472188447294996808929380795287044766252424170944884317804847108532158594054299659895897443811866858185465508837922560519695205796984080718133662161326395369413123513769571601253126956131849880517285240612011505992276755321843913152398111886053942764857946466501278200101748503775534253051420622189564258205666206376402804687891665898507897989815333631029797324231835459898049553702638787817593056103248242715166147419623687993097665870668359469467286572045111258800015485694497967902733839446181392423280875040288825253248979914098421104948920763534560702740657983865295119648130691660549961817476822002304991556494262443097813613578933415156699373308118588389715320929172726699661633183663435796092610598006143362423879384062949953478738707343226523458892724686535132514009400952791860312611130044560431941338987826430034426157171996537022440413196061972064957153298569384781641153304348087959449414324184894197224815112109022557175086584397258707111103256100263420276894934503303037473200029454145340651575813509596184691117830177020541007205860216835988372740446162579028908174283340594637740038592313206033691887893622464129600750695981121389772875791535604005565696967515203324124391811559162271041405294563368904304595582986075955366888392288383979072841899790063197403161545607090744169916166160218729069404536312143140723601510200809102056852878195296899028634780334014741832459402203356449373618888574452592261152570069093189191283995843302917668711057655138649381194963818425914042680954314458162187676060158015280991040267623800483444415829081699109338223756378491544054744643580468703813055171114858954858126170874966777326521664244487459273164381312646535716824319248959386064502197906854745611872681338652769688891872761295622564511035702348280565478460530243637154363523985987860337292432992493893624456070840999634936028029114701881704412000414643241892782245304700370379872091218404834523000632775811847288200373651129161937494114416826669794525224734757540667033063623850680417538702615190747016976014504482119925460209996014491694307330632216291053659442428426191756214270672760918665086596039492618651930011294036409574671013057496438862654772616192506645260415358801676233074071117862055012789720013209425103098320635069672440163573161556221247373868151932127962566017354765473967471349358140190005867383508054601510179803214370454129925675805759817555740519092637097938035027770707429432814613514004088252364830002172011240651513648926720248389992590087213751677031955158797549891314995697631565572025695347236712525871980777031139296264889261774464841368937806826277891733484151732360037612913141086577541035850974594739670289659071026312259781165484032866414549311964128944592966217203012148768253219611235260699604538273564656590256490807103496962033141573046026283120056571124239970113290548929267752017695223923952059343253974874912374324992061813656084112256821265598754221515375340260182102854767357270522572789997604842311785275682844762570584215734908842615555531229758393139269253591139797265402272362760109789998299643024353678569721363425162414676535233417589768196826734836454993076245112950586643497554436623603987893317722016043587454571158838101536474166147873057766437125968123497617071546485071038195785687191470783507330992067151401641964604805965927783076127668832194909611893574486402934346385237182150719719734163836898884385581173144315271262692806875383149018556772829125055524692978333242664734919425296258022630061137522981743308556506013960267113622682877164257664243549121749879483649588307901181693457286648710564460395589456770042049514709140137751137912265541072957110169398193904042279182684673174775532942003284234261112779027231064055243541092892652802274046473326494270921196954955799284088030748996675255059940186752412880349233306476137886144617739926364921176177314357035847288538082353034898147849913222065724725088653340126802253618603992196617112219724674121181377704206849552301245414851185560993721913270344377510916983870066133962448776190496106190920150349685547491814964804281865312295518202742862835380139642249896914593556049330603940918927729089752813639381093612471770668420449068173113729889674400825238925195663496442322855439983045487954845667691974420236988340712309520479174664151120415358027537610333829628599406973896294135801428216191121615937550393953168288317006886866424200440510639289940886141837928139508766563243493283261020727011922407120449757438311765393174639386666894394082143848692686473204634105142285691497480410817335901535581700769615233993436910258461571332210160720244267487549463579174368783212328678366567759479577735658255059935182866797068318177191358987550782231231463474371629913147516424597982707426499430880118456385988406726263983226626135573094514628421587756832646127173404255426382317326246015611948687569919481288751127363484843455974986257223656250774343829610432934284203927361917760083568054752849972727188385343218405220670808926345598571199974240789763721066874393531195317016465332696048668890033955826425889090579353767314051366003304016151110608003138858937945808851322304018429817504115153311043846157663966303350145389270373533393756894999871668958644034903473653229960854647872481451662728274754825007370565339894523671783876405235292452411783255525207053667411102704823437415325512348414529184515721741330647602782374222875344010608831341234609443486299517800066819769680756549469012440107036191617454031043041067007389469706413210832079778408100858867209460360594044584611349638190891814051797622611816413678175582957051763705086592838227678913616712475532124498838367818581859767951017653093377086209802797569950954119779619989839305647438337870307540205150541426417801404645429732255847785146467653752058164999286129037824533623429737097861002379375193413463426092334821151710342214189345591164285131766558288740337558526087805762958952745825901578344897896103250818253877888197293693830520563975977240183735050254157353493123904130691091307817575288781196578144826445570559702955449086398952155972753642714813746053043314273941243472096397001544815556826553470048053862729275056117236268377233952402707235013101098297227247003468980152911853635417819814453137867199524702088920531206578633738541860333569238616607962921184484359673502416172543144559496028848866110267817064116566504694815147225157581760658106591871489298895911694861022985688613770949735270832278351583122662255643093602546720025460707074573442310758627590109680766309394028442260221349401420932746973567177528126828532005167200997075555355028824983013579062519875159177356261471854763927209633522885647372244132790590283029998970985581094647953439738332182542389707115388666962061417073400100843667448570400364593005942529396729656650673864971097442174144673737268957666461550743437061398178830816693637343466174807220212962325344699992274507226496818591999989418806864719592343450729092793558136667272744640379282222866560006645977433453498162656987083167865793248773318913806133131506776812530279670138685809225193574914736380941591871677715557427470159137832928193584955926304130541233008426354097548136728719537826946357985491196321708520969206059804048567823666540320788717126846099733220197363590374513983063642341442441410560297267496954705940695386027163611570557962066908842305354768453083912753387129662248330995105667691033332061935596278466502034232880959524045524941476150409528470804035213016081030326249662541352931006204640914899279596341141262464017388921197481501985702871945701568468477921214570482664010395130442714877292160884831721801399638504974544971154466506047906817546067454384348725267299252155835468100876664738140492081627577927336357809031636061758855767680476444256353324243991186965490487612822284108634361189579115575224636722043084338693143638121697549302753651534971561338213142312190827962029032554237253029620941564054694366723165038268105146271319772832352840750635173519661330159398122470231692107764704833776338342655226989826416759073297515532996207528370372414820002495978451114458517534363206539917934471740407166827003412067670480751892605056525907846834515431398505011605469337986575122392434800997831765425900089396287634330657852677539896445646882542559252374487041995646642865895810312355815238763174362427336075322940364996509099434225684161211069507325797449356820490766495503873533634634345990165488928492994705306384994250058227220977008811057819621017319271014947653804324301847244885495919114127648673596494994606448098351414663085943743073766136592449232526018831629790659428059210507989558292220582395193559559422557114723986306166096725396117179583523594749171309822838308511842840850028590821505545716390818607026761826593785603782791469709392151474593121242829646497972154011363996679780601691041577544232943264187225246195382331778627946270742764486083404864232889027894000849845651580908370559784765209635732249718854997376833589885550753853713361600490924727514751875013033688698869840840471139685924434042052121998061344430095642219226070695983516563907462724863721128701588302526187323236005544195936767735978519085769377225510246009029796769390559298786151829056123207059311672579298393231997506537412024126912093389775246699034555014087832397084692736132956599795707861256522379089838956938471010300989829238511679119992588161884993585179597581199543481002506375427687124158345610697633087639659412383739596162602924883585307032379955776853940005356608207363850684141035622194978639646140717011611522959199663111236104281880585079105641505628409729230367872455609858597806202753470858510193847775045436401047668731929452888586358783670288529554316601183842967643255914850197654351192261138087889073516099727233050302150579388837412966435208342532952870896082481860741964957543809867766653561146090947088922165653727326253644035119222104846125200527698040502408629959197341114786541105923372286718629622502577786640583743534705998187275440169987696131174742845384022398350642339847218683162160301449607225833535422200307734579922859877751437419734434416924441962764978449664114955258236339883745824810774366475303194900493318946516188601754758004633796830472998304481552346114021222948165125335891088747967475366089305591496674172983169619571625296937952182927234992821975162273055657740649581372028749882262118006604675567732755502442598625064127341094563287619887499645758198738894433420165182433714879533831866852451587822002533414701055058333075950727774248919963198651714676449576963328540285802913703663926630329752976975451652475733481887336701127861186895415870782601865179958822451454142634037285500579075378021853995598564321860878609259547878420894180318214363327135855116755017389020775036479209291404315369579482094452886669356288274391940621455987213846368291802980855989593385455060723159009092406881299955114462984646553725430942773004181933033252008295255358487247266106179465881375184303984275082138893334207289309651459505479891355361594909636266814026971761846413639703013835260583202398187118103606319656816634011824103969490664399310793037059956073486300899525819623120614410930775475143867767368912808375460100920533051628696391140649355074286879672376334538800617999111009324047404339701383577221697390366105384407513279930836302245497509578615903911311730312434334382292074830155709645350523930425508354555418950201419705797409608689283021921707813344378009870046219199063981360309075608456758527552998632945943605796120068848382723111141254640716173525125630472383816843932547044731220040594982220525070890627937647070040454260965425971658838513828856891486157905072603998233848979496678981874241680069870135979556768717122163150384090975075385743925764791894897512612757487627530104076523617478052784690618052794234622916781820425600592122211220005198285342696314671400090282267863050730863535085098487493581942450262693676638427657094681928325766983022504593218912925800189178392299873880842080255876403720606437374054398772233703282023575121215586589352105055824365032764187870880183731573336507591849244535788034460205423961169509646284765135501703431701430320412871846769040758328015117013614586891147883048162794128288973945509243378567988120521051608995532309352085111217865502741197905534914903086750437200197857135221029687906634503387784927013307963484585812363867240487274855138262480415870822641161543324717172002233508251787837776244882027146374315183740192254591378285457974678200493188995008919351886434199638958494336949108979321523176758707103581863215692780994620293338663826821672649111238320284739971014510359673117963848431186290048599879773839674522438161319302813497791556400685166800668910330135479826322311343175423044057865405301304427893393431704118971486540650736495156151288173967463192402418693052451474896978084955921769165997559280180058914946874553227265645172168634432306498467334736735869908717863344028280485758579450564758349332241307007067917490477557460566282022092468279442081470443375273917365528386870637146856944916763273612473333795811785446246113249475872552912222051113241630921360905220490964548081962006506188740567234791808951921036388610283798769183751607897437205108662090994677061022626452431212168658236575893233872622973959894707257497407352074017351221086815156690034123145722100094446319089411452618687188310611993304116459677229600230324668148664276092722403284176262661231919060892546779059202563617791761203976426655600659248202707480965089507913571006118822755752688174404555159518961675280835874444338691286006588798698011158976512665474700885911342696402285417421382025485521574829952368406166119652969770946721701856450201091135006922059345662196285344342539657537664869952722830564977570146490130171637291089793080983523589730576227443859312371579763164762910430504323345138297932960086789016475295611142795823627638404511831801688039374551253114193655255512287302426337748278217947898451856307858681614683174314672724927642941299729606141602655436286390802163920013597850679184732264223678763431718659409150999566301673220928245504469560607663139974982914533197598498908334151477368215782504929920702272645369344894910285084655665919616472834903434268259870463967665637767645863440032753306346938047365103476465636664480695690863751606602966698306221770539944174305281509042567203301229429489978644372953954499731325019150848999204737483679437271108011438662082551859298838769681095514835511446499740914524362683566828470229573419189043657179386398448296612809264199941999036969637403947512303462408502883310696941483473560480479575416722430409193896177241634307022580104000734096998148029278929386943432752936294921761118659831456647170519134141575006203453490273989806788722415674491274301429890645523077566040780395345996287499275398996492981792747467475688083494067237018829823578999670254758241497203203536147962921064109904340964543951608223702076680429454634804026011627130599963072393211662270330721809299900808714185802909653835002464023303038374430095269830264395894700489999734078730335040412656037613769977230238994005364037084471482255098549894084490207352631659440608412477041028040349604284307131844743205374428517422851885420604392123905014642070305266965850207291766331628186988692180338586110753175522539452648108943287196052321905380777510561900574292636931499819258898992593624962388207322514449738793357806131439114873937905093882444917161008429416634148055460499252125632621205925526129445144527360719681973062557137441690322430012612224284358746799094721358341367043358380317267317773331068878471688004375960378962568339906436281829635946102863933360389178286093899988323078901722699487099417006539316144102214669211136324855062808492628602304556023602792775048819842586907643151613931315275507193111732255934593955434649182823471514652210534891369628095479468947008300250105290529228590344091506290657627005182829214206441971654532772702407130677688706145794444420953517903074470483052724826613804513795782993947645949050519570982992063141283319538310450636898245785354850162629013106412107513948325327943216088767327566217264721521152131324577523239931095463916056004064689810991998415884333849874899159438912626023047455551781558779238927223719474706010001979680515016181000968884179765362733331911310106956769567841705945447049697070713291048429163064787521001178403456481269087955988482108986855064440274444652598486555680349848209034803787805711363321677984399672186209639893108553236468970017581165251122772953981423092724138944600357524697094633646680375803026012683965190359508606264919978487927600289777536840922292562843462849724519068510739981513765296283581614366867998848745148056045827330169292463136655840714158077704153271008227374417823349401497895689758038279041429318551025961306816786050065290872374410625695067069955689827460076927582095505216462872016698195194071802477834405691713211664911816236245681738054315083306530759593487199993547181900871399124605671603861296279673780357888947967916400056573246818755934188321763137006944418237136049056866640202993004834364941774946072742701931103055473154521697704120558476604465998960075242149302968108015305414463719704259584572660013728830669128649851427744997953391148202476468369412139910809959481452850464879805723586571226000376559507222752205133306663768626566969636508707741061899846221580374089197666985715783521464531266530893279037340867092479264925510386811760054460498838714949846448914913876019816725121196257246420401393469029694314918299360964463247596506186433202904137577146015249608649546435938158753373194640159308189965087738880024831998289431093889173283742554622203831746820015799960248041932927494624457538202850795290919635901606789308898289698500731921482588945024100132550874692233324912577557313915707186801764385462200705842903991959125445598446071803316177064093791880886126234169907524208751971421740577047958118568190173548356485142496080224307642850532009026561937672051376240519737870601755347137037652667587601501681569733414162358364174963210239638977203227703753968688215974434927850385923517895738884481832164418344649700934962190456551859928730127992019567247323143881881597238453396740969180811317532153111536135272460598400052093250881542782230461707821668539420678810675011745661767840061069380742624712585517652095589936995393528902826774586195285314409082684674794370366125580508831677947975614234484615485814300595543643636851558923119405569717250834006062003084855796839727961733571207882605474477409678916296903213450387666328528874597033672322501194562077973413919093162680903125191892751429188135419065933074986487529182709572611530023982131353542684335424745963455242938014336380104817460010441866991815421600734847196620191675689362244738772011371955329739276072760347313475195702659075755611789261972749749554883747871627854125837962897748180161828797175624331682046316178514566470346792740468552796727421465739236424005811423703737747817244452702082163562496499704867250099536653846977228258812903318196296685595922191645585031030688304972655320721491898249556753649503558356207446514977099204331041153975632174377510749046628820860615654289028643761448843891188387831335810515842709118784227648254052993703134372650665348452590361227544621280611108054470338711625445109615086016492962875211437109393392358667188956044078249406095884340919274902714154381093288456845425563823767144449264481573474238510379030902062081087690770450848468535571839091014314632913442434644476112311946627814988343253754965522080752216000539841661182495497567818748834928738150761184878217200394240895010447073187441830179744531840243013946550035053726798970543872198916020590110321586912507161484736088952292632197739090022127395804722018183945618297979821787232028230198468666431959120421557331553143474546014605262948861085745858230074546924826987354124194471525833705993918510825837296561625369345595837099880768456458822743020035254768345091279965015231703372161996944467463667043438037419848617227088567989289648452473059474954265259174313316140861625207104056042442174024321750771058176226710931843004677255542587482723709543878221724678086506227748954034450015273963196286345193874914546281323515701671704631675380490796805449110584250054818508933109867814364218521452460875482641568975963380971374854265092263189702065614676143942562524034321894661485338917345499145670196813938575130690014247891221185174092488102353453771006860696737023563126983313526182460361527108410451075026217433363725837909003787358550118815588067520932361980425489355357502681614305897910569395070868128099153386899447248313435796038240158718725707401511366890793639410193373096639251137030738826766817752585175027545422357191613648202041548801624206696976322872199154155820657224283625171672792200224686935561516265283933221341247993880470522194689500771053972914618296620612694342403311843473052134952290671248402608614942835087522713909140756430847977356245965668154803365333635504729237301981306223626355006853039487880654748909349438337622993612980984496577021334620728508862888437375195161732813196724718709222992381560865888247740673482146108025379433905285261984211077709689123687986751951130151740667998927785523243441403319666205618716975554798196667659048894015785155078254987866222811594282976976705245840534518825819962442458970912058825725822256079141404682406842749205494259749874022123172439143910768906742329228369598885452583882377886500288167967055237298823166927354980151475361377334184685511671873745828034619959015610018874186931734171116260720148953863144762281921047436905358210967305912126079353956530668307907810092728494222973713488420351224851502978259489985390096420703440856290303896955354761239054838832000798676661940727546521383387511321335817526963808530233051882672627268107072648670304286138304590669835540591824940056386823341189273988042671737565864415205056115155616500703246253016938233069176726704898322889655620224909419280097961469198610657564335409123151166759686987103609409183173228697801411356837302204026871319482347438505802352516242442617600396435071150390269688378953935258048544909779390675072837156665588909012529205099330962493339307114349126748654963517062186805490100362158702756816847617243931045962381249357124179166851984597550936690487867935615638846009821835398129735297015013405050482566549087795398993348845093225125083272298142042183032441570822003201012544473385749340970731261985138677039970842454179291989972129439234895955046537700758342810378006243469067331605736612706278449956285193108174289775827008611359948616265257889167016684927932903230179724637987662703418592736490448601406182662801626291612180459832956394809569029356511213415598265911354289755813731710459899649040549489050347946444947529579420244527714310839592731353324761341385876452680249637803218002291519785010597379116439025606204297934683421519857312411967405819772347295122090550496372228797632426195459893026587162373439285975198961203842918545851768694213356149370160988422126693249061236680882431784602781075263797853057790266792471440604010375863185062895346761296279708484813184743740019658928304436518799666893770720983610588299759571521919701081284209333114237036080096128074312613294439968859016882151477839203446874611183055158113296985136568121084878470011700984780425598360231414743383868323114770552931069180319383646527659072280711286135004099890279372971126806290484601175789741608133133138835997226224300832169958633329733849078039026251931801648384188254392484541272392312033818677206345994434007439273828373681059703543051501056896978389844955459024967679331553317111339900852491111545033654642529986685900754819744514015168143765176622233764098272658143516163831863588870981445465359580156921022146254043215623423342433875917064191549129431780160943100045397211341698237078105233818691698925524582637418088156569906391905153975680313524452695210167107130511601275591032245673915929591551724650163667511081115481699142647994819663694634758787307772773514168204526985252970621745116771964644950973142221158812375797479683828192637732956099936123693400012537140667028175217269293108137670838025124229791499064748018381851429052673883328306975782807507587275157843675713326993607546622313952932216447171040220069520112540331418473311071833917096707935396866198698476488653060995331289243802189866864105984520087099254317238161353313145245788212159048739023613599555400190879722969287493508799065005749013575790052669237740564701868636602751867823067248347548758121968755136956105128363284460561923697223725951249191399205045657454671243308026245140853867546977957409865224634963718435132736827795751049411022688309229805305123176895694755023724374050586494630760496835261718087022690439259539043012374209501106849971062792477113883102074708977973603076419672942717941632856171840865731511863964998860285280654569304910262666531204598940690875415209613444215986925952962973370828280330817483890067313801994454895304055694980818822805721334584308144484234592046971066514408242813109948652117455491579434246896675156059359858621477350909767423406976697298434847038197428348105513732583018214257654646545302797113020451501157925645211684191858380313638074642851224439022518356570351062398900838483997297820211528389255064158051729116644820184818517908488416877886071648299132901211765289732644790806586568492284975053224784136461817218570598892595685501123031187091862191313794753299658348656220232752141763188433514646271264670021326504881365168618844073739946337906837190754559577591882017161088526044375376955912275506951349323069926885500108784799648696831811310867496864907731594095259177864620784237304725784612240550075501906454524438501598662018959887718358934439765081815772903949091444429124021879413669037923579859380520906015630959855441640724230943276281600627163555943323903662777213721880982479155211838953989268056726278748178717541734386136482089763786206561770356879795786016954493102833650075284245881613873590032705646861999293125107083429303225497365631069442821295904729468997850647525984739900011861520635542791934213849257588479658123014463590612263424026892567898191199755936896742352165975224634273729917514949217428430892521755991927251817920786020343107402038965983024288050839237305342982265072718263078490470915152384927593629697754232515595423682934766978586178807348170266379522310033849623401902712281739878366235782002682776896670649997137006543208147800865728021994988957436062160732303306586314748833446838557805057134140264503496899532433027120444167387801265030876691501561589614729385405620659592615876939260752204803461604450610701563991851786967838077263241838735378317869770256926228990348056591992283798560193098022112911468216100431889921136218445183920798080605167243542842380664667704648252125661416305966400101028570788939174098674832336176908486434428569357845587174643035934666784151940025263545279224855884495856521994223639560567162901177787061016383552640150293529450256510483049311525526659060413745382930753055333156935201656841709872184064045043910106273554876217284593379122967364573008360965391490003921902892716504050188427542078906904698755571940791310142915194520910030386572641431263319538740200770982133430748399745108139766023107635000852433545823511920171059082767100910071540655996566458025563636642390460289615095907354876046569027418292700621632093757359905983767756060678501325890345975052067910647188622088488079115868722035536207762231673311784756601331840335279175308333992545195331465545373040969823608306559362589827828342275219187537652991612115599950235375123797063317851714665347227154219477057630327241744584870320093930228114708562826256025495967709972656196389190474001788086344143399342744425693321697278007022655406134337502474937812883909905286499528295731225670979061282631501440541437121559312299725913065681747460774513696365114232260335070482794921527796938611492057029527229212727724412901278466194606692719344460632008229006441926751586022249920103341452012350024609679137742533017023526968489571686336650583483008390220374311181379931080184012475325675000879053814688278187913211550635638265609735755632847991782186045868203809462303056444615716792611839160793490660860321169928751532282236136951733057720371962639663820652775933615383178525374486374540119819996469600404683738803927727322055005677597229994082269122684981249597985633086125372062266642011874758974281570847446856380482005696534943201388497652990781451328503022264993662271063787859803881946069207349493325426262726274563554762199714778838822364789717628662686453836662747004850411133152336242591404238672510272324144541334955332626475770807497054785380697949236390808616419061857888441854788755778606459134356235891994396050307951020520415043090926557476729790411936613296965597490977933342811667381031764119090737134059902750568915084897756427566623898057842930762829435791276188316901065162419768164586442340611293865055438319303228999079096598554042572197001381390419614232188107184722122456737593554290289386971861649978812044506698754461586664157984468094611267791229182471856870363729332185505133710215198477002822143083715203860232587054910899921029568441824692082429617841831421338910883522482907758889143646319655313925427208231563175238352952176814286390535489218248398441756137050633448707885264451591019172042154037297000783084640894740980048278551421199868120602592649001855578754634772519775251982821764199118145142449398118940052825320138691687365632094649421125378211816969998207652435696812862187264507163408332194963200567105276318102182858623391881114193919730754618146427505170579653323963244273450813027602707399498315952753903184344793288373879156813418555039994130624518060798959722584826343081734003557075092548741435261145974501472288210853272581264298541859128061128388355912562156482210404361399378102991228465503082367750691197151222590645391515429050764555523794487651713232531260218144911373140748558544629141543286249065560467672014730529376631108975091583709860388035063344546669982262656925375793526242832864759193400308505618457914227799781257614746778908979580617240398446633251443728857389500040560260370618583315996978770966357173050071879240889215585781229899194946352547014723819019685780813611261388116090303802820346871997477462179945126255516906998591917416252942684295196792063061372544037673959920352417972576786627525862417201862088674993539926307612523042571543712308080522560755642172354071971631170308882844001177155195581204666111262594075355938687800136286397463414151488470019884588527656486738976585792189341997820610336113665520796149624635581155442111005358195537073500872360917288570862427580314639885067487164916333486098609560753002589196594351420522933433424700259372023821657792417318941131984817496537543089390208797215778884091161793440609415200463788076541474147492676387747527548042156239571765782814224557379239430634449276448247688086058018363639584027030599362819738767358900957641761375451255527139302366467817484403506890629368246427971840912722528523876791011707057974637848248468670305355478289163769746250100496231998008848327822109830318455412495103013690829956515405062190038609378198998093799510043573955141586737313120851562744223821061986241146462138054935567267786002050789378789109496266086355340502459023044576690280043250852980672363888914886111576038740440961268192344362941203566932024436063491525179419364289934027472377146979553384791425331019230651801270362882254303269489596352308705157159629897628420082699322489821227632155835277551384921799944964601620306009918100557842068341001032937112322928983859899857594316499665382321726990770651570600050306630089517907244526895314512524750056370265667956449355691159514903232246187854055313712400757998148651280887081833993682573794797011360550312876098165843751778465641959452455390807659730539188875146302012291111742618342587538362900414666827523876366490298002994807681674436797554947846733092549707344892011825269156575745309703757890842942020096471524502531515983442467363132054184393917767447672193231303102068477547800137855322858476823030485490160333263892211935114016128325347804853473390404559116036095599551106244295346032153015876470854858284903858855586364626886596027127978091639787491617374228996820142219547614585124081821472246166761308705749394649360554071049820737857762509124621222952539290681648453270786887672625234259052135822662908163383679943062707839108680395983224969478605249508807277089122910273192367222680676582893730250377690715305465484303368096034745663505648216057552662833959507545459387901610057257546359172927700543137258731041043131165006987706851810455876004982698148358849440432065128068724468528232767150599204178111048417461409657191029372383914135601639783220166407492027290853078913251133537778342876985076841592703575494820710363046441609337106066548874890735012568060822240131891926420035547931148058008327469737412040954027828908806616877554226682346943043662994629729943702626408024620996380573939205782144185897817161599589350702201235852711303429341438706893470475006410731857071606576044269726221083150056846448808671295675403627670272204544984934414766862797634148652355199358441462589950078800943939619729821722425958206680659492532026211583368448490919052229032439511606041665698377934325865654347785564152592014360442829823658685160230727660680743912946893577363585446771064028051091839921168814390187429068148507611504704959108149072934901280804246703119939658021322167387915018773023408060237250040641026760165046633282816237176373580380342945276826710597772883271300901928574768542776335772752450761513735077207064020918125296453947808894131108378487307471245014305262988556381859472070118537479630308466715954094081259670029241934246482070434911667726829399996153422793887287775752129241856460550494782346984631657348628219015178097618872835405570725206400803219393214510488774063631903585350507046438607614091745691182474478415572003541637122633367532450666088689522785886517542968177278067678053499958888240504257048420439115847578605657606038111447699675924179826343371064007536555648493443768144316382087226214606619379452289718684227984268863403197940079961608488294508122357039617797441962951920808026555374928286886678474096947228559392022346131746813952066178994963915873562286629759067922612273625411587399448190762970446301085972416912138967591638170886390369348851923283086673393853177089421686447641318628913087126538625051112235678088480251132278652828188509882148014210142120947372154474735340577098281407642864162054862224859474641644089866099313260438720901499482352781613960488794062524350491197443669665882684970309098009940352164393759716624506588034030157071263211326575121527404860641504183885635986920068270473935568284096287422637091772559993908525213890650151810297969945020745055337064562927700921469024206241479590433256206513405455382902371577223021052924744935971796011046943877489568967673047287149487895848150239188777069530199398380619888960070299608187066793059220560865769845455033852235955585993923380215484355381995699021482708445690698945033994071576020961812824969921235101879669974233275088209947056433714445519194303433153362392084987070727109287738245367667920832799878707701811207483947151498570541944653075722967554902203527602780063362509609687646073744680009089663744505230053554528023994342899319922362135916371121489116912200230384603032849929851847496474584770314077029537338517934037731062444235190300298080170282334853664086198150177757395044296821158740922860086256947732743848296663661781505907855663797459203956579239390794741976057365799015245743414518103634389765633639367298057420437354907504822375758835909787892328957620975990796142867473465776487540511208717590064909770857867498350896139422375618492781188042889564795422597276880716496422809222895561745884047645020229261326818465532881404132412497769567638737416720057021389612759111550584869201045542641289606444927205943052088729530026057246749979966386155309002000680031561190196124092754255520596673800812093093177860696639818120576143017774832965869069050288109617986539101820334218201229391467992829608343263068510431571616627424664891246110049647383954110225916205674128396070769045716436288135940243525801283575964847108510804644602800198864918296266212272714256388511047991751518108896775928816335407624609707003714642423793726135998488567444273706841514674626605319436693316724292415965654327558976161853196770812421795112238221226233516010051674440790203868185873138382462495963388793630052560278242865257177909447246239324882857515656568871653205301947964904997577872119054035780918595310750711582129435980350384587316868698232879466738845852689220357782336532777849609985596428216575599221386138666980405982109209514801968493218114724964872813302972216199341111789876416538726575881652855115109297063002437124816898683842204706610927041950548522172046289609601934357157805550898169100589870061053399431460437734946357873918880195333267526895029799123354864813993248949824441516400414796187850442491660026601184465335011403496361953359925771645647500480192225621566247630837593195030727257810812082924862324535889347567886599612572013701212891230062635137215268405946981857523179662830048921230822062400669650249608462123671090935543979917886804280782742082354552161047226252239516202515016883001840025612789153689626141827857103154877041010425610041074135743863431155254658073952292725830681122877900694541903481786609066959121279875665934735281064467341824184281175949384583763534598778727702588511683236989681646106907594573708260771602031642720376229781382217414677730732121841403473144274378714093406850590720158048185681498911869074425285274374529575151327442108917422575509894209469328333910281575655998372400181831200435147214596201609974583966224557294380153652465079899190547099144442636938643360184351282226238212768779374468426537965184659438130693321896808668751503634447047024694237093706371857735315249359211088746335681599532949824076208051582637557066037339213897065480601963697186865519342900307239984732798759464694516741884375062195808288765014470780934023877695720427228471606071771030315722218514295615916819011131828801380472321391339345057355864872806163514942968464323224868602971906198549993213355386892955010927161728163764006018878613273368912817393703933549399109299508602565191158460647587569526484043853672818481035148706513385026945925080333956562672118034761721926625807711250553745969924099524947772639711099312085192393209322051936538536729429467656864129222972673085727833639463666219120532503358678345709014885176930987245388013124902926248153885551161260637405410743095583871855010364328503841802273931295324137756365138314680224953284931760794959859540954947352160615060715234840624393529775471311502427195535865682235238377846416380097729893626154779135014404337737880706896513594411637155264283175570271411485261519585093765364634142398001354586583488272734157983701170354327259369042228362411810648543475811299258762626015056610421265559658767098285875903641694694854345972603363263035548833062392317511472326720320188431911270060353868767882580781756956130464043358771447328145489645630058756701901127191402164960097693222468691525216813315374648274329258447580104690901462214060746756463082889832201900624842361371690923410720108074156534277886397692686778745519351617250588038354689916428199840885642485163043617746244112451594369854800424143547769148213803642856463919611791592525152530259274004045176578105509225851293951971349041250696567679240459421092489798530550966676500951714637140186218861571238434548898032649911413216834900885884126392518949349589626235443310707319013857171990088402185154918687336237918760790834229986572676203000430717663847929684424482437494714690854271386892504297633246778378787889911370579104291400504886361383685573514525546428525431517883789059375866085033433229241763526345568560573739989822021632441527993039722712236002482060100119345424270191969810736789321952061338900990720706502650258976536177394940460593414648705424417981037987014078294329230375020584385536585214271183698398558814812816063106779795337251015522341637100692190002398346352108748817904466545912377943699670220919943838458533351689781480212048206062831172535930789187769297151927502735828327016024973009855472321484362693161417548194234534891050969544335425492960076364702409529796703012397169431873046202207347036471223245443060806040964272451628249724352460752181595466264773998509054524475283302333206154777913636506065815390206999605441745920937634946249162089894325659796122867332141068147521598299953858583554074055067705636962871185434537124401316015605278718102931474472122465475980317025756393354738589618072328311620287543628066669926648376934531353273787871382130843696114515578578989030559822407665753121019462295646950054804761807124797127315449804361177843783540767259982138248032392034037689322275367565995112143921920334054484497621688830105047299175149960656737607939270503319872038823566681937404847320053492150409683836999756469603523760889465887903120328691395199743244221234274015390867334987208839078901385676788574173242165210471497715057531203206195661830563031216837889632227056811923530578395333844090549652709345125364578282064142197647341058092966091828344705674991091456512680624041814056938572033873880076714795508788042239514341132274259692414053162633339662732394333587002605447615952140182742875451606001876105924640265560100533279539516773288340993825392384521444861202938158825633240998566406376422550529311792808299507026890673783799796983894409497978997505703993443875826624315790036954854829909972168339386489220573853476241124748930581402547125151753506521319443169355303851841636871388825624659479815462177141620736869686645868695366718154753133929129257763739521496399677139625118589490741340723942744536970113923921343928809986120964399963829048031397288784686240445254518045840108505384534927003316582467948561683046851275970022947964999873994655156818424340286926014815035490691809063691389898322869215160939961412376095826319269008206983280145842918693901943193756913173624158069850332791278993912846048385744267415547788364668682663056841529646315252855745278992953262077348922557927056349075156228803101302930230437398646939079222587388184858419551125066475302380173340325981276581992941049791679326465113002496171313712684779119879979594625618363065863670319373030685759297544962290268207102791584165231238818885698793023823097186796704925405430126420119270713399624809629381089368454808716397217381463405970049253010900555455072227632435261469209614222048197196459996790181596578973023437495914163979340620939482406041972551481194639930385934024740835339685354386599536671637695102517478998405912431279645882692353240877330627190420701666166029917571350371909716126911998283432343361363010159513257639875601336882744520536709413364147009272664123815148076508924191070320748241105348404789605006728855767432128221291583299221601259555480555926816593401621189693323825850579849346201376298620861495466848193499759404912386380195455075054358492277695539038106140968848514086882848263388137823157314384491111514369434925097755565069416891679794205573474954048855120738686913443888420797743605200499128704226034257202901608588444601453888333533607143978904704924375564744948953621033954660486695389816713025796082410261241121599539874127503324722853058427043874203778203324935526529558354451888164199922627146099824070055555402542233962115104901917127137342835641260520549216629071515461353050103231282104829084013214050826701711454399085994129822367064769326395565330767196255185293691158131835199696173504601535949384154522666124223738310201035905207335582287664039701668876897735425570892005674073829196362353924192804004227442236880415256018444139255580375429921434598135173347369494145822621570187223829734425675614887359737073316912991822876185743301000036721005914604216624788295144608615726888632025405957654696770964682907251512833219626825400941448873430341868005735036250977182102460734995375588442742951911364195275890369360214295950708655462624991996490005861272383742071483562711426765832340273198056954230794411925591744873130116607099254702462168189886486142323145455574069016519206521011384166677930023843414918010602180095625381741801638405239383523719739215756688391944615556359613502787050186498176219760122653554529329900847206308713195677438519907198921499816901106640773129963050399341520662924676719052964775155288880692419383031153710067365035664527691273073725435963613776742068310215296037810429911539186954709748294536216059539999194997329065982738848989838711416186558736798499613564744277437321341756685406600387756608526605450822055093572048185601690114427348361764267212426791441588147699161941310505025477644179906853477988440657162507367385563330662775324530742796957844201491793437624715141487145810255316226188317512639731151269645025266878902627792191694518648534613274179794098173592407797324183425316755606420929387934290944495921274674368065095448606570078845114699336544365888977407724055067858436954810807604621766371119570779400375002214609023358709095808259666544622194259133498488911855759554776866021364468329481996920917731528341686411743461996952611808386514068032954594354135552651256243618652490289062947169085565981865737120291875837658550869647538517469949594480695644982799580286857932758919864786344833709702970519841265050688509322617598324000085050446944381370179736236332662649447946363877222454090616559450588292983483075481449337059413571887718485032974343716119165601291349751072228080198096741777769806339671822679605799358317801830880507518275300594555795968203653765794541872925542648742521983400701189241739036206657222629277929834326716574473570232637421676051220822049723739510349676233224399372603029564099331751575272251290815706854060418125663409276070226468137773281970065213875224826692423832033792993491433227290337399318880014151169779488949081297188405366460471086457706281493238880074748837680553873165534782770442815512106241927971841504621522168029072311835857037685152332622397111347965290834565570942243896697159294538237705252407672401848147633279609032870207227438128824053428167502424093217691081667193100375927200003744565837081096705473328268290882966514901124281964908900919988114331370426513585087114949061655579221011664781761601440808855436033122247078147528660003791304806111956499421633694644297043525487000236742492372179040052182290217425112189643765804645087658020234976086328683188430052297459088629890572214832556141968406389876471374970194002516275136417404998278002203603461054285761890474438169941795641595838614225559411843347491110731264378872388533522411439338188392264983354311558322884285623166587671875324748867325177731696284221431420593632703543706399830684429102868800710485013419642568065276674265048002321451887585162353077663351580469048025827645148355198174042751312045269748507470105815548915610095455132694055487499431434441899499908805206989012171116615332052766079961943378218196355138797499002936561088643744269243338478783614795974266165590589641791368632448117443772700002863238447507263579315173422360439894993731400255755530186652777927005379830125627877721154400930615941501431258452332882337907967421009539060267634447276889546441103261711727109700934290400958268625832015656175679542076795273288540586051830814638526457565469843074221406748996374623154181468461430923855036571172236860817117037917291336567744385777677442707090749665107479706055656087598725740679699197991745352139390118032076803661633199845831231601130024117853910636931278377233347407283799773764475311349776326593550967975564545538828195202171176267363106177581869808105633710214915177399219562223408186684260396343960726318141553041191340859126663671185020843343387251561515827890520776130842758463327935583463210142249839560548996311394287696605750391060513450478008075776164913688157582957171867661856940610548822406399269788359724633804561765216691079817357366863334569281968027966193748817887238527864485848645017147563452427728174029825327889892661378790460321069916919289780640017123503955025201341854440750074424543256385921478809533741717900638965379505733636170422013740675672009816937396224181456240002514082626063206810095863481444638861914449348605465674635766188042785051678756683465547218537627644809954249178932874813022094319076627385279952014133662924951152750068116665101526614158538015431657986740019180846493730805655981300823741964205481280132427946743133467722011703533721349503543774811751995133426569546154517729837968932362701457705935175410255842095118066145363039737171693903466391934609599197997428816758494533257864712973098886046679075463256742602175556132566685825019247233528183116311556933222630835227357902337579448005950982121911462689720052228066926814143502357072312283983841388659749239795475590373606530545596475585499462191680002024548871966718299699651104401625136161902220595580733093101431864853026390320761482565285969844052276297996543704619730534282993078473602199848286409549034737482625589118960494822087846425796527084668806302022254488552976600242079305992029755983583158006923616978160281975002241507391094699184594278195763600178983423958144243250650465090796125315631995119358923333508256361845181779542102672769978007233241947003611428240016193085386128803465574023644686286707742391570669509589493112308342103515540868793482726165970515305207458874195808247459566759981223395202830423521073421417275560444385475434534262791005058752911053790178432593860969830159503268240855689948703752820467751455169092494193057174689696627646073134522979910926969780485006261848993832182328069943215935270376516468043242046749268844005285531638388634294292650427172285995934602898733815344063808171687462141023030577258943938243068860004560920300043404387830044004305841130807004899497946466198892531285960504638992911623852379874655468426392147776558441726799827270424641272532093674659993078653721869308568555347855500486005214954509865206845080770994434307074248130090058060652578908676163277960088334501371717877639884252795273215841770513810942010445031600055844736871829921753470425054801961760847727604921246391293240655606243562815796683477330422581377455630853181976293213183244142399355369696110050682926478294332960467101860394694445032847731935107455876588299020505302457190249600425032313157587269071388806904245395349380786657009141744230531322348469484366928641784427629358875231839649995867511788428468821965124624687325518856498345763350651321490914252899768913341638798111331160025084537557344811537617828644109584430445284799123008495733723860773157563894763842517317045692081403911052330022842483425315385750929381811590037495209374270554555165317242697815715619405997009859350277133855464138682226687889753027858936852575808623484623708173787661157309964401054934080001876975385611211341683147522670001444436169089310295396394451721087723236046810366641007347454066497522603926210655417118846493192173781058869754065266212893407774708511034844322414309309182206422026427459212406826831070821558243415202221408426726072804485287030015916406264911056841996295869365244897421367590742619282975945105036499485162216413490651732762615225522354516387285287309614412587946789103495822872543784299516795847988426670634892503023177376511185911381819210226828477820235827564897890224608027902681193142237833958574848452982516280449122746585203103796854220083972694348638642115085426189080595926596809336045977156939851105456064795296501587586514597564683291921112601799597554481930439341386053914826008602113453945862487635372692126463000066761287821837814942630199883687923098031389203690674676882381070619220417913425412382536532133491295807868497988646756393086215489918176050281059005382902446796686603425688589476990536516278007917396470988873237977078210394822191580629762892030853399806433469790334756604677147977198423636963133866667775625197458752592982077436464161455384823070597975936007622193080442976821755353483962390753436465204552456328640016619789863129237327161388823026723535879793648617502791113211400250831570812470803192547193618097770927330101865634559044495513307785658055167586578875853323858387927008315213675316994142199963101162493073653998859582988554997141663058268740752079944084013254157692157532670087090138254120805307485958805453168202100488980394465022169413710208859859519430178316730466499849867993148112966030102880811221027991141025628247735720680840934446633287551169739553266345076836050483232157180291575953607338445321829795956234467968912209172123041647327828184426981881713971331507282287151992240290979712884410910968393093330496747164290954880480884292743332785182083349737968970843049777263489207328584371525115030542390810455664905721813358875304926489403817642116910103997360148018158116597423743026486241687454163065888589493355641428484252265527242399654692188780869680055558406315353151041866393759073678525962334898983527104262172574136426819115714660238586336870171321470859970302378624409045395485809050626699984171844273739839951953328920056203347449157761557785706845421351771493374053391775666711774810947883072004031852491733283258113790421035024369921915640706571905755747170478524370655634220989275192442648473615064440718927002023594822913072709268972485941922043280331835483463061796601326209207632985472411173092740598466396085856189994629562352992219046406428307152726336478697651257148095978200566355561992626876985736746582090886798287113690720039734274776390270713166771553126554144676731064904077797688518024300068235404732843728008834225519056547709240984430660720484975126336818521009460326589622026247218772032301764160860206715521826576376088612153469888892884715021115314737837535052910172872176531363553905038015105333729557025239511944489760103664716389879666199341784188191942164558907669723117052400107846629124424499021285604594200763157569739191844340480148669871121091402801936827587892051117792298356424985439523117939935598294840646459593655816458019310647323647514256534512801617423632239058251298907601835781886851737632711814668259170687513482432290784576752745032846439294302211067825583515868096993713232909667243643141450599502150318165886205426110268211356979820441401216404299420720653938835287927572407198402103415666066340603129166204969710174013228527241746270474960047259310714606381857971647049417395041989435818199591591423910401812545393907717831237520118373388473041958539436412018750426878787298153121921509010378586383508258083999936122026482116790545787372588278076289515098036360470644699676400026464080126142071108599787439060241580938436615544674341862087148418612150693605791644361993049924194590628332847811440376525747955759033217206341549527932095774357099245206925830265762610566976949851128433906359006630608687216850681445554834713778989407037577318719209728639574079820537281703014252959290551943290155210257610466151777089144303811078970478613889081345240434387557163890715399083625554474246332376587036550806504470579184597417719736567292659721990577969299545158583218850658507915492233587366719817550639481661088302037308670051375856674690511450606718594223678454454737233106599962677910029309714218520624664000564538554552919678940205632048360805358683451340850905969422858841772725120334743095775361670904810247249547574709212776350700822110253340981418237698317948238910574388418239012019428705796725488610698478941361826146558299421863376870515318472455462634769054715526820941883567654222425474858426547702865239149086553476960312243518603048630702140532839163321172149643550641059740005903592980465953331676279411892277071466597571804020838900530745640891916203134677007631858253350279184875232473232058186162929170738317466935542206843461556157623287192790771079876134033424962444655312976350787203187212208359309935221186932552505648567466279251490923566986457057656891855139025728917691046916479356027195192490464156539637583895397871892509598537920124054795503112479552603778698392663338970210481345036800288405829036068333237545799552824842409713616708569741987046003774394477654906749605736976849704544240514621701867377210507730645484982710608257116606365806725011049193038678520276851141690439957039098671242634860199955751383517322986269646859874189208223547726168694183462665691342824616379863716080766829912694472737768305569093422553510220003083237343927751352904724770649762136611847294656079196899770174589615408212748829370461354977883515587736690696822265823779829281341081531180191956629845829129892719991584865441023709486761322486899447855403232824637055968996185610590908775594955019821548611339029896950952464085428355017686148664301495211888012913201032208196828737586147914264067214271599777547283454708999975222540536445903456431044057754262141714439369660306561029574909460779232794844677976330665907107927833876618046974546994979407233697972954192254877009200236106403363531847125096777676267601531243640134108634974254264404116400983001427198607610343605698638513046685021212400275155009226850565814077301092158534884732441500732120659009545850022490393233277013391857066481637799350020159914054300764489106628626705374721264536196093877726213241685003161215200282466933194300409478766583560649935491418509888251165661438221648457927440877275120137761350283521665259911631531875006647218913242690660392745799582223414514729912522081347721442146644070425115995071143903936644968707173757470855366628684636602566674675094579370950961127849655721831451184483701738026621745653029404195790634208143036790615767902546419810810617559232080377952672105003427658263483548898167061050876088401500739851456239914877073277396349846229992212941414843144035138973455132066536358620511385786841324766511108736818202433892057840298985052419583337657594770534120834455167547746989764642572784348010355391354554088897824062694386843488379968519364830919701113429251884046890167820560646641673747073620354483492732162354677025999089324025126551684679935925252776274454754412420497722592140302323260367736471516408213894000016642405283826662226104208668871011544767894538397692489394348774795561913096052076536396467286853872657944176850158933233355314388864909033469837559489297068822211116773338969795616362174665560947262902772095445033336708546027307521610072749531463717874347833036297918508766362937434602438471238122783244816827412741906869154689576058494696382507656724805196048024277149742029185883640397100019446843400644427317678098219272546150893031332678871188525993248992486504704073459105660557956936837051279727909840970896845428182362597699801276584080081305304079745847856312551428314686453090849089965398298766882040365874766681896852325912172203100303502575751983556997941243838868943322719041681023923666680644625432661958403655645847345999373869875797689088813401942454526533105324603042095034456510251578128419716315732124435204215789212788811804259649089117394156084022348386039244057037783912931691437958998385121002026797362789567206293336983869550108740359687244772849243714043181660498121777222459313347510252444777701078352928401825297996368251974180902106953436691226120313799260091276055876148745036382890783384154692988972908764435542897163409808232088423779239339303048974284003237394283754865239606810405217745454669122201751234408729284751442626241202404857096461969152875094326104488037680289178932427039929942883334853146946354522435262179752421162209302914181924561977568017518528768621685176190442881107795041897053934118782675403466172795140802630010184527439667434639002135745690022831727548069794332298174770936953627936237394186468614116351439017577872056572752647527449282986967080486765396546614444414274082813200906503094222776248838630307079597901660864830048302656079492183990240060497821200256931023915222700678208266262822023570090715407342959711043064719172441291769173759497322035317176653318410181134196540652926568947329200286474200673186800886582463105912416559870496347131800295695911145472371438183884319154154789793752145383088527332441344785005593051911046289372799909837297212634850814970380463236841279504110641679710695113065565783179856549049208870355251628380834483781393162645250671856497637572703230134826675536767398529412006795362010940582528704538896286706644734088871759957258846334318671403102206543283502076647395130318445013064470709457605286320706468895000072741397963448233120365256272313690188955709551755069701869019912376613621791936993859078926685812080536958848906138978410500639914830985579957317054486423683547193020683605369012614895746644332011429378996807324451409120625262218573130034889323074539514739192598135745695804785464646229146142191521942579898994736980888587991841690776931977599465903218193088403968033007655233754343763286312308757140732155488804887815952396443509208184991569253918618478449368452811461505474073937295563479232439617495155708585872001416282590586966443083413831396784273940581250255696248409116255073338764648331425205661841848842423016722160803351675323178292912397626704162737135666304632274536085464534925638819522726554572481840775445008337788923185947243303638279368179871961992238050826362540569536052498088352949810670507652002817823002466737321188264013580525482298755288091831495114262401372420687359617488366269962980897254002115221067789011178362078306384314358402733386864914283557465093572425572370396212307139693766708362144463060631567546826549491262885437609003199344756230620744124106369754828705353983436433746163224121210751768110876888321950941024429915141256830918811095934853080376309777218145219734198830202348766594944025578195000784467149130613054134587529802195802171321597006650193707778177495927509009988970594117967624079496890315401374230764972253947781194346151724758385044975960437523155633621655932094618779777338958359519858813891607618291540530123110998842519305625774800803823034232224004395867348635471044339110139223574798710306955486006233149079453638607010991128310122042929483065006707987792676299651430515389348470070384480062541150332159821384863444410047778160375238292278649991949755985287105909683879199487352427827503433136390184381836699846922901933473874826465737065487440527738792268293475370798511801827811320137086550066764639222267785388926431946788173524856594087934061480237887402986821838105713569370927658355120726042624840977561538753159479245275022023845899087370545581565448340564571561913688657216712956126982603099496843476807281984239002082348318861442851297173186582452921498240270768051802570106009699549355348565362256854200442170159816358789423483161224666253609457251832512067643889778057470776632721478044712313684340900736548328856808505794342119748947786014259597061988824918503648417903666330275164696202480287439582351463573103780806241127707757846014816521149835503694028016535624928631152928573900328307279436227852155175087037683039559730305212847140747009384032392887088630857331978224438012161580522964875557757330751218041214160001353053484188645501541679254502193467986194031853365152826008086634422155541521877562022132481473487502393798880719821026316964931669501447494974722680641302542062351005626628790021049174115449045569559983733583946677888767801703479089182218130247505312733172397200514569988656052527846520000219573603956177194003831012825783005212562299538358549010980517444167455842223671726993590375777322583480531351176480655886869866552318234581094488802181577584017239571135263353425562808940663745304100712896322187107038029504170435501101270315028429162831412126451356910135389877988190638399451684683532869252414057991133680305264673718977069252357274251763285078869685551714168086340446771076147337601353188711408730771264006721236483329959116677975342836364722240132261787146754837359560524403121822793046342088170448870343014836998685660904359843598248922188907216218802869812831554356399722639995265236236591735583541699999067690571543462942304711662130112774741635387562278600813130163548939925204621887525843810188149195900700709642962375620644727201147972711607526332101158963728465195758264591529214304429930195590838992157883992368540121758011733295478135858116704069491074450913247273805259183748617189005989821206079105053751287605210796474480270175454890994307044088900325904569406415653410149440090487248297569424620848599365629264757829503576437252530800044330118612323551310785197133009204926897470128846176379569999152935611361897756047537646725373280101592402309553955381604145942991522514265163738035964044549323469423563505638000324361385365610046941509661938304336385415457643430409610006571683358805786687036910560728189568120022530417820235180401664401600959151568393136864972036867867406379481505803774535865720074047946992477495744826498506190592074202615822735339512558649909803493901975645690299804234782585503995905906358582946258603396633487638296739288996705225767412394357874179845551835857426343993793057450897925585393801911913638617987693520026740403796141136976940055753267933026780077798944847949669266997315509545430802732041372391296485252223373131985425979303559357363400029314473955385480671258847743389786799912698724039741886570306725140490808191887027280503656038395447804155957596262399735163173689832269289157355823438176546221255314846287407544824833646791628007975806897919779919141637393378046363478173183629905698210083257529874864813297002495793489965160110102474971868224546625678755705315822090636531811960307752651174349693012226249437528228525710178532788090694864753857445472126721975421760274539045182543027760322863355837578965560032841616660740048576807347761218637708035178127530317434351084767527595004412534375920532909541381869077758062572156317026944435095989633875206982164983517610965808099510833386090182361983500896933247680165248772203690908493530056643568853383915715578153174254047381236570998240336470170842314276597854055966103068464704177342410594731706892531923632731150451577689528418563468323021748736882677500564080418071514702422473583974387041811168602989454719892369286285323157606478810144068981337935216043980860620045551719173301893222085294819987093359037635301424627690608020263628804224249897333335761915801584063186217310576938463169455005105400945947519573908402726033644565187194305177461524944535015721345994528624715484037214751193820079866721254335005772262018255763495914315521528916330264099472796214138389917058147575258500257327537360187558753744212306237224581171790792310262240496607874899322300296268270414789653650563542089140914988174393022902847968977868623794284748908502731976116913519538273992114138930540866940935551161203383537581980378806060336678696163156567220952174733977021802400715083329524206324567546573027172733615621161476184532175589759372428252685261516820441779844608802684021723245320983703213191854982029058548400002400063423128238480796851302425230670179655157573284731631199288673911254738052006631024495999894236748041034589040927512164232422693165669277906986368704852931479624428912966391367332145058646697866055279123158039231714163209494017113857418014350183871372667147605340203701487371244121487919252676999117636431112280910068164538761962861728390342689110904570064036654693273446240761173331533478083722811347232271421141584076483196801127822742442434914107450525405656456921219981945344488898279377582131912035791653510959602490540078719078399756724306117300590257250973292837828559920860565317803951047442776921116132383359563220508473046507738345130798721312678521145275157638837281123794335699434446858747890172411397023678092028323832858656565459739738514378603398016685330365137061309485848455618097992988406653889132940731360624239177311138473932031852835014462052994625181018073717038244757117755084666472641516405469334263192123269467059895651548771647237238218939138365788767431819146474481189253065324605253047002291038168600665696632999410021954270990611300425372548389382801767650155731427367776150696522412187521962394179793690924733985663870276163924200054203375859171815178679676575206582042112017678919754265776876384243380376612114722673149732057873393939701263010236413264050301877868359207618671423971000201445228969575400347637590900427665787645627192162084948838861634700410576475586830987325008280258753837441678283525599897163875667855895991718692024227212331786252641122836222439441128829721336868684594227751906887944170289826085690857901172173588431804179066236264603977944865635498060366982527183036672119541592064209664543830251691353404081975828070995009188828242637860976587318592151089321462013081218723722089820743133934963584071087806586897736281538415172604442580918548900544386867562389783154737914359920066437370089585859479382992026384135645266991481952203505768579405943821720500539778775071830308917997220519773400415541943015301984900759922319450386582111199920897586286089715448007587767970128887181362894949076110139552984578564146792351874434142385143325206605007643255540379281839115222398322872935703109226495478786636506947130442872491610981230174952425140891407822051075007828976101917998444344287153198660954391386411583109834824256269633912197601480254782050641247974928415681957158720551999373928184284900164127964218739350102448115110633008094889950955998721778399564796973640369175091186540911142064652753979191557290200739690261543024247557661808135966385314431350606536453416394808875800623119161269689109336931411769988030794600052516625410967131797482573255327524135162132014796766085771621746894249280659542481751469692906020506187563625749606940838384262996806644324231931250910651444617431011730350795552920761396336300342002607380351231002850720244864006345345973667475141327267326242895033319643379764839646386006265465070916360065143545486457985290400803299505921694371879663575790971157525251275933236313042969338329813243707529437774182411695546197286348636225822079758899483898269212848939570378744112958503221824758367726729108600166207549622275650701537992034909709186323269481400611466752906034698712547846384214489273904054845655340041916122472524879547236022370047610210186606692181410463342077395656586621020835024509848762436440453411501229696755394834163618542095139637698120911406931812439294044045760673338934591685366343182833966960883382103154025672323832902045643728120836942079161045857090270547680180144744546042595045209325181515681123486139634497172380473932645525046652546117376748311653298153851608302278810546584469284828163235643773141272337777962290838620278942314948802492173244511266566474877973623003092200912811706142184446709420183148487225415090313848693808063165541254393853498847795831907595767614557112711913801932944574410663491231950876975485846514684927724829058768654848446988350128957031940984362702093258500597760920924799113947769272916279523582857992109520931689002176098321094541604615590246181869193814205578476227529412683087399930323455828581750675088660443335646327693623224776848578937818298047992070528407347064536167012115241521718681997126363650332858933694603630559946179081971851265177377094363968159349312048217424624032865436329382438823925940080331161692100964384974120069769254263023712987160749636006862666688402631790261437817527611014680674751593650402615883261677279883345441174667044344280744906175790404165050787400598440119541330205747354645437141712252180058107871039708714859171880561274333420250832622979818783002230175551499545424630767448985903484741735491558410015964527151094681942508495768394703356891834354964363517944603391372846503183766536218871909214288433365329106287035772937609754937025441081417750079342003828142156075560769850614608872312994584364295088220502051388104862927115284103552456326228657880244777837651205082842254996103731216924961212797029024752591189980326566211600003531392520568001553953880356197970903024169855802016159368366884755479840189554341837520101345870116954010626469641202480668832628314346179727117684101710438699464819433521793770272001433260248929133513845193632042298472595207767912650271885609119473705024748521455270622109645700794848512641198844293011563733666729095703915661446431176040594678555083874840710657892291758315354632295637335313249027882344302900204239016320097759279733543731309562294390896590272077242363491230093307109426224690111909693026241050273079329090171175650871453718913447162539655592180197918046746747298752116676467321055276026659109007443535197504085433992720319641681338206227488927997561011129608895640542820868191035540742757384590969242912170375645784380688312376688910039312330590887684306700762883867894260185423690647955846833073112578290668540743616162992154689495101929061180409070097676886734164676638013761033493747770399550922211462378129764151105569214179021789720914621607783816931525879003803138624422389714380364008884473269504586344323083596140838464751668814078817970462854039440826525574199093958598422288458281738144151684973135436827743465524450374695000555990312932739295652666557417201290660851188167040391437594505302343674722194723831346122194317518938481366101870347095285059767493414447341649015652018589587959609909456250737829436337557670210880522229753058735839552418468582899291774137897369239392171458778903628424294233773832655195092385884016482620890542412597275656756495760535823857227794500613675571150635460804271617865556318970928919974922363415935065214815815068367146094300891685065309144664479425483023279668977793897159677143050357119041463364803793379283786945486491628367365917891903386811583561952187262573880770132641056604779377432797786623645648678091713437433474527183759166971354654317570107183677932608145889404149071278733166660919673477048898959324060024234629929399562625602753442702147882743167367716389926356811484878994595668844118417842172915375486930431819208251966831276495727516611366529300207954249667668304746445097173506470297562052370460731645207875171406320917182035792927987222423902635764036954005421142634118957401420212429129953496181182756680729536181593953283425730520537473027517628001341031748934657169847053919924582498803561737420327881103544053113456282141154951833539394674971501595640517598503435624731435867999167605944507540807465942924150946079631841349790192434795365537124798049233793783980502220611373042644963159044072519493820937153978806361334328140154031837019591518778897556611639612446333391250190218231746030235320079844125805959230202472733490179115681469137996955522351908475423507865154941520082949267437600081651474112669568134153989143920303518431383855806759210525342886464029628467394470352909104770401404312675863570040670881672048259038381378256946702326228492864121840379966311437786192317725540240104441347564444587806903612344059810740846056073131829094131109132956488254563816732228000581522716359600928456347482636889030971057875708655832972817061762885550510617396538961399898338774668609768330117749956177888670962363542784697248344945235258424359206272993275601638827166812109392233398403751009045911187782756092761171798624315356223614838618819089120322714836583708306712617980706605073768655871097060058561589743447650304433407445797126748304519422287854879942557472546265484686238147373067613936657416180036229663630294212914246298334235035280321394454693544970176392364750788936067946195321734938756595110902431659461607825974999793895946535538632316246695379999514312787169844322437339836917213564771252521455869497063526498480969687922922377366367180362944821582223503206876779353243210724064067924177906108647299586855092106287438649798074519861165142665555326627600337318875451078938922226246998335492563812263881996967415953727045336238393698622479542501442193276102234359896163295071509864526567340674788911715095767545615404446546824281100860237844953700137936117619816893687440151966986274139947454008750493519764145830489087623037233702249878677212309733607880930395788258458688286598991458240871567895081967296663045090794513453096998590912858360107805108805904077923390728996112537856282491228885075843584339983564233987104430401207248107389607417313138269627011783139728234091711717031731720908165640569120898240657601450905981515015068472688558104759462671213266485202140567066867531705260523751673888593315962890289336338303451627979989318652934269199257808480663166025003124015527477177479493333088592826530853767313111844860260671222729400298948227632181675960445225099423875786819189716501891593684976212033431454619404412210628746284870269570745014944116150453010448797700703359457146382593526562037359128342791166750259885494506804627091159020575779269938793225646891178638619803823076453214341736401728556926489068641907129002761098016844487222508944354349832328035978297991379796353286114517428100275475468521961301562789822196434915212536010918264779535106412578259813393613888710862055168458104687104115689408737403693715787673081831175800297595897582009388170613046333263247431265844129449750331869911882213781557451568896328246025480139090584898419842016258402091762283743151869629052809186563675823608729126055273734913264957430367003562500227904467614879433493747661370277201699712892146955304382847880516673779023211220417990222456057828100404196089554787697757142339719079633275265374796758583165497623164332409185126491159459308837196994852120020714576675042188420311482977932903784711369182532821018317475228955655060377232550707073262724627338986417691672132983438624655896442998567752039801573218338833614565401250005075105737886142352163645786842465672358379011953653490739185263500779869967788879632721232696944552336443477497969561383123748347982813757079090866461370592785126542181290025650495413889806922328465281818908205634981952969135327838192819254490339081986184627246614680078308734991268091469707139265505896851265355063393634915009944783327409385897256541201972803821062178644397220474364682844374104785772372387942127357401388122934046213308569424251447063879316019633822593516034163059178557131998860179152389997208156912065574115108156531527356823502042884890277802692676266473409685074023939759607953949838740793155793076990110060433804908666080249618276017402300755653392547517172088694952709517181313641019924658028620282598710442342608158953751912954071231367529055322094118752679415254716409054276023710624569795920915006984708395036070880080948467143504564532282086637259784672147288623961036380033216314829023496310928305018730481707256476662050656277294960941093872519353255747076222314065907344863542425013411751194170465843990759374489516272021335322437674440512840635996452040442710881067892860893075514518906007780553373358194531778306038843995170170673745916465889207558005905023801284060223180106195431613431539934328028681790339732569784059659129330625250791703589563223595834556802085431960495809553997936357316542886344175615398325198291074633009727776708024177759258022159748722276675071267254106027295400952186421790794104854554723523112659965422987435379993742050926556538809170743007795791342148777097589195656398524848858190476011800312389317152943959459824014309743988530163259377578062743459813116702659704429899747357408547004369412740505409929105951959980570354577291516336305718553467583780968252496372118156988548309172271683976279667688571491661260125667207374521504073835066328733604025976380514646039580497193681711966325501087051455991093942436631218022329953339113618936751891673391997045218594471420775218742771204445569746556168866029026057869185732481496799253520056900081923243976534935842784010927326970579821530727177597216275966545038825509733754035921065375808339851470741241982452089775280446423415221001835129817687438339745171826379256040387933306138989438001333008664397134605547661158289839133468389602639216353474638162510206383901491097860724142007130376836109095811788065783436204711831547341223629673325944315506987729573379118799884652904306649087748312080893375780351289953619893318991050657199668601172106758848888203816902923834693054034535982047138121128067479816649237610329233332971899638839361534126205155719067743324850659233417752687963018914059204749761970142090888777499731018462813434255899884204764650811795342835632261593859932483923838480456559719318084146312134777359677442100092335925141178706172474471252635121929177015128889421678356365703297555045365027228742795048879790653885094051306826428207823414214164788237424917521005436374723219152357480378015006226182902610608213328777154423061285195397093791973501421827664899012490351263589637055204652104779645579183247984166436691156080768351109902167904514541521467139628012433025262862395150911244466191786632999311062514115334893839365865136315842792233013642317483892872321615682813525442320014609417844930006162718059990741768695425828161836682014214264652453604223039565609681090741904037294937221275579652573214099420779939190491857903193386005833982817359794705711131256735156164736193066948889068719226428923100598036406924013260196520407116986559792960789406793062526909457377303214430263474193108107199558337790875700593902781401944180382531050428786874079260781919332798050065204765233864313819178790393638557811703768283574414049739303721142093938019943504809526451526286718639560399209100418552358254103767513892767549667332638262851703073766350159206974140674863816672518281092229993861072038529888078403859245521908592894182844856661005792685318018030580075145983267911971839913468246033791702230580934788909002527484921487061044509110978015415759931682606925626736280189703579876234547908647516794552547749790109830021822035862304556025638113398784148105856385723831121460758730479220033630393039109674583919562804074758967806579259964540915605350342102515421960832745634187733792306701812565814849875552113005042551423138389373625555898907484401935614763895479971499425486566430091806711789939587986333215011638069544356925221156181088148881888139484178739991303137607574433829984939186807149378962195475359986314211565346538542652343998608429177894781217831972805494625164143787786366899866194984159027877577101014231637173461740725039670863245593717050419643572811448140819245240843870679792441155740889178435550561151128528823477009195080265026580070429748223383321848519238537422036294508260663740373002790219930658044082469677962925168418714838121983288919125589466208183102577352780959899675900249345244018118867227393311192340305952973845778513642226794128972388604069545218027831928881917100943798907218615629705769784835525361053778311901554347420627711579850277496008056561067792672576535159798678167607771521294478469546042642929215164033842555887583154527544383780955707185732152884355128040517595771034948922005837123422781078627766875459554549334299061278744442475799744326891813333011778580241031548978692959720530421245767017710334106734750929691252479938513435257643846703226926059990007111297154828096127667086654149900461723036984415983343005548000742290094976764808367638185838909895749071939223772730852285566430947065918722270868477654542947038996013211979742306376198319376975908522210648664628810377250596838789838684777974940679538188754948496914765489080419547210652951359800879536316703559355492804807795102482257913590931790208850669758415614466643593544113431584003739263389949726778258402461919172401401876064776674839602875013566364206872952672931946302085428021865774759015606776025112110387765806031570167104911630343172169329261374035344340780257195516032267727225464328306518832721254068495050624490145690297896142139591946784569901396307429392899536436564756381234340407418808221412534443167984054940538288512021590551961380207763804156987815199247325468638985150652905587424297128158338051792771861399761575616811572756222806491517852384049501029399405860836229642976581888464761518946935026057240432709358168623242022911039914480394072821976719059035115544788200036161058131971074023695505887001778080978423244286657308442709007399213032010646420884795077984433417936033440580313759036033586450026502359518967251162675659443846388782368742239296861563295489040437326846449473125332728066876172118052635467180183905848385478448387523964118369198743965884319824512081442222467651124136672366670034802557498087752923976387127879340290694353351253730596599208474882394975292011776813341913557678424206920359543577298687115028015451450164233403255669931692306811140838902926584436054306456977868451521706826780481610479135235931942601625723011865607764590630752611010954790347614187628426366687706328088860697674917806436254913499863039425856449645461259583274311803813885299976377634832847124053283161155826062714774831360410796983758780758527309509591576517070439198337308810134369595763576591812990365401754127660225596330567943738413980530974840230323829383856974255098983980526994300684067445734607651026164824796264226414248623020406685280832115887037922961703056961807729222405808189096265433599684577995687279662750805193306541252230395674771695521304249435000876456315601546339082033147101895925720652947681823463672435722082705056041430029236635638277583973245457592927218104690732635092833188417654096990263179850819475026807023430151778922165098307610895069327531654251162673200135273237260511718524313636208928574199106285035186533007479245619914290392329971436002790596652695892912945323484527518762663389972988866641104005107235287848156500574301808714855237634002778129622820008047269849514912526737181068748344391252173871406841589600866707736993973979566026724007221925469442196705454752854213328115204024282092730326012334421267724058716894176638392268853677237377084619911263849730378809051921325219693756968990951218605188533960437625882615654682697194191185342492446269305750171043515817578317055770422975559874063822414236973445747008333888018608911775753278520373504644184029652847570024195739795435263895294487187489809764818364655123266939800489721519540398840878899713961034297217140683809071212843704797254762475690969385598902764927742753309316409694689877712437737589863633553292106468881224256189385629295608211681622137571479498222899091641534390478680354105004240470442929345078809167470229427638293490836211407688322134291546403217844002893869348924307820001695275365665458856178085863527074500419971567696072296004259073734270946365356991761528331688178474614587621492103059458308913806852019130921590270313322285532457627800041373232365106061767687832286965537229852191001685972571536537068452851843053737997480577561205290289934794626841841362277899551513793482026912218776345346469942445699231646056170778342092618437867793679825175439900614528703952031635644026622330622422575017720603314108555835505335383351799279065696259751897835741310680019033584070703472605686596676891252091396204086932815859949390834296022403731212634792401723972888579443992603909575262432075923743211397630351094377361412143254163187832525129968920280311590135896381350235203705524170160580185870263869805580058445300314940483847514526700415461395136315831482295540748112223584279952981873521713323400511573084662674542655773418659855350328646209457908711068297757888585662983775694701318818387525545291133590799543172852391375527678672429187591774118040700529140168408395594288741298401184301957319617091701943113652963523112466855176903463989911736021369490295289797102479390627650196096046764494427568205502969783430379484618575544828555851310313866253726726552648126284406324140994619780936781830415917389855819492705785136500312419637243900307267702232959633096525225629290483849070831496132960466517566531602346036351020648484470472077919538679276542387273971604669394282309910410385270991838396815201805977239696359542913553169592016318196359497635286647225588709274663240296077428093755139148421948106725067808491824458358565006248912674547550698977224374709042903591537205834914675325765027885794026969903214421535000161298130006924058881474419054016323435004197413358824094080150696241987618404072276170631398770598028004185931499683641249711892516780153804298998235900636792102181144753742291418051359597038501308641033578477339096919158796512273738631616594707200576566104533092140744943953969244128018555184773792034998743482439632119658396788231831689715995149574500806599480980074003149950891121363341628373190303713536648367745316413126282823309146377813146268898706196823861984641304720879904692904594372263202822532625838156705446060674442726232938818403977663810517531836462860345223411289062492134357653374305288945345836613690014688669049819834041752713642159327317270356860933378185966234423929281961578724755354424991054704571459935879587902763230246467667112540781196252014487625716365484796051247004011229582728262861038048243903126834323890820662766855235367213242641995957796897173218540273470986835818032285667603606045618684289200877476339435588683386375330618288094478343986561402898632663083525586192445452801542106249916466155783553233434993676277330008765572308997909681763121120891045277241556422374266827964443047709282449526112784500717696637233381534724356978353474603629275449872297752671287859860679871544947953806426236674323983069443620467308780271344203469573699833303826583439164502072181215371158886333091700595254755032455882574197083607606244835208075738142145976287106274967300555624756583479126386867323142380047241505117406772223965028800797151088152795692382358108230503752879846883370919888411109414207959077703949770039937396002647745631146552043352913030222177588696321244443661881285830431231278356029935690289633249619185364372838015881713197100089353546793958254672376508472455346048110322250885613256287027393227810678010085629780366915905050219417409803143642053952154929474826603421520370935485482794634990278347374652785293867439881979156631012003028766556816307191317340384707323428494704683399592615155158263844086821298318947305690809351234443786093685410832122011164578205701616610081585322136992095445121758961250799434432670450933525126849791076827061986178657437879630541712771520906956979037262297295289946340986660026069368266744683643152951864665893207669148147255062536545117084846140402725706569747996944295459863021997246075109988038128915114238382500638560432880342535828057502103076968330570105736246785740456580000962091023426107751910642923383523748146220122098731170755217976612318117859366094372667302631024317264792114312421698413588197658105279880775222860759050055863981448734432545533041883666178491585262504003537575480566394984873993016775892289111351621668620843939439910503396383311147226572549334567247186737366037305493959846370969867417179434041723392724892100789772972780636680274258047265430856107673085986810918210774113681074199253845793613500981210029762728959657694507315798497545440701789510792270889503096351990794365992525252192961746790761680801133849931946318888755714473310441942699062983432423167026651372230359298885254000680753494757423070853363674242141778052337366571272114530973677389845928550873147838958148076159420586213736586938907273380809740556942258679746992267781626863165113206503922929791890020784034381266754038333027012127734923803399483559746862856031161585887242169181672182979661938097702491959360183886431433278245414521008169196730419481470568959143937842862022768293578789873053345133037868794594777627086324989802211353127918665262881683095659777887296840747302285545567154515983484068795707532345859478760474996555813685234241162001536774391569171046232397023279198926334962050702966661709682998944470724996385551233046873513658526362709935566375573473959557930755800732639861386154761150991242986996995929404318153570725929305859172800104724934971628543624067268335630056686161122243057041691520483578267008075947303366194173404502893521632364798507611965198327914406196861990207232040769304667083639376027531519733503945930781598570248223711366523464221313865694652449441960959880991449661307175410378256578401419434854186948038637411246861555091379141234573442754422577641398992677700580473254813399313518836108399469634814101656157981850906119437567685215959771314812654955223936565105183067337392826507008044244861540643189028587760747103851674080041392093017647596336713457077759262696180963396631452325796709577013762308394161726044499056405928459800199395958388205855204199418207435942925506716543315645057106636581678297512793635476650518089658166422621960254194290912019545949539962151284939775222898601967701578393997809664214863871467972617186688009968715377964818873989546064694713714947164474999568807608603642438303149233525971120836071251744797008022170792090156167808757163594598433276861221883017511403916875034866784664939928398481631806483058275885257702388568222662168167684803983676275162760074017571496426741960786641340605738904389043973020247964845043128713445508974708772114842062443394650376013525355202811582435777875583493621822975693936609807017206684240835427077354259302821722262250632372191080632193841295772712219018624987007855287446545740009204488518974924035446668081651983901767816869533854657859817709135694756757105656852725630718059067380495578742905909563928034430927877365701162640626761417996525582273339431548623314157107504400010083078567536481146515768325196841496739291927211925450280811401435372738386872905460505011021665116455388480002343808718356436496186607983724052544253328896397960281760436094205938202258529399703908602843385020391813543106952393327697223421390078428774900952754893849613938909485592592277467504311187846664349715940320570077541839788848423635476608239706163087275890460054035463886265146637870143881361164030596321529411964951203552994052318860042978078471856949519201421931858519027701044169225694755724608610707911878748827788967657072103409911374034354569473237839473475295756630421440645754867857838846256134788599856565881712386905771768968828837271605292504847536807987850017044315352921313500430162504587779181908211596947675022935954164844359342607192293071626105375566154071848530447366191048126775022680030300121802348769346571721968607115425153873334946841580967268485668609318978263444487497284939231925573683276338663693288094313269010503358138622380795802670665492247026732911944443615437782515210378352223267811145730347633727817817306720173586935208552164541862051160528879788628982643115926481194806782830236742370887681795681111241155214203897477949232125606505131521201693878485259082869262781158105892825479712552926243837054090417822568675677216357168683174010351303215765321938871050093220282268144540016493698468535897466899322722499650109779284635416112134852761976974666356065684791386950636632005155479501910366310181104225081920571208027287180989530947256659543942707299398862013775800231458871810510134003839540792456196110543519202464370846733219271879452599121089353210743207062513681768716325466099298949809828288639230073123448255019166896037979177540308969166074944845175565442379667649298533754960236610261936939269747769037436236039214102697281400889783774879340232877992070217891515486048686311315164355909070216859573845519840547945204206464423599711297117515983049897941531250887043041338071734001440481964132630459384557198591700091331258596091847630054730929944673208707182262073711501995037393477730387952989081724009136344695640710432634953919097336838997298994918084662400432106973176655984905687565738989090264682560803529470706841455963881024266141017143940973140434451933009558845277511745217764277919701833262122257914444907518223456403908758611298545147598054644385882752406500266141949733671299807663730477056856471135762414821753573620407856758709739775935827706612873328493804294488681275681114749974482866053249429350515970184935070489057873902828029247572838888386082157605490249283527872202169066980312173433308015446448971587358327996109214108375472247709382291321728775564793361146170283598529559501559322626762486515090258814330515619980994635792040903959905475720099365946329960174262521028248660666347384942702988220807634037469885708898043314207425897078332006090352583871605472459816010196467324022011733050517843446460184928235530741618122614929769237011527052671135162209111916965407412848865733947081238700739428519037821174431443048143422512104110293307386038600439959180718121931507572841381561369125249066543948335872626817761828057839114185292311318318050617720954423021285713075326611177061523045342799414277942764592088284021955820674900007899904738234314466453943800783884666978970958977830962539414717435307136719999290761189179572970031144830046758538914802692463970254223044956594753997195652273944947881920695260113772099323603427195232411071648928522681081456982134116181361090752281598681258065408888222578995483284513001030699750482183556815796630725972253056009293262135852001854196036998610361990539045617256565161238787490822911324957509893007165927276464154124201777578251420925123844868745422175874460139589870126578514562321656403494199039516532220264594977986091019514626516041045815986633167419379628881528020645758729517887246881701236980918124278429579289131213189826771883759472177477279532603376378423378753970878345419288165895522181797625398658356997427821913858153624131479130894240525406412894257215953207893083082314443848061566585973949794557706841556218981025798299579865924422541520089526871422482458762833943481963547488527749502121840072458422949788478526834440227419368328738976390852724223151794909472229052003159071571220549136202780057953356922708771193250671900246396319109834489295387492978755202108996606041120015351255273488370236688481718788331463310925877873123066996537470308109693698176135085011733069255191701065618298951930115532560847281922466907972852716062219521869235300000260140349323139112854093587201935924629618978726559572227495971243815075166471730410976707643342562550860351373229022434459834164238121059709189886232194901462659625351113025705460427424752579497157279733711051584660241771483947433480941406536505096588535154030283785108952513039949195552605489789184192709376570886995221362117721211466950271260749687260262224090772585273025291233530395097803808340115296029676857479939523507915804038629643855816970824526917463286365723845968712914861860161425248651907122884936684745453744707127728543371947185880026341412783632767784262173716016944161211426890884365209700882513675514028793779957118923403938540518081927203797757683340288830743214113673648857393260214244607216691717163697701883436841953215311200658468159091988838800456650163110398220246733791006940863137141763746958146294863362072150263550641928421950541819776996354311847588560926555282302267629222275093327080341692604022399198441613339878757613137568971781742512637020339272449520456776822726617351242290059493816880155108693603420171244648636344605336425869471174207175705130659843185656600672810238541466701214258899051427678327064037350466829743083436137144968275344313873784738692154957734319417847751627941371880560661454129974575582717832634683201636097804894434674012007401038855108974469489172369259222103987156374878894212556084334995889861758040010912754689302221448000379027145685381735149537417023791157329163899686756595256172897982301179882723075216913186588759534323767000756785076065085360552384222247315641998253176198988551653562384187237451767581384505352323159538033555172932428132201814409524576958762897611160403830469279727762623445443395894356576282714079894531182843676822058431932616133569647281236089745925708291707103405509146636474998211024618206108481805398881656694819680335138461832342920310628153981266033390218920724680262291813122945095929588338644782274223043346274892080634690883911365226474278535358412058258839512804906912818181873760796342524460593272762780401347034094119197586527015255207208813236365756043204691374889939800398738630734827672674528832067487460798643556385086886257395103260582493831997162316223681667510654311219604049200766366859070760475232051975683784329904826254450323831603124465079096612079187661207186720375371315771968929077431555690866997825666837691756086723907444548471663905086109626313545262618289575019172638858337367036739209475984044153843243883801745519665330529031064525810218864173556358885854274413307641662596192833278011998859340049545878607553885383019516829226322329443269077767509383462516822950721980610414954906318623083995667321065489079959149117931152942083944324891432576128153525144482690537198585803556930937038658345072114123250248068009811920317336329527366567223183495044643471375251295513200042355115552441164815242690253401870385555751730005604957375821689609410761990901865413527612609087607770237740275613138009724211100203937507140024604432309927452040996200265262179958738648023003463442525318635221684897937549318680318669845172056258632412077966128457643643997469196976389167763667060532401419484485345019407048219265672419708709378646431526092089572531876817926394788703339656812831243702559943698201197284902488824232765286545948628426086771170758315426092045258591901499811918526104096712005434597617915878431894330469732405852340561848650627506273448178715847252373518052913516156080851666454995146451752372180637299980865818406078484444969425232675413452137812602797599928458878773831235751504518318942542071074726161540882304124417708083565137285839566179185544779649698859008527133255795303840510950489522442284223745180289291109704485359221682941208658286058163406010627510074914338845096266309584929554692427995247632189264485799890121818348725851533223987954459997968941459804486958669060471829081219502962721706623659654279958459375582715938491795678093916236618875990031149363204475768255652878893773783863994017200303664946119506007131490353827538130629704747019929514353381883682755103177674459474674618559457520837950897467099726616628706989780402047670910905977303673535688993223153828719318927620002417302745367152843459307104172160672111336706629471872556099914105670876854869083015745587283676779253658476691696251129667187735131243246799924243037525575555396224749747767144945028104044216057798085390104699219567702680123668376918622784383016203164173798561491123615858594513585356210804439388059952402885874048716344231192980632779442995851961169512147218456240544523157574802071940819647492024880195961292801526990566971515106652353175072113463594167612359005329329599140032729275350163784998138178241806841791544964907995187522271431121802084702275016263211629354777559266703295685035143930952454315528822094646364111486105563313366874573603213695100654271617037066570969876890493716408644504670526112377651769156066338076257598564311798135163087500240012038444276583415152403260360595770737678152834092921598328772480422015281807262802676418738757148857187515275188973042713610299470781742349379634747327724439249693820558019310306522114606294098330111521433109448738568109542000644375955416770060662908228110849090280758591398402687340441972944046723231986031897400922241311141363618236602383694996087426791807745133941392080652143767552965634612828964628926797037029691132218765461023367559922042140049865356642672947001418639890754341646683726507226515027754113577390270209740005087642918207044470105646689227560991064819575912080212297234018389961318359647443187243195367908717223731952910771719626864469267440536807561581747306195275690655021788319180807812535336801096556022067828588719169051284916923036695537505044062170940596457847342948080919948366459782698191399656269502684477511792691774803520575178124454843129154100936577529240298248719428775967600051460564621399908357934674457404872242173259431350652638559606392293763390905504039743018505084717720774410561868271740831167012458090055346677095828998731996612911973235649027822378305073525512633300635533886899999857981896237079272669132263458244299550962223853200199108768747543034133373631618071385484722165954360116746551826573092238439147742894512471171482441682421709538465400610472059554776686668807817010247539413297682277060255050877076930921690380941820682399181796189936077717460429556457996600625585241696193797876569313328439075568847231725019810442860026734988957523651437698218759673679269001176449773135166137940228786685213707901692927431761300524213876530014641798921968295624782392627512126041952962344721784773315477330785636636254945138921676017868148887211638340380793470175449669447215460306595917861843600109299468820608441096310228384251787270872183802700619703368196002989973967962512755579881821198359051895834162633593744380282800859121832841822132152400322203640976532144723655006990778276743298896559781267341864703329135824590659140081980767700291937708101526528998337157495172444667038298339721062558792895461853036691431817815446016145604541042707569025586148242434202067098935660752525614608694991554234478216303678439914111283535891095561007999804233364588569995832562126190323606330212445386795661789299691433062614895089024334743000313506527737243859200834941228220046010350208408788418357006301226367881728491930792720350532381919469362113556680810818500174721824869207297121247615440398469142588083098246614331726799320600906852075814825194978370147788665436207869072568935184058244311298471247333783866925064012121971708716618564755155352030279469587915995368973663303889182440201639163897991234169728535130242817863012847589471751602791864614205386971711257896006474686190172329960584469162857752893659630353151610531926324176338335085489450556617147094167050993262790058114859868118782487064563450648137713172310008982371563395404551163944743124256700190938641652602227829953985299659449824030614454822590753628851829484596106362706576704196705267442370300834989967104107060227606871080799573111686475949544913438946999690041022274012011506564386459492063517098418203520355639414710309329513336997157568983953880288867996649424446939811358115437463631257922468295105802816171193387418073221927727465892627779912790219704705795464179171433965567599503659016398086570266075035687718619024515385362326114160892662481514192620265762839252762837133033687257194514040665781043108742857079360884747517962263776916564852515290385898963612491282824304618712760129562092075314255851097343066765043816613582006334462886986280019915542041680221401025609144207670003067583563377132501951638431516571800240532269832127164978396804140867281545922874508994681863396914685126411544368533121655718407447728162732395225146499854287820115554500557370410025490283705121737381011189030206475039565875821408025946856102643896634940447485436132654061321677066604099524592981315822740005633791428428688611545452975933765309710068465681166079509165325829194339821598504714851371263406028039288169064172519285313174196464748543661219909438501409824106361058973464571296321553806415947986116256430190634069416856755201525562268757143751811279761833204706030491845178002517410113523497759011421968429941301383814043950537602770226957196772304171071153101809084818782839241859823617234078627668354881847492012803811940108718325927915919209233787216948450487147632024521431266814467096594567406985238614530973867493986920164002453111498515495176309453107390245050829040585900162328252802015639307410483747799935560965806166242593740248699778934132462274075638710806895591866766973047754437919396388106202642534281692727144034787194637281439450688863524107711910337152264912097711172093307052374393173988976198116783702910254626835755869659034713343257082544178980649399389842646544290572695180245922740856050124644305264402173081969955708589202255448054269437047441851782333519773639114200028662877665142816402167760379108830542827177916143976850061786370519275320536474373447529263129907312641911242388630869970564506997520087746751299610293517616163218225843559008912948426504789706254450882662240384065286384389501778986733017902131733992219035870968711230174613795095391791195301884729106296780925612300986997762120296124427624908150485278445935087514078917843752960795633479829489051321410287401109571442166921515442802345447334938074124464802711499877522129264169344142616109760782020844938917127195719323497994651974884196618531392110707818199060049757311173585775273937978310092103556219483895554818013784068550065701805383346410004570342385769605110145997491086258765110743736341969981472716770424958948590571106101938016131695628609869928696306659592613589717331632053289688889484264924613905509184343865609236299493967007025931789918493983807200530149553246702675358701577371506169291024047137464677585458926120734228347910129855544168131118902285108550408909731731269964935284188437290516396641077284269439369698811933973839806617367702103568224757038666806661520553443652160035857958908057194978319416056334626637148200481143397344118157691599971644710280930194269967038377560585176418720379026249986131501187208258907920648616090790417491381908168124127780261360482679311686395274301324568399547728300706373887410104079918153427532513391360257352472781911659528073854795680628633104320395639346640292791254031119209255050285642123741873162628798376086342099474666794297527881886213596545193287126255021863350895400705144709316572416212671190330456821092374993240410150196264648949491827204665585392012538395566374159030795774074795948121859844969645126198003667643585059019946270986305085537632287111017820513996047566170028147908784531683008449762828952250938996238510380502950684933469231499948458638320994263325927840887515162151522741202923954811044791111945657651910569746479962384426338692811567615651329775307313628980214151016125436030175765187473341995402056908873486245911177972143862625887659796707274509421067515113197899899007850030477386464910758146614229356915854420419949525749394036381851026762545834432060509330998572649656889452376532632078287424724610698112957630578400489977195655891547590832861995804466336061267536374381830331782230712627170005240039607939912760782784716946313980823425214941780908416827819098028529387413589172757193667340205610943617904169156373259598295431788787871963294579941341767490686649753362115090222732257580472735851362455794236290902774681726488555851999449283459006503658259461153466140996996975904567103338500323977839203483038451385732111294294066694813613356287491515820498711967833757333060753716842056894315844392146227862720580645222573019320047748978713904584506031493740048579971771219222871521343585522185052228409544617953887659454138903047520466944719726615982148899280710798544754164002190463097090399424738328230063446829173935670101895910160315269206944223335951767604045110325389251641414770689163887090943432222088095980504275614000128551183598167149921296686338435975555347777034839551659461559672887558581006599349869155246161367615669946428504719729388332102680233816279936828173353693919224063818489790081578063851271512067579731029299993302631571417883795581119960389074854480447090577176374085835222005394391387452317588597242829132990057593261547507995519663722917726926933823447018579706290139299351000815180307530610197493435302903218208700697818082650607313043488057786527558008217132798222970771608333343112964498726087690156871024053734029328815685297451539404104367208832790997840702013807146689632850456537179677925912457603088935872404817603359429787743109804510748570457051302601456075122136652961738861121007799537484892582925520691174911259137328264186723645908940328638878821267644395476064117666624005345399652252027706846514282846072661200859159522977755967804745084108747932991945932991886892551725552597482230064007237826021013110591382945827463327308146585604090690326506534845532263540292842342542673326383721353529802006586005540965453403741537142912527826555921722722297987657238826633833519616815993261430606514764059350632774674138117854804872477585288621820029073772921866610484100261745210551271965523122329023635122259012955686617972663282587871156796526155539685738460991552887283177497851455293180995806371354810498092471414280445517226037588580684956031088637531729012558580912783701883005173961035266346691218008892092196632736355514365377349204051339953703598256211438192000267297743393422402444731600839220084080785512397720464687840961756082845764676845895372084411099463879525217093629366855115666776571516221041804733768604953298858377106731539032216083110533785693307543849875616909779109805067277118642573173344940684905836518281000550861458079921033505485263019171679969072699638282315392752485959633477548573174678531482116551180643216901099921431833900137978153637154371619582615252391429797147971090467147804114730737563959107503024316843761419136843934692644277131642051744351013066068049224611972996028667239331712215301391012017894273258179718141392573364479555527388532047977626325473187966806181705930499844116608486385237665798004100485640825034611363409567327213257170631678918785638248602309316826636722149377684295138458890525483348663469095947654724346507479970657027619170548540151745282700529000907401231038421810756816229940720951334880653620088027236807112236797817775763729103488217276287561452408481585228973301450455163663771020304646139904845884108660322415104065145559386024287260948907431799977878307853654457557209829980199478874724250915793511694994404766181218516824218734128093962570073200868591400951285683180552592653091170903114206458064464705774143107959860863438704260448007329844245485392206794840262079681318313026948632419920952094782881946216611854364854678984057908848702351683058361508779783815397800608455002064052831213511232340808351916740815370314370362047663360563663559030364460098443927255413647589574766684316825205601125354254741649885437737126101751103574214055303563443954081136493762478428509329724346205625716452028926818199726423591340794111007072500045514088690732338062065847000018190495769926686922142703886397899211772941306464822809755380164819920249505732667815881686987029152769369916546026151204724037298130156991639249332918393768536342803366506688566417627542840528515482819249384967231802563229983413155291571049574484209810069069065372674343156771506394793018464596173279307417842683425970478724788516569113031884547490032950954434427093100144704833612053385686164852792059676071376472670838991989781818051651382928853935901698988084341975395118649335100344064463612760892817581648613824272358695829340773563376036276855770709926666532516792991690404543556503870904465965352648675947516620400921599116475063310120945080226686611874253492379650250573772725353513893803041882318482571985326681865432003424607416702828909343072580255486471886012564996316083915179966423095308292334198333162922145952899995085258640680050141301571848801275814316168846109111089115436979708802902537816213604565056365300981433553137583578258300760460262606199961811446175853967133039483789762928413501360944880895024488051482775515983683205336598403782754207159906005729614607153964802700720070572379055889888031681809051702959886994409612039282205554025580444380646808196276009584224487997369989333876961113575332686518516972363066437470565567870570267220712338517845746287775861796652139139458806286151944355664995514621146544393557607376719469707438229309850548044112374406701856265952807651814347583645615788132222204291604496618732765287820068245984673766320095852000909475709501346925923017096429258415601179717286592565330463757841542325620286289810293109435214909767793851537252067539531775805658861977735738853099803468879809610385622066763885477175486379724384957645977026013649940747257202858490031059810112428106801168136247575626935960158919383280567540587286322490724772210032622121240549979103067217021845648566445972858228403156322118533001982504924801270903353867702210683601590487625221908305687817019785496443762927125504021076351325654640394369626273246111596471421961988731163722955389518303748690089916451787271336165243012168243960734706744966080428177275889114657817185183911208033940363096564814292767619981918483929808876375321797542721010507452689464386730403810719497449817469619870575101684267445356482905220237169402143021445546281772899312347836044821248531994217977783527889045566447452897698260361973354930071702649229879250294802605892501247688283409409145016688018738567145883358757052428528026632787662533616961071885282070008649714189111460274449624780709397361196976927357714101509076996373705098519284082284025438570439785529821150584682332387936067081722679876251855500045671562444602865361963574576759633269894272886932082986054225216547780359728392730954636645739823182588451815871927059426910773534542791858209587269105540689869547635837312036256605029981697382472049765786059208337102520414497977139586967518252539995074843586370409580767865221476434615989907117666893782677710253616915126034878792352090633468985603698724625650143484376084534324267135694871733811109024807455910123515104936934586805589534517396586801514403199096295107186578632238161263719762932177762642759648979281027493077891535980119704750111644189580212528288273674049995648636320275900774360245400020186139592647594358757588498039719947135017734954078541374958103793212519237158803405272662540468283736583953100657808439296560252253142816701505024304298977098765993361693241317890750878118894520913499868083847884901486044535905593114167185722479500572040546418376985181843026321262775525202062565626436801159773237669074050546159024845682677479870628780822561534882155282704073129572899328612024214298349354588152328281574198733888027503946421697175688018758108660984130781748368621862094765216748402533295344432415903669363878264865651339298284039131465944038170468859739442930900888055314307523030642460696621402342014249854865966412886076656761833513967697930962802611017647186890480508373187346732283452515873442967722989408770848212511549403674657036411452686235090184326547374641827258492531204757132653825773657175113089126621756326401659714846345447021470350858305960871186061368361660718906029057686727615114543473330474735052181711443819809017806180729638944562940415954951550492708928743582117712195314061443087685113931965969694209219916204475311954337087104020736070671706828150834422198030687190906586483163826148519340591253829321369214971313015775620364308941477552443679840556244857064742574681045676350743050130667088381731545199840438107697440288530665756766330418678129367130459176384142180667058123644323235097983529074325080495277019847873082547370803469875040225623067424399656787113032265771376836489786010147599379674816877479843437944256340314283294378683177561747542860984314430429477824800378393652931545877580991331507240904541304891925391894937129896738059152336487690207783472798800272061088386162245371076590914292124719666125138659498333273490398933728205588665364544926447576098731801626688849354956764100669164378434617388884086098823235769593698785511174404724915550678964063991773733803828790503877601473043349869095278329991343749362041244888186196549261476360751479599165419490178464796242072319305513595392128549068757334345346382812373770418424292125231936033388888612131685214085837586156070471542547908431912524642532578326394129931224461520028753218555323476308220408681018835616396381012451514086498806674795801196146286555230956863483791268972108305097377534975006604236145635092937810255659751882046031513521810812052501224968734671626177064381099206782896552582304539826708768862113271323762115550069391565864517893762108814570938232845479272545334911572432777996421245443327140897108110127894077660972132944680932295133579138466479775455832911731558986709047023301928923629213215293592988446313656496193151358889599920974820866550839756368245732280734131211500130897378455685012569066102843421755544245060530718526815148787985666098893189370801535945309359029500903839949200606521303377648492662226038561577331554377184010348255928606472095762852065832758597007039871246588966948460617071948773097518213048656079856748886739536046167672297231815681443932538810941339599840776876819881530721781787948287520632365538007798500399231953273029130018533926506600167358904501977899275725583751399476786976408836145111024468005507237382575958366086848695546743619252875505307391633399063686160100013682889162760107093855912007321962257931510971316610919551250676772559884627011186476646440496100667293450782983595011659084894746746925020601760332410481592490165343556599262027626575754283385914038321950650792610797965535187292199561492258084573855746110768821570913432851339528151626619686927478146172971284657729610225963078772035773130916135360571261976840319107916278247717498006958041541466883278432946264994407535341429457588885052930722596443600210717239785926292278831678795840828926554196401649478951575016018745144945373189911788111977773261363905711965053186991828748851796725928112177656166999873695972554468687786688747722658298806483338564938418112261966577689348820879136428153654574301992798263995598294336795697723065247872420889953053946160406170108247074494153096393799472275978779859624681804411788503263612231738975574662667541657896918204711233152543201654969252738222752891567048488550383215458951241436418157035043175605292978685727173289642460291020075318373424237131655056875480863770509701246986738564208434739546527743842895856548797640572576056944170915643451734104930788562853932126947595937786918191241689680742509606945062639508813940098775126502290603531288135732239799472240962582520464051265498144498922716622871920310743177702524981355206205802872205955095765003009058891953466424404510952729332845189643236435870267582817001548574291010827940761843774044268372255445739554231223690387343626705347044706683587403687318696352322559922833142083846424091999780797998540665979516962500671760824003675036478456259106913867405138759518754626753453802074769720911756134961543242988187602996431609549460172023865087029081691452615972653474326549088952048714164197353128873841222719841076214525486941760256614984082744925014303761351482578723370897107009276509971102530735222136216715950528133980849753558858887210342514007685705549122526737010348758940984216969065750399629256439236560673369508329467077998383414158649413398103423234793896998109777973788231487413364656526912705055030323767450074507619899496252198129638239667825589416390629400042967529817660696615440532752014069651757263096265214667732718464698513644290859511088214951938561295163777125427863712951737664720988262101171618928870491401814547385723761147075107890559519737175951612557345289298861638174676507360957536865268852908209328315046316542703355577881687921641333666256787746165161531735961724301241432336496989854022335723819652286512918114600532021044830616793878598632293072288229323792074598511808838698159607185472466518528323494280247047392919793019438347300625494252698689543202558676189324091086873304872195109410230984918385814487517436617993570628512301166242397302918931028931764600187972899362608037690581115280776558143933271901859298602278325127383296114951916084441146892475395225020659497846839576232641840791652876265112035461052589142847293849609444951640695476199148199457173469702502740275080248601413112042096491053472608919303458389433357290126842698855200696753957179432111893067766997518794303095836519323349967674907321165509219525893857346382525263299540692855420919699004265641964810074588580569084411613384631436591461336912611927569479412923607308350218316941113499497460211488459400749660890692412126566045997090425840307991726303601287509777956354283380598763525162677920752398427197702699751633730923240639481445145474791168488999155286168665692816859283181311256574710406765622133997482005056307828155440358215465732563514110171815762838856495860703770623330189779181785726105890331430369668156014820386751220272917975260439592008598696946072612645574652435364839450151586078837046349298364633541313683743866733814609420548076179898890005010105728385698336625059138033108700971903532979648235712327753324082607561807923768997323166390388419146705756762768728696543447911874095018898919554220597421465422105023482857616500166155638431169913111374333347559927115194983714943660677526789644375327761020225112821261427931086353626651540245315531057051731615485594777269796179271255901907464078654041192350105344763953450189757713585694739982026167640110467500128492350691591847827067274368644135970007705404502797916257178726885735997901839046011362080593341577041534008351707759854899302256291545070687277921246818747191371409675601946064999009839900279636161897835646141469189665952662732335746810290645231229069678836255806756071746000723913618139247154386403131871285723665675370358519672201283282954714465653221971558603247277817953486007490168284375696420173075321557197075654377063906559309627153166113107716897424768465521519124597324696058860443610797662772352855847452919624416060384999049947935519498760006412821669293836544231959996518155628839523966287779529452911263559565613075554077944912798123666448413021529259514690813020440266280951458771999721506171912264279041909289312902921516577570695186848119266368306974467730531506675468810175723360521518355379082639155321514533447565727165066892074420728450252461451843430316452863282914874484013295008117978506578237862836262152567703238611252508903522805256854127736057289320594094077847116367138416692419977936965711920745079927327200251034009272618574983446008315663572269179665020282947913996737146732104029143782626837106469991674233545109865533156603131287351341386899945278857856619988636037427490109737187786710723327463738453399523676636807576961123770081312864162176889039879303622958241550898053198092327222486074284445541434918692431993718453293524925315438473693624872109584424583826173508346838469402054146324006401994139997652237134310509752627595501714729005699618803963981492356252146334454113523127858148531262870758895642956841369328259434426757736931133964264293018798687678198129952095112408001103245239105317567359779727651265537772164083989756166589980081090396841519125060103991946921619730413256798010051951025820239208148304714376582633939326219514938614895271952473273155450970404342834940965075559526245284587668747951129993489924100518041064730627434472372877004765369287685687139678528137147375456596906647118315775146834925048553407010829801907687187324128717763126315724587496983381057886595497701112233574886708953898427215357083281409366614603042827592748480673620774884034414397476602219337192369666431662103505770623444991498913928765496687120515041122636622007778273755590279754950379164587247920483028425149144556722777913745170697499828736202036332807853348796207976766325407389172042375115986571157262545045138648650197346914104871390806723085206994287897696285478230982886011629120050688545913916948779636756493024761700538975444968409769536961211559134578318345718577301388163759164907968291979373257882904813670556819441912145725121150591830760661703656995931908668678900410107809657409448575376351502058753289291194807759781243882079246632138998619672963913355563091301224543148874893611310409232546666457224398222922648372078291943919056651690192461183361775402739581271408665237436690406932681087411356424078721399118024832855020806322063348910670515066694982741395718717888666218821273512564530313754391739974259224691932898559023274016189734400495076539153794678301044273842351767397828964800084960076263544783151150555959465546451294025116809729074011651260082181753457456047136367267922471674334548471540615671342009162294594656822799687965005556408827779754781479619439156904148158586564187748551608242181472671319725482288170918362965717208997192332681026630640016936560292516459882157539852496402394903246368233414140683294238463229334906877805242982415698072044497740451659443174423166663524072122398138090124293020246676884411036311750156372051159426155993169126806123250483638443874934719640578841635856696996984236859408280484868229491986195194286189577583287618760188506886720396440956724848437830419717491676382113226482472068282589559594736669598406787552880007519079067409796274459782960024763397769413041637605016877977984021768425173597404821094469978983594737995652990038809018083527476240658076971799616106255360072233310329709810268331561309249824098230804271204308546486551036362159893978308731723242793192994871870819402180941804210042578175681509371045318741081983354039292763871518386281959885783586477106166617359143762727114051461321685068376488196739058819801598199311395916745264005995406852413527175173926661774158153858284965365299354985672236321460781384563975837741961884224311014475414503155812420548174990700004180447326119852707001064414469423358651809837851366589583841451629857532160333841056610518797357560546687240260786932018386188940689383785389412669848059213682183143717004025618622849102901169919085126073182930645993868847924599393415835769513148579560494146200196170346837577888020344243485723839376215444446272528162548062211004571769414645961475074869451189983706247436597065102228637834137901522397171226183022860304014054558955548536429456091643910417421385829746032117988958477707480008098398048884440126339771821126993622941171783359584173245461835985413285905874941725961682578582365371794622541590537392461773838039607655247058901871094023185853369003641556944073725935391686102902911910703307121562916368226599225578337853863356466454133238537345576833829107395034638427426007607146607519170050867570429962219520912223813372423112635181631393244691485820882442509870564962110376569125928472473864609484530123489110393804505976219117992115902790300150002446310873146699115341238616123048938171708785603822534407127863687793290532617652392733696885578423971962051321126115943890285867372831405531355755720343887555612961433489085135690953533428519979863386687189927684407926584111666856848417471445408696082876866848181442601452340418406906667240683907684002807178794017423031010782094336125763837869256840949262556087400381380832972498545215321507768951205310988110427536922266099921762164262783569440644209555189052406068331985473230626195376542035881947280829138069094817909062729226100703615362295335611840969660227936545354137930314937793498121560035882145268317672295073816439130452497283970260380283111052619515768079778120790083238004320679134897702057656160576350853335250400569390247206823585020875084339033775617785652545433053327559479144641559842155102213731088549770084974763429153392058464691920608267975203397874083244799016694100101462101046302661906355506438239620075431080460875225193122198563992972642521169150211342474701132835063447517663263154053186595574672680501581374441760477742235513142562022902713339213152881765204497450676509254672323949268950144410458601912468671038649559991299078631118575059237371136290790524897644658664941376701434905202262749259004785679487320586318937657086419265894823502082818674683353326484781445789155056532410181393175427033204343853042079252919975887123395775209904231753476204328406130263624548160690498907145507174684698390260902162124623109083079219966189755354532905658940179398160159310749799650416491964108055960818892240130702300175904419078532569339982409269522126565273065064450334210974400837994470880957740776145549059361109003406742710445190570487352592628476857745702260506178249906658642426169423406364681832965141271251274917178390201575200467961002196220769297002095977361965026720781204162484705021604121517665699292939087871295000532163601829916900197338306959173032226734562473253820128078845416082443429023593031291942190005169880670990689771870016318867484366358172130955302835279545422739664117200215079564476675814029569884857405653621786424057714759853662049741067279184683474451771542777204065713903265367956129411808477863663664630734097832802094887825951921990674012553823724331691257203651527831090699145432320580010993498996575286629559806452107431252294189403955672292150604391721130203833154436569208330408405949886786089802536008775259273059641996056812019596430491722083704619779311476436785525894286553460159482070949026209452931948843804008111902772497804465861971910577232068545791084307050139343403664323667115656169051116265269559874127439367227391621802067458891443410215525442097052340507303375654944573593984840464213725280389336786954372512456614430370353077670283880427434408161696362008451546210512785323360293007281159010003190801332108546907910003198911351118505264057865291698840170038685557953053941652744907356406214285472276092679724557200444216375484594053144229845028755547271399733098012935122744245559914382270740206380829017626492857404496776779402417668368272248671887802184189248853410671978696079213371577625864044523248301219741691230478492306430485088154460919862951484126260407688123216502080640517325212068984640189147882930386738535509905659467113774633929383633401214578690092543284962528458207739809477479254248749632139856028776549230568069476374399611357613313527930368204312315796651281978366668554149503049021409068090312799975512580966908443548823536032807485043965694881269086631298986693885490551395763085031798123724399710369211160284368256312058166308743529152109328121681473538332479241502039511306956605508722564521310464986070633584538175541132669075082165468284797996830237460405150615175591802104417050985717646082808109471529079043444692978956951179302279780194318409014206069304269063962132783826162588805105986268522973119187877415804931444564413148258371538814621563348966741868151039326309311401883264381517006909864700211671815188535990279657045827767639403003991258159796816225803206065351532640948238957865707219449303089510975192302058326731174308961102540182145487636508114973738466478868290650042402359369345995711795008932092397954117201343538743412033080290277301416033376057814422567501978591266549557265188996993553198432397488728461556114273335030968502930418680448686235598756820572486810110396792569773004730095843888335924729314603714244902136002722548769115831762276940147401762908252775220751778486985947120419064867190425139972384965585420749151338153130973370621046131532378496005502871290834461830038120976055749949238000775777450086298811320119133414316694838261783858560078727818615098120211480579571354713843663872592956081635816525286054178893771021890466696896206540469813991898103395862579985797302331172843513443513205239969639935978977971671895407276783831785194725597734249259243550221187884041378678999864817937197795109545724278531924239313223496410890240806526401481568634451304838269742991805939606357989883590170267183140405266142547390482028207694557629561124460999874787550513080236068106389059384592989042787780981429947773303433050944049047155579141183602027088203430953003276571778157269546852554771966109916778882239061152457504173356681229969548455229281014519750219337398151398604083993672015868537002396381624041053546967951726435456754659753431506649842011736111530143154024106280351471666089013622718340394858824250861725365393646859913863908910039920289065026376894320397566951420989065329439794946505065179711208169426045617370154189558748314055995448862138987517714575000355339275575931443644263378391599987874972239846973304850592918328646220275277908950886994230884139556433491849789022701102509335289871281483180055756934242644321444838809668422538133014433575641471625010152394603688026236237985161293177615136592659446257137333677412127836040241544524683064772506637911384814894932012754929586460249537581700150270838827630322358446185311651567930853971167814185479619309930802872721919062748197399772611147558219238332159140758589405680036708049746761971580395611712470005814984243747521249705297474125680479490712758935216057547815429952085083095307743018075051935057595895143469269440222900399756189751401512859890334543907936774424849972730094190596416608865367609367060388220172168796623741256335811750616703327638191264354240900544743559907649142026387021812255206127865708232815518434349385142747434165544201777024970643787867877928769198134958245834854592695252322185544502801960985352860933046548216782302251681488211632206624743775380137361785558160723854151435513173573286117524986272752920451689928134001183209737821076571723155755356611553903459255345833033457927512431822816955772212694921070298054069380060268073035524115506801973492525144269352592610613603240276086490475522221585022014927949849476591186791289100513702686710429568700479517058505221521496799809104471113268426329373177085669092500041771332216351145787026516996266514420946157894681377184489501850772851188738697842728097209025391080667439165113720206107638117883291236917080657157326919656685058071338149399507012538924024731720641613538593392003589325191565513520596361301269793594073015105184771331319260042419271349722459143665815010777649594490169482103066979920651953910075037298099403007359918487320261960619509667907403821657839796093314687044229739989860984173322921517574991108720156909245211543604244947018278403998631511776208403121399975518354377005030995822837970964711116019018774510153368916400246100273726460303498551514951646607338090668314186001970276457142719757508196728729033883773857276374427205375000167219112442985817101068043909182885204125874312618861871127000131354665638321880014163546413535002945242505190315242700645610397317884100031540566162852487557172817984966469192297108291254009404604752699202546706152017653235707974573083391009550899621381282847619731957668581135850163426424076518626790411062982331227794619787932063581287504477334713834381151392159854518484122126935375677294995597701888702077438587292325393856860302614572233749675010484624703414254711565727039880891686322484349209297644006408759546671066005408563634728460226446517578610647082744740244418122182721635514326546753402286956386439752442914571888371071091000735482426565169624483835475450259694720947249013268550766993324178860978222671421966292327712742346727174921251762956429870601426447850085842457836317924211358222748378607144440524353332494297988824592690396228189938473808701730125273120595740538709844238723849112821397209714443692817398115511463147025646859826815619722190135260517742201664517587131517446545055079926122558504909952036576524082466273767274875571521183478497021601815641765807433853287663904345627937899631080421807848744345859872399519874145726518038613925282650082790592937426021878087673862753865878504672723569533133360814597733317213918902542585602533076736653975502160289837642942307058498798502474621280510394616552415749697055000443111444302361621191278553865289887391559598723467302791744762668860101218813690341718389152799653766960955514939553460675566934953358458970964436975809356384822628320811594441739693147816503166197799177288842364542648188979113509631222487074966207947046442907023324216262838834497813965534854773291871777300282187751683800882086337432294366083725362799613766440464607310566512251507438693463496122448997256742850266562297769544926190994099009576172016247283786830775170724245685956302645993416131296349461593632593715004209013860560607359585481546026324535163884930981113498184971955597532829358934652084284905114298569377566086603969684699618764854571512812984496284673184196678359446274032949837810598566454095691827248438079538202966734062255132284930720284151917661826490311717021017141027308790849094298684679679958931874069801014100865488591043111450335817014814429287751874604152697403956983085897999265259571010714593244909172080100125079207892732963618702288532802994225701412418028839832590876963855701732168507087378718216794340180564710670027219153932799426932266813473910518932982979928968069564948355697739265915617266567644855546076443370811669269558181379774334183476819435573611483432121295045181108979464983417058813619405176037953647385503576436696938260581375149182382374404725176118891981800888348593587810929633536451271749010023059815491777329973117572295135538917236183059650491813383446457059976994704240810878683974738841265438156912928048127818208290392073885648588396351493511807306892408950029261152712657935756446859076052379702033994585004956665297657717741964215124338470241784973024986192907654621126548093164561091408453192712806949557443391483872118256516732959205596294359263142109127235787044370886944550335099593604865633583603577399935082918700946600315864134187611842650168479637680239335827235346499622359911033919334934179137529057518803642527084889875873134538879627888795424000753762189008955690126898044914719503099476827999931653265055848101781752928375640066774168877189380988928431398412946371052418989272794955561144252150910625095290342925285776987306424555280155362859613926813279926383226418047405202618038790102007915090865549727472073251705619147624391980314975849450838925865941720877359218017829591125804151846056894046554089261765700476583361481567241940606417409169993082348793249908281619092986629974165769761166189770435714076150379092901305133901646945464879243632901333993703661374828856070602819238728368136727992405520524166949541803295082474093131683586423654805416320191497684076250354033886423298484363277361673739225741322594441432979517640117839478998134236453845625214202882832839542942872268941884653318927718903851282016180445667738338943773406505136411213653755491002475386681602479281219882527459855954144666293282862546567466379514310580142745708077720792106623289484325799289953586993773179919202771431892630829467927985480520389112724539908332633247878270680591633770321097279226392271711227317662336108899562553391871179099461896533324579429321117092795826393125576203979537913087881075857895979937440001037796147127708587541146029882977643321873385781736888107306177367228388901794072986704558160506532202416424779245821876696704489414374046576007106667669380607874922603881109806041460729430842574964096486592983091363979421536592957612029225664584862935845424672051059043060322347171936368424516930135623318982937324464056948755298276991146775824088075659588283995502359322533891203335062986382606110827593781758814713428928347521792169235469152955533310337068917529594267179394588032049029802277561053576491056555342397228469024319024762764654302899261627104832452710416215030385718019103098815774954033600505261845634002930763254483221770097286185440514869091903921561644801154344688915310752124065423899426016434595508335193653890673122138234364146067754889108913092905079375423069833199473934477897068489260661272789325182103320550059973590237054070453380626352909004438524490195979917257045738232266002706864669321968695539843494970573461708664033727267661852944187189435727895967482495646272374209864814540109842543110509923092962246404024754413593539363976343619001925645651489203042841493495427412932369121491290765598636370812638585008634467899388803849369257628709556450189251066950651522424107001048640005327124789158848316714284106817639373708678883199114943737363399022802382022984119618377782327473334074263851636105266974060272807207904484224322277579606856851166815871073452881559335914375187369335188854472179241254620768577446403069187034502863039931536287139053201860104919749867594428150189868649521440095000633273100796652401071691941045110917657739609414125922254833957513233087410961536541705505137328917227577994854891817660206794762234872477127697984655289414111233682611179017962941420803823680037126784248218268433120261279327486998641247738885320052943472444380580747005815692348874913961251337326550994540315568012760133788521614397362843167325099550564593421610306513033155754939767985942135204519473268692853954163020193110275756356443198248355084014704333311244014305020329738460351351983243626642160349538309317608216441649058526996155599507222386358524404343800528576166509655076659214634912785489368867558251210538473905070874876699549435049887473040148170942559094305638528766131838473452896691366707028608584750980407162526802178919304870716910011961206543062619216633447216047650689855043473759401547277319184668606033637628570393647113633485762484941944089087890481298128164717130950045001144350972820443363193684508625989661351613013591241737722168727654936789719301304808212574939653943874655111236180548333430365683787795012334273610550900744756338893036063429496479898568954761468430072547748082207506691435867895223296562968875540507880078728822732267036759063447086154176976372917729807717957033231389972353766591945628979538227501645794633482542889271987957164951332218352093057039980527843589373638555678410776316073522830478512250713343098194123545118024396571390119518172089377208264524920676298643672979817053375048486085717163703096681385927086868091492333914925808806498565922850773305701630386002019122668909086369539482367219162881123004838630643090266208189688687630354171898805490735436404520049290574410940123799117170725597907392999574251554939187919014096465831630762958692424012467393108339755126634039788913662430473366631030248252659956549624336944879092043360390693788401413276325448747033431455870162902292313509191327957717064029628669314445566461547301467019178195073878038031785655716885852963069664760845242866768107354500475970323708245801091506878927118006353251095539573776533412195919442042158635379219439874159523360608733218224417868218497399526792722634239875476362134553480074875922466250987844163323829859070396425255055587458051254301509482492601914782196735578948641018762317771279191927661896233772478782516682186208420144379661096309075047174760565506802075151887577870631037182538191627401354115088696719221223959006151694874937679436695297031050039210745611180464696755513355872968628317179072510624507885818104796223167643160791287328061975475160511420781910262507228303793767818318060079576821374265471581354433773115846378646969979082997828267980950146774991673446028983940325146923902088121015708201160841483162724084315936661347058089010498693690454417889284265092170886850567184467083267486233303148684762413919302499100632718731323584472417678448022478903090698910032466290910715517573426763850096923047007067443550082877561261046021004705087827467650326995146308712006152080335461552972362850337752036476751546996637091109713625943643214685448351480823559371462901765369411917786100850334822347025879945532668347169116121578077263618243522546424008757881946919027696036845016847859747806170988898352021422780519414419213124840502902079551398249292147459570531394871510820177165702967124557449743955185515386282091064225710237306364679724389008865196442661599732844100036057354798691544590201767352302202723966788227031507324296177188786984328863781150961361868034210286620599712958594884463589794418152770246176887296117514720296389214878590602838037689790631039366325498345965624811923096513822382191881310294613803630443125735318352209727016525690459497714746871305238463443109106273574018101778573498063835360467314853450632512424037002614005902713046158208603689016338385480664162409456488624973447907426307250309373872952466636199226185667964577358443193361629863513735666913467862329838744256873940244014246503464868112350010117821391180583198565954895456615467217966425605715809439658854589111840139957485502479170568472553074610807291398415162873952802693016861539487522096554336211144985239227353425478076521167118399914640975782687608899189201916391436604222313110815420805657187865999702733033085839201833398854687133325222299612600979822179412147709409589281127614675662591564779452085924292858995884968167292014964219096230496204946602229392946089103365654001396910211289083146234007390350577398186376664312086859105580314495258918543963749887075369429478493484185494112446088376882589263031769186082489302576913041415743746461715852062842997653301871523947199684686535215331827037913892673388449222027749432788604577361156572264900054927913874003846394284959562291691690528362557596337941924163739482477996326788878123591183941383293335554026346849442562634037049450728155702311111438135021194832946224867664711083415095571725094249550963123054938806037786570539502045009053895215081199522677993435014914081654409079887553320077511179326377690136812051904654510308072969032146941482265665592105977640109677353505444410490322649984306575035477859221282994713179129268342206393253698059186874585897716482536601571121798828658613208631444605181709171152477454996922069474661161461419508233356630203730997948250126956954373651334802511489614879383549601980426412794153256873266771040006992355348272763969323534432275795002540424894051296115498073851864592190691053531720029781791520197958134998127398610343534864382021157886018486602351721223109644144933921782154515444425701224145795393200160448542520520397559374863360647522402556751522247064156159008080482021060817324417933500978154099911705606329774120067850382525061124586442148892423746200745598323624977872676743070686562262330202213483126545176349974748347719281603910519325105946803091620580547235973070025772986509062856880217233509339680620948003816050348560556482828123784736890965564801900658285742212838487944702786200918044824849285871346711439653090406703105830072328509875711384842665743988810067193905547082761036512234451786552227521988843169886144874670190718182826305574019270671003662092875745319771634111975240569331625985635035269183533831299027682997298840326399679842861250870938169186692325158559902522159205323843666613268879810656116752989746644080415865827386320647020635623713043585656274856271855345040551683542359189334173973126800844943024117573806511009099006360196818679160910183751269287074822201630767282761851660115639432518942787336326244712223011645128449396895013536839705262956485773147290772430497787712394033822321274381235693536303106262457443564485329665720123304813970260751081520580514373494164977226623522069031176083107555086638486131689667644710434531886540813795817422275186646431867758441200573629376185762236209404701341851114158569800694129510925970176793544522913553826424859397682581035870931707382969311112119192910089563693601957938071534137305586152246211120941963348977622892715486210285249563448722230880930964856720272091423728608604515839313415764738740038601249778194975799681091261204800084691102941630119614139368630969254295513033879247422527285271864057806534128433505016587505156827223890522038323350979742774897036134674375202161440564568177449939923578523205097928184510205324016341381397112721522763292828902521350613719736028725114000170821735046802178780262874700188059723967826152005444770873152409920165277011569989131245401438744191336012839088667039847786080537244992296905006255842878800387924956872774377341347236181360801201078337779658928721411837186863649455807776603784024402440892916004073708460364633272950945691178981046564152760225941483834475569594615677513735758181841344839112810655054846708298601390806674970096661104718002947986083848183841879662447254357507513485243576110033934510022116872284812117954973109125766452552244954450185658801587793157184156129857285803469431049791000912256755324491801547360993543459733058905159219739854384043323275889464116057690280344646364806343980900416534794174541083086325314285410851883905831939773222849981635667720277917920360484880196961435010819737613681690876842651971865138636894439175416932392730804824956649080650279030449827404556946857967716265735957494404894163610779770591190794861805327308684522751106702030964711114108974453650980751683407414607749860005611704875920841875740611286385670649461681692207297971173429211371418470973170641738177784909976406660700781414271048711893892795335376949534415323940013439622069225312186842339146635338795200724693504862798433876472936156937601164428252769857982739094022392334192522260085177107774816150381491739030424094765445077055495094762194075115087062685608011021894274279117606743330102748773268931458021840057587219086380468525783958658786506872058612224789234059485763682785459580641764599371286554378480681477597553118133112096296908121542823826718645581266507154915704617059968362408834884532252435632581469367585742072765442894638036529252143817812779127057799632990120355065947902265890860596290040603554560765538462549836432210001382952224086855437161412872456773773747324605211918121021111466912933046753916675483413882218148451675977771374502106230251949865368243028940700817619135723639418145811040155646878025937244123664891602573014285493281766769923190296405534149322178165977478113019085755998428624310147238873002346924347933588945303419054215212304100655988893905593219119176293714398917074672702844243372383167273239699620813005318215698456297920395412246567814137129646083297525162804494631088622274108242282995430571270022309946596577606669384329667650503404539740158655628016894585778660271614474086954384190955321828954003813256502310093927057950659166716436365498430819878546137158912221405928677205265017647816367811136418440740903528925069313476130972909113564394242662953682892333198375993193545842062094656816040170812814671240098573633727542949208541387912122231019521494407895168117877937268511435767217546214903446541988698059576673354851631904441055017250992548998292085271148176465110026000500735468762696355953987481812502135219945731628615751294822921484350481374820826171621650549816005399621516154466031153422795240025008814088650176576165405228753020418528865097106495505471520892830932722859894046304825391365794428971774575063094719176252918756934836137962463804543251115239641122237527058383350437929744188056352805317872871628727835347307091960011079850519196334928014052102540829102825932161271792620419753718944277146445666993176660117127497246783586754862656351579407045597262570432101072747574130683269248825434265665806167970964379431557724616528265092426304250693558482867588090084080775572674417874261647654627907190793115506505593375991283336310490152538756829640487994464332364716461587193861348603940605641081945965412695404838971831907746145193686230782935349675162111935054317005276817131654947028920788055581612863970662027709263497540358842368555011690561844510752171836335254574023106671625764192196305338440952613056477261189633390628171775036577760622476964859621306380120066904763289378548826530523187555598003469498648499037061069453468684256477195256374778805241200878897013404088566365793227744884677308978361515583321126406708018140235688620050184273586007471402581251329137706811195279608338775718693934156788911724870700718156418325943075531362729237837586006989461083989880492913001697488736667524176241331006618345845180682125110292024214515736438315830903550640964377024457420429649506964003691870725485105147490818602551697095934152189501736034211127976121327646762450484136963703540233816556879762336857407548015225753673065096586750349603936513339225477573047654883888764230495647849463764182914775500261663913437758832546823254916432525177036049806773240829675735475045250343006956648046540730870397368703163264932278180674325951196434326571198406469805126613732688347775700178326462744053885361108888865953433379049121524536528397298076945058113759977564508442471633409020777068138846048647847290904534562380585071972102928148455889561062366562602294424707288732761419012449710245135572278720499884370324241361439933423946476150237584855684755590571626661476619700195002745522872141202000079827349353226644308258738512969644048365934239384995235441674371902182276687741560330706810999808585344564793064887944123602279005735677355030675553793787388539277077327635067761377228955117018179996465868334614964895887179059164235426617362261996572925467036364386661837718756182086823179046358289592623932450634015217801174246374415048626103024566621317807150800347984679525740548611594248611890812716290802474307855042926217490070837813144846875571743370270291426920370261388384651458189750224599251721429993548578537006493625525610594911529583423012752101589280622427797398379177853762107700909050774710383019403407432231209423327115858695564194349333270723053215906989757108292792362053379764712140708722803775312919633660512628474889282054269330184774538558359718824695563473152281937557031129231481122323594585469145109600699639148347435239761007144172474258650789476921907356235172393852098974096827602561362511964753865994158036070069883394795083052739016393157253588657718874188780225665426556995101853495722521112155499221345150788163177519480761155028724681571155294165307076148231260592512552219222681812744903373775430050470518387324635499594552365904987367115180684006031840039670234859643314203779283020818634310841992879753654839520671933233668659707395019466984286430590382127665820666553131680299071479291303650094207429698136140285502902180483236914675678780390870992691334190582612805404687969264435673989447144606534625039857454640971264067048464009623747171290032165876459611954043133751449566199064029600544005887752818927503770842071515803261527802772659521587970789387681682285897452683111540770850930482807530376034651019674225338203149453413068040643279636398780156537758672988556070376522419795142800142971166042565408490615544600641312835035744022508268152474077910123567609491193283363592232738329672243037108525855762771789163883941634132163016642244269077378149541706526707593157395197559371290822892531696276284410810171941804420914008031166317021096624230088274116887461241734738765443897873548155754929472437970758510791807737692163557614443363695224321948100784062239992364990340145795634195301462654683078684189922041301705105141969010616060703961780421928999501145895774088148035129379731608710741417850600876981112674443681806515013240081218487116111945305825195138848091344771502451012200867188125823377646170466808331951092073762796892530660521633241113960564940462215800568749895567213930765153771934759061460334356609477982672469559826729081184054363939040904955475970833502695421409002529196095575157408158302808917710776339285779501120680377070425601422753564336079025340355278289535555973883073505653078797299306060394890566131040630258771473636168029968049844621483191399731137829558146331505124731796834527014661383711954207581250108092831088894672572347180685221064241640522887771959165151403819538130268552926438144585214341166461711730141980677744501922888426720585451955611761023878783785782935017558524240641061166809879499885879755742283367014422891567001506159931743371016379035052732018367103594350210025102849922822623976090567770070867300580439086429582467335121040392174796409189719807907610350113750632301081333114936517847982097475162903168690238962715156989898809722902150222366027098667049372415889820284144953133555507552561432245284216262650880080004510501205532431764107687114243932367887288783270884716899022642344982821478145265440980675907509618239304785023792537135148037821616546468495120583561453725928948752551172467774805719009614395384380263741401480495949760588854299094935425870213714286012864543770630001174547662925574479209073506933346874600979522430227324638461632484551614205651000158350508726210120997950186723970690086483006374043369221829441952287668510362826756735333776164641840084110799096517048248726898823496483101165861783011366616179130618711342404153585229398345438417833706954189063638983837619396496837936124739600523132856407823462887174067559998834395179552929489097199597557197954025232596954898522945066838531035024766204316701552734804886584651752970412010713347246710626939448594805102392438019201941235563960510067557948104963700914132177354424202448887401482181360152213694502045110467763010743644417057222567581882422909342157343643269181310073063583266754115142244613670169456943096119186720756888949869892497736602408538803200995733499079842866649903772073121416455377807672654793903896599618684856896672214394557447072141413857918674571712660563367642581942161667623752843340659751001776555740254532741424637426026295802304212457623638966422296590022170689783107035267543469704041635988234279233868671134603457619367308141798397880169307448704241749813153584880324625092300173299003125365911695555936521032033836595122755824355154454652279313924429870816847705251826840697736171983937654580047446885415955432196974351855059160139363624048287324052857701685562632180753362896687755324584575300756247482402171790741715111261703679930034178997254851207215073181988140363514693371550771168119313837106059923067054102209180209821296646161293384873301757700965919280418731942383341087065080657698938626009231928406345546089119782595105217762092429922955587728720407771535229362074398316973524734321045116610218708185403423605524626564065322190250054562350723260102530799053500615657669024724609393294856508120238806976751639897991023758569368756012575516947974797078269599639347286633213833102145607482579289755633301098267488350944340970519495777299976593063938754393284523280899588370877707986495938512356490827650483771843638869442946348824688717911743342818766739081148997611664859830127159687817658800067297735030047061731310343146878761872203105807060448397377341369941447490865318799596111538556394032480799414137929987637844653719362573127471516820909767878690812428480540592707326680724876446194582650488436417034214149266172491885638911238359935309407834168340433763657937176599161072891201717295344603784940103117053538034856924281403667330210920342744220261900119215622922988558275584197568339243289662344815298854236147930486376115211319802230545940027359641390944283271971006787907023310382091806620708215596559319874886787574213529334380808040977420061616017327369753893322049233062380440754983174419235923984829589605159890917069581741996727329949121403531928300449155837714793457817102478620505317322304607927960655825335284438066254105037866130374671409296345865739166998381081193383716105958531677884657576140600936113696821478422810126363550190996596354670454738845897421607071474235521275339821952451920060184550221315869250443693968779166876671268561501569824977934611196652473401019736139691257263517410221241474765849221112819681211525906792635214215399065116376840408713200693326252172299042010196351600296059947044256185436532449233222998516341342337723157052105098406929342035203229444156436900575631799325495381834813981083337673611978630000003402929242995882320174869553779394690326773647984784543445225134711970450400742776393360331689692564662976143029217187853126013309599467037437165019764986501551802200679080497429686144428287126252002418111819378868291613232242102241593767682908735472359934065358233169779324726454235772050650792171651492193332470835987252300909709144710502018409661374006673428471361827897295719527832687612914110760914517533641316812389808198575668525172910591938811786602224381224271880449435098940907766616046437674912169396351703497372906735628828680684688369851461215433069675412862237372586790520927151324565771146008334302431193335250603722833474324676872250176347898499214139746560067822511428166616274246610660236372236147615494400942898906795115709597557650141611575337548002334855700176857704772519750122681574394496379784648537577671466313695988490143582153102925535229005751114100608375423095034227256676789641662557587150891393179701336258103973939127308943895496552286361197479271849586720184554352151310675267691871038332815811162893520601001024189164375745353694176449007514852158445831850093516982312332016698488009600742633784409567339539908489155165758184250408483550066967543719472865051710893675645077664423547262026737179059502086924650675907831973046645570330477986503689154695857346236265786344948736810030689871837033606119648863454363346362548035682816023026131260328283414579245909741167185283384191097960333580063604078579170688232143994961174208958695254505996010956884019905690592517373720850486317678329154392062272919174289220161161259329574823939520134635794570854228091762063465571741680215688786839823663780446425583111839979905642365942758580965782650427803944646134963207206624777535462227601312817382575019729817267925756687502265136290009825910252307890384139313465151563113652040937268487734682944832981902822952072131277101874734655380954368947179756643701005243519110213562868281184196453526011664845136390851788951598041323425974474343317405562074737569217080055429772533253008162892704412302795428102824973451303857351827709667864230024367144831281582709937645264880196966617308201091291082489941016120989586565025136421820945844102950426413386442170368608324638146156264814942746545095982868817348683304798881314167921167576348634481621677279253291128847786772469049799611623759372921698752744725705325228098990265736565022594142356748553339735445457420961547205507532540474243450861099521639319451651698062387336379547335047912486010778716124033458199768948138465805036249959312208959288769828100793286805717628531513646509947100161071863726836970636247249364892411276174396956472514001816441575634794638415807652195368274468576408092188939649367586615452568126701949587296988390765029674374104047780401243921713055441451994940645953086004459579827258071607930377962114501110723135356159884356185308068074375398009848450633966985095786812797209107463641657884722357993378166868689984203797703369536994487686772387888548585990531229509051698071943817985965552582244567403692832700459507349851208572375559603891616022265220997576403462604508901597077783429236661104859205273065436153450443583455331141210278594372715887349770987188321154119392555693985714412676695901044256810412153064049535515850887438703323543952923682637862845369326780699442981176914932977836010339566412207550697179850693991238101803090473190548781643413629519158156031449868341161633856451090235443735876926952754978440897235488488553392938953149699593171287492727671419312499726827765815124039009353474015601378809846181604023381326757489022609598437398628401346473465582053523459857161528031057779700750015438008450483984771702561038192114449055605352984783246713748508266516870458364681033761349555077810158232527926118642617910144143471713447214089015068639838560820184913366256349188902481786083611605053504383130909775338142525649318918442311680015479666124971338666668738340705896240935514413578908062152437855541525833767820199026877772767144895329090303846625535555273661979880675963704001553585719935507861656673565687815161018112574562291879674561944788547229971990406030403130893141809242933123036717688576540750397528974583988220812593678016184126110288742673586044197121965424801215017858181884963574269347270298051771465492031853276445756238478306627476712758173405565840219081215615128423760489886441053371062190926305958229980072382770445690414944980476300815918831005211736084385573457279661615886273681851234735436952062122339954528047438940866593733855258044958704681367825338554107935499037041541728888566436435233465133469948509821567003955644513295606057877419171903616929012765934777742020408178688820248337736415906195730687092907524067775585023860689447506572765122774788384859871935313081754585205625478941593515403676206609548905437686877361211892217256071553720416333242638209988972745718197693368014574891006132123880305619669736701542583919169454578658190301123435945069774770416510526004159126482260529177700830263999518874416631517454660447510123532226591428015686230997936805881074193059193910129653870448668746960973347080388104165801706835919320091173153015514742419565016901247964942874681241326475586508519414145499708449386612185941023195764985516640080842871082672731303775113400829794744695784659739023207866066280341563661929785791508218206597566404883367902590736450479222435780088851801120391122709971603111426889306072067899909837195166515385208510145880420945439256477504962345536633756162926688134853338600042748605989978076849810482895363865333974905294682915044240856277667062360691435925947767061901493754934727694053930916360434211145863872580679688713337229474722030255609285385373967754783176506831064685705964596557162790438933424720135505842078960890115077433701017247944362361560926164456065464053920269378846918602559050700906043588262361696002718011982016299520344865156934309497345476312877559330299615781318421403017214152752185694549530509110951737572939358577008212621933527032818250720397573088781134631987616264125390805475864146748382411727162091837450214633301659787717417656605955088015445640513175712966741086103193246748603073860306844004300511032144234532398200551550542201057321549052519265390067654483780049287180133601358057050441325497080335929770886652206741226666217447288890101253758214299279301669013363602975520251587700660385667242930326659690738462043379420773546966996559141173028022260887668767317032247354002568330980924162688799134846361720487866152262614528055371983551598623329033929400672885637933988748369687340291348886666990954684022755381285078283278426665075297480925756652836641698403466154060142403250202103665954173319575205612216502626559340613425501800697067539400728443079855377764711680208352188740064587697579801195581829242323956875363527252587057496754159642931384603639390509320219970903842441314986539725129587183909920117255228505358137795302131961906959169412240152161379708151765582069353826864874752859258752894468626703228874858972131679616054046389783740034771609908767218666564862306601296199086117286038408748209291240054194939593559343738435261878549045160951580571586607076218608417856225836999181760421953679987087470915929552484724176191088339018086853510158898037798818150929140600366851407590695344652174013615216952753806705068207112270349604476473686811530166014806725746870641248777205534820219206313205513577996311397507026928252630091032999076883681612260354853410450708516328059351212927063909807047772421783541472138543106298759372780142759793205395420984581241275141270480559500636900398845180385754532722542155264531419727110523589708546354769666073942685910816080346719068788190984704442736193111043161549093381755980879552955291806929931388706855790368843412980941072707415887218359166398360750404985576994855007281319782686536929059414762513307633623015024016600296331511456598538623069141546776457455096590348770948348844055548676326594192255067547427405748216270145644685658166322924464158482833615959059609495412493956399836862776526085087775947371900590891253660745715988797920738597775872741510765791619356531481398769583983607219638248678210055302126299304043842312590276025434186879276256154262422083808350381799035738977496441622908163640543986983654465865922785077791101872820884037101087924353338385831154094126785915534995554431081984409782850560039958430478655489867753839213022444567908323423030722267686039847225191719659791688126072040386728056215593037812700277803199623635616414565164252841284356257503903306959709459449183402274841047805630327782436714732779109096015401063176257438659291586275244608485569937428816526658409422762014420796035519240197219707165725827264981530885392487816558162476856283627874452228973694112097018183428747441382612189251738534887664386615043203551383271865429602501252309929062251338889643942278178240173454586081287293457896807575006707511760912930696698085028833200564584309273993433887225907682577625652666697509262242859172610157136222620706915730119935492669200087874503313550731218530825289247705647792245893996869605498390494121054344292141696759277280088109918666167325242421535328854198740169778401609630669558211687411505355063006822294038545699833082022063779193993851502758569039731176402568142563255385794375772179175121378360638833101698624522766994390962905251544848420416709992109519543569879673640968776295468961692960088467812213270170716253111224782107604481505113208104924735520750455725610482422736837342848855243354914770502699308241568230781027939188182246350588442737634582796285334199678978303493338848944225337342447539504849044401821754517681706051317200805465440135004147981788978542926321113550758174270536726094645420894265966521356879666878622375340089382779691286387892740250747863180129076346424402647681243014207789004596452648952611824095746113438407673243186361329541790853980206352967457094611951504050632181753972571725074938546255801065328693278631030496743649399803153485188197864349781103043826621739134043910620968105832640643775319556098866727668412104635731083551995022329416575508894868269258064103180294845591745558513650721611993354021817232482076284580595779589856669893422963687409718585761951706887160922322407793549476681732061054683377425757783752329218217446585863012856646970797206497586331307186406530646369651096663902319284208146794657002619610209188796795237236473763994117302670209341884239213120171940858959433861533157196125158597016910466906287911737613761265129857582319994017041512160349272483012968274738005355238893337075357028806065113441695170632430597663625339059108960559674019917511635345584869564187077585200661976273770261869662544015286838255472606424938951027380998614068878660982566173449192127513187847056956777645929743843370749046054036568150078585354245138331627253886826313731667230680532103729673049684218506563584955866910048972996441960883487184936231461081237631215254966630341092934079101971390434685462512475303259279101107383448371557418241872003312340352332449735225443740856164225912312956326029675648135863675160954683135887160490337943124054816741535733409646981822444721348333955428006151093980578798997098621736780818901558306955741824741137352603918800379321730052733532762538021148889326433190106467099075243086737695793127515238003427700909265089557441998412841387631771592381172597870345712769324853180567923220605590345233687638230036563131501364647555226249762477755641108556561060289369297172429822463809744880761640264689299096746765252452833227622028165456908497570450876517751184846477546462102479745400214456285313401123815390042279666254264459479670871295396424524992523530598387413555693432055324857351923168458031215283757867961484665777871730127328295535344236377979946327195335895119488510217996681708798930229510111235146862208787098132109969966561519912416907508980413139464242001728104448393113871010006927294705653114322857541936833110587297947504186177138954875711901389538560137857313246930393754956912323907576670262897186121322483824057535391929341976673061894501307408184386258800647405679418356400443066204227465412371750579266164834509472337433313971271176527053264023835353061431986017502646774757271470378554224407363943345319833828412710264271394540882904579610335856563710289772893051321502388708398386735212666745549825141815300556722619015590722286890508734564080145518559012861792568131091710163266356849804498944843025364017657688205776153973517935136802380278446412427056164290738305704376862858570550258184913961225345156518821460982812658459271767473866384499098196562924916841523312059964770298693137956736082223421141797134452389987202077409593367907125339000965735815674407296290649327263496071248905662781662254554944518034137416360593484182121534372709455468379700167797922731049998029336476773598156316689980896217642989743933538102090820324333303076001379469688150366747260529665915867811322982479339401448699051943091416975658714181660229083840515607180387985291415797829011268808474063374715505009343181286884826787829223563758457579720486084604120627855969582659322991988910144181917662313302654952052231251282340431998600427060132767337609082160715004610758139032156260328575079740449746846060299554495760211435922290576894570730435960919767141702677367234469283861887243750295571237526563212925228903509360270332326504098697214855503139582810755842877446093640030040052198468339552172232459833058453191753951090940669468769775252555579101311881734890452454156708149356973623176182858015467350690660746842592464111206372121947437968819737612983145647061033997169223221864118849407095930341074091223618923536530882103317748599013230534487547293132904113426458064832794428624538199163138117377275377696551882112965259199543383744146558505436295341179953700177991986426554138838504048220068041277201961652061350256379670209693539996187887375088715426330844696294627782513814385622108273865069938824662298994988629792634396550457352124957463012193546806697842229830268258760007989027357493821973030771836050674667341432300787247551007485553743545095983973922647116725555888254413162024728737141738470855814567186430631861734763847333048993867499264014008544441073062929571750221169353650632761176222938242737077731133264539816815836369356471812768072531405039057703694298979293592936393517286339229604801808813031004228042110164414993958663989940524867677946116184571232565302694574973202237983665961800377147963363377466951350531513196380956629197681552215582074048379218227535561021768097443377164396208177540816759025532140652810768273465581502842284707039033995944351905984626137154964368397452540440612562624793598652579323251177271711453778519551008868771511927017328732227744085056534992349949134363351183011933430893904417576817663894566020814488610210090272688019164811955407953228190866946931255428240706932005438352706079552731488544734283358465409790324489675052636127661684294180420703588957705957547802327867090022235196941977833970544662081442149327753244938951924794564720819006466251819076996886575144132573357986966951437787058255448020302344510456048511885025455123751844624676339656937458202370657084850810638611172818916264431843806522587417034188385541359858460133478820499464548674251622810072552793282329504213333014238340572841270316387290999240059629392040786110333382801633289665596444683293632773033446698026643747297194944750987993251334377281989717923636637922073448490802577902593405295916334246685425851599474236276665104947969068576833853473075401652095571155216354479470371174586551158206809571894920265992978560466554153255020139763298958124569571741022166232580085505830667623062015100470020933241835453251771296681233772238037472390061502734278360798418129225526916706011687028171671499610562058349850328428058926172767012082465651424013142441670171835153862229093705885232337853715704295525455750966711792671808126841821640741805293834650076074000867030365909046018430576915415596086387283243310177165342596646033448478910568303687240223828097599738616557335729022555468637145398776040651254999431463092287799355110234502264174814735710317725297166445314631797195416838174944025001650268845468422882336695419071196612941319256389043850216746410200260522743395474101556797645628738396367643589242245844046919150581614925058394663126756448972534950773241428714546529558832824073216329490049017518723184914768102453239425424453173398641557901179370279168901089132013420672839654579851967181661500995235266226656911049675737778332755317045941885245574909932444107658516670895562559312563608624467272506429451698747530645346779478247307612841892007595012442650190704957920266415139085640902830704411324720080529511765622250562669734163180831173481137926283646046531872180556750324347576614611511745030646968780358940048721571743777701116124278153666080563978664698279396518077767370724388235123203747863843498477973322635995351198846721290541450912460634365143679478721562255940745058627320158533040591957270930830235007933122226498835301478953618743132893818916549111686223289770042041767016143239721195169703765503857947696953988449037395605187668018574764019826541658729946205946369606234859504831886628077107216282161967956496675839524854630750825242454390962427995544652536206446584225973282982975158346306453595098771496551505580544199361786181725720860662939995260907494527865040549052121815483323257308866269255268940587399570549672589123467546646947198852168093265192822029723689432085992222856996807572425498436582334275760622161530339807597055439190877685969706365435595712099887107790613119803518545553708603207031741398030133644447308750915307876139867604313275656408906015018827735426231555474393835392106815681005759482376606243600857333652709599603944181236282374213011795112035663790311184515450746548350613440760250113380176998844626349791503717340897538877398160096649634086155924614980969910993374569134873797635524362445487304217817714794019251998298156081886887924458700246566167114346255425976872379506167690801179026294135036962893736210209066358000493894857607175240155134990111213812983408435236199065237688933336905654624262980792105087836691253765847486703561675701327442598770759368343410683174384889982708300154668084895697686555478275422975607547760547481159577247104169951472492989506706033496361499400857369719956965696241178836032651362120870439642065975772663674240108071923080993881420396211418041198429501363094999156676066702419768087909048734704680553283700929416360885828567538240613609914750667926529952677169973988466863408927175332127270319350144082751753264649740850954437520187985137213696786129063138300667010780670341234403880773350134758373633432004679438188878587381936394065220893055401013757917443175100497126489738395928965626588507891989097579264452240187079091623574160660171330049541725316543274774963777303920882591434881189930783116531116683489441397964067760617104955248481798663842075324959167495651311408377748686606451762125945090142684675763727252643606141639927629827221145837944984372989440522180414639732856862525890617812728795720328359116475864464285132527375085829361374646106316326401229064825275957089309252865605471267543507245875848640443327166621780382516357961842367684582986107869499646796985675374470394191733066846510682048059998766015968325382765748003541793865135149290641067511434109417579752830002192149338721184267471274932591341693604455651600474033130855558965633030591020921269968756650133008387413562901400987096607048128897297130954020011744314598200777012848922566569497950584890640344173668454850781768573041532329410996354649726099804120638512599794381729232162668376923075423051955624105513431466795067390665949272303078148856854197395836223021256934583247518610623395466601272991326427542480506392403738205751766321867741522320176478706760925375023030466828360577982992141049488423866082081464124659579610713964082252942341250287288268909504879170277134675569992869067407975302978346794461050949701511847864836356531512914875977325588652628635933103849132843712810012711675907677132603372781608953261476284630174437025434053994199425013326027630546166077365315578875685290350539987967526238417173741847611554543914301165566977136164727459013945454792295139338103144417048435805715192397556188082255020328576129573829235002356092817063675631546976501488324141790018654065215182841648412462829307603321783163329330657780098006754406228221541742573585113225223795353545446634878965393095229029864239152642765341034521064161030614657597311391395678428221496092687287707175936789471760394593240106340591385937181098521513657252519326154497922987763147641061451815959285881004486173186852595336374682005673424878053922328962817370399900466364004391127627095858802200741433706628843073390872225268203046365900282695877943256648313612207340491958984348956177267100264201774258574380474170059836786536372865358710830047825848624828119787853462912795146957325045782968561805756695234014484215901184040077047304660366458101303213197148264042844789169100827840685868790771994038984632067317768182642203067777313998208796341905308011439950514803530712402572918688175976629182961622089309985753116957852221860714183720781380198087752314509999903137698846602446458250350417068449817869964173489776958183944995406212693809251750654570108144584471629767446176008589624037863322521262371107481061507375932132284362116102081198585216759798719630987698882753881554866053865099871650872870541279285380327606414830724042709388314698135544643758929996869474910605202985220112455507278869372481752138337074929694924938235853224744025070396445626438653535032343384891718899526450600960207737406836008549623736158610365869374181722993637741639713098459633306561875864952477709905080795501127181524474825072914096320940939071093503497212912015538686068999090513943267144579970258963997091603605753759797089272467412537112525131052010008748944370099839546003026653620209349587417504265150794013423603997742906413975433323888256127370266099998052345551601693236106654780760530445184439931487000163984842647443781794447833805233814886639207669672271333203772274762063516797366151612833778884041938579934654926696353334231768617937000075630037777346170624574006256678949457395482832814432526867288718968499687696550336052297138938695464045499722476835756573081105999652552200660171417118286198511920450855626986573126728201437496653443848177746969235867615965283254568046820175302755045453892739885564848961101536672608847344772089545684916938225942565009320363830570954602912572344503117226489923125600231434803399558249722635300688102275408218121051234255872902642509185892487198907898748977813077609907110824007665142488694877616301222240203275325042969595494304896538855821524433085416328249126954130419260078607039749026905797332405464422899049112558143112989062949108550238630725094917885234941885211549875864532563653352332343166827884588131983738998876067610769415058849980959695527254960520641242744131807784567932742330141965923002012134523673654925956621042665306513865404085646645309161401043936614132619770241649452197957048953038335705447342170638852844150268034048778562733268022089691076086167041520063934529004735488164527519126953623266011616155349547301501235742035639474010131861672774993903226203924409966132386969421416519385224895441000446895159292490950111647185596159385097847643991650453060759731283967726970376829085263727810745321497811352101121730926493745678057107694473715337836502564641574118318828851245863801558456791475655939159481463691237269169629331823650065456831837998628896772391523027638262826432036847582470327989380508161328909678904218131369833521633783569344877204284080292381487010762281799193463494321378545237534883372698223409371886111013308069302103227639580913467027170348143975070476620905217491189176817987204804174003414768145483698013336155557850601930580958123314252958829817874342308475480293315548606603275558382157733177379064724368823001130834420555312419269386570755220310674396150725153061582822863035545732021274176137549464407455864828143610105301133487464521061883850034821367500980057933984304828807640838795077677607442717592519270367597554566394221733965138284301290799449238198413956091640520900734027565479310470503831607435503128539523478469422004743353241046446644877106753742450238953038172252117108829492800150053861591852125354671524797758998277051904075770046502578517935169090139473975614649082976306310868533837308273036098130440344897820855506933853656538027641624125988751801400954222647258453299259020753950209793547427861450928134706674942954725455436717057410628823531154846776233061958535924461619800219067026677999272800793636310542760266951642763751379999443098716826164765434976558294101699917574031583297194230858316670542987556774455497230341267205952957627393862435753563737856110995279417547640069101980897661934151528369591111719958927870918123780739974432478899926898458305250023284428504036063191403446462228171269455182161664701105771916606543371718378081341134314125842048910717041700285328319105145909276272346108280220016747493418538429242863547876096749354504871187755140461431943205717100728503311060729846264809988575753851120754524686475341672310308673285249237716837414401772659331068613846185046098735378939498637321651085521460234457239799377446978635923231503853267300873170811509094715945174270877286665332561934558809884750214914494513357010945881481002692541604351062209187235479800800316403004817409339233225072972199302547520632030608745207356883478485231728006891311902706137726145656416859983257175330376815033729837492617006102835826264716952403867514012371930385838117615478490719839481026599707465341490480726635244746262015737791195634957556983131982424069103111757031328789023189217923357235946065107696892388866992611814731471098471847979038158409112240516140820623593197342578396094766458052095863371595351458831096763820136769929386818824022063264906193575325334220151592932196620020324524474109244444367632632181409453362524614829713237468556219682517223916958766774095520068682511845721579464494047094439152938516557578906986990453880218057186492757405749741946601332274318070525494799919570766030283197952605956557327140151032018594350291663139297920959474046776912450398378596582313254465942810316900827661777061392691137778910164717582775086347423778281024446008801426503272210864545240926870979990871529968213233380369853211394634967366070091898487094496319791274294124376543214082750157056385849303789518310025734764028638156002214311191756611331780898223251724315495737449734057343559257306773346190979183707644203028835276827571056835179190769499479762843808481634232462914099590295103327613808462795392145396854521331917730040408616809886079506853909453417103003401861117669820757930733264135714873123462423324061888767299114922385373577279182807714291491976456345060161380455649890286931875554511464965254855755020815383336483173041172979337741374339720255827724470814709623574683562871570768505029090130559429234876200776532570698772038642122885092540711526794263217274498992160442149644508781427244774412809400554788855902072481429012972494536520590060801946390990162882466020267381443146912938457626738543278055406573027511854577209880973321474868488371360449516059846256349714595725664159013590354051535888964925690366851363528251129169673076363429194729033176533333736482675070715462643810091134012380149543984694189975823812750781496710368508408244560684485271251957745745956145571093889035376823295084351093454474504883971741530843454742419581283558305921173201356134261088263161180154463208085004133177049415139564852465859648499447267205410488710907175998066736117329547677523270619654737069747882904099366108598984911691217838448532368865242199038516515649843782602545774444480947111869049379820087528451887017560798054723592080340000470190028423854769748095846644215781931633974968600113155402163828183540862500595627527151316691260226487941072856539390733348751195304634575049461749320126606610576106968562382767743343682527998879803241582684666380101150604661619801974532960980811649260666647587215245124841155976004121667612140874668395306096428029649691838343378077735798907495032658479524738547057847046201708284981279793842019348806030595514118152965100056838365057090632133736280604429755893644422259607681694587445479217173282670359691388847119117340014230107246308992201193994331649899417504324853673383469963483943215264305279955795808139789819190816888780012334544950767774596632776760706963995228002570381088440101727264345637096308473437033807635812561979735714478270891954591515750186771249127761201994018770384422984630941665217380900067216547763249796517568596488698453043004495093035550005015836722551812648775294148597496666102121351923641693583562922972552535547014206371824915001474528041446538026587916363224595712114744051849608683316657877896401611876669463415966543185157935204361470691022124569124720809141989139523020664441429220459710608106016490723900821990168114705552845356686466994841490617894835130192357244238497344432395291228597868002123439840297989723825824140368064188333931749283085099306057815564895179587918996367320578945309735960185526962808116346895477597659258156071352031649416877143821508246486795372248665781897907320515547323868669200393280184911436411884411898635630029803739399809558610431460466421293923692160810009575167257996565460182844889306472706225700889234948896562830234585014407482029478411650685856964988200717798506848342739815580970131353835567055630257048052656252880761281121580033999066654069891475895914785803219701671850825535436281657838889209482826941255200657925993170747447137237883285929947701385105256613588256148971938558799717423715858253408171927390585541251981081637850547922696877102675080538544283319294762979188912509978092174714584289604469670122440102337315484551882657823191495261624439058031926969290312863762388088146875781343591694168990414873775330451786947277949985795956512171747161806960673154282622656342086782514028794958284310772314101007925667384170508997067581972373636728674510784695341995665599690476486726086631344593435328206238644971408881640399351507513822521933009411180078618727775634743556234576815301049085146905127857439470283157312799376282662385418604662654369309730838217230363100183685014886902794465090126933763529130930875431833514755825587680511280174615566775961643839320404308343833879705410798290417661853837932359065279038427947536913287707923722523729470836027950599333955111928003715839999773315219122335122525730868965321521156048005296505800176092110705507753547971789782220770836121299041606889276643908266530264152438959087032677704158811414615222518533570311702738798382112055591615188874803867728355224268759308271664043036380851779710094515124681357562990663239880036873911845164160269448534239212005952063998184017736421513630986616118375096433220629015219664027008033705642766400444012934903868329497336750885524880720527729367776696676591959889388119929500800249388822148094882405500544377372799208186128223619892666362486576194976419786218022640917108776461217353560524693202591894452608744185015990180332804284433273455110391136610950320298128943784878335649780260561205412963871239033608369148738656828850692458542352483993139861280469913952348008747666871305463459198208505636742769127347375045657902566952748044237152587279757069058221543005804799013304249022349676600746967373856258917371242718193058712300416632820585866929706016375836166194952062568068062417285025286914081000614711127706959620959935355653933130053339174717060232331452012714672390614017580417123941671740114225653691646747778866174743020794308206298321168953866499829459140135884296140220006839143399107269712520533075422243100647715912239864671760011665253081693560925102833113476728533925749808295019821827926039186986888824009163956345531497276200637893380610871899861551218611663625715088680992458603446271418872070186992621687064096196231963445093175579611929163812302695560206409565724837750180721035380711862722367392110123762704502273465639790483513653555028033429693785869668721686343435241037548074798065391348262932972883545117076013404890547335245786290133403722808667861392075099521501343126746434365756535621572676572219481135618123568114518126426773157245941572908339555618828226985746399552165642665485329534204082591267568401115586837455873117122452787404775558578727299538536139275434436793899654085191997318114763756714240175774022717477122089901704536723060551061830846545274222724294133381632279944984700643882500799773032592725223256691953067519020709820598023180750008283712760143663639994710995636328793486816887309081944351744199103951234978512715559481270670632904650609271336847508004280218800138162819286886813366832483504448662685682220483225871338420399232996844918807349172119315598892977189947365416301975120704447485152256716750299594238074830852735784610714999203479364784626246535148109635296825303340959826433928511655232241790624495615371912211612562541818727948820213243863595215438511740571001109652992717483137624721666204585007774038938597303199508082697371911469858860802132483232547795329628072684486258249501912869331691678019315681846469709067347506359637835543436854313800140828116489214998664535735103485635491871175390169965940608978265026027677626573122826425188359082361914424497157786745869105956325625183662631385284009712905933748231326801429137255364709139898884460584978040661999618427943243818061717496519245168807954944510238868281419868187331639957016017173025878042521281587021707511721498013870240767709030516434039833463811073004493281857133776851540300558997880149560914796304756232325820951857016419116816261143202732099789766471049885956800550560958252439336817451879573387236645628371113560976655136342736518964294904302680002937750915652819075721907657273174921682838588824234446463857423031349262106690989457352509006890950631632354548863067634191443375221959786440015318577543479086994161134849005137671156258949925217392649188885017762299613677297767586856117789209923333374594215246369796234287282576586720712214404761618153055285906719345939799142199755097385252941250758262643029450448663250043468205832409566294528578394888150026112883242921147718157258323339688533595969602062507700846737315084728333181476100607925233246515332164005735157841283183738498809478589006637798382562616603939894431161461343975853612697822339328555721861486987421162851975697968875251746177457797809527031535971656470625912421629807682273816319598493292361140282878735473468915828111848913484278543210392578654519166411587829732456036976214911837914691584267912505668342438188795385292431340535459877192771152724658520906578611813275917020638355030992569863965607785166528512539879928483064139151909627732721579039497987012240638770824436275268484233332168839813438862821185273176146585298397925578614819254906769339490792075534645698954184174315771170759876282788313035982582119318277013919791797354765580438860824821074671860674142737278905484768360980784794825126015835261352285183659034074304915269848575637221919090381507817438998382195777835756623230975896801962986326905930491916876060033300756809505569263532982179226932323019132113951309287787598518297067636816477741939543293766154913180281496861595997769211705420994549108304476253286331408973344244289080696338051298333955530191259415194989453358618653356212789442994294714070172413494228709155006206848551045367073514581205116080023550028263676228807669317660493824355048728462479889607577337933449068235577776058728752221069679097342996438886785009874327880010600838320760288655370306117937108398718504866321455013667618996196637106263693989578810463389834576663998007657776572518909361418065812062878712182728025340400223730442498488618182983226849817919862677173157899845156233559756203140822452585329932674671891603367921283144891711704281258238445000966921819525306724732211917719862374975322766591650751978901192782051005186672616161063334370664693793270671304783962587167781311130814393041099365783377969503290992549958284620647253313518905364630041016763440530167295971367746270975187056825719659344855163579870409624597960670717502208055371245645046454128530261887654808350048563664703969664464266110524803842745729194755484005826660294799937500687902238014580730210872266754659440889110470217683948980487116328248254527963875189215307562826465433495875590959357933233064436156373019032462891540639639201852019601234408993121206245136958863716128783278615302682562206186161588420236512303170492606393678359848054189366342761715763930318372249281683933738760065569312824587603123191113127861986688999493868935728208135664169833649036016322119505644481717985076272575666859508754979395344881540970268860289375229524266522083141594313234213009410024549712349802297406091104197561918084817470449286645412279680166370161246218392561523718423093710527348946153514379100066725554910122129710148282512039398786713743866698175266510206964930483940683500656289560760351072230216994527054348640822980061839026853490767332987261001037537700420774695623558043254899186279474046136909133776453569345533053130781783988540117355095186299277274529914357868389972158592245132258159674062371744642354774919461837897840420561158989806609364650910202448723012626610578394565101982226905138911351352523375481565938333550961667479810665722116386047668089041989520625952427845137155910962054985195897815016448468262560113490476532472910031106290196074423803917084998225976074548124862348493057790149143390667930436426958343073253125623492179520291928373002785139742494025527692595776099694175918245761467240054389110403872852182636699527753018311346859169062258129585161926167656635270668343848684072058607205125324109563747080100391892273616251643413927027422058325210624033111477971077267843456177609986574039848984606462317099158016684228745229625377197581403181551568060897809368145265325713471460552111085356196997679654535255202966631379604226582099653059113224064268042208956529603687266317873068108843812904761147887367298970879309942771137803462853184052859173376405093855925456465880139479390757335223158105522177563907686923977116315724368537739097980336535588910948537982759656043945724955142866172170977690259008806694235521278646586804750641474161988791813288529397042083558863512679837150557865982517983311019376049933482063195604251415664100202063049093179282941898149546818490508085327243965543638909524536920546956310244067848466827456566925463053801601871016656480965201717791345851334530590447200620453552621938011226845220736106882016119060930991372309888164558446869320671207307384994984789354805675776438116045626603577021736800570568060953580347695717458890068412245420488807458215915303203101178034797314015642712057547191995646059054116041662396685485062709710407984705892508991057536600346110530939366802344919338745998192445438158736251058350435007568744113618478517656335008470779545538273606447403483287971282037040089033232862806000415085960886456993490891546475783761524021161230008462613065680789619702766767562607425144457568944700372388703866111223483846687714185138830979457883528338477187029483833267060883144216423528084485572822615577264727686202260340585335660970777430936908405752400587530118171975573790988186074507177590827933832154046073382443424683939309622098630686651673086159192870997312718026381804649264952622573098113260857455077256952509280160666732202608550926651962092585861018830225515584526045425769575225804763885948442136573873339281667131886859722073124474419052710639224684284012758880300311488710518213995030544214016818058767703288563344225334466726782452584367832617476649904327559392553235578743129441945199463321472924957610773469064110006751981578196146147983387379547036777590942319587538271044237495267301691309018171722375407191541963591817428013108807720104340352443568834649398210773567725735622485294752370341163234199145606457581588246785198596573203273761511887255450850863811842384488046904914112362452250726564018353459233742833549719874118387608931927612810912862404312056592671666526696908700980262210879562264557543079935831589325697030692697795310083637706809566312183153618142649933518136201062062339647179984073789231464588447492342567633109434492363735700214658493678301554758787864796756457485081175822243765399440268866438906029995021529953630673398052503409527407032128272549787761725159171533905738682975908533957596172823416357249995925986015622313132932941226053952483891472409040559214228018584788788638911024533570846370923358458974900460086886631412145662998413882423599555467621694524877388853427174257208105471623804466300648468422572361859052337008268116040028289583108640200005930502222114663406471862680089079338191648288801122831608404891426827361937722174696379664038823039524757132369105513521232905291766379206432826546505955842879561565035248415899579795262480841818293846280253980159577197627030139278693632264948877598679588294561448685670723035929789310732173308406920784892526051357813079795284856153417738484628607679041308769899672242838323849438252048203127730895954448139567496098660436143492178329884604853852689913623474500293307012045690235218374528223325705378631394050662604528379686368580493283898140878191875303018748423105798352640251748556404287494262266249044897599258564890061515790086178861264684888370459420134279472570858051164698806117470140825366556151317615101408645592575245691812805198925168260451553977709920643386374647025171539830487172845015526975838451389747377829188599315410346446163003216637572859386759396019834700531296476872919388926012425246031735367986456324547018605293875772488327136513326676592118608923028338293318585242487388958866043053312069233045696476604537286319183880149494003542106592830345806550143640652000320911873389400797606873729840430015872923989531798701419329214644346681865558691987846010827163845669651720002772579317192765355174900788582325958940667203579649285009484118954543027415219967524880589312776792387570861869037281046639922264853699245120154156998369676987941710745990064077843575646580996587343890739361471751793791996743059050145281932660346169164742161212806956713092884367471336814253568960584437214508962316437419647783143717502611995665749829860767975680427300647814591673583974862366661583944766424915465323890575537555410999785201797647406196955131913206601438723222116699979879766226102705312285637083229559365574559781758749731318610380392886148571794117010860487002846749934175045905922044935222367559226478487325575206420050815081855807609139236235769052776933202281828151988532005640527519884247687666825107021242930752303158089809462114709474396301463591764045900068463849192296596076527476309288616437348877596251591232909320611386382574899351567560358610930229695083650261398179426870851311349286752149436253994857725979425093190027542837445057840233027410283864324688388435134031087901472538500943322715936509712039596796353545423587518563843377564377368700354446424356031299012387697831095344343156787814309532531978482416624014942748453383892194509046740631110763632324593444823335956622765693589131780526052276534303893088749222648043891055555520646564389306913085835988723697203628075015475865257859846196425846582260792594074982437167579672051705021914225405636438700095498908026204431805313446276237120255361449282246672910831998874875296184017582151130997843383481719508064907184660511728392397968867277498904036254529801673959932122353020372587385040078144651688088301285277380444004055166348152301362571707241261382129900364573046220834595018406947762737758832384695281146879992160549066646581741402149191938695057187126369091629024913184289413304449788648510387896415685206489886292181588187271556455092428437126108688435680409326860874969637928243355768600681395901760034515699932738961993638874034965089668532716350090925429127292336542152804356182263204805069718390376676944597156042878938455918718293575012031317710397439861602247824117496057439946833857993389577052790704929996628305824416921391994293539964329999009444136216111457283332215335409114036953388252033488575198188326745003692143512183649754949937075825607360619605698621039300008014012921373192554183787726431588839615301797449215062557368119021066274183853177510666811829185835542520390217312900203045383060355864524132360629781059528117449323908376511765459718081543633842164125784203506213908540358892259376044571266696521372778584414590180197092151318519036211824739504866572247956370602293639671431134868333994166726436588693334057713291006404728931420322779127464610357821042700006984507691794625000936855881533416436869550851644067913467934089012983029060845297324505115479781925937724248550165219883478106091986140254547761141155258968296150661548094711779102068215912412396174017902996515794086931677958798556441105693292988559116110376746966136940346568482679268109312825964726906123289005521430447098488145134371489037900337742312297036041639944990547226411432483925183155972108373783331152416547242865571486364498111357759175039891120705638838937769170674581497103969813398678844819638629498158395915250366299714696617376563226482476541072411129345061382604451994051559166697814835148023707909023883562105356227936622158429501603981810781314446992861690585683781986276970045806509167102607597681267210351852339471345792303726738578161628478255403972634646463644639712814301180675093216276720407442669348209263372907542187173544060963912140009561079832018956447875453655991238790204574235507717461957096199073724202338496150292479597456060959861534436839073907036251306938675503183875385371122950875544759167002722492090004929486871235962146084954247203588820808588126017861743090918408838508754054824228818665512575656695272700567350689965892504552357496770997246008999238025190083140230363949332402168521702039608403755786836291330018718222116123556696742932728017854877699345103037461127796333830368885304633898214509792201561968411941583128113770746036416898995936015089328593115485837916878882179921816165074518423210723489988402163958912758885856047198920467146486332739381514442438294216692791431245179828001023795606538394596410306057153925599989108979864795925186131990019572461111321319839621155564189438760869226001047528906944041499232708690667088298420304369104978531149345028147929231187808010255032754139498190053256118043902559243888558927027549242360989709034535285797538794769308058785707062847820757282324262258108168554920801542823873662082912609941876441696178929485523393149389688696610015636599093764219054085690289131319313167140251499148592963105216204888858189967182264436648407497579989929956848266621992366214074425764390230784944612746686927435172310460503886114927711179837973755488429352495664351999962460834469369824146153936467987677675772213169854242225792115443560836984623220461846899701979688403722773233503918927658246914436971558036965788723431020268428453994652061106298280422302490442690031795286136191770857875700751646328463995613418820896657188523151271949844016152115189118859273597601997326719351324681494597181372512899798201201049438297494289800986705872957613601383763952191926423436662355589034773714817885288176703803697113831107677558178256639341237611155967658393335134042246427445962881115617191843299699917872458518702097368912451798999494282938837076468786274481640545481437306798636054229407660272405865024380101608618486637657811036990731814951137106700605817666424241607494890561365623529615763759806734007642549212638551548475993086569369965703134979747512517997250055439566708860064233622093443068813360775022859413286338598491180612618222982120836724799467117663748739069855577293891768645635801915780327738242866194230615354807664372418061310215192862128698342090189032555813240240014207348940766496456781046535594483404877172248606694548926219829768442999608609587007825250834458236737519040556025707203352485340313801174683469987146471474662586393152289509241977061360770646525650107306051047011822199669594917675804790505062476887468626495663210042902551891955946809416514670563607840695064375286133578469986266792103085046911327935613443309607000553679611775802499198075885524698663812004369597094742648101915001657530519580403460608979450575319716227131982594592150467387761987242234006920012043691023810659984512122416689023154668064439649929631587363222071243968751835720768890858529666623494619295800332178799544082051641754440836056411261988528583235982369184613034472765514761774832358556886912676187788330272242857074053230843564910715839700450698235793983128771916837971865542641189307607872562904425664287116111395572940500383644128948560939848641941614517744650574997092666018855491230329939416362357235438624789841963347178879170536665591983637516050330002254993458417259648159644737695631376821525309555756774936553909479082043847842329800628904752768582992926122997947562347381847097920233773461766846829053389515204919190300039443725376973055336032062662888617587027660449608651304033881975540476565850680214991216582142514319086900380776750554259064017584764516736972613361933908552414972972331937593855133417715114541770333147225892458002324893269101025581953594844149368965693563177846230923328519624362723191479538215286130071063949338401641601187189301859313232791930327242270853579702295742592809443861659380787977764253273970521082286048823354283270177317948000399813932906090569254666929004175584535824836597476427298689417306345881810788528182795877523485050843579293937157073716316815239493437594626724888725495395937096904703101441572602749179862071408159229728436857725101466941142290937619829781891469517637027658607758449888077772007808764693653231388504244058398848900699752544274364541085942573537089814302766649579641702153331091167508426413814610747601161200802207087225428390980256493587975326768428923654292500537457134432719451907418964675818481622605409158054158513656141228429388841723698568829006857797603843536315439270898291376782132478164855105288600737135206575956022555331090353961216666625311045229451712407404156736010398726600414649844819755675345531203534969028951654218548047039158669317572343792693262112348159058447029426246960416926149156852937401718163012931074932651531442221700360629239514375224936705355424608042718835973954962646614013939707692037069215069857476906521378111373516404956927577307009166768726598296593082345730322914102063251851914291039088822598767899587074217694853564310135003264092001318002778479020254948436099454317382618386461664641704204459902851348766510911739421788304302222058416233311139221627245146471580184807639741840273169245080550282444089639664134240830256764784982105463165480476341126983262691067482991826208927260660278330960507112448514235053926934323250088061782091499938850463033880375416774951963984423858334762619969677027356195464716028589985812546055366449590935478720696187577404135442967291765360523912297913370955395643077817969069434924661562100090958856177806788574539488807894187923341424503108956541532043838899443638412701056436220147827944067966920624879904681527138347117584561883780513256165657353717484273297180164392479501458796208614385672475603887311948929905293404867041303672105781598080505757375525605124288581184468279996325354498327867457670044921405590694217010485874007714094205963719254229822610574223280609311024692349051984319920922484894790269463471741926361455616178988961183278049371613289044057441000584489970739742233880245075558571457011020495142616750033665531962181746545541965250213235782246959697011061094630571904348530445047319772547457469185537430843973970473495169299166831675095312188625887136839830549737146428530613981900282807626198467723482439399510299482819140883365871327049953936970140863268815988367421626826155191925405752930733529150282912555880165186058833056113726950797867705028294694542348907375786615213581255901284266729640166020158992519510231989789578667831246581577285424152084093219802459288255722970447798461071249178261605451850100285708223127898478048315915296791472524255863788090264046059263123557141824961620071012358112098467210841116473650726845890265025514877556482714989352668334873344599959163862256561918439464819567507757230942247130474208180552780686971373005243742703144737625889762149593058253157537879289626312754936670953340987737068573411795044848928682196487705413879422891941764470438412492095996573083043951919447791248883949718472005975199247128192870387512344357036841256212723927225979291812720925160782242091756395626636608713059373660098757303300902353575351417949471331672717784075943757024196934941157327085508188234278825276317933454490212765465676711833256831159199513083687999711924068276230874365782793617835598249997681681039450207630875408485745459541983363115560507247930438555612160895903554958218018041892850371488202837491996836233880996197096088380884930997720974254677152768372440203482127401136957200989128476520535754611326727644825646633408008233980477885379255293506137283651359671554386685859070825949515108305513834722438133409469419011486892350217052492268269614431719622534795255629236895593126361071516526885309360176349296892157641705172589551131655899529572761837187048793157429636169132429790771188511248921824452573135190114926654027230564989712074394296283700658650373664837276247982016322295190409710693799283949744851514391936853069060634716383632705863346800188211317706257647705060733834885963665633471201277428640987236116999218132813480489893987153198811576789537888655954673977899743180525730852841249312816321182163456441497102069856495337611671520077745815280928996045088302031167083991828359568713423956133764079878617443255371158112198847652215116043535122098922549072018068892970017850629577383067245637619841770070802459689626725921609050719002788987470040135916039895037307296319103819874757750575791686640304435368467758544258276879367837310871578109125293546582693106477964440047320689847400918450799849798179211848754165742500508219052332890116069319788097808256623692295779517346619497618919010364794329026656868222164926789643519119006834150367195491568748035859401053525293522619366832935578351572565834273085878743664315153526568810106389510889365745168019820576274668191059380812191836247652028910617157026071424204346099712491998436331703119273303382297395880543314022354552634037805108406170839670366617657719589874986222606426148224344897629516891180264867106894747905745983116184814599905449916866695233050972950509676913794687682957029370526602474188847856477459092647517615588169828994839056833560399077351194411854030188364420245947508856117380469589187214904846173041192197909182088003227427778043536161722389095100194345278988807768732823642083593126744537680802477072093284159210546506670918417023548810711822307024103044359414427485040713742375534286883541907199335859190895514361247416680257691222484516851524326737134809949082204514839798466245059371332800133515263697710996903851871991509543387863750517611830320006112207060743215025639309722187317165821439560915633359604885504583009284907959788487546882922961559815120450245628919704715123558153388323882604915378041496241693493914621684743504282996423982097907163195221793000090546487082448399644493069820705254487438628485415059264036686881842647169105338968589468599428525050293269857496455748328411659716749128795833615122255587625398305171003461934591431345902898652934706022263946544469663287203704811502420167464807227225759191684371401363460247282290985981084600851199533301310106393138472686253715412211516004656423890820578389874124303640074922754298676280062318501394421366205687694674599574359908630836103861860723818783372736145296281744154824783066555845333530555529082676180064699653587947917996919668497567908693941637856654720978695357977645807714719723690530347176881252398631345943334855132588420131567518841886834754096209673219399807638187476035114030232271393293579518870604790284653955627307313248152003953845166691026338073862170611254170610647206649789620964516453640852891768843670697797089512935460110891349376918624276449089268364071829396529931109548143421803368440344855051057320795047964771359114599753077880105951512451356727439213879524618131036341828485965684800156109374983322095380133792545125744313026636856000494636860150925766790696047294208965303876564745259668675003275297092544519264330421059381483140181201965214499590224930074741006344101216970517024819797161982490503186897427900310273116210706762142047846525222163726151255589867043047080760704307953435136931943022393858723998514543692741490077903822820223915363557099987409594485659821122265593382861151691911331693694941896913565427272444388252616377469117938909450099485776718380170948712349102751017770078170854128575428303354568383347028576063265593531613444364759240271904656797931335919745260997110469202365613649224375878745295433082158589790513166966823547495304373461594393830688976862105005034006863250997970685791729002429079262209326184066744743021504310869659630528098781328309182716733396326563268303365062102773490254781863622161299533802455351336128750235177126141852484478010361186648460658761158654797340411418923453353702917930055656694592551303525039698039738265586427426311407121485708874961810395587942909025459569610562746234490441524726912233620074196595728523469999727794491081327197802090714499596105344560505658297616798532566158260347166899567526752498884753171679007977792537432888648929757992173441991304920548739955628256733440616146395728186049474369173664700308441315605099753194495429943927099906164290556305572881676043504904492582667121110461292673854584700323518255923230456479346597057560981717387863054120295924224183360249455148345330967591502684560040280192349453483466110423212161415706742472236476455014240153746859823632010247210042416369271527570369332848510437677962044625345383619625207130356576352360449519539500036557590330167320850147401762808283505680205964439644839997751857284098802743570887057049056861871056240209766667136772011899545349629335687648285491610560681397311378726092130552453578805939728141832726840578546116677226840690631999096566089773241481047626885794429461001458478619450692837027805969636016279229144376334536651508521826132200251628947619849544149140077805744755738971337990931207094449564704411986919746969975043352842512325853147711422416664155794521568145648900746936446765418311166766524260208285508802380672690855922707849309918711065223222667910508814151071850289275632776415556227932807142004719041897744245294459984967114068313785914465674108879020555020439010960681015993513853582336335443353710601601946183693032445499811073395621400461695449767941292982067394452889036618046204070428013630192532394025608087025627755215509976148852618684197818811880288669918356547225993115629778668677288958065184476351928496846569540844430448997746677063866331582357285916315473835248939842533899323571762350402182981968555630983720147338437484568079021666051052494382093415218903471892691707217868518066577583012046715252670021650098550447129520571692904715827873914343776069744616201594636089882749963953685677897451758689776754786705089832984392286813797614601692058291373833416756858788331561762134621455728619465580045006599627174728078718558733522566548216790530210092876944171631522186033380999282413473006136362371795521398930002308509489141546275995961528446997946385273113103060552957705390974883816365906259805305058536459385669899805340451082695170152630374376952047693397859858818018460590073022466943394804858650546755171882813663757936257371895557725824061474066721327433457161346566310838734721314548888466452017195234270569613769478757623909100967420333831339724479727824128851266924457239272160628617739508377636674324643541784405932285182656907978910954913002203366530365791547787421635788597969241542954498326781094875855033177040179773394500196999732921069048015821639117861220618128683264338804616447605207863899365691468373465737899174530444328482123088760461230836311226146858130845723771741019296585503675626305893556073254110974678553491700826424339525615173338311278173123452997835915036038282181453471181275891030174748071883801493832366612636830877224135915356634665565618136095145540662715058528204194497318582334611782283400718299702288121009712554650632268316960569785291767883638768861379305110647534629590876379626922057766568502644015540290339932188291171203110915581175533311972579168021135218787304623748990458047771852001586776543963644496868198856914222889181528245906282819429251841424515200093898166426046697821316170010455727370555375997234387647627184076748612772408067118170714082217766417276513353899177493095737676393774098381221298744746061644691578126698322629422976478124918205194562987730688896651842315889940793813042442373358146953685495049041497745543980459543357022665714518540816521067463571836474992091997885085381603593982184579123068545026761265474917005839731711286448486950603965019161485074030438738323834798293289725401870603744476703086049752393073213927698665383010311594354206191369163697229084988815395012537687350400183794448700457907874223208905638792335154795538824883653818007674917556512704925051811928931817558556509703888010816199055050492228937035544354627917480273250792850989890388549980245222605338309993621498839890671670760383829249658919743104733004357361696568673077290981968576704336310430979243207850408405534505620613702905990666445634694393268074363191306472449073252342873344434585560440591697187114649359493717168106778380574744798273967420848729185987058269646615985045778903960408101541848424612276548445877870349721805495972160569079868741903705439155248400829745019618547796618262648158142214097038572434367854558676532724794163057162462521459519531786998479716463735595614389310983247308584535670021157232900533345209140309967071128162026663367713236974512664491838323148759702874777383567774977118684149078236676580082794831138537151820705151866256984106941315253228363278403505117180831432882012738299634381763298787806705760908799429772371137596835870029472123240443691557089056714025420755525168168488813057248148293985340680328536907592899055852837395979561792270503502721408408879962056307795664593292876560415982843067951096010254079464226103382590161159408989589161087666496092135898306237589869263317456304462841529753668160803887984251347356637890799323838406462998420858442636596891482869432190718887793235040701477098092260569865642237482913857264492929095577880884420767704137447214985914972365636362561321470732490835819664361973817416746514731187732384430542480900019883051288585602650143023901514301638162717363296546265181486742754608137803523190618743552932667121569651356939921351492172581022519987147857501820073114941752696859301216742426355356580654486856132700903696705519341485691205368901337482237903363341381268212259028421297642495778145799577534730981834160459952653802162019330347299421150089265688718518536795107150483085099855721828264034093660342334204831450951286681333109093727855176252687569391544775095095807258853873807542133714826522539219004558255831551554617351432026461961464081252947811054092648274597417910185330017304774741644006967688078949229261916284454681706217450365294941631369523124778135626086473362174019057920361215168601512619848335796082343199385986109062588036940972307727472923091694029591289074482845552854032408980902081739212865145860248341452983442259602402506022928773719303654310478085303733982119778326714706221350563963334927768015535730742954028209509807579286868015051276559433826591336502026078409484472995688473270799827561292084279313464812157784112249907115032273456537658655278486749912651319809106542766024285095673810013021269229400043754868563658565058408307844196699714048996747189987897173532567948654804097731289051827017605340826336838911375993010941722997816780015272474561966500988697274076400878371257770350374299921804194424323746577786888995531806529398233062925602196680061830377296508746016802148367805778725721336802185350998993911802597665482140779360305845387797714407563424408573870082866015621067120514490614438913579288154280151723489045040229707733107687415943910466884603846557453617957271991248872272968929702069646974036609753718372395004778205633049682230823461867645755239418167416859981072607576418354705782129671287922824603912831312644606973636514520880915133709770963583974486187505592850274548057361713330111068827861242355737744769409863389480092295872813778205082681204350785787332237077004846510358697970790039573806310775272653970570538333362324875184455618273122359295352107775460056786335236078655839297891267269171504609133109269965742750012753646615658137735271450382103793649313132637008498655909428960503125888554863590247124921628258609996576293606563053538603950522693973114560370086944913065351299302691696604231744434425616541122547335606982860746964692457831587001769207773364160837924612992902748978205808910331940823170261983306142217679519880097429982950897861169890438594948544227595704757131619392142256564989537689777591711786689813118144005016386177193449176822083193988917118691812364593366705313723949222459203638634255288020231808285635755620275871173969078990587528048206140967057945970324811791168346230905238288372112074596193272043833002579422124712122154005108678144832782354722586487956153054695607136103325915988060262270452893930009169362293329201639035305706485510050983582499939472846280519834524676687629499193119171516653223085822016995703511971455209424256419195065720987208326256652032971882780116998883642606219574204661210742919313510027655015461565896650634180984417194200023324689095666297283869286041237368406912299348924011315823934424878877680346361769853667578715202165317174012575956636788684867251073548676569447092377599910460774723736376646736929618340196360973003281373435161983163142574416651940493493461318911676744593004471330857525109662854194020559049955604351771015736953197141285571526413521780694927107546373449090362899621590109132068219373570603519848998768198340744938134531177830720928712900331211441246411001674976961583134577699558003580145920791625142271020977983502034695408502354804382689421446085378448499778542354015648345698610117293452051627733980966773076616950620635438214284765446314166981934323321085229899140938921249872667116662099775005921268281821219129974051321209936344662616776962250542703016830271712799825684597477600956663393791965692460905544302212554960014975391603337381359900983446358139432583068330105083430198572063221221869239873306048820601057870332615039005310131956787365503110573570033986319141484188902090109059903176274745020240225043547046760846378674157677029374233850050064515969292121991117100035121942064660121116050491210129412960771193937688480496952180316961265151419176045659644736400239162561192351232582350014344263608604071236202305321717711241598635680321885002293715334938394707444183436637083031147242643553817721767581250119873634393371695141505947032395506073853789423429427629351974737701176878693030354803575551687884508061469341111731978589562756354749012451609118547831555884781333138527515755692203373013613226944801910170756369154010371370746850790058186395810982296880759485481501529014503498748621261017884225767009407734361686568464950906753281802852124575831267532147841101276221449796195733067398246270782321675622587119785665193130913628684639672126496619013708803630353828778847428730912145883837208504892203332788570702600472763750584501702115235142678255055217503202130011770345796039309812556992455243462404079770258465412204612149538113561276234784949952810749110981777179024827599659331012006030340439057164393855738869618528427924245260100793982582265542487118190320991306126177299155898022019561634856284378061737906087705396777945969189540049140196736881426966735876529128988783908278430704269489120762472191940732253857748879004381111843495399206103579084219152674019559418661501082550945577345031455491721554745681379435475635923348092355515827473952079385767994111231528727112647634277323239766211220760108183046891472953202111556302311514855732130485897011875025473484382068824440284003658937809204538489659811666486643464672633448842288389096859896788268147641128351094162253832062884095159498612359147102523184608228842438284154814200553671671420463152193074792117539163579572214955304184285654559673245813879550735356020856276221052465974755299886600454397597466243373925799569653072784729935489235267595786177703790948145628167329614359345834716897494189275020628342966569131402686305012414616035262634934606496830212065744824599788186472103625817516340263592532960580613698560917966045296138960087316627548823583418232442986915417291432368792063705872770618471962531158063909616460241437887854449949818276081203834198631416361576486079277147519185253834375579976617219081997767567983469504485405406038568718034085193086977780603868482468592072601851313468342707194391697720704572062364390555160332132164293756171792852811606697151432746330662744497091155249583345901015637449063993842474915087351385830047772899235481419148613363299134942058676438249835305481676657658355073690996022311903110636881679651104285087992618002210983243178978817985813923162751666542936898741589188542347449799350869032041449538259838854420762306060562537763135244648130543226638633985684124841197767848135923041293645468892094281075848800709414090880504747400564146248825206620830523153116134168677080580555659870426806513820803229200388454444591035563427169704033417702719835776001783554286568188837903672661546697887523200667424062360793231545379333344685799484639932923777605416240996406421366594242698089737998639155181386114048505347808066569002976704712554768588881448777311257487978299361049419126509011683645964917044711003324179012968634454534183396144528189795462447744898696461473281123360615818839291426478859823758365767045347289037517659485344643973419398954620631032287029085510326989639547112980345069253920315619014821081632409526553551635055471124173821452396840844312475810679224098048166104239569020776904653588450265849771818555630910446106103529618439000466532354471788809784502234289981230790474775072393619325057412241814547085642066337577713047551493175721945076583736289621709988715028817735330809434184909577229609232562997673841996280508164419797583970741247320511393356601806261228488552459127372730992290451812922445911369046973587343586398653474933651870147308004247380454512394377989102025605606646970648910811475549920093198348657993315225809148358923332790138971031802365024061742827123043427409964912179834812712581973114762970677025429255582684357939841643201503531406723979459900989008779220556186556475885082037489752008510361593406220785585921684406061283915041065178984322891684499755304202527780462528658188875298083120973728854103479001553732791768106824960937097449654189386279904158834517849993767910416683727923438954938013356540973839674629373157155672867759284007251582294115421856621020775636790820787589882662329792504479373850620190041019291697506614353233617640702919678458631107459611348132394131930571424262845272013360863350829426395523041878784156588833368291907110624553464467288951057603891558729220208248273384122111707956825752931958842406524756889433265826366739390470282089366233311072818621727274244281081391375494702948894839487901967047534585233006912968475333258908627697241591482809112252304094260176748334589959300571931929986763939335479490234241933249948739757598416286603220630747620420580609978485085757347371727826133867056078361876494670317185640772672580741153434701265003867584834073295345598628050217496189306395443945279064258391865556944551718140852978397624732368026360360570619925489977761808534604939800198443445641300015198097646414041523326831228201290752779696516515087891258309996416312985681721950330241349678991563733874977875264186176127988168081380560572318429538958705081138822226171065286884469457729528510926632137899598712024391657561119963577150430141698055248305671581801451901018860318596190593454866550183658868336550474674924253669216614743254955202905965491724792701312647574538300809304492862741803011809774432197198653162106452358568684076702122699528116681368837094684209803300100071939073501771555747840855619233000294215643494796164837164417522770492010384908161260456244752748528812547016500792692071519274099137778563941420808032222438906940549825169030098050809031150264726163001307434826596028054219339567054963444223082070623004279842480208597446518581050126492701374013409364038447249225759921920071799567711299572751340195407152629862444087460012162137530428856244260364176064720843622827607375365131636236848820304248217590383775125473733061160909288561132241217210813903332797412306524934597208811958252906779725164326925649557577366595891096148217564333630256181735034139799457430069315727827065169997918593122713742350348138110096603304016260610507691234394475484683889555287097001051362411466998374029314717916022526216123464059307277237021668431041802309026833643887710711096220546847775758056178045565388438975783893457199224381607111327068677165024868859712167671618097831753772982643262008677423714784140700928840404715025809698343093635633754787326143057550163364694811883051116273289254473808535063123937420985065992931191563023739894882469148377060202040975111927841655364236221760597119618117877073691307554078276307239212915208805863144751807989770275442157348206856599275814710359103996375392591165449923140757302712035088286473370000275649539127869626661382788039828274511769823719894673802729441977222493988204547447731604346820927781207650486157580690713128113857071902632824272890817298320825149696639086714461586330033138870579951691041945179255482254802167691171573480715061538105861116709050236618816255587083918136349167392756500203620513810733541276646874583700827129642122871662755718522252149608361698714763410760256655385559311968371473733644912549191044028241398161551256109294824236132190642454010091583335655974109831216983686504472521761484652628646129452317901487692278052170672737826845548371077853753021186661076223106241641450223892057955017117567076285719939243385175348776718368534650706758932485518280049954149193161807127121704005357376247962043089703131981591891857139386171452217634054604581339988746273762964084824019801674369369926530760443597342783787885153432323042680404578044060419226776854947176309253886900789218605072398668918783035298346826624079304590899974017458080032576982110687222995516204861600244400180242777327725362596048419136742029939637189191736665486550612887470429204521013726794476584205371132406487534425150517892208008023994918638562701752166386381972949661374383723980626875655125514889303291650424704029733126951256999658850482825202278019260263344061053157795327874029641216582533924632612575746700382487755699584699566244066985037741463334900175786215676506374947870599176945106265788413638483231516155607505358399955007540101427011073584811499255352469995607093113545980040061913159092664481019058630073369344988614703492207874600979007763456753873308387645971668178816961479507586299984066955380526062747662193383001327625505163178390755677105071441561220077190417027229940171763605468428636891770044197548500029123389809867057128443822323604994937883636862048209321792593027847491705524870130293493010812841870680357716571409177218938053955777330757465161587308841419322928192506342455785781349428569956637298322010445725399005733364982026417885085854840391363465425995734029547634831123987546356667621587281163744971971222939452392661005276102017686143196667113649086658796168131461413166538102099607941632704785731862137146935836329349733775802198108484039688899532516079645828958839849263587859463986703961059139238010574904049173027422199629436406756644645468156011697418361031561424400621675452669622860820726953010376603518582122146352992896559037391949760462461888105631543541882225468387815250530023206459213436788355575635295834691528731330578424817468827965261067313519962602467466053419706096720628075823872847643468985973698854503734013546734730691797592210371296155816109102443250909063749765734276598190760700626749263332994707803038368983870690826070067031717978399590282670568686653181523154617380289649828010427373068700702053323215351106362859770665516391418281161605764887070854054154657238207885770529321594155519680772928001123185224581553606028662238675903405379871399858482353196990583021134264145978076895654258610588982727872356352836814853311108019172817427862335822546403436335487153793750791567350195760350513567479402395274691245107331015947560588886156110470972970172198577911210571541594273393114180159264645771524544538164315864234667093566365823090577162523870338172967424004479666904168325151985140382878302357921598007381479086242723180439557810440974428770518962937610031380836692332240712262443791348862501522862133062790906398332647004412675835241940768731602741553894237301268188359548147807642053797263411258417223635722998084557532574789510915130091188862384487409410784314163138361405376169058432983307996153041359305953945954315576424106533462157266235028698985179286961882121073201098852259790188086899242803231372347451691582593469373450403687508407354988383612569654884652253268288052069895632116380881451157552093099997053433185893108191772370100541076558215078424770807292364968487011249557465504488335651247633887669777398346396722228258384708865793157929699615172589856357369242300749838728643891169180269417903077379816944839975545106000159865467761615298324196239784020676067187267614608897561451824407799921194947779492999276597257307386266750100346745333540135679906873061579273142367618888247961144259021469849623385019702723951098678086169059936888499178331269676090792744245078671932590611360788933185386162224532464948222694162377752107095591885902558139228547585686320304560410413895139653544328038422245226532172080610477856205419873620992003692202815133946578631099814346579755368310509376468327536614914017787118415707467330958169704503906914327882032736234319977233751473997927755571309110696883232980399375788650502703985010144661124470002926298795654281805919239480219922849905357951000997200811145027902337328476217008905604708465920487095699176596848974388713720263729918050919276450760723984258347352194840840974264454378650557358456358053630400823090556166159624293106566777501782434191613330907973062586595755746705820715170296967668629688918279504208574167566800784735505451729524565076647515852108002155210592291324304755837815248316705463313174814763887767742765746699189636022019942192914672666505033451216268612911142232043769215966915970389780168020426602822671015842931412148040401622020824514164603219111130765056409895243768779723369525716401644458763849975439846417699961681398792517807026870636887222406231664203432598287830682116762497369656166632699643127137658084487064163443013014323891484726695368968886557224712864802380152782945459703183202072121120190876112020159064013077888238828681086071321472850549174334377960499567500666280359197653560069449012996647550980577435516558427236576158789571264090853038032054360269863708111929951196039798762476474964471486868143118982440082466119855704260541522033757467023336140712680767849882331425105962346940705164208382245636300141230712905814022777174250707834655774775058650746253211213657618045588536523732467348544257790588656661470777732940115542132475382719293660840231950767317317536056354920669843098543462103811231328198743952167489357940444306817531496846057538855532945416948250203407579562655823175992713295350405907816907530432719057089036258204964550323009750302025717106572682062861873740241585368786018308960885084418822285617508099488521212476870838482423131007258788112930953411778349884661244307415489165438568359935677513695099883651679585775488545195970499640430367042904416902069464847607286370066069213034682917275513642655889997940288859947916160015288333447318533854197476741740707381188613839488385534978026347113818383995901018499043780429238351596314449090435755530850130258128902860554312083435403813884187814454192314874573264369431206166596618733648027798682270480432324128811111672549072675863929776364703066614058915682499636878356742191203744589948153069299545959486433641533847960563932351910139711348639548281187894878324888363402997997484769675410981024738090750752733987831616832494757810365861943623575781800053579176357040644532804228802492643692497191112869983864324150579106944414910807559296253431338187510273995459112525783692492704023853258163913155403170462268982005389718538769804464961800489612919125633723260622074288512244776498053448578851772673641792415222439317177178531161424273014503911946283826231693724031527208335110715746006585395682179558338785635947432423683999181406042448909480128371205230986409917596026763672434926915664688458683757993638243903543308126287747679727505690489581736186634498168612600593043862421999545457101619452560868412758716529972156963697169354847125599781361741773711354529072632796728632120303295241355303647295317057773109865300629475889593545089578203674662776006480305317278396848202968006817684523551917968947763578338211637517077566347409774268277718221820032230337047354236983478863769360478526336228246925249636508088412272075964701393568896969369087813727657051290612977648169752972358946843552008282055640271736418877374560366399445432891672053917267065722639548853505499948229215287849065386555291007428704502358938929534980623287578709587777763695129348692834015327601746495587517791368480943878657407586695411864314295567400555040937862227238187978435575576786992255363342681677049537544742677445555207030134015809652268015951041016369965185352029623778348951589573954625765538829835317651611614043587952914415207004649078540117903788602986377298662463497620201812208360349524090580989823774787863883917556888216282841734304038836093283052108033394238736207310415764834200570583563392540917194707186143511291191368398486000147500758489849292823447395994280026665502374590603503029496761862057072333546307513599595627722559794097416473635510379872492076627948484728582463210026863027550708242070624482505764058466144780862515379564699034799175654359702540425333591390548142460649657185869206593248300014396204632246112458631844466282516080360183621063278753618960570233184453909333599724913521766223449912171122632372382920205472512411937128877861800874039119951310747969397047128864800217126147177324532840363642685766976938216244883308930332183877231956116838130705518012444663549329716820324628692870981205791058554340323639578738638668137362112227679284924699622231698868141022559996920935465876594251097222109175542981160308353426086464511555225717754551523342282297688568880832377835242244971032920723136984265697242961763898502264905194183132752073564031974652299522043524915805355230448258909812687721977241521635892027098566690215870724132236315954663590034533241673832522305371356641003413263416314510092861920336700003977118729968829380058517351818285262155629231990836884470770683509702884914818762973937818160021512738627273138193161445580605178359942143449817672250638827526394872327165733822936242326968427411512757708959502384427317611267439283597401734328793314924436738888479608129498779356898020490842888255378494100170947330999379149564755751264574963432246778994419705286851182413204807549419940269323861371079672192125277088746458261357449276910078351941693511598414898464214245326861473743506983132265456084280330786728900334332414132074693824091788337821000857847027632043130855534783069909594581413602470886408622262879435078598466925284214146139621972958090606999581230415689839250463661772837610935345335577759001683036628467229007961859498741130293901726724908219755101779071399079039703418480747990898618883013410112676582721540176932758952574697856138913789536718843859690679008503797489915951649454476902900611719455410228677249790889013912789215637256055362959398005025087572053640802686313461888569379234827222985414016693372301780718267679049774387613479674730727183297468398653988725204455908718802200269713816331999685589952554040857153192925502214674917123108768228404386846620733092747278977856558246045747630020031111868161835859573665500613624894125478035483013632855745796936318239631413220872526077572523637247931316094629501710532569217167367777634603782482308929088679815836048792473507510873694011722691992331707458736620739964486845098244406742685815723653064661290499588483005831639676403161924001801034528690445548184797269478032352099595265223133103052844430403166690642618795423678901679799353999776387136270852702069995260035354036878143834102307034827591484751328495877003753560997058610868701784134788279883479317564215630268778410599651077866455477634792816418921358959432715519576465935546683086991466874832943875075800975361946657508695631191833284434358363869192450719501562914457565375263587978646373594846502012824403650688381998596285377019289284920226710959789225791365202013714236775782939948496433459687606332398095580368581288208109315342507298841076401369855355146403002616905111775372825041834956622541812312704564250506373366900513052427349142577058010904419789764041130301589349292521369433377855552397909573818877526661146758727618147924490223830762907860105749748957022705118287914194850663751561838982789066317142007062816003399660148503020208430715828205056028613264750938538917661267665354993501052687473640120964898248424536202755720594564317660166589792425582485142257967382712679461964548052772601836135666325932742629890157126856928172225675685058190256923681892188297188471550862860867764229253911073220063144648367249857860226894839571726162810615539644002875578948240776709364512105510296375010550000698901778039474643762173046696283140215785490629148269540697847889490666511362556921463204339207880783716491483233488325566608180997994069868680865168703968825423900220772936669136344685167888268717283864492697956766103264686956673900648107801761814393581205376433227327994908643929901355877209091213328333554641430447650260032143839628847691851557760150651161664462283877033249757650022652287514899724965045669375935619042057361377936085016351680420684702687651083361590127368127990098000890011526344104534569529515459191545908870068232384304345675853165349689056465107990001163905839008190704548808052297413534172740070671807198819640714243276626691286547501716658572408970863470994475483716456599836749886168149125522535124959156600528994836257137130327134589786653305785015749611819587608625568505010288912356131014599674253557206759658260245691008109962054235871573673292959367527188634403932265613933969141788289639281403048728124190567784616992444435783596057150491123267351033545007524109045283249694501401010537492887086979241839802474628689002638877838161400153898709371509572626187489756790994368877498116491496282979703162036280040121524674539103767468540242725706560056781597794423398639182818331657833659379989194420366722880298745146481568089344826430307360386658372183298619381255718397225436131206368106047261745288280742087852137898184960715452009231155707850228943993569073379778943055001409953171816116147875100029939515218968620465896779391999976416371994161252262792809898077504000491182531090897758311188606169881060905524856411157278021245108308123779330954660282367833770111892979286824903639258218830189633774361750755739143047777156838329446296856908859415290251607297575690086878515716595194088122425149881843407102561600946008428355876988088875558163180009534291037099266919840084113490994275491392568508478739598121550854092931120665750538029874102191749187024799668125104481341056583980457725868218483301226390869367010666142447084239562962117392237855634237252141235440274615805694671756719011828921535299616473118252354097089859679602984645868831384756154640027103955354219982809534815502162890029890424527156254201559638382013639892441785940196717272888570254288452352843818293825505379681436240418417267784573678381530473679577176043124580503548865510526250442018606493975322758860763833932952209838309941748624420967256195400369261633391969962345233164869630188317663688891703458317251225502354875470346203309170167040165220830181463335133156847991139559503522091712842951599277057311658270708222433566080875738857290659212201905925974305215988291799902816239363188168318333153736352920992237438495282642161225548054652724496244056501036636062194788535888757413547888227199954377619749454655167797350291269432199070407543295231016474529422379070262340789914984772051254058572661680051507134374276650427168176537158747076858705149021727928594768853239557124301839336476040245633043324340817893663862241374687531534207390877995193669410140693534245474844856598657227890926983692243362167346336003943554457604120254158184963515794925865875767213759020490026005704321574895288473748974529788791983209762131868778733653475946236941347754166160965736135269725938150954027306178676765806732968988950360799131871865348762066170189096843302672802039288086667655630237033531312202459164029255578869078247587935544668163128996816992404673122612144966950206967389162923206709504726283443071817745905790639395999588990176150844977730251739754404657060404399769388651563837905942157521752546436847468509934402938302131501298677591724305034269717755847327184958380046702819085134608241974389294009249098883881629686843753425621968466668797042668841157145500705833420471000795922996349584488682798662536823499562552078712898521440075923162549900921048594875976986077689806798761160520351517954007767358311098548069969306936861584636830112432366045142584333893386490003366696298116405608392213347670059991799036758384088376060944750217853325050075495550943719835111741451570200781366911629260463190074789811209367897849466979131299270773979175607922745407964037991197658229102110971751114439549139984358826793216027384553157323521057199570235034743620519474546266712129225357439895654145400096835154879260884504176798777901088779868702209617725373819309310549556531708299343861369472898336648666635441289339769864375937707752812617736695780861747008685514413916101445156923548147960510503993196322939381228086300435637106983974912054673754725147945078888971095453889668150876237173974741032000306507746633851550669173794329674813765995741058930367215898734083898218820754391906169087070089875937775992005501251613962271586426239430121188993439670165520907465570759325188958198731022849555148262516610619977348410579133405560904625745608858086436549681683918046440594855199173459508420435134120634912006689167814486739207429543964892609657951453142693338135181701350822633544575715584472176705768030171481758584243010802660776766038438932068598885968247784279019586289881677376347747605412078887898843973634894215282920552701905757055096143954226674538828527462269186953226112380182606484160805323549337796116051864015677503292896088006141462245015069652570093024761847537034128682850087255385347424361212797791218828173130809866929714815411149381066176977097233706422877286732545486482653975972816785554814762937875851581688088168486143417600341573387517351984816721126361888596043793110749575730301303967672864552152317522824803259283940291167612135872525670862267854133423215469763824028405560474305274806132284595845693516207505492472561446071445949283092342562939465492068065881439999983592383092775925839645646914914000743796859862196992748400448042083973043205995390987482970708835336622126310002401495600534643606515897887119549110516482276550567649718774793622539143968419485152114945977820157582517482957876425424043813380240026688282117942484065815069020980223159505935313834009511560964860452674872627162934896367159003415161205860800128271349070591295860657033242509755786345066340588270274787945356426371413004726593664315449619106985658889720990077615140449159021731179029773772464232927963163510189341084355631851848867895252282323269771870766258353998156145126828224854793013710236775423255863126913369245691997084636282932507403211435113956807514418254082106929108881251384669827649836058107634031506533590085134385220050645617660749303623528544931209902980469020428119466676918580689830707400082492892156573111416398708162749614201065022859428068458873868926917674450776255728224966311007385202006000896576794435174501041493891129471592478031761162555061443677296363286454994502541263650198578140115931941303547687652362230449388095589368481801321666845473459321257481357590928392367039622762435705737759931447676151530273496120024285082365819436341456078731303704191601736572427630162104876761727280501537429013463241135024435327508823837860152568973368495583801028050139960874944824542209713154134861152227144840260071840013084321453142862198913550561727220114737425105278047067232662302784314138969527305140376930584331178093851871235190189760760021053969609779754820721985341584148569487155955340528332935156656873685808838788243569933267107757257257794032309907306858700268902026991874324776955871472508773228109541125204947651876813085755998278060229940619816584523533905342787591267575451522489886686524634834132824447489702544387100813791892207240683579622097255851319301810281134613233205498656411284018970447051113911447044869424866987792013948998075836485284165037946413293185758011303241388462501390212950411411495859912732369277840388977726522054052746393177911486676179928389321120802351910651994918331296825404141781528116607285715809667900421597017402992085795673529655740411359602061573916528438967180787392486873118848544520240009290992144405184997016659026351733040444424025639362247477209130017797611735432704621472829763553578953122453726565323310566874481245326522167963125179185432299079436061435725101993763193066184796518895401536635257528848921803508005608686163260010903379361364580574575271885707087704648919983728297083967365868648426298353681038322250141026717609190798105793636171946155080699590486006477438048313659980370911304375868075084094677076623314503741966883402681405770151795154597687434454479854111264633141048991187103787422458138092486935200595733957923185551591877539776211593056788951201435765468136488010023647263752072956969969644455260383246693654781314744873705324855608694651114276499320838958586509321708560898631051323059946938753798168246356794058499925898675850669748927419207904901836701733732622088637773551366666169544865439338541583903852610210712353031525567778018794229355590117494962940510186086234638598158047141333874165743374250964796712512559442397583161861243037785908285499956281311298375572612553357968871934269769591273455041780217227119068634151746486951583535747534964495451422359464455197929897759122685137836940823957015772996067659669300230892272645291187335653850318534765375933535460770492751138361688554129721015819854349125506890158978547095102658326121449981482027178023250520869915544977001252597498342541538886474172115214551909884521303711687452930800428780530970780802041873424925443616964838915703110101444706041200462590749952598336688325699941456814835233402530821113506632528141770154031762628174968996984544093289096970495918190763102239856360047926729777964343929901830941396305567683188412692793643975067160758199388907477011443496230716458540631141727458795307866103527904858352910735633143974984313111892682945064293040603586864571891654432624534987937332504875757668532630207683919895434687887550845563936622339657578545513207512489441559007731784305966712896318911470962769683565170503500145707803295756581309960724342050178455343275150457834203771960561273781802520642372604505248117279107782980942925270445135793480419302735077310085179703841514117740308614499785098395614398626579626332272115743304689578166920177843814687870421611383123062150241832977071907831764094609321366512343832782688855303414452154263655742818889457689950639898894057732419964040483400771954176561388874398035621407340851790398288783472504398715077976691644809394590975341151931654325208789716924129493805380867840523899421412417584271503290173048825539611967296305079098536034964598941147696003303520729919601215845214788568213849870589846638259615792203624994034965046422300536335497849332869236721826682327229119381535389977288047135682519385310559013109870375657099532179762896147698815459092985608068954694807736979552591410507385524973762176134979933212933415361090157787906370311709565958690498074934280789280471005752060307547050500225260405028804250407400806971482353919946238572264486219208842431389832810471641482833668929729255847228046091249592550546623707755910892788719361739892974278199158396737572632842127868539181910817816824477938034331368800289954090382687189700767161356644628663841910068148003175019286528865027895643938624122632485029915085419589422296876007231819590730203851590559033056832535060483005690014085477275270325996074413184893251518319160925045404700949566354190338918101683356419862859377225419664426338982165199700430409526260769659100527529445529308610781384247028500132914903254618764920529075437068417739913576077256143176789559705592300213838763814578012817726696346023423342594566096934230443836866596270565307725363672125555731698529374842149163987822979923512181062257393639535563019105381972023608642521552724217692964281524005826071424776244062399835231451081333331504648968944131388224444855907831941296274657072585431291141038958131099145891689478728069107972481618091255285520612662066248923971304385763397642643704114247361323845278610568210084362969804946890693175842122459197082283686636517193887316782032299832276443067339977967430164452483523212030106579523450568420891287597098615833285972306550352688078558373849893685811222443638763097591337972294431449795373686755617119078023139637746338848378529134210372829024630908773557800438582242565528036944451759209029196946425025704144548800479499043438498763993088622786765911131925243586113850038815909673005347536824498191139311597697925691330549304243566251482411933160199213147579092635572937574752838488957794352840909664264477183678149893053448736854221195898805138157876962695819427851986123690453128623656006396131689968538231325611631165373005324141009499930768632142148866775094578714158608251888660824777453249950626065576561681804351306657756417081586894187377006237087744211526995085899470617336136863854637011964931355156996573906230441484827441872876163187645812683503018510687917718627524496834806186721692719003189273834202813646899549572222584190924022654726173527039824851940191832557867052818650903630978230910159504229728034691177306626520127861759820842018449763330522783655609377755202341678977886230456658600882373915067767994444052203690084201850044546830513177552764588509815560532270718931455151408336914894140290908018323500337387449809384453718770852533195829664802899747985696785764227339741034985281819701918054679692182672069225078938958649856823993050084814067428575804801962476436195014430915929045530889401457337018475842844402158236496146919569974729721938421761279896552900746486576622187340601648009715565386753621165218689113659785920501476607538428894505802437519784910913002570124096700191431928096302112264334240899090390480355294707816589631117028661674488745215303886931325056697481351470654200622000716457532904040470418649972018271578482851616050277297870687179095109899218870793636114213803433371724209616857126653208971927941674476243836695873260601434927776439775064528717889518646169047967593035004814650133112899469560082851205900513740912925908953628450624047591815142675423357517109676989780930830865390849045985264266296812630715549956684133933316200242860341225725551926997298854879267113206470209728454476630670787406732304603813890736974440301738180494833312796883361704610809260206986754302717926772482446867095914092786759076358242227778750777627155533853360412412591384066645726657706000144472273073519403515271685071005400292015584341635630380536113287285427393793507396931189484159792524156385716717827648304832451097805093457644115587963532176288651350509624011641179709641485686561456670839514363360227763405109956741148573450846726782346194482017904104049589032404047791793019852225610061781656400807446075739355114053298464902582081667457619922251830358765201908236287795329468154107056885644511591125268547740608100112636206371352515080980089427246111860454146801459247997899754371464864624213905718875198006166768992358494092057721373654756689245537582026181448240185253734333374119976467777343991119768436030580884787533780943414626332638806684600325645492755186345893680601438383413728560199508480254585697992839288940746360536587055592052365939795932786359617894086768107791135934458732199382595533379017116919629120391551611997403425165922845383314956556178845726190458966207504876360061466783691378331790534193238258955541348004171866727937365337663477699325720684157891257115358462586386726898615624880944075693811731922219083442719546483337364762667711032033993669618187389934499025394034792284002905216955624251157695305870183010801620226727235269991160403202244899069864899491025774698106013393820451234589600640655651916459846396678035058468304832918712710835867657896142948849399613863993863745972777008664463771899630269543060497659554230625134246975306922978249420185883631305869172869705097334253728806779813289514575769179638442015546200496428026805636847269688011182019917757822428342396708356237585684566492200673476155935319996329829198018454128411258054770677775363758942724713697112676198608746868511138045908194481305824087268313594609502607730600499778312025278144733533952947512154830026091676618037492063525667307710588381173352680809309888394292054019555883523940947330753447069518997449301590768871939962716121339726915271034073844226826599894648558178901018859764611523910563838189961779994459026991458639168768763191625204614168852125244668773133654156573980477818694519615876647825306308198085162964877011035329540100731295174975112919192869272426654369940630009143129011435795954807195779778051065086992362576474467956471268764255076039538198686499470519837266132961767851193571040311703896752177799157803898316751212486175239002404493524911186502997088874983270422944253747083899730917295026004681441403011507754778811862786695040960504221541883879424261003426216440843543146770291926959159200100484177310388203970102650313781915805317431226682106259531482072456666637848558698253417523376094879195713551541525585728360717668813138137973919632464035373170506310865216891667880925932540580272026950897112807693417657557217444375617371026284484664793751277977307600287712156685209837671432594853150005810740357159953733903876775375817428886336878711518293504663220672892406104964072607015125557347069748934545003725480413836419630786270364903930025999821215990988483427520263887769922143449674197110438303426108335315780990033666049639132837409415136571286338743949736291318453387319429495771653809280319977794963296978351606763408793193865826528503302874677527852208580566677821378412853402397113678873727754793141366584748099795174318060188510263083262390268709588071890421098055986811780124717953535114832492515255825776762044661268059816274838557540027399833787330503050012232551696683369723742733707596605291216545381701467010077258744676548947980477256514078049659020579560235541205559849627148891401696244778526232420925574453332706541686752540114150549105743533399950391375497954353828213966103926870510096697229860005212898012212668369619552237990390306892377414259034744768728337488127978953832415958058796976277866473955782283935513881891945670220049655679417053935319041368660313200745296534254328621047980096205145747247681827066775110939095552321920233608211952780321344029210881287197835725065613799276488903013701240434482461464729765141027946039696385927080815030605040180756372176964928220530485312820444330232241837054835674378754939473691977297796854993735690502859598229828731692896585810915993471495716025728282616378804494224593365243761371619515792444063816281611905582068404114354146679470004271865854382231195975207924215819156235707711763131731438580484772696197068896363556872003799496629796349783458195185222834042630021412182094135315669170978921821975628804552659086796614558298749171147004491066395224843291898376970927685742937136384244430741916566440880585736598981671647163943898713491330576589267609854046196748062876461789856798903701564287199033182855099679242538117440384207485135505092851188335762158367526578513094440535524781689153337190397516335717996606417036503930201399860766492296140117293032756761066402176470962800640722821010223693420613015622149936126801001571698913504009278251186580330744463684968431205131399319047392635184848054668917621981349178335260276232927248964241009128374883816427485097178452060223089588304778130624354466622860589703959402938252949665636197819046522898865119272389568716890888419196348938556756458872021991768914304144058575656227704472708342682206516333714181100567677191083843415458408315588416347182796875046768837782264874140287824332927068759700458909369227026987594436658651624426046981133792871840750220118744378074453046068928777224360551065113461107579793517888284459319817553532727112134804565816703993458085126544528261610190305836982779788290895838927469317676727066144692254612712867037992675273852972225701138419292355902831961482328238128499297737786167696127005050477834030444265351175293364743316846093030728482994381461470503461839601875435041619930487158129976850724197478749729102128754329406408214576388959580508270613185975998338588102227026975760943791378342644512088905644850358998073286397402854763599719999458126939365335357151909055926528535990149944386132650452868162385461218670513130406710257004709516711530768386628592593341714865935216492741409252803670106388442274428844835056854006125862294597703612427920886805938747310098779389348905263257156825496414353219126049845601183123994933506720184255256252426965205892333132736016170223912009481352022024795683741929200559278516730242956771381719825284059912310682596494624410324732521575668145981490292783117363364391131088100797059802189168052786165562176159087097084833497901417190331942151644049008727077059578697959861934087130618965827389024128947999636959017581706001586402506986687427889520072864557880339703595834084490616023841371238419695405254060892362983737849661219080770609223710897384408488819854579343472860454320185301280394899968098471019922110034970379501417591861082886140249766387155767942494777067973677409447964568605649067849776169700253488718806728679485210667983272313713950295005690171235630830245349056209401618115383821982239951076822238909410808425470061595550548203970875640284183874118323819327951819399891244958723384692630672601836434287553114958631165446428380805471076958386319988644057624635312981151268777479682427909092447267776282514552265999291873300136085235467673713459794336088537550263609008825117231172040041771773265156656240432038551012810180074614759564298693068514361419478960944282844955130773696799793003094978927035417434677941182648600122841076750858304935133410317572407182130842998871794490336725706164164735004624935838626974912992593264884043537031896127596752546484351432884236907034882459807908230203886628336082999743516683840192189324436917582282230943213452605146050313356857417742249201593313757885148637252141749925659230988010131916678534628150019427563394898069794668554922022415754482145800593528625933468521673824449892599656861616679178848922139614869707547846545149661088032497500302155753459212846174396185386269230157260401248643575740926430735211336260654963883272429497623184929972816259893770443319955895115702757482019581506564371632424637233766518971935343105584282264022878972682977091407009018891942312547108182221010734605080443859712280234153145533006402803825399645097777290127570539564903010354318294597491383911397208141131684568297841629291031440193368580172881255613859604469119402834117386410390914224347157038799157618696172524594257459501010588907247711545767172613798687712816317968876613573971259670555401745705504495766698649575066742993129180104160441900009167126478347305060146438842325080642619957391618501924910154078135849567066440772518785384791074104777159167167731579714297484964279853615062315262403440229856471261113443649266057952427904471934020383180895669672977054241123103550794306907203767206183828356556931922120259997539635444059587997901943947760553181102539165039013139780358167876095137493958689009496362094487832785379558475071995905570767962988072334983742574880192438519365226402010013583512899836637636295519704837541753740960642228521780312539150232234556479999735943154165640425149146914379810936771626086663262545739426885450567520936526973901910274365883881514221682307463584765664133315052021416979365505488067788415663050998232014364617079240590736322694046698570823017527412123230351420331437990372158534812396884750930254737445149279789497546510159660594156263989333956106437024150563640852552599107521654366081140902997156856773497631097012737085778827907770703910618988634281984496684466476894951057128567486308601164648718633468749352615504606251512997177343676957402388773786634449900998673976024519369365775291703277227419176678523521474533085425360586573540779744593484880823860223235561916119615818256333195947281634317217156843061795977028307932628091915833087588808500713322932683907081148184721729913900207082888095476829651717987450041968670986199863063051745254167434369390037490985144164214941723180163547576302211542631812802277961003419655080148731758789403709053528649455098874996505695096096714528803976885812257595667175433947918984157040387190914944325434172695782807660864032104002812054713393372405383063833712040104540238049393299875733915634207046594389824758175661867958609552692896547454642466067396244019696369713250416044433393834032276616294058993407623379363422909240894455323999465245554355996613129663337458541115845394780478162216235703377503356183499594753668531426748212026506222914262195946160102126841327729970362190912057669283638220110139528606008680257732279905696439514028303567852563872235882132297204684730300161232660081293244306774895936052944388123048291030366680045733015690599920413772929803815897289616746986782546828661126647029505812350177293486597918706731392146367021614204226062194511053673589665861876595985841165029812975853882041174156199573280286698472329877316030143060041723623519464446610854597369140154891693910625121107861695140430762884928824199981363020189376102482571916118269804935166404467578919974082645386126346757745010929272925389014205031631832001620627730946915844968089581943149764008735972963414003356227844624572061741584497297359468971248944024826483985492086549254649967529264446035380381629837568939797382891357419884145173487592299249561634637295762361536960632705804790111403139395435271323049804341855112115273653358235644539512945719882598500024967925643041641120651334080384634609348994764104566951087371938869383926522215083030232961941520939550722872852686366435121524849376372411815156264780783193566803918482704114518081197845762739157367150577177411833564787641472880777305241474494703782431194339330035855782892201521038660338415051337544394037613620860703054268372824940437535702708380076915739793484519101903763775831374609473932492565791778094667635888852392310963444674915480352407941013618317405051417954370514941533384031914232634603002708999178000693253845340381526264807296818843530151849417616626698213745869386284670845568221330833073763456698157718482329004815870946712960527431973769217398674028274674669801394912619387521066937950559534701761884414823400609260435254958682226847278385889204863009024924193067392554897248846905441974331857415095800172741440675031784087876938406751604658963824689109258173517790826629735225747188539287838599726449784689881709120912734957152498507057173644545441839733668415812709654795900756437550219448839136346354253718729212533255120403430054344843913598373213645405281145480239453438480686165983177387395341574045895951478016619192144105684917725944440324713130931581023095589413087492934310016977365719690979687998825861417679669810828876863015090094734947157575438654271221772463644405781576893164990965970590677107187343594055227332676869112125027994877796014980051776735352212022674136413779279442391230158234722623033940294653391382656308895084322155687845875893741668459663347940532226798010904727654901973298398783191695173564020829102150118971270105082811042380685055019993627564378038441857464801319640169901853935379351235267756373622235680974168760372652559888782836988530968859504352346079214533036699771152841741917263371917568969704231423194865563088217343591441566177535546733639211636638133286791330615916943423011102618526587723466536916656175974395611930254722197098558151026172274405126384451292256068526421687674026273723345560236979955487063882341713205229261098985527812104361674586765507874096597709001905201698474996538130939555148645260144075856033142448886104102560465162143694418239497582931365587234312043451614363934368908980952062149502705108759571375657541279736459465501471025897999808977886521041855056235151820631211409884277654635602502090101289502906091284260180483261916168603738999433521689508788840394499205286366190519180732565697447074126176404668332497959581670413300962049028888548131954028603376285540414402725255582479073679455955009140357303243781998736904428707277354506067848771982748077925352053281482820176125643394346469796898307492572268453235450365499727033951910520324285290263752475883272341464693810786615499528774373658636912458183903659122500547546388715692714419155361429767818128521798046978633146954780616682981353308850456126212521192492651895867715585804601369434079802911243584294129956204498912999636124834751225072200477644403316237666442685201776988548862630594372997312597924879372387950577638534413757368011339615835071798300507740847007992612616294574725655001854974891610723070616448010049742157332022789652964003335974368466698403535661272898915678665752801457207292233090528746711326623374988662744294135520940279896525563310881285713696635578388469701509210355681887091694213212508577442702185931915758059223054288483965596404463284892570415597572834987633580198144992788577380353944416101061326783685792738594210418893639490563150553399563919898233851049244303866824899891439145352542816500262552429273145897636537683700497865377549998804939890289318642309166118695789615977761125480657402476630095100565782101797207530237221784082459816241522127508277140480969213211117967302284260305243816941325173866016988240091230905689842269327788705842567734031538078190056856507277846063946285677764451556232634442933828291205805742016116761446143777857237918994164022761216859695100761084830742205142745044041815674374292806839254532082064137502035693434283969540808515785261458788795577523955716958352243689424898134127498262149305777830929145523928507060356656733948081856429943218096233720369369414823786156513403788692363825414146178219263866507823203264337431036609082701360390076205787524420879740438969158204150119337854969169759200058124307594848381239463657027129208262334527620983405510809911188721776365246731715938854063080593807112721827686759150652256890847500556203543157583038105156392802677266388483478811173350111606069113993555197875374651731486305007904693131468341892289290632720619832751987194289569416065462782183903459638224958738832318124314293572562401751568308026894672362376693903499470409688297536172591651342690145342561722981517729110133951967084055833426188370156325919347633560085609896427694748632823845906123369869433695926412290741788253513157299193902529518848668956748217079813783722994375547049647845407521981900855646574612609605660825766076234842211393219807182290900520564903876768468385315186425648898004382693201172721592394644286575129849174912110663176901229913612441103849444921122515766038166912104319380685575078181693770510560691839669453721224075223241652368293118381788104705585147711798548717589911704640208854205846022561748213457309205972454290715889783500321620742783036013492363660530791973720869160055736436492357859291895621942310790855638068044962562038964243749869143288259116845089872549401438046595362694567232819732037086291755115256419756207953745487292007042840346483834616971578809492442033638518435098502274509824400961401933170882912435784499906759218540731524324873635655648744423098098984395258590070104675659816938763437025594789069156289934871289273528573893161817232168462257033833416412712683707074444040154318164847059418319292184386650692230953593846945179116071220865708162247868115087342662541003660159591356292960595127542537047726593914847240286534383730583468013034706884057098705756648480859111846787678848031237778342634321680287283250871613408709998739418877482951014502380008929324984930060188947660890425805416849260585471270672710875547025272985148666932168380599370729242667283011771966935691900773776607740674721602756059742507331739119388874644401664174479867265434559815582180465038106966138538353288493138957394889333825412336564832748564678271210142572448340132950943357328281709411486470416403860956860101479740297125515862827493382397176686946356143109944414640380474102551678168677613271612377321351153612241813996056239883249470410764224987780405014132676127929852992580420880616080082000005031949547302288290583199020803508935900868537429081327371101623480748849842522101276206183557775203506346517950327330914598551552891189647031954240631607742978993992882907645308368634457245146699324161832557068100861309386760351913561408680008984950139735212389706798806688280922060729936483988190216903548124122552664198015518283373731763256225644509197440347220591380811436105656203179014244577791501911162283928598237271376041040344378755229538744648275824976423791378134385384235458194669042187559262454934998798581338571362858689991850121417457496775289341843869975789486113950509163309248995292385996192234279273749761257384501413269769621271302265184746933837794326430241499248274552045357656723240773123935523532946667030359936688478140466069531028233721747472194601671764357587680204525537326052841719782220228927663523763305986900235124002916260644374221958763622409761701850280665629791023241747031534168101890815612196602373777130698000614544364384600986371439088138017466938493497363634011320078436638136360583020242996186368205865436147598811685524958578195986575041853919892823396611950953766352591778859233286954202737449159341293599821636171439596463139539033405841344986979277968125510857498764983604552301749405116419390031501944548447570532826836831808993887360784956369161803355801994201345133394149620698714758274451626188068878388611469650535108390298935351513247135513866699284916395844224978562472029549847409541482924710755423684093083393642581271673906030059989789340271572394920508428129928838503296195470436153718468337063573365935158729947628748467359026673973059608449863990637371460208118587718412952287164378013586347754590719606807818712487902005832310088207055190398501286647984270385814151063934720585481485268736749530631994810758629078060632464060859869064818762567061877738518213768847729806600197277856449237891594496237932959181535658400473270020894576698412120013236086639451863722598396459401765771326678762046904321176800569382070838776566269796854938041401827326202854879618271086307553037559240290286545980405809422107348039782478461226051036492921831476761483309122217089037373000287558297230707347515543374330138476529547044159549647506954371573639577031761830420520978929155591600568124027841380633748577374963221098623330313429893262381497064154161831829302484770359299136494096254985570163553355489357607319893160282509972943594877709203960231954553668384684020301956178070197928215921709483555222592122314916343742788763249560676955694749687639578506799173280048094334537420839431632503285781907424197320858437347071891812354309709112407836508815601834081312197718460421834481298256299907563664361881967342108263581430042919280674437066758583993583448862987733814987634607704485663702943389407181376880186720041753774634658790880231040280924568899618273406970289163479355722084983244510691608398729509891402495574215914902114152157456571908583841514130971443492377232327900859925016408947275117959181038520936121827608380247514805125837046298523987662992093632984860833053558619967542067249231240346741420577745034560164795576913950852126857922345493856305553453682897404273881989185967709015229543775015779324482811839049505488128053191780315748883667160494153372862800290567326462392705687649800161820700570986297283945946751306197046054049479315576288886465691101986322005632595961746846032597255473183686097766044366196029367510386419196072497370526901265459826396061040983730659072424035920305583830736912164834936241376419325156501742939752358524243873521938124915360641893439770456460622915496683170704455967815938788211548468780562654594880690067896760917450914328646652650767231532005040044607138394859291296465412774457112242639240575064221237063499970248424490548035263188240620935342486795595506223898543400104558201521827759866985878281097856588001996862487152781665710153250431312673317104620796583291030392016130087970885221561731652527375136312914722994392233726050438119670203995150065022780300511152699036100223015747796698403396913480051464042693115571825011404000674009938606068851006994387014902899525003035898818761769105681396696575793216941712508145562154470132629457746545925183252403082069507149463111904414969930793287061110650387399788906687589723778468434140329632302128538636457642892852260543643405028148736033589939337083873891573844764949932587200623473931883338929091794626860188334105327436040931511970321728780486398912247184372443992885148832079799748009196471989762537241728957009107857207290945828817302622477717587347801882924440307253477395918319055094797698360066347996443384166795243056084437455062163859724036755775150864773529681767200583983570809326426989357328919901205052122478004131183005022941200878972999818186922041441905837779883742555696882219236771345383466958063634155314124238978613722870864081992058480326653622348930167920240481012054895777445119755982036047054761354236955150939494181778615070505528051644346380883071936475313995639883736385637131690796904976114181444557024855093939354700800829853084105450205277619166060182784964177738427213603876851142979149928633392397139808960232983026116397108642422103321886551903903485642031465707743531723629571664522730713560604253969707029131668020462038361178216649625351403366106219306451694459175813382814169181222431735466736544169735227633796043330784813529090961531504153126991377115850585479620061975860762809544181544010096835326595185860645286225310259255934068305283211929512964856011703376299399649507172062180566732398768715225527309734092591857675403109946866468064150781248727722225603857112509275842494933776252491276362897987370049792360675902557216056645819144506299006271386529525457144281595825833435196967518817092410461384115615038052749250070415701876524828980942876965149686058067697373666607379946375345277882639302374990310634424300650241048379561875570526817899745211141757737656160209589708991576557868632743193473491256320476769369347892552632737216040565295623626290328987481704001238972410510253037552752096008372097266307500886966230450877004056721216897034588123573282489332091983350653585062798310501135818679679131924561488273395237157289884813938233078818917220027834071572765093215374583191718371668718716714394396410371240596479682451813384579422225722375340054238089917220486583920492610013614808267344418105983496049775067380682200119971919452234394088512443077650097052287690217660959296745654258628155723109408129464685363885911490312416306726808065596222806830441440473008525541787258187444235095351132069232515171627017132136514351247594787800912112737773787834150538667631725521116744995798753818024626717546350286221368418654642167728137797729747868914305871741742914588408854823648650049910109672804622492206193131850562373562098500178279621214432155560591010396380267498151353826994202485882793030055617384893055224498042358243133734394403255592149121778154559827601930594577003688756220316486804468895105863010700228634713575242490166652056649359601139704388535483204477477636836041117822688599139872087433018901222062152694201577779916336493130925265870811375867200323614146553740285076513375899149004364438295951644778617720558854469413765029201190584937558582967211439609205953068475585210288303517834242516550372284284746815081207349192854772109157714403626041741524443924543790827940400879032136393700885138281203736027294412055975604163116522901306594360807101937180945426771956613151972410799112388218543668625979799746736088337305842177271533232543629765046792304640571637252777002064431960825242253035152285506587758340850457608984249091417208256951824570413908896704408031254342600610916657501092030315304827016996599611558810883484622683422839626952080232370018525640837383650299524429902931564177811577715376415223741164201773035212378731765386380148857716387954744317003893535236187047366537587812976581932834048455147154572483289323698493893377271567222902627991286032826220782446655210432989612855210954559951235389728215290740041784168116539189282810181699886015544577703141600471061237021352881779359584343040686076019517523809867947886460792255225620263499189695600321688373258953085725619712264509764994785490443126245189140854483153952462159182336253854485311843689848758339649168021362716506866716673292582036139397032039525613710653941057288276306139743288296683445540234203818040349073168153122193057962841462581592053632472374776271371004576102507574473736835803315920698229765595703516172591290827006971954308896263219610950985863685413079914989577676174704549808813387229237000454768415383360307679845331079269790259070258039642649436643212381979830621480360081013084992250711572139696608184012177483481632469057973978960551132793653892189619462087228727395297612396017285882794847390867861474969886531980630491718367324402751651899175039674421175660108604040997832606848999894636118259177939469460349271794842900974475507638300565672045295054176405414289747113637446033229186280849903061666447734081832187403297474987496979859651884115295052039910004471930642414184392048323907847206568674628304986353493499955362985751981679335683641074297354182622087580548367572043027965896720882016841892603720836916170860910820037889557749599729196121682546662617094645757576541588659674050465022664398911004117342906139885123592270943309140707735234590679601147328332740829432291595385479769304407078046501803124345590062332961398307745650939164314426203714351509564820938113862770542684215555881028515096307345470618454621061250934983855524769605150056280922016964666082487181966524051567928256238763087910756680248980766271073595336430023153325792823015001419640256537108797940919807441526268243823127587538152939981290770329728729836063847355313935307226691846420418244056847657608915160184081842426407929586592980324306967663967076943478091622777618494522365581666896628496373024904517461096006574503220302443187106288519302204939611653609292755921590109274488379599520322486671964652384094037784531648707484662843855850311233878619315185608617846294968450813614441041442116706190421398996753976496452305777680403849108766661474003443948643829923322045557594603294794542347505395852679322295530037268446692534337331661730890768076529858805868170950450388991688872626098931597800272695938709742076014162347708588067319630819237959033854134111641757678056830415317517929823519889465854303128384528756342243665148356159721691821724971296313426955886745042812467728708185699843887438031830190641565669942124973309128256153551664041922579719980514817320700169359580049248294461539027212676116972387807670920641450492753380960047795916606757314413755268887191031290618492449428023938869135089023230679566644455245946164318142402156848720237191884396214207879913540066182772708707806889860731230802322030109162558668987242531096511966433298906845773995349353807330035329004685808811616769538887776061931094608140066246355507166415943469553204819572962001915577334265089302742713848711849702567752283445464688640953004164664877130206604678747280557665733188025268873134596797218471648223384326235833941604165282142018934649347678166506498953510174866179647417759012914342095280839346582366648656568920079617559781902178899594445414462386017868572739454744230954613832716702814361687553639670897210826644412898234120603616826352223236869754145763731343456189786104326752658495755894402573803174722889160804014479912592291025197663993515450179180967618642661850437261949497550284997943841874821086656756607621679100998729571310225980808542125950793882417312503825047224891728328902966717016176310602223313008410316570890577791342141716325423091876614031805153909926160618040872969434228070121616589675186050935977868256986295603834738513162864142510629510607323379009082116612543392757325294748998171017311944699961163376123175426861640221727921080125428410854956644504430489205053133577584668115211137572264633110474316475783283323086704959445199143333324972835845821274593758137004082885177051692321634593927079596341207844667085733796489753689461685324885498165464657457363761709758397005092114303518167635381852303224301500509685810337820875600953629536955547107410317271110971067684866446332691295578452487966989150806402463260215384443593818881011697482191423771784498203203379532406100618727732567937019759456852046002779929214842309092671669953635598037693479344063111559605351063824213849521911038310480575274362925824303896618257592657685631978884165726608309178145450834915633369740955900892770628750790676954342655456502262611341460589111332793650989641519075482339344399061206225755688590684686938753589634361509991600924500078212124167542417223387813181936525027575694753178257267063273656551978736763595306518048017745424869105785892721552025441660828126964092902980975727747398286000577996028581517962774388516680943235555907650723722884283749367138417497566137882407860521868296627610801737879909117913102347996086001804666008838649920734537510637712890463177651318324622577432731940415513072257488496115681768529878839085346064786975000901332540329880529598234179065472383129925743019935809526103369843747586318486091893022145812846135720504318055555999849323828655262440182280220378584193104849873167787914748318548874704552565541572336892772055990203928766676472424574337285977379785583607252730517884542634580494668030739912543703856878647951278361290529417584768525989191575301159045029693696843592449864712239053439653123254897480604000524525008816108340755110957816905868534863729373816585234244121136724357858697078856029188870421134321407558145022164765096409412075654871738900808052446281773342382513040029751406409635117828783164434541558504438319608673340887283782368999719253409819698890206481956184392296502842593423827290424287810795352026738928559944766771751993437264789810224170168069681406251847075629632400262818343065504241140413021085573614362087224933105656265871397561269967572933520574358018211113463197107970907823680822867876720129043971451468994620696585982764650052445744363518177165989654036738304536053718355249301187565783065652093457350740387298596518702674832137111286185073102854668584642493005131157587425702750006669605456366578000884597885518916130207218570601249311943852083929803075130533730667418718196324006117175393937207848734352901838498212889220768426516841691711145941145170565939038094425004303306495899526896503840653385256459418740788502534788490382336228614211786644079588649406274236524887413793299509032651443510782861298628504820486372953593113427591854931776953213409752064301559148493397030983154371049848852754266123616765876958367817310662286005792075269714410053187749365164780825391145155770533121659558794189074461931063283244232310051007841285885307206821693236330997741983513580840263356796038410533578357782601315225280479719211846371129620087730056440780208083700878488969706675876982285534680555089469084606510448468336797576531750974842711625933750730534101774085493840477853612678031155479660009200300763075718443117972232533119480582689448892335895381185953851552877088160114213959269347545475844458949118196866531391054833431544319989541463256385247469785049629178938832295344680129823773102694650325369447153722571483435245644542957488273942393564783787332513965299722052533133448897145247993808262301096704914690356603030099678172041577447229019714253322623528049529946287463892850151431418339550145773571721567195485163019327626380660571069593059486246911178560889498056835424105758047789229035679958970895533512706160624132393293338171294511730565112763087622536037186129001941619237755143288158924457533384142255729680325236872971581620715845671334380453437236962961274214479507446592424076740241862848113209085107082676703868449578494492846716652727514466416257627844468356481569186666456966984105558035675262419495795772061478245082943671944752150777848408869995183813612528681708365373316186002691155487536876031503766675997736909099255602905851071638440255441983127286443216309298125060074425353181516823670342792844305080175098776754282639336783988995039904627670081484961066582139611540404040103071061094330592015724035268255818235294467225924073660468129973501014587968053901925312917438720799543470778563834699869048485262904580162260960438883084320870096091713611710248881291697012497993390074637484502837633720285545869458044119607144483814666192414859124004010113640590535662622686841073205835415798591255395352145564468303117723346032469159782773659110270281975515033466320071276586129722181901690377742796378567995628223637079040207981784984165640939647674095842034133004030780799471076615812105043109115305934611681400681043901910824770254161631165889012160588607597252852229653156839481751285007701055925915013796342152669835281767263179776537950867104245061075071635123744932713982322222474051049745877990524421292045066794101457219173660760147776089560233532602319747191104978803529109816941233117632803294100224654071591360357243901390709264508223294223684150345607402685284982446356362629421092700877448175794739414510864858578812583837177677133691051580057803552808070707867141179801450964669998876429187820018313559289166640875603992262430657925225976610758386842627437270633079422383612895609532152602254708831434056979629608349697342010190293671822523798610994484217115699208548921448696641156683644121780272448388349590468714580835026441125516310164545176492780501550593665113453112302686382687694419549439614148780295779242484827819851567519333927861952936316017849499086628088103026182321305709295802922028506740751239257963116896503119213142984380593159759898364820996811779590264420412709927515364883182627196503035690786366901810712488923135242201603469299019735337560661369387373824168929146064637339014667449045700987000342232157790276089140319267715888746512206579015959378583624365448103151298436508285109493537903912485064054207920153001585364561208379866521717231438561455401328376354267612996095961442479434761715301656504243287880234164049407533836649009974692390594790161264824960701648651499764448958687455929473148666723076167163176462636216899310395961682369082678685899910697924867417906784900851805114754493138713484529965267695181767180454463120684798229632566859315358728923234426768589459433701344320286041874428940206110962706046442801608545190967526750654550800921352108441016540091190046285834392212707838337499954145670784723129434639392672469402819667718382697715805551300206486302486072092006131887308838706284856113039263152460606957983251039043317785292847916885003185781127963712537898999172777336488879538884973253844808381352516028651099388368900106242724113494033531734751415839250677597656478259039497960754446203879494467248971451468146243782212389267132856130893099937800549089474364387743316556373801641644679973313019719057901303902269618983562942049858042347650944174852860350559442383073302274911407287166482256992731912628690776342968649246618201998428296486204416119038492694623341167678489946103887253146142779221583715870806444883893593607220209530497204597162389424825163320282299490696112533644282277514622539358970119371389146465398038416831933531081879797878281222900022984788964762243346080260339830867194993524423035224437387603820741967097098517006252511635396354432751406684643943918337312962351252256080671483054605245960135482485902685126430075893363174884904480799681436660897791947891525063836631672452996739889996230381507943184389294097113475371149164485309356675291754531722855980227186045247254218977064342794751203700656075622114853028718025147125331350602298519175965627658486510678715043545287973394775881510425235659685212403123692153731278019165935786333756457461467289274783615144725658967496833532543983574973910352795116187174744823376015715875511708382363355370662597826277247823407033863905349799266852005992274546726430137966232364367552892480280576070677515676405703674200883681890353125172352459006356802151007175703860247782684463683392568857392756751172165031822377495465574004123187639697040428229013693327311552615920568945121625497747509221355249280295677119928520555296807983607468272951225822290215988410009898264212778230560768072995119994700075975717619760815507592936153913893039778209604962928806303682544660104136402235725945227679428241078400481720716223389704870423284974049174193097618351050800306990869757711932095617607894175571839318662562101779151996766557017580816708912777046966505707730298557974157781797866070901496780506499197895479058358531645483808134056826600553215488606883015180324256444291806260434121906364058020772718912124510698327190773747083606031658760119047389999801205585360971478196528493551464132524348448897614638461760766452092171515863858952226724760625261625774745016200432435836617221771058786570716496506528777983101256857367534329687819154933811058813878918735835400386557399129687873861405773193623188998663959222916176873670067318167060640944807424433615940985450693463924693449872229762882785221032642518339224867310589271117480100894331691333932361171850605414797626277157908007003290956261726499123580796643091803144726487786958230130090101342016628765194461444552387614159347232900219514434204231042101035196215854818190802010580231138561042805958205960487965283548204338045586489581718283249605337103106141054000169117042223376559752126471031778985762993498392445967340526794573791230203470384225784939478000466649654275122849434135560469751386873257270676993045446891601691581860249329623303329512918957493950555114672942002109800118247690531508287361814069248250708466650363688322143192316691030323194427615793893081259461516277770032338034049315280177910077683088366989035296537845400077196124380959828621902576555293074015435266844256610375963582821942020290172369486443911740732036347360205511316289612546763642606753235022789285714616392625713712756802271276992076518090993715871941938434659900792590911620386028371092304100416411443665983760063188369423188431947973737435849449142487067644162368482282945271025873759099995862700069142863672905738049391727146572169099524767201520935073706657269247478145601494992550225715892965264929530966464513034196304405727166422704292727732410018040208126344402782294833487494756459512253117687916980733331707075889358767452148548379002796456967169228772424891256723358726089480531422395372643027842410165383582827011307865273117380591514438510815122589463112823455875300492580597410712839204432380153458727609992852488130314205854903593859278599294328510473538198884092656392546237767188040403385518782199506864806995336506273615243543400318974134805419225457327580667508101506027348449638088140872732629807825138498471086726157199398534547728563580988322660967415627546948139711078065013320260415625522629841186949311717241097765095751541767220363943169510442590556788252364363838958532796585292809846624205271993411715571950993856011299538831461785414212295717271073648071908522349813804003595275028846546183247383659688226147520367311875922340957505316102476753406658915181258751123646879815838023515265109487413103193337016056843201878109235507152254776887462312252724202208720330240880937160934199233071978481187230043124412782211726910552424008775207759276833068519822797920020693431757684667807224029294813342539489241954546427129877918499405232732658634158588503141983499816709547003801415124279677509836792754215269883811114829701159392322768472718629077127846575259938576936626083783878229415034088522305062301801782318136683307770543877736864127048945046681297755353962939243810830993572399458762203527999909660914178477739083638472515419040338303938018460771754258984727903976557184123235483106464001656626067199434518011671789800624896004296396137107129246230169960017678871060322022812706712615293482121314039935306902231031165556741184294259209792554149945833540099108199775347402407604285705403297888305319054765370940094030196327331344990063935257835945834106822116268110384801689847298506428305365136218641539842758153908149895205872405009715528874700905547587389997822516989310062752656006456696046815990398360061761917468812467774706103003280023183013044385752150119653227646802381152591614373861326597138661958589628243266558658995570611975868464261040216774557346086776437936490373323191980153546357935998853934983087923003061368263628944842592626179063689042991632878403873540853215101858106122441043546764425969314428276083310365656405629322269576965291960282434306467191689540357194071610481652588363837958081625454552226420366464607989386540332131027667358147243241921970468280134699332102213896791444270341430259505099035794845704151585416375657136561213499391592451729570373788745301047076347450407811096874047841498259655634452710913194329613821637310973221817694969739723257532470105785191012183911376914339953052600575326052907087681234826585132019394176546950853525749919505140897899680312362678294523890799366300839306639955446736409789997422064941581689792226218843216715854146939261797830423393513131515876055302578164654398466704955392155237829949819622428031616492885047100538821938852820732729720917010120203175906877178482295396503006449853051934411718390023172661449714262021371847450267964194817907461384323283323118630529523368231280329470009909353037645033653249344360868812077613021302779939586188751226916127645661358661449109871174029403695099326085832196570236055368576524517250620326620228823577927798809102783081407304325844830393277930412477462530501952549819635902017238694965377070874791410975390307697068993357417060313689204465773571036314742091028047329820933315053651115332854609197974723065862991106230489101854310048064629779903533937950763798228199171539973538157914961609313763067955600606365432822408168044384371784889089203333244772301121368376975149160760298832670234075391198527231381780518484898157760852569492037820431855892527108831734112120387619257089333816234511454929577615850600297825841824499322417812502349686216739189831134962710995440105330315903411139994803336001633473894018720144302896454590205956003161487019318583220702716000756642327932291602225707174080298729578995843010937234101273930813360526365406386081028249720225424826201496420704218443121651598214164796903793895879471324030682045295608000125105104745304521848151239626279174159566625090623763739021367228964920948904428444420215682485289302450633815341967232989852970092235804150695353860483992060207182808257191322953096524623300316091480840578648925960717124653450560785622900411099016375377941668580765150023075399419512276905584710481613048660177625089644324582720849955234151690628636969984534085721114345642533135033593309478654664567065260164348107455055259958263179749755973803483086849935407078692627720854611272522396432490340365941647676571912005348992554125739756623119613719002008566936840676019429310595115100642952776018321941143666917972815580625568111396376243333452501963511295344162533213949534166292991459408905459566237792430316470899206048517224395213728792813187314441059870000873148250433561048728255204538886858980467251949196912943587449812661041102149640691462184669148982335355476037987521266554467633736002238410815073360786598023910291081988315453332331224167131494020613917242345165388136459699961916959164076402703742621725307705956153021391258159492481439430802412076527973871984535060755335400028892831569291470828818084889677962274081959587875159091781902203016875195803402783262990189088662382699366807538531106941333496853370545365523677940445974044341597464899842843507665424865773547062802986607201447205769441676946196542217448336464265920635720244596247482277986283715657753053893233874787131978447257804117120145962276495141144280520119487276983882325708511998608441047846328491408101711585191177662766555455048396179361053260855618426598636563056712433697952845508023975720347140897690946594895004137286752766496766496846715409043190618394938657118117116321299752170791114812975514345460284401590267984373237794369920395876517570534916812932310905345081940480050580564342847150049505111224891672982204732528443680273767905256564510050802340266758057391096111404533591601445907881095601252813893175939299690954161420890641713590813249168185549295186469822682836081093381247126012857705769429352242894098284506551254675154432514143350951821622641020227055212115705651300060160434633487000210364499827395204479526275725953247642888425669302537400989133271142788601357432640315659545711164718282728418757326113858376011576945126467608402800433609134904192430397543141031387012987907755083325070756377551627977049360579287589881804552477758407600259240837374924717483247497836708092804038833416664899815008022118404792339854178942859030517887023330045926963520327008288634255866846292405342354785729395737631360093154418913088080651081450352742831810859766421744615179817687364492716394222645219782324296880143495300060654552564066393387067531368999031334788760247571116649432923861994687463314520032080222148374887776817740208080104815915674618937092435176864740537418686420605380370315937090560361330708970577798197440861086013642803689017206107489949222014118254465869876779986748351627614975636708069630081670426641923382503065066582464937297232310100135767684741730495968930884203345824696812439259780981842540094923181656881506134668385343095869707673972283989886618606300954002193201711856530603131835953089957760616595885606206359549785433281363213818720845098640263033321475246327878192281920888740727512333202285204582961504566326690117572854388541696736373554841733529131111309073431517172766649017274611697181933503792738640506345849917278689187512842638586037177251165448109782977722775102557613046104380523700701286680363153633325784022313724423940114066744788246326152303287984663389469801306851788574504734282455308742160428050606276233003018769460714242079171519852994663023520799616818859940297098500266226780949384120493849541082438146837711478144488868252820239746842882512317985447240916473490823520718055436641801743586363614598927438370798516115089538643548034732218574826126596378342117661460283637907293272845863043013591914907862815423009642858848666551539523610342169163813100211739405903514691675027166224405895323361954599510217012548350664708965310500551703530746195870553203666068879251315875526029321837977128707554149829277364972566349506041168674022010585296526227496824352420617998770169844711605462243760964452556964497236185405520324491161777137936546555626262050351668015128051676411955185269032690228167523025726615607807414830073248485167492003080980638410413884631013590206177577260131255215319232210811534080751765180094430393799797437207553326585531354369714703473007443934867719935162764266297916560960167033218962098813693782821906865628276040684956700247569950957146713006777946393614699777162729285310965424391269526933337122170542638921314925520342304430662623590027730007891206869873444987627728529293534527058019671491412045393050607281962323984909576911697277538936802569453924409341702504210381492193874822879733267871139025123131219190970580720800550625322375435967935091237307646844444485557299822224902560869236618784938687148913551594949236968487676315109451523864738450015590109081364728428710381536204276368179665732815442073315149496392158770464032787752066553983815146271336459331609719696952438684173083635802687598552538339228105837029165044915568897599695896359226700435855955323024337797949691096314122883349200147860330191386443474872596477737987336254771175278647506604101605220909345506650580002508302116248770564964889727533577802088879421692218043203727700511268585392128933426045303914201067567114199852846296960725907612376633638866717072867337365169462871382338179308532842595792210948544010496342761886244073769583857269957056128161962410472718141900426393593264991565269000325387589122844594660162501295493453347971065513152762995103206651343453400498232198690801394462528584183152544465456519450943795223374714195281127978569153211860632161789725809433290569424214234062261841324671648102389802114574921704005570273966173514974660776467276314085599830344646228802455312204392220312525602633728654486930760103639846025643387489140315601740191563365726358677527964902064057230490647669207759322636712456000509146618142543211319049839393475271927427530777899769391876070569788770508324640191402107226775966947018592139313834822232040900849230771695435718745770308117406699213080460699230270663269186465475573376857336326961973699848959604896644083867160042963879037465523166567077031471246857808605655456511171924556528068984951118701826606391172991954950636486320671837179696913117113758874139179999537391070723339373295552880733054097533928058559513840479303171345166799368512660374798911636014943409921464112960364485297965170527939399756075761013813068567638970509528339194381943762896417608923721395587990053439460839536872871949410589230902303353517216216940872054484671527592531094121756902672183203959189996221427537197364763973943730487881268756703432054178109842409322800072569926129498489836128673383217400305722299233716762825153251951241946296595688922946495575191985357056582582330607229325685228224191838245099623424440949067890002699980597131618547858742629009735840685599160402555299725157824415477456105341228219238358467486421516519360951111979766165237330703685151183918821762889787146197218603135332905644535524999508083084236244392491518604183452093411634080217541295589447656726342302307927384970522669979343911136740499976515841910206886701643932467558722472198974478678748023617207306965166677089899844076165286690905760195112781804271628999441126606464297238009303944784967216692565513964277372305818274745833888266357605714906321745591200777498603430409978511713399286342124060913034561242454379169644522044146776806229137344588166778056922690133095836953368476905547053528168829899031187545445881146499870215169725401240210743753231402371742332449194959058770186030554329473885283717424131189745223633710523391935374092322760447207094695483320958269454984594380826358666902672167076169972499229717452619560212763927866400071320364694834241835954359504952740148289973675343446689133941177639755029981340588129691340845335795743442552122067665792774392618417876705918644668810927464838327018659991021614404026034271002186345748081018189624319531962133285883208954878825521754193726170484764837799231834601284544314888077959509087701611181901710802331616116650379870751611509898369274105012840348862677944919807965622663107304202734224405013955106532992624127507423981606843760897634564215863946499615581871576070244836432845820700775369357120627257173065341497217864735669956268417984319145753454649474478174376274640507687593025502265473521525656499817306720627502417306922491345080133103199897532617987692838426452645767467007777817223919033937245038805572732115387065263261460272304819692087244543416217373660260570702396426468718571709622352791955780470148907155175446019095265659748155459392010167725594424935457867619499985405067855336168011196652668528448193689405525670155945568925031768227793532086419641844357875752525829110204019481444294391550792328002223403046435790527886118923955677535484997746382061826668222455634118601468759390083339985298982639631106841290277612061480882799490847603945590025808733187290392318718766080239305854551373934800859936966281338133609932786975454596188491501951295102069573615032003518568443777731002043093233941303061163477282663326701437095106767506144169643809235888052988994306862551798388501290433009789357590858676679227058257516814728628287205528390937100575770529776337338733892613316665730405562230706197359645085110923251195305447283841529321302094946466342205668180024936919626984479316955876122646789355987608494687908119813959718884490468352544937901652332148488841196147687091350332533298331799843662106062811131855995462083951783120938161723949792096490050342061357089836411128482878517052859821863811345962361083919209625507235718904573898809963338395943269777156543588808041158026590808316351390723503735347964468628500994543967048887905942761434355100099604766216693609705047181030193462522923605047251427196850945658863006698237545532706168292132334729522899120984983012470222592539545122617207437827348470679222658600388455266554048878266678649175324838224516164378716908929578181774728045102477605361296868313921961530458371738831319805688200482878092331833720491527057908553769071656527879288135810114682458005658697809796899680173103422321037910775783011938005621842175257066513659686536495107981405855793653318314707458237720979486196919089701680896416709257204348774067455966943703601242741333181444394029925659476921311027014490006669240007094689946663684877119919389994940961435198443720850214332415022134288561530388217508591574881714791489768463757886201243197093834419217485778463520686651958795245705210273532136260857669334810074596537298855024327186029990705490655606555614781783965041788113058025270939137100825541173577359883985536591713056129853399346777346368564263967313215367398823087132336637061871147217742983262614572768747699057641074230994780349348630779709128142709758627918422942928536848198871497219686573933488658048956117156392453027912917214963735855540689606533912961748206180654726941286623853060932614192356167634461789678719699622418243993136252689704434265579805819893351457844762326743713620577078497500524941197888887890901684348811176799133294650594095740013662877931621461156725586891243082689659855745495022264555731811569551213474712798257787816479004272539098069080011076430122917263986340085188096832263238932499279361410280875591736424577962599863932654680328787559846648591787379453436084590285948984556874176191118298367272189414368241427714586411648361125089588074751686967257681170442127730926553600611251307458501191537052217065643057627524503435985153860314457287005400455475688980028216977498048418192239252132780424468465369995178105567731524702321741738456905879433460523824250469175807966254764832362779345400699249754049757250170941801957152579649994737646002349020457570665260311444187404502008236857449360243708555556889712714369155936599728057913238604054223130110035327932909114264736444756842871566404215153851930558833707303047175341827375516810308477329217958112789666912451357790468097023047323708416146702713687282841312778052632500674948197266356979476317493404816921904073662217546795861946676901612792194691726097584662843377717504833767085680029227277849536079462717954842310599931869484717068364989309028573198131377513369837535116031070408689011130478085924997185285807863223551624330853254728884273565646111970631075916427075780972687438064926116245370511841400374468396949038012282162307641733277478091244959962175784181325234661652753668264648653763839894859721892581210550407717222135757330651121529574156142928059130932946360233710089651436778317063167596313132891835809077429066790743515388809535939655638509254327996206688718332322110920219546663841336956063141679819402241487994772176812536053672330379547206479286038277382779820728971371250375257189338360564165114619249887321805774869804381965319086060209381478379850207017126766591096385525250760939049503663987086560411934852981845333470703127741328677411331939439936493140457601980383390287019360762634297201943898398363125879958088905228304623342928567204754624683298700779066029580795660931223046786674634388516150741934145185763958207674483424783411671510572086485221737635352414241773937322687570605559130339970557452721060555262085541910439947590038656515303350593140608276583907902536051015693300058247166171246817126879286177502059181341816753470894602107685820778603757058427721382783449831839680971886373790158732647557899400075567028195715308848651212780498158211241481709677296843352184020368675316888497629967458857929289515695689439864352348138472385731691179077663480963916120728977643387422980031921178051982044459041260328266301979003659549334809657097879107486301461536192868379679836262939388474083647941432029136429544649011707175791648029518871120694231135778668764224216242669221591324346950963968806930922990008734501889585527359425045135355168380714819531124021577265766235722604170261379363647269005431052409889978051782784418385198804085866744246881406819734232606557862320481794891431461184367314736298828394489076987114835215827234724728863255860041247347589030404566684451489019892126775486030281059349715045234214591974245085207340375848100371246198723160953888258850197762990359425380351258842205973070205533520529628501746303630586649386041397228289948534447065301514413469556545163630155980359534349798126247535261355047875352503920291273731290645724564884816894001039464546377334704602018247726805958570522161676250777417505002256963984361226019575955982660352314727547435678013040853436481118029102346640718475513295330852257634290029641983173268443832029471660566028104138464925814163564482477850086970595366550966202326454765704617690138064198017140710141158491700649885069434888595005403538172631149462911485755585564658025805200813628437311930377176877096514834075491132935087647373771827242446463189262908441373349983976118814035440687123303302335976469511092557173993619872613982702448551840556807742049534522369598728656427091692098615105834028319567005323902302827522276680592691316550797745676019467614752199022674108241951275480171486859086344147833806047364422276880817117678430954750149965465834667756315474668161931777814750022217383901179852275903093331011593164201114387520556370310691342224140389142688768610944194823178971188293222617877776000500209445403415514618201757440613508274407431814914474921341431399140361548127866092813309722542716951729958501378814493559334137290931964812872700970560365055896995326350351977478058653704445050253708600168260096783234429835946838296823399581652322005860168270479341589852268457009493253571501329935517191475414357493899803282215933420459318095925351148171732189728595763337249131806234640537462791069376780769446834716935099572007787709640909080626944001942374048998989904221389391033291664159363641199501060882577199735991653805105598727245842534030668392570566715979145019704248886673082856352628116594071110697813744437821900539679984315356287186721382764384765652477983755788244179940372100382312278899627651945064175056052009772034968857871363749981939576489091711492214833112439787942141256679399204963628053007623316688575998963753575004531026864371159351802806292112111108158940856027538270608764913638308892899059270594818299636473181779128911780947129072968364928368150486095970214104047182913410100177631338957587572539052554016292962505050425959311878184678524815244743432306345596461535206417811777320263673738728369012324457100232965122753681603725080416258952210807645057921369092748728219213877835104163014665844435176923265005214961602705782800810233315937490960110869170900521026358886532401749449398113885522169601599672350706384440084463095075887200826001347958684803889718042969992079308712480843690308535880972384723780050003064045838876866818698204920225745189576514779165382432514577307201967339742965994915893095126837866999744308885334464496060012660564638387670979446136710839827621428003017164358852314421649969523210416625285713320468777743516897414907518769441050116444117863170284493091839217330754818155461356870002071330501640526691539827199522948332774058506624957132932785805940915943963057251310361369089251098916284508968969903827199879312156338716877239837833288501764592135212706676564826145537141807176369345111043033033332437888470359794591249239626601742128679772930806416932245543889604855097825341622000864907007413369872146919071916548345019515938138266381314487998963952572691387353003784975953766488328326325829367729737626860705030221696014094536442583982068602819049257278427552002273579269397432465826350373705484388760805334994542910554158940659179487466128492646612066112923821577491549823383653902049711976228810875524927547951770276964368925105056729889087334816589613009889152804392998975593010469657777686682464411753786477504502814698688356283100333684347553763588966609848326316737894464919390698140742216686661894882199012638373382592397717297920558819590320202480997841284183189083741631007902643076197133867320313570799904771929607774406638649057734620929605265475220697489413746047976047205887543177085516003851722504489310791777951514381873661700049469018958686116617663413997679591384073370717165157136561882108767271122473798826177488323053424526894935170647914384358107508985083968949249755701391436305419648691586574730758666960050377541858092465578336373701842803242925365373699350566875988303149785949954125687323013762813978376696565153965726474538436167350269260043926478031134348826169181296719035340341066478696803467628667774918195371732721203943486188506910572234136123291585677266256361220254400448342192525213616320826740653103962669521158840065682707803447785992014281117399136705885437867381029602589907161913373890388788969853898255678551166232834743849255353659652143563104055717925698262731970127553931988447189807278979046872356585479425858742216858071616629142167327527234103608100358853193606590907423596798158273028266040266776110020350414168650775239251385619313617032005519885492806488268772689406353044462754124042878991278111746687223517031065672213507399356615695429550398781223453609625682848715695230775129762512122239697155126685378436003020193420904229647628535774417827763392563186659343111563619424385253421411364747116330967739596345463609367527851886104621985644382572741638817288347301839789699619068995329290387071663041992159086700975653896975892973925662970738223270313807444217578268079706875974627479751385274094629433005762758793073213452972130927778591871880279318510689104260349859886940720557774654820496602433216370366106236142654114444940061584977907999817722523556433847787648354403388191397051436814909060056048373589886487500787099821704023753944171254966003239319621116523944547194485267272517074575694104257805320235655993987728004663133556729587913979910827282556578957857806845823071509547620771319037877102059391849963208854473857821353887811671079252787430210482109325351447108075255661879083746719076507392816613917400787616465103234242512493109587000280472763482533045412184127449807307617782979375712884111197311766538447398917112235630985072314995154693238533173816721590572742333598674292163173628648883829099425206380955491375126304198126247594762812917273536768244416629233176124406718407931994738537790704679038669868690815326849755455469857457160030454368587707009347047204636652386329279957112259499900714614205357892160334762539146420602509324558889838675329664907407028960922724124846227943824934464587853763522725358685448223002607704486728087125128956015912556831770887732616336235122206386731962719191836616165002247555763443347035667626224194996221217289105692998960335444292750628102231872215143719582732395008617933864068534394575792021305965374018495515640208070586421969374873437369164365715318969954410673997485623806748149816511298832600243297405988280718648087128147610322880521843077427469906506461350713766635433316979488248690705172203896211973926928557032822146334538318219968895155560071930834304462050932567677459631602270799742843738456455216654250085064848742114277273526974686832014554045883504188905858742082404949832887609471730542642700930207503843861961981738923799407599156580940282226359043459607966339505840932219935093948796594644137202379256031113963110165938269003222792043341987963823185597788611676199228851030856395232000755577349803755201076195030131581752399357596790517702010586599664311044806198074186679121625897672432151201848877341876931572560936634197869834551080901386595950901556602526028428723705336561794080345440933907121056126785707995248040440452411640771548529489776198564461953542596087193890826534471647634272052220564516350834172230288526333518241924482776338934641261211676776546318571300702269829483158040606450706851891677412262963833117836432089821811064643420497252759297486051806184744874000613556326362982861217336781963443856321738429901236084177171474100086103397154545801198482128980854456425594458637911868954148678024937668443901476063089398206762558189691111513011613913993162289159768598182628359999429395575882417588645809539857858936029431091821246275960268413227027402447829442466258669719661548880690088110273081265324932910657310884418698147995828863587554632060498285304386441001373699545486702315958083334447534996864195886498287950198213268900193215401644788342945976121105147284506560079957605923618423591961532131735076604439974803974589808938536945524592072606283465577830893287779439031336959848195975154549557728684523892017378165774399554311236367111517635126619627999897039702328229508140084405178530818952486446572186906549214321127518353981622457445662692199156129404304712381568002760265777937932100805406825170122349715880791249658755971109959857332085154863571012683833071053689844432727596288144594507811346479636855927213642512681402386365110193995282380669513931840486402752903237771478931673053369891286907974769334176134954417051850733276057046276377545761051445508054115682477081009851672452622071622144895404334043423748087502565102929014971377972232670732590622808785334859572608589042496886870148132995595286333249005775266268619944482927144699878089265055422163188316749574397620624129542936369715830890384187349520157100352066916048109988267768758486836452918026877375865884150089024373007484976475250934831228322206223349026847592181578045904891545891967628877823614339435209100782908802865266322161649972276590980266174923135265566290175484498567357270151223227957062082866740200064558813376397854880823691002762083452359054597873933859810190063899075117808797284549032435072859599019982904274926839737581401410268268962462133552248570364800099310204749184111673344627270861638709110623054162038668108904288022360773117402220387898117558342155815005699151280401480903456156047405099474953769214810130766093978577072869037449476114645652162465414932222223715877464868695341369935340621002927986514018825186105995056079779294576339315306610059959860966470051827841123479492675719459335722952530517956594186665179390520711741429912780919332994630032295064993579640727095756002467220645279125426424886255284776610590173247295113997910378934100905103417766670658799558160839887647294287897490358112606579211955524049983086959760676801745732774647677808130758036739037789609765731087583804437687217508293138829139782261469799413081186695760355014979380264158531590945154363880116570183675179907065046917133875908349995900640695391409287875788414071756609811092223840609352412299067413277703893863900938363996265898075975691574757230113675685425830469808384715588735428510518595443746054257817291041042281090896266438436112737371212692966697487234869425525774147238291527936483878526398742596845713990727029386877233670058465730858294693531747758518946292985392174427983690253580242684894255874438462342568786702378560891653435145914046677518737238186689420890372225112809075262442918727804384581685619295384291206745794109916395415234676302885587140103028509799012823915403723788737686809391999190527198826296693731939318647417362426839017799919688390148501732592273058619680159407621807489856289944677025999509760040831586273974554240183598794207321103306347332235214905015300853017879308335364848329279607855294796727787363919120236481480458688059091779226607782794597672953041703601253487815650761132953247840321447943855132193728707804721695569464727130173313097581239861298515868916172195337959182139281597878027006339151594647288662792361837953649824384073003506008030334860609259431872648392221700783894061586126840781335436816146153902920939872470776572524202990601613533660220445481481753447723239098427186560469522365500060662692899202296971097832675556291985949634674222635059824521807643301402965274528186314316420326775193250569799087374787112905859790375859348172225497174602966259434901783525250995154655592752106745664601937858549552053546406744864471966031571076614783493848041346964255514650041617192925248178660348996515733669411949388066649482962387566415994482735777113775821857116349417423516287056378934282276737099131896072886987567382892209216699683407161347043638852722527056773433678969718088822160237845693300560861811064733735116332221990690705318462825253318642763850492235090441937258229916291539873142754265382624662116752009629781549928467493540918263192350001648205576942545623903084231584513447446232407763275561125310219827513017961127541961575614835426537994637048671539318353358072082413798707033207539468245135480527671808243580736229681542048638685109436798749183340224423093694053219295807449753576167583301222283684194907691163652887823529704817593037467450983784992620747289663769681886649930902351955808979378907686673312715987331052079903237821952859269229684942764559279131153550516323194359581087378674421570430104823841990030741216917877913876256054515010503623400179761114222558073234132192457802266903904709719816052566737308378524606853177114153359356601712843337155371498507816875765523781678117328010756846586513285421017168069496153936346160539844820750249222599536088884468103002421791557950345145353802467476191969071407275739884344870577270974202686743571549055509808619606492898841421725869290233618741113294199956775868146856338467340176426499947397832150687769053787817964586199799054681053213952529448998410275739378870474132880657730651729886402677765015257024725417869406133539598120108411657042954937815924899058564061448052758551736531612670899656805830248530065585555097868583526097281484051321512740868826284503999161330798243691438356634515513118789333586510517910950716333970440738071294130060012940640475070941280786641286313090695760166549901386778117532280427020622226495093267882356645871457612591990181509687044906396776085390983078752390375557526641743742677333207304117603851616842123223809307448589704676500842882853036985730165845555295777421534736203092671946292756093466080384278226627274845604397038645431885666595315014876514783918415604000262197978090880781172511756017211109424915163503493158851949515545922844139537357316774254454755380698173623493414116777312058507397901295652943222521049009062980345941533792093037964507623126925328692191607521568018204106053570889918560221800623362285125689369865858738603775857887294259474268698108809020620452945997493779291786656169551079914195582199229211545021968678885645778843217324233622524420158681299456340891680445504289784379204826459352477621782061384470376050266878919995385125324022813812563519004637615951041512574038429417719089971480761274205574646677153962773893893709515292883916035517893327527131977750917064133377002369336942162507285540119756550695741821104355223535812368207011502823114731843751729723830111895609954418631359534805382559691754171759492664874505367513781405098404558473405662823075957932651930871509420147339674688354294073913466146427168494519135167067249935717896099694161039904660843190941814500152094419324657902139513133476170026233998757571656336699847941812441508036988507147843227373594407697537131103070689609052383520675825622555449222216233992352429655842465842128144698909655710199636671551528221525636448399904563396372261497668965398505802192577036895793883545492064824740681808641534782483793214854089937405453193138244523274347111572136233698152313246321466675023906436995196455778541908935357611929676462816840943337313318040052317657151452389849428908157527495431160875984440157236363932149264493985378966909403741186507807329110792335072821928186890159180672048223159821418013103797425440457804631923355861668146698279609220856427657508346284564697678947175474732190324036613592422422934660425480436848474000842454977234906533475196501482321976083287478532115277778328488090467145404581985957827687599447733979632821154390630394938724793273830940546639575800042203623219762339497249759419445715840358627429502136881004147070734008350230756629677448871109476570245178102784088338420634175733575278436784996357020845697784740970607297713073760435353308528252316967857657408664856235813993711491962593797407310113420755840656111045378036116912941524959720262425909243898263978151983013962438788584901100017468959359919536655371640177513816093172566304342335502194815871914001149093604035264851064859569670533283204895094482547988905711768211204559419277978799731698169315624648765882777799145925133548969955664663177100521296543947183857288118470660681083130003021897399263607478424893922103439087855059032557817663189056935119200048120125950605689115187853890292472548375388494030179039892630127546892187462182968965335167321663898415260876907924862011841151325714627307154591419161255817029999203271654246823922102661909097372134185249902755720348962674720038650124144963474345476037382601248343708167794707777329927793047476357095585624252957446981201246945970071658870636195651393820550009890205539194236174534297547541315761081994613137631463854769096956981478955350753095738723711981931412017169121427275480029663453958702325897693683185099068520648247250900985933613547025030968595799634190823240329901971946346441101001099454629731486280461922142981803995930015550612221180707712766149538540620483373775977663925712639927488085005713341599420475128502033862991282587263709769507315647470778916712317693444861039982141558203398469867935400773146487031909163368376296786357127038011842817250521694310236073253468717945345998571902802167217684161918981570050929253224823123977304290477073211964120259232971536907347058157144018516616728032793842152576395171399751008377117267560599467049336051709101144177656211857747397829133124919750303793743035969610798233811258148463252509729070304164778244742375140832959806304039915886529891775824986310432806310624134138775912435466252246795615929656520092292805256208264368444511689306558325195365715101228442450963246228399883768286537251204294259924397338129585945204160132089200130592151901491447176416995414573566975295384983398962320138877511526796382848943539078997558495873978911470753123707105224453918521600300253673910457619030299223157160055897288807768436806217776321595736831984636470989689556853611948463765703624269692869107748031629735703302417388731589755765869830702957981929438650528218027928255424284748738651914046932304046975929121240568753405376699510557750171500221455912800060453917895094035668381532516744145444999240578033028687626771882985201154010144513523728970122299730010265685895271776033238525792518449489186430110260314697024258205645599653889221804994520445342201526756207462574667058191413644376763728151078067699956782535211192769647869089949490670398139607309082388621962477441612567142013406654275204868725089094466587890088667148725434612944123628638141083012527816774307328694477691186129805379568228053297465463207699018776720956325854511423660454361397260661074359330105558874919722013937984939628096269110607397133203508929041317659742869820251874722515072047517567450459763432566507936159473760333369330185321406194784610500086456938842355501323776775606698588991468100631731244861290274862618869402870309671995525482638520130652916244522683955011034333957295556192986892572460771886060749353574680214161044205228722047882436540889409634675956785481626639203522699873527716864161885323149875257196365987473322773632821641008395828404404180660204469792241698441328634781297920393074253379164934617802611656161638557338074988879521227103059429890083204407881993056346078380698559640715587762083209796346791649845241576230344048025291515741022199488728888361479547921718046702639270990878539831768754367532661095586348683733882440759119248899729003880786615259653828603151145272214738874492246934366916505999749248158667292183867186418933945799500657397893535984867836500058930597314278379018190448344968270787524472797191075910571537100426435537067181863228483700968828485309067575455341056006318774771442937870943559978707775428779326495174934062208387328855906904325385310994885976747883887115746009852625794053213709996301979684942253755355237858106905024686394031244978926004341328650806451552362986377348222851982896628196019499321203454732115055027435599963872158823200212531886867767149563009300067531980854952940196448321773060191059616260365591825705256143516712436034366742985459212853623733172809787753776622190211142814743265444910968990162136306108646337012315972467427548277288286729466322351554640789602711199076713380469131729081642313950770752766073237303368472065445055631835671165871794617650383746250859697195582108472122148188583311542161936951395649138431232033291612443861928060745798197582563144961217672876841818944298882858728555445208419320129741185842023906787369497867384154873974496128765524745658973874391444393517718730470643412872870404380541933962202102997563698631621927380446952973166439885694892812818309419788743516491020718712437536725011806160639246567350476785552718591578187185129058800138386260223216214298844355111460871426400009029838434370875080152866852717092513577189244675661965170446143241137501848906044378446894100295897906331992713215356922190526628402821910905810331632216912115766648932192595516163679323728310304882468321640671825722217471702994146267523574287945514347916572627690743050864075932402896193562334191328925435679806730277011745828620359846817987868075646641894950317157367652311176668878161499047974293317550288701201897304233604317132253777423747082593474872955024816431087420882342111967945791631440952977928485884931320651082886005347314772248604430901418612418068739528282155558950015570818108977657288779441280770227351153006238956593912190367795547866635409983774782075118354072479118894235284015823171994121031839172672587512071008518942891567368174347869646767983176435707800154967641387745241227927483143807761782671605733641310509627335950062520573972459900768934649499529217700120959069279902602013000735920571873265275863852353896455978323435945080137057568435541663037589440346995047875914252201336703454464048763472812333597839047127534854539796091853605228169353264551434423792036769415816450665857551537541961618724712737777910168769792383903468506946056854898307742554434861900359716020278632499471728019161005746441438842011245840314877024373736621432708378359037325833596657854089645312270859233435533277156957577601304381728327718504241221557580546891128517433042412093807904289097563723037014110880185707974853569510990269391665432861575042589726812654364408841452235369093954560393497764965802811872419920246638058887944590044588236848778925296622145358591022447629347311609602162425431321585801745129383878236550522328106987367515958365375783571932071724984124010424297717657867656943067956006384279385876805284650228437780123220908232970654559621002833524498476027812578948034125094561006849073570569692136494666454699235597642262978922934486602878984368142932400001025474852830976476620510818069558742813117323795783328924234993446036019790612394511467573709803557876730480891456234803882401841572648021114532616942056951565619482839879639740429067511308498361356386912648398711174253766149114471051285252752368223320334270185854160671723004257044451609529006954686449477766623874383499081906847247228309300998333016839902918528614103835342056686189599631181114478681389497571111613390207373440279599172931347393523557121655373857025187210363048156354091807543587710423004931263562811646903677621396417364749114018499967353906238011399084874949502160720285193973269185086758257251701768672369207089843741249380998203110645326248906787050826580856382982316686434584741224982867664095399119733368264184913750647405975473227749596102838480736374058035393869513259214459773786575443038857792484925185842324127814272560820874912274351853289852469977391239330338242644038326876825329991604251609550003735028955064740732296385737453119688294853796947925496817173462102141760486893308992968412265054534281284860435745976852021343799623368081406932299947806020662889152780223508128859206740251433271174308535159896296618413599115960942764480029416042879529352037063787630820191999533721967994528654827195998702225880127214883080863869787089719078715948737377437818871352334896717939299101193980708789199159137922449214899822064423158628672486487368831277550013937595748022751047200928653067594799455276631455794844567349439533747564032345963340272243043225591461821111703624658430739028722433417431076539977954008829783243370304231551843572370419181218455799052087054807938967562682481428349075732087636289978677211104889982745525230692031103111162219935085593308199681003544754892113281180719264988913787349894108020418369305977572140711177962256551510058272382387509586706982969903047587651358543044406311074751979185244183635440500904043631828893594151869886924779202620732835718016917414467309560734921859281721975378060359866130884008810381127094208223798598211021757205941233281755974189050901181660663830958992726540210469340852687700289244251461028397023349264059591324967192589876518988550008473284438745401411541383063137346807773837411237793531011523902915279968451507393101262325174945865368671716652415654198233995193827213914559265395696620364353820776915078335599814506067531136050327046386706906912239426772954819802323460829334938101409720539955637547887155808187380749214438877167121459441189094464220607857903901549162979636005285727416080688996495371658945729420246240125563479687066542242513651745107747156409092922076338445262950236007213970905336301601822845230109576361761683294816243630708449442536703245610176311077959215502874654723302031137398740590265174499428801002232466427148443641477857179919490996751131746790447770217774158516734969819645322619237912734437527515469865129922026749076769138060445670524933674499135709685555941977767629569804044532482959472225654852316157298556245530296145614623660383073969290489404472265761925238530934210533105778373702895560828844032950886129525209339910628783892219775640206895318871046023965785122098128583837069859033447707051648754419815816854227925396779490105010216829878348455101295984283254596323222088655696758606792718604539777989216175712159116869197410245192635496307918791772573108687231775548807434976834010884014360330873691490652593109047872526170250028138764133658328978981707890257797277989108983372966345850407268559656877791458285980573750751361910010433003844062287621241657968370691797474963690332938665279146132139807023000923832875944877452042386049081197143824215666615509769331644831899308018703083369859582108101151990683832103999671672448323126133063899267542896351864458548547545530934422521778795381224082383801653760732147374140247095712818687425484541507052387353707205965990223306130425809933161734175803036665623766449364250886275173470682533046715904593416751765040521693729258555202514942972890104045913182263583655958043715008270896044949960095752000704898202707841879210656500355449468402651354448259338087082837826873047732621993930138977952258054438117710511717363673807321620640620887120594889647550874196236246990563008030124115946194748391632533916706055693337544231749594492838782327741821024522163877864583305872931467876563225517991336048606966484537044073924473045027093902252153436381797498592667642306579123646449292987486363882966332168474518807508512305468451174993681071349753296331611815028641555742054840429971455567757166106908528449493168190792846739346305757307325970476461591464771784677293224579319961565088062195005085531451386679073305903954626965058443343334121704803150757188513956087612615815494029584516130425933014705396834742952830680484935808544089076856243032648918148702825246178541529970783058682413074722391266986998137545705727004056509247239383149615852996627011603518592920262561108332200591279818330994228397907784896340430068150989967898530010996626865685717360794327102220357732425439437649504872645259389299158974244571765130353234585161809097000297331092446344209826475710812720441877176926201255116962712986817056261153477188145852757587076967617882915441903666146740705474210756571754029878435212842312529112276821241384195015894049084670855443215863049543058631370676297016806416879742846833192509261728849847476901866109339932861932460445073220010685897985937862804982143978103778443366822854097087001262474201400877406647318889948640824104781474375518719737740094216529179704721525027878706727479384553717459981954027635330647754255537406795575624276799700606472498935726786625957938232472060826760993270504642316497752704037788567365413224068796543787900484825399307203896001180963998215393347595607460909369730137555391414076577017504337519576973859739410466357678053016626261911505982326717573295928196034716054621490591215554520939637566018153746834730092993009498481713106099431475265749823594302915750574754372419440091877945814425046774771103304812437905294984589408273441482482833621954907398066231285485044343716795577707178886228629754766311994983097053271211183227517243994876576203681838621113867972787964331799786975348950738620289197636635247124750359030853825480321696953230182349208266147743276705144998562491516014053250729053679741736387138191215942443732384243111975401817932939505671951457446550295035685200111278861879645302303020559101977835833552897518833870079025148255645106664832243787862465707535259762080960637102838836873730403804756083141757447049139887448056515247442459987229166001449636724447981320688487735192002113024561005357597531859419079936296066077222102221315933361727065958194055095932055574632271343493596637208598140025097191346845020106041968472727866768175843308064163050252299882728828833438444691393199421380123910246486156710731191854615237509708564517131071016256857854667219994707381428523693267592097007742717745949193909728095679696948670203365211345317112391995487189794026708639457503432176066450662965854435469512942536401445716681491093796131745453586571176215132452263295238209005009665583140600851628810320820010419498039274830326824370759880517445921533765438505229226687728869312515693801459785443638709553897313483023214022400000863056345153901297584581850459551916697206638019181304553427267731811118163394641844310660253657892847193806535374259336410318659864856064206642524284864274073033758841810489027985243265791705610226676514466289674974906596468931041738807543466252917023677587158127429950649843129455788342829160839660359335331070595861562100087105251632682387615245219007298385694159613697668366139367305075615239786313759193154319926406473476549541411099126409767713289464242741538475971745292768418093029713060016605441639525980434187089272666439329261916672601579841635470925241968047226740121910952969507941246355195185821176895902482753896590272696996199772358739141738024240158173380571580676317820344235780902771085078016902513626789327224134397467624657719805821120871548436781438823841383734556449331771163026254581504423407317107962460843180609453855942780841098180083570613109815609910115739723459056385923861852680951735547799130837933633875269898854488372146651414761350791836287410943113824655556314077449181921230210335520811254178551021213223450095385994973702448865915167680798914503791123091140053915564824937730497422199154179991554857567130723217841251231695944481077046167331214212726871633393262620319390116424583773725671420630329943146266925428944899436063972289072978327089931505627128567668600799317588159623605254818570764791914440994176235785004523420533415527082536270552609017877345191455736366488684263125618104431249787695291843396814754187280174233520214125967246219159763727058002892908547554233441339057614884446825650113640618119757477813676609033652272326989603654563018201644937974874058390907012076016820518154993969380740825292645316125164846107759094815547577129100638212089481868292044080539580475051554804472687707830563895367531163220112474338119966956408036971612255353146907168087520954302514530533723569076050306303170838749589954012145208573057081771865004735839342804335836206795144173016730168736109666233461310408664759676169365988689321249239535461777658938178391203249840952322902669752351912305378121568708614086975669417002178493743787425574579964102427342182082646803614028505616979626377763451765854762901013550519093394069331509438705814548295932761004866258612889031271484722401455296967225089543185757412444210937992836743311602507943830579460322587880733304137969324166179026878717951965327936557115598006957084520522875527953226424792738801193690136435065484696238452249297505371137223291632705136645568128835708485760693501677840688256752105386765265828186919114741817795056494332356425973631062178288343133677444339065539958258271707027428992656979891713239314755412599852476453001665984473583997609600355762432022081071150118208585495411345564090281048834695793459095903625921851679579978733297459495834504543904821369924668185924185383965518172087523459867338438509842419384007068121331611982692919154682798000832426375631327020711528248493002275970001273309543219652268309150124690639875673966229101932248039674246630332951536377574969665190302960928298030881704931131798966196540303451261189770927412427038969220297296883153605205507605580982310044845754178122939324505957196835191240542744056766271074230495336019039430123787125400418570368443614582589542027622834234059207429956209485398313900377932870562596278414741599321132028600491102707529481415291003104374070865204246563034858128961577209378156906254588526113810500337592877544402208883364200079540373018770808713214673211237332051132413398888546571355154009999696015631632694940777896406134606185013916740482869226597648229343324032781041844557664810599770247331914828200815319813821358883860727671397906076079154125873971352943212374733262518422788715776605292892925126186526424089555552547173158865451150427824479891426503893824543921816046983283034839305198318774967552594526571422461169896447905623232812745351988132242394258653162458772363296369847473086338237291485813215421193240280350277096167169168432528839140085248370280653082634098301887301034056539209244019331774555794220885824726768079874725816578543933072431915768027134814481391843498672676228892108755005656549593141613603722232084055874393080614204889219009591079285611523143035208833118826478279004589899131933413982667887529850082564532517599249015912168215325029802735441459558399779206505695652074679667241661184121296108646122351361942334772417227699097910875906185281386102240951211724560273013879212001969929283168678541353191506752273190997073128344455433097838212492619120507913089150337647069846933800044551811776689945500808847822043780628653582855313465318627328599469591894213532095649580647350070857840892699955594279311989718715808936990319478971200540545740371503435926702265211544101937199942014995903370430948257446603432856049768546720599130020202956018006210612018386163326019514003319775330900172586599820817586923941089595251662111532221108332648302543843785626550827319697179471794047312630294059773174248178175827615755307772075294310876134817292241680542750108971280167181588632842296856947377264000846287008701771714269553069181553988665130347769262290865631758017050391745140256093442741937439080173482449031468499892276541165994692362961549522186369290061521488281664632839730431263845475072964262965856900523363468465127803243140811613540366350997630049325326296988025114764094021506728095284347597549171207752469861624910025543680441728249192002698589319565506643721138718850638797826215482845599435703590266528915349511764256627879690090452602384968797876787360475701334421978436511535321782781362282390881256455405401851354951823600709892631837530560430979028058399535172132550880772375754621251703981675388721495062377023953363314128098870833719583802475689968597367529723053364984420180841807606487084279660127750407547574816220071824145889052612566675212356314393824656878339431496211760619753304549545318635802498144474478303669602908154446568763367336028929314276873306162550319647742387120399487674787932066892966043512015435586642472381658429343492534813927620212303442691791100900898533073661546733679686169366862347585256052915646795682205242866565641936509396865652466208086207750538781898895556168821637512164932092555714067445593809775700623818598272223356522405781811738568257309460706520999398395278295990756746677874657031068103308981030328138870626997293543805963300429851504860300829538849916770985548862973515616828205792005205150293900183325056572054774081131267844232506089080268161616055886860372002095845775730374136981225223687976554292621179487929424754981871627162745088731618276327597014461167253179317212372989716099413479822627682659373063907254968544961100698913129555996045299805002109178476215909710415556094649676036777687396023603690413911466914916772038440658716485683362037168859034444791389015064267103650228830751581912193954171388625692062383715092544115768218920209788917096030014449510470740372663774978798485492613077898408360010563738417589381897814322466702520103370043440572672997058728847651408648232568147040210008469677384501829443433631653625800073022347342785598133825263235662083310662239731846040601009898667611509392932908697177375759595793535274810882731522127904374343568432714916507282831987915002762377653296104044627762330011450698777151764916293190481383730798265316252316928525577076015621982364677465697278894935472874263407495299631834293138534569163257544144990502050537171447135754828306630575248325017501368494299204423159921536761742623103927328625065574346788421729807533442473521729619312589202838838014049570958769046235513642420932445343466964962976317643063229861786180519007786046266751028194159261210399550905091106504785124957769840818307598128345784264410891722554640507283610277456139904199932677360369398761960266171327715489884747975972408188547871006976588514366486771186108131536131410720658800059267663117963294744621746164092043091438709930633992254316339769782601811045841763260199851747216920285772266760757554481304152661491963713204978392478937221723650067619292432883870364568038693362556063009726073168272718109676166709365185024074964887720594794394144899335148738038636604901872105801903375943390175431951378901557162382422464904164163864516572425013509853901356342076735666012168159306997600421716290263956782770997048304225481219396480605883189725603336856995201951013869974691318689567324213059693518517993100609076330439769164976298743580264758251835919782418027500892818946905681261349043751898583131199712050052471373660301374754390566738070281585534560651631020802006075609619070990056100658735855506640385695438503785030464911742305204733503610374462279846779753097135800855174862372253371430665894103543281311083732700854597706667085019590390132703111225358810538097622435423641256224800464623594469231136506023378090223649267348514287910848885251591183319720272700229972248456913619507166299854140338579439713308519608542215004912698104361916158087774672181950624908974149206932372561993237931131083803291265938518581555558821549282890208364426174712693052517370971536578339049333368195654738290594564390427095034747904564238494660563968500957398889957735037577501608268443864970664763846754369268384985274058792738632245476743966577499558143663147141717866364582258261305906966758071434329056148338927638485391664400448049209826460828887647915697477310127945793481893450522060827059489714863101668329018379490870760528352731579591980933010979498805970355841450292402732126510618472864611217961548352745558169746311625617644709425799582829281586261984286445614949716662380660381926791672884658163889325459446137434251206915691973508712312050501554144773734220665250799199928875290277169456465256809972152550746835027109979092162157865540845094036160600299507254782442754899787919042079755937348583839880104971524287777858396411491243707363561010815952804569762747131242873897824668776221245326850692631837261769544478630370846737883446372569368658043421991589883955148814819927540041161970015983435550738988075321581769545373036382120468372669557806851925430259743250414863788132382432555894714884418111860863290383431788359004246343988426657604065413588386066283428407348223459527610083600241836358136865914878973455950725723842474010924561453076992024137890890957604650602757630923356442746410316260667882617530582002198431145365644209058434015098369425220522932143655096739342136617286158020341139198150999342028413514853581859403814396462583611830578942496016958902268886533901640667668248528352342111523366690817364958554593393876608761919627752195397662788828417061050469090189622833046772475945576487445047198419491154496098389737300445311200221622454023857333448792375971832198444605136772460959753403249055874988179228218740122504943595635508351680238939388904358486340029422020832378774030179575066961478402649064758905663752997980416990851586635186932444490828559875212696534553749385999472196603060319707887288584254211734520579944618361853074704814266035293488950191785668824331851544010350260297918729748853424649080014347887299125256679801571549804299124935520040909906665884391089525484154067341464228433906927288519323602374501772891962149968124316885125006149360836905847668377802021935342738664720199223278627752674924742793915113737216538364530921716425307680712253544793489815594226939371061299317720536202347543897097954726950600601509465459065026324337424020315770456144700650527376769350851277304324362345439222283943124405897943560592942071149077269737918652666601683729419338739730930470938082378864284731023744309193171377989955252497464361313681959646774251847212853055012405700092669592560220608226461344388899099636639697318459401863950119025150233452085786698955208294921403117963500230472413405739669119382249580823906585331030678751587022505594519619752580136634254837296841337236121305523373823237732761692475822312044676010067089158247632736374800273786923575277354725288235408292947996397146608012990801211307918112156181251179699050506954692052220803290749717469574429672800806283849254160845190256976561460876533238014612358559335368971522229400588184408268678218435248568142101035045688494750527043805930496419167020835496093310634307613529320200444496921922067419060960050940005566135188625195302051441284678720174047892399429026618120841934884263560785061884652101005859325624958873361163045161204753776218666072367051459478959744734943132778408322781903652296099134368139882668756489765946008197384052135467539619490608209426573209517874327667432196313438928091724333600655760687584099931871218310996324194691772493191155629665011190629856973354511057027808166004051794565394936978678356654330032886604564784581532409441035520111297411883927597008775530597102181417621614631369461904190562238110423723010052470272885202268913137766469890567188963117968368905159922449392206529876580401443021767211566340720159046812102266005207722425052550972733276700933456598987272771123358775701184384707402909587405352175020234229566218990826251496966199553235847504848331749995193824212929035147428531679741802633032080488422729917568909982427382557532074460839464101196248785068461535790907094060924376462711928268922536449663327554388353645234566573956966747422614365471181457033091888173052920436825003631582537919632752288494261538160619792869893378227577571114998569905626884792935326666795612991058805382240097547173513197878885185910234543549225610547381708891817434378758891696377774891447169011327899091630449664056469943049101886380468535170493116363982086184799760888342182760830818062072382889646328312619849619940118812642652403028000963818734840081406020761849977423087717578241637885861638293895335452394525455064528430099510533130907572305499413794972276931132749276152665644760205864071816863226245470971122264117193398768969281292010905091550328642347080815626452553041410168777122808389790066376609124551752629462078616178396015883700181677132698097873261274477656510443425478833312706438041192450640646257437291300849654348916327088453092767358609790569541021863383365661182625418342876040870624186554061110778023128557406080140830349717037186743034952339560272508226492598666798289179998531706715393019782870005920345016304617618796327476839863313167215929929117840450805086219548851926260148675277464554508452844769906976088131312269271544463679504928940228104212917196862008912221244995247431144114178438327489236378162009618886877376000180537863380926571131882384422784822196195823292261726414898145327707695448260729774541367406258202367592395053691026009849040012762658928466642851921994867015684347092244533563295616748276508205532392166579349871702654566316436891736279774188321920768850461452669367971448524769551602850277253806763879520297588291928927670070524188465899929000064950954370273470552971215052620178763581195225356014513654077405473297098150660099003519630337141646679349667078113469238610760152105949846884242437352569285333987050169211441545788766608832132102182040557732541624638684449017431845866528379437119465767112759352742743355766783902165883252884723415189728646046066287685764058450906466025968500181989811403030790686342067954492845358751275605659960811487490076926442559801911772143048069866742874142689541846387027526145670664382789696154958312313244366506108567332420873644247863664109508763646572581402879110364496313685087409943286326766723029198221999331817682060861211045846844861256539675351493176715691143712759858116784501033860330634179851534038294973326015298430845787440300688899945573755902785852405975575796373946910741171681736390300515717371033590295476074408767898681294744544841825910359319302433369422470965447163606123539823566388852532062072060224177846693449500845783855385698689427616022525779117445279025963849536292629393583328299396372924767227123894388522237633981983955256234585847079817908327928246598499541780224052071862252184735040884927193463192638398078135130039428496251445728681077105919179215096496519670589553086316125550911189416299889216976809227096243490657456666968057992432925660485441264798360555383192083014064133325175258532177294446915286260799231728788700209255829236554164932806258292202970350815530275246700079037593943583820266437319499373826359894474308297408177873147690024702512656700672230792420494000751869153423953762533845496812064757611328399832458809620188271186031806477497149876905054769525658456881173206081561500127353176486342146653373298290759546075127018424659932781637264111744663818618916890663897934198369058331861448779524237885518451866165247172602375700130434292702897622507065457206101007275669800625381690910420939315781148229769197217515510319909000387069424262059164030712529557497683868247956784473009842108016993151927667851983486594064033534187669401806435855421263681923957765682503128890153357639336512832137144989695731286732732295944167941153724526670430894374050154210578004066940417910255463597016563074420856565857705586667376992459091880008094410552923477530289823947633538895812921238026188169424289857531210495593574591497630512118657176521019033018543527966134809503563792266211763784204510486521697789812765022915796941283446344868343929205945488596244995683065295277067403761644882004963872570980701681791590228699861075458791759215889710029585163999289661410279880161254551482444723271555014137264056963303232147512806249298726656793353284469185657395257990167672925820845760891936776080364742166476212818235394593153589550309089113836396968759273032266114896522647677942788645774032524253850642403793489061168078640920684764016082501975885321670460619253835965232526130603815765504529906660125644138116680953676583990276650127557790012179552461742592210632661664032661380176902378394471665815655807855063013744690270631979274970066601135871941717398157990829143948503364448715289115491774830446773605366745658906615736457495499853882544612302933483490790080848737484074516324363110903594322646431960145818737238603936558795641064913039293156010768541014218164865449039183980753155593686481508590159898846610203442824005101711609067079962292327817398808416962536641528073748414146053613343209606180262815543657076678864135056006327888517120981479472316530040776132431830155379252655724151021542711612287400346975508555622147025225522356518320327043320433650662474437603303397805348265019635725629852406760886109291173213835206627229532675454650477205950427825831109685128514923254690564428710639703347850358825584270384565654802093500249450012732572410828821766016241183539393338604061141702924033278157615656481730906333840055556756804345674775359450961848443916388156651008133865609750999390043853227489768690817322785980465756092575382383738487064192708944881369347611730128467757663761598411010765768551825134004521666769707536239830075678920263737253363222353206804540246390747835690745006594745091978501451409267413512291449249041566561634900541906432388572160022130874683848275197298176713429354814129828719934070538735780247213807071739955407293830478608632641197288065203612759357772149541253626535190580867424363349270702447290875420170006047089303989956814090282050841194817272765156595198084789888864276671730978884382694502502577509609407263486243211574814515363600474556147973278388489665512886466352929438796623664140352848537785672236974445939105940145885229187818428230534575928823257545117790090091901399653876381346681245459356138736982581056090382101348820425309938828231347491049833119134786916471159264729965277626288767923639718463786718955957252668013235085216604302595369690596533889169419169307394579709337914563985148711528115485972305655542734848206165805806285102693923349263751562343227403695608646132983679791364140775852098594205486070730519526136518510766714703165793521088430304077210904551881406308929013674263499649588946025538473416591200026632912047668132343048513396602924940280865065171941689881575194541791243967483775125755529848699772771829989415831871577937015510099462695961433558887123345310470171961422972988962085089156383320414930984322624547176462192327174537551534093705993696914094866679659617404816624077162495161767873431354634065770025839609222750965203813916634012043815798411590126740496393144402423827268862656971660110118032581288203020091581354926887944138175468748913732508797634730421942787672927066680931030875363207296868202214637095849830868244427789594504485790921584778142413345988291765208231168035294476501555646014005925665880180049176545638948872692772083538540671095986089832278412073886014667586101735472192312701822358989759509633934906081120203005850166269349406640395589988386917011452388856113229475542783759145320916599684521225097244472567763348078889771625196077705873052533780032873354505168818704584911150433269264346012333801476481908971179447957504836678960146056823184644565564273670224990042195230378193215068403122436781869625345693361784731787056896426947348419168799597301192758829804966589165569116267783176351734986705345885321271154685748119493503979353905883833998331359085536931966695869710188829046443925476448042262878206386461305112147642792897553111232982485139912587755806663800033451872571273977433909965606547068127645775013492689139286196640444481741728618378815689710276111852048349081125047206200926788075864537806992928890334187412844262444353612086233097078520466340208533558553549599907672744182451815379191673007367221311080531551054083619782884344153892279410020351975091481090023479372331818889788336355901308106601476115278950661109010534152505202427303209359616847018524884318981108902972338351000127152991840716035265506647373605774144177631253771145886850491022080904856489995682036851769291681336684303335146135972144896936590751186216285790084897376283593833542791946719578138414603537431443999332352850088763225011824695967962368342499657409680433565055846620005488952170459554833705758964396891526759544659065148116210666413696057151678114296864085763309824483281208060514958102359331337235324234432167638403621866087007107830821643783195511493852952246126884227337213986509817590874708490560392820374125667085229709599961007908080252243441105972543170788664127164796828618800765141846522416490478754717124739656478060292899552151138325038644745924935549406734314757301587666164122080144597434546863471436878583801448993667436384319440624984260005480647816866819769420893061525117501955470454113331946997603260529200596042944394887786869435140842832097974882644321959254480527146481217221826724161339731309284584149284183739654057165691908661553423210695210225549600092235097032631117985044072037390897936832596935334516359511473767527112051622535875244993305627750613975871237032111086403844725167370149004258446893302199907104914663070642570265594725138577952828094761313251615731235897139395151337486437833570194173632761592226646039121033767169952732657570037797979469901982374694617311689175054211559498760917075937565164283878268084964487670649162497312959372775434119352620412624895741221006627841331616500861612836499811434452555429699367941472514741834708334252167221300242124966207993765045952844197946384482581843696746313895170722978404731152222325766196330135203760185009457533860140116270323919643316809597002396950395521863089704396827755499855253927008492649750893850768669539677823843678363494211084985817054650697132354128067546582924835443841197487115403794953993481958332787055632413091378681957314601529089839710785683088058848272538817732412048907643090382698746089269006755127672419937688387871801406533465103294638433003470968833989979412122112021475576481211403921159838558665753842751759030878081731591332312941844034550224131638736698483628537975613895681116368357224206537894410659738022481474298524728033383049926917177981381726377671567774793233477353755283643317474239487960726444608172136117754887806846568462569597815636978600989677112115757225968182418420958105900171048024101197653953094014110008976175897661460988530676056869021593432285597324158138247315845428508512170419074589867870079665657133143556554775416647377264225559618463801257213685604142595617312939211515480250678087938465091195769837812792332713147037582205261784660674074512709665743550838082485299750217808894251335245154910720010447006685869269472063834130102625561783111098484930159022746402701732867561816138044773957966055420848291499418161515999206367245743196417418488237132804677682397548830346971143267889855934541697464250298517446764173580457835945755389251705598638776116773066824824760417937555280215663434185510658816785329178494261894482189685533054643660198774699370406406336861595156834941720624860315645755017539839833094280850146330111761821926254288565939503551562371287553722383026993913096099057471706662514045567732685789576033641112627931999967492283863304668694591846533947079965773756385569425802489759457816030598275314901622990198839012215788337334389960655980416355238476916633975388416255131302194780062109354521179496089979540932818717494946202728354287846590444726703102310573036643757841072071215249578521674956921635483104250807923230708340812951231381136557068954524349512569374527225091951809929514996788443763550667716252893823055566819816578427158369257740202190362163257625646357935497137078755407554701419611939009572951531748095433495764429707613181518554149726144399858388990586984895668736349080163295569144784786154634539961944290027247199059967997270269817986583705811674773494226483361933541939373065941848633279182965603755626617488584135294293443923234861268650493260956351478847129938651463397017758277492404020576919373149324162142548723574410682512040024189727912640578980586895935406677982864820114237747277848443118000734117082990661536896078589781449311027067993550591075005901628476979054234055832488428087846702073716825234992207527610798918415438426070363595872424207850173000342546769468685001246590370406322540045718997769939435627996653088583241809634154614952728321407420828495328202773203592956979275737067111461535139658570790669207306291356860427926887715772490459933162205467376755465146613354312996658036194270336813890953829429590132800139025403212997269899048766241377974137685875104477695247357399624182938929073644416120377022101063993739083584361726962207283595310180930437161374349573847383386282877682614623034186856393143722495600665308210028206006184783614670148351345259184608601497804427547519304219003122338937335229951138524157938267413670189547484791562898221536174720853383937498758141268734671566269632757006444208677928320804472899225289024626140697708069713327393773860052121525289747848427758936770014748928598602511516476591796266216810851624273315653228937338446458156739279600747837742592273651223836177602897011565424181839946584118726447289774322929928123619549312455649991788258693141515409891295403759759978289969790071430996464294211824464843354155537279144877132219791067511207856467629411057300176051434905597022006748047474223690210372493755746153388757211608086003084161112290003819599914351385603193195376071219768369023744243767334382969743923824508596651293669282065381523962360319503376008166457025235475238287660760803432475626226656105301120014748507010143618020749554279273116699107847931887677298328693552258380427861059321855507029660515813065152697910886535066870241057696115932855554876613793648501277226341226001416339996093425642263114017795119159481288065103768336237757302307821683085638795993977736755640778627006941264785968353640911324905396876550894864193954361544604541443931911346633481153294387216461829372449198962110045985289893986340072870953739126980359050234121693825625110545263211768294574860293905737386668420627644409229287320279423143609665564320245474168680690368821097847128592422059328333996146161920554425152597787277935697154596974966411578322801672535985156194020491291814715977467137478558338508221814154036111030570972001652029218099710205566238467649671411404961751065242580005742030322637778812658243323481735701501919284112835640965656331243468292052683267299231128715976313854681754889834867655965907687241264794453564441650005531461929601135752508430258811372391706818405826665288663879361782348960336992876466512659717446858859353110399980973764983815606735031336947743158825829576620837263488189781145728593811963506494415235821781273667478958430502794015272106781510576457431676595139522975258786355009218178292225600064344748860075973000416200345102708674728125143172602958285580486915475422718921070475451242053585628261399203313363401494967435053979966556458067057483912772969775384298850912443253302605756928760656056394097380972006540922947978523213078721223097701165685277316066536618918332075903065736705693906902519592209417794339819514815040322579495777372257815861962222363767180300145867272129993393457680636469657741553319982921445557318091672738186606791535512973397015765969387509695883772471957763596868025865874285664206282803789352584094164723209813071342390019194324815014665509358483391909919898312024840444645486730925376606440152068118320462889596175547639281071749331908831496493693621584947143486210771612704496601910282406157967486303986666284354360888498085256676718541483639856314490854027831454396038476615797441951082780238456901979633097004447058017098493598744757398580345511429897004433198470885672496037862081614931164488197771129355811310874806711375579591157851088143762439843130457200624272773615791529211460688316792427565291761560207171693991471941591994507601503801851877157808827394634694878434524338352829673922932621183001808686141415109132971808322469092619102722872641349593471359212920247392681207150796443813102737609879234298900138081585810219984594910979567758389217151846734463307184570769709613969823604104002826992686722340902323970324825405670503278065750134738773840549526858558463582710610294248387352248859967259229976730945456146724830712573684909378334956667673538623150830302478759943879397488160145891551883227076232252425650673255409027632775315949386987774539474212767755155561325957578791613073212130213215479606979704177925505198289439816340342672366961829377555372424641817640647490942125219409895681233417521082469831088259203358071577215866632016622436413441343845114781630750725338775508221283679178891826357465969214975716437631637947740542953792969040548322880343668409217442823832908863273511606387176268004445392830362242932591669476072201387756013236368192503057070410941263114278076581124035657075693501057372499842356209640915849554590769036434521520672272457253430420282718345329808200316646280516287877387571317280318645836212955585254705371905992611133106403106519105193799314347157672906766553093985061114124910958173388949592118637643133015641169074844195574849480049476295578348355540347182606068159841239782859786636446566891784216151460544187001339761500332660895439454893818782679531785416119160135564331678595264476554011297249586492292025230200762720154085287779351234742684731006089018756339360723330922496257463264836130118427329961283234168105372909843883698001313762020512894739741525822416455449061293642333422182592425215298585768930807704916792513666702416733681581028806268219086244569817850041101938218256695315510260843429231277440044980872954855473245534668026440976475408702516947235895712924338384842440010521351096609949963847735760387247556017274983235280267758520924389755957502004018699173349357303755891161431326435324984602235551249185811448165597752793847706115423172374204925055320326725791223611775952401487251671264429937777046642339197750602402569713893571897952273794852869993337797250365950611004970153281581827921804943696687126147023934489634141273959156688263743911268142082013970186682353880288205395438504886395117904837270962113058332475531417302163009017127902318022081740422149581012643457262484125077781915836695530793198083086466272506957623544136639111747502878299632093533658966331028705654538787077540829806054661779639321008683013604169721565259796260771588250952640775285647109950037837610950199679797266499144769383062485066408189716136393055277300317833652368651015766920113481064949482606008524849343969285035785778863486076760048138454445917124090134078759544940133133824828258783519976444450412373497153180181181759409035929480683255770463902884299211857030147649707317879067886931700215180762137196478678651802179005930941151330255972169748101745433385490982353253906480252575983630417827484356609666217936628804809048741542863014949896491873976675373712542282521979526891691427229412944569241201729267294712272686732892388946061508364202170445813072463435868681964252331486017077060773192977506862394323362874500416150538067991970343511020996056557233688566069117526605577127034709388526700107492452226715885336231246497082299386489949542371398167555191891842456253443593016482586484220043804544543636897046986874064367184505081129775875348159312800760382346566525918537596564524026931782816920623959600846470401476577420969504649615574663303987877313141507729299385947028989634153189515533367466298474605830096791724271063732363020577755691169476193410443204993904823741612768502440266064277210880289657386342560710428131424650831832870657033326766909821411439677548156208463776920871754425659449051893013021732175701765098881654478771410782922209260497469491997288182452847186408516417402807500496074873430617482139849636337556330218524286053327776464379153252992152755831047559017547414817761937911788738933425838415073941482742949013490235493482265446807995342316674078845689938844815769539551281920730735804755844068142273601453864822605485049997311664902966791025247831879236173132725758153298439256014027463596167181504528559635275047090005805047486662468792048252404534048432615055900572656973676253020755171653754668454985739319504630405024452978917968014733961149311742955984452429625699739011947495872112151096428433470224195935011163001014184613438583238361934095978160035058427740097705621065112263330595659317475876755288243088184244452481799930650531115194168729339701414029937197817043357132062328496767383007609561071644926179009037844273172466865678846620942088156149607581731456737979581404635747785482011029243406877314602097356045457389827658454431459394567829162935391800936628239484777240884614563524924842422392968745834587349957531060616973343977922989621583342326673698735330340279697610768857768338229895678412153504467754217300937838406580971177803583587432066981802023807568167850102387738346964807138462682845930297902407201564959230313851932803826913131741748929299917364545604088716825296549865051773857229398167370259860784798116534191386108459799857761120793173347956569535611723186146826106583119263589154992982784174619264455566869909081701982563654439913938021133277282280652126472919798777650395439668415517580152349964226185206755316805384762805811496218767446230913046220011926175273261587915260318488410021004120843537383864774942717133222281060803391231679381951372843905815409207727979049237719660703691199126532012030423745333638430125386909415921593272714706449440231519641011873399159636669983742407515429694736513420992720508849274760847900677927667979667652657804895732594240351806050505966277239678133420202916556471395208535860717277386429861122175675738532416510082920868510843150801535849332549721417773593439558905563892433651253022413237768759851854402613460220942479875974995046421786555388894525193933396902630270666627686634921580156257429464238055666374354594444184705208573931979438501781452635412208251340805594354740186618239578140403975371301877394094683041797560927810216684203572739607496617292917411854885581065058598063566922055356664751674603176383087152214927622091231988164797075866635488078752416119215391108851383521035357663381905997370812723454008859641329009546241865624442928705108336835026187839469163389394691656182257116866187829745823580112748861882029829088309387359904065825309593845889014152228672281549897903724130409532834429418212528294674208354103226376863724042511581914217886045840321155589615326272441167597665951892299588643666309974210808793981981364825876686605608173464664331595527763098889864875222166984726274366853773762213472696724378634687868300848515906601531769037113833269970949840100442010926269285854557774956227998560129634117032748160610882335909248364239192925690297915182942072910668256747635873163091619905465506559371776553478973213941161698524401024413245074489881937279246895435810955572694340862613251283459916063532225591473313877522240744352798680054871669166239436514848448791616771627785128790683082928791073848601927198642760246388397626282832501019401202184790184134767876082766206489053160089874583888937577577644268407993433544224207484696588595763659699136826761007827670640210539216851108577724824636395009916281113040230422085592611705798191736344593179715005850817931889376455347938198342762102347250283786022733764409358653945164102162190310219012751424575594170518946718885140690449880785857555107218015872264367750545311257921284048402704471947238744959907251235864102671349377507103897000120216763966856878796652943766741474630958448160332757565980125453698223767631620868942136655640429228688444657854026385322759559237679089469420332628322061889495919557700392316923632932330712601786028949359381797654741071883268313254622868523808150297019505343320777604170136461526658972264415060431465830022539981925425575250357017869302177838259512959426622459072174435160451977768417132514272952839505650405631375320876994041466592741522165914349028347159117070306087239060120217082149454308762260245343631570956181215384100764704786206356449371899974136530052746951015117810668982282423790310075576217826434050500590940607843712296983105373445135607729970437204602864400007785470515177850594887667125271817925482868920891249272886996539376437963719044388489930631704573495589593477127508193392900264006216317199571668241395896585272368127657505369432331494642485345806463563692952848410196899004112127362368218983491713411488257440910650744436050020737203869038565758974154910111889373594593821501250156975114666274277071644115814032815460615974919847981877176910936061911062968505713532873704193975527286567629172486929905059913506665523085427591487602802695571385876734350690421136268135809302248415108922954705411893226894648064366964020247000142285835192586070035980350222030591218416643281142194700648700334295046670244494950248394698184717658902486636638329883072631942008793736870976754661590877797895745637451545072943817670484564369341836594055683020164520790176416811793842451898788906398789529658703475499722344557495404414262427730758511644572801273157993672272231657458524725037730537158444670127375859762614018038138768461855926207252846790979232421740127220081942128520160857528110223758428281552500381363645127247688041691257186291493139645533934337526365136897940655926706411913798375634502178146503881272287575144298487670971458951229389995863951798181325328763912173805768204934947132245259956577633908594434610192771033341432463274824222147815893753613144123474329196507618598484346819316941713441249455374409055577188561402294534730134346564028981517666143317930152977302796892112944450428693894661986122815258005738225331484518136764631201372166809479206799955456268900525841313086535547723467746295271972880259685361100263332647639886830746636717913086818895137668454038553852239633958110528810595819202346623743838460091502233418946376469968207173273725050313288499375595466398314103951027715525417843058753829304904379216191617018244197122759720746165121581578978218237518198653096209982349910574350354007775940324821692271103107327888898551696276453970073825763189500415341657370885602112630430225777683748319689694600267845953592255480609854844837552412245173296087235572980994936106981606383881866774152934516762219045609242116034990136745518895914090845351988720917141100012687170167275779048895933870109766100560275680631919315726062936175997678940650575323535052959507544969477300973846844135151330793102595624557583268614910321448178902645577202771781630529350340138598513999042093521048438295775104025377326461098152883754051401478642856686002834290068345587688540092315896926872105947378568426045999142961112917910493921232840395338591945902593189241812243046867134800813954947715425103250481115160918298625910771581243238180091986331249462802908611531191770009643490421096370213486484211829101423715083017866774753074594784491925793697233393579679882619132828320919559434558360058071395221497311736640704943741819203654172451065714576369847943091234779701677331689795469250984639993720768398678756503936149372914680134324627655553103509790354970652613021269202753247587290269099192775361624699633964770898257256906939145800681336955600228531478580650096119677535533144744417440621604483584658441984537894817856545567422878529123157609478237817461748265737436111275990107245343098712074892018399324466929570384869201378930082930495583187164818541724427248848968919625274837568856965389655057742843363084749579660900015339414048796788234201003493408162415053399419633460993599633183916548833797775987128312639669034018430971026164701283437679421865720388726023194255714351273522493882747017252362859521009269716389600901387560430277001938454931860502715129917784124416577407799117421593574409923200048288134240256604470299723174378081983953597082176482925528118982251644627666728066342958054387800105045540241016619847017726121853573350428897449159804494703730606375476174921040197794257867344344982986184004323663925684925961119331426978871241828249876854300010972786737517647061182970397326855411650883955113566543992646030725785084405931761049104256078198067128427162483449029685406134194698252814375057560743616372603795625439092970644098015623562849157746473035093787789464688676503900373776877904585280363618376164463917606379803352331110639906437399757115516674276258028782874469085389015884143002525547090283985606070658137473996207370393074991812799665368298759238938728848383885270562877522490744748844733744390589885707927128873249973770572471119824026676649652323776703993909765214993105073341140684491140087579666202202884337362062867997606114344460982714720790304860892019355823532659109221016134107615158222715624502350659839716333068508571815712490006967295578928867641142085833723724431037679666662310004224139567559851919459343275436348993309089520769161705119330023233276752294394876640878081651016860363011936515908501327311667877221855810382370516362798471147438013300916436748461637326356774516888297605452219541148844633787211054826450078439562556644884082417159759868028666766887104387518453346942348567753292578625946818985988306676832974291188040685266148947006988475526845107968581663745288814234625966903056695023231788692122622277235052739719089762389527705713413668425080885315507898607990196953757232136007409167274743576532190155703021578639937453486785725434048702566609638095147877488039967255965306237846736054723583328720925603406567153622002915398773268280028317063368620439502515770286252169327768434391184745250616134657156516268268770578852610191787952424353992307848985115692192630617191366919043956442344811746879410933457539265672611044567978702412406527167322240620373959894192485598357595180391822329396595203553755446168134019279187863059982564760089742956250163537121121886446529801796757781095659637292423498704699621750114373269765483433707088422101933815765915962814872717633224273372989240427842170303755424045672399766241043425082489725474858539890361167790057354904337467160654123216763668012990904749461966553774920007463523217403354768302403464093200463871388582291740268711188360507206451596856197330818723918769098275024107331199472615769375317442922793011484156999401576954331517303110938897256646889336724488357474403464784034973111739558413290354190669760489727919354245991808713261523551380777952178514109524897733686775074948379170714052890505565561185982268192823073891066406331679146904375630329582174845616334218123521639267593112184546340129666026838453715461741144302350229132463546058058781879076894615790803554730463297262371419408432049623527320098544083121608526492842382977013129457449081951234174675889370061345262180149707211448780623408262053169612240757266682517740312699729618457354112506284313993426590311210907670549419565296887490939146638909013618077484533026693464616502082536420441613239452942686299923529913001738210609196717726564945286167695792585785234652780820333726028502141414160976998858092078078499006037828693040306014651558176037061696628019062719025718316673839124070875514858014727682771651788130087149219799753543165598548633821124454273345494564763235014754435845505490540751493444404689938650768456448244734230578349068203025371076817199065463603405839256593028869607950482344877972312024402769517293803100167054822026812081968003359330099577586795867471430290500618051523530397947525626257875297389822812278880795538451521684347403489642470646883998501880342358144360098419383782094440199652438313113814675664924253811867174081320137984862830709876702982227841347039021547475491143692585420980366016167775268223211139787372414940130423572826853129961072645379000444655585638753010770750102924387267525654377474536695372309307388511815457338241365537290045071220532606460576168170514468584150379423764654070312427149970072815342057412576345781598237243848073725480010460712258812512470714236496653158057718335080012243052186493422115858772351598790237559955892184040379606807152252517065682415746854263075676796894158785615702413516028391625085378409460991820363637067036822830205639653845183379116897040426277093612642351572808925584423124716990161473552735210011284954244943258042452568225614193951978260507978588035391176910748683065887354936316432341127665476785180577230337404651971473923296475672420876886644364551072037425422935982246641647506526759759612125113183808933786420082668656279416305048904879398054045213536721469204339519522532897601221938998137247909357269684858092936118424294769565825516973589334278325737148895322627805114858013612363007767456834837998683326583022408240457524766618570789087814032469667762983754130003705534207029212719827406277383335328915180635832716416916358246442240566553219072736335364724094624483298258414327705967835199683120929738990682747911685377267617330104232338182473378553907347639655770180145426494976451537327215104574396055133805415443357444604720640837671234486025939060614693025500562093262588425768830284152165030744294841421372985679077791259021674806321492418019576567614717700088747401472179485517931611794994794083170602297597296380047573179627153793397292601428981879269656841540840352841670294823631226295235492748305879923108229846300371170012132591630720131997906171708774590728023539782532678590223971579710626437398413646008527124071996877455775175782868839824533630889233590504190785603592300695441814412649300981383454811513809526262454606733365759334486872731856440161180051255205072426217940150834494564173850992966798218266699479110416529073156442099870686391526081992118117502745142452374639731458296676435422381326263227957701993247912894171240412893825430143820930078059046226021143132378918281188096911671871467427960813142915942104999644721181146806877932275724978547299914766413132614296325163251054683987579766092660566370860258588850311279998891515081612864976031496024753081937300938219087809968901454644075082610004191911406642186982537213940333639485816527360419092474608621436315678606096054868542099099944332521468248485719247191012403266880959295875631449460498503541715840864600883974022361660936015480820245209858801541344614745746759529344289365687185546899842202972448285079801843318679549406809003288694840558661944859552684631699094511659225000345880236890331212032693950880809533427841739545339166390997743525510705277795151631578950685332943725490724148939447904801824915126265228032055612767057091908637310657196933967943778360241220806109746063520739781654688931274944802407238530818817668720279237225056605017435918095385412322660280033240332880435230075043278325079618231855241104764821676537087396475318039771831200370354114541136749677429338798127790646193033282422440132414321322883567783018901891156136595914308828469191566265770747636191890335440769798658948681758735318873001636970847485469080506831747394774907131906292843974320764531140376343667891147958842967725274236484316863669613704024771422983103740315535778432401746429115965405491100791720735621493325553679342641670883653630299761835806527711548026783108325257441204990804876344796782601370374837053932679069614442139244645315931303109766463550880867335326013676344087700073822746006233748418181275692251854652378543365657506420421075668565244585833040231154983888421525855044444777041021419190364822955635188659977428426988698415660255950352814039730101991589084603326410418479618005890755136051570222731692986304596591379048883951959979503825147553442341337308283758254521730031936576160377650079296899573196765001947164470466942289715391420766637858534001581643995496918919751020872584539522083491518458938336973564460771770077175939589645031314055701603134499864894010645323436424790669961444577402892386470537970263935235676078481721208790064293493630973451491752313327839912700758224743996250602825952258287018590125985880719415137512848506044271585900442031142471582861490832863102649410665825138340508374915900446095073855798175040209100580437614229961040391091235450537160569573100921930591668984124506102572014349723667480503755805207360090630109033624656888059455745298506411612441094878146448714890631016748413991576373768984986135906358879677861610564701143227394745742267627477289142042867161093105217880220886125948747906813062675173655448509530901310267004132803759739060304117111259020403316931589675789858974137453371631343263919298134272485193960131690072071024741640440468392724111105483840566243189866004950144875711709002560976069637801900785681046896927512003789478495533690381814406705739731498668983156951766099405438450361961888063563624363910101217357540411816272157938065028212302293795439731292686554755805944561638030203319410469987915862296166264947720404325734705145831705337610442806658447855889041225615276723362444876341252125673177903661414673012756127139391772468711776174524395120625450789497364860328607224417808334187905363990181661661091185610727562388145439803830113214557330937587191132083230317083804130932236416807319656063931630368235551536887092556286717256619156746042844047219017940637222683640988570971258817068122438075288021540778336226211787511105068378808319415524989493120287425686140490869212724296195101404054754135781067071511008740545993331345933635758762478607918375420115521228545515764142295364030679820015192609209177919109623935235416374773577968750985539736426986685849399297464981750052162006328665214299820242180937557507560117913140730436718701749724677376565304677085615162121564159863688775383097564727159818518598987184027534350014470317198053689564647144447722028991501247693949795245690333803097392681301852151900726446578675633212664259273110475474206342685590530641628149025106132179698996138963605725253453251486614301839065741358090034109004269520766108169800970853713404164637013237385510127344934609353525469620706998040251072198114413547596147205843740480802433540596670145522358197341162583522349007129230928095476509549773805164610099604462580706025886467326476137388708913414597840608246867420340755229777415679489519921174839605964204964175604156994041111838304892541829123102042826862541919903524194934747184517255138359670754752628075256711762779225393124687646605069676255863967127299841725735900802955514195397412113769657446922164732293007390947047242086417725176411146229174556228582669686116623633192200122320740380916208250474875387866555659660218912847979595263317327799752073029318411823929623405536032635252163099120774885121962006891186857880845645275779063688323505947097047847762655277699637237375259164651842328216415762655615906680860211195325613567060588608996023543134315714099967784398940267050775304345059219830588602252809477522946846904175485321461310926310771467059804306892410279448639783624923891482862743990899682510409550335140247635973497712141080170955970493900701220127063215680535508418292282254221351443711571206515241650309907963260178676003024731812095873186669462452725912865071338907594317524960910726608936266803422055410182615594265145262467635282418071648018772466767000530486563413046980196947045323456830776719095791362261637763719927000533847409885879702903475612596083730565884932732983500850643014118678319018936691314291775184045748479648423710284263855413031351600456666875427548514918926575756762725384723958308639548902971555859036781376066123581942919582840878432085994080147593460898032603422419275879697572381891484181962553983633167830836802849158173946237794085054621267981814317736679455531733246892700493007456163913985274995963697328902422862183883140663786992114256335304708283171226228135932909064593796334194023820732213616372508594811852137451789525846554191240738800480525080611371750255601069320068221083919267739491606111245184370236954936201580205462502828834453172304282104641009037869316303861553262632212175263453904373130293047653181615002227933135069973562629058391563460277355049860375428879165347675338200930550842546839531307916418664787677944536517883586780712170365749368076172135487373174549746377341392955184930221712155974488664400967176826999602699549218612759377883389606183323463152586485159772498806170021917610061792259630038674717865231696911424272394379989953433813189950588330965527086293847500826896431525091167227961458341496124414688376857127437114712567944198519965400867457215342842762573344177568513507019394342981599335894799593395914294630463867669144053057496206491718243019604930619359943221552412085281907633247574556472489828060283131863986108273596965182088591258043160233013005609335728477721555071800093608929637489760097305109368320044149381179299629310027577145331376070319505300833775697249814352327340239150310876146973924730573571231097270724379065508560265677150258923795211816600548430329937178739062574627277091986038148075470667189391325571823746363722151357118681128684426412779439458528338115424458826883643377279728548217029229690452186636241673438071104247199090076150276833208532762885877088148103418179698613842022638567654899832894686248271477088227531182478595501710593284753584057806744451316958927673749373418795766409202167129795832929524605899381882626515709470869642850093975496901877724503133596209210534313660575144088864311794641256044886177709073813708946440491029637760040543075077788576910453328542571472547027909956555960575447889154115029454903389212897360228152108518178401722158370759185415913698333900823315361978494939118266891228080345220495120984908039656275326382336659472221914320982662058847488028769101228038873923225843136439911753301617086249530727726813095246352079243855446615273572632119675722106080553595487566798830455509436138199040671278013566636902535358737734171984488541933467449875798532460370099224870687525133837399727468297005832787673936990784506636924560175734913836275607544103236395279983069188548144298960914637023536686574312080389691673689159715004219706792107240434453647971531833449327387553776012160369428827872333008373734496077017836328374392117203732420905557358442523745886864195901707150515297248068142102479761210794813459781456782893102584360764372169095992293000265070917989692390422663434464555900541045617735605442210964906794549118398450884652300075615018907651967207188998498666477137948203947289901789382109736185648472041117299423981750865193461071434451555801294952644053382251517164934718461697697855449700004176143228576002107507984714074830319566317900317540700239923634206838989328242476153335176865667354241653737550064221903608506979023474669388052381938927090418348554311156634052806230058281408999695482534670823304890629756176721941359207534221983841160914174776680667532313839002459095662973926188643794619065421721628558110230906489934899918173298295997884594961564050651578248297110881787993781180538461359630243621803856482739118477523730778795030660880967359470099314546928315569240766995425440846048441933364973546363626810990254570652441800888600008635042052159151025166414644191057237059102529920004206044481958121338099891897525400554739401340263452649977971484034589229725787386961350730341976637946796190977092730761245781642073947708684095878659117571965031820464471654538538833763449958953809336853139870273682336489204327723288753262742857790317489069025725140037114909117955016040656418015467181354967255315710792095234464795968210000374326733649676720199317990589288910675400611889754220854047034242882372337791940509455055580410214006523577259526597447947115022091117989194143600976693291874823362258404716217192352304504587134685565683112326017389514636190600787816405526333153852732864622526798993600914040707487777831577511242651252032074389975823477757917587067702461521451039488710483675602387352828328931960488402430992744518926266421284466224044816355835724311384223810060078575353307009998616832821105477548501330522724767949667330123440984833840560194934523984793370316455918264410688138003535539641877983804607370902683588150564319294272601613350931914645530829667997494274660469300358181594851414651923011672883124503332680822174097684227657755617026359496550008969572252094307337171291212464780130725787815482530818388249393739561990122968689900339357694858483094946575434152128462854562482757042554627228393342035542821933349988918995907083468634314570974518440538808863111296361528245117744237471479177053350089670352163900300782714502810093047297245440406576802297040480802277089515571928370388926222893127198511366854111889961473744775335235039111066639452077163915083621293137550929144327071406627342347381201355715365610653405445608821019805793391033739188893935386726416447235915944022093620427644997745370638243024933084593692641055121750604706739270290541367967389671188569797995793053717101286310536135369850923097245811839110785429581484460047497320681467654795180261734265834514262637947533894610756308538602523830671095779234958647245009981004436570637609956618089245113321714584133608767423138332549103361089031366328078292058934182497584953228849790058667371175291357080548057785751900372770606353981604349032313450368138798301053750207282206446918146498198979992157784756438652740998952049669940073091024154814908828131991744259330476599479740932266296052257112955677230982370493600613860467432214793883157582268923123388593487885443035759154461887707294047646603489810554847326444609171519394471874426238909140668589260712573434950310120710835443859549906657710476877240142657382501608149873479815289581150936964183234148952585519205719100157989044393669390090068413116250110593105506102028447980260593076879776025336926795256229871915889280271571035168690202831831869627748614558364911662201831914452953669885527442256465785343524721187963964965040879119553070821481216451212468498776759897972907983911599308316779735803590767510143232428466081113955925261846500380584096245076878258430316339255370780905166537463131588666034563470550755016012262679882939780767963031562849176085941221981513210833629914615965200466824702353002645576080391851523012270436448942018892395946367211460509057417272345087019378635634966029325271559547632016479614993340556618713466110247968046191014501016730087025868742561914857894022520667912712905951239671216954737953468021577094318704481218639995384280143623267340682324049223449303425265183122259933643465006584411328786547582246268104766635208999878875160399560083020388475687258632611629461948032004491959930349611215310463442742358014890351566918796851099768257937325086952429875341482911572278621233232594068068138997351249172498960617599435754333210701360371170959839046264017742240189119036529348432403496806569549758796219966043815867710925797882648280220198868286133805793006102086044300444299228352688554831101583558797503414151583201380604138363362577239045800596294452484319601559027208497233191794996778062218391282463555893127730455061159872350104367260780453313142815565731977530005420277904526935062532322644947420009966569277716988502595684505471477771070372737979538504313637717738123655827453948916022013303433786396161354785381987431551355865869233684385991142952414685213397191340288103650628990672790879316127488966319334145600841786938931125773239302955131679689896680513834690940495118711856712429722701097165763886214183733015975061346136461834704185748894466323171761859217177381211691575808231362911576509734636194330739421071784465514233746064513242036087704990535196130248036889517877048684136074257430792571548830240321731273201108790565831824914281468926579802760179707703664720419162413569771895087187811741271019197473591545818510994966898264773859801467567110351212619096319764735269354680460305860497833518069510931409597273596431462841703814220369133522071887571354881378986325912046248796424948383850737622287855268586388824317303243140515163219789125695545503905454322672078107319514739485198176063158563974343557755016248542984439283839861741648216040731110998198161408415037464432333892462150804697893805511371244054138006830943201305651364676779343464311903538534093199417208595595825311529512952327594195948075223921109641064842631554282913839571140202748442804932123904224065532471682629682949954748061930477960767030070915161213094747340073451724498255451192540754130085433882865695368247073182095933203949077401215301784231356618351070007384641881864726022593152661412719139617834037541738909313410352108379626144615995901921592542289658576599622181479739880745781752501030715044917266842671756413789125218607545799778107759460230529090365441711191855296641187432710376993556634425603582034333826634284509083851250600351702328026448602354253339441082649425744982248744302568998892085902986253355337370957222429271718779678419020013733972276319414191497500342129694336641294493754556726840185536138071773420701730506000037360956167651564905394183509006158489106699515894465444094055026617959791163279554320008219134534998693026878475971476668789236153629972235577749168465805792212967958512491924404994642087529124530124729526939611758036921461711405762250590929991748450017650644069183435251526575332690476369780731152595041020665838176593445324193414201938768144843123708708741363329502671457879296674753478007683028281536914131328064541560955202628373378840424549752814455035472957450416401165017160530250539166931506966273466888743341202335492830209386127760147563354931064992086916224727983783720837598011437411515757310371341032674755160621116560135451610792353601776208481109030166745672108164809559919332173580980634220089003562374131433350949397663879295947921266049460949171920675803872590253211369531615574637259195158607006412655969734041926686401126674926481911199449281547625098107775339582441012198007602239316382182908623822217875961161362338789143692771715346604304066143983761440783784296791199148530551716789818246981553183105388554523344441518726001421096855384016819573546048577075189688650009035378096639201615195680131755522516993035018302083103309244731842673074503745324832931054267641969836619002095977461327312732101886507560341161323292683027007722280018791073539667887900302013740886942661206761496538052102495060999520062752404382530106114378383527974366914600669243459668396028528504135688361687949639627196398077291120396983242139308621075681225286238010459922951887524142527383504450791868993141844638986694999644316410841247697221424891291640661824783166257006756148234359528171977899537067941928458028124660174358346256164255785622914661762234675870572258017019733407999017866462212925158445921794224573333472232950821197837541585065768461104527771164946096895399325973637252733807898225773443604442471773702453883480234705938422498860742566829360613442627717319237219602161320731604907917000662966911679531297276214763648080493175377939458171376158819140843630801701609998963825615483732621686439607196242105455964362146799226225071140557492238896080600504928340818047438718730759905713949806106587660622276661809947966140893286557688648642771968576422672581385338148187362731742410626872293240220720142547898040226627374004532872378780876110583521925519617477354397578897950559122515410486940358497071147662366235968173772945359457906451491729716505177152735187842982345043571377510494930264887261622053001624053529218369705076333051406262989049647833135769303097179827131551019265139858250576389883812537781902845459133011920740553752698392696533491131864878572610512639219709183660112182395137820172557143680182347370691103352529159948704227481625366937035757501125016466735482920901660928961851117684477691640641119424230704673658383891406202841516261413154140755103165899044654485359565213710415848675111294258581802608166484157872709945683761660612222615955250733379558095712937054560151864596937514122046170912665051767591873770170552681694067385912628125953071530961174576141196990738071288060849271616350653406058571337581100826412154958858947071021956549246222046603310868757499712842047963496589164489015444936918414573413684729711103787338859466603269265392468601520198840120386985083627593076329029570332481433365593198188492272610373639270890944987508442656918265796710559275963877611121266882827480525875675261582159409993021931071181539724368172088630275518739826429140186923281949506531788858382348639048575745139961393699688039847541134330777214429088880993997236256636260297250466448620865520371342580490492467378279738224389085510323380156427264929442207449511643910893457227471957402894044951762442889855292627383806829530302288006903658013213046860551054610232708907733228598504521962538532478700123380939814274429095233377001132655121264997335068361663603439987513239212568214476198542767651350002717255326416863452728414360805407285822756603063309793051150067673480303465808419320294154286291084561830238704167182882433480276100363639683627696313293927068209952315813912153543291709210460272677367130756406343304187811786197632045802732045895844972122780139415697282751691468253187492147739084812821284062315663460555355792241957058336165436404961316470613457417703524574731135666422851606908173948191921463013703521183447564364227639706041861077759520260882101901039567933732699973933833979990266803838196392302671869591428780682215178865054014491178166699431746971290925959719743374046184242391071554292652044979450534711625608846431756942966300128132924325773367970393325605562909457449082189899492595475579611474647520716175383467087039932113498886004255877137044881034227624536341959334640735614809546021017437116916392176298656709359074401028493587792020611637450509291782343011702557156744288645755340286229608218639142935759588454761599431104656466854582469619247656890672770194787646839462150947901285240727055570406613323991538497387447109776703755117995930871422122127230262834689642794742862348898284736383091283116754992141617610217638363064188130240984711109845442886014631569066978814438194401392308182914448230633460306445558085373362821350318761801661330395041834080856330941340733849716954809794540929569953809600821222168848037509440545424961490304055576456423023485564240127070540774403334685211891624661090336309016142643021576588316160462420667977827018394205139640799934340014992094684656371040310248835480123616478245123368057482212211435622040941988903089626344340127407925531113624178387493013911196545043954845373925417434576850177769672435481837822195881263232705070498783444101164990363041162469089685603717672273591628490744923556983723133161725257823646730779261872527893876332878856425179362722660694467885021571647157859414327374565323882493784060169988155115487723838995505953524503466977961163968931109079963030036568623168606169830857564723494868455665760158451369151137959476748662247429700090324652306995074039801730374636635932706592981219352317290331784628676334215148092959329250688631567831246005826346551708264547279444225804432285383779600308874676197391481169396119105775228309890499040097655582439554523137644869034081384414236876194989282080358155236704290007318281564371653909265003564349260970893014255566928292658185857526624089035667427750213792060483560399026082774668118811805495111770670733167661632531604892733212108293488029471787988954437956200401140075317682864904378409490094959748643016539170461563188899306331245769074812550676154916566701024881399648251887742195852326239388724086255497453654026588347772865450868716559521578075110425175046106795391330357928451236204076254716406612255653842760212923391243559079138846379951396646010692684190062219998347994978977506911719928208143840560130306836198868702757813715853587467519572346505557010737335942003583689827450257165492595606172989453458217784221329112183129837177531643076226436909462171198572560157198959947732336989332472403593184269496435997277258276804501648307417765858564844903229605737472360782296618253844912107886832489821392370444448130253299076782240306083150313971636710874216090604051497713948255534767963242178582001120220140813982262173425543746861094063739914324458039740376904684299743991595918253518493042867364180523711514787870710990403202901269809599189903770597757296068970864666547015823670607302868405968454962698881904154252112904847866193422090006564469599374848096600144871891132114935308616318127446244039133937904062813133852070788677350482609960729036866182383067333936226187866171838043794851085672388142506678809664979057037689833432163791254655939355553959701955281307230412431316645803960822810825223617344284204947970938802487106419144375780670498288776793269649128227392326232700518658662686784791454196658478405414671595851664922917890171991636724595756542061724267484701727649961389812437820600655339471658884873883204656583178597103231261797622575998480684655001950121656146784462721718567656800463542481196532382662549494859833405357594599858133119136179700595366089289948991207613805999228972149360432275137185343303322752340707302060345056019226686201790908309646941350078388355361858958331816686887136767178282685262424425182645783730623590202076952368920510412583548359521214881466078680255841405970478964355829134474478632348443795945537363436491133507529023532338703316102544430860218969817253700116595296294561883033889075120361905968953402441115847869951040647371987542756351787753677820010199462142809436489448364043513213248153786726426983184993634700145847128898852092189710726513565082053633615585177828675936349097097875748856779716201610864762145477413681474539159804729924809402810853503838971749287720006881241738708721860403560435298513349375845628813577626930010410059115878178658090734316178901200312294233107192287076907774825446530565463118027543858176963084226657981109239237380127548496179574677157972747843291047704247432944309798061983333873585942687903828555477339957743564971153464761002920673997001788854390075842926418227147917473527563023885365636970654090211524537140741238841152836507679220022425574676662277088325310478081870465881355089967043862594986988856209945795682197649804314393350726938553956468134266726100933848543581890782062797626381739138088057418598550096833337559186939989354746305114524606858337812926803120441793501129808343062601962117036831518818232660853744078157408715266072931641356954332448525085993467664125790684382784335891457907761895869603338368809317455993022088719221291463760377298406500396885959295715455643410386235571935242097213808257750277589465426715493400533395273104329895678824410710557131917442960753888434537166270425572705277789434311182211110936529615977948353698483089834094430309233918631275588352223216055638182473133759838012968910402321574103977607415165056995916823606311567653776416191419051597780684631318207443378251009846254930988869971718509580261846952053942709530770119507871448539574050855369131965436828585437843706086639264521505510974392971593627390610037413591785627804011227893825060876644019461262527629410299276871202572894538780364922839456459227794064844860335671814099480952740993038723697707551686968689071872398800831683574679191598853635137844922171253283597567717261692775272448770991128395623618792554821081897432273324515764017979223184020756318442915679937299702682477826609458082192092118589880086352174542774653972492738190756825222044261089341406187420927763577016302466791667988053571611526530731561281931249998430106841244894731584222718232164645741162575238777302501185931991791732155841213024657596768152951377760874173115227452906123604094274292264950208033753727631109198679977942246244916383893277112392629100465838870739780785812634773828301651189267510462150604447251534271034097085267857438890774965327583236590051081914222909380361345309574078555152992541302229981795619289416905184723731616519473875510975244281819279739586312453680519516556128663643827679714291244280140505853665008653397606142019337624783429124688045720486821460185921660495332120641651164064541036190395577871402071393180846614392468156920894642183175916098116498988073897712645817156711231040685429102329711865613080990366827579303905906907406930305054420746938010180646380651990704197263594674834965151648091325767307115954207801496781466701907676602821839032464989539635247573779494890599765324741058416478250351356864029028449470955284931310313409657957897403548612750664790967796137346128408713338407114990635543540165731824823486676226995262145868677694876489385298249265424388324864257783066222165548475699112033391823620790562898874456002077018817787209543543237181267972013318810661168471619116482238625776133835337599812299941147620632263883353928834762469711521692919916016061969637499603849162482070795925679822266330827567317201383998827903254873879010240119169890687966825208242137693111252930001977538055512658585637704628448322106482289250277816918149952990657991204127322460298424395322884174642766229153237424549557226716979496974846220563101828042831520528165853817624238229872897479832814065181788145513381058280775504966985798927578262955834713975161903833596846731603712840901620975669256048408239303903699841532619994088743315607234839020886401796715713675281101672258695320202117110076895653910940341792132175990456642858215598151043443092851127782712838541909841798507542677272021076993316574611415716110057859597114434632219080470569482559177363913179946826378442674923067150009279187267484833848074036667416583011761598008030536037818047232169888185092188397516800399271034596987915802435587436135950075673775159961294938369009132098697573138019918602980316563468938186191249992819371556645625900131454985746865437071578390177122017063553953682058331662030262784680860630541129724304986665069098493725640120484704379193944461111039448154884390278830775811773714734276601902699466631821870169214558401190532805559974701505361146681208982490186192948635825122719447909250902265372423314904788464817268223854546950882200072305254678199576081271580961705046837841686702145443148643869480051805843054238338050995834444356477024996613745255852462272879698724554296344600480893559445854385523572785751246294808792887488394395197271618212805419874714526525621639177978643990597711202998890931870556939024305807337556103411157586325844484652066677938119855799645613340948955519317733997319673106146044844098183906771001804211202418271243734870055956932516189555551339831056371790987959991157236405417473878274221510721267748470107244831250840908875767601343230930473506373361593070484752865654632376946012757216056148471181399922240734851813948941946400998901027086419597313124276315069227301200595188998992070945131896047548380384555025809228561471089547444339347684406512896024977222017537702574007811349186568008658447406783961389244459284054646839306181397770255756135674999247105434965063011435068467422514244202857787494507517796357227990200073345918227355057550361794540476811051651232771472971072797576445347990358881288270355418171865524935805218968723650319393268011257942295754080974258712214807442272459775137319448413226842124483289878996030305288600548592564519882587795933496474702015692098663531483751864581060355198223035763935176173075584003860318702334547141441246899647648120671945187448020470094217781542255794935673533620567495495102593328292809702811471172697071129618370553096442794729310433870441014882873874813221656049174889415530636048786847528181004757300193729296184970032089645413975877417022401131651021600250589567352082867608716166540806734983689338989081033984513299034050851635093875035637597526207350659266585150064329739402887060892498171316330754447323088449576443500382557555983134992706012987871019303824958577022059242762842684217924512852541693625784669129917170325389153739620631909708417562700450549947594210312897757704849303456306065945345815843491184230858964939504361706399571875579980174824879715869717987843619523016126205504579182119925018493586665882650563820067947708663479048554673511867537336371549431022948185896827028551719105111125517580232628619773100989231634533249404488111813389994146759307612323450021059737180298730199174797334524325897965576535252645615934834764038960814663143701386920647443793576441208722991077578423972233277133294814033592501133991804408839725669085717800273549311158646558713294379517767521205326805422259569518336801275074225157198552019710160285970369334202618422806410386503899941646437402664237339262432842903539877357829935596814288312823965810558607583889544343788633000565149529112793647349182150321726603059100748131741461024060771960115859239470055604106284065918143301760086366519443141999268305608983246527250620574420538876167269508868101289426489564865900382337787302985765873793029411944941486821168895944592089778096629761158536168625221219097856460219630910558881546287501139300291469598071019074667156766852774523785557924960024523196142023068615637262404906214811427968824683999217809756817955142815617669184280666712092184945494959306181972395169125582610935223643270212121171846259689498318240893892595340924362258900089589110135039393632151049672460755352057945460021686466437866030784832207033917178577422162951367057868082688738340018629083094074741685170801439374077873586104071905043379700649408325637728279912283725234801112854487960397660512064831499758711247428564626251850079485694607805414449192490582141913454994729113657250102833052339451136695252301734293774085275945500133542099239473605023819870009584270800519499334232835995574256047245611015022712713502985839477333295025088616252716242847997338909587514399566496468438178531384735744379279237601754904326862578386740098942520920285377517097065533185551410101377512135544164499657820139027062105578250375713869199980275100261756159023337465119268019782219185768633344888216785857437536975543159001961222564558327844016262003463018818979990806903935642878839949600409230376565819901473226125805691158741593441612258156074422319922322545381892512461655272577975985821192252918338707148942762105378627191796078611732077663611995503389491428685409037043866121849155094409762048638232216031284002599140288823337697037510234695928678498872529968711488385516739153859054881656695398176841268129194298094856377108025880086511047222105941392069737191242029586005804244863598396256253333876602451460482991423385169972770989635526000424810767581961390804546480103450523463219237153938536486133153482182328288607550289335589308333362269559256274241538001449328172755687695437661914612246453330162732819154328182259223489701307661502019867428201156356455999832242185041352412060507525480376646156731550119415539473438525562131937052250793802896816151240252446119564912904718708876639615407719885366920056520941533485300782601537737983282946887117051746506433428013593193322225955415837498547842868665752596586395020226423496471233319902133015622830490279275834061794495377555477003226886675025311627047248014102688375321827550543119596553604628601213539188861095177097519169105166257270946130744852591997979005138515432803598689590467584855061857179914243036854553317929050123066358069804611003506844531975164834711271304234347801659764802783116601871702649619515896758650576549559559043304078247212154745971897804391851403845031545348324925496832923713061236271271181266006901874935165202406745575311383945373523417634884558262500181470982928073688309156143621472490877408565424320366528453257618658707562587978962320988152284718380814359753337016154551133536621933564025602874087509827119300214242037845021289236174152802567688480441114384417359317901521201091452518923109150391241031633507303349043719236300645298819088218775895167616066159261815917422342398459840202820130923018867278460076656968517141680775732258677297797899975414162930268949285602228199476453610555498772426386895341355153926071526477583508548275723341502277052328941210308279071701351649402917637235275291609094734013067845481155427209816302882522994538155445276469131715249902499793234939831907933550595939378281142352345543105924817621192181212805740951182721012381088987713588649825460596358288874188073957553467266023026253591356848002363666202370212226025777852705121697492751133488016035769107955288442159194906374537212652378734132300055220979255756405971846619610623586928202312647755148094217593869156007224199192334019512830238259535287857595008289785421572849055493306004868911647800810900747170967710983730374963613974733547977706755463218622253359894366112007691426356693296345942038020558425021374008314894619694312736901787760362948925282743805892292468999264739822175759227274517547646873361019948967308293827100166725005404670907406420264020604867986129813997435670347582374532892108350040358012093754821130905443658165948458506679645977850848055274175777526450802892618272103329315462593991546150585650137249676645401105145575146767404822472637930406545943309635385587178986408448917844312853334769139712236032967035918488610879915963473157867167783705272885888186612837960020520299082111852420597544526155039016385379962401671478816486085239776901954438820494090510191847453409907877842349373746318602687441187895574563048841231296865661364281429085381371281817954280157810435074115700681621974361184295194898087769589539936593981515268882893905217990526316047256815550753153391608530389120277817194200536307975890692296469442858718999791487182604900192623373609774008937163088720888428471244341776279151355107287422032104556838051672617468466186328424514882239740901186523471814729376731750831910105176851635573792930443892019375812883927128502760684723821332143446713982196605466720833113269050839485557168443817228592899807456959437629387835945965812930943149697817478298716529112528164721601088178513877390681598873413553414159863211406946925492584698317401697723228470729778608618829121796048614663291771047703899658742576852572088170528493441686236311484771410428750992970550888737591938701204789448577937609610332241841330342267040624215383993360776532759145670153915836620639043158979025689717692533146698850670951718545921088911044060413737010944956542141974837670571088875173038212735949876629595967604150684206061936902050132279674219118694882119201334711514155112628248545934291481218239477899005715194182215974455035439583329698717942769257868322717017712835502205762533152856791526601125585517564344500097770834365250783163006832423737462144404536347714674120987365768668009202473147274904076807418604066421034010051502491094022648983922481823554057774450005770663351221517484845321773526167304058959575275246546931241805978980644886989460941204360966877243492939061280448463966414664164559543372589514479755282206606225294895867415906036201309188796143991693379077076246892788670332575591868350492703374062628131743934162836364055972110717872816631700664406615659407453648159611893130247640982502064633094367887011732312893890749213759293186546182001059459921056792929195133904220086775053137379578625997490587923140200174442145567896170615350853593046901234036659209561171775390711714932711609707606420616970732184280706466482163106002711636246121124148085666626873595673444758070509337337489821451545214471359128553057340244725542567781558381398492171345085172315197641062237399455865110637696617242917050866446366487450393239064983894588530020664842802181843707078985116664887293831765318238026416598275180270849706921450960547217088383853120634678504767425690112520470386074690574094637076855504726498634442328650872747855226097600096470285262195730599333419491878241569937797582428186583985417327002697683246954573166805637278496212465750734648656617621960555679774800802721539243361994267366454520262674375567484030769619335100357963688268761526379122732473364655394628167259837282402318859807208301032794824023531013754568313777034004921249722129511547297203646110339362918592607319872684101392795242945930818984632409504119155791287289105022384686620910235651506911779810085015565347452531973362919375666824529077189936992263770806720516375482144500583603763024299572776502363630979536388794740812442093799698716191066975750748976902504282360571522247280064265430745917192541991504010265778286454446019181218107995879794092907813606282201227338079562164536096958273726710475834756839292373501856138601645279792253969501217483186428711799526751220086598312936748419947742397642587650740277444484984780862293986391300031833431039058681467788286065156187947565577314766568309413628515283010227841048898585742354603984330410017214885820666065027922446799344103357418271774253394278742678433745014565304734633111747785037785150581441692723564511649419565315857861417578000399649841068243228479939963509958835774487200343880718937592110279675952093489467940277925041126746015685945218078055506126022769812966753127779566005484306104195577332425155643879663526987754990488969935278802609881443720539697129458973521783039340454997402768733247674416204870409293240174221705005510792828447497072905052015600436949153003598698157347600312499755156732795834506531344484681149215012849582701772065387590385556733499329008678213496876212202411506947451041501312812762529489849355727045012557544257647510596872659091275090388893918683644557987687253679056846110027318124736773615165777714722271733079556844226074586848749317030309193488219102346706906768031134360155977929348991280272523427238213130317998688518275128152184292798904414628366576536196639370285867490293511138048986787525392429665730601758932646885424271850140395345192547926622105375650529191349522625878962722904449875746392875674961729196892216536967355634047132273907850189613190944452799829494885275162970190960986769434704535234574886844378380385345144519742715272627636549725087299185290590501357561995585035403106554968075464389918654645206381320782498047980547374387404622770799688464520377424849562660792082521097842757453027752831884665192213113605967306576828762113586995122792769165577359368048360833917927921742759978197868673423779934371754142892441942398909574847333683097762872743734611178441865389239184737131696266196006707535311012650250729913010584591075931480543929346189127554126510275437507349560203265497286392432715042790036313024407049447242847592755370921974846082717815619498913358209386838971847429334716537818610400007204992475192621236862012167039722234987690656022589360496911248721740602863597710012257073024650255477157233645094332392761824848576189717901684634904112285781993392673459589459257919069151675458757533519851577851335015400857946944579852906113363631376764902906763248920050631267193111980668723231111762559585456573299129665091357689572288401451421576161500336897852469565896073559688955758265498559862062747328780727091955106687930095291803775070520878043372329457381677444870108891123728037121700513086778099107919086780807756425513315815082593285038071313906495876261189084866998838608366088500793637870262920705905989786288500152659237369746526845874798349144657813442900661346612733736987186288419131623602653744764713787680965740818472238349506006838579260743258796170151147958107514319343914402531285568950529793324814042197621519577202168384263609145135660841255659639303041147455825894158818139574978013897004191810073067453646775370407599072003486028456133305723724211189604408367424396391593348491972589493740911321014861316741215501134421768141159292673400829798970935617105972667335119488948310691352052606130640461881688463971893168950059348531900494473439414169928651842830159387732716655877663747784967595429363046317652409670991131555751127226703142723163467210105501101122172389491149742874982638178283021818537089098183931786363886267423678832315315447809333263732172897792332566538149330144276507143943605400093081395332175344900411480222047074807250187015801416143325503631340715886312935838261176588810350415091828387100074959980843741669020518915483719615020032462358138075713757647011042768457502159883990719103676030749959130679629912466231690615732252097490705538202634598114422555036667371402707822862184827736714275108726384508308477844217723388382680237070327673332214130420356595863451480387651214412774209253461920899839344076857290223328398619359642896440914126299194365403024747890120751594861137352854083077325621578453194093809235677736539469160527547324515922186382747528815270606520308787354476888192631940367929661934952843895882451935974421251215920040738306377039088670710758851593727110626584809849475411057616222983137714607896212805523012797888930484833464352953985436093036171312664208752656990588134249540427181559430347710572506605483434417469983264362092574922482996256727820760951878666149156655654819581725072383010032319999242743413121087771635568791638143638965319493730783253089925938866816910435553934875371871089749383425650416554629344686728557334179681894300826438315903611584233001815733921485554101770269397961851132707685004595501656510074408733280611868462206376674066747971971408915084913358377644725712440174688188167736805216318052837766867594064561728538793750264975180752765394444709171314914228339276621309856585058121716725609284199472582569447847213665489270717043455451263329708684562945182569904373829418809123437551345117058468554965694290247736302619617563271261408366103028860311436302153242694952478370970577572829786059440487433834306938652997524962061661901141056433282343990156255619892553347390291776254058915447134830775579924627689648182598350289979059933132656217690303937712726536646260947942628448189482658840086014990965831129522260260772036247217758900312155153697304945143628815746641542806071538693439728403823583041349089509436648666763392163712711762844650242426016105901838439720993404847649074559226954722058975311169547619780387408930959675158873680109389845121809122291945125495334187832161371555933281733608781123876397981158679180562540570115138796871532250279751695647059922058227777898929321511924516232362994728731063976540985150152457514105790208314442693396119936388797286600654532293478128049769234361295252972372948453395211849765102547738740479648436736318694901875577931110868236593172156659903702139002947217840862276108210135921554250737080968565423518674557718804703668336434403098605966993032844566360226159839854173999982759324210584161145381021700478474843059940303869053979171954311335447402543942695343941939124743272305673643577991558604123770556753341506752025809572005600219047759049921658090152554339064345935219861137868953135722519625754473633117707857117918575898950523905714912500472394839776664538853546132431996183370003837352388489621782196132671729468865507390816358143570535696921470619397573119728243818830310886051574632800189103102357394864932757505337817578341612645361441311828483778264057658216444191780212373878350330997849715055828544812038268851792386775688390651368221046815993282705377371408293024614260891931066728237433466416755892513172013307587625482721258873677380112987386991244381777910913334503272195097624517289260478536165357772166210100883626583465956086641488624054592181836785353508534354038908905571826101874008186193381276521872581273910511466804453107313848742929391198215903030541106248852360984732599969167294737505095084370354112185763426080201805923768209339955720856898657292413165435396035695148985261558709959003860164704539861042734531428109120473572789142861003132135320567045400929827359296255614385448152501961658683488616437347224778514960005445970127237806299976552790592451568299375052764484654288844830494282529326109714727845765372116056573154236047875173557051777440269789158049665528019018425219119613246886656387961915752203193392949193734011520987402866820488715223270497308301553309614857761924372678586671378909681658794925533101982611990949382435643499808295887689549157229432767758430284365926524427778771409171113763792061055943862061592637915913766755816663144470590906678492324765563127740920829944637356004749793178580983398672190469054640580270338567728503238133476513888644791341851649737735019897896311607415562222030842968798849689924746570397892820218218142321501512174512727285593134716770120599484596092776258308220965526957425335678582479828708159879009102481996932623159423378111594125849415795406762943702406228803577344657652513550481527036366995908174418849398912661181893712028376119295564254220342309098827046844041858002847592957243512058379997134033393168263761969215282364032912041600019564900408757500174023819890249302733739692802760081220284713788175998199663256284747282140329227071915459448422976276318136218756414917934534745928913959752809657940093410276991378276805484582949410947073531840976873312486154673894707776472352371718130770845353150247766275804094064933527199653612451294401345980261642209955769656918620125646083328323343238033192447468180644715779967395800270169902825148918530751543934787485542249596535077421235658923431480290320755836444999878175767675879914489775966464974162860213137576600696299655735829728140440263297426619447147829136348485358447702092960099367617301119607533286803720750867240998531745863969076460269842949758044371867855995563973869845765668673788033312528625063970183206617788608699869626087600978476475403044082425231892775396050018205223748383749978887142296241236138390017228168677761919944480056871539460933104955211804022143214520865828629920520910240334325658312541043470612452953830011756426627419722873582301249966647922034871954268059318745678899370727534837624855387241581621459085380971387800371856713417686710979327460530736995086218444696532035345857133258780732614612234545227966264356706457034215107427086978085375543312735198547532637744115286975111454698145231087933274536549553820747578719570922704138227317414431062054081858792205531344798489436823386542185058969985838822290888754505094129520176102831814488564191941382120105860648968571891119165990575677411970736969061048352853294912392438660341118164808449223150121689795603395573982194616805277565803857397108347968496460385060542411631650247333453174968745195406735208316564971608392386164680401735474675598168805121731635205429004489201827025364365682750621137233287870647873399072647193221268843556014949446570634761972983970261433560509640888599590348340296437115751062062345986689408056358088370046443636403480426410693846134080415706908113539328139922888519503052706934999301416162611546190789802266774538897333578567006387002227597472942235940757230923620912631735271890221188214030253873230633276713966290056444737076423044248365222279483469240796140256636299942797232710933892355108858305906659885501579149845859181301587749364247495428387777254281236330777371014408787567955385190322612396113097647863635643222401058919325455005301973475995371843710092957409337746279482574602361708891441336436324493651177156592253192399284439476148159543137182032769593042059682369052600482731226368680869148883841439545184881628877907339316996623588365553560336369947779519882840585270363814241251392576772303462840903152747961551454555597054274432479625826595272070057819247812593557375295334507280520119892811807213789945332898967201762670646718489468992897021338008353550777124981262702147717196807590933212747728649079560931169055656329339188004757879560055381560554087062225480353674484248585041785962875003065297295552676154121185992749355612257830594315501818926933237142281529823379718913675275640751960755634330816940775774032238758411618888329912923555315117460437661974107021938302295410383383406549728953253038994099043412889048552670609356237480567185351094987820869312777344866641828278137421652612211417744521975743334737160369975507359296854709099302687084059456360964952540827131883026733108926946105683333811660553727535707988526498930458653796255160855859070498353529467488235697674360705160757891078221825768117388502794083321188620248489873957205338787935973862829632137807240523294849927410440918040447232384665693038520171260566961408521604172281850332826175141556728676489753942077457772202380059121202211362136684176525890815425177934420593550468463550392478531195617692298705785443543938185816547184721124670003573257382476599474146665401962765743524269489337673524924005896240416473925120474418933758838436933150821593218791324261225308848252774027687926457014262792830699570013450083844683685278233220554183046408552685047042938929409706650087036415035275825178972568931855151008613048892528464059650499959519628359018793784297114585263680239921283387358110484602314779734413918002503049323266072454139544922507698725582611223120381350159542622532115418823661291505309266091110081614974340493996156046441053122842861328881805850841179186930687366621037702330680709486530079997522175899043020239143538995163396605566277588761466009000353061614672016856806179191924833946162705603190935594625834439504552356427854059827092085599307191635732086544112886302706581983786598565091608386724669682547064524667965190658287035284519838618312668034109520234376801592827120870950442023951861302707822963728072689958138382212321611511885184090279110517403528183257830325023512003445191490077617763402226713494091645179113526707162950716277720768374907598891314378691712928723231973743828184727095145603487141473686213195101711826109728644172443835956104213135565315242490173818339340938573181772113378673706362330224999733141144625997165315780121853468897650696206240534148575694267995023685051519929192614200208992391934431985329725746095760087584067411250532837211742516631928219893467861297390612325752154253614248713182431495580356705357439454124134412778602846500275899377612399379816637932151937741308813833657484204929106835515398417448770503967685471917561195710516902515894611849659594672566688644886026415760658254621073486179367278122015623263848165444403363701289550568156457879570372227467926399421140462708035017490819252807918263582316682388933782138966760358345419678031491473693352802715762602868855705249024506914835128874961309495278538555148009734087905935350108764229873368791503213180474760699844986447382790549304551162553966887513869652546333256817614762417370321966802314497352066867934370844818343824117097661995346987524502156707358101143470950687733035252625731211753823055014432965850291533178401166046718265609794126554935098198052974070077065035140943601572823660777801095369310905132008215655117533941918720594927112965002064920167753588112990075221258613751478113080718010749787763398299963900863738836955877458050950669976012126299639885427529504011248916844296344183908787508589803208571275339547018027418493958267894535915865645154542119709158536008375514457942199141797747953003960119577525909042899348934011781695049377102905416265639282923226032837222063735898080428483972155629522318083185669340127169472900025686803823541849293911413176366427825470935426265305687913650548243105415551276822689574505420907527894406571545570994262850996665678339974313164610781122941925726144877277875933672143918807449736052032477624739984808934241704785575664542899904786357823483399782336610165663348446039080379711928975587758553780103646447664541154069963981995792866983689187889667477881175322067954442001959625833201029923987976287849425332954958463955734852194214842006975610695721473627699237250017902105455783331148231518616372750275980224097897497240987573645203808330521473098178097561728017179007679067726821589197184861380838967030371057359589298911552553654948744692961130319087985090272179886485473491065373616403631170810603576777798701806877401959017067758626389426709794963346319600328195623234924067957496310239005280995920244222677506171346632267905487848334283706501870238479050895957301365758432798686529203234806958452670703778381995195690017392359020492323909352535102241817019542893862129517239827083960630230781040650160512265393673609333658626066638412970996011567570145309126628971025140904066766004957884280844997749373109716875057536862313532072355064568773424341686345501628380579228266215273621740680165524025900691913752451610127049209268508153406457967494591626373542039251896382871053011814139022524272683981910523205329319689472549662654935054092840444203409746125446792109441865037291652306621971930331584720041483122989267536972307781571268170541140279656179506560677775727469369080229878645192036614516785592539820829024276409706706518533512009046869650762694058614931881933175304044716589700233595039609684382942428697915222112589046090390396209019222060988347600382174342037263209257282429911900965668828791322405922259421663589734154308519470423585098421546984394485232099679340271772123394430010166322765470653928227739132243927716061721989938963302719230953696986998573829083881883908602153003463987959255224549944615469050893392387001863037141222632796812589113062897692564557588627580554208681946626726389993050870470979418770661302545719378941731103157441945229645652125787104601989893704694899110793520047528585724532838687327510871753154481895579315149587885870423256902899763787003029767461372261106930366631576453332656410858723688828979749694593269071236270891874272097109562568506687937286861217779385240613300064654845244216958511093642157418873699532802729563058251697257234425580545374820860946676999751420081178885589796022857271620599640808785496429879878528729688857974078737157425424922581823847155351799095002842867452528481492705415476285066301189706136143336286858350662122665506735504532734026363873579375248807587433717857047322988501041027160217846684121098231309816567537832640978587442694524732790841678535886555587124648357554730149049135307624385769261657055381130058462070590795332654106191984687560510996440049080618944909474469581015795887398741376709032611493601650258565687498353993686307566191221340120748387968596673794050090435944627888085490473144277205541283370248155738890159117752249816365851126736600283557133291093802409294139740917863450423032431355244070278202009995297078819612435770007756186632370501399297518116261105697203890614236578812516165281546829228235550783972935549592309046671011262748756402491555088815774350511999788216196215423957821593767079503037708382289998540614037258715535089724666644831086665707636457106993980710494934326305617541631202912908974212961050897330047691522054860253504578275661123435056629777884438653849300378182321127484530172396342789035293783377419780417405839449847087324840517951736832176139165252984055031553779551770081365758129510282797910236992405538750161574021763695662756645668949723205123344230257561084213095586778344120796765083071789122202199894393713509208131928759608817208477143594156686437180254782939876049101185659200253666792291809530179348997504862409234289936768542764235005199004591740040885756387717056859780382997155054108455241622453742735919707212063075605246213359351319950404034921869206210153596779893124837272204426030697559002063545116430454044873497532465425628211934942476747704114876525022607375820370132779665567729515476815312819036833373409495899178146442759728314838798703799833609212743876736135832216514854178424915536660022735532085795622817139846741861334884800209457920766506099356321336839954869342662759318398325731473158772279127528683128800971060052542446602269705546008959569655130912552594076555632413734037720144145914650273164329865596646816105516920538812446857122580312420483462273090104783764750894800074226949454662182982649526871665518600239226976429848280177011595384904026611005621987232720533743181359167633135714026027792176015472870022688311463991949949663602316788061090681444151836786026736887836666005342146053228611453196820585424495652798133854372395362702818416864601594766390597721981777574846016903142416882049068637524897240385319378414731916067802606489328778357681626987046145876171572442979503824984123466130489026215691515089052365163799028220345886183990930165474585691925641038956230895229639682688547707398507746014272663250911564398332105464677307958819860725735397923727960912746865789638567385934852685282560177645564968298695716736892001752929979236650997756518366567842394924372279131822222511360813668048386963340980710254277179626619325719394711559736516369812220554495295789454438941125757482096685275102998023959659167794860684254634137148904676857950342659845749647709701874928467264975437331051355118240409133299166340301977439366101355142446509370612896004720338647180909334820531579556934509027738980439036170488115276738918662435753910661242068155029315030382583130919943416792209068217750095621091768374736690001276790170719977341562173933879957194273983594777819352468811455429071300568927864240464166433315948422067177963397893872084123899101832162651303839232795731945392572317900900573316231623683785454323817243766926919409220227425511469867039771297249354691909508201289911773380794531116204845572792914904946876651500348278574107109169898046575738328850376355259989239000670537588630842172975366189528116056678889739810323356211227572325556121796784723687369979909306430141638341913173562370853298470440012693120138801134675027830175973630952554499425900463739903419971610425480754397637954067175035772689388438808090991779817211918049295632127983088238205747031855830546812680879286476112553109093296407918214733162678010260956882091519802768182538250104477401882362848611784480900238318776519857910824446518760900152167963761258947849373445868562531983188203176517327955975688653899648758237998668716015319607041956514954231588472441855684692054218501950283501052601330924133683988795665072917782356455802225146857970025456096051028605813814768377332546892060188559820399693323947812425674783827002082795936254783830276172687057681583155057037409408555467089294069795642655244816175751189297469885573894107721314419257653248659864226187994892437338217468028159554759426603417995418856849213767633658045708007285121928777029425906191668096114510335316125836277747871550168507251817582827213971698528741868328617231893482972856658452564554047652961950821452693022964598933282027439108953322572837683563466107453696047821423470894969213357874652711403432793798841419071000924096074173140839225541312120099862593110235154258554322905714100478257146915418112517376452153949295544365638890819428069212240639619585278135434844463194255664310272905993053076218908380419072627253969864984258332517268213442569833807710633194167456001032992612147051218472062572845405345677908683426707340391332645511776585339585497133483324447996812677217064264220926620618342888419163654995436091352386423163598525592420419358014115059370382046519892952225532122717876831609343925589380656861507139232802813169082336518859199994363494956487872496744867448906677681095425069335381741684516210430801110343166550231748568235245208817007104994612606487779181952574195361952895543171172559842906924161706307849038690476547546985843577497694345500498102956771371921914767226644356677762253844234964894557671576624859780769239549686786007211745716784341920492892023277109013535010885081055105059973437203269821756721837381345886024861159932858235843766779461157488352294634847152272011068204512183791830304492181225035626533028460513854575074623878984578878695931276004590119632827976236788493406842915012085854776160903465839307804622512943723040837311919312994092576221374827688134058777899364503279363867552462959964369299330470139710320415133859495047882862801292360522839279719002819864072566574024820723891572589812999914496196879098330471497131742455341059058197760023258394520140673848681166834108793318844477426324382335455574274749545066701054579322166107774804015869122029498157640004363356156570559047366505257858999631952111859437235506695479174283004892466998757160712365325913016750200220305808197010708074660197131881711197145369011440219169397869112712578604433330887321404823502489901308461216888943041151102507766606560952882126641838784992759129338846204793489447193649675117540282925770898195001560750585967859048613369032126354963712492460425156538240539328546035043527759248719416425057009029150031146167452277200074528601847940366217521842896217795607505399248624439895589714837698382715210439170966424568970209646079258974215807464128712282931385145971583745682359047337854347743601936788354725174350782238507114110296340393782485053611232759539028607332683721279482436837891729644262541243796605028300084854962467499346468918591716427086014993209487994725315807840804548378346098748046357991856140857678720833521950186520661535826175200098147023162901573520981182469824116901660947203930115062674343586940958635538573191960974389882844526225527469809718239605331141064616385394671553314906466609360033429418049429005269439507073114642677828876317910947683897201772725889201019467339042168899180600682659162034602982476887719193446271502668480011505731640431692781201370177646035399255021699704974075025296889157966886462671677958271899988105062625556674165091338284855233649624264649852194771014250947259720595214273179596609468935572251682820505743875525232364653083174043463157995696864044647584592262538758487403208624164840961765769675482533334192505958081672784197481181226887830437831977905267459522530429509773592419355197730426160563690169448354861511851232059159842013516740564799694573827727653351238359542261717120610055619880071437638913049434101876807351626896842622847146013540120751654598487086892068641253054641064849740042160718398990633465240264353790455402896042804719759070119727722136110955684474426639886441156644116749570304339940965611727683720882793344999352928188194647712959699516191495460877420751046220636941661640501042553081613821071674351017823669171095438810660244947285707439620357988486183567434651075335414079030421562763201176482594565444048360375647007320978569094891256741571661065709553859528796573333095971992101545960076090700819653562378626972961958085234421535390872347878096371882757246800168453137940907974328752529425647359369864112250563760545552595223010955459363956139342748262639870127217105652240603976326667149891052701955158107171838151552894914216152851764171050489200288153534410929186379662646490692611888592775306480728942351692873875611995905259210614019962229387244050819421788727269638655970607233090421619375815487545560654264074095460872440246614208182628676170856558366576693172942412021825927023323712666963065025577767199798178869346935345734887797921197616485507841162392765195902081066261429112309364601228742925599458233111417021631213067820327363558561919095732107420346680352272437537285043094689692380940389156773982010590372573140416791817910942464836442067392621136104551492365488463026108526568587690504592362305642238854463245677992123013870263291441543275942656117032169247479904223459200162163026729085100261353283433832865777989200361808433060290575572760181668174777981983430775782057271471348232761662792544344331384941794690072642577005195596616195350369013542512302569601471032116128557236592360449632088542780775307275532226316027137014105169234128187832713054033333839512884378142944132595428314707243507581241498020849749113245172041557153347355187796847301087254865272134234570024702206799659580121777449519424760815730160757514994126880162850117268296356866935926597866466704477490949055178182790595515085021527026150862348220338341400880202716229177851754242013492430740339350424443523755172762669921363342209059025729050387448754984215173654011720347788649791670567632159741391248946932969008026635201836765806814965909085993124787700599957122802359419566166636533106432748998807221016173404566978199932878295283344375569293191114628030173971511651920517046875948451360795884192105164233508642084214152684469533707530436422903936827130266406056242312127982197679783256264615841151761282405580350698143452424071060668681295955738680044848078677450721287513001119102459998457060320021556875959051564605191036715678942874121957305020359849370314944684096787764810901953436656017389046968432993165425057246935558589701922371666055139196603799319400952522596081931487430047971129307830937633869550491772002228665172640836065989131556744238527997879367400109093690825455721201424159986633121553885743059579277050498703184516651600777389969670465579804738799772292512825817158238195140847772886184899946056119462739614288384550490378547277540775386269059390153833646207279478249970842309214820325168656741834944787856482168229117100585420939012419952123670200901965305992722458889144315136416739876253773347229295310373423152670968861714916239188390858310930708686592598246499104243037919217230163174226043383952647595025129104764338453712460266388005306672074558407798013258102565905053365251460781324334843748460141861119727375531031687046492960816024492346351732899979822483736343185968376001856744947712099161328565994591103311881019987240928850640858695336908335182078986405080885618243537854293865201218193677685727289462707543900175394776738571977452032737088220184606798919050594579744379912050171021714871701530007345792372417018538299300993151197203212693293292989319479987718100969664727504299119855625277847694969845068953672318703588833578484871243995231915604122586012146231969700626210162619314258983491518099006953105906515662573949010548346606549157735155074973619344818252674444845491832900727802946950014202826548453377627896344388375607067862972973286795103842510080996087109458817761817907300555815055393108559427685890718246058966579303667707051121790812319169631306333556787421643567339755970589743357377858417758225786268224393225880710267781811259749444414427488396330582375235315559339862987863322894752703920159988061835123154438356481487793647150710298612647242344136421946193955696965273530514959547596932971658153223554485400288000603523843234062279121694387438692991811985471656352802869089089462458194702078302404581598273986323825382152346348637260748487217224696651213992944001292518645528467910604679174887200910394460522568942196100614092056744048347676047066417509824609271975479546457208228988481509836087475058796629435188281672833920814745920166709620913243602064166982617361575363644302216386513173652966107605002250268486909968448896066913135971812993804646609879034653845898351112601005152823499344329146957017493420133868991577478698332176475257096773616135789884091217682228895427615222894861785454310388100972962683990769773406092460131357461648206986141287268565458614903659535128131190507240238915293256457262117783763540653743554948294370588669573676606364930604110639125149196329499999306364296712019122710486064492824777385367387186263083505050063243931275867477096967780487320377504179528508356665215908586784632577095916278347668522288473488470203211910321324620948403596830322404736025521389179259274782351975184876969899290673831457635183953366003609203536521725575123142911984468023944077320921531784953200374816881438816800202659233710219673001551240181813471232259669670271050082950752229223998772659423530479488476258978865682810391729372674655199113262189932653411224382581600352203629829359848788660219564389695968080283539065382420918244207769737636228985438662980947207289289044298308507094744217108836710517277220605560439688621805412300252436283601168652309625279775329938314538026206851741896439120560129364570971885278230505820137151558977364186624037327998411689508306482647580872175766610272581985143226908248576246372956395809351100131439670828857203557167864487299703264218936400512420561219708923229856910626353833790305236829457897343723530966819815701895038416144740573631129896473881470909027464760297298467157473614431126213831081272435976564139499101531088913924329707976880201312174295898239605269580627161420056260206446963506941617537539829685902753457014340765783517200224816240756224654028693015345028736898676811018904044476611734591865952863406631286781263063555785973963479974024091153564099535373217650202102426379957438322887342089959584113378274537888711020320866350268845609855651225065229315831607157042601201200786110116864750787252713400322333644726284143458318671169842373042140529382865811510764995451557097884200572128241257819312131995835104817003636013473312521061120333110840359253678082454624165088336974246544562425122113353572491617501935812062527882008497777716196919688290702133430444518884239681776826599369863843670534841864501387571087015728085800873132120143810904176671254064593272137980845647638148643752017227729571827853320817456559698734638946021172171353177088527663345980597409558036157908574136455270407799542956611664518414812281916937915290373261331458769221121037205431498885652608658746892499890387010634160884523170107534132855324686611133435248801168224362140830677958954521727025853576992054652216915548644146843724326549215008574838389463683838765738990596417551882592831747363447564838593213524029795787688659232991978541032466786950979126858828469338182388479951295270774878668850970140121797744047245492948007562980825379158582111030300962346047743435670657767357284444796661050024131358891603801146554321514932486058380881660346404281454888614707175961588860598996842528046191729371764165903648685745005204055000270306835522006310691063088430607442516291910354526918264141049238883679573081285075030707957098270648373383982281938456822729194338084784327698610444318382414729981593213258034193363540827571559791034795730290857271139355601390603910233035869548189559941532153741121376601349001691043526758147986660745333853082173281864264012783316707702082316052185016921541801130796737778280908866957541072284370788457932042503749484324905054526991584423651374356358543178793702964549127486780580908743802093544079136621149593506237567247490448976391697398830054539520117677826143331483972282185658489912264490921358776763328704416826041593409016595416362560750305944721746179265699122423741273188138124006734326726742834744090414395626504955321320698216605064888728397856261953696524145310063161661365470830674673830662494822842795283699918461258875546567592982221219659165258799858522289882339650626948149727615367782795354638009312204087444121205896771158808488795554493551650398593991297918510226106699185443185971635377074320761078078666597968778244375697843640895670361652706351979508277553803188922009718693242187421435526678017571579519976021659574773612780980724656104277845911227025874570321775216358476708459705945222840970915654808415972877851067407700330834719458665437903981543784712224661322285057725789254413168097921163740503012046815814829373339217126172216880515014408613464375702234748359581283703795412666779118526119310556042524826500813344038048618477572729324620148290518809076186119623207184174698384657935300768106121598781190756516265961563052645390532843396247410950573359624927458313842428571486488240943288365422499741145033474704049229276260957269506868765507708350026662952021583968588530118751421277283854018743195022572367048500563403241482683281708680462873845987201247796662344427813847841629539875481166240113976229474596144869538632441398721662801155424093069199327996500269690560091245671698115610665325022279809329230642250778177540082661568001499721959677742021511767208021028881023264444044769002451954647097714479084923603556201823867127615337358490977083962293406214005652620972143526729849331378831855685551758899534961844170068207059478842965853009907955051181095262265015539565905759953524398577483165344978683586113047555854386723232935966904834546067893204135845736936480106644167307938325412172544139838341353774357354030941746928499793382182816206549220092234127685827066975596070494616952004332494975529205356169347677785697566997830321607842425957686907506523968974665303300251266433608425160056250988075284818626990274044204528323777536643275212933494659599782461638755848922335903724813431129796774617878547206390735988991681227203300239031549296454793054379770330802987541096873733503989727503626009786899279145305063324961369964171103628678127922061168031382147248193259049918633147673015559582217354277138115891245191351527666157225994187319460268557978131491653247522388405232510436957300436407691893779991390369932371780428966823983098205393990675500061229997242414436645147220544192984653425001264702845318619304439795167707685473792200571852079711113204466233179726726162587877641283263046984277113394311071115158928511786540113263447810907273537758899340866909699022505271603216365477216934558818229646714434503609373992307693498331549151057136450663076807260982689937820884683203682724505958218396579589083754251760870132009280287434687107699461164979056090293187461545966899224125602512127079346799724294747598822802389391733639029175165411952200130914344447456127275827475764980123574339633658845352394669712632419233796869288322399330529043052046127477824141366090747382541833394677003532876400973449227432623013141246936431803767794568192125782464872907997638097047822205951251080405102992582806010482312863091384082567023670060638612039768267435159717647063496959836473390368941696116738682218025379009772637609492146513462517319435861468884701197138275849722918188192791877637059154260781087805613854091131067861332228840750491099511460177125512071521864489864021721210025011491581694693147887804708392690951004551463726261390648897143739562470747252553408180458119787501017014885585570751968707460680344726223155151482458473994014661299997086190924714520269052517488953105758394267943831688171855770711950156358651909814947056079506618631797105454426610205208393588985870588779265119714211973590821003525106520055866531331447803228818958673569824790519955828733981147174904572553882249939836001764448483894091963124488614126927042338245972978846240712322981742330500044762087694558266102630070900369694882879867040419931510407974796651168832012294218133302037683092418988633954455781542114701887249151991895929420021506544385339673017546619193992092270428678587572071221513764142978170753275769753406331924198046245132428595286105755031619695304359869509718892619883216242752820858574548348829951965678215196063324354911593033601581351484527392370120599304181545738648695385505267967498882665692937696658217653157761989317089456150716735600424522173561895593133227480352880522185258079313406363679837587810838061511823330084171725356674271795939617907306866436683330905759138324521321200684390916913274743076104149930749084969670933877148281439964508498772957830910010203627749636886468015031471340539001065040908515549240004245516716833856016768361141811110940288148243872156731732624032674902086394162835935726646865011435291231317919439970567084326654575917554815959610466457738461698787781344791444194345467637323562808960813442188006377602787770494626895061047997721039612012984263762244269591401574321715303532950499090985232022732776099532396013941353149745215447811741916536034602261118291684639313221133080321925485711871185734687126527647769772136064565882880110619692317013582105521715591957850135812493624225969550146732481710557463411698226522725644806855249284502593049759482256980539019125258385565632069587530624589968204174101500946393893217847772653233376267453745228186132483433323281398659037434856593436038332417422489049957226248687988577026712840622436203453153639994654986464096317896355124785277004700459679258603228588894273528271639621078858095149259028556924861163901872580207658466167675206497967251939837886258138824427483615400281915660900952083421691649760763923435806163051429114725507369953713562258142536995529980264005447621505995691800333612799932092633251856117938619574364722795223564365498202278025003487855140946680615008780373370431637711439980174076905099949813322288722399732051584012894271655671185073211231088439854320515925496583621764073890134100774209507630422914590024918911774655575454441448682865912587909636217445145517453655311286229255644849130318952331472641947462151452427888222306516515049846800144282568371094137734751273899506883308171682989658001372879823894412598347208349676161696169205215107926928423122195530745904430197631898420864642576575159810546473604416001757069281512241969431277740718731417690285007895280020321948521482153062835132397907656630790153268810365962169927992287079404322407327146925164036730825363635841915277173661287128483097865879106130038293920658308276273440415430926200865319844722668662719691963442744298285694880050943715639151013508860067364931753764857049382031010393483732648326592247291376053469064610323047330416301508768444131832920154126923488715593302740376305376300470578537990593128137840860444792739945610044803628271339123971041917154082681815245734615426672389176189828642321078984320950729005735812826490353543924884369127147288198342297504955267711892145406661842810781320175936170605247695102774911032454110573676754899718444032550530265922751765184440118450883604652204779771752291337015587738192240201971755418639356581437703181474682290174171716949168834584105496837735285520755315676380361077375032343943319574575251900369705195844784199875596220463967657647201914866658841316041378447180166170545831715778739771409248363206577127006423567673538891365276998973702057916433697743977848820855747570686376078611826618282576840532614777465185295166387919553252892621707474558481521842500155199779541834355330907531690102889673840065929838538497697304403547613247041595799304616908961673995275773413347472507375661339809451030022885038477473445615763062019504188799523464496151026507757535274903623926774772684567558674265853272560724642740030058247201090083956725910424225006558663752845703043742982673289836036172612482102357141668470218232171405311461518014384816755013803484098340359645063261387372443413057274892376019205455552210838752631312374403568403917939352372862341116017564370836286695335330810799984033487310441113225844201766453806393986261956577681770448446126774575400284690072199874741690733653029858023945391147438860887403736554499782606705514766906808311524827388031378338455683982470558756256306974920315748520534123547920059449451930850923253316042532486054139160233361545028311211630986107290399094742364564195520999160963298875906236193162427310451837865159918522262731789892307004226069906022899834035499645138932229321935318588179473794303853033930917004683136990251109287110518045755339109819674090163844353318169533069224423422729266972151025300219718195423982089908399518102367261821791305667083875879472374160690221551617675710917631473064273940049163232075924080503086868715585894281941705157237546126153187813509781033086918835964918439183671320965787164408936614676559210405459020223659635458235979028899249357526265522567239381109126649830454514793973793028879895353232909326258368686055393291393721792082140076252983506408419917016293468397618659271271683920931143068778418797237844142326303098286527286540426128126974695104151513815926797086829746759975833594583169601366107336855698725278828390180486028921536692197720498756796700794762165053142958391061022699791163364813967253385356535616339926415610822821215993154000512216921798448269962768737622913433432655647185569215734410258336911643468302543278119472729398728459322718093198951935272859847891599105672977419470566227423360309860098202872744987938589670729804648542159299367175300717056634257912773922539412931799135604999677857759778759865603555260991798563171049045394089110275009545364804847067943022917066605736954939094381088380288462559759650308608490419001397645277016735289997717908409334302412175858256413818682064307363807808954121156617162746459144407314499740414377625300558955619766340675268442703352391295857553561869944739622321414665759886638489629007927054328044812792364642653750203498658135368603208299912022170695355460899778987565782405898860177037757459125351055689288240717110510366311876718904822160672888714101585005779379464713962155020702340290837325699206499057015736213630930259662575118783130205274525945561608461205448664278993542670949617291544620207085227412843931315237740128156127919931949344028205561221955982306888235175753224144315823514621312826992340854528775513033515087017568971431766466712747126144611588104518639187160717895497616990366475074670567341339352576442415513607715540201148007385697657826077287117141741042364390870308714428183339833461107589631145905940309939835013228003257505440857486241507448045134421120829296547835454938614531334911910142520057966934782395288934052256980553882878346080261299298576276555323818526552422506491878904944766159328745531975622537655583672048430478061183003641599333335029952145453391625928314931025546908923183897771647658531888783525480870990407580322821117649505188430486642004443119067422209949244802617244041805263817268545749813060806470028666194082245543731078825679460203202570433298969007713406920549838447165535619809499955364148916668948819447427221816629310758661773277400056686504433139942235829010848729694399932769976871401247464821935323657073486082906673695368648474045829941951204274277023853417888097506517877170088507230964528033564679313989003133805117225279470419982301544470396285524403857996849701938086101255535010866016599417210636430231992687697388736580220420232278841286163725839578183749257012154751961509643540216871220306139100010898137002019636109514279625479192341544179052803511754240189664128871648037913157372903801706786446194172689444570170486387159449326118993070328760815697170980866155814345411710886403929393265305450288656755948521299433688552870277996568906676385285000211942791755514864984952060933329452289262732282423563606444908114380339773287497859623412988111628029270455315011303564521089195107785588451483878961840918788979749949312657744737070313780402019365139617094895731431647319358644703708483947814361345670601036647730950042508552044137805053663620564678152870865191699751892106616615485145377798888202023833618346866854829228551694580714400889870924810367720955015502230955855424044443620174617540360090554536923842163545832422160636519709034430948841617440348890234074759587176387191907153760480970800370427944787813628790567402570422799065003005212280366159571031437393461158730916796897630670428277584818639762763449924119499562023000405082230316545502652850271803457789572381542852609710896124981546044734900686212364486710281453755585414668144950833488439784295775836703785689317441765387210069711013264864155329992503987172650156165349296596816509172902146804747482713654554886506288051048868005900668484778228974963259042465512964511953765841387178623026770253160557996933593980279670919171924426244368686701112337908956308727888074499664489452736916648076743909442730016132778116730474636115159032739637455923643937034717029712007420219165037092686697422733470179975046322359975211885004745666811450997085036173274704541624809533259219048801324005518556007345773663203489344506094546780100877834290662898487854488931126231322691802686557446222582248931411753995508716860786395389580637016778220126664109812583362491932510983717466800273856007204846624288963611362279700607191510148050981054688076776591734295468084139730860901004410807909105333920778513762867057137512362552373255604625114170956802494227117252391575491105102230917813532357615569310958039216607900284409647403564409881664211621121420496765241529626553318021365061142062406474646118206753909697240212000588034178475536537257486911334923758310815237748268558053156238604370624938444018836847399467954379488498114223174876672659047626190644991368425447145355881761031747815775614791105192604618431334273144541290061874147806077811529069823134123863854222124702720760686079687197780893124701398505189760498568036141690166532540163938973480447088499724130597995302839224775514706905807854918764744425199750728910491173408036498467337916325075357924273314728507441109806018586449451381107988324031730160427186192114209083588488521032136305431738083253702422412812258676705182018234163761969450343585788341648415895326784813430371614266864446262721641113816162676775869744961295068477290823984550018356171688415356449840923548363094831175950227734923410845821000583425670082795655041958213969797733317578561410511960388804358306184636498661019632496440589495276258572550668205441195051826812745542589850592500672128336976558320532377763066621470830237103800937457831142227038952491588094690214520033514097329002759798791350684025621882717922589623866991427606222732867318337311292031456278624464794836263753172672908172659209178395249623082830728283486478945759148146187808444542395170531713452031304798016114024068516605356505650406161826816494476033879021829884249883665598348073971421915880380269074866308865405860727443232996529513620930391731462532797998012368984275698552484771228560965768355151035964845292131394297251049963102350915776977504773038239310909729700023653414325683837546360301937157699670379122899110934601475192535951991581464890342029554792700033952648322783651941403241903065057690026182208700009943993495267351063588984205649103854965911331071741120154169521150760964376508498040722021356485524421688084375700271452558036493082300600182018129464963180835317696834415825116189645913341391239332812221343310642502483890960737852724423783921454970832674607212198002240744161992374611434430636881889757419048543779120178284749781954689344096220274770062598633849093304241265450449252346749562389571382842541942297341087166025452026427518826279884898015249547346916489422585248657830117990795602483408808264105267423378593472027896212058146203564566355911579952079721150262070102638119966325775207821542812077422495262550337499001395359959394383550677753125317626189482408573533867080148959209603117200092038895798021336907897735836028473888397610433574478089241500118734485224348684589777165106965759351823470281029679362377332210176109002380661472508338920940624338839519986250374680860193432082604882148543576359808795385889587059221450277931165320672349676108914945564529637465774409003483431357604201911075176343511055912043213965402965424292299774281192375175862718301680712095355757036461528006738755233833964576311181618857660848983058314752708159558026298388474100033025551383171595200905213000680226556491316153125153388469772656431892319519209518945140478269392467039771845984322157128595195612849157324243467782410622860770490634691369403189711701221140165660128728459508944461847952050987629606884941027649785160878106905816085237064546905992465906488927861732500565571327612985447722823207674279102152423038414879237972063746686353398063597893663993440628643002862854271148191196748194797047035566474075170566853559991389177024138511886533872321473415241332579818057565522042403130809289418958402504830401852778393342780416117195741473746348905180253982567827941823894966571684904287387592157308448206115410751796167907838480586551319842131729304850561740195218534234993011022642939893629940377192534957571402049183631584845770734007057547347378899792536566915970375840051391739258264596375980035134635156946535696312659854045178577404564547778792430912750923316332315331401746479961316403724594719523577682452802205077264183009222894598146590860037351978087174905850329782164410912043314982152877165184505288000656290140856312647551215351574794441464314375683188030942321644883053407658735407705628184488545548331686447621994646258771772902653601490337475717204514242335157503606602392873953464973377002598223526393394844663095499241599048692581612468933105844407474909446965364807090255422479070515668525202064011540186247244773431829283802035148960300716752557751895608266401800792202602085726429808414565560341986599876118066795925300668107584128472556869188778240164889379408032790114869560751158804487964019113573740688610543780650160853368104025870609368610903816604992052957572502976245585943800857222901051128322798851698502384431562673867273550461097672658144236152230945956607174674610193631718564988306503980570623094692912296599933347575616730409089203791267523278800519284724095042138279133748078106656680467914790419861476996278407822732283997549992760668300946291938625107398132117931711083651926044728371398041117900011758212172670062003779997929112370872769710592974999261720851683249234994858973224490905942746893873166281828451701266098235542836053047178866539508436185414220855261216590289663112039717998013277854376206809434185773378427573380197268930631941642915911293957300926696015802296534748088060642854976986972580866199321473096311665538430897072837408905749376657374967516276397104230955908004409477891649577508917360978873523782628130374343914311778357567031476941717443226300384484903387266899481444564408359852614709108452204552521529452460415702483302208440161324847856473137166665706632500665450353710783640549592031303401137070466326671734189010972779393288244711963327473004145605122325849259601783951672704935779601890062480019109080824705986179729242004627885688730352514647676345833178067935960842505781923588358215056658296667485726243385398331221790292386399115743048273695635392461067838198735958754130588310956904477052642754166019905635709689950592600316769059566077318528525429575773648186084573651402222866550567890849742897803083531799797569232790894676449375942795264125462407402440506843555016176272447756804171792472233602687904258440373071568288595492157126802519002326473376325326304866752978324022823622245866693875953966518069660419363378542268719153687276798058639071254209799487013312754708375113319214592044484242767402913088097862790661467312948300280322899851646153914026202599393985232538064353315008073614728689612153912546483538844039664766595822990179089062083392064104965035667964214831785983738417755902616129969190410067872846778835400326190266254688642814231197893857645563403539398592230830238737802475983375054093127065945447837579561335077660446621356286551778967250545547206937391969320634249971794018684688196075961993215948524646879036641540534706056016151210008318180919898823285822364941668294269689073461721661343068181001417849919121035521838879984588890563774276008513974922731942567643856482687014866429536621990024836289207659291105748432026620228855372559416962965090358737251422770906129944595777106178638559601999089829185884902445762304627174192863244022398510517815017887952791222877666876629122193537150404089912983460642835603497120467505473503182672484218850702649736376933254837578215713730385654638206727097523202896054506258327974418380618925347736104389900953357595940701564969446486983698019369305786376563026010567933533302143700558379234426309149289956310595183191583538250908674707570876539949660384705247098077241000270482508851699232285753098200852009008937701311434287144626357354088007237146523608702291967619357133636767443713600999085405479869994143979845812366042989890688834163798357487281473985063848766256287100908253969061090762240775859953149404770301965748204766742068858741014630701594158936025157254996035953737663052925515811273058556800475832991460058562546102134593223380202425548184435058254672467259174011041534836392777981457061304832085022010369091419704808478412257466912282312267003473268231672929647986722170975306206753644372248536765831561535754146832490016671318514150060772752567649528064097231870271043235866493795988358466899085601665940074024711285004078933047368349789058488551176413746897579581965329795246811604929638245988819817826278208836930304885088762822991156963076949412746892023523589214276436280950560960227513414874664771867781392749813719396864813283363938091555553941740583643883008026902581634812066902325703835787264284637153512947837634127793769844251610694589568322560164328410628160491494748345813421632145425262705114582825106634636339469722615152544600537507502686765859404424685578407811045713112765802097740740224030342071647079204604415442026638847048976215951592755652387603995745819357333279870605852899153896108457082418406078941675667758262626234443847548467852411456361647350769219174229111609004957022245322745633088808484611503728202786371830019470138034792382227757254379275930155410610962613116547451919177579617366388217589769759992021729022490931619079109702818539328620235959395662820446639956033398159661859329002844038738951545547561199915558192827496006778310329098732716071732975197022572183829216420778682349609133947574318135262861018680328850831064146287480211245865950404244297868908320407578957542464799885607483434040662690533881907356145425846065899100259027758716563264895494205063793137074074980816767441797929156527617498363996815566180015373781896970105310068787621568524316686125188312596683733002314338145038607880827891368572865042171539487637091213076996275268629291868598812460230546100216438356327930400599530135813498037823923838701925810168825777434910780815779644333394026118832604118282673869323488833878769844241738977499417276998199652508019713815512640260628648922831803160036379161059969479157779312855369021438921352764738151709802421281760895976808168756849294395910829220741152063995542149386754011677764248591313798112933964333060689110963104582624807101860980484932227701516251065693932733132208569221087942046984284130435062675140405640303785676272395522391485822842531907733926543944796626859951064510858900779101425585154110530316057635519034319950617839531868001218186271267343015629629967874519305067106683685719724120273285317554965237512647612924397737675836537287891071083730767661970033957414346104929940443894236967071095284061980492413145847226137851264265753840056741027837798484772904679610018980531671013336630890615085360276644311180146773475696519603597160929071171398484089475095442653489539357621820549989925828972287575370193040182172025801250538753762766851213503783145648950477873813643322243329713080287224886520597816046287717804903815546438962714749236165247028554802489241292899582194882720573123965188489403060404662375488979786544862822158396803182316734780887635730340531093752835311385125957321983930731535012470571030846361819969220363292504358073991549203682184748916019133457744389605821078883774496280474205156142089475080477529997874346597869602477097710243317154241055116528809753930824900065106522401528152323113363984207878042246282345410801825587319655670157823020160781249663096966418267444429705732472333302647620641781339751491943426216079473206314431952174412553502745272439391348745485876740988264210413620572200459310254864129365237783835922668353582008488067592792379065477932630358449443786207091135428578485142354123457259818468661496915594113369834923992544250664044621337651567507308270417990768197978634050878077019791417170387773694789563710131702614952154642152618152865251986208577864546188224452909382510369144702030385706917982212683830322387756938356112272742579729389476252304505931805810787982744860165173939044850827767318246678804410758763180006455927634945233668489102061659647850807289780982409388024998095849216134291971078804637742171288270426599152350887151246269018375960554631359471848594166383939842143898689675113653693404329265745805430528058390541495339221242965698373582603973887025039196453607399520093047595978942204204925770885691696899686173900124225578005328124092318954676850216459494890236096279684883893058791783866844265754603747761295272559494452335079392807344525290266837837376296416261236024021691186593630930915428295836302305936727002432546055228892441812536844025426838002350752918338350521640260534293248746800290233083679990953244189970449142123879113116419751266959992982939801366179718499845719565639457374275588829788122793480437276585721097019857956931665812511643098166270115248360648839341794069616525843496657700842990101939006562487315507432024142241214692988998025326911181091048481090288929848090853086493206437405951420647940204277228342088821869200282096052078812596690451907853214062825976111204314173020287869621650713358979717552744189228436026354833489104767973017784962166740428214084334087807063612111377907582492841190366064922485657493377946367904893061100055469708484627664004404334227054288035497321443036027811276229170323147153525151331086351559836809434973574647449242402990360828393536071062570267353371836111947573829432987920773655799715505729635026181717191466824490218498190807139334503290102835292511836998689166174440455421756096667111330917442063755438920973234604959427984161118914575971721760921866123134528962378452556468435783740129780266822269964230573045804914719279603123008569407812263417862530769447294286140939251708351374159510095701460181177943529928214380987838718166127973421316885220571462918247649828267742492393196483614586467528042813829006308780647850523276026041755292034664783853262313083876889633183004616063627581086565797579770883661974971390687486046327398179662938989310330576875257337481884712623741147948924399398713690251740209784442104844785884678606626905556736892367062329397491249392438348631551913646053393475757584074462725832572489774189331666923892960030148317364175629093450311831991733029816576896061526180901825903642006211397514428676367607810866321229928961869607460411579851119916069954104728103302624557994035871564713118751729844584570741961405859019505055460316413866106200417937018673893101591725273727605538488557612347468591276156966268463324028005654788789086631970288364063718831396947351588438445700772072105414262034825370044379740421626582733603318463901321838934397241191889275103241591306232346780286914155533890052903162480354905728769505610464875871370523141354283150926668436429284238819086566359465434253173222295148282059385608619461727472284668842483292087818439405744425351400393324062209536029878854138490592764946615329701989610472315829015786549527726551623905242335527577795011318350923653383766949963914666904596749699091300906334370707633081923923678373854330378555348041843305108443034888806046479663252962310641432314496359267699761858974230319851526965619400666785400144450136662229786755738372326320858437937734467142239929727410128818432721936159783293203536119688763778980732658659796638071964049197327939642875565351733183482819135841772405151790680212423913956660362292423515379690053898595910997647790493275009633193788262386944489028027118551475134880509380663094241211871930923956357170243760310870111840610719326820616667310765788888251218119044031921678422993981566620265860512514281856669679774462325936153773012060574523746252601495819437751870922594112778879705094018174625990251199681382620261882588775281160838566105501786048173651704350008516451277196396197570418356519358837087508203623034225696004259528336266846819401815154622890637070914066295979411381703843954761669073695313318521481984931451079465908162956786084941769494486866598126825753790332628425105998765952686907411648306785962831953684460513786759457784970474857691737855775082631979427615868179424559805042137106444384754146610808183376676312362103060862496080703822277334902965234703879552817866342853214962912499998422973052817302979510809133770971292099453480517676171242612619949429829755863993765039471291293969193610737724165590244977016821292253294921320904047442782722359361229789877957548806912901068203145541700656575732766593139291465091476456133801909622967508554571062248973468553001694858772901956615310826725815687832962778740786560603010164370475384071711404622868818214505665428226819160859767414823004601821200814704500573307047447890328919397890214657691193522666411520546292789092420099895672635645511430719255477743500377571762649746067077112214480692253214997111791263343975916445634052367178947212406272286216547907110536539947871563704793914080168480099983027403685656533834457030537810033218255638020373065696391093262005971697266755209431162432790321104864325391913097316240578551252819518846127747679977895682390590027243023586226333271514952627186230215733625811039445100963341620602471554572908316613017455916698594064929514335017319795773605834920050311240063632245979673860061984003359687785378553224434763376440695824913709385338487713972615936853268927549007716207170947632322498221979091663089048822742461411577330042844652198838063501994368050777086802004427366069201285505296950369170042782721761402009617278015471415408855046436974722804525245515729487133147509173617952414347343236233188807714843714578011954498990953658421183435822235323193778151292049572809049388900834549604706250309074459873700107095853561261513047001569101490602645016855118003881355423485766251618679668916866797350779915448767337396725346504288462068353771969502862927812462036563341428352793553730828251641168316333699033190477708032512346445595068457381247535868671612980753686863363891531067218448950649848077152054401025752489945352625868749599056809103640983253028903344790881063916050458155754442119999703081917809778730827244377731886237941079739589031870208330311491777252658464181204231554345967317106479125690033892254882489583047693697913131263835292067964231318377623421828754310777860471964493906740928230589456885746984551329345992855172757141841816078960908261701999911769010249512544986212934555651709431251334223781453444402196970340746242245801294115159010522301649685463480089696477111936945921315057566507307951480457504422683271643677438373905807335451913853623344508338013876701385981944404288619235004023301398271000886017793771899812480803106763150302264027543958165940427276474552554989300517475020313328223953287428424391070474963807769358219829980833640923744545044475797962460959714825413402135757874885753662452163948866456651605939229518942566713944437779000160564584808017500351206460428003662017346725457919022993814389129424114737039143897683697434546485385768196528322649902916307246888818006740481064773379526970401463793429482543843163564180047930374937004292680220375708548695280517095959845585106820603716225778472910207992052039717490017430700709862087364231561910796134412412687105498214521974389195659470609141004930755658083284693531940131572004347789085898062413460497110143981789139272848388114722997194780571679760021193535031549890047455343402918500302062372698548202164120193248986845004744699916701380671409723298810918835369027822694426694999275091254305570263645220255480690523350712944596085165092176907110437366382090761465550792344998424093815238871869530702207308661761824311192313050835373590647228963889700357930424610824523452917796626456172159983261500479604474117002935198111064209643400673413994996908134512555337068890726951907516300286028486125134250456308775692178010616319767207142702447071094787270008848896605110465848793718802644055043773488999026718981051266053513552325327237588185591474304698793434542277334555813459915102042697470031993691165087480960804219150201654509910735211784928105978050534589753847347064593162150451603297148501217197405851007969925096146327453862318116027496971381420296133123824484376904075368054351287524999782101259757026108422028646820339980137697777001182023445643221613555234588166920694877632640107618928092893218780519665503601541759558136085117868055510755372676443707124624420353258701359360056957629367657015428151890544115206925449319905648335836715398035009173651368137334383109498176495675198762735470964169298607027193409546853871503597079494282945549181048456233796593666202941509036069911774816429569600691413649300218266730213898872240934381401811382797516538222595070301523104770690439560210688685758697136782047767222155959221557158261995926163022996160584231175812917533619953972157061747399931736872043433757097270958469424733402601993593002190208790889733758118816626347489773543574125711821756929135092857719444204014999317043198572795146041824728827279946210190280014103961355219387744262790353503456596729159691384077046754506678325357220045231328764324616680528045369046537599564336736101846572494987733577397591041649837293808315493335341552528396220184523267110720238605467058631084999648594594259928590323626563785013127343618352213169182833937188085813512016560649001624923289343234653783195721674694829580783340046895840233164647491772824858257232183838544455949042054214367952316344555846766056868293917119402181978889592442722754880681913887323741951513085175781918691431741836866587875559797551560663582668047370395286196656410885166107219420180640147289161635184814363401319742327262090918829853202886746080405217994033471156306523690210655824247304411748510760607139536729590536160776018834126023747448901886372893869812266447611989962446470132882790889252998637024109538086824250849201673946908686911068128111049558234120949380268308090439294591008696366551114879638432476434711205990896102588619855393962761180704174315443719635915541448440519433956244331320391555670791064946019081780647346369685890840943182943266121480037972443639922673677101598930441066895068736029180258197201002426319129055599537699409144620883770231022371807178818473375308637598028547610660128034981126786689091545420492310129590975991984396184645568492346670966934330580652138293120401442138856555491994630390799661518313701284795293332124809466798027389391364271418608598452364591035639380112034192251466907176528658935333217268747432424098333748238707664807868439000934839408776804555152567689414313541403632090834803195444845819272062447492516576085931411359892051182304781100647000720570261201605087783088450114592540161308718308458915664020738816865808418735902564620982723150742249947068795920464458156099751890544992138330654077152466167185002292095687567273593637962810090347719334076175591012051361969948508875906801523711316047826886630343007069388958059263333037588190051997116581830159864235284240590539956041742669223143855532643258479045292540857514153776622864447663719092861986366710823244687851761317560032540929938765657483992226029146562568659721790531107794025608839291986548283029821099050515510171101283341853181606891560451917751525514461280807791201728070904816053391094295188837994828607337533815039101408463918311701124982649920271970694602815783895302825784202449865304190125020928180602566243063970544966908702220818791133175196035443300756592470731264011709319078409967166210715507752334391452659654582351514145126093612678469602166285655200612864471168972501478264933074263000459363653898260773791965974407657763157892220333130686330647953297011182685692036841097878532112664729629628057904274997242339514845764078677347988774786811608912575118861617106050881231310497582024077422211518581319678807860923704981188224730370686900609367284019163331829637663668764246237141347467284743375631100021057978138325769171041179940027706342353381491570658156238494501829958827127900888177869076683759104858188610308578323016591647688504603541038370786271319420645431388645654533487830368853411146426019224723680242011538911191311934580776556843407142673713634970489807953345259020110354159687128962068035096161111737589006866285575869802489293934364119509181677473168536998769530736751475601913587629567174102358168741638205132122436287882968965399118664790307493885174414035882602222471179681267051432894582583851486225117733234939127023271675142716826089339427094387565708389235104738582040018198098346622879065441628842928398958544200349239697893133866879263342699855434630795905109333606513685117157300109929833612579432595036782768505347522201876555928326686565251088248587525912592781979608774269384256925479439557990573186972311442311544781701830407774904807636283652561209002835773141661055557698654214626316626813420927756120577138422113568554495915950686586598803862349392865283452570982684526905172416657616606088129427570154442837191107992525523527789566621983908364828253048225373182936078706478257181691657172697643711239355284597596749610597439950707158611119598432295428705198908465683141108119188200015479277272482789200112607553857985027204995481232005581196732073702618467937464447848863928848574105213453992980318066166897846760797909686315423536824504150239154415364142407284346255493245382225048251180012353821059581044539403401846866222276252716756243074790804983344838362629525698657202575042835747630462638917148206836819272412001569417569166799922327107264063530615732566252727310441726735611423179638143527687490289862833671668168245495208112772202241068448438407894680001232230634216521132400068361154770829558748668911771046037905880619973291815625832294517159477486379261956763879842990451987454712746398849915038853008223487090264223381726073179003449675812380449885587232109420296858623799028330141047387005787219354560269725415365775638537166624519308661232489555161841424888064170348961995620793757834087343305235588938807899395779877702647365833948989202059609164418106142368316764060700470350611634709763122943395104622529689641709060826940368884484195874901496538377702441578982793140559711561262823809999921720549668112569280677708423780706124176484884839213255363729797942612979859273395426117689806488224151989492641580050735583117584752001867024853553184407470645673020585626171405801506755810591207919762299064376684911751298712494639955935092643205007801913082996620964325032722524579957604525166831846822969649775216653009968516564401320012058752532079887886441293116955383847978069956117077828671269272646155233673243229512113382619308999035284850174843657821821841148021497925212368357496103560559647362682363456877729691247195420221245904633681231871235833180750226965218266855545819019358601398212015029253993907235348956524655184872370220418647043113556817585863810621408405452903410500792225261823444959756902513687348072803024247722621293366096640386422921763147276202944727631458601457561632674606136261373656716650794318967979558616835689065475109598196271101218430715994416172783942767870608407458916055887988030504122833607944194526254698081854040367504306480745897748341168678181393679157037281265846773894392766692577232971951602722704222721952331798814880148966563292438416897136905809813681541837781529234575981222079688055132380533984063579632783500327997418828389815082643152676942783787265666389389332839585638220043163964096217729684917204098191305017184273472775399887659200380837841768460244546078682589692628632789644271013572612309836579597984829227163016185491925485791758457108087371330733178820547223756937543373878483869036876059715475182659141613612220483250088874128810250388853758671296811515333185661903810643214641338713793501226857095236059694065082722676955862069729213472525412338740840764358520819432879929303041755530807537889298191424739220928481350545713440947413017415248427652807230541591897090727850476146083937436785246684172049256537725954333844257236198888195522543471174652419489030757751393302256235725340677848926008797678701652137198716094955480873091305434602776863874512445757995220421287433926723453779803700784950807662638403697032276122607362487167420942649496539595102977518402325173669011253188536028058374265450862882164360132679705202400427336617051047319319342055562808294677402309961740996023905940344230392002450500357251477940077336720502419497443179853753693029830178296369466581532300943230942439981438529561562578946415479797383494614911591800689645251875609846574441339599895463013774738009332925317581605556110399964778282630920774484796618716496383893541493032366813678912121527874362248772154639804103254875431881408859750660048234122310035172485253883734215161858831063406825535464776471841000855207894335543659019623770023941273040964847347584062274542468119048054232007371262748797935641155057185965243078910212748438241961632592666241374742152506875207310231064754339505421719204500224403381389996834050301800929426848059435633463877152802057123528576160861354708963302574254876573502771331893419187114369768531815386026493056968277692187254700632384941639765291431720765931754006211441269745619291933317280135728391345080968676070188865133852425857572970271282690175405350264314061131905574540160672739249619084731937052630689540755618587654128255749406723923503365299552329805637159705766135133317999416241796815159900348886190375905921518960595570042048412003553370531188321915817787402010662303608700714857289757393583152511133209455288825011546452146961353327801240940892421977434211750548410120296396434731658365901868559883116737857738722303610642193915051953389928011508236311270485335712884109672946644523097480366604844268832673416555927033440251313921487082234432246791120765536054402885734575769485099651313587753703118568540552217103335158075841039536318049601465502596940853413761498072502614169749507131648179841889066902942313954507250989264677323921629834016990252525938849938624315897156456033679086836452254045690067012234631706469910638452300935035241281282064202178702382041041641712341252407641365282096611569004723024053798752895184936480933563601139255951000458654966860579946910512529840226361851153703430508212506204750665301476904862441748040608036145192337558853277453974006206534042157191623857179349657375932628714563678047328365768338137554122737467361477829515572443358102699331860035284969407079873826469092498788747084212625482901879128131410837170888766882649473979616558261841446828539932181891747117236969117799799015245066209448493422226638094179555443994292323347299696455211317216274665289998550149091815846890608071677142175804707352571659867681120528248355919969321165164328413663644222040461438185493340207687356848166359997878675071254644976464481201934471605147697795022636413516362990171075444161682973765530294156958413684307275267480657881850933314155032572079887485160357204692667348918705225755450129591386624684918327288451610738346710805787051022726823168666335279791526465544515081059304006963632588777518623650372870619465265229291712786836777467880024586719553566251366602943174713172535580437846261162087635546556644390912634476639580329539553923432085100522877416606796619193312938992832300752935645847087076623373254679140626397937455692291562088448881870138176022103455771547300029908216314817666081326143182300541372279591327135504582656167266031233098630260323474114345072553185339493564355666611562713384220922994056504367146095299711719816339549296271884161430387593877861109974308914973622035078866340479577365404952132010684521601771859129400608583425632824473978127122205351340228083121432024044132393604800718894887608487417493961100900732857927950816754261599169825155189820875378806889530425481208960884680103576503441094176558467639083121947758919721102903538405417683585111776482024500408004156547631151386517669292051452791213038050324971713521443502197356565277056395214287838840651507494448923517589746318477906119018901240348445846540528575798377891333352267862608191344553321801517338534399133790492408916389376790449581668034532693288129524845237981952288401683207014929415296604982065699742089576408240833819740555684852704165704228660920197299625165593122141546091819975915917544450908632453959777489122845965618669475456255460002927196945425117504901989893949020172024472089869990990005436675872784084071528737806808518967834776212128190847080799265902302214566164824458615759541769168063164716861223567160019759353858511540036252218066267093358499298945711763240114271819137847763504159582221374740744636768459970956797238562209057404712820788737891817710077731602073974745255901975234085178257590903040556792693143827089437148541057513243942197673394199657763554265726907641366489584552019768492647800973001393562010905718350625977827523369218779580816535673601690987482844681340806415168502656854557490220441996622171801293240589061482274706995065779704359399753560759483455521871303626375200115111484821371519841825533089939468160592272405926227853064369545443812941663476129866381789404842620336446381592722488280680673333116307270963847302152698101856753308839728102172260644625518739354035046747536715552472609726398114324985239063630599371347349068355718535084891226441063518266889917918669438861647165574512327765384974037728561285241865841611675820839105844662061788651846670352640684194907720894088414256917178203905491353238621588678737281738517735888052431140310650645415429375814006265481721459739321882478553108345726830787461723941917218592283733157620002382715743808083454924286894847999919868500115445172682952156670550726986473501926608254149746029174112142325046003511766459543008702604800088059425920564745082802441938052353793721793986704411079158448374552035584578311335127380749297241054079630031578129784751033991946942209023717572256885854405605356986362328101712856822819193553090344813703338101027234580802430987083995625239399919907467983348678319807548477233345655307036503503113962516924070341147459947452963779149104167112278530409307727329143733589730292930018128859356230736645243348327925937667880063079804155518382312163979893977210049283652028891613503691078509513408129014142931914026862821218621832339267353167189281145283662807393199055879304662423400271291807520250971623930033685116419846615421045242259918344345156396505179146783885570676111158430255011566016809142636957393572094727408867902932898080967055812635157819400938675426827013056650930972100414035889605795639888610840625859753240745020067063341567938211459328177105273097092800159529466014821491103271328349458198307451591483922956381992752501479665636612295687477062467156537074812596998938754106479801124224853805331475863610481496166091381858737358231800606942489884444816993459116387973053589893655722198945991909580214569071685744381836963100312695931258866546206505663862023864718989157596373343925150327506761390349270573502481623577481021203998529600545194907009707182969548808094061023009553174505555425407544222907087501817064973519256658905591321227279222099649662942988504846777761071969811931080933446134724734300655581124007530847596134423859215276513460705271273280477684662773572532828345910216960779185098705115293306927732879971906772723099050072497842314813822399896791021749988271665586785876937901328376013751659239491227349411535033877355736688168025011942435561879895380711304018797738550056546438463650438062069780980897018042459296258209126611189208343488000259225460608263041586033675013053656581045463516296901504893420396046635640427637611091241079218819088556668182089122520541868131187557708083334065398429679176202454804739031332363522214554284087321815705173737650641315490038304475717381426898339379875822355211542828088585743856110242801618085151822972242430494268840730357587548945976976834319303010956205053052493337327199437769025053577475212085532664727345357379827635705986372123061615598303388960424724615610766319467803303007223466283995324751159028795355273103483323768278645445983447078931107108254530427463645450724157551393864688908366447877553130593607631897388611003866390973733502775747534350436095793685131256514419425560868672520839108251587754936109202238636021405227534503994365399854241308454607173924701675377544430610199530875111688826463704587284107502546622668977836279918070729368368677822281881615194563913032782165842685636867498369880898962000412944001047755930347443126536917600454930795411258001988493628610193278749729423970057308881823779791653521702371761499122218506422352810495900838199707327834871594115231583493766530084503414806590781930658964904789525363331841010158808516460789099570567319154642172105320454813153917534901712050971015400732869674310031919268015007246808565370162153706873380318278037246038973772007133800292560191163661037027045110891130516476176983855974506433044136688602589583959296926709194868552572343147641044145479931698183306373936486877435699868073044852836272835178202557228322434853407149393315278069313581801182002895093927794825093870852563959007600505553438917994291742904161861497489041608476798983926256566273246991046281995830223446451325941567299685599095136832641090228274697865189149525588371184139649454465267785348598076646152451426733411158160106083237367903641264796189643720729607048769639334498729414668767177452254531124038305372841488265975350737448111280894760054167150212941112852711654263767047445243479152632328884419997665102824592775574587358508442963450720733339443018843660153494491815536248627736396385682770250245380042917918130854650172993458431395288832184526346912169066730910640712647378121351509523554721249743285084072753309598968165123511714100090106792906254891568018097811303096076129170803017193186314777400368017810608900426284141670949672568380661620063695228952545767268631880077454695573442420717834309035280062740457058150463244918946024894925091171661415797241359576465657508080024778638671390922725937494986499490403578987195880846840059548545366129093677457649448496373946703763592469223507059334525014744928053177577688441651652768686991356780252764477748822721849669652000193774931201700945789341263951939049042418892142712190638142340974087834193540402447828621252619390897007001429799600499148885936581727167239348718667294600803653180843442678843788607591247138065544709596218655393990590373835363278189679517588102921425463368745748141541811409716128775855962255495526322139255274788552558961673073086629834251018875606454328787740264686529999615196241627603242130548635431881477617132766723454084321244266095081312347151384436424584540069336087643738477972782504806697510685440253012756855360907378543334449189235843868742494639548071144106874984838470487516573703071430056541031357419626183525881438793656376559813997285285176769169444572622435368075319447149800919719663524202230036311175135334294967341845010848177827021512831418265106177950971835596352065595919394014556954520757388971057637243300570191849294921695685496129491738131889999774146292876872475474189559556241350545918129641985118101292678039603516215361176563211235363703164343163982312588675420050038043344012635497812302350140624081110425783085776402436042399474406363875672911108987982901744574926709128502293291669846838856129074701681044168810500509619323958006040490908856166043154515533531572459321325092665000026738575758126347204177309586612304527756428074990723487814224756510087280917562589622524394858601216669920591940523654032952804227908063891544205003641746529550331574757154619680506600180687717553092038629533561389683877809582424377739230148803848003091836598830076715135596353809795001938815072784836207909990405125444134042333506976286660265963801804907269583564762670297301792059146065521341494003400058542068215037801333182575465371611075156705620950394473232997940770980882366836667305393621381391380343125182136819023054508678370093630692811430133792107018917522213312335333986964088092760403806518681537819988174898585213372843794930076778449600745815850143605799925684980948045847521579880326629238709459220447641839014616469484553008222076877500356124100415011523507224429303197402185503165843728633539928985283694445431735853584792152964763463228110495791398447346638501398096433635341101817749036672026798184547425331554737455052274036339364690470703618475236596701238463901989677924491387241170008166393146421614538219265964690818425832242124352269237688133759167258286256875016290056156293836262154280924924709004247522229704189116487042504494774845787208054481105141236990768108966894594376226766313014262460281264267308359074563330429426116921625001128624335115025677812319887142930416159564041247468647707077616781315038355331214033458679356732199165481841620186588765489330704814370841620060175560574636765102646741189792554511376322223440001460858608425378455605784403411953471598933575191698956355279195259047616761568589069854673390696382006580188293761362537796905198572339571733204167236202668213829551049684110253069248629156555849267572961282533057665951771008223739713236710402448472511771532614180188277053664283925493365578833431519227234238253093430190556878126675977430047882976134890286182126689939493834071479958473264557731428317153028308047265071179605086457445251312741988336631960730208326287521256451936623314699503596505662489612968496911985048276554544492215755346640953722994927223776526995972977044270378009970752689652475235848214576694431095094873538296857298350038327581358274359348084879182487985142463511802686108192420280019201990266646574523205850158822232631438964795232563656275323624641429068795955347305402496087277303142515126068436541690343380638196177142292053027451810673503711412976757650526977232664306241478024031891432771776831809570351305332458807676312688566820048267613672580323656515559379559735581493389773993962577239074614098347946266540598951745971683190153636025007958896027746372642968597950910223466261371571508972647017607438905191374386366964519543881540231186613447510227825832397127684503008525454830515522538639140358136313262764043598937806759943565652195783403186383487091079978213587650200796626810779472334166674290820639778778965885449884173844915015206208516868752225760557708785510173931466622685689270771951279887496910172500429043904051496634043525761548585474196607637850246901815654914948737154473237906197847218218315073464606971111593727969575960875680952054748005404678462619821768835489754794768751607343416255944170205817088766679626460654877392147114938595308143556782633628369635883138363255969385691053225726467057727469479184266350289864480162798039172368877860552632742979002733497564071754640647122632600243522866143807025769043928090684616472181452032962019060480848246182039547250686860340549247904447009737888563297107711239672227127061144188453521046572526183865185499069871892789171679178927560491345346962854555505045482811114922692363356421711052895892674112760067317307554188415848609119503534535292759037909542372389448665534969200322950530904312890026667993055441367766818740677356478532091464650999795505790838257846304246401236564673291610834065248213911687772689625794104988193698614794507670744860032553605347434506170481918660714244674443418287769876605475303518118042152644793505324917225665938737232488836561452980218539155863937698502906034666367633828019473509357904553709876654685076382281896472541236998259617465406176276151678507505010952299206631125448219347922937226898060770452726190436810126245665305559354581244593609710069357897972669392205788283343509718099073912254440854591923119681133042117918922309445060570163988871137200071004783694737023199135016025163431213626666784722499674209227896612760300424953284614476177055187007064326238691380560582560827353685353393180743250897426770004619492134282858816161879466719194162532234724234145370323781017026355915324754014980046745166297902547176064726000138073228419998725323589991453834481807999934175391199931064816224426911734754888219162613692102402536670588157751909006706427807288665459482261536364858196330150353362706261871543579927168358552395551107250477609813990529484029887761532698993494651005771817920842283852836752513381955310512813109623206061520169445312568468757590276882296987523112428215783021474803886212443601189571905628836454310178612102489688440113597740716491311503530875419847360287424733922159292655619882440933664046925028408428303447265459010272137805231962925107159010059573612815626666975518059438354199872238535487569902269850475999904440130888076759363352245429142704487866121016333620656514030898701468966021195928529215046627588541041546544012256461773202234146052592426577588158336003548588569103989405688318881782370521831971145585628402395302504480911284060997827163952888727082530218141024102218079994008711604890727288901996662052921047749400955687153123759269261915768414045073219751771905344797491213472384748087040525969001844303958477821643042437945374263516062927014549762299255500381170455169876359052336395707215221562798120466626316868176138169940026926337075489555050485886240756398492902072008260182663212364373557906094444186996384464034795432286982495557656111974755870812145854059094020157899585128412267785139729432262868498070898786203022232589437947323902618440057619286214468634487676358059710941034717155355904691184725382049650882456400437038557098698216278855088830609877906151611246718383972895314987217065857601831584329439080398327321530034779569831497549342360489716940276946927584757752205393422524701221170727852495080867648500741718325278697171398094494098277174911753436164752342938173814910237392228864898418153526430385553856432204996087910723064655075042107982197223354461673223985431774809451331302439340492817521899182512390600655252669130373428260883278252525589331573864672401606757371755895269764684599079483688814802204139911758300978812808888804556133402774962405378024901470758450507730112188931801322124736273596643555784442848677277129131968710313811386220532461597406362558342345131691720896482873860871622619353467085810778472803795566247891550818725548325260262953550233807824685575569018620716112760419381047790838503988620857662963761290499363114171337497301105362206908387588394650854788128646381482013568152559184256717348420915154863174257259599557475270812614577197527796121832494250003647082045446399241021768946939331041481983928459817618973928111670237917425654541046808948434012189301397474257425506193225116815865072504437201761162512546893503839146213102448748395967546420261114215460727022119996910170908344968498101845618509644739462905377786142157493330539900917767888548794913979500271706286831158504851266076277779520810752083905954934553891300073510809292758283091613662827865484270371131765618393487446464088529211473006494359789981112154716691818190854735975424288322928570856478625017940937094401564515457071033217741850217765114654245046075479693720970503504878180341381805522731630974179473674316711720818995629656376391971213685747023907610775367653389092305699181280061656570076118474396430268629194959504677962198336215316072312286267583533668976163300670190060087013758993968952991536884541306745077745054642744676751571329615869533311585204888252158613971398812128130613319343541238247637640050996756165689857624609716505712700506972100876933599474027777810450737883482388444391778529428661902321874275911373443947240341588688843696255414105198402448261639971572938928232550199092188637476428584409021732901380611134521980613026136572260104525465087994065479253361129087741004912707269080106716096246552742489048483164884697726792644981114910768986935178304249993596439718134898397953306344073072224945844302151565399157180213014743285530247817538066793277945401179826447615768235679834508070825930916996096960102633111004948606969460018500804748912279726935381922399414048497415484874719306303931940481007386089466854550874294051866679173473535425537185006304776763297938089632422261555839542911630947054527160306367833384049714860329069304359243031981302554443002989102499180626521731500962722500638633690263051232122232830549064487188651256486139883311589317951174309896484839264638059620449600046757577394171441736551484842507659998188183252724831085520854358819355140179651433713832766948951884626837491092754777160281421746706777379834766558591929856812625489309326645465449125647232801975562307184670899671114041123968114325445583530065626380510055589976605198948464719817528090174371887904873815140353870464862701772976852815372912092234021806847724137672971684600125892553138931973144028383539885920914554632720386428648751952880653873865862335000955770035813607621857644285259593846328156647487100573725030987247418679551179706240334648421920244846613267587253739701857821836843383949032753319478296958546890671451931320279621230717434802726538255842757341848405709524975029253780745527162859506523399743061140601496250534270822733290441428331377857900633713870961197840950014550395905934604395519381263828704920243905204228967601964579385779434226294673653557528376917923213985350832585487545752985713293107326427280697803421223151764882897160920663266468653467644583108386529277127390572103139017338490584088473239185699847152355287459435940557532630834990050879653131612922825485529308444482851390766103129565562665988960561752107244260053056127900410936232055093802656434832088614119053403281431846248971347300011907990479289463774389959163236351408714909595471101721883751282040052469535672595238390893476281757682470484446235083035767929958680510468810032727910327709695803377065201535950487843380930888757944093568887986833818465767976696454075761543862804885895605959886098373187972355595905498620931135159723591782298032562610069808130810844295465794813502289155908302009259052603827683725852860035819721860810585182697470387488327521020820756024022906966479326010688332431830668165274383141048226636979892192393081359530892497915499148363573841763242079409370714063756344928876179496845772969952428656072501788728237313917476180241447488662933480038849091922432681081153435469459824144695546510525678037872695175717863829042474500779601518390498805545584617168770790720770650805320256111601285754187159320385669838502140605203039169921214820401961982158513142214079078631149894346478768990818892506362855513139777134776062636138557594140658315206825649271118556269342027958005004901641339560376641218865509268168269141559857663178386349129037022020143802390613367178218525163147299935161365634439145440753859118976219216257178508172900422251026933035893420407672180567334980293252145751493693535468370237146002246627478072567445012719171654937324409560611748572480480014524993429238243697120488810023854987866680456695862917576020565017046154270110775451197003830846612769346702855269898724803552291768307062032342746003205870232153694254006004504578451213063456993999310043454845608463651943872264995093997107278163401138362235453383776474904840805297737415986357595203608665054908563873893700321980452705672492508292806324531599014312424140215742457346185421282960294867022463289020448715164334575736804195682546716720569247570064851208173616776614122192453758970376942761402130817933838025128675567284071875079693954060669400499409812981962510742424272409880805214540934331734956793853875319399657912075987911038843132518022009678545952884713206122100501738631427200968854116873296344316230131600065777131613639600850538962982259113166401510711141506757657235300501547469941803271157218056009808573348725714743775494383512037099803422244311131874217504016847423719808051138482103332618259156172868476216449663100994873932894312173809406150901700492458079425765118935454508413236796378289973740794000453859147718541386720985808856321467466976861406348683042921837600326091761983207685821716498794788139914883221071398692556155669499327904775380565346220193296184789846249761001341742696965289234233998174777574294137626646258237255777409837881672591160955776220782320982537242091445461771161009719284341715966083590312008248497703887935643994467706169802846837590754717288538282026295188488430012606836777160548088019959414393752152639920430300859130848614188398042813443285925399174161328093882866765077273051557790726925936378746987452631850580366358683430812108580348468035649156978540430335723909807427122716678178018746640694828397257843198838242615667832175148605562523836374139791858764391484328879348149645431459637829458337852213740867942393057229890677475905246814486801560017546338988151418910974532011568503847811785064041646147657967860145379715729606697541721921400309888897082732234051368983052739522065320401536443980870135080624055481805250200875435867116330639832063323329468282160679097849118118515832958650956050544653341336218353566511094423552139432093211075474720706266605072998796134802085896207122040360309491754250890001376656151164517510039143612075743946292696622585137385788436930441042495064671408489092551789400999259044475227691895039917424999405006184231344413141367478151091704278271511885332206439796354373240072809703783955644659624509612737723877594206904482325547317272896922074954794058288391015207038339971325768592632722324903947017064411114222197510887456667136941789006262462683584394035669746039857823635406838439247733953097455753177270313135275246440759851556917845998135619721855900132611658539834373482174047785814258764280596625957512726449233722998288826667723481518459052438044980814230974431744175126604218912413788721207115781747223148475789181034755990171550725704520232599833338341093424611122969969515083523700162147004467246746350736660750918340619743690821801567233221977140695715635955458972972498044060480060820745031625710022399121257018159342957493879593119714966806216580558267763634656589076010052098543976558517006925440395043927481658741686093945708337076495327962158984038838847343391281132214012707071936545878797492060417935451796129022694341515635730446236361602719668352096359853589328280371403918469263010068488470284189520171652682173736724145961811010674790398924193958123510859785634037918495439247682990223036350448664639640187085423501488784279763536693221677388045669425238778307417768323914334568679129558504000954737856821609382472739503187645485198367682386942014135503463305020999356171390122121284494081032653584525431220039562396041858844617507731995646525959515353531096991380204237985187471314660467463457988957955394663730107878025078377422016695542148809195865778852521928279833569314128833311804552060275564028243243036501086719021897442024374588052832292049186072348362257765009246149299681769432418450495103185825606925429257506608984169644948861331222110827838270658391249502647853738972477066846659288514937409679352613219313829934333711251424037632397360376449046769654417306990637496233557644219621569747749605748844630309817267810065877820031986674686569044792975252387136272738617499155722986884305042895323666501965102492856028556674634548624821728496578893400231433813139893435453449737091997919967422971447176447154011838086991259097482629586970261489693283592881511533851477889276077250914219262018130573526636896325635855500821202353388861459089572222658112168917405385895203809139394468547202939784061211234587667939839448480171649791236345460576720175794486065718702154886135665915955957536096517148754846836928676043889377714731908786590314247342016287110654371263870861015909657032948407357260935256754805182555143066399745868238952897103695384184682603231650204456665141397314262312818347928532757940588518179480224830415734803901666359949601818748602533695436320124354748200863882579647861648696981811775944375864970525995922359277779957880775651083464513956776473056404274163494681573936027336559685992621310429955040141891953037499758537814150946429459599530067976020830859227654937950205992434933564122187301043071259909536747821584135364172797101004746528784983130396507704353735155561824500472734260050686440262857521397894187562478557863172912407043006886963802043128133298952522097540972026012660579321008374655057932429854830905754448427364131239854909164792031039389491623722113527494280169900569915315723253980490765083752635112793332851893593624927365285883864852844356526197604390581828865347574763745927592343669025031709057198732500146505458968407820228311716740036119385741753419596837980130439624662780530606126159781450647310655561180422501362890709161098292053298204998413643024023712244911412549306008680090511565494679907852000235360892397599095823494545455079922394864301537971421867308273006454506227883128542200127229229057742052622141504603799546390836081624264641688045392728427906803440305441807230995804065613439252555220141234549334725066153605240646180658617651936850955657728162114362616170823697693905307807206713042470883739483636388275463534063780010231727879359119410058360973578719147305288785398565214920475179907910673140155703249915240951312412605399036157835202018145207448333007502029957336805165272844103513344718524660810295825826358174329674858323958486469709981690932166287064901826813788648587178560401470050633671920251419525650445190696581757759436968508984483130760347865651624884875643283949917714390771179754643995168778106329842637061851705670901987725109854664910984525061583906697397592047485505871686327459511735620840644552255921062134198886383762063593578354155001777858207801706280946767646249075566995336046959054629183737457623668874233594928857691510122200372686353853056928112133692366187024159784454993041095455281629821218818420772926968324035561415429465200936390351221494923848804307547642950548157501804227088215113326896842497134270423899881632277489456836006919590173234220957260532416510306191570490803211811891138960154206942116192849554643073816867541346245915888706025407723167350443569630537033600710019535904273228386792767339087658431500496882314553074357892222973357646323864326301808332909563561422877609561015588387390075441583950808440555934100741519816394461151433340447005536696347331087401084770945167695673283228760727049514701296559832386043373731301365988175712234484988101292799194977023376545078132381999491387052591567144019850331580067136074294432920204698589710726372964822626836335638691177002604311971419198840911769705981062487806952355742829088354137985532636328868648746059338378040142474730109330817865743192682822991833131839024312033273290224972692195654217440492333784702211708648620101605715964006133038138002017634396450994746790577558777432068310367818338365588634434892254380227757150468599994097198625237859878492463455135837770726392683739133869938569924868753201611626144901782516890025259575390006299023370274859303984103390520547685905022367883071654294316841773173250816356163092527109927932683633288475993482034675233582504957609605578624580100720851993372719653010965560036258643507661029546207930445493621279218334496183461714247191381836562917053371791351574814882283276421445078848285483549930897943789937580769402609241799958796200884016766739130183671106364255299666712264693184921083307506419670494610027425902777011058897729865306492829366920806558653457067217304108183570012119326048588821747282627206611366614520823711412414438569573949502051826169210678088189863536202036027496731714994378552050363899976568816801545751348803324756578203351786656789146109644585510641575935247402262841180798285769358191924965963923880427359818521027476163644556055648200459048660634915616954861326697406508982615883749574882547295605128673340433062429479314189322835695473636878166808069371539303505363360127057838299985885965739275147218142783605652719642598927330354558865521431791365282996016677068592724013926227670248959009720637109821113268177836059746508357643124500189109978643858261541702640125112132003667697278643740815148424971765973170524953260703477492340210293065113641175340398210695278627474965289817140900725831167138353227255571191487036124104569088670841992458470574563152321878812939615534792942713870132243994457379219099471822775550376726881613561271205903141729871548146637069726265049225669109878515810925983219483149527724187719322504075782063165913378372327398448930489690216801075374781156041702943282855948553283356474042607887162624325634790183656662311128392947184254891730351745226992264714396485116613213850395592890383932650598335638130973897605097141528814733059031606314811255363183591470963628237152687176583342258090681160808207127455481512694737237561813984928710229938205879554390473302414762618367994989170880205523942096494502878243004927776181116042996023040105036735177814750523761790443000420934814769278631142451878297255664653839165165910919777021468718061005371971497826677854873533855873416437336622662057383585205333948017966208245387000225718501360429020163809168712059464477864753619274974686235227006547185127339202242331041591765492809616292825025420313367683214358253434920664401013131705449240990483137474109726801778406350927021368683587077601531295563139544918254354615198226220563356651794587533150035284524431024913243563960387432112818730461491408707055936297357110962184645048478176554892525715483981539990261454252998225910497759037407960175680905271758413111617349700345808478648039219149485825640135520432048074789833087675349943500947524112302798956646929781044020345709702714122952079715342077534297781976029701837080310434914044195623651073249909240594674216912436807302840212274386270127283997397689851794525357120771524766997548444805616318306573084081927503209851397939366380590967443386338385270485120940494370664282257691739407524384648271653911570108423573143214791472892414155249973425622228315481366292616835228160633148277961995950895320519120806947319894205261615787732897502247461761739461544680217343088826517950957354559619618598530100506650639490257737987363115234100412107137052213388164935329886852331845561359196443059904526362836903295672232100817743749663038582115387528253514082505000632586243418865729093171165149222226924315993943068436515453777851671916518384244054391855553091449962292895413146018805494122739375574302292025930658137304023794427215614264756120286788106244186900178579116874977271628820215572213547335895443736008593561092004165326624590828404777097607582206284676207180077924101511175870565946044502031931865432580009564006942172736980165442195442589172567075641071038093029659569001345097969326519979474003993336632537957563739970253522410019612995290169002609850257047328274525116069296021493709612505185081682429489330988858430807216065363517352595966636121310612775485257374442287086746337307900380859704405187685443085143853907870369187927009637459423399963805418188236043040962204408977097628192877736172815015993495062735529773323243425072011362470436252093395560485573365887558761243756053066558259192934512923569366462990141292600229458071399624118032774036937960014533183244065099102875007775678594828842913596671211225793091997183178614597513771869566245847007846137429304356351559385486649338217777318088842475638680600943233171361750448489437117968368070158021662582280434834160021044939076581733022062181580347097018289244367160391402454154683958672270675366159505730545427891799767907962339553392763459353528853966168385907858047659160036259665271690103144855610662434700779375580224301103731096888472350097722459086869323761405277179378641042289791058376028387125876838906784759065436276365910641497718929284609270667932337171559958627466143303452963204343587993694022600538119110696327073148026342530331110397898420820769049735430179072799711074971635263490390117068842799650774041559285029942716695019301221486201354542001161848759167062044581186116769189515075861340577697356778778704029410513963711116277369375210928735180706110007390613433471018949658939823958986985818618570260764601701378609284272580894856929902751710611328067837210688425685669914785845054734792739148475472043471777804404558669422540991619407874776649165025092829612902077537966456821178715720386478281950823310547388639497773040149388912445711171460709102537495338198817934522175718150294771220091167867701593808001363556917474509216028738601756833504347492779550691400568986358030653291347929755587184428646483432445829825086041278608125870606251247834698712387947476864334615417579242468408998201827006993135152159221594670970093612842483523893460930754198579211463349756807664720170893391892461965059634514229621909933590168713999937927254295453772638363776609570901649214856036795150784143461260667854421934870515517959794466967342167169493231100881848763612409942757086805879990199373018664158130633643558192615415188486945504644040886294970965903940090119153917871622205806074736741600194025526180541495485051770786136239067148881300810430045295230809001106411755451685264998952935586501591631469464896001746263226276224231456545878226681069178887803477198233295034387408165775400470888530486889924899720533382742376048642218888218225029467640503488898933100480719847620030658527022536152898535948784562252980365592153509080362479784099341952926408832666422283107779522299408623560684053458038158734743421919679290739045823249951480876081719491760634466888514173047808950667129202484753061309431460297411063070831837729737825427073453573758799473153572193832772478438064052040131517947074332712079499376810188737070915766613181859549235342578838069464946237985656388998437847597541354175989656644969906120418182811592870973430124734842619132315278324106104150079364903924985575277147419821627481316975636740959716429441162500746374935326880244122608965135223913263872426899267204288428240601223215357312032453736239264746496163272703459693314894819533841763021283928951963274995101213001201542074392474716820345681626189492773986673120669227818754561512642171843650580292332099021320104158283808205456748882969021513701320949122114782702711882885637556628731805532703492015486393728986657613889806706417865016669748295773495090660893649908616141475808292885154962399361209314292016514737573834572285459329826734376040632453302645500824022181357893252269139268712110016650490921560671448100056946476672986819723670491837047909859098009079757057823526972465116513295193144574930724866093411309704563916264715824409346032606501104339753085738389806398406911228667937360775870577771262452796948445175566200039844352808268235712194009460427370113167127504789219128955236372579583921950653252745736045300090479233171435422232453544532850464505456757487721578119478709349766957111344328157497646507724827674038478284302233233624639155168867217361556998805164395336292051645553845373139824407104834293988085525429253576412996717542628640698788257448978379746060672187361851775293638580453762553591985309560864961699102806916879332035748645638081069076451829243275002030416136737269312385930895528395996693473152316917040311705514000986874478387776051890857029571921407051467319694315064215062009323265487732681192718293562552890729290079760703211530776444544795538170012945773644944534515379530431994373777016707713961305577884856650223518771485359328171601359533807866675621919755884649102520296413012422114306684897627176646555096611502807056799897347182404063119782413227466476633857955894432549810442059922171793033468247314581659068199273498490088601107669516369020391162135811168946188145369487223227800587946555824453814633276308240578842341651444457281723323734229913095733706763929284314754562474578817816048746635142516750969376389444722786515858143599078587356721710007073432726453177583238266214710766590729575392075622181269914976730025284460571424373877683375774887955178296378693101223482673423690647088272518035954131797136816505280734183127691157705873613818479297407673444562692899019753101641465569778180017250480428237556812348538355695651116391392978810249317873189793396875481858975822207227881919185569719098079226104513131303174136788659187438172855793161636176101294438939609801978441165625763781976881242167767091424480583663997412092202270046977228101570481070316520626481980415729246878369459516544191252915241545326799735540107335806020291935238783695004434709583746440863457441852338568351615061713106322981454771977216494280538255434540837360359312210320372724871366771436223297614628826949948680960440119666367655654776507981863682243407578065020844950437594059921811274972140344255846932672118626766869600696923710727131420401291712154415387279423861514930460356100196047207700186030654719856724375227561147666211826987346041575439930394420036292656471584386335407991365749128474090641643518607981480141782172835055595503180260558771107931498332744794229519598252143669844526122692922605084469543620119850214111521077977476040879397037067928559519645619510788958796821599208227632179147185930978218578724113683486209829590377121656226439130708917730941516553186031829702748030690105388585564272410226402298024081676851337514139280570095718278003827714898067164189088185216231095724291057552845616602815918882083492672248439319751629847566294035023269824897058418198652838667146341813919808892917339857241252598566465205644909143605753078861355204380275531900434305867741868105779207141928045245325398332152427283698445240991929045687308370976140142068118607708907076532100073213639557949819941746989866899570363051421525295093749669731309387371592124533286978308581646160653760336956156685492280138854216159725097764370391399772327452474170963658040524436740840900857737867819807197388558529975174901192017523756194815701359054372990924996758794220123450845549557208324712890528983741856928302639738943973519086354441228086844872415296087917283549690659186450571644432041141710477499948048150466122432970057676840402440345972814454302497623772327846194627611203585348118501071891219273014704216456383639592430683418565289966980705924727545590391662371053866181247307352450156304802486196494568127369628772468119708711047785449141480341691641655857436849110127962058800018037134953452049531114748546781773832329566268239377013929474236898769809752267641699026071691153590264407227058190162888086397686026546461373043459355496932623053613779067685406363575209001603501354263883953857881409285267577554117621918072356730513173095694298123589425831061644914770208195973680994940680560798275923912999250915265112696576317854986258154523801126153237783009079918944343187135631005814248596835612507166074290395362614915492330898263780873886067125949563717509051011465550947188518074728990053161507335592033784032051621947046957352858986323420300049981454947808723116222939464232071948619333222910838279706067920454222588780916672100762487288337769143263918496637970472085529788151798491932041817268742569336827986894962386019930867546121616756773068332794631748346888906914796646227286213523986687230729701447257289638757356130195249507924617250658134114405849033932592699816206931483021293969598114106938607110406366376693518435145706936962044318865775182114709193351038491885558821880768914359499180527493558296601003331694494408117291674344733730961871631777721257810815995565902134653847723460514239945306364961786675953401455644725069371258807730499175259425588407258380348754845214637961947039201987382873016616243559744153602290402867130977326682457369239742876862868405860985976719889591566688532625900250572850989316176482329124294867051605335122776873491118453441118875315489366102929900859045590863774558361468006984588624185329266646369154409861152766502421877301438910966832741616075490370855125194016798445148456686543615105842601970511965103632736712061404675293879732929772986069018645372992722026513592182160694930671464104910116474011540333695499958158684781001031253427965570560433425296300041773431084056263146752057360403464683334586466265686643508987337896575777781238585284095778423308330310409867893654311483340651284945337874059306987652719191043402607561558882823315331713017762568555267814150439957188120211125581686863813726430892213566152726627886592769391737778775813241949793426349322834368010412972844671545122694041546816240801612504559318435913053584152070686175599055719901695524252440762757105076367726262614863741252328054808093177384320653915652780434171738051558470699845542694067992671882936197079347641330908908946864845676940381421392988793627003060483861331543035379667446257898786563429350135793405332525481117210936830179789190304789676133214294582161079314683181362188861749397837566173767975789174526691139457304361195056829880262667119774096283427624512122879753441140711084242939831450280189527643235437467574148867372249680566589243761874569957914239595612321962049550201877182366684638059636564603154790497232453923372940845259340294036408047986365403971707519560040443364247927712204096893979733742478804200651278809942833698686601480943812482716521442725934875033198800603141864537117081869132582569383468907993288463635452757068864315847474789204196322581834154976880432077476665214698214524380295946864587721258756612680976676989253010234485487354493411758033035866666529414335095595082902675779731621939212021760403650683629509640596977069138767194156723601439207546053765989265079403952729263557111199614259956602512029534784200008199923401237161633573493224992460700485011777648496815704153894128730344198561770788121145154242412967076997550102585921385985534194682074859353766726040237869842790528836242898478618590322634203225778422128171873288794356912225316803154801498643491890935977603893125903312888216950170961465834580200252100382038773694519890499172491178891887472744453669363273514597755493968040555072753320860234271862357613541086978943512279262577846580859968165579782104759941536433907272230555268997412271742271370552126332271543118814170913622993115965824992020580254722680505886735960527868611567907625578938154340601396515291601038118691723582389564106490723189926806499599458606026535163649422935160595289937480155904574046208985434130466372925769409847900818291985134445515530734847848660275177193907892172520571922352290778369430182988860404747479528815395589090572568539260775635916494377702076738083449247540350934474673310902277683875213886350094395890892075930986643710059783079688960751936243088546209257636429950336017012308504113643998798970258301984319791231999185439978372367118979036083372276971864384048993172394477228921211676951355924946832149906297687018229408294116222439939479925636494631094720066031785415287740653075462314667164219765488999088793208540454340548134658246700396055021709218811906878095199557498260167507902962653253896377861097413247255435197569420408146682453507833700054923850458598718097990867161160548970840730182951762031991387566583205574795631063229849336183651279856168049374306780822943556140078035717285502805956394211557525829994232352098252120585478739091233171318535595931762929198773308342723279524880499203071042829349489262991154924157085135924273438136368641752421846671792863255099127956989304474438079592744370661396495535795542437026004412517636992355138744136022747230958929640573984500122029388106869294410449098702160777447112844521701762762081426429393604331013277504599021306918976232772883413631167809258118052141920878826573036730854733947951083553788718286113816472087633264530292085937795674771900973769730530884301852688771043185166145610678388203686407528196655919777000314326849511302487611875522466076825028095526508977817550912508172267935035850714451772460331607211440265046002176545801540614221069908023386910858511954132509183636426615559228453746245571796158218301215909364878660192530196305201964792396409088718017165980424135951475581337616167203641094340314490222298416356966097790223178112746280455801407443829343481858877245058591429291576697805907602167111025075997476538679904544496849914947109855229063595407762435167226108683775039564615915197933715011310246411849710327408416777252631287442408348400359836342824794598073160180113576278770973703819017424945110901854940981400492053820259638172989221790803541809970071670677384951916899357092916547039721151290498224256802498149688537798079824453682129426335792947192296041000831040366095315489430997013303928267560909850597550160372944353066284857968543902094721388670817036531257046548654994528090689668452795690992120267375776974958476346179917738764789180665683713553498152875536251753498225187792939737251508445202407790812631544891519510330333665768083810400653620835135387985689336444939598873492788434591212369416964969169041685556962249534059523030616281558525317130126983390098983222873894106886577913155156765555883389683455302947818133000316666625281655089304958311640143092502728562844830539465511296624739527152338492888099327697680039758061365999077131583367436546026703347476386077857086385195294346462916717373870722053967500675863058735411078853920806479352513553957231681982969315766069616751036139941142192116009049199808313622121898589421271807440090329449197710281765780996044230629717814396131589300884975510100587536293459292639906039291480675252374414200336401144387794643926622185258981619891796965224133260428810248425069399060102300227382597078115007205391912741153017704579924262849419306402924208264879874239262538362114391495163385385859550450055649256719717821125600180375796819744198234287890378874648488028490298511613827281849327290128209347927994735146316096955432505262701395206499381981658850327166386084192630155163596291160169152831016356221616629444770575008064669078115874176185625003656049830882839106021262315762157562885602320672468240057101630093599739970694695388952643010321478188224970296100210403996704986522723562094768563078582876140314391092962037770464916162654742407735853368788826670317202238024940702086616631560735086253778372072920634222229269593606702435491604047058544477964660836915426745409501003087376747959022781106186189607035485405343764521728202835757538702696248305973300928252794059447302755433730457488185297831853098444485661543284012303079063702526859786129539903637473372275763250233553475817447804775505375458185277690327224231148409382019325843858644519742998583127213008543751066776988590569317110839861439431472071193188563843456031924122127442655454319375639358570119699270597689779716495358479879058979944776265818637873266997302422384122575008600875815510144144581852962182260942795298233556863283479762738672862643194788290732776487663087569335956471392977717719780535494283274368170119977428120288697021054295543102144025588859700023907393776868532625562932212988363477101446323729382149803330351711746548756658963134803887363532272648262198376208121544846155610428584322874187421313488372713294821713338723736537742893008648186887621730302524987932573744240997480118507271075826133777763668647792524571560570848725688398445884220636946232250309606803899760831846382317407625930851741714315011052110038091985393009479277647266732245798827159571771353117103606688306517180173623846960642163848329680043772877210817003119618805130882911407149760101702182545168791954563833382384593673178002381818089772440371245820482290366621418747322838721756010437669949153823224062596861685679266106868344533962701168198623726324106106286614989060064900390115969007765236952806991103912800407617806624035584395295097103197376428591320640183104594108585651934335860207853882995639534618364115160909144795542371855765594594721696996338617518982860898878836576957476450773832339460987283792590889469973853042120090030874691924243428083290839889278049410629197963666262770372399164483245888697790085252544374083795622734445326905750231496952255616376570550280495679393437735459330398738024327410784738107109884699253857167985013518202495774330849147856317892325831598512407691674219184849817236619083983806293611776248413545765053187561020971954389800996605327771087604851968429567779677167470806834639028655958453017694845683219855756636257892397607230996743368766257210867353784702095301066237756798105636389202248606962617254803316706805973338286913548969174707446790226143362649869748753402551561228710384751079746535259694529841813812477201864568567498704149115532624506580690039043033974093223596348490903331085117544606262946454112328666169060233041601322692424371298816434156708600570483062606397205867387236663549702108876830485420163835470917807016769771041597072595832174494152201739258751371591981285923048369013310043570381975765741711604163362666195028876420593330872098712559983333356626669543350209795576350262308766071221578884437775265103871353823734083220599127422769923419889179396633840261703370313903821624521931763865197445638111690476051832652494821284860713544058036467037052022238477542516195306264523840179599188193162842012765487617867960280817788551654526509841746999580286661666446546447180374841513563212191486545127197942978560440011660697493569628919665634009943200906218082599251006324217737130545437203147906960097333302019253114307437463301325792528590353596942853591868770961762161093218666484900953347091956727437604160507739804962126910195757891805816761108566092938708422408087079341260144399209230609652957623960601919028747427430178475333870189737381378958812553959438196913151183101203153309686567050991109316829788283992147222021337479019088208764517376657428165837298682333117367072636709476746438347976654699954619352893960592380031848237569502565674409803364886033451178377227173232384270255605387619989525187191979867154736788127780293470852371065542129682743790909912607091240472606711894056773510648798059565553125080754556318317397865172508034553980220384477559495769423622780777840456704305021703182711457210587190804139236031998800840021896020760706686350256853041619199581107420605906979911454837466806674963552160227395622612162251429112126196232405132968796378538655080158910045997990602850657885549044593989804964327862923135399256944614371819515108560999599162588771839621821060508664250535583151421703693761562011302883632863581210620526781171189131282988282266336065536193141093236081308547440232396238845129897307402869982273384375275439476852740189990430923427043485132520062558227349431372509936235824830155467169087927206650469686461239461373422746486374018255477376593449317846974610106152110501253702244620858626852102169969883951542416174695522239265878297410408404005863562354853052855696386357601132477613989115965368873806421211287213126497393420395811638200989578519474881913493668698042567740255980196817803043736756305684408387553619753376822046270178573870554366513870860385028219326978164881100394270311178425356606633543171042648836298754739799327338839568527359700290828105332433181124539833395685107691969711649456337257450397499174238896109116932704335782684718574304766797193050991813086002788603757901537830435087133782487420959331772829978801334701003539605359964562257897844162225477178865527125170388202087976464471295130403836995129192794413936871846206183769719408464410579362943704512369028338552608037571745462542209498328930264726679915584126213153937438395943049023526305315703783878867129788099503679087808789720285600721718506088060578782296673060364468171313256446000062421688215133548910395853623728653076009235327782662199635334339899988314390547806312139890245895181274967500612174105732933186097122127426671393481896394079869917786542598913633693189097757513988655685474071653811366192508205814992134566401362864912978984804927632259622175522807840295674879323416797856613539118836942640534154101630283037555867489934211509109620796696787201410137560109849775867163061368326571107936526764886809793134552940594200013949578203093093072816875939219636022587391181648161006844447383098009402908144094541992927455322207651168522552882606697981078225988626101019943398872193749420013481136292631013450299424003082754542203078178882123396693006647337891997617686186664321003791725282439826879833128676401877060626513675120965734239215313999413076450573952141695616138204918437241309624182119989079284404708223529165928121424088915404124181199602022923040601946410747491690883861590726595884134537676653245043937955878845056604011249527116519874503844179208320533667589728238396402421778792774186300868055938285324490827923909374853252536366490979752963554475038524625730918611068633854244479354515727014088573006879307355047247534143560204120002734764361745733410279242778166762677596087362677229580805204084680205125674605346057389257168094583314165270312173313228706263839775882608459007794220820978045235370342442236097162657911795076286970849574248371613408971837198133176751287036577328516102811968598598790094560572754646913605601861967430498753987028644601901880629406534363974541461334808534861378016652984704993446891761540299772636391534831011161340423235441976526053160368391450767909172799966473312430172302462744237749899823404352403482852289800977128581469789475326916972548397112728231965236079622073998901430989291195514796264700668655295815512933399673475037313979227770252502438418940216294344408356788708774282519336438749950472139327856556891021747586463508931488283997602958204772624515730908432525930614531315067468244296033588216201020817078021419049125862933176346139870343827894621415379666387054349652577037716189962270820836749837938221559454261551003124264025165272222755138234433651422496228534246680297902812409047359189292904188778482715128996049729088933962115340310493760211565890378206751553132463579373307210150460666048727748666866513235746319695131050220483071253085462844821428758419032720359817020017950092547314279467479139112531239397916672438012987051950575351145203028359292605417977775217958457305154512550064023461938547152945614061362020273062812685519449577366273340086717153485896993037416256037802824598963083210773398342848497864546703105799067487778537708682253959569351716637548474270801186974260952046916644872767084494186236997390495204226536998003453115878072939188786900420340596215152758239368089741316151392187115582352875848422003178511446501070260023858824510869698729096412674931786845840266988310281684295277809636641528513461001904134998990287032663782991757751158779991815014494537831230805976651346355957218672470571039798793558430262483903877796612002327124109109744822910230355502922792180122647422919312813052068391617532150610112925481331032202463425478457391421223516051868014998012016364383443502404657163399759368387380218349898382614018414806441626302485431652421699301425350789478951445801024535499499331487740674843625251755195513546246344114191692046950842477624482132403051863057973238116964712799222290558815095324399587888784413512412765346461215973262435586160312457364206842780063658078440533112032785258178848170489715022878702159081673447702210382811410974598062630817902525217295430879677619450916369910248788762031634052004361596695770284261131792497468319607266648660188076195658304619019247365261634644756758162035903033253645051436344854531267489271791564330112824284259604082658008618301646454465812595772577241291551724047389736974688482032174167163728413545010299972236860496645280680742323527263722014439084006418933796060052127913835004978894074920669728923937865846137868431921891011261127078569747313625215882229850202477969128107249750334882930088738744492056241778593161344592517187360581915201969786582869861268649519304539430796342887665628930116451504722748124341876268268612369469037271343676098976656496483205493582652038819653048026479363140457531582591283975890685670118032842889869221212820361791417895185157809155837046971233361088169537337781840768490806572659945474272210976957640213258892134142795029505802159234802154996081725853339615801726147398302469107293829960233221005669077800017992558360156796081012191105775461455210197846352148757401629036390297856947706355088912265143354965833688073457509197929211189301435687911473979062731933984700843502594172083343841213766291680603240201428388872326594127900984086500010277885276167023764874766172132174867869872234398396039382838166547607822771289869091354312603247664968213945731710411290169039057105726096077961036211393824711902021884011537160001094910771303913048051049813909593442056689001818006732864156155983100283961853779788551911741462171230178396505163827464780899658816902057572031434160608226385471785150327855751719883565700612416506262470666573672539183415638871874242309638763051660959735044679573245807558424764404660323051629964709795018528390259801261504215850119930202338116284013001249453355167994634026920692089872741516241627887725105386271819850961149797733175869528639180732646988444136072216366415511045731355719744571433758531907269650246916190733352954863173565109002138255953435965897378032218541284537095261061751002723859552826077241275430049084596487133740182505783994938569718006936455139521381033364283287666830381225574775350209820935230580136175894195580724747325598688604336607422460782087111502310923653983598745135195478393956411021380946273956336622576412993375969613041156845732479177266055235671330876453507693069648287602860204019377708641147071199053444978524350542920027683180231031661812239832600065336105852161987764294680542291758928736257213618932766016675775366272484700506565924845820949124918658074762369847463196575714352915535150534794971508771190537379661312586575975460114859552964248486255128022685207358887813390586806633457921495960806008224850838307621899504905843107375710530954110778752950428645133263632430902365310099079860522813762566056783753444253175368368018210333775062251202257621530731167276938107892272277419469590747028324479150414975153041247185195026006657680132611537954489949737287428240941896073162042787101257081694824627793165320351120324553957503896379313950874042755884190160226691425776556872765449705389472637798941311260152056839238830430703670221282447342996009984066177315462862899287441821066436812052236655852512238880332709561791593187820470457663507185098024507199353244830669423331367592356613232947229498432357330286341924007221355450438764080709214533843965352053767628072716869725040790580989032091560866341512823212729316760275654695236284833433126576279897970223739829055558605884748359295061354114103060198708807714713552895368127232942471588513382570749300397919447375928266879375265588908458619965047860122347679041073234282856186786136559475932857419676042892031050379409923054745608509784708920537556576643204520103912832429013673254634914675378481006570394492041483050050572329317169120860917316387777262348801470555884657197249551434846378332313006745613404161965282835648513295853361101705782701836812619313696138015752522042800920778546722554400925942111869848989817927805620212072380709220167113990893318244038239920598239358006104269254709240983736422507875707401060572977893876792367195347074769446796394280894280545010065514660165185231715358166875632178426234153275839185006184599898577999758926825862408591762415996568733419578355388046783386911884774698360703881365163131843951086528972845831604164413619669507839543669593966562017052729107518908781331944900118608681862464371848708271687259839163821656131817164652433516278470296791812411949196684003494450179530848952339112444852198352345551026119961125467691627983799363538468371629594627797799262037517676604645286179197356982492001303882386704193833135713745576705966454878806322300018053631250346069696215078833841774232468892165227956832503515159470243609652503593935580048312473921110304608944367895124027160780413465779314976092130925161930846068642043183234883125981698967734690165836078593417632817147303972092878207718684815385255157848828503195788135438825691580010510307979026230472633825347390707809565150860099237222306416245479864422148904417340882734514475722567550628596500729343329050162370353927669676027789330301209108860660040895824306377795823242597527980215520998010741730590041128304194840217455033510700397446172359473570836348167768226394380030101833018975163391002792340006241978271415202148319950335762939673466723490774880639840983362682764745409360078905049950060362335798386081949352822784952577208410755065831855420248247755942083296268559346662763478493990036316289887104033998234696074833166085687860183379351459016442900831286007869270985750592071512333417886709136091117488421282926232610649715325141675557379298783982471446221254543920112426567658952621616099345487619055336093527161101670364480093626893666815645334328352198449638829070694457572675378728826103921050790411074063032961551770470708218257303211862365924227165835683894493037467266996804334355799555379343832946655330334657474296513669950536855369673734080240976145353217070359357068902222714106980892454407349177122163490716505246014847774727259015557456336131339574651121968547564154291757844192241438884469821480656314757888613371435252078669761218852672396191308343656200965580331168958827514528405799570502784321298872610417036744021890807800384241687419889981379260361259922413837389722614739888619660215518186600300272209287760823933144515786320766550147326065429067384010029018279251573514175718074933093265277860807711978948137008893461748058754936291556525490103842776878379382112380853308680618241732337955232299507640932763218526133494067178029372267779219304073589678865362450644280145933288289275539958373346281521378914868251862529852810858083662723297431789477363295790126075750781054112703585000571810749757638083103135612214118933793702456598834286917823087068975719211667206024897904049322395662100042564148072457497737042950123071708623481151473561366857793277394939229406404074141282471775910536197230062862935524789458374934420374657493256932009203462686386462638284233283742957424215479415875930093538576733336592368724629410945506713448622947362136806482312099776298621006758289631156231476385703164676516971361887584741441129723633165950835582827568344587103203858807706878123221308915861068866269049657387085218276109899291576428685409534643151194074402801223453427782712935586417107602039882716706271930336671234752101408410872479264021628401868069378156478836401412421255816381054648894309559491875126947970848967587136272590006074992337941358227332125204939093027220968595246497908746449355855464951447507230553835959258114362177723973074044103137012837240583000881833140188237083444112303224780417229277374291017424563168018194271642289060818146987322624554625211527006258362420485628331216579238967058007043746806496646489448996592214286945122818351250601443075645495021867793571270629863495399773836639333483952364168797591734967289344375856605761386069843860539515647540034708127349381821399865160215307826382263081531176317637782674310414853359793455328390342242323270835878839719867158977856252078251824010057915479449023381254251302642254670689312050636136613686453903630783244745781506673545719566594211409018798329934367435527136773346558166065310309676353201619115397670546521131956228392361932504798513681537043457761404641393820709533309920517448173373873075179475977692744053839855143721722790720463234261329777925958692858277400106969873903127229423018808053388708940090017682809787370958926039810714247518636661863225566068985080484330399580197936800171524519252123155008467332921144272675534147112328970075554466452584377490049604557269763163512840358903600281900641343381645984181471435481253970316266239303494657491500851096142343834148441449900766515116684844211910962445843144637230576674623235948758589132858860745632651437514154817665162308982327450036882218487182886643472062018400147378086620483382433383058759720302075265668429916583698635935736178953553633049434839566329586414703414702300748900987003194743656929114959165272023576687211468428975560202970302125814792998302468698778327558309843338217404147494644317682219565264554328514367000460781395115191336487644186288438894078358808929432315599592946359225359026566408179715948854769525893946010295856265357606390595261288254846990248599040190331810402406341451771528569311598474044061189564466203519386418222915328124974617126755308271959563490570716295767026773624533636169053321086930385883150217610155402622660770385437563756640889187340405890320375581639249794323082791182522071955328419128688653286114275372825182383127054744936862884560668346944718360264749631178561726145698393543841696397166538803220249215882224148739121302111718287466651610216991581511050360779249662007824250183495876664525299064622896070958642786093287167948634271405625380450800359589775413757571303781676387148311244661019434096305254570862221404115923510816684876138073303258837743653578304219355989099659039944369459883934379632970929841733239580263137221778839786805325767566598675458403874044511965560781559324728954702674979774349368917945029250003810680254570239080991677131431618571886405413338797495110957846374566987921614602781759559838318032195880839103267061559292010682918929061281135868997499146449007539801747132478216194181190691570768645011262075551719419378372993244560043038249486195152911403551403026426332284843325855782484565823475718950681137756104080885805522109014239024136744250875038261905986861768226098247442801822336670301644417526665789120932170228460673508238090163479020901259867368309058375223121029091740435178926222942650565125640286627001696786946057927714241311963931436323605424855462504215750513182982862091494673899678086292235403479330629593988689997155984557664936075047606772767411380586130106122207984340882849035864078978096232134266123736526961211206634184996577960077403884343656579669488421646354572576715740396326561426041188441580928025024884322081753901068666668029094727713777607449191004451909342709902202693820025455920919423100305994879094005419219766026832702309241307386530613784450198778313478204317866569718303688249156783628579468879239933087270522334658645438861661802603277052228779133030526169985728501779457470609711103191435701700096372869683043500969715009619638434742068168530396420984653257307913820713433729494472241371452117526054632311268971251251970911510475454742421886921007539721433867250183142981489928168272379397096807278272256649541890930015241287180374294051090152261371441590640305844724726589330716598482297199381420773583588624000248542124736861637369736103935498956539461494164905903168835914549683410710807391587278366371233730065496235182040338750424783031385509017815405356166420326004603408165097163676452322284611781497257228097494973390393298952435291652734615404138467607176103745000781728563051590149114869411992951559162594171546286869897145425017345627136894367072196831738607776889886554825164255297952584364441744689792228244052156925734017824052677491195439479844470605307376836292291304661798666177163943781576824488254728021962585421747068235138822311378429582488819083307927159101722537431132254780970490742284040156442232740510628672362837905610014900340746467960102737492588866207319289169029649500966492259590464081105545722217077211203438361590520095103711211320939060343230639985386079522823190259705279550574514435557843815935751738979611674594218537131191641848415013804591900276652736572575961795566328084170280179435071281941294886859605218726920999594923831984947831063552529630353612599618724159918338597868439165643432889160137910796754297653973336293289791948088073319774889006051890290277956147976054414372856966030646358444613628601717001370854805605173451649871181824733180156989222500512612511689603879996190248652537009762881064867288631744475787322102343058728064052347837859022526541371106042257706000025289646909785297074493809145244886534397713745029316239637277377378256122194411313945576145100073806994483897841154376347318030599132927752343080998254489239189368992076427042305630713673339873676942682182565332819893979870438997456347530754655647598950738901988397119711462569679503521094575018047902111125259127404383078069291228166076714452445591789746284138754327162013311790714355875187846597440864773560513716116811123080257833817726999069324344834713032052714937415172173572522752065058416479615019991406024956173688894020836483947755972191750556985738938749032941843686629027726511877861959898185145634048702029415782988742786617354657681170632975504945593089547027279316411604682729424494802367521050147225968162270628286896748656477431295269784676874875267575960013904777169809265208356925059708584983283747482447376127712967730438615991618817565471546572146134032656142667198023603367988642470066688108177721879646366836466549433316987062841974040132991365045442449034541622126347225341261893803127062744096263009474725676417235047583847661816729800798742737669645765657979881235846287674248967539370054143003751172303787194307610916283349117465242380344787110983345054206098641230471860880427695720822536958165120116319259808722673247785549068006996999688489693741813437843956138076738660960767549802118355233980826321279449419900765860633314732438085588795246169825994217248687202322188535074301152685298693784623048816562783541110445856005340944500045436491443511876318749908816159064394683261595197230148168693276147126066093423250400325880367952606890166122396844498486232781692902320859909111791026770289817893645368686615095077669518689557806937012277207620693186097367195185874260369430893618793390512780572395278668585428287306886561343574799126026043412316736936782370183206814872552740555782057774627243326515926133413081221209310375408037584665934554311045216783770535367955250877633831096173153763627942376504438031830004381416786917746614216183341851261851823764669463854983462203046077943214737646048995111048356601978784153880674629096222487308787561152270081622545120566322741896463094545566767791517233243188692179537362192309226230962854565650996122895584129577912825296999766671978095004629037906131695525405093609888458894956423808023149700900698169224105456384192580736121566699233389138672262644837201549247667077239457416562238976272833194872092999979598441456203846127643685377767903302703899835856517506783544408833090419042501531623971369987813695449269935734206056471115390634422552547046279092752594962652524471449959520467023418465042273765072766044692774444900127457559276884238045761102129735323304761008911943997036419450334084584380207036240634513709466880535173505990217160343524212140199024048271727581226841065549627961389139716870422434441272260064978781837384176261171929207795766891495103433342141244119247202967792663128998130070658085486859994791134613131610804153154253330846776840344553353736143350375602378097085396841499934363610665955094479902144045544075385861875143675030921018893544503043188155220203529185026155215252176584850953554486572834679590693202036361397739291844621772891932166442679222811342552648277990528674306736425886248149376287266114705289801595213240563022828274547504681101413821037326184450346433964605970954077189723083880886021939512274316164258194401520543240291138126677063116671294644547126000472956754383115583951322718630015331687156780475969177570533388851858493986973198834514326671964480639683864519046398287776534950220016141380590403587304447294514746463609956223068370166073190759529018868717304475877336525151527669578034598525015859548652761459389279724747727080955722044447519313033536488553590341667272873415657470265937221130691409419768288834144290149782969681623497432229367592435981401892908036435486113192698123693792294934457064557953489072909301862428537309089346250184032435178969949579309737136544092837893220999231714327767099902473380673678407831287502944581382815543111452609259407121872190366051469018172330124789817715077764931131024880320665992085516962529707910811468017543751734466454710818048300879903739352480534379351137788259134675973633457153306624603010500994883889410463240853777082389313192410623290628177758077775742064186968468364049978878299231697133216853655245891813914395977213642244024352679549243510190394355435032546468619692696567550540737139581893329049550202586394362579459728373407136361634954344832731838084285593730432489901420033054319588890615692563533833233139778667659457587809652397062462260412157814673283786171747153828621722406905917714036567201826580573971259619292417202114675081649489706505473890532130267053175605320979884399579911081272294976727010932592324181165117186328641283181293073119053477634915688340262981579281304484771906840697746862041880608314079860506246811795159876329302595025194516814717188358716275521165176675118742888876490893033138838423357099270540056576961722041450761228832805744428112710593453103153611757592861233227692500828898561192148190155487425249170963297211314811624408606974772255323503204966278762950487900033822451530003045933122543367597279161842394716585263542611171810407359567639039485465716564038583253966031208505808153940029229105678539820536478980620489230900164062647532827763131073922537945849520718114789530074148453655595401719593326104847166747266590170141334370724686843957581051579056681243469299739845644265970131267248611256131965576867209254488701211862349054172788164741941418182100169056320021830239783207009234312326313663557339713615355685033987287017352696317453693237258805233946869066560941000423165402189956697979022041240785860869568839212024857240834775207449948492618520249927047016297215939186780947423291553086505236421209529609856078857984693265990690838740871577527679302295096378739099029392133101467790627177033519112226820077058183022928920094699340414332071442628242251572599002787563581262466512820169271033518802747240953031469889256752577296188052578568402377525986723441513281899508386541941658100048241247946859766296386082263172215182346814824504107948519472378711383401746650640488347608373137100668582772794557676327790155403306306216174585554825864136343982341802882243342823761165692797005309669787744555647473212795457846995977900351323101131037789263405497113342401562288115991476669939302835807567927377414133543576299210388712201685397613159484875970916257085322578710122143152326748115305002514876274394087447609929522757739863583142394031082221245939723051319172131993477654632109998090227180367079648147057034063345492654064537046396143092711342319320706558228908345934993989270417330141479806464742249319087638992767070910772760189028956482358523456453934054518555856347804546686761526129302442123446020376819494981806847918110919645449270778893196350633346532181458813856031646082197203459271232149073370776911263384109083539640541878333116639765050345344895817773498104303763205902559335436752541138216399740685621163292614673247177495176953826720254138575827666346814069696431011107738438201965439487320135819340359322000810174784966932425939973646907085579437209958603531413476272155040934659825646796692673288509568111903189591153032751890681848055094178586321381120241328347458594322333641821050168907896737101174812998246564522401350528766466119666333115557300414919583657618965436934533883526533311727522196944756834441394643279595446626768918047833691686908223893352446597515489831574385596369063280077078276760242756075550306061372590251785588767414503886737013631770668020386893728385168525467936138089523220099113087970882805681446381192606977276598736839163549144620441641787685707964958896452148849340612428236298138056943071893987773420743793153638153310563301915909864187995281522332078631487863627171664102305692372767018354244195599058576505628701232480907226355305394126687647127695272393771624771142938016076213944499733307641818314498482583990173157854153636483742592566095352143836986883469918861199223708259592379555566474842731225622251157760431934352299364910350485902173300226427362005628726609251020530416393833253538126407111330659333759238730073169662890607516736368651074959058768151693133918308603868393776678131409431274983487139279594025620522354039764525525745524214247549322230662393868257229889818631923718494924921046620639524757028553045363504279592775008685316127709852230291622709421900637235428122987214869333036399942035519334225085736251231075180375307889410006835831812779028203169278206167452059145065223916929637033627729066595923619861039928170615633852347284274204086449754028526319089839690263238990794569525534470852360343459238628905626621158637362610583966597507318843450490780400136235740620813525739203859778805348735048425961127380533161510024445265931612283369421484237509647590722087282323497074157837846140291611871329840895079634069823918286482543638245795209798392377624332249209176237865243816523666255582802834737458283538168616033157687103014278501009645032934843010322053518575495287593643371272594823501182505555354418480046184019196409716927617962399923561727192958093957021734809505257923154689615753618534797109418875931032070009024684533887458639957145318700248100906712578828861498245354151669395039094322579294773495971458885220843210354386013266843381640290908169389376528944123033562223821614203903785843277897536274998943611555878069313640224850170836169524158342096519008504554503523007507604986700584084364004563841859362033511146969717855739525265533408972058740684463429180768083177965062601966946614103468751598840202320859534404485615451593436726022379534426069459873169270313087102944720515062354505031895562594874088536180476102868053435801081126749660211117892954544854706636302681611146429866416824015776328740766249500611439935233403476897734431091152913363280140439897492110844205961842313397777255188201508869626811388312533539563701582011133233184711193969024520536720961655561574073634249212105475015631461102427762337204605860528837327428185764551921430384327376830921582413564907527612577590558428219804423730242660564427107978226685870119581238486986206653999212370911663240537889090242368447273268840882954116479938851020705218923149001228801771605099197233018193434718563159904422052141395345227624572675600249208991365671991651953372152941624499692838130928655496535254745100589751816110840062129496459325939494891861569278637287600225819913976022214565229072902221662119621755207211771835826699345715372601595080890243113031449669076653963232927750714159208795971831814520189026228592484270894547720499198250703856194276631617931060115345478312684342424635001114902400513333489039432811094782325638246165972159664775161532307577477942305293785418315150831860912203534919364084884875434369929320446831126693721188050205601623166349359457312449144690865439105894083338050694442334318627654538660026062983959313715896805297007206439723793168516764084424128701606538573864523499418999528144661884155903136262211224754584171839361952247351632490629569577120063853160139011109135781637263248758859820824942911830344668641836762543381238822966232750657921242403745811950830173479838071844910532474791387141267436036713940129508623907691193030224519579451750126638409791987214535517437893723267119114874857961856201961684192224446115342976002416647935191791027299653746987339310664527320091343099362868574959332995300208407172653851382162828245832693403295444823161489273211910996173805740241910625593302110881325637300979116073618063681123323460584751014698949406609236678444033665321807231798444644901848542314743080628569277717950326408272913427470332678268410129662041401550697922022317681616386029777328832543344101960931449137859606269308395911145456313809153567935794260633257756563998278827268814990990317242397760436368864998611413338738664377905905754881148522180899913753459396993843998986373754173082855304728558518355124309461915693463346918359549534872455636339505612756507118857421059702769806506870505688982838952836612204517472622063584882243685934408704761454460402302429609354361305740243387316342180848777195381475320868591066712727553867506265309604206606815097015441376484774105090542899194222111340272939064589761336245472290597593288976854255140319383647748932535371025694258725942653915472923075966990559080890158493866526703920972774525755121958903946839809330457778756214934881067754134885279532362990944109402637612673404542559652700979828920652887010311102888345301806811200364130311069556223981972946919854880322588031870665019093901792923189322454604472906766963741564376912121408554715238208174420092795470675827652172500190959957812849581750157505361695772229858463788142027855084594012644628774289537720447073408300208527258015827225171792367530792979253832833712420179646223945617900971928891254275463311359002377547802329020530642231198335030350620465568406891307227965183996673862703934755372005434665020326877847901821456580661368805315900194517552736537159955440091744255650890550273311024991920967203492295190184888959320885402082935117504167105679282847817998780228021050731697559372014270454005779589822220696405167699990899956101339290484404380539714665646163698366524479302027639155670551003836625663198146057642658799832982345235706123643740946532702927507749089201017864328615442703763791501394797649343605147315823405704407768009899111805996184490082264529408771020528220847433159164352419241133868499626283207589813517721522323419272303200536816924991094336309424799677606544655339290920864594751389898718432037027721544217577571114411125588917307022342631015356961545090789470026682554050413713929901173029722042535266657861206954273661663155485853478218157627359246121218902695256120275188251750777824937213624978215078308802928892916949517310624833600835004224440597492953402515338870432973966848928889631297922071311847917830132656163510298703793656781532655555567695583975136148950083799318926533759351997693714644535146253419958966261380994657666731671051235764745641277938890197695599422488787760659924779361261102662886671007841602394757338242244488267896216569289014086593223657049696612532644997943853742419585374647934393125349379105897165219758224620936466317845417287321455315890392111117673844853963040509909018460537903711831116355187034109453395068394374025680839758192050617218641601876330865450338105952466291658365207396355032770323932917447502100967691100223686704260418595861011391789757418925708297458349235739921323065279861090374128909743095066150449306217283705696288125166227430203109572719254746296653470331858430741071717198256210821711152762331686742750620908203335671804129485123687038603543252232138666385099570530684511951586573753915863752542549548198419529428385678046720104494051534408499823816810723663836522605836774404824050143455787455263147164563971417055429015825775186713602293867306745643955608636917178868636009974096287044535430851161088019845152624728541974958497396777654214366601278153103361680560766007757547574809940343467654600171068626239621334834700541250690605963717509484336826725554142060222612563087690219417816790295212035864116084833179312570158809039477164910928865186584918705847968525783407631786923873855569015637240356862076578706474582993367881565739129231442115872803985623846244606062722059395410952019843771034291590223438551153500153547525932303874601828916321375968544816977774944724154581538754592701944078548767113682388920820179275705136148400013292356753331797874273011113434881360025515170325716507964961291146468217444989890933290590798051534024158147694003669742128865602395408337464097253221956668675492225662403653909015729291267733815941594624617922263612224274510170663815209488512881397036446977081725809124249364069874515598491354787647817535073785339653061004182038405916580534101594054569004868605698396951532830101812839805140572809722327980385331902411346158975584402769986259804461362214886966746033473965739242220662256777935187265718260984736830929977396749694603547838728455498526748365961906895933195293030284767419764217392574354155420654595184230141095731461589290646522949369251223281544874014153956794874335502633895938677139470210492211008571081758453480153188476640173838707770562512285703810712466834466082228864080732575030248998313519043116816299238142499666036050505298605697617441575990978552999774561326682014275080290109211563842891967822880315801442119553504875801088007742748086933918903693606241598828708951082373017866510437840830612330955841363317437035851464448040796602010719386268574847655303798693990019270106137535186039019169920277951503890858723573738633528175944840276577190878501985722653038024937169711721472899966588482974758019475621408953916024469681819891007239886342764359921570237587188097560173512839353225556157702353666188915183722811932712682769115790571500070610437478635905534078503122018109254682312453022592173486646916410005683141852401255947660150899750958413735875794303771268917814099556890020951249942015064062935510654145533079418007665292432580950073156516140291205427282342271465680877141588658656220465788265198987572515911099500589498209626409896435558401297259011500955553146647276210549588780168554079250104070321126831322693117961838611954974615790781055480872648993800492343280796663697319644144359116925718631094464628417942667180614859162922744561081756693381188971199024976547312068547005298564462342431530131705065466491279564679635912898694220046852782894250829406397969739837220752708148037920449222322772013925431320253894135407614668308097256542622873784905377559211050714092112756628275616204260229652713392029827656108328928184214010155095735930333262862802594759188918314230323020299883301309913679050890009458109485078755597268003647810509950983431049118158427058885078839262953501489236143711924471314617209918853087875311760251772753534963888422728259466587877796392186063867942116646262474682907486649478567394935756396278679775451010372262141085868589796923209777856140750663610832555544548130987284248571587254995018800555293942159656755064215424686920078503764602312287750629626949660627196943811121251180930581841518624220928557601006686971115643809604228171447208746023006114828293923890173526218104780112336324631406500575649043278970277626279131324325350319726363984841799229340666654206397576093271491109261395149884733522175079321358648810919137707103386496122223030862758292189516928959458698309589455507677679707047367922552584969587637939766521249542735880117342950938975656025934216591388324652221204011253085643968237187377054083749869592243062437057024032967883408876869911312834756571166616164143539342624662309108930898470160338585777996631441647483590006936709731102436104018538271257272204575148942416553612131044212108912420863482895313281316892118437922494880949919624847589298617792776179311417358369506358109947738114854817419354116071170910947075938210408913558494593492255067715706555954247542528003678720443960653485689178545092338129885220424435004444142014136872050411627076137291710352764601558215150938795685265293013081539590964741599304267316988723475821758718635287848168556314241793769838716658280613214353469589166846305969048965067514388311301356052553415185548821452177242585014160210564697842683517667902041293309653448985781596403588879589112709224778191958999446116542716302206006036413734165288212510813619313082427278911277674713538858575889342507054012187543080765740189028566109115372884679957702710605362894029342859544379315002533232956478484551084323315045366919407010025990188985657001445896228684667277445180411306392583105856157476219342869958450556404036628185867136721730033702946671599111776419975227135406067056071288761542341570899818606859794220252196654291289589975591465277972549556421879845542196161344906438603254695343916055687108296811744931152982653583422195502151759457463572511631988462671157623947626196666018598098123562490114274916871532054406455615296999267742832517422929248494028029252920343335840675516873995234360033984687061956737560144773443955955237976803684002372258784238794682800698909034498452151955752438406400604836780880606669152499070986070398930429380121791873030766579336439123738848534489023457171811871924429610527643168391816035650044860165830833553044859973499273143510028775453762083202057328489560488813151087701508597168231383514689216299734316998165080771842427635839535104418421408955901535541677910856331347746602466915735086766294209743760819332828245315297968614464996676589074603080869310364217486842834517405139904828648889870466847993140847299285205378008220196837813012418215583192609140993098321104634685880801334136558426353359162840909690908680541282832521511931860562263812912935836226219673967294301093033960070858231340512211512305373248755870070154879894540257650840345142939715741952332276409236298762488576615011356015539131701574492017465599924157886342566524702981990650609086485785446969506517654707719183027845810562404881855123591765969142884527290157127018654644814044207363830612591759626356966878127207345114193451511140270429099527802330569444385466332984621379547229926567194516135139140726538897576322702859847869914453603103616932398078930061521314687503229568149008757408879226561200035956476339289263745212594170960701183458629638071604037522333658174955251018615437202050287079124084059252624804051472860365855494606612206183976355722494507287855114425515501808866863859540072298603928570988485955190123391415729794422300938969822284200845327341969494680701610753428280757208939434866237671522163068608421417046979276806407802569593748015334965171107703584981327464576939627358442852079529303435401409218210051767411772203835503676466150592445339595046085186183332211693007935875099680019006308248538825735083414446701216214412893523788438737950700626769974153034784024412367703475504547260415970771057101783571021316151890772479026031288171261478116525632450888445584140841789478078359461440207485701642369444271635263731491782103202474028117676878098978589547027198953381068869275314475747056323891661451527933972137060826886575025584527973987324145534023904960989261857003942534610969939811052025609153762794657334580294084206169590395435880146169600218424287320674649924291461880167511322022639946332041623324146293053669262312553626559668034420658574616301073032358052970851146894111687895821436621847280676224422417429131451129543336511981123450098780032226480573967453479591202978930886271065401932507801949925966724151473008396511803735975266390465738417287769784228052512911216247949287365119885969723839685039540796473477229208675215142675916252184149313749658889632185121124758424393189429462902467426520997809521476695657570517479603932529648909234107802388500812393350025604649825807597078567611765477808651341797867889414322980290753125051393781165571088639349309503098021375740411474657256082009527374097046179991662524046582644720930453600471977321149843918126515023818943776424947824528793236399551745297708136377634292623437349745197780460345565010143095498995597283923194883467569467822569769399080968773280053543051250645394163466124205870344143229634127778030946534288124786018440821296051577827745281558690472145043311036719068147017766587029460679454929496187433723263982230323037407725159947090713065873403075800386008085300361613698894345892564613494286982962496328960632913551668582056843326925618135710316567334791506427319089555332061679654306196512494160426297219260089556015026543177553691393906100090016521722719236365238333196644342780002453391733407535485418103615402698500736149706953668369924499937149369850122182848281238114384480267180934954065565764187218634785303035453542021585973082299000233974233827069840250540422756086909120680997282035310698608612144681102865630518136698762573908358947352819665519856944771558758042068362637027803082206024866387290796736574307363891195783055554320803883803845050183461640122541635554568010370470803299245974383520765400404638604251591589093960801223697441811375064049028984571088819099385640072694789520643664536260374994376118390917272311241296382444120267962747491573950684580805793218880700297114488041442212181423558758965064565497643142423140851518644425167601903677998685047698752058802916860033379714169624617422602167661089786351769689390889255492355351135554027333297703110414687940198065485736449565155942137899595188506532553289698437003851506145351049263796753485972260780699150159708986201144146956944413439783975506788581372827040855012719827036289074130402297098572026516333436644922669057509886856527806427259186105915252240130281909582779009535453086948194195904925317238457439656027247750691637813609057296126422306405474087235244103788815896373733072663188798145023826587879999890544762135947253608970038250528637088960265742235072108496280266707720792425616696780677019762135825218561824081869637036330483257374347285149173329473740997095435351199460033823158394428158681484903547704420546323624265994813080975402659250604684856200372827770700389813891512054542652076292188222344213203059231407873195391764158029447293353794174869101346145486244606724202691092136533319748027510005280860019883591541188774801375972602125783709395834836457960717053835181562014125574276930333048689611247287954720111488184665961405486520632473839858075356862716582604129522228425834552161400953009815269734435486029182216304985429629597014427679782152294718829818728574601608802926886548344518147230860517067785918983123390753682313405918476614424738898784764897444788369195292332912685282916861184508411568707304620059417400888053422726991858330815085451802977276346027579503388828005436165179048162504879027560415703435617759443323061289363822708410231356493966656538038751812818706593628511187847940154384515804124058560664321779657318262930708387369669779473271958052153921204225321753514574438054127412731777555087683461022651706040863311125305307708653174972053578558352546441819360340091234991825930331456563812428384618789878923620771955842541919961836677665845364734918628251770634128374834988062673896756255228937211877963721770401713945823237198862567292483986685145361750946737580682499480367089068178930136959169256790814295460548929250279934612111055237676568894445494615309680438971618700441617661067679953044866324960492011637476600995407823310677023161679805109936973389945539571876600884788289875656469337284124960916241592307091575807008683713807579037529196673423663403742465340919287329646921456663966478893373438048515228863448417386579864049842405098315113027563962602316730808067055401257013288359205040432102812084670767236951276094757266411849340061948295317844891962132944236058991209845721843095900304357411515881996284202435626700484226221067245053770735438305376595600680069596275830156048052200482123613561271778421329200488188183117859616476575793908440648683199141027950290008037619278221639761503025043440179469347522232483710648828908233252197440614600708294715114658753671581124136435106411944005105417144316357887886395278732102705846507352948571504645476803851778422520285868713746839351557432651125496811310639948036395787248299309014586298761983762196261956743308428494336851794201414267289031226195936702829447239617299424647107895804185817487701531712469482657011685032876907529454654431845098023556119737596210418263286817151523913751929184072407280861030927661209209612546502650774872333805219740188522946065635521530478375544878853844298917217691062466819455119469730934331150539314805132818889873459580359118760659149521088230732584052357465946922572886767587635041799689727094521695700473075738838744335007838973278265708785230259383964071115160497375025834821980407682763858091236293134069604885828888628547104366918094376674907205073826627912719564996913660574864583963818293053306273025737597609600512273552401189725769075539058035181449033347297821204947156487448156874785256304767549989381634671636893231422643582917757920201022328772524480918578554320590833250583119909234778284751728383943467640546209716643904325887239412878240041811964899771059067179480496375954074563264961690373893306601388848787740477469253222471964047409840892417582242928865664998583803007737361915781390918178241643291501923753931049801912219727128962439439668205384590495137436955052328833397299449578737183761376674264317562480066770800206313445372372753696362353739026693635360483244787025545073271660443689309794220029818580397970413214247520152595700559762191027840268855657096182816017702036136305932412377231825232322814835997591305973010467035964892246485361397290908680194379426675348064813095968948913706171778803506632422956724298659877768988678180069690423177126850334579144441426380958655785156965681008289011134169326444399994703881077685213154601563343526394535859568592276584190626776083731192886434686628931890798443636643729430251493843022813833053149627730988292260719871228120593903718120534245494720693418673127696895057186267952142598642503325197683749789329035984138289677811690577606008530690844286118149962347654422862245710821982223651340504394881676147405344225797690706537822311990271327878910714699283869133755672989918989570592745009440785707330453768645971251746691639278261646666856121939009681862996415495627810975363925506605252856476820388237065154013464230636824590497013248183491313361515705022765824908757151940074425177133662281690524127228295758433840299810485980191462385267374410271513002924678879756375476520464123275567258071663612770534718482302727706414848930289567914535148893499658878669800961581126040684686598458194217674785223886362582820051505216203941732104306327607661836979606334735234573308223772711229753696472779212818629711644005804063700258506445910000243692050101105979938226017218293349986664313775734799798149328587797411677422873465691217737727722393662333352267249727534207615894566727416171932320749498434316863076676554268841847524805663065236737144140122355212461928231299360523660003441846432803427705660613745203824293204251399108473796752409870329986910306756303805892421743319826590541557629152856368436225436898261448023354216892705158373013946419626397530664716765703242324209864960105464231349664188710086476968078914085280723688376058242037103164287661436047847280102169309237464019561775870727806408979917462709263295243938723142617488597959750779323269630282458743376584567026104979192850033098711240384746721766266632152885437112536185758754069773012295347386721900573135529264366460688136115219326976262558466356481184985866424537556273003958183871201216482445830076805794490848031722683082479701222713417328287132059196749032880252886935737180943805993519121790028260493562882635458011037936258361784563815281001886163654805530741644557867080446125498339376793968589007319923253244529878957572796227020244992371100169229358751843004961061435372399004294170543084482834882883818853747036073544505626122725422957198252479538456291039229017245921640574267791137788844983555130776423091433960396998470156399667744349066372238890499736280240190817609989065567758308779923225895107233301580106585270799422919854794883258575091250584181494534353673404266594187206855704926561855222132690617686924033289229444359619206551367287430768310270607318001002079460836492472716889385976528982187157422846609895633947044269534499098950628769595649119768335320114165633256451149201226867384375675223771043811031177249477911973140484532396551048876076803835752370852697535804715746039081942529867609391802980797476003108915649165189429935844918795164915828389342705439766817171541617880934295673500901675499482366273973593928108338813698560978468194058097575778605380430174780357683170882433696188377329735401961818749284598638398258791451266834180943637585637927876300542302292479296102012365337331809912766560934302804131188928912043694563696998676636725205707665926907260635254704464564939015221371192063248319988772458154876401075757656781985720381990999115456636419195036187326519221242573529573176926080789995706294819054551183717920086141503498259327709835131494103223790389620020475483267827863230577367777872373742460843079699495487046995275416563935371903533764574807116831428194792138488798124127042300984157451406570807709228154057173363425249828086612731248982568792417197815321009636304368357429890891278261732834402741625894120636939097480361484966058894942034971291181101338695677246255261647479693302961416968749693369332218368046070054326485669311699727183794777271955839196976822671843598680631444314782248541816592859609514833739179886327655896516463957888090773732427213074539785404446232377205640944211532126962309267980326690930622563320505037497203455511092768728088019072529098027392609977954911207499361086809962252784027112413804188530537876725202390401992708632597586421205785621483215104187462309914206477043893081366466646565150931905136973904648495745162801704547336551665543062395107877227685912082899163050045908250684376717545696870206070437241891353709764791205864019766495790617173047500802460629658761207239501102560518862503303274722505983320255143031036239738401164324669003172301610860632885889492754977501144729249080018353640801779533728581056534162335552829488574682844485723180636630222131512323807624141076607260444866860726683424739814428257083871421353707804449793786013243323345008182400983846753808320315344061089748351388389259382174419470411356078382513770295781918098277767361099950952377413983714923509194067814018366320380124977956325416683627763452704464905852996524647595575970537835826202842216774088532610050066746555668536794433975958261599744101196731401540120654083337663074799557129679193174528773096859590897315314767704610279103086051580791016264846593422101022790604572583239051985121641592998896471403704935438498024283824227019860339271913751414373897042334015996389471587750549300088111049192787865106874292261786127837947010954024736894715538209382641995151252661506245151927161630252513210456618624073656458410200584951060389261714229474151943220902264727913474726153620538195848291945266860278075260207389370358335210146203076132183542826388758358745423194036909048913451028873629290356290306783451327285600515580616277188324188899573364768602312525433545473390921858723366018026900469178437336696544392693783662015394748786956964859766494561052560048170623650467054080799044900692777822596321217428008457273192268139664210973575855161332733927647228852171555286530613274618921871911102159896508079072621806133222026092804906776888492042992236767919824088134856517694255422824157509135281131150521671216341535052115984390662608353556588122402620765195798748346540988045172764191689785698656137601223567267161695890083220867237453646822491558382532180326534248290799047987190979546885480152246058353169605992390097364674072086856242112729118320201922658080786343860227788094756073298378651125142090435017939074180751276740924063753267469906618775505707139298144002932003795310760748586010572931210956656113139014512137101021334600326686326619643416604044219216497263456073559887777396378221351257564683385278713132376644919949013114552894744925780026318155086192653976677312806623595736709156756117877925513712875118188511561862802809235169619447355713522275373113966593902184968996295995013056445102172791386175192199305656303815635351672616378745750366424694504549088975531242227908202108205882874857412151907450300932069318171120372722076783579214690875393134568288096020574785163013997663400045753767458785990226767464262121689842452780506503363835660526755450133736916896663605054225535197653401407503658300111351362828178320762702136839033066734494573795112651931969309279351098032388281879455376282318172042059302556270189770934314641906638886139844732087825118212436492996124306036868782050479382612889131188144975045342853615464300253768712540421707725007279034992313088365739066979972221991961369317096278970767856004295126518842721169791958962279146885482901939620801216471935872189704500539534327847322731494969668666508320377737690079081708903663419057223608620873092569354989564009498090562154787320363049715224760291545506571302296076175055736743392232198936972497945769870231146100769812858632146132321954313813631326649113189678564932252510312031614197125676394180836426696399479727279608755373588468228815335536705686607979467744625501887822556188472925067828941841885289206286801431805251520056056972124594012603475365557134958926092915607769467314697705701973395573444244511230013217001116876050276121509221635261604532278228508087660196488308617613591298746656820375446697300216938282452484163814893734413976372025928593245155929972910640320752383165064005983027077966188343836302792168668665729666336610136202506556323758658071873819644619951104006149073140447436399311519196140551600649882041141036999016276992373694293994754101967109142998624969267324001189922287427360711419222050378555606440877899239177862480598830766990590991260054517375782874585379401390706289705621952107018410926721601133848097754475326408240145720573469437155685907235414719751330223084039551943223755629117217169472385809469866550157687115027991527419849995617804368505159308802239156897803458761105173365416311970824048677320674933438217023426307961505506979805495680435998327770487394748219360014700041215600040496435208639610297464129747444092130415493827791910478955066591495436167287105289288902400189282436656189769330419869230302272265420372176506500886411351273701231844125818625068600421527717027728882661592414378108560805284068138140941983010757775026638454517829264901937806169963123904976548251156729906817578376516676499985566824020557117106509208969866998657396462288152620374826694861095484516045374434765985057584947451253695681242599409094949258114311914806874504760958736495120518076212570488431962201977868503355270471807078501843207299647450982183347117676671853019949731645580526767994832472612611342539925837332636246231299273670382592363443611561008113134471413722614722841406834949355432845421123085225915222403706782613073204648278574372645534288127174205213834468072852917753586974524398210767897214930178317423034715393024375583876615886766263021085139078135043689448035461207929104419630053032753090404046901952496735055640399457774332900032703942538118275754619663194271482240102119801714312696259827582245808892297542206971314348416635331872346714150793245100844241705310625002178354775749042102070573117645387373311576675065520819041146281806979888688792693429146327092428836089109459309578177241321134805866032557449240723197312728562561697384283062953223656322211714543901095044541176804675479505865620132823899632432682177929809152182986221563679511682370057971557971268808145076946888600939530071005862685921699943037089488022663833747264353502484045966227460060237018881327635664059288538680273110440027355552441744180259897549272526368158986866137667434644192846093502303279808533036241396101109810844941399105302817516369105064797471834264017631014029285821700993420577131483924699735941649368178660371557462654748922445057599975445151290417194998366165938878229575556070476540739990290694701439109090675155314125731757608639100334995331948750867892867221106671461891295882715590422393663871692492844817822798547187408917896460505928864368247950225442091023732909994734371885202184058698471806314349913732978952402122715934899200875337799619573246102915194548632889943241684554292209459896928502665992019522858756209474893048756506726920878069423459266870361151699365499776516838260766164922574265483926006124591524619364384064814997073596689477243567956412918926015344993618581825175829074770265453129872435628673900141178867051365616530903806492264785432812245845602592672436450199929772308667366809680315863094059621048261550415059995716635167904110357317344289341955179091149280909276968990538951687822483115758809032229410544996506050120818834520290854752289776747110022075089359538225204344480464778945256784058591717981373158097655894613430389872804803204602154532416834976239319363238049025461394579822955393573068350666764013083206937520544357062182912678738365278838924654215558546292002637854573429850751507491040353479570253906355348379114231256805158788621099833200565667882573791650785720795503307343481470513853822362580926272761380684270499768546526550112296316799701367468885422191721654723715302828113599561018908152339343439932998642533789444517905844883688572852210956337086361215892180030120056994396379994564640009602311488324680603187344301360466463389163315295395011761045222685514322879398480576397550679025547380713640798871032369880726063323832801640535351324605267265841695883539468472278112147155745326422551297786379225653042094595884614712259543491729650172770927698754689269702604872843927280287110662322335318940003151816063364011810216536242338988684491565431025626310304673628309000328416544221947616202479846391719231921619284242621637845273881284534177507883387562789651891622080919310082637922180331903503603675595604091651797557501611808054927764934894295013129376623184514618443744189301249950437588185367155005882620106092298713995373947926291074143505153175689178652868148490390088987883366854329687011567523552725424083993176143043139345061316582067825044223011173564995703697097475344404710443921266950377801133491951154145670474093831349883973098293431220381994450442865708409182215784163857694445072796036156154462831203313438774592272229175684258976399616382169792302692737292708715743807804445789561068804243575340003537530081522233086077898287996574475011285962223185907712822832442906922189170672348621691200031683704533755771248201746909767087907595506877179378424783455318118460481562909894344326904571046598990107093865526088254294454971756105627871753149421718814386337823134931262906226611769907510535492895852606404537242410304238726200271506306620067665800736556763938189763042639420203525033895478358681353145640288935743587558720882679765953227112368996234460447137403124981833723490165573732817347069812177218942704073199453118859044456406662644367056414846582199867348200948140509061270442010469424230410282659463509327160263000406729378772539927341570050712576736009298004477771554740511648058692633604014248938983044810416561159568584134448971621318570223633964063346029342673737957167825560675817970760322649076653110632699264614032964104011404263275523080386795872632456552738847174371887585161335056497274847649922986221767880335267634800610458290758851922312955709216099117580615165625806784894252955386234033961391660655849012095087175324246984935325405379605531297642047204815464779550167788563101874911648951037454223607669448979403292388706268677697463605295534010521073758672883436824576004695516006134241689428247887734389813964129991997972273092531296532218887259029086373911417209726010558907675777151345113899271092724422742962533872519851787885810870168988804431662775642749851449248210141429746699218214825865894903002186297340513659141425707476148755673370387346760127884499952307650951748952493091580776497635696483898059416670144079247996654302656915371345232144785790350555514190291465438603942383301567168421479768996978365011892149817481243238930355268332943501298506674820021675835026906343418862185248017600151821326742142109849421713309431288612840573707828943359890873026511332527374092304342514042666077572733335007377762538101872716226481444677223360756111954561725858368006598794255952533889022880495098965332682282187750950247374901773065153851543127658213936657907110108760529750763482669412948530013226702569945101185525939229241482241928939750953685129571396715563619774216003545088929355499319575086187019600743685778070673908639392286461355917483258853752564651386316752856457734623201285461565542143957576259425197923468467354570601554899626930730147199660061207543566351143807068400327396341287609456703661161255553000819446970411133744124715429622949317394426496890382725664454063550917447448484483783565358050548790293529523820339461281788027664406638768495602435009864796111984095527656664334726571655497205356163468888779018345739398845683985876046898497556213661457371689922337209084373634269061079422295816640863990162999110211413431182737338512344647735915432918329407592086269808987518000321823457822749437157738399390238445225155295123599294609501181503369385984795315379930137957561438650679209535365224284806517117626512831920877763012730700639902346127852564188238473813403567894029323663660603639573030446357296801553596354173631088664509131453634052371991785429015771789392235190350371342156363497548635404075191826025146546647566148006955796189531171488518085020225605287641443853397947973171742967215258634271263976690965392369944305564418920716532255871631713109609041253190063300444926967863801707485130274044459578573156110201813221791585765474877338317205785306883827012458226703599722993499352184174497877943247387421270283157450237738704786500508195350978943936959023586648891029795553799511681518351250331612496267387228585459119040636299910372955082926827497249262284193105287397402690313631506524734274735524818419602165334173615470100402784111492502424393545740354967686960005898436535907218479211575846436039169742138521210156879067507323393672766634669132112763591416801356080676857774572772154900294361134085461877230616363189048485534313005327950901766250181380735206450032482410871048142732244928459992104301091952191575390744318191258170781584692610758375986766397627948354899665411494312472339081104988520333834889546313287642735171429057903212142288737448447292312002445855160099372263670675277596089281663291095390513161578559839749505307249674187181115598354931205601823058428162184370793559014000995791784273759354697621715154371792701244748004651836101774418866665918206827466369626620729774287827083984405818348515745011285542641290650951552518127724339681339637519699972411284846246007231131412095909979769948715641951892203592775166714368895224246239457594926863373847901117493927779490925941709586913941603602738411383030797688277877978377507991767047320431828044381939336868296414405416177679401594776529884635619488399146792981762068292119996813534831847738830196731292561909175397102346551754219504108599594291940680269241590576908430314833149670054655188140658738728191813769664781783697425696530606757317916187164915370271360939548372766043466826805892100679917943196253091898179644172747263132591383489048600555286774265093391344040813712696855277402957326867505722374733889847073082744114496714617905105946626456656271249766289559194751320729518300787475304276957619142217514656670707934071710026514791602819383837757678874512667656115960257445435970970490433657174084712496304391334010196107477357793870819581928700367267923022032366409433901747459410748295508018283211185256684964788073389282328691695159294438261676152424284207362344495015518594335288902533144345735206123781359437088992306420594903557028214512807196103446477324539962254559119255138873772696889716855067749370567940590607782749861667930123164642798605131916986750521391805245092707925738027371790519090895728017247188927317488878150214361873991616944024416211035843510491268532862929371973633792679492288497944103163856226813396200559485500030392831706825036242808206266448053085139257853587115659976522885748170835965619096685038174288723158883773748606568758963615710668806786502057413512110997629679149003950132209715733392647371243051509602673761227589797971379772596489377982887622899663861569769659119708430670711788312190615170903434999073724973449898466674582284818779562813679612330250366046231325649268520346275231156611662901482420493650327742081169174629887884064848020840602101008597787511301045643093013103345232840101092140748027987396518894520842087104332963843375418583588378918929519117725189101206506288026785705450507055053314919621378383269671356017219713473145712738293199990130575424861771457434504389014934341530543896592542655375386804837645676969871362389760222006176087606493371222772156791919648433915366763309761050078725475526357616247964771545050911440625307924227727883171927161526111775015392458969077412193584403721345414937587943036789284294118532927478747974567512547265198264995305790993965631079568440593638909077582313985321924472254025453004739020545251880300145013790844503046510308611790950676640629281468592474878741869974482644430405217634597200398228623754894300872508920734380337133309430712630970690078249434931065429866607358324940512952710538359083150489119663038045262621558317047100110965265780227822876906934257712180476051523542021797318987948368844298515122140582323727201069076287293968481154359846603224502018753535835381949411453977754596136288713303702864978552431395127148977518166995607631241776421859586537473386804539585654026976896306890956175778240875035275761928870598421407287888329278538493067689217912311578374209428399095501079169630702856963219336378166231435304701531333981795932074903982820698778570648470417714693075702259582950709736927620752926583145016542330170484456858849728713618440248250478550309948011780431149405668204447080172032307986081370315073755113682860921636098851863410267201541438728599007080086358653499503267409512241576526824191479998075591247013781905947744505598581760426390409713716653962209100710878297973915010561602364586097951579126659383529088782231437565155689949141097635330295660675847998749063435382739633919922878837570081843823540789029028191475463459734883343092031485749411032186411186417390303552998075158622750932146895329665453259207054898077324262041104127580860182632732259561567180306507926877172281392882363256880710933086242263978818457017536381664309788385971029458767194955888714057696716847925696917704404533128009462127838869130203942283389168019976227562175857299036382234375604000058631960028144180572887231683124669879683209493898185581319338377805501898524470822197942572904964543022379207074053648386914405382345917144334025710826448108695781585543352004691545963802020769556333934016742083032638590153597061663747341559013898027472862435112036194419528689103084482370387059625533768623698575656200268927147349589048799896308549246365213771208005202150757347425935631580090750037100450312300982496209395889548448094800146277887128883426022620064744876911142126184991355965947058190572648329484692048445211551503737799003098575203949793777410007171155568237334502613419860999121218278725391152186868291008512219588880260327189643382245809520800218945100763463264037096331583362078223538114267456210897138339096850071578642183048169076257213450482856819068059661385643019204704160405912762864588494593999750198346362577799269889777419563981824824504667779728124153888965472231209359250938235668692368899310463148900885157959806185802488923488154409229793423647396613298607479907833156699681410267297510654527091639461945259195070131109535859729631274276264251001931785377850397850267988272100119284275736111858423457560863576614717336247129405148951736195539895799536609034700165158338234045192760382767555793404139066910509623834352910223764367146181358341915190528825266256805510390973669273123762701939965096638716005404082950874758722029886787111450133894173455883423255976591512641345309353970946336978408402269539286818706918825050961045035458933446626484768790334589402769576743213401280121245144425277925573406619173970687919919305886028752047858303518627586275380496347187260378409129569425244615145093009157507848478038834972630888672012132456426944420328067045103504958874836983122491882552143247162787593101688779323300365918026635405131881093396313475355750202074109677108745377578985563958858603109954588550097603017291764216136607802592553138814383161670855222748640033451109943228632459748706742502221854114741334625445465302041772656190199828521188599311999051968617302610583259549083550190424051287303155597079492448462318277207098674588130872454326133966092377253562900616363059926041839527836536875904221695971589198733058066242048540684747429647943363686078607988391221650711946962226315604368463576044806698897737049245238601018172233885907249496650787598357524685746769157767537023233819699154474248891719088443144720480266955437218921838038229291733407889213565530510868229889273418771567238471572570683169703733124364828056608898437919403372298802941338640382552159097399157000096131655209643506493906728450982194970908452276270502358099569282801278853429039263183670413888069481421628701705305254542915459518453018094361189841741440437223906099591935353993495973508643523171750203278606935017207377284922106312161765907955320222110205708134904984594191702834352435191090902262460519243828025591490136922416241356315043060098811767402278552644275703732221378353535995227659629720136650651883887307888682050574842986628455704493221442406805969307517355479048395932004942275667327956092612577303567137645966936593949920548865427760637253804135125445064179372300583384569163708129348644027111093879511380074021574028768015263647583472158468304164648332277919718633126324883280763730609947117861710812094120769730063591686495947269290987741185192940889774347139641191109844101715384386165616004781495358025161372586890731263719192031346410099592638312428264854936485692870978800723524703052164690487121534644067892899444306242975641894547685028981483059437507074599618535787010830601411751677593701863193214257036446695707987432748805474116949671652428649072405197032587022859959746641200018554086881583209034101830662884997064574579124596945088133357594429324499999382556486962843658213982845984886885716144513996638279960054181548217559467997611998625434531381727247722214211545485276136300167842600576653058562578506318640082063526575833430411010629949802400758973086954391044105647504824778567624055213010565300658112234598592629873584598759248777669782761199123949692207414110083882831952446756381258410506973998635562200711087071671214487623615946865577602679889141493266790715042334266175806284939490630446224328853593085039853872391147717428654523558010524445202460131065611267053837353179367855111591078209587199533082883664265060950228416844594229746898752601787281944571879694260308531148024839655247065813948750021416356103445176737632213644075025740502074057688273571350328297199886098727535589014683264841968480361575963362069419342511660459860321773001310389235810840118434743985281271565379997077764424557143361983194319761567304720452982928894126939774731334700692497523137619864356522172936715598651837976941495586105173418358185011789960671265820890178548740038169724020113524675399458589884662844200622835189466843098862321913980717350275659124888108290252327251227960659000656773598059854411146076383863206771605577880220919997973933332276468155501281868249106751500803153925454154439058083200949290146671470399251828336488720397047609070536926666425359706540113215482626685685094177219604526696360760280439840340393483938221660352281069922175334208740495913885933173793841197090783157774862413722612665754946739990522574193193690723298278035831641509165352271094713277925045659092181030040316822478681183134276530713858566283819984550739040810235230542027480891120947031565947950052852258870239545233963440044315751128292022412032920666285917690610291804200751024909022271643744514091515732178210955407613309070364007123122938891819549774157121116001173238663907663969275389553245197458084774674711287790182966300532536816303905747552898909666040396039066269129613890791432062454754506134440063201034973517423245807725937559412142704990046854372881336205551240627213706756760376916602103719247149742152073962545465115765834796418243371705440390563367224316861932199189257324131822428343920991524013361909955039409849208022669092580919429014859058336835335330461930361185333230702571462056706992569024799043865216312023228074799521534865797937958656326475510698709893404586080318936968909079544982503722763901036806354546183595183553218023944470904149679697509266828722080438480588774621358669592640661538128075403060014196358135291291629531276205639369226483448039267403750714685855630664597039864148555059077178597449016612996328964452878403410771278105908013093563066706215770711577206467988711188609931896410775169849251516115752349176017979559682093764425856338183083348456795713223452221098385875797804191299103621736982000973746755078952495200846430430014825041460170345830154375169057335067139342596794736009619420076338026916324092573844489265270253356488855853715100809976886391395316718563485401679823169172196375996069639844568748523542931553991169218438171644499825351200928993279417652937320760399682682651142752260392942124677830931633280628193527672599538124882196011988379395421598746036936969860393505312438816087679522184551823216679704286691617010247293114876709468665734041527298713047233344460220353985771358915034498362448062285371352244527114766752384830561307841086539753489952773050317013848339603886972712871972869681055254583850166442770290561778254101375117625862344848395107735808170809513819299172730870298772483761837281528888870100602912026860156756958101416228464481896751300380179554500015457713111702006703491749751558991785957121090506547330878393479182447989146939794428100928958564444587514169730819348312528187472853148190711394690232887543728354379219898689717374291701711599272301812696558883551877419809749581924865734407570797790133170672510317830750546027804895146194188078293736973598476327311247276230064484473368565447156432264370792815593790239369430269378116123131839025894286348140725431670488498307526742350554693781136774789374428724306404099167418643335606547394781959837507705081140257899502284678817258298624948524817764718860399104206388807768618450095776940471370126152920670149976580198975808431327780290814535975970472625973460353967251389112371808279027777036585510002072370914751713600521196757652747821663769968460058959267119571327705440841156299608916381388637055830020476932312160454013175132584994032954879479364323466673418317180051812624031995586496526299308758069795114685576077227839594639423538716053214131781147908370487600633358241265899367028989478048651029609251800963574514769824463649863619779425550106780636601151347369742990680476004880819968040528287327375819735816135550941067457240650403037676738859364423200973262315676752435601684941124656080722421585744383035078362615161908790298447677333169182780207353410299397719744723228358870173407312891914971137164300662426383486590949122215465812281985987505768395802724684465316904407962834316885439492983386139382116568297582455059861627146363390453650690713758878104124585340626824155343813206161543781396958466966174879981632021514375667709782008195487030978654633860658172708301381527980571026323562423770004637965664005783043038827165441537749193063618585798092414009529181246067294208084182626128038863354492233200800086454409679496332095012315784555860216512752787319956380777765728376860874968164683750369211841429008965480304405709207346886426959280360716282247170208014474169624547358122747527869802990174532673694687597771856648264554120762720838386624147984710795386321513363996218578817508448980627964369745597048119542228487123300964422636929282457780258582287674267362425284765428866822081561349949036668257374541133955288014152054161439397671518320427126566945053269770065651213477282929764245258076970958779177072950472401735037693509476743798209136007843197471069497978956508047411385916575504103288385570692587179547736734154470949495352260703531783398607496799725343400907204792667848123548907655359871264094346616703335463327754965665116667468333305710126850345137721923158289310505609883856549399581579650047369943482295684256342759519726605395562102521900855656021829991524948524042498278516261205880451316913507600274726083673383580009728768916562001007658716771636757038333186588671497056367398919032495822428946808337741245216218060362466994579150469368976782376649179497924629804721286738282099520538955646465753676114032580606850296229311999422894124556372934518836100036230819259439664111993163529894177115877631358557345156853714902739837977646142774528982197939696573535942281288537928015834999300678258869717793080640518892625503353844140970998006346046298561443337687857781063762411101792345242509180784802359841451410542915261592705431683737816707431072951614295614039041198723101170130888095145733283650960712824090730450757975256599372058778272619974982209142561436196845960475387045563787370750722925320531124792816706216753752757945940132856729245056293639681087943050852577202565300496265321523141114605328674054171919112807039544433163038957272058308871437103860999608860504854484040955616295598491721710905295157129726965596314536737472414015376947093662344486965850287109657088549773850595041983165489874599842929065792551042928310094723337741946126029694342372641833097429962256259991933365339291656129171858865400805804290346156012649900223550981068088934338379601113405893498248691374773451980943349471457012695933375404130483518447476511854816225667095015090279939081383233429278368717636508466050060591906253730568963774835955207869578097968576598922230854373955309471866310723482835691165661642322056436774386327960364489202249377846427542642681810952474904948103469993469029092097043849767116039458134963574902798337887580296005819565695679048544309409942103184053261780236803334853551733534441627633026862305223067092369665649912119136298328969726880519581806414592153040907938897924905138518809634104071558174897264565664492137725612550864173076240677851282263532948125981878070932874643152105590716316825639996085143850598567261148210087432137295094820529149391097620652925251642239287102600424760235222144468476042599663501102796931427833824060796425669944036933547913350967565431537436330435569893685922335377986269444056777665600579955368498458116571204883854289058733854516590852356606172384087747274804145877412776898715538091984824826924268727100396174185051681639644000095539652333932957519477261185279326997406148945496590651317390148785682158391719928831434646711178063455531066187846921376887116504235596364703187184518473979482183108527082228535915298168653283675517797301828851618630020695496356467498947707543402837837254552189912306636034700498488023300644467652500162447961234850112632691223223281651063420041093769779229746342183309733834687492009769140710327408374271429226435325931435318884622513544103442501871731449279152659592127343573707136209760849328325158219062757558294258065676135361382138707497710598453788405256240115249984068017420211843299522060472511053862649028791864166330623067924116169723156643257502484623142520696120660131675533292639225285734644441398450747577640539264294461641041800432173944055962814618750386893378806090142623296431051051738133078034792416409322570352178590874083917996078762418989647546984692101857858339942787943534435077244802679462160149236555585724915507836245037350409859840328430494438030141290519643491992541678111234651209712291438599745278527987006475358412211970372154934735697403779703763007986507474438812550670558695580300971224955346879006033695686206287274975845264326630176281929713079261524152492738090918786052321395238816911078163119595464813912830308847667005202085524251885296908092119385934882213850614128362305263220807151371252356540023462408990456593545948878435784941655299538587703238388868847338689057945595086372190875015051118602159728872902034943218557977270527224862478313240409038948825529251277299055405251192147454159564477660027616726291019723098336106495486247740776697957539810583657708321370550322404865955781209013084323098839560465712187468950611343032204619299602139143986556236123620020969223420379920593624036334264132244664621647577900807117505635740771983526201324695549195774512628312613626850272391111617933050311484103251895201262524422575578561241398581397211250710272308586188312760349699499568517197035631505319403770888702889770682055585991905219174793523982468197114841879481385561404175389316819986468552579439148134525959429778725492068427199401065694514171392036016159702919818631328975131084497201714969083870316773028222187157223549304388776104318875321270643967632847208350853136471316503538417327765052817679429476552101321266175238362219023803909181598823193109595609797989532508588825917187041875736177155258323840117701401106711479195871496651431879855979388552936361115375043324908402689802379951771310494195646321231937359745125282252854345961876784496103964736874707381918175518271450730130963984090907700528905095315731031285968667461324143289398577892482482211062671871923505309874924835246411241566990399403634202203406977792445408843905505363701984679639879110182732367046464145176523636722555259702912245549423028861576401876834494345493337170802149797952307950058743051410539256260632899139000408120192753964250274211124474187658366983762686424019819633141600296267020493961221389592994608804645899785864497692099239843559558445328819075606991854531433278213444993796285618799725196749473685049745141590298149970008732233869061809280060963918600302801693948132350035193004030204496322742462675881850523164451311150087534872021750843338965730615642518648270426490842378322414187606888984890135885841106880406909729090303298097444036600465512163911940759259673844610496311627640782698083963640207381501048277840036238566625714474388895530715930873573608628983299712468291039213528716964858886123385879757805821786416172973841938484964446333249748331091845838153598295962093554955935981404850315068531713542266633591730864997363866846023748893259068784402200228462775628460854371208491526947443232741861093860088142934706102685854269452405393738397799391410700883994572576643814373584513664999598842838902768388137497656466514996436537144074584633981148455661449992717295106080248338988701396349780088862307398121754644828262967763026504782382339640055277314767870437140377745183243983491773495702662124140229173199366405186190062280674470265744000051200306718197614165011635752023601553302706439509465330934116507857560366811931392122642633660896165907521997979698262535047559956469540403549713909081568868261987375210623720912678177325607257514596368089375566403070836255027863379830662723256210174373679969576008552371871738672983209179808594901400337246740198804481428838987116039628555261528364557293392193093783639900498830495029357899935879580028961606326989431064466828342662174461760265356578235717403578819027063673771025140737734569866819675126252175742145814768255033032505272922454990318726658682319542404737324834775192100258085405998015366080296511020938433957404400169722053666102555535238411890549482335573004056061986272274995831681930917473014958929730575677280171677292532824472996544676341713645181497058565374774382708656576951159896265836242633677769728127936462072623034634923586029886157223294338097333622858425952490018693680353644944318567355721227930312314201243495175486070509230100755274890875995230832018829429812200836466632282158227168238463447560577363037562953217683962985188550154398913414406255005575380320013038166471451974397649217906103375262233235425296509117350486880362171222884549233895913064461164057692222044229866546104207179829630603689030004825304472446513851078458263050605784551060495925225310312488783537667152057918544227955252147977147789962881192622913881895434891299161945310556836016289227322374883797633581704442789216039420894796856402103610562777064921931313208992839528292935608478162140558312203608110413665442413529786766971227270792330413959987660556258386922689855195638799134738389170229529100765910470281651314828848053018465822182197707372799222152106905809640334485449298627611626411802049200483873232102587689775384680338555819254348984712211485339692973549110454164665777592965250827148556822544940478237618543657600187495477920112577225354464716326543628529846136814227066654413957676985204542911761185333940156197382475959856430393549413411758030264819112034383421713297006676231941627302242554029187677133637767839389714706949975486376536414141774840124190608027434597681257620485448751461394472642436687161055341173820589633512758436910964015921873102962136686271088678296608806699117814361194287273808940013756535777505264120219501402300034165205752987182430657694409513131037787399645232405238770103432936779538275320840448102641888871682295438734886741688435360790117173697013958324445863829173252820712334143799522154020583729167320897762134161171973129097890156446191458587404448410533049477924699033671100124290962412855100132362258195482235631339774374294899538009704535429824301985428860963648919971296077918542876411070456081817534041515336254218090036577522476754358628361333212822221181043442804533653679411572404084498947176023876693740098280895164143152945049258278583106044879737516018523530120815821200793911688750410227285133556846910046121063518946181911072828529954913582104315270864719935435967633097161752012272767918257893882452651953881391359812669668073662657899057094687308750857227601709696791284930337733490817645042667942601929826872037854971280161023186718891452996028082665105409172766521461761626861050466161703618062450803694330989396663523990386095658423125880595664344541215414632016444221360528742375064435008704467797563256129063041685186568643526656206973465495314601417899835437353935240067197175931404661534601751947774347667203574771034862962805524511403984247434992996729960272142649614176788065853432151398607194206453050171186485547784355605663966102635661546517343256032997136147778761707967460690096585952686019224343314212355450199753768573882122260187839060995731875202316813970549388490250632538266025239013338629505157667628802088536159372988109259432004076106470089800680160682073292749678111709890259665320093571298301156144070929074367554756883543765855981529744870709082530290987065229799784072993363098586495358866468871233997788321510607069942769883980161509265884388599493692756478007639007649481243212939829982032424914555214065225441960606418863265046795726642554515253061344638658329515565582037583213132772202077078790044759085620080527996111229017520153455156845496798092610065755570191924734828427104556831844380575520247929484196190362167333387950036581560739719506180177035017588542266522007205329022752349661842965594581260638563912378415002476058697743895688903854222011573830698032445278387319368554171131396039037132055744490892864610573362987882612232349303522307390053480517512246229938295940999027774594220156998165104448445298204582334988320367719184620643064162232865585377240649505609175015577916197662290760491756040494044152197901872334341164036781391404894681528781393196209040485936075598712934410594452988480412921946485997556210765320060841305665179324663190958255348267225134891249092820820743615929748649851035297993682232671950698820167418540813600561489235018316007353552591416986391930833010461600301904127950203895432279726523611964178978441647785335627978476502560974669516701351744029984038947761689909053764764730712369203802583993358280383636275136288812944284648888719482301112620174722955063679324287880669889182275401352081563811791501988370250252546908558741935971797975006935039209835570721528420096476019927296120344554610141770337485489613479173500403894241805897557162001534217201783516543126955819235042948857755343186387549161006314628497043773576068260411053465090733864439592145066231940127477515622500896362840448009038782885418580900711781128056263763277111672068895211513594881991636258295392593110990769416667171419791102924193744296144590563643969385459731392473725380803916669901606710144260863534917044841255897169536403022936874323366796890350649447753759304235909925254854364320919474045100486805719528594233855201434843857916268740406463792164660491445976235333798933009645445181786267241457502665697135964152329757611146457781186112082929635171572671328845197898455302834489119870867977252346852987904773142428294813330375781651730054302657078229636119895516810056468620229636738258135581574175158253421464079001530891342952842207730448598260287498315487862713499097350161418829104231134098408111525511570100029380007175041824078923369547534326909237605119285680276554617235588713692878504543050410812379094262307550929378060794022873442050038308207243773107900064652097149275620453632645593429735223246275385369015273987998991305127957790310743870505633833831279596977162771650535335337317408844503800178886436384406712435085450133413341383253943865054910813878050101055500279164768693170084307614431929265794536809271030938203163453276002938749436576088658003732318859822855185712885822909660179654679577471088149079738857471727737864529397364210883450217318395527701262276598304733776215517826223898256041570163179698939367458209386016929893686728490720120305509348983656172080603419769082071927730999519133846391596549847623026836346420673431914164848275441624601955070988958743580783317975059259242351346857430559121658648089210412986296399531851865059992799922218242569084220672883620376207933916732062666846129905058621578235729687556663987160067503993394827914401826874337765817458156911993129028708443687881170251929963052225605259516984753876622006960065192724152299296757177787729904541057244408729965116263848421925592913077079264962424353749824967760979028957609650536388562907623064283002391053555534183113514439819653967852181680502648288972039538185998770959467759619659847480103309475472616471390480571681017600073532637952000668432667392254185538865681460419287860704083509292985145124863289751823520677082573116081885378320774536629091968433922790062819575687822552487880983746972309258784095245451195953668681921363126379917989331702579446871745624149528999832703667413381329171762072997209530898339248371224591161244494426847095735463125759794145803830790766070920325609702231131401336420079251918930335065543451742554675347371534016456340795497219751627090460050151213541084385245532871639984656980074291793443985491462532985881236379797029521869891147737764202063330859518292898860182557498316609910059824861818060068669702626270215849766472874581858420631533389333875903951900206825770957372454449487901221939713131830485414554243060671682775253009453785251895903656635897411235757117682751163206368309377554237714648417231901820743347989820912548654251483020470222653857165517740905481328793700917599174339788995033616303672901819696973890025231876495004997507642336988664070205192428789329972368229142889525093260252490429259073997001164107457522724063984959406795501367406764949204800957995237995084183911781252334909599716900832004778189311844387661321537507614647941346172823651696986216231635501377217669894609128638798912781382758770757688825032943587668086675607308564343918274536458595359430630907239303139803420982397787851764829543427236200159875503707969545256032983008771698785030397098377439781468414441613587733408722202414352224320362613887451887597119803898243644482484752443172084373883991838677546665524777811476018151198434263970078821004388517701742800352865053992300700678300465964337561781836652060741929388858531256306572756335788596764193952325929938535017325551742677232239439080880260630798951003228501051989277400415553207830623078481572959658628793137835799459428188300249939079384838577900857758343221309194250170929892128370259942376698521720985828540319100455340007257674523037268770669871755960865170150187362541785299919918449443422459096214816206544456825403708891023886214202279393254121312357109394422063855918604139794993947555916942371871164823866072373063790630117532851331119514917569137681068460681870982177106440217334706345309297538928059899297241062778888594997398169171550670426846754725379958369420473971798897692438265216342110450318811066244266233039517520824618720376968586293580010091302814415189512727204093433297104402469286848321119150792295015456272697676893234204235910782351651184838621843895609291659458361806141425663157174650225653856010206149567343137357683915573404104235706435321460960034292761157983670948518801737961487813205040078175992158462986766388010322915294036349515782332902973653834255530845630552371116047977476610067649752201485016315084531160336176326321493033750684593189815802972541111240416450232438671235531834797034515748440368683977235408944650406359542287313512695276436123728030004384837550737304980781173133775645657226619709732548663206371199024116218973127654143693347613690971931620527767587549988550418027767288667869669521105655443649343230970229693400428882242775075457571343634858054575875237352726415423391311314871440293545647634247831526632526156579573174398399609210210710015790302235160464401680944566640297377151931286506650836113108272795953518853208546110611152225388713174208147216006524384612217185396335730934178482979801131700261652825879843946016638760582223501898392879487940401789730510530887992161964664481177902973895614420098260767028142161558051105966930436054072205046290482037077526605968729164682701933584630988978732676909694728422573641972667602312792667076703653437030449794096276635314680784829775162108023848825732404349752493445038197504273274097754312981899768380009877231687887138967107840019535280824366610035950862457782440863687918791434362032450897667522997322946776857977163618071663331956311992147218998382782942814443984373548714349478001290481258951774445843071165919306228741141838303281924219489909904827963573009001522389974646059981594724567687483365905593301369519027665760473778699015636276690589090511996332381846224927854756629362493075274253073372103797123626093470156338970003277448249517773215614894101086864720840743491314779337083374647342250438556019497248197351020101499451005174333564475666918722499547582402862850499356258152776830036946345946228323792571059157560537782979683194519936735402731085242489712006486441971498594504616844360572238080216097131415190500287365342043505939808723985218813820444811065743216223603879619427021730390189027665644899843206211146381813422085199821227289162426258665640814868125147918228499032004851438242345639558591139516880996621242202428301663317306872306306283579719119566710033644833448109193516652605532008281214527593081368531391248612118827216229999975071690518298676648244591963190222684314051170183201119467168991434496215462221350067657963610885956386424457564972540871125601471544965806777080202800392549748203372129084962059504584105894733793461437462570124377734376334012306904126524346618087933394738878394257397249109881973666967266461149774088152836559151534543185510450058672911762685097418535172710420036195986107010365836226876224198366290201091077010397847167114224881677119997739011494705431626470545556349733567656217014778935131919211145041049368576754868331131118589484502875134844793853716432577213432805978494348360844490627331457633599723657538333026963417234733206464990590297202311210022907246122390745516842558751460177470492872559691538174274270686503163548053070809320479466867615645395162686442384689893461234923366451465351291515345571017230218215827784243660033631587940314647992372138146412369064167279284067298567279900221912884184824539243934092832395849947609596822302659479220062683585235134657117813526873882384956172417593808499559670312271130105626423585273076173052021685966910219125874716341016128662636177408124413663728347499480683726521752001647762376521421594538623895051534457847108796379353041825333897988619220496202160317210628916880937065829862551754416101077652835953604736067824728810798697429588433450035263258762987502699633369443033581781901911852226957721630001213653163690979381233232157851423773544284868460515595713388383626926631947950444391109383521176636429187409869021545730155744108452893659986598190674449714541242039727877200687283506089192093715834697327131325287831882454852764113541563232998462834554716456485631654779161091253065639122575496638061866307437004636450105198964684181145368358671524577115961144008937817667600209153738226063872623638603683576246531346360475313383468695976714459389884396753318210443584636029401060587895462487957644907717094421694492222524534607531044822647540011244301151393579570355243866484051221920676250249191934804546349765116069431474011011757680836211022043223495954456409117364031809879124348537164905239462058967608625978330207501409658093424953156011577930836961725295816601530593466999478339311695586811687867046978202559334330320834446495169534520595890218843692096502511611797983834691895057253703406033260678959337813101466252054669432036723481436475513880569298136681051806772203621595492185323322724131892237292790361609942358178381668037707782249630381869232513346079086354789543158216082867572167711085613292326314325846251868334054024733178371819574349834158250125297142610484238110747968346157940509796285923878404171340022629235270695605786870094391810245084718628090614679860968816830232992964092595533588146956762162444271457943609166936259316636171330684181940883837894879026390282481943079608096843237772203635976361421308287683477089810530799928500314651694728159818459857786721123963470997008729950389496566197099966561052986922148632283113693786217323798226644078900567964171348308652877025648668027681869165779715812025816324757096811511252881078609252301713524094772811323004072416648552008451665035903630111273486262667826259832338927421826393081795662750895564711344137845559094859209064937544771870900785478428948714186132454088644924095718361320236131227375643600261548925576863720446108361287217312075592971954729938465180649953311764394406121072042623048954878786329747545310714473507272418013381929886859534188117283642481304401745068615055302769387851127127852690931270949268198681228063898272317628819713067955161095830365536654299064857650012143127687090072479183616105324663249078541693010329642315780916411881294798061190205666235118572095539409524426042337501277938808604194019423076059490534748313544446308514027648096277250007264410978648649796775938274780276676752002003716198765030136867969842103357152151503415497806307713539781837224735472413750147860458839879129245948960566302486786751866307729051882758992904669224586273645769206546641398672102659198104646386106649768074412817530700986416462956781185644626918107941398286218811797666756592842184996154041524703162550691439583258354536270041416984743712299087554735169085536795962560003551772704031168013459424061934900174941781739185390264146977551176804444474336567399169499593127836573276074654627633435801208211570783636608330488920337857800378950814417503542120512463235777131930495186669427652824371325370026752289904633337967452552746202482703833834108792461325921455080605580229960292427846162601322865512473970248238956852997668293976582403835101095491273489614046576057187919500822834297651518953658767361257629100842261373524287297644708457141627389047401614107709957093883038139444325298342813357498308613391072417524412060404610384645768843280170837180185790869742412536374528584354791188407756130240770023204264948461193837189495685997003865462779892267056026230574477319463843175014832011030905336426660132229212468604451071290975236854643392069338841365109716393587949249895272133305644088162960994734750948587405435248767543757667702720373418774350119869907896446635706560669177776157345751934278142882015473855322171601660111305935832704897109391929400291022919858242741624834415098566781439700665355383618017764392567821752123577764823968930834903755289511397653432146101179068140870024916943650129530522416273635934795899070235286618413345080064445595249627343689036206836216496910634682367667303542990610974379524340525889054555719328399900263766173618397706801501933607273850132156313685186113584394180403989136791379252949322141802934382157232803264729354311927308426988420002791701395392262826207843949934481956322072722230916381049436311127850100393031357924626755043734725261711927594862283035702756141027421250577379962128478539326918803070617731406048562755692406810684681408970527836227481624784131046557797940987496794356805679839322909363696926931783061634375653800259099150594139758486970884442204652148164891503325830479428036122289180137617650240505709127239990201113058648595789404698872046500048168031883091504211321370823652822812606031266225356586003261746173843276800695662554057834593714667808647458153962603440980851873919694226812436064691406262626969277885112412946724322571777944285399950490010320034439836398507555010271692009043005841984541745963674441329142363772153177301800427455432167069530988764488625845224181657907405903582375063486541644345862646991664279462982716987318737045423656122180229054138349057467529898937006855018165225400969112280955571280317712309811325234027454425141035966342307076178435622562138774284397799521022642887499745863830537982556374989072102098431193456504780563991263562432545968871012015935047003267397470111346060483009979046111406700617612044498856084480911310091152152895167274940345033453198317243845719288406778510214179504436792540424489220556455525983356472917881687604180491693757184495113068754376574226092043085675875588843089564075763457437013564292257186132535505847706696203244010618928293188216751361330430267529317019335693837983898622494100974048514023122676900718386709082701153556381950700675380436867422159160448038904193409362500827526931806172582865483698500149907654978460720863823662685598526045918010541260120739418191581963514979720220616798499896462874256191363472790831239645712893441933700112834548684433808321087670962869191914329403982014126410749166584329826224942107148859325220451745946563421665459391410858833293815339845143017500100009775759709853503006543384563364871379003666262497101389038441646116266829655282671446825010389030511812553521236383688335434611367401299161951672297752642657569227651717882020704814765854164417104585911350629204161486508781811441960605893134745737041279235845923862729942626765852645367341105053211451395903419394110635562642084543455135693698251139792392924745904110672952381568911591315153703287153011205569291536995951215124558724116173238151799370652418059630294333809141751546311072626857575446818465070357147487722933881865456534933429331642188550200344845055552197356493664431036597835687076662499713511516308608336944990369146811734216995066439349407184286869198444359062523053434835840797888540839672393632004382814765544498022009594948087733059923714060948440009877580095847184709658076839389669334917268936754379816608131947600601081087654310607862217268003216741204044286102514649982549608547579291520665435963090255540531464648358930390485395819435222221302689914717468265949090274622543424233656338406826030836757773941194634769927115470911112975638664981512045256399289253751712010493399936739462272604704325188776493760696823788076653143204791952983426163502151832230511910407023503931602951123809409210130709402983515788527464649078304185722906848867383704139198504534193215532680036525980572650781521767005637775080182443607564368583514552881688594662274720651537791279817922092473405808698637813900486924388607918370224242713966452352682356938279808605875675226730221521401132608624251515394011303253256380523113515632398823906364114616762605163064755316504447938094721581275669472254142163051669364295392518927940327496454341836454440995341501750550416717599429719794723481106254478843512060414219698515323944608676527673385596118890379917283935468167429754019036271307289015731621782414317988335418504185664188982069615889167027162512580793521807110938357033049550874793754273198393710583385642479343237110618692930725047860621830600896591706566210527893196478535021456880162404202481838527002807841557091984005696523478720966435061410003935065092782440647395339551841943875901084692102822239003125362892068022177679740191972448288018530871852216580530578592985313710713889859402370660711942580698741288915671359307135364824720912089695316831829009866805715195402193174938588742126094056680966544996096552924813392385075803731284190161784179498786382536208781582994417515700225253224887836538005126754155563702024598545911724062533453785400567665418099052407574625412840169567666193289259834535709572690987311461537763331446043192390086059528164098791395681918162652336479009151548202969328479411611024060459718610931771809703001969176283421917160670722125044832357828419137197083870179232685653243253065239342124186222827733055333296047810550518578876303154406659566775227778928018128681901539203409372542200072613724787318857576821136489367512334110263526614146202587998464897299869727020364649485006809441679702254882845012458192433912608270593660648359343397462244480960396999508034150197769116076200342660421638307616179920021658321964490689775222507082540042903358941971996088882520699530025175747546739073083606319764859831666797057983731862101516227296823555541615136929193531172861302988331322422255919293112975920972950013891657008861931634179958219504563432053945416482189587360030342397084392693913650259735139539439247698264971086723562975566320016751000460070525738928692375851445591019836075502777067586822764955939833539865018747310646273811013290824414057838427751942986305589718865688598380220711452298713454553690907516379563176391528382743635422716633206531323076956520310670607716300693621699891645755406631000258426436435623455817289189053658631264900314184632647645766667024762390477127279897809692127510723504138589587869547307084664499008225818332180480880342223529013045466470063312423514978088291337957384887621682881818907441152071614635861215854571055786987896303686902689479687483057928900966396910382309076490831086727452372471254353844507874276161456193372809891650161214605203990462556087230853244727401380018507841405648572492797055090563399619723575053249438113718120766074556930228832252200934426252998164933360177061566984356147352729215447991063555622043872437624947890838581977212577776959804331110090955553213763230930108278442354641155711878298936592822135517821279336404548927083350029658192392230694712794388083341141547644805683665395478564385063806062040304153946523958084509232118908877994912618116398669698661988905750745090826964158959933103175601852288255090884158167541462247554517251061064278995947940771531680178050899953544696799678801407752742892379997360327360488880548753588720696577680416163531160251349304468748099582411246785628254752422704571325859481259260201039194383911518722807055644131638306181820977057230407540880599674070149791480809453941893009786889504378180519759734867167155586710699722614038254619295933053473685065405813740656611209649272238178987326736245800224936953425460003423864535778534087623515380565100154857683235831888328127794798833702586530615795536090876839253799346237920006187249135631697571685620427539654767616362677651730594005751839521061794097475916026645001003389604501582826421821428853594164192196619066243096795531035029011870059263647040362408860154586200414943385384458588102685480830167621213763110385230816837801976717131822527306571563368282770972206687606749424574518426383540695202880931446465488832430758822721542109914269284369887459108894167901103986026155764741665213597150455163730765662142003290903162382438072032811501870416802274139607154053252914541272826279281736096631069776880339169264372930655756805695854361115268294701501929546749715931293970822380468345652297862127452015005219038572378680021150194655187776518068007101578865406460473886843115154384805574073092239563811499648637566256661153908275551344534864639211617904308885462165331408403243813393852149881801149991873901452211589763536624753018925031856886136281267773809769654036650891394023107932760484598847905992190150969273771392733943324607003890115808504880595622282661517204912010995115644164853856674219977508380461031060617035828850898430075715264383117377787675321100283032403847202402652101782818247445420757688465426108604206673968118699597507687480174574036566311922863650613354406266370144003752186644155032967931650431453692988466914266756534754523734321893574759625527629610746352255571125973231862139519099451691293689454015666010668349274264921520675554346034443281666538817202036597092500593054647580654613182218188677871538820491473907820244546081077777652237385605230242839600720642081235543512232923025401319567100944623819409970876903673411777924863443383319231664711839105594244395316722567320297307506378057694367529029798154434581509201030437031222984390171760996215938709376664780410014651239410528665004502421216049829312830791330313207281602791394901251229032915298103420085563696586801546951866880891486977892988037547134298631002062292832397760752543644456435323672182726332357849032542049571166346843268810038655118725855021689117595592101510961418975215430293067077913373485363131134010632112195436140950104688198793480766749619055545045582491320035009242070264232523806312191528401731322593112342151851849560437289288329907906095617544716215342591011281027916425140433311600023319461139906905768967635343077064454796112151008742619768317955174267299890897331558878563822635298582510456231467545425209076720327322220828615040537703392983214628847170337454899038331018426514039124808266658721675298945457247529756091859189709021699032098697994203805339419490181138471486004483760339070463133205544848857127352414357896976046354071747748862720506292800046593452899278756221044073138842910892963558342519007968374262989298830227379684692463975976411720656308322306947414003353243440377467555754225721353107645395743405345073884601271926699639269990951229207319660634500091619693843076380354757930707200376487906754231420567862158991778333944829690479901343127080456130980427569212620678418587616749847623159859748968414623742482065198654529702218831718226054547397264700383148485262961994799389749551529967194396295813152297857391095884087601754631876478055182480716279655384126975628757808795862929842027804646475098294791741367590801679158861681417155768312352891120644211571401229293527315860738374756572461208783383855808512247628825041695439823980283990916278832928056760186766798302003213745628154313807933185058268885148867762836063638021370205108638796978612612359499401022752978904462773309863184641989547472099982423297141041295965767986002978952380122405717862813622367089273196864574540004204182890266060070869455150481124838312401805364517826456767162919157587970811818372814749035498484804308334860966967668470235207190500659250667446977176854794265285227111929673264788930590364214042757078688812918439431965598217538740976867597084337310111254175409041516295545068907201583152944724247901280747517673793683392111984445462553666041141354849804359435885101914721548180521571043796983461274334570167707162225096817084499920348458980021752270123242221794436203985579285546329864590281224161133873091284166973310584562702989640872010890022281339126447844558338931610340796376413814217488135356570670652247128665806786093179082907338881051260580835870633804871103878784827919338165828584106230147750237711950320149393175551512018829008924405255817564136120987577241003769067032830442707788882300822115423537886298850823443687878271174682921878629984347204346047660673676186327024675170317295027057654799503065779742684550401293675553074745667492818850143810457653790146677561355386881001436440709018893274092342962124017724233821367875375450259039370182466227911990174424629624876255800848681571947611635836199737630857452364792201854026554096673613035529289477721571497151436594703944206277781448848103560508399163602831735215378178158793695523981836631792272096891691375627840464632749334559359829736247813637938559865211415242854832423966529426670578549097979592436741714179794779799426203571254359858168148013879391358771341902268705295079577392844334218853508694406004024747121470155692326431420022808407276724842283267627018089862250912288401169299291683208891293524271407142549182886706703064511035635519716686370693657673942720906175545035563962129664058835294073570051390695705748477617140468237904233574650673425606774058769701213994884084425013775757084871758443327859483283430050513883761317155186208809024591968703664053041240066545372378072350653033871786279431304563488045976285068416460885163579276776106340374370724770094672858139008213352995418139532001150509781243457272358515085963592871580504625170785254026489789834462934621641919203772637759419268950668029225881151713825272308430580877650572169443986159073728594020631597653628574689864206875739543818173145978920570647397913961034279675499224413532366618327605660052414488352186184358210441928653225786032230056783342494589897298413711908830353293301439916492303372765045511388759672985609195274594226718084983779858277129679009671426533451467166163391920235633203806198650277495681374971469419395450870930508319705936923678837519650941450644477255046657907687876227650686137339262867614238264733623654857735802028036902512616519641994849714989154966342101073166077793151567516992822585121528764984405215461596300149646053768683251080693198400866048201749368846927398868943542800559495698003127233948979646550192295650487360190728296892438340670592618458536738821719374526331481734277922535859200155930033758656584892846778432475559990150170234564189115291908195534570312964424677778771006966582662701997228732842261030573828793682332190376775025186431821232549805458115626759301561111707513479806688291883674718053975585910896973856990582298558987723107519286258134157841307712492409746468421718146883812373577538263135046499333856012634026913984533323737096653842370931837013390325496709166373991226589066876974350900701741181877886675334766215356537033490408376965190420250163797714105135080139999649413603886670552435508793982351804124067604691633012804349058494201144665773881743384511488736726690303626632245786012790209469722644208916962985402757940146871550188792296272894421180803163663181625421183852200333501761607581633827102634738910600070691737186124957945256052236305298162747130669024778021805322493099409106555199821191665408551577876331391458511853373454538847662475916722678340979051534863087176697201299768370684703837228816884959935775028484175846899279068760812942349569621305861053713403176988220890896500629992349775712494992858314479887190980466348470479185819139648793729848385743808703657831191115919687751337412695113146133991202073194795079318212441939688446487810345408424919137516853246998315492004433189654655621776212366707015592288395726424735019303630438220439918500431840670851067389033587732199571740383805211776596116344794226824862053744936946197533663409545113922046947575389650223180620908902116831115842781124449950507993272145671068858467785462462410202481026991870617093406663419126743375296206375729484706500582451470319901827294419445794587966188480106194238108918891735219954858133138742887472577227330437719106156350568210492476110445250550157420042477367417292510785979271330298405010011485884705752706173232629714852609704064282796115069413573257594434523791858699774949891682781727134514211496848887365103112496203296372584335681376438500882862862967087648951599781501706052480846406406551653161026046855507408170899709685592533911541483007749823853553362920585631558534680209813525268126246431488774525434126256708513414764020559924012302055054202941247850883655728811762945815871103088402537399506155669109381439143384154108284221510435747158466146678430360822157879420729381567342035670773087705580525167273135693269865111718185098112448166021952872606775700043436039361793251833480780102570814203823647617910186084312082836396339213340538648781724108140700121597521695387185788792487971746628388041558679690899368911901069388689498210868713801015640114672956485283626074222833978786777315209207385967822152298128011060633665390874775561874574088400835919777438300963039279100105336004309805742340491987763344727892765769287883879758987469079747821956564053550220869011371144867171387962192231102298630553815903940806314515262694450667718773378144522817918061279262779717109983005195791279657733739278821826271777353563369332131148655083967696049817583124737474330379713032236588241878034072585074988668392341150761521200034490298100877688816397707022007462220567960915249886254191449408656630132349613180566579743746881951489460574500492301445045632510936025628240056552449095752742366656805235263839647681973332603499908887986772440945894966609852736663788698050133948577399484724813104561292464476228010226162977409501635314571899098680941770524892232222397283465993265594210601905267992646534955115094525499022124018196793170112195710602793187352418330278912351752880875323021041118991652022720274787717839073454864109711930558865155035307891573533117541713691021171734122012773047046480802592046337737284357504315253286846734331147956334850320562410244139788183013698280140252095081048913596527758951267957187229167471282530486800385693952860763136960873053272208374871833749388768007310652133051377923962985764433495477592600364754884763652523934884342247627880169962158340686232736773687906430055424074691201313967053146496446783327936279741082168450153631067328827568299486843994373844705900462745109357746937248791895740479009192430541882103619888102470056110190545268838532903492925773968907324514600510827114564390171628309379524672131944007654309084172027968953095751232289838307257147924958933520110662322606947552093002033853478476818580529691096622994507386491184354375054025557055701375261347693578825160233386841659005830696028938267893911626456045686541276262144442685528200047508259194277368875839361674744674159085605497319985260689235953759136171478975379752759898119698719076504304310244441237364348181731879324653631253182502844880209804601551295357628303549679530259637662896726079240534845121006970592656205591888205467452380489253438278872382438637863347711646373143836740508753192224823070788308521675689488883487332742712443844566445626229587452057536814199917847233179684489690125402126792647865592469024476564115872411985605081122090058386696644157837262529618098125534129505495901834850200858302594666676529203096371733592806909566922964697963422176240141999840262375186723367014988969547989482620099509173665895483509001695146098511351544337240841047488394083128297416603704944837616734105793021032938607752516021880908300217796641919869394610491192540834334326259086966502351485000791379916542659066990590266292186210994636482643627382817893889014548466023180290944851299047743040926232617240864424510669662104771149734017650778877462114631697870419667930983994296190848449780422446132337661806847296039503708067952493756804886911539477146133186715636445072763516185000490867197801961626491327474345429215839526141032447188730702864669079412566191852529667937210161236907056480320037690823636056352771109064478291858521527434472361069898153162759529956748237596374676364095549643600970350086387490557102726635293470289125462039883408593852829853719734912808691197747047319611997440388050637870973922699161600611766035060624992541700380024481365475502260559906389437775945906342971735974108163203421958756813280649798875816896869768480191855712121224933482924982395640447219962189840882664500619516907646392475776035757739206506296326587406092629082685343555601629429110283137947171224663775437069527381435553295074738915228225319155417684953473102102313644036851609065644039105314709432511922921852463833834152779385164226548285731369627150288682737216802726570950940506394870678073985382057725960179221735447857677405702847767631692336504023861068032301908346249365773280497784484441019648684729124500127607125003025799840153301358300147868465970575425874107503060767406070209230398773495362300971296090880623603332986978781262134999000819347613010332141284465880410413053337726331748146312702337449325879155342253779399901700647747842716555032180466699028713499419086885192520507750142500321362645355086265694886411877313279979717976110280680649490151422659154634481082912054069082511545513390152389440044579350841144140118665343085681054726984377737290312600202957345864003385553809878405361174121650774593229004277555775391396830572792709672646445652873528132045598007730082389337209505068492516640300686675738542024559018028387925144764233122196884578028154745482656718547932168674544932497886515343381170955896989461988161078783782415899208853471438190772732747201673838914832900793938674151743098410044688017239217830472338784053734107827400594366338897609865419677186326190499510130963750036915624767558121788986215793098641197956412936602049583631437340074605769417120705233745837939918503053824892918776620788613344313946417590037747478440223202700130367268530577174269034674856482478128344239107022960109186415427542618193788979932073068533107973307901100819546638512554477897083958883239646730976781321698210941197855041776385499734901974693584023421998992824062243955054225077037442310246492439684703232139763230963031842849322118097610298783104106496384307793777729618321660549606450214472591196076234373242663761578349651518931264122310818659104953548691304440428069895785024922266097952160925036676830602434378676117288955948993923597258456809319024775138237527482483797348075252709048581960376508369775025803691581439800529289934378800080580119574874956844026173380295949072585387683835829678224980640572577637684891219580970091224050303954660117771820236939697566898025289872040547812011776137868718558730543602024536545162170956419541346118963803093248457337035886907762559688746140274640416446278504474853638553360387969995712124259208475634498023298035852062702302018438659687829345069043068388358826512108625687325947737965175654923843336203334442439867236099244097569335268876498515949806452903478743375561195529674602861845608376297001783884979435410514667303477194571576303550923912861292508470891543788805679351983211708044384374648903262853609278095949280789039187549909330347670999983863970123697923446694995721537764327083087914231409202799073119740740910625923841335712612611956559664991997261532044877595824124581620971890676383999523609748954972792030774478022206912614329906163479315383880082526418462146385303712193170819818978960992303853650920811456733414313572738865743689288475612284558676509967729802727805175915274135848983545765721734555396564145766321231194926228140362537689695844269806804982084268459053117542665042636927010858922877199654799419458903705253682816344916046392296072712722147281238743974817190642329545540800640382973662663050710173769837778363637254698896840636582250263475950518568329742985139052841540886601139610913934908011367017104801854235041796982333424872300142508288718398067415504864853609306572740007894205476497052412480454109544790235716622952774354548592050245816308866677903368743013209538889808591971659685736784809067086302748377205625662183873761622742294819248249809432301254482029803210722706293799508886682942572890244613272919286926838836723374536321115182377934339872334070633205033876901998251758781938676979013433005336853221698469829654881646082328913811952087165180168104951212281827411305398701913995949598173392909185939136101513325772673986289892533399015136606521037571233304973850368086513018846731794195517514680618022452909920958476483433162619660057519892004758761062210588013242676831197428234341306204043259604297219077056570442009188583930855336217689055573653640016171781490398836712424421881500282612768622692897313996041408210127293305781493752868388861661845167646300314695300148533393478023941067890964082400481432538291681565047556137606398930043263384661947441235829815044087890242892101543648561146718922918592989206246882558730522782830228026299112837329887434808263137662283541924233616879533257876788652141261660755942891806126413380404815431470757728951238095996398712340251168022792837364381138075924867025398406315657122495042785574886087583520034640088774832383873596380853312073773291038358331652451861592868610340308834152973813343772275573076841993614603386311454564253501103059613685670743261669102300634758334807636310992056029604688188481964869513748309964756291531210762908584385498086635821534729822769666747984476827764785572718571466239892989884912132316173229418207009276494261926248087934816564818534047177593451180666866363158240337127468800646099152406635668483738874156938252000200001995451209963804709142678126090764004565057043111551616250191849251886154490060295940593575728007062110420400378079188241122193135565276764547376309185724116271716379841709499380326979197130211152554411316575464279237541220510713437644496628258438683854790203593540671977208210320165946026573281523116812284577922077903669618274465248672392330459255754889606709487914791357992024980843548938754754860844698032067704976451925254687245292040014086812976187691029526735107653371327428849769382413889519842746452314080289055619577923513860962391235096787511998562829489759448197341426947060282470751660764738546317187421931856080274089645314589725760682428024450450421606670082628670254418627660545205671512796283895200859405673821183017705407285248419399072325983004569573739683766179358762318977003644436019533221615336660425655490682308573343567928664360757944618672197110756590649981531595432851586334945669392618135536195063326677364095379466881723373100214185826675498062393834089516109770649064363699990969118691475564806831909663385319433530797743490548854609179095272411120932804778132802105537712488926768085160306792022415047683938957951532584454137127380864227258206996812251961418114669293198375339676455699906012468772746661378904387467657885540589858913845199286416943471511193730105027030881805638803886252235255736234403507842678502949618229840858579669583805351374205027654198896760872251934219289956480621771948391288933229585250773309554229254717830998831348998435364695261162695156666727619698409954023238313100601619078238584305392741541891358953653821872052897750332374770974123560197547063906407925478905424731702095178037563743002796229446290696358606013886629417100703296854020513486772564422537871095745107124983079254008550519286554402249187514813653180658988040284957584708895432393294102426334647675712305816300127171813981793960099353698920822742340072317338632746787920001934332492538810831206754984772259078398037702868608699774853253480672612691593210599625355937030740148199842665424552596417683191050209550508576635283352127019169090499589166799527286291349576075683743015912010589469912402292606656347107065442603479522792593656284212672214055703154931876018104352839388755735960691017495226889039147245918620156321592464392978022205170921705100825801548234563065033524012195486442102325164041401532602473059253252573268061428690563700007916818060252435071283571894668300587452822500634462702135783857048503501612797528604189153209334479040366874137020872862060655076813717999505016831555509484569142736667037492214254339611790490298034445986492095913194387736477830862957760568514184893899528247475316499153779608432364190365570915773941911068220261468324254079835835273322793050433806531506566394422353104223042801037798586180538664062097514856711607110233687602543199305565880455852822543081622730506170410848264324319433914196787879445027753060108084387141673395511039747070206603495690799797663722258924816486898969155279869565350815900571131682567479639826034683613615722435108399457699864684858133533137291069374126454201518824320829408215538233015027334383008102014692260734529342151872972990380554146498651863960650616461940509692057065615936462207192762451227453446226285727293212280549466959269886511514679430917195990445369290996797781084328843772356764018066397170433337098384302346168507530486322677581212437029889832568623622501769214873688730270065462961325562172276048751943510610329204434730284629841039275351469307440145665098742893586037467151079544928960286735193933781919091885211271554883375819169620338230201400584730297408971554579395484391093550587964343167545851939670633313182184050505384899984884411623776493928201256892209691545041681075057704119780146746296638949877018356409376167351724317095290520710805092816861623333115774637695761914359487160198956036932952553571334535899804989204141875928833624105126410069803064902341844838077216131236731153704907808314869185742646366721990490168514347639840818404712665639164952776872621181457947546849385054907627640362698971768765782854491052794598305764146070522179267340352225963221820820132625205697229762151442949924719181879157385217653205423864501444835900470590980460185244303444223915073343259530983106286344838912183745210324134752943835127097137077076282779912411988127212092689815536250162110342322003556198978254096262010700711959030858646669733870009962032998274399086951545345495043861955624472467860058098668631645102559663965324742709800658235564535401962292280190590160430623471741653846077698813565710303213781419356565204305367248839022813245832829696924504539630282096417348048458284956353836004610407608022675410119365442495286101396997524016068784239413367211955987130719111715585141773144243719129980932854959109054103176560842832635615860782973556918757136939445865686399779753391564650442675876463335231060720928781699898092752561004801015396147613670197005286951628529901652526467500191471362854661706513793845017278872672364158572793020532575444837027528318862199191191262711440705871088976282664474159522859644540674997100411940636048481402958206729374380198775848785548973641635272037206349192370135357580649982920766910938390782349469755822008683310802235529813065158533143446600654976727793549097941954659448845682128624787391074710709698105974786254984172007960994906905795940341381436921581450898332672091395047914605201688099583879632282036774985681098394045064106414560186973316372868055431493346517586027406531872673229080591563398805896785095564855023305547616443582165231790252545351086090659521485751851533851728140746911540765087481706511018320480395300201357366220242523556142289023183405085002224183490069506714646238996573072874891656041429258113901457111017714261409195378144631651841497695544401817330129322344411930426092553084997689924998231953283464087357617784209086315916786363239572094872946567771095138464835140375602187723991370982957851236685778864120388156252057630640556301276301178837689715901398840633452364218508922867327485149168317556917601770080730163363483853026278901396168256540614697178814596998133855649908092000253314600371605433388355455115472208144792520394133186879804364509376889114637694288513907850269146689495631464324332839341010512496518685653782458994623071971728465063209173795979033366126222029135728412423502684408093324867371302284534707666736559826864160321593975368052374569821596233968512281675733372305770533125112950348799054372366543386463915831912325606825478098814013633150277052541523356819875840944332089337991026358482914530978952487900167348667695877223091965162192991839318048724244738834548962802017331410650266404966750807349396479858164449880594439586302816524623333890208756719034482028750827557871573140450800124662793133188461334106439881018107084920009075361433641219995504667571872889104024658319911901691607171765305777764309969149728014154333607011429956205075893823518514093215021850708253773019333211349351248886473537261471685552600389803692292800701638887599456441348856481355877140730629371459388504433366825652761786082594177635589114796369607613647854435056578003027451670756718506912109204864097927627539613383238564824612048033587633038715596430787426313621884120447951398718380975352803843084709702895422246276973338550924750957260276724575107236184843689600096063951524480449176025899123740729763279180076007551879262060918517299680592638839764284584407566990767647488650545139809830188768332822564823434059001650988842615215319008190155389659809612812313698506259034199535018372668632844195648563090285618038243866704919307282491795281611657665142091557186363447885906411224469540079339110243385348483192779308776224305195808054590558840164332391305861027485315270125661433577335196983145893075620991597927615663607127363897373865955426753570278163940893229105413854288116345597814322779484996635818483873834027792421962591463599144594506405887875774215228983205033290841348475956048296460450900896071573988775755145663474822137816531227900575652150178453750822887944359112620048353475058266807051359027560602717610073224641602626679637645223557514047186675812896419009244990467153832132024261582255731827799870592273817747473932662435401099737040664470846732697042440973104850560169913848472371792481967974159570852118342390177086503159479843802939071772223042376892667875682240666278746202708603570703614484712890520914099082346084489167512380719462089009163878823337285388811664095845198566836255999510789611748332485237881117517396004937403764142432000763229294552078784693765389509043037828780801967382637673842364773016978559264401732194909459575060368529703976245019883766023260823099950532761883105786171058455343274925374449439045646559005545722348767383492558741526832155655660956894565479488024647561597252690389047870027905190858744766902548105169157165943797174846302465025227074367968453244025876650121469494963124183475918870827500434878695780234201564750001128764891806702981384414060448012420262392894209598365523201612569831751071052230120202613998350035849744237593415160925885308143994508537877531479855158643819517516355538773259369550221983358275871045217009126857398712845270339226446546586936288562549783334473939191937560878314757590126474747046164677972739659394211468804532985139944502936671851019965629022653039828374648998764096492117487174648035331858653544775873480345514116839744126273400379393411892385722466301000435609939323315155001286978731183210556287909765978636049515236537821531819123409721058030638859454277705097157420039793733565387834748707407605923019283148716867153285489620092880659839841174209517959912735569480837699235430130469985599317634069169083911366013165651159769491414753793457591827166880552239760852881085219456972148672091858212394033764695360771743255374287136934678481513533803939407731747861840674917014240015628369220268805249117522795865903058541805289254780789283573086030656755722471975027381705896079727210151735582070109618128698853372267931139373843312045991587080594206140295197822293322502303627941159712358208191729429190785182120193995627053994706459563678737582698889173147365007223365598562355679480144724921125206868151781645773580825439914443454039313516971455513930675863694649275454029290493932261396522291068050949469067039360234711911719141337794202066084609233819820236912271662780889855136696496288205592228459868853105466634899991887983662977200726291467360171787739456171933989900439830063709897318201100859978329323001440133379705356433529563843382042144672885978914270614500011890469845502113878376731389519372813129785482016708097933428777181751605230177179777634173596543425200532694024376526378598460760659133544450074738876907878866571482077868911851595166646735814226410206290318442343957407194700042917190911910360568259988930646275521760368087666072600744394833044527430799634275132182660689110291905401330120738916329763243042197938298088488138346899282670509404223406600601090515337210543923077833991098249738141546466037567179143826203968042055121051668261599532607100881210601301594142586147822926398618373163423125967824818877061767590608210509710240234498380636105235371780501549175094050110752228560395443718396918456987822608148560138276434590691268326870301332663029279456740191852482077425081857327595160204507443170328650987280350841612009609100946970678396392736755903677666792736568958400173219894465747119507574664805832569386082687899628821226875989240630751714847309886063812787183922233975408480251604633734078239124137196661697027260740030350677441673048659277111481097564653050216163041794049829750464800131847105166202954079923123770019053390152696941987283081952700961810199410638668596557411783683246503959315542273152743316151968960759505021659469893704927171351441043811847124537988836679658780690053165711553902386713955413390959114816540606657288308911684061701330657218515094526026081555519978559540832666417271051069179348675766253358942506223543638791086159225570948761114482919919773855470792426275584918020009073547778786749295761090778761285885150768022284259060386211931466488898122640191873634300297534452258486612582866717889428596054916538571639832750873280847170237810855928466575924612864547109248066175945881096981506565040714536275309834928101715350422304179912911515703966017975586135261463845094580320655323769403946939307301452012245295606897317990233073504894089134831669802651300110256030086445097395267415951226653412431776405278109297562972612601611844939199398816852197035716597232393717584387392642134136344313217550715434639569334382285213549534487641114496666150434925895748544012306046359313454063037080125629582174293056581436843139667182072922780664845364947643879165225788093550372334823138392857730351459586165772710281612778311889414217190936954054312656729701667140623423428957971263410275810987904540432191936575008284393499905901851739939435591118263741032907863454981403387180340711796610224352667517899892181302478759074511099985508061453282355179729447803545852825686239969611302217710527899731898597848215223121245984442345524245599456113051280152569076042295927191114947672507850406185902730984003361495242355385387480109400570667508818132997770451269454177173334578186434318456481165436809458609404661822724845343192816674288134357106462504906419407981537894409312977649509016652514475523733443451802516217874416798616671649379806469582580110274103991788870523063647727167229552725782433249983008499620151176923069071271889175006826934878141705076155728353464395080548067292651174340085745585323793412487510963657762124781077090861691651649046116809838485967509087305111739447345311948139226989415631878677976344599349958279164768310986000814280249509458133735594683025813418261022966784529302072625947137982232407320642080665710228127360132405973880180757896105712873263539797191679864734636967938959128957810376616250769885812448709941227813675949862312583640074776698791169280566872635502955224743259975989398482707781617225290021343106864058735592949407925034101608297524515820594229272215658522840627060757047250107517066163394562119412016755895483784981639542923591857223049282088570247106371287257101167501676781680089976308370673433467175453728577320128619645929887744966881041523519784410476966115561736470131828365577733563187515647250571351810782123610479038407223776027193738347032481324752202163187064505108921032966408341626393328795633972403913723761817580346164954702708401495575684290897914576360273564332852907483766557083566190096095731521015654949560286090144835371202831416722379215528913859909617911685535554854971562703263567463014792733416571492828906262255859799627187500607307040825719056970547427294128594427662348966770231877451589262105781213146915923052764571973748097978206647483591252190798186354709002036359919761050246893210093653835380210012131922752539417952146898971805884035287080947526310690352372827863677167424412333474296584198028760173425175676437297012471714580366810190876745002300835552500939137069049172414931347058530528768788647417069150875769666635725337771352460746647155433009382951924972933793299765333880602199576584944391615128808374584451835487199253760504867890198991205606200233330249738735933057203244485937525387073831185138344372346845181833965051809210750601142674467552285870280635183730173192750221728028062519595666628655366939617862281116525025236985018464253692709396956401583481472524409449752911733763223267249810680415180111661169447507281672764986988715776833092427546052293707195739720085785731370808920526342979726383819078344281023735162501099024778901861268921365344506379095490248865672071082726720246715746208788409584094296179322888852431144638801867685270860343520484130544044791879245525091768782842775267108632474204565258961533932814745537869558710302993419440048456674020013096107273711340105239244259766912660743696760182053353536359093004315544869576556118449871188320151207120286664276442248878554578894254128791256984568075004687111609528355591181518460838655210421800395031560179866872769470039268818311824487760860695979080696637052596277675764977928053077279060787274739535281838494493360953817875551963191140634372157550985811941796231962830533200537611964859914154668329609215051981186721962540413512236325780599266878999942699399209512168528696048407883629721972695047465305676731753223165203986562318928226238870096269135818088197019380239321151039029211773055118571176582115350794453798875529354745584609386532119129288725632677590827741160299971969764243563417564228573061876949155076245050458458965875474635948683033310434061651536352359677992075427009346961407600313953128079166863388822378735717816894506536516720238590356618880147944697304804623114895757541418277199756459035574876161276467504752698846033126878751639833602128909189277786001697346260087803375754470176958582585709622250114898149939089897955547624342600562443635558662442259631918102015486769708837982086740147526451896710369230602960370088299863537433138880974436888931569637721601161824253088845829361637126956218537013278138381446233784414313726906072595939964357363759706120128245161533467962189099016349103875904830367864293026875844517881618740103099482405060356614027656824502315758144624430938623350849063396939424740645088630069568882573795338360649077552183411591998203619306159487639595754233556101903899447369954743648376000862918823305376918434857512735810429623242816995811275483946106990289234965860504797581125232620777049387515833443296840748455500951357033273044092811881527473813965232758528705251482584831347414979186511309999745747301530153132081886124763716487519196014183638453163079364578254680603371599666648562118420460939053972712839829550056564444980603756511711346085934816991026033448729163557003609176896296714421809630292624142558936071874726876177776756879732576366436548618578988948605739317056863679716765205534079566359616676210077388981585183126963038392699088212431301715254995417072711579224403153908811334815819772428862005113807064542296831406688121381742202166733682755563929204825050403654686944025604732846788664761886882025700108179600474347515889698122249117573825379358775401652655395015036293738059165497589328380727060476905044551514774546286369068988575328434183624404129230785446079051346688209734780574729722724335481733936458892397577009325920622292967000912480691256140160879759965358575314353064742182712671400166780323232835290636764627941733894551672568853569662874800851579637193892700881012929179623283791243389867326863695618460462745440022705536236017743536370138485919661693780470750972964993725747220869230326727496720092771471974759240988765311236298107950348603497405943414250072335443732697449050726786423244619286342896865216788051353672036230542573268054791985834013455506507074811223397942935491032218479904890152439965900031861387975863458772399533010902532187207601067397555849488208120050050626330250936517091748863202604138614949030342980214160524950014756732209971516796954055268806268597114652068265261505745238679116149756232050521488089550108421521937314896897432070238115582514205986816863019223720621545737431908597944107726053440577033640457621183937612905365739123214812714592934963907850371096180376024542828595410294023625969167336099179712041439603671578983049375264151998787646861918066768620993410442564043011561335701135106188228784782668618203659458977976783894665421382420240389555117311944177608814065153187562981359933902122459055892545971399846495684370569491888883190674164216415103141693010652863205000523610968162697789682392337832463851606825103320372114275924949485737613294995763151827884571479980793731947914909058073639815974257116755998456319793413217444575975832174949745465359527872276830892478534031792447921863433686055468362869307888164127775816707252011082281091793628260127060386022849114886549154970065586105108038070098169559677735794955592485406767596849632824229107461546822932407175432564269852428908456269988280951910604649006995351619273468453512204406176742943287648951654609401808721374776896953286952657415096435666217508839001161263061347503269102310049440998142582168995763550342631294558042651646567003693230146895722944649334375666838440225297481487182768628841089101804132605858832478766557044501695501353433431280248452244572275878676611175162318420661601281223400446230402560741007407543100079960516055624897317129275615760752205659345065123971941904226844024949780719150183350645364749273874811040246533394940262755184203840364195304045747107887173855504520181192305122057273332601015575142497126397952421299821926130144795222311808341576633914829038078440114325550138454010813278298373079077217126875635391772989904863230332854904682656726740150295767150008742783557687646298239143114374856058131057745262803642375066303236589290405783029012206835219561137110000145592534930176304002042753092087067488924834501475289582457474367728944542843901972718695398096228457291396118976980246154315619471794727117677185965814967129318293986172724395195410054629787074979606374397634821717129204454606904874348197634287522470305827320323493370922680227699590998836905263022091729964401452297630934839703854312632756479665910191017459674292591359284213353065012549922902093784069945615233246026496478044624161435200601113236415242199688724273369287520263144943350268413094225462231541464846259696158793519988676703078529529041039089605206475782843987790998005465493413666721305005514428770417921066405408588802357942379130724884527952590003257649599146959448987421592170054556010548004683015395895933126410972255126594077373373175150253679654996327542473374507707794178573839417603993441904594962693410417591670619642508638469341579280656931512844003485993653502592807258838111855096040856302091298684255784994519016111821203323308001999451155228933804494336723889656597208977626983312332275291612748383527753628695556267553633290661142731530131547936893328476975843360052199147196320011950595758744562076501553457676318677831958000986157887891455030290121374639869126809798995360880939668978801568391670360055225275989723867736432147533009204499109525871098474557241056166458183162837876913245950871928759517169904374720843740596602590851536805286407028114929637485190157503684226142987549162254422434025922249255638023644284762823275374722722737212394271791041663780998074341995151177946844121756926784365128956172949229275419327398799785221403904402821003069355071958330310518976880870834768694342414111308529990031505545583579494359791975416529859835761079351939836851727872509342537165937840500886579055977740343411428683965012130305914731557452132192476479882842405258141352552318059562706920606403463009145367364165021238482175689040921542536482322701682109129137241973063815836229711854338131585673730873031960048960251286350438081673307707168048572327455352569546381579101698433241460801851093868099274531904602366204711547029005655258582634340370031124476485235973445797768935602303837832180784876936172418584171588620545286749395964884183977252235894308729568652521173786253387520147436324681164805113653911775581722005567870893965503898919107941990721703728156979462101807058381281145365212655924839784638037332803303132796667556975929199953581088505725109551579901320771819001668054048820348019090578733418119973095173684204786988846193833626491313303723284959787729926909221921369885181709110612546482745780054163282772043431400176579018963865923287660023930093036359932441344965109822256733016746042714573633174495099544342677320695321244534952676563922564628764893463492594160259767682129843461307553478861254365319639074752220605934516439550328988120888231610262602946190908412737302991577603701921674699912309744746955731307998672822706058085931439599933651381946792446774507583783558021694901134882935383561885667704858285352310661963947619043556394696305005876669448986255169947174840066910754273385449533715174737308571659007884641474461062583725315271993737590975567236079891259881248115524003304235370290926757205231787414837471749089971108773991844938108576181831130514579985454019152740306078317840584678542852260955837846523782559178981381872211278302706037951652739410664029141862334928149392142033576184499393255356556421569875012555549716559883946583065982630117567638815837530950862288163707112357493477047896699757548358329052528147698485585679991947983387103094323631848645749776384627404546421933569189273951811879177900430950595095106802422103702370076741845870652394417248562670465907547209283397337250410856741449765154475275442916358040639976182157207558522146730880302829239607470803314574360191941263528962796545461967271966403396962010972731802264996005903904022366183847674802105696315629183203023224466847857952362178758000558173742580702265833165077561454276393057616454200991510897639293235310633947567358957885325869649765780392187563303833010154930544189109559843301399830378889432770151446085740929421670836564491349257457856134510551007818139490670454348191225170518580501308073214229904087999908697418589380015043629608077696943028770541006974587774207584737839789482646774837937127954209054871119776173952726853292309437314405331666374399914097531737410027781600964275142339340949383243266969368701808938582871817878418267826169357094586820668881571344971079651175500956954107510555966347558294040614071432968169238289971466473865970425519345662746170652652989903247603543394169411560190340435629552193421028492967720388185626036375743125615457263430498385460171507330675533979764351150586359418206017557694737682178022203885741670944477180844009056081265801660479706198586941823654794146696385890383046124282362024587822154514315442196235100720920970432049371404512838316155763462460873105200075988735178582656684220616013899167580703773464381549953827904725545901550076389120297763715911011534085880022312521802125261544302059516472548280828070981074144372649503417185929518864733086226743734280538166429079064312440110467426933830676464772379160808342439152479315500942232211169701799547547429124218444421129335378305833452015066018725606631475160352847436006292156982339371943271778846173685744254163285852687732751599400240928614082283054789341016167992623319659551327160715727980748748124600924170543635127807468785330593540524937325334686891717370409132507578718152433472522545191419841071711010619896995539002821739950306324638017439918873900781961536119257608320018325184578521937889044577161864736982092878165539456501711792472432327503286384670048254048431713323811950579462553732959981789082318327781489643131041006796272658773707941333196310014261685471201298577606753127550117043789088648681245853471942867450859050103335269547298708987305592050234400926448862463655606515701433187889516434096917368475981379385274744835420067068569004045147516559679976851319680065136320874296862487234972150344710542252711262771915860355402864909075057176684177367776644702359076863372071916124436493424495081754590617452792154435131421503975270898344590160745925602153089736347496268590514768352064802443447433589113893262955392309292531967182892310261660676557660562895182339377922971031318515770718270774275177651922835568914164284574149006171279864791863699751782827004809698356928722421154238673241428771097946458059319144588515211487215851343157011081264629585158876226447035885493672127137776492678481050593153569026495557374397949421102607372659829145369167065102078372888534117883343459437437924654768039114577685688327935050247451209949317110813691783213960404048903985009724883600012104136048129759752142253310193937452069047927900591996149703382497091971448123988831979479151187337237775845384503806708956469314724383896321392532102238960429283075593234550609501303218674170767016480016526232817937710797315534164351482028348014574958899323085609662743198341764339428689885210280420914786412378309780945124676791600352451426388570670178341496456039218592905566577073492269365760572774415188322767758557222885825163402733052040996763385248333938157460205469662311564609160856485405020542072784508359782471733802481267680899476220072343969908311657647685705658420148652571643593044551574376143589278381169505893105696039223301803536286069663655139955074496483496942864071802544529937576180396535993226444067348819021993264573577272606520911238159077258344356759109296651091213524593343589785206727871930321333655044572584107567046006833562539696026191508714411268396172737850386319552458361808589588229664558680656243488403170531088504281718760510189743244487881499542230796499754854851349597758881747564240142328760123874102213953667443321493626041215702015398660456752560741326698807219456159500953954983206773050875624655838661242794121421440603197549391911376488979119556588047254067406574417840562415501907300552377026187376867710831749567122390095829232962128785703444606521754138035454993653607929702905300887504423459178079634688016039229439698516434877569977873227904658187123127317943182867002073053400583520485105404360698375501953281146813619578804206843746163709626581713492687133492685758586154326326682180762110833096665758404559528801200351899197074078256618290363444175489625779710202980547885641002934467873551116821007221467153951774681559835517925186690874589859717181887455218017268798858231709296268210480754839987697801150313390781758376028616051871376177879193852176908032070106355120426609414514376118748208841310048599799106928172217666514574835327759455815965543665275982410084604511170675685408024675093551561556324727189726550525091778884168127211396792099657493394259438632304639946249220775945166235760099514517753868222845042686778770427540658827210641328311072496134739149910276347416970678479845639410955657972005824800782546480176583718255971850624096343248849076086212062057872700429548817420298105841323781644701925115330708442384123509528360657783999866743236027562866177298192487700466338355067795246498861461795471321579699355195375566414586925777116636947612772661818084513773968835563519900222442972591509276751342702630153246062458683616809205314332418688949960682974199325395811669483518640014336621417774258235855145993676289571742735705334172323005188841710482361858169427561782820633043875820679134327445080330734298421178009975171393126058582324360163984221081345711802185081149390620312330622629112315979216733413521088746753419663882058724963228861029481371610954265112479392831845800454172976305473500853651987168542651119441561991160133165873924584900944307770734829637056810165098204216243905923727327770292902587192797296988789860754146757252293779688068185354792827830490053866826760383759580646145478085884120620185355772205294199352001163290783365474650269160672923686510286661918045283444550197555338654699447042828464485864292303366556188598927781625460965550336206899205830351346715152802479085675013713224187206491960250112977502505371854045040869573115671972873729158964275646669868367188429039117211351950655460283205739912233541867331771395908637600532258437307799127660307044415530848368220550231185476638250771565026743706275758041954569518567858300796720310783361085202564636258132057221154661801150481515991986263881143090208089158533163702530960400823087206578572564603785767497323846721434037863089494296478600315836396735343903677595959500846880391418615059956001379868985993895704252810193978271962646535346238376419173714973660902679451664606786266424738341292338397262561984021199819202319459761845644969770377367691423139204429343227814947782557431744020543998440961523524104361938006465315130619157323046870005010312619874737803603055471509828242436117653025917280111371233176975615088772811232196939996441644388886909572279501908813197090762784579335902402710691304345729063190921558420157368687411288917747629325773795785289313029329869848733932323595709348523710340004704188477576483288286645211166305846165910061648577123587284011644509842578676766960930986208606664243553492095016351412158297086735677986108901910803653070490831204521871919008930152866369398878201565606132964402978294353350515496743710684107613539747954890064445644040881710347055722856140459610870170400978586323332588190287898890975357341128924105720262200449514741242965256318108228158695073424409991206387169564056057545499421678214415037946788195810455227976711464117386408103121427800032440830077364917868566195349157222610785418254933386153063446466052872335939792675353200262328590702742934067713793446883067861996657913597609478116629258221926286877874450536159468608963393738024692050719977319812922241428411023580921080239337081260482529714457804189282188629195353217183834293236814945235901921020492794943885214024172775826388061985248964275392667257214744375808947925430850949971090518057796838279868604431931549265475895646368426961101043581731681517864283397695277652855541759737875507642263520486305933453845129998892155027965596168857450803896037682364889297501259689740902368463496182780543414671184442195475293951556143056868585879809665531235980341549151726597970910561275772225990942396950879915771246849862615560438251305178270478812675264996120653459292226244891838466473147992091116855650380928264110730796852677585536454845121599132852357308177691159110635735974835364017584625089850911161826883089003073616386335072054519237064900277762107337994066163253500700603936270858106767105185073149099489132730410244732814982833628245378806460725486518786801664871175879541024574339480322526099901288071101625417890329196548339976042901485251619299539900988233233186392198913988818375535836812649474232280584531861653291268600670797371163661909081339973248937606178260405226878172027150823637522469201488155584671253456709481993414992217942194098023879126365727989372426783079307527765654233274560955922504991541012699285413903388536265494618414496426515938912671575066892808320962871915215538299917887417837170853185679285654181838896521396586223670150469351816208077360020820007599446391577755199330631848019996620658697630571395201616147391272881083304052234680031984374256617455004162333519277329232455564233566586068290411910834741444480667748422343327119742855455492888031472836128946800892657274853910119880567753781632905350607757142006032588339721583856597470411454926818295018672409498187020416699423209233123226961016373192814393196511367549354798991741038723842377729511204952582586862083434145258750940528837677811519467122436160399653711981247980604844502192671140770101728253971720662488250138673500259439907718240022284590871930121016308712545203856150671280791475773758998308983558250028796691170969880069314016366686816953325480055031949413192982652764297957180995162731632663919915873677123777282203423697627544097247674383950218320080534747935133597218132560043630750442835318871065404354052307875975428297567798256350621719143163129627568357067493643400094748865481461028741151320944543200734609894579534076650876774066890438772581829194795254290923266845417131593784288935855634804016060496245521843097289322963683543533441879691827162544020319596521860070955863979960975446586331309569159106552880060483482543086917073705193412923887957160069467829157620547988089460982532907910277783396709148846694510519662013704765667720862499012337589280065359182657006021834565142881118856239779262396677991952563542447075728945768160006247873058554816386799848566966133120260967206282570145227474502209948108543409217496469980826056954563016576050822857435504083576212798558063596240036930453408059116615142424286389816381527114315157700207418887102457630732856251888190177348629876350316255448755090190437886703024171397390801623257628369799065193230457192146707632099164283703840339995505069664094642110033123658679580005829323800883261808198729544415319182609511345896583674127486749262204073988049331581041988875545264022937348751268056122275556927530523934301023718244463624784250808888372795495982355744063086487280949840301572556283873278877671206539710424179276551651552580361159757038384700734458425480976288630579019032380875092052656278572763941609763133439761678823057900041678001024516379254806955570002442074122204401312338262305326377070268448953917103458004702989228249055281551510025913506449907056298707377409711925425800537170911176766666953239880063246949922904474526369133315348443143822516769930338114394364880072186439637148522413127047995024128421799644210744588357342681687823338798176640665576734702220989479643373121179169605158708824910205943766531906330006091224309848482807922642976695269619966968137354007878695074126761234450489828757064817886640831081121128922352858420568977470437273861335671316035846439552873791661974913292308970642268106200481524718202598861377435878529827158287765755977294591911105577637749135362934516533527572815257637161349735518895684769148195827834553571016490850380013625739515268851221651264089661965275336247021091381560008731319087368210044759100936722047434046867418890670502623700991831459520162095050107231552161840075688178183608867470785876465006532690104455457951209489825030859361391989416684625041122425260215659081093642025693247801814648793380084310085873943184086478156461903316125233494815029262607943775971984794984926153904359979061151184061943392516544435017040944127280604564115191821860876835383699478943740335152703986204834353163901134527831757752008822859955616781441569894755129868562133569541383137439781028467071095464688470073656894122459352363074568869581710953912316993839223914444875726752334770447328053586811038220122246880971055629200867478563506652975339547676435947516791921747018590571525319112970330805694887361845569713434104900424894300046223277841744063262739190218112126129438614328920414184865824014062696317549858149653280863142175342918807054243814019401685623649294096086796049697068143150102473008698023799661367255966696506648624901881080402455143219226292757597180057619532960076966910452319401248369460714798474447437020650551805982428613797823946759113332080476015301792510527992074688734562731889109996547991139740126151488365010362110810170506390107982550467068831706007345030275892698296005828422184469070241340210684759147901007240082618384076202584658190918736058850590830277022373867400379607426838651822882095718534737690139303419112932613987718546979215407128703038995231867768031237695197269647117552876174593727597371210491764600848387886837009506998471708211169123599035185462127196578886267742829965127411618644876339815059760612304037684469310608195999388358318554965413682042791335664516187674269119961390043545487356370327200774335345052463577552922944513804219970176519257330103750618159302678564731480898219976200244362055834541235390021137158286665028809770373905601847966592429078823148662199850375929865373375169976099346089909378448231689752778151289988853810508671000252977851807546621345273131545156708754381805061653393239163923607412773592228303996759313517795640710419011016314420623301731964383102930806207799463992382167471985763904575742060975537440177223683421304927167566104864465566117375765193345306880216288391905250494425529645397144687076861223829197577916705978838743592780507476897019340996080404182513654414218512658517214490732413800398868498837260945708221371291979916290457411408904752941420278115233532250474298269517897804934074427074918363403146419419828718575801800046383390046901858434234753359265093481489126558543680243729997099261977197554469229354322097080130334562922702382951157639721800495789674226188647972283661916344659242227549054541152520233189849823492805199446471488242222961688857463768291645125042352143025051780513346106307812608861549289301040590613521804453840126445567244934926541416759348852795940910024597108155414607575377763205142179028717479582218412397735985447343312385340383724364921647076349340075962966912096578400838615477815255877228832048270003102778086205959203024608775060934952695381025557584686761252428292564408646356777417321847455084206951804175917937944546767445974254739273560444699237731917121126664048481035816544268416219625956316163145323969163410796644098257933487054007649418519646771393798705373844556720823395790464218179441813432210192330780947394252771617403661579318886757428341435059047455484841243999098286915168552862336408326214495319370637263097856757529605196381188833786521368781494377822731500466000133430068824012477092059504417384441898139992356621373370213510520821024717123912153815036271792091109497114473104716430951053756149049669125806208258195720387018856463977456036684551914178272428889126094241028865197050765081163171090517588752076384833017202974284765408430569023619618181232232840199786954283771037697837588140232183867138856714129868067250074430979752575642740334651676555728255024298779464194315847057252149177035232069503958740856088794039276012981768767526459350322841788676909479497859757147809611172499828466793901620938809431810287551163505940823414192492586604029725101923373428404174708501343096303538862069268638728881586709773053640609813087477583371780379731709024720459222230456344213764544001363902130536248560000054476533270634725364662873159797834397245258563709182817606947649832509500150421046724175898900449996847526944344290168244724624680749355033758491522842631645103269773615520592656348752197239389940618534984853008949306144922651211231453286627021426029461431526473520968401156215456364056036074261561809475143398224010590157058429438873679325145962985190006967743665493212051356428652986241271590515690595163738153926999110083318003983279635973536627118564799568941716119335928244410211184728897587163725904648586163814901702197392864181458080647951531506196778903510319188062828072900098697880651974061426848185458224877101848449796061028771370921671953728534372635811726906602487298783354588444125954032911798599267380754823407745557847140122601253018363022845024395988764753203571033573119665825751647881634380524529447071450308700628728485531590035870123557066124504639390783971609801731400867928274969702622673140164993172495770779357145313859005270058521631535187193604364352272489810706055145476473057156173478373410665076082335687578094913741445553440129653150234361383606317337930291919454482124437895111441141730271047729607249415788030139501105617887067802088322123247689653804948162483146308790590342143831882998331274098053218025965693960597031310958387024149419183625526883905921255232707575872261469239505768577496553185166372636810010239097908736605911737543886518646866499051157641217702269169274156852389005293134645732520663346711921907698119832513779894497889702196610704399588097757942614349593884257992182905220689215153943861982530558199064364501309132367394846672664453305763453612212620745102898572051032156312533856992901598880046270126180548259084774533833727989238534075408735900343087073650213755333218821559386226617503826226849867877632549754398095151268107680893789956079291703389044100380100352693233874144978495590774709312756554454951498846859738232889390299922842212873469288006056804947381746803627346350046304432297146986908380875104783359238395686564512674181386440086910433486226983414665373839174399367012229605942109964768244654632780293225435315314591251737473429172193643018723050466238207283463547006654340836203895343862260011057263958556243401042103298118673865512201461429800810039303173008570922444584355979255001650131679271798656642377844175619419581644958452621898819252090229559668321740671543378007267595552681570714215045914608782188777708288474035570925613941533059648715207162479624462440944619232911857225329158884136699036198799026435832273127523263028999981113469200983570559324661430159684155898523700399424723582983687645842010845527914669274694251846977819536069924548355601109806797343021447307004017571864261477675192463219638183826976574338021911224293717330847270365041170594696305462341256218485672861348403711646538129212536444112678491786735109423654482172009249872913233491636878858065450099099575710461038744183455747989094871844878298392205496677249072622016514422005991361088702134434088524171336619848768943787274931600100484002381010901818705007088720553595212556310868779659164310772240105451868556911787963337300960252566477341844610860552589494960147947559440213277215207479827272907536148539513260497149548223196246665116773004017363767760917272657173910104776675452626264034556651981114816457862169183483266564356314661845440736175205389344758674377437163648379377511005058660546904911244455582888157529945800933358871064291531854794748715437683488564526390358553890765653254951391055752039126502052876880791780480652802471514924463428269545130637007139482639450405751729614447976136766291156495415890400419831546353574310742696056315796051277573018430321516391070891289661651193210058999763704354613795318255472217913923435156585506470214618475268232970923227208150766869415124473629606330760545600242403869353576505059896862581322200215930679649094245194457926586277669736424264466119567890783478037064448109422215188117390141406226259463989051677119775002664203910010921993841164201357807324691805093090533175932156942581917774533833886540420877838268528995833371371538406040068085000270173906100511981668652358196732542049300663026930485707176709105961681851567634163381150475019516349414443209516115754530520555265833313737793072464468636405712412704597812503889239829043720655245860844015225656369225080628608887498105927783947024257871615844616262045770020996847937127018677804556019145973350059066584506214974305195363438091071651634159714949306261486823057246876604056413961013648876476909221319659135616963315558400789714960860359189004244443363378413692514037705764747935982038401583695056550495703786105465801538724846382681916805020245155584847142566235900828590472476553252840256952421291434925660317320764991535161157277267288859668844236897697540918075332936948007917631302202835052097847692599835348904375605934336182153352379362528476544464299331256954513859757276647852217922087688337650895030942290545801835333496546117450444445646889474186918721147201240091602071610080819254391894109225327687498983447322119885552356333590684790477436107535403648660197409976687559110032719169593625161898748923980519618197769346213560240957800070672836536480438931296583829140682844922299460562982416470556271658178545374023170647040866355759785054383185680313941473854342694204257099822159327536762248824522243072557803362868546819049041409331876089656108456268415738904133577567154839880764853438744925330129023525038727867061322041182707050703839110213034336402955354229145998050505016670504970584863553896313789828758347345608870796216958856700540676806697787012244005329719039443829690790447069209685041850238600888505883097814658377153081397852261417823807508372179905537816029578095401694215237711734185769404642315540374392279322189173570183335770281785115526840194933655297862228452498647288710173009109897674381109880870101583513243746233530126675851710831248180204508538743734902595195915124826112683394561673369916208821020867329280077278656316432787142093067273586351222618183087918636979216243943774520386035807642365696300240470683499032308643544202410084060665087197769927865816289177274571150785441892758727979283699948086874878711883096962460469230388582764531429760403359025606749660019252360854098718292210799562746284236112780738517103922482123478537587961916432547884492567110258357875525912069261541193563991004039204364026113241402188128508728716943397778305233732446366952102423383391230070495094043953410485214348212325775112034136701753389610472290244073407101655484383456804007564166567673686766270449816777292349213685721945216003037643019927511390097448416191043476578206995939200883012392950180238300617873745433297086464274022314693264180379921494853829422087438288785133504975680624039775501157087852382170632806610674694073959797324738902543181564112636537044880734499107901609164495561939066323664607146576916183328295454397308547611085768750777926977883560561482501782767122870562929032239626898692792531763385874665320198031889296720967576566536071616798048883786105198494534943918636744924297778218457512696856872410784051964169593794490872813273748135343695584126866898409836304134624587035174870906863896673738431148099130187915035512547807500859127726622663493010650253762499814304433755620226861597799907586971625799408248952577808129328651284966945081687975673673924923261886895434694259237451452060815744547967890124462795034322369163061124560617619917609125856747396615051162350619526818743393048210745612095618542294424249301092973355482898700910245216106353241989621109014118666744643969625060605056454446249977074510251702245975461085716723123027747383855042404795277407250731088207161626607524669240227482050025668046883818199820434502332028258371474144433230787825719355031700046617352353689468480941551185622904958002423967943135727998891441693889339819132975602924701268512796934432004319354941139799012855902921666372029039196886699709330376170444616499422185097206681698255230404256873674284892890934477383316333119957903531419930354372423406534326442103830835286260890906547418956191702770846265776839337240331792110486756132224914149351255537666330859564360427182301033874718865181614863532610778776243904607825226792344087430921014252020386645593974427414741896011464760172834163205747998126084860329058270595882089341790102337460078576025511464959338179500885096744719311360349506665840492919817726376420169131339694846895155207880118563586512860389078548240950456254599109856964189914803973562200997315337678609518762186763388007544121243798662539273168161742789451929209589175612057740272014033808228056789414320701988783874927736183214097301852015737305316642190000866515564807760587815543855065344016278558108517240163529494488908526137334199116008186523974774904027306632741613494476171272678859601468718811742306301851534871576648356925968569310554461866517363456700709068883087606350670080453814953952528229746440075866334968325230749963162785453435229665361135918891230084906025957244680636334429139410775953643608450293391978050821944727715534124861132637570365896776007591458426838799389553406032329432717635219311030749597040041264611527891673644831024178031119801077649783117721001657868888986555224713484233421050343220649448889583075216366132294190590411547433500129500921015156348116217203075712993961931956435363767564446246316744248420995605285071680811467536706911219050753194627090702830868450580021843227143236534784153076601899411684143819472935323944810574842272032766970221803602839650625417085938180351255041092043303538370567742256345431456569421607483120339649314035995544247435089696196506845569095732586620938506732975428044708773505619955267026440606607752033223958215906628424773461642599322269800019438009824935749630852142334989901906075724976457506039070259604432370680129231823250211519136582188341087448539488692832362814933413709978843535692363437324839161650018274965752130408535207188703307487491113410078225332323111824892697024442544535850233451789075924967146878627742495935105108532435572678032140936446166429405299496785919478162141132236887827918510946173590837563198285516790204506867881376222897419725249315053391891157667259723714618613144971958141748776847098615918562289970421570648132428920662767959664750190031512351325285418286372623183177337903840582044797079674775694194778498691103437760775244153802937450508898185665896210644126496717013832547568290171772777977194106386294500823258881152373038450978311461901884212477175435086140390706606862148522330089676846146304735429362863296319060858035026571934877043344810595061261081263415958463135374627732922376346350702103348513659879086574478278472892481371786939004787769629543684737226311105955150624148479026885010809233940824465533750562330235279473245123030474497216931558074613480824823799845205410083135555346397264512939572247050499671907644252616114754203698159207764913156412279958851987912663632685402353814044557950267699319194740085141703853666850377314350338108059178127067691038071970199201104313752911047526614541514847734407243891810405727953867793464748606669393506150923746765392393374187908589457255602599175082413265863052959352205537991762829308441719012366563216767699806537472970396444738455679745262745762404020735208325807072060321898898046750827851410312053948721804782943980791375704447173043419019030340946534824282805299536967115408600886501584012775660007899101636823186738599554526871825197643421911654453421876647962072439760741618574550562362814570856422682483527260281337076760803847694155345435354080129866793345309607406980614097690077948622800305114013733563556373911258323385927123530073153237994679692348184506226285727202273504905800698287241131440438150534495911572112513151202612391179971940313811201471320336344579116295432767923851782724572515908954717100010424554199928626160741598546054939646284527516271718405761389670342906591828356001980951574797149323556106898839136118048989396344683062580309595505815189723247145807229348690469064379717021773796849128620270982899825825430642974697383963442127494617758505095641166255347956445777384055408350189046837548624969912127093988051059257572636643436954068477005206502110838133102006950041942968090144121328663783129527021113882173728773628670442980591965200507222494685039203751654349855355854978610705280369858383005399634860803071742385700184127044268490344041233079389689745324373122212520010889515640833582374512018454888249316066629272583682168451392247873759597394895904082575960446753861196670412617459199234252077164236225095116290075066741626032430085618314497917728297682914965756119496452786617369825362845453761010411337239046928666986506584339103013298939956487548429001073687092501873746101107181167443388077506153529125524484319025286247620400924965807949121076475297841016112574715957269957372896885083183875576105673557397875773434733601716845462437053180809524083884123721065225354283789524184124376626196863025024906034218675892108340817268649697421177510352621077817545773034702477598097851481894133377942579514571621324456375459664795629079056693839707564231872320790278849533868752517542515611951549640958274192663128500560471793054674782419188228855889817132624922972190729855425649765071329823623967209203587951436024080918511211935758364855407422602827006773518229429206750085839020695992349878204338281176743785978341087588495671490824073689503518755464260726373029458550624064453441701882050066815261207171483307219811356096208795038807832755597359469631986768478529589978999311147616943400554918570126099891078939342652665064997254764433947569980943239447071836025690057338299153369608313526208308041247855863921868202297865198918601624082610757576954937775127342670698743160432159294533773452039870356713533476839843810536411282766570300931980077385555436914422019050773149828279557287866076168213955865512255681024705072756701426541395721467938821401047685012210866676481039235272006227974674603667336070939551298336908073695458471792335724237745709860920830220574667720240004736401611350197609578397218445519001650405773390500979897412183078206136157155181446970415386096569866782652984990936840123591848686545385987582582600850367473904083939795443700238738438620630081111244257627592661564871045379612315940517384527035676538084434295390871964720902212281802899211667277138107910402805609958633289484000941887276080336121174451779677223980601532198652676864058284047045575418866716871626182707144299324681771471789411452603072953033986500822163319209400753246373664758853682006803199794936508608389300054024648868639736023952741994510103042663148906552594129274977643123130890922730979110816936742965136417123745608374852977540658591607917941892129722310709303698280125624317209977187597239670886484367663783916133867263617827877385242586249699422569689700992809276298289819485022862480420186421843484435703222003859889107953638605288078537791696864789530096552923157101061838961629779785829500285768934703443277062153862110819814735306585457613182138809283757983154551005305736455657850216921591075866564401918699662326056160999587029666413555699266653834262014235582372074652047710527136376659924474721980276929909461397024080828711341219234998757890949607161794126094747592476935687166361518755829073484425693431622273162941425075830665839817368247350959814477289043371163644511441150942178633786960978030347335399413618475254157188938963053513766324730486279909088384686580163875236990925364670686008031860678934011136781618788809028682852161554123732765937585534644374652700647568867742530283978542070830002735892728191606000651641736598013164997752660229484034425197085223646793359490674580414709433116333500683412572639621555510982770558508323557472583801004024772812547647132859794631687081616201723775442564378636642605657248189356177445260373196535357695460500578501592909758322700550565476544579195506531242212506188692929068877856409615539552283311095024066353705017861812381075137659619810076810908583775065108778285633404996672082893624447369360789473978025307684272437178001916709609167751566512232004065055779493770660390341338150266502604843625745452080388276282235284616411706829712356533737123933289419007050033962840864209801690665925388449019463041188376761527819670230857644975400962889747867840648937913256650260027154602850423006092265010672338383849543428814589900772421401888524828826209507997694558468568221294784119340320483317322029910342474643839729790121972345819373156921455303030867258862933972697042527402063440965232873840500376148348183022303951781510440283527438829647416618827850693645564715709500332701484163907373196974022030983252092176255543194058425216924815330065550310780859965383073735953966023858997710939991761667101267982317121093414385746810073934210192181943665472097024758424700803984272585116616536190540554349614267891749627353993945952021675788360013094559014249766497432756881227733054141656864167312441581812276036729670926553132565235926497098979590474180833156667129080689383145552531975520457896008978648356039515647042945598200609704012868688430358857285553366705394220639371065749945341414415400141243359050199184544528478783334062305639469980240910071333873882003420456206047284405034974873383941571721472450109024236800032693649166526927250744671372335629538432232882652182807633525100124955496728316998540226540469999435495740236601793250172888099318759549511715738471148297950177154612470851724100777723709848814508078044940219011408429516862618100936540280396705721422002460045039471759269898989961509969730851687276659174152135267644461218963017597050620750336050073271472914159946059267569634625755267048507765458210917924335957661203700098952869428151730087535403576088617885690727107132366227853930419601490177596217671129057117222350559595955417643938031065819065730238753745742671130724686595556380361287824323199594170514483426289063802102939072813446998004474444910984078656564398288613836110442052336276687196840359225449040481317957396998299469579371008597038731575320941363405513899941799475185281315676107244189716243534163172804016839006413086606944586116418201901651865746540341545675020352447707584696792706425202173894748360252970687199411011088830111286479966876851608419169931941741600441489497738665455537198408234311106190553859739466873509588663926633759843414281803172509218931120253078420021390336989501837257887097200938140071494103675218936277025938667521377796076279148258613734187468014142291050581019943158603736686543115782493572681258620150417965573597188442698049753834988379325790484473036213838809227911035023858507476454641159609085111371671415173379300210146810399674539433906315539559308867598429443068214905187110586237144611095457965952552150130356932261999571338551293902906039642588193113664328298075569113131125816676822817996764771690953532231881603633145612188525808575404918094857302200875622584459319024475914964927788932383680195732284223513953591391819101003009974179065203429172939844342938614168747303881442348633349132060453810995020304456225561780793536830511505505650427162033451109154281517431755823876470405210111358135281394227695399601964835536493959049606306560324057840837644400838080171460589765230545161132926560917427992366189150039684758740720251632449844378612951170085085699274977633335153775632098212107793071020042726134135561883812843468706621814054007008232069141530112523367168915677554603864942005307242034980247585700018185782374131865831936169058070825353475514681518363465329133923844068122528951232172376843114379743771028915870128890632247832452579451679795906107075132354170868660800974641030227689572011468751885344789187058992552377770838012307206995357317957172774058253290162694379900544413297203213643672749426025657102579319443577927714527348135399940889146503782760813753008928105244893637068778539435162962451767060464593063861944338100132305072469990407437722666182893114844032453544259538926122442131566520715631271056402712931715900273507984740541608676865814589086467827823289922018560850773954994949019638886316033554084220498090473292452587615426192255769388579403914035745004206980011621621134696473343554257858463031694533101438104974611526993485629647189987362092593788907806599854974088623491328348191441573858040252679654520446553200123111467526683714059868041163289133598040701855627975420861902524038688976285075860560953036888326115999166130531075323462139316654817036218168762106566332987205127374143979117417139963681734453723378614197495398786415957329102345902639317373539248184882474457423010803268191530752094944410169310282010534096802601316029714739740235531531200645947878634754448356557188847418366323655955275164894850336129949196220875566899790465154969639248678186908959296034978502738386835686559380906202844134227873544602705656871194145436699488373828790196966584248062413667493682817821258807075741545809439477477026101533860247838375517340740697113484390649699923677703962258511478434785738040791867612072584531143621134270659720811396661777730811914630223036565921055156735367961113334914524239966645268786806734682936398313759266681947570226650861901541426383168158056149944826100899660032828111237335785921620417879991749215300977983968961170705298429449001191841297453150720885696827257251008470705538800465736043790070240045113053877283798730561169391827898315969406656364291870268655586099901052367857032548543480124434340170544903588970254000418047215941883525929819204209067788049565179930852270716948536536718947132682326202321345958084480558558210854202040989492072262447236629425442955049985648559691637607049253551355564289184080338342052475300201386259512319762962513111932815527960934570729613931502503237705495204130996392273324027094781759674039823562492524701167069185118661951251990900309679478132283029446173485589289193352526905338482130800777176600092216457253418069975541619393300633334498650943762602699510758555105396566040401332779737026733877225835675675008372969475860369321560923259411127940849064702189217625301430665665835212952051949579803561654179520717724485246144119815160332305213832252469595953068895764053412588666185087261191039416223682384325789412398484765775172025760582617495962975689557233133659457161699560261001643321774702853747123812367932940568334687364964549089559891521746998927686057438805087808591683385110974019297653941166281532164753324509356444174709087062702835147283980282563510594185303860160597378725691587381631441603101520219749445411429699079946168463357247569844604934359651275261995864066214509145557940548346897380215467908300036488163859077552863486159808374599287406647290749380293101340610125401419946746692249265409578520364332170514440253485291316636604565913185295102951105183489823542050380333819216491850503572504531489478742716863585270758420056758906766225683264763517839093835677496424908213597542802154187381961977257520514529410257704021382493074555365132357416345372487986500010276247017608532449579911251101614898753172523239263312868733266219064291001216414889184463471225667664821536128770308456168223473123671838646296425630750251466366998920991879845874275330651927204929200314866455669070162640268314328782262389000710842735364771458144194759648189233374353077907123807849872373200069597215715403986662799480074919881928640800818080924867521336257052518045595652809925207532569121561012779217608854157645919022246460791770807670387157866652744219176021596382007966964920822017598780575063720818979255514686585970325719082527656640545534430344281201787392809923117911983733389786928027392359796972928473573891676464538773786471295638404427138763569447786194428877732109601013965119781900247500177297512508732186521912460913822008247632191736625230528178600712512517976633681836925181517953214784707509207367238278263843168040796604018858239607306098892336003215865763930076901362067528197501865307608881811006822618149945892321325658247438768248907612068528527146164174133606842506912052972984165492328513872275004300351609417568855288224811608413591355057499348627974295546154475008028333873683702439900933849986866979168485304590925732564305801184956710308409537859009340033719483796947358922983982025694084778713226677326945465227768713888166877144782065180865510364443566251775251836060568058589902374427522402944188946533703006269765085849684939684522129547165804815612293434405259260522760444602772606533584799693109652139170326297305537376025349533208169149758899394060337381517801912366012188730266377151828341325400843418354085291892913544205611766443190263515041224637631882578608574665736180677174235532950896066806961761392575881269599296088000656114777457439205804361928084661118873930061271787022052347931784803148984782871950192002722909051108780548260093632411451613654591039961086147854931947288029079782812791804077620697602469628163771291394775183239104223659355082341334899969652092481055453885111777882653125122703675769524467532352842830153901735453029748033201919369802613203643686731266315297927611313648292604861064202771035212994769577686941848739426753082201359460879057354047198458460733839660811966301513261645218929916046045890185004036529492743366259841066405659893409574016357034631997227684023462035452354398491853746422187225302313162826025491185898951596399318241122352325644184535111250865128320199326478461407176551976047447129628535214562291347515933097918647633200376744731294781623406836585929388383602087504384603207661094987664258902631786436541370511166810774656377463348225136395917496138114629544195365739695509918456381132771832622134657629933279291959651797958460637812676522518652798726240758654713815346548912112321082470607716685606214338272273244565368669819642037781477077066619209083954577877333732695328967646888875867873729963321673569143327027345591550915629551007907995459906631066523545469458188930548317669718121811289137391348746549728687334031559276208428567424463267339121844731746099559469051756773376209604997333666233034846195316543539963661657089179165357891538366398192445904076543878030040809798780998453951454455658807427562777249838483501829139581730150223008655975337874443438365150722750703506100500885256828532624283955540591245335937293631750742896674524196860559654806823170214122534644324518375200584973989477774304363860774336297670995184896630359276416032424085371483931714970357643276745261756721638254219708690054952616855064167909578299683025609807202983786089420455937596206538686613529259769674513087863279525005146191651555742168720419675739029931757398062070016845411370110137885578267160426914320314647281158814810122556094235313525145018203243395908240231950150124583639152315595982590036010941475452157101029930618606318386525195919492124936860784375589541176417382682134682206206172226469724862165304971287981002365919396010269885164169758404687576223405023297986227041943951629997275303443936780940974881765114974351031326439739662956533424212834367620935332752307408073237688000529173652844869736998067670539028182052756523242099849112806653476191202937877964860930431769757796180082076204144603733014970889825898755572835145238191426469281285779714595689226978145443439893026019050043645029228505061288963821263267993312625107868532685991332253237961063094757897876598793356215891903333889991725019732424776216682110969649626512084131003169389801953733107521601619001868891694354539143570955559130991656029743711621294385300092953926143631510686604279049386605132783655031572171312566082940357300934278426222380718178824482498851188920933220821962909653091585641101179526136447430409626662534639923961680605180553211715165907670889629980195120954621125935041907045201175595478512980407804962859012268651898133220072432289495734256558851418272697214613763225037377204338282627300284997321645283910197819422784428202966439332894902341951476606803360903704711068329784630236683802802866409769806997204719960131720279756698927563729577049667979990379514593115587541336209314180339444052759667934694105751989387474507461115664550214194468240774481219238273888853313984793676534754423697892771922066417750601224342795712793139895076353350643179119108203817774828832070388216708739790559823452886112367510354098334733336440453156833834685697023209770046061231452495588287277881057553479495198944269621801381144606431986447694125493918604147902515161107467830679226450441417047241627324780336144525572230741642297779110538570278897256321649491277109810902163579412445437609644609781914475883979960225078124387250675906874009109275456017009991688818303755181023116763909384074252928571416004700169473162089091851929058432012066213793503104456045152276459547741360955635923923766167571692755661785714485445930578828057962083816564041615240388754962434141320911713832037285871203139062519788396868233323217952277690008792928801559266378048509910130175341921884291564352434315118611908869948230693550584019611739168658521247065503152550109188430033150951254589581114548856066298418856442217295166956090657710049458840530348757646595734849914022618181367967825200684195006595969715990244865427211163608081085829437289093276403466419793715219777399734142250901217640399727194568266192218325383106615267525353699675890259409884366692483555568526203380695794565721322868139281989073336637779672835986938302336044528316210700251622190911335541320276738638809231026257725092889931952429389226632865045395107639150504938018630433676152745867364640190568586316938275922053172424522546248369820909122714576504683086564072053310817974698023372276092168752184015957128915131220116609519515464261222370222903355683372476400009159456982891585281165042296836074056200549170121213542821024906439894207241252041859028709196106650510268450995290389364886314766003159888124436519849296016463602810422798471385186272177336248146419332453910004884624170137148387555811464676626520868170480935123116005107215895060773256016250528931051768091472374963421308311960284370374426716127091937123564686453299610948230522234719924578926484335450150929548507896509766053877116758587092773104094938607623325613458131315772294748905550067137289682644835239578876524138252867817995907991207593105020780060173355538874783636206308952509382034696397053624619049258835827377564763361786988477534810277611914388613420033895101111759997813780255930575113982318100975093507169919548646710778890230780780680340609352052516333094834780565558891015360731197160710866747470260230718405608418461252109223643274693132712358568951830540794374890140997633094561606758832436856874918477246148687582682930164729786733939366604696648483230485769764481094201491947630518757599386589968787270341333387150578030638999644730521904910326537700470236401858259354390035838577685941517576626851497706959354590867917500694420778766716098580641591697146914047322571927240095072360562923622582016192070936513118946578841472711278401657750177735083889260788719156285583857077629087228058757821489073543517567132636910547708300841337853102798542584860730295275142549323679221053147928664793111235046341102727579505424492087467487296279578294723505439660997506214261983635109568520981022447848160651128120806960967520052091712638378352812251421784192429280354854406399913362765700193551526710695973007683385706806764980510140862590343127553737304384331808516834264030852119303514466506060920278082405241117585614446817867297645243745833432748660944438656521584586334984781834204209840058867519633580961835114499338287972463899016590655773915840449190018396564065526599059291274388656703177769279862763561262234555685581477210142227691152055451206387039954699246462066545137110707197648351648691658038611307150645909755824071261247967055369748836760461618559063144014140487950092617555703724552874374219210518361247780787535527790492883219142226663492858341199773218101331161396657384916533612259309109956457544222014872336516078148392295340890818580092977601934840473623349808661270357240347025747675829388924572512158194558748191935614065999626217154505886097783274022909993394293882069915105597521169861219790432956410313762124661609669352304295347927117780027617749776831063179442656760627926064476349382479686311626778355162679052815036090780469594492854410475057520774031228634371680304908358863559341225361042109058202151561081618047863088784251503389304510482039007606416330231088332419950159410270458857663932112952602461190815464329540467321854260000058412200044353709692935234445284348641542315552408550474034762884153023937828011679831588936581340756406539538981589375845316125159903415345395901114576447477205583538869211619731596599444140652018555811303230893496563856181307777616168632123505846822047121041198370192212601215460431710034376972722207917519751375673871170572888320399615886886496455940498472858828028035856886499513617976475238177111884450344138165170269051341746392386188702681875007313072804425235551546408978394354225395001965008397651983083982843871444510404206490497871461741813265636304103696338945176111381038623934291470627006585860527203576727689934717618572866085067306361741110505618039962885203579606172000046857415084869778880818945420270171819254258726047746340176229112901316177672468770468573748933044717772854246627857078244635767344732416941005546799087611979762438207086354854908101516595462056045712112018716206467813056484397557054727102695066460739266499979805231516762842620307982251005726252277431885542721660503350031387362255470283827882183071527861242948355523153498639507213960971694764499562575699290924293722581893093831639942784601852985075548292150895165271423415338676163948553996535204124760903384911317386344425807311092547785682871304805601583540599265700693377642973385422178623033728484356801871846445961606506176166754403317020532286917682820985291712211179658398970145591532963876388174607552838563466385111847542339853864070332571990937552423934186480444614941005859628250367779317208636659200290646648444670998967467435704184451143258400197679602981398706077169024953106542303952093763650661927861344983145399028423368072247366298520014367408016017179510709368551648361233422655244222168600000858224750534452921388819167573273200007789565664859752168771147890976222643463295619497193546102436300583329403349254104174575823884584889111757995831715664053309071270334367977096318024655381530248673186143757358447471572411568791374928349204287229807696406447581753198231220684679805485109240436089310444282128325051024953591452236101083761229362125297541762208647689000440815415359447937466319735006624093146473785018869730472147575298770962643702738777490894494060323783830830668869732310957273975589128434698961038093911371201346177635121325988241055419098888640570384027580434194192473825121170405360495729091599233585101376176603514340332436248813246207890401075281423476172181419338985195739428429572656201506423742170868958616478584535401265481629658461034721189125619127533751191468416059542319933050709182611821725308272106349539012064028986957003739294870146040596783369536881674292216664614109644688198348590472991194156053111806651839354541596829572370331677274838361693872262863601783509112619418187298091010746958775540745769065128642204563912478514241531422527370419017422173963574466424697984805010651366886902525336486179955743054710951207050805914831034347932514686408182209627166205824091956443098997130331149404580902251950064678463093899335786886165693805916192200348269500051175290843288107543981735136137881948390288367987745386913925372631870664422897093951443287308249925431258588681448384791887872114704308383328077327101898671695087441784112282513762247840185635076123355620262027926594781979534255432401500722258984237501447882952152320132443277961539379155061072399399023789138507684617491731279732071923164756491260592196141240036166456491290129557552945210763308240630300131422851196300937068154561034402173626962494796124865899045881990675654156867507821838422273064645776262718694058061027657963858811891815026447712242140617813018330189339051689820412138666220323952062506795120299175257040458945507156251527520187803310365211570925509765481355614999554825272147079845860977736500421864628628371563371261266121957433392686703101991176051190855034540785792554547877375716155293029283582446228411791058400852649557429520952783148920621708608837204357881740128147230536485159086839368322750283396149539335998871549331695178044466219183383911438034546395186953816375300127277354198043452868713215106866449850815213451247928840749429339775609058130914609360138523456716472702956267600284046108515957856239803669522588030461143097246902297034783828466395262881108598632468214359166240561764054104194087588187883676509475035553214979959598048127234283886359057345193212008116656134109729040958961032874514072189090363270104135814458638332216807340983729429000245874783309419671636077736136833807907069504191298197001175732306600873601425918674694244911608403074685741975158108284556029215955749469441390416963905857692332170391793589405187650784268989921206385806849343522086030888659511264214184620546726772562310205277550197876879112677505176606017507051068487476286222743229031998787878322578434816404230350410845915964492706225681607313851155768039787942554683576269728248230864438852817998031468063508588944278835818066908491718538019155852781684213278430070542618949033971524259272111792668898424038066693826697958332942824595414899072055921752378722360855450626592894102953350322636096958001649630953622096633933815591697063726892105145590589701967549456547407292153998795142987951179166249042467879322902893148452153488893829393604277897614509034826365942315988693490881961787103673335548478074251915982075856416432932626736796096645014298295990933343897851737037240103995369521591934626425038919409354059348917343628203170815941770966237267060229058810025660226902750274743516778541842511548762606872321463057072997944206069205608879345778189896959296287706987625494427806123503522137128239708215059817094615549510246087206337879680472666998227268266988744350177239877223404851850690710601676735132389433435053727463064830796858723164228389430079088174018245407263640662789853698247706410006881912436819429626772357228030968939047453706816616688564502290969802221614974863141151684720020910419108802353692833455239439914524603433540488992473745583206715110336044906719173347213588126103948917705830332339288454983804360033630053354100328953398571624284413042444796401854181206337584424187408003145930031801425484298768718790941040076700889781856915296827403483885890791163249049543059675073210241628111802756685318040804375607953998867821597575975389721465240917759259813229565198626170692203985626722118109460963389945996963695306050079959994047096283352056754154074960432728107802179900487019450060685150758178833864937807266445191055833598312441170797572220785609175175067872580275426311792907994867537135207906533204704955335858748234571587671634959806056229417508572058164923076667107562202315517193693260530996409269058301036755030770044121071217459235436174305653315676158132436560989734876374617166846843221011971444653891785192107463409601525058774835817973785577745708877122597975949343478280817700059501785043017350990012744281863028635356058900996359667349487209167097079364372287909537032167174046278769794731263583443682443738217605600332024538989896258600869205071668152227345877247108590403077292197641211133192906112851444419289459878537703792533068858335268052314834703728314598771757059433791306590499769711677921448191900238169468367168957183426710554819564872873822142011190322907004897799259157517262356774230762802403911491197233259112721255963075390034229212996668898770499278665708872032189024653187282176758885367699368089448974711130920143159037130423256150182073206451234505456932332939948535736917436273763224039721220257383710324770939129560359497306973964760519184750244880008142342079947595048732611259005946921382335823288178220801831116303775834871181599586543176570693593621589918058579613721102303242283614141155524711060355177356053945732216227534563019029968294658395886400767595922331438996510107365779514766825674531313519029441000433463354087106479215147529300225355833013759661391658437247476762006990920490875193049075429065504778212282652655734083424294015910431887647840037244058434256559162304540408850588607424830399132947707123908349864053975601930942992648208406885132652530508610768051270169046666868866842020028727510570765004891528528435060215451392859429127010233463332798473853425010127861536032145196640039923324472646539408641476617619572503732676933967728757810245294871762575645660653087033775289648675773652894750206771783401467753271609887938054615136906091980758655847897255996571672768821107228533536594880532736579238305983398941645303865413979470674541374703997702056621787317792475386238374494152344700228962872332228587912021874246139247026437114983955581303092393585355157398499973253433771044271304782183591836587937778372018492944449081237395534130240957305523646392684010858922936461722744118719406701374909113734792036300335278205458230174642982270846918145402646377997895657447507324110825816057368230733556580618199643512558102276908113466976693464679064444120867441142603374393948446540537183891309031502085468318433115909065667584469163617582772321465575776559358647231515810995178870581550968673659442153664748428014340158130923210629536395661101164715746771244988409700075026395699021376375893191252883543429591331968062204937562646494115415818365476749883747647829944219364687312929817793069693835279381093045278315412864368710925938485000641525130605496768063284621285788754429962642187823784690503079862005132175661099526462278234093543954338852754504832251810490147726606840533427624727866469940263629185526006353519355176054390254988893000340511530507534941711986543575957121310985478006634908392636151526667258144742288614612835329406927796711141245901338971967224552789805754380480153128203860958700011780540941282777833876521988182461820237799127392629561689378246329092038753895949500808025562924304352268347914533010131863416823418362491567523880000373381079388424729946714223339630904007619136037109003666675747719723112066520771658613691837068710701383636068148583026180424572082738903527189784518308480780689517297503883373632703688687993510856889164028724804733304655773644633413013340502262356775196049131508193166901000877207638515544573705229505022798724620759989658500421801027590977348047022859115140088458064076470526051699285709960645574877047829104714793657916070760215455535001175903967312877739652041231983839441358331062919818835721078026424299054248930026850665954625799251280301656713888553170727700273450294004050816170811312305254850476367255151067602272272652350670741489359036569828044451932233062087147483242606209837422973209944515057272643103034156312580609135900858595934857066507222757541623381717460158792892729584879655265489507255792886173220397143208650605726060306754806060743346606778169590514385955010475388312586385103067031055024035297887746066240620035860948781154126633628220770030354536130157669439274593661317503875559710898435494280604381836896418026602102252531942485509902889884136516548153138962722898876006464079667025229796697724507154091498846908965453736672793708476314875066017921873197365399889546628175121943408766559861049567059504805714323379774444963522959515192081176744140318818067241800381987284845386631457195187639274310298198371498892299551619186434867534358822487902726828653581553613837115006547404769472966368783717712531972615353718881626573531250172896793866279159804213063917658810968966496904537523563810044603018647320799715660886178328483347622153904775521395587464318103141799740242392042686975973706846186501279372722818952117271618462548884478514601064111608021522611781662808750000670962475685971466789520525134817604534541942597042111745690201016594395395136289553796539644022911057443144627329275567463278688742277922217842083571892114968468000631956540621023690640896339651808297893823055667144916002703251462014766505186121556271980230888585547071766950762467503016255931022983203477982441847845887867940364884795563723095708813649943067691048189627654351358146702816121344582121287633338732238988419684263787741382888803638987128850316723517567454647163289829887775785718114332737584389494762351737603037407248539517715124843521339156524686860071575504514069481847373180824634867675504171834082457417896869566950448122196439898723152370347464198078294323099689019269263759594796716380806200689588693870728778269068624250218809971366749972075866270869344378304885223330741293979911925419348535471942653845186371505662559151988346661174895196074200876430975314964695393474533139265611579305336333757896573500741550348855066365197820668027452516788899930995098195437547559027159740649801940293414634867331786537746323343651030941262435104788291037333332088470334918859333243280680648417509674961504884749377042803682256643065803570569218567304481827136911728386352925533624661426658227457919167610122109269102197559000486487435449849586880719784182830465326810144293440518815487996494087850087576962563888381951064922481078991040512483038965544386409602602563006155972676758649867603870548550973537978422895932827610965273979497517094694585240223259410651013405525688458692991151228623700554895351229951271672514810214358618508353091096158412153472344207168339261424891319656001561609181746170003888257755092158343693244861924027910324278178881147958406315454364120356430829049618146915840474428149520878947258790298094667588404387271946154252162972685124864244733856048933030020625199235556702444042969999693020096029781223248153355074652520002764337599658720561964568348154554778049259069822602785202325327501408917199621554187925679621884613944073635776954682631832940288265565627559974380922336781585181672573959726989456439465396251366249922685565747068775815026359647090579470046360680534728772489170928619666574188579549146989254406808660746433342129092581028403168292485404721074290378013578912966247714760485728236496003136799012136305115757865340366548709063983339518041898455377482123740631004441060898985078113493733428487477657514195965945750553377376393845857722238670014875431316993546120668230357190271888611837791676360867301859657712887056417506434627987182376757071589557730259046761481677038722096820413518471934171709782151100401985291224888594019809723885709679748692047741842839348059588891621375941226314544359568467569400555364188837534879996120006833969642912157541911954322092356341899322975380708186967947009663223545229758517318002201789877547794372111222214661523799580384741520430433045052831033298419101611209206675855640699498787513565524956993409913543737152801837600919202049423766738959105891325463806038655028238031716645214985963396426005822945533771381340372176029544307919228909137966438406420004467537940852882317631799259697683412182729289152858830478020889812781840259473890024676596571300190625649757088616783373822038277609654674369943260755395258501440122831068548892294846725563832475112020462666035099647341172947651040416476413566406817289973267020604065515703395518029960169432604211386719373632742870954859547039674050041039844351882162034710518297284893125405165334339919168660937280187648736909531540448572789975183228156209288899000289142916186241729598932292984086501257864027924657062135489625619160953782514763974575403062792896683267981152101047972754372601119761547106849069869952257604665759887569834349860942316099915477258925237506332269108052445642148412407400330705984261663387711825914100253780199333175325732675335219803269246569278366404695337973385723341918741304138305071753883181413073830238943609543020207017859339658800976764889790425429454168202734373413798145027153217022733633074020526408064177573546637005317848355070150349390083472968144897906607303764168021632846813569391944226949612619514298861362519397973927293885613514774400621825857031701200836921559536435994631539704194390018569418517901065526243287324644549854515475434771512624304602386910582175257296240595738879052443148411197583341625617333385206598985273917447865525935844469648034122928569095727952861414618741777375890498440224454003457176024490106962387570775629529273729260506177352305876437361584659761185665187868586035536033500487506459252736189151823851111705859413311729074964005679122124137627342950916291351311502227512674578936837302092906852070514319365492108790688191189178622331688080312657513995008357582008487226756346528020330490845412941354956389188678227305678763477455129069805891055759125258818528379852869422887805990843526661404866959425534692761021144381932192386800496117356694674692277899571273360336818012950123606782479892943344392287525493817550090924421997711829646355390631880899175810722256341300273746617768776938041052044107724523377495928659468911951159954819058908626961925374716959175467059083552335128149346535759126581243515133861670133482435141973711669799580659433628736506197546080978731774153990948758741324027480993425813005160645457426019613209716497588604574323609301781331761331879738105795213486071635843251044246482507053653110718943961815142055102583492887291136976559200129667076750083161651744082881010837972993438581265592229922921784862584774156745045443669952625375313154377917305890914820749032701540972192012665857676527726164265257356968463109454539881162587226392851454082657673661927050470109712311327141965477625237343805406880236816629842230463588907357215860020072184512660829228579215110626532758574828210191082949315894544362577998712076422438494673232231566159045577304195677897758769341472661094849233929173628697450878761348151673166293963492371514711212635373035945429982441975701383120667697739126391882676307035299529728360459818941377796014940594039710193828322954742682237456825882679887603559765489685434986103169736878351500793906374897502960477440751370515734046811481899635837063813096452194758165522272058732483853701650317881945096131766987341106671850300412730592843883553993150777190948374294907446985000057778328763123653830668516066904758443996839157895583680906227148882234422301172349902871833420363136155531083505724686301463945622717476336428417851902561936945067660639369034034339653055921324628560759105734534347538870585996382314960783918416516364726053389720658697115352403320157266001870717394549065675976651345713130385943344649038737953872038915308740619912385094306442866837080433880252154883112484798087615894787952982421915812279866567445812239935142567737523247773831843968038894193042645897523525047738137588449816766668114117332915666439952351932141058681643015160543758105288372487471265818608206718579231958938864196862338414410778420442978237315531552036779353033829924009275236140095821050242580242441858531616365270405537772483704782430080082331432987868002220170304795103828178675331409215917464211108658271070282740690080439766157908005394555289068255997375793470040000213772881392810228779332159494051702260268006998440179187533208416779025896874751425752098303076531814468121677528184167938102874519984138383404037785043929296805889673101128934983189585380384575770307038639847877513751918172911469091668995304318556208490232292939830512830151877702464629747045085455955309854789327275416091853612028345288463189614134527129949870550993772947610504484925443904394152800410637827750912075713362480623155113809394965942761520454939495456168444658966267457718785452134751114397206158879529368442621050275768325998570320512758034776433649053028640917631519996136796590624611271381169281948259670907529829464914853688219865177970325992183153449665472329719075294219091540117333197189209784787607152628936843132881953615339809451408084989920641883322139215522854743078912104957363272707657786598457065224518813613351593772579723400974355053537268301463896331038427603617372583157471009853824010733957307570736543139816733163804194422555547012653739282710326434315598468182821524442226621004234832489925179029084185104034398358099071277702421877749553937836812470642525880612574683137168982904194520543089400536598905178047967459066162091254496228006416383844537518023983809420930727384197657370477344732639308581645662992108590268618920974718163505608456143797468342542399938023775807644160303790321680723467053140693766776332156194888030105924747906238343823244597221933019543214467241281488472985984616389992591847110980255335348264647617789766696972012642685208446857884908535201450836696804730924165243970252638186988194830964702111503785004003265932548327600455054588914336536678933942574482102099692080278854418515053709049554354468215723395046824343448048230235636780550365775973231099647846206013784646034740767824436883332091392810560809087877697786593729857200794484402805702351906717107786718505094719929373649817641846213738690214354403263986811312860289912756088647886546699583054392768833842912212232076194191029222023978405802757053564046698479033068771437236467649899857698933750046948345337772573555114769614248749373027405570945825009647925078522821018746332857670894872693376980850798535057958826081948735688595927631138196823585265711423254355254157286861207440699443069110388049684953981190560559554890375845667537054228847832096632471303709098736821671491028628522331428565403859316405769031269727835915480419610640994354086901466565326814227384836275767777333162578283212073629057609949463350910204582468697520169648832179871357645326655118870487583807360022672065153261659527471223186020028974597630435420855542269413269574490585173662451421920932720422318668075364452840716029342155811272980318982143027740639025417041704783076464159757257398414239499982896319977985265275826325507258529104125189853269046593463195123202809508886957486707884510727011613754343044161156992486447191748909054027017449049850549331597777724743290529524110206945342182654521042263716116616888926278878174425312445470734480245038666072059024945909777811190535261188767332615232549157934803455148842319670583752108339043387127725147587176550391434736787423169089139229849971752773008185635672775819572756752201574594141238145096647408384902773153267645708146695493971792422623574199366166204794576374477718387746160737516858607789037968691417088798210397522326438857767992444762455718950883971776088457103797479519967588760116000584360655418912341751324158678222997469651150456712715714959912346704351411788025415760612408850453494097491411862429244442812936785312425901067809029638171218934847118207310177889716622509934061650058798383530788894827594347503646456448161341583505859546184413493265620525444425836945671787748372626993721492238381251575550143513884570913515050176844141350007257870673505061334121030764770358678105002742285044500695527657894718771921708358385703656415333559057588630288832353610219203214076583159395310190748684449793102220012481045917610837062049230139327423733019566886687972818431752698815435336277881303450973840739303810711559184242702508611963475665977191966031640615326786488865543785463009608154151208727252959470686424687588976702892437887832062954645106517539962598389084054422871498675786483851387386211445557027851542526915939097098907830876050352945877225815773040604186588480180182328126947233770301405811211871650035395035810110326703167710586519844577050898555880895681547964212738172646401352246583768890027035826304878491244647733869351351379012461397115923190625997128719673219813605227914514091125702795245358851435865865372499456243659533032699486868943558054113528280785965395406287674377285513648360219477885994050608272575132982602495782701102182153807134867367338038146728593754328895118769657380953681516508196698218877113160291979693530316788924607094200471474457913065132128434516319617136246697782462180886617768001337913295593547050552519146891812131214035548718697326500705353278646437830913355782594996656478590539617693705008337181028734895101046638108066694399947523392678790375194601407376208679383151468563906372590946355388004829664888580737525169208888618492381390359249789203673170817070648626798862250729828549426029778518794821348027018152607051972253399838971693167026374695904290555330221133797278260872260872880248729598966340790513015155958198754810791963463781048795892678674308147190851587307458186054608093734207930393255875599204997021258513754360806928830205375995899229638884620560022229253778403777855522698381539217483578781346433267073836469082512541996599320392014542789484131570724392223044573842343472022855376139327322398158819668121478511464991930853749544830608724455520636706663713251060821261113437412819522190293265895358106529669975337361099992003518464207276336300403290344207463428369804170003024598868033324340028849131355542501149011820970993954537370291460039792848950178079653740356688559990855222006811136850737899755912127445444917342545932548800339087247203820303681532456748244577061388404865717380902899837784890242404607684330591723140601516233586965319395593225918600246129226022487573721231825084966730860473982591959218496248163172681689118320557333926455768750536139013567384911836225219614551562263560352758259918282411516370781369250087223473749299456532511531853948189144384302410882170030042614260550719442084276398327914349457391019734165641024393444746587566241350876782017174667044660403805675329851995606116343676640707998391346129965303233541066950593493243848607916023467270990486387645020286125676512477449260256456742108830109043999495974341495084855184292123259662462061795892001346809918750023620621232425603832164739614436727963368238119389619023112641857107051297834064038493871256609317176032277602841025533879447632450382228401794755540366916922880492745768092396524387968706092076675310661395323898699965375742168300091909850159072043860849086601267812942266921524861826334988217433492871516686776379115090640747148615119002505495957694887658239625229639273209981690550259857064575239704223189985334468152439249799921525941260136722434917967295948345925093374775276944453882712667850619834582137877268768781940146998008851451001094913463406404461092449787211088471838305499122175069035482240868239241007945216610194974149796032269854052361939704510737997060567381537918159090818871386063925221338565478020081210996007865397866312904758165812101852302141738487549606028927176026606423132296968202579399312371724926570972858237116873027353937949494840670011755874344600942774835114717069909160620107436640230588350476618810261487170573218243546018440312527222492362476077670908114650008644822863408331585368812904819157048238442738317813972492412901043047437625505141327883909691369335986435829669547543611565572493834212241078844933022440419311700748809064853438278058257777938308052823150195239821521983116074507328686324682528213937096875741118227014295139529044147600514112272395948798794540755845167243905320134111205761318438955969172293331988151032290471400644588361153302268658817667570355586899836652831464915692903428368665899335389746355774883175088119810775913891360917434821447412604880469004463158983967165654780947840441418001187816089049211557704901628885320793874551973946771883510403211617560508651760990422973818302344084983412383806437319581446869885094897153091516643523498926615047941112906680972055210821444859988498795688199420260369286139186896399911715117566479371220056246270247181280769424310291268381611467975228065867603398785984511002908551856140729619251984433913737992420976443695543077099150062769933896192516641159170045729569621694793102949859380593407008239407352203218337334037656853071189139069588883220268393403649122153192575293296897990409378323957823596164633640317731564997652212772889590885973064676957671164982370901201334128071656021466354971285969220775749753591468666761021545293506521337898123681343469544716878254778408951851023880919764161266332269920284657533194268931350012626740326312571338278057140705374839325249777336340699521754261916028800027105993120970116441657314734548273135673463124827637874194412068740796293813631983239768406361401872343248204229998019754074859767677986278034278750910472996428939050079953396797529781417141246825733525320579122425559724878398779050915414075439219453136297184505549493274088390622590623701171113330103655190315455561050865559103844810168207477800811891477209457159073003144630071365093146308056278931317980565430569552624775842728643260060901089081986691608512212964705264707583142130211706147006044548342395376504895301238217070649930202482031711022960329108981671494590562959523208252605937810759350946162223546537956931001590753611679758597346542412193744162080572463604555394681196128408032914710298670725903800780562809677449956616259783501509628159553664623783328634309492976136435380121241540313127522465056894257410222397552772622083221757827128523183924531231939206217044356333591219082431678047162675325681421477000757595189978472392507414812615361376469022294309627453981330432993615480335360129410803753630196657181399653408358200570804254032713919879872705238297419357604737886424837572799654310255339500393930485055387440703064958005876574203455714939328965513658270238711956525936807124687379266006049797442639247282819498989905698425778464687855884710001549010111956714254704798972306851524449595733186185301086087041363607731281473553740918935419397892627300515004143137546421012109948654709689783915858182056993362682000306298158511200257607184382752317933927542392195217997492923517152225953061486020473922919226920087190539033445630758049717216699358630411456945888152857341851867738306420806639334665029807786271481594221425264152416719784157438919599176798830710042261807951918592946333327656281823512556617879793904994262389384204665009183066166054191006486452828862378826661052008410180181118740480395055430527246822695500077311348666362768984191764640733530632916110673408522507354032175550421364275558638622943511870323379763620765131496545705141957711412130879651159789918121959469191703562212152960104118376654508724813657368939388224697007166900213914115765426369546351662397297514005359474413446766710172520266286080173746419843530241752251383733372025165923019990295252130320119755079612981015623570619452332951481776879125400367087847730610086807181615631712252351455782975708756436115748866549141944890433919419449998217289570427442075134213963040832226861344984349120673050557794222081710285463718253934394532052854673478706216533724741233845164456075992250245350156078035844868503754607963976199858002217466744303584393656948457369557537677647736720127780949602862940400766345761258053052058135507557785891449823744989758107119199865168803018487513519282175471780734028453341733492466522434228873349190871177978539245644079781712408777154572398175062898266444666485538290655476451651094872634897542945922355167389933830926468627798894243486651988786108484581389119248089567827574694368611389511776690935707129434543697971192596086452918579959189151823131917503993889441837298075978393900744116169244088694619475041666776343648979897017248090579580722207517745143381768467884385876554714723232745798131280956479803321426631402687533711271190541014068112603708081245809451249050114697829255828649044817830080036766871062295327291991682273936859250504824210202560701338944810457202246321580957633721440457699664842753068683103011082495320264681259237684663827003075514153914915611041342369122556147044050943147876662929193800936653901480424847220624473151995690384132971052418763491115459127541950844556313040814028916654317459663780930371102801773348400081513139691775341185681078418554723602208983939588799062621499717442411276433379451020733964909867891770597285305178442255289085736716687723984128668556635513952576835419773344731920919578813957976638631476481110728974923437401430968984747434701914277134270445961540143832522852032828072597008615784442679847473215272487971374902032510913261601492146301607740021384151339112604689060753334244891684992257845185634036930885481311962972895947345313588745505811531541304881175059379728461525807213598959942532743471048179681404318151404706272446472854692392930854860028551562397252379702587970910696436597993383224711417676323912380640280321770862883780329854383727584258920094742144070903189707532591970206097432467969925817274135541955781222951257549029737105440072252615387407158406751292364612230856753121511050577443673340393807891985484240147750568128760297708069909504112276872511629036993034616403418211356868927382510732419514409204244888480104480193367666717490477693665939759619600481434297132800186315815737460306884977109630034633493592188518338397541806688973113498736721370827680114497211554708802914413265229183196436644662222944079974884305890387095110696613533413033090786010480403541518537960486304383087517075309800184619906167043153441135874035024860532828083666735850597481839452434848348597276265546654089000479595322995342266089484986646141796843686627216290262162420519810832021743327711739412379770059013825661260232817238963999825424413478275634314857291944102719034400710204751796708405119127023160129159763565168050521022322720127502309578571570167732602669432220681236212822276928174017272112711051423265449459083778897295981008076177489560049396808397401392086055973505084085444806768119401371905992548287793959113463650172504601518201844825549172939052885077124044654336808051382804442770354047535567600776375668558097534840638972147439088521483734729737657373728943149285094017408877471227969882062816322181796332516383640240794456308976170346333130799599895385421542573988178107241610304205312291462129844565501367113130617553271882813417656740368234618235426925233101068182941957311602127118874160349821571100582521739514273223610141530590812049957418372322469077033442471013224259057469414206787127473894047045080865353486230509387393285147265871189321201582469791777247992436720632642384454880347263103248098106952829822323726773284340517581795228155838288348725461435979292305681931019570304217017492931328545607399226173657235888651905921452241097326953776759960020261431578623342517307851693142934587795860141287733789288158457376935098502426975432816216164288475125102325308867693367473435766002493832791528949283604463804051994179824967504492987934123580127469026648229768036907671031187035506391548039374550303378630864399158537512674745724794787290996732146134555975620037029522239825239312314140416473270819024288211211808749514440225559080605420417717693991840559698741473313786773790303360787683421197547627549549149882942131651657227676948826637865472918826726588970219286048207795369413035344487687811402424395141620397079009013865582437967477232491834591567713643494502381900926481845588199450940165677923059316982231252902502113528104927659425894059434319557999477300668398005451323015454099027335851318946439564111523337251202260185474648293777868715322944137572626847676205327887331027724727703720019166130498390569858601117622861892084445523334270672091043390911892215214221831388801443648509767528682052863386287314930106665938167539307162388377853528913804011010476025897702525111478080502926074213600537830786246742900219335442458186566368442088856299333634779387192718844833394244543551705377628960903610399533471521680641701171245902243878233105814331398205093406553860355693362629811076103813076258037026042042080133666495022547506137648188451706269359374698872247541134764114420462459615533343574287251312290573282115150536566469528235094456513096788426492491623249536535548332555307179226190918488230930869499918766106777897361072663088083597699928237553904032506099453998251254151225853393839012542215403582756685453794732188091032743513884732356918181980900280184151518032538997051872079972222362411525702024480037375964196916725992639974591754034600940732515593043266335362724245712030110771419574205891502455486485326401410502654082904896763757946414857146404357439931233186483765831597310229207486539233306029986191348294886279622491772458606353563147998529812406332429476002314856998820710013928457180940637574550612798927515022826027307648859863590622651954221652000998789357214143302828848062926885198330066907305997349941085785619889532369244569847611507480704451181447238351423186709699410408752686650753842919335947264540210201099551623742912920248294926190266044452954649921017720568577443370487456753972335157346812988840001124542174774342116263649061133987894355571384584110679949127960216149671036862038801037612171842843160801379518086312472849573541349330767246601150816448925459284066051562221317390676335912901863779979449419806830739088880240703507533725270973123768663977911866177699853400093871447225815952653316951441839089457753717567163198558759395935221189635597320024808535805675691571819155108959764331253953362084609364702252324646687461610089690189140915576838206124588081400102091196972942206483616415472360351526726885869142733286854354267905319325631256957499985961198962657220349781480205299630215853676044251091801005196057513010058979252164637690393731145221802827858763817456263288316688034409066646319758429941533971906848357045888246072864547886473144658985814104641404802724949888514065299975389333018623644201080396191996161512731094181773956316189110267645125231951727343568608921438291591174849295529644429245454892769907295390823511869155045748967026093378725675556616399896727655636289941152629249352616059172859814919226597832954668427288678659380532564139189504486427397894057146304273872756307186251974851648815645031864032980240280690195409632436435503892253788203386955902370307270131454211259418917577314241793163235682414580820890266310476912977573314192317403906586634437883456098012160642861595854356881248147255609395345933596161258243026997019051416754861401288494402862286925001395779530001390706085819479078402802439494247239495509876560885653088984890080271252237884094967302895394895272637241000946031260081897040130293236578281578689236399040846733973540049804495045165783229116731499197321494845980605447349133579091572133992285652389299579018609648149014097641585847590929034176579258282086973140356331414852094695517764623224245863252533886505933264904669356079126244130787058915246277205631833972835226279614025131368599581224368919144615700163049170311583582807947366967885427521915193038749763977212476043051617087216366704435270539219519388847018216377198164476300361455433637042635325890454578298962790517327496970115929702747267575932221806276950485565529401740752094668082776813179859897567742298062414585470690196718362645521610318461737849673463775549391315754392255993415515575768349597009107952722767769301212606664857699748658808776989474520387515704329654611583236866837497716302605380131351896448165073928490518774533418127116025251975097069220020493910434705962254394673410371183724784923313319611882703646394845082891864926991399552271574615426767213914948421336034605952750177778478733079709011810967986136986886231381783001950600318525059654256983894834209657662667195110983749588702366064816971698435907151074316566361319654322691289069749064805743869908764614126787938339075869690380108079419958845876449370221385187250783472385765889257371698546100418158247898457674349058595078578519082252688792606869760051323552658022831063287272122292754027651253204652537315944139189814811239089841038006804754505057160569841005162917877439316330364226499658477157132959552966030279675844467217236362186058894906774987520045922929221385125296811163201415576338525811355911604432625081370114217489429309578416648610051082663873976633430357347612049762159071498337603016508474794655015277750479963592003291032300966857028947071102155661482382049314531804947007276281594146964047745616645348714506041353620092505752697629478895905376836035832204284989007742163095556629186864798068043385873698154816027192022054617183445177418747476277452632119500686303778694337900306101348685046491061865486651325286151774829916822216473720619537767760653047626354359434811097550776423528294794922707517010104816457171398696755821690850004945129243604215261944350127003663675356349524195955501515168559060976046956673978250308550693222161362316683158673659534695219692574647843273702303504789960755799105491588066173244448638438146089800622913450245788896546301748880334391524259756795537295836518589918671082391744236468331665625296212246118624299183043933089638090719981962747210458165163680992769959109161628220017208013724040831226123202501744077886680227727871141432282039894453401047300289466437584453840886132331753567436228238702158153579995032052424304368291913758007041241842861833733278715984304737314800599193651630176955932971857942807000864675403104615393112092985482597827447282490817821267675367460472698327062656565776943741438954865728695773276408568603918840443099383745233677521017768716192744876330763229197809195145615142730041778293978036535269689628755261764656783132341637706144389619415155417194931438630370495662214269987021402406617598598677460857808046036866681627306798402338104594789130493207131255116691887921212324258089709043744460977880116469375491119031207582588256545936514582345762502704911450075598203271832758839765474079676738183188814827385051460207160938840877232675263457076244040848352717847659574642426041583958384431663371988231895881251901992230024596767810332320261572940969366597811343252717659602404037208343801159156862730137219519012348454094795274104532397328620928324550197949696411914511847094589829716788148666329996032817926554684298162500303857724023823857828430193949124973537317273831836778392797380277102852138715223768410877901096044720887463693871969415257640510485139905464848892807558883639387893457761659925755243434902040040056307109790900450700063774896175381971591758685440645804028676933364317155862890977490419266547461752754384416075974847001735613626597413792436762779113919277602888493575169309160860035447067971758165922148383939029010004703795066524803511597452315567472787695206897888091158396823670871595894337033232986581797848367529533905438717030003543208292855123363005777670639302584808517700846056870316266377513940491759408747442142956595821523903870485544544094960824528389037866877239433146487938726442149580020156413698963448839295250395876397144657643594983988268569019223227205333190956205974015498793280559622671321545609575983689830165465388870827583621979445313119306044436962898358519664908083559696612068447120799870924951387242848826805717956421007485425226338806160575092594370299896823975862051491749645385617472167431327473337536608844982455695637429186851560656205610210141835580786476497803111165030265139431628629113290488033651834235442836080412649234459570759665926693842454187634172018765200109589689230286384518001011729798865310032025043179527852255665205403177471239064232701077658313078458795025718961570463294243085616547338131820871652292711484111449149277155514278898463787300482997313249763607768335254475928818224527869196365528982781053240573330876650803613096659000679941662579584913919928503471851288219173317381006365121627385757560595378865927435638384848510836851821161692094379875370294633476751976174532882897173023302452818881629280883326487655897981397571698192994983433107174198993861879022635044556778038791477054790838910226558257519749268570028424137418002556959349447361809503584315095418506287585700370811614424685882086244956221565639567056943842811021399559831570188389233831471261866846719825315267642507972348798680526036943155443802946462584502208518816119845804622561770300541229941539164615951715815954533744594049007738873184626399475815037893805215174854627288195587726154954086491928165007202940833737695093009220306983823904822067395263044470861368093759182788558152541103668911334573133469355617088255328468215802039350794624123531118723135270202226871789362792270785781900093598041964399802175229804794846400994768882830946731822398607956236602312810711716147889268310937750918397924979608934934114192209972416723570750433438524729062552005007905930453965969638448615138190248661939026307471758796632346462615705794397437164268782073151124636324687430523380702371604521453052976991694521947823557590293613885694844197182559471032345694112882269040945773726649033724331766051050026450142725493421153053363252039330574516348852362514115853825390229344598850174104153835311723016254300052948586725217486216182077135227406800089220515101586177793452029152402946783206435401850512179822654361538930093256520039121211877154517638012209467408138370427414708656017152557683501709288351144785740927969021734277457375379103340708191944288139172626021589211034740330646251748095933635985448134693882431466582893000306671121599100770490687526503010285029362786248782131029336812178483090663642199192173114069357969974343302397627188846783230486243276682043436991589848632791143245285258049467518725546135123118053218731687734472914035821959513535880314851291716539155675075635637097238142000721903893075736492961381586667599828064775961807680804388100786259484506459137838515213588355461920345663387849624754067529285073192016357300958361222902964154563550549035404770023869823953562662386451735668692280052439353556142253000037800619641106062537039686917020981764159358696022628173469620799458795044127980003482333219320524323419544561734721136394560573894560880787361677139316628666137949895610236110020855696112821715444841454099368610263311184454797931307882561825674591078705078865122022083138426747468326204027638732082340620606881381962873200959660271593682405160019057889357352178564151196740674816249794391242365920510264516247913706962243712083997176149442183239279984785890214400525556936974922820995019632170412344804080716426560148112412683915610757974587522551711186103359057423350938029445562227440314289890723972231257763038350930927690834140654595951298106011752505474863885763909747422234677629748995275240561831063967963335922226146440689427035127331323074122813108265235047994430880996167389982417298702701602504463150519407805277313488576369734409588598563773875222164802923199308600046816638052429501488490001110047761499920460142342119163954314525259961140137836063711964058145757396376256872799943485812057472442827885127450483007864898947278155867026883901013881144625226388988679942173573706428558590191395156583477313939813606122002208365051864277296953188635468030359494526355109016287963525789427549691443984329025164078378430549603953149708812156284686415407284995389446375984489676269193128759286087466453355506337802113273483030785571578503276389069695462699686295555962816858534816018756737900489123122346374029998832239115473583063182509933447875726795220699007242824439493963090334772741488913940512457417813518052681468532059630465285664297997216314444137603445602281441401647543114517225774278933902578589101530349148502719820004422901212045842488675290728560577872656805389029611601598816079556919953183750157944927361455530996967391998905322559570734412673102255186989014077187638773524722309960896543552172327168010314720266635572834261714030593159877637132985879345391373094614502822021914105934466985738365574807757379704756789471901134288908250042282409077367424452577686873867580529618975669823454141621312123113504429902014721988186183513635853744268379430155537947146076866732003964764037354036791372710667648970271152234829624018082031523051553921146086655437548831576318689483884757039156837830815708157508356773794641281655307800835437310261759071164801122584709362809341006841812924036837473569699041587447912462717500661507509470385210682993339152234155149091722504940405558004087800711663329595942578311279960563588401733649877757261184566758487326462788100273815016773459062943121410543614906506905398619262347605022559742837669871235397720181205874118420789468581361710241359478192141584975330035111777937174802484527140448880686614590947898963188822882150788727429724837873088125382951511378140187898105352204601084388130028090679924141777031932794337545903746295786560181767100272006854141101444350887686835690116129763286383314542375996209593818855211633124705713147062236638551134941034345593831565689743888447952263204607815696899826657291205832000504770794009470996169899899720071306953418206329251897467379186130618995829650651232716256385718647039207422157568313536283354103809431443946767106558995413308514364410354426569177289256045653947733361555058980591756989987236311618430174010099318519362663765314722894198111267361759982537858557042624012953563658605215071068365075061317651546124231263444189323646596201123161902952111002323840036962291879776964036527644562140946150415995628901945453174170556247728200323348152836621759572584307129852439761869312744797957732034529811130681654722267499417802452054720873635492641854921687567474010725425499076009331331867206331741817046728079890947537481106852322587118678093949353111663790904045667676523872843334831328708443881674983061509788318023181072708763727015738285613053986969117843761233927897774322788307557708100757705610266413928274728742341015605491553330968549049466436282217899685252220917739300877353470369325690680970371300312078929628149181761918907509638785259148287020414775733909681383859815289048977836440810857808326957461076197682386422258241685382787998421554133870913134781263253321849109453556155770409034633591101621102895910371103488428663033629824910375147023972395111998936378557224549919370403829782220674346233860884872488452804466582034535956354370469518949580363632009814028539081056167471789859288365332147027218450528797111002078797150556422891885147585555550533402176355485143624152125661293515431687883880813755532239903919606877678096312365807029472858649157557395127691450174527907731737942183754299711978567851814817562888238263243695985098768580926451227697377463589895451392232739467914117925178223173477733430381341161353093414884116968604590148635843259640330510437804163664487488633749436294783843945204013476277549796233341648437532941687234252057891739302172753205023555296596202234518808168255589599123813657114630592060420185886355830885438968071109452208644235390748007951791786000396548838865606489711292646763826648457155085458110943677642851467148986393485331615447333608238924640991155593299522030465151624944160208451232817659801369194037135021292229583615799581525337785172905853342257106237080754201134410994035932344859125685741650760967657703366692972928363731906912284425836389157791560987376681472607835943992117958742983655786758031633926726708492743589033318241165999351294109789489284047101826214619932219250786642220122077138160054515091385032607426915354254481598850935648786064726449383085998574228362702993546524038646081533590982200415467514282748328946503126450842002194141603132846319094966271209469747641707350802595838005974063708982888462758345289280421802830969300963502327436265385276206069443482945533647538604347991790205732482363323954487159448072753565171821825446685014914130293723480023235229959214361472403890381788980317592920733575578045947271860670822128434584252104924585641579054378371937299564181912959969351515860862177836095705408844394760926243145481622061322387317513332236011140290147397341354236026115599755783770005824278138441741841605509733708869279148698677827316962356822722158445063290930142858206618305668975803216566447724123291742837092517974995461357803154499407225247524094648633093037889508678766810652966392932326127516068268460100175854224255614791042467413241795176845618484404709780017249108905238046591635947514449970863226168249870320142046319408605618309412289247993110514563114265392175860238878778172644532051753347510041587680335772248028790510237189577028510227777772430305835390939389411715070720163005529615497164618058705296062606575541169550123217405635828305761956124195876903079581705826225954647763607810069336205885140055812112205831154656629103036832596576241000041071947785512583846886664046400846116915580184812105664672961587070107415036301938345771231657309385966806046879471326225543240257995153558124802905895378683807046841044198210072816341171826952158959110554005557694527089838904843783481906981713390670033395421879113012590217531433548379942191942847283437062476864178993746217736432012150368548648613402212491713112921777848140796782355963947754173450952848481360679478873444203927001428759358677697973227212774231067044044614940056760389691848489492099596608093896172607290622077951434119540837808935500755515898653905378439385933424573708589863961749845230077130619404294838970487837237113385410707761290418212667279721988791516168782860765229728245660074167252651222871304582226011284689602280670984674383211642661421839270358339936514213094867898707592543304417017564354475003544493004588077122362795442519407954480488634280226374528021220638204692519796582734763391042575435501243811224374843002028950167668121245182736312869806161141497350470243087516791914908158105544978378651156486642801978305726128934156586835021905780205182738525134214521283188372301128057222964884359835539056783742957517799475286922652888691568923604169734879818818188789143063301299388757551705910179420586092660854123340430763845649865796612738898302504289662480873143078799848572952685922800642930522953763154041092350261731531413473860528619848277657674331439614316430656905621578581421469627539336369571475368878888628110969623484469879855501949219800757421719283081120474802302177050390246676538267817055167989699793041198344981794543981899912320572140375869114181160045783716106613875742750824050469243131805117373281169372229969640293363193755759927455492717295029412369996097513007603481470626829612189657228994738818799256202144563195323050020392173143708223445121152371764421261106103178805727518753611516665109796527822798662878659604675866277613034332320946559877157654744707227278551018529203874186291718241277586545398745291602944759192889854099970919972988227657649968074312626891220786192215674788637969180698921054390489933591742869426088764431621755654564244083945222187528556242701376311350837008703885473297556218885744748378645716080974688404545111775845922898110535949228964797178000193817405183257141706473238444251402050247529232276815796287157160337867128031637057952050462930391431072341171829803772526475064221357129894160988216196970725181951440812775602581727331000368302686485214204559657144118745650069390613786112562238440645531021648791626493506038456782173015281115816779162453233798297917439653979681010413933295823638380070143856596203625483059254327674266905593133793216881488567631475958717234962052240989729218772431898144872391566646302168922069484559773673066729708827682729992934297420862656546609928630714809675262376781644906308324708758531128991409717019140730042574610326681406249739103161103129199911226736030155899195014690530376117646538102930977187672479099037543377489845539602157779443223582276523963086441360767581815434507471402371167100214534576385625498210500169139392456110157301163845508634861544897355679592482694092024190964116751425680843671686731308135800233371728805965200855071943190068064334013623033051272495770276995389496829536876272765545888008395655562902607098048169384218318918926472513544022007532242121919431396078153453639855157413450979334591769432656917576946192063085647319682478181042564400747654091997253826076305788117620035876677296913873471617955352467139289987264813007121043551921794526112903551184477826265953887494635590190520076159069972916800812399281154917104150618912896917101181724111810652768021074588549032459739502423979942304056048339925977654848033106739032062531321726291707524818582608479517372879492814705977865899536680042795819884176971141559719275367818191069780389813166044392371813394282569279201585036303637872802435994254825997507344523883889238258214122577992212573991878439505670340702390521445322053129542494186750277290837350915657664302523897602803787675110553248750287828165906537648242244470549367768750991286269370608430263340891131042083352306476842773665353917182003213652639971520123366986540860588828679171515082273924684683184046381579508157860770641095061779098451446664124200214677162061200842831749855546238698171941057303377220417312745662257255117206900312284421339973561231969472206908647883060931442871021135644406369797242581442264249254080741508859643513608155439910521851387468994317662920849620509072250451436862823602588050778856415187529133614578452764637124801084267063126706252411194002663419999474313596848777506909322756842709797613141545580529911073020510532908780086269897601085103720198195610332701443672323057371797416424309263037647464604124056652339588294556739630600334501301557931997735823933296462680147427170918081237453281119995034370326396851024967007896808546286569084379243557590073493852710098686180201744317772615627517647468804290396160716808666604787570040210194632148763226393542943556085105959248159189896449518995893966501741485804039150422611025353266453655517545633349635457875498065536045661799337126610145545335143583543154734666985992358554155978169863450359917728559940332170694102348287175572589033056721209574890002839273675578397609256125362904337020841805365034341119737907695204879043282726795892535382374883137876056721551403903332827105558778186796086542611479691090498222446724935346791460377804111778524027373602485243223425223197932638952782539719458769884403406086220736867289374344485662447492346300311871400228168750470126290619987433669435105353894049009918237293379345017741636819476430045461139823757033005587576410646289097486240520285544352797752811962591119257854262607433032491393123035278085596444560147448345124987416659395574988839045632899772268562202282593367418618454464886958054212450214862933324677144017754770772027749722380501549734531438942324057610090823350268056706552135428626034200641521715179036566487927141178813217485507982468589634898074875672375665177349584939061923758145864264689136653986252888625583781494919898688728055867098927491991266240424456464848808267648190553932481410863941381176603161294451775125349174267440965233613011256951158121132900563699583218503636251425678498372815021611745629440299682657289956542392025352015772851970721143548567005472546577878198468659330533837528158304206895295270446394287220242223800669882032520063999505116415441991897306150793530724838610755952949013151692649187964838274164356233559859531740358490867274733208676075814628282598143801850597821013262626347409792954559888382421758601199937600490370455571495513144947349000738362807961250818346684394638616603442207190488593308146003486731428990455480103214504688627081447193589810496017904756049711149324717635265177057445991487831034276696046398919871780828748991245188451687273262298689420354243731295531175916993294700490285541630793916095696447916924837191872013956051817233688655933833435016123811084278821480578284542064728071586720188477199634193810150977246489173637372675241787746171758249681291939599617323315619388129353943805048998262263943018297986471424051140752248563765277372330220295547052953355174888071364201742811400752181811054523003729394529673814584737747140231893984579019124035708307573683551552159490688665559934264620250893486920821052644030522632833707204994039586394953948005111921093058078969300927557468495401341517124635284708091415623210444136641228056059346200002895114614544968462081818018458320749109975278058615411990711327525016634987185939721202902176458585147491884085865623249322930715237469377496941895569789827295775604107790694348606803385159885169338504690809768306801016508574722008981630559068259634505906008450927411045786420169749625946409012117484904430201303497733645139446962907595989857523007487145796462922964099361596147809489317469327805443013438611140077893674393389075612089156144602314119041342413301823343364246270896197762302439177376008663429957788536011048988194313778806048019776682458310991716053452139405988155066852799038871562561196648205812145841547615941573139516686596586457682587475865785411732783357723143769635552320260886367051643087691530319798242115849425613122137914941580229976173508613073743236832551711793452257711571202415830759781436974540935959985853530514816255910520114937266333936294377691850222337197003214727847842097941922288494236824915514706662370335870076114863590090965773599063750616764443796989870645894769749458308634904053383944030917965965766751156263121731961929037248425650924391466684991022059210940005557483879567965327624824890438723728841436026167280689113468568467096768315033085138048769131921971582165111365209484133638354635298175167741247464047403538446811856242270035141404771894360524540744268009952054588519158805405323337738887358312641715800537149785955232751590557515804036036714784938746937179756400966839113163192749113951968426542682850655780941367387435691627592815922044428032775375581289471200952594170405806229875628653487527668148861605769635053196418851763778729449583339776708711083908315826160669663151384482178471297479108897807922985489584798703969430900707021073412675313389513460761119006884467714312685959044207742010641238952953934292537970281982502752186177036507599369931227340840906767598541242928125679053498573484149916030416499863550851414125377145839258644843544730369018365095645016689813412046034822941770704595479688844133667115752123284813021951762404495129078165854683655251101073782786194617752542366836498615540396101266911882016156330701599838913437372060630263413873045580195520541909929239614150143350210078033104328892692264521788512988877148779557174141479057192798443991803517031657989395445912236067232378365330379575031324712063104203359372858566863512118614215592822882358664915689406898335945951471575216511828411958386829162090909974332228838543404385915625239824743095308476607514370540362452046381995130871804397195269398818920933873340056469992457094717224764364043660734529417861424626102003442554508420804263455748506417821437989976691331762258539492377179229308217897398504120142265408124520142783806858030691731335617152710794663468370699229752490097843262518785780598450791908064168944343219609772524992605795219492771051087354307351358051087229991591831076990189156913299195583692813209512249109296305086384294472740338872052324706606292602951185140603440898809988532898560938038384592701631986910077614171457826689773842827724103777302399591199305666739456958731046586411351199824575406045014737854833338475605083309244296717534658378822550872644829054754062339572922628687116062517943428322193358509476305786795196548518972168364364345227241598342860179666927753938517160487844772891761466776474044587993339269521479722845915526703961384475955234610552523259298405053114426690917720839016786649927684743104732965116939225714070635191218302830115651539074044767908214248533259963775452901584584237388667059005206744062154423177324583416432324083993288657460319963127595522542209867964862816930908987148850123010626311046108333867735849904941796828683688196628441505357965920304824125475506526365292918920238937287074878256580689877611958457404650884780141979387130193398615777529984138442418540656633382152578980784233264321924422357846596751728881346153246830269515291543346528537156045247967031918548732354589066612074818251621502332431299923829561382268213513980040595506276492728649929144338727053508276771044968548685376345725261646292078200688568816092243892505266300170689201899183544017825191866884113380574515086977815889829750389659934085083141263586609621166701935867883645675191562205900087539989002568676246920245933679490098511442506803796190127854429670761392555737241235808976842020569947654922173598018906556436085387885814416936747418871509633087689015891749880312894664238873144667138125238444897702404057635829665741348286536177400335769153574908540556432594640053729028420347007729850032336815440398662729912110191238697086885086110402695462071924116277720001450734486290591809931162176330845850419674926042595780162644329741258973439277201382141352211110610406972253259844689023734947038731447808045481529348852577372391894206080042028524601349292143719029303296343476959211445121381746028087169039537551967587154227387164851093409958874081723253955552886633033203166010870286264758507400620843302004469943841374818974861724170916112079126376443608508964941113075948745160781546192520449114137216508603641724022656230887791480554712207208382487433071457977799647090363081568761241393547993316810094118388742134886042356029063906949128562291488338127936640566714999670925092234300855350044874393400441755406030863214630145887124883807989993342990095863319536292108978808875616929992895444304617495950578165903989267666400353634981335041682371924640012936790850881679715408580065476437495405839349712698751318303750188288562687661257826303629864229375673287056326287841361925660745349560587829166784129661138117450555280649478979388018340044698884247194942267404908318672564572541063321041063661870339935255994418073862009888093498861352703841672110661328040768418430038343377444892059821060497199928763749265001837117580074311101227904952445031611156021972079568475062609028173976267974875595781137520001735699036980139197738296507347682846204320691651764637242002373706770406625998146617527447196471517214976164743693143150832310354512464014199399378519079464998517593845147387603035646380651683526920410631536765069548568283312184240769712203899835502684269059076074771043075408075733974359405915180864388818728081714067617315851666597814459691951596060756287163054986033441460902373437888235851065538624409990851414764440488545560810642436994231229104068262116495526550006893855962337830779614954536612771400596698575948126134271859554800502233632731499560169585605201824897341868691307567835418560514454272585244857389838024124134976725759596594992242073550580540905617924079629137573684097828793183562037152607451949732052403162463758294507166812429294317299771554503670419419624107179289678047145142611505895458851980734764897999787232807944519098035793332413651156207859628632141651549680167628491818677226859406061522134730971053351312250363135683578425528845567942355523461543357479657540771118403508728899131537552706029947834492152451746508395920931279426237782051282986853512173219168413146717740573697273669591902718307268294963768602441345071893084588866260731365625610727941652760839046099010901616762278299142051050598802987253978223971650486653266083772867284486345887045097482098053442142952422346151731366995099778589204267622152613798707908141291910416639354890664229519605281619537009080628591930224575212677860725374239736309162696320922198063061082187083155232717952193968989543815248073545199071363738728690519543578630606276390468402463365318664680089669103259853613694936744675581305046525804768347133399838206287298458044477341421969395709560256615294102336119628458201306154997216660916668891937764329257301843074806007936197504736672836827369733884049314641005493482303242128985168447408665298618102778217829978126789485996265489684620035308176726840957453128287897759295610029627575294762238501274485799086926815573642359730837274334300277684224264271792760944705972196728852180718917724439609090680783210130324855688356748232536090997202895810131750251393238479179504452365797262708478673528266661346067439490161031619511564661373628220409010078310846005178004939019088861317946419968561445485459547068663531417709325917363899090094129793145528640052387747916336771485043662530326388752796436409965199405204431682537689406755593613190448915013054439194326876249867919086130998850166128848500808000477930709685696021234002922138979307888028937048836030903908632093270865524112495698217126467841649968142195712498408186515639618624008041995010183171027704620837448972695294899651549566828582608792650668096544611904618067053672242988486254239904085386143126216160489095561924354210368269953948462658073439274740427021494128092032361082795305564843691332647273943628576630506744704931491013013440477456513470989602582540532787244011012801941202312490860076860299280613743995011034018946040649001919100594758417866603372649581907275286422958242134616250620732050641869942280066566005164656193849793969579554757210464466551743840699766089244583130225102534548530637844380443123464227917946336051949948344588150641853936495693449839713372730980759598072640026555511372100948487526148415878686100495568325712776360986969125295235881647586715464157768896653715011556050930093892211161586756761757037960412882661633087973132950917202831048943952644035599670073776979645058999717688358741633262114804170806740122475831317166087138425496679105316799295943714146178951295815709302960364963970665669964846896242199927645826371757913983094464687237021760086664044493590701150228355492452489606490072767348186606694280606562035873416214580496401318709659061969608658708159087778298197868341308376914292009131003037724802894156152126667214584612370446095112987076019368547990304006146260538025265847855377585116263943919595918788766288844519789625811625584574935822533005187856761606546339894665428778273943370260569870796199231117516875846599678621114135150641425453908268856429360491779260516453533453112588130526468682668634945670220220326494475068181498404186279865373787005241103973191432835924116675815707477115376958294805751593186737509680838428330328762350846947279141930652601970890799057980854786658332620431700986749032721612417800859978748799186307988743593071389735051781046303434725974502885304823615094451965066922738050473994407111880720997203495673696497902339997190247429196904511401610936310830948279321774486015868319631607665712216857990263925996056654929474426118439309477214808719132844724387523570079110555258917068631275421650931839037159255831121632716331228794586792816756172068447026949437449086124878161681334589726909262007002117968716305283306426436682527618005129013269825385534475979318082448898689930257459220866018668107488293903029534946988020509594074849132458221425679319508758654084204420724169508402329373938254495075128057170980484062942036989728836755347630175048692672105198656272575820567113804267818461446233754450576395626402102290520204476908786508664839236537140639615036724497430339899999909313054671497689629878173209968725757575187300745198532346084070214177931802548662200834792970936036767016398658050181712656664196882077102219537897670144207961141986065098794748592004324698035244109046192740623926220519223501791710461813962169913999090438321129914223330446004837600642056146251719200929511327905066443806680258864100582890425011358351213625792540435761997737980761096390183681361288017539838331440087815251595075396789530402672105111079595277677665009693662101468984136658550839142539087504761230939076429884051230737211579738904113887247858410490226417202715159804098374116301460272892023383440329438915162814917673941558736381615865463396290866977652375426294544450359137568264202274043040143575975343322643885355998354403868444684418799829880529701924627372268980392695891469096446207540301307796833586073779695414705917902319192606305954501915898693671374962708369402047845193623285479548554912367747094769778752528474008318786594150135235794383505418091127227671553872045653767797694422386491573376274590402683711702774566384257452375076801264053282959395794299258873474305723952427350886043860637117201936819241017040800799116912610592119651692116335742399278023663731106462512790287702554700434268972139083169023069691726412842650209379979378378542745155148926277417794717659577122946949816351664563019990880900320654991861622973112305967331220967024864958656673105938568398913537285977815580427822938388256116770164791919169604006205382019777355114850334637326698254764231391646698802015509320288111464582136134908304377481958008125022849080734536407507540113685922446890658356984336788690457717862674422952908511132814953808225190003843319620693139093215325743497120059963077206349855347886532130874018276786271469459394540186937396171480694908733173909387406964914872216946350294840629118417545140372176299334874470715690614176621032006525496553026411464813289983688654974169429577329425585955581505022161677168116795375184915268521902367169565251139805913165256440261521860914470763023303748334111927973165251633471072916464370063431897871541771705969420019708012324784589883633706274454016341094136227636222761029756038166552635481290604741876992558416231263864845783315031650702924242370226108428019860494698143492193409456877506812676459101964757216056584943098927091337282433964943830663798285870069805952577495414262432993735662944513971145987521822992812431793027887875773470877018541626759364065092409798847862555102968324181261943864554996772301174754441857378885006908404286122124674992026428998445581568524004860870434784993269141670843984354624215045248803241390561045629562918127239746785347988197542611396523533113592794722589961028390328968699423116365297902731503454514596929730458511899272049427804746011140738739336664276437951043561856096188099081470331007233587780172167056826688255974054492654626325558559680062301032410626035651533731766567462461457620327081073297519037475192185577691240775483601972361974955273465559863418176159771390811104766013186739409577148443010845843516942833364405131447530844946571315531990107434909023982684777557424503955864400202360357146676063937173565814291466095967450498681632867438027676134533528620723183167541339967858828033291973293744488683446932394324279068790452286554712199606295983176758537409101889683192454676359818070977028305548846138343254476581865867138392833306306392278984161241513074110923578444978855418062193012325053248570672015836129045938159053131459276822655660387342784446041511844544079362244684531365807242657599883786067638454407304160368563291637144964139272216405046752794143783412604890690039492624315592264068770267725277226495784326060561522558040779223660431816572282646805773276026964756261085030707395642698714498036324681186342971405530568925038701617256889964012335899553174971619827595527000818401144267183787013601522475775810461793900357085326328457792164167500354257276193863512399079956526023854122253135797748075902626574938709664296882082842861927602613112726620477560935894682123027812327615429841393013086811547132867437973488493381895399791498561628230805349897715457874858241945746735236520251262203370416763865436994314517229981449087722963460457101156402038891235725125666554743374296286610933503978053031383824470084451526656193757898761896213155798521151317389185603709051410399323008782183065300015957283342295437286179639296610285767545198734298094481042710009169524879123889866728355901377656949246817554062002767414396065008044725082041772907813730053640269948052853380875057085515117971733095493269377114144118257998775322736967788457333527839064024971899231202763041048145109684756423210129557410232807940381425102387808855395109404903660239001137985343195208470380965968755273066557746700625849871289104516593826611707784210288142484352773702314727087747863062940360883420578643696298608307931705547324122824427881179143516686994614285379765863244646704322006714844804202179085555138718686491644018639238625786382553859043708718782439623022034290042102445685562485942424834833347087393126042940484972964384273664237885909600357210602214877332923610323612040308286363964630434950652092456220949750131242587603423715947856338070211979118266813563399269021061292328262702189223160674096760815385707611928145493921161349270202735716924541759251717730141130799022091344991920822155495484394278531497479616678736516649021537329116409403259344194719461352395641084112597850816670716055909143040765258725566988279114136789520461419192511103874549509933043877457683211735148024206875172396552749030084036096155948732466589606516348051308166784605513391914520074283417112903748717717513417943895943967711779172316604801585162211160453088747448215222885258538887366061249560028327673469819321747755960022314403584135650647697186110508986317553478819329928038290111131762550421282399607454326378693458661238851070267284541698354018274198646824053871072888481036054010815108669836682576438143639632006523360854225457311905689725986779606698020207840502078109184566270143635650059589840458147548624052550079306207142372902187158799496820139895931244043345741607041979893872226640126070577355843120181862076748066423447501068212588621617824851756319312941015581271319465973706989094729921452274058482920984768608411786774253302596144312067673118287881170467752562981825351377214601331606485983534553662935395741327574732811599434152465111932539191657425478847914916921352772445408232224970661756944296832758008072716114458693971857595575651590527515943848310410027911993354509480954385810869843131376018985137305948348263019935252609282562112982487347806297327541372802509504455606626603920341393263712462441088782858254141671358861373828148163788418681085290383634542277266025143750835263658117229581198204305876031720491132791048761180372710285514790167661866923342728195894804914110779687858789550195613655385010911087624349760096689478875653143384720548974199956721574828033889920621194291285750542597435995107936754054785791289045544485065528603452223198560101685446763437590294610619027008544845528394431306503673787185546069663178668093048150489820195636254580320042636288895892476936681279181289496112913500154621194551063292087614136585778301287588497552247790345915986293259039439411879945949720546452499472043890482538907020087372546076831957187786807816697267785761653117693400603614323058582386826852325896226000974760570203719978907772172096268106767903896234489327473563558066810624873211652489820777413938286620711523871389988102394238267240855910391462407257521098180934718454305137689753987931564575026655289151549574730205312837949697900406586248617581798545244786365250722631522151186190150001886336640201321990721635608685961829360913511933615437481331915682380240872205499866207528999285400035478024472003994281927695025319747733236234104346938374086913688444304636237993661341487668921610302680408768199250418367672895263373752959604072982296505428771545020603445114679003204334072271863411541822083320895271705951836406768373380456640747528317920698597853355999558525105212633189531219759497965081867078215767626854555644809100211636107150337292928091055137936026687567135945405761937343562023771907233679627414663737879574698826824431062633849061066928942055329130419918493115233935248271396351977395473015465824767679331343079247381053983189517327260213990010027342974564774396000553277240561211881750419031635395584843408165775876216000846257523717699719447784154864222259082797781651514175976806083686500736524863824335470062376684993500585024617421490421351747634996172440011765220290462720858016616817188172116784315990500245753727501569039161189628482654446672662359459938130423658554862543824562367472569115574714681337397215488147924196174128770240378609659181484482592865176113060734105543674666819272313675094902123013352572042213256327840130249288587032946871375219090209302858904478069554944923705073562779546317096604834713496286691280065002665152602252298607555526714551496492154228745702037078331003866933531830887089351197319966568108987422675215529071656282151105240617227655405128538001027502261186276038153442091278265501157982174343028611347506194013485127080446029929529822871696811914306740784874521893943757695535989963201598913529036029021822266286991078349521106771350296006800250578893674120093012197877226250168914791869433891457607384468896938399328347910552289325282807845030207968119128342790719325646185397896033888197201906185328112388315649108586379193623100159479283271519831222709375769936039219754689236786189017088763999929795375477795813466740678672410914425944721997141985878115684827981911474086607085334296501653353550247570911153017158129432593538603896498511248692185786974330402206718158929252372426982998968560456403875145896757041491631310426857952078901236226013547716798708767386032213766979060559363520157306599530570001921539517916970247902211453792788702225303531516618149814147638809495664304555631267542005783523027479385155762453366695473478502748954193585686087176443903828553406596443519891776285547301238087893409697576851251174022804863434133037384119235972854538038919209317716860244860992797775178975659555672707269389797243109238383391032513575382454246811204787386532418773567378477733692309118905632106745540578251251871777961710011988027169826848239134374532968593679012572347522702626917649762024537771196570230599984974941202268623020592995567463583048888910373213081307918687889914608914507506599959487111466737033453178962379982490956868584630949088140738720291532006176381721058529451369754822056922022258288080137571291615353138430452462438535250935337419819268251457761640325195166796298401656693079684607277492904603965488378500912133350347543056057199626824721372599915768641495670932681125769781128192023635606474645308060262199049806604332841171184493221228576478985216238690579405615780901454960278721043221884514545778139252697199182912366440359881896388549721799118470017036853586347220296420488081778800165938024701645380108627674352899336672871320342618842895152547331082598319342036459341672104904031923336381949664914489441093155649851015599694383582110096210579805155149407121668687526502228774331350249747277991404359242900264946914561381403215821843454663867768403314810028236420150791912657236614674064164954920618332727731972976999854420741826537493567507374967167732475766674231511814665068062654830493612444911430242174513673550033548046399856429042896459937092923011965164631063835185024263168048590158093954589459843271319310390465237432786068329458581334746882987871465522438467730468839949760136178462461660390238445517246379440716359252561960070120099124956180794331427951758249278982242889980050065212722524075378712803843629430971118185579901537793808165926059992401129215219910988258718955745777495886409671896615747502861078365719140318364980278517832251970584663014733244904769243642088796232168454437012824370318614487550869993499467682018595612835759501148684123803642443583233335804109033768114454388643861857542109486717721714114247678950912336842867437867619404241018803521824698092445251792827506255197589079776442234905712739566154160206945862181360072808964926859568586933260009417504954240915657930149382362196402210265927695555463910821061065865289726739146297274839767129494445153384836105558015568672157062865853881317756471330770181244253385412042812603065495882759139279014355337039443466638780979738911788172806721772069410065582528719690741026087003795852681408930714347347600249628292822780271183329664584540812694753451137266158993894783960563233107099370751065049386554574652325990633303412893729085159546505572123201578306546793287657041192751502896154752825998821038723741622041388730872692660336568154527533335229592264542657946874474736244726625011773284178094449754398687707814544657241075320776953919403014805746273383081736066030517948237650880588933002417292707483999876777573463759761129407260365027836851679927253881858289441195271131225059723417232496525505362558200712023362193579148726006148728305385103335653543525037365842011152128598243342419071706348249707249120659906508663263977752288179830572640503048800565196564072561857981641693374786458838115302809656286139871991870620453595005371536970803877355870496698315559890749463826672811613393555693828980414038680579194191792629286659318792690017007649073520199602301747192236012180466677471423041568212195287327690385619355562903626543039957344140410354359294111883011090382689667934088596645815663336930957021827732086326641418123174713524094464755609658992860396141262218694560139895390156039938284648017806258763980261477526618520367041203168756534189977614056911631526302731387750592797485087724940322738226640116557675912979677999652737581171817336193300913697134471210173870930903294507471473398984882929657072030508140037858973689507607799743711114647251356294683088176459980660051605757066825299895359923434445379795971535252320406781516972325764912267962462390502918753159950236155011157093067706507715687975718492740280357040266906023508084446590359153977186327469837656306444649792603099019258017748656649213469485139467359266005205909720728674322968250641303019789330597961993340746308760337880340605085331677836274374858802578903825286093404583826354092422372554103568050024023731456257771136367519673878704600029281230826669528363101391732944597726196677985936479326883950037318803488343328686231522890867829675400022554553977996704831404536618267408955889937508366363238688186648030116319040890327585401510810464801466327665158597247345066739242016132343093512219735539111103240404358319521252505033896061428747281708836968752256930266608035176695981638197691485916252275977572236749395101583975332479142004226804828497100678592600583277542116065534065772315241620677036198366337786509415271034166766194241861813839907949591911287821492914587510957247459559765393335070000429930083691811317045352740498872007947902526366516871812353619578987638586118044735767125210007764117559971063840077336503701276051120954835126994893410417725732194206876855107983972589024304250086792109554563659764782664769365345164367654496785333660586222721460307801294129808044773964836705851782262353790989871865036989958890026143306019538225943521187155911878398273970707720240408366551837891107030920247907478033846739222384066889566413207286699993943661328747523855397255171695296514790164103097772982374122151882704083485434770911343148923880175066855210267320456323438419037485783861359529198108093009921491368406411275756487756739115453522893874001639212468558288430161090676045486175398328323142030150622234302639759565572350005329177562597209189821055085756338799247033714546142641176855849716891553862626662271287257618393363646497034701496534962204941031865534231488522180080810647289531819761200903920215995498242287714908645721289591858812933423030798672271336024011911075565253917154992632269395121944642218138366966487895140500383484535010970248168358012452477656622675988050515862839050920991739478094050223757717531429302911984995645688212500884246196686555094053840648379507219152875358786737720656581920370093054381525625394632084348523884464516183365209630049476115974012599122404248360170091557235376671823021481430345585249153697937080142516809462535564162703994949312219295469984154160205952767108675814778207065900594280675500428927934795085446226817166117779676831299347459499943618061686928173305608667508836725400586213687539577779729452513412933456001461891422464658516217437131820982045116062599469950048680399012507124714464528832462905739715766416003932714877721449446607066954246814901024978871524640228766433328978156258277060170874619248351108129865571459414425347622458111921888544025893934336906755630701723188525202872565588779025042749860503951231479069062031546709373786022793106390222146520222766693105153714295128640847079610755738863504982686287695249431894685436162866531205479670836336368342786299911881443535306059785479364955418386508451490361992433819420416039650599619607720886497779248978907680110031388641951241328136895213412402229763390587127206556365237809910951429393745525322694814927882049129507399360419390801944544283524675234690407329261559213449067763280488619461924562369529494116392028162152217644516715503529552291349415699161986674049041961534035866680707354420148600563030871509761695672030171720486245812541027091093458263138182294659634088274131155757739840084492714264048584236517763694404254487728601901665301499593632102911458745646710501486165543474931484870992488575489871921837230712976919808043998384090472798393770259548627617627677466326510060096359734507914107075634913038992145652174561391387790851727597061318553752844790075301665739016767724487083682157036350372604888531740993749455625343546918378443132756349544442068764914959759720922079870150749212845928894843507612333084470549724270989108593146199698707048904353762158696138065186630847000611443084097266610910443680107415852112845260913701361540258458737788028387776733759635607428266900717262723022430582861404199517830334126920270248623166082844032075308841574647834271794282135997655527641623911729573531141788154935569444719995355865141982296153152075142071849076835423449713038626564516227662366358796513082380320522640460306558490877091121212065330686022815505729001136207487076483368344376909733210296649663272305905534103634276978924187590067435051061276740829640176441995925853822731966841994215311678254208196771032307951025432071684859245699075858211373387309006319969542482626752634933086793252250404029385910512444714057842112443521675842325259141603246731824967256543447710022119113780576660115887737577331657094830707719357192958242602584604699180130205012111406939791458335022167817366926096819128518897706741551233564666326647098621122774004978044879416502244201270525017919646660948675945343575541494629228957347229380129966894677622728624049169965798482203384513570601873552603371633218285038375070438587934848996816442151886658745152876432700460888542373498949865772669261824393100928372186455327459171303331886530638630877633905439822322784923334444348332803705091018436149432843522045491027803137797894963052692899596049398574923508933599405543001906962050488989824927437195211283708732533289896559664965456894164726724502458851729560593183397287616755844262644522778552056237619200992637853808880122457170555212529401567527491071527509195693195715064462591227486079343132740889333392836567217444061599695679958735575785207198684092672974664754714166085359951222119858905395689608281143259123679053992603060794325167426357490765188683287255376624726739420462263770298951816279976522764395936398825412972194969195746623677218364181002439582538338862561978472618859856559209273147259918716118539771981776585416989772989670295089414133500666430263138329221320452335022086431068526427121824785279882420557545763402913388035068387644258605639488007417333117790057759642004585029448274082357674157900894340493203228579683542302235714280769643691058364476708575375290205861793119132151631020592872482658950421221718692034094620026988464083054464230626682986502611610935231863158556394349190087808185752141014764954272736509419042480052399185350562283758231225430783453482807782339109426222895379725133463565064558553701429194417964921797873330480657111973629395015419744102557424682552946998966684452296821665674836329958291977191940170428847990417834996223794790814261229380753931589458301123155288970667674026871097184820641092912875851961410133684155863876116596103692048222589676783948558837435700336888843792308566102348022130668437183306937098490104839840396126837708399434270825851114612942983018177648552006439099164995007302862189013070127910387638736781231897070042708311523558621084926031525195135096396541258374164307838366290626428432631624070580624038526501450876509348137706434113212425515854691632673283658659816505361634772496376993703954848332305556364251353596883133937505580814127158654191779688445543338115968431280320423968654666074988741849885120984563210549412142890029125176129251376545603479626622511698944544420129712095713335078111775104473375306375063347374456403301727754240055280361166611213096181045496827567331396759638142339356128113721394180208344672780067646854218615676666319690743840754916524094809064807394011471417126954651158673392880178785358750530093856420958352840199118653944148557691821071056992383210332003826702042862877176154618067195820592969630170300182593155625086637176140942448621123865142207193895971894296788158644339996368941946175822689881663103432176661762077740841803232950013451545840585478552177025651190587578215450274257413671778069470508583984601072314937751537923179222867970394304835193572115120614466354643565611528004228485817029028735792335575476986708691588191519543945226564057208777868785290087772077301842177510746853595508663609702364165481545255953442593017524383890435787093502096278677332198195167737532613662026981959552648669972026920843669871925659396124268330566125943296098694973309193442522563915756798252813845932463030643564364858958397111650796012493758510162652728739436819460013383702349178491394269345019320013908550631774001538106220700062293455150339513165994276799379721415029769332425331657431291349747237470369167012633376169499433761893671312000369066347056528694283973785695115920622554685924989419121067979199547379191557658356045949394520502402157528102124094188576621783387345328817922114489354989938301554383266970011509312962287862074394001257358652699880651930915398260923743667073875764947246953235951710267200502334388275784988182661325022195643616756256811242120710469158492061417883453207721867512836674435118134595158378472987305577143467666536988697003635522950009968325116519468246725623244052182657060101726558380984110834588443767669861219407701580933692252133255894057060301387744833247749008198425398258040868123857239129427191887696421063395903003920278452139677755565499417384314713496587365081273256566984558061193539938216007572402860083580476071683535844360176475245070083976236801564299187193612197632754154882710615562670686411778563572760332679986095021766514712047750496054222200195889388113664198591094583679557993574430003475895418687685803290839549412782322465383654077582611811595389499174763804171118139527903790549629783934343105174598066274836468917548676944553203956141929280168007918575296914710923370776481522405724954583323292508035443034339353658270048971549413755806353027007462403149994600063461329294741377915386247573961729991117751795420768157072486190116242557453253115064739964640448835264155395614600177611992658325970199794011975961570603892075639912043601798312869929266691081597123688218800122568352529180562964069844304837121321104435173148553866630268811008851155066899614006578874087962427813554172860727748330104412303343112201899356795778152136957629122474833118946975207092543563155812278000699375364255923951623417213191631273438353250847355372518827971599607079669106775174420928755225383672382147077232291477441853881554630808381383050206958702068333525822450180710760957113606644425924814885309895700858917139044453869918404168679571092624703240153121833272469855527837642408910701275445046172642906090681020377095825958994307337968360223745461292239582335494608387724435370406320312799453005213327324389066726065455759144727916685477733993368119040322373997226984150471578169568327150687480236935264748749247231886841025675392800480853126951717374065923655834025557252010398704677597459771864331331832478049648078814488423025740647271248302195227589133477860139909094629355473338010503217147884154329732353334235189242669368014491337828552280279849849718668241825304066744926948894764838851564924766021329965146388537419494625271466903608892121445348247976901647763607873606088190504476648100538168504627710625685224582836354982568159307253235419243158375173241957554191825497755585436720284098879839474123599686936468308802002188949902617349951131035120139385732552551773224432489717817396853883481684235763664297132924048733949257350005901725203709270780926203443705175756623166236481773439223901639783559828281226115171587748038119980836085340437234023410688270428027043688762141634956793299035795619788569106093138880701540818873362786628544694598569843978346687119291586938133090743731662557830896664296807739562982833407871999226146806534028037462282232328624563983183871374136752165923520544387648568441293512242445227464292950979465545185422819798573338477693606027298206752517522588894021713799062008028528952830931481415084830912848180878681358612751494528554991352109742670528852469453169480338159388517877650612902009285409165824969184638169721038709809158439862453509452786737462718948343766701570976015140016869982402418835887090464629611060444099677468773903308697853818855025861562984054485154392955907294206107908170920510473570921747005349282933562720708957535170710794474655707126958035979362929028891821154757227356307039808265398307511657164591645621717902653083932475065554518094707744712947462924949509544146185427689000572738904878083116592463581091491912885552960459498690391179657677107334295882323894777372473215767075501772069273376404884163898659246326440275309211477058408402127928955480884349245756315555133180978872231925362500459495826804489501409985394861130113021446071133069626267331922061596927371879145107381842797519494872567658752412410177297331081093277625785289619080406298487359961498774679846566565160089707357887137046326135922033756162505020808706319632523887595009021698026813496268105805351453400854199179159809363195167727735071464027844357013153422997747913164146326486007786776927073371597540431649547495692044479849287201434750476179647925307075455055835424675444143980840026645321923405060441815946111291637177678826009863078686438322236021388780055184854397258950743101018899361055015842532532243455624556885157066415224627722592915217536771271769185468102350499038165231831178271306729944630677642949954490885400000285826010694341570007595863343065850224695025274432096961551077383833626905481366685072012119714910088905853959451661679768748192496378832280949464797147914716989002165853947469810480253990229598207960012416176200220259653944043934939031707240936804323789973294104331749159557691380927499517954994932469136876479743008715967082186634022309954433829096068967750497633290039337867331135036330439193294888287961090846730029964744500673484049018046213919461639232696435324729503623744925771228731155251446926676019342025167272022996289074843782099942793485889302692644973440010670300591811335515962454715315204696580776096132420887023057976650808826943419922647217239135087694871686707170105560095545503787611572361770480921456973649106108918637622409424244775807264421798517592154433032845251563452310369237087988550002423502497770723775565289020137539031895617861179182407061694593592569408098789599316131004354238489564717449379780222438654898843440198971063864269511600486129296257083135920804489262696940448629718978969941559749182841806903142685265463616954908115778062247761449800515224312358274440397307684746473245246439745680764921608581343754140160392274463897161632329576448464831061481559944587238720449050147289568188735455080502515545297305971296444695820767652803148086404639630277143908344308252970694933051213877501096615947304520521283118743541375517863763854866490440712348617729622328707051165713133062920026102083525880948037866926350161969148206300050635736907110370520050202789369909731548786809244432920845816782695747195941226495655441049122909432012432727731073243960623214853788378848760118909445504373272267553463558096600140458030137772082800790069098794518365229148572506590549603662705814103536837696520485929055130783867647060884077735818133190560665424472201189610496071008216795595705802800091430841778258333729076520568104845890642251921005808881080798394319438154978584488908390328893954489986555982070249187601159866492840277901609849671639096302396016921495906226515490907808929933407243057324606761752072728667238178330221467665239588712810736680511983416501567895533833174584551425287793397079692898207904170591315603342063750156512013882772307536203734028162872908156410314438429118309555173928829445593303689116593172905574368925399091502787179414869174428114486405326687521353729954554769961501383761895334249393381299118653652342525140489635729164589118623591189527692384318969388342679359536804270347415412407887876085756281554458502745904705985845588661140242748802282897469677384805032881091738510024405091262993809218528137609364660491974034319757096793948333448809249501979760988524233185102204862818491248706711611024282253122955618710334886802359664223760272838960408884399749065139270949488384883904827860667683361994338495997128339460229091017026596877979293580505688085371263347228876288446335034864768673851632608922178180286882431971443695750259216860891650092471048348105700340220279609539466412045729768712628528087445641849110177436221556012012490589799979303187183330286293081562787451618894399290134609512498878189245734043678246167359477425428940135191894418916226066224431006146130787353028658830643122104779545880133407338372790531424106515132086610738985366293267229324572053270574850152864195549450935187340138705930392734550511830967595668535720135250096113171220786647883763688943530065978283723008541348631342814852613948587599583397850926044894128052709998645830631382251760121631503819528800330431559356450417858825466833582918595884891079386970950196085014102847683132149674432594689259584612559555454383398651941728814839116968130696498216815289547219236572391653885339450900657204334590865867704252382856293314845768252304505349646911171598150695635962490727459434721247779685699046980138706689029593893992657526369452220602197694637120825396199972447804545202076402965473433924592058907067136819754611491915509090625922221228021346231857013533110717493061125685800213874755513745851501870057699090725972479857481830952388796311448673840281450313734294092986496227861773785254944602809443356572546364680293234733540438838126537565665360933993168432665681751753745830507956087699978938533610314211595967908244918540552397981744132313187250011407163770527273482855659618835437858378359479647629195190846339241896035205527010522868026647354164024094901706836131223004862391261920656837293905614846924360324807470306779606058585454667346442742957404476447042567140433552387856215679671822871579768335445815607294421635654621157716219090550860654080244203960821406467416442731955380590084698044095314970491354518490326841633974466104616411657635336175212183089890114090046891965761828744008609050832552446909232048889202098264035385118830341354739359996102839067583191994320760788988173518243323672051316997195410742791679727318420517631059011808218587677281923383836425043991537703862713496135990311074364476249593945261022905140128650982384447305472131742833422308938578166028424683890305338195075507621534287941223307807349352877805796461350795312441039992135461388102859120852542237222586962220600145052554536613150886627076296558362869739184662993974976713919928594349496736435444740723361634042091759405203606492386389415976125141912755061496996985195148651221648867088930619612666765596127892225412154588642364905187878569048115884660238456995551578814688155187934267667388335703253867812233480590876423884418424777153945042474950102393216130224345200593353715260372164809522489173097625314006598476407496456504980229974819848537474343703018896111619233428779170563419595278560880281516913644857390444425773659924259442374807041487577857015157422075356343836434368019938992423991509483407895841451200613011633923121640991022815279881669040206057326747646809067866888120998657553073412295554730178440438382593902966672202984081240752892662998561872165760436445570365370595402866894638381947980233838591537624320901879806568391784239076851638914765908750751291119088140729642543944111897165697410958455568330591117231745694859105599324333914708054673817477523820069996308849542125998726018795921648284252601325972720253562907818303852849624190039180334500464934141056709519304665123093307294382734266033515669791333176673611606042468343475277750701708167025706094433072071223885440050282453046933446594387397719390340177317396258255897399167585645876475370203536039433060810283819575458370411437255426150838025659644471443941670051262113871287490818511225341066078719702920774837550835478747877716623593803928415237323794770334596212819126760172685525660481885867493498440503415929380470426874112365146326072813632273895388733310322688917879328207686569348533088208547711260026780630090640095571736613647231368609383363339453629589752462903848416292491627884729004353170189291940475379346531848930628076652273352325523096679664924182451177487619702190873761096260067958707199684773451717123861724512848475884050156653811097045668798691253407095662054771041559398277743030529346196241835389816431847189400691813591636981604604403802986687630911611754732486143785556545474745875707794535488959934698478359605149113003917843069855500297952375619521396429720842211327058959677319630857024041202854277956656169995115365689747440725906460531687987067213793557845854859265021229954717847030207411845616744593946530046275992399958019029152269485786087538132797116618263488593844300745362326587286459861621791207077268029899480384979745872116684083167565417092410959007355064071889636798019639031520966405041629062044748002728109204622473189097734803144253223829987437639761668686872468350214257911024500027779837657771624163272871831407921779439150077884421240846025896916494508678179398764987045308224299532232844664643218042000458412012047223291293058567680671370047598120133850143808566257908256486415405552020300967508437515184892522803406457815459195206151045610015515570492346200736696067502239655246150623210236444029731022773322885320215368524121950360960020026222689111488080168276004200695353165951882450077783108541426404634822252863299194200438857296336592471450853325834405076872790722176629506288679040497690155472389842199756375141800989606817671099868107357376668530879451811010580295677336152426592965658921850500653828720959633856599420185989425818898579245207134634522171273469122967987558927947841307708520009849281780556824274420228268254187897288975395977416015501254366028969553920863142227740664124604240078923901905849376114984109988016640422375781311839441544127872909590213647453663301809916592484585105449486909472818781167559294403913011051331223267351757850411378013650363294700281386533900159273872370168089248773300747905828699287178371538531808883854693405149644856097916510440377524697093055059935797094970638853891704527842811463268278031043994639116809035586131118195782755790242532669129213651486551075470836735151112761335948547479937298524098504265941187469974003349394729388577251135829634428217309118317784008993566982813186410007521741372948219769562856976386134132733419667332115792851764958337650438395173928371737831895369569693902803080742600856360028511269201654381881413874076599623714547933412784863955213018396758221780788020990252293157314849839616536740145621197498446918753791265264482363844785742179391909366925642765722535895038907255690889565938592047418878025826133940708655077521532464384246065980687686137619995213336196234036834963525013255985297876841824650770689809479712974215229190345090245672998897155441007341167170696695390889663713789641006937360650379422628141678432232477525633044675160910764264897710800010121143099465195034675607285118181343975839853640411824872586830738108301921409436351716951679604531724266210820563581568339802886958397419667092963896261960458373299695421637217374330760171199710946686806318669078569666135596455488050172579426876715822104205577228943209113701441031673007960350862100675746652880343575342672819295235697927300757022091179473345546050300815190756344924253874170357734817785673218474501994980918271376610235522892129048015978140705072238395151563127595540999813168619003462438876908656608115985614568895188566244747023154178988344885469478214230759757574263060633136750330412968077642712672545537285381014818635050643047165225296306121012223936563392283746862367068126757846900493264436382739524246120988969026862649566307096415163998109124762321957978327952841333749803334989900275129885991120326551585826150418121172023192786915753720574626729782366627339888591378333691721342109943006137011246021587541313427028230154364005108632876127759027073786268136610575336216009602866002913194320720185050298740284925896923717405319705203048954771658519139124498785438703009185035571981008848549742542956727069340335110958783362950103289784226445760127290714475878641596301998772326082426842921391371483635179050235758950545134810456393182499598086108128913664272954577030648771236004019449582650885650849272609076214797829421934518706980875387039331441321144369148154660467038701656409441095560897100411624671230571031783864447173848653710907980679507674119708122926051897040464424433765318817718275075006519458185235104040739976035553797297625762435395251461122315400321670494875366193669494094933724989745596560941561243670094119336683057505843638392023043444538650095977443954968005849841198639834576917628126848346170200591568265050110260075728055177160006572158112952774598975178817335816564126818883476742923599407166713899680585183357583688729968313735350332034504018262113839001865566379997176493738117811260413648835975225429202438939064252723430030814500346849891291895601664759117896494564531829354249516778956060726922315078009511749918535762467826604766203357568481008196625861393579733584278630592142986907137978963321392679329408859326424945192922944913595341720671965517449788574715123612606025185566036218379624112263230472501095241853817227684355452156642085838746774532053797007438414137869155257151325897439123731597704162842424089956544335147056521950942128263133742857875404754431634477287164574007597862990343844420419332048797160672116213475588726509176467271997052788721276058372491159156784020268949283006379159906749701392542572338691290882752534805696039925315966662484911576383312772522551267137041318602409318043434206080567397390233273564382433073245927990905463500284918270128366910718584267239448342402433916920208700008610217315875506981941452807571205062152986757206889276767833985675588505792545262976961878781270174880709138775500752920223973047263301380441636219796093333452185599084140248172651842485848851138683255789335092701187345113370578833577933123732356424915461703742344112310433666890058213956414172893274069853431211380947755467739692430645971958147045069211281226163126547901929841718134850330971577978643537089756270290621272068140490080551842018816285827326958425755887132298635849978175515789135427432197212898897950053469920969389596033413186203909565429795797740566703560901146327053791332650731325007188120991381343674618033419358153208164163446034903218694483559578991669149772694077368246592619626084015195927345591103849180843808962065520292519061282624578285761077703420584237128144057112581089473028894295727405102804606934458143282197611583502530308572110658379408171162298674085974380109806337209622840345162258636608014085800078719544497152698949588489182709305054178471291590834783818540272114049673580801289563070737127448371421981900740931787463750198400497111887534331798640916480925549283136190765530943074991935677011540182114599720875989400368158850859087437535998969632921682100840242693210573377908634263285798044900527810378629452198074956775899118763039442562014309517497892815855402457779840833733045994391039528807396078609165365753204403140283282407339486885049467221701565292441954906037614006858651175185479637461156497376401112692993594928642337351719544086093306151826283105035136678234616304134543892060883003872133403687114373638379590408700982868673612417742637661579126808953556152680341583951600744957370724931662120979167605116835826848426675025039995129210010704638456632895084279974810537899577124551811549246332689051138820630127200355716291762881355465671817488468694063422188413988240519017015711132347624179165022398722030862911119175606123965739287617222861046424636970371645242577781985968705752487052926486254558707529437085547894049420114280250400639433801191459627034505396166301588788804461491137780480242945976671515753679445019426616227444313700054390502606576624777375333600521003360849796991900782919756005006589755673245690490810940289404587517032849884650957643365326333429393586481537227930036423877916104766056095172102411132606345091244549502437676347903506506282640873428638164407324052794875353756893103443950570559619054806363923303964670184285896950935874131751195586129871489866812647757741004568229635441054264495880837946138338724281497156445611361819217693738010351050373617406332750603624738636040083804372807999716634227765311255138360993075495126924151426371339312154812815223093826764361753640188292975612466206453939647795217521367434015950148742155211280465176577013081204087843323152174358003466356513083355276081078288113185357454842294079127588478248575610792281087895212792882197598411620386519321672645391010589385106652872087463973034913516087310351717153679941646817893490100643423335960746706501154153899529978904126656388652935086077527014218892502600374664222550526823153393028932854070352179410935634181950387048647998415370093139370122051376223702123055922228994481369909300153099222423856101050693867803835640202815479855596890381324283929594191011723590103632789407979481554267604589945229165279015389368410087199177331248349567911848242856599359699761411291970821835417530945734767187453746754281944689076136380048416274534472106914994670119829642029776657675774910975499350609825989081720586988692693388049866717199932920583311732154623755386119940957037444850563551911189427785185303539922557667115411097063480938149245102295926482361776692147724345414282313716022993513890262574957948795542840629101194371587969475377866959004153204414347245452125355830701731502374615207517240198024537659127942472079070399599527301366292737440213238388412344487711861202962492728681950039191201578930790740151553109725787376404014419352081876322333588121537502161647572752181158960269571701718872077210147036872166108405933544502668902000238668224362116113812976387676510212020557622580208762538785687722702998716206619823090514373088227124831875392415049259062022138328871042195797910073230440284884657255080969322807449654214192242407255630121158376554297651317937235448326043600154304539043923938312054899996891855276465602538050757846366343305313075085947562702469227242273739470966258545073370310732333074984626053643931505957022437930814688221222408250098134739980973864692326698625724186057828904516391704748031466776507660105473766145796665496950724791746150931047943331571945914810429199459111178888177584934887557649631759507776577713096721327773987318799151857171871397727295654913647511726845961910639426009638712867021500100138237970687357693663138705840165040838675522771588866117457181753780648924831932591608279735857921072284631778112465044996825973044177681712927666004270492955927651349937908579313451569020444428906440367203563814571998319981428375096200924559521555718467297028005638072671308656324740301448359756120949303067448144231481630749652027497090790653485312834918281368085472548159312983075260620635861800312432733898719928961099502007851248584559664723366686905392734157461934983392887632376555038657581584745218123729840713443428069028513783751899567203921439626163491442050728835006459259446680853241353537789519022619282147499430742611517984599149509801270885988523352024291726097636785029210336288244764611248481016272821236314390568602671073198647087526239182406461087063705419823970303102699613404378414351591792645308312364225778833284550493948856336057118376981129845108245175470344723983378053027178467979546387906091978055801958895373190808028368438414632360104476804066554960081745997675953737270453706114627598227672502243497718641481846592909461635818577578706056946272715126242745666783424954509374861817087926083860857926249227201574808805911829317130679600443741959293410958328374423259701315910542345598273778519659408036125563351168099634310313398508717520461760591425792805621514435012969027550338903084339707928585608035547661381863852515550988848534812481006778796769705906643500970647954444353745707465972571497786801246708903272051866087457952104826762160395242954833420825198228589870704002668254605450246990640069230600625233218908969239034488043754610564342675624641721744112909707286077233711673034662034567275351176896665249286323161810888949517402682074063080522250604929579682578040636442522480931150333862967308832722396663696726886062755171065269371028510679003799650595838092043242987647198512521481483180751453854321028052878260590012558034843818196899455917019595553578625258614568830386796825078979632929749932534383522789216232864334455599589501595867639002452739658398361303973406700852725680634654692015433055609926831417310489180503621601033900914912450835408434035699605286807453160198203882080393778237565412526270238823424820323117845884407342101029914870742150775406509020986305645017132715848892781601796787275559203236319403606517841537092274629210961640225723418587527424886604676804897904871682119748083156051300126435393765249930978898266336689619058929725105858346679974517477123685218640752288769620663424918435391892581358787882403453159013605412975144688281997589103918834079513911324225157309786420778674689596293131249424728251083993941160892687272393052095173158136969325510652775814431713670820237896566077741450833747051199493890023921432344887185048136333055535807890105987641157591598105470374167998043922240905339377617705359774787548902527481359622735359746108622353123637669754014290452980359886449813660666053506881706398218586898324176863986570740503523331770079683776786516187987261941637964819630258125130752665155989487367301236475970505054973113263613107327463305296602523595142725686739358499677457995166051802545171963793666270610901073799838214317708184425340146317997349403669799625911913044171796483204184757089957007421411001199210554090279629011606303773705983668364072505270908852478182776877667165386276298757678027096848598707209000272784331092374404849461051208475348922761973276706304101251762378650849054376569118937896722158486866296793578161113796988365903134873490581153896918775018416037919329996594807979871161525042181272477277604085864200416092502485478957798494089036210798864561080938270261599512849123902074646484766784579781060875613380201179741612939198501094079206378204701295415375107949649458349059383076501486071570383199878236781087178386673845998016448671182092382136278871795017370612278860301288931757653387992871004924685889741949145240335612012585301624615344772994878779839665554291004043836123731954131269427898245829797197350190696117917361823613524640244867747629761088211386331505544896934551830605249902287651843257672220060400515142832724686974999097788496169633760597638396977289551650184117659040615345350324916822975483867458034879179253523384137946795232504194808404237817325134030830320648133111949431246642318783769080663341872497160853592563663599309450759692701040708755562360094926807009911138256093283849616336480477387621850826249284307146635735761738133251515957845422814244171938141422985930751534230780175296775416757052051977922781310148748339638751250504786056548229588763531122691967801305447109395179957872923370126597377232746412399548883047483474799559482780626949911321620850173519475006540363233355839238799418168964355493461653929776638135145248473593588400607050356621207988405136611458275554045514931323828703430570836541582365767657213935754407924425017909419421759739469324365788181843474203731532091443088375230737949451277529377367494663068585439021436766462149880785397352650719220498427429119670234256967932610684015259316898907240226580599704180160747557168912561429502636556226645655002136366307980887211537826877029599185570334387432304547551124184539667990273258306287282711006497860494091589045152113482522159305825650402696777246545441799805007622128753003750586239037434207316914038970162254203935851753918212698101165989042993952387482139744627680766433937770401460274606778313905234643135571574279658875126371059304750305647661009434403310623717763300879249634789759053451076761937568152147616170146035051889155424842048389279774408856996870894052570827388661849166511779716763411263308216771818180794782192016830826915827530979730018134207691431113246995982895679416677918917827446098987385863148579730284189734246086287176188065750374905389660585227526641496849010862640429077158833827042996118206131611317582849864325075556273331677808872965592786637402104651903181721207935467304669412970319205331937479866309791478892642393559287863048042206739293555271749658652717652709376618506156503739076636804227772037345243548287721526174476900034340167089094584866166518679028007006264824233263123322352715702279634066230808260653459340446634767834738397628576303679304635209701462224540607787702908624509572388834677946182685706391739203887988257669810121864152849203253194487335465726098949342198322919585011719023595584069143538290390565310054211515120727332054610796090499857702297208223838071863556495445927075824986820665978153484046125303495153875608684532794805707404398614248639846738758870570623745375565826172280083760454160738106766240169123207906965546971856543759373286929434183448463359452314255413412348492646543362185236787950901975889501073937467827080582321703988563067505474510042795659507053085102197242731196816482881945832604899455257712642156345387141189873428478946932822582433676885359285025846633975364374316198075689155018055400551701181823641031078147602809689161576152826628256203688577168109358156759831386119634256172268543358334807838381950719066642180985671982323631334731780952782584531793151046954846050454787541214113471902674210378486627706821219551099639684547483312589162445676448187469563042985145147228180891814066731720960042985681723124531030816261543082769249881639703063066145703559396343213067441045515317628961651185344869485265906178327635252718128490055011115741944797769392407947867486032798712408980643541479619394029912185635183180864035569240184177786959768912268899207243830480157872988246484072529308463995649320900489853783407347802377529631463017256731098662550415313375181921816905401512764777337906322942269899592382428911219200663561284482958317102204077958611480653407455926902893695979217638822827894589512778452659803502269673495494939680660000565481717938349667547004042924875754847972220850724443870677048913984222134778627126718635571379422367461073181373236036680145913842671068768225739643609861574305465561432058929372843295782576725345091543365341338414770766013464233792491272679714928864790842205321849781658785282480321433995697365017943153195304639617489196797276451468255814691639591329344912351594902765466300130001984702888687634457556197166002258247687168079765751815267867999974975736143125190375580950100204443200515966365611025999421452153541604287142345878031332351018209732425141749698158347750070852556576096667328852661343952695929883091720663840456175841690158361472830722344304674455770146797095401462899223112821624042827482282406758310213146880150786234494773126442874095401397136195774860235880761805825667394947164977505061844055234486977774132103467764959604817412709843055750509074257935818349882048643763148130761255288691957232038647638604267488415183354193758977207563547054180116907283954182341997991737775933381946268561985270853854839759869522754520795315207156206581209033684984789822874707323117393723666267174808535838094654175392595736899446988879222292622467889147129898556338069277793427942736908931705679425022323931696696558104876838098977711118908036645099707333381461041699390130363247832614416872821773236996913084669450735183677567488293274815931855247839185522141360476653922102774634945542531571639216656737010814017807751825559208122981356184364196145085353794699812852877723377510256474674832481581308692001695928247285826703814705224746508393234881774952091139130986281409811396895905373983036241055025292688868009882653933903216956270789404627935415611287723563606644072943535371101725686242166164346067643349290744347436488675936821256412954905107757428583562229125152366638202274218410374154678284531707055353042210754229765716493709726005964786538514562718940254698311737711121284859630155682511171870014117523275683163242705162408158564018367426214943042795651453625958579881521564549335134124136843635959773460022650814521264270775108672874604672390570829898244798627933707101841118086017463677114593025938650512008220256562603570451207218249253264559592189574802089696020210053661666350909472789585430058844744820682006939437117261918664799006265021938084145126251599727951018664542839623195143669925768648873025298743949105160060050977141091149436213594587155601533390780714170542386340923159778986668624163332397708599048876529874975229129529223969614815652092399343508658268780465648359283280422086120658817486091661407762042261257343176323032601425082165032510750402411621382102733990739749841925162356285435030961607261260055889191406924687583903583248032953600778609928002950221208775189231492334602843264090626047466586396209806577395337175101027205609003787938095959224166123972876150950546947424400220481411031576246034776222480205351767183932420386013909607107212383931138546860517994776649421337152313822610525109427307761486143719683482618972631159121357963298227971003634942699589949320815719971149993376575468937490592383703306933507546591917087650859325876527088756859582379986022265185463629793133272332506362979948821217263470972969749574802789937915758956010521823937695077468460201184493665356388805923932994464254427811706802116274309209612195729848469106781635782796415967688332323954294668457238612677995877821378505758720882942795421574541114587103133409612135809397229378946437862219025027448990312887933908394193937992707620084794061823710594890031433737937388254494942758841977705301115758345172870825767394492758092575445935599257149270287949380723618893629983254259231698517144104440937065293199630062624345391427678325632262022971503963129217678098871968355174059838696372060465398987452971242146157752673770731045595241236041360060939399966981657638337831542073322585109735684224580185266344611819021105904681722700521573956219352365954493600918046028835123999680405388736124661262477632407108435422366834270925446805995912998060188344917027748530250449837080159589144973757293925804618595911383346827946487887280038642860562029127108342634838931660071209022305164825799170304595173411032824958495690038936832829514541887805851004030088709196991184584533153187084231143203054691609826171687366126851076428960547610804745228408275773633631378781861459134715212397039972838580090004650117521918337424040402080864471957884193948739546748272404191348566435552885485055365887665707068394737283788988226876763836814395543832479237774524718857135636117234895316052918016543785616526707828670730602122514059945989631940802536282910797715605195978832269996098416226570388212452254178588016542828888324780260960404767727057447279031908994406067158997283310607948479216731600633706862941084666830595293933174487221832155417328695662015710105798227340437059480629393321563940030703263398091457624488275821892667693962110399588326935537689226217737278228384720222568762871380457039435547429275251644405013481609884265061457743571583165422211819979902787427580308314860347262555320666026780846611481282867881468758764986984558647697479984213020889088046890396894394133225904279783873916142711929244147086039748484193067626055768335364693689583757210279798609606034547993938875886622637203760614078158898074718199780456433988509371850066769901511666337039548152391917992733865861428859476604382124363046742095711264734027134286743303796597278289099568150554451086003655034975501537597191591400598450381956628522002893264670656454781478930468387298580539233051563138509520164452334869859566259108046628545297873599054835649952870186191394438087968821490087340464974340768686672975168529837885642190997552510129533156878023496722969098956870238481272863835882842098207567360168659071802201989095930349762143869639599126515753149148921044780910164831666795470123319944920790528797412803646445056275031387775647845111415508371012797775394238122311126024502297035282888820563764825995872217776377757076630436237428663703663150014990957525354641065261246721059064910145537694458595360732586074217723303889656422328519124947046657221387105679261832805720552179605667770289548252858467366673099086268692524537113680951848059063805665285044662281773699505330822584413640356470177612943287828243069537833963928936018542493815067001804050734255213457332217737766134622561587176796130151700142602281624717768256426521506236600600586290664917699733045223597522829780472816878171913039513799624510428262420862654760501776454545541033085003897990892142343756949572802311127620034546160557574947284659360168494919342875112027336081058359154254357750844731076283699285895345143968411847180833392839298598911081125376207033488570670604495836221778963447144064236969264340004070701980807521566522126466763677555236498560002196759569286569225355440400079531889272350988388356066419379953156672695455397803682372393567590115204919699329529230367836068024985802027607592960102671274816268795780774157758158707871537723763677724959474654114027641163471127828177581101843927124777639473268778504358420570295690624478065374876234685643765584453084386655770551431089651686976468093210971852090011051643091838453115301577661249648508855693239513076066105520678597614415327544558604083475428401898492673946235588834138310899871770236647565714674714633522940001212847495409407008703106043977089768609164644536826380543871021911007000353290096317206366940863565923456952486245769634049563826784907510302437488069643390228875158529105797618169327651901875665248786926473180840394383521542440600910101178305311365525597671095109879665438817816008768048064372955355360403728540624157618736905802925265399933744243631622381361035919998457358288255435103397142663565681686337716623943108273791591383161153449303958913714664849558851990501478582570160306261032852759396542922423369976217336662766933793560052713964191832653113913845321015360632608258218334527409507113731369126165856098070357012557184089329540241994539725592093124848342638625418728273527103470263222431979574360832111770946966380465213884801945003451772892748072173431799954274530486518790343947809898969801588423495125923118619439090321703057784962027199718637799871016396577409846911279095298680294856258361722349393140633357154310649474625811816593983497504777683118255584647060603189412102361565318953969784553500564232396613344976216770435154310312147870066482492349412009932204326102701705526407280312579442348592739276562862239806565188256701595289717823669939800031338955140153610564378685555359039875316855468707455901728051255535897775049786353730454068165768603013048579536966448438223834985412720235439930090356471617455936191307677713775355606819774177797428355839942468754841627182581029667548097799200452973274949215336195977771351171864451811672441757965198948845768102655891846542793397838775503136786340595102689671606421757554692100333728933346534378572073200434588934234016877551363019056960375270333384920342442120574466443463036751184359805749278389999273625445529948782388700222255828786157129101647750016565498067902623002671203797244951683819360053054605646987450838006885408975149081636139279034302203307850514803380924703430097382404459828251544408472227772146775427532557873611807950693046682760600003664680997199229362710365909937796011724162206753871750157748657695457006156714032654390911727336085915875908378747771466571127075394427891095899098578215960037830684149419897135670279084853630978912489516495051413246129221229955725719179498259561461994331096324936401935831515609688454346881565819130261650630997575372124902228196025915748615770280795913627888257880198132498859976371549332272056599395718857262017477794702169664703432802740500002627685943981794339847096460483736576226157080676041597099244888162591101147945775228191457282751300657567290521498220553759257329522412903464405317338591116887798779556337010057479882256096789657517676758005754618534594186042110499620335629618444646035679940252507352878290315616283322277014812133293586852570756456161957650356480283270680727991353255192825254582127405251785804540606643558533188460501207394362462586160731660478460337731443899015674695748207029603511345346713777831341930671596663658267806925130872096961255306724155158490276696255870236154300468573237192716857442298886248236698814718885114861948379873926335828661657040171852006188919586481850428319510421695709119579087716411758410133218551767881879926644439858512592415175846971114084458504673610766139968338049768310941726157584007399594296985555728674792078775611975617536081974709852781242115145941539020983319069352617610432937234244901023999032018292777335108290325283458427749226245655540811163232886520945560485350690095682508262285774728761508756971344347425048823880950318807331977664766734299108847415675403549825588218403034673271048768625513113881294265766186854171820572183875722466916940345700079974286001334506521376576752435969874628945549281446201778923920476775262382918845745108893928463747009292535254850886988341841641520363747112438654858216175270279435228057124544721823585367124908359574936437539482279394603261467589074383341734273203027851434985354243496513687137341384589817953548410285042163776459824230888006446322147734507242045500244912649460346488562149424938994277808275807925714969113818249180837053704486221216249771638354268757128591555887590692382105448578029727789945502984304985062356307128102888416328080288586402139495391535373610377559575812191679240856990929930997713097473851468856781590034716395132071462025372620067602409481834322243874277703769355695033707194055757710346146919259786359230826653649724435492443599110311572289597059037324444790242822758882822214735769859432332784968415468772878575100669205635636797204114895882918911754878852657450249029401700620448544218024851187541748538461089015215707081191407318698033743275032269401274263554683536993206107235562863661580391627571964426280312092560485457760520229560934453218134185105956134176276182630788583621122528667892845159159088789633848990670721039306971322568595594594854517772860440359909774375383960436340497132905922940682951930482199194354224077395183912075484711858928177199452778499320256608084186694275114305942658550606959636369379773945508118568826007174080575055182786131937626625785633799537118244558318952171764506603714938389341601897056343016819707528121363644161671597232700398508993976651317582502082910800007831917830496369523095351245821028566328737095906588567603485858310216542604076308864239507374612861697097488482007980243568748849373621981293447555170327797470743333581401093191128588933514288373115196808159931792646615670190703277750097908873790409424982943398718048471495494156430369280161047197965346105023559716623096720494870957883920766493984368084416280155348345590325263788586430858413517852498047860363698907023452833546019807044063002375505548536808222448277961307959726592586473130712123553898573615753481276526648456091664478177625904237013249998680869053092975780151324159142101925521658012041452914443575626120698544902028513882682961175595879523286625715461133795725050554118674606311069372837217082567722112914715771211298800750200655505721501084185040533686937951851771522012209730865246983124004147046580865603344956259314509011341279114820640052273148067709003310351601640778481069370040830790052951669089267720858269455691630195698518209009658771121154143353990594687935955058292392882683320690840911206853789823879718806535874056781166088647631993840029876470734388105118918174382684077628364832552283979592613849612160235848108825138410766645943192009823436365079005327834098046770762594756425282143013282463351847245211289380459900644111855951974850057554074788591870099910678110908901630090521345139551006099404405705815951502143411155264336098589183728057340849212093741489534127159642704722926051824532174962655016818884803437265834636284636150031334667547781308835347370414685805936701734317068311183647988255531053826085717638544779872077328858630118534635669658954291773878397492806090535415664860487314862762289813612332741037982018085297468939999429696554169090435484312139925027147084973987562360734482573455684072516860571326173195140656809826058669809305634394985231469881393436433484692392811701756852542877076132584753979203781465661199409427036053576790751423201499568082133756616317867571464720066626137687738246680607791160585695609257624331704288196818445739536892088113914604352540171128051140102384925985762847436807382183692777592619999706303645039922518349127935429793552448600318972880864081351410298195515821879984790793714281287878322390529555588319347121075881709923203864798838417989759709194549005636893881787952667387468715956128446882513539717596089777857646808963856248015053170843680975858987008485571765462904430171995293569162002559649190176551990369745791454684213579505458237380270092565608259502097563545514690865970736173601776176750099951693723749346118905793121521788414937503628990297247816568511239951250423297492716446055685122069131796020907146903787037471302521194823918028496502335037271502858572387285502363610119725173229336109032085123220506536516606457958373585596068132950543041106197486121363222826373395039702215246812857787147659870506692022124645250975905934005202491056494983231271640734361010446056771343426723376296452986895107472880391674731648082026912744170776573627372538092205410378728816830355680779790163132485254393511324266502542132526789594096327902306089003057011128704337605281715341181033095262544423225802153861513087823671595358160486375105619653541376403404487742335009578017466732450842631941025029729360392989654406927302220116571545254378174947198183520090996101078389491730873177315690799586054797416794974044500753919141306845067016280420059565131046350093283339984801944470419342001878461599887337974113893727891570029698455655830082273552117812309550093017337785073633615325119404394439660034307471062695261173984302237218375314289511531082292654866961605894254726515411966433681548132586192106943650319582256644635547336303166098354513586748270112427953612513356783840133990397048678585073615637021772893436768095764809248574644471263100151864662599702540382201056831368909961327343316661819774975771867275117291049547491719000932555595625072947921155097997578469267788633125882479990091419665745496679569670784911981749332058109031411390903272260894473145163671459204476287963859266142887316135722264295470383141157345675553124287462799007292499642088343074332717261322853134374947135963957622400342717801675348277546480433889200521940007654337333516609318292949829793250985925397414865708068591056095467613805450324005143324584157389531828696565592855166910125604541486630226405183083620307119127685388014050811128510477521938850783713291835196120622232447583255703805206055575883236066670888220676667780041098846563581268780283756064218938766392777352548998131118542303718537802252291478524997722417957944387536155025539097122891972700197561873712654205931360782478321404349629492066351037012543969336847951573210132702242468102331652210389579539847812451081513501910384072549862188264891734331876890074576332036202027886710583961107164228697579239492665155999400909749253040567462318567218264911936211041656864697601706613891573404325699964112436384958828939328308629211855957076654511596376764067467370456363308781651259036762754664616894501212469233944796619168250530149819873035643397104480614603839762697763587072500663303447291270809846686974817256054884105816784022984657111326544072052944309054375973723937733871958522055834486491244904831555000089013274452568563503717028830186048063454001500444842235706209408559051697034734253160692457270770679071245857234805652677596977874441370308304010971944538306200454785534806577443895586304022056883328690682658901908142231390483966498553541485420396704270784617592952951074671077159835126223518699397579659125415637921703826295877526143946863963046330372873156382372274094614822702962746703616818487032149492440767020967708919145583011432304058364689763374880446552112900805586033392427416871738828844174042296354798998879217939815379676207789730412392089441982075441418471447605951524209627876506902095641316491646719128551124443537632647944022083693140792220137884658418092067129914476982632134734018843619388163875367497158703551363060437577206860128481569381602602682453162643376558073359502667820737463207596153845720021373332496195853740982529611782686725512453075306904433341395029284898982236315069971147940748259050009856602285697618016874370420317988713874666403425412540913031035098066874263415360975429821975116334384162059839567591051609002303096642758181950286577571272959756842603579589107533703713327067526831493492349293886666855888707437427456908989440216175528692316631203723514831100868813823321725778827260818534240892998569250863990884798759381644354468576015662689279473962566472779703536435548237695384780280291963161744903814610197943822475284711275560431313600965636561133426864503031551786050546588658008407542508006920338659107123403616675987169073481063905753500658235185172498195862689148622330674004667544876733455321660748109794929696834029089927492303598032374938225564148051926894465181879787017565883238543441696357847050088241455603551836112309520721482957156826032209037941343889443326958799954528337783913769913440508042963497732279712538904603200992729269734556901590745180952871526697857806493609988859830830503705064022685625572938521138974894596903373489027498802387972157353600592861605779035520412871896693653723865019432383914817984700914022421608148929075644618158728009706246530754089802347176448990247849016109999163924825890254928871796422430678843756300100367647569526288452764999908019907020505402571660332494755613792423837414760350470500502789454895186765227943303113010403877892254751681397713829945442064627643324613422082491379917728174173127246975849505101587673158249338393318022852606422694315542732323794387932832103406451292623614364824740739464878540609507257732931920496592363852869313418601684486493272788503099515312310300628904304541806127440442837114339003628084689421540568112391295015230609363615827982416774825999640478553659021253905397586514844988342591672884907296927770272333393079640752506271007928549249852180562549489676245200732680704382639569901764947375246076417209454655210160117743068051032725527569869149423534174148483615379188989986742637124378149678370964142932010534694515303865828641447187833799902202912476774847924902350436066030157703269743094045397249981301138913123984228498912246023980711188877375547258873410633328358584750340236390961380815303775212651616263099997131191421177024995477773925614417062258508456800252664426611912811122709308744125884379996169944783065181666066368674059802579893673702241301235102702904817937000557539083547073858847613126666137294872345991718317615243026560538005357111626596136115284471178334554248987839674320866315931775327832886105174622699721707324972148632876287138796457152778302522429396618325361188173144244461357934087197412807956516436827379094412320922744411586540856511927277450727936427589389710139178113036088604669293438634814396458569491290192305857110775905634926896462878754055850434360580599144624434454092917362875182666097526665064926864326490198353975287158550909808169494238754444371270927415053029576485054349212176984850758995451808430693224394673403680509550814766070429435882006689453771093403622097440403293840627066273960269700096415869289259218481830413275763657448593203996219000640385714586839592758551606230695231711216593893292648329487420764001014711443562441700687462073629605487505984312082184236397586362406602289417216497909095785845644220496057099007555430307500497759048851917431771277707662512087624452242190817174044560013754578272998266544792840822561850266073360188625834937523259768824972222149668692056475589914172839356384816682711468655205165651428322899391088684649365994215845165413908952913609222714680847185153605626141291489467187162017610091903872658636729846597952277313606541983962036910498817367302369105914864906273150702276400141573973987066232730396915491129527801879403544406358153123348666208872701535165736912051872325145212264353816643227292363188433679759040540937532107955677754293458883433334393984721965317227297772895377465338824499012080729024928831145049341338615719922994503454989188163887604148153022183566356541601427662469058288791835518062017199554158882078402926933656995125877421006019540195536741042540477957752180307640635958766780211985175562194213277771868012880943206481108274336844166084333993505455127275823142899668037803935192981279521379133616597950900025866622962419687244627353605298040810412518101234996469678613215094321806985223582714708686181742506852651703600123405325548096165566302417246015438466852243958103280949379726367468962459614842823742335011344276526830493144602008134883873818057399255737124101379933407338399171193987187707658031098392642329567715448231724515487218757124786573016949996836070088326737287107436879561275991374984279790064960150880022293899353881951554552137043820660557997770908317147946819188643268245510627494100235076378845436753430407348981969071750003355961476110511930981285311588926157354168500734092549272698780529699554726163385869119198419591495511244206860428202730467605719994045218860951750919670417208460510708090293018725385659686745024530086485869974364083566267388466970350011593135582924240729246091527255958903809601792060963512388302975304030498903369301923683533223185648265036631026922169259914141649103421090025143584199201588131039632685648759137265301168794113424487239250104717072113086154843070632779541358829266998418426983059582547979226947758901490579765225696872087609156677487405270526958211189198771276792998735888246773915692539843779756971176995248417460364063088970792379753617455329478820761058071421281916548788082219562639092612855269375937014193728902702005103929876136536057296453957741910248425819603445575682709278386407914242890331706203295509299362181287044761395170141757734997591051863937587345870333346593732080752584132464667159478104993583521492295766548295091087309030684798635873962517697226234290831706231423823353981053518065036364503872943830392670603699571451556331474075476737353730776699875097044009545148105796116571887167588023354326446505948387980061953298955623598055121542260565921239245621112091686129999721517105896324427366577576409782513996738898302819461213065961100596332279716935700147815867784876555812336790339805025077793839424305598637054310301164042521247479574141696291610697636307448046197027033626407724984468360575468924978742872671233985547948773162497381836278371633035449977517372511187029766633119711322596216468858368947158524603859147519787078522117163137999221233500889670854330029242565434850833969149012625215827106007270733796750642826768326278127778178892628208544003436378156612529240810125416105575228307055401111297057813712958005622155414144103924047454761195443534579538933129414181356202021521454606575844548426740076860514153132410964301774862168684691347891352695391895179398451262695939763401309663387223486421802466299731342675214643149812289988617075710366288624626484511630987633066667786262926824615444959875993697455255263814351772857595150423504443319046238645182278655968156422312594771855533488544498219666085382749577112780640796742343707345236747047899368617687666878539323702154068066102702786273264904919529798496043766003363975866487360301390299430593036019337873930121579844076737855345676886715929459348848844091683099985885129711876843147228481407486331968703269189135529802905600085552743628659986992675665051719496980951211035337583948049238883627790303729713045686921103453254337534245663044180690524009397079531933721847961174697782550426362717095103628024108307466167317645502242928179659644732896971082870376683872097853871894863851702371527170581687400921238061267738588293663281020900914292946825465882260290633532792324707825991748491988077591699078990284397954039890092348900455413499509366368148698399012981380550997750263293114283235054011751393830420403398745986830028959058715336633644767210314097558292096152520952432693408475521759390968412979219932123467174407848154521475395823989891720599422019185605173672603026990992284021204328758228470331240449785318092640389400388909270112676566344630101973310332653003743119024895046972856327667924796626792079079827458500750205051835820639816575932425976525236270006081233633627779090433498701146230879682311071672324577254727313966726384711064845760177694743767958853799832053624257144935178867557108476069711320462523296778123215404013013300295821554206277649760072504062350700018278105205008691451181144909693750619316571127246693714510354406964252542316641406301543449767357554910601820870733889671178164806184444624134482779026866133534527103970137617058530490641562427524861245466388580752203444399370390430957654527066847609259610837699071901034074291145479254151797036738200089758092152594777823751772540930399947497112570266450726977939957312245919205407611973998300606652679010704102899743775608308497683776520655651046335867702993635311429723429208567181326556186802560179365578601169689273558328640574785515399679245817689478728833280853427058311375256342584906563500256446202864144120449889514152782632235214116934803156526182340696822880830753409539814884094287261321889818197036458718239099714706333340830377726920967406559782979367348312781410447238132343209417227480412587957339764663133021901993870177710788326004812036513938038247042382411378088522795983507072672383336555342802121883922376521507519921164240787966429976666080348135548965596764165450224115856983759407890896175808785149788363880471249076574061987652101716417770591530741125393585020598197389136250910565174520927299913390753880258131591443122326841832889564462869281177877186953499480745416707217827451661344410402549234102115249577783218965383051258191034246137793604301087178499391085359287355285362058420791782756371419159323886115449791815291581656191589726991918225893548246649809903367125291569290521344967972067407497073815254139608276498494867886807502110193270928158235897098313257870774395956273933388986653755111855694823622543437902800047239258009938615682581290682593123460751420035357352162197907462439172184875183794826814682968008814820771730731252608056426614243046997637881486353157778961564242172400986426806855901718021036002996264369900411996676909462420775406357516526413818428446601197069957169071133769965413569301376652980692171832312859700578789284455059312113734121352457288900886458559375353918981883525438721181940672669236125354564705282922630097552244295565572783159035045890171495031205801600978112539745101410846230825399375215386022177841657008976314752349608595202966143562767584185873412625481935140392314290502955903023771315348937136999667090850124903754096723547452973804348830299337506833123678887972261407145211028775514278276182868734015472230950070609615887781759447061590753510887586707327805053532275047986328389128177979588933583165037945959400510106051542414354326692610968698185782360892304606267182343555570368829492688359035273755994974138193629567498697200062895103332424840224966644894956909730694349396281292546530540977129361011712476975499256764336909053125006940948030626839202326960378123308334259682675553865211422163652260281186506664997299278526512266135521624734914744815879022886088998073014117731816837785578262678288421834165683047362663937285421241077253261744744004577958654814750023353605892187915187722146378368731652623855578368976601056632959687617700518922027434651786461687471042342713266603033439210768699476303953530037939107332210446282097432609559912964414428067186057381643749110252265012964322002903246483655189453771805549153773666757530281074545872132387135110162189582417130801425732944664821737424859783577710534247795360481402402433494657993334019610597889316806371954510195123068492110746612044173452358713378450433164033186476090323077845880954682996197749681882948337332085921073016115131021973454399384425702776063719488719936597250803130149034640470717291302438604519740509967067011287802440151716353640226681798091621875883150504615537243215999664853526120959174633480074298615919780515226725506369790804346981785686499287641550003843625134768589017114670067956833078292481422350823390020908078857838759640286292052347657620483163655311496303012748472462702150161852255701111833227051896890115378574916703490983515513671463371039841078150987653258685150905733975232305573676666568770064131119343972835742416727778196276085728233517641781068978542959702417948851495243206090506441609337047323948554532331455245927378954315567945408738723898591013272772869581753280170317676031310369499509866024641387989257285061453102031994400904573926737282730801610868406281187396327906996996067031851185508859547323389898263055753209019983464397195558009183881467805702023617343997679029580909239889456007549970807594699019090675862223599923794230385711462346130115419971675454638715258828048802034712249618449842328845406113155216840414283215077006864539138528575559606599519426659924232160275471596821238339199594983319075356525235437916507923381369520087456088609975012009140605383871590990962716006654026306510772741884016138059741527739608355173055440717387359251603264400138980666798214642969124000655400841730590752970290809314543701861015540783800644314678775968995704991900802833761065707018607542818882699581688032844677310867375693766096977063985644231052677690631986659792379779925945148413199988277839174353887103723925691286279295739874265139327297166921646842768104904920423437142285157367942121083631103466826575267691288662767178969029661467466831469442065791183666971912846691577505869407921044475859718574901626074251174090220780678153302547931416747532358930573407959027594159896145951479174873198404476485040278507956898987594925960154376781969786703817047643621669728509828564780894681665672777217453106606667370199936792943356455124838631142927229771997615216146446537804887288336941535806532653818205911266140948952893471476239985500824897036646830674952663032670189263964959878240226703657343935187818348535761336974025665354311962667679037316814542624596712236755545325479004936273967385503400683368342757424046849893607658804816075248404235427259617004603945498184256461639902525337580116172125410482792400714022682270120136910039337211195663405447684867696437635138517367096174707727584804839692387370060539209780595896351130665752419126324076461631638254474557479056698772274445329285705847140142569619632837720934985920169960545210619919701896963211551338998848152000247915299272617308647444670566794259343667466503472151574704833165467205564280236281470123059379895212744118238474887259121623320869962466607892233279175099883801266171815979705883109084435741311044476245581844393061525358032761992863620009097337709687534920651335651788714511356987168493824511134734202070013528992524187967200929520727662219051741745102974549662125275340104951188232955207621366818366204729670371964313408160970506981835109477123946566021609396350409215722083096738539641322249554015427632225015044715294404597678418716871617075426858629700644604258756598161599634688601267685866155027145706047974353882496733558846371160971611153318675614097611069583966624769005439654684328082070799886256571955433113810326161249796975159467338780457972550971406457364128828432497367115138445671260060740440578871617989229713752528224448067278786405908197595471207501765689082663995783342454327255025079268963054606909605133269865992312515480534222232279357532866481047247384181370683823635140758510834608982212906723998776027681159246952048409255579243383612495736291586180909299948232914687150209156229453354203137415266505315941563173631412013102115581142628526158873868809779820662765893663815030556992335897450657186963913645121074056531681612016534282648688354269245811937640055138401201971440299679199630137381691547017693690707619840125803821932579248391942990852052230148749296537606321030579825042261057159268876149549655430925497787909297287831660798813772984014166007126270672820951979567266527629670413857531887112930846503834170917423603203338625387018087236896091785782689854992705705956273374839467180243281177968583351161636326460016413450027255753756462149555306019965769275812701871964877104816833011601364818229762082758649818295732537780810117911273847451660720437486497447353058474837317245242632179871062489091876384588408367082463534698252298220118381733725802565503179233280382592870409974631565374018333076932318834320322658845963825160555241613233112584971702974255572801428888185143610971176067891381441511978787930768684880939003001552022465681357441767160660680341107393867682328872503341185201992952731054177468773349220486488533753061050915753346181932092162848190480538299395971823333088875156053039137298390157270419126664680617991838045538632915019706262491659039025229100606150643991466978359473076647558984552628221272271477937320489039758845354324420724530593010070594231481704311081979801482299318735329402003031225518904127461016258728101045665186281483216893150215420618659577208897561501704772965869048907075549576261477127318980288236219580076591575309274331754828129477549039882445724718739315333394549218718745310814282202689570787090640195989989414816075371876501984995448664545101406763502146338009462114045958639705524146956159568873732455545227406151655987809923015076499661631018216283493181540947998582195470799624704166951742341107085036348292354050240820671842030889850154905057293274422791865517633053074416751240007007707463005334914256955524474452283885490249550001007265862060859412016278481921963624287483366049695814863678955926775285600441259011630153262867570066004532366628014784949164988592265994244805913689553376480762074652392621728806848325009256745457179961374882873794543394131101739676574916538977022814375515528508531244617773782803835061942043142470490481418081729021306811957549988716081266701210302914454750737134966213881682602448483730875388891714685859448917289429539124065777280412425347516626166739175620190182250909272575935245153439068702951762598575823734381691520899759390998300385176803613378714827036161673554455796173283710835427655406555678952301166996469188913046846893397884030527343114357412200115329195776312050924833488441807384488176274671512656688142403535426859124367192537925194891199868770048328095120293091770199251490670225062598523660515000630525117336238684070803027051820312865558104206394330668695336059802669012146661430609177498073399414938960988021432631922579516211504334419205559856276421487714055631800847041951672960711415285382427171427810190928207340552500740779548985936484492438112831332905204556420184112170637730065294850509621932825546110760080413955688862274921686686978571826165220827200319011989910359686855725745458194008412700544501762497828388646578168291069152801289451885600512249351749189995873728477815484073208574262047017801381829062025241817401537826909724908677302646828618311714652623854963634520782645354909633025050756403691403763957128023104902888184819329932352603188962609609242001974514753030889950557881075567076339282462794484516421543457931024802146603330232571147064729675101452834623713114954863993748484014260993272336765801463619167504824483344317585735640137301964927587597685255271459888929542566197429600608611878132331249561299751964179002291737827079302963725643282024106649339744600377472860032409745732510682686931004708876625576606793877614309054052486229901420117546240149610061730674170081732469441564169130018763424010208544345596015680293292027458905009580595550040636134431823237536648166666052060379250484324276194809273160036341722684417972566475885129197388136201291832343271244444817910283875354840037371024913239916951677875712238391098200226968960735617650676382359688387245777993861364843719582028330773619331833639736331706605181873372723529943954249047617058100655280612133462310129711034603996100841233591627867887476928403669811417424852321251810697455351357277160658988308884912619731697336244796277773727275184746683792628344416599492585278921389856792668476530149034871922556326011145632211265994061982267809158139416783335043642725090545878731201661537872206884919898975297102932594137446266666709580401072578674962993600140712288305172683226818818863282757048780156550704370789733266060532258092476594578065001957921793907274143229165313852275773313347781066624144679735789772111536350400132693458632938541239818139412489527982165693258830955930385395549450169990725600272083514306414461410209448093241502495678131274032907087298549076926326493091152572023081297136721336183575397706465416209468612352663020386142328453549012163573058033228315945042634584564860593909717441046961099972115747026945182734766421399355267494578953032330888705982440116722081578983837356520680976579146448299325091695936265052176005522043568734686746759065683881822792923095898837584472780611992135727256856030553170496911301669779885993114989396089699213501518562875923456070562962719598843864258675632341199771934070923181731003760803871723443787259690530539685066567396095908467563484029996293232487578689277282953593104445376500650007334731682486326421655373174319695575561267223544198948139503817096688289462498213121238642754679364010424708448959224839847253081859829775827890765355174486677578883599946165571767462637987467859064054731498796459833474267535269710353057002006711440423818015555031174375890471042143810859807425366677989514990668385423200588555767493276412407513264049121671649603402699797462354684727984697557470273076144935281649093584247978644624934805170370544044561737601474895607156140967229172807587474996142133313252204088819130663641007282412260919397599379300218397294329737439354101518779880678462617511935048701448700634668863955408186625773164114595063734493014109571866798068802396178592040007151824645365020106421986827598184228997411755542635864187413523721835139577254155311893670029325579114594378268649735381663636457878223179970780634799499388245895322500150550722250736997154419800142418243064052922448738651595661656331840342104276693447981400115510731948941785734294714787029564160590721737186309398341398755377011015854351975778180333853520500597024705785892424779605554582617653486187967656478281956882657095735863043734003483125038727858954260308964211059623497762502189410095160931901319518863325353264030294871245661424352955759732897514226375511390248198097348677893777142509912185560005018029760301386675974835605008457366850358651531231593415031231281267645208888286305506747279056885245222132936208865733413083999631393622937794439448615592517786623146074768642534651524967202318569078804000383254060659165697501613763764622872113785395282325878689323266398621132600631598174123913704942589733536063221752160269068961915758929309974903450338272092639128782067665764374275147742992231597868547929780831338346401544260139781158334853444254285979053124169564503777789990633477179288694584714569615671136446529131328318637332857651024891404035904166974952667626480517487625225666909760031842901465729055089613646831859738396795143006687776427087835254731592329152419141617726526332734086165200178476544015881140710009259718207115005066720898288121575358297450251383899709381426771383128959358466663253983824594361369154882072761239760593854520547149037354551218319773259588935023772993739808645576136794390290157470769120460963352476168701528826814180642847032044908094485319984589581611540063818082292930084847422942305514523985655464381588279789758639396285523971988745602003818626867481202867850491502806668799792425639860317250413659870586416435880322860560648046017266951029131020876565365708689618843094876661589350883336123297272096582150545026977648530692435120164219301046838084103506377857858689103382794468778232422464653816782878001628708775595865523737493013469279929694714380898186029685676897806289508777761104897249845684397617504078994306631177444473727828306989333960916136315904869410331472561271707635550337620222616568497132400577310352351629421951606106165976750717304736414475280516633152544857515587612261344200417085184711392189934922537393029155157329024734393452361511920454490484392632822427643345647046478903049714324690229743728884080381323689276672352081954545154083383337784103399446073773461081390716581425823520240599787409434514838673361338160704535851673311617410541188831299859005785326626631800946433609282443110819391635426133364387327109707551479826820937577891699459055963498363791504800818940337901153245666625607611799966416589095923023678380865115239817688541911177994275581843437012558739762380004408076820651316847301344624072396912572820431470518997930439119897647769234218769582810035825736375047127532470246390628686254321234198471126613890460132013591310948639343051888845521829086542456624694625330042977812292988641158435094156559116808945705989898710617754632869716856545608509661590119828272807697580272127923996774489740395045216383032261095085286180408845115890001325792937574265288854649641544807740681179762835743571144565635030117467694425822085252134440075103643677008017734586651463790382251769869682124836319220271012371417721040592372823706307548769850032659454022738565332236618350151853303594026169573905329487972841481326321012731128528909321827938782513642860707694968038239469210834237112538582202828552410621527817938630929392498957698673848037961521433925390720757546416751610788136553639698402335036224094080979886426024895297180316163445975574510641367403397064936275015292510026465577618890874456432565387908420511324497186151400804217850836832305357663068060940542385197613734813875182080182326332001051104764085021437867254711215324516965573872630495265982755855797784535078978415611678375966373673268374695388228601880218335110138621904671639159819345538064655224183941351258424795566207553940687579104459947323055943520267778406982539336984590258064004450787780903348246390615816475884010222779460035273809687566700176292934632798632748547466413933954397286463542191388548402675492041815731441943788827175240888788458390159278489669064364549221146679228315126511470567194397357238307823449788145549886777711424400303773629218109207903282276109215021076755422073009810432483341160859240478939501184927360673211673135694541881279241999267847546278333417090599297628776798211735020206506549092506548900045238291719336413439792577464134041915785076375560121117823453794452669346675632578281845349409573878911286968615831381127910080628374672267815661930254875699579768796644888717106390182134255481720958530026424568016517068220569884114718155708610751626620522016274035928513525812479030167206771870483975406705577177401473495727620936095784480557106706317195268360314380431171024344678357550139557375218314260303306204961490740772240135527310816233536934723964891866628751329590581266203195004618344524009256142443840957566722755055460528608381563546179495361026329612669914769348665416069702466137478416420711269084428090779109365755500510240055202115117185495064339073604355743858868969745970943294166977304600479917064236335755747031339059277541269068811292151961824693720099343960833517949305576114280685213438607067059833024993040658262034418326278946503569648385112159926772911531488277944952073872101495913268495213738867553797208722947460512191592423503515302214563375433055985950195417744576827921041882009445410507039079509593652459660722016264906880979671800118250537058735093542967375685429389703564221078182295842856155736181268922243580976730962522118940380135607213157093337143868248742873950334152885948645555689155036727686764967653389627753373664979613070765492477453247830642488699096487407696122098583293327804967766033603230208567255892312665023221264208250567929721762230941123369933580657134132644511291786733552252703742886037349711845734532500497527398033550946668612212377173842957106160253223907338778092462565417830152755510431179971099826316847451026349465205196745322772966990107814023299365694249736663401480948982617012225519405418291635059125033162345504198682936768011716970280948082864714213395650018604179667558923339582584100020204601270892065542226902283375462848953103546531166277458920569270580495615742221232136184283210762847256349650193880964134287575171828378523120585228661348409480696846409377379409596613567483396924438285891178838054951993021764186336837785921743765526777415908920751642181300435242826337020031961465216045925678483045219019971512347988966993975048408723263869437731338963672316929608486723291176765572135457942369129894588780314786381604090287198404669632708188806263013624196956774896683780469577533632602402806438129570042238564478230429303057490041589044548536731663219431178424614222766753002516579981606085382199741870205311098601569581584176842383805207150443620323991579281980124854552986798747455853051647026242323086397291844736175250235784221733209117599047053074362836261202777493505632571798990189088831771236427879997453426901668173139373228714488348338020794495065528643402280962319290072496304555171226649361129709097990058386908040973534840078681128086377499798280885018084371278587584943703923385066942476921807348862619974991142392115139847567526713827261991776217841983985301810290654643170187830453982061831321572837890834982295334196297919950082119031395125935686844144674511889858963281127437075779340091242821568191737818997733456635533747011246430866507961139129950756606845973442258150762062059910722625883675216451219237685553271197768663139560410323798320021525130086456715396325541149581169198145555418085662006773743833287539364978904534335976935113793409927817681413170872375726041641133136982763577750658421284761993233747592360191963179347727028807411947628954037795078845460358678612873159254527393990379123562210012512324171897071405086932125194000562308055508361580580587023208555212649737234073095199912646476649522810421275056495942857303486483696899911652169490991234939727754443666451286757494700696411276986965354678878831117936620154246793212225759755003843619200042866220183741823028165186998727611954202278164016783199881399451676232385671073452826992282925106508173466020331031654384081686169723711516235693128370739478024087095279190865526464652343429861389642273791372203262079177697610617390469687905029446188651840319415722948074717679888014861069732742315405132012677795258122726413876584370401849558276431731986798953320319153517544144768090999285931829758135019135567244865341160540594767292855869422533294738437856006095933857812759744645306988014991711776861175704336867948736629901166899779872328927163900392030930682402272083574536972313600995436268243219590141876375230512895105177183394335647997579334830916293791244850835756623359004220196966220386909775401541247802604790918760563959027570758784892569652176961482186137675531139467434011747189239093414749890419653456195749687535385302121432644870197362367211593148138928322771695186144024387994590288889253130253088718380302941724412771149662621091028395193799505936845906132950834189755783836661437324725334473332555269048083600610311274964283071915225910147873210756323204158782548451243237632824795521140569903040554372352973136046616195164999284456079440479264963227760651991646606322879152615756644638602146019600197048054585531926378228737976876251892670929003535854991016274092703780633602398109801060356251264551261005508927344016090251267228982638533573244231659670339847187384376676934049869500422702322818696191675608432582269921426503816675552197760477673693763196075939555408382228229058954443439862721669679182184201933423906243616559925181989862596103323343280350025232858137712016523239567342602748096464885278723722537831967000146622676449896788288749640728270983311569966082012914016419980542524488087091412499133569829118782601203102926864096922547529239555357449376874589879028862819932328864137607258209059896703178480949987887713128933351281505070539450310408148038303791798528561468140308211872743443477619643325605300878101425281412850776983680519759446963530724799518118836236320789479079442958561340530387246486459082647723579221936857728186818756822971890703708788062874157591710431273593650910791723395492696910791095818684011150029626655240122652153659109422000035568674674516950499217667925752755132539399884422088290325848988714556421969394835624755840543477483497447209525115968776431077210137686547244744772286969516790845313105259157271422572725527090563251840303336936321446319914426704131993419641037703887710675263746010907663659991079515838703052695747031547828126082273085839727200456700528964506946482384621320079109219202154064385681730856638352267030880815645112867871737266196400269490933554644761660386202984810020090275017935681804460468167042939864977918745418678000288367765030699147782712410254760804606979581073459212524234794838530243628747501278140360438133119587368489822791123926781782550989728307231171085361814687243807486382640844188295431956117208418517726338746920570721776322078238580775891683814756243287156751200670508364952324865922448332482436100257963491324796003878596206167734982443458897224196249687506504667833287320256409492530368157807150732795093036831447558939548544759715708834222874792933320642393963611210183266872419073436368744750402807399517229505695465254818305308805337989646265777932520873010971027308288706603959090200441261629518955815066503546330167481182093598594602243475074103067203033630412449361989896082667207605655632117046712851007688804842634391399536067953092897316611418032443884714591611155790445724676959023332919426626067595565911670947498210135200915553470874815662250502863911747142540280506626230734828395431911706256224951135812322146032697703380187894790448511544987068162604798477954568983813847679015499173292746555469925464705349788161000087140487748822212157615582330751199450823916940471200934772680247857834152808982097498961377644507282125388636563915973187803864314609725362661997078888200943593392814429705422456135403794202561741175235860850654394040566131598591025862412952224835705846406714368143191215894198846338341679454933020765523972722788064246401672662256411168560321849028722209679555586995725524279814640621705276532385719918717941205347080654068452117324595458510859234427500612902649321966556869450752470079340603367874087489888539061662651142289518310852648388088608519745624552886621597582057717526719607856934990312242877295241890105587397166078403961106524299188401551100523011829201408605431337765068635972075619125493291741029827471559423647125085306992091063816469382753886232620418843609940207883646047526459017482903870144079286780516014236018180199167382364272814832036383192235405081896488591223888628061824631518935314667382914009055350944986454147538001200304708369222944879699269387471100589426419854703621520396083065886682754169721911462306216130868382006670700482443969435475105442699693371092154618572962167490047123111856206684662623582591868298269238234813687012033661865263116356920790374099790907902635139733015798041023112257039323578950624405271631245132899341888921257111740166074668453222171615968372832679595450874572042401907954656279056190290194207821829118995142720727008530718932922556250152546458684790363019373988611144119106525099029322002634830850519092565109601155703101085998285905397015044067944004049920152233644357192126851673531759155741433797734388276611662870875241882954594826032190698213253222010226210412234229814981255825821189363797265849818430161586504615442125152438405928867502615013795869384534957892816257324453540200270811783570605601229130879395686127122502280665584752963537465109422346666850068102797914791809231292900450142664734130870921582418749044490966841561451971634881685158357645346312999112153722776306463205928704917865347548688650085297245565542758390797187405759047405192392289414864646064668308196996455621513748381762375762838341490427988241641630249884030463194328435959017328477226565205819249789222623731948611094637448945958079880936448856285844358556422809554943185206696063949461623925439218787419418248609944586037738904265793097975640496278049736456725117529070454629103256690662152791225060580215766110751422323891236684809264943965508257341442681193387766803161074863484420394426634817071338433851078629490416729287624020610359980163470022159693953993109009959039976900158373221255137272922355539384886005203519543210162099599466973747929250161995878282844677090709733487458166940544103724645539736511844123324951375153144658742493275747881651280985872596796471363364360500579517428039851315892121713963619047993559880698700098166444276869722324711814225163015419399175387911968005191994981591803265906316126938740560980528063629762678036672287822798736367874564946409280525772238172880957492708695871003658393945354337165504229466802815064656426626208014289667428380459070742211382068969169667757795468421002536407866111541533936317615993874702586514373146953444921803930146863906732224289876814691003527420173878975452400572678455720306299319908370775728467596741366992304000500679818933360681875312425090932400780714983985425248724133169480578599336620864188303350497965425218794248325627899564032905396314997443494346001613767044506881991047427523598517551005676917606301107741047081579755557019365237553118423775823353518827488126144776957493934872830651091822600826328314119488960332970856884239788899291523685943985704388010362254997031473608478421026724953549448063908913725203073149990385885298227313246895275305699580430972543438109073817293167352508392280045684438216774411097742226417192954374593762111568827460304981660479601253758886644944728390577989323119493494691124743626095102342573615055840693334062484390367538842125775867161768158968419963278113081912254968483757035303208930061298777401876702115474118704029886467590653213224821405599448528193027560495108140947231836328351543008657966621848785321087817840433401453756724058894051306770394324606524964230761371476171753070420312928080003714970241088519906087292918936538709339613213041779434444943922422628155048007842122679845707460091976376831637794313457734457264604865280505795136327325420465941871397555231878917432458613063053475645372645268236841095591525281502307702880458626218057091763641730723905672548876468964662963701506265328402588373495943921136161872240894932615753751414430643951900252898785645448952124277919576578380309066816443499353563024987048039037424217966328703331907699962889310909688775224034716373903490906763322603838879109955307885749873269770262979066834238211067237195924457863862360271528457714322236884953044454560197479071326657113719535734722536300718644534814234765630562287034682544203428647631220101629487252622466620175036154804629729406123129432974948222511877956663030956524552950748711392156426520520730828943276708953518053807926695940082604126069992310159292828535655886078660284440030794209423070074961369566281883649014973664133063657770054231765757938153794849084693471568723194001945686892780831855331213046037049334063190284987942988502568912789643460686904555208459118991401130043957188942520945263022306168373466286407790410977220071811937869520351326981537058455071860279384215932620054897200188094789445324965481335756383279201900061299032087294409002048148967699116322590478823633709346212761361907100219974547009203278774400794580637447687360104156123091434953903715453443358974788727645405679975397092608268678469652343350881411312580270059651902843145470650113590154868826324285832258685159518891711477355386366046742164570576698767862296009851830590237153622113629470071170073812755379407100181587172727954514498198863969945475962443228456891808249012260530177083016841995709371638468481406240957719442617219359872624984461566192802692632055684188176110821024960337353594287878831409821475120957552149712304179714758848322601092284310388760767507217469131562467489442359129714512130752457681915613007402451870996082054759216852790751102546247927063212047444508044730485736431289938422451169654355117796285499710850748282041706633650705386464870894650131473126220767524342027191027099521285735233985192018784313251342151524887831600674496988627807307978285500472146515140980501298998793614745514421510168452632412151587511274278455336211162724479047206269194285192272006738972351079347814815217267682089121039438258750473245992489199701962632159893830933875847706195214789395271220827137571073694725135894430186447160370858100549285370512681144230143001884345833453628487809293921451030381602135370498993630701468361217633408563411997321677306737920293791720925436261865287837879499640535623111135033338280049399638563873201657524572220156233551879735452310234325912050199770505756818805143888596127961809073294486181408981426655287912790845390043761294020746972077164724431775388732550252831853078839016069072970590493874586805444148403484821360736376980264027927202068384601881253867307839156013598377521569145704493521849968410014605824598560743519132772258027505047332869749152850980351212117537332549900609919162694954900178214544012207710841205242559508210559575988685977709277076917674517084319797446661165291270242571351680934284904921106511061637624029058004283600704639153103013000252330338915253747657268465130075884959484785948444726214852402435717172934452661806823058344201162045862960918629829835262832636412759075311135915996645289671714100504244702165479778278380831440381534934996887786778352575937608099699759968538027373664616584555378487841547418716060217540260342029016369880125538874414278003552405272918876668635018015299687537442844789873968600317352885451211797353104538520401157523570574853019879137303238704051399676302512375769126596233063276935963062637178588542160039623864216089867813200583222755218398829004796191661431739580049859947325116348824152589168908379993397144384309490427887108104024493211254538745877266196768402206448639062204804847924713563429998054545382818053502778282089005219711579007748557153850250357261416404843360445676387684708304564605293131658983159523757795384508318102658235911944526507224329165743884542760493030785809903901041823251255021498629642720125459007977258426061482467841941750688893213594884574549335451759796519556134733636037195880177607363274058907804210568178102712729088784968722878597902824959065776500234106208624914068785083712830002479169177498388638782371472592770936648367707940756462727735178909656385657371860405682371840948556884693559129425609278314835351608621916394552032728945811978797295244145068297692088384831319775607782671803854602976123927076250077693788951508044701734088266644800933692296509461674721165057757193503580045483807470304918468233876348697898683671099070206899516074091911959791697255005552833873389622138226122817941989669029185978546365186144439589026658949873923486033307522230894400802538232657507014412610519087761495651215376104630863670852211502062537987730428429509903328236092232914694116856964304900909985288507058774049214825227634906943457882063305184412802873285242923905245263127813278984279284317321391274225665535534988430057762305265813665005589335339412543477247655445697895737789223691421314422129442475243274925126570371080639502865268304039994985116898578666420297459021174617279768180978063034407757912537155015039593558871921660668550079888875534793171274618824205271674099993434307461348633725253813922663705382786958974603267636291883837320535653098668636288182572847492967144669456308712866176114358449819316426419619679210542579255002034856734596113254240399589380910429489260913197837140204087689613780027249310561080723601081076803650027307708685175355128893646278507941943824492531013708157310697481268461132088424901354087765660569534194054097636461824398848729601638062558353439163114161348621909676886898109505121432119248040575904701602300550367284257418652940751539700558237156589757408222569494084845249667336425463985154535829292611861593600430482281539061245307855094837691787550326887474107735700392643195030922995109932306935646139564070402604334140236528841196304188927710186789684986774873309899630894991717753297918862409811066492065698401671643964427211629685516477562639970768614529922088560257279612161312054713389796568202488219169426516837405449181279579742678790804561405574565911596297661136711301070968301712960975578399646842940762318066133706980872525938390883394384947908623238549914334584485374742515710494090756528400242281193696615220670280878291418242498697381982406742084760748152116687337310042527751762864003428792764175015072000477842380285633760209535349439708584736610934007916443370097453807382659388964155156705430435241561025297534404362377658714334405281299804331072504469726012330309992207810028894901697104768410292168189152790491019789612042200545635135115404702487303458632615890627040510004055294494161852674678460403874222523699935406743594683757506346076981706894429557791570653644144604927017384376488459090159601291849622309762555664448375478422875191380332466300042664931537891911931712806782898459795261432629469980514860793061439626162328870501378008342344516688561889548085755221325212123063634008400242004441835335431655415876664599573312647184677262796744276673664213427738903531656007221988112864676974840878384835895225898003113374661314422627227735751730127900305982685538243258656650334403603283459521199869618015773455159031309866153979971102614700398802773946166635326826366204022264827365202663434742532914314982210490656581218894458797811365601794132177414678900031269125591515228673903435557909868317151433905638431426806373276348829403230422850360445251987700001527950583651875631509037678025128600984988643251815423536081589806905155295053455341681357844081561178570054363935730363022053104317188328305579266084530670982177156598838356751089685245987084232269552675852763619943205905467614174321630254557837912192717234475951097530153610437592822417726694999974972281405322846583445210765154772689680130029514062390239571247881358995113910082334508584324082810077295656925330159976036579406976585399506561227369705992607571499901602603787108506527383565340028142264296208470738462174721204971944589210653763562670547919116952713940186332933330903492933130774021718847250506217604258826504487480779011172220886404727340998766806439155383858164714760373096134927249870670501212024165085163600833220711048629836132714365650227746102710003140028129485221582304400598720827670218997859267808581047404480935959115350009237442714567538902653127889564366907726141092146233756697754438967541470348303362982591882659913326805163366854191532036485352491978889998650818959632409045234796157857539460814692294172221302496436215205582814528024271991204099551653340358071211144007993270205881739759757958488507770520820107536386027673649696150224776338237765034833617559067482584521087591449180453646427711330223175462288651582512387902935569187302375161490711740596913038527736782513476610458078552598600237269029555319468510594892941002810191505110212460793927914537413670206438222383106542031019265813715988182870894992860717420498928790507999936320500890652697369346390459415086292218396020637179448900965200069615730934843579430239582118254967955316139598258625660551280484684272408869997347953431776589162771820439696809730654521426656087517217726972568388772997125000649910674623861400196155038630866881977046635529342036933363558177302726188519174935464906280742052477253804304701572941584159366849336962835089828670864653805544300250399659733821352804936433740939122245577859865527673806814003446726704482544678342026649442657483564726053922788676599561283145370584492407966980630108690726948518401233661156251763807659138948784308346275334872880025223254733960678202926235928614143352627080179039157880254083772917438148503064606762027231542835629676784241831201100435480616399679243449114863446866952151569329401940193620309821419831157820516367200682369732017008803861294418384814967026121196561007651350646417003316893164070632795126010724964666018659384001897468121836205609951309691157177101107655829441845427975937714620536506351836180932439710354752315456929447904215023656494099012880177107022269496720917400107167730057848176956688352394338912421384706440290830175298261288327203622652880841435898821693992203700290582478891982090117866889345467005835370750585026565625242648878886356448637724305030477647124022578135268248229786959907879930526965680097289490532299335056673772122083432458802862275918680938944624179964169466321913927577259952176639251908958371557980279386439821924538037631721487899656270918075868596575811564081976223816097917989737957018427889100574365076414878499298083029192147934153134981792878314700043204209189640257251779943698173593730593552428393888535564036837542825708447367043950621376266559042618268756441438059343308397508946834268135785836791500006907789708973929907827376955856156002274883857771447081700963952217941522683061714729119985242536937269705321078516768206283061806326003674073000310593466710990901055652576726213494869779430522700865089673636332102501449268051573734774415711193481726992857714001706455813128789139664469078845132222452811823523818609422477909808262953885060675060993076969772399752832966621549458531614062505225354210952495428195291867832589889181651431406977625847144632937681576293798852947068713631783885357029241358117409066518952338185395247942866413439499772067921107571702689919578397674691101699294784376540059889748911870257204159113132152701882049109184576779270944961293533874317122250018968204714085365431980827632300853292558521121782088315025350691415068435193308483814921379423562445540341147728020991733796893261797307757734586410114220868184873342172270191747200347184316708986484279094807450063766198544112173738470811199443669643986165619859842702293341472682096735345963890335858838436063631504109931785787170633375747893065086236016083692676993386822673349073183122649502385310927696807096657095594952433650725458858666345742086485551531374333771819363903388581110778368728223176467964383161484617337822883589901807575467862096913236972396758502168426861398215469788248945349317800223456603172185707355421626848119353814173945417655459801393655741250473994501211623442029959806529957931280448338517603923692687637450380541206822636726297377348536403881423390272959685241625117296455173880158382126281429811652259960604292340109810810426348679703065372700221981825168991754155051686012169441844807625892184944103222522276433645640387144332855522453475688427236322413096631916753659597601031979482029933902487053691072201641761745731404507623384249814446183823348483356308344224826197854710444306618982038103152045366201081776927223189114782117193337327201744035243860874096758396653800480438378759476514152928280237850637661663725744703367944600613235670296362333146284723490542917270496414234570637488763333242329007134182733583377320673726067755825061237433215156111835385779189748398164757966243497637588349531884547506233037667367830421127559934073410774047207498671491886813023357505183064045469309126529221011531231915208062279145240914309542683915758782604602986984485457761374681322086863878089378069578258468651074260901053728652368138126919829937972896224907795923544376579826770456726289275782098135732431750549015844531579545448347725513697360166958393987940572174015447316104002039191101351860396377656867599022667801920818584430118016832501404373375731835866867078775562707282616581049077319795417992481850540205604135269096232178990182723314483169149155276855714566041204155130938748815139537978654315853776271747109467409383839193250537786686238963206120985113432936948911982729885757339077002912804450092475341863816990539779413854865929052882127314837785061092126078773337574892319153714928912812123764386617869069571336527390086572133865250804728451735224587471073950226849121220887970899727996468286955675677908041365369705006795399142110621416162733310534071485596885704023601892444546056667819035144533442336813577433291032881355315878921766704914648226078575826034517625909286636698246505547678001249622724225116994888609027167074180319894052776577522213053085592989786499878343085183781439498820627295570721853513258054426313304821798322724819382249696434627528541699195475094609505942380443501661878834654996939888543433249856172481542678005335555449516234829650136225785994413937690079213591003538235391796303421996233185949675413091390692148661217301812269061969700935525927028227185257085756368082823701178793770252618116738638745411376502995224372518394355483313802423982662313286813542608452820442605314027088923140631555355497662041384810623892766731683180935442852346397021941660927211585465562035771990703905861615378586611522892570960497460048276291290592486089308162808219345608360665379249820925661236486472635603681966251820571813381775090778275227575039564029361535219782390700672349748669795946682545075515207577324880853821386272458411297784421662495049844807724112235508848438990974599128633515201842930099151029462691764223321550867212657161661062122582640924512433262264337864899294629618300371501797044521763253973944909803459410439240056304774489265751950181424333580586245632075191358010710189901266747010506751560172513205775681375556621542436015224992764219183424709108667895421179043236740661901625998647455945155301794887180429269417195037234166626623164244008981008845945851210690236239699665919924539899453743023076753329971653891933509043139109081427687933917568389231943491762487938713190161507628391019944482405518745773858968039469058787644387514492077278504488596475483470889691357655788027730853729409171374647810924945392983733776133541257519228449970925774527186611779128189182496692187862488335237773574813762819062539044192734273007351489449481904421049876782931690808902398333201196702862251792084017995658957835035267648656651183945294107780140530499538928401946568469636568562379390407194103242521786884428003508171381643791280100390465214246822243910390204118271625513236382841157091645497130735371941649157053310281595666493996577614728822828080804544884434306900340489993501791748698057520747979420597606292247827235332784244160966240297227131631244585067868907432951531803937806660213877892988011847236120648327282659190554516974508885291982558160626074167224112202361283507789439262468949275580197232118466836072652062971115514332724995540104730251772111979191897248565536091378472417554262111253433285041154263804274723218298804648875329882797304877410421347327787359836078399330458956447903147284825115337371430638966351003355423683739583988085055906347309897186540178939470873556531484327725479274032686394373667781979897707884015868713418362049567340152253323252230070776719843375893321437694068356262977270748263578849597481124793692700185798144557988173683013677220020441537408690891682106195793696870002983681658786439478557736079667518872513675314165226721923785069927777373650688359376384012459204347472488095894285283387916611714237198096885720636770603520853992587841271772787348917290580398457002763950595701811465265266879052671237179515747031038781939844620214911164027945917564206441852769040049911975619001373386804061838404271915171968279848900236694101839199711213407059766703660939472741021800280023123600438444545012281226819678743071666943687304482849556696305640747694971371979455949103645286111220411248798717755435013450052250594439536176344777557864284905149944283031660287906949528713683616593959198629955798999354798044247984898461667621722645034035672474123226953640275990715832009373760730681912779795520697878603590687208887846841073224494261765071719779302051358905327918079474236139817529065713090159830558382602643050968811626638619393514171114911252870631098593092563451087847801539029069898381384952396907494802752218574360853520253969559736840294857373107789604689037647870777133666389328997679854126035997620150498305049053961578642011548490741442344417650758219976103679143341128873102637021207012952780255940199905994000181673057385076822846615151204131959066254759976824999741205640374039297372847942029931264388488818435740889826494832014775934853883092618359823916814108174480523806811350129959847442348596824516021450880556193009025179284894942860049188057345742073038238205201233380311848068326068554101088497345176423979473267200073947358338760316556747482769886493923278375282306887965873741693921088523837856704695995181968402654522371548208517038583442675531304233370472594871002694162716663474121479443420158142813003882629421337855113343507198728922191846450168660976106338815602637368776468061613899292500439213567747176210815304546016778049864485705555473393324817496343176300549086696257827281462334344961818623934563505434869122385775192995027931451682643559695801977528742312928128412351098040273224838590175726900875402013638830941592462135312545108964560526933869976967416545779822744345653640146496082326209459500131252209770219582594166015430937691234705896216495673156672078786426624419503502124105149458420416227956492009600045992126950553807030116668234547505380265349962260474030367382294730334476193827880762402389383068268568253951221065579874969707990195168410223626791540940819744752318578050025182816427941844211655416499213209691141605569918586037561061369745065435104500026726201824375510070054389246754663927734360401299041581891781285139841616570087411762137163016158240168856481202361591693398500124685118126443648545688798457003154310803418631814142895466996894961727143605225932088944263354656868917488528511595197637798333577957107081750264306934334355123773170354698074999170958476700746915580134521891847489515919396356277828506910687049938385731209158474537834004321085061347911416065525652391052312014437084503075582379377698502467643784354984221666829269960518662163627938262354709240380697620902205145798784235788581339913277997664980393966126147614909184026871702616692609976803458383299776779907356214958168826504493428508264764279028151088863081539109900847917620864218138414517401765832672394223895536721535271368531870919707479067684557073376729146219586755331859963549580813348778705243576049291112397546635436010347203104655265367712701375767337702964663535421019081324903980764543141277383888057375035053898372247770074381711644400467698874996034944890475397438591339041858128129629195748410154132100669123954483519078558831378048522930586528930192783758417604870611240914289381980035384672735276186091013480781703951811222605797070678813920454854307486508560974412529155875737849941534036171370338205760828576668368857903909340349431293418259768956539260490868805879446192455653815257095983114622786586454104766134495236099534585785234208758186979682325137799823331141745058915626682831552045592927254301166310733135509353633766537729047648059318196213055494730638496143955984232078686548170694209574591121285949091118907558663880366252306853244824075380036305885478160548293827450167552579593302143024024195019854036568778699789838855797980088783014014471816607490048521405326826033557697904778085353793459133726180726984792410937099069451206640101365310624564959162973246248273337689032178092961780345911838030699020659011432496685168678197335335499209187805845794571108340120944001992304922374391510256944634364365959335284899696316561442397843562047605478878518777709624162278184193236694461955090676476606828368946246867318961798340325028273392494400630910688668145158078376594867892043738549207930804194240655282237221915212778010561248349550524534488696292032188024807708398933662477035150449619102193929464371840595099113737751307324191638666664657576645234214954469067340504775573856618599179328236090170601256422380320111486728043639171991892702747805301972327351079369306844456379790710554013098826120671055635737209708119777069275272529944247398800751391786699467526676720971270415212099725257465224156002052277714457026926218761986562383486086662753046021065622314539875389953272938340455367270228762378311539964014796336065076651818081050724462889673415374140879811699550419414672658632532508721643125440062773522143461510022536627193682449994523394214053861740126375843869112297097075545166999605540571254077065530638841733694849555221855012148373073859168845791167846009738437218276216570665707148023764946758965487317385070664520291292091965369636434794687381322859679205357561386110499756826551382546104034316756121152498023219747823924302990082431310322892067168145044219184704529925463285279448928501379967563115195556797062988410565099933887221754979089306476676855017849023193725525427525252068749191176569452305782782133308676730151027871486037463499898238719008836603308980178517358583521331002757985480084574653906476871789569441189957891464648701383348545825585290056123214779996367927652548862131193075870598995539750765980092385659561383436433761927842242584996769111922349492142692162886974833665576367551108941589757429166842914800449651520630509940778024340804362758248526419763902252978573774014839790301658411940494755774405601693033920784067109748229024197024029568094203799904326719750929711651499526349562861530850266274190253656120384826285677269477312935105292372712861279953346867680155668245878550163631367471065960553243973038428761745388871415297284980706650608742548381285437622280696817466901957619833144062782575663940135204739200200593677502029868173118480208854332519569194019280436051749095346318464255791968317051388854951184319245404129718765940222665882710800231093320662896323896868306970073776163077717954383174646922898999910181198557139364872635195770775250553371857916935774535611516337135783324654097612881093498149613847064909339286390195015169724611542501836241333228100352695674764679453484089470287151139075437580583979438503072821471870151735734116819754073269971896718882992294549189753389423504977266481001061185605622212515993993470925756468485611292662637503280478926553778628502845227168030996365846040103755875921630777853043861058440919911432999913106117623168839809361987210875933908606936564358179318735042897216896983154973210180713106015520524088398392539360749465861454671060683687976937485791538852441388278033055508897578956289062585831659866597736392578939230075568937991042944381619144309144657708259196145145631845431085754796844214638559413038791787373543078374154571942404455727530595265345381358408248356144877440659283677165491099393790596034087772820521700648613861030033763935895468222794935879110480136623002959100063568240386956575734388602588445175562124914407120548903011413895917750459869419325780573306369190796044028363960278124111194494026147555609526569100239933614514470803822639091549056960081531192474712669843083839406975019977712598082638225207599612004208970187426261914548416753878641221456400940618940897530567685990495270523387591895017646807649581529028236374944296621747001695759849639111758343176668522538750298804765090295367483581076511327120884067604927336450426868902540101261973739306420177411121300093680695948601476226198114741149114947461238680815095869624085972828851721024168086284000056891169413975164905416840962612536312259365625547550606031384665114008191739159528443537597120720764844769710150731093646976839423252494055917016784059953253095548835994166830814404251653280736283602800451913786611158206087649506283914636193251236077601606664785526519912002190620689080538557877034587969218829684396156735400649357709771587525735133961885973960889699530339667447203225723483214738380593539808523942316954867394822027856588786528728823497250000003844105461056372513320568408638573362804737564652364492283629230617398877961633418044144911464860763729086255936623532679227893236525190767180431879893832849001501548455655064578372238588427690332112630753713688918535894102218704052845553291637847374172395999641287728114531973062949830833428577745418142598781148644666033781040670541586178111528607622598818203941836540960708330601249199013514053752670250192253068197648889180926354356133435161627512553631222241244788799122823134191752101357769199539853369880949634019883467093816824046391014042534658621696771305679373221834910769934769381089094217706521388045593731974528810599841210027168216373652234701222046012999650833933814094226996665082653125796920145872418160670292567753594133297351697809030855610921030038415790113176927067919177867732864083343648424010489334342268580805844801939916036693492983495425532388360918336365682805954298386663467283570026126181290939571011663264696176886674193731699020229893120684047083691755522658734331904425794834742286466929631305266742155532410854563726464120832358253629226960810842952926179290651575636950467407375481190431113703253425266693436701322040183805091076867023800608777486071144226065976389603512773547556408173656328782282334886171310951266088382653208493572687200386545571895226828054032104731836822587251633015886027502027032598768677049963917414081513834502856949915524376169518361389659795142954127185172680799872391531990981686037298599487918457076754249430429125859829173845242003550314339521045856618680560817475142355062025802772351297266063163149272730494383895097218136361753228697524606222232334484772624537188964842308865477648539777600371126980193218431990983191110726009243964369650865178460112590588775170704370582397998539849713873489607426063724640244656849887852095210540372163207776979362086905831430363029757403731627232402353092563020717497955206957013031490811910286118961248565626284226511780839251622699007560394224799726924552218751026142992260629057791326918332454436441028317298285939073732428219386991888029471119320672981139250520697004825043828651942876109163936734880976155455451605393571478185404459317802897754116826261100388879979300886636808246500370877356505076299945341189992051856099981205453606074728017161738860866301471284387381419549873963068419310359726324464273861065876588545515366468457442119192027818635142215815424021619083461095895332381159888602319846305493030792063133965682522224522796852751329357344913148576447795756497532803514053695048716026550361423409022728898387784509510924307141046615668413428602763703211078028500085078221934832738932879228044860732780309769395269538212663057313308105481792085755965837358139602620374480835077576634875296306483312289866538940248138688712562450215978701372896164404694543429960245595813460928279475462756497472981882223505352892100674422987834643900330346596726510508019509385813695403694410412293981227466246553945698669911130081563155755878185272311541766460060860694495453249732075109585314168785572759365506822607794315517950051545553225267942274563390728636010314499939683482954098618075202239285971260696224536524579142375275452458706731946677652977481871406502284771790756016511213666841183959332766399703062792609080682353724580415268639645366049485995999124935198773546965010538879725483499794037411103328822123107436904384323796006460574086123584432954631704178720056004562351376341318856953845460104927126803666200575393576474765425315015941593402724608026083334591889076726710647478296982434647983788257175187758280716573932863373861506731650578139471089285124251294000096378257250625760963361272146509190889277600162830418918424704251799340235970219290798641548432981688984923411403576460566786620580051394538889002345360989071229788997392191935355829219214724399452002290780503757154633970586271614878423852134334618587448257045814774205348121803007680873948327929620341030746448739539823739459965986904079175999114484847494370128319368726997890153325400446807207918853489384169246105734777106801986239824803570607549232903174897925859098447030236538570728958208726177157184523143355763837980967457156944426713071535752735962387880546332794349910334093358368804029615574094696062421214901406027602635631562630561055270470524309524949579295209960035047401478416481342655238798757025067473025659071617103050766731614789193047487603283921688034355595475829696167250472246252592557913795595597638168141012661685458835663930886908043459259304811933579990949572890289492425026227738851082876566313971809131172673700295432108903714631710511083458644249844571224683955273841435167318017492839493638546895620170085269070454385067815196710037635713192838313529872476698589365594542608010076594499477192804502364953695129160305705131287198954817671552121179819340912487154103602216085568522640207257357830968883556962920317446526774060557362954452106452902216125334908904061196195466489868524793410466635995703077615591544834337551812858804102450809024128799830725757109632753551878468253838522217551706482911185726042047459863019562013168664761678933451101591310205505808741604679628068299446090579190767977173248657421770974997409974425688789762547671753487672864701571489743123738980793816580495793055870241954501573530304653172721556189762745111224014777514953077505896697701677718695175456496823964645691300693194496360482937748301550984011794924090590496033046343683138826554341215133399038499313477484656113009450025151094713272496136694078701806971418606483639876580765504267224039320275731709243864138639614311652672269916352565103754725241321543337421183734777680929850960341363194940007140936052943542470617823297856454905010368908779293291615803322852643012086607443749408200609477134260855133616602685836250374057625593465566575731198316142654720814669171602675065135856493283273175283146247021848548579485046644998375567008950607027766277368074131871225316301171198791639594856019265341813014926093935030423605811458698128973692845220572934925723989232667699194119157865007194996037742903875796036968359094213736303343140176751564877311489442661820739581495179894607583559008547713204187255176891831529154994550789651015590049472331469534740919896073525876226614756984844985702216154232713494913911475134315228864942188618417987826175020637071760340996009328707742119910698575001539849626741187906337914578581194864982740877827675832472248802899384400788493929014343138524496257763752901896151196291646986185880962118991128590834927647089652687178672379067000152113525608439884170240734888403628749136879484099403275280923183045603368702599822349757110771172993191113954317658450310525655214088690249524191225331235898063634980641694092708633181453215622079108609332617809723339598872580412617791367133013901588991519110877498709714253912510821366042771951011824501309811360322864002462100244733849514988828280927693844365768916886250236965046038102738822967733333259858392061069909142514351508303384618973084830564652133759548646352884034913451501755325188354018420312640943905897360867885827115630717031664610590552687347409381145034061769158963769304920740664163492522911530372006022593895474615491830820347462939092398691057650060516972720246425897009010709490924299296168577270721929034464493995243131661839858244713010716474609473306436141783160325884668490632541301382031038623179179863933134019073043684347795879632766583933976572419217577032218013171193231808916044801961357938805731420592005136162870219197335059841320911080960944125108429154268946635975208535577116593354600228684492410975041103097038068452491792150131502728255540797308854976836476510489241842471993891396750641941694091347503434761375173218346422599431525302595953085514482318260909189176506617424162153520560720907572532994378164820167966038623354561064866799412272896246690038222215706647137159670321116669234373578596936172805404979184111427114158504646494689598662773587290399719789609726742936311889013412261527863352634661452852395352315946093235453590399876886895929437189062000063397322974574424331915742261403212332111492834554509864361380152973478386100218439959341232443274511409988059553634861130112811748510026554919841859568598789489482521297434710643667289593373629391787938338722457041597466399981436430732066051697142405941572343812212020345944546215321348899693966877560053171446553693064101194668938665354427090548973415007676468733639504598286064283133598819618353608347936976210616317656726899659674740248868574995404716802883973255697737279503910658197722543826057941175976923231430784717683900214549257517296837431483064219278938897392601530923033055213116389372030727448799225438204030643952537330120038812752746361392239158527278897660301417138280561546984370284657223101104042187148020537839059428511169808227183457950727780984420206567588585696572539805569947873522730612751894547428627422597139066965781610980322588913720176151061289642227308541909298658033415109455542224089564035631316231778839695942647477478116680656842172921266274690050528869271596018749634753984578579913775310362242720477681177897023223372562742024204641570820331705648384275903295526546829030098358047651528432020931229210134317253958681109154514804929460503670189373024129199055314349222572820139782307213142677953608025830190618591145383135259149556831433470558444837132892560080166679446875214186116968999676091853035129932309127056494695060047162708200166765127073139115590063895818563966408759377336697254648494444749210894505024603111300499870111860957587935342650402173661159366841397124215681994396792316323656060836949167557130640368085137396103223737813774138796441722590624513917495878237316516995475896640189557843708136151936852668835391369632224235947945211549092592397570707361759320483841357175752969300945103382579143082267583351424006143533163134471239483153644520022989708589814006333161934088201304139164234912836767773877105893141381830292785871457413134424859639544473332167515589915978055320172075686379484472717248123761295318494791995226033545431900975287353706728100106344840775379627589189954308073474767970096249018994525431731157319470839342877040727370607550429182301484346517448111098068980284013633774996615708967214192984252814513111713734594889419744294844886610199850301811338165924464013943325903587498771790969672639544958506341993612051064150870353764903965684922240042443465244705855549045878487265532917102037900202907867720015691222944888649056697700234145731388780205304568905298497585444605153456328453082886086686755243545263884683339971995320077578930966609772089902517943928356213599427601189129192548654520360457644026010080171272823537183248828539146920229345602278571017954668238134172071368771786070113292850408036339517145902017396590713123962995779253703645321527885137882156884889264156058556099009408055106665583419046865956745902353221631224397681783558004648141662197633257409545890761706215551145486637900963585309846317955734556290448420655685869266081259750174154663266821697178240589125125985376737887276917441442222380785948886159411897800449665988654062873658226524740753864448475735917487490339167283061202198981732444548594048590366691164785943595803742231937638184134276629590300695980476453111385313971227713249564754767429945250363202008435602630796655566191102146403066642615684648134015937969308718756405996346400832391588155848119661182070949877960541781100954190802763870647522171130756708013478140791949463645955390090156730868814367204498147290863606041253159976686718626334513431974222284752661449503583466680807000089417474338125498974240459570405714678995279813597609684750026856588276856873277944307478421248793243795471740167982784420029577731763091752870085942929035945798298954089257123685008488213826156496175364725084595384843238759518499958448291632463515560610023632726696753973178104362905227064356585552090572399680959926219426867886567317593998249399693543129080554590036042776430299356979721477716650203265004316137998260389184258782917013624891568090836211758313768244781906534239165966169034329506696031003412717419635069004189642406581411982848535838794617319934230144666078897746807533250005111623176567340897698775776156326067934997513380494856229157375765357559855189619550269451433749584892661062957638673052108301184488265058484409436885356014892958344492818440004845729345303618446297847165387690689712549114673995549216700351066459695900308307380616398315125611458998179112467835783168612614383462498082573545758441887660924536351502174316532727779720907278687034109565549147898694074155740808777897770562694784211663307810341348925472318096135181578043403006386926330865274908735820445910422912092104948368471343677957409047623861115936763866742152076428890710706416708609411567218169976750269552620010257226037359851624070726781542049298770507994755913652751398625555872464353403702032250438263075335109303752239049158593939825174351608650225611477322749531696607981179793806537995475983701348132162378237499576392164515424195587970784230109494540282495298121221414958750698823670331955884617939940510568992494530561358218507231219786992482143475713495525793470754180058961118374461839644265844271408262196200698698957020314102937332507032243500645215387789659551458514937419865087452950041003932467432101962694093240078244534778969873669363309882985202624209463013817822768169248958240582914385299024390336328874134417442782755737932189285097117776645129640809415038223601327081785903764529009896949816437756955685114809538681524826171189905435150240363543547898726950795396388125046747985049510925404808672174740971363032418363630105538327761387854392449140651741462472918337994604432989544857961272045599536597546547479803969560390904911462311312325547313610373740274192731098737606585405548523834591381108564558633046840552465581898598389247578926344867635954261710541536482623377288652870033220172535944038685475833365414991503493919364592860745668391732386028678880713187326815042123392216217692247693289117405957199374477660994837261442591180881827713981309007268494470595141409477568159849974750797398528694434996315075972270988070198400079546568758949665073388092972389549075033399995358772262315386932264260088640750004793366858407592337088154551415941450820945841786530298620437951712481668154821948386659879288194162796715439048142757063239283411300416735655858165839929008811563005553288885781352170819518570267854969330454164439916876516963399190319775536514926317031496143135707614273214280843387230739863157015189295858879332578257787895930086232415889237592708282786284342726735470644997809329084108990415962593336085744129164250373678612772108799522802881775971870559303811667542774406425411906696022588627390829434417467860529325570168937417299433214574470041267947973349616993304196523309973889433371870135791445718905278723760775342060885233525374793576636135816404679943912057823246768606906418729695996391225610362792076475793633729050375968992267377258451387747541547286900480501145110772505789119384661033675047134426342730927460571747252405726821449576975269703633480978321839923888504529482056943872297417437150252458850448296351905728268183018789292398939601625144000902264826338210353516821326790184992021561077009977143573239778148568911357183232749989637015237309521540488713902824757890553790861496858854261016897379968179752067497701872149988694831037474624745413939046794551020417892351875586345712130156949634698486887697593637557971625548614498058545514539464711958426573277135392750605100908421357922417330661626350389289105176772352259215972474464588663812139515627134832344279626322562944052648817553370942241199049548311553140195430002037992430546825350100477787871880461023921698303755925113748588595100966520067826976472427570047604101178990783073955626523063413668855896963372161076457789597514970655546298677740076931408615371646832110086155831198240823996823101888219700978399279404046835095985116757924858443404650255294339232250623754733841185508945436258651065378572930656809617667806908388079342679249543094224226564894078747879910992654678169709818014463695370397005262279304806710585515718689037621820722935568510522283998334445866781929744957918348266588366303599183288476878291788355227665643707937489510054693304766505267249454205200038702777046147216480394402740140219438958911415296305177114213583880944926413962597714252257106343962439701307798216170998860685516085719083130585932064116610596534705422416591651469137294073908123004806235621048023090376394939748559305015981963880127683118544899208705064531477476377328988866469041879068248018715525247205438550535774472922033782002065386492964747605125244831680852389118128079658495893190594212801413813014767160975313565408680058680673041390530926316475995610934122556973920081310256706711740382197450782382452023528016143540225998797178380754728191055236704382899616027708163477050956584420806566719538422868390091613414681167937162403932846043477934561809907730405412026574587689311667081437349147233075590641429137756853576201886855804622538635631378865010042707755696951022250622468975000955478071949568620592613148006925246557123905258752014594317917835692842039787323957668307353400515370985074515416364545476224706916954559702175929913450349030522885966690061611142622132646579794673371667238103952901008022284515314670107917099416646880389469648778449513115148712679988529916386339711165224789046173384921591700545794253996382065269227640975492256518962798887085053742252674457393717505292444147261056539484278941423707505635016967343438829230712879532341284465213405226432051546041412136319862684448491212404934251036537633691247090624606688553976800107112917240006490591025885923795327786206030249936011351387344668208418814801239482026380694393010201957260414268596257340389628777628287845353981117500832038602638208143408764392685620828648500959455483371244561606752086844465349780652243438077438291900866324877265720845809010471519722394992599063610385973677857028017540530592570244156822958190721974910513751724187615278145416487054622880549820998478977016786989514077526115981493264984767683144595190188233899487717194376935587107991038920005343552746446721598416385964166167720144346986581600285689304735369898314715431400747447541745258682253535706842072431755190323098406085496218684726349495158239809809620874833517324384665895749241916189727191544406125071053213442807266578248179751959445784873050826341192996947413692979518012887894765080289396114054933362061020171342483865736590554865202568695881042200933684886705942215573535071801350943513856266500784614633974004576515792767238611074488853184913035286946980389294182462635861767686971187894588763477123302176067061076147133830915328177859069216879428735905601628380290492983199263435365859856470176682811190700953991831144833957063938746700435175789762123532692558050716960559937758955532544881725592339884079954312758281726381608951056980818457892806297824178450825610157909846266191141410586370925322255690663476338132709088918142477335117037036084911177935387218120922472627109172428566363735518077973589639376226787416555394125187083691033203176806263547726720567725524210911441531478421246269860685744651766295403401362232096057168773193176865233052679166646707848250776596344787029357014232110655392176991904789188960254862696374376489705615021019271610450902055700603457075126266676587558342691382732591450106411134279038248819741628271055417256724628851273940111485291928836731030130127335853448731152597658597292200780926360771992629906033458413310539399279374801528600398838342375477906411176371927139429319632177879819248898423105519789790884230540305827965911697262928269777486690904276979654785321836423153778521356534230921489122165271069019556162514616389678228130822747705741333437683674080344420841623658591295429523383175271287557402076290013411609241500764942862026456259616739517749523608344125378667719090991306186332887643231060025190454852292841938494675702660951009003726784111168830242202420463436749306922802064361331387811437358799357816544126324025636555820359581270745071550065620381567427900871618263751088861266840529211287479206677236528871912841915207683439795236283578769441511347483529154180158262249315008346206265097360905081703792220732034227108364701637368073478407535028730358513524448941320123199361232566619853888632296193756244610875581002450410737459971824012060818756268927215269663312227257721823484417765763828730982442337569340599942634304377193127337828875760273575864212639015791078354355776876529657477218549857950697845919730660805486183616281296510410702718285507115287016625902461774592504768439545899223430152000196600879172378641082729814027335645076923421341489307321414286967393537435012444145540982141863312403895285976784475705042313275138976162504813750660366805686228115877999653993836860267301002846473619500441269116448219714784490205259883294548606649024882428590318406579327159326884978911549206062516732882833204079353702618575117055411604502135777918478509144152144923670161286701049017069381935092467345191610576787497351197133706294990566871534212872131304101365071984242749706160536223453410856295623328685163308585788585747564968762919755926376557412102687806451473396783056902065362529907168747353975638775012746396313368868458531517753930528838107723046026195597885703712827581416943925618335877055283988244693632961800390191732913241166153438610280690137120751179285031507074475487256127230027453554547033656469137204644844793300068382507929743801696631633542113813811637229186435589549143487508619109528453719196672125136258770194174261417016184566699911779651626337111098180477817265085444200017627302477508788014434248345026197467666472861728483848086053085952013674845247560057961828491202092920773071627019170193033993072492496225349795989833217101136738027277341123774789741220429976593633145642737306757531999095314612582866575287760014042799822835286327803378309808986635114889265310748910591464313038767520534959006812679190708946336987651161819445456681495912486396720472874989802437005911876001806532345696198820679304071043687523579406524119111462030971691990288300054499250270826638146153698188869343761270749229680425749036239120937228264760991639973507744132106924631837785667288212920174120507240569474554444436652772227847395829620846308318414802287025714384793585724981574458515596766784207555388584240424651249945700450729906020537078235129737178836635104749644923891523429048766345683515343867888186660104465731674643649591677391624208210516411444026972331457757533230663233565554138666436833663780417047571475176436674153785217046982186177019718356364827762720864872955967986461102974810812339802176973486608938847385671960533050424523509536987176074780770031154882566631254325163202335885834030191165466400387957277276176193258022347145341627285494845775315980047396059010178802698640012657316673821359532951400508214916559027058471597429246094366347171774014813127771269968651442116553290775368142669839832487710583804913450988149695602243932430027911289244214624583864704864150770252884210579699021396464108211763981593966721650862515098087405218530589954927890076148648199234536555822848609617323493168232827956085307985390017481486290285219947053168899799873145880632259525908515723903600219525607522030150539746051148206278186450327773665494839606167542475925643320029847944568838655241179101057344200555779680731847352830183973625670110758967168868022047445749863187643479069173895854482907177852660608207319841066457977847890145315329002830319891497065789130274912974369366378398300341918408998807285606038307695591635951669917587768923405011753330084541881621217424916500844026052289148424950789874564135034961391156276949203192766700797453327693210401127596304700516261068108728926484964547881039476760652435840837557420709602433490462362012988958891549593188238294654843269399935472807992991801140405262251980869988811775768966252344441283542529009234593044812192735030604078399757189190077044589615892072301289085352967163078901665471435508938233388629224712788050823636084167056177953196055704337806562295445219328389512015085212984354335938369364551797634342512716198496914137598250410594292359831534788469934580878351968130068610578517984650725295985682507441667427472154800512116290457485219593177738493787738844821805128051879600677350816541037886051026288142776933734806068813931130281708004322940549822647773848854953843766748218522627713678812423006634877907679954891355821036890879359837410266706720020106776360436184849114034924240253965083063567799534805586747352802005564112354593294084789686366812765264947864905269982263005850958189128182120638294974818557436620610299484122536539420072923713741368009028197536881639290408233738952235589688057142503106397100877903731469085101765276020984402072036156377000998382038253996676396947611502990949293388583189828784522759336914768054770218109469303124588582391437108282207438579857948138554752015579463022951773536538291419388896537534987007914718383775704919514475541940658457201098860643666223036412330719932696932339735961680401463938113158196544922834638641018362169437908443783534585671243344281542103573569361462864569172489771195407404862332381511935474804929133980418042201842191985824694083723113065356200476384152153232455087058106923727531716009856891200188110602186541430218718085541041982332411391780605794874812285841413419994016654054062690914635389157506355052086524544696512751086293604247842343633058482092553691280492940796952334029772425748040084496821814408923252238740809970853882394896714562020719082699316576645774265478730654116328180442096418491835836557849142992959321018411552210592501830465350304597133088445888618470439460909601860340747961717611676036186505482793566264135328632082825272871644814587589625101409862122005749541536762876846715264707928027305304105346728982596200679499554097055073857845145566397906065133506939100228455056969205764227825660882232587709463974233824700790829335651913086256997130316901243474404797386195592900601237934926589495769368801402810632793535492053351797582767005241656919193659088362864545395814234892099283839731150452679939682617447027040742257177953967380089160423344528731586995006484979409737978104750558432564455189189920407592172607816393100247058030565079297248097654481819797888954614169307650783386292846304391545871149580207471325985269858019336191382398179537160229618860837436492416893980945479036157110206499195228086373299568288870886697321024639451019496811380971234183136272370291699803249092036543449116109801860876764593771080137578868677861903941681894823462350045673207518566175874327064505922177068711782402285722261976776754045909018428218181408946583273657145063484985017409723676790242589591051974015580258302016937370256609484857756587247006876373204840943561578170910972791783961688842531221066566276108620443175986322206590005441164982735503130122161322537113546255572174788568377124200729978702644543282409978023282502323698717856159617840384419799123463078986776968319448838948133974113547017859715433892606990611872950400505923206879968261655448009211922744980140439847788111692819550147580972994122184892551586764753219364140170741785828448027950250807082318336756282370207692359680508956953316257376040409079041894383502152324814208504050380707524386013459971697463697128692505576800351520759057751578486356157120618917871526804263419863247532013099467525558585013294292286812197915931446169332199094082930356153191896520783585220950775736532229185132217321606517330158117833588338908054444272445560704617738313942783471315130144386122408442908405214405744297923598655018266463896995759420380537677561570923436205819841513356697919610961309580213349049634302303542425985664402619809028516291105695106152936408875432652173024379085832549375755699211008812628875179820484101044953134209983602370786278440263045533244820261928643483285118318560913994667932349395123018029162194268670132069812757007377231318169319451811121497787628196759952581156652684495762144482218259228797258184518627241436801441677507357241207343747898909677002060600027553850246909753397278174934026328511438897378470671030643282889103450330953052820462688256038512245436017332425235716770336087638202512618456203320788522485381123582311846893417604363003743146513192490208364318060095556824051965088988753867927854191660329216616322329315896503168554538109155399880985109865547004075800326174239514551034346959748180214203677551762372021390708957343809955264500433140066673237599580198789173324181776875898359623210981750792411062485279595884987692381339062870982103347165496032195442070116525731316473008138733098718619560290807240878932162822279056030657209303662490394501080840261071435217819289185348821945837242780657279568856925270944537348059968564660299930406850349513487874472832276419437034284226437812418530234552594218947469152658652673868315249748930650717657801952957945512737641237739033713266159695434992902661794129234071577853798404239593670537117944799903929707281191027833334240067780792493268460113592861593580199530361581412363246263254360195776320635216981751755136452434965372392576009070964686103475177188601616830297190629177235474790775997576729716238671937540623085748400053592008921433600436209650435538373512120680725663797354305505313516689691169449309210241594881151367674144041305676366681451853766089304111815197736328900385626982225854773907364126908976925033691743122776555964704532491868984036315464335561574636618915598462029189555750085793200804810975215658709088818741477947059587241903711606738790372212312490473882766455071707573668922232964939296447326635940851117202528788869474998825511112816857750113063894590534090309693950434101598356076801760739696532000820349660094688440206492817962388846759740620909477244820552947181840652994352219752348343508323596762708116157766224643319640822530630153659318850232440764048441645845478358728587851173110845750864596752276749782343902717536002594913147812212103266398901181591770331918632941281300371573161252574548989094944269321346716013300021145337204672456894822909841105802803982509756781345371088293696175874854683728926568850558035599874413263912812380697533267225078088183175863077984728155997943485777337433182490604347870927984144291292744452349894404206113948234690971752615833443437213212830322301365197101330764610409557499562990939325156366239392663103854505118636501697844362697994467316420564145451368357881186861688181366410668979312859024197408249657959619580860631289738480811136210433761363981491245898907436516148247754607252579926350706346376963479874908412927266688109426050163896827217903464377534592639915522654928303323257371638501405490668442919120146828284306214615321550772560441813613014834329963870483133176968490777740656072409940716710257880534678995212953166122619673862102524380891515835639111227135275109977044067010712873587655463460180358691979813288873761679075662311319252295210015181513372790129113271068066547861730478916354618952343120706362372938411662559542717104993421531417555729546854148709811468917685690608125435715064846260022494637506415276748083106692888892654584896659396388704608839014177779916738141110190143219865145976267684637630338196627575242276922316274988624858131464715504792095485033448532500642770203309614620181002534637597544295386160924716144050310139378580006495073581844282662119952138631672439448295377436780510612097816111391688479905458758879793182877728006409192798265813865361237579960691491315615991156115037165186451158533713697750376935828473920813072052259705629531302902285548727635201162266037395322168033853281486998237903322709077375038233353388996704878483389079803336342543077472928899791846634648158986222734066770378673894523454745394588236893513383000513930907587062843227955066440723462721565533691918991174501602267331257790258021010880014184958517627127975419305720123478115509397614445661230518904558277634083462190029342343763136498468471564639708919945021998960889354993862525565279800164587832742998459300747501959704320314314197711330053080010671800553756472601854245977318580277486528419449180908934619457261739272544955112919950677000953794567840177260643563460114221409561465892585439768423389748540240120528453379852999306089221329974285919842211750933311766366205080938163514835094913339470917124329347244946971811490863214319927337622497700268032789271710224427363796045111955361061883110648897154559357710235602485427731025151800228953212788385574042248423062849727909100940186725964066373415054684958810916343772717649042380450368520213346137790415131140063073296255417228156767055526719952628628298901746953408787964432040053284117212981551825960044926859184265057386088894412782881489452459234782884420343607855157137250295192183269553537355702692937145095540816422937658104993586817111718533387313670519992497283365344191035735640879115861011032596348204021775148051190000039966723295674189114473806453662533159391874748527733418465494332434309860554957039851730097950782902615314603859330568078209316516872133266705112273404922811883216579186938255507670981621502196707677888069398135279778404286346475908131797616856730560700126192333122421830772775600907037225085745172261945806415201844534503922654489242866181792070633905506665699316859052463342371012764407267618576729811121307816105090043021748183910151595867857599835513011359363911500374007221985425505240345308368703564916549071221982905506137765464764350369331266822299094703071513669792945949718561723113686372179338863940463496250025431079330941489169653482069474998020026933515078423584211487377254722221381586374813962944139934668092554858367069659013213187248083239865060509543182965657978787583760544716300727835013411956315943781467792687744866203276098509756160834501788768677491082088337439549153898214321605264274677818221251072807340278380662957173588470526733761231171221160335652880380349691027400230397242267596497120103136437823649464372207275835340468891901553911386966480244101304777518504611081242636353373854590382343904290251996329598034775096296683622490470262535176912654006890366813730130927682348812374274287637163126780103778872266855974152382428530838287397997998300734051811826707781306409261778478309386545043826940486924263698889947723224458200120845242708009286338461436049964360325573295739395990585396136288920365650591480824318515955358567526209018879158306414922724493200715422774551236642052390682643989069597416171601659647086072336573295834493875106186970917943035043552744625546714102383747788808244449956560815166603357612351909501167798571081623453565890134367644396489990904805935720293744388708790111311609114484009946631793509680595384443742012461692292173980424547141997371955674032900361395765593681653530126306378520973586385084907608050985821957150896660924420360796037015307544018855619078926966320427522695072555593636495805081459403295564914197290539193693767246212409316857256697571271115894794930344907643837928257533915502199780136833299893521531113573451267464959914741966552299993901029897433176485857999010307516688537230652043714932190715012591879028626281917540736935211037883360435182374259397904693146224503693006044757276970699403657024298425046160208375269166294922153827804616984519788657851223080987674715741550735749753057152957752958997310742305580746567063227822734898158197331439715038750634604621233900069939786978349026673882097619116058396603643104621909584387633368812194619619820786965862386562743693678576685918394799130339933651359808268532436447068387358509665433130261317029652039832778720532230066281349696460309872576130339941516017268704396446554060474180069981782036520140560975044716284721731160687989299620472084644088350281225075511761880619417672813199404629173409609251413421528301653049929004988091498109081353259270189880000228627923559473287738333870139391119781533658744211769608707744145768996249151059970543266735363389472528807612404447331854123659216147006640108370586456790349531001605781285559874617347147505808059178801646780338957382991545005210639278479667168182325659515516429458960198188985528300149098172961567308995515029314166301122228921435682409970967274528688452229517105774840228286348901331714517780871662100633483379460601245452359748784025908787468802386664743169517938738851301960088614979543581372703182463197263682840284957160804237095767155148794516542802368421848889090953723075565514906312265449420841795264832279431323889967015627884816826974826073594108721124524373213807472478352040233688887678833073546494249424910351946634106088499254657172913221417076825489476988804289591280531575975907385926866411082624356258105205198848322261164038002188965985692440159358645346776594785272360503332904242393162542484150926065375368673603251057707252678193163527566471610018381466476017133820305790045230663754192290987916156248525477603609713826203436269491939269161520632377772927528539232049543152797433661714540463922772223420676378482338317364455881310685143519995213421808715166144272836985571776464458222257831721055309981446590049580838530735322963556770241838891498699686549377358528455402521650215646951606875035196541091824992414662853230662659707858868665495919649261165519837447354298527719287820194953448122264331650532982928321755502363506567067873244540226299429809379579615176175202064906201742341835483660568651437522133468216489175374927714060210117862781594386288982499242215769339150505609973268419518788158335407242280619652544255198503594502451409583220284376523764318220878420557396736489578214907494365925241972654509765991652997314122366532752078248181476812836966543567053106735996685282966258101095060019998183100781950310181150758760125849695208356271944754102258702908535138111296812917474815272130319575465106199627208224036343754829574821197094675345261575705108307092514303201700260536148123686962182188080403450630274854336258668254349891077090827026025570864774938576472384476936797985409811970092313498518654809859157299520686700199502379743010548481018475502615907616433919619722927650422336062430106524807977424310927934967918387794903261219827982826168035802974356679049876902495428734582163542025464946145028930212860783748396568186699765322909712887206108505085287403924755825364886541113417967621410960067967934395366495629405537971559704816877380025109533674520851020553117603725277321682831238565437039563358391574572859759663904336354212359591538813372977514066270370042249601863467378998366096506494106555088848847994570844515863295950650216881248078765289800741567206575009136464307752884152432939433743448011166023141525614965468194359100982475703118439487367029965197456064516300454774095233620373170390892503320124224598713301573284295691115684726418356328912427815210214067024176431720412583434665084142628521596969288784434829275841656986985079234684327554368560541447923625598492271758475437335121819180467697300814820761035506325727621326570929369000932646342164019073188181979425508130106727792012857698814612677794922553079302360540024562124111514515502970132130987770874504470300049068007485347116600929039326798856789203181905685785989388024448433536810966961143951539423177936809149987169763069877554018592603477010664653809893873876414339492774762479976770951834222902475866179259502177523379647410915034278070725930220080835590062393052378763892248972583700733836978466416454693051932368288035399258883475739641839925097788755007523864069191111079684417229174524245890538047863286525399565118400947228996965807305034334154759383094002229857713204043257851273550655205081361352839687897167761289197625251331167257475118935115275694389428643643716043442543238890006828052544358269585221049193817652169825116361876562866279340670045319661348549294132236878418909920354682062550714170508952513559155828724621941047112281151036954159514419140371332165265297927501259581241193119165779631665594252360098958074915032631793451136654268317701136392365080613620553114584728595507769764156751825079154753379090272056465292585752017508774258259436095566105834996610508439004835492889787555862732269002020551881106349932962130965196842901560752275926655116891287829989906832999481520513700082416800412237240381199550243657191365854452462021155834733567450721255378160431767500407190228299954543157551150620322757381680090863049350941052650316547661592399467332065256168390057560846414140956604439792026431479261871860111406720195713094953510332682318160480502316093780651816541868841618531965414208097471527360342631799088989630235130166444205145154807312794202097955579692429425158076039195953620282020735279601065597347337616301401205090328085776490590182389363893685150620926731924037826008312061954592517272976784927397808405763838408842070221139691110530864114366885831120502321772392936784059441328452347794009883803428517130285322660180980224051809363245049328382614509831493369788089231021714839489509768709163250407475463038985571505041848425217921822670920439579080284556171161364531683281631309342766271922822151785053979247157839873107823294071904516100112389238376796843565714862697474346788431363973150295494178853754003300230061816681660682906508211045132678295322716508244397967093640874493812473419671966632251222345223296278341891951695904270481979223356174063210463224307435073662396409863370379390180051345846446556376270063986061993352834443874250993157373633214098217680036845453037248043494196863771535624637220554285696311263309561125792208126932240219819778558430308793591503794908569671758421370206736197134002637934428857859228442392271955339012972631690933355986319494708161641180759584147253136436675767771486811362066280190002544786071935667442220192041711434205965834355136624262677632508109348852343540620239622632964855519617413461964067339185947144485156942569465262378612298367671837996677762189322076952049647742243092136193419768128293613848106644881715374500478915276366333390718233457444628393222766592904055726203589244510917721453987793499381558635605635528600723862419119212589126425584230502861743853600465545707502174547156429476581297499500639298610083558237923916105011368758751670266821593064514061090521664904352643159045386030292338802366181835614133650059902712103258011632608337998731020101670471468568736196441183973333826542123279566845751442487122142769190873570010102963333124897006725131086666940285609285602165817083230884890085149850684521707131097824006698761965424519117808442119021301363390167602952877602727564600287580834759183754812799823198695937127629976064133369061544969389736467866652692711118860856735732998603872750283256074832307213548870814517130945048005428358359429933260988878295920495994718482125731048679923649236856105768627317200570730169274392219281708984403032502817886146578319771443685961635647651046715396614146287808307695930404948260513850818489447474455950639917726101609820935166516600160176139599990855962745073732349797689166545710942316099987220449111047566966526665242942424130943870467072085429122396747911336267243636257432861704228367013666916315059196932424259171278134783472644753800396475646514350568293729995316325204358707833961026529567652300149104322378192831983720586604420956582793799061694338279160338831578863878777969616013171761619331545845331669175518597069857672732346787293292788558041614467515726605612928058570363980108475395412252174229649066897270905338013114679360037856395398787032594786877080105385532258134638512889090889329182212384688666631104171245620192271075013443176176726455830980237510405037497404205858362519223787964199612020435702755567241111613395715933161199490308091943462159437658811732547769623244385779800761859217467306547785312746832152908584553708889708850357210302505443363074598699090434928425758921233540890853719826204626466758513616475772040390707006370850488823982272735762102965510060400162255746472321303421926796387883489776021709045292457387255862022119772677627581945737868281618795085341014940264178682041215337420318968520704636835620129199732096912925706981930006015142930477249540215842087375351580480961365875778154961626776499529083928628312631068932434330421581893037965627063918898324178935068618877337529260616905724860956157481217214110275485117678689208943296248897740592492503904159966584475701251027696621858817926762393058986736322605785871714990186655562895269405265229978063614202270813641664876366144826791539873480611241663366519946698706690283800659539041843355617663335957165074015555683322348140619584017363538192743948772351854698141454258272135287050947356005465853271620320380498908781432099392201771618964276565725957384848864178403208011758225317057273506268398379748792894298309063912665047945551773342270407955715629222390290926710294498167065351919572157461402384034594375501248094504637599786972432961315776008398452080839081656022246652701641014468868751516004705467818311331377678670099946983466805178992761859151290538900215600167737286418845648228879025737105653985143562974658079699590108476128062450887808374384340752546259655466489141935562441550273394374331558013150294338836970262543927511724464225370891911849423441741541378864973294684871043386005787432424372057074699800660379499341356782463456756709810118085955093475820929965191253381357393608867222893261772939650636847507928370834588114072576448514000966783933942027084646236770578630833536408403170008411229160472495591139435423054664599437598773226797185437448330670324815613088061882692359355761360707156427505193728450456435394670493705807508647272625816602310340943914565287934478094338779562603058950450727589077462747494625905574144503925215002183893747380916032386069933169724321664001729585377223572280321895628023403538975072758586003035435742946641102352467605402418595411393580953537374378731087950638263878912742879750340968387494477063519678245080086103903716825352525009660887949256076416003387238809680347525777445831771693183661934561968147908253856523821630234469306624869741058655988517597264032762970476345857791256561757488637173859900746417014007368809481339526182524711388173904504564473780331806171980149498185324982617291426397026477522101178121859549527359984073761386339332855124296173649256707266533062100607931762664175540807615924565151714793700797997878035247837273648854711795903205147768844306791748948934303808981373743477600460052159680693258284248682509810062895540243658386640813984672939523331414443116421832582809540880358461789921119318797201157984189706577806031844449483731941899180143549422211399697424207644945183094427242732685108938761170765490192008119588213422857809415748785289259202813327816613515284761890626173469579953042805888847865084173023734500329282409816819991134106277715377957305884197889869502173601024511744350114164102277049123325236866052371321103078723317659026309726878161972197291148973831387264521026429555120517395260439381722403444241863489498826088280487028061524919403287800464575934745552281294208540415702151000777444021704927956897766131426180032613509293194334651715869177848894761121667569599610126527744886906913920110271162752782227377066860643323681747498670056502294682328651180159521733034951917868003522670389760686719405979102180086216792970910243905116857967311524828489395433632109005529031995154014181709699526615916407046724904255413700191581097708856836571041859782803967694453376063176539257742056702931086319888028217556407445993372991204448055799281593351610767970151028479882694004887931069501244420357180621035915290290216753136069751511086043728644155623388115113109979215999747324260370386695243762853292828080134945558940152744521985964829875959185612006142668255109720216464145975540505546327376285214504158177447049303869639134649833350996794223874322478741838723817772503202577753463400963337909554011083590021164540980978499262610478557670458520824767363027386709758533022002951152807165567450903534917471659903756758688336024315343750595425774521981008363562758877303286123208483217492723458437454454833928582561699145122852622378904242259032567885225613154105812037420133771079868312947792254407697445870950623238298193045905059676888109162808547167917875435256928231710437057201081448761231949302928992941142794519241281581174981248636740093347397590756522087040861311528827953456594031405877775801540957211542805009490104203436236356052276603738234052253121039384426730908252775370347832228090554564958676676353672686368230682429919524929022084115560404733904497987233957710662612271474639712193263790376582013015244341321350529530853081400846020129596947907043141600433311489090455498007686556004980859667753263472707986780782090255169578297473054185911012306105025905370828357955121055920448590337815742945086390499942972599197193947872192226242070683508012458971736972297137936828697101354920275412862043120919805263180850684667901253771133680815932596796838808054473414632519279188634478895247822500863954437719791746008563794215326684978021841335020708490311338745329475603123888937788083105538653937095627933900368485644474776991455822848369077826671676602708568961994641908592727530134293047881832263110719586426847107044498727200223486379479248811096300487912992027853551051950187556645211174938762994108424184502780378625248425164065858034113317586342510705942414668933623383321013367132643320112599332359883295931535253277719047355015248479098051225574512123274843913892870286197974901402090649988980900148460460062864896085176042525617380291626988225615959355012264276876202578348704145492072622020363633105271963114538375138452350342457760136235870733996118434424380471774402828581465300306239909537252790133590695066251470981914178983832475193860286116529353626507244316798452178390385787579437533676927153597042006700420932921408037387180477542383727156652719939462850677634561969781058514029312509292615597582230574967548042403421693696619012975443482523053531880867601021322357370508104049473971700846061856802126936769046527052408301556520117593016972455609804993895188418804911887021189254397620163497843250687189700235666512071760670023920274335140570321833926678022253546546530598833744522155476666448196128902940549559027901406277116556709881482841369540578584107525480715946154766922209467572468133595127245061575173516020419139619002595733880387440118884894476462850489320910501478262581116173549617713601318856011571525824962152414587172708373224278474381172878889743575784563420572399779337114675591854921740659443025317031041835136564071231993185659932555110133773807371099104309270677246094634544853471404535732103439530071475558206975386067376261306178735147743815575501596309588682986541265071874574983237475950591043453883735656400923312537347103057077452269740824863463500748422319958987733741894582585206913281084889623339427522877166341535524019950077595782864956070002255258985706482818958986346267135385613217545613374153727980251792235884951679461466292467443120860790890585162575694442304393827059064890828436154488989834613607716974182380361298492405432947658719266992263102846427014597556541946498981288661801772015411999430502492252944797050703751330205223152606684635141233965748872856916937538154365601523468948474508742586370160329514056593835638895443309591657291694994102445586373953868568776703721200890803120586710703994803824556835891056125332979540971298058143191269585888473976240339493693165695562722343448152037772760943935430603034220302745307686558452554751585003166588709936493834162676895184341373386389318513224236095626466316749528666774757573545953492677204200720970988157410727173191979697172128106307599063554234562533618097083046073583374457317644791324350085264421498857451171739175025997830911344700465601761609892529536902569474203001182158892238482719327457165547324980059957633682637678295873191943491772105988038828288452760608973344607700475938226180064004669475295945867449611233238642304117438090924290031998985164615093179338641959309233079111906648388677951193277772986659107507933172489722030782787366287367313515739775034056840465735657932517601271064443307557641704950708240216642200057234338842477878131836642750702795724623285292554483222674544776142910576565030657899816107791544652010393201629838190629166766950867227246185613617254316971110959005748763799981127715290317848083768158053553266049430361017363226967375094410774502657812747056062042757316674624607848224329489566700811280547591675062502203032742983023052528321692810922089590397323638711038712994091465056237485770847510849149356108455863502535904699453849431001341038799513424517076988122525700509042060426082160868669368027933393223376021874686639874896132511953850064337728031604381544877919087691332192901688934486446801730037665253536403043305946217038756717488946157852022773318024750664696284434592535241254590306766595734215139193794865161929618185797788809558706410079595372579149557540988870291297252311132254399549198401469579684216222074172461356129900932819111614689732391652567869837021583079744597214752801439216373118185216113360286056669829815710154897945194230275869949690713720321881592408889466292213622422106546952486199521172399832889484748679755218061005962096672915221214156158504911803209189156390108403352807985903205198431679713243874408018517278515196448726180845859865116811903184319566548183765421083938918379773645509912855610981961642197036133719055053035997191190651273756350246359439897379875477474960341669668056155117207339840715024658470685270330073638482851805736736015286208832313125215142891664271002221842993508136093919353993816312797150924275230122499726488691294873041170338677889789670337189355826068934718305527649095923441937956440268813934691824076678586852748838635758604635862310030989993816248722322209070072542774899176001530483334419748992042006426458815721724592956027796697287359882803649814850657948340022304518504085715327886916298684080700167675293760010933795792663729687412583482995170587809044553395704927610005205783032311375371123599545935558245438377646131168452091445196979841480894121707038055502922052956529653156196607660824040370173412530273948612890871535169529780061877630916665129385898492982739084910864731280261070071710006788983779228342622624284629959366122131208522206047108664305251937910396439976069626501982977027976345977029395553086157445050512771006353362094196928784533259055063386699367283546854942008271755003279881463657960870346022393656633157079494351645579349878854688728015933199789450332551974254253567913337193446326042494535519382753320589189038865157244803525455108831871256903293090415041693882726924812419406993578128944004865927448488067228665010258033161168541382297690232042146714154286540589712404383447055980074550460788487482200564588819396472197059910665400606162784667422119233431772327387586144791723347796877153326360162693571386893132537749560168350015650212889793911973597880471973426227202333157708537115060385197302174647182691980364983993980918943257947145889813721883358662120783252313071076319842943842453092010051370208117734326784696521856630290277573963022897454661294490880608315148420132414471239101988771527191226835267463173807501682549684010298206980552588092316840954609447019949753636873251809518332606099928029694835396398367853963005623729757084510164378442019666887680461224465820355275348827863976466270426358554928030037529715951217520958258918510284020420046123323992626906291847358536344582076723531902326216913585307232988131450714936953257988594602153088860660636511289239358240754964569621652935269323736925714103876754048113003905091578797954243662079852907923705290894313646608944530313881463063198892637312772803640596418449852100672393110722439362723396970042450528772701181422846870078047989965029740140424183974727835746873009198603334245382570007743022107932595247133371220380426780944678918583884925335261769003966675433985160871496172667313854193382801600272175892388939890658825130203279635697178345378815411120911332928533831023056938051604500204722352480420627117784282293339365378579057500576894625922104166984964726053052579521383156190614797475265487089716441859756008409168948427723977178722660302990155849678307755627041338304564533553729792292537095445423837696992665089765363461931753075244902527022978092213628779477933391282597709845955759217721595260720589370971003165634951965839685237581068653821376800462965648398353781772215894603085666261997780069985366000175107246416147002615546098642247188779849287350677391656783688336493782937916233592756772616345117340510572551624539685106632420189019597464118789636058328648873967575204316505822280782677991732331445231362700637376391052645094548414329080595871323395457518092897969855035428555472939019654098093535214103542312497938253382561866325067260746741131003702116316805967752778191858783856923783523434786763894713560234344253803070782162476741883761089434672384199933230145532239692068329189728540839301333571983624354498805308702802748985521374461356708823540108061081722693760274748750889509373723406036300991011939222214675263228171809006106358977719203975591996274931608223520305991635782065630199054831195571113976420641208881073881250803004497365353440616258662766490224620586094513638164266116544465664151473539200522077539949963699041318435796379774926816491273868038232698136893583233237411838000748140707581962595942217244045948534216865638440299555377702016208153868539905716883603227804202525343850928890437696173379645622026547939227650814020394093578951532750347120900471457206101467385939054592058428058043646199751518981328960832419471957093824422553350111514537235877325833288437949719070381014631995541534352514243927752871784609122367083898037152508206226232730699229367949109065537243114351706325790367089743460855099208387015226223521971928971275031010737751105982073849726535533263318386035182956865449997363043855911907422604249209991461483862103650674084976114258758848663470288000334836846436025553601994028365864833144137288290958438106576360227813796241269294458696936709613762276046410870556506062207216582608932397362167619703726730557520961005329505906582160411174479483404321880865739213843168732997143497771419423403467268606884639599194054446121185817980738440369325634256638261435064342044697880269396832844863052061509116251285129402768130911667551853416186696724895655769160236943486621792476319927275331090578348971026802454715009111589677413401254102930272545475527128177354116344883611568326332903505854348742002151767808044853535942463196645865029419698837049068671945321748361051072079298768522304344903887626043582644368721156760036011646157618890675813751387568443080598675541896278550224679915905926173774116032324471175689024495459198609257248441325112495416004545494315636810001687164677727153601900278113301829854676677057248815136996385340680230142434357881949073803528297337679926605452285389089301344820951104919297561370626097711057859392645172471590077699630742269981753463208547110924651208745981031268190893626062604309930706077122511600682395489150897745970567846205128175593698881737032126777256851808026192252058083550587180333098277462505957728568570007817000776342157843605275422322116013099906605137560786309127950857541698506995280724477961080339048071274981344629847016472018717069575014666940182527798483924396758815702247835794695462318206490947037201097386277472343674575830404556848780869568096980318844088704105803052294888076587115146391420938347885293380719820333502097401970149986491855317025348168585888039388945996792344285996273250741478216796722158062047022797335898875298259683518814513076989272976037670964671248879359423044151773575027459183674504658606403577419517090221550930946803006604053450133426674641818266407058806509937071905535327400761784702853532693183894918192508865033136700087445444183342735516705845227271522060215427489729108900742269226147331650279693662134948331335924857511355915303922506785822110419079262258859812377879393206519785348372374765085884321695356608685633711499761114935310897671060178736267137068187472509475914988738929801860637362732903523364330895324759922786516665974081064622347055727126796899162435965368043891517060072006644345724364009869673524700999333992380145848276878312664572925403024832885811175799639414810669277754325640971201223415760112919709763817142715937401322777492051916322340680900475959258732926562834725258313681888566845760665200306017698235524420859791292952772519101358528276589871249073745335272964705694998451308506809538709660356312398579878358103428081536809940282116598642766356030012651856220417831403963903334285455377490977162069534104714555835922402577901234535759174794036039062468537266109735777252736450833244293338016360180540470727479684947174426675681974630681576946154853108925838245832234344074177053625821599855254472792473967018939311919118726711914808197212470208598512666181050689869358211179989571672804791000302264642441826426312134812423871740811382101883396118335144910496453693102751040070141979573303605884921409531438110510631219212367377267882411319246501048859791357908233653169474563512143672813856843573985213595700518090056647317802996587493742244297636286886922418670933787730410361103295140142376417900931870406534190819867256694201326003436239477928089935262167882551365547566603945132733522007237483055058858131617743225583793663150543819176963552863989132975826309594645224110200732778546430489470585564131348454390001097931728086856261459395124202815622433294501027957274955649310489284697367388897000905798463504411444969024777073992913571247592936115947640013593217865224626266191153993897910030054881028004384129294080806208926712046644749879813486991959407147844265540650484963971579700383214220889055949035387491595758250657299224058418434209131956040285000478850791500887567398755546366307809291302634849418655222898803997943347723886944341824140349487641045617036239078175800507649606200294869095138157061763161382543729706667906976886704772722711354857612538814217656134018907389007128458080280340617529276911333323129846918681655496617560623826517791147817413234633345702968867680363565960097928872185715919841281907233344230474296224264731666019072304416610868470404135697147975274785894638760733877349808278807599987393065643290557696656624857557759239674982830002599893824024704805541622077311298884623052487576920528965927666532603045682434868433357524917695399674179127733517827150045221104240986322452311715182485736291850919444743041131311969841822259247789598526665568172043477134145199032158373196086628945467655730308630330281199564471786646907957984920053018235411650438193328118977429024059772766331294548070429349439545661767430662311501126809936238064627142402663890381172257080916854367418550225208549806095134677044168069900419033569215817388763778644949784410375187834232609827545494184877475289134204189710600409838421450408972550211410715857610911588619109611120143817930197827425765627750070460585960114637574400185675248409757506328799072838804013429030596932216213421253475475030615142891195497596260730690296710495004132437855184096008144018865051036944873194582810328077772170600390311634290295869839756921817218317560666573623726779204692476735264959776707685775328601109008460350813950493586012404673723704362520931107086894541103787466946410138852101690668856451579922054244414935571910187723274253962116879805302681697953345475645197218687588630003451901370650770135925089486453056900991905694332843998289721326426987525330043832778343267233219709926491863941651936618148365202063948500841136746837275143169885413467658319243683777111835818054085265938990700504757231255777810352573520951652760450388604208830805969354528931181824520586048572858949906932342279349271878446100915358775323381435294057285022971093297987563935852663136817606166736562281114685547058751323286086177578908125821303249838309508095230746655717723858723544164267560531399258313354231780384035261142422993790772152676386226183330632713960083585613459052645221968105817705134602123690495907005121419376514101707011889264066337289990124586860244886678084286751422416708845375048077256797086227889545403821005894642134088476425741742959122558553982094486441081459433218113084966848636986617351599657466868183117390428710682347398237991584533224303687960000891520586268191021138156370563647528347559440459405163188115432779000248860788963624930529083429010440374001061632103421088587880445986430208276615215341239029023545628506586191803052163127199410480749945674602589185658087427319283347695348288263492199828209399415543409065091746244127279736955665997332925236534271309840963236653986330480780406875124994419134092054906741297289404975150320692761395199906077830625807991107904532739211538397353114334728282970743284092787315427256647592081531935949684628113756766372519975049929622906747433180688786428150570968554095737887654727444573955882873930528031008999603151675068383595507217327489600337003034013235869954975468127486181050737917222061148972521039349431012303706317052581583731926456750885505203541602043267510016780761235263294416374582812611201725954988071341776640764238157040124911308659278617514036552646743573190073259514008470017228958699520052987097470056341773165342168807973692164730546816302194698640726549200258809262326283489207170570588421759221481677399711843295034265951945303149958876579756998258744865568439955837784609126449950063647463762033922812762745587747850644598785341533707814113086772958493701319544677051981341715102750844069993146943993078560201261238248348776753072446908865717250448976386609135365260859962021154307776443335413270379368373684120510424430072423592715701559956579678971027587561504112095153420221929957251955723408677697424022720909402114111493983978807010190513227754483393822408082252123310982017382787434678689240436320299860104893573880416839682546341187306317167734283960477216182974759945155632686439972869676544378826067578386772033615263638946953563149138618470039565431165130323362675072631568189396785030517186130817978505243813485460601740120545213668521001372212377212454247408227987400259025983343765343965434992813950881820757032681498913271397258319072048849027200723759361667536516294503448272914443089207688061713689155595584128899499078237801558791097041289723424433016172228363925357807050597594445210890056447453176075306062808959828129408523637959750374281780833438906192315793151104131413791564152964508582868064487512483865078591484922922593192978761153670788782117862300714276354391891574207723357025536661869036170842627559868589820514710110165361773306083973290801533521878763248334730016561394633400781690566899159822525447948426304778230510072083561623165698818724624062566097379227457452515385465490068630482058057179793389101324174862892594601788080423485236089757960190214931172113812465020597269739668142529704444557567083992937806547858702525221850045486008503600624781162686259059465561665650587379909268784009383716643526674932729933624050164953397581252837516906273883460503866526587392837843991090334263031625833065892033224228546676147568882129091393539728797282833788645842599935452707865090482874271599474511733648787279711947487545705919767943919532150406990429929631139884375097919592013477658426022965995700791593153174475081472664957373259070797922135639236612148559646501790576826917026364434760675763072060115118594972344968541736915347087821398721926377317333444125145710442269491471092061030982486938355105301584946465681777135414715861424474197722643979875061726794359547849757908292601076052573951587869310172410838579542413441655497635215576074337578627088030691579512707051739217876689934503550839670004181840117197365460817915308372900024233709932273494282308027614435075819991131900158815914500796736922604124437988204956750623204059961187517131370778655203996767473557065531392564761354455506422889878712824195223754363541940074628313018711267436360859167550697639644125790628771026724271457356715515030696362240513536445678177700349598950021818290789623725348456836088270792220074735269934840474359874875599305708327007886004601212880715917727657625989362435291891370433251056906558608083530000664719740593407231953700116796745627747118190890047676304173482648874257749830986262963117460863506860652545926449022744599565325538706227380896618275913284034832227121898598371507597387191313747834737002786007795364005964271483579553703658182551646303851557541492620887644035771477776375421113069292997206952352785715140487897830793215319403032131575026901716443028641759669610659659680737269887655739972777739486290846954624563047239005084755329526581961797985327856321726643637277399518323229438019803927413869174563340290638913925758078152027976610104665603309407834268088454937656086328406741127462349677868604874896254840004468230128154079887716345820516161676539799376636005347333077388143126441127675204016478367115870888056082945120034909704748565079649925970809916561935305217223372403438697440476175470043039944927713334529018457122736258906890643040973794591010732267015761464900368528225327687846767293384307279426362770931520013601497939941903331614328111296831258394900568509992728236301658310744347978180791935992447844894286816230757750867643488954662220391001924247687587526485763033380798734745011400759608067302553250043197105634111852353636096421266288480231351789189124669282885149790964393487511008810403855044540417735760851171791861776029134780371668453023365730820651666434495057009167195261041177656583271406789665712410809144169178533241860954183128150479036374603102562959979226702623935800031440409016275744228531013383970283679331897053359701137630013470342894651047280455178236218164668198948859287166623271470704007892611945658077208792221061664764467238404965239235715113014181659997853528880317129689524096407083761576093192308046374564604890032120044664917863613582063891430409308386733279698116594591110542268056596592631971550606984283749810825756541489657606119589809057236676154155083676982857512619744567217064114201599440907811504730703128794848691920254955897102735417891532951476710318561201736344296689845513817429541445430649366603585492545274436459304359777500654025234482263027570769907203703400852250218880306313202547877861495991699878799265924651355047949786195887094631217022739176949827195332047397031903666226043715475289164304180413134556446856834685164438187095055263181045412773532130160920183664166895725523526579938257069235983639138519533596346654966953975440179450179734313544801102078938470271138112609468816156768802048355785535326216683170596305559852798461050659324187632261746372748908846462947253370069635949678857818185013059187519187472181582571730570110726305123518657523298893666981002813872053951452570480447842512648296820725138363478636350760763964473937501393371338789389163398742814183502335918479428450058677391016283090053535889352873210275310676624459890192862898729979903531929791500757552395576527261780855227313218358217945270816834931474757531343569259414969975229386875937852472024558695875732176844321037333466224494556730560433037424967403387170413823395615572281434380575091774731551505985245674783933184066252453991404697115685352886779317202029765377816169740254072692200880054574546930245858943593489218747431322851292471256085835291724806866791930964730306653749850901711260385379627349408324780919041316929416999331973755842406101016631097855634182924635814840296280634157145314718179092311702102360647442558315826677711977327348505190482649346789271892948767689202725966775891188705201187208928205134930652146763915663418677983508025038955173003065018927926073455721029214231966191934347890799954808295995924102056561664407962148948401654141086935444834395631222553342429311958145440982519528539155782940698783394794319565907098045034597751176724013417986800046842706376960572783382070429298010330922137079856011088641357113169101913016857218258104489568125045815052955691118811161480379501790677501492810234655049289756593267630316613517344628878269427930698253464584999624965452066132987207980713062337699554756452225368764239710138055400008430300239418905919728546689711916709974143686826792458764966122918764772527273122674887395791564220585272205141380869533261014486393585066079154138955451434729643061743488226115608167917110858158813076581531142584851439969630869273044567540957833660557800061011819326609899233856729273496603038470197540145951670445154301222792397758638131306274735895790959156326781556214193578485257196020615708383669985951240001730680788430210314410912301626738556640818065023244503639377056243191822747733699545326598136785385862573236938503914502983344005066751424563421151467823478481080962944282231160602561772851028260595112760401367697339466775449442937202386252901638720249145269931136356344686956358551926459882969841597113372276631628624232972493530728975227592600932625990551035306407340520739434759517378919860807015715887460306602066548301448990123150539480544239155839930489866970095613890040206434550617463309859246833624056009735502962711198179681458361755916079745269314633728622397018043755456208168480328193697030054165444673059911579015564502649824530723619210444626986589261954598381650756749927066635883626446041303457742661918350119041532151369088582807655369898959627944305391699993151537765129280542736064679875789947418046335752742704253959498385552461163523880518032719759756638647205392611093182233789414113261645740948741703896427905137434745873866369564836044989791295996613148020774007302818607019325350212214718785037551242286812360366353385548569346924475054900927692960683475112992963063814094884814393619863597176340725909538491124700655662288545843457096097047531672554541776242305458658863514527590265614737774056835034701193742863569135338344332355264606643243808767574804325353009968764353228599092327625308818521558513403430045694195458930747751173839452993023903780009788932200588983143763823174063456280025755404859528132238378003852584664965535469939813806413420301707465068520819026017906065521963464232855553684514101662429565698037023566052611817694371465433696274546819425571312432155047829074022183142731605522583618720174055721645196323546367151425927430949342441461274832824188115763414737548307991391207474960413454865064823976846748534380234499413205463938513860341262855041545961068260940819719526426776479592012719203608823090291470624101442352221629982877478293172615563292312651117659279748465506326133848746158820232311812698699910858634513347279609379447941634364485160621614003409445643820306358169944243735751141843041244316297240312883080848068816528154016605754932156459907732098506589707531005168803404191053756015615877707729336497260106603052723759490849001984025947256626934358870225407484252414870938308789313759339309817715691337484401470171930830568371089442931234720012334031692232365696398298487732430098096392123158705811276993383521811488009645612118188852859666796021862571074156924803446448973074725207679273832933674955330916054733617773590524977051570981175312001548905538016673695452286370612822072765493349272174540683949230086133038745146449199622532936772974750539521572433433605743795896149665438325652964483588164627839048341187751725547576176937529187380595287333963426865419277110084027684387448100271312885354591398064194199708067260693981431863780172920891863450042813146027237890648994925898398854447610047170375445702771040232698565100261789735525553899612205572226830829110886688267138479590399037924699109426078487439022680256559064227861373138956737173117311716839913243794926760320790001063536403946797752447858753439148187161798556402691050904818216036350193480090449466345167570313549746708594404148056129232899337345960906416077752091987041789334909368412664373778375143311336111965663440645738571849873353313634089091043266780326410152088820690826515360666014329743667849828428245289605700080305336138761012795946688679216978155635645710158819152537581170799028085559454181353816591203575003759651419017083034481010552538106594859102469384021432697921164517088049725189763826971646537406424731916254109184789747246129974813253274896626405733574169101544864929051789948658866956406190341187881556599492697747404718076006651509120247370328807532849890594145209624822924388390719889917197436214736687930131723345880141788481663935788854671869256314532300291583136879813942934404875665121285415642491685279096137727653885481639868338645412733279684789869287775437222364757279980068596679584663992899736847956459768963838448327636290584838406261701728838287686171010042357494023853969873545055515281959495917275050727449052091040012598694007030941975326711297916856029707154982057640058728520126225855901392984717106961206027844731184854789967567676019504609060169667971195340484827912014224843841673896572520734450828192046483575096996240274930701312708453202677119817303932663503177983858167896644587590691799027389509763138791526566499686324348155238093767809803047959888979038636329849770478407224146705320937056333780135955030263248813851986313791206658014651109831678251667277019997425927070759575514290081151516506439069196360234994008454093922408667406905529317745623091705743728330631485099100561900174830452565775283300960104841922718337205927467707119779128627298412399586807861020221548889076509084080728364755595659043287357967080461509558207830601106660834322226764014012857001182525748776732679109726648161368683009053547560571015958224299360450496177739520582800063273877238405179022585240241179748600811056606618040528615795601753704469428097465464042392218599279517715925981656890874130055907481350303445198942389962841747056411593997208105996027291626037083517721315187190495446347717732328454203414652324340092400355453140753985604387158556782114625488667873086827728320673897539996967027070535723585567350987258024557617315689319957940709263341065734702683300837716269839778207577665819979371172012680359327094353096418604273581641398903237857999186027107863559449303492797574685959252725584259799635415588403775107462581289717341766196559714760540868331368163245060720205775310831574127019442930675154977050808820555062489900919630357717917175004462044707616005987162638040926135779879723888620954017263851663088345900102124489694604046356998549017769703509006524626370390197065600605792870754230172416035302062421014777186213719115618868502334058072110331645397922427217846228153203668350458143769007504246993764721779212943535547780019613065462003241313534813346028356863288717126000443760087436186547537384408973506358259810107337233100645658936477978190950022865346770575037313455692881652134131275977498171520372573693245597662500721218852679706934805184596805771304771228551638088345098443959105533076437163447446568715789471400787018266126324872849479272289773087939560188006082354792273694127750660738218982546174414628004470693568922833178963565269674893478951541009187939492262163122186740979934108546033800354166129574634438034360897878154309048291626596312740082737107271696563262832438006779827694266357142729080211752004103615157883931265357713992176439421858433957567828747314269849623334506907509392629244501610753962268344228228709293629219166254204764442047924152024797626461401473690558893879833270870488423808855308402986603606319497404373770231248543510733812889015168806361609147097471580935455617280270039830575641409154339033170750531113339118228004553921615836997235318763281206850209839269522135097302826408795370859573643249595446493134101418884219000180469516080878955779693537231936636968424070071329396171520330464185652105127817600193541125252771545228870873149600700418096173215629489890496501966592725052935642916430835257057001980017510616896309342335488233857728809065258751268153035501869190736419525379202381186757504462135919237383041657069848515904249058798571913634719660435003094794748242033393610504650851884559850988318999189836560860368347539652880551665769202322753969066943561907579599611291668341230256043243431816699265040461989019493179881008094064255877905966654943638511199926352097674359413113281002330599585219422080615282048890393901174396576457557451762847382300379308841751726534764696989798988665735236720880220120612988198345652647943178972352008581790789478086193914032755333114940180454050166495884823803295364396280139107072154201997646205968560804312354216109067629587963981686765747285967750625914169102613627891353892464303862304798115215612908783974749852621677588949444834529729611000885627972484133579995425603129330070943118751692855372842121874436312526451669030258715596618099250558267599774370183052366469754237142088479193646400723423138503180215487382546648796027751056555180776183583699592145169386641934744552505711631422258575846159567456838164636610834098223004029086104254631930348711821670267345903394649381492050779274684467771844784738485510196516046004426627309313162804872062256871452459716680503004368708512465645155074730722096460353788501204761906218235417911589313349846553482658554536921794969468174490469254971302733581602988997348352925635298201255363855294619798728774492615031713304093220072538545199023543362267462200679364562435446973626139113534371280397899859702196813710074825051727920086022121347606759869922019685122246070165813366631033819669674845689922841199000873763458295192424054429684177980352007243850312088969814999263478491985493152951426869216884706962529082443796123818393708860548891312753335599111481392672674190949888294494057173193684290662877303397649567065003909468276984523614706969008289211269431736162632460088710644422316203265296911782416555248651318453521277955202949042880786779107182394919874745468419313960939343013355827237653438599373060899115482399713126645122726179877660325819935558014647539817267045061631128156613290145359481708370081269863309326567530800320371610281400480265889086914479030335831132311210038257091911323445619606557280612290348039255284560943388785974174569440001037868780727626070404712852485447895994127155906355846867709647098058776975296366002153384336442498200416237171119224119502449777995284176939490450401257348660768305169032001677957959764138081920722017659263565826486537685619393021793274237320931963969101535204249920079225512193980410321072927815177626688337717488320487010773081008467013109595373508384021444421862718336050210421459518502436796777986136230462245448922579763540743811964797443809647971949114671342989649739200686446309130078193049941729187022661234286688626240708788867256900380665344019649300611731926188903077110255436951414231709947961244092259130503594913515115744423211036646421744431532440586170868543754512573664995455548568578438970881557416558356866538670548438846244545896420325412426312570702197411249797323477252138370323319100301277928294928382345989114549261779987192434613639344559166387830521258153810465130488610650757844101174678059406057051262924722044335559609287449869515631424495789684178637520550279480012118425247819429304091953887720118058358861150723923109278778958573919214196846738640700393298206886341143468587785287432975171778933220535760010681934017819852748217249461563270653980680024947957572111473427332275308255339598653170482067918766976916398121971473121207759785383505870499627273805866719537165656096346951725629907611218741796954749803936798314561197085382111170589308522772677757324799842558719261584517216289857960053404625978252573896382726804342737765679239881143916981581797009690964733767468759004674358557136279989190503374298805281481968172402190838897536097779047933619871489928441541312176582940189008557434081832823444468102164480379750199407529406021473745925183042821248033484584081136474629523603746165620544004158607533762203272980619526093446379141094987693678737110244424087946053609402893653146212121172281240386274178348761393863509988470109133699443375486407682379924200590094217417908412763083484151585333992951734983846898265971288355323928721050110046698286729322692415984720010310925591935602656933062491053790921366956405548517477261856494275448051602845929802254067465995370668198970108161961323971756383962182871577650794077609917111245228455736249832796195730993767813921289483781625403839471783421351860158668380517084299394050528591185289782894841190459901591258080057494389847246251237608782226684582045053612687146755094616774070832442577486448432120660667933040545237803854694653391855385399691322999517863386496047977285709767085164733205512531768057206085741386327740725632177070647154957105598498623427562136177334744408857646847647830357613216334245034448130981786634899809878157921792990682992159261901423183091376012420866572504733523803212444727258170486742399961915999529007685448161165547039152046143543440612156413108309295488564403596173137896658549589395261712647307925494360363109034619671808124400103893807047954947189402045195594531790912788419085312010163917496307227196446334795003809121859673953863794183221906567073030431504835140991477367974893582166116567008062437618137949283909989912011593259920599023107106667049453172689814485719777025989646317977996669701143959511553145748054211440639534569389136459494754727102976282429700267646112887288398113494520876826319895737455382354081766838026137517381582148100404727881162034139014240775899050096277852762691650864506302018705223156885089024471893412951923046734777700396765068490682713345652875016845996633456057707392527327300184357989356368538078176605155813001655841301648783061947027341359853427587786913998826426652251747182811198572981385692061234032490384176266820174808840021223792463279931195334081208562864457870971439102118356853692890208166643713991231656604774021570740103258922191646205643891598019622143544704647225731988034248185647335524770029978001086260824361626783800281383684120854816118077038800998570499459778807501088736845450236648477179040615986974536945036617622735335063423760691157880568921179649445921584688348723409969435426649279706343325721983338627076439850547831783136408334007158732214745457749333793788326394506925056743568509693409707743557727553400679584787032080541238621371373395283486923137059577901502606067294760869893160606443469220225570658379110219993284261588748627463949577615444170043604263337801381672040424484742550931889268410303989791161676090032762683207018970840800940640159900621632755526587796185807772499238222859261991878452287315283694262108404306846962061983529367898617140947211137605888758169829190323029107312070047268258367747585034077877700858132785916195853688670272029886088684658323914059007225104179559442458769529057764681059349787261476641247583679499836164554342914389941664669498081728554236036373970010262992429860195863432819398364000021925233391280936883175550579874283918494936773069027059274190601362620285314488576313700736471555545983554768474714031221719960038919567215749320407249724974312429285845214734590649661107770752915166919779831164176726318990358686438445197341881436548907082131452974401927605720715615451257261982605818067939455519536805961939717522249583123645019687151790665698128864114884621319512268596460205509726242558192010804375405499976009296723942140657665530014172460274050449960153656194582572210661667177104503058758705284720358690519913258986946060474908509013203737833030565218660539970194070120484134943329731278263121650033293771223561728710141344428117019700954893451455550811631469303844061031520312275742754835644083204549874015728189350131393636937673269045797544232271283140375161135455457113340409349796675046012019473010306235440487414004630138375790991178539490005419959247100482304752151198454541088892724651180588452113004279231611387296858537631349076807856313145263675412645513658768165555357754763820003081140328877678759246011360851494189000291500167908413572154991922790612391870237748336813393353673360729562582059944231585468015984938594114091906643978690065607529927144183616929779722277079284934618962831843539518538786745008094109603599019061435227228367279570485400139648465464105456111770514354639722225554293879458532199832600491794234572628307625814051866225209732934683274232624037471953083290226461838410022874102914880365215931574264860133340952521503924597552895884896983900182632857675374593987850175267156255940510994409192975601637978379930347324584677401973880800638840388691473102403336736652505711355577263595827142716171953289092950983068961950138741243531455894696275683398634342434152256079883094015331408883769321408762648817940929819369469804234923136048355942331141633765662153490305260397983085344077218133900970866818303615288935691489892805010935644254114106816021401561510470205595160068545709856881235269385818748013186789090417618393738510621998927214484748032395469230949493073952617568577478546247251246837479850766662124061616289437655418012092130716876351310069353457040221407283804608154448774849624634412440561514205836403211186385516202646399744201048967891880134517205798256154211541520829774924870696058469296464329850098503630141120910748503596731106319843869212004888419115691644422143504135456351181209598581351608623601044112049035191429951284357624677838505245723689368664532221974590614415804727137971299187580045113605285977414851464054259703103823388627835153474393890583653868611662332641120224664809866688948654432574680000233852506695437558020146465821817831385224080627820652134555836768115808362110560215951564225182688222646534773480204629782056513064700838435396533970248057154264646322713225619755972385588496221274156252815963403602835668740442648227269666350328418439065673831729859727950077684207423551125974302066271607722242007587012741928617882617235667178424843681243048446490565956220606221590716502829791330443666927718066954412122448216870974681484542852133138104605894252953580669122105323381284238013837717678927660978501708572104636303008656434687227105341099270800214640829108559605058109272292230161056237013617881142359134686325522603738646950651277143813620871360901067731665588659723760476838252999594574855008794101395063763729698057519773008548160883746405822337436967456687553577311959658827433255336564917804718420217480241497374940501000220978558106351087474762424199562019945748078332029458693115657376965535550911925102944925466646498053000879700461605380625047967362712002148587203774960637860525565885203706886137665741712087141861661571465341740095721727962408724335765249053908003669217657697806147192769296644250753624575495889340037813523072994835692162786789380419148390923026839575604411602384523276439462180439134387167517087686059811855359293278744652727542836628658104799406538359008830940380625764728295299146111623115409831796888092549609866903233879670650274186416374468788155684058016933414687334881236200401737483037575552755142266194810344091385810336447694099251331477999599262444352443132844137097915095769392313674405026596943662745855454211016823211748780948865160300713490965485959497577387145788180111165157709524905011440813806942660667701298644913503793618593519003433992835519725507489151426836797416519154951129780906245984319002414843789647480791509438896007832405412851254278959601897592249662446183374691981789083827206678732601937886660571537004348199108667876617274256337661894608211438551559706934993473653173929239078209016452194343006672039595880633318461279022812741489210741915471483696280400544497368246515127270618615400091034636610796701605307199091056490036254197793339639235780666127103948897452027631374902517058278175362454545779253647383812239955066709915578432120696703324323559403341537810436083823067838277729255405776380782572408360970788074028832937217679985094087285520473664571701164884767592460972199354633834263692575794233340486756448781860612836906796264389647430196859825318419210238777504813008237981340871104202859045574905467283690771225963976724346143744285456807641282544157599429720566952775644781700319317483549320323208250828804308138488283132525228541354415209536218727017350528633053924759619751521600105173611286165600226558507250909161597456985216737966784737195586976400232286574340443460621766366547166479872503212346398470788729642891931829554366771144822709425497618203980768180262807649588098200547145315214965338968256877235237071877144028844557248182709477007056895447955120194259266280817761996440337803451531109367758171637893700880227260917047639986447230427332165503579208881306635005229258909160811682426696663581295273268834958846771176254922509750192046004672732314266564364272319798953058203942618393298802843699740200774659427458490527302725416888192819373696999960408303477169834347710192219001732017014451226284009198478720949622292332485834659972526853586265788009238868424625589399579110097813464262858937378452653675817567993229181524261536327739542536552554378486751837764472255550772115070017740796705095217983647086365373609502626397140154275880622207486539746156063831037693738414819822527990925149288990697311484191529244559890501757072535472200073718674132519747376817305023661416846173019906725432954077797556192794694177442209383188453343928724779934412751648920847118973468454141329950891840939647097041929122561771357589148841799331209687971566403251851615658590064166305882734625400388771525728271464634608855580912729700260319935928195515114472162632874274054587464543901608831885209406128364073650889806167888727184363344820660905981481431319918680001361507918447253234148174157139330293257642008640145786461791208373899371794773978212317510554924065726793596105904450915592436218203979427128599325082213422791683818568473756524787982044243181386021364601768918810768027211644940000366640969864613356354757471148488547491873751030931373845502788513934119990032358308971853735419867765420025113670199017415616488754902569277844873060249247357465040889660717039222372906791738314714077774690581744759672720950374828233134531741273540109247258071991016086572592049248194024447152792578262971548641541773025256024160880025888166728699803267388409969224302985639339918552398883124065545860604217842619309876086339986365346391966074995996645455295144158450315729128761794529100923210499314370693743429897708725119846587727038305985417919040285387765210741620976162312298888506685069162491364215793054323723710054181435008955723367415641921038267005505738576361752715914539044959892667660873649095904834352339174479816142259077938368300967943982250534983672222772234414626300800077519387967699763023574534813959624746919499767435580180600197450467802277240415616020969298075052168422839647946402431635397081377316354798645622119447003497780875332711281026666487100336472118641584427273049516526296491792620471848050296760353990599754876066681984364618788250888604543533932342612442563416696537448230980323611823124111823344960205903662638447518892034538648485764054165716842488118194788610881552431348200536474256992672792951174971945186682969649979167398860592420215580336557638684318580558343711404634259375162611012685412744104310723906960288840077717662876077768836471399486784678783515374147464436269027641445870565671761803052768472300173845097167270409951197861598706865055123135539964073870318157417759910478631405017852014174947208643095506132850830292547035185994060161089344023479588584325173782206268640392770849969260348918605736348759053161621337957092425003867251046772175057613598425589643245617722953175961859876338810601312601207737865993501848477518500877198344393854054176094534454263684368482481255124133827139800732168058271661211056094411546928312948921280372777669600463350656189088004974831521589334990795828041748820627215325502655999775015932660804126892478397631883088607063645084587246518367997525023737238067242889787727836576220047438752016421248869756816245827172080523126357849915380241868497383119736335870355053769482139907067343448995218130621142432089466802565941120216312442643218130510407919347573022873442192722850428931948575359643499589260039199060406196059436173762125571548576826506991995990692978736148475707539934045385012648439942725773581938355772123293050278546270636890283800463728851248637522418601377833525724868193556829205236081326120293770038802298629524476700669653688249186950877646102169451885205812153742942812469596667739381975631418339923362437715938680623016290975856530568547540722950310340672749926596224788011205862294726756980796381419281401365671196320742526708519361141623894263862642973619340766733141056831063423085690612554519931798984653512110643286761682958359275235455420866749659595803478942467203897244825782403945972020410234172099350922276652369316592046112174516644091692266798134393465340112068505323149616226756319628505064328577376303246584554510944206610817717884500742056836257700819991755253829376753341275082515558671567612303485720787017855037599526477458444933903526349459467081218408715051302546456784342764968429290476516858496645864758282822378340275099674766840245150871576640710815913317062915534252112265130098071241654274017326021189120760370957418583487711370695217234205747109925175759849526264356897798920480996231437707032882778120796550697585677158004481506965961482581879386062367937769429573952480764600419626445222959228022395102982665784670820586743416591027626214332044234213202345260259065910628617231565793270779501421780596831984155025397232518449231631622904705996674371329397934366628479971851252691451368340445887983572865619985382536039364023603417939854459000829086824507663891160038793471210053077926470750098321563133642057324705523019485166455766014266827771108068498116400948514766358714385472694334437554344270035966980090095513903604975593632395580194721855536338546949650261637779564634025632673689975912112365254533007581874036838969026661816612950834007387165743840124760215095789785412662440548479978846901689386186296286233662286571211079801039877899481593229852941963945184996297755358097620325129775017621733719602891036077600408818610789750310984806942805908934844184135733464413781155634805957541950727489144307154514672463101086074100231841927156782015256717461140761895283304440284075935398582335505434166910477612594834966474861379317352677823400709761167824552026993571440540983820957575080536015783319119289784384962745890884158278466839103901926430650745847567384419606665778657164886222736641141994461252409925961104412825332932406478206335092483341398529059759507866545068886510012277429256187417663144017880182072695432996408367994184025519038476082251380273932438790599381891744768917698221808673053695403478808454189219998282869759580019383432294981346459528215433342988408223038428629441964036187102697745304708976341406013436552851516228220181766489801961570744213074740094642102806251947184555047995211427538184175742934334317841135053023622743150776154115820470716258076956183043185958403372318183637553629346439852431928000428908851433590014482815111122744206685290354673912139349524514776467756088655437263844252166620529746427870338028730797178664398237971546127211712233998524311628110556819783130560852302170886000435123754840328144605575011999284602100483233343355185329921040494509807769194146362341411428412583720563868809804254765359448786381982204525133212082098025693942437613687811313362526632240349927025766206385902475908708175406811517461119734865822078879789715355508976203589621953019675482733974870861182020621547088394875481840752622310722310397131442604852232793807765318110449252075198494286358362328971499801527765721701817290837270159932258094339249234829620471186965606196412531234575224225694557061361143492602921641347196446233465863143661318319129100939445731924950948466995218079458349426432482472272920545975899850268315746493392031074608021369777723117379689949165219693511154503928052684586093759060717236615527028495945882421125902258837379996124301721830717665904109596395090007340602446014260577179244087189284617910269224888108938831855316672824650328701126595785748394168689071465035386877764040578184943534580179887530949146471500166049688131941765837219921148591659542422271996899227872877149897515254470418910382642179748751501643069302824835601840951587815914103592060873651637619313200880876072611517909527506891563807441153246238893676817397613458140335415237650981799789083822502067863048992774908235890130442241686280267747533436769302851813543456203255041094732751427946122506540047870147810816562147373739185224193068552040139389544899580147119505984662895922381773930154582186563880486681817426567327276058759114814306316204481093970365552937697696860514632449867586642225047358530800278801170937180377546801254279996287887844423107498437170627992566814721495229383485554899705502380703526767882355587677566340957462352168453095901659544201006394987772894340980018833571079772007211248189545446073518336500881819595543418229378295643795527983548495846330316999720483831132571877193969429765507545944743372688632719090133448954189865324232125073312640774094806788388394898719074761612455008168460883758908464602407848285509795036944622624533693262870090248254417195106342433694635511683324554232734153374456688402613725467527391818391230720293234069442627645422935957396038812658245124794253666834811203799928635698688655818207373140557476977322255148271398587724042199773689878934044951078368183334287684822253442396334726849507999353174601744714863450399835629294237970841620250305623186290140126476305599327579042975549477956459060140892115567432377017866040716733411214766556886094920906662466191248296322279807663270551382353853727089933455471554926219977118857694183807898499328512872434702117842448590172689197315870141130092321919473856943095451420453637156592559704331294041467538000838710940935026001366422508915626142610547594889405972208498570728899640789920289486546379780649676458646846128179997537993772180724435314690540945568997235084571625411601114733044926804593067443258652256622658173328764091205393091919288072650526725656028286969524100546854684192540390256699018073037771617625945925674328542235078509468310741042585215349895338983950824264436413880048691018336447943065950735954982285056922194084845645162097218123457740677499024646520408674917230423230543678519343016057249620842618386574100139109920801773317365974364633809210836741211336691554087336290842124986126071477582264438209458028544596931409194172067704054515385292574920717619210639095931556022244950148566333113504548603435122658329460626752790638027257395820842746330218324998682979487934705786709231123121723291162629894480956706459664837932034769077870967716529948721166304894791091178181097986520562662789214775910716256307715372566022202298565872988241814840272946088892291631995556191755419223336485990124214944257884165798804031442938925049757829482611808184955168165218415293232197721259033178521998793056461481698513558906354930785094461764624451250146664647032675019535736440702416093614279780886379613984470804771677201462013398609386788903877775900665382236565637548782074940399541620970748707181242872308642500480238018494639147224540637586882759205886097886722760062482732086462796634729092336245321529020243432657276673440203792110889469951286373431012406203946385953712520815670115237101685056073673185190879518870714027872351584715712545173911231554214598631221156311031603480000816050066912525323227119025464818881007177844151790157900818490024554368485075679028225676326986480255672314845167631080188718404744046694849870768165967940457392306746311810232348109881161039133614401024652256344045448294180974953110595203720596493440455839679152484624898500094509049801235516409452101816691953228988328614876160285976931958839342062479887433085068181647605161429010102302188235307488812071620267626762123570587976639321263418075283730055533765247983943611901863423643860268551063917135535781115453233537733449740832560568573545152548561475927854363715336536408574375564315970608406872323992387120142948957028418434388290245038466946686729517460826224004112930574598363068802303940765992140070376163642281557486211186939264114931037854507504067992682753908631651085064676804175958049095910950095520413121751273966892742812658656601431912011779061826104844966845747564040934622214508928822339460612621247738834956529328254694523092420608898917201823234271049473426550450015368404121692300792664156379454413660616478266212539223519698010734303333132587954125571679393488888760554168912776902157447997482139033230976875562362812825566707949020335117011488891204182203329024554467542591673351204746085730828982936240537458557487172972311782407083115188796920618149758714066623370402895356500357867864879128705750538419882653171607746984911494417359187502644886425954452891558244633979403775812230868492589717588456106892251233318530478599238977585602651854521567931182240572295920733344797799904380202617694343320934719149368435477458348387563654652112929879815355549715960572424250608269327347309999032328300038133614164058930063763587768597477782408978325263374213516883597770298369466771188611117425526489913763488639215932011888781352517799736510890441389867038482386809306267174362797136040243670777181695244015925681778030321213799820031069960654887379095568050611375728017719398087754785848664151380603097876931270168220379511891430599356001869187852271352429107281070951231303226896683736435821927007477647368676218017751845175423130965630649922290160132128078370106423858882478699189495187780087264096299665455240510512238944194970462724889617160384566936200126399440850675918210816961925331733703286853693100709907447682106326042831344001034266471013818254364172482910711954153630391078273139724205649586428755941196209010983085015802855735674622686871527328641632621892433271247474963992619701221805075297784290840896449738072224587036378354685660770141690306632834607164164150172443009005210273295710042666858173442554134360660546465717409693604416104307082184401138306262527182271087356785774294541308743270206895360108600570837644734166975555753626860441558479366591175875168888910829335852902903182654118405520205199090363921310832268093541361070837389150728932693582824266836828659116317387390762113917092926023756191853928945849444903508633791090030888232823188091994706778629183181285169639028080501883820135650190695017659531502632978904222206316870886033336385558593454855871339377771272304875581429307426538610936656413647824476987178176592845507869520536353829934238428206156183484787563198940348257050960254987774658071185211731437056556502869649027557220242158658689946740433265031036473829825115403957283014836288594033479388645415748765023150900071018410811182973350111939811661058464201109944195523091071409289233756456023619673921642246061957665059046206121655349032069043032754640263207593888394996648153668614357365864661853659042561658728428821371337934955358934890906644211980481796386290104866577469241513577621622518207998216707482483676393527889961177663419453150571446275071528500286865374491373395860704926351177953217903781898184738075407764668676245980081115442210796445934804567360697780497644353023317053968672134829485218363262512758420604110630969018299051981350502139179888903876684143214669378670711574543247706925916500285288357897343627417732456288855500625056356698085020378867241481423303650869822258515707669906055229418520313724533779630439043024615503958652823758512808010487508033338428454358693425531621829804661838721014319227704583564773159218366201022056602584805101452674738646125290592602321992029120003477863945896241514949101031490532472660381069179665381044163349743218885709636997221816034579547306889954016561723919161916535510040896186764659638465356534948909318518177331789241680845043326590066949024988392807730730607256182254716488573244022003471746849354450531410228666638813842395903358012395959341445719494812130504522338000332160198112323869053954630612033636740496866697889854154227053933169259222890312764413130443853960262623414408324139855223089771786090516458556051642906357215142854830969570400137611194999085689553464163677469840764542606708666522053859337801011784224027456416147056952715770164331393287685769688770564062646369508155226599082351415623688685227164188272901628452271868107218597091773358937280818692831685777416169991340966124524220471546475234965265050231132147689662280177631866728119407245506217225349172617600258576855731054554546204687584663893771283721288687029375860887329225166519965831326562860257217004011083897458245763333711908021768537405981149601986072783303897810192666073383937022491559874594849011908347548516448788987115741423171332624529890536561424169281471628583970291725398657655265611640655236190923348019891916205376906917195750906938153449034064683952330898943096450324282745855230849203377342128349576909511923694165362524843053077891386028332607488385717588860290257711193937295766224305395610535638156374954673849054191038303891278610567078821638029666320189591477806713413467597408782342407668187498667621667044551446353201345627338011448178051424769756975089007014392253149017702804347626927329929437905800843881361226006301832491821121546668558795697467257526533440686289987191715198392640632667161547662736789770584205681300715259210224400309419396291066450691019216470346533780732260619023361814241201959208016161079898121634437091269440378049813013840249424509128071568170157350418854874467668317770888236190158835684135483835115043292381012378466262361203461041363590316204576618095252793166500317606891234136957339542055165139136036028157450978868073092004625995569194805326832446923755332366330315243504447571621373268065082835995555475739892384566770933726518587865286700439696987372589024776180794395003689928747516505002967476662647047755065643500112247129192265998557694817063950785222411904864679858128338469035137718553102423737147887586088291219092210325237054178167874794502884272403968457278883963919547442327348341945411796682169192995646574293877904689074519167260353141291380026082481196633419893701923902270794958081150806924364161978442826415463921098969313306754054535343357195186931349339130997174811437368368824085719147136112895450851125007251472872675983095797844910212212254778605285354939062594341517354863679868924438776773865048972572569773039026345039291572163438194350807876390600131879659970590545217461790421265021998867066910574609070967103312837234973849103281382540910697616658665516153822001598114705683732489959971750777643949890027054425680355379254106550365058505234831222016623974530386684527679273490220522906687955780866527929320967435811869640699062288756615849774991799885504330624190360043195817688205074303334723513252119207490836300302955729686581969796085632194541507935837341422551556449903847647458518746531516546839246666978869633659487700355583937976790323164898644926758071353154273118442882760192535036920322889690049064175818461657308711173669211202799173828883361048049762213816743386179433518333564813223943892818625286475552808489005854689791759952245480634628259089332600326793409831915618683079651791934564759962063314329884306533251026436685182550694433798013750094357095308705809670599646128427264062942279798365358100338333696151947658031272920198126638389458921677585965922602967805476855031194710109143326737655969268373895405556121091804326289295993862891068553265250214887496373104720131539849601736862069568455994224977949720414609266234176865868727670084618714912405780276381129991766907328422893766820941347017912673996188457225903445191926615666379084773024724939807677207316113039242667974434914372166625395877573781052250133005425819714319142358273569877141278739513219221984812908171824397243625253454300568938965427695509152412827554668436436910073982941014048434562085956135997226765556980223363668553574343648945245488556919285295657134356253518514108744291867556129026701560523141196613148564363424132357271656802061819457187973237133157771061874551527558252875273656294163724308192595142005845062601452533673761794601847798223295797744757402502596287228259794951810236085894713736500572514325512422516313699022723258669813430604834952200545797169550207831462622143505816547441731275412002328238093110588392256605592418085306452177712117727581828304777488022533640764778406827770330498640984110139192939803359068545531556895741312560867575957148598408822480490925305525887433492909550198232107428420216914629910029141090030134137015281463479731431459811131459077388445387994412354490584657771460885876496603450792940049005648866717768620609810344739712926207445811509297190911919182679279855844698637332781103783892308383249245045591776735257757657690468557804226268135292346816967038609103248044808235399122516304438406304338237256466059263952286328502925476218038593518984412977704195077666902893170210546838058277794992803701266726742035654519782057503168972140880222992093972608636098777325459079757602572697333826006710860191005615332117742240833416999836414425138742493550456888470396427265093048200648844815067286069034713486073627462897007246221751937707407762219044067637729764735465307115077552903414884442731165933612735140963137379810901568835775767082158261914930627220581085401630074080018261977638084633804458204241254886173681018041489542422384521228666080915862550050963179838843359861570905001792172906756897281202208739473858495000731709786519431977991811617842873393811153882431751058899324196957419182844870890092840116929188293979418022514010713361568025579891876565855447389688562435042655619736540345749221704738654904148839375446523040850758546022622418123589813705415226147326412590205421900141661691095788192459396811636337558214133826515328994101063994349261079169309498313537581086887548485297565055226257347092780017738866995246473331073455991381045357463979281278770628074674834040595789235926119438808898149780711266469587021554054223212416739263823903354471876342080782457914840143391522060937322355723194784077209859424673436602102484169200760098153571079820369876617129163214102062513797549200239672377171690389160503136650074935330727457144370878438989853986212484075661543018303773925951909414391827147613518386665172654333752955775629079175126203715322153078246739847471369478539460829058550737911790473694273677420904294683930109960863846577832079267402518512136390677648658909696645246302075295689778992289350412274453252191056582439872511291164350770407590455421549931633359073170761448397494480407342247192287802584392332005724413109579469323571857838151838773369217826478207033717856969540495051397557674244223659846933947916872402554165239485723630834421417605293172665638217681409853741880100775376352499905153852264556778405393943344685101869618060086786096862424427011173392003795745915055161861966724651601483166229709215921949452073407063370668664287958741261030292303674396813602944129671516756632449521115388468798514364470555255296062003321109142671631547223390254539790685262847016981598973849278110122870100842914302673805031258002518181310770390765902147649008184582848108205260742371998093083515698404184400585621424094335892949740372428299633041503391183487831751456244166042141077319587715385417399073277901590674134811105526682560824134428776464828454790640280055936635090686798602859497711697041714863558639712278350306975405958136370269291655198297904279660690667329320590909353457085294020336248186903497106968048583603983783654927044684031760290628200380976457560694172730786735937211158877964850623647719741177525180685403389032924528748493979951346342518879380514269477443435046031222288783632861167035395986915340838548797066816084766307317623405213209555647234409123920610944884001619228449021495806489043247130443569684489373150245268541521695637004046154153693551381042902648572276560867073859829027427644494823250471055788126936372047079322290332516336028786682185359083794182960907986824353243549250622193644757508591685753231405745000141700833065080401322982981639300059222768115940744670311035005993755600468952889924020449432184871906876603808126191171771767403494068023057830566660767904979719412863468422399612225742398225074211167016385817840029004544595605109673604320453643457209404665227910698055173821534271449271722481869988201124916013190741250117797998906248723149925549665121641675170734039102386317827320938022574245211800698210014111599752228850598410223809448624473014861903139275182337229046850743921052774248980874939187571831292428456420382233950601792809639663138943782038722863116528664798201432465023374754776603588477954420457797642579664699378733208945413875073373961746747475296579412921790951330035612654761851881063998607646146778294674150228624541134820066936139244317806223054282484328436496381002564740518258274817659423826653209041997421720575426902420739217010586468014525995434717958289579262929917537418919043831956496468596193571748804208955522201569307696694421096288644364200657134398594373583715264621270583001389956595936833512042047036936000873223906790886665225851105540297372923371933437687202936847487391472171226681066829816980499869469335505518865590064534266148627835164173587134192025008874501690802130923360273726210959796991445154016404295368435784846572043330563631758766461640536076305909848674732727140152768518537795726776668934595300198896248947182301157721345195069009135929281944188390435914996312341326787426617365543939238228658659601374154784200052043015447145707634127696393272294052671432745040371177355600526453365048076769662330995745432558326406697245251511652443446204263384794770638820555776747795671026125227605808324263743162786804586539931024766149286054837803819114214734971008075360292921438312317536664031473799007961426540942201903643287717517004582176238330905132908646869058557922950959165545002104186090654770184588395714844370185122968407946789865208632178162168270551531504082270251175205548444215711274063473064848199099350103821790900972970914678297467142420978031725410902124535707960140166051749630870751667615552410038558220679119905445705627753825499698275758812554822573264332029201731146506166993204645969037574805616279051819617706817123790166931248119712557293921038303708519967281435481311553737601805056469175739288545290432247546651777504678192160051056272207976783222802887870206106506452836190408567769365645013164567352024925384131303660626042095753580596266355929242581980251925393307632628736288377385315434351148927281164185015519175778623233808690062282108285777519797597803768178235308776668390866112633032872838920935547526498722422873264687699218448041567347404889938795799733795928982777444907171591981540262567105111416494259114379456798421529531573201538080623976696441804137230535299883755946629469728483865085740852027858499791123477619279683652803511171535182646707157696074849526006695241630103273459533713704444707716148207495439513048489858298806859846382531750245147788177462383225318445016664815666658351014990938430213520762333192337498474821703472889577013621218203891079973867676502409324614183223711363648112538327203990287279938304331432923248966809603250468459795795609484790896469224393920213711093639027671101930961423114282719319202282191626628903596965285651111572043107814290261423116604671820825045212356551049480326525121902775213121231469488546364737829303163476940508855219517044480806997447926388327746332674881445861232281369620018054063771667017922592078143702358010741639163847030999064498315743327531762889433308527429304010789160938296701115512529888059406392349001507455889803047278816017315028557305594323899856727808028812054199250774678463225169603062413035623570816300198506829215413476748179205488848226202265662625100876660365415126719338099755242872469471726306165410801790712922665641041549864540205739650462392371808254798340959232371550000949682626456702241079877381316571282853116522121274092532100592669599928860481505138401375718682138914834220614648419464028456046233313572546439884933026267918901049007687337289609301748189051850011658183989726158502378811549196221807956123155887155012415629258602161396035851471175750787289990881187066796991982496440844207654405102015017672285028673975850638254245504494077558424757011950696547217139448884077211378228886956507836638697696945289237007977468199361645296809162170355599714370830665609085770398942576420636877534450701276724541764743011357636677956446914191887478703036212136832838567848597360090506674719171222785577394122422582619888771627188339355797676598182459503656745142572882025038584400346127964914116464066035486131072469375832001729715326505051485296510647872851451809525996865028433152397311742736138198952952066028100571499444420164162926406307145469169186850586985922120143498950450925176834725944177067250289139955051174521725773398557714125777660837895001648490169645412049962235463221719295320410412305717031242160560606599305463120943145133869967048848260033086932761269860331279914453531089388581136342053857667283762896548143681905348880299668702605676350516302610261747023458124994535548357211904281855621798734079292754283560168564488587384327373286043777999062222110513824216496100291966187507251816004937893876652253870963341603749371966307916622674959975252587626943050521353461103018848519286344046061408134534785472949787725793105004952214590694393032958581202815762918636841990217488247149086382914437361976170992714061258460830764539060585932517088111648605432586929145985841656948419541034701716925658318302132294962969238579663621109699891997217665880031534491641800213288772519536418615478840613764549263422082681165974196761534361711617206342077120206577927642771843158275324022706332764019500569369693196889018054831399569864217700269507160361275687741320054010659844547479541338673493543353728854025197333700290896607766424422194733424496670982291333180845180711424188740388856353219665886854399467306126102661020052709106938147714757792252155331733136769532559238678371210522074940866344109878290627973816901528971752908990973574618896320165568237227295788831901571764065404017627008950619311830134387249579014659352933945175776747781533509591387650893653829155155511430265633548612068849166193125684191198631407632378351481363324430980998824763605548259289319282469855992626509420327439713589430869762799385149234631337961933339279338231270257506208298250023915479790679687773807463027186976190693804215212615746596502864949167827804300573749504204328568308357897370879284875367225358302663360764374167406734848304060368456098181078446083951013089537397205366203692958491351173095230267706090751881894508796472619039348544209163522381406647726945187295220056075823505770380497253068550050221654392866961456163872596110706200825804911876665658464906308192821677700985129004990990115677484674969794970054718427524359563775379932485934914802760216586536323628716671656491237529787527972265976755389233586137937644723978611518247491436601413602381767269048012363107412666245822175098749220199428617592553449588857657570709367742977423570184114898651719652475798940828366636448532008794682364359263686160549174290469765461829050877809603183220301187954322633752407128424843123589657528202200500598302144168672836677559144384424116647933419802994928207207590362545858443318274798147455494136576241462615525905506623491287852558296202031105526146426758139657965292460222697262560173368265663165751941863778148419919727133742546745526074466199563914145272046013225012857861363047219188133884573961222256702964064956129086282061119918195893925392740326417774349874164651777817386524030059122793343707723293646072321382414064815447842697200375854796811398856620873413002321801658489151101686406631640795035682523520940367173588699699402459921763808770406034883478772971546083168771021782177801283881232547987166700674882147327653780774681679454957612921546630576801639407741857143533335157833555577593091065586757061706330086597189246599364492118139707222152561806995477742279771759548487813026046135653958688846868679737741034702396753724783119451148923123437595591074699202650522797128624900662253993004646595231838413017571851729605399156947495868986771222728536405079745034365569234844619064494739355686796330252697596187164173131909980604847532731440538456361103430084611937329074229943651225229032349314569353088774150565537560017728919643605313485925508116313248422344312595959366768080143340230729392728513929074153224288315737968358021625034892197203128993626886966423888623793809057360876736863066678817536031008836650516118200517540671907843058003800930689411102818087004021021237491803236419310979314078631354406243416291375057516886829631674874789523492497571157393289788245459469051575012462164744367105156903356489658462084209913304903856167101030970681640451596479544751459675882973632650178568058029799281205312244441215138113069184078378430043533305908789575105846830857112260247040217327554434132810663362808954150166986008099132608111104518247351587756804510131464745369006179704201002796248494159326118758263745397407026714462270384957730025119304172540875536877440420024881902500859651205375196792610561020164245735595590304418518644306217376027853436293744826845903332146893377296180181713655405183113532485517608140581089736869442622859696325259403295728927921547718420581561662909926080686682700640025788512692337230601409975710303162828957453879950875856345102519740573960863717048320312987039723795395250407769244199686740299517607812825933598659845236795113937472655174767374139608067072108596290775731772808001862827236506579872085816555430126780190014796996573595314719945485251889015714565238121143297533663595140933092024074748642456991891429521287199725057949468554660646084625877400470561881608971640301717717136976856757325036573633858860285593426163593686716805999507751350695149619537954092485247703249625626217140467235437250520145244611212715825265474026563274462944933998576133344541449631153052336661790278959103144660441292293577003237552645798768945076686777152272305069044356898399018592653223618770586548424226621254761877438855442828247253477438868759007026358441558256498865986598885640022219980841340691469746181598395829429262036010517759424027262341392944160366216945768389347953932545003333103653609603763009519489895491897004085273297713590407794393335807930846515573554635444160316000493237579263980703807609260835680982959874217687860077963548068720938363429820674873336501558928838636913439777202019424192748823943150223496446101345229078748145451931075283846517917499465450969191651904598802190100049264971106429244479613151074953252598692439321646450162188853562512124146824617882133705050158435766175906828884220896601304649642812045392011990276758534755790600093468466026292296326994554212439949012916199215737560312150432632935697637923687529562725477288044200235970152790109414596240438136886075429597612192584328612492951435682628562034069093178083165908366954835873446225258520913161646673556857237758434665469539231197915282851509512509015502397703679861511038087675485820009464065071671909566901955040007852372391574378783024737469833840323319043789262012813036655788849599929305214070082693529852844942476834011899326945309866844011838886288668690396149055340288322381104861581760582519783818232231584469158166462947664107497908585506686087021553400000537463506526667215336527100113119510483088378246654451097049043248097930624372570288558212522580911778548656750506401375608527394548506894241968708321261292474983527735204755834579656827345137907266578146471930257718581639017147790739253085697761955784599024715461071925410067332401805110271195089122549072452944818443721765748719061775187152547622450744853854694802683455417871424438856953239567270593553232791025378487629515228018595054455095075371276319941431192051393211831909070053623358680876771800459861104122538286492487371349664667868396983014317264102551548998910401398109744015254874731038970474987073805098568431220353057986855494474625444979824910803089019200386159893981934278372646167429807356976384505097783424252307526204070159688814230931321037562674023695631869941009717388670642706721464634808386354085366776510271370861960092506689684746855115369581836654680025595386149507001590630847150680602803120551942751712719167309413637074354828003152363185463154012127270281198987944979993354717028760008299261817589538138106507210676288070619335845264707623381341953212835702268440028971999211947731003808589170272848666426067947135108998937655338737758981861584237592930761932543819385817135109590540343868658059932228332613087692414944189819169655509858176515125663106522939808640470185629409739413459331092224389603102585608530814017433442870415919253684107673836192403303602351278399113449463333692839852007723100458413827492947246992502067630093460585043877598926077645384045409972916388496970960778017573352888296210010984549831572563897782136010788331133236407968372094993835816736375250297840536062672892855226826326486067011657841723131895521164481038839530668037752391023424529048669789493925245229102634273150090427532165372306343702738845506686689293678730769303052244166915968398454067378288285821456602898397504856872974270654520075391975856982391896242273318822515658614353900441136951395195599969185048388260176730763707737621195691968173872308200818721435084439373709698572566954133079232086910900881058724987686952936684941385501551093353757240511142019667298326190603099625418782306543177037371439040757230829831199705557150606929512474889155357514307060015128128786798077217647208172748371368090853778412673750271158748265445402839272832112256303568429610160512979030541494179366545788220827406574895873441795459587871474331204278081875569029390976427005117155732253532296925174313916519244470063428743450692128671423492770868405723988081941003475383060935403042866773790862820264844502757603509309664868883289300375076278587305644072761685140475831905090897897623671719970090118877812932011700326541967816666618427261797019598210671178912974168810965913799840563839604688902523746852865331109409469754566135262510464325908785155253426312369420907705827218594452998916082426732048606076187226514044835777528046641425466378441351095951780456818997262968175946947631755436126392498134442084925634536822440733422798597215085045178801315109372309900399596339351082026847115697697064670428217812621910047167536131885196372886747997331486251027282373087057490371047723941411638957126237582198656643189316543207032704797257349804334315037819256994232377803495121028890943300923448397293027791331845273496263774478685888194018219381118832089694650842292111378801735408169262406601776181957565359093008348950319407997403570558433288758761299532599321365273135433582254072954463701725450546655607243360652534386444125758629451558543185757996957308928806944408208865562099154176350898294145666080951216232348374595661868444255366231705093470726059334448901234536089623828289978263338794188931725548524544989969488590483455122236475604296711702038008035471336375066018818955224146544933743373313851112633413815729931485109757688105669055376606517080165810744361200267139978638600571990545829182955037929169998108651745216221167739627151750171333312221639389449468655682185431786447757215045934548831517904561102619847444728870441089287307604468690082593491861221599265148683733854443698447498767936345684975270218732137832008826895409617935491887090530150859675173451303766506098952050730803692577549220389104464979252525673390399590438955454816794210512162709670010849707381016674935455245616376295005381050855794185271605801786874333448249191885789612840607538280883879861880804148928019857912649685425992159634852311170849762474351485707473573791555420786368095645700477261270233996756764679921521162057549747681425013404669992258124337258630917994618256948158918095313218776164372329188385309551542941396176230660298090829757555225592380948836876114573051959740313806659872710827069717839723138326871429553088446964567695360309453612433801436198477375901978870921630513793547604096936188859120320355158328807576861095730052064579311354358696229531368996504800032119759093298502875493675191748418055318952797966094130185866597465077925003812142419999077612962029804750613700427150158810830120719320023591241482514382137856363587209697654839797410036037593707557801718197876247641051079210698960082085128751179380111347984721810790057740400782406442816333999565288231555466355573932984170593916104076060882872354518456059039626970597345490477061554098511115198826150613520444993948426604471317317702583765515822257174085193139701410818185703753487498368024132367070008571203454343012166729332720867070475581909387107633006562765738931353458679224827865172391786933068116318775532387587857906432728212583960656718014677947752695440692584003904734689573506183368132578895944103947227871366930803201948033370588562769094682808782674010077777696236233181780305156906419676701061971865110094183071907959501788215069455658378781746753690442877903400714092032035972424434290418462627073082003868042408622890602430240559206543994351541044484095539795894479451223283435575380546916057750442713087716553450755704977539660589777772586112743318238327056404782261318029055838810169003125588312712052096607274645986443659008732795274927052940597804026053046572706055709589589578303440223838669531070719582821587968102091030275099757207979640785344080092330049792484697169556619971461597722521475188179905454912333673949001370582220627591617665492706962935398834198087759599107006923796584085480100926442703107609521471682336380618662862325296405905425375130741326226788674911854371561150472504268097189976354415947545519246349300530317714231459381933882508765357117285807039657499537514975703625653050856265977396866772549915580815549580123842267128902963492709691176621626720775689724988835826173973597219518235967615119932639698746501369606740122595046522811327675280215763626487792088972223398865974129157244067672485317557524728729033755075522329010000532321387956300637084134535071621188502215474497400165791486938575358444389232668434205114113661836337477937770565065638803285441575955290945751480233192934701866278637441271648472536345084755542346074826631788077207055671590743705447707489432203732553702286259068082311121328604057415568215352695665492978354563197097375177129582555693085119834599504433186066006953451258655652392621034312303504489536876680386670912321868593984194683863279896239260597138977382194981227024454219023319587815967846130736221665535846792536467936332899225267904250863205139346178381450259362700535375670371967202008256969898934608739855348232475087074851416716886428694533434334951030293378811234651174550823820456394343763471773980307096146536301275759106092983150855923692625253012857299633502751518017713259465660975570383810778864371059870090727358053295782637570554918790752016659424134220627215889483615060633590175103477786577034420393125849389836383483244059911969745352919964705679001178389846206277863469538778244120999060722285763963302682253067438106300945438896277426926400429315340744636387164096306604258297505894607553763236408925175390137085618105272898214212342518508205868807531142516220374098770498523181615184034084506544214636996141785161239207965660804087350141865761371486638665704515682853419208929661722889923499320030559755479653886270879614901051876101475357831051028465827858982471895665362260058774726293535237387642164482753038919234242537349500809686709757049126893219621436325623093510679018562465731207509869189885174194106447493194487326935011853746909184146351239587034170057432776371743630177943208705404094315621377982987614677536926885073981476345515786886736208726542217432577626519141822044565417709763931571896930211633018955866264374155452295938654704291734820029178876422567777788624733822502696671654035536599186575698818517366573186254603786481211631462629107877820453712980946538771148130274794694818821259485924963934994248026488590000049214344573482550427915684506974050771699399832693811896320677589779631532887123165957525028094900758012909758894348360164667723176612771352797552223134624760134993917448732289239091504799231338056847254524787969141526129496917357681845372189049129882785911103310174658064809339319973135271671597593000532724861688715489729542928044694552080046613153896019026424717318294325334745206189507729319850159291486352694864323534169749704140648002846208909916136370864199046101997733937089802879405403508865009421383459950247499301405571326989267594503925791233037951799521746151816714925507284086639476140289474829953696080873177069312413760911515583096324569189682388687431165420310391464282807366916524109452315454969502189705326671299398497938065259577087901506855891606217222457099843188290932198564064972317443177330000441774500436869181978880504572494443589396995773324125365901468940781910360282824803591253247669095551745358671821804814844951976867696855918829320425905729168003283212090146473122272558858995702998672683506819521645074330866874126566791213135279986066545510261554466024258316332880576628332057125541843337791753596345239398518602773982143787760182164248963277232948874837872799936289593618027900032555810268947096067225109090249801885385507363984780538038357694425489226145983431322080835328842443482620519504955152676132410410442140921691840549792635615134982983076131373032293254070801271397183211623412287482278122489078557201072626128561669416002149059030741565802671144341107229051247957141128250893600873524083635125150636198217131525859762922296299125154563469918473901220291395676034443198418523951032344556576387170781381296144520569180867243408771125016300340797442627937273551703671240850395630317376440852934298662901264552390881945190020959821927684145988091690195704234626390940181029209541920402434810376383143045670640578298611223811842368142558484959028707069200477549904937689364731768916744645981760893948527565624492661930290296862027694079191729281187342366480171876644037745364859341584236541637530270407890954917980055338208666796333862185078417065009560803098372298237652620535184060805164916560845447244072046144683021690550399662235435011338848569288066045453738328256631496988846531021219542452402208142952785475573888027326855956730393792195077119893841516544799884307840636837828108067923126746919773947295609243685523135825916859718472550811049299755198056489346929812829280615986874952908979533754246187552052811966878906500294075162622776317804541311510993598234371707524639417786819212154726332299576313545877331113221775017831118464940201009800474116850197828217931465600131297115872959299519821411122935326958632780959578419594716893164440023312093149649153273796146268242128757886416298051166238454723470601174545329119174979481708718781015752109914819457382504565144067367760903657721860394146090525501380152180602589236796651870229431255110236204661642752067425721531535506429452078213012509323315210788969024049134488979353189843365532994309015931438010900134563397492511331738302431591620210221057014779980161383770899338551161488152255705200080412429828309675859238456327696225470410099006262028195520458484087376617213539850208648293571767025277896595694802868129479391241123259729003106329697205702621077446357171951787592403363392424006169425735739005573904227131005008970065195511766535322695640652292776469010074620761048230996363224063620488804096077157420725707441557596749331087595718985668447052879825905115541809293842626211488768765540374329026698760790303066920623998432078572245282120284203721627075149238377773706373224451831106117607368256625462904013706937386026231683949872592567434143765771376506025682032554766396120161488475016975192527763941921138123648365246633463287931517494637965317004916937319700411478864857843102806674404561843754968909923051032791382855456123019350010231573189807868448552188929650241203693858252970744218847713317521798985881318614445811808758648190949190903261261156798259374729862442239106122444651546624556534054977268042613809121493287687877440458409483879890456505027050497434918730279995762627754354605726645285717788621289288272707855087974016825470592876184100657429709036381324570005287420034698680205575972306341756761458744660193395866967586999314206889423717195941475063089566769429841823701338240019427655514389297681171017904971235492345503396173248200725252599143255652339593880405318447459361739403077378702709131441996902406719546207205374668967308315038786652598334732307708275827700854859681340622478306911377330478577854459016596623037811467434162650688267132810596117859354500608381931026281670584014737605533144078838160654994682616736170388746883986857389824070008272725957655128829681938723049871534461471077903208680192833676293285679981799723933192413785307034552780357545840324923915705148031209153454750095558475680188374675192111098673487732878862774454238567135653605369653822551750951960059964548785288525210951556500295760829869555665793471080561983391057867546336096906640692085286785917763061044778146605839926129209874963086799822924563001580893829792348270311049008307544852666518899846020162268295464562804004879710078015552573632904342002489986829802705896436133288204909653090549847583169638838438649941619112142273514474377537229536350566792068076432633947456331019973098097126027629116586748423303249628844480924808766442871369629061760535591825669748447128791432076545183164264917563430852357837831141395082657572134295016042174679719523437409809294053758405679940393456220236749453330910637837520746241390091999493653565079109017918637283021546053075476156865393029995772035816439533960469401305498102624295230621725028377923619101686291344262123192153201510130772636100674076705522452014305701663998203363736948791835688763368272356048175065832475013080930453823713458769880524426233213793267377417712296391065901361330357314624075968646305997118169319626554389660939832363186181287181627329181276445912771383773468960094259284261637977641362408437400365326831605610995405829789843576238748063961838171636945301418112424162277583906532413370292122856296990324654556281263363900200088712715217994082999033882342910593773573248928140881182658186863044925560720861332108233628935127658018651307668618102920483640704595268236376101425276195407942694298031742973324771320665151657038531967765057553975258894483404858288466866496791345454385113944757004369208943651754329301185114551461706785939614021276269288911943191971318745600556873371645712322788398304141506647449991679834765564188467550014158005936778686907844188009738577118284856651886972922552825975060677334498438535935795955674340941482626533820444577671909808442990250399076289488039860409254658823189927723059937511192653463014875052943758861756964366650857366621321386857600687913562230101330249214293108337935658383762687771001034457793263271315846395176292078425676696336508360684145813408104116195181928321700225163845540925032618509552255938061239458909489755610482393791287912889301483952285216313175878881393784049233980890664800159610471032486252120146265881908495802728261744665563325073630669050910252218199532205098448159730635886402062296067819983032964068127633257917341693659901144827596680355448211981166411734792980991564554344715480280974707422451950467994648771895306634994083802353397659716156796142890485238084504386497913354516989424736975433756448432673503576707877973828018527288117107103025729146682986884364876325082165527978802659589229363378091032539061843597622756931220436525742377575463248375101973317035381453987468238560982115954140238028043076619186236517770406670101557997750568037243623390755285819039369013300099309343437038577880479204324159226638480743213965119781093527659827885205689053800635265133916551704681083619509768670301563517440118937883657837969162778344766072361527998544520347979364380225419591254841043747395716174693707010645159318288476077305220840727532581887345566652544184558504900905594006004910633965357612918707295062971495614403453786794957482514533295489463127334198777991397971408041022811449318594793584887779391313395816689075005292621897265449025444426994982513533224622082884709922116098997111479874113672596078912179139337197834054349724560481874191652874984191726471548476777353286201693202248779206859757007069688223534062260906238098684533891593707921649528254630925739140571230310963074550015347378936583665345824875600988621959561720549663471519601420963574405877238691282392319982904463183350928873476618877676957802782801628890337808142180744557877961825469520121553024724738245002335131892505302546806118001565214768980947256268150627213028785392784546110722288016160778921287877338815577848667469273235165716426799604258415702189688096940450913081864560339492309195968323226846331807783558797574918060581050003928855597547693030446752854745572140711185848356367205476866066499469971577483618149281966256690141125736508160339168184756535442040635951782171524781325921348490032917921027452631600845537570103270139544027355065091989094161293889208893331000417098919856700659591907688562903700317628532697428792915030162558905695966583339205890008896037835965600248397880063089976416361541102074392070259879952442720702371453645538914094758548592379391606824810930848384532896333147358506524304766795914178035932532619952699788046530993732927466886209793256738277241953393399130935811579930364416752867813696735204529278755391675452925776474012956781937847539884051938085961955865389571045873085421612701385354365972864666686427196122164027007568768703824690334642665858488553529786009116427032940061042563042079374980857675897192598247129106011865459395758423060895102740912662177376243326837135397232918559832359939229598363674827412234535456773892045758234635014270219365016025286740583035642130502845909606306679551686613271516873002567529349620349754348831557321750440607606773731748994529255855204024410671751591799359589299770956973515950161157691779234629447170237655055360507412717024930650164135250624341676450001641257922920916478323214535774382738254829463720512825063411440909404307081272904843012441012706494353270016883579240314814431870094261928079443540237312199772179758938168976742563343685982912899978827594367829981679121226756005928282138410438302165660592837080513769946687627670497189604832796489606729387916997126664409633608877380392309942986795984471735402981661535824482767091564671823242302383085106763137232647962608089748149175467067857399878468714469652148185317291672111783344510858605237260947320676809889156964118901166296303413610842478297689568547158244792502220821498792199041037329567199556166334418407109165371765604184832251856314811552894812236636401548935828225412191276145258605901175329530052677197848588754852546476765829596540961722661752873001390986231938495734466626817989769651876504018886649286263480970348483025337383524232332685120998602864034224774182491937858590315270160417261656768117472062495732481799084488840346075394679786632680357466277457214913977629873364360262613568008665363028049168701138121808741769694519156657962929358260607891586835398115089752869113410058226314850497817717486885907397251105625146982376639192695231062252476234145545735427337450323417691929804612307876187084318623476783960324921132049147486278825440550976979780053983003267736162284591253303358359581769071931702393620976386708064409146630342075579183728726322680757231884604573541637315861904123417729078933512334311117719156711693411594396286416365395729877891147386432359510965046755582178044268919946505515175692212118252586820291459616711267100940784587048299369327360931660773045412083804384714350730112857215331226427042421524146059319282574991711656599874617583300167771058217281975109363618271782868355879428049015811449676812427700816897878253457945203387473931170104677423084648599579295683288497737542594531385817705528707515027110058748164867087989841001519157326467326271089022637471737466159549047543838693502813118368349364920537638712931930194678137921287148642422140656037559358555890395038562516097837845253238249513083738542877819840789381874358556373313418690189087416178863636084258246619693058926735804012720024030920488268411257327585414012629712668931143350988444790132034494585304946731662191191535670991335871791062414484142224964933054443554316257471763287216757877570710876768268249188168754247690761602962890319684695215783254384482758809433509072592737514549993180364841032054551583284812694385885886428578866742514834099226771838210150870116052403351716523603065019706317313232207388485289547610475518664092569855335559040592324908893397444592273782596636012143674679310469338235204425508250122426429563082901212445631530065097322901799146553936050801068085755438038524153869207476702220784801620134990840097224449476921348133084413712256131076151984082373179964630063625913596702301817686805902683597134629551469489321216988275674634674283111218741547094688393144703787591554745228018951029837961729998958578121012629917201082609833110386707979877449722282486234423163428586427963234575737422132256134104035818039744061900702997490270316671913624216084777599911161648018340644368139063098160572331464256036807627174353387020267621401870643172004891767139702217441768760229861367628674282309354205400345968990894599075706110319014987022648730898755319905539414540468359729297800000602050010193477054041373570377908959783210934912685854465785113800166825055093334592039540156880750244931298467195620402042914732114129950395995979862774214163642228098620158778664522776612136745398878367663995328392154695311397608964909809891932207945099176141061697446067277605042058513431789768104475386418708734629112090830626739444521322450537894742185236470149029467426475224473601776927810483521276851251803200334387772819423533348666179634227567440709987107485300459349909775436900919846623415196064954928572959720226517632167735863080037962027373974676782848342615962196226544267230653310372243758494101532911247666404145441739987528582972764052313357636272773161535941007988260885157214109226170272293316948061701395181416775159208813304324169022890225569687434069309410913712198770824484762732448945333963746688582024632028956894698810263755364884872949677428289538427157724663998610466545353395775773893376265181187380546677713916141233121822933329195566766409364424202720935255767445949321192322111596463682091733954015688162752376996103512813028194080944172169427409627750682566771439990794021080870423256638663259657778068262350183250415568907252174293949512612727316271587687335251095437228773602945670443735750680007552101408418542699936810476600077006364440965299052864675975582858001818970816990435251063618217077686881465456634518435212670919146422901519877006238929658580163061275620189829758116838338286663305618599931658922178810585399393342132518778186211530019540494004131651948548469213883326983520796917762290363926829112337673568417316309772543920353881059871377919125293257540794767840175952759044972201883953352628009533858522196720147533385884659834942511827703173221057699348989927442297900574212096394292259382630469466969907878187955769466964303895641169696472145741308187818129126758131090352164141101690806710325074807197335312435060657244362188506916816865534012410713150122045594232574753844289763860679142986029301100342071240799037937696665207897019801810117682553312527563867812662458243317918535153786298974141145387631075768677530771166568771396643508155126213060058855823489832796537589671021601844020352506948990642405107807834356052108079386055627645881173872845837986387166048169966795566606207227295644043297848347620216626911610002979506308954091836268253750986111923673493005197745443292223014039389319215843477247601951972959631745644037069513808139601153217125026444280006685749953368857557464551658891269157312482038446452501763606104458513435281672551990852952752168175646026475860614290270680738127691039554141255295118780895607965991943808305519135643193648891904698751709371877831927927591144672216323603740380228213039798816116120193326789584653402683916377210980052960948044122685777565992811298230605797803099125218424900087279035561386949233048466273274373766457499957777490267870242225325545824825122563713415608362353346789967742893654266522735652111262825649003634127355751107290823337414071265202228264918381477723963342747919556818751394739250244506010027111136482445263769728068025262715792845057292239988519917066931801233225690194336933240470421464571350146145324395964557078846400371310579671460227715883816552156257899040561353740819704753082245924830576465654090255164169828345542246682185393261537660944527818387417607203265041104027780988196245153695380578339736732855642136474883107310926534633830556979226564751263008071149662485913931321466683297298359244785026197079899221326270340673273578493223844290485669764030299298537039206464473695304471129056119834517727707286046888263692202828546745850445149552608054268348566664430420539205411342824483215823593015832081035446322367701605217765592427340558852595452573979005518065309060049135347934830555922589272659012780021070400500236593941159389494005751070863167179585890412703676108619845679251212804373907773765087113339573890970706559440103699928760393503611581390946544268876162318755674205429209851117358991614099240672528438160005777322356954320309735090483645811444317946434048896487218238829826945496622476601114684232585217559056197906530760068686910885325867848301564987076672431020689581077947862332770247703529218735261821180941265837188361324949909522146576477321429886477161377713951519656468044946566602256498946328891358376033374276228302937989857050669104933283630641307362071960690848854309128248080224588620060607942492285775939661218470526068866924967347277821362768645278059577000419794729972584078028324930657130122065463345340904909502451874285382163827564830052778961659896240443116149283243871447027930802826289260934789956553826549805691548770175176284029598673028011494388907101211027263897485577317032567806519973053078388171603014140087043186035282316814819775813882752356578702447734550293484764603672901906371880931200243980263001631884555908064481577889455903016209425585052985683371117322292829755872698620973761812501397331321852986546859469586295011359389449750652335062847238580978692549802901335550942311018991248483036328700337287316710715168919420051875118311639358991753169900550010522036214070868622809725200472668053300561556340128382134918825942114681857929153625422692116448601279872245437306175135418822343752252928308549322731542577283525824026781099024851108478270657928815821422082339143785410747017019732070575406512647989685116921238761780788858687835848725777702512098887290894075913853650688739653348121315137998903911906576518423851527577266442343002018712458926284252080179034886323531542163453900093070057782085592602789027424486674864770539932668220079777076896922332400647960392831835660483022571121741465746826674429879310980370596651991005160488591858432699556544618709503684895425170462224578685894772305087711594270707142052655291483304242331974370820429004259057147602531281712043811917853940367451567297143064820636005853265661131108867766070692825753113458793148092749248514271608040096324811854199780989367655891915961034080878586332580656327507500467666315299244606536168427541367199294535356260452774104021957161511586895714127233949497529854331989088911741419566292922147457909313002717121274298427071985475882244294281040943238865633237336987224865727472364026237531728726701001091478793310378882856173087990253003533598431895345560278625412166897467939119143681574461817588178009640429984023923018174612861692342505139474928009128652692352892557775989817258425813216467257490989680602777267590760095102126355583758664027776008983863821542089448342860751659651956335707168348964521241828586145929653980081142616015655071595955577390848169652075640331842744462308697067425854262886331576209629567595816731383866424636255036321368092859909370504381928423491225063957518524333236753646569596331279990609447032066861229329544785272213194864642928344548810854711297320996456815251980352523161978218837074238797381092027064657901043325326646086665329111189853824427743620303186720425508668073138265043260249457187330818446230260566048520576248679053419631488276712306719115187910611034653711342219185722578209580134683124426849040254517152138964270054820868779156772358736049830794350260199858374237327225380194591707771624999593615510868776287134966148433830623873556925764058291801598996134688431724843958526875926525714342303432508544837375619282041153129852717904161892273672934241597447640783425837257465537811260613479462605083760425114581026751576016550397349687193152286853389002571049261959429903981909968645596721884084324837265248969442340634088983790877375479016451416093146788535920905189621495444838784360398504991032868508291844323351055870290317278108213665754257411223597222455956274872971351706309339323194806649809738851416716688952755891346727931776775680459092033823254533582605822520208357434052252309865848631568669701417669048155732485921361892912727958272171191573830830974613558420509725003859073867565021227285787239404387139691945244309533948227669377235667750539154612979558691257598910981223854298294517059284791254580667737694526704827554227132967342391905605549578969763236256071756818995677495959410294178877268084718376270203737789254916499730373920761083661763387288485963924235684181859513994284584884892397894021335549750115113227474356082922803119401844973972396575190705918658813176988300492609161131626154857318913392223709379196764629351556769474460880267492035464344032094606031146965498124345637756611084797891195995952575882392550422680872484197622833047521717307200775604167529454382727586521847711067891610979328887241570891008001737378156797994014509089906002597890460994579729142189158079814699433400662615230016192228980382112365882253370589533324022961631057777852406165373774065235662874069141041000907502230712197926133675051154953428152827764467550399263150549615605969102224727515073925854101402663920759686494701302561520610503568273299520911567735361987471390954705698953452395971174674894296335493897777759578285041588142823927721321602829811863700340321087824757973792970599413101149215863379984092433759929434900548703060291924032992946020708017378649229156008344270401114228212003267855699037136714472246813729147012174488975009227647680714326758896799564429835430037361601291395134004221581991663211413761331024874176862126843348467083280004220191013965265329759845484039898146752219306697546871083789575640474735727273904142804228918494403200696130023560767289380096164676503473402621790757382913821058766186984046368446646648990373807411858091800331961773419029199098304098325982471739299349771262706327099293704479226642401422006532068266245857609695183193871289671791453977375787793970361686046035670376992168899992208758977563412582272789493525576789966413413158115295372798437229311739797254282693856513697119237938794874784522265100641042825785298053889575894558425021996867351363747657073736687445817211171213146451465648678998714662321474857208675867190210669546876396439850984918896772331282637510577514815244662419596961262408032313123594417778816546160065206164482148643082563899589689273504416766181640933158160386620540583111636932924464672320522888630266826193192174578124323679177923122650532785341272899052306173064398867413010773551332195610700933009463241093499141600465072392856803054476767586633540045431719847033082352975418087301254097758873581069422119540249306243671743371341803234986341266783595229456420992901142880371993913018568448344868685518237829326590802489419505471870359870707064346448020719186128573482385568124329852560155318296015937411980704409480850818290136287471383633886434060696339631564534269930681530972162659251894308978340805016049465243576857477842172394860868886325331459373504038950557616103667841330238965822561928553666970746316279512258164812083983355132509430277335703300999139626499349482916681624545871040240867162871732877934516747593687990668126098883124623906050275959652337935582770962498923374642561396930056142836960380506787137450349880734062865210248249599805524004973655466206348889257854369383684846410616654775757291236098674950752282495142258008802239887665113591475302425104046576189776115703333739554718207190872986445735353956151192266039043705356849397620367852252920079721890227624905609261350138983408981822272341822616667352060399606778532513226544207997234000657382222221579775965505595106053286456002662479165558374375160928538569586115036295212483915417594743987345652918281801287540230375361093674236297296509203371222182139241727869380311115561036673687986032515490804154171412181169343433840602828761774053723615801600616381300140850983594050441917971030967847644659676903841561707526521398439105329830048709398533023864727165408518792719370139034548557129924636399479018761398381968082252308204255991075443813392469245793397367809716455558814787918837641694192477366868620692933117676472251356671081975658019101489430068593274741476899295990500639492109194135270987580535620995899940318152003977896175054107404043840551474381929534788925622224445540527061588316720382702532621617164729900904254570137717395761684877968592391365852946313051588982958223286532041458602332501249010952372673805439926339690446338701280462964385149653713625018546181874299194227283419000568535981637928007641559421336495856381330847263298623053039503991286026945331511573650613456934026760733229583672812858568471659858786940998891876425646941045095711106284120404322099978312432079727364723420768333562738824404425002251193292040501471665604238453807728986099395901970746150337671411759517371839151916939315380258778394711666019581969603027549972101742421430075487686335381167866634886737411596924462886059342154403106203513582773647628814303708858223716859551715080885580961704677705506568279844670902702929381238745335047941327089164903788144364738112272421827951674550901543679260040529050296304563755658592235677315669930973632508037972302712297786430309332181791079545143885435633520948785818133510486483266272505518121446949439007101065767916794720057675317661352964282091930466105001377773234795819537073814521849114331225184093049111861091676119998041656745878895249266097839847589724220049516053519966403401918827973549978548821092547745384416541959228678408666344067366930742255473700107441595171452004490350803163831993009175397547255545985880445432392191803628529617948348496446883609890748734175789036506692472793701420455065104548534179131583177673852448467201666869597145214241747302769621819039603721536396784591189823529261887316576446303343868342192466920148309632750964204847818912402359604355363238744292828990381058616221406502181301465609706611250697298300757252955318375946138631991852315325663010467077730419060094898879889854759846372790467877951938186029150685610992995767125351381627269691415681697075705184765049682720716916723345803110671433850077817091421799310120987274721090377630130600600236256337076726915261902042078571510373216920179370235306591749402126139604420055341336197912638661177373654828255538966621801315307879681780065533472339262242027601240543408641853930588616649944176772427985817660545516426704990430291165738502635506795491126208777862130556350952818290280002599062090263565921876300803931690544329196728731669144263460696065188280699453666299877736663887902706040425699454300136416285643650581331382246766790556642922099944640189723407799612746121616839474908265122295568297902976486162975868493510524754778713118573020672312091754537797886043443278888385469506007881992559878526907581844674462919138825941445743420565393887376407311351091444996677030853571065757700636951307245123956428976968291109373893667305281878201195674716528961076759430898483654103483117254731804145610477801807575237247335969557797059001812725820297779481948329079573553069687044852628040881196358510444955090167527288458620965371932410569867905240367522093639832521557464145358143987279568706587353006351639695274766028892887656804000333293401494391143879211198523800375710337153950655547518776548343054837246685595991575801248636795937784890078437923179641758951022197572535528801145698113877093998839409550491135908301983324663061084335006262474406473991157131574265981208190576158699131586660419319709879535689478847574495549945926855679694566948007923284134327094036694677317875817086109546895851584727655670491066209207108363461259263004618722349405748074353543015134721778730744539533082235010955562131244233138828237870287036094953096801988170868750240907827480390337148235058725586460367785784719311300427367819973270353956133324090435554331213238809775791737896187836462607766769625671711670831918788109577484370807219341716842579457775778469065825889412538778986579625448445557566575084179794054319423673711908914695411070823505626103342253412663567479601929394577824107712615359080138965771945480366692235715520922376763689412999171451770656763544444331944350942818211629094474085717466371502268809025572699907016478872414194496942375437557473587723232553718684251931462942325630689052084932267148838037349822664312682820516387640316353232656625809773430520915168479841391970592556878970874736729185425287536432079808127158183561359141688896288175652490468870692692557809575475740246552381191645276926418757453042520048191127738136488996722837339951094482680319281091121415384360574175768589149982294369999628593742978893563497735709031329030483440546310211674436909025110992244262064107243249597189678041328038318048727959264764735938790563539657331090465628967117301282773175583971275118325233977442053132095602814128784031396376160386994802502861161457492030878320043383193051180064074028081468107935161824839621324040183484163233533289460285636733074547344068895814580440850406212755434589847231868030690726510918666948445011005266127710118424308581408178808682518130657061915974684136593803437494762564077192458742810009138106415564608655767971759914170919400110466922204868984166144966855464543036308544883730025747327985851876085612394762895701670946990504382851189766515471356589965536730921448197794613165564615090959413507805975753559371890393476017842334603971477202611022136171368091757924797740004670741497311015794147124278866003672376167068813010105202552806292829786556409796218391008488967238305963961709100555990718707316892417831111011436815646221472645439752466165255681266997907521004665825057706789092238568757494958133987960564088801008409699747140564712910194635691579957968079244964632687332836512124418283095869411195501972677061698111737366176373268096893337876567176756013432504540936373016079962554572609557361540707207629072974266556358300549100744135809670238216548918593310913145688608960263198856761633742735536484660722147966943627042307537029322005328877763821610671375592794826830259552782042165656503881092720220002274348131544919357882383906759907576167335141213915288719497506763476495214395249982610032900868202133621175282433201968188877409243086321761624282634404226957815826101674517947729000073423296664282954315030432523590127687814951378908428777886321468883434387262856158591322321321516040985876282218331991941681520410376881714818259826792812530610917142499573509990960405144768335651156478121553057534093786276202651263522472900038749765849180739403489793239205788927503852359968922929828989288425839717721571888952129447914478070576978418473692256365441133248900189832394095539624827065003332925457845308500856450630566555541839689374781513445173714207836604446648177171729207552015290345630294970271450383150334787648016578128408166872627404901220340992215847193719332150358067823648189662933110563216927863119054532957471318673839891542374738169810530091923847877133083737221415618549145575407135638182458242056012891065303358474089127973107085523341398068336091752056911200760990307210368190310804187405367653879886796132771548513260607974043053315022650042794685908982438541724206506543720133572658970437023341402199800846621688365325895842735317583082944743853214705498960355514321552701532116209041801945923540679936509139423859393399447606766767193026993120848837184459946653196703558058892110014832850496714878772185171511614109170933750133318391612704466802659762554144531534354937126174029251939979453487526780130201533900908815512696462545914342229471566101307300493608572463152308867312059318537436410950757072450878539878130260888499112437880068945715527800189811502482649625880015461142373234162253590031214412366735535711716712265129963259307156909609007399620110277154669333695619188443645056322111109522040955574709635334375627494120137613556317066817359245593042619656204264368755572394814147638242553826310395311945531605019350281266494012699496671550520593907603153189196627454906354397204000765303982812743081744750154471019055519802407938196193311982927474721769148931157705692065039445600351074807077756798365823693425157563306444668474446656239302182327667438953037411416621348024776815212170818794641946823934246185378960964254032615172042439293620505515306838789779561323486819676252041208717406974745573428319995257430008249246993978551271390769955239497649700143936427928044844439140471385988643079032818362381732430452828002153402362200419779963649626003786431250214064645046784920611990436107622993206238992777932258806977804707502331319735424713879719087524697825957797565716580172900741015575595982158306552946530445527619274134880477991958608329428800028807216532577485954696124960302037746914517012392648020050173914893333455155999048141701632527525528884272342720904802506645128322914908575068294692750095358298870530634096106918388259973163052829287655995808858410862068987038190237927916799764824107554869036025904968267602810467717608041953885478104363668128522489171520370980228522937406275079401181678015820972745253190029311973953696824821746750373105756595536906813306517751871100237596117460367792861579793642277549069479189374119198402437304862546231637165244724804802624736726201183911237092692283372724731602453194796834289806341788286968301740493877769056470034963083357175684488112266766096126691199115247767993398282878161620231359741887798188634706953395047718291202937793613440793005462690769443429816589145482101738050062248264864999247059388687148543229107977011738510101469443781508959438384545180474295057523738232717462609790315410917418548957245051029400769962422472377606851741544646341760932695030379523578271023161976091377238362293169998193306556063940391510911263557898340177671602225505277810954444864207991746942733917684861710520562444466310325841761301475105231350132147601467993583981150919526310732891793337793521392147564840459706645544200432252549802224741287985007618320559989397631074922017217486194036460499940032073603224949706923717009289888441505258765592411448914926264296322879737026531579447583307750279612067352992919503568136179108201052925010582965644263375977433411452795341959473667790702290154618073161600704991455830581335455314342393003988133511537926055370378432697002897535330963919477196443400674767994697821964517207911338771893076736869112784487008436198054551837566317845691533261243209042288013395918341535056985581535872220239427965313064382178719112049204706965009523699035710258868046806435505309920948175159881145955342154782852347438202757718432966303002438634484409153947161054518986817345192112692329628964141237052621629873231950469625176315208755131808920045519318784455473321369116153199178792717407555513944160930817597771694331088618060944236246153803957914440943549614736670120386359977516117834830049756653597247152949775388254491330501064951051184635972371343503723030996328322354873150682214066866410035826597339432371326181205324188593401014964574746075677943583139866534263842000637795469334371400576649789620988530870902521491474174019711427004002081432735177806178883988559726242157400873567528597703719176904001394256113893205901846527366347571643635872938847238124255287708282651584935527904995797801916610021403528162545678116624992774525928730241707687320187502321305619962214611767960943371838994342780202004469497898320004215509843145065271839793157824560272444411424347764293525750760853005146719716161180981588316658021891652623189391836080946883445660206556417199160311800806062907500984412672960696212495057253387370998431468919409256821107156422479053119752207094074892592204859911280195501676570723646887276079367178026388165206742128752625074693576249088025714420536297921501161178496917836735768417546294609580552122516897527241750059935627488649331489812374439225476240910506233454238234167357315554661040839864824195490028894151238165082492503895308728791077553613769565809575757299605958997074053794498087859458136254864489932268130144789413692758910385384987315045942307779308853922910637674873998369977221222444742791674145321561614509803080380043581472363934193394551993254178725275369235401533626877877842296800857412135595270980908081091238905810592765578763392108337582112868385570909722412607819634763339530889273805729296086796663870090047125399284110368843496476683386408452401231541765223972718221223790396198303205018763611421080549043071865223420820746034150786577159320699207157068606734962737028337369346994321596443976843049564016030835313163924568406545918350392136844872139578010936428093670660983642141345325603025857903182660914311241232176010035898457925699001230552217316304056992577919671337162203469649123422052700295289896387618298303201678392728874965687573242413097202273422269037228329886291040159488836612554472786833100616601394450507321643447148711463375585367397115795955742111121072630489566625376131146617880628882696889558102134766294395238609927779405035956458172615691476242253092354182365366506925322639929685868999269503216026153877179986261895163741080291473298670560138773587155356743200746267174798563068250322285758948819773793001799848567359719797913803831657259413307695146033148438489764061340885187501292696573429038999634940043783631401199380654969081268586282837030423382364749633345191801361909384051005471512469506169722995542520050003899210459427610308935873861950275464433766614711873726570920576777932057951460881161210624583371153256144875402381970920298197589859129653047979606470768206177684610552622399958784001526456607702931432429265640271782006383387142234770736444027229568800941686201978353559612769998333031677309334528186978110926457176162905923803652718600658776030395576576735664154547270823311792366195273577611610687215507564970182607870915068603923872663959402810988352491218758831261346695121448513380479541272695115263112825842972852360247875395804867047926879549413195001761639325166890308794067505130721334252416343283765167589562231359444417629507365030070959755720545486086760985764255430808543775137965246486981172579191641011117118469817285600969889936504613997035408610931318298275626304077026566504772025605620223833949518453438737783615554130473795926467526511600278412365755619122845259739099731943357609829924338433103715520740918479486941750062262647524861559035945923035180479437812901563237728626559240797318207219810593593295778018366715240086857283524488507942458474398090820069285416034364385673132214624921884430453321276969513437010153193748938523407404513074993594611698700692904321698530311359335014988484925385344998219515437393795716477606520005413578645279290341028511816164343623801170186451411554548589921603308003114562953986917261628539985305935990183711992238229099988135573742511492872993904411537802569224533366869069691523922258018349201127695311743486798126048691064064584894420774969026939089747628113659976292485596549581905509358789202804010960832813031319219498443276812816327151406816272106272761353449290907504939455733939543733797118067256228219016461307079276439203957856816678356006632224160059673969296384450394569676695354375019336619220474076707639254826191628750999248842614480623917496712953106381263305019039191221085296914913924081507641698957629792463313002212139297643983879064569713298520126685941249131843578262422272744172754294274194521325415174396174681418611796289981510809694165812713818842667003476095170771655615402240938329485317528653551995821010690664733468782554184301951379740411790289052686964722550709232557148275535839060007529353108528534068343922620561292140188394081479743204011926867304377475785763001733916232853112399039677927437433387812525458380797362519307366102013804903545479983267480024229697502383324545555103883467048093712456906662717098470602002179749021362355371338178975196516011271474651107749866658302482938550845412199134986145262597046478360764771841897723802572635362003231559359490727554292490491310791808789834701845603840175168605679322748745460814998103770365741472385917246612186207713061577906520553688608045392204180314134127365733073722536457691889208628882544615587101442871623632618589232257280523304809265905590624038781069248368412794491337011467156801696219203423127066459312452863178933920800269349814980235339275429594363008621347412711807802100764203920997002267500621368083949800458175679078062429314213526388136323250408038182640111695306313887894312596005000670265800028816589229715754636631261470855397001889320613109046282373912960699258843680560746077998951869867969019190084686437712586271475897303319990727972933875572919144590137467990294601968725047696985623723600641673368069100461303804357008375468756175185088499527312316945813501072391643555466973973723014157028608233568962600238829450452352208761900390476937634299155865684610818373646309609569570211513872942452598993196486325939104664744660384735212204901816400561739580340294736958574142569349899939340691092198385386598748371024851721208794246626505926848332457917001350397261212545031683451833462743087674597441673877116189703037933394665946711545629134018654752773765883135726471588324477159363281050998782223491141702199292469316647418487674167710307570608379067820514155149205745155319900345675452970953420544915732333803305499190180072715287005790962138141965415473024663165930130193840968766761573039111757040032116323288163166193479223874842779205360035729248177178855576630263944746291207362000644895287710582695517274324043871924888140854325815391953793708717774250978427662705946343980943925076395048416761764804573279243829069623819226731212444718546682423140118021360790990781582766414231242590138868188893249610032022766975318650510399504707433845482223966482946905174699489387838793157929809143799520730388924526218958757618352202843624173258352953991192366529884781027723106506646272316945594061383831554621585699390647017147513447582375267642069566493409535647398760295426533655378560665495391443287847831132270239002296495771392402926280219193603282128612536125982045914794286618994126166100047610682602502586553561997208769254924904260106675582203977290011600805764514360991372681772248580087954477331367351190243096453158763086508780850818573076987765609539443242911939632824210312497633521007203345201003632217162203566923105677095186994800044995765034172482115651868411282069989245458047608333699010926199824865422831732342180215470275317512909919236303671722348496317616612062092572468525594971878406272859176912393162951830966031494897299871226555319338988544224557412169509828613585176162526439636625302919079009340006695593949166742793668983821362556596970427739328772963651733060678798635720915153433532878191430696269252100889887602741562305933557343192953973386320329254311453512972521969315463423029610184972704358687464208678395270835466945882436403048184424665488131751307183356474577791843196192368910196444979225410242664075858547037229545708967916210318163744008373169973409334182305848891110979775106211892141831028585576846894360829938169890764823719923133035839465572976380133740563103221185145965521689775761205675030327940114511657453038197533431600944955894972135091063076743413772786351892372307271547104927032837573684799951260903808027131600121404819585547755881246689541122539513435128209913192159337748081846993191318499812089064363535284389477400668542024763468982254954196444820550356999046138530690596301698233631592951139538252152501593721659764983551606829387766821397266823511049192980971941793085045724925215322676515361180964748428418474865438566239356214713637257281419020596922178489525960125990792306454972987902982857975107902773603000978302807112727780427620899066471126846620035244776538028357116229088020051657799642167972217047610973685996589230339988228685595093996865896597383958508559023481574057122834271137711738733478798707696948149061135938620671613343110508319696229001311578911058352783228119302072610064663305348231483143330659324377223113229640492948786230080325051057732938181520430456789235281980763688907316736932275586789878763964925896218622547953260684768684636793912841975259189921987219587226345444809172274931389491315516015846100141242948784856287542690132036117103053851321800275130205006990115851796710524416811379269131771168375929828984971257630839268884184750317952438614567822755656240958179043608598229151806468769979713931966707355984183980332960795727516200498314091823976640078689515600813901164086236043308799679308390243972007398746554672833706768962565375729056634751627414007947279483652733806528230807685507095247455247557802661033658753297574251531555982869650043271758825026436732945880340864512917980273263180347786672744459715781470309108921348390146328987360059417985042807590853834678785329896335495198539475120769005386374336055414845269316738106059828205194455918596732350813887603382037610347827875530379422168213101406003582975520836414622037415121480229153036664460749619458427526171109379447057990569204717168878465998289982120932542634952701831427606681853187148330904333248180038135360935584005614358150308185280855620875158867620256418789856108605265186404870625964951809220529979493059292208686519568098275985033368925590864724437176009343659500263050989527536230354454116689593675836504622444181883545107107806962449197308082790640833024160623252157071717643489961527874421025287070201996825169014059661315393837629918213488769339537171798010750331773161198924535983320429696804334633053487006969964918038064359986865716195399358832046001168128489744048891014612943669322100363542651822497025321931096829519508553148149482285792007987057155563496429555510035025980833412866257383098955386162304661698321626955823276967737197531353591174010210418854217774097831032830684674278977503362868080086580021879433236186837087143267710344481222570383278104843240121581350928220885259720067801017620461539732422644572368878649489844085259153550655403675598289202204928256476928873537678016883494435593447621033802265570814030582292900022196574861296307674405503997140856291577729741924687924547911507824450289170750305610568552118135581855910438302802793402727426041029349470409474197315027449195744940670304759288347816499553656799021055168808470892447100482895676947588741997203077014856392590225670021237839004276597594500290548990100146860795899866561771757356125883849192725755440917159327529419068609196830540074895416908905040983964888115616120134606835543357522102158681310748633779907701316460629819800987406628122039860248657301138497480844835684428550088251021606908508425890254152807009358955107985537790902638208101889272499601445559943493806247399485379438338739537325555861267199971570954109629366428472669858623884214901349251097223920160963609237724615239598280421759504155553058484965880677084272873276790300672295984503471066048135654872585342265127817312079983748813348462447842022921762410979699255628246682148670823593509310029953193983885081385058569490304027628102039813064652757936945152748744339302053126676787298714765059926990842450653905412175492048080798959912262524397604520911799324169577872412043992230710442458944439815398667799639355890451745517333438960324379395952493957084392751668789815970090827402825812334848313039177380097349904671314649625459739382366658502961648987593050440360592161687769218763431522321686495767210287621171321518901476941660978296731000707321644291925305466790037045041878140042032887165896189611776972820761142148058317859035128834492344290656095735720578450527966486169443186750481263203780110692437850937116840231009853464084364142873888162356574609382264447187306434939699816893778744255017802662939604531570333700838567205317071709130746960933129906722247750338614897212791026246179079828549890221007151256791871752265486901205289223675365990261247797051109188969429521902025176915162196491961932024290799005278635645757206588308403747335853768253246653931932879933935771064444194214812410909246777961047246297270399586075645743628468174651666569801305591077113490382235688087189977032414118392642061923878774558547063284784476187288232858796903329856288309815995626540050895625335761355289081850279746954307341060099830090679576347396586505623580583762767713590836278436877635535741686069769769699786883644022635642011468509403303790498073323082391082436075810815867939220339920773700700028852116317123326014638546655857589658842890526903975079721412845868054548234512857928044778102339220743946888448817555539331650527223071096958010744123322244047030597794133356595305800792060608044718300387368931060358021118873316132700891296986837009250085981288810051720568440246970120524454347334193953954495811197172140144099950907069077229528861340729740727989983614880379782363288529696346959756565433620877450556508457166662536417110846277170414787401357895534662280817993139168284564235988197908024031531920392180138120392872457099163616524209147632641773633738680373405219556391345601874207124247355978315244714910103024909525262681411446075420171069730418941505113779829035948642192348501955362815078061831064195867646664340879192083379229500857327933031229911517039041942972697151699851737029118172552246744371595848075102852739671367169685138643194386236541334952199632770707239665731952241152724456674377976186548757177759494002504723276201619342882713163419903327580364104990408675379883097198181267180009015057249667090405877675439539491171439053474660050263272576756965639385261108869773104399109234957671209033241835245091120210247546591042395369683889220300605004611515675808089280739929126487892893924336317788320929287863430210678776638189080439214721410308235665385475510916335011876870145567442789401921980545746188831487627807418693469827057007538623908569762856632295338890161830580939387064881848843356450407795672195973021104442781468128325063155763232852882555873062099564343559704380782082105486042169981561000243118013258549193649665457386234869628999157834060979548174810571410852848994457653355726182639456987744076937498379421136328320630509942130416679016959687692844202185217626546748134967350239346413253033971789164095372499204154515044135366044954792601994963283518022466357585698921484741591023381834236041074668008599365996881595334076805081372918149074938574205906633280992661828563160755147981327283880825024942405878178389408442892018096724363015539960065174209151872498657978526840960387824835246220952004515579586593121469666225471570303821508438162585955584500618997895590409732992540920148723067020860978370952031146129197107693786944030585366349377918376364327806311213668940275498465495851936475106929759950938530312107491198792713032727330786819207391381736078801102741123044822713162718455030091160823616823592915592358562201702582442680499835156592117974123919365791753840597985364304549127796060285594647782142524594498720768656822807179153963986274458609982688703287369656281737720416255258059578598395040877151158578982748161113298771287149984634387239788465582239361586135610876536238355091683331649051891047239874105671850586598365078796315195404998184237034077285952938864452025022226062032606670155096827762460110596834939060927978733845983769081556927412293357077803553216622552498957645915204023386391355329262521168451899328521337057873971123390306241833004296783971289481894287649106241865125537051635292934451640167439578581214429727977675777662650712606481545354322132274025230987124977825746303297170085444952916913096979920937639278826133939384593534480816090451546157875659696305260969875106990901644893329438211046758795993470657166865350165518921003117609672128487687466720569618063575266952215620552759996786619261340239917672310223418856612335205557222670888627069473981133248592916354108325385302443129443180458631930315711689780250196232069589400205736523399210994063864500006986800551780655289971104094891282549902612672201299968264383871817642686718858213562529276826485113883233729680884251876020420672382904087486636908816113134973854489472901385244448280757725035542180398476853887046225605116780233952134776502083862557481449686042693773231528350526226445443487868424009226797314993979478247967545746941388990106549967378255352237770929938123159935466360876773777422442082687982172294303836889554012306555487852637662470942196926748061076975584167387408408286625010067264180873735101849657168498240227676192489988488415751439555760869979481810697572563058795188273553471452539556230890301514584578490000812515612858863508521317750123225342482737662790532622807229943065862339310474499673004774338251998005292169706351046947267346791025258920645980207971425240921043986729121372255953315265897874726966365278284566712163985356332948433929747346909469629650715782350929332942129245403214952069814358745051413197007838373061776484616769010906190493671858451293230991775210066872745255480893827198813499827664994029238321623561941655384673683547622201783065386786873097335915937170920545531318072440445159214904896916092157297779678632649549328982474791102758605511019804943463609077903744827379189707452267562490507528847963548329718704535722336782702106793328257304373235562768800881266730040587271706451560510850868554234024451028447556859312142989324552241930465984569282538137904338757605134605912932345081440211119590850297630829853689950825628430921678354177665096362717066893984114692302949982878293662563788333083378051431594190164823445596173437321318154309633835046187061311684972535912643146225987869300737165949594925677979795923128622453644531304971344380944745250787466635740175281220551595618530092537848262166627739906834829137315203498879551743383206984872244344602728397168014175535763946529458649071263853661583956069358435910808185057804277007467299810415863232851020306747563004854070163164481084102759108997957995173330923749889759447911893347669615506200424224935282320182994587753949205996158563083943382574179228840523052146987102917349188505781000806533011429614282006631590258050535569533172482231784580701575344404177123828321307367420865462497486421718760075901508714731831613274892368385657630830918300155510076689847808002154615123623478860793203772139187785590757499326546111388984111625711476241466964482253156845432752777290493821868388133442697564326453211845145029559756173900449289832399429436315325717796539288183522310357290328850318970091872133301172119670158273389394232584660783238278847365171329732601092875324439978210392189533384464057890991923323169204719599412304764165872283435713743870780641885867597593487119223080208817394626491082171401212302679908239163316753002867364346440620740956360464514444699065835331905999933645851086911268217656289702637604986849788131403895430596322006070092058941831283509002494267529060301713001549512578014564532285043341234111320821313914983696971782263234370779782478039881963256099354229130453358110673377558999616719809721449913058955283525944421061316186998670478362182918958958515284480349254057654039220475729728649310925415311291880181645021776266288432371047961372791223454475399672224814925866027096991362238505560472083997070288731199541780331248435672831684953761170342714247034513403232962731347681672477271509157596364416728520456955055521835445278504915642698552691630992067281070368936840630450996523059350998152572147131422030662494631104799189798553237094962576788004532413357025349209386488024786699743512589174125617154771821576132689421136204350871313060808593579300115216405379424413391551978771793410947224066858051394758335845547816278161048959789873460906900762711935062978439236159507359588158320986919356203360239387658971976234404258166046146109321922536038760495837413326506167595574487607035669238402843578607963431791270782576533394208217615439234017429027780873805871527486348399922612542039115589218853475010365220287772224840952172456899800274353004685244024788906646048385248822654443684198460682572917721345382661335879437537414774864379961831375644629993760558621608821282944557112161197232274367828068263957134000599269123458528759562909889306246592504752696682619749020784013116022462723390073389804322933050906955958196776776517536659183606370945073675530534427980943578348955760916276352077806649151765805188481299751301187543389663538217976782471991842296825478611414014016598985755111949126626055331215385152175677446356535111744872591180403868440953356513925327631805640310284416782940143661418574236597380308967055005068734599612429223574555169097965146901666659585680565895022828654728747383214434113798006982999293198902423175860420354176391767657670444888599459464026621441385311396424446161591123007696281104907400632247259028830535268893463794341513014177532874067438092551279318614857493196319162715376028530709995476060768094695540506311477287201265456346030949207463969534390424281413169265542393129702817052099975445566581679933936085931325459999055637186131027377052304961843513578204447796317489347197589372665976464091369796462446517335276280904443678960974335946669453407133662440131440732831860587362705095225717921816949738617528483969285337414030391626689551040898978362827391555226431165091781775094596079704902961182653865927321642797359343950184285712168084956893277724876962347712148816940052488319227885982440064363783454288363946875962395491825643215494693897112891895420624428524545038385340082063576116784904101506926099924921252791318356656691509706076689774457956621126110816935859731072420811394020078346014173954987739173794157236563182802379293534102406761989038325671702336145850677714697240839058654815301755016015226829343119981778527238139050509528497043925539668771225341729556676417957609216566663876080141944364564631313995096778966455390036995466008505768956563637504308508495618064421868226163180414542075400309498636922031699874599461163437898457137737863575111108205583926002446254617266231298029864914359467123177083040929915765382075293125007183881020617341423790978087024202785097347472239995511614643641735676620139012986880616078066567578418937328976990346792900842250074541154275528224163890797483777671790138474831076073113763281413991723006033105769717101454171693387411031512475610109873064002286760703058189279226591701916557317774157918479811861530139651268978458705807684612316172234564326951322480357730903737880935738318393685566109791806601948384865322537175052492988527646285431772809260303634814864762324304398995832253669230069730534466248211139111571603538906172180527842646414838806463767742957976377329190566977860821876683185412697616045943477095319710764160009104824113113485911839282277221015378992537907221140077136328479706387689020463706665310451314707987993467626431171545110983288989805854060087350205113809975309764437230880057877468205547613425842280071076405076415861623990433080418813109354646782869150018965986620006319327153938609804242459059552636020738634196485566018707137290640036403641257476228760012102455134111182200986391929985652974794085229625214768095266736961049061103007295560665306472585827015507573023884422222719238302134823208588708961003982602769462644823218460709621601429708997358645387273653389219906778908296688641822231248404339816144833355760556267236605452176299648218680836435861352541570193658112806810077097852820349117589402431913541329998527571177677063559594312230281172711945353063108082891568597409140435922206990722558488892094976917315472629533571428787991996712866600800265645693600260501388144856387294035009151250787417246180685772646043846757615882784055809483858315150437023518689425918860130313655763525609958059324043566910888054488045985708344040287583131384140667420573176971501065154545994927098581875167251704304199736972820749593349426602195041123858408025940372332496113677295281866168169568391225810645764261214288353966044482560184736824390305427620136436706862707897221397044194729640775895873344717964540495207786963584036128155841975074169951301287564714468388780792908745098801280223508263838765962726431043546777565234383048545055788462218084400086966071462898302624811915603722358078582541301047819782915092951543684336640496389255324936618964867657159160551401841990019348292825509849844961823661767442301170758026734403080107387501686561738630286823291463444692016462378625913966018737883407782570823703277593877828023682389390255138586332525228453374593573471363107233176977464360326570873518035599030290105387801220394740905108794059951794212241645003090638114156181230952989662078831520107993864417430956041617431044749325860039209861362609098715440467298010589607532569630587059136490741582434958409838494648028299108507637944731354640864542520695325424735940002418237613020818027298017457109179131244589863003581933371525818181514014026067790884151798172237213058997885327276108564195189066012260426310095917610122875462926954157198234849243148914871697195723002399347784518624393850037525788494428174230968286981394752713604577712320194882830453892636150534577585652560388711616014521758210433233316802593408154665383323942300574722239869312112009274811786724629509930329075783434580838103539586316918721211241723744928679587553287373235441289617950306786343872546204059437600807342454178961214582477754698012977616547428284135590601634180454473783724316413547913765444147484966041297244581614007763673887862796131938472901659370742408472742042648624158815543208978732439808011409063826362000005851800224824877592005731350327217979457545757893556401346443559012660001141087311918484006276581509854710246865805233641119406066083307511728804387361610341178672188667090825087232783523742050156109447539632715928844330055518806863198008147390758565166213659517914100868423270474230630846960129137145656625950482029975327265869951767646069819613930655120338504858489041720440240813321444426823183616779119719357358134997331388874809956898592625136527978662091668500772082807853035460637980331754322870435139753448408899083430608456780225547127287497790146466073474712255506680771745047419353436556440128075086467750537857893246443092857592851115454796181367279709297205856180654140458294396522473321119424212407289594236917491463716595091931146974533413286435720881786532630325174447024953313232164535956455549903649343197639696277574395146745507843257970233871360849878035590750730488724385586184685882254939476591100729494662997546105788638280610421172118210456867444791650146357030168977260542784630785078808346485234799296900941122116259361754550929264572912693815764855126579436580218521024035701117924883867787973905306025118037866498816303822702128044754123874460611830918463259325543251572411096409989895821741867114415234162108706738701503912935095872735318434718350445312740792945693711084912259319403042634779316171911606276174459667408782237760182724686578866866799066043075908307139073146901532182263125629586466602311625895784859673174661549734684717457867869617437352974462702880237961017306445190528975409137005682171505792715637649333622594635239583293090432500063211067691746014593107938282491583315035265365009620196931940227608807411559579010543859769504763592430583910789779435297136463438726491510499930100702277672044886417717051908781778413002041456931439975821563752860699279589699554473736956621063353023744233283510290796416536841346526879361248352093436405484427012417975968128096632288253408529071859210437014701115875638793413283286284530125695951860306883059313744629604095991424929067541551109092591185660301168555043388980418130205421781673095835326213106539989025298103695085267907837116406767718419871368575553509181970238941835097139936719444913406311605534569835314984452369091558261316071557866910429102084795249978919193043333661392600137798822717536743876691602001205955413687542804602364744002970654485762335423157880991809092555462460543542496380551114127582066527276076992914434351150170302123688819149236899370978815075655750226067868882214167075337170674952124787244459917857138424347352335139933062272092504192043487190702681552309722596144086090709499007025625342175799207795037306415862148071746713839340623264961652490534313937600398006698564332705870157306027310503333679262999549314109845931212914831468511393641818916159605745602409342766378417258355503686261470662618093602059486675019555847615047529744155926356431548071927660484439988362058687028340022529929524926881029574426128566653061893551721677132491891684702165017183542101197185029287882675105145039792585003218131041384221362753560372117041867641342570646857017434355613737735677525723657073984718879783016265062988715033097159270497796991434914941722759084373579325761229585486672743917603518037233913230253400398518229032570593635070754011554749312173833112614706566016538580397602189563634558196718459944765013462900371194822522537687682860652195255621523195526909705105862716896985511960904156734615863168180005034230989584595308674582831311322205737552050500741971616027670720655807787212436124905272598322851234898725235267919759843890163685348690030180112461192515992742345818820036202625411949871867158944275900284552597242639066710984773552242297791326624300418359663028940265315729515371368443921916525030255790793959906256449207265399289368350595029517779227701695928320737039860968132181712487041321047571075883859921217340595921339157698019475143697486948582958871565729137383665325799745181089888368870423407124942943216311736495859182780724898592628201315739285962025601628133963295115296430950711307653501767875736282871806557036204865000880753389732697845216981158855686422913762511682884840213626146065257896569578487957148025375088280303265560270276787313528985748633957460422974227527594484048194516419062356331740647562866141244009250242448329633761119390800114738730519772247109133569160067711221973750403194270322180093624998219722511232428320714341204754750378629716546776554589709688585602729417660455955268514781955568128870659255502513764602210892855901310019442300804527931894849896303667308426953416901752418216470244538337460497679654162272742758474190892359833730551216502180540537816431846134078437409097668427611916776847379765919798693755933947081111281138086087356463347438615538052194155439743786743977370987583369276512083886648904100427966149829584134659450849310882567208396166636546906212166665203216040196703695111020233158137083431988721768265747430012720103080037520408338687686974064827244837663941636107003749676978490656505217029234407078628272329701572376197347988370332028025417690140712161112097476314478288338525040663277283765955706615587888357827351664384037573271214971106982094657180387951868909989612409609706090257771728364974865379568649329176106018043256953325678445171743216818517751046793472583695442185116086115231039032890827340398524895062294252199989553955282454827467480772573344842837991187281437258232663563888635985019324773245818344630933605328801125776064865897743337991159557807332831588178006797826505891399997374687053715464492057054797059935527452117433749795623755185979278144299045326442762411989244915084675003606473323432005771087832577774118488268462991443902009953160185828462077602137937957835930797497923529847557866798228416009585399440720351374490052599444716584488301537435698040639507611282594452195638885438172963047457565607534672539794386498892119177471112633012510568024561025623324066143331936330706957908867375575522152834727020495974153929309593718906725158915834767750880686451094443058562168201240842675058038736923455869297612337702410699931831573496140007972740862688406857004896246077460449732646796872973983950770276348406197757702614483085720274755736935148008511597438874380042138695236582399725928395880763370412486786603277911154332942968582386224849833673922765136895434092460947740873024922631326279501264846359451795577171154204539190568103823105094195603592146516653911983595171014764875759990929219359358762300949885042503159990951125392326151265458577768265488854520985976803271626288535279942502748278047281972185963705860949960218065469184297323013935621010690136531988806811823763844787983493818535562140247854093377469802003233231915181642718685242497961673693973799321078676044169377308680565492191343370462611761961239387224596480162901826728242012264408723627096558335427060216987898994344300714714908785684896397136046940991482977102396168943029552974029705367382252870295174762197564073864018036881188066125014374763037992838347057272654461984732597000339667168928641534950421119253596197514596271457159544243213666882346439273160125634045312329257052149913423596389710196969614051445699303748462835694792034310689324716481574850243998223357358471339504946928667064683152538509366126085161612136057839249259451760684959858089932160416693303472335287378808206663302505250700923277688416909331539732217745765933699149182298530920091253030881951278596908832219998416057503275793603718243875774567832810384212851108447515125324558068872377576821551892952917126984220711883176030969038845736932658418879047943736675647799778291418151474848668366506877378225955246373746625026082996584388791503550496638864895032979477032978760609482957373836810075366618963558440836510392693340120863112155331736621261504324435768408600632375016883861035955230659858113104854099426245143733861029218561942286384051576745210885572838883293370406050493354669946539574691447375440078874744272968864940505338244796254337697679125876388931955200017745656849122916185026337798685864721942578088143795201850682873018077275497429107707319823675045112048844136311015745861572353510186963327179253245626891498284956829568453874454385321973514168972879986973972884631146326032865287757183098699244058021780083339943024269900983120785377370545219715680522234990763308845744089701347006784208875307087656344644809168680850065517228605139491496876008255282587626131995182474105052216136793511608142378893484347258616270384907129976620580513776066025966317919715770488770460394079115661577778340742951126214506748927640597193909181500795554979932458319644081919248316406110155807695381843801223565595534619357538997292828710018096402122962650720965703794015781174554102954478017398971739004809995601872123993637717922676483611306649943001289195283938871971555854971439432526831565783761929623392009082776274381134752180512463542077544015707102971234242685166913920928458931263719339223938353700875841651579297551317728139023686171251513891041311317903857227886849973856556248662242029068118505284134257825580550144215238054807311086816222656196401260452057693712177199949821892038098160451751053107277146236319938235083264610398367721889280584092091149681127814643706972808114674096552357192704957772691838449938347508283605114687406707803841802580967582945385813310138179564007481463530512210306952070870141195074574075099434489938582975586859905407990851179313279015627901327972259906919854500998554095260629826847604353583730730205477985754856632708349739146612008359656765293035409381621293548954816574952680971524532105869367386883576844097265991681185794883514606612937687034492959178032082313595378635317639177669279344814368519943975275313066554516842775136239342466440589542236340974761869821113088415151501831354575242965858776876482726784068467150838960971373270700592258843134494739630766179052400218685001934926263355595124146800453301093768625472672902362417640345288799663325282790445211032729619718078976697288301863027723733189370267541080967784856429275436711936119821786720035382362607344124149821538894904024946144312304098763843584559711532481023744273845026045085198919586547322752442227040802559440822307240612964043541520626257345078640952323047947387436141897069435268113525303272423269463841410170159337295675697304970374825456328993567322150661570168765685837839358345187823051389799025755759862207132882188502488146052390438958423104856369266164845707163312691903409845671635826608059095276806251368223199806108791861817633093466848740006044255651284662730076911507804208481218724742363115650170231550296688308761535557645459849177941710814452449421983708476350220573046532593193241975294492841942778315665880990907266998744981343844545211260785567536082190837068544933768008571155547827055761954690275523683789090806406460081379872169536524400438243730712988225072609111428406516050514262204218925309143232549394979302580337089936750148594883509430549566883070514802113930804030079860793817235968448321389020304598727090033673106835223790921083034032780555160221607688036270080240005452354987374275554495534129087633174439466483789614995189627626144128865155915210509690758835384627620456611158946259068712071717639329196853427240924254142899361912601495974115843346801539354392501977360234699359365167714025459105316123481580128758342459674237762266561077618205684157573894296868502121656682082393030657329423732444069775421226953839613680130319948267150866945383233782603091611797133501651625450697848189051945316632757222068495414976593206551797882815545872722064382223071093994257308566421958143165006980560102475687113008445210483242739664030591115008344791421240165076798579852830871962813936073507180017537384015404310676252055830503061896268228441364312694173134942273146179636108945535839469728547257473581943255189285740485456212856534217342436418707448431672451934285929960905729317856938358409823666418146967450298969647367834178772015816097615499988268204531910654297988069389131101598091337666431018398121569917293188290493654715519589801345044915508148193710157047503651952125765560616638297537346123025182056883111204193626788291751148316613352240659940120420278204679996780765835005983751466388846869920102129330443829835158894423514845068054319568520555145999755131313531168260051016120417916134180330233693480023334091904064827765466883035718401285390293042891459544345872294410608189704785508055670286405043744635278079203229012086696789554738732443792881468872397834932083287601955385353523372943941460538030186959429868054393156729121606122600680516931005099841197281572157052770521541293137682597202837290090725939047346224954488903953064340450501155051508057632302761430274487811250223557089737073481666837470650721338098162111111980103927336472741901833664469380277503097765564913299364605594433146842843263709725271510639463789196966250554755989710511084680476056509109363466418390906264887631982512271295228893881561448470318801692531993361048279616887267295597723537004063957404162468309697236828255428422455150787193638349575389971912402383008627849021467222634922022680133895141173204566842276630586677408910512666474520921086800433789163012535832026020872568835649691689862196339475752875314979038043350948916972279815043154000899226565601646000290716303165748531932437713879170811357357776645085832989925080784439780919532378836230397227425201538638560184494343268270005083006541808644099035478692412535707753181016358937577653239053960089099584953165239644616454798027475970457323737399158355780234725357858245596198488414889869203288683201156487698808034750038642768045572898204785764503805188281935000542767748229632330786311950651554572716955184886038519197546325026603434749271779137098462558514775188612995067131268367955141120903978270001845806153897418086163157262350538588648012980062845912332125333974427387727979197157244507536921113281268944834128178636917409303939438854215014978993042044782933790680805845216272286007097625963411580628767740514788386406508076177760504243893486913916937665076876836526051149634620324408972168831399711512651015895728896932303365865393575327801950220541493477776395238594330058636344139605803115251305352372117623640527063939432512545270881403620340077096213775760581289387204498302276424967954163860558592109077994796384130183122920896480384266534596561170932649888462825180562919392572484564436893459000269296769484403061473784235802094285477571670352758948196141422126766075290666659308839573161065707307426836532997881765242457402590550636421477105203474467880035929897379832038487373407018968794347047310386403116024249239984743753654375026675659644052513883507091513026695055124336163642819353658623879763355540548840734442572803174263601923909738369331349538493475073332017233493627291127473703794110741140167094595863338400397272018197625060764544349575797875106058480152078933622895687699915111921296748925625904360674920392684085178021417042288059699520754886051337129915377630540364757057455522645545620322188131069110382529970419148825510604129630112336983554944163370883574124640944657578640758888894439735868204968799728847584057321825277664033271790112143068975946872522400923346008532974343090705987745312038419336830348952133018226475889111793220259735834491291055720734674095141357843318261518691163754250500279918977322341467414747212638117699755567208086227752412986995816106437247200447069082287697387506754503544273537179352796220366387348780983844825680743414581740540244015876617420508112375012017189966992107008121536944100325187783957233779532348818236260280935515326220471574080399328177059641385886864958165589221046001239852555483766368632699644840948780691064711785067300264076588183810286544632932556092881295133468835167592675003820785756687958904004689948095623073922958374662834814985075586927105263952014099033759667674469683524433003546140600684824708884198984997182548969142907468518869077006449393953189860633098861322478954917252390171333292008885754719211872872202505379812454118765173545663888917805597601284162850385807571161773050838863972288406364087908263623819534947856745943648579913319723928399937536340175156774157773025608537552382978514899116745622521505343404859450863339137358806188593932734275140095491461712888491874285353777590692544347900272363605897016624912885602694568676200517460725821263183831826920803948556099388967027854651417127025337151679026241091099965641896732585594373900297865019314163671720426707432514032610599516867650628353222721076833182651339676081546665947732519152872257005780135451984644298342261874091369641648392932090611351985962451957157537741463803862775877648336681031600491726631773042594431464186523351487585541438294816627875430210959206336993488984285815552514782925480412543501536847517260934217357993251464156275242605553898564343225238208711155741434524466443033974249296687786837648696673023270729845027892576696907403241928976322501804607647420313922192505871405613972344497675397408479190895607705196104655719581055832741393494091730258995029455984955159416896631312035039256079388511590491720456094330336570097999247161790142756469753775720756125248968243777629689597869248517700242280545257467362573199296895862629753707738141095754669515669110439638649812707257734361236302428574279566975034271070121092910660114572373522487397508121555238550602283982526616908339369009797073927391587372344535452291465528943171441403468072039987966007358939531351742858380079226796689203688166311278586595046072351938813550244619446600627389571733144571902761339308303185220521607699092532629401583500585672649964669019445563524326624394000658660425409185199586642612802109849688073929809441831328321900454735607582310844969967905014016216276988828103231070140192758764013469238264289991239731688602315851935424519958773747188395432500451247777122350936706826803962683966702389080879632720943974913578519220939350374213172811807831878000204130785135139828327790010402303196383196187828579150817610048334202376892972070009526889207762089619388553321786039737540528652904248705025926563573011147027313205115454994877799755009089105896220503621797133597748353219929077284362312732265314546032773136676304239873274126888475503189925082636271726751588938550082986036132055384874328172983602980126047901644006364530145228847052662526617530654602053086198976895781977370510472848166941813026062532001792544374265861097128819723097860704401292832033920396262864000647818159289174849101276918687094202616452166180486088717176933817932572460086610432243296525849659410181211276347520292605369078190744020705700245309462681218007269004348572029669538271869835395152926182979069859662105045262128193840916262232404269389422032151827396254859490470661897755716023108590265690845139763597574191757555099872918243009222622147185226999772745404638555564893660712703381798393593624229787522244388071145590997620277237215521064581181898771068350605400062968342740976623171945402695970094561248606811456951498106490059812909590459699922067411278957730314162642611215531129377670469838753245241306074762037330569947746043252463865013470974635022971297599845342040027743811505229752478969730051277993031606433475928899984650075357124600598672740647472280471828931111282802123502998719460161252294439931221633382384607058721748723280702817388846037166994529412551892546878375959629366714311497707486417044078955756738791980713936296053288435182468676514935378113013840486936646844714682411759022618173111374029914060000910375901353186324777642900751949226673137539869538639124337503076555715938084811724202993642644038625655499949410082825262185584644024775204547507152680505521346738936017079213952133664508265337610149282508168511620503041775290867769603050228970929052307467895241583826532142674121545812645166032138840794195227407419403533507547215354931168803379510543774312095787009980862271569492045708826587885964714506660418438725055013975673993610220190357871735356954043489973381831653558838165102362133059885201274700703391952291361880259537665092855155697314737190693355286902067100020790334072247793969864451263359168222922767065841115179004800149756433693509362089561290224061717996762371988062410256635091949244864467214382511305175599746878927755096854886946040832070728798412453788463846055157197750961828845181692274452963562896795697791703332299070617531755481596835779325354211333815604940818545665648437950265702962974225902483455720078369661019325112745068525120418686287694318103701404583048349962156149166070127540689594893893918114422412509791054136537474149949498709448831040302768548221080025200002907980575233574838626455543255220057023386625585518719121995564531291585053214501500782031700672650382486307948298946602397567688477370996204889184941893032875224016058431582745561392371440355209046885470919485680196706246149020720092785125632937986821412878653959092868188777329537275602344012459112390775499892839264869096567196573273329585092634671214667088274652875377379022967747407943034999678790071471972866629679788936784358886842011984516823385879944916547581875919765838448149802103960517206099301925036530774817891522467330503177968669323373215043649131909942640408544872183450314937287022144170505407006682121622764654324394080923322089668992373365054115135238153937651015708235177878768902408236007697429038267059108016493624202200196346199396242785458376312780666915320539685013038685331896682124846551030593197262582933328296039699619888943506806193982211238571162286879778078178260022365306750171855072667119857543699402063624347765012152449385958824976208408104033245388628301203703042800679108098535118001555809242369550554101352750590016443981601156444790146728997695354535484636504523855397183480480208201199817003818957108735758594776239491639741420886085121225861190553479397839129471434184168122200380899583156298568714699290336593077607482753401757146357547705110619237159933083397310721699070988430750969161479585212607804078004896856142091490239161874152897820219942849847818617732119336356625953974602184914613728211313347320847815279088800413118143366079251654938606151212719647923437346945274552865077300971450310346502444983383901120277608886808690362805917469848814585528131311009758380402494950436962896922317606113682030505504034255595810150606240455581749518060479307698619159979649035712242677149436817344322088681531389553389735799963372694549980066919001785682564108045240760528409993374758856500055777641997797417945003073084700557841740869667211111705435068284595394451611340375551838739186669760735287868490340337994167173018135900401801444777786832708044057575994800182540952877793798548881034734923595580358803345811254588873107448377941490496537897466907688663239785676451169886650357465428129634964780821961236884839018225180123033089469882041848197641201287887638002178808925352639086079712577583073165618505011383936780433297649332616323996812434820481789338063307503613253580677186958585093177160399602607406446866924333502747560175440334061516731066881283810568296239607459733230935066412523892260816506898391819185029388270332454530989344157044507536830400437219693148232388605634214016208559832008626014587660593387395664495933340029795329412473577515250554921972495175957778958180853508093633472209369672277996177804812107376734455042455106759425742255743958844011876060069112760988159067467272012223061026087705709719490562639874240198403738037935948489874602644489030179100869969037428422337768024825341027964738533884226742491037809362469746423875881109066737549963453360256126459585030787480514402914714684266044252433074097950286741886172775667153966333764719759141655282108495778000582598506223083643371008156787351638812952480278633699209981651422414041068452030192257999221748734500851405743761522187936038066863050750783246701123460014302216697240944502007286699706659142849175870250355140708567872710128358973205451172796787252542127463191384700988443701522332347679548039103118704763581634402588830272973636575675754507606793727561137859935288848105832591928383748217984563161767184385805323238790797779496695157614371333030942925168453918475107578603987223815534044070578027813940355437767709854032909198514176680585768188372421653147162562512150726110087052811216605576648582975957230379752464825531846823797068731204393265542838734137497750929545542301537021414183513182337569508893700188880611896012638753931110989927517181369549827475092235162929260083082336922809737411598534191539693423757380485885626051523202303877405497884710607288757570127170660390331788617596766144554600418709802493250023827688309204965126058989457398402259142471157531201133060042866447746202732725147075362498933461873394015834362815345751548968226180635090902307238096612971240137268602409313041317623098395625107135076130718259862377736143205126983908811429572114021415891455547169962652961780502759620121273924403646102670204540594080918659261127699715145791769463840999696596404181276709564861218891645618168539130052284103297619361625700847673394970942695577696323403284553953535258274936655810268551007275573056868488998636201763293724367989932468739193824218904041075464828280098959138871708086791866612957424826518001192319253808633203807329764766239251911406911592044193001886196262737812023251450315097044408630689917852282470155041882555554404086741487673558012121447844127530693667483121269235040391228424628005068969119154237629180832473345282742819187142126484949258952558513987790075793117156071604565079176847001337270140999509508309350212904425728211150680535737145897301019617443406554100389899314849532465156070056339201410369624092543119149909584729654404329330596213477418851081124198002303314323410876939345567460000380298573063986154172137130850540714875316417596359319020937358904204417195621262512626713704441190340013352042958385601087324510009812624956823173613691679673265409426515951489725677843502915086949180993394301036786932154844922962222152535798185004507677876314027464473866691453543262518651040385224921636908384045497659298148550133981373239022170092527370896196420437645703535479158098955596324535910621606843569795442877864103928077322310282685882236041696119328012022522074842768412863269654744815049651870684554232794277136684202999077854679353783193900384906276396810646113005349006695386776479040329895215547442856579283752230215103161587659644285290121431362297315966125498863312475098372737885193215288278509855513170548141784315519272026148562532642855796763336862180137871964350982187850830931646801981315633112689989413151080642883995981638577843991352374350371516212843309340462638073102746909642578208724572735587408347463808576744649772104164954743638522331757350784310489081210485630464810734950002075335834447678689235561763481131000808804788100734547550341163551090304356642540598341568529364798910691754776913518810735726600257623018578393059329433052560385225322631660422802773102915996952505715469111939265724560253600590027048208190985639943240909111655207782394044970766693550892728415260406908832502434739934924177691078805787620934501283922895837043137429802292325853029973507554706427740458809488653205308990009274661177536018749198464158346017514138848820189280928268803420219604156538022991097239545664277547168377074895008856266606895127923699532232951390409968335051568065616426176846866390971719425819107424541106528853328584643743443703241790099145818163397792997349203544655870858639668692753205066935963379939292578425933855019442818869715874314940572639586653161256903824644506238552321064388476758783165148477208370156490918234689896474312188334431341876665425963732985309793672717176064716879386479730573160788833245329225462460699495833686202407634954213521445703118533507695844624723897675448581118218574285021855480003749601508618532088640055839359516979654124144574835880831943903307744365584544145581974025741131789946537420538629657945712761656900888411182055600700228647279878045782260687043791709285409397055555391627106843608250853510935826111878890845677727450489506681066470196043630234504554868027744488607691261558330790649608358576925802695135647752447000722710843287780037669987269374664673339618549414989129804022710035939195169360250088276710524481392278081102463617348057510609105877682932058169869365698533804226987344905361073343929489091731857641008215942511223833649311414497572054085693897199991714287392601899592704002652183445511497843977532045365856048977389133526862215630553631843288433198115093615843818461317432526651664463487715435370184121819895059547078753259552465513422351029135998714531628295204878674032024129078375031423787470808059899483742775509342293116861879799351725965321391788910349982181968413691554472573598577323417760735306759731520302872303973949675054399796633114780373043570890136750060307553933769443604476110862330094945134429389719379109896867402472242531524507486742196072499609659780475440710112616800247288952785404746185190130258545864975891189662318319129782154316491649466953373412934974106394681129786280531142969544524071357762165701060451086998653146180923304621522796208657718740258289944821985357375105812032732136618295354375836567731792666279348231782644298448237044811492637463428750315122158982022529819921040806290592969437541980285688487709488824278191170412342554246449414097058712552298388677612663056196806825529619830408916763504394650390522857690793624726515253123019732695441721096979665239260685961361406275118652454402395553429157537084128774654347943308867858939291258439623992074626371492684612886489804940340185899302775039737706391776645727025303182239980684192000821298113964756887428784939777577667178998386488443219997781843530750000555836522669958507289660827475319207087567647075927602367620681618878476185676064918535839061185738571250398860443650076904062734431499449818350210700944189196578720696198120828262696154970274089492612508741847171903572214794644727784032958768483207288104613746300531390108492452053903636043109442380601562658538617341672862674866139125443222013562915075571920123544401331521408230159528548174417352660559596064884178490801364846882751850101458195693922194039532757104450679100379376144636312919593337686672992206949505321700184271168822008022691000616980458496502359251874979808839480364663742923703661610979023986615701530413350738234124544228590500662360684196709694755551407603349962348777982568587727651034099394013266993394108667282411800241163294010562125281091994823530505128097359481927146513485973839412982528979530025201879239357810182067416935955201299605310879120682701162671550772797827040620728038692361607142143883577401026850825538416078453903384832341022534383196176934149007214593777519895169426005246046834080511254464461543749642762102634033320053704114033320510862191380093610223255580848221074664173038172725567526833090202920517945818919369010319143525607375483946090321418329338941737339868810972524952356939205578553018070797290307469753127008578201701168973386789413535216467848466944941054925282693438257496209841850088077981446134050370763247903202686164356033465995268449236572825376110965695773195207922727089187609287354456498211826413008111473337392927898127465975090510568592053319757675726099836995439522217573957292339271059379687766237369333921816992915288250955669664777723908867355635736905465044837631812057612005470428803447766774676562014182984402719695529931507962316506297155562177990201430782518296241488523749913527541923166975654614225454101151969219637196800718200869417259078869104592658260688291390407259532741558874743840525313588409700723741244094732772608447613215847517137099846495055983456392102895072068244232843924222122517761428523965735253413726623468024677796035378883594541309843165970165496348531406330698734811088050381991446535019663166057233392390395747449692965489456716165730320504613403345793206467537472635486671504653779588328133790138124689915366672393121174119762076579234195757117492422231462491744038182230365023266768253316605796844326317758208893606199748015497227929540099410354664222152995494656283530106810389057259429637965830060837344755173409328061078397678942097701983202597991139305226310103693366504481168829664203145811007330729490170422966721212444868896207606284879217496452306934396465657056083958425453039129112775902001715087518092577232310521915621246078209569347713478297658042174703672360662971691852144858635806641224948558747456666125149797056703281642881456305684043525724740191835821511949538754641054997099800694176837182139365053404595527120157503923061356172857771296478588441319055503262990920775524113874839080274248237711529801336580163878251959088390745735376047938696041566755879940808181175962972850601199600360021417653226929078502690786389813799945844473001817211445395520630865168354359933313818748107830395826011079453783319801795626297977863841435228349728819831964006511665356809599972199794193411415093289234056009742867834170770040785537304765671652404206937834120603830700224092731874534702624599743691542919017927210711038047331370819264713918063700553417147245130497340470446408264510009392124012991174433189155582292530821130908389569139026836645109380969146014528516935577822475858861756651488799644929694708873242049331396242652455308865182571312721362375736251417401993980548007752027650717086758942974817988349952415171092401993090652203398068932847729551014427334724080230736363791813998565337942083726494724522658104379782067534001126859586249794992865748055230695823264851679684217323569048556681378634818816638938723720102641357484347926136631150581259756072768902582977716936997952428314143780841715553517397048032346854957610903388177220872965284425340905668920720070566749627828343100904722112336838579577321133695974769999339147751653874747062355227782550223019472838382446778628447381396567604344283437599908471283453363154504348644897489575667008369651078457633508382639418293121466965546206301993688770797023624969782337557904187086593420037637109016280913872526224786569009304712540318477192083864285234071620059029072112564330966713313045173847397868208780935621164687906490661043987594227285180254143877334119698009762949692321483963705345612975163219821772288438754459626797269309537808023508040113456963345910141319633711467815626593531204233258750413201216990086599109291197707497365316219303974789188143981161508547126079590138605987604232193947757366984929115663733162106371247498585389013772115879850876701677536656302423288374947731847682856636591185028713886877385590172841991870458970080531516870104182771930812749544121459696274573612655359452239568144842800503333957621358826750511680004845622254626759458092762590366065002158733406723655558049520943357042358987612381116999326574285155854210329759478316355477649826927090076893138005357627367645390093966106498963244874487009832797132404394817003171865798741766406726898951442281096244416012963367093251216335347396751516462651189398927896058400897506234542368334760204856558336087573879970716293431870259924415769400877861565619462819557898999412415701368155937233740079035649115117676638934278429047110530712995232919282376417599866136124335058068162914412580991838125444777723663580164451072110032289100812289665406726482009897442337988354113468735460578514376240107670295112913077673812352377309970554610179110511165097051606013474682659574438638151210050650479996058181700716480137333510301157707410694940344534050861726452849566831187197768064169682056809041365364582232549834348684439018305115918217185084282894882069284906585953033191291037657033679461666914477979013139930288441903612064693748842954971077056194523484461719561630165966079086250985712981499573393342745933536903792032530251744490089965940354671717074449759344268240569355609000619663730127087803765171991826903873791375585515872734099218481427431498428554889044382012064655333108967569129665030868181334585434252133370382309731546227630641759381858367035709233529765383419341131775982151768041570617303322359697621792051823522318648451340513102711073209266265851498425913095438889773915673277711208661577974164281868172569984695559317845361211452542644617408033817763817084915829906036264113625077442500185858435355721596766845394366890571015706909237719125601167842862322760624559088204661570545639203376818876944875807781729539146175702110196239238123568331214022263441705982277268944710376133071801352061066971448753354851490533100313682936827931440015905464920077833373480250985734768368168729576320849681030289475969232180540775505229072321960211820838626695834439522803422672638179241094057321141781000656410804533669882259685880254761275036444530906145472494451427874652421656767204775462611106741499655673842576375748871848323500295843512008277763153446469913217886472118173026337975231878686548615614410566029640103244072960076087625560923222681041668621612336606851635538840930701630156507682610553752800400385177950899569912014334605200645004321248192732136855931136985808153656602679308344735127202622430437318315532554881646149386726165113025303165134385690371661425338168167873851206291470930102389153553568739494989378307233075037259497757271931235962021446202933189065915433260363172097199959742728538002246478348773918231442894553829954536216391338665119424690956521688938917544463190688278269356591500816286020399390156722594423591691330767614645092034762144216380293920628775573923108831340609863095761870086280228783898449799227850062314122132617375926619862652558010850814665260565507894886447092792462781075239532691396373514524078374370453484103906913579037072187657740261244379862211707980867411641151731261408944068926086899175388420586840960208937493944890360362283167693982980270622530805415171038177458982506373958499454247475898853758563477914951668455475405118928556333206265452738921230107352146421499910631815939739307378003083229481910900047228663344682340888471420563627952118413494435255201820760902978083240406394127850959664841278494223543856543438185101144384165603101801541180785741268456665348448925968280273225881102533932349625924009593007229820692255293127277656536920348014124176796431391960621503182341234924305935968533144918071005658995823335901221905884793412800847539204332681164833834258438838909065715843159499866099155996754801385240088348249252651443663826578892693509023488200946366436711705425873666816955307957846912098555004899620476540857558832193389187444509182032592050680469087597513668093503298949951943926771340766931463722189941126783102587483607337850114772782624589949942145133566207752188254691044607165812466980562321856671726930089375418979191674184142399689503818287027983125395773630285245979651474464091546812549912296886303509065171553827630960959271368889831265277917459890575568965848151267751477575220273801430071914608149425975438988690884779851331153056428810332698019845974351302796268631464195160853278289814416322338384566497794863684289048509993583987723692326499272309912117434074811896621941903621687142547900061921990030750547394489485515040075848267288475919493208156021969019307579643203179161998637161073453150772204802298344282114477684292798646383969853781088182286992913530993234419790756681989374096882313133512679533776777085019141534684695186232442820829210379130461351169095865582399603378974456796530680157159209242449415089216527421660768406757787525967895718783484653241000496219237847873798214380348936296691486275687680034695947334554342707220614129616269958180377806460541222852153298015577526936607851036367493549647857864875964784993639763610924364537219687519305688554992013219197771354233259071596728226065378821810903267599330779414126225018915132467566869632903372241843802138271471777295995893287105191001900736233351769677725178285956931520076144862009930107452683632997134443874212570299347896240326313212985417354431902237272382435244669875780511123776139854191685065506083728260803532534447147073292918765581442470518024879940954801831822163285174619912673845721550097020584641492237886865388642923794176929280302187867842711953392891277326747912589740968983544487514249369995582211486202460150116101010296727254489954112891579774117966546069654327658060448621076073291713952535236253502707168126137656382626518627547580226426238163471318532401595587775659349849770554357675987250713902165010163038027746609616683022122685731578770290640497764572830194040833022840995764403470292211480959819047375707117920256159940416158594479135448740670326725585013405293486386612537347429061488246798181349646146844390217604832094155916123887976196338167658113997465463710514934239790406690246953279128878685992859544053632643161446223584348992727000495431894723038030556832336639357996409750195087308422919286729519297767649497268871384352007417728713010222911205040821793664244016878759201485674801944193530104274095597224032649678179515373584138158507826526471852618552288337055119304387372201011440931630673976106427923231540256411029357499843584291870879568769772829070354610156466694929609568912460132494747658211476494579066488219564298861494382102520538390556407028649952845168292531923287964497637070604621411855863703720804765844319731690982845277529940803952897337669128438872998083400288464149387058596913938606950220673196164854981460963351254641297830607776055903271067876918173774904250649680140104269917016790510051553402411707603046949844840746334055210101553224340469434326914702725160179606563629616624161404758282730673171411417684395740226908487946011192716928534623116902669103592375653829804818721245210464951216569439620197440437035324615040285644709910745906489590743256484191208182641013231261311277947096348406613659639465081284108938507923607901660361023893256844253659135856689517973797622781246215618642431357595502933567821842843451462215513120715750853616231034654816359010713951218101306043542231446298750282127381092394086045373587809387824792986930862821912986111816488260379415983639754422480803538606785847590397327254434771207331159619746913338120019797305928064040805963123614200573592830978112498824357376661269074919163898344808843101375318672060996700883721132977062899757083378473421818127252758054931215503414379152270303459041578036602752845288114688126164462420381225397299315558684515316654082165757543848185809624672015055113643191490540996272917395611608058391907926190462018182378264035774452731116419655267175859977540131014304055599242867129331822039607549867448458675850249517021199446651683427913310619360818710254835541598069309951875359761463052111000201803594106833784910288296775736953514233926716559033469513623832842839467355661106763158691273522351149919290120534579057213507047374484719003157023783626940068334199292672445710677365931438523555606464383303166433809934510226288181923527150490404299817610005753220657407737395470008019739791810928064075136079842863422516204638873950465719497637874777884515587469793645141771820197614553246879601909943416312074717074032220973279775134174556023952995013605161554960574152055021526360402194602805687748056600491422281268554214596866873356360936828854807447048211310345970864445700411666752936782453457730209609456311229583210324186084242823305804273736033781843319537018558272679650938060469319041726552578830078035044590219541932678968969835713527713978683882128798342120242344219142644373685437671003801051946298302650805355562801386633084141193351303960289566366061263073872798479555177738663677924014698384333641704538204285528649437855616707097922675648407752273614992214121233915281542096682384551673811272398416620870057789806888035497586942879074087039931055048613844642086768566462737143508936840423570000743221692189359701043118697355286156430419715629312451170045379109084269659744304996849647333251599975821575889431373748317581951408368460524855005790274994620037031604027125466532086087708334276236999534468434377199168538064946569574474911358822216514221308006944438722920068938797400224659231855216415004492789265226445423659662441343283573747524321186306361627732946203855039344539939346918444154360397549351169776117832269121389550822759552769848794812113470928942892804362482350711019429684814874753947006985062916470192109359336768987494384079629443866431003721503766607366607137509741565627865587630599099735834751799409257957876380899203487132762498013390496851803435744388753422302380209539066890320209217470237974310732526880967206759284424687368531010131205407168633204594496571993515806379361860791922573597646034670546974634136726574375612069006146750028228851023114535798815335347318726606285241736870765303304438338864599055656580849113021736437465778436433352827971893410287333708679403054764633083938108093045896938114582436404941117219572937736270065302154324621601011060271541685034856479415813048329398353276737645444572501590559216005896032160661079623617047478998386210901071295040325311291707410522009374927471353859380206500345802558060624132506490759277585865587497472851030623684269400696328879818734646551995898968138735247429193772858813382244730198618800235336970472848550571522518719948888124053252808643915159049870788708768461084938170469209507355373499573389826231919233020527448797274498886138920576394775422915489794431586259253385896049017357535725665932571475427699357750000088028089843289016968238007400674173649733006966811942434265184138036533223566940028340600545199965442012416992836336839862639177629158309930742553160409560504569682390704440392089040249060334726624936179852686161018508472893747825960265558015548105172461655203799850540360370569299207900825474340397620128008955713606062582148097635782669250583576618820562019364754272302651016648060886884674826138203883873608430629579979568451826258110556871169816345827470906994784150008457613347391913119914887355821690840969060645322838859752679004406056697917248878032637350638809615619027599302630858177040670848342761762999606908598663937641012860706296032354720798064176914485977190246630076737587012772878274902198949126676771000914609557713063757502263032400476997927473628013143436382443677325812414851692629519334496275138513677967218842271487417673122299668208207825553254618880485124698756014281670094988302002500482524172693964139894670248471289442849178384706736626386672441273630597716533804095936852553931074034112102625900480856442846387939029967225495934706526939468874849773971659030913188033644361764974434327172017731601587731994400365732300459249483785123153330287726617506027168417213849062351038105702392743935168195556428448517931776070950333784667633298565514999567003936140114004191225451395300415676752923465949005800767725656274718521386014110200989259388734211385901922770353420721951837441955670512425452650232781257077105576234343187268196371839177012499126814035419574186574065583490663623267429657958242839635267140416148993557007554056039862573367785602211497862133371466523329497606896994193631696675628431800766135473169953288623530420747736045552638338858478413573652567053945486934245001728088928599646011267540829863610622093946651979594001568222045199764678352958154291348204749055405991926552087333851671848860661788268234485977366286094643902110263606845622389507934778043889336608639182346675663613887775855508671869067917879234292939718062781102954807275678069856772406476259737063886676499322796861207202335344105307732283830640954114313688803354574091266990569961331520139579396089418064727308322643580865677374666613206787859006171159541278617476593186587564790494034297780378356857671360841041108743561364997474959870597686521512987117234420022211612120407795319310430928161292641309894704628021023716752107994843475714865248828041592745178602042991213600576975576561557325070149736632120528679807813563847311309436539954285029508505025536109561728183248441572360432100220323559803993238905702533892038225621268545559168696205902799756432057936562603914685411211644572775056571736895059692549273543729577737668495465430176317367949345185555167661241490928908657801393347800054924777619309655278144895365770744624579055890160841061063104663023862456785277174032401841992711511831479672849791257330747854587208566404442741468267338528748364453348651815197753390945119948302466257760625640442413911793133015051261585602798885455055529204256421757271316712062794709976996730666004538382143952810097043366203965243165168877227922395476675146400460652994932146602596117944719656107838179687706840205748018000909499828702497137899666771119080703334064519950270274204233480390107881046432471147229098861607439781146425044628351680375303352417219648628031209801962930072946873705310873496473117010774186882468319284023179787485452113693101583913664493711690959332935738767404739566727176449516072609675928772325144093999675082783101954140461490973001367915650071482399636663013853987867098741809348477163431135154415135353779882786131482954257403031217690015084072555919190516728493911067992441509324809446922996276897911595320524392069866675562218517911145904553204218626489117905888895696174070408496848686056434773780967720537812510500874213273854833707816882933021041585485651062187968093080830335912909705891006458726305040642742014080474626845722609124755394568467789913062845947861711515030800317435475577261453511442416301218567428149046997782035662555040106942100319427839530793826522162322853952129353571276929422577292587494447478676803514129368320901221297026485884688972175256889993815509681563025565652073316174759526640982512515736725228831618921964701469752937488413215338922159143254444145323708542411578380919476358872127593100132740098841177079946087024446156371641333778710223542674397150985629051762613121189373768999085533762832939327394181045818464910897347184123555924049893038661487437227914439570523825225010434828914061584825782622932444057985936317635949510594004173433949386410035121187547987891458279747379498396671028820041137635768520610457396618951039842361195347622839768850463268741312165869132717515771900068325901950496305049853470947368867925705269392300414316909424039699183436867847231195889741569477402735292872448074702459288020626524530986007692460126612905515968226202923636030998187923911414796280492522202608887247335987197202207282985085584700420812802356200422314847105373901307165486988749604714495787890556453704049154991797941038625482566806846674197635639643103049425008485257175089637419081093028365848609312101394809301752399527443262937258892951943814362654550394059793146505448585554083363633397434522020782461079257958540277335755102923336313279275381234309523063177577223272272219097653944984089161892072906713987598576853716655081498912388762544096929254623061573020925880856922745985030214370927283925215295762672771294163882570515269370586221077522491477451993994098489146937871671327498128630226950152828528064207982302981538244359879245440136029719645428431199267807335236763743193852922590905194451042736899009021031059930102072841291032745586550741382119890401328788679960884507681199435414931773794510844023236387758418437060503753863732195142822193386808623026841000996639272732110802276629350148943109461648260729759656070678689645711740747778132668825819883861329984537780319481856854003480065063241157163914793681869865348396978803746617733290196438641700972906805321187321718366673655665167129595687784225784067991360603868887161775737728397269677205615810824569698877402488693710778650498827169522881460152777316818746319309542089402008296128745261923273488199674686447180461609491957840605222049645851315153320095655540050643572768735018753687567355717491951707924354587507240201452837211475193371887135066813069410133058078365932813939068756437091163749569700806312566213898055837913631528405016491966925615107285839220672063275410308869376271137562378699414624503399577282867111659142185868740737202369939554622238925513525928959253563032383097127525453351144205819049709282001744569999672946401783784033098628778656068511696749344978553404033861424074351576432516957662818004057296374814642780979465648914550712547909680024074941644192631057527541098286831320739878846180406968256335602512898557707186368818731402265028457584108307864962580434280457930043793074848161337505983408874165975737011384642289599794889728355483436519434964576147441607932697853226372623676163093339172727914231844951527770543121642997596838967490582518975968904411728164736353017005480275522238654323240589027490012037597767390375836711288121732367951942524682702098487506951755029770590446443450080235494814280423149555382777223123957933675322972491986080695408715916751851366430729783829789779763720555446532972217839334853188929220324510723187112330901251171221007578861366502729467834096277687153528949999566526310678443788554283154678206098798818288075441772673464396409436953585621026664952319590100961652691612088085738527973544093929478928357213954672157370702876533265824413633126995489456404869358797832680749673231536857565358632538531448482243214911673230588522625722824998096744915924782805359761990028637459228087317151415902707045558969193002681639213779795056480973410020415997327900380672892704601768269137363643252469685905455558238638509997190704559813723460866705135197570862709734610334690184044111129168674852638889318516069127035260884499229622040537348233426468977591935441743254836529436670948214884233868280111344346197893964636153519639082858362393720817374751759225430038393170637848659817063306019745906746679249900994131654345935031811042003905592082122050838867018559384565695766900963556842560442699448656506700310515566700851492208409618730691488599974601864663569114931996136923513761698093528957585122429081242604731649393057463975944446703288704755647707951047861170365519207285495921492996561541408259757087846387346786457366369086803862984464774675984971108923287160223278799757276831661791838049434722155458383110975517783029506073480455490912823431670472444251807869743701420827865352946166715760460208517498713664242850145328190046293609876582654687124908297228581026353922764890063068990766179452218670289553240919685422529763288316287890980480357605050971510641631137857869559840480420530271246316205226864904514418365528212086072008847648011190777086948023040473975826484663759932818806615083361208489731471923176160069974764156349729878170627607665793003611769026670504056121201453478946042005777466423214583699852754094650112367867390685459975087340411358035424269916956196546334636053426004466228460677546495402371785418048782680297557166501128352022910403796577454818371886646819662274027586998286326735772510691256338302949468056028840208650911254161768501104250641062803014085522927493743472177906203579273803976452419320478340143177109409599564642904718287526109257324316170500640644130826863204285150976971490398703281760045613290661520878204252630622176797750965712210144292056102822008125551299062673373820852121433348785786623435035836435441673183744801380672672577183023619124452730765194689351285059286184293701416838214623898296606875348953087304013530665381227945293046777077635190781154886671461376011192242436301865069709206044762468021666744978054349379324648751486139479086267399828935779197368531631843291517619363808350650303751654398834770732025533596084519065760169326211638776226267293706250866768812960649512559799178173712630718621159778117567571393985269365182467112802022630018238748346438288625763986679637380953984956582964730700259045529155331028031898222206508963161646299244014423745785190548843721033681068601827973469100313441439518646659015429028816464201896620801142571318128683622975911285683208574872773437432114239980303664570685240224934511504284896126583246431358324673825475533415702476548816051662591431153879828919170411543016968614088580286611655815326850183260484443014627218768263423091228404937048586162580778982141821292253749959851767534515201295009391026131158827530590257101723283810031120015264104502918828662807575688816323943749170013945959836763298536220029621667934376554688374533641110273601471909394904340588458440455437275241316249506602327459829421249636591525450988904641189815805768235386442623102766754522076804483830774986381180590159032381213573223265600739782120416511021835015659364468256043874521319128083600428860471183923763402773898743465032589292954677483207168768796101433372764073099124140253613262819361416752265896948120873669649065186960893151121087914789220587808003325649093504556590669957095444626576703349385643045932733997430870532666742545857727842250298506705104014114683626007806579670756537818948098050392919287993054007645592009220270187307142225126161715199605369450011812509095210340313936599737070312275802804210510480423564663610296375593240701208502229461300950539330295909394637579114840401497416356860279894283671619358815346917198672247482646813783495216081139446810439545652540849327137441477868806452774269933271797149796680704761243851067603704413485208265654772218413159358740612977772800833697910105560782816753463014164280113852898179578254805363179335054932593122575124337640560355344138961921917229689365724052215037604827028203240732690709942785376398512621515837630355917325613454100094175211746461368099318770092463431044678057809838208241595447784913144237345816714110091412777635181957531407717915913409330655200321556469004445311074013058466642939275106605477400429873368327600486807467520067730211793010370102405034767756337117462835823389018767401687517111202975903157698835835767614017609382002446243178703870295169951113359060803271595270902282723750281333183528063683601629189034434225050739674830566928089985356909251349779646116227410472674830508503487591390324880954586011191226574568945599016382450388109833876700630203214253813415034645950532910817098457599512110356955724840472971703796147033973978519789988298214744155585100456164449159881819830766025611241312531335486851979369881730417352129266179667490099082350130201000784534852016785452576364183722008730258352936132645957968697902510766729518179797817472308192145588185031328071591801822151074669351852472713028903519585655302632611118085166623012396466477627242501773142826504163593449303910465045339475652473864563727032368562599444655760451334953454072078705053004250119452595100836832930958786063116104997044185190417653931401736263304544430764296133517439022883452199812410061844320553495645879370540142546838626522187346283206908928263200010884501579481380017413194147948833737114386251512420027009250351429332054574154392928859138699034779364207975941515106426985446399733337769118379237811912558810079685784159321584233757422982977269686622099107197089515596643019841837063989942939402320235176963034971418728224373179995266876089818790325532805283873975496049883763646109854431941605791622636826686829528940070275584090274412076010427981775464025459416794698958607744352784622551322195797854424551198418416790567505772461118604123749118378053993625305752647528445848140611529722632709923533607619103384362020162581668907801974538037038426828159139483100289911798816860950744685577481976708154108992061533170381353920107918214244841195578842073164572363561808067832156018687907891983495386349917975408194102302908760309763732323434440825223947729627317825627616006170899078954455307915507406370789855291341309630218759264580780816259097969699519663047842319408730918716273172907038272884002052080859356780198809446210324554416274070003994404556318408665136305737010011184784878382849524507049106313785054063390212747178581803116137386009530713817573196272383816876717750522886300581210427738272618849170335359397417213067791035302588384475341981946732929539189669647262824603978777188780750926836330221617889794687386483119005256645066878660747253928039678533539361195214722710605251942203702537247467798955838588865712524316827819774975858240047887329197969699600586350886888341774569453209026970960334449196998778683594631791731306606285921930225805072596806067873030922837266401422937425145194050354649771996874439367694336490905206067792757619718207638158150753113938807413566070554743883031270485423858234909549367322654827420167389857242359337674485363226628993125565595226946973853424371934477914327710613576994089110148098609661336950486685716955764227789078040173183629098671006446338365254945449837154412232638221472324881568034359293975467857980272081678713765682194597036596154463996314774416047695918211476714841092939883234787020596125391523632131985737752311642237868201586564832026569429843449889366041151397984377391288856286075130994781945595931328270344888389565151635544883988529980375088388611068626372301025654108553210816430714565260634992114117974759088909116405679439848429421200470384460968642575120402523233738597693252830261200728939099207648735197890294095449592942209882861235024630938351092252081192109191568684228019420430926183856990005970139554296402576785055003184691463466808826691474104277133132504880673581054984341165407470035103484706348983013779237244379124821426058121638553092646612345662904634780742246463672859086339074745336548345109719521757575755064166451785940064049232340858554884000293046953462596816970868213153755178254668106735498333392833756344946564391144995869213690212062353639894111608698922909633062529705521307987428709005833469750183438497559027547519276985208897209188352403056793848627962347361956222776142927853347609077889946675016467288508332416521905515301491181930808829797554605800036646685221825140695026580071006171555683259077160151104935878337866139702275346958430620714096807706718470791617790928537732598038484767977403472598826568158328160542101588397431448580527082323101413486050962996579524102650868329584823954363242516486449759999281374696682060929163679430807016799910358949457598891875554653485492897189952109187827119529518823520846262570446268378581837990802782370494414518950435088756561144934616005321633400237363661129119045185011310340858794190426949851651720056779694575678222651298097816646069326966520701668818574128771650838331447584464008669152168358606857233849286877783313178920142635859989310448877995423804030712447407426306553879196421562243170071921896904365792306722633667249715711568437777251412010492352451691333241834470393076586776811776178246930222187486599809141390423637642782473657466753287486132552630707075332101482828670995835236236053105127934821849837577838083824561400063002937272039708176312194272995863231164561966775906072564256605123553649625016451759958048150904113471102731730063012320452498444802686709166815590330598564060113011723436137613052728552526333304952063178331593870425492215247902631131663797843982382021015924544462835573176172833353548289198244467120206877244062663716550881701680420893544568272977523378895555192276701645847418037925373743806415581804112284450643135492269788938168072665793217848128931883812998779278880777889724854517940707835828180726014603178749418172825459205850772379056349027555315367577543952233844326633083692153030149452297923796254725223277944227256458244487960154714053418760252090499422017164508165314573032202638629714346790052461180378470847367046801244118600511879617828240993554271186098358606855387527021074957571363213008087504131635607758394579619621976677053791127898481017204513779959312154073323774846177763022734471314964408718989926416514100476482830197557355629604507036276593641392973346695310256982220774215419730002724055068256485743035280784890064962461519943235489837875140061914019398272776400058608497543110082094462117854764762055651690386548050253873221672113120395604867520914357527164758504095301571670538997383385534371762985758273249025400400834691150729486981547679090048100065568847794043842110379209766982127019541379975471405947647040648696682413374802840794253133156135332959211133489884381800334148741425337319428349694705309902074851237012579100108261314372623016520746392008965948368770599349931268313952433234200277097651722989931559411770620581735176815699641665702490889385328937665518837707703628296995722293535884298813334344289055274754410327582646589321062503423657488440000093066101414778479947316888665115095254338075506744247959987695965734631666944792623432775650398900408852667965005725399217317736495620105726923959943333178634863095088226950699699860033168946950702150349995492885702376449216214641557594244013035640951954563253512423375144143302023155108883055388701966412326587540216520928195220950800065479522928739764424362607850451273861044122354784474341421720286494715824804290127993022888686682925363265682851792085385568030396583627345319231631762601248395145492846815217198052233543481160268204364571823087572687696278423454459408185505311266335368611272081135758130674908373721660594839386942592980660481522852550100496866860986521621280461314762595133206615144339203467058627503641400445813837763992272236602484198020824067790159018847644771511127557189923495070241770711326453859081455992320875992581346737786176765948449613609639393436598809462573802385066659211203555663732297736338087425125752935298176165290335819891705819905449582441499483292258728181566642153797817318119459329028092295842334270432296340897285803182493741970013612752322581043927223586432761156974143499016772055008720227443895826436415748028396940467496676604218989534003913120965123963075850855696858743503231341425521678867704191084475770053207848272823270752606250283854253876241881976103050946978869392710201724907338103781818858080385316256792823581522622466412476269089124136161805258966628835693051700780634736039467755617745394076130274996842646620285511002926237189468506260439252755302906163780318609714625840289340092413476341314046524967045225796227187182299692137211440431504372663843769031363790771059478513806713601121597423336370263342363175059420329976947753442568366054342584147841813928615499592477738135752025971148108837832975718503939652895273142751573770995345935461142572492886243944645408966130750135694891314548991498466189719760400757327509613014193822125730822872677091214814039177242279411088686875430022686822476155957004369555383739778459004829124394888563850924678795136768081788786523199875765752153463872199416455457441545542332819942470989158014913508828841039381352205676515419709034602975756703098765781244852901989380668799667594573278704024486738091920383820735785664501608058673436246701052472562439615283933320395161607845525120053898312107508610674080797604415827914907136978642117066063017158568704480643464654802957822425433580570058589531164506284254928355971444866433194499976987433043306599484610494837994721800485991424016789154283654440665087665097215949585795434608647236583299863157040064580275176193003564948311813584670338130811965553923245056195589527463499523190902011094462352933631184316103669826917706431296791478752030740075399450777167692023431308069254082266701297503620642155420540210369127611127539354235729493444173129104646501518416275161099435594286750526486154792927621168501937178040119933728610757725812095944434483582807067217568168516399047883699913482864453621256321847820372151809917883379478345000091089370056991645599296369250747554294826571878553911299863828817509350699066646247713948233753040774605907278363052009551222981863144532028032055171615274670729959044804119747638734008396159860280588777063086961452991007494028558593907834202226825674191005079101347396153373141652919859994978063665784637183761698968762786401180991109743842052351920523419966767726267784437911720740150550168664653226277053253837067716928756182490591277650002077146696285840908583576009773452976738205630616278794108776709038126032339723406286358540815283519921372427800269102656240565281625910554648848969596639431398660249052549162326215826653589533752000795361050137816396476025906335361468578766415238234054571581312505102488888758615277198503225696208291598502560482075976728517545441186979115842899116168446346879170303405249573717797382776280451956687701235285575650173031220224943969380954238695916850856707221011392046995438679023167964237561192911566576512549007793798007679698269717892868988041236830816780697665966962950916880439830832539513422751738336994771539144104973324377568705373453244884596581597063683739176561507291372437496031145001083976741125868449019544547312667957954585762233078239587319799760765773250064428471538350075372273339372016891020488947961791882659520650758700984059664009294570734854802448894050891936516780393575076106046840757544513251650562615757243836490572536309010006377577617332298418441663835991288740954824227714267430070195311297516577463657787141601692613099601970823022692002130555827146203668845367172388032827566616131709992927285619382485909969235003459106322788449964205271311189556799669398260145773296274949815145981080053068698144741790755759630273361046059723611196412476484800702977830920592444866865015456077089275108283199289272622869453622185299256651031517666577494362219448925849914898519571664296517225550266525448572376880459344647518184814846829311563144328947660969355634100751900779997738835784659771217600831001637198399062973216828137106859360792817882070959934457695537205517065567173305592513195803682836531404194914096076484388992406244401732287340692660906578227877252381645040209285748867130904774504779231702418782708688016034705998065135477265304680823389482948232717901178557555176927837491146535820203352215691600433224243109931638234704516138845767010784721916778887460879781466473329963092253049020195745998147028547936891453806934115825198958429593617974914267690458599410211009620642450466102708560061479544564542430072204251245247071731301040717787409743042380370045249234805065696679034888836738231614110707934763680019113669134445462623161916589229407406202046197812925924385012939814566057340819772389961183808872158856973462870343488867532549153962268483237750840619895152568503604046719184995812851343512752634091734021415680055273161612113380476034870759494198677311049937545510794276925034678611480771846422115611956964240961823849514265634682168800016275225623037868412853707088486037673693363104875851066889019224421732718316459230281150752805452027172512594617610618948053272441104890806705311977124170399624629562717041067954599414281278416764328213489390084692779453900365887776276904001737177398481891158624684373109836223942546884242223805332265362416234122655001370579566010433607033487965455381607994797457659486778093387282729772844411450897171893218595428385016826170901545849583226910961923023358396608416663255313674557305646050395294608004996463639226217856776331314693244449277973707154575918220858160283729996255534563386755506027025048704101914083456216993717993754717096758931168928804247698793289799362423858744123921005145250101961311725217155410394678838577915539807193105335563823536846678163745753927855003379046133663230541168390884125073605041352026084432644421861010911741833910942278899891858655556608225562459918896801085956403332323993601878320017814887411227005589393099440061641595276184828093540771734160831924150630464705741849503076611214680751681878492693954095859363605384999494677595801047784162145044869927894524483413266765016499996357230122490320602759151254268012520144329854114225929747660103426553227570485683047744199089721780585537512338541856425957603318143260058886378852450339702286883227178375890352405003369267843225828299915605935514705028578760927206214266087180784722743521717100663997159704456487844868172479212039022939386667257797568353046435189226494832545971017504903946220275136987283360490412525905720837168017673567469706382844643003322309066570555699745459758400015660315902620300834984806527598022498767029566664234436355279057041194300888158074514496729962852296394051305986955561170310044988345882704605645097543466685143030812639185080022086399163254864085070040679713920460889780087754202358449476088351434667817544292602904379532041894716652612372964408721164234865713628742281720027584639259318665272111637489038567497453291150823327006593875586872792236508272808287273274355109454712889077212793230234728744463136637503458338012015414587718481137194682956714071040564853323354599205596774209855762964815727632698642731095401377242463922114579123384950642180467528233527008090766178218238111572082637277035347715254194626502394634594682599934984219451297255682161688110961370817381793290492571358288681163042135579085636843755048011845923231300994606782309207954339628751406404460286234354468506066504244442499837844146981919035540873297462593489171859098477858023318097693324566137484539737407233957246308194958550823922040274762091185127289953317956304195663273878637777514547973933110486072014000954729727003209843307993417197041445127000318868000664864428838675992090784172418733457394657773900638931232149056993314239587172910882137637804098020218140009371826831828334871117784066529454141411680044048660724726186396995504391461292545066931992530929560817594019777185016067443997136359600123759187523625941459871986332657643461898703105478452864097138616090250383945044575668990722529721551741117668457753636193149184710253942232162715858656429807327957474605568185694189220200647276146395617733132114904031134114514861472398237798491589722038157403338799445538708235679769616129584638666000513768078211852254712750278230693731809672543767883170327850343555559003518713847401546264935106295287031390593358208198272231542792434413828527506434727843027550556104767920229911581816426649216770714031004099168290400591982779850331661914272681169081475052314950136715132818317064620882593003188591473873773460989752172528846300706899427369603979229179303107144503555665024159856889183026531791780468233331940037959685419012200149791849686363690634648156434624487186002406921698006991702651778234507448469080824585767869114373538285210904762746519646696850448825673637615206849398960455615036910408741907156763283187765184921563918576309775831466035463750094113967541984070145016139420415271486046548089378826115837408450820072871535955991102850405656018901749267975540204151589441802739773772029523462862036381134649881949416668748506711425436453344779843904198169490136482397444945578193209273741182938162493461740896512241536662415838608303852207001373381863235842603156510460041957521512772032264670843796482224322958367004926831339126423380971834576843889184388014878553283900836978265338622105931266270170192267777748739392184078368585789525164656025335223089821080530390329795765318642519295532352491709660641912272330121142516741630648997560371825742701673390836935443721162281353497214902819083035601301754991314924990350572957230635735931278207979203974828380074373416370250336236415350438484329337221510393115601417006751641265708819442231513176904523221672109759007485073889549401975938729634522161020755690322273228233411813822629359228445597115776499111995999203576119173730455582065090832057184164830384036296874224294843027082423022178411936322013622437775070936295523096688869413605507871647646187454682666249722752406249294232186994124535757095191747083249948136451979806184660943031637054315221342189701644175333738779169643790829132435580168673607723899822009761940286341856563370040517307047298166181362917994158153223482675196954444520367665423307288997550584329983758090659025719839635321617482181950645208579004947496164868677655356142714187445653854066556606284719669158942854342570587998533504517879970288830314538393427875313947849284909927864655272247800585338659292532213084484597463266974502950449952885546840891846939591390958395033715362975991987712307260383253357115203323561035831985800419781582157511345722139553337127055685861269710230096520046638417705989327238440671661753170842206981322547377358800206022925455403032574639899466192814556643691695345548368267612458491147199314850672726133442648909931700220145127019118014855608929866973214731432651217579135800456412334920667958191930099136941766176042656287072581499118606355893723546086126013815397484743326962065139445562060123838328513003570592385129784480373164505093377550452300391096377144170664625079214617817686398049424302953311869525182015448375386213645865304505667369866635726912624372884023120812691607598543476077355355794657826169103477288288384380514169760303190282330284398764126170056847126816902858239122980273823468743177626342779311351485402515391492228874861081824549883492874144507423330545654536597696232008238640832197260091388091969884762302540595115939149368247797047551512503863012434374575436946224659692194020440310661606189622658494026353539389215455494305091083642048668378573685460716001117360075597942072749977950464228283871606641860847586800541976054019715009169710433215326083074920966392442614231369085809762650804582312698339184878056610501636190123373871777590681742629733868486277850253547237393845657352104978854089481759247513354170423580873357653137300836436845845350685349760260439241725150695895170217260704626047957208360178749078035440544390285814098718965625701282518878394506907600938323746595479173760656304190603836829204371289716752124996825214289572741581401170730392685293308760223071811259927625048703287953499883366735495489491141345976413584564076674097599388632440210346876016311301014797733980350371422257044356549560659935521506920351929045924963036668426201605872670354047399119638836103856797778018453985945560610857014070458144763320015577336338492775353711127668608972417686202934508991786124073484801376345182189282202320370501066586967391175978403471271924640891617931406677910728315573910131834782609987137658674174986964538237709907963127681358721353836044512579018759318205544386880457821467513054317485847724059149477387117986733547520352325664617397367893189739089631960724959123288268504279191934215755497111701529072461544441241015874058500155515632133444576204605436991842074732864298946761328268028663188863774886397430803864203809259957917772480870355234009094350545182432590909505668357900762006306648118964970446021996026861580025555709989759599817005862964133937986931214693682533893126691951188027930107224132872785451647540532545389813522369552477776749071924860547595728932935230221108607100074738963948493314717524839086261566309980444836295546363503694709604236789858462743797197051935524608167767450475284294147255035066556070599713049144256133913278238042775511757312402021443192141869608776874356638220000527427933668280498403395642217275216729403859631117740571990483134955810391831359826086539380426235809908435720719433334609143216755551502682860424297029607211481135385287661651690048021188788700195197155642074293321419426954014673519934016198772836946446907624872070026017312072064385266465927461821069627351796610304666532834279468231642914970764768972419851055872571626970699061428457118212827520196971357860377110201492117346245064023765965834986179290229126821457608956614147462627665505268090520577235783253701391277433914614489980537880945663660338757216215368691015425673102741392197132811540091298089305234590644448240185719043961194361820187441195524542397520129100610146796852701522211466436019410173824483778349563534758269503496920212762920293254564481509925519808864650235624045211982851267358874978633272150244096517373838840321804060210131275632587964219183091133651934339165880714013763698437889451344425427939022613035684288845334877379794101210696226992309436434498136262077418789536058403596985962230502043162806689140867932599017397349948543898335478181408836250705908488728885098577582554218663291880057734316567146341817593524034632789015289897450162948033475613171723375827263923709655484758061975473476518618792801864219072926872732833686090204441899081156233391290760406201541055124096653453251315631252455000822612768358996689949817133459442436325895622649873335609126969639763130619671417865638227148132485065751764098270178961436702564870332841547637124345613562085909764511208883518500743676541757019918045594806739747307700664674502599880557758552394006796999772864279513500323582328813524448653627373509603800131679902714982176855373787732663842843070267356504104461368413671371728323405068383332750639208381731547334225109354419000510881700403390287233571054663844706280605549263213448333153358643754142509604394956413010669158025722423368115988177566201012616473702829412051305686074860165667615642951075835361461761584344254407640402611905011583014959093176829694870710968799477539796672805033204158781722409365663563764950789601163630612663090545882902080028808952461193252309805702005272213611675853649695975779321503860013049057109495675092122762749123936340872719954992306688527662917465901577907407641659210940145055652225267316703115410668331358601960428348936377746774874409961677670541796244831922704789224146090913818041845108971033834875536370973014923353254798884575975155694249117098546903653264785436001949198357993793887928152830085732359322381076127672114582591676597772425013459899562561192511702126425784796747761336159976491040282875408302333987304574410367512945207394091145571741542852261496700168553693481184377019931422603095460087686451028767794978648487878901085844637936403569999637241279384332850932177041015524898888029236253376804815715543836758611364658307563922604134039109508398859584536366616208735569442522684428528657912773426904557421720040620538980815347737026942288847995196820988342742061725114810125335936624025550643664931626040927250322690357330673655420732423675169897392558519105681016725796162918509680914803757576063019503047942180737182701560708758443559491436520635858897394292714059632599163224618400271989411091771972200104406423916792101806683135843775583864851730197694393298484759937678270768652664129458299806099534489572003611550639975300843329663869592164907864603194575271551104444710292717680264075584384712484618617765268056172840168427931804901650208825944783910389700349765618389992796476820931690768346188135658304439818096008970101333914959009786458017590473400463228758482354722764391670210238380466842378012789718851484914970350370437328856693561149652503065977224842168431285787900673677485176520764950563176698073612790117471226988114960204545131103447980975913043853571224500065527049646079871351382411524737338718529058442325971640569745710039624385329863901642274514642791336804456203969147756054115520623199481354433906165562551247314382306437710564619751124709469798792483141429518309340526344463552953498950027920416073289549994634095918486034446680159998749159490993519475604132081352653155933103323696825288891960778086809535801988772089029425095320195698159184321824503881949428113539489608706892124528343171071171260146981586996894830356677812411545113659885310300563745620369412740638759056856665435578743905229976267534005598054382608034330262119799558443469503533622215240373268915129124328701819920585166560473380091956155077165089915128630068688902900479966180684583177876930933843162086695759823912762637229817572543284413566784605537694864394107381832535248492279090533499491248850246861553496227962310932528397184821636544041688819531011701187054362064075937590432822253496315761398779092549999531050256569238479448774285062632755071450478336265220253867842982087769641245158626653729546676140869393644479784984417576259184395769424399794457283216722055584931328518435498028944067975189961296879283061222953126131481334872983630204830751274151323225105213268561201885335596959267732857431305793327278156040133341318015898541654281595948808676517768799330394444143362665498151628830377781916428359461109856848573071640983922694207394603377786635622011761036812135203518618042440208995362317507461203717366249215953704837399277391796774384092266481966985515144577537720353317054904098571007898376986209764477927706604273964336597651540200208092991713247744795651630041614978993110462018994827171317773985099370811072743714450805406835899698291153529385482235165294072991155547587873027731467338103541942234612134210724560485831699341238892594029048440660316612699357753126241074076868247179085428288854237036996693058728290861158713220971836715478378593416171490261514830165533117102206548137305782948072914385749729506892359769824795586835600471001848382989279096774335849228939205497656749984477240618972354797017901647881900099288924748524835705669744927548023665591384115089214336518667277216430450099615316749059892949531419983872016048838586698315773685219099369408689913068276748417354265297142325540186011443271981556722923449453190634120017990600016944662701492945622765732718222366924793464430201538778522731351673972366431737419521623208405734901058670421988581650025752404654906136948484251245104377923471460285581291219341551060446703390416719538174148089348491195610292367236115442567163485250168060507109333134366524755750247067795657686826803649048898817974843695042360783985985979393074867683537881732155223761542189234746799987363572976159973925922989526999449611788455690547728832456950289204179750489200894498347598091526067537766777591792613150201596115474713789394095683183215851502793742414587688204656970460790395642999487130219772196177396083571595578365029156331031494747901120016954723474565348956764532094376322036150659390694026459837419928329115360348641758940372827943290365381433051408131112437126979320094311174087545085056566614598135343141154341417616011016574647920660170758483157241695898790729055634499082193011595110729889947406543620503965282624774067731611898770593279544172709473701534608986204673228731413834273779782095351477950393835004636748478942875638234637473045471630540588216461456787907075131802933074527783185436169582848906929023938530971450314843578368074059772706767661622620426599832068041439819240839591854865146597052558598081438988411005608755783373450900666732212906943223562897796884882533206959972889988319653203894000005816041267686124606070850952391724898118301403359073274389723761849826460819605891403207082423434920849225910063742199987853505122892800947609538824917845704807535984232644329248590750451698837604574015460884957769525609211168410334784937417188877373902269125398016723096658994781732598643147463644834839567880951473699851168708900731213667873738114890734499062011926599229724542647536248484535670925725718758540316710763128992072912629483947636076954891268046719352762611061130316974336029940498254467340318967428934958426680242101231731791492564461661925917519687737277870724630763855911230107608086944573798014830592889128247458603560714994114281049034347047563943368235191018648902558169276432962375728842977470596591722257727299651790809998275234162368706535066842100425653683088693925533733783708748189330394802656352051208751482519932321417621543755392493286315123973744517633238804670937631878778696071179024777338362934766860561416214830762611626644129002791909551391767116384684268579766323242443635313246582664472597483962198301775190455007919920037082628265532527109293769467266368371734515917313632783302538058399603319084893721236353282524062406687801955647638184759800129430432815310297326767815755164569158645690048697238639432844574174711452303652116333766173171976210148364553168689665368896410037988579320854043176814877421702829369260093025166258643252072049797474574040148181282290080401705716711668690296036018234151833323115094229374133514269527810221202700767385205754479468488396822237655333350741477587465612003311508086065582249255328621441155808700061113319170597716069745165134566283580429065033607170886402647738204606200638284190582075283564166203795135912131272592367092963936494766351718740921077170914274549610092589514720539406415485833455031905694813111620166921258229581886870983416843871273098305670294845316370216374687454821006717014261503810753867544124836908787059148636914867633130386322141607714880567469002745394619618956063060345493216361325498949306611097237927810376897164169591684469720971621890346954872494362052714054883382336600997096428192470507159557109232599797646409002621982106832583810925743038236048601867447422850265280319151628872016508567816148548751493286578072500956882688633947067557225206836677953892250232422044512646344096185736890151215003474033489417192551955792904781843442763952470920393599907555939910599707528074639800425184987090748322467030531567483656420829446390744529391918253353998084231178311564682379738533793932025830182604314836180375231448303332643341199236291195579881497126239896486402394934635054637634972928035381487272155097884429217260247071570417121704528265891152734334424283588219728827880141041269672258726089108110685096568758469449358094386438060576819263239837701419984818733161089445081764105305307080685755033426397718676225025463133940501301369618209061300170690655407539013503008665128514770715940797833308865070320168216124293896481842028161405192694026507013462424661775923969445355927628510453351307845494908167059332194478301178604377155886680124840830559517314651122509233370790146682188398002754816834723698614929464401909895469264566842751484501082494609526762798135704450347512833472670962249807094453429270491168321972135404867562356759934403230224699518151608028620161695298801786013827677784165888570211542742884992624882950223208246414927307531657410225735932822155576964901794654297349627768478742518138291093317565826293948558455854895807253971615097539209213944136689181285573464355024178385454513607439272751759149273875688942141090211617338499016427360949362270206289077673704049965037611483468505712504220118234373126278753599482005649277789301090166817725864161375740882051706198440639346032100902336835492108777870426165172832822329336516492463924604102741406331510511366864834156639770001345833163166908059911715301801051122203925620035190752788060819457062211932832866890160275550002512314163976589535433651462802561689838297587680458676447601284029165989366990661600634236224451066066934546089377356082603494968713262550559534179122232984202980784404959034829139071677771083240672611217809846857127255689171873816451687244573365901929163739327834517615745444412728131421437434133862515727488472632236097681212836018566710443219592042325553069774745493135160495694134128072196833128571101546878538925941836568414239278722021288310470980683122504983977502845354774313140033654284937275980682283741047986050875286604654527544684408769515175388713281041181560921627374560310160212423276098021266916161444038414214519507526683167289518024207584393945397260353632287928467762661240196028770590256555153700176826257463409864028568648636703113802065858151984115343210157688112095610322044779075130692189365442526955577801627465162852622580724272267658274399980895823813561794928073874053375271235833786333419416352517715926593215423187805444197471521413659981855957615337015074358018788980787613041649881033081685362564894539220528548804966011730665793211754508583234736279537952389128227450461560416478952755121221289308790688495923366693990514469364060122688830816851813340325330016209285026727728258664245118034894294542897004634975082113886156324982305351126236262010999241093980464769652013858812726501493862997648937774858912887845388552122394384757564406503779261321810619741379862322714181517610295855594555449009539453133716568998731871224986598492867200055675191254670861158569107085996607096355873948125386680313885939296444029267317618660674005190295491706864719977676250843418635411061486008608930164736882542843228749221911851078803054976715246519927443808775456215074769440142375134525465227486728514341083390750279561767819646024803314625062864605550356727709378879411191640936063424103452196080077985326810794795619893881270836821704009317008045933631623747631897758673711521354814319848881839138196249252890452281039758656270353600880405031216256084283037245232137412178817152355208971884262312680084184710578368950925567065862999188643060680536764437657192905621279863156574367719410723765030328314158555250631918618357868702927072494482100867066313980081061601189097162947409228936867899807886764296824488281345172537737743379663654060909557426918807788793213063037051839829464241681557897764236668095612469106735740457531471148376832417818289395262604302594502826961099283539933645818223235474422858620249844858988294020203178377453096226052434329085188651875863717408965470727298701361828696150886294431151271919657358780503645394164882620660574605991462177855699141405678249307304357022253524864732770900285172074168688902659757551241975261420260292955454326364740596842757100780867186075234930600320715309935282971781322231329164356113175941810059529137468365859121720676265666387736063230350861415012435241221919484161363915440592369529174560211969101876623637204700300845278202862504563382205215151193792755795623215309267938003569196991788881823592338986715182646533314420803298711223973293552372856043888603063075709495616504302348488607466092937195391832936914477469510730464264922155123997022034835988947716615100445249400207272285003088725836601209571220352529977306881775561428653990657050767271813491197403517655190278271338107591552443997959954861702648899829872990526001133673639666833430522385081214380539423901949656698105551250727467918344513142708300582546041960310187237593808194344525053977639831091475129543120560875746309294618173859210643476655168100342351889190057424804489043648393133464133274825612819520820758627554347548802231900062102217375637557215843886407953290204624429742840631475737433529485183044815310099475475657418269316070519050138549782984970011974384425304093405689384113139034380088666952357760757596108072368199885388049714630357507576809460798331061216347832881258667615462852758283271649254512405087758481584137295900778014240196491116078781394778257108319009596091872796558996094263037774329212498928398072904805928068252678202595343128240158232851490075058112327535695945229574643099934730901991331879380462838601727760359514225736420556431143301449708793300032686989628288997066325564441214280852967636861717846351346699857006126749808303720403906239856844546306982955427612859390533816858408322977741566058591971530041157459014739526443917083017429359766347087523716151163932080331655398795906089951042969949318085210623378800830252256987134637718663819239996565370557197303497178848071411273096697320645038067324256847602193115032457207949721617769864468003636551000763190302074531656334344627994200796466277923811416803390639268208438783269323946111995778692033278891018381233977555202360843618080089466882357719551207979429461467632511828623413215237019820504402556979970388373222642470131524268017099129933182980359549043042710660383816384950931980949880415425242557866982582900922758229049516520461655691459438484806987192966201826330627305837385459529315425197826346234009708368213700500669035639157272164382396369231621932225177919439888954236348461593354012029809986306137281638349074862697296570381828249809955903492191324719601854224891247132947971168808948565272116167970110799744126574892548660050343177969829836324317965787819813279105397298139582436274907371738964086758428941126803026190492147909225284950527417299888613256089084650044309184726356443967732683273987562959734144002594108155217625348377450275993591769263189140296019592064587187105697729150456098924294401728032395650470366655966699228089192660564166279877892699119540715531587371566085768966820505198137668194939579126798520056297045278894800617834434891561648460248671408576961801566526432836448231437270203707374651003130444173405356268108800889732345159126585426311296773625367313870149985708851922247913906664203481081128006213110094195604756731967930055754208920397210850335382775141684404028449440683129333257327266343208373548732719713503874308845002472026209284211370696121160471905131013134034249266424398932999535541444468624415235886143285198374284447550226661019883128196161818046441666474277265201217090286719460394541684579156337311735397184796397774949099697539781231098747692983649020844019347768432781203958613764760253423315753949675964126117325755414253108364165212223904504698662365771252267671330834051896926622769898861713647327287628190168864672602767145026106733585628012799710641514284253929086745394131941102342425141307104537923907058855544726332832282260695398302223391661656265829532747068815457714717249901424902774175252767032089091221449239342477665507970643178675189298734166069211782530050000626102728270446490670225244910715656281418382850831436046394100189357698138284043538535217214758110496961517307637505726891832706763522941398185822883980647938281485495939901138241219409280898014301300054954872349194747429885365961473457571623196953209258439878773438615116483882866103176620170950450680783977723209839948955667734368104433144277398587174764440095657225291458745302933159428345429867868824427453851770254688901531986847879183006681712360221455792997995645591188555965791213380735435822503213517228271076846013980838414505059910149746730447654254629145026261076490416984923128785409124708651088721326123460191427681114725755149392154782978943731580705781244972225038223409861312095557948909948611441731084282081558566194700407219955022564306509848380024692663728222261443543755149133818301142522147605644125596162887135912672939232931659077558095505615011443589840164741266455996914941572785692294759238969331138954313684704142180185318905151050127727941436933546800077032119706998294061524518682149888702170824259722270975285765924999843420407890784562019046989169509425460440013017967789826044238758638228665635919632514909034477194323187539787832290671987549827778375047995179880175041753529399474712569563358721488487143545153747828929934516091065655744639960414137423375288202673003184517638933991616602324530167074827857588065436153335960107616478246918644182501690309317278642347391200112260991002084673636616461484924299393357283390333494351631594576037688072749442750749150990213421148538215615856362259742075864312266362550397261935499971437373943437162930233620022709570198722391091286677668108046319496213596482192167911521718263000590251609006486399944619728004861232095345279410557658192147903433479986362668357530240226996262678909906942339707934546144206053230611199743127339990020667468178026849091078236164978766498493453378366684652631540438131769969638306704611824111491607521948248884075531321991839946336838377528745071187254198185689207547931449245102322958635533260312373370960511012846483873543360733720657871396809751057632694914330543302580098144661883171879540556138254017888736046456460896140383046692111559052397357651227038809676736681200828309982435997538770390950242402583876587208013047206755932950088743159153680766076860710297924838000695548003639988763508568702281369273000938866519519924033905649371125275536851942723034903124765883134202755169787364931116296530179901826487161430507915267886146384595527650019943709534706690379695465394130956930081448752662604982483373630646482812724212897763633174673336727787090979438516963432315924382209854536807714611831503023765522470976918722506078153681270246705646889490107451199860772362097651554096531247268821479292596450940159729497619568545094593009500815341456262457000253227409180418891174243175122446604058974380437098205908194839390826394296118101589835305165316486139690910601178142271962529446356903040364887134731576117786413319699698936438584949174206180834484715938039042213333693723049916559945887095852687093034373598311827921322299361514530507165870322714079028265830778164325616740719867363509850688937361587729722237130661579884901314290253742275795364294693742489592864396116937898845558963003371612628970451343356368519942035863196177512593735345940973361234739345251705472553908955353371330643263161019535243908365260253030686432419644439406461924580616153280519949564245656078337686725988086016385805002618916213854206889249648320596405705171529306225829790210236377786835085467042785077074369418321423048913349757739264812253351781402310658999015575050964314074573803246356397606961827670099406163546669017386739093483389447108732430470130706610025876302190848961864961077097165563340794880717094061373362471025095659200453989564581546809200383004159601396577167983014616195315284625906151689674433075295346542127793936700061472264040840840238993047761422714320359748490574475141251910063290735927411961355300606553695075479064773130047840698801605968900553253148676099473990157315445459049880417705473801996914575455893359770817017455014850159883287923259662561966629225999025965566937997612589507910045034831861975721342156204665986180174981364821060479607029015097562557341666731193316310775138251514449518352348346050134220082323693165828151394167681868945004227861849263069270985774729799295544691696037252668110861163721137074045496259849645818766079171571722744589634573422778121372150127210640642236113616822327895413209424814936594034310052346923721948564040334256063282822027492212080311769450173910944860512062561890756874321730980713165946116105441237304150308160931511421855403162952207506723822580966843419786593265359051939076306034990482365290267773910099124714729100108099781520008530376824006155248160385741442426953385057352951563570738059063216331087591895790306282648681036660070927936654007909138580081499193476184344469078812528093625774012781888379847965562299980849673625954591991252779359369359362675061559584949323734713154355655007063649127422551819291220427778678975285078103037826241131911609318185477040057877584680255327426982513199006037122825216614855742498834256692726429647931737393274745219069915629918640914381205354689902374694542486340039790073506774768326304476713489525567323578661889339040409894211411389233118670425406098966113271274380111269553203363741688717160175708212188804419633884034095075145140922333192538559427454970451861404051383874745372853394261871026093501489064516121408071557130069581726574217009997875405774445947550960555866179525373399309517457481885516011512758869773788503963924668653937534006552742833869453836668196570249613543839513758651564072795859409951045912861017506256993291112493676140334257143561104913260945105461033510720283675878342714771546483505646591275504555745301075475431652887560667971225207228306546511658876837950386418275311670168020351613440626802921837970466009187770607896412697772155559275894607615101508120072279950483246099546241914637591419877072270694807050254227227754496862542089692680557838666191543168102284794491586613593543598084996603741533417768694385817657934855428816268208009163950071858540634312713191186938043748090537630548604537339185603697027975750984485343258045650229974586783055826096728562277600670661177842165774005576465686642164368748571468079769962507636233710164681792406413293393522856738462296312220785446941481281345232051157138237067723677272644953241214882511136319262423877886315822737427951009879166835643625889701575099855887076156582700400187174719886941232736055754298563469976263494225942765535931337075548258360707881873726505580395046396701771852178139178088057176807331286821276476615483615065583397570516201858760290091261651962317372740769189045685688970631752146759353876207366767163494995652871024705480012370643431100199798724822464045695102855318470553658225829819859387538580259621313761696213409329952008463074313962978249579929178430978866193249472327422259277551633748390514741851673095406329391448306904329541170594288047715972423291606533237883373772630594890971749080436238937337354545177249913156647954374871947316267499034229440257644760361729018475606615577090775790745130637451137466669201572859860674245338873368097848896057356003838451704539341306169975901955961448383556608470838623116033815462054886377733158616360929008738494007770994089630539387426450081970279058589715126022640321488740794568723585772751443330268646237964495337190138831202835533181195820574296711581211067361043367729713440138382330188585551322734788365928034538633058330902702288916649030027002486849440414790959291993445592838137875774778693648709654127814855055370405869760947214695482380844895697778089982012905738767116707092771607269820024789980346041566158733434069974701271172900388479264196317385432230511018502359893004591478129333031496178610971319376845700095160109740726157157908877131463395733310086508557129368492088555195204957419015881806765562073320538915266536499169693818852455496697814730715773294516696205122861280158904416250478016131966138213615945208040601345058384393985810228207579546183021849655827776427180738602286667285891928216855899218564597588871152013089375906885823088052733356597741461351939097598908994715772622380694278990853710912461930537734136166048115948673120325618328634267518916975414571946622168298443781155353645753986873322533841761748334083945116247360550490462946960065037037748529001235787584324276113430726838750911267679859927781586295175998198122260250578675409279866530542747028619886201687834645464492316649854736041166241248458544645216326623629673176351976877802068123617473649491517315606417503044870609893879589092628434991763947444692419222592807024944634472003195217168505648724965257302943383441575582012150002692164301344663083288971282975586135068016220960594964794775834285685258051419066852839871786350449742352683069489723263179784755007464528913327273046307559705747780169468467745733775950447456481503482492366476110638202197462169847274515993578113863402171515411841569033214429765771349823885833813183322482863801212153240107577961601714519486005447897779226846510082096259118474628953960222557762235221371324830562223815316576451458165529615233543338474497968185063926091368839525227508264873069702242050436150081582006091622897382752702388419450822257792384975996908854189724371740548621064406250614323821210630197302069351542317411273247009792773474447214530738827103289700585060069195390855219196992129357008933682594506325190997114659675897056829098721277475280845030452051818597173644165513456203002818157594329173994697106812562874007596375449561503271186332117782493374459406172949122794633113949589012134420337017426262581035658169724417072346437485121173450311634759169074173817982401622703498306892132706804524546752585201100764624153169774972101168910667437910410099649993851741199262374997140497195501939257267703568833667946649007133040073856401770263475921732421372598652481724233387066587392869325600087516132861165907922545604271372575026229212332789627710431719316556862915066437619324579892255550943725386604897204173737099161407094062860926633084117151550897472661218287443926952692990740117403357077907844241638868134409831655439786186200016528266070651009077674365023798732017963471249833324151261481933820002657854509110426822057909204999740060284407604602097480888099807735660727021944527950478536927213413249413116383309915398186816504900806123326509143490146844622190010848884134421988211623701396858156123428203501327534203854232902217908266765259411770682958579194911986582216658492434275273808480213224813339002295760519673582542590946322800545443403822860147731737326742599769197637614100797487276740500486249444410090317887237282712933066364170902819104374290128432576505639374750163946591306508409771565700947776466736794850452588250785431108476427398719962890322398877455744631628875526256979896061724712741895842293674906064327532983432596377045022488625367417189599119064448225095773822247467178477907679017046964457229345916146659007610335929650525883036305650044772325000686650181004326188307374091030165837113397018927499005937407774262992857889638768364559958479297651768168799484761837258152286340885238543666593847694263120822939814087473110026525822786029003873689951476975321707540806830359883347870646134094373465924982215043344468944673520569548550320873638819784431483115171000949890866995704291381516978089355515693085513165748025429174197686875015987559951623283737197608506378346903529935660560985898107128324082757927727753022848099541954753654794243271449880000839274763018284644327918747362418704121631907233812967482051531910255144775092256690564392121054638179492549466331445767116102630203403090605574108506214109162206674323322780918855871752444673163726449893038107085014840195863523945674443259798802714213055861124742185881884163632027385098323560598763842910789352811898970467749757308355845509869453065943926809602010463367902949137341443378861188495055667621238678357663224278245808255567138573207725603035385862604387358334876679314636820226805127920060669731873694578228556325511454630719536397302013479472712377920353788810656398759806411177302120024970243543299725159521207591348722304999226150479171590404161258729727799349846541866822545641262263582397993048891809017533609785060761117772734363309635903438203342222278919505529512637170805824137719538914706653910715062213723408073168273295363691173753352245965618939120933203065333820852039182206043021663575307734309003097303059548203743355140630811142669875923623434835793524059659367467503035196463361155877516596303365100620240897906626523505731363909846748235737776652312510818027381956294793831225247427491102102665082152499923778606761151991155139193664649288033292900345097233493782676791599690366691661741616670928246096345925029827530552391312114715883102289349327676683031683540056687723669529583979213673948115593724865105082566466693697569038235502623709981872059260631490877188771881192396753740632198119711289402054568595792901123842967192540283958764773872765633583402335341657120775788452264806357030350104168829426737385672980474040248530188583940202714835366071662248926911126588899880482878388513322977830635262839024996056913492188241627853107708699861250863559208535682242827100969181875370164461957791576152111883566532585505406644254210508551650026453186350611384466153394141028283457401528086451898473820424657991771779031771788758340462345923653289553770309293680544641431202877835458054243495308086152012396417183048512186868277224546766925316025301287799753267691947040301988783313216288158588680806275609813797653325078020769784320808071020977088084101152134051710441788611153585114680910547187020551335967058716166082570565830737340782791604792878375111742344180950665683517170591312538739712710186227170807504003210166711012286492977107512275053673175379910673513240282982483521036015458257109572267026426746947772531617831207323441031571343792088560007727686300563655043758224736022679096052839485807026827625127507956111222603683403172526077792545493801831810214977324425962983571815872110755007264462363738802451917395010533623045485351156395115126722547964159995752606259274822644831757223560322998392342024380691928220429041880490329363783936589375984852827321120183593035036004272770303595907458617312956996558790114176051930486694354130149373010048797408216135381137011670243900251909902710419873287711845941873451300922401952399576196607678948468612845021311185626397290437535269834799058609388043886180285189318652631507411189343888703784237809793322906983742374570229312593747732663555180326444475838937901459323654322281231367960694133235813101253175395965162241134310454511412007350007366322863749702483362366768934629874159498145509394744270578781677945277184683789511568197436707276834088207603589650034802244866761327851796329409654721808207924163142483727777854535881769638014295195482409874857159885182927677887453673075249667822943146293659522043583290901207261968069384810966250480355681966602056774987052177137409081220678463376709404428020111821973536110441081072372158643711731503424026964776381619157407611371040831974708594601858390789395730229376479850413116648565499198011894491674025093043765382061747775106030426610104018529272142437673939082908109748424024439040058005107321961821969097433757325764623968572349298160499813149765752181218935586663722716771862550152060909852043559181487819115529691223294541455335604103815299647411711770721678163141747112716243374220613989536062994746173809404237744044024731348474786192207463673424442425779934566898080181260537438118597435725581676725557741677427686719603932456334933414057636753786140056022476159841444791204147367954818358361308807968792802271739793376668183000134163497674101685673037230259267000625111630347256876450202439467869066687754287778223451528891808847931900149447033203412812412842713796451861362202266663452304060573063663184719083941579114956233868807651533798960632237743291540704434620007737549002855761686968393154130817915671929487706369366307725346663195959774794575299360158545688318275486287159592909497774302049074524785368898791978384462803859375570062118902197826754646221382707359442591448741906272407992837628581183035941855335170891667664641423634561635002519759312259529346340393481001331900811389997083282159550379074939454148446627256297874550634888803141636436267405561213549247847353174132285706913609101170278955721957525194333412022151014019852214223835985564477864206869672682704652715524469513043341444160003752030187547192708789926760704081746777668313508732249130544820321405239504215361812344301453537829088407028377594039196099187193335336199121841613241023422006451796962621582847462598616623009423900909883369510691347191323355251696727840351471083825316553456876960383386996669866454471310111255375651501207066918847960066014734358720011465049724754891799263344071983608413306973429572799218779788711192806178699273850704645098089270352609538643227785271515134852394928054580461886281681104940200995161405384459248094832665064061132920521434271873081953387568876585057955612702827065899826345028846935502003026790659695432149170813024956429574791060674441854613387929682780195324212069122831840506994332578825872260403626147840200280463263896874580264367740286136871008040496268421183435500333933908738965067419896036091027871604573901935580724543896352270335438981003003506374162638087259214049769784998712304652252012673676678018543958827373650103178657963972219310100787756375736730704868600720599237755314510013526988072524042768637245757813189380506012796562342999428288610362127695990119976586896728843073603532265733277696696403338169585091355719266113443465120660255378478283045957687874615595566045639119039772997413044537268953653919976735923258178726762802108228443714388353105201850131495055380346619118579517846876591259268783387622065779170036202610990698873444601181800771549005983610080026685257309745685505044843256935522841651882468289373084282285436836103592113844667068034582033318318034487220521439164266617910830288204318750959900377415550477521580477757780213720220817287329422602462114043668757054509111396763147196990620463379917499147263300867399053646959307219679734750031872110064631858170604850800511882664562738005295908464917301302622552823207359314502556265169742262745677882802361351384858328763559935201092519246414933452320642769768491036093890869339055846680523669277244125701436694312265677925833557856259527024401864737469953116637705317010479054621311123224291683000581312035704508673211441747140330708916406834813670433741978909471594224113832849710479693284244453289239718067518502356247991442312417258104084328637365201529858019735229724471966655369533273699969842321532309770726722810515343848786912909697378199645751463998935544605277891582289926175284052261763258581221864665590773498901442456455607185093060261118866178611550560309217937305617917016811384665342238140205367186751358985040467934338683394058779137567322527493980385059127295704540741050402851980070308238909174403749221414309581652207174638608731370866244296466667777922560034869452432669714082284696686986596358480852599544686637965662282007372853199117326716819158149399963406463151468640700584768723394564442217103629145626693273016530711708054551957793803314195280226800376137761064914601643477017323361752740922991208428475025774239989202621818681131391366257123621745909633197938875185048163645184258987712555516634818728102126545869449103056573620213886863617994392388218700095615247145559929075998239118046523814363717796491574659102582616833723108337308202962123888389877507151000139882436230022132273658257680069398163321121194001062438702924054888989436562986662810450449199780084356423374662779596972168761732113890706448290500129089500890887802162495627029753258737471331074261682138100470995574647021727013546260528977972351412786648270725159967096045092499200170827502966085924057809089538590816670290468530255000519847538064418086927881885637354247536822553957252566483089478991741529114235046965835045282279558785390770994323056467453034211538767684670061157477559523372573835586270061123775081313890945006875148810570235489382440034675828034518037623810973762302060002735002683614699732131349325192640626896873684968222751609600741037037124796462699652187931485176193740228573943438770696251334535900057227414320138342597347433745421340369259460822250051193683566051561387771951180621339297193769648943212080614035554411314405140079289715217708942332466591256371611215254868722622098917486793128781205396422174257567019502362256956994613699774195433416039663447563579379716541542106477945523686777593463013733741367525062232742133367728765180366208715393988815057717559482745060671522271796295517064815979748947696758869909216191373958034858540539322140042495455764672901368232887989007876641132576808664741240980102588195579228240407050840331142693122135835178508142005325965240733498403306391594244994341996654379542419389678128973159215666810365382424137991690066174969117152699700660385351972359687036713026673737347490160778642768482675822095309793710595029134585058848973285395774794066453983385555654049422470482622844163022581857706374914262997253737354571727880978102109137658531474997569657541721637118601005443644424382473065211650189379061700769128808730761827353582213057803609618019399318233669030004081467858602478917551634925428720126723111268688989475474826541392529255774730072327509047302328577262872252579018577811381347856520331264991500889306210019692555288213588438186677663838930921969599483200180835863412134870147903574302961208659323048996205593955044382802275017161923145840815488140264309515003536541002014951846430645044934527514095098761446787070619519027271556584008149515570642258068435809570074846176199437666195742996416411785190418938317092759131082610568685428881656863077554528603939974880645226003307601550807568730457622841640250347296206490023707470048423667126024509945261737159405648735650978747641162786623018946030771566531779357358058693037513029709709819333196371053210527586607016485088135480392503383178321242198839291045172476664352078338158264635061883754214884036394607627017116637246480667992485449051207984211946033875643753813945790967651570685441627079749541364791941790502278898622588798068232202867283982130039064018612113303003871939518624048583204094399055985132677344778242779090693936632713904558122119352222447779438005829697288832301665877522091078851394878570956074823489467999119471031725186458504720094987838936272347887797513034883486151066254018361389788661821629195422631894085875817586064408924782243653819108284542884964452824258677863464492563330249332657721437237717520017902929272782462740723182608260301705598564664914470026442231316779002694960268933847138491033442531024296888191827854101731859750538796011347371678579131744175539903856945703925300951514729088043189494329323731582772137810897806652755398051454546739084846872981351105456223916550055161516046650655302884636675571298350846476708736875119879749928316324812325466675343556058170486334488579804339966007680134576358504271857865064719315228029451915080015699798474070427381085308641265942522558808379255856923647230841300891159592604165674922116079941709727185926280275351011923328101072780322399578803980343204776816541393234406385468697657086850022147063365332515383348977529307928898991944875479986074325424608252774587456876109934750804034567097203579651269385354901744256946845522866520139013303686582955282072771611898775130405395592333490464855073013760392286382597148004646742753146035645740473742957863452084536533638862826541962245379438427690735642300002455467923194499046252932618787353522258870741415179313352302065709618000648138889350984094862410435984858611204135678924737155504183650511506865351962550535742477860357341043583188738662461380508008386663505736516863776364969149701867573651948906754487744453228315079206794492013697006537378093488493215520526400040394054353992991750941840878617389204660889672735654846352463248932254991899258239127138808229928543275651713918805616860512560716111124107282798018615238266722666418328952236389470831117457359787957301555451836784909512242637247324323173951465417878511409364706256510188002410251353756218121695310841187605989131319792870261814101570158654263548704675209958025393897392297675954233043965733427873768471368615017023252813628119889588122544328891511608962880269231425108575821458438910038720978992959336597891306801844868691231659709211134370912581765844150100078290090430503962406734856188357689120274457503196545666187779246735971867030379065297204331040852848197306504978236062143953864000403983325654448303059155108414652110637479243825290444872402587234419164152906646173023511108807011946003937656882183533364479752445771801778764406862855812726522991636729943074885332852688378132421055625345439238773200344534392379186448261630695811911226605632080751288580440815204240431330086921179127678355715030274810004204833354229518498478037861217089454496165307320961516354776842631202736983438542835996281288682511916476994375387115046125333517466815295369497535099767405692413394120519903061453323794642148392301401755125449903605021912367887084558516762718507761400967849585875506354929208249632456594447790744082633384235448616445897827668631271823493829491627979711833353908611384523325681647093933174986868755203789588710920680050857797623973730550727802543220587412436662697804964615329733419229440711496890025856422870072522729595400802371741958857567711218030300472722283744299836010595471913968882500169979995915737525109885085137398853202402587691047734797261674322167493354756397417975307743673050299525169495090638790654574503017243887092629976494203430708436896617440576245970079299997062927897231230074920964202495816846456434029782983404569675716603015740591101161406470595316983438846676009286985534578296927627638068779489427505574203666595305459312780241929508149844251923001128225881366846217067765209144265465055037029791565220162424151240615851875887737901415157656117776073005678191619439179465776195095645466993785620474952471067004866361697171153632745525533042743523869919325907612690236255714758881758221527241934533176792729472420664164861549375997880745568094429973407576228037961080802709232530509768964735256466836196073373180111362016873957796061567390305914868957709543378826841309079565565886504462260774069092544709287382504544491879093894603271039810088720861899506111653577421635726190312619234761843993252127387160509482556125365386383370504197119206499091010222544020049249296173635253387782504498281297998252990475181799515394674988198774071769011085212596388629034224078765224120713124906193360082711616225032527294268864501151661291801877800920290189693470783801229904790709108669392048498308641163232234530479166100502382997096275809123336631351105068398794301234855263849225983992861918477159479503300943748722145761271515988330042394781088499128294686178554062606191653448029406225116269344190184077134298215816559519181127315114373039827856952907615721785660752838665517976675714552758569052477500234789755029863389394234989467772505293039177771031992787210247065581756325768663819931956929513436342652146816388165691850887009985381375734442280218661085013453565053915953219945451820889195058646477290802256379221727189260003318528824134051792548514213756227764000827067413303087934157212252665197074099805288457108578933216201696116467173700172078452682483766210542957277037142152405158115078404060024656129228357901066209478306131686837774534514032557355869688438827414412132021052206571163938424179017250532135506596328380142407884736782978065986185083547691045056790890081910988320604349771803106296660552162300917735498033090886279695527512533117130575419454609801883943783979785951895554677814152557669106663906801203762862816337974925145876232411521949838297171578233908694530740656098140039192962164827024985597333405644984074693036963854993922624922313297177732291238954890378980844458678632765794447936469830943525045411985513308330891924619043812074853074410958480126312832932077362606122936145330785956851486344263502726052331432912560027901139635746340054303893706149956110869754667686209036156282194811151615428530077347259668704932922303465044552652634677560232330581258083997492042606563394966751024612453672963506486904296841649241199077585579940363011606793567607088850880393324483491274998229544947736972366151666607907001525048553628210058139317737223421414498071074923280936232574853847146442808995189885703072259447090271506760564692339443929938739023211739331421439518269768293090285344862178217344656245160781310227857205098217561726174332696711332224962182925736135757056209257967729345088457429253097747749368368085434638651867521134960788504795966554515507137734596772144702314276599201795400604667264199761971414267559747281851526230813210257354279323062027662062691203379872816962361707039649268012464717691916152858970132351483924116046338082430438222968581703174669662496224790554683669141965887529820196555527492259758264175280711666018684162507837356203192010024850585467580211301084152055528814654060203099542768828054626258320765551608243407655996662022172458842745603996628173956141745063689710317015804134281755463039302871546369136305738607208997350606005923474872376616559132876069039240115264195469566134833009770395411931548216229723545737292451571134766672098326844823225282218621337432822402467729370907471271964268497080607948952649666971415146665452413205697529470965769390945556802688708819061873730728433879344292279123824625559466796385031119125781804931930763724789603772749858448234520571952287776374101418886591981989357475523074001427776021753199481697654720699439943897399793743080500930234405294837100903952572949934112596353953999191017574514057170048422946431131994621869883519439132139644369489679971873484237605278732069087068215155172151535647088563890572211590587981507743129916543638148588929466309237449328681669690478235696642073048731746411727548966814400812564183825184083496340612088043691419080359631141531114163135226650688787629095240276963994610132553069242046943115201604670369462067460615808912491366307254337047628111008051859439065576747910102340687721123787237593850237049171042969986445970195231166714014203712249558502801330336557118860794660137685427779801747551833250524915344148358354106119918995532446952374542701559691426645557176080160352126365437585786902251105535204353181756892431960715819531043165052901046773167050703418374194015438214493781810974206965191097430170173166660203895253017445177461843160224264879261059972004257900111447990586882928438260283245491298475543346435046460927402131964950211916309432260603390235292400630624938262196268569455133654260180820954981114469999225934188227772180207472070859943711403153177434082092751751375007880368977463035062221359167217281496622711372883641915039917659223214955112869362486763284165234143856827122443786282052822018381813541607932919384735707696481955812388922927282006495321563961423986659203390976388773742799556038207663600438655007447881277156188019325597354440939112682403011139461014834165843054532591944268567798561264238142381128406887854602424798111181339146805108146660282712049496784148329142148776425788564845865481408218670688675028625972052368812150308896084154044493761303441926127389070687329919473992081480278957323393823721912773478639180003228611184137095875134888973901360256433392583146009137532077512750461442804755625383492948630984571601127255730817852121575010404679751767492300542381749033729315346799154819517658413106972676986381921802155389261086761418770467467728112709915269242455180787925253589611932457557661164030563069240177144168500522018876630643589508030938342652887145467605738151650203114341205342583482184614976283959447498830069768843751794679280320343299888062860500168131060153262749572748228055285967225555404139653593109033873197931964967515844375700077589019265394641532666742034887999617877729237451759695367710614723093136257795279394537185338053851241541045665068180804308478442619179260277584877180102209862498697446597762269453354487130304647812266311045055219793126268323224775202386674854854899084770276323423213959989568399758537264159782174289906133554811537736032103820445167540437449525179167614788004156542771352961017119450812294775463029624510488827393287377728073365764074792188745281962253267774412561010588270378336073241458462873952523211287074214849901939589496094424827221689744518109267976220415554341311948680285172415826396445296473298057374346917947284123942157189467183891714052747587543375980136785286722348711137633845170936832162720531985611617745257722058676812629155243700014393002475074455764043855602319300816040044362568880102912330436039425202847595984530043402330659788240648273973611111359382795275179723480225788246627059232890443186005790657755861387596856135265844907650160233916487329856509024197719853322581385675960589116088983613912846142253157993330925214913369205536526684236108100737758499498829443238073197803132450883538320095445348749395502108069524569097115200800151813481080595274456670529572946133233785084525931344613911043899386885106300383685540911137449477751560369927719778272269173402976984339012218607746094592723686527945548931474368495277960712238525916045872875772301005801471164980806449137691258854636793957793956559489986092172426534316124989005929775175723269239856751313446859006986221501998414617612519102549704496199822600086069231391036483586391402966412080973838217550371819520697481093016821364450032819218561197496996873532737266158040989041199457533508229092893272237125046483647639014632728923965877559707035098235848823308166460959590577949634001491069044489430316674163609795923215493562209103804878970282865308397954546023663983596192011502385371817264477981778354760919392038263910805582468725643090842230577186215040844414866229933071812563375842576912978991585937487341007220262478485115232144861555397314877074216220593258340907610166868399655292293714226382804632533500849327234551696840411815662721766264517387240670435233264507333818002344875534806865054413906314581673971593381470566184545544758313026151050488959966997708852878431286868721999408416120301010974122243300355127140513805295782546891852200517827876262879651759025517058597703020566628204612703067005698339905819178397620007492584263977458103400866493719697466661247186366191982899198756893330827106452411112495062208390441611054712772868481605778369132566117486187408875815405433115545886523039817508950947580531163086651653885457353369495638266053224350170990120348894898861412267038290008848432833010456580543270152968676992620518101748254903512835503855179117278859612599672463891755067603378163919981664402214603452470556000346831605828629495058623328748458487703624057316671583505877593998940203686620035006135564153355209211886204628312620026040318094808330178053986807365981035849447809473114627787930024364485389519960457968829102857273525070496872537604271359166932930609485844362086364620601562124329893844416808186236303606575980288066956053167555270572565619675134279200381743395548142070314592374690417651312866952543458491030855804752023405483712489149531856665091760903334210862085513704119395045563951758625962178599979357365825272588821320063404426264179209485749033335162147962017684022236046406816389055611467849410315703564410188501786150324880967547421067058488901106331341117271444053705660932463199492284753981860999643852708692051136239679964610001829764311048850461634580688734926177954118989657669628419638002430465215084160175736875284916667847227638695219482915739990541480368561664774177130650234958545645011138320384801190585180258853994261731150236669027528434484447584852432507186860454164904125721282792844829880071015792403434183977409923984552387065728707493038300314998267185748082753666498375036315142724605150823588781258537101455095973999669345137913958606277942768511630307852502655525992612868624339259218849317206650695293118660167944334990725167494426443075196672821333766499852221254216301953751234283938618737428404041734514915618832201470896476176793105644521818733498820945182676885006072692525149842825188308327063599914122544438891744367533259741722523391602785481516856616017157851720752405309707016364560798261226691892951501583355707919357887091672710381908853000322125571457537898669004217687715483723546749124474815524426629633071196302449695524251287827959138498190862321011406192566460284355340743956622631559739202682674916284821558848938207637038910768345515403577363674236636655141613971714965537461049141607801658271770504143161542605441628525635619677305061898582185087301334165352302511046491425771968703989781440304487964547312684125289829562644956566243950271295175688305730637391931646237778904904123136848855389058391477297197555148698472584119093003199229725661126083019031804633577100740626571773289854287484158839822839259015041509553079563956534449928401558843114334491665101600658308381856528758272029958284053089338900882553807287969249036478640476148125537600802340902797943248856391581244233078180731175333075331154394576685822431916345553001724762228859808080780018063368116039544466395028473999416048919333846801318311552325878320554090898736070754850518096929925195220114593176926815767191365139949112257022782343199404637430714096353991061871338182172682841475201632249195025984583996739990921859152469838566961999757699264523490874604660546310950841537877297491683483153664523130226579371207508939880265725291130929115154812173473108025169712523931052299558782649272347486816412816521471008263747486888565192870878467958332366081792979714554933729875957533475744351507047953292055015141648341025187854348571771356747339362546129752445344581881628138547588434499740527453228368655999693911440363608660234130991311821074118514906259277089397951249595928851323101316354621728808749676988637963666673113310715106541910141217220258240279425722444059289162555514976459335724622702767087540592073587454241127492499463619292001848003805191156589540142240860396715416758143033201502873590617448117415111230543891120009946738556782879611824433106686224311043155188745827403827358110827739972428472883860311322502717135379430542691086731261778575560381505302175583918839602279017014696111302799266618373904157136029324623941269884611270789235968245373567921112426175513770314024109096260477045054029172832667040519638133346591604414240378957159113864338084920255191430076076551193114701440456401016904925476093170306655869848928454490779492615854053491660378610445559528237640805501253588989207247551260723049910219624177111421669830341623151740224091414992545264158144400220417219456430933117373288487228862240214135722175796016722453487246927526397938156272690369142092888063420685231955624334724035903601253904381538012207311358510905408322945732293494237635620669668843315644116344076116889592442437699971763033075146643568061392094022371139111617943608691061531851049383144455562894457098159319803788966981618726124300151699326333717277769379737771143564541235750052930626836733997576923166507487105367936095286240118412422945473414068885429077012829096488578423309878510515963342426680359501221165941531484586895065267214780357077201808855707131916404212615327911690920261611077399977476558166578237093575758916558148228330652762217983408771569622448275728961280515660422162634298170593826390588617054714627573522175475525608729280261489767584488426849332740133086726365834688974794066035946389340375267656430987497496132999109328178188310035761692185713658689627030723980074376459834224297662531667472711323561209331505120658262325572846827838877206045907412879929391117014649534917652543415056046771000470798569926443810468406736994781799034379585547539298652709093158302567695467812999514287682821035082449547792246803721893582011596308627227441835557085678172536921386751197422365193940164059633479901502892036721518865492879514523502479683501579395581224434046708916549689879898044538594599773458194124295391280521596532505982433800954540240661125623187916761835928568746826489768615667911470170662922933679220061713763853620261948876697420105719547952339633629962214027446999476248210545053149954404750784053651536549260798828581977579538335378461804503005450059008386406160336619522113840933211038244541042385075972905736135706236279463608239746689092975409269562134160439071469135447900432661382958070470818786317745521526304529439255743140014831721550696831702548827904624282149705032651276062824030079844153581509043035431652418171578618521321861644084671403316136131367895417583644613697372084301234077882757572174984718477732222824386213193387465633672795564471468160390077842985618272675447302155671604695622105354537732495665476316824347020429441671067903815321464779292577818821138886795852276146213539658578127122020006860757696390852664226476079572128453460404882420873160276459514718067251262121331346941792731686390989894079437558506747667115874997352547438878585702553868831416136617962088753634311938556101751432164623373395734539961999440394430740278699019739909622604176545629874109516681519749778159710037768949782084542887283608226177193896703124572827665936060792478637037709877381473752879631692635180178209614974238031018293498276132909840098029910871484691694178684902364637735413542173981494516443140511314490732192724845132889497962195509733460818901124827778119762072338612551588938767735105941391405202015802810072923437280063163528066922708744241139037739136354472154343322356408152966137359915800337208377851222994362631420096991541566281605969470516865295336993861154934052176986451322735120130005948207268056957505188793166402635913836337271727503820283896362088385354939045362201170858692391872724626072623674144443812052841285034411418015783342257792817591342489101323442813311290381679798094067229374184766878692621367129747886068943454417108747397289944845248847477958987945156607852509044489860879487436879481313705185565994133694537577653212527538541386250106600822820568404103568905948389640836268800082979305122202056172437367428942304304709741697958382205288617346528309531264157826577061091442962437674938144303596541663508955641954412644911679035493798450996421884134993700836248886563535365597022080661507566166769599380240774953023734565009458855662153823770454889478197123931979301041938463242158068405189370790210351784166316307290587348286132830467837248995213647269997728655072574867318278998261750787674194893972381673461550957199090855778515793943066413927381371082056088552657261104134767145378671746565959344409063799466317235385403493245032067441241827199231720130467887209976993429882595319252945277351941330122070595050770197756556421283397494784682747450423862892207686979754292467361729837912219919682840016241632303250805432901223721092654781547303009194798963606306243642472434533785285020775324706693101265523437490224377826420271723731038088130636351366745251740461675041748273317668041820976377291229088014696021309962636069391882221468604773229653676789172459554309361284871105664810816971243309415778443202492247434020956545855087409502346352620039930103667138408848448829329247624329231507866291799382515914541713120564125600877062419336097394425438261860565389387654249543810141417247997380609258558883697322101853436053116023180558577851152259351421475627134625218286779076202066399963869963177439612846242163709225769438329663254986362173756648095536241658017794473652194792096409810654471344016907951780823725294369301144546401000761689986378531631043297905663888459874987213775372374034861815734610051149162453690899833504468103558989255983182365005309565686595622620315895397441347405712173689726696390464560949427591096637394847917607786793591783027921833188591491513638024960147802740604064274876846860669083939528183185376229251702893410569400956252106709392888112562192894146468828446574740475637263236970261304191450482433599911562957269821840892601934437528980535122712472232646900694402187295271391609608282748181185494024694942646817621068116477764646796215539624767957529976758809181481096316051907745442055085695190442076832600376414739872251920181938866382102526636615915500442984091437270214788804533717860986787717034480683561788845714579577231037657346421721896455993565857401756074513679394983932032072069401919780188376803049723732213503455517557769823705331489853176217291200952521098872628611308962057841132428453247624073786488626343277029023457868688708468914624094288586088418111971549931904879188974488799507894105295777458063586207267510938190691196817943036384393670235786210306975875925439076945038393659556623396911044920792825935335613608656774376357007015993953721860919118215924129790047401701493423200284157354227044122364847236999793454936624526946834698315121454437030944896916239775588760373839632002185484283059305583741103801175294524695869260407893855133788436787024138234294039298916482168970613911100052004102536936678638789839982693938310756547333778386033367892359938382773263825376381899152483693849949399046238910152816833469979507117789014816109810647099384245494328141384374059650860974103528577298110702739217046568613087528619132939327610205074702595936880752226658591452853266439044832628613349266466683841524050461200720246714018413605837811024833195691492617021205019683977259773982254751283699316953900673184793275278307171404410934563668769844059402867388845001412985294796378755718160784689317338628651867198165704003481430010538844278547613698171481411847600041307789561535263957613842814511351767141090194823988864630686311365571134811047822959284740597330648343251771575683019032353897842981689128534059519209990352633389611886206885413611017293817037882168398042973193983245111971827847691946106581868609152213032794640971681838689119930515262321048181524526216984438617924906831383588501235651520034704420041452287384716308999613412208545891487664311172174646487965424192908246030604505554035300554828559921745448573422901514299796675890330510266125885201120742851756515441168569380854715737353655865121806890379281079864399016814916843230390465591931451841365086082060595913418724310687950327996236853314650739999290111426250096735994533583075815678017281194307436737977458051786553380907356672777664473567269054052307976262027389508373695683820206557756285134238976124839879378229905445991628123026104651559171957176501036680432250584261167900085615542365117397492818295252295811703626322127758318076584796364588661374163909072378114944470081923190829334073987280011810193235209677363225779157410324937917801431821184048501724724354410621372511799158362403173194461930593412308623345117136468228544455187302094523801190084868704554487170174724231475789492654407343337223723565754667478353348243946892078010013768508877310229450919824115566316094361415054064811084926317553787688980521964843923468761621256641453402024269851426418853649644980227182386335776713032708689742868519967152321017062830761224811694553430076525023480546509161124892832300236449729105792985718921421763817992715862464941997375342220589560448379451818568719221889158167031341270050944110711051992289093210690858549693685938942982342199522705755111942833590155887265869255327817694787428508292238462617823559299236020329528602756831390718423380403313506107702108022257901476231716537974099425576656319982925607794583603988081837023187752084156634345790596988723980719974541086533208239843844885529296965544266740472938791662571694566169538742795393140792938611553759696646330730519619928147895958007096920063322776369094735630669999513249877863375758197965382576939385877149663894953878451724333770160566221759577939858793596606503237934834506338520280622660592439537871738172005359246360645881690765070081358013937067077710816094504079163345874007795649632127510117630041871146242682525817222750280862994403975718803181951861803017911178392400212467287519018069082165966382908280218215696297511128329569590398143066187777702306608030197702131225668328218687060389784060343983967895899035510002815324238247831601269182439977324476596464272043704449557170224939648126445009603297096980422236533545613409847452983221440012172845679131947127606931172525236277897984241920600574123431694700674330990038214294704929437045886465290328605340371551086369136534552197221358511730879717392674311895069893830529652415928162608387564903936185919015454306670497486518885918164066027351873693312616980971622797631147346078894694031281571411323351755021208531885672353589540009725843463963573552003596877219672734792316820385138200633154168203408580543528716822694525062284308578372572069048288047896313641002031264008585281879294906770414392826561387438421391440050305625030894446933981451889462214749240308603213089881974649250106815479120726009411934293010882164280308281350618089097178595524426397801339163861885781551247984019639423464496350221087826051085330329484696653317853120295786130561117105157940423681691065892126055672623945991796580814599971555498476676595775554518631510614405106545219093017696104904020864296422651040104874167674682981703871238759115745073681812358397803471640606503403262886967833508813516751736945828743286893042329296805473666972425378943295743849865051830413122406175654213464248388474612305706883506573105044112339387993365612324068862748958407009947446417453738509997144057191179340664102604253372119575760411771006694341627562068559665901965773190253749094065985443023760852731539552811544274369859649418598636054203257114260329655519326996686216692712126825811112954174399472592869382106012771581660501250618583108160308762055551614707007063626565521076133085199817029659512638564152847270234383468816329301783730743553549751357094965720054267326111626592241309585330518023637272996567159574231443601606101609599707574588548518713455641605742895692414242960390634895022274648939026200232565110872903709558930911801736369587856527787858071041765212533929697089628281995539546389662273794888380145940014962039679489599075321738524566450203471925418686334143968362029440017107930040566364154533026758678142070501027267272070346729297602331694702007308019711737747146301529555953450259757337081606703119418970637056517705207729069965617319239601417357335671514655545844762591710708085975296817815428858969781779257768666049145547265350454863382227046436633390531988114963961711150813168369422435272809522597260395831216162326855447573450121266888034194641422018013642268865888312932708107186961536760409031070624053282576855767073603453047853444450814193132644943877341083555003255354027621089002941465036036601491433404727942183835193350118577992654867955829746393089529355254551718991700095542906638576509449034116554336626616215107436766591939624131597190649350978531958744577100233757634103640094052833338560207433054727331639549731185741955748166272841824319383092154869285209331903373596033207588514678656125875079150446529330673229388425830605861604000396289255170456891654594093185459867094340851297007040637239875460705496107306990456606014746084212949289500702201759119940481000777322227137412924022125708526945102151786447350620468888898978688927796557795746390684123801562022919827556891613652174241114276181806254911150424552451304879093298516158853594584286185143104061014419732902460395504424028996223355526633210158145177840898619760122138697805287241584304074787883376066721849368577517089013124493164891655598558537185709085989170229975267615051473558762010411721713218178615506322629357857830910601203070330851280822180709431065329762985205212971574303749574009654535790709241733560766969848204648685452330854705614472377815347920470273086293970691038914257665199931092630092530448102335404659250551476398914744483565905868754436624279911496496215134786152518923674746709398468701488840614122836792879619805482845245760909377932436601344097016651925578768247434444494001967549335426024352808739779468839581759930473479838664347276995108593569474359635706858854074704823720233668907903417491952831004685868482306231249198607560394473937869605288724801328117844263137246106745016149358964923060424465613825401028002207321661873414732214803105294187064667360642679889562104847164214904162077101602013386444120781998575406177956385230523983027758498793094444993425063857356475569413664706053547328612751713389698744647570027436419661820232249345497305130988000371701297760031229695663580541803336043575167180153457267327318032319645441079668914739569617693390143093080999976385464623178224896111672714762748306575897129106793892231060458666058840907870990985339445385702596841945952342793104808725589441009595003150111762966992385311827406990947501939040283202500792002953780682621602493976457258579326313901296915387425382177845512514515784055452966062609450919655947969227833974041487091454035443674468434354016196630603965672182783641312166672263709400795623978698421664435940986987558565400763551919277112849248521664989385304382229466679769036837460906055997869421926774435282734359415833198973161096310943859710078955710705289828763871661078490680708245666129599749231664260992345337023450315181010500976451749279803371817326185264957484881330081328908492535210791313903107398208401586475746439708322247907011936399482658841005839634167872320959435996891604353004879931408644513432432659523550079942633411883680749097873321889895622201852680253605163143158417435344127880754213711324910854077381985176314464455467205883980954192071071577156967327954817361417566962011329813210137125355284018545674590808674006756453425250343052071571004805781443046614687864324362673390314962857805631480745697620102146933028832582197140122411799609462755957278412792407517352569060117673455496325327519328316264141749442720900913707569640302360622705934072356222916097436259534314298763046818069658372697473365678894812693447415006732067657592194325282345581034108941147003570449013235785006229200563085676141816246727466287690817071848433279466725084648164209442537951438652130723613536846447351469380479168104665028239981743927252197153265111506569770269449201337846392255300124992327542933851243093900168318855478290973961015034292778752441510541599459132894702216923305413445335740467349459985713650737710624103371946420033573098818444908846553851113828092092651194917421449755178000746721190752624584940919898102901207970772327315603807846088919036409573528170004394694604768454523782455415423302273328508302121893218430719646610367048966799311306714971858846367758698841228757794030989049756622541478440759858863349228302582208942042758346282624145319543557949263319949252436619662806759976246425277171446060464478474772930515192365998642061569251695958450930570463583019281463597851538660049599222507208997860474794103003086815569441679737143164669511697276109206639490363384692538121753735485567614529123687121784719465439894371138487860337558899497812469890870698870246622984526286041603312080767077277339146473791106449281561339999177868623589678924973824188465360064495243458772967784320695717378163154987824437402633716699490934700160666095939601317679194454315235087562562575948726631120053645550597454695686604603731524992578748879851017757198034593048883300183637691133729851314169462251714400021280805478316285392056208003207696180527344176722712141853756467517399749839376541527316641531794494162173833440793025708974596240665490296316404238499340477344691409262840035680447104486694724726088467454734569371727286543989655269780720951317683892953410261552214519761797688939304470227640766862158193684526002499159282349196724570127010997145797589218559492033523800154446644961791710736041909596952737870090796228253330065774028644862220208725285388352124743519792381008894430867018717347115904759463113032307556140241121387133027151591026843487263750893492525932547373890222684000620439992980581803797167328685245039903187871980825656354034271617418879049085417072927435173241483604183183255429000898989102261528041456470922031500183285336212317514715325121170426480323573980288086217575342759756630744051270279119823791173530818613609349653783073135774863865641391965078125923021479643977980709099836402613396008888398841322263638679734072444899524139392142762453795862407432505344794061216251086102183564524845673118810179138592248429292875323579115659189820291534991330671479185390368031518482453868130035055519230414549295080227714443401373314895447462141575650907094986810731144023063249606330824317581372074077972356974231227000114239930213798231250054849593060112811223833750330831196253574141120146401914811942204494545235231364240101386980640446495473484860657395702011192286400923234036338144974949415170865460871350208270793746725263776823137544353944324361278749581905369364987511512121241344100221323428439894528432826859580463791276260370173429628915338827559333184318902755361123184894963995068556652304157700754198311372785447812942003792450485929492213833513965564859132243193779734552695420843053330110622091533603633833706191641218955899517018365528223755273623554582530550642502986366018226979131900139431835418417580334218380457369092253633101788273072326726628911378939805206523369091175578745057251820254518468510317357080127980897906848015398080797246440216167238418792385528387225635887699485176372104408324724811970545335802416887281977433958217521879356890314936622771448434488937752209098593052412049443995497531694613880559635393586623049339342694039494515328840316118334644952407095122538922885382016070941711998674058758196236832463134251209141795270598425763120021542481493847304875243776806510164248529501478615826863038336729472354043716149453282403665340593404352976611834357223151414290796628086478588151659878933273756002226102839923150102798933805318239947896173349088047818403430754625936724155013079103064109258746933493613024271956983548882373365714426142265400353665578008054756514765500174500127220811021554693461079262139648235881350375736972159691520103857161289107933663107144617829413090858866800021568740565262560056981860795358258121264821705059076948093779121425214617722555815247331963401079451534475545188728069395646196890812202934348217042734146024859153704790069373077859734855887644836575781411896631993526535275353076733785794854533841942482253718432617962092554404851242685336234359991260779017845891609611105130815192844968243035962874145751361994290552568866235469899888626079139787745793790578580056157096403158188900146608137736873129626563062129566566076996996501573758689868428513354204229913993978303758244594008597283232538712190379176400439921930767089137235851910072742906465811390862915670936936469934438471344881762891982703284372624850935230271458647717732993951662040759367082370283025812474172425555383553618415768967023806697193460671007826830292738402850406864706558160013809894510119608834247554011008251942684422353501495828331986680723948796119660060586241259884723553175515873902493850496874144328678987889601069572577008941158571533736399979452060598964804804542671287330967489913376098856668891974535011587101700209998497698862925389872831156527949984117518755245243906416879737891090412743586301004230847859397470166894107987280784162397444229444848572136422222132306627294244710082690864832065222676548640509020090825108595454453050707550795981793787503491527232467484700433637178078778789642116135780207360647020954509344633048764044942165804811739265716112038343742753903403117339647743867777913095276289520384097994043069733978629505180726197028996498642533759107071326890369637677095954867605908666982205164731364441434027347325063532114288743260730967969067510307491628972835751491572309861983458126452227969783353515113485224691702124633866017715784854221690253145084311368736251705894277705932679077325708381307771609840698324800261114514652505015180287516928401043397695663253289600808202294239348730717004361730338010081610998227806217639361110342426254476023342369538103664775356105038631651845603716521378227409395525979865388597186621809815253755706737957022288103035988388515941650203940081999064000734016169715102466384154739564155960228672238126225116002842821470659443387628234595703559547359554041411493260885380134193905289088021508654333008346591997763447859845977694873817292091408188382902039357266266618422772984941858711575431162530678203311561452007105825096033753588340552526132386624460506655198045019488194221560317112032770699713437165625455395938550338593534544000956733851730265131016283498494543291637215016177268782279346620324078715748002563620930585573097294735690565518557519543294444159988954743182691158724952254179951558442168055646029286652255191311263322357543269286131738077413814324832192611408841845344528206037313649922845974947313407408447120141890484086247304724852898749659113133003183809490790983312095358877601621800450476543759528370162465295156917872776055652405319379682462552307202032357876394945080785586692109150817238771826497886760421447975828893097009408389095365591951943124042682073318224550273688973352734953667482162097013427606625733667116842706922674077131603741526768409896794718741842579083691803633281024994249129939721834141596260228531739389339112566761996059731685336402178122112496826654392041278804119926188346219189515064300039757710169027417408996368061967243777875292001640719724084107909974555574109612955400765481429132909303631757902871092785905940016123442493647278651560051130331476061980301328316494751212376965357028528220861972593191945469416337042380484175349635408761788184357433942481723332736366252039973769800510581005210405550559651859784403350258217390078127145131418323444391160637459301498478153189989119126813371865110321209622460973900664682437242266896362593251569322344362031581784107314376328109052585383836049967732564840301313037934351049904314789894261111418849435134073555921017191499178140770569993763879727258829816310166117269526523671296301197978446970838076634860514808135617163672558747735939382402071449271362337099911262575264149041969668943990773634375104874026878365038106566952058418054113307609362412485369849560942440010290576699735712183467228643390001945162965542579350911516556054747926966243410784677361043753940451117150841018116507628941438320619763321746651514278920536514997963351669711482662670466408504805078144708035581079823544241171916880590892831623001810449687001329618302433551757916052383635682114698795401342443205488747636628207776740266259718258800155723577619461434998584559200710281097748257469405910134253787606324291760235303233204945173676275203379650635965617069496900348252823093673125281269195557987360991232060199583001126264521737484385026726132564426169828980088455935679186456057920369193468085211709526456623831725440341500920250947477192047497856732570004815021402172819396062900414691987768249329835359835302822914487665861603413425560322605543817653111901463826787943063197030372523746244210409374650518445729929035002826033034084231554106194791806996080915946823910904407854264835630202361065587121044739850461732369382678109470796459958342531342703385300956443917455444308151777534402961216003780490506492644664594081780930327178403539332705449816465904325992209488813422491701895511540728190348391976187255419585505739601567818115996723743950077865283823473294425616912052035291375158424113753651801702698069935535867989923695570896954316972257616003639477031628198473867506309090692413317599148348861441079129891872907473323317359648101786389421321541861055523372960042626801130515820529408827196016686482367777193341521734555627226230110682148670972068994980846809722501121874938863667172498714278685410602818483819109247881176931580227630378461276786589933706602102176460782804894217426206233832847420809527294065893174530589662352964303504185272375015283428735713256207844317644638974936624328025936319135550163485948764141735555059244297708095676432053704264645460834017638805087734734622396642072035702247216630535636851003210427323740510914862792236725231591334299827680716048195480658287233292560105005533636189734697236873037109047208733554192105650268059694426866638061482847566350981704668097998219097051136883812675992281790704960604971222094820485441217163763880471988613406342161805073319877903797116534339557083440991759187455767773206843864289506967677244996567819858874985664291418749336590761218893892233999306213037194087755217024471725734113532151976199406113735320214891672147557861901687896617932748093331063946297991995208901396432137311330810308443716965972029919517590955675157462980928486147599216903524599405056368414618103311666693178667155722726274211806092842008602891067734617933384475943530947691009951636987962941081757442870090042205411222254580601460785819530367815749562580056456276356788275366065998383014179286219607769420072128613908486014247729892093978208217518007683593797469818586660483540536675292233150910946155220555689226240030613845563505704107417513111312614278233943280655981600867278419314020231487750876706242287680929426016717555880820210680454759080677297745466584932640435344812577309444216987257960359406113744396664645944609833683734181580776425390102232688503333111378648463687979319897443157597820922190821322177666769311947779335655868100766855579760915298457612689684737502024464978194602394769307188518597116755538944818356820552129239461630820029918383165316153744035171329620083312223359033480237022729414535673015688609721086109577689345630471285177057412250831137258704228155946113095863467695161749767120169120895905555281678381850784731258015831769559263714203231501320688654194563185552647357195313553897574536642701183416908451830267614353963154314530973469149904261333926231300523605371469473796144735367610155669765829776788621078675177738233441442623483295186615413700695780705718008842870618986385006939250778114037402587266620790895923898990511686623678410139336139836136863502693828927242411815650723607390739629948135504262485696093583798795143371307921864652367168411521174693187397383584411789659820719863471377242425319221824318967279038371390125609542481048484953920376227474443941580722340606142366474341600790737347902948421818564648920332064241790855723986738240616951903525436076818229801973498302995157273319624945328004092163746417930048759195738850281177880104168019715173189275866098742275548279888638929331703448149567789032645742788436955190698505206067212139655625141238683207570560176459960541117058273983887970034865013825592925094770599621596601466096812526457980435309973838899398861257115640091846583985101601013462202335949900686971466452874717686959665180043987427617670248341027584981509966325590509503365708009456218729042882650822890263492616330496245611725122308021410721395483383360693055534846959719874662344735290255193577893511232401489764018461944569593081902693904733125361170656251350897038953825128081994246707629735912098675754947633546351316713109747127575251621974169692896131056617228237652657843662320059891700387527834621148721368210109860736162631244871205296355135046908440601382475400938236494544393964975663917446095791307399990291401707647260679982828881553574593059602760374977617103913170164434428934329932045142122377274931260072490409513463868082636067713158930527285797818749005338854052620614794309533530744014591140350251004758687943632406879098997769695674451064595218531591177427121920746055238045068436362131348410958792717045452502617835708678431392499558600605175112201562505957353003633138077747841485052431409479762739422934587341803788220660006398355690212638266053885246859285297800424329814756266571100353575563664013973491211013501313355848283259073745888628303100259461496386780712942424237024539917120741264898326403867005694017797794188580934161957093239102554688739711824821347952013961138803495107717669618823377677163398195881860044707752240191065705687482806441503260751873623553673505795833236319776806089796511502411990232633332504737154514477026041264980490915522888537965347576080614380663463640705918701273787595965858805626493409178705871400014297519396257657284925061174734121314502868240309546092320746179339478789908761285435426414576249882907826729034510992955584818341560592604686581546909739560637417050003368291094942745567223855420890843598949421687824935638869397445797582243000249211313094854646662590058176198826207656015581725517314118659070605777389886424003406296113815620422839297357329341431492837691065148104978999530827762687847987577385077323538915233925127124113478074124964834325240263830066058353696144956969334523085305903699639650221347975877174742798470464345074992887240812756666667217895585337348371690471343500497568681125471680041248571346197584558031922326284630231610607278965381484146938818528224523911327206842212197486196634949386778730227658432210841358521634471974495251905994832249338438234728101260419775019126049777815361127801182648442878877097525144163811847195182314163177785044260027065174953918210182825289988099655992110748664351838534376646155445289929757052865117271636299163064461798964859516990291900672095675304557568208582997954861148069557858068500722851478837140361392869209286356514400307905253743540712545489790800061590794939118955275973483968243820367634665871344804214487686547996227945418663990197415828953508495869063857878653268286443030255437938477682017172290706966302989926717854402587689409112847125694761074475604038488736713880316047059538535467451964201139254008073101910368478345909345125538590767545546093236907312341619999460614688773584156311070660830460920537191656788031634386890090880941757056551313139877080564782768488238347103208365323639684326573866377448835912203010261455562025702571284343039439155124400602822317984631099065168114741936534651523679520187680145702167418039032740793275820719536214566123474067378148694306876632188371045882798360183225009686492111481781274106101528454772296746710816551507672179584399710402866000431443735232965140392939621152085113194681937282668110747103426436809927160486859800226888589333911341588137791035502919316275182969789809938588925166481025739418440712385276719468516223795714669400366533426089266514118895228733624134135375383467708865592788247942799567019247749280970767163255468155224651632321589194805586096535118205652496528838307845468807592755189829513027046344717143111484433470751786979457185858198237673859105538375244950298794113394720583213225708270635357773120997115285662335452954664963349778382369083266149597414234008045106780520908037471259601294726141013853461149926917638111314697787870375543218960499182823068493755601580987269644163652768548320983457849168497394157987396630401929700520725388446437993853573693849617021797327939263700640864465414747761081342063551695761339053895810650290883818463689835880964833811900541459501522708251288687179069903123917596004639235473615579997879887768694275042920160733590269970821920358621142270440213253522353742259915484695705740840800299761806739953140254846181304747503304265486850696610459348125966653037355830662443431402578917866749694415383239046755117647734168139006488220966726290725595130164986201750206020580119317174338054512547889139068852301148154295348378524621840195160276070076343781710790372028328526287442772133011244278338946371230913936981358818180613186200875241283265731873408952291886569068432715473673447394586430813278176472910292947375908904704756729544331134275976996027758590513493301063958180488796566103651785260409184542267411028043335638105419236848266733320316227667201111079609761156919782102006537789103167387789683937524751689922546226346900996539618603156085530931734451005971158857388422013769685525827353452544176879407531114689385933562881041013112562999894404922401710827718161992571297662113206426249816504527309579653387442263166097428642643516177587532972694274066852505595744250493710690115557514700488827297829501145834786002788739966510739503605385412244470413771705307785859329258501296126661437683747934103663181521341014248807956700740256996109998367256949950748621943333712514780871827074750704080044349631545178150687735935703155467260471776243453042425482144794642399470390627161275435895842691118918925566286948243528164171551455776345761554321091143835250936390375686387860974835876236035723315283691048550981684438696885601203995689201078749875634981395004615762438297863811984832127487845426613099047117028411561073721745071321748171726121298805086245444409440166367153945683449855985768399681908630475006364956698352610807042814922833596978177583232078812761784249678689793040085084660086963593804921459919179285317286644377229098424270482909328217815122045240304273730242870623270488988472796974065788304782674012715877739934663996462041395279069284306229807161435300067870488987083705344709324422415907258245588553635915803498939850938322797186296087890875181766517331516175281184898380709350568073358189300203611672543070765927951230011070034564448806776175463267595184768106871204447074405276120276108162141273542549126763173913355493291994170191703857636378324998126123680714438956289772831075452340060971082299315827136327225617878034851746533198378676262144171883067817541044306689967878296467844959826991334388446272916833166237733917624819943336659349210048804633873154486666297956017793337304809016385744540213017853991527568629452853363508920191312378009194288771234693684911842246305195730751824745481223823149603906766294654675087544762343838934916815164760100945095407133092143746644546707017684351150001438705849910923700837390810935043836285818571592413410345573423881455118512470949392593753214859927953103628422932520187244579241665266623249852430958237490188568072992105039966706789847981672490469496503612172052368579591234358048477441339973888444480596252057916533797362847407633219627881830913022715556216631522678392304808049705424042801138814753344793946389241714198390806423676588416545737980561851120926770439520221386967989170903689580393216340190149932858720811786575624861321843549084675580750303941247099020598108642666070739181660251388583437419106678813402927187644080488844626282614439674077197966754540263701057160155828991403869628130749849200139501381511741855465388591609990259321416458814122638607403023672395873661802539953500452406477293614896502511783459353273933990124510497148199104838593545864316385184430185933577779154648977642509865028053186829091381352597240005620168818600503395192847686524274901086221377547368872656851884360324439577744638180857735240584862650246010632550313376512383160687162617443090914065263721536754651206588335085456351099639324608545054373446022349901614620194029711384106293008776909257682597353104808858390106225060770711057772419314179188038541566762555407541677694629497212395717436750574475033492424169469959473863556496174804266569224457713054916008373563373559463354877774805632076110038335142433227763042285900539755099422198335089612678909829818965875302820881613302699748685524088481064342836168416794013532217247467198655022377750580165525918093162964898050595186365436040602158601433107349200824869483813958193905700251833021110080165783339863096477301443760343278686014557998333261086204203108027576530237515854211929784267422833550283255662676735625510747494975276765445845434518500867509381191518633526417248940655566780019545537524561441723185603378655371702183536288051440051634143760153357026428017865686725722080073908725290661553409806201255002290897315154042925516085218268559791202812458678948250369209163065016226889485470092617374963056024278661760930711231530456150847789487124803520762682584903721172093338783011678367842871064109763545957035386033917018560114186550544952711860340263391100673124218120866433735161257964657459878504215841829760134702854920335748444874537650750339119702401053337142763267709571460802493682280629453579229573089213375953048668208641274040133182400081282325135375853199357040693396735968280202856069358780609371423484995436449881342663063062731309596961686534645687769996602971927645123339764998792810885750081911128366403390646427353727370937458391773594297034735163606693300768954894692748125610817639911868252498532636694532481483470814967414977438674557373165930549448966992693254487767149676257968656299310644833226467583895953819415539135772011666710489184357327657838004552463315971558529512152117003684272558069901648402292585694391919032401974038595101385722955469645078330411350917363654638899520033767840465096137073525449784722725035245506011951925791388113589396741926108654115026266678666212117992663447872770168590046558378130738370279134064424253750782684698127166265346763097312619034898888692068052027824655157572473532287850950149407561101962835072136735149884067179352538645356190491131642107909551407058247223810356644898381641952838333171403580723920589291131775545909779858257698289723879219295793341214106667574254606068433905783284335155403012556255917421628581904181167137598529034740501123430643787278134667455252139072891890721901511252250008151388129615100761897339460723379664038607607834017930144740868384911958880229461568625091110449748774679298304619519880982395099075953481913033922125831602979584719283510631872549693747285538778271572197796908264181056913632710689941620862675110589126827140119006553481842876662546193044165931741489512636732349203917302435142998385739967690541795361502472399164119480638580931949091102381003094627649608657946805297636382911853475447657264063576688364984723286844840162121206097944747045527023186090434672434395100701930079626057933729831991682854802526961939557169847709915584090479489014314151917778804893320459294936215323186560169270478641473524213932048275923306082908597766863807039630251694490613474818856814232960032267194702696662930648865045289882035042072255923205992064544020798117417565487814073179097226676832171128881562672321615705263654403204008968359654159578524981545048467911299975298467616985750273064949619220086403287258496208346265010734833895202188910998046360044183035202223927375674691591875745925545557710225015853507011141979108691267526895881142297883585992495764601080530156760763963442828117116803287903539614227474700674501147682804066019450820897305353160089803467641817051230019157592551956210577661501636368489054504852472396414006659782565271564758112881913305715446876951876022393893710670129426468621887122982653443843290854302356333637901840281397439447757299393611491601487493811164193214409090481421590518164106868845607069409741403405507802685738092998648800785153593925642546578399611687659863285163899106646243729595266317454855229417874848306759373196633287533201236547345128947381659545685506313877329481090297505963137089823791629702500395252239360223252251590858267070262362785257472964178453029795342914257265645899134784098647100588118742372069643652843939522277499160791308112191102774610688060892365786282372911782696837361382613201187356741176500305525404866207692085139069034580247413610818565601697830622395443493139187583510019698953560663066940900330736320564528601160451012249691991554057681096142779166441470384474000669950589315347418364358356858686471402775985890690207654742332557532723704842684466076179449021343982047413004295547277223239451883853117419557442681866861314304637407848719731042354373070440926424020721319219672802254645634288026276087956170049052263882960824319283942650616266602666980570398451116325919387595810062917453179054177318978661060364784234269841482105766298369326036890653788580223482851528333931281792047552644718638588713469153591605726633199235394558564343185467329766986034991257056036911338723030878807399720083524651680159499756775081294097685685282429393664096533018643681432990646646652987668203791732297763438711971468060216291395988178574235770199786924441447701924368825806809433635959082994492184581118628726187989472108039287117083173091766419878650945130548953225153522349445806712089122662709931461141877193887104760301042116299002517904950779335069467114344261289676533087673655085982229583130009900969685414036860192796983263032682760127696725731199540512445631200618572464391525433792893558679545828565919517148156358982481070827025196239035165710345791317943706130196429691468802845897811082554681060516507287304929977148526155279765929266668496816020725093667396064504107916120569596770922405349109769456666528755685486176980966146010525071238500454251106749005552268584799933153844311771964570833618953532515053378246575736973793184097316143079946405267196726893484996777393101141381889020152564071217202845261469259682715231542065923203133041393516453816274502366580763026528011547663058782643381637420018930468049562403407711504212782801240221211482895250204141256802857905685147049289041879889977548016636422914969394500335713880318499253760428915327084407186856828005983656214859126680447395362624837766015314942046046739384669061352342469101131633000076984659482082939232268495596456307127182381836151955423613083810380667557615105655670421979198258719832287205074248040166454014297593522040793968964084103068843970343756438275827083460467652385013221727022440288462947029543566003111712241490138481901292827207723712647848105645179756016598063640350302111771197651405237247216195452723389948103258575376095333717097385871112925666714804260872857208469821261800095448926426288347470854952488332166415642506408951180040560032409233158208700256072765427898156141122563914219734068469857395016410453826430227982443476553853491403496029869170818801535879362298858728044201735313800573889172053051569602478712583240025320768841106024182303177693005614615181762483766877841043872119074282118596917942037465841754252920566367557304089848677795554607028626728794703673197580384427885660101588001076935517803894051260725523418261774763648476222198592563526919598301386105883266596226233916035056471973657357560740423195145192748135309466420952070494520859168196510633288828424766369376051778254572224959657141038725383703157755831386847282820880609079576673181737423551811871806842188192415763994245291780783313677792101874752213172041502184797882441706389523698137923419048472004064630983384265538770704392761013337017267380212657841790016293432688225105183774095528429917823060032088212574165881414133783101893321382590793652868522279021488437744456751238464858815482923333151926820102743653048375060703142588029201795411908126148958410525335359662040385290953145022747196859667166923316220621363332711214500076642393559845436732508248796514529371907831732728709525958768403711632523132346915316885355415109202058084561742096480425543932789702286513417076208065902640360034829912510742348143634389100079783588059067278690366393119427787030716546377123948057742307734254178887735291979616879384068425846172569433029326925307271065688567333107692414784684873424183355332453384428436276286852414921253343324043994440195251588174711790350541099930259487303876605898186156990920853802149949410134424843084869363898902183480409696538096422050481781246839329196380763195195653224282582753014148630539030128151659376582222937613659019271907637431531152996514535931756932606454551327397109553065068204058568838741331048142670764384578473879422790856048863755544826498231701461281000334043469649439885622213313117438047401805657824703898186843824982263904327533221316445265345165917135311281852429050063911026022638635916920815141392752987976292920998934531657997100471441378921192879652425204900164649591758044439984397717644238511393974117891609636925041011225021776225406671661359772073103762316179114302902094576630985222190136517791220893295181653738320796148692860886443777369960653762569529883214846682115158090461792664466079732050373155197921529645520659738173647280546193178175021192342225995120867599002660599392812129299402544576158353648688220335762328014422546604339039455156084407039231884901838619042199963407871344731839128694143973398865631791989275172468245228452285028647498010271410547361259815204048109312151225312805709429788992705206344979454323513299919261938003682973838884337826636105817801993989503848189766855602581292100378527830104397290068504138267355391131246399620414166411571697850250323974943277411147052485600766361243186173583937606838489490502546531547655601877636224737176360345152185429766720941858050726084050086994707134048567453187975701169139419224592725838500202579967178969366885301028340669421559343645210435623830305527706714873411992867829712362625976551273036937975392501413540701047739295471144341560648960473700956013411111713759932998104698819165359341669614794826526849350880130669094400931469462443109577722405907546857206239810975128720947411934893669304029478236898057484411330870290307947791998430273949955325917221961762690703503054417540496723164439773320205495921171052052306209085063225615959945084429412074601161414459958147199033435538894190783077297457981651205219754386202539512525455490937917920237549379167784956324901971806580721545687127677670852419135731069086276290533287672576816551566599440784812250350492891898764410815465699419552924664692614822778669088153958068675869335786370399592019994608553733525783421703040941012037261613642915170711405408778475888781658717010737763933845152931801678895536133933762872997202754075962585144217129116313684813168869015329086299069670806417571757173873210579598919041995431576069371445175127014170258250697792431684218375281938619448633586245568358806334944118041732488055106558149985342406011426510699394570141714740880146799209600222017151410513667940997238526943216227037420006333761515351446266186877749810736181514090765538386137842144064451456650326310222923719779793196970239753075244406180789044061195827287062651722659889266666152325986043312868654990394210184265982873649278915487089559483947208215543160411646222036398934096002329597125811456729044539749657916154813461524968479590727604916213194946298242743397210349284776814256284457306868494414815894190751671528692484881689098944228121909379079786095090486724712824840524693933065662355155174557632406114106077558326689078646008615463575832142283809186696290420876387876359385435822116317053814396135224488358370815955894818920735974900668646822659119876374047522808848529790989679393801620545662482011707646639104785425440588696645956660749360222090108003571263771470256246057221673250002587106515455632367688135746909342082939742995777149190323380961171696273349618426008321921595570840823368770299619350699421665811532950878647658415530427962196259947198486267199915365916354343654875759709109988400624053952335234760286551269996805700700047892331204316753430196866535014386689694692836184988091962874599802429516593690210609437303703394929924489092075075660075622792905658369088016219564985049008325714452928951880776438334738400236755459371007131529329678210633124746807006721179690378243355446626164067775128162126403938948357122252004328040717098759263529345427152336602045592542607363420798941283820886942207431754384373343943866498250353821894036830109835050835315175560791492484355411148224563528280325306308774943202424518700488521504423722223688948430085563322817256852495676156502520996622483311314042606951841815373604557317203654201353936489764310628616234503559721447250341070032309028582001124818331032437314473953768952327317786453656427299700654192501389535636304720102118920268892894924595703197001030188531806284153560713086161743142058500569457538722215598266203829894143433306386456597269806747677589368438631142311932407651817303523590217477855415652855563745160800311964629999552193970620517536700820808475113107361504014075995387085888139753430166955351225621501106191854451217538996784602843752456612443551757428244168628594834631694873069716246890940279225989521023630661905772742072408261831604300505931255068803016699331056394499833146241715530894179446409704079969891885088084267236606514813386509572476261192723048848127263600109020873323200333972866865729409069897940991211910922044296117387973496091431614355938728045936946903372273440356443243527479174301825541454648799374399937832697147819665202729243020656864365332340527826462644037164582037803521596313952068493845173166730741769541755995302037415431161146399600777441109877345323891296066116441921157997813145940875271715820089666447159831358963693758971828158848483781985697220163534288146290990679951407691413352831527325975791300579539002217449616017868084006569041735804884725289061334075167056109101054154079605915941292838411775979097007152590400062582792815345572675443676418509936022306372409861183560916652602826388287074329706135408037887488770391063667852796445349582941916029545537978144566627282272854857970708618878480119415720946312456889097350316374917440395350507009132525582088828264020639802577619287267549326124675791353343342663731366194059830549948178328585573598370471179513081567182838721156782004432865629459265103639329591045536300651226434883295376248454919525142393349122560681554284645913044481378109827263208539023633252512804993975961481688201603147145467514048619478423796369027952604053551092835597368384604316626866419351744560213929133382494346436110900798444135616266162953784196650802885281290946071093131620609366597183673936276181539576258681020242980017260914566371026396740393459577373631377974830874824262657644976406452805527741668216371630022996176966172234679159000446219216409814406947542899703800657954052703649678595912395854676859824936620309525442199306376443515146731698818023662539714176390382363053777976788951620810050098505947308059344303155941659022650553026897817575552119551818295169352530761049423052854918565496113399372919391806211451375932151507004381123092005923879570284838702165072823188326230294052509919599632303629319614579681650996546609961854364140369019649726052725210905928573321325482158923877738983822719572601593905539127179792364369296033002777794987003637549933819426908813764213756209218325788405465936775111545337435171850186418225735657280510650435151647363253356245498522287917775118355618592036204033419278415283112199181744873100260753412810515158005664084148803745388588084738381306364268359852745192765377937939258360047902458921049095354994076976843888372607850404482113785583680665613607028200964025224725912081729515712075359829182751847452194595805418595042890196377863315796029920071479821629201971049866892073784775826808139572714301941038979392359863748247924829862139611284647381079615039741155681003316856034678151360271069241148146206753496789834137219268785448848404513558926409867955354772125013132106078144024400186500572451592305226277800227360294273135260609076223478129425403416665929324111747254549311690419093923630734160467353260072009605656046855497059978331673091254054798005089207216953353942838715761316321487262129299430412994194360811170551339943644283732018400820151390123288075572746424696976899222666185497685243409006307586238891750781851764466735106736667638336792591083837362702734811473021803840347781123174185036384090324720816996102248978616975426922091703849994593166201435789664485351019185317170587267741199653489966214553813162957774202682265771486836589183033182723946355964794309726241971423354566251728597725594514125650066019543827878392430299634902428229575257632494862881977548259597943980962983094277213963506678186749160278746574457948234458144666051781071918694264288882664101965215218365350152973634294753952245305933058872177986073197373420851911483681672012922394557248719016605982939396748572644704868733906099447366454594544061418743550646238425090995239761035832373760809498385807003328872913419753718519571091189853103093274718748000488495856852853631984976589314374986746489031802033719653287756755979762010042022591971424927213033242134683301461891261524896715543930467866492806502679403660266837842927258966799007757408184403627057901041723675610968883301882150716896045078878736152455949025561471181941965193501016377828551363612861486789779580195647266549232242302383779298461204121350904241438125922743118349167141289805229690189397946518616736436631927899745371034718363432941767848729393981195886005280230193930224793932982803298259954282034686065493992514869078922176191204830051405843457328702508977211872058463076784020544949887536792652335640815913436471521190157434657377279981399422989079384298520802787689711141422142818308526721720954741076146724677158850596065691667054005432681744688864709460116162924205975877894699067515799986667830393599657055215185220278043169765366401750319534754920592397009081675211541894059270931947194926143644305622967019430793741598809925379070812902356451722240763020733703867482914991224385086320784753884342662586840369420278816208588836290516015931242967477915495215688481445038338701748192940210152461821097481598832766051752447570183287422234889913417584295308812377179333770724754495738806528752327480496223009262937308962045881367223203302993172909319418408715563966871329426848656479667787794124656959284467916115605788766620557878328938176775967220891821305426796946779535207873502927715207558100795897181086287218503767508906376650861646033753062833194304173249847188379964858328573817917929834438210639242819133100112229975186853778269514509655207974290098789287298329463729953147396068648016961170251295724200553566907829192999381178746095266632655965595359803836763866906858087648492322394680195112891621033756382960584284833628969852294368586127668448142977690023174521814220275420171531013879933606624450417676812587533457757122005066629452488647659113150548474658814097085998422307055741519541452143141993190617859843452854661486701770870441358336826483777402771415757584728836788587847929268246611256037512633646511301048818137473418377628758450778625218108908141699828914551655865768942454315681194840929043632455068351037042418872916292673478251816867930892231999391341655878856825800638002847114623841764047560541027297026059865330468417417071524005112617194627595071678303229108286053796540061253733227685741344862210889321666098129351795461628183163094099818036159475799204339555144733785533394044242433145011493520859267610794794899057201176837006418865217936100544729210914437124838567996150960006875511185123066235173777047125209337852852294314831109137895114470516909394449359470625269168730584680576031930475008168579066704356124976109710944918835968118830996581891697644355622767266962643635149998964702079537106298221083953777201537655149245166755604632708127287843570750083856551742494489837242215131937394244733186568790841552038137198014715446995440848957041421669696052368375692790542735443334305216467817275481312413107885025190787378554329060133762437292238482939951225518176253675764017505841988670475693879219570445433936275337567982341030369289677041539296888838970595072206417680568074660839430916718151509549805469746570999134057440287010155307547622864134717893320889833668576393255842323303988857605202379384871124482504008181978276420464047588706908979797707927503113250213654302880064204592676995703182326880985040487429813223184055251295048954134118310515721592789109221524504167266774045590082107125682615413028057958106402110671848283366918191047437217126816461331932155246935876579977845795133227772434790703479700433223374380709763759331295604125250187176792484417675168295932880882501303170390045349678353167911736320441130481714416781489187063649436654396110910134082984133718226576836155433470702667122624570103563762987273177339716968943189742685186789935101621153769380097386798205093021002361354423561759050222087405986623011648482063508679807514641925839210246532562882092027142071577931699535895431657423959053058800191611705222860679405253493338593556772196715803544340029114082092886688275566969652074271837624972952561744711537855769351218827720642515331547664471465913188655335207089635055365682451795378829256377735738484471353801637337710181973283186007868897692376304321982150158511578156053774129663324816039122574693743805183472457377957637365874724762722900347214898146824891015043208264279686498142562575637175866024434592241755087776435089777422843917304433041755698722001019690435214537841495744539215376547721457664671200451480829283901911222242759706401891882816890547757823849479839888347000281360550270975084444741993925587105111607332178524575599568934252445908682034583474210789667996150624451945317920075132614735242094222425321874945158129693255767168421949970730807335147178027761452894756833706743046667790891708681561614351337130046630449105133361709117845140191759768569556884111119885297125069257655087962761618136364705733374934437359119663241030733268796438540606609329311005786395248451911165615528037386972777298087407617600157289970746419950677570861611913125277715468711750260779885184212268171720935128119729360121655158834262664564114185308937774229696637822572719911475972883540606698435216914658493498087325001936392547645654184132905260477735687394009540267767040227469192259345210072352903109012675333609531961465218335433841602969525455313430165895391703642247335128319552707992357800102512291716304438574566579675883034766493765093904117323325949877239770503267173764839602999139050526629631070226153909201925165098730993452044734566904610518851673714895027477303673579393071723962400170356560267377759755223356105967826232030931520236843951908893191807504065600896373696182553160743564638318199754092149054628019448461472989228437582141239687271627978458082226384471289737889992460125112865212459958991110629507402453861829617915429103375579173801036356179655114539665995815242994712704566738048991398665984521787775179838502030559259655084530827437670426707325046975231025340251966246949523465173634284832807768564852356604402845498821138244951081350631303879338841287496935270087743134715905617722058470202249275694538098665515150859245660885805530423886534154650626588487407853048081389067596266172195639984427668733365106433791402023082556406582424769907507288970509690983044123552860572082453521960189765483456332272291791740146931641400769321554688697865222295731648187510482721570106974707275627345377148287318199172859153969425586691096342581110500548774656545607338320823684248091900289813747404403798250710067913665423462040583902004693459542768421352421266692033456985722180115742700310651544065959922341500145150844760932329470758150954416571143393437733747997658063404071292468179458128853679558029111757179150635697225779641639484586825381030715587369295514209522678604311521935029363747966060703572640538336688751561689332776548787234713745772816617121615280374513014663735102248653693976167651162415296435612417075752195803784708224450578274645137974549182694477266018576054565689419054256845323242790024440675373609559710813495565384491318244953170565269870057285186564495142720088887631228079987575705282160722770357318785494807648756729749698953602380171630562257713199258257218435717238612112131769363373850266510537268886042107320267354251613768628948842433728234213908044296151814911402159607739134912117579794506187398567694620282170393854066775137328290660333687830051676232446671235153447477124443471568465720567281997604385090430892075442132988288008149075804111923328817477373655885343751224472118225521550207208477088460095990578751018942946963210868619125996586154873230828729856429698076978718535584534221731359462525819783332998934706197362291040921299016135897357708237569753997044025327788343778163727984471519836971546997990929082072292653296604885369593779380521392386625423472184081978443909772064455410956787627151352918352069263078662795284674799255455622670842851246171627818671025529089305662766927972272829461726761490630288106386897514741250326830317835284519133846083251955584359315275224302343695221868677617491515463711163083329669690077767480509804321467691756303878943407436813972299503484282709764119894542929984305310259467138796860608712943266809176951669172572753079587038723243818769879144765167055357851753530235224505895192071742161629820776393947722317272561811113190284612928244804806230046184896055152525266226950135912676091716631315013462270203342253501025826836729711943268888084339947126584985225491727926544733762976846658556890336994719203751349181052709616691889401058820341184622984639994078217481915388028186162470237779762034275608831189938435788907556875945309066176563279939734057960398613097156343567678294484918366034546663345916716488694034863273850123340459348018208770236775310080410171792992450970028232663052332744555829533556564014315842428113729133783538611620279830263918050722399755281754211335424711814742461770109810634370616511716255974139662129223506322999508904056705257924223316743411919947785984680439398644839881604036311713993216239946655746107473726954475589953776610468427219217895241715290537972274558717180604880166017506379913016166821631231302960942367110658041983729274030481535161925483581780768331783296890406610026835803557152580063159850962267570641256543043805434420693405068409574418182576515489203248532866223361463204423780939135078816801879669582806972812994000924633803893387206793905222542239228120823470302261757086353058709479424190614749757589272418670337040246087314521094490773299884428171784399715626937518536608311917528194581969482999061659293099764365959180594536367005207494286178967990488761629153991950873371436238794117399066828071526753226683065979053016286518384234181727730719407692991343860108257661745327811395204310213695864309016026564490864581956736921997161280082153284139987231551641057675510070652023755259115565347503140006223659546605308335727902552644798639177788837101159575745931069871009490512505825313681641908183607400592613327645584044826595279274354090607180746094567558413749500752574307304353682823277951411486655256348638482573847414052256801842181144046600212819143015878246063738232140465759316978890960628990560955704606860645436443760337804402569256271991577565863052638614222582374704923385805802963213669250483045655611262525368607566811245150027418639317736945088970480771155848056355512687979208794080897403776591029167238314654409528082203638545324239397695196587833274236123369130785859158193757206035341793830813141205016720086328806463371719789140187151570026906083031718244878701201421401597683400776450345426307505502296061240055310519957849609556969451568121764942676449373644677424924445153376932061146859740128633196017328966724421018429568277997116690863551020494079007920921447611389445098919225615154124610058662183831440007984316750653009274225777269292887236857242113112429015858519395661728886685530170495931778454230432301430741865138032261568162365923609738445061030523574242790614287806255267308987768339448973928759033924317966535117507804292473540842041270881009213989333255701961629771847517799694879490620223603561869689084423398634768328440437659311163895133759894245868167151132918779549661303147386921346919921257746417587407018181685644387166321661651175773204106491944975109123805729114355091837444402611345682165920064581747299205677349629575968335031544480637518660248352060884717967349949804684844907380384960304496383559102281454181460646784864790497170469527974219773389462977860804842102496077186693305081287012989439897709994618277486596166408584865357425627800143600869582997437129704547279384787538428121743947279685263944035053398699120712709254805603707797793546110813298418866225162294103098071432558182376310603701254124832135658152607384025409131531518838995420329471203745586450463638799570672045372730642991727862501129949208173112266064472794393163642991659836154226156815024234304533332248506842169131448983804204309379262211160442989261858710372602238019664593682609911080368788700963200190657751747403059329119476846113190673562100901772097110763841306442226250880749500789026366790414886054310377252907693172895752534902228773844662065009432171894871304557585300907176757572649618389496095024125919665637969213353649330573204730386477535579203846512047177213252742697237508212092202445881555358744571400542478281969713781646833042037644102171124959187429564712704862060121876413221951221900268742525359608676156922904146317965916970372899600723831856213722583474353405478071156295635249830795591090854613704978022628689866883954376665985634978838868183383825251232199388303714148508855306768884626457058234862084025419099732231646633496683129039974472643887715609275219424325431775417824506929539461100210186335806044907021580670538041546440659066076150419178470177899950724017219274866034145617069533483986008760539556380072714132631797676081665009081927324779754948972139111009879192459436980086982821921534742902238899285884894664004409118310848136559756489752205799285017841178394148441919050977114205395303818796079873821488571351161281925393611280443851477648993504927859199719539752281212042853996922023071722187426406856940951331869605147029934522050588924519779867490484335824911664841706670302881969738908117305356109732069503744890738798845101203460082287772756107178833143274060224992030817746671290647356549860093247903989882964092945086049115319216829789862817974427041832976854783336691935763800529765832926143306486088139906172883904785441689758818006998480703333071006481232724222013538099265969539336493648705665885735414288550662348803274859025870274668091184161666959133332538113887106728469070297898015710685350020508452524093026124470643859096859610522837802932012036896104108001961763941011047205692413018476148590671348939013877444726679447742480002975431520339785846503181631607169955417674052889914242345441043721814461918094206282581268081411108539273169419641072363654195997180350747764746679397003616484451953445779654223114844181011790286711617773797800638317443074246663606239422263482269884499173843607364880181175673578289519048789106986059460562831516455983257217768778778779146799794148706934926486563852935027896440423670670741331641063831871723608410998411420391473318928238136271275868555212864277846961200052878509890640626210193598890412329316232497428139559041611680325694487849834648596638459038920130546148710240322697426665268062281080906491299376413057954371654858280918428689307880333017198432922659426576881222279839245638904320889635663654846450477409034217093690398013384229221635119060171101388563594577482673776325240075231357223905612459016315665591202659599716618731571903787780795479406457367512212514369255486222858767899343018868806681002151936790133793652988202541600629927084981268323585808325392020428255429438333768872906599903175908984968379750104638730488860790735706920764967301436742325694254826543645104324608088699447631266403263876782092290456434809286711779459837753817621093725063875030873984248669854240471954822065268309834766115913028649979360489885130166774873374435436472422405910319581538001361751530156150316673798150038791933426797601999094134498571694483165826823432660802120157791025289707485497582962816176380668873994640199006931683433374091095055162829643841857816336422351297263107792121139887023085918458592242673599489352347846636836650191808128342997117541372667334680624297142793957345473522987521706017047664300539145032082949651483631013094188797941203916796500498671532097869092521237160069060548727722381812973776247017088802197159572522212097609233884698816049935579103043800853501700926940642686880555942138881408895694661392947880321693524072387291627176252810950756766708768618733672789566776442041884313383342649125210742808865128518390310309203638221531009277861576293438742887648773510369635500160824981920295136621373200487014514381191415277977465896952461487545307685970565310215584006430554280449465989110359058513552988826842101127258448124187150349588293931498739194335390576499162377746791663597970124979467073810983118790273757531913379586300677686583372948076309792063214852138198709456339226586124869427674794911418599971960021414397605007004036271026058617481839481067700405397694700606741463934655287410218375535895571634942123002515309601352298409752519160373190196348143026658049716017994514643438913756982449570629474769172900176110838988825793536066586087317344815205598774267328884768253757862011794454071712081239969317821157782149107092791109851364066249810206852663912454482185946726745688794307874621532423139064525703867903843057573920369398866604748554637094387371790450252687525577391557702330590632295444873615595040665075547492021832122113752933151358252662493834461091488370990438355744824342017247070913656353371012898176977249069999173046843242971770199106711064016707655550438014142565738789118577682915606998570629982560058426841059412440608590335171409930398813667550545221695477271214006330067655871267061222639401685722994183451402979090016136871152180887223482749747830794892002682233541774662082367473076767646413312528771403737644545176436338185140841811092945748791495030608236048029445928933721695344997829817601094645391538004299727469704637259951452817760855106304995661451614537283624355556354245970212162990007460455543475884654890285723953745148589497721873957632262029293398655052712776273054015597864583946886859433155470028901019711719033359968778129689509855420527709816185410061992447863065529893681835082012404449864024480924767502314679167312836467321179202746647246302618477387807816126653704469449764448428987535636205806199167276587302319306678355944640244512584706863733879104034042869426136309443468493670597848432565790729728843458543069445365416791474877939902426944235598982502942572712184434167944077687505038204327880758734809505439086221013845791027250163573919719599255355197812349320382022034030755284262865887889288878906400140629308367557242472257234330348541006320919192011330277586586045105946457506797892739778177490254874250458564716000198581077662919271422219699465999530044890183486335482814115748771203878738085010924300079404922277057525847181802594774784914502069824599468554499190095044866921030225916324239041841306147371896139658372829369917333714708327412842890894669602267568555144671890568892121835001664962032052774842588762152240313142576848087373058619500070226482781403729076021812807309912454773044276711296953049963598095595630052341762527010888279020172668297464308945082825672268980015428956677579093138175073036872941594301799641139007493230177828557668734094273716407347173812522882456549593136441964012712771888963971726212572749350767389098634434150948278693441426827799805035438895146133657605125418153021808138893028158520480297596086814341566503885351468009113463716294013229252815187025424507506394721332448146962384224357597699285094329309791245619311747712228684047600601512856808740878606877695127966611414137181824823962592843585548739933277886853558930895169155596231482102917199961997994264300721211124959646104725402972876718859189148654229236640051393911171921657417932451058814007479888711648724335381783520236372956205711469873790144121273754274239500043546377427023145333154129280783467899709601788505712203728413752510361232201118448971276113125378503205474461909123923481202781221199405679997833185622338564937835914270679752236635623651152795145298132559781963605437937696711369219827125923202958703357806693521920860578598006262222346464457478107782804507398947427774857715154496886117561737917584852666411410487630039800829606813520871528642133386919613871212821922558353462810598251726046837050845500957418328069516047029089574296312508001297398223221681165513848657425409025153400393706529151941364637907670934308097260774665817049149195673476705012787203717070540499728809525519550421512083641298056620122136159567132012226823274409862713928027984313562262525401266236756233652233863755469382323756614910694992224105122275575099053872527792281902955607401446193892079052793990634456992537242754870939869884461339079820904835132793816621024718725073044002202864716309821306124272921688824838499668763567020808694684602872560844841853864264063796357325924838056282042111112580860669626793070688081879452627537178602513571227784832826193631905797230114519714831584293875748438199743979713028201942345255792199749387507883874374629115336074273711923551706843343105502787591604812412132709270535049498655090670001810827626871600932894342410737674068687344373769042277224637372361992594991499684156896374154922678460551094012524523891876991340389198936855811437786804780100272498645026915806794034994425221284506904700111208783681151762670161443570669698930356521242328962986441712036525190013817922414191253309837712911194826675112957664167961440255237892102514716605357299249665499485269924594500544522800375302652830341437541918560770248916258809580243447798344839574662267569041580199312657553789797390992734461231249987094288989261632599273551595172898649373245395742774300110642388775844634287889338300973933711283154886663519481489966735647721734100270338196237769986728994256271681442329115488539889917875679654160925114032905795318762794720965092988054694661452819186947935295912530957514818827486212884193110974971312321131772969523478308852322778289022242222996573071130326948912161552326193279079462580890559578448642398554823114065959907568650699391204804115438360789251148761850293618581989664253727905005591762646679211832815994638786375114890599533952126666071076118074089249627608546941124921536512306104722818272782122600852952432686025984994114322409877573313049340316951538635038979152671386022728917873673711015392197821971742976002312964691238510657752067139137260024110238266451282069334596710249336865573756724292583589820379256465474634769241329196231975333226962650762216790305102507286338144890807895803864918091029061053239837984501613440511648259938187698024553312615371842026451534415344951895128961785396535056317630440435119797100350735749589529311837264088716754330993692655557814464959065230001706326770172145873000180331270126779616137963898917108807237064681780718669469246873037362829644381195300462003064599566488634344850928801994315571082989316896573943786740527942719238201668462611885559450393948126791251680082890834515884278767362664001025883738736052917950285331499432023392554999949923127511569003870038765828915748712946826314033447528222930288300408134764906861915902731844833011378248925065097216632150081729118328105699745594447403979234301277651282854057641297851857319359206708714473574745930383255624255725703743218992674667764246747274246906207635644848362678375136041874792460499548611088972526326401169107341413792615547310585676097222949168031090961936689291217649777668084744682020868334217224429614868037385766718214086778371126622331066480322667436086028521584941002212313720222755618911889411181736063582925110161736427334259044060470867335908646732883938280922719872103378125472089589902802463242586631117145223999583357481622103542387636852442079211672297625292707655620217136134845102026256604068059810638308801289792717314189367920426674804989699002749692262115189985854489037426129294696594253579790435421783523513790411213113091412395381433664027103634399861916718064126801496351998564892385841025020841934863757414313625128461548235451817876612897654736563951330848115591588250218546293002448968968932124551998602464145300418972000618093133127193499252135347191983330983306619517634020512323968670703971560001490682354749380859908885749661083444914672310228496869635376079822631564101170460088641515897963402629086352640699217698598436055205894675652244602404502109966178650235795593093369222942610584472291352017888066070320862247984619788030000233928236179153090887847601151577599195669829890740234748773923000201241698581876339929812853579265129559356832282404554001667219212268428828546678125940417840840691750296084901381174964679126746167756713041029294127636880237040902978099604496550371047201955726646304779808310201291323332459589475054721174014704818879675237711582415972003319576770725979928424904416521896769356510162262296526129264000569640467730551656682217039858853006174996348205344404240084258759319995045962689808889657998765626969565432150664028552537524121537180180858126263193994869022393319437874995339844861015072123136619236093151489797177309619228058964735684822959849615004404776640654819288420539547321890383805427039320833864030548622991206496892491794018640882630499223586899160238782336025036538549816512135922153419252074541930625282493463985506038410705520359137057059617889332813128299871804357536684258784032354915857974636850788643135431374768199387817080398111873991077707195545593515955831655658734515042348499736002817770537838416494948763694767375860476008831858677526007121947044941849440158989103604964478809243129737112129649640322514679849043324955390387396802768495021602665515553218703393455172488160426242726662179962323887284213362411666824782473243037777393795670660353741470430406127961402861146661507093007807184925223587761459821457826240030362403766833957107533739434713256915220392933921145560326225756047560254204248593909139437481535113368271219257090120822409571712075232896795104780243887146894936489659295392855739717127382784672242410543678284613204311712319789592223774833944610005033617018356679897769204006794885537654085957657939729348347504580082236616624591897343682883579024155986521590171887148113398695850266540544498058522397649187605697089811260608358261139095157026525763003724019099143144135189935114079109505884406690209617177283810430890639160267027588024668435249547471717749194537545411743701137085010620134302657163606575697274293849886979256815460823063868005453849092343943730244876158616941667994278888693035895821223735079008477726906606991177592344876362073342512142972152872403611382956220689145129215183074963912426094340846487623119524844487179795682182601870534911333305335844766892530299037519238511286924965806513543374096022925634976404997565171759691778787042976322152392953486441156109784911934168724234273065004004712185227265628483111232727347826931748558986256567602046750533928900387646370433288777786284673857847321658975266267855589772465588314030749762358205804176127348305646901885642291344794535634662621758514921976075557508529668326690458210685370525685674087487081753659233678809763054260449111935960410808971271204425028814666331765137387316642037105107529257473540289555144533477323125241999969028391370163499416239037805495650459421002912032893767719203897454549085662954675479646062392552052929984568289467004468754359077026389297046045901216162047582768384698560981882641542097616964640625766992740402583807436455674730240910939322884996762877398679475608879816221248062609708409559738333243707908242190179080200601699960699508266899008610306590877312664682210271523299584322937122117485880471135377068219938154756786995029718812932903969813997000606850864169595197799973503209303670444240360141014111285532819920979656828335896048699068154692033780357225064908033730563969530895083142840858216585175132082414069560247001747228356540947450245442752997786054651206732100533315378697154905291113000564207676675795878899851368906638053397216338271004496242647599151925554010916451200038715644956707282442188595833144948050382604799473605911070079837150459527665545574345514473490164192729087215051737296670348922242394387912599232467034216351125768952957932366132352257390623120142932583598880887117129899566457830069072110682335221132364030435398017271153708333269006721306807751529695843823226703131475201259495354901534487373133008828087849311779742276120288604272273054072570899585303114101386864793481864193341876676898814244070579063330054476814856856571068268788355334444773400727038857388194405080552899164988522040827766189398940163491209829385047326401203288386279869040571379686676228598009000942203035946084938700747586384219901232634370288728436097369959043395746889904549634983224120150893201725278309157488306714238811687847472480522333138586724089379690996844612638842604038204999972619013906015591987385916607080961375726275697826552735669930964273971931546905685877180472812356297079006185860771135509655894933525313107435197535793710619950755825433074732109881320676178269143598955161802287121007012652053687057626763505590191940660239919113922141961427319472814895462978321724904277025695799577323865709044342278331215712395540238813285538574350802938239223234498201966412629385197327881602506666597179362862193377655766104122387646517467052608243888073341036817835125147115146042828782177249384370555918661081047587920883377831795428639785124587514903144016639887128124241429867608302673468601530980417885086763310118119393998616642173635835051390156459687529565763364520146239438074134211816751090796399770613928108549496023005099554055076151850424329121269669381267888627699312864511633210289014498055722604371990208083395658971209470848930833053061204743859635888405807913397103400755654531395306796200888209053048984071312801792210685918252506045375719874074527713251675852264502522619489357072320183597676854587109406369051963797209016330852970266187534487936169071310955846040521119326746951043419075682133084186401503656665756139903982310914751695255638483519651617378812577971517980323473818151226841705797032190195306235581410541151578774406918065915139573457060805770781730181092028904893171422446681008086138099803885731183084829704500975414979308958232388072491306080477707434108818855232300813505735579316249706148537941574101121530647071801473618387096544722464245018564483380619331836163860901650197619116102079910577138593641170171913060696783374853330715311087371046548353456356499037091305185084839966955498006318697644505783789134307855931454242906929992185734991592086691080132222655637549935696274562720792905872619720694708354298388985795306947327572011384584507445446654963560336312282187015177875448962314947335781720723726534925504293788329114353857195169368377509589975001073799586074887010042283147524386111076479360496254217739119357403395921187964799210430274136529440573510770708811248933114810207051076350049283198524221536001363431927449986269596113548946082689324314171294077258371915649995975245506062278158112939736847230429547844515610060928797182662166502873515255652916483010860984874591471906885143264960541074879787890126019371097908790766291245575562274270724974775948811586590884915553791962669772274656695636435607953017789874570048938783905501819127604123135623797353892321998413821609805184533702490728593093432619027942787005417269913089122190062118927796099889179877037759309793950304517008223718567976641748886501636277255287674696358165926595384446616530567983909383807680266830627555880895863537049487511845077606127129338838502202370183494971305272945112046925767492868985064508338798215445507677706470109611250120347312657330513349266871191193906941842334285870713281970925108347896611210488743508292189747554462859862863607423920451816388064653552080879648322163593201058112134327601593408490729964780939790572638244273022399812235346194715731137629642988390894063018754694956508067880440004246422167631072481693992781454278192403769574806309640470043167507108082946602178788969936870864729038292883064344501720319992186676369627773138216565352951497085617419077966149172629617676355195500179035780535204421415190507238786359692239434405186083972521256224232984346622839167191686656991309439359199190056240811756817836585084613831425258053211788509655852929610219858843677275315688832211044068621946432149353696557729393305286905393808617858212399349681554099998876586408371446249184715238973927614859132470260149553318977246857370960255012431308520799031350173132836116704969743099946149126638110119696936032330235720699641921486053057841967785906932835319007461342464617293287191870522161195835028565445925816580993713860761815982925379048609827572356487733602577792250831015567024247245589538715310278870643547954541988762524286607134435962559280397475495802173042082332552864933623849211645693787439924570485090406901834716820278149384534737660513532845689849546431466831707156659574854505497489433422461681806550072755657904202599055384904223102903327995484890602796405532677813743269511511990300143292806293667046538842010772273557461690998085695399433580881670769437913986683380627486797594763378360904454455931422400883673138293111454887318148463305674571391094775393958928776600322584098026715614056301537127484042667776718968950733048413464438031206021418464522336410846254826205273477231439605820272283829906729369312983264943975325804267095007082924150705860530039569641661047130838080347337913871814342802124811670474459579221545334343166765072518585375215697615221457819016848443133487682298039904889294691095023212287633423036512383821173867716714278277135861110046569248870748783288369470038811258799136003608244618699314590790400715991574951565849095481379717293626114923051630454323430712819988037323313139810979314874445761140805294297117747031434537662984404356957238567917952997952221688768670113304275717064601932337550274178204300630487999261790572865799667383614362031887670600458762883909082739270807243524246483343302979174910940368336350064691166488585141959182574519523931677362741183982914334307672184063607668377624457958230986325729790232686675622070075017139131492572658298924530802571264840359955984745838286780131999672633048284562803645330827496113172037660172669072037715398078569210748568890040773893013009246477655933660949748686664739670168907271212827502823552898790977230506657744854131266460864170158300278051126096751976957409688476478777558272710300974144768024522939398700355529579823010895446346922454714015806388623670041841224807778472131333500310234924959782520245189857045387768904326682193779724577216264031832279864899421893570663477868511981410159656999051211721681027740940925425846471908756309793898774535849881376406112596905353157561675812058437927649906792992103707160762940389536574792301136542645694418454106238749852626112620715385187689184487319413001177009589807392593547842122148349436154368611896899048760398621356233761948165717039219311582838175665899439836540972060661186766997831124297847010394917957218931751829264814878708390728690887475837252582234091906741919625925798607436046489269788415104461025170315540048307784380508346285503690349952253549610796508047356088276196708366528069251938898123628965040200744369759273833711181810267259036700044298844132456519395720950628030323793364610054706565379161450445089438576815809567115836259927492261305088448801157307302339944821824962537381274338631636587574346795178614508610871672767226210630603198358030795534285684397871617544436187024309176237075118350890496030666815661309976450153860216718154960747510526746158507733609181416890241348067684157421459640175386162921768233741592567377646583383905555566203412557487988057576660419163837384786425904028765974560804295459542535900717823841482041503297160523661498914020619609771169717176065296231358900164586406248204148048326346658191017977986091057282316411991971805461265255601377765581572197798985089607423202395393385769622955305106489358520247366150090287589355658209528903906382359237364096366887962448438562148972733330154991304482637202350282258633037488837444387093320611920553108339990974274778965986671949261449521376815270547257163159075540047408262171764354560357599733351690338431696887535175265929401927376044884862640945034731565275792553386578669780034525383304648553265796993287239590282433396973117961043449379548359327337798469465056880606487593365960293460499442416470597513354863975018541497541529695922679328099781676455134994856378964753864651105922267247941459799637338656897953773481883496957702325570717886202926991174714689536714631466061665101243456118094550681775974883437811607249701951277895954583709651032914697198763715144300879999938992451139541637577829397052747994478035529368896882139312182265494630110940718700459570443369932100664708891515848359231815986193377746614369382059292300291510429420454665131120452129965186847868575661335981908655957187655695324455672111052622707517155315033149340599705158551453870481612420636995000044597308963423465459970377871796206109062887279881061771179870680779219549321464648507463836592496893002037297329396015826206701851259042433074821016816229002249115904905406232855229051297740237131445112954462878950505737177416951333658797781718761872623321981928377789181333617074487417889127779109298882838128003980812944272844824638263389266046878267629607514744926814848336592570332687224401597127171974593965414626606829490851838952463035785853454274181327606955152288124262548609812009061873112158209463289577827690144334830279644099649864963008196943627276520211676254149566559091787500239399150704825672961665073824268339305581929518671699886493168009880384548277562298180220603971280075125119282554259982731924644751296233535393807949165233006336811164530149055685031688086274643740313249767358771113036603583255748517009079174686519947246768540321366379808481582864197604997422698082143407946151165007462987694863640598930268537504236064195335253920453352242779364226855954256564615025163582849465791998986840746789809578634354825486651472274058337777708853593523622829480702203155640561935274587452475631169849427738048863240356570333038483327441639945476080274027804347175506563168173059191691956253864069579328651583322288059264066827404788147623659965233702242169943864146662749182082648009169174771881924033477758572541074147577756620694740859314664224813763785972179196544296835758022145424276455832757830107043781302909489476004616978611863466883227260158783217018308364359442171056460110032690339579463569737142165736403483949200964944376649972606162955431916211881540987159158808403464269078865170148314048282809872978271984304589206729122020780193743182679093815643405982641655553599585483476967994043193057000458159276849656468459441009602869689968901758671698713971999573866966518982953580000499440135399499336633427699084569110428363126212342732453957879991348505136923269356771054415145664363856250643376053122221465206066133682285590906605692995182871339966405344047893186107106040630333227676496401299487318193265355148883711110771413192108740349909813856997189642082774537013260777629953295016265531692869999547502490292739742434278192642958793115264978440391560597688720323625167667308162556015037880930337332734652193290565264285265286097798675031140353300923480810720308218467915341326253493565998610865771460253733663263438456739037595626759296753593129552134605174906656667096683763708633234837031044971230388211020783965470531472496449506476386382194209625005384317023825707101405567620149730638030917914234093582461308907998633416327764407495068609655148658860040384208659084759954712752228779265908368987621529494520944549894403143761751227737001529716175013577714723925068777274172943624447941302646261670789230793923935402599492282788919873743056751198482789768214029396185899665520162527561187942494628490491260288036265655694116890309713870495900194100327706137109142789436650251809781266955916016022659034413059093522881208201514519006868746709416645267197140367099392489254462151363490920656127157806122487942319245712807554943845553449151920627569286924371910388288218278815359746207465468924618349592374435374634636990233603158754894830962928361711457399951063843871343702629255002454203572520767943921234473230416019396642242200419987824045316595669211969883799126849233340122574511304935732776585647664621580132698446922831186524648375385592193361977975718671128250425873541458141747767237246795102909598635441468676351069954433493046781806087533969364440838223946499019633646005589692516995546041306409533483482930487787600328000974997604017105096534503480115622651260658520562155587874939436247539249695392434874353878785721649304152312404502422468578161517652219047978194480642238389881478544313274692683731867274966919525276392450180278651095222557262649942577979680277939908067462734604814904434368705204588801437143984109041419617704936522598751268430271402338504292490020105281610491043911837476304441684572393739745262938798881187068870763106081685918805052583537324420716253301705346874838283330159882724843839513811722978800966725487759146494591932410303166749379740167689631492469000197484187946905112935806925860851537906379629254861935340479189762270592963644385894163463708747096276215932632227417008609965763804805525147549080399355769631315905435489973550004117874823496068671534320689188286216538455045993945520001296819154841923731406141184739294516722105650555882116983437433179463242965998115622952203443196672704620591272064822520569082248305729890921896316656578552950238421166682663625965101523757815583720621688454190652752754378038310753009218733044828315094957469387480817156000877573065043260157316550352409323161601858693799660826679504380287809631941640812116273485032611466566364727882982160902863970558912731282220646798994111800781827928036400336729123550759294185515379792579887992396315750507127552166980213126399529104388917408960179513650205289585976176986362754198912732318602821821603875989961590729087522620187194498694310101694367955868401061725833897017292641701238577166091287416843384085721449587503400647810041969156217600044094465353681555422026514297825510220948155769116430786984467769200456471045181680056876494233274734951840780934713513804000908888888664942045529824594327054103347297794574690828805182635378792958605156804197735126448368259121382150802317717710559786402846482581859310395634655279295281079756173189018347566719429200005551236825881547932425728996682003528970424042002634594033267723597602826139918005419057907016668267183476356670902594487603338585976816401558112048599589450368403727257372363964350521060867815187881685609419245589930233377371435499088609505101673870554294369899713661751260173064303213521652100609228597577605792686980760780486843460883541434922542235319715044903470495414825260005082160174478141936321736565748899901763297554957294435265618601695288199197326593508082026662460819776086163531069830604585355138833146500114011559623210363153435567333627244665403654564657349896966196334615251152457502569532933420677428322431653289786471934737856801374108474034300895738678896326657714893395753411838878169258859373809200258680538384370251135084840370878617219459867896099795967764539258281758864994202049557982867413674205922408036781576666051791162056551317437179954453439209846587011434725598800316737408710680508938821125062793292398079368110073910850001986130471914656432840205478987131545316711930241211850707538813242994341392229447396561546467908926663513115021311235137577032026474125981327094214842000310982077730394383501905037569768279926979386583825908640358112245449951053104044638153350570877989568264259909600571888860166668113851217626034916273045311257001345995073615730698965579050944238808221843589321951342108456412910061650045365379342817091862050683735966654306771161764018723437634697316604690610887652209795663132853721686604801735606553926631311801442495732577049400781225303243494590273931550618503948571327700240675288621450703652482964716974768592092758786855274719573840193315017251731644842797384085321671457880031586670365889483623807525268183927210857383488596795925348744536003766510452272290610829754203886167700203945134117411305666051059102735171137571560956169157412741066807995136702104715690684715540825963291811815944156994132412423383436742754420054692747107342006652804171708082294078770395275095395344566180290819838070200302821410810560233557044058572976566127624092819545351427795468162113312812423113601994091247555126933288127846124891320017956907112552537712093939587672985745193298719409193432221477046985535124156839958462450317474237785542401473241760792158942529170014637032947520153056481742757942592163895135174909218880299540219404328604457076112553061578275486842753737100387235060356928612216185187131970425821764998391224106310484826634872423186335032447334209634153487609431554444238145970038968256572211458697413806130085304789773428379210823110712892182675138890125013571418494228489875609909125323384071704665385574239210813579205936984227466349603513514847816946509132026139844655322936296100308515088565988595543451210940100732575707382209493568321221716483067567339032635216878203585026375339753246634712437911013585391252018609665449088994030130539676892555277399791110453313798677025082695376231483146306798410892572979465904008381121251437777058514326580020365186003240040988145277794008334631596637458672176169679342577782844461217966624905548374643802041527377524732300317352026334434668923950643923874145257102548866358762664368656324112251282567788620550806770695928121219910219220864485849487044364858098198515520823573782817652848737967552237203523187540939392315333712526829780872672794770569477172737865292619758487743866034193468894275478312186472029857440573013038598852983442947948695575186781470033900984520350291484493987950608785537769811636173324518613284628481627982585036508879199447035653522347534572658099084546377580021561619726730840337421797825462757342951626281374639296536264246477949153865236913443271806536397812564791910679127393162510051621863660414243124071193610736567676296856497134559038502470439075070180442423989802331978386997013419218682276861594823039415858211885010537842047529305336963346563293863432491876432164920149635790256732951285470182036650800427642488477189324300330428158860180006018242617849362047921230107165828898647282930661533722233543665732869934051480865921450703630225087181332382472452685548745415274531215532633499154137142489887462002811819011735976450016149439478681336091749240876649245332795416184874298591218138859175051340252009231684905795666699266444228831937768182253577726818729934458795111923021396162473822808128577965297642671860460497264329279557828589503107354290787999950930333719371763054836702991203313205630648948964052411251174654373265983383310214341111811216516296471526398762057423920068011831827665521923903387803767636934454541364257204172819051076257653586467369685581914444833744482214728319796674329817634704968424822231420429939022243488254896373525068632463765835216337686011834692101745330654734519182724307014327156106928242233258879270043984037229087582281056514592980079085733080313963214956380154026285119983873702801588230626719168792836234164624727384322097273672094750469512424717990046911557130429309601869501432189948871534014379202513865786504784347860671187481905168205356016532356375868557810434850018085343541263563581501400023286425328010214428634563603250366598282434812853228625979244564758296096496593290942773626095924684778908878766775697152763290238929319554188854238825377115872924055382190012290777235880123325981173445749421580000419188491340350290646275983982177900500882790910819678689639060956777682013425183862748750628157305072240563959832390089568817464157821969119698593254382842871977013496191911662473821736913920798571976656977049589416800626576220992190714165375219368297426379661554190700767150504702761095502400826187543197741065584685356137164747821517601727160319040886085112994839470572248203240292582394381509616598434549562875506131996034569847362954009116138735290964641005079840597987473799012285403927266151622210871334661922170256406483287990821890851864839348193915880812729761148551671244015202335897124646049910696369851991561283531439429481018519125998781830079562941189183830042085628421368021970038758233170677374795468654634844035448763592269949043200254945764741363722203304067755594182569182943228565412152732352738829175942700522522776918688954829805042736484235277552615452178725499336224323785140628426332580093924047566882297945353731052715067742560349117754524173879392379483384100903328351711521842619483299446178689745297949306956836605498876455146268564502631065977963481457492029349683428789525106588135729081141035588061378058717100341398157369122634269698501151296062828404836976961589959463355398006711564742563470844626857248575726399228416372616280347418625130060151898466280910543826223767943201116221496412797152313408691631991677297888704028057657872828608788991252917304527445791549856339790502717564245112075565664842749528213373616930995878496613016549656434721554658018442373229423284473185668378003706534370534630022552892264919482821323095566764864596895856199586589918949004076381486847530118808601410814331276856739272176019751616306875980894422738091622961178504583019517899696547359507136313568434445960612321416657807606018244725550482811662903761652952383446253224942593689964534329691396009404955726714478790531520604554002572604666798410764552449258845336248428732499450586028166686731724056428270530163444693814940595666223863519587160689935348911930338345618492863083122206159399522803997760855452352954246552518253046740875554110654656184664189953879187065579353983759297904326691699742175337798816150907630370116936461877466571027499491737421794790844317305516888835546490244462890134167490802255140023892663038065640478214133380484822421991626564360237529638980172651696630495794283346061370877990611141590855614085223790837120215752404784762957120717083982076599300720981853378424177732433377239673444310040246726370475758040558379259250697495706166343485423906809311679021007576654462566442950066934192197892655145012600688184614682665677380647304002908285883407208461879571184058283243886005450670340495817474648721974730837554965671893667536418764338543445662239922167220621621195898815014492381178379419872388686565385665958990285918272950637596345739264114719400341823815111753843370150244063820868334394265498169845116711637573494359250377918828629845636880938932457878880765720953097611192312637550021736470435577430625177149245085278420935820455078004151217996850431861890139083170030640323209612097814016563948210271354962451463039446522444772229719271100840283664626863814485419456800142193383713655674255453585794843888644345052336874522488594692945825526631363284057090406306573129894932976231993641161014306847962099923395247065056715601283494146942067474459518251398827225490889131294689001509285711181515399323934939770939211852753490357093422308479270372521410440943549528310849707908474048996231304776742926996484625683117906617384139333542451713644116711760239846114205543769706666463775818208058384899210434509067286034514909691351829423504141419290577431098471256430696190642483721941595291952535341160059076790047872785037301055839479205653059887584036976825914440989384900586611561465994133967208058978569942997504863840667739956850418317270231903402785796552642278137320166788238482234402584626762846488516877920674361272369742659689550063931718494683278957637772379860658801578033445974424088129049456509721027951873923947734300444303501979392989190999335877264625064694585403170153721440830259429712891402629372852647528914211624239872212547109073805434342623190856213293722949646989052399728496273056832784148395925280690572502803288467716024988718594689393533752129629029643265551654613914722505111351483439624943479844963705863861593866491916298064655960413659072933281452456739280023751851917780501319406244589339078169208678691185835963716854115840295067397818316823369969099488493429495911951409586180863281295229604634117736943419478663206348989817492197696107974385112242599201178636265622603394628778781993292780598309511547225485073629891671943018376102673158403624054478305560613847571867330350510849078471038264049377323290581056022584296425177518963989713257641047045823028622852276284111134005450292805248002945431288124440009949339129923254564712051102862994132261488293014578656720707333388079264229684093048240487121608865343965617260066060437245780419847123661990281545986009150864902435601701144490388805693640544807169814664783821021795217809154632289800969109013383905167301486525985553245728127676638282386883327580947613766237332949319258593284445605906017505134099552095977523369272166215652767685646804555566084759132369549775873030259752011095410139569953113046505755826897650515487798408634971074222690972792725104639868817252970317683166948389654145691965666689950925400047218960177340260268256502709452902228906687014241917386216965754931206382686842376353143958741626227413139290687023512334172981767865081904127518193751601847924262422921471688638766671534275790970282478572127976902717729779691416838352166891217407087987255872985714591793386220437662734458628682079937242600156968545831984266409967759470265361858087479736187466531867393596603686728471421254164041539986481955148440687383741085021387805433562371264402650778332452118857759714226290415240387305243427287082151342523978414561988935605313467350956555733346532856586232916309761012372933042554255366977304175407485599213920333081589015322801545463712543457665606443213215943506305709649410825186329224828345516249325073001109073862097232647463163330859414573016661249182697830818030699619564687354353777263684522108401621486812561588088944965799456530376230760839529900255244425959991776728860700921537396964541220437355362884160565726737229989824995071353953701611882646242451293157346305134807762398337321911416285830691379068652688473878402147847115897444647500989946802919132017424274301597569942387128156334185093755528844970390844163510621633874735214480132647853247184820896160302949981590773227590447671800877493703802755422283480817052997145173642885675291834489354982415104909305592706694216949288742914081864428787484623721496944533967093714155868063552299208540803530632609402994020317553893971008152217035835611402163090996855178440691307153083795523434880260028164936777634527705010785783687603689528652162787070806051698984068713899080093956446609110079797651413516831698639442179445485027868756812071875705274278028184231180586908193470333699515016746368358476093236543174304314393642975951985172741786750590347095383303214344857334430205829604723212121895328083555764650565185426128413636704911060387811378594489474548373858993679727320089582989206896589355728048602830608323259476844695389489376759222394641914416147329284049281138100137445424449739429605470662485036438275259002383903999694388834768898344328626507531087894073011829740345304054799561813540194453894768068761773003083933622853954065902157996935541507674548117111801786791654791604657072030543056190913673970549089895089771333335775519635767058304895720613441904163518657520249725642067344517693329211000895964081391225446227898215253184939796901290021908282849650618006222955059935053277165894374379472886642278502199497220353934828062464775580621480184287697176141921381154762806482391227349307117932152388654120807885209955529154403172653817629732358239662610683473281405316744458508298109384936444626352998670871629889137616037032211270578534668476236078908224903556875782577538565156430926073465235687099720278591186736132598803506380653249470850987298320422121513231252155031482869589795040266077028886806844878155533991133163157308781594842828317608052967920895618729403970204545494158119398210269191543225510673499947760084944889782887431042058501782733163739917124659966696394983619941334605451161349053119910773891000497926733543289450158690277142622203563067218931583269843131369793600252180798746728339164880044900125033263063549275115921148677647588080763447713357315427663326174108154228384035971737229890370728372143568172822126702082366172250516098863241764209082162543801818601074820667751966622323627651980842312788687745113156456299453058647985168315322225916860603765144348445742175112094147223991182374089704960820467963940509913127736998856142163502544493796372777520075932284541307421127388028436716634327699696279076636502612377489872677790623945867633088329649780124801099944926176074694302614441734744047857909287633936136730471383749893440346196724630410191421727871330343981599069571658611879308066719837926339313604997529791089184383134783455079932222786904973753015551704194998603831372759335336717441020358333325927719559503955154094828848105063443881555911433475852204592257148682955775010632878807556846092204911252103809621109754864159166679821265652853102350838409889571926701626318827456899201781318081841261418544662389306564439939172423856869875142435536207451834829644980264541952540987448827602080888469069277210587391812609651026650417591028563496477886340193935445338517101304730407556963539359187143219297677955475750360884094413584991914961481407468303274831702123668674013018700717662309234813062814208710976030055640036473752721334026807607604562574991593801657693112114211335129663103058367779705171122234695458808329610450133502558692954504271796994718482760539458282740769383964498068610915915616914787787713792680647905747672392633134154759670915838078519562361431928649538822765945221832380016352925471917580383085396988456926706862955685750993340091130712645679883172745967326186528380131872492465866047295539621064575770752214346697462973064740144253140687435267564849462941627386309243707359144453688182243800801441019897259665372225579193527469054937635094041232426594099577388999641044043575997294235026171133392866156924095170837323401059308401373130794019299492368078532148413019344541180285418237318688124437319232465824902439255173999692247870328742872339514772408353069120066124999719143231851144540925426990157634549721634761636336778275848387064759786458496370452621333015869535079120231916944219503446739517111508255505169105421958626379932492941142494872875546010607494199185617934665657452550315725550632624369782807902067081658028310109502667619452762706376329390736881660403823830023139938479878053401163662443724223231511981303787812869209417207065569946381344156944728653010198703680948684724979465613551421590388804133332764930300394150069413836814769721021017611145940477232211032074650215487331147319822692371713282212609398947065472026448708429044927984213217390176492628322859978535233820494080628779900612433846026062668170197218334395554978683829118843810836007730520550046301384770139051173667109337555333597976788834787621715211290124757391731043850813923897775165114409116937403548136888581393915385127135691649918013802333554731052924998796800892557908593254493423331812170699500608702691292976132845330321439298024196143091270130550901531046848950944465930903676151717532588178786929897343149855024671298446925659540909091827050433767328236798755022189267998838340268201100647148685046802643619812834730673466662878466187673097987020266682385641435461401307325461035519008538369205307521906848845756627150380858283124082882346590888080120027915195207454317743173407047739470181085051347952410749885946141806801238278404938399514903999384423941052363589762586798367265951987032001945207987621651861611115133515947208053824315193487248726207692602096836843758683157204311217649914713953872164216199328906468295400576773021743774228984530652108316208669555322427863969068185912153476586001966593305800509770627024174574454659552492986178642813026215023257143292885489377410382427747110542218238865709092942480730354833701846253394734254124818978508150705172356344538285672169820153644418171076220724468890273962208983240499043906606090873947747463422034956476088270604605284950354920426386225849809943778061999427431425237866563075822068047166822170879447290308819700061348040504968724444791434994616547188979326934667944987193990506164568858943740468889041540708502004531986574285763930918247638062615555735114459332946488747910755690263974529757224006552918504583213897735636489819024456306838801818064111968696011579972338237060810809858801004737134608119332743986619932919413768784451038486407315513851237227539680122884982358983342522543111770013255406339624146154013726137858052805871911718681882825615547115411701220330389365836367004769134785214728211005128130030412778867455771920328883766459008888251273381547344882387526240228940858689986132657999151316178157303349434036662095882642767199893412342600127169846022831802687859598339005291253014347077022979271469069753944231489250896517867758212862491638888707844502987763119240955209567685204299040580482470866339502485886205861072742291025657386715901221297003193936504541114877215203655261436257147131267364936743392430422131452506318707376326758884562406716320961769531290747285087790849656262422252646832108853831897377644664493765890248513767146303826943074307758850316720681317405505309555151621025739422295705298821122781790567971249699308149869972452933509763662946389875425616421767996961727730516668785088306932235023363342754322233588687023129963354242059690530639975859346506120225643031911384962968898691731006360219272309547887155713204111422345097259166149134355168629096508707041828129694552195987544370786416167907894690800718730128970487931826003217709428671265607651559383905281062664196487056433996986333676642822461403416816765652343066749967464133447010868620860706449816454705250038319114324931052611803898555745743351855552747051030540651411642774887950653498181328013555815638655315450355368828783160646291826100295707148152362340152627728775205935041529876424050478821978013940430481458182338222331980703990647632967147459358424096188131211389254698965870277045605629406361480261819750769891313851585538221826039302290005234767271044028390122495899383136000500434359931166230396544589064285514942362483851612687031302037689619856756370344894260027654888978944057613253872186343009521549900750976074956131219668548134089963320197116335281847455225725113990614483843566277239190416059524684288381077784991275274450031939152217494446498720136413585574719376971124481809514641841133840730921935036677313048761866549106942937919178657396613433810388887644810553141814691394075903626087034244176712998523604845680354784286046761693231111785604371215182502657159867201590640192977705840364335739779756541989339255320835446886683477327732197029877071472247271526478121243651342463526687709003098615294732771062193124229221381448507534238599896663721660319271451557557029975343104751683091578985367900212087645639016553332192181578658566044324357954917482615933506920071743135510108236424914679979695434277829558565595576199899520027561331816826631043063718734264659148665154749669257287617146974473563813960240723239037144650147011460367817937773058507543499388889441225122732668330409128338935044230410170522931712895363495379714889237493410405185778498968617881043248905921973786997951014381098945072605590100472728523511861225037665306421581331638734246668075254914335626599232605042742958848615853832096122599415163265104268829668198822370417813330875628032844376892474334291826715690313696894788673110746528908963532457161299473147021149308493894464053584140247705402056626899184796305966303466511464680789864622060590888018896961625385149387464638809501863918399927866808198707296385879577618818849873857377660864794851353403765527161314895555341226017998726595172403915690751568226167511112072217578966624470177810139892278727167603251106700406345473749773089130550938237770313163150188255532779330642263377968782839075616374385104186351339212204729564201643121005954032745593616540491544204434708833509886139344562673722642455664819951420039013464196037196795830584358655673641192769131051797135434780653711321531768992064451478929660627927724367412692922424482010818255727933544396282009675870389570720193950093362745584020069346290713844537238968241599322681037115981957402386203971475119041422225521844168330110299435564380303164459957058587316086852928362079434792750510812993213249335190710749328153332079321078099614946545261265847882378866881956500994127418606681200183097463412180421252353441103792540299635604417472433998332593688381940980376387375338923246573225445205948683901910815899174769005852358471391782790177075599937097671381872521726959294965086030084938840403063293413072187684192616377890292701439949561647784056130905907118258327865597700448410659750233760374399143256879502305786462200306389678678368530390462235315789790899893811989575320806130121743740411672803988809104765855667169719192084119993079428510962917781757198794913630271353588846959974443021604841006723289683231876882355719816234087658902027293305496923611224193028401666684846996502746518283877933350965705764664704739811200456425228742524912270150947458808866381653828103519151701733481748864745501798302994223179566575008489635350116111890513671555317695080783132023828215143180030400146879660084059576384375817355257736463241571405677343961430669323727039381151382971781506518873702452955749439149707911506206771793167374039173028192569238660040398886568206737186206418653097880880964966226607713448895368163277731596015334338649803488529881954261224688832292667660466813003570551222763897874613046254885284669406721964280425161494822668100367919020254753789780641448508300788261438158106816944266861156868363298012897344520632859554063155892066278654376551007372688589826653372221613387869165733878187201448166301655542853931995943445713389636989698475942686256592720502000954443383450817374454581830850423538379086716787357205709493323900261457368265187432881243604915428957202435773744117419925935520571156056308971562380238108297015228462046172450771092052888728811616427157908024956905666136451447967517086981951240297441749989017803574432452741971758575755241137631077319320257608149302431246734943174788662196910573604911803055328375225059408953549926493298359100474639956391605014550375139959524369817455359436919066596529764728605978048057419754245968108064426231460041602424723526746591595384420307406508890636865424016075712206973585773667302781444880183339912412900838783005391556777904095027738388070497563114327922187043439303366673288236780939386528800884392308605871501497128579535986063197342126698007988169749849538230689975304420654550480653362085886682861869658777706171973806517246735197890493612206469939405786391805312133087916403354410662018119125628402541929408699360167158821075942665742755202703384167331734741101065336048711077055331144485750518859235334015908399144364840139381330025182306170387823138926993435150511628187289854976802028964966167426403845357080678858186267160514010117619471688545250105276326677702508418540281992941682433519583797432737768149063051956576349318474888355468125895654687187413083169057759211771743577210683992908423375604539060686425450715911131578655590658770747736653544661785238235341343099210397871505845257106782566916624327304617621048928292598740077624111650579096389244071309006522246557866054323318292645243376694030166141975412886180204475889039273669634245395318349113902137910077048757283726942570164617844996759209681125948011890848153489238805006743690445449799553875357629953427244444091144436316229813129922414892437741826938416432004522682335128345438979745883080911998743536504426916009239315841744961935685395783123575665547515991971967597205948525245594308662510339081843964689534310285277388485388631353141605593599348585968189066059041614479834902447404960642028241656426562108433743978228428027674546794142645428562971646427905605019853018183823859197635023685680240682996940770086861276110314112759265394227030227092535786681488979506533371210766939740732313043585251787772860242083593740841008006234393731821034839333913784536659897221073603493596050039063675076156356891944789054753823045101233475356055390910515819138182517209840874445133161152826993049503991461186719411635480213069100143187449645969213547921012085666936199905087140532898082800531044741923883006762907116970811223835402995990059689653119314963801260667472117219761988988213284761233744062338017244517886918921172640004728486533236540137030652652630289715610013492283855314241876842125846718967536549303324914395478749229028460710974111807025449123521727897744701500295620282486309822085984681591842539764312608552397917177198960683382008509727328890744107159499221601145591143122417383462619503144858827687484062459878203696132208373292847466642861594464334105977372610566591129378571235689566367037076709662317661021524470460297423008435193196452331950349960879023541434199377134145994956077615099213829029670713120848887274410596333744083197492802374680321976165076744438805642038853352393104240416478442817071068377822335103483058508596126296310958016473326404946386772019459143878538478971625657656470071894098670207541667315785551581477780541512657388211372518001389724529204370167173882069702969291393358795259241772414090969286154231868653459435713702111723748652622696287649011553520819835811502282500439350480532674080745355426354454383142749944412432328024215976656454638045201282527397156934395439549904353770011440843023355529483550910887859214381063979163887678176201098650114457895697604315119952336641171807408779853987055241655688406845517579784020864077830733763098532038565569251709839115787979734305247853843874345088666302463082739520146610559806436849695765435603892509009521888548663392452883535435937521316061425847165927209337989866220826357844540037925107822036944838523279765995600559823046863555712071233588785906982208743675852740040640572219561420164622676612269511457482291330475003678207569067612767804959049364765241966905225530932358569344288535318026717348499223990802612247198790506207353732913584136361037355628000933333274697689531192976509982296896630281314205256321861724290775698657392956955676786315821362563179536729812049027343702521183689255817528757631712151223257155826722780140676725325314074389242169015848066279194232224548320631716178818521383873888800051664108053865489781890949385177146932407188247950367000278012674957771010415495281742165517111442311505715982309396066714603424515868023373610851622001260789517722250559999998178008252327451484895462558671991939489619374501780474769452369173087163486160443640718762717083177630525485868140628343424598997432850725215222950950881650920228344618543299166477014092696753970143292373814779787961871031421973418159695163771388841498178944070816007567078303483762691729267484146146426156655257293906186927917577224703350208987055139506464364298287398434824031699872426159947270719095840232946486084886319982739051216910107127745777169680935510383672348909141175205879276471835397415907701231932521993537874974192291499794089834642877821892695143683002710051009485110030850618150556131375098965347705231788574579459332020541494924830435937590694043780597786842874127430046241999489765374313128991317927505788107595330520821723932390696087721810811844230659583740635923144482243336913312656943632408004946163046040793323175576350475062508899292073721293391508197970984228779676070478056062893480165274173758837882156664453675530611946473945795394293301641677952392659897288960430810911160565304849058387345165093128483654538686373095557052299609071042354169033997193432277410923002598670492477432605400047409344055634996913215508505699239848358944137076224652584988458068946954270116906757995976286748483320021251579603482298297084263240543417849049617008823343700225405329180163637359032403454308085631015632931757017644420037523148649216136087346067062166314024069159167174228787211369874154375673441192867340190923941400928393967794568999444476166227457867794925657393524070347268741033204392337576577811467892716737205342267829543671700319566168642708126720518838369044601041738051874150710832733527472982468480572329403628778515276063962242060796098672112336661401220354274091144788570475515383757532298721597805738088565931321966446184081125533208459632863905597619441802733257503261028568450480353553270119432012674226590946438223701014746666668036512976622715896020098224114258576829575083682975130729431447111070854055387573042979715663176221179099270641416702354537162061192305446657437366520257622675725598840049033628513120668327992432786895635254001286466532824599666958109284054982407747439282795882160604206562039349301787760207831312632690559765165229657035674088260723454617941840371512846190675134602170191384038663508946779882081069070763956447712557783581614393695287592589154301931545791973686268709010622251113007758073772196973963245204149223906405959178113959772655480237411933775301345830974582598892136567729636458970735979553005955966921287215065418727631140731510017859066922647088784055729083684386265992457474750526311749815495710937045367435695520505503928442975258136078454845445925753118150310067870241517042743300984187052429350961216148966632909158598954233913058273796278443470279197358323435220564958430078365179869280205392509982085945072313762610049907054420854116567986923892308475081996154932219949001694282174882099691132426460051996748257133141827834446380709149714927154435307422403088076618520478733588760333193023603465931710405213543379037687484088570197318551620444608425639584410523972565291076484228251418274774946798299978606359337306316898990249234750131628788310981495858864152566281763500019022754924008281861396479756579623794814030629721834663746086754194469199734520656811458753798023604980155150528382967545067657150106549544585973963231298318398871742225507280213941150910820174009862769927668529968597438120753726076175827004965042246120486638282924629117347811932691592150411898575496401817483021275004467195260640185956774678310938140131041904655795159536137475060874455630760980479069962540397039422155467161345492584292309812568289507307994661709116266047189735207163746833053578763700204108659967741315575934799315757848664703962336921941849344649261294954106485667191474897083240017880722760761159202461802913299297849482603798718482595650921970599315807723761434307819669943908617551092373605473788209996139151659905804865840935335511449991782757145688769725595957818491489579199478124541165258257684293216928911080608102105151592700545567473984381217374496384217291985377944579945203088980815047454177472842086320388363203599659712253510350937067848609879835142584094056669015603049452386932574567272951038244899025263276657155962865320027617779089924820685119901087885314467150801227596897594440079201343384138447232926523497062518252526423513655535957298583317266373148869082196078653611423991550746851088182767703719196395290935331950571749759443558951013347835618351454658698677057029067860400367990246945462868789488825689570772201496941135042571955300743687564454099642323510495387767762216810512944002716786105507462811411993636526976095914378951993842059411000647196667599202796307695029818896127192039208069627123609585622608076794597116221829732969116189100401517644351288594856416125168602022165273147075280129054658539717463394623760566814659929504628105574066160357513860114884628178241431829177927929252215842011744823586537963468429864128282911469377562109710899455297648861383894829145482537753888456905304890915564725098034863381998290855821558323100047502308560077696825273172155261592144733363658245802605358188890893659503917976268163876102029895802935103287135667421070437283040748830274488328299082494185677475971738707730560539619383472301839398230039427135466544098829597379428519313651293154394536462876347045657268049297373786472847547805557950613044990772931185479673250445003756255124848254453057811915881436179346060296295608175405390190275491026070340010930806738170342035121392368831940795788265525503406214583023365131727257287237925483182090834894437314454054376481533738981865026896220340564120558298967380087477099265288050225639020254287761421568887077838680217234129236477062764797461727878786174949002596978521680395876582528349138746951334351086793481900403047668220884289921715525550040929370377293827352641162903363004028339429349124550160087005658758964546380630978469348235607711166921122410952435118097275505941529066182808790106273663168224527482602604319737135430787912858484041094472441273187501966165166597167814643977699199636866170096583277726446251913204263487877293901472414809997641874036848176835443681417908893119440684335178763388070999136868483825537150360794385514439402621100778358864038711227291841663928790665098803926798026267021819046731303134440016740665131461047327693067811943583672275426703931586470401672870708193755036824840457276216790521130175776659665981848391736034081802668829646582437526714780034603886049009876648872703266010140518322976394259913209121922891319729895162539601719135413356723786269103352623802281116200615970710756350151517760729311666965390488945317632600730649203241211494915542430989024434893398560521941893640090315285186580718899623181676480781417690182842023950840710823997277407416524190286474777862501039685692512543918791535909858638996918555943419029625890193294466125052298845638315352228035722594288378898041721888811535471395879177609019059859797176512279085504905797150696825134809107877768591505061783645015858594282739723457283252270647548489747624835981443255834420304870599460890817597867803994654864070729951283940277834888044637643343240301342930302954236597371513324544213149374376029681856776960080763129128567374539241404576107911560864788727040287425486329973844766652288409470747075155086940049922940779778180798381466752600751044673688727254026280313508680780899719223173344488311120121100271623796482177480971654405860510403693259910266676744076314756285799058397068442671887245544714115459921984412979474906195284642291829805832551798501542234732186353830460154720162865971517250850357948183640188080238621075191951799537943319079050819571890594916754677642536592654764834054052314467500443869899330711635414780587444359270602525277193321743524746799602735293820737270341541183980957931328552587146176858723346803900915682122473967950003504561965438480102533457952107676686294228477407178562864434301759477720242656409741284783250031743234052289572939258520576282100801555891418910313489901529272986767301376555494055698475129003793447941035446853208175104779067353263536388375077120504077135971621566359090773650392166739460899292513915751429761826595180873840625483734467530740878897997872743881953960529240558511622828646327939343542647135441580241179594660994831626704163701849119647470461810390090162201401939576648440400371260353650467323246696180298588403425513811218234906671415803013754009657023143071237187329552344810871212017611808727396223000684173694261241310336864840208755279423972413430933043946003989378213483255304205002912298351373722656739274483545284952696088772089239711813701237275353079831257442945782641119689503988148755209023382465946513199155515188369850315902058862336274956424769327920655344826102724357791521264018875327696794286877557292974430739732350187808447847746315885273317737680901519643517436849892511605998244851647849279270085549242168398988396516590505752806304848204877566834981699428052065028310046258495594123076101194155568058090313771001670998053072068513657667172002306871415005156939914565043598148513023619557608343083420395671844956475532053691234820944793693370442665540208837383782266325712286005070127300433616279176735331555784092310114940830177587473614167407914242777993009952942141769417263901980620675596364248941894503184354291133926074584378253110669256542483912907105217782133952164889308592909057266799989336803319415831431341452003393107940906248177535966684078263686194449261055011722576643217282394935270114160041274604849551731805149460621319932526182457440489221700256427121829592863846087882313022685117948782750471376396229433079407346079120818212758121561793695754964432565835723116424216296364648005678745005480200894311551689566959393661788974101756492065268932840336685653494068968973726072732200594159976870797240134581839467417182627725088376979306345647474526224898409899482264017907395869456735413465065392319731036558234146970042049479603108371879278114378001801539461431555719627773483232996355301160434538588401312908841937365701830955146434772903021206012742069040969610760504751022336755162835354250413785366314934987896732677049804018831828416789867096067852235121574808388345860694315133428653882178247129106784373428750067901074938971320571379695530192144244069365922605664066289344098236945734527278021977805863818096475009941787045760521394853885171096344426069378183524207571576929868861554017275125545057470259048692003920792119177370085361023617823186597071314915259060192714101536841382960063968081048271568189297173261788983957603193983674411245735399070140118521074432354328619250389379705256899664175906376851312729179281947349244684979282789607717818125477866906408237697379024161945676362219177887170625929025290307667132892173088018681052635999418684178958156353137687481810463490818655533636974298439845020538546630804913838283085833356522448111861083181041537465174719003944160495107209856356405864254809240280371433697012998126238725583497574443326292639396790445349735711586118517134962523780729147917858477248844397225850995584291020824921844460334793519632271150349581000736129528148012863630192083865825370746070293549848969517319441963333178425030381977357510263043146774384890556721693036126096237504816439342554247536194770133600464151878381539322321565339370113212303138271388281812406192569348282505911002212581358378636114019045402586302462692735881209275755221664629900868110034869252152497314365033127902711416894375736705051596674777383599349442559363903246284309328440727925962570255442394880250292072039432898762514119239927271592737780174833773791913838643918337711688018803097637661095685888365163373722803493532356499906262442996140490580418135246521770264886490889867923520919279901974467100617752851025272177934019063790909861492490707843114685467721320681071833621427093606131686510516356159465083168039222516808401695654700128306730497667271467151587505191103064060602797561189335644943760796128687786605624342645129339915797537652225187550418072443421567941931985514707567444189446647675696782191880882556999988902263190598148198178933496414809098438503098520315498133696674651888261851025457810408276773345581568146498896648321517044637294910716335499181839675634119528419733665426790449331100061206508298192876919233804079581049845197971012098800518461206742539809978959480629912722454952411816668657220221683145652234003280264718263215136692215241680510833717392060476857607528520741697078692473651565660007954588888850330489651787941074399654873763197710147568128290099527055423395728504819523024098524837716702308052850365994215530292465933521669612712076134931173581182904206235572412310790875192163285772463900161249712798135105348559156582243936698791024262437813954293786248579458785225135627693175196311308319466567894429100619774347779335435174040536150478484324120169294336844500015713915792714928315379030882950502381273050356033200882644359624497742506394474292714108663983842351452574590321227887898070328166061857212822760188865019889138288241232621798639683185525606446074163547450640668796284412640735735729760264958185275570962972962917366370579347018131396009423721578884365621037456463294968696208798206290419102223624236069518617581708943954958183090608818085677471137164198977540832403498325057130249311517855263632494338888748521739453857960554851696757791544646762279768768478330718110935104866162635609586665984025158903832657465179366050722571512075810700990887473305956802670495816258282434532095094872314204962431067009048775735469842386725350718678037367494808115094650004429280471905008146040570605052536168781861743356483679856761138171162249322935459712912414449429707022065750823806623856264243461850848684984422213582708501256939681532981400592034497861156336754721194471592277444021620440600061663495549776634449783584232137674344118973369827003415737676677418194452622133651546963228306570211377651000398609700406885145403470008348478573700028875129858105374976376809850654414646517511574774215524038942645610761489206705528790564677987256256312953093549606740917872806479887625577021561585202213809196310912169484400486597231798841380108993451027099177660472198095916006955847387840510856993537061659730871909873583107104565307717556734800992781349358157408102404532105808805239100706180550911437834020270209193006591776722751016383098234051291497878408294505723441151890574439445735871328029334282039593071417529485143458199651617065860105354322698630640607677488176715123169951155857077637576409266948999478792180926319062665531233024977353973788728530349746533286685692853922974252706765456813303486633042095380451410878308865712620355099884081818094088321781160845280006217590575948891575140316322492539680506214645780080048198428881681263336161982574179774014127039639476988247795333003328567030055087965109104378522633548602639574560223003587306929160063558919415808471580855049715691403230634632571166791625960953581815239460768302272650682056237365930013371895464428658913929108572152942812339820923982936968788481625431420971584820360416982021900389600755927355353494535596755622021343231792265344180757419109268170836855246119270459584458123978290262083238052585758102417793501788646833039980696867011889701140025119879753119476019547776284233393885674726662183029948257116630364250215027102374456800395909146764422204831047757613316727325902433306131909669612513059566898331015319964782201254966632360846350458205248631618106587874654003715440040733282529651900456901445118719709057632480545765844764879980835189219955482413969939196905354584454123238264690215893496455854627856487166139647232104859504328584248098894058238992430161497504935217372955812305757549538213481229380576659270657855009604650056745100074199629774558625484996683570357700548218080329300223511022431797354604700490979146529959732393807028683450533170132306560333850904548321553643782384828152380583796790153172194745808812291872623146162134311213309575029735387562235023103736233089130210819687361006694367296999425232436559125054050941411154408211841908750618585262400231779135506885296418835886141389714898284942682323770235973621037219705999915469547493828497237198062413069833484913805789571430322692579747095918944413806835919205252103868882660475306481215579947738923584485866580403712694446803547432083092007416978502071682197119894469343897329633218521276067054440219173933424515062341770669073107073331298888041272602535335844741523880154681756034955732872207493688578856611846847781419276525758966026213539681988563963362246161308207371436085483502610097203752122282978061790455173900317957800728044443853616683979601320346537774561687226929147223324531281612490033017407115017672086198169854551726609304333407851783458322180575257746111478040914864141735242832953253276946453226435060751673292974906357778745240750005557267515675746875625448256508633251044019268403051668617952390824643227584461267131409002805684337731106111946296832194821247335882349049266633393640151015528257675421886829743141202972167516686674515660722637541276609442378082658446603186267199825385721634940186982239732994975760696578427624863066627940557876056281177559157204245188143202020623001522035324652696620167237212588394422142461564792110658013096107916972483718884674114516966805009814616210707347030178826495408339417510776464015881778472116610200789274415785328887877670170496402334914858789408119805361296263099714099899639895227165469308683412658834237175450436583760370538099847232920522366711614501957390056813687890063399285051141741739593922594146259880288702208814084997198391137638009799067884975305476981955091156574147523180538494537605204839053321955706042021652520712215164181953866095268838626306916375710546523577076896483072494087187089208245457088346343094955897569706469120108043867506786145227544139029127749074922112028906994814516772040905573297845813281097755229844521738173859528417909655161353261671645018214972245960534379068409282132980163662994349617793589440494249512324909185487362349395883803433684152617795208822701327514781368131079144686855256930590555012087251646345319395431382328944347896558957253535808156335076646467101163398923342279671013469967291999946007972801997772020099146430610250309526903272143870038033388124745019878816460529488923747422506127501706754287613276315591238701168541144627843317140418147811775518687269725483110324597281008602364949519610938504453220964270687937290145262147177452241953641718360198475293248489888104406545195427151499788813970850829485133446172426963181527486702540826306368808830858538922065640879607790750482950732693714492644323258546348581577244662666916056134907385717276699351372637318787972687125997828874346888078233650219663728556729986511012471508294513375502647641385990269883395002807324510766715471984223390662929792456280814445681772421227125544946917113865329123192848282807794067942229630604173283688612574311801460402152128045031291915577618398436830695200354111052291758672621658081794810786044609732189712969388458249518040718081161534406027555931902695211504180389811743668579046998279717677863626007091537288235355460908623933898951398418740942600219723704401955869251061071595248433296115305725770495101586198873326203356593553971453562364248907680624732416964217923291563132926229835996586597330292755067699837217367264849804855144053016906449546247981441252476620854056860393590177855762637587516940850093426147786483517536366318765708992475313732477793521086277842270850069557758856969757039711058768935533569969068206130180665386296252579468490844025946855503212643224419994452091020467033658800011981893918324660713032055186339463580038800845204478135113597631048560626232881697940575973843848509908054690068892557960178505278442820069406964521724351861273617448532714164578609742674039640390844514747781161451477046812668983566296571187076046216882993519463553588653784353413355847663473622078528044814118419824127901894511820557307303036705507993419108953734789822025771521240169251596499522985399498341903152336184949358679556651030528764869907471451486667984040810563730898206062694827062634978537716369930907439903015852204475956424165831260012092903203920272786526157753612296097984924169241496967925432394293384046449097308768560553301957828246485948396810448711378081133462194411281619033867835899367361114304674766199023105584729984843613083523696085914475128503674301094167998346714482057135586924496288128246286253242991118724960494734231401107459016075214918332518977288761883514493559689566366243628915407037918554712451332602775268245700541402313713554727278326506488711063527776991958020763080293865700458369134527493178762312321082002681867105951277680142705624730429851297283480097792429010753332337359329022200326345514311330051023362975551099196426411066599987058790364269909789077625251854478371559099722385123511749939132583884529142893220948943971088325093261842846251962989856976849407209870722970762891583075973889074727128010182021405378698098542599440853905681753953010643856811592764919920875127766355547629401724034592581541871214649210876117976174201708450891138906309745328917567479681434584102109874526917690781007121720352348967295389290738471610952730563022001898733238177787721594209226189225476808854908005862858997512608834143409826435478830160763644390344016651773792484665666767216570492340554360422206410208374866524319520643131644062326610297007498662033567218646145622933055797464971307355276426105470319277492788534397448620883097161055486113977246314334759026277313911979658129613091396884300854149892690406241667124452675436288722180726397593446488776702855861725256692162000668960795675784311171048222212861454425343702649468396212630683807277427631433424374830731327836818785768015353479323612238175411037356621498173055184337885973822124309022227029111533250428777534384539798370427279014822479789604777248453964142267537662435903453086933983851834194769068152976189589075968138772794292855327320250891335621811813497752657565740137748361510109421413317258560857785228377770722258298379279947818383917146856200490968067984660325806754064345098446268093503114707602605572424118470180875306966514849936075363194761319465315468006263985384388031372776175749486840372652284430945833010483912562780077359485079121216657619774584876655191464893034726918000123284403683259454216128490751392522146371789093481958567220180213757398536984698760346169765085965526685125221528852950884441108398693563606146217654360547326673082828148049107032415720202249559691123323013162402212773411448498156282021649164618619733995892260559538932600688126153256551849247248628349175055186761085122464440134014638605915136594283889416653382542820803282408947801091922375095786742854233844656862056604876707312625978399308009851353250877347134051890711873561454004539533097429888854321882125549712273271957295506770940147216220095232198953702302819459308583378254952572190696297974188186718388664578928177803288579773357070999347977308048909790819746050442937885779530913844036365072414043972842279930003353013500179109636931799498285800772763941813796855277672025689678175672012401145067067598617782832482335044329856926155453146624124109896569444742453286399216530978028671136348778816871151945495672542117085335387897958837350766821309944217303462897549304137074391549125238509380411414872181832744374015472414146965576497866538711451093296788390672389945615997288852173559704290973398381571811596869061039098597878284060847555713462170654474983253634856346425549851563448646961500815295928914940767972578862758828957256448488200089935936443966018417140277796360771340585249230299261014632652452705076810066501613831197293283868496743803769077785881884845355900911383468761897847752568030057543486221735536404571219085922974065655381561943207123999160957267501449739573769684568451768107089634662049611253198447572904001712615031328565711239054010774667506865100253463398657939089870765634201393297352288909864956995058692352329263315314409671970749373089113978138859131899058609035223638334919846444047481648408220981579851309613936757713368517422927236642463007239377253433285358705517373623759387715592268322772462785159217881282996148927760537272569000105886722248281182228196298465261935642365196303404928222007062358428577676662911078122348001326278080247610657063629379801102568150311919588655473091722224889015577193190421836304143740764591883917129085195461840368846993299888025664059021860232442674408653153262988763226825461305507443403386206762072165283921139719150369025208591822359657587517611104451597775894416727076957805597672794348038677737993766053994766933895473770827672365479492660883305340878777742362754721656148406270576259723346733828301992231448872352307544726496503377553256162422159701627038419288091865940707960375461673510383256550553306182521515620408691188319649768413669823820550900395173714556373884130426338594503855682598431813226949940833795672522814995678465792744878284730455422084518700320364979990434644978934241762302946744414057669482803047968269148984367140426525208462409458414592495731444022351157507418371386787207541220090117625887749225633427996555718843658806606813150428910688931590084606690634729813314709129317340925854881172956474288300161893032709715987444008338537690077121003129579109223954359274151760934980527175937911194173970856665961634690837553371628053973179450853559807795682063730796212871597408044091203689035205009910343102109808639790326164894185618923191139412598860364201719484751205381917000487904531805835267871619333842175604831409236971853127930283453494311766411292543202220388834276694979760980509315477108606075650168911917808101406543846826876126359283494305578216648748498421862805448470447685436591374617168018075916301705272590790836404935999062170051887450880528018984191269780977698986496501941132894555429042988555342579111247210612454441258822121977694638508477002115687862261852583965297254897919748252777642042653636090885392670709853994010026832670115142706242969338146466478011273452879127160768487074526959326342271153453166712657769364018847346683356857340428159988340527686368447884556049765455756972320566730116996589727070832602616102918394458043474553567809268453145448363217834836797017387331186838214892128505128202653068790369979127405663691899756711806647494082428594578721295739164071188311199731267788127658909660728524137096300557781051147246655575567268140017393298618660469817779137086270015157082410173122496884435305653084302781435650794142314929653103049929084540314037121321490016467824532911372205902322780522223390954080445154851065525031549860740699102726230881170884428848132344140199303343307321735558552407590026907327379369049501060400484493195562233996130239259189076064358078177096433305370573328986080640109318914809245894082298786164382088303514000892731619478459992896166317612517432683766480047201555053391418256113975904190598322965551136740704107578170179284823744775719512794268423138996153742625238429466569945480434477112525458187381008955872465205177998344748668092421870442997154067272090476813268597452893437599676294669613312715809305985780052458561120980169411778437201625434041197674403897968809048827233375501853579809068697897900576728072340528259418602244855951531712498775237553343125155526146019671301326773190599854673771289368648484501628575839017880702014504689703800475616037091856500449748043308794157271729152014457208985579941783937880395245946259956700644048769637814093254040060334397236837192370117523952453829096912296314281971326160769235324431485105635730166160224860032791166247228772517701605826408021885538667638118546743261704421216620464487292754363179052319712424624350160019982692512282435142101650242859863009145247527422163709225668985248954892156794391094552418526052805033041496744475970347249111082214169592195793144115846976768890249453197168795563428084268628190621077575321993858598588599732995111225197450337810862972132633987212003535106004272916684938314397380801700637436921892255282324532610049337445287205190093873768280452523216334866073257360567691956075854331311741312718870683687161900279973095925003378960309829644031488422114202637706202532226792798515266155473007554658122619523994152692047110551595106542324962917869356327932978554698122380780579766543242079138920588031847866870796951086194924078109502579776808779466460742897324324055082113870769008091903314616102370152147944120554345215056210347198519696602898114375662711379340546851680941974321656244806721526647644984402425164294259758455151737335859499510264939059948665684586569759503469083338019013461256928741679502498033383700562844637992802671489032874460294409805138470236558002982778270851380825811181982961605600566185726159418053526098551777478197020738822551529439839069487254692442449471379776026176275308657298811902803965022102853245270289269015687007240038130575201292373204289121044283907471680139959434887113989483610634115609863154219013367923465713926374655782535931581173954663525808192062336434039040664537870385234851780888815166684617864108021678368761313195510533168903886842442184965453032694006122397461913745662936982089338924071533279278656657825057280050656886225277249741589023180589946137456265269335342612861300564002050991737069968118072716593389909347365233224877488788736119112102403350433645749681746347624282395348913152714826551979296311347779768736232208626839038476428501828662494085600245926986642300451353721241502255276680143099509761083975891746127614652091053703300590473750138219789579265576319917681449397146731300706163558841352431545400236387512408032597426660017544101780484477354238462542296986092101050845011196164903370329089025098540171773170504017046061552379124371724686356941003761432791449523741849144425152926838867665111811111124762124531980048920325067442762663775738035949099642950133507076809651258505755144080546719806362367878469781719821441751442534278321488557882437913358268436550054895272317182239230455768598421187157329487553138566537250171236067860349108421319080487809060544189169542710013119194750242489371437160806613975242189053110481873984607136027377576104792814222251271603781237687418804935577523311097662953274843919540634845904676300835512770847913844941441533279562832057523369301158495714954580587423614761124137510092555293298490764840451955817774589356454260797257321578594776249379234147588130187048946027922689631094554331338463680745431296597813435902534563348522322024302346291416288803979174290712019385447788326061621111720252164204766283283214042643156212868224316449329436845474949279904222679848451378059505731435692203529875854167103130547263907867491702424378476205494435216247104650828326884930670911562054666820884378736944777706139164287429834789234347681582077890274914466465323302869769610063261122646910438709063981660595013749199122826284067155759982667959116673366765633169046702212674895836168416871648035941574125600814281271927607077512040310412045376519302723779912308076394413142637014515661415740718336393565820981518493818281946777298105201423317525426687480976358544058754735993305887724888849150441093087954382605662502971563597775450891732076316696077575153698440432376139906619799885550527797490546234133934449004160127182027337273194809243839256281418936015122129440844170347431908150679985628654715181487933507263885220979175422104372830641961977203236474624795972013330948826164623522897769886295658567571666628983235671558024770780345428604530638781748824465918137988838570853905980549770113191881790526917844558944678969697493463694964680225584063166664484180354190534850709171289121557811560845490548293697103905961827937772844520882777022404809860560186139621862228619410545594543617622809474413822663834848223476789321372183083493889861257111225448834920344663782907384670505999566795322448621065687560717959765955317105818788627688297992539123022011988594512601289142155472319289603733778101252888614796902188471627382541109024311645159948603407570212732710442824496478844354982068418926705339889392148366161004241614298213626675738094475019797640977198134414893761714597593641565142229921870497932219985295908994770199378349274512638006193323337367744986053093420738986153146916675197580111435469611645059439586892901890701332452492232833652962514563033657603756263509015308740206793776516509098429946135074330966554608449738727282984740608377974484470840122291439183755182545312668828293733243403751706400292239490450147210894649646440223404431583188115313795682749222243708403256972659615764488242652973707214837731352385251103770334204900505250112486457890898090068453866170307195795889058250037433650633740953386528509161142903103366299794150592046046422466525699977708759545542355292148605791228415655927994435941857797300321030341098400963559932351669346218052749911258423740189148748226752413060575374472946547841087514361821788026669806953367059083085177998856752916434674102893379518997761933020457166997998173943311693461723927572330803903422447583486692026757157000788165401578644841536051733948664526003034786994154689235349794022016272626575761695067688998538752804842775700592435936173452042579323365105215579329581272076774068688045648649082426971666364226619508302101046041229210606207149637983146176591970666851106278138177851083892842277659967089708478993391252601707474758810635455360610410801710542169752768438078346130032769691131935604675869936512447983834720597343078569770328761203024565037052420518441877576676298055970335776983635212549844028494673138499401978824358171006008999871476105967360029772209038670459765272755882520049072508101602658504132259950978775236517215570427986498907264369430739459644783865931145976423342343481329632453592221317109682281530924818805134232615000230307351633182868757701805513372189389584769758254193851251587751878587910889820874492769277157460269419710254385321157913108147036681427955401319125664125651883948959211610423418781454903437081755870020211740809266104739958603069968635229342641751355858680526065587484423935461231444283916692017121695337178650452242154436203177328190012040414783623619227767418963933928215641873234843040050841462097490233014987234987790094000847966745230364690535886385091963312127508868429173534701134460090660095112122071495820465212233897055528540410016582122371588667936279124248453563547364816928796973360233005406908991909030261898285166334452216553519965403769697997477593448616616979038257423080498423647061128389531587797070620329761793251123587109381755234196325985808006870981760363282284368963644091619189873502871828061205733103005805947167842409054667075236330091757838872902437653605614842896411642765619177343418400772714446300374993866146686519980947048689951969308953024268985001876695441180038919975904205924461618627067316949090166628274791911578496060758372463795840394931985594436096190750313257435397946955928597739164942856760214190580825748614300730379137128121469801356901462506845418556936110418414816442850635693186014459632550771307199844225581974045828491670738512117420060334240376945690853155584537132567555411790313303383475818683034458605383656852812420133509463515474125822025014098806411995847246786133835541224521071819533064095133001540846930372285137518964194092986518726922813685798174551101228348740869960906529735701968902291724063714806645385415013602628845989961147970208937618613701262107591853816377745970315702630528787664685076116163630382551346032481588518812273963642347104839393476716131901327138849763725649913241171415170059213595157958552271041928905230432212217157799152006620215986308211262731773460639159909277941242417556160375960468587920547200774944984937365839411913204926240100098672831006603308025513278395927216366461531701190319435773293077645204593506101430929324371017028075547976434420493035280555399816454442053258712466240211075201757198432870280471110015680336059987429236357257730172218590346898087097682415784173667424914410634144382288050428650529040661935845918681724571773748201712608112254003755821249631570087784574729606019842685337013177191380114468448220896378347630188134402352029413474287952693439798313751633424444747095003081269071392223784302547325238158236850090689275041554965045107042417348687266357529432579678650233376132638781604402331782134459746747553780757253273895124690525108667303956580642328696933585816277150888243094764079185753398053127205170717827241398450259159815769809321780404245298539589014149541572066033151889361337106592458718008131157444897381813951840944969607454188022629443119715401117130510178380207421438441385143488412044487710603759636746998223432721570858185142588951632822750108144018100532764154837739675806392887680583620370091477487067587458186720762313175500461562256154938438890709763755782403026010345079661873656073618622871249609484119106721859981333813570398921108365540602030534248947358067713179824793376310370937539718914515788381134039734195511247600638930983606572293686659934083521295145785994226692976053109244812937719270683826517888410025998913533881899887487797850992356325880918825713726233795790493587728462920163697175248725382866348392911587071392146893957788012893582605712720156798981697795527014371886527033649401161011900117975223706316492593428640673316662225968359716079822765683168572428656639179925228334745250780797535519020875362145390920500081616970549672570096127410605648243887085756422818812842628504268830378270382631683245002356065456745150307252477001553543508914793924513494084507301504481296451456034814792795215191950989650601903538921363786914630439493812501492111195107709525721906455326599268448141722732776436104319849025413771986382249310805295064660968565669032681646557612962787819920123322001298951543314083539018007320833162030411225470025108062795590970844744574383567822594098394403763849110134161970184143006574052272817744403016152896086093100083869614523648496635323443202908531499858227528255158369462113698165430133375796939967434879234449386512087087360659002016866266282951229306953768310400829630194426550575074549820947961180665244575344093353135688719749322670695174626205303314969326388050327230138805499354566474647540979365547618346899926657637829463449762163433100231762885124687267566060952567184579498188810315376827295075996593295304478695817302446286377075507132462101350802146310531244360430417377071332348118480071793669691040005066096357018924978280367574757374391113131029622170254921424526542350479728684847460768675833805961571068976871553123117497867711309432325668943140532933308586932424202896742234758222249866316317380214231233512510176388463435568147527229882890540676437665601683018187102955483963270566269468917243093984897544508120261223314685158101386988268747464616362138811194861567230634465107781260893331383304214102889744949654358068132417844575362985750979645709686944791609047423896315395670268918341736204206979872910581416852860185600962339356234730626607418830102189308880736411722915421591665607456761697470128467433118104528907014767342157989592501386801860389968625334128710758685442543486819356134459563874333887233872810271764913679803369715401069324764806089310103544765743573199526223574466845462372248545817288179888461658998066931443887322299024297196228973983889123320829717763774952973282566656463337481621730195952009879785978984295320301542791306615517271130096337130046068459466535039825036940097993711929424309808718799538887225905956606901932623785908691781908712891764486712899882294397423378770981831961925824926687441918024302009760344983060685935357671473978029022788754748122620526094685778183456286349822281480113890877114723337800956640068925529563979225909469088560744748914953429142314761485406755186004689441866365906493559844357033634398080592519267946443976312861416573215984287779767532729722916651376315625916526948844747707527489653482225990716488449023807617918340942972817755779875767747772555888167194836224357588387747977259314753582164164148945675948847458621230474604111676157293975124770087649954768689936190263594088760392361416364262052483278056064431671162975455402406133331976207022962319004805866571508583802470510469473770049252597878030784567475609878998216349293456458605517117508533235317659012193281227452329728600043208019552984509518715386070390408603383284635279653670905584625007096077911476610484962651709928913627418032299629112004050345838636544491030394736284710355447957768694681325715362419059377481722639105090044934018020086586489995642041727083258508590363885529921302024923797014695181547595087617425827119953765684661872078493880437892694298920835539117799361082041255858673369406335554413125223968057786744860080178100417537289342583164508039348565943321277731855795528405164083257990014660246396243602785015198183089280561292943711805593251543486549896892120065559218375287117069710864026951493985483411108871398232763320050514820693008909003824584899265514931508939208185287854876251708335632713371823342703965658959329574430753398568148205568858673963751392370686650837863135367853796142430356044111294480608708983144482637714789974981099216894830547527320223091760683462530543202515049511669106904128956570167468041635197549003842522883095467192300604380855012938968221081480384779418233356994071464827353920175694386269984768738638817434346986050043620056501952410647762439419312962498589532710319870402100104638225399173337045059492203444646497068747458072009837416276494756074600731973371052721725517273937705191756576610574939018719213337702758039604801482306847978655069325420814222877501547339156043441501237703232731338791115334832127044091285937706533700819957732978411977162963212130479196858839042202276700905423717566292044978347425482233514379748604126835162482757355657827817063898494660291786486728931482929627929001480251576059304211266702015552160312909934717470546271375834333303373825148843157008704983722008064251805076837265218988272141936026103133338024534496973306157920651088684174948683129245476021734297074826665415380407506711000288521234511460258537027082109778224695398442694523404341119879278538344117524574754508623362727634488045828307644467943164152335864635629680040011008061031455998243149172180378690773395311443944043288754441817949553038697972150148861132174680350405604334603140235813085097509158322657618755917959256972909282596449503413954449265920217297130873693019487452975780421292040589466779472590023747629169004642562530332639649398152725074093856156363800510737410550476055852142514963279333719929872741716362694324900862539591215331663256607423199616438836371572469573721399434384714042054308845876618337686315647914227254611441380148364931900902941035592616273273893555651460978029433464829198121164637490040867877847065183483929319831291765257128857687482195498527779514521514681529031493098406966376277145131406327953425540451413832102528108887061387441865763488201724976445462980351818691413500386359975741079666653288904951520732750123375777449233981136431050443235839601898620731480952349796781036078155556846583405495077635778595922821403283505451395856106871014610938150768646279299880373785347083832753962154708756521709001087168415126702597023271606500929595551029655356762440357322587573023287255954680166572533002417940103176927677898137782134181597809603405556137315765530877920147810517258485440025172375668945896034472101752036870749982023373555938670655710943679937835145960196442479137764055508447194942358767954410417659068572590493024601104189481965252574435425276125002171995037787039762662635237540984913337204247715487983710597354615588737134385017072011707635831310386035409979305015390319622019533278244763734494175314327732451290497296328122686894844784877331091005787390922965685223246503643387031465785355519335287796472044904405828656935328270574920349298132267395484010110036978499756364481712758306769274481875289832454604563652094503786467685058329442851190295474974795552290166481627237749164887860356481935070184473335171544192191487630525637079361688002862649950533991796777275925802214189520193872951390739735305871689389322839556980452921627695296578181832986835790550692302871253713410479229129186876300159591687301685293395736471452700827414833248382003408165119006300848757363843608876488721807972385145502070425412031450346740700073639122725948463929321358970682723568460555050319646932409415601829643462446711497307497929637608877538437767121290176769507631750332491807604511624437719566629634194335592410268267130774313728193094373847538799770258782352130316957479184915305558471352472231186490946728243416007211526614728314831523600441832974466599835968655460127311501388424918625053672186553599641717507411354068623568050666557877577436781848538557815342087142427418065275123768821421899327816547934993932557013554084682041081087262063819759642697537398417197099750977023560508029700097882016778317780503495358078404277023532279219783946248340508415705773274127458357209823543657479175056517765324140125785893454345850494001429609108474817003605772145560812311391803713229398501497730049219980596646864825866674392881856669812828747074580715449106533142491560344318344857669482147000766748921523539415545724614467458610344699495884686547582621827851447144008464175258850953492327780659986846082678048011964341046212917637100284896897979833693468887454635232211178166515878607242048284770725763419655516372731472888761427138971733278127614154391129615923931795783425934703619979732924467280822262554840801717475066851310358506237685220356354595183081467277485700528599670063553041545621845156690614842763933771199098754247648507447119655533389363689268806703684134503281943353638062330333557248699028398850798956894985487355829632337494914526074822924351878355396913661880629803976889196609742776774786024787697718322974307074516073775562329578315444989673184645687296395385376276684104516810867130852389944383213250947313927970044819127979419885037494508355923598179289486135683367328277350701437227366332116667876337629017910539983655563319708391978791038479753206869419210812375875067537304031766008047543747740941124914177434817005271705152258726081018657959685353615179253195031124264092245215287941363179274306721526321563877107604920965145407436519243471117206001040892924123007777533934009268178116667057705186254588444267505429945382649701521226164262383924687170543989277543506044099314499978456414108863480191280762731604452314089366501226251007387554493053854710678349451068389069794226512631710183021842351105280212089638632216053300738816073022840951785116722940884000280352860279136798691672069641658845890642150613008639113388366972713162775413802395023476926932334673972707128539513540668855530751016134719959864872250115123269714182761313271544004914307842995533172826465953382757533592858186748912621334211418938092206054744896736575278441491008450872009954041346277956211103113630185865900931721141630184869830101903826833657687045617235046324845146709849774348415095391464076774716920198256897369502240055589555770602906054084491601532164166356310897567397647311036517085500451295952590386921684349771087333196082115620926760844997814544873933973129206838002593461823577293886554077519799486846982707420458402486032466150037995382033022525722096892892275673718444729212774273947981382105574249246121177347234510806944765925751615441618747945398118871474995153356549244427649099402997434931685012560915734760786878431857222165370608691524723234887664473021300089300833796028691916428532179867512010390387322274273545355452637614485020647229211874000454331584983570458599311430538195136871353169961069265468488944052597343689034794300279587952012079894385834737650194318091685428813264116158116035985731064375458073193917692231963194721409013184785444059813049818811191177566287845426340399819691422862022802681961150660764452655055122478351346661978771741078241265310205023361569404564137266572644749910523249242084217729220741448906034118871270492806065176174306684123443921237299387250269584804071874964689654849143452245344823314714308315515487761415712732127723018345691758988288483858454732677325231951063177597980524747500036868680817789917439199993055337935982430725641346172620248410237161864940802197882262766091549969023446966968475486889660995018174793033488986999207778098178648216974735387140448274145916723405190715256829649432379233941405079646009658508970290847779166809005970023041039569518756684445079063831647886468854146279126830365403477702687211745267508301595318783100872642894834985258210016944289776257923366741316320584646595895442918553129442238485867937027373735775089555924603006848525211191517507467611952220939027970980523806103917875165734455619495748489904625898903687664546704014243607195837200783697062071740235158978040053645950708687132377561433839004944872864780796337382487256567496436278101793553275530683447395273227700282793456172038262855599628410061918813517522572320487822225003861578664603181504056238030956302889322658546576982814165452461470983405053243975894622328588702021817602020036977675730563170324749077508154588001286837341941485543871966940695490818937634439363980841939091800631575085700429029256678994681208989902792830478403083980596016783933326872103351633942564239507063834279265163207790980770159778989528267455515512646966296648225960411286411043655491967801676908023883289720606415092197359206904877097926476577005209611983031443406813576365485861606639822298452384044040615762647495929752133626072730565803110339084637064894722771889869944917954231679331898821077089502353676683354779809591455478729388806234432978101020422820058904196726816769951594567915648737182525330737489296527005592654878027303495018594067996486189651473970498819763119852379225239226775577682081624069752751904460490026232435396258711586695265083284950252317663951642301292653197923427379754137436400973670203400050862922680915102997173848936533753300432903339559987454339840704131404909378137134793919308612217432559707646886905327390192610130653284119470958410437621904493865653652934322660554221200100328293590365116278273315277601218719949128972934526354062433846458166792241250250164440388896271273090126193056748917851894458185822362352839302410101277345439794038870689715695255131407182548919755273308021778005881941519420332892120431975941269755658637921684130853819765874574071562305732440107562982619656379152459266324615381464409928391904121503108329284368712026490479275005152118346818664447967743481324508684091903270230813072793154402712915765409849727691873325260658864916802929251831596477075039205040725607977956981823595133445039572259040826580184930729337387297222916405360551670721113488574902841831033984022713580559520689049889203735740879576375826429897703667685067369779909158429475901836132215403059797767890710435778682277669384474645430561755820905850511993236496120667995290675568573878019784705429382811271190401550351789559507474106168286092027618165579054756231198987681544630419467640037750018371825062042358713965593121364518906557108692618606519575529533177663478729400844420897870631274615083823004642634526160163914219616698111041127887543103505899817919068736252582911061549910569594509013011258778575665228892709412189775075959334851721573400755285616294518800927021776301836981063987969694319121090985250455199342731210282374295068982996198497630906530232155127504915114801702199027094021708226446537857662699934044328470913421080706826280446540056049923735670188964214589320277536389949464880442145783947072284565257685543258662436419534468598138424759035428001262283799036454232432980319390140486525075652847883980809805137319961632711738223199630542127854177470877494794136488094456959919441793063165972093188027999798985241214380300675473856469385757420937241016454901083166446980268220819953304241100519528416956714741188872741779886883103882778892406707597165380647139110779711796619893514409016866493869564681455374879525462851843796307539261720751302410262007522430948854684838599148428783137194488085683163068944996204275458907188925771979203048038995092113133321880167936880026798116207108445931895698112461984216603598318772609585868132137508674801356321014090854566795819205463757174872492349308738340217492491293002063745924701586107012714090629710172474559206590023555713409160627796112438788520592913786015672881791682823094100751306720351819080980643067940602866099516617430015990683882178664406969597503460740222742540253971355153283173717458426028101684290284593935255417631166111904779238353897275291087025559011052699117106093453868572942366446265662937972400902192645428222070704560001107314658148756498092509885843216243591174854096069616374184441879141882307830560017409408444454094906059097259591210450920893048356898824244919085321912813460682943517706509935769592603431410282313493138605641336652261506355605060910673506585932602758320998340158395764567036341946497375448884470508878489040949473961055153503966571930255208903474633379360727693369012723192812793666234727487579744741323158890417469924435836503326356895843315824172058162435348119049135942682923490052086058136634740929391881115149665425688183241771708744031220132438528238889761037741381749332762598398258689623353749949426386091152413849426299674916775865904870305931535855535507535092325246603745641556970018184665248909102526363443655251651628509264533569997342683903666047047205072256289209064844035854947954218168479957619800758556538212950118643237208247253516681327806470397591204215343414373193323836491672369997006478254162670925485413539506520891941160331424083222648809332851889186689081709768830127857805386471025962613381911283114248505138319484726111976921710223519139812016585038864902446620565866926372979788213790460270463824238556216393101709639766249406296786065488010338899222409191037590360654340931215203408911272434960008910096191392767082583126349088968510646389078178899678548800442455631903582537138554209930225800824424911360643467306386068823596080506808650820829578652132474017430955993968984555663161287743924034857549223075273122327500050892209496350325099198257331882152941929027784863975525587168316402417345407648775381177226466290670931156968583709546746147986444068867243118488118132486031002408924970219378245666861339603691203169830953837728492594672711565436077764496782921868909154646875040749506968336074222745775211639816935970869764728957445357057237420172671496140155681699655395803088187858346315341826674862691886069035623624483146865360038048276672939139730280142159490221003601217337794834563978099906378862384699999259009933107993201758728467025246294301254766817893683128244698294838946799454741427343024687171202506737010139283354718618843556252320652703833610533675539172046730533430724398339082781666789473125362899390166241970681036645979987394934161675934341257604036832473577024526646799089011588617397452313401390230242166075777020438144496068110903146329193045902338629962565728111936849244365871308671414039831876886167461599950315783745027339486028877413066971146262863027702673313575940348664618923619033144288791567606730921051149776553470102107282774965767618865564170363342494299123487054717693115503180900356768760919082746588776246592147513433255320013738294352336455818842054891385105686040284412450539577673274413541283642556482217818573874097359994157352498300255118244160242756385824515042302807799415458354216286658969807548843896224938168748976355450771159884922304522877615974017383925407547112604541007775671368981491993759367774034875737170352540264358073039548569221194752440033735797000759436782389576238992695150677597710759264709327134734497492530321604765038370463485230662711653480560815159183427309470169360363642193768890362776204818280338640006445828082016692450536104729021238182779994580397224381551688411337566167880814801023751542187482914780189360159548422736424662446154550087594802586280216665890253263139710461242451667672272210736201406990850969693731388161324604976927154628933625483972968664549119526602323141148712614920036697961067417396591652592528047408517912098990230114802471196837704982986824891191175229427536058152216023704084711426125672126150772108731070167885479261216829379103136211911025025717516629996665492560525034199737253657848297846246471072422336247675563331172219845413698941864289472303271854888538268451035128921793393917349504231548729706321670167860332932179561197006977036922220923821169875195153193159142858146105444141853280463998601269763390334504321292422545433217819167968490877448721841399965960375496015423497860573471595273614479348403306528948605539320604385326495549168368495208340922669625527276567451767550149581546841622868786012100066460967812990513358233678410198453237652026842555033960171867473546047794961817906066207862239006237871434331926307806813209628225659988808726186447671834345573632632695295060321758072990191219538250320211824714159690793207987864477458117431580100540506287481601432353158698105934334154427987097287149320817205647646918542591907330949801313969356377964437330997525090310757117801893217310527136464373099669915858755864701326270371446308360077638455946420945022034305228377443874357286005174256941831088612533250102383955672187495448575886944319845624389916990273934527983489293577339812497247739708548116737451174485701751680022964668420277023803509460546088762646974198304027249053029890906317268484398767966783389547026987741685875270173239538375580953977848081319874761826677861963538280388409735033497202240680404491632856364614628836275593288282954849937232716427031268176508801991586595145501054305064991340932849672322870756100494637738171533993815932847724169078282965672077708709682256380150596517658174605248193968302604416638154573357878798013814571809315448202510757817866016354841943436050050084025399188964306552246192396144761629114267467401188053148690517659173579412919214779480826903822707320011643154388032640295147370318664511959277351185703924860551675707789798570689530308227259574268466552646436217495188182260308982371184817258429249214790231581250194015697555587583308528779862919915963484976251047731717962557369180016647030752687431972594412821428626648505323415742589161538804816784676403832193027285596634617917818963262942284025741407033861892763248366927041251867964580950557128473489054519049009171057043092502612417694556635651331407259516187780942599057292113071518885865914036450670262131847408057013656053155807233692655797997336908479234196980250575434370671836713236988281731732351488496388669241417131006070238458744218926210803074246682357728747092420062581278002729751302758442650099413937642642743640448363651512369167132874330238681004669059978443936244797725503486592538029177253464999987101317373039905738774645912364502096816741358726550172958733200641085262184474042671558619506386806794078396798040562002895491595439446403894643623484446889706245538509740063192451034219776953527113094073303954397466663336782551072910733477554694234201412017425187365396813889842301578891233697196307252654538005495428061239263198273230326189227897888904729325830764627407089680167349922545802027513888854410906965307535555520651076844833789201089373182423608792065535379047831713638010796094417680800533072232275133343304278715459406857734048747499800642630484346522248243052736443039121016040677268735445917241424933195971383199936045732293574522113843737090521675301128585356205357450921093698361324043068506705452691866525508010970466079312464602849632087562175301638571215961627759394781977604922828204882422790432118822691287309362574517480866929820050767086101216571686961505008547438704504890380750720466516546860937985669919840355289151700994113011549471464621546386609515878294589510714089826892474737202463929399655064395990766751194059424717546636954551096198103396826897352303137744243721948207336738359312668907646874258336503669084978694048552220979104093201504054377760969865653989609764885916078083575859970212784481464192537153565375695309101476597244176924312873267071136308592886796900957360183582392666304404109268164696055104976333679346555704162984216077302667274450201904861494649876597422047796645938145127923746455259785771365095422027503020608739253156920824516895399891151709364034883093019589360141355699846616569302493995606487558333075673938082720350874683644021013089843236897689013108782979014372204644105507896877244957774103000994130568450139096966089632587920183781624577223509012108807881421946185161288922977389412761989464176231443046620603130355726022136662271675644428422857040823352855098747333090609933883956016920009052988715107236599648476724366185317217438914390456808771250415491804718159461181391796668835505554398685157489014371938006231617238123083833868988138630834916961970854891797735288863040668063646530590443020342186115946998307797568076848412708005036445756022896557281867957755455448223691866688517476946615615301659959161550091506670090289013870184154093483219690295326081214024785308005778784708658857406048627983112953414877989207409229593768205688480059566625023850355790149851784146152165440052325682740879374328919671984351801974307136762239311046871637287049233842004363265174477973182243618313493719124329737215238181030585123565327617164434533954864153260937788206073477029148351476640809124699491529111023515030659061769656280428676371981210815005320442315357219158021095360913860197971511858093657729644819869367397096136172100070609447597887864737824503714644633925516851025940356667539749747399212065135570615475362709224083739775014581047630969039816223190459858640079240983329545032919220062074431836431761401724614586358187104644408316210261882751901250037918167976436095530991832781170301500399050883597687498756728345271234265605750896572788132674088476008385505357915669115693222570518682993699041215167193577135263597809867174745175962879508868929915657740391015828352046773326140709334281961370793634807073091761196953370494743701061296026079586715032105031300318581026660899319432187700036749042997278857013677800829334424135334691178655689072157031023711388221092445331733852385871020550648593726558583395037800586180514173891391885152485463255798375777784946210729921412884772929421694811765655918642597529721185525212520909028533338863706814299661955080243869360004964863506377394532745966373713023260301525297923234083635239904425116815001623643518270564452387451233514334541252905472812716160832899015838024036338133987852693898427829310673186818872012655888943250649849523891555370914800239770564728377187618241785694577866722601715894517797470652754929682920767267562989204850827422546060801406727099914896073950257071216084369372102310560299564815507854793098847137248323115511945356739939464829342979390880542084826145988756207970064155642928622115532055003818487360908532913049943649572300617035792185074577459142935094101230522717310518422502825192508300958621056200708487630954118896870001857414126243552163336388797302330242957886292526522757273122218502878319352322001009312001764301353333655421169669831162249679260157315832882795602078570462604969389823789202387668261418271521055503381188177821420457232587571718189541283127193447129235889753868160211119470145802456795278714620865442927897066240064961088821489562119572874900305845532583875076308763012949576907954977673050233239590287510089830659351809730704500730642554597318461126471150085533900658842269154001788567694070781470118091137867658649013402402726721036850771958208076273410681822214984483493611928090748891377848506571000112844137553809437141949506097421345310481221600438773298059417708093501328710010177739579029632256156724932818039942382996252372949893111389103563546428519265023138299952298551277976605012831115967893339409834949677790190318715606256846602449367655414890158999977226469923371483305497518220508460774480691747276482218860671164602942951945431809421218162008263786497462603784796935736131349042858612149764440437447252214612407180716089425941511794838524101304270175445815154288520323924261704389777401866122869278866878409966230373784525639318117614773996946901843200067567183734392073034810742632630876593733534446561770298061473932991531637944418941079184041802120622833923530720232633645928362344225570740025718985672506083189548736005423156003559304190084778969623720460156800735175680481159529523860671249322150565486693221068009814400262734574810394782486699479871257881930281721921378039971583613434595355466251549060712330318042950429542884630986750274507681989640780130690853049248790945601429903482303780587466992275888709952997815813711024107818041380715140165768483889771354133896033124574531642852119876949383457328173493803734080175947108218486352378128617257599950241663138737239535756128802607950965423384944839099506192599570235943891671907562152020727786812705434668883001272651555507756202231947718698738931120030644360370343344687231747650940271975730487623957176533772789510221455813216154362227542718312269375398440656596923639231371123558295995247405456621705085604065641584339299466669016064040361606116228162313307130110553895782084582766076338908739410201847644542497955842696769167271744362396069188331688122885291997630668633089385054185573128486282121445446516621230704842450968945100168196065802897621613764288966523000677596149169444522253659877761741427087986195028584477821152773501370828945170278904996995097469448172370356743088749059983175820069323820279388172494705477371150690659465452546514126867559664464574880033114079916380333319795627327333563913486086455387678274157698012709556741796072478626704032384817814357163380419770968799466847426849775765234600133771652641867320229594092164010708802897758877507962663728992342619455013081653819136856647921371728192873480980226502425232464408261967789019472545156208279950386360396414313286325701454597243007705323867015043490706014212665297780795852796526834077246627603714432892192064997826489472873978497718110089234106563763052959944012221721616710961231796265747862908796868622491848142672372198135486065245928958375342365532321660108623741368815929335420994253637271479124899914645127531537380146933652554574886925519636114340671515706602401415864930872024567604197798250641902146873712069732322599123361256571185256040654399173028038266290609433268726689687008586381072291830630950520519391165310317150602848633110311474068066136396302809844860685930147588909824570460074303987568118797123368156620287063591255187386221956149817569935249229852659744583285576324078899729377217682886778713650350559512733273070784278123317908312757886599770817682355255315898398158362311706791697716207155331432444487759655081353726593603274138101588475085688663600677920460727982850656519961193053082513899524420194182606710921086147624246260461216171656518509893645290937546064518297187725687705666978929405636564390452459001420417990755283804597142374313036841541488624693090068233573354490429138088200517964624549022743845476718125075366194461712941899411160635837045565422315019650929775803475929953584561811485828020456004976195253752160918303444382360446439859794792438903212839971924831630880990413008217810610814197651035273285322180623471946416790736855103388742388103766564407729803610125229147036139856265319086208259432283248152812111140740223755753843126742396297689615228144445669807565553897194603027742618518273380626275137467951032171121302088810567520724247848184612051344064665487710019955147795163668303278256790957831755460860831725544077626028875480277039709936996438247734894406505850421699214857294679592363419592896079904526791360489297755557304742020615744565029694680728131149878942687248303259381675519346081989902475690230388295021509845276684276722686421407699788420391750460282335089110508025681356896000423839924965036403270260398067723164756820872518721859229242859818910989910550254066739173571150240144838966298897350933703556390492740258166017095125639043600210302183719836479393759052509173293574503760636311286562666748155640563087388975613178184656784733421273069798279069458428006206441597466189905863846747242084548260750463650329381664097744670079863829898814387788103364622516882169816542919554744386078763432040352894053645191924635365820622867039028957113260906040614618175117340680126895574403354871307197592389605111473310713822750959298089185114163960071763982833058155781715401978928430320525978363195687966761751218320661090002303614429202940358548513099150671291481336500692177185469930914296921190520935262802876802825769338721874017769971615129355212243125132338591259950957440934638072250452399460690442148677414191286305764175095954724915814014615913386123767773584481094808941444209693535107893022971510823856488458605119127382870317520376597575633361590013860523178416534708793986028646217215554901752583560543543334332828161632417403154178704104816901103421006459459255838930220769001423642624124587575820459992184440093068423972922895646304638867844605109296531979122857198699936727392149465016017577081198109582222776962364545438815632978959032518846814090805272198682640412347150367040438684817299871388537926554042271852553476944843032125581838872391305877129312409608351273791419315410419660430786992832589521812386590614524499846207428068900705557294719688722308220459527189992345097342889411242159716912650875750574198595528807259502087186202305758998137677361614288618453404785808979734381818278580801348612666271344527317038947691502482319436490581362001122320441386583943343666423848380341505655552189499384321766859776923169128037724920265894892475472021184366150816545217263337287931687717466580420306161867538984007091164398342863484612831153288701491290290479632307775865963262423794696244508381847163708893255321046332167105994181532591722734125637619402712799027101709287251458186255048530936361154007636485355560561710115312603146722813037526434508997758128880988744416352235237225763316372996423609922828613063283765079863805235797513310626727644039835009433259211041290267902181463460495451984228751221431831457039910259514438557100848991418230753925212729199533832645652713309658062053705272758087960459028316294356690990998305795080705995873629282978233487064557216071799684933196895796722628182786319505224488294991321922506550215677312206140300957675384015669919399988772334661997033986734066583454854162509002729631407021827038556404101215819068508552410388352415321033310791194592245656551439736268979553182322276399799142546198698027396683208058731166449453003008948974370041334501609655943158412260267812815075820576712941172979155185181754973704579453420454319800005186118960206913718636368189279664610235597434767537340964158634119824192612058819653343185324299767064181624365199154144450676381667457386567643823944768421218047017891092582337748223919636048900609534673528100574947955125522693231130944465269217109704219676997577280989653542009942937411312040574853562708930674001243972307431891791807301099788769875994690061346353316968980790737399623833703370512441184283403863505981660116475310237647439329215606173339510622163807397119646407700928916367532271290759894738772964518444260847777871975254239169507919477769275648499237680441531075044147733939410887724257553328139933612665583737033396690335415374664211505636020540005703801861578002021019187731110430600137447790027432927107569672333790709439466371387064139386553773072062602949651842200039740988235163788567300655924763461046641225593180530861445773142743366718936302018776691638842312208950179667851064669665752794437055856066464227923737621900296424185780214316776627774367042140095981030964794539094857773860587335929110657796474378845406081878693896963545702811335288662978049805551227325889851696159286894371893127966609876790554309447701208475541984956006392523191133429498409834168763405050796860322775869013367549840877061904747802639270218922157107593975598468050613819803694375338072339032385754253429427829512969468353089455578208476342043066041771783838941080440289057095620874165615070558341399157517191916483357372798999285630578359902582297473075661567924249143315661401528509854810937386987471314671884573706587193155453063522971008775540010746888908743355809769977958037663531960897066458386990193835105553962699257737458185335382744168623679096001746815232600494800046381117503471528885909020909484981737652709504618816259863480593568820177061559273982147365827986512826409797535671477580947617743532954774407603574928075557546555881878345290507479565877411269949835633058152717355248812235169984690916555203476419542113549790536652769618340430387144917942201104021872053759967171129521588207976672850421063947011930897287923044441063744311653888780197378253481633804629410101784204810714507882152588638964749601585360020823515085725741652655177190625955837193076936929597602500807359470239104160119919650794677116433749847533379692743857389588042095137825362249976881645849487483337348053199248957765709247625605974936451300808531215428429284254007903409952298902098359183549660711099496727640419307885606509611637253409815967227886774414372679198235715563355651919211717660126427992542850305230551014759803787219090975394325976057827623371397859213733656100212624316488443192608945750393316866540152943161700837526177454963878647388451527083783578989065466253433030581091903680269327468990044310586146708070886275028557780542697097283819726739634380372840292083756561524625913814458596473489691097449885557207288994542551690367506442176773160187647496347487757982424886417563429171188591425953231249710578221926207133440531814658164211582703745013037213044672898689559855726009529560888657406669892267257184923145550284621594609760868012770718357676349117677325473840688448494185120046925274005639836598174460379288319657596516985165181767534135320279578560262720672061808169337276166007317334590565221185226133970560411539094617103773732377072432271733226554625328223507760593990331338957597345428488750715803949625948464577087571056827038417910985329996537487722960543634497788418128675577587099780448017932260989292289373010802455594722074614014700899985885437420374351130604859286824674854554111903268009473219294401204142661438844710773214494078243723807307433147707701612891342310225017180863832215106575520069596504471728477500500552834578257916441914850891152024322353439137850710620796199908691752200841134589423158027835557150079062103460008067218868737483651023877865745379866544670649770970445338734281880111717638593234063954516640603336805772578515204887525858815996768162518682257002192102593614316021787606230391087945565295904401635308012172155160113196534991583905484737581216340548497133544078556211653378707061517092626329847476128385491384646561247989580917393251946731333864338827344867632827773489943163327626589080060356268627651054504725815735377344741895068779943438555143357834434467610581708401993724236019893077167976114578228885864339674147284666432196726799167966845374579426876665422704894335681316564956311708228755749809489470146145027535641587640978850338881592960792417696286625348817684894419001739973414732517293111906075236528482530647609981512964918837700026012215489650322404633741570958845098129078663615834251358162997263242144543113518103491886543326987189732821676241905699922017067187172723077473941577786474937375549727749749897880975104836692260335763309128797309791224784642110594709521582788068836599356991991509455943400044240472732839223748298905640634361386454834282660311087201897992414629403099942852960809003116408331352785693820171992013839367206112119032128713596986103729263513612924396309085796616466587317647207898163073689884660602976178892499052533852602287050260173973178280563555213308921130911282562451251037702233584339407042521782606271674283117694795381105115258476735607326146576601820607912255523426153287558548500049564169077211730663267852982586741768141175078405972404181267324185022207441152454598839790925343808095791559423257378346416396628793703854121961050101213837712822636479069383537223481784061561846204482068420960256896632953565214045022281000564606151617500952988602030367175274526309983465783167892060807712082624728799395657858488118347874008411740250149408852804859814853062272772534442459341361914743866779840106966778099024812664662005233583720710449181774662071308275690252635564729066091993791515796013346122533994065414446121567248878578553156422395362006640876287564246324279525380950900515458624046388963456369234016321216252408061884708714614746609765090487574219456372362194704418561685404382361170398447514227255575342235734559326354759113139949922596808578565088427648263093035218840765029640118661691766912274054800168749339731159454028734715052534411054954972421665869841720518505278792560900932269457110141005899475672670117710439894486082299634292140310096884899771762142729705879941691000269299220777001564810141728022526029314471712759241179988040886786430912854283035535992071165009677787100732347912928096115828076966518514045244562060928767665228382497729897666986835390415077044852139405811753647596854867972656235233889255221557373843180751196999857221538382894420639972951501170473444685277742392726590248400624431535430783245906974305027772538155252948668648822778557786183820739820350746708811672273720585959984358687804060200961367132195033125737673356179241071538114804825832471261667694827597982520806037308233256915439328176472555913754086515709032780405626152896207763417174083819613043269744328566061996208902943810167151027129613167826855538738224750001646830037516696438104401789782786682783204221492337998951460878340038311377576809318329736388651021866806086448934356297217254786085399713463165567545305702914214059400517239129631336338738250607282109640130067865482187445822730412337227902520129784557575233827913888838659235468263949136605514932531313437460354209741160371303017973483529009939748691631670357040932834656873565187879607893117291402807632344889695747024942074314444020023882499912308342894801421441664108628969967372234782806709234125111137993212146564903215793693783331828208978341632972599335547978535520375069965331326864532028098467137940566011740850288307068252001940012936759924194005287409933693691400704531666131526607033688739915465350470876987027510964948326960666676041132715622376943025713563716803064849860477649754153878981933759273152213594681254160475196109649529657521760083229519587154834000812264124537699030527913964263605872356311527003223281279966560037001681817407846084513600171899703971608213876397412934880270718119775544780840338421771575416445566873464589218234276271116944288318694608937065673692134068812212167519258420530735837964022914032996487692062981437843253846004128236385202060124736981932623172766105191152702846546290786932533021276415292885503984320382863082113938822528108765077721266253773698367121484219106290109546993191378427444960290217023200741630845672001805122174957643696409563384616848256604103257921272350603053042664307164295997628495582075303110195410012525543356677636719569262300685217283222047510981360442647634462460749210912664773729096618970094851022626301532507295951610224513062463934834321001730468344791838869736314447061945216898569783873051946473195948175285529986759167949361318663385460074060208515410362082921857847744984037162435182483153873927723917228539368674011462360777606994265582688926795081196463612896225234312988256582744813062533854269895693212316346946865793601958273686342230608239131450728134945632173459274723462437799871797711592520902176329964269412192370420577601975034823882547393126818300496027650909809251817886490293700903740134947023574636827291753942041843260682546089511725733576821434357440630825701297278411752746639355373477210442053923675762030006736129514747724573377150423839023638056761798037998846806537897467829343819954419000496202716292188031628985006171720863828192095140539495275503746374683195510802129478714268389404087940880757630684818636163631328178938696257255227826498766737762450653877136217891670736332120457323115500113233701363669150870648070084789399154981585840266155172318521477371358390571837808926695240048546267447310254073005331639048135095694348301052146502176999625455327678033736291267188941249578165940708031415309933007749152221011674918052142507471038709280990648076909641462187793789142312733368001013284998766310835096156973536207507584215769387262211729659298342761310305054028967703235014537327123589538006119869441056200085765370683314071658027166903960495612499810890893042123363507679030343069224900032433153614336680836189045582888743669701305280748875033118885145134156435742088794058093710536788182410926099829480759863293889283063420013994783659385673870672833404911180512947960343261628116551612627412256135369921385432023300996762538115500904851367200241999137927010696171634188376534578124362995619667719892795854922303722359974550247789116983520190853555052820200687606220340475174909027268360932364449423800739213834737249391917813392087202977219694424819582735392311038524604059526257023712749069721028246797498676869290204971358270177210813989378333047376419750371040842158138881752319177573498009148099314134680363585238695530990652693174626938880651267229000387943378047872299976298027380003750857690801246001142937497001826135012691623173903444913676037765773376645219886972845294280991990230800013491065779234320112839812160294250950955923002720602226521872182821437110776123571039867785076765743608022946240241571888134123076026254472805279515359214893415532794635836826374012117913045631501352331798533801360950442634611846485639473043253092715102186207526337229617566017593953868198948524259441943262846591190948134579759281398159753360579304045490751655326872491155727095008108543168520184833490981425914929655343135823994609181429511690526195495911924623660511350918374495130922929745891963406829644829228109568445740052470309601014454105034153522451792515560839140493038885110396057814963680001040163537564109559381148740815533346276688749839597625859705543039149706283231915416365898228124737934650943136674472136013988342250563219139473749848491445938474630937059250550620879890884579023511753774455134527894566634133682356782569627536870203609655885894788616729576596554677804469481375101611679138620241654426061322909761561189887884550152609731512395560575390333851479839476740357424516669822060535723516335576489324996685690881822450806450021203976456323276459192488287366132130500319284547691497578603095083482171340291662413316619543004092377197253882902106996629828010672763274365060925840215264415971594998237990609815105742342629967161184013455372174291714481887906902261601927815238596686799649246857976002177797415502812240657428731607117377502454829944415065361902805890986158052535591909387317912123786890703629121468265568108492008335325795834105126725741744642108547446681813198494562654617846881791121452413461760654517298640374931427362739217419037896783930752872695193266534560447943293777523431277146092255897368378525036535532442555968309378464303751199796894738837448311737755479085520139570954304838966076518837622808757117384610573726543150162895662476964875742403903182555320174619990112961820808714575041732323411682336095095276311300744883988012293829107096034472526687652895157114903660462661363383622628686170284633323097356655279403749953793833608883382221442576764761414597569936570332045671747409836153742807480266991984107301407768835497318230019784148626704033131836857838942811006815509073182269147281482303815552460876043814814773954826297545295270408163864345282965419096652230414931932035716182391958353884148651637069449192836397301912391152328342004408940452353076789535498864482340256166553201735915853853288449915997472732509497549624585716702076061819734848539291228909412128893828931228442787355510451932613175533155916093644764131159481009537656058639684580834752919588118621795434937991626985191318360304931750490151623252709794099603548459437687924157931680447223512069551408979692470311803674273108007295223543792923808545410025244534950973325973970266056386185454629105644504630827382574188073887043076128616234121157892309158079807079650785495521425791503637280574417637459201243264755979999628837543860658288363399858867930379463566513014383882790660068797618989491285960514377094101239247245466704551172179824297333708506632236285385079887354016283293142008918544564530856027819337961081214489537252067388949324815581688258554031966927764075161468170115815783133010902726318323375544985159891614923276424174976187242976045034326830023084551983147224883821726339797653230242773629545481986744720541557001117590068429541848318057188954165263426040171784875278406415567271892139218838265926457470584712593557567737905844952986759242461455370818020441636861550864545361187534018545197245136126870592997297467317087532949873355400293551035262910784356455272363498841970698613140157827031974110364867042665808636634027554031801726988451625969159972291015234402472187940417221079084763605005167268277616655200571539220781730018497602228294160941193984528887771485379864012967667578970821854684459597069552536888990451041242863224922674189445917764599046042795847572146511117282773812734165227040396563809136453638015451611183583817191702506291133574666142921490574568067613839493916165617798667866122563428315256047175774714749362343769754992844772495954223619764985255356583021687898671391087456660129186901568216765069009033848684807497538559784919326925670367674911478816431839901699287655266587185695188617254274520325893662155107303378589445947556311754473015058246924761230001025652324487135013231452817240933331669502031122775160660001275629328949758752866795820712786259049894988025423703093570092372448033758009633536183164385687216594689642895440975344917020428146517937192971096553549684364005604066240720329999301032733777681364993412407366889122338519910552895993689034428572948629998011796318118562866613267150408017617834264426818431884665113511580252543702186815684376979436902382180127719030894344892168933048889078668790770647186900155227804900325598403926838207100235330884614053160139743873459197125094502703067505343117688393705152351904618734488719883477239079104652657331925445279099162432236713656021836916324852442925586741665800954183063509336060039110549375994567400242678173704870979388594039050695517708062918029567473469633240775593705728249100213118788721562538501491672377753242629355462039708418887354096096297986652862943883617283111194398382199848386939841832339938822667098839888771685507862172793289500235055177569599134273823775478681679810558789658261346368810049086735358322658895748064529010653469476928203411729840195075809769261417530366150860105438661803473682780718759004468403855948126937827744010669552065998578216834994919323855918538295327825656133091280071470281784854676054575500315084807350818769719134020880380756644117975215936832990598199315799845443775681648924653918811695603139129543776604056435069047951489547603177056586883911265411983550391879012505191250074788625652285173855001669554161675313426770034948980085536406260413840618640173035489646954894924775888795642178245289670352872192639440806883469896318907408795516156247094813635453426950789932770062240625784222772308196841952477330102059833532016465614687939050585778120176982632053288262236226819883759002020558863313478224420962456951477008036859895522883052917179384425891500275222624015402104297435826637257753244972216303724573968763627618486361336843153350570553122307788091066271967347860809357609244214416717448172693989950187009752696919089786923460797997161218256175175340942188663546333199415202252022154165249284575029677431268395828532889510392495171461458133527193508054498475891552102057366640051532652766634707051926345103518191435967204963250966071135749534791756837282650156690260885447217897280142222074563445971440581356683439078750780660573385091194123935522782605026383745620873349431023314524714026038545703679943052901608570503274847692992220554030967700066545567672439586616424460621657598480554996314331157046308763067842229020140631154998201784144146643853136041235062603415431340875295274632848036635446906832881126942954667889044794356004062631481068304138723155678015020050929378867118350018598164566281163863742284512627963129101188117270934825774554045491788387342307054596647082990967954445258293873332753150393871720420253739712473016399329523504221538633406744767237427742325027826900940048666643352782346172704097722836024596909315236369205882257018034993956877669983585874447459577136589440846863144793586360567673624053230942400573674855967221761327970719596110061847210605302785341733085040840546967699873327629051054367457511206609331993901232021668960646600000294111535059323111101981373130084576512081223105875934674617239675682203291551625620347444748992519874120571552411650111092653708864714790685744892820552278161981697325379402008976050176485086839536887220389817295880743167034359991009122713856672400578917598953906035048141686101549002815013600571261015009855316799539737706752891083710016258682029875944253648425380352836787501530964804760563879669979602786183808075968591495712309233616263888079696483088580543535568176329085460397057749340055866718822754292247490414521797431888031371070340047351769202611825000374861774397504685458875107635493432124312915927505608927416775695252115518951138033269538620398354700842336199981513283718545042084271631715508450739312950332581625749845642548722818380788349134741907639775502605499026790627444912538649097432843860316648141443659671581409607387002629205724647808622585251964860052709956268875017887688735270582108799578829947330563494024012544765905819755970380767239772838445173465682711224984452501989720553820052632556898341312188641928220034319116337634107774684798273672509866024080323331913245538406697947969942384775573999463000402898826149848232067886399710622145266098625228386524430165731717583426226201791831146092741538493356583914167938410213970729843000951437755336141529831942046739319447005540189798873954034375233236571583725461962878140006407944184005666427460451769565882493682281881846698748184550344316225418998996575351498864670021092609819155547513460785530329455218637457999320301404408867326373262809100366372672692440526066803271425628474064744836504896004211230725066901449790327662184606113291315044441515144431291323813072785110579829165989973004184813508781997115486234050277741915595932071793322606294277621919169978725710343877062964390614331394674749596999979830098777911099998803152925384317360573797837426798546946543417491145083999640054511715237438764435873337546288235558539012748228356661864179613544626524851680469077087701439007847562771441112359939989609548865841757347271113193658600625948455386700325233688356767211641201753961018644135990676862452174188393780112633964065989769652553933602923761777493681854442638684906693079961851561256795358296574844170313850240312298656085679772487446613014608007759051135781765475805914331766305565409874849126814702723875695233331427055961807634359562655913345940886372182319409781890814409620181235034876173774482666021007293730681479134898909755135961829877529484170992370656663280607809639570291258824095722765187143487522284864725274169173250019564495717308563813584273814043069068639457920614727191218403848919697298998945108274654225309708256308572145098679615119745711011952055295827844903713501114149565430368268199677608185562705744353410624996280730221928247776847993031010692666413730818891856047104989836266795633314038881921499522500335665623442489080866357141343031529818504034743495258601268791807950092128551521561686711422986223869456826508306293674427953088175638686983880368547341668568388392501037411719842027096327533020582353790986464988427296205883341177774245811712085215826515387454881673996696525610946820305924028158217515772021114700824409551265088222783042000597792993532192507403586627421475060966223470280672157734375368368219753880952070785132803287866075642257793748480757065439639957094633325117350299044389121205282887216941041919242390316290333187816777935591761577509770057680729672316656389879472371470310612524288794896558981492410968464621006920806161516120458816810295932999540529370848484039019103311492487883292290751635819126601943474865823460351933945069360093121938788455650732712305674095846494043918919604791809419842897598174775226492683361367315797792288191205945332032090517422542350151688225417121415834726436659033713089231412676586217204000010856844839870351162063831644737250810435866453994133717068567324409903991595048468163271023598836922696351342502857846701105181692406856237707855071357975441740869087926967791397193561967411431992950012866177156395679447057680878254754188907415700368058616064262870666837830495459907460507732828073543757206155614652590840461892952425194305147721063279114542447356172418025988364394159168400972559495405756438514626098465599891597818330129424372274805358352229010127961510605405577700572478147366509848013381824088096954678760979204111875727512127737835775598971066221659512925870358929814823794250390942671220535152516560288212987951471023891239224587277314645704002367529883355711661818700784959342525939861977855790715493473027762823702130557844984293242013519255954607136763689443962154407607974994981757287358655656842673312165156176122659727424297137729683292666200605660024696123870374013655840073660745839438583258012794043863486887812598721138100364412636749895383676576688778261423655131280936511705462945543510774482054656655428339371071372796571056245529707898970631963471716201429322802473971460095872305813713604417446044209822533673176496174510018772488380955809644493298726720176111472326844732060948389853156028727352350883174210119629346146777581266782660781398105765070877644358648392657299136061653810546215868350179072879772795846741577805032246256023530818400696037551930591859262271710317050746325677060283982411953314222612637014765406215688004992019124189668351599386984255552337935489627709542094698858714752082204037281285024571811026795858408906190014694947735065820015648431616347000622339163518695058966534848027705915908695896735325187387282372749117364870065889395404116785331940646677935107007095984739672302911165466051753079874726809048975938177174716521486490045154211264139992969929279377242141318719080388806278665700097773944246726895443955979598144773713442756041563625072360646977016542245520577228083873955724031089361741300140348255169177360447596370963204307308255149739711085373768058438635694429013610817198284379453314607527782838152173663038477547419239345074642832447097057910410548335550131547737057111864360384905829489754724347765016332313852780748846077487989468449254364040772654954626387587483300930787092719920207615216656571920114904571422158985750139139832376628329623948897423607992190501554904744452444321897020481000472859291114478696712498734287502209439506913556219057837266643668158045063711653771872341664116388605907247357217230402645114736546924157039365186277085601859369201619014647500827818757110485982833535309555676717869904728891280794406592676252001312896700132642617885531047187420147411064564445065138053198027095176661788458837555399557949265615766117138210098897312448935196719900497344978634008623370413443258045980171041274990799823343234766097871142246195733606756658905525948286452060259525007057465576855870358216965298832312747720564844526002600406634142770040926588744466366041875469508028232077262193105110629004740123203068602535620121611601398706434870328220108120447484134492393170533322467752529298098787902714233636496510303047231428108759980311997322427445489250301661477572871672997918970425206532252438352077164924741222152956063276543669771541927574251012150905396293276096121424342437714517185882803156110698489005429166608921412855148732295799811121878814134668030314005705724708807740083175909365679293607496927569500322671860869414695799070227647366204262670131707892656879670861236539763048787278822607640762267526292922516937801885410183697428250220732940902368284876250971578466695563052129144538783064763894586791195118254424162449844262887402250871229613530555185309851784977101295161514047274457311408939855515983668855927767777992042318968834535991822264734713489433180963990849196024018063017790029263198601778088355130664113527146766709402592378846969006541243510540365133535357504884787699362172809898630637292192211449645135633018235576137669245515261059834479931518765741552246379064900436242394970303160894079536402428499567019828512567771460680673077973940168864435725402816750425528376292230515034901116072051432491051724766244499706432112426401603200830509562379674655166048211998825935007012443397491037229743821323458184666865131056347986742767609692530189511410753044582388823742293881136491930097605926448370094800150769426657894528346213592350787315440237033500696392122678881260178932787209405839055474592379563487915465422791010737315495706957030396213760547095019504941493412464281397276322949019029412704404755667922463909344538782517399206799285729561173720648676597007992611168245917353441623873662892450641629487507699968491948457797133304217211504075514287971767465596785948851787090450091129616229497228599830277148440994016173877000355059665992121277680579025867436225498333514984911208962491355553471001148517413079405316405524041073448581451066723303506123083707411297794798083453869579849094828070236888858729720334609003364280045914552175792196995816245923482181367403728182968286338623250056925559130977184801233723978277060721685100703959899782583193702963718768586583064172860008296822616139752739383564092072288490043590285386428687008392692958757120876778330405564083903347339171812970872809927005245463137560513222985010569827150490908538939905530984337018689185680644465768210379115728452373553402491538897615694865522079879369476083274829917255981698853716864211429409358167707794531743142290054767116233697690220255549889099508341643607068936998470190412858330661715991329987912608772429178377113015310418343013247386454670559697083474018297251453930780996193580755667334038683268026435532287471704502263622646536002622012537012490384278700968257752624406315828141387160136538579474112708363034196294928910385001718777792523054291570187642039766529893077537873410433049171818691412114448719427485491076167828391483992189045161746212700749342205762976226517627703057706539642794482767519370666096563747198800363927654998708690984879037276567714062813264484424751782165511353911291132963897026850796252352351036909324378441913431738190933504535146874106941159434393024312051816557698578075700297002265654441308001539022051638010389699828681987029031005196473859705412924346855463719838561519038528557828206193457689170180780660054473415414513424155692687922713550611633659243152278051417447738022805399515616448502796904786905310300439781009416027932935355067611939657117954850044723041774451852480715709452160446627360827334675539251221660601571718331154644070579982318372327838246628393921933809904787904421212861478256456215327489223555807953402184001632267284384427062416840362087094412690073562275286685777341621536912856564020336368094408101995669390146585306162565883812967762611637175718705436913293036852541403318843319527300017474318638355772952164245578478933232197619186700865636926169598541809067079264054591832653594836091721200497996306269756010128196136367695269819892784055083130782995284766225837602828078885052643387428819992602743309984448493314531941044382581896564035395223708486178399920974052731325659587913247927737904651125208364546970492742652949836637114620157090938134125942887064801882385436483166746112184706261397835056983727902811190659567638529328701721738963230919146912722700289358627281249591589373538619943500267801372511169616630847103354226192191187108352838335430174965746580203461871051280925609596232958086544238052765475663587905563848863181244283319684885537341658448892177701498394054945414894463497895093103140890793324656716343320396931180774552400625056427058233906646523347756548049888906029650082980937527000130275815101601558123876510539859890661251407288469009105252949769345465641394545494342860992376488879318487095518162923498439954826313243810506659907163326258149453643093685185427835815599738734044211370149589976751213988385723318233404636815279264852414082156583478503958773349171254777043541281681981731825470465429884637295789175874832553305101232083629973179687917175487642898208765092550060982718412723854703942646051616349015352772817805686808105652344227489924014796476351805193740049380580285463184022403254573738456582175174371273672294009298896782183497336570956553852768062622522359332900889484076634896911579951678071811821294119817798172849139694425212159981119487537221691205358089856084914174949831739748145269586217598974282095443243724953190005024659509061489570094031730145399437542725939857203631918859259493007629743105596181160011981545378624076518109696997889908312507696496103106266773765037039540500595169749310683752959322531146734733772457549969500343970404774598532875787591520313200087960749540705395019066992512434604963952054526732162740707537609720219812826437764521830794994832064888584495637656468663137842282766099502617051553504079577604025518910048414373375323495100366352796014350483130525516704400450095693397853293639744597660121715579882821376916607307922972134946659669188449479736420859222280644241872210219594162652140774591140658124159170007211964116311875223592177719701731974229832015749586235796203683441953784408778356402420050825751710311888089097237551624227846306607232221891682272610852576535897660107039043496749709958501077571932991299297395643935474254948252081808881625483972820946514319092914657508927225384102235007036513050891142681204956933893674715082580801793348018240678222752793919981913593351471248205706517443005137460448688277539530320245746329050162822875300710508547652646201764422366293945749192188331444651038918576245788160521735753193281409800014854080312622097590518079093827175430334360646445731469319768899290736976184400721202064368276838306084799004678451642580674007320016842395902204931147805343037624171354501861838852983178713786243921453580500305973647661207732170278899755929105356956992035305681252024539275665971089192607764218879057997673666898726776342071943854123309863129541127593971209829390517309955039909636666680121256975146184473705131063337082030178934648473332706896047536719351168312589901335153716546667974470862983353637998713428577400418333799570448267550111669182315013056940285742730490691455402623091273349296311905357762832837623887737691173885555159300798070858540743861968871077685011123747735244994182849231355866456917745336106652732715856945858983224176092442950434326805499208018318850173655995169290073800550124756981831823214083999010956703746830864997646167117187732203050242312020918549195164687449653609324842877967384154220900218821705183385537235238561407908028297470831148538642136375576865702951070481817756126032070500829304729347631379013531204301196350394155120282880008907406892390963979926242746381511777592479260780255344779773849372898213518950486081031458762379838114448573856826825171705580382217783901886871873573403259219029889540909790613286637549136562929824248737048693969750145422173216201485119708704974939763812816168718663340401602890216362535830621430704358831140011432798169416596828764629541207256619977608619323227457034276793206614421265730133969976296461458091982302275661953567643797184981153910887040907310777054821959809716706875642087153275284436427874419068702598375050161773040461300227312650165714892028014588283408201545432187977344604160569350609920384870399572942923963521899717623112144753018172051768459394880280694410213867639088617954790106327149367767666634799842966155427180470554409651996840202953703095433178518458083280482815965483000856262032154176919681288241993311688138500756179400979248442390460927157459589350318738117121331645308921285045107054250319917403915984412082817304854060854757338455392963326152360551380889172259186176875365566724861364092693615604197037468242768698047508885007941496486643849263284078561281673427643823862034308031111858416149104588309545744293343934034484373830972131472787929133986456324901729852259506536490421659245818146962408726599953773350051333197281462989971205977642210194876295662268525610676452219436858105261557918489715767996997584283350051743727023719941401270439933026594856584868424574655022588936383890840554049046872162101414355923798679042521587094907798129792004234922732344610997566559593357008185782959737838395676711121139769732071719760314591460217149536827682314647822752216030014133524209834171741190476296091835449674310134196456058908629526527727653302957901851825771646234612497746621638716267194580130135969232272717652264651930032458451823143675503685741102117299957729740908011702913401555460505691129839267335039447569912258371187630661757362375082755807101602813155896773302445932949345959365380486220014288744260477907212432759977750427172978346947616241853264015104689136267346501856516284360977003387350765492342434923946318616307616196938271139614605027335605207640937829059270482732836882262028109209434190680007786262157570725065327128529839257725406310185406985782651257708142825922585043260498552846050894692956463847662913281203398836314303594745641611103561482692893249583291967470382099482831133871182368359234200895430026768095040535193357738987407970919451107334752646143511880422526656621601778153811650569111686041902601307051144532980008543354585870680670002726452830679238108789940580813547523608844335705020443499003523309380957709481623659212669088933537108759294762716812721860701362124185064973062519946807074146228483132827308930894196671212538121739727352530562346000929449517155972061938142298845746934741681366303518524827267410766176377552011360934599466488703742896350963211414668961968084004686000968914005335785447302147491718634360909836058247857914039035302802947253574323938112282616957919070745346690603400472773220382267701727997152544968074992707858916565031498971581425025391632218620406501941949583894137082278895332156069175126316742316639293683700889104181971070567371198510936325105915899246824370799123214594339539501545646418303132011018743140357046886688692542518173823993706322347048300957460943810072587808634796963349653875864798089806218753802115884832448938088019837468009524282078599280225770093573384329773142605928116304334891193093068176737966033983239316111972264995947516191004857299120766925329363919146782152810658071460599276675431400728557095322793740242946893161825632944195560149549231815871496389724936758975289762800157191150794487508401357794218712137716962727391359099885768193856165650236858292543984671604626644758033997262812197298324786191056591169633227710630421557323833879229451467290433734347359231045100685870744558817737490627229669955383213128308473603530323917614190438859840845376987430522006484921052652966546954994033926556657089476825957828737172327839267918148043925627426007255091052076798367521746685884806977478140843759408302028370418603059964836078655133234902662436021610267905295804541774360625172680204541422363845719615479438014911084748181640988437369828838587745359692745598334924500324653899786910018021610892709985776562862573468008111169054923571576287848240607135169019494871373734799339965984522337205570110065324056627689263213305951872835018728677911986979933792926364696017453060684284744574568039498752065492929810153954779684116213238465324400287887756777178028849772422013245900624768876556653079368200229929163589889093994465959190528864775441802567354096075486691761265448005775755406012145209937184932526128148516182530923244464077335399451823990323442573138835252139784851310803359534976994052524086709740435017525920420571973355369698592240969949446156852965712436910706621902088021108203616841982404961661300030618493884248019520313373619372310955767253157171456542808515312112954847122151250441845360352802409097456821434759702854782672746418038529296320124696375533344116223351286580060822535731126215592973332789224114387345837848545724806431136548693736011394059191722575571930065546775313929925291049033690947601216118004814501862441948398249086029722122458299443607772649820664931355102780618957630991526729960115045164474383828438813333468735779032910011480589161689165220519207463924476777270617830274652863547518858777628724357089126614439646903430227305299089884219517959559195074102572259458737659559509969542579959878197528926543445632399292479758426350661922845793837979166893053432824680512665261659262282839525429504600617077574161339570573252348129627010490220157789738312098314887021051850982935658575127971301154270643428300739349089594921599705370864859306798592352217606884376037436185972403643415509633507268685422731760863937923414582836109288676896603170795300829644137932915758674154486936400155558676501570069602077871959959965185801682598791135910584829416170010304304130513401710513591644956556600266498878667929109635375828796569232280570309248173852430151928718329900863160994343531895946628345831823443330407530724687635275752019966732328512985167489026776695005883572623754646156349224716272797901156304127048682729645548499627288252020334564671404074262610461269177717592596035316701615655371387913434009585093902218702682816280491259423211794127928952541356255174931150135583928429685515524928388134372785492974133870423095008267402479413176288318121936385046729313531840331343778536065969673579219344490319824304654360184012482919059312062589654398125479298765253259058223665671889521365853334181609235462318155315198067002086012727060556063819687310554428022544902848724355250930644995738789642002579629355337827451497041363870109112258617561241630311984221027606006103415432807620364302902046680447040227694792025886633609262865185807437533265944320911951804822087790586093692985569754289280754249035508130781435963068538499920465309662128548263323302371825994542108972101849179423073203894384634764378076567080088435469199621690803447670686913175629334935689298867029439238180067692419448023549980363091913226824550108597051831917126720431698402499784074634645829116271429616093217182458820678682116645793508778036846146052721744603577006829353248234441562837391183522083604652610076767319567099163499003487945670888000765167213101691571542631407546113185635255415623043071226507170833080404414691808848835073880515442786165778148012219521389926425297518778910719971485202369002977863803725370201583435265603778032654189613884303794456295020987571847835822675158513394094931762600893916220600337551814558052907950365874089082381320465194674347415729149685804473734468473467601541384678515392361928418056662259066587131837202481143184159827534855391096382171679992848573611099237101587403759119628292252438047302540984458964402291484888757789649215436858756919112129863957691392054985875516117541111046731518960655635591652950379170461982609618908394935698199388999940832972606125089569951146440996050218136086392572115877691332377834889585735989883585936643786815846643122403046917158840489140203577254796149395682206202837904134877305790659122972735386052561375574129624488687883676460721658504924374693807868265374609996164354331137418047274955566533140392536186589549068764555625344054949972882484089918388100562930352296621010532058175477245853541289189242341890936260472072073900713143703637644664798521272008885427455837681636618237132925931836229973486380188512354197880252740816294285485677186402187017999529594614937427203081185819797355735439849872697827218508321888463950949641685023164219530300943742741965773315482721535945360581912377764864096389619879633297558267302821658734868237102094479241654032758028880548606492282138219276955824365334875531806536945627230698089458061512730313565510589482181087710412193274076969355756371893647592987809356113706118496076434466391674202874810099707354389329520260731919419825716866400942127590439775237068270728638063944536157766004771343311874984957123655284200151578883260802236844072941900507536602508825438369926602793892047540685521449312395895632533220236377250650363034784419653620078460706322606386697271119487782395983290907030370894531271837293403776110511586170642179878122238155815798723358048133418465596624155593773822763882988411537550698564624722560316482048338200581815943518073883309013894576060824911561068092209606159113156302438461576964484850053458810850279151311000380080730893190406314272696474050962475090448047236060408591477021975122163250440460671623112070139975357556032158799390802583950564693876543455654052673940560251286258783433360986721818938954573999660192923722066770470240188121103634607149828214602671030239065688839051129255458890991424611898605933591909740554568318373095293711694698456406695841128492298850479260307488065330683036452603091806667464114826394164475159194914998642018409373662080643755242088540203424517178117738446097616700895584370587434481679628960927137653724691763199435316438922505203402743786044110606914121670587600868416001123145119078737025568849615167901462457872839634766397244902371458317595507809617959362716342887576666417240182281132081940538407913803424379429714693077920447725913778805480034924221271574708647176666582595241714649450261296191284005048054333450246043034209718902626920270259910996964463384064090923306968866212304230778327922381620871965114970403697426726557255542996826591329912770114698403435530890309918248394595658251763454877868984620418274670542633972166590045994915265029265366938901652246251481564368871110791576144685348629110065795001469766719412326159028344248238024874046122226747143213910330199861290056535598999026761293842678181192452589322081202590581803708221463441875396859068103365238790849566789919227407333865808340996857288649074785701706583040947884647381376048856785791282084045032792035377593932202393788585328877755344321145231230481778918900128486229138018809175332504387676802468448356404868543444424980048008496755970831233347116289042021146038602216645201412677127125889508169480942719594624252135218586489708310994102667553905724351640040112127002432308387952210621236973971867253601870351445833532348254527013777982836080185839601388154488049003984902341545592073686864274925601912099707236582296924420827598140650940888342297467731098667825757742040461271871188571891589909153216869677145349642386432957931262432016157902375311645472473353127141736195213185100442145260828425902827746680920822089180963324303318872737465252100843091632392433508254091418545097826591951914025753245016898431687895377721430437778927941065083535667163872249420392715050613685027046016528745339029269397582540133547733980293340146701503911166556837645200919098148610449700853828711254411771097186447411408203665059956350308555928314360330794330257680223014937852386185946689151522737337494594869868157205404510551810206731199510634713724842863130405613481181214736989439537016051744668629237330962788032167600319743410856269226980744009141420188310139536588173487418299356918710530780346146024710208233645433095857186876451633753437086776833812575183684023688455989757187703445371006247874384087859493552033379613769794625168794276746365830890700755830852095681206372055908498095705818962430815565064453251686778686916707658653964559039721619605451598684894735474496313714685478599181603639429008228897241464171216631366558195982127547735934157000373622150702108772368268927749169947779280527369672796352707015380655278786594691681134219799376736639517507967531473522336827498197309823078265800366018228959294056972759126689077518468358699908565697405015365715598329718085431369600756982425776094858883001029807154345136369689751564402921550577339642990850081950582644432160407212574388204344684737558209416348974076047395043234434039467476104306046018424294725999780321193416223743173885044813363012837579109655439994182574612359927551584458331285274218597688437374202713672371755788974064324031585906490122550578203778143121846674276154037133437546398983610659828204931765950269825333799237512542743361483584184163545513439832854442739357460311273601154031399030850143318443295489142374295935434349939496831973730430723383069718017641292994344773164179930492048977290563530045649664416513707953799240943515830362384408249501070202792178650239335164719907170752260717632943508326564967686594259180336148190227606993436900387240436908711148401508192085151959379071930863449078945627267325296430075225483357487243192630600823680538513781467417210388425659969781795089564234274055762923329520914936282270632245282044056721056824954807492014415540880535241462443651437557287494379551806491158217401652847728794424014592454529767339400747686164930524679053960962438521774020550972812277538350954608349874544615341928406138603665125923916124205226725405413534042885027779516825430680448511625567943693055665236331145596338376732738550977818558953761521216410932446580813293731969883402468923550408185330008033588482350184377773931686329300520693327035270651111787733189359426691014431675748146013500635292007172222695768266136599421957888493714204329305234846135732538576527356296854644159129631303590649832646029881048543969269295340500798892536977841616107479144396770146444940186141201642321012456701147852358289754965130978426828884323714337350999546785166729307395394948591738261176955129546343971813037262620271421341460267489479383334615714987771487439821754230671835549317206474270457391173815584187178389640030911710456523353485230387226908649665340880957584016064895726084463428477142089686208446717116424796562444591661322437342080009943821367306545968246022802214737623017559406643940115048663551770759030846061217308459431251343428355415054570042794659521291181473498815506311648257997170845936945128394156069501184420076055538890720619805894304058588933516053479568255923931095559169069926665498694080944836527015658853868504581728240426461147205076156984309337674033544670736204188962733997138667819217483154404659000658733478823411940819948263962549988582707162972222186396872182958660003444029066140484553922790228911109089752309431330341429485147211045412947213145451537331717128324614502857071480714392057217940961765840896451192717836502507300729680914110939373485427261564395395720776132455420408953147217340461513066120372557536129115287609978339523717714939104047337935444663752305422772478822853305839940071742381150265353876415531549095438926685242517811741999618046306282291949613173210984976740141476166257064014382616913654442759076920005119085363137388811563676387652634826194253551961308211190860395142985832257642457002986657134585610959042065815643521252365097552079909322149064575952065792063899919805146144338120585245936089216179941110825685136193910640975806123612115532525647245972826529490480894706828902192655491697708985073012629355746168172469609039783102211484800316577589414985332409108155606700930132716281943586663858256900406249480356695797653537881833843119831531371073211200832804665322458109252173865210856223138229921887179222496695295685988313272391195772677682452291551759649536398797795037548595169925237386774941637204842769223485252728001471964575985548634639334825692421585519167810811690312395533578606844436400132999493885104493890274154186610450224633166241238858864764991312456609329318814017316533704573681473092321099593217144123265652513449429668040471532002012409212029203936146733036618326647123009738857955403723102206959406875569463106919119302796107649760850431974907511554863637493050500965577990713608624037581338801488154000628089986871821700275671816023326070760722422268620390707519547590839428471691310664579727140087267702188791987203055340810347613919828280445539443507633283304033114491358287265885214869509729989376743169300312603827522642928603158915882628935808799146386287159689625480698739193695917466012532516235247526509528686237068187614358982745560723004631478250783558318814269844623656820884175805843971855733628560514428499370299802337605510753516306455359776547725511565391175609818995970507563289396349803424980461917133291060606234333173400826189486625625393723673710638090149956662543078708507924961516312317339983510063577349918272198011409351101549084601159436702995649495603815263320393107877036049636320250869146258951350227636487969022358851006841697242441571902582935134793021043729480077672539336451805996546662706586040638162360224923212248972434280589351679421824359179426210821321438481930090001582291806534727236557717603572626019185854301907191774242091489285505032538263478732380678196950585510598510608870718810490700152317791995222454280722730137777445426541064685704865010791190962442153348171702028329275058178850223169239310981427882571356290208071596732617645549260986182123593566411791926288370842982421549828125286702466743053389762319208401883541293733897345364733729705158580770241425082742150859100001790490120587682835564070083852677902942127035372428206493533817495033482099661488206017262227210053745784753489865232113661133975004935354245127940626218592115454111734782308826384557760680336816260795700406290607793085342298973163405364336591555462356910778983864570685472541001045517011799370178118834800508935867860777899051847248422181386173429943330747075995478841641283417931368585022585453721095710245548646098334605314874151024684157932811237391404824610519960116941297560837750675862635053597824657270550094253523534890986371491066818901798350799506303429161949960179323322844297462013501780861153782906865465294264893298881835640982055179259912595060200971233421456566323261940167638751986099480036628057510340112294893251904885606285697682429897325910185708450793311077013630495333622213551577156580557813364044371204619662084278617154028923672097638636203876822364419126823813479111538528910394578749206288936080371275558916289914244623065707037851229192942855749466065646435994878489980093081666628777684167174666003648187752705954670249652700684543313939316850913225926727218973926287956682174224943232786208957605907634391704405103541768234995095730843701146294863751842340634229158946250285136354546635791580521051226191791023962713669291832153773714805122914709256285804630886155216042672173203262359217614331667094503308111750400058244233253611545300691984723123005738907160180030366484656776212352099059111577841621885901101097546065764807468400159824185881552794970394233075191324900494046338537596793356678331590925998363148660425056618509769358761047109490297967116641247415226286440963761252715791777706858531463590347810055372745925252362081185091044581802110800432579427628934957400502637199123205590271813535496895787609470777389498037415027162680389478101201803485445032621301266048632155155447508780848162124563449796539734846409959200828905968845050737167725682035453902105240387656036493754799584316578741425701255356557718237611181103886799443724683905995160860891391147478810028736051823628181849302181720569441567237411724623874171423640309316279135260158541857925326498852545451592086201282861466346509131480411266374158155625110415691488133017579998845795952241462484865570597701230576256851787431433442229776877559265464083836663329573155665552798155644165484458112412012288737412718144677898705106373005305209418348481601435987929183592892811704981046906544394521211594205617614371076186193231978334671479221919125606449485955552660302080268525164705023947665422838853186010402375647528203996672570319642408115610093351878763214074432893560068865548809192830101220626432553498795912940116522114810575256102374491141463857312627369703095977346928151438460236896034417404584319737912102711277582712864300646841898494422278826891911508458959700325565204417052137131284706459371883862468422017368510009099224877650284854348902715502776454482149811749053000819352381979803717014425658162868534011023623029063024788440106985651800762225946872319341751673768181137052253214639491599691734799986200345631606549833014433882006726336705875841734750467211908993688905436110135353331134807850374291331372816390063229154407104656822139348675233932915525700435990800286605217867470418121822306626016757095109519946953322635430100573687822499487392985686468205749023115241062456125640402457419259930711342841953533208500823817005083184657540454189000194303141675226256682567728952992944586287568986267800076571682895542226599729435648482027603485325490193684837768951303518303033128640651022253107715124653489719458391604424076890144256989277566507284790564817390794082653026106518222979386654530768075912646371946199636027420576204990479116140056554759164571098747777914225065502236422119507892414379450627592220706525426870134925100736425729844703726905541089488727637642112335836099770605686459434756491569693880406456129662280971961358150921156176318780015543604352686307473655080703079515804461827395713484585390040907218475723993669364551201547858007296440435031489511167426957167292530665102890713698300917384082282064692983645996134763628622456771532435244887482671340517103512124258444986679374575371593603633225648389857044684651857003277038811287039758230826417051771481660311684500842903807307905084960368083667039249467849368172976405523313845739542738396840493190108265676234974496351603878669766768354928056516737222075660537941607552451486402828586824900274047360158281120869537802239495726366898309372508235775890198265833748937157295208661275312871883677929732082255337520973405359537832685820496800529494016197364610258269608867425222365629433909058366536672542536170511812536287552791445311327833967442697751014949622609998542585658339716271987631393038380149689429579373379039836786932858008254283321454978799817775264265601983819382522384926152958457945847824348444716443677949843800126070326340907270271063771859896482262310674338734126877059037365935312895530998539663763864942912989533150405330731865685054366006200514827036293077747085646997667165210166427614693855916738660617058872858350716342654324591251694168718464815709211269497757358943985724108694989706969282003655101271240574956148666160275972062203163688373255420797568682416326026470495259331199316017299184213516744682480797531588551973760214878268017977173474922930442667624175360361679791859274584362966653189907525499945835742976215705252295284160108052268866573403413088481873169987242232822866402904828157291495035044247628143543307133610552509408132172233480906219223036792482942153718592178127409950424051331991775992907916009424830086559741117684238666724748611764136686504230328920854122635884485216973355112785895154901817556114720883465467104707474050845999282964113502201272386100906279907723831487393753198643617424417693767230552956006199778189319820200820614518154607206440468502823649704356797422360818517422071101137341721236171346164378635834852147414540834771919168894992620142292091790363102870027735369549680218193624124691745478793894764756516594806045180817901892144330959134567881702594205176704692594284126666772253291776295819139408746662375916378239562771182865690507566154019303930358578785554928121088469291608093512513447185934810895909334653962942172474241594448211987724069952554412326336574167416109838585033799781745680526598477191004541589540840733940575189661026720847132303749245907041207582838841319995466617803835582070897951473007275681206510039359379711753831818288103609086132847758833792374673759276893995521900254098586426556941716042537605338130173707688106067442633818411294471873860535259731437830149902965640092445576759503353505837463252203920005451646107487025238638583086715986227807279047092181834445113636308679831175358766648467401312898584234554458590995925722994074322395433741154608588332579060414187490556220343776553276006053214514117526748762464977394887882044534827480426289046885550398562579811134931367924132498206784371940452361313226951698669537066051141391531762351041540101558652555385480195787920203543660784738562828748477094471824864075267301186221957146246569013169854097336093598232305306329323212434946841127024537060582537096260242127123031771853161956690973946110099393965993520915659444366895747845119335183074291574093762435283649615864145043785305946941097419871332816806778476945774932031651598856893131125139663699667679026397852883833746302289908871894946223028418507646218279813283642880449850924113698789221649041423239695149882996379446677549495007749416849786008888651708734484656883082906036372470597696967075713681895407152581616377225085645050147425689964780706796547264464133788528717171614275715223712569185870523519721526439930471984379877146142001987974512861027798398283296239035066814774872863124782144729714761908533034045769597613344606697277504731353370647987941769082253341014434459309251308988368506145773833515111233768173384600646567132187931722561746968891987352626890407450120436617297134839029788360811787432700090497268081001723806049678320874909766881636454048612704296678193637641446242411541985557356261122109827809912604176770371536092604505799512690914504723583302042379955642703176486585607166384824906170676265939789555915823706320375530935968746219902883766512542685517190921832044885385042589850024630977292170747611843159016304851544902096810250659416101927395447198205731330377733990416046212842694544063860808573260520416700393905050236657285039673733071055621026364188932186493823407241371447476098788336191098773799684196092440631469375207132676740165218267864302393631724141034387325497990298181496867435050777427327822213269392880110881025218895482753918819833018659541592316460920271260411708741920019151504498508904039035784678986690094373486204914030427051368475529108375466723048814458044435357689178224431980254184183714657266839322802210822353589108809879779115021324257438006350827230588021724594069187638215474475326238868605354966637284435787834559353977721895901173331291240352219574835001545910038081156038749627654592953532551234166664948659562048026087018331133157121493526410763956444538577204999512127632006540203632575968476006239810643274028080171272370586397246517561719587125488583385377890735437341543680470981573903368536707836089154943554548538476470120580577085046128422546588606842700237463125848012334004694266942491160309864152575073677684305849957315343912148437112108652670446498268139972613957655441984884562576588300699759845628397158705647312260361817815219183680583452821597689106329630173289610886413674890175449955256211459512384498780267915963869074256837152464501241437768082607755266781153672716586368251942034573158868209933841704064904509874294316566958209139950880528346078145808538133190361121755608099116133302601191239050951103932800396036395127836542549788022311985145691559414683519439395337734333734402091611543810418814653180487202783138036572029781557729816978270325239604830540117811333250128935021231663178837128240389819925288966768347816703572842897735127611670058711820140546913418138668604160081062542479393374209939836211583725115776334631721548692146101283025551859202414268269852793742436008430121931544941856373792858306408737006927202362551106954974829329269812466676431984128047565600570502596243126941513186547005291870029547502491511194717755889661865479466302007785582191294331071017372219851509236746526797266426331326221936672707463807617427581476893607559024478567188936751108215762572481346215425057639904524658755632590306249160700251110988208279915114321419534245509078604447869150361922014906669167744199878959879602128377167917090106618621629179213412088943987670594229723249133987748025730351325702955900874312210555534275477698599850842942147829790032638162769425455225878950872452385365873510219764335497854937365809762285139664079358174939230708293657872311196394376450358765509453395037511727759069596973069465909504327437031672028874967339006324389892798844514111667318160132208636841689559338001379155433685738019126329359599794912682792148752087595482930934200170824292324002096734855542348337088483632928132422085702507267035378532974727846839835097881427201408413525313371873095462309001017774162710576859096969981109623743383050222274784736540792342638366321099847967988528611083810959926346312019917949099240405586883658549840963865245703456078800378843176710492105621022893716720955646421537288577325731453009349966703021655426347449025593683311184844041282506402752907676803741210238384609631825664443255068287776484689688451951453016029579113202514764270294903563910398961609157875301416867799304883394342186522848044173346243951131382043951172051367545306213437929294091622446822675406344829622726270980858430958255610860771089696003550001058861377755737116124999843681434822777428488942570030266159164538526010900435474143911022728507037869116095603223616428364254626204122091218583675361666142375242568485839273157523554179940658562685480063207620423877530206245456477174409032592008273336556377315588292272493909752082693601698533758151949142449138638396758623040126463424197415596444020050579302593611994885595213630614907141773167051706440139215102956800850724341050522559216420936580333314873337186822081238775099004643312620502966847034701011562313437048676950891634355134933818696458944510891584143980352006883441213528394889397917785498391447925151571377076727833759852586555149391948819576812836112119300803854089491864774567995887797994369532433118812561507473108945278486674756029572224571114189480166619588459893439929493830557659512394473152129114072217622943013783976119464726821394851584880060488998821718374346039368600850235274402762764933934474114333469740880746459253451692689716539604329595784386341048438921138141389118409182350137147660733958571061205367093347570671035375326905175108197009055382239509213636032543042359819556676065992119918075010196498206439115160079740557733883480877353986282154627449796875054848373949043567172684500704837735797712372749775064352016975974980509939489835432830954822535523250241544547270460818035783362782508625729923025592972153929967587401360433499444387195034245492853801845801150763748828009614838940499723590933194290410049461796599853859976950936893610042340455789748557786405748621732925778954414911091529555850324810218037183115752135615070166564693420967583371944163832533607431692575146220479402476472418923003216978154332435856896657427861799088094555767757222949936518637977837707298076218023958296932567058978857834490135030474716441580677195084113332545103393923429453264371345052186873228758525028536231562336943432603223967138303140147677744679663812521994017485956158236419855768236946791359917661169050384160397592178641367252042073173854698626723943210806679252056213623721479127767825270385471892655613092135318575880353821689992618847017371587601251477017046052768780016445545790273370523547030220651736655857556578788127522712109797130978640667212913220174427394525000448526861982245485832531280406167749458339805888145312006916332588470339978381348179468797224412453156924461236018112201858347645129109371841724612607276366591334845774462606995038632129546329318626129839109133325171965829436465002910644822059440158786157024156123782198107431455547300519170451350543879475257504158970663399183276113828087715799303341189888688376490306348915097479282110616091859689146691726669114807181019412178117284368559668212652946938634824308518126858004249566107433806001448027884024251914673375564199530251466686265911494831943850679554548859542812149441791428032472875454056478170535076963992336308796629699388577523521360238488491713026142541453477036354901225495825479785438652282404379050666654885744242719474420058684520802743342899864025617876351613709724005409218057448862379005486163099346616469464429027791128542666679565084244435412745979492586536518942187699291217522024470152616337416096967559095380764050830789400743646931030907815818921964580577917458965428911860035554587782637412728279314869527647379079549453261983136129789637671455188454791698423849941288272520528602337532312045570184079671390575255214856360273790651573007468554020000881444082798686197749827168708863984801384672134353931548433852758219314316316040199942601498853409701019047389270026943360276285642024543443499956889648202730775711269031671220524414009422779485658955992228487084430415349541257844564832448801114836451163931364537907467823820852196783312694773274699552734811082430351082383871027158311676154068314942435267076933230550848087091661821871271862200964894555200704609750160752278731661937801399023479209800070415881535913338628568606183113242477294483824490417002350452341486036400404420951498440801221246222567740476295548158351129589521934902825847475508925358310530774882745656895088201270770951794495986720185355588351185766730042975588110768993675237605449532404683694685872356325995635435310936769306787065637823453524561689918190281930217708254429085219245666051774675425156757473937651346649963963959470655276068981280141773252091049313178765403294677501282643980556724222326738979171618311307209821210096518340468914439319980707570683156317202014720436375854690443594137962025348654681831477864416985965911044156676346739004925297814598718001010735091176000196879091231936600983929607315028004131531681611453936796127622622126130056082607760523883362888756722215296483610283883355679299478173134145337873318694899805658164474591806846410706451941349582591189458152913435226171459842383928943560772135562513089883522188691675661674903159401202795936907330610626252383407415955168612987409744660476819567199789954765998693347740012314551106189080112615818664593060492924965130097843165847383290651173041989768515123149564751052737116754992787234816724035521758075501492208137690146001676941832655979535343695135638978354267710198010512530753102008306136955142695775945687443491050173049542764257390644798785250139823156031321214786019453864967187618644195518453724282269931901004314393599115172521894779659615918561070550266809566025420735690731613270292078159782597096110660421078426260797139152937125254427917086093426963672303639107995512252826088034499848464409069463047628522277227377927310867123850803173671165109975693707854909706160421343558275224962072857181508835210822657930766614342966473958234222329161502324529309662262652807913229661819708823813586460379130782587704312845228181192964459322457049431344886055786910080140823977503415025653081313258018810094015523859018519646543905232824764911821363026730070630671524989402200318029936265601678277411150934280417615085262680016989185864084097983402217432486936908314785003291229216984630110269503686495421921063563691186102138184335563735852278107781705890293954326858352301018539741671899963461673203100968711901518113758066073891400755912875005126478164968394884784095217556703248770538986288808597336170835955978228194982062786075095105785207642711058009281718399451862674754673831817522842468545887677001327558150662578591129145372833570018182701824248694049643415681556252405940725416712972138557818799435262369294775492231569494639938131312880762942834430323794396573818647630957136603879612819415516361349873259005040412669167451147920994596718388502410968286241000758186230137285940331523036762523460048729909129832229446144568742968382893758086736795176041982657241498471626709294383953126224776955526374749150623230869803645517840823805904153517390341655293118842352752671241233246757861893612963003982681668901606812993070997011088610956131285993475721659262978259587307739601170895205732099636767324672448138892045735221102208922306363456812682563488404158100712806579579829313145375120463463910927012434237458329735466048982266487617927367523502890271560505527683381328133683915030111889483892936609497212762977150793232760032806022567978018907924170121691680270665487285943678078572613696064191309709652055798682539859292699395666529447564083504361894482443985067927995986783100159955826257882308126784025604326056190358441015457032115126140181658917328949663171533635345833446407469830430339144710490296293487965860461202653950598530307308173023371003567175046607543393950555611459098867599698468099369029557892683790195140245963880111250106068285248847191702187878185998209411649483184199991879825547259045099510140443928511507457628406911535823840002753293746867846683444356769207486339940905581662749027727193431714633793196787412846553655206283208507092678877927601055909969243997811729043065033551115945299109030566484138085764269953113842999474641082602085974243239058912385576478263635897259033353815844192543740396293176672075554793172269627270222550182713492117137892494567892663771983208427058563907930104004306931464818211716292042724008177133678509103068938045291345728597776194981655900074531384995564108486242842485961329664048678497756071419926961539468308950006176023493135393734083477347282330774283976862344531734089683581003376304669516935640894853409731134526108942363541470654186502281738840062665643813450053275650770954117175154155030843388502007577518253207360033830129113995470160405031521935551291527423603453252913021028214824720186813837281178091041406281144863904845257965795184632297233379142962492859902955880246692965773875679028368143987045799183785257859853379089470337871750211010368238271677316297526354101281682602069411407449298069623450949962155512485379615614188616516824797121465103734380392172489768654607682567765647565204188085572103128287350586306063862667939225382734767792192975257627844693256942169801286599465690143329867607841780251796450512900131324116034061086125576287823807532582085759858443836449620286762908146638539186703804390810394557896143676901958924105905378041604237978695109341917314261885528179975948012043172092181578360011825378856052308663369345599871489119325721353741017987792125845863492552056865251636154223363453499842000282011771355326643536521112771168099744669212608136425590925843357141285447091949953812416567615190218240829644906111517132333382706364403478252151686571565122527775500627372213983484550097856430697564736997213734002292244730084965141255650300510607760194194039927665574447336017486001409319032177497782478883889038687327989055233940444732464501895421187041876492585961626200138608842357928077999793064869763456641856706077409035882201217749424761685672244700021707736985257224494503272201712355688414319443577629039159886135925385363960369274105968411955696927247067302282408545380881174718259566898437663236587919117818151135935096345722683858154330184963369648375539339569157278604612801010678393233021567157441498539843828688714573001430529145257389277412513469547886262836586096570423664619784730085027496820087293531579302290645129385693847197707474091009630420300318869265939213971342165909992295697357252746881624804793650402359016663440280963951982902122674447590170872463692251283444633025025929144909180198785837212621883407129815902006434340518701887712738592243395533725907596832937216392101388904077574377000955618816209550638298764349933369555447826986647507228580717164024776994168450652449542482320871825008216911853020610196959701615221699246342444858708657909028914729978777284785485391356571878071629753337974248773718517857375252679497942503559347994589907095942869769717596404803887986182558691986973894361480908654230062859484932233099492931116544784938001528144780237595708872767492311723614896663751572399663102411690396229208632623169387155720726722531638782292842901303921528462601057073237238456733008106453004630220555620154732041847817452264185881066070792705557081171731313090322095261034773530603332058299435736547231092298419045747969540846215849998725553567117189594097073574106960305652877447122931180809751466773628509845611894576952930406909425937638060027561991443075748859127400262172255478180730907072279715551014557826583448082925989587324799474197396074189915402074341118814768370011875843292478709753942860187696986221827316556996723166814579883400915275542013121711007428763620631120061158601732442049328283081262726542831556464358582617256614632003713574610592147726342698019427680950147615688917438865510927122950086041949154060347259317203525842437744210478609820554365955149277312309210686074055078681134746270748304920118795032455502430540679152207071855055141280313934460377799320929484127349819553502734273591224058495342937961237495790324786719760447001518237058859909308054355873393930606671136600040329402208492168580341249900548394033420140018548948868001221724945674221251410535255221509535164061083107251161640799113045784048487927146277822449294347377816103776330795485780614357491238594449707662095662246893700665667412237655403816373077154416441380871166235760478329898642299313940278125460434602843741055976498078820536948414298212902513298989755118486216435608710994079909349807177112610381578802186690009410529109104534922357071575146039192261284621840809216364728025173472380810098035246423198980400516194141310327819578384973930186971185567279500470159545579355714318997205538252546568873715819528083684248758669724644838251120182965762046991584917378295689839129087175047544593642243586006493621228677974879864019588260758567252272525413576565577349874819867616749273782378569673380215696802143405302108728634184969725555321107524304807904364293504015946947583256476727958878552912018679638107492219600598183921903494128408509578420097298054709609535272636846290300395541334387043989905792385918141412442934722590683368198207812906874374099564761748186558378691033578856780869553342087244007633027621741214492832536670468178205567238454844790424370851036368850012855121522912481163750898983491908066859526317231998617865054795672394601502533331733290793129519571890273958294397889520067041232124644503629103321559219070696531307721770344017853746342008222783673483778025790054008448553273149074022555342795678202232913241876688372742396668214855230427865008287062775098974386226900341900831407766188133450331723473594132225397327886554250559116201668229637304993519651767218700517994130637373606091736301847861574178341441508632081781553090032244646729555184211940439184242618498467242605376462206463586924787184016743893197672495700582464796476634399005277273665284549777675740195084216616995817560605776680458728325572213628546521162802237625861159306353050203921950113658904198555892742781888930187549534734573306793553317620727848825453696934262000338005013998883061810001235952581122263965916200769794783658630025984551104537298289846068633651573476404838668675793094639919713934881884318520713250945433204567207729724017583601572794901970284210909652077334754455282708321627615834923533415388836339829566101032930195173623548382559006526767009639141144316182424450574470087815499914461437764991595292279696324911943131067615502792708921903559382896170650701770990062125686480665605379771288081807421951637917594983734712495907998399238619959298522785449880921970691122090904553036590738729531525660835282053699487274965434722132430856105406153149321939071488162679120860916086677853748126689883793630719429408969070721524911819628441349011697781329112629954057507650147136937001938502284486242138987525245648133023295970104297684414834733394410205817827765534375525246095200508978814624718313952622952588196039603669474294771865137956647720634875105243253897217487242252914139257082276527493972334104430907025658754141595782757184733714364177647234886152894160307913632256481859721748955590137195918379958685924357043318037233224585702618549641571068019589275015217685167672974242894959764421710127672581603083704771761894100982227916982749842947977709569163595076082987667679731466004617732866619589244757365527403165432833836601651907052672271622389819933172969963692327846524488822479478174693603651280394102508589782368624163423889107605514442611114073987026110159318534760387878787186355912260373631981703968505024378529349662055917380569569066975256052746170027479253225140329706529650224875872453511176777539565596212649456495377233196327780152403588781700643104406963481615886790589193824294477189557478838642183917817003383404918441456174057385727555547263006156646650127351882828308496964625906743833040494971841527166128654858776492073470126441965461362146993032960359654751687535847972703922692027257325190419103608647485782860159582687331100463974779047507612853010770477656914665203404555255011761924468684925474499832966160643978668873310261873269857178978609376657600661526305842181985397603057761506203272695032160663797221376081160327400442431107679005040563315179179678067249191455243154215447359259980410642921722621188531423061291142899404465642593428360474176012100003609574924350598245000499854835760672439684586057168795685114598076157673938296347581730322228301775930781680132423097100404792662183211203585716580844085201638861480702950966464346674014804602960672460823856350405664514425481608343122050206015612705459497100590659951033688800491742603878865596534029953177296251230938389608031386815810121341659977609827637070748897930704243560119068188849997298194536527785963386041762154204142012089530108813303297815126669756319451922800794663186893622925932608937088795616340275477359104338042092842979112663704242541883262997140117359514416026375209400195760792026232736428883717428522605839110044405986666437725719242145895466701793272314967837746577345051846378573796472125003102886504992557977159089491214935712618074939957505548687216632115358080068733769199159141421504425117935653596193235672059326253392683339648235338758278108709883089612428164927157742754467584925568886640259130216804646691814955979825914479310115700826074175399711229911273168279885769023192380669031846463381691718248303200730784922763457271002702714977882542624453580306651177671654345819184588560312669613832372607280411091241132479818768002657865916172545133145138609173830160861197359563728556893192223429828762904887736785776484678990806384336683482473446639214270417489162473225181285759561831896316501669028548250120753426881362351372578097725937009568702433704382598374936301968153471469461322023426743689047203270670231100800442102714956630936878635642334726270360770677007027159643531280814278238683805945795708942478243995784395216823796943213912363828750077024833811974163243893456772276616350573825657801908010808047390183097596191968631585029943798540708335237485438654084996940764653779124713287018683101497968974906567310886296820882971487567427275611930265379142949783908150629793720410016720311134658433166768179896034236382518808531432659577421462053783039883842002967387528787302438800705603732108245388215358373045291056452681743743765144720811189517332702059183450588475223405402984395095662644133213713806832313754960235599511911954061251087168227283308398890497384114751763928112734160078096336816322132081495327838547415712710628134110572383494623958317042132178758376526672175358124122500487467596943598225653239202343993653184809683787315688081991750717559620433454248952093242234251472436504410278755972448196468370004347205859007221264209417537473714024564098916651364061521287954974368501162281941078884119185213329813761611078992774820265686382051770076760332903959654321157351333888686092237038269499145753780928580828292324623916252348764224825798095119595485347940209057833085907707689244370140778335264517857740936605811651857712033219791721539887534830909937295730273901623225436105528987634252911201223227818145290292357400482520864658367009554121591966454788358512379573541251194222406411219930154125449967399112670225617353343995812626162981262354435274998411853414716007454482951833228713985056314424545623916571617396037379763018538943342476612329944521603875334989239641098740918952406315009969307613800717215034504042044754953497647211365422265345900806534205969779793200080464400184141139919747890203904287399954300315798766022353275393099875045978428801796712848748146066791772840604861198841666793741953697133575385986042122499412921225152927102567253499638678055280542106243237302231527725532536307112231367945231914070246941456741034197769400741953125626640320627515449957057883833459207485392373984450445407056349144811256419438955817763616717691037493166422131150609209206560028217039039245838111967906568832601592820117974181410906590017126436892967269151098671061291883889956777433622807041579932107922586801684233697380874560600767205566167267461949608875445541878140142295714999704323307025847344350256776115156765695271020671596601637583780333945813318550615049305268420170384804551684627561867012370319634759644886513477206512474954382480373658372990231080770906271919799971973398657796170800653832072958533522622143767034347540385466464989121953672724312642887732645795103642354882315743653905112342866090358231340947611611739868789502538786675171040993134645477712805364894951644252735939091649339101262754339380629498140634137947859931816472544095783525461425228573577804108673868597612948903702673248384419686366137305748887363351313629790669739341917495488985388593857248699631284688291556786442417213684958583993004242377139713999981398267877652185104999585348089072859472180788938288680801698743363678345370221209331898677806907125622472116041432884413685187077046778202298100006521635605118601394673591823632911553412227989939821185407557415558715482864300157312588367727522839409965723433624408275998120543619762565198133055802850951136892731339831921248233741934762183131145863982812842297697658305982368705027938336219834914068000063516323804251917643081215930725095201813380465057626617710360304234259522145163721207509211934529455067547289988378270470924642964596723563162118956309299355119439519595829067352364389144157768276766087526041451165738051327555485302196262078232165942079301710536974423288035148900065214726037165308621048982898182307029698436410036218103116062381095568135154885987982345850645484010933262430366168725570628793157014345857602734190711786515393198486939158427788070589963324091458346408199592273746382624927448481249543330639263232783588557557946502321253323769645319456357885907628076541372274848614225882471600505929984440679461728655590140217126303896177765536837182365992535967894358615576604825028440556091076481031663379749825487128798611535856616727154802489699081910299761001451937973345755087277595571373631378311881626412540313242092640753692770669278520912583370394422318270090753100392366597196199641392415207169855301819325354362983537118145797881613717450577683597533027821613733410277655523009849371550424359780749793356887913460934653148387768986908556381539326392104835974257047622027900904896736917895503859989940267170195699151284495327870864929488258198866595220145030648856914722922208531818378906081593838447379870667706908798733216193139807522284730052968339391857337664768598817340742821938687266778695645012848337081728675619389063903000594179502652430378277895144971380721380682622781873509919510631792664886326988146561239326651471830223827616293061127989405342523269279455318844770942787176148616349194117453203686451198336308428096811706133791029772180791382945765281012124788577917346068585646617800604849543917803976425728502729316773832183371804062048776490995674691865661357695984145577966028362102604976972577573515881767739359193200303854797486320970181294313540454251663597854103173634891348927235976463919361157088004782311751297782007608774884141969000901226973815730470136728734125615952451237326113373670405715298043396072882810380208824566492966678618947057222102164267432446291265627114198065775530221936974399365943418607312116048148117449404041573180960158127484624835469222254330149961328393054406845115208220622603734598375387293288137456565962577152803483366812727659444241397151884968270314356672255121953940468012814157096843662200713105945998722356044161648709165806261928478168621697387778132322384351237229189805666570097717353910221827234317720132195595712181749363284457086990001754558762631202387761398444213512620771781141689424748851264966812055998567192528277614616293941787152189533025763910879021125633918115718778926098471105875611280205072282278077542259240332288030450024798073267956386725137000102099279695606301578635883924475560788435176251060061173024545151921770816111798456883096088287409786394512085434681504293621918609460577022413021701099192413915615839837643515930601211775457059518603091929956716044420198474520580158407930443631247055700262793920165493068949015701829523885440874489156442820353541532347570340035748381433275833642985539332679714177903770053861420811782153063279803658588856106801240666818543640833024101577166732774028748218722038789254477795483145394429767192646664489536343057274104160873097489827763069533035667185008451482585745374055623389180879264328254064986118359250210281501731083297105251429990425199845892962359263211325068495779586559289951207271990118561168092998834516793513629355685378722216366151444186221010306751487743767035427694146365328555355871183167611035565859870963550151711647873065084698460851706117291130446971949622504861504202557465843872299531475734733994581111743895075379449928630486025985982092364470243236206918931658262198896580970484297906365350817017463155460710155455973871455258896691217916562040932890315840332769192044390835677843998939710256170045591186767136980251094146808576874389014201658974300160713117950374248873732939158294413850481019659809088004390430602390800542875049161236400799780472411765696657887443863940632734373992315453230073529401835282542171285244985868211479194964897443713335898412371597803441403617717532878282902031418689078866126042270686877981379534097238857996706765801260666456200708534809839155437761645807444445474478264816639897649813799952125348295813242379550771888861356681940160262023859194815037090400416350812280509220290109410497467104774528489178887146212081829690281935076029963234283056068449660836485938124366287019903806517426126045969701514427789883736499643909825163876250660543928975007987992720004255755403670563071266285149088679054399294606615348352240276382771547688767578400659554043745048477323189066961591503585007796597540016119424043111243845629781360933359327823966076596915378535595537769857848098027348083990033279905927337595180518554205525343765924557838650605262933805164222128134669700808405914768561245346939756371877694133664794499025576250386224927790546194693323826492259217431423831129760948327372017809319125120219975336212069967012878596189186803677853246991266461149241054882730811428784225542582843413623980231142006888558951843173706369875645346169852364304344766714222337961989765770068187027254054529832189843881953763637752811402803247113084229608628593685585591161995399028150249934607757681544027464491787927141462080472264742666755830706338813849334461692065935058667923245138632614533051465260081497723536310638509548931466318299876184131001038271826434026124321782741259863853595099925330602761161903485839670648624762235934651032811301573850930474700229631697360289310786194472012985931768747447610788717497530502538742168316002028362325923250474575463727424868532027876108531519118653493153894771397151116270944106145372915180119252367746197310352362434037806504908256976776975358876369733860796000099075297374546833963199544737979968410177384882602364522147414377825010492200233153535075197950743128404526136356519850053789639404330349242493075469846980376499654539519967802492513073127545645561352338986000883724614907701051113745009424278208308189154037721156975743883424912791577318883683882483666319686426831733536838593789157271296048600835400706037272941975326308282301931923975140815021149615961303363966504025128299083094560798340340390384205439585330352028391773639035617710526961831376013078188016146524909686862535137821797446745496169828942856285280954993352461551972411531584414645823039348305893794007020579810729734614330109871094246431088909205555266144737701868975347967788048150413834604120588364521774849492204392006586870810224006052250575365343240064364168943240183171487268601330312479410585728822802158686154270029357763009168507114188223756018730537034550078499651632153431057888887671472021878793428609871232688872700075683858242199042528565451701366601604418699171698936936738513591066589465105705390320516940738455306360739022169978450737641690514972814969696199967967945107993264520157928132428090510849828047792113321076348437295416025133862740330781364372264965787947368745991296592886528385675510014392848970579399697978089670958219019396327975217415336090520101229105748987203919423515790530169072680302891916693660775163766045496345437976052403699739686612529681978760220206104933001577709115841121320519600471497790328123820184621373913972819896542709429771217107627066415297052988846556536018423216585365688015218618982516001116965215419345956648194903567184167945177598260768649749307758618345342403383962282132377020024178846684626647039820320120729022477907254962572843905582843112667406815265275787182735809649964728952503982584237631908657908369920661590709443508369931775109906930633600201693920962079004443411397220976866524828245003448534661305325017369649834035131107484511361340997287564631316963629794694275045440163181416699206210790390577959220328713609877594026987828132427275857217386927972778092718755404335140913395980089454217397997875447526596429922918249045950365630887809306169173971149948913706477684594428013020694577801995433583120227709922858958209847494036214357482203787697711830769296579375449622856287939918962749506675427926162906770285005276946475490960407060454270339844816962707248333489196338264271695848421772740076417775310409258144319435170489344605622188768594912158502276344968933548539825545977087386431105361353765293037591660233472227541031557271609829887188698125403223605253378368295882047933797460961858639336774304127178942229054307336545269376490688139533768134591456457955713341951549124999241358127492584057013598943620545025735178857715202119875227384528514533621882838949531586837720407498992058244663242396346046318353550876312797850617243555914847161802391064901788378347861139725114961789755167213341323618296021251822358269069634805761118708242934701300306843476430285258946905033469000852491714780445876687290357522526039502362169891290758852608037352130643717511857740928653037006084737018311176929043255676874869751561795830154753606782801845042259487018429240926971169704520939091312857680196232919707330794076495600449915957880542480152295554846822839167791586660295453448369158780770159436499266680501618246751502485242266333758342555248676423459206041089263711638896396713141297702624248182825897444568508955249838727016009315074305754337998710254219567635835365360321444876437744921164751318040629466188149977936893991306731528425644723880481535768284775070743981035311896372363447503778562439086339557902647421150682282808977152707774420752630062808694021264264542641516243389358109660417860037220580168189335933850565763145482162780502239048774636686739186287841063519125022935221531571327743968436243136238546840283221143251924747957742286613029787613996839501912937621096682764020620287675416917573091236678294319977494669929192634539326598395927851456555289905139918675921257302982729844319602379815166922770231219347320806216883762251813525702724816614583565730677001446259390176225419366595698302512635868076342887756728264477058924196282834753569284327596780236869196424778623903009948671970550654421193048692611011115014344674979636748782127980608203454791609298999683092350951410704915355767139844179354074429733926780514186340387876206273375793981150077017491498018425465589183290537323228057497114626524173881104103592196351989800720664276371565769123235928741515057916331280240046787024466748299198273231661845548540508788369688338509266098163029375904690441712823205600690877295360681908078545179785055251520064865734098368457921602114169086311497817903546418454468092041399741137280332671578213244130248909773802848466156874467254858698151864016131353433868330072966222182355208953620336209729202848222273630422206056317982358548356091161101888325861425838797998403579055661328151933812340021941947883787384524879748501879762099355036288187470894650128844550767025546887587055019910364942830642140244380500681437326661730813241531847382251961514416373149774368135262582401804831062504122737711854976397284909572812931286272963182595053051358762822515254174675047595513732257012122205670049894193673229893996977426845444539518960904572222745605874328921849019417066061398341528599840547137454485165544041988567038950020492647009795315914988413351165881409356533933744509770807505968926283746407200481580144129262396046531080313250728717747028361520028676360296318713698408761411183443690289981934739005012239878983103891704068589152909971217041086634816037111014595519013666029938429900153575285142983211435453492376984505487630003684181526239115514236267510890380587747461993051354584412215297417699123745881156184413829912397373128569032485466765194034378732627978219295919561581317243874375548952742041259629860716928354032099778888633847770707149419254482625676299138090520050431383207406055928771462034668589936882678726867559692221564210107220423374836177507224171997671672237087769187873716610022850105177209538562393525859898635855167139078429487409229685709022795669932154976418817277759939823318319177005632470247504662179652521859955033423794893359683577970144138155377427926405753118823014706737403319051742398065802978312749681225488458925156654741867513922411214454803682740212298069905370114197344469683996111657684330798171894554058053031508410526968576810161792693211460865581146611185411722075987570873163250924543396794129016801318536530598188748658357368437909433524254753428473578415578482079792518164406528849409890238005580276801042186709815950590443109810724028801500463200057066636970701659384864892937063744703989289410677458417187553009415569190128915285944087170430283602391492730134799342903516379092225299223717769037167672692756875621127127755179091485012760551830656447641013497338590991038353169424347157248921354520543426123210000034031898660232884434104731249734204912103629285976999245931358893159451812549751248669796312412430619586878803000609463676761841091976701176531562313947411764078939955143359092118214415550588524995974642876897982870390249362172288803105634557765571213690441697393410161386847062741176017949490281316131512544579046719500707172433143023429846789093116437327765477300914633219290848010981082040192686608097667141063689508020718250546630381196134116084409591985303439232359962449317250244196971821483516572508275695404272374647609568191269320384268718422521166869347727022349052565550249350539182097864925583090522609730628755248482787064097717170434426614760830389184350757930527459481009012008045646445605508925826141519314417462750506283168235629866291351161806161663025289041577780257186731237200711376001770783345309825002285260235982722827574859560069743924984647181571672595728529957816688053687436576452514224568295702782366327161909299345186488224098633768030440900358956372900978856403645218485166761660305017621146073852620463840656821982507877778663215960654811687271617527081017236624603835566035145918613457797249842339531256943583231029899065039736480020532141496170344539205401769441126952539740466701190034090655493232129575810044846818656730907618898925218195659162470692916588492635237775408752036534300233343283367304538113779318365266649066860746535962853748964488080058420684238631012926183312754609484349480618710227773878099473717578944100966797273991594227700621141460098625047024356390020311884571882940387807948569527979399566673750042847016136487464777542955788235545786636833459419425402254085439306409661556798003876665765466352903224965092785911939640065506674869453045287162481906410808151617066503188511384147563556342326762226436449245799109976820354892779927226230073052797067443815561378698576946364643413148397244453010553096501443912245091260753025490689482819508809092486100744626860225545504139637213291461171876255890515535607792831288046797195894794487531377797762829500123714167544642950515133873425589304202085179975024217321750194395786922854023011068614578401858081600337280252041499007631778801343761306057383776793496885842685694441454307007700897926667696945979044679278144404868634307979982510117345101278298357436898916925538146612933674334155150967914641449816235148208463443416771748608745806643147840830619184358378384151169818581983083137961594351383870703671409142974451342506876917608906955628051568680826146757820823905551470852856456668335366674461956147008899396411292554969485170983617135984298208181835212978576274797129394458755917631917145726623940166668774610139385473319710187174789563449468885543409414645397323262625888705714124660069383153375598292760860851225172180726350220423746341204018462285124071429160625129617610755598515791581148075870187095299091655074505248089688254381283675082188252411896756537505991385914418209144403230701386728805111858359690186194744780926646388126946486757748466616636063393548356732195315321244355756553133020770527884786900326618990786609010585518464469574023770070921464590915638584710304270139917268872430523977330588788971938856576036346915845194404445319616473775086760943825176449761796910311003996512500530439804545958559890027124992485305398881140610349484981708835000581402976672375720917994195710431415669453242031551316688223818325883919341190939162248818552275345334590596497269258042890923363555548120292743749422142530770495884582451609645184995177083557693321255783760957808551535418784427723784177022935134316327340684290061844557349954283462575152100814921471140874345295425614689322288129527072548191728710630544513419229662091302190141036344009002883953843785025622916753567931709347167312382794947632174522494184626371852591858114938420434701327154687951571757570441041009681047674107016699341962834960386405710020671377681802296991532893094424911735284353659927793582712833708291219133004180207334812832307957504065764875120784450959739688580718804803847932651215955126799141817981388956128948376166026770048223945511568218321030293576065817927630774805813063476165277114234714976226204861037757878021296042536339816338074357041072370515738142972937202352818982519870173559636365369657155594532096184444352419126791724214574807910464879319060769840839011301818378939316896567021312807299133725153938010823974172697323335921923012922754323276243057144124340028918915741369129880514499710605642455730475046377445002441956783471757208607449030546609869192401425732548483699414653269245865316828006208465635273784623200422802324124737669140093177115852082868516561649600155306078044704706463019289844481958285295398340698794204588890043542252060531505096911817262901944517420900651652603520604150977801607818576210263797258779940350578661335290414886922210038900433259805648455603248280884095816617480382568181136053698393769753683141935536750585793889903002763536300654977778623691220615436477238364781873794997307062604730682930207048583985016656185302252642576850623908192539033003676452794175485896403363235890463400053957301020780094978844783932780285389775987638244364513043268628886382155126434557312549611554102645368216739317357254003626214378002712286640968161480638798033591416633005485111845625549926472846512922555272618813601947666689034294911135789210929532809600396474022722588292939311844393628364384574014366897549460832277578249679125125389021947825626585355775929333155924640308248104734680223134833020884240267896654712178773897000375470311718773288674656188099528122593666867114348018079905995147298786157074568648108771502328818272897380720598672198534069857656046997600069934089255843689908377896404414131265465084145226286574901490215172106787505769531806495757143875806129000207934830314245537079550984223042241681632078747061818224185998584419827718891892975382245264071005549661919373225713409683028357450804666470652067739102263050984324395666523322224953279936831521799079573934738938177256101401333161048137730596051716962648587369181251275070089393986399346004702645323657658597658936829507880870083657332703311107670479954672486567798389907184273596000331758390212185639078482918938741035803175774190682707293119800646538095975886231534121671150186833296689808399927839387123563920374552352580760281937872248505397107162978624918937330819569156905358493826892409697511715050998201210940799401180150215619233390990446786335450519389001189245662083424395882804640291768006729215959479359315306530090570451108369475438370513489603313752411969595390478724989469469737574312145934649992562028544996701103493777642461654436754017538932460155918768547080159748419429307889108776280526449736027784754725841351208080166581498085604426829459158191117247270592711776883661630352216068466974010299082630379478240665944736557089473659840163487475122818407562322266136275377129884350051306607728259515757014301115276828989123405717404068586729160566516871274008381101915999189054651353543309130908745819178619964464947894124462241924779574212018867524331965883075738848507034162597556016548160124812398112891509780229229946571096676568238916738147216956466887917672302934088114553533399816196755012833125144227820269500552477171805037652636553190785214106574661964892464217113054324018991580800605423702884994110622781927706323333885496537734479136701635676228577812829244877370107095105109948602334360848016186757402573921424023606498211040654748414955588662742267131265116054435166103753097249731060719588829093480481417734203823236936433109327608923174758717871332020835797166972711347125619647637888015374075216337610996231201413983212300256637389829766247226477396336059372314990809087307799653379845939217196875308451847503067677263763130101221312203423689250543477722981709104276793007973239188196086989769995835606394147544894437829695597513858915129864355140949739957868681765280439595136226512544682537093079138985295975810214889790328537277298961095309742678653906951255687197818616348358224797316225763048377233483995755754900655229599103198658700382117013955074101684163172569490745438518949532625243520604598173502900430237715693415431049532992999128511964765234721723788349425526129383113406818058442558117040649319646181614005584856140801822418774671312443356634255530151901730412462324920238653873746070587407051993464632255010178336906712322503541361936332463239597324866933048031606831266488904750314108179943742409211194853981249864059592118114873237247364525071966638871080640516759344486406343525764911812361933344319254073411606136651801332003164450203131186538407636906625377762297927712390861555385082461507453660134246069640723408540520818784524656878401414945159839835974355525512243852439478818692761840206069808995550454527501681192544524165933453552316018755754427771016035759180416078477531054369818211109030754602920168753121499913251697679080894450788486136423841767747105882872898888848800187265812340494699231104465127003451717312827253735837358166888568822352084842522519386363127862136557062190518412345437956143440437815846476494905039261616295630523225065438191714640144076573806611717890033462036066770943005533699221800715032869480633411492964396378963141948437134067598498938732403244010202290370545912908043604131712977603273773337792574601408179448141573266760568629332016157635493310105011945508178956321510636303422928400800692522531189427499077547980094807357128173958691975233886310533297966764602721919100001787680057997346504153015450818900795237340544773594997846185430516590903555340308419190830328169032908577057434978689352920042749760716232374500787029829777404198717499390219864028742833246844153342455743069374491521519158590969534545294799348913315729991979312284745152116213403545549277173334494157783712333625953018045379107428771655317709651764066221165355999036470214319930291972242466687837533316750596669794559544170872234553252708871155368976453779926806797482925723039202560954259813739099319155173037949666031283765756697960957228642995010373367875932319296573197093716514770427645759682193757073425880584791601339198452523497191515458651226906478874287994734986159275790398080151679102133701450149952352311763557576452922029731812855264420530527318805584221519059111659972704350572147332634961571511192326162840241144227106470603030065485837332497322614235583701166764848722223161331822446195149479367500773005657293207672929988152239384245178968471828659395735146900332034362820207341406683245589964062805302185285584284649434517562618425027352512009058677488782074132896941328142066944116548729577525822320211888291318839134520011289389826995611657512640045725382054236531224428440251778377672825217341242164045559954268996915316366351494819659557902001658881686952887714759275431252919904262484083642619081320614130097344358858555977366056676241042647315671720242401527371752570619498748557431945845192811241377686095139148546009803523980302945889914532242662517938281275375169235536050083570101703768196825440264471608834967926361770733668375119376132451353152834028006890727590984899401917199800983712232762655875907307259998997226234668448345959095131719660826531668122169699718132108138514869888295087462789083451918323615404767927894920988600429530787957861520906590226206231103751524395727415951532365060053845063218336466364514304352910002950603499227598664015962816055529641591982717690425705431017041902896198792630460401462840600590916451923401929890426113100743190583374007194636033417011800997212279880123466155047815047067901088012111930832472789947699898326012173555431796199956062220146313630402005690395476214713306398837657022312239543397234169593991324248436692473908876409687087309949578677565841474904354008771130215009033191473049340533487679480474789301285340645686213782561891112019795687589325646603427436963728133888680304978591093539359574495090255608074372765797193090966916079724318694208406979066470608535162024249295162706599070426287028120677005077754938764901274589181674842479098935259190812169594433189744716357326125293323236104195225618360766845534905131775322667863475676814332175611829783817310623007207046209366301644630539773366768720133486559588697447185859138628702001634499693709992432144893369113600708380505647856927534655670789149487196109212836652739441011341246139762754679138570852134032991645497551755252847088989838477918815789636764667178075021841573375814545247769406620155814742392366285496233168894121498815456384220674620051557334616622376813465191583379405856986555429025953807597475592742750148833228326862563879836521048092745203054685252986799069546846285105998805672532265451627125679157608343228571794144227366254225104616115830222160898880491118544888228077089879717978345513978967170781446821656435582309605665185792741750469521693999689693923331101670410373914570937774460404283952709305521941325419831266361322014965168672699537434846965217391098946494989112618489542978988835760771502045603335886832756431773789669823569719904594322398899185805252445565162123067227917111936402997465664307372004047881814304492584698246242812769792248532345548642808897324117764700620576874368120100630420783113328452734667226283951559350968943351723038261581819554468602125414320933362671095353209451005748405267635386553567065884383536504707528909735302411306718868003745321905544196823949233215828604655649319302343174274194463654229934800206928638244876724933369738362734708824198697032987431183623832383880191370219671703111077499938435441180697998611169429698861795647646510144495055795197982255442578212134158593235765072504905241755046223582514497583301343494497479230418329795795458015459435024277846328815533621658190799594754297033806469581322416547210429768651845801106362971230020128527237132473231699850058389011466767275428738143528283167633645244227528332683861397172162762870976257666493246930888457645584821253541137912102695595634558101441109476809350352180937745099706718159481159959770635938810932647267205522565121439222111980901832895288384955291065730957295322287618308139360611925461226590439404748011601152387512257619525392112620784426219367858601671908029845850259085748259776389785619029267492760314666203809879362532453849118744401179698227812581025452085713926991771881810918513434433209104265031340856371863426653616737323975213974107673436705163554806388568696605653781391580726404775801278994452735944390600778768903425462436738355305470212212202415707448274122327784798071257598325390466001161561446840616481386023504953302624594143620204775345853452430457202708307589776489598643404529897596796860867848488432056462368082110719916205462437089627167729429970829954584848761087745134478847551681480499209483384063783094317523965862575070994286800264861319767417998930191454608957825114756287027010019275960005133204039240603598519361878154987013577506584015070797549832401335768718899510207113512920786073030302595962906926883283035515750489654717854135233336176148068517407296134734830846754749598581032699543199018519572141968719442716677041626629036125084860794424053587782550749129414460081642705928292651485537376746658683373149995065562980488634939131270235744747909123105942101819275633325288707271746042545120239498289253437793577157726350124508300945874456133970398154349427241902443039254331123766830004938876322733313028308126550527964766132600746176735197742957281071045604674826245375004577197152674952998211093430400965553431627086289253056200548571430527651679665733670601942911225459084476074052702418083850750354081369035517132715830573462236923882058974856055607015556414903649460045555869245444018109921365800691607239640071797275745715547166632517531442366671108519935935065669062509550130891804577375939517894805297728307306209215734692495255394894475524311484017330420705128839055555209399611873809494316626720309247781041984413570268616089584298325652662397087273666388097897021183626151168477218273695257741924453976971363643859415465280555075417203413845583301200785048378066921941471656350731507453116812083332836251284919690874238889753738486320278475178813383104431743987863525194232883498092046598179020770680730655662825936027821642362779405307222037600940832381781838877766390105423932126027848190569773125790775688973464861658955953897751046310563489113869991777673319918044619967920797186676371660302768138145172912177269347566190622208625098213803257757607973934798737910060172664694688384896823851889890263079863834370124108742749987679251942112447354800220923933901719936590944188677201858680261790477789185602580441684565142138448549324927028093492784268627256512951089132152214347305474696042401223992553555763560144551081034306279189115289073662151146638311520005144037345286456534811357251838395837282644857518538492760318307915459640508482577190132474061868063832015224694056905939214942316050002497378920187184608130823043601560530642851658831811172619792257091151611581953574346760787606095825719177154127406844200734973029057633295307341900133500129456893082928769164931410472327257979447715754426876036909270420036105929115375926696505709072370306350114710984883933616677695731269828890994818899640368809922316363740082959912464784728403837698883816493095196025789084356614479922278194840922156738444181895556678222356783002940856124606322784243001319982776708374492175601004901612503221016521284918051549414321680521324619473494947885110504950001579331418697643408970186867951815205181838340852637171703552182241631761682664466793000731791153640929505766838113540977325241941064937470723578139448181762972359462628061966190964321350438707885455652574351003824403904774976819624418545652229794507527317777838608601300882215342978259232966648290183204050471381286502573673310985006595303091606576602720167010530775065298043112564278198588483190918819135575996897644022425824843906524791298509171110300821087319043751318831325138101727006388593043773824421376578869905716202630719863721035833760058769972986917743205259334054699178965995149076139394912646224866652208046249314790462536098316033576166227396433327890750336314235202913670761864083032645764347085063342099835955578063850362254008881445273303664897906349094845753279945820594736384029754596640694486135534188989629487738941652693893828133556871197059989126693767260234107676493255573621755774575382679278082517881497139974108213511653291271491159208823732316898483667477738156010907396465160270231130541284594450881380261003990946597940767631976060740294258618766568307065462265773159716725401647062647826096217623495051383493552890738311845398735563903979637722386830107258126972761560453712251784160195253890534249837150391200329283513762604402747256648619595483149087649557456809302687118011763054593174600549495035848535565351719039268681400002686008731159085914444347511150098271940524064267555925139064088884876590907915656550827297313705888256726469424413370743737135022747446279128449192609347091727653022655753855521806162071241885003185934179069256226837031315656455210342708207944989434080622818970429297456373768435046856063510942475206246452468506224427595669290902746729168425000909141462161542076985106798270773854028117731584123612663998465920129078995288857711838649381689543076676781100656958171400507822967825309020254460597723916530101199594833809679268622300146721007521319213897587596427610271679163310284047955290336222092720019075085058827219131381548609313095694577569180449412545450838247128474521182860125188063896376193476654273145526652162205634219114253423745222450706288461026312310787933036715188414884407929399290812200837673543622314980067269361588943144522078204407981738659718138303137670094369934101284548743427410094465959312663371418284708874632769410090103803819437459660127930681334369682168408463153670756422683944204575377898660696322957545906302291718997038711436966298680446850573361804380808186403582099181286507736587016898562283974367278939599207244785856831143338763898899942763930577351346456054640344796107479978561095049289680440692179054743442950186127327150684592727773941626287067364675176648943289845722489232934261331872928622408368115377266174575868280976083433701694081076265198851814922530013221034064941238860164184234384662521255054859188799979307527826952613024033119244724886208544199440279423884124343211904479501768761397753541749027962889316882422478202961597524384401650249056919891078164653745145472508795702424442575312674244480531028588510189761211679561511341505863318447141798993464394131300845890130208759025700540778416191583936913532183575079647102705772542530496664923273373025191849990072683126854741520248715960475550812652715577806175300659137932007979013344458858575609352269258162120624624298774490930117177646629094770214122418276371601691805842630866652690944530243161430297761830597186360386046444958753001962791778666521511813765482952146359622948470648092695564617191649095885182564006026633488126646933101557054655485763466047072645165571860798670744302139404420075465110338586748768290559054035388394592288805198173748454535838512461990986677935566850294972105549966751248453195377120044388876241429018619408664102013603735591107187713382730176976214653703274352023217317742739645471259692762434908282314579753263907398801845014018099231647021097810039224405787247766263235255009301205942290798143160556815305017517727875780332098030387478088528061341345997411652149865206174631662266985842196366220818540992518271836042086277643953960368370846624763899851748438621994805640108794574705885120195448698257118821561010389925316638285709903923354244910815048456272205764407556511238809063875832660258618646597711000606906705761564637312885827979727757295341903034844532672694957104361161246608954199897702968711022017893570485245926104219001038389440950857195802057691061447468891517237427441828397510274007202478119090756703020038906833853521972688691819532155624915889085166198844885745034845969637251362832522002093191636962744234227731211877192546713922688849122098953230868713207732242431981655909063335832000769725120544960441047052401371131943299262526226086958212044735096710011593443059890581305935658182142984405801147646167691945840737730330596635276937004317609573144035864174274168712474222776172383322723051083163389067570327933583470872554059681646822687334800564772704570622184171703419065597472385696232074489300900763816253640224014173429978233810176721947600864290093175367915388585430722821830141540750759096827020665926865607635898983876133050743852384976934947438792345014919053084992538588202333502317397681232503026122913339158556018753500563230848342881102545302151397754679744312882888695286649650660138024347809172185113596942722027436107621728676076792526664871656499915295737356836002996026751064761907247096557223812399325543966643817478677512979733761876787802878442776591632490259558630754163791585339100461430137550722239493757794606144306134698913464355820095905508869760733935676698500725522335995981246110931831323771321670286387194692944679535199686554088130715620071476342570036585737677027540647580751641113782483196923228111390480131268997028519024544743339707473517483911585396079736652382081487951783193440719026328103068440030792678504939527886434037598393436037499862558118655292577615300510015663349981786926436044309306140220579345859303885935870719968170600295762068883000807561956370625305630915007881823084427867449281724528940295621579206940835400971543006210266758358233840992482762679494641440760982336610845084865980938199384546601275548357479299803889821035855764370891039005650831244549336333829597069452383856330760336100292844664777572697196668361309521896169731057818974633762715213432137920805174875207143981049068178889942139734632000003315288777707282569587435614534172625679202797767149055652026248136638596428619325317149394484862849658455137476029994053288103818189183645072963136753322345376385451446610680711403581614912248593166750143395071224792616776944540560525396874362012489473211919887261497428508490544739400051947680434629935409221631581101784309516504899280019151100708502724247475861791303864890879612848774588160034453393195367830228207214191040812708482835531393997447207412640142109721199507381564483158488068481005494574619304544285522820944775416210841233728877784986868541205068476850216894167260668212126589649800569556032271488671388887928981338983728748452105869272977766189933293981753669074563581941364035122184637111487283725122202413895503211544237756174108181083468861905796597482259471533292716706381532618612532232917424920075358666885035724910511542265071220290644406650534009978844741803128282194172491095364000476948216923942995482225467326052416356544953515292669762397078649960085315365442768052444238218958591714245535434073349937348167346057799688296358413686764748790022964280633447043100268269537678930655879228608149841141556033389896405100117862134910330455626861837867154044287876447404903512198491173327455258141148849037333788317415060401010166657338657953619613430968061150448573225252142091576618266024779106276549492431353192587133667788497227493538972548924138262495781493732202796775623163066961363443273635375721511711312532672668793104665539157185375663568141040706335084239610904838267456242088156311763466993326449415440353794623627430540011587364735892595726671378753894679406109559171844026457696280274794536773945601364095005018920694559658426409083137608372521268464526896588978609310652769724472757002113376004049452629787787805356671892973485071970483226497004246875201049796772745541507532499740347783210075205789602095360386615702373942528397879426074071538214455206182839247941005042845348894216396135689072864443846329094718251760294627733453626403014000910018115905350396717929466956737493036447250316254739123869770297027209184741787096363210427532492664650766453640386403846000319322410609371471397465404763843875050507004952164350165374017890201151130873904492459728206405389595453128772406761149952330888630833637728707045356774925132489690276645241127519999417062935913144576401175884441635669244555020971433489504461092610561201193474925583380407853990836922613515009464572555614320268048922196645832994446708690312594036746256634357787030155664877817164374162641189939649272481332098315960745793476946412739751315020403275081009321379589661131053256687531096690497426409092891259390975762402475291550439172901682567023354290184420498568299712723351134288087828346261412203274394239581961085964776266012260487086684440457135520938734391847223699993480541008517494808619206839963381652457810222988622698050867854264778147791871369579178075095227775821405176973269847312895925962870229147389451676218642919247743241857749194691258084167807977898246164839135054307171987728510325243589609103098288916923331759992296205821611784713764588178840343321697062944273528872274714367318021055219917683884920120585265488118108296623941340173092864449861701125289401236468547710231931083278607368396701675091503308387433841427472585672543652133142300868903112331828174738247018791572793627111789418482150491501536146524980034167138785115060866783935594104483960544957437227805860237820696928374867334442146748989419720971860085600278633779205898202981617766169896775943411100082183611061724562076996863284520820452706090776661283113820092460610445538729041205560825222273272316399373931280640066289046366978347616954781440528344801886514254548077160724253202840939538361392903784076260115631209624701813314028212536628183474958758874350508318911577775248024612449992244641424377337442880460247839724412020732856675888082302035944617914136785935724611452071162674847745234809181729624126567471331106047263498710237755012776519107605055221138072839478998359014800097764858284750044967453257227376619924232515478515931628215424974094965372607902129884783131887931473378169130511685483514338902627399843557487596891228275564380561841382836435428440652996694137868351715575649260743770708615833217164229773007146571595272355000004998367776136580152926592514306879944979719685930192534246618941746581238956377090504194368247440537851423675304829003634302928408977041741603387610222778469905950752567023126109700193354213264782928289531186579108149547358777989523359113857854733562304255904741483433801899934380969080036799798121702779121421580268296088826580911325854656367247691445108646345062415150672958560876874185572356258457200060555747480571683494920417701349444875359603906565502870445365216515147638498822501726627267745078275990890561221473257827380504859812215435510095366878712541833292416981545428124085904664318411157486503752421608386954120804542736835213803764982339546132269201016559926266776937984940592350803451537665095322735117069735081540040664808564752101679634915115869737503945654219307797908211079361234214479119183193623540759858895142261284554979064270866269254391430722834978215192017310519525367619343993615875227310531004051689723400248059721029787193480992000860124374170801552261629837525112049885117362658424583053791207064384108863590817004380654194213538438480081870676148989661117861508957718140081096276651809085409460446673436296569274993235485056185540673755186376954607065351938854144913668574530002723301421996950352919073182792240497264458183830876473407536681642288379860001721790568322905799245747905764197892127985208784748707968909924669922509897445109788169293525218953017073333177758109734326793894783941934558330950642081618185403078581667467345076926059133499513039559994727221133450940852458356260595441060447185043031607081552585680870290686962784033691311861278370139724274738327480045666339802843597030430383843994205785908976120086783373248308871222603615411665206101645748140079388490070844659779613198074192200646747320463532242606863260926535191375779267830380968336638077443350832155258531849494292540118546272207085223626831742786199642303374493908293064395081653609125533392897888878390123544144419532679191965780812602887416834649558243888893219623135027171366515917295833764542072226638746570623521208373219758421732417893457202330030988741731458255356939868169845432503544415435198558510782832423036627426756253807796314235917833498842637238098218167867298506677542710395449488541415396084878511662395228477296846396866471319638650420297199788301068288053332966362782858605318791423776721590288570408905074477419181560661305195731931779158074372829290765390821653880588444036130706283882259843166865540376993166813672361588501143858312133818648041130232388719158484476209503167917913793477273963446529682254155219639562943158924112780476755414924608807409770768119192131099300811482079259879790686755425424721693494203150415039885397734414867581170404477452913277615199266897871209351388091825296175823235118460124810460233397814787067070725498265416726615538114673403285377822462439844248383488480985698665842495795366245197648446310434140725123046110931150904671936842104623401994150700789263653163644999342981986148591121738685855260570242968395938480484123717071560821248904492008472479857321538396166084997428184012678106631884771923416059142434951324020642429167886419615869285904600156978063878607262160849644519611984305019296161442768133014745307869141941312172456766216612959992310534550647704678424732559744208404327420896332001337544333564013246616298181160998188066864374249978940777706490479433732516061390916283424206720159217351825142363149518085618265086008249546882285295291536201647423683721146826324211794390904950241231875100306423280215858171329418955037659113833468733481749773513484029180006551259104716824978807627352641654595272319763098383895593641710121365411847306760796900730366216854585017414992726968272399779665635904555722371254603329478044659816788237218464345792741590503220073468313250632540389051483396155384132839847738480528163900138736489549843969930791359152414469048025539858051626727343094174736118191041379478371489903905884885356462771995336449259016731575902216425507789968476179943802499898026324445214254875148532433234454539058936851353807249039779032554688814692946591909410503124543978290668080308400876410384133062127208685574697723802990646297829283914628177924004113220290784623212612718372287225288752041875341066011875538325805096320068293718611548775753495531403856535317819040631665838774622451540581616596370511661811354059602152267685354011767944855096668009356243291326769494282216840098698362883268484909189109120821393141946831561369941674804321646925826353030276673568933413124910343928445635357643944133830369871505366390929503027594150563351726362057816141713589583653161446656327082400544226957514401469018869498793934433756427813436883866921703730006937004095474642473249414195374178788876923180140078744955751327373095364313936925891187262865676580968379346089255177627257460677585443241163055226084444584694903355910397725179740710181440444459294281312283500753292329097364089920637886054170131808135328350091172863494107273831585184268268470389143076649745103353987273743798026315519597222827339424823528804679245183807990834141239255126551700262473612420931726608443921951718254351459061716196878568301741822513194280604279352726956432167717149811352360907571090645702081401551925152130332813065078405934568138406314091892838952652182277106449451368095901803892602083246015455067038671636597669479563611410900211625926021522681869339398545423964084643969164474721939465333963705373425793819013404970948435304883501043055405952580279801068347920236499425411953983501249652345419950720613400397028384960315233705579688620398811865893594179440102787100226961096797104339788485124596367363947125021669210893707223652130008532719074158649158103817894301752096611355515899880670218311828261006411469576949235265052466135165321790346900626130838636670582823182618093741991608626162337714210815264636437832429585886835858064173757493289833775974136022562046826668134393624910647142664066835387320139656263407412325810431543485818469446956703162120062829509709177004325507879837415880321460938767453783805288837128608471262558580777826641708521374694442510899083830782285611808027827554989371038589108503469754471482088225969802536343664268180762851983925768907169387195411803210102455283084330012349880343898482402389040032854458769532594694614973744274855851179740431226622824009374867900510564957222654108228250458999241922523991445199670431135057114659559901580667541447732806960303134025356354735137317788323079100215475476863668603667809400854421636090321505402918335337616062262555778011760128091840503338042969349038288011115505642714918670650009125397730021993994269896775446845701950694448325006121592799546475283539333725649211839344015897097451819872362383456054979008405171545039869136661259673685365844449478407535011620446914584331675938745012517845419681738916785093858003190521285391624154051897908400138898909706311493522005084408366869703988159992666417269556877380071361708576570286535313629108559939340625952996374850736872947263444091650959230377893219506274753653318153589976284431887636334079630275281437739370553874512235403294388711978971404248795988336681653555758522894421110933536577200779455733734533080619575551943676696982914893146465683465075073113119050669762175940783006764351035557671082744275204089901230006328999378050203004610412715689285587598060340725557921319078447968446547769063092636422671546764869725442719169722700395847287556662109081247099530867694064378298795619562036516880432117193920504285941475058775763600378881123335412351894908755255059891521347728330106360767879004111263056024469262006151233089677516958244191266443933935570149729121249656382638505378511789688097277413730690343690332098050395431649063113423816621768017762602872863901415962452537954994164148518256211139019460094376431448714911581339880222626489324910473703305236944620237492326117521069187745612448358473210654845007390837975164115150406863809583165722235415555589261847625592043794898375348766939733336124400326388499137697649014611756084226221420556578674372920763816967406099721278008890815152421309850737338783256945262258579922160832724693564552751072768354142582154351295923143184897484529370778480906279644382664995620801450808689700511116909154820614303822656507813161931477692679658027627542513462678232988967458120359225446068461753891210792750975975120367660439494814472339751021341298806349194479157281831109491510960131191088476258872954577399673899624988031222150820081536781198641282381820542935126158744201763217853048399567596636546155675191716416192896580765552143910505960952426701899060465917144286332601808360744046117106175321979737956796867011282881277005322697721268391450158680874413706573227456396933396641621884453533205450752685241765857353190643299981238469091729531208351835722267028934230565774478510845441777707842376025648126476819596404584411896921509908957563738229731631538882122434897001038453260151395914391397534864811399129826895691175231203626928548221446049869184412761653923293198003225095575571671245634360454408873687634778860202806268325851404747972013298502827017796387068227206537808835782666916877697873652956578671725333491725782483467817222308931546263358571859363445247841896121542133933379758780250968692164106212352569752255091801299456146458763784628131445459286258071412007463232856661986468774242804756243022642189449072720066796728949182212770817329430546837602486259435764447402506775759151888183204182553017631417465517822458750650641326097571801391711928560398425961436431396970182024737045199194300604921695523890714428178660143910572459498680255614867177423258297782212891968419504590804735647630917237565798414131172721586839672810698049510732635700675698820197485455142146199622604444710469424831685755175348348932420952004682595005952989244414336728600775355807911380636115606909035090171357934826110480447360666448605271598069488593127946691232564498624385602967776654124081483814071460741109745906645206897314554318811493864473354729103671041349079441742745467249198352599338968791742217026311573823885310062986607614131604364963160302755168803790105577572616193648010636715578533092210265972289548838765876733003433646035416218219499473444842094935860232453108373144773735096131372404435027219706642444427922568036099732410994011273938923008849870620187480335841863077195829767730002827988766293297904725518995805021557195254149714649606801944004112576686423415812622024643599820218344404794501267479774820031505581254199016914897025020123267423850351164741071118797313511406370724268093218661702745774833565386182508419962092864746674017973066842051357211671610783598677351782928788480551191125549393182981737318770773714912655902224201127344784145454033667689102954987284405437654524327347388417464486027633178889607980014601615507128910855275815354447990357989983068651359227313549187572327479531937518068196440057623278796939858391123706427131537194431115028585124568945565889272963076549540897457989381110562402569732544546475860149250640035730688316227128366782876439845292457408744193785292013585334945577909845164367204832566221609814946662757328695828754367709296207040025206785043461322474899317288209732957179184409710845587808689434442444244187426888567298220489437383823805621424170353264324469021505712293890396964667719839978820007472949068287706121417735012469829306471193591777183904579357063111812974883870928739372286623854165237739888539494772263508158700264114770985808458548141917041860151939532370665245897064783120188228902497328944344013076028530355537336350008055560138924330479787473920449878488479702458268692180257978456349576923327794869291716605295349734352152063970191613591234392654110401178002899603203214381374047945807319622379843218320029811422401687625865716950386355355411416129754446199745496963271257329940198934074992233719622387291525579305433975211335956855649579240656101662065931637734267154630574926157701873841146745104630986480911787573448983669371467165184711771510814133985171786463778955432220641285010851490338947634933771109532220741630004267082354464565189991986386404688503472888382161450431614613139471635399800281605472493977920361251927973778937073949488444723743377002319107354896822129700415811411302088744907314241817600964709627863612455282536028020643042552628057911262407775346185765694959017077757590557428385332252396465926240665746673952136330250427855144998274850031328158526061938929126191415087460561055178390003733444165139965915858493148676616695779953806312163298246325222516223986697300951162038967986718278627628526614139966262615037795246586002725019757920464137421976427273401140698374667913274624995809438091602841015466141315763561963980861390778794481407920003536497930798734280768419711659040125826269659560701656015961173707526946631796306605061109149713782860291755641987801330027887629887316176220659194273284898849736658646687098268799120407657130602034173563449850653348560614497082146293906654312484277412403777065295979250125946184568189325205263261004016424798931559202838533566754493725671222628755213994095236144313280923567443114863156501288713331394776488792133768814439503915066277415149139516876718094905206543344292827339080559008120428739810473063445108816232589038496109508635360803295713178686075641570950384069294058487530042507387044399804393384449659433726983335232040705639451485826578423032373923669502055560098776670474032164214067742592844077903650415096298985149224659814361126158281007492539152169720367699000127054099164517646707143402763198992169718452511933575923104400971421593997482739661894667084068377098403903966092091729101218929603266202253162524280744754083123986162713216782896240321985850516773668042991421322801614432241800372446665089176388439022995947315632070935020372929142567450502274915746293235340553439358862450832827377797689736458857710516962237390187360135773893541307397563360123322494058652218403729551777884116052527094397575847613686168112600548328582105933331543872709292549103435049737490867608878014337198218539191094153948839634250654981261757076445998954524502174390730670801277692314733582012304824323427874105721256137699519900571155566901995307674831583053459005047431294510241348597443325338358523964817713601529395850008601979712427635168661372084743857215927855343528302884383459944260895588626279415175303517561506774776011817805038067024419038181608457471183769487695624085798536611925775728958770823502679082503203779992492646747418946948451402647728784853594835014325145823324213329711815536755677893847543480441612459717411450562555529274108811771066242659724653137983366104840851424414241050488023464753273171091695843182230645473946379805475236816638763957811716316629325921397335314462672008085124243231110282312391699181181902350022203660062496501341896332437804890068752009261488941213153489056750238027330294895530262063378526452929520139997290622984488628829041873941309635090689735495374212049128449554132264347191247776877620705587461084062924106554242860628982103847886960187651945412518259087398179284805054441622998956556495660832288211571510108074339793785462835396134923691457043136834967958284478921983433574068199154318963924544743677732307939808865697622642467224566099653954864062324286811966400767063327877863937349391464065756733724083021036099202475957192717282995596614495407039592460947751405760296155904443018323963516765989475240826782591121141879685051109823102079542422004366832885526581077848698123463537296164071983237851976786081955928544676264497782735337255524542909987753379970495640066661084268919452977269543860485872354032335065834558256021405478613669071275405493292716994770633219061572839657985406183416619811594681531902755790416493773772889103122241308508572427647895719536498190681234105677623466945922745863081794868201115762270884087984787870170187431558423934206144407769266239153337205362937687949599181720150500064887486107131215626819070152024812679645446333041411097067895976000178233563469695536261684751865075186792066147343342282856099903723259651946131246171480130905188614399374295643339347956829074986535158636665631080839152559228160899530841416543015948995176799997388341954176281495654874618726311801220059221639839675338049439080354880411813529272386890726919436909242079682216209791400363577818446272332330197636538149846185667891435127410442912624996790946378996378348088206789268679699713620648027212579405144600248821506870973416573595031980808421518718158501407482921943843416665537993181278101924804088902674418218424315306120213299179251395328265379820130394562192624796208371927257327940864778943387291334621274987442190846579813855086132106647422535258814896495722031061218882180964064671982253972476196556994800825508820640102437172026008802815462626664711151146187188643293763665061650375658550450568591846715129812673758770484202101880476345544585347246800681190689126192304957241028227294911386936326206475962798456101008975208089125924864387071746998313123886935548501241894761339425330719453916907935402178106564210787906559600281852611864283193659151303854171663464326626753646641182041992379120852535125986117515122138896963622254329452268313840704577600121051276811915678930888518170960860566683778875659972926297184629416897836254310531111770753160315493998358136582762833624467553966878120728742998309337074406430321774106292156759631102519161526048839926155552733656945237433587325668202240382584761687412891902850827828345643247197066042716931207624235739061937874531814227965212117613548133568155207109171921702259938717783877831588883640994988722608520040541874065284409407457163519198429798548571221076488597598038171319919570560868876884436334567770778928608141980582680939368127603068244869374115948978985723846430745741081310623219720944588850220530139691840609368173886418366788707741736811496954866510194739976011941787846693832002561940371364653562043268236039447203168031749356690464981403885321788555078885742750692557789481804468033946918098805745678124249545703096166534683110286102691314738521205088056828156418646299386424129269049086253012926586798284299243978052672979986989469505159905382740100413329396722572297726672606756795389114205054418934615638931613703986085068374616329446097672696296243918151548493970206583225084049641134106699295494119807630460105671418176417488633823170058337075749754560082147235365209422846399495269801396972527611254960124707838213626386578147939374948271476181024501163044522973155495734917183267807511057624785804048490284217865825725187218018188023423444173073154233056352442917157212623016239536587096512598190391115855638895924542496159276567453612971104800355912646023600917142416845940558555252217537823238720390064329972448196795467681431951347144326269828733697420019581404816623105724068012728831324214505962305226518844714192565572001404957576652140565163290049861458776556798880062255091736375870634827538519555002811707690414817033341955843355399960988584083875514084005490101648026082230665977089809730427607207535666160801408035214386141064420914887179464046372593527037011811747545528218799683245121408899714502908894413144081426815201489069329199883001469915012359716986323097500860307356935173869991376710600228270784839720637785613956198769392883474447130425774088037830226648156394534971340621773728812934874604970496085141637685134975455515841728336150856739743872543210482832812227763136606845339131437306969712254713962457402474920833975884592651812691548876635361304268859057732442336145526846788155827453098474576293088111880695583776781146624528557744712275945593986058879114582455666351826602561913126583891841538118912043531812047187569406592527973543375042874401830729319190781101694446201703065741310313974295881357873552589594671541343259553585826778019410961141670335991884046145593361893628366394686522994046608741669138849344609668128810351592885717831504705602587559842609888916676302219933356038604138840310010244533378884789026615719778089140432042530974513156711297844050747326193235883605681050876738734642484891860876207913096756931119830445154440030842293558306457260640417737107230479053223097400106153718033882024287110369870290800280927660670503569387589034477782743523760454984778679106542630489109023007986796189615462964685826321086008887600459806322487596883049736729868759104213770780153576274974067834610274364007730367077128336063420020956330096463380913814046328308464974197429009492438130063596547406218146340919150798009882238256103057490127242688844554684093123016888307650302020115945694734467166878653431063341267152529830435240904955453135601107379760818184610001587427451189840419834069149004932702057643897052432412910723712441506449256778436364059531062358577440773649844077923296617371792096922988648604372423230961769457577326887551242475157759628621891741823934124245006586115056052230836020125822876956267921928630064873317664687950239954700955460408963557268815005711555553860472180364819010405774340636328041376514248311113603044016148111462966001775614553384381654306528353795567357330727571097379019761988358788120825004265614240222811271127017976474067640360229783596121499246913148376625271193070215306278610944639042681140471971025045811123490002794330769664272085968545171370810071179051053012981860425078874229397689604108159230369578331288775748726217592038503261474404748485358895402048427776520265485714323178705994457203057376815045513248101311995166048077640101097981633771107973978643626247419654898621233173419254862783653623502124969994747724518056587737770509492536979802182993255397632181140180532974336666260573631664503422912206570870628750913782428177534857075130390346576120907197894604120562394291356196948950257357955372972964424034398442585852337254937148868771688273710474301347902052289890773395663721143048659625843984810495352494807774910732974027688406639175992537910726434882200096937860709853944516306925881331456405412712376151119721636193061088958320260232925406992160550932012127680480555318102222083722228799718960946613238986195286677087958414665336035098208013191488605358054702765894504560921259857202574448286953730492963105584108818716606799567598762317517762332845664551821076200874593723254522411508629763469021015019872647967894111331302433790966196220602598896089217915260062663731012334374231756816284539971364246294295025750719367991779712896458750531382350770813739579207287767016947744804170506583077027985862196004253945007616439693772670787399445369515032189357007237429776519964477700993995269862887101728889884537186281750323250133549517568237086936596306145371477667704054938936776596764988036657715123863179373032582452990753234849907060090068166386630530304182297738506663968442244915725472433788966312486409770838402200657124483328934022606668580069990405298766257212027407487684381963466846150517168906453376272341930536929555370444255946318426191570601707632634129198860198736438383083389209010050346093150558050844584056307788786246748170032440843451111832563525416812332553494398283143881764226251346963469216099806034371358907539980119720450664616813136733150440629621527347135617530038228106216587861323628794855003231094298139378162590537300521301508713153705653848461064269255584717933699518368423966336255048519097464091282123481013132896759635083643496211390900594131277647217115650100573383787856262808056403465111341362342328573541382417742880808556256971144411891127789848996629406541235641587718488960428903486894890075380095574586763644819659308590588594137490869050977304823489329018996927469715803379415915787493081484689715325960776988409194290447017384961620404597626226408931102402902971006649125207768127121971973555334371298209153165712073643995969241476499067241602572187697054505558470746126816376316111553107564467325188718034393151746024990096865888738738320810289244389815323193540588585167141363194106599142493451005986148454584476405542426299949760523974572657431328628164706050843064717510712609918623201494206719379786069217571142413540258473998346261602798119177546806781533107014903119990231216788859612215344497841248279889085619991336468485854102406113879693940844044914900128131185055630545173524422422782676735018408536002871841492079809446704595818766756848926649105479497925395929738089619468197258552053433454282149229014115298745048131861817581221536107875613607561751363288747356547511100305093669025827589710743828353368832342823758060424200066641387042755754710892595890424805291444980043945351292400724662859145648602361366281321944753083300353438185838957255222548744329502482142971967318787422123960147371299234387554426505300272981247819759624419537548600537297472355431693893611490684574184352914956735663051278131106486985752815496478405144017724508427014925237846190330167444333613311602955108617341672665322899146719674861106355390066413267837900784782039926509162172098722637059288790268658672059302345724195056875934917511844515154276354912154885254523386022278580895911099088446146492818920747519311002654924559870664996104483779523592473747649666437162386937386470897780037426271628667720961115714260371565929632961835764190902329309441263923080632267594598649493672518538379904420934023998333693988161928295024651294732338630714625077914337504573150392456969089270846307010496022121026782326822678276813582438660002954096904226865234233313298378969653800977228442980518614702236604782911450565610819165345448324080204944080112444868815148003108126029902693306196141296973648317889449553290596631690368054483670072445145429618848283641847594544381945928714070002432908569519401934475434750157253398476779322154362387562042124656455296127040536251571457267324396251818971680068925927010007558961224073527992446928336170588186400877889597403999230285445466714622704941005346166477002410399036757658078548509140875313716560546710495036768071398652058684274474659275614734830891429869691811773447831593673058588748496529119818968677306322843304253873020925481552035035020171170517496970857954613306675600280085964341828821739957333594781801538643255936751218065414642918942220368183574305067217481173800104023025807087262658827036905889787043646310410430262910456257651795647891932836720406588563761809547118330845790232750013835174445007471479163775251605882081632406947240337703322159498938765674646377787917788897501556291281726743929344248397656503982086075863909436579348371554416244003217445536388718423703663807995036057181859265358267484812171223882876280827270477120595847865783776951685186797585094733251654472770547088395079176284602424130229711243691659374347603396536658830139865609808711671934584540556899747994574337584566488763366612729748310433455300832542241466009702917098236131422601543797485341917109930821348886448566968276759636951789823711769117961102584849041750261684167437198820501938615068187941637541173374987991747832315064658359922800936197409668393345413740726084737222421636250646653954500122295434759093795494573098112223646638496606384249970870039241202053152428876554881295402668524512495721182152802808715685372962856756984426548635509378782459034335602971575624532045448801181605498500749391217869196872037704528578211863525239009460364350507910778514079217220612238448733594731546016023802372391029375358538541296008672545266981082456524838954475599040775496097727723325845337942542750914502733682298813811941700229086012152322105183789932090821043295004446161008238799434749812043111383629708922689589604953559016815278001633635038223898711250306245529281102966603339872173776314483790819388974632765926795428835841993024522029237741122437844373625402176328263472194276195700364562868911426037351693521240357070743860214256969865590536753606493626082408865097262076149367009796142251876635954432282717723590903245513942317131251459062587663685741664789676487111876730271344811640865247204952477498113119901633310460571342069341256302503251442868597221050669290076306361463615422690545341123776796034498423538236570555967625977553476322168323860282423224428910237877268622861369434361982153622305504728196659504245772342386335769788040095971991015845721403723250328067959268327261190903967466563559010789342599592770739535833560246177471606169614567759593095198522242552601679838680426809638943515081994906626231558353434178711586939249218864034393041972585359287169444914232457439677333700236676094673156287796541877884942416793272871508739321718588427719989660943897084348486345203488998661636124558723469654309185811730984014481132159630475219077183693718402118138000764180311999527729076084403761359748775953353084857325973194827959426715614983003564308342484082560791988190155290204812964198649913726902202004541960256105503014788677928634775603056651250283709891992201722117924752492782270111671116527517316926354586899083924598896357049762543543410035201330321687410155982459807211285029177033612494213467858417321730903759670765386128925973939411488938338645339326035821167447954077735452612642068871348904307501593930639049491857135379588508621279858347751548137620933810058172778049237408067775050174569884515163728297737420865019472559221696602658837096240740377576419266948156579566409140415684242152368821424639399829079343747384947699951757259234958530451467374153379888769958254299556062065686010462568389737538361065276447921908623476923687344810409396512384401758675973943374378398127592536320169740663216814010785227633680723311944546124094424858380726529886812153029138402126875361432654781202592612832924041623911039186804219093506898616232465060279252284709009575392016362230514165357506338282100928260325546061109596664549662124702801481031741657283485102992328012149564645956452438887629037752742251207743940744594131327906946010524667201866332862874470884162311157311936013320955367771257159394516944437871695718867689230021379640539424770280922492080849887551011041314880152729656463169971187551434794241097281134986957673138679709272709329998588693155745669365130711048048743734658011365601198434576758143183103158538727144428648476726788194761638459146482873266599020157790509240389539851749436524749891453395601797036782629429991782563000934700419433234599186043718203013206794945652430553680362921763990984624698258678525333477168445600510887953772023924236468048210855023753097940548060499893872366157238229007363762090844250207812202845702575283296971204390816687523065295451614539299303586090210212743801284753732620034190002054205499308432608597766009627594900750390362387427008634277071653584968874364575805714730886371164843194957279770746757699457064677638285429177427017927521994260396869852775667859175171131271539476019898028212257909014267255088005322197350997116933026581262662649199870625437079914257078997223215310332824663579676668210262182326132562188599739060904165716146328763643740734939208530776516948123769990914533140667882199475338585712232427554323872733332432252388745173790685835221457966759361107012331790131448131611294682117889142156713145262033590903745315860177417066085996402143660026067596076088249181955412519215750375762260623811224831285634154644010601626485196368545278749192482136395488351057928855689103750896051820291866960828868443015356603972972108290459863920170038628754037773411533001730873032796197985362824932114050647240167905943244889056169860376697290757825835590471798027646987780174296606824348541075672065210194233228253354010263501600182058674421460352779536233618581302991592915652345550054471553666525431238455928195422727375771759322993411361118082311652193742318800173497722934941597135624136530572765031634089325218501205671630032691859866800909984087847474430415244191249718865807813396751111120659356206620048786455402209424884789755357596943683523381754812701239748031035435077149261312359802488531017672727014089138898812262273499795726378964361342135751705917663862409838123048260831854028246953464824632169394871041952651689511161325040498741582782628855018342338070477324820250681246587455226232371879681089613098369631724821557753211671205854643437921598988492478275582525404742815136716606399153276222616361566636454385288468892997749510188674039109545339397691464751477447696515898731199178932312987170665271922095995700380879983006016797103686637833555037178892200313757944838446513111167114552610186863100609469297564031786643334222872177876681662617707770775748137381326549051489939574533610881850100157988635002733879132174417296361323320289142104778956092571094812129792162629553619308796324934986060058895161025270447964403963004227866969530956718042085532228673810858733634246151306295858832797730713581024676281159699667192380721020453225473029847297810709938068641382763547896947167465562194505623821804514986103987080038252697208119460086837524922209662218394539573116950029210721595587326460568843308817340259260953560591668280773746949684892027852413898772290560458490373323739239948396517647849822891657224935898417327638920706640109457527183249718953985362602185470164753221994858563762607893830441943856617951804227480479474798728494958015313744773704666024802129604267370675587198661982282028326820320177730350961597300105917543363009354563282189445752328663736966901351576776110066041198455471534875129250082415814985822101698761235536336452887690590681801679254771768680419099436574719017911559081867238656669358963929797020085215347782569624874938873260170358395194965116058022874767507523599847034906685670624494854626866842098894800418459512527288937122518908594057472495859307713829924730617478476504109509434277557430529500473931780198307928462497518040387589004799876557686296527617957127879434256077943374436033938236411571488450674115779847435474196752444558981725390302673196782680353665251798668002102047220695241867036524380527339855444315742171296948547164880739070207971045041205739132848405036993391781531679733162416963088156181211004513934147595929910270458894194180129479231760453331647135154191779870938780644311593369747215050887237682391883668348599369356004880966761992242857735540992931090215080245188861746273093484955219560085035871568551361434240847711970136577178047232554066281027511283330921883125796336731452430110638845928219171354543188992506729921214273689615263599516221618648675942606839770256878097494189755813751899970059763271629497027734131920331237196479363395958613167097525230015152220267557523326730378587001213846991225553661639390938291811115729883790610109811891551678465278694322662138091951979439217141103660243192856961030281449316504973670108460650559486666891598800122150460941619533559686376807084395086270997860462931760609261136135940511467324723284093494745674710362796635736785048674911938662644519871805754002625005909873363038189141464576707970608393730239510426584498049190718979118517934583456793029831640243355256859424565821231844654310258535896395864213183203205730965955748736664795310009904812204509986130586998331250023610063873327374519426227568080011392831139764006271704294480021370281720718013672292345932788003930509438892112851183555909592553438302035163550703739446387669945933966905095060045531535694900239137661132606129771262270464595007877034615558823475325326892673883845932795049499810272016770066479887220270785759569408614139779497166249704539335201275094711177259376577135039733467615658775528374826928434585058254807937448835726320977225630283169889907032549776967314795291685555557519356675862989996541638310846197197207762114075295629722920585404869834989321073529680602322570360169735115902770066890029576721665326189079232089338848159440618294060893472752396954230456132657015520051417373619263131351245805941968702452327598566106260961552899507721708614278013850813520239901624768991626903721134235700444067889524850019619928859508474013352473131349686771461956277215745652783188404989799424006582962763253108531831949405950478905527612185915816178566984321313989387424986532283810859593294031658928015948691025910120823834892785795420918429740962134318413568872862886920062221397804877980054127238709951973176445866417636081231288463523232533400119520760061120048630600646077358438429411410109464909954261842335692330667756829486912034880657403534939211486022241205077747881805488839726240015044557043656400785570573204858959905485179125795872459575888148624531470301657557891183033852470152452100294505815990673088728044229292993161612345041866923772891516843479051251565219591773794605841954138700266659777530483579987953173164364839024317467269150633390680947856916977015016596928849902332507549521817682140398310678700890982272401186638405663060658148551239970170648590745035010579081674808869973642978327126761915523001666699464097293907697731875962836483718138322022137929257177036512878325307469502912066055342719276994467930291023634700090645808796938743563055561173826389929803430339591447219470210353988831535198239595265092006742355673977918699972480833276218529590142832154398879217576156588326624926879472438730127365394004348429688153596451520874762868523545096922206850912720009079396084986464005603810980988225326203170811342766038370553636628316001952335001570924248743480936922090701469775994645001629428189716739781203309102950923121510107037542062608091053530021429434394592945501646864550328142519616185913766242772605163113566320865910580193752641294744181181600609546197730537216751868557294118411992965742733943126659717936888836118950826967067182162786943086766303641192850125151359702967995522400330249192829753261615109355284974303556648877434679169985885348163396391790279721319800418278192521402980647392566798522002829589857244895392318711677402701814203930869845026259805721388207629073964732225665100013694908510585233001305334333327568597399178599816605566358200333770375001803361927704381174354265258933650861088598127772741243242616349776446444170548338837927148314620608000221134172205663019238369855819239110133113145029305958906389229725197854557110126704341661004795980232058801969532619886927202917753726119440733711619091778734788432513382538256041890745802967669877416008770998154105773817393431186895429520585197959617447105172238442367222174034357866346096017818523379150988728389060218328142047460109786637568324980049305986272325122953247534781481062071845546525307959144011607655603750198651464258901359723035455819579899715139823638432335250789539624137535462934438046008923018015488989502363372084117595550706577845036200911969208392920864351742300997793577463464957566835469532216713132342180516645688371089665376665346110619024255717024428664204929026046388393566200673231454557835584788717055920059850825238081722831331124357929614040278475709365818872419822573645616605879626803503334704352548147386068593946287602737798223856771978824553193032838241011850017151226730106706475953119531591551019227617923094763027878281039101636909411554130833643164922204769201566901900381424877368430083761478985006663481850160707850940669446849248640427956429680401853502475009809465986687694263208933520853708487216992062072908994206135574129417815245270606101344591407176441553538606982958845218811240974513331805371449055148664565879548055512510995183659844018046427974091523089945368764780210082131653752430062680526379965403940613764553825441213794681263450286091795379347829975896214018532864824548063059706497667885551030236868250410138198304163286053460373237534954237019705937151982910144902401828554774771863512897024365274645723266225089880144937436451647462516985876646389962187572330141180123549167805673244849755674499077296351197267507741131932675269203425079057531922224244316584137663792609576421259174133864928831674197885488811780972795000358830369690607367875111487244110728600512352431551946502045049326855509658106341115529502552432469244420100114942373384705795715941691446651114275973076786005982399296397548394910373380424146242014055493649009465862751940019733282554560596044314790318318902092472070210445493086945642283944696853662422603552967619676323943663492078844963361757695995365066083362929931528898421355674392031876846428874169715437764232446233862441713000123437883026127915369949315141896893867560476426960411871741922479327055311830352144565248990167898266925864017946007847013310801105011651095820663374360240310916728518958567372960571987687713584322970866111226415346859122390221344388963205559222813014339758773889864744720392587598339111820547258862776353100759233173052865985445155695227052453457983511031467427733172580740311069147016509337187304043440464156851051915189157678468415897002325338166842727397270989807107164996505193199246667038275267018959936798579038551621431311058830460663986722462464112425223725459073412635087118344379978522918641836525813550062745199026540845487811145252779998003782423532405250459099769015443127144367404588765818139283157297368677763825868022547393484005022912047379162239868510236136505961158282159063947563685576978844286825654165766980998191733121799092952308937738789832560737600851019866612669838105862611376603275879708840053432694778040273020471919440002920129790557076379180626490699753236651095378629556263788526866199191923952870348369067015134015097432135103154941224655224600193974731710548568551420349758702201530895943437342655102243885993889675899148967279147369567255520678753354761108637290055709127539892893912797898728535511910096128914714469927741153969957318215165577637792899806515382736507991697033082065972288257394583014482619886883092525117386280640020152612659705099461786646090329402894556320704269146198323913619842643720790094682092918481119409345111007967785107656414328708268962392132985360829128670844658215924436960161586732450421711858499611336576924527528358339412315057886449970105301555054293125202634464306701909499348244856281972108661052974227559066615227321577969713380865895004814174354991830571231077171816144927727682541050634484955442098375576831185515208235420752726963250566330343886525096755249448957335439697835413344153475518490984327486776027808090976642194335039054447869127625242511258564480438200212669324996030525614398380069490733121621398602603446082586282823724305386663139822528178859485936727611852320659137758462359342878612535176188367198940590197673355885156835009056172747592895975548455775967579302911387629667836182694965305705602613500743316225401504704149836238607288125604763323746911466652721381775922776283312189358518324771996490293156722284868233537616518330997884390007566120524974530687461253867279059951196298297147565069446642813421689131153810905047798672316749498460014898503063938659286624981086248030057473519285095181032636191976774365221844344483973147865928033924657040034597194152649632250300865544876659170293428766640415054480200916411695178391254499744419051395006153349948869673987794415423469192820648651675865028858034992407553091438895077771812628950191176945135886680021032668923862200883610807877215071836255427569474680387913592491749361759559911738761537239597723193299214760420433891964652834400627417973525305542350495742287806810935034007762570507479990981078007866982743371478597048599027716944467807942641977941027683732726876135803641361670863807585487672982060818835394843265377148999150183583810307348760553014005424400142447736655647467556693036296595122016289778069712143332634180051887600856022314940088275028356235655726032904928369060674685042092258171642031588167274047607206114877515023824063495575522566582554621826715880264394897489844906724562499742688168845010457769430382345145629473882790987992754328748205511192530307040725236289741082213918049258070250727267671161091714339465482653258240553011131085445867935662645248282154034041503419479110655750195387429076380523466526561969350532368337939155727154930959319832152796064644352892281344029688949603632104728661845378622389738551148445800625503007255209171827020481985794350041980201840559974053608106142299009297487698206034959595194066199423896035900450230809547458035135597857618730417408486706627173829698314869924676418146888707404543641451715005936107960193360596088340457099137536466363907842218183499651950970526557459014382210640694389035440280818675990177670391369301923612632845916861827949514735860138687349135377650789939278982415277820317987462416294363871824804977604406783848054783798660483500812418467272861157283199365162195619615887566350365363849635393968581693066371973121862957451673526783321065299214004560120033482924596455120058507077442367495025053700246163533728462264335531558776371278409043862245021981261351186836435619924080137755615355935215704789965250412702382517557891795657403436191475829374410530700543411190563382694695601148101340661120733484049407554529638166501318831386162794623581397689504483422419362177025199863265516493568400222687610060679629597148632693974365949882932878549752702514829636575342802875081978424233064516737756465515734554161243015413234200374364399548570494273577876802823828584325738593816317940909348839077389885904387594807807878478035495861461262171242496268355265976255453438616476239044049858896447307800299783403620457168211173331203647796785177828782439259071233362417295139851060466602767574921643820763415135583973112605347252321436534362375478663459745809169841618242035942390557113518348563158590666901135623891232569262208458895164729907468311827461168180090676711174701952911955149626149288584708889201517411760162352710172851743226398993933786855783852790229047978749383188892652217303812985102196941918791879554701768248246511327616963653198729599330090106485211390601345974931299270653358232913093112174520545126596432048910576063170936476479849995664595266338857767205942769239972941223239707760076245515450207340349547915127278491334971223407044232685730409298239562833130292512571941171052147699493006240540612624688513506600981254776444450719669832935833510860622727568644536133747563351873434311330634261403367071011995340980770334634335228373809530335768371661437262016127396775849147057713998001386577969616448230005116689872065089096402985303705230825286977840062745569684338518613945785041328635720626967376430505846822857796380483077154507782282008643543519273363194842348048087038360835236556605288669788131108128308094635677727998256814784967204252522549953751341784168229169751405475602336968381598759432938402289561591471922994124084099498141903515524904672417524013947901895382122767070425700488171896154389978026718669913549030846778548964619888841805029104443584454039633970955499447320211315989586426087916425869660043322367167853255213483515029092006066711677332636079782865133900023292754417389245354537687944029380531487517924682958479633437714516275380461661599204640379219272681223370962109109450072962034000487746257648224794951085752142544871835917014941621287092809039374162830615202690914819629272738400208976252408856648476216517152048057579540859234634012134443315579329202808963517601431924156622884210987337722646706843940751331107114732298217560454402630353664373965125703598631979046653892030564018987766646129001512874651058638891950919982792933676884610580107633631644233620351633188667039226222712761076724788242246299314165352382487657610197259756136564063620386660261984559176334087756871234260318274003513921185392418552627251709155236168391820850214165180809922411269265177543373078076834285384489198139104282556759664898760397693907076996630747628181293067714425040227417415816210064756766930945180595484183300531711024856692677349517979095835317739599230591407846136291213899489636730219383506674720907077981316853858204403846970786389039733443596166272371899326006106536626312051434424298119632355299955287137847173348158747787839658600156323505579137010943598628474158770545467133482044493298009622750920751694988947968371600016342865765675713867194841822992035226159080751627984274179081403003104477197443835512635399290279381307267483757330277432640639399264323699406549586242669041763986388869278403653349885443708311373404799318292446582536389847827603377967042031814548417947508306810698767331555745893649556580910165115819848949455110298241987005227711129448387107342817509197958953770507239819125434753782675030194286235720004431990051456592225814729966819974148841731803175315075277951145847670681293422481089749107644684202675830832119410568424609805571135342252019577403990549942652583644944780276002544810007545871771048810396974403463268569291308767145842628980852826984739850173545828931351487628386744291507086039612363850767853154194943799890358654310856268266965453751602723120537210629519261350125223606930329516600003093630436484303991169595878064088693689753727441256557428001765131171606687302711111168293407737303313915873149463471295444492079132266740865944022764717919812788272717904523950312981142374761535658238781275245932734614934206326188271163400782318956331154776144530379028213651035805446707356397644820560119667389745044163017508699168888067186615099715362366420425373671766785880117757244228307468103265889969168855921948712320120897207593228994182902781310188367355489445301004506135360083957850163796624480801705806292878527336285605463502218514316307454812998852835269620569379564844706715285361084709213506569178917005743005407944211873982199374530125331279994232389820432945967588756985281401926712282353606676891754608050047762436613195932059088531005192884243542735506579514660351887856478226679991148536194086799744961743328512117116829290872288641883440197541810148492653075565745059816614308342422854744484029838924185360750907464753808088684390922769883346884342119687251744589014241545584732981324641119915929564241732417103868061803510267716698011958802918133935323520368987795840977354996564048108363606873416886520407139128892793644393608104348232081706934088559208740225733961105206306882128631795689032857506619253309321495176166015444109571228126922850524490791756936359729521976863964276191390313418499025860623520274951161091578733654999091337176122199341842615093084154521400555449653247752689852733051266778373219570187736698409466055673762022367973596946414302619487887548745135681544899583146531500403173225215329675254650138645839140950625136949108397177416214430054156251795328145121615229140762530278881050505839140503242710508284915802734529947510395846314877603219908901540744782378777634477082912857149172463577411736748059518729453475742261066432535535378456721568565746623453759187104699477893523513195564859644930961809703492176745430401817541993945501181933453474896119655672773978669627944795769493502059553001778273618748693593515415777018855104748482084264612365287228174006029269222296180124244744949220510318696353337021520359871015116017385511817654756506523269693943316432501125576076414259930018803593833852587310293338726982437784725647946585311351531829055353259502245486070451822275945194616226846171122898663108814587005074877455036383889789224563644791109636546156713199033184526673771691433079778430168009599786154395012359544410866652590699900836230295721811320888181959597711143619046502884320621480968797115162458324579560349231459590434476005182828168053960296460702810159279102375698971978994333814671199563947320477283044378808033050502124348985193531136783715865273298553195631332997022302457271066262281872217096103418439284120000260278960052130584648612229737606885251667053119224386408647026144433853831042250571681222326040853143644761589445110083101552550429116515609900175151560393240865856378922633360275240340241210207161869834683295269547187123684485471184115579541388897882848171405006399815487980198719184475729302743225611306793087089295322089641307274529329861356866186605208161262259921321826048259772969978658570205220789816438406660612161279469102899173078820420487496849065030031245664310278320666192999817423189390533481519398624467375897394509518231888380204925709718796480725708257881434747944282631007966742637382651456993742599762252790011388605561982885683316289460909625518216196963871266468729413446878051887104321003355222518716350127007248494031450927602549053372090033202460223842664881532169349776308706197186702993589038826186724653373426766205534677358309388319704788138923485076566475928988462382880880819249332947515885390385347146142723217993928130765401171483279048830649891334642645313453809038497912509644500345489237782638510396406852074636869852079118521773839690570061935615297355494810841801359957129554614565720221490056495297073383090531082755645664077060870210692153602732793897526762754328252596492662120145081726182313440465606294151729796148335625001213711054829564076590953125113767515601480855303996468194019302152697489105504595702536412710788635237702350396412733095950789904674604997771774512187519556739130227040275239023273429724890221355792177855713825479852411550857151501501759852372130722828850864210414327126757749650433463662098719387976060654351577916645005875967730819660002762374833442648997319635770095823493935372688991327120743464197602412189259357365480603472102378387975902363436390423175025879425214552252958203061279187303108367696260099715874089667854161380660888286281820972194971440291863543281838982318356932123876300714628816333874875087303635892064502950545789422371361081375659684727132987237657336120815564837356231051946502996290770513215854798517144893979475823801743117601186067872185927328767190642496769367927745949506913628696190682506087886454328522050445290442417395382116468118811886114138644395699503906533363291949102360945842468396284442177388474467479063364798341970777901725654292363538888893603612269736065940849197841468124211695238377845596046681669247923186463621517463246401904090462326956551397239601209001809587944968985718000849744450627721369529643287232412197281469676713862490552994360297498828394799866620366698942819848016220178453281459133397401133725015446914246146014998617062874017938066027298465585849252480629241874026233663620269497343576571631118432630790577943180830019307908254109534583302551987148183342995044328470625570617135577861525521449796198018814442561243107021519253986011485732050508079674980430729846876863063300392897562917951336773743891734306528149927569684372795929035547754609169674865531729216464347382988543994927482812950617277487756859522137242497292763601234330586252938014459385966144384798469777805897371136484087465808388479262896692364690412624885286177477649904344798228869304998491459098755500056765687869285727409865110456752689865845990658123463324476218500864257083252325398185292272559114208098461097027949460091034315930199666373810934767232211640477686640689189917088745972663007746356015682554868712503366802537545273835239084060753195078203824112533214211538918129112574724059435384517701640230084581044614891815650316634308812590468160900519618628650165199123045682651338094075942066390318129551513803194729211481909642129000760282277961728918754645142383916842730675925263382834998240782181048628703254712192782327238953199554752695174918762449154071059083097682460400088489903650608143722112934553743255718284012078256607871071610196262447697947667062142405562199412296604554780291728029605297419813041619973786660368120483358923293068435854715803457168888269896710409530826666557934934420967752644184336603196300241547438138564496829699972548202134034899242173726020346830854261839517511171976226351463610983330941182801346041597197514788817158662252232167890727336893462603142995435747083491594523427240610301891433767132972560936093125204154655209099259665934169249261625821602411507951717106348873922975451567923635745654958390234962491083448468913844268986914062396725013749382255587315033481918583691070396735885337069060644454473186061385393703363059851731260812678657115857921909996281216530911333871568114617040715848657941012702317635822534841792547459482688110475796471280660321847378668980535028650645123233348126551341548472430412154649055859172091543229095353749016946633805452684437323403557608970050088354859907975079223238901475380831748243630049987663187503132937630192632997212321494016334427597878278379375099435538760948052182952857461128237893323625345115893710985546285066519062223580472293796347024514461851254699057899179030074776081217696947620978293904065545213795201763384204859523598776093574024302750381200336637782812944255353069889252393665457913972358477670571076298009246225278250310131092276012801653250325851871580927444792636416831093523616069251954412092432740773239093711628635773085113424607446200738162121566629931949122043073200425021641758816222551076626398379565047751827666657381496637081731103668177512355172351866035868218319377957076727030212507373983340150790038794252046356977860566700940680907635526999647479690890477867205142523517931399410346376625090809075264361555488920848890038009881986292550616448029848152239305581802160355942016469698311078701631109130515490056220432452666213092937419827001383840280182069937846941512217998600295594074666849982990285305774274909236739385185179348149743583847643247902058880466334265601559877010260572799386734437679862267104700058446588263992521433636850098809734462934212236083932662627219607808914005221877118733802443130478675170625740383251105858762168490755402670127445953371661462703048233156514508587720801371573357507770213221002540694089811822686153404733656528147835321701126265853165828263694383072778951717010071702251948756843747553217678370350735354069279194966815212552517403756940229923421740407356158715469134741326817529470163333769580654377501119275190324676232686373238629432809298451939344536584715702880717551138402010464241269545423389183883241477485658476230861058114627305297134563653731712802776546020027853428564548220441975404235036545999112067224230275347082150911856444601688074069538619025923808264430884235056925707527743007444046567848510139839418948090539263202793531182371542666691910590379985663583611413648887858016935133973079148141579262338147646834814307527915347260214923868542861684339725864068469902441794612221789467464738607374431691779267628252495665233926684926290912171066327258832638558166335106849326193149734952002599478844311516601541071133905603345747377017619404829331825889867422668401057519691640823957724126841804059444645782588175605601651701942312443164120112176947179091031850590411413179810152414096258934648217687424034073148147043330830090129407861639379692224843742890022305507793430528889233351949688553551986332066850808546052863073604999635153717026459120543149213071754302312891874839033727363810182033860580852297401128395065613705826264944966517385756634018582689328951443538558366700772245024201291279562133177935487625810988583603123629929312681722556007682205866943490761847809411973890824010940274107058356303843666734969439193069419230770746482419748946210594431334864138431034256086459381646826368117617327546277550276193852016696622174000057618121309657353905961344010568309803312167036546063453202836620971786945540041110208185795961409972184464437680900690289678781486000382220049617071411559336356800615229111584855773748227789033372508749715803883622001374770772558657810297114415065899508873566697157016719217976127071305094140932289230940613288014741453234713541386017155962689678308019312619423331346187488307787419114340241510888357558250417906938781875993855977717148373574996133208514341198674757396314807736873656232697633283142215364310982841764953228516648687202998859450393683447586049250828425286579306368587515357883147848341840470456350760012308501431180102950741907038614260011306310349124175172571351881221917803162384775007024772159474543548259702509388396383225764344163292101557683636956289519504061919295316384879887567568851136937946824483721257425109739315845112028025440098967958543699659737611845669198185664542485573927437053771182012618161619469873334738427304024377894933850797144411849376076532062300284299168012192875501167174589188755350265276206725519532369350652756800616397104892732519839658138575927913332949983015457384898718681893932591871001404847306663680825778485305018058459399653499861824279268524030273991106199990247719579349604784125459345068685881720699190175517626300195131110175074144335729307038611832289260194196409242608206112611833323129359323679330168232305665817040603955716880118463532256588342527903605652080137496986757362489565274473522669968950707706795159481414264352527634580666359557284867514824701870181272368115846829279784039816063467039583655572004024302215537641987904553572674227373300786559388102442922908589289209841242476819357756620710503236035638611800646833837052427180484753588152233206339466074264660832918527143192171467140482042082768783227382474877474855599873036841801606896335829828294461717158567247270736394533176409078509884043138071352004878451605545071546735938873194204821389224230803830046258451521443970902241062965341859848073006140213573747687657359249460156531910768033738850864483786120001953451461562740497546878585479835036948141261205872820325255901918441418423246685410084533872655612519446163386494382423364497219683764919834090424926861159587882509899466037534069739953707302248861269370640191708137524880624795839567605707544956373221618641819918472683403218725839956961934196531772267584522238659309220604645741837783621949164266471801541418278134919642960709850409139571658979391457816008643292241075632709519905794226269561035865628198651254088019042371286223852456512692623609642649762799084827397934348418304136987718814198539198454677912405621039085230727169881041209663649962732081279933711584819543761921399037055936803896953328371528535642582378586235110871416007524615229947882609951210657165383452776978308811227057240333700386894730064402302014359028130206396837963164302691637989924042348843823690691027492290871117263525536702626643974612565261970508883980152304752914521164299766218732571236842041995619761524339420469357804024315012445706311746391781790852951535323824514481239733418397110537433067982403387704290995970432653493260949445770451627163748907709675389383836088777106822021878298429438136011873768051218822388820436167436149882640193143184284233727742354993372868489150306527411030303480385290711996526351339102246490930699233220019090909922291822865538049358752346764918755664997659448049203836094594714950180706924651812201277932381923029198171310432515678338535613274363338863010659144146450082630530365976755127259484796391948379551495053725443369634028164206094540328190670582287435657657331470496105487185132979076807728241230322457070900291599242232928800778195772060050099851723965801142970395678411156574454511869437146916846302083008983954172053635788187686846891298459808898815576204049968365021403991132655550149812274721689276368126810575677794557057932209887858653508722542841878630152391619640251708925265089709683975289049439096174015902929450535282779846209651224765167573571030518592945954305913007747275971512507266447804275695960605485037854809418733985234923740165834493171005219053810797197570933018114997485702603422936527962946806739349798380907632491023066426177653199279432508897409937452246807114661767380849992412716028031340119289861136915991314430836909420772351429911276331691977300586637947156143928586958237607042267567728440866884886133337809314254883420438713734977571679241096808762381183198925455436993287484341966399794572897509672017486189017632864527176067586307883164903827295058666944937451301150290477989366776092211562294806117873593952964274172891657870563377345166445535611641600343738329815136972880486604084628439584183842280457941000311332504482744400641639981001059164655355247300376130618391132135085740710881877953560722691361699639788695168843826637271028929249133415134232584677353958975824972250897316754623248321082999469590668400885946015667454375377244745584280795008010779301079072372382558293038112315406857118869617944275472875643332356936733998638821417187711357668219420225830876616393254746602000032768728461844313029642475511119038313435862224535455448784512109437428371747631719314960801182388206953882618499219024201031836306829219039982528273276325746201035727563660770641956293098239798323106020007665467689022142030939515270467364106802583082033016791648755214325269558955116800374103121888528296568086897844416082426301899919212107621899500392402076517222903583059052771787252292732256707736852613339298050467626376574060160476477536284252974060454000636274912576554202642842824830838254087593480960618157002921616789213898214442829096718187623726205302699144826024617446350287731582249671403604489636062041617941534448752749331185860777030870246966715119618354566735489413183453182984388626674748061580426479364789096040164522918205677819219712090847195372015296410123024890539347000507115814687091259848076688692524448144353636658802564788953856339917240651078060223702259361377080238941702033711419406772418952036138283692423353823873413762755022345315943753167740282895807448150460420872024736030906077051729902454814035095198307473665941853205728505802513591483016471423257851164973520561543610222214108653621199005818346526923893173078196724697311470538505144343386264471238834812789623812269534238202868455451453917490560809529910109021262032108466830223900498446788031479398151676207000164011413088683601674191217775928014181860765936136097585105451774090538261550480969996990226951386905530642479156131266223143498940367294433935623875408220322185801496523594678621128094241762633325748795156204702691117881214968404230930637321357314936491677259428085620199239816022445223214141939128945334752080387066096878501529171390698859288791395658430985326438590221959279848422094004768097120387972617143203749977517699706124613077783986267456838081929646551332347694547718915044536290594143640468403995194752054842556550299316449821199084308871216614510407813584944789675530686986871522504562834337233076437795642615451315939329453488501684507046913001611568851301412031107455572354375649614133315271955897173853175621722907195443346665798435481992132937013125564290542809063200318773529781332101350167326316484721636028327277050340524001514958748633255692700663376907083330914263373682288808748301031646291579451926904628354125789748688053589772109099562251955824724803010697357432086446700134477124515137699949270004192805855740661084247195284842475965635363429543690378769482739040683639184171272179878901942823421419878046937377314866827099926502985977381044610396130195585527229113354114994326105520902367442578538819700110301127251567969987157528886011740346491013007402372961113828710368360311154413053399199767427032193292423124526576422318394437743879025656425840252096020889586751115464081837894750921821467693653466461382145849336634607760034482463052136290481524588991045581378463656612011631914726159149858831471474384613623157383776561116238157443548349550941846965193564616550536234337683473163787453467178469284911810169904926496287347768899168260893538788853845415935151845622297385919227427051591365186483090982991943133835140395233133151473261512463507943182393237885869683371655317804228033876391868888872699288975801851268202097142115350643539997484914564247471343550452818494982244324057140628683224462909400176854027928280284433141149441623416139326444570705585442195172644416095880437827536188519764814043195502513025529441907964668361941590902327796479498515831539546856011069929596474931278080708775620529689828584573274179149374974189044408340063953333828220302783495439011491352242091561498805726902640342906551614898374311335878414831017231984740848101486807045545435155164512651108065469093342129520357501958134312688546862190548377151867744206876670259055745991811773705483059062351792361342463979368370122804849375702201447512802414788947785245531085497519802174652312249841650017040390396196704335822594458428456420798657334309969793054258604775645996825100349116492562572120030830330968186510142970927324847845121447698933272963989991049561074249939490424435833545054212201567471711941776098099981307093246036581058570919234060126295122522840907002410202259162696299464613641114530393632418699265655261243569287704053536811332853763577342231984737123730897579467494775210813513447153816079459927739287255202036655627632294186448569184756515050004952018746983511203070103813661935981507737995131883741685713316610783681300662008254293185838782681057997259307254246513388112091327570678230187443171413306873591277756235201683474028400537392112159135695561351475230962916796960333736761541357638445565063101923512367702565951521137093706274698734767888718997896252072736670067062128761312041259038948933999344862169776843408220037783710034013774418308942693835496789343773832122041837055079011465615941394181822600453186038132731042399767046398925402591058991838585735926476910911856107456306284481119145410257363497026697748720494084271001668160921335507439924868722672825990174083039405027762487185686426518570791734110413212335053940746059945226469187602969673286399782285718628708970034246707105913096199101711134305742068729880275674074147320149090988434039700190381150201751715635729467317620896405070791858704828284621587880393112681822834851696361222037626209474430711227852761118362116708546710038452025217438023260431323392185657620628439394170846174830122303756166782929876893710099902082822420177900477902441060005660943850534677346269815757584607315535929973844505401796136877182759847600904733699474645555252353489874949778312976042189626222765856284679811400992704489655049640829039946053514675885349893870420280728862906628967793482831444896304605665532372563861143325620386138931112664393237042747329360507666074749311356017837011838521299636242687204139366559043161410557774507875835377862614623145236638313784343663585627777471395886360133713499657195057678215352991245899495465944682049809295824579117299275052219223859890899677816178499391405995611567009497920227224622393693779566814709880248786363313448187362127823418829461509538065217205954327494103628586110764004128976344826226496721748548515356572921694147407134795431045669849338292346585398201714293616412032051614481873871742341064132760476414423839489987035837282326366219091122270245703449781507876497069992474736400997623505996830281811690971018639323034760196104178430489614811920220374468961710347958290131681195945246790561254913822605981488547690731799633780976148668737507300685389274043355030468523473712497104274278599298956046739345893566108975429550576278296348867642110269396124000581850650521087296473077981089035798404619574712482585047839176555619374461438498808707330824906700210531701405022848384431265098144180101755966364892432933598802159969662062162174787440736976190909093255831486873639708009230824131664291042338569278613316374995662186169132566955626163649739995999072617223402957543565038560363158135753894993895710008677920121482844344696262211196432261025925065954699942288081507231151533662789780200388894194342835518124425316049480045778828594880896133206462857384121871339158240231733255462329521897195078543922150293907186581141415878289229229581895000530341062004395703299317288533308046441051251163668340245864115136884377115575707176614305607662451359521706483750214472808933730887396670486793063408511956252516823148876310289397706122828984236984652628896843841071024874802314456138978561017268648549646818688883731128747604579689193553300475098305125556381181089319289097832743535194304248097232458046079031741020393196157167750923370285503405431249911382383549394020935169378055644417734158440189106034317093143971249240600390868315732792589074985997165209852495596163050442844118424368953431508916129528790837765584036746684283554176892379784467945090396006502962003089573351045590600871113944577368263013837113454534405380277377971779108835819528078796866716170215675139928734282060147960181872976733609964507920026472955930266778169394634114920561497243992901209881024008590054512783004440565144700512185084487723148488066671226483118725139250420454198235844728125910508408236617238182645486194998282373388222938870956688693619712815077478220637585103722732279025506589288907434827887044230300250211240345907332407066968060794119157465053644440422416317889731319815757261169472989999356227142931214892813056715598149276148796133861791298238281944711316544518638962114767093166865367529119544975368891825410699595640975923725730301551767168359479619038072395583654164282772073794629376182587090821574404250100320053769868844722029128927124218914097321584047390996733179650196361692291366243893699950429930878701345286726820108861821635405366456533829531124392400474691993121404132148983385503371540920654028470364831283959484714111441894297135019269750830390367350643704837453890153347894475038990689567688447256257249300810425887503109017504779225265400185996127174611322228721554174051377386520908085203314712120197650084206717022732284574324012971765334171431207041484417550747441584072615632734567796647422518637188695281669095108252890684446061385621901400155915191623336900716326507902453900399327607116249073880830822912651727768951545053128368186822101364891024537280580450775149955285935993463840245645782760990479414609491757024509231769960762927439424362875935421372377810839059291384122597729263443996977434620343246893811083298905544261728303904748389737695011640940838529206526699028211840352758635881813637479849398471078296081240332989645739531548292964590190576861278809093608747338087189838756464331527073955703609329603437773412262105935365424222529495606123714103446159080186164282938921392843413589876138209568654251130354041435504080825482003889430315793363949620270148608119792082189626552173181082326027403579186349230893185603717820321947270826587568900261438206414515413581825240482014259918770013230511336765240078687044413311584764304567218041860772603231833533596829937845513258189854317506694863120436903948888905163566562654334493888385043078058305972489966820508771772699221237209567395263936360071436398057985615601600658969922631596714975467962456018637818625022614619620067383723294374422396313575975462292581598522768311168008229631717159257426093876194156149295286712067997632357828783067500907776740760833071241745359141380882980322405922379311347193568928204269288289152416312420645763028661333442479105545432325348398532317552677849804330964549898387583998428599309805624111584494355626563424516510432818759707898474051865672077047104951417491491944105949665493098873143312232867896504265922262043172651792166018322595275793263729385918722811689595287764684349952546924663078069019612127671700984710892799401392961199681680268526360815330723567759034482143472548607774546653090840192076928621819497177891854861291740875147157669488331340426010807773134149736255929801475192893588977864092662394206566910538349528526289723869912567846644356237347197735646011970267021610806392315568744269217539382458661797924451638037331403099066964702880238892018128856893137284689286060122114448703668235731983773885967440095875614262062213702279450809199313311363428083400384136290424954969856411527181787920191291832278930862327549990409144520541759709955245547723049478585244300618590937873310272460617574168283553008755992929687012656170760157255629789413947995051698718882729962196320002341883188834093214628920266980867814518839432302963802945708403571740303429281069061090046263584040666517848751366310181628839408234236803969016951149594102422450853178930542834465278661805660574086300373238033139193500108270150273006927112817403994970311507540629032951263810600956912365746673062135494087431137446959185137734651365127428143275531056014148169882439047668794106075695808292322889538676615294001706085353257941046070617213271110024846793743748005519122351861907514749083428464703155662382670757728842126929578438563020479046458229593763006863429576166172501051609638858949486573160268442176536535213926554971669799330932467655621568417429437813513361391081086146892569263412184379558835684831130281696669344505249049064717412156854243190070524499961711885756269135117850126761692728413001783441463958094404987569858773225196685836227675235103675578400289383953030241102333854598362015627262969664229200559858764340372480985579082635303992060305744482854622907819109172555226095958197283636011724572656989096442129663351986517207208411272406034298825818271506930821100065499756556577211527406629771412200235119606167676152314495510635946079789858510632880275326881483064830920643926930103527562136481532342050439175666282397630900492404423849331627972779937998226788665460330639854824156708154763537398950331714014600908045880711846509858901882514279563231848623793247399019325815253030528461083539253863225502439778187448519949207324330393458842952681035181241582243941102290133911653934634982806405416476331679704634650807378930522988428991074568345994222959745702828398425823069442933757287255129926145260024989839110917992025719042708036915672155079754340683530502135855481711242523023324217078932765526311973887032212739118884679882930458564191201060726740406135562256701891419889974396597193694012851090823711451083665814847550969031088426945640424189761921030363454995813762656093207778852178855393369158404611221456795932948431071985312684162426650587666507832459647847153494488594177115332173415227918316595994868264035022870816478929117614470019154194666926338653140554945554152101070019680093940464176993798424875111240452242158610102698853536086512260133831305979984629063189223836015880997691700348415894887991751473401889052723589780485550449541826173702287174746409033457971720276380408180471880883770473141516603489706848405457340128609658592174327715407667985605897991206762380952961547768339054678615146918036040365287939766300014381946416288582490929473109037922932693806947965343721289950948931163127952802393812158746903141736476841984783507770259474419149440217982581735186170902387521820701792932024067581999444746550438296721098201731110086342535933494787036858314845644380741634403730389547823392872775968109579974081693387944852242904459769036258893807369350503423027707275883238061215675278362656938535135395731486640246572863018411855848163892764221452113447240604400103903588770934234753717899025605775266948444829233348255091610726386865545013086783724945865038286239470981690873326465867530683937214596957885579311976703952438875972138638197462539006045381188485230615964697058872353174405993221491537366349525424712581339810513224232340815768264684760162938940126702571598410101610945057596144330679019597510020088373434390013956853802836939906185280185412211386027209706327248443433103718570405666508339908743278005776621395865396775458363902574469158062933431468328494362173798747249498956976934418532716358511794680997719512382092177437905232812846180324480933309254952638067532838084246261208834049448466982367354427841877833412683854530736470947884563913735762531796274952648962992432572928169046248104991151705527561251180029796490658898337138894154959005767813195913955116715374001914157754628579373255561854581452105187133234522447891455553873951784678271975226891054054273119614797103948857452499554356018715784622472226467135293303503841150990366808296447226026212457058620424459965176834785716911517385833195662408277899083503682031772380182355521434767177877436961005334111437789591801559661904619242946063814632057428926521542070164065537463043337282614843573287636435173952467892635635470476877983916835788936666679231942853390194578782842805274590014932463403014338658235393395431206243418005145452822972176223242088005167624492570778062833872852937541956212553616220665244084145499671807313992014306564101858405932013219178282344757437427774035748691216168773848773871069169730799864790331760997756160864737512910493645046546242411949579665017643915733172469072416188105414800858179991711823206404980817385562789677366040077781006541326274340946976132188368039492738927060617704912475321118104890111619694054998655332214324952535210931208887387454478494427374825977914732837159755867210286237207085290289177985523997734905878034288728853650926142188961599672677542793266206311375534654092101917528441843090571717394174426277036258717670525864019185616935627470328921054915596315275902087950942485376992051918978111059271813195839910552465116495655062340493417078489350078987411856844805723619561049678401698963471700872985193444487369025619915438373121697797507002920396517463332519733029117521425356739246956176800104653742847349934417778225723294923949422821800074763370141729658671850227033271485823078855046275362234428328806950305637850107630151465183860796366820304909920051492687717448639855711447948113673542489486443960824015592788586664049608768613812892679119738293931440467615072622820263680606029451707392217971347114012624699642343792656161899528890426127781988772844269197452314869455460574320489799587806404508611624882572670711057549621133033992134734085827953198408864937774095714901203907412924172032435099965240135051769166578323003287089265051017093672040086423528956091274563814956130145580128458527217016087865145786470815060419622584015774863735632871096569078856475479320169000996347362543510588627861633811855665330167853334862035880007612833580953167013261345568929287159199584445026623041252417509326735836353847290841850655188269168471732553024023091420581610953793360947229910180391620353803543022852195129091195799352318652324606940530254375944645840790821265178616901421492982699549854489616326367224843810118420601313685877872012515280659267186597328733409292659498202109941492593180492180174535053147206218270752659903883458593280949536730072987072309760537809040474935112240331084405947875363789284854547108269741123879434808568701998603988174244743747812028377391484482801411026587952434730872709332167046535112745470617007398751529185096559314145977131007374414193949607778582984862494169619201701109447743229726155191228852038606805732266150612564118410787886972154887247232639458930041253464197955092079614164422133382818906964454148402025960327057431112228371877259889053699768770956267194647657735687068590234241463574982661761214767207818745430909966520293816051143286515130263076983565777913254946789402026311994428453512865811009476510825483314061081527688279428814364116871571501679197835705615268118942588873577676956062795065010224046541869010174677261019873969902495156129705730726895245295004676391083904876872363972812229925618457931595016512913885318949073938591680707284472844457312431008665070351478171294164594504180460482886777540937744492993387054901347674178478947912955677153867700890128108289951355790968548193905760503093649181591847124776774210548730371974603242267626418252447545164040194222020000825903311099657992405513527765863125417181328708265803294869855239130328011067254303639639598933177450713073796976600212080902198567903212749457658991952877779340949212226265687806497887730113059424080300652320655768506803173894285538834415224050365676888286316397804485353713167644772913305617230224303248720333812116436797984311933710401457474554982232418941100851657930706021016203496384344266490180414274876743405292928914792308620691461199202707241159548658727556927746349618661296306339270971883550174758566940372288554689214119660944019803414397859921480138431765893814591650368268825928866176859369129403463786237661775762020494307659809661435283014778022979903443823129754902480032700863687363678410667838503201072058391713965624616489331209909821602693666109556413987184420168582291093674238780637173219476682624777449883317151098877383511339011923570057540852745075459125574706944066039789209596560546439027633974599280677762484841728555605428864784369532398383290050127322204567427546080741408010277802421322152979885609290192668555233902517392476384611627563037740623273990709720065948498782043568047487748165040429087011616820410837940168758785228030961839049033740433490769878873180776748342892639673930433447989270735595083387228758316245129952746203635444561534663896049181932127077772695923335663313098302593324995854840290420508162379503957235886270017908263571354893117183279177895689165144387539705212235905407710741039928210448297266407788218579053279333672579247374351914453938713388106157343578692724623584765079816786266441443223702999935217673714471885541831362787794023360034823491831235619952035268023793941941798022867869386127157592490695482644628407943201749267535843324676860367131277251496034438172929252128859011628535439922030888753483771055643490063060894008774767847459371267809877221234625740804962999022727822230517547456472503211173199219493783270970115494514556317243809853064554334447844875800319726661034209282981134015489762497332969073425275090155515351623688167632336849618076731003061167909088529484086157040903634892340059899999185820143560801617548798023328230563023007789799164097438672933482874446189040011308336098249562201040959534016785789122075065107766657839926057374346470765237640510730843797245121255831381037155597056586543065035801733637952272459166571296414676855009767037836984550949481669986095582104243323896897719658977325344993564801467680842490100216707666918490300876941374963005339095717162628443992001684178886629453940110973801775926555307951315001244592076599908644431736010144630524420175086266431567888812039900826557885989050565068273104018085245082059913175130877252350150879539584261138224750998856915265485969381887595542810991765438152666328804377525088609994830736042582006195453654304377443858296625328220976896664409319127113244960193077382806704227400854140638877817398974674966575512558944911072873899676785319492926712599811707856027776187514649146508304838073238644268490878309939218155675601688176086741138410298163566238083477640570321499601086528087380004427943290971633343785634834028635380030477108697866722231550673044293511466246220058668581430211115734347909244999079864574684695454335646401592475704549571987562070618541215583891973939323228564577567593190112033644220586542345048693415667550909529831306280564297063857900568067945191404596715453351326108563608029197167263337648505061213735218968216772637884129260064769858567714864855824481446248633407158468742021266529399943978673697767176863336185722006386314942321224316761453863212432661010987565659937019129139454223751623006885253405215627669016506798997109846132021293972655666433427779677700517647860879096628472645900093300799244550003333890224110474940060940578285493307399386102382382166661826016351101223502194864600032931114609052210391309434723815178030107588598191687366139051510294522725538103923547057979840690338430520954593225944163573838426088257371653438763823436925440930069515170689983184231202542445338774719532643751057879733500556052094440602024208045283464376579027184791909646039292483414937139766314542583676689236765078046250934395201692915223488231099008222446197620740885571805686572179795333800210053492003210836250088214680849334168398670181935667108960705113148240488610197155849633744344559023874768236745496912553265151086972364811163104913091948215432332202382864916481452409915312729046136236213335456607825565525805145094914215316130245043501457491580948413991563692897615735515620357074031799192277662491781245756783146224040532336324793839014170750638133865414810036948987823013374802977522319765598979719383442066749229405737082616652667455825313253514759037955457364922902244064801296411352970654686890061951337536475419054660472121773910351452978133560005622743194656547258850990407271173081188316963541115508262809271901989590104775107089288824605956792505519928334114347210417389522322160703731176792581589270111969766990861059404220912467367613263429821442687623643482639152153159934751603739085357643319163446801612936298127633030860464276747404918230375284237322261021767832750287670700405749123884274564108741668704934686600706888296590681850747086422243814317986410001314777333212906646221905356249925393879010993171645463656912893975773528542052482067571894803321753167084516676841539587264445411965119212747583889272168866797820414242037206312370049859636686424449666403203253876556608607794173919080661499558534115352221175131389580793237380053170583861640180812142677255612896975000141296993408701180056996798938834934895021013254567375978589506296481879525177614116802192753124324708526620136093108652029425491823311594784986972949274815059749328405984801793817166879325324564810420878780344136229786935235891998448778798900508693475309392809057794037718160799468385852154053654442883635175821896963917308838630529431171959615476143449217374495046481597465583318316694920115826627208689502648338340222219831467790495134629096836043437452186545180680260594694702057892034915472781048102967571492721255552611889095540971243737202649342794441135704827819186527779473381211224950406192929116358367625709280782388846413626697395880068340511713144434800331202597697863866424044288392683173377804853009203987877323181381294143231300093602490358514092572742706877336024058187886397462894924709424916519892418418928004541228956550478467206604441279062882952569025958145864977990544487288965007264095099472685057533279878086449745486689699084565632565457020630165577386220458217647685534335364608962470796564235808317845405356033886804680893933875405193585557753666396251630567081281335974929865348499071642996553998523216812761677275174686220956155314127274846375134653990757915900067475530835720021640055184640258134439471016733305736927214889125853659423287560664561479834856358341664061080778511704307983121638667344146188874614423716843419167858555931397924476250485979904274638252200651019201145827189181093645587235200331230234267617645361213695850324423689029326472655054040221176791881714994123743303253370790750344351448511938992959656728257509289051721311035930337367016105554010926885739985871784836479510375380871784862364823735711383094038528332508516236154391481252060711385007628082553483934309385214398724561378064387893004198313836407482119142596638324949369954596396869137514218943963320165939640730795051784713247531711888918381199721742660243647331317992094329565341445863934344058240513741516879795451790408426368235365799809240739164161398635180669299494570211079506654859082191750999286743553165223039574337870539233876962587973439831890267812597809005472357537780908336402902355180533754597732843691928415312316790238174109030916064761784645569304079514467296629400726392537175765222368235713293427891598042966216603303926646655286415809268297546816588975886113105442514833220332531756457260763255890151494924291020385164262538794242834967341792095689204401312365302748499996268938108604965842528460731603775086638574336356539669051726936944633697617306642689128914786567699751096177198684900040655726835684113984346098079706920797266958823005939850479380354647850168984675573811007509155432818352861315918407621684324412046471697666319191811188868263242911235451160429656647528035523554733312025140095635887129714118288498647146773089322621715697054345855340816710239287340447951598170809071222113495022871867984468436442221477299720885900766630222366992843850672058452981497544113270936828772172246403010854319847345719899035045905377563871361113927520331901178522266205351152947617290736301106574445915559006880833527637625377458540780792432188582781490832700248956374110129162761398180176212422830229915804001572553097816476916532094953924268540025743923867974419489520500337312275032947175714774446921834983257400703340679268768189219875871881537399345560926352471148039959514202542630231196474801406409747631055504118750812133255521788430576733147017788939506116479427507251588230557286398474027878323131821120452467863441429426645334230778525626378171274264885802987752680646738412302569464378275928906421271430314021152947292412722969360281765579593643838778735154608217984894570012233290568982970154227867173077953298673512684914581536087509475975470019147894503554915714536818228978757114756308493286424173176170114928442018728832774569709137042578966691447032537625512556056294623524450220433477157104506645724926957955381964720748976117285622459451942351850923710706376672875177112022593456047025177891985786525643208823467604105807785042417116063551216728238482864996149231419298524208425820533576829538065832598181144848855975495241120791175112575665642600367925700613356779404811124557567583435469087377477319119938763991684605290769354070349853566917400163132403345260714621676041266104884364997702026988211129104338374267228708295125566080659326099519964866356212485855152612815116985429171362408215902536108029986294132415922419605606257543746626149923705260930312102335036029118201351979994230445525156827556923483569521008569716234098844452895685506470229023550885711995421945768876064599026041645589200811053919053106777577033271062576267526532899675178398083885922916206047615155491999534954233435377740253481548417972754717338469466495011387005164736467740908135479714269020328681557731919637010861296930161155482241527855459705582729258783608558725651189045214360665196085129893557424515596946400389390666868863406310928163002118570525726285801177493656523711141647254736927481283419934742746681368576605237689173179598378026390966087250900241476159956978197114434203246454482718101854370811635198011503203380526194936170232255023220408405374340566010944790414615106875810100462688005961921360017901982039663105327023699729040490377198372569216788570630922187144660088040411798935328700196794412666761204350460928123920591429697595531717758606143968314525031087354352218404322264003391335666167157479664606968653137422943302495059312296792229194389135536161320148816878144775940033733379566039909599644762087078514977914052995617386583863300844423815968340681320045186258602318295654049548248939800943033918159923928887074964747341550706553796575898883909311328961051099356641966552600932152731488204551244005899625995923960788250471919331428931379877919329688902372134578398072957372439067630119956863856555855397993105498519460522222723944495911500949322702777195617410634837417623284066712936412742889567042687150870827027673887036839336558047523818748569955782254756712113361086018930878652235721538489067415946999625867685089477109578052127100516347490673456227821282881444086317299126455431906246618370905277662609155266278943236894587813972800149207000403709516928905512097586155353363520177762886161626484193772104069002124642950907110169339465699913763808203222854681841197372670755716617719870468737663099857995165898825549584391046487747106777390630923569402923105998450831606833771767386741935188965727103732439579902256186225251152125008364274044158495059550329618302174092627220670601803579746436119364690211382263131189666199324773371437582100757937647175954068904714924542715675454235058997899752023722879125841531846385348651497873990689378816324562983051327369890015179750580982834942035542868110803073172433810986870736358800879432404905269016875628132770489224576020594991945522476340495403456375666856160998335651759026868287642701231811330007344798444243082839562421400709735096133756482270956559374086459013447768926936186516383547690792885474482222548116991447739422887261518444668388118171998693612397130548198114663856714975587631719383952755759509116275536509727154381373141468847146297227810968323946428036751631217527563464271153097061576283932091761663135106328929257943968973624669146863775565162286111263870752768267639875589694024854453285745782683952434319290024098925846053129615387953117401300636473872671562088544797172950962026120040382530020198650592962797257136740163457943745593717135868049309527915337183432597665037913271582194653937938538577241698136097091647940276700037930186210665612895394797088881435567790588797375904590721936915765088082002305719806011750007603159140646489418177538178512139019886057521663518241743996224273546826169773900561413614024926812804557573257445546915158203423383427751143682851420889727096073174002912817622255186942892946646493519009385205204857538337201418185807894252993382021169920949231403291902899418644630148852397409717624817880344462746211681787458099329677842432174986922884536096681682517910598282867376526614745901442537304170870190779155330621576590336240634392254512720085954469816719528417063688216363881452025336456555073740060918964795565541955814956075172518189753481247329904967004939214717125453499339749686016536823952080708237791526581741367908416438589564917154185611707736744254434564359125935028391261581762522445851076056416395257348793846710338377690993158819402990621350892727986573219394399696417503718582236944814569819108727390866461848028730559887328077274841629149210982508480658619390979969943990292397815351631057478660543645625804047882920483954964100067654186013447514001838999558699745052586127757300918719397099709120078218974605629471751476152699744926944738452865224493232429555480859526003241718598451690600478290200208294406927275497749527255764726756178388778648597765701512479025064251937103364076753631873852143426647767514813552405069803142109775644403027115993071897636510611068688762712912230497695515677198826334032461887936494244930671495190634498226076636500342176722049526883407137673883834686457690010982278298359303194733128881288137995168818729917982153362683590886757040998247594565870455074974489781285073128203915754293452109326549042840453957876067921508282833810478867140856497396258040938329826281049241492335906477844326100233153748676516807546519197819047546173804291001583245867526202584623769346791955233601937926650602114032437127488250210633725471119346963151641904593165055132935079367393153242097869447973258114245818771724525525007508090817169618192031602331827825444991443862139786777222473090357408448918585464949145678717257160626410114699670562458764327966488835918747766213258623840899156924659575040568485096590402735272949189970524667765181773339630024279866316308885475544679621500163710042703144227933488862821083864058574215730833159058487647872691872876525485192768921382036459342332689997752404534312449494150056488750999560783708671699804185670065339259017011604940557618923801137967175542332386996091869934499605347963585471915328823597366628834764224227166330198641068965564804392865232570341685062030973912189539577382456771606510196389950845971656341025859246450153823557057924077887473671525973100138183222114880177942976910870711262224373751285856644047090866937310805969848738434955022416331267596496727719290121088797118194926729924387412713030681472580314291132805832875895753017580575781274455334986977824913626760392762512106409358756394321430000494182317066042597126850271941361487637883299226679740491626487223985767169402476220633874218973034915226619627437777998624389467336855067329991841586533912582271053786336881956710093566111593738591304257619634181623951206113232048848342161525606976358197088300716504608886105555831269103303012479061592022925711320740775389253528905718525492108400367206819661489421282538032507522058930423875177184723057522118866395200165844378300482688075639021080388031375085066409602743244378856725188980229522149516798422375223047392974016990454117485371320755982296375390171312889103411813067087824667102741403295496819931467194321880883314326313349494925592359706162448867389557422033890303262188381147008659674624916866298675487639578425810794618728890245763997581320687979173305926835754898889275182614202093955640230639691433605840192950097987980183717414285992486865647266308921581381205157920974335672268340547375472081140220942380335042038068348381846661867467907114567525680152848249088581006064941964722560739417343238657930804875876438183995597520796316573538823240080432536200345326618631695466432620514016408674788980896620031083403640582833784374366128903961050283494816608140384355129416732729402221002469553810549911410539080695155209400586599431576014828390188647323014801128910841546656688897452466088350855321078911939489116217791110886813442068894667642793499038296169687719375353524139879938901515457037924976530017854051233820991326662880142294987505275072216769964166123070652095525989771761899808666159828959122964462473957871193692570764003029895950835497695683159243758791064162936536764563263708363588639444375409262037163403467936044605786816667264514344138658773792665054650123720467689163690904529548457535361109082459070564444596374630083297970884031205415633567042645287132466480371615888879634657384210596604666097136803807985033122203934399765182538405314375347669510282266113160385885115719806924871857236454382024944988383909568040015184843132851429519384018770895391448193870817356654558266896295625016937938768101759889916060903513176451370471868229189955328059614803425497328662841506260158261488164857581970984875049299277896492506013570849955981825551713951456679804130019120857058404885196828647957767336198874165785830512894169165461019888388874063022218155455679780631228090487722617381630372395545635836169246019536543294080390491889921602549442964375517818117783711662709105129038211109638181780124050892057650103483045941798729709445189648995405410211150751575434617556027831446887020837855542992324781951651065390564531654452404884213669652604080713542150931659541810190577591680004604669070608786540104148096857444330939435426581174564194759712788463566779337433287944129749010819259683647677694890429220797935996134386184647485914022752410016550699653238716147760611332459240563921595503235692682214883644332342587533800204058713748289138160434122856833048145482457815810497475246121369036449055697422793988690867421450369423267592909541296337889769598407683518559082742790511834392494048832948995243239406639689777138918589501444851542340260329366797790644655097265778032564781014064398764532326670084743039072902619528090149555226238893797285355852458975231013060959724499312218613633225439006628494520880833234105885531046566210900062011235562238664658972890860108968121978623744230861729351714312577854467479912981222486438732900398642573923255682975736162998942627828523633052878080083187978187431805428217544735825134786758133166140061997643940715242216234326914266783015626418721548407496022893101179395586814667442877985741356212860478200437492003801495262316955402856823701288222112615439311419249906267084350689169158169634217328189680860668641132107187181045128838209404335972508558460957514131115959870930474715251067905946695947340964751974651412428592463837632465629635922105751910873958143601411738808631700988675808534897968942771708061330150498110632934342639430524068901566561780900192051888520607901166308191304544320505584884753311870684961116001958057467495295486176717128981107576906499488997826992621978344949424817677274024531653880486328236438794653288340409601081201788067814029764366734698170385102651089480920508793426817529524200018907895495029590919981150876256279569052158855324572498242378555558694506153467755876435033823695976188433896817603185350114854327495332472690054152933627106751570718623178812122279440206793987351372973257774787384243312683159305616966512538055770695656906871120404652334771339738316392221069881667276836058017838792697339364287434844694122628097734966479031192078615213205984217226937971718767788261359928168767309209647215874128299554669067643786363312535368855280757178063399380364129700800384452305494135224664552156992538595072344601943924769818393835934682556105363978942836195965055997605888117063360170811983898123477100474968946284901810952858105030378383229722525257936889450695519038414100385439057296831308754127368367969829946140175512640019955984640074517006316656441102618368143833254642640847907566652061361356190129124124100215682659857908412812495136107463987785822611862623604631543305067355259306620125946124037248891818352038853658039409699664043562275796255672166859583495015218634278432138121876141403915925909516220339045845279533058186791957430935363618373950074479651773260299050620320429081303092698237765441978098636071962245838683610187594706723567333895288989656188302417226226637052898227009591418145247395665107418144826583361449014138577809040403653072029740105840226533470491999723474249764288835660818362775223896064783460582292569547175262922412804861903859627469815335329202223373504290782057901983961157695302007924253788018614608919881423912325095352002550169343225831878727424600124727042178615452993011855727263213430788616364880410207426508774299129677265380320700916921099497746986513083084834972395146601129968748643429662682411601004356794519082133823519824377057930045208748083355240321985628246274964093964553840207330760075316407899018631939839147728926155860264758536336407882366047251976933428420863313391898019772681324308995124271044812069313101370082476837342726900987842022022595819813373813758390199857975029941749296462137396806679532525774436455335587597907770721828414284986899533874712414158140581796854523180281900897539793152074257630019751701943725812581732704964100747767528329629650027022280371552658016791489472890551053630189387763473469647587799800144277649559914352662510037484274966039942428434517807773933755557451195022563651407832302268521331807937000169626926411595552131543698885335689273750543352504038625477733741473967641946416469345150248203866150583917072435924322402047052204217888248716905618471661913271785778823507671641168938772773907625827431089329494236757034220283957293181557091047535536245607406950404889715371567866876753242365586725702839782051115423189064381457264845439029842379028088564765128492861022339894112060253149309374443228747351146588031228095201816429504688887230118081997742502954643710987931967561454003311970801908685883476016704777638018182931577467076879348173076559032372049408598180358339171094889213554005826229244821570537059426690253571909918554243985463681577280324788466756135357186595148099857671998124222113441136354542898497281542638964547466890244152898503010438822334889799432821931928128051935541159944448524156734711330319711098323762882933841916083442956899773752250610383003657384063422048701139152064508507498037674168389807695889759070868941021740190873703437750452729999202910920482587916102456477525640737641557632037428783548040561713046243005375361080644694303764443191698946258458456265783127292754121614558229872770313086110362119301558827619808674459958564898212967218839755858186799207567320450849756014691182482452456990728870225068377729431057308405085351194216159643328315410723072724534009874120621889973435750098045801059546461031451842884297444099194220341865521259047773943969560361979120271949226318598691873634665256095041563808315112876737911593986111040984791215429384480459873773988770186903427469544502734807031336880587931437044260035709371738133848549934794871939744757988255170762525868018988396425623082202545138810196069334550731667555099354532477733796378910403637958362345070908072730735943561567340625834105898258831336945161333415487118525228903549881304236682523450832922822369892004419273157350041921772496166620518930990665728899963051381854113321672141393501831562647702644448803953604400005151832279507559555937675153178529824958388797233811135142448396746164208787187738484860988276201822959268076291243680307360329073423113479290951968119321439520914568936101070698441362063557070969129027442900356834697375357794734236581709549013869176874552447987997273400970976255429461989660971227002141599610892614206033534857704787873168219236684927869515766899889723065882319078656137024246623555063170379700860436885459394917093843289539198898946686033195598318011009453113044872244315470186759536848204783287580000093640765079069063095191355111928374141396161677880682538900779340055806041658353903810301432670254714654833110122987509206422109682057868304658759987747159588066956089560932682507389294729665808523911607078689935125139422106027995807952085460277797694690924768552183664875429400441639251840127307358908393879379585813911614473333866487482535545266524836033328452135233398966169956944778907018986583633682327090041955729980594230615670803847762569966056189060396360463006916014405980179996069777344821979401860315644495276762261451520426542112757509592563423883143604133193284981066229510167080831267740765139737341263328707420655527740848392788931110238554666386152839924071515927201838378071919575636870526641914160898620471525610952064873313622648750685118217814183630855779233113598239230248593978547389650810307817235665154762431164558837647514784590008936243069521272286586550697046336698082325982559324697139049959446551854068079935634455846788996172133993229358220731357905432367378775089165918191348550515369190370405918822770025877823788373512362835282765606205940427528146792650402123209268995760027413339169602850583495683869844589750803042782290249848570968892725201563316752787634881616746160155080484985716934038378791478696707985772987549503523742988213425367501243527671115155545412840705337560085614427825386836968569830311402876231620173621503101573790266169697865735185973751159332788701359602992428796302075546899479990141691944142487244378728031489684512832773473218306952451596553610493900138179938471905233351598671466371698822107376237963473465204464283279720946709922294466788847683705078896166224095161205147037943984007317568412259441595063116062947041075943398663096211556967569679654729039417533834417157087132336138132702148791573568097370879663836650952826151487582269278670814091436005449682391721130265039192127750064626328050417769150290831276645396642109989756007185440004547301908248334601451567776305994125966515797027865664599980898979716305674494504608336908212699907971313734684692077604553508886310014523887634167934496243590357905797548174269928540101590071085170407920162047978651735066654790946931560168601269297227351964468550603663142631788817178153131155904363481356607440504362369102965427923275088565060461624467373040274665205516236781514049114105647094028814544082488102431571411578859248200513474004998745494476445343054278742901296619721267822365400486705886993443328381168572160798942871558969966439770433548300695945830516150613092299921731287683232347914023240973320082927491620205787605543605592340426558646556378139188488757861715520508570728102642712235337871663354673257261923639623936605096644184200164911879822132935540605008786728058190772455675101786811477940852412200816927365358069163050789035011770333179711375291958372845676292104717543699329415011446446410324670072837316279309974488091234413759218627809984716479188160276785946613079525408792193995780323266751119831410814814209223420308729449702101964134714215635037690092540227761837947160827461380653049130326006146752762272356734639121269335635085023886653537006762113642483613282110048215277102908110446746973526346667384731998331700873873310912194058211408595665534149269096821218168649587020987668747235234049581730631212640806664928089062348151790909806852074504618394166468735625215093443876146456726244803795946471697154692152468644685780745446200046430481110162884143020239461452904132077050283623257637637189703277031180636259812699567190145359544096508248343843998861956132664515470475991695883109276183238678086181735927655587109040150266588160018672753959957791958853877343136125143926395290180711529340522715304164688619478782487960187917699968772662695986958651649590318666672453098198287564038479996034754718265312905104645067274924766316356849727697929963555006713968744413872264472971490676622393744714398755401351595956603770597642068502926003688124957265425927224160177421831096908525828835831119580181501063102328839238235351545101691465512851542454493436039917132774415551367576960018705757173582345667634473004841400047855427217777214778958075756812930460863085890859743124852766522904954342478964229145530696458938865327650488727004030714485352425760627273043981094936631516331730383183666669487897634083552204461182062693766070539813259471593946443504239887588774194789391231571940997537550587460847223905662861456992349656448164085392589773633112539303169890974950730114812502879280060948116205469941192834253593626661756912792792722388630425487032657492865417752004645171878309360663507621014561309628987497391956154060840846279870919454402040953610615448514660995378690250170694059787944666374840256281481767150287118578022340063524055355244216172200232029069472968429611394664688568468151203961269864690875687656261979186549632515830433398946134053030211579488580327460875196377858347056691795422060301324248304050786647404958969882439692816667356479669113879471054803538428583764770237415891353898417439583523237496432752344755128406694828719069222165073573765259339786611342717303566754851679592290570538602332835148227771906370876682810142870050180503536178933949231337219059615377810325250267541013175863084361059835984178701542608270343246644488739555423441333344878716688761791505599967940427011339331105712752486939132739023683809275006844215037711980697596837242625575768093790979054315200009984094232536616665875613994766048353831691361816151552590584411763070549756724722272770541481834930801486904838507162211837191080127222102672372565850922328477009247583444801299521342042373044689604908904643699483628216779055632860790740183087684179106156618786826656599516833130299673680446053459018080273587422090580350795478301673502617922685315195115208186078761671856115300990261408298270156026594817129795119018392134192448046718801996603850005324200018149866214086202360505058501073693127350730219105399280157700243603507018978158700247585467714196981070986104392320659539912690121659427943751193624845998296485867575056548430855051576741595633226029179956920607922720267441594128165762372104231376734304057501916345416538356745150062855756029918397072809975111444270337787977352143077002571792435532269309701629204661261079299875790088919536273370792841476657171836628252367171065388072827997595832173889940178036877597097775377155555652673793540074222843049974700382414376428035091526507881732889093782706716828000462792047452708797493708844839042233614772620965270462310269072631466486940020476654115008572818554966440751114193636927593973270379661240926620938422779504955815964682461778284301964416605204491891437402187316128978249968237620690312586280953106601000372025549479574122627575609736059586470316226071619081244405225303094201151369718917965907675428153443843955704527848619704050306977032518012198652697104618274481565887119907865169526278520994811379946879988018982812348270857939909205592977914097387688541372476662032983745546627309733564940992177288051697835727231998182811868785082054547610446103906386036620838698300408730214444257460806059213011267492600926236628255241896059060775293858042166316566754806955225508208518728802414552939440855450961820977353940608374833898289189016384374686002570123952512417565656330644092104876840851801806275577813889984299087481963920627308067248509313189167162821675811537891579442965547637649429027168626934102813543876129436894556474781114941489273694296560073434352841411210389319897326057659343639136705703728451351088593213343459996116262473537959838016206567854952773302563635010181707034577788061468272333376849057785932911341599563798575911670538515167853968288749981695484313218640130492468529513583729181801570047582481453124903532456666012116909508612258731203909220241989303217629368878389266964366997599330037535515122611655768452723601396852324759143450516330981031450287093585944210415222320317805946796402906926799647126219713245946541913820722834410911698426365275053451038099018129383140853631522514384951090563995615054481461259519525310148127753582841705582942906445283435100328107338446044326403670242582948991522777505064162027991146978215945774212462987719641587477523673352884151940616016655335806880334950820554716429963027986725259190268190774197410188517353192667431507819994038196984905281218565532849244701479073787657663374189315762888472818943720189488815781249052465327633513228137567812679586084944290473634864134952264748020386291950642267347476125582718483074315137074918962921062684490863224451913590137758213367795402186691271587116232153930134965854798617300078840439674089954574983026665478513576896093330149497860402298602402579744492614115531595621273603874377414656188591275726731824523832002469527714956684938109091487913166107051384419843092765082054142721863343583127951783424993310771846923480802960689006035634570090956218750571676551086975685003813901839274766425375991463825653213270556246246317822519504929861990343883495139583448859979404055414928610236000420678488053056703963102147030183165110383451875325283698447241961261902341760663436338494891854540413766747517903249031504779861302318018353140757286500656720393361060207630180016314518368403713883134205142100918146778453739743766595900912987860513085996400617090122286255582212767368562311086192857681180973610534583328865295224225239963834245271171588790923597326837530387613684462281220159088504016874211094508748540908565492439858811615793196753703808196206795095545647108341269199360584766346394267042384310502760259198858187178180128080844618171342582038313141142036166479694165715025487016323603805867013715973765274745035697586378357142190994326754250937290959191473626150173190746781309426013020378723232148922039772072348198827373336808372540847858376005486608877185892772599493380780141658952789076496992239044210659325584362807466095406662895232338090372015572563947094114465243991871063935529930584342115595004458390857969199704054902493925301777355719185013854300922613754971553091680127581812020934253354100181452191473510542267677842818029589826872978157962734073128215085436750516093586022511489700133821244016168931823969710263958120742842215345665228329090040040004705363501702679558345027393287187531928165724348623831221140635697959530343291742865534255275826627453220690836433760174572465167805631073879393356535962434849864742576146231787331148488567166121750990075345920367339850983722110045806914257550917550549456544321543674879424138259595971873234000841233269256584373365053186498223509394470886683042892446401659215503335381837487063482904437687828783714399710429887537759531618933553339544630605099902315430906559938641153064398109590438324605918637925767753954923404870040773142188673265328797167596181945516520298712335714727222047599902312746720196714092361173795943847509843694597811608870065269371981911931560166622288720271493643718181218728014795647904296815659683962942491436152713204121696071176118640571781063736705428489762885347175291806235312620439075392096165078108206363120738691358152871599007249663137515285323225694947621774601400333866073023017948687742190616197929222988995958834886289087991756296979805617812313288838149485528335156033590434320846565758505425032839132553827551013026276763579053747899013237840628130346130798072033871227232298700994447556141409939441824628571374297974512467821265968964356543922273241658619075759484573754913978390421449364458273144397882480010686823738766116613576853347238275439441376252005927423629895514879220235919991339026940229084353571689683372471227475311591552745461676595329616828912195496982337616534320852621712490144843715697482694364876682436611365400900112053936360809377255710723224462929686873965389713246536454495307393864159359357145521453338409450265240838246997070459998003661123955438147240439973147502645462075648699131219547134092240326351349548284608748272367477372811557164044699746681884944636389775296724805819570189726495653979603472036077729006413771192848054211187086510495527568982080973580229698364364441294412432458131778314447395798726326242063711746975394907077641106649476188022727655323054847358525062241968490419511407655110856700623963061294418409087604534742670044630397946430597379723177046980877884485863620639337872245247176510331529828649616219902110397512986963575297833033854722864739130448028927018566277826405929474077631503367170493260057246857191023800277243675857183349039165758388373454670421608019990167725708786333543223381973308536096858090427848363829250192482362216409522351708996987425842110124145303715289167131815053554297059042691804376828207145884835841781684632785176928462985162377476202333773938199948593221435193523817241062470760125227182285175799633125755588666462180985600386559182938863571025397904451734570827021740921824756454605570608323712639309368206397293161458447600036975791378948868159988308702478649802411829491860544023225274053989457538540530290207838232637704525028550397279146204105974113084747255829901983523305461312452120163525978994043781824351854221570609026277983437365885544083951265603361445829772130102989254775640885036482430091807966376085616893258511436921162460665516075593170899256344390268234809821163513516763937807655163625076428679361934835383535564030328796054721105877420425502555787029633841305442221981564606944436457925048908905294832059318936320141773279584432100930683672380087038858890297575177546729850637570799003863882254141788129548026216638254016409138957231465914514131548063945161814041925839029542988150175922186525994940799197509765471455762312158484626904218357387373864444601463312374218826002181566609806084612107838689453481920705119034348345935475863941286329900448567364679682494787857733749711567117001669518513908382862420103290333140059535329176281153384545549146454884421344146319130777830731112148205673521268684771982979919021255741796398159076275158259135749501871372659324972363456611515426578807261907316615312255783190945382688168635449046921018709130109581369954548851147011849188681911284753071030713439874626420207996192587031161037605551323083447368543263060454491915121367502585552217633304436692914968355471762491496716409029641905812046539736983961835657634233687973249084191258909216531164395382146985535360238646205468057385048229766644662175798071113713026395994667605158414311299220698420476892641589439462925759099260481003740488409060094836273118272715232167273788094699808158335301280120609520017890844792521243856376575485705459305243752911577109779191008744520273715631836605032970119415581380591596571739396647559004953400732350111179060444047622951535432678128895746545050716093411117817059751813235345864336754951963545700595422315096347532240453155397009578472573840372286410254757264712388234938411608476677124452709009477304389268686686449215687088536368163161418062959542108877344712896403671296002870100415210377739630695512549758239760007427052331134415405013598458189195062269803617352528654804004196016847300139347463615539286518744422045520393098464498887977649572236075995623531885516395570639666924427943261993490886944246924669844384909306858202331713592920250612527259035323062331732356116887489671113401383619479033485370678295208975229350843597354145393256356549387973214095591555662430395850074245312822795601772186668826956220579986568354298737910141102160839971731739092420742262163826608638377734067009696720365859418125156515765444715316624333759102262199964682932578826758515612236637133690624749803280913391547839337686745537853756452423869568063797961701666017825507224858422784105830451831066268170550624226189889434626792926538559576542621026537183663003058587855185687678902132826425619646593632406617529454736286836199823582322315119837647777698067794933039302918841587429195198420909236372618980126936875887788413161137476884202782970643847494094096886391066857485181838862443242483507064076386647626325236946546077333194167106844708090265824822685396532524040504352688998940602110726698698076456465166914365410969694535107656766161834899518963778682394573884664086053292333637634485475773573206277082373828172026622778036426768181179965128731363128501304630407246250704428104081554151261790996195698608587199380712533669416181761071126630762897282464755186174729651988649026032467921366724671494652648333648886789784342969226519877289733690376143995928382738064340477944326153127430337277372296578536384750601471900783349477002620717583181276732524225334943904178004792208413984050342847776394992773580614194277171796736182669958665551276572327115905325801901548137566629045749919021471850118376177135997266938756644496306134801440477531263177191731424158724556644884145078845963590983421135253038430188527115817059740612953473450713537789021643670432425682489560845888599628566619580406717100987468773663435271250567951078243602143573073784077385421744881885334219842555186220250972235128430152307398508409470171915974228948227826011026619321773361897936481420674299201252712435562772333302680715919931023073419801628181436683719837287776806843627731188797838666550927719544451711060786439957072180354338381371309565726335342441815105225118966724740619594250461497009369759856232037611274877605593849317174117835834960080437115949260450276827763001159697779431145498429792038765115569773293000695610255604955047607529645611984915384775243118119781537440496395980087397425937338044186841557334465151148714840503584880788885259398054855487143172104186055804486113620421974550287546326608343075782449759000335189077721454960953408392587940681379660901962314891552384597900957365764690883421422486643671437780296774906638859202822805750761519057101189407464784600959104614256085799373691561119100269811923128316985693498554332980560708546447827880478993261923550238470851901966866044422241103178738940039945974910971629024174482600973969930055151483818002691490102463672497528291632260549628003366176675711132007822088264260538899222313659483141750315630951008524772812632235706072944877159326064385894912454335773645913978510037697130166829813475896781588751301479561701561076859380921871206573193084215162611450662492470683913630409680633144307646764842150081165872470396209956307348153162172370074104767236124614911563367971113623143605833013463846710506666020530285114104989405005333040438905284809877265242868694335874325600806988881333221889842853957622838424502542106584316846098616323300488157874687158902510122523863958569873957869708605470159376946792801745866959220727322785629417745700818470741814769492909553293075051356307818997398035122519938072478284031030392104677430017320196827910741742753581665466532509014414081068094496821511833736997680715122925335194816759118234196838090476123610507385825776006778739770178584643777403896995906982945066700175344091336989871596565413768999218526841580366194141014640753661860795907671627168233117122900210057320258802524772385822815108017005886618285877567519816982538952496217776465436895435864377556869712144609351060787181155027518687911542339948530403413934354906184775935701164859056696279112277650678351649478174077972329433131592864338785083224930773572426705845236178334164596332452538664882882921177069807550603567783881200953369077461311002898897450487715490487107274495545886299111011625514755070854926936343511403916524526369329196342676276529221581959031444239454439514649001004627993088176053692027271628579409714994517525945842593812679110135324756136179567058322482613089696791469952604488601011373534693539264465821070986814393961306988862730912639207628592407910281005921801952642627864711441464108336473639177833664203639233441753326208071759832209364400484280057460029125174435212885321990018602187826377741172759556248582441794105581960588350310205788328392708624485123149269405613074449132738777207151759173364229383677919718640265210561821736367755036376354652158423753687931614562839917704619128223088327565761698822752622999625862722595803079400799189616773166743247842772285574729733124539451423173006116155002608910897797662879087353118130980555712715304259968626357489999810488530240469946231730491869859496379625158922246836639031415206236453090439482952099546476991546470717682250577203151183857039709886875460387130210724497169777174585340251840285071264682162733687594116630353198206960259393483305053859690862140841611675455782161860691838962790590849494832993710765666513362413129818567129981666685413629839878654332597221040932002499324884048293567737626455953795531849204519522501971781805843700822728691005515960612154773095705871226780641450159891245578447644941408769509364132872731479939223254381984692646083229058360141439839384555615867732875895133438420397735455673810804234502039505932259040696867013291158504050620258629261385657535299123290827138695837342652756953146769191763424580658884394721176112228693778820895872337864055562685750101118396516987059743346018198679971395192386899899662859837446285493911494768154876343397138753789315611773649124561896383939541334317973762154964314996911506452387029629903724648248688194011144568097660073045853809920120589920180376634447424325924586383529655294347747345523180361131442743536424810502500945631770071194785471965874962001596419346014603274475072284347044914733428006400116791422121334610652442513401607166074092089482208944123740389273571046390300264685288431796095957404008318757348254522505328743940798873718858296900478550257234832471427566889756016032885369370875905479257877882292273225699995418016376108228764279281128123479851657791379349798086880953026173457336199250972381232250995826423320877875131238354853762526691268972402759720612252800391691558751866995217518469211989352537466625272777825104854172603729580715486375382403559432099193226314309403378274196043848991971878987438035090593036230760087099124778304406133271236014243188754033661036797838062439921578469101371369991622894690834431350269403974470351280510265367533912554030408465611998341737853156079829521058915047083258620478088684045324752797358103008240415573374328652663794660851549389113339390796518759060826565465070244499413449600385217593520523894380066070024577641442498540102781361925969407038288971833324876281735101653191659579422618729735651746244580068778119763011206884102842719014043448514952257048736486563908650288446796036179207965217797256512731969515858559463245521793982160567174474487177588052084343378407995114669641241582344679901434766564601597430954173608363123953159201083493224494594220054350884854486393615606128560432894830190819976242939702387760590577049511974505522716145589325110212709881136876140822711244963493265096198578044776296040306273927060801505138682756605585689060323802393637806766280251475855053891102302777096890611591721893630817614848622400657424902993583719317554677381276626359956348467520348476945363032017560696818612750654638751386969864656236359714036135514881855918448982115763875591794679142558302291363051462522370204920984113105419062039843796178637815520697012162529433514199587218164019481667419689717397557962395272840942014567072741040040856013622210263377116995263442001312594520430781393767443934163948804203335078915747311675174539750326344297251632680862266968136434007805019959052414095965728925457030069457671125978560879456036137894472817045128272564887177013191911689690123693242877331354330107874660540795729083948321950521602714019099025940691867233229936921068921164795492426240189776192461219673745666734192299639417702758645547370217976093253938415010260493732389087625739885283977100627123954937698075562673849268991434644840475631574509586683109408723208335470284247880743349939848965607764472213897102734951899646948778315657100719616276087427796449901330309017862287506771577785056480654162919756493385909873132317412431038167289262046323279814617474619298064856026439711072774769632811611197997260371399683445819420753979362124551274176563395200125594866989113486853227106302055737420375013703299207358006319083362002243097760610935517591169127544905994683380720702462744975941123870063263651959671651173791883848647484989077730760546310903947987430596622777518123368935596807322852940050642128101586499571692936153543045477233178729910371303714178996451495636987169265263931009395063036159730804297110578971759282595670661394794572703199439764456791575392304417548740193548324582759566285971614035608570453639070395600875576605467446928054534746241361540951685255081137884448041675038107183057539911708798489397462391041385484526036961895062706739828452916050346226560880791358262399664885707079373134325810802313729696447395722478703522152978668809639100412139325813746156791948989044487130553365233170139700554247307081560589920014598885985334098642611560518664120565369914987718312329821691850187028203585662114320674293045005481145118588874305424828961587573312035778412990742715993438519919068933635631570822605807147456091199465257127583133633959714636702604530259531061002016703207299406492510477806333029262844176722460906448096416955022985581300776985467067455250987064366987556188499815443037856895843394911740832957367205875800198213343988325697526848658717198139032890046059914885502430145608393413924143655399076945978244231987114888987239371788364426241439889064250766041187499507899261860492979947965742017168453750144734056114459615657413196211549952158849701606344545855713894343009832294072655011263715992942119282291384780554856222842409908010210857607817961487581566495216509684617899129881950796957970675246393795069206597663627102156481028502766299406131730756936300623813927861780364355952478998434032117119335438961255417652701081640327842883512651070087195106713534239218356409668422416596991060335311241753135465053984328571091877818623730564841273317692282645573182987072259294765518119026701011529049627214541338642230553260764182373874073391159365990276191834758178602734666402884066726419892041869497719147078962065101702286514167474693884600482115235203050366351628182080526327060808145494847932085629754149454773765031425783727232590087695852066393281358563118415440061442470141026936450932032869874717257184661020306933178941265545665183565829525082556062167841086622053503254815351087087975484844061637916844948242174480236642147365237962275969119063028051223064663351440247978286868640926074682379961199033126999515472071417162059376629111064097407259266866470764813641084822246354671948617019904883760468788607803339995002604293415138043679437822851742297604416488606073281132259221872326643236928212245833204657528295829817249279979713883575310506522149792455769429449950813513762962078249465506017313440578385852965664984834224145432762786603930388164683566487536424633258157249778693155370230684949892912070082233710578223413981170555797379020894034180242413224209341963395115354450178620361562835238239309178410081400439205086303518084839395148965204079334530264458047311513748988383116269387525004295070029102503020999371098818690034155101854803748904232485043805453902045276463107618070476648549008920966196855725117600038654403500126345144832223968059722352352991205961146378168401158331950626568542977831511274573734905952309956886191270950968978327639035234765615871178807962612531473401908506779439216356678568305011108319021893154047610743238454706637275523246152428551672676704189949583239847580428779892376397137076253459636867975706751789269162094179239402066060231035922764725291546111464679318919641129889411811334605516878434225582772986441413562867224688842051604693091929412760694591821510964953653255206867333438841035846028775483486423645048702213620382088596770436710066219067123986811861287191973861402191464574829594086505139169443239148890442792381123125492132057719704010627022770241245351907516365793347589040645565283034217883654468718517362086902185648942118370499382901645939169228160394448250707675559483805076172572067767133851799420347245777578174616152711445329927780973187800521893013344438009139532555274846837936392164508533965449894091813559881024256688713228111308804446579768270356416096555164060617984850791939851740210914229138863436726937772483180394370273495074488921689338475382533452169269412028864636786176530293797728189130242602185242825770829044845451079468065244847085469923531811603740239604043595894708209759632710587032556516312315981746742619864056837432465277464281930950673683061600233628216263108292076676503493882092751544446718962987827231354982547365566328908830853180371416259404526514729176115399630522821424245138263588743970909865131995765812385187324251834947371267566756484022767367523692611953013953849188577260961974890587853888658363941489606463070623441394062796275309840241354396667139067008837389936999936893947080607201902292353140272768324922853990058794857535712304072384939892903847451728472554124744222523305692875432353075152081727001181689968888258672889633271535404595209828619499364714094558628600234785789683533252851557136447595164613187220296090934042348189587754790571962973541266870803367718438398094264194229364604694306247747717568805091211715258421545166152028530579249447154703625500254077885800964908468703342052955135686595847689246933958218246530915361518037785857917644759439579346646490401860975012681814193672857608706534231777450277070939813547105507776675426613127693803602348873881251668950242722559677851948565959829243039182295050475686699078795010393537819381320794137326242260804979863690267449884926999970537244753356601956918282215923004526072834154748307715110239543792145050250233466989213339890990479374603433052815206673983534027700498837086280788343739728838945715256451286745430945701618172572530825205127360647100415869109428172970551737621446410476872822181825472244006108721061733146608806377697824856435856526963328010465854250209920180648595546899818210984157460882979725099702322228273534946531806678989268220966820050711841546752145868778200010881626263459054675691399247095627119401621397141661543484676697024517321646798828051587749786725340528906424688108587002103687211041069143649787099826057873825160842830908785357100132234605494762438410466894112186095100543497112183489946118840667426361769979957755355192027666311575541287278230084368625447061966471400463021686883811482702387620394560066732934984203494763318632072272596329173552163846318273986736699754285822112598200349689078142457941193197651874926638427846381643754492933349115116710092441078477847888236964680765644394849780333548359773272276000609050050394272648242531749769288458300210778941837549541770017202051405557709059610086873005418886957054714248019179225552866876792531230205259719193528127332256029452071050678166422389719757055708829030410667749317581475698107594415896904253672402875551004826837591376517598638919793163236890258343286549715545795831386389956541880345381569729967133876821882162188121675377377136679268030673995363653009346942907955803334444241874310867833092227748371896929717906938833703043031052040202638330301347341551020926471357173776608087155300852933290228901529461668352838667643211733840422818893689161492395611009289229350446032817882877404838987385497924845307021749393059097372701252829886134975898481987748492355408354006250426786576828757564203023617566646962575029190773794812522133849191134964342529311264881729142832834303670031127594196922217650708761009734266715929635724671160934096066606981495854474441480430650158578883747149379112851751831031538023208082488780500716786685346969785278774371998819480488312530673217132536132018055238434093434564089798183708273281879965851176934514117571633083093551303372683282290055909564758714056937440717487621804199544181648907349130075419170287142398023936627889803275169987106581680926828957725120552757731775334709713765783379867113476680019497724057065540148734503188639522674780392554796150349858133772729017289159886815324154292289711245803638718426683324869784851150483874318040398408084694282259148085657140921751012401448272272910481864371376961634595044375996203766388500756184928195955888910988642860193348115396244924485939434223201770733488295135896738005383730407565773582186339569849692680938642206759277262066404116702598226933374303089727435493031218713261488242059685485513185156060332074445698898130110615436836495623606784636882843145657076373353398185799945615017545567375356811378201967754104393479690113821102037747124179542995686722041830314363075285027508572236555513761912598975647431396995725484833628904450872823133468159403126865799464805310919096651219684765530985825062580215335079757871077786562788766741444325770803979775369300746271009575524595878424188999727260119977224504399083604229655326376858286133777876831920872369530812662213863380722659060161312486662523952567457983227944432166181959057727992322470299687514078353687469731410738373030409949361241698764048751917837158725720285876592872889139718892401880330594741598225005405866750199702633003605115361377960259135273880150582825806199583727382350436455152195405411928134632890887795498558013328903133626826455475705389201865413945681971205755616401086060236459067535131621934908375625673351839965126193525568626653411303976540982714076435326613661732266277631327867703862123666741661362691025974866269827779114581683866528185290074967430015792958245559850191935932755502594618176667066396100438051250215043543428791888896551528499453135674234938066578257205463663004103620526542984054663623468220769999183753737828709366380050443745185767209293989722076018091022702275976050132678203268689136049985450150495478044410600694107058719515654334104237893661242885006583153219615031480564992826120111689340885124769289707904904941234854421630186878561862594053321293313575855185093306970261142133265992369367708377188371873079014510131974714629916080969749785402531749908632451128971487899947832860574151159515913928864330686491493819275263077840350153602678047489256616000481947674404714555170745499786613792308243772883026212132096115407537398387482110227586887389447947827900247648224361196623484770640656424736861746609419354235720001491399625330661992141282409113973035571454780043844261321484925298353826125352921863224712716047961513014764105069290192039922313960842363478295655093993805526056133216573849391260776588516321021288015827842032523615571066744395727674230191732807696934465984737796961612388189458990635031799611806421681923550840746494389467594551933398037301424987420992778887994727164803524765126152053091543791060175773410419477943725879611670084824045178347951634909213581587237643537494848064619459622415221590140886607436452718974608183579218215678301600628029950599480254220372964363720984153774846257071314666555418718474860375291782504122901357425536666550843392009004615755699069251672565003792192899037495584953333172817127272945179885375901085310740056731555126426553032776479905535941922948978792362522831537751816115568071071875651700387924062685400276082227734933768824719632806288939663772352254420357175533132289695745149613629003594895401432584254487986828267835889790666655220106867393175525976744190859850775709918212348519755957521639745357662690270276539668145461028028139127821106200422635280203475376783307604902132334251361643072648955106304406815575908067298897989450935898997622434718121113888625350553813970252388435399227714458295886921499086370551083028675861725846672754850587357905011536060502701860345481412342429418865149673670823471288749865227218081833526323747432607901311567954792416367087175394726109077346250068305883319418496188420317808884384927961399450203389632482712712121423738750979195342825229825726619762284680740402707685584040072784809253502344705050947841397598055457819090848014192657399747072289540365904559886899661260480033677418129447162533395464372106536692355636063456485201806279391264264764045548662169251325901501799220648159327511253169298761711169185645460165141923737929922202818062175908554211442623296663345427446922063226866635643852255399436996195519296818901747223803208350002514515593681299498062764071416935550743299160644408464785429762034234740182303365275631540587539977754694548999483143736548678856373482639720443116660415702017411061818144286965023106003703884989975707242345177681298248594051119060565121403341983117176353977212224459843056525081025346648209291482202496840799831439572498822928945453174644684664236128103453413239469114942043614341000236356261921106477709811984876375603045710983997085053808602646894132193295444955838779660434130662787144236948482339794836499214081999432937530740544213077310525441319683836739771568915439363589488426429764315839994874116646978819131217667042470395315341655771387007017222449658912867448864506038181455270749242375545638779084653991558471538293331788429958818127202094560930259805245927634700966132729455971778039616088723908622735962944300815212864765446261857500367294740951622192106142605737455972337767423033779388194324124983917413698312044648696564101561545201328438356155514767855444766023026399929959582653252698222279639468744817240537974145310487810300357277506995768673583676322381770523658662642820813284645533245495386069525721713964788723946633065448142764949737762420357345154441834313724844120316419424961077357821786290972993523589084607490447654591794353091841681015206314514037885857239841297934746154079437565514416915761958882974564932337871535788964860504345470132596749174077722066838899155077182180683828643134977289002637693124836915361103307869157425646989465321557655654231524470379242811054242790404394973816372091565872138219951232990610440181086318458121557201889397893217779144865071609536864237240879086575748777815524386143312002817443455838163261041158411443017623882860583372874254179772976157968815734263975966646212446274521608162284901210715657938953978387206806822490763565364996374565975392838735449633790628934368770268821717058411595642152550358091204120054661906644708457084690791027274361742394806720160239454982579833455435212374704447370881182921189395162843038698898216970188763629215626087478811737575141752486761141806771277531224399516377266217389617203292048671922241656008717849163729866383007684203794177915999901250894525151677157832548734820932821313931650393430942946157029808441931660122855813656545972874663466196239645772157256050411997847956995357078458766120071456402895967559514636001299718188289859217544511812388592495403345392600613882977859907604681632613548435207316103952452179196304502704199582445736987239241259266951908145062951235274651306197218605597702344143790363278336039469480448228683743934732279575984206942288871409780464465993384896948149238023346034014088135223624466829529529865535502349872035131237182225712496798219107112352929176503921306004406570538748113254601118816537834349962008087953970064249436567735261845328640565841560382029296583112279818843951674577603317758454211774148351538643030862969969300598005657189435637999236659904789294254168723937527802796795677536214222612625507504601927925610304510491509295003360928909887626047885205346812596799735959547295128912682823767601191583761302902604075906141229431162229583036618713421473687274531989187657910590996713128419514316967648362447574541411092772141084157106118298982841555141791531452426407651113977886555401848636747231473318644470422873719075951167251074896698053263054982597910705031623715612507842841124159260007551100391679889773133204830090417332539025509179980572414345877307056795838799969018626529974236904103464999810798091322155687180629636449412686457925159548371028177254891724820650484168373805329936924832988890690609998190661230970893709421507908352981718811968906860854102598036859692937562790761249235509562122921808798355646288787070933416533725163304153261462049501764378328927728474503385263278425783031287161483551880711709755009479719785606461651757000925827519174948347885759799453389859398958217878671471782199965102674955483725250218232422970533512349031208453951141593935041679792789954061881139658609708886750586616273022390338038857766487335071155326092914233469443886920700323598808812410787323210041736480671514677429228429732030432784014610856717593339454551540198617156031980453601420522489115285307876089423441267072507018965793683582940919587743158357931617001218628826590945860251298850927769817608680105547209467992160979646024833635805936332880502592919853813696811392568956171579574386804559370001640564234459176612988678898355421506208670881946407685694888660899105373637405396485511635632095799242465466203959542448819320740359954541243333472056250064786317463898120333403874124400807632288130314557983135492116796451449667469258227994643141717837327891145441957030171224221078848030686929816525461760880235495563688355336995426139215550687849384624927790388864516378011431415450107698256333664030178667264538864789362160730423141052844981203270098233504191365231648864411848715317530368807548347983410870310562866235706396697046687646083127843787168637898741378081804804972196141017556361685779969581445166757310560644310598970976769043988395178276482156334228549274174607689273979828168874023484853603248842341823122289053905765040202378600142861521152969923813091040313560338198198589539674927345205361467218204386629116103361242482233033999797509771403735083490049870196685990447152971165264824472584481939779920719922589513688434701182826303389496286517554083651928452489431202463579650882366197390324455776533582231530205688826754948813274108930248867906589406222090256051445413416486400441858968428449952600955874816992379708122355877518285125837022178698860943922973863707595815283978350767190789106983094972800670638721071797960696376787218349186940307429817668083981597761678254602426455247591382231058382039239430587970870400468718586158398938514604126963492132125099068030397485124058758921477405806642569080882066192096449892333288387689975128790295054744547440954757624376746642210615368097841972154155912622395605580141934876549653244588610390362723778062904928691067428226052670374447304527840243495088309536577494208555573285996067011344795020941154543875524986165165978467372494071297422259613438213727479905743613190948750971463309078372264262117064279745511392752417652453511070335443386627479640501736997891307607945578700471796814193394877459881972044153437953965550834578304601637078897583564497714739410418539946770572214459287819449327116510710058517191043205902403409174150465527713910371562265251663950796959748418861574526899594552478574732285773694948029704021083300009222483167587382746578026565355549835644725178643295399196834461985160179075352475682912215091776864142830448800811813966011188885244327274644634071963242521608439296195471365047302635141091137518626696107483918308774369760436528203898787737827351452245511579160901069218407632680736159051874914068664372711295148598447780950290579576269019078372987884201750558440681095929338705191716777510165477755182515763873030794950373626335884969918177364604981680041563057163149335858826062185774544978947125298697679750201694588532900810734071087212736108502417767203711569230245777025195349510414642214667672253371912011046287561690326285872998875939748314016603045857615478023869335006738366851478026095785816541649160212307725726301334891868919533250518875621382746073161762659767234383763125725802568244491683087896506836601620921080317426911631535050620751807062623642902449758868256119590184704263841129554860245656488514494901432317923580703484376006698198454548257358064369194713416937535710811961964037028925422769953635874074362838992951839752848081092919143700869624826429534672198764356694555222929193196304798182003708881781387175979151078437348754914568450251387413349758512092646287355763716746912778949021340939824899483718683496943650271384699581248990601687656663051768346986186307825370367534641507959076232799030638068823415236158958797544088441883481626441237872063100058414738526978526549674671041414237817902067594923094992038938681171130386331978683022432281793194687196747383338926044820614822990767208373862462989015739519916109887542580777882152522574520225715642379576695825340453328662139581886959780150819170541297341697947789249071688638934537435380990853717552031132783130820773472202427597450755409672929706246250009096262260468636901860260500439756997481081749688037799420518275359571054314238904409296442759476085498445745911122466111594445359839274184010551170184997256551502242631878722797204744048967048408034475891733283734067204861234481797322755886587253366162013206692244935671597137845596088892671691441603351056680241535232029930455535214644532854053322833679329684377580947467425402850815877028857073517643147318031485249743639761887724896879635351159665840298059827638137826806515261667977216526797656047874330991598378667844320701941969929067841498708777725889216253320916022817505149802595445445508419243943531576475462846883538430440045074817927226247505084009142147012528952558632648265359848130768691131851820584815403763250113275350706453540644675047964584751528104047929978319274305498428994818503023705669399612210396484723912444205247838277153122006928216290441989225315453807254194381437632256615459941989689316615056091037108986244832409417825229847492803569227226420797498164087995181688291342409134867732700159966367945037279306524840264672129219431698858647313749960990001542475039512537815823469750901470322151196603805211538469305481165778783870981988857111118370970633078728168623549076004097254954366051872566536715431364656169325696553421014862407145238669677911694517112977001503850918634913084442430226943769682991738537772125410056627425553900359989886741122518309718576329011662961328804522984601398194240318732012189163985270465564268697745237423921427889778401907635366712348277706480178497102015956059865806489916599114844052662607632412063982889900255379675309186574835933606160199472335806534798314769715053118900486617406700210607296356096279919855378072179783127039302885532985186646631165600487705026041684556680874421869141354577567381579863560515873686035548419600624670741477612303127551250573939539632950854509700998963214604916351417711071969196542533388047176903823349519397802984589212249173005930102591475427417452932473638173555188488891031525915709860992879591899125490055571166393001566787703112599496047696719868508962175800752488663889164726539595294712220745002177028534382396703104922841984135828893889534118410544371060296630717942511536886426046630171472650992935101590204844901658987010176489376632019943403758528901032178517270872206903306359515462529404351776972296233449033008096447737050567775421256529836532517944106640847709533748948571084989146366223672490242935077752601507268162111462065307792417249605291962464410266296637534387283498541895035132112739376285409988544719634646820802927620107015326790276416641251178210573143925952786312859800602295820272192678125170903210392052534459840248801563474274290584206745844909205517234527514182620314524477664479059114812672242615652363366445506014757670159425389315558921866003171307926336857666468436886414714478412883727589833318169700136769261734590008255512798810092396393514109435996879350525640173770812729904758930265091796907447848890995511730467471178908553840113723454735570003791344899208342985714954128456480318165155792068595271400087363086869444867701021598513507669072241865373539802777435641668768820724821696256509012769073957809013303436975501928313743738476418734375288581931439028819924477552882927157866761323101318870633081382493636124387349760506178720707233722204355521992180563335393343384681022034656967510668501700721999861516802054576840539525233057465682604416132171361578905204223065955966966080109925921579393927395793430253410452412471300032814619212456150210776700147367735614678919644222552920979493416803614496794388393682717576572368080971945637330016199872227861216531502633545486521004123006535912503894846291382686983252939144222070941206006881214868980119149637937832566012856068630633932428261990658433016895197599769033991088039112337818553306456061162959939925273268871390935700872814139096209219326384154458018000591118574260987059473880603489773959511977398945559952394152947739973395068532805153585355680267481829611218851622506289148608931178880919860383664300621739242920977753363611185841788082432373397161629048846958562421698543276517830310876251133403714708900392400687408650459455564235400307394999311773832724310468158498502993944409157485391605122963553382760826309023456693516395778374966903621868250402193814759862379999938428648402808675406768663850950401609301435983353924280676628889360265665128912015390733736628781113357084504521311734551559015246388562663424914741728121328499804643249208418210746956684503766566988801686839069713922191291993633417589779142182360128649158708462707431445941047215255758228048470252053041390044197800445022049635408870431386542081741650227192225947122261479269845665329962359548321385195779191696216287598591919974294099817183774422651347700861075324179166755834040417760480087751335889723021869025495968486575611229570710415566484053691420688665457922197141472188319130348925497201828977766790135875634095183963869335360305447093542811157734385696197222828929949430397776308371883871183295775305289521901366787566270814711518818060086900729096278147848386648953478093302967758000484374750825154638281787436558375470501053702858322665040778801372021539150077408436445021897391441989732269389452430370576794904264498927666692556020260218720018616213104807169100950138636361086508937992503933310241271485999465229611148839687055603236970602529425058204789647551370252848361515923549368471158857948057810215101279165192269796003483442591620850924013062159057386390979773086735945611227345783757929206369070826351473430686101371895696644210320057797425032227395097497805099652082384059339159847248697223188185909020188020797492151878415319778060519447814389241080975506474351045429556234703032070082537581248687973138018615921733081393072961376904765116701816859406005619002443072768227472883134925488036208099555583104372501635552580283941510413524041729288224922032816202348111359509981218590346446427285836576555409156708370549450425725009844816913399129838858632394859461144272101179839871389599845715901090646844745981796925761706154999619042052395906000545673259175273627107799461745397655077070789459799915886664897403428399441624894080897395058987562145482183987623301103925985187680344475064804305192114311707791791893157386268282888416306156488079438311620109081592411128682100259992673064158391788416814643769462452221429923858699365591153673823227022861779135025108468002918655201649298799325256561419816829340356414285380069395339785487245552372534343216731819800256155677626944868436026630983647415126959241807890752084867143650204453763527004315116918147198835287014993643863958433197916185462581197503817380435799592671992409309086732115138490717918890400934730791816376471939258429003659322617745043638316321282343206604067594420578647718725747121012425518181980840923877010917521643109299472656984983728185780266671951955725002205672085004358235674786220148508664741495664311249169662485833438158844274675844206604214975563777887770651491578109383073898115298067841867652402018119466027400800664624541744377131300747226137524520075695294799845916493204558590949639728226804663276849509966711530446732874316695358951607114648516421439219369531334216649900533089632798458054841484995874513486342840183695738205402298387716931028862047387467855739695404897583280245263915364129179735993288757821163300971510880177927457830559726087099280683739463152434651415301964196751343432400065490297652967964890000270481033580301555051639847054023171540308523700486577846429244552118892532030143777770765292568196056158990767900856257357817531199740447799502370420059004676526278898247986916937858698041202831906393470196806283364462362436505807926207855976846132531176430867394812736513179379862931788497436869370910731502285000108715049462900669689619039738545790274448251477240354725826045687993714255046689072096478486050363681007699024774676447412096290886332195943523234547976945278470847084619114099164624711974186752173592784648424455950359988474066974199178107406878852617378349815603011109463452600922464584763121984372990618497863631487700191823823050397604249900468178944113007823257900394739182630131974435650847959007902319489822449538187355150818751478981790996567289362910818038562284186069684034631084987860136728504952286741859350784945881990916091139372503588009374746162888688941812981854151259039008957045476472878033110060592554443470967456845660924893789225864285236087331398265579211505429753102604793044500133411679524979716446988823756449706232384160480364167315898355841765039115432193055462055052783878931075969431117799075593054937800143185111833792340485911393002386709878706311487742442269807173600334068206178372367413757190471053713503830899022297058283783194629081043073993886784643501192832800580341209040839510612174065324420433987527095657112266822133138299916140884808006658915806786851217795272677136719370542155155556757443360161647483401353480561506019043580856048862423853497749868883477632527053273539182320124257563248769134714184908324431839096239120214660654856013668557763806046612497297320292115437681203040637263531232054374404689442361019504372524001874132829133599476343942102001446357358582739843358790329495762882081615901949476280195425032723523502996126202186087497983167120050668695211332195143039778358321075139429658518161017929768419532599101892333940354269210201008002534445047644445537935525079117564014665507503303338764120383486265441701974113479365693645965582585318731600317003768219887296948776747406120411032016195160096777348035435440927307905210955453443742153432103208340468090001915931872963124515399158274907605950348804826442408044129022045238718508043496908715731073569829969549163170611397048764245896614276041417974750493647406715104621179819737279071826530634737274019562788343355028371582973211071764482414455411861098967794127758911857838934703499472330515858524801101557383500423763702600488902827652026661141888760850357266116117187313828174717876661065912058623227126529519240757207688758324595929177525772234542665138038788229714419948347876620230929959126036813723650359685731564033973809532910742161363338345489882805712703909150341199806597622538876194950813398722190153218892563094366857330371931935367680638504420070930914204534327019120530765113121485492483785568033358444815324277356441533326767985629860941155803817489462779686212068461284698049914696720316778700637158885987006524263761627279424440019868169198558903307123815744386515511805537756665280158680354763121852244116334116242392239270827768975343475526638165766104374138826631210071595550932120421811529386502498786684596984672820423352188414781617936929806964107373929835266895138222507521610235686386277992058943014981348023346142358122854250997849108067873585512782091778865159942418477598169448666003722203049893754417169747071092403520165953742928004858459219566432126461275365049441185422081937297638963612040669760129822770113934710902383547178583746087811049887175239746629187702286511002416366208470294589298748370351565516165683640991731268063471498422689791695582548282558928117537442497630428752240257428962810679808081712853472199527099939257974789666602915788304158085037614119022904581775839117393592582920369679467295550585746175564316356959114620599967221936987640385637266856681082668748066449373664910633395440293682290020937220685765662480466300698266374283780225790667428839054071680604321949038883198325568826514123363627428279527988739717129079730363630140354194793261693742613377227031631990890893880608875814407317495028468551152772939829804765467657543538433816914634866049917168077648184869542606592807660584534292132864238861581142807324474302897055896365376728596877993685171492985470612171488782787659574901565908483487806797840151687612885256908919591977597809594079191049562145214711317536924271830271590465458194594444947115126570949777571690394406754070530524132305586939601929192930583139638421093871891634741049691595095117061271290346392376430249795335736246644100147902334177066570277846687602735305771518871990496754134622153405974582807340879609114234654936705954317133303246209792970551332853910688430695077564718140326579243456699641165663448318710095131083108029153681525717809922545654412191508702378756492084414200328296703186521851240518104258135288594686491947182664840022884254715559533305347190879212338111329779797768899198569957089416636990985300859495210127137410406970310719649701395754094624758730333774276831685648196764725818012250562217056555711462415114478490285381100288957571451458040036246424840200830105408226638173335581552889190237469366637050593582222616023352034378944537037701690930665139782368402740135615042579875184150018100154878402466418601407758040975936852963981386599842492292167855576226703718998027776255510578780379905722973679119619536901301544105115717019708311245168453250260831730120299954485895024508529746577920547331246577382172653634971393811658965249465791825776977119712892565025918921636252842156447909638004093119144089818516890599722111951725342344277164170508341337664644450758974715837790767993921802408093619024458086299106955054649225396233799994214354849057367312662411690372655330037432008244541715022872864297493259664715152048005014054522713772143907016777111083911232520910422793252168785740341769291012509924389920640892198431252349304984888722435825198815804906475240071496745111478274425426776019615673629300671880675421264117909197797228558569502674952470947968365705491932769698594577899840283533235734155196958052186073936008331874650257408733750335882724103808386226192552826666847395054422009703435512038841071087511277688392762405534845701913757165217428300564667300361393831679108782268817807297527025310012463019288260276536454387215206284993704824608114376087853661770827989414068868640163697905448156680290328400896402130265719007831401877780236242275893956449303903991998497661867200048725352096271568556786697463622362409703821458643805963786745203613115603269308303893124170586038621353485665823030348965428607092175559023510270589628057710872858753687788124435985698180914810649028224492037841277240528640915703455057535321882139533620437780404189235328472552683011845375933387040075808543605481928805215388725073503892877417070751556741819834995384464844434447039513654615375583566366169099177583381168494388716948100872145273212197072805717206382064631658877813164236520431623129882838696150921164372153274546861967559764067843451949027173096221845872443869555568041272004272650408665281156650814892591777253683596412596939261665279290466733935836140890303225806840746889677118871085232025033031262809978455568139305047856615922412365467801797660546920201638868590320168968684675907743569436984073562186288449228238890932183730285898989337317492484849479530074949891048135799131365204103331560085877017686022303368891115625852360175471094557579314067446291645109627801281675831993852217913963425951112646563519112599766816692341437114634218261601541672525724715889428755565159669618322627971154850311798892698631753704598683926454676686348538748861927205437757473629363999257958146582657588862279580838595786180665387419950613669523912593433578701445756035337729564567802984293224015278549455280183779117700109452053678143066959811071596957746732558083725116373194382560418614822435418100002551719592933357934332837533242898548822313246086626405070856762081993200196606032758137992200598823250364259596571160595696852069489296699611917003195163274057946523305531758381386301646218609083100429714386098103726280103724932267310809461909274580413775287884741910394984816142990115424670096332385912898650288370653080022753181268658748466126430470275223943819466083579494980510401138513468509160281926832531280072188618878253520479477411840241059216378469362180229074922392832861816623789373904751382291238128811858113350859511281863230410588768236703600098069762268025886324867547289300596044776097348208496487833793846083193449829023986374679803384058716721394970882982749856401564310149858289205315893812518616159855730427358160239647401506526182112494019362012485360508155144500075327201516483247396934820779981977053192590567490469368951207663526387729117376210505494818487297030495545312556993391705969199984136162990967449810303884756274863669647252961633619097065610575434897743135837891212840174787349734473358374189061740509226873242133701731927192343036157204865740175722594270512142821202091320398730200981859924803765219851266671806445123846103753795671758399692403317330163111131349249484801608808496675392196363082802566074963528876409893828943429259209065968610225950388170051250484064327646870844004822345873312092190272119852998733841811955860220014739560337139509423086182431454314907999346142186907735878044138205138469723062093545530902910828824620270093044710492565838722375836307508123577821434742103844246127976973917349044745739905232747443328940143909177956249497259979944934525528487543479117776095808206295297188519997596818297200367057066499700069995216948834330276919081709287637480350226891961264751661141075390241582172925506303103435850694439127196711422193185454073006406246718801140091588397417642653217010527685818812913316031675311722481274325555006750679228430318966106947350492796677626558615120839996222803561225253099317471439714655664814933163942870992558757645649313700681641607778517927851696098014995147522646202297165104302958290954732123159556662365602609015210446861951025270538291362107905731745744550734406486440712107361138297012952240157273842967310547592227005265804483371714007364615888874497794516363092621812610941425950147819274018446191639539658407769746160404703180239756002688105059803539653514426402482283293786332493882075842728993497875974496731257597240114354286068293460743001482759025985347846007550350287428962896594033481231507020808486117572955463417239462467860496892529161360683802510714776793157043297176801911221597740089951377084747661524846716928548875088224401060136178495176237132128205033342360535221584486056617641132587557182712691324726454596501650277682799397000852320162973448633501474177574804867707534103048512319896685792178249320108778283665118655289657905950964358877085395396241957854703964041252321438069726443115594992843982317368484899528498039110775880315502189557890393757724444037042094887428126743258294283703523995166597437475518767385070090530707874447473766453407758008225430869041639278576856196820210842034794539473276676013449630955521869322947086524041207027957485761064586381701574711306508195168458567188535564848737095566510125469374858160708368221448292979746053089039134452244839548755494085776513777751524835073539787916254084587935699956076981364121781361390192472465524432084993961550542013008947013611322103969483943840130191818790397104839728120947239202674445259340602228188005944017329950833681264939485138049362708091084104451858888704819348562834819068756796004926993596583262088225133283600217657378877026447779789844045427971688517856647504542000925895710659707879832544933073170268071941291121673725559733966248977400000632302516130095161896127161720657839795889155673680652281586311137542627883535835743695990725445844520051016749376704029060579089701521965880841555576898038830138024208907873461753175084394087517440675003923175849083998528133766803919024769014086806776139744752939263559215072152679138977699652672425706796897690799564334621884637779286525939120266673334724733295785344996194579398110680752021472490892151095381011062955064865436228523269032872362692510264485933685745652581851054450136611688325875887464566410625156451053087046002789595743225358115276886957331003201473691532477713095805503348186591118133699584880328116667320072751421701935046423985075057154555775381003492825092465212460573839624581590171785562266566734272263907335938786688579825143414048330597091348020246041189416664253792266738747678052328387965374561343865876815382275648448659287918997655643131557645835761615398015025304531170250257641169934412731033497300708093508171340688884537582793414307586222161909294754258706418637186905809314268850296137916196039819557551450050568311417289999953219980868169380482734847463863078858812886726177125253173341760352033085834513808909750744087118849224121124486117869733649839843117050361899956985450217542887165221271401841199612416685503866133040802361049292033234219332013927325664016775776911916414136850817700820432437436114096323131689217636000198709639537379223012639565274308250481868982412122223798997198555415371241986184477027718631383485401928114027790183999266900714318250289346821893901053368896477899314992172870134415934341459171704766106966915708861528256979610752992817267369418370992359658392273715838493593714105809090395223260290576627299412370652326244225342187881429991869512288176100735227289187766985204498687240056270186471227020381091959615030661908659157178256896721936408156278953737211142938225674394458708281389843671585129191966140038287586560735960372812360208205450369559958569651332770560113163617311532270649702179790074584273779191252033433321091315176869749292577706692138667071528540463844605902138884670400281395082031573216618865962312453767678698064162700903664539910593057048287313538369757044274228935228027227801822913524765451157442414351852954679453252270271716198999942250487686608800720066106469467574127142346398074857350313310383668074995125679275264710925794894969138364773540139343689069395294499264569420903457296583761525819873847268468852400448289471828388283797465562966425987761974563171353533576173780998851460366493503091542978317644586682881029775629407305854008954467548111766170942296869496414241760888698479258786987366101206289911863622771722073038531595217514035829769479624633862635790040333172847361848002068625966888069900638735054630046342178716463338140981663985584584035910672302955649223803123481702570357013083512184261857442568916777575649591438293568124910824540759522474323777227091253176449751684981112156564806496676186538902245546992410622155239571655406196487471516646390546674994610066888821512777035727084622328629260438614632874366261706318714905323314977716390957624523814227227208471783929727675024141265031972689053544727742125916749321651184452170954942707918289441128349166277927879670444157433668400325533642323114801084624641871052798401438772199217211623903667156378358760353630498520775748447645694616147567962876141071711057369637930540061222653744756656071536042334386813260021525878646014839082680456811959459964580331108680222472634916775435033331414493567422027566030142533547857969114260276573037659212574889584927939220353868730174380382066187729233490575270209439863969528928239818966558647797302185909847580658076287763497441544891001897264096356576973403637702013688884704542981354665778259892755355519596113306887791194222807966507091320708097931318616763843038083131819415990521250162881760178306965329027209702460068323607791362973144488553797796202102353294199133091361314446559551291242717437502753358268262471181823228007012649656855948851882330732884119201806339592054954527178363741714013594665628690237642036895206696943471448299031644466396639320752923870692324217040221155437557715349793956337598196837634237847101717592150814429965328146290255701257330675155926072150091374374295994230548111950186796930655684571107691729214272631524102209572299497250585375871816984544236279144890937026567844106972450428383695253847634241183014010973405476269215409908743706207439660964362618105018071559388218696120447914784023300224638071630514122907752948620917304013997503069238700030439475527474606127315016918639358694909030591668477891761550366573226870440023303307019699984006567347003402082613261233770891713336478432537017078789890210832311714640579541614368544032840568681592611655029148036052343986509230711014453075426793283484449170716711398372643649713225850617171310028729928735715422581300777059354994695779656982532526043529777427411353282388582339782385814935456056346119477736008680628690525134845016330443589842826394444221804456183548742269461889529202289303886378755384166807272434716595610581288398154927453812087567319977054949990315622261098995767046065278462701826437956637366264391099156052936371674322626101588831413036129775743969120393863560884900425353357415245052173509804840397052615518082703693443674687011181772197865706826172005225134730912816820524473498497655726535281559004022982744744617901104379422047801110434465626583659367635341346620209419709040034304269819172324338496358247953423192028355285824810052955608417163612148304310515896349689437959912941029243444483702359632598653471093692906530304517369938566958042317095319861075962798015863558181887313095924176060712153806297741815645274593530518641357243682865239945071069951181302536183967212549421429835610663948853520324367782742700579564925734038925683125583718916384389199001076028513018988839412848526631795370643819977082635732937401123952534680955360541235147908445656813436891179853793033277348267707276050025212357990205541782294423322968864040793685543521679144539427198384833513883300043260695874684942747473604133972277404016474403890499361882309279528701190868061951158365190767043453611319244124278467618389564556625453090398743493779670366654791860634013647058368326990228477633520157555052438412782365593776247360951211831722304821154407986827927253820765570523662090861512667960272844856334389855535320618888392447189995645926424140340831078488813341483146855136699813006216278367015964570045207605450749234132671592504344786843921001929679250180452086668501164542189758471723051375632968317906376489335382344071271159452115732429596330271832563357284249641968890939716975797888183754012566331092220507309968462625908059661263901752909444529945445732626983724696317364582375998893555566843302742702324891227036956683191607088312589465119722911020411469863792851844200321777338074156423326046514295369774150053528251655282589076144899374290481172473924906067730140647699100252422058590963541720197024070396135547919129249553026041111460049299446371587835078986221655913675145186058813884872132908361609703483562537247677969625689070026166447358670874293881345283841442746939543194233618546492682553734188336275951692358629579882998722941329449687175608392161322444542483194020215674412645485893746843426007595818821998919089566542861609817764823359028188316159220754389647433998537056659396451026683849880421412931736796784768162968491682524101518804317038075679348996702204746377708801134275956803981964625139764693244637331604991193976063408750300729931733929770075336785152629458474439476315030331517364299417453641051509870086594204876390476451472017065552233966927448820620697996458651716310687532793274683172062491601962804046067742380426837504289528030443687600014448664493095289974653625652405477225097872482251671336847859583084209214709980835763237865774630984588237328584116318148331042137878387889821437133102536146775522523581298114669201953708839270756812823634904283462146163824235990364385433570757911242043657978332428388207421823137978422623586211546309050790215518522046697847315694574087395892414996860255097818242290565430240599663058526798945317890404026910477178662581570277374242039164864926588705586903747833286450447101117979346755200503091348877920221345070343723564801240403318604561420716322462641751559996614551892769616296182278225740208692452873524824124784967780686029690901565759892404661037931393755919214344253526322236068676321734941283182529140299548529218542286051603177229919694649317370250697628337096303521553284001766103596116133234499734552176761709683635258380304402181577897243429302560850501946112616092509446553990661067883656263476426119954346248799602117656629798505669648431070431059046707260147935140437887269013415889831791273373417087390736916937195886030259706266827475559670608448958439741368915101395822034525050505090075449221779451204846335119846765387522644080808363195448337331297967011511456535141826948516398532698627206045959694819119549138028652565839337639658670362595018650090783747611901176464935014827030712163299892081271302571135459190329101072549067475962831315007646020024067683029335930055377078092654778916658946060807029041732833015511652347954030272717320721412651222684950713253339065309897065808882544415746186706880777269070199699790780192857195227476828734688827206616781384894024168856880779845725562039821705139282658977664575934826918799613411120945581876531762838299572166958529711856033229587121234456550668926357965375829163729853154237500729492987670780363048335205061543631500300114065623308829409813028302753799695738504409242778575938945246728999158897418200884907098663239797434527681843452291742492358316606885520293688181765855236770076963194946131918626677286460722953774035417659260869388590638914316521792884161883852013358679987869277240923506957668134337938898277826887150770572352519820312551436449790319593764475144512791207873667155118291191915427774263616363541399658969050520463515914520640517452347272850169092290661902564963996308813856593236482505287673064192259337702109407915100938031164910357317431214882165844991835771313594665552563825261929179657348873159405167839512398913294133684777398817767169889083286423116847152372769112936761277800730449397357276719002364474183700154204410398750978417672695174807380463503841098338675363451334927498640432008182045008034969558515835534055954616090444273802457407541719764994028227043322373632526085403062283712584339718178524575863129815679896192134164536802699539795682343653387203350244374903881847732583807007091331424004171516266687338885193776913307044700364244978771509772315567713608787445673395853432189330847685741352235046388702042514850244255192920728904604191652793556751184474643356949851394804800575434081099551643070671516649536639308752258929166106672809333781051792706380705320674752619337549358538238388297483721411114660279421393661614215663815518092095428131783203130629034095656779895459762959735701936049329727591139820135518835127234467973135597359851643288491134080547424330944541849307755921178482529001861116838588587632086387268150849952896927011938003752417512544821381897047509719615833274575094281134794446444785481663975956110075403439423206336484136733823466730204635408323599215552219962098219429862827037535289479378306372674083733862249687911941535759506540527446239417960106610002085444860571602665314655872541532286615806588627217363195724702482035206705457220070250199065540127438525930324186310297357122055239928314984843852687089920998576109565176657632833677237271878463778103136910935868799368207351334625844696997585178227199303867407622074884226192813515741975402141336361941135071125929752412037850058041434681180031221723891275453071817406708960145121857899771869570506961154609008406779720721022424772530023039082299234135814396302535416279249411208729931625025497154518645073792263818691625416846200494311729006710367634078543063263568504751142555663988265554957647985362390590949085321596569883493266898925571402006533462245014568497509449623575655326606409907718028103630439634468942438446985400427932643360619180334331504119383912333227515908621082051715179644699731808963032935206120741296495731395354659688009966751219225808387586727190472962996800889252921857462986877093130222119975819303964390157325625671147690801558737549584670693412030742338545590945531755647138773199277559677293080296360128453381959798053931328191465179919269710514606003018773225660873366625555393819828828188806946536338020822893726703181832970438804028874495628279911149703177913997229602690939532068885693647901528080560051453274219793527537462502497520561013014636546129762781256114492111861432770181590904708198243030001003524439241161932733965774242874349631127689899740023112457556390097669751303319203180767966770718461231275873332810871236371271909104736285913971742577645538244710687927197076950183236236141963988538172417974618163167097902147376616346312217619632204754822506300783643412575179260702803020773616377466401315591258210294647879335854622697454219598541331069362275523852649947808312071529901040829253420623854914887854856887212163905577958237641169230613364083065474536608630845682768300605741744860693217426933502511906996699909508527418412996896149887841154135364550520930218490257299859047831721876931487447452842945285550982226489164631723889829737602769890635227978336582021673498668881204245987630196095585949511393513866950224025489310519740808772180819529638629297804364200785166557116164671189177013340334090196375340464396191340328834573871683738604597876160413118921571698622665127368990487856700498598006963919401647844054282950389721343775842869540434192169489000283773774799503832302186744489168392958915685637344439666231328926026387239794635313783994141382128140542771997009695276149807066535529296376543426709480556637930310842373846433321027193271491750386060001005391936573589132385054556024233773717617994584588269693155959459141322367088395259607592706067926901061682754075714266749066269835432864482173546734131557099740344946091665475338736206742623243927514758240715840041566787156999517654941381671025410305458054013466721008592628064373166249130687172124180894743281990512915877796030226991466628032626192147857460809171562314519300005865051263605798194221463133160330981303994975774027339358213275210320936519037141890467631671827198822476355298330633039591509462590081895232068530195197251693275150514000173888882055472665259192125790927815212068421718065048019902227992672565139157672783140300005702195250073071432911547652107883453725325603823856211672507723580260461722780374372725965443482962641260396129382991877947547849803941505596576904329368141818703339520494823209925582518376207512157693644730260022140751015441481486414196665510970909603611373231102830929954192939834593920413009396818233204762198806425415671344127714933294099368675649561922019543090089470600069141156422712236099934536189332892569447090322046271568007585836287501061506701574514087322597021162084381316187213860839495958836503364645171462576952528648601405282916655018894047501676314527427897950013554801703140093669956446889299696905332279047710612722563390327378833000641756395792253204581468515414520188406516816567667485182797712777487996679230351336622115846230433579783203902123527511073119961251199120260149778421686439032960305602538591694573544793958995048417189657859227491321357613003653032721101214348137986143651836850538457251224900493202364917246336767609406417546781994514197794615434236799384699199827513899899982014702290927972049439779314200485666801099062614839909738901250005823053142853187814756069514200966225507385762142326409416123394762435864957051556533188923626986339453997356947179608177201774709021116039311915352855561304111066350115346616468440976460070532314663971583859074837037926329233812740445164798575868766830336794641683475150911926661064511314030388275369762896614566519969056037848101881807179995325812242667373538944797199503569083650251419927898339355377099128763608964981021136728754392788773967284586624577463606606196113933162351281023390212348850769184199704016236996800639315288990982149379991333461911472436785893992342507636755780807119374599129314913902139839540121425652898240540131139926064784292442293467754143819902007884499348911287559004939639682489171067936244528324849892796427343613804496394308154341855035040761123682806136152464328733518347237326341455904016148616111042549097058169682405013695747342859939974585968678387029259240292106737453114087201883155442151656153373734627368912719779236290035523389730945430178198369771382633617715215982667732333082612590979941316320242031823193551660644592953632850736234099403330369882886627584920487582603881098116188867547315815275249649403226247453324785841061240257223632079416981779945816177844660215382799184870333644354889334930596334150968631132574552588220926800103230960000394767389743377895239042455889314221024111098301038954498829560206520197908597859584912585806023546164471755063577864166071122843819656623957940743702470595595203089711913783458065425247248723309762448128524249339580739150965424658977300356480493929311138686236166682254142909082779298017413354469671788869630662526063285107593886692335796789295218569184678189257437547840645353126427490295640900797246778117228395978105317383672692135099294728022316695227919457167640840810060236068289514445737375226736929140064241233057802383642806601421001098527639159924041725190155406278527233844470607823257007591772896130046878258491435735950294933626795641766559174159354378909313044875156472503229207911453891545004964677687492881047257942112484011372059820822824901876354053313405134406585427842308829878920343483101379479701285711711032738064078221437629950873178740038826198574036205837838237125344737498660795183619332541442297836379364193953864365409700562028600256273638004434403101972938773728621536221396170752346681736309077646908682738976654787341381141333580615549143891022318530205133150499226781806328428657558926471472383340356963855052160119663793971202135759445767780852876095508657885272513851349401074850129776019743529010840522439842628519241163217340364435179056833174568514285944465802202224810066176983293220192297074776774507293436895714768806481544868575099033074631533448298727777608138865694645087297503037319408381513195780315773537623541263084945145534763286895280995561864033212362991325252325358577351603913987077862463604425832679418014484048212526259911647371319289931628717153760390929316328981686488338164770147502583209926202174177468835272963687771473431171781815785866065471383859277743576120709136172869519167467264878724997010551061415715857516754823361492733573000918874591485544923297181609443447157218094575294658058398282190269380566172886384175707474058952249624469902878103822235929170528193688646330024705270113329904644035255647686553517289748747021199730916356145182028974017116728339375560311472127872152515911985370386116891709765381362305386781310080847840906578625598302355306438869233843667544061834728393240438721630142049513130298737659771839207101922407199036468064588414914452772495372315780275078607869356027302961241204612952696693757889493081848276184678484400885368487300145113528900963488738541767491324244798679005657956271617832090167779069113821614801724563215952024522065507015955068998756840730274188173446972016368895604328103418960535683958762875912568722905989902162946196971705770118087543916860210617604614023892194240222245626552902284337180475131173568983153826635286780755849947711119363091858122119299640839601127292341775093898691599113851963964740839882821776911176719557095767020330082377589205370117304988894111407524847804420079205258124649553482589383984738047464016392051185103707593138292363406811190892689146859004861349343084615670133817153826060784218815704952922422206195444896288103621955295725163784801605892478124774364754935818630540350828275123956867556887232151280310112973005030173004446697597765804575246123725744435365948363931485759359268134900018606212122725433860146440281634014650685152098740505742477623598738643593623424005248450755625017048730506812966564581495209978807550970080051998192933284305830286218928851744901515843041374472244030506088422774052191687170777261556140546550039926386363638947262381703744896416646084928236555159752401433083623506459802803691423405043875802891214977865898954678375255599133447630207341367278021750931755869081423504827370698977846854091524729321817259630202616804288906200361500122789867443532255911068023492536865402261872614300294644755859444771112326953304988876862306727049596065275213502911472228207744053549840031058597352837291913221363932067683112187261143553126195493221622138417803500507978250380500635036059425048950157539982743677995688045290187677058663928687679586611201072273962410551382960465436617103081249761104490794958568836327144963907330144716325334690757465118233568520685196150510134811669575946283372806080466305497686992912364926115395702381017704705242715310754424748509931666450188254902731974412263040751568312867749292431018012650239280561107111688208571788620724113230739247098035683995428195101245119652870839835573025518808943925263512349392162759546868092765708871681385970279874253743349281037882252096029092193424034935912572098593169812169526286165626627345358152233641069035948535626705566177622289105548050665804035559844418703888572538000853820515403724062485416806653890406133994559675981209788559596868499199638897207323702858962827646298547356762665560338506958921151453794309170663524470669476821181381958202360750913701342991030679540346324312076894888569246805374565443028061018164700633489965345011664227152478036417388069404344741891714766380743525807931329939126642465540341701556169215977463972522244057527520374231449999652688051814437492949541887405456415327848149559591925237013391900240845189619097303277954615494842790978136039404178499073433585536644080367863740115142886543691845774976935153197556071196049211484533829217489600500413416437535952895821526083291098041711476417230259376477486352055370387618704297749725817963336478510894141319630844306299874530323757253484827170610153028329249615506721998941014124174281107385939822991525907503483314971519595171291215329540211547962910684341375012251320169029419578474435406396242992144449849085061587699366418454079341936129605010093811590321277732136344475154571555242968726113296814063194134674434136211604072611748032338897088974061578035590149917002587242851782545427496303109963034154304462573371054380430566266263545516951205572790301585269222589731620609013867421274403995772273609519647403144973541206314083895601244939621355868194711232015965698994191266617372031039704903050601472145353415613768942592704581485307272130096700890123241508117946870208361402647288778053613539846813644077381569542114262547735539112348325842803804358259975130556585435493758359133478209440339844058286460098246070459089892662478949877786156433315435134269121697507325674161974344157080270170139519531223284805545018525575142100103794258298794621865745265777280636804742424624119303221376520929688180077363476993121605914174511510357953083680886057676784246319278844127654216636524653967183410516650751357750906167387942040800253778809665317112821682815194927265746408106485014079171340269208678354298709503133716419297366454684778344857407264200374080501672891411117947453456565031494451804069121274172274538234589778844055543869212412399572234033700712101227827122366541119940673729208078828571528100007546607883295428581710348195892085164050530688951519063116519583414972148437321477898168315447785543490226694241279707357794524658753682697210392532224135452017521216379278651581325348777668072937376587529182109835883267537334276830868913919723466987496803114287983299778787476913605245294873541888239108574937161686767966792714653479374897380604497837170563251323657959920402132568390658085225000907778933223422148072429166256620036518565693550719783696269945937784485008416670695983373637094178917259396478828961727129841925817226812514116637845672543283053569913090799740799637088047332098883076515607946622315338458953265535674944908688799303165899047393188138607070044016506780629618100133893081930662066942721070469327806618066086698411230234602383496931920765525966057375905692313791171057312387762627308849040687266357588052890583338428182952520057256045801763797074772998664658894494556229358769466748163304946736471362113847392875796221347500827826211457889601532781219019364587163170816473654562337605612819037519881180306550456682399614149973572826883762776908770259445154507674088413974604527536734259795789401528545100056124456134705763911447230411350886275913055545087717655698683979155491739206368449504885607495642549993680218071795017503356848285560235772841867118740540082733078919310950280346410003526900247063171745968128269835434220418063634484007828079103805230274591630332766275283473315669000814706641593047243929885245609949972940091854902660340120876217329932258937536119919478277994493789170709762365179925756890399722822885412568894632699355826052943861478496803809757466019977216987669364220596412183105900842435099495481683700161646925079410586631632851599077375557210374107666104014645924955322796109657585754797208208071440822707036169382452439158259089473918083684379588315084449711683362003271181114656795363335458071475998732897144695415588451059596293679645815834849238572854712582093015522551652112899939697035352978782325060728965322341729893089991266611081850150965127004761159409594247331428581809172531260235067194549961113918684117734699154383098544340165718835485811989028546971976867176647851227686614043482926259124878307763044872002716273997380154716045910826832210778047719398584450397452342727920511223354955633511198085793924067594650238349179524741025666246291940668264222694486457621672252054396371995654535283259531163493921678267331137271658795721500678857465206104430408711382068784436743008073603269506721557318313173662181148102288986999031250060808176320361532118631021722730529481589058979993619238339137008200391735504960813107033399142228463766535328087428285982850430168479483939913039402556492587902985071460317857277016400726400297412485910299180477477405412547396991214759741661358429830332700735401467178162610352454179706159734881046856620006597708893336560500506655262541630165336872702148858930579258937669169132180804268249629019366368212491150179918102407951178307050905443766751983173898991062535853859747153439667068193698675229825458802762882432359502370948757845138128953909743777402138517716934516606298079812484693701472493029830505981940723516488872687017820197012131864218719998073256127016694089893945425986682675193834120146011163542816626386582382981185078134248498455820923300778300517756174442745301962081465916222217753983005450677125613324079842986359948578624369803293837739565895334716377828923425697813708993061005242659633696685347901798855265770524387460343617659875162903334721819179589027117693610580836382642107703999798094971289266406170704049602618735961073345163218034505672853973626476860474798543525088923057810280110949686383528921745687202667979150313515735821361735382551794050529078672270297394057763393935312926525083699361165547888076033409336974188173820033256577194160282558561949126830681372746408706369063530903563896191132725945113633556266943471756876024049315689005714426618682477352724422217428096520003157471450378526241069426508584700028585164071630284652747900822936005006100385606783856262015498594710407561004212969248255721883611327390101987573325957391581653835701295505221982833165677892149570221735919954062892750052302978074572070900034260122498451045532977109550287617903860037018560919857732199132222358102625798924849055313895955219476120086114003687216663275937991845228378515293922088344019870005005460122116240234693269508128636717623830566562790032804388620164193346513927790142210814868472838586394777172026040561841605467468816528591745658923942831140144107294497653047825550859442688700744258679746823749600672128258979467581495822180894849621569333366783430321482608365424594984632649597489121080696035761241486250098304754035281874286887815916283303796477446963347953549959871683556246168599260789939492182173619941646961188244596852026571633748804661675216338087863182099134252435001053436263454122998864542502093810999881020660993812113983923435469173545004597703950384258449210653426644845227079082037890109644440344671410964367475534360531141442227860843175915818325093101901590130286266130581381257008679616394747002320514188173329106382297366784663221633430798448561310670575440384042164830249746054293129098318818112661130630852062659442061122762454053062126083336449689010791242698135835767946237042279027310276759165904452849197978027196393173898351267399462753486970874114470971877823402165240415490476387518320545925315329994308201523926178539202247645938907985415739709433616132765089993396459888872906743630917434890662268309708228153869461499222362608685404639035923079193730633648487383676645387351143927048802493600837204893873824938005798527710662219540262452177280958487848423058139587670732257866614515419276957803388367457203409364405915036163063303768113161788680192187560844210691869595909337461962301153663927575239720750280461186574975089044565317868754006815859320149488579593311458308871681164555396775837479474040131884699963988035116092323976081297573741401823192414876771689153051176412885751219226578322119809932122616947184601109862522936076777431170022125002890757763059699492418847341591704252522346071658517358287522864238758575672462900549156400102224469985765354279119835522907226401805236371237634442645981548224748673444356076346669748990170515331491333959610006419556710392242157670721531894811979234730433456422927944560760894227616849496785963335473731380700482066190141856311492722582177907958336136917245484226389203939345518382775303150602621911043820025584772935343580761475776202913780153683643427283350493922281443979609906697473426072279450447822033646830693303438014787088533432333221130664536199822615136207039327138627449697947181717964348626019425046220060194200185451200265298564697013371438822097930969649626470722871363201520220526522676198320057628237493014997315634653288334447130058080578813531974687124401096653268889900563770601012456762585178910475254058789717949806136518214195950076734503214776717632801189073225972175637759718777672440043112514162333632660617219260731308839485187035891369959248753025316736958827776801963460516034300927098891751249467920566908806534907048631857822027208401784060240218988306649658330953892327040182476121071653178229083178907190359626962141778946021104917023372783468325026312352826503199199293925331592311045845648650045944886122788847093121378432589397171907084267673105077744894655635338138562010535764873152244090482383161055474443873424315671980562295063064591635751583276871695280471774647276680271056422571550364928492016940781131475296292599726767372729932980054987188799768036331903195614842006166701793436799098427005238104189466130639571370729273882154517268800358857555860518373276505351979938782366518557538142326226220799603312585980100907593280419525617161328582855371600263036085240952148819835976969147230282059155138082082584845515513684695388520757513229928812915302293909462445846283996181939897256145253959224101138352781432642494861983688213737573081657235734507821717819100826981911523946601976901802950847709373214056438270186632596474604508728767824841093439520748623955370029014689537134299220198420380977283131468143077336240529127514943985703100117793171882754331375205582316255441438497499540777371680020515665190009293777839542398103376151548512587831560404421082903560582647621562101422695005265194886247828645174894282926809433530678804184337465682119302607043578819344477970422289203636246987351281758712977482797026725946334967008309597588338559889231550624620736868321417940896381065790568144479373717598461186894059345840278731569183221974712477337547448235498531914150877790791098922301432921295906770123158837311969117098832446452525470514301326744598757147558484604546994336401111384015616059687982512608746637226618713980311239731070424214703917336637113647469396616119139022535380082792454330820279368750458191904259729262745048681402705510575907689807180830395899904117581823499170870881816679532193567999441252009390844381898668157644211844719249181063968288107139107244799843334709319987721149642228864569786995495181139827795436938701135814698377513603671414924845648971318023015852855678819097772292893690814911335848491809990350958690363590283048661728127020908171533245763223036748655824925696286966392963840249045928126027436936335489136350467453230911510535828421217605303861833787622547599584437621200686640153106730704395374182924996102058548638907864907353324609647307589355940865513170717026242188514455286024724097900683721352128566818109444984356596090359785931597365913851902536875097465348811898330844502227701247992038262542038391275822229490755344202510365340327032230811329940006277925357110919762016430513076661671225432952561517920232459098777330200746642980758889608392788988054663254886155033489843826249556901168527801844548981706319534416078604849489750226399752474449874529830154175583646522499351676025184556157390950230787401862072758784465874668355595805138401470182076959666058719917642963073535362161956090454806418818999452596891242623554305331985291718659762446687079167246379200131070099114322478141976358840248596610041273608644637558309515698661656059265552038821683274517748350506118955454009643012209110980410165610965303275432051870790375388918206035049254398990978996956549893997698187155850006579622045560013971109124432167827046428084146554006403604711886605376910895510721961881323629721491181887065411454789402399553210029666414624941245976036458638730726527007612874633283418979939994018925757550780653352389285723605106763285544547116190962744348638035167422972878943545401279551010878134712047889970269633927653393267377528970763777316607620648936501134797651021869918001517528412993218752471791820209307205779014699268272055959350088639355149598595549105614783134483734418949972154343530950745206028283385849698697199198658009612823552506850336323499268136651927633275831467116355054449942797837296331141920135377320958962380540795668199164877825200355683018563520957038629062190650643021352495585602806255967416687990537096580902160419312157473164028884467393532313734139894825433965855485509653208618900275660688207435969440953759302563295573118956342069329113515786783379648320667072840879846766422157655152480948089519832402834387336014614806718594270454569915667413098341202233843611167188417848468850001723690628868458456338115082162025569010026991005289628265082314008739171902031983350026525768269155556819601436842363526851628594724164023659201271276885008568485788920339747612630634919538628025349286588509396488843121217993790292347985082261879275338919437228430233083502263265338030922866755263521699353860341735863182193503566678581970022816777790703742197621106474040883326848314392389726467302255429623951885345263092688424093104748953961964494535938469901985647727743264106116603322043819339258805189474341236739106030133320841391644786309316432760638168865080877195797065407403859963767805371412261439084184248301050808352821849607543486417763546229711998608187363295664954665552463229773886880948400526163256134561589537528881564129710995604394125141126471761119870860112873197809305465960524471499189655380946348434073161326984914086648615716539089421212987452367633086627454686795092516328048266747178461571645674706287569874391729934093412689828509988238324666114209667090710609785419977130517972371942255811007162645378689844181113835073095190332894828272268390108860152978888420332577503585942731714673931606836333237581328026024654193137276353031440246125253482773370887751215356225988402107074863932066185440807893436899073598689995256141100558013806950491458866452550206698150562588081377430254519845063313875921726312426373625079719784082011322024275441511850678319798665917455543846958910821743009933088676556133406123660773706346390795995916115265654523833701657696255668951311698455187030847968323772397752175966956506072576776255370831433325521230568903042304327666089170348754190355687024089486056133351114832315565896829282391328844499860364282382020486628861821826376463047644697442120335977193236301747234678514837571193853245355315748638581798582059868858741359787414213388928080788813468382068011070720760305904359837567426140669378073479093908783254930956403847447068349638992223416507442834657973217282782657830377272010926104576776868885016811387166004450668378253096058350298368907024009640720851924915738340325896109150380273990483450075653510379180686485252515072203870947444872181167967600851105179377601643992157234714882523771813188831441914949672574137386761365975275119785776900027746836046607385538675732511352465637258660159805422612932975787662567565442668704589707834285682046194553769948744939591941104573102227910959964641296352910657069399167045262009160635842414819506856602141686181636769491892458031555679485970707833158078446942483452118681145608833914983270643802919709300625750671567457820461992795439342330709285959250962991014977071166333768933785964143035824294281973749061944672490607369597026568066661303557639717975796803446579191777053197446851801349583622065981748155508700797020671487969565790039995135878063839283534796181813499947620742585413577092775169308961265228373444370120506024756720541873416936351357608143839219905279113495679681581758621196262866786703488099362681248872297893142535484965007421600703862735931444597092070104864561011037979496126445883045806969380010225178942324765880054446854894835157898381776070038200861111439751968717109552101823675219841392585952086869316979266365399225639340706022526358171498701261731077180085879384509227648053988526564714333547090879002199809833777912405829168886639436944865935330130620236869806410410964157372063179775294620615634805090731962493413046158307682213549929532001784919027249570222304797001256479327521109642142955590004320672973838064718505338444446636067382014883790678233043597157632585679057206766099114986381234974566211579961026352128482257456817971183131050191070124961796982418578979709856378993302514213233471868454985497122339995344631094528655529285893246042389561594139265491713611307914175790762165495192324838826952021590455315042621483615476182735046864290081477317613902350249677622756710988982632610539170934965643852711958102693115287697593022533993379963525667850684093489520364012058435939923033958468826260787663119183546330275747620757341790854507182105590234352002154631617683518430233043382028093816688260700408269116505298771165483159233854438731249398453366583434406529039565705184855391230012928085954802436214921263363075627068708461133740193896672374810235617601117761010419037348943179133226850184951480492156762383465863379305341650142675169543572740202285689713864370754709985728144392245095223106806137465319656770970453487249779499093816279943566114659374872985246210474818691713016581316685599755960987240494228622004434771055596560181250325393842670814822672852207609852956365484502991412070299149507146067565864350044052549833522339949811337990606353796893743677980270434170890845767873120098586885737402550973082349183431484740862059958377703059743834287998167281229335094693828929445448524630309994115053388602922919839731475218617503057971325563160307298369849897209765040188968482288767177919836346416896290521513251024775252243982544837615145650885799176457723810595039423889626391927900319541931992337574580293381792254901050523029255526464609669436425598688859584624206553131973256737037733096341263412135994015658823401661940704671299320380683133127010311366301783429852544944825019456106543266922337134676773692055044500356856886391605667271519640741080685615268134545703336134500146793523899439623158950252730966237330872580861834557824064793750706736146428965526155798195280432959499354079273271880129449288927107377667531786968957121405216418719915055515705343905666005913541118523082162137220169588598178622681555926269635744861505209864718217975141857451300714632271866429607863749296684596992622623829094280231426682558787677566887326376931424009328254130395697895837426117046634101281811835010025774886937566192420791188495469625285085542353749959034864087809361451967597873363080737702615607915248561280921480120193224029295035674844506190407349058940347506702566460866226677491102364159903961071420102765488435682206248134328370593110023020137847480620982508807919569516467946036802580209971088768640079306228781667937411450900868389885221002635219098983754029435592844354936596452048399475179826878987742998416597783570685265748652006258251754824096360243352196311042023625080423956014061164163920795656468473988647171700973117178700920893477910076247196921059161317535252559171173406512671327739508192964893657482030056144732409076893541462120929938945255842448472010742925962384069151371013476163448761350502958718055086426028211069969926643264608883433869159090465345991834641812038441455361181409238444211291740939447156982997448546743624673945114646841462629613856294850008377790238340667677727979473213563566204959678723971870201515672083170942640477818486894613104154152768377576496524018835918602613172209773694441817183869092359350548872449237635359917985214316337188299656427070490869094223610138154926478951898036338002042312960858997487975469277438213707966218890613242480215847749442332630582424994902442351212648003575590446537321451855048040706738284156607264340001413257304872323635896032938276148963615435932536833681629576575037876084571960053540166591436210961033580240984985091427427547871078585189703167401352884615220613115942225403035597925593790601792229715417099727392489810837197978338319220799320049190741858879022470660818973616297683547243359823367772308014039636283174532320578019736031500001858893097096515785913669332831938106528551488612699176460525643029585856424366200093367496318308554586930778990639473648029362190338569134092474720566856485908032116002761229556971090483218644453128146750894494389751501231733911856891213720383637725975944934897399185836443124777922615744950689267482040585048896173799649720793435494639435747200873856990610208853608613757338897966538338404210990045797748297521766094934890896026993723614008519544582269360268892627035969813956868416659555600253949820160400904192436497000209077041977172291268080888963130141925682695372943197623596239978094928280774818705026920837844689612948737162429050557452005626303062588018093344124812751421622160799611803252114556505929154690554397719148996764577895977431523245150629715052603455216985364958217173428292528208471938063626545500414352120995314882545324396055498806324901701102743579901442064490362062764705731983076575499869073160998708633090689170170084486401866856414515513825223122199699303600296779742737820490371961011991887773875167665199244699184864929529059761800761661135936983191415125071180636642455017789521266102016833908809157557921664799074317174882059419838472030625181491931495824115125137282260646860072135193890772943634988874417243806514449602983156584634400325225491019239475256266223607743095497210641979738368468003588329923206951868324482947120897381683234883624773783205356153837644324497316085637855979129275401476898722695054073019001071893840164238171698774675351667840584604564102156930071669634355251535745260713685877306872303854222919649533318683752926804371683598400602149597747181026700213271278477204952067856792445518752039070222243912826948541374750972258227627803108932077133965946139008855317843449884474859797842953674623379944127029962558016643639281470269331706677171753789561071620065529551410192588816379771949213081128258145012888378631979394822481500389354109455162852035547249511851039380710704380986590528188920690352167170937961311760356685860585711872438784896401470603730921645994905227412267523335244405479118238191761488555975261490649493296452521204345614004604004111106858288627332868767565887287481825377451445017058845993885052540328647307059719567473696267890691321590860554908534144688493553308472846752496379007882447689078817917685963527048298585378985763596356928518676675536064877950564755112191646108465929750888008160770868790479538257047608749776513873602754591632769525630013541024185244956893107389247523454531357318831483549176070682285424129570253749413183125509563945228776448135897949628201800368584232086418645506319733073798174647568334933533982836533149954509439982796622231276631553675262628273246616789196730203625110420906231780875705198977577194133612264400300067288312029727496595463491313619422314863084653384280252907129371119042804228619668009981441586753832583069414107160469266446191492339947074245454282889503257884410908156582366452634358660572819396623398953864160874448259018306439926147686293350639202127471173369818407549676221311721304827905851089560250592394623984870055148085726651876135372328402808583878741448041367611783311617922106574076813357615049100249593164411601804392266288326492379288712207390393208705496418371823411928635591372869218123264877537965262520763689047162406587665838346765595233673152426497188685419190944362958923840978527605072359924020960809103658621244263272201385231009794139147955808577294766626002432776307385545420601293405274407949800628281301850587193645767831273363494305982858466165772808281652831639843263567264813567346888223628032811343813820961053067141857689625620344598801305253974062195783086528155884968310949118841228842979791322429453892391625052542932690519494028575933623646697689508821518892923969175185384698579533546279954219356567443190121595411136075647287495422983257728187953756356945107998333765754299257125512004032262134559447885974309308258777020786584096952019012610169440915714105654863041839385172655014771664957539230222898971679887071204017653242466237381922075624465348295597379187704068151087342971347954291042985755272812130641589493894623318659623164117954289867577699235359110573125504167017840153142078754140228253397826617597200536761395190316836634282932582969983143855216365206242909586490188571178021690540897282450000724460316816339172035595505408775378718419950799231756996893265917416119133439144742335322457702504410744062751831469338882148930252931969786658626267215555276887095980101771264932183663960280007051753971468622267384186347196230445282306560701830062633329528091415037443494343453356059187937779998984646365486522764967140964800305821040490575167464018134032594986512971037394626146523021672530831107293150376674710149080371748194874909174798434354880227464052550161657875948090835599877378778554920989775043527954423275007859613770007709646495025466047872833781301773814426192751945886775473142185374118856900661965206423481023722223290046478224272621043616435900258982276077179527064730912784595003194603185981640876102094948183427700455793477010074397507822832242862034694712216954468528302001593474569500123649168172137685827935692279768395502330137513273958918210337099207982201305015034275115588099217912662575055441788247234013177090660226810599260868596889926818241248568291624410785700994082227621665022593460248810848818443707161692420829231328193950396337974221380084084744913225983354394189793390049198294319458152293271703746487216769043771430041292171872359213306253627045492787410366833952032546024852288643387053000311959950100350080429719003339545434858416167419575401363891413607295048208202371167477821961185510339649316395582229133023533062480360060907514731770530123537183127949882377451773011620994989086202919271468223218478780966436267322949891728055247035760548044468796591670259145317645686917773222117395078655974768470438240198276284704257032001695806795848334678446743358553693363233868041943474745552396928516328897060815279123769720524459984627882784431463717633986603180437300181094860530372846912458642410624398028266088526226226328260358971741948766058193493123099917386696309781599759455529214355654569083783419776077852992687558652890094785110759361064730151749697251679079841334491201989348467289388944186848530290334592446915161926672506984858817033923338463866512928162731658882845775362242320604813321820113092030324876998378096756644118437286548308985289721448837233971344216589076351191996434786797857168300698669115641978453453196835429832176441503864291712678154964729265264190315216281824617855469168629032969092428282486606507900929055535773897759602049791356723213001545171905444040545334695623866226039075988717027454694839412490569333321213128594702905656357256230408407006726361622885754682728392496801047780330106771930804220489869454594588222470122586800058826525046093485531532878858656223969170581446205599722033655530847383851069389684638905515447530125197308998430102759739963575249665852493488855100658137447617920602620450602944997884297851099976006387304930515394534376733627851832855098073337935411733404658166548090635449117074399311615200511989847559395281298012395495219619582209079868666711633514511560243201720728106762330872633122393114925104321626923762082134897764074528203156457686200349471432045668800733565928546575589575551227647723840492055278102183071288137110124673273332963971504495479844317931270800788764103474087550902723742273475694289286694264912738190685363198103539634333745700443045078476396844392841771913598576489241527965292887241149143421511639402780667417783774232567335075700255852245755644994436810938072572057030991534245370739133300420360635217085336835900730270682709403745256693583997891290982041749466326656525653515139116931481682064932303434288177289276720681790265049275885418466498220963944505632421424591190283110513872941554231539887995973528675867686262331647526652821868159811462698879439538520668305277356850754402383382549233581720605854602090412676957740267565064423835143682936771204144803990059270063653475887649339397346263961823860871581869332383984716414909745989807619823164818042165159935541583144370725216739918013213271701478246641851497906063789697997915090719737400975418870762436149965015893752369857079384666819987864113586452269819920874283776666088616332655982850196483730508209157268040132859234343686741741399039290930164292494278833550833259035637241106603370270321766675892527311778378309039698669375627282025645415941778823825724354454737064445219037285532804899838426467557596035220139182294697952695344799797391335880928042227576716887891799294062498627538790860301719727536516454576156112738571537072990161003666549748466060443746689948362374617550905467782648996172342999518496347658082655217205977459793253403861888607304459997992101286276958255335210921497709658232286692932534744924041027638649665554619473384194356340149837838399665892563679825737022610015628677679682189266506598015673214844707107692997211051033722865831367477378200424964055088747043118824724788385900090206521102757366594084299952269203070607517109611450749329784039427870564879762023667073158078868704439143200117322467022055021453963421097140735936087934221695466463224868632825727957860654299450581616047170905925242892482315804294516560603932624351517666884770054059047735285898068307298960259227676310568452763722006689616410291686341347131668975832693587921630107903930862772289803353756652249108519932936796160456909039133221552986089537921103638037552935337889620829053911576464384647162116976314040484228802861039287594062325749324056512219649911917277596114532313832692624394350270317506119740953122634356421259705927296016086291338732713549550146200974407500770280265917735243364846802862651524470108282488927986297073797697820398108431655213051342890312723574486928193729885515194303838356102774818164970157818043804209111221140113442498587990298885605155120128054163159199757069746267073082127382105838640543031644042471958195605794066431165165284532000395740080779543685498230765218219314789981681839929844854234450493060120061412159054271387843327227066923795945223446570458867487953651014468624810745637576202228809143717995804751618263079804996789558780753030739939927267581255218237895333763362020006599119681879961632641148189213772341094077769848125789778751064976897145933819302318794733289880912275585932003818797509705258610739633182869415418398344942865797480457507888535899610084584894738965731420169735263937810808866472117372662103675576710330152691920045826505523162412287638951755123279293576035941704194220070175002374476121164654394188559752686339225268376073234325803458543960787992536554331264714279758485375871103330932778886334963212363028089642059794480451996456499277309480814245227886665235738663381340458650758816131942348830064853713072549639140073440727920009490138535365586992606796692689222498114122181640613417396730815304423727405213413055182103997947117982999547910204230472144941785163947424219448596047481858212168938617653086383798589327921405626260711422456820715116904884990278852567307339889286701065890737951454660836786963399367465455845095082834332449894187858247533324880246509877348707549325469341634165993705749272596263658582153446643106653266743374265164463670362926760952912615530137547462545325030973688718522502929058705368293051401198444389007760171892558700652531008963470798814762332032681974765325173489904083379704290053465761890818560877805882726029480241941452807132080564287041451613794300950989780249453123768796688878413984299555991620954781006382140109776917459334238501879146397390651029596183195185353065985755794371990849743593582967516262789464320612174966626221304524982473330496673675935374379639266527021316619182991619429079399035929880531521717804251970699002959109059624818249728327993029648233340324658469572810362080218178352571280628558474475228762050354770214863988950139439439926158794687109807706265425503045672061547139465343353469120316010734492752726503957835606423417001903192312305705719067257713217745725078530427357061278754749806089098173732332778874773742438534603436559700173265295424502079176660456786562282878893050484836877658492150387020312765767931532846316942288522182713340966320655000257012001874882727579180956337645552075869205206273597983476859037469929720229060023421204291270236880468057991362202456950543964548240101590083014917575704793809452677484860648981164825890375692175207845590228387302070396493249026075242247292438576042040776478851726499511000432041423889781230621570442944633432058024567287890105915001707209629391176760711591582542500292618897571097952019488561518481792092724774586291898091482094035469864592973946447911222793438180378588015262975960083935220648630119479399671209719031851329117820016751182865680834351382169294488098336150874684813924850049324139269644617123699344579106792462560444732206807332171405545587985088140046238312649186202528006154931193874623185094616431061494433646242576141243218888754793987825180131449737949949930328855544675466605645712454077981246040242543652383575752559839300900530723870662891848158891428597494618808751714856090081518968961039010795135038778644761546514546214423523601439227748377814724783813992720640112312986773152301777189212023895623350043682270295230518294557390405084152371962852037199828521377928242098533819595933658831416948317792594688197462356581689965333189282320980652545009078321299801210122255565941320595044846260392707741174746631049069035684133281447822895455083142556011090688861090363073832686454330495038438568461997315878103714216385244405197083672869698832326648986427604643386999281910527994298238671220723491324328219693541299620516681772496004039246987085390514608335276946883935787063553818293157380652804696885649951183678602813677239242725659323365580541776935829801450985049906057056996683426887729516356833903434267123112870229966184119292532527168232090323775971818188757075799877648108491275151213880116954762431275395819107246957390926421710706125982180301218116077027045422055764812016239479887999045995657313843704877679088132172114557060897413049067727801666748894723696701999559221930060331160769035811060358513783754679693072675353051873726205771300648830422378595378643792394987303052525712619254742099078755168754636029374656288384372014519774653709041667542327775885211012774453507767530161096202261587961594081677312215038323864061002183212445924203780608215315853519613873336633709626389686140462848164635469331217825188734303410270776610922861810538082601976789585982165420014347050630563341765085848228055848817570118843685931538413278519453667085309848477051817900227848485545811579928282750178616531740973474904926002577326842606285221061184795582238996252079553086572533885018724750952421693898898334064406846938908264862985868754935291104908236582215596399936313361068637853087907293006316829662580979566479263893088859033914379526354193607483647482705092982652412631976473455311851645780583171888061438309618974045572474786185078230140492522031117371724922058220594612696235417182158258884758960937703976268042345844405697537036905614824513334867564219653089261784142059310131605050026543688336482417400786423961219513266288894389767668556676003110834479832600874755828122783478716146330197052135377711080086186098671482547139683655971617493766079841535754922028796518951700639941688510520472106791337293849482605077312532047500446831674142204456725738792706698184050773656588597256783795334801539988503532325783092457077023167880689228201514804418426154485910899110549249954162166886871204448417604374870923385563340755490123788303380887760542287861110592744553094704226491638985542755511839168850112235755381743021626110876980665795370588547248692461545037408163876690080963567396273413266594395760930803259580761239715757343106390647488204090418268416886494207157935121700370026969081681643590142537005189372487858866761835901372596542804392814353479257688174911104443726868822023819522756850237563872850686679490904591592541011823339337156751562371915128446054407344432775702977260487109022160724510662740348908459660747970741348456284067948397558853686185879098233828799526851557662935086949409441007503277791746019672376648786413297510863267333331514255186728579212395042557796030200579210421654570598692773935502214391753747969000092541899216890990130688294770194343803704582445812296033379853789824691992121315348622918036956031751100009786974771476674621738378740181937970001542428662021637248219552709123334880298827937455069191876391708574966310249817802892646374766081402424303998021212623592661537014363270314055600774414438059085409201525815310013600910395026418860000204008878782969506033761501812279669669920079499449804193324993782093168115099337425460061208466141663843287956248092909281974668821127750581890052666246720813258409060651619238476631585609096477840168950033023885977956782598292567771902677518902316743253618666590292699103988636131271291975178812177230809892354034658254436504288877424392931478274625278965360006928180295167070743783867724614923789429822493051883326180765201911205197507874620146049736569082899546581228499379813691677385447182186253762207070541714969865823909094624371513285257045528235455362658110947881603731670798396300140941611434941430511691009070023333225628368650644519417119075656726977301405266816087257848765811224157477884954937643622560808743052556130811758829523249471239119317714915955071561563079589867793747806746973708191986338520777112212489922816921861051683495213004966122739581785276213911018532797307244233097191305154447290661750541341795367310513119030404201718980815532890864431993744701533082354110442323302817673718194894924854391581745087444250561449417053668329693373030590579342434318439581367203022734674868428136794933493896208408554397881145613303619444461679047243669826966380442305753754109633538340746883521433162938819837715994883840880631446932483812999711540342998730765117103237337620612522783164174823419889710497265640584136214991202979935854571792455492103162414941158270875148316345498863407681731246945154042032665701006050627283641480960153355706727722023473843353637914484339982752705139542786409309443065587840421738517746912906750081685454314604646849187808772147396898251651873886496341462363634351764400747537852546151589936217275478050655520522210727784241957634394231524882834017519027461772748668149823952413367784883857603502584672983070780973876950905757636827039016921588192173473375864168704425851228481169315031822389491401651683836103933271106365329679464417803271388317287700274146564469423751062418625335902721094504416321220411987952822744285687423706472731792113335419811419995447285775721070928181308248026149388164050914427570713881245884646554962749724176944312383328055290950299881860961302379270514324004578043368886632680178247683635635205081822901403024497301410733512616376171158510731560719187230155375763371454933732097082117453597952553004460567649202516638220872185492181795309195382818535149643503971581685133298470956932594327735479501608954919749637540557294219180442130209428482412603576711203587196192998732618385091650783420368562834644076574032405944926551369318604360162927188959184387433728222658663231190337529296124204337357343410627987076264058594472063171940224580627446205283818746069222236897845571181737524729207470916183605636556630184822479937348794904744564905610614134841970739448342091646473905429453775538920786473523435158938442563950256297009613681632089325451411073268686330198528075660694493478381410231972556398560276511715670070049461033729159878724752986035007844788852160873025795524958280828014980414462362724338863697258691824471834911822927893405445855382069048494300990369101866500385981727808414144441261160747576761059289157251578473131472282469722523259331644740365427818623274497847862199968829010396276019165083798223707565350356658009176657381229850383700579408577601006140658145689690421836050650792771609222718092222295795180989908557527025536205637863593448742385355498220185304417439586515655167558581535340677862457769373599348872226129881567510714930227840990076005179397507860948016903463451462776475613225560650785975134368085366772309704277025182094127426011935895896535909093858772962539352627813150984447445791257057414708018089391931905373710601038754422190981483079861693199990172298956824604073874796551565943449154987942076379293629711770041612157976632039697121402626821037685154318059829730912378883237644492067855559311082556114926444847968459369852043125047511720647302904761784518816428973703088094689172768256623246013095386466960524411934829917597321359601209003497265305758039898427178644848211836099550171526869328703622696933264170895292489979134139653988451413047077226996604598552541185520576040325678491538672418292895790968169873050511420406204665374691335859465111217619616153003788097820909092748602364158650435939750638394677164969416175980554609146970668258992879718915693020239161458027856758452252365371709795571364531335836741863678985757974982875439540453001770286405011985602779172381527073064900677106534041159231076655049586363375729414555953231691932864042531688072092085076618679020895136077794742247840914531779315798752987570164898149095478787910776648398357497465193078404306632496174401345693278534636125776343228814525582546861745077403255552952780260269885626359531597021189983065930432385659221662891371801002345807877286373620773821051850462637184517082971547209741387225873356954974686647308292075179314712042888315335655616358794016149263915517480012072464174629653668307440002322767066959101216332136890362633311688034714644500449277927296361359362621899857590066060900838816274193191665461010831623234179472984577792743188232555533811781618662817179128227985447455700159470588844707390310852493220149472309594705800043101261831837842520189070966962192782884736926078279526557949605452649440912778153243341883634212396419831632980883861544142608040428508793507223133525564180919785173949715836775478004225527617012624724409047162084004082980344460695633285879205287119517043776024303753479794699054485662417040004489620592502949281383275346213447432391832566125828298429634650985382364039797289059467246906739151228127763396562413381555977079595123637511969147981997087293692414213604829351412821524351684638118772685876746149539834770316953601465831391644340926370805530863205942723155915229404073741909795720585054329245142570349558067457591829136170420003800833898979680013784311082558521485457492207125648385772225623749744455624630171735882750749149351232594002469892006714508584378882602533994503353044900653252700976659072349747364804448982398307595543195057373334976580563890581576065299151180178832990905956710701404971961698405963840126743084343390693611138962879874579902374928965911323357557200708008230078269996736589111647479043483568578037268258254553010197458486188416670278003441887518327340776375024902519181290132836464730226597488333727516227162023436160869448726547935812060331015671283691648930271039666685148531653666379642933867969196707412841745680323629348452160839997418585335795946598287169814862344078027499589444864910114619782364763949140122861787174955524831038233732325598969446352641734147618061839224848589555217372245917621735559707664325346903884961501510009102011077734194640934093566946634123416088475963092443401464032361691374758350389870761141670027095588462855681103149207339796550157525051640717192039532332849089687456340810152985616191594771257003325836443651392195892355475152534982009360338660437086856893268569214496995287252358621297368760735608284354875682584090831917653547082781761065991218569814049795871938071659291741541658938662232389545763323373977247191172321720814257971120723382033990268263972656286990020910761669201897582642720478781985109380221713374311833266239253316967649421690259425168816793766981604601730281066312120974714532881290345951513725189015791384185838887953456185700741154032606785114351224883257645608271177188388001682076512880810566604221005438850251883992236990548127312285930038783147362980676807410581581293817016798317628763080412712581368785827912777592803500061517207885500377923410635012658481650575719085685020025010213903585224799155478423807697065035619430472316707134024870560303015319362861851456861766440926156911362286192751186088190193250181273032477463867365080398508672881817172070810204351781252665341675439520185935963244002820041801535445149028873885036706795163491086679811420451135268377217510066982337825409122686215817424025968112782619252637910464522467512581865588955014566736773343851489122298410021408570365990591754261786183394902515113253522388291383970477046480439985023895585176482197672872669307253303549545884006599400437069883957193638781305349677515079164473583419501769339940711840273368921057797229538517140272497687250213774819991488092940093814090666011729755390847140261193797127996108987693154046046309042418866737881827640309065281388841328182392486774942766501683629707838862898535273115073393159967920253228102091302186657068676194930282124076891649285213489454525785242432460424879757122143528107626475870291333707771189121480699919141835218527055867857689385859654235595279160219312070462059520469143231832070147389337503470761428316119672472198984828507898626570587236962835709390650213285512632290786951069135388654559854975145272207355737298532067519080971144275120979237644529744721633674178675108457101490964366502849962785542768073315333369924121939723684481951782081342518248350021292664180077793030926336845667690181212951542872715033662900345771759183681198220603486730640782036370011973917127835421339323796380798618601127793115704310848069672623757092150749021348890072171822022334662939256554945547328718025625761826321889799762860843067156161287850785574756961841023078644038784769262746049695782843116467874772024303517550589686578759416663538992721211936447263934951493488618467854378842767523717618237415774362506554271789440694560372506493213958193840676908045484786002748222485721034658623108152236685734221697294281740927028462104237012780497920468835509755879661262556185368843850032979902424520899541991072967485168807954974552190462607346281846608614512530236773820262577359950358236602334942898521130434173067436887232380740274284919035280115588109604529254367265057245943188908901082496759591782387509334629354921624979346476928902945262731511225257253605299414099120063349936231760711102484815918591339690232416073884570634601337419034926461272286976231677355323358401798039053872738647785155083605828908596888386802252081911976504262521393749530728806584898707072807452943524197531521083281314874129104918957810056030755756946262113465726910369541486559219351961281896066058428849264734733970888621981471875332796230219707612548355216437319755751707787302389399437741942089678253200903185083238962119390521566806157804493036379517322965204239886422288062324270297984864072687015186203972283017372098522576188081366772907229866039562146790432426746256517246907580259879495828211714221240497929572486704797948550445195343860979214238636708628681094568110174493868399620814342243385926723109805978519625067364668360192286008693150698057324347645049829463276762979788574098647479197286131427602820391312733374865661204158274815744501035452476950126009531584332270130918407946728093499833976643463608102327769600223236833150903060695833808902648143605180992533315129540280398010917685269005892984471624151522718985002978664713194271817120796770662390352635798991473122048949892115715738942647366921891021783062370360801952169774082063148919635710256435831976652616836080404810994377725290602173926349427629052895369952034821244879796293334967100312562981150061574642978025209311957538712475779153053619069268024795189439988800918724843682234063701893063747178805616137029647385434078454207656091550682342896461565569162382315148330089944358997347578464538274115568342021058532284190879718490334765760715533703108942697427542726353388386731838671108350561381847538178331306556288979939895540295070891100810380692802187509576377059616566897324757428106973315517184224864594055638457746794091114078416137494412518230479245725087233061956506349922915110982178223122746383156595550614497642407162740213161707837670316882700112280460610699512268289701527158013813659265533248626019141472251781726611578717962585456651968574861059970370668032997312429995719656715528773150814508779504220483304534967521755047544791906291979568875820649580503556286490804944016624281420899784728723707994298389173990246041870543989148076167949511021689161553878680030931940291276617386066163726132134890527902135746664290635599042321411459306265083380446414569731298400503293764508884262442547781266676259201618877601617091607194032512369732353016841837625025791973422678646080527730805975408722781210556376816339421817544389754609997642684525889900481218577213706472879710955217249613528539993235246011324768300349634029807085856038781993827992115884425347948050711432176071433789332729590164278799281737778796952278483466119705359216471670231320163709510849869146149516196070407589154156048242049412845435538589474662890994418699183374367978791478728863308145401948164675533584883082408892001038282234939310885559073518209988406685591187710163094959178824935828769204577430244347322840849932584167456568146849416623953836031046774416902293005517996081575745785586137961492845702043135882342748258143426211891477161735484390274328838744997782358852109662143573553910604980161516631752091526028451082487920722207951345403496294519470177907652682293665516852592750728026782762453679882194546673839721536671975260387682132468192126684464506708844931418876928744590897431455955313593667204627863831632089129878905832069208632705700812677374601703061407588779338037489325325699754110207537138726220016188981992588238212971665812697228524934591671565467243872009520073624682208792712328764598101433552964055826091835695681572835241694308532453982713675238130264550534288468043470541571895254329207959584007040373945925747207721146663234299159317683264541620846878770727502469497892160556492739113684170902436102628959472998792772805283926638573933764948083702806790860926913969042099730500854041642610158935404453875193304995104637262365353171190335650507356570383616906921518880999398231224601905483909110612237889775193093983195208664007221573480481160961849068635597755957406370351078755584951749227617785802070591337657651944437311817472428026972676532771969161531638461103157001368798210808387141474372969339338484128424037164898871391542195879200333338705526162547391300793028919094712519324880614019330576724633624275527949714664233235578161955599390578433612758810701948808408297446936860776399783128489698568584395374409279977213074756035568505991691048349967223303530232988565600848442703480561754659391779609021948708652903364605311703988179923860214327107830717116298434168840459196170228332463571600473664964550630441264074319635987647291854853283054912441514000766409340825688740078340358146093262126099561550012459902587259195443720339522333822532738703067496913046257514975287744393914821784951845423735869323284328661210026937793283690534053208890500897092451439414471298762732948859462868681235538258677612492888165437708645905714277365026409552420354857329757950146729165922559053473429633534086339914455090133063920990159742265124758881245669373414265220756410292516110622596109351010847006250949133423751598213912624996317363934022655618908940247156992838175834448528940651381646619356111566670527944063623942217410641020052687693872822719022719150466535683130634006706398980370306835659722627919397060514507958621492808322054808654541459763745918756671417445521089907475889966468401094651841762884076544829884343884990885705070389170915111279257811155239808403190453629911191138547883355863858790269501686538321721902763309612701570508000940064869363567925874227842401005717000540662490834602307163948937526502943986686109935661032284179013938665824157645071452541571413524523572466699997038255494270795903386474966740413212552457652484381670541486453957752537941488089600894002578684532652184256754692583501210697372009544023915578376562036150385529503068161964201650439998422236831568991997753029564020916984362168464153307958604349486835605907713622573413615177712372596718048999958941692973065269655297117303439588948562619705132859180073747552241365312702820066064014006793996788214619477154068708325643260153502111980167397090082610363055093092125232107418283585940040357578565298876480756746677990484235440527382587017815877642794244001437248639968125216849404415921255683203629139762953928476905776100465955172949183422784938793841960395839157577960172280119290129285275809430989947575950013622650039142369714305732256726486900763462525957983312845702404981191065095706892277823879437119797730682331752673560971070158445460362640851541156148778851997869408884388450367583545863074891793138369240206721846436057665542902947173471441814493299011633283095619050389457825899786860135903525839123387453218967713824671596345758405357216886508908019759082655905648122609640612031262959185708127591421825887074787012239002277604031437375274193700162450754716450417454430625243051724035531312491556645565076959998469834863408646719084867252765855095131347133214017289655795564432650948948061129663618883840529202899423110119694831429481798393611289453929325908761541407057564928280214591117153222877474247157701796338781589562873961969550228885459424006131880705360940593680908186232895337057451070123922215518783096000178832375294057269729346373556310416337163458760213743185341188538792840532934847208234945262915849931592364655360828113241713830236994354272583637337120501940518157840382175652845790806233429472365621369821260242920816492387814103299537192919460551061055812577425208668541057792019293679197445414264623304220147735624172638979119398957089111473738505358566639409250939407831493864430517652352463279313946017163292603910244823970395888124701857042257507211940602619092118915442958787280458222696257318319669426868357441254688865703304445263821342359730109852996223843702338352311931298056864137400638380874289523567465716021386572411975841760345318928479965667042795465297260991168873229012447907988416959794997458582074687631046948156274705205142123852233810798353591542416018375478986574901911050491397169064924147329297000596313250571754177320197863152687614500574046844930736351061628367421944086450239901504099693527455777666611621350785881040617110370870012080436477839248563385863344852917828904542614740544451199052636798981769914566834433579799913332808785367700258367211610290802482955565096426523103566833063248649088878547079690385275558929527548657214068804783838293508734813196853094666299307309378930187038382604867062995522908162403475793508183592265689247804737055580754164994161631269597000581379431297394827413745814604947298421625498717343049853976900508419890143582866765654686877864240245815134257068743130215013614196765682182802682566577358892629771918297605909651705559599820740028665552670734215329187211816845547561944412125376590774650328107499103390135375216580003679126040831419867050505325517959080989568932288342564421621310337148638351309844369695352986048326921638811469072905361793787729785244662620837183298564567264514591283125658762685647656736272345934194973232130075246037195033442943992562608721121916140252963200354544748075808075284587961011842353856995660840617804828275457617222955532380075838987331574083828539646063381400068032830100286621193938402746661383638917207834526779210428456378292594042040949697415656580738263776260406849904385297047981696831082006168919434562739738140727058753935007863877877354750483060940359158101918502797390955822271680131526836973035425175182420150100684975244054088877459864407471157833132750661338868661642958081323598434665352769028648624915861934637393578955593611147029586764739366581744676992016181992986261792360938978714676219105048882347577092728493956159569376218923895302817504464117254487203168094369371257931241110188075238269757790024593802229331340144569944873774399771697478409201297007976099944791949946664759774799813391144923329719140315839500084298108819546148021204738805894838950691175339708015313081406955926619070567090747953668709723726667564711347330203711273704622522727857020538881676737998857151796766552259129568554086606082296445050518171817688948753925767696018279982703301384806912058087817158537137307041341115094179845560107905385033162915218741395303884156322616753134999120979415125895624533020534407652882250910796565034808870444672983611989154971484524882653411828407881570864517432764779964126991165404320337276010159318258446011773143600319592011878432938264703473527811450589301180071562399258869747959800977893981770665523735415312032438411810549535128646174585060820036299165293120547681896584543654204731522652002703210312427937031226887595725665504902884707445293086868538771257922388352203713091740122531353620311445702498574119386504838781369362516203018299770888792487345411806430230725238090027781985190434516578057845826407207271716457579543588427895333654465073761191998365948076469925009735902730890730632744067502015786366373184149194753185765655750842595167611610306849106051047185158522454169543965527603547323746605911341218091206473072323563185291746116742636823987464587869398621825233098751110177990201789816474819553832199367198511945776549319693062618461317691666280793580418693357238858393603055053892244867388075971268508082628301220379291252728601068814382306578836312493484548308698739752726331987193326707638855642674185509513718686724359340133866785732440994213562308834583274470104852252740661149183023245684758256903229739723468804399846746942093640854077070475320641310164027464044307720349195955674913897646812063379832675265886258649576601476734516691740102189464051747479239883784216331996140290483977778662883807342310608967317129218864705991674146108066563007821332500321473948247812866411058126740834626386485555031560486510115864403657303061873807770042538431767525204199860348526971577934753860579584423010116951230368968425397113880748268607480061120927165977643928395990071242305408397264752020207998906977652057628133936555318307303700768150579123909590073602015962184798603330268212091168342963927553270905297071895601165109184872292192679556993380006241481379224377875286796945198626570932028003882288146578434692229317891158686529823882806899215903838509715919842691094734804365576691392990059648396169835626256761243979237275891753882557773889517421897339741608496157139846533042329091314759522254506622633914647729362802423425471413966357875027055581739852049674400359020674984180838821039161236997139566692608530280988405348443553384290412811202641107682692360854173747720826201436905535925752669958104899366364957488847921616648829764208315886857079800345840958449726052006645566061193058595974829336760391839777046344095409487313787448889126362166112842265104726891358695660006982693332996230512694940331908440087204078654073045755644303209089554904572299573645814721731692849506892922877893747768092576996305910819049399372213430229000139368089556535244655396366605135296534366386755974122820038454339846443358787647541759514491864369055458775087207212817059976169184968763334713612308742166200126866745535971234775675997456948754167429176157970424166062069322772505719748377682882484131641362601403175440529365202488620692035302561667677428852970667752858819804504708422434438075509704931652814061653166334843570374264388218817951018622516473948045511073921674629952718254581143798643511244533277269528927436984055283082651838033066709845734196861921742100071976392473269730324438508204552622264207235246732428373644039780795927714993647332614068734184698680844103286289661100595185579226649568527514320473459705632453208745600527632594360986515161350292746483697681954342152251124420497006087953425026637124050219327510017456607524629639504733553246777287979883625253936184648315981322802100818547515942398899326233101648334015208884628416204596369539282497147608397613273767890603808129079740643304388729169847465687322947850671481005478085942579654345696225731747120955203449136490968019489314653720830762231495142365898376410105016613491887596922099404716361878183137354629675246164369539471035411423845575876181489568587672339105206316812049759436088052560461648328782407560145690654629265683294214300340392859352374788327032644024751681675701084075011960018663066573315383674063988030176874337875229038167336851462400579049639705214237185715859375580850793643245059600607282265518185647536178594786388746742264258610915309510161876199067784395266631647612782111283370377442650909491778039243369928842625858822757081318312003454505668754081094735367226483573519275859231826950391120146660883656327378271382975060308409006216508657110202047888666581025422826457717758388476710691767741977707269076064489302581921283016242023234175025342967754595794326657350976795948491853457734372389448545885196571898111437425332148332834197174902237350549036810219874029665774457425735868293236292380362907691894695019318859809308951492094223881159963480818241169230682479722606413033904188232815166317152415984952839399826033258401756089353180594916077279814213177415674735481133047145970818821246084752790099097988465934316175894994123606267335232301420779679542576428649105195283883144008685564258389630374231971440649632363849195593054786562649929967737788361253185669403093785927046419690352015032952032415474253207535440989613859474848973046435313616632078890866773725949706036404219897866447372137716842114529118944023581675581000765374549626269989106232046864119676027079645472311904771095326323530504870453277335742073155461259734184263719294361058110483945585436065903512352272847873940679681425847909448601750342456212098790151857809447604815905483862733816298437605252728294654161290616850803464354872530550959212739860558441146310098075765220001440667678776820801534374828942913067611343671235310883114602588133244075058821966815312571042886496841461725848729083708247955117566279870629338676789477165301571358674607851494239834494898491856735677277744188628121280000019733900703976030963080303984178001341708859172185288421756307522466919820468002630075794362020558751641614521430954773012997374070497541678906629408440077275101710641854398345104937743504019723625627613154361491888946526460676593537158439962193459475886878207553503580357815608518963715685143837050479705347524461442696864993895403504046480500518052054136476786239608880384989845773613361791816489716802907125896647902304551520674800493470483020500485400663161942721290503949047018606282857579591556107151664310295691248232004822273223037499516110421932038204893739980620079691185583602450590469063793787862779316565067570482929475111233174385713454570005542137956172216175122211426978920773526939159942229008998791571615708519446486675824225320568965991127514637032059858314009877126295337390710203484808762975939336249528582001902126975693301241574400469502257296184023227455818217354828766405200446575419061968402095498635748286764336365508359872993895305896030024946889618366457661999931920912552753973318673049618136034768685465188293354714248083852881516294090226153070671695432666184034585860480705960723671554654633989318840507505361720776838213721642103003698715986333708194667397784126110824482735199830938974896890771651697106387893925780136857505391301065777834677450170548311886086175659390412572357199511952256061100739932209124554152849401259424515489383168867283893046764396115270801292443413665603297636064202888009435636499299115281160326791191477611456198268521353664234982650309133759925142596365261366061806578563526023088735863732454816493490687791235917781350086999889085907157971382570724382236117792134267733132309669366785111978778113551981929210286241873320719638071203733545829350927657671082569840514668024142073731571117176764536210071327815913705278447795217172094321312941010244470509889435071563616417735473876934004950842095275814382253428261686420086173930703037654294691652820122571050568912786982477676675517769268994972038509183738334064886093778503428092648638600170014189735438366459038758499944786032460583122901227637802815333662317761513331098028219008619643285982089032475764866943398497957917383330348015614665265382804527709220884049417004394509665526102937215892676096928919403464636327527687890529352050835573493992002040677741832149970647042163148153541119045829673228488231931863273641939206216951671788529236929251759401224467429276782188947358847078319326523826954993385812905364424332423039195941907098968751510336796579129016177704026635468949561273718130145993287403693979671799837469865081571990403746667105658067834396722412219490897878716559143834757063340217389676847630554552317338530734945425836477661528358993687019926043154412286995064815685521725097440670263540421173520136910686238661039720298939845848873788859153089585580841451976969635142322095672283088848794111551612222350058301551697336151835533028046949058347241900638639439897658986844132799424738076781961185655864269760248409422515741589851117087042812873619038821887581530515853250419856469944806722082830514971866367305079620222609415294098537182038445442105567440192044116616854374437377856840548586022859962312624867646672578635254809851030300967824735242105130894445185991365171136994835304388447641863038218694753655534079610302030702563053514484703367705612997233462538499058372371891689723411521195962756567190127897025455313415016049254512628547301444648609070297380582662902663282624142687258652181184898930905772303243549016222052126495422547491587699475513920432972826772975644793827647247692901086061201096802311069833220830602736515883992614197523998918830766138073126012546745507453749976624358901467853914311190088827346774641485368364154122878906101172695551992100864686394859380753188838998020076355009799410239814016027085602659223926937179855101140497687693052815738868937454906079688600126071581544849539686454596518435576376147849611449294651367250932310739940561610102226326586118685072270898492274678300990908104422709690994670369291472713455051189405852384466923276952426850958995406803117876986375893737344671512196315522936988595382077942824266284611269178322426321331007138122200636231944692994907193040568762094651407988253598967101959206373342256354690965693874829891223567831444121115340360337161072209603687030678241124043768766558477858026024641744490970698846801990243807045077531226323298304248140860613064290324774010582606708292848805825691042359039175549579080812654146850612016147073320013504398820450783939678950473180296134583710549180258735523841507409308763644060800291120740394309504922887051949079117774471645664058048164870575365921733226562040294698064171170109620417708489611709789743095446760529837314623454043958530921535175828408958716781455744576011349898539170197915956335159991590170071669999560516233160557711460449471276341773309279068956199349631328125620915611763099841037516289628663276874946191912990915641164115892384919746940975773818515118039630826173402713384438876802834612669955243651382325306664451782183830666171315015533651741860740230574871153210959976188535607472446474479535057357025453278095630566420905966117849115877436697886431840815755920597130037955139515371364253977102340294187334172189172648245662124453199556251253587441453486306927085033697157101813546697883453883962657134634974908471775413488549739148987598660332700763811352115354131609719022644920682915831311157749145014323537247186141733550853066226106628447772595887370774351788480104637853626748488182507763931675615910677866376080516121978631171794031495012427104426042686512953391387314431849407129369753172859241691715466026708201143119835028953047040325801338708390072550699796431071130479481628080611463876074345795189281440789385758495482209132342900910675897255821139646507171560226150553836971795718373414727301316086783921348072061210354435353230713610102612991933547422141727466218201792712748483286385198222736839791386190532856983206121943001458995173900291796226833796609553428328008770378872084484935320760233378367775331438065275930953264171428836182054573819925200541485350762100037111341649514952957101679400257911453940434616729368195424411796957567106198343008932936554115982913643765623896894366737000915656439774513910405943567156776356779713102076351416480796226123119639010945857634639367868122352148916475591417397622226976481574101572375628232865077945569064719097505239628536882023141070508260028007522055178763528216248772125133048316434553563156821145172586474642684660134272101610268878239368569444475884444341316013700683935077133534418296337612723487303861767887218295895308941944164398958573564836847628922829603491618074463217977112942609860743494722375193656515041275874326733435292797612703303908466595416236866140732175864797876132002799534650194598428100191169030862667652135173922865793361579358932930655479817228647758331729744626775364913027734109701908796260405463598901599273647143720200835220116213019001232301357346363397878816640176670333867291104147439215364954082048466525255453908442819465812310630620111629055139617256724804200206242394042940810653270727988286454432437434335391875489876847047389648634241550499612159109158139736012137351925921244626727061464764725067955899782880018011074399670793061890154353245089396074583836255130047352568362654541922334948954294977574627060371369604769988496946872541737553836380390079573631448688005538256972934845989960425023738763859279909536370249389912602309127546072188659007287828715802201265465094171957400957445048403054304611285975588329007015602415584748069433800226519108317094102884939650395389948913670938011130194057842547759760445227986961388196972302211846445793258530424727395788010031525182391474726056323831471375529162208758684331756732058579062277879404845365264234772847913336970790998164705212725542984918852744039113201509343757786775278850384326919496619052775780777583186890092347140221154584365905823438821912033607718456900909222984150426823558670161472757385880506923624867679708021144473359203276217233101499282606251772917822461103588815511498996776334659938747796004248426872079638226925638349329377190049589222901931411795191108813673871191634463800629823525513264121796977926742167775048614442991835305211008205584780664728813807401174323370616607666762501509472629433409389312107772274095581412702912269786947294133204341822546883504695548447228126781471184922292296866196303781007111429600486787510032425770823227681034545193730743146178826734721771614613421772835995397169836729789492049388957796789664086784988771695157052843186870694768649916206214403461979599152211639801851784409180316059652397132096599542469093631250065925916273708397959961257119348127470959997513923759129638583775360583293536974117298372431526689289848273030585586993948280407117979252236090132731841176523933679408908392499211868324222038968981372832575485646957811578168427558235630808853415633812495540584934813306028239953954215094713613847880422408664156650103954203789721955646681522958620316998585673828718510703134591758100335049081883758859547067369430811902836364665948522032228705056791125596696282464571866042396204230101597346026097985141304933062117989796063391191739570498291714155964025867037004878463493926717100080214158950334654603088002840972105727136283009448844304223570700033217316324660666655508436591781104658047351293002148958580477798318777591888259074954199520982215537285429212016183825064564331294747474100810971895704062137359981972382501027668540168772896241796574852217848473466718268434671652839628367886461711809741341591874198336765986651603271784218872822021383183067871248229264356188411968883693046162441932874556897861369609217276023314609843234675432117161601688691821697191937107748065040833391573462999010048011134094679820034170852952714345457717546889873501635686175547482335137341162744327262941981633932424618088046252025555102463271923531686734048266992002355676963222563211899802382895343950348432338478059269270630475580202707301597159462844531670603475038208814728268337011470519978358485890846072806558916514522763767422101969519600884796389095323857196508859370759989828195250932469911466317708561039969845918816004294044533851475626378447994774369603263795350590628050191764991561836533124559740267259103788133011429420522816441985017810106593561423698423440975786927429774768637551608856286663161135275163553671427124672090010397495299497296885007851358339167479088029684362182919074199706628433438745777460385901115520985634209052028057341344097522934662748225070684387894290142834349235328642066449287054561634835629018758168126062528990721082060461935891269696045593305208187603945850092605439128794414864648448462732023098408240133618504415056624271940017574279984575877501019993419224786413103978344705333159165686875414527326733512018265195730448987372266586540871393177019825824105098167958989642259579031109587097983796411483596241478371496280109957351591960031854690227534145157355477575358546525468326720953441388531201639553198330253704160155934982294772633227938104306501195747326317753876509048374773360451026570717563126456579506916142852857097400422258633860389390718812398965925614683986296084932911702349598758479305062319755156964678209816289016812326142400899164935493236208151343123914677509077783763649748835982838623339671826432597170380553176403452029198803417448911862227436247347740207617377960625527742354184582621745104896773995663241878392752502455847429352697519724722808769199451219370230017592903669530747564862355247771690173661846128948003420656221236185862571375729723843991133120114037499068974422926517651002386461562844613596070264367216157571945440312174447443199299949282963208800418365786526643125932365573828587525360283345050797080368573750399688480427186646261630363863138924604629406785648366571092457305912744119579484545690023795792048973377841368397498127025696674771107522179437157581595793090391028829350973953878806770184338469113258161682343529972198229232612312517329509826412949070097588219821183341496539533202218703444212523250319766631072674027229110530398135489357841743259710621304155087991965202901553371122610324403721075537316445554881858911328765375107629263765508944858087024250232789444208456520403913462341625919321163071023844061617993224920639640001385341422417046476736463495887306923426352484074609864848936981368763549247685469404401790959129467213114039497118376697228259357187529864874516820347582895521325706343119660040778391032514620761264851542442189523839557568123289562860524252619147533546246120087058993622306839296013809931622614078583752203528172138436268197826540670870995542472969094132419402547163140883455390112660420231121126952629630209009721697919821332696749739739340219709970756077357052182023648298128532516464117591496011750554046252296807481618382398167105527882913860216416399719314314749950436720957884834022940698574445535784271685244725918936685411579477058583807890221183624665802827060078315422618613172573821113360150071406185557368679914879007416964388934402678186722718274571442723548617204390126130672523875922814900820966015705581709245360590095773076735556910960006367314329656074444929326041669734059432963991900397846610622189100470766248810304366179362802040556464695167050777560516232486843430098180240670387491371339509242397345256239470093414386055478549287681415346000666348306369604933781966292302351587658884314109399452133826688936903012841524250340444205293914827184154982862790156051832555144295051873592957764234450670723527755349377122374671297756954346100234257491647451748112033815196229445763757962822033786420748423374091505818108395863108856122807350360378483788799791814461857721283489111569595280569580197585619556257183074603754273288054751030355968841746804924267246563210906187325625210999840252584710573388759734281601606481513300622075736182769437084015266662249948221839805438504640033295154745083783293558983931506042794701314598135600771118771406738619155268875766110269888573783252716426920236016969912988118121190211875866591082611939829019980541596644220641201222449476808281329716370835231084315566075424680647268504089717657459217435633204778029639160238005395133457821956857350360485468605287495282757919357041897528365738494175092189401634719923171172534211177199357689381281118890499821416052027033459619748519502929051427098986359311576838533492545500109982682967439076726772650633665251564113799396344450958763222179293459457885496996165125071979473220498538773437803260963112577374164942839715850868792087186718170362583688019756326251775456437135836235327865337748604543573640259799635285808147200695311846454545486076328210452162321064850224363340295921390300213102955834663395447225870022890497554075664709545823325748172846510898562991005657902606935400050955524583813909549915755418313129483976129631804437086030661095698644372810951124606989851278631540131457472183663882812605061441521697724370734725909338898055665725778996639837566110662291511080181002815186041243878827686366990786094055878942408627570284938771848849457161844824906544184827187495461168427612891990874210569899782283152086342934650516950490411310581455146330663053833020960046056308050597599891210066724002542321170489727646408558667290311781960925174789706465782351099003663784890665668370107542523436385866363006709656120338058223287852099971155760849897441868321050776331546590847878408895562328951318820705022642019199911120961480683640596842307553921921449650703700055905570367322483107459044152665405838990596904625016442916123361074203341574660845171116377558547522187742000340664142519843221467306068022869458279649115394597848928845710476036247192052391279745807094598149223383498496938845804704544402812560797570796694439711344548270845758838868370807505689954993976740099292910989984500449274491675910612159000073660582287703786532571596088613037888607172053482818634842463695518821171673263784848086476820151914884003097606103258563780220937596156523326861784892151505698179619149016276614454333763673871395601187394447252917762180151228959019755736569319940308991203618174557378616484396798556193009780585184729405631522261745388014828515223558501821517315996292048246745609993784204441320090547265086726381540183364257544215584848032888845174672288046559591136792572220542393548780211465092170250163486719704110108231052444210772628920313320927719122436182294459582739324926476410159298095289774483337391667530700099724447578895810857829102465540107793953721668113928726421670079464748595840454992752526977422714241045393474468551986377121539507375994437263279552828170432596132084546090706347251646386017674848187179374113975973752795912318089679832483342569458028493292720959629584165742235415796439634241613804380100971243969785616380894885439012620411521805576958335830246321981444250330542390438570402050165244985777241023649965236955558881976601712063417031469483590959684968711069337717940842615737032300485565744803492400419608515802428101017572427605406361500676970770973244485978724384569327206994013942289353455844024787860113282490185368468298380067913191653618099492049336793971952345200284047078612973056669495234194356512612968176568473038965960790225784453450097629579986321907522347923237515048237538637702081167611315604949834155639519108385798191114602223925862483336559500754495080053684947056063215055491142455208680756480292244493802638617458640658408885291486365998729013084603975376860032986740389275036654042575897867037398076437642413515020053273538356038652399800688779324847894037314932501613864957797853049093763718737427976646143548729562842200958158465873797032244088643227938775520557058884335311240878875673669261791421418445440168449558353082301095393249488160852986971562887014020079075147852566517417355046366013236731049377090087550632733171699729259947373918892342495490914055015315512268726580696415518517743344294610548444612791813952491987519271301021686612406308862627119425300921620185180630001093117136066553901566267400565038160879521326016452012082601402024536467852204397186526563513646080588029459728430854296634796204797775626549585910089179593473860909121438240635739594713097771358109859687746872612949678593625619187863948172515725274261085367754788073231361959036714819278115751049650165132823180498436272006495648284177876721121531577186572129110869774852212676773813158465604448776121263607209826971881974350960776506722485538636855820230223971404856304139392212013780131382574928504155671086662337679769817621548244961052672203983262754505169171773206918257006383911615618614669085193892413735489838250976327527850073081217988163190774618112362908500280526428434420077950749795854783508300466768451013554428343879479250564640932596452187244390113010735418660723048311550218526380024563995798234501629918409553356031957785002327398703185384550904402575097190651950216086689202945418307888532607734732457226966833380816864334857729625619743783915429920002724319638260134685479925040394068072706217044694241302451352581020358262267442126483605270515086201800347572456962643090453821803754007211355279895213007544348938521756181167849472093056982539114764830309084497567447939440371395942972280328461588521039664887077746687212375959092248389447981610627694183843036540088726390467244601007564336717322448090501643954749474811404131533561815356675263250277230799852965305030226287617467721053797885203295245272311938953584421604190334544804450509885671931007901359804886361019714783971213956237234974944923266138467067196577279189791595616746550674852123935892111758450355415522401307052638353850439880487171203035931076691864113147247415393318881104401056278816749251781129161641849670335584385597124171216454123278912288658873931548924972916845922248965369597384844049654965383292366451533056310893914843058266309456059710840339352281145125318026681380485978042298478972760849053996837791244330019853486425007024630201672357372914302543561642616683724307692057049165187210731849397918296487860551588730539785906170820532654120468446833089237141972627041710524569120421887080421212785693342310054235075475392288410222434220604985829858609919899092963990742141484962679982230514937047046294016141302484709054924846889302286669923806441059749109420963965195401845691592903231795126931096201882735116523627506114950796641418607737047197670865384592738752827880155802847332559715146679336920864312342819562984077745155828247630358107659608161718087955671970122634685912007564871865682177282912184410044209643221896295511788671508910068857069544899872516476177384933672087131502666028934076983544896395413147108875673902667402274766329549709854778072715864125992876001030276043046104687581134588488418670749278570999604515168810530300294164284404389837475739926413140848313426994595294953416060876511391653886120545425070598654687291582079658498417919783462962012667382536541921766474815195030172535549722446308849069880283181554794468579456253309663031304591083415337633610922429079866774108620808096033853321198064500484229877741594871634311061506515710021340015611379573386886637821921858842142466866047844647212613446907731049429664765990846407822991561310795364940857373817424246547688107566518626581749615941209193579987445897072666510937741734630902994045506595992806725020368927656125253862171044312411408238634930458717439191822886633701149229343858903038428178702280056837221226078319979472136444502315346586174006142442076097721353513315788807859133142657035568210728784219394409093109320810762920651561732311604253801187136812434157453906550597932162232090208099748960628628466672407428843198012314011515527947701617840741120214768023710013702312116061143752717239963450935404330018469692580090419683016671091312538641151399889612294204073683223160698031659252083710612999957554136341227077586650712364761042832780557117373476614534689510497182713744478212455483922916468624860220990459558778723812500074303106400319684902046917970741176803925181680474769625652231666583965873783734730002485045719941221004534486322486066862246973289002972623596375277147580981774546496134644499978694206632110818885903069216973315511204501264022103035007929281803246793900031963519834618985775963689606834536531550877909184813931252903584279326820679371757471415156712716006985273898619168932987723737643137396944857908567335725320572775259611900493558238746507246652176693848792982428122826878042115920349150233199963650464312423250016747333148175894505120989655289943227785161193277535996326118553020517485675337977889407411136454591792169338480780336895446049587956615866195851566355273742994951170671325820870411667474006928034332881979915581400384340375969183087185153030859381791232706461403677788580513123958528188587045163763146866929058114017621918731925678034570568163102771250715332793326883221104987276103769081886401351568023344540906744526635763958118831627838623256281528754662093664225260291833123842118375499043051091731405348925811015276664729929369656226968966135715210462183763783027749556848022793160819513783503104462425947621904396422755197922549542557469421016346075716983704432252905385462152044470538101871101666464789300244269701160682637221858837647509380188333575128978248965174727168994539659319714660318010313273995902464365159163870818411679911935471272024350908922134937404249163523264458747315050084195368540270036810680788280406006692364517607721373841906429543466909844949856028974921322188296178499465367118074009832017347540500971645145897783243460969911401336191772568921613709124478977587378293853941909485122878580429545324725824382333670050411669574642719550682383611675244432610469887540281962870430019533412675419301957840854537057943814158201453514082926674145867381141820687895952396113404237005938745650683494770253306321781842140115472693035419430490056403049454940496862072854454787711285922837175697479254099450413380592013047492017211890153557153628467806649436981499801779643895639702734316641040089855216351222103574222789000910667506207563125349808450534313295066896704996831381010766892153421740176424629490845052818033091931489710973266269247306536570005896513260666369056993620159469355925134570996044595343819187987991289280691125096522932465923555566182289049802026817152819614894598141246826801033043327478803029313428948276812226545576149177345091243188925640702360679820949076415907815701774686863804974548454564329235424898961711403122998359920043671204812694391362297842272845322766050126997620763435357488106919376913282199650286329406270397014729514582344904546884924777440779936059424029117888111380400970175684838276062899305609559984623452839033707995702219199724825440242723936772815910342567234868586197770408625034182168981129127678746365929259746666594076306585639701678868081478395473947077847418897587808617539169296803057627231207295340398111691937288252227878128637549738027868343446416244142420383571172714106942640748632582331371559449936218751298624761735356950911260522408674790542834377354365433968469110527880639666505623518621546318264360847587849086395216878299675524241867798487753439079488106228206012368576333414492124809261946281152157627255213154353814676371213282527954734197860853851723997875215018673587375895917256644725200787010918886896121295933437129564048727586472060540639084372052773346668517517958601669483362007892884376065825375251222676343756854221016452467663104405765323520117394763068838221600616744769694107747302312814804776659515070237291720209886891013305354495545204878546876137389108871125189031809005620012156129450330477303145268030597679639881672720210258613890749138416569846777848205524233060206073846497948729561481225536340612672522212608866783563156507567774603350783146519753451967543470593569403694852074466688960346221696775882780291433001121123956931043775672077735552325280505375402071431835928788769325212161445059392297215904641411349377798098633376162707642418606147612022176534542145556003083572827722401204931276909468101144861283945986831162279196980070225667645156826731010107623649721712041674240595621355393178306409202266709878187407566387079514670484855401830381549122395716779940182400439272980177473293493996091741061657498499174537473434646099155179078468285060061201882517804891701695675433275086616359501140731059562652986463603844295273626424720919339383938277463421263575441057634058584368337365449372090950054505833299484060041475244131777993027613381874607740717564774653595694486308972088390345230753022659130729806411025508962841620076927482247578975102617348767284991792858812283734770037947713130520224628065760318526316234657891668396645322954612019267604350130203759854031441946394397480459173787131871776442454838206340822945106904547474777448707869258731262249938443300677666959025067197746960471398241019555427748106614379256948949047190088074582624717761762434883238819460394089600625933388739867754413780111419956882789279390910615802080223351018056386362392448912956173696020333048594917139211537076902744702143913393897859628676188388427708393166502951727041654314780434726663171951375989761945335291166924703145088848379333563319489800340706263438702892965730133759727482077269778549815964482280542636418324354899992888100022774194452940742336610583147302088470270754027722917917764597249212935030444517079891810999515647772445543476310845325493933751171143442305765212777948996408127508381944658417757656616964397081238261489384179762915562002433154545621058742109732855371719559815379876911871943991903764064093234012938109794338036621816342057774344866042409285230304583089810560001865385936250510878489124909396639044137614351235420068430534245814716906249102766640736905033631807131106028024558287149362114101703525410343954108421609410932884000527760688989478640246689000425203543836879120011104256630474835108533053461725035150902586811894985323349309976609628042124184681194270913830585937460934054891046175218308706897328269988282165405204039812416290445449719004072084285796493355319921407716477163639529839531154873589015409054546070808006529330459744014519326448152093763170198152904710293613673739893415686500765345612823941445288775999657414382639181523399975090561514036787575357878809511634920232131573878662316078181767983148323480417505182393486703287624574133628071989805384016069281338575393995744234689784621467828310448097176620956225815894547649044183024892788671762236302131134964952214142459259421047493875623227301795404631415044584706131308407542005040510357259881804497859005185622199077863308977524546896724108678343285871746914063851785765678776667303295565323170125570947478061344010028449126197484167780268262879360667416496055687038255788563794929395165770295147417414058747817796657992258917573992983585988638870304158815209342541292578047686679472859475652707582311036660422446360634616542254391329941743745445809414587073330837835930171380559447091947007557600556986753343992352869699248877327204628643678079630410009530262656822902801641410581528961565234080119988087978756222502568178170958447462484759562941143129700032010320370680286178332761963908950400135943057782365536510598672110112983082971543551881814912989469879170942660359965552581878783482641575240185570069996868410893073423238839482117496563018270281138907046547276192563560005013300764954509610646652648003358606972880437870349702053848249872953964597274124776939338054285253996762732707820981090200465942135261190657797842275178958813931959038995635517864551196243929892028418003334312409110324227165311917390661632294670051277385002408167329689475841764381405128371456403109081629760931792731139178119075794217534317787286480753624153089855756195884896339067885771058386972628727840521421971424194333062327571765581520744155931422381336614606014924215288660187459298842019837381759653936773999229264492146832156570551155904835933376502550980777965588652222040805596598705645027822116377535281422619913867178330672114454366211645024569535662721529465784585582680176385283128686731734689460841082601997243605712612793404900862965227493244710264373910783215044763771692027212784501465498819429996469909008597419324483265488848829411185825655325844358746267383796225593922860065111388953433252402270997636032128934334993557002727996830514249534979070863328922732504809368769622559005833233011494001724269691776333922715789760930958349682667315241212246104277994609904856204539858362790245836439693380595258628699783902756992424157079962148806965836099699589918905445130928945506591024794962763574678236335757554724671679210658161831217014930147381869929985151907222704666714395827783845753146615395809155062345700362020468113051457628960887177470365127266564752131758230621660549516504447971195223316582944582839830026685845725833349194551030546938281800619887701262289405243028769754294414766955613822881395445079009294448772304015735016184432533944641144342754883098339239358157742984411276947209531450384250443644622688988277218282837748462110345836201296405032695174396862207015057229404854391701340034358660004457011137724651987010129324319125050305560763569137959860727925754090696590727150305292990640433951652679368393865947038976231584744735183266674233348956666341308788199631010908894220029915872000744735824814421706245215793941116214038712432140692896749732241061390987656547241517436419388428872838523417017939486287443278205571396253160111526672488119113672838111339801246636878514588965355058031802376929989651831762654360610487505736697110303133330282411917497953660654722840305741377897574400048961235071405795603414628546522733162991553629679595617772664034133945781266262737499616601548468441438364665535207580453650868380627068821730386675596415120145033008136548054736190995945592280823113381541454920660467587264691825130127595799538138213884463189716478628833538045980961195528959177143959337046361404827546634145644360670650609417755200920760711523908464488711984568094629158163171410688778095910835953667619365555122286922226452206759334037285079654202029344682027451842217796850541309794904853211687685855699785387156609139834363652126915808445614572525130888715952608440041517776825586915995552637684633590571862874137084301618764208961365317187827829201963316180907289834601838934743171322930091657972579080009472177344122410131826560914461444631360376522030127521721747364192835844545946466455221149929410942225298202698524891900533869720514958531986058595588085171468388990779231894727628172224994229684897709033895489521174873845303364985967273186502377018128387392715365219738574579952131334638817506122075684992116497021390697634960153531383556190553910775838361834116181552871856605117969333472237095562678075871262647079087257097624072914782959707038559521319695765892301696304310883058827776347261935524396457405800959784841405177663572193559781035861106072656976250646101202963990222380381672573958706028137042334025058732327850524207036925991119443218952813589668409266620635207889028375088392931548195810035602573837927252467610254893035917885704267043092495461021365274692808305116073831234880253988151886538092774778426060571340168188637717555731393477512902298761348748246923176953918397703189067601496563245503833582824848020600369621700181054157427713935147670911534626254346833515429061365695096840692371426030402050223806915305388316023535489276460220467663582380360918492541910461810863629875125880613543815420886009647164691465410582880754104420889115841965385252957689113742163882505388434098072033974926586409953798934737364440774358039665603174232368435905591767802000425684498168985937963515118279774367467160417913563673400546212571989517000798914176622402347370705511068242776473664570664034115493842174725569512377968124547972410572037482074563056312722897862106793034193842825797233849728439434981821333875026509078669893804399427280058972769875189382689482487729541621150481603795034379082053724354444664798382862908421740615512530953028066490501794727802717354751551385635878311459013810607438073895334557644294684056062606681112772003500968657345557733187820505159900109896612789824276427072733537768312970631631044975624787538079582126452509529692803434887933290796990386243572709707789463063793722006661765925333005161950456313237315425971656272172200800595232042164533545182238303306517243338103383522109189068202716460294488114316466545662277080061311995903630789674022542262338290320877000093707163886265940872063356438676568793288677968165588954810174990968737497381967442764429100784282974767927825919929012562625468083876783443171441917139687732521590719765912726335275410425978875229113967532823169065722707718264712460977882315474252757256235571240467412093410096531172815062011638140829966889538078921452418445625188355009853617925410118685070703349159954036224704222408973009698169799366334672621965945311622671476537452525718341307024942474053092158975429601778550547503104978471733937911503962325968142867067933431040765761467970580386746348806602666741972946046436889455612024031211976334526561181248643840530426945948303928660110760793154666906884918118099043472539960164076338592875721082343884852754532130243925585353704439866903359189704740481831006951889421020474789510006077049069735218852811984285921622870227815398123230938419050751537105127886351797907195252998298271073760006906670766076669914796028828615443188893720119529242410840525634828853456137846426719839224111453774481358712292445986913166083988067924836354407938048807794645125874581948153356808125049605568333787972006800866285144438700406232399605301574613369084407784096977720883498483920514159087191441094093307555447944440132379534855825954367404380114667769594492914212045764954286623327245186465281632043082618653057282624149161614033739807403777277277634898277535619087594972808821945540998552639995907781237572663674131371067817084005617239471588059897840612664594864652424870318921734284685678529531563103103375158827650913791542842658903475062134540687936866483238528414466723125274492722331867823619410932963678029528637464502696333848744648808216056161286191078115876976173124763982606574580431349964704242157455902688977956545166344794153800166314477393499741576135328252011852669125187284220323276097907408686039274617390303501079436696033466856535348743316102820000444729290491934564263110302917807572528299331960602223223002149326411833632856125557984569249217301842660608142337783926691739849813426399037273836185624290898728408284019026120406719412683642686030187406388688648309204483408342306965744050756518405498989869352651419935631959841671892959264946490525395147241507789257935650125266563730102193823923444824492681950519356389302633780848759309433582935235168287359070197925245204470703229117079324805995248904489634144526288647977131151732794902147228176454830447225931021061727713306329541731185084839778873228116151683761923513388761275920340376331087678859136391248523878120811706590953223852516995486216178131114628513064380256449433844704179215698870574045164144503844951898745729263291265221589194008351814542307321427247846937013377223287299737637364593424244080975767403314487455738190967009152368929430328299529953437232377959712309812762093742838942498647309718359446202561478744709437870903406099601516602801214675054727800941709954010725214985321831020070124839170589264293772519519028728977284953380507426193820198568976069765545979868856830541949967654464837223737232461346074766798564557070073920242198423804705541982967689112953754404118228924219567398948776002929942690585632582687708966107024848414079432139330641072937486865973223797919937214448963095371925929519030859217074576786546921696954848680842156867420053663260395683612701943947677248440497057441569272805576997767264168560115233448787365154122621546575641039104348196736593896526029094022933221076094681878384529631770418744821939595713202796364403425256982266055631528476685523486104453521769266233648797055140794195940768315641938732648127304653871091392945910984034977086600823248801583294593501849273856309129787199800988595117690480928951218318105100741029178721068354916386261446339821909904624895466155912776655335314229604519840452357363810485256684632979284639529069866699488797668797298016268482790219223024188159726908973966915620380952303542001143823223061120458263249250451918563101820785054182928253206317051330751164515491537059654814899633882364409093902029424083550236009686581941373356742448403678370031178299225925898958250721978341026628179806013240238238280220859626486266383174519058712289367706269538184580328308179351677152283451234282456613060181609378047014684766953184517068286698020534612527602983602866469667682272592090767447341018457652707944546983037412284976073447777710291720877605009632620935365888856474901631734142673247018364819794597064054233370414750236652582038622818884468932097117581207543924712826891444925778512993153090453646773501304525836993459587475592540867804352289785443968586431182470298783535523563007442234676065601954103497405945359946908964907271967360707371534989050759501880549739733354325830458077247542668712780095865107982912013208720846197233966990806885688577357482162287993742910008236807185461334386891027233196141636495959782445422091351335430956976863501426668702737126301860049308578391821594454504656872747203779752309421970369573885934626249020618403900336712798586079413237714480523622043815262357373094645546060482480570072778257883504215425150372496920011660363126603945000078596556585962315172709853898071293304587077396752769142838083609879695444663298308714103304004847469181965025000319600871466904129306314242934573645673813999373866371511610108754908205629988947177204695389172788500832541500662291808379552928319342806704898385460799335392765619494602151109770365052437206363687705206012876933987490634345988360263424234932335164947386997532947191177581299974421051588325565620751075438148857971395792576503913169824521640309449511848614145888537961100461193269916366619231507376321513522970468975574589880598495457496498031645929400286276023678762394816758935648130878829183132634585833151950393111542068791614056960695207668549267346686651522279254044303530520185039316423947952034883766604262160850387781038767943826222107570573138951797383413717314255321303906426924241881583847397416356165841749221679461308132648109124073465125737387489452796356790767391322375159183373725036420599494252122270511278820221367144534944087378464706793015129603982397728784736679952138360189747127177299308440127245896586445716739796040776198446428098630197426403142368801977818591909774609451345164988329853998578313013584591772227175403823301539549052723283935110486237070203456573185984518560761104014631179340680606263568363346895714041011476244624105754365793183111680246450603986526679330207464739769490496489554290119568082987637111306589316392633565496412275090573854825780279730908276666838727463284771082671389412284777350817055327303442995822825552179526388639971621352734969431013794066630636653610849590340418168192895356318485173751328435696145569289903403759418862126032100019737731835042548777528760653435646488905651264331873755837631868185991455221444110024940538521433292595130767737000788688610263809144162532086331896367632569890320134802223154470837782249164880185729996663062641313732867375992949542349800021534891973879811371966140761369640844872730832176440876609858918837190183365400170929257738419781556784387130402845268007807726897199674208933532254897204738307610272280540359688287304520986453766668570687456067169050843309065262808025567844022484629619480196230291055850397422164557675954848200712421665066749567740396194453109881986452747720655421971056318909133109018088705646531751910639434398513986559414190983226271799722760778443867289435432939491539823132441163572441944607091026433734838331806886779051784528641147677552655256270839454693146160529363906390347287747920514151899990911573962888479400329667585310345889990680324397866653679566856266913352022238159533074678276994717281886567045209585042587917921691439601757101249901274246012628718767293635088129741410769515432628784282711649513799548307726801978426725381526708207194128735047621818881324163374127237112944197288972305222455950990339084898967931081453754049766367327492655473785670842355719590051870362571273719696893317975876411714678339931823376299157880317068528692846937848649978604168479490339404258107241061489206941088302859884714754036071759249793837887123542060571576950304524849499333058146714545868380705019977327404370654030745032634617424327170952108111746538586052393539919853799991298397584452454620772474171582615380202256451651019976699847317426765770024442057870507646413857089012088907223079262949923108776953087740331127326576131662643204743974405704606360004140273506104621678227012208866632369636311550709579077318174835716931991809285666772825200678235696209106401638380564879292398645441872858839984528066792676470867018773173729250337643549485018202225619753585564093190654444283267264558082779867392502695407862790553067247921000378841470564668803265698760244292709458399194973005791902346791415229653181978719648162002896474709874756982163488976212116976072928191545949706036974592517811976718988790477989108538851650171066703686979875704958067049618822495135668716431534328933887725087059142060267160723749090395583003736556322521071067962957370003307595467571771271174763041434333304385310765618506181956564241497470783668838532332867028861091293757896737902736624473738118277717983351263423828563068177600996580012635254640891887833087084308984865656849291400871829576182894141882183086588093870073011492244313820036646548893756203271169800701772893123991543087010184955637603729526134020752026263886451601888567739575510191886646674982093930765144195345493482152727734835961346893239326263232218711166739859570579711824576506762409357595019879824661578841027846681563541161770447232735386270544904906514750416944275170489813023386698346842891187658828714923345630225551203575525337337449234578968745037036864774351095231869880676035801665724127443581394146402821451795989909632688463877673748802574355434178622327492116816446532033176407538290311883238819897960735782477197808256954915066805947295401638020709072430842423584876464611840146300337737974056065484985943460972147762368969712603789475377495144596709539963665823700108108767350470345761155300471795404932313424641307989911598438706935577451181678563081077056049891598340848184729468220965142562984554042261037016903233578345319516071622361138691972534347997654270793702155369372194510113611751132090054082867397482302763029996836076283559056605252082694204613269129622986448446018875764832320300890905847530128692818363592646654636966012191525560555339497449362506172884168945576692382586883515416202228087586800562209077886553519836346553767723418795792056930308212476051061323797027705110897350886211671129253050320066360946801925266341521938962524104994948876787415684213921145612441089581379293999740250004943523072899451036497780847843487369176689492737442952925815255442830448135997134798571589401182097364542065036514318569170346614576237596013800134700883840968398382339046290880283231807430285198502302133255723658169385156451140397790022002593341044088091482829190868482613499501503068120696352021849168838342476715832783310034985967311208770977758737876731814668159165012229674881798316397063427211742626830326711212394783633553847875159176100579890716842975763184995049596628913063141156067849642957936916584759646780077786015594007742275656225818300675178018261493331597740446487224898883151338462811348563747372190421492363852423318398155757019863949773761352810551092652847584264003944931837327637510097062729278281824784494468911475695306870774831800056262880857898618754402600821414414835917662947008009729604373808051059321676474559909813697089375131165909285509820419145976320244206750185558377488988647683840395309593255915362888294984254725240062869750278281320543498313554102982681884153925889813983824022362842119179250453247580005517803277689782789014332365123212725633368614694425582546919181261721351213647543645230047674720849839935615479789235963791081627353356971712473137074996556872868141156964686847963269109651278375965343899034092799258225015139187753439106606221309532563635023102066349512554957866786743648163063856854598221860061034222698749975355915638806532683854773425661940746818370597731542704021944536950136516501679225227791674251807677227873418896953166978146565845413957156356716955520019418224002146995729157069372645072762668774720432120569573943163031486356437279376115746770409111432943739089103801563819178633374266441303633718152247070070466514739117540254949022014826215061772378594676897803436569191090094899182635698215906003980969521667864050345125993451444412468083929784152261135774576991817498422552263947409844218898291260357224608602617003460319143275436735393478898923664112622263111028769108004449670921328561060051022735095978801818668285650902767879688878554170205674458229118139239478076527604732665166912878299807680267130073950675303640211509016579205495357143858717668915747118808842265073675796138882830135027303383013162978873821613573593179450297646227922238440593427160921134993657889055840150024050548134331370996225282871274116412491796206330326649008221033259737460377487172594367341901804859200825697120595765987991301623349257719898704540831544447494993065545340704842914956661848358341391021813237167087989562087818186143881298349015377881719823218893859774797876101682798837540294667780710986831523994667405489790327234405081536221202578972228003798369571987635578365693747041537374440541068836270959604207991626988305298966784433447552454268576918229761623886148515235265134951998661002253122507005003238318102293367164440164728117845797686920796200790403132464907263120486367066036805033235399930028913576320203549005244989522208076548847104973916429301400356326063646282944421533158670050246163997192308354575060848931270402035568258731776539485417149272959003994160445570519559203509217552023275007206245717003220237102949150641960445287579884556481364426208546143017063987748259512243300361281870144817370042493752470488342703182296141662709878561107031953403036583773648197755572066764711666158784736456477024277642893113386695630164098426279617429959720988840910799835645958571412025735723251275009996017256270605338892943086393532707751131719832003287151481546221371019834792660665583294055850215196895244373224593593979203424169381414069271670904464419285782875289643736058953847165319732012676412231649099632019827718801199352918710178472281238406445632352993439126028268967349026374270254370780859629868163394608269253870656153352522139245586413227605320434394820335121133498141500625136012133896666887627786351321534047363006072428640249766592160241218174204471569379766508177074089943621083898249551582709648113162548773504049339950321687354335953938241185324450849886723525106754600622067603050026024476922060157010796998245381398801105179026410010002678382832979205213688666047103527558171203669856882765865610784358068071571647979793149538242405189901624657722118876954897973663966781554341869908738642356087330811784239034966696278382005850834527615501075114657355680517109292366084732618628443788990762716574860175812883202740395579920689975423704445464490596272892390921903705514029735162827048468526203275723736549442407533892002446578034958477882728138101581208444883760961217155017463062146479669803679082549082479581663205607851983686215844401930680524956016220553841497257561481303050326963049072284621125502169510780309759591217691253121217262686458909840748649457008911726405957594889491845026605485318479165441513547951183209418518285294826754311366415918096738123803256498491500306617501289746700832969610809623501560112205021866700387656330403600537320564333834090426721885463877665969585698512022428183219445311258249132660631754260064514455138766206694761620408049073770294875687606039129092568000927968048916545835464555716439576477376270728506060470629457027301560018414006194392768998663842968726088426451508343780871933787169564358612490975954038836151343981041933230808250300274054174107493257668511163699267307551419331326093811785513633754625573568809698608109455992932168203747139351597382870556483597603823526085531433303815486259215926209779915645155527077364901648259560084518045973790750491191952942571860380693561681579079447834544160529591463092888958584684018471696512858112513348612994894388748648056243609253132912312808674314963192515432192225336229745827702582152136303114362406365308964797048852348041700338548442740936136373689669576412502751419887514687274060737330125794646928829494417944333586024792310139522405427245660145657324222647797712557943661108243882015047499626425145734800850706003265474325167758410724400744666621627770863271506834172203339023831871349175299319632983474282222314824849214197788596509123325446062779772532895178768318708561305293377741157475308707845994875320677249962106760676664582247784638653434852723545387805876556736869000238649173919019869346200432038785913435871406675834685560250074198925467602668051257112483776138854229555697968991360054172077131492328424836260733497517429488844213223843545773972501980575968888203844922109453722143322792416442006987714902919238933532938226372441922042925016107271071391301676833515853165841284922589755417179506445686692363010193758538424523644520233460743277322698121974140784417186685244093133877679178255666809272978502289649733131953338101096129735288915000908214902151331534294924577885361118853701488687451466414555616531796562068317153431478588736544194984611765139188367670487579512934432081673276651855800260346326836058135062779687002759831166749965505440021461332001002446688283508111325720590195386781665227504706259453355903090172317798849766869455653136294398878219809135399951309486503070712622651807769901828557783441182866000305181689987170216754370668877611915099253292076643199886047619099671296135407806063985520027453644984127461423077873501840140178042663620080600980405873758480520994165569238588132355553192364372712887243851214224805552067503088769980760001715874126203630884372763825461988980876615539004265111295001122331378825793274293415084978535165456758504179215134373255228052731318152290514349417560054494313033629011802273042112247619147146502030947451030283419149461065548749157381687350277982531130736327205894520416940981809090230375617873526196071297954230979483684720799080317474272048009390733563200498140290326983601343039536726838059224338009588506553291156371686590641412812044281954445075040322658808889228284452867880807674239050918665584818445969774944167006252327548732629700932048221011868350601736238405979389765475914977816220626347225466987692483189242389249464227704496494067682383158767098589960862677231471348625056812353815218797093366351026939181352442182002533862387850775540747552950330396604334701007885877530899013920154410739117806319539139494620563951738335762317357027725373523800137201313749846664076861243698440850054243294364135052883729665054763696808566632861210092830442309167799668631760949530705752106633693255997661918563432599322794069606388576912410576129470990779400863123148772772914590355409850128187145496914545147454269801380515179038455196746967695462768726138897637482343662882571302962514655301637597592724179833703954445068017019902875171236953560215093999484483884178913169384361282646509619644875472641582944689649696039364786996841168203725898697288468733855854702630240309314622114494181691014359757470164066453944934336979260060957386847456772754111828560722217928353797352069157837297249049297482147768683812544215890713551167956421020647072156903165272058115842685614676817714295966350198784304243782478904563186681419832670978261033793137180956670484379593320653910332381328848876070785392254321699740102373303970476019367140433033769657814815701937617119088523382511393842485253802174208323291327135937934934296793077269166019330662580852299181977151404585413206741959783708046759062206780469516892132351783052042929277568863964449836200370513801521923278076050743101350557080125994695633446918785382737311501447911915287737586287412559798022544326552989989741808791592374673083122711097686928195924414797847067622222074363849584598198002285186513106567187723863428019829763427477082032945441041444064941931887311496503987961745350575702598928632854069179070194774143356158845624008456712829321849214409983853313120251271578240821091498641693285925413675095446013670508858870819501119866495905788781968614883457103515604495651854829184381632664331604454760889451255521206814174092894189464659381710620396476021372209039962166383192097530450881335187742411475015435050199149819342955294572325062625594483444804207688063710122191026519941165097774369516835430618932635226204047712746406277332172155621393923925064801421651267832556730608886514029204644773355672460933753546081725082139386845684454072769113084886999284778716133019376056155529898628069847919506885529660768421389769944730972601714367047914917175010659178557131539407469867725599603855873283379013174613227982960818850203459371065094765785951572276773865746465314887318288677235086320657216672649298906255978154862714969022827305606829375949424936684920563495115331995893863080368796020154179622748976675374821628876372240867561654857837285981755097780986828131386107872662933599054128254880779986602627602019322170444021811402327326744150129450692632644792175273585435497879104862304530059416459681406255333901239359024674457091773334824432135845294494869468179158833691013651368306853198507424912249074183664901734758110353704011340782462627366280209157295267891613971456052488510967140312406455810102091014389463196483376378081200698188830838548466524488280271936092214103645446077128095779674200940076316079094622577443047723675481625005289447688057160123590486191018071178497902563847676841226097731472145540589311295780364766900804906693665645763426400551110855206702313249547013998880241396426325214503154979125548371060232277123723105683595568750075422629652897173650972555407612711959824646924495056102136811761953617349631752708523648118114090577534904140709824390024569339230910285143916366147625412015472147944049148001267746157221406128102714618248858904033889823825439280301907554292499355181666907923657107329153132689299553156166615478425890588450866868191035566479786633640752026036514906411127887529795098363339968759485167691948753305766781290852609044812866053651059606623506145388926538261460519065628422405576655469384359948753749137273901517971624053948430088031802327859682212315727624258583052883549504737130726177224194431726692318860239279963719772627082488785064571811055466233187487483818395675315628131255119773773296263598611036304046505444449045502407571501262818220788090889598847127054033931880603928072846041867906676021314333026466682615248025248832356150618143290493063207464672110121608575719277870256508556700462160466705576552166131153671141561919109642529832881267745310258499833348321489793383200431508115109794554532475425820396608970910913360038407523137151073840970560609111936635136932649529516178083289160980845018064188405385386962915538443259156040304574328444786084158499916682199596938758047034945973150838489682854231753587415045520014676919008996729088852219482863617235356014574320646581498290733439881253513022273335729013863897616533325209374583832206988522687806019808558746648300709407764527351603156190353037064269745547342362712385226810111562296417717299682932933573235433643800208820769488088292719163230677611415691967731995024153123933366202146868214952706998693576212375439420077312701346267616512850231581279949910605141937804655175174208900576352663965075955518611534707648507570068067597900143562031353716517329065618604764691839449213127844489768269572146199929995108210809984314442028564624840346195145978775724177424279480671367026420382889944228991600383294461720291580016855193333526082563836737046311494832108613429190973264372425260298073157068166914919141034307801191106900405051374023946192953671811810592370309776689784355496198793719399972301104554203212425282994654388489482138806721902738404129014200217012414520985216136106692756355367404343925759005704373536258774130475539481144225048815434405758918490455237038866565633585474026286115160506688712244864919906746905224610481644226849894427907608699513367186106384436295558081316294609449722644171644545899180764397786803493664743951698713746358658924891055081468207057777084863290660198103293356895181975617805647809348667592958195043892297932619111390921619254109669441234885945655922270561211428250726572512087524733939230754444316514374429346330984275810466149917376349783863934279773665542964157059153785383226785972901787874509064232802425777766540301406611315636174473681009449765646690837237123895820797590824308999849563028782647137781231315930765337963981054610871188409639207949338566678036585060370733826141720613513183433234040942746745997891760439489575980004463912747588230852764338486654833228570013334233319611249156558098971729568486091201993363348550605792349644090264420642358239040538953014682831346953907755667184226216564245248103727001868499119339471720611393390738792656030472320368843853757595757302796765137631073564495294229774326273915289463898071308708395581222733080086718295896766573841277235132162155342617536413638310490496845033232289811568692101977858658980275634591813805831857339681980584601146951620108297694348263293682731456335089531407931815536611409266500639985997910626257970389065693271351100872066561842319590302423863424148119938312741516619797363913681512154081986559511137324924620181926107343478180132050894440367849851211316408055481020436829266855561747347949692645994968932738819209086591756355511604536399907736404830360781949277811996249535467025151826230985727807189620428315854826953533101895326641753321473297835617036634343959523734799956235487904454044373998880637281281804121350754584728089241793498942661480186256346641918171969780224508789871455272908351395160650910987164079612795277132238377122659876234040086794121219069407935190317363619183217283326530489651251025879402322245759997839168396821968121305929173542434970701888024133354361666236657002891051499849196201588458886517509184505621628639805380162729415683465171451945687104893692841942625009611235309242806055669480613751393080845945732380613707800986960308171131827362879151481014132514972757556546616654703627727024926920216300374345760292031030804556883738470660763771832705641377710937685604599575687060874391847236684956546165336988668385973670534303393893530930761456518864707402428760922173119356966534545734466596998976909927065651957383614255104507367154045330507962515786643753564245983529697230460504125669134812099397396029162044970607730811880787254784389925240528238078605752078695557361087477127298598363014038986144919840189148721754271418817726843439925550875309662231011054163951494143716039663187322632076829279183737961876609080044347826045244710573423223291624991554061440383022713828249701833114133173282899181917415496792544953734559348546396641309714354793310406843924804452891512372012543484953550576740415582058905283963484747570435284866768245345141969013069532508312159564832110281811558427817702411650600262088478428495232822336106319434095981385198185413814187689739519630314645121179750870448665522733541921221917284186753731364240104970465070358626605993166769560441536610966622518759720063164202665556174854847078374368456715956382016266394172878237471129557995018297922336282195089750024670504897480794313141887823249481675742201118244208714913338668997900873231927727994026248860125371465908782884146275045511400703235436988858220933161946941445152988830649064682834081354815682296159308902317836500220230547539174718775939919089549333877977257276509379720541474057617796904363397961526723070084715973982606478530494879425320891398759250252858489708626760045640976530751473486597241086525166637293866253063718932868170050495643575396266290635421769575083285201602526164654889575776949911847963787818321640808926601109842040392512931369916544282835453048955937755835508920643784598396565259033395047661706219092620581938476552933879214391332706376865271839738649374325672548734936494660465316804964568043250730624218657018419679786831868843524376490528772553839065871379661917552388162279940118100427467006807648423467431147313424719348262959616919775396088186406458395347938250990057296420060875619850840627774867230394841987505709031340394922717937257521060576474323387981768746719826861694304108622444558310697760192239384660521327841128906694396335253852953439906883373900446936351423174548659270287811885505946836095610656612839675958631428604545280698051483489692645429303414547246756134333717566819074392275044868509562087290314438056817863824351636423980616530949289064248042245967016933115694269155667944377642041560843634124492674868267777235930057308717855359061298995771808224892197240239602563735884856863594285843066941506291214130388023006521655328116063665754911621180458643192943272952037158939655254036335983859556707149396561534268847312836216550014374366457641898591425497906710706535897423787543737475914127020391952919216974805840075287959950359780156456768224621333051182121125972757648721704036027764340983759156595835092829124584711743239366199152331761052755364808413249072601909591765677049184991462804595993549796752698830609648778646962733906054037271251562206443134858364992121956400179382204675023442134131771112024514933022577126134627322085147911430421652297283924003904726594254149817105437055277611008771491520699813689022785685658056046116573999719424853434643593287683563049015015432720224605038516402252529052871776556115569548562874954433521693863172831626054636464641102215359570885308802035804864288207417462643452038079853914921277220101140660067275269508446702816236995905077885478566643012118195064520778388661798098774498499842181244901299439232520009298214936494745229390860541198818105400582636285886744708347128761180969142209415847358917726017866341447196069045768691117287487485831818109399035343175608457185612619733225186719118845238291588000282925468559530389012066962580988164746195937522710252292879113532611351636673286501332569232581105570812935768713920272016089524519873653346090776389094587215010377016693501596630281900692685144466951991646197713398160291407395283291003870892038979327498062752074447783239648264104827424469403208420114011787691839724971324450758575262390811204614730484517696750961825711520525291695444428556684886437020374303307427211214357664694273119440309754579851322355446101687102094509746054703349702804789222080724862247852462254667101968057990729597869118714116971761532351380091412242010066514476816950412755935378578350594251016224425198013397658349521067672974210776895761649105774532248323199054397251031108077038406688225121917104367766960697281041666442194517902537547611246076848177107303912823600827393404206070175877294218753181489154239445644116859013356058476290513330462408785472641301130296309774636902818569304364778377221172533156733548509706815904921200156395443348452049679889606750630521853580630427205729633042934967982377576386214311600382310660893519731895627590992890662751347878758383559033139631849892329133239553801997867459643705496672215492299795819907518109115128877961339466665742248912303016355153827959983560507206193267878896326780001432269944994535178342012376015014263471695375055208037562258617842122291419889073895882991466412325564945148785375985830392319468582483163578247825571716747220704723189877591166128488382890591541411866673927331088961360300978547298719635950300086991796636629293458346764326163274849939911620126125749489341486958431452906201767834219537753287441639425955933360923308889523872904873436932610982393137767779185544512778970623965255694368114460495860313811161613528823176495427563771657412193194453573133842025845018251203417828085184629290889083336277182231460265950911795306087723794715025315386929473501645597017377870426177708907151007573744488130995230796988103913568075523637407802585825397102202582788709477831570025522103522751720634678708395948917246062966719610516509181899966677484517323591549310718092195496519983360819370711805473212555689825929251564738079357065569004217262851713993269371347372424078657399230510014259751669788631248184285060664357180427268520923793026728264700148025160774600929151214854288091567587165853902480378543167477187433508850057038289464817150552750649256451722098162264832372503012298387397748792286869252927855024873357021412662690187451046132780163222183790968279886052130455166016641692182348570420626543220187111562394893257824663344007820920979269368316722462569442056937935239221232264457666820965423562337171744390486670621465718805493078235352457295371045785985795668854559179357774247423846735879796310284493457598275362944353377222607351738163970240094641023237433659516879052915331204329450688822243370552832834469860936247126160886928096194668018403612537279296667821881217988713264135445655211857337666874588950585955402387934899898553062234949057295719658659909551151154406379962096843957068141150576831048973391137551870203160382893190916282107475027366996368916359032206567199474415306648666068327160790335235647775761416760427635319064949140914635922173446671997263117339159223875384424508454191322551520527384536013451042503330417705149501885564891965307002173639860569457712384770019506125526122296749317586102408691823805895303688790475153532829698582007496631149471818784088966783909553115975236977099484537267597629488797785116536590462998295708669276821491339605671431369320356070444432051240439219379885567335948158326921572247547019214518531105361508391109946947455882453203828684882449098600536977698559348176926154659232731458878220453874841841551750984456967476064533042961840406397272923372871048364853517454185487825813800021531180053031938966620398305741361299881726366391677748308794021766559490037718444788346497876463745477413036774153002104622813372376727978002050327557160354582912623338912711000862275591949097060439304115943613277819504335695384374278422302390599182751192826788114684667316507245847340555164268299238564170193697197625371462202905936693907617376323732368876651359669125717551765949747603489308060716903820379958284765971754034943121231247028564211145115679790659390157817386478057401965812121873877888027948639230191423802807973652905732846201385296855141199924665735989014593080361413730409392271015227123623846128682741530633415490678301536178998164088299280120446784780174546129399349669026170715421448906772113279958641356315502164588388275354279666196515185451703387151515928435984340421638560345169279260896680221687709657812047300514463600087968129298340726729926958422252178305001980525312266220359360512352324026861308247245808334350147222638822565114360289783548646275601134145045255913756225454749483043852205618017144838922290662317058858922267581260703808212346494202006032511820387156484499605525657432487085862810654107058179280014911266159362701429452387929978632155207239055378481484512819284669491552969099723187743838062796001176834796448666003397471397714358146927232096153424069317680068659941173924594833720168191318772502581230608894515347849467131036530202837374069324177362679567867148029807993611129935278299672271629465097601628670366222624468949069613183096838457648109160848592246675029218338658592191039807599502984877715092797696349479320653124344253392916943746952158337661285467391881574312652114986378572342597179524762163454880763210407919905383290333039791817750855094434604841881610150907381417852106885607138554808777801461117662096104544894242129086921417165825643629753433854068793860557273039287550029431650824664060927497791806402892650359770636001653696298085159844131612369486534582828506500819767726388917918297825947798149580832792598063536078125483478021673992284403201517602152241335216066479304142705798026907194927712579735184630775642596775820918549367743456136744950613041782378297676074523958004249136554481481500385116670050222410413794361056656949216184727295044424882874507180413879726617042165501661487632829707123214720193013647167395094862744185813865206561193974308872006586068181074685532745102236107740204289480560382850639082921837975264247015876464566770403388389109853420590804460766654183059035203673153770110968991954480892364588949052527116102169918469778476275605126582095016136655590701668053022677206520373606095720600413487029613164768478298015190509535821385897121707530458731404283278125434814295750632198909260493087799698446787492808780374449695918885493044446143861775987542816015468419981416997160734183515538036826702712717227276939572371315858508714320647586883464686026891596449771991746794259033321728642957445491989143509852185788313442925399164557552708073774658811334849219100335418244667500487031458324789415693876805112362159292226781105729888232405690433843982432769238421946946904185903636973366507240885566270360981362258990909281174630671468283596366821046366444077600143248767556847779289539728271157568347847282931143205399519414625645598642124248669962006913248063358851853967083632438722425291521774839087570301601664373644565212082934805309396103966079677244796056573706765828971511627532730513657808649414130303885576960886459511506780413882098648370413479996692812717500340857512678381617412791254693699393798630923603425294223658394870531107189856012328229967278500440608417110511508486623316094216635798024362562915217795319684724623212259187146552049975661034835860603529721613126282741420158976434863172813674434297632124440813620995876058909006939495789132836026052374342132294107742247672596238951294506363729359528047520827681409143720504334194758336804493001087770204604243754795838537591578203006596248978987014157140944353169126815986822527371376450590576040063039355433727037382594410744227078757756370723885340158721558296021767414189162606535792020066445855031782837632352588686869978588786431991686984587595663208760766423539876272254025928652602921898572101242537469685912661664216350610224877721558660065292737834677131240985108570966067912666830215341352646865320512913016730171706884924473736171175182976218929036663205246498445686771832769051966635778557820629029758650562521659562566939174773079532330833240580370622162259909172728614115341645121618247886611145753876767212685853254871883652849020081499551283890235230426225491762499233946390097550820828907038297514690200423763406889494233004391992128482295291430913445812363364637380652569483166648229866653824079078097571705017781848867085345066110378229445103966101836422446766914741022133569553872794754807904028783970014277375371969861730340108393095511781686605219583162925427461745628926825080312959451984859238239614568219197060148079750187136651932186599592108547330733823654876815348365587562784347447094452238246673887210402783779776926415203593368553426414269114464418784855562577753603358544117844597222710209004610051586618832974199654389835485428978214228118603978467333544468538591324042110629246788913988518285915231035072659735502795460192878857503377126153567921890566519724061821095722568232020882728253945640529976826442466721116310856431319776781507232251298186977643169213767269036855615979553731385549421124539363415571760170940858050695878462255647202610757327751045881896403758647125666113875357335416315835238449854794163645830467651310268650331998116263331909801011280346615926970306201670632880865249907618380373471709210929403678334584444285769072091906560831149564435501005809105302456519283192443232753054435164446511787052200012027747820202896658938510334079971072639303750346126420031757040113877409276449864686155743531064447456429311666605679362347431116422049748805275733562265758273915059684813943318704477858030359668756024777857701785587591323624502154077982227939235410164992729548557305350225529403899959285573924493150803265570128706511308565979594489479904679993563031925258931376622820968705942676175065457991123340397658575426958377948987572301120519862296783014268021616369167370514091766704283587324908734360867362789130240666390782002242011334578806322085992896234877047590765066746976991694599486823361749535487933148771727959150203736961202406887771437355790969430278081141248611549775338849242341920457832037128722871726365238190696297752017975344914468335186599073881316030236080277637447316770850675797667971690126302982497190987687580116893207533483793965155028073865125541502858856511997897921374143254944901411811570100620354025055289902370798010174343956419376440951653806456696867245132659882619141097802353781906298430952973854821004113622853288157716333780793759550005453896175062637628504831827579207443693307127221244765985937884744026308276135006625256551668911209538469920817790824406810162831237432972316319023439225353673970177345031952892161363034416256108267754551407566116839516007082120398712107567855946200748399509816239816871333265579588002874234137034148861878277410895825426822504116768310815639859635180394158237472643468732158160477717251932809137732313273440785007832037696608065658503114857522684590430606917143614400050330765243013407712744087296134198059487148562643535692647767852278564609263776106624322378871796471607194109594306432717039829633291886457142541498246450092876223508471332067713369239168091757482142475678485292123251178330204251400926888774876801995556092559024887019003117606133258858327216409026802008452002071037159238672881596709081041502972871193677993159896216636123119588792405672337789103448989131518825134437432252877757105936766871237576105274811210867765124674678452320858248047675521400810306424658019176876635686020688698239809862966473717174040882695641056763871178704185362461328969611793354435958830521152128883984190037502785312262728406123619854671712568831574415144804256695162482696871307765835231449617591987806631870235812704041453952458637574148157488902302841242732837894275286017454168817468519617612243205131309833284529157062390227120122266636334307400636703656637057502100085632397718806175926939568341596124289037740809512374797183350957119827557224513999006538687038527410782098338734015960160661434595370293724542377466633650923903211519293924752551686847312741191812994607742367972457657252850874456366847048731949278427019550313011156949899524228676971257679852113960967251884288551863674805403724714763323447471760058412920491403167245195813149954972650453586362413136597153300603541406152197947237949561754254285999178828836144669618182219003495218932956678382794245431354128140071889613131200207393105832876449788831112650512179911050129125262360174723947146040447695630855626825897817707737913884149193701736053517278002594382888064754778316465042632842629787563565039916075988454245675707568130970829037276856783196555735584560933535351977592615837983028382851676224275769030112602806273528529535721014055757806940625206814758125776257475122301359275874863485759421935175099740843457969540417013277515951588757012046480826827126172564505647321604060407527999808869333260889411957004841467332148539166270661240963154349193617450489109868728389663851292665751323394188997804531970542959529176591720494289286835812450468423722508987759860503142094904257241259124607146255476841019219502853201977422090762949485466787749162025789842060691199821350272527268790949336514599380219065648486608067116506809224447452534862923856591842655996457302283611933789321166130355667251782288825699136022470369294118595003468382428343448559310911689162885072920903298051127739001194682429852118451441737132170345493821023661571316331695414978117498420414630985402048270191006980699407721715244506010988678740479636411973130328792478049951032766083838602486421840269146651473233779841914953676417892650852268982142404508820976303495668439221692214118394653174070193075591121556125988791048676638720941741144709698337196417409905651369542753794251390522961214645130748390480868898837494387907797503752385673883806807198411321279058957954920232868929005094412642149432704987016249441547451644589412115083550755496699419401129964080674467502434201834156494746253190749577239850821961047969935347864827163154761564495104693029950470361567950973362189098142920177009288874463620948019414255992515626713808083047266984571248703360991561735665494407362234972401678839497682179609284041542852005182445172638483533270163189925015573937431459184689722671508744084650677837651925819711226730196692040575733597823926065397387141248136432504799005339495289070105957233462649468037724660359636673246141615344910192792357202544929201526934764165114899357152841598541078360586113934520595940339441914788784910537642453565459448654612049915610503950351648233629610527016653528847087989103501065714961423227819737806996672596520875457641037014458095155319372780652711603712895319136954815155038796376475140297118930668783428965272387899320260962428573727140215380580703790152517535571650259295272981833929309143443357524410200191275409318537125771696062019669951294001282945667645144319820428654697035938741457314842061976070702887012451916868735196693514800279837966507887927513788066630824816193903375716454692634533573731787881465905873628535107858069652147609482061944287222908151355098393065055451323161969800597654572738236600164359131512680716638909941625159124330443795932710021843425608781606939188927042179128461695329107939437999430506153473743667067868418809127466172654106427980783083701745544181495298240548810615567546340104333760485581323638889022143565718838340713036192571590368128115457553379776302590699082597498844996776662748817258725764409010722381833896783598716025175426858699167809599708710462220802411316145737737127219846163479608454231814872131412773627278046842835613055544216355632162174674428862170435191027062513789686438242447683687477841937800160654845915598994753857815789199153100105850619876442819860268534771835335899957806310261429753801724442767198980313983720276347142919124075847626693185651919553067577640251558565657496595107357523147723067234802965216961034842928014603217747811493218250076666363600047648296034222155340410960298996348444844756603155094043125207244262808305321969092938015437840348635098459837838163153111823883554657463825211382211188190523859652939077629142254890631748880467416390869166315937008740628425224187551661267788262951386785811910860743129249039119019703143391720799641692187557178784960965439283527049775423788095652308591944376985386747824174709827637998411021655873773680443047901996078341205984174493575526675289765413675364612718504503507583637826501308510225367970620024107974025667452088378872569001661952344388693802660643260129589123339009437694456564265882493333250277547037955686324592137189038586195530600393877249969895675042413994520371655584198936361872932961674307545531591155959241328987723709079640254380013061399613251543043694412626135541475224357007386425096449056044242160265967230976501437811774328833071307721987314831434155368137358251816247115938950045287386128935347890586975105484756275192417875129383023904325254512485020780276653942138326122550540319446154779725481084818552229651433586432339853884874527797491421836580212005162488808328540166609546485249255478399754407824478164674017958686145833300847038541769286194174433614975915686238956495840001994709188115394765859100904921374848282872023362094366036858276226557609766343617782429201882312951396006804490745555609665186436825162009753132559611359888735227390766523514794604209346895199887689007033717824864577239756307346037487658754114208691719025090582243040110824676627451550660823867725180640688906948410910909398262612954157683250662908799523362209140315597623879776782062877067423561673413480398172903586779770328824471165985431242536664445577183413896996593897240858986976990685039546808837714192898352618555033630433204562373676525636438836630411794514568932361239600521593017713346376660487228082289432958803844751607406280226052887379095349856667218620203310022866741407222767788714814135873850445237039556990757371628007348559721538967902466135270643178151104962377801269533691674079532981467990740276662910554514675417983218503289213302854512039277000538271488940585966609782727775982230365400306708092603816057099148572240989621420232511569088823954019704909148736036043758260078304404353768781844363203757503568786022430585102353299607421164904665336167706779781855193459694847202990078267527063571902887029098887183450778619215769573493592319350074911476142380243030773009719318608774565451879888591350327142585006660722446313696224826272732712402688130496310368505267798747665258279089873724015298221330457579702758926692266741266164207521578808466023901802256965885640282969237761953826748925760436444136227635916515018380484965503105085874925985140177876692253642394542106306214619558735063174229845612010900993357088603796944622353557754569591093047336298448381034348210332013346854578390913218124883634160960652527598422006881143536098594421924347640519832583090463229044734812757201064910073664604481705309561522058882322089386143181392012529873713406550070389059724005773919662336693363447880548748378853537681113200611530100259525757534762782879143537310321420319458782876228467452043427950287692664565942104385355339834152390819247447173002079377519143716453122406647481186984585407013102445246201969094613340244230396871025880489289555224523962455210108412718346924287025522312390937603757532874785690510520589529418360319564152230781729966042557746720023230067496407263484978553709582762799208459195847049183562401142821927646803781694101061924067749904956495174190548477025365006147202016477425108972762811390136451298081229039756549617867201279736788594088228707354511141617944694331261641817600076140438977479052230875856953838620767646454389944059483690026123408668773167425433542791595776778181499881385912101149524124689359281336814494066738871075464047295869566022327666070353542834516772492355820323922266458910043968454402719582321120598117487219061123391604252190356148455394474057198672420361048409155968624720560858830646491699354779574918743846147600171566046650738783315419093710762360183815567865849065753544174775416988942013445970096236614644199198240949569775372935647188905482207629980997644078053303999688281380770112428918650864079715453154256310071058541639077982990629381249474170257150731196140391901801016358066777131961325317896373867947766158109764478194606935253663157673952950506808184042456030448637265607979802678977325619778644606849416981502639743568670008456979002028100523017619055790435307667176495451253894235343953238924467418213424758758631298559059033650631583806892824712627093415221153569171675384011575355325295291388495171253088659702639885146166636736150772246886984237311332574663264785846625380474144622639886541153747138896456965031639207425297235438219338782001060241160560501388543563130878220008896594849415880977325855867599014295915939873535862513573092291489295733894041280802755683915695235110851951349102406546039690396732740897931178439850645317715460332335311544902842467163916897472286687875484830594502041659548008496010691291555877975541967524789383975353264704666759249186372187837443197912562231398205428398176003236074149404576931485160396170044649023046701662704707168451599888236462036018259279889444162225681625148268289033672556560101499996711293177858054082817256391705095870583629196750673944665420714677910357041199344630165798540010746628184175608347076496121382986393770120098069672688945460663993360597175533628717283481140981057713921039478746096799034994555513299857323629101347531846048006333876974639322014801423782483032892784220089129993960927233582414804537404945768406267206840625910799473168197762306562168808154196346114987621417048116561065267522659739086899265101431288013117433575929233512022659316699109290523118732388632417998072848370545583542372440623845731843168720530030781668894133645557625956512904561090570849113418452127230858198051710070780781833231482890536688018984030487477790172671255460505736631801954689597679550985418260483338104910135227208460350689681737229810035707905114652756957679274428893538808723088615581632331388519113753014643767766991063628280583315756597488129731043128786415106515675294155920972695256738320223202126691037037512320154768172331401273564959417325887753652942864299105738534276259698162099200954408581877649544826475208769564886316890090589975495052752653964503809838828355913028614458058907154114479002190082304577876021778663254099901523535341951733943177143133596736436507138665780339331345967100216703588055322953668892939781412391137281411655816369797699903909312417193496517175236553697224479705278927289110879120713164071284003294223812244796274311962424466293227392199352296040876996676310997866463331043314985290955212556043154481270767530779957022950923565465697641589290781697641742810370878758033371896294708099280702394120506799253692441992686828866897007557790435174765136377733537430053180530894890833886627323712805248701143485323019943301933170187975689430048557798993471828413086026969055597022621628668429838266323863147641207398108658085808131529312603441365615240286402341694290385928721178797646835234483824030748024795095976542358393197433789612375767505203131331522254940772908975769143036034881456377867032793887978793065971507989186528048324805030444160063625350148943349377778089907822030598159314027616124972469811349427170767789027465038417515530441482931465975565729873674851823755864311012425727795531276588911896406299072874681829492064322112329005808870971258486627712145388462402660508852122411522933245857774287650101009626037748382168857255103736009958649484706624003690913914835531891907890297299473482456838461483970003102289979312029966539712394415656270125618258676770400549944120564381715120453842228610357460894813860466867880929688258959471332800300708423043705939045286647905921442082855002026001334763903012031902948827872609250495477914222794495131185628989124019219802979243540124995075402877088818839792585134817799711694440588806578060388620618622405924428377213617815049348500232668437182820833024484821842169487985785372687709681915044807829416505148027846579063677645329355806285576410606270418496799914866803567782934251590540134293436981169759849122541495476214592116722945456638075934488097199618898436714131281172680140241743619094706949431057951269293770220566924669005065814845274707608621751110364351648394532831470872800301987989032214878743440907111426281366354126206312913476172487807816750645612607365353600584314298601123544279300272725152090432245740373713104446810813112961427915299167742301410466569306135035659879916405295829288514407120401292359601276671280729329127806601974024335508716788758985164242669859575723936903023540705727338066102348565860239718310820813688437808889771725148214659989437601498678719027377664360853114322154664779932575164185488180804933590277988668573615084601462922427840091633643290301188455857042505531307796539170599113181948862179613816071516559140815786176889169892719784613725802929958152839804800920429642654524746666008746306050282364603680314689015604631661337051018517221835900353910441198370631339740747890559007351710771388399354628949037300306604122679884210624176370823311503597906563991092144820708896704595243164063734420472555542998812441180149696371484398086907429844703866254156306483927591373344552947811672226279505268590414369692356645808205461415224652214537767315951532595634871850450672713365146878252792199604159333559264363646190668702789326536883189119387192406322333394071324133705286085598407389479637107450893436789433928902403567886181115665203434966326943709697087883559174001647765840817679169216578795265054217675627174170049626527426376457859422703734092440704700945001580431515747488730335458941725227360677900868308748190108589161844806948854706387205725834865215283933510891174923899687606805250200072975379816693701704060189568302013260339232760283321997062572369815671187000639804881505782380245059874409734570405196057100556166932387401705600400458676146424160295378754371641049536926309116938039276995623369876287726063814965074897479516744553751278873532118006060210670398889682904241128704038357365915954093738375391407076622772507881510182814921611767373732265582224019260781662063792813470694761907400418144941553481301021134046195268233473630595335822661786528323845550773637323294864937202684484081871185354141893382981228207135496685442703247612611974641900522780745374256072874392393161952546622779828351910803335219331306859465239442163216362399734012812908043485633713814290249162076587701973287695861897532414358999437383198012771208966050677601514571733682773265508000634519208104378322146761967657460032792909859069111286911563942190367513145865176542910405054329369529709122950169250502998426945304044938862166940693136617601996159110358028406590903848709422807150793927314680701125927827597864289694179489876875729540852416275891963886010008963118013537967955634005543909576821047516096908894842976753209261819214873273427199160406745922219246865457122351603324818002226491426262729852583486112019741376347291800693074812983917557923438908350958912581168426798001727978366969996203836489256265853100622578560122246382854290941662916353925661664700615261784587229313287642905474609071262866003101401243571863536951133415513278029321512223125981966621260811686047571656301996612379183840264047995153877835952179561408473938819548420529551137832957129335105075228271317917986406096000878739659063253641445728464141288174222198019803722019576378583688107693014353691331264803469294266156066027354593266255256366644819130492909293352542457286796545159952724681562714136737066325007538609324487699945063414877238325902680958462557035468513428082595664951954974873064497547666321932428177797449047216178494510956272739213610469606758449925769478482862231460314493436230177173315652393098857961218293948583276344085101358307039298440578446691799340184646342158853867046312931212256835752108223487330259186397851983626714509834932558759415941490062867039735339623720746259000362466083504514175881194069754349914567770463034588933562420450974148122258797637073021414575600246185893847879466521909637752599928903536005019794425341014098142682647177997084687739322276521097510994075228015498129890957686621155405721337519709509650789538438829346448371790610151133188815389822923356279288207041208945136867667862833702997074802024010780435327664802443376643592976924874301595744013892597420626084143322133752223398860028085838497575750416278741991214773316391200886989168524733436733381929494179481345145517287147667457317577038291216531706012809914717777760201755816406280029049713720089220837586324076653499017485717627850931758094767045922795409384559986489142577205493694286776001767361087378959831443324535597769378987057838317736951881301180079644527206476762661041310391263230314879846772650636610611946059308073500908140006027142813677175455032773832423742258042088375553205111404773028369525023732357732897045135596236898596048449069395601009937795957224771334387184823405744250818757728670061037031756693177498328371150921101112875212074568452291717554277317004445458628462898363535102137546506135786590387127432217538663527907782184376699992042826751231249919175116636138591664750031914487482808495164409429676605453354511015231265443754483785285541291521389519830744792416912100017557885860727515825947244576396450400272946445506173661777300336449995852064016182475394458192991311382922610226384376537762549703097841095704592739320136043300914309944784512732260410507199928299669246394450733913483069325080445158617775274769392452035226235381022437498462870427582004244709752594804602988335667103918636268068798038187980482108567569646199056572318090902257484113380927408922264792405985029258818767764373230803021281737756017229879153515091183729962308366631907354600257095837735275176792005894591680773323182804415647616259443452113468669520489951914346812555650145047943818531806549890401519035005248460420787032083054643433690106681448529072218109872404806583527592041837920331361678043098808156504885541985980081284675238899506623120195861605550714512370640716272484168300481578138625866906715249333546745769395651230345637435673280656644413853981450925356590304326292434083208614896707569488591303878291471436715241563699106419338042085742449172330005180830275247010245084938045152691269474306342623963856049520517493909586238233992699461946515359464375055203278948125998791593104511034809299718769306659609902012095421488743941190690680734398770753164703178953799745053063048718392605646619696156442250669508468871515107083817091294161773820300668524580072197291706143634177185480796835476373316459392828194204455395336398956823616888140144496216593942434910102895076942742176586977999572297357639390467082844135479083560290715497083763536563942964115133141371178398056573908427725444571199400535427077192686331212439730386138414628373928310775025667602237880400945205114461292000601454715297095543358488659313946567597054707470571408890488898706548763317179993269424508096897335563546047088365617371103646636944368532844485063678025195620975817666008486385533483938815392795198409713856176734761485400122832646273612637922922850294621456810113685818504961028509312734381339789990306242120249622007326404104778016511897562045268208011445163091773750189782198540157482951650071870846315953528973101669120001563796337827034165154048930455314028987421086769750897563833236797313196952060247274881852432337782872369032269741471691096528933746022463328751152389101106761970506070327948040820396626581244198365503126858177227657186538589581410206437871020287532536620910845663823286609542632072377255560651709224889982153154348224727948990615081892153586281559773909033666266559738682397892026203363143412440110941270852100070338978589881286405113080899851232301157020276557874268648098083886630333437865049207515826110826771308001832935285496472005626193813565407175020058728235362745995777760276137425819816777959149570748032636526736985416749132269534887381041451550232486344256627354874998690750131114007149232077523829928099110372223795485930706436567487174691089642188684085278168741766273659683264709772488056738145497214704088054385019821069270216433112802290427307421753489420900832400508185382883837802250881030119062021195553643239952303233762576042301701144755408304599601593113154981759054700149007805804587250543851427544180849667402315697114849174739957985288427444054049950818625885798458318011951710910334812956608062923310793524972172609823891670307257799636941422865726102262747356257207761040721777531923766588749047905918960307044467420337035579725115851470802758130108623772836605828007050540731904327928899417485611996304896616772289613667028530249881747890179002622634529534920461001333013651904894526552659258991089631511648137786480573886398397630302577337325931092739440217102656255112036632000074684128511669205999000285259441981641139080011870483105937074518313465590511756201196558167806164465634712166115435515851104465500325527891927039890411503036577170857451086987010358577876042388672331241831274998530600391653950028913326187035184264373518049695240192129681620272518880778067949612304382525086077261511113696602886336616673413588960568198500022890579826944210720378878122817373171978757510490521115908682262761689796507979984011897565569104023493973553431382100319582317010954616738847679240506860826881579903016589950311086785609595156772306107846174485319839184654048583691141225487291216659653739924606813064909167624369620383612687645902542397868746352564106144990551895947867336722082360697339595592140127044599335239496585650681437888537312372637842236721220312293830309161044468753454488224697759855851546653613238131896758805899908688545103522770601014049072081659477335552164476963572669109271299944338387611314439192150492058616752727967570193334482782261820549043575682026749790776639493002765202228477103479701668987246075944891503333555649009581515743033794375702458874439027836769436801493059708771216244845171376024200280825967218020861755146823824959682067721336536945137626479457512365468176539416879084660258191400165706300185387601009548291398906459871428220990346377912654768865824607164770755604917514118283107079064361393140230992061840306982064286019634834652777309215001058056098631247835080400307908137898891560384140457401735643923246949367842468241854334250248940310058038472009216238032646677277806134565812262713854291550240220638236785279380168129397929968666865125483155597906015274252756246046117652488355616739512891401086479694046644968375978726465905216852242324439397009417041223962667082574917181187494657122073716952288469836779767503886930864534743338549669823569847279364515069438221724504847447137344594093142863830034387096127579177537856012417095517224088629368521382379096084335472035550452709987607668068976273800558554909560104487066427887109233178709952374653899171697994618024462438031385839290939526673989784779023110877488642585522736248387376612275957690314414013899097540700040017674803283105844334413949054119202026260660447448399997150527380764067010698376524466803411651003345074383207930667934501140023447058746191241413265223460115075021575182195534432207166226416612499337818072935519943866589502932093451913274625725164622054092398897071688551828867210926815190164299593992510675521223524658647948824748566867744002624323774862066324914288984185085260251246940943318413436121479602449358085531650894429750033619101484852735137637835970199657615857033309451165670884078314302729277699990805723608749722766493687417890334848596160104790596732748919932564212242534722774253898185245221090203483529398676221273842004306825120345490875303869913828708050696163863971583378958742384623177513554701393158451129275536498397488341112610887667902369301792949885382613676949831455664301399512286410439431988857786555562295910383055130474103560009199514035215901555188200929591573530827212045131684204718991455763277859572426970061399647383609173456790064884071614952164532010419899211815530036189615114253149174955320266836434536083142887339503924545720776855698013383251657723436978459733513105770898987787428207448859351849992400487485335867636806300024970231295176403085457853623566477095061302888176650750902443134687877383845834375328158667018944041679358572312379358994912138653254040271669377962661391956188001518460164939405506333523851512676557951214774159133860692166505227236695173402758324937462457677051555406238678485165392283745600793849414463701750487876932036530407639344156343408037546560481797701544290341660337806721888684403345137553167881382232605269855980511505264029573466582602324844799777108704779780239180581183202164467548568148288157474929055150751199599044540764041374263842059264284055675110275805216880056062218519365930327590521507634350819593572851318281782099172074411723110149610487675885165814812477094973098950035313435091190870779452446281336871704737600054427470586419151666447356812135556550275649133452991107392510830641752109334114032217952974626783645567303682976409171530646129538112159054670289779398057090493626313074469281482967405881101227747477992490282688697397437741729236442105176597960754940714007279596640630397375937341375506962319989260990234194677207884325864375682478028104849403902354541006190036860436059704842810874230722715262386203469347229426357414434007928319912559791083027584305214026904589788874161160524146730730129079313672138052870158941810040313938293200896217750752670395778572068441122692595925355036714657216340836234265281677021598832306135611698419401093163916846956587113853518802891015314376673060018951483229927881146235006207273535050129140268045622222427802629754246854209729284305769434164373786972053595420753741565901218058421253075580007144812522162703866861114183136161931331845980488313327340576270424193092416682977466313471856483832464626661288974500562085615796110818037766564715827100145157901239709114530776561428449085330997304212388121458981121905142697185688596017495774209563187566989061846695003842000150231599003393729403264064295277536645112844127650930744059033063817212915999602995444809008624534986575084880068769792619808497926953017039736471390979819710062783256898381857705176769803743990584337426876011101085205185996876570824607014077965989951206078693550027227305662820100616340096694669192145989931273944370926127283176157811752810285175203597844111020376703834260744748406441727872262527325761901499457576272296639781864239185998474002428359217227807110873884331833131576137908543489462770869463373126383042075396236965974618490732354588726521467199395962844916675538770151302621165865047156294952456470965139554166149648673692853194135475397751768112025890949317717528196343139228343051119491583999950707919474981125322371597343478546791417708031820795755675096972860868697226227156619483650594666351872681995480835729663713475719113908561111641900939173748377061451878764133612229887547725472691724149946064023633429355015961044594377688035483277964402996754108452526811209524669138276858688981896379844297191101076573008948039622917323147264114199477948215206033851681682944717052203488208264694566222455309576290719612120242872442190316461015781751225138278395226399453978954576849100963255376850737815368768913873412336512962657284137788286833296226470190127353914493393983096130206733166202539252496803548989334305273582841380209375033078536019884571577853814412077855102381943796357766712459782505372159116265890743746298919966576838060004197519342836549950411171125647699653580356723874387035785821554558543301560209079836861748452935062073078188829193468152744757638785407895259124466539799494561546493053073154277830182487443960312768921657358369525844744648057952496570047409880644129294604692751446477348183546210075346398450821808753051367959632847522316610720656759284042073061160716265767121021640095783990193890087209853718115896734626682259471352810468219176439955202374881280769219472172480139942002534129323144922444078416485164009955518229427332534011725022954914137201545834059716884140713451851961664847943947595409591490627544814288579762703190962298119878489743987365037135445494653015964661418006833226660596779734822728629913593036813637470268141682265731656849668320021006295058655180685489006275773862496017142644756254855625041863465638360595791545319606045548378518602909886855442550851974082214327197939470437374209699452701220638969821039183311516267661244535977479769633829440404491515867740065201475120832843720221019692715543079555863148673275759579186800697351184622459257379042676991633888012459197764126404801802075205163216142794709031656684537006257723285054010541234105999705129285048813176854031604090246546363274185024528428515779561000028966649383231076572492262468242108614122554336365291510595529102698754931348161552159007231033839798859253057585015913677027629850274971505937819939652342809982549506071385344877008714764736675720995684015469463844633251525449310694025370895916506356993146228765421005950342637268301017853324113676239052711951569424874080222953604518068546619997626594799898694314022760500459618508363991918213033230880254170088545924372102373295519213540494212584711002447403176800936014470770378303822864741755680400413133825666974150629978673558053843976614821631596851390043668240092329254056838261772236281191562423403057081317756716959923259708943942269537992883556801125553662832077929080706753862055255523972499877841320100517398857727301948911251520582979977493891895994239814759418447031378673961017503893814822418626175404175659177871666955458541486070259676503220041200716087411986578017232295781204125479680179130513039205099430375446603140556535345114863604122714206424687955190709709474901791879301432139169931807873018516285751555050321163871568412584310851499162465589292794701083422882114688127763230691807847731694293260201146229218372120060971641511125405322513367658080226423770635436705087099197147204012260903700322449852312932004909606621310383347925330528372467549548617853685511793391887354903969373278673509551247951600513514597218369310791931132057368692988444014965152592564386737991491590912378605882005471109073209857323520525616246546116208238764984669245335068177588947806566976721507183849134204543777256514609753024388173386976567579060125137548880357332452082815002700410738103148217765096116729985477069036950233837755518437495610512663385595222996644076472752236291973556936044263705562681684055047387190290333398925186943550516836081893603355181026286205544363439632428483741333033151951316501290097248507848951371382897519686796938779092204845029454022770130116794491622289220670232140478138627721810619495277562996046836299399043005056398959780784964074789261956893506870782262398556983351679662453167370529359260739847325216095545666708360449328807534002654977958641016990169474540447015625593888700015493048361671022639684229641427232496085271439236872094342082475209299060293735573601865257527739260847296331122260804768932264144501957425156307857347330408926426266643460984680945367438224211245915724740156774256484972146078245999142712789296248224088704985031094867112500096417167022419745358056750438387864434992497066596876813325412142876505944388463896817331293767128861405737350274982104941048748951897365232173979225071742359320345281751129976253450555220281229520245527503779694954144055416411253079258126351336945219749112242808757558019670332828797561365523542714709679395200333664749738197418129025376993199229903218588790888259623471166726763105937929936972690433356660412843186291794130919601467698072588848738099516532633616305443337095607717413415358525539366150232023025452510272577746496205283748000094631479712561138327733484317672556687715628013754868129622766414685296131961102412387334016453318885349879011025983549500549269974077847669470654024264564870878931508324694490812392429081577585800551783826563504204270198106522420661845591263301413575840449376898235493912014802470291654630945371692040489058526757159676296296053001704328005739293530458572227295410635062611179383140149878569523185678333729294574429085087494844252337024433314112324424660616266711542904084537556406303878981777700188949272846187879103888389004221169280368943745383581313806746468226469742307971937785618479331373122175124380928357550407591792069568209341046986765617198184161580956213094080718259969760232552906920508620047307267674333955678719787026126256705958451639775810849025717017607385591298688536330338711689507468108597172027537976934410751124049059101049405541270214100928439644002792094256994873209652187357305164654797396040938836978061465276215934965688312148110091980699580531506403120428769404278208247724436257736662318704117231010972115876521498472097513336749987292578509123653614268770783238653523756233523952107310937845580842341320578280999288170146644894484098379964033597174368170296278695517719654095108081321650565918453084644570011394400900095085299873278984171798657774190260948235597228351654068795136211598252011892655794139250901702554093751477447405043430959610066275818348005025918781658735673024312243933499702198197087015126840069127338940396531108496629530389833042032622233985722553420918386896268245531761092794462139275055416865832842778710807157406517701271071356289173100640219014281430852320023559363296567065694336839647309453419045128631718167538119036256041155995156043721374278299510280446030394082300524387503281288268040647481484293953598454338140421356685454004139365020300449251694891571503673597434149321699432420092184994701350975708860579935289349320678212263723010635858282324338390468016228575707297089050469590856878470668670000324076554063967975930073436672259335386691228076992447727712476512402371717939680047772291197929038411019080191765752655908695719350802688806843961291514834925217283504990603295034978643105390014449150347077262320959629534794638524761695587590719283670610661872278893577765514526269340529310618477184425774768721306190630177072314102564309798227195432803131947792755964062774343712886524834371968316140327310059666178838418782541654487181751507755531397224728765475137351950572443074813238796553857113703427292025839349588613049539433447224239686001208845008860777753812534949402528439663357831360594223078635203724125343277883786424037105008623366762931394025527648368370362524268253159417072141191777131229393124694274276848271686147879237654980589141839702293273639183870778423554874687797746092978404423025377486033475725886691303301078135919761315928003209751721137166776545333123699634655973254154878788925735004310568417544370860519167717376297322304165022427150332433396870184692742370248871790652044398617440092957429263820577304661096750824695097085102165784055330541329505510402491264248457245397615555494058128970122473729529750654165092338723880753820263628079306699100086352099127027184311349380311609361715400680191641496342115063244532763031007943757894610437548085654477488520966214824107772372412149164604563770195262899399580081662620855062943067129993813274190817983464757084076786213353178538923727353058507032819461679773216053962425286231574373220543981933492877956782258102496441169649009495258877352764054085044900091778509507558519042823971364290873032843994865941432033440308572736659761278304454174660552890574783734291358642399266049313110048144564294560872030209105273201397798271158332520828917114313686215341931204893032105005680507590242947594477678968118481779104694562776298536949688813333458697261889935463918450208578191714654906096739559429965001341205494663233686296326004715176942553822925520319204410713107669612973529088391182046161744786521346394537112001384233289979412339969420181772950401291928312653784257105645692267310801811767664835797831391599583199831049523305832604197209766424103459977209090524758164166167558238731237863390044353149777121742763162170741738237274608437256356246170177961152567573433363917152606537558580252658720944054720040466074563226259203644167088586272220449632357053923660791026593249421590031797192211823879529766388056692896087603836936385016432008717431592231234458372674513644843505658962474132002841344606993084503162842728057096401889989853659498203657830267518075634684523998283322561085966771807326309761045814481322616276478852584825400011794973478504189407123752146365181787155115263414993433894499060585573054235932653930312364652964897741234204740900912775695953172013898493414082877286592677882041423272140347758998769600714031374059626101619237076325441599736976291267951296795764439943619608361571815791514753773346244678363532610249604996152283097621044064218128298566337971939935714602998682468744912545770156437001348592980423421175452405125310151173539669409854953191767282178684635447293501038591135792201758451959680999023620590285486813790041605253798435736338422857303451961754275502708519115288969222981905051268616419472347555329601898483953584631153229952696666221864571046326962291077738184601293384971833612238939151297305969752091209896322403756075819048822941973628387840709390394879222317641610638592486429609462164241081376884589458291806847534647789809377416383468107558847903498356804124650997860100619053386210993049537582808361926949389633585888923644709526661302314511723841254638308458778931298050143236203999490100965685456506252614854676044870065924668972336319495336575902653936439847859608198332159633005326397799336315503332319664592869531851268840047932965056843870311435802056324244971828434503353202672007263815115854745210693178376311481688727413964757562245324056510114385263718545695814806538369149887200513386626337931439377200165437978474904060882493182808206557893552781946636641983970102146618385786018301070392885112031814066534637135126672210059569306779549604216187302025674380113728373836841956908523253145308835358075175656611291755506691320841452605640610132076706556653457966957934930923580610480410820176171944929222886987076628665850667467186119428333707822639536100334375876501930829410718388478931933949235985280711389506948008540320783403833739111483409297235552406812537609050922003095812536900005828653501479540245445058585261231787213282617757128142860931642733765969998279493030861045894101134253185169270951548599425089958271946091146461896687650129025800850670535756834244715355917335259434997497506644008488707566382813079893810401485544272305205608036640917420590697326680259889364872630251037736947495650052688085972531637066418047386574670045040986701030814848597248846427334206513715787614660552843708631939098796575591840526782918461313902479302758091257313174251576828701350996569427358719189919409148881888787719485821332838135071291971995089862409707935363434666634183607959589602134367197721044952401688334733798414746883592217227201110603503572973060815333122168413224238636029115208209390604064779226639966783694736097330986862395069107260429722752930127120834730638340863804183747019264663222840220343960680476308342163654692438746711184040184669830824786793816234582322376502493954520169836938356515557466078907566066970974280393098731761575711591690830518964490329991373724106596591987342620962445044566714678402323918230047563260223636977542072986511982899021662699926110998149513652001856537134243374890108667645189175140748674322290185676714534188806792936704738257616790757087492259459708831997519777383179937308937393015640101461685037682788054836757462635263736033370444823664728636639119676436883967222760242031951548606503895793751210284947017191730524681691517929549095149776638221728872037250790079310955804344170582188202255025110250911324275566545138973151902642935979770263961504847295078463722333690124010219048149911870264598383243365961816043546622152825631241592214969729828142142795277698943999571149911365222117953616093224471264431951292883465683852345355830481810941202807269306663579648135582386060327372157760624117359116714235165630772863615863228819804019876349311570365571257832468278697546770254810663424930850075082980056979562933894711742784040926154039096969748386574782305056361669736198740085707437324369827990327912684045079220685631947522304800161471462838536253070482452302250706517745845438327015872287732660787207639530445251797564870766544358313254695225496497510851860147936062723388319783510930292378721053059930813279314235784179636479077386983811723730300605403056032575121127698824070623630040134946779419332784333959761527951235083064757660631547959525125978812480422250632790335416322213417717003233430891944040513641833214424807596694390594342981007531091194522870409879485339793756445519550752610673971695267784032632255850651196668201260188260439172178578698673769251665463914298982751163834397413672257861100468565261698619182932542393998788725739408543288089408661796864666389941635941806490128526356275083701276498668898570581341356859784377083815804155168745301453414100461551977926827037133287259889308218633750540568431408079180188869425401735370348781911850058062726551454812035043878527448224890556787841336214724774669661560117389628281855322682747407848144047251991609426730160238326910356057778625876901931719290329247152777026785932028783621691505148716330890098761013686123875576772425301855842228215867417173713933027755169788554458703404603303307861283566370241617777134299554866542126782224071475513398698747599910155117856756985551816041859950412882951840677025772481937645451724754991793612916499488920442878835525846107223309041015730342225420409068117093192386946387692910891942851108293020766196349456378077421453481506611421081214494487708034081591533962062567175726473976309962211541527988123374496874993518028652404940209287224426720216528146133748890143742590683319291062654300520150378699407101061510097773430464354026757711139551921966214035193265460972059228233791003540000482698933368153932808806074161594884497596480667556030977327691531309320808428795876457894048033242499847907834373110428192901286371711577421176473672721625743590823272854186187941308835578963970238874336104049766787804833563208657022387661647751902547441779929638790210838614828296925159997067740007839213161161218795398372211499024069326468302729089467384542202386569422256626996107872157014856153011478491718283466579770935805407317885373001344115929968842240052856875442525972491760073898687352269484153961161460500362658869162079984454908207445364915646776088369900587305038921682531541143101332635285169965278708033198561807168676239972015297494281294820146038271506100088430898730467411597162499197044478311529010449773412759445538555579519323534884773008076797846019356087023539529058924048901416014070906811601517456704395600512132769727085818586912053066471632423081104114511449791631447373835789221847523694516071067130216829890618309548703227169205476384014313643709168808358235968535043044857814891195715682733282693880609901128346346551595619497329287887780045801949156567098655279771195212715386616231814694478720608324337288563749373691876781162385136701724111853520958151256165407687984192292790280621834348701129575043327776130831873250297232349531083014680202410998612855238695558553720989835375841027725583011898060651291228233577498371080920566980117220749195021606810513230601209789245710108015889231563309793085998665605275689375429129809633879303004452804936861338161117857393809197939957134693596492606160768188437927239282009543877631243198726924165867319296645557410432628045566688935070341282188842707356691915412423582735636563414646285121035021635948965998740496069332306934196474104477171537576495502933883163915243616799182201258218514998399699543827793351917326837343679837702917603615128617423606314714575282253979815981892581507444242637405226261841153012335156889044734584527981179598452839379880643666690545693182955390995850065711604135752387588742221418842233387574651603936600637754049619155591467113550718576922159473778684107376835573359149589131379493915033286068123302162306386863980090877246486180111792312642513975071674202334598859977990522402172613828300895389297276651885363241681523993451628684181648175177595231666784673763161418161945569084236533791844434887528606913032143514766320908923390672103824930583915209237997454896028172559055677954333786949218653340252374260363072225788730529429023510390821293832480399014772772721430506274522375647807365281339487167457599113140102486142718678462267137185398229064394499427352290537509329499051024344463615150247755902500931368376047420576325438180457185177567011031993107791739821517278172521351922753796501739505547851171226246571370545977650252437154250833235208294974300443632642079401221915531006424228326024372200272206332026649899558787134189442502862421200728227463915572091712913896087515849167171182174934627622391554907759695964014953522788458738427005795020197471769434147851243678906276959352902031853713767007460851896141790584349733729923345850908719600157048477526421651008173791990083477380640798014151559760805339617699062677076649289901489833334807564052865953775593798217089490217704119185486977206486477431941347733909748165212257022204583413334978464541437440691764769658491692870077858462452696977242180325895757507482132554471673207256574380445066163368908945060927714602334067692486492499564097153443435706914209806887036334991976535797476725548314954049842422210600525672489893195522746457326018335845165154784531271933534548475947336685893247498441108624258785406295292504887540774836357555630885433813822205165040653916578727496260102514378617874432486495814726883123123424640840235848997281101847810549761191689575079085841578097771656735600675865465038656455983924007069001421474574721642323426576617811721984401045295716989507474203076404207198851356474791425848314483001514051832553562150192979876947378019153258650689381534395639320006360257369554191955623327633262904614107124241660392991739554139276892261851150776221378679131500521590305394986249824451818899232439876114242117805885859310431784096832460571297980630582955252779961475466945006941621291423811285846009258845520007346261191486538863482689278076466295901331955666104615240501928599274631838470434112701049545337010606860216356773792769880786545583535356771985721721280982836246472578062598755974551682776334925217178484947062158261758487070734856871052103583524890966497138351244612701380212198436094765874975357870657302105962993489253011486239056821291498668738052844065861839500689513455959651825182424179110424583632739353278611467883890040665770156944830028667228604213456685463698751962932363672554111101790570417690299240372095629861821909047744023678864791950507247505937009234226380672690810515058691858792766456334831086207599374595369005962252715156011595327741382528202735287595160247409411677519489573010738766869616088699346963748263014774020174104510989781022003615035119164505405625800777566430551206169212132196009699336506572443126750986146706972667566806009537142998476825976333829556646950956751290325487418536558262399695533054826616310511533757789089074814099852660296571769889914932374401936964433496314690002449706746799586449590419680344824852228978117925984727403132846978300494333598067244762470114383024151259415713458452919142071251540958554751422212650402059913964523753635210918401015753561194978756089525821362521285166014477943541484676787936535269446234616418668096859790262781077817205979352905365854313786099087468935936605279239048743006977787294181345154966793346192564000648655616713937327861134432335510365190422461317464615548150268794738929986032985203333207197973078265588076913430903907101385118949187812297099177890337636008904720483079464014968955720173552210815162543756103899306977080795616570337737089987851701933100280404690804807398859435178239123509364207355108916248984978840567975601576174839657748133539699919738719700907010113426909817437851569607670581717629582539523274118632736027644700897466435600940378857670052453709174056606600031273000070358041788324652856536506346084640300138936460667514496684772098045028761603843222708639958539715180655067413215100917227749784875152410211345403730275052829097086737230625917122895381809043488680494356680314664172390489918273360614122010267159085911550412840346010423187681729800547744167835362226974138755322859786669036772295969727365054759191586871884465215470104280737433498017184799596669171976979969324940542019318402254641029812477597432717891138723074629188817442365800191016091397098368375953880975176434480895438291179893210574695798335936453428020839231076782883708102523084711632684776112158154546193669877246688620775163246219651332696016745364657812128387312017949193685384143802920867003572366276821802441384891854081028256709834568448317745825056783209463690948956147195735221872483776661537922915498315556117912439701093102449434593229045307623523729686344282225468854815014198959004230339248752271219083515347805462399939984571401438693505597892696698935033483672283484163881832794056215410438700677559460884377875777643932298681536879758174643843596438227713869992853712641492802084442572660189414342812540716690417567290897572520262629039639079362327949069379964465932758418723531380435563381330357089959383986379340683833502381834894191718252487138942274264011462588786878965024922799658801061627402380460410800434858850824978462559177801980398711714035733224415485949848706622182908728312621479025027431841984379215795058100634421859886572098755685473122218049039283835671673068498796737183927986954313821457724203576066333298665119499028821207879241379862936011403435903364749431811746264262264380066199315761744380486299027499661591597624828106435424426748069809308463952162911110396327585026432284181436097384198410075580947618396868549541759780270225289529100965997008151860144637771810145603372259854389794326270081728380809719280339838906906062903328507880868867845399455870809509557785353052972938257870994469252745063170822828985788830485399687470803584153434699106492078283269502576276564906262491527917931582198029730985785726855713108742333095945118178399834859763276880043929451556389026519916658625811469468709750764345408658640027465517356115124779948826511977877649073232505928418165197493610567328815879831411555896216115814683233720776331415634179675749418871623234160365244822135633432305740740646476912887437277401428187866619812037683100734855525119001240229157133753734748520439323673481300739626594632903398644801068092501699467259231677795197375551028711370178977442545354923976118919930476605439871702773582281362510529358501193486874969626060490110126495636342571434014072061084625220430142847965859958237250066995401160638441152011297919961645411512535798425621599636332342079113213121589497035316443611774542163891708833401493918354874110350953622474552477656450063746096652830818275646858744011091302671362074907603187659360489827360688554205655151087173172739024738651360455621545149530163604279303201720655959708484626050012950780955820306069594759733741997124100797389826612159730088870758179777290341659084761247900183404180442826593559160309383565039131675867262011726398301244255748615167598689068045128095461656810409166475191803014889216271651794700372585156696289632193700256998955557800583941746090656475361981914671503757315963588548280300915241600600083092914940655145947722307359369305894701075355718493713323705966615873572551806451104343516687740477634157238321880856999265919593871935996177797257076343279063820596188746329555052113016603384958298015131228662781122499921491016521707941399155078708084817344009102886510235712071323253469242623731910584303884024424295432071488659762507502602569556961178847967150137468676231028972056155627287168858199790708728249526029005964225309302564139136355577095226304441729909286997674445614179161652760456088127324273721389151302750255888832994258331377298693536929107085874244840622995245276386579915099342042790557783155644942374139836232416974290100235902181052960675511519280605923837733168709996633315795451482805997380399032343286955467723823332421296011542539939881329274797632184182688498042461741617327428745150910856950025021722926885596418740866308666881158638195096765679317733814872329473529050778698110262607628752423309145997862839994020726719485410463261449423963916836917402191907463989986521374106957379284730865890782695266889241880233002701888065636269917587233739802421207196571037788475252651330829794749477038479256647185498141809568960084436911389425224418786142519548139385407169030924338111661573292963931506155292184037972530748595013989139902302263554316026853007611205608173857246888581203066587273508081180098973266594665729951098681403817085472796631853379941421365935078693296796535711523427479981810786261490689290851461207716037894605216209090324629479199130841110953374878581613198438031921347191764245250948839563919044251774999792050265224310300713848553616384287891664705223755222120384989254788746488577304217464681844611181454897469700960996741961172565764583483536292736629459070974724176947834857407661945489536431032644413224369401913067037277525327635821652873875523435407517285047003333919442206831192952436012883868045746373032043633196140688199973309933074791132230367834575992733723459861201880212893992447720486533742796932749668359542881531337944728415424575150471176628436697675203320274536855694970570532357889046258399617504079078010221547914599860450095883178343280427776928700613179108397460400389815145196137317385912684496975871508870618106470868430084407378977470120139677423392623100331320801000751863214299142107986695808744774771339752864150061873440957410473381483900115618332483938272214107368782918926880036861921670433027958410081353251096915337106732974058793901809859085713510393610612927611184736878222966757058531915987578166441056568619446385028670157790413957063289504244236539032879850414983402283327255236757896758203601376782661435544849320129898231332816138394583906090603861312026620693773019493052138329241993279798414342595381063710232887365910641215490843597919826751162551852127440325051258902399317053558262944824368298891114112440657217973974526514749165575320831638732569015561351323220001244617978059321799930105242833430081867232005214196820606324085337706922867932601241715271577557431260474478030718266557546347911463393358602912789990369950257948971540385356178762531357854653706250139008903367541408192360574785047660987014027659041548621177402141696167508391197708216816840439430433975489254187197526786383041992709779971944009444212087777236470716499254941992142911477356500783330986807650554697116511396000470975744684205847758896117866482487298490562753979995346277241213867639820458259497137622700079918428998324739095083781634637338987138113432759270294432954796616108090794415350593580869380749585048770198693571069853102532152570180037303835518138981147247680591945947195794629980718077380537009842914512216899433138133555424599624137076074902839787694015654166303833346823081177194327728309734976783096843710030983132874138191751989183339905159392079150928276361549770064754063501875145669099429959859236970740122769385632079922994190707993488600130882111458886375437350916166555984691850567530784178784370406232710086403026983633568552615199637737401909987840227671114158264553694360038793092730695480989346149591402368386379488168061788058901996487363122074348734632091971066472638023186305936334929867712521627957139461868560559213116965745634660792814197223403592923498255665392726256033496659579543150948204946843773030630258578012085992900501333693310127927455031137998668741468353375842899098675032406026447001371742733811613086592821458680886176006141319888372636203266811469269207705221017800637082345539210305542437160246932737737597570811657694522611262880395342154564954628681167910200515090814789934850269921511589021943891224691546272168729528834127262223623644477186178595722899731495743362353715809604527358941411698147803756643145353353476214209616626017483819399516328444298683025160578566970736259148064756769141937621740051698520719035340829990870257683392452587563694744180737008224868835573316447492359173357057916719129903399098745469996200180911347284114323131601663080405432635415074317388737075049918514955793037386939406561524884179921841154698727925850266696639055296972249857932595069145471060241280539104095151551443320606759734880733629951936164686414330746652943031639460410198062478970436812497557206928717436596402584250068097265360450934199982382338674233448372363867569549649213182233807182386920466700465293331846024785377815946125503053998540251063367778902653385106682797885713872167773404566845932356680099573336164830999815688993347242536484499898316490359532341791145868770974415456803634750754409261232640775006200647108137593043869801619380134896283687717875671961982795933678250293798643975886595103502951160559917672131897254781446601373882860421845381268815541532852811953834180200511658560860308674298914121798605477263716579130642948857957676928337858713051443609914614507064886548986871308082543039194198947036137734263426642889197990404010438647011536009195554145090479361012471643090258997668374812226126783846335060535662599995019709864402980035393972178232136158853958796894889576732919502670956304512945343127188342892776535182343851574847410170065533114230337008672728397135484411786813184630638229587039856017221595930532119561682372620856643041216550050526348245762438660979794004042071213838676700495509089115167378546263704804428083714342803246705378352901767979854772791916437786434923504624869872459929597410861244202279914429567554600297116931948958395462999724091345572304756774979961153644862274873542363306383597990444715980840465001147555103915919860147317935862293672854150599395590507240656213644187754239234762226619556660757053046340802306316076777247318732061027313726071192129821863731689881286792772691449726260954556331792203368477305579583082985257109227124422856089943528733635653547052475059581802252236130274246840688205200718784727936118944977128513431858410222568015675978686604699733271472224581814655324082212625099177589011565736514350365347541612321739403128059464690790143684994571842174762130196358972409620811614476454968968427566839669721362225427290268976638390143862932716302131326602230749951824788914646580612542856133571152100043489445922077514835244553225350665618521892276054722745794325368454205276662221198645300892199035452788239132471715051848351576003262025169798467270670651475712328941405850320924939390013842101779998016722383270513210085496328640038756825553474308595018558230243849370714899263183625040499532594230958930522235881555728260559711201419989591294730587724441156306041630116238470516694952384585700165050143851868071289214865261215251519492095532292883965339863065577047551622201157307031991098191336718339796104764606843627944159091770010987374534509044031891702404197967990118830127040338669796365995534495560848219475500920712288989549008816734757939192803606034852533480243734897149394831233596720994302444398393946735348367179700109107592147073955714160178328521288550684988683777486543185833363150336524256966256208187925053714621650188147375575322822662650946101481274446443098644397768237779462008140036680645627241110302856403629109850013584603397329162362355105726201252292420032991869006679084332604273244715901211972369788927730767261428122317250333041287557675763977877466423732946427619047992713314055522728420681343646238519577815078360632243385741796083972510782112410964180907883911331419750005501111839027680137460179634589988836317962064830240954174924143631948740700143992974664573596381990595016733344944989895594639401187126643856402302434312045910168358760968659706079490695071916164847847771780090168913051769903324454359856850713952012930535452985673485535424434967007335740313493878952661887694989708142085807185045615227178501310563248417513683063423265051947469128669850217362592608027277373284659129672345635523251101868301061013665266356669456382578326945958513780592306849884462465476182807819744913664357758677654072927739294872330602820088824971862389132715897942756410037994197097573811946233383267552609506907873956014158746013824854032999934436756650468244630151120797390369908110600473988057628454942644110780945178537325623231225589238663026630563031722116248851012304837474722979818805257689460836875742685067812574365051502613299940254785126222927365332392273867185171616227526296470236525715217108568605691904666870208894251940445526618550885538915031553293264381360857069992688700645577780121157263643686384005055342555140417467284094362620607177195017519480594039885434462833824680335987182351301947508852702952308715024290039543802554053397246230900129397331029581344963610491487658499914949380108114818381702803208783183913313880419598347427890998147417086753031466827720300036211565274555010770887869398277291608689196611406190116025624329510796706049390731641150333042310494757267473094455044446313368364800726584793296477585007317566156473595958442901011395659751616528672664811582710250689413108169917557205363112403057465974535638329255161931107837949288810786727544377746546741462104054434446747001401399163415263920870183460593561752989176435085355308299539971786645540769734091599433703840162544585994069017038510206384255107067529658482539475063707078541572128449439307387415159499274692494840890867695178676541867461687965334401905185743842195574451571560434777759077116631198138973843761492780000584959021126160980806422080213875881305028603737937306136272719344942586239782926010868343465334538977693788336570035743867833484962929102031957229269655322467052772892120600602220865192160101641276951594121311026843136460362432191981520102024097477057966116484989195258245784299690587370120331600563043914804331437691471674917754887421763948513899458875105537443478579734938820090048772813490660878961571684209459386132895484771713326480780975397512798088256242936818385879981325754112627002951676663117940898437705730648169508355744038514817811222851840257258993258697064136059928331923748489442251566678829475187224113393509210567757061822441016945748434156607549108417161841912751116337250511172745452519979282149608133708805435920537770825271157496542475530655174659822808795845576189252200525546833359152873429425577403428266756668506753683354867528225154205337125028767986746858035312841998066645707005469618214974146728023738533469904723070009092721026947131862794156029353637136098158310111068005879308210042702599424353323166729853465624771326490952028505300547981842982312405546852871807993879115228909208536758431563517880278339453866741834648695043045958340710614178706422196515845244274049681557614337386422838610295408266878643726563083119301483663609220405250173059702695002653215032073963630133776182250575672450349285312483147880012841799378980240352839986803833805138512394819302871594287172403629196180955205395010550971194905147011546974014904594717633479498293121608589650148880845916505944277850798820994275636124698217314139048532593128073708811409392590157289038828397886620147620623185029361879614539442571899314759423372215982353617667563082188984435349452659997932171652717439049592951502317764475670861861107287471003007867964735276913474168253794990635541058834226306193732126523220311421486807200576467711899370149199642697952247734895373492626012152265506255037222146240387185684742031715183408416662095649964625006622013825582324825999540249517300054177970477675190730884271689290103233738738563313336566619014765062087222296164199902733396232263211553866847518503222370167902003206220079001714702322273272043200032319016294415630986652644409995159538304529991014921888891769159381856048886799033089374440855956630488612097576249145325640579690073350387156795572919549161530736172957951455137328095272176362097304667164509596000390436953290242194694679487440857320588573734839361317586148955776362824052379206124854001522227700612655881402081185316546677054238163944781723446950510659798605964661760651640363129604206300291736319387651795459794939043301298801955930276374756923914895595900733845076458451903753735965194352886885018045111731446928062249358767378002035711035515693532052538551391976431784358146673162036869026637385989671288640037339342241910861903329254145943930586743840110766707804239713800122562200131583003929476274575058925693843725745278533021415712192681703508818750535500202360835150811225856170032652350655996641516550295170589552272023853699672844511381291303660612784973143199263205468255916762499441324249227018590771678966972259093500341406202414262189145020239861922738942467481278763385240377624962294322799045821465892445060231777353123953226810618074785047368105330239029122212606250062792107676512938395927641479905622622682811357044027321148448453082843600077269617050129191220346835521711329256656050251883711668220531547077828952615195104624179015545192644093962484659782065950457602680352028292335337650730173546823610881584977393671589933021373908701322221867298144886519064219525329244296927660465321745562232804875317071518021800815815445951169540181154637162212309172547266070313679183259288204852006623149959827270937919102118141744648692186205321111545292487411912802281684532002663004028345121092283422416605999441478488268439360194570954308907454130729523974498094243413397216011760813592815948821247969615608835050772895668534746265755335466993510357677064645282878965429689224485018490012437239461181051474306599464917051121455853204136381925647467546840807741232190174468341849495078003800928927383207374600665095172074214147741275376787218191899851966968153642352819434720670981913987951344214482667907001815135370947815260053725510906883868577567513919865058276639114179155029704406649823725434662768763174449043867885454523776300000507149442477309868386759672499053848502957012745287047242747534220503963427872654809452789686880917328439700028517080070025874817038195797791242787839346863614305515573083154763853230086327912566855408929415078802087207994556052058975353815768706954306637425609990576657915637047280928845304684882208223580061277257529587074672184625951359884256881701617191065416816692347848815948070664732116206578796309834348843568945231217042088140365291285498039152404778632672839638185175999579282152727220700635867025891376013085473041373045801460742432405377148265404678916440316686373013520203540201104485001233926987797648318069982458226456875569188913891782314195878199780114520145428358799736252683715745352349291596236738086520301010278892761047606222488822942918360471993354154061705067064459695994232635181285411018444351924339370785240308391723457638332199804514578598015010078230703157928122143483695731782663091242854224373555484725492975184186781916103804074381449931761920719945323426595290393554126238498246752957743239963328361934006900359465725235160299744121139383985587477473336120675190149896521323146552905233475348008148735901850555047884709496647125382656870218056625689533039819856093161501283101492679408187442774846546288737780588373338400777603593736239720910966624797518785595902385449363328317921422246840551152059439242216692109356043547553302042603529892607845877265387621049989017648361905083445082844462460410449430694858320397333576642847319248907112712112539206864673389444903802075111218367847359167952692847728942740855938134806078021273787418247821238273242537235754415604802354777449787907627557998353425110666177582127839987892989517207580621321692778715631947542255358270100982436938641007769264413442636159446318649721921740973376547799771966969273235970660783817504094405144246136498632086537528351714843017872631131645623305600833741109463482673868603254513662190839610890478566508317914589299146537158312835984019362614509604903229440781722678219969408226611891411303980168189298806580299226438721752264283486104559524381175444939344709292621942826024136370993833851159885177724370330901476540182972719205952298265309115458157388176103902243955484346621075301018668407079334618434445256693652908864344144106922016073475324591034589976106675558948475226291853672934950775793651598367735453564983166333953702518374495787178909092135556091455261570958027130070263225263201652708588823670802430217795891934164252092871062834654838625716822121813604602750990856373072473293697083405985243541279749576037147175001993577455064943767407210008473798615596334952449278163098741072785617571494427065393725681231210569824680866251331242670387477400609608667308949510649798620385526142219649141928367390918835911649019338538485603867105363300621294148825683742959082737577154851722113523884519831138569303024344115766436180959336367964955538760468193979904265657242570120635856407883759927573267330938259455981842662437469990358743755850119129043825461018318416429204420060318756328786121913608322990112778757823354424456262733961611450354437719119420533673493933197964455587418831878122901950372511983490866351573913838012661078161651801626347833340479311528596109493614335154189725936152884047498539990628492902385286691296720257616552627303230783068383602947040143638195461819819966596771115736016112888512906077392103173619635142336900391498926400216172619994721365527466083469099691911397457401104929514826523110957969943777716671311282862789866638704919692611112987251511711538865300012677507828596940254030454281298454507529131598440420447074914060954464013197904356473633174505563461369943915632474276798281124706166358610849346482321268207708988749698131336803166235033810257496389608006743162303569743233073871070873891842842870356453801607687284896960220269422332087701519010277186473048483556759735814273831300755333718801658173562867679541682779092830437347983442977809678517190155355294502049414527589973719364400168463454328983012981278643868579045740816672875873968662510165003730691665848063023846537223172983380200528262223856958557465987166365778528730694861474744263675790898417082793119880926630033119930122464922937221380911188715761609943916521252803226301976238963733541584082818419836816161573047792739681509780726284816517193334804975925344990288839602530238632903711099738219693828463612667881878413192670836559589552258195404802029204627376924190056175530169359374936815159521334552666382253142142730848220447891220715651677457824480145731558144844743300662207682853808439178061907839275135218401277143109418032117471937674042452602526441599560320859488690028508762471410315206312387976804102899365409574702417466445965936013306263191696106591825564844963390814258772184846701058947089173723029273014898660418448598712159887997707156133382801102735494132049948376169289275862388475569482206534153822677113715708162846524963512736584576926761719785435165163260224988065839599869047277158166767482122474896564230824908404538513665933690358574484176801891861931941880349237874637104242285437969739778552860606495567943129677991589910443448439710379384526560928976556501561327835428249260455819978366581251461684172133023583060278999829697372651654457733195778584339948950967487519595486130519466826676025452271739620300252929560809728491571037667404805043869876908219413806364648694039380209053076515420153312717579641771732073373440886225433837918120809302610433440015726753690197485941539511931900428331016802257643662481822410544801217733813625995933124828506608924215375603332901333004297383900463412083252037851384925588345803454744653811816611844370491418262310840184283892256556415162930437587924995874849209088217776865878952562539404900318456580403726396387805666125238982849512314100628671082291322088384102629464021514722122397996512654861680391695608126556309142270318406666356450333030736929663321913996749662125373772403430069237851267830405605970356807313906331137172111604913017194107810391855871564620257236844348040491119719981581961804250985604407603425213056462245807460529707902842130131984287782686167424682913401283144170230471144116217726883320984238188515864819347570007999295194863856689599876098415084736355952336350257991647984669973503927915147933729755068618388366879009304734579919913720360671237269340120192455543940872562913431117492126434723727203826382503645362416020799686647448130097431077781155578476906511850419232902013511472147524791659068244534057198110029685903828234316853177358988307420946876623302364245387436696438097656703628750810041547983885795857458278494231681256397625488537931459478722407867522706640269052525614023293379800453968204581195601053478655881313624769248155213754019742827839958055710689946771538748254589576189208417451372746830648646104809293932418893696977173145749801108521451903086534120018103788720264390143495097850423237498596829517896394108659258627349162238039792364500283510081154162757595637996436046285811753780055290354430140392456268666033884963328058738950211626312107616971611094611876806663247064648961023822007729316388663116386219450544128070271248286793789826890181529127364456411303418374649383738703590925088719138452072810555347308681767064753446416438242719319940010477727615282633966902726610733105545485040815284603546853977715321397217184954951123269668542084928312664769504338534178006621025297490646074544918975440931955987771375271477477152789408198100062072737346242792561167411436305849556196426768199763128380960977438241533067103666605786709019480997406100115189067873052603917078034242495046100794853331343923977390609075128482187025528645757596159871621753837563410842078871605024668536308617210563213013747515987230092401214507665513460390934099032601430649889427045825245441376493479366994651701826144756174432933524325601052262172811168830427357082819375249268864908136779760025290837718632108661019297172055487261727314886198350640260864351324887510953511950934054271880130170251356781647868296769339846083433395647775411784483538908117959366839098098548015883543009306789052195793619397506642091006403150205019327202670386302993937845805277352476161783784283532808976099782423263354040934011619912412703510904129488729485051947042307132308351404227176921125788975104473824009413113986672463397410419217011480071423002832033710504854454650585062409259894665525280609447459205124625452881660402480563297805659468943002875297314564791869206132474634458170373713326595267485124770185222075740822668370635154482345780140954894678146672933805034028556287329232421749551668473411522345015045836419328996448497066142374902751628286345756032230014922707087833144750384008924879289853832822007404733287220468240806740654001842700042290520310344919328049205836347563861426728834499835183789073765475688380130640206557724422195110947741725558630839982606283353203340813948889417522294585322948853258858067763428389438185127055656111943985317584649014735648690807735215707315826706111605794200547331308770706418098820857575175368750310683445702887439329403721111914340906818579734348509011899800235783781598256441663665524110540091634553993313681900497155048639592687515607093139876142894523759830667910597742038234867920952569935596962461020420031161564444334792182110217099043135596007890921522390294869352955605023648633472289895030119513870835226784112665315527104062078060232551480991665718109295858815038006686331912660377744339911698701100394931524684370878782915496082837728775270916045219255567507076484895830839053596117656013866285801036958740817559226889345623507489574550991494285419331582311535703530893463227502902754806035032109961150663137993168361172833855880171277644452522022128175359400903962506520661568598354467846402091770744742983725278367677987325784686988513850090196992146874100481816753928185198383603160235311988784903452353196695992652997411028421424205219518086364220349497340887342159442126938523201458852318584925221848003992383161547105540225718357751791395913942335460850530854303721977158098874368909674213615669822391941350760764153601133629769731360898365006989361410602318445521484883628382107029440785678880162061535406354709673037645794692962268975078203108594538661848787324125747138502896611011643299805602632743136067325349612145224113192583344378780082580384578190201250828852989483901204606716262961343276263295046924936107298273775299770668776083691936562659839723240602747674759693770694626892872697450715726983952339714666723901928606821747065110382886632166072666306662553584881251037526227072198054220581003488721842619510712236729986431556030838314806769061607883488991580208330711118648809065663530978817191278177348589494648419167469779904186247671545579385523759449193082942032041159755961590296374603936671404251278419359646700818258809769032255420478653822383843875044668647822257384410433940231043041305646539386494819515098741133800763321569539529244835240457578649841515635739617529266167881538676968507171139856196503840992765438681813464794737063807911578340166331379333312774837538627414637034941494500138879434847480862957415745706965159709704479013213882582004545291180779280343299276258582504372126346527693496269377458920748404610762754189684530923253858120353620016285768582022984780106531210989823329848191931741353860772248860822508430441676668714445283944054433420392540509649195159319565668468632058297560193540705964405235214641229136597455686750111627807045074701024454622367345074934743288633341548749546200641274184458661389232107476812306847289950817441195976453968108506778418517227613213266804276248223118801106941177588585672775742203407336066338027224490115618291985675368761993158860981219370414582786010018221390628065622141077365480392851129618405404037214904232979027729361006113432376296826605097694255658339590669316401139967276070726983384474519131850837560622432358820705285907002000863572004632549265823075328006347980490215935582988773024217110329488803654078532765146095837131599010179419354657344034835092855856507394911597473670969459543307159759301989608777448486527161238862340008341644650625727404335045795024835113933175261387941441806953844715161857464006041062018979875784049885188530915278117522373935438935907214903678965424826231398282459346652084754526750145161067634854607353967381851482023347111375885879584478687165372202075948728057471885680748920639244840296178294999833279966277794174101947841064712956917929846883661735466933790334537434865925807914840637671918604940711099854263733159051544955175626016560353409080353439892696128252915144218373692014022534269240789874671098203996244956378863851577070466681452493078370554166212928394404198648022878428423406316037204364123207977231151171569709769419775703964336760811998804561492267320688005078868801976292708514818024592388864287208057246110678965504926129480737740141574410646962594988394745303883211537571193277447300590054983909119569025038871314338617391798949907784215008926946005715521862812168031307354239865358706129497103519688551988178830482092082016717786000403726665247721916915304007065899155864102544184814951911867703719618390942556029703566160620930715084891623652171907012434767046573173238644433884574642387251193677328130543661102603841729772378392408644987480877699629792577507766352041739356369571893162446095932304052984400694226152501753248531733138758626397142621381642794829900502495119712862737279722259001611826073354993804120159114429869051885240885786613437985713185480351032585054443129582805644644661719738156717084916948781378975621853877137559450439730571284046911361678192837397766959851589720663317026672587348988851947885829470815782617549748603473675661925743779510844434761742417429616653633045199649419080158360974290331907941933961762733254200823007981235531096796410736061067385046934479197285170398453219794253179247824179822522609403951792437267118044920107710680149118600825757794150501075922490869312582679454700515916059106785815037033855806903756729802323013023966756984091195780135421914056372607818440182795861998155552169694934452294722732033278534497264585948409955231245225406879748153362175767900152741654734111008218310982467147503646880331754510942573793259609889240956388104109798992434758325527588850411424528431540039382093437008818851051326508980430099732109583805082689378718116572405604859617878675156468753846890631822407650130185430083302560946197068951228493861968905317063368716907850659093579717413978826242650406669149973058362117064994044643427482006457639989703265651167967450406368135158021057342019266453460363181895761771063542315207201955293287553471682619468777047438226405848665290900987238894619564790135193570730966778255165109009204422338920852051822053231223024855667952861990318056746023613664732466684599440607576992036948734930106323688006368589618170462617789630983982476670166973773811426335238729089964896311854082930313893622451502052953644796599097639545344310556636340030986239538685329040161883155471754167041969931056344984040056255110045511976625384232702424953013341056017155567590355679471642897567161918578770277267534531572521525320995108898324318348564981682078030197810801156003115253717946771680168643294343072292344222761996119529086620641817571189461054794432858986900121186268689580944635895038436145172697473770245967479621902372832647605235570807705224005774280961144521153731128417799458615428748600327652957288933583996913096977044654625930734095256423915929101265663779697661925929842936857962499855033877921472805080415248815692285936115985807370347917985156859370765552938876517751597817355035265272636539262354844298391824999217981163314314665845619004574777693392583716890967154788948437091175712585961447118887053999429107234942162777204805998177874296115590228416684683000923895333710187872682340396284801729856860965203893620042415977365720752462312913804962860966593347530744708728038927283190833739029436134056421415946032234946049364358340123395442861400821531338788402888168572757428136394187453839934799197527373252893287474228359609231782148144398326542493848419211480461354014864746259660649955923290721368619623763960291034977430757528057744085344751179849819905539192920005423771874655688232711285219042953262911793757347882140104617341947570614639078367276303702145430697856356593442319331438311246271328188115643127456097254515100918963257090045709450992208553446457431916830802794299933950755362766794028538769787724674366359997593779276518694511262427105102303921868827896002649057137230502988362633991148490169970771583309804554732119287353009390084485976454144493170746929680256710420032352888086456420635803044163422165076010369208253103401177321419411277108568723383366577477502361328296853957361232497564113613152258580213345232628572257800077550609292359121431942671911545618241588224858956951660451952097877095037742869551676892663280014533138057369685628782173064540569863785994674096506823566257758979945788170573148912368038283858106865058004284251981376728969039661590711972749115786625963204587453878782127049867001888419890511742488824461767154433892230892645047711881644066967820641601719618564225412498222220386939746764667569533656208118228473841264066197219859172515810880277751653413687730348259572280616146450064623474394612146000670675813738144533531890100144255308823200217701198367644993704225596609924644542850689467827509821362116492670432899874115385841455994219694010424437419542250316521260846867374274156930228274686731044163444131769633813855925680089382780782856888517239619901354033011078184322742238673710975805047158913655918468250468041663881461597502582332073180288743465276242065152825691596386829747525112736223284836822246794932880732893017751927473745062624589424835742906992556806718898959227072801559622548846046453707921448135491006292630621572748672586312259124727316297665740080347041310091612303315072734414045805899680554269816531644584520801937427854965560127862249194255084994122442425370340642527524057155309081081710121653202477517224198520050488325142515341119819271476051708755673775613359976892575002034633129866578267583906466868292337005509459138817154468528020911308498484490640295136449048702162407064181708730581335370405761721349287888958034716861247421350067606994764366117785849802108254758451339236038638626037554655001801691202936609767649755015183352461383266087095528656951209573603128539605125028143459799052864249245677446413438565924419464922711504785343314170971891983281353626583482685978726046422135079060637451099743916370768740093631642699384981379516289615714136750368222606849439830875519877426849621676358540000552525944694701997995629821687672337990426440251005142825773964647112266582890830742943821896452152807410379608728050681359900073705031689636864871357250222259012393096758059736034766832094768047815034166978109407061605246274998539214733628112531548117295165539371265231486946655871178244561440660345515738124185689200663736746574144938271414078995310508370701089025555941076988106691792912316855617925556702224388723934157789891749142550692794712229016333503311084844530386931591778882718722831495412955318849944399734689614464116370392972294809281735832004489576496102331562762537108669374873737293682917876894971860443021033283865848685563360485938766335062764054520364674531096913982536271054103642621759127453073683991214197003162783902261062383322240459176539224506200383535448812806059834544743628483440898290160137404537947002068159797894772893678256080287263664199159803065043577550737005041549038916548299079095590777518689612532427556560240447118174863831305081753567331628291847779343356837686723740167130966148715749123795992837858711583967527747773237663018105385719794988938385172834970860911635492121745207752289812786180480010931487881864835411240447442896444668139480880334503501856815661000123607541982489962350944415486462122153469863717245838800676344924208339107414102695900114829422242022358432650797344340000709009125294957586109386007735892464133239945932438923337777408231753878560933867718571995121406764978186461469855716116085048715905201883144869264600654136350426397235764726132979383675834056315432844696131687691046063683044882914287794043308107573148888371473095660732959068871607685569000545373673090185198012720933613988468067614015360883664412367349528376330430639241048662197408321713696027736487069569332498460026981443293379482986071508698085578229740228255807280081175020006775745011214714437001467031234944066138598057916583092153779353158002149639853530550145633139228954722071617112577734971805258787130463815862744636017414364552631493190210380638093043750173181210146213910257660070211618834195142546228021903547006445135383634546901638141198405331691622366694240070210156315117902338141254358198823023006184009026197613930151373003227905705685628009329771248704935596646136143850353540835661265740709354336595339835582007188166921881218608275100510883470305504236382347689566505484512247870287853546923671965500848257328837697158478347638352400734444655026323917133650453512223089265012667007671915480586760133771414026314033495926393318900724636953775742081202060778902845157658434281425240753733927941087992516533610644100203606083506591118102239839838142678202801415851591098713726856139756225125909730781180612329389884054094491325154173190927314376805042315248612222651954660148724121739292676787566301803798148276071045456839036353068777213011885127294629761885744709705758877076530842266299254541445333787763400647120179595475412628262301069987291560410136501991408243039278839766763092744897428744651655607549735314709204791092660871742984773838565459137469671506923716329284935227234743234747269051955828415894878493811044643994185813226988614266027929442029237727063602668162869788683388730723732833051003564051629313645593122976486258108080115256793659914250924054467438249465063156089298404873654160386407652407699349358349546675727818806996674330044597967293773605190177435171382630775376237911004144431729774179469914784706994042344647384935556379473924767709815602265118991072369747747271129907701112553130859503135104776240030588495475944164188546083407432796478876648618503248354960974467907218228067732953080444592533988750300217723399395410183546479024069981455794164469819293341265519948648649197832304765260064636557534012680809138092209833877399518754632155558832667637141292680771999364879876595021241942454813778502385726056147752894123270592796980635015131751326127808678263877356370073884913895613751727424535858611505803470823249110844500858018243876236518687636520147059096891745397359934934056640465054482462876479791515330502023008275892064037964371069200477426767514000539932677979512192548361445612205140380148800151460412912050215964573514853540601503334066418079628137515798603725999749782757017094313356050249835064091653451833644293333392066366674122597991803169850307373623883174177911470661949291120100411511321898716524083618675914620243652971455197210194200174730194530237980098760559945500638082041016609822806556884380180484752796481183645479551164044192906843661570381132894934959357906330261503917301187100573226990477200889444683908984207426528781913761901960314099465722301317498634129894574825042483272154407974546161790190561199596665688665071575447449643133338792010343117430671784798375834082072512724281372554791539529508252966416114541922023429287414644322321965082537719898110332349054310901684029933310310330689886292986064878212559470104106899377230871385587577613176909920120975077539515609871733414478309446984998558683713465274584472159874891943403053043158148996249147438513389773733133268909609903543606554368343307906733135874073509708811837748295665835424065730172702872953633979940924611779538559267212487013146291806925581052071838553938368525675714992045964502076449105959527711222703779053261207274761793209639552872356918239094638725896112862581497940171386324471497842437500476879127814482445501571720083978567285343845513605848138383229980194868876631166010976215250383281689274143389561782900936711278045246262870144099958527093182230589178885564061942736258383397226405253123923089200135770261548024598223281062787727091777931781681411207954001546142327323858033815788405428947040917745868738478576605981993408416295930856625082712608662737368340335888763957483228891221802433294257047031229391494981265752528019556407593659038807505206597594052681269849350915721365139449501148645605907236970049451995276349377991513459360006455631836375066199379887330597459030282085711463433181857591088305501096815449315784133604852981349201320015463927546726723739387109667739619552581144894411958886831139604314085273949998037447840564334256688149691441060063825176454705423661011809848235871164729239561722489558991026070524648797538157295786807357171510347494647680068346552460448745682980753564553591077439471165472514389444269664235035408543420159745027083687334646153951277706291923436896628169606380807203869635517964464110460767976213197379936014962209612679221297001876243097709126995300456307238452754469325254491339466620020776109417474625791930568076219178647671393650353472610117069956887169696688719766277893024662285475249092666525689248122101795448754333358506005702967588186154938994064700149714431808388586494046022656294811144114824854441007201554364752944832351423501867394098287268897447357898534575928227735626823025986672736249640538499422009739420875326564455282520685082491947203586387967267463823750972872231851719244285561976536851894563416877409211120512021464616472987152816780260448503008147025021464068609051758169390563283158217508424887896244266471951978888760179073929094804201079916323062395704694661468317800086392757324893007983887522647095389877095128796686372938696839309440309200453797612515607136770313225174429754214770859977332319852870951497448002717149108629751215802609628089121512581927319011951873661838246673123839083667313391808117241323294751971009900458059817864724943167123741353592923571644923746360627185752060988760743053264987652199899177150499545730514355394975161315186000896981329374801006824801607551119197090548190417427994099116822478415699851341668443910912331613942698654635202154285310348236077893530508398398190488802740462374404337413626814612188931279368045560846914123346477475692383751675236687973474827587551021229913964970070177546349162150322580154793247413065101031179507937775335855678701406240839898235204116707510462203825961504196410907860383960315474856566282984180315940125100606299686416413524517056936205165716465232813634949762565420512977646075209030159768224498614959005168762762965975530387783763350797747748565275656445459943636766228986853342512858410213304669535456248923031824237082084711897310421000949307304381782522833178083895926907406854306967566964991662750489466772747430894666735681620767868581921510796584092326102189357556437286467063650131255189941701749280418021261679443885540161927326301558649641637758339762443113085813736254217219886189247064494234832241345523792395012230071357625695436485839065895424476094838386749632495760665503419656472042107256683210261600508981202994049251673337135429571465929680176291694919418099918843814629292823961034723431770242014794932936473227661190959211195897908164717882487020228519687509555407155351172783507435451022262825749919242917181313643442142631798754098945532251885228169180862881930613808559143292690076528148650045367265579020547899031731502612286554317056265107426627695663857639967263271255749044239860817488381205291841828481305232222486609372080649598603989848008815432291158208282428879755732340732147710308563026501345794386205099880256454514583534669249895476575532917255838884438215767681356524755156039877413707326407858528299003063015732901858543709545816503284193671405305200839679044398860461379219819998864558605722816838389504927210550255832082693682857206526749733310843867183156123605536526100171294458551919790395443104173361882602597486215335833410928066160426036265781294680866768767305044495649482420970617792455305561844792594989414779324796540445374369088623978876313040005599026640798919552808408208764928246274287754578804793845320126448710886097395428188271203230827747583146630007500628627241208164522678676852195516556994205394239141347902750092339322502513540377755338926855320130748030889168273785645672469221562634333777110700958423853983552225580117969413314108137758539720784454955145553948122704176945484909053999171627295368602861883982610096239467689091440666760112510009171806938760964238577506737046867325457017483769429402603072479202295229242900801058325896292217652860587502454797584789198458061416803898675492856931321402168784661031598466467791548089811952186724604933308877013994654547438127669162570709540640805325338312259031425570493925542477466424493400755044305167885320598356769441890428702395813649553304065753412920328020203724549054211599335435613559448124066831196414324823340261811703223628274283896490770897311007906015612938419874721171796416045619261152173848248700073650256809323710654024582142536326635120209074785718301951986106839059387863284285137129147031681108831681781321970943083134888046424604894482952628758754522722158967468424339281547325229827917118461921518550020913257671554646230538831966460037352053663695662488327009510326114157302635626440210299131813110684439187374353835192061907732691816067933548873232947973601621833808955411602933938095645713831746520954422825846941684710755653399112518169009376704698220604564796640008966319506148683951922809177626595830424479297463514885044331571153138585427749408536545587472075547872495490129663696160618244753758518126849327438567691834396630189131879343432335089951680180251741358838203100676750410074028392546043070667938440319634900881623813567286891021426597261856262875414645349471929337064439162382679206545107524187692313879068481574663923885415688638430548348764543010811719017066806612012422995188422351672458746605885390753570215696287960395726458105919844572892180442618930173004073118091308347925320422365923392205287182722417498423144131644647762460597230857346540045100274856820149443546785851530788731127790145477237928986975504697109585806941905758874338591272006592084928040640973717445807304433558057482288336183559300359857155856336965733596341997001036322731326579715077785778533684528724921529034622758220365346339618939504067648608954091258238380996239243851718609367024792200358313648284013643448358536416422875367364572917865839237475135149201576677624780801978053964103118672112719394810310794387968027676921756394120032916297796531401478346258626502873270990291535032150492217267219692331056242520334307546086462196669216591813057684856417537578693539532805980527247181108908660086758203737883448575878331737246102897312273438376660287516026228894337319972927431786953487970015890116502754166750074087249947647538405741230626906360947454725699922577209086614396853698284175343520154916264214009916452571095607808753036618560883447528258536173642546120628724104879507085373475453358133342773376420893588551987155804162489251525903738999252782369344867361699721022800062814530187139870378615673557838328875894310888303871391757227085540466110256497250848797538773378305822943242397638319009551945080231922838757312804660427980984634053542802640749947790549397966353721515200236165334603784018866268602337803232514630921177012192292492037845316054861211972995068402850110610564516667369460661852843032938468857485863464123253858934947628301599605847525129475442687225131139485152160435569520531775334071449013234421381761271965333288197872522602956207156713239022455067582856780475928804835213701282931541808718030469049265631103055789212888238008339019548533083156974611650340485767439453437372793406405404521946743068160889780265351232470805382279815739951805323299879089904840327540017904088039017946175978570554993148255283479171406017638512309597073053033894024032312609218369226449011938279806945902685028964224130807909951521515138568418840795760560094187063881221112828577352219151600670328591539359562823781491092782634476466725399584806492628403476952227553016116738554290964779040286001323764255905020392362783442399018652420600868852588389983285043825463072278578288889359897323988684018817401360516665159303055876908885235853628500398276426385769924439164268831745363776394093239583216162517809523033649221387251949113961407180963236219495083518832559315302718477095003828758536506701521931727973144262650839704435621535950502827290511678633651373889195936467858497638098876027297418241370012740307473447996954935796343600937853603890053882653727904087056775009682451102163682829383702715136589913072081534678178423079410674792231214009609662567353498030428202463174673572410652426251991162538585353811588630421397994931201128316004739556419751938633746999861003327265918894121267057855876005652794925007005867992326695632819396125613160792646841613911935965437047855052826070287416860548834748899832465335138864684536021941936619126521559745382382245698862365367235972782480496945493663994886553989843854077640257540326034634709369485121618155710200011623509671647595610407997813157290854913223502527157201400981065963702787476733475450934703357790969394182047910867535935435187776169600516639222856163675463344042529205432231467787866844019591325447843943251159386209709084858353652967512487787494216059537530530283507887303049690804421119172479612102777204447036980001045690260501143251975708419322076626320613284880118956729885104240974260710195214987544995609120234136660955728124438354693753319339035696822603038231879612244015199722422681861668196278966708844506834098767167809786442870144312810620458522650641436032156864794791985649264082076692012648620314145457017962503457799248505795451532187748140308042236302319798499855366191771786372024415549423554675545667251943451227021368327595358660228410802582311654853803961187012579574675079735775412870475662858951848810858873742478440890339620293596144272436296785638899649407610596291515885872985608251864315480739162648765168218209159428952394006751572554646914157865324290826794624334377828039933241516493035539540127634388867659438163591452056131312267156111859114245582728451769777809251394164901424286893648372763724780941835370542398391377919322710572601757657008959824785962794532736850384172923292136176406837480298742922175916871677189047043790753810714017212491554150094332096487046856448069535913755025990785356561915592935394739940544398569772488968915574162181740040791227730262938982318234935814354223431509351411057163754304300715718494263690096458111136359463540674351048360289057681748104788998071982227256518894645092801380399488269300338746867782514038978437979289500618552862783877045123025115790548333621523164295490139968828035342571832249390295251153743660591775163414833469757238418950927656548385952744804991473118556386733987841717777945784454326462714559872387065241437771348710326906731681031546183184435113428002602164169413182756961712665320475148092184940533382041247899485675547904469126425742560929300354278305784069613598538362350638420877765121140994948758566921597785487006793710690000391123387442604063793398552766214052071586525972712927166887323367726938583435464389268604403593585763749699487166435602179777666396565236025141550112185527148298787118290266753581892710067267657213487633909946881106524087292529382854395114660858964825883267197493397039234570824446401916118648426183136142358402785219856410029382174323259300645925987741937509806207591638620824902349472568261161648678221919249071644944311293726852823849711366430991626686824891403067876948502148383252804463901576753319587365460502062231147592514218311218726177267926765942981949612809232776251091333594255307764189140685187034353075065977621078425291126139841849789257430691092176659963571478054590405145609648190657305754082052848991670437341656107547668402118289326496584779451753690765121453670984761539159144269872629095049629798439977018782313019052926726484714130399526831027706874289089245073296004376339104535231045637016576959506114919065391835559344391379233714534522145729421246702873427756667177800428196470987742483500941029396724878847537177868384013499452197494408700280550428809381492837925788736660992433091758666107707571785163877274759221447216104565331361345099418894294703751701441130065308419100465251361742770438046106952834364681832381556617053687783436902608493240981459244053497440058243644505166504378290648104473035786270310562527739164632854192221597811728408613761261971724555695205627045291923031954941945951264247972797349535155886247844802091563489328004865167566188724127227375449998476724910325229607218925150023703139194252814096896261488555418294349353954460298406820720356664405553316485721433662327086154785950306067592834872037771906191136203877590655995384149782989380762495546249763507403522884019829507519327969920893707373046030301513680182296662898584459526932583189027291668655821776688741729914886325592147169676549525298034289567502591966594986354333023642942628874863890936370120648281966531392639464461683120411255136272286483174828348077301077995322288132101184014526939513331111810385380657507199329064440505081798997625946843073882425680019114274549719396143210519986436504990858511376626988289199214965232683544962347602506939607735321514372755695349221435991011060326541548517511175825508152373199828596526181125882852557130080698130812740441699696455479396842111155890731506120928173894602480928418762759587502212857455495512975113727752729914861509109272931605391951127607019270003755110746673720731670901101520367830197831085342648626223292035358849868654433437038122994717693838209686727672587465567587757587610738087285150279052448267503560767791366200330283910004923984561666454367793571933255121781596720508190879453751488166051196554805918088535392475635612023927658657590662267348317397255439326039706050461649915817687113771601103446202357814349244777812285184617611277704443474384117611992340661374341123863609193556402174143963032453382243493890174729193264276451016705394558627985825770605870381410440958396434184774862902970809827938603797260134641007113393647407676975167635745905409900405404292168402539965754221664324279748038571295299388657750807676975066263750869686424067081820221176767831198531725483466996002265742270977529653052738470469955581541878412943126015280808634058663809732306357961434707135604900225188303970224592965989184411018485836299144511398308265849817499463643461525765934044809116108897900325761572881059433146982458124790935843035046326615113746262676505406020887899229881948763206257598065472152933624841978261892052693112807956008515007740668210361858640796518440078719099243078526837551445155853129148348182886782898733904093598155846869884620598212066358367146509793973286641655726803596874836160329318755870156679697496175997711150454027798545254968584226488730344328242187955514611465467396126389187268117563065451319326256334601758016868208160527026224970218059300099741664460715773145401084119094437812398765430054563970958008805382218609007644872043312047458806258422957581780607490563765627405080958204420019658823834346499132206471674949940506936512447282939524370580587885893345771441845426253097947096364800353027226556895589322412749993620317203626320250124131759161980979910887029411356906735447082446270310643025327099675315072258491732883362596987669326092209366968537245889795625666736038459760613475255440626310062125009321818361103069463541492549237370402290991512928057375225324974162719897226953105624378730592811213761120948569104954256041603003645524380090242432430017754635307439796621272938158902016374825714381018960085703612035312624388042778435286679806475547302108225479263432110430974296976988925827581333759766168495192324280666957155588387601354978591495427819136311006543557701045756225001707545089601346094100370596165189753025635385493771741680187773963428999490264259753070258387414056929227261129384941043020321256322693230114469214130005592488958264043362566905123002028953362331849942238037443097168349018345610829044275187185533523734910907223399136849863429726797899385033242237438209390505442345181365173744605122177276360151878978076241953960402243239430174071395182734442021821705062650016218530741752883125604445891270151662357496806218011792792481840586427252251819155115994459500316566658700030196145138133086470185821096466850739607857746306184074207195780329633188244330910062872781903068384829861160119047140418593125264626232605513079845329280048471809914681877090164678881734766816896279874608958690174976046055294962285260704184644242141185301675659504941675620885074164294798489745863111602914559274452926038089030457066580040454751995272182383020354189132829449757295705153947500205987723662807338838710919260906265698015282067421854762304986281752546881379502989317124400463074954300775498826684224439813806599901201974896939568881492671459399230916833150464625239725524263990534698891782817052672559558077544894269845926025958190776311527140536913204862386394372854217444074750373328541670458023791395012040449202391175025262637770000971406219217651247293679748123009625228337357780241005208409914161636281714125234373393101963446093695213452082939476406421950805120766885586769842425189015913608690544847765390319003345435651882805678171038867558528258407262631031770074495290872219496690858241621942665375307105225883561303346475227923200030423889589518770405295850000823453996148215198683285181731622399254369279804024632653046088697633529429572202472862225930838648893535400505625473876511027842361400676064244927070535704005740623936998408327013225928117488831122670400416865509543362196758348691655879127814800086044700385164807579672660152496608342043825276224006177073226282222017588881793372748882628400492756040481837126328126651078759981853464130303462193219999542533199894451394753153424986652196528390165238568909658255846580870128971030003575567969443277160754000128286916243778075261858007870187681009058901345911740806437167580354014795683714007278647383634912781172923766374499215264392312805283030414975316241717219114836677348922935682853150745890071896251289234551870124697746013506474491416808784669006969138073847734607062565503477550509898175526575507187529447234434935662531600290227178700424197071736731512684977244511451076658614232126992296382359307881146806402108999043650219380444796924626711108236119708747670043616983457707441088533058266770734417670255327745671766119869035050777014654418534003190877713647569725343380179314925116774858125674826891255250018284113483067568598795554694507065183177700363734376846257414924967398961415030330756178089255685620245361866778158292415319066138983425214888096324554141911173898367488989176457262600288470432741683915227967037055725562625360324724546139704339447714877184947227471591901846572131404665204161711197687823180278098147992515584443259086174762363477743654703244560952228451670441032426343751847165459547773780316559567983021025252352678289447774344718990248866454777347793546832984428382079901071329121793372933138578366474889998599456020465381100690161839554855737707184286721494885777386643761815296353976566049184826383892288802180901726129789446729877694821854327932618503525055377760107260053496176187851395969271068156213063864342976712092122848840549621295006551096952811127257617584731987610688528345880164096075601571072899384471948888633040408908612283922693893071463118629360360641890165637818151787174111157276272160904439525974309522732741330610733730514450124278412352747522879233817352116727513169207436210209294594198494905635227321486046440465883348770411019268632118240377579025932416907206715836650033212505619012599248351055792905640729472133654039584777656567850276318016179139540934775789835010633730899161661016310226838461925684366854002368107211555513856830839116633147069750315601266398276350852937948115778116939275122574342943016444337001381063567303882340427250081836656639419074981495539321282310774592659842509444919465729696741436661780585444310571604836958827929971199615630638182525259167712726884729957901791125228299925043357162402248238794694127983372957825484439409938646246067063607666911827871061514097816791630475984903539861007493449858869688476802300094821648372843248334985100921103286450274103946881926675122877113745012534902311313598321996580224126041381217699007889972860186031226516530043409633332946685801308787142157583635007501987357625867118656333093695337203509522455224954018570156278689759121871317793591292623098791390693777443741081576127960229431482056032931072161000792847778669677016390976438476600878725124507465336163968438560653159033807171431378380445621204765335962052763143066805154757061352211332767172135153598590019299742275802361553558653854817473206199316502721956773426065830612411568227397606879787103728958209327411313794347268280870285118429932678116643668394438435438722537565621922139946981155895571131611737516767275574364392706445252424216047081440218955043907963922515396425718594227740596382777198243095233270342247491612810109235333421081198425611077896284437973970304859628117284230563049793472932608165328659809009498343037485968122886998139690827057815355153312348904831278289560724487952825332524144303418733529000621893162700718084633849352713069671269536359474963526014251718628349547218029027341361042626561051794542120458691998927067676112215672229663787795628070789264603575328773344105258760847385033891388918625069558527792331391462093206874920933658637523728130922001945282788364660682204894386569526850807139536582632271250185201454263903797651726566112676333447787808930227021099613458854390989577530797880830627751689064007810051785691073530868252784249195316378418154057331381087806982687561849723862256192944763777442021829675889618630731741692003965136110732560018021230633303089514989428918961794490793658835962792495253632911055205125748439325553053804874706855755283135253190188864828815634268978320409122601491770540553529740303968825319932036611431262479639592227768252288254266357543423699804621902597890692844391143637700644478796928319214278390559491498710655419558177419949766249276029967661767877464204123628260626254481546693063943666697255554859226243223161500931889951095982695968165829352784905984321285767530230592861643709264628395658019044219358584826310440193783149454116635318006240338942523081506757274823079705527930206815057406148699813127747446329016954355542826951364135349577971644138799203925694794429775526030710614309576737895429897089812830307061370112612453970760311578823755404920786832665520358219687932412018457988814489123919157194596896321504328835457036960073319796340600591675890733985447907402916919840949137039158291286744864338972237477599883082843958677824237481951149882342887477198972358343704918856888255854396994313550779504727336311272984022036351603456589491890560457981863355849398880132998423787928250371176233003794077167169381373828183471255810813800750225010028074150965777849856069261482517590269715067433749660835347608585215133489307711661398014977108749398460628208723487084817949700254628656152648956375595659622407201839193574784193670579701735051587134531132255427383656678909714102993691694003844826494902981100868125045735589484524003589759689611397070746924904754365452809568767336632522093465290163163273404619656518680778626893119372906240395903711658752635298885520918919117556018774852341967881849774478388103299873979800572792671365424307970876616354328331251000569630099060825622422178250039397778840270306915313207693045224871029277114482639942277006551960272944001155361492883188470781765410797667959212399238358462383213712959990038507687299672024238796857344840493868991320524123108677168731564025209477576197168035698415074603304287170262814277120412235636142699402565228378686414352606800704374150461826056253679432871444588959436917328086382763251616394879213419359667867802255629935740752586668851961397615357262558026442416414151235387702207609496633353554513864054160148818516117850643955309169939009100663165189460372969459892983556079617101628034987744865407339816182503800723335147274382853272893853384032000128478516431156874315104848622489868609052314361000599285860313897893790456893563196528939419794285381850824781293622594487778401990959103517351344752865970442273776790769566812201585313599617734339651531727645112397511838431584489319835819450689192322887483360981778569145331029144099471720787137802707057839352837149369787308564487586381905235725072208738917618220577384702449696532129372334865429299868478306687725820886922570839051478347357970559946743010025498294239903369413285492039548736884667566490650812984087651932989441451359991793769781362816033132778958582709453118211518825658552863741761266335300168555778962814333098565683152153012243935680001291451495421378513294002514195741325318457314295481209414374640748543441492555914449498260569172929281750601955246913588110747643940877737322990801555444968161918658771761108773730023247447444469466677116569890034923357607416813981747085521490347371528237420198850936664660642417197162815450121970084370849463725009609540329021924312902105267137494801434109166791466524991097947135800213393472091968662043791923358321107759712770858026923921818074443529568589723325225143163116911206403842506863844225285875113302209347544480952829711424045109144125908785315491422887832546327858147149071954742654359211143340691111727311046977942355580813340182546020102121351536718212806921288422216352114826318955195303536252404811240039095426706673009251603769541683153056947967061413051788592459161009617891769310820113115556517534697812574240087910498352544916667161078126687663748630526268088512488092038589580236242754609277449772105242977207672326472064083798807112092028435916237509226361321520743213912416467757163688783560484600945697556288312288876416783391865303388731356531894910649657040427740561552520222642606713944981723591959991923928046540067723260905359204697926948247915830556702098171332383590736827396859406984760379162668962822426867878605441981605779811809440048787591443726462067707602892230833861354087919781093264010915495601171801500832474878840096465099490165861679377495459629496011981105109589579902870259747914211134936548156982292963817508910894354869497218569720829799420262605838661366356015689906958138169818620626024997059386932389853992588190080151109769820747288392181544955781682285386386459423220978302360948809025136006923703895821053769557347221198464990857234855861338580683464911554283331557831980044890117705752559646838648441209494556081364984255143718047829055298912032685236088125389329047978691268014933967601017908566744586053656024719258129665388423362796629977513279698545406483588779404033232125902018264495270790071432661493907263244626087232136682383575556517317300911349619751763523070355204929903793605571268934048941051360165232316882641151637594150018057938999438526197628270966980414394061778396590929396195295053638118530523505113096654675477165466151528819287693547612841947225334351668145851348947004099562096135833173009133423564274013651459448702279337072926437098592502623734519397521820135337864661053505640388623342410504044418946708506274943458818714935949531185331893152768621724515677510821475322521069806538603684504480740739021416405100494465820646492887548071491184325468251217070232781465206237874523078881539159856344585908900805192668987726487330659506237800341209447497162163556499572788732122029769106603539241271861329658648703002597432897314214746984044560724941085845037868704447795431300945448944567937737789846118367268332303877766585458576249794466927963399878634229903732557132456184212549420764033003502801911759707934688789419761976361714827751356560833341460923214673217792064584729425296193780262973127389759486940568389371647787429541523681244956453776528832717529227257853441396821360803126951389786931818555065213043176261207318160550396251614546988915742924530094036097937014049269607087786280703261944433097472152564616526225255264341584107463015652133380195973759909849677734778761532988812677888057702337099592185167400513990133461404280578020017904522698690184496444479747219196827867947568058532822598854021181354087007527385347644704028079840866734179711773739743049204823047498435288239221687789201337400257848992535115562221275152283546307422759236670007530128182570720067922319672354538800172232109601506166658951843363718657334925405124558771237618224316431320610366182264551442218741675020956296152271248120731528319079322376019848161442613184964380449371641792818586616651830607463181945360075287037079140671157812251883482913018345941770950375326290709227463513838151599257790183609321834139669837929383419476866646837652001984893263932198245978608616453318244153562431608299411869322893187528736083761097186286895520082033133764300674004909383996047306528302698647789721332929363078026487171484335585575600189326094200159345720187498978562480552562653710738666770377221738593761942841801914966518051949743016577233493037525650242475455290363897990044576324288383712831236803496224392747234265742994076479751280128898844718917309028861809965653536438543008083990409266805304397513361005038609440893228392230353921185779924435892061654638888567898180403583146047888219238003325149748274953437368224342312983393853378505403960726616833390805044454770158112310902516620802096039388813411071390601281894341811090498486267232152636714404907204960223045441735105985004638270833717092941493264242039069126755855253712685549115237470927909006737973226936156436559239259565413496409899456656510171155042568215420764242139627820618391378177627594255647173002035405550700972168510818171218797103219107810355979598281576544440387592125819569517517873461084841038351983210083001185110713514837226528544036269470073852530568387182851796904344246400717565186428486607982335276516232546280692437814287893740083395700961169436486452257222614188948108242820560836216806156629145387292669032132978996134509495694632510555191941363019209161170567897986001448095202440918562475182508993786399827275696358692585857539008689587792386388944382815553427062042388672287977808978826515634849209891769283436163060639050380613535343124437256340453571608962678663355374529414023612236132955466158736221392879564977200866085028702007644239317345632261852981982210673788181387767095758033655118691671234144760855322334186768642271143224832423528125641853194044071135098586163196170714714220179883479378484146696371558132753564170627722454419862723802853709700016353664103800194008434280370497343006870871101672289588315903524790020822459534121187042033379442679773206149970735166361947448774239528351362299357627454060443625793395464913193037939797120288593466813084641783583912766373197984357572618321564820882585701054262478799866485870369599164826232245742151068945247868262296756045642457127556034643602626972400801055988470477030540264389638273430090356831181054656254570202053929067479377371001139321801076221843537749685697801796662717437871612358204948728820803759123314431253241982913796289453572717891473532107508763155959901100435075746891576073230077957090750628263826003616790613779363298455670010053082934508260029337887890401711242932928056616078392614324625523479098349306089829855772985752444445288637590829231767121183091045655102606327669720267345343731113157673251797799929910808229218652527514387664057838201332050035271756551131382369049798914022195225248055719842791421271470217346470066127792786919990788800125839643753578032324138437106384099498957543636780102157765419282547510039037438885325719549342950902055639439005755543923963625913302940920400225171758732669568391235156991200182240453884764088050838609806376398531202379024711462040963826243170523920864978883039350402417241891927947139498274191688188698758069680342684966803643863278646793976264507648546382626834415194810964550104396593994081983760646626105805240059327319505563292561914395652764814750333120562759282443270141599160464609940098292467768521885245172232735117398901979281870337299110580557077317569195587614697234741851936234090047285358403317222746651097751037103400960850977770677890364787923206768342914952734990799315776484385184433788122970607082907302221717391328770199727986938902672183692349174370529930008759813440621983094617229099788105335372898782139445804742827854263841423779019946723369021913656937569486491055933535048956390405807248964608915115971132711930843437004061377527847268315091071184378206953827669419936392868746732897997595993452404822996511746240924283595962433075182141824542154306061673336887938669432663178670090856752137130761416438323527253374136665034772042896321517976070695162049291784102488200587518089046276412495364517087878207548127778239801280444242702933234135356321112854691027895015499403593410755209821954362017475238404170155460902451699481142436080664914493573299044376906249981964491038426999388063233258546980947647461081193309046891679452379046371294897692767330952884392083380739597340156415547780148707756037910006943982573307603794936503558663599197971534374950792424303473035676134137812606434794197109747148578896193681264979112411402149562530653355841056882047803812202381299631669341058645675728889496060532800684636758150168877875516843391078019393649768082353613349264695561837016124208567906281667678559222368225190271691742937187121701980183000503433926417259759650916160864749297246777795830425662731054225725664264256924774752337261870413388979757764896243853607448774112394201517616855163848310807498761198655889895028189391942867805663864295501484916145399003203240825980967005385032636356984566272152590777695364683121807962649311342367721755244195209078875368633210053561940170224902181740882368989032690789449912305135767802368908291053881411743303747093251300533361282147787272886397728407588968763404613739641741655791319536786834798723569659851827475925803484611320909551982847356930697544509800833118893218342991176721421784953626487731653425167388433483861050570841779644870621073728556669459779760626884183543742989846618698357045337151356544399660376888559059641561707480460022922862326860426782066251862300228445758755521546218049352635191621526624463319629656855366515465171912667034755698561042101349434343864769420356894331405557365525028857379181753900637555853616973167450759722479902750959535887186037884318715000937241085396929309636546155551185521367551508011630623777719460630517349156866769900263470967142166177759159164170665558717492498565487430311964662256519536572638347742066390335583006159436137964184809532561577362215968218356157648760258408756274615145990829826779125534347341891362410428977268490395347358004073856008182036979654260291392101338280137072405976807422473174620392557886303857070719397483001040402032416063833607332472317066811929616799291174535916629073680146781542283567380341977034971820925161953780723269532909730049594878335715956825048708522308718872813209863772893900312864305109991770125219344515105015124867699956101404022952694732949566359653417067454441136973070486858678239497017145735435318593493987773027532828917017283760356938599051549333864198320522855611668857689529227995788612671275163900798658991541937325116124657878246882676006455141627253610051003982906735234455197119792413179487178313944630441056193940144738069548797967593500833942116734086180417664165525783485959484608706616728755228353908457167977118662231362502960018276320777400456144906761326638221845637524795882622166088534807783713406884831293290925107663332448249285249892310462557003500313619726153647162088012352792009715518573920403272808196812619403125882476995980055787316369465200124816779479705363833145602279979390055002719118685517995680878858169781499973026238002192205834799435754340668282912323534929711641848999049344094311115378930688152829601467186900428649090821792817778540463773775097115602862944349240175745233344812938275682784190451892082438202629334277847057726543804400470830790565089886500889892880347700107984629873692082204407446938998392550297712937915312107683263389636700279824275441106208440256943325456571801203201880592890364273901123350602052872029387733598458517829529276324322668047458920362779772499827021716556081826604884101442060478712348918337654046994385223049625019508678502944397594935757056333177573184576346589607606543448203828781068023757185176598943367354824354756687535201904328672776168102507173119855183383073067260952782965393637550237623308640623019962102832380390268548689919665178274954476568131476835236179203874176159412816441164154262517461422177812632272020048632796059592443098534569938285131557008619340494182923457759887317981467394658966500342400740303812834943765679714470175382325100970225840731258812996237553993662930434413608060192808648480496439044808751307371228958369550806167899169417996427886296657914221351359602207802916890646120387696104484893402615313180862532685016979129438490316538946126507461098166081431358577083932073839944637150826582761587701634638842682210027332473406077188166418411634767642180040354513051878919128273998316597437106374108504510930154053238699201290149107135884949272526050391861024672234151117304749914452051757304454464990255419425141073762041411750394533694842532345445606244032844591050241019492292587015692360133423046418957570027147012523030099479165222552954685429648564891779811019018672563257148549574504543544159857438541953379899944560135971690467256283083800440182904461274489769726254748602552798866473724768464555272294113798101485656790990998455662418148287243361421919055220688455817985882076764897058188598752413986606917738446604394271008025564428034934277568532106852494462457606820725054433976908685577028193790447468873466430794504863439456675907485505178752139316419770011872325090013574285640076861485531174438665132277845381633477008090885906971549288956558024959576794259787763915810906150007955276629608495110510822290573961515662617134372277279189117331798340167210894581775277484277908884208841085425921795791063549869033596463511771845178244259839265537375685248763304945401539115865613695011389047853922809312120901782655639833067151048142346472964130866039067823536456928394088198613514297643284724704418054728799156304471013580976684435533446013068117078865883942736291750717017328110501475252482560830801192958122088904270334206140361644911379704272655473097016908993670090764197757847577238665810025819403762212398087375583388194075254769667694072518158835494874841706822271414403893953378496095632999220413768528855101569834107327069897252025205689699605139631779503677446679759406745572671956794120957376627748530939394658236468147077721828812627703199862435569289036684908380354959627766463228993147177640126899860993850204360480616024027069061917326636318134897329754488158146847729493053111954944993948447798096609063612292880736799093611223743879841125160336339143089236021669977651079769964414410486923275864911927709411555673806458354607724077491789466936803178059947511189688828543551857944023855317254899501186167717876043224898990763563446896830428282942569462782254414272862940796783643554995085049736908260053984621995858788293329108717988723090567074476084118435444538644885281995501103520386214944703785077299592874346236502274742621906606873434257398867264760148372537790519988491476152811526347301353023392099900387026568027787141745747836903648787236329583626282291607236262756327651756656476686419312257464637141298646845040318767766847986812241090443247578192081132057825964557805095805137788429911526168907155765481824741325327574855886469460558157648568756437006570473026504845801257671490519397007432380385225009556110769409971299288568403819208957272943699074097588774335408788973509903784272952312995277214568001253948349743387143358072194021457229582387850543115255331796957629491099405496541849558743909683043235441392728030588544368711536100650425437038415872215090468609410797098276183149880125330928068591848983787757777576463797411943119158290912419248359336123900507872209067671389610926058389704864002134543563430490876580394029593105426710980053275510048165661927902230219836045560497288175176212749360868090862882142456784193539559650017539826694598155061147699776249682177951936120998916662741385103174278458936053098155872206506354841202618170978926012098318949314584218764495695878071407671815553008957040318167637314402496703198720452348489928149165291273666025668459798915377579948613087105646938435827509013303831450302364336856479002306929292499071296464561120221372057335946735402709134792453050275351733390983395564281852148589522820390256225544592309446536923443900383415924378426416373208049740221464040225444644578236553858693767840991091714136630419609920104459171249801043816880068516535250000615948620311511702041069364171073610145928283980575342630217419464663044450289718659062200927203270567271768369033588611236662796633604505862443618390317220654085867532917664866659837618184906632557266726096703133144240668861648053075988236644033204366192994243146293093859434411003765591755720080007547725312996880568143973639992437331081001329874805857884899235200630878655287776719639816396734335300887964084419645331157167856106322512832554202533716015412769800703834879410017929756601238207621610438125422575821900663456379139742718700985167229183606469563848533435301744163127925222290895728670412549416219781789695788635992805381626451833174311256816807640751756314595149624672715705803778879325550334723897635160613639006505723293727422326273345308383296665039174412514527438893500074753549827108886451302697242275189550992392837474439927746881810919505320256744153937545918389761625488880774386276777236872259617098818789636817445339121882241920591799420831160227471129870344068782378304856446997308460310517905277484684446796670218983024498650161014415288627152483584829656529531391296668522091577763396242741761175949393875973566506964372696072924859663434197013810880497282510353768957167848829811104180931117173808205179545658851690950811390390341500103625913162544689259419508482297561910321345537248647182968836031516091477067600084503557734625850125261752678509230817832666382060529601149834242132407179776423929331501368862787469720145008598622757229099873674263487133820265927134471112811435679534392641364782913710583800581252539695588418139422796706946658970422367006389792492775635069704050903561106976655382107946653605373419060823723628598235180143411338688328411345535140616113349455454660491017386244377527927409384594925663214043327168650250375918430171230764988262037989068074029318460545252836262340032685486912849352644797321919126100511159519488043015527657021211239526555292791775562556607488101383741879737284865506167684657713878977911451649250666887769538789439286792331928424913371225929027170237624012446975291927259497067602688810536149326222094224529883345046725409944845408059208247003021073352688153324214494995055608627903238405745042023875381055768778950616934125536677844923004533526806415442678979101997175746368124283037278575258268743085556409975969671962563330998176728634684404995315909355928190097695733164249626825130407002177633726067801856827168102260401279241647700050236073125325399074987230716875530857702546632131595398908738508260038661915264972732054339958703596589029465604966783110534510516547364419254636353769077468374222570809003101155076125499660157634616370099629927713407183225384457963092841607336476987411759760715711391635753052486962911703069122191424350808314782790194881722068675312344077354298142312082064895665242371729740666297355010714632198357642836353517002224290014044645344681009668259383744078041997358239110543803046216597044003838918280252907323080014075482907292764607100601379612294274110515179904026679546460290578734668489208942207712333268908839746868880290306365511223948795428450776429767895613606205466489504207621787076457308823542502208478320736173079938326805132366346782454560804397691998030812504269448242348372624659383868287128634527547203658645067157332441945861318482337017302513141943338622693699216754377571337826176391574950143488935552533955437470456318814312716074267348651360146137088691335347294872871069254643346476478317546378888158914614603075123071154019192570351926638652676610849650635828164540132083131178089140300540269005886919145258827929604411187117634239322025088693033431210394634609872343749177221161934750233432050405143903515039727298288641427775205673222870669906510348980068888589973003960154037477444883380257671027234429743826553503270752198059957836004080189761106464102793655804919035409715176847100662080385554400037134914518963703650312029364101033905680696324355275692920297870152923000802386500803002572919604998432968202328600093882772522392584155814462886572474146098282524050600735639767005564264314138612411275729789656523789710294252263862707442820516692078413240982137098521856310560999718188784832838125832343506803788349450217468906197685069221013373505824431878935510514707672728516755682819132497532535696048862602242215680586967399341271149843022033285989618975108879760705129210708912132371137332405008633756616944278208393333992524596303638402662988211128687759156551740056757397176205914681137115741864039963155382282519275577044718630512098701221004591912342144959908995065814361386463190650424213427069176258967327796151650275317619585333777224999741887922803169310911998076658977077018962968759703117903406589770342318696998158541843720077089529636971382421687822948648818681572335276233538147410201748391045029587483571337409841737868014616313182273323922349418184529242055991280953629756764024886141388214544577261789211384259207686520453512198137240368745480565942787962521805802035972454892576860347181059090623084649673783914057567981668198416272504839807641260667041265147989811182001864427284011617950945972651013314358732600887884141176902593011366524460577142602575473068477850404698036520277711878755034076337390556926086222004102817598972656984717101498819851828275350123676486950540044326809816076625684270039334814356614021854939856630661314326890968939261431210137226304594625969452635670287551515203666635631175759515701564297977152048148962330088853913707833518195127311046934978903768629060770009574368687231126051957367370587702956581864782706742303514127913324721437429426504448328390284979239389980621107058696209671991677681981849909746204852050247041864224706553193800311909770892222161583859811718661315839865270852960851693883031523201990605728558436024051607978465004403539639656116716954203214052326149047681532687622166510355598693454519516253126066656305531857240209107992318569781818065946489700223984918914063213518940271258477877079202672085829926592716968298882508468669284436726143206685462619128022302673480497377591572013519079338773910436528493938708766750883976777940037737828336535208841000939256863421398156955992272246768091068874988517898278645149169088304544328485440536099328625298322262697990691601384248922922050771778713191332846851779270374505692478473003391285650819985450536736677991422925372293158870936651263970346308717282871434108829889225033633714614915256121552307150280569951387400133514001754422498546469755877268103112845341218448522711780051297834643854016906608713324880779990530223976346088360278623063855368174154479632766901730585136313508113117145195115523677597836987624339036457434187547227392551245578542462971685507871447896516045730128608921436589823075370381165417601934246727848269209739766040703435276110916220068025088779264242885289902417042812007852001730867439409554000573498952262458370555040965276530276477927463829343322817574923209356617007660804259580011508074662535793478759723124136208146958703023036551404269053970795035212195261056411913887600971115556727054158232090584670575450373086438997046360752964625056840287681421814552954189940076667966939943581045841960316619517025994067993945654341452699254858538884949561020456881457457329198215231202560540625486322678435217615396877070538185085711724572346190508739342476830732594579125549666401128599527412044180891504384164925529178116276872020072223927265467574524762248139825346830812658153576829544066597093479667011352656788265325730832396823499866206382427075186846529401139600901796540744229353378486572761783396153290418734741279104277287337031487259469249923390570024712973729505507406930582026996127837738020956484562426986900404813317637604770579387300185256456437679248945039989912547936157255117894961341553224076633931519015433943838009750434899605107554166397054687943562485932341637211931139193540260532452367590060734205604518765987616846040580099358738139790202644214056872349373195763474126315517403146618017160865061332276178388162230063026370403788076909490762138052760734110314606166937056054709340762043838782872145955247252551212301261294698418109349532587667929368573966519618758432748041359554167069390350853140215980297976070746237908709190379929939662121642744965312126420015925366393046288839921056384131923826941679413763879239215790151343163617204201324063245418896670162059135574185153971359083328102728305441678094477797576363361774432515533079256424752035287623882484649006184361018346492880410645347341571212568685877171807360499158603434055560989182813520906331125630788989463708134185699087211617482774141429981944959256900860134089573913779277833314813475375500990834643872059828435305061103138256481006501904614171690408752765744718519165351208058942794768183530554518950460225143634306989721709454587571714944358140779735241862407518024083560165586236174457727708639197315712678386776879971775888615373751372585927191547614386495716259964433508010559253499515265404362142451282930111634112930396004713687473962177608362686160827014677091953600912947395627922343435016028496391060904931224318877232621548846983913252946789723374049313351013519511219550976809356901640447026886143990254211378661941795713450046636266991266790290753511433078036389730546433847635730536279213786308396951594918699323855785940833945794951463930658144272573653351966934728754261814167914622671158742756735438579130546851287128186037390907089579314104845187472501440371073882157505605041355713395360923333537367231628139879309203108982353237549797919760353411448707565000307787026087146787016761737629200918898052305239906356626195267906651999598543555148953511738949148343847710842387519968164163859737613284433354219743461990938194928963537739983127136098569615934575147171602374624915926308032725374923426771481780458063211147879056867787750888673442140472945888380972808045191408683433843322066324710019942979962728721834650160307720142905297834842055566202867026483149756080121640839671034397642722759056245691893220367268694544191645279534764035944849788243453496079538716343079212156624480131664900558096502425584251823816876265086417557899380944048313372816381329523379264642292107594110371237050552240244996826303992186145949846096535561390390335267141494862255154118763051018562304530623552035636185982013670309944587947534893200330989059465540554581776618848983573135237500673035539221089162555158240442766372931784657519843222954330432335644101731430177262196931395501111532877982262134614770744931067172063420808597204511870190404571602450997001887861514188262084235716569974507797010560027042362893218959418404912409555554680589661352695187645019554261727752019033461958051024215432588755109884252930185350210299635289570734571507140706365665123369136355945978041217312376772407763638404611635254062557193910697223377453694278503315722257369885688417532071020372830545944197721144111436543635081019315253183137458739225614402081732303329414426379993282344213398525716655307966249920381420765084605453694955241933079400853784269791669602886573189662143584892900523491164328813845140812371637516676192329490949875370103270449622674909193907449358916364151663643553472352351548512125551807705204460786290881942892102918249677366925070448390203661914985307816314419429417771868355673262353300933406947345661741761550806136076068007805032788418935951728327341004654174185891806233218429594990273689814581635934919863434765413663884608858656186429361456359742678551699079108354078793631989735744827005471587988483915555305406876767291543276589244016577758467464628877685356420100635370907215628063182852753987976708047114565652059760478226372591409154857466586869272496978636825479295008221501500348676307560614050198192062681959917798985702173115978290737581741723682827919963843766517510624987465353559998820314831052904625114217745365143666807239170114084642155045470160514869618511271865687872005702548895998037217426128800064167495789494308050983148433033082012025900431159685497644482104792595236508649952153043078107809048331512666323158490975835403737000634911787725724681783197665919651629719361914566486644490939125315528710693439839451483058697191653608386676213172028933586810911052532862083583925885078378048449417586088007112747975767749719360108530632095724204732256291851205798407198497261016917968898480709253151170825923018246023113448095106288938334033568110279221386697225982134720674809606514757029792639984130502720002091680333718701478410301966169377404371033632189261072403946160705513900327161068202500588872821246126314763285851036733042368557300241721291561197523213957439688314358045149850218972825891749711846279928417561738700899144639873213375806039588026440588113407681739724269760138305939420215715429820822630529761381447826111557522508732240266956095747836334920609046633104101361336162692188406377751804164087961182011995188128256872823527648010106884004342114529227580473162466255248206812541342143229951159560349315708494884425159314618820786154839379833132551707668456903913747401869700068193331454539976463470971438791917011790013136159365752273054837801372175849621100209782744079763126015410881554418981966228375633167444583382122647661067022351062816464824809932676721232985073361809199093639823255690813278400797590772138210190054727912246096726127324775770610386403274036368109860058031571473829032320776422426421778170797705955984468879126492353269960324314561873774490199007788677736664890817833228882915797296107790083073579067527999735744120978651559290234816596765570407503705293132288438622881730045670902782518729756821711375247110245457173150407278740784645756836765916244885631105492824181586429120709357910056641135401046135997053351300814264294447916438817277183506869141334120389579091496239379057004216649805679855969253668594720520127925475122938433685796550508542727226758798489293533528566713994897767697804168664301474781854869939040902583007768925256153616128920622519019385427513414684901010737150448123900356456335245981639951873722653396421149178646883490300940522300492291210126038804916823900708721097711033113633148206210679851669622401336228708507811788020000535871027769726511187857044082064929817832362839258787830300168801401066747904397740021445868945008273111522369873360123449052691577157475015000186020179176340413947769402315967289826272329503224399043918590761784311922536463388649290463138795197044012620498209336570361063920327944028436708629597510165489504656324609886123333913078936173050635999009899120634855059650109124838899745343328576781278212075911452167738599404858523325486704409496022879306026184080288979020584299970437470424971946669278697097472605223577958796074319321459407181615951162462940982800321728362337359520867272282726406106692495457129874360992597892459039047451757726725660927835248389336745290589309205097587953587485928712046637944576406003010476074578034581866857812869457434154184867359045256679648332762349261569980900996515862324614801403033823086052520385556242849570407352643637018344677162438038376216800267043896649555809898112660188722828001732241817895280910073193753846038243591258674763184766143808077746712984147033696822420409685894786572602035292872574138985726716140898143268470212631529869076050936335973325921299132644649609927542865588552558102910119640178222721591990575976774268509820577690579811131127225753341416797444101380561043193939679667587895344087662869174986763677582085894572477290269656045516198431207295092959922757723436626548046838733357556857294327107315019719391478639288698747504656760580420877847397529618521025969386704421667982001387306679031460421174082422096704196519479498019941068454985963162411052486883800118227133173064478310674268815332477110430453239400592886659944474128545700020153762088314391124774047088809539796146206733080344561311826840859345948586488541632137331765042301544093309254769100140305413946962332932065410588486213159844172977981097428574198640121808955092204233147191219084934415013938473096703162239150620326211048188306472322964228129278143323248508705521398374031187322661077778254284106646464197048407279123422053994956772515512836064191058111445413929973348191462661456497347633873944914658583986657695521257350891278214993620761746999090978166048706845157229713504625455172678034069303520975358863886092103703894316811890436360200839179514488927197088030496040215669299950793420635665302247106807493801950376592520518967070405212996069855233824341413275307680180329548345752781309540087912623956168583742268931434959945725209484122267329389954075417844449372962162020248122191591558497446519051575286933633231645880130872747509605154982145041026531186771094384389558842436226602272519483849619627646763463520750662361765048795386183119127442967996652325913911290934587263258498295786780250827401118018030392828157938295225505593152761347944704744770076074007149959946962391200591715551332303347793457003750839973754325076922879987869330516711476039077117815531493447383258048780771035537051735817550498217944466791547623913458326200062016063283194207541406952847054451573031125707219336954216758920379818699285433436173623263083998771989890434420840449654812414020625563954171791608167574867112339989414404657427654506940063896288880679834856524294739507187163671622152670930112909683461112153136528511024475194437144755269647465745512497152119245715130251578935936885501485026578597282991740373524563772380516750411866484390586119295533978952547751077989816264673738287613724360063277543437961882204619359866331061114784529376746870089078118802268583706480201585355272560375455110337350738482939994083726922480568768340555176448429627507614015670743732439884501871102949110883235737811596074438026301402503894161914568937965420064764294993977017764528069953629110073002651108907014379536576840094041302130044809714330782760889369266957927996128041309419155824216034457759056124510101424190903500769969273628535748281781646983002925287169762597521932078188601182312392903186679913571929887581746919827796500183338883718712546504282344904383471458958340410810723692686020550989422864503452804298632008842993932213674048600823841972422931885914793700331918598450165670204162471616404711915948649480352523709798669762194290032759755959356338411082673456179162174436385899659915372620077484916304786839394181402843429487706063370701530275464040464518188581046409140205981780204792977156814711400630154825640008278251729975500755343242659890747832679724976723842463471821903921252243413935342199766086518928566041556286871068442512974936583288580569316226462033573738985317498973639682544366314236569350893688420799714114796764411371318630301802007876268613168762530052590410983508602280428161057770184901666580113800668292545886798484338611565066029989574558047374610404892298028154683502573436659908826099773532071994898892490579658310507481688808634601478767832841514670586000127229101145981651332449754043267613589603571174591365827179916246324163296813277145300517628054465097841747368821043303189114239995653768244150607048478313732025863924468359896145072076673498095124070207630832016464636730502022642990715469158751714077873884713037269014354542887280463964931564200300037875485760125588635079779318996879554951132108710647849712017120028666003715898380152419490418196086167279739377764501509428058714919148307906496473857252231871390566014042969397146961921408860786571926036146400826116540310013734511504753383192307317895262147298818971037353689300846427889406712768645809660112800743108680881300382429145213557445071526096511235679706300431722768003921543918153291752950433863914697905812240719272573254136268065656511350325323440383387111170926036221915252064752629401624704598278289547021809122028059465179250330270558069333757300599505048013634995546432105012631910452786813520741402836154342355742874728524030123686807186317765589915932067787635782006119072201373016888277409666606851321463901033777655483129233756251087539619735144197650319391550776712206352872832389613527006987727609450015096666312829009338230269236655690710001999954782785728898188996367979508734121170596395035981482443524152730891664135843623841222971257905085305846339420682604969100378151502684362663381270620412980428171508367643399457307301490766600667382237458893271585617907469334605482793382499719939084259250332440301767895876362945306037422507689689318309876490466274949424215541637390720237627523994003795225082985978316399403941592253611911679392339189187147687626121372314491680502036867215418213061631192683055131286709499269761486929443741410121889006041253690039959799561222245079742783759792982133830913082009710933574560622846126853569359167468953314223315555816036708728730326800561398655167754712369142393102694269672907139568242555054746049722404407786794331501235095084365781821259325112570259179312722808504811140078192266870110672573334733963487335745704023714991423252949583096806659371480983424236394165914000611213478814676418663498580781840708863968836241208753047218215790072579208478188634956432619879463345365726427702148933725411341485147876174332558828773996868349949866475735279085305419963115580707760155336649971666790769811736379864500465427031238786803260526933123858648946599611281169082866586815750602666486847304112175691790143189874250937517759623470737185229420898273829605192077897179277045346349911389780432207984507785730057983923331131985209520198741562373779230920243912019578626749116270206265696526776687213813302437299629420459863168522930026001852639987101600105913174000690064299443680379148900214160435685385567158195518368888733272844254139684405655682876957598261556425565895212378681671039855968694201721070768549292879930301640881347087296109176401881126004599812310288757033897212986860883796659883803835796895995674087198149424983441180981269021409567329777508072597400821873863879455253934226616034278173495740273713180101672069766523616360298402858259136077682536396409417228531600138943747861823968009660787175974063058913075310738768990175686227267370680985359277037902941701644978113876366701939679882805119557970535463695857879586358296684460689767463711479532030097903743111316868860519604532755875821325290604757730738650645593271124588336006275603661681327441881821615994573486144359544170135778620942963730829885993139988335619103029726897589547762231140250954276728603706787243816172580962380407695227513719452739625156444358208466346547754111821939486257317796545284704783127246884039203433140015359675883539627820014496502085380133528185034793559879938242723501807701743775269399925708101098111722939029989167789879607006884050090955120780892978780048229264280552702563900205005355409641759628789457086935444738370295659295033308291821365439910329057743221304671272194009658598067320325367917063529601182823146644856800609819352692386234423389030565452196970306668542479470946382264911460884847697795931704829050745645615829067812050477417802797726179431772056406561942273290821626493430597555750812986322368889322385296944748103441286077684923552818923169982506498325938117077151155329962349898223127247720525280157876967983592782818959137825452535110859045477043895273969712790003969184904237630838136762679530749815922370393830507901836860372539710376478507522439682433248359605585207191771702565273211467407033922979523226816382872281288963990870714385094369269498761134840633167473041630298033598078802361318848497758923584468278539176929904387745525099045238052487929870135226248449713863261336061854280508461209910339126179248060497002604906993122119383675237947450258510363111204674313375491908555753578406832834805652325401869738684498321358015317575241825758922234831772391954846453500575541673391595802285701745236098300496382937066819933542234712717649213277597987184668458816855131344582438708836939064390799608012337190883965512226402334897346912288002783380399372714264256555205275813062825849311680902007524696430494084440630664805146868216076363789750580765883292928084208895096054772274716239826052615275892007713985025344291185198816673494849020579359015168841823619321391361179344348030982878496966205550751810875537642461720318054071061710590105439984307306928293512672020081012849019208586685463605622255090482623108402700137521210585930457453069519273302789556449544824995191804858082361566302891349977269687903877334103602185976200245644422843286691333566543332594488321319033174864942096179033363788454920549063177253571192691365919536770249945973227623500035376308998403015391280450168573307106897723833498400496177651209611873619472021153022610418257300586354365885735531382764157385038655629332520896770577238834266801577786670870378084252040320725512284941144573779473591632940169159418783501898720893156367357942231787283924135597437590537654088330388947346762275689880715388394875350984780762938379435670147822339437619527072692817710930785627201969073688714155177511461095659051059335723110231845601411572609774391236388440209955763258279461606219122047526236786552739936448834134529345002185582081507592843029401552409705249978899635536792817371184846376971436887731887237928185899264636602981179367467781506115487942302399248512595662869020754481891387279627731990194809308875618844782458754867900282723355327800519068793156760984974595528902631950016187204313228656235983440741022529429640839288439027727397150628026298422664899467350409148729788870420332279038951380329981012614856550610086520198810924242965801237847287148856103353713922669762906725230162593616632483369064325386384274265674138405205098353805271101401046462880079744234783391186390549193570084802257940645791640952655919866639547018158133251719077982156464411354214999939792971236136071644116099533079953744956608059606479967523250492286778427259254434039749676588294879774173584555911201015755011915185595937631755074209745611440349171612517686107773425299567148371505140206715840714278502856293592946752435287265079278398956672725322744850255525964097867150642203689857510372730042947778436192859529539422768247391998958355732813802225970863852370800210380613396590928085601394694025266303232917621479773723615481795985804651559695049868823232329738941951479779168684067229302757710949178271714895776886339874834227245373748679188558106964740215432030731844450754246680508372993704497848058985272313017965918443366296046214034853278580826854729937133713064534636049456804674016527891042066761784942805682112342629780639934479241578486272421338728360243900354640309852741295729173871501282972979109222591588226994047179940737665275729744107864233644546411344548219710614557786294393929475962120849834281368798939618503291698834710852879056793248940433643939479644170609782429676465958594629613301534147094257564796516300722786740876018194891971649724946297374407318277336375498743440668129663168770400035755619842735526647017146674851734763087641619726133921977994788576145747189580952616336436967429231385202012544060077057067949663278899073402772032936680527617729694545235423879583931086231739210724116580222970576151556982960762783635883409149129844982679541500379050373227426849832353091456355594917231269598108629337978804303949454501011129072723586351509234676947517443563688908762498578586033961388269720642127373523244365583332921876915340798634675550278361224603794405669634695926777843013711478319841527913246065864106314300918526699636876786808996575298265329013695847004913284301468104713332248330735245849802456258135252926732236103418636006552495471078553121601525573239825891912215090755336643095301798775415466138799520533300832837260343820846194795802489124001610052714550251997623749435952243356148831015492906689930182154231509613214028134027862852165578797949072621329592082081911882785264417329763457953176009939847772950742787067647859244307015572237063766434169554363585607485769339571660188354366491470923891624313324215969270307568443374423411461665241406179107620927413536620927429646269302002454308324926411926718373361515588137016393948459174119210695947425223872108215727718209808728601972898853141483847345675588081068488868419464947218082582255131023712959351474069042383834261367445262828001286505642517921820177095089659428464479237374837231054320164321471135624388620855468624033717562484069977341479653341522628718501829244245420989077542881373937989428582339782261494360538336568578422418118088157088714211720154302839948394299031128160087293494724415083057262261816218121162835073946716849658785245038687220529826219992007164408237230013764721259323011837615244503526825441729653458229586869869578931727520426370192547251195317891265774169324726159393642295639562628011468350852912838429982426705913747438313812652167375457270994681666022169625870294735539470873308406245273832364415709233020037712861486315320656662853233544467957347213343074584230831200556126242255878850850379331974750324184493656801373391714449962974620480450339564716039362759751148224678309496188786672366411360832609753464631640996046171066022235618483719277212389008359332605492247929598819033667240792727010026615354516900459026837441456750692634728864109626029262808585231648612818332736712986843917714690372548114189795749002290689081923191286279660463141103701233282434354993877283157335466041607125801635458597946403549604633994566811866588149180104948732817275402027394427592583538324302712512744162237682633958106475392979876658011064592722912434066507613484460238022390779476462968675124267540907584442131460395909962402371987662165662733697982156898909938766745439701825818840671057166006594533209899312277070818370530836710165240521088047158279590819626504880792945393446628628446425262381657084455048619630997698015402201461354680062316520291384302908243399843403118297231045001591732328827429460722383561721681755687596454548030852682713686075346163812951740461209674839018745010439024499452372654341511461343411316739052058902498028653938620815266009300949200052782456455980499146401409628745636280153168535657266941486409828781407636988636228748784130082113419612436699431664114551659992897359382125252434155072451594176741523494530466002966888602817702377178573141909011481324853322128116777521920549942448487104536308655769621165503837167606921024477694044621369355404613718799457212442954933348637294956802628079399334514763149174203740820779041236684897381846549462131108395907626270754078333398390976560834552186734302607402763029245869043210032260430186289311138969600319773148486360345200066700582224055757265289421311752075165691485454525248412063217788571819703816130791255538700897832986570502076399329171328369404468779707834849211214540759131879567607894780676196103235905317039864291303780847539808760271790035698157674621584370718891275580189587892522343287956140112090170519846967997809899185428352116780840656219953692686890351191279403402498025185206774920299896366720736871544696293469732050487853031305308593850777180928702173097254051055163450729687901123523963545174145303296556823294761235767591536435842629590777909831992047153104024237391034748325690834292136513183110415932234396217965920606600557423805155614157135639127686878492011043981242683535688970992381937786739337221318826664124759202299312106904855402489962510831219173925466891958037111188889486753002068386821262416344351561302338159403315030467018496695461893943418494374171540444796718911748492748634319887090304367374455580344087016669665011370075753565617210215182670679746041091764849771539878400468521863546834850718904489468887207226514681100462303766448971316021119763787524333925502891197824451808853628234388050157101158764333634192502464934268244281115835977195253783286388869632876920930136481236692116097632142468426440008008888963712538785672630757539241208393716772747689537315727176506979677740195837677692754152031955125226149335592601261729192231076914919641251110520678101502406005173995763554907731017936849904966961221372566442563711788514125916468422636664838193129704347297555111482788215172829896064710891491393341589980565524877841715371759733590346462824386110858075065520977783570234516666274832333858175643329487298811655226262555611362617136286386019104802139147747646524040297876440102881381539539297177730948516563315765241625540863831317481535679172893022636486651805539836602155467863806286073943047236046264288765082402096275913800730007691893217866535315250007159034299790658311934036630346383103885915984775728947249726385862560817726529485271729254226902294366521264842978852489547722660804506377497984119261862630321717779422781072954083342496046705097244682025094671214001117645777652577109438700635646208486880649191480574796891034796014291628573088459602875787240946374637089818261654430387105778212870355422225908330637888927134951508768511702287779202739542282859669932695394941621472880793654705425656956371233317586393182599503793773526320228145465139891028334677480490309395240175834407316836369553898965279746009522291472032873689687624147332466667161974718344310247077515373775617517445054918478610010763739436461737790041050250007056807632478437532025286279948183271321485564536689671260367556425100242187868283958882906711716896693191294006463708351423498377453874587093225268088615408509598374513705100244196855531711122707381219603872766941759494499366050316980108920125292037511374055930489060997240835903282650958929590839800343650099204191868078045799964535483368637262272518517162450986409206661356270126056429637143024101449071183527505516717118913059458128201255855975602359667423192148364547434354933321315421516862773010629844486581430093348923107874893556841204032698204849794414744581749960185866663719905450723195641018835466735783086325643302406016034868106040258511689620946794331322512535575888736362317953272461190373852251524896753482674319252791166772236771909753778819220196906273235174924616639928275595535541724891831467386688516332261608121907426309404087222039955457521131196578945911808294926458038382313153208553025321238694705440185290373058254096010743341860807300677183228752311476540380006520798003924565506959137486934988543525679855406971673357722900406255068070398119152466008591092528231955516455199602764985550928938997007038708924780820230216542744009439352483954990249903744775621147834427045752054897757934193359086126530297392376317573416931101811719351815185873396207961030465104005358381310792634815575171795633922647492191097304251085340904718969471604158062004082374456270166041584568964758874649325368405633383962479969884792811910019414178520496916869206526094665291914529049001545460866355227725046516575775623250755293430277171274081000428004348203964673687240908396109843720681616099620911048537774043586536545267370592321638866548626260106622636519151709648597516487965571354596580829295368697050690780564677258877049368904117110563479916843396257961341938168883853597114303243825837742364456921761879098177111204564970353630261340498646835073474515594901827935078248803689622606394691816657807071117392840073101279572739718275963529772357900483642863994109229381738059890443568777252722688826226662599210871070434561687455077425858491470795551938911318465338601102653948754395121494721493073780973347383126446651049473474004895152289931870638334858651812771324340179469339808310588223697476566644122124161276245125481437484109865648155061972589258288746199074880525867048458244120464740053658487053384394154448171940856373205685908085572899949273135506153361869793738196456703788754779895140154417620440629118417607589213566901885697540565758741898976684826776294681240655579727702865516632862628074288674189430611089431518570686263846492541619667320538244679820668046907996339505006876232473578398297551244327717896750051994793185011831368277229306592016793177286508632656182666233715783427558777686466008427779505932586698174821096502418273930759215870440616723330683852607558481514192107636004867297180677764065026645572778653524073827584522425197316642930953355225599601385253902352207022578822871275385937384816407424124311297590718989028357884441124491349871918596348622326164852423097463420776657854641859059605679466612552695198929804487193495979705062707405692963016447524433318590752704933654733938339824135681959862589851650042878436884165521923173164749228552872824931036740127787738835594737118784903390902549829814343706399860031052890914261865001521682778600684762635902711400594765241500765519603514365149418661861582357385476329154869020052427889583610883921121143612346351040238038823002377361242583166277597919323888331479302290108378173492683448320044809031829800568074078490499239649010030723266445583760539262755067955578334321552376278920049443466585644223902582890770003062711026834957534125851541209515470287964078116027719473662669776345086404273054861556230921442173421869749741155436068738796625973976435437194095165641485563884103851200775065334019801423752293795219290256695398656776345086550349743078872607437713089103665987278042697673995553416349358615526872187100754951697218746675521362073567322247257297407610678742665932085367993301664228318468075986653449996484548762555436249117782943625496668682545603247726470445844860437244878460392650398171684231771781440084326725418392543518487373859218225372916504762132665089111088228736394386191205034359815659247247864277032708183114583009636889249746293103031245216433096873089693885236125282902958513906994465341298523200171259699882824404092619641989627183189991918544810710052938629493113298022798270711516242664933352904438784506514329669938898090328830652999298604378716212659677432708768272001492775331280246186997530739767913240037661232983024778347313263508465375887108457971861720770253176866866557319822834747258509410332388160368261531826141679224502882344874648907554676567390596935356607592247444197537919721236639953171730094020134762520654923829870691102968858683676693107644638011236793069552365110393229040017637152589896384086360826222297008475300537647097473727635563508941834782708266142687349619138970944602355695792883453824793887441471123797426542796239231817792920569416790742484304420891370015554080238929606910712827959828801030775660555456243047124063467388419009013027727930116533963225377848588598678560676704249227179354517854504246218026349987601455627071930753487167182886154778960566513071028077761272283229445739206401584744759684844195021726765311877707167220053029877713786547489987348620145318431043588264187872673951265837755361564442165188674045411237057739219485398849533949045992970763196555090047750704261719300332982407691397165642353766487591724523334399372722920166003057987401854221605636502777375096063589241555984104816122336899381146122718255126107805113910193820838464310634897021204557218421591106385337309349238960106354788134370986635163390344285612444717778679506025420474521713777752050353074787692118101541657490235519354109543884853046076029963108142599915846840952576611562691776925521598432662159367286383280388086079106034499224949370602554789238832003986734221130158068383780612698592422511937111250161486215678412760711840031007354118263123526890236559358790461701853995860106535838626694688125616008343529388592236722066526748144213363879816598899148000460004204958070236770937178622956858837190807868652320556746356368392094984692600689326194200392787745353734748877967227438518145562877655280237141392743709409132311110712401006745928156287987401602721443948163899050197208929151416518431272709897363014358467637007238211431621114052067959253101319051335581538282118582379131858223976407681482605347223454433544155542723767047149464960253616569196736429332381201543233307413142880967805281695400306200881183644785627941583968427913146689854319109900842766845889228732671243329230413972644567528112822579146688579611028011281569307111761951528079460730700589417544142616126144420751164406845024527240772934070151092557783498569838035642119303574519376832976690960952424327182904432260908249764430901533130405074140500251006878576353073428891217422834702517495940638017157502408361552607926049090681539332050044739042055291496824947816198136401175056605410474463537487493200184660508818496848661262950451289426538283113539932714727311994597692929513339775012668185098176331966247899009305577466613410099461783389578125984182854006556665408623666377647945719646244567458649932368056042509492242464559619265106811876421379564555552184785220742864304512017815899236466519291773045349388434056379260034848710978164738920848566612565391841243610015675396573944300067991442180766783988725228668728192830194717129658457694586362988432179994927863525726559729745193525508703238435106221554637234972555426121992652664124395408966985516126122139083705490583221556461457497743231492933789467293365515210454709466050012436458385844465745001418306959303205421469405287316802246238929300919177387226858737692397319902037649141840051629555655579022331159212037578882723713611190781506495418392912537769001519889361093248109202192296446379553567255595269220962721252737581268758048064282370509101905579832878155868938933908984571582387904527867207290855056337341343986885811156947879038372820562695895960600105071942178479608367455995845236346340324000745656872411317995769098549364628494151624610035032697871598547757178727473289657518524127527327751249564095815896730067275905651999437979443178263273244121789632716401440324844543423910696111570322578563794742339191236648998798080172959543237370788643167524980049669858277666407928760785857272130720383046223582939826445129058929526489039028715093405287485247095411363192632432012715426005328299705982450156099520013314119864397686885319534914448166028754164722942874863240104114884932474338865617373796204880996165165420904378170895506699960360790104350864120651793703750718618312768099626276471560297892642614927228694802909476873609678036673129551170663994105788879904730747483421999222886707701086893851966727750269322840269177814073731334347677928860523851247159328323350257550140369442427144468558830025957226137220743789561353949843952906516459156054673777467280449280802782603345196388097874988638619945359211716109249402099704092454579750837748649781089462293481424884408738440381697181849933519581491857662008729959442030845725056669658675182007363843103140431224550547249356777149972431302607489117090804184050495248007261933518596882918783863253039777204819006588745507847028957127718304892639678288525517467950762206263953965349063259602832185242724073674371524035574933398428947878092366479721508023888882541670605379402684811072719226592794741570607710689790010891142052363820521705243552008515740728568997954212471753320134899114006271596502926825997067821738966510041198825808543041232039092617157245329349170151692053069371972304928807944170701556290266278521041064194266478673631503489970280676082056360060681849674003672637984862832773185635877818396536513736203734772784055612282789235910577987938313043700834410221167701758933498974958821216991980436796639479367701116494393624181029166491245362776335479887231335120669491428643276472698816337740793084655539939622596204817997538061065146598562612236539798280891923116465136415127401312682765650802231831009243398721786286350826180867152562894015538247033081841524933931931437247528009423887010538323255235288056015305028070680644478582803992070771992790450721272656345445579817469069237152456445822176324321128773366974776776956277565105149582364903741932664889138884933260993426009610243427021542023467538366115996461535078780458876905644819197860126475665706408123571584882201590372045568706422020716673683604431963651190649378193035051643249935193966075896797840880637109700422448808428736136246523871722037376675963794018164664756830688007192865000267582896757532877205823664864479297554480740824545262032007227643785279396581847028846789420878316290945814036807752564923566474784531658823162582406829271558895432053624527991211726246826110740369465082797145783445250239623734706335820934310065037729534342327921911315078461943577627197314111566084591005341220380438484379728260749508940906785182684303084655247265649799569924530485591970010102169673679973466295498861661828347910599072412763866086789110787798728674144034638968259264383310382125346618004550728088815981406305828625561328935871954661711893358516397844674011653742520851768579687210009543467208166523666132563022406808568872140850518537789213651489308430811918171502648635064147246776931688920560982439111734417205878329738971018253703410519260047696444235079051420821953581359783119844729014784153774616629469826021478563514632346375850610616754330662699879291749394750048619489959874270852090649263616995997169377535226850265422385544841433388887971916671168319492929511767568416721557594471841699598460478803140726988871301610916155453168972191441400631852052479934333391894530758722956651647136585020750753715097136237214904400598073629140987646728190545218158145935776194004615959671234930666388004885450902668673066790281113206783775336658993080668423001569282147069195206379688701224873027894826123695516366321324032659091122292205285516967002635273764751001506800158455444717259833937038447883700224599987167776424732537168706839396241239662044267105487676965823900284906232816450721511497380797695605252946965377134781606413524676161577089751811786433140408578377164479548598096749975129787837177228317253289568648675429631606054020931867210020341543400286972113585622100742934455242550866224972870805743051636879134230894420294485306700176936128184031247205147722663045665430884966717515317689145520966183882565403337226394297438913857382700604941991676265498285998270237792601668400310162136779673672085972894524982470061465191074710699958330768439195008516781107341519500395655088242767114737206964157549237579519957254153136494216089008057021869407397667478785812264628309872650108877957879374574824657165683406492733926783375348141816878402402537449564032778023223334116372678945436112269559775043296178174016570989958998996441017207748144516877921252220295389007477977841341687456979012751429359273272764923128933830039898033642799150544241623835049100438258933921397893782311731869557953750950486303829615610388890986148790858474286289198782448359039657940685687931213116088660078027177709607630170859858784399743087552027373423539631157869390310998444946570536829667517802838236863286861940570052550284663739139645092619484857209597736714322693357212970686194956567091032801392646458699663010387434974085030525894759119661417108339539558873070995850590988800629048580186313992750048231850534922386415552742555800990375085833658956391956554093088965696298148221058659535770240420310365018803488625761901303204433745522591656740842304775917623540913318899476112085517075813601470545901021145260486677006763665138480756869622200736882260721156321389868735789668211535455677549531994353371285232042653421102252321998120819322663321606511031747416680188119080199490122715141970898237394452108906141034417738296117368945784329965250836178329604924080324232042351147810195910583432791942943534395529944016461177535359167298658407573167311283027931101533313424210932528407843464593837548462041497517731329149285129321309816863152184419926963509229306384868353899551884669232236597456495573978647970697872090753096224207088480134954006635245904594689583260079125289282707505052943385409605314986567183188273574039993857852733882479596974409012405133678418761570543731388816292878832147806479245974350842434533080172093694134340747885900514826934312451024582398790681054965079534662990129277499587015026746382201426416221429059382768594761972450398189018304063428806960051756612736362188987345595118577226218503637248570097714054910207998224851745357946666053226147364683744376999156773573219449301610319977495878563066671465316213895182641171375429512408220302141759001655439183290939679394988235034827328826459798672041480931389128463497231336731344786731667774890952949648158065346480453995698368975382088358762415777792686455257222844966322496849820553233419962916113658104841806969128481278766788329588597076292040134680674604719946731638166421669035636342797983300434682287279865718636388319230636360479757725310289504409298159587365840256571719135511873096157246331527906988852207831154014078734986461316811909828226472566640948251728039953561124163499208913407822410194331826143872026367204977556931981405732171992660204359810105046492849947344616961081555934916703672553395953823473996522999620932438788554396513412599371582374668401124186706855626893103725655143286281671356431398831931503999380639092897019881222952603844684206149216669000243355088739286022763316390336011306788195428279585392027915930571030541496406366579292558014012952545785666483006892505621425425895020461341687427870921791726784769272440247650001125415800051546513990508319567381534827138661474652383834100417733507614301431662959988362010485497582835498049190775362467645975044850664109013962651745908033385561148683776839476591134687571475801410148182792173909037869326705824886224340964151863198928102284314838142207806865237149634761588173814756022192709194984624934678761086676532373425175698031115691180678730520681283753748181524899382137563475610778433488365155243411956367111800453439428631016225004326057019801855412860020181295531668634381641263497128302468884438620404329057638660660659859502646299374065604985122059248551824201078716568554674115340037565830914365973286051728851441792264292501151056157144059043336859089476414477049747586747700649437341668082057300115602031253082720728682340629683114501938351243560426861908245665610801313231511416713382538326395790767984430143519630517698813417322735957188940491725904245796638376372082684821832585138339514985414410689969892212866185850807259290890812408856968167934516465100845189349401211879639033919076908609231752903596148729298240635861090527389331793245656457999631657972088843702761095692092023693851375374505756606654662260711119244526580385065767604892482738897163967404138738001821590212471815138235112352320433716966220061024425699916594402049065003828498911918319964728077734337684372147975076376329824688611273056181682348885819867943897406246405333912630317922159785502728776100519045839061472909171397117748434248241844739613147078968024354323541579516285419232159097928733178278295462682106137021229050161384408613137007432021596076227004113316577740813307780249325202637515674557253139274073254123434356572666493742772964672243407554617424981806718329601783674672973549570667723963560536089305227463978818198732233059930516187545628381204201863265851145255394829994103765571467326833367349886320221598872306779153493881262012789292798422444146323920933025806657243462915775451651229061882219460704775012084842708575819572790886760912371201714180839643600807293876261521617073035043119267113516313095536955821983054522444623199026705649665933818931360859637992463333943357115482338260414764067108822783489387285913730945897084699421938783111641223812048493149453296582291209287551169492446668298289812545994479524127352489067136424220713116635398386254705965892490595701999465818419712490851167627831919666674876081927820631362547455142120001502524527389086449203753794920436309077710342690508070292229582359462911726070511752941634981637214186298693990639367050523918567846885506567880702244505851154986595428878182902490089057142028439110673199746872304450989094987591065149777794380724357723160896193265547394365967081580191152189211765434935400195311328315555158645231215433861026538261489916161826150761941971123533158245959059800302334288113275538567187411307149582805400444602438796442753461950096907070380332519883699655633498772965131517014993565922441576191480810146879078141330366849487810420797051096689125765819659110796301935169643979031061905695539038979018587497561157386865326742091359381167030074868532119414608901257832238411707095994187782176429448537022386694868212812012361874989287805951646356716585307406752295149277612113366385335695099368636364296781760649429872457632536928806819936021619357314489107476714324678385552986091420578352309888585254948833454755789952486782560440550018215939013761884865011716163608183377444715669135155239737307863555022789429183459897637927455348772600379696812520807253334138129047759242032659840581662925753632877005336196933892583397325215374855336489730613150907726493475354243226313874942518804893849627081404659846350085804654561435528391797401520911850970319254811283821563558585359009758963603201354374814931802529850526392488860177108300788030168004633902415320813328723240828281535996690259732392947528050875458674103513508369039675613103281553296205050639193754149278367613766291854914555259363737961351246903523646501795158097027100444245870186276022557318316194610972523510807748302449469691607016443104480181770043533170048433142012027281957061874894314543963931947063784169941522954226577725266439326917061513458475805112353609810877962637297273645223372605429585128617161654181456828054403736184349544224134232202746009826665323136311816421245811721897925164067349291272139322772255548156984452166060136450714917028438269238770289607476973087600873190352948432056970630613787375808346762364278393193467859714457000237989375516879399755018333159276888821511687490230662640988352766077449559555148613597307202812588256877045494760136502193859142984200782042958070787639625886916521741576580092165917710273324350215729808474785360466952581294866176296322409916371449938766165918488708506791927693374979800751022700473902292256642164499359508601547081161077340848761111030215204488991306501382319306626236337602605571761218509957177554008518040849620540328596025667716550882465057192499431197025683406772354885859341305266601551045842420248127931037043012387256190153048776376379197827674308963622852332319061288160249656021207060114286373399414264488778214622363422019559325241346985499546506232635079963863066394348983160418825503846598678376663471555025728542450656442462567902517952982872239269559205380372292335300530873404155562425223175461982778003791266277158435673688949637227619400704640266342308536553430447528979608730419960274415752603829478675232162873978079844532107577386624434721175022381246543087253227793730704563262430569130280626807516271303357631411569347638090755261571576748106423383587158803908827066440660724074238132056892208380286037921877802699041773091066144059864739945739959016630988507259295704840107704393804739456580622266821703936388343075339675298633347372224508586738249325336294502807769411360267043492095314854511660520403218697010138526617589604577105576864860833785275660064709439597615250236836026049516272294325938676217176027189779686305060154991948338743928103293164203203903010141680720229738587962953679139758288455175561855911665830381290824467897368356072014207498921802856098435509664306911741084027677624300936125028719843132878634044132576995527706518360335157514673966590751946836459882791086528526812690497948350683333682447013495512148995902976334422938161270680590273769920609534558421299063808136680207073197313757808155250196028374886781485659566742334919733592289307189387664141286384667589222784861442726794355483569990734140874505992492335206719219872991944360791403104095146132055761107232311716339974255551759260559713434900667728236253569316198578953830295816879149850243887678288794756300593040684052676256751113797989956551133250161481558163519436644262014448788106923648394857305508020187036207075074445840663152143306654226936313274600646744374174926525751068658732302066293711538408802469520915544084386560615272459503913000222015341120128270987186693956488496675022913910334836740380516262722620960344778609079695661858504958944678967990548835469748028043293696027565751052609443150318633465868683921718291758773493971880893236771199750108293942166100873345826383562620612707382094726072167949814111344720770427087567914677759591339409986114601359226593929832687508845495188234158775975360736331477242740773444584799073685839211942071419603858036098691557175938986679743457061127471301823846583635540303668924614474148824229161988765900740238209196261964645863519616829904492016847870927532512393305976336875118093421191656024707643346047659379629951262957750190227187582509458442169189662688155124662237884220437454009659623052836010705977704541127414485783654262116833463258265815617261037236477278922762858630241648544770818300229191640872457561005694242086713702717288214915343905872442402111806320067026401182651143600517724697002445376165637782138648655765098769134129899864330644928461984444180123008836263427535199819025946471062539081328957047262305872643639875928871259230952330458813562729137873093329706027199047695122111002813160330544988886240814123830812597830844578854125852764685625404258867654192292559244234204120263774580376433564236174402942331602198706748962480924614537504777542293059362073693852997271337194794648354380470341554579603610475658933254350966706132695517255879926079672718149012783569437598702189043079614445289436676579262876819629592349154435313547054089652340081144781742093074350093314737407771893936265312972346807843993675620514082356998325385941739066606361497022138342623450383518346407106471374803726760987924929241044746303787514937573136965419119357145354158162095543550081382885727241748779069502947884807493728369584463451736320067260405533599473699800559714906830761081724082646125571029639741807390489218047732961455863800718610589005714878863921437668902960484092240051842130290348150356076185514000749322337690366345684848242492694355950409439026632600218823645085420463307908701962738789688498107110943147537628985661873082578763971280359124086089221524595543818154297696880968056311879858606715916964925274604723857198080149488168179344955129924067136617370261782429562697349693227228521070617067415127385248135115247735154290874693221680441771929036133349964131156653796952859368267507130572033512582967963402600376065263567540009918208691709963497959193669663858564749507383532152794499388384633992396499862481368364893966527757475068127277278330338259994399768766047743783338144032361040781404929149630616391246609839451338633275478795472324707860628886964604946843938223806955497297562102396896698067972238390202271978864312710986171406114891839900874095627875463277308939583267993465745041851168376575826074491757606466184694353044453695479364526321289419895513685913954806564687215631343340653937851996347906207042853728831107291608287493298268561226915414622081371903755040430149223278430264086433531268278454432686049557083778344437024360406238902329005890033701218206297426621006572577884402479546416339628713753132966684067903463891960709709090789042604540136210455787864532074603851445421240443157676042029448881250638893773651457236948312669142371271880219656909251230486908817195236188259110827966157602575437782095945106173478542629586953418227902009364033903707510167420583135780750089541755468704490898692023036562815761984723224001958704270535596161894115235628273889035638220482386299145436766344561525642955015741724239545668170437027919794741759380770187410437924212831952600739660612491427460711086032719638630064344493113044618043413848589240585519313138009141833843526426534225239136974523296414580166531391744007788603489606279368934752116076651495291872997388468324177601972655921328272467923024503443978100812507540975628806131090736076371721283475485295927605418559758348122527511845148143795825887077905326911228399900807044636553385257676115858740112094350653832405098178232494918938318406201506830549032323275801330248852948922597358467468058698696389125326720158282628755543736853858521341706065408396958077546507896596838313954186883590437704012834607201321231837559154334954490008515222637436886210002228280446482614351295198674696491139943294840529530524307466117055428334300966823022138872667821035698622955048758370302411614821416239342031689016606151293431746381263310654085941103126972616662694080566641210997309516735053741862329297745190413814549251397071454008911740246969344629117235853694661283662080496368029476072849772466693250078751657054396965991051514062228652481516102492734356465457079232843698178807844539820284927741171359205502095955108440575026703930178646227832533102865999584723087181586323203312664985679405046571539445630999778281504770043962006279195612104813848179805441158278423407659636370361086634818020534779407628202200650676161963300750828389659474233701166606721089680112844729709866297182739960827114233650057586813830821161020456313926853490672448914125284468722825832886155435397623987296121685219759404161455177031586999921415319047157701266211876008084630718644563624658311662707488490394014682489091795094703348018994916370490240170745941089519992874851810602345369654413768188886782189776587958654537924727208951370124859188009952071760602605568403104797219203413959686372658767241073378990691457066738709252260069727403111441634607492003054162917142796460865481430040001876988577110158812080362920091125636336573579049869154185287095941853807494925761309303352958264000771693886022809016112366697359366901958048623218437993446393448021195538042135347290547650444494545293280115942316714826049251519027068172931690872368894487576222276844301043438864215062367419081252178676516881776776584332321194263021306332874863330930050558827377587537032890885709817269272289760445413733368646515229557809953632474431877219686121079923599127400610273128886055837125204856624649831497726790493897961042321727847818759141447258261161326523376464231175362906526759075791195159087429460691779467630760217407170797108111903921629461967081359622773265964497527086215926370540734842147020136643395392036247407467125843292478792906449517080860998626693501994749150827543704115786213147012054576759437544850878989172322068748823239501776227003441265952436877335672906672780200521838783843938106229561940305729799020769841227850514123621855646102480171064534855925576544936682908052378913212306294663902433529146674473529881789192034506572604412361481646688495571735503263118916544542781197609850684250312187041110362765919427072223270145979133169962791147435972133632882039819419956446812730655686511338025679682317508328383255321928350978860758282997511304365348482686173996909030021905340826125257945892739871460646566525463999717602624538561372535325888211882271968279812256267276437488440764976897078958349643421212473078330929875107332472933055331954136518884305942326603243696114389970424451869029518862662623214415244441368456883102378879779424897320436657164951069819029495793564023786501186579858674611175239810836759870219124488283300707920289971621481387188583489996882447945160188383965160049809813958686738333112496117030756081310035456942082885805350926867508198486839581056089279746649277259669346305208810714870725113862563785518575601054630663191475452755605829787331033827671066246472280488258623604902467412293164852782724321720546956095974006093014033510466686945515243941570474532294245006222634610205327081196857940411826846650458710570682989100922785758847026106585470359660477375666443485500852004474569438901273655007321232067382412892631329009337729500645956632158345325450720677534645389640839376320233298612739818301055716861931617115700778100035117411788202228338376845114304937030953128758728800763470946701246746267051747235491055462355820405530345762699260074654271003199713741564929306212697696801575421926723487785376280293123133992905754088890450397752137073990479381980465674459424523416307313435026879723639896782854802284532300064423734230397999021211764300190867961546292399272684140370905634481648024150670766932393572332583536739258527833321167420134159527986555838536936229236252600549002879611460904420858791661808025070031938243503613348187422338417631641662061708888892169335307654898788976252971807454332070497040329720946072397860246163577145004551417856141537216425297892536646423571857790261567747876410352328334019961265333071234723218787315251423750230085515556058260227767942101691738549533206135758462588337031556715696951458615547362623593778653859842076325522522205413837165267512318722406415664568144232349932907084815807671158222143587945510988304676427809667176578078578071904746304008045557558468853391366643089536621660703177975990551145666557385081855176470096569630475391474633744704384132984778123145640679779715968740969613769226954451324248970477235882129352840339596028171411893170092427957962372081535942919669547021723436279627124560029791240299025855502040319431555597837271445164567548289637508869524126248672831774266970194698842479181873687916116090766352612092812656116147124483279075891130623641140711733902015539099257514766861401843405128091351523930072159586426519051073605858659879523055427663403119785808864426812364552003593134787548202011132256739733951027023646675940249306462713453809706214139374847331747475667350159215421084968992865030889861490403887237418592681938222372135771790438422200556033617690190138683558619222007076435755151836135320652161697175087504719768929609670885745498899246889272674015196562538899435314512260632382377056342757633131247199435963990217473380649744143323314014252448436613832625603047556913403983368047508870928105700315010088746184855218387898428875056772031584389679131395240663829892766855236154299474635621492258985177006418161676180630198960086475978565567933176487837417007071138310647992824543374531704784221960792840683610382935795882407397028707533193705080134745632802805563139346327089225916365814281545640794376170188486300293361552464243106475289074072355986769640830103428678492436360727234563917284622344042385681736848729101175945064022774075262491244201170100008083972304910079088539133258824027632511601364463037696612363586352227866363151808188572160539755823092190425117928641965683516711229599671474176965575007180724265492148795333876263247779693341946319665028547545183187015873624133779767422215509947584498553685238662527304387380867424170513525153566823409055474883950277836364269188068142158689817604649390483397956454753004499998407943449276464035001210022044912428876548923868708804813670964143677159890203161888203845787574545739242515139511967527014826042361084972400766579447009537802312226733393921596899145791071515843348812206785334551671146253203557761078740091682642431519635293691884416658090683104632503789545061803670040766039582685686773373216393731841397663492970584579532219682958846471966213506829311555956572545622529943722692347211758425839303676792253869590484173902297842375099796014152555157825396908531084764040853418839271073867011930451209951574061031666998532563211081555692365575966207966791781551873749739772538479150248804742167129820518696696990501548274274405723435389335486163225673218682779090923891148720717872686867968692914172858510889826095481211473571076689312293350809767340385314188266000449846479017022291998696803737497539364410588667645669958106392440837123316364384374081709114175582201952136497988077607015117192213842643044070767948402547182651221781881182747037410720382267457464397664962423073491991325272290957585094539934731980093250397586836318280507380219636049937912092447597350426043489790122988223151207329356438460381385227241130995345887987117970921717481097168510076058270362610912946704440886112180604135075971490710623635914128521430940829616532413739625602579386922250842345337908470005525126947366356324602398094725593339726244433853967550783887998441779860686266849920499965481477570769034348849940728417298708323078848320585015274647711822901498492423741928675285577024569759954937978144650940107942482599599395850116966745963585022816529547415198752234938960688648862183186586915938884918888055713354035886029160797614829131466351052649600862566835853283319200437846842136036561267630224625160489295951689356694732161602160985906102146222531319045359551427750845774387096884476816517507278627280291286681088867545000122882798347814319193663634438731120106272404874973911683780680068298819273771255451390542620997022123667686733558981345377499268297763926110017761222327462788138491059284886228025077162447001161600490731785671376904628909817723863859461559396867987245619554043297349769054650545963883309111779213308700509805079026587285387179150606674070846337491565757977553683941673816052181728878266791895602646381484742021443662246895012664143852920257857402719415879980984778412922535833664634676010554148006302482869616718404832500990496612557233719975660342347076548483261698450055424407755930593007246718935552970919764291830420480042915512678555034594311608659609797176047551080985852770991425332894645682897060076319728781872715744131269302830750785979605043160902828531021208652167768677131086415703647630747600461702497375267674505427976167241555715715871140052240823862114528842703345838417558831303629247523501345381742771320321449464856638705783033619120280719111521060637851865113925291727327082282875816571240424645510294756036516264955638797867354226663515266104116190389522137968617081046421634246884194525934365967410229852974155456632991010943349151231412982827948514144966356934803891474176834170130989975676880810309436926726100583496133867282607329215822576375264761513731092167296636817626237409404293808643783813200928885699449439371304143334925356368773732955301479151585845655696710396041725079500179283646041816945338891049008446079305162625641927614422370669910803165586986904237600998826822043174495969496909996444460326103749105805173546491516247904553926844039631658048259326634864712002564812785242092262421474343376893824293035721542199121814301616110002247449730307619522258639201532646754304810460471873139206685014566230075932191183613567150372354052100064215413698033444887605632046661221238860910566809293085866870384554081974886940426580909507879737975630937530926438524848425071928088762525150993068463640021526512272454183783543306403605331256889280010853034449078125018250771050750218524886772368814921305760972951571400858799389099966953709244588882195012822038680109986008602663172115204277942958030808770699552443559433738649516497017394920945678551248121320056509715468408367277671035216458183682778153290308582831232646990042849157419995516913439706259799277451230398259328417426720577739906571075252623508727302458724925386594530477684675232675936410895186089001048238644238021298220986759542255744556741958298206148081996213480252287341490956012558588919161566685372561578986112880948190686620158216553610607316471363361603907736599568309731525766865264349245867308843061792316803520529353942048127545042966616078397279557308075122401184486893286823584932327053884600242824832708487366824544458719784880844054966372094249051992371648576276615518005318925619360329999400260389543695826155723345827689986616153064451050377837794279734360509300319697492320511032837156786998134590262096144461063668073041280070738112773072998998791558049309544447935311237792859746369703703982767746136627597144520255905311375884417069850311436870192811822324802232275865553257316926520675347948760141063064295216393967177022224220177974654082554646111071217636999484369900309429018590319460510589837275331691437229570012873134818605878139602333834495953667548697331576303514860488963010620383881661900867407544942197194988761586766729524049686419027625014271007264750160697612466744479001778182232849581986813503262632864674254156891782207965592949091146188698555533649208171164675825711077159198475541742836947229412797185042655250836907708581732517804843157481488377694764356368202584062932765078120952980900331935605155257505141596800197450569555169788973502653980363003560699518633245483846251103108141398585678803519542001451745161381108774975160375097009182433910357999032219552559975964179187825270340784413513164686841529740591775765101120631297195732535984984581605223323674734793090059971069007170893153217957418624715524538996406555406298947464400203398029942690343000936670807053995554768130113162755073406420266864113517752792243549244057194218911721798519312076064200163320220641330393241430557904206219305594206742645086318037593616073461598115165009943865054218272862168745886529917229553329230269640904302661939815666550440680512672213868697700681164403539706910966064464566919428682203515825622573325611845204447229932742453158978885523312454657826471696822396141269440615577923944712239394378768272874794637774506119442133987636706998259512262427913377868044068222905119018695269412626136579088754789098733869853037977435564422020052572670646892328724988329065449440346668588466914753769411727413600549125901877943361995277970672807494021943558158769529636929347746660201543148703544504530814554238514593843372035330124974719544174077896959139633051021568918670449619224511337839908333076371168577443410885587611820592409390086029215221648523007594391439112795759899877744827387717349644979975955745959117881987461621258760984869955506192933660902722248861792122288950961137179787066308419476689054434989945514509134526976746506087132293530693607342130307870185940275864947023561278772735297609877150320426655321585415954353344670348196225467331770994780859096983860743529157664736743108424189781298598039141691453021816534761676159827032896934079433472732413919284643828891599755474591652613136467236181215353234243801452265627936844549472592685504080701137732105456486594441038701343857680187689453145224618478946909282967601833261121018248370605474499184962714813400792218955153797722313782713752713451529405668670891429223224927181940642862789377649041893593128161813094091374594879276907844907056079516860596304031810024109317162409657198656723912171293580567231025470043622737264408635660698952632747632965009194835198791631038880960911613162648173023923119230124149961525359626189903337620331584651309823918982046099353383345907277054946808894148586725211741541343179299311855756270642124211949618848297043517055714803850355284050838817128728465387996755716472285513724835514882832487008968001323217994933473862011440444843359881126633622134260217410760683791610352876214649117691492867723222469466809254655541834016204949035180790052662096491633068012687145368814337156556509364682404069125934759222233894023226504031192886084130720015243393828084079453382597577946323072555027788780527676348515978397218157455641837993461342259447100189978030584112653945308041006363286176979992347866488176793572603823408842110550033151962742072768626524390121264529451217471141863851724766312852156926291490139883177661600328875198270287575181820151234361654369863328641371484537289870207777077663575421273163008388789914906613589726619844294133359273931846075322779855108809597569067235978332945971679043457322033943400643431981560715277861310383174192189076224749991154029729994000546360611576193120191396947515937396288298172717120897993492057830366484759613403114485254084707474915988960142130298789556001270528773074215885929830703848117984024295341410798397946274904679263856673119503590710381171998909663838948371990617817922192034161876574564707831245678735822963256951144246727267693123031638919588225802046393371481181923660210968783715098012114288073283235524419718206252382590098875813434482492396566250845781884761466175976486710634532417771968628420996445612075026069142027886645224194647670201892551220221935262312384266052594490495657290189651234186905811589855428838811087196662147849035395175685905519662894999959669553733541113801606041944828217348326265859809539911058922824176318994001000390956249830816868093249428004295930247711656765884230194970249927588966767302544432580386213458343555874150833464661785691168882412468282463874933495036695127237685992081715451494706953033346074153624319814166084456156390389462166231393584735701513221590732482656698236157037231575065385850975375899939316878597689595482557178856626415052314017134238974488819994202670789390807489491480114707094787664519049674174025659944851549885141509322593201246628023834190702554669638483117234482418568840451178977988244600477395450347433467266722217830217462462533279342656286912603448244028470590395830634606938211569522191303080216703918974037619232425453158668935680445452056446737452038806219744729128245913929301599769350911239988194875439975958775997881285917467817289161801263660266031487755149830101971254872525310547180314257617420664832451389391513782510895773779654896568650976418317606320657710764013165381537202641378640353348513479596919494699575725338176335464345058244049772022460145737798434537447942772403277471020901470118499931215343291420899092549023050985139236341224097729693621445834122769023083447536854973913653388348486283218281328562448771746779763268883640389730105784395021779987092942053765600107615308737320085869909426992119025417794566727753631354268777491841751275666124650521950099480414402896183381470135686706951313456400773459595391331937482030659108739733120984966699426408305912836801348710015232701439215259301561832275516544740592306820754667882782353246741112428890782663875331574880951348607744208230631162664748722362249216955955074981956417889415518525108451498087239169818518533956830094265697495154978507054595098376334711401448158385358511283762595876322361816637455406519546401509243351353027557136499948535905423724382501908041259410744848271688652969378742906093126522248979230717859619204692861745105245202789662546547571423069426661616744100881811275273537843980325519840013756613158529164847228597361318972571522048510123664888627174578889283831354782291819024210934531243489670297364885768917301974870106258927276945190138929167642865596595267664517348143289597306985947276927130073120281901846912361463233808216101664309825831697005233479349537765120524851960448188041292951310764443550305382033422777458223820206233303460304782641935794533692801271105084313067553703051999852739954559097630883163432978784964185548423664567527080240043194814632990970054770290915978607622168307659065147536616128054718268151110465730904519003260715163060159913966477958656110704170727927927421461907439545456468027187452222359961924258402017661244805983660727681862498795752189876086071254320215611896357906073261225197319829172545483350936643011931088436990542607559953596350852978554203607897766684235332180177553426372766473177423463271759857259134219038113227958415441343939172137452713029902175726550490025747545444106514478965635931692711879076992989643728559101493147087848643979031599450058669682584102631783643625520932153368974054843857266184856162161420973823754708005281173999677136370056460805861644039760829677351205971799506300160345793979105297876043068693757781305303701225474324942182827074707333822045173794324618309617774158070354112964733436925467559143911626046222088254258687866797111158452435180173157847001405328006790207417636560190188803132333240927618696555763919674875843172641388026745868101826165290639351851845289838724006665463454471205459447047495528548213385054680077316204098961605834487649690367968773115657629364559764371363181346037553515776004646848373131761492506567384590547400685110556653097235081696083586666577989893251666754220668401697742664938030600182776814562568647826078387350191305198669018420670443691433981923476752032929024703050170700028982230418338818251970818196194912560497131656816119244163361824013132530323234778822424296395566384469858706100186921631102227873844956549612534179132884580683408039846058173090844995738650282784527756029368844240370093585158372451550131234348437504038776901740306415366518610448147461916282706258315301475402283453951337864949613409072567716476219978566687554840503790825129526780110426771345973888490607316528961419238839606630302152719300566964198120598798778769491390961719332725024442014704487241445718312872479063697218601295957482693534370538512902831836001290674003721620450681821152562573002724219193862912700686283205608538366852042543690532349069900600995092741480007898448317273517324562515860150113907327614286863517765397547649851252730116428255361706296330226720927830356104052154423650068585419701679497803328889826931129584970413683130762010423414476874079432239817783584039484570938358089981937521953760010096363886014865452502320078245943185011718882947534938432198311592787169752367517468138109800767917382837199443302846939029956820743044800199336347736446129794238573736769571606062024828812082119451212444219714598300812005922739413688884013076854188378871117730561843056895607284759340913908739410076752533312515173775244474177193704968245495997319189975772369024735204768756505860711401251348339595702876542553925194141395870350488480967515708639209269220164014732914661478072958247795347460141530534334533089941282137407935705119617607199783594233079845096196232686136946955093404317306281585547020172800987236150890205571959082558072688434318405103130634206577411805606529574072586931804722657828811125511943767409010907505221299540863277333070744966100594470042984627940584187506496971970380018745976085422219288689967510468881025188965798767228030390461564299556661412563135521014019425478637410429576545408271250095129273005029894723957164874698194961395399359192894058914639324738176127291633185820226835764482554822210678577977809596609507338519386186220502304086093894921441962787093373552700318198564745266913300927373769124601245871212344362365061679408758056285844092404032926716151641647682673674172586246104427981498123927732860134897344450035560794888503606660796474359798401938673041350617446322351388915829088601444346152223346484787300778275830387754505720064378710359654353429032761381692541771080846484153719678935276999248598324856760313876041880540016522394766955582180700031481787782222399020190757117387224348655932477975465435835343235929516763095321208730887570844607319872881490776743355580323072972029562459266189966153379117864913335851578623637508706035484254741330368587594391517293530490892389531647706519517088687958349076021546913362921311061455591546082272800662855248997494527122878865877145279774936934834430492525541349309497569662426747378043425978935486266532237018647316174021213711524491647225372249419276349385498446923609930401586604322274829251407152062919701247592900307363872010265811483990494133101771068314777296801098741872945726700551355874518197670264745523408323501704672125381257107060356279091921863208362633011645342994373136320373035497243959887659323809293579410415942187122086251658951058156731106445404049970333176529753876630964600672103133665911693382054742914720956182320524220751236500981387585164434795942478355280882273487175852041981950886340807822747171338015094436614742673420254974403712503930384511469436569628210162891773712539314760270110793385912849779380320836891133156237356579650881039547953830361765191403103072342872927026649644275766103253974550889105887723136934225509520819447521640263460318742294674026668102345297822527692097967999800488629174457914754602092521394566590609034308338513059170850138249474449239907334672993074352106349272621971133722990511070943352779411372293852435797268789061840636539200815514505836494314300754451445464580641305148614924536377703843155821967738702173395726763062757707159645024696633920538422433573618606443524088269932339736774388359660668405616941791760719086476494243436602503970056665661109113647421979985898997457068423678188289232803292701100562419130138216917686546822684885182392191075271521581718122117860864003597257677233972115070506545158147704277721356248295233040388449382074394468113147770636336264141407163962667197114574384978708713205833191863816189816655990856693381490501862514999319646675850416402289295885920011096638498820346544542401902399853580031655213072370726976493433676347580555008171924553814074873862702963716866757767770841041540249472491179229142903217999654537145443685074697998334659268608275330163308530028870715627063188710516858930535669672917568478232102818803694661081462987801442154564396563623420419845772262760130721421281325982770297419680068231925040667120538209859657933637389114677864862145895041241866649031927208906500021109679909807414081613544921625354396032730717653228645061016341246301780398868124878844476309322401552684205101362753265034646826734029472054877911737866135252458400819857464808243760864267193318616529970952196959555695074578024493972015843614250876137390693386360705378890990745045060150531846412609547137656789794954798312288723022250518140093907071567791853722488500655953387239379676381372236070632292268354137085895913380404571279572501791943770560234569887041360668334883306308968963283109816284340400413877984551592406213764898695721714523897882613538370192698352986424712517547130017289218150973315470511172242320495979937729410513686309945484868008580130607480261691623127304200906333287262823634476892487430663215020264356321091826622897263369407867212290468970319381133357029090367949099672036441372827195119840874153200768165204243328526401998701011478737205931132501636617392171155349958048178510795987501686057802805771154319030224599392646943830836777180963668485429059449193659256072700498327631688342363074070074807474622564178146395460489240872437127887127136505019990303789518721485522037731542520055833975144655193402548142874281923645333228868495571403550436943666820636368157855312689174179155596866629675093650654459385331411713381095476267346489097354262268970124679074811617566658345621793641149193952876349316468990509977937399174176552037072922835713361584475468590962375503855224440481504871877220316432411478914146462530664502899755494940879324390162549189895897190676572425031354673267146201069658138708208614233680385231847570185852182226830071187990953783655112799212367270549899261278654006041254287196837202496006728138725681833601322308681833792544987038560253326237049194111909864402506495298724370537048523327878337219375259614704366666174485960284390504331964851356250833433659099299057858454969998363848308382707340130836697235161391901982110988609692449581828761882128559321662376910917280937946428751371730738367098046718101032162908770968433685918510727833972578952854095212104638588585153561776623314408104627721649913091485008020040850044615408412186082981466869668073873847677448042151215332137122447415912544379846404188319951105015180319883038346153135086497185713393962073709398566974754928908646221718141140187302017809383811890578410823002041031608445044898330926465472798750273858847431118258862449165475046873700485814661180997550167235026398283983342749130827747941335371742003726468116920575106042278923825871713697159646695911540513618345947900962026187289272890705594390711464828451826346246560576633052671627604844801762589081795788226582335286066046414387156147994609831258370111826465811389741610322087458642500074532448009968240904708239757064369188816412647795656524684294931431678097015140437904473647625149931428552157588971448303672248340154167993640236824411047612571562371537877865825999178728071293896873391063946590921828462154841428962353319637502607317667035300955284531735320424786886276465012974653412956327443113422203901025800924309836528464381908277964738961216805531006067511352431628922171979667685546479171350833526468187452925440679519638680928795353661823995306832767964699153913243513372349664297178944329168900366492612590732559983997092135111545058650014172662770103595359340960705681669517344868200568552430790902766197889947205642887379060277479027082732243373443820970910861981616293574411934913335826790211916295356599341791637365226388275415024218762686833953755537750268997462145292358563098274426418584562747757611633643000050100594572915059752572270325350988372644098031463354549208198509848475495845489788495939970347538252348884426806719345863689642961607273320978056369230176783867504529688107321748742599115883299905545888309129052370072121364391697329143257838250019353799197498199568282307693691434611569200164599376538363590208804322795752008910686748878353815906304790231906736703605802642706739761466735742718659391352303268637846678291678582980904954617474162586525082246187098917962744917435009985176999915566760307270663363244051205648358057028620779366886412985895490189334645929735432632175734423872111383994993991794782762086722331599849432238914830454597287927460707833041619612657758477213788560220604031103162083200193654187039075149831760971821250388553661526911785606823250564525948594715776381719116648544911206103601982243126735902213880422477314772795454553967059886721418836263903291759517670322106113301420477357564777401068503747268545165417047013127781925761825872734554158211665897004488934812950015734726993188143862391685940425623614480249607561123441764759831154050214108399842624754516364114199095282975316437316510425543851142594213852664966994236391586323101090013075954808784110229193535557382935581112259447831244357076958096789417916471969000217063334267571319783307413169227421706350849244856968996615063007670428682340386537713308015050062726651450044584710482822219510261915070012509451272777469913546859863310416772128864620934296411854886791393648194532214763496548535531371054654389175157035907173109619746864978689161265881318729967452409175509926576691406653368721880759899933285608971685914262181626121768652844547635361782927952214934749551168066735296490680777597626108551803805203857599545031658719776716625115561714302778058215713129341529809743274528922295527728520501443596835142443589754475177478862070703274609733685115685202074013489115839697025388354593205862859991294666784795503221485235540762733640273936565421405927533438702252971945269161132861864618581783999092728628184113440662892858556712096602265354812872659128651929919901595844049245222597867509069230717249708004356739070188764436178052358198482111623164894506889723595301000057737531812329583822999684273974551200810733412819102326044610827521289209623837537088013674381802583134730684792343951392447677172220321697015076368737003152642737223970183007845179998158359121560500564268448972848843754901038407466847555439750355304073763785770766537410232301142121064768153210591098771990130589385928222276108635543886256683604706229796671399488403726871027649874699017096144804061333019613157282502267171876883062341194554146067121761689841574849516192882911893759314901414682545553012056443168333335952381241934618624219729966984787883725268753695020584864354331847273941457262019368227504851772770697774490197383058993096072688577837361481918853819044426967271771290488142415701227219095756505738377785448245285860072035034364322359942996521577075918556318272967033886257878142481112310489700136764801766627240550495279444113551718538069906760023466362712421572257848410724500618437702532429458450260894493468879138833681371029109191694554729733495891055556437239621679342188288541198383273169776693754536047315139429761702260702352523225831589072843157212191817768563743199542904705499808176596034904822470599169931534862053281354420326799440185435929226055801058079916612875778158421973931056443633923105433328932170431187871888544732978630306663856162924922385714411604039481065440395357869452201858682730657298702874143181452315065977811003047932840552365787361315135450963412906842723829999474248771489725256736221897999922631024245296790484921116981642091656835804910588115812237539985635102681147780202405634446132902462955207755783727086135029203547588475725926919367345866628203721698254735700139482985244902303563534666106196887790850529284174223118570788588507968177986726430432175442917319887575511347752958780091542929332915338670230830990074811576586206531809930753379587024089966110778695393619277656899545894570864601750510125052460756859216978022780972042052571734796372537400712763700410215048173497048219624485902912797232799983372102927806497716419068741431967433388014927261404091695706883090865618534544565767900349408055540811076518485449428069284915551705947559928215442547345446385829961017981626556035675225285210204569136831155639368548174236632054101579197438700839863638421965470072736097687311453037405228047978290182549853475864228637620678145868546123925692771370075024523096722890640975224242999276268067723918982040006833454076613045632088163446151721943139127253839404456623872671440557735513570730150542471811513956404450056760770644879138963146700037283422267255689883666095395906027576807130515674280712238365967576571859345438256214257638423036884460381511347748133594024348405613537684223694930643799889997932748786452303249536663652797243340270129785836975207570136529643058658895715584697404856190338737835240388761006894178328577742686320653182211694146754124782556401714705119948808658711485700222303698562333445143176188771075898390750790821970496895041035497682191130187034768093727046834583070762500397921199289494038865166617987353232460396760230777116531658804350162964302008287763620426560425004471700279165269294215935333174690628084920300357377298559755404778166864303711947889213957642687981380600811723745065716929535580947424706757560696983433034717070685381329378591071979334224222438288285521904251484439528956335822985508938710562173970207347903659009230435982211329471471643429796999815756137182369640833153759644372284808506598539579091315336061928886117743006627448287078900238227048748192563538809441106637511156384019748263627221155812718024858641059574223033137029544843292296996297708111993143451239523331766903284491790595806138639964117893101510284861214953420591013274391544282515911498597894095982924966408022212143089313779644684688138724347468742142953240920579687153024392258694036887985571568883156305628933976882700136213749929598249335210368463196041930975969313226078553487181428728213416409634439265717233453877069325958752266299427284424144443056655989338495898941333882956758212343502625255526931375050371125835839746232207059417443474506636431351477252583926611183085604521391380435245689044636719124348025736675535582326158558552323200572234716138360118337263940290853453756227702247866199202423561472436456781782602490385291808602799741761367473424860797307846882233182709990512876960968903795762956377598135897961578342812639060110691266191100823809594455248881195862419267345625924489975163553791755934179429571359491255474701524966527240111443879098852362019370462162509134343173772755322412645415837900941180996289848592028658239497012350953640469133598965498404798689010643379830620587486171262784217409411620476881826700864304613943577073159347441368385964237710414062439351408211516318099477916456766273336941833984254628202320810634930522816375216015475808675738528348103930424247008377139823760949817932029979930151283818298977008899246200184009539021790138254741009306992185015520888477067311739974045923754311142765079944528355312825757147129120061626782124145193171579482921577245505316945971465771588799609826884971002100639819540131673179093186298935900374166296028482926428243623955123007345696409693261188966758131193821079470243941713109329973461294462224904142303512672919029566940366422975421246007591937133196582580483353250249122403955578828440155253675232101835653088822132156854983184384894370267366418888996652372626688877958154409024478670753542557635827072228603468943105166671594913361822213942779021913458804003766990338384636347501924496472594595587160541806027799661245870430163238393822829060822153945913401054633108477148374997694478372969257606601030719798790270943418779260857728923265640734913655656077356050589928325126753327272631254614913271746867808688499123631021582146708345956785744734492906981255264806808464979874103746031097078282157315584467255926377210868355458154320791469090818511947258276177509549999656074435365760440097582847186601234958028606744319267622266111619648969733012124217468734123933284758222254671427112151827698971115597128130298809661560575302918623499285359920294041513780578254421377786233193761890853760397093424696535162996544970154563820726535807670011698303065882723104777394530370646080673043285358789802787123266538800312077419423168172178177994438387427947211936240754278578087211889597607771300599110672154731767287145219947936762330068811416808315305273601847311945164534148203282059124292639538930621142518388798055202257073057902679559583505169825343833913346492000904606488643545172578090536743773048653603669286965578642893518049054472389591070469659167098706042081300265490709625932487521306995573471802116292623457322492148947291837794287717267319213347691389485768340061376194200411300944040377734756440783286630232847312863664878282898841928969220920228581908183073573189271388628777593775870336291265321459398103260834863664810873150347410352084074068967443675131232661368215874454899295640505098554821803381364906405060559322974315882373727954509523808639750919764116710134793385565658996970776153910853662790729858059338977515626000160044485898591138143097488186546016103510963873896978141133178973637779520290359692260745207947806561584850462933747056505339679642179432237938670333822021382412214755359587879728314971852878406661787013950396311050351853220816538589327456600302833551540591127860971445581847732802513941561191669508090321818258554455302098986123261411042021001504286423816613613575818956611366683378228711039139030719809651994087254986505975851303600250146376521955786802905604352578071394855966071656432892731601990299641951435848359672924376309873053251622302690044660287865673348569253626318705027464825333835047912286170990676060533842315992656122357841584168825401584210151523051019978764062485215724329356633536075059783704590109351279492632494371932761138438620500004581640877485374208612937016684371016639078375814166417843731100290075291210080965211781700315885744216427661340223489341570844576599920655899493307999330678251273389335660991311891241259359225170386188822722377359035000095679865212703864064435676250251543443519380135839930336170316238535476747589328193263564147710491923334996853389502182476905070586733350240888347449842491768158536821126114917195511404332073034916285195988113804718035223379154545519412956497927662003639289228026331715447541183686473686443644763790972143548809901943891494876088317972168522024780328165760129925667087321696303563775925910268879278290130973414699949091770536174622657926201821060284823485110662132135324906402248437358066467524656329684208150772874665894110095308424297229984760862389098943426887776870635854122837663008122152628895019131334429645151514558015742640967372156096272111280186055660652677052361939389221005612831423711854111581270625573167212416131911010663149582591441469646480733078206246492543521540671314795410837085886204385672018211667273807802055334764806850649280480199474223736545698590942518811946873643054013324038964289045752394106228944879209798014492182837501900758430343067883149099165777458033325874498014268236248266616143876379630130368617648177685532455880961218592110471577334355404595331860169396293178655009412540036986581419068318677024352037508523188750302444004098905469048665890925619093055315775425535531494705107922804099999805199367629752406587485385062240598648363484005229793319887720666883438740272329714719517530363500572049488841630488467577592236561183464082250502307405464795368131506628375357387665758366632244193777773481325579508355796447090008835098047447943521468908182801057120515240902535828866905947685809757153650506449914381070716226985612835472101857100695126856811654825691689285949466862032302772320772110458338061722363172250608540544211098299085844219317269159623602626634608982784314980088574947675776303172729212857423074642802003468242594601456328879918008380709040272690644525198387539143816045519362805935732139124108385269811277242827410539314412517662249917168770127833367976230505045796154710425436947466413272122671130900189631209342708522067634730952723312494038022226249439448779453609814149143253358492356324638385910570792527673803624079430289429278314641842474833006906297837860522342555543265508516342183957999850214198237267158009887310227842323231672495864429650566616938837658074447011580963868377513503067219531010632853225332143608040204503921415691316936744617234506320446899437924960400198310561636008377127370058890525964922664873922369179694329620259515996918429904458235588606775369969716179621882082496644540486130539124332578515919160869291981981496919131823002724778343556882556141749908599917810243081982443084419253395825569019328061391342291412635424356370290370227883614381212940530492560103997611179558656559222664215297755181397410897087885803856763841911590826196174627672814132093066717569409131316440289909608564083889114769296121619321402475236908039739274070283853056216023224273209704020375157768775600973374301290860283213006119489224956347643757161037475392533784027340360083583051884960441568900265165081892195078053701858816368988289868636339900049618865399560410572912783391754646300082115112340755660092768379636854404452145398610959343807107399464351938640844454069968960430357410972056086388991646014590106258092562802288706896077609624372339474882141980000781416168743285538722640909996889790853063061030715741624169380403308015832503523984822100861037157808665672434873768063955371947231256087308376516098123477999308079363888686495055879030875399778683623389364565416945661543906102563801542235858856143255792602762522030416680119402928034955357091901101754819132876601157126711639949594902268966470842151391365488284181759578801116536343045183200514540445879758115489549079188633950863264930659585183940629777184586232191600540649020456390499243881740253406675741765462048131481268849742330048060971206216081587255679713617534210639313353206623049134889977191342231621626603122658260388263751862263214610895103388372467910611230883503358632787360476162672813828609938161422468888145309068775292966384566935670960762913798607859304663675894577413714260677007445201588103000924898334509119934831380131372446492030857349643853061620715023501082414326023261625998201211803118558579992236530111348477572500194890929391159153704143180682093194696962494765367612648810271707637573155960492249498990163062242141628725426034224662657266098229263506965529631942784969526101445770666209303136805055797938856750710189882651007992902249104229770960030095540233171568521778631996834572528870478264091483931555964914968722672609908271428138470712428108623440866735379482881900822110568249649602500767114894523722212425008059331379857292550655094370055519085693041943045924455228291418291334178820026001559556920959151689143999286956082561505123047999900876853411913665095506850824263946343732009980461930446146193215067030815805304452916383650283416704425367668348668857882912500183274084109216188026614340873279971032134126964942214585885292773079212269688947612101394918691571533573908493645853684381099052598010730925466746952833204270432217732987628597855261592377065340984862247159527546905277325141450845392204935371686290667375771474469237933851631927607007869263498513000677193552015253194522574946271480230741151686878967478711256470096678448172523436103694725469091516861485952200518655055787692518200921470193614962745722127060618586290585126841638807537296969767983188289355400097648231928444108159292727301848757521755592206352703291441984241249680005919314615382964345386409271649725336278543724528272248569981341133912264743244067145214931260437597654024287185289109031373746586891617866260664428407689640891193565895664154900991669935896969551361477477186735982996584410780085105587723981715943694284533883153658776032919382508525575471234374973218694958319925278262816326979944898458792100084904160991944227389198678963566491447233459118426980988147960977562665049661950496708860817710967138440040491831017713968084593695038368329913542588771624063757592361981029950212758987024667230264101601036503058149832792709480611298223572240365278322375314647505660535769814471006595465972189627965997401162262907364867724604025083294762264650388378528389876912932297480291490772712313137843193423277015899246655635642814269993777563251091386136033406553577594740554995312910617441256687936510926625692463963420502658676878691417420298847913624852898611283920768799475171527914352533094243645277299913679561164403703681785364796482434675747013822809636936580214523386528228631480899695025517168801806450830767511787908426602727592844259052604914847207643030956642406249264316318711166539078192319194978533078348311163309170240447631747590801722936593990862843277191488269044454042540475330865584243295280950064191552234600174561254945755238650017250695386741723986009563276571433006370089888931802544219299322372708718592395522618159876452441233607878316230288301545427760690331843652292974031623461877085704341461810840614371196449750333210520041939512739071078460547120407243943093374440144369253557108008334236881417994561210022773804714498044285022307585602222345956215555098026062991783584411803334557909332106305486509582207986761475312352787241251259899826045579599247295635544371069012009617038873944071260075412723804239287305454044959872920600750468121058749629034511902829112486549007692964056203754421682203869649669582307427818526528412492609251452790167532241518577942831251426440250866087878356618749943517448610981516615749063146688417642739894244645280151825763092517126826961221281224258096673952280730576530830446560906312275738591600270653527919727162942949256618870782223992680031387619809290300617468491682909277457236316247033108309566570204207720836646245374958287800593178590512731732763238785603494324355950729109832239948716493734078129883324201497490003570930928931884340603162306502600105277765457562112829861546887865519027021098630170257872452012612034944627406974535411876922000567788826949538480462705007655726728358214512100958491524763724917608783291899721792353527964724676116365516495569099244701538544313376715422091011854277232585855141438770373552532919087726175411684216874969765615709643828668121090289207055968912183852659441323721622833558882276188023234222541121547027076726131194798753081632381607824125178769469112462529379742296550800436385031152318521516742290090671680862284733404163675828668708579443453544967719135485856778837061241281274559840878572805901506888374102798791292379848460444865025833810130111008687053816803621385359566465898044681330609552789758940394785786322735526556871211695072001993435929917576240439707329828197395343714629522020542709596154425929189328052320113027637522465441956792213169302473194647328312145734914318934226100543657316251114877123493562937011535360135380509034706942645034022580096421120032968766824491158399603032876278900972711473964788127698786160168618179284077639101966452955301983753041751846198737521270877880353797252775670423032646131796082281860538107784841666877785625035337750237078880632161543730146745752718913120429711272238223097962809177190275202879912425229861635788220704564422229455352061790886258949824785331240509728187066921671124327702180837566929424896030206653807157351007862912130809998403736269500717650705133634953838349648669083515312191628058236253905131087247432631068976037750358270431356116906584210984151519688346448932894234240034284946826420411897930196085635175142828478086248052511091783262397486136107564884541850232030699958234860840666060047391499169507004223510795217905387459273412683962752708580279823544746020103665036312504536483120415014554425352532957354130421027808443443289294656648515040305277434363707242760352412349946044176052211790614111470238334718994220865578387474924287362602667763224847184140212512589830875540547638198385153190861742014232612020858588485006238494903698478926216646851697107782238117783161460477100170743800651088742710904880801802736806449709095806764138999073795063037900543017785400854727280655638495350118586221030275832741099922852426918596368106581586641682368805135630960638545940577300982615567225610935087103938400334920704549322219536803422526367015892223515896115099817525156061748224276602919757262996217102561476575247110159062554628247343455395824022692859070822218308057271695879160006522526268164569202697524549149381485678828778061784929448426619530554374439239047571983556962102911709319040988385310318674564611924795325609501385156972728830165780751444187670227342237899715881881229418413705579717497427572333411530737826485605006710720495123386442122758399733123232678005855785713065320386362679393551732511376939408545832259610036524027514989224647656780264686323303663476746447465777384484747095775421292623401912295499661983991964039348198712655224432916962753360610290076825867620444343284514961491269052829904140741606340895208998767976222012938150719092701146626130308418479357666971740735486504429713252620587799344172595044164695859870546166445986703154673410131125090142364989615651908765116541246578904771985824952595420215324298019706037483649488418744408366748487779575728554975621004841903238357192085799354617224118147458442932737771317272501334327997042534257433122985927009487253636636614991234994645603684959230328821073244393271247599717218127127131464937713251837167908211470211286496181445500573079120801071351105077853498329466245087974780576942100375105840763128908594737189955106783969920939970526986702974802395425141110046838682718793575956981328201185939348096497667456992183102865631258737370020642567761051836195750645365414639400567754004907514293959819074457546361961770508443718405405918626046192915914355852963538188728223137044336852562730773287722218279717217259567402341976486598113782858917107448968696192479879011360017194053314199791346194120711665599853634796932278757441724418095636770197298455911781267747703831149435021780229457302027259508195972501833199036170913046164378581481147312507749911291923672579232105211088550656569121973986288998417994391944231088401230079928743348676175663872721157796234356026089328303708160884722473364161477260407483360932315350722614440181133356532530101528078341449071387888381966603596407466487225089551332226725186536901797863331902355103774658363445087626176099070632205896797192163018481935284303037193133344440236967506961592679847121842066433571824418559429886964407374100107439704227994414119960403047892544267194427972917178161376260751815296973947083880344629051329927230682871850452326467679580925726359932685653164422114396856486717589624286489775627454556786891085278147478735448531059194991197137592831671919798265138974197365665337153337261177244972940134955796929944100432585564792805127616367361089327718075214804545900095439531040827943614712656996667432101552278806060799828468805813661148719630302853832071428352308664167890608423694029532194863260353882854191647026380545763609144531420023268301092717602872993429571286933510079351874793299473543067226084775477532981856114199840114379063901971789253691187329705397076886027880725283860829440703342445727654081161646337677017087607462598146291474400739148908512640696418100059762695961230914399247246663901071410865397668489215034105900813912439100687312810680955760339260233023352508188894911003669652205447932056481719855064557433746280085478336535854041393810784406314792820473039935842724240384618450408650333173247605693947619706240957317875295537971500217765871859647046435453126940193656929588226741653959578091411220589296451950501141301039458798460648817422536732858183923406645361860413671899786911985009793076971326407182149061232637437093893359254097811451275194274334840510174996337175263913741599689699976211206241047754371428562199960760303648478385311401131720771826541819735535892718437463090773483466474975112838835476178784156578091258336641420659881469756195381511910046457419636233620636113090752495920470581896668260734505633241650544901465552410894445488661453926111909731778552995258489031757947627505286836121505852319969452258793249931433971790572171754631968418690998862252890240388627342243290211341973690307252632193931921651059406166692271786232967890769581104303499195165743246524401453926724075711869647935645132662419414106131014638583218484275237719928011956656405498610231645261981829763853458227277906586201313727503551984805151047739074971615616492737293489073035392665924407122372959310047481052602068854781035246828832972472499729101533552789724156060743050430056456628305610812511649861314922412976075060260725656396741021855808397011660701672418903837160402079522719714421553547842411785552210848645057858918693126044826482920133825932598323222492807030341441455165256717695399310417001473916499529726186631135567307511816512265786019110469277729649168364330822287557256293699474243035443302923224809679618312851805559187260229705585756640572721938994785107367849253964786110222637936884764988378697288236673557637601245302360635710377895536629522441391018843599991641239559450555616095981387311400623110611208226592880282801447678591016459340990113697074597891940548233244823496222578639635984247314444129073087774912328356986259854235243169881726731013348385212235831672686213271883406704731878228722915621943555510736111116124234508654356850625619190264447046704715301030333668314610060648332466052693918361254849488352223061390428189051105978931452301859823717776367329700127349779021258936662843145807722209805731941905172065461141399416142729238801881710372359610598407796887600011629742198553944660413335857421672039176500013822826401773322050999147748652221559816051756637312873707969680879177104512147246935450533646568309328872388235070758100417174339257807704911784753845036319594913102425829008238917095628942030281203312254266404350302248805427070872944548523380553644657078102481748713366858648121422688395267572905512145605281961800328212672708155557622514024841981559701618474114798957410538961028097531955030270696172247296498064477605473494152477909251995984225700452333683966513342988301620523308172338980219178931910854160210471607811992688909188203385562062015869785684610270524699146353395264701912089844268101359977577651041297173307963934637458439560124860859113593550116832895229259925747127491371384417423162414642929499278653226210559269605913951766211793895207811087110921561678331599623950119461435881885375704633253991854677076650496880421626943569439022232156656413260544370866086688833529180732264616610476348068665461718042072739410733114868854508410216461832431429768098847373253278440108640067971531922054738084726079133570343138551583842679515179096923201603777377176138733636979747779162869672937378776285686314414471209197087810782371446096168044234953746667146998332928567291140657750227106608893799559623358575129751698156594885813614761400211493268133438872173081824585612256275353828181696732802456065733732693816303685215943800645506941466316799229013886818151884590200601524984306496199405951258926929699174959781449624080244328906749271479333288522975433914767747113447159629673180187464725745543187407473633765455301600315463323571015966909405636280780234520326800901472727959188194593035250778055490833026510906310393526568193921626779765145077220604356505794203405118953846254031439698139875245200501026103794417386700880489403518294740407291954858277087437502145830968765253871734962284165743981587811690054712635702127725619913841303965464470767507996206855978350436936862895552453796537214468538207113713201258004162681096568130747220065422819319028340705352558021452733975191774218070543069365176099888428804714189874979347107953704381316168559436630013409970985417389450267022346708969333087546923613663601632219842408570085309041653892653568705411562402688405033938376206575082942085814690267752655828190282180891403224355605263890746059810691045781939973351142416306777706031435070519468783915798621436964483628748528842543043916637052983458686402046023474083514187256931808291846747931278971022367865621460376064938414264628769421721742755152675198181575385774748486142718889489707662092466247728277461588727009405400971633353915471858906014747972008749895343251755656509558627272163668903619232592835471882333084307115334833621260091775810844534004548668822775884471615161567520882079881852917124935616391013745583354219816465035829777226447846516181855674778001029776005840189718650464251734433942244206447979321632438347422168238261059302316990772054526177998789460124473324333699907894532635785483600701748070490326381392088878485146394433755046010159151619481392358100324375649959613796977232114521095075156896951212639369039391751483532966452547752308264079278578250494718227141657309735234367615161958803964016416418482272151364322418912538669881967862311217514331784562235663341228855180838225779123117001619108173291958164873093178192152842652999557115848370563488651942152245312283867276731577571474449136770179399577059158140662828876242283191819147240518351048365415571489927499079377034444492409649196439326974576438202255753684376311806827966917421422298449429865631797990929645029651974675450256794149514729831260840293838226735078880942596077682262855712747155700861683061436014472603002239037777997935604357259964741634866929352631502927713100148637163033149980935850229855416834087714357305300013099264246250537180095044673174682523475809073530357117508152409638988597835202406779312336135845431034370055880242647784852311212653776063560472420478144059157653720279879891010939385378847010284764211476103753708563211747529427931269498230413331862092430178138981023995171120312676325841901984498993348883373508024334075119978019449729998994021589512686306292934891510554938510171806886067541690186438925293669035297566804305954845701870794059144172219419079063418263751196994765538916963163636871859762727815297770001801168775372160203484858758212949859372885050333370387524846020680621218504501083086567722947766400668850597368343045331927057527959156716052548818724054908121448074381478963888721716849322936235552401723146566616597714323232046750539033994690809254962110001750642450081628536593697267761265870969648868108344278464855672314572943188139260815567470710764335996707857264619305266498697891628655883955907162279585477108274879471263214641706936514204734349681089580906711250970050844887174979751658942798443292816471871983354130397028498771276227213167852107469474176408467905195778035542655408456680252806555843073856908617704759298849361835196504392810373403908768446402679217547752898402721761318867516638101952040928114598767984276246342483529162466190925178163387760607568105088632948769515877260820781521545828041674319436280987131121677866751493043229773022307400304842404601494881022566888867967238473614043218943221798894124845006627658489305737452219459033097120947611286153473755565978252186518148921831485697772693783619134149955945781256177255055389610644830332170390302519244080439574872632290024896084466550381291362470144022627792007238040433548691432876043970043799540906488326352324634332665328449503282996904502673781495047399016409196466411211951045810500880828399149814279024427435735606909533751564345226905328266642578392508784904962651887926140209234055183818166957706124721653381962192366129604826692744790389755945647187466180594028924017755996375045121734353713940400718678114510520985811305332358050855767687614674571638796155375820749643881595536007511402675454937407242134531471423241828688237541052712992890852736698048704363517627760025289653916875861122293424153410951783704733331484967329067478251544455581933062518989530531401157719498359785042241491278060179656446303808906255213961342452133029254558788417835589540166886082266508246755044391048516909070976783397491489936138240133493962200965049181364621551938084156937485119554889829046760929726663620358438209961653132057585970567301419427222488977380912002310131007199147363035573246341034731498400411409145085646488003568432143471250989306469909066041611355208442168525329546038901233536658006725807068772817133622822844575860352342642676830462125284149820198506468208150191646627872874111232090433418417652097939911204063351453906954618926351005980862785480504882642252252988126416845944961625728140482393607010160419647607017000415726647208144624930230280863988419916120973201037446468466177611381420671241781934956335048519175851779258204354159786071948374980763382966568232434782191967291171619539536548309737692222632871176766614257167590495195777633336278835408679326713427792325264298619001359313193549276773738864737703735953795223802950103838745039493353207431460357483602838077244321896461226243726107016918395674425277040953921291602544794114060409578727967415121649231635217731853936609657518408351346067817176950659228328528990814080773885850981421876659330471068810267491566958416249088501864059320085179877857438171091053756584742044330651248543511912549438250913424924782578013428600736365808368257122570941120602708507657158591179930865345663266416857453025607110019432535314459603457624239006120024424096397475924104391930094520407087610454182786418273487467938808110042286052947380601144271361148767026925284561013529555021381128815733911455341446035391900222156575229429090409732448348625349265443767710700483510047540065417276020400336706035146797288614421284607098653704650023170037580005801719700746943276687240346352923211895670237263480284053693403450871359868312874248557464949875531391237686039391067196397607200829253357438277930127158891330003695391251624394683723482217304397746503267653505540249783192813440630515668812758190392138685761390945501663499266707627419986376948093376471966777603749638858319896151074533809298476659824773414290229867120234667157879208366907080110548071011681171464784034187457002522205002484848026125189693511504924252728573866547308375454039321556085622831603591318243810928744769493154303708338074806405377291713419165227980250765016111891103758237684489685494821689197720738755759087308423332114648914739639888052547279483674178529635641418508146367297303201587661745977840368319933599122081817567353278480218067567520415858144802126369766347217479062784663266634766218191661230658301076816370965769473108173836871530388998961561523390570052532416633479910630581995138269686528628130460948305083398041859605870671969738861917000249947185135645670446236114188551360425079478369616486217323119407420767359822235384568475796565792494179476050416483548975303295526395223820064864924568535477207612117615374169860856449102460910611895424366934418232476300602067905160593385811241839504556735358850272245070740670863158357849502341407475784022527134079101874757401018720662741610837024820161243051162860199012984116375635571124668870770823340456780965470498843830665059495485530424312712057343681604073794086610073009265922547714219191197941788619150554827997001683567568320592253548769894378713665462381180767981402731544412988120308955073329927163798769370777249379160346070249188719659285640072928400180162563050588137758044329578931055546204099562288884103498120840988034300121029143124424374869250706305073402230530028755751143634074015912289393791751503622865193454334116568149416170223222806995675760918865966472060693080622370987211465230396355705507670194103533250730702834377549561329123490170210196041842690210030462009271950412750877431994297113448168187850855794498120241280450468227529206926362235461115434323688802054740722290222808947655340198767862597385490740784289149357008747734157153225320217628236961973461465417058895327799820878892849888935367998834376049277254791313460511156833092311203994018365822834592666838973488710734708910871579997204199681893191879403365203990147672738241769192568176431094686369253548906584561642379003264799132896210464821380077012079295813051640468576963913453640471285944681796640174267873512898703620582320469788495779561415669264753890213976825971444152297186382030990033732509354080092216802173040751333965971883669701945939056871356909859771905643548017486670195471884807398433811814531541507801599572050834050877042624120691599531838499789352528972133974901979628194183868629324406707193288722519955259898362267661038100016394311549636780725631733127583824782705760694744636559027499769317306135219771280804812083955707747584156103981499213015274686014597721391390446681986041196228988432012493377055933932289981677053804029863445601984423401260195007730649233719577931280714448519777761566864519035329659600020466778629125050445479732652268434758637093786223720749362039310226307341829081593679642883741019794090323092424522556731341306433482916671683593583190188541740906077416155076830983590336230672097596737731559238829131814746935254163055237015239750335067465693144978091211543309106757223860410101171645961814055358604054091363604297339886904213289599670188028830396793346209200173070737209525603518185204876312965296193689688692770615219258279716652774892705447364145989724409901393308939835776909118740616628891725623639052003907447395555271848981887379296466196639100811207831963799352930203737772606070197285695791011739404268887120092140031131243678255037063850462028937610519781170141124490393583947208337075085054980552856450608533224307634829506049581679939180333530539329346499178197367249281164892463829999390602233922852226579954106439208525456608193400014134372080648479787614519328694215674753625470578149839542416453555022061640937224210405426401336093136717420262634004133320214266073831686629366059675094458247084314413894883338060236782570688535587441349498545912228135242796496331509385798951970300273135195996529365960594706403640967683378261681843803143295551992683393654018745786240410465511331559595267364218480476765326764967200676142609701751472392195597203509147427354354204857412057412903106644513764281636947382156578202280010816845164418536042497357984756850119827602804144415160217994730372760414310409758036125794600027075950759091804305254236712205481012683023851516613566115990781252538242404667171664093962112216840784064086578678540503594290201291989861508714391154809404697190361267404504457926563409030885891243525470948628969678491452967671994509793545400959121029433601947261559307796024862417035837517870689282498173446442092963677656972807276632019146935399722177645075436711883518670798739377397153098632658852269465957779250418234430424798971402296038021788293491080770405833846544835011228503330196969545976289588175437659712146089662086990067765588498258370914495917202716351724593646024438468931736040628488441342323394458381004742038660286848153445021249377298843487190809233116084655557545688698387110016529814704216252232164192858780886522069645590525129080402519818063660426276160647605006390015989951199385301870012872075537738478635502199026116599506981702579450347368521677678978715829023204846197780793192079124219283480873455650979505897102915295910899763447249427728490024838628592713510904111275748589804755823649790986168342813819315949122255065689775173047158203256934637244702358435324438487043381384181582953171922943314239304203213298922958337124241926862438875213199458931571707196019018352588296563670701321371411563811868835148037379958814883840192662089908530213968815748224297252188360480922818399115369126691117564375620868336047721426578703131516081921613630395413405981866513717032303538175688748655938833401443525685866857848770527660766245742296832098165324083294301822468452039030436378232437364609765925884913039822090007885430833626173117791496620983786880212195988074037076703879895653094648063205794660527757840556447247332920264545769912447472084084986039583757262799313174835474539939826489616592086884389584651858307014196837978493933046422046139779179731840207382581935315204413306162939752198762588774444517409989330092948125123958171962724703290631799812475846638544584228707611139433510345488405216845937964974171514997235855825839442198189263209217813663686577027084466820927810217885537023777463653178695803307932809828517790044416853458925903631583831692990137889549799026620559642138705836054012958816979633345714032770062870357801469654733024524908758997150172204610034143810482172028714477042402272083698172608090250433045744663641214968816218948043054039625187518604639441195234399428787198714582544893338784836862185601838140401326001884875169901073065281146701385955836789015510936036695989750754786999706130016451037687835670696018249628536904321061662269062070443277562382309997549686690056823755249275066603478412160719664316487140792985941433453474430662783506807353938730512283260357683316840840631523733710320999344019219013892370674530544314323867565375696916053033104643178593399465518228907538372937847042007541807482861207978516517260169702008229210737449863173724541272908582715650178847948864228898900766920851129826797267888320363532061015487237653873749810373604667488462740090183497668078730112283463722036719048597220233358516948125383239405924418352189772381705544896258892278293578866743588643271536705468413553589748698718177498102337153684217120001058855052051785258335132870431649157044110678979899093874874585145978733893014193171451650415895394699909565196619772907545113890058998828983080004377341853676047044834497294723555532130039163237101990206280071321925295702358411281751834740190021094850381369950414028667745761820924954311762201807480753467001741694863435322928321104249867169230611591994733485332241480198263614828429752663418933098774803646461830960904083318986414466186326132100709501935668238172419743150837989309608291072421302407582353074438247417945990703079436610580050688935043204422870779869498073078636084456558954505921425195405178574982387416982444816431750639302983444123829106946220028635874615537987384099237541054749227705622049569446596493164077451535196313819241099255485578833413132258873743795222867226317346524056851587833309551500609436422862634392055936292874350405796610625366463287028177721725574385252628898024523015886351706240538116377493456507353023744526471650854078048631611438603944766125881921176914173380893364497136202569085081863363911927701528258728824650212785889945408894653265234483179559711188792953414258931816130571584184515567508837647839412144860593883254677883698022368731107016743794401934196604692983730065234560155495609232645631460807661489531876300421945051756129359866680299579853261126152007614675254264691357857121398204555919518288361536198157528611607517510636246501782914271015013759453032510038656647887046105685796170519957153114067127362686055551067762220523220084077700735642070229579438221626199672662794853592823786498282494014435799241768283225935692912878206968077999060034098014948316932967628185646819600816797952958753239278557040518397332796085167922930163199464666135166477273679002842422054446131011022803546945687546868471733301949122094735639720090696326372796074821428357389174433325378943513085119443367584481782320899701108172216486271138226611095894595244533709528760498632249171876594534262007972641026369041948541293234609545394088365149808071359993174498076026920620236282027643933929238172292078772954125248275242053798130998635805991142686569723293290278189265548475280295486739043579988438440045957918559696818441695296840924442108761318072828605348560520984240948690684698964577196041668492158933686683907052259419483011221486298309111777119385787296553745363603174796444303553430246402692906828658115547399104137010271722538347995503412125501745491172446715070033102131271915675316933010206027265091312361148037542733798616574582435537536852075687556814507425040577933257062184561520027843431895012504348337348601341431608545935129385494101458331252451127609503604792486002164517770241426100132128414158575610283986915423121015181792321610894143071803984636768847900799866641675365826709100886582411900872167887779116396408719499243837594880347913664551487054109076846513760260527904755204081143770818644479500769552451221641600016228399360735884219302735313570523628693235494858213241749588675278431669871456360179382259556165460731659478687213981753431537407758479387393032344771396052627905636803313167216777958262746827089509421156492874985955811867856642714533009778969273609050509664733934615421002570643954643177878530960918241736324287875504472182283338996386294114629705691056577537132815263522787626475996817490972775533887580982423277940272624359992423979794252028510254832946732955607755460338930560420284046706135439060877670559757076195737738054495601828975010320001840736880018867383225897979304334907023940576180718698615865020902331362345416687012187665860800417629194356277028236416154536735311478774082495145829680029680153065459841841228200449995527510860566597409231806296530211771453284933788856930024383785517946554752739607454031218724871758525070633029703566809047538920946491090126779871514218573674860293876144855220742407397986980961020307529221320400033938081064722373136366269441396538285461303886897800248123827500852658780997910497605403621497012726918746695730051471021082990111610485921241443290028425769775922511787029424301471293117592822303714580086986562121783582199322568381093105882488330751124611337983251746511150105615821544109392890400673212335724193646591573645908613016145775957818942339494663498696598282795097029229572664362810078401126760122357957401571507853648837321343243596564134275173310065251689051080249125708414411578834422366200501507229392370604161474621598430950953544082715432545233985537919268829531873630106782696898022348835682323848849965979676513774907110164536988613619707136364159392765871873379410813220632768746435136619848282900667784999143646390444034536391005051572260148996887957240643832605945851574904652623487579886301728890490240773787687698748802044921322584720881035789353519411340096785719600228359987612964248885900823515721141035699588799816447491016034302051236348969567066871201335590721256266700838485326745078512557017592713533584546037474586532961996104805943059571163012844905313982984035932867353138493886768371114341810760681420516620697231896571313501017282916736898802513766832374875030345529302138997101834313053033238188184515513509571575711029896942837010804033247661084553515466216393304348087624535229797387112743053124198760280090191735338473592444117357594697277150015665075834300406040187984015669820263042785351474029430432636525290864043140562957195213759162799466483306010342257044833585104300591514852302624240510449878133927390324842770300499377307306907265125499538006596054198522831714353455727458700277998589326082476810675226212612771433160604939320353669113046837917623704732685974238626558754295979152898308408202935964575491792865221037511808113388854753064841888664190025013934076748731867056225743080485699995149335169746506329866183764257721120889506586053501144900619804516243134567004288064269658523460332790969557645370552481528058427391260475069345602176735208688783707255077066457976580609071733023621325916475423715739607969022635579207123361184008593618784596120211029059634819278758221746517221271072321917027556986923293344377922066937779434519993579037687778146943285396854017601910198078562728165472710333553642748062604035050675922894290744974390752235340452991832015944383561172134203212106449609903826047219873224386561464394580371243474092634687341356822760096844261815307152399300508634759190503419272895228956917101099651090096401366479598234497581657384687037204301132057241203911696714283352719258252260805214363541864700594335778056510931329330167015722054366430290680450810983858140404826311609515032323817782287596544725824822795914701760549496875452919151390426473124890099982813974706912482067271155230938310659803303018648602327494943956106027783776492207700663733301227627365440853533137628183242284857296665836573340082727219316355580519709845057194703527631651326351277506755594041568059530956030574665833840950973290515217397385824077513211057858632491176515848628827241408495096983187353132401998413971769898781988405432403132965445003300892483359426967021151769848127720618346008170853208527720484800036538260302729276045268911390701997229539382659876705015223533115588724472118539458983620716882827079192911235416598548502215717948925275442949872623008594858684586039144876602490693747919416590636304727796897049080436702570845677465280813197129968998047218964698681906761484395662423841840326526475630933200086613879093958223249278493688718583466681548956839207018275531913660646875666623938065436922667611666934514703352348888204298443030556824385278228276143502047722483997409302458287465930348381273854425188882888367648143084763659024962738763729004489921454708691987369219766623120780360722628011262039437208713630629206787453646488571725785567059915290265910469158025296431555368466419350789470346442406405905358075878208205653503954476756087904164390532835252325111500009931895197405680713976218428976324769100372514578821649487732950061378932555379637333214858989602103408869455754847897810077665298136695080003209354945575967702188585445903370742427514278589360923147101434775417888913614748856495647321694284870453359394468972940349860982115724989041885671701899760716841090046308037009082810157841162632657168823534745126883469079419972971071580848507290608510647344102780508100419820152241088718664586708856387239901365288042819839320154330415336384572886893075730301652272698770931134905652038855155374068600221473792002663466214844057485608952682037265866379439144626981152262047383665691711785377720732251266357238358251403874515782794617273115036125517588182664567373305006333046330434600541244092913385668263798629234351677341300800754160657625950824892581000746972488302535897268058759394238321576714781680569701376004981776113259099724719536372974293560586858608660242200941542945009645782917936596781379794194108644308824947233162978157894900482924502761482556517721466894582906144821852325015206198752583939216477579212990809632119510234839038847728013375985266258992139201181930934049432159969192475585794883416674250504073815841931264890156511718579993243881482518647708567349915169299513273840676092244521244122670545574301754133630074106955799219249179838887549620749656813337592504807583619005053280984206403987297495945452976153578709352902905229009435189693034108998736781578781970975443281404588521297533168055962562813806077018953407367281162840218045860323412357803749599278654135612603745918326853456681320012715347587500404434924418997940911630003013615644611067872134080677341102064614353046665290918586941179033093177680953290118282002741368962992608657029535667109666204159644374288239261487922140056424289203346731349586624031400357435133420115163095335608009802627095844605854647883911295872472986630926778574013698185125594387895528580661224358056556432357292775443455944260123320130358609278736928521745708913776833204512053538287110652908864389559540862703606414809967349529441361099675837156792122490494962855200675300281790275792463463371141171490423953230588123558688172926044045703364684414487585422907544242078934017375190746155268388889847387472519242081399698594061434302756121902750672921215101872723407212037217094510048782676274664827523124503069252108299672449169632135752452608819719975450181850072804487132623552434862891324383553566789997531147286298441663782928201385835916641785578938833218661748487241143344262378451632297726622904535045672166561322399716678170627246498164880167627223849826980780321637962013133451681113316848058023256635597500102950742607303904385062669225723333091916440779762582860023678311554751274294072300395362376581931158947012346636766930019502488530280157088242432121769040319544550031164719206677115231511583611350233440475443334280095230701436392565060607700157321256498778104592126352474943235456306455566702085271279546956016619588348365615012840176498667110106279509679671907939476422285761619406991433693624266143534773441420652752856957454495761411410374650658975713734861101702805907256587770128659432759364456121434749811163853121128655649258809820244762712168287751443485301120552270421255747684126790932400965513028791223603300818162386453539310172474550643857981877611687848488100662063580413242374732478883669538479611502050658081178187395442120672759994319284796781291216890663445214663941474632508725602466326321076863526731754062022278920543929050550880159693989656622405596581453857759395505260238572081954462851522005549201413854393320332478525898685153693652690514600418645661147386428294413091223885410231002752063567421090246921639443425671079254046206844370956109522214784565315173980348830421001346734953779949107414221207554728466751674650911772812013051484288498764071475925542549290874895823116388794052029727302067336138668779788509913294100485298084711909081183315705112939350390047352449743639138834320835278159529793841527712255364279576623154896653739486958495992539681271321981420704971877080590013624417579893605668371637706213855382467652169526249367302625444771961806554105799844327246415378693705774251171008331822495362393446416462304653786960729690591347626567856072489598227509188217942633303697859289405208990821606964578883587131401247316088121383403032144305907989687392219986735933938645123622089758815461275016279674312572991162503654111786185223690643328575020141909769556085639558214394982015967365048283190240952496205617196475578575399999753173598100640253651178288856419784987179501132335043440607690785632987077601650525346392476223561353428309012344021933507634433188658603535074497183172201947201117352444374979981251943267174380534097521307659646313331700463835353644653067438675150450812164662430216357351681129830407530161524484571572012346065456299041547573921550503697020578984201893974149682011287605976921231117063922914788625597482778934679990713361269610092825404267763915052106817635019504110710024274259908292827452019723278983545169083492924188438065422784914282904210038304616180406514168260777348286871093021854406420683843756848247574296828315957351021606666984632039905845275725949854475214357884295726152853463290327937198190397012104471196097346163546158943005308131619980858568910016648333904693378563688832461162675760169381060554452843922924438633426007057039040759202921252344715268783770583640067445669668589325522376859616642917236036235399150637958618392132253984921751726678741912616036787607252472925214976016579450600615743413005366171505064738828070045052421925901425755563327139077854027499424840261788287893857172472619006231162260076875245267411744157282015455147812348423018184900307167426738975484991087168214857295572400197220167749741920298235591261074830704857014793017006510148621942895722484975183622187553065205984243952062036525524507515603077977083560219284281550338231487007416638728829258136731735001442304477207588947160829969439680207277855311938446890482249372993214487824581533485090928898426064764032271653060726604200680870475454028812101054440641300996638429760820746939917901495894443044108815651945069428344111664164285270295732630543644582890710402208851841782135356579392071530841536751840941287324744284628278537211307692907891676845340944975612280309664831816874296070737873841658841921648498502727359194043711295065492436401633521228829131872907315089594561912673994275555171360083793681269594349332968316536668190384291836452658474333278246422102261191252468706795302128415757520483311983489333956259864455799190922971988715953892899951919606741127555854268073705910838020983418040862005439853830489124064202331003841596243639981581195794071592611069987087631883787993762907316530014546620637348237825853842636949937877599093631892748909122381789076440048444576527265267506407131254853263750242972978797122548474680758721797673322834143726927742697373882362827993578525980983169377964899507780793642664363561252094964182567414007644598308616998727169419151357975258750116219807762228870232413403357466093225548047457089729443200681106161218459636765991760802008689577899599081067005221441733145121633070583980826511491800036991887777893369439446545789164883661216229942309405750233927928087965917659191316636645755715676730745448346565625234262868860694425366869006727811564950488142215826098980327196119800230722131294069650016335898253947433570481436394339334122197285778644848611875822271259536591535173123471155885938930877072379286167485631488909024890316238659498346054236296840929921173820380702348422032422294882296765967653208305504555955893331472734990273919895518303931047232506256072049083564317236490239983932778723373450639374644121912335131281388271444679221140847627951701287270241547707141657453741124693545975596482325618109399495601670300749611454398015797634522789332229394802463884212027401401492307377858346313082626538043364983072713513629506048617299064076438489604719856907646958260458256787430988690148248733219941811433208610468160092128537648995827207822093300486435008956304494298882364399707844979480547839206054791176745203849600805496205662370446902115427920904126012752938156376284751264280576821646870649060003021803950644045322516474055870738899949017898130832767783911885479017824100875640871211558088038328753449659597247002095282875647353693622945935493354219630762750140211251688639613127647852876709515227683900059032657361526280356377524311812615181312681435736366442182814566552591380964289160442382897838451049602542479666461575744286918669178200269226166021624033972918974472744565316958419608408875334681425170378597178033877605029530087564483571088842124084497066762277245597858998886248787713558512103821711175497488599207045435148891735999385889099690579897651893822042937805424001197329770359211230710251307281302508339465696559803952837993191478401708657510344790120341289251282415192082246597778574557498624519874406363856916578355192769228739302888777164802134668596986339952853082613087864721818719694120384432530586260882114897498317003437231517537124247724595950982733020313242197574825763695132793640831847546547191312954008266737532353378019723173675468247917734379792207048889569532044249353683439973599236766065261271568211682493124437209306627826629536844177641384466092760170548877787775494932266201295499267345717092126844878951820957407724585876514464732972100655427359578377719678087779459342962281463811013168221818627975042308813568871260828578059240275264887158038525111115062169537632648894622582083766421724166878300603706666408869706867244003781253532732714557746608633455565798488225308182834227503907882468534309969738377889109211265481416874337437101325860778941839472167064412859454199121051812502844017084130625837449411947866945541156187426465811020798603345458196895233381679088794453138556112282895023651010321367696351267839790826621876539487455750750422587237985470874435801070468905277837835948334971696479251108347493073881658753051426694073719020529477553002554425190951605799517553126559237995985590728736320790224064405164910272235565358631996469891599183565309123329528466789303094606616388397796334086595034725382138911705727649667963281374848400511329439439332622210274440152961202047315516981681598711000951141543786063150850258025383952933070014803201104522365970186186162903464254951993632401819918464424549938713778319685527773974493259827637164119451027477450423713843432668020139391151326503708351652675141516286320285093117431858988066951040958993015980955434394829872262599299269200155328457666058226035043976337609346528414806781088352213749140866241560988769920808141766895670347108406214181682276617251499706547591205812250125579647283285568069100934584540212920885275512161163481913616185483552947113567911072472551562570832372698066147535636627980104336807093413985600326887041238158168944376181115860888035330354728147312250353050605424235015123382036262604978713065770917605897617828531060409265545963067278454757130086568112525288687523558043966178866178491272404407709228807562677829919550448780513462863341212511534365523911613672007383669793707251492813586059125530487678719610532710227348047130166721369839774563704013307702045860060177173547877430936541616363476583904346946782289376854954372948903284213190085048151460604354476616664536278986807603991306594064889999677211964268323510792734388423115318476150184619496367474204365990664299033494910696575452412264771728721744509797122850557624312037862070071540412862682986567462798996428247161149845475561328289219012175279747463705531848148087569652902014063372991438295755358059751304939302253593331235209316234346645496776121303688387359768017262713895323099078327503810152548174983252202679122530027177369941573854260518483857040865263387615971161845216022909661727092867625371327448075626297562122865865987144793771349522978525104115884428806228265391151404205662983320935055726179840291773799156138528441493738433232970199335885782302641599647763460022992448427880057608296864021771286183003660506480225000433504696529490566926788862553491127945849234367648799261207431945541496243707443718002917618174323776407626589044515840776739751306711589023827282696250370730337586253719343069180350634933755516184054608560081946306568759326268411649457217650160625275630184701916924923615535092719464264171790880569359343246924303845798726369399319940848885162075098230808931828701471612613817001272684093443147624079357496757912009381383598203439576875724107481849839419300155633414747480263063524082369605830271894044815565022299880704893374540445218002868668284477341180503352627502580778356944336721078092820496438645212919446741725616078687633261240309945450421072967478302446376540642284779138078542095903399166613573366415524173559346908243987211119308125165179996653657500903846802425545866095789747069106910494840069306553599416690040059016400309048781716297660066217879673987954430944835499600512669012561128133323509186225686816982177773852766033746246036412950863317240318858060462208083177201769275599980254608880263719696694967032809957527135623473105670889553460694937852954937096860507423139979026213539346867280958141248319693150857491284775558361787011205770371383665865184111284507262651282255621141029463818419044761600384782954923818309272640056325439423076924872663072476830580148598093041524787033621299216922169461097294875163837321183905245816638146791378986333698335648669511262434877612676351860716139076962679779527964412162112244974659262503307760254200215200151363156042182586261296874167547916757098847169343718990804824900199086979523301265267471851181792747971289821838502217028202675184968906580978420591604888688826713279937326822262290074216940371306999939847825491803581016205127355928319874594995228427524510291513227101328158636682865800987366398989083517421109546358106782193447832332503604985984291923809537138927978895338148942062147833241292094746552147254562424099568595288287185922571944997156301343684752484237368275884615672459978515014784376812137405479386031929101115204013545843403764440570953278080451481315304206588824096943476185530335321520820994246157463095523170502274675503141038561297568827263610014037292611335102492576570759738763403038968801439876768244031784994357161465955007193370273333142422008892123606995914142609626610947211028297134277403845231366222147942601620817725429286700347541589351044791263378176246184097317500929177295002597637899768733277387086283518326292249280813625124589795708381570176440000888728616824092994632815857678524191852364793160382152256890883049982822759052003855086362740185535393240531536732548864467540035551157282294118060850242615722082826692907025881837808282911545254716776994333474250258889936002029303005073248088971667855376348982082719600378177743541777074644027127893189103970244530308236526929212969048017174662218628545130534180757521950956911939841499131544283617584122946860672125601797612960381443420081375676870623240145153164950156997361312743349074677188816147827924321959199026845495340398933647421609356118601311489272136725714650217457116162643676177818711884150514301139680016642882834568994335301185095992469577010910724561411236086714535926673499120160734703526447257557953311950568383264709488022753725332837305651011621941199338452240730661830136995128077211392816483999887909656632016932471070848446738810628740728636443868051690170692907472494713024364132341771949081576817927421670738283219744404498671703182029605453118404593909565739393407113241392284089670158316248393708143029065187228853271084227442063631337541631626266200254898024473167754817525085622165499750538746204978731940594470357721469128573806422392976444503501066838414651854582437038925994882575622137258595535653695600439473962213917897585324886347116300564099381962633682332102990307097573393666055834721410992867839041423177964970947616039949124790613670671671103334356813147388772854038813171653461116712491871549979217261023765619277439575778487551079678089233486204097779125602449662213424377570644589617361061214879829309914455553148861362032165667519970379657883075693332881797385688952702573397254255624644765977524442708099259695538773965065356724656329473868833533377251842851217496365605766481346750236607077074978199029344889952825070924320953337188326080545204332337180735294116638028680463621039115478767304343039816831619227017440689322868585787211705411863561684280514011074623595789904346246065146492626545849675931853729331103585322579579118338834595997730915151487130877416635309294082136927954282232720216374114549797036760876643165083312790786938739357045951633552248381339990551494728691468976785522791472429290912373708589538431085986950327747592550063544186790854763607647807377190033487022986134393411775802653410236470174284603763830579588868244659276981485499636932478556342151617193632676105601483104956905839291575819843505870410436920651108594230100735175432716876355199693298153074564312965077787963591680098073180336910841045278101379815882945508417287972507546234871308499408269037428752704169459449641086169087652396534450458574339813979799161033307107658819030763573418219854702940396630027015707480672679226478863094494275144346986123208868384203381702250571836658252037314342828520737591284663328757811818565635224451888536785666687413283392127447986435067490976777701786241511502858005787081981371088311374650928311918336109832173076480605074241722337093848716897357299026428622666952262349911671641477691965635877011930005627540098176202778274268734542149578688324729233326189876363770758484834957245183002297158110638119495938288415457550710019312518848459387196233432868293002470454604123099175040636096970664030929083928279801634418313625484269075328223536975702255661140575963604988754868202046035624654079182839028308285629273238841189571493780961188890110377769435616260485757580988847375233504463206493918886149925728659068666032040382611857433866762276954576161345826107737664779940629058675280506195441484953274515003277455660170311753572398414237180732215929306258916586320502024311387571003846873196192605568290156694682318428080883498272661110273964312154097956752871610532328284230988941706515821088833237298697851219564753738360885722827318974890505559026591562346319770803954028533441856845716690699280357584483894065966545518064418759651811384989186319767828275837427247476620657780069547016444191222438495003886529464828336535784954063694452066335310183384256008363379843502790631403320811126852095017048892332730054151333636469336840990564903116375790476973256653311403992136805974160551029798710293378095350490111449053560043113142590751590407651845627351131798893684692113448942891292450767387982524790505907530047595345008877800359296397635075440597461325672547599994795215583567512536064812900466901048794499842340383984825570784776777200710440186480188985816017441180252154234865864536508803050659498760810088497689953594130669571448617649637083138501477688872304157521013171359237921529637655406644862204367596853714784892525218039067327996149986910857238212655126684945545526203999246999982485617650355051924031501305199720049649325996102483049211570935700341396716573465871912330888708628036425424339902905785267147132826187301869272570257452300281544892397718240107986433465306086244982729392646041709489392033358407790729074066595013629468887753374616254406176549805628753808798641345514687488171074245383472336278851636476881599357113370706655660100326234372152066464302690994036787749631827285124765771567170212324942595861485162157805627893335728010541291303715005961540109145743210391402018125831232797121206324319946086962144182979341314575931660585759696216581726400377520464079047621148458551684894188067986188212367846790739251279452056437475529169114395558787867982602550828730798091682324538261963814890531666872633211548341651289901475327328016228476694388938742013207696029060719809971480726262617316366571780895219662543796654608691836142326952815327065382388260433105497938590888981053799290876313741005993148051668830631779086419920124820592747714791618345486811631868832861000191712308126805133998890932015879270380462697828564039965056362206083539261022209837996108927388910409307856270460885413559740757385150193620106053912793719007342966739593938663865160421145208215300019852163270762823106911891927150631069666096001137275076484296228425366234747494673485381786153284579867637723242908938987444273140342762876979222941603376678557798453228584385054189367022719400338138115552527590583699220778507411465138559742550759741182362446174874632788819122433177790981128729463260785013311881095979706214882722870768549762108692739559897878040870725552270600946728862485592884541062357814443698611575779978397976782143385599782009007656494519976583836543115281042372599718786428173037589738396573533636786766646475760610409575491385400001865888966545400198172984626398901266946523965487577347957730369505188455265813105490334541435371662735729354008356866523900036908547682943639979593970760189823121252009994911549974803986863413628313011963465230837912949627573438168382550402518485854288414951780746913719585945532047882732533385571905791291298571139607545432320858250635020952507331690957732279662492469396612544298639410405839848578536580678684520192993506285059635258452743510526112047599303892290022910465929607625434970123853058604311476773042302549225088560094146235296061571502180311810496296447120456013302012911129379643726316948481900007044938393784544789095291905423992675434016348611804646017245978297112375272198211444724962599106746589245765521680315014187118047359158229494946627007383852653304105176409069996263304611766350317555875472408578820275958822628465407105566854432128238733979443662095748066011797781028480549591299453488458020818190553077623066196097278306847266877023345774954514658812839560469722126688536967792217545749967841820405696892492176487422003992717734637587405306795691734945296095119316885239553955410090988337912225006636703933143526863572304526181299635155990506604109805442524395073397480494279345186169609032014969577300109427769041994162469141424932555947801694814644867825713783658097812619928838827229976956396595472264969207130039554363090706128602220118459412366455702347678275382037020672152414053663431524889853990510119651244698464825154782271561760399958565433363301753730132334755342197382535798506938357955061872586792025241640125557595295651216341901619524745980080759210616433585885790721287917431839183652459989931599806564170782632674617978432613141819453468936361631343175096970377669354098162321301099077407750059222444753418168797613397994212962469866896359711277009283578837433274965156317036415030963426945111713768703035121967783898351221201440679778377643339369385441906980416994357179247619186661743655435409957580958952915551241221054988020410716803672698905732535510260899650218633806438730537383925020052579378835313061481981086312735386467101625236135754590972190516106410335133122256375739486080993657005632379917909757871672113793315323007057012881795666804044963747344232804398101541266058442372479861001850169272083655421845678987347605183937853200888742696246392466389118365145335399715877600517555719825106041286874592735828863542420049717488586027899441182930598712227476129825292184208422096105035692727036423258885629052945727061310530473040283223197347571932275163568118358842305680588774635151566871849603324895383746941099920370568731294720472812232285497555313192101021363630671688287145300358634466584870800549272320974567020870050962960419282950054707577692876040903203841502421278823774248490405449312986542178253852081888638100649227595991238572228413349971668648634125180128350477984542497459746403206056723818834964242741723455205858035123365916331414692758030012105289198503801819796487805985864168372511072827761864576448717036542541972756003717035348198813282319544717771813443209210163414453040932353936412621096672694983728110735898726141374243357160063053978670619838005732196869273905367483359486710696440964349520041283150547180778791494526517857977741661886606383646884727948494655977686586745216839119567739200024036111300118393141731190060191897964527157126557161723198994320906536960072234629878004377183299463671124989709442116581555511622872093059630159226878651941593498252057034261071168576311232267256920268366525811175056512501941321666629888634621576162131773892222974829665063208498251894126070152466864150351998027064977836309239798038970476881392353772313060745617682688428235015947219985879076907264501670320402058670906864914340488285032576455767143361204479716137633463861945337504487518149470397483327708943230968621712374168448761593807870149436328309744019018470743933408908393599086921594631646561217069722769063836389356296537205235613579954779639964178396656122420591771243863309507781300503512986517102423761571849591641873911369424392799809879562815952883045097694812129312833050937095244676227528573128339740698115934428535518170290848638161987432258857294153734631789735789807783022825185029127233029083851198985515069934861716255631387048545209433615073896080178351248099601634072751694550606964212765943262005326903185913474234422289062106281245184164631377702387434001599775759830277201638412776984714459407759679537294403936513649461164775985096817560354268081023040094924171639545369210706348637040065143332467893923165292505523335133284703471188125026275413816851317970891831366419795376568529639119786386318078240796614941562488939276630454065150922266926451083944749317133956283150390447481142214156658650675043294250799968427259877554633740173943028842717970664033752896262159559671187704702298406092446570449268508977966466884483410299024602206208556230281838604234994204855410369482711300428511876537719540404321598001832683476162418347321493263332672831536937554007681432185554308274919665227283740219060967763878739696624621972647650106251586370198148293488908331208843839145014639969792731020065872342343293603843262017367799936208765554818324687191298959996614739416217997421905084869308972910003743746218852062191586202964959844554144055016500475070651524037656910495798666946437959833355551118998603098502230104047529657348016725028347146904940745922571668831892070087425836858147877874638966862407073023396945955749890080673659738492053086872983635488193440351070855815388919533885308683922936759400442024801920365496368008865466499569643182084891414510966117501273412683483168981785995089096561633773061028550983521910323389180697379699545638781523626943106792012135522694204431772640822426471381490726083160407371971067940014206427129916694127696289965755309961539010185060227026227399352422157840319842155595538305923521825979503404492285930311886763554675422726034964544216607790455279095051002648790714901133282175479732870629538429533857203785709066320544296727765523232931497796457801502211339641992153768270589506144728342342193155051917774154496012910994206843804354844485480005154903918689254888218157493274026149767718674102037001639642853872647683296520834090502502890289682380679429927358491472749890405828588561100218852815528842218232902691819346035025508585086169430323600885349813690775486748867987038100274396078808553205396637525578632580707385764276476160000969067263712342395271698555372655700033945389988634714413083057986182248607535919950730562665154866708898736643375468809643493291525190940582514825470887581341186441356405089345686084371971048669904758827844627431898278104870870739754097584639774485631662868596339884147810460670848358191254288370691769301132182224806986613824366491789147220863555230523006434633513903044025761370347830558724367496691178800449082599581892910240167646818461999357989851510323177839153645246233037581780266031870505411575382411620352799344091906727661000510337339842804284230887221789719171607406174745657470820323254839071156965207880760825387157282563433864300340564022585524928152825768558728967717002774726297284644046713124988284975631040240346658949609914716998250590552227715004376235797809536183042541140678086112969726985855864156801613451071438202876093028348435731709030535587989196484235215565751950597222988358576807359731630329568447954383405621320335899269091451988477582897021508831066172563822026282000428782162772307662736016267452846960960164895596507690937287013418626217817289583551173740819376315053058306095297930723688905420949397963462054428672625835786058211507184330310644721573420714162375520587823730245750773575252178852375882943290635874459169782998502317449576367734963163854393396798149843352641511226106466016816516339764850391095693261610629126633113315641905195443916352380456749217094483210379684497446004713148410253070765525229629798781099557238034199822798069755811370913892461187431904831064939954432244136186077514383062594955719718956015620299977892948067834859484489050496480337185662029332156811747445942252250892263237501754524233399986163387118187207635669716580222982777648159653493525860558779257176711033664758900927543134775466325156699629677017587862780561248178408482253380926554440472876451588065874475572136603855718070055179113290051834047408073313554332310560861084019262500153276250066299205236501298898740517656148049349371484616172856411100250122570342958048140580534568046173394632202414938064717686902975711257153828719847030008435320408829601537271827607570970537206847658414214374087537783828324241122761474517445293713906647751555870627854451436569729675121984841581205642237090966703548579621684176876500321722099422891818171087914427692690142783593423893438839938647712275783838563260085491054839365525039950284142534823574739326861346110318708707909951794346356935569022158118484575486896576314397530708234600627983947948675822549655531721691291880836804112878695392768132057393847806856404797151339127799561237234510658400441575274337329220332166112643402711908477061348136934836577146668984865258899975992454916933346029048994406174736229695089744588324329805937721831885032818603093388951303532164440228362852022322424753048747059154964093211960142628508036770734890368234447740868037357387300682613993559849440661328446065154872030227575149300520618284496931206463792586796416434347820401578822809257548246642120240911354046813266125043161229188244739890770513792722504337725525519109553252436548789778743496733866813190874202739301500751091067365297009275090397249393815217680277940013102518048173624788709766388358214443596398536214881113589254787066151121581084852952921821038018235493865374392396109671200183587271465871367441522801960542082361863753156137830919020689620022031624790540381420890718994366459990081909205775922578397885025940386158895743739584584821543414516258341381142559097684108997006360891363196662256577623446943061659084883403104491809199006238560402025389713948898493006025687453578454977665791050285729971519316900892598579845874070380062964226269456448292231410671691778016212218723782534786624470353882707757354810511089473319121855161574837388741471103441124423137052843996729832461488996773783221099293757976525511366955326298741974670766879737361424870973970610578290151592657887027367586321658989272689926423022174067601912196219963156336291338855284639222339074314819707158590659490788888113848261269755326313494690610646293678063456535259040480242401085915364612498666661671165194821810712223634440435571869530850082001469210821565521942660735243376435290870081621054843498159698147509573714778122856340049203981056295696396805845247324699769802354629270908402491674327967900144480914817525030621893437309869278608385416911653784620785689475965554490802314862203411816560968186712659588996106758259305726005981763599821985059824103108046231608954732430091720870800222484548735826732678162590531555211916499701405853813750777870323303823223846178310699366349327718399471133698984035816382309130146312319162306729106080862833285930382300019557455447483072649855456402042801732319598088190725088791845827561662065894997152255624539407606061823434319361570181012049408240033479316262710533186092939754503840808439112242494056798708861578586683612840465980553729157115898139145689146133774949162032467761541974973110452290595481611856455768632564793301802931147059152021623223336086317937533729285209418217731599512505060848090873911612461335336611977556544821701069649353771141471731121651652077283454364189496184636679063103516455005135340606775970296607771714146860322494966136186162204101411976482749751503127202353210594108079692428041608224778467621385825887573540356197749260192501434644572005508047725667173805052123946637910202291917790670361855573262492997462866620644170522385620828979027802175737495645321229272323691434281873562136648375637202786564702003977002710850937667443251742285212110555869958479011595780114739747355856824277786788503770858324994363899498863108749891810712598212226014839193312755069080761757230162596913913308690992031060588917611133279550763161167271446344729852944421188896797998615037583745223095524430720115997025086906364789939013672818822775108915707716286997767084471770146878671715819502726673401201385656383175499928680164940339337666540665035537456629562803404387802511063411642883590945560559310016494216054381303129663899435431677910446218530417448894728319727942956672753832487787575048173479164346798261896594063726869509501614454009015630336563478236683708194375897398662034877337979426209294899313219040068197194304688605740639051303602940913846058635756868613253944921973050489537454450133148055108252702194025623769650609680647839800758652045324587411352783305497248565618541365864197843322228735336132233048279410008125385811435508401712825544899900280546474637989403555320916909184952658070361557942450784082715798510827807091010222658596092262776515298683549170091281123806168417653151348489721756404814019719201012916474893103446679890490635780712165933562338298268579113785133245548748160794432060165067637792067911279189848598861780055731150756054292401245585931297382635320612092494916654627736687066051081492918927108035051207168648899814820122142372327106947335079171805996054940738278894936295658526191701269983614654099536291529739689307547661967560149737323994070385932726281322823447847298485211671598601369334936872223412308163985224507721505484407949083505540066653790494642917117922486501000284911959298576354973805031059755895205233864260253994439743578248848234024902297297919740331551122049185003891516646627837404782502293489231008281374266968216998750876988056622766668733810570866351323435793412308360236767477114836619724468510999981230826523538946641963611755497115070121972524049796926134332089530207874509553305088785910854367372927087540693357218828352859806438276021602260593612971386707727027096737500867418831746757082877059626725416892130578620629480023870226545051283489867596593033025949491983319901062385100560583248486545595307913849849100609570015489631301512679545060792756863513035779478543086178600640438805066724420027418996316392204268472221341144733524436573431859322802705314987938606608949684074335157672960552358652202762222099006242369931605632435184495268968232027524358441351542880652624681946379735974731919463771959602913813582392896746789263971136145186486228984888216618732768663111880570556640451980036564957809538224293598044929367440737423187735707143106725856259088757147557642995275426790035020522289996717043450568252477784515238545180250335526326017520221533117247853001364195413203868112189646412732850203221891182188495914228847600393383669158061028587966219409792060253476076800648528088456922451335933557841343932490165444076788319715610145316979334151887511764370005468439495660621319034398723341492366480544680824096377545241779167060211136993683844788295091839192912049013901865208958534667148348691760859037698665011595624938025136811838516822497887887739493983040843956515385441984782734057835036286948039112746544965333519242353734621646018457322343026920156805921726624514010499024769936731775977232575911822805257016750686221026574163225588187426196858755322457856443563123336377068419313318986293122662004013639229434923981996699135439828130325728214078085509931076584405124397303868534078738269161311948596889874038387539592957452159217134929305444053203056061861932850127849230541451630961891981988145170320392105556727003272059460136604938035536228625789120942644419584788497957757073931331037761292665960862290909406955178358349143349148743113722420601655116129481280739272597074493107506124388751536209837999618468189741631514742605344446629916029807623819634538746083593696720157502084346974842162769913828825314271422184450309635395238626953266336180638375637731342508677860111150772088308001642128684718128726528468781452261034184264115425683029683284529956386605771197076008064851644439077589688814449954989703310128267629679826025929709744475135838676182220429697248331315739170978650863110843295166322490599206153613634660291320893581912301842305541394023264325756467946459794942428228993126660294034735330515841523835682665792631076911955710686648653131220427119827535490604231610618293162599380612577747005699949462702613242156484661165143992486945451336028085504941534829663279228512756579674181130126943815649283200059378723358591958872080877424817062433950274911067398531434260492955635694822228210310533046069789465983693195837180345806280941202609347919827633063302186946438142798241348891097786865659725449630633148136915652294181625383717551630071441066904303909787438083423921541374147368348521503565235646800352637727204204987937214009150920572579145258422276067099873406722143977981896691458392196085987002553403174230972433622881975037900709162121310582399157019577085279031528047593868661181720659149228180203795274250490671841306664802465137926949298874466935212776084652005243506853616377255613139473991935171310548492514964753376533382027366647851762298541088874916882145003181412027385265889792698387538131905299954663430509925861826874947529316449563630297619589144784290413386864048423794716909359518766686933493426499771500371909496569816457750263407758157196087206659953672765893053040777957967514227721433636743212634414116418417991152059905458777162688087004922629537511768852699012345543116567142813095694990946031656319748328939583607148911510349564273587580352742703256533780120901629979668311838691812841694395860526512498350797166665398047423745090965015513672907992861044841592820711766110845841962584353665400210874608175224376102305672804951113178872512049854001937763413738583941394525991156241548326158103604748606523246711154311347829717355668731009704065680092127540335149633806536868889301720794498298385699889104746407537488357451309612446529260694923115536269416646917069811472550806072809618069553876027791597730322804466891478967655064056245748797507022335480667193225877784788963137889099458235236171310566480490061649548245723802952142156896591602465940503552866617659512266674029050416688252804769803111721528229248329973189708019501406860045100491735141680595148362219353075104521935059212775825251560248801546541551485136857560200501174726293894259136161456455071521563930272369627198653062729721724637660776015123178507219871876894773986050842117665176326408866712979120273584623709941307037125098609248485174015739727558004281790341894852321054678058254519890461977569273016356214350713666008402938472973577133017068136622628827195546333567948631683062201379459119053219730740416172399616909488116288421518259786850350036615264273051999933951597528585375776483601697296508872678393500811466080224178970898894203295458533878940933082757582901462154760567062112292822272023115773396829607474056881382591999976862426512956909838752491129851190385667732047087556781369531829807724981960595075743354440080073635763929798421096465866595939968897364060087398613614696948087660557165996517829509759586915876394285525203071534706407427465894038356976100290644452131569879160892117343018241872917547614812569443027911447314525393093572863898393684549769732231886040048465884785039221332174432741089257330235939609696029307694631409608115522418810596512684649398232428478681033910112796614498071825371481571838761401586068749261041364369091734669461055999134170683980163893956039552307367566945334524875787264873690783883869984948424037520712260859943140822948488860291687425992673390480262071070420542330745462505375149130604575675688685098032263780265385916239602872864619738597311776705654345035467057760430751278100441239292377958956445729014130909308288753381558086396894150154030890242609682851349468143964868768667327486915787691881827666261642975896755021020069588312838988431553885164158799970315441651628746547731895154742965229576970857509560152007160802644351869880902677980825517453737348171299971443842150924152142849461372236986742665483359670791690008867530066193010909834508808169318707072349382897302680362452101449259816387520726880557756315250337300962698442701507391717072925382459861135114636782449405039585752702481141911095157456666450904718877241684338706652195760599115152776107895217396063063335956771857949547848906950861082688185640295741964039715229759003423982877251733991491684282642652134652044491442995514037931809848135922162594526751582557015003107546451039644740389073787820528187685454153684773371233958538718459582801643960545466139831168577643490895325331752692928773094374441146040710548896786404903921398012426460384663479531640284669428504062924047268218005493867819478072076503758710640908025187029481196402875661403952749868327542858875661726880549912409321634726865822850758714346587513609973623137218556547581727749052926722579350887128699278625083254053492541525664552850934225234272485794246912756850921489004080737514854394770860728886094441905146950654128528458830691795946019836420253040128059485120955232042583644821534805371413459810278743161579467370558094910387093900585363024165024439243021615877426887832216074353084042821060147671168223070161050861638225235478200411040835340344528775791295938967178195177866167834158781173157287536349194057290770586604043896073563396529975262915805042960778540340334117332649931753006586653918467271677565189380266250993466540578578730518946851170200400249435760114862956374181790378274388946919741271302144281411717590029983055170532686137977213178877918283295531562179331624822595977572969630303458026032820791259714944145532667023380043856709673862644677798739372955567279124648422370171945951593184641145468784497893546975123842055775431026604763763009010090697148251250712196590444616767725490132718743308388854391334320072966900452648952985586117079964567325760792220823273578351546977279567227795613464980738271343325149417889422442988629437062415921954251654540329517666240644881876788504254215893639916859207482634957793961200902431178368939189968024171705940633105307934090615489679993569357238468142570926312565424969675800585122670843462124875067011786244456669893181781594760189721642024606051963760605568264582380622625993518536442811707627769761851989637506795569694544871752334923094591934998387881304874033104507279903840332949519588632455253681039222281658687167478689744170320990816293033187703715784273091371787111778760058070383985127985052000654743401153187167813109398426456315700522298821327261618343109986851875544814306764951034570688530695086522057003810192538865957217225981644157026697949525756256514918811747765268224704345399923199831656586670698582850218331999575523226019338762068508249075580246397854573301725727362476687613975318648714803517175187314325482182976989284315786766540707586641540909411429012136877351980825938956167076869532161368681143983920893739214164080990077126740941194663749544839512100011118984700630087627758918274702342866827098620954237468995233060156132580996522172503145591623240002949039911922547157399966956216501932257803158696151804830988394965295400623599416253449618444691033247170841852174561642242398424055843617783563207133646590488032436485819230094057808345585194415336486840162301076823576020597700175389706204507266166091556035512392050610605541615314745338782989531065241976645285580846770185931807585071599632929650875475036493096262079202035259543061682620319374966614270665358907573135468929868276164036161306920800329672158846316713415665572454672994230788667071122683953871621910145881728448703488367167201005524264532613404611848540492275504426279060741173178528106455646062982923664060201344358376903357031638672054611768595934868045617767342262768263317476326706865854441341368052868114101717779079217278329026978478227940416952720846087396996406588409590978678130025090100136106953487317564532031604190323395332167707160716044233314747931121032140887652244160338463144775903544145281236427600181850334399982278642466015567734368380961049824487245400070311075535431412856915646167749897961427001142309136409651555417437763185610565193948646768365803517369173198406131702527305942492033917893373242237777363018445732300231865107627948756138324069294888422002664758995070434879499466328705581580457071706652839709866202028256229714869721905696213835059513818459157336805540244324990722817997363444977006782231315051256121045907289470012145463426596148721031601982569035242619239659355088927798593596565541321201886405325209264793452954665570487680004541539063272070766648606522597020429917787983159365029324439236467802389464583209847695139571964051689999359301679601649146720483960250442067224324624795774749182443176312628827213169502523944232416129396644713158925968379346027709316342027855407988622993847098544992298879816814408511674573913843922297652341152268888617419524883674254087510722776837547677219340550590002163736341492794840560262726557989089906422106856132506934967546375069965101997682905913167315791609640098955789612137260293920979418003447544548925732458494761095943307591082030610956926505454246487406928821834961115609836406243022505523483231939304664722019034105836488770076427601984792666273191697440953597839296786947091442058352313342415497611496105769174823769048332987236671457812088652800119585511732579217489517053913526772371455401715691432750110948542345156629065302336045313024333135889494574561019261407601342934047726667989553888800788934478010108365654202868185977165490254794647222039849616122757515655703456873421686529681509152940387511922453966747925450253144082025553821861386744823977292009111176172200962090265573313369910147457017252484436800002013940057627591902533441514520642510685521187767488424231352191439948183937331483251620169506891668537323502660433651539941465862057873042490137353841589735777357298588485678659067622758962876672024215909168401915374992982808549905726611948517348403245703461650678268996677168746228163576943059425938725571493621032298723915875939163315377863538573997280775191895713650801876621009319545306601019380941801262968737455149049748754235518255694275856619882866673104775999176296544915262659000702921497858874491251980643361260226381672354080033213132484850408237157515870929442041243562012923936184796299262971546175641007620129187388098112448159841382196925907140914983414615257998479459357080604068436392779698455457578781010204439325118285506004760822472777700316630354922763276556018912847088763633949277979286448352913629812886510006452193506703173481320792755051163459845306884873509563133505346112622976110446979039426523854101341263392725684872661850861824962677484951723892803018968422651388240945300703213016839137245292683573235451171925415975817890400083930849174964779539577152393165691411958618082802055965154831259269322561761600548388266333638168997782134764412123239677708831171049196070340223698655850254612083741969481465813573616497544323853401431004332514232751370336990926354622231032090938034853336675251007171671261639362998029814789080656143754878696667000698601197384761161192727230709599765144577612716712443674053088857313742212282344152145622035631084722734560672927683278950990609772334238552192016002921286395155926933290577068891306934242040236616724855133314355066626261099205154481053508722266358276297935348259142287750785785343561501960637394735458347291790529577814894341959143706466792924396531142682786701877353876915322267161818834452691561849045638255624844784938260459960873342708895805336120902320597071974951047578737898930268650617108185834149723809746435472565091832864460666260161330330460826915440892018084776946733605761939388727873740279119433298850308832549367876670651873062074529232068371751965934235118776131920164734168503638477483404887710771935795572631281119734120530876952420962593738147865664814676136297269552511751002722034398422371273478733284538525939690700226238428060122207427260422977644321156196666543596911942190175303523965656176922562855720944125426690046269588597508411449380492920801636214679594555331944140755270005747432467085436273609773673299275270983284974227224620136562592286118737896960982016219837259911347500044738111114116448627215544656511468052485236651169581202647794019954478783593959650093903997467217815899862640621023702295554009351656629109368062204229804990851829390740804621406147968758159513413932332263340754070326237078607986911030647363646616399323552503054720648942163811855490607027116063664250919691172344058413533542401605461507134333295285944173563552221418578080958069435977542237219457819200015791988002277663742280767943106718959387000625705962882391601985821923511304425220453925802703885268005352293355184798224796823347739322622317794742507113136455246395358164121820388718685637580718087237107671497031447266000963695069671607398294111895484480347370958306775728906797522349720532375008148590333856553341704943231814199308520121018540780262301471632131589599575515120013509553084443822761384808498477148645251555437218267286935672661459333582071856136263808747781173358853553874454100235127949896555743896142443045707466682002240572095186867024667318851559776461527772768571496404145486081557346790981463420051971609524299598377933997687864079054491718509464606357827300352547615934487843640699231550673273756291701785338415696570351517055167198795008242490625125336213290610124681341791056420672967847290553031678087174031966403934801391732979282205759738779147330944154542785661326147842260023942551818146792978161681264212152171327653479226279759314818424603701738685322052636287908381848104852760939033380068928887843233426172550286967664482111675171177435997756081122892581947277307828263630081509010142003984963072331436985689427430638170661409623643109943643073367958714716437347916936966269306057902268975420268909355983638327505052720158269466964102011797734363925115906327903065728940705933544152921220316766005532513954884629805112083917064430594373664061879630616902349814345033177532060728375280290037135160587809495757223047182156903550897990290548685172194358302342643297351781435871197398582745604373193805389663109537796068979270129053234056779595735162239390763725873923184513028751666107418852358966329809889102932574703736303136909919086961980996351342806321727912093025876508585858740915241057295765898626619117184276257245405933910045489678890470456965208448012433542430687448116476804659167174212275567885926530142209857511060887653279029749716434944312292319598946207661773939169474825082496043233759712779904869276509108551017553423368833992938005869448486342820938774624514341604061398399371010275503679595544881496606392595897037867925985662166773072067684444705841809355343936064828135450850222201498547582320303696883810255462508327063483650552296922492801949132084296821252803743301692868414885083004896471466090654607835252543562924189823231114121238071411869691889266250653973635760644626312066653990757427615442961374008921513100431771132037088062587315258178597827589527851434509238605692774247959109695425953240630543652910998359279759386684082625273682258844114342219359145648626163905352014558902545486810545264611276818953243960572638283015849515304073819425655723028915408569409461278328658748024468783718796790053978214142554255960553097170195879792496018752234012817015339016830567309359875192711636103393924546790306012409717828726908728613980605197242237762358538122221108219283125114747500138324612766412163445074324067211780782749054793671317465218437480602241006498106618498948071741966234053598972564913128812962525657724838668337835569437789239658105463007416464602174771334236326505500500132277703852699352418340264740083018929520683473527910947372602551897440058357376301315977748009095874836114061324472501894708269801001432189572305440365357552236848247723328786323799684029894023334497439504209875434262049372204090498570488101061807077290834042192257694878489089739681954002484777270252003304229416451588675142910671798469699247361075744903724677455330777898216135310357652242634135298430063037129047349394044955991564885493495640442270974632360258405700135344848867152663769804862180672245138248889264174142528319446236233163197367815546048703034526091635575728172255595659363852098368783500479574695568024490969698210073419790619896529442894963536182052833386259602801138879817440909002959058480729652269051268760953049405556662762538508222776937333616918222075741064933077343428068926143442289490609659888147551834038224666324419899008950959039566123485964855557562633429729691874814186707406078884135833913705251945403479383071326438632057523504002319394774658228102097068597207130453433554149442398007443740903545444094506991132890392114299692053798740799111251892504000298050020403032947439535808223534377824004442269248425397810725778572617061504349712085115104275021713177312401347227769138331676332181614872637924278269883681748482099751352870358626355670064159003826740138349915762444263673864157944229213233506313311266799769936639881109473712558807782338165117341788784419560395630990479733702579216192377709048277329052230968147775478038707583838297909383187719687110695306257078648462139800808098758828544123269332737236156125556651997065107306535284731162662386229373438111978172447734479384876122257574710716119095601372102774097324618705373386324069062430574295796454742149827000314658873819561092318057660912588841170877469304664309012954322263533148550551130659668205646140241904714075191508820063584336109157275709985524900988498001598671882510313272969881387441777706216615398620283363391288400019292716703896131218982636304790932109558552476336491488466278792368548359388562824346149648494975934308226672691509744657604887486527037546769279664480649702289157064484619312872609029902077375379581159546963558674124549992271447825400995395717719939754325766794658924011137067961909532568745329170928212117573162786476299737870596263001375398970371437813387106225793398151124220846955994136017204569161085843719703745229837801940290870456859298078508894641833147577915139617006675765915565627629605436170133363601554312958317321469734622561053479034619046737099904235448876624101970283280215957960566277953347670523258669461806972364811708865435672266756143955182318884485174901204542966547898986689610675079863306208990934312865297319300250924161105047419302735634797706038056869627629010751177235878394809413632784812484855598209279445746995545316765015848652869204703219213161633291755657300051763823635195788995952060063768635377555277278049323666596850403222992644933315315418315816791322382979807072315878235723366711359343550716877617840427047257620724275081925051273251064788081684669109147328343862363505134855895025031275722279405622036431058237396085649580908840021946883348422811171420914691190764129798749313945667082387709062772628858252531998323907016111216261701733945330049285568495579828172243739628479825026851611249668612663670370292412726534311257207560699338181731931605577135826512672332644832392927846764647985845525849109094127072718312928431578181612793286551662065808927041356271647573547097314317214774288505018491579611963509321720179835390122001352815186158922743339074234789293252054715674203725631759686220364465952043404442319511410849966909546836917918263936741807442657808950461878848938826843776636513596854179119997581198861263054588519207662499704850234321165831244734712907402955262873692094814454935019334671331555840280936269056808651694892506263089589336718615270914028987011245774884242708665286330721346668387401261795264424638031361442127303821331492898571725749769197646795952498772973026668999507662900608511095044371751922720532228638667579383731677864028430702733809019848247763247042168059467320040333891706436600495482560319963192032114005374920535614162357641932754985441374786997070924856044311473531650339057203093813611835973033624396958680290614554731244772199348661029964890125168763109676148563875974323543238804233133562113808933724520975001008684573140526646499352341850535935783726857880395932803577166549011665018678452277832698563717577458372319781546316991812003550606106440103764515240375839742054158398207383576020494985700114445367278879173112976201402698547891169818903517636197118295471920220367575806451745486263415267803277552233539364614305445627910654681389354438729059605259302782957977790144656132433487761828987165529644407709945791779518524363084553029729934824170556821870985685205541087451943138335772287117512967943220212353138186484517995738656880812895182211347200919213820246941422158167730442264363175217946338828923108188376155110451780903957498950348164575650250557671984874801507047348233642157204062298097847484714663459219453017237752188202414404697819163558227263348143741793772977951641722721516951423655879452656758148783574235286620672242951308201987163282839139549857369163248847038009883286168838258379736433865664992952604169614508653823404531714957340804175952126003328732105784867057092429436374629765356969800252966541738818674756909458939270750838126487291962448920742637120385959120582404261739654763478296205236770067260132829929502202553277576312208471828871505937958221189873256026646796008535453272303795295431046766656119886825319827441877021772980072194774593979466237129510036772484100201661367538929475782141023579010890957284899422036764519321673379777023851403096648988027909668136863114339560291987489395382032146869980757166079267243117290335813379173356167919768433163170041365135753311140315055666318767597984686970319866951807505700953443236106629851184645764169781860123611591855808823260204914104721259463863618120852087799785355073044254617299154487998758274312943985120070162319730801402098302047983312730977484379758684831998265366445606649098531049540873810751971081762033519543410288568437980032352124458781588797664247671868983292447050110385951340833928103875154912808049003327669012403646311036368195729643295950909419911983113670071145210943214760098791463686790836649401559575862610363297818627896927985269262710372457419567857842086630292897720675313553101622609604589392319525237960878789711225696292470812922930943267086761078868143225536283746796945077509751366017209458412788178638517710897333542791602812884547805512289926841115490913557062290585652510379836677614238396700397224670758037175381793531247233813861687380620216003638738250720850873227308992229965990862238883003292612560606521442881382144721675992107103172346686106230083597387317835309515448164538912055300321543458867101763598480518846098904279190783738963826047690702309712794605739747400331184323902823003329030913893618633287982896673076763691651178132935750645674904957860767148481511227881400521379528116553264536293123252982518936373318602417474480611110998378807763561962054084239999636927256658925297149465728104274458050996869493383089869583625239323472997493231733379654931216258779904306335058692297728633867578329049487658974265146946469314547778487217280240141289396192293767223721911583898206848950617113150244169128845822315103371919523518788302695525830401169082957004050222297057561622285473736044462806030520475941819417531889567364967063379670254251318592725675353958556699701043283847991413661090660379606914404920412149741612645491489833504280473810979204522996486099397189192928646346631211265853773413373666211751206637948538775917149549420592661049060096548461880689460501024835510366980085266790178615361404596359230940609710438711081591151722050391590584551598094276225120688101664341905591112575689655310350158269753533531480272678057879256595306213286906580503165405055372292814473230368004012738037311131181952619487076730997189034065401352215060137596399901956341955506656395592055857298447905749817562890681571366087145751430551846696977848670720659104607695705629188732763763155611238827716516443366254024081523787280907777470297704981045659538620006517087505875033773966535812974693000984283348752196375210093426406317297905541578680232103358468798691926716735424921278736148840020328238804541224409563813374455833103689524738734509924599395526255090060073664577499871649590125988703951630469346306242404726173668702603892949679727360666525962793041515259466574227547981436934787990799025113255794224313553367485042744111174814128006306532512025272153132605574559537704902669961212469911891042837740930055977897123017353393393328428666274924998173810049766847529334090977890818299419566868118919271957124916893086440133747234170737558093607565086001307643299862530023117308385574986138130254437332230277302287502659334689379586578356719904674419894540022180630159437583120905606200253371888702115669884362644689355894131848832709881563567342445253110811235571212877511320576890409485058953574372994600455599044471480187154583645593113368701082671874738864386793240769342116850053165739769770574205816369068395129081242496474070515173069394529622166166052740692817336210390212196093793903621080119029496579469590072235132384848042414634528933139957536215268121284846515855217700984892926381380964968118746897853238428124858163866988010912282570812608492038537731503203256272715582877025482540758441426741794418983226114227193840462160155432439120573844922307665432945499078369413834719725789217450846741131255757671353610189255980932560439397184221841778922944303631108745070984542022570552921653876571450349282203886212665662381056675518255446494589135598815180263025723118232027086448181483477076419594538949410171211152430433645080265530960353860706592518259635129398203723699078664510510542374263816775871802927783580650555904839575746435761233521373654485157600548988049410577865521344479337427227430232404679828007081530986089246150244053585309588530844861612840152098107934111097310416121573367381301592332429684190562541967203653290161043637502001689100266797330694825306078260834966543892071199581378834503258451975764917374359947594531535445857072610334611316126054608883080584076540268245666933040011668071524426029655002767895820242776870590404976508222717541492620225391310100407789525309191609751214270175888408835584608740051447132184272335273797906646551420375736566713187841265868455910449860638492576714762881489996327315121730923612620037222734955979904458445919140908127278356722766336473763792149162257590504662341599336624774425233919426258045947852631445291393927185971813587222961710275570321282530718065307696699418078791020422822864428106299364716232179829717025479585151510223357623147252408100111470944694994330047700252571188591253180221219680500770581081840444027791133689684540632032766541350574854946651510923778344778535471120148003970097485710764745770821987806700790942975524080463230341563972561183898373582133912443243343616271877124985824535261183398601787624283699430130690951584764157607090635360661411552710208962386665462280604788464572484287870687657555907551200613562466412436341376834069600735122790445339407390749540661988645714848881434603458726402871388898337215492712761028898240253723416057138272039505628584780223953644385074087328722496353695965486194429136783550165420227796747927926475126426467543498005984634448037936041030426165397129309418679967417976923286930611549629357507643642405746536773098644959157132648545035812320853325737057861297847497794109088889137551071300940156276264939879878213515192107225690386024430739868474260358741044472190073299985792839440028458143801888845326881279515188721067285055264483766043038251380555746079240772783733557651984536990512685961414276550368802664877406373436667704380733804012214139155547657735925758768953378632827867854929247495285023309312308363128379978406239413966414776608402850139010832443577930182817713104237665290745494930787167030199638038921014265861613541854189714153980086982223524377439380840802205842520466136545316627035933709729667541418558834343790915558676161737128190802327317424247016938312680966124003612516230776108701172484750782499954677612014650513340975479154293655952107494281191559605394766989386389712076369892196444567452555228306585697745269699257914418651469055435950993204788109735902758502614815387442402714434388263361481172646513262293575832711618254038586041890019849178970097888633062524371391949269180183965423031206953657499514938166000351407207377946893708147852070879058570565221217339885795094576447916038068420877420589898911794006508561150425418181854967761119507243520346187358662941440339142864116564336122749336168810280424170281980367822823440285141792715627334914235931628226154764142105517268894181638794681218959759921180603247916054251857956706552724090256965078828037520707265677304353073880756135931043275219464487124728615984498375412771001157310972804345482606626467116104801778251874424651055811342412109109442876929854492388859130490525706212397521684327296506798694146301156002043764416420040682360491415991941569334534761867260454592499491203790814134034099900375451288728013593925041069732156670909368953417780180868296489931070846380672497090580862649702985790314968254382431861059704266319945696962545713183276303280865601338566366148086120289692638592321258811235207525853550255247835649239422686565962819638435597960345071411433982725110943489241244385886364529815698847172569807558852498444949617892401939372992453912550408040914684842117764428334522129730480903448605828118936144916007251786023317302847784792429176168452426547670720009583618932222077341746025805785512745966131454032684718677894694485474448435591482864725227170551148305462706738416097323810418564026740577264675058342092083654481892599250849100272087316315498673077411922057765095781924058582966376426742934492044340550551175555968962044212128104378152959500960363091805561034650570115545377122672740175397591812458204856634974932735124080443381389427125209569078488002528226112194028898450068654161528423686037675108649042485402948870996177608361082447468074734977335911498666569562902095686592816915529063874730008750547451310372496276704461561348214549046896621499178702604436179943628369099979441023704012878208571441442017783861840686308904193387375181091508730365868788748413753847071903952196716640081530705776259765133762505024194419364339177560964309468654581605391760439594649723103462050654607182722189904214609817661190430008428494921075858580914674715512797475062891469079647514064736061224932150368501015165624783165658360069526024288728965777314934355556988998501067241950712466264502404230305086628355534614110960502702058489462744688200451944526309375156399112402768913125830047931699706715742180279069187337211293640838019742914387524307672162909429011210405661774902834649460535417165635242588955309861870593706743193988350640240836939140600647276218437446625544138453774427665692070735867684173544176035201890061688378839685850342254964355864319906328139030525928026571850402801909770914415311162889951761133428212799815519751353517692955298401878210061385281572960137559008130947242226937443709127682942457540161415632319557113585176254340544443216516797461076611215803779199163385479369124385785782359408576337969265190080008404674486551295203933670529052981560709162397797517174756930793256926175996544187160104788997686509872387875466430772096848693780827804721480372051160561187296919684641518694404199407680433842300650032072732437994497144981247992581080433032017726276095040128409037818015718032154807012825133213345064816507976845718649643924491521520942908121105547477141023125573321315715181346123142849387578320944571767371204445520680709548359251018795438197350329836704281587205291216907840767086468407209896998333832537156486683364375309420231302585617693236936364501704268731588877711799037061267243166186824273137467024272244096390531150848123342844220423031935879747593531597507750266235821799636983705868215498902834501119102601419956278529607092434867747734585501704538038717039250351855455864096547271954982052326216609034566029504993555563073435524874333671188664351763333093691112842320357034557244034141733325693218894569844071311701375098497095980079735005318098329325617515720448296725899674078380858742082295912132327555598927489442436660849537418528848947217257155795930918488167449788850808993852902309768441339156029469859734925055104468351736420489534717877356750078677647283099671643652269088633483796018921142788913506924153625661747270780259287806843545649582275971814158011468084847961821971484104821652891389533906345451433706832492538145167542743027261865928591314207077240406034685686412426772219756105746451427399921602655859004966513379834152040507555523739540293944462457737973329185116629311231593534350597638648561100225216264197435952506631238548892657635108331120305558989466986688292979537832100457072258867952952353880710007732041479239045381108615580501214418716076538955897032536455034116377361936315961665147473587686343451742950943518569685726310892269281972951408621598044365080904590793402614946840260622057650896878827049751939274148475601408932941382795637426210207844507328399127335713083536232819127623204485604106063710971077993680356326856855633607955350208255422171198382061428509210442925465678738690627965254397701357694757977958418358279143352604735355716035637404517760024563007027936088453888617573034306015693207251936148191053577698136777842592097484240258412541546943770736188367363972424290677149186424292977204436239405520261330087617562149551466928870133113273560338618119834032239533813931849837075904429832041485241819242872974533637886480415024011599411304599143675435977429826921699093648377954832892554244910070871514467841791458696037353319590823508091293104080689819527999167652855070488530336187090230657177960505272274112714794397222120285724051289168734713881572663848631533467277496583653758051969144792966113105922666562132292785453728819598515408345550812144602737491041407951155708770589619495953089631558737615604311054251220048406308726146270766093464596866825403267301915076063773654278873512009474279739981510119099709192492878856679581605035898342877561545274998506238393723692426005826368165170126300404495377806024561911554840813264916836505941437517308914716321113493753463534169149426692208529361465639935715464266950625550968208644061192913034988681722571831532050469343937593910487545587952688573839287750087291421197292210249324117376411203258424270336832227742692968672996814835915075498317068790955381997619477287383827340237025170949402584124371067539749639832637577672148824151347248258964173368912513454847177838157962890483354522060490585805428462898698513922797196494086424264024670944285785574896239727626800419878414645009335563044271602370844604578870116163648055591079525518341234899119591374061321387563406906795500121365741950800675521412893005462081210122309240467131411350213381916400959881765231996647984371680928253816501871231060126177024944905862408707285523004665149513115386624864795617963243561464042171158966020638722531591117033313393815854808831474678097868616229030711694992814171700435839441366085862016880730465429002570693174727593704196072459157946396095416547572758881428039574750049886390734421419297191953271136269880710426969200465410556171556067645751961186375580998197241330823092903670400632276349735753917473294441879131964206342712734936825350488210292114339715840345406260667948910998140648073691525936830221966747292869999800093883349597706563869827775427421798149086808463697435739130409528109800881861301146696804554981333268213483337657068020079770914436010231277648770636165644373197500105551018855729535699325266757916176226224780456091599511685097743959439606150888062250177176587983568892521630440323665856831286844843960808099183208148542886620008811711565462978932684511560466888396215846069818755530833746534934281755561366904477228564618816225451720583826761876480921160336344092368153911758058378727490177818193350862721219831034579206297240192610430374758551458578087589055003805432779332208078947429737155026508427783261875162430500259871667074889681264051739118899721913551591930581362524192846972955260668173768960397023372288830208902535686409514438728661911051372792668169515193405847804459973522889198736685161605180905642505179825900564659584958377460448606736390498151638084028770879570598986235366561720757571402902996778853531946346108036637251211549915073920047640596675430100013649339607504990052708042899636120968038151155698310011081359806782832178576759637318643290554095585171581341214627777588104128360595593706966671014860444045489687374167946464494608343660182241916188651014447986082259171896117623333795684908780512360655407949986871375857089663523499456422493666036652015911500522026236545080476472119037483005845081162456447550466949289111654532275218047416485987361609362096738554883907111489097193242556176524265440987758620525876945523571826685635488272330225657682826181941042695827746893233471675780018851690991772305070956263354399002782554742003918651140070525206552452849741695516908552426673618199000249165486441388980062536986632141447109348688355977580159453658423927957781573581231847360425551216578281778601762616987576017256398844464916782419970856443426232020159186570069836162214035531002870557165011844790886324089111149540622745787354979180445966088189820270746267487517893845263512971280310066464546385919682919184064889615803264576092683051676138554090917534619537964891770682316943206941086523210159231998636685256078812412584924877458757392169440995540235971942239209878604309022450925722619093288377261856279397399907083694271500982515521571861294645162885963154641182891534013866338183646864097046842471255614343740011389811911850985217903327572670924150553592674479014118782501222200181706918388323741176605384190301643918041122821355273782675732852242964036510169352980210042763312480324219190061163615945192032453412283224194324758859439425220314898740003336797602466960970643642069259598124073353086755331530781096505090108656469062188619231818997742931870774414928593294123248923799515723753566426695410565865809496117781319016019432226175100476851389510450961206793150393911720936200377960259990165777401338275483023673857058857443367704440900015121628739766895057117858417393470669202998207357967154481536075921215644999250047245945644103349427887754943915072957951541883201828179240470555599133931803918413887895788439382483270607723282034964852863007946886291283456856545134260520255545789308195495636790548167139866942323601054172103549504489009915481386124176273495095404974179886136658200357332132159090489533883009234153194568213527861616626368218253286479422018005986681768960063296931846963818292518766851210627341782212509987912501574131117251214840179289349154062787463250488239764477098352725246655040677814515202647451267787912294015997570803766611460211472383552096577988076828344923111089738521495251440573864603492164485032745288779687331662671214504388188623034956848995854510999166908450048896001921217808230521052851376179018039939279364397556078315764809121425808421163933874254541809999766161724436811416381425883666180511047531358428455948567578383389279899464443383362471387533099379088110568707069596695403510566610771231247629092986625719396377058047106627306685906754608752276754465281147086420846516340746202044024238150191395039156216065555762889016323813343373240331860481174868525500422346405499117512009156411057073103306171593718600755714665498401252332543675768666309327526999533276072106889494444220294229182466667027063320389994570506142143787695083704063186873065518676954016599899315302140973026937870545344867427782281026243740409110728508973740323038830822595290142816643164288553389669892080290524738189994284419586940697655471569180713387164033809255182559439111419558522979754128615092929152379236786688718776447071661237016636632292288525425550082212300812007875401446354691593316244614884090042987703644724664949491267281422255655743714393335798910808410422877698413884648610107271896358688042613273880303238332468668371996205544842983299755853786366522163538528785957257056464534454559425085022513570024654053899539055708950971292305092108459913839377279949402768488448456497330381879793551626506332594044150197800059594606344673679963633875305682146562864241907563141169198309817698324596707795566284290970844343169464110467809785197258746967539882719403740912415247452228567030474853269493658904168047198265098591840143667105933584436610077115116530267786532837238332642727541259606640368421377398920317206475298450072844171288452951625652428707855505630229356148714832473604841444081248310252305307186353322105392238159127977601761585663914567500772805037648832895614062680868928501536689306783650349249321314935368850746361812986377203737134822336786211447584708172532414343166078696214189495910950249315365288925431541956157112814773367433293890946672830233605355325109338776002703745297986252146821888872238238268203448793012148327652015188517307225812773934768367566092747105771202413332853472799476562710306083736448255008307690354257357137952481313745303263228124157066621219312016558751160677565106503243047330518121290756798165750776445305627513893080795969012107384957864158308556744604097089157194327941994290239099435878923615936790333184990890085457088656175228240180881217776756748819066302220448943130045554095284146463577693325717147710860443208767734302706651576640633402645359287636691043379371027983848211754557036066503005571035047654748535350872705652681932203258553716903583982509505686283707089482133883772762586445799302013244165309820067958826349301869772194595721679994154429059635184087645980926476695804934812997708292023980882193352109050778773697371940091914220783091986552062350865886806318623795880735114200376664694439610040949483136711238372001923716543450026165945706302905331841198716639832871526370482562593193577753370725940784447279453595578985819586806322670922262424184396574799403199450817445226885168886977240637263292601731543559599076128280578315110717061393767484008255753644184504529523061052016283288899529415032765217121866684228914178884679499359237220511223614195640630640238579323326707498826409800893346636929779432623745461578859479895779771860315531535048261201651724168403650147057909983229272384955518392295324594778607336606146828581823542763400270468463553233274406745292106792381622609789998425753884196181788869262193047489549791174390392307479953564658631141594816939651437628138887591634078354353230932617651849695376360273766492977658953205023148369028779968783660763009143544186273701877943260855492735507180645442831712808968173616467206394152113266932590130980786474210489234717146357404937865225326102282681642802046901833817459805625445843458088156449024090240441758316685658623796955260928415976775291055991146691315028920691124275968721079915597491998248641097507346064930797674977201861272290193468326541538313891436406824564050185128400633987689982978826772187041578738890724295223984721974235154345633304261892396662339009099387298300429547908935633853370996002640641263295145654182782607294427100493798496920535511347714781416880850906518081965526367431258332331845115105008451525416046608123137477164693186240778792198751707715646522837928506323386587282308829418248483097689763128370760936708132387404306988744669614253341148561907134517033653295222844155555110674194853311552362907209673701240704568529235819498944322850372891041844836365732538400362559036131203977307363699632145901211129047769467095152388708653675185944855778279131669188322413234222574276424059140720590513418771759667537676017609587228059818387567913581912615851871586400295102602794797684911708047136415335224000155735138258357817187266784199996309845759677652375721445943660403210159690341123734996032312022960821654301743103652314930296418202475095335180879928330517881987121695577169569559247809993768846481612747916059865871178365343188492283239414894008034834502410694062463280156769462510346322832040284986533678752352701936266424910642348236965824434472408440566777234627156891056758143199973141802185741734621597837385360380417185301263816644241487319136992426295171707183660522942222251689939184415812515697738926071035757195663853463738825927426441336880051811443320201473933152775351891311338183170772894898544347029886925504671481015131194400148981422398141874867231088557198859049508867083586922500781454983853539914027828195596474108977681467367850979180324858099741130877694552475761174268365015938528290582299434607949415084173403108793650066517787927982193947634558631008143044581355341399487892868252295563510607442556416600674372308608887517961909338979235672398240550778392821007143803399899108031915534489248356504309288323507632391004162407878590748181558870328911111337279395694682402522357728197354277493803625678831078205895392023992994100413767756400845297522003795498761134866155742849089756298778795287777263927174649917329407765600168921115954356666123079828449612482136101959021162646658971670766448594331166125253898576722564307020104998171330356501085955354593989313793492636878524626313971760872387600883092526169843550936155899485482181313209850451567347896326844373018564939209168805723555119185180295373757282611003854003119542133980188514516754556185575114926175020104958094877689283452609452220119723113920493602243811762877659777072508108017352598223304809955214942316420038737603523261228836006025343586919943761278972014408797131600708071015437109103620565893527608258881536696116536638070625406475596966920509427057597048879935737277786973793790911641142248624657146812603797965925851084076105775093243917725808860628597467958371026994636149903355733008310028779503043623472983613207483432709277967853073760469684631110269670926531111619653152393627617412420760302007861505147028493420876451097627102727358868114089849595810524687301418609736853049827159291832838155491821988700352479084115327855557439907765600469041017091514089336062752258949687228460880404450055682991684134954727982785151137826319276391796769329573300736981171995738987388987062666747406577307795788012640780172078860450053000458892049308761629236559554798396355106445131590945391435126227265242736239163815382745298033147688171740266710574355008726014881051951568334710909521636549843062028390538540157601397376069356943423385528879692734468607726538488671708027594454307667516496573166831970900864961919801904867619904720889247024712785770127891437059076723816871504537683648024133591015614181570344507177584000353924018229710849812800492903568079966755726444804575214338655792387021667270319631363292306798488716199761951520593793352183068512053858590096236474019172191357150859415494176177014525362544487514013019212773553369175686286926860945208579989793203064431835978251030609215101989590716498452813821048171281887497948719739734121783908029314901890086009619988923908148875268277148749350047507905452982106582069865377782032958561040865397348049299457691529945657058274001487490815417744142180417463198217189744627205490175088748248012705836036052429705853213791843291862035050556309349892248337743016812119639288690680440190683290900241752431463614442010355971403067473842241596126795964038430301827447645898104783381930084720686636052953585640894298810068652674366648770685259898603921753969747546422461541509572057835119070120960643061184362009197784670292830621839614152071242195366791492751464530122258732039429938906418465196150701979843501856526047517133785470985262981748948518248455764893289247352594705629816345322138666448059400725410636447370411079184319275522206260354801434419065610263824959069740964373397039178218005496592647921122717954589047639244438637111645815386040855297290724312747093773912502581991192855030397578333128581773912225808931073555873948729020392532703450588405467174763158335945394937522961962525543723573721134357148243574328821900939551870286184910091795018971581863250077111130801177683927713298608885165706991967661019201668839803744146911345805699958131319206421047747633142401643768665564847712192358437413998093679230280873786787842932586438721215581564849884995019078906919439272704986375786607962499150507293586490581039581898022604307710966429683114073624757190672975936764795207642268027316294481602582143552839732860529725830191976162460704412542141375064879613769562206239904534980774446227966559239070044483633441932303584428877610010307956528584157773688430394952066574346253749998434592411591807489894225029843104982364172038138504992595260063434650328858053416261423525170352394418412997560079265351367510189972005100681255885190923433817951144674663390020081414770685319353862675222162457335923601275110639531424865783718696750991874540867383535442336405251123189112611634283693601787639472760598857329187518223645884153623862602218277554830127176078301920123144555670023655805167818254164687279627307263120651366132465157663125761179687595397010595497713956674697195491685473826176835615666008318193060513963390164514416480375538758953513974753849294989682517937515440258772654864309343708411264544071201997669927500734181092959377605868326324249054758936377744625391791833774722086265053025813428679577954237254230565641481180519237471714632496384184994696964700626620417533815745472817098313801569728995309850294593741063150370818777325143506008974585190212638075573232708978158913999220559474510085217770378336219814542928003444803817698822045967384386540189857909421927030480946475022235561125738605999005969442606318601474853299135573042334809482480417937520670224301641957273266190772763530239660073819182968472226904199353922671617549545448311358057864916455303941202512094744699620355169060283141942987217217277702753471614026014198211866044626954325108253117251207294512599978277356365491296333850904451123754781167258333341941656982230546532012383042043711354832166350965382752035684511779358285015554479841926005489609323576651470196002091389317597306913894982380519456749780895193739266814080352137575499356068095363030973372784740782904929304211026094213905813698995817199861438782654990462988066373357728382654899218924342200492503041088148821546984623708986790267119999945841672460342144375957944438842017892059574929099164436184705890399724124553103249754783093186532714389761472982288413620092588402867561784644535655176100748041497839932536755148717890154612978967605866802316808837551566433309313558787089622879447391327689994495038666423870062148070929295874411325492816307059652031545923783157117219878805470028255828751121295456341288576566073421609839343656546437724384541735003974733801951738443475766174495940770770112271471629566946275954692182942234132716587745890137384154853681638825734350453711210003055177914267140241407461600384053370698455767431766770633971041653139311004469882879080832533007496721493193228259189788541406709979608007719954630616747035357673559809921634176262418025370717726708020371134529775989118528878438158890598064962804948576458532725964428124771301717668861130374736855244702570467656263965232867564851205091258904188853704838377855587242262191807168851776211663012503221334150336660299198541102414387415515164574482200157862412197270733191314331939399664939249232663317245452152048843587713326846891513374758230845925256473095161463558966408783646668400948195782345923479613772525916928019251140478486325526891179994283129760973828413522542028263353489842015169882578274230930217089228542486253934881322141072088167496586462586582650827403943286022311688333759066163303080259980993624495048515163505550647593748956193524257737303357969980611993613818092109134803960890491930182755186543254462086791704941966685842435353903368917147283196870933175743801877029676401676934618156190725353262576166275874450622399620717434614820208104671107105641524437370273625494580411073546181212423285311625149685887510354721409014075535515575291882097500320596395701417571230180971668245460980320634482829932774028438730479429749335687966963452020738494919654166592373864561103516414307068009273916848960791291453825295360623976404836833792622147932121643604083630507003881521174153222862059791166612879022071469857978704465572904733511986783384858290481338134701922304937072225328410277881244156877464027088690822588300495384098566057581564826683741228180791705512504570227374429258748901083319403425448507982479440477011925342438230055331557513938227266186197377849810660658191971204253809763785332217740284859724310438058916772458776363979370374696557400230852799142521514839385715463317867640144734131435014667205649880217600852175487020092646978247154911842019193851516987940820759361573568472809391036345792114071159444794638030967695025171620533720211442633395041598805258288903030140889623389141392293483884736893194308506549693862074726540637719200620229945405916448749303219905819861857054944645591377554071119640621995115952946091120786179981337869293285051911727370084212783573068579927824513194964271719521452153075225455574235742163670403873143134076354122751428809289091374563975891608779975387902978509368578207960161507276395140687613544873368734465294249146535308264319138159161556413270399903247806179622022766537433375316279191761649652952417453391478707686159446887997219876918828754235256868315967845949123090290479336782521847239428951067468435987101979199130831874630878629785057169470615283649522948110466088045842356895323957589591489007103134330783006802498739797376382546206966284677638885265421061467322495186071944196433740978328184356417505123045038540312599180894207822198319128796354626201084553458719304925797713702855301721476361488648708847246582522984178458532974644046951128709955051906381335212633516949741119471055493409627213666598573659438602102708529168756809078004307568864291894045913484305885765216341449903500396924831449579234425321618904535503501995770921830883959019693998375016268624808010947459576958610062503313191815824317789418471166934631013317297404071945457907221768129746680814147072614006022363887226755343107756030235067266627523393846833424097754392694474362063953716497888314644590286309979464786951164688791945285380799886483851288837071193483735125453058470206351809546542025274702911828313684658335841013407610754859634901389678510348377122355351876349188013155451486452841905103608680460390210628975063302924174951677249310780536659500105170029751326340379052723141073218145498856892360432048403145348582795475113488862547649258759968881904432495548628382128879626674789012704382672610107786163636413914562031560560117454174835646560139475588932865359549310976750180924738258811783188451206506826347269041173865235057304617411335908104000175318127606646870718364493095741063009088460214626028656215727209513541194410899571539840092000575484972932895793056044870785512277761938368780786124459078740749447487639681798119122672383409207666846925661246230102408237821978996933146341550448033135074393177758614204407720721480035895036390690550091901488009333059953153991671747168635378468814596290700506889457056438531190066047589535717221079252631761002981033542526510956689934646577099354547521753590962510857859731986777683263459134072009628970673551048745696511205397591294591790873843218420877985831496289598179989217959904517115466761734081440091711384942310531779933837589577593833808195595974134573316697682565136396409287426270987846879722287327206189721293660926268699606693987254217674039225035049057904831125317088178601721640661798984552913937515873219471980607212540735674569637726488193866590449577520682535931097008886090415295349106581295170487792112679579128871282670077596654771165407910508589338935996164629489968981501493116891037811722253182612458777529578971824929952629331185632663012222847650527797713232369627157216766930153513094411353558098544987393198671585838472203843821038063177178132722200209083980957350940997085013247800960828246803127283216040532652326331380471480765771764408938829764606070732417475092997254759777587066183967560250505626573903917987999997815100872288149523366033748125130583194666557183348898372411934711503105414173458547566846774813112602982052571200883691161366748943574576546853163274362847329127098325843058906367032268818644237627408470464024661504713308998076152779117292054413862353660308897852393898282130172815404528887297512267207381121018725024355425492928367409309835963211845814226860820104945387806329098069690889198080255246710426668782752712276638779909081400110630010591616594455940969982312432627425366017778359316664324765318557075462875717444361207284647797888348676890464745184458793134354261059736316543400559428606596709243798354525909991803377782019468526429618012146967681498238682730226302506393452893497051606171159072782992662484033887873473948278138247028979327213323556395687493278196153441520685146278799244049065217954870432806161943190837662237284467173596195947447169542667902883919861133680576011028533385043321391162504511335239065945640473747417652146736917267354478730982856516443789535855682746669219213863938461484435627483339624131825204982366571620829821577117441478671378702689320206987107434536764848840345951780324086429880525006784993920349420452244555496707666608520472877978963508571729692595583047271056152016381995498321514175144698120093958399316542802336247026404583577243869871091359045878524601621615903852639380874359095091003632457807558445305479205067600012186973201420691600485388783239193008346083215185625031921811219360969899339520500998974694354427214960256708471203393969687100502640031672021488966261914309725196365067198478186441429844098959749517263473401069782491090348211637259454027289471796668200411044463389549632590666540586129746197305756980250936756088077567937355880649544098910068995118491631052057761176724963408731477324072166510011059387421744461304780663698909342414334771455222748149449612484309849470798186856329581738480897526354429779178349639373370743645758935122136445285392077014598292253443892066207031652539675889633764053927010560748131717876301212689310263761371574673790844203210807859620478301739497309698367230889654312209827057874194143553908753177876070267813863067907098745132377917754350944758978363429909281459267930799521487840649788445693966442432180284873251226311767188789287242359216181613772258058244251121950029353215046904580013163683009902095475588718947015038576628489503388148114377283396979425019612988332897235641852809199374727682839766434471096047245233210552683716246693614800014881682144493586284949106102524315748248463725624235304536506286830176978821292658446322990389889207850563955942827173888507294251986868133591213929533404115671680622564389234813961134769215527751551013401198378927788039870637743930199314161234417456717945593777477468620729389354265830705757856652987691552842020802912857959884324105538749678750285912807243422591971960944146866373166677841874151657956765614361022530176415739518421838357737485294088693225315682744006923045262691472479090097862340393120042059177280822228388889471447919712315708668104581171040314946762841339177494035968827462459744429266932427044389444112198737407233787245197391702366452335639342687544537692718355008584170920854102751258744733428678802914279702572187929157717453479485499027948950302343784941163363680007337609913397942646952842907439973300152104444846618062910473859072392735703233109647880298778039128287363722936739344037018644566962888862457332521367299479988745293189813404236883275662485400103620844497180808913640010517557263389343994412860976782961849253570165971437892938514969775528698808155997506401878472477578840075433936670904208894448639582454473892371107132762631402169668651346449449673755731159093040940813835373038929825378279023127977857290744912137855728643473715373943626509581996541513572154678686437649815019749814637939726318869074220233846594728438050461216888112968852353287634277287219009655523088614877517704940778311235953956365722153920155621128554114833377254545732940096825773648993961549632634322189390458830824312918618248731293152051832520093661692488276940236886876182313690816440377025434166360919244737492574204338744146835561814159860722132165289108108634517434314207964746538014655529862099600710895166946641603860205970716609954378877580080803442927467387569191358396720204974703099152754095242307153912162652842345943071160925305227984120729107881427636956967462502031693455894596024481359296237290602658104526323377445415690935911803108279874733875421685866067426931536057151894564817852461817996364758025674651886940598243763886623736643009479769442559242577898156058825438591015689997287239572392896418011728790252408730452865864106985746779956020295552205621849594757538357119575067792006288546312986023034305819801984021303387218799675680234555097834604871468678940666649372240504159355149125776076267716548981585091984075201079957637967646461275426130197050811190770006541036240072458340464044847212459302743885820214203587631185055622068234901481442370871169745995801096900462485410613494718420490306388082710353356981167686241516515475206366808156624037232880079419366836893477617489430629123111555042582610729720246320606586412492278684644140753067268691504108146737900352600465825741406667754036088766060157567374683704969900959665540723900762003807419748746323574825306053312662267457373404910375644690851607899797675087719992493550326746945814424878361461148839330155254090500635984823575561890534427651741316951424922088540825002946896970200009347399998463267723677090270120657952721697840879375602963086306467657032213488990375452814030039321882026573551094825253290443058898193829486285868468361688804104044517647138677531556449273227166671384101154788920890126617615992237647104805153241415803063762620355736911614018493512101261568370012623233440068734516605293627962940484535677700422895510873471963536965194233918671753115800271469856439328931260898294722536656060297902266858199384251051325682913553669657901676218035085478799711524071561928275059322179284616523314151074812564389854988075873693040243198821658615104162570268133288945249423019914875495352185079969564033200726600624935329889734352815342301720428953209224187396620066740579320239494391640423651672772527042439915109438974868481792384248786792212560089802464571043562162946953611167919905717755314015082215747529295387633475476438807903478423957985830861063818500056045184914163095739476718331313353528468681641441746613539191170180979623463348772199805104688585063865702373344370756913364235100408374563701524578437282439772500250898829225680140553810219462046095960149843281723300872473297880293584887040438296924304684138752398769633272883365448689150002260115383453964482501343893388989480483905287332085095716579665305216104118162781473540060317973865680677740234254251022797692921251191425762346120680711033101056523083338822601445635851934307288748339308080749643161282373804002321700049688884642613696210149532647619549560375451425847247768297267784698405681431343760805765281162646172146805377117602177137509618809135093243266846575225598503837212452945719644978772904883546065862440168295702950550964650791434097416374129088100637915718944841507373631752112417813509669922853885906276084429742260578218405797813210174732733629452342407854055552791240852796063524671948250195783616106098005691994610592201471864531084367042923179991430060279733616895800246325629002635356137723223147182378704649442925097513678990660382830584618414296022260063859881600677748242955352935975757111103529852184927694071543065154593583890323204843702738191562306779209835757620114891027543315677807416552746266751569165671956967485480013763918148840300516172974314112626843684871689604855313834159922069709326948102721941725639680131975281502755991908446879616929916466832061348814086527295919645425848983703197278928791181802117200858367351312573093433806492203918635516894789405654718123899473869788705534145263391997239153216307475061022742712879824459438078777603533312794198512166063446970622117159350192887239608112879894462124959763638699786644568890011845303079852247784570199396406771746245724575779431024159186575047525406077061571890360128427990554082169493640736326042876003637268591851790008291467299882563441879227030144606942105680642634182626812375272223071357368034211781619305080022571844127380606609162309558450199653151484709006113241287330021798995947281094218956435956164159644938980877447496898292552496023245259448472453134983121770945082766251231765989918620979423545011982838510709990287910097498276598509507306588425438567778640883573454183637559831331176602615052590279187101827843895524538979568575820172335380486818502695951285849816077444160258966921078136727007528860320846116942544660187819793490480182382500103045670376117499228661128251472393270535017256930623463361802789269495450451352205915171317291916327696201250909623730463994224042599267443745577516205408196671514424401154982740307491855216248017245759719062446461872229606248554658135275318186020575869396995463114557071466591917144312593769159578842149810724790278687813596105475981662838309101530560657668908860663390116031675512126965550248469391073962379676679148710530452442855994196936622079675073876441156910564746264389011515222457883040217166713791624922070192585512540736972533271439728941456457926757651452614306105021457339791070625366601968667712598181007472289226254778800964264753107004932612497813163520971678963657758561350912648987318040807426462049800314226458846110081557353801462112026730350755432593666644329183752566708793903470083986063280205276944704318402135687611869150727475598071803379286593848728091837621580530850769358293285311469094059807849870353212707635458096036500381176233969549060594501107363925756424456853092745455018328626767588830705408532074809113212865947113002884367313492257005861521298100366929351248207727662666268527555581071762109447583132942077274824003385073127355404915833479270690439332783502876231326148606304646449226577092738037107468573287318890572085663054691127779816783019675873013443544558660601490779216544692808296694446364284637765787423281845539509040199417569808129338914078696381262674978764419293165728013415778698702031167307957781941720349529653732542523224166839993197868659741077796595394964871263845208096814052544840084385880650395399975600947554907163028737333997276984295771954632225680679899265796587801679095326518137234338076916619283600597023858198607913502197103086991401940355897811663761338054276601874876961752762342145450242335916190857800226765735421100490975425462722782782724476541950198940158523876179375764870666258320844350878973372045234702286410022621312555172309872161986752995098586889078343494818087903081180947884286774669402817940685202332442130486003379106620836834569880804583945485404572850137520026926510898620816102340286935134944500067271475283782948732766176560536838381538175401378939774078700359943046866322346594566317163720211355348299704995969567533453348002760369234859101847616722985184844443209429541686443400869733403433404238399394725281538228953295581300344518924215888687890311616914913249488695419390097884021585807845064709793619434091438449075751270260215781752267969089725145207412599025050349271624091515681103154849012915110398741342284466638651503649184529353797772668551970598147247034233463082074039043165240654379509922980668315854560476095116526816820162634710829686215453667370996015680528120413803558937708858166088565712690455034914460175026607926540795383316265598237557115705211208936180048396886921601815855388531943017618993425030115714068960660368758871298295254758934329947505865838354065693981390795413956933115814227148130096283363230199246813836320176865445538510819948363410555006797695550920004502250625633940292776136123019697113843394816955346421795320707338090175433812550101568802151765056289786207330905041277785540182785544204514534809236681664464157120661872712798304694943945965809917709376173863095053770916568958443982972923287502320655225678386222994660449907130925017529762532190946218039535104742855959738545174787362087524413739118615830617032344270601198913145432130915509168783506551955531778349992175797370363634783407960734849645974629844140193830694803141870512871086415962815110935444869066468260527245338816835459893549632688855304061071579570451458054326626764519974402973622605840561313271072404393860508358048463413047081306983756782100530195024385587633855631584008191955117580818499674403290967481935521619039378517905374305325008668650020904250061908686136498661480454340055991866947447323170717598986471468306054546588025181661871029816996174985280456540072668807576240715481330886215056193346026565592169507937060572236230127283124833691444898410669558827094076167767200674615385376411388004963380579505650107626579392467442153831555598760517685780725488950296940152795454435645385948568774914753255634407498432289199222045939341970273214618577266109502966485567324593961087366840073795418326957402057258422923927154866488901041461618301654946792058990589656970301596038011908860941950781300651751286826729898397958614984088116736013058587413287929515505066271617916271519331253005781026538487680462406975444486486241332837766557190629995412257602177501028281905817328611644790769124235900444288638813942223109640979373720837577522027969354015361950784083393082274300662232868295706156445319035518919359736124650529489067763935428066402430351566761831411331676414859702824916575969251358249779833995988251772366162440455596351632653946406527114619414650805702666937154337616907047561620215786155004558163300353754320224043379075944047675788373436082087565039917662778993161740167150679192332975832875536394414584860205881569818581513273388498571015119527612841171675459539541575060077298596601475036298071915052041611376511619684370007859118526358213685836962639676377925851672962383933770895722664126279912144753907341907116805099634397083753465842373664582663078596628842826340845018041636203998357946017991799063197849144009271297226840328276026419694533837886357766184204204408776798430335164555140851733611563437467707686008708866874502721887292152981382768132928946759022258842884595616053591969483508721261852544304224643103129234226338911855053060798278408319919628129734740195457938096125296401219901753703949810342616632371622992499961626721318947121401010716212718590580421657473516872789627218097901829689163063922301346377003579896821703986737082938880018001631995886290445864183925749176700953385265848003407761514016388877511119742915486112536974926055513333080108208923323278772634886172970346779710352745575793355400471730326669415239644204091029561415552897152045510273082390993541049618453575407699501418728113659465748379940536275937694871703240854651133842035771169444238479725982829809910598607177299549921659695446420695169646594046226562546405284224687560102344591047872659545908594754676602141580135032957715002324365514704180062344483567305646187654068785879412363785049439315430594512938622328752925496983477267704395356227955436798955253908902123711867966600362073470596473569999932572518301175210211725873940653477024539003175349222457842016975877529826738620653756189716689693493546041348357266680298596679026990589739946600901558370881696626542181885102396654929968874811260529533334473481068715716674835182113184498062542660478731551254037510426668506697234629280014821283229861206824852396467590872748910948516443774395220102960162171842411863627230741043141828579834444022502596971532483055279627429287508468260475679955192999152931969099359345792704044987080067680030991086201457079937175756272842037883708677567126197485333097507219539290862561615154873282102472115063229983932462115846119864175881217726210162149646388565759789966324647935248477939750897273803615339220753001817302381154343221182163631759718608502392440118493979088203155922772427079668161103273872016607376837268933318528521319814052274892598402004167709747930304367141829294627117837407855738770028355520318259008849976422284265556668124491500373564296613585317468765566999314636807902513557361168375613391308184647520354836533695860720247247786440197337796439053756175925060064666827824432293073107035936808555629834343572427136418803071794777518321279823817927018048925912127002968213004778030425000794860746231780407763772290397594723553198240309834170409300651466260975496515249836305655075728521484590403259415179167094147258905005185158333045047770450481257813144705112330887978818991456738568885677979053111486735485703228441585089718088888885081365377475490198396334706035431914750612124773511704566403289936310998473200235126917312279928763963236351916873103128307883499137395547535486915381360802821790698829794137622379981917447637188975079934726823393609911448528957163501763476016319044006739605519964196655765447100106367222234065051206490682211992990688737154235459189687505283559152557337251349046651513400662309573818465020717200425076943771234374631136778133975717593833433165960255896182350891708676049707204981153472796983211694800952404502015290279089315222194845069149870137849116140856439654128814654010496737536658983795147222878340040649859622735562616966516768808358674909948679886295849463752619399310277257645849493144212986373772156398814568680115412560059316499493942621604769572096455997316323214537802354140163959370026381439768426101602658259638773203040427626387549257311484638929546603961559740441267558315716956166920147310384846017816809626705910549073657535074343538990328628293481687714944429790829314596836617643446338487328553056214408943647058811125800860562688469578196828118986860454381526023190484480811278989808833005767524710337193249267329311241977413262058898515577776485608470139142135160782012850096034618874150530323383894008480656826864235008792441073529617298539154501808645570984081897357679264194843928513330027314800009564821050361232823943469974041625298721134026415867971138195801906294326154277076869588449379002224223785950257132934859835249793460210975597293699584504441881112106191715067245773366470716623405446062239409350100054804387188852026744538830448585114375571918225064979795966021990817750166352303308974465436725835036772806578951731383548606915075086570305298874734522651465542491422871683805989539543324065412556290825004565631182822609007293305080452558431999257643100272072835859878961615839950126100111331971995841472062966892739787724003810907393502253246532846696096841402491323005434720320473135696277534440558368914688869925186564053294713773852363256783406165679589191925030688660784501943020692585427015204464316068171576731298117343650978734396964345971359176322927425765562039615461828390735519262805901431605095835440115250051770505771701862642553680227220157123273042361373703630007095931573645730322688926233952823245002679532852029875523021790845192328322172050996316569044903584082343418062249216363527038774866058328501393859117215654754665747297040969524271320542383797907075653526155919044409607631203078926736663452385372122131329633613169850821671010133904832955321477272675471581582755991819834883452529345785393706745785379016222703862607593026470531168854000909510095373664804314292160760068435699468968299454188448646022908365582061531742414059682630674595113449409088211394439070754521776824472155753103343096265281322643434880982074887066795969025385980648540083951177798156089567176090430256657192481108953703312820128059200709629174097075010490823985555129913564006522896119148605293310506311386844489342966537045236689469100489580671276972111219949848088158483036459111399893786380604238950409379014212603023342679515129019464992038089326429984605022109661920174547411916083829087079617899758779657376137633425358066067529846595360438365928733973763227227813522348425709589602531277197343951988918306168589145352951666852725057483529858702966779758671218813729956827418221171671921415496407210139188700769295088459555918921550036696698176059374455191811536291988331342091995919131590142539906042800341005289299289894460946407147659645025031739745860026889510955538869022038347469832970465877185375195455154148766009599264770041847144278440030155258472654350838500557959569349605270006288783426102976599107244124691425398117742573217235575652503941731887921628679411451465132112259827152514577977428929805951657139889184683967660646183958939883921280609653848461570977045519402308053459776151730610915862411937179351206833818436109594053144234750780090422768312944081901683580387400909237535154283730335075355251472563521050534420408086282396282209132165188979192203030430249565118980152819762968542863970299685385785891029864733049682014520131250373726691710255366183280729103822128177610559601136950480854062633826641685175619385739060056997468324601968414138083486080764918246991010191230172818943490309659393127292036613269563212618168562416974773400481666032952835518853911959392406658617293555573665218648370642104669780322522707025227922020130307278901728196491330382248223196774478841949868028755634539377743132494984398216637336614214667164659706445047705418877856568530678997084710281281223602115228191354248674137237105283230607543181694708141263659294254863406651639394714547758235334890917131102068529142011526561404522635750965944538556041931574335699641830236785387172200054848766524428924475890706881253934274921168619361860809316488451883733412863777572035299662490484612444874208875067260531597718309327049280961745426412679406994826638451435249396167156969695450660124083857641109579548564698613115066115686693189204109140773515196117933042940318522251780848958021577907042992205100428762893652110235076071157937731925517166075419505443990951164434982576157080781462336517820017377065959617176084387441946763400017392478362430306603700461640519749676106548086646090855237910172116524488324297652443689869157925698967102661287750941533574488817173059657774473236896148071684399646352926578971217168809694165073029997905205644464776125394339400253166943274525854635152878939163712914507131872111077193674981459153424881128201304737060116729026548165601099862107666979557820613588352789372795563310533460871482260027593842878997761044194695833618023997376783004773265232082280521969798131112485448506007667128837914712722905738262666250155645337545747285382720980338545564565135239982097189156390845743018896352166934917672110409627140741512615993043910417525892487389327521033831188384494844485774829934118114223554926805625807935535768341118820517086160385645780440436326330674423757844850485863543429233253774625204183749962164954319449851780218188549229558558459185960467238516466039595896157519813726201378659294097582442501576438502638860335352995467425742864428909636463352624931654714673692317337623998656575672151590389870010928207673651287229402076408218101841547927536984609100590728279285038217140845987265523862184910156901162580890517467923241475928876861614640999256046681298921421976509644503655172998421665455943001029604372454784196416179890657479463483493045672642671147549142931575800956676149324962549892669232853049427757666702544574034343958848631790945019496215502840965148227095766678565381213189963224471302900579892066848926041327239871334243566313938146731827745745741351397471155314070408996675860290493784983077243710592098408111299095232017355951732016748204523593104696396371477863185415600481283264815172919193357933731578581142339358331874535467080158189344879153050306693154060787326069802660116868522092554620420151456066159110009190608024624966351941493155506340319382104423306676669418178212059180240389865067892042866600687384362366423673244634300059670174252296017375720128810104809978325930882496646668086418735560650139070642468840756926225638017909734665168159973532126221290095577583976622685427550232596983979944586385683224033502247427895802457555222785777510153479690044065981177306867655050721617192709760362955713948062047095369187405236508406263248116730798305732047833841735368932927316299543856814366500179976283583829386749903330770424493232093976674802491876799353455381851736471556861991314326807769645480172570681110555541877747021652943756450653109328131277882065039438090889783434813104258560431154607688395425136961833056651554440389075404049419836530773634240748570299884043840269229398853406390691374820510717778770660203259615102219173277661181913263216720122503918587326932098992925429987921561011077289121524545469423627570978822612666067222068742872346353034756149037036052510107449700912073771534626523825952718545958121298350152583049556722760926442021956350585470038905885918846745495020713872603029117448585947863720934479582620543637075697262206457625078702889398145818923641003241206945075138608111001144895507288254514618145760778822992920838086121384140106003661735077783676743043805505009578324693524958740790916637296727976347928077683242687303889378010267359648787800972602228894711055967409787061073665966629699411541257076703812407311257183936309297019388664626247976667100579163108117706534351636544738847275530865943917230521984041557927302552541584048123464018760864159799710524885381281357557136141530143912683184948098842498411953299665614981964822759529374502147605340038610091836118080262978821189539138910594016824551041916346784899873350388615395018669363959874345393516157862018942609410750411258658746042526380063151357686463233865215636014860452811531274143527496837651120500662721152895129319655451354272914157066406024972900274656244165246203345809488379787361702022912562156868611743768846263270064263627679333593405443152391014421968537569096060947709221622088802100828442087007935358413977807845247597157445475895109469552249786781478880518555321699894554036887581578483857352783612094161155491631476429443273041274204388439380771501310478771595469062498968773177690555317449478461055991354268158645160154296934603409381519979351785603468303474809416749638208440717651335898721578477233855960620552253943542913326784952971428198506051089862037622370882819750482231148570102214981963653535862867473465737021042415501758096318444211939831348315360164799417534068504518291925438550215670652443523757834380209629084354890661535854382696963181995141221213944650866978511852629809549465197032571907261274263334784555781174460386196117427106822272879928458079086177111342307359784805182769682083401398400101729398753029088038785779455666172967854058019524675360659341099531219990586544667912766556194855868021318511912920325844352629071835573961209950153656358224645384330035907588075815755932224280350577871074550156164581371348336103753841655083461666213904078928355417682160267159467880558063856164080705403763988744179690092909979829815884924006733020097716923293905445083497529322615501796466628272041383942379103197373242076093422321218053182773388604824111696060150750396036789355012702202497521733591251458334253402232655486178427324891389262926874045182941206303902262704314189267500056763262069399019641787122489446765388778852307279200850248166583667755129317781400964369405088479946475691351727489985976679335485815183546871575595423959794772704876590413397750414602282872264992260981178089465527812274410881707307535805514597522357589911400888169244170110020823470025378525442949375326016172186416817637130275587680693625610116292042640117581922395915276972803913569828249968436543765414922518175140316634307599347844412657604915101394421342835675976425111948831592376227793378070502015579702476004438760585672868666852237020258541351441285920723709482830324225155828551311942969333005500927955474774953668683447787902143419497343038950433405584869909631623486591694535651432632084390616591408029361945072951957214072245938618006258726009912815057649963837309981524893804572142230323424424245600022222362355560366614312365076315125090075034379548869870771491406272084712671717696369826701155797912500910749090102432715730032735842230802537371368757131321175338722206293992865636699077622590982385334236475356612677404530970294993955961412686458846680910399722373520019291074135509944968931755757886959615592984787090732096873901975240297068349924829653201910566562026781184329679691917831470168597656795729501153537192942149810857416163784709505949040331091423250273293211839171010098179156367885431718150422516160146870791550641896576971944553312482450647582228225104670415355594647582158037457302659834997351986535208037736174255284172942099875371311430985738902465820562426467579216014383244314913275554018940737417470580507154024118526074135073444342353221729660200225798886434120784663837465600438919964293204832241477328868597056009708332022195053182385678881115541831487590156335452931588586375032699835772243448106245992616185507579246994473062025256193457233571768159582202997339608163882163308826720449296415392773902971033389889504229926211622485711710712892089502391922595619568804532514409286501497103831607910078042845919487158208542971528132493545568507577598097192602137360122534405213711134495991152522476082778669575353620327729104267243058948471319848410402733709410504057125248105178001966430910734247692411045085357028130234123089595018111077084088998158459522757251329179177370599885675044381445864171604351777657104274231891400915108468237208309740337696787118446289613942195378128770416416126970425922194877183896523665964157593506679048620793645406827536938656194225119259687503172373800027710785082492036941672634861561521797307168489620139047241217436580790576987113020325442478988636770106614422585125094749977847018894071492160692576417563125702693887548436766620737994117702326977453419256154980219440962057260635450946876674292690027609742607952771850986808941469296246028342143529109143955805121729887064072863108366995881473461784305820303103577390263379859467515532643927165853452861656176766445422572383926346617914691884204909858995578987365378963862061296639934764335548179817590221882852140469104353790563487306104879999903250652481494596021123108458512210805785492153201350511712506985519400588082601840797251243915211488309306791638363810534846779266080936014391162124063835667728312502366419998672590029433041159119623599492620655945121848625554551363263649528408405089520234322881374872223641351368768523755708295087781632660644762795304830525683536257987241800189211747683190154123266896109642333997632070041728979472494278704163668033117502119337349954354590560981204362477313798006634446718913311741833493060972525746215630109883234977120764437131714168019381665977482164591029333786265082509380762925238004383718273105262448506117897109527604948619994591575203281754790625223557419035318558044975872950742212024086316404401463187017378529613192270165162611767936354593174182124299975577508138685561495996286948816740534571592385254452849585053100474312965340990698457323459532375940321258774127047439493014797410795305371486502198837790852195593455258784141205835363213893671521726468840004943986851515122785731828087302293468673538796161178049229789783816115029334848102518816137139284243598986646628879579356927735543867376621245866464028739426435945516298555682902875694293416284791388459581446250415829326062681657780381227017632050527702045641571124463394440771253078104212703997778740095426010217233483882574897126726194553457819669544536810908231122160050394496979287090371988938803359917440205026251354842259463477777561789889318245972042489590555094534653071180719504824586725567963884485536186605354559153685333004397315050233170114385432050842352919626463125441422990103506728783503714567048321105841328527187359714707495875788212515874204460173850100202530926804334851082476849086920591487333221849745891089730638960699641014245798319287037441448265391630969707464941362086967859168669503398606129116902060110391648826306206209146899049681406221154707204392747144582514697476877996246082374618520038706151232237507745570773372780945275500643789185377792099674156783083676947610005534985340254987556402585706451514562771044298072812665683704766223461873940999299281804701831829063200440627806030172325088367259046311227664774790941500714715359481768337074393674227223180951120306181152657275091193376737296693325576002560876571483801404691687450952824035086512901187202451564875040844893056444595430208962064749226123459319734837640066722218778853932596821486074293195866817322409697276749787124855141485950432124541589820678004977950073689825477405113327396866078099939532480997228233624009426586891270968035878612937575655119755824474717306174529388522381099328765235009182696994283161905569848416154640174707842428022879842793333795114752245127341995044094545569001419462173058221791329892627613171420766436560303468013639613653214743611054383403974352695730856667934197662562764003986722180130917890987143055976694201173425827126762592691283429156690583242506546750931728349589739216428403093419044603352062975221200956439665438001087853566459065463341611180405640627312868146870478405958663706251027708715313411743019045062619859687481009153225615353742054633647588793816552849244854568110248193800150111719907678557522104711625719106355416145095242050880723607015218075207515349491903267193028354245186511725846305503538131703136792691431223962707683491688937176629910175872853739967693532353248378541552528685265396118224298040307884175255510093756291640213254808796292298955378708582831283908275902216674265472376943694316550689379144870878049806999904233326282203667573550973857200473838313715356603498076077138297916820202186265894734814876739918900369269473032301600233309561100368444466449425062102125401984299582785605987176453668750200481884785219468792680926285626854744677405506722344393349417399304495946912132561187734265986704998679244512054234871306160272168855805398737931805246145761213550684337741764533642413269576441205762264641335541972009697526552469776839351355198554982800389089176014880458147546107404079848372896606794010965032406449534379558977557876998890300048880798395766733795398331176846525876806665340675204349885775813083242896144311002333507988098517083248430666339923303250082983027912753272555909918565687899746438417318336698293163738180120915895640265994877377038306434156836041521999603488331484859440488989653996924064032778129704948265469475337586274964362673526144216076749470939802261557263512991939917585679520201412518759251036453825438062288903888043651341948310728183140463700111245997105464625019487457736250512173613328563676307703506742030267825158628938080733519158303727056512223965068673724868260411822832806711404881163298458472345367858925668426300523336717495675461686785556694246152085253921579242986029651809642639496026129698201939727730720191696187958405460628915006273924033118331076892415003258163178187483620990484531291735049528627588848277165167929053839445666175429557019546364159107623241809619224919147373918802007516309557701276614155780378620210441851631659744483579411451329576628571725829753504899300858129815210000521777642392878633765711771730068981794725154694187065177748933760064542675764556485402884913494298455767024838384329460798237114316909345179586346952523777724222634418462335090340623659495875378681229167749764178724140786164389692785993744851509316183083264301199086932316431415993296331072830771488011311838146367310065357106781426747965587647449253003501585191900644574189199568233141016561715300150447905004027093991827632730561908974851892998148749613230465489878410599406341447464283170996074066829629457446234852086852546053054739571442525748691259813812590510160133869573073711459485925254135552076970008312911208250217411038873864829553335716246398872859152338040153821759594193763610777676986224109059643452072209780297699154067068425811497762970357035732715506383657453867839712125114244579695949363587795244006745372706035734721164201370850894771218085754169232412824329486518800597140983392093341143994427818965212754912082157293865550143602270002656977216921744158728782707693739002084101147196497082636684122928307886421413319559325458247554779999279607898757382203863628276909964454912382654764332759247551251237594796667187410645561908254158724642216184588058717103285846169940041642575276010411033883355846222325335774566596099334308770337940804241402423093698448856719121745227765827016624564877286254370062924438178578582856805907144106361725514318820049877540464675382357921695927574958714437461859566964897260235895805722565124263000535624989201838482725468380770254954057678341993038857599602835480172149827607066998183686807171521602899527306905938083819373724968101997305648099990877705750008750631064110037274337707430464483934091642610336911875258524783101825703269855364635977367849119911459675642190231099570059675942067354188808529801841799947614372837310555102392208706697779071156848461832017602623380774085157166389359305453051877551595744542579097021101647571047868532179374341682679455696335730962682752319926133539875476312661889488418263624281012372183818690549161886302532427278794478990007170941116177181024014684986895315598806216136874742192580017163897772999607394041467428026128660381490975095116776790259326122123770575776302793738214578184049727650552739878049577491989060186782497899305178250453615203553885132864157640838859337778072443472356268166081006694518947346087945252420001798920291240669321096435722384731083212497553358033505671341747814582105397829585553716057205031592260464204806916502285009685086977326639939747527747434477077528024719855526061002817885221759105207018003662319473397449227506203606855465600743392990376738294322269122019671053894537649327012380919540199013718358214463030099173868409575679432896422985643376101043728162295773320266877615231499628064259248787983333905561020206877117712056810541088295585146756138510083133305892622893903939560400879063312123383638759026130135076246908858228848819844487022310623740980123557469863440402327313442980618757594716328472757566033773605785180679736236008669780137648750553514963014472682361784447203760258729214188287106538604146989158781101973798150405749743404512409680459371077298535931381847311935215083284797632412882694732912251067831078794482629162975488046985658491821027160611838475104794709943972724860526102242983308669767560926683778042741271160959419078942348196489627747939954269665469538375760546633472283723695873722795028309164749485579062753542208824040634691588624832137255029171411147513094179375513158709598214148947292153559083822312854321706952095078025436326569399327419294668893617070540352190091241758419858656071568304682074876649946123639209291464206831949694304028905589156116238757973520713897828968423495719015634408827812344471109851865008695500665528300184110472476094104762160521900348726395198210152665130368689291010904790913902966004407807366438537258176764121953993946213304533593963649468058152455391829091239924306015814822345065689929788361850187096083074992649632287278389191923232698522144602075776640276377466109065593275682821479973205659450018635898471743196375041973654707418127239605912026735772561493448016925732774700793222758746391223239069945981924327157497248056216356461659807196110085243649307746158817125864080991139796360482512618771257499135878083544069890817887523294193349220050428748487023449520393826173670604162371164741429387590771715164879310659555689273497730369891312870657762951805787507568847975588420248412978766827300885530567926741927148812236607941534876498750049855735574418803688390307850191954958725937001127059687922023972393609404628023688776866556624221563832677573744857109751517421143387056991870977207308669968377460816146771963585581222446366366726572800420442233279248357521546865557592385083193787844966506879870802482174179774942673337963688290587218818855607526181250946175245713621240938997397640375670250054761054690503149773415844189922122779876509384801932455211946686326171725539818163876897483520550129066347779297675092981686637937679021726903802015951708099355461790583085098732086084484252022671486039804060469701672344825099122713009979803938455820039151162961177504004860181764920390937402301933730886531397609683202297937590445874791962789911731863857046370724703046537282547531908430721912821800927461098264216959159375869381870752957443128791575062163742149335969596328850003907145591112550531987889149958100393928837107381568450042255053807659202873001581307688957284337747649331054076200229250470056149512006519281074238346003831562697482219342629972669910196744706208830796824400411014587643502269455456761525755984225245171951498848621859365618349051646642013331625800903918062912961220627213177668048375717656367514764477268906107311663633617849778857813518965831850415532216019250699670423781218247748015918203608497094223661008700621474538823923898157456374885776837190931707639620079131726364138710384857696851610912848284779878398122502754995077837965286657188330945005256655695378667117632072852090328767861501548303108394065136723126570023775683948238548524310262209855781314082115093854143650699337391114903109016734113263935626482344566482981292899259222280265701975022297465049470283144657396015908706652535034069497986445121580111834608814288450445532933239218322799844338813907733771047935480990142197770814475044969139615166559900675638843930822619613665176702680611538403458445325706958990879460720059038826619162634574854033274372628924452303046425972328239065758235347206787599645086585435880683415362084003187902601796994965044617017832028506544415017832513473364792610247949895694742105932732691004262725479536291488501801511521750828098564252401138915446466227116832371157605644302136641500920051900676373982238168254194733617854008311966440293036305847744854306597345510654185928145907855225576027671176194470416537799413485986336990589715185219555951500094612950015274792147277691165105334160162198279693079278438776248479683372500246505128845512225310499373680292183642277377411645252393783915443622093186527530617184378288417756452228093345196443924183049741450253970657434781723018265597813750877088758935810361190622325757517922283312215032084205784245091382155637472085642339526355420975166122741965564251989349122766507901804718826563530426433256298520852855707293907762116503419030678130708074917995686070818748028290608389419974180880934122525340893324792345645336037068038918046344962708741621999160083257382060286887958991880270878737643994036074115321431674924184103389644602797669055841629006190817668327773289272006061223014899792445616643196432491914237309598627011673893500828842119720892255431819607488163171814377090916491521488638484033445284082604732467034497042758917455513124242871996031218305129547707364810961028174553796146224615069845667033199264970345489136989772346736742285038153612475543950957297112117076887037566927426526099282809537149297604107906385157637917946666376726713215953480790387659828382685861516881915755083807692259049598424246070603070305128893298952195134132535409858383238142340268154567243533677754773280878259920781796389521636576351295404983494890423676532206129802743310736463484115851979310839169771788688011092980109827694814702996718787439032844177394559782491737528581990541463782207972588892669851645632700037739382795277873451678327833976895711210677146592300890973890574050028625341871858769725868194066189954350111835223540290317918606639701594507455919848168725699362377536975992861998662817337533590763698740878126177152675307522615266276753796861549778591008461943724557000758149837996966346212464813202141064668809414862436688882842535425711709498121892941983290808014911148150964324996269182157482467625951837587959981449060545267228400687963534645920610267854173807434849070854369761956031870159566106936781360105385391050294953306166168677724682488010810358781027836345223999625254727588509057356037590195526531380338475357529985330307646456090231301816374406785322493439100109632677022637261673183439465017853313455080102636563977299327091143689562103889880924479957964876872130378067599569838787012097624481473236825260370825867288646107036511510322354271970354323200998507667613678916326471684437452096684361185547324554699415094876735435265179246561801038852091493788716193431110008314540480178746592373633423281813819725322883445410488168764800162319029720620373156109931099084164456260334814861883237878326277118284340918197373097639684079731138952016956237559496072335913012933636489694255775762318368974821050283309864899450273105033138351324864371772566471265539810077031568166970703131156711257762950288685606113128174690609121241198407755456625910679424790101906521885764539894656544064673545746687456501145409238520688273744498465638178241901975680455343008758485571599901350727080280147306911637708174025257298578858062332981697675265099992995023956930241343467831315531999426128043520422341654735835046947753674223333981885645285797878419588431994358217072645329727223775677290477596980021336750940079073233337746128845473259616452389813049247302387298287386378744921360137003768401513894177021177980637250191660339921238497669396724669856472023686597631746183221796444802850630674207500550580576963501800623654555840042308340504945069264561381613333854392967393803092089771594450949143748913653219651344744403064927830835331057393377901682194097195683162644725472858074407136038566629580440276684752013202506673534650748980975952973147385459725033780821916949440818906998615239831852361935561484433790654466617821554472225777520629393102876706599863762686048397109265666238174171332989463908786537939267453256489600997421687089908422136486739067342696044288323929021632525078626071656520609982515979032135673207460078939809044718711833361543159271184780076765669774973053814456615725719241216406681228245032880163657028144698189117093755951959271281750514321820754160792671777344898099734013299937090403014503097092665792883552374814121535975725029142589837949430663445511558476102181703529014740641121682845702424816173143247335058440218586889121899355726767249989900322840808845288842460730386325930680803298284279596725872510867074402999913506911845129046401099394535417487978435237738420763076382788691388511771732724082378942362836369008473381767703837032170914206287232733485822167586176010953406394736739965676976143503192228490500927880242233518368323573236702038450900176047425117402152548393926723193550433914282620521846789806627839152829177757412766666008059693334522828931206569609977511282791824682639457409043442889448146022424395224995325866252517469064467575243370559717664850511279183504400693111058995044233215402809033040506141945469985854685552322192266597622715181816510876630554838743561788506968503183403180208016916045682387566445880667819720776353430836561250192796950998105804274879565547075640292375752346014302528602227150000072322242773895887666781183770556752041471553189018683151066542449017060284622589541105990511275520708837359311928992084764706709732971552422445762245864149185064285673785666184063333428472964610282874549802364831328348069598647534624976536604946322218060073365580576172919213698893274598388500774459664677348326252844946985627839988176798709624635720537531482113203822275615926802428283396704561514993121360916511429935788943711722660951984421164534698994605004694369602716503704520236668449010627432231638851762109533673173725625023196747841360381046990643469882828203305232578232064872367495738131602659628955690338583795204636731720777024845456063819409425897015565846010631948816576436428104974194073864950029716043061395176254938460357384666192832300008105283924251235729215318288374006772245323802199096398626710162810224733885147679900307856623527154012060657433285262336778991258862807743252977736279197427956045618112641830172689813277253469214847285380084637132339233410852047336509278800328599225324509623917011101419346558786183325424657969507412207997614156681048099315436301630060738422796761196507224475355025260766855495352888743777044766897831802192695285225424711266684784255351051209023641529858570393337238647272841054071863411312921387238508866466163095953123133595038055171102489233613602670772523256578447446606010710883629435915463607223349986568555425761786841685151959807189785641661323354578655676136072180340096977779016717087717646343709051720677514917391517842482889719270681427270188949072884618873545152287492143292707312954787706222910750766656746790231853489336954185546281467317706169284779957119184160363780650439825503348887270660279823293714173490125142131911165763738047638577258318854550547997611213430908212228681206642865870293669446239461303398783098330318768142956972665689325355127769006475663318028336490254689251843069180284807666831651212364075763346374520149376124517815939400533733767359144909356076805108789939201848638936254814121753276149793469614633465714242010710251162910476055187533828890396685352627250597973381407373202148529397219535735827725433752430913385668031290104223366912223234468315734690674356417773001103674244542307251511660757989313551952099339561559032262126276135265216121810763330287567567323356777930663723133789151703226758105106298208094902507476763891461108580133495665018134384602985099276755155374557114385084704968577571563280553528385677590818850698347592694729085337459673306411040631393770973970938428018261922480626443756307766919560898938799482269760693743654513306814172256182062648578882441275426975140728296027090620335611230214137347310888106645157102131071932359484306271557819646102714841608142695273579853226739203459855598325791708478488935666516068503838313340142499630579716902732353256914217990908306518306893791619631081822079050441234758868609668611557091221939299268686842755830808546936665675191763774706277597452005437984758421253815508429250798161933020786688125382174882639521596426551060266524744853246638857153395945782583121909391238455891486800935845965928296716100376733490858461743232254379424531411790322734547226576522553898729471825409127148656600628058119133728728797831704334587343788785158255610889380619315579193921571619416975520948087046002216874309883962409047399703519698799789959155720889192098220754580297782056646053955098537724900292199516886537044378292624044589370916259502622858944097514337455296828599948189443458504970670337851553078533642287668651336100398150941483954381824839300522836593301627247108879638548593143940764856831292794156251412753932126509750165407756480731571248597031902681490698533729994781797886306986861029219142161345721578397856250503630921404922760190232670833835276754886803518223606369430748255708888323603559418934944864080274488101810454919243838846559857802614485273115729502594459059680882681928614367187061517707348561623950909451543016602836615856176478930522776376758573432881782716982046784259570197696543231105147570670635863804355776618504619455453477960644705833241438061992961602904402559541213873571949803074661963646572784114370299195899203568979880813669003181887258399610761762385418130441947945606645296611739571167791492200232394966670453197448103087066962366254676572514050956787470907527188087764242355518481119120683481140144216036215118454776352591792285955134059397070386759035610637274715028448986464885644843049397273895823497106823118454897440059516356821457244914405680445550293306769177090586461044588156410034175638270860064688259072291891769418795273078356940677454599719108479496293937440889724388954453503508359986419463380154557447730866344848779790534655195948845272122276152600282256558905658753582202178366747291690052989093436551203333960942564248319981855861230364289354454771940377756099336823796371178822914940383484422413539689131444661124762428042197083146335973538913178658406345716427262751922979312417632691280790270511654943891713104567761060520137026044870134888729769974279310209333740547496467155732085113773244320564280044684282276521134872456591373959565340788863516861780344565747472905371308558118173801426329064623307277296788915122884624840428871743304792793716128871751996270598154169458237764687754212869990547978880432571466950323566629922082694735255216199374720677152963201201747512957107410537490992339531920883780588432303785681467829055081736292351248660160841519999059506401368636998539223926662949687897813413104641744513895106862492376622497247978093081068339589814571820867209589366607307017343506246278540267150131610758648971865252521113468834494229533318681838475793268273692468479484646661726978810150744315780121037261676969204099403433477007542258378934192176933883373025992804858829323669904887749796098202716961958141529094079983164836625349921573208106528921402227194255525711612358621050162755091600907442275004190373633730779438610609352434658734728997062873917414125658870659501316873993997752959411906149204375453283563016833175020463304276471411901700863757935433495642100674611998936176566118136298574560125851008863327789466811148080980945475525078782621388799671710906119125757452199414154255323021463435571129582437430397944221442762279616484552280277471416615950084573627246411559754368376432590958666660038961811980300365156144997835423719290166889065978040589098009441917291763802836977613986333257103614894343630930234749879623665867556485790815824154620365861476813160419990063053782875188595577736030040516501244333550300436578942712932146343791880902060122896048252542740922018994775714667390958264716887924779206152036542723050279668269360648479841349812759439725947010817484829860282467512743852598454747402676206100783175212401650144569116317644422695038842549923786694777940986269642313876728685999379994874666418019783435609032745972262836349263024829518909376744766454387697982324345583970739873041351606012697565239070684611188610506639337051354919850250704708065609033513520325378330885483934826888758856935007856228374986497845678887689083038400047701553194568680992439158094572822352365167601070507171752912524643749597805052646919250541015102935647993866245915642948935375504621424997638256622141410068917236778205375872100004524268244189140290920892724259715802087413117546978954968467033377064213610770366673375606636058377012490117869882413373426703065147808086290834979181546959115729009388046500387370308258787306290488282481098169080449070405200972911921455139559542831698861486355951277847089224629926016758752821633832957777806480077822267354813422920212536004456305000748324347324816083057524094798797315105331213674125723033825139237770703881557434565407472532626150277234169720533092893719363316236827496609129415462510478416703429725069934303155323366036319445193499297269902345855569163785822854452346880637305680378391948149521480333485455340473387310539189445811148969906963827416295201028000227936858019598962452511716696984177375846847434008932736313479154479675732866267148458400453731997226960332266363862448683145075717797762211953209378641934009072030894409232292914381463633204373793072632663229899499138127485172506195158771639850680159574660574850985648751641400393970210302014953588105911298977844990371758366123327965362691982020357874092652837821766602213254121210345361935864578971891217789108125989657490381769396404814593138887663986451129445031270811085247902217821784925219028905776951216041258894999831404311717847248489989944572555156900926409478888070898266144185622640185125598662451241329104170901339532275817200150537740328421014155404206379692452970052480695631866750296430237420221230515681410407191307142167075314361966203030665926495847890017349997733509747418371528994508635010904945437662654439871172130857255047568486767390701082710559374865345229468286316487306137876882541007098506278296461601851967644577139082327832456925060562210316379238022726812732983536344311530639662527728557225404226740639525615215103649620383077438120695048234944169603649308161315346301747327040664509796205441018917146451857293391339861082953452640248371755161323014900346759820237417965591433155547884671795315581011029916604799306758451046109900399497154051331751096685673000444500399809369607658171991905908287798054276706106182524246431939252877956540745588114107724084173310641648821999949863750044316160751701986543610844934817346941946497927430315228160477739211677012327493988125829499604325307347427047613771711002310347254127448482351678284212032513239737747630641934433007167552129338473120075779225398598143556071360905746365057326446169031171312133100748232876012851713948294401233661359237849961648440181198742467549344696714591736365686913939515700925328725433142763381741868463192014356629330813080831677720933019396728941700079754203601771492363139304291502432515456725843456270077354471841628658732501348253494156982012581821514324823812138018449130372857685839579573704534109046326720237083593832427025559354979512321257802407427603068602981457594103784313731623953630685888228287481388339571197249596838524541117667081641030245481842683284518961397164537291251557867331903392534962521044992712679173393770161598406210507001335837080180382278981265670809751899973207409894696178101008027180844675408975436328515216046948689573046330175103601201397083575404613193419376097460187467724826091312426326480817129582270992052063511857771906679880464908667203801979144123817449884060277407688585004021197556770022436608285555175028123688081398786747006513083594831927641158282567310895617429777118559935865881869582701492881064922834076810763857401926597147581558824089799530048577793031074813204370133699761158463642469129838998155821909523022703896353809830863623401211178537631678189630943111765400036195891279181655068641672386185458807714417085131955313168985622894746730850556513952098418608670182851487506655678071672262820745066204987492277228387550601366021077623094317556997531718474775550315053281087870566174319916262199246184899890637065525295819416037572352275350209647366682764449662133203987732997354072888713401233028218637974458395853575000945149038224330755499835048382399017315999037384924806609284749885141555734791332610541614262682651854659054192812866248462645460956646199600796702899945968464505148674849787547818424059406664592859245299194206094456089938477164318061699092236723185725316689570094876975997050905978228803198261545125657238354788443238951471263770005279479802992301635802240951822219988796562076226283603745635932310324292276930788291443654049383597073636165611032115637984226418178999649228215633389878087107746556580560404704877100003977515414247665256025176476257039571497081660893220503672455494613339049324222017902002285432065074345969250935566519770712085113740907961972282858917584077851599725450757371094967519299099851956648769318126545518367428077598987073504957877768081325670427485253883690165577018238985091093824097019571192675181734144681604764587900243546748006590133704951207338130298223569344055503819804983768244771488771140110062905489049000128798287976720937216919474397492678510637721023094512023306176979200519021785631850349750923606021402868324698834313231834017223655128485565006730928558165664816905177224173086487681464464199697045252773136111627514783560760065467857601610319657325074873202485844794784848730849031785904366000489037137686439781944028506536197840948697843797769547719525715454294530432022554706511336542605857671614116751368317870107603102059407574051403215630546153973892899128634660722431349484392360688898394414744665826358938376293831017413287502603616830105516889605420585794107671359773275589620760790047745489160980872083972894688767173076015582511103370687241693051837851956207062032623225775560221220179986127228652275177279169528306638103610500502343832231181516614838012524595116705983443637319859675841949565434177437204093324268189036665491362733318403530545575279359409398677582808883349562782112668393587471832855166869285723461295904930720490142363871166842831305870735236350827233274642338075366240263533507577306229073184097707296367714984948662976424284313594680130659152452428069066082637627459171466050042891906759243992364000710926611276793497618636019049268857654389563125491680810658379080881014782890216264799514355218197397851619526365381371013460734047881747781420061693999149228580340229610251110605516454972766063827701026427595235409268650818011906258918111942577733129522687454801584430932741042075808077360404644958152795924416075982713997351554088523062019073593769908099032760748206088338411895533188598155980922543856883844955953769354319676997652034030308947716844764407665629126366713070233210578068962192391984568580950287087295790132308118332518437062869570423539553689832235332356002495755181128591461713900362826584808979152035914646949445067319698069741723908535680695380197717351369245699960240289990910564688154908782734469708207566340552220984142565535216164033650237850635978474391474734844234946647066370137323625586620715049503993977915197967356274546830739743510822719160641790884074880973247112188125106453850956879838588363870484692057670088219672846475583932023477129704550420265083141635897117635671619500841804112054929788945960906141476185136410094303792288615530243922683683822382218178442081200100606041177031081826321618612556990641699015767517916311084716844891997946928559169346806156287903092366578632016646809715730440756048550320209689882310124926292689155862097825323057614625585285887743917317136422319413485587431427395714104840822282003185574803414948282413857512848756687298111031499934058170573155135513260938955726202640555366018848704975625438582014440243361496463458206570897020171174347389619447075007157423831910530124672984375053469637133868943663200134301671462235680258159332408936274823418783366750531274230082770040446298395333337642196204469543337479649718780622393212560568743126660239229049636063564168019431487697496689850273293612071035778255301472518739951115845546256836642749578828955177692717064738351773609677207206713225037957712326387445215318177171634016968280804367580091160649354150015860979887253228738486162635415032196542385530184756273040199143524979651808016646520135411036598393510167136240372226510170581812603427878273763869477555646541080470633164764564976051252652757713553230597494493707941679864435607901754308288401920364791521715075455482750684399568374664234913257183672023894523260937900930104915945750696987376751138586960529378718248417201232516495605613726867414167262658900087781022575523524512265046651924148818329653549928854938282245562142531500926926668529297743811383414173151411298578699909704320396678600830485508612874802269461783842471960365846807272321354612747163402850443085897918922595966552900410352099497945931336359296528984302113030797863131575352773882448124293152302197933747122464274647688158429328039644042721456156478207090581245892387715614906027891715095340358401697436357209029674480711952647226860592485650035432540351116259569096232299169982945141772913280145342569486225520892116083472027973594594707000802098132800209122417702635126967879329752689324817492674007672434214092096057365809359561524023967014006875912887762984507255126173999349622949207588488082785094350860976187782403171636091399723698473855510977462516797821511199954870992698436249608353890491964874298800965637001068216477674934781317931202170584535797027274188038971128146169225115902469423011463058300646443664762077216084741515462340083976836704088748644698182638131512813689299652758152632771952568876632082153277504996609429654182074211193635917007938432125608779940353753592303210615773915774152632419760447983227631043996296673495344422483926860556516368479935874781370091861646019362175356115601130154411242304680355227359743741867216393030050854316126201915594563161462831891423978907336516860105570653028252097292134801675802329148554372647450847917723218168130325446201388118823866149345572585120729243220546739265347930150665149887072917042946977299345426415122351625648050274104318798502448300456982840199406636065046192540619604594786571068415322779379727342318714899130191280419901175099778239698357838950575217153156960456352080287697072663472864762270290210992788426114171414766149470404224854590875044335366499138668802338962959088257179926972024750581511027282560655426619025980454066661357252234484984269467543192312321684879579702539475785099978267278389102390919129940271756474171724690821085916759228880507409285882600005333713658497149431873150446716507740509015279083992891658608997363506264242583302703102178773777151479252948933634065662083131528774313847151897925294923928318069893360362279396355774244378128336650002411994100973425328382591992549626275522039801126312931546218573883044796824298907950883979175136689623255640783295634263477611312878029044457429007623167441510616575229232812907036837491471434961542959764269342190271749578142336247760701593068227486477202459865967385179556263825786747943646725245048091225089798487416953787278216282020777538384204283898861673495251707353671251539041414613094199135281359820862019297417194377216083542182583065746194077639256122785825350037980942933847178790503282139333174455785518646105034053742497751728296984082445476936061857386892050928405846003490800917651523132046954449203055374790038822101684407739021280595068844678633195818827871930152567968913518823569482746616548965288652398202873962071356214934414848070438900641714266889428671872353868166817351715178291563683128196127378429251562048894626781840233153314444427507613759582958241506316567447814546731523658167493634826207016256847506265542544159040957307101242207250450331908852195909693384113676895401300362527301670149954693182589898227731827433840189160604257486579773536989891717341944839561088912084404650627382979695779696441304189342535934973116746955954337815465687710040688812366268810450646418662069589855028550227154784191151780177343094340501104105962638220923255014911681854113783458178365980151477669491393601426386253463673173296208027873753687073948782328110584320341035115251135805071557158170241198119855345930793782473364322488707569051620687428187445990087382849158542108937741470160506517517060996090600537520271741533597194411229497791601753348848979083562561904821742432600042810498740194130725141555025878651919142915940254589490181799783771338271349637505341276828047049815541704857342077039305636267907987449849795044398258397242848908634849012624150596885070326795954290247550412440616150998639555311400145820340379834585215349485371721001119133695591848975326107125092141902768512321861628367018919495364024503372325913043781372033053394821453952120234037224477499682855234674972038565586402262552739170406434417399074572050480736640565589044632710926934417109259908651782267833946864442064716576773058412147693241413723839140188951728825180419985417174995249032822806444497010912421026272011640638231130460242773247044974626626289353156470004359000970023757149467758386238591548989896658253872874900150654046748242444831147102336480918662500044606552072215951556810132912097295905612389376121226923713846901398635191684969334635826098682335555758847556287570980450282494281499366650185654979371890485403096152805792558743863533168364960253906337087323703503797047442477646217450909817943972487515296455362068880354099938546869797896900048987220058372450730730523807842392213427023661106882067817474769035808549338848100272686004172191333400922814497818843951842693870478978491337155074807921836878304744874077841557444620445611292598770908376378766453325355878010748806656299513684450200383054660389715906500920000366690445061978877913310505011594488728597417436839043678368448644163915569921187235034518558550466505421316600425008248010875005929866791554971790305511854664796196521948102574399111091517425088184940044259143609351093646741683041112052401654736568023709754317652590711761452534881870542259280139940219901091499333285007030394487974619481495242188834204582200574942029821769340863180371541870767735469798676504941704510301692755165759808654197795234055809632363797809263589863045425429502667832350101716689312984075325020237031968403977828389245585478494353866490861062157866824535820324057362812968041983564177313035959139784569483351351478569902008068897585302279953311421029852156729408968786317443870463429144450550510075551421113956094383177034765727891597016254369583169465873722734495600117237682316769863819887609310261621666117284706583814666965044216207602313214831495936395057049016648425559364331914706775513909153385060441216444191887486544599305896220015863558183249995558374245564104845021242883258464256554414961286077038562573119010199987582245696504524401380643516131601947986659685215682208418259729940634734870804602049996159798466442358674515409517889785945493601117186394161034449629476874508987053320017744766897407125126672118651340121199252254103510504646954101703881139859976566603988510736979486070556909908280580795624372985582990566233461105028075145103522781372176941296018599941911873830352011060866218828196080618900379925909397902406506870939161549489616336075931926008599456710742379009577002717704512184867291561198584602908974211562353681137927584258281088314430593855933923019788005807906740493538562508691557897855838951398217956038778085264227940766805547210529911745948348512638562592928865814405245546237495470274778301984218069241309675896815337440915836214463341324730728389237860180699427800154403790100086752182762937856955573460181263596302532888765888119730749376852439668421988646393533099415584386380177242812462261671719379513882898607964261216239623040408642055146730272780906514781683510842137159630535590284417565091387331779454085735196398819171390893564668770226420169178132319560794786597354220872672732318567739073560472274053881795765450372126896009465837497018320596113185592097271916981091758745182895131798053050361180151376379852997043726069377442460752722419682483500527325806520979893520431323163974386299438422580489005771897581477622160204469350385188556211675501469558728842268365410073767755725058912978435259738831732842204385173015673931345094898440799026828967833096847854913420440357764304410771456141633472900201447857468748940620018718058680546439382001523734339485295605793709775530099627860910659857745539801298786102702359322338695690666206146140501101116647007668090968215845922393429527721521516173859527662651314760709156029475037169738166151337153041948303808888093797208943816546953743544353791825722912716169501287368334715188125413609806137116711547004339969660943328988935265371151484991040472352372266800949215160421798103454626825581386369004419181702424668574794690276944326280602818693803682186489088385266876013230141758244501011136781943783362621323729675602217617022636862770921600239768405915091715491094454638740750138057133609297502532169220894049140530101129458761084506097937882658536069799986880205356313603356650051124556019568383657794708726317529567219485485870908068028670410852608627559349075331201722888253116080972962800716470967781712781829937122591332361204032540113022056779279065997988244508900372490057117815042285507033153211980056354381930388994725114975458575376674642362158278858718022627333645618997001016278145401062495324355537803423539893128666220343232145916599901177980084257860752413615910790481763082745376015197315975743498731041028297407675246892510159929975189019278216370059606652078800929926844625164851760307262790695870294381729259983077759017971050813291916177994100291810128752311506586641453255443725155084838377044207334595775425291572513803588831403669904457191050275948610483710158886674300207645099956164995095756235229400008555186574538398983517178042122237524137696696003814572948241252299159476986764205121635274666949562331324224003716627778743977521296984947743235978453035117911198318695557652658076945624101730166415130994410299159643550129660257123560897062530471914863442407885825322410158872081487984875928627779905978747618159689438175772194725735798810507943983899701515973668274755391412561820259480089946745151293989220817008073073590439617763260531084709836828062283962209880373165519770836095389002155889181134251195491924290332717898734277667788518311748771840498428367475678969710606633166524115178455726212477468189909874776982380348463404827577923958234644574944068819293156392496701509517271815229930174845432500878154522811891095224984302652336321193338033052607834185601394240497734643270928650396381539754208656268716505501442964435920731668459478024780963268146939641738952876233132423515062693657426601121507632797239015544598604151891853442268868183279168878351331320808415055233031495211113700791714724601054337202958681611123728771656700531763885670303349229079860495745917883585456826738986446258132848318583649300768714326795343463458927183589172372716418174398682132137323046339583496371834094372880629530987525304077165289485285310138069272398133137924524655855098301614028595057716255909611447743139589833735691878180420046616606569454924168964254625111645611029654821518357132176746745342284274514717293877761232742901433058534535005328818646844586401854518836552902386218567172432032149723634856492480430146538696718603320948941651323689179072532727785768417130862447724421277792364632809935433311015860513163420710280669484047747714137891702290140811446716701248492727881516985714119251656347138264800481803012357320704215183405920946390554395516338124404947522759566905339120085880379936503330182382675259256542597246286974114632612084634511641757078063195218250271474852384962368124732885122197434098237898790907383034414546137764618494433362607887725532925118819529669721490369265218777317980319552131314378001645865519099179495793175908994671285399085697255415434127659440025261599535283207117411745603617983736104218486389362425343350135908914768815108534469605141192691826346077751298358494868462824028080366926672743190468499119788729385463219007563567258169976802747933223161858908623604690530283811744244321717937922049237082825511717399371579918109563870839363566150622421353149512634829699399516506606403823703087332237068350621945647638476905486772599694007832897897640440338341262006738249839081243310192680538481791370385525268857031974125096297007643179636816119320686679434928454154266186908690183454254519313538353627245945243103649107429813219081763046142628998948322039448470552877920109783721033426772436284342721720016326489198295809590095109530201427106673976142257326567793768958044413893442581407949910609998166322102511949340809481272778305081536519089054316288150669547393904347438656748002929786257578024225785308625492308104141423915301015775221697022725494273200789928313412341221305896653412770487395035691942984018544089171072856990776281820096477562593496327560964008626020945336630689260582328283959427545319661720790401202442019405303183411853227233103102099965807022526321904446677445146963259304967217976775189836270624486769458651887971621102034545570019153266798416956416847459651317649889822677648647225200013765135251003183886848708819509110456069100549795977768155931096390824868144249962852384874837810340897136351525850066259376104083902391136237795312158060069276298654523943624527054593883021173604808971773937551237522931711653197955969709821754383659095488325719728610961644219770736981713359156413676999467251058274480626571548501409367771296328063599583765036660080855406093557601518645724534480742090194381451858715046165176038060361240303276525084844215155684396679247468617817517560164159453420129384663618729979213031167609942730551054935871894537747182914962091650911853776065302710029491331834645234023638828084402954851154809437761508490662115355529622489254357677481030990914241680544461985777569308810730716335419096776116041319748558269294225551221410356599405964187409869281284860893847659192121815083138102290713879115933920419714627533679282195278272966087872074193537101640160785540651461025648002794989794278668724289612360466581643680404152794013868474875050572619647037196295854425434538813059051073555741175915232873566606150696496143878374553077026595656333112523017638846748534181773960407817786409843230970780932547393732835323880427140236097054124958548577359483541134196914938724257834031761243138148816143508896380880662477335091256737412099703900822606972907550294850463641532809412959728152114204849679386531348257664248069684291142060268079070432084769142342447403565512829888085270225927304081377083529755405731541901490022540629102742668079163315867884291315980444269574129601012136672074612047069421434958489342950523217879619270981190236527963807320608505453894260523667509355634909426061548446030837234888974357682064071149828458821279042662139355899892737728996034865492486240836845444085026062015449939606650309008038874316290344190071365927286892041985480933207825048053402734192003984478792698203286692566936822290316634597820010440035568217746023627623726629654110848940270627419924483184959091523724816078245728946711507374539650931948050539708251938143443403225402119877291924441703972346232373631875727885338497706256755890197260227608844304776158806332945141240559929897271405556954239344726797568983777601935137288975174564486698232990198955793067774379774140530236606588259355973576159855165841203790451773537667949490251160521079760102500609007383951733327808770745513734379041264136421018181479933708552490409248511827614466993328896750999392970517852134964777180063409859393904815423168941637165546115215202100429444840943787159771322701866854277764882964591605743690295333710709680308768155990099643388241992794557570955142279087332652983198294363343847288706818127434260736636452351773486779261578417292682914506497394287598444806444243611586892761082128315836706712608267786297394697712189148534520924974069839153244775811132510494595848185803618400376487799913819764234888885717584313262574496317140102244547351213430076303214095816721178030103005597591039016057918591831356205117064034602023058068229558264659899192009630009624752098364074446699286230008500790754944435111210641966174745617057992725790993764012448214847355421907905262507041965715247353322897963488414944948978118468210376577491141744110594109170762644609359995347282403938145492406838396514078475294899770533181992887395648925325248734564418637538816891810974940710971064784290949927469059529604514008266539295818116074056250060079045953063548664507185005435914507640347533738765891565465743518708052166524300954070171186930989653914532495956137624886374837730257512956400603210486286305150712198143292410337815209861837621772035073937301521512084994143902738407423491916885307728142639004037797063738167420557628724469334453154498775853079936873719423239646897271095712791579849995882456917288679696831764568158493548394033642221558743553225296773248371510612437453075918861708842942437451997638876449625519953365725672951398815886812337707498885741141111504760578669218648558677152658754997149186420221455060111708035742653047929010513875448503317853731203886180278304447953099442363389303339666096645184595863860252977322189268158297250418062164446322036033099337712282536043075838233819603584101564166073647640808318786704768183006662023833428715433367604926618811156068948782277967951829142395995110851320135420091982146218342831971094759021071826407074877345626181159658099428698490129904900912793391716182022192645782549539136099273689556288812459222547755502229482878862034632912339160358514392451212585373232082136471219934249795872025459414183093615714869999077349392321389426863601460368270507014470566553021522102699143460063941939857956381058192514084882660645041227549161151325612096349263656637585849385781740706868617536704155270774863680480241649746132196842440389434038154354342749147366154572063735042500945785090573333953815233249375067833646958179186936453424576489939368081488923544836790985557396695701406210694373020847962130216110360261701577177564274424524784167433367579208674070318314160024258658247262503560808979708053851566769512451479386494553350749127607863404417935322051289050290106667629839947704005020016075426066809572735668003377989813831835586400357285490794346645026670672521070500826452147263758885093729106505056771833609049321078391819339458419825513627977499674568206841428206560444850414864475404103757028402754701408948020088974553323291731951468780068070617389084846832521144059975269360051905906165020667224717887389798923998284771818099529012913829554246838187891433698641872934846376980321116434314546598113207289209898055064892050352178893998871193290898885241543912234069529118459025499813467236440846505742573848816640170527675899390587484818515114767364500827707547192744292742629897711412838892922360237751548975374382642653115872021905566606518511606892825237462042355814773220401054026997037255144692534815165797818157928791166979034480899262372179073660123390734568113687269785949702831779387192470290632334426171349767181934759614137721017326906132956438801366062177850957640246560735756066267925516817861526121250130830170944695116108726381071007910277088919403721861469203841036474720986866341848151907037496549670080613262086384881531740146590607359037915074231073954112297920003039570098855604232302600799099916576104368100049860771075121423879588451551546470335143343792567773786190365448702206860941136538517784232919549097836391532199944465201271340364334949911308557774942702505958917562733302576971645682247211997732139167310510430622904092662202482796352269519571681971364043457559884507563999700764497242667267135878828323118941322056028031899334040093924799490457242882976426509233654737488127339195487683185558177489099615576479970966856128548805158964146700895905044984032145075736481546454783899413663770046335767005231189912484956260039985059397474836870951596573123719229021458942801560898396481658877348350853845725763620030756386718423673283673884729744006019980649511598424317836316068360782615214248205513695305957608061193348490022279916078042822705867454437975619282074539405322049600739362253991496514714220592468930077686317628655432207807810836626984274846958962268977307734521042591644497278776886781209114155058156469393557749724583457947175122337645926423246341446166486335537512462728704558251850548375774832741790296876191844696162413452828015239496126333684243138032490979106918853798877353365376201393774758995817423570981860017827100210749995779629178285573432854611839446222070025107710074554572242995360012939962745465010210085148175764032398926779205571918974515163729369297478811091808315144436197595573752871795434876493344632393167912073386054250380877302423438649368284049392615280604176885530632647275365452749612545860711364391764983073924401287866951870601526033978547020377145550401892461937537201117776035231345767375344681769543155407519221182797488396336837681805404632354365740502185422954955812941825127728434204991022826434426413596192639736770940788251608562042546845634011755307140482056328367508824027093765246980248817752451572868123757167718667674490794638090936569984459520159481722792318221848162883308390210525138190047636288245217876408337040794175766819053741096810798852047716120568153710712404352749362097405320230341389139899916554220477068845152380690895772232509865169813212854437740482084148247728394734386392720136863336879281796483932907717826776430050190571555447101684067679516098702133723116961112902671386952134043517631971391142156593381747127553264882683590117517272971058039652421292887260352233710740644222927836820613082015706359383006465655539414063827394673747719791982565035535481733186474460516903908614121944230130519689996864396987173017542751421145929709652790660128591511773301149854024579450309777231510853703002320224923046162682025951124331098836307174803478623418929918203870880158189748379243112483428481979354873879205887508342083466618956282347386316312932595423394216893059133915708026209421893562496112372234664257931607903550281452756622084978157286350038306122563472103005800254039924725390280906545727716313610708077836886817427707908286222490326102121831758666851213809825967961151672357978531688482667029159901152393611384464022057016462203543966503419860468422958127656616032803806554622335603542390053210031580827973774647669572898950023095813392825418010858899215659925233997115125353144728946449990961228199113890047310498775556392725470646696172299530151484813924447766810241595276087252543170892754257139039624930550453969867540530072174134122431441267813384779905231900678947518435783064356004430190184532605416854943738955274890972042546704859631795506978547004696661497856533733223562324419379391151507093676129191794481664842404572644708615635598121863639042284179438289401001749397861885583063737752262292172821063833052731150293377055394695290176557140983953206239159157570507045416328758803075864376618284752854748841485417716903177901573462186816748585476383053370915770343999786069245827637448900206013818474312648593854107057117289086273673420220062631470475105396629886822880190961025725823353727224205807509238147106813911065471915921749586131173727427683691077052358611544264995073789561339645461486930156847670939224409926666435644046702210536812428665660960902257137975355429566115139306905950195486614097955449023627646024052308730266419082115540227692418688168678241129042377737207472728206069278307956799754448900641173441192472427412513175570153206524122719970336958033124850729436062491179016113384534175276670416599974531630390555967150387119241790391385855805288595043154253489400004436125786967580992369083663627711857732191823398843678303809433219701621033345898076859359729166832449755149875135227094264872332546137764797739471633434827083234861265694493555643581045751808767559470976874794383827441725881173460394079414086438627336604027415775546427342351807125749375962583038078637716437233041298867467780689827206413967429272796093896357222733443583074391142822404334165332145601124702088957026614466823435413859843649248226798170024777119336683457439177363979593181866141240170747842399606325468640065119840814260907735991786948080446741701893001541681050833257151094749133509348182222161242609445002001856153135879333269555703123366842503443213175011261700330724324170705055395190074960565802738545582530298182338434081431979892457228958786557992798728321357683060535976937458344399904480931840657118013454674404093887729298432745604376530173450323581991005317902743814180325345300666200244971955135449964437326793816874706002833300789824372192091390859822241146693983584382379809870661915373486905999189505604710700523489234095404122413023241119184350113298979845695219130181807968288038704138792813239135123492564701264041354654481809319732842952265681185284188090022793512822573365375144863889348104330976329780409401688248539830193611443666946612587551299626933435232849587719263702940301523128338735736455922950666923121784870144459601506605284345221077847306588178161009376746048337105645900113878007486303715599644347579915264750036311198791278759931772816267863901377189456831619957039602101637428950128718936641838353488484838739998689819735190555716400689722212964226355913293702901634310320271999086578881533479687809179423331289861068827973128034253227000942378565823861769106532193694984517567543677508016090970336652157788549723984346865012350734533754805311429793354271890091634372064673479459544736835918137089263881353272787925607481274833081266225012335707761206905342041951713239980014880863641599384693912693605510423659109619704071268228578569784041547219704575658109403288839167544281753089403188527236451003563106536475157703066394560767705448240621304459276895335169149469400481964384663300995497586900836118640585854445224096971368085894030055119735971497908289391120928115425885223427047000324691143953460710679665972712238791109885933919019974895577870561219619997817038600193470614542010611904110264050755485385059574814954605800474135881878421491225465513187631551926215922907046771418010125410940179581515685223906512141371235367303456384540636297221664230024665466305891806862802500269125083518958189650878386650941169450823869119859828318477787416762403547999428542631901827630048673152743952721668525691787392105536771836588105520709530577697435827775779869805710826896749630132831022573212032323329088599773700854872227457696857318240684758113615843680587599096883228100884870649747255259051646398995255785705639804256674220746098135335925384178415303883465014174786656637848592429495811403988257384220922179883418878617457378889896259266614550333572871924994681392204670282386243849342623660877464016662687936445641950766053057871661683506131548315626787730775741309140985670001153930483973567423033514385170009729568568827263073404051451349261600676265526696513452902881041796338303517423874307988358383435206882072449094086185061943861663978680211187610606716423660626829020101352946227116983374894226952983825638045977323264887920635626258883515263931068717034372281586113987180642649089263068918939261507229736346138941580657458480311515965745682930077906538910851764640340560083918067451160055142572768469508721978383429223859346097651101669854378094389617230417115206411185052364395678931550375348032086301707834284537897650755440952196363503848542129462623288819768123501734469770599677138013828532588857687008966906124923389899992704040749799532376565168655281308690425136784186682416014082229401520604312595331562644185148601972097225687162640869989672341056648700906875297135337423470174361254806715453378279777917510518202769063938676561949345818048768935456231027174905514514047316439349029196397095871536601220992853604218801909202850492214723227539685073565320022457204234094582371781777446369705610783797368295560687861630852467080615855621505722247071123547751751890605755259561136285848152019234250143849091184603538034791710799036866509698330580071347881766389426531978999296235176144899535976198774008187354105705678233171729627400611961958252051040693739486371769227948454979619725444927444349596916542838417976083761163814471267928119804802117411892597505733513174847141659923407003429317059682986574858020347408893086194357707668059231379886841269690968358574498630993451041810585840554873528979998053159919632760729769832148905142901198072727564515312146724888959341148473991182536762127074786924574233540285923919417877069358603927360956402551907325537676312209707380811370998863057273456442638757892963680181706115250046469869488782269410634448303638886387637262424337807998815304951615386048973133558394533024146713131994874930480036816300530635298152506597102870203564260723595370067580438279096380148192366929032381132929751860421817138351620912546908418660041210325867348870956180527085204603199367120990236788827320689188986643770872775898801030883639996079433387476036250334234537867579945836262343658774912317698565557885657733353782182070638288828563511255247727112773511008935595678599898738749453902443386201824829583355638269141142677514390383595286352897184005371494729503440825372745179723696318231562117401532035704272890120439690955096079654698485639358079894353896371477658818480136527074117083356614102438254077554664719307611690874279070690631685197767045710628283594798514973552468835620326377317273619715146350294971578221146224888041209404414310198419322984344781899547092812653538511484379197229325639653096731391645795613200511873434528945429516701744175742279416197697482734682338596388078450387167818352506886464435669086821398501735355794136073839703710829973187826795318001451255765780281484246267149082596445347666344003728522213725247186734476186540855134655389886328487923491182974016779337623056935621486251788776201464447161401979806322000813875291357929067205456472512053912576900220404882703185826978364239662744571445060542887874018320732322217461506847802512374137908890394527684999904656157335344106539696835922045763929187792000142904728837311558682626246882301035093007508623970991769895796580336413756609632850978457818663991568036306454575596505923062381627181986392595046815015828085339313221702443480049744377284180634619637352416515615372840374154075604890515073531612685974055798217215813070356026234696827933707671977861458618168472012025088776085633070259930302358226707021854076789560212900110510664652366421838220407527220955976548763293814725523539544584831221270460355202199387921360325094537827010475630839437212747187659256903227067890150144929852615391222266486175160531694487537276311658243414780785233623677214723577465066371814343455590083752950408822407324254588961597018657509894415431371373479233441687126833160058447175674639626781126438863916170249683913919235232579365644892467587478916407142330685667760022252482133706339620694836202615785469044467063891148653274428734651682992959164813659644981627695209730528613512023610085544569730827327358560188495442408291634939541193074830695852855161120493332165993128342275389491935267155374757763394659449280153800719859097854307037128383971359593310689701522592874719066225739437685417433671277954220551485692659007030886366678822954349484272102066558443464723620688264124263608974615655289363117213122032172372746898642101310062889969372334442176265531104522914994281957246541508749041136111355213478000500418896259571973708555567189726026149890948549294470323644128308158885217276567205823381123544150805776594704206684746187233796248541678898576327951160519151188687037737773472841418266698709546817475305534148833920764725264210451833660359347793616235180596851491455783840226214553232062875907763780235065878770804475863720339229512334584473736531613570388853956509758733934981217100952383308259074362761141200611017001516680042398478857792026030605588095457040401626661541162011025370030147406557409175463756174438739848386370887006715097243742058464124902012258457776987620050474618085186672029557457350202449527105641422024802810231758036710537967920466422714314595436652464544075151910535521313583077187184492311154662784575822284226528516906751981001295015704796089784771376756935622981872425104256420226779128503297431334564454981733202507939234766216902897682312264935288279364822570566749663640829401428529909518597898249232646403387241503600494797186071011872427049933267570434697403795096095367888445023809663297408741214552994712488513679676105926958273286109585441512921628677593830154609560399681116003305347771308156488784222601217012672727615524315946092310148285892047924939811519672485519154311106574417063435789459351191844310986572219334112764072072579475283874297940840369702209113960603769289458575453522083309958819596710626207164286699159998423893675310913914051414020895037666814975328629226655958024494421007389397215096778553965094531877246827363626761247577219148590784983151037622551187422879742862331056934817107419937614070014303345508466628746033939655409548794827553944907943264912567755789264438896730083982794599674935106238651450279962554215486029529353254452620012896713472144380942725254109043797585725997706826999188058890537347511904902642940905316825873717468276586207092982341305783714943189338590416066083497211498552503056224632474000345889622923658383322408133926954718114890634390572834119496001356897496938726555050164503954307494070164252215899587789990180138132777578836830710369572994069926215724315198545137154114505112144483822158741216214459665124824130549388662273378423527906229964962860404359908320952263528341879288873992520525649623214935643974027042941690960072036589348225114575962831516007709862937421393071929380168173328635328586747526152080034254589140993427317304963466381985832470609883912149920539500370810023016368646503351572083983038838347384847478982709201265753261486853411001946676224526966357609953173038975404230453993373289991514306156593223401656288837370683989519951353569420522364295933124969937359087344756624539986528233349465177990979112179775124372805262409131971452740428251989158793029177026014537625321451534748655674487891651902308947848978789773600759339145235711012722238839413791159584579230665871313446804491884375036978657739792649453300070817607868488327123924875124417521217488245959308284545792262227866699065816051287159712475454532330696784557558666537242367395657681890771708391266075544100552179306243048166866957673396162242562640670282303905872077043420043074825585923132989028160040533830100251325435241739661505591900225927553057720444094218755882157420698757931854847133913931523188576269438400312342106127665770943507850644892503753506453909295701876611977967932150236336324547204139802422333148894448239899277725265465518566868774003371405069303701026852216223289482359844758809055304109528789566492871213361997132775395757757789305170409524907287097891571203922431682161441484609414148786330191501321231896154039565108803665383483878518485622509997090154523936416895008414561692245512391375321206954003024092597217018885161803585552816850113312262223269312059316541365398450455204791483765035794170840047348857170531263872612112252466145647293378050208599621573395597874015608837955665415442514229074587045785780815083398805364132329712057446670639757572092446503690668694350163483885230773299519729697915334592165290334412699884462410890914357213053621396180118992847839719127995730665228584472507216230678179499966293683699080167042346334093767879849355902586121410067860705853414825545471601190595858363050814725859948358313589828063920435012813720594513981965671513448017962824012463320440464686556422542286186065565292178037510438834831348166014785599725085560511093315150401011830424495835434001101326857756218605234465218418094565071294145929992242367967412760986504258697260685940564876285155981075722490247429114898668193491730762437241059862624258840606920623175830572641297746596477318735800242501388958916117897389321400674264927161723355841377478490843468161819214659737917143809945772553044791922237598441659506070529757599662141813970539480104745211946939271540860209524371950283316044000452398327242360200526160960837084332241071824076064907306278380090381851042321311954438124712843778413865421173316980942931617858189468120580539362404170918552733299695373733080177876676039355998535970995063465820888344796193497162726635137802387120675246945588685169519411856055932290315202301263009745771227543704474936321556530881947322803694709653387807056253933170653453356472944810788141930610173636589342432779538652315573158700753016768347559371355901028007741453467041812372959210264656928938954690685260916261832123731645755753510958922400253463952205734382877462702630705681681151196817759975706600014368495865733505899967054404426315761733212290974242173170781454351034553576049326484968522555702293736166420600534960882256318203325298321433293098984554297389019991435970102314134324595076083787865414888548499602706997622226525622774699361025364232634138130491356300317691706403621876326755994135476969157087357762147801311767534402671649282821186974003195660797740360402555844425849881080238827955390689647332601307806082242298482994415501110428118099861596134855655329963276056866814788440696439059431639272828707093694227593511413762495699207526430075057024997376855001447982307664749436954365865496908985564353155347897968507429685498002442979928690356079534397139495494433402668602347288584121160644008107633046698893867532561927939394959557137257736738876293553198163734562613479153652921449217515360180837457578672311663447429061074111131522450965694477785197504535421817068482939269150719802139046907512164561956753587876204563734806635674045907108955813277792040094915215813883541256018605013074550902671746440952399683801796561044530112567499383038417183352063626782731936734293755746399095363515098002650246644465748316233004684357698211980584912584398223667401030127946547576536832299686998055632159658143019980207969721799568476749273752041815331443481657294880824263518356872081031517333964753395140407311816158352364269267045718581538594617318583555661982919519190260684957397770821922318918999551740266808660336536915356370134169291291516523047394842433608080485114134752238961684321768129723024914175870072794418781068394847546762174016547930099967868821174868390336702453435319840235971354192127703662274488938327242908987328900899011155715369744757592472359882044308450956993606305405452363352982934764952106295978833810161108773749311902379426505873370407943167339629867013244873217226796768754470995705757138484622082864654989422158562259429359265022387787011821630950459293207577958364874390637446371311275218011324443136361251922944001230050949721546968389083143540835134327472066986233226247720375347089304864075519039084304588744507592364008824259118743187504841934169021118279074408515931047732628664734052097737289578513853191991480920233922260870063159105776545437124617481167438708648229690308903943059965413612779605904026855731905650652980771559160783692465406436539958024137095524629958300961739250292577029765372638760367471359595744815535225721975213123358016258711855522263517061889987584918073681649431785913633005197940458480450577488013709197744349117749850444687681022034483000801495382043221221353481619724876641593668687059942098397774663206325682837194159843226874347603968857551895247704735587655922831320320706349190124433034388588044900607459930527197298379293518817049450793859616674663432937606840214813686242415021799513245825795141201323111500974758019068800705777771280540642975428271635649799212201857532231812033083003697718376644947472537120794655644908743127171165439287981300456261244626924827513129251003168897177102908977523031853950738118723568306152100632784577748239239121129762566309100616440071329121046342023231736967803792306440045579703198270637490687431794600221068697093312903105267614338949274148722426413221009206932285599089196129209876106103411597617917989874419491286088253616367173872619741247482597524160983201634099748835689163572480165146330732124867672353095119349370827970892208924701856273830078885805818116063429090035753428175541795528914459685839277553079133716595246216569786658650085383852424913482012855827175713070045523316737237014967267104690710427363275911449300898766339142880734727530347534082989200680638925585484170551494240144037036358172481361088063620324382816732090312993362118114936025513644128560001109360834642306077989241267133460983162835836977986599102353405307199694158785311112771197748801159324655996678901940126438123911740324617181363660711343343069590410184249918883874868526660290333373833195286290181528872145260886728879104229124570244983419112788399078840856890318836986970285278268306222731947163238244665767403597551921488956064704193483170397537240867360693470211409411536308027421789517629721915898880737121470873298099946021729839324180284050340228299640655723738698912618798532966830019426219869006372839360265292906260330832906137054296564781633275581244180182674996474882721537802102775916510480792381907598089962052678408721805678851525461932437673910199644315414744183161037486886475797516971001227206226830919606123980067700425015195919207947080053784031006262946005657946732549394614886523215333130193258765299252745145653508865357058035717053214602692224131685701049795315498469814010149321547132540506907393910301723186246734896347332944791144079220739730154177343529374748858215915032541744629630726911310579630581555337201436675480459840576077748038404306241228829124764073329718115917537428244719720912838498295905554358342664696692291698099856982446590838408000194553579857707273436644885005812170036167560978480773475292961760245546762706519527027043277264315473011513236330494845222555220359339068454840889634807166097229444170749128320405675755059868144165980924285619099898012786345280500920853309506391220176113531332895073256508097111584660920331689020282753376140176405074926383704222090693179486427927684379859437533016497619834018124703373006094337644430207903118544976784627306139651234312720109412155593950694812982856059918447146295490256401870741963873247197854656922552274241717161774810671316903041970515045118337749849273229710528020960353953962206008472909353782048382115242333043819412364953689099345582096983415940083791939674042586402987971504651277541249696077226313851923215662597631858512096378796385438185707003759491583145708788153763920535019891177622696443671394331386031261177384107276878803867820398667322641102445734676813891737506180132452024275107049454326205215453876702526352081112213644499446596255575582680113713146124485574289439985567203562235436921053765372756739704516366186438536944379233491643044855807927655526114923489577379534044314125633607625439005642588430992602918949609171794052533222652575536450636596439112551045257557143224750178493482517177128532868206892056813265083068531433121145174305481850839181443653074839131968470376853958481115161500177377383467923231327298427761430032456906992435640311609032943667946349751961673916385113427502021188572879756088600999065034038990374685444414259014503263261573591513360760264296192429287580494239200385606352801055741755930653263614614901651721018127608188483868140966709550563001016370486652893181848748497253292694648533792086985298955881582610566351617621000852157605459195042820245537854526553962734667661785668983720595812708682676177211994299396888565977370426950077924499592355551324693582432447173546404428741989931961118631253511348096577545825058120880088471465159822835695225116363290749675932046342054620535429198886459067094016516217577202824839146118001032345564672389549283100803500481636189438709002554036615448818294662319081832518818936106112960062357762269426167300524498877583213748713785075653064169509086441601731399931801760443147001041607978277211285787402679959339394593644862007528425593074817404467685070572588936439217223712501674568429200403154623660679184305595718027913798474418290964704139639385578947690573348885236611920111855763942614632090064739762491575356064017184201282951589224708413338744782774157114376075943348590794719299502896695550225316858169183588750393938815069193393371669039183418178172984335841664133474856731694265814307386739498346391675088425489730042763448514011117851555252373338002364464567790441865261989358411702226000815703881026952860583829452272689895999256715067091250047457021208180208108765972431008194820093962519170676154905293357760892094502020270691620703986165650742779329965463873491980656784788263673008318096322565563365228402959761189405964889221293859653186280070879422518167634135552268898518607929983598403999380488985922548073554401414877418515988713885807303609342639258527359377154535478984758507028246853455786688523277170837366957679351046011523087690318917364494268701152246746596728712999835010282452364308651197191594000872226226008768601668732934051568829978157532908349906638831408173365467767770543056527864759158783539937404032168636497767643831977008541338173963036835049148870492827335158970108321697745739261454608580132900541364293017720051150956424276876302368403752571456170734566161244713826549894328807667186651964438312614157968682485876783569319486923562962191398208118653686081166121880170604783626980984395653283488283930617782272238090111814349648961279769171198247145567895429539978937273415571537074699084457941210479645788840080073927982378923784877141906250003769932394870880447160286083456796877718937061467510217809282776090248726414562253048705657778605683500078640537678627547919034208660264534370775993814116476998488723160810974937185059981478946182888696604697665366563655444349444212891426741212603389049608932800278183973854279233775657113595731260497042005085809378077098446191472215125751686084059961946760829839252318320990896333903822746098006122871746062022134251786471325639839622958573322806865876987737668628067519415755718102061759619546732966675574439341705870637302587970928613062946211839562198209594045130982441026781468394264444055209939399685628509678121084424366037650266638737844440860479522203531945037562321128945886441451307549547481519760489659805506684571229325680691489051592995831798644039398873755766403536731943373592541724532958915270521797758696917280020220398301464951789618789423560058551364646209789470934229303980771950319711147236474637817262112966970351426405564628310926962088871450088653870606786840381004846881424891658229019802561275338143692277469428547343081466125266650942061066679860699182597403283329625872737959044057528725221550919162146970845930735988953088964604999119935245528044819492527401537057618948586228146965354371923476531950965214403514864062013698499610239616116467574838461748242944380207680712162861005031970670573742004322689846744162162512442481266781796764779321785278873621036591501495266186516538103092151497199167427550112208490402492082901553136493787242049570885545411297377059974301161941027976839242330243080783926922124398398272229063992359452958442310593637497420360777145279218594830233623088907134192670001123788881421808021262180754599582822869621798422343951239084410818235331827932811439926855803224994391009782373726723915088463356819796736296813744306197949553874031682680694803963575308084531314584980209662546339442007985079330931693647039424422815951732055852016735508258560045693541197200298884267347128990873524122446048577930302676594664982125274901268984941958627441582074619528960655240518031991856611306929621067648742149302628706109122952294432301998749934848398544530807530268876696900844863452611214640300616255051558095615811395213266373628916522168539776045146065031837639522017961373322302239838182641765462211610538622308656658859479443788925261335071688604351900526747513082832172535080324279406701853930667829866433882142397534475936062456796050635667350648915560587220604062254518840386131647132655394936510999302355647822675097292160970003538991798112167438169096935375564938911936826830948307169549092760086817991184004340555191362294104813502238971549580025790950220626498314133440059331340712566898295570981929808937204164492389501480611433979650286977830763497596269061477030534933270011445166728898071207388579718333568170624061355789277217032934265338906209980594644027554584821431963994223806644988377994859455504204618235697180599072390988829032729474011188044232859723023442253417050373581891692396559865094703612065219981601997975850688842722585003166827015569244518360270628249322944718186282056746810225308577096299555657794959165445690016962884300284235336340519586959210836153957740148581963712028669301580417931572368997738610541404324114932168290905024509173111315411660520045769433946162279611422591581898002032769751607507309813430337025486575727472339190161516566900348458844668513148428159894720965314988670901214925594435735488535920242559964403270736098592673554304129150645912564301481253562095503927016833121072278952478361848861357957127952621673393784538506386293335052894947008772817451005512304672639703234964980457397222744139757455826315768568168608270517905318374984719510229866138246213327761452355920926846689713905354167925716034311318253669516445285325196727211150605939973782904622242985656872818398338190665630783503893787972160606711060879414194689611859223109682116940870373889797110329234853478011557822835478627710017598296897688224699304068736325610745536499186257369996625317871513325733313327626449614532839961732680610741601605068802613782681449919853548199956670681269327538472151896317711611369316999724163465643399242605608241234866760542908994628909843428795015889298363637764782917435641139159227574426064979893367518754763882521831654629844118546425353651365409559546429440195987197211844252887647497772335233214878830363978408818886344376613114085232857810992368787722031654740600370218091805177190307291481771081737759555046410790094313060238787284295878472011435484870095047803155609064724483130310112822851950657008693901642785670768687761901326966396408771486300293588335288728645638447523997570503201223947890997427823607697532455733679427476405186201731527477892576402220024782181179635801136156595275188205676610771535199709466836344459004255266552741706215316716575137128825758836049867269557605735265755632831321472403031473754063032814123636497589341140263692872946307119919032741105277516310925094738615792866499180662652678480196566436612492844586514936976939254619821161369674470128283476881705257399761320300399326009963430519233883094662447920754635080673320174910698994204751274490206231983095822107185070068386301204225983247179201887188505190418825429507798725983280939378749277210965439412577537588528589889196764359787255857763991291695638026798205848445333299968226918223397052024902543341358098267898857753357496057340219967250550837675558191168210748485531957160344114425745185296130340632211075003526372006247886920653042576675537004857258976918381534744728248369914854579911653597432048572846786717898061437227293328703328009838918081638161275342195520284442845975638931037727056743759393793977132793600361274532030027327398181869603973691388407749494960516517349768471599959242819916882969636091449043450518450015392396532190998643246154391213958449145086462390308557320431785271721182682718872285143317551660429294452528332784755609197719629554096272303281671019550529299644193871667986882548732946259813272760185403830260264432170131707734694009484173914854597152633606886039445685395365224128089224019495418526896929713928415404062613925575373636238845261256574531216689191291642255418432380198726496598408384717689601067262865185943006471885444971907190865739218512140269865127904093955141417302717657221015752496639873721424473136026335289368404900841753581112128182008280471573417803400515304477951633247661615523942474959804429205165215987344563245478096259854808140957858453796910940446509986018011764237624513008947217034505877827840809626311573380194835248064294062019532241238680107201675348459215032764315642855317865121642355047363594933197690906733450910287583107308669609814289717776672943687092261962813831860308010936018322045125180421206077541104179282876130064373718570348791190156540969791099782006128284745535395697680818835240117457193568186385659975031889565905062795228174979205640883728719105234135717808884700204320723752213267900337976314771476346701049297496474582814806368937896133222260164912307310395492537709810999242413534604511700837346290267781302933456863438128178655873280569910604872737989091028644358279050761520488693079458269042034972003211139802429559068430300874294649644929832391908491215682010106617285440273501586221023089361835380830108530600345417668672981516186693571167071545019014320080832115904617379236431081992297410856499343668868581228973643260095198457214563331404883967445832912855454157091523103110184387848097077418628476457925052301382430916610380937607356494631592445265237312560832959925396450522387209884268900654801875047644721794969843486393049817200525307900016719137115062816068671150949961908274169709744199933369094303208519370568925917533803372816751978299033265893474471631314419551501500271174436168633442384754368039759874014199760685611146913162898857106706067360553127737914809694049099653760472281978206951185024682551851989517770226590186768314362064337969034678843366750400833006069923520332076287863899279293559548069008626976279719846320834835260303379943024868774466274002531837395797453806218845545301890991134963820078050474187122575504555089566696693934345274312454510834099210704861266312733979723958036001932298653915763254050803061057232680051183866309100275841604486439827672375951343099661670779623416875732744754917043876879719039729806760617338770455103607455445944087291205864320343916931558192935222055740212425949086816905239467248619488044413982222713757565715047800464178956212667894043270606992244058333047247783770963226423410957283383564672171088472006710741829256780342404759270995599899879362525335052760519215860564647037058911301157234802201816903200617489230224058322876177272540227505284453111801195842047198321840876845411478940436748359783963060182474856154986633589590592274857917200320495689757518190030093538347852941176230826500568624610728613076874230108611137835015067230173877471662958367445148556980782867318516817571271805489954818478936840599242150791656577166077003827453728397633246178093506661662993324964503075513462505001539538035636155834343636303268858269025991327686418943306707468844128834363116712587398742831586366730455251810926046398354310816584714937519824291391732477407617338057650246991931556117635920531501694890007241420208579522632433396157299627891727667992257633565071600192986099065116183460159606578369792127324122218145287050891614943550834042185771862290919992908867925525594192975434498442933150503933490939539489172010845715132690786445895094785805636709895472479305205045933215800375332078353219845987848789960923882962982693289108792889295991657484526338907264659950943022020407051665310186807013343743771498052843633620729130009536099973625593728147143667082262840492539804222111015429030858140292980130965645849390831200660075975951919474714913451082243770409465640435554596793252261811255591312652802827727410887907422293215230917637446073568436203398381210988967431647435069140996420046378406517930822512022744561305017578790020342544530826939998053601674873630347855591670824274914118406705377675730048302541664769363093564202076456847996336554887867496299453318114692862524294896592922521283681747663324397505991670363577594908627833631848612251608987761056069727833340323529810049867547954438405441554534321029174172994186103963556848420544775147932345689542514197165014053975226150007830618990834216844341568528910204100608857921391186226346666038091975413688311768530456810068792404963218814086241871549968602446212722558492992890193265486571442784948660323394641614905400604881887913191524015748555723434620463640583835211593663472491160146156278964488304083883673860374660701395994968130370350716992130757630840872732657560847000228719828334720918946577977299830517530953670100062481632683417534696517631454440070083921224712119196233624069315731897734626597658589297177504269690813499335637149165186713782491795917360106426078577900084018855461943643037731787206932089508449202685706161646088509200190050998057026870557706200107318440079100063407943857973590697382014563773138926359113036647997450924476735567892830773227968566476060519063484614188331308129119344203510687116514664577580098830034047967847268525229113610357131946493782201210019705107090395404107534041476108308826651431141917417749134295661772155594591672492604919357682628485983381884797823631173219814768747478312058676804287191271037723108291367061212262840494008119225752815323397820722537030256763073713101661989366286265569860747502125940868333371804063025483702722631927544901420539011576657010128237323458176495068352696562283689560051294632461537529186307376871640766713535930550889717190579218451997781619461217347808774373731549880648359665187204694764138685832423912296964193824582245730860153793060223114693075167386497212219369119132154057131461198503870830264740066487167025922396015941596301666136085917989306677570808247803348908460031303939418235012365133268172131630678399709055726259982349042671059856705473772390511529772195338050084012143804656944990008583961033282667575267306292803934747905677893357940354259938053650289844393985728506986134349403837391179108210792881733701299187052120363095707758154014963919103630013935860156804702065091188817867864227441833680424461876855602918036159726457509251659278432710005942000742441002988269971196287774472331103735801536910480517318986055073616133991212712941345575551276038307973866616209428364074491346443565190745272239447610897756775047131565751261651527477008151764693926751775414988759827289165898536517024292365241454863108323481077990308718403899051559204253318072161802611446098987315486680703894872655015012077103143518793535541447253116170005739471931622868828961017527752720064191230478693395416715225733703774330274647308093659496061012720435239155103164774579834785033253405376133547178985236779668295780560593402577589352769613584707860308046065223601999178921527765811601737600600662496032830778832939882303390879876612312899210987678902166474410849665645630961560267011089011192928391406950334851654359711806419692266636228058513636398785212473014818283186286142697890058887321456621496161743140605614429330601994805696775635691695340794860008980448907211354628850648589582761250696854624623196585070945417729631635773445390771268834233827361104917265927579980946045261879887196734966614638302685749642794177755305280019681751914080637927031452882736411728964483009496526206164678452372200387186562416633921925502957797034213900050129786332683686086378286660732294252638618124969798047051885816437212545793954039113660159778988910644912505918974133792796578994945921376325357012210183708744213717604035957579178778012133615366627439189224887210652001913121794716284561057821855451719790002625221757697414556306566061261443771909402273646956729230347598439817621192193690002118111910961482208359636808085857082042326280575575291502944309035747755605448239253612058246386978670792972502180975732296454421849895612857899024389657205857334579867858909432381276616547644115779292860332823428012745121376728093291812593662931575420303085886745691719971302148357182943148042381881467832203088402814556896159741171724555328217806106713331246619035284527328083392012860081088513696922911467678454492435629272847079838410907098896769390311447088324184224166372467042034798982156237805981632352725143662283092859250209672305858334189950772274177880964442794361768555735825642600129924241808085517811100151385144376237324720971071820807897565593984497580405292685389321622349182015126030262211349286154477480134276534597049464927937212944221809381580656234459718205628745567595576475177288781823366827792677420401488024179342768063841038026319417770449136036281069420081002578522803254352347284656367395171008022166250769514502969128716490776720569976459557871993105994451667239895520673100700827052699050431365492509975161016578472601436294261519422409777332678452594396850591288706589378231110513254728670777641266848975160825715896663934148126977272988758308533437524784595644419987869646084318080218737564856759565945021484396414962792490330698295448654086226059214517916170623654798174507978742632160081798205687361456509879934578847515747309797649660959134873692550021360569767442471804527954903655871902980229079887267827621086817603412363978732641295552638589592877796752296799330496172155267091974572884748835042300934074214529440148665875373884083771690944466589353484933268651294164434914687454859552885952160720107018884152687357245530601388575910716516688777462700015039254744010702399599423621454468338169715464204681161256964713937978800713482406425115375832955054729976259842988898488091704499108987633543741887234572597732819784596688323914633707834048073773835647960653954998805684446029557740991307833443028726121063391374595836285542846130659336162081131969675307704739398363805147320672199605925504063173757779954539702335218684771770254674703518672965611704877782958784034474390856805499024316587790691829668978552921282560166297905094854966868843870174479911438375898003987989141985898650982782207769781496185736377380258120978398075543921789493972401377122549252457495845528003818306353647725990012332493528141566577171864508825696307651438773790019315954338979743223525752176529261594016842528858727227569254029905906208007657232905746552523878922097063038265880321476371378795945455410565715681240859684431934076091316128984548220498120783734343751466179100168743661142939525483609199197667909951709969767947327884022550610458893765162650103759455437525683123328752964053574108448845985366635542177650161401908084878612095226697625807495585195351797930315826224097487165931101216767557172830306396209844336091407616622987330853612545603225292526399705108872253435889930623635273737739137126539441399150688102763776866195563287389764797583596548916631192479566484015421555876145413903035707493112047240104181557866322005171855411598669528724788102173901260078565918113078872348505222562882264153780081963465164974844883231851751699756736570363475604187653855574173932863799676624195876679897546249300302717938690091180633718876054871418033599897737698141104645849982834132860998410787628932047146310779828655673408925115884884456573349598887542682151037843538958821281151343072774762403998809005902839745826863139997291517390261103028898557561044699194770028147551355586284493232875415774418599357354948789894355339578580265787681410462026767566518812624871516970346904962927195330832953507470195152008259582200331110720767436603910814028254687166186185916685028179480704099038161913994028379295564951460023906425898023039507193186721194613669894883264026549443603357477067054033463524792590220346137246440241772707492460692570274010573240078520107899890375342575838802797563095994675813766804976244584553728240709139288765313467811175272637682786126244530347940232418057165095159884765383993236157259875899070363719001070763085099588167084593519965504800716834828856988323545474468255958578170668538598388921991259555086637531177238498282237050857938534636595234601896056417943410940255019534553760283484034459665424329062631601599901503664106912343979269146843931505622001530008641181474726468596973880699355970636877748762315185947996643671194729188496697430273508149509898498558771600027312476122035194072938887177867680775531174163756227832770891399483281314086357913463119362610846405573858956220531488381161540718888776141298827237381673892522836609022336829814743866277792885510531740580507752242077397910004488289836213900144861376448245178266820644820459609012582335672680148648908159601512343271874641970329284922368585484314409233945027476327539047670003680678509940608631624385159349319614870226884848904327560668807921316099023625377859894105509927141740555045757127511586470442341786903212154976861676580289834059839451796708361255786969863136062161930484004283251764534495976849515735762240278638865807452098171359943318355877263588408207917241148275221716814356344080867416809989770034991856758834847083046521191433128608701851233015484668921856461101244651256153281004245412944048875501138167512617699336001289760384960902712361089962673619921815675046229916070864567138849992951369194319611742945857459783331169680794776254088675046056757355104910514989759529683426520344342018451782478460413213522803361819135918183305156066822041337512715629250411479862828022158167419908260700582952652131496458446795588398694154863098084475193469276014153859373831729577597677770517372271136595655901061004598949503267763454914811039971257603912164889466203326264916322686557036899487185300836378857110850407723952555734771925276051777605091989897858934857745373362161387108172272413527852020443914609666082578339484754942491550349420292777038783540586632447622713676876127430303586300204874006553228164380928277104369734924422844313593427961181558530490433617680882491162159465079897324662551325853657066731113162757796596013946883627439150213002161693470447658989933145255091463497722538537785582743061387156671708644610765050532274447303195847332154504632523410202005062557875499195896524979878351197668357024026839227421263413005933138449955428657265896157074686686430360228585397451798231318530625451579086878817897355014772851900088810194099597201559485543549502390025361823427071180442156841800814665001796641855845723114963176739597203066517865974414275237460974854823169393378537171266067479007843109675429022849948751170437380839560798533099124464530417333573736051200602907651479274261212893271527442196640959000641236441363757358783807503198728293252217958632264141047919967173102212736012873018227501524242564106850602103848491857503804169974107512244213379802081447885864022925004850284823007714692566862043165800311858858418404029114811941235103647590703930324465699990157795264566323617849426327379566111889157714522178262528954085181714718223670692187323725276155590597089681212022551595141630054630003697696600043121632756242572102383022947485548971236294884157150206683172593071101804616427992576461791229153959206600732819687025948718855381278453239484643412276619217080396690231842874660653024555891540391954863904063685838288185774194308659679617674756362459894303216062676689406892248040453872909226135516383249120139255435330183630504683099726662889699495534115133565261630754293752797882226578727905303538742351533728860168512257550945024289071263181314780449459854451807751639303106556805315188705644772215540990286185581270916721805454587811748327026787626025340182943848703599315391331489694035768701831918751353553917949045221607900640204827032796992024825447594820177290145511406536156419767847544282046632706963875723794192208904269513292313917756833060926893885402853644919534332573412621159854961794530567719720661362801367875489365050430141670808644013536902288799671011398423979568415619631762914776495746813103075199289061873032812327136867456092438254447692919476212866097960023176636904794449295279728561723834808581480159984969104326103621509428184435553096326637816228396957481201161133052163532373675747973040293607328663105371297225828470119586145701487210669040650227534333571918194013104775203638340190674209071271537819665335494853644252626238186180461520680120234364380501549626919372635915583120997958916420124845563759298265126632899247613037414919845001087015865321120819362822982465088252700479147076461389519174884614739801105329250430558050753147966475659984386210398975866892860156505584042139247579670143738889522321254813340815253921539745279808816565375344811143968292927042505804329081179323592538882244911139334021094537072276730529864089272516086881827513566537533527562540942770400703982845416374725266047268629865132614183197004455391902336473933446468233015456967791042070465135510104237239291465908189411426086572603146449374260435150321021742147759831753427258915102492749776492112355781798271094561759489911267897544490696151043241448554698314989702970608018882576141978082600182937573655827164903872241659967887848041410424030273533555916681764183134404897298855993682339661375070746009393511622098745271805863493096845431829402736877005369715278060192389517640646716893728127117124946930409796788403663627258375863214502002873563177631112840050051211585011366523287290504037862573711387311709993217177622470890354301391802918505039783564001438714860501267766315001493349460128208436588026600891407154281615798295182981312013961204772416726790510294895626973840177803084702967045740025688507535004409285235440133195441375563855217473056866930319386116355805080897160053497739080523688811945101998405263101663257626603859960379147448782215315958234923673567226705034526675391648453101254709850571184801955042934992815168099251837451501878162009421226012786075644918254817703223828962844561288805893156642195628349325431329581490021351369488849376857792508566645633093784969342301057566646063923097988565213364249419039442861010137781882625205783039087621596787468647657162400729791212212120341347291605441076856167918638515268266712170101466146669846556068690236279634223877199110429391239030553477370591168678466382002578496490004703388092803328971736979111546432418767301572971522803284186909769141113092980984393687137974238343178295903062086352994524893982666991741448278275128794107503567161377201517104900947293354678672436638913739529724662827026445973645974450229304693078165636933011425986290538045633695636540112514131950923512195179017818205312467935318813388213513589598103150530215003703789479168748804385843976112784414502668922360949681178202542097839542949748640878997775920463528262932624296449297094039614453143486967397888849793320201423294462033015937383214392879055383675594024053147452508147099144632677896969166894584681831365172683063656918846511661906563012149388312997977553730108430188329467714513285311273887759283275110733515913714139270285320561769603568564672279277487645702283782351289076478647549788556455503465754523702257743443217999335561394778272952445483925901331428787092612396915500600247698778934027521917248153316976934347477690680986387975816930439948973398570321713830718764524014037201023904915443367737019899688778598401858997280473526630240936702427342979171262240777204235428943676495381452782462537533070222147186245936199952611861648511962024856199805081719843654284098257180070431196981098470315514561767981776711183197482234212031679685037555982532891500931678104575820950373927877614444657428099284021110128187620938357159286640572252675820833382574956078531019398249783359288440833949029382130973101594103662454928609512452545777364489534626800618658029785635538036619019125134211761242311742505570634799531841603124780159880980580407771210363196107770172081483938483919064372779170261554646011097341094068200951714160135516925241909109881806100098800576240564743405417217710146868215298723627208897464453821728309948923371746936778961917073470841017191538961636797683617786968880135931783308149732836576830407518381308891155605097680841523911784235857116412918691291533861878674211026909504098656937500716803897593766296819715273348291619892335186040520623917933229410444610958255804370104729916042284201108245374147371421253473380566336838308427660882681531786888321284583802643096585226526729082212576286384566328552275640340572607304585334688407129994027403183711669262025896944690639085923777688500406959860067435106086865846066229550800430286669730279731562294213464528656090872252384984998295560141561627477409905012569121012517731188192693000224267967777994450926320067587772792405646734489505558749098473576010390664304468782837017767584498049774926394967259635078187613297926149109209242904510736732983854858121364553383237277917166496159318664993604213847028817720442929747768215192496145269794310417634126877038317420223406352813676964950087441536761195757363662449806568737956864402500180579557795862408479342457230026015986655152413461291144540543181638950770711262720878971675026463790828377564155004488132484990123494273665806030368248159898411240127937306306274002172653901164860255209412981437177879782653533248700340128019968233601342239344670866652961299006895531198212233471175554936434455674541627063595344862493467390705559914730143106275343785066373025535225897897456235925173321705502171183974631820096076123399099581434117765520109502394481601756641871119155518371222298736762277693325142167276833351725445328186266459746667462362232918152121701581270554484688946705372498614436116296312134157331345516397332051681141535869376897882873759465554251829912965653817104344018868207259060009403850905914053487857557265657252163588969907962528668913405375217570225414603748583682094379158263962056187406524322413000232203907263989729847011193003231547812675788830345482560594875640629048086762564087404139985770257693890964303239051720185781410927971141441342385960098873454747159232951507479151461999665417525244190667855544005992847494495993586498207381836887376493066460973566536545215473947060558215881749706425675063008018705411671190562848432084062267661049939236225244323220866713610420378582160329325697389449043886265394675767067392451217340026821714796292420333426796754774850725522486479275497795419625162991983870216126508388237483837465021857278980008369570102393219837662033589293590159751674004874220970580664745380566022424016930228809650245941848317651028921434860587134450305062549199256158464857128087448745267983978712358765012675415166961872736664365074174376925762212298357376229624261316091695340652903196236609771672435644600035071795430165767574697859970280882042157607346287779207242633129087711490635035048116896849571764679571799926062471594231937530490259131824602908936551243838041407449149992534424360265062544467271389718792688267154885006485939995548100547689317201087776139587192854050966733673509582062934199472063115975422100166117152984799788687820237123584970575937743699372909300011123605120528363765087938002218979063224091724487134723425464917867829534302095131661384421946165242233425555542745754185972694707514971152356890583179679444202649435023693751198459928844962505967062305618835895622396742690383049610293086148578067998860606753800495802507917643572569868590946670368954457388815193726808462110184445347463876053346151960133782554123532528501312454966064651656515596664788800056555554379156895802882789590186510000992720786733588485394644093102205505387865148065159652905708216198558582077770946395449554844809118005377677303403623087807251286849940045580638394421258994742913618891789392995463000164070578699874187543402771151120667854214593305143441270974137547555234336712488966788976070585895407272922983526610582140550525332861268736954441627621338824696212940481407982821091426259266128391885764498015816250447264036222563016986650709745204670210117323823711793141094178323149909413707820490648656862427351317553570701485358839069772810335476686776709866405778487203705832500880758701942723121715619788123683192300079311871862407729196328180030101112925137109290815901277635998969528038192893783885444978589057777965179326604673069271158845715348353017099722559124435755408528536035156337197085386650802879987196736035642583740750380919595697230527809215441823852108853406059023720869398190190254283261195987044686594761764502153601400347014946788437037283309985866251087855001249063453025852473262271311031688958257038788854101770901266516784394134795901025679598522799881068504000767770246257914348715433288140568748647036554021466407130435037900233770584227327689872155987204703243064761731533246115922178273481955443544662039775774107623230256433955463176420313728750630330896384212224147441862353653847291318125648005793321446141306537364224890848025793861810242098383775703434477304056718009311194555330875368335928971561454462657617917998413147038118013198647821773429922252483670152046966073354754837926120924121582306080458232687824800172075125769346074200298117993161307588628108623424460174302916702240611928582306187744913496376352707775166830777003099323147653164898504243548649009540335646571730020236093470872505357269307234027434180074814394715535836397851946293340561083297972330629377019463906868579043891998569600188499560918960896305176509825627684527653171567710163427094074701736798329199819929551743858354743290141364444630482491761391894595128672577009947329783737514937821924592204822599575969418479898213239688359066736347150235003391297634981416019678610489587879474860075059788639973140368812451971943968687218905831735228091797649096082622514870122395560405195992042780410214211228715108598917867706796309719660144484000736927651268034292467563620576286344236217351224090234979171605569339329536911031307815570251627775531563721379361507099966019277245456502249088817867279687638601613958546142473759637530757613614447084804468303982849705718819623075075336398890415137074793958532249807369012711119521370369387081094895275221929232004036613093058443001417194937714649766003580449974666355125002461970890860607188382314603352425963356742398152937761296469252601992318352197271769259905827908794603586211737776451628743640707877998696513511087804602361344641160843648888352742710933813939770636515377664509417582037235074843293578830384091305424711965737344936562664119717123579408699919233856516969639284491453608899172097747182258493463024430328805899345220089713998341307178091480632999304424671683520335181548636405864244167047871775917358055657733568609443568000906414228147808812777302085853327242412995886293456690254700357178313119075050537973089596354777584405152225213267140868836354779318728667080818701705767977866323007906268358830126778489616147417784800188820801225658232091650635881844304627413562056772208185530745019772088065490885997959072035659655337690124636050411691203754464074207843956236953144394899004126087123192492406923864754120921615892408740475030049716724494983642866472902998717151259234649563139123285735365287979474254866311476318272022124862192571060796860111923259244260115557373810119918893707952406659681824251951791755058434775065981939150101977119867980316192826203330950141338216498401068252381660338442910510666719460819946340156622212235636646293308235509235317511241098807689814779348400531847175073757025641790599768507174698546021226444683635439258398033670911110346507727104142644145243454686942132351405327559116745842917300128328213972722418130185815530821688244909993126307081452326409483750122545599567786160927355310137326562837879468207442725132326276550351256536162158629853548282717816832658811098592861233143398971008778363059904521782156576473263242739535905275466129326542228441003372402631575015448357856443830444677175115531814394362688113619495520299969079981491910170497154681668721457575710255454426852347838691702286738259156683205687634899107236732803401849825932781158822745402539079291973480654720717551657552260356444847161471171520749670396688094490867646941486833548958136805375476712285899771347815431955595642943541079390891740107891960990888361835505288687588485000589280704362127755535461443859255855321083535322922663639053860833130222431711992272169254611021004077871258001603510935012101580131314074058959151079188688002213773113510972226690112638827858243788657499320705746296407160053428559371272809099801654553529965253371057263509411266790592995227475764665231755121378003001837590704033832661072780343925765180528133878531510897995254308890031526195138636541451668701415230952327707547380917806296639393363660423006784996455597799685583045318458440607418304609243366449760690165564592601356218458813382806485651135643440111601224128755866197862502819388421257542775976055192100899344589057624000005881815560150456149713878480086071415267086898752995127251023498723138615550821152736015034956015664469003420934477978287667357806690044458473240271639175030986783456724195308966362062414197694298323555107219980767231964463539747959869550186388020866337912272687864743054693266001697065219249028229907119932254019290279227137482147196463029800054475188440384421392975668275760055440176354380796107569080165945565436330963984235508978547029504510290933947719176316700305968533627115073191558519387208818555227382675449662488210540986816238339582234697542807254402321029105864758199656782566262508662648451635161868169282111742194207634715147880141058193607186896734888382377918445582107287341321635556663419678686759776500964675590911819883179475130429884907752958922737155633815980725202751829437230209164975903477640127149572951624026401863501490978222297061255079433652184919888527239242791616352898284593871867122181067586627810470213469394202009680561635978300714520829458476337167716863222290150181860074529323822308464139473094095284959689762188165607809563336553253619459162776306745764855907851740552709901728005454162449615149268008077788410240712756361391620812203377635429671398230737007312832723303329894790595546746359648290076574457019164482796786737653524102718417062299554555458950398292990194466108445306403239626482994902806288698463667882464541591809449477592666000117674076797573832345825215635288731073087539317475963025540511723396669680445218733238576723164246174665484649966153310337283932235158447066301145058163492402936569639392666750562232345098356151479197935916866263073114094853128781012181080905093121958347846373227091505834758869697031078339493363122311347959818911177510839397261844042836024131866036995169087907389140133841522902486734602296732110070558172183953057464740279744031169747726631772990291207385104148536876360968260695165149118873075081678688508439604351815015260324275172069946114114078394377889549221261640538498110154258889256681087103955216764006312744624999004939752057250693344912440008258245705551001135682455255292574569789919912226870274487602064807821146503347413701988802773994026418638275622695992008303676938953672130851510749996245681141606774459195347146367543122819879684515253128547450411071470877991055775132933107439979425745691936408344485501332398429439939088456322079459272629059637307706514512725409756645182601641384412973553497820962421031316129230949933325304579154987389359311136622978014714391591288424260881578097535338682176176644632476056114219338697032356791205011394367331152122150913269345641002097552986538578127226995901434835383371287785437352214945032704819792613706343412842844821317020861124288071115218302069345158855785204081441243452958044603576008575542021878075532370060671978663067532867853291762818554376985375267871206275981234772810440178091360614716746789479258068029479595125772681940896437827925901627574425215795144495291104294331025208740121726286667128836573468164991482701073682378966697338210273948341751214106337560413340916171519450487799892489315836672935029177136994920539286690559708782283257469544355654377240959805159060175549354525021833238723034802371853128021846951858335661637355007350262299933995801659957311436484427751739176469537155294949511456731030415866338908175198855320973523116228918852246357151543485159721625438968388971729006933636544470180652042584629991433392625661802115867867381504616187721298577839242269514127482898365088596054175283537880317442002562534758417867467282385131492526066778115280066977638900303817438998824791525688785392116661693707140313878037913881038731624712946344424307509976977087548948799786445996628799383514398751298591335130663282702812022493677948103386898065143005474190822509305111425746083571646616913985161334124510658838631176045440950271214314082583282536737373352923685885316136925753635322380688635195914239151557291376313097247277409522853834710805617810981119464588077134957132051580808952915664832362770257400889130919085500155047233217477080972015990383804594352904398928306395913285390733233077988618450954617676502648368307597490111702060743339276887237484404581148204315526069857770875712914613719938183309897468334933559072786320664104603606201564689172372008986154469946308585842680605925413555592884361463273933894238594643062773932103698688166325223119829776856817825710711511449606866200602273841311518898525013820545802204141339735421553589282615309335134752349654637361412761743038538452295010339612408860196632572758945477516188814738699278055498260083454149222805076522261422673555843356669759043506751806491400597031435399180897077054753200423012011587636720788466243676535329621342990942974330218350614153025188405380981351750377001427737815823618135663268328993046003322641812470644376739369521180590172482794773647531595282329396626173336038448600828996371384244156692341491378043486484405249623381741854442241024848805375677267229066252265611325543033648013430365453280185508534317338010888520599571446323846756729601737674920669554726522289527287319440385600390980604228530188901207473353899178363975785415254167452186246648795356860889553593801858351536456157137479904098130404391454162520550595817750901332674377996353795260991826662683488044515367391358709797634495289769276351423063913008883001776640763043857482526142229902031293137480583173231281442417190119788900057707062136814422983355324456406612353582821335665556909870489670711048052034362222501468184680052397835309286857902851872528914066701149356094133376387556734812170783373752852034998548086219467146519783993432755821988714993797002876308608664741722739471268053141238210177136478648928541772933725790449022493410341481394867122725653427964951517750485029573154869115411642900918198186707319319630619368323220177500716384481702141972554099804293898011132128917623414102158239045472388096664503400400936370996262313009120146081189850470363318011631375188439759218189674517045188311886033552204995218783977061493279893185839274399791423540230199958156036217091028096168422098721458702408121488671067223770335390606755228475235540077314053514157084164236525838950846526942485736883470334648474191520496223957800416625631296758785432349108142273755166955330506315720865270529768010995615965191509476259377429010075831552534395725251540446444064033992471878430132982674389160849810642594951934227739043916834125180286399505681769363261383193841661408411835891320679663898007470823062676230949562198972777662696505331330996029640577200512452601913583496161303745100421786711819541259858103285400888518293146692175078349245632003908685572926168880601478483458633172875298939058857602078594894496805503084525972347431448819935636389633456963451504214316467713488925760591953037174992610637354556938989173202019841109598008871586052148478109369159978473719199405189921771259414818097518606193539439490125752244502012649248774394815834192862145885773261655348081283625866086969299888004227912978344611311671152202311894332076736749480833663661078768860831069881288142182283306634944430389567363648884147905500647360407795497307149327321490876430826473070042835721381543591207584420922144886332521341728842265112103726828782090020344300155659599882113929209811211668873315510179002950758254853167150275938755834050336227233460815219328423355844961973658000100098883539828661860797983548227184251296523777851235168996081460674942410954011540339007625528967037595789817857476507669704420254370711833041307616025150422599732754718797164688623988353981900919204303735008509179182900101319753078404095267967908406259315392640286149468275001051501271178223995832947807038060903903604422826450899144245094914664895310321341850783069129198984678986232535785994757208646202169865246933830660020733691934004200633435556037681882659122224522157555262767864393741369691229323908081876850376697454462793955854612276180490553619760256072149221255994253674009062048429374894101471234884300287562259813556235463275083400147033870971124957249991307906065168290060754840706348345338635781675325049852352959210348200020303868531719272072476901978435042348137210568716493222059815963383315595709327248653934046255383914642046023885790509920535646139870355596418882902536926872709680014078083118716289300327108030445973436602352664746702626631573887656612307904308330996028402747918568558425016991522300345413308432126436079860738682699288927027584534505007097458207320139348854312400476827003558298296783844608549072095429722135255305425302651635952075231855370967534864437654366445108801911490102982691107920312825182614878435939825647630798833754291521551216492796715961929111102463876912086939697933579889583785037391105644230611683245944216104376821617161508344531527937005244831144351110503330227027318313288272996871519962328595944572500930953426493774098686465086208721204994898810751054556557394120996804902169147364954996565248254528704267946625781038251229250740562200881062456826095207398078643756984874192748925679208169918765796613537405303218699694220886085976760985389384980670245399811871938495675518315715436742105941153597834772112024772240770132290215657633231948718759803743172857218534253082363821004284135270927923843157155495972817895468328384383205342131450236711492020770358106578700409291172984069630740340180559087981076586911425912636489965964926504147075494816937373635463210196266230879638814062837891225344279432438279322642682803374207538571234680248028953718062515668138679309841251752069725393878476165362564697389702931212373912161770318350448246669843656168380743256365503200535397758652081091256333868832484927990796411573763636623655970387155879638863590772429809921391078032640430055577989311294955185602911918323127794797375262977030438459846537813366556588750174742808736828586709561806839348520360813620820548194398833879274590528231561267719783684466183085236016699460572989503414069272855026064622777155030183779091314979769792511375473021112250142326844490997555968037156816550810960510124251212221724864513242412507589648042821325171982721771002517800231712143794649158985778728963195515862744214903879282865425325742168069318797906856281139060901479963162219623269934543749244920846698169451785720308699062830218114530734154908402987432907570651952942848440105336540707761258454730153622414943788822501561758767047332676993800717818519970824930603530761614341781564054350141159676964164227942047133469578982537542786363071102758438752222223536186272097629977509669287619687755070685010311047625300426175884260014168415459592818258113329594963805176821719761356092939088175869589692336033953467063926045831526618921065854615946684377131668010792992981926882097471949377121941823599765576475782810991794196180410812729942612448498465224240319547304611300749288921604218738573470959718892833457026810545452048039085005925295616249410290734696995069767647762977014310693951586649352844924356555052022110971348124619426044662053808481702987725219181871942920653764591988820224059345352757689404531908803717236156237605494481013716374276890610531355038821211592622143199368464901505308474820951676413908478127178603570017866226619153431514130810249898302698749810782901070819363316091789197541349971078508669459565179885684642929401078809917556511368941303544724535177206794104249525901565707245756580766952160821964683439496151964624061238549894439406162241471476740837542134038952705432803918015325375176161811795459703787103690598787368525926476971820568153119862294577477326240069778002624493279877710148638748186998165941683033146508890812655200138701921592985648973415640022756332614945894185505520538070528202490207791006479780652973142457288312908172734841036999504203985227631898491594585280943659387064542076724590919560338736530290607422501615965105668226181896191058459906719236090153397924929559108208738723721190226493433451031263648318116553818041325123627574486540160072955280805808035446943049803729956106028815485474886558630084151158109744755632540483639463559201104035699272120857947240105070268351550165521378414623401605224961572057467504815798737037989196253552499481816641116802975286991276234275839607810449686624582226523006963779231393075490629969910013867129979486442548275815968921677395947519975417576724736820825761387091313099464444117316392966684899802679695379125205369429850152699979701910676620010631859837131610487232955039732250425632030655049321714709441958962576252554084193260384794758798471000971529174610779830356498730836214868181242989395624204928558378523964958151636261189308881328865092182442783278296541085227163236672535420119897463627069376774041833309399528891431932368106900119404896516535881653887543199942781592100323055615511538562416570089442717384933070420883206264025564834053724373449145152347266123570341223919150691667350711478747106132476577803801234786370116689756622137478230512692512071810656687962811589199783647038232695557036030522924148676139895303425723867826553225289935442298003233673161994150934876930208035685237040642667734394180207576182059227516985426262809608321481785761431393591475633743958725199104448858347610007258929915495030036523160584170779681415730293918867906909646148479343982249903465646095559130718394209940863682021761027134795687422834454946705944235214976788108548583544031133643410794192945453153408697484911496716370931332896302157061937237525777652493448971711076221058449265010311350798635826972907462077161969435770859321205054091326013376850794408407133496338528709392243806507085970085261670527910757283780542998422063594868195923165213923332166638975638948889775872464830956752157772581963366705526651267483159964723668675500650792738406194381350195988443174538405878230854085206197123871774448587797908338283355054374342107923284953473011665244262324931042389653414560534451884705181559447387060056200452023913304729224529990044035924926879826925677065312253782115889721347777859361443961765005803992460751899726532114683274133115953802558444566546325691530284953237154306497902230422229620597693840441476545098394968435819394130673538333767970500141352178417297704849262574991557043949832868937507930550463295709511162193939567646573332911319077564335681583253618996196652875713897908093935457040613034180140140673117771262965707955716971132302434197021108572012951469349698854223445726052605438773569967640379350784799799113424571313184485414507844454529275738825778718653038333074590854428438818752598285125819957967429215561248926105176287799249285614921862283756752735426190141616883537441381451959446176970562190532253648648460987175800133228490798807688827680212602703427660106080401467629085829846409980507364291895038202727578693121732702845882562326966900243438353293421596973664975494489649599589769583712062743887845466607097420177867047880793518254163973471680858873918318333742850347204335636589529699395624738062708108361724435354168857037646020216925870387740501513470368604220368187173954675514259168783674857053418262431923489958201293418149323796361842122442385420881307140227657375329670536162486093346188823810530085314939269530046322786308157510155266616273750808738969819130531007687681469911500234465225773640008739600491415678957710040330691170497428398469883216727423037740711157708916105135508017178450411157437065685011732811339526049444133272909046404271978431332330866658746967208040461531615068563075521406119053581800980672380390440823572391230781833092024331053251481480587894302350852716617170251431802767519851544206167861128771933023429704967592543627904674950801257185583965088906311612160012319907642253969864244584671381905665453959514191282524154884396168045084365455310561925950762379361327961084956333793656513920958730129111736726163452153996704854565919475470520299036088992770983102910297107265474866115633448432233769596420746003927114067848863271755228085869241963284696379969176140554695072472163984081023684569906006875877758979814253575004895222919309763162148063771213625679883804040519381337077791930134111286723456803880722433390512641014277280843018774208072971420839853859558265526926685945043016625428470321308244012028492148612446764276947480383980757555698345559002220156894754593427422163512084555829208750620868345228882146969164034066961242140146295060989022981353704589003144622044810814433242977395407658808501693021076097080521054756641798722749637118596220303533230954561946918043417839766441489575095688936841213788834344713800446731070057226327248260861790539263576430143692211795285982310195222701722426833830186682907067030714373284791354251291291963213301031659451927036887285486064668517133339465792962475948796673325721852166409107624883213870800157289401042154279190424660194150397808916640267503567444851198114149706140755755019211362327048383530225326992017183466053985899315373321909136154808788105737347468865886784263288424349318862507189692176864387949786534986197669177462065627470307957360449153450313471823859073968617843596831783172527142117958933719004358161048976249798328010627503040501245496488706887067591349662186599256682325163903397866166157671986416724479997056895030024125396486227137227533079512526445316999482188127931681196884164234712122280194874555633656284671611212625741912692515955929491173578626307762686770277162271169774969825532706218269442163907920826035034567241030247029504353145445364177572019791253345461045092378049729341817784287389701368306348296774958240845356956498989175056693172048150191588055748565667754263490066251533227412904540763086592282146206760791961326345224041781367274872640729015213717076203081860481074400877543948711161734101050705575241493973266766159415189682673079806229021094361795869073362701889148692653832316210564362306028754286100459856146482193101614235698690304712989075573119999237265791106358341419943176356464806546523107181775902422248715911053470966791685693069907109238455274445425218947257008232905543814322996509760724442476351556425109057836835528472530131126128072112478463044178592730695168273549474760511442250050098040898349203835581611815547358002471718089581011629624775119488745342807392626896644631473564960559553507142578763478420548872606127045352195966154091369264334808293096137626130066561337737586373295023815263338480409988270695103482300734221922759559795360088935957948304153527014866904686516329600062127628577444739740487438461560153760079397571891253752164800561779523873993542613107999167056547521417021393901825506309136196050582382076867604632845627451498550910758179190422572624806714141419961521030663301510646926240927688205609830886341879390905393013818965690182767162968449110701259866694900308750774825959916312635919620499409983364861581896446643217800950802558182546032534368273063618893330103396338699621419050911779668892129729375376056870846054485333861400545528680652978065191344300246109922069187099726285650870767160317799008075611470895962195043265000531536536399533940648138950691199938686477272536389663697828671107242971948138088442763252199158289019442612115988054922821205846764759940527893866201869529378661165934660214071278655088781902526882602141425848406024433964976693540455561029159944412661860392712580001752453673913126082178059598820765532657117563195269033238235046119390217102148794476829372423865520024182251699011336244744588403781779110669841416460363573930902584707811665629134001906578679174704004691173697805382240999228828642010447791192443771100945463603424680480871808948736245965104709697396016771988847462887244430074912203165185374927903032517558827362436632179162647091424373354780841144654628811421595650895636800103911312030030988872560721552242524359816683097320093006548004162499172622412394988334219185206725802238918310138936667483722103683004891088180595885583231515476828697410254132156569026731848262019269742290383352637845987067798307181847018905209565478245377831879832321832802882565978737813212903736666477550679006169255266510945298577585342767103300568475527550668718138809231351159350271200370001987089355151729326306250291268696710149409950854415109747637153181784005822111663150727800560338091916361889514800174360662051811970743342256313659926841079328839083909773115128180781614287922715726577838983073236270041214688714754645428421578777769960068837967130153697500776529914106848309345759582830598148100426960874909857517355330807564759102762197680383502409935402265933823991029814709518757855208395189135895818644660968722775457554271722019223307577107547451820887909925118820272242884418774867069544421002808421511053023337173407578845316105453019898904653298587913800272296718174753447921022490851730509416120759462247528094083645094815601248776824178814887719714183955852927325375911117485868910679099195876014042193853688355006703380094361908467308330091206796413339343401407208422061061248264294794522222128386656892440690086859495907243748413606236574555518191964933501313417007533632911818975689042358347230308236991512641115890344027164028561397364545130210326203206832776848164973933177101845639493667523737462802673387789335238846748105687407584264988847830179752242870620816502493918106946640069113304916779907453923874408281906775861345408145992514778971771340638388390210688212278244109766651174173174610771972695527334709244704037063490160827365804244919352106023481279943407474143385189018828542826255212750975900176839157326285975962977584079080339971876226365829832535808297943163976243925931326467850319038162253586529652033962655084142917539474885472958062535112182821114017192301138539955500913039441582334128373252748908630916798902240943714333987054588564314372929681556651739149999636805156170051625287789478955555028249015311743688438007497787360764241845155055466578664190690888449561443406317134052681898275215287713206344160301424855921258855885324678620262712203228200609593356903857472361262767321720966412998310888456919428463215947931368584047834143587088967220928315386990704675398195620057454728687174692550690725746019945101290153676578362383301575459260785645075838028615153818464231363235740166650713470354865945777082299552310506609918003595461064441085507862278112476257650731900805145094831369375739589339409847760286510981521706750275060465884319958018166113708347273393180412655205518524479652093094057042422155184364197033495426244369939793177588333327273538174957102678509021930187776473765288968599269689939412644893720380194685126199131033309188482875911345048108891996225929120215917695753728019109501763546834528811859942269972392010643196673572333742398516305756649376934218492023680827170387932826121534999031696465611127598949658394787611098121454267530591587454932033571137507029249109749928800068530848880556048711915677087922762567063187137743057383740799513174060587571755499983354546630953745670175948060440941830550845166335846683306013860758125983974125738493087251118424790666575584479676579626940684149636783378137186601477995221651084997805891730603713557564087839563498203351344208902461592526218660649947014220299857992439649617376387785992838686587260282534171346735511614588019426509602065866721260381624106341122483405640214114317332435730308964178387514646515805659736701371645733687579052413749732689744186993646484009034374098353427512048954962661258685495826961493679668530182822424553991694818161380103330902646555282821866781154366371383511648016379796066778748872549796325457442182356434418335688928161557617733897305974224794099329271328604268039110085812438111730940561314081313640679127580089004231605741970810210347959799470069092802648711627098721999704787342478855597482988978738600608144790739751402255360113095454043862512060057629100688343647132107399447265468493844239108588175882889077076305961453045103435727131031827974669254162714756714935098069995073249512044964198862019917523522577388911945325922760459941626806161159206202548356271320379082081155286475750702426192189806365046515542487485004365781560618705752506100747663897067069217296182473365306289857717791668544291248235740919370534582792968137335054281978234128427962720581409620304458669585885583705445782482878592205371560898654562259251609972166856479978219635551076954472174659773816623900875629425974203796825121800308700158800367314859731048246387639895795891922700315245947328743971557697549169970232097887524325257744356315115484530186298977098903288498390612866115523719842682035088729528749189467176863623221459810777594813329817891545057169629137501805704361982165872891688352426368988407228055946627788467015731792880787714351358372924699860579579321072609282879218155361907052384727703197920422846670170182072684981029281023890915651738441215593344432209549667828921436835335760379312841179192014163459144654864293047728957569718328356949137422789590859498941492337178652163068071112244401562876538998625839229399812609044910337723988377277636733456583471721670243213511224380911328767104338240116816971712008258807631191482091748302150838011731892160357291653340749087897930613209616362326872402715539368356650414569800029313795528144359479434800025634162233684512793709004363377780685556579273348115283645512029125965557558342952629515820582086852386599122960775576212148474159117978898200166063826934946221555533510246385601488726172259498863632112094804560898986156343610722929030070358290016810645737944989533546207462311515162737151326083830552450355370211314029081584490627964250211664590657499392174062877864027747987888226874841123047290605369662573521129960838320445023787169360324642994092995117219117139081211768256083274979626374299414503930718894494536975955363577827593600545949442034266980878964850983250331702040417030014446149021962444225780587807800869119819831745489471203775012185871549179553564952662454588636453746215204173552255483292024964773834065307038676550385919795940938492960327415370824276428898754160977556004062374505031866168173639208300067558901063498451826582982272380552154888467829129999655921955308975443819339663030592464082996891223971343586914750106125251744381787115017042417631310323182890872406779463574096776360487978803342337875983197140161215747768234950936697402380976663346347861927994725580955591094693455882448911842589902900086192979753395337831889605867509542512264712568032962704164918117721482982544946781868275148380541758125346257952327737759414554698602970765341155770107127628685713940659381609447411451088831445800056773747579763550503529190948122279277135899870205796171446524915998552062623858223736527432849288379598424991996649662930476168018321258992333860589517747602325795651110081548852050385545667431551302053844248867676280462031155649230179135203529250151538784626507976153079460651523911426015241398544226318807224860760070235784810036956736347690045498654509646223275543334776803128223483363395215593737220596722314097101751800549461708727704500620713006406055913083788574041641132826254925974884907561492526009904448421193737509491391009618780204985053907797799059101753808913466525246351919593419033371398539480435388994063385796870194540459496089753861487683495400150857255264467048565918530105291171290998540477716658560639396347046254361068989714584270346622688425575519364882736448352730257772776839263794126968603956604292423136331662776565244660569840991516508294919782049244253600976069448032411140737918563496346164341169247231375325520580349358428010666508368092844132761758188888326301808230129945192765099696107123029217871493944468715127842775738626762767273220369708783434624390216404914638880956746695529939039392725915547877519265392793659248936671935084476879420905969662921718020091017174865379474793991492402144821116497672614583240915016952381925765429461003687887991213995513373642864722630894293509027279471394936502513834177889878762597908596911632304058764419197833638786318216342329373709558343869209237268348217374718955046205491111824791168364174191455637850343325753737596641291304697456784396884151618095518811277465888921968943856789160703017329710663766543963669641284269574998033590402100191747155585821913381495210615850022071069873064859432180221520337913628468879071678718362067835114983931617298719881946667177859232497144553811700429367794817703012046279859884257615773423520033734760540934005081403775352131528160173802215343807793630895492289020496421114862048292644260068405950746442455447423473852938410223495832357492285044915259804116437588660544342826121964147240500303323279894420135254980404882817523696714641719223257201985230041534687317938271287092084439005595065210075696042451010062955619120562130090490546783754407465923314134878290697462722704035391637474127791676419934586433964700564270729336924262761783192546740373897098271891514909714649022590164498611656537368127400566603317415769313739161369359850781708861526351145604785515365078317325384566057523277321551420659073921022237449310486509408244794289290499593200965264137547544933207234355606579225835678727169320592871852486125789017960127250146564594602795909895143799321318631026216971928819919044117758382091385869836546591006612553344803687937285446217026693720345142629432171508096677916275284472848496952383407509935920346891286602183756493396123771801296398238130790076438132201591999258126423347650230722266652586062813836302424443898855998384215686812491442076950185782793214782315436493708689933312065120777348402276208046509568342361356674915984154450497159408613641004788963570327239114061170587882255470046270200427653329643572140947687184880949279707163091965208322402013023754572647998287484391082664936641454553990222904994296080409083191404212512648592951754909645571940541105106182280072788864430291928477903663768895458153980113369362913999919397932844605691364759508463361751093316666924693177579779779457592825712852917586208142490263791942424825133407181967451342659984134490285224618439136615118451559288054184033273455086391658983101510407730588185469389686986993918042570598777951389116091164949170025715504790754155927058005791701175664759014415524354646807238292952836595250583638380672311584273635492115321312096352094190434322138283620746947796650118031265105985549229746248591083297627885671187045428144594564163809094178304523705384073698347267610442772229556661667302981506698311698178577672570880351563382955730406874929917829655411976479052139857371562843202142318157504146865357284045958357161366271420524626273299482064580888352880521268878848103501965753402028964325405215259823567406289981407261515014758372693187372231810420955446148776900608806414718772939223497542706098513720531539938591213693029743421414743550494481342132007186048151880917832835803401245444069039229362147543061636010366313304609906145705552747498786960662647927263615741300601146870666581086627604765745939353187651595164280250745469938132048201253260305219766247639495926092500878735318826975963925783490431636090974604099446636714852296886198685836537537387072811702138907004014035861569107984748623621420200962261099386049052562234679082740727550106675301474522849753726552924288785608445816876642424318872470314638413293641509969796152258828578936821553475768874829538638705502348775957148594063888693843439204079114014037243161563554945832299391272002919855266545175345976591473249989245852435745467978979826486190699999465057448962640480383105219519361806348357089262730832258797550388358281437216051801520595144138447526231543188416906123314593559557961566021641702603885301540685104440182715017310151948542865485550838485764806227550759621137526193429784554187750110797476552973995851002472076331236475952277972773587442160458643385886323389939809961053635493505295021412197060250562948875350820343110400415475324080296296033393941660114706758277147826331269567176986601256300569976345334797996149060401375274880935988683859655442364326027577705847525359937538938530590307343468021726782463229542047845901340214824221237555917595824837677095576061044176309092052875611662936101210444112106188552498081858080007721343393000982119992835337985023865732371463670769842472956214187074263231996732328056111243840000311802251636755389061665687866643197891472772699938880163975685642190333437323702937546889746308444456267937727325371684645087052397365418680491579979959637608027589553064272500931399969341448615882985176772759966259349388563196985839981492950413419949529715333436780534578574139551367113242579289048155495067540249674129550336534070444209327546557222161805972862368422556546136038147322671069376525098095443574068561665857620558237390893369850125147843711958500088615214358204965322571615727833697604657500862858855172165170895617189402081093968240036599304900866171262580211162485515340480533026798753633324983501621887809692084007672445711146635846624655468999132847232194968152607042928331440797991294820766012072384725962180413707721719541821157195038257581002689617016839836579283325829020654655598414193278317573885376249293525646652168952923942049236434515048343468794672038259639493659600966608871592655539045484797483288937115156293467596444813761424758143833106567001216419707058737611550579393706795617998397946235279109745782923512501307226869691957430555205204369955872407044959103957407305095796199793371244622690509577885835667293187313643442769292738187103746082281628675621521805229176361552831364322374291424950034350309792972953380015944880289887525754573349095605089949165869761658145059609538589478080613562069816587133248585313807761885145541386532985830861447581769513403986497605600414247864882923015441158350609233446916305803812703381091826289544468838741984495498072372562491128502189218244951315608842269023766526021954329646867681964712310258796149842319011562941763305293805967034192409083811563948836589253992346244817013060895404886466374557195954525091917877714952606875127415089241886390262840129837220240620039323375177049790053778629456181319246706331793604669945879687373857430710922699084978215855769473596040135515413356756580628691420006170658934590285404214198082010008120064551941693008542897957226451572450672231896769218076208256731061988077785972755062889380103796009756904797457414869958814229473757263868694180342930496843596780034484255284735395844971325902361214213074479145123904679380387772092151270971938912375402537820013884583610694738570072233264401257415364383924592672111258716038725611409167070666914810458409083873838824818075272584966199278041405598720690144939083079051342698513330157092253875200257458207676000565319026923839153596049562387498658816695598171479090771228524807125915707308585664095553145333382277990798483813245799365450682530266221765748073190297574791894179343393569516110032973697895282502687404619638360965443871443003223438367191130249376935450780361989336499030798626904612321846805656679389451878814653934437053660856441415991592543187032514551697875331601455973565704020981069072982907403436527512734192757685533267065011564070221283059517671110764193726994933710597508245860701058578067065318356607784838168051347030199821479516988646617782567843017732435572070915011146133801976588812541962518256077443113406431259779225932397800819778680043173882622685534781766833415594659193740452521755067758793511457885924753767865824187115389122367229856925854552668476652867457884593661700368784588361066515663626240937095345777663445459229821693015546752642768544343727598044901889611195025410281118364972830615395682760291500566531813664945591719207886307799173719185425683457150866243235195038269330081137152850785415513142407037554482396902476620862068669801295901228927189898640733413415636835425972162449258314507818646475750062866308720699983483291448642020278295523406871571693508239760120587865391899456937564202204735045153591426912782945168655354185025968328429050593447092085600623575887003971157870043247028741932930489050269111920245621344554159986988338073910862835646775107768169544332393329233052846806754941990164614987758009667396045305818817774375645298281109441870139296239613304124408777628276740411922004853645307233757205752288356781880356403269725981352124298387141925901296448066547523562926288303156317582774110734817601409431566093566995272699908286369655784513300124344870231093854135024577345221497336043431943593296944902614526997070419751552755351141375398378523832596434440153839992544003177610200280345630948138341652224507919338039092286703992103914035195319725882694589987935063772703218508405862989323857174504107190845991504278574715475124976634864418506863460914635605991996515172429371230030810693719058886754387067374732572356784307962521648125909319888114008793240235326128475847934697255804729756133628459726856651231639058081368244621003945972528574758536052043178784358711305383116282531389938204929965716913726441001436741050846083967405059009202551121412975679802081025157178633253904198712667020935447652391805306716636932800693008822782569120622791824109247433446763096676915581043496214021365169365761093738208112875983443857870537353739765260304924309267518646034168133900027591456853356945066118223515485599279809880963156270215978501297629940697609169598799503748983221618187645464736052254382142099328849388180741354622137108175247509121183517022685880909456265049323086032173610759775498306166110152298685459273309364354536066285187016528101921271426043369750215684973890233252143416316807098181810521899389757770099290662044716733456088041946117680054995815531981293417052808201655056238079086964993211237389962478066681328365319326999764949734339355903746613745768512095013489800552961582281595308780294526730830973960452293441099278075982071946004837685293590340910460766810413588477914656289201647496191694875398469957107456427184896182242126665140620912323001662302339729114364765232646903171464465421531747193711854487648839948600175292060354013699322922390850143553053287201552932355888692744344123998136606071162262413646019352530793656128709160742242665998391722842694124830074465235711816732070908750333960699538258579607309441200110990605693860192809698430402715625855912053550334237847506906890492370302656797077571063240526584928832361102116706003711971636127009917731983477988672606396314948554152365332610107026182658150837222809090826663203735236068734516562504956909132324821034531507399589864965883048922061144959930694757922084151826633560298603411871554508883607951627777789230873921919329425145146877208824115093417037961347450500568854084634220428094032698740166590503923373103876589238591426087821459852903805501845590347145129611270521841660946586145530111653991591043021499547387543298988340493399648789406149665987225465115201076112115514856818100637244260397439926860157521367076806924347016875733777716944255309383664930743253273156497939320181485030895077042517612303537771445370533947331678139417621842973123425138418571411325884538987451686878161020227635163170454794893545020697041142898648164584135092438538618308298029376545491500354968200829289230540593032392088020483570245335625801524729085415090182899959166984223788255565264036973817042260604176557694717180135043750981023072279447078186660376505496323916118976427001761305743612750204021504547533337828481746817932448235587726299944672277090713308708710269819870014773323403819214560584667604954568574244015578836131084545970187780676337412593593788396731919293511553390104908129388544406918089769292794022689631022067860635597475767260271144512756917752656919550863858769687025092059668088362193253929567511275574559379244824383084835820772729870907293113385098892135618099575793535679591086626052807578790731225957258160908097426405447452112624352975622867036599765319395774249238748362386226035486659745777876771617080426076121014601791506986521479656267486493054092977923646767600298216818069734107661656454222527795485392643583575752047756697871486052749312476972594609145530776895717855423481504554842906680091425406663073594574793696566250806147330225000327878871145985887305778753670512347228111403716409118452810437299888994703851188084141872469880349020036288198881296975486450769209993825480034093777359216449417512416107461307468296241068030836793252916787752890562044756922952015943557735217823096985261570390099453178290149706006741634837477547291804852515709949426200379295531420259597836218591422584611232694192279966485583926737895150148903655581461664309501990504472031319271504145126928310000932649980134641395957641213068007325802101593997955818668209251085387833354684988311007928254806939308955263567341204789640524109489866381046210840525883579238159436811349023166496635391960492869445486008008599780526526107643447623532889039212282973662226803757152535262809591001979924577681391822657975028788704996987847494587133876084978812744966667003638365599168564525362257940011097276438389317072117221074913695005980322943152560820122350578854990248542298418502228097639052345858577198512231071792420745556951966025146437846605750769062636774300954837144792175400554787758818073167325310703984738379009618554580834302689444733817819064309811837252268669112289045112185802243740380894687643442657820323738183745268301784234766030456957060328321688698844631705773340164492731087415768325454843908659450294485379684349768887706375690675265107902462344675310204954063957851430548415018760929641924494391735521387536093256602899144884886572194632415117650482073287274396958365215880621418710087341482434636466467608200652527765150197542418360327959948040136483284847276945478708376557371890522666114862162529628581336656153572579299198136517031366803219390468712948164878611023140603570013855695886004685737054408919157746119293306744757202677198681315027803292459725163884600359639074710345355500924974427452159515812219433576062432441209811361892190333584130970242850893040390765417982394943693027938397860724342384922351426732591522428714069301291620017889940993959375531580663781914496913375045396883925520309361902723559301113584788211114667603566562938250088660814819567627305808086087410592506517715515946387574531788257541370218089021505595573343066053637617610071855057722498021211363328704952987426335377096535984122889878882937095107701511813437472319890868846712427527263373169925088409405467759722309596955351866567156906314034491472765011449489834305968969165684263228189756787028961493303652153309859524808063440954948459272100707682756021292228232508854273124059033506917970784797429271101461283304954422507772497273993042368335690962991414934229159688859246614726699855718012940668664842993779382034635122041000685719154175563268910367280441973066427597929009552225929364539023142544677705185614466533863920213021043318483281732243838836099330902090011594205741729539340135822307232865506721186876688178653749743484110901723174147793734706125039348379359452151520089316908010708729532358648722675490522298582078136945399015521219417412694358911206983047121146966044908327209750779972682313515243329933873744978341648201336440088879244151048169372384034261498628745924716324733508210445573614084420852334388011389905628234688668917531612671334686342754640590234483122764149908287490128651642310912585497335206535507581955425581052900304850737429387690352868877309759648742488425983300926734912996427439324694308701001625909731826501948412856205939414456779603551836770927615986234562558718672743527274505401139883568172661886741291823950512217522118612627087341525233936256561570275641804471763125159575401779899177430011933263002698833715238583823356078138902478039946517910061525419239112217164428672683049307523687657249652863133083442986299133490274056503402977353978981343927570864565649225427187633048270023967360539007386318350406272096111759193401509070754639893484688725427974249382448773216812482263531970342178284845479106801268171835789481163897016955192159800311334622034394364465990158848046107900252534935292913664999872100370361637796328026888791511136536773726398836789312114490173096864026967595104193519089070153220017370107681895549933312560450013995819715746457852278746370782013607600147510945236760257126630007975685985863672615775205020245585058574481885702228708208735496250757805720200941058658086657322106562942832541187071481219772487561931646376322815403667306601641190066182099445957364330582241447736060600508314541452419083943492418098052304348262996550760848288244458755337096968015327622029617707824738879650031902887286046250053544048790461599660776494128887495174223949911545037952627618387385921048788631871086756867475552483271878917913868949026197233668362360968105704483996334161252483311265072725842583549162588340252510508107786402997720491061094092856469661956431734805476704471497931721362097735404124358633942908349894670568693753844187890702169121967153068847247167482861375644072486193496011771677318213945704301707035198517849429013842753387903911020012669063767779172602228408589983932955141494035610464505773606845572129420132123903833876595884184236844613662685566661690259878300905393899177398627528742849662252070370766157037888918657465026552281467726940197859804219321220742888977890361159210092867972147277536997014459862725841307054551014531282297700950088122029555850775903950891753067626151060359289033146886991781369913971532298959264662345852559382604921560555260127682058447673105366451977112902185599581944643446743787142433992853950855340968660320730959575122130781347878359270407113795951850593847129369940377814725993402307418201725791466929403320673190927423507834688159243902016008331163062586428014324062218385114168586318688013006383217340793248600579087132514853348735142622990642829698879068923696711260269569963720522955292356630727404175788368416395346179117392844069354644884424249525226414446790041924367928117772938457111361958941134111284178051158891608262141373945869960304221656152063528263467316905844878210796459216124371293834264560845407821795261070970904901020172996840020749057202057612967868458029845749336433791570576047844668387633728994952499001244733029394447872367045826104230989991683457242957343097845148317461255044971282733186361999478233440605889994113218149315309176634228086178583895935504283234216424563578490005550243948171075825102985982478167107284269868941954385370211540927862481591177169905851416256140767196582728804536990750894041606791228593110429225304975312927770942628549640080890760001892929273063669122484998970755197297838950214155024858688724300107675873067208442235769012488168889467189378427716819005996109540642201635114953707850436130206982960796714245020486169630256216756957190084608723280333770038628198280752907053146369055243592160931145549061706274184938013448068101173638485422604586215656935197625262257888413799590265694812785878374518225314005629460657534809918471324791395905087812424193685922995612138025845492559495050959898044426826109544769394791252886061747779812866077102197287961771670210600881655114528377293091983056761434446992618739239867259727485089030097567893098133410849413494577384850305528866881390171302348540422105665465843399108654917338440179881439164059602014326379376084331922835207829583034025560991234062983269219759503474035089929569871019531714424961427792046455687030193557210233588020106989471227210551473959113418828775242300391432554272875130736942361779278111598235999719284704398283317264548167225552598867548618635518089486117217128613502289138572915589062124155972719285902215328381936139061489211454089292148715145346161947658051236374943440726373076800756144587950515028427303090560583603040008352831773747228585349837568528200014596475357199898844011753987616810705785829781493135618937457257326985867802000906828487296248694650463186797066029838761721812869736660398682017596847317912690839094476708575308917317378713968286644889734779694550304606362304501057278450937451506664350741117737848258958171200776266243199167371564508651452038175507335693242740895645743865282336610986759149593439229366005604688825484229018176325382104706539489808866860198666801040140416776967183734271383968523366445687661464244223424607234829211901035361960601868373159583989762279825416548586912406721450821104784068931648362400726410945579620496026519760451466504033357569084428060794771936322676290886484875392963477964984636607192710472307157418357817689347010928013919384819644865142681636293000416022592034783001320393303422136733618668993820141446941306284553614371673323283573895020489703255805714690201734236643137067417461792855165973128748963472638408555477188829706552814611061672415082472106460950637928761838921873888868403084408114916360588239469716196444146280096661346007681144948840019029572096912458278148591901378240270559307912681663423932521856124859570514171929892384404170853652716396667516577438838177731420948284500260291591810792080777024973165030197793272156937878345230719071404572974028037074978083785300322578129222719343427370586595991903465403173430731781815067445070007229088285362587650248119659355834638125378562098975477196959278760305954762113893389610837579061662905717075308738522544922944714897357598884652390680296448890874529717517744859721469598954220237550951199388892035835263714413382706353965777910114780817729488501597199273134320385860561861761748340344710333539489979892403422898862223002845433482745514028839209369209578731915278900052847465726845311637846444741614835926812801317465443589657370031458579433602619402756027809680364698473970869410624718763257095229991971215646712437809775279447082530805439564209194535643919623709185583496959248901944274301036975866453920828381697977127300614178380525147843720175798748278565410364640913789036266530388477750169532866408956575385646848217910923417455318966664439214052970022003696177216100196485571030604975471447202626765976723374718163339512081628109789516423984947410976392223865838855393873410308320273113404515291934960304932301249797623636205063652518055501933337531556449853789622268107844258103609227163585191683781160733203801795775838650202180783913854231741498706307986112753482906095030120306959835595656014527028561331495843323579634554384271148899252653651927991059189032677273842516076969184619012442764258891239186537843326275154764695797455453274017391851043622224915876676274584156931003471321081847313395650344920103095140766108540876837420404481888772555967537900219270909432141953510017043816530933155822443070476021851491422570280289121481090846607071166181750510079249602726725832386987799438462148358295232402586351011955598913408505794248309023453688013165569430344797091363554582933999443903266289200780112773141345418292007944517822009336582929653279588037637889132139938716981445225388597750709835444638182988817555183905107719791273685155600113483337319107136583721485361773439159267940516248612925564615540365591307732844215996158151411582023920688907218648153477823210579507363837173558078645440496012146021811717236299788028436895818824652843675027677244734352543053959439278542709912514630113502978393649199830561812895688760322597392095914711311227052189787014940284537077188023475046493055391067966761502267276955472551871608115363925115408624741039461873869679960400229499239447902984635720606269772431421924746280593308992089932336336407026329912683847929493408346949064295736016948941984536116786192802906563626861093529008169705959239427836684216234948720481786688252330722561942677533927821044928351039272544826847580235383587104953973992735555867497417718332531503972753750412896142347659189799522897104111203770384522610333376989416372117844065766210893419156756260429212391888269770721250806927287936880363766143733602598320473556092418263261908370888531537076223681982319552892444090973064299741038160412892678947225793133122703662028317477936616873946846321471754002392528803931745873383683901046646982827350779510952862549857659576614572385025856628045868509121467859878361151982565634010319708828484136460751552848183809999442876458295907329557416368385745565155608169130083559150804659361855537696538490966189500080972860484144397049543730997935636179300645883963994994115896895340797791534776683225793148392735094130697352236205808041716565414580003924847440687491360352141874530044989983431718295514874708723022209138596686916677161420222154939029801590395179179116005579966502992067562580647875618788783778671992866943750932594083484183461972476081355238665697495370708362952029760881107819607706382209468882578430498141184362089452586676408263850832505417848754072903367342601295285585935783070857722040088299209026672711260317641186958096352611085418519849539599482461254222673981404565345333459940669447448426849066665142837276100015516445712456496727712116110211821087765466772148696357844702523112968970290451508369035396204299511040895796966687702403430598584867181586238301481622111969742422754588259984194124615936502430660702914274335272017003216990677587683488057625532501960065515871017364539724241266558112334485145045462878050650406753154350016946673721189573168466044941652539213461738518969255381169757882455888384088603788177479067956230255647240570055238417175103391424769549789649089775810177192539691878048733651706158950794668357440308835907579528617781433182396219991822495080027896953095523105924453047361206141126548466833606686335326053608101662962272947208622772587937857674152758626856296452222452179174070656569886470098675292015076848933732102026531077274009007551086651500102256675662387089576980442919711037635310357261477061105275949846718185009366391067003268208031575056741602991234426079490978787193983903091482036326677546110901861693918256426485815460329616597042927607016498554013813735128634327035628603109254247844482716044190704144090316060675106868116315931535029447400671597813816656888501869254889189799880394420487438192141149766433991419844055523571493663987047163596516804873269420877788109776970320399957611479056111691238520746027890344097035207974460953241141836099289204502840455267646199789313367632879685829070096873956388402588428259957448769617201271019013916698852157759397924413555384598810027767851006033528664859416003960300416616172264679726348822027682731067710784543274257736095877704726615927866057737667538965879463121646259902365448421448479703557150840837624012482645622457120839575190201485680293478816362487104237839641794313199059191251164903207294140609077981474141974839299256790798794084665940028480525124048619183353859277234926029075601873720180754581578064645676577838280537727443477240818441545606986144654718420409756526814247127220892710085108359821686321407266395158602515491074895386040257026426268655357731298087141149467355135918914104389911807878288278489910867784038804638056207086319533856005645426296654769884306595158876732810837441129354710802833489297028670423514612944767314164779596940952329924176737923409903443907225500283006197799512578088777533153221751575234490481594424850245495240460989846653242586267559722090125320250421248696222526261798575341084548278250449154629184570307678782640743755080342705039241436651293997402378726686305289252870411272269238825155891540216832750495618903571412784927714298782645032906038052166620836484461725663022996346546417136452178906345359158357176308700019377447429022572922744648132839972085140521555588234064271544290614790624255626588877302107695062491736994854303450689431303284242927237806236492084046109652424813434331434127396700534912543607208000183697135595327365703563299777974942535076717910325492927486649687897853596500644813475878982430986709270305847265938742357869366067194314310535245242807990694332615690766092014700488896007439744762584457081107645309480529398298326658979933791541054348875225635049511732498702042529141463146103104572569815551713202076261902631996498071333618726351711529264632536899471511627114941978092695720710158516707910072991651918894017072149901409010870109772399241297877328426379997168133007679909157527239215664026606553728166594077995210330140153092931891931086489788106851891981303756198215862225644519036549006513572754308351654864912697415047130836695535798935687959823957439131279093993522297474267752025738725714691041335956633782261618240173097166795014295511873416695535595157415999792307206245216291056987900844321501291725691536604812709287030082930917874305299137640364350902660853772806346760035779740910529981511503962878046074871900098476747119881204052386592636941012212051370975486224956208112398773205028849986749219882016130266581117814019006057668791617366860623295176891858672870138661341435444386727255044014305157793926471451285875399692344261399160347464982815333381400906675962508214358820885466886484695139575292874412306949851360937740332680524065017610479411420271926151303123607156096557928007138939594657401202990652034649994299207413021105143128532359513436595418386660489788093410707589495753911777368320194040950433703131297908121607775486698076381538047988402032680376416171559131844144855622296156096383510181639025865896632029492688841551045135130462187235733368219488074892485251304129693669469743539429304966257738077632650545963575108471571462225473403519297962047795161318423428611755557337312459428755033784872416510871260901979956255977707426379400663289910995792089225417516471462191993580135153031133029312931289618614000619016497444804370240289667855540818417279210116405688997558596587596127101585452375910249065956191164131115199147193366985541158214884486830849159076837151040876937551186312490358073574847369700168234333472633098701411016826540062367900204475332692526925776080759496402466030777196527050918725364574017945657536590390235579622725000454455928495986331342421899464903110829690664869625464324672495774760938627364797084026759057753614769796112005686844291983059373621623917126520652312274786130446664183825877628414480462045587051497883026132444353572735336926788136396962598884346144997788853161774623625225214157514449732292326348157403395594056182233729772263049774736127171525344183627501585690467840168501188746516995042865049475403607324992000263890418783478133280713326641109636011095034892679226465129811746898821371865072635911559712933064771979491191148670270249436246967300713580053580226194234926495574146458885506717299394508475251914206232877999408904620175682000896278038834682557827969269285539282088643988801755580873606533935642694754209374490272676086749584881395226837890757619013897326361608530750548398830717750093576804969594823541209511996139119237342069947379594575517393800818444678567163123361309453796158214187019451521862884785347453478944357877407385517724958660466238712858470512303123697453893830732520421267516087324773886787432084829487978258206920422631146993123442188223582726594424801370591753472713156571173610110507270514839565027652203660644141142368206723853810102779480714504914816174588223395695720088616869818159203045239062736274564683373629727233049791406291346924627777663283399713797334785879089556472315392855300560908813689643782766091443360101146062722990119257606862518964544052312243377062693307759700786425362362937853569094612983758252746463145819599289150519481197834730729681724985422341702554801240137306857098130269743901376707378735563300992624970327719584879464859952029425256114544842615993237726991311125810160136228157669335921555309598303067692771229158557764001152954871222419289942727868152353957175165767558838418977899047127618820647329772075261762443908400904171314464101398402362145651327065619665916212570601012890739445269095463408466868339439146753437882603752441919194119527292516079519359217957214472572552878834187464261600959901232241991308967854277917167916882901752288983557801804893394381976021275351229459587859987627589020473678096297803897888632707023817688702573138501673781396746471258271910717960472100211811393483420868465583116035868002484832827729120277860712370507274312462733786743149673321553042156747733819404971284223275399805430612004455259427345671947140551328571111356515606533701676743218163566766882736811509662600420191127820647692447785584740171057554158864717496322250390414296423916926639068741049157039583221939110177924586228443571121646684892763237272696027859773512012018645920233285047749571620282194437122716508633618872745532178704491590538641049483461359473636329295021589898465144234666755056327704086285380806355978833015900376738278425850593627483887552610043237093124460475526877261036704214792284604477232105913548511054326048508752457714164820883913868351544414429117582488602784078682909438539355512985896423130388879892000170121342934573515058884688667928935674382428531665125745906473361831358558627827960415782515131019072536481304929199189876819382881475238400189468677661747472215303590370557514226373833051881417766933958212348715904370221262162629161060606550496493145662255845275483514074619616264423621668828408277044897074643478730426174303437071374856337471133298593331278185330373415709769560380095489408875599331916854302733295477391866225983642799062259086507256885163884805009135948760143044581228489220889015714602829120648274589196053281039474595229382546323075075389124626712182609669836012961932675541728734663854090112550768193181068941081734069357680884248992352924565366689527036402185378258966573532693178514790699380794398081611447372554718916229077616269901086230289434908919794081596875341119644930213941276932476129759610100689310307255997870803029473722151357108687441257366653793121482546336392390962106803676761086128812465326197143825672114595736587541492126403658536069054052519952776357814572171857773110883683745949537112748165690593434245344130776122334553894017223722938272927326344343920970006677894144671031726813757638125581932989445541541294737310726546403970321884392109048569211711438960040136127706330031712845827896897977132778788129857392098065233826409829353600335818349784423065395599736819465167334952518918573421750012709575801025439410745160861843034375318273306397267086779056253261541746287606047884787015804893070755626498548226595774299775497204700606591246017994368693686642698346170465272792719639461030455394225995681521236243811956053333130028822312885796472687344431737920518330010432750711353149720691794502123305519816269642899689031554581867778559530839027789908537233378712000866936037899197925596235165966025526327566628169001428614704086617818856212730465544858096714253619885837632758257161393392376814173927295371848369315539952407746641460314601191776579955013945464758163648221837216600878767503972037870127370472573956890942985831190435203139146120501224375628309555268344824913440902665019235006165175950292475194641379436978352757836766523132768769505305171769305511223588855182423224310878164502505177257548401825169779175658365636518244157302795316350201906944857951218092660197183378463764241102749926969344086909440454173118191851493734841686221160370129430753060003489061619850368326001444124415877348623627595842439201792798508436942056624382101188358731170348714773070203149696802193678675808442450628431414239077268742174674475124573868523033323357373148445699178833333225620606317257325029088740216215632082972270097651265760128880503625615332541977139790090779534116339691063907811785717516645227710321258629245622067239169549870960148367606312532036960308123711743194828470705567101558654130906890395885643602818230021988049529004001189615201979969573155693611636696113374960196762696725298004602960040316675177018704462547638900112142112473993034557942957766493926160103773237730711124637455791588714592575229289254940384701972104634707211503541783707244139121160265960045817985926072031026175713826448368793294589134013018024883790925149067553232425394138020139734283368578393615282333073299486658399177810692893954122115629851636422922085554832512354971243839967090972950466748576713243378494381921947368542835188023677148398631977797403355968238389516080269818575069412913601984357671803204690151682641237622654433026175737213378722697164961276107332239974817097139148471374326348883935101629778704801556903879539961506995579122544760583164547820739924301611453928131528541257873043757526656857302327103015785330603616995569633223498092952704045502748540738541861590226422736916779542921617739666522931098879661014870900804828983938817546961056814682347831980962711039604913696632648017866741383091450040539339408183349931944501268614690005909655288675929829873714583942701767603591011314083746875980997411516514020813236266815877288748659886023659864775868397221755294772282341212318082170092027679214030347713859716447384745656113495226981964953249223406020489498922611742635464488882867409529316493947512867988980803652841637017288094567244503035824220596773781903470972949525292168175389623415778113682923319422798338448393431102920364769517900158049769289065194450288424898156207179005807887662195076467614241203531300211356548208641076048360451065449889888574158308666614663254781940531420213875130074593043279741642852662732516310519032553837459602672702779356383580091033442483431398563643556481628106758694381652074828143845794556804029045275597190786592162523707684105273095526617819789451025299114335499732878005508752771431212719662686417620176191031176032884985987774652059424458999295047566111192157667889521574947568462967170001303430254019097884451984178866234625604891618049049152220060891932647352802576345041050268863195481277184807709679178458271062769515488329843931638164104142614475552186990049734550870840341224513795103903857834751709510921766530383473783354448117639420133343925598175922734976130411785796227485137541351973851192374335359997007275726279099796182824207367113576034253395409887676104104888590352492649804804867565325690379286358093472401785570415409472974363654180799531936836973763468089539474731073144618435200854657497127980607898778845040171150965309375281315586979846970593924653866775535535946484148757076921854376003730770115297750252213624806509787896189038057980103217771109036777671723645127372281830507361258530785866670515967976587208871218086684088837903484498571803436804400035966621684513431317108278908578564895699721428011980577738266650489275020021621249044642081055334172442987733948792161979400417393645218658056761790926816953749105478101883840535715808940073482738343294866344615950744893873015604172822430189323117328901016571099004701629832506683983698157567747672909149084592477419556961902192800070970428228415139906594384683934846429544719496437785390098832807572717397461375195626157269976232732173859486818316017650835705812895305298971640162167541224898062057568351143486160883985190259893317503490526594541750277241454907426237781768013927150373485013544919817905593955567718594167245370523566498484165789900106151693038084128393639255099578315296627977005489759186851598909273882941655159381103976165820064084369335228564289448661122165205333539603100477223308665388403947496971843834024471083251788396276336887350823257966102669715501381735714406481463753920363756276337699800245114486567065270307882015550239915049970920530418455592342209432793135656457236817427849524204205949737521639067304106211714056132225232595425121455905039895960954097162641551630475536503389610788884958743186273111501727222958274767290442052160554943421578702580259246101296703930763804842176079174252702861075360360580061463001320623043054995904451830169378409816579388766817291712465267886180827267133254045995684329171167257877632620553804937592296539431397399376379056070590933691679855819315197661409114167254144240116338918640820171229074568241138144483550404524840045062679838197878014011157915984411560453997103573607238227999358099106134256930799995025090909286742411812740442191356502940788446862499896201781970199414098516128999366795690261991009950886804434885927562733312111784131425262641777213645698540876907174100162521942935125890398543133879537398266067903890149769809416851640307627085570952321977785065540445386950866538514557047871295457847782702685501326915725705008342051936542776576536458419611649925756329776463092216840079740395536431192978709109389965523872478795589951085140933611439304618723975132501696906500640409818475658372545449526093445684101023206290895764595920439488796787493443472075605567750341327198102444060299025899910263509774690039168155825781664743046962396098007456800447631323490569244244049684398235532186470286173926476190719118444021574620057759232216619569666181535326155037226468842666215897204058972731903958246490975331690958440620491980145104904084143692595344630000098449654123031808957350649625849525003126008374735046286446987962695128952029009468104114636817685838648784271853522018948739337588487488388455321587840373969333336034632844087284434577744761369185845030793895109492859589379661631963540365781079802636204836012846031148222648084293636035430025252583501126321640489183436736349022238088068595886659685764887078834369708888753199408547375571876657661432697901292619901000768502823120696590391537140086636861985237274581183539121295045281773279431402347739655636106346274024011004977486099743680025345009661094158720624172452901064072599811025161479063300926743668074290591709564195325855289488564458994125531978937338340468390942160709450900473160307061495226845252241894051445014700497482320273850176550969978777469523496598630515664338110650057073544114805651807699242083572685817376813223075325465129562022562345552688932989452469808900980646899227505508860846478272794486359224713735259575225114394686349109265842578678724756152949557056252420238213282835817291376326120649161817848957792182146857926445866484568093446140724262000777460282193159415534806302874381631380014733787450001245110177052782312778580815903033405313172862401290106455789686564257457389545035674816553275153058762661663355916392368428216493177623623239156859579952199767977208073950495695554410156163875886006434487284365407511141700751801147917157194604814377043586990708308767050820105351665521508279603151112997043504773543595236511120707555182643244839066954509387436017166362304106634511110245821968973340028010592191124868257543876354720669499239967140232910498875052712580292455670749888106964217725220468352925999639519974521649470897412093711028430427204221459990170276113589290866089069630131694139803426425389911209779610196878057519825123341662427486238429164545425090806228050460615105679421747106603972219188709361388608658077173874829416896882492024174100145665527158317875415094289956550278469517125632723854290372587025615896208063260732971211925985619522093902754643571897523039014157446660597326811730010973862264748706702405495754064071619545410887267691441725120018427385765401542302456953050090411908532186290561430262283854700894556069779621571123077307806899751338147385660288743981354265431148938371631208524256535786470340970687171495850317346123144169730795749519408298935821658384661196188485749021402139314486878590201121524986413003420621187230008420694164748570608079708015586426644618070361000995892484508415640815745828458288588670041596237456354515176268167069356528863454070053247532518674435153766065134896307076980320658933613472879698733264307108473721034034490215472702961166852531721665264950951028484057111380744074804324165486200388741123803660249966280434215021284021163902951416633601191514466187603542250173769313462551608164065102274484379571121384158675512739783988942208869410805162547636667187179429811227056839026367581804673481718826604963365404441541630440334800886636524763790604201423165560029168704989951706816909555188038058890203382065406563135455354630398259230434622719700172634242290481603082975508681460776857496983530833410428644871634488912938356297329403317917730663781362144753624891595751498448636500072035379015138577236154711435246884226356205914312262280233705445280737398283555699999548259927973194950826673469974162984860734417905030386494873080981919881519675816251377695616233272694859571660277042306233918075952827215674965307742885376087356903142256608324776217104288988981699538745757259711263023673261426780381613985843085478701818559958964486709064751643686994053107794447734472094723545696753405051792944532556299340222049512892367181480176662692369519503329117659776129783653431890228332069742459921636324404333754358391208431797825147403183046855448470148600359903568662616298140826300868213296774059203383668727679580276313754647597658191538302479715212073457175423196076294332220251380570743257060524221175796310348570067363442532076827254209402830186981675591617598218707143750246753163214778858489263655160717325282473263948195465430926257070010319953498687466570949458556962291132156791372359681458956096980546744257617091540492166464914456638943391500229844160906969871396955003213620092401664105962886191101011271261338614991992454239799814165371723178057619380043711627995491845042066730829789643641625354196487033994344881356408351809246882090512370642394984715188462973677666606849276412970552694840110125789697336739820455257766187013608034036736430924827678436753489510807079246011794061056137328027097777824577590218280548531501322482144546430433112150660218013425299224628428911373492964702075633312192489139413021304178296436985404541290405876733419522353240686815205505754223831447134185346982101331345719768095745901685525349899963695763591894956859121159105656416926400879387159271800612397396886722743548189724185467903724116925602047254547617773482454792248795976119490147610068596540594727258549473829901304171917010201908904342205364962291931611594899776507909057345251540779608830612761782598867803981912530670581892325765771865666831322470524216203670517130339880128594764372219164839367595450768291496589033334883724222947926840073467654924715591186438064873498430556103829183707364226833263528324169910099385259841468923098034096633644962301862501168612910619178764096223173827491888496150234277545467939932067423478491460360876214817978135835091427109647021569448254171006173854298000709097346319819029297744465002544973721838039430973774933725443086984503138694554327972571655943957322294466707026298063484566239699754222940378592652470126485838952088633466002471757907437909756039661474787758008678038715025570368773538095926254258145126293513788542133549457870073105520353535673869024785084375373437901701481679765706351718993683202182672808264471073504261940209209156846138958629094405050753690834813144267072473539782347269976153952784725169596637434403236488758838739103389567094311792246040844882669238643576139338858486392104900774997143523371815051603465796099916233380886995298729536420440979004463549728272116856564154895352500838926791132656805388029543401100215222461894884297660473995614113136512125286191444131373734842402877638949922106396990214019922268143798236451922717404228593166145111471878787596374165022874514660432723484235289965390947886028365914176522001201118686965231881884767618863778220573350354443878411444110208792274231445971196516553326248435558213365901293347716072134386163355367580280684705766173956991463286725994558348461300879240447439445880696894494841776016020432347037508521353108052334854534304458899665602554284525433189530790468022129976634366860987511514524143347237239427735274696132044297529313244007666624478986369811448799903216867225273789205808767750878943711818516058063204860153318281449082507231141406660576319875429867887556437311095030924963320061554776783027349381922506075895432428997802865775848641029993071488340387674878303870279960873910787578432894026855266706836304088708178394194002823038311930396167111144314606194406748293530165370814634048863791231688097575772657837293959594175676970802564990682145894692226137248110313037753695739316314895362228136476951344011253781817892774510468401909881035778282519846463675984610824080262108933651960541606432517696452353877248558700961575482123955237053584528692275712177822663938363156129849737405880858685962484503896816543455034235353393907535080855169192816935248904287928307135341796685806922176505243185281184483765692224118509820725406342851320100082937033923349252925411384747097644694752117592436697432916121774778279875385272425036894784423848500073586037660355291579591130656993386482956934299602336229445779484078523393452182647940836727984655326788527086426659893432919371372306528882702034269064109731819163533678289101495782865734203213222731147419859594413342598821537976553213115466750768680718535886071902658499452723981359556327507571391174172695592944890290613647268170938297809281363592753638974572440232475053023726843836126837174931423408014316590261232685022004660890275544204500678468705484673178250096667315802239277776939301445984922942076609700717367038202710640065902839156339526219235941525293081299819465099732921811953371493665768707956353836964634159968330647638394860420678323546102021424842217438991353750565506786296650568160900673627713817762581618513498517471191460548142213957709616204072979865717722874172942300941437863809570132788161518649934949824920974182918535724037145417583954638897014251542180843539789617756523123507890636306736113394410570113057841091751063495680648410620623285452843099507066924617755507339349620414476900228103836891830058696713582807518710645955926134084093417866823135964419631260623165748378786898534887104881892299087052866611308696645289653230959565996896916724217236501685192470279506231743801151732082570667540421290492834012962276850437173506645045188901124069887905155262215738243382475800368717398289278462712140426641817527968535230659251469235855168383689352577402845222278322303724361619108522165823378404018849164718251768214027523374288262868726807197659311961508094859078131912188545987835620168897995491395357745792962486573648032980933801067545881966564094612720685871603779293091430264490100172336606672861690788344288327724133192188772954317904937650024931493557167976329643685072304146714144073881591632561122057857706388437006567007411251035964899721698665265579677848057545165075128354050038744236703022932900289475808069089402273044021470113127043927308843626351780512314841144382175402128345770488780355467121875106840137979951073930936612725388053119329914358078484051201298718621155540656351766330376546399879491283300044078214563078032911332096283893044159271881977198300035207400773010580612526249349769985091409649255094753200223702698202000285647225485702002529779611644798693956049784585887042826830901066472277503213533051272582221686626554208465977689384132578149141586956154714592066726984527046733918245104909706837173521261496865021186087075575419034030642014520682537103739948426823384002212386014423845023922836361578282243956769384673492214964986557458193630817242388652689815549061626266470608227696741616654193125730820259431599303258191088356154743111939161798252457920087929248623647754840764052491581032493936237331164717089156483643774268426971289144043005726316037619394628741452975254821013115934767071837193205476476247767109592202407063596290936204087452817494265759412984762592592684211566116471349912188563080724616081589857208418957954127010086827611906587210664571983425398742979613797174455686948785731905608039439290662498842353398479035697374080641691844751395349983432822678975908761765145330700213485210106764548137291751982800174329611471311966726443099611788632044114864243886657926662345519345120112404946954789367044075991582529908555381221986925973463377733069994053231307397272022606161339082307151508823538830113537361478481079707944090442059344892483241656735265917619269098195259179844775502526333669200429059625376001559335221589199960721517526079094362663763975386388340699376043093877775351463486206413419543565068231045333280045299796984123210969538601289449462464403096780872273083548806276968939858665041298499197051606952552255161568320391296339008093827372603120757288101557606223915767214084570575201377444175895530632260694270317261325386951086066827427695174673538668189481853888474672742888003044605021431079249018060657744259526599493609221994836304235188712324847790118411796807697372821708664730400525565658868296987844467353334461217553896228573210400644782972042152973309975499968945191908416928434768695775305301627242203385148911100658695346805813520293356646965814957515661841760337184875849224631658634839062209091883751512993953363528208260553834863564939025325838987043222475469021555860764565127203826878463870025063694949032296491652326399259744058448033025405249563416877790871391161553834120199111145245567961200001571535295332845388529554443231432437206722494322588756266849004855313365424055776612320051516928251365209227993885435075943988512884238066225219248413993651583419127272349485121676021067536377371064935771987159046331710179957367528019850138594707402428328584503025122849316255518247333697238055615018559312051989337097043821547845889825490229719358387789027516835734141459270984658143862078945797490492662287965040865356025803852655541018851143128281254579298164723083717022580651321113955454039568613409516872912217938999235597951642654118322545249527473467966759949006114441624824788334862464677932200541372438231408100859548867646127722675082108304342664288188188540489419712653620226955639522734139354671155796391580724444698050953909671914467785129828637212959989475738694313224586612039592968179220333834585567982592884938636048976040285186446896909261571180395304229306712658784034692859960503846293755730500720046715397320456938995820409427365844517871887108920662746979355877598240460979460129931267585777710503712190846585327615884386484937056959896065785212734125358647456597535598408773588741306351852889550513871908240486247213489777693497232587791353638519049803152389508902931934671273580482834247950973692038509646723085898000754876493177813366919652175439314162654968386223720940689963474407440363261753382075334873262543783413326219724552094017746431342294513247421796360598856358523651481337294927179948246946941834584487472220194938079171580625702084265954907852400463661878732637245344131035010359771671389829733100407996004869690294865384698178979968908513739766871338840941795766153317947515960046739507057112082807973393615900053735814905418097282805084129170363063323545073652140183148043718729425783421930501006098616014599885057418545617600137257737223707131063041785359336456589588383214003149764281276005557903551018114563568369527651530575478098477825496328978631112487440397041704250041482591253980901657225795165571647113253227736698348043695054366009368316222738120777073037230656426614773133709809277524954999218890967736385870338177452825253024287066032581614430528434812685032667656944198915932996106309976263566226237615398461138589117654657644726890555605043186310115757349698600169162882429266210564968425293080078113769917141966010691840809084514906898212649454463196853004404078993263230697875350808196853946048076722472515170391407383607299826661687711687322978505732182650827266419002447097112930705788334684915146721143239155363335302350104439581833240607585782544856887239745346152114820894467035077955030515436553020275839412023069733425000918749134463168369706048632538752420381810187532496967873790607290413329308441728394917321128908928661858830410828606907717271725754610472760163760195691635359889691986203629949057215331119961737240935857751252217587223254348099085230436457564698161908705146676824684694090695129040488661054073486157626811628885701963519171191560600210455987937233727527053310226647116002684048020487069355684051159654434224575198766403819936530639884032180333144343263653931688556304404839746071881394869302514821856997804314347045479001306845549354960082706675551808627462226700312342539787290880124978540077341683196656631123440189124299811677327716286352575557419172949198032124178382005856276964126734933099728882306336167968188141873523342085241469298068638455617807505144187637435910169797654553467218781231744845635119157856555353974932462462138824338521241724372799779225872228540224253358709082650846758699759939906901297007053417976992854087631971552685580992091341815611779422750869723092685309643793089596106382232092573061561630437119453053006753165003832234288359633852589461771026629747506027621628127924054666725347341202704147061085681089809964907639698665249418980555332140616226307246261153235682903884567829851355452219820948088624911678597307382430557402587576969285327069975224804631686982622965884746788445419273531917320513929705930824959566575043781519483914540435409306896179428310465302443097524400506631526756236512430445233534824602699760651518166710750031530240904583449774972562243341446621237400433835884558738635990824080524662351572997290875616634256697635031164103771559477412180917298568977649829852797231354405527212637096477845928946855706662366340409218758173597375949378700314175720301562526935861197535066691550700067412109374125866929577766028163989373804617204445283219260784877909334845955826967989757712307221170606727617954982053629520693624230119282798337381553186790897451773211084296998846541642904366208920113226880574082930864216410787712482611991478419603053638041009522226613181978387505274756736778548746864256831332464152610362225720503870289401672872709105384863309334633748710261028651839482173354719459797503914389132364309767153271516106770180569761611993867890117290151216191872225387432528359835142956354238919681849413891456742449125989510209383861915789128098162782361961727258841851065919476972584606846085612532857139825508042267505761482495067148467653778305850429959418287334065010838712312963436462387532114615130389504157289552920466142529070871749413981619283866879017451698078724399658558661504170907318782795731131073048688994809018652613358029831335874389662082289944148978852085838581078489599782490549209289427777875617904977292621292207408146843619837049410602964156568333018517161969039675726605479594662210624328462749583701116017890794627878430854351504600352436805401027661137293507799890221760652461591547667606588968772338398796081194551605323677318312491420246464268153533746202507286183715853016561606407492940982196920205362963065618831969679333574006243723327042105642587356392520164086020250491133760387922699975852031486956133463636871210292534426198568319232583473726856107226624827304034546324876614764332134314683705828306623514416665185295331868752171553138055895113125827979373787467825771368339807878418631239430559121203826575174452269729918923186935204369167475406423313764289110973936258243228904035434226286710429165480043793954263325656585113647466081763249691611631856637886075584535260465863734566744470585749754341728839994066572163699080690715350685611839156387684514752650373095988273588807617517463819780086857968572205652639103647392426733913859168947365783847717917513757938784788659591460923339864844564356695084379974054141932001573700050823525080575136634402782128125251446557918807384199079688131295167109381083972804285748221002590494143003569460400326357219796658819135118075390974941167967177903381366131129331010161759871250323429044008801135378060339509830430780038714138549327669636615074015617887892859999273365549151704540348417333841842965351893681979378641746616818917669040571674571368502225902792840331221444317714318193287402191389645784283821816594221962118215149795871372610168980099620594437109903794923407782540774382518800737908847312260718791459682127831345835628686796019382842488703492984953360970472913142906316477410080172425853796971518763167782704496827776819013393189964972117227471644059075118313446188126428699284963637664951898030506984721806749300815324400139882644458069144692153751056261841573844267029551220771223266624384976091971303179295448241300004771678322269641613266657508535834986972841328755491459313993311486091135653158513173137782232236560616729042604009644106675077747211833327975967478704158516193189789487945358815909411274531380822634915577791734974383778193249672752191757831677035360975262982645703867791069164673701796706506092220512646453847297190139237121260158081978783955656129609850643511010508487363043705550261650760763659781147266702805231224030801159650894675692412979466219900645781133291007024463009442273099284827447718200565245369007476627082641447844270174523362092921778959451375476595756145120585474492535263788869553263828752227091974638428079480862939233814071031321749024067713988205879475412329226883410245589765331224706764453063862691791400295843188021341219481638460989262541025251805759092870003237860703563618048258621626565835396487957760054071515158534184498213448411396228405845537348476289375996748560591709941065601677607957253627154315751066490720209354079167138645975828019719697989590088199559190954496632600978784384283682290410053068338689132848016600987030120247710421707717318730081007205116158968404123184872251869391234760167803202290681003010675883829584172392562100984121534419295347522301757388471270954112526378755446287768071896162319889045887471791273610582234963264309066927151706842770247350218447078065828384428386995357970804249085294494020666543117687683388866107047169171021201944833150063601159011721803658378631060927501462072582573419960386631002489875161433343610172038301840218566104236893351467838645391230404591288889486703591710957439582626881080498426391442515198505744808033180954307805000311629848332755889115917117004575596014157741180252737311778018336136737439182171589603437502131588892010157222897292067136314224025458130744128965869328227227605390548572471447618649059417184701482880938204262635946057128648302089248624833779720479287494187504092960778729142532309481857526618026830144985527075737781012618027427932788886112729870590478587973380208430794552039777923974066313781685614978905580443967604486469043063608144188709557723952940972175732139843547452655994113674999377990437242795302458935884269229185711578519361993398196583125918856594409125279688630256748499788001292449236157658257974837438802950464711571137239506402412432056462047284037754309484005203224297382384387908245632632224279781445272562578039321204372738595226531339774098472593444518686896852773033274927372775194218484333365811663455685630604519524954524157308268374143207206440383454036639167609214977816824456021186279173496593923465470393757116370501860450594123165096513638796792854792405506418772123128946541662306373786176679503426404414069707772377175275882769926328271777777294990837996696507636934538665886891645354178407188418530148224460620584798992023780154313098766781936549522774242773481697916438850837896606467018739803075086517280762830095023764952926167697001826275118386509328018076174026084147720896210452315076453360606944474463978101463562463537222924337607283569639036456319328755899828592967236979928804509733386552152829322911257917155043957762336673981615244590476055196092255069452584677191626830809619499584951522613473778000164032121604809565226512670706454529991704938444370396876677393863294879122185022620368000344207785794021057186681610738558664747068210945006663993458056846868453502150013999361975939291796763857095044043652911269342178669482834951431298787304859938085146945715380704298824345569919541363606797736560302468774423130008218497590631458761025184476253339232839431123505977665401942271835878231999039815963255452377430597430922985494533949937532412126218787883555599122429338403231934189610000118170893477930347034358940737587465231455889485459478693536951756751541598133883542161299386140440368927344614195225296318662055498045611699492162613750187602910053207342909852324337719925934625995967204287482194886269726893904792666517169614042695992276428713968383313246405709801562411805474695737687127934633198618839806135651159212610357864542535036826648199292050013845962451849588408707784279065632100328519256072093368306122260260179346646323366579609304389725469833777360056270394269162003430382275855374957624479583733588453285291559531665361878555805830562227964874726672053172781175710005873441909885464906732383582301911495873065230873144339467179736084002645158931205820726815555930457434167924396982509479649744518199273770960918790968341049957505901960901678998632227513442786972943276788373471638421494491645550649863285683806368461436221704130201402225805145619531265780495953678362239096809916447128211770797839118245212022465502698316293513050487833011383052395408765576510739801521800418766681187452618101672917887677122454556353058204640675408888298315465791240946022437390639885442080963295542433930332212302359697331691219661751528185741361124504591681705497805424168946840747135542378168927043615358217788965565761481602652166001013863298878517608910837684744465778302977332273850667570980136660720237602382476235302197684048525890512811128559446353574227966473468680208565372375429976799330119302454519487944303439553765987753024808646278514384968869750665206206800231137941405557205955700165669970697116883122640348242739650743667171837333363982521121963094475453719563597969153730325674707236329427349091528754809729046538461547260481329675589046435424562114943786151774692556626250794738320543520276321771158759478468773581690768916512250227455545992016012119490679552746047125322510706437919733197679009158557104965006053878294276097277332002281202195294749334667087714839304430119842638147762256339266932892970241330192096462353786424904129861470919402053843362820177639694356637267141226113482480087106079646169421542518348271064819532205398601457476406786445799000768266942140230810068254054411356517144959489479122161455030979450760018543531756445688450746267006743410490457864178210287329869719579897633315900434443054390771297460856714408778054359523814024360615030314014366516393157254500451498255575547670329635481513909188981422302791811481952423861911876660627807880229591269973032837219355760711754437792244234653795741977719359129404887256702046831219746180525550806751023062526510136139873329743835496545304633492689674546628996594906170864038351967838824105201003371985785999354339615221396242717274557229815922734170434283154486789529261516205951190324756710809646259629999782575075058583218049130246637076925069827295270695447225054342046490007784357001310698601319273577888872512337482695845569446707298372776546224371083243735724262518859466185871773629718360139041123005983472730092493493690592026404146881452251661283862549734682385513873166809933101770457444922773490194005421539170362857645149624921656177690715648583288708967025601924624695320402877733377826694023175393406641342713757078038605406873427507656307397839941481317616463333162021346736479183156824552511179657531903973416519804314301584510645368113046663938228266508736178292653953517347378280537783302662863536968886932725405763543803772639006144966955615614608181386772658801510560998368968329476484317837030517319667691658415899232812421281138537515313609758062163467908804398288073152752581132982958902403762041380726671365832762061604665879066760754939222173963421955303113887799710841417203096378944922474968074299398017803521339089162910673465493901969652512672823622374015271702199161314793566420147965589129725975870602785837492651483490885345844385792674444426107266266104591407311114460841600112368038668068745573836785285896729179973953503451357555226913274894641359586080560998306058600816405107914199099102476797310963840227350028565462510418740351766953726932059829246679698316650601210344561865694306879714464675151344595398604842746449091321198459797108647709294024666988677877118625125524140171753204719509630928599565516621650192876844968238747842401187926133811111705765398318624488259671945317229679277697588278070032080609739768664225981523403682400015085510633737156479386727626803740682575632032487294669728239938824572746715514707097414838769823393039775416517044118363010783166888253581923998651214870694328995686093250893463178571983718208137648196249326270206145595793887908187891907244085774733919397802752034440794127485670094509162994314118677872355704408015149751439849496997065501629249962696064759421034301059357761003707503439780080640696989914615173166468177088010704645358202259083232337254725099436867135057044527229646960009055887728800164605866113111868385423129291364153044901712693430670311509174641692981998952091849154459709051423169319643143529079817713372894300109045379307706881147478875785062285175972070457888041086275473189012190630304412925129515694417742688001779329192242815577659872431614545112472807194760686358366749607715055432813202827075501479175351199824562914177590632166862046436509885221815616572118435065645641945420635039008282029893575989251121402993903882509184805451304160511433116440167459357923616842758867865911175136193704473112533388804626051791101624510772779323840587350498354426834826084546071898043598543144989395098243720002995376827047396669737528172324348324832326108206517602867242032842258943781533557065373989424925192431027509096720582647969661901783252550046757604501258813961494546043997069144067148772938885526425373835600787617855155768567997423349199041293383413493539998852500139472410113478356065225876031238037493514498426509838311037828917580023380339712681416394046832716889226879230185640525399743578741765441071603949978764629926280882436337618682583428828660515544038860437180587763515852477112580155410550617618144956877244779063710199009158565984059610020787268130054150982110196220191415761611121914521580332361986041707227930044311163590303698995315087726577603192900489508658452373290897872603050533267654413357776567931467002484628572697458506414641394240918820968451763215957220258206145754218133627805704343967683434800433067994199366281377354573860468628769810526443894136141961764355106919029253173964350823835455378631618539937962807487259503918779042679894603127837692058042506652179929496237583574611523757601640969391030590313933160085124389887541771849484041019862427955283897439194316962927033309605960887365340624482719935441003316168758872425108007654993688541468527819036968557972215149745952859302603972447049912837861700240752964010294422044226567290742769750902511883123042222967555638807729105039276386861087114367526787682153814479904562214598042779150855718838379286880817936948127176752324894613422107387846309458486394204025344138639495176223622515030229066049530001952273213610520876598451363589718799579631706899051365548015698881737228324094380449369927287620474718476814875715533811911766397318809798279068071785033476438544372528460150781888868724601763919661849850331871903098110569633314582807275598662866723113330856234073677973813652442257612403367264161409817308126451292437932131816186387458658112081391847104109856806706565985781889274962649978465121944199927046967855632781895645449034413006823042292398358555721627135762966070124835286612755993021518877796415511800775040549145548147832713972818643790925887173547276560401933231566132603831220938318793809939312986617968542967420467502082375022591100330803391144876488913764750727461856354603554516183734446419653557021932456882658848995846401448649627746721542250163530474400999625622901587140854388057142449879978366481538031549401073813771317224736319707067469888729178189314863372671369671895326071188451314782463894318354155687617934987389993967661141864076618675659605444625675309221467928498732173274729310533692845195890060937140615199984273605312598680423862942033794511522464803712458338730249841985915019314872431327001679718243710962901489361738371274637547670630893104713901849147807286415904611159816376425571785223659832132913212489998478911571493304103614080732101260724163654843505675063534861106592264196871124675703980521212288937746463472021387117467986429605809628664505344535997490430424790721442620909420638917782183579981780975266491960205204549096661419909568873535036292494114997790559752544407430715195256196919109571229317505692123883232558342107486863454562281895841880665239340228947734368498499424941200215502572310023515694188901283962120150124355356447076365520551147983419978102915575678167385520397708572205275764385962986436657116751635746689187444216367274791046279845151766616858128644798124027703991557032731613090430785915934857947830419381529287825815260903247103850311474880289374596769110602046039372035432641511414361056321414248288234706668107920865344630579378368731950092763096694536683298528702651461778065502784201468223104785841226014272274521867719877395730540628856236677131475000192216509251061862677183900752478259060479307475643400391805374599061550394632728510369260961530336621690798673382209267417183227714761399380841396445288216759602859371826956489842770719279945571941480177879865586047603260586608539883629787055602481390633741221119617716653145998974445418292953742754973138886645303895988587912084132532571307877851990025897587730096122566169448457967873032932541666171093342122646163740008670677610854006691302070167027465713291783028402944119089431483154454253274458293295131652140758697506601208477604026745765194655145954403665569618133327899801221423576373028223819371764787185833353122945547223460069401547362261370730902590103164672651786808813843206441015468029719814099848522322775619773880281146187993349602676590333730854959740756245590543757805562278622229998366242019475191412166196183405532507499410597646590791489120622412121000991294325783713227294486771436951662129880361291831546744458329537261468602857789746675087136750676928344328312731321171165575774048286646651289599511408652629703038804448333201358259674097595513803201375528733914776783749272223625862751581356980244479565818447909500209203104290585372480642642456748702978709065032201185936058235775232467377900175190489460038928302920865857513740489691597828432029279826677479549270690721066693689177972076450452675701572018468975880308339148502462461058877101855350464308597146157649827214163444426942975882371871071719276978810257933440525947860851175315159960514385883525870563386983149305077488274799243871905054690041812728293009820023339576637189267778377292487461342232615922050961396293101144189847997444133479081489703348446035219515305247835654254708496021715086359882693017832347270334193106844961745887907385573610116292121318889464386653282713316457016343264633596910720622754922490850597537612666709428337080979856283211849519964206718253749909386749083689090083772859718832237865037469027764723467091877021053180827550469836963967100968689835547180488143224510712559945869221505817989535770638859880890068909236722469868117236087721131769116119392862758052893304922937953298326493194947232780795625667062278903147588025868796249625208611780516456069230135251314773827213192920776916656740126346591720498583408383838286511513589831594423969804183060740599393231811588579771858278852349528845477143980991371233194299112387844973827792429784284708553404135911649703717760738702119741146019876277286452483017980408105432386402952665228977463290576600927506870008123619138931867118121504990696750532030920970892649428549122169854273942130619871504981419621135007748712073682188587704949658797031005649948620658631761607358168824396366337256775971589621666133565559651783951958594074784478867466442081093021116163454448971802820879044803665979280550306925806375049324568888069696793915675144530902580877281559105920811998886449056284480627841344062739155401296156700526992984387862798175102994118926125641223609242732127817523903972413795264780832113959635776999814358281916616232994563529589550664584453814867834631500762102536889324118017599686996623353929218638724840143683856562674317124597781531659781668870055663822012950005586842165702453563605099652838565143836637475320601801901966804627326496899626570897791487265473143642080527807213385160666987692564772278372550032175177117840728526862860280071671600882538944884137246068398755882245520318423980233324338128121176791467091824236358850363291745383555914636233029376120964772257250383189282967226657761375546702042651391287356106380124172662348911860031912281849684007835253609566016092304568981969575269413200071939275544801674858419822255220131520814477334761363325270333239458780289052117307656406104936327567440359786059519188283211518864622796456018618970053722295635555829860450978465567573580175089057100525413319887957253244792159728397518988615695997321525024677409496311493025364764087502764908865815636629255059629824166266951062334164669146905504632487513670907982730176170756767773200574382929138540628578439590018521362288478528584473348625391635840385034190745355784835210671236434451367884689043939413008904565454393283652849263166591428679471121342962746611849644519472826336247347457427750107101482181420899267041125619979170426216673139241389132111642311828181286050818951044583789361443209356657191174299883756731064588290410977560033604909642015562523304822102315924542267635382314194565378923265276340102059091770008133272323802833248468559253335352763945354200686617000660551526706446975756674975480439267909533236754912985747355241795494062064788806191726726375795154318497615512709499048465359622332861079190459616266633651300005266074245953829237713099504190402592841823100711001446650814131444761900343217147625138192277045656526612216392052287164386148177419892018508968993735520595597768463115169158095535687415598187434463362722199922106278425332202203206246194096653958523439447110855922677912979029938598106748227239406116538997021456920308946712987292877059668188663721883203842420064910142381010364191486443906785977677951137797691247584984686209899284914376534947462288458626757116443653572295008147899780809815537448645214450563520380888711096599318467788958428309848716899950562089531580668067095982080141260624080059676320153176421155587125507136945974405373651725579371752070876117583708853150525034432104102384449615994104974100185451622301002917185129918497891199091880408115975611911951063100728477777503228657688148722387618985777809105709459625881114651157729292141762365832137012442254109891907274829237559297947496331714053998027691443474371770115222905550611246754119668482032194984980980514147485990217351022373952411299107776572817764663311849702665734198184932686850564006218364165027120629399464195402843220422770271018349469748286491538612380748937499706283683848052246569953189880277216781214168266177429929122246626136957028000984848065180045748370081718055395578984372066184382729817738684084191544800516127356740029848985601619174329568335357789713535367837596198898431754690166304736085428734016192138554284119719682266626994522466801207778179694596513386078908712766392854742279035744507396777082165189294864795571122995606980932861213413561386225199016144005346499218745277943974029990032114843513549421189307415716392295469965793923373307795361227903082908515218374906647328788912817864107026623617277732105955751527447113787938691794016083588840076061935778648275991604116309616785105276807831310883317642724211192691106801615606731826162561424569406124700108192713173567398158690444294155192484906442151300628613979317283621785755640996873858917139545322531416326664510521102146644204200728927970231327628529371288772290795052607106795918920354746835962249468000515627928220902754213751020595850518556058907718172592990381274636683585534226830170339621684749009548613105000008316256239804033468275265269847454097939384939143544875083444357514873686396599238907252917476625131377623795162676142965238017562231930422812369049108619832395696631804947526767730963900836797557075954437003943825789213424778415277311196865950375694261495081722908111134186008442233774064354104195408810924198917219379878238744563226815708470865380756847455085093976940159623632761338830083429090842522937291254995353651954839812574371064833471000555632408050924101559276956814877865411135325732121474662064585321312562094147570328615388218831567436135034167667174631209482236597452666312552598679749081493564767421230012505135937254525015487301550540827917451510568501738691045875511701800101528544578958121427014131183916874164566523542905896207759320451645554215607880559526981408756266495303867323618441808460080447361901229443819511422119011493110691297934967815923947811163657720995442321935558038005306035483104926561727416460395440910192463214888853789442755830138681184938186609942210167442530866196536034149136388518410338710453164635537992717436485026251376551922777662841541388136586831623574764307264724950554659708802132894058942769774568622798591221645719982818989056144294504375607690527108652985461424594798241493485446131480883328756036965263836661453365836122771860870418328993109195344926688103294447751375868437068501225758661466358768957357315343324647578249565337271133271906358189176295680260507370277370741113368497498063112955338042553505702764074001792090798877342480859752843670648512933998410079169223684215593211352015633605239131781847684041066462457881094652131899186852983912638868950437212880464111691500036066038513579154232677002824229084078082228980581860286185342976263554072093831885910730832868434219345422007670764474181353553991936607083285069749186268877215145234532247755753464489222035411971862694030845092694783005156120585575236849763361931954345565101609736623856112594373720039942761025494371255438181000748147480991391866968400604218995093798296905415228189499322589780720622028417182913148312116881976039150618421311591765584254360919218095902577791192388030940021761905081280385714768877371410417895892012193583814547617259507309758470994626449264920408392984393893458108846575094503524264655218974033409816852063102111752060555880989291980123662543460443923600958256543729505525089406720543100587588250644429151556477752815046113999943021006325718249940952602784129288563856936598438881144360110190233791882711096486218230664386851895822500445686145577946377977092155134016611240067617409862132815544307014873942439981617838508717307595677694400162039093414751567450400650854752797615542140439709618823685548452663702415579898503531913641672875003924474720112679861975672583513190125850746135447963208847438456169000484989091346169731980470168364398852127212783668385715196668752429126696685694080765096350959171597735666976501454190968258972884309031500300753684289848407975044322560832858670778344111976799895345007235702827160342609675732965960180723495228162024287112350086616636197240410576650787958524622402261428075186712995407156962670081779001777910591593713511551215509321268352136162822735496093115130132816245871903291066267153028797936912601625161779104164317122580198245819111810660534972714766678808481817932411283550037865947295967967968345384835392375849347385124157560307826537364444197599853478214278471207936835470850743917041203482895078235119881226162432919641185310700896868497702482382530003828333680766764592561504468233879621982361099586347617318937386618032470188026682088189844239446781255551888379268041896616844280013194259753970658667099138540788014575787198156629955082568610039361633689849129071314145151693085674273436961661477686017822703254252706022757346904307623634817859805149055363049287150017314861228798587409424335093585954361670722203126350891630788149911026227000935080724118560296244825006761324920848112948182933300269358482924991110844147303398671456288471136837588137337992188078542885088767419416543528998093000401171133415454580806641124199112115506659112308032936324020411892389509292674646605909782837591182618065835073416746268420054732807153431893621688435405846821134400189422039020072277078692896098029557158537362786930355291651238096847905160085861833076001815286471352343698759681780592615178271028284533271226704063758715885956238721340759150996734618804802375924137306947882243516109641020374328617897650288263525853125248973911033553649401914037150737698165715208589363810218187279959833256716755574387174300269385097725542038275756706228962547673554763080134663585696068376964562130116382139984338417836585641022786399640852030801711438609327502387475739474020014538150394579124366158600014752279750086675448553788213573612537699282946358485096357896297338097657900906296685295548731870544011409902299485466241678457338640559433261962168257398922729974343309088595150417239930926237701467552638515176978718020473634930597404149248746377016587942949860950533401860477879601669338870779173129457513881904445176821004327204340675145182778518801445417019888050608925516399997505473772116286405704419368662988830097686634707700652051519346167031807324938324186137370542217366795955652221511742353372171767075253862178444606738007512426432364778348213475594730235623800729437695983287989113653012635674994979454514564616032352648173143310621658019474818450358976328384783620628170863833304636524307487655491780001257643734181308077000286048148895287631891816208075096260130673734257374448969315713568005234894994444979849737980547197332440558194512014879392577308441895149002677559353610739765409386864176092275086480666076931245911558950061142048240686434871360435806188757429845360978438583308530327226602257448122930002242688412264267396584553588344987110402437574294558306339456970006371756907591175045201825951430847048265459759712028097824621968996214776651366105545286067231162453192850871176698383390001596160566131571926122403931561046670010251187356325848039865774370428962373262552646613943083578667609639311259714475575298424831219812841833068960150356396072086162948298525261662517241448192014638791912739287557104725646550927109592799058410053688513586886524651699572235487433194067135188878387738938785106195622658692939843491992389192168609181945262038099048931311838493854393007981068505467354853396978147196947592989258483753134472625639163463184922831013661187813072572872536977539167072762823163865186834211077532935204730702367486313402471209815926571579400835340541370020585010062188879257633358151108453211653942728837781779104952130245832118812947674640107069846871923365037796101347051199447565052834334955738665418580602962906084579801026758852367783606824121090943385812901442834126038479448448833195619923594825830870066655130722485326252512155194227895876408926462042660590315144100249015295385973013093604206757698308202200694470390216142518923448582090058948512347399173391906796083285955247484867665098093058021353970272594938223785475495086727744242600810198232855608515292640419057663087792185932675196691673140629237099085075473828706500163366058283003566067163591145144143566123925163052086433510367840080279204023753649981456850241715926323936311219343995857142614536005548650721810483818998066200300949221592194448111615389920058730134744230119707087476807437745535919847962655803802748043517783454491107253631737935480800991743641144813408205106398572627885450850333219053830808613206509750817905828339143043679156024040591881842096632747432337491721843274785904809967817912361456126395332051630929031207984465513429398029533011757852205513194295328680195444922203695172754959710265142629129288787890166083316463453483016849766967550791490706244279337802424944461019979239474571016673359013694837587250144740569789486559547924906362949515689939680742421885164091237412006744687052767182856279871420436402825669103932228414604524827439693410182263444077383607439350377829376862903789994238262271046979731202027072740329917978286250944020120777553919111895362666944168445626069115212023055192647480455355676003395601249874350235077988053673794281783205582230942355949684335769511901020834440128876771495478589604827192732279311856401105826251420514548612003760526985802693671532790254357168961941906130515219826605768461889452423790285504783483089854353583430305940755490114951120646185112275391034193780101326987119390602275834096264259956324704818984460060836312664067581414858082594172970515583162961310790454089622703188855410015989093201961540944487936284434825380225633208152289083366047026298248175037818970737506169136189141837774444681524918344977697796854088097605655469108395006910880522155472909077380967228505750424719103010248633213613723335545774528124314574013035096774471069739780539530559911479873886658054135526184492685884631871612358371953592263347420194443687674670298923699775291681654854159841980355329191728707353618120230457799290374004393111421315901608241126652056204096436067132396866924466935779090802059806670868882592212489487330755918922753588607198894556681764433335980406223175621655052870177937245151882620092023337920636971550838511701892589847191024674747534378511843907694257543260513854921154747283728946093064043129931198901959134848379202290980158234675910448019054261937045694280089349794125091646444853249494860034179937517111149020180032728480414799965078707530835554484101718847231001892519740231073908137715319817050885301645853190974826921411540722001886152366291393985415002697874293560751880197440329738911000338631520166477936927859569427804921177402039170332970536658871315578130143552909832320189821894244883425564995961153453165816945168292521821981036799286366607852295681225154282251766672260452412308969158125489312579147966541854535455195694436838818673032983475508471827477318639005075841885210909486924238386247071708521497060618515285132263503966505902465027903186197063179865082950683727970783569922479812132439307650748660988275953968577495354510782426980141135657566373234989600355895523612433199823359005865869512232204925950013804524068486212521809573825251195125966939046415338988768082416953932367043160258502270310645334553364198485286089773112744444836262567652535020919418429485026715754427898304223956378288396679807169763047445607226043945972392130587287874316489481360810491256934435698668145621413959084481131143067738918644842747298138327669198210096330518433233055044529509171400269084582142399692405155820166885951610638395539814802344453253548900320872786849989547856839549618083425261638062622987009920832173914654777176548102404976926360977110502708110667332898776720325693287172079429106612383272696489117146522815221277703494786170187604207530484748051669460250921644014846289722072696239621958901215135355157521164466401834468760420058770134580230818427790866230583642835378042677267234306383734960757739440624333507304470468824247324662228323595990870921789635158505420021280061646281971244339708044562031308179781767388256376479558504104952829153934425500528236521108359998569802633933885064741704107332356836222698509488107143637176726903090648873466097428016170338249066583073561656514979127113008142919254741327735479180531544826642451733021170820825351945127663002368794495701017320318140243732808719574999991748714216715904677275346127006068926868008682437851156590890222286457199773609366523319697054534984752942767782265839135893616951264984696085047838985719600168183595124847224499360241122556240806158006547293712493247209875581377542050002876299541595659581917870784853199094163172502550595179523876187319306098598636159169230872323918129336542652760679525224507466442390708140305475814340238728455387257685930087183236626372170390930199301991170377170714958596650159151307864363670692788802156245924227110725544583959938267705875359583727712432477973109401622758649202907627358234013321762059337842314005236569234992087233252640937345170591505406763728045503447203779067561305837050609353042302511099533043310120467762627971459709115491835339948850868506447946245874078194417362414131140973736011285347550284347102447095573348206188467012721829536998594546157362157476932460615379363771998450214472313471089668841080941807147693280289297026348152745394851248598477760048004912743037895224590835201603222238092873033395169258224490920460238109570030922962463870763541458563002603229128608681993849406560266583722693942380858837033776615166768948360050268325756798696541540208646517359243092691644145738597084622078244928173946773350190738461318036811379541565712862548363838974686973936796018836041060804958717389179599302794124244607201877281830309395296953581407685592871757965823674208088672126509318928012511003964710197669170985690155596558134910694566050977804270434369113277917340549440332340919747158677222962722474804301777875683915220901536753878293924942982793937923409846358040865728142392423420414903169248665787519573516224091027515498260417105304270442830503312574630611637254527357206492326508943184947267203017371825860625244799654359865942631667087817155963946804160944041045173693209324917420312038246549021268572968208824512545030360680203045020890162707776646010260610169488015973305450301103907028592012810404708058943529633838904552684668676403199110591238633243652601594425032673521429354986121318549162269397897545301598108781023049412298176493170550765755341174783268215476175174244164207016871504417864967942874839797709612419551177933458303343559381824279153576415050813714631318388955852790282995236513391653796224361607118934660145298044739280984206574333114855796057802711415183117618012592461813735709985588181679130212649737777530234850107925050629761066033250889493136616067569934741334594423677700535957791608275953144972637832727206568695477986365127779663855785677347797076343016863686174734648420592010479051043028038366641865400546671975421080682981023347219331731046668203021855145636526066077969406049155483255951951957665614543236165462205410030895318345842950730616456588053048336982344782275421474871552125644490668399705601781287122054174217113743273911516775403343430652254132136593243332862489414699859267867597135104791658384899399216588785323434713637373893499558306497208951345734511759872839446166392271928890215621437166991472950910587291995867325339697925240214602111195851099681054761280668613424130312135960150579932509624138143591358040502362112123920073105370588354500247303111868070779705920534921741810638761077717172903754437097532305681890670701730269106584712642905154836687155801585888099675133230758074032597780961081602284603163039327867464007425599599257644965833325941402830622288955805107420735589882259139578340985062077269570364207799860090260059651260156668083576413394958227799980307683011131091455908527141210663434089941161629148889340323503751976727251774677584847383149883740123834066625453301414160023910110784660373420560790924321507335995344137939283884887939522133583899360326403520247833857155600446935659685076340753925393721522146456016958935863626466322396999564143772882615698980344146072428098263020733676129300623843393724670573691909293310240470216306669703391705889365410979121710171598243395140238825328825814251701539233673342995341014897274575046349969824672214947319388553163243255679775116745552062508741196488763519727582764967133313601127543830128701209697456873385114644796067289769475020538528974522645658774213975231277503740014499880568929037058925800259542681446596411580281315247226223202793246664098593836706595144734049051246733592949387620844362915906018375514436573869421280900759116817115286382395244642065137373529651865626082383618217117594149270496410394637706911796208162693537865934141659334348939348041185199533556283972742075887423555130453652445339756499375793881091671029654138906072188902021260765928844706943811288807560173070436039168722467867067682478216983321824223501894485788688999214615675438039092067183551956488527293172540813432379315923798452512096395984110925267018116634600270567391331168933546269763526910917717174117420194154895083238081956129642710351057091306334670121013109655858452769404238850432327215538821513506315497976023126776138657035151380940048030751278795064250912321276459869878353827177345152226538008363645906272198128586878384608666336295571341620945413738475170653133853995481989472919655416138598933041910759844806080320264733026192883023588730601366196222857418939338218382892424048277930878471272330246711993273508311719868992556208898598147608774724745673886248887985809017509279033880535830232159500759281425044053309961388058280024856767268649612181935729428091475145916867169290580644394354279295022430490440442045007590508599676496871941941207346242881586863099282041467590796303821661152955317523533184174471853608494940021427492261447214575245463658056124940140831980406487687616141746902893729020413036541075021591344291442835815851118895510412972969913950375138210345806826108462611222788975420071860895103812673141056719674614512587706264084558202262350584545329635874014871295040802871943558957813171248207140342591829219234981422408030896038822038355758775536316481522758495032873820107332660002856401330261170877107329303319101039730473171241413066669193948623839019493085836082967209716963411534052052303552747329019962919786038442045718669948211860115870073676257479634733393638303036485455517794824842886008235985694193081075277660973565210044377698585517804517519006989602580987438953896272037126710396086547553471812483962106027719697253187166943995284113351381678445399085570559441236285646453740438156889820611836469693575649327146360852194833274636818957727078236625352618884338603289462443626603193081807915961055919792332352098924625286873288387648127278842436959048973214634200332093528440169727633018791454543542768704207880773251467930725379655450449033353563024087316465655854528294803476838985384526087701933996380597251098820105340532588949812642046729421264676010790710350756894428426205925258379124817605502945172499052847969728365107060953749117534954223150926599599877911792322472073698099430371063243447228065415571607023068037505196854817655236250581686841887403360693887651065009512972115559766015567668403045998553485925150298943109934198542201622123359030780368068249582198046032964667366885702604618546901095059028212525505933211429883225839879386072236292925537215845446386755116887834825672349670439633873362739021647152954750019984966010445844743229948329734222841382884922530061176919963407561339809757484863844762254332569691573757093674654342725030522797243896984891428307654379069789863753656531432440553800155151703755085668026234798468439125622520458131375404835740470991719491337291635856554920077608344288260740448039631530770067088366035744342472366215002217656487103920819944278386768137110083808727365985513411724650595908402102264104500907374710202181603631656419206233660230210621000764850723722101447607045513556604184239920577158117936419514673045246282860915985081334931421539259278639449077455536296783960451777921741525269314481216512086452115055917918348227880308704147172044581385523281288553453684116696815243209841289066941777753887664095723211886473124588106275028594002169838454032862391177232824783383853152293296558829357519726842352080168873582672673574057928345042881601914432691959644749593590745112049267480867869458940772034871853473773863711510094302506363733526156620862520897498496010905622434933786923899993762004954399233792396025689484596607016004430626667383081305779183721519683894321265395727415458491166591835358510328798060007450104848969242240385355842632692072356335107539787315042722148745516710592993871761528647841683508901764619135156430502999142238303608798105682688418082535586281434524502751635319748497899202674033276706761513891152126043092178405901740937639675513398283744627518563415629299139157673314502748192756273929590416961072272184360852497720396794444910338015362994681801685946553697652512905578687510200978788371558304218395571330970414841358748928254824877870753720237401209226087142519677891880359519464467171339103182454587929007870330562478131867993990430392137344971163369757109344498768940381493536029237132424762169925034529437954915973606254596328365205713413792838048504488165178199127838779533442080323750466464186879542610379378202863815356147282504158570602077511759426871668205443632086306559450354839286787318378577630278901951607572754156577994153617723936569456441325086287230840040639187467280368832814104245811278692586430893019153775517678520684535042133415551913492760146650248137244160780519925965015762752454342699030579022027278116331633272485055169846383957914979481030619439724375214267993935701728252791127656778869718321115033581648862145581029063785897084548174785382853659543745263545360611777906780116757989877592399117224842741962005112109753709153505590409234822410636381402699155402857282306208272502279979720887265659442964917652831097505219157296376804836692099837266711037547129364661585368958255605795304607470092115378437465920736772387506556407891047804454951284908434206313696662227238369947785919880236220506220529466091162740550113335500961684092356952773243613682791769199838968602893022538546424744886967409443362745503944221804316564935208264942407846267990460201852603640318061165610066231312449347251037686496668235994807230600547416594962883936120798466159817817872017096871620502203475509925033570470293188236882496330012026326609237544978677126709277314930035279381437149676658064505261818638730779239419579409505163011397096463621337012515565100718719883349056992104307862070771432731667323292570937622797073885479865343922111379414325559268199298495120107396872971789718174498244616269236672753770417323809998826135677757077344092608783300916940040506430763855523288032280316025338774970899983408618925684226630380975452609481844848786295193810265521882859786560974723708438742939337498980792932982122655539783664926106819479184398358276539890353798410382665678662708926249069358285483204220263322207657990833916728102008398775887223044424682989945246109648337610868019975741770385236931356204444188191052411873739843718476439534270476901162997735965296857173768849300090498924443790349319019099871532444008956012097361093948831386323789880378143712960174166510716818775065240681466951226205152681604025432014508830133751711450909602335325573868667348715408520723711532882611169394459682793038218415001350932651676615803230242986008416909252753672791954823824270991583159693977494561264608186479973734028733905909668448532210160461832624724139691701201525059265686192242723495208969542309084152278629222084651694382190535607934156205634162903001590350404206544235588504608979757754582590627521228840198414983239707790175478516027682392980870384416215567245779249134864017098819997846637173881154512097829377690955496578347989528359292711752184967199110039564411648668784711664924898788536555218388804382570709132247938761036053225367629006247371729947436616660231157901611845314905850828107979301313859176555869158112004676787694726857471945992145874520396166859443205699933378559507836719385208757495942413466475516946503034808686561774242955684134222923890843678313665915676789389747480069046280177684016162314923389862098430487377143503698984509949813264943828837330568366465832567115423909311234187974227024482262933733270311619093859358544806530619723582337510700569571673153906622361445421824858235218074604297112222248810840934512102024864177980631621907511646958722185230772446394547597114673731470802253083145324532539430554663194287466229907798267270136364618487010337323732905469341820591343748430787560459218046511399700496281837513369263701693374966537674954988258353160531267117656416772023975778169756437779919547625513320486061628072393176313054221686810440865717455705362892896074657985150345879115952270837584103483883008577002280923351368890947476124611083738898276590711219473380410997457529409745036915798805746369535222546435065859323440094662123082188094521131840961265466162556432563909417899982654659344729186463603462050813361105936841004686641028113083949492486881213852162192426774273974890117791914512202822356474031420320153135990755374643827222438855074435020209134138636229047331170774920119371535024207372582203263248562543041752834054572481683012993365179737524908492387232839463179308617762600425216742155519778462110036888403140906189438875465424831009818035426322209295642079036819473589813923380982783246091225801322304074758432451705898830507897373010335525161326463976965893132432622847035261079638466697731367757405039706294812031393239214181533295986071734332818832473216500719538605934126173498509843798032350909872293173427079161911094076039128581585486664622591017791525351475743691273581989733769166487074066981183287260111535785281226297156041746578002009914352757262095053504657154562741929855698194202084986942792456911920660368296431814902692734192831109640567307069483310223403367678544731436598171033225990437663894473397970235947664392900365277017436738448897359995479504315301979991734807736327676635104556499820663111869380962305274001639844468405986376611620034674761566722527694109318702896736017156167110462430109902719620282669684118969493148563954584962166471775590907938214304484293519638249388850773783717203294902017361188305591035385820390070798971813056294231081520396097555741572016506095055735508770237292467806409098203855197908619720441887710889945131159538699938304612375625904701811708139594565812125301461443640808831039114491927812735382656226302594854537410810501892673311574597859760558645868466615559761164275054132115670525470648281445438936925091523027283109147758818867734911006732649535588237335135602581725363901915814416580638558693080832322935948400006529310603016988454148102536874278206039721384760839985076017167685193840791042250925792059719245098484834202635398905839762936396412034502842236995730389236626398088976108824950822369826159874870659927211577595450561181094402459040624611900177062343860169697619538830037817640125071517170601194310933514023040173632102450313998266377626516169838089550484034792906884311939985082430364709000435927021176362983396711708425956328049221973984098200082826485681400250657906583538640867299124726131433241080963949730819239365007180839969568043415552476640928989719371277602723788590979646216744584663713584260948203422192508260087006911651649446385244831799691021936327498367472074296056866032461983819152373172076329486751809210656818109017727928370037198165083799778446655047423703904516927598738050315897984425617005690544049180622584417270590839941715728777770920732314828378279656452093162405415085939100922782374345427233928121291545392404478620223020423844427582355431631373667314465906852916683838277496396667871324983355577585041893460186673939905790911897664432503905001610955180277393428466483735889640598877958518654664851709339438801341104685263284422904279423725582186928567701974775735264220517825604384926133563961321646402638001448730900665937579841052073240814786421205032872559365340765135048731004348464357744673576185518537490915311335583432984954546113798848867928278257710113087136735134352632910912381342139224576820136964181585040957613119873923824547272148213354005858018660605378552892646164891458241755553348071894788001698117094733747159364084446984397692973156389048517309424373471224653429175579835084374597675973535711753994747188791096861571800970857582874579155455837966996402504869389281888758476820579458593870112587223748748908350237509742461871172282063416817930252607330565966305599961687738006935157320860255030342108741469178568165520792522529720363552676720361120867526350081936992978268771637164675459137240340099391131145526574650904348075177839726267901651072947810250728732355659561160088610288786416881471312113702265133668159954052119542412579740205278532489797513780804513093849479718603840240445392608576704736414217758130717509655797815530171699289100728901816291983608579384411838802676849210499160557892360301155517247418067747340867692386122669358604768139475488191375227936900314631998040243896546048041557981211165460921626017921524778288462299687821284703065652028453184877366914365505695190989435996859218936183509135771637379892277247894310968677774659872598993209878608466603495260638204795336454254655663324123017162949848490572887544488274651326935806964692474383076130124886561318665161991696283844983454772170766841562908187060157621179950540270129402468521860507390242163105343987581558462161600878792335270737470842145423166535570020659736610179403460858327697039396221471724369637730002375742110163112966099867580954115502733216502719594737944386537670871423941305458242222352217259549513271416072707418771243746200473308513311963416937011819112168486226413552913368862285321098029445082442410390166413731612524578351849700474930363999086104738604515336948770637665078516883682816659067170034578220349223225694173253714591534646795770236414823644288365413524253760690014407074058515482453048942301383973354636752642188646907889077489508415022915752384016112017543859833020160997168982983974348588920380656600287772223832996425380599186814113948254040738293008994368670898567256996093314649377097597304574967918263731949800992670197922669446084342999383923635763335629418421920611457826852429020320257551188265871718228257072686579939362828154656552180563566069724799568049963705896275072168520217549622359783396991210312457106264585422843020690661544233187115357331866107990544610738710398814305839511405922429116267557264018971077091118971650327651445886598587357447289272566066640096653688163871008174332742903268328873315186371526380334496731683912403496648750768632276136553575114769182799743514060713068377352649038918045247986767065996050531305013927894991563158147285744373064829439779323656882418920284418918631955270402022296088701407282053628258787749399811862198175754974308785936332217917117150772724209100400482662012884874373722454155176007864482899029755243928209164313595505372067266485709132894204896041608218885229461061955786195916978215134873893597355924044166243062749403241684060883218328330295976441551636313560515191184641729106855271993785467574406811802799843393381492508489723982664888114487234095178590198491775165780346284307708418858475872850989760061051720554796499655534839938480378344151416902887127214917695591525934226582966206795467262557288347174854573617940482091816561348198402922509920966219406100669455841257939429494417146421925890697730420269933075129420939575385326734582786360919090276848183255319966554643126694138097328493594723450589910076446907162326849152863523501786964993970109232994680614337311743923830137539812038528857250102957776373143398768375706648213902100861557469280693737461815986910345399510242909032549113266110027496749219302368765972189131782871714245163202421180926725885629391524895513649187017144899323982721055221502407625108537208814405962078305294122755634727025891321945069290461477635091862645807420292015568369363420441196332390158401791101368569693720993920233096188161624795566527957929517586503973955484151075124465949352062219348236957632910861924321915384512269903781308003941668603144516030244546351084348186316978382858056815736105960073002803800168151551251259966216745783034892320415991067297908002771754529564314784604533745033327417548708575040683610107971602226184070554575185612193166683796920982017702702482567663451987321949196394105765226611293953548572920085100341864676385771865908090566587087299339227992840252160892209688098430162743810922022540885705347869863049915639559906670976198718636680384948290050789096332320610257241980895231489661962894045539200940651591239519331206617938625343287564908771931904411417017577081955346180576697669868428354174651822259084848131571540370780552854608265049973782181024500512539273621409517798503006289420408160164787291430519516272944178956534190142694667765719074371769899374426927643674915637741461026909093909181238947457388025739389609174640157968534890714881643645256204270089882506647947461806744006553322883039590778017132804239293987090799586349054521284863494954859630478489450973213123540330655844743676079406495518472372514869357401189386157057192420684739615728611931565640594096166264161835482090245135415246697574146823379605146966283965458940683129290588520670115069927744811625555617747498889691708163752492470191043287949924243600194258144039123265726468881030652292418893345031988069139249599447111330205308491603641525097427630300450594453651527377009888128584041290642061084854268063799991111497675040841760835602409368099421390032725376963201162288399958284168980119556498729759633784557131076560451283166057932898333516142475390115233186725074411740492604758556728829402718328114641067139851062542439788392235356326283599605449392173919259185803553431355319520731456075494038528704362040420405575804030229191739299116499495356569490067134485986225968572129842406444564301958276688724453258900074336925670961956820062900355592173977197262533319848202431468259555794855096541749419201725912227372677458521002690610453823983251837520765096644506294988706743107524311886106904419233632099291143476028496497534787705533861382737002584048014945720060454002450883080885639031000999497062926536738139966711258213661831982965463273428886733240857174729419430276648650217249155698041731329220777166930135956833102535239321372926856801050409655711194506170810359476047827608457088550319162819042100435467200735445956351114907967361606487473356040761276877122954791795813429974015331858640569426786107967194665339962041962173117094698562077841872576388546468654184958497479467205087180406599822096360723266920102932456933357334465032816071095205624643239426860164799267086609039955635518120387571460107757819177229066595318465667550980208061797154683219631911057652951375537707893640733966538822792262905561947128072784778585167000710478475237361267945534615358448280001749636977479725883829526861156561772767364902559255630850779044555308494730422971288920315497795603491459222397455673320826877278729737461549902456379890000632263626933783609966376396417989197667710156417239297631717010563693641065992516512672563552446834440114444880674657330795589664895782290182420780819154528934311702290333351922863452288400062692867376347233864920421076638670876117160489059161939202388043482023929365713681754738254628747997618352967962993012645018335815717316136562582273513243913396227038845261629309410778526765365210174629977918478072309478395316868166897568065162507149819542797939790526365976420571719177579433352898964514466738172774459160840065602902212798117616376897379021035447145218159017110891407985268187352695419370848901516759534288358174017688387463279213125867423902668829816007727521022934541851811993281353219228607918239950422819777290578939434498657708640980561526748839465818248007530831347731323069255752567450555995048055608800331448757304584770702637867645084273470921865764495219609839558670672848163790421714593736048707406794614861628631890838144231441891191868560192314144992970382237875383151675154147580613650423291538719326729386606531645203866800147142086306841394640961299036984495465591748702206901312666294144919187040166465119088312094319704429795695369716472368748182917095847075194313379267802558765250275532243925829128590361907289025202950185415748440568717489420136055273024147160523081127660980206493304374001264050448309608754731842110836497584692724493597182191294391871063634405272884865364505236887998604191838604522440917252623198408607386730838848583966855593272725748540611341616061255661602247388711830971720631587458074993161240425047563851832571299221212995336308559436412794327311281255153814735957738523756771912322668085144099653608539985100456451580538596211938878905737193225563144048498316511027526012180398334989334868814889703447762438961471982277702721524025577696701293224794711583133387728954349439771432905107872308903482581283745574182806645523701062534505521574677552282091791254662098128723941027818026182837802141571996547108716876947991206618526735343348374791316959920844799758804364562003329604780912450007784911478695437263707145209151223657567084363342110428248156836547017647339977081319900883258466887448024973697750794207525848587750319770269575843975275913498244249095760499564841921741008643325991007129631677360408038319312756861136939084483202584918973286108368748972729716538884087136228056742948088744221572132278032179576406508075748843787818236405858158994633999847933399146597482172664050557373340498712550582797238087558704332640063689012154381927557424618465484822284039513592579796229182556499016218897341137905616409685491703620599923932024151643618174983391596970436293412534750631649589790244997902571141614272965530500845391497356548791853666926489301263260219340178242192332880591342277062713086808371286306264551686441327455774546588417396023459575366400543858389167187351057830771763378795173136930180246742267590914644519467137881149249631526760730940274152528232924924160202367379319971726890243818041377065236311238274553862582508722915211024764761681139952735084531476196076736519867416045783029445783835988088432768943056709636526276649063865626422959719023200892530878718325042050310263474902163482050537022389171654263704078643282258528109685837165336929069777331429515711007011154695921317559341129604832782346247157469768701812877931848473433014738147494211908862578442543307601920081558254568660261211177044123158163984608015470750697053307253089749801929088877088258013344193780346454174622253885010257877071446461119829207809778107179890253011794642855454390879601917955536936468436641840375489079214690067321019055651683950869453565486320015607274173921833842315279466583798555661124118959324247985998130293873513854466608597599887539686974322693772451436799937737482566154474182841659464355987468322143336774903378776999545120522136825756453066420724680255725998018886870747858983262601915981644821678789963657552659741782061653157558634973035860893378398419092817621912757528972577515275933852855540220423573248616086997442607551156913505509892233065765112965591439591710518758137848204519364595018601263166669026646433769104158770392551739003191498643185899704052342235384927544244137771346693750020401042961769893591674610565626851276541738313784988387303411506748937379827449409764864428591649942358480255095736858294665559929440964469864410630034743978474658814684295486738879616786404938952824885385366384248930424430391931879915360648551965863808820007220834120143353401664575003679403558577551171303157299589207021297817546231426570649440366695915533734604173657272573783277076678988171261776811349392661581840951664803947255192465126712325900268311860716924170029334756216954169174975423407486567686291395064156393771185446668417441947605525346338034209734375692067638739949906475880151173993781184191792065695797382347833427021553367693050437660594282291311313157248127757867130941445615948733500781168811749771167647984864459816441188504837824757064640633373482060574629435118389173111164318428035696269615673153064857187949094341306928753203331411360359340476165053964731326942174029481079401918778664860143307367272776891463238969707061393518509217619133969909094105456395151647711767127864446997437709079535546861581586497174281764685716816293847089315813163469106836336095172458372106464784020023786163695896298235454549765582812948432498318176690875773290020841875979523714514691006918942477425760355241028765302505543806728689319756046955949945124783704822901075087269612025400366226209805092699738383837209002177155157417160132421819934749909659590480248315444237034996821702570327417050938104231039563312416090619302299889583536488951915321135994035123716522315771859294359182113043508333776689078559165557043060324548221884270003120675334201767147123801116414638087422553876413256033281236625530336227146231789033544306267277901629388964865832309443820811574598625627385526505233033936746578581664407217768545287573749196097697254669709166500226761107445393647452489389541762900915011297273461467910656866580754494619944335533372156263260717910869536277621207722931285731398783165620903019548549409377650020981503486673583250034066636242181829553598380575342491276534220783122192169328031507104429333890498049436001891977020642748157986678562265491034757719886373868533965089640456772882174588818462245500449377434666242135445037444402359867014343336481836503327860553366902849412591480602234692400231887987198779149625666704605384032087249555843919833360455872733262469756230018794288587232709216286160268156877736639827905217894401157317778250354916312297243056020737912380971433680397280897245574145235214982862230657193909246247826263871349414751930433896463135707579053125007732953645778012327828844127560213984754356152895858899124165444814481475788433706526088495022613719800074135278869305413740317319292269422346989170592470326970753130965248590827802670753404107831592067539857466711034158146809646300214894705684038033164894745831138143577403561370908240195851448224136122942989029805655006083479412254521410868580248704134797222513437357061423734775587449816880846043451353414143465463078702495854224140358453032068879260070155623841315706949235094158393077072092790512246133215435740441084026385228041929697903656194068466176597713841076261242754411506634530584781737501702711802347966773304930786135661406699825605845185912133461593029097311336950448361776628572875947652234891998388372111815655274535591080196385858307605791221072689232326530021083763509640229609684337306053774125767315729756158534007044140152231349376890462233840494095033493913510895727543149066456102322827569494201911869979728395115289616435290119798616561544212111464993236259315717092422005828615793181057136136583327908017438580145596796363509470305835858189904022080622763453859736457240120599986923567809885958876363632668915108142965174749413923761509144308553176775128175952983309680850103939040706841616534046404223495222031680287606943127123677780425872983022069013137923958604074684241011078706782595670941836844994849133807359190680945027443657805481423329589538717316949035426855419598040335605135147419362591394345094018612408368864677252406247052284606121231675899035123554146572997505280217330442383945381867249808984651608985574707895913008183931453526246124146377977578861255103636652571432690725946347141931023060420507501978388295384604100969466880414433709690515715608013386941120105400594330836205224080810810976275637862764788893613861307039060089963546506775697357983057077287539320074387951361583398529261778316658281129449545684169631073109804782562168896046451591350506409357352410605677913416396362577728530311086127589897062512073849590217992645489617634902021504573869306424956396800752156322946537015510564590869511558368356788037598986952894833530979956280561875536217577493195095552392664389609083593320486890067000213209484158132219439945169551485027707534339146559090535048310402511950394805690652939359953018469179546472051568977746292502962431909472651343241171545172787226614559440905541944843272318014150122040378250023338230630638346409670332562017930104223958289234409090436907737619269273737715934173681227658773200960753596010743699084797521407882086587055242556108018668592056640353153469988759556437623354919318192338916481235299705789215645321950941431340207089586666821604034836714952747835240511670922370103098924546746226069757353920002638663349667880861961533227276516244753938493654785441325841676082217446054181145451909205145816809705949385754492349089761973924008914339968427320304036309605153804415723583773041255594683558747057950894605723408640626681697657210829091159310310626356604640229747212481705384108313304922468966586920808323868151806321617949434823047915309557910879080678521228890363381589932112486586045456789720850828979363335791481284628495020420866327402880645300437503973510172285244645482963808678864181139356416968318560288433279997365914005807444393458108747621261131021448916277225509350392767626331091399519931946165858381120050663299955472143667836029382611479498238777408545207220510000042258237366448883774878263400516001229533393470544314911600228880166577451361288863896562340921056888765264023149153759968185228355232068077216374543952983305159929644375626771191104766860019791861922865106175859017418770167817065001257217064991809803323846378524343987968898962172867504199863794412579415795954968063476573510612072098511172501303332472884588834000590406248458952215277324565118526005065100426277507796462187110657523015825402170476885365131775391028134525463755384538003872285567048042864764411176350791630554382698270017382897340113072708520394365941853949579112840705959382148533919998304079515632283355321195496061482235099940532774306506194484196252771684275352214448350540596384826925907919933397328168099744022156663170796088247025630227175513697110605718754778125825334205186031599320163149862647178503941122485354043377432578529766865988011662849274189942539888484113120943453459971113218572540920125750911939099896744215120273964149042017665078148617344998271627655310557295950189422430633954062473608753713809960722895997269854104946504267388090462099315613034799272862638591437792331475461020681991744394930547402037552948303895761511533735212806200171517805634636414145888267535751073405919295236608239386306234440122450918924802050102461257071714568279919727687207047777385339385721197300576743013348717059710135746412124790532696040303840022261055728246989989990053130834198227727772172917536714774963683973827705340915498327896746024681512244719522108746993953481171385489665824285303275363720391538432696240486544907779118774826421690719245750487016978693527271090614434846226648670835943818894692549383919352128871223697543824527560694822560455881369229191605442645953175546932618983351703464069942543294489845978001552606819148197966480669440557902362239275539231304340634368829153912623686663285342076477432609095671527479329398729193995308418233510299945692299378102710487522839612670183084546086239206605300768402700505057416514748465289421734867893313876906740244245880245121911098709253475114697579663037150153397174805116538427306923604563499814406570626986689075897490461243907600296709496148441368083770845764926413649845440490152285863363117396335702391946441362427047024467425608634914572812924478153806234008000781758861723058489330131932675542844004563136863630555240415563564927518285749104408416328485647817757725398057745120698773053227898683977301623750712835288920282130242817339404620131305594039952716075876187226315871147152177286223058965548912323386578374824550615774112885059497915042969202157472381766261485754245435388160802050610320826407177103364015389140191341592558298902443111488282514581425986382493069233971727060048074391122967201321417296982807175322581227313951740646077905295611854618466863857903457450342478292049833564411459463661582595085174890898114466524569185160081416108146367889750319310578828048914461780784289463058949388000293661522542777217295974210269309237217878523506915150446115513539884256328179708269014153717127368343718371725123685669974029997097609833891037934258561894187003920983276980754755700768999558476096456935705842150027833110906895356341087744911704465503118970998921327684986143526384618039252739119279188043238532360244347480060110239611487786404955389285413704556121490488150184684322623365728074664560866160920200485057222798253146013293812468024097484616403554329347397878031339653055131099248164818751899090559112244440334918055217029147017643234949947763832230944986729281916112185596125243418002617888504881717659797427451848246745563829167310218628735119568725627168050975741065096465206460909484393822246283865205529135864532742622254971610798323986864960941534224993192766618014374172982259703229708081182251010389320544134516841532833920724817408231502710539950992742506706688213239536792167406338932272199732700793514519071973529735767281386080868612500335339104222248336856215141246966561638969096523810888831727811631848285741055204525205141352723370456948864237269692068687315065716838420182006298779911624094079429390063440730450525359053591501031343287400252260840083273180715603525134002575360615985247204652323920199339511186463761474280008149856620943438722917508960260151862738270509868430069864188724651665279647520009386783156972710621013065380972961952695229890118956529159864572658645259514381956965800598723755181589633214431399152035467800538487791170176495388687496506123573813674428380505460918874946577853428537767044453995540132480493130047429915380571577039085994908072627919483343966176033462158331563945044319463438218377296471003442231002121486252206111176559948154962101958432007884325239139717928122754625106948831806130329237920042509515257027257456519458646240156861202124337910127952384614610690912788345960997513934617787733561901980541904230517455753671455698727535727116569230422574689967561439201250377847151332905824312714262092071965529438275439525082944371475095528922851666187311332484568475135408527955780029110236537120084122699512916283801399288928426612974889634350225284720446492814680607409538874032449894347934578068150377273073818931291150467469237525795239987940068533972788268294732880108638473805677262949574872254150496268343262017324903509483352076608239279643435727627056171977029410691744073499181782104005710088964315165470323811620918222954156648846842659079999091406657700342186477364326454623161312868054537359495692320370269491139451759541377074254771100457964861128565994150034310850831027077297664528996712049609244701410802561381956990308344625209626821064175457503674878897832817867460181184195141279603895444458105477595524717312917796950162563284666905257839805288514279999039729035877593206106364263971337497724469088074156572000822277209888811796605133384370796667185521003468168703472508957009705466275937329918465066852140237977165112838426708401775463472134577315974335024333236100843342750113053967775558172590729687073253834054447802476932663309482269753589828022405183739705109932524253143598052215136986895895762115521847791526699856184962397852973566999463843244140896218703018529905464129976723590780936322394570841219436215857747704474149881034034224995126574793740128074978482843411332320253266001579941467613942585143895342370129124950192363851641464393220603583466150034140689504829904768612790011044934188070877899125240516103133090707981430414148540196829300987409442951879242997785607076616844132544204901386626694167784512475312584824231230372951766548301233170676682335923718308811838997205356873759464032346023275346149999602575338333795227940395040252376946180472272636252191279101649544629231086013427252168297949296102564013665039202672890580969907383201100309188481052521863825927442011079146404758291582201424483495538642383665416897957166191887161118937839640226039674960344309666945545446145748694120456568205434002026771811140871127029533345014686453127270317933380060448965036713865057199925853865158202076689322486304751916557411426927737006213654455621722918269526042667870530734822087775250426316129997092580849721753486982770270623349456887933988006058140920519643073493128250763457778150846313820459862025494279506171720434683374952482793965193044392926380224179736116500910490335041205591041198143538077516250959713842743323143382591564714252619683707694656194185560697620119225851048232048802757933207392279203301604553238298005479974918639328407773734498960346908385967575541839207419374513843816421082092150336018505983567699671267053748330774442445944038841785908581534564898464904755191896707948507388820006958690009902735168296400316624959552125062704145276480822481233605445907316675893071422307333993924190813544375243017569222369329102196873809641927178425203554988909689494749219083685942759463547986511679591327076004142756198746448791555248019975076402973243796178312146616579913501106453438035645425139070872095188204036199916817568928289797146169143627602873714846838828504163429037312646110531216923169794929364542243599106174651389840750504459192691348433343911696322973315295302928131858158583329456533786864312493447634550187145702911998285266528514052076833063514734318912640995934163675490260856177481736583355761347851695094003161398106124381985079372760964823057457772619993270036461691137312672923977139256118272629030138263508805766097330248967364536659829938170627552535747671532927408429098069259072669526315169047211364782592756194247762705836557000021170959566417092722614756912593669553964959852231655842144733731642310501411539051619881202241333651941527568855494862447035845204514497494234816841517788279402907992191030823320949155169630419536445234552750154295411157300569595464563345469570086080623091632177796762914323788228764764389580044646109896524384238090916971641424189935198298045204712426099608992496289763267088167460496179232399897255786654295830738444077817168221800847436058405098332500013130129036356639799358287140284780657029978042202924982920256605466102019521516600032420030131453247319570820043135298995460943844202569053653548379228786933405313243231094960186820490697607270504252665161386813141864994443166035169782314123673225618525100739571016733723563592002263494475294948535763050834483500744164364426278286313418849683014975868239163061506956380366643504856493917129953227276209732597165199814945872627160678990687493079788323898977413576620096362334977750845653616325776635712325485518388087151803614614890692264633826163084992635634798507197049466747864392761201027480305002365702084152931256658410702234204874389566866782631987756829555589774427342242649656561673474110301512619994373567582054699652579173636463465716196020358133903437785840968072611379298580545722923079310876311304592106614096807584212381298609709502975238699420910338717132682190986557629844981728961805018072172931277295998385139045543421711570676487997409206228472070879811948393642899591388938216294754639865197213087952006970625036056150348833832897710223193186231102203169925414430497141911695138944144209747709178549461215758676427575962123303961313107940935857262787773055792280665321053971115565617922939069096101112016912167945773060725074664721784545061739280290714499549575259653071279349817923394216490135104198906664001021932031573977604073234212700014653542299460090848544167965249936759656690599056395287932109241122469843588056016646673378383272145261594607712933955211051850326931547090824528486877267750427016672418600125213576392240727348721526095893384473233091141775615707995953279740460464182023260478090785415202401065839127751754365302701668722660950765118983505455698627109601239793816803463742164290594933729621118312764157318249265786138559854683258150978201272510602321166094414255693653068534927886557020641186651439039947586231929240746725317891600446776697331388073073252753140142070805925686610894944336904104000076077027844387698168604052069839585444577159920211654176274573504743776508368266608706288719744814340265354468482469042807289312906415193677085151820999347486351353350702380057277791614671076222690381108091702953376947360626009707982687769338157782128507776204847649668463771879487147213528998112220140437899548852659867796423112775655289492598044267802008713112158400433440988684626208975547937255210518904878816272059545400673331558359140380033685268779847554253101606237749314008165068358693610458338726198294260237349939258984608106349802147083705726370638956819177645117227874471526202253030860101466266394636256130284670846141960080511847598033337471003949682837357763148363960802437701315673285155543150047284598267676414150687039357116293891731300224958347121162548094706781263212553626595227747669202515731818652151165920699742380197851704889868261262083156310248672255139424553611055613679126752430630093443799951488481121302146528050693417069921049086593577828165073960097090989961806512355892936031415909379576784822899729594254464990021271220640973436079379061929112366934926801856993272018590846547463901496366459537255990613453332372600593388718195544861995009703790874849242078744336228319255263649349306077535174449404183945545366630355190670171999233730732178925366131146407909194800829585813607924658450301764252732712815410719145990156308244478108715233074800107052212103131042772273695854929633701297774760363416752086926760084740774175618334045433066399332733382402454320135165799595076489388498160278104674512668099627260816866855001554276531774775229900111797899429505549002647120231321413733901118183243161535366733009182353279332904237188578369471868279851919895814371818379352825527509838025188705787867200143107282983880357701691282273977275624894532926780438356638510406420389125724985543879268013205309427374912412687846040283145538136918126671361643721713897889660872396620391013923586341349673666734512533600773906180567712974212557728374965326725393144295712818335159870810640047876887058080661530963356159355011206927525689279178050669840987870803141274024056348251950727877740735948255773371005110574419808092860876808822564924587249052043775473062864559925376461561330938148798356380838337970917599912658412226055118009217476295089122315980442304572659338354587793501786133180355732259752223177155571784779840177443397388858549609272210617519234616113848593572042321253944005336828911342009069817507295165161372885617382609734278511836732747387343505142685830805725643770613602326080546056299926214498496803908508145164278350182780002048525838241385217764254245486919310482244630370524255249973645571880587757363482216837426281714723907052693106105275236748382419014549624861845450862938760370176562164265065542674237675110790343004782858991715767642281958479766558334596163902643771864248233309537039857205090361770142229035717961485586741827101770648330994047446641047342458031228447306131264769326236903146751428009059293831336051881012075629001127710860327305568887199789361253896297606932360240922222700794768924364634704537305994084089407771162419633140312027287810388960052569813459425591760127692522028160855357261842313519242220533866276834054033156168066938960429985387772466977515262431057675529932531191089108628047872970697648712011693046555390484344231279467865845611991242999911669590267121658239527008382112713308705383246091197082606553393273976463171705341223346967334917898882347094607670756385755958817186339320043456913308294131502406183540837985997013454742393117033315851040053327075013919123671706925562776314981176782875638602581330627748242767280872234328610619163322419895951730764566931447634548197550623130865889561642097477687903459108861754858206002543687948422981306581998892522950085870705712401450644497534094496325081869124387835045684704209367987053348172000529351906965699528933671029837031961852870623599409366577486525957495827526004165910189838791673110765038049776993548445640482529796753566736097975486031091691463564495656736371981034681218386578613299282026010866177814822018790280092773360726687885075728152406077897854840779759385258776610360255192341195316039812847857626300571632951004883868091072919349924829279975677966100508679707145825523757411433863061219828421594507661197749829008469778959411258879704621462498749578678199519503799378343155538534094483437351242680149967129420626710034046430634944174392071411816586817286134608106393222657575350607931290627883415200678591025877932475446903366918998793836267072331968037279314806984187124151032075265987313698422190209102257236963971157648274650359583716348974579362152722346429241509460571091326824635495808176871953420424456784779641426488383578624070263053618581460623056601926177760499138794428485532705148790943766064650026507335261243959096522714129412263841563456824690603736914826695341114099810645021864472822347750803462061878094583682336541037160537142865589312904009519238430195282822184377887226063571238257625873924176268486071197049527092626831204907701949175977973997523612644503626990548699989039541332964411788324506437804812847323602830827032723793176675498280709842368222562072768190999007035694804304680207892598018347516807131157378777963061352485129522408212071883173449850245305184820687531956470669964758822643818245014769310598400133359888795431892488379253938920458081512730959017042174666353054557433543379309927066347481309981626037286237867087222453450811975768080692037946519410832930956492856055431722261588373584987169356917021547108584721327702239652822339262552252482198417943200878170517599951783008965283240104838444599205043990440940622666395319604921440169703597437457679608752337310695095640140836008161364561172146904840280924194091591110157932103867747851489458417736480458364481134395361505116541578257173757198446628471063208027723554219011600646957436703120703421764657504923665061635080401855556326305348239302629662263021880640925869804766728299212485120242455443496684049742090490174833515953162750491259879215543184142129568417840891539741141172237140228365801792761314737276958422034842991090669970924280109356900072748559171414941219224567092682075684681329308675379216025645927982910971055703746051596955908103809374007670944732199546485179963165708386470652182472866641518546907419937777815037867768437755325423860762171818453445907712855594845892794683434477110886830186136015449595764074776239157445092197032992330911577170980473505088427422004955178265772000491262624086607681467640464882989046627960043969166985795638840451903147005580118819094929434734036072945472507807773950794953674007122072275702946864415500726270436911947070142637489952622186320905853561333071290699294853129156390511743638563636510598447190112315452704882254847121153101542302773548312921328437901375981435921218108440197989248343475932626511805494641327645049417644017111808799668593842916639924775417615860220159258867797472403560494630833379753955791188582230065857822999470430372698022174649396299085633631570527818549188685894628898728510447263621210941901128230062116805163188655455345843462604693717941206004644377083493246281076116889722278297897348945093766334165818395122846549307140664966541929261940135703942634541904826781132569273939455764469951962895305394865038139326508152259659880141927286599985432216275140318703546122623037975026097042350873783521493204531164548825037294115495373223733148661562203341332561815965263422619534505451846865448365107573325863018033521611989959980625664837308726479437117426355671633407695612573457166060076903143231173915137784691454447162247247115907650902364621345339457277534538533903948736552601067746680326372367660477646320809024294743600274335914598599418950213843820416326262974676626633188744536948264690595111830934523306056038000990606289737102492211421308555672185355300739846409034597600238367057103478811474147827394740207596225821085784037648651853124223177182296063626823245720532420899017483695266005132578747574317833189267699065666864211460357329679526279386228703927801532119693601813268765474986380762776303240301661479063511278277822598929399165077582714926905878580888878954164692275613691662908799695527163555143974485873752743290611915410184330258021490424675602871291824295601242328014622047206701220185904213112759826929760752743340508777343262284826459928535518232726071123273926897673113298648276847372144820877327532057635874179630590452031614169456231902341256489414943095331752319028328118844272684910781683457230414163568278959651177072585945712275721596286523477469201385066216292955866634127286618384215118833559057920306454631341855716695366487689725284080890335492429644557277429451735471803121547150809016783734308037389693480406371462790341468613461783189805221306244451772439741889987872873214967403761449116082598307732728916785319165162170360952343654938780320921757278152077297753555067976568861272539852699698362386734534198837659409523426380612166227645274362807339366527283351301796618119998184055909448516271148298099684471480999427099756873313807065870982626221303915174582194282163586900054786888634619195460238377243733485315717620303721368783001596844806994433157874228455659118712912320938245870141610600451868496210913948336079231162185377034059000209348621515325658159796497527217903796036247340240555395149766537914110438802937243624383323430188978083196889150703932362464773225555354228147639170647846155781864965194409441344149564630607345030169020011808949055737571060994064031172240556878304993947985231371867723536720342908169121306361418095615704635754725895730014643660105548740463286231657264150393885551495910485228312531089894442624432861060963084727478526872353800715595499224905271408985304834655124705648418748282662501862172846136987377148603603526142304872324210477965936771749838778548089480904418983119797371508994506718783448004233770226132519390587796162356122034185644800825473302389441199697490006837915585364423106849245527341609438228909463778502558804780119516472791610220194336561675948364798507750987062907904550279562571788379146226892605102688127324222110982641339356914253560693297742127044387637775214455455211137951035681334240722462104588135117208458716013021835159999104773058931991762262854552961209423256108223871009121538005845057416509655543198075329456622530497409896816067502538695949642103117276860570732889635143338152395988114590835744553769803811243753752835117182066010495396008560568834863231766588967355827453959601581727755976556665071149166629072621123601811471071845534623446845192787155965324724537251840764199842025730989807965575868498101529469650839971261283948364391718735751048977400808865839621513482199984498974840710368591577596969946742516449610414984397401829188199731620341702785115023445393019909551941350154912226145933866960997771265859088780506484242941233421579710989658608294462399672156355550240531192178081797612954267124027044051125672659130377144677562336206816908498621875037855218445882982625212197789008971764940793665637506637989513988704911999096087141359272400916697027725618552068487499930932488848482530855969205466715207688001025996628415519013572578887212243444933598639959038594689131275187279845282166948536579152084962409013748514542117891399311104186431970696394807929145880209592953849474553207452775242511162577824631345125105903240946704526253668862862411126547816730435664484904596049767920803185973515216224599667949759353276553073063224340220643605125180562438526178215532839198713487236671930732124075058781560347394576025620374766814183899581063171362763487304643324016425201079993672501343045130835787946274449398066373111213080490939731080333798180447056265998817067186124059312181321500205915960351037541313816422473112850635761528035158435569459166360295835116553020920678125726919928464192677654879906680750446553946123088432499573897358258677488399436713891821761092179241084694049063658974713639075807947507516342257316763289988690726678037060144221637093010599551468375984059942675102939570285326281600714827174674546168068487355710878344395648491831380276284174315062967229782502089147156904365389183773892617761193930607724307713281566101185162485051898167759146832460997259821140656026057323025859360595406199306473615635452698191458668060570299355331985176436966046002826921038339366167200600442622109701063922220336403762533933434894895221419381279239015336259844761535810691766832357625452862215407127024098960502603765021490160038714428708735226350485585435278173261687066952370850408653308498544529139058950396359270602121452677857579575540957837198184330317143038258986667060860598773191667674776630030104467356669178959849170882223239332332369658633221575185757215258378232771609025871849264517511587277673618769171102789061939623612120202074672856767240036618513042925492330656100755677490772132290886655819398164717421951050836871528946655592993041235623155355881354621678175165344998855064251430753528039114419764776554049715986554716749102004773460905721726534159611900503055362214889383937258652273372914319960961185187275202155064968603442696028869002143359849726569880515215498155800186014248376890099332495788517852059297945322315630774371163076717693246298076503744361430512423604464605330417361209870632213962464012325618812101219135999751653657588289185330695160894379109326906909384784935926722298693305222868713379101533707505104105997620443159405845937851473147117857818666165341393184023484670339277690334587912955491019665983608752457333223004950904585330691640716169226738390640094446837241496191997839562671376480870438100897674683528859610787233986892977621776333399929121505626945576885473047284243506092998964022825757121285940421685123125366008394045927238658382139427363453177885633348258023592319220975659878877385722364986742255068768467789856649837618790099409959735576610142408984858550299031137582980091197881451507739334357781096340553063504134623428974295597120564804525594442492764361613408945631201687585026064311089507780864026543672367971817830782514727227155458434047401226010549223168948331943607214141524763852958364511408330446389276657737567155138252783012234117481215734722459540036922389010615874059530569401429337288193000511492256277190573109947802569383774892675261489401636559782323237301958096784454677203378101204311266033004775395001272852010583312789405875619435328360332013087001597023061518123199857735057112686950580625156158080818039993763959447416695410771414159813044461276662535842029406782077983039286148867393457946858928449295328178455111936744813277695151928998992610411349461496352528769357500620808651475987427926537125902054555993853253970723357792239597378387959902299551024642465794590156764092087356868603218113041575571770339254286799055518186453655142172428272013862265166484008003316151904835514767245559171083657540166958238391650631678805398968568141379455556347589800632187059951394599080609402779083068922738940826508520934492208552000116373011181710867344889519075248856010790985606754802642533819245811416624842741444973336074207462427058673520462950948243991637425350892974223365819078790426780351076087986682648190423507297071364300241994065766570982006829433307889698389304844720310835196727758535534335647755963672950148282359303349502479303283407163874201966551269000705427774188572440492228143112520893626098008579693235417741212821914591768363414304595269497228796006448383750445113542860958202347318983361079793593261500038171533559736942374349537375649866798192651466732537287249561278587972195983592433822522225455355535750573565132395158575772704846163688168792386775832340774632733971248744619725507725930105627034133900539267094642361149114605671856323536808805014868295739268838963818043402048382598360139177963208858635477864548796606852960626161274770932443540424089547307551448073361573158946759183336570257540947612952507388835645367932347896947182943933022846622880104055164277253538107637610818824070018325633758873649010589889108627577761609229716881864392739202018643349311033047577300835118862133383714672045034172964386484992413328428751116904002098697849742566438920295648127642343775193976996950903784684861012762712093116654056456453445220832583708683230683545293021710367911519491452884741611599921073535428682431042146231942159911955355815764806162997231300768346848040693054503621423728243922381669389000961657346342964613674664193142888372547521781690680106000467240503021089585191022913656589461056607800962179456449894294126947076028513633539128338707633572708356301963337353938571520116042656696864143475760777234925349306541433709848692867488204654826141235195877397269741200978327834178925604949527741193792438254576903683452793436112132274777972252498149006066752630452416761871640253252388514863703715891489504470683966709281645308701968536629464990258179747846807099215286040564237941552012750433575725908671495605052580805872000195740240369981994994519598759534927707272317681766044917735141409124446369890426901213137076461829630180535570469362164894709100476756316821043348508024623784673722002684600574456641254022069260920239667235923768449703756071887161134663511564071294819467101695367956265634431652475317839383569618304626187414128439412753789203716340649950420917467409876620069106650986901235504106909325104520750916641321679233816789093847285777479975220267997320091410941397895409672102259946151219711373197352005972743381080164380865629097131808294761513815938975064603929268652931199441776737258207314538216963944252513273886508689031983196411326671550533382256219795860681723674895943575144280356610613753172933743707214223516914395535370835054974586990147054419104970922153112779744126112668459018464701385011387000556017706842601885681034069420716721984282730649146439818080878345491336903538432014660559302658793558102034468243387570496776736340476521240116811898558268646450991410130595346023186870179415247712968141412898968654018079614467763126794272446208823078777591129274871275144748921913428505721256588812567155567802283000213625419768582330623465255455847372286116957437978099837202528561989894321527005760842883229844495342512159651585471934500737767710648922095761184732886181489324633877885793515811373194421375679674026080184283881230822966876624085689443910523337686269260178303262800021817538245789960738712001323439606099999415945261374506668861519848066279287724544271997296856105907710869540075349787631906841263045445634373128140871480350377578476308618573100956956078677380715868943112904469810445102171291606451261187989095027991375561226688203419325781240655915059177293360250333895111779695734315621086389382418017862247471801659308697209852634192146546028005666884270179006694560617136878811160867967574853272106333823596101624434557445526243208531189358824164260132847389956060496768389974385903636263070667765609802205913620391230871678022784549068686522375383985819038392258752993994639098135774061412440443858370629247109962866784442121244284669447937287278799180691468855891963318807487746708805421535927009102985789896062784820581614818243985727099657453136456429763710910080879304527204475840608895638397527907886021434449202579334016664642004448156224455432711927915837020356337824107905885132605413197634827936167333589843146870433053556822044984198540240677884499640347134290157122430658860988453302024068591210922960235552383975022578109619645935152751677093201548093038375628181740757128654191157616040043245139619414200834862699759507760333639000990213136607505191268502255802043719178441449465321150209442979304980700057822385748580527934033047310298561685150006010978750600677302874881375084646904087326742949638823533855217588852274888191136182083130220536323374236455307272828183344852159315305784804173080564769814534230238995095866088373912292325213296648086392246356330284848243651593234491921281617087144203913517292550580373993760381529864444996175450970906920291193908796341019280968418729294606074071292398358413573017873683109006581450181056544518324102634774941530892347107638994003032937247790223946086654464788630477483533127802705470088008043379046865472866664505365048623606959977640791183243105824119395497107408701380908497470916766892912402476450508565259871317328981522394124615920506232473600742571259629287494532160424146458932310129131381289020949686936171338662463284331178669173916043905517789334916316537446914938494355465372411463843029482635887357055174592813878463742717175935178916873191289387432977261199024665216765556009108835926365163134558650535856929203493260497252467852115382916747101359855215142804964688248732152078244460514453921027715665476861704385309037085835978921853051680233990404910040610102861272598864067091791771846742044493401077612889420955113739773335790994774054688240096891171705005230100385029132504913197178088711769114085178011055013133759574590842877262995508500226871626071861566643889745574438118628706805171792104265067817683933302409487684441067603868156884765118333631282198104610815410320191433293339061594040565980008179801343605630271858948638500901749850902769843822552043231232919902295516854637375340010907876218664093547919776991829599139909982526527325394436472578470433496652307971035583551351896144394355105507495135112233560582056480966384869771263978156135705161197950438794867601201350369533464489345318802396110815709561659091068998236741782730315890859102519913864226870063309152461199669989664368295161625505005698844400919800684984995593034045464490475863524601660793543838968485888065863318527729372632142959958890044180487521477563211443235248433798675798148438776487853887228154481034740374098214832096982552816725604752975588831260323202479867671272241058893707745676287628104884458699751804501717153338363914083282596030952017130882530830913032350917175677923285127619199853428233359618771440737388405626599150794334454322987624576142763044214144083449505693392646074716358311315212303386231301926644868574805093971996266967609434451234584058588765067595691646381049741468492323329167221012755210229093347836777344110946306206492955795930968929337087954314582614720406838744184127771234935818998442872719945485632413805073202777600892105442487333071347688262910240374990634545432903291894626809595720100965779550223623297980958545378780983553970841876857753657933583136232277677906216095798795928061042426490983334328748996662018726653128820645213269119085715049740924551947288590504360256822814690464362698372205686255990355002390100798356396696758618710653087414218884956325933616440049872675456751921299941537515430316427776148444672798481189685154889722917134716460264515471922465869883787782309949686401410586323772887757894776045917111341060254981543840329888230580107576871803291312270465637976771158060574552269545948774921988578226933020676994766610096365452954499636332597380832681350120580060395201517284229435478807957353912807615590865289585334481825052998197711529780773240037159856768904842793618772244354835118875270222927229484885905462344510719744793381434565812752040012785308172392980258978310511276000310653161637802251618603108338997410040185768109135059675251338867980493654510391119581709854060277148389121605296865028012267828495730994964310848178807921952150724046388160762808335789831570519956007508854485847705804133542418174202406857353015610052602811726688070718682340706934336426165782996035310468111318009488474749975825354952410433063489647728303604561678177333938510082048703608548330445562774707432474145945289704891824578930909650923011277375576060529306808475176057175336499054603277370233802624510183233580164685456444826145457611409370569282787179831730782119125482426309953096815840572145903680672838318839451407436790706299470710410582516682651932751664715691822439078195469629216022018400610361802206808341928505266721640985934936037119416845052804084396521499091694264049320341808465660634334634622984107637423723386653444424226425060118249314143219188613644069911337731533297035871752592383347962168277683577365712869576681726110514436675096813819069024823296329300906041460733348519033402328013676220758799395932590041860886465777859407734821770122474798770392315284102139762646732409245112646252985281085654610681118726354787253176030103168139403310181294874381979476010076083984324907186359549306916213412967153959830246864548551572033995091387512641289391986918148158507670914183408009990329120260280772698527294272212153655773319000246981991425521419119942980029157240361250757916554567202737003212632844485519697061194203809041362309814763814647475697610031278792543069301885814394724570094421584758421327529530168359890686312256254701647138039066142241843545047201807591577684170485551216284292284810637316713278536662789799083708256847016018567039908929366552482305999260939386247078925029982812280255849335634703359460055269127205185170093022839763575250830381299040747416660700516687325541829572709847280537392978246989178106886438999689568740538818188636686694164108704310433925214751110853939573237896943417712973952826452814849946510836748180645592599617292208040661719754726673418989147679910985638036154795731056650420433990901735715517910099364379678549874610768127910160494441750694270114156217430022115932127673258921109408518197940630024927625508223131888966756804853651357031691066024597054624480302602918900345210016692099016501626536235727220385406164246681589963247036546622498305774338519265951532787139790551125567799523139425403987976892664013000235760292477511655501355779218261955214542431784715681770345911851347818702899793069560947050593022449968628696305926382339303087818651455036569244326306410642365982844012368904629442028963856482032358438018702531812906180924253796528014676033841700090727332589284814646698642427363525083854981118107815991772112104040739088516846600240140748206153314863849317176534723877137167950435768690046382936978161575978259276499470760990939843283719074089779804814337080663982210135309971130363894429734467019408911812557379730114657859685140115764494081200076667051081778623022390224797862140496919801556514549856909487446537465441286754568232337192972435746290923668173016937660573066613838530977185375952226734600555004918644193042020055761621513402087449413932591119322040799934617337170524843150533258663871776491723147050672746584868387192878512021893515689280694046216535695855287744223246695455266322052778820816339821048270642699066155451857004891900046576956421261894648924641820432553251324415952096423027622295745224512306711911674676171164357976918388199730901468457189111957357641249865226593612288386676041405290419048015939473723368246655023399082055019836893901510917580328520708623338294135252498591940346152001929789512744274915534789080646882853048140596232397696524994895315966358884928655430948921836109483955731625320542514720097755576210312948553221408568770563643088527515569062249005831450857682644950924965126417098438997265747334064107250840691081911669955722755688379069084266984835116325652870893617448272887058982961318350690244186331180552965007229146318344271881188358174938520564037141295359462537439614422582139110046901357964929751897008314193069567412471643016430640159846121946361047022748691007374084941207161868465504323325946447139973169442793862188802609064661496010026433991638409303005150268784632934302241502674250442360659826629313033201408206481083963376851687307299043003507321930933046102235846089285410456140704507222498414688853230612912444513436166574203900521668006264933412953753549278526568747761131235412723503485232134947420971348327740670575374846778093083460507160480676805342215117606501588649311244092187399635580499437638765362030162350382964343096585570318458341122351198106412488006147585238596689005644695982403913781443010554888771379676054935000155263099009661953132525037164648663304537288637241594858869309281264223323407152287950966087535815547012039336798313575295364405374835779510418089856498234874220553744196789169675616445842969021252591666112455809034271868553757081859370550894757445281701407696532376976478096985745129873225815500082513181026375594026753842472801645866378187436704128394760577771798987046682834247256805453478404950651089743502184123414870270317869538707601081084374623582406239954773085924591584819380746375490086608710000264228671813836522639912025613450981465295293610117760435071702292072912746531592677772800000483008147031010287593227688774962598621508069529544074406439019100743437662675806980101958349961054693549957814087336400140718796391242422833280836586650702286620366247527710036536007456114868749609521202681619258684821183470239241325118446536174703262508794419870072984032802092750866913077890389540538070779440221565988414833994744581988394683401955393251225725123200251511971814583335929556144441279106834017557011015797112464641519110326547765489285848828461307387731472106853876884538767818382269464845916968805330163754725740445267750299271854939478010363419442503596556403700695118519875444222563751785442616505020985942579860677413302740762855370394386887357114881739167252161998667807261382194203764221299913607182705043921416127684006042994566979946661664436003327592056542631408593230837786290175797418910906256794095472678347465493479659954403425713875041748910535460223353396877488979435445944552919700456109867748474975945484656762467089390484038218280386963829475118124662381128139477943231261739178331682538252309830418691282405023991369100656368994190198202260835381336443491268262351777203702017654335370103062886075004716096013536469422882441067088051613809143726658503335642245141338272770628948494456772352550326577710723898241414304721255555649466120620418638443740636241739987200451556169563786815985728129590268991811416717804862286364844250330082971651832404945337340666006708722249618054999047024266693567347422015094585462486930588223014803421263147524080026156734426252377998426687858473371010409004777539751922098136076092818601927373173887431934809833164269208966829825506930997776499454374484735043424514249976757423608833059002259379750081788167942113138045880301303213243197368785571590940130662680394199140213557045360780844083354269205509528930053899038023053798940831287241310164942738863254591779757509596669342189745007149485262994828063164155921324555123068548290882192158849414439284168547687210623451762284149719996593857693856537516028878455965480195800174773488378177419220297647911968049861533526865622942529811696398309816008401766000234888971650450851772578520103859031406792124320143685608038649214373099749215343302126444357597007766725468073736984136348232692665240050199194465674286403130917414086702168489237423537008944942232355697606181625126046089266900209359115059193644690424476251045771159872326056920221194228750027679251883807664632020707572528036196258108792326461654211215309969965160505532954655762451685649046984083160212051599298816394594957673169526466355454981663293573552214990857547509205050974961811467312896233641017451775468203946148396977111716245261915154427229059045774910745221277089037427431554684298253417528976297905167908579636855723225321168488990393252551374216332553231128013308209815438472434615955586659839680282037501103544099020821910737964199383265144805219346187648066130268606606513681359937301265479177165577133871035977129633099639203736736888522401995222150367172918048515084759126755490683046562225617875981913730652599620365243397776245152888497935395989491469813983517025366038974918354268539971409740957221536666723528538777580374192803703810950573749269015434089310369175646033155745441951276673724926889748116251779325027479421732411859305039875615845357316449057700148796299315190465540350158976654908243299219122685887488950698491825130114959202799588799195747658828204354169697084159022084746659873189623091460001083971387332447646253429169086393309547227918324388132345109811842876945908236552664051457197176309585412664668189007240978716635460002385976666567972852012932314543641004378171718102688755192159841215863615120091351281866581018171587954552412678315457062387725584078903472544700065288807656175369559593524479351767431089560689305141804484214618168551846998641753882067583546594403473592194885573016562305740886120951162378014866672071995407761169545228297501169916935188531410282253471085735588830301150457091430286715663808853552898918716931827671239727058832888472638281365878239506265725082786279883298285527548687378508947358159071077656348791464324064126052288472983643049770984914460709125661962409439728316334115015487742817818785843743049681966017705423973459853538626807782587428764631495152310890378072073726185827524915695883815539985965415324782906489623636976985082039725852172150902197133000587973026373207519369349229783593464391612708668331675587258214325179455741599075060066566518339136581167442515399001740294222379624844589639650536851024515925784915193618551963833287624117827247762372330565623914311596366968770513886450553914123987939506800110259877570200414295676534938274190141584384062038900016310045372747910189699284373316693650412234630283842384072312285487715768155256429176108869810806027238114501348067470589332466389533457539666857815130436229681870344093542584823073759772015372303276645849524647036917914913918291022497341007119778143580713195208395141342784408082095939222034090692174800820988396128696569037555169197033425269605235291182963936023724076466415165814756396981439746675914240599640573364052127732107106365853989717031327115646995374792401403541257387628056719822092802180358429417274623915835714893205850199167768682439325646273825232030374596205587301901274267190590705344568276341333813032161286277488095931069987737827902354300840112748147763368476543787988645581703269548990738650429506886061026019898427520206338424494510505537117803218219333989963244052137708805379488860682634090850038012123602745252125749114946595149637320486794843126245833772001335707162077071941546320573417245542429639723403505246943021956492410346783326029870482857470963472449716220184103325509384155749220403565045605072786362169583994195600075620848764344592567065370722242661593776751342326992323200873738064139070525769101345974315200836858438784267641660888500520551553533780917545718696268022509473138961845519707761073342480949172924550566607532578494534129062493701777499940597369713722430954495631287133395150531089234537160855004810372790703838568289478533331500684573800751832232420180835731595219877879445951711620758378696913110426887532352621583098166591519991739524026740548371769568244852492858357460817999624965192006450861862259522034043476008279980334630985088069289750644113912546229954899873699116837583778235067888275555899054402608514989374232212234704643420876882448547762762556158694944236195602124086014281697173792122557498598055250890133530453844343073126906549080224870498765201115240644059124546789201541809623082569719936759907318822974309890611427448089996125147433269772608145250981299325246823856805144474120859079843962297557889306464772926635444737436877189565272029115383377371373977687715324750218541325591502061255270027116682289054211913442563759320118993521289774125041504715964991125330630572940583641658923598340601139298234209046668777190580960581431167419851164006130570036776817862864369698062435564399070506730741756517383088452718713863697475861801193344583396309646440247933962067404306911810475009290090760122374725312065250261257794663358894707464228587795480178852407527445188977772861262377710929791250212081546606515918351805840814735388228223255556327115369787824621349125902673032898150242433742910078643672329015604866827511686076488963395854687740249704520096237979978954529973407691791608918675375397523544863136227339006731778482600786587397716819448641484902148078857938245070391607342627159021190059844739712208632475982803002051323081666003146823965437043355743184790272577417310714016072783693728019491070091089814766556344996632108151637674068090690780939359629011009418956479993605906039238036122535156160861749854837564474737188776760519589221378081492608706463493543879123057918764802297027636835875178652030723107800258540683482306705744403529368892029808914098233531885585463899420268461919122622274427391037640060336043348714029268266721296941512074289814126399138627590376471304217739225762120259551565813223160560608218128362284680372504227958942758169776498352511003867885405361218879295895611117918314320151910446635936291409885622611024653512422612626556698723792132347826645815700593045765878656879813903958931894858870867449387172147656825780534705528485832505349615719044020076054935023632401471009476535079274250388708278668707155045948031019938374512069336903483276466100320591102868068128673678647584840573804026073798758146064864210675263749941689683382132524615624075982531209399146550161491577072466588980384886753577061935726555829362186601204863459233422731781777371732254820704713636618169229982561088317031035753224467140973981992889060331517150087068339581305329910921045255689273858214649695822309701630643645281915537101429526466843657449634650007031400803026335419340348717724167666309936405472458203679710331135257918686867362230624315933732783637374935098413028175649410068045572193323923547670476054001859480478582848045749603075916736208784738983408992017295712595877934665624808523172671976311965611503787798269795703946412883659542169578601237657294419710057170214130930581786480747902098828399566019473145542453856613077791136736206811561211349051411174817419969574048752474265580496067143204005935161391262254486208041804208201797092771220749200648642646085985380469772753337258715225136465701580520231013473049994065253840636080399683924787897300112412966354081526891111612013633433139447036479409988955634869425397740620663978662866275837427417170258648587870789479678675821659716403132108578254755344319728490918454308859000883378227001620573375687560582647396807511893063844387289243322631584248046124233027456971660896123107671747814282427674393520601386805281684444414512807096408360536314422432507514281152764021145609750523715027384213390882027936925506299259763455285862558463206347000493923432521996075562726170243515585567999632876354565168439921707288641941051352395691841602912693177640787692917367487603990336340366599230583202841804997121608901985998112372847327686826693784007051182347855800431661455085129382154908361370966582357213706865813215490828297045476663087541320504874458133657470272339340495772458245354587023302329031331583057367140926637410405659645393223974855841156488892441734552552592154585174741066738071887270829501849486249543402490975194532774183110155188014059417864986786211317078672756428830609033389221285874824413571592388889212500477220113264703765484470273760609633881784513943904915457853865625299702454472364702454815182325678917262223195461455110251301693071965950830443492957149767969875796971591794346020132106509419059525081393826603986540235839494559461638130193248675820922209583775976710666371534882772993119896313730254658832871666230980915038431512031338011295182922448802665947379511990260124731090742364506006145694392065867747511894807395455841629447056974568794918636559456885951135748912955850072206306218993703699743279675285499579567336008061339405687055189533776742071294030918890019269496482894347878778455768149763277993224867212375521053816507933439644145562226770284170605709959755953049763608848659322323144228197411871027014615480156004910812761306185770990366265658850043762883211693512602835786061535234174517201632723884619442478557521678186979371545866295869105422815783275834277963682576951899307470468193785224029437514197681551524071440854666357194679288851073789267520193339449587654093770951480302001379606544517440132881726811162134442512540459463307052081441941894362245035563763136836958051173653439345743540852195575490416557216501415979021025614366337104010028166441935929287881156785635481421292306526832915947080947154619937308100965555807768958444069160025684131754866215691149142694992164765557403548446654402012852784933120939136357433497208925005652294020217409273018531300199542913181530481513347759222548414962575311672485206809433092169390087185609538474536682267987584998934631460874137030438823251671617693733682014464164342381959248027114734581366499215936198982648368282288574826685914885306943733308605567354409702052304171714881453459663995092777538444344556786907671444312650437346144051836232025795185866905519045578622177576194379393908411414176423081652397549976481779385605564264239586817965110996481955207870857400752485949866813383763250135745284479450995517253406168220110122698550972923815163600320188268656519146770420920125260246254905846735401066517691004547429186317848645898070457433396170913675112901029942624295497536442210672284045180738212807532045154458726881438242792383759984677581071290509763542383032130913536370179490690875540873616448759567765766271480178691810675375538319538174342002558110024361092898365527737533216273131950212579118970934999060481868770525192607578385806082952900818237154814566589489291802886007742236713753235519121732531379956893552618651843316342880829297561338863278091573675048981495436768643042310488564490336121902066644484772213640322314348709729865344687764377614282428683349748278338431039273087730284221728884275748994318659864515945471316382099120494333947918676234698236649282821524473107153020630506289939175432723783285159891747448699973054797178253920108805991742328320991456446369141288238148922389116411667767807939278563256154573174466142756687085026409351876286561999471652046753076366251581457933520813280592429889871819560369516716927017423067176603335066569696182101922013151029719696362748662993999064483884195635368713228042374611054486275532969832103131238102734889829665459034581598500959199315016310846513237788169180298525530707411047726786798186493269827445998282728231479323429293798920528580393344524546388308440437722620697023687942716628289338769747079791356500392542650680592809702834811976444312286647352462199352691961912954328533368734393943011360923013977699656714351926366839410599615306763390587147530428134014978338315901107862056174436036287169944193608395573127494738198016351249277284846128428216589625683823406076680067447862744339238738813658029083423731620588710731276574774604369097987907315210208760691968194276608408615439942225310832434135549953010385288338548090431006800753199300239410610355655132905576551175783407194006811997730773237269202577365623715381891921459952009989828828203999775450923024187848878289865047399444920370771315938612225692039424201451572465941487271706245373539176104950860317846815269497517661244337142625730949213329830008751533051109476895611347685632435715562616292661636626130745366158140675012978181003731525357945850728809109904386732847327809808390644065784252156846512827454363477845875689697436646876040367685857622388850903295299081735880617924821375234416345535141146014606868481433290109782964689130622042861596566504601681572002018005162890807898077082600219986849948245953356100631894229030376508286774154303804395080010428325048769015995311534006538999294678788358069747910375596168703413938750212960598394147893798381452073072033964045814919882209074236865631827523076288368799611877055105431323609211190261697438946264428655949848803576848221971325430777275109095474276267501545949934356495401615907434192811080918654884937307934720615556737596070185159884957990395918391218737159275362437029756900620622576840151925132679000332808340189733113395174559708028429125419702912237575328254260490213296178872518826377488495331555095174888661548946212860755165076226359435974839426859174791656026680371415230348856044829181547097843398633846574671708959710033972156755432889327769755337704459794964454243312677128116847664156123792732027684691656794423362250716487526828051016435104254438100603879526288790156103273931447975095915336229195119954592863306004251604913971036077595975272003724721134285693948123432595343340587522270182952335639320310022195529844060175442431334949401885663541908638874728678983275080159487856110166260139571874798319807702945378541443183051317452393518396287164718375299773102958174433181637146698358471243282294436990401320123787786992028479334562683155131565652504950239511295020694966389024703931686720949839656791179975335605734301163301075824997975816459184091610800807769116771398110659744588165789122271317778339603773671935933636175303585942826149565149019349918652861403730371355233115165404050051262624845424110872577185415268629061274830509274617155991347368559589142164961815512928457181696882556254485024931021477950952213856866377647962146367079046921797909693677141107581355949312584853715815133654281591450923261831237654809570447033155709587304004633852655717308612136404183886649809443669245155204245542822550386233987433803713499326571006158893157253841445920436570934582961285372158699566734391711213793337428096575560492063375060326709311353060843391593426177947178555717539842392580372424775988043108161809112932076108222579747634908609272157310150689332232819983780290625644796209443788310155473118997714640477028674212576437134789788326794996429055274627766680606070102202880045370138238075904741174704880600190375623146250364235634055620115828420415506416608722305802163050021564057487016940828290925483474128343188694528272716054690342372121553961187356083532921834057628891480893071608882447817718999293616865588986372519784517451041688020160682628013353336931031053175219159003385354491131976098597265472198023889882188095491429880948647224909433983815811079292795415214482354188675829055843012267713471573584612294183191083792525185620092623839888902167063603931459356001620425142078515031887258063186685908952137269013253923167386429759290274969552560462002656642786838873754793333983825473093609523107302178504906659205067045059182014814615158473224833402178767883469262532825108810908187115562811620599242239799144967695216191996983537563296170326371481834118982940408321224864477536117069116946794872750096570948287370513039701115621195241738991280106435362333351146287781937198745020735044953521015403027087961941167145478849512673960110934176489390463261962869608204682098589727587510994390607996882763336647444360643281267853489844718179911310226185909325267044150729600300690376555262014935612052233647168219814444200720130390106289108404845577204479271304454102731409722533425367706077463999177025270265264149522403663908734455637124938530615745475441260818031529554191439851120899420513470091554851130876342485207357406500613710313221043460013483542658935578240018792969665998693799941975645740159130799939249105942021714925404851435771424104691753014338929747946869510524500714965619729416466835930971731107286628332311747594685164618191898420766604616655857149660325484770770561122606002567413601128315911307221614024941785348341895453289270504782051465147812002941938058793402792891092650764245516821663949923432427516030524244454672997555650716006098720626768866198204382740727261185233028180400073589389264207803428956837099193821982723625047617051540351125455487260544795241143264609013410551898196429081229958539849495514046968663332741834374990866268711831507306930003051706898688072183427712311794264382471645552597811010816260961700661511326828441684044653063489458479715977980534609265963369323080863366723016288817979919880427213839910640733808857224403879874075008095089675499482361357539462730924715720147514008769306539529967572658555795591720137325572661682905366032401240738833771933194546267979437184157420607414957191519202812896121417227887702753873819618650628462221498105777283784367576950306085339276615798630641530771578229570174397556334408939042830540040297971494591158185639912987690932643940769407637873402026934505804310493237294775754240406682915695676368931064005389368839141092178740220973784155066862686528675894098158335645066937319811583940288485529482790103468283134445734576985364808275694311968965030071960080439717749225431114075816989595712137235500187469185770985651603573183378358150973199504324434868341618665255679760505090187498668740862050191149056570245862882763258416397399568033629669892069118309350124354775425671500905359046914725660297259772141496756626613115374371059893445177083066592252542549060423327853673802484479631748707224377777147883608454911721506250090535039030468330169274221024677458965464074231759083864242351775085639071463006659666082484523089328545172226010088085542859616589703783657898809909394935913339591807641386422488461923266737933820070757077079424047319635948894140455998755371137005893695680703391568354791706419844211392217907625964375999797268461657699596540683337365746188293134716243376776690454069210820845885668398646325143298844659726268580139133202029175183778336390759024337532241581770538275874308277483955590406374398613570421619060767081717196104335146719989620445116530068571665146002774941480244981165069415535694902806733194276932175427150018902205487558097016462216409182683315006237128859585388771250048860465302773460562761421065114365285552499049573130654545165834464790949104577660814987830162053006505686431700190398808595982320415230899132783470467898231188186515522962806332756415753565978552413276458758487660778095210373171668097869014621341184822358027340783646487333039522296980022668072142384525684196412585296368713539603208749439218853636865142828848156550957406716740583789117398292069982737844720169564965706077157667682465289689207032661225996357111078827343587573872235627189440517723269081790707482748046665514595006343711964085164401912362061568689308324815454268723767705167021427438257275329107543953390587864785241406824652344893879612187808973106388648483404385139127687982611470467694174337712191374704244935659155394573504488840502387943812786924311205577947158266787126593085602154152047576586351487522152627185242535658754185496163862590322032353114803063703631536451195135000845910840267715471853010282609368838376044236747164198267560961897536634242511386252730766321533488643255823871365050927325598497535913992316574807536763385775023964397200023078386780908225065407528441831012270605091644741884572936601084223064580495617123837094512663316258180127517442670569735643357705690031348680025943531248649206130882800865794891327062560900835092716512899306536080355100484230638560098209895704288125883714679285684018904276220618324267524890309597170549293077022350907205619650018979794272441870000808251924878099346052407256840157089972542555954221935685162900344256308960129278652102514247259144243477968569064100578848351700380286906451901751413196477064808607052295191812514010154896993784064491001131066730861650634238345603756968748678560100153600287897729010132145720950054379146224706516329798054940080526203346249436039951655618799167619989509660602658873383204406106175301659285551451942047593804312949630861544106488812689441938104875486712707297663753602988227664403328807714893745201320426708057313200646553241710698226435423198783882277261818003486489282264450942961067922460457112015733565575765552319703777300838232903725792133585638023889275424614626077285190729350998501229434615565333970362400702802828090609972817240970496846989678933276249362203810123000375880262378432653875366838093042088621998007371892205379237272017671778282598248197978303218048291999739305790389362762946443118888461334887423841486537981658723949646862110302108451633159419892261466498554676370099486272830263188437798131714050489183474894022013366570279180465044379096681582815280251516963874917113858581504670100371747785884658438475348210815005166085873395922732126898230973347355220074063259883916375200618992956418456603926158550772911433508760006839904897106169169990397658489334402665951365739729879538802899733988588837589901011497925406315756633656382937168786620987107453288881201727924283117043822109251645121501003921476383025047264954136883487742521603868087501089875322161297918313475603747129091255630964551413503316780381509090586897589807313531680908025502948908579310581322492595816042225028232858410198277693145579583993444175007837586189766066363563791429406411426492466421220476975262170326353151033413651455150067722295346207926383899262260794993429092423551417746775017500475677755180819875549329922289559141507236286378753677312873069834417262866054003738971759167206861864217988445765226533607034001476983426454568207809578021789769174544054128522364643009005318408328066452481622883069484289648893660954134348935628471073018204523536892102507030729221166046754458552313180311167023182504880777953255476145533773072518652827830804399466064079472394823561770014798748422768662310935513777407945406124682553315783744814240920430479705744009739927389333269483561052345286743102451770145770513723759819443290061458083506366094422999790564740954460658439813759174868104941748387142749905272107761170576641262850460426340376098838536875050569879515763751669942497218585141947551346885614282723556465239782836486908368762746850232132551365892222681197295913144180470229689918831278918885229988792448639113567058913422639893145981405381162551251242890076262228482363286406542784623724585222137581771298188017434396568942884759679057205743065084644769355695763337294443344561476221618336852782108711036202709829138339443562270956266796458899619596877931736020446485432499775380044990510766840046389750672423580437031429089016566111008907802340520904942143797101754673676104071425178674981591779919064923935173997100881787649338236184294009936583451307343581881242727452799338451452029056225072221559703414360374819638758386210587375989183397242799724631442351568855318278789914633898006911353353304444666898465927251766093991696897689693949742841098570280960926041643384955706664523379977447554405170720373803164479042730385331414047071822706964780615606865026705312652622340463049649709744914941851867286372122455762127343565327661301246944103392313833358919336210519462216460625776643273506597812565472886765237200278954145180551897992491499722812529236197685076525454527414077700017050356474215398745744862872051205894584572074603241633449374966921192843261558608432911649118455615749096989219730727917525906739944279113440192627195883780452834225977533549097520901880374725699308168531399812605195400589625877230026156407769893302746902615338556984615154559990535723347603565753654654654359996826245228020947193085186224974793014047615523245559283422229709029364570983283041498075258242635075669745327967359889036293048660624972627201317243866566577367923621916673566655673121383130624549876278590081307987342364922735567588336988679283338601952908481751906509864544732717732713679313862096930863829595219836378285673043965085807105056901999087732430694857054565380580723484999639223051028279764651884180983564844988101883357297682146170460749174451599690312591268068902655215269082617883422848931679938124901273929311904635849332476245987365270909657217451210842507344273168336399575648695919519310628806171531833929635541076039070466524926167342485250709628228732252151368418571479842205642655787653417218899331816750875734422836284829698006126253760106868698355416337809407172783962875274788567808642301208159451326548818629680915941480859113020176125665119161644365678655899279809753502593499684027588175311441209362723987784430953567195198342786302383282389528149076292083027010102362490580040780663684590195320252209905902218927351926947532805846566673067049331440694773603145999520495874562325343255057052051217518936385698449470935851320682368536703091701826374559270224058645355967346214629522709146917947931037393685528965043377894274485477556799104917289016755003267114065841235893845064915956551903258142108776605001641490083150446854595723722892943090532663935440199823406381547471458408274921692737731512511770381978631927503662432843066378368721329451831124606321754774576460038359436377561213477466420271001925703959936865196972788189226390166708291954104238444427694325205446768513263941323850431249846728379807729806969481623629741684588800715101138186218830747768887490748247745637219385308902298422404172750171915109471041722206158007697737368421461067955313584088212705476036162042956115688379403172498365364447023350605050599798726738447878165000748055480685541059630645599402114896504094899809170530822747783658319799980455042245778368999046860624246903156896271835015331010236298244148444968553090727109009004162578567264181399387792776345342159427138052728615024995639578737466057048552225309427714110712847728597636620800271571116293730590139478675411879246508708412857641134643157793587969826890722081809975609134498145877336589939374451283464293257485350466362149847673219796793998981056973204087155849728895351727540852894372105466275767369282263885877096338229404273208682194144625559607509453201485419000501894001137195074961568047957380668533719347200146041156013523617711572734744214067429989299077630866956823558382057213259565174789749630093758250287227479887980858445950018684369979899423355711113822483675794250524427084341946852590384483448187917661073814358433590224562944639684328695465939474081784290020963762642384828661183240418377505566985718529018375834960597590213266641049305738247664261983331678358716541844086585678433977451760546300245241475100337299920752225243577396974405065604721919238994343929189524988875829589761201382438115332519295871769747695984641877135372905858497254792543044183023589427676466731993043567625410746956785812081628876428860226995083634817711285822866523606173072011917844855723355192422879229924280595734704218477358346268810077156396881190653989954583859943095245206429114073038888954824534070417254046104833461586735300520727510178164159232425671535549291270200349480252632745116306554191870857460934010944173160457039372444579567210199398990749016728359940583819896663406653834763414707380072791149368922061235246667619287432569048718190111711366655218295722115203802291055650786857274597192545139537097883232245617178636925269880369754908464712288313357331786840271968139901112573786316162721653164836559871947364772103613449269218933022681730283213330148134016414971216081825601913510874329131398652995203835966346373655291395429242214896712308760536911148667251582733287598131319651224023862243607427968742362624623100008608105078710996737951157351229820436055898771155744827923170242674200222173605703256472415010335745022926507537047931578733160637615754714008241866287060249135241341969240635648895502049186851992978425643519827294472353676585566206721836870409072022133062982717571178569629683056260615440201387316847916201784818806913421667373150381202919830007292765504215907262785392487901176457912325455066820630274718983354959266346385716869173463713755130901058638006099035743684259798479012124939154646204312628297680872530856393887596427986225190041547934407921714028825493572837980045163717089698856280515889198855906940655676085087622696380711052869098538680264484292629367113536179794440979850891727487709880941494908297447885154620061191967879573857594752946780610264838716098069024599931705107676780955987457015069533680697596648985810077540211954594330230722983316619755372166671889635196110919887142523016721656695376623545349412027640720975629071432909982988598079166421293296261699361349368228482281520200719336429740106936461001172246932504320950259993742624540693180485231571641899361835206762362657187042166195165419558790351619212357617199068295040045288124137496483778905352178870028992053131010851751976077403123663509107418201918023409650339699438815444711320385716554239458565913499732428907974122477007309516389938615386982155666104768708631337168576233877444132171940983961933371718958651859753890511334433141406645559234803161473251717087381220305515745283729360776787050578850559708400426303134601255675136182008690319177713485150637581008723064036749265545556256286893481132606297437812635100237580641449115928819032393915950206507627738943151416212709435914231812584407796546608692321383310381729932731813392023989208185565080418744498591611830387258085920666623817414333429203699191787826726026689413851582068793179769603514232177218019230171746139354971065209489938741420763338012305740848202506404596493896402949307783368276844749607323314244337204967702243518106059928684360373882476983226376012229932603542272057924505751074356443249722597949408208788811460004552400676182171611437905043248604737376390826542573978750351397405564272576658417728576280167682106845493973921756812770585933658444266273458806220917567332066156910499488914053785226899051515667618243459117392070346235157039973863102155226408932652889501944759052742206309366601162694108200086729410533802076773790615913005627565049034117765846551368261603180244717940644293168216917201900628149885999851036630460830581080829156015647861686637583051473800131037196863264786332401899930354790566563799122820191277433251082352593131249818566089064496145776543683115820475715264950812873463056741749815454624846654660207216256564605918688569062808357043258676331134550531710516584016663033234934848312586283464744737271345424460793702651849079003471669935509617935364644538901940354747712243753856198204980341684898976971496129191615511225768638666494540581139748831729134498479113023636913543236042272931258684636418784252440811943175159527005853901434762485494263403921863644202862247696315887335471966278510040378069916534087205299683722805335019788632058307224777375804326799797380807715411652355156782925971720392332821618091720834350541987555823378448344321342789133300038446346838310521885783036741819621198486336723677058893317666767573701479432158251270396676096638064006426308837678737294779129022877810749256668885211419618211596278004971908420762168588877754631857808667545383306387200801184605143521457332138024900251373651076163008546746156813225182942467553633599024095189158277252667829328325283477498848763723637744447023886728569879256190362561755120763321344356088500724331911177634660310331264901638437775032682391759648240591844622556736871270000343988921345718640551113171314536227763219608314333420169158170131358644650395865802487474229045970414987450256473628790666565983539254723675070046234177924232048675828662984102714971018707684422806205294870316156140300900657847075211030770127424744485886811538155215997677194614360162727900239586478690716465992151966403589899122289065025742580509126868181355081257396870509122510106878686233538049068574143144974430186105238407399950197380439757845229439361264504818808752018008058465041276724746222048739643554264605735140068924611439357375400382370787606587011244409106936377880246527628781597015497029764021376649320145219752080238554970278956611440242137521629741964280894438697006572358534385715972676631033730721429702272921628793501483427097175198979347531841382376836083731816044745854980743720217919103944198636411349753261107575720440040640845111082174916148700278254194008339729715762055962627030875839443238476454449359147524186971884892945597690673984016347725114914745741618889493078381587954576981501215606734748355174718996877415074689078431416215288983638204285809508017639253719533372243169486151347929423756279691334616548752825611028782181411449238604214545518845487549218003862182747233570687239375699101381179611702490257690084960102835681772915292965039080906137910304041527462591416220875656370637152260977588058555005957111242540340371412459938658578124859766490726708889662290837385336026519428342170816857021761987176105226111381083719726711075430640346971299510283519598014151536098415640518276935674101883991922502870077309947401522254861321912835338335712804121579884345134429385538738422019750377329019239069143598929504280595360281493697044943285493945698401959857583309864888714133965331321609809056461798538237078728493612530096261198519118351863847433408467700598316835978283853422792241646986951011362007702687584897774849694215511158230523321171242223996480193249351723134201625695989870297765430565338973935027939228273957563572718483598609529189277251374066033324580121626243737567608984281153060975728285578008476996755167412016390007333816310040466734254361620357124189922408919496413975094715037947372313063425874581543721449159590778427595757700657729185512122785394924883487162680480285759752262578445448095394616001400241060945477720115343338437145063134770051894840244112521703615911152015461304113074508974858972160283604735937914462909435569575681389015898017675728942744680329146790736604397850209700704358669760468130765246370185841409622610433868266802870234291106210333006114404193756370706422705217475818253741017089679828072317918512183803809966280225650794174359300334037537907056446203436928954112335077006547313636728127589314518191517044838134603722224197865098949813745203020980782506931625375653365422178540055348419171886916241376111702172469395808784605560868199856153863224540433775461608974360425747052989545423890534010937398443661906100351408372624347565223470669595381609880544568470899622263639767895077270374164320735778291345908404465866120107733982199341028309005825542108542757719662838196709551224258518291093968965330335880793982607697057963338591516082616493133848555233460278029241049778816054896542995683669960994796463353875273435089473298648039956684587389907192539758209562256093946451781828677589143954023903936214054625995270922511866880911010026279043661726549368763144553000502996067412363531562343413352308036981581500069277537190895235498442761764455981429134286551652296286662483627589924283907434434051053479206204502358289361543967908736747980302894004053407518869647794899195041570255363098269544824827640597121284134660367018107232365788708837408278730792710191700958055865681631091798448913327368919685367334004880660806313963505655062785071880059734896922738077495878710294019131353548734331761156257546406665159284961744622712255542362165171455538152421969529029937322734374126309600094691929638806074435714617563301921631140600303461722705237013610230419265913161627235965179502910145004346551690285002409951712625997930395948995951782485141063863377567991024263034173171166549936777703072580672366146119766821566463157344614483565872540764139248236051722060336670106396561633404707471779838990862918808498431624457148824765657520489633841197053764229172333308755174926064992871212670491752825168688065553432633806936872147963101511940264778277137348096507968128015472578810824471750588074484190471822294460311369676819015764119152200077378227687842930913829407498073620446960424783757966243908123095388770507098642103372539402596758670413483820188695196651631415876993647001417820033805220982136387664279325581926358403536048025922202594392543346500607370300718555900979256095191314756623920056135568929192025528590702154625303525919275450860189340551672070155272610547709165652510326623361263281919316691271115512458455124723674985576111926666023853968548089773926401445718624736069550873710015397579479723520984470347115323121905078019385085951175448061275637911081963637114189098817872907813317746538494694888785916790763014432946907190330094015564331311462630237504280170417350455262705547096732818295909705146798940922944074731886296229905653699054441445457454256647386360063340554812108366099646148164474026424241788604128704818712735866598419572907154666632756361904240570134531709836829050724350034984455187151875137362051223909249522311854094886486352805645950046741336808235332186585942853731025927503913412653325628180392476952204452944520702263680573677943598750737589991399268578313481438941555115832550416310874699251802459749102419759506841763563991783038524625363161011844638694657559936398583720319563684403472532196036557971269232492243247187830746752840268688573843438403648516327533168829598601113885464815839451596761051225571951797455799700160772855987838203291313551783144153899017980389133129402980381404914561448800510002037461298081633171448919758928424404698010286575601868645468125012775729889182376394943117303903819187016750752845883220857099297808251592536191190894319380209948071573612358815037594320620991188017267367040634143321866183596194414793660842456706919486388647219804563111596306438035271586618907351717808132218541988250229653194628422661757333826096712957610061449344940681024687416441647507802467141707083212546491399301372529651403228253243623199133760284558047766027085609502732158786166274332624753876417744253755892161430784433097573238422496369017444557143557807257247869749612426977271321009238721254779191205082998812495574102369591044153028202239424702488737369582056468779440059744053760766218959181467487440628273337659974459898704160616464151678484648828277919678286595658052827410507181102719272806302611669558813275225213473482569406970509649385616542383707317702648286708493914585549723788438171419812335751085225283543112582073739361280524703295042397529555234207604842460647027035158914960840732849878235677907870200062916166417491306012649548435729473208398383628121002578290014833389838840479483594393661945314049364496478459095028253105064183201603403573701512757912545191545538725414662569426823984116849997956138346516781569069317157009282050726725946795964983679900647191972992359633541511203423380422760315134957087603903342930943227796349717361376316726725381498005569396938206062560427738222563274351279566937625310423075051402023551990404972611836169742013161407733790076601338001465080790248063518854524460163515519238180135717019897556322433285903580076067338497194260521354996081690684320095525023118475648468644018949996484111994771752508345791096243797913967687823813410513686929401407421494562945385813840626476892456868903387009876016643826659090755275826631969780313710542584153294238428512675714598787999783192768853437300725690051229039883177889104047521507727575873389507039512968729666023634109678539828873644037089943074352125790582545565165612630195239718586829707323706890054379495810538745062194386832766699833499861996721170324878652374086616387931877305295374135805484188433513783547149037739149172503769109729960516416594085837723578874419181094884486180682542896624943976667969188254062329733202158405839881628285108914480279972089582605442209183438359598386807317992735004006277373375838997380399392915490580503244196295660730883183781165731550809942539126151883467159156470457570856590797204766657489766347223717301923043373491665590778145811576817035591395594844833725342399558328694393084792192110451544280973275626580461546160434586387119099714333328501784389055126750403442993562853877416652321580028873369577510623137183706101567701876085901323971228772720930174938101236739694325802987061043031571108866953522792005167205157928867877610299274206962133411868850973146975194527175221204353750074019581304159949662211759342068851856832093263991491748736886296670831610755715154064747183138920417808596418900272299932773205740585453049122886546361419297136328090695163458599887695809590842383012889578266658041376215918020096326688048375192357034576332213929902475454816726709009043179146155316229838083815581135501547623396384308897523279173623882125476065643826195669619728020347004106067005451016970968199979310160293242743922286959383955698358308967029581747138778572567789643922731645335476792562964993278938188525328556117895945163434873210044793784159704707520897875966284670696302566680301738762819080271437418753941453790538445241805785714242857057117801267413709631659471135852439196782782723242865076867174576432335895925414438064348432367515378977438530508971527508747632473353990298902671617364743212207567455343588248719407218676232901495580189205406071035319877249782191667037440464709548357911561827041327530942323550574279597064355617441797433816569920513508323247356884295906631433274596965725041132644054259837407816248189519798740332889712669073390331731196879328162221354595923278177349826056403763203481938041058582747528328463716471164851510208932108504730901753831893959319201318623499431780548004438299157628440795999497810072544398023654239186953477467885908323705001312734286177384728050021017008472120572825353391362858792576582073550074883255405028253299313768560145534911047073360546046941492873888478738948072607071688267058441441664884575642065355375760788379471812949810808208983452174211476444428190996427623673494537548033220863003531253689823405224493881350755736050303191835419571096183397029250023618186878883096122773820694710924192254585191195851411601672297710526685279459286202765061004667801694632795022535799592290255439481354512485360731830228499102007215348720360478211767014216310070447111426650777121091222227124536706587461001685068503639017568149643476324315634920774135618410131131085206232276700921046060479842375550211785973746973047818282565839895382712740517514673243313882914817779888370702844078409560991476438558991813518370691608644531866972577884236380238809011181450038249202870893635565090131599831180981996302599663769794953922837965585445553238544665749926709044740887245762603656204135105319845948146585085185899647359744682186155922739055285837853241962123864104297369504482835583990983674850467268393540852053769169328002537052355902714523677764646685909629641411835222227881707866859676427953491086548932793520673599844786932312457012114754335117183076095472845638789188524895713029947564840856346983446512958319803374964184660812885625943530908516998754789819593450258258946589230135050897595104720334985259683790662427114097412050755754882662920273011364835042951781266277544711938821786404654697955796682509864959074806303125344665762226978378347054236486750266171823686812148234769010349929328015026190584827116050820235335616606111058457662043332740995940243909016014075616349638287911626491918529936598414486358261053406601347983115703826040715826840301045148773039234276820626930102781726926614453869263206285032011819343929666389504455933656329566727583595948217910831643639194446241197139420930836160610226374626149723826103071472468178900289514721956727154219204957266559880596360083458894330070034510345140869957716554885128279008202786878448769667447613276385613504548583413629037218821044028318300896396066275652207348286049252199765615171110789173295492032035094461963881487008285964801781520202300631239869285323685089456654851771513694387636477815323304030598880628348981585841055570737647163757878993399086631068967554142617992490372595930016262813648258026421071556926008285684682429038356328721014879326988044395768736609540976880385829019109533119576165626680111348134952841998964917051525545570839237990108988778835260499577499814014455460079270069988332884513228056741311011402893570754296450433919854311151350840674667415052085872383088416331197248693924384584150844457402036844540135436351921819963771044495048298061002993765496841582455929655839015407595675878975880716851515913124821742663444815678293690496345364514514134054920550116820824271779140321455845120969204509396519314333144357646271239338355839664998987289391441842339278335185488182314950570001446866724383599619242530068342409561222535377226906508450192055705732093398320028950880164537491193669394472171844960415689133430393872555867148238693346343821231390145438796859902712132661478659859355024932637084406994282783920130202464328976676039798119647666741930959423541081705525163138638764139777775071544911616961385730311076386546167923057264419846938200471302833601056319262656159820511586593558613469480947525679225996202462397153763600321251979148076043315124777704247992114104394459066134104161073284277485348747417462183260204670545878375774547020316091816699312602523518153038904783117183894200276763197646087141171530918396889720922446466673667754820687412364318216452335853425721860274188009785765341177260910830632398124237882055562374740948209558353021942997743903934869824976064749927576887119183773039935689648386901356839872914395073088291383843811198411256994820222949254215820785167117034071565330016424310961896575151549750617440465798558360388770824049141407802953574166199929923831870014417109605939208865908834937656831068018477399645939760161625519001278727437397943951589097820361589142314330526716669452711078944320938344906697704625608588588145187878388150791500738442414271262931971662219014776140517917642817397152021734305897988089538259739926022904036298442871009648159660621045186174731103529231183262019658179196791955100551251580792210541083800322336774055427995747197811416221232509665126209697377248013856650179561489819379513966494297345442489375108374815498491654046781316584902929791971501886503991047551325753461634432454483423842497209254413417414609129133232505352894121312749944072716167267432056921183846703928542650754901422216502134829622268794556496794580658633526882430136289817306066874506439350797545238492763395538285511621803425282033354204664652695725975082403946556164598024309116306818015360145903502804031222613138662199471924169733535985754767509269656192919227876923625217538302185229233977446484140432126001929008123693554009197316269202335340499701697650084705985955782077083858099650008054433711877387540415219415422991714507421992036491823332018780407126876610972185864697717622753414189242262239650896497075852149918818902767069036926687336797483442156432391145103269390464725397311589442375925851247746438455333018425896361877787901049478228713463357234614686245859196470905898708761899766484968302795495266260689733959205017698317280054984750503597648666874086285994410350381826143688725682148767465339220641688265241528896373103277722891380381451663263338721230608196272926773944414658588180868706877503882379042748251606023493711218120809171140817846790995037480599235093464518290364628733105112136656262115695387677671899356522279197463914514044442856549847110235177836866327969848089939807459152199287344255181377222835549653756166353936669850931167093224956316791141718118927776463925066626919291212744743565721407439409652221790716134260597550622353367282578463819528361068907124693814528397678944959563527570162532744651441214963692045302792418419278764747268889963961773837625561257836406209647266012997739513942493716976615986766391149141161507288180254868138816068730541128374538642874988183632553178466159800179943370914403502691391544010247117142309955512682776689279664235754319893032701762853802582513771951378956377563813757843214352819442424737720862870623925462461501492632469976117335325043916717623538289309018467498066771585485407462908968651697305081100688220429105903402168924800903051192492573356689234017311063091955141412536940158135263205923161740004974435820641301731170238725707017636024244925127691761840685847152966472299527175483698629007071960805841101741811620627796444338956859382843953529450577892895393991941216857102892352065047098661381572101419942107843027840339239893977414635112342731154754833685281595071871398456670784178204948642826295565856897243166682473446023113008671991539868927586682295781662790833663175984334018362929141589480060501932584588097809258928974237991430351568560629225171877174978267633917256386952554083125065727075307555490245163239706355196002676198449693232541835968057497174462969430528753834622541090787564444913686275365598856873596114034723057275938702741760271246152073365657195622849613807148472293048181829605227173031225101016323820495054140141356383467057848751877746528956777978328724334467432814941359775235446327809258835133102319743206885641559588760826785156135893578146760639687124644553805296185475362927727087869960654788919940042916754408554443515128391362037665992146793195283354961516289112130068157014753201484949302276972180284612153370384910061522967531510744506541895778081120940674032440144041238531302501430773134321326762914153506578156599808300817466202141344534654780196589573875629943223491704916772764922870962605295816687111569035405184690799016539626193978343164179962730153497331591863630404952415731916054071660635281132687290940218731665433237690766191664382662905878807415032360559977106700922115184388125380819477600749498193279938711317890503374446114527177667537299033027514744047483622433101585212336154599886851588027355085380203580677824273645786519184798526825598863993015670843038722167188773076924070577183671824111178299797011153955171362503343441005188555257284846741957129564214176431923270153190570846035850825505035384097440266191914201187991202832609859141184717153795591786997012790513560629575587769128817158249880624827636582875456185100611776276240667003999154843382465456129517642192366158017264579586094577395794488485551547777694739237149807972264091117660101395701333941027389761377576326564635910813574425653040553043804294649871373725846246618837445388424792093725043304292864405275010871391613012062817750623971868320514505547119075964120833136423203561486191537039390890371143013331369929577273320974922578359103684516434160049474310115328815940490111398269468040380446266654129300136180159823702661454144207757510231457029318508611903789523243364417861150686310992973118457277275671096434761025073232377518501074080180867706841561683639491511376811157091404193934068419563371652879840696387060516300949395926681992145176294996985220164433714785225742139530221068720682969004195608187030924174592754710514097386757239254662826484436481842207367198755819790169581491771515116329365808914026293056215868853790342277510942937271089321959974639294580311207773112302010598096155264959154332146157363702757145991908065247589618225727529939971000561572704976882848088233438343538268509432330134749547058851484777905825453336674068216404196703213426587703080010369533077315351987654674953951049006809166601597384544578998310049110649077573771891907094953472042875787718756473537615709301308044921606500036051646526571163308705391657800177036895001024525310399812394161741315767835683148627529112485198774824940364234797336771388749332248255720848305055425216668258203009959049357179616920642134527889183176686798765218636288289417184964190940685084720891013549933452889299302984664528543281031751410859082629915004389612744558171440771253685991814564208224552282951931040528796181096549260255638213189722668227466841620708801994063631293015034550120856152748565592716664062353218227352648056887326994278143050699339914881735927740240794655477525206062575495367815415780655426484605352907852259619091599097886961532860794933290378444337002063548266635419816533412355740845402041989602593442544964898739704751134039967879419800427125610023953672907105069903183011250562599151915234033055842710379425781846136239633553997760474362174403573807133625022283106815949523220142326573483661893453623357626029355849691605115403410741038340721421123865477171968623371799089727766023812952754610481632422237924504146728174654502154903426589280861317465092445531967440922258908737228741081385592468442747815804501658865471026386423714786438584938739463612343839701962621010569698429522849654918907605244164158006960205536516079357232019583298487768021832566730401757828795013571914796222172948032565764663948962873366863452270182542127537260211322921474029095476628049901046035016806085240618684347940736072299840123933659168503345456911641405256735680333556956657499673240466775671204676832311039221586943077827533257894692101861378284587602114751479346596977193872341768633994650632096817287146697378464647537729667842162706761829807425646839433396702579058548095734865646280204340235815514565793203031863164986186057041568207344820890900413112985554707970212452888653473150948881364805129566157649994640397361958707398778100328660930872107170658779681055542906515336474242230804312369158852829890267256151362334147568839158303936347014456882095684755569451434434436590332322545941902842529215755153561258540957419870433686330821916005622346860175011606196290842410425656238418901805932540237005008857845846395437186269051026060763552445982523164447778592990926445899017566177466726506235418341868364146501204734524713813863780171697825864261861717585414504281136015920645283140193584129532117110977860158220931318246497441505962405596308857580665447510804676851563963995363755501124075272884287785263381997929312920983259299273703067938644931319753182891894894444939454511514696737239476527933380841174252908970316447228849400243176343064856049490145703199209427309526648258259306390946042172812411012467517918096514938009399405096518873931382435562872342311177511110358509782921674357004126725890220541685947500493397614284316498914769358739450912316382416666326152590333630259145031410983225284898178918467796313888448425884620564165280462849355898547989541521939850366667544909453742996064156498195348037208174095218547905906540355901067550942721640985838084566080710587304789523940627931542363030513143008180690802046135832124331634774897368002175167607026375751764482862430393527291355987090717312115451280499403602304180223516559699388551310312690213864230694114824115824446298874054816922690783313735893876110423275888115122923877845069274331073968177617656088757007026655976709172909477444197289900411778103843753135608396639649148688320149072188979481932466450927847075710485797923290018996676454405246784900997666495160221543655823293472381508483241768281181126820528924812148002731043649305114637434898850185243169822883571654905182664881622124900071856934448007159901265061035365111397562149014776641292866805629842155168168692820831315368874739087236880892765457751471152340312893117684750275371920932417628396513589612673152041128080980019219164918316658896152311287586069786861071103274485678935018238941987437020449250920776780590594448923615639795286416046645586634284748857600200448652916078940844852726608524528696815569455644692139203871880773171042574578068662496283252210341729872555468546018576787352073074513310947366826563113953570601574745026332321356745402427169556121580466716380432874028380462321101225766970061336391993388556148731314881574309934054051032261599968818545615562754756224633646818670270080953159682991220271559792155066209652626706454696993862065920823833706380707763407841780505417779920874866741324118803057470352476816184567564947147206600385466507283762707666850551303855183904012270695785194080880470500112281287239464238110747358039840489241081998731208998288002663846483404146160506027412414212620174580516674614344858454851835720110408320951154513396977165340218560680820623676236456806677408819715827032438016627503626448150621974916428594344541964262558023234327501576373334837725071980826105129145388999255698774267852920456165979644545613651057335247923220945250757107814051276725418819195400576756599960840768832020518469853556155371521089438361186881203057453722617023120662162967132162728884790579588358158061419643429055795198798042673886006284124674850489728025792296317854277763451136743952067837072916213969429363763969808417782856720908738426362135316276131366645153484965508400735831610709325907962190147542966391914719833555386111202227536415663573165219034089484000018142552376787688253121779463557273204590794622783289172874849230532499592732640058699511097966764872619484439228134643378053166176578220976178580845326845085221392662419330529740123070759490656428767147897481775219196091054585962999564131669925886249555816755044744954560369644161687036375196108678109971338667080837427739364042596274573934083801275095587093025753460708561574383464805901025743947434896551909061548418138223053261244416396862389428671896991594139193686439745789521782882584076271918376226647886369664792086767422854478955991758876956566124387941125935957003528115370613222118956789279916226052455861575320742798251635623801264159131525610648029789603844419925417174466836494889537840584625435499968159596493578357537652664258331788212686135256464860173063341063257943732286428604551510533334420609012844222769296743362259779437983908698643917909140280308007410013291190396947386886316628209132562358156348932599324816805055842552882528709341024399392341281911653537270461848275990205353724026848774964743177980375311866880443441004084003142482473803244627346462529029793250144849203415060025418709617521425767650741133340552609372173855388199357451121832092438271910538615395811791867320252223406902319538340270190595129587530944315348008557489599555767396427454932074947737333056626726942203670798344987987312115554731940364855217384617619481061240496061275271565882483364174933322324600638181148193801085710126255241051605693195683032219204269259403443899814682938928074129820962480286746191627501199071303839696214230663979026883620567789722468600409480266139163235353070659895874235976065793648063678922851026228450819509572352671997501882974899659358759490651618214215735228003878456990395971457682638090156996820158963158125581279967094336562913944657866131688067155776417216771874209457818735160239693945624572140240447480454877698032404690422245370222359430618916341219293440837573238146799110767968138838130925862938625331591426935556539842235627169692679927430467110725563542490438784484136449719454704158985944157211369666788959999711171077894263542362788979235529651759282645399482306659999680600031820462876697496984469978753616327407502728324718646138157499365524101025312902723928254722447688674943547953915671851423569342476451197598544247263846668541500835614520745493849166053581759094573930970522580263828552993831920165761540517706801968722646234009871613194896441993317560184606814581095443679885967968372961956723531305678404348351353679190527281237064389460811407787185100805939519764095366152300568815883253275768495542486929982940973643280780714949197344899050306007641559764028414954832831338132559398126594157925999405284632853414325235279988932065798968655288825860611183474802910511932189751103853623886299510044799510881067783015173919710683810544654785759724130577923967537733970363878591362818822219548734882249509660016266980244101893434916040058045408781424050555887182415260523507058127589887218188408092767400944342397205476533227811220403665532331744649867301496183331957525144941824125196210106635012283137920301690768234022123419757273380459184047728564168488487896784578516963690599117822029065615936583863309185874378352070906583870802314754649069633768613149243432414665964779635179160000610358410606046903088556246382754268953975551040419747969578498974524721017847724018676219683235508355090466648569906620689037395610710575276683846548807785176957855392469815775286298834489067494699224982289434594810688763401522528541298987888689528573208227996533665219452530613089648993222257914951806313044049742128636077000004826609371596569495424041679831795223581276270222280693841347270074407533364714904596380823123544519485554955560038646415385279252036141592047736938304094930461502729551831086695542240509333636153464350983570942922777215356602721084233048668749385360714100568987203955348895003219007946606070015143555821868272324390852806103840779234515178385537170262587367448612750901708446561167039246596268869378679018865107806872213181768202169850737113298497017690296626839563060838071046733735910248827167379635985558478202384301223126852382591083964573203024810308070170893324509101905084167482651687918008161146370214153852002235085536305838874399980058650863006637425429944853624121271405353340747476913576009344902563142798417807894468675436244800253636350836801881597889680724690246875676605248698179568107053701163486722561236077286474168434135041140568752726818964354799049215938106422057068939985668035348208541577751160350201427014187480433572428502791375400375088501136243311280105672656761818393825345166878606871942876643492882836382435363848666552541258185183683363540226210125403117141806096185345912670455382945615330802060775445023062211344320914032708111939466596646725033841346021874688179806306849309282567985210714347026178552427909822197040665461580773724482549634005553021348147963430366471758800950037553921157777411984582143072776538316612292750753925248078539854378352674437171535632543003924869902671437250695595647721425374456759891601423070644505897993858538134084366557231005900212292475795070848276503758226132382997513829816814048045764881643363681490844252750849394410713763387789399321833616845434363409938674688845864045574903048962524530146329733783833650841357671896064808325413011870183504938553780129207760845606385345715016309627280896921222473906211382106210915875620180316163430872278114812462823694932308670791744015688590508805473545850289212990158393570099606639145145266414330924073498813624138243790676046407182448082224392733821432741033262321687423435330291543548859086137895033534005012977659584663168253326812848695874349981401098011359516769483682822521383802301938069467148548119729627584143975848999192122363258282321457051753586503028926974091929531420603676575404777932574032507243870679884662781778218807607924200726537191560418300767372284952228086933016710220840005470158112467307734398858048600191284876986123227885397711803416457179534994231966541578362314378221133275010580180642137840882166737311455347337954411049690562967616204919715271193458331986606290464315624473996980030053569109540600560672771303681979755577344929986385920001181647180401145361996958871489005305829014935495178885558117920286437320288626875964332198630982949087696491813232822505678490420543064505671387276379637723988086235212852123458648465133532377969749447996398337851201986024143054598824482722624408694227111505172957218996632555908182543159138522338660647920110485770963837930417472797670310141108258917366229494727326820981263531466823918415575083504302498517476535534126790567163598822014531647975784029042015457941968554277984509684928441046289185907373980693939172692345983824336143781938583269254360583482554252761800419515806559855528597137438342761904917517296292397931245369819076137563041160040591276996683096269034704715940351775178544502548265787290133044217522596438824802064820268503161893525868091435507173301270641761622090273843786592636614180423675687153530318615368940612953428670173434276226911815722805471331901132578631688051922578216111245828244311819981412865813745362832259803674097550038917080885881447166005703458527011051053829067402100287111917022596302383094252848631959686998438158962857502557943594866268531247734453584615645451088112862755413615552395016116384516735075279087487891005242497311838179672754071414207000716244897158253156188863143788790279486526667250105244187188629318941815323865841646861067278178122859858634069775046990703453403404386127508398174610048825224071909054739319472520537350960056767401446531947947831986648632984949275638135329720203284580928318988812765108772660719834467786331747741308882989544172941072365086478031306337394748410471954101008261405463549874278301964831661459992071705487462552692303149007104470875737015974397929110463770115663384689145813456684003147512235407028628697746436076697893221932870668273587932716921103116534778496571912766871528971031168639785315723058396967764123674100179262302528565359627256153630887677100646069383535171197635861241479209419523953906351092531480568449123455954014018126209157770777938780870412071877436167856689536148810258560482221374501891840496310522349423792078494662714670121653897976104051027861757246767109365075634155168636987963755055438500088086342481408933863132895227451766285239458330421202244459993498066364969469420944193198168151994346394495913824448556333758027579624479700025012803347767146131059921918266872300182685119574932713312379539164762203661543534515932924340365022829438360946328706352008847621760709213602537370226731175931747409479427395207580405098967552663351906122833128959333566727382161416952896935216019857255490371292321507793314641241793592278816084008662510242802834330405701794714603531642125339605865169218340188306208536874243814598384123980577395119770662351401611981117218530590138504753280434627975790911106127971809488995742439775765711642442425127816554576198485737877336650330726012720825556499957713229796862231969994640620655006391173142324728443169386476630754649867662655712694132345891754313475438033248102910858220790533430424496949657860850609138252158689922846693411960345131698055661545092166540453724054459733777212452213454283270502404182282076296377213738666007665201243039837416508475006629499826956235877876152457035842033077918869723743946397762916113902961087815314781904438013537419740715421876225975422294144039712442473151046027554635016008385769621980265963893618415238022824350161258304852624676174974945601374866770390850793155941161375242318052406082200057165277134583635986462664831546032474849278067662951787279609456242776989181610021136929661771012055511129619262052359450824372880251849466284147379417129782446477180237768118332915797553610732052514074869564442742077845280839840217259152058199983351100952634446769333931065358772780401268814446532872836712677405294781259478744485442070347085204850841979185437173135150204248501875222370812786268398871310858253513915926323463666219305340602048086254334450078505524445486082317872591052321142653475451500948365373852003384204463130066107926100395101565988422069402258662591119330034151514883702305347566146858203214547441812633064646364086346266993402891197312315161925570110957274979918944277346009723885860342082039543612322742401161700614375522172050312870564283812297947837809589419614197514896989895954073976615833079009460464182180623943425521052571010100339845154138842236664620574475723244689549364545206387598595979331647717089652996278106047137741061856855115368788446534691033478640229011206071631846386079994603703009673426617377504974198814820383556160819491966567657594143191396331343993837489146104370471822197307226262103210001043725079665428283154844036215103056571516395303520083421447214052387542435799654533039205182486346216272214782011391576181956530178273270335541412832002412250593634885238203911646795255277162112361453024475853147195619383520540527241096989826841773374652306985318830197055189044516031229844309169366218893845648355832702076644087609086281973245870252249368646420206661302259208866473935927218235728947455839995003593641095090089918253411771913130734950532958139874347972391039407748338251387401964472660603333076759382398789218095969631680935011207552253733859942375742941625106878176982915833921987114747055936908011143208736598155260696346436571503717843313978777403461513069075390183803253693717569291839524230455006266999665310954800409374156780640690811402814143262718116755895347303056007407910109269552144060068888809702450818829730423839927974617774153126224648106582938445449228969130802685844189865043917120396543074291786902445158808858430921582334816790244073675389378318595472850063711624246014786117345264928929846005211965437834859118231726751317095465113573618232032927705622757783197702662894661721506179599259170125189724779143493468124289318009494226065841537842281160524791512763240789107666705988813201455717708225209120551640447490717944966293816240799597405320645100188661007539554559737074145178375059586859367931874932467655563379536477556520477377101701601560517765985943297447500906904845233526542397315519104433881742928694938889172943947020832584646533949253922651696059823344734488971307955545517922982987433823056431843321269775504713989075923420458649663258310727960940364222718662549271838980971503177115963353042465679195216365489131178387159291087344965265053495481851218083733083240339442889045713443768868058091403542313611304319064931317366323522895842502271137423151761316104243506087213795462391303558120278586481213541129245449267066289455395139563686233031741084167023931120550954322805733585280783824024541158490669773298339094109070816202921052726086251506667284828953056470224518626888744757599923977436037268341815381084351511415172841378506323683647571227857192360020654480663558179687955091065469538264139734078242355435218142928311114773974297131845115544655020883164987259075121659759073340127270404188715403611793046938915537960638375200054343384293541702094833973931363042736077226296086808811963534617678027908585578897211732026415529095808228834343630427629711218534324161576711226232991009159132194726506293985963545084047837483416737299101302344219464265033698801855721140645806934087642007281820601409665871904060747681085910924992764113475683231490140744938205409584280392170223981021211644463830790815133212666241186370224389138125046220525413653890625810699849233913584681628563241673556871279718503725630550986525833342773986844211117389164587487454695006966507721828122966792585113494993926382328346156696529319459094939299985045122957525185251699801122604836970016138970565254927369319687511987126696132501799433771988658822638254211462538746137694740340092832693369317699278921724810831447765528927945925692556036612463609460389846305304899354337243410168451788918958495355259248757977275033936503702690574867868556138707053611156367668480129728105166732620800102734464930401415117364992026894740784733470132973329250697369911570215317874877684334192291762827690931530755383120479933354140765765145158066812425324719378607949282982136804610479379959415468818556942161528867706907079650637308847229259406845135797499713589314808068125479943735947050545546502138154603105718007752120499667742967878651661961280527767547645250185263184428049361528951416220588801007081447801852356778274909750006192661723775252854170978015974710826019973181142919171089029669539215793962466752858817576606751622716430111607495135372962037229903113769403845295126378542338603294610786421808767771351293730162703782607503136975237707297086297985952027299798895113624088476952230023539079222277857915998779822717541942183434564069725940510229004312905709567214567489502144998999181556728422903523802224019547349224675984421340043817468585675007576004600920540013770208265058675087124802354426642128258667203618989172704417983597821063476096228940632599868953342589725223498123144882682997305930708537250803270024670246551622960084569291528845080297372785645922284651240570431745769015635416647698024498997930361041784841748868190261416772410102688610199318798421038034510458168985407708988818033051878551435222057364121374765014640785643922853470904409469565741267445043585809638795592721094598724884409422597965227271345068763789883290140691045797747817766261349879347377229784654081630647052246194675329627267478524320720582210717352092133171867677307786565519181487120579861451852461977813038634376716607441290981546376617890741429050138370447939669522271103665435560834691323355334887707931882339269398848380711364749666536386243355661511178272566699118180756467013677736358722451236475730585527389732414986049641602731023490942456431263851583813067949630506030475548559193350034575163537228147380373577152854482154527208173628623423629033721252265639521293680516773899462138352814422116692392641804880075624588399943568327384742785926549455547925022481452264054637474072556288848505840462285309851570203011940332187209603626652648931305741843786364662848844659769466405215070563856497523375320315882286891942105705531028482997600228976045422619092682236886142554454279591843860406159297809647521088275370064687845614616194071478272608205759495901604482600853631436120715526071394604525435833143114865223459277287011109842077311147540088196283418788041063605078371825609766991549326377502131922246836020527510612278058134760888476792290394841608411917490071624300346057044277762157355229755328398469135021824470520927790876580263360437872269471276822902138370571324542418980929006241240383888110265955075010467995217502678041671601506519470694383333043689442779700924033919100610698762896606166120692570189208099294696872099774115165798483988381289505388415929888548280003846858332945858504998004239863462283199279441553286549597299637718189312779140637964586611673866341366908728064813209040790641237346310961723775717731569962084228452672803240233316442096857685545194753205154452422287492710332057708747703357640473625119653853209340723619330711936581540795542000576185692949043632108702457271704942999024833653602835425230711394163506767036791852343267998229962451426702477653613857735210352117608264108774061995870410143725094327871894241123937514160250915004269834817346959442462913344034883076642968343126825132332254378347605098077478365642245957501593493551103264045661342565425645079578348461921555250970056170270732872263782667060781721108262713860371240042505902350026857853333043869116511513377614468719402652507388374989018269345402632503282905478932487604450581521875986889799843982435829786091321337332226994862273929068376851140133141251921969823115333132702985599054649985209995620321477356999781353046265066379335852711197247235777290217382250280198492511980429164485621521994730826728080799380812022473174074556363081995232440870071582198326285327805349164749654868291225991795564901375709611362112803676935338411004458020531147785355554035429980120652110719934227946447364572009669427589852467878337488235596036003760165799154970873905950750810427856743926691852482283676516420104851795273802156722413035322857734323975406959627328688153967155904147902391235192352199286429200699912903387801040475494896089485434166490680526388802214156179562509791276346291524423143078759756827354996691776010617562232338270572220394472958718642850277714608829299875283712969486496177940260668965272008834159057069574357710483312368412057888205331569659285288223285112971869056245675470441314738773300892262858035927670867743579801502523143987894521465652200394108852229354940266894329388198809868231018902907542189463541822972135717177604313379894694878617194439205691511833302022560803481769412982495581300556282277281458263453143223920479660096163138831993051971894776771078995677303377460794839634194235960837539104236349763390205879279217680904571918000179534114155931347634270626218114143965821593280881557375443518846246165352379179918229146869177395067744803072935739887659869502865393332474019808261248905232582181329212105248417287143971461875501255870243112186368341330957739607983769082208882468488399877927853199534244968897466828152770480121946644699078282317863061478587532223511318471918631880388950800498648407457874806560018559183234784154361503178326842682188058003580689115860574164305282711257222378095667022032912029927875387974646059775291856066414372427246145751342596029624348939594970377815561949902842872332518416913572105455815406938303214895811642223774651503467819023494596179042034540711012195974674737278772999640896956440552897567156765983087209328977893573763623977890500882752031868114807081440087363621127864062530277225155171930699117892557026558080038262336232869621503606657723605145035493456675458489360672122777848936132287557584155427986076303742285284864239055024708103512550508310571489036062644189760865960458555884081860075514839192325405670406092890010282738988208971183692121773006703214594727215684029027140557426674095982057452712205538323915296323788560431020057498934172082848788730397826208699501000762360098683454973067425558476448619227924151710524650332664319811221798020791044141828925983960457742014265992646195969817734453081783685528192914792800380964238884226346348359893139986161203017090468848022657387875084094489382232924724119113756015424335585607686462834782603459231876386676417111102497224599227469864153562833931738680558246637872834144947006903166347982729572584241847122704358093529555028742401242145998222884543612317667386107524733973284026938631103071939124672067243912444965193000057257656536987962107255345711713203116131714010985625404382879661081118726588846571452858479333812125168383560987679326640175282188322520528969936263584890616494769622391488230238058123179763250537532960517505962908294535836447351777807071292455394362025340600771663883038639751117020580177969641688967294102611873230990931456418216008032872689138219767561822643003629846319151308748125819684467353325416227218230436278510024781002935080189880400073665763885779184543623048360595634959417248454533830030218720198501507547441236224207804997889998354944097938237558666732822387295848252715364824018402128958391444370995565864366408821534417319677612400168178706297062459337279231886456883657281597217865237501221740526157349780215280474755915390843538280664452175687911463023480531225484589474184148318832098801635487744847692504665627159017412860984084831574173426854870373111254030160867896617845665778000584312575408897147606969398661226523707858200324086127863130367050696777673148644569716491961226823307727183334961954118504634839851800191756627431045998354050340979292927760377959804057461226026141569161123412203224895503066353871912213503496836226396442124098003470412456639779599593323843782240732339322136410554430481300474545487859120263805210027957736316090673600826762661221990008799862681453543435853269611680902526342845432081638422224336371599312255178357458593994525103281895702817176363023152861158458835339427289567132698773292197671431892454965570246972673842549414004213832795642495310491150304301783279476537627387274677205215028668386924077755408022851058183077451121583696309290334517307095601293118899297757769840304111500120917722999867010576725149759825228889830668725047819643177937534198414501612862105892861849391919059760074542201340400658512142159430170653736126731698278113050494228562463330350439719496569181518850437377546553368737311481572927198603441148013247712661270845344344778362320487013146773589593384877085939871772759084740944519400754165520983757398905865405604734471132105875677432741289696145900057998328782221232045947037053639375413366682768871771168925506678260413420921644710601913784973847294588054911199733961680172022695224468712212004155054714512643290447528890478543509031065733285082107880545017882453196232995494556030802071923291216431020762000034151267212874864327795776421342920778297737153428533328293797436780608839752732562142818491789296859436861327937612289746003170020297335822469883082947740315968792917817858570876054317174235941927587594122814728248364301850734087196582466057242343596600488042689427220453935776356010750527284595572129538919583250621868545094829182846783239541352918764851250348740231712876284265751609170880062885795131988667811865993722859348796152665283912686001254761009815314826678850565800699929112289802481589720272118138567915481144833011386932583729682800178718900596893951906002025547184063653721746825372850037981646758549358279405441838695735931802109595595984527403124184588579075276968458203165545516891450083485579784476589363759351575672909196595322396418914037501596255662339232465233925220784156895316180289928282957893788742934536246708930405359938891678748524052471827848698452614646595605795646964630696752199751624413479175310159228368283690060989111081822729797137628115991952243749587898194554484104535037308832871271713315466680318563309710228641459115417262547265868196246857535384970583389345178747355302371056957454677929067073713693622856907851075568818491945875081345027726973746182262477854592523153758614621942377768512357019282223644478001492592966905194439983258713370650906963044172554458006372384891885323614802088969778470700154080410203399412748518193879277982007237059746628397646807310719336066639833940884935444673468827713534932232971714560460364124618604045866224810075114959431309505261985515906134762722753154428930985601559642781808825252098613139999057666000884917378617665163874224959675501353899724354436931105357377830008225763686710812554817464025661588008617566573541079009540266353889781637020155438336559553339441510624894435278269849705222063016679624557580922268549040998067927014449041084038214679359056675772333404292528532850066406286228146092238271672462780916309080709539214980578515631414700827600057004103546306746767631188157527754180563043622136279428801484895541772717387334924833912799965491570840237734228184149801533749434815777302553761048734564962948017933410934163932650874334217135460588648742723012909705883954180500539095552400164617635828083107969464901087890203158714084464322423329444361353845316188019692397060009297073962644754153223689269261210730186322994875125796992329164001456804948356674529563568136181045567137163901140145190261445740687378087791869450705018341216245966352554445274446561599674879181493853506523170745698537620925473643718469141581867610764750243465672831348287597830707537016323200068545421154180612750087838293146716781930274970272901427957117900504133373153097806314867764153650180140407465578311131749126521028742421725311472013200719358224610761109168261541289933248503546868525795229587964575481760794056477073958346365240916153736608588900634704505276277579805477593698347235939169077339043584943352085426512256338570812674118518534113766415810794825923256264691364323318093986299837878490683040674312156015786674113373300771405406863472408244841597537238351229313709300081979298949833049376519671525541071811935351331331684628746997853109831127747029602958765972783409417600602646037062463723915786233418242926464011329380892967436039748113425129476739172536799324085027245399210203976225272302611909236863040243583614087600588231620763300477737830896699877132641028882642952753731098451020520918173119744908421295532975862354674599401299994555032185622465905288836467743300889868712292648702673023536434951207914587269498712136814991964997306340959164297523868820991083121355758084400497777613961830742087221579294945045397409151244894451721172267655997546276334366369617305688800594659048210340657258924683334518191936826765549571645850543297637421488770325425426798343931743645896489223658886729907529982825224229890540741281278120065639763481266963946821763154842213307553823238493684013936334687308999855544211910601902684170913839374941181032410780517357411598039135193099751810820459134838024105108610579555746745345766522837914645618955713889268582167860493754284665439330927357246379352864407725322387331892217309682147812114574450146702693696247994514406422216323175700663226146865865768885974566973992353794655605037560168488169682844708171514213724056602197698311741133055310782115807856663951581631915987812965839717213697306113808558209525890556542924641230123373328226420465842982839042397812120264399569470296974359445554688259992996143337501803791002133440054569924029493238621506031358645518561116461359307548235153222193743610686585182346763188938041032556201547786128896993836105531184600952195044329645892868593002551163553380641966240927968262811665393267759190423330651199244392835075248098674034779678561089432089018230717179933717797085380781950437421446899821357575776228708100943089479739274153375703780809099956077265671441417641870367085275411410325853642498398494880581424075389905999672937491978623401992691790269495989872388616897070372221548071247532736860475293270420488881416757115997696714115398393527404200533932838681704881945674705765648812584130121553286777778014252680654346861564794320204195256912791170714655886322780905835340345747930857658408746968922282374830445187227881369347954714239017498807231510046173262909540953609095740095610210824015091558273466149363011732647525110085116787893488062872495806019700340434793364436385192132594728067641693561577283926584316724200223319083667487423682295842843308772454922558781481685422641854587242975478718521130175933700146652143119223793803008569276905953804457620963897747951149015908814848132414605326725786025358082648639186248702237381670783703800369145599682660374582416536665933052056573051058210817196238082191603785671939588404417672594446999622103226046561704790607478057985719503833659122186052900667698485124098628243980785536311255266961718424115759554794335021119668556351365348769741571793667144436173614520429254671990822826818939084732785013226828403028107403375438293525601616608644806236931444674830034498201402587959254328883271099897111033288285768130408101887667660778943783468735433194115488074625011183105281784262270872134662456495937131272978925605352760232248779062104766906098981409829403135806303686165273744191762028810433477579978369608241592778718496504053693221131488772635821811892989971139875557575333153049372012315966138298993390914141934260184593485898279116317606827580417579969465065064157597892013833813572258481284310350798886160111354131437661229137763771979574987384331252369906111214726270577564064195314360691782886916521303112422721655292991224610936850698113716922883928023072131725862198697697072838126504511282895561055992245824629853126528370265373663812083066144996768112056318122590359576148278577975719953910348426851700322208762363279285627585775836008230687927831846142812570190806560594042147178044275555545835745588962757223510141102378742965167008366409172885204564040963589704565973378315200603778557221735052125330242937836710570653945066748865943369337190512626529044859714971267876402044889341958544009109787693490074840319007455056290361524679119926233583111500762239624024336860129215337004559911275518581797408893425224786362317552860696687918512024528858807462460617336999447124101803798441731225068760117201711880702261096193137496317280047417288536135897459851944633991165682120442155551393494082750215182931080621854342697494029238522284097220330234783723070087314371914602015998342785655194977523267942632008958950925963678048931487487415847675505440215525518173037835289252776065398566432244524149167944980057003519974472879083666030004846132401210693153253335296321740223757696586412799221649104721576526605253966960224925642078626560524429972158569536787305234150479265789690612882041242620597516072438936223750762990717777463696066812411508378397234880564115260007270602435999798418381172965830117189319471332810194734745070976720769721994989174867548212694910301802895692253927247756386226241673329635711211183063858696663459409153492113917034718009954219060037076413699206725565538056621617908424137474541849945700489604715130067599552953813681959439382848591975053968029058485548497587457078759589082508984485049210829692750354471774205712236147152685333246967158119717312721416136859298194448089576853753874215993086650337975916438197684146513870969390690508988145915598679396478484092105622202988869402710357803462621767257562321974316974531459360063422949595863506540254208402248868459557522158511454918071606348026180568950151875828107909846788863592879314540892973970096961551893499319171761023012635935057184493497123440563429319304755753709443741638645300428243202403146388726839019279840336976711697337341924694003324706603531316268718958957595770529067396765774486271935815351338740569285877048422923881056603567124488641693366376837450608264165508134428191423223161673929683606198031901920822861796066426447447819224882635072418749514955939977297505814569075855443521049501418412804262672490087590124137226360186235854428389182137630201303131752159137578755658092413471535604338141195806726070171214274064481533023250803590902541090610225720452924882939212991519397047151875652476353106247324924490716788909006019836425216928780440040721548740985648332601789460797226634206586827206624580348931709573323807459940841741793180634704261243104930020872941256139275673547733655705577140248721756336102349962958240844370007795231541731907136833887636148905761991396457010219048254584835066090479096350557104592184264624203715691744238062176912329063159935823552004926788304841835943161952942554688377192791430814404911006110654279125473179324821692502165864844051813773882991682278301110108907248995091989672365903658394605177718407104561401103879811232307454790013330289198823980300771094712453967700862933984188056892911799750969521255754602186312026484444330427149231508791059881715587235362561608738291821165149677361152233840543639000010744508935142336192960266929879867985103298032692092090106992326416461723800350814353210862039795676949366920271885105893525789618078432947876311982673331369810884849199053506099682622693741920103652165020338313888511424331018570915568449810310477370451781719495996411469398829559980809278539355506320992732684858493230561820220644174623145604908230604594675029178077119778540408286465831555756935989897005237718941496884714168579672310323506120339603038119124382089443650205907372507265039171972515943467284453312890196701594527775649796845038352893934347931843312773027255023161773442190742843212670369965809968846672110896509750357212522352118524916136420423122958330926500105961485242898831908059461919940960156722845130344689553233217633873934679407079894517421260946659459801693303492158031811920912058808681853612925277398719366775098629331730679478443188647856109197519289110403972291332329147754134927461950377807493403793282894925440085881849240362069881357468922552245295885579408089680552792362839811357457088321647253886836451940527417709112156171927869301628123105022405533537524061223106669150543248433782421896033284748598145444115656994322017772274011278913522930753640672440824868028123246068100336734028032108154580384794588563056445719685535864269157719468125271464929512376089956180330688893705565648762230211226704278940447475838703950337072165406251431959879600889822830784527432551447485258161466643073779847031859136037505065635822477917251274966356222697333707676548828067770227493112029564393291227536966326078134903728713147488028019951772718243072814050186738415109195896167975260870210907890759135946977581438454892239630446673022758633947821848978950274402781823059652347617864324171751599377455916179544136082593330476839131128983873521101920232305072015203220538339259590579655974996528878361676236023246664144123001324924202044913091764834104680283864072506525659455177585009346689411950472103883942436581978164972573115970548711346546461847790648513190359762365894640364049188848650546929039526781002868952698792589201811856368766956560264206938179645850940130171057054802084722678189467614320879154795720453625453167646275812435087943920711311266742290654267333100956445745890487955263607356878276704778282069689041035518913261964787985046611519299218173936009982422000894787685973332697608074599217397454981973862256139307013600901902895038258908851954473821105705368772079077198651790718994558667712273275128153280120017185326859477886096526948943230588537604228124016236304227128823098212341538915832517504381053783049485452985013898589876187413874225449283294413225690690654394995041044130437510438763198136233907675810038544124997310942057722714959360732237696274525675319526300796746572508464237602731642361153897220139153491698089263420634858964712491475461953854197678130042597343934140097724383877236441931590671648165345339934388417113162227744542308231429285404788812204034582288487865910113683726042570610957795756485228373863890411356318812240738162676935512550274988372908429202960442034605016194891524968445891990080805032819258844560634726707727126796051300715953683778459881790033549610513718515454283572361053229675740225241104139296582094705422540724846535787428210564427583234098927824487685253288048245471508960373365552702684732723182558979402803516989059406638641868535076348729839734637723965629527105330368141475185957282364501375532698620346518326656320877303395534703286543560030395294023205505926850400931135470985030923957982239357148733104070588540303105944845369889635831905675114453151611613780266608489930219824865209187322168665613528009909036307226577968703391493618630928212861905529053955047623633114171439871277230965124202058612651986687129820803581092724419271304941064864302445587371673947249411413231613929701008035711586564565467308518635357332671598000739377105091271347515932175511912838792180615455908780911769515173917724402854988452750153428502931849982829141724851995716990785927919340611113207969767676136020596483219629925812993071808926957317724831263971092280416812204149111324742076723611750239051173510086099401254777616917359757166428434857321369474001932791962271685494842823280025093824180560278960290016116377402177839666195140299954446998381696426325106031184069838039439974235056799006264467626588877515091772901842812870519341648523811999779534878345336817392301617155602358636493741468883069214450556465729329057389926286114646549177164598481329541384507005033343959861213816768679319297640593947609186099950386444377623947779425290181693123708520696278791159648332452542265163954321860042084465772517406106268748725631071308585117188516067494558531772328956527085221125972050740725269879918078084838603190386861218458929564408478611084886873717122115612643394266401551214446519405998408613838639878518381582850945316434391497182913833890874357533702442422651224496834903277783858267247221207741071759951941433580066803395181268437491980569116499537715001289867424008924026059089973267820052712066718444055592046817106242046848050593239112339786773961450598913061800854298157263445562870626528885705423025004091272507034112550996119966852703245122568882614925827966779589249625040832532678355249668826123838898821745451633977710003134970651644198388113738491052000350367146600281250399044346556215767857313181996952716024792287249212963054848826889898209729063905858828357177092113904532654689119135388156330721745779465733883652106873017367167326408851227592171014047473684667936125071908573365177753790821675234733911320128913283879632290483613103823909879126599550115999074136520289275159733365482490610173345727163140730498472573956566326164715394348558925617874678702592767912159087776122299268137121328858637785203946683696476386600425804809689527521442166732205277794277482512822508976249994905574336751685992582800928816226069603817778522387791209479145353153805301589588763362586253557823215571496344012705802750999060433953277761310013423084449278382975520339028149518344917455938760722523251018745905308024735870243494478253677413892961506043532561239907551177654755007270911083796172026830604742980434364831241970025904134545052437557367739589256288129160808317463621989866701828727419890015491905078418610870887218496323853533212316906788519055048891755698199273285387178598130688953599715015568909130915381266191574467410068598416318368488713339119229299965643664522319889113982528847719485540139323012744385964676449813917997731905532659388641246692476236483858750093124613318372279601992343915074987254717910615515551668996807983548781846842422737744411404755740132608784269432571599411004289433141629719645512792077090348924979854030065425997091339655426381144641431232318790320975065379248897478281592180350572141003063955228584541581069617455601713910867650705027566493541665269125464165647132679009149451838553430852683780486841367202388630929714407498114198192976531866803802699531172770281181429368854020238472770565863848038330580654663507745490497634687277783672478000886033404019377040485170718854142478417129936425573496102813693555014408096162203919783490082229353066663580289404494540932852950542594002160428158225511244344406250028928185028783993804599219008666879536022965209630942468961467527544032666137420490111325867351560558982967409984211949220124367005226937320565284305292711630887051012047255108378999410445842495392016287360566417487960147785152684537818238979637698097501942969020955850706230985497842766060571653027641108275457250280930972045947351557132426758845220033143988005366801404572536981153111829593062753944924781387437509003572727164133640367053232797242484568311722234240118878438445278197443900059379971530619020564711181813490379415406821708881829764719290877855375790455687968049799564851072349016529556076620411811380848732063605944755121414066394254124739001387893413956267296235848624147488855533764858864702883248620390875411828130454197573269514483498330118445343480616062322038092174162274648780706710412546919718542809206883223278608946787359484151285592022571585126200032927686015276719704597374062475871336435952590365408659882580922202697687224761746828119450760624233938829865663442215939845545792495095943871301633900060249557413141063954307651448316916510142365473446592670543036871867016103688315441781672829413627675079995808246663410872228381071400314666925675848199819064687125057531413406334007399277788951092554103372431393384290208610170670344347024989073297252627030047311458147697718811514896689090822765239862681129955634616154023439757258318446188331888331764152786313786798407464449901490103927198046210749994349200573077063794997494702342579668222162719256094356125224725059759994870868275456604897908161697136383248307755406410922646835009818905712587063636500606112298728296175775503545334958248502244626753792387292520320402542852849489276424440895387817262167626924813463536045082113807420806299319708105283865026294653170702243685971373834688350120216659867599437890486160909296057823589452676958252792450634444180196526639149964266021513027148872980771087895871412715263702949602740685433678726826861649551113164934379589538873612207306817674417248833547126604802520548301321759423870968745056895255129859832162023752327227183046613135983092945453161606273874995764503506507463951701089668330600585600062274984342258180362299250283908584001723578630488174142950614660683926083195702168968109885817515822039999344023826800972697230615366921402809393770669757810601100023011437130901264339202659696177759013526820739177003230601071998639629094500823978937239105190178887754702359808767763932004738623111324812876402155065768857300642935378384914534744262143985991188121548715212286729452306741762855076208715349730367642503966610760303694998488971818905886865964565387487256214269589824369253086330533139766930090223905741864896493609165079905213435522222404072015897027082386342569445643027090080706900784488018854845912761851962409238526248343252445613498183813217513603863756301519781681115721937934666373326669627783364420462024001230946529188352688981024887350706558105170953766323601231596966391355394388433368533020954139109192975736763690840014600992778756129376015415709584553789626827209652954939783046891065672021700516810204246335736566295210599574247803451909579100558183675880845834379238616001384757603713644793906700001294993795181843510650679613087490437828607498590518986350508795337436701747671797661744823816303519357669171043033257908800396626724748995181704160472999564627380750855395869125600381202924869537403263216122043946568102767026826028065549188304137014435594986763919683341142999717186164659362050211570549689479397328984472598930980049287432283101106352804835468097485111271195098290963435960383596618276104039293241907524380825599209465805949695651194717767859205220791564261871681995289318400470431428933408816955051945400808065960762101654467044057074585920721509938737578259671693851090347779527537818812914548537014384403362961474795997461220512165873835195185497068567872168974279625838330883267488682866403486461560290526205558357319122087899493191707225049644667159989431269393694591745000622532545748326377276124040338304447852248999481178455014206660793054579524601856087580346484172142342393230940421155427177463268847312328333354393104923602830770017972910285527424433258072989339146859805384336966063408698156602003044499511714042806830987127240081645031039728097182360717555998681171091070113990406473295881721979937024913375308018132057880959064352604777340097198000511564491897119057179064646465300645619215859548865947774409354674071997612137126354937942239605751777889242148821444560652604784368312550933705311330379984489368262102989194724670062294703065929068180130950790035302170226745841570406670367781247885907966384018450304151564303473216047289776900989268917568596438735309671260762813748440126753088373672771102082381697738030510760246974030748571375888822762665991824247634075323862346045765471538702038586199825026198351750725493262832608708740512567178474190169320481971045237159056732186901887104555073661987803650695243490439130235679374548410186310489154606968109865767741164537309797748535980733418423338536487550461312475257087708144040514916335697378573697873768347489081002858120545295124873883090482104163405067872485680500715632968786046394084377035600064766878843910397060110840005701989281737584105739341591344760958218420657321518705454792902234874121855395040438015055195230515101902399618765538930864547494810825465378347688369717416742353942011287766101824811345559628919822549605490389256650559442993658687535210459059403858998327658129309211971635184068585182467530655195246185130278241010686129571251081010619364584398538694178315656808178183846113605483653969633788552233359322260550502260858255217744763728255153114234499450237960004445750330309000680469719751395817901139941916111002042902636733626828539455268377213748870227168745255001281613632867569274771868083493578749456700578217605343719523181379035333679048985705877317573038423101031604896981577707049060805291296696613363178627586272293046396627007647867103720882795339411131552577939031269177951536201807562512471920756058550762294656927476197718376281542567225328367245393323158532778855884215984878608055990113374786112494841991581155058856856134820057442090062727102646014083577363844366065229319790053103700015480779982162834047505903079437458152794145393848836422146124679329570682581061052662026086569292681285858367621337465076395968010064272349338326151201162671540883408835960292763737203373777996948183969142931222958710894699282847340482013317860599041024238560350731732295967158930532625153783874601710812468817804906825653692123848278592303214604727984283868620732517927404238846478253554877339793068620227973390779313186886787990440641275472104052790149923559673212707404706857211703584639331517158240929186350724475102059214370356092480498363660029371106160763532219743938216426584752251830561199599355035447332987941954297080092802562401317839957810018126514022409318265055249772849577906738966804363230723603508600575789781429800171904965303771262990529211245625973480705735807979370903423963210176052591640359661612006759052053032603591109652977522065945981071634604004862683283316875614836391560019247931246649940351218997116177429391618386650451881598802821587989799089009802478146757855509493657699656045340068864737512349387415588571663329968601251891260671031063874844563998673313418919493756079022430770884709978898550938519494956241708006612241152701614485815499828829177685224542468795758322539181072249776098002421004462095616237353110746252064296441916813975498913149280859650776153079669984924110291590163078965469903398146310073829509949538354484273001625073417547980890423654918525938788032719900872408577461544492413851634128619246135705419766115421672837337944580523956316616987686108949610934607482745808089078450200007269821783112671871545514578787592857326488874679200368897988342330453812665474157113848017491067754619987360079690858726006491414278170810103145048822031913045950473648610561672407328466138855219935525090870374185786082574745313426851470867405306316909672995891157351785626554676275879670402483322698618834946817254443115487557583968187907818785267784523960202086670086893375176266088670206315398065025535315672848103389540502072125946807512948075555030904086341303186356744930921612613783200326500110305756516030893304602456530217830192130478837632505969722858796218035811154810517283356840237663389315398254527927111513495003066258990669887626195011706062175640938084402138546217513329596229098628919306208287878060798342891150281449053748102684580075282989110985803367247488282284686728494240034329640056158232127769800182787681713963043688568935691565076267648222816533093481469807685652037737714487403839873682675770938037609771456726877775872036505295864115338389832491759916570274591205797469307143833918427114445110126858841672276951812420423741546681647321376124504524177002508995644058025909127138045388164567573365791902973076704299449033586049964782959034683747100484538642771831690726600747286915821169641217524794888291413119221606066709991576907949488401265164158312059844304629919103119149588547264817611560316476256998331689835396227951340749310844320223760414618607135214843143092125654510634391583728134174792759909550641564888153283188006531387467326477003507292604544170513813243359579952105046701984497202537664947634173264631451718875255387656984359068868577877870747708066611412280633372920132954052306645876768660969211564483498361576887860277087358555321227141543710308631876561587847620813578209674987175908391707028080066435827212104661928732466744622669436475329764450512275099755510977351170026199565593216296248852272946315410160690567585236532557786280220893655219805551983777824208688637491991091962162253777773819231755088185235676286029695159811506325864033960518682422532445880424960881282377265256516720663438305458203414595743176488941103951812674284322964536445227692421619100028690320680955548738241807265557053147196836641024019331829334124638933397495826716055543000904197355980056176527205482277675372899753832742086312536282452207635206961098328019360936656667646458290786357969639964366883799502413006664909925780359269893779843433065306898351420340979929245068223451240112363045442887842868655781789385728024520508742420071878286184223323566981332947291225612287832124027056328264424592183890261888067038903011225147169044398558226430952080338598709368129191704135547805212015702417692830789426717118258197898670892962132785110219877688833851832192096472595956506834320503044470187031510372309151941631457152013399729011846504636642828453847619232164327531536203819519562972436544980360359563447555387933037552146476623253426161555198088260122226694498574094259045857418159698799303213016050289506380352692073547450887837880828612100760415096265139167762018337830016084480032706456436856065356935839899560305143117685859182679709484069438752832125737731375256218156103994404608206064767139498264076554006314905708266532482348467955744340425313817949816017098293180699713398622482786630506823045515675903402373244701046315872216892142687964622708524035332698015438751894353757793363347728698284076293153338015890275750804092926892491014011149935759637681863963127457608122369244118219161280543664070124002403703088205319342429101892265083367993068910364197209355939030497554752241512357327990946985379009446419271464816257671441200744896150850277891589333779277039524375934979654232225414830224904891699820292047657015031869575774834827451401118001459997656994088586699590171642075496579468939362301842419562867319941611241815199056312343932173321778427282807475676370745327751451723860259627871546324943844152450275165187025037638348863620843139760879206516028784680658340161135586513947948908502404575503088806093602100046503021538693843786037357802356974834556492247268290962804606096897550337028169294085405429563952592887939275123569743256278115515842862535426848442068761230835833821735051646501273998384804340466337646655501447877489703741630564528227983782504916885142906726254841379999329348255493237290659986145942599556384011419806422027673507135697033036685468205016832845116340551405446587531224681396309525628492367808379958240042240209373399771457492207290589489845228919042228519703258186723338387356721365541822782973041630936790892230755489119257626142388792943036324911931576075660568988860236184508830043408860011280636877208985100307688214903140845563133710760267982095387509885975329527824617642237710557428693671531712830505147607277919516431551738024613200489554619279970715781056830959837972964322661377675897970934829584637016218794721476628731874530665572550213977643861209975934984681105473072089434004626181245714517598009341001680305673055738848265244595611501918430834393922692878833438359591560329385649210545226167800535419847504205499226565512090041140417520279032068109565843312771378302142233560829611820266714890995307985451055008444160213901239826484808846907060184768240397908608202383003795522320726168153898274865278640667347315698536223387188308366304839964235809727553253066128841828176384372459589222069647128637405585223304260332472451039971242381420048936872469451565577722610633962724389738239727328877543787242911531812590936826827009165306876838522114317946171600520123446269742632725292996971039529609776478327613445651152685118921084477527248321330790243313355242221439375428394794744293016956407253382082466351168630200753538531970378168770288077595409177042237295920594364707221757923688591217399698784457382431418364131870893460908830739800615494637095934651390430147604763598374129474922944935824442707674557655413603534212872973455341497061545979892393583887397419849178944915677329937236797991986829037017273361466685848909283491172930139563169549699029556726132115096522777508357995467420792834596168387586493179278356899025579089055545386147711918405248924072477530359171949109584234579939271708274084491080292714958326744966852988645880110287367106754381396226652606441122844591786931527489086836978240939979501527497270067237567434540217277869860994604203238219881806188723138663491866967796793195335503626158868110427538176323220920476476916660748273702295337427170410398977513221075026582990872466508565073404092049708625520236690777778422149263473324212089545585242929932621446709426452558499917464801994840055570536602991825966727872874572381639238058569307168564397525982515369980236892474790968146241072320022310909041476933949729257126259749191045772814354967827897992127298501057169206585884443944475469100966512567770690009235441312460316843318623272629712624742345137598373136071952257798276924457926372738042086058052088245415528482526130838687852167126425546059135213858009724554804887309939131856187562966676552342806603498562548641465111551808034370856371291079604965255311695535625813128721425663047097430138581816855749238732153591775035335868633358309200444792158666686519894129220527911372354281596398935193158150117607871539508180583500692669852010127884958233776189567578057193495267341678392038007850181438232357908735442504852623583144988358912690868464871112606538363255525766724669211782639569468803249820367043780847563775618751571990169369537074932752541169344217225476441871655552247411090622961099303335630564069216857741374130699990256580459259824350350145176793455020832001318604655129756969279486701980249348910774150128074086268574749694170068917289532569145926042661978532821033782568768826735124512196567091764007143120681120988665499438149232736278060975894879354679556903091318117952635691674734587791323111369767887332705923201089121773512311194971191061456824146930099229967939840701313414402097655970668816428160435357258343209721344627848276002670766715589519191407253964115791646871298810129993472006717782936595912209121505052447856025402668486563470645759623550892301211843946643117933157638895222515154234600952737056268124267076063031472560234933655495987012997597247302723238492078574345397105213769615309231776168706333460103374138028186939593313515009896812894423212616658814366074340734958318091821766485638400303933403004563670946674409391604545332679286116978607304556851406652916087806643996401457221872315750697054741492998972550431035360803782726596375727704121717242914644051817277356982763302372310553378271543421103542669258370235269841669961410534731714763336695093881334683782707963510076760399365817180958149351532707464386597934627456990995044024584669098832812650992138482869646283673095638231974323838078662378238816794579322685485958770085826565777905333058625787817400936058135147737587505349956393867476560876517504167099842052282889672413438074200683624861430731864088958913900123306960081935522096236493370427707680223006397237629267923692299973956848754457938204825009267232187843571957832052786924937055443420706321841832038271933972461582967416783427506902550494840326079160629003382171103948636782990177744799163438978723707749406251276560041120753839682232636046594578178413652333991884800786971617541701183269285111874302548327129688568469690502597414985202152725806356645455545298292587424876370521201683500816839682201629513155747585117306948423877479854469991443261772440234489196479877500421049666325289850857978101461798368221244888356816979003048479730424467347813162810407012306934543013707701659944039386465380937063291652188615773072882796392193800609572141795454925591302042079320359359058583329901015010326275211825723161825380852249008124505104631536435562293965121775379827405955133142607361745352674663194656254561025757114162466014196362760020681828127281704309159601860364126645074447180945771879907602905475730180925586183055977074732757625794305518171985505811213980378815417617439031913108125297626843304900345795950447698740994780608570149950212184020176987617856169058005896087620185614147447132520658383944147261876688377818127065942227750273928135131669323888968413586944866325813733729325632462449353660934423193020981189512154595637493911900932034684470997476614161327763794202257701382954964445514096855049780770285737121195083356867721868562164346843137443795726087468856989008703282508411645771711521131988271429919260976020843045787565440729058895222952891929394660110540185632087645588595380778691408583655197605719515111006694056538695955210149376432743066930149822726064169937400874869720465635321870262817289799117453296566831188804545435942720047901117623278635169517153677085887296341960606091575313099437079425638977465515492096704328767428766551740303406942737643422753702738913827713260248267128428803802111683165606557604232504298702378300151131741313797153181681841985915826713907095153627608592397248058307096904274910223095554399975551200137071122534062976274756490498272467894716352530425500866519393704534430608598397904562351146029252221371498347917310193904269026764967983641371876227214579346248604802603574668267161246286869883549634937718290062085207513111187534423998248784409258048661324298431023111021915147893454989538600356567041225047432381938165311398436029191084056419538395970153569190504063319772513213844754644254679991086291686663951643978457545984022127579506329869066352756344766919289451865413334006753603342676637235592568693772358817001077063511693588122384072174766706970201333540776575991799178753567266177249880992727480908271316356382626167511690464259772815940626295949734438342376461780093928942952914211223865083066670790181397131871577675212984664705560890668778499826625350343073795387088417345860621158273779247327580020834761867233052164053031895551725407406827265578610986192684682261838768655624638143447378782385535308665387555876057379614561472535421800894740502346789797717328256366718067985544575550021216236583372027406488169727600648777357859262092526103562539841392748531322028074973548527867109749442825003085816960750210876502668244558884287089600320781028457976496690335968562342623663284838030684458578387688245111502878216506526435830343809150426033691966092070791891033410217404153343557667312374155900597550901426525128657005714196276886375966196776916447378709969588690207547710181397336551135058227485405599851742374582855737219043256392946424950294246674041096011973756290064453850535226963746305032811868649082472120757588496182706338890201680761635633837557361418156892435963663412839784864268143266207811760228371244988266801154697048133331014785286278559404884847605745818427046258063293758202863887449296090934533777070710574080788996725238297771080925123373160408750889544299809652989281055498692450626390851233531195989772145622299007236672827621931944617702984655530006432971181305031845509644325456164732977171539477287206117498974714056948841561633518347678042602815303769756620561382027076301665992016765554921350365626337765244629191270570478579814988704766611550775245979135677535102622739503132913179559243956538436271515230517325088634365523941203868040862637169871223534982682741102438717141194289026713898265119140002940167234094676074770563280522254087571496017797301559548017032853760535539873964897399241327640081589655322499456915252610854556730567878869637454701652926575303888368949419103727776590883035950171483513883603187628685031945431948729428665840279685626607931479254608889059493026750310004892586449844689059353710956548417340496476445418556765591788827532163018243490375358911695013340583934136687673173541329139815345241872837413185866947153793930540741966304909150631187872547085282376061175338732356334262287011028178304284867805952746347979995773804637924811828095171122954456387092390588256208658462066484011760286636881889606211728009470252176772714817416615092929164582408147554292706448944089475981185670634458411093209876451252972517041190857613741986217736931519985166663568391995305906210994539943905573880179500541524358554121639776744619813085394487571018209074155933075983952188665077210675875965000899968462759846865419407966537377132389474257479841338685649582407968404280788132137798044086792174155961025300516536431481342892227344907605574430241943023551480800125639230759191898254472301956360819330815657870393365083653888903886510966026865608231240775459004934220409224328004630051201711549424955908068731315157746483750881167542355508095238264211406199994388371109162745108072209728331892354538766785535444674921625778307255788978238565041093567432740661529485187814291996657409986212002111408190775057374107590803286445675027650884945786646683214903508572271135386071045181473308550578922338077346076595312101660036902182680488834090252962471798510626097725825237773471777585873434004398150733663582700198470740466031561501906420260509543830143391135859491312930453600740299545964386708525972760431210089476731069797581633920785507112262988724994701962106030090050543665800796361308564910415076433303415929851944020302064121799638256265875117701228503231268535860711245853033737309811953969670954306243734892684357344412683925832507099111964892774411110339119557084039073203425279256747041668704410012928363472773361881495244001213873356059904636346882436677349197135022945204360992884084595007766441020826476912650660172859243628309158362540343519024968424150768289587066122317739854015630909738589041618951790589379979117077002593941479138492855464702858752653755869917106409072131282477882537495506093402751823683105590545415403649280471008501742943813091137609175682140964401550481351495649782503333749246193996610591620091463508512646820478537064250450984328419570975055832932676593984558326300482778005826889485296349610791039586022480701569142195721684671692956054504077963078957865238803463071537845840563138483133004239231923611191855435912754710840449302299343548468550056430242901607338270503677056984541825671088161221197380805230029943595794527734472722138278925116838682076730692443320782866928457071664405475803098130712813770233530468495140810048504014773153007858843979994213852514691095424894262826231173737751038350443738881141970991594189452949002160312524389773642956842493831251528468254656267992698429578312153777951067290520802229699526349112806241032993283365947633864688090195342680351704004004352351844129993321801652814569526828393685640581950323537732291500696728042850556067223064542880652581210532518401521062504663280751520011962971603164025768700837271896038419574988555997801160115959960293883636644729208152403643622032857696256921571912446398144522783631305544769089006330525306708919937268593974458470397582572368617129452800845097306117938740809690956679659184081170419573347774455428853943115611233916264122114352502782042725391164775269271920656903511457160877395169372016508206327522387517680714126088989305592304407497734389870595235015251985013589687784854593251408011030644513937642897674755565109590519159289429364561671792516460688188562753139875540395791161289093583926987674417363867529830470030200178297420278696325129174898302555267265523607384135989568379170908941419079398975817966880802775729940090472011740054652337330461993392255810092660910363094252699949865055866000254620349984317832912943178256060788527223120958525689222817658612880418728386709904440523166751981529551003790368199639814895751806818110226985911406724358492092751622620894967310766859609789979927836930407266447700963342286654031721849650934539977553764605766088696250977911300645677581902680869703843748415860747393653865260457736973852164978968973352129442050324962015846603731506083593110062104770456243181861942976377804365187201940010737557519756439049548049435060640529341074867962791662072409885972965501376830332663750922118553989782011467679415636179330291932802584504301791246590170776095655927237876859600189774347834886997778641291965823708959445542368502337903360402005370309436891612572857856358643873184235773724986067394821447734783620998610349230133669522029264808903526715555040011065747277148813408554253020559058101288226486428331125840488897781514593957250276021859761528527142923465920235890903324943971319147992941004822844579457607430160556692892036691105594365439398574586562505229245898080368009830039240901484783110778281131204233673669411340108853124806457918823587070880639491367697601011281362299518058223115985198270856702122718964327900541551147402608077884956140555428164923133851315172100070660147779501768929915637708839812827238074886477921202551406984185629901181185010754203010971901986766417501501739032683343315434461899156653720437438400142344940491735870755361707364252420264232562592408065412925853194706692917428327324856634894774153492648913022170740189892112505116754792606408965385500032591693709911258944853899360625275296587661106418654964237473524916594365870055877572030702647123134234481318168231437913132538985535618263595333406101906369161184401919484745610114255785900842308918716452643934637572802808665464105066006427560277876663316060040015580401300640771553502658171340870631719763981732827424059109554830460994359449149073933812578858608094523917343570703170584682076243824099133203611939482372841930211362090406650931109709818454745050412596540005253210185663959008074215283587486151626152274930105894998131300300013195254828845753316521100327680450418951761026380311717893982938890138803413195960574269634642926915652537778136855658179540993041460725662494607661668870457125526069352215831637845776752742991924418433102236246525601666504663845869536606936365827468698607882645752025717582585181633885899469722327864284236898411056598443621445058694284979446878314890407782718264986323677122975559207388984811493357973555144448696607000846820872236407303031722802172186103116417750808130690719431082752168683736558336061132530385391560234943723681303210252265049728601825636435930717063866195702994156740900506966771704695126653647844862663083383902937382082430834176647291250244329805244285665590051970777632855582429883036295060447578978490679498107997132201250242497000879890035585585862903437630529597110832004871100507460649067091271125663986813165583430801035332822368734285688495539542760509143876255893186962723854086740368183481782311015695998640609998076178028350461845227959018238784803734157212328857996017930977082836321550926142571783229852535649878272207875181347654036096494986743683979825972186008702469529898689911843482922241749682385275035161603267186507519750098376387978536821303229768888412664431485652352561527874660129554360540869075206639997901837000673989531669426330020918367252319473776680350224149810663248816374162781137056598312825175452534251124189827745189606282842799651853428609424814215038000475092312313982179942918141533648681929675182356747481836044395468918236443136373067694698953846544921001509258702179314906081480675697230392287941853803347987455292930475923170876589313753751497096281204005919123050272796424285959299129628293891161180457881882904048879146326772355636921970284315531300030321953688819903434053921100884917267925003627478518032146507387544965986259543398505786284174293754255625017710139191622163764755585441863561988383153726242891767945491488891046607090468537030186437093481775845409373078494791902154905161454852368520333017872158257563743839952336891733309137954072806481079649466123555752430213878757108553695585467562886667473551833800557099514868675337455825316170486771535973202802633954092788909426186282520923296637231424833528946901379385154872699686116092461133179526804607679942331455407892745891149641838071069028794184354242099993974655292570109851423150934939689686937791532579583968709615621831160421878360697134691643263141697617319990336700580643532684879328644858644456363174826878794969978228646767886233928913374171984041712340469815813042563565879827367960019848975658251802429095922652154241856230750195295415111839149580013717455243942238785449500020695542017082193667432573301910959292863266599434643889854112593070103913821562306155424802584326674136614015867739228629601458290981523303423611111103992329970728122498340555569855887884516415873624743088165911993472741704150060139518302488750775637385993783589322614875886305997543477388194221715849483373661840838829613639999034091939982083227172192599488275006179854523104719586110174609115701992039741368510854696002877011000044871276575409615772078422966500585750598452587864905001535215637140122450408256693010064030560286554409552271397048669020065331768858258295675023357598960740188899175929228535640927173670001758956917382077024611050712211219231120326148958522512441094900031966495709101150942617781812318857989497383380106009845208839187522685917234086772266943167372708440458179684057476524919018995451432895611108224086564482593961473429431622243874309857635144651237459188921485615896738094262078749836253752509492042665748717171751401636488868074396212658613205614008900738449215098799932804333843897166467090658869273928713971169800903221792136307872379283683845796104325204365347341700444907830967098064267810154594118055751934619641674450241228797207285052555944633867473077159961140008192155699478570232349778311466168402241104578363728702678096394055746814336436281169257259576118159552025849501799031783032442338648234907546026116562764197158584269165943733000278139408707531037106621864410937390202492741779313478969405139470392105348657381145330120237337145746722172242679260341286046154096285496070674616123616856065627000552001902933198883731823942692622405740792022655638202439961204690044686060350363068290114947006733588901534269273536045639724931676962168498740001397983779520843297860483561918811649667045295160748662446801599430343248502762504974543220315836869211726792472148509316716049661210106472285235785282502091865696201354317500813323099157636935530539692611953285586171242147657182862767978944490736368657789767554334670473502492101629219173596552279481855781941151801556861959357303915401672247075685235588611513772573427030122561232102179093643345336764200615397019572884193672553436139869889361027751087070283025028477565350108866991225619049116512452278810143718356355242096753818122206502688289530200410230077127217543661862475026391239889512606881183738937405003100633441653088039069380799469391466952162808742896028667898374278028400865022703520988867697141243400445385748511753938801593359437359195625336004237275662585761965142985261951789792077795009295047907289197707685319027083692340088695602939702978052019341529912752077285032697250291307611754576295238159012148348450611001233824873178727375724414266764512692852182407844462936191432846314893485821255897692704331126056436880255735931278839631345083723566164180920703150967873597565847010316899738753090756790898305763352033345468011246841770383342425745677656551683834041309557336605758471959866332391741138461708906425571243675537746373635865965248904237058551050540653349237647016830636329030232098776394787667039491269646076424772903092701054152288359002616250199868594888210151115177801279200769169738289775442295260843574807340775469640835802856557672145694865954821858006602706071546509794322257300484770058290555626657822920678162247874908309990566159464238702619134865720208282559214817963197437642481771581904437275885459166567813882383977869523921643688193653504238728996576494222143431621042001454140523096311997315119515727493807702854984950420936459528353680745858163420363991043338374685601513972488416861994738679810147774797248792617508429743778688334361726219668937035598273082991772646579036498751599102960755875466868217070015048812298087555601589874378435512394352138205568511906521982982266130667813333080087123092193503844044324373714667198869383008613367269298882021161376124506781810318435671132059922976215614803337318611757597252586980360695365238088015265530038243091177459267637307858948928470434646681952527412230602031902374508971027832074249884029910935401204740941524749494860092517968292754716310699558463210913083059100612407488773666586880669101625533633600279791037189813439553443782464205564154994491341109222259802778733639427768809807320723799559835738724397640869974563343802338585701040413353506986033798258672488627302519936612327945696872197840173899636705046910937181116637841065612352074626114955334197526308503434594196277656675006415556738656882355239701427171366886965333706077872520231496164377357952469405735137060099197577767352481443521674366810843720391701086084314714797025643324989547982827120151707602839210567124609148413247357548028243960198915284533536569236504241601328461302021939727332614796334431542288332534340739732800232102550305085324702313217869027333945913089113271585696336953151351375972972218785410637303834436217478539444545971583210912474399787794792011199205998046209535522589228283406220706226350005338479198502053279404971516833732664825802283107926551477277624675602797588987888074269263596863855542326082658356567182044726939402521832386799404107937725325541404852331019774119047605884618768746430579598767999096469865637219182858904133094980595739462785901994418349300707414943814267872854113031626487873747052709610547759910785759116360340432101034374927735924932500201199682132601568530113328087240756334799384471897879807721628642076840123869535826461862379642387394498120861527542200814343402814672247189538276926070531217170577844839177905198613625833361378621499703004683733166040623648717323331367651660116415306468155109600503506516040235757885536482211510399923395455694922990237285609239321554379310313661914130641625892408356710558877975405557962171493497759536674766792654318538000328918810169159816212265708787098696751017329713566599317620079328474388660781901184865135332200057005310521336762439919048389299658530348106648936020188870354187917461869187153522050582334795345995267728390009444054947027574867438999144978842662739810265599918527634492778868665276047729977437325047036856001598495818830187100834313217666636167865031984810984750969461642512870822939442002996204135682430278900432115783406228415327347588229283598430828229995913054367034098387620156387476921691361087391526596725932773426582626800548596872799005513578367809111234960511748894736069929190411112411410273549615112842637644308443084229443327127841241634422824773442140535876246258856875400366533646613961052563475034161080381354893085904767500841926472169377639713430618114829682805788614045852303539526115643823798080115742516460061519001539305309726904221079385247184779811220132562897272295778108113546832811168926938414384085851313927177677388896881930163025459152155206531735913344093201954668939434760092184148957778013329978121839125716218572980389214456802508999478747187864975145497469259110078609371966624337774593784681592157364725544558337696597018530558398172865189377801720781598464202519361463635219844714336842975697687628150752854157168677954499411285540422850660718411406714639888015287128214026312515704642055963003396573683889212515698762234707647529379538700301639194133277347176355176445222361421072867573956062465294451134946758955033376589200687255006712849798638353209375206399294292086810896011230108375839223696086750297096686047902076207317564314059214895230431321732984154521757114243240147195755552264292700711274724547844132508477481323271838128241419995538266125504186032806256608292833350804606103787180146764074546350704275827647698082491006338342483879943174710249269422967927409846963264576539298026814156893659507003489372602565944604810862207069150445350373989472013895989400204217567617105554561532142249112947897203232141380211491586257450495361044866927803567509703895126786249422147532900503117416245290330036311784391863663725933124933559686142440603208719382434166056709208827905517231213741334161948585669410625282804065595109030806972945317810063648509508627122027309898732880381793600318123898507175214922505984540547963073081445792157927344522461735600742984314569437799722215611622375746042846752702298941227486442946152685619766052180095351788459210625921060215150703623905628756765251392683257250980388791423474735431346662572511040502527748058342747254342663398434334045085693695223054957664230876631519637437048961991000117440841338796337767891669671431638302687921539854961820654307286247204475259115368311422735028718790455401566220124816615630778621543924985008372602931078442678432620660739960437642594121927481441999375490182716913925210884311933102047622023463087006150028560776534500266868874302975531896392001353457984484547121982683267586694013176540849417430041120051882110004286378109803169678209858224735124518018697249087231191855771040610274849590018862256022548328448660376706059112096300564348377269706383414133583084629798878561349885649951265014987622496491761624666310455963483144103232374385286364411216666549950553297350957141848465910623085763572133306877682602356146828451846341577234242684055843630500788088744740107742909644886523935213381755344897351386349010133836173423944397486113719600326647311287972082632930224170701184033797835225017776379762993749067972415430925744927499925798152495891409210274050386326490864485857348567193617918156801128131066801137033362707175024103064239212141981697402313922070776632647931102603176184024379565104746876018198264730457955369402441217930582671663716322947132866069744146994527454873197136601618468568321145611048427092526701816981721055091365885589222675857477180591328551374748565362412151902505490202661451498597601158027427268971469199373772550965336187743759203020610625769951809078714641679184317544382259974128494380033786844812347250747177913027990649631675156357331531229695617562433287058986330964690073922083082489969500647590992619896613814075517783285686802197140486051525304920818968664222696766117459788480432028235611056891184624800496670630297633073684527664328658976164414690157931634163028817395172129557127922011641100531492753029266344021362758860681744474072261855265826053999607575610424264559321580078567677284863820052720067189845202439825908306804558663572372486626483488384619556566485159101660543680577029380828254885184948339624624229099665944350247114687245035874681835370864272559740162731398462775425853022297168012041628100695795200869379816437663479534076768260107176926284787880951073693293971755484388032431016244919256659538903637511401395766878871887694197306432894149531555515576086395070874304410998503483375048136943201651338400825734585665221012567890084924889481268588559953087398591798694802072119757460127339585804239793699479554319705816239362105479467994354545797398574016910960182808988914873645424861482245727939962260184955014645861920718629861689128536339509892362740213823944389723852550915888582679377633700002201406868533009924962713019115708268170519711678605137335874922755339990783701769569173998957920223217481432926493228247259195296692008902841491826264664570225627474225127233403864904989257199312989087329670782508428861642448313137560330504871431309499955421353903225789308307502314601227255865612083647163999646896569453382218424592798632351754457037566003617560453716732093407600958503092799899893055809753954616283486582415319528500929859066009566843128723620161977231673783916570629316353439807623899138145554537486132923134140867489279310665562547120324839368771309791261518552579608293520599615363165844399360232081581152878885338284599573348103541578315826273191839179148837708584027140222246796080713309045987835960664893508874941857488639034481000981720367694974146109233607674114275957239722802871271267096523583031389609193044264989549415217235189920009874697108688497058688360730027943108072939603228345921718146620381696422445997899501337556682152888850989840407017708080411607481772429337499555937099706135284322395154062093538586071932776512588804432828271434858229193513394193938589391919992468549348282201552179401916790920416676554619440745269386051657207826389679529780037500976307865053359670073689866026897000129117309423819280321281757338366414546102502024668217535124901721893304501393768327102487679634777412067535102250021199467100721102691016840122345496944802643538661942170968784992964145371717749586606726150058309452488678223229200332445386421311280102831326963300931861600875409848112929097784009143228604316820117775977716436352325062356749508061913004780930411511545181925824457286627919508390202473703161750156454422682489369357946603439738382323953807324429637434283153626903450802432300513258238883784147777021223477362890896035474605192447034577322999902666740250722243551572152888445421284940612196289087160733028555020435300512485157424149191064960230737088448708260084020154319175836423656338983304224331730667764130084235591839883413764932498107452897888029466940656908492011577896616208380432752489500382388698004033041723255298097625575698783036016727451691517842309663701269639458495797522342049202580671870083816324055084951408901413305581983240906710071207617790601845982766137178409368158494463775373246872840918272073960181402668490998635714163567596129855167172050274926040942657101823543618617497966001427611730102668522317608773742078813574094024902049354396494235526658761856207686072520603490007774440805460082634439867547093049922464208874263563182235368692719989622757000366500502400838337745590447602793311593232758278972243981781066964933198952314090224350187403854394378425966862581048686831312331691601099076311879037250587065524521694087502123416625309044013916663699418268981548421619160858293573438851495923565166043247621768032088494509074686238418804190174762537647469268510558688974086916314065713494676000985799386792247489863147259620633893096731405489790071252333652227243683051662984250603384244274911098280140074332392131032019016028259497526273703332955792381683660018449441040488162141315317157415536373233727336749069905590137866612035087283280526087097956774616093373880248541235798979320379249258908276024365174339397688125419434666182532206266644704612902201444242547560015788401501101896273260348142076799773636089464547045492637434004120873717528898282565444703351642688663545505217183504150608998975018306407284014483616310143574328294520311779366069050600001119872085439036426372524492245933689551874073947765202584394102224294504846269637759880672105734218626533705572346620574698960027812836746189835029024119643818296770983340363175295067567908769186039524340829388453906828336897732454290333624563313131663774845491275377248198099755030614703397174334965854716328443273052599790160445919087749242112452484456196884494576830452743593871710364311208730688414912948683179236690941030028177662968353019786883679301000945775015950086680250303421465808811098641015367677943364860539756608606087458746204136926572880439773533027858125312013115432136726039448423495074455431030311000824533981384584174698651701527292852341515248754419628903882293675705685026661989434347583550103489806059690437194356997657726327441377569322497831783652710077808668864413144882145369656323766026915685208914511968958959836245333850137488823652749497797448647533236320770690256673242205871422556347322449200879066258068851181476821975779512276397373798853825399585572875059019903405541124925262308559768105676754998991491668219186012599438659145662881311830655456517747628965927675394347273610647338888005626999673877775491637656558402664264273624525884944014677863977223261263928467850332621342811956621357251378982854100954210489916549917119805440184116307726687053982102382164368035688144201634794859704133452871526852309455267621352186095888116914914433590219352678305828042494269374491141103243608529021304212080488709471333278534460996840132153525189683805417800785289895166702346531087179517157262224852446844359736747878551487797809276497655217369145356833312412363892065934938229844661772320233549615518866991851006275348934423301335453146025551346720434621212030138882628353253960002718968619307153265547701374106069235217277430564884932013003713904900266337698136033345034894773533493195179037684006691128635674504446975112899675256684800944676704632955226845514790060110595916380163204093671854611399514259851663370136921912510018929934788820129423141881403660294970724844098749550074183075230833146334298359134841394380351584889403904104956228861124539078937508035953571906681519075521737853454522735449678141053592596905335040504954885522729285344820602153304027571111205011882326818714605258426406903281604916032619158862619220055910245845731992854750513167217282730093919154780962672333095504226509671038933608500977982115699043242365344998478949234983260733338438526678264831547363317145148315682200583505574781254801242227809004804327612435676911894564063793409176374358870535424382398685662521279678166873657425192806483969961430837025392921111492366814722863322109357935983314701827860455528032077669275523298225972967456473629171095274683672713882588689183711089699010241601572761404995489223381391245295661352948906364511014204260287937100978025962496647188245526614127172641657383907282210591888179796979779175549078300982590391335904148803199825550115242493463657590868050243008476499468936576533887905253172865603739851828598180455877901660776975295678874257259980447332970896423567867683148766136351561180593472909454281142835238367497934118527299190003576341239487490248341442983964113952992643967216251584512185881464260434699673229502042341442774731132367533350231331896873309994250773358984968312676831730029115860769659641442446291750834203539964972327385696064999389603193913816783478362953671433122397351723364472620037209525238122061895883973671538877693575308551332141302030482198913382871633757015629752160341960441325185598437055317413936409286694512307058500268391082737133831697118160407353303127601129912981438686871953294770662383002742681640395658523170563272333372904053667133636567000069668247276989886085074376325488075290611303588643256975594425028868109516252067732894981352820625373471625129045028719513196201801417800042264380280188632599888982104842153033712905611184686778371111068355429077057465126899916637249390838230648900434850598017195250682337252377581053190069162006393824485801617983706402351043426365769302521731036391339585666665203588743148141993800140786573756564997043342576126398320040080117429794809581782213471777536649119023738092772704841498247014238219806065193264350468488296403420298027292099874856419949681844685271280543863552765582526542508744933676154177869772090780392564797099800263380810134419819260791960239581171832130490792029351541819404809260989239297368185425981037941466575450553638849881538000630045015495234452481804266805656276581755751719279932456959615458147828790808483858328785351624960150598650387396134256746343825190324215804456182209736785868212435380600052274881794300196964276239766562246149521852293964817624852457042672345822174500052564553734180718037289756694025555636437561222025338240011759718081741493283787730499167742477256041791682896188673381982015906803705672847996183620456941850268813413738372691684479986725892042800621420022886398502638777313537602706888487736479674168330034176224807139122246133097170086886975215953866000251052196193342683612433952734425561471197378522171429214601442115132568107543589489343660634290012145363968002493231299576318936879405569230722852958894098435228212402513376777433647775960698025536187497107664096912830136953637997409755426682743916105410152049733321448778107326262067634956325719902532308694306828952847502109175525412021477820217141380136637373432239325393445521367796144771360540505345249961491139146252006668215705738526948448242776136676713136665380226838552594197701874044853887729142261668875911512300164336616456205147702997308165260183419649932607657981072518808796267771251721342236382733182645583773134272481071652699985577212800897202755086930518185431665967843370321975204907097905069602128766608995342765798553628773232271950713297270109913743487913624119470301278690883646803208788421396957939201096431498091991387302575529370654205807097839674992354394342847676436168693446243872677801042844815318882704125457967257521913920025671638085931800589291376982808480628868663789082170182024625466895235678881495086532189036020709082355446164546890999476627599032142453303663033585730423496861395643190116465013993445966732838399078776040612762066099620776057028062706944120928822447359488894714477130012618969825495197574438613153122815721037458191748765481306571890550399033650706155841397086981516615740947679531755107198045573847388391414077001459826288197647347813762567905365347975715671484526842749335328048788069847730248268165159027707794838789022334207382120934771311586822813593977271402738269401876710870525495951784314471963828512514417951256897426345907892870122772799583905069682264137217080520475586036736590529255698704151976702248829294358240225193805067368685826749765001736376255450818281258152400837840081954846050586129377131902092619357171959082696160274766008331068266699873442084019402077991362569504368615494694643589314225427586037038412100186643327605135881255298605196073461643450089402847506625483560815022594495137882501334467991596500142498574774041917993638430709530017463011862526308337316643768029164571307113379418620717896068118126027492013970763307164675371122991483984110321481957289054296650509956468362924430355244257700360938313772371865587556130524611232271212082893591003939978263826560083305462976271504633063284542425064850417504204881251869113081857308219616149717101108997113223675350394696276278826094641497993081831342721594272674223046975763906854425663538755298044061114155365208679666862159669026677046244689605459136988723382615973843473176561072989130670661095584896086300528938309308158583930717743005155707280923415881600189950745174489912709856877540013512421146241136931621209511128083803386016186082502125698203298998653862971445733595153917581810244309721684663814385910467383358345833155704654294434437348760783921790975487663325808049755248030597152138444539682343754970030305254160699723961041102545475430782525749165332075568562586775870510901473048533959672869068526922966410197283127015039665611316749532209116381212541590937667124638159505170286758114253693565435400923860524991265721558157625915562836179156038765332207181886029989397750095405549308343734447551859933891494701010100781879360109537955889902385874891645671895478905090456499873755093483154321219587666955313403627067764509382244950980142333721442756012904204132028422367736642676635215733788894814246066200518081478534941531747856496710534524414462901789423692574703292845388980529221661041828525659181866211814117288356157177916436234308349350688000195581776636243635309846655933193189054614619932529238036837010614229349404963271309109435357960084629945592130347963294860334075556791419043277609002296904348845021289964429867964270985970585641702776653299275946868319953026372057954811507418503030361391548532118509187396855182923491249590948197150651730001539958359394595471566705362258362434466620635252628588216759547252621322291221309069921827019879190402942459126830771673661100625499573770292670840712147792612278176550035122069484954882744065440660005504821438760846588888581218536620580067184435724945608518982401775600694207596949528016308967294435654152025793001988916509157573351994068845029937276796496546192362112047091789012506584557385560703608021934783102810652458570497770287494650984645014210375448437343473995855225991707515203118554314244748841580647883463714786216824747859501237291349353779912230196152834564479939071117958595905620880951953048528119145026218094676732481586124003347343916509833249876411783200599271964170480209599362418569832907933240431680861400942141761077455580957293609903741002699995198465859452025526765153910398988272410508239163475539200406367942167220117258797487313517634017292795209194538023475047406003175499085103443426706868299799513866935053657678223078810006924158718386636593171219190755202858949621989656330016186256548850937735895888895683060851350150873464677301634195224571828597381431956450739998546680219935657165576005695924775828708806309912751339003521725918483537614033525948641909889284865549043891790494158056442687850537696507501631767935215753638179515023212944058710894374493056288769690112693015796712998936902317391084543811783663183189155967308551126129792962989612544352120157646736207442108598445816223803372972287200218207038968515322069060013935828788466709503206832528956605185718312434306860411376945826497728377932594421691638849399016715859216655045186291276431531223478043604747051733658638099978398338312493978991271031706626268226626971963184514087544814552324879323901773402943888582615272202588676342581000730591256129840610122428596614759925134278698007240345143730648436809934748227880799284682605136071159722231211110092858483808718345027227327076331434004821521799586463862668853414753596151546477217038811956372401689166416335402735064508153581119854527087861553539641347894021840222314154451856855717281847888852421927330442451768620223830176487516045871208586094640308431956956951846175060875494503258273126550577152070705262597415651296151371842737991494998776890355962504584952033474164573803757303801249578372092672719798039574597251187465267577443278381951706190933888208895194350692976978591835654471235047592815491229060454183075547984639127454138727107442421411948896894343923764428060088361160590005748865160289719694796227294072536870321215330370778844259802900882253333071986544209140156763514998969077035559370759985988353253891165487054224498831268014510429912453738323267464487762139401706303337937115779168591836143714992300132716703325379308470562406745515970113932909847910050837634403525887521509401142012191402007511740965666653035815371946689706798827103917927996062178496436119803571911291229173567346810248880335030911142802396402634363865763883169491030841787567771888045296429036332311971284711277265221523315317584398407455216389924039828491845134194803787946633756925791207884602168571279530515444897429844473830455444318614741924992004098115851863472116013134233765949242403360075691086519931770908802926302441389630733008823080096859411407796579484193229187892873174372030818863373649901936268731480551105037038830811347645301418168813057148639718647893879542534529207213455455078865062050355133951060128288888260853317526653155064981316192430931128180584168254766095188631866354234967505837930352047161377783893460338167748216609891468991715466253750523607211647002610126701548584774557083033755696609728939570136807912247380339479801592827096141821640875208060690456736530691727191823771508365948461219512180709252429475350560600894728634804697922826664851182552175020435798871837020371155055699591677487179513890823536006817959572255191911391336499504195295029268624040194487810079251513492705807758420482136181707775915818947506324513469786789916909104722037640492074457135739671360839545880163363595460252864463494499615505745099743953053539634692503545163836736003903121150140720947873197713105787828355746988352068024566407804687206021326381312491122689782870624743457225270508951013537806598536599366497007809387383379292761942994831647081909551863652548667678289437037646381867298005466548998245889169392583098810781385169696467140613010934902308280306514357968706352830842072726860968969256002033596733104864333776777447331236762637238748715243312096750585481863160791675297833511104694878191232878575069351193724273805537156260676010269024666667561885486622264504678891415530386638913329446066150395557095987471922608154326264173697946586679498385864723889270762974331715261761892468257371285442779611555810049389199127029105391381028119144082224708731414410754529157114125941439126147200495223748225405565432446525406490605726775630086956425349756327640261963415695047934893489417445865221986263204339878672414590229801481769475274360630268559788305478634873941019334275860630449218270844926911122373160669675862484940851789210664507146617127302361552506742778902475931031944316438014270618001014602304192663711246914839546749620159122243000039627832866330492779961248922395352712922810801450563685823804931863053150737722664978965332549392530780336445561922574838469454561967088601089262588145779201129048718562451535059111243195933292579707120032816827452878208223548255792799434715005942137829813926906040073304730976329561097127539459108525578126335570687012469478501082561487782470092750220350565949679259362230231672237759223140477740716561855863618200338860653844180381031369281027173187576281344112833885732191618738329149655292739763269788043208028329250158335604613770744172971846629408954577003049151255219916728099796041231158363772713776099796002518980058653771748250122570858264058109703723203257020519483451059046493692283473089381679391127400105000255700642459205882162997954549698234700788520671688207974649224615581396412282259268762595803953895943496868755950845859742202926955789599905914067596761663704228733379801987050318330905594110250368872133941111625997391333657193297492532505048528507474476638925777788304405661102374367023062981771268976571955676009548779287994093507870821683016273570596794623610281112329288193411708793835164848324132522475726966663879301765772936441376842133385393764566457577114302724271152555112254665441844518469324301639589458071200734057651834968259624801309519318412742453791714471610596476567156711944522207076093071100809963826110229076487600732822098899630896408207676971416787098512415009191016604071108032476870113167638415970788587560487756576201819373889774779783057719923648244905372260644641341158416515923470376134058397608931078027045568651369842872086407215459401614725229920796325094218724496062022462892324466141638696502660909950944159185414349169813842319209602266469528087592698085978291038284199371978392049874153165149656777420966455360983682358510772857369328011262428664165734827995574375761215934929042378200241044910705918122546467449520266685298483809345981390381415761689879571990009535234936245372266160586518323316904042684510004390983540469615957518273569632614336987384563456853173571721399154727797850932692898481571306466985541046985737113921632561433899730237202352488105162989208695685773805965697339265060912305397936970737226371022812611704440772225637209754593912246532421918834285508286853102048935352605862367097982864875499842477849815116587818113116608107685676231166673198478162387908518040522777426987032468902859783084993620771155123505284863288822590450203228765487724680725460472431329166436187055369840103720346573318907450407134576311636310350007697345733005313121399870344053989023292208293379236117757092439529213177703010570296725559717710274920123973876469221723265156410457273109771633832883496339052929604806434570036988529504777028359896721711684328642794635232953488530931814980443924543400072920037622357131282971712041792788499058728758527652503344002005095260784331343067350657049005146495164300908883109677642762621941669585344712440010358238423990856734730517098900410845728857994634744978255984346378625746795970164434726232941708777029354889765979364788528487038103229532934876651847009623148501633365887277404343707094244990187498869242646635694641766586182928016155332220444350441926663197577530499450092239281267804297631483728511806670601063776330321386560135082528773698020684549543741997541030408477169159995109317102487774285699737617448295389001866682368420532406876158302845495107167565219424181553950222914713310494014570519547563036160482892354180274109958951313726825504286869946256868601384566898766553291159137374463878217681648390850850149823289817839979595664067924684906422006499616897088084542290192895295866878865638339695448438911315261437385912149268980930540397551575751280296719102090707340622454071583695633756210550362771428289589655132891147282287726432806440229001367193375560921417315923388860034498593012338587574010321602792234433890181977129096640644950555557737936126156978469909878668904923485121620695187192257772334625359261231092380765467514866167688726340583367156414541544862189123036004220996896913055533858225553272995273325482083127801724292523269483151857797055517701200966318263965245302494941332785738753406878983490329205981601030699627654654582639517035319757146787849959046334909213033155191520076222459311430233871296658359121569563893428273472271711980341235016593328800344383959838394587827271789981603020333003653403275543523107337567773358345929762353116278936859354017764759300166709517480118776088347521577741086007515959459182968219527448257120544869207361863738065208211210005243432825848673820000129539508674696599902444869512335621906746912004015596893459450416472858726025366072914945623516002912730090602380015543909196398592514094994814160664624498520509233124257495947801590599232647925602604101038413119381265927709059459508253727653396250146807267550364389933832163109504683743143920224907859868622445394357234811556366658151611203229875767221517148927895580000502831018037344943538158340860944143778881994481230752792317539474011763931116301987822727752016740576738873420824426832088074851225565986987981433590904439224613808887146875051038401684205703119804271448364429739187945768815432162756236905810944469500261804163073375635312100772059922871251189783073456532131316090603150328674325033895709477567558832526477017432440925961332028192162407150136065527365848822178091478296235245071840600865941066659087162032301231004743135137143933968055032397452651837481947393038443757144775223473683308286207811774901802165225727264435917252817559486911503761322271028670484552666447103789134998787200313107560473008555424642284341187314262819011143265891572192060901239725877035679753931407922746259078027058708968310553704356435547414910563709885611129628576132161040712129971393447912837122403918327962182023358186802158842856914670269323989769385878534204209122255482486828274518918517592422763510104566555171974832361067100655013581540389468273538269584356379654757347907108862869234138815668618049849749306462759152330526203684784991234233246641988122276051010978641758519169926016019236666626371619508559467088840941245875302696385677675322814656856053559744942765686736865611280986515467054143356011463006352463121213345480407009464535428423229793118516774105565152150798806905475071287948571488246704824496455190424766317014458657072067962025960049963718433425117120415464401603586602456128564110620454130685649892601272096098360887920480971308565788567736301998872652191031778547830145949129538376569323671222269896656697446709665894219598120291892248642947463138255445971840257179675067541520982991029667992066819894079933497096310082852175530009997662243326851847733592375011291723276255285621307574633919623493809235355816782283016581261150291209325064583662365352603738620181332823980992758413709716255562999996710949585499202539036448598384646469678229643229249862474778360461125204553615240787338107932000390847177272420277230766693374349286617224112855048705376489762994741632670631551568015882409050550443996515712901754950112224217723775395434288318917090712422561878238916786952795119451806124156744037554686553239677088030560888089022334162512002092575327741647324597539765931033892616845615744741806847860848172594816525099913269091058508159845904531065693464281064114486865099069726433071668645265744408860101948296403638152183397277195315324172992120011637659064074886678024778365871102600365289325604703680768423096763904858429083335494369940804865981541090127315354782958542129593738270179339285006847004023698807208718007117929583775630525626117313879443504734363242223421220080589281118561040907852552752183663084097314287234488933721896695223905954377021207188227022951292648767092371837637200190109959052511891940596359544230837915680391459730090605686913789791414106012048093881009489978945324071740200808060066418504751974764690973192945163200046401175414927794113389771356325088700542860567778454928683021991700021482768616187073077875691737940310927831574599724638831989795112071787646726164500778279810419802610198238998705296050918348871932812867790466770455714329898209114978136333798829517521902673467690631458853898090317278960607168620617837973048770314039540813783306808654502432114920699008076594241096069901566710333064906106698282062078140995925900749216531774748546789888577227719930926570692558310917853689776734127440275128926703621285147948221778169664966446073872700169593466704344208697302003676989659390545769834314689532084844930381327057107413785036670258320604073458127717824798711909425273242580239794316659245780848689976248189333422543108169820637844648528723153886513624420521428637567731113331927834646708927671202990796022016510393969332320051615475248128352815103614706375278979794957905219395095485211280024348247111789896237235222832347190104494104529237129517972699440696794084101669528993306085467883580804586346122488926539356033430275232873708648395590297008743699936165140396271077380846463627236070120879718640331466905848230911723670315937139284007988560763207947115888605531359915766855410187718445470518876554304261684008851664755398376821635506375979940827869760849420695360311035182703965095119421606155729250576283285550758774164808168321358466238918686229300172900301516588506968473249751784468608437276390557637065706360843187765729705780985565741756555093471883985227910956780051326128224937018695435212408319004012950451544396402199035912206090205841175074598025279068805781277734101578263988025680416809161713079940632336394604640561304025654585753366135409980389193834646374537452642556275969126075140806293116599430397328544075019475439939767154341555770940873158533777175627298909057521264905970095840084148011717172680351231299212448161899583911773815301402429020104765281098445025121827454956347810243057852580376427824550035795868094640931416608027748722901705116285880789564712045949207370750326953297119848224579528849422231936885285869781939940177578278249465622368900661927378190824741889365368137673772163860139271923458351950643439752759279502627658142792455272439425859806309806564858131144339787976301806614862183007236628963000901893167975603056664697650635581857477695581740034575952284308664601666693288503254630308061888327294201009289302867411008662080691296218620662293818128462424467075596140770622484229525471640830943324623162692702044822701877345065336359788396414785613250269046541490781431259001335828337817019945622943635183543346139760106312042887518365709531686517886815785593884500337505687854827607891915285557838991364849233564618483318402208281140624238521352997383524180110845731772359386461185482449085308072247430836901586288924326930019003198332339713394746723347564993262063016859405441369209281618205561881335524833162945429751639756298376464827704356390439245465560672051280366299835571763191602446792878797246267786666276421439469362069436467265845472503121432874224440225917748960185483055577794183116638805770243822405936900853370313863799068824963085461286869204745519514053208945549838967140769457618347511878965682046745567579848099412641800411072732410528531921362349722324281853913466300373188954667697713007358012073288115727429835790889504389668522041404546791626791904547509718446336432882706797817223061755103373941051461784212454421595885203706282246111551078415542889399548188639465145044062949136883291559499641045635300115680867751044380356838918337156234203794463006499678834335129530990675595712307207207969937126564176393116503446913273280877817931651311110165309072112148858895886748857336111243527127585042573993507357852571714453538092781279522692491348817322136770131157868941513225533426116314082383897952595444467268683661286743476835419188573957972343460337679698277087978388022215825582089647184411557997145404009950762062506441802818210566949262693011454381101066121484214642935736891461511806085315887132227258320035661913091235756949904352696422923946771584946340127156930956250401509198913536377819718013525504412900443148577925263854681549303893359215679605171508291897489381937460103818498598340309329024425417942472710472190856692392098791658107150456023863917084587661135407328501429827083384759422397416934157964397623938683739318886328289642825478524103580406483003647949093662672131410595671757307437128776596939846386174937681184387952268611120710939163120895027779619301870285825231788397137754667008313911875797393461373594112751475422627643295390637490472974896817928565258556946186384260896005733927214868580154641964533725166009934241447135103274518984841140018587026180444354001140808727367497476131931699443885233159107893243161282807497138755294248272427601777741591206440527291777879608426290927160830529414498126589477731639150495971504244824803790170269101991426171668148485927189487589488957400199555063468109027162878851558556017835979282633531824586626902251627758869065723028268549519922851274896283049912311924665865660553239388541117334460534910309632884989141629037551549605510879292615780551888990728328921032276871032172233848750423322638276267864292460988659925578511219375673833650994879385938066087048355718532006448528644343491844403778014339174474273742905624257098262759287833173307567205875766674108300855595615869112111731318898916586161829622251433908580929695103885213865884604562588431988570801867880229556106726373370731482684436903578184313373729022512930348859154704097329708371714918953089625001714498298913379891583695308924620159543363347795411093862540098727567255496028526302903029429004644787973224065399441748316403118910820453416214274040093888976895053752097325572243252417419026474198827356501652678689357388644628488899397365946681631475617062405282597379003230614448591797689493581541513970522256551233212874686774381002275408995360992941841699482991783893743161665062852216725065447812256262730865198550549903477662516451557569275763787654225821572270004028327444801101228831887172426231357548974709966840503308881076490993224811460615981308587646098761192556811597250784954648297969138571475229806550181960609015316779224606247421161361213665647343981179831440612215245403069658025731577689965740466337195238891945063439762335642575719608298948549240691147102589414876212801769893209182723478308896351297555052198267268903218717444422452435897598531170383235749208561996873002788530661227430064243585033023075199810231261005725074593222144924494369760807131685470941113805835230342884845103384072663675874689981867797135271885810032765283273316666180365606125038083681062863783048394870760240808170422748187680772121946692124904199508967219249847494814057545685723958017047676322280693924201089320534238766490192965130907713751334188987405651834887031969350285748584823387732507950138747312187689458307876783632098128772886925156872696580633385089095236355952604150134127052006294249379838108540703442947950406344639252673255559824248674107340355037410545635714946637522580494028570487840178588793082186978274685511765314953438841785298676339177736735974404395972916351061322593093920816576734159389389130349431353334499183878424271911456363730007932425809984572846774959990244302369416226376174469612939919151170976997177377650153782208320472375936157652399307016980402248403439114646473492771785700000570238278756369688586018838463149665428041857370493698461725944991196857251853534412811118788368028294830467400440881005562528628064397047852460022800707743491836907472241844294344686920196990601622723126794017121494255538602885912157545776710170724221082682380460208509936444702003816327048301259251823295356426133182735799911077098423253896040824619168328896588738472767941666982408843052553030316545408684788811472084525203027438453426145629459572532012137063378491741051101999064368494273534265850952697811895658915220403752756490074491226262431672540702076720382351289243615762654024200388888625497171652156648235943331576909779826579031872318657370273608777240528003047132007926507791149416125573844490397284211514744625683208458171182321603634835020843414388646896228492891707996003973833882572874308958006284997455073307578014263054864148774556106197150170522353245930963513176472999841245304388418925287539927174470511018072655357395946867537655371771419039619710375966230309813110109969468101196922050335840534229225219517041164327199257602316724449018237090801114750836758209674580208619615016017363811367611418771317275463425320193463519142062899722103914097409276070718005309478639258470276817661446583648399791064871324480908513592744189993414471101018902308702311580819384093169220335626204213404626822594721368597301250780554006671033852354549733438644882863949626912207252190345140120511567264933754022445337358694482882662441451779401103244784105665035864090083085556034832703599176295625728091189509205745804409455659062011023440925222996280201520908412834604306088788575216396493476054028537814411848009727440727431616983167995381298521825897196096225889978900179850687354051959271893565878094694734458295427328770743982126535239352642846527157809349107448297405540221416600778210998322601205742699780866647600155201519343991221246565780310783585683635985774570347616762527005523447017563295664144157155393834031107497393220437780757142800659753947750699080698457724107641655986483022725467361747469206440018057524860466263711148244112650511330829596424027835696255270740160816500210206609591760716641646516582038688208890671757026859095974416708113870267086189882274452262443381530597764107693948761594222725717703582340399565597060867820245192552020353656485893900396811804144310751998694270450120699998421146455321860009391727034027789357821270596199248600924952657273527181844561742183156603034076783144376755502687792379644423861352689502346254920471320710128956784105111547680200049048321868394135694156519453490803033928875789147022285483914710635577010056630934290547494418467220586982701532772815694160514912095185480235089704729144703315440970183916459333387622250484584275668306462155425623842968204757474892677159287399485244042334043966638596605877353415363488057391282638554087734308344912831850008352772632385104847934788430083828590428236356517051440845709259744211675635622901905161624777564798948701235166958364524644012601324297572595075865504114154680657334811561626035605237475229514820427870457597407998720710908580359251145197330076577065551883509386889792260322492430453745745223399556289960197987419507899903891297419698774728114462152983860970652930824258146067956929689478429078691289125818279436925170576534791635171935938459722322958027619924237502309005926893385182572137276754676918037898176181634877550010066626746642299657227516098522577320710370863650606859649534685831349478829563689380027035981741487614944392435259227742229995554471006799823696087129728698676287300600302725529056495680840762171373125217446328415872782094731331758027272077563186000935312330514555541973073853409351856351469902304070592456757000222923918508922063581042347098646622682836601169984184454308734220514095850839154494386657505857528027414028981258359263955053826328103787347006668885084385384473994055792515632838527069428828750506403124909861212149606328722866755861680850147700562059309804866864472655849168583225227137026884548136293969875272745836383941424718388643088714105112333539534654583360081999734822317420715002739055393945589447087991819746927953245495741441418466777958398395680110379512604837499934836962289593360873328129283286208284152858918004437276868878374024939237944967128820374054475132330739412596686310698432096998424425383139652309447059889027458547528363978521001073430276085529619304526208977849351119517855532369764886572039980010010456782263880121690504148840720304660864874279737640686793803432253040418728282433076495638278757836034738098158315678507272478616963508610587368953663773177834432594081943729337573881291409771597440303247488157944773893337546615240730748198323218685630343851377679883028799346770697736327905469600976380227149399663427713250094770390314140644596985167618791582729060773932594168280314211683361330621975554789791057586454165541362407711848045160219146411314308719761709749334083918720952456501516246016185265969374436239363291821562282844720995805087275172671544237183448385446556819360537087960233185883546963470839602139458389809092319409425171745492981116323402416579760766577293063657503155068197086589014006385339856733029382632804008626183749695052336085416959216792159239532357639827468359031346014092453699827987701362485039149893699435429775065166263021806294572730661476558550776288218185881044476273611257733899688003050146833993391855848655779015763840482528382016003743979307597467848117253456079716362742368224504504891159918131814163136194314962569279485151566914703678732393069325129733590532186698068653741745982734364462612663254732999739293574341938311384179458795412193707182846880115662548357196251283224452476698776917092394840101493383704975090038446495298155228830337674512755750350025793654286118824942595109947654399825042951416528703396195175144197861515085342695328379555685417570081872094695555724123371597439654222099652673717379822066474420477076353058518709606204141528014674912042265158497489737786972359885630060118737282859503835435608846434231169405388372773723190426775695266243049197125750489122664413012123608093797550584840199680849973440263586188521419243415844302031307371981063636697607124830724463213580898549098680336608483932528342277065531557958416159015470788073571975109525724832185093783296974974224660448026555213064763157944372107201260579910022183414777001817654659599848189072969568084613812593672238235200254956490133237278334476507186712878878102108446765801504137323775180995171998753779526452826323841472009061427004530879269501581432619800463266310609495873652936607806524645330412534711256450534200683835613363546716206360517458528128032970968491041639423270164808535828652754232233070883350513123543416128568387649401321107431004034006370389609084909167667099013874058113944251327335540485676399625442564193426427766336831889440782587606785086852206679466559000748849126957206632551836049474337075955640037364311449006872264339700539180028011154044555362639885023655967435514959558442905385621570084534309989605264189660326330845577460273841239519713691185378023256867921783980480963050909661332383134677179797014160204587089847101538031575297536785110949889654236876170080310931842589473794331245872675707433535210206391936124563802830628680939043965080759954135545024709653167912666904376605736318337650145952626557855578489422090753747261521608862873467153947819255795766556032861610630960140178156153254121551013203003988490970678653839809422996907996996535811112256688808141993752329455704731472700051292014123329672028131418014902638944708694496897234084496077648952548915271862877800877705168635931580122971485317287934289056753963735989376528911859745736990527520429854680319862585463366702014144112741005247582669323421927030778649253201107214826299648795224273841506052088718442165730487790360706222983576119677937310051714894366669862223397468161396878720383007974677801459639183799534013809043588277162360551004461444812085065898547272249367086872562158342747562817242421015194211314320847117019760005336476920919794008222237481084192845241722009842220075817961144902232671485805084057195400645042428551921175308229580447318619265279216188527521208478408323120261608857999128738018577718212685062556464233407514277828587125051645352547831599994437824380634640866546782961196093385928647203740414132410222250845993250942042219482287217464540737421598878110175062502277623266481425821320707358554794885541088753021653536596429616368064149164293413635939716161337712091021592207195475757440392841435735549308268771256900357120440945348580496453782263805778476442657051006135540949088931608956086584908345394649582097817940133750534606934296759020890693233143716629780991261674995180131032901582439507622839484129461285779005872684088409920361261814372576897006385062914362675494256746614663893663882737882964532153898324944490579018078906901248270032823881417768127605323199572328968117488113973160645959335697159761373668237491593838481932744637239453703342898094859489658296459788910645952911258439997667610090287964127792263888038561262246486481976168998129306408439038803362699646094749368698626936402879566551115210150436954015464151422972187543077318839703551148933759927534863431324506331869463808974488271610359141011172629258787355249907313690557423658781437782895045327285479164441946402311897040495925794029483168827896185408149702322860811297578923740909761311992198419373277693576178636165380640548397179044468476636550525689971860780902268103086507628344992911900449298457364066564171433299357957674030655216458892070260493180982063080058440997636652733122608938904886348704783969857721315301327475510913808478735002401028815855398692433108432730356024517159041558571974087865882990416414860961350706433139913228886985897390884104650456630856713138167378436784710114571719835892970104004036549447383303258435561694753486530274721004312512725425139690768189660460428115089564460675126784757687913180299972300589037340014271113795990822367432783902480788105390533930364341214942636500281355560305521350643313483774663406329201358487067277367548297439337147999436398314507419449622779460254129220893354872606755019241222376905214306740941898163232817634175538934417584268339690413740337080780862042500963911826680421501094505286065391529197456908842512565324042639526654415099373786869155442454602713832099012866939237603357922113830913809250452899364487352176863823269887333474092557121695534320850951839263002293466445518766556627323152653273546747815890349966852821471500982511004989727601669958219608227429074634825723391090518754117705330036723748345988449033616415421326600282962214804501298897404649349683969804701020084131346553970263670994092630493388700258030395561390867804083879165026145382101650988947792873927029432343750326704100472308437254913012602726312726391326738470235281733652119552687162809476093576244553272120703929393003602409957312448401970264066817826159632319494996078715376013531585110468960217025876214341928982789877690716025267780559884888256807353110606204502582717980028034862109778768347652101962844323430029181401810700335258434639552402510193983020003305802534541090568856136445269066450408269074094552104173875706502470064658759835781968405046024940431786529501395959725205883964281062985229405028772641493393231226331786414671907874619740886061281111162009148202722678705705557648060669510230419631029321021832068760495428279809766829038963337177845203785439146738313677381705796423633423042823139162709716467830900133531318470486612542965820007270455573257116897735271476741890387989791970056314295438552249083802015381573173098520559644381775459008865909880548821300176122601586561338730941448696569459739378735419344411927861855058444102337065531129409261104507328944388779114023226616597725559909410398812310836550288992552162052892893377440912007526996238240523564518848844214509013563359063165227536928268412913479055805504516917089080836937721838171230298960058117123024474074811669516943908514013802004664098764579711836152596549402733462719200988624437880098229892136564716848972135488490761354628453694661321318172584270452668659553661188169879090756780487108630918613240930163776727023303783918987855197101316739560159897356406923752635910756653361838510208336535278056109182153906839657839949238362778416106332997735876264872419896812694898306705401189627933170570500600449779821147335991469424010929822918565299256074582345975401528685490508501778869039824477074116311426997687164879931310339090298032415293412451933231658886395281092368864156435082697069878424610598661735187278326520736904779077852821618832428351303601387767343409756285640593663963655950557260620035536525519560216698480427593012373811510150445471231221822846889756503296102518281528605414842521822546290813176857217172243795222049929908939946942523659012540045260879332558579770639907003891769258317085217139800836103062855791748772555383128618354136350280386117434837915897547656287951457489756838809784614555879805779331733646014126792627396341917433710347691165707371698975771940118226812132106593712909124073821844779524167007118101943133487827465487485259024812108353531681606172147981468120493759766259003632796582814770731621577156412844132553528693292814610360192752097275167934095589506421273491736031358054375211100397851617620940147776913102423999268205425571323843700572258482035776590341290616899485613284484351344503717791968186577765503518082143039283782754163527571058996467458668443670479283673868662716883375812607861863306362172897967201742681470083861412500946860163284327091842378216914713264253681161740059139010021888454178693327204593826061973875067175194950700794188915686900681194103440222310193200196367613702981549947063186389521156257488696051831232706486632060097624426545683063993764342049876439321327110781973230422614471759272360720941930270372521395608552677933234290011579688337812279717532731273695144689335617875558278416727797547933181709526717305412469597261569550955282193757036200970387268423925057806217893040468832323668265091346194716066920377332311120647290397601171642941693447921240516435921529714246547495016821746406963816934614735477689922244955156266194635931840943423975686841574626899027744589748360677568150142191656931874522104182423815220231107260305710341283564609761126743639023860557151710987006393316875915460690822417323115862945336708408401738676563044099321137580001482221953751679731798807467043801532169273882429170876053731589402656518442067420853203699282394441573594855033794511330989859220690845262665875823406032058914455743452629972603967089237147755944384438360352508164687574665718009095160340924108651362233647014852096479405671539966117667111778272137247949201761960422744330762400513847386796112991358397032765936881469336359458088919472337228740088789127443658556690325602759632898430426564864354915551112823910027386322471134834357132071455480159982844429287993099720621103219678374208603653472295214857181070340217181905984442655326836278995523813111020133073635615095671934901342513650515804514458405001103589957161062575475123314904094913172223992034406709934200774845126916508968623409634372754669006401387762536799191398074594557869030402149865703656083698888509357862472515829485493654215670714469210617238000406458638506096777706297201139424625992043864142069199341812540666191203893353733855112285570084321728922940668489364120285390108810660309290863630348010047817707678197428531418283583377853906470612550098819774743769194010312501197740147535426277803575933351521505026109732864434975988800777394844632545993744149132073812392041392637008264743284081687888872687766091220054248500789439777013516661841375454879635698498632105227019618024050797921377570517121519434299626590562946925087964984626481508960205751596185809684736104321219884351027620508258746946420837514764364583608230278599427217884890651060186591147240903538391023362571626438925010237144915526220739367070109898765919688785411715406453072499503979559851999320957109609818852484310685413412327504481865451313407201287593139408352596466543062243319922454492490937029552847222414023315820970700105994195428577823258071725370359280734993747602841900238976472190776672964744069152081551272271021872438147395847470580314293103976891766456627600146087632816241797864540624384292310969745269994682339947276447167783422026023071714603949396749794361831235696200020298792726932481872902774983490083418109876026091145731023739075034363354607826350141138512740078400465600762443461810563997165223175607409463794187691676205760662997563307764676495366359616795499972751682737861800867706304423188498621287153545974988515472328731256902931043246541090067834964607147335505246587211531432904907855123704796620252414177225382555103453112229417964559579994591880236757852508242174345379865679391267523546828924796448571531094055665075061391143573928942431580248016350062425508465787845160160561729228164919420713444353734134777735195023041584539299268644218538506442836055997926924563930191115918867521960290275778299214396650184210476815483788917999672771664023794896207722160882490630610180928533503206280920578312584499696021652348166319538445458583571696076051755802618132735087816387882121314534314582578339877663690293299753845436811218555955065072998149147714737950307077228302256109061347885944022842684277426053718702429834520637633541638814811023138558903819874248770710539842565244170484205782586286000809115693005290336325802125555128735633692449402180937427786359896641845554374599984159918911366153085317555112901980349944507122808711034745202654832035448105475203080619692390951784279602226652265108614787811249909874343942843012158495998859155560335370301340033929307899364719807292156368176883992711192085028333274026546270316893444424194063110758106288712106199027262668754686356994074652068528788655397334919632284725816097225475136670626276139401353898273027958287471367715593433641639212068263184225932706270609151453320607482298004006934828648647366519477340343715935503514705014837023089240594777686680745426543580138660875994852153604702271172885529076050187234939943980007264865030507155964338655820335101151332908346263463209441519662971157675758180273500115970071279986327912331023033681114614600974782149276465681999683041358144419488991691086649891479059215942514849514198282821268521823775005012513246190690658253618599134303016059719971934207031354664422513807924068728028044438688887953010372052248917662423667269263166307845435160119966130575469439768664321675674037083169049532424574484260776136025289550267381198480788658667633796838499315121121577174064887731895746081268455430487072617003296193211865048231407077893811811511933367274394094876769988153151750254868004073795261433222719039829244494895978411720500182534943997209349675901081596792712623551551717056871652407350075863193796836188501026550461909414613801646319082855616659655625202787812922325342083224922220994450480712323046684410077213568561467244265295103574235202768616171323353291429033761104598782962910378323605705719556435594567988995388216346413617149166362558594515708161785103144412166528386631403314217850785791383292267961693475558538703032809847153040196081142988093586397505998162021919639434439012319166962332121250865065599055447110158907137161795105192394840344061940696073732309035575246653234308801904916134273714994078156316961852534256249070195961549557820291449723260794803191639760207479448044582542145646186205551585550163635084034419329962861438230194533037325876526404656336981694831642099094550073220146169669599299683758770757578174877025732678924227758069840448689228726917319867018592956297711899954839546475465520130401717320227921603017062195849089842017970586815189832391520012840561156240936219540218888934769581886734111252519993811786983954371303605922262597709345286809964012552777970375999297517866849030636840297183479494419312746100895660547300955630777782155824397420424358105744335182946671788788716129292231069572404069149861152650548854758230189656832311992795550227069887579865204151700719588691986322621990521676526379003687307232872027550451137201178194404888237177727699620268297636232993792943761350809517624663548747490545249459473599570127827979978958669939696089773057670172667492206824472329276080839551709408859044935926353623047349356296323848974511021483172635193736469277582276900079461762044425431192466650823756010834629710843092860604109557493368823716251697220223545075488768022039335292479604741691079597304260813349469438068325773211013410632475176740379319685282076662439246284855131605954306452312210854580986785054980139689692081207556026514551441364458764077253207918651917718879646476099135440091312193277146279007255948282027990559841954803600308064956515242792094350106403704363760887991087812249000942457569939001626983358752311406163846647939868508557530295288955627643607059556972371927445258622766523221812769969947290747488234556556736599329826280606819703530783238724132638027382066668227307100440156212816576017008496512785871905338353001178783037759749793351055308401500248245882771236492713164089397227108608702830605390219856905700784640196614481606035248952409889724525883129844198050771868584258392303135101849760503753227510764984893602490336522279848022787034007459549276289456272265940561164619116182425932159308316698785551779590569847015165771604026688031344846720007085689571591433487021340032636694709358544404519575887002337720530186475600025072790304841237694446779649715049984694433949077503084935164969287368689361964607049405875365977767768187736805426236576410972073882674412537505092703463373761858909700535319497153633942491418622878331942085594111607405868318345225470139283140985579736750910221519644911712861458040793699584069614866671087708976995000567806248224723444906370306183729534957936379544690516633427918746776885046760523051195166912830380714472755071471069750881486812965060112524671447535179371196892845549681101433072569139310165098005409422283284670883510209407303789353743488312789563281369870802745434775083624992987586302553290057155864072869624296591512031712284706519662386911981684730166730416524128855390010885080480530912067822288013396310521985747360345610200020921948320535141861923752813614616315583963772811046812955309381943296636685898428202547475398116011642692982541463977929018625926197440540627174284781082096611105687626492038470404707131867308630278650790868639016674716003294891221408184269519938096450195484101428130101883362924458996446680422105213625416219354655559295489242734505063427877843212149245871970862238949521076913559878790929392121790030686458239330332264490167920706086329928787114922073884262031028156096110958771752245158560229238924087413399459979934857046384553556930230611479810614289436523098050192754669223039293521853855082339328268237166403323801341128470809534632482847847951948885291787997628646891569558510417834437923848742636317772828179659774785373764081200131455367016160144287538673652497600998367981786008496516323437214663868520907007134152816507835070866855238144487772083938991109973129900785273388380916235548045222820620344052313850661374421668412503202648180339037467217939991389470850250819391963918967082200755258303771982721298490160926759590199455216318254315675235480778194355032190383066503626489547586558022471757327674097169226826897426202491345745220664395043087515840818335583224119674711802483143663116500177408487035826851804168299654673788133728175275219348089261241365719049604624559754024435027910643818689633059229265293606887947535982290141969689958934405483405027909032204566752731272329848292299263020803398469903628483977634863962258163876407575815108822594934558330931404330452354613131071123940165946349492078980373123109728432864205899608573734795716831283356283522872213292864053934282521766315919739286723548645108344446664961299069902881471858252388529798975541267141719261380822155546705009501473881569276440332829678926877434043641636676987143183113732507256793693857290662945935851553457917688547052062412174296704537501046829888860991578678089568050948142868690646983323238515069473282189857665358517940945282872022757740509294867990285118463375368656175055109323388754118698020692550839032107282170206969637649143444852094254091061186905092563874324616527423565050462688080901540741452889199962372992314716914631207522556084585948587291223054000555791919381180745603854663155162240505602673939512389122678020944309632269784676264886774491686762634661323523311547907067904735954528746075842559420202073193006038780100355837159718462268569870730114945422147521864100771070776903907500404754276254909523250456749177165323245186072515013628497198645370959648414381608237384810189193679769226223530948108917590348871926782980888113535404114435086748458979075767856490888260759511885470907745267667200857119594269356365875428365110967415496356219973803310966125853784993986979021215376052496339394332044028904927223968010841632211214819408785703421330395537913696272712700795538733733579199919906239279477740509908377984670446088560151848818279354504732172953857861917435539291523467015550430654781637929885596426856330678536886932951953498463655588180833002897082973650873320425409740021521191014204409191868290618292119049967092643256706079026926997086449227480191088821871191444597504522965998026549192010090725437563841428889175884690183267760878536892007058964518089390711449329935681768099625509521906566067650912617116721370625661518545987914703623536032753214586292662604422922188891357029798478387929362736538036224443889691398963666342644737017257174528333038161507573991759270135408415758518348536485322458476961337229183804605789408745329695307661580717713817025184900681388229441900791392344161354492267902854798155088637443007969700835301322237280883670606666234939386963197474347518054646406316590565531430092310982586545846582082415112107872314738162823437853634385718424302066496378079828783917892026534638246975855124770967143342914936176815641411844573429479809506795511272369808994282734681089218916798900808603267238324736075652366477341711520149711476947159169941490585465386900738602224415682394501046706795324545711806336955496822239681204317911337866183987726544478662581747579542927817317384015375425064541691736971689271044876778411309778789032162190476116292842649184602262563071851762506253796726050963898690365898702658831579701518367065506192565754617216746363287594699327673517196720235594317416316911799988242803900600110910791166331384082076831189358645642755680608102588780349840769530489067119498154456402290727111509085867294186192117328242695443981955839627096495390454753208142924020677186976023417848464776836637775896262203120311909171429968717293168668656572678247662519535840938748032762145749556707951933812368932834812725576060387838002004956161633724707117449751614325423123551114321875338035314435958600299048134021990456959628523421160406158681174231240300315176522848144223560785334102596258741688920077571645095250022920498735331823694671501231954579557343868167585762910714673861169114452551650781923938922851172113841297206189947253073290366836907822158816994093583843834914807385373206959071339551406965601230637983627768587250092045006413008225998541576184944103007211836849317143479161766140691569591541961703344651019217200335885887660315801380234426847616298525806761077153389902038489455199850920916669541847739277962208643837866123172663992325387280142022971306732778506740251461223498570611146027402660049544925439585833595461584361462833756452932353835478770363990197356885636796384384321486260280338451377808521891559666936998090179849771977464172841658994212300769088659907855630294410888407852684972179472641471912721681285552401240086604921216504496566803653559291198614427213055553706384348105539571425299724606979163405623309240945814633635781650843648616588902581095787432387363664917428440096801804242124118801651013040951488624325107602837537944844060694542319676169833090638182224388979572824742699946334983819190329182428274109390782395078671683263163679432680748500567997421583503290556363078849759594745491175782131496835668014925330705054645588330428127286370257964186570515728144586910441140566639975091609391423824191714584641689811728749014220063030503947494299692511569483868212056774129920735429066155163433253321753509935149527274340516795756589269032417503420967531400124073753705701977031828004830203725228673362018925999082285275551678173370345490985569046545755356395901573815298101652523607786984373918539265782859974986738662596030885651619552400654534438914544905176201407197343897062696190736858274725269788934007462309682842217987667678061679098471606667449817269564868070561805360444274270211578805037966679165687751802273298010335294733725125950031406624867194675136334256972750191189637698676729793541407274854601212894078237092015005627669789333453050084149510428368091044083736786069711234595775858911781628413749169382138341189258546703468500061159416943474702350828510697137909632762309108583623600240916027507881173615891384799389257781624550099762086806852526869543810744541853606797722842754704884286741666585483474519384302785073565845597698175338889744728324923598079790795898607473664255787130483228222921404912068734891481751853610318028393082027649007478718690491643088287228568663947749876665236138447823215452587525405691301035007412042285022369106232081535393206785986216263445400992990687796969544079604814956346755986974859997050844245336137204552019102599492188043002186552724195094788623624477921366768802210079097121249153173554876868972603720040914886977593438281079374013015607630766908712483246293384349466675427312944509124651308823744129327400168204566346512220804947545727502959711590872984238111798690484174707239049158584298744048731056894111222519597881315097229531772325838058023614844354464691511475772899692170778973876300136402421979417592255493922418248053141456997546829569525797940155766247520364716829822000183525518503802996907641947659283952736643547522116140676137760362184174093440234354634965190618218049188425391203791284407055829761318421934260021154330867570694461631060803505993471941622197289225648087281875135754544897306593463954888455771805337198169409952815194120444660910123329536676031866778918488934145452734876670474274175810337682818960064260327236534812299867860626254283442047384732110819849393531271581847944297531721974190488726554748983276195902860403836646701322548023996736719457177259186804766148557176588430330772932647372929244946294074793589079657431127261883581633172182203554766696965121708091992510138213486927482228328775890920276954033238865304206929788760565466926937390679913780209727448022324603412965971456323481893753323678530052523028919310930954151200660132640690059113301067388077930563801314508168235456170005760138543760138931558457117401945507991064526367043400755488770120471846334633306390899078919438978026349405018740165141929909147369555065915598855977190459767778140343397390682135730751402200504786414922844623519778781085474484728038302266761564301227013322979628464578489095299739696737277009247648099226202384238325360283095121500961589482053158857934351330759416653925113559006336231877470479023376016204632214978772920417272586950381815805511361453623742806871033952611285404199184645403566602264822323084267261998964932713854748342170501058582888068166614318225653955137763692165902720915316724582879884218218174558465713680427102498374504439652833590432843655394411084835099469136390428832570786655422052185025338813631750488708219462800245405661751472291822230559496095193097958671620096404201657721336282910469110713087818608618830626807631208094313904702303731387080738254400180277394102926890844879416809192564513979748315441924745373126208694947538413302849215315121044549252285566113176234972005571929945101196793789298342391267861510823869484144457618936548192409379691990328081023994944197416685006566530211020708480550564489815081500043037238149871909961360885467537685608890227744591444271296128340884742519013169964118307609981295208880923396076848195816034938449660040280650974976874000500256435003110577294590869640122368613346461273191650849435110811665711070447749703010655656762318287894394949241178361758951580300261990928893085058107811303336626915572919780225389838476276120345918454411599255745416105227670651143714079299776001665781231356483479147805754885482720071047440431323638096030441775089288507225535821392572944286927024658935233589229469018854771891295203853619258557783402599679879465493457181112699006633220934034756797206755132766480815052928180248044486010109817900649299331706564863140702125390659242883141163399049492028202681736516390113990697293896946356400149267097301947992618223993404788079062404563069305134238774504549100917899146401884481485553145892376107023292943418002546005989019056490202959869235419336240847205785821559515145612361177476940083914170775416170726621113513468943136073638836677180531654100009612700787096189770727486172200723403553551373539678091113230222841092200166639251445735184615260931088489640080400957114437078692323836590886475284343077281035645590926488483430446658759282129168202073267065764915856206999043072828714022227632078961734111020880850340057104803916611425967659336680011555227719004596003902980894577032087881475565908019211016685936520649714073673249366635156117462196711253095997241461415258409480528036043487119571463479310774602435510156264299442795482413502348788888287589719597021601061878927894575885529848439900656743773599464255334892279138187011983799223373139086729095406709309716184533731820363614335411634582963246960298677305991667283614628768881320459553681887434536299680903772128971378441180938634193674748917933918695056177298847455099809971461837965001730814502254017698017772585436105543081334524489986186575827678477776117453217075117021479433661871590795466446167330169768143394694753437223954696499773017392022637411100716182060065032248441552950648781399095148706419857060993737060006427748088788380109785428326324199196883924778910880040579341597065692044176392988413570191038482170012329451435599922127912045467540973362344811959741270638863200237273330536801255376431328006999872134642333256190144316763858107481600854820617063045372407324191154128770815192178214240182824325670548774703313904143669347702483626409103938530434578171762748287659247365877819938710959891576944580260322684099495087461344889796209723849606194174577051938436564982943739673442124169366009553079197921706582975021348988823488938233650565965390527732838393203072469231860831201317466917125056075698175801225578218874130156775283299321840607031352383727798451619965090709498308653775562855661269444031118677158327549982764647204265898397383402383367341732131075874085685924568378229992246143452978340130394256522620913377103869632629501962100091204204209422189066873926003784397727489389124002457877492411465484083228553124783817976550496150801633531162485861616104481367491175780652421905005903244271980840826765877423497045624343092608529140466086345503702468498158139072878803676596484642885046005126309030316518038379587762747493025369666153377358665445406693484879013043431446198646443432100283056653819795773097043475607428294120162470942694674719709530379643876192601801775612985526114187395799375102601855524754128654945130325891887138591995964889103136640598967493715487563521218510222800899565023580095580194724416964939358672769031395890775808626730785095678498616634710258142097270204540632185001005796800199021422963208814259099395016124874194368865239216403087697510416986088851814171081735145734576772963627470651191947059962895202661320558296515615012060123448748191311565661408028421481513490941013578064637274808929775625234235310219639226221997894809730737342189523702896926864348161057595497033752555670062739431846951049997180995389233737199566188840741303126293959237980700917382162311378419989688538460293142435518684143383473782863053012170680301197471889143783138837203445294408101465886513245977020939392500660798312228346619894300664046739611931225895857834442666913407728540394216639232639233616067932690030934792025883209580674888794618980842393656545920921121463845505542563420402316113481815530849170911321583072616799952444141544365612709566399815115412073650770710749526209023526160288046246741034738840517825577445778979051798993159758126023396566120073777080493481988124122751116522901120552886478152727047866075396300410220384970363108429496034084901209639640091531413704793718322038996770647159828352764177744690507385927421794899298742941746147844067396600725869420950981156663642958517957269557940941990625808253949937356252885305628307738227298973465253616958273471865089635782648445321111485377351499302294346523515177911482713506593057320986088450727060514356681194915143742236422469737130415555387973714387738842779266319350483291519505234359291154832262244470959111663969846683756537374507246219127356182623149718907931365260264178732203498899246201239022864378024342273187072201683007500354683564696505531210721378117744220431922836469529011169359830907962679607692666901006793224212130317844857081505223190444438904894685456924381700893905585743264322750524743605299582506589185065234767858504354032782428788761792810682305284317913525315855953315305643031999687679858876094795188597684094797553955272021410412389959131494364257873148255644734467087042108731119017002788677418375679432770379412462271727192240510353483983105538205965469605050156291616593329991740909973515681217283423301640885608263229733057941803504771839753239136490410631495269975673681415900454508289800199690011141351011979369429985869550136149471167630892887082138934959411502243035052234937402336525241425218296050693344790219348053944023960807795057187783975337699216984178898149629669582566957840401672182719049364679407880822562013081940581558885800142021385467249641813778839121122908601634007202128965615754602651715143305630901750273135649285761847892223648636788354919724212047814832064820962693706231517443905741674585090826705398720178526395465846876579979790327257290725730779675893596411948718965718370334192584669319267930322818160927168870897765412639697204699383846326912832428973055966700812344611258277001286216924038229806507932184178706834125506535164544715826224343710896240814398902672252864016936292302012685915859888000100769654640131614181809358685016735671548568477248219450624482192116811690656399265271354920317738523639100621868930175617909938026506623352443203322861555100558639390642605727630767189359803682403332037884574729643809038799705984331332889071971570703934121900904196734361998210800800988652577824916358292485693784213144076010290340305749250384259934530138237267224698202785429015556038223457411858808525985092083031220032126916820577956360716761748084709534785223556186727197711380761101827105887462553504898405261552823445639126379250635197913074379023167224847509868150686136444415097905341932864920763156517571246785962344801294169687378725826281385289944904527797912716404407754235953843515056516564509697254881028782828925780508817851199907784243644824855054202120089563001831232311778317041661711454296073561874606506470244174163577608480665825643438988973730937086671274437831231887304053673096081874805595053199346532795869260670341785972962383180104638982715884081301943920510370386287700780466041419811443593242966802455825690919061678535795846297525727620936499072165111266529440281819567375192212629817336925078402769472250396491035602398566332940830768888751299853147307991346257049550951448916936038516325683311333718385226641208025670674558359775761588977037036392379794572175993856066893187971679002455000804074280579531469202762127380770932108791088075070219685670027230659269508447979054367888755590969792529285425917056163363662620528314946676082702315556462792014235413674676606975873579794464990287560504780381092490739555486553664642670690024911807856664213495875119283728190723742524153383702827189423740594003001789220186701455255275860200664421669885038783057620561330487051506333864440481635987559680791171213273594383591492771648465446177225174848547495825714020362652401676611957011900070357539726895847131069324246630041847255499015458856379672832119897796103517959015094730289104562286609850898863950805958834958302170192406552991452465057349062351361185683663740532655267151867682120813949430843303917230076784893455746223883573050314150086066822773069146867119145390107125803365566703720722807288863219763943122945957013102529095005119646420784317053054240415607179539963031786474638965787895350847363779389855609916874981170473361739721721917253539762155838249674900557565076931496634337575100362268775661450185604187314011595063778889416313359671112970071912486792508865894787643715135725354001638733520827098595813611356520349126081919621804189299433947002732801361543293499058053932882281747705268395675825474367781078461585223391184120545244640272938209959955270191031900971317218304633196295977995178758961399084885055347931856004066788842257808598375301937366683719505414784389318601183825660479265420382590185367357262455158144600246558941621824032698406622427919192757268530107299434246629427991388175393979287619845025417457961892491718582572189346224651671650665716370202404911956256441406377979430212189083227855150765425243024839673451085564173643448274725057126581656943567110595547771996540705266967308601856317841929580049034785878901732035894446448524342019728447275564040671994548201774252980011414706368611871660815181420447165161326732018865497381135122919103194068067819446222257456830028325994101145875113668634886508459636096219193288847281003865476178829299671225296726127875719911972430095539345395128499738634266922808078410568319997951343874930395332327202285296462217282321858148902767686108668484535729035276547889080381064669701975562139376702347364586754491884006765447770191691943507403406483265673323737493358979403498514730849051399744479136656561297721044399077117929203940412980422251677770713524666615001698806335594229161610177395823167871547926265111632056284130646307755163235133798533986974093528370981348485456499544875496708236512153945106932463562337969152334412954784216606962324379245853836725691677315403614371949621590751652941394680656119614897884272122830063636572914725585552744124234851904479484261435398205027581081032015492246820774719447568687961144204895036355523190031696783692231547289964911738055511700067499151645034537724936469815096212845768576728320165885383511903210708464591725557524552223175815656645659777592530632387057665026270254601262596481973110578815554743416825404945736822115865426005931272750267464716574407365646331815283471007442014398421032753556732972235799668408793912823196433555292527498151244548074888180582779297249114704810415484416782405998132998511361544182014541449612561035682358691084072022511445870805860915551827998877235896988679769771024388126027387647494121088489333301925529805760416856282254247151953724471997499055006862266068568397189651242057899677038178679274029807974732024093963245401123029371141443942912955899102279610177896011732284340345422700446549821771137796039563881184699102050954117867173517990367047738772085262376222379794838622512101353749544673255994747038340360341636949057556704757906214413591618879974319680533267334861141971076534945656962309608343402381205140310889548611511702293328119772888163642994756844896602100117186037399232779111676632231652895290817718882099913303947170210666583669646943341253486635475935902054744666251763914963131762457552002015836208671697821423247974187302027107290424492960562593649701546734848545818537355124912656891696180351661347182746647330360214523180337094803164902559947641737733423884828998910077119604410664687412020231464445967414717784745139215869001973626080155133546696620572717686387712213802603631853773253287562084641263759874340583089389596632517774963915676934073276014959782685356077135632464389935766515307177326622058338684349065042793739306412766644331779405574162819471800787085424315287971705299410850183203265331367062266274586421102873951769607863419168793083388545553810838026221402299813837025764900610643254211255660513314952158872357810816578327091951245341985970256649046587800641572926492459566029653821991226247567477106904482437008975122345324968396229832836792042098514902760127674118785108843878339527318253034363474445362963852533837862454784401142119414475358214545617011955695828239021599047227132159339449502975335563786416862364114966198185774553007433580544175066166075819190863088593548529958731492400992065502071292393165448245241304636950639992332338072707915231894364195470901801289542819281948129693590398235754842294526549972449148425828582594628872177990292070681363252909292019846816143335989077434250081022850187306360152770273207424846343601136708872597844595155920115279198047750427875734371554437406365528380829471000850585195860583525940442812479858904444838924214639830453946331573499261266859555949225836416728923326776624275668327396754286499069572995492122587914234773123657169238817003283533995997318728822141562684916344827416041605216750880385445058380420879447788915192487997391084509831211763031705475216482674892410556781040882241181965421511205227260204176650389737682508680330946956246915809876473207473269421736976234080235927254083942903221817316272658515299803907171851232923661237974308653914808263767703983585383569338605940459526651061255298632212206294494689503488182597406547014983095246516685993316042606118873898495461936312723681485117484890504897199370880889750753590926126067810702145438844677615677227066329497883249224299588075752122513274787028484664207991393333383794391708157040168612374753881702506429191390239855912484301834327321862268745542935672287459410855579946076996435663979732168025000920753196405865680137290883902763372715420945389376149425106426259864349908023622269654659692608809446302569794981071668655090525354328162141490690806606328224279203614809204280202351375316800497932519302423534304944190447547470583416650953594345980413461247743873311355282191903887939158963064856225500553582068532982119923732792567174483838803050242298854684837452570611469575913974257577479192329875683369152724910115709638274777797200048915588309068423924693525225055727931398421735951120273620954746471153753573096105756134602369704245573199639861283671687816862598903853377644014480669323276768417234004982600295522516208284745828492925702399034596196514542631994267110460295654225141982380507532744806524815488792226770910696503332460412742433059653855293686082797230941984860970908048523922520689058378080903655466492334501838773282515151131370510995510992954221158282860897934490472739773294108063721679327234832385475639605448077494318581180851035750821994577447122840958310274980421833985769391987067983648396460352182924822236196966339088693969534749879857616604537970211572803668745126088661391891089126044158523139717625841881612240649665426787879569887936930868957570466002112010799395198856855668367768026648494325078286853972398720004544909251865923063258501258740824271862923502004995530182244608346122977079670849545625205072250222421305650512040990989393841206633599456750399772984893449529315519369474229573144763459971917247688034538531883232582343866033656090695182349260938367453461189510761942296984004820334500357123798244056631124793004801110918538223257558849182339543792106148868327133132920569364609434857645812086052817752758391889883476170072840414235956577358890080041534584114062129834414776286667987955095098033483681030582091817616811878331834384121095400409941109073583048318041158566596984301486983992986340546245624488652646938390319542627834931535060405093384723956418502306883762340887690158223912937390837023284474405608196382173607786295488850741716253172722950551367132375191533231316647078833736852671671559831471245963015011304087362943576347890660103353412087729158444216031122758322461849314301954352699594532662951171938570353692591889863876158018911930600164731397889287723379573392336464644271449068162041040155608447383943474010158006901388122930224755053595704221013824505974348344585272316130108959705838346971991188550545391306234272889686292437747014524718053531119296055806634228847862758546693500863843304263892058268251841373395711807809687419300019320877802715677557234961184708348688540040816505655059855112927154046477230919879522425351578315901540994213803190798327524132897921170611207539233325615241179272024996675416822492889100239799486457136456536042044616227926439956336894666372138057080653813382631433736596982423119575130886948383324722439956270696841167762362300573442817463302422611263148520881090303934900822738792250000603416590392710191763379314019200073483388205016449580042680092223294756114249661349174459208116780143830641781667037782856822208109824155096853393903217753237847359699927405983676780019901456396065608981378828904221562040591621420608363898240239190638269300442421220190360513067917689191236978902047769321400655029913612553018790702865914915513915318536383006794674109184082588275504081793683963972594551558897859269384138096359133840709155639720451761769394299088575188226600963388831945512411521077243357739948761325280920618561497904801952524056497387111884115918448765352421848232200667101942145448028767340899486654109571029081620493124962557047111147742265589996322594192921104585534734961804432046304919878270265112033526886008239627952515598873980054089363381875208961793951081389219999267093359305436984954375122863229739179651500068528745164091077425550942339753601776118601040894477989208277170544244387388351583136898743241505904307108662217477165952033362237448578943667936089011341495064143915269876290472104287626369974199971325176064827870381492547853537233183435947234465423831359749115204028262556997392035497018325140251743152421455461612852053212134094154855097548805907033601219124646335946871866269680029443441068431387483423624820340087206374165512003984372735803458169721558449357872883125395602534483327816383085234877417796549949249427161350010224275320116507362340919303565745458190499352632786565652835003816317205211654483626383064332309136334685809452697377231590536913043227179359797621455693051996184571291095334472436606305810001806429261611764316737504481130668376566085341456610137639243011317245707070559872306442990801021165265763441985132482804691427550282961873140806001512957660986469186538929893884883109572287829400395176043272474707860245149306704557404199085391957629564292282085553805908159188621272575841255548612917236841583164883968917784957098581145100607736871473632281529648798829453746362795710948375994811528031532394994727518021600819828499235362590537912697416098849557440344565627782088130374731576183511004461991390774285502966275935872710675327896142347441338949846141769686733261850338654652271830478382583943513488651543951580754156240776652408450981903401049840573003873281816849389580088305230618611020286047552813651180838730240410428926087419413234694016356803582613645291844428433910072193637897329018101732061390250884072129914193877148959384105778972015930800489767933904247318600321454938214296296520349825973173040614208423852420346369320891214214659184730551743241618320298651310893870014960817252828482465724652531276484872911594106766175644598630158699578359481911716504643665459722224010999127337146995720963135546396902943873615436798862091806653585097380757825341847099100432296591217800483567137327970162431606316791006419226583773589309452148912076252941888974339537389452833701634141598148558744862795446771891962210240352179145752911110119684579547670839173884069304143472938394777952538445219567845590492678370946862743387530225871294259806895520667329854576196900615298241065758141984764855319965044946093970234857638622444673697941946275007344437988256536446361505265941826858623132865534201008846742197083117830480912279192774536805201077679667048416460447256737432017981481945723703391158446990721987318454915528952331821222997117290627523794265927682985617916679081373928553176435833591134519923527756901170620255427572103961443343981030984050071844640973499662965084143492953653042748113789241199254525396071621839340561195150449150267438611389827136373797823802268785170931698595368107692186324411970868708372273361855291266385883894591358863354406295073723643776558815525577893007705640302165650103843923238881707779582288045732126134642541776429630957353084576324442878897978918270192747353683848439668656586101088251175563279328295519974675262430802175929389967208993456533041421893607936674054201822074089425808751277319457939426576514944562755530946849302906362818161097397950518497144665798043250116738864446432820200263948040990002710457169018042718456714516999675339456665398309803010260643849565484600996485939061008105773690755793303080326207608111661686953818730278375518352050614043188057881476908012699204382426999243491933696837977292162992192971015699024970358916911051646639159888633890820402088532731112714384115732867980927086816025339130862767837514386168217520682633882760522242210743336731861220991062207607881030971177485672033823489341734377498963688358577571150420832571329715660583089640715099036016678003697190140175844375916673012712922307915374188970084973036682482367025244355835458502635890533648010991564841222494939201433636491572649793491912064413744525595678997588766750216803630495525086243256300077612708166611921639311099740833039035397898835243223559372679717203577984959314424152181828573864152138275452903922550505025026434985486581836008404527102886581301063267303006856060142807256179727000593881767750432744393923077579676031430809862362737709827288015923375090857558192589939575072542949474943621626517238698311066783363159375943613469961322804581524977053922029934914708076990034815207962233032043025195741364254603000566030010390798805722206023767436650854146717344856616288970618461478809952873001921933712033597315504703104130122673863663045485342279155106258772880377217942874921851907189043093760644199278943322137448249510573292222495962780937911215658723071744469529963278876701800299589921097541781406557410818272909364232596867028831916149709761259706915382228539127811592268471170965346495588997507383772719082210065298385892601334613159610338691055841997090116420058886958976466555321251263616187523259350044765861931712241617431866598691176934735078473594481075135892344773264204406516837119291832321120208538731569950580131688564253805383292516471490350164840345897688873238675465142144711215202110126095362985211286814919991748086253050125730308262689819202871574826521463236704434034455724405849871403662387916478635520967918095170037537557436257469337320051516256803441999218206882886071380178047711773790292182427628900464403371989359327484975913408259265662935873519370272231481522895511798960974506573016935601563345140720759723258641153612707478729643381564053345479532638076814325528951221225375461996581866037517214818489358325393021198280839605867360137174427220100915264295504923878655281960282076670647352258112988353249393910124064072799906345834457671814924723046734532835437387717981533808033643094495617317764477600611937887154649677625315998220536522407936519485657988369034090570090805588037787704224254082114763820230189703849604701553401468305903106264713751747820652828147540144981876876913409625980453617408095970445158602743509125252140485153385561120345535606640293946782518755346351838818897743781335038178241939903162972390021368766754058720888970141408760493919557837603134463566541226471291031580565212325739761459417607231914602973074630691706607377354466594637172931167116666471969226277157730484964827453992454956351570449026629990892942479434039186588328054117460456400934937515049316347535740450175962815333785825452577787122380526478592860460595542450931151416439737402973283558156800155182962739365331779981583488452500740827500399033811524054178851507874316409083098940897766398482970319394253050004247628941557670192340268263643435539563257447647538835439847224277716151969113031699909106267084638650988513321976141047067262586884264954614684814527923568392553675484943268015740481667722902101077753721038776402594652122391114355729739430621658326643041170872677117156753632282993256630777596450363709675997927364279380818429128379519617445424294373734416216962918964888087221131422387129058715171017191169531126068435529759092600261483115044358464957530566900565549856903743942080348117670011872980136685350369808720399332827925024858202820855464357748300598296250961161424438232614991475031017244200502266073165119165091801649472142955010553265321651521499494141725094623227408597404829463277789662779201591354445077372043221116239191240670770221557148763136542999208417061011223201994303494140864718288421343883208107743220634296088979008175209292879359115468794701216327504544031072077700414507758865966598359147387448765445748740426514552668665872683074834727814759578819944511716078549973872905747782587557858350823746148141741233830720886849282401367918334099762299849965997782222034586876111296521286260823595261657077918857229591172636283430288248687001563490988484225934276540846192141549276388108700345336577515931909758980124725843726778717234649631952951508369067229313019966555119818499333924967748353098482605642347351711427584696629452133962829172714227867395454787569502424004355239789911622703851270493673673285806364573152222349649297834094860564733227913145213335162908308197558573361943036822673758293028174863349368922431197046922120576428641452505254312054662567707032242896602402290297289815696089438790480330907643303567609564492881113333698363089012152021086758466544051554062653545085600864033848546972155868236643347779554397327919654112253427912965818136746411224732839534140322091156143405203513048184524972972377636392669162090295511123871318593175950151590667405768724794062980338956218329597533343770769449093698174933839142774361190285161067675897321901219944248573642975887624457725299597658356602652066353929957712974062860721319117070352223443002968071647394408838360881878290248989219004059706680885701407744850954809149661368198395306051628002904325924329065318699604676769217819985381597691923504338268688762727049785470828206358141633398626655298487185822440929676643096532260301175132287075731329161156829292178490831262369594195747971045592652683019384294446872592363888330624811169985465005393454225148924649893987960527006001938557392805708566486437269263817203691219211077694789595133648168196370207086608484605494924516243985946025241253804214849571459485949615126285046260907243808535507215138897512193488938978112691284879218033029040089539872691680967136968372804169560291959922972622772002691136176640896083623009424711595160737098722053963777804546529920557393493324685705324516207904837872323128584323084439952449780776760503544173925316934511936120802815670938556131792015902500631477265784001151504438250250553340306434667017217725150761638130233526190696829183608397004552747595004893504334112289833674674557426348939944400327753775090881635214920732613956397996142758039219987829033204715504509830068388341588594889071789704849680281794761898251210508375576259715485260659159407106676606311876960277481692830578026211527260857888285498003168309939837385794941431174399968548786589362870188986055416013500733709594352344969174941232443711320293233314637843323369997151410527310894397402095181512641409283355045113104347275120867674931300242018200421002655310280941870801316963784553728702657261504914144677236306823797757680215474590988098910676083177771771061203856074442018439311959073378951552400652261678734746929676369702813196591881714911845099630659175834729072877084589017274224312229554364723353441675214226001864238628705854380452555174001001644906864444935380657519067385284345207995959461225003403603356479740681418064705542519913953986266436862736178491006082876932145740779102196358993197124262570673197687489440505225793468130923362124561264095045507906897841531728081383520666601190005988813529275775738629760910775244166689111475483674437947367603617661022320580612287739014685769977156750722435613758263727711302036539114105329945433450287951603665453934814728868686034134738611282743231579237910262683871131272806182599513337117203417766751258776994356410899533851197999588545326285069144844259210360882174341974891675811744155007577418984025425753286318894021700953528517068433403647731732040867776032241086865078276485700346610236765620380121617397621509343982318697812047742056542302293032422197797342323518091733441161333954399285975018931413993942808944602831063038513259630965179141923483280704549004262052515326620539441464916113967254124929249170484145292834468875311531414060209398949473448554471435466706649299605806642814766461279331541904383648494729927108929616377879206370290654461107091306602072615974112080462673624155680734973758908232996250008837755543304874405850457513099128255474907053889771530925513141189764534970484395884010093615157271071966901979492845276388904457197008162657474554693783093497230320408662846572243794049867200576537722101273429411610875363920791342409945439992577303573310030669019078888979952034740376523218633372696807046530479434039456256658971868675598990556255725874860558734738507913519031670161243554298047888057548168422491321873654793312935054721565896565864957726399260322747358225750091519461281303523652698285231010238364671950110640105112992506857205806853494821944442151195436846424210376153359867869160405880608778838812117687878480091650673646851382825846478229478912332602723834753105667896558221265397289497003898388282517741519604355869552196936283377119162691671871119165401035928686216285137527450918524608460984024883296976522457149459327957443527048221284644274594095090191429540946605514784307247166000545687135824132120878924271802477832912946194101335654151782157741567810657399284570500490383036637046567907067803674174798982732973631343006089319816810214010918880957694432906699323569075321618144671918639971553640748889824563800389270813888174111965781360828012255755697851392437296633106118132949493036696742467835487931479716299160734182527135297709890621983246356478418324749514996389708201251685658141861056084940621513295070914791515817357414717684513345743201644253310273345306204835500032539698205023364068586971652380775326693309672781858341191281753696508648061382231507731350680763529378425986480999307641770259572541288806487455183433196343458802711302966642200970521343784095240553347140679131304754456494980581266266941059785549937906732721757674486522134259109118386242966221688331967080883664561731458500265938617965449638253765880279738011680652577082014358394094365712142135885938735974586291257849330560582371714737124602544757438770037321853008919851503720277397973826768750656592461731015067293360920810108964774888452201827300602341437838402389992706645402052328371011941200770420119613304332865327974926225642672799592018085353528709105491528816988499407233136616742071683329322961647382379063686545162769999548164117292008430341808941070636525969774558779555959070858068124589911398944288163044756072411874352162261325298976659963396921020910314257602929441864500658381420842118740943364937116222213839167201425670149309584772337947357090541554035369888182059956568731310769121791874024366028171475103296227543739982825261893513209750387358940678731243021758545930420902729425324246118522949611752308543326461900505179851724648991246481321110240910749465054552367373164911554745806702048002082979746979695790118604736609070680611901128946757137335814429555208052753903684656412447500467312745320312493702537765648169946635453509177498794658307865635547135313992095991596774088974583183315419480187490527073282887949123351658462201846858075311262269693019266688443454408347640810201257537904715090788494017043447018113190911092141846141194322247199354312803904769553016475793380320906622375732349863164497228391614241661678792787494419402986155796135881672678139642838536470588656916905259034826547218522496056136173229130308827316063631967163922222269794760766017512739223318770596128391103198358256851116636913151594538846111846129770847831691666998706322780785285289214216845418563213249264747574370835116975733944929572760641303500647265696087149916172606494244203815450230584936317113728452179792752167997597726073766640358709381033027166254893219202371316683140331146654779245903495480748365696660117423991549475153564025640316623395976916819737305192303978304304917698353346177866725953436014612963815150073670989580803988445786462362281001592395759552082493241368284128728021189068097250389729765504896906334868858984208215515144966476184852853188610087533173698119140096089008544828825295970020604944336384187450972810884828856505756347347802236987232016017285787846817053437039795809534879526146467642263547582672968720970253277478597035437735695913853080972376968894683860074809946595432485733895477455292742587980466031442659174358497861940168313195577911545666496214780892741081311880922653068122289686853924475895982601863538302948192122040607387356564274302136078945630373230061810736982661648127093364694019719662570336490588005511230533107101136204882748330427328927132743075804766130171159902588365184976096359259806097510715348825970689909372175501391189321331876985074328124087063886021315245157250535112446070351197349254801642290057417412807583640909769858708590242923670790508927081656196464584063781121972968873039245896635497031445613095889858286774482925869557393324609393117694097127621209009048159199025654813800886089114949107181119303853422150159532113482776325281838586816778355764304589528497644336129227745007303541005239337540254691290585335856575779420883289346787838746803625462900980738505830407892514893588045525681461645002994402330774713359487567579286326641363196720047764426275630694662230938751152725338710443109148127988213487818191290882306854015854137763937807185708286655278997922600637653158304796712855284058129219579151919860217067979306446137289998084468828598914373766524868075563331956048773937009852236358790142850811850841957429143502812859444313205731680575645522427870375581922856627303285467830259975101173728898085625209516136846843072326979642607472344818803468056701772690354284123433375315967039090359391184474462464482206636094081399837444912843190614864186687538138354283973226491891767527877497048166515107625818932459451438102408017619657710207854949818983565497869282811968826526110364615654521332069118149761864626864246535922832726310487513908784252082772433414535572026208001258326996500321939720050025445657515133284888248150040291318927550888235705825820635839541002121912178336207049594168745825145230625170948149893479009897844035449457835376911721499502741980756609580592145228906924230762597682754955046837248073999383431249777198062715932372737169932445829903171418329252206925857150066812907182972619077051401804945722251610134394905358172333317233035718234161509351405280108455313379751858985805935739556235463587676879960097666968292342997411333430110938578064516838456288285026966685263158707190551735558524710596415758872067077108203392759574038138247163485412825744574571165018357399640292739725689700606118882013444147863944788841549500890051701508480824996284067253729543723110030335332035801779461630549044000362560837144430758191501359493165286270128831433741830068850761633885352543289963658689871062786323522830169867628954546131829908200456138664155794199076218852993465247042329763389120587399450967978603270975839783544089984427019635730198409550256742032356085245579726146598541176149153139121915406774635649260730679483127748557870042892275389302928505542858543044456363133004874863140690869416660333347679819786944462698158663458607302369428373331925321849102750486515034999309540585182204038485976799128740248174515895686661633584693380037091524893741798061869189491131783650095291088836164313469311084284794046851752542879792824306422125535117416266069627011338403966086707697251255030660291362183938457508887462250181495657922962494938851091698311868879031793779247058519978716545553843870086160555455349432704899331712352007348198404283270508911161766044768970415909392202569981447226833816937550001999699716514398863624850289135323769057876613678544159102995245721024863830754903268244857418474922648079789274606844164563127401136820860765494669685336847551260410426095588219471153462048961322764936446813656582719637477682441042529840895778725311277768749540202815223171363383413293547127736799082033074736086464871751139867796208102977429629947465340826832850160512700492374335086444944852978592895788390722232172100789985047594373717509103623022829153048810810917640588398392836807014265925219931020938742293762316422339380033048338389689162837005958040345189265690599039519056763205380295176070822694275023056779039917278231348616636785414168612257859895492624418717051444577740359942889196389776088528751915530182521197050936533094017655388591156687438636131153970266416837639440831908522029588091091912160220406066619351544156352457112170249633140663826677593041289677602665961333693209677100245012261999751552466248857065949308747138842353553231751802671330447044157478520723617498600468151780142240202241173470546476013219157153955581120482328462574471360951868201885235767983633605482571473753823699901967466616184614551004066594841282107726167415366388735021751999854548108948547480364969113063418121618716788347421973926161926918423076463711264658080239657063033998477771496554056621156175837430065254807114650674663839941508664644321213192765826778808226896026624690748747718853317547359842267791007388854674296694714850719170729701853374289351991041577559103985397710200420144404454304466777345832800481326310861117502496199117181095893650743737082439222877736142991637448331601212545684359807628657555760196935335132303072337129928333314459696886081080996540255781792542255794497985765073761262611948483641176568400617796390049035150149956453501782058915185580316882585490878671441584251324523132167203327789935487105676381193631631938096014100760099783057177054170728171613605846858019309386544153231299983655020568645807518802981171668937736097943544366870911357843681780011321273352943414912650443848979099920814025812570002511883700474901977209071172427973807105334363982072693707240985148439091728409129804051682132881351587988438113662640297954010257616635033059915453226728318783910313386670922706898607694978458876618447588415585024796602652532275300205132966705276497687390793802482169356504837777041961109319696153642416508238923429035887987173254258155283508571620303241155104373129967010814240254435188153535436022051904036759520109847558566765831917758704061523297996474277174332749798838821442717049091892824099190603239896795299606520040612201112535646177571368802502361115180451949968518959894946619793091111417299721295130120957002068218456177194569207679950816038003826403757858673115707048479456050920253097804330754606083967455681187022549617021166398689465033549048264953606613350249518342312331815400589930458735868226794824987271580254607259853485856731906096620487649009270735901874502468262995140669144459755791723934756050748287260422319904253233180959728871568044288453849484616239326777059377771744684815929379049238124069614901733011635166798729711564116770432154922493892097243929031992943330179839262040810829670977042933116199263429556118335282068475275534747124933699337702672072764009405885539802722149202498158233549710193984196524597724520251363114319331447922030324397429899664855817672386799101869549231097728471619024151997324556528105985611232272541707623286612557295866339952885268860138691261689906257412603406051384357215545784201196939420474727953463438897730975868406780430610654946239518745181658212651171486606704213664166795656981557826118768959297807494408044789523803891773746756116804976325843558653366103234979748274619536547148146106736809021786565822093019425861146655219277962345246359951066705985903415988933370314635903733853776191312910300133384362740877013280234478087369361726935135383398692440933579252859072052106895745556302216769272615985354449635298880307990086781567362729121537154134461500583952851711375124098559598558236870032702605223722390845519490256008761806860718622035360583092406930918520316441396015003240458105787278643622637792284382271629848203478260208160152689454268300532075405668630657707939097154389578758760294319786657278886976313584506701249711800482366784665002319454298969830912638494175927527486600070451858723794689514996791903956446454836274848206951732174540942255203696612989546625478671608575102845487208735692625705819295982392420356759564027976052278320948241890346734647795198329135389688238062850293135496162514180241900078034834012140241205353360499205887586133938201068441152760261762572473705403894279078993953560847125862152221447504016405969811846834769840019889221708159089653104225906613010999340640494648641380526291899580870103986790320432803245997237388974119284560237549370466253982427349319184974245202793746079321987370059375950644967420680132569579430310825999889631282782632897100308647516294314020056836430047973194755790055805557971100953897400040648491917614110801497657214795023954754554543418695470175418477438097429527112801549903819643061320306652730285622702909156679117211767587482447316844775781894528886447192041735052874139384702373299183638095815588287368422783691884982840236575308691454931274996470342795373078453969473262272810058290593286359523828511872015295549632449452935184072795665271633733409696627932117829163807428461267105892134579788362463448453350463266566560166315175285257406228253940446453807874404047239616746857453824092064235201176430858994047486314497883796434845153756170536662348939541235611785910516699301367020223229901284685209224007739155918999543866576773690606560307000443687677293697767061056819299473151908100812237912239573916098816209811360185813261268103026214621416749979422927153460635627629506280159492716030173419856804721623062481391182973195717125783705239859904836139449644887583909682790334837885319370577922940056016942570733554112035957733800143619368386396590195302735255912581328858983805508402463894040160432755489645806004700228232688197184039162173869793925400496692599095508101979648415521641957343163907937850430344410353877683718639019158617944637911602248521954418088897348862029992574753871965258202464776373312072358163054340273710671303629028314877522900940624680262454510241736191468473333544746217565863186217803382279581558866238539657187161883506578551400032080714180957861544352993619504276324256515880607480606079064266944079142601533740067246483132824284455991380897221678129503592521308007872513258091173489607801324477096659083537559055322941953578499418315788808102700180858148949992783146366661519307094146674876351783715347144076599279480004779374429698020882923774130545025447080327981287229443386278475273808113628886950522438791059805116462635750650956158015255593733780862652811386628055273215751464485478185364847044861145328846867783607456837021586942879886014052787874808305816555487620100476072282928864550100737599316122659369495179793383058723358171982967211539838275221791458731689639667187884027122594947822555104439150815885929427657435134359471592511056624155246224489827472626712324115933942340229910863097163833476521600472765764027458097372608640293197416834483924268305360042116675340765058148877819294504207808199015404436944711965767423685204514886642289014944495798245844728321567306888361857386789982789753960963275175725473175847625416237821435301375360362653574594309654723858974365376714312251310828646794347523830237318118482696274813383622789297411090349606394190027148489822074709480449392132426985729469277924681509773200565051327142653272459861017117981149319227013730534048124742107069174244775428020624238614907034814999616287094629680383891531363280777984907554704222068665059247375803575751780433742156337202409284644566516744855376408884053904192747319481555624725495778638377550888985070474725801194633333736582724314817443249816891679274793428144575716401787490605455271093944462459530592450684144542449913166841325511018901609192877972198588861447426638845788386405079961840267387216255844695344192100708377528619265657693214936573774758387402474558064042890263420186351261886961986004198002856383482549673316240584361949950543999877650006853110251187855159861225774940636109184900762811624053899868879365549799896141127067924185184324866488718282640950005241561003309212834885575104630462698131385292592808982032687233910220541056369872615149771054092587920172363872473170963562153853101853141673550219803847101170611924115973112304471863960446652396997310884733299177919409348169842669528658087507563168181104426086029988569921064412852607391616020003763210933282298511802600846310441803554277333826917776642069376326808872484188188691795683215898192232348991125721198038642275330292955174078425248891476468673221612774857613033183123386075284136995995951463402774472300419869129538297421438537160728596313396164039252183712966577017622123672572491227911923728118691618241922099141032457853430823266751434885744763928592227720841346241605741782329361371686734034612055913350744524919638910385150571367406117550401483481420715313017964082334081450131548495264213306132804794269218409925823111520979091299048439649130605139994498736082473314377188332753493268122996031099130289880961475413789930490838350957460487407298294786992667007877800944961965371118532913271557917768202414458887272419307435957666293235531845683802043338225614641483823489731817149746125440655023313750474963299414592103472373627273549094097055690334597654295986404952073360302938603073123964287448691369220195831441191104519503946474629585405882472558685818128023337674294908215243116268429696658244254636471958860516423978697548954101387628767156851839613676846580537659757223162280241718782207796018952503691483344108530104141760754725713010405390975311954532506239102862860777519333028913882384950091523850962103764514148712860876741325114495921796325984923743421753213592903319378935461072329084057131564868286002609163291479724762431222865169908191547732828077084381175476320361239533075636112802970855143838172083413272073535579363975962847833202200734636049279998123345365971246036843079518788345610235266318686985649801427153925331201403324932013611933292030539329279477539039003337109833451225844841280506887548104290842246139487828141944638190771079424634431625193982825406444950970931502681592997408282031200369851911316537272228133738971369012145561223496121001267160080960097380959439887035585312399221367678056451028756915962868955039194981258664352001993879600115687859639951745226407735412752220817064312757853486827758788880813776492830351921143845946657692143110447184739375560832434516978127720537564556866817744427183425548495151906816692804962472300157331898690109325832312804109082143806111221214135315945597841821919593505405419663858273297437851212151833097828269380770924851831832761088911429311073259582554802927783866741254742344782184604165063803975541324415775515011768362799234117895796477119245823689488437824399617506793436073223964776637585861163462070121976651527202159792417035129070136164446772069487921309158172186337654351385105179459145439854681009211688861496495199308838839946936310724257836416855511281146360520675406216395064775480035061006478690672350458386429435239607366839139697965376592513721599982608881648022527950814952769447733642764439550031045374615385236258203054461785074048013858480243730636609757466654952819852978039242884679520514126117293548482501442621025389610003673990840639622762338742738002632070290200745532303049660993076253709632101696527227697125741945254785471582084872661037032977532839890363150794792581556134281945615963164898840282107283426645928108591964871825708573248950630230164914575366212822447525873838623852499480312579428327761252403888175287284116432005473579118103747730772342057578933657913803303292657459647392908456534126700145582373597052171494376848726115431055406124504404932079984401225676696049772738657891871934581768426537342117261886546527478891714896182145440668516229856762268512504968573028760884074231585023032388242893622273094152295388785225577781910707904136857846562108152777403602111876322061934469966823714961649604025617516609322586162916393972445437352476357197774795775456176124818939721661943486523610808231357305607631277050414683733873558468637742334549976785754675075183854419947246520709050597816719800598642911266282688605857997681873838350913824845692993975645302718648496145280584737914995991590725787015295804963698094122179003949466239605252275484143865099329406886748541261585999404752651761515489762304839251331606259161384541608124896601568792885341721511059717821624099710203033278193493519424107802857929849045548243526146934619569694566465137101949775922075493218750704893290181474575404072191503391447817334842886843715784927057685679598538298861418402526142639636852517586860330183888362782803179952228610777710960681386746982095404507446274742277285643540847185071031682867810398806426969005701500257931323124756421853813766383503660869041954849036418634984319854234153685145109044791949132480523743841091491389320977379946302047931094476755838079167458179021907791596871025205634211372300299422249763012493978075323004179497534813360889054910138490150131190562743074351459594714879576714999454412259164692846268106429650485822369810237888734154805433802380287590525560089105034792615533681430925957778334513022507383029288367732018001096702950808144522510887472191875332984544799550040459556374799324067759445243641942900684051026641401967190615757168594941171465136302085906181716369602703461492295655034516678616478920158680220899755319992698454996359867316221694604157278320478965794783758431145748793980415810974516178429272028738529932168299054509605779269184428762892490676607285091928243560447529127099642558306731401780322110462354767757994752046913527496080535284682311644820747355235564945621249561373756903079003050463914079864829186123976239420113218147314097191495305181100805573435098510520535924531280092979133794681963835595452637069773347324537015705991684972470910985020386402610768637120864742866345154521384207783540572431836614706833080640167990361287088953014601131709694931307923466592876898670052744907919342439748129474104862791300381591687816662681876538496025338931397725396424564768820488335840910608600296370707927260948503749874447376684283259275829258667272530393622966757912803409698433785506924734428487987497898955673993922314868481558764844359628720792981237120597418387101867988150764934613893392664225250526374793933851005723056593584419720893005904275492134697199570099645256321163340972377303327480955786498358365468041451720426391835697067481367391384145974678171266450749871219804885791916802800707712921184611876038086089563535388757092233354652897724050117595001952922540145951531860497561708727120854663775804775132159027102720061874571545585138846581637131289069429978393468732650664463325927741928535829912312332310438586976163825269640169736395152951093659449898475403080789474070982888843555401600228127429324220184515709022655336662769094810347983304908508736271461951056641124744255569749131491673353644805894591725908140228760225145312502391958909991932101105341146732349089168904994677645427574514357788768759241062076410065337855078710059988155484770515123559672983884846230056963398194172992016324934442905942178044204635578474059554807491529586766529299906570265052324503446705833380414682041591693924095351994829843032908113081715581609408449775743699621396699152291699019143037666674912521883922753489328772231167965757335534835664439693979019873601191942943652417798188036323296545256796443111763225135997649203620488983510896243097123248042942489110244327606231066211367544819017631319806867338273119179344804685093642460622948651072046300282670264372120630863741791058176432007418958768804175759864610766848001465108427711757953228268899057472659849077064261716917112177305954664129429212387349929118463539845550556895300334863642921238968590844846133549743105548945333009217165397219147759912429570941434721359021612298009801338786104516554582897093111582585717456421975826224789693473915134829505744589447568317480433943881959372957292790131761018052081682691447228276842589138385410753349697163069925121492697138160691892297539188463554167742339213756794333413019635647912281134436933600257441821147393087599855275954981105984389391383346321296574177364463408374503544608092087365871137031351821066398092345481223445785173135006975299321820541768747443507472969068379708402012772145697462118392176382390161599054256556815347168304156721603580434191311184016929796541749818936818369829128213125087686565944991003251005518253312279146520478820546387697718889180806712179657520405248782056740128640608573598481590669833475107581171753584321518664084456358079550365042203253206456612308986011777837570418040105378392866443708062169303642989111498839916029380517031351773170099804692791229996150263230262667533362164820093290229659306580261820173869681663947119128695886997181824067247358030167600668584751910816353333169101291200392542747957835282410575071855213205023240953062482901683273446951850694737351542651027620854925070987605849385134745103130931184969013819709161114600693839193394197124567272420277816412581088512161983278109874176158870326853703629107756114800793008464764425820629489420576714621310475560136001668882382204173767621675055848884991622613621942099763355103416324479822947988541823984486176658451379576876469747664442460139776392957124794681040641349916009714049275668607319022989124417959793741259222693090068557030984579580698187740023048862771951643915696288151275225921992928803749560861899121604864859297535629370811877317363217739512387075945509585868633076373039098222723979311312335055468490400891250977963822235774334550492065489250480125156052705382026141547953262528342612146053729751606243644378164579434981340682176728520694806451331140022153162200251107209487535108135149710058062692625940716638612625309980084174245121781843654096891188852976642534680650969078396829989864212833494347779469429615566445649985083124879876680943644443182533483510942926830861181056323507141267830102586755660864401283090850725013106874315542687689703251881191501253387050458199508985250493721760352068312479288401576827506784008051034386357135528420256066869305156428160866839219075477172032823931438442699269640462193954099324847196020215342679799953100578534289401068072361446547282082721254888461765751105514933401131595469447358829669280837068716367130716498747763007244332586746011974638480619825252410899192436056456517649178139363740048399979443466895938002323725627790633398559334935142135417317323520736713474876306349383682433614746774700254440899231427661422981603299819883490306750438609051780917596205119214180646558677771800083237175868648883910799077638774945124180792728277841929742179948458842784218545325479279730998279049146829533632602621588377378237392974022483166788105170405241690580549959898943089060186648355202811070423693928398973984535390753982903150097350670601624547902810755151840825800215620769046403066555162659704914793770798595216343812950135304363576348435950361130820986868006650953042236096987270673188898255141798742458073690979712926163201823016459110945130364882976237705128261745934739327308136522524242046861899683189145635950276518479095521079629958607651036881781380547593495202331196731244441199671519371000037519554260419092586097613967024793344542418492392211339539650320677927240122942931641369701744117065912092912271689353110264943198698128370944928850704038102830537182901082786583728082551176478911274780907663162222469878935290116784406988788072168144073042024112943531027127128991737314159163281618040921097970095931452327364933968379620280854688157130996268703190506169596052647672576134695260878798917311861457230302666881724680859251820766564978044125106491338450711943580147991527256968053338461196635872720244037083294711163346188286593114558534975500599869776434483186538987140232951051141838323750454493922301987604469851668801771593754702714867651472254333724888322223181689052575887453574592152316905742021101463077192563433928650285592141520045696581444671949521583484296953849282017284411728550149819299160534172347187643020726664055203971101656537293799602675438544010146870690943605066042755190916201223038685472328508055842901552030005322770914363711194001320390937431545000209478910041696881056134983143199232724407799836877940611259955463103921994778214908999341796457667180122728662026084673584251454831613270872095104317866204697038454063649108064676838703222306535826479241023623276799145495804135842082402846492354024169984125590154183677965505101958075688595025044423705910098204718638880628005970088984880440522551653340183582497004887313513439668784191259550666955169447619738786532351795475559864732376884295740303570840290805278311368913785181166590764292902806653846096566387015568219494429609386233688621071577792505716489215438655051540380843873072664149577744205225953235777168383151070594190035072846058197985807541569846733767700482760530299669191360032849201632633533230334966189770066471163300348155575814740510295464207295652204866071648687907544981079975124421388808278142140430505114573892548839971421315918339546486804066208636836861542674675934219991628175846233024386216496155389385731391201248524310712359938973484677112203152766569623849492250989899206239002242045273374838010833397804757406242435784240862475152364220598262286857269397174288135999002700413914364928955745325025417473714608255997070530135700197150598138652481824191767676473413347636869058414945017314491593372586737278045700894397960620830994761246993787274858041180299821120039264438717027939206166571811827860259446815830493412413646744678407279338039114756445518189761272994321064266312617094966491662624913503701851292944714773925721775480181972430934403150641804547968852475905301428093645791220337588505651419606521843439782090113814498467236487024413025051315905244551644908975190360675162320898347052202838244216684197850782526911276168679656467220947104666688258555128658664299450371315189445780437221368263330994084789393612323516726298469989628530754687119439173342942999957632249037746077651657842364563718292946047179015188936587543523422551490212342152973415057883870478042772483915695210349800941256553184561382818546648192287948700647642016948672996336821934765606771216167542684752010374380932456767646381825046392976863350128029292546595288563789090941049372153867679602197449891250032190593175728121298356462675285736308551207198570524821290348310122322866631854546722946726596953418205020365379760052114631311780236702580825664659470474117180745062805568001382971758353342314985033256497929740328917895750051925661376902805930134156726160703589702765353858552123190501421239701021618436483211622272087163846498014493736777667155147196479292889570571494412320810830645565190939295841986450652528107697616928079761249618639197091803090626659302050250854982081280000196346543729641820641338317079906589597734335902716525356006093295750858874286929981608180164686050034823303178444925147861320722868258446710685533140702701034228415052257038955594635825656443080511899540545639612034980428746334588499767087986251851470785128148957028701578587066467366950001340702464385520252569262997551792897920807568447545793532004303787587980349435049667013241856846282321607352345309838392627789095391100215875604021923085034449767392407833390753179863777599361293884132049801022384897982011855436990941879135523260421097844768269022309435752522706697543746566277736921564581370821945149772061640029475948016912830926385663589658100691952601795810145101983370992209297698625615984099485453752954387189141257273878425587073500454945776821364984352415423144651124474525410950529809649268510574281024446926652631673067996417660614548452209426303646437768181024673041152202449409095137034892357482881462256656526688851868375296835405960191964267471957253190158897496801803218136376361638223171519770074584912989229270683206758137463609146791276242100792718641257057220768714097909320082428002014852799682979088343967007803194591425382847863371141672173533720344530074853692999430360877837494225151464060011980663977546542189802219113372544839098060125924810559992039935957250734538259952404109190192125694227825246286470752813440706352422892183727570511421248938881224417997744040288732170790888431746932783840628375193813724674883231791509046981396127427444650742866761075406964109841719910442392784870802592036937792184690577953140845896002536701909679007452808249638791950648881850207471277788267649948066581513658983250449459579668566665662502320759573373515165467325652996814552034427319048957112568190103540343407711871303223938214476334982385500187345889350300873632396993149875863870097029961428104777359507673034294137671495391287724386026761171906892985012260167407011408217919447883730361206981422881168895837898958106655717968591239295942470221501436826417142375687886388834919112242396855645313324321775207596495539526025750829062606972865917331299569653254607373744616947242275205282137866200942815788777175794462394115129114718856906870529009041411358167912628090772828430339214586576410614560502470500152809772862661300434084647613093226640934992116223803759735650693286781456205258748469446094531414931451391030039361045276960163082437165344039321296246998929048621074576032991583789363329952229026262985657273706804797667360114516647764368087271885531631351757686631653911245440974786330429273670521331624460424868355927713888144173602578222129947731716802320277352022172851498548177578847307060525346040011116826884054757103055580620920208839435364105217156588592131649604498963801397382422817067613255377893090189906836095004047451526405339747619062764455237785566956681810049568426301523988376122393106323615301183304855632620426045958376466154779958395366224741714217690134800643706436226144983391407698225209470229723176867769335911885591508089154056388976804624505625359407110558614935383837496440081346652783958990162043382150834004433637694099150467227671445322882621839449738483365306431280165098474548609500273522086948156599637987076619633232756592791383201364921313822204567822804914372802791884730576056564941118401817832131125659644075039602801250812031193608000684298023875876172341494524746253287436814825203656197857049084369016779200746743785337306183197632946587444469904902814368702792133201037546101836658616871796408577399440209484124449804705786112455776961183554008730983124093357013611548323791652707885260332477530789354160224149482664670483059326394261408585963725025774361607592276104457624033387773532164004392988123797388020926906488775347601711558959311402470435302959929514078370233512876813745083318187708526606652272754176084999004409044312289079046194164186405225626916829629166801779963563476793814002831085245536794790556272267642475353358906712094000248373121415368810730861839323309610372330138417715694635770506530770284195768634628035601718936555014902063969875579939457356483902601316841913332444301117417970687221468164365863352170543370540557839123730727461665663150201023208593697307983903398111426457810402024898220528823323425196817940055305854283978365271558069136001132489909626299172930235771079589316067375775708252138494607377182910393665482247677845872094977489334290781182067791036209155093816787751070723543543545755535869240877850403135294496174688531513917349903984815364187347441547747459179638750636170862887738753224575432476833853698811885175302970435564741646571270757474596750580139482427284655856396999426393588409951336201687566289256828478928794822367338330640159986495156612259524556721557605433222620796389120544606189159065060847783605896417967485757585935866375747327067592211806273475492462719864141609802150910375642862583374977279596304298661645686153074122231173428943271693055666555621083485820691584790735188792551130334408359146608103935432212935174665847367929002803555220198615252582263230263814256498932464454925141982044202051755757977733388345441891241598049696449026011039885091873731327479015325875991592408714209126602822686008919512694485993949629429366247340510329722236191257580355129065650906896492857779615490477471137639227287212103444185083870627883505829444181040082610116807882859886717181106963524291134795243142381676920364483068214065269540905651393388035895172797620204015961360815117276208960429324273741965503037729375156953198564626246531827316144261536904965446474020585373120124853174698494730060103156662842320265198540277862478782286715916015413218780535626124542788751396446163415925332489254141723035615234784998370255747252771820342193906257749979078693028189446827787802552366404639375027702674435779182747404305965651001196941207241014961877891918589745639844385609919781826935100663702745379106632564444839937066362932198750946022754004517052666747616265821969588502467719657008935290082885629298313624210031712164047323013567491914011349771920823321833734154223421685560583185316663678487411714069013915582959993709460654398677422942328316196178262301237752185175146610250707878349443161371417510720224841233604353718732697317631892742432209813543566549083666834083312325414759486348026361588608175960214025618556323128705629391762322054551478039917685264640245539983225846182916874864941685700359425539188512010403252582412265585177199717038368557229489348600867551869649271623846649737208008443402974630530616766165501271242782143168794157285457555087100456561491610193050195750253700624939798990977002564431678980697081126291032105381521592626526223491343043896328087389015075465910940137269956573619562101386602172068556523787467584520610396776862373526981062666476654062070502439285770581491885453151953932798100507265696362602081049998720201658930924003582595943979281781750645369594109884399667174736824579631493788008337494974103140651796362444001136107659170932234611062995918349953793007976884448719667972666174207165668257635993920385427661828497775554217916267835065367540753908770952371449464167264021801208409552076931813719112900035852955971317298636179641165560641743748501809738819195510858567794816162876620205159129256528069264698595157663679648423802036651769271520134759390251091917967237482959223249433745919045431782858402898720094419768609488419931116180699961985925110136661705795591029908441671888248751046296042873078135621189322696063657092929250190545579979300578705937940076154680049525319074539358176379987991263807375460285749583868123681251086680874262378642735334914657752137611624990590233019838859659516775305966261964799135380243145198592675452965095794257780905776873554780433068717098216060881803625755122715317038280750042396517316707865763454006520967198095631840137298604373041167980555020994806043835571797093055827506832088817949551172420360120128802529385826278357194054871929257949526197155198479522953536056390232962954047751445150224260285293436745466342998559154026670421916902602883710469293905258462131808457869372393720064251458079731745289850625052170551646641141157469178930939209666525675837835848607680983243844187697104797425417976962087555600933064900418686717885789089871261159135249020723088777721914054298665530164968134543712660156215272615156232498953501025454274844747111738244284356470175709929514940021984927921441525018651665258891940671973522791290802652203623960053493392278788162827365430473066280264833674491207511296058067081752632611964481063922481495536582839765304527148746129612789836801759584393839670959163852509896096523336211108010127537114196807532759717665637879843995949670778806753217802091081820215740901842300727248052966604137221194269578265300240111098767190630618692772237358334096264360802263352465744353226215277641449859253811028351314996308474661623901017065532772437622907578353555166379904920162073455657446036460715217740042390022252777553823720413703566756680631407111465432023311318938951769677372126114679195866909051472467998185462090673936173507659687490635584635937602343933531231198989414067979139014380192016791049742946362954915976128054811028183807321042402917621328408175848154480371697991640537670072152607996513628156904238807114104643973511535172809115088439118467757379492948298064455808033431121567207439138911583253107976298270075325531815405081799197643212593533450289314309853448200657122237068358561746271987245771046270687318493144256773048000775225482682422836683197492737793189281020821924687559634594967964942971908201780496193978089465394439982598192936187490155439304806819991621148068426056867390912493011974863903134559902707808761107700565981521311488185283890022980171229164280513978444898207059530516820029013264913973065531458853802939185311139498645057858471662613515133075457242825971479133347733572071084681221389346943991289257162720142678666778072873938575568675239325372691913312077236285581652449314493734083972228214697129498336094999957501874959757257873992463400681969239897099854136741327437028838794133983342508065831255079683715638440104034145692436948018510924192408521452842871842092370385119688274977964332536243561336227690545104919186394087308456950120053563460466433679447875744620380868204417286655989809570278200690601292750694143936579631419153443948294695976368297257615134294808757420048338439808552847301582042344486548565109369166262605325442428420832203853418812756396712018025484342651277326093741293525475533057767663536790460087550567694054602457691678257021743419806110754371553697054240048499148766705333943510997856195867246958671387780999718842680236863885242892013794818215436071937355735436060905062140890298082450463178807334117764362200279188285703358067301533039497075794100347821542675971960815067572441682408254778195147987333113016577112170133096836421833037449028201409428292877411597216717241809823131307296063408882092450093988972299616107843362794454740313189869086405721785586180840340599560052202823250560004765880122478338390823128403016899102471726468820121723192392088597820149152835799339020896549448144876863408499079178994478003400467348557373158314742272063396378934659478446508253319178740345675140257760875929024331758503979964937010493201766750519048316476982121368895201915481423660967789790485419818822361079071697251230747734117763969214993042884426180866761453275843333523918557208764761362938986992149858156358326422765340670538718063210322319745823923434945749158514286616496280029108953295250165207177695411342853659032163722864672705853311437280542841360890084289353738658566808131856042557634368358777225263912831289802541832625426281379665568266718378504903024347750667070163937474210787993882579663616820833272051204450504050741181130930273514032240239620333197433345062693245607082105915234938713505965282668260748788208370586833653187836741837972859418730569406208721611909938115812115548485710703788159651676528286789108173702939504222228917868000473695641544568687087661773595285809069557215048082910656250197862705029915179426024697429134054455934552709341015877195749164008068239405147958174716620101346836501258322454575047342936026563396216264272498949161214504637978602815590403150163608741827484052428627473987918226254973369747544505051234914292058125951951658505600275766214138895921165908267104824446483463940985612353250894424910234033979731682426903612033563116430212097102498366141035827028970051617623333906050255292782068360169235866009228752612687522922555736742026909946569039281177621320812800198041774772685770151924498749494707106759270804839102565864223631377959867306528588004209936674420297604213169047711431906330187887614930858806559397095247236868210926800129846087073927001046640117072011256670676929512814397544668727089188693915064024207591718212020928329428644927753972403706447989378740409210255827181023680806357421849380727818792345821168939334924151645496162251504125718061639977946185767662486172940182278134671358398609755612808638527005329689048929738198960235184048417129613888207105644638373239726054977604381190024863679802286784502742790811526008005393180813556540707639364016522307790204312439301963037660581333646176411517323293178209369075390480254122235876792317219626451326045062119068167766242677475066285381963930327944389317809976027365463114463694059185928372755722109316134501134968594458205728880253900845882025030872112169932133003159896523333594294222529386204883539239635381271629052541186175704889242391055245022893826692986844364934481538506305471294259373091020065043104024576618566692054382236526948791919797091728184129049709060804887930531750127764415109490934889160508031320713117154405932421241816374112642402308171764624854670000158464298446701263441175963802708839475887473447733597787414097710228361895163874230007263134850260186327886121157643872484087437769579725005858646381772275950597330616120958986342796523907241795083615615699230377954894241466559496146894352612827346108143179678874169314269224309851795713791544735778551934922504252653696446579617814286625507408012499933482021522877569832218091900198760253483902440709777268896932882485626788792264748399724338380442046752794697270523241469707224467616221015699921437889691774795110961630757120757200904878611632306990961926957596755646243198660053799273707865613284630682506385708499321578032149051537998979324728769037937816809729181198906567965893432308783946325064035190109368738040005439905703352791126127392737499720884334955565638784827432436142143777966146359112642997620069632683977828081058688267666617063181766409177089474290873181359414665140073435990948200963298061888358368257827646596805893383169330901715376022621336793119914677464424043572091262097486697618647230884747767674627641201235632429367873963354936226733030679864413291187444206494257388375675820648664377638551368394327698007617316180329742746579519370983677551196517003545931626365026069958788471203048317283805709296411274058937801547921846699428627609842369506514831655923775449891826361182408413989451093174911282140823332964122046732193017321733620977106522966797119716077755524424718537613796423355707621547379757089160412291483543260348519371231094825303724545357496213650640834205174953297753493748002957505135485164153588672214457860920938123028132753593022136766204488391265207291440501623773414228952660829926164266062659586757031108924891879029750929384834030967494493926996811256577182428045134286728954069608706572006371076717882291430404537574951975802297259849132663051639266819730817914482272051245477094145157100735763800850099479725780433237375525699110033834079141108684132632812067296772919409136723843980041409358101853044962150428935587025324440606316846019503642693393888217328544542466524608747372347858131975877402945750838955471136387789249310227994289559731399924915418975237941283687223569062041480274018562721572533477777881404291641561653719127673108206398468746039523988224423498081155084083325346660440337562940544619512160197189321861826604218878031403836280921101049193750168124549255288717877206188412404538134576410257279806428660931897506778668490788669723002333200164114963695836788484684266644452313735528183245422937530983079008967178213751404612252011160448175167359160678798490407946238636023653294297960831412246677702926359086599744680038282795566483808274075526532187471168231836852174079250491668312124311840668206176074961480618352042122084245250063750809742610451107360027950940679770561785429641912293108658429725377636646241536292381900657447620563184365588802250973285701570902981645263550574472609190692963607470703465447374084800466104459068891935473297501411715583140780447503267245610308922387452852602462813324529521587663619634452284831178952281880311954812856485487231105213694835305559982630040466684021383771536784966156725976842729109457635294125445911042460242838363577129968451237193086630725451297069741561471415008560063527043616874024611985213560091048715263184368789121229145560928038230014686493952131888414230729802745572040574655731593786973421832078092605238450247108799588130187332176619220707957981730497923339019339902417199068562647385495603346939334258118769502470030848125728303521580253704203133921744484801354953619532596658008816057171791569741293601115418849476770769449067727841307184168993806819348627243723789518051285976106959645526905832231985821184512097596249439411074752249515631894967132257598068868546576659348155421158761197245215162747584466159091933819846611140000978892565711956984378310688436408948188686286731438884511769143745301114920257006144651660513408012892622576992301761007221071115162475516005976372473198806007219435944055782141216398747913753039667686346670485124854460767920733132718391910317847002639771427810304474407931122509404885693507264396527079617978832214361306924903947319826956172754521486930139750851467961529475922787218125915954779480082450541489812924732546515966567914671644357443867580556161730802879745138981729944366569546859151390808048121029884741018464904227317177939341399957842844248411204448912783511527079417762492405318394169112337532428955879609277847193990213183236887585019712309562412737262225128169571249048329095790158649774226689815388527504394227604778673898493758190891719303855414994256554585958023252953753023050262886284920162138709084416951396172453225053678387606376289449682835016106054181766943038101056935162620630308267083637231340483569728935076765404517590583439799116699029576389263924519951946134738161993262993096248065255965630260357895406820034888837063393457115011902603105131974811580189479396115434780665778856704275211786758803859749110674218474006884945637293083564422211449087506130566012702335029427768921965990392123782036014263356937619436868292367751186233755581271699444269956284410576999750302223249389510953285746697687551977873954490610811596763130933185135397247738499051518917290139746517762151549375823332161336983600891595096294529544395471240515684962692939895460947016812305439557738155990190152372244636677559538986405268979415802333015803061116982640631376309362891879934611356738912603497439926473772525135847337752373287038625815874572400178263655757747194522992109658917361827882947803720804577699060753954136924702257851693802517539454489305363376882646787436303233973662028042895595556342671888802966115077764398322319658872281524741859970306546798451004198357298387060066416579457395761534544549898958998595739206532303392869827059677407384445200453208403765233737955490095440088455306612249438736941547688385742934872260159147444055226168610970639635960560177936591081202779788750565095116653428630630554685060631016685053364240061683831792016795164422106707318711970726571902526717301235453832370605720488751016953678270097990172842636717964571769803475206691488328862880182942571181882972591086318214960714129373851385125259073714839741344335756759956247912791171842495719526901317414253182057591434018172276827934856859346178050333947420628044566187144773421330753788106565141183235950385459067913565645675923329080713350510128647322368058856031628832534993398866535864369331762968922315895904115274653935729303084134575633651800467729416143375170832878273748492833010779273230496762670930133917685886809316159039933217192640466230254597345467128525979139483511936631879715388857556378253810640916437231419567409992926671122538689057523016389830727660117156701810130704865970186695181998725988028585391277543743301601421387258856937221933132188845568386841934139207516485485947425012805525705554557403022772087280542850897337068147942044156919082178657757942668648102798821604065227659996961313373696640439507134971680935740025854863232373384470927058849199907049897851473435571750058765826185278430542722607350640550745968967918746753670412005001814008842464583329532358599929231499968961163057144607402202533696267051378851794503665898265261315125690112560203799757785591847910079070208031111443542827656116102199033317471847582103353420882116436512157761838983947684725987401453644584667491813740997118779571155781192243570419072586636229549693504251346461210224114349965645108002700689232040112340657283549325635300228616501106412572663021694959644763402906892340022606474063439432722099073482034398159555194540472284508385663291575516195999539815233664943501104897723828339619633993585884828583626661119640387305930970358343144276191240941488974487455642264115948027883190475038342626346936707140274188294570746022252725722532398250175700616950070001846950045200559036089039107939999676926244603391630666658632617324027874362777875021006030173764834247844847156953683655312186250157780003628653127678650498277800172527293153610202856470266511331514414572504612222354735406505303145576200295923529228072027383287732278973463245067045156622538863304605497054519719383210411734345035506848867677123515940806158247907597563229841546624776523382091825920946408765116038389597873439597014453049743438270712369451057142067000075193881287353286763420875848027160982441370531080379066812701219528176038077927993058183816967141678175160777577244882978525058123097973723008698663634348219086190284375373203290440852433207150612764030275558517823765769574679150799760928871640320177065824764621557566099785866789756755924296052209034373359403648908924698952195836213393828614853893017263076073110978440993052174680947023929222058540200945810616632528821297637054029466436286007763531140682726379373969704992382950561782604559643881238411846828856956682542150191070599501617071102424213190425446255516400589782168210954822920019028027948349827825133144197698989075843952996553170698760237298421626345945789547450714323480586367155999713722072019263411589996999146631555402603247453084736524946395094938820996548457024663139600300024974865836531575446082967377629505253696093818389036148777933954770096352714899385452919225158043962156867516815679118070355945881893902436481549020598702553327504142809936138251012062852097650911646559101319478168566935660683402176773861793868661194755126490217040092948639449582746766250058692107548869648260779312299803595926199410613419074085770022357221379984410429747715221170364441330371770583645282340627523119753557371148371838206705628371164932732640741066492291532677520055782964441149716982550142350063511894074647212436248685451355142709308584989659809623760575264334876936924320756972533382503197514768692380780944040891544943353557769984162261780170366313099771714425017105306366534145024426489569609870664096857692844718342944238125492814243151496871746785607698639597706759925618185637179425241588171927755873404118383202103490235211979764010232718947332390152358215878768382045820747517797101862392989534630922052806757794049566822405173414978873179751688926719287700795224598514509743235434455700552922604486013403938669506032193983316732002393395411551521966175585661644022619931740556221248730519754974451145323750723864322999818954389714119570633356389458682607448151088119259092277411874674109357478106038880126820127057149483545453208360514627754186546081898775543221958937453026528605323857628590148490014689523267093867005276801128828641152412336136634905617673258058202147510441462052502331195404688948599815959873306891941241581659569109660098227797135430261658680295501155146792483383826050759019654565486126096384952865785412886117862437929685863535155385098112476480692953106205023052074139877733162070791019621214885014163368778203200349763686891886673352644583073468037312182847643403911031441656932739040960968597538104332768899656410041003297292789332820208466322025844565016021249694273788097357681771337691361529787300684639692921006266664464015738654568990657272772115327282155178906971102636402841101601383021424248175748302162620478594252744204100274859329693999574891076260717107120213275374873582476021870619007131714041634386565540621896363299568265369005397729070692457161024460208732407888810423011985131938683473512180436495780107655774330526713071386841675904061968318555687761825422934737488858524260927737687821126531456552557439658487071429578378848300970456154082523623848654476150738034429116796139680444301623205614838337292170595462469100283070493864920935021906161608421845893538069308598334908885029691468608168680082450191002816263540129229886788813947555026135954351126274327919243575521322984885685829737704093970233797617885735754559971930349332564340570907540238473021402718518210602028941559221893887277428149327072131320654062427319961782004292012369105108309795948159567021297031697363286722211690373953928832581857250518342185780766834850858515342397140662410142813675513520244279532453649605902944004330302948333655918225692759001781307780048225713996890668624517677200351323351738366603363566914997910047577523787499647383618250042084293078645215817144119937728149747833531431899041413405199929171100939969409852923814051914343891756912126949414998215554949363681792651401139397107400234616105398954292382990249589585918811469880318614741902941055419923258022941229849333420535416876951798027776531941314264818669738634328929074488264688772634225962830222345718155893209065602054592060139029007168186817039070790383558147303636149772710452054337218755801854041595607561815732941687081448968295548713421083126064957187520387382490612810126713799949509158196050366889425925343957215970147011893463230826954521511363690808398095410485657735788773178979892635008328532927514395504818808689686451396131974189072209329999536421322023211004340234473552783923338355727446531765501070612080403530352205093101517276076739604693519905882461768426893674674866979679045125388783957623787424249179595744365764499384703929371522562976161690780016776451467440389133625219161151301098614444313659300082839964334159780526940885075622991153822262284468585111360560447421552252318148110624732782627378585559241098626091042182521507394796655994255754194518672396886530192604940923755277664220255102428979217465414832522478523024489987096377755957365396135191808764764346562345749706179991613675310603412051077490902197593368995607589010042525051652788759522888028421538057575469752935516616085861456167118954741947168320700442880510750516255041230841901274709463724250983112551249476375968989881048543456509979660716556267622808764919266843012355767102708074781123467402511801925465218772852364158486430798348577373646646188332634262427096577695006829602387209233706350138906076697055835493155038454445572538571381049343864418567852018930736491190138958242882458059619908523718666201430979407529358884090023735687336497702155375774042571523317187085948097920620628037895485691691549406320426337875772998628838332650895751096629581017126623396105789944264172787179360251076391936071890440161119686018223518430962082318877653897051245225315492703260419974380538461710193641637559839125838129939703115337958403854951479979062176195836950289793314581264655052324331321905603210978534805663372536816396302642536204742763218196490229911437340167669928117299267465955225702226754916263817583167782632201265389229513631659990412132413077766321009796405013739035441310004456940757263250590107183417289835872756146843640957705969762960607029683832668992968276489885053350578342951421971915640491814309024414408650093424946702003054395072734837717381100960134007914642961007581170381533175643520000502458453035748955891465164418684971776127574775925533711379283422980107786739234977535338261994580439180365757631127535707776573197951386218238529189242379813292850309167973145348680984804653527680407543870558342663486551948259494407573234593990373755480408609730056374685821385385746204111272241063856372674452058534424697471926920278597020985973095535131277278274061696222864016500892448335108719971537546798989822187249276763695979867800798361578538243852760415316956192078554255860592054257933329607532718152197388501809661677668247173568794096899972514093628961053556553835166767387641095043637537447145251847129882638567969642194464256375658715916128907541910388659833795565882337618129588351093905349060216779020746004560628613703563002994981298048161401830910220384964147415523574181880951692412835045796428420989963224697377419921695373109630982607738797785666386719241908035814690428575088428016474886823495608512605857288884652652997296605508045902790110306632547957391448706592887835789059448024345992805601817471848275523952592655426347447519864246463160769050310393355203296953139778190003129310087987842062844202442242385359316995327293194625608204163462281149339450998408096658532008902059183622701971952705267946259304600969605026867114186169884896469636804996742139567252460496823118419616118757361285882463104688921785300737476498315540221280574021731049502275763511003953682263564981914387363079503140243219425912222772558778602965504321656829679025728918331306535198623936096533910525345671468222268308523806406740694341716117494783356205669047693399306907184192496734248224048502282256613654164846643030911755327696828483561354993413051452214308472521677916689035896905102375164398111025910794071803128817658337292571189358341225987348209866630113474112598850952024595435084097685887999682869731266289419300007989657914321789035649250739916646106139730988799283499559037297566867254087794237824159233994800529028939615189545784815537775073209356377192823388077084406272665899662281388277149286382498322759900218526803828981735074587493546335150541563109657484093669625407164328024313102157661436829216625401075327820066380691376138005599720693117882962404756758917630734411063032898640575213419999316990739898662162029442857278544816435912105890114889549695147221643841656253236500364062096889123694998379870367898776946971529992363530224583943900432544902482747080549042660229106963526105291671866714399199141558429431721449540284280277895813851650138753396365141003984457852708150040399670510878875890180802263885291707848860851492855259860027227320880700372085767110109393924931265154546035409764411119944338357441783062767469562816936148004823537169684988194254457621284461846225035778433040373584504787302766353892528771108918612143712694101547453511660834737368143606673042596644923641393154756778210741624112748014841711742344496150588312554368114350040683497023959971741157472763728215042360484664436798668187097075326100662873434533839404952598766118551323002587053979090703492698633435979714977295109587022099791008509290193708192256728811518588880980858918836667910441497356011945485046019256968500574757604458705220088055342523188031998930225533461854534797305816406033855619395206911710177629143096625913800314884784905860577990033832263803932483159245723239188411899065450923921835636185374085791668673213099023331159173631045327793748616263051470236817496297845824568527481682185704220444476166165754390578874760010168414986658578767491240421636029869916699712070860792392718633015256286881382692142132075718319432283296056298158132030820029556555170717717056686224093552851253170761032508443719426277251412411405847505184286943669096157413671358665339771990315152711039181308554533247026615339834933762769320541430703232231932305917424911881661718124947851768231932871768543131716262339435689373456955028325897731289921971932688917385104084372921903869669989005037230328323113741265259595565604380224197526165624158535856713743865183142675868851999858662923700485624726100120126767518987114678978636343379153190342178519031530365189611943439564971688879568383660415226243202020053202708481598846455752365567581640300603786983602034927250605588791520652201864535824451687452140151647351892626558603282021677663521353689887990771175366125719937768173665587456419235708892371734792477088161877834094372979341664414847823485548529938981637245098189953972181011184591219256123310048784101774526656618352978959486922269581328734791267236866255480124009166463229953418900555585964997110579944859527498653877519140300363705375713185928320508088394842003545785241349499457605181871746274063784230699183717944046951075883409941564009977682794732474114854113991137491088769254910611947175726279503219347081548288098070905722739761625119607831675897974889898206356960520835658237630211994630617146413565727433943704934288291518409008489104034186999362139612472951360505514821034855720083374785972080413202686619176239915801519980791946570881625936690117211631164710980645209552341401094355728938809256701223314959659747792580208393199906144912798100814866956922140417701590964354982348532208105713132354228672900908347997628258655393450882598726369263948005751766211700302071415005177652136359742856074483313460921421001774273980585556658896930654710374883874849759313345989520056881387500608404978847102471614339152757991614098100080176304835941021334811659284822844776406365528560184376350793479378687267237429602894899998022555446866468333078871447081036997666341350984683839307024956894884764702048730306035535149308408732772613914272903203697150312621790881613559220784540244756809458207095822092930969568712129382026758548588580224845428658658327401431552599588630008369512379677507954070962913224234482140493300232201066054007771846881872915739375895822023757691807396587208153131781046409492274066997576770753819825900775558351814912028462137332353820517911459250689172920392512363855891986857710074028003265067426642636982452718957659706498624280101461834336330140610333009713674964230529727133041275074350836095639121378933213163552988413132974869703817320714129191225346741986468339986724539603956943546290004961841217295010622462340699043302749002510959863567223149904708211565203551250505625119595965095315481349253925995267949757820844092319396875228764467292276518028814441834078824890321048537887766776080965932403486884572350578177578314729901277597035864081915862425350209565965119060717024124577514759488511648765131623497569916064240546346075632081712966909910817771728153374847225420107309003002439113018062305195156450367737634594091831112531384051978486770080552339194917014952621112727338283832678840505508999793209045633778940104464841829449767858479970438124115606664098065693043230001229601865242719595078795429723997364626572541236731306939047314634449319860775399471331288930557209351230359006658201918280943026652062612088831350711158571442532523694449018300751898041244783324437598579860582320552977126639800936998488352601818718439400525737870726963210613449016931476821167902346909107106835402937312836084635004091265304713756702879948341035620669946031846523088809853327753236366413398064305077698583738916265969553475928601528550642542183610218058162704993563982657359701715073051456054446597254616742701468011117718351126958655370284677373923762355141809957350698515110794480928234050912789966955364212489728237127503244059457306221178707527058190810219525699431421619859783051361016170723928402758280897171510433717376353136865922928556649405973441564704706342315403379912430724346951856799362118228742001908548826508354675594545932576172517868477208891038397482956428057154058545028210779774311587350457806367843526559869049688074294206787314535497819035188516706811787506454298528353781797285770273132775025411467471649321536535491790278143180641376240981721657217661788077634727432713563807493315713222374119102876529622417962069836083048988756005663962881324632639564182893196944828359614390534290706320591775714352879359283325244130651249582010321037610143540587639246714216628701743997135017679606264359911819839407425843442251812319193681986492552074058167401215996095612386278906405534255612275711099030121989603463749982433221775754721049999632010333937916382500092475433251685982605448397987499858457541219332309284358995022408253216473484748418024281495394106913881039820000522226294113394142150226784195085906212472710684943294547092057311426758454182415838500770915422959069231528186567956875483210336198022532248644409513393396082763930685500429820520810142712453445576344737014450349517772306500546937218458785249602741260534497600521754344382795822594011647154416571243910409434362044834460658496008119608767717520070449459987003934518400460527721996965378571245962658278678991495408853142633454099403206190964508957511052613942184300608916475671711726648731202641946150657239996024316982666575933691856347925889993776903263317184667615100737018328576610699681505790479683172903510851975172350572274719811977895636105551948646037370852435662653684401476350127356784300577833829608399642449222007344793390837292342554046396917722443197547565128257733945428350265571362671291539207096765848289500211113391206096935847700260616616730266272924588705483654981982136960997617221556711946143663302695059272171011338139617714545751480032043696370491444477857166669185185951908588620833861984825751804640724068378466421354325699916338454681307456357646284327326832790553702119876356831864570608193661787614416180661602104029742280333444351958333551388748890154033498955555751759030073203088017945810482116010192210360729710445328498104224456343774609713139437210392639976665123331011884212144938668526014913757475694237708862139407208479296651082560974181827518184883855002128433557440956687419760813996085163718971006207990210299800155281853288770547189940029518370483334457903564687987360095379945592727773118655920367728374569947927774045390942599521704984770292492564941431275556442293717016448419732576464686708212899271593883356680351650002453574077546809406435563507802544278619534211547644030098259005278586662557558570098757620602478204091795613491245189717519930727102648765595760703190508409139008504388885241018119387904141683326582696823969656764364331642404939510791562355593107701332787981223684597176123527476527665755955748427843821917528986796869622515994006324136659443301542997691592914868105885430271019516358316892075630608326776395539204721952455661491257828326989156082512428095508110146129174131150061201078592246917939311685629794007015389972917115417260616785698058797025861421245621640029424268362852844391726791557435425030298270183976143734056710378589270951188228624639388602634819943473892545207180478947464338109172676927343438894131596433866670824729102096082600719904658568952875560467964581583180001423555406593265080682945137095013280885130813992064239511903694295327277483803878913472914612927448964221950623585377617741869754261201315185616063152383041192965530458534589312737062549663887237800373924114191680820034032960202580937121716412365512936476335496836455912570484031831302126832948794414547290312409793454958991623298067593361434121261753792897494675010600845009553456955615114993819104977627685806157292449132104398974719074143393823193145519787342309203369973890299633791099447202738951986195930166616861026600612306572714656794470212322323799969813708712580250138765324109658054607928447388815956037483239469369047669826490103920859738641928472492380624129069386182603908310386168329242622022293844614372789996570841269476281263089260474816264619199618676492037785635485106227868002400345986360173609497656853190103392339207043401892083379504020219739221638878749887316684519455679417380850148829854672180618206412701747878542133548954033373847696596137365359162123479423639698379826633780865639615606941488917354202745461610190571763290788155449935650084036028658373140613870108425348747417853810203342801245189438885389321654668345572055602518658212279648646829938212340727511553679750519039475732418327631778590347357204739142141817777342769351528347587496985411930534094422697912796174005156695075733072771976457689221639684285957753774772675492185613185001677861882753664663987550888999681607279028944847864759923696234702055367187100162060414008585557003469684767253095646386255001523332686228290238316649911543379723209745054701762066924556403282321856564453628963413969359804684568370769684110650192834447441331760209094739604234942909247144496069164081091435106072434280491075293591413437668781826587616100733968095389209283272697507789199608663396894483552170679711646928115819205443269510760682736220107850530162109609218894554119446889419471091217867924752900087722798033657270748014405596594612085533469033986644290016903340830043507829576343052188092146212365644860408943970266761246689951690042719716676630330231892928796039317225902168256184933375116832626724050709706169725937920166388846930525405577264793045817905459186090398196141376555866664653205904940524600326649941845400348297938833310766655518507365294392885130411103199559355154183243765709951220462590981907952808171088814888547989608942153180059781130270392854924843247767274945178851682210078243591633170415599873551257682560682890925818052671796375631145407599615487607494791454898741705089449719502333174450771632777860332951934351713961032759292546955203319592187607558799641858935535851762914489511795949161178567407362323600069731208989277757056034429765021109509867442593363326862649272171856258123333970931620135802540764045741917989870708349420326718173518039667014902740164374125179085339262680423765645178710156029265170246475139482344611186304875590140044855065383017726651705098399181363556984428918137916881751381979257429283324127568193895165235437443463125058828557345958706878688585403680263414754733038456828642968478487827244226531911324241521366887359271005545369908207694070226063442545954900659393171248273348029942225246629101563409695846358385536462771133306663419994898662024780359298019189737108897964895508877828283338660479763468144865182489546773145685495482119066764488211571346550125877447031009589930973929681113793859930253075819620180260517133787711982861461930896580429493283367417076262481999326801349236797588186639303922829467509692778006157782291213476879100831744815855176074659652159113404530870361102966032769120041663055278760100453440480525525178726431099613553621591540065824595850509855362676455144602706994562870096273391994613309291257305577764351633637956758631811395695021002870867716818553952203636802119393184793408168672084730036692315544370373649853540821743978069894826214522473804849739273791504389461853093515768085919096816363814784717589850129069496383877226484085423526298219979708662726702340956295381340107100401238981955676605977518034048110153263892937326409445984149850933994146475972837123996084741998962394853569054383078316460629925696147097792766977653845689741373781712591180557708892575184193966168908826871947308587783455334090580513061376620730931508909897122883875623736821117247378421646952227446039205903731888710472247332007735566920068939380760448289739568988669090014105429542958484544250733470546836713823094872472726089801447109885772495061486724605100827411243412202575142474778916537699741450174279278747526815654861753379650791615632063275034677703402998341031186022431104846321354722058792237731600810725091363243633858811238035447887131256568549997170929653025308021350424502032085383363493996573545098498154426519802426870174710728412152886886551512979022049854740877665952802223440254846207426655043775682712203010381132469100203171171619515098961477218826920211123613986669777450172774162993585518126978491073341388531524399194866720690808291213288873393869708015535215638079653118901578686591185285049779597257058078636317751576655597709364136351764206786995305105827355277173754947072224832214371442514215088048013780839820565592309610286760028585862549358462212979818456712083254412997015407535765270661681530229910635794461966827601584017651186178522241238824930443237929217619400326500543823126022335767050999331041488302269044989822927510208133252213145033074524955528288632536701773583838512405684316286343825570045665051149213528679554183118426219575196232809916081755172346337294244968655312151612919891408246918837273932226523906413666710487452568231454276967091668838929325690728708083663979314658879703021575015661979045640648979410585880496146314142265487234593002602878167985421135301594153780804343350914390184525449823064017814876425362126271433807686348569584191395645965353357224929904546465216497881140942669016033769899588836785911268332098434837762591182332339413204841731388164911233438171906767420448224428517136970666615018940185918428971917697336223397454083142803585781561328681100199166552884639713267481289609537943953357431312782619401331205365213089503061821300270016648244623880567356455567732705718828608931981528055002320334482668192598707287545397013079087512539832925022259234006482344943295746829903451698039061709294961101921978746816726216421770976177111862687466473331930239866660278621702311567491998745811948218803292051075110672000895341344807902595134934775597076435967630107881840595049201994853517781751468862167872046851320547227166831070090364832763089484184045843702339933709502325571633489687907902141784079746745755067786872493087461234279502170773932551759819021995069112385373151230748934305285533696623620599080213823383387031500574138164226246042975316093373521148472280936485247873689889125230974686858219481754460535915638199641260794887956985501449103459301304263398471445447449481500403605785665317406431685493787819500499532290659848309710496935119678169121089158516040867203292635974716735310634239431322367158899769513049943709097458963042838962885642996970946344974677546652188637042098299881035322566115448001225314065877612007847486948046737498500234570985587615702889253558273516417409435994014693718354704059531219566951891809387515162288971858615179201967703892036082212569900690895858999716825550610080564269258523721941985587980312669130345300365564095058309845958264653993873589987598132003307900351898707118979117539449969055932221279568692809391163912757964400580477259325498314122605602990022654180938927431268944983954588591237191063887755022365742748958681267699797048967481388476792517436367983012371105356784400996157113275452250778938390965326288246846710195765853289019183942935252451317070669330835773594125172441069012124838890624236777813267848577741176156997166146294646415105930122775798618716693350782306619505749795858639510758043262561082018533641147201853107161673671219892363781519818573698665842341235334271811238450521404471464086638590794868857307545815600888658605431494666255214623075346788093031483219265618674546858983253736332861951860385695898748759900116036596969014173048699027382115617261297899820781578983223328073031197072276621156933329412000811483984238965670642681896047943375384619762948047381463480836214078156946731588777331695195697500074787320586867447897462427487968211737595106277570259328407890971984360042049299035978307380336839601535972076805555474468377045152734048424385934752475255737206685546954577193823274975227666241191246598293771100143315800238301888657303074376870435715822447629307742719319263089377828657024121303586331757673792406665765353930574329391649597054527783358959186052590826093832984760527820912809999960853517338844885799108886104478612722107683324755919086318469068616646618492367562250138850973996274683563540863079348767528757876356748311001420448673676956119420272905232184348884808952899472886973261042141985700755786819434222763517858803203893452965598205986992912322956973471875685921125619432597689929341459758764599234504675580374293099675748782953117612719466447405754009850018780771757329233626605466950532394258994625488575570015032170121802862776237065032769985335160605132043211878635335247829158856033349170535546531364518406132506243202521048315031085093970925693028881855365425121459058953157919356229269478008618252378923949168497379932663710066542112341527015557682534098844974788402394543955946110164039745126120097312997666895642085112739909024961274970183620345738628864733397467056170517133296242918854208680145035049589157055749966225907339030499168179491723668156669285021295889442971944812280937252063791105595985871077741269308923086575112177417094745232510633922659664138095298968633192677391788115865813049774090167043297492494182150559231893867394970456889701792670394228516990519642868497569723783796189622842742916736582545468252024958011064851687021413682633554994289995170209581159413039452467203445575078122745940176189384528033943600792902720278302615139200149319666696634589807802288753387557998092299268336795802247133765010973555066227790521453374760678709254441337854011505243516711512755891611313336560070332915696249322404471315704439978323946422741722865353161481269676840318741853904289084646778189098141173536225897742111029443880885872965414013675105258032246111595486989526984655734345165525724686204796351192664409363937078957353111627669249850245594419034459389316348849534365849323653181941094781765146655307406294009209633962263751241437141982251626568362460583562288451867289249978777620922208939849557964608313063126671579045098156528363882168275658848920302744090001906182847947753683238585149615990044248462025304704267585618907546575451323555657479407797482893995729057816702150958397003281703638374031605281019855046890504178214896196356195524162392386732496403168228013037573780928643485371157183099042579599276516112842171763425101051107760182198667326858029219074132470865306222406087639375814816654462935905182692920908155154550772597948179179477469023068595582778002711894359271066633824634248825775780130008247411389231304498268171626870183579438453972841559625324502876615580284895954871805613499553890162034795486319568146729734533117933783427292515893242689019695325989610641043157515347891145848740882997441870255059545216830363363184003158541439506028558582854983906562302307126299197423129302182349707941055560071967640241914363049353171759385394513633962875534632681100964421980157476768927235397225155356755280075560858873502595245692936984137029824125453237847813158511545213296259963571459465768591649635506884604360452937490794722718972618061616543711770633026932676584097798320549968138153203217081644418593205568519719922623263388206658992500295127059918650493622772025814064013124532575873326403603897285645181605337852399099242161607525588205136333753133166799027413394500342153550332871546374368681183692174588050565813974669919583200851943996326418646985391735838637508941721591537830865631814961961140797359042301053233625905552056497846705312277677188472726902671139801009334125059799867967633674379811803438784829923905358943933116124960276895163078555260504438229025250098892859183370814904187315223322754484207479831592545922317363364101116341509706974994646517555240542709569901894294028778344506657953352790781465594691090331520097822094021733063515340104989284585341107836636124249976977337146598786590791274763190327141513734955393350305728338650488925820469703910488292057956042035833172169893301482086093167460580944564391324592263241535608033230410302586002349582249680465325491937425272158566788560130880078866714801763063798682755209604547148341496930742386844589843967008733895671965288747411265359797856116526312381150399674750555414250422619290154125019259455999308454427073767881956451761945073065019825306982388150047023723423433849366529364734664617289251259356782361089196703395162159810565819330362719834889000794919984325785189007949983151410739579087650492627068466952635645381777690337616366104387261035217711419374696698909051066575248743362639965516911840857030334226836055464644642226605826612478221099916312591094211152001053097806202035335401170901589812007479798488971007841708528531480259236619625165875098436022889190414045163757301680875977930096267889713321899488993097194883920135102032802733284788954161237393891930822241417935577156206986783522138357347313224265986675627178399706380347284077183617367763392471751413746667122338655736550253885902365167694261757438114966872792011503153323149374123941338065865076660074449645206404024039367260749297304782980004970654538669286384033782647757487483785473484351045242762690884135215958661906416740191417666714477874985945771740340061871673337567892884652342907368881181444134160473842014486667782828390026829407566589253358922355077056185696086556464472118584828701735517014914745625547612363098068119403723797345090583761803428631855679106301491000940252326913840933549898526905435308672942920087171636558634993334451229718441996399348803126997809448470908482515739619228227948704060121910732445288269908367124934444870190001566710668648957689961262143488109574674542820450580904026770506652360526972161009185057595122210951140991108317803675198807851236023653182604532736390481617277860567167693954922996520401510065351160420652356113921911630966593767084825118480848507650751058603451284378343892420667150159584486955806134208180969367127660892714570136382548926806306699755152486962787385946281977513317756094156015105375044544294180922246971300049578040174747672613216951918279557618962959685368575202969563630493499032971522802443169712868917402690372622846003418130925510316441343839577939281000520609646914170884348134666249333295148617152777767807973962523119816088050796720177748668981384337241076073345854888451046130877910576829526261400908936087506232281928749005716461290997755487797798142781198893571891427686728184737252895662391671167598809482441892244035463121886540040378516180033539640143591331125042269531620520371781166985165062094619171994102204646089345205541342276235203844434236092968931227583169028468784665220765929300029102504433488834897259926702646341799149558480118836129155314789309889459502017778223976082286704745575042156929554777530848625399870731263892990858187519645672121035137033101580438944119186959294702298994913271867232576620832559249029997308707448807720849748673826245211535241265725330266157528947932141544839786552058042172685277082625860676184255416288897846127422086856979393994282276759258836453431335588580046099596937194751485208683238201390390690234081598053858486244075207141992637504539617613995808446255429335077032867272912094253545184290395939880949522622040265928227340068134271735189270419377117602980348699674148696012668841010991390271611933710941916050010623313680997060358286651864243677853741681760953960586014407651666157957564818367181382296782184433256005362871394984430774155615139072164280047537079668346503163625515955724265087170052875329755547744411899493509435912630793712255630685245581012559319766190672491198216371052451279740828917066612951024495945095160219382102478968138650679386210049824959869831247245621218939651384027209485847798117824336139985829956338192935000256578864405508604011150271858108252247647903033862145112311712826557904328634807885516243681453841916020456230317982773455943953560688420457727391110562845547298724942759762595664250940375062791991601785294880929717377835025156119488283147193611119167719158509217779446652936358275184180527747717608857999355457608239474008699075422614740924155779924369862543439743446253532399465150694619242046393862765662833596673614044098032994491684443192130713055166720254669141978544757335156243988727342000191594858156947565714084538165999458922319603052353364286719213228508563979587366966622347145156915568051650604464296735570605592159681863739083342463585256815858037267512349638925864672838855732531630328741009998206676989627636423681529074689372180596267226550341035780446634119022920703351718677255125319167533059157521340125961205366140754700045894364082506283791593743875748667647470894787350872040917162787949279837812257860249926229610464636480744551563747508776918119018424172276342393685800119241955706758852516717241284863548193164480577130363808070961571114412701962958877757930672644971955805052870330930598939594622645787194505538687298895037532206881129670401340892796537560787752094858188830898380636404840169612299186050501733037550429090817131021585239922492321011744902573263164501304677674618482965089187712731996331033203276624081665371103574488912879624139805256639037594425866625054932332681052618867879615342720061101514669774344286661150560272778224028977730019634404895771379574854625797660013124831990415444445365343047867819289956027183429162483329986808443089073333218640116118671234056961927742670856758482633512903096373966281496572781405213938606225198551471475255254516711163885919937508509026821406815412345737492318754280931802807589514066488604197699458214128109599293127741035523826492788431656281745627746301030917811932515777151973739446692743846286801872154701645191391815741599145771347610996965231446779103865709861667843978793341621437687775416572690264130105908096668001039114788654882116044840037060436984884964768818285378972532710648866545079230436746020699063423838916465648638718049050109634971148739851542279748509172516287236744443645561324457075117652646391362275480262201246792398893229294707105576252468351539647977364946231559842948733075663020157434765926539413511625773752739988533437260126114288195361519672377345117035567925648632998258053660528725415685829672159729038140647583255767706102047360503636965295548724438839491670541386392111625912193780620597825662230549373572591101915794303276579960547522536122080402693282211263746118309715412611565434439102657061603921774068592141248343565378374294526857404784703724214171124402498524317570373233669805847217497113867431922287584765608040399882886499958813935676444752967588770192649644108561531242053373330786471325577012968447361740189591834126313123941136270146125245220840550771869391228244892486206305904661845180794743664095816286210448385164604049783632405265273809281087668103610359440729341215590633462417371725863361259865101246546750942753426976208358847570511218005891980490342908069667807212775196937901017698712287632807324839344966052046057080074574875937175069866053519590363949734953478534043236762523403044919852938533964038278210232496258898842995310627544857787900345315571610796692169782200608070568827068542170962024292796607260873721701030460637100901556925470256255803814142536406545482654798065675531106823745403211754415036754102788252650604553513076516946217859432045608605166922830924940212724378590036312628731773812758381610660108891412678882510463130536974179487944973538287484281464453713880565756837735939023884961901927556078615340083601919664187590392148342536002224578490385033211166975971394505584859543385095231751557963963488455070245595255022589519229954229263498281905570534736343309057916810134277750194372144759389809555816642425471083808981959247014800240755878547529386938155294495550111268721398177580834437772028670923889545842560631569379848563474316442580336230781873180508288653472398118214678052535884847819880838507769082282015866413216824658385042966348052417279814228266806121326736824029148407791754353322319117345876155156284390053916666487190489332756988035375324859049367937396861225073005821554411075952123144685835823680258862555333374820604795529610938057945348815424669201581119621005837089750947756409084973965468567235761809870175462820743753454697617083989677367766428957516676631339241905262841292895472581714060184558058447792558506421577234355481345077965255956693483900136892209683543062221099507496183022130935804220247252410789661477049059480712390699982364151507826736630298253019721863161050631727269354157873277703162843519172455745163590872285730439981422273603887596142501133650897622615837190311508437934384869289985466933374361865702034070454907239175404206010796353373595717642897498679787640542923306773199748186722167436219697010120028103841885296971548678438359676590964027959483951817304386498108676476924842900262095395196789822184767805551875382378963651530964494126636502150737711121990579409495887666173839828340210671250540642349218359893687008708879197923149704607358329867876957525018570144051239779318120846540194361297822194793793893242579209979875991692312974144141686708956004983570609293960814984191440795046833143759266835305087497810548794608193670318135119318133935841526567995997144837377886787498782953632773780312456559897120687657013175918040441949085715838797343387089910203494575939412397264378362558608833164983983574279985417574559415012537689775530291075037333796482417963928844804299378314945856071001379731662636618347450846922918536720066312402909781431153145431395135827275475594900272152177443989820929509230326726434901182273153638441645834567125164633186346979165664553283818151002281568902383089910869312212260859409307687173605806322638459181435630463003657133537757627638293500016993937570359562080065680938643695148239213335565077524695892101876913757399680612085614456253502542443110599137035282268397022729696289100434227182251221159998706441151074695257966274400252876409508482754076559151593453767922679833746446394328766832104803221912322839007728779923305068729400350175968743560271064338364025200641572137573384472803983515663682212483255822662680932874842537960396385403009013417224273868913724455067190922089405204862625533698142352281290538571782189415328753975388940596132610924223242229313403353995478131451383933216533300889254411755834195309013683929922932071978172952661301296046828282309558611881450767124415076511704886358930160908247275442299533042016895714359638333004458094233266258450593829199682962704960311537991760620484249456316384850092187601437464734534579496346584548344840104289410032553688494736400258308646753941149275698424229293711096205407750385401599304030359548435571303247273135310941283341840363973533877756643953036194843731589279597134856243514496533241283365366154926228139046068107072598040995935693232208207997754099358740782658257125424285295000582781036472458696420647981019011875589984526975100692131816520440912840886512765894505625685602997583977766958278309195370088764843713595197663211063504644546617997296449751089178055701602144718526756893138520886626184993595881969854680806392101224344748748960193922151552593551461870979915756565873263163561262726091990138173180157258003023697721076036301627221241817074774295819378555380417182257474231610773472593128935772527379160881950534312908388488025822146275280206447301072139595309578602609409934692859145089474885032276870070597067764331182289056059584455429976728985419639499485346815817003478719906613790064119546991630554914103578845269230475836346715372078014941993330843688428717242392955563953594240292667830401545671453347542003818556817972121807167593407044663656815103180842837433029690669214289919915166135554054572213579972936185625359930527924991876746775891027528692024711617932171744562207097081951443761839105237210055835717928518251661479518865062351455019942563891565286977492942825340037988198827301384753862492324108893289506653339988123627290111708746905608542467081921805167141517971755763252297309145976158448886372997002933837981474875240358798693657828348074029757145408307277950119438685831648204871213494494057984208651242613591916760421562464476050645978860653373134738794625421605433795549923914196193807638331670129428621905051763789749039226360979422659354572992728782999829205142827926524575516642266786114941565260407245732093112240098161937006499942903908600095321365556302485733667227103229106307598162667522592299018341131654603091968436708793773482621341572359880703118993216997118610111761212095784350048214235430059326436741591639747042914238887137552045166492861070963241900953823190124382879798307872547754531126062640247434987262767735992063818178688308229281968125983388809951447265389344571006647157769353055003606117413634380237642608383415869122574894523425700118150558415068987575328459641324013941826643825114849115461411026860338968099616940058503542504530616067069936363035348263380335342721953803925547872204143295411287096378318658095157172388700947423833120585878987049471219660714001308117333860839698439082728979554820151627645498693863215924746872748496708405469182784866274546747270390779120916238365637011312705085864999639565419445305731689995734318197183588299230121006002521957127981810138074018713386512368790022518336304573302043038293983965087298185317691746279981269005041087103266857685878543472040284069309324205912989895411931662655039153113679545664611831602630851829739506830626757269599640958532926339187006136617227538640449458858727128812704894720292038972118962171672538774304894867273316543548779796436032275287323152290977651110885825028172014052736563785847299636128462354919608956879213301951629408618036667119809368242155672949973891953916504501908105979701016668580739822532403213402022469511173529669967791479735450238259219805587688349393949122372690802889057336337401044217278613149361353068748699082357992613550389542360841300287722787700952135083374900621191097330194682058158474070456664141615669170030037449932929721284446069038953882490971612615882733224591561906108598933282309945774438318384582393768042782383165027849221948144822098746057954475450293284970489913942913281302756963272142893443216853471002135216697523980836380797790266771213338071077048974422852824687943100268517703653310251065822018874914316923828083189623849882748430695969408163093258223277047589753177290935389847613827455700636920920899989747587572098147006153333697785732630580250816958757117629143841114562683899745424346261871156571584563667622741716333349600091138504036020458276064592967387368047623172831558276040381140483400360866816238536607790001522471912528715807443171080940451137147641091016324077939712868359677858275410537496141723531239922574427757401556130799855091052347459579181521889142338631274173356146323010505562486186611419647372927364804307792575048818724775790098642135132278035613273726245229306890332255224043598594387355763241061179253761219221487834650666051799051423782585496702404800080681966325506996999190390288971362937278470110869532493392935688081347268872891978433100923205867016673368009927268415826196367027145014791611571534944750847386370898053897319643466862815109842782753736246696826946892397463159745922785289912465944834751283728800173498812911846749475521893302092927876407625920513624417902599617190377168015034020450541173485397972899374475760912325924468283546011269207792743813941074317932150976919470090680629198000911969838005416486113831200707380247469687684731454015058052483231661991223764870063673774115135908898286336876423381912103872633132631752590599513417805936355967761013195222780002269346437789858086921431112754599502674800705281892358640237042063279885052198106934147505258515283461877568942831250792389762051813246308868589697861394247233693144481464598816169701607307001541735374954377521534698741037614578144929840714401448303977577291672484604256057389265473968524535530194805102894036372899935827247946495248091307671673875378261427946563077015838636730006748587688044729868201604560271708713589015629738840317480786604255828260334553440935085861197364150493631176726192596042658291078503706661078741677563848376807090902108802012833142514096024954273598660992953025536850119982335952289391177015959215352278261491563535667678309483979728336156213554123138925717543925352744971053718556445846998016454625268121374014572337439433688835127252842391441950978723719420568814797079951225164574866880052822693049540656978547305944431639238873302275403162905499129086032380260516921913261438954370420810704862028200954750005626326881170026467235765096831218165640561591557930281188311007114975419143671285662948654462862945628577350852168190492965629484357182245466756428283969807149290587676225558154209400353917642294426895221780331766841908715499593535111557150630709949183287534565804266540548199891302691641576794144469424821465095890148865354513824780079458570246602239418083628229093324701681278704894696728704089559310249783961964671440643406668375570642983704866837972611142324160440104335099719413493315844481456905801440168738628807811319959080907233200695391178538806616013280934492265895373126591850259492019781387231640271402476621105667499112827598838889921677733031457830711222926039324792816128253332810823042991383885464512759845910712836999149315384401977736726331192273498365182810459121217098708032871221759065511250522063940883448923714029481532005228439388864688024565393321127357172976040888691753813505800788989324702143631625000676151364507547338922288913381277693891232423692228597669241320817889856224243425837131137691116941361774810396400862919545565875386467016266172145574902400743077751013114008172551599241651414659546710490235718616074567724289257016835492699640312619926821209700717397045327765869041654797426966959913421220105589099484021840060160224713133434730384403158996817860313559009384871507720769721305529903126981626719532718588578322819314372175351825747423976898875290390444249351042699955741955734371957795167066948514295144959031335192381732657964378291889143174098453802402048593588295038358754973625698438538015471724268898448335921477048822251959792217341846747044884114215948491763210936081733457128421874991994635054096868671913186819029789393044393713333454269106509271740523247652009091156458214714722128120264943754660326999015786951644574419129620094989477140803297676557836286383603063516028530215976898121994485844956589586358727154772326155870268810907004146353321375058760225047858722809167942562307843314659776647809937040658043781623053195362552192231374501412578175580218221479676103144916220859854791537681728680439302432857890056351784645151443626040663792001471559061405079332829171417677978594067678460530617111652817403621893188349303734609320992524319349941130809425988402742653635383707223733127597313906968367984988795980414716664495410196664998438748931810373152725167539506220052901566811037524146796272072973401004234071606055909857167898546929979030892204228341520170007099974850037753674269100851015124214612055787432471828582783729006363094068734071566014912530090642539566906430078512961016541129966267698793493380165407557295911398876788695370655029924112392138056054549389634110269051354674962995522815142521701009793710770928155845799558571813525919811596020990084940381495255280579579942856145405475852635471650304667665247740054610173482842889781525438997178570111145658287331377816609020849249323021232333622938807827154856705151582525227939703212389780104937489944600687087042202178023669721964092366529913165947955920887302852023969588695862636547923500168439459401296937179808253487786426687452732125195193155513130353395813588177595968880065122596833648799393154377362331638068358504937718402961116266438291535850187530512861375146927195816582268441413059184509830301871539863968061850099431264961361548354310523581900037986994581956861241926218691941961618876714606478087553959003469086324169030099778401062796671729812166554740345870577466537682907399296087960034173863270461228603798477896659493726543500686224668176445835809369510100200154238193803636950590342226265169873000689986939048058937459468827217526330620052204446250195022376577429577582000834546413538614573608769334818702229218436426689423302952567356440030044351883112347940520843454690202767446431252109019911912222814427341827799694357607343236208960601298566408034631446439212649698232921861233280964612711001727051882826753350918732259845034765180452047408154702655933265073369880099993578811019921087218076631550043917731408782351061850662600258555350999988466385093329361223480211674908916291315674299532893775222574873043997855765551957556905175399494987561042914254381654407439064409478606551656637597493804518131131426409427630910855527205889097317029519438089860122835929940747232993661763074151641764151175360325064526825783561750453848481135143240169967160852792567203718583373641597377970298558002131398579073731207472815315693568820447935889475530034488039465209047533213048578245785159735431741641278680411700521095120202622986819774467242806709227292763470840194898050486049578225801055083160090886621261040845361135134022097423775242725153907074940289981995665024845149814124793780189539022977673896060723162389105245838220920079948924515169233621008845990573542718454834985295564673315805434840662993128062897646823305731344564342785585382496108542176555756720007721817989585762868521871382364455225133962987758061426732669519509556251764365739833986350687669037340353065440321802574379109567659141374069702747112523832644249728918403359398292058626850523100583273877860448182952582328076916048634474661868435568105475702307740970066385278106122790556978606458591006622481944286070697616205810677094863816029030119118244840338924814129269147787448287397046579292125771324330187330996255796092037344965279580072710946607908175785480323970341412037765880303352603859645381356557048533161544288685507953733476450350696082009591812528919736220171730152837567038489534753834436086681576873630285783770998628199587353060293128263892633798076149898510328360647806934676508011770081387080064097323844637244570381777566410620201987816697953166736296019285055356652834719006622009602068008016252427588801529423364548971944179115581808000678512450602268502815496105827807325821424074561890747672704574643309069190892439876737679385018428575295970127972494475021717700525348939220874866633865217018314677660721507417128006172772879403796386415672005088933179991744416073282306297091397767711659941312651269618759948265485928417998162713582360923709123567717531442710785669345480746061856986628638082622240014744941624683038303327181099391656374254950997162768546507110050660912034077337062685730686254128475285894471482601325040788856484472441397636245835251485370321878385566909519055007747244048945256678100471307121700508509520180288638833459647532167511785577113906860619220340968408403722946820928824068068171736312868204297871282918346858100288062090302114534456799593540874837398089319066353723153659752630807561060068791039466730474853741204785571817485989098438569263953906695704476463961915429325509176885068514078383394269269668282669695440274741802463446137481021769855585611656743460313148102415160222665948302913970787469842012880498588949958402251228325161568167462011543903948048498394156324268331247122009479987853304608078973371821675277443788275513031318010721169216263243914809325638257211384615458182160814611081343197602410588742977673776218987090434320069606226396370457705861386951226166782175565255308656859072165806737733954608387879332705652917098717817507346264524305179897350532141029340471068424968290987080301873640523291942822455020374533010348849983507138418040782389310554503777249775776649313657038980136568864487301672184411328908608312064325677233079207164067582091519268940836381040807459568305068052494405318763829114453134880177116147903257289713578313639126726813529171521445957169562814487180953278635470752995043508758246200257568451194604876715936902511733985497568677831664678402797531487198627774192951616794643726006475671184940442935451601335079669450834848356824972117329520617080893302955580860514240756056795310580901928705940552061289065288083905727151548913949932428664917013735837352051971180015497396094609026289883393594301182783814921594376058043777588947330523121726284438242341808340085914269875429145014252318870969066414305367802354030730343610488962920240765785052906741381286766623540130379531642921053512008079739442387931668077857139810742649868310900817279264355948974692404915297939027657417338586023122134847296571611936050220449119894472486447440417921445783437974709286582952753943136667055561435915335128346660311821433184026929815531196295774309384909161854448643594206452352394987199542161857396070628426295888364228496733858031213368341111472192148976098524686346636791771604718372432065464524083510140377006865147663587687272511386448690597924873714195231494402525203250763905049399869269608227228504835790024171538941997189386519578453448560842570469647704589381147762299432371824761987140872390756667944112457779443955298714192228558783721812649447283450390086318139847065448708420626831277897889344043629352664635575528824368970664793427689080766559160282100041323398247953730359738925865464551827916845574604224830537606576622467440263159268487369404266926432948067072636662729709077423487510209435494320080725294181420023505334110989051223514527187363840531571409609337516596276936282438037951994703137529229506244894626906721938600313495203504596012664663921067520500755480944267327695515405508998436918769686102869432726290016329253808454134366617265608879554884848499403512086109938453398624249377684933507565958523672910378494922799151616407279423886735240358390124704397648412635223523213268769930584993879960465817290273554341232237227977865158501603496734358142220564412882448012395196522224367444341019282422461025945743782489890624127635561962706037864699686974329835509293402077473668451771171688210109417213706158983880049598907241711357930769688386459372024135580694607522488932429670814274520603158165818021418284410110837602788581499366615387095429330274548488672242356950296451609461916026400575146316959050097419777694606814632088177940313867468874841319214939921424154803629107144558454983684421724384778596210937591059434009124279318157800768024205352914691257223521101334399566964845192300371001011623729873591483971747651846215266486068658788623970263518182538310311262478801770044725189937271980070478670818190804302717423775869614440878557501744165821612772630416953965662339070655875390141364085192851287061055317440602832404192908711328551088603183856884040761339961656840513989821573769613156128207236660405603664482247168365881314257575663921709142451182527423790997924678127612319627277904036322785399226474663657270072707033154193929884738744476637442619515317354644346715575415083640800571979278700820629915370734391168711229199291740320955640332718455238034784893639802748869426578441490851916745334548380964011069487646292934902640674142910601924625371631160800689141671489144465863298394389991515764791030697223195073017585195339699865066540426876968510010987787008852293177914583463374594111167253532336695724635705386840419011397964224578868652426175411595366886204674782351434728238272112197925585306143670286207379362734277335594371225468168033125457368825619119810816886310014777348993151608165248164448322988368260748667463108492158185284872778028296503664566890305029424658581418078164497773828592787527140873948594045359315604887496069950939668045086409647853880488284803735127638279843999999780142507747578573353217736498549029121051314526516490959966402644650514582084878149182104560375173001441891041525162002003003026857106309362571804129903589119327952811841565152030642641862294890183170952529658139123654728362785383647280613822390180013973372491468528819952694631692538973418330341143302417504719887147382000005184318323487719294979897533539252284297185320154728471136528571965361877743705198674887082813384297059148537669644889980790033477775477721142032573732201260542467676879738783084226806865440502805199675066111730549683704422149753620139659571789468056253196859135918508825881509413652218199203036489799174668781493042696642781928579215243148244494974779007494306029311351741926353530842433296862138102940996843537940234079912807092987391184984070803709794474407063166162141394147817920157695858788007125062934191825427337545109603542445453114402148135028490402122043554144256398389662125017023147967024195827655773524901795006043062396723228988668684521534544262645807300898850677338469118383969541206199001950510805682630704446373241323172684113492990822151301001953484280943232538469534087624899659525941751326558874667966820740424407437558948128196712320894295097433957520253969017685012897692740498792862583538564736413954018912057934564798631236663064671351901777407480633765288587374692030606411776841337450516532327282482473784462884187394372924204740877681219705077566769178606209284541703714674816805164825751081461942453964606976451745360371654218815855029199083913944843264602530624596432893484740233971019941645370527045805274475005482222586257951382083238520139672896163564165388254040985627044592187222736148423052322234041670401825925105918341732596845707135505253092475483938371867102816455464293773778001288100996157206290710692710635590349833156108931875747988479178301177751733498771099060004398001542942643113766965034978450432553377942090574506420616819486711176827562501858254353212475757875984448172372999432044625678890685837293378370453635903531764052834528982047059712277210456963619073559658617015962693485810852734229863836270643816599241370131117871671613441791833874187463684960637728253817869816691574257760563760414500161806860056163492885391656971935257303421358601695513563333338806534651602197746392423439824799310522433528243590196801280974072902619293562592703433342130254163717510165909091892274830355568511841240875548274709847312055636938806376369511739984483793831236619429109306881440915321458171393313311121656530458961404093280018803143875783853355743604149444012499735432201381040681436925184997143019375862599430520137534688407391131572298200056654699320236601720572235477628571621565693106510853469398363896939041680373986551189298285870211998484552187749632323046374259155772657920047776666236276419005526086525454747976982570518681728398444545413672927496146883815837033166441725996914933082291326258747478011021935543061631566007051000952178001710670488768899453350041394844472936562939441232048202885014693928692115284224680507279676680194089447620176071688122012551617171374434560455308094585642334790029295669385213527938690819508864180488395280673422912258635116359547840912358328105962280508599246177628495993597177919533819982139007213991835602410260274355543690247975182754454862361685619751385487842218996279711026014723865611010852045836487197161820060609960960537730296954905506855202905373687712294444487635993477493014277970713146610290967508932605430362380237112281985108634343229648308786230835885302448884934033550704125370820332022831509764131451320396988787516178532732091704315500172828380212502570521709436837466604433268952639068265020048713821869573701938095570604695460971645220989990832033260857762819762395235656334939675769779471879475362531006867721199265327056060756657071374140232632087089127773002233754052367402555661263232023451478619199544858738997636745956333693326506617455857268349442286205662748961297571789901561455219104677803604927598578041941494536189721713918146042654022250061217290560044941274008118213937262149181917860708189246248744532926005628378784324081379493811951661666976724345935091361641985199001745649290395764556980744495665988409590498727895216512002397578204067338255769525332948450249927644134150091334420571565347784802760415184595682637006237491980203666834794248573643922578019900234789906003196277376718320904717381369828305288646210496844711902272976743464821525875614853629566335376160376114351802200727814365522834644358931242076622634403554478808125520223959259754880561286603884341661429034784671449620415215907511338963260260744167493365323870618084467954377464126702128490264816745573917875387829657246549591151816703729577485629322591713351306811083630033234533525947907999939222248970722385172571487037800184340284075213066854173470135820978791454234125700015383960469703179173463262309750608320569768544194576230075064387975871770666922487175837477606362397235773593001804905917821804944976598555873714414901117305115743996082959642428043937619484037271866790148099948506492274471293264595955293921960436891066855668030784995613702279537499201363150363515715137626466444593185200499603265202968333163185545297110681990839638504236771791585556817875920632053790654622537412012630689599585379461216145779035713130470591353693371826286989950561377338639037830660162383388532482594627954037629823660523362765403361217199830671155262472852762982515358807442820323454279531295646505095975321711076779233112899268584985008947011509020239813257875440767564045983224926852076294917429154782967810484509371398928604352455057584540048072453609294573823546776760499016790244642519252655286986871753024536668994548814086749920872064665786466393081913750202845917596156799541781773867089933540070168094190039407852327027183247598237407313986446620282810374991768852768604538510488271606003854617760446617533746238360100222929859199759715111527504613075532690410755421055653383436710158429340962076047370669213710032121461457904343428542914274183616697764140251938632714544791593636742204652429063868040848907395253841754780850086079388164881870242923505566928120710449106561662547579768111309767693514509351018608575212168285720695494124288547141439259991669995767711480027597502556071995070525976828839466524578907791684095445540326870968850241517349807192856708847891722939103643945407973493784306000707624164439152496942584268014634222364037233792381314578196666501991865992765804598690491191891128113785034638877553861818003072988435706925506987068235190721214746288884145557335203318215703531277851016246469586128742673937567431322395967656409086251427697810685921851928149134378945593426651290747343559173039498910213392704693612907806125103110941757592926009366617695921037293144851531733641413719340173339179533683266339680906061642444236771614327342555318370968345466050854374252182741793781465769445526671371302537798263111454704251413065000356339959687831253122903775077461816753442279689816651100320227233243102021260623530923633079822786059836382072405891149012569589074549192771428155628571749147613700913407453419879334730290041723964817106551231723072633688669440290796642138638327910097460959271422510265868767624072263426558613317208818858442310859338312468168635362357303371456227221274419722953251868043844637659500908110180979528614944180083304362510851144808197139517043094694397885677273352641869874309887265923573036971566935152161803075032550249254837907993927615621824397606792684337956992107518528976728276777208459843001747161551161295039903024940449952931102850076809424993955091484719483014045767801710270098454128285661254587272494290507221507857453844731900191118260124267667023610013731296738486886822809774345867426986078469729800836089703170892049850969242129856505614256559389339595426573212449471454941314114533464988682552077219202901302832152654800904845055625154633763703038674235325477847040498123646874783385326538861794992340055678131989991844942701154775150263744154070706828851765189045143722537118279333474303110559634081651360316721159652105812898898237397332133597578223009648117966992505685953536396629101012876692365351387320806027692590256882492991896704396481577693790343087427403116061159844679134729778567748320452281074832627740595549507269509553473970301923369945825355006095437110483263841422379830829591458625803329476955701312823064396374633264543180908312575916988123021584412709903294791298686086974136936348141392480525019782181800796613226256362483243350575529500272648908130963001535143748583783194119779618238282025668584555772329501900915896182665948665886625422022403334038565909265518592072105473039660586423054265123379623451635055989704846403657138562136102645736037035914667563747762443622005906547140129971916457480299359255697005281250845301090497977585989398505356422925754335945348000590304704726496475041529258202904873138802571148839940681345638230618145690353373605008221193836381743692640126467645431606766723081392354780950704167496227070841010322669014846412080139071084691435724047579254941342831767241702809930620511064822459523347117162331975379515549029774842814157682793723350635646550308158882650867975073848248275229901819795668572954329635578063784921695610163359234599260370279946827358648479791939914352030495387565305876405664555091994460495897112484723799251355431690616726978750635544211778355300251319886069954462408285163096811912970913755200792560519580140775380797270855567449145653184237541803238060029050140899976501215379061914857835756583414874944268017551692733869727338751379062155913109711738340756360768839016884850713543640929079627810152710310782107530240786474698399344770059095018202948780499033765799816638160824988353586129882537380565141291879599602477120051416792604158204194151128450217978770355909707392408964270420137989045709805351201041856108549451813876275341459426999577060850806411125041327881444884270942921021794396276477898322779090739060732452401995258985443956714887435709562581112145405507719170838209194575109258841880852345570721467915996095996388832962474754990199210791868568678286276241053433140764618791493583660400910110812750847490499907137497646623822901457315675540842464169852828160132624179735916688422320506735809018245791027963127604311200548256530643584928810206461581061051746535057563029804116477425257122544663639424363666898484679074491669262870711935921586441314553108235809683916424373728930474776774499533966148528391040899927523555690811637902160265721054150013016591629244909223524554542792626202624986584850123391342483466374290459578300656093036798313855465231234963601278447984804828866288823976478998239579911025117095738597983617204900635124397734605651154340830634922384366789244720417915561713015669704287498011992611003008537322455211608213648427426783590549759261480708481745071355466113027056671320127029933355080047487900390595409995426934641903277798587654250226995712383832923965703234914587925901845926063016032610067998055076892774725719414295666395476447277292776577618959677812589492565938335785601025065392639667660614870743241789344519465602546470028825566459398317373615245712283799253184537342150455026602363929659706238325564574490041314645854891267998522109950163088683364652368733932553566462840646004510923528407850276380674369141200742803724198124578617803977086580821502080917615389911835039152964279243756408631406016298928135755426722071493390153019724400968354647887698666104235061149291458522558834993917429386064623554620827424540893083732934567192465502169588703748357154886159337063480443383851936272093737372529136485044447437654550277500606213535469974417674919323911649818782653543607609540290331016447354976068861745130883078129538306562342243364932902217139485219882977241981138602215551162140775107400285882132796717968230087291756944437723625511694689851395772834348427840275646966842230759344252507289166607106181606229446315614641736905788360939209288535965438912487953587081629111284162622135037686483320888307363246086082332644168923279459582578364340272378140789255724419376257545017139011925115201976421003641279127368645867355079703387051676113436281837471733885779079223868350887849082869181476730594721000743948980695354140444619034579928600972446861906866992453778759453337633581688924769462744942461336811023832438479064070009917846130004762133964633083424840753632001505239204492709846519734764597648450451085849634419374666305854616320998342613034109352145398385424399673372296679548091133949315437719855430040779474772392833146392689901416928328592401154199259481008321615368997202529992534269091834494909137692277287845209863852616556323729567375783274801343546317226365472177182229568916626395437353273375480642024641515523108820662179490399016413711084940254456410031728680453779654037998475028517135755729337605574016213856585069875860671414495094814293000303057228298667103590849759642137466133086504618956857021198476831204624349240609084649925203352385193612076278907726965665386181306102032230377527508225337919233409193432436108234995588390216710698567389007163743212513798103436075088620403074510328990814943861295325678593653131732810365433890903794235608268201140960129433783074454945230745934423541294247659518425727758021301984121871693811632579034128284056960635544514371270053042457721769853254468094769282729048745791462214110941602461663183914998494603877365406002742893899560976163981563114675070772143653605117767506901932389906198699765420048300573591823303835847906799929059592769557429282595219344755547319555340813950889285381977672779577591106473982949489476496112289417346608826049425184867674244132990090346902820073559653499849381498796819093693374761448086765958136440612340860097040091212822307027806716518413990578067892612750012276103487817357585894630095500282399853308133589468280311708839509609417189122552663776066630659212253436889268194605178997077001246432768570697650706654650579923437628525926546058427319130600624427647981042026766461177277785487203593031174996273421249399887296545923769499896409371084867758110144636993741543803443925596829794159449915651533741915163930375252484648738746402445745189195461866859095064070599731716442477456524061477929953562549707836898173839427481105517156556393879972192299423349171513984850716613379110730978480600311270543053442802366618572682705108668587745854269087571791837565153475436604608636255886023309211764104698961188421299546273309917437531458475524108876976167199394641251291225495031866732754806055325724423771347674457837361321830583363488209456989339391906636312396388862211171762617256700889753621149402496168914475523559684447631804759468521413559907337906863944740618859467841065700231483521405969685464684633699661765804588864088052305872121123651732398354018980039013812157568586910528433084463090467940475616874242024195136206897255505781058174538620990516001064305193871163113138186383450384479670354414692281837476763989315217369511302595573273087973198739147361794242404459428192999624579406083741087894620203205853295583922018963139830119282122378201240622940709836408983659312491396106352928437661833990175545137731598903710650842234968095824245561692183034748249803945671140024945911199087916176684075863116742568104338458686240400594123244362405519811226145491057272781218774656607036206316024561832478708073855865176047881579145815334416059940641070134644688918637684331753104924249435274875632193323727809175891118524503604359387405102017423757703969487828542725551257941591450864709423802164382801318004056151252885537547331193064711151110029470444600978126026781087131532781848032818594044633035077368819424971942056799883816280905907360240588993388220985135300214082777421498751186308552263523019633502287066140337281228118877591922256590723696589489553808960103624138254124945429578416494348891427703406283791276854542610602107383087980994593023658522377163045816841621563658323849902551197110749464023369539894102561345383635100451456091291157991768229217419820462553253568347213871582170808415181043325412865950103595086331752664082073919483063052245920696511068432154889827895915683634783210706659020763969835291203496583798524634212825266630096496936894287889866818152095913431067598014385818433008048357623514672693083705912939158372474356557587316174138662432214094205794276728790053476725270610910412134110971082470691811854462317118132460077258037231531068936762784805456897780070540249891605300408401000692337209007875872838932626434357582963423851197393180237164283933723501227040514531980332192020905153464804727179111664228312658464978590998246327378725734873686165192021963094563587512090731213139715633426685686533746582887163113193706450164911691816448528420264932411530076758425371324930708055046024003602535857794429969226339572326954835991726847454252797201637331655613820110839753711962303993481138770251634199990686676614443841364146000592246348012084268153398041773787546812146909959998833542940490483347861418970631193954065943612765247870999105630636328343958741292803488432740385549505404355559610322120331793587414615444624448165124036911851478834044516308627196480032474735998104739974527467024627124564661101524298796720474982950770676623022179740888470762596511988554397999050768562408323014363119188723434103968503166117174570213050020246749242248989600117483876753620678093218125946160512448306663796220603520129672854146529386595474115436497643534708638215743646271710169029581163848220817412260654434419545808761231193531772989999832874655965406608213467779996511108741183477534302479637556009320325568559097700849574355488502752230194289783382532753600342842646447468270262870188815826025264818208636393900583032945919435522977606586786641816630581218220245572370663574175814879268772760006330742634963238934619899590286122152700508457020131231284808876404719390241509112902019241723845679497213639273918027522043115183696868848975076322347664170985399104645461067563813901094044665992387397452320589878575746622594997390583807890699582182099450460914686442249842566825782636908022022929419809244190650598770650122103869988918009860038380987566010014226387225224299490265255977064035250934669834932014652120528159339808400082472489867068437106218877975298611443189205375851196064876681917652317158771812429392637446969349123780930720160616600019445774246496493446346923061773694308061204119946252745643462556499401654008331368661179723617865293457349554882521439404150370944616255981485230763562465237834115041403399039178215125164157645235157186600913951280442804412273934741655022790690867228750033975049781202957153219485167664305696249488594284455032121726570804282114021750132971276229188202872343712703983807552387929994816868600813701877235032045646799447173544291074071902787276542511592543019585726791326191922627704591914116972551222410484199712552365426644212484034930991602018494095060186204586321280606553939408738137057697707061410843548397248835001371007472253083170708477788254889820558839609823179080099872620989584274873562887194401464003164076996698213357971062567307232108256484762430740163709547335027413661350139678165121437323432226465655996948269354247225572504182747280911326840419618619461950779233725846265110326742792341514705919511933328167797211587538689512546114153472461021641938786841601780218116000024326671826039830188033898392696085997918541234922656509390810353116208106519099039639108397688955347912595205637808259028174255404721903060368148983677787631776044476896157383773064160904212677890305870340342071538218414015100291867252089200779557481436672748886476650884708493139037465788763145162309569987342454336253271265237606188382983538161437946406307283699915663450995648573975652677082834849483624545255489292713417431237149245981919077316521026624498776289627626482725238450354912680004144266880620363228795074041112222989731557953469883419804849562085568167213386377115910233379266508498502791428166600354960013098457537054041330351581138253888835435229171420977979547259910663854343585223126637874773369549279705279650201158922394305951613012719535149025040164005367917429569161176779349144717497185346103192715776160513885542535106188087810377919330617201292620390090004601569770673778702945569893111184502446050857735075812333448292464793487447065901535266766987694504277369180049769456514597894875031290610897741262797319845593257881775596257094594257173582476097305772814127407127250286405441215918875153072140411704202247638176402197998332672638923999762751427412530664849198276866215200793272995137500101506156769656640725285959259390692517032184616697423677088339869258094516645599900741124814779658036267696317836345229724809295639860014284205911721531091830181516523527686587767660020272930425139419574289793224829317685744552914628593208109527515924407068148514723562670581910922240409379609075954413775307549302487893347430572480356828569160812777251512006307645897705491540908108252146896245385513700335496351910113729590916974577916120952553126558435714149769033195876633070959670433139078543855973529485808132195779790495645767398516230152905198422788881431991786151558446534214705924187023999548832985894340874981326732259151162199899607055183906359400774355884614579219886997997758720076406313791539174229833030373371473503866460651806048944682868357645291579405651443176596930464243453536022661206099405533163764784219761312111525630876850967284550545174605667843671289642739592395472910651475666900575967306248240255649733103095399177523348764602566577372360112260049841229264542895009931291451610287441168080235295258670362245261340272780890868747182481374108814740892302031470895755160026121703674411841316543941748281755830795946769990742221122050669913033588479649079968480799832510380694826063150460170046972908732507787401361148578893282173346671791929898461045237897332888082778932934296748390358451364271987983701498192345492233597884755191811245514659510414516437789892487421614053086626704018106678997269271495629914091700613973285050805839000930154038895606160189528525803737203289796129761534699879139960414077490324039983239718680169625807608759286365915254600396623445111930815944163095007013279820010235138794145174907405857208773349707319831790531695418516449805017864309919021762283440297323704904127671778522233062020820126852616738507825726961735968191525261863990983115449770229269784251680572116374355008806545484161107508839270556326660455608512575179529254563598061760628663388093730707408551535200898864352396807465421346789338047451727531995944210354806896229175793718694652318708586076583030209188241403002491941033914533141128527287378668206285571247490005847264804914691460291167125271487575264381437280094793529953487536162875387519031901290607895287178207632152454454870223487714497379668164295888530246860676423305750502259380481015936314549456520581301616771844783650168880835249014419415191025773439106046751114824137546272497145906075814121126042260077234586697055098829054331612080806301429168617089936609843327950345919698587940873401772343105888449415421399880203774155175667334382121902965125107054455324511790696640322376605462863879857065036100717384247054374272899006149259123350405260583658114700272538858030333022194172380524272260253434769609657195170417218173320097590499933470510770196624818018266192869502865907622989252017387325835425860215157845662743009781477365235694890424302192224572002252705804256346858917025558488823372605423630631383672955690338301964835672783027927544329509898307967325094224828339560146969247438552098463330341844026613564948276628721216708100455274692351843505973948074690205700496168412584712506369091972010378123600865516868887108232722200178825056584326214900245110965300023172059543416084538532345348500255399128016089294745509532881904534444084943391041177730579265399492304152876853747489403002855569175305766484182150491224152492093669384949684102997273181445364748800188181878197307631896534139242211800940164856874053182090573928322191910439660529248230143751184606976513165315403567169893839054769488876229723473698284789872032967490785922242578130440927140237890958031468724816215811203725362969860929539069846962235824049239059758358289502283213302018035169961511570723444380853181389302247993539224188834736800161378039260557268721177465028773527938305907459646427737631289307014126027563529029599109768757053444581690047079844921788718582687521363880643873387658113278116811084544578190885442730957575309585057282338925247654532136881407084136773992832055495404517261241057437593970907707120373671622249986361239385813092383505610477966298577517108463888729334358502826060440021908309506132715180321176927729440060623909310695019056690400820462238752749776919503886746715077759088052842242341044071018515864303881257723077115969465811989094229426951943886052040716053852004676597510764119416450289330776712450875692400394917189148874254822234769737633049701523532860832411978318387466696306346274261727693956230209190305362508841779422193847828368931274855442110797854054260584872465650526614213759226193017509391288210324172762434567091344248114268493739941709158107719216622894305763053180065779028309165046210240729126583785307573414056052882924753904084394836159337495239316573114419007828046248293651770033811256923501547494332619176271421986826095517094533165361798776164945120853921252638102731927074629911773917238024093473310175262075056016730300266527652830864939209114948198590121194224105278487341050248265999688507622685024389886494015008378995806584218423598630689503426938860083341453314346743857691682841485900038629823691267786905806871743470263111172693497134787361850492080072173884148374044552442646652655807447055236375856802359934787350283740051685181506685156192009166749317902598675732594653912076495086737817544047619130575245121094461799650366977329451833158706916275265017145176330739314700817358797546158576572589310073961957262107039891730187290915629662084204917439198661443618485910751674497093125881405415094590431219482141647902298634106383702598806350681994961114009775041209880363637731225425005512931356436208806831490082092708492208757539760093516989020266079628827611982142816729276601157481329111997662236732100445131078805723120597216638607880938205732054202311507188827075016451854977895340653092157336793519425472955018135378596553628858519936049682366629037217794329262088267832322444190929016178135616252268945722589966894052282706160288230797792909788459871322117586373598496684610875087217790859757439054179249766269428530679646670556294689388626078626517846504493861225352247803438686044179014458197812838841168600937438266812641550144405516468368537879253633952044267788483485325297528678269188085498134581151666898177567168236712333586136993330610430124804754629291291917712792273904696262783981676176684667273986040064069860885097394736357010417404291277867049682400832115597892445522018776055928722169157441593201340192867901438443083652599903769731083406432415016795195644403125312536718738943061341164394623494683168908206487337844996298019246629476436805162170907859107479911711296492150274872359418360713020788164571343205907007747142495787498801693886706516369964458836379562811047714235914078103287855596043666613712935601185375024727005600285217799723963921412000932216087852957370234544114071805517024959927432281971188509032227085016229488017613734215502390792191748107097566791331783688273664012495653564156691445543580102379307540524417762628594896997635335357360811664526254730103519908432700037558674976428309971777005876000572665140195607917920062272651648203385554817056305631406134767413851773987159326119367423379148156111328012840461492631091722028875906756702797525924042799464608133402554208064297253390450867852164608192272364451177904025130276292735314372902722722610682135268601323118261431667610001563245834855703115149556464265172946330899802720378555298671212752939829463605135290077615040934340234040082048946099738795745582808603541275551229251349189782528219920559134821047000717814583305431359790879377211998726484857119781315779264445056350604506588591673334828393575292560514104715341194290621300254193721263528520621381325638937378931259290757461843829478723423701814510886896500648048781245363387808053017172594781252998126744380190625324175476889647090817383205472213962898094463916572775750220479656857057584233714337274211093800870609889533665362297357900462908506003248471832403648776980060688884623830213312920917530025944921277072931436182988658215979151022038213079569821960288598666960960693427793316111241984467413922983103764485368750722767839138630828207993528566752233091780187627233009842855473826015813719410083795736934368410039851414583332834659364762436224954213795415849831609666818413943504407854525281411669513062475999883621623417759180199329242146801699360438120102739533093700017668845378452693960035821160935351330191004286156176833149682219315785715883915741932754358343851823719371220983779236387619967633589756103479259969360687309382785386626165291957908099048119329608265525728984039793559238241198791796853014432148313690446068307432605358632498623961415387028069252490754507552001478647442650494518615838563859285375547685385141028214529021933015957210671472532108918290754762624129286966285252346292200414083631822955198332842001276567259147592353736662161673390477426646799040727326654055114408791258739837525682877555553379381213150358164459713607508539691535744491976780364396881736170708284869825283068135140525996267942032717483674694083886737055565314392533995619689401632173794939988506296020258627025963929885518736137570660506203916394036784345461382925889227226497796200254309293735862293098025867959803782461318400274577264689296203820408778694270656686579078486270308164861833512033536476968312415202888634123160285274077143272693497226631811964368451815401502351077500581858006650801230320775941708992957940352460983751248796147787825863060875919028965339919623904200746826758826853022204353188805692408179282710532696351589268658372051626040968267874752972454204113400324683059010436731285158961231932090599020929749234928269447272652710607885366104944946228235845393853281379490925262176217434560661741792607413891612301949194770040653220419932402378322660924126634645494899768260250046559687786785850692553176646975869594767135363918544469388639016810093622949751786807159497692244653161160428292981289954709903441638774360234906332661940807189153537858133259368659704336050889229839863176253829900136726464073661514762360474001130288702609038629900571498414834921603903680774773374964651948575783974759685546954792063924449234081039498358432984741865193645429792601059131667925309286049077829801460018229493520624104568192471420253355266711156990016180351613096098770451266930491332039588808622246039548522078470659805393350524029625760479163320797450125216110946492788380356889945561007749427953495055479656545062978711643887990987415238621167708427891934875428724559043501000253144844270956325531610903552050459333723082543052211513470690289663202167695616576495907380955750799862758353514997869437884544376980284105072359901399946205458785414392698467785415571937059919209246527777163647921609116450592976598693331774373898183600248963291381721860280891368577365702749334418017708608866627692530999003797493208261376984866167196555786834217902114129800792759133721362650403563916040617221631197406739308042768417737048381848253431482126709828792807448883076794941175668142352416541259965591841201353589636173363346853377289457157758482526096986751407940618396977449588368559354698516523678359770067747140675466858148285668341048883387468437258579836380468721640654015181989641631881497797224373756089369392324615332183991715721106171272763424233764263583898380880876996734393689443808546782295435157291994536837314352108654978364786994419310427072639878264909931133670950917263100079859602366206370236882687098609866574584228704527806908851045230847191350791519682932646297217658913088788098237636048563204973311980951582277029639802064132919655668082367864657715129449364644480062374186781432445271166439285396522378455581229199829905953595506343025360149678610993499580228264891611169162000091766582854099257506677780937547576539885213524079039171940840052531499853188284833234729643154504635407901504245803931189357921247710190354809464676346734856309317718572566644492346764726147263155078665792900074688891337917238743429750326887759172459287456392814461418693168340196347861686319926502438412987559968143913595383625036655901791210017211433379603140330565247148997870366004092233202209008461611179255244876722821380090703033876925817065983305046901298255872535135097078878939791286248338223630844532180063860014129351977839291389700690148560228227307304786838453351200305053932000086511239159211651107119167964917105887129785480165679518402692438701511912056906031787877821259547579927508486390032081635232034146605446650198670969693443155433992208594872923596860971390653689937827661944535851815959398119889438700175873513813198309433808504259664469695966053577051177670849155017948608906102043693560165968845933246470923496582194546775406187146048235027799988553052770214745770213803656666969499568703201481083415234212121310675656258198267140185078296065421573950392156300398928404214132852988605021178166120420867568711533992048084418620359919311402562365908170181722838835144758192289604335085670167326854016914420511299074674101503906172690996316186717849941581246577893716909103179219886047755646460017151420963830996387873410354972018436732420939543761423469622732108611623356081356371953678240861929887827865696234582925573874207065713887196858641117140709530235559625060330447500116908224997114872616933707697166303626605064900674631517943393181857367550946256439309630246295607622198249593462246429475947732136315513162031674501292850166096800130356876661007043101365238609421872722123114409059190790621947653040759081450307382524343867501261040894068856133386522536286622450717385868855942742657111814903485994425432915686667700634954787040568943612537963825778070991603612107440555227698888070002138697790811131180900467839855000296618935432684892571825038513870941043896885537608978996105252558904861373919894139164333736475814136019270958943370662382472656318228744107460384062818044089012206478710006181614075934397268217506054804910641274962600178500240613018712170412076446101469958269412220279954426972281741265031897067055615299732291574351617243139069737450441134714528673648777723684681583276052319342360841085775522220316023940941101572147384311690393457702405989103107095060759336163733528365631173920052958056729550983711582666038246478297726969495377651576643902560733678444672590855561424263382092455042765913348197517713474223206566991393742654128207275749991441195208120237033721050616105225651664458108037728670800376534329298478771011999953397124001547190306105316540977547394853863156865485446932791608910282397808286475422532900175367488634761065266489092463469132808966631848986668650263018661603143473597477360156432373310931993554562163214973918151931571993505836394370739809711953663643719899865664561622334233484209987865903540283691039096793124944846580840627461835141330693851303248394710570452616442309605297387951248163210475597300384143306071808017683166246343430619183441104726026590647461848818747432983548304040374107663583309588925274951656941223054568402069812532833995665160736792040756008977251440641439104357956920649861811623739749586329962729094365930645295321197221903833651321508860575465650950631091510100050443861748285408516854973517749362883842542274471924509862578159279946900602943754872860498148204779180131933274179852019924795926180545856936694791649616504242085353708636403396561486394495591917512798550764774492208446708203211105466974717852033920701276898210848201154795089935072691648974486555714954899460954270304036502200838514139261894827483045160630995145691863450514312871236724954290867980696609821746475110262310611560817319827730899953317291658123833620513543000815992986966074337962144240984087805582579198697259273705508784579976583922248914460130588142744458901906426489228435923427763240819586885195276752554683215748292746155591095238654026571521794540473211645936463199141071395506937807061956157716703837613144425926746402489667338184748069304172369375400642353032973009377808254445542553182845549982816356613489766839694498835058077439519372878800150781142411383441890797012080979294925330520874618630436260430235588352301893060609249041116991755090313596796654732881019483410715556365176648095600017382758742278320110380754022224911249724676297694524832481536479185607090153596315578755283346060037197447134211742531397646269117182169080922140726282083832157186805943474266960290396563083690817891931560029797422711864899630125734349625522430700368516897334598198826943754036650433691082705210441928086120196374957908130208568360242280101287625785648136167118378590042210395051404523534639708779071000086454184902371422788539340521422442440234213622932086723743664958546793259175536616060584876069099423113528630952962676235394040705019606478505493021280096605206345827873293986916803219983239891772824887443775219587468750488912489976428639334067309642284220376569846610976374678245218268901173701271470291115991013245322250463759347642688705350044633772553094952116467942487036559016290421021635404852446872774561341508724579797503540211885196500969882926682924129063006527381850928294794532853921030218141948587439154724910350065022772083135616961389796097140209182983201494900221131534458558061268826268049805724114405375470188346016761880934646219062967036549812869750605591774326462999282550668559480990999938284257097671027289700397135938820029836980416612434804844253474053226147646224739255631977880202187220939306621314139153379180815825482824882822752503043055938658472983753344625697085258793312655844786376423034811283515166265864293553567941599964601748124270921577971563708651002101153410907843869322443106189384345678686584301501251251137653386450981462235959947690938734865348324372107305511076466225967968672473079103203307019761287226003669267116600124266719374261104502610474364298013953126236975931504466940874105194409268276991876139971586240509168702093289259751371712118380060552138825522501916536599463713176310885388591544180518973908923950711631019780601835208401283451948829435029491615743061884352234385343334224633426211250545558802500739718299898293122757617951087787658353388334050363791193153697824326803897961952068456695674425982630812752989516937090141228291286106916106669790714912753858666638340911964265685181808652290512536418290822747019855692464089537791496668009760373022925319854496852648682287281466891066230491840657007292324225896224947145621054471710444185041385336511930714582911772727474238538486781807914233645218046744723448523181259107337594512121572236896925167222239481029599229377409639597822288690210876827457198514303421297665454217909151058700924562972821089527417004967575930455923260275095708738306594812868612415679052430435528805467124467412401075079003997061691914594545925463073322686559806059727320146224586957405873733894017380554753939630913333642034431685609539914100011603535410649769791511127065934989010462130106284753083638955629334913058869193957733567845173815326900775908396197085106104460515950670420261756902054452624387575099144910017425028560544683737827995237720336516621516217914189846812497901941844033243422418303862118943368400352033191048532288842348711621073344588951509478461454308977575526209695426271781197660133459815851450126893590229685437211903161916281283412807491544973161072922154308231548528642010636351744998628890799274516993301614552369969292273932947998071250313139552548772244170015668261010970368874677877833358402159457012958045054411076861582585641613330306004492123695696153345804784547319367062817745313788211331952837609225424401383150998882771686526547021633479435937633605513161973338161868255600084019534310523455315810495603854753594292283475095878239611370371364708080045780632958994294245705436770402494811966143205662591937524612587650080774857105413852955112579610869381015525148865698336295946775442124452273221233034937735646138354333423046891453871511781872055862269382309815662855721571328732531539093513601001569945353190377333492703481084387323485733703549716192194080440765872288065294489337157798545909637153599240756088684959982990713731240845506912100142720053246680840554792057348623868842717315289244478098695521289744994179227004401182640595492692689554720988152372069831064588120864826266215095182118006034056583517692955801742379957067344165021404555452408281220000684947981699819336129229287958256568464757750542191282347476518476342044884265880185327267887183386426993289242032792889485155697948804026479644490895737422953266343985564902077888482035416046994332187471310085911329876126175000180894871942288426779479514599401283394404345994008336260477330418924008978475320701804301300650051991015554841794621178135479786226364670813335724363884174766301959645733113158402643097967659865519028473022960707681244986683642569153894040515817886478387858310879505170358074092104295702224917947751250361626816786346521251924879043355276154766294534637197673840073725226129865041835313480492762454002375824270676030984616648647955338443879630631534637529323374742193234863270752408331194276105002037029089535060413634344433957627269961336464806264209340034768749195631817786463968868294381604997384338108904503611905857025818923071318767627585825329618318462194060853573934126555188369947177433858588534828471618013969867359341360084121314428486975145513179477375712796894707440311946765713925927743280199981150164649265712615109134531852908140643909333759860338943556434576460510767604760804115449547230842046357347777701489016107768169852159439556555182497515268835355138823764791107266511200111619442640401028858142687096269910320975378145065021481059937020728375612819386736598521189795042813170915970683849406327442221162061969176082776836501150314114574384621389609121299228239560309653978453941607617577287929238051620620797159695907034989096502489661039294869549458982430781764505329675346111053401101392340537714715997750779859633358934497382057937800443802410721361819599602037279696112300463817161930657571186222534653956646017681844828979107641276618782471884231069078182753700790746594363088832129402293550618786464857845540771333072571417665601188863298160412372289795275721017477663879190815555379351376866507856250087260376798315759482318133026853109568309037036116542987227857215551600876813605981997850717325198043508428192079337108979042644078880156082618588014738632864562521406079748103888524915510648044890935009897001236773829391603067544737450066355568253910355191218056275430783966973230885720228719745031111790749411094973618464657644421999883251942270622844620893169313102278117176215821525651816953583160068037129695542883069521625386690524340404372643241791736012769494192343708649337063383131657116136135231431639543850978346916492249893421398672518816158156444681107231427982882544886238534573112461426827597852523031315410111530964494055805710251355713877635975902876421314734983131229643631156419145005013057015079237094069694720125661864331985918482397881617585227261539051854737632052997675952926899319900526696844150097154546115775652285460475788762960826737468902561631735010593467499811254262785426570411961462611483427239902894643885705049125287252701833231095023856708651533879847925927408660709614384849811662478937237708647271523254932124299073824815785811855796481800643690764966766566702593756605939104458901624682988661081268038564597104937407730521832589082705807607073434219111446507984854607017819756329522583903131849449209903566997889521498699997977612427190449471941328521550949082794482263448656273069559802109659896968256736982542705461917967285213222267383371758710960201532438172435482591326700138174180844959152770417634929681602432729275064610236678963853979784109160387108633289326362525385723550996889437785482241998822218769125391103547120071917340871195433749996360052573521459080191844799548171822146780310320331972700188546020185789683319832082054170670316158637959946048761535667708913527260992278554852178934657664830328867054697747638982319245012762860466475150185311298902436535793152019843294454918513962065415320985768341362985809701621309180743829482252287508531783887307610981034339080689072081734399658906154938387509668026293333701646989240855254484836268245674028952835189826473692638976671336840911416057262284198618017902039268270817567945092061251017385863343891855028167457190019935904513677993753572321798006067811533312066778982587727756905010265751171051289534598868870829730832304998638420354245742230086574155327129936563367497779952688950241345687652080973771079090838025046695193997166691475599788066487552715126993798112215341045283108742518812415776444116560684543266266324419750812154930187622693129775653953398993201082577155617070498749929589585015615445762900241180729160756318250230549497093226958643084152822927805712590531316956077466150146474683915381566621531251378797731544143070127886836382827632123761330314407701766886014109903016490777094946068783159498767090237506633153109519502138235500708103000729475012092476025355574264575485883289786296754875032815737263356167090438262507608953832184192702944363371851406587631972765551818469757061988095842306635389917815925604417888162545344472884934913879569227898578960650672289264048140578787382837575932356161729102299637529950325118738224788815093764728606993461062805111491379180349224989139641966077267199313972137538869304469858313810756117292487391756822981853621378829484279251735670277587164492868064582094908366660504362343936826211047954514103259955570507887599147737840905557430358183454081170745015511063780479223382330839754523505389874435500978619211387309663539602487075258229149367490339148476930202301709169795894147362489337446399903514030547783934433402607519180949232754916402228881259943701590002677924562884298719832665935577666819562623430611121582460628566647561854223817310159276775212950051186744214580254568528495505692730827214958206600098877148802615670113779472208688165744918038131106042349255897732907875879830791530219196698421655241880575326042400026752228287515097181602512882371572931636782700637504437093220515334023798881625043764029295579686517300698004304023081980115974702875029680374974547732576181230974337478803784643684320070501773703442433081224765457199061778589544428448860599116819207600693268818940362171171544936955408425824469443241340550711497015719852533261754067600188676860305229906205992943634530978890661020954251199637693432913345257097502775865652987235254150208084065178610117103072550320732367762818265904487631845611567254512303863849733294755609362067371738798613302828190066120982247155858378665162031541789713035769820431556684732024802824336376833212497512003256834293440557631867809460479352648645293764559282826027920121581464169334833358403303703610587937994161142764659597924455739666548753171520302719432399012969059677173535266908217769457569810574139354265399597043250505199872617091172557313877632683626891874095947543141965266549451539841019604651145291032275538020400856260957543015043524000545801986541479380560981376223954182550317674234397357942503017361685402574511137693911170709436648906824537010343354619448050331293971496343839985483030452171568953405416101613768010782541206685847046163310871419976546000947053276342630677194738199233243929522245576783503648441891196463193907205708353594314490995478080032989987112957291416351889412590032616374704577846338833374795964996609366924745038439308518244291607505210343756360140107791061661526716511812849959039626739764607926675011989110414967094835145957541814232292300821274161570479958821378860223238970801660456710768576374955696835652312886317623344573671757099103645271873333940899417632844642774220134335755048015554737153084528285469093633729631902489900644239442881695100595599467391686664448537269717333551099019063618900223080018966593712132947304964449313144914618365243302930693123555209427585551089333542136094722519969203939855495439509325971865543893649894048688410565688548264426248806542377448154894653494413791858730848806505994060864056319435693977304357731126508296675505221847432159588046302908951103596883327227544485483097477379260772117263941122435831817922928828495051660934562756426043694159995014589681244879334698889896871999783247322865030856269511726703188764972984539580622605607534331170901732064390180504327013661484248005198057313580406523862670769583607849308570280824055260955927777418482359393851998059470232602874241481505860700235247827494532845607870346824303633780015562295100545687780105540671839172638080580652206383475579440143892188376671617442408623726173064639114672681000296548511059990512671934558668104936328526539579179673941437163990975205750457836677575269215356706656469162702291432123194639506507704890466720155611632928305320075451727561695369650556653349908507438322293256448806497302454986046191406508195683477946225447012663130249771026554614423788507107120680919556355681946900721163699631471644464917209893406088359196764285064542277556148186128198966173987513933975403682192463675658070956341897430967916213369598618543804066547133933578636783518040978838366059781322648701921488604665853862322691986052236920364868789592420542012069110320433174309048309854564734726356827897193720093780568994755553401196848933921648703117932991483380894281816085540400158275174321207254124314216302959801675723891443012549699785554104511414064285499822675011995410447109967351820197105537533015681768162945670866444736412205093408973182828578308320658162190472344841051950700757283321325504321539031434481233516299027529924545279439609817246961474317554365517009999548625853133270746854476416288421567350263179700647835121598748441741163922825515476562896991650191058385185306889998518186104399442694697513642306295894601953277406367436805971832870451861677354094306999021216997491257920362601337891659585431559992368950962296297533523921506345005623929422544325901824365262666899546151900054430684679271934653910710065452049622914343364330785136226169216475409600733249505575166936105460753276395397987321408429276696875990935472555151149558479338039068077927112300278612200838999424364271930727202886364458805879110989276901772927302193008220711826929395099881603496797518806341851183110189084930871924658130610638890456830435530571570564979927078405005678821234925765950300653000780177770887661066415274997511520276277779210899819664681297980893908253294038571903397679260401429059685604691024774082550342504378906529135379908381716223478713993184994901000816030038749318372917923927353063943385541163390660108996566555698963642957589486740424916293641605244117660391488262522958909732318465119737098313293910196631275943793005857143556267303614114345986887823479122629419397435807958666085574500743967831796496060998370482840684832118881644346558443071489069559662085680153692263098595323322237662541579619396195109410237710475139064205250423884650464703059397371891304405087299081660101706191719781576599094817195792025003846397219787220758672084465352163951831064093567295182849174364027242596415140632747603616737170327401185209995906839505936319328280436501871588653043880377378875760305204228768722559508445043125474219359850989931866561345235266878497456717948416643577978971965043879995554918585131930701760158345015517287558042858461180316026209232177699109509572088344779400813785121828460523547330783482823982775038095571042438587642297870394176626175607587915721347232937710228272311664736016908113286991352074792254141360688092965139247455030237346237489438656085379408145889399341625273767818840354123884519469393397200575276256293439899167381945639979936414951116642445693827167798448752579554259999867093369375708840990104244377236491979068425379772457371245916773760059868885095815450464488314506079253171778458298214443919392456934910127576963796736194375764764633745806766514819543857029159487664319004906611179068251392496565232846483424364851997578056037905281210779665718285934999889647322572145862205843406698729395763169194339895329680832089891588761677658571314242352764939593037638576288893699558535707077122719319164092840436607374478782993870914916010276130647915521537608779562900338613912297063020927540418754364996146285840079237845868551972170093799911803487675769316603939965159143616598905810191797004816718336269574863756844817187717924736210300564110682375075925897081055554081725089159039717242225630077048015055038337297424598277546560795259576365825582738466065362124201969073342018196438810098872968147674781343029215101929580624935934667824209758595484308400169455509543236157709137726127620540455361618341863593009331530325442282847017042712009503148808038805273883638348378045791679124234660122748152814571780594956440980989691683608694084986146169912479707642800766827527707584557880182609596571374411311913694683116620481636968664272318062274184209839854594820433033676488914187392019105733317282081882073340209686003626428842262257435565277957021407825007597854581855078281565364026244999612263171335689232714996939903495652337531581121314204010645962201008204401752361488703092065332710235534747617878172241387551623563504162563812451222750597622810743955375593138608252068232414576203489233795618226740915026975635088988074677520514321754009789815848721919381947311497787059704804242968043166802348114341603980077083687204496292272857776236608411888756798401149956317615629257492995418754884531205783404091124829876574472384833220261897606943737708267094188934228822117671897942248605829565114286836646829133593406376719310459730807821996248659442768901358960818306907788911047171732603000692064058990410909869767463326525946334709891841501883880745259125368597141677555490943658996100259201044073064584333874757329433158794076597794414030140444019405478583906438200209913455359145747651713272755680743814611932544507206130054309990178682747742161172563723431043219497380180989240360803410508595073312364981790921031497756667942134316655676273734198286130682607731124428107751496400284068002306000973269122246269169338562912632827383193171688945566517507411876693199488102707084096192439645220341371319477681492835111591260549516644276482468359761617987772458199098825083636529248636537194085808674622112777506430417188585101297714145074400803155678885527067660583823303653893462793784969355863611781062932208545105859747812478448645186147078342193299060038756363115277170725815557983912998537376676795647079159408113002535015461026490969126383917512172297478435782212813001525283947171110672699549881022477830155702762388664174901277323165934480726869695641877862313964186869679984390594753555327898140928720765140925805308720252045071505752242860309597288346894618296682619277139006201194604192059331679229284113327684680145391332416661456272626801625379810765617313342082939858717822960150992738154866621380787083790739894570126927103362383367773066031192307540112948972609521378311974228863804054960788581411411481884651393218990994496862281100735495736388775894201138305681318893349070483737149669050795427856716861428303364000888013775922583398772842351737606202635468769267269977973683963210363129865648202009853394820154020022540019690452462407529701598080684747720016788571910938881946718596572379356078648860549607436628145620873077748239272317328976330448686394895251918460635120896730424519771252272752375953964400786284125400511867411846357029407903064068339773233945723971332373362122500804565118485076702310019592973294022617363191378539875952512458804910902377152490242945325434993572126610782868668427435027679784096755285324514080244189041424136725176660820279644533010814116375049063706990238256475780154207072023181244361685411944890262480873267455988591207369422731517185788768950495909758783003357638352691810874848857515226851713918089884616153280466449459580687428866415279604618567944666680261852025417036400500017262307232961551376452262866749559664919699586958747348118530476444429482047976405867430017070801958859292902029686519135648014427254298750160910523241632844514536209757412770913589930802366468759238553239311055400448488834668151069131585777716841030295480551281044627425598682073430316490345376710811471220812098490309527200918815622555054847406981596166936517092999840913453129514909486810923057391241307863768098448867005072256020484208595545495793908514724804496063299499281655331901354098047333730296695126436362938511326787985285069035654221197787054524271788951055809778725517686783421172887392366335887144027609042747507985364633229118961985688080585088108386188896157823549512374869086074662488185943557843183818410740644878525287927878973524670669930264498775758800702510146833123150282930118479104091699830128991168829470923400159217336336791768150374823041661326368318724110496541673160724537320242639177077135075497345290185617053495775670658238276868218837396009754720779983462307542443433792010356402277395912370141247014882178053324036770147637166534347879980973609525122324793604039937499160028688929151604900892138101779640979577427779470639965220799946624409388223820593041239704263333422553843645685641690717404483551993371060034683643451452221349240318456608132126652407742852179555989534842934645856607095587973158957837398032508746156491713695851154395037516884276243751820801759467998569525081724594287405975028553065744993261447270113560914893856594871161677544904361855441215598276205825393461101956394189698380700712408430691293569915027482471226523537855286604292157792769005377647360110984946329341619371482187130527381887620613027455570584768532858804966093412928270786578052401926258190324980532735099299644154811387415746883997396695645380305998628933029120178644628894792948570873334808646047826344245792905598602083678562039837870645388061611240282299588875290032636393240804488133497032741279642793129886164192895056854139978927551904702799893079671132568871386655541051420082791826785464959803914565773664956044064218383797365092461410854245449142079156202183828412707402635867627483967149762397145957106064027369794681859556735890015146964459495265066193989418515630273515184626771899458041309763873950593784666090872480970825905101134301691784462693327331225336525465113513003380326126187952352948566499600256395372360986255676345975121602554654091973822966718854588833207550224814337892416450719713677075930367498477068386438365430580062584767244284197063679740642352934845739624702560836816698050954734463059623482537923096271354008235770575345298865851546085983107475289975257343442478916690486640007366769516701438780845860251610603416593665736802029392711553379871662659379576564394825815498649400318014783549236027887805203211835304893106228369671350589613250013944173898616669017857665747589853651867037467757831354170363086893720667773510138124766099098223058219859255078022381705434418313548278876152914133423683923782804142107730670572847144217623355228209845150791190301179512798199278600542069915341461528540704699243416855186182255356316825793720288095862296862504821090581143233985766813577459932626403309872277963582781942818521970328579264121042857811293677998424275731209201095050891089982952268829658199391570671656969593005763969430490456151264718144029299271364628409060723087058151472990862123204931219795622008772314579277935510474446828334932958142366043116954613756174089895952536365243472607983842938907107659742660493424889299145725698749420905939136759641410689056239857310530307693452758856568610950810891195159738978016404171566797312568886227852517106204334062242746128617807223869746398342803584552687230868751290262270366035419029385283773998375649763094850140893417587692775617360811560962858434531058407663798807279643827951759637312042549039235201225135895530055497312192394141222541811422410545096083625145998988486984570276247575463076738172210788497419048056831787810763700797185996263237675274868912511223608825835140004596094981621128184759056562627603939192430336067488244483879596551179530997452457317160751540706274703751550931711925941178309929297875095895416422244822842639164334826638938439635563113074764339956898969114298207707190255436172709352422645084929787791674672932984576607584294929390029591417596058769593119939150056765539650969893863099412584972738503757707429274819890178926221526071239380007456474841711946222084152122057188317760903583764896211601347615614829536124299042837251949043288361870059124293630718486735191655913511104008265570391026402275605037879271436566295215586016224595648662325907922305469930679614050616794980836762917037353266775742079554080956289377144177532723805509196451755004524154575318714927266765768777946765118272235694191882232331692321242928043327429636305121854641358173900565091082175552610615411228708498611075208195159549106977037694776756469827447269852686264004111487040712200261192358462116721595673361942847357031482723643373230902031932347500198169422233778555487515309262099506232975245696153112228601059806295022762844776831342696858807236651696041718447205607883364805544647136680211889769797658248089876061621381743396230709515479080589615359227731158214860733270462982120421012818274212441578959844511339374639993348390571837513497074135279530933589666290729939532526420754544346503184007785951643954034946309677110562654828048585814826012198922882386618481657011617446903864229806891366448387072234475891300246845367546428618440617310371444823047898349585308998066584085638742644435224906126197617270953001001082703252013288220048649957444719521560868341678488135741957645230842035881106100919561859158282157392966301607886386176371039509676399468781425440704461196152326591367011890761839654013143970857334655784735677758765245389225482560883017148204521667909619283371159958856704944465418667322849178526524757960766235182006838445348919659716538783916513928273835664621869100751124076741299374168868024151663815956610073376721211650546358232062278668590012608703025717575464348260330742878994923943790872115439097493699176890181928397335722237640672625222284506247711360077909468013095114015616995798263529835856783304599631775218943087230993577390436755256208799084328319731037830196673596629612426147677416391039680579213417570994185882606610206303785851924992948285121184325787869585652943112654931462969966581346298697296548731811232430731512344303395045774952966951586009657838629772110199416977831660457546149625585438955324093772065101484532480082323486504767566739598407743271804265320665598146417865168543972607213169905178374802384460327550662601240529070833333910806065451573633574098862367451751265328759018823312201849979601638313581477013905076917270712617088269963087537214909637686696917776714726278281561135439528545369143488157321481213286052783529101307240189270937628341677484905263281826619468728191901693690164177609349233813464439152630602286743038162764855572771245454443896928495965061784273495185321150525612743285937610431611747601558544495465214876485762647198321314144554545522963664204210749656488934275620325079595037465810473839599563211931891181926511133290355372392509725794601663961579029377280353095082199494920400564346803351112453384664945741841079518925415958394247588103755733150682193883683336682858304104465714756464738185061230571778692394909995828633182338474847274002194085388145283664400979364840755398218400840487306559868563761930264332549612734425387318538542388652505666396676834285107842619847188810234847826661071796388709760985697184575904397553588916967917282846593857885989016875723701778377298808835161669481865121831328630633250356950092635670414818207408716704169703169528354801528075010369876222863655707340330267525389112418213670319533903315030760556080727656207846919515022928397638582029318840247321069094854437044694312827411309516163067371406833098339391152719559799337818341439623925304967019782844297264929906940765677630145690817013509399920495350982359060253378554007650720832844213245815660703186366693693992259635218101472767248511222615586532600348712165240482268154784714350150064507919190642528727451740615561891654025589435173432446596200181567790087570041387829757983915511355811174424673676846764666364965601640521889201429654213860158737290382756198891657013924590525398339473513961334339313382216941095834207467681942589020373306059485988963919841719491956148262171416530001476161927104302864868169731199215942363084354070774425890600481989538158909573242064417064740169963358027329769992517304869622090609318992552685069047789856327823899924043197827652086548228276232598686918729461875800896780958973682907119517603319639067586695610789594548849536117760843318154990012099787795549164526666751140968346130947643015405582515426761204786010564369374979079504633835299694361024566932625972458848884900150193595271974352235860551253387687669600223049982528701242969681071713967269205471631668312758339149676106764686557274053794674050613483314626828562551260510259856339024474159426698127395966087458511075909987600022600848886197606975875272999351282008840554568130341310722705659594199837854760173841668527578577432031336008129846465888969123076357428415616312586407901026043069903419895182810783113414741820798895047833028914426583675244529735134573553400721188708691181867966434416543904345576282453403657114290859952581589347661625262823318995307387835585098056609825000332103036625895092720236800588462242236408705805964947961023310700429838844491314408507171461969043445621408791837199023833878554624037342556853525088509288336901461808720071022171052832464692825419040097273641650972371837428610149483983231343163121344801841316308274173588240885743325301237072385236235592812821097641886803534394966555261602617192997173843017202021557997622855539864372292449794886138592303671909414198973681581840217039841962068716294414235816864911824285126274675351984491152620636097251945286101448649697204674017476936573787645915549004232423811878725504308504600219616514487129725729822218311763842144608554361529482625936868309473796007612052067894135362770311968988564227025578766477219244907725410196047872729314227762269730261743117332942139109906870458872058290449533188968991302341079312419236100383735021477166805654632653805019153143564375360396890952460944998027745171078442308917411409949483722785624580223383176006154756504573689447644085731920643849128139306619967208996608721794768542454242473491304257849516796986568815913666202716009038405540020387725719114958366895793916769812103033375095016384412257776227919973141785098601967964536426554734006199842378902892919670181147189903624330855496385524881980149773670018930771894475670086320280465557789061214469311271180753708358238467814410002187337479457444296796252161483010210743384535511952697689188652587023316910552010278612415120988394631144973941581497786727435560444354838996317778592366736731230678703148199069667556882461797578993498833899080455273459654995203536941984472639356865164250495225886212058654839128340091317775596803649243018362494862582247070700919114453831329245493943153709955891294866980985161929578614172228704468104714395134230543666278455079640804072709111908007198451625819462518476762755808077836661550792371012294266079500934121185914218333841668921224934434764147307935968527541550130107423265609852382879774922694674743287727827428838847217249859387423237413891877501078021914257083472647631642766400096404168812071907118493955839006043485371693312466232187806574448727426986962669377342860890700696701584516790133483422016205919367896761887874484447391551029299825802026788050990668113275613229405586978148607969815412636835011894541643010458952935815546658319843945224307229305911518437609161617250273425967867994942120614277057955895070607756109414686354089323969946531717685854324576920352667371021059854820823023294253872318227989312851825433920125439425690770296515196231158605089055083956196657730100307488274842218720257843311401785232236926174037817353101616748847343491059740563375846729480003595589989716704490154025351546155852927936739699987340020628204112626407520451083322028767030680352310967788642633510044372600095837376751774646519311709834417444197183365017778617158272864225512222026971154886244997983219667387120905652986155258864512599833435620877636235477387950947356056166101189594243885701780999483354582630277337285661440362078219734983551264144752808508376273732617578174518800179035449838950228205103571305631167768749048583585620142759871848763768325778795126063373780690995878548765967697345319517908262303518070708261189410198172478058285731183171838970357796353634285617637809067601616889948981501927388664580676358878984520328529850523616928017692991764561625753833149280558794497674279579199599113413668056699634227695218921376030672037057330975893427574470047158157869663220018387288711297305588345987821764902496659174171231191611681670832294427596237313962594907556442201321071681463445420413307124989218309629207248709596294266385670079346335701507679386964727639241018357955465459469419051247579829243977772138834557153906001220869589598341056539495899992684524561706559777223999360591952449690837701647549063103850271080861062936148830060346797079703275577871385045440412111460512154366271687864782004905271911765265958245478923922864767459747728465162514879657401643409070409144541907184192014316505380839061570453706151817490184244177739030229675888279167621644501364066503050376047663141069542424449044592642979384588307915715960665692022803319121289702749162109038251903899298643735716538684159883159096432126139895185862964344650052479952481940227619560120302107052343047806485270534361632107141333991328968206138112651506987227153987856657656247440277976089637365277260541659035691130914048997043588208284505353077075993906481086633541685009581144705752355487994411119698054558775990527752307112823410692836080892717876481521800838442408281764760826611979992919344629007970014337254926524053514716383018813124769191073266152706774586828366950411411253756264085414293614407339852982645546913844194354663888457402315574355109808244154084454145425985425543110973805093923042902094926682142601514695787279268947223535606035435455448054783434307482575153121147126195273944264780834809156067918249278628990893252974395915614490141936113265544111566650706037704049553089167122316189012593771266522442703746737167762621135894818533110999764051432674884318712059087912434750864541229191831293389138611991273522644947683508481958584709031297387169076962025324830121870254805981726134380215262682901525665551612179330363619445338899986803217670757602125736533663406670317826968701181902311041920770210382535920524855117631554879039381666414456181257756516198572045601230421282883206933856706099129075690218674110225016395710350311723993479107544539865934887354644524673644574540451731655488134090199944061561745236986532717030351553899098109725009432585665822533379652251739315858604270176784151151403849889552287845919897566439462576919854923984040455779238773965768925776567117196390912109890295844218621812779508582458248933823409182710429440281091740273165534424144150309438867196141353953638656343276498283089691715586935225560746738141433210824182464731079143363610019501053841350385670533224170650456030409961560540310146238315707060889687519296148479853486421264929030078192293547986981062229781012659271419870261603368594119056582426381560845946543043390279963747243086460693090073692788741997633987128737117742084790388558871462848146160411811771345358082296041060843132472153504822245606426438157051948536354609383060055298013122042399186942169481167584902249887693655150107664824207425049334431747557528070477855297887194666590873249290957132243591321094371981936967151652628239916944633543605659394471056618853229797133283897690288150440489417077962038264585790285529269402221492599624731258610860797338979085665295181212596037165200497366846401265716516125225000281571983668401234887726973177008459612658902276583643942870954582782639640820813592400903130090080808531928916059549773358026762916060309588812572431182823056665968874928175441278808241098884895234320806441577024833825476575790521637414993672259370240972285280859655601357827964077929305380007146486890810147544018264151882961837025850218715140432717804250167775011495209063415837282840912537082957585828429874344069851419615719365057424542094836513059292502560795246071160796627551737601065864844703449520156624412752349718378500912918224642885512164411716270780327375730760659028300798162235733113566571680081150394973922932576785128807295363886694754956956961293605901120777169422283804575612403200618571040037808898053771220921081746606513332372893977961258509006215873598868068970804183928093668408462762904025573382700756328191784794543586608121481050460372503602447780680522163880864908115063022853496755920516752801617989637296347453096369494137159126147883710386037842388213510854927301872055961769335249336645063733224853694088984125286241418618952638050269712429728995530477958535136632814380600520598909102739185756607730480684532865932312730822754683284572777682872584156369525917800053755731314663511217610857494998029326193886825901532360083159299039904278191866654154305340659600820538428292919304413487825691951638485863508123579280621132518023496464492185759033711116496936381831798710605855474229719907461939726972708531024501531954059553067960272268616263871438308331037784158288661926984141755776798973708952785311972349303331023947952419697024116784384452016271002508707670492902098996424664549252280532081524596615588472837247459978072651008989054644139563017551619635029942477347668503526866758474551318313901247363309254477279673478251276908985386242927306085029415898612790516247575074629691679528165884164476069950910715767330357771708652375556326789115673359693945446572166100513334889195979271332452584056825679282617483104853095596182989619406970098853793947217547872728971768300301455042990037207653156573549204285411413866041103933539551239844222308903531855413339586736487448338501637412845511939050258138393855751323414053410555462308517481999213284853690472218667865039530612785846318518818651487460769803711550436388994150547457044514347012802675743628236559552333315243437548735792386232455876861063624633188086548206969040418182672207571086360960402034986113470621867938561030703455738659950396419966155255707550200173984205375530971612252978072944429384418695779515770854866322314560613651999230978541270582961441832504873424131913002980547090147464062138004960585543361184459202861081748326407527201699962725007949234449717267737869046379449318243908955981214474420563838878874874090354704966494835292597107449106252970341137823208020723867218390170007235249043157678781891231335326407042238569713369820235044631456946108262114164229236266493570214555651471210601284224855061918495008269272680459881137416804435150197654384391460115430010991688842439371409065928819995148769101932292626853703926935456491579264369078700408853966883852264266182803435029454053034328341711559653829042695592531407885112831394758317937053465037754283436469690513218900108493964566338526635674127412359426497288679945555518413077525548880493555074228315763539315239447764733950896208454875185671996039091777818573528548455383714845321373071191661262469430926387245841800712972379193720268724536517440818021467547926825402892034586747463995924664160688468444211703219428422829198813709922552929471240867381244354846590938867671716135316201382868642881437214426812927237126358998937418118238146308329048994193666872679938192003706542544340921046713744874344313434778572839347960210389669363072922077797087064378658731290968129913161585858162121394128005826114183495075344357122379277982380142516076991686190557164752374148367419165362407555567736612264992975438278968071643620463734504182164947694922617746022593063718385253720919827539472219065588957015009260174492936312359995814511960452446846795474234260246920045638634204781206740513674742138277836581720909788437758137315067799086815470209939717874348898209548117592042516693510295650010851612728962899796939296221985038658592752028270302856256129805821012332660365485222878207454580466790520389501897002739402531007249825237480987291328693567545345070989551911893540476412924169031789671495381341988532030230028333139298522486803522848956058206831140145659031357330429630082042621871807512924934391394537403449289319569931828382679354851905215990568437289689941899690238275101277507602334418461362695901309090072642383165958879558614620379290905371679371511596068410001509249839456242355110395052075420597076160685521241510896525981786411861057650313541796477264068418837375396345990614336303182013058401069218994871003473271343846452573182207707498070179548293149215782367903755862741542832926921437163929978460746327431191928786417869562847223797957719912564154549436257085075300215072578264817002882690050034435468481282630080260696026892795417509888960488261864371258822628745935759601309518168431516582057347703504348157620664314168774389993989854118953885322682564859591843451492047079201920815581311540447016781347046150374253308982315560715377717221126769229804840906238524669691764112739139870948831252551917880769849282756572399692543107747643964143015103983013792999002037585735685120969059009918229602271994749534446464413327740428315236967859541002344738901979187716082043614879122575093646986619236366453078613605588529453140879581952896009238757869338183003626510556806793131029183153842887960650798708838282020421030119141493147370136045431417862073901037208873998965576719620322778139451593308730981555115215819595167919683896276132395746765408904986907899231491311851448579202114255390435286148492950824061194878374849403658091365937103176340348549320935988190521563038483421190312724722263120713138210614680822129590066973978582375620582764894228371666088860295420615822966898813506747190835895000905835859913309740511123436296785117408401561650981307170338983202430185088544533798174684471326805457959062714352732176770906260907545127777252399684154599922122734755568294547238414127868718337411126793999325921947091342315747755200538726601092265161517381408133739931406310926344439304601429981509063746499145318836297596004660649865253391970603298679663606706893256687896001332981080092537940267510828434781567137840050652607284812263579694596319225118229985865372557722721182891004110260625852560795630580794217762651488430344215985051793860657644311755054068720017772719823027326388036821585252312612538745679091627646805914020884851876711171868638582289670335536154435889596913890882883604529752016884013907832892412281212592094961675658890827960427408558652307692309830219524625268755143391910174154813675069037152342671015987352884077709681358434105601508321958447433803802329243482143894355778429627357550705268488745872361639967759979035257468165151468379548418716236494052612953948148466140358443938545535062726392268995723850043876208429754673175039896687394406580637498700347275780073086957257199114810648264920599927828898841339390872182082970674737284886712846364025212482712731263453123755065307322864458612222048416300414683059749004028744040700006709145494070576915086641232122946242817353300454304376087638476998954786972289773104314198434775148298354100525256253811183260612456259331799286932408410158858718833442741939229826213776198260608923879984238738859631679559717283272066149360035296282528673262697742286696496787580232393760063820061933909789227762244680870843852107836997868438435013060094442426498519290159281658034674552607278665291597997738639148955394335569783758653882938620299022681561309676810152793654473061613107752262518430921900156376563526700448795002343448326012819687232830964330722145781503938144907606014240425804984102268160773540201054215154301663794957514779336260627696183303382555878355694911658591517501506717442194908690828018187184816521785346620866686147002813080079049028841158722083749969794040673489550279496891581385981706531741147777203152741105726243384996535273504933466744348790189551033053482363105573829835002577417850443892075655984428039188416865104646992532232340257709252184797835296997548862506248016132955275258421846551788460949489388410985745195628593041188818019718736310883161844563721903580781655029721733528771639738059157370551026357121548085770939333636043084442051392060958723835156485653816594829855521234094607151087437459507237840558627413070361058075834465751706887444785483475407566915788084708545750536864714857566858421080406060905494017930404214495764831670809576907176499332587627627877883597622006897108289359227262735395139263359356872759579251919729823928682151866053088338073617287704976807981224450935671738577712816532076011189040977802450323114339542925633610595831595286425715539908188567696968147882482300776919535329197082799331335054234738309160020804253033838309705813346359365689117073770841342228837850207616736026801047315656434402873978183216770274880987100801426400201317484242558609280404142377789039149782496868411158020877247531459510686877653023131723439397101789162589849320892965483691875527963696009175159658806275199893181515785179213574681527407821465081357555587486599114991358245427786584715493559002568346041753789645294179666799140260251602459584587538474907590935782160286046508139745129443402960397189121344729304233937005029009026442840739644988923523647085053334476876516247456452574947577951742198786495174466940464169979093474669811931402014401091523825551578067719454019453630728756731468276726905790800506209372987558333227661112863846138307674781650609114389638023879009052672965572994573449166408593351773964763488014711833773511179268758392388559416941131670092791856967367544685963376860934309647235567859966057460801061565205270714933169797748593196102038993757810757570231542979023440686708128803103521950079270999756059429097269597662054345754990873116332002033282418075461619129612947308565359339079276806082642677945847236638982453154610140423468650378238245437083379227346542662044250669111447965726574017238815539730954254430901105707495388753196699670633356702872884673936622444785985832151868931341687184552696290209455116104697682122559385669113608848186215530532570696050205238697361470881420743333307193224947620111079127795567213863231856999346726534396127526696999772920465845692579917483045140449202306872246602038635041377555771786254239770635450016371998443757272048607145657390915560291092298757218167773526857350428807694533153103080638841709439122741658891634518704240610621575394910510783801802182281239208471312883823812946751249732566770039015737320726846991431142199736154669600658826526395062360726853837150675247503423832112195138538073659296244846323674898981755002469570881098245984620669900328833431751247962918526804894061528424619621838346981856470045045313992880725993224949461384535991727201199368111979502530179482142419601115119482106919798972078491417241268704162348144954184576645847819042738839805873910603224561757493582706746966422038793068961092308023380763090681371809292284295050893384364263953424683395724537072770105138623167668663726898299525709103948672828696752616027365913577512990728334506004432976625644303151721119039453938507116380735828228514421562194571472417488686989347290153526308054839790497478668078064322607853978401115908423476445555503218403044080252739928494019802607826344286504451772151498845136205741437616771325856978293046376553570109027297602815529245757711575256208723275085444190833048791380900455154419857908809679463606408975924338216813768399606461026639831819040207814021954144640734357348541340806466820904300956362219424987248427593831032026961126724617685018177515513318562005387188705166696968124020378415051453196019623729964167246465390045069697584742750294206671643937993868788707572437310522018237843043593454525454947417418339689819492840780098224749609656804919418873953800009447396240763062141728542575064012576351602335584787535118313830918132900603864851034456715867213136930194433761599169925634998347584832532959667858852700187516250437666354732918810364031255212317138881717172844505983283059577490956851822292388086918601446725322361230610214802978172415849856923484117003103986753701921068963766080828756620939262657704494848661219890695457588653444441498450269940784606352983087701200194693519484150446915056025761887364463904433484522693959770500105530522133926636314417647237535444235060966814337568675930709059031606365483019318664917370805678796173539562562093348420419497963731564701290300572681603593173976505031018576088947157223280912596465103050021497809406531673237925220902363323148247083836637898241047295293837118173424611466988593366304640432511926445563791029974129153800822579582272272653574500869391446419798250677982048822223849444713158749586161733977510982132422480019395369834047185139120903671417439322441638528564105072159797334932765382992111467518426608692662467458123039714235725492116788688874019118034798577890183486481916059255754873223963036492902922987663589269560524848958204458986504945252951265459697821840759456432839292672485192263880355018479377083583312507870517693325969425868587297720490329088707830173926564163892738759234628679219972839753900685094250849310433731347823381585242835222004279778655020580926663137324140660398893923989698529780621737398469851500762420701376820609825518392266737800701255627404381149346635975105430275062017832473807504487742016678525792096685224927232123929856870652489112708639240550228360844873492516908607197140637678789208443446381217243890855275276307108912306170797230016777208736616101764960449613030772790978958434721714558483437348001853149998098330921867803968874720651597383704018677405511885103804533295531394179940823374873077305089410661419058742690763384586333865043606168890354431444122664117113283770556365147794547082914882900989963730700026829663432976856596250468348765596771942752497570491031903187863680675388239190919138725200679356625714172494894645539827377195503461767568596534002446241456505665104349296185902810019932208259228398689060540055757335984928564522425412880089848010681289770085046444623226599964285865865971819791812854234882973304736521601016150588406833862899509080936141488314143066619526954436414838040708293021067269502806733034220317682949060210904735109531250508927221083009608508686118299686640808653866479981437774661736286740303840011723035687210123550061439602712551360220150935415470647671642091562776494153659639713344930224016492007231922955620100479331099283588579266410328480973832319263322050194772746804176828838281450662594251774071615808404587420688986423447214816413453419566668011545820302069852139110234783372696976252921140226404939623222190052440459526552935439402962202570666556688815213123841644432975406334284167571143643988969735506539978188148626966308062308546700406345817066875799112764680436056847844745113211891368470508553978674991600863639549847861448427339693087752576027568034031202956693413286103018787052798603678072192397279459060659606406088932529613049220492192636418701367389135210712255571328450691041461538033760156120343919307024523075634102559696761655901224682154167321872054825787706734411701053088491314277930215673806440199576679498740666522476619107696936474512802966644485226485598158700947688819903737998695446564768546684930894576826843057157173940399327838000165717839111553882913045580534179777283054004564003429040311416325060985037262478345614783478637472122107620156801965826378213256233124183923211686870584174007334367418611933175680664896881429883918720438577334092672755332006632312614957208579326581427080749442201304872295573094317065808403390391044944864284111902438945999225267991977991726610855848811678598493159851907747435648492370657353897019347200414912860814026733586636513713070950493114776392925167666685456409591093784201935913432615395007995513618848976261576360321607323656743992119939369396814354336129571514823123977833284035767019231345431861725676111956656565586962214772932977053453970924280118139808809328233156488637508547519432947855976826978946257459849948840323234666267808269173689871456573526169533070554822006928700610873859868511084515472186523304160013438194423636422510265514974556408352018627416723952021932415767373232650043780655319875551473897107621636566845460575481664811080365727576921355645469225885905001683103480999019950957077691476417433386299991751307258640345365253301937048888758523850149743607229151152194482573245107141454881314724587729452249082668480455147217429938446936701919859600217486466780280617689969393415063008987733785560068688289686840543478426723916569277341016060597751407184056791896637636662710107207962934107087360011183188050397012824267381677437010293025764936112730656932820243914533913738891265482896553678113102860662521760284549032582488930529002519579121914383717126766261009459460142429787405037621076445675293949113728252942337905661491595234800475878651599860493895374230797703566715730656480483521353455127065237534206541815434106517727459847203143992689826010061644775721919818240756876915388226524765666016434689327168045654876720289989910943865330847168863639798016405644668838081064181961802821645806458677801345189877200006917852789515611384020119933957647749293452619991103218235340335043361137235542057945328982811169159063716197844590598637310053839950100708701761979352861576576942243383619970415508344802071055028874099588683586319520781643095360088996099512808688769978949068638253570393354627329272776893405503323370752024145209937670984772160754958607297273135006179701612309675099805361637455893119323263212877634695172642321362489611645126321209488072119449945788334946982582839782256433625911438296443904591906848490714007406641465558784764088700504559829227881341290261484354654967613209512927903943285916779079660699420958806553037763310829884116963064136295180742475428961434313740980506657344056849129736593917611449406601617944634595875001749628170620098270454771093863925435382999106804016265675533890166257522200324571762980114084701103136769674012931064308577642180430107477682536544623560539390953358042699295273937334056393604126297534537596366553484207732005801429334885483253561084790822863262269604073834632012874293110698298769829734433621898585812943601472422803789647200107685458692388086163680683136586138711165079863443528314471527471062871642163556015193271266650603135361660970033252726771802310985714681325077153960403447967050615329340916426383820177711041166484646734381569502506230641568926967610602003722394807399615260454069262926986743143431478742955531674222749020654840952917709409344203294039842715331480965406532201493549911078992278085536451106106385112296094450102167962284660556801001967840733117219169451796547912299570560882703903960003256720036432722813807908637602076529596308114256795509857983182866293060375738961602576065455483262959202473498765861885779161918453125939171143441229114500998846453534907268763598462068192777295921921474151581140868510652256414032426214120747324331603918947884917572624780408188234595938897858486536921994607725008794524063406504789724789568294175471237832610457857166685900862495107294668534013583029448473348343462304430146740039335820116958498851783021354582799169491879087474419566641680103006850589677589774364885079246268844235752062899048559212010258074009023947521910928256257055212249161294424321814184308143035652481829472835781204861398999545714750734641309532063277133593053624789843610845349344922714045611119268663362953345731111343743738609177080578689450067649990437731665561627360201834193838556245346395938498830276879354031805840004855417786067456216757647462688252313667739689987667091912333642317694492574491302837608305075062587542594490280017353970039548607272815346793555736378621238688819784593265522461062794207069873158427660174584551357090630786145897677169528861936804181470116631702537448068935708339355113930597017321348179327964942763268227179559647541678399203836812281025723563964259430916150310705107663549217270888276283365237434823001753035432554964671178282604516458897857543652472455167555738040079221967206297368481305337184599546541882250860841548173403789540574962864513646023138175258066218132391189766681594870741313986462904286739328661362168359738478476716733083506960651829297228844618250464728939531525723281968191270301575676702601206106426789138497689433906234329193825170063299530726245430675701227004833299179172009753103728832757892991571647158540514041355905051110968956163786198851562150012198364645130564186755873610024888771751365416769109512886711418740191591189607937840285639870026370474403586160406777783208605642758435166433392148549581494157901603889813385662709096885114227287917171095594559067361387920202015830013641323769911419124212450745956921266337560625817258420473602796781443348025118546817984015214609398974594937020986361132653641687689063705831087717757029729103647730562643831326151110235628335895823338052105801467872922979778025852104644855342646390984406036379712439714887882024998517371596876028845468332721080779406916793097198824522727677531640434133723800448943532824518205310182784401897499097686488879101773272269909710133713445000613312837253784819083160794471183589963484604245347144005230126697799271849478994991697269862261497517653384503254818421083655212963079177981188908136457280230550270598801839580587859686869722802390195552453879487734288309484302134713815757182624922788140552282648734273318480385096857689048122671274730686127963529841168135763471147724643712554919254876743837116781541254483786304842359596321185573508721298255718066901573100503292510740328911820727238957194374390101260194988988573933105256777997193344556597907133833644443279981131480463914019461048700463445008239076429304949575018722507997647152175033807966220682460450896813891550940855360406084205449941028380107971744348473773982187391654401844906074877573690292333630673288616012006360915561919254160298354985576386703753936003867760980341870054544949367866842909998124037013622077729247528980753633281408031034862872849464282927340314823333780216132142491725896593198658110806419922390723155133694852541388048101351944356674973273005404037202466818591109725454017717036360604157324897555705673153960640435054926513822982579582561905183800231716130085710046200074595854963845152333229480123146430487916460025076925710493547997816279041636419812973414060930468087033982370717383885858451131208300940709978018500216930277803808614625150325187593975655513566250625998118179180595881816570525002710399602375317562064651016047695324956628522556282682563122832465090648376138210312506660205492262700801967743629931781756837900409166610456218306615525033948727643266908990127587785901881773572818129981427280330827319263425687578399292626422037328886016123584427316174195756515313132402441067065836305110598670913694474161336332373312493655432769097294183320036230860613510298778439909381592410305850224870086985743273303094380088135431456995905895637268138736852884926929753307167017358439925855767696984323568913668985334257804962031611447739302315428140202884224632907972170519827277816406276753344376289433933490383464341723643504768315298757226477200243541393663122079261077563717543358367683834537120881038943647182319017470793587766677178756839662958669957111723281801270933335287453116413906189512929983855047400319761286555480292200241087243138306405862938176375955561425328316487136534672756698534012084228507129738656350830723664307601638922075988684101185610171649029281151321988992429988234115353740308406001753915971146529961043330049441202445592835741527043537636539615599176808223130497798437571177216921093645276839345776647560230833550336724404386702137869779352221308433671278788401670349035598181750342707174253750548990267595482055076361245686695606893525194051327139210622307219354795533853751120068840010899915936840478525596361230032707244687001456200924171428408888207581231496313508664641785349016482142047199535258837011662295308035329301843533125730680821207573291908822619668333902913498868588746737026310637620805241641417885231140037600612906156676475383305996213021574873784226233641837367255254361303408319777956470753498637279563147137593281592445668038962750371476380119270050383901319565375973035387521648237861865349237074994883976524386759195251668590653293879040626594438192365283703340604918685549591660308399266348353956055559878459802543541719069173161362449030170541831301947012521317344305415840989280059551809189260537605528688038195057427022772641020312671966370301558766350974369761369008974420119634694893551175030909413086881676912205641825617265086329709424615585229739069733537555836981792224497041613088515842404519638774775067328504403287086218259225753377715512634434123944236972282020393051208685345947997151720471919573455816035654910900222386171836811482575750607444290195813398324131223666432319757767476995385044184066081152627432512622868705814929268801518443010841765072002888290629879495200664585923320614338379008361200851196625815396779064415237210055848673154198494734812815009352067584305254856725441053308969093309865790751346823293518870359804169117601116288041059644177271147527291577034224181616610953377154377489139907510598718047477094885650115009236457166107895735139031544042649355638171008666157793133961439535653111690535474146189603675341326492438682246858605630601262530828202892780579131909057745312199212467205296181204701611504755964245567966930024337555079896314496063613589904746794973961345859366742919460957930694415954698313501390946182326110920293796597737900402862052193985048027249606507702033609644434530472058365131545174622924038420128563555221935141371998794050654804728045314241848459988016882836920665307000250787224933156702684096999952925457703309546968998561861633164934745374789477806918016080613284224768698828342826856180088875730502402331936527107492983579250423839589013966562503737481970208018079554753673716658968388213240488717275185097206630825378197470924621109512751964711351439629540342743393450476681880761072273524616690034998150709772840188681841088863205444076961736022550049364169221932191868103406945554289967535759379780624787355971312066293051114375411071799258309219397573602145312204814187405394130868423284975033857384250241584076324282901493290450380549570528682938539703391480906723933007075290725905120960318351607307061817998787968161972207435835485060355741019729677763755878030902804752423425020744716562111553123120951462915966717337807093910230840280615273727064089908569596368360443396955583046032123644839390907520566103711824604791821576618643856354411067826713389554142614122996613417516720106722912237302788548880327811857688054215749063494699635972717655292020040001252449321038514903565620877700752819875605833565390638175559162689427616098139091340208739251988603080493466005736990774661405974922437337120174200341200555717054762431154903255970215423436170868559432970472795334079904577926321536797908480603848046823790918628167485716904467413419456637097075217294638335548499965996079253770116180831485271779386988095527025458157793811808877636699474092627316108453187878802699718273003702037018080954596785947056499902560418065467975886402823687753880950043164191108056742998746348513307605785568323171403061978806111666801252824386110466143930629222927883944321067446611233490388383035943459139569056578407235854575369647551833894139331627744276110753729743049898302346312253226485738747486227536107113082896439596282781345044620240029611541315546426518031603034344047911415050420901203382662646462419123090587900845191053721619767911228408898923556042512892909887240557298189089902885480952856523167095995646362031769476787240698531099859714772489566647867987776113714995279277964806301576419557623603946857107772934535202322590496499304447592256354815294820909333612155428107250411119699901226005117831095774657619099833463858575847227540855196706073830865144122741103716176279651749791501373406890190487934318889653170358692886409311232028105384170196405808690855055137355797781009125066472871042950439956968756316590377775106866294751109478414573017455070833600516294005048350868384788833351101619333717300365213331417428270301490265495380890310717596665493328897513007544360589467048197780749781941572318419459160988856015842296727298742718696438086288660544867523299504614412634630534350694313072761662841500572859966350253433876126937831503971514808657877884917487619993930802345299044610043947832703829670303649186853345223594748932282426512432572794998473417184598878865471762937909552277581550085793559990704423647717835546457674233280887488201484253929401323172531384637285270337250812914712867415831170119380621477752884263972223923940794371833339828148803167398796944601251968852594879100110529197080242799518559837910294256874645404056318778678904611841321430856754361420608248317702453845002938281389531267231473061399258511188079804634170089692095376391020604384221572517672087635711441084533610978313294541244172969843312145259559251698984807859235055123440382447244503086176422237565589102366686923944451999143503138716663109714252008926777674228643987816990741668840903355450068832621812181621581106775118283354145217194499351557209887778679980058897604813622831373402793042192662972191159259397180943834015983598288555890201356533184918872835242182262897995330512867886742738177511330594585854595083730392902699410821166783717961196194774291433956541198907563375021856592212658946310150097216434294259617477482555931055466679881956540236159802167892598885033207393456865419056369325833846164306623429462301604291455129635336923002573809694603568193306989592095011289322388363224390867974767760602048060359580324418859573091177097998691236027002652598807570543205481559841486022788096932046502567652702649753498943984193934894387468118097539683569102542203854369894255050208703377264405515183987870325771741986896590905859402513448238453783460598108983809254418910336311148763938970504924433654085754653312669590978327440893452864152303854374885547769179494406473416691949770689943328821084361025479622845705084092000421570548342378979326956276329668647077402134071090463318001530930177847732353371938813780766543999020427150507391719238764655870031328178287650025911505985164656625124967730534994258515883326156214546490720381658112962572596441669324804031373748754580832782787275751256847256441454995960189913338855260552810801160547798361798021257586766935670377024839756732952063964764736894264684391702401341889289636378997461264756033329769955918839005136085259978015311932384500834494626192602448274828339644654913945733431646150703270749656780118271595834591738332593515105528203856871697981080712035494067340700636756217410507199674947276799492449257912344443756795114646520325772528616435056464160788305340029106725738831028553439451737004298474265848347982529294982410620877197626791537614196345374597697146926303290651349996737913688853546306523020670530242433619382199510546513776406971666972625707783426110750577463861198322701426991803598100208387011865029582308324498125388352842178011055523997176662702006416365895267445015815934651928119625078083933998808958408392665155450134669835193568970164432776439105067406144885347729921016047993017239107927853946310947831905958629131568766114786688950554629618125950574886323370713654776431666213811749591425280975521644902582686447965443381345590725498188819476888782046404521770492394056339426958017001599751495882479027807112144870502082945115296837878795655064811731209629988007559975331610457836327522155512568441420378148703476670605528696910116786661049108167734388319219274775605572852175692035847313219228236242546398353641441290998364664252537624987889772398638486165755013685543469567468016743095750869746133688090647268911627794474885736937352495812485627517050195539754540376559849641673532343654762105797870025345116397936623271608469344474685738181088593636773297512441566024321287324036852987039013219672589726664683773059527962293370538812032827757612100132932148693200203587660247306140230366801350687094495005727328635933904230255553951106267291671246228243919559442377646156036295681299772869497370096590330504622433604697069203309204293125250985299942336053999797249943477340493712780028632489789905731022315674906706140228061574486152904619728087414680039265899592939046048430830740222754217618255408215665642654145133306602504493270128872230728402423898461610435597410427084122219187773621601623812540266273025035559611065836468538388264329629264340991567598239055514382988310649359970094299493000784982196584421843622187730985269416999041827499015436593025999650724101773356047446112605870206472162663098352333173947299734181738939709103138074643944160998366867698561084151706974554176502678144441973054238577203979677070588236946980684544015271522184966499870220133159169344957151406717819901766614709972526400933708023938309650556790359301846691418740333612112298764403912370386685338594376406701291544294379318030132979693036267626299263632059495048900878766565042251310750048192058017057468089615260462701834368362357437285085506569821392249276081980996140205347165012017849844672833424987444850915267344173580755155338444390345217756373953288056038302845366184045940924917100080417477168615096291156244158458288513919332747547630840617351128891095582221976098526411632109445908331168710576134117268579869241978176419925905938932142773475733981156169757343233120116602648866010865503948884472019821125715310265037143932244260446276897051143161132370848526595148946625432583553559414675110562705337907448710042546840804777388363165250787933715043017330496327771081243271513214372989879093798267824068934564018513147702163415480110654033465072069301425053744754254059944833236854453568122107507772726245781420246545772933167113932106023716818590139236863785245663156849542431958302927612182350228949705857901137015164936411770287877577363663797020661080458813144923330077394038861469676481395232096437563098861151761410345584724349640876845175103000116207826487398693604675242236460941412607495259055868375032060450142369949014344799148712894391822084216208591483336465190133263741720792193587916609672545556797780257375760923068731394057146570850798749124593141415628393811868211743261703760874763852671200376780421701562506285264674185354199503897544398504657552984516649765897674890911799713874998150937906995257767874839096804474962350847767635008581147396803365164330986160954245551845047778842854076944966486268031775973437304995856125489433916191995966556258322065346271703704313514958528759163242964458640933423567987865615482681397589786913506515830435172912729448769354354792857927706634617024445907266269913725803107152935212593129953961665173011168233527620791239717106550876357671308655526872120242755620089055714784041304533425232944423752704804953705621906010756713224759816009109951950977670149974463641718292608669473908126833310466176801119285483969197077139390590141812067665263249975019260561099422207415724297757632617024493403032568216397133282839084755719223892079170880076418741725863193103590494476492416108011991412404965369423470740968125996876310097854417270701334462918387576059751103190804878824930158598554200386878605623443560854295577312289904251210987138433047181701979140648409654941234139616001912596907178951047110351347070559529327239864697324531877602080529431005329500383872177641681478538375505147622880330804591799130976975734347515430023706645349255418967833734541618574419796189386843572129644520470046101954993189163598860362416112700451652330924963894230083147312552123957767481509143802006457501523529714378085164218384747816949322147152928248472025398228378273115546138064909563580812545625876177134503558458371535942348561514493788801063378032466408599554751892892467785993315306193125850011233777829133952543315994190194732499403661624745945026478988792252228647677790998756148652576232270449842389076671059895350081153490483329859382400005130251150294945296603202239653834776040496862984576519913781782725750846330190174056395821063026023814873762202671224005335499678127840439376021604423942752366796046470444998212821909570304778166376401096499308239793213511917541052003110420236718786186726247220873854385508559693929565860447102233289416163648146617351552198414608901094551230291361245261595807158881852682091087684725715018861382815587837948407185270031284175641387651867377580322845331519520723141055303696853626316182421392250589336272942045656820639868489829810090407457200721470135013195360498881756200627993102397567432834970150941271179265240360089085486161392802190963406147432829752536746708919583803425691694726325784356336450312350179352479622639926785679188286655094114829878744157221824140072059097352649831491245234146025266430857722510252471442480456682556280162722271008548024730648676004406681936793911186467341166160350276622817145575969856581515493493411963164472115827781536928551830740174572566439539805128265938402643807255459334525525771066499151067874448893233116669459881804689683683101542408421292485891273277514166927325964390777773346612637668455821402956019422263279897159849291486287846040897255782817180802754754922478602659713466150207914689427791705479332787277004782257062285084014524040450083952402679914845659377313465641958504498733457323580701457078492207710667695658871613294586598699360385669930895055513847754958580632636916255457660132933483806247816523076028486223928881306593875652651915738686795163699572604301242289535043377138789757337001585596701508053628638890487055620157434532948442762981669010966370231541940234442820969122023171143612847091175188147352311028434492541293439863022972706847328821421212281713746228728204717643258312887800616459631452535766117627742783423327687194076615254500467508485565479999764952164335834961926761137656855968756987343501457781629089838372026688565482031766320757628331958446455103748104855800879392821001695878862581521392674896303541994393040708840161292843975321235425631937471825372986013907248449772037038693176920663203083256095136717595282558882359743935254776640233254389963865207451241918288434557850059901608223392558594413166800052181715642968011333867105937192167370605599714519257571124163020245538288149616438455127349754827901161817944481068203680938576115901530532203091529000886241426878672996371494560829890550890206537196634335468459649816228502450176357933825934612044233021828447439282187792323429032595286433534782561010167223821831467692940338945511355302516090261986963149574471064282564233767258924872486707263566995800825922758253801947501167554342965368710133529544759555962450849813694764267821319473586736004389643096416705833451240971731648180419051500708849223728438199602257460499276070042096678315326902000385605363568482105739599215714799846988387903250656169683857058322814508464302049973457886376817837549257462262417847042782941271092440443397039995610677536901182901402077423411049406800400345001382069717647603577490275824422322596141590743322108111160107027209419828977057437457696273249188435314521774710248826911262251246504940832542111873438628574098685703617376169694962308882695866308489298536394928707128679242531755859007933944112364493390224261092958194973441654226146836249715441781327966113700157047635006356852888990111460819497156802991468708844278679460211291832426614888844571944610107827453800400160331567558931257365867232366098238142058685425694029607160736874691202260339234769094662548190398396938314531859621489903578140729068636738227988703569959258035901129580508373805261485990695518712096084456777678251014378708500828416293859849756464878448511114437568159302358670406999428379879535505028068736770701031501492796490419687227272403054889307359396828379192109537437008100966991079001124393663780160133803227234279107979735861661707255079324757389204000980443453724085341350415948596878721988050311116520451904941241484855907697821338352348868050518546666280731851922015696701088932023207008927040362449814612540674950001484387639380700754992535599367774923443651304616975244119913642920468850603905476033355682202022456045889659474197256305758788566453289492969758977293136486350197570070539940204683488295720418321346122233193317788621734421703919742159507006550036391868673512319696701658536897936002701823522234362518623606510695536177633901630280577355709640692228881162116455031150419911368883405348174976946605482653519390683849464385587308476766847277103323759924200318029344054606771731501672623352620058574940388127917550341550241772797059874939418257980510589799091464953105158250367437599803888844421373406924122467786468433954663877195958130162086493152581211833013909858991523480168695058762903894660476808422684347239204953612129421507704468773856703431902825043301723707102809221643737134162140360330187793523982086407437255132770129703039814571939050590609241694447898390706137142640545672975204999987542251486397013479630746123828200326003195825336378788877577500080900077270024744384133529375246107388769608998764646415933550586046878834700761151149304001046183693922951214355414332203026067064263343351777087917597112157863379543793528582988722706146395366089808703653364085941833462198888118100184278283659073374646511818418049690230843504036496686013290294994571487893450996411577582451113473920336870009407062064023910612688307389537851052477586878370928086423864581773838863303215340608414706822930198890034197907390276340270619368501159692035082860310866883547000790664559148343094266116977463309203340359918220579808923077319177305568742991854713042361303675645644765012425335114851576079619211852197445650846926888719521087594658270473172723787136554445406330132096858491118656532017434591464688389943014889568089864866686925640890877540144089471307708588285587443650287070538726884053593633489574273899293679632070321571504028514670696623548542032812828765145593605297710643741061670035253519790600536401761023183711701886395029221575543193754131337285747764089947663066516125082829120227368112086174779058232985818398689444061602930368526829868472229500957791900237715692671272411518227478987468231534675865428231009593935213778554518107603546993924232994151766865049953795194859644304417477761726478259748509348906052945457668159183308302569402025080581812792809194969873747678938952245884578263540491978818625814997259100830676731094544532127877465195004602042085158370854575690848185186051749894351308650185371387117355890102002090561670555934693810939692322194728415508455448259024117410008816638546609056206154552563626524201154420358696667079906453080688326999461558673894848032229181324043136544073002569364792118524921174130880116168128986964353345610452902024577899972188369750195510714180678101438794922759967032677616237845962941523336506217973155449950188352354441964496117415184859622100834671367191537041109752636654772364452290303351455381527930369741658550457032899571800158809699784606453566519941531286211738780787687695132079475677838679612126258226494076980364600222928681244088295315148428564053862992228802164586831023090716242333366977434552950678597393077471759615333263943890065515049902020891475462899145064157351686410669277557559977528150663412498257706286701803735004525246665936496917320415594013314228452845565936445274435844480012476979929424568368770965976229754720478041087909517780799610149117696200707650994051093045425600975138936182649689904236614284707508595592420035026774012781607848069217376736511245114038001659638390819811662593353328680487526538920443940226194240091333193183930028878645643596735002939700652750332508422665632547711141874820295497149121510203231123500921705194591428735000296113181924334244279926588746879726698830657029095795819230450257616914227611130185932180794837101646882396292565646083599750490429129546914910193304497317589382634279612701919576886415682741808454200169955959614194980217545380942289718180680909258672334762718575634470546271325234344912639823508244164766232368035800460568344838472229082125752050593958002305260681481430135958179797509965546425364877767158383039469915618309859923825012960817576633384309764592541725026281770292453499217411161658256521162328288636478974342337680803748400821659154969791643311716949953432336280245586348439376441096882019842576307636336782419227673780572436596977824142260833185014472343694248773065519205203035529742630293919863138990491802667969819682465516638948767550075931433544117663640248222868501978043334204433889872540477310090158442230910071907793895668021479105092403543267916598012231097406207911800380658887592979642432821764840491828436624829110221484061576307612083217077612530460773548463401649773187416090819655053318710389872149985475021140776851815260387426717525244065721795010816435305883765465423430689530174636224400971845020321198804243135515804455157470271940527510037649669195642819901685043444765649983262708877297475917243892797927875368581055934912812741003285600110773943115493656756501427908497897257801031438286204786367202294540718954677663456084693774027190814905031934220451529870556687753604804284355775941746137623423276276095058901344810670259249838104229173128592714035365069486513848887154694670826587231799597759128321390769440573344496006284447321125379024872084965566567569208957164991060484678803438385582558980377422435457132980167069750348498366258808963917434450984798504691385248947910913488055833187136029634207084520828707352695683727898125793372214396471337310485812117856062527676840139237030309197272984028018827093361300812650339065567028718149938754471076995216059425669783296882202666817551084628680659974857189158544558210097932985497510099605323209750435737781599258558942860684137897840193528161503354866016573666795480023583000784721403347767082298777096963172653054600326042839343723644137710361087904571108025028040840629273020594875801400663007661395669465965026983685756021492445028537526654498317709788820958892922216018894069347443963101909890679156857586869981292183249476437699042691964863746240934245951185420681448265529096805601682028192126220357733985102735656757024095603305544263044885104700007227280091649629307625164243563623696468842955190227483390986319142783278477789481079935631531136990989650871500707832427750823323532292030215845285107577566641099561119785435865942257472950211067245167757284161484958485836878243721012157646892527337485726626242093719160411303875072071935415695535577914862363518579854653098247233362321328924461715281484784223370245635213737466549360448770213522157704813352760757809619475083163590640855267177775687160511571609050085833533714964788547153705783900464226477943235079620655921309430300335233983385014926333864771365376008473440945244895047945803290804279124187247659530094579701175756100075188782787191694223982203819555026010957514847904768762940810953164710087065049141979440697643447318130427391697459142071688362650234192261169388032487403952157790528919865646585990351573938226757740174873145957940537423710761242967413969843622271965279598140688743346090652087093014367260371748824970798405329538064255255588941913786172124129618204708769448112451876426940762631247824618077168378274310656371947821243406697925861765954939993050375054092313132876749302704629875940161071581130765552576445531020682717390912578017869009332013090791536270159674493490585578524900652867299397168279576455045275674647868413461666838250084758218334845243500605763182260142780517246531560528921883177933381500105568710411609431251694452447300030049086609544681004473086292958870141815862705402379051871836987513824443975456344657018526557064711297169104339612327910398743709370406201015004121482794757155798430682615334390195867751414187777543960644490932420923030334255320257799383803217079027329738199422024547937514595468414701949603567431642843439873956305257675714241636549139662004567548925750994008049079504022823241523256482597231685997292264605183985243832359003243734618875427032555970395797348406741599095263692281682187646338047146143760856772185685429127487247173150255024513464686278358629842518494508255854808012729761325963645877270729295264352443295576588468649600631374182447313516937106729596662389153336772017933845439440323232284899657895367127122740719060920240179626415680631709179208563677299452126434165654640220681520518875046099635344816146296905297512308537725409148395303480013373428328031252086436142677102913422817602537985383418651457391872618931808700507388232916909390290038276193975222223644772437815814408632919274653885748551026653392694247376284782843078337778519927478675487427854309219459334802049438837486906986011226252419344077966581319240325492214208524667906127856902812857872841142009146334212648208974008936662030159454412589326981630527747622472186899926525884495380197660341102175613195453233188748551750083558254595664342309755808627324575167856042367607700428912149349408939578251748579250301541761889124334338172307231791841117048430944686252706403876685127930504431154292021649645354609112716711473463518284408458716727766767899524548750917540032036392443277134248679290713455699592858782148697963703867860317130542613834346250641301250671673108758569026923454094998770875472390200118970783825481107139379935757984196072056774025093242936265835952607769211087863553637672673558214143505775390405455830665093951461433125615167777788071344773671161639643807615901379761647832196413867146972255898498645055880112520082756247202708318715807966640397426999868153245829412830477440261029561993541627239472921994286110325056222435037573825765221066643624264989511355891900881595178985085494089920389516821736151474978340907245842767798936697499808775398329796381425524082030892323823105096030124848143497819145549378241993194142152855502984347430879512896918833211334475962566267440756583936281505076972607740946126630973529820335705472260674000027210357368881477443936958034767602999677280184949627777285528731593033448067648997154660502036684923356114618965517209682095536823341751148781740656979874621231510468774994676384112881468392669048210994001916267994677823088222831015620309789447942244622144997598182735990348553910571495173692247467179949237258320730253576024418167550898538301458537006915929776638802763670319566473273722603586235986730110836400094018424010195274934613494051444316100213471856839683491686340288413269170713202971950498839722742902120940234529199180197181449797555268964549426142109042060057271409876659982363539917187430884730028589561484912745636935928765318073036604069644145493269460638124249501510220121494482908893147995004277415683294586077016530149241792887010855030359352187136387452133102253240633433513659901010604518952747017498762209626380315327955046430326885882208913146536276253527260365755595343827871721670294257960650425007101670790237089132945602662600505313991890281809650834423424671839980761218062398983211276552923013313571982077914606029731144312597793756938459985694063437616615627972319380642289505843951958231707119927150890470079243621129187822936131844055879403847193435212099897012236959220130586760684525098532187106750323147738153206501430291506824893343848257106826355244643713981218042818894180614728120763221339894056808337573962079696506158459213619384229943477758556864122180913012857481646560658489653929183928300982395141800604287694558330354517408092920946656515973445516784666318764828395285957509818777457287031708899421772368987468757843731502023778275303379417664076849056293607389414635029749741475936063825815680863798323146556440364803293311591878548801872172677307210813598175917912101167488934788891548742670415690232332679343970044657209569868151059734079208988462353483916151204414093209636634629299382786849207294746799612603388374330759304328659726434111910885402466805373059469832754865597691700971528683372399500055901055825342643878173125537260127651264717051484341440467056138962717998237688935347774847887046912132728698691049952249425066748897569140099639070784704007596154505270044793914681691086633886468917265079235117269273165258015553058478914971025053743652056852498969560632431831625001521269519945234043059663658479681681544307690712675147669279752378061957632026106264591263554094383399837218662725552096537221593619045507721050382754138190895487575149216782809440769669085194380971271686917928295540148508882416403600274798779880642688950241336887996892663689266700042755458278437783589742342242153884102893328243938649545834717086627560892346182937206394549112898374011725509298768208944631306631133898292810179135108614793068781774990324204548887693852656932696741747817930803465061250867115534073796479614780594419869957399920445943079848437551593260905633978850759654670265885650805851583703514341303261797753859228663686325978681968897873603228522932306538267216385117526031273251296128370187948280529517864092765614397832423664211048402214915946169293460251217760335873468632736186923496586171098143600482794494213674645787233248350153600132996304179695029654243053906560459186274781370696735882835341047496711825542163211208025763934750517539264259492930950878994500891363873810679724289311802518454132711829996856692670078237229213134223325868014813388050653318880796086862322575295470050122361482019126449186944975320423206391141659654727743110282994113406403898967671011690724834641329974740272325142473873713401332766238995600650356961268899044391536336381278550883718496028107067790205358224126462944901120752659037217691430776110195268965398648478136402287937309598557574455123528178081571106199512753045127399171894664236126234554699169776673933576661224766063917776119223960007793083077938092490078201130779942882561605568489470519647543881907653146937236624262747254270808675515046210435567152352876543766780421398880173148959179831025311925561543908887357998595914130614201922609299281334557759980532980875189083653773618536709302718672330545769121642399337896622551326139125321712717315263664464054927227477629561083273713206885733102202370767803990064065632016484150580237012073767486099584833764688046714925055301053693274904901242126870082786374974786149337801209297081960499327185186232024170004307346286352903041285480554846693583085800895770250941535096458209757032370278962748674995462269808092669857589301049381899959232600988820060822139107653424976693689719201053412963277714421173214625526326369010195732585567412765313389536048430592404105085956859210585511776493316700097542897188363595621633269362977187387815836416377273279303072265786677161805285176581586025904854522369104348143210102187251811220552357301424877675564071709551212076547039729325571638855124612316398227722676907776470170909550688487306722983062642384992315694140042271559384713297947662521491187258947481858154291778377850330209753350922855019575347667838418838914360133753953746592044029860022163918559775478089837403003919523022363324897004339688909145160537012046899914425464682181277016725210555014950030455126885612196703366351793040876421051795481403025570100547134211644541186047441267198945207572221217904601979063516716196125776420695261799004459916315653148229858456655813338595244984302232957309336533239591746899906419979776358584902608541566311561770101422710035405438469331712755884445949568835742423819520674578100501003685777912565734191276411674517916782280648616344769412671821413554704230260781560558232254801591716587717914238596031070574302117352080296527124665478353128396112173077845154571278954877993912573811385007103137648316145950116640798604901620897376461585581176241081563679399307313189075038687516821668117112177238535705681563793791695075681358435503389746047847177150508126945459831284024876394806989761193258853859121551140518752563103695226729124850359771330633697441623940390675810694490929858233395136378851699005704288026877889224913734258895997228683639843541302092104518491277423732385701029970782221623639685546164816400326543476840158251047142748531401480413971731482518103935082091549032490539125438142708889625712847813438612011501317554403428842413679642991736330061190055745916561281804719655433926215357301768306837747237550364502206399405072545158996213746009456989009676855843900804410729166657271459806247218506683657808391624648020068559260791181282092246549566790567073624041235413193689317798958560500569856799894216978427695452023923001894831614964432970971552607336263393112551061007911488786300155138179103809848066119448298455818778179126642005396036078619205353518122491001392505007085885067257617332116003917556181249711325501435078057436067167198572560743932115227731142121366631843073475407645286958546423162849441102354436700573963922558129549409870478269737422494829996316925531972683371679405942694105951945567947553460344298268577493251200408743165208900449457662320448938205477255926858359858510490299488863967422653266901747360060854323301058018516183042322981542883137443027449094063195189304762034261579945668362061939723287279835378453831348170652575224248443399192882705064892144153546987797284758847379029565939924606774955468497211453657633841256196813955974830701421063339353484473392500443610569552201993039733308624005831012219792972837500894482573320848261264383442429169741671507806873214035574514310838832354890198973566908264151384358394295797614062146567685469690596866963541179216730790960981049503815151488107260440453490457392772370672949899840181411073902958818376030622806107766902931591205666943336448145111377106649812191422574854854147221602431943125642855882382196945794945352722950569256285536473345043500489919316440902633224217362273747894467946811102783939884909620279219104789442537533116299073028889078964875497993453897907661183779962436885797632098509877972880944489244342260504284796829246022811224489014479981061349000975614165905632112735684268880627246265808554962335770975382115063952401957272394287533552897772532834338147991920914582643011318233211545060177328753548946207040102350326270185440682371302264308125493460489322540257256702489455658943445846901555668403074279303162723126130936054382793688880080710923219134573953624807116239483863376092154093900980643606077750813397390353810463479388493953019631023037610991754295939530885016845146207304912980017807545778887701385565181872808407490877167096638486713871857418294466057512370769863208442177524340127217775102146702707212484574307576757088578711636245351280302993751443433811086538955125073665074224005492650683955886780932180357256486624330017452439181898147293910752017717852037420278012569969526950693666032365996204099072477591963019649581626007954397574672084322443339789106717078539734749648220416217113179541754372645155148349662187520650421301578313927559900788217150872622189488753204817681289166058958973539164371929431084398212238604718546877806632399987264394101012347299622425956524389503378154556703764584593610226435638596334691371740284430265387661716130204145636033705639299317333292831832870093795451888141591755217694999205819479087762302300923040339604222489772233037681727356237650809715216561988166562447833441467399561162033541243611525402139164370036991323124115492244422739980087707494418737361222990575161933097323491161187661823100239574789169472607290307692703614171332425182715584893751118178646832638306073057811946036687694275242472422618339318966828916431282082412353954535972706644483084447357680952633033050978295382033916437030225109970433589124604542455201058827110478175206672109211041210140323414266065675377247208033357799194772550643535538738481485205847754367777242394270772378308149409877452734203599957605655022405693648036688058192497641568584688702021478792111167771436808945013795326070556417175893468940228063623710389745300059137685621123116405141231766197280986712329423755541794484046210509077547681637340609201082028932042449785971630996725427405056991299950290021582580362764931670701306386142516551654134048415330981902320064364745430740556040653191450189458470795116506375596962374950214009847564653205806509188915325145030786295299348368693658286879347514485389383300019973180890833527811601465290304053780183044152219842279864254845031460936190394634469943870162484915620730260814342779752685041392117951598739203951499955796056126605075336714450139213893352632680860086835180819062072853277299738512455422877728074856990684773535881445151130787987863213566983234619974242785552957719045414282856926535332821777944854615173770237469141415131412529139787924317732181723789311623317344830362170212780052191370998097604086970004460473500136913665445475081858459915841589836307338635943313449610097360228754954033534642983717776291540695940829095486608102316141496792585887362584202417758164277235508506753455374717490964732818303124329895418501820427608214505331035549555027201017837410373184647385340517520303525072319225336700461564961198238767399998843866823713698531476512842358114040686507245997536815466102335509797278537840325967951188454028777946850173329756369005992144622324757681768625993210395832054518908841144911379207110253186921061525560582431593255916147124991664683240128618079451732594634196397805630242499313102060316986431042901346971149780291482483437151895603380801950801272681183077265119253065358194968636904677119731396593968406869994782204497354375492270320547108264540864409971390435807613844786977760981774097204638314076062385707217208144730981065248893446409586544607823615528831742289661494075073242383520494489109296963663784512338782538838078116749226194772081928516262423934605925660992806941146157168041859548790786638788286361198607729318867464236758806588165147578742712023984191692795721428225108910185400523305458191538235165131512778635953569433618036657839692362564156227708320031229031464315682593463979144786352642259284216346707594592199854002876390589405578135530045031825814125182312486645689305862558498729725391572805862531848050152430506077880028585283017846335840024608141495390217980389323681025474075933457059533932958582190535442812829381330944067122864018812708971387725841783747878608841154610715202204448633843327790095771533356467260018184856889680507969758734835246169932218375435272502441185636697469443668313093880042332120001064308881369806682939959943288780314608400967161974142437647355197648959361027032801059926902182507224494860628777193188723775377204713590357912926526176495447662406210536698070761438200313644298149659721938108345242467802674324452311189893109781892665275684275913403768313154366695665947022328964725143181446218645595678319551099860245395665054883232503158932283011383914908190458053100134753705230252094795744873094706992432562961021938944624662705211635435937879543824583929881345676562078445610425667595976871909236488240397332681421743829161865225491071093676854604943925406718452439220244895836789160610772560538024793144970551211659261526364362222577866209451280831539974987168583980188457327756622090194447517829922417625129614033734348322544742602214881911835892353760525140216676859253253523136270558852859449476558455615070188630872626848406960508535876461405543391581635899441861257843640865902761018991695332745938904456976315510384491985858349479977599999529241117188473008788317469541835054360595160261198295760960960705596667577555870809792343384180290312260574596272840001152959393079194621026629586892588569157678946980406974763926054961896084039662448566067576039981244931967066151057017677967042982914559651655415904056624792558392298883862614290212797147850728343399356392368026925805211594643514285685613784398819143583008036943225661287080310508525281901970834624892322939900158501772331435970748828102467964394241023691590226950924338709212048424087452669817017933492607772935276851236521300491326193677338649175030345312076316229087257234343235853869768899119370200591342503005173178630504276017677115316296178904414281592813613348905507667610488269449951216223735704048753344809889596225457165672608018244038591566164314857805669917052088682789198568578069928611011886619812373582237765532997165558126639866081818306843691532072451771681480293737964780981417875424687644240205243700735075561098480570264553260166609975053989566092249321394472037868510325823087238680477077021281490652253786222453581606663411540122712199236678881291352859505019598392241535274505660185082125379668254475538245264704522423943350132949122668835513033174819789759502321830682791480840121597223823411272416662025685601464292796501211034579457609600629402404965517207426432039647083096099051226196362186704899960134246678767628853000395637297702376597815360841559387384595888229869899670355443777389447452643221803340896037315620054439233545093898924383398858105089257607058999211434446807765780602555499257304908608593398177792129244038816363379185725608659451420365835706876129723453922399669031643432606669741246290244239959734815031801465151430028964141078118323081189665970027204753883863572986174423425030341864901009267966489641984891075202878955473593799665315485459942147484785050594057523112675550905972943935750807013974165153858542617617111132992455923385037629560062994903988853738243426122978766591121572069480434759786482667659128154865458239052629876011096811412990636476872798223544738057737027088045690428162913598212140776339475479535771304920676533816414354544600811165882386110288614045243758404564315313492179852432094669226205675233669967500682692461017933831983564334865275734692147502945187476605274479517698893063605713581423228912025210729330923530077311255907542990143779373902293679554770622480604027878253471811414003478937570136310984121908881501496284734073761555602391440329054918869105036037955908346733866246973015239369973866315913917243423045880883922969261047106394798028547780848863280129587835003780921445335525821084633898697010838655691608925419652871815621017030758623297103492487395568156606429086778488425143620216453595936920318580832006713828636327410139030151951417789216626691325104360556617117184444636429415292575517076449409838547459070609854328235578391069216122688274692191927011426550571070409735684893709457594406500292107193208004714329174538977483550606698978867383821051628652785942134500455714444533099448306830718437133799287689630231978663275725469351145426330606994337596044197861752034825999220780727866255737375444919549142213654656684195917667121659799558888486635779115551604208728928087979226897392883007934624930611060542332920730426656991657463634109972807980522814681844970857642749544002280438181742353883809235732503176682486831117475551085320818925906370063785059876705315746762592683058437216161528543776816524197233304015215499373547545186074779082249840863468973479530827615409158830286950155250638329026935654947396972994828761001378571601139080142426182522132561133081047771611229358990250355377324985255496269520979431326059941108392337922948326745985396797202672379754389090215758827563839583872259917997286628366995908854770027621470619683196662607485414142645053074352449188137055007009052658309693366246680391101243042912159107290011588222169312426542879568983187716633864024683901869320997656772949371494589144734173242125023904274792182846729117863225886448784232892594516671025107960713365148819463081580903903191549052981727426169514319754175916634135403805602802880696930741245062298638473841941556356062202079742041815618656105097407419862823304316461673383732874304753078172060736760575866495204716012364565973505618199078789696702645947412211821547027005066697994776328545556235808984020312367503516269306927704573207328748822302628311462027364717904950825878843857762737836291669050070974805349326243791378199419146212671541824238162050806684373059949060411249185125985841928739408177853449576093710335697306091816711083001102835811440019876709418891945647110870108283257853601461648696492082401832979098478864199847887368933070477571834603461549567454770029481074178654583711928797778957439780805895352353541477363722849036297390519195495907426501566643675953819118722217396318385119721252630963381492756400573635671386121780339835432338570047344418491954344936957128605304193186754345722813994951288104328856066303641893313175434612395399118534720678732426734607002172218922221486057309473828950619459571972484725051809483872873435807415638093838077972931629306372899988367004547815481960869835524061565937717397286519649590922328886632713627714762818674124447502126175006687790663917156405829012372545831802824405744961233560587803540795879200290200023568297696132285350639653683056203279534991058445221822528635095706926378656685980310175448017279880671528087469780999293766235116563973934297732048021961195098754183029072238089810973142297450857471585549853240697805780737396786284477859843771077597875697119322813706160583747379275620054681903553656253906714861884170827098082657967055646407197788139974236856021509307142554142369584434574482955280875080483657023702185400727781442118244894701037666009966339797117627786067777428862132907318790078613323849170193668158796279448189346403557610940632153481138297917569549044680702673158556268063784593597664654053965436466638820125153454496795129118169055395623570586219022891489036553044157415455724452567668081393100369983647922946177197078268755205148754205887898103620552680339112615819252828891964357050862962044211775349689979660399039685300871759739601116305599658799432978159866022286769865588044179606836176112824415641084024241880521137476986791381706721272592509308536984467817999051159453219388301040482594947275443765408371590493476780957164675313411079426891161044572611409216474927195660573106397205325686553466677887246543231516169970553182510107162763306818291416725572843885165782576237301372621751003429811196031894871400724554102083270395058999147161639195192695625259986138082717620434905175253291141692273122828854402733429208326823940591235957343370198940397837584752605039058524617710742796042086370099768819459672610954924290193028922328034515284223749474000397458636747363466098553062486132504735865664090082607226612303627393825764868215891010451177571702950933654055833747373205328502548615627083981286404131168675548698773479599231189811066439090413953178636659897702021619583872140925124503317795797818045831019689212075887569505915702634722245353057285429118716527954438680029142493123397678394853812370266747942022713764897769710389802883100767994825083951245299494148956253633765007169482298228446192750961308285855983106970430680582922392403073882142237033548053944571638468320990672199907456280515223397852485586690115368393604611169898367596164931545513714227225436416930562751430423426884807498515164156127249160989016481557262937486829442409439627709928163907664405712840279534007221989821018945499108382857239747496022872475537755484251609330551610602947481734494393477752578831524098509284170495548701624287605194584329828246277255103577654420406536867032513943924513321199886924496864395178539588909206857334488127039223344660048816997000766586466498958257652386659880007860687184959615522646167476274399090109018526827512123577146657799252327489548898227656403251083156734476786381635943587920109537658871527027277700812531899535369760722703464539534985239144421027195979231819447936790693444238105511429821806922910736192185090107573154487050463662870862357948003241087520169165469502858784560852883860617083719023055540841979904453825756495326454429623742976520531189357899610411030011233106663665098712374857560701641568339657962395923114522953168926088729575621166565461890571606229013133545903666634473888893935866229577474357328496368869419275242214483861175151574483744419331091925459883002825137843375230029985467249263346572304202667580422215341266399199354430449536715845610514030641926900529033422670796786146677464702249568229544681847532542101666216578468671826507689073746149407249053154948623984407039952623494996806022921305548931973930102465497166056379338211705278390438407384635394730380834614109090955238324175014906740223669513625853091409267931493655744416067200149948483821092962379013091413790762120601546467653592288630142987882757601413767307334206936757545972342905314912329763339223194272020892296561697297755611047104686285085437492808411810946994481763172873498975975814936786232388785235752245000575204157588479537416279243550152047083315277872760978024563490895045620462570399532613587774941950898492538167445823266673207624212020897279967249558013705951728407740690940485700830984363470280240559830873734039495018132734500098316323182912659213455078508637650786056359292733061656591781967688499300201189919719730759446841349193586095147458178137068140049087275540884377476589960253422858362873485325915645203178368782107017878397222023387557901963839111534871710132143470997964856571115286989771191326074622085842639811682160884568712812631200659789924067678201722733323602217362932669445963395425069218989295770867203766812746780845870295267917941853079335758772749070428334618318882592653064277866428121687723186401045322845979043205283911189281584508688533173091665466222818665614685060145961013841386096378187908606552278442056966290249470912450137270931460266456440450497130193444229404938623574553157156104601161989344850827443228390197593700012342509979429029157725079277812487291608079928842792306311716128370171246005854476771852992291697937488050333972806099638849791238626935024607516618833073357112479298139667875063155585758422551984112467441233920631679181689312033990090536467933543536515968151418241911315733303017323630455044820260284762671580210239901503709950305922643929325171195273333141753741820782172730243660873251105520000117346395886111969142865406926625440854448528885708085529506668555454064728874334359987981595450937328776698988512411200615316017004856361813941990299642613986999947114821597584342053664337222890611233219831621524440815064628128208884944158047102804560401278176937711079538382936260213497519056229407713220099141065018818060413499080669894296855124881528101966363807384534997125242579501836772696986574766396311174318154215293255092257583441139376360722873656403871518083686154954946290996847503915542771636576959750380756445199420220622410372761839322894331953313466785974287517475460967981364366066100183282087524762809426568385660591361693596856989522193339985900370181116973852384362949366104453815384796860348533797713756438499697145301549326764985101336945880626960385659642706291622704744974790506305306857830459828543805716484315638628745890531791877176254075505850558286011712631495953173339851394528657639247729088195296228355612142206071319963113430137656825139470133217687579067913083099265483183606520441920515931459480332824954391875333235847504763976786427898653557838113214953174484210932305827103586415762618130361133103982625278813782982673762036082619798744851173025029628598067400516361035932658946862213349259731611748017784827982394572351283959434265972557666845986755096904088430522873092884740534213486953255624406605525589890070368663672779654063610348479609488819024258166847125434960397572312351358148155559477242066916632844402989088489891226395715184422355764373876594477196323395772751107497812200212986564119897209898347973953066205158743628072426639821247621256238970254562554111771793145277252094417551657224992223145446162151658196134365406051798813116082932495118377922416636612352308910516820962808224325237524534997863871803268151546172184180445218060477689165219249330158083169943529257476452942239918839582701452911530091657943557384854684982147655957288536921490855053818508620201440623041609072338980938947331921821537925367715991901584682347306046186847491256373213743325966640074677514320712635119166039734352654350560386749127785603768465525477427409055265973346546162438002608866832894487820129104952958909989767266207578258613804268384979954661174405466845927302784338997238683392598967824409651987952302719578121340835197594037360067140923186472607970383848741737544813520850344977640269506070966796376581706668263460631440598751698977390506136461905498270609156961894089943337445439196270082653582977821674816456343703123466764578827515654090616371382297721604310093539472330842727747664795079291082096585075821181011393313537003524465476391525884208874421822049941135982958815141674308118709172161818560360122958244112457495999393131421490455372440097749306147957842021104592269828145347415183177033170962113414239326874626769369233188712177808485812377811714759715764307178024907569295946440683335124534601422873261523565255467665867981861761427374709687593311906664103356226902204708268690222575116843178675939892112748465398458147059814844271558437024224202189826379927970501026227952319526815342086978269764281423790677195218908063189328772360592694058588629685389898163953460821516914283708449325694138130667675379343560789327765038898722313519753116864406061918495082289268401019363615269094487828357997470730831828127720027544513374009502823023240822762516828444708850786216914211750587760102080613702002723489224048910970160036031694429774367580669339140978985936796338544326127202866012765003049582991941218974637184266043827510030318671735908917410033894980625771421714606379109872675405360971062129544245458474199361654351799903342683336452580562561116723441974581223083470635610393691780878288934409024658802443592674339252766823335655246992590942992856220965631806394292872889814506983015364964355967697950572381493186809802055072079984715306980641934924875004386335496050151849051637057827973263674659280280806028497485991094097415138703837779450133520178218416059427994321520750806169736163841230084602848434797371431355491855898432652934130513305783913778141934428765129809598528519128679852680900822528252613121153775051246622644313807233707240441256562865919756341668046398645664354965918188583492253662193170619065404023731705582108479053128226691231467579356741970774828619687744128954919207623079005015358620182017251982197336574146197249561977840331211944102873220623568967378909608179048879759866910964679255991267264760548029563997339580844820794279816214006008888362690921178962279439436492952704367466513399426284108284160231226899183908076610580001858235110289394373269016530484213290588756386846534117064866628520662082728309774091044254897341434905346329491123433342970795934453055148795517582624122895157412018948710717469222153096481675207017008147391739232928757607355441240808252974270785742941601807891591874784898799879649560495158764637771285129821244477031113451706063470644345003099378039985830838759334798844114320536147546390004557866814948160621441159745462695784219711646252861398209375803110277261610936274990166450110842064712068706712675627025490616979831117560459028977815995185451519054980440654054805769044413665587373839887846019573330043827122184644435610795114459051666321424036289642309990622339698750555362576301388812073664154882252238199689200856463680555035954122832001107025250775389018226057982009527578069911138273459637649416762918114579957256519694146721458415360645356711884417576339354874100980583517304503156237073431959144546721996831310787467913906732539256423883095981126963418655885072125311206932841866149777577799560779812179881651481641040596104545899885672409885502425090602996899367393390389433932970597406917673148913762775258366489547988348363903940201565507208594032832531254476163335957860942056476483774359905278735882215619941949777512986373280367488266113079661351614616379572751733977630253369107459908989501094585591672534159075670046606558218278030907520539911817784692003778761032118015198291695518004165806678627045561987079815711972767171410432323291866854710554115631937607074609766742849962332230262492334351695002474147052040753727309501141286863678398647599027948312111390404297336301962956466192651398597977430272455259794934793875660288007273835037076639741214862106412201506228108048405943881121867390746773057780277177665564035865320599571710189829042019832795008273042917138055975503481155770860083956294497172413217651462202861880823644838209572551898117215766128804782243449102764691395381054498171962109790650179340824916359631580874844020404063472277524242234666582702236004212872243182747533168293345660882935295542513842231762495301929356874481543608224121997783906394609859735597829151243895667234326311066890323782932726390827247223476229555088478113789247479593028333072936441987840831311654277139129279079145424394253285685761428807878261827138694715257536332389025874580442151071769297883640163676513170852551026509581866339728568611411227825509854471506611840902814697623840297301660560701713968572241265153059914657557905395598545554305872568301445732152204693556107848808517120908496130701984136980361385648594578961433239927888664111137783625369198231019635095550605627452961654690691375118188690029098096095893174191986787139552246903251944870194960854724520282098316891860622154830975509758143913835176230206590928373874945910152579901402322841019139813834002567416185976695432357707590607963371240680704556776490594240759656596559069746181456110518564785540383347256927353798055786758746921376480246775123252900122411836803450309902304866838187517727427935553027159252055728598192372061072872693050414704285066231866300243574822946751722087874742085787249019926533098760397735037829490596591924432756953655793160478183106735428756160559872318230000464647872048638651039738080859531150694890179539518047000542742476972602955679163259418212285133725650348708416932343490113343013969807370374127642313139274517682928506096712932065922356020343720327526911699626581464018424317988558422878169361023771120280590668367478764518462932221316032330666587519036509680526724582158020605378730385438243711867317811240305855260967078061864563560040968748088615580061677911074984807239295695719376531969992438074399682475790619778766153127991920615284010189806879192299623020392509800429346094793568794483310836553670642065595210311799005093488120408502147487046053574892576580610514183764875154141100874820342090510513050134984454272264702425504502524629376317296896887019592345103550725353999180422471409357433104298611524136505386066748770966829863366262866766465148642225913015819677669141526083268843460257317235044380350212425865905337700044967213633075949688300338738998798583503915588610923003664022585886871133154338923668588896010607237062281308175726519546002053365850265545541348396797617558586720397512662874010467077066989158881568046894487136432271732484663647750780711960696137498847975819541283577379707104149816590500437894631351204176101920503885600185087189641381264982332058577403905906082603507747973488692234946484699251815207207378549261605148828358710810945743599218920102149087212039435333648022416474307905280438784613299689210318283773185008218504209975765262917507584554629244484867823024942111344782583213751817782478248498812005907195834769081565303635708436429062995092999328828091555636781363982288524219411225821618972319193818300913157399300918099565556737216019260734528746922720205701526238911244799245775982314415006485256025940721399276455685526434127445428551012921672099334645784029337439160927603575877417672873387473618645386970005224419321452663959527432232382153241866031899864719335926734932507419758680593504342489992795647660160683566061711711480291599515874206778021319587647860450702788292856899451075398438361756858976519984729208537663215758618944646294111755555194627392669891744926744504760019982865435050765830523005737011796183342157655545364299387036910265165178829905386804145974036963012720371764149785259938459097571809185326175717065856307590023086689323260060810267720285368772810498949746949802833343736980033596017057540319450181766747623424949882825584264603510508978815833770048950553004311289108881550384838164826227279844217695301454245838590273848522344755656577897988799599856271984493758172864121031411827073358909630538863149095599138007275126403300581502097465483125807486235982960759404063252990046964608797477575223518169100149763323063173199964745009128451323791878282043915672180724542621436814403520919900734009947275764348408946766417739695323745626046874859245455154379318792126095282348691811909453334716545427118837404350909063718272139892018399413745626360761305886903780899117958247062740878597834941673413729129959540478389109532211309543239160443896301569613464987789585744782245584400444183103155241169827402934171491453645204512646924806419924246689139847353853184162172774764410741802216774493975690830158156216746661560123799744313540000892827689994553853453471423506995010109517739723502715183281872890333865495996628954938462695577231602023256324117335292765687817052596743436712694192575294056585047877088003331320962470951507145013856820262169395627880603695772464622886654573537048954686013409142269138724901843204362723391473769377285828644132772895008848478203860714217858540702211908328270520554101083337086017027107685228601049350631264990480502860980192668542743231556567099355240895951414539854985225383518439922838870486957761214577451946841841107244139662167844916128563596787118246158406300883791649430591336876465491473129680119492882258775448214801809915373318670038721618200611853899869258137093297800877678268446920459970495137622495916648914702316874269831755008978762980861717458458666441935101844646564335611261289094822601087845091318516703762304326096233667720381761390242785068407070689756284050314876984735393679037551402012726844555576964229904505806702917605252159017975807039270846108538604185938696527911281430518140609553135313719552754665550020496136864285237388795031486782221686983437896411858411509994613827406805366116586676083822250096652936481164495938154793185075695931011242223729953856021487558567076502781790148782491129326816258243270846055698813739246769261743678312684704928018376133799576895773819262557222334153447039214807156145143259714487549213008281900194303624896232001741291151867099542709332283894364045247614317131838577035424807705397810701872390621926463485434641053694247024904500555430207562272819303521942152590178009054161737289260692370236533143608892217767412764289318791718474011998584809968132484108105830869680773775267620080664986076700333183860093834192293806892577014656827886114248905432605207264670891398244707467193952075693040280690609723800678682193540413668112910854418729854680145450566653840335773275391568999958310493659349706509764480745308692406468422263089738827002767763831777729257089611098740076507775274166698712178326805206804529179514979783574260632562348233123026686925834605047570526312970114682039890351573668645650840881542892019924290248737597480872577707422420136021452680724259755796304744094073537293134586583477862846026503898709396022661715912140023055860763963331814291295156934827144980983258773458590538792020694760912084126169910362723135260564832393607962497246803875666938149182136604556113094534859100469830659469609668381626808264740658173156292428139918268511585118473924173128838834679180882340436129321308180007095409342944225639457902308018426470633719562219499600395521987939163351965524317740568545767476734528066842131380715386477429482595818095128669966704785078392956674788164640421351920582083763581333900506884732254600117489360689486052998696531958621829787539853563405703596688544400601310234203600063342724803485291974312364873902243375170157821276111966900762059880447802935456383241739246474914189199046581089879915053866404322040865449593981351168842746666084924711195586468526194499093935091659872573438992604530774750950193549310284501128167842636677263789225019555590391575429596281315720133414006050323198246251947558648264276325828739544796336168460793692710668451201620031305462912732918979634889799998821681502570548540262003680880351656403331597754244081706051709817219015325046567713863708528470216830599687233824106994072990085757928547187760325711631586501108891193153792766764141923468018055501063192246078108710172964587013672586132287630237027399326910244518856100449955417789011963123073361762065919990268216899310909055098156316780471878370039797634131099469807026822708163515322337784996155934684668168523731971389261923257455617869897645114365958107293357538774401860360685928477957555155312195083048175327246741108119597212392956220574387624931044766231642752670193729775678466423938453344590811277097345165265704673465818082656200947869791547012806088288491204847619983078682987005342359328242774734590095830047981487971861973418315777387563630989850450952393386542056208545675891591703407420583428302110285245760199781481498623019366245194645053927848210233650366896010701942707326544074605208897999771544346403525132211006362455927138014459781376636728061258691027379501200833277501484561822776442483505011904741699797858945599403776205078028903973813706426822009666129368742290988823888800169642175493685244430473598176962559861917950571414033517229277787257240938933849203859892976355569265375154393983469405835241470503819982291618695032369757389856223878365928387366072790478032106278980970266380137553143863111494206168520282327103065134782334025079391787445885401898839369108128611347013524411527547409130851187592505157508466415242679567939540802820723000379066010313684924456679027144125187786731471894487200159749214178085598985693117469210304949652950551814823203499473093647014234341358741711979877778637506479610039911088255574993698601500013561100364320591382312051627961889718934496250557725739459006308945276599916835237940050094547565502797826306852173344294811472709389454216168529158399306932749047800567265084282462674654444784997130775060041503612361160238551872546464303695499078431522742747348671565542931142474263188955613199094725389438539748486069209009062109078706100780149548754543998018129560472461035599053588289066352551408004406260610442317009641379538956420689392626564050001338471967933021647124811867854634414166633053065175932357912711441463212288036495661838678574751156448604023860361733054519569696571396869794142876132178127487769334883416427093342305660966490634981150830206134911187366789222104718203413072682688469577515006881532223643924748061104942268683656001604735937313118697179146231016828251755780871567985138822717117526986882644226007771340578005132559981439011465468062421848891421486446684012536295448194630559110303768449795340595849998497214894925496820954565680550324313805259935307035600355020297573604792471057241029257854038466155613933095373760337996172654405135697164511526372180855803694317051405052164065281010867557939388029746423120052195918279157770722612435657440902123566299901234563350313031788226910862985304674274222281661512521762368692872017666429557973839457610835449626200516956959494714796775522795960841402234538935645300436544044571840822599570679890437987693178551834134071994449642370985016818089863823494220959019002179946211107464991087922380073960324340133123283848959265551218191389852612289170749940078156707070161545265783802928100864822463742034587554155201988101907140365220874361247051380667625105398391914897825454079699618900010261555064719243365687347406956920585569916320575635003190370962379150088091633288521151392317558573693029512971201039553863537403100719624089100671493243116203861261319548663102975220238747753803889760201842617910884035314172768501360282551403711106621860932190093211411822718019888234415281877088612252660147698852972709020998447588936947168235422732205820786754665297516874624929164987524483770023229608313239013994537555330489886523675795936746341201339607603750046405229047385967989203762830360458094689148823052365001291816481082562336817271673873724360592149745894687732255353078270003545031772788214874519250433839381457682530188804091140364043208297303367579657517359795650155383094280724466110788811607251118065509310944127157428858163903175698214475761147633753238366809368963690035443307305005731318723470788785175646079059212440799897469421498752744425224827833227564538876876925366947110071760811996145875922201154849705508621830244022595874387270448556663901294580929742426821223621200211702183898026549036519243189995063020932046427179460962125850638112271697314422650608407742598305802438369389021636747855194868171930461085698540153528770489993886525502888935701699142806032179929364799616237127347772371804909858069259321478660882770137946223459457153797050720044062980797317445749976882817401589624641323751830890092581944600821913722847125963126505699169836059088782559127869783359587553980512027146237878983331299837960000392742169996830098926956499209745715667166783311985973762522394058691266956573805452381975279554078752146936152812912223803215267106722142118866684833958746627190732572757294174471017229510858417425572376911769236876469664836734757704292438113536836689164060323227190648564917824799307162859339665507197257393210583264914517108487052365925771025551794022187213569054647085696398993542869083653542441814438376865746677677589128359850823098903169848386360808897812059813560682308560288974739186171681665911540032111695873974555767687596377845217132839268036778100701618788851605585007045985000617539818878074970198773653225486382243530293536614269814199024631471949610558044688328371481206792831198392520324519405259763454013501770934973416969295324042044569696453721118584979735434837665746426608087343224333048638947626073557894058170466721110092656437132415850146289113486434177925951041772293486426626827056710178334384006377184164043008925507734033525431274948188363505633805670197047222093768367880786599416773786827913333690952390255193700469383138092675621279196640487832019489960450598873392279833688802997793154127782621357751328234930106893383402010450036232311227617371324466517060684260685826724445875005685540694215621789570784089866968542364804980338943020038125431908706496422397937782630431182236947380906656975191098034893003184453182543488240972778329865806540447934520231934348876003467098669471867774404745150471793486567704570617797076485188925211903049522168975480696921070525256459299787300871311016476233973346127776030335309741112032711257738626255045634183877139089326952976400988058175582388335217144067850445994217486746823243400994874915753422841012418909088235375428543249782360935216354113878684251689888492093301189323111647191703056720177162968984072438214444143578594511518941616660667998639801022062629199836425851385668684223313715342975007676056349897229366245230811631979656876296709574965969490046486873379277067953484048916960490549219183727739321841675754899945533620674208107081769273369666178337811097403761270513709442166426489546255377713591376559372432881268397619422923201514729011741664431558097841018276474834208179650952478623279820764802231654637967190081141116414562921635802996384240995310761323588322954679348388136534845005172128293996442063527722996391682185193738503166264319701113126830835341303087094886878477198160791385934333984890596800017744776429836973744668195968065215303885910638899560474194402375670061036755649467628422999793835021760648127775442067982257805750714908587389553186582847308566002341218123568171343617761407351931099568219813036998743220150674680211608663015875020532359531655306762268057978503454057576965666403577065893379262355081104537240895153196312632144396463102893208813060575573976877811433484763551154375680664102564666466924789289299980636828049655471096180222451275187611974545448136308033731070720886189476038013206218947255767544565552580216265080965634849334827646381541333814258957576298235007261458639524542155237109275511474218057343758531976053307263653589493975433090346909313648683051508485684887925959599228020730470510934416750316142324460518912556656596687171772457808409902691411802537643504385872085434661799563806414655899220531240128935295919941263971508872552208580932461902048897685937650654614944231733908593436134773760753856549780745056934557293965488371161913197094263722206629246291602743127588551455016562604549532144545873244829874351787075519932877724732602681723735678835019962803287881812815477406444672850365794917387189458486526866790840413464295598349992694712829439412631813648633134879718212386240253626403054074960150490124964569539518207919020897203163735360801954620177697249452008507914453171749523632074670741542632166008963374035360198692114237591168813070842893223581550728065922943786145087942916271453429506449364579934501554818071131402532746698016542038933214358342922490406147899374159378223872393109813476374632105778640782976484612109202423008992930049748828897516406958185518755779983710762376500741869287696055727756315921756063065172690595304541400552182242624894144887371267136300316161178028508358137243403445018179865046852116062890150467235176687468667386541171543254168056985613376247954894820466650693359739488576326834769741134130286922796169594125280430572568895314867260153304806065767322662571470542333549726651219413679823469480855178487148019953671826535792878678080571436080643669232507366455547918911367400521405496311429871149645190377790248273865835130646385069323276300404764983844756887522105871976864670420454801045827150777504814796162626615153022434188227491956636201796550365867095193228441798253782769344682310324019778868576557171803254617823790703660253169853391944466609427922503295993942074492655683659253686794755268764501857872166087454049926991907635203930377499461994134524519873379606783398617071779933003999285256684193667382678767565370053212971007340560866233898943606481824244455857884577726946715055212267184423642613480742626728951073779195977423282398546836725293617891383372000860309693209092777257483291118520704657297577778498915099723944047289471533088060886412049794078288800346662700169771190352009231913176207388061022039517515048410056489021990821712883923728401517564749895597571474114953447834444092452457717434459756326631570355550542683313334771072157509205340908451334229475857527806278157475329991597209515386412889997579692591779283842087250615280013352280203633083948412665197370281171890699611814556409722117173956816171085213807619581131595303095122195151256056525888802452522051551656216408938492804534035526775311798212232549894743860078254879985491586328281010427014328669135573972195645264655320177929406521431745254772333472022196523431128972735559202432955914210308839462045041532587597384421956468407751792027088352545307138707460970306753174399787643230131306401460157546946767039278906889905703168140466019608181531242054288508653503961112081693164201956183534187082233699458909609195159757806404698146474705022301172946011857005452397424701607687754135026134960233206441367719380270551936962434599808445415711474190034750329866204656799861147059246080908704883087492714915712178261023202545533216360898451239260768623359242204193106525616161234995746922100158533943507524860300202568762144053118408482711043989365647948075104224576000712757663571571000538188422208795444001921907640587884187146015687426739713238231725417843471902561897647882638724664081500493101988577508622932020143666285961615778266218773389202154372395977549607258322489919173182507188204239162239956386461477504909089571176568444151314052463499371101035826622377946041631462838875382332040691564860926542592743913676633299043097757596461423803569689428522715625827298741363186694706296649960741613762133011451827078745959951683443058382562171042200743826228306020622824215210737119103954756837433681938132815916809235540862657709188976070719310546083842337053512320375833012602093733193761496764281037230345078046250696833795518972181017721881870010083959784325189431902413760716570526408285956753206871809578824293996473544769202746261674295229002216342380025281703201477807780732332731231935084088053613101693226733280038607551785158652002042066749062392130651902322893694363729739798952281970605014735240170090530731088145784847396961287842923668617461896842024074562823483217581268100395160699283792141872393057544477911929448456305094459651489353010044579376570963957234853288500933100144914507959329397527142630763714995352549902736498205379209905111983292174971413554703282861243538859109039178895048953372164457998412302301073133027326777866535711908102460780111345231410030789964172765156116546591937607211765016396177116711942315336207051516857831087902061287689237980659024260823931705610098435867202748663554375025346022372867968220064678199567588683748249468824714581662242563309299093610582834504406962029538166146055902111879002374607674963585161823749183824497601334395904861294983493018692111335982954408853201967674486163358872374056582875153084567753168129159828892814329451495071138595339309246990220057364528542953631332763687889985290630140898082098397339723918123162117336359931086642742264293837701222733664956779550477101730421673983527164714087414783088553748114809497538226629820083890405497968025003035320754162347609029719029385172317482472225282184458714883635285864761491742531872648193435341620841523428296871620719409527814184337591821047720695810593405711236187503850581852330901225304141821023980978566289862410496166474721668163210415166881470887375066109687860948570670155286871835046081018752647446801445103362019740482622403129281416043988798948348699967612556555185170242101989534079345011445786856435241333686660759252091085650691694812284192510384911821625866257188039891389265539668171250352085962200774536014564443830044818599595475423594212252339772439132109843476320750235857431649415848345795090917586971326031921020396947896393007540423852553865288854061782548073278065742907749258329742770612862242030047055970413572440860737940466873438079550821069185216501304437681978788585606961380715103980646008816645469766159234615788743791640761526249787900637235939863896771141434775805486837928788291293188951372983966147837710610474101976292476102352965465437228359079764177625455499553309878352633986701213058256859524591205420033172500849496520041537585369714214226782287471636273511915110323190736963947051198748410098786171584117978278373341404693626704116688843119153867489852415401805244206764427348966111496969831405781683243839733677548183074248960802931510655154595674683499651049453944395080784015784751702466128601315373372958534678741583932623805523373233841993861238323652932901495059957630955932359753981072450866014060421639543256192795822169457058317259709190519144185713578700298548374654221118969612583318885906961844211605613728751919040936174806963461714630439803593776781045738821136548320121615708629365372502463294599572527406994861068982627028786246687495075330796090929211857300755342733336411885779065030806521270610104956627173158685172995747706618907094118747908621457558861864200886778284179982584495158159708278959488293215985904811605932395632810675535238612246479117163503143571598992200289329093278944458806212629977931492998119292244289920464880981705115181949877546608717761937375760538952786786742014406153892755312600984638785916078018726186727585766652924351553443763879771811559771873737252720014803652222497172391962746636899732683210261635857107006567670449339757805159972217082440783818206881417671252022756759122025743494771527673443149020369816819869803263236882208481417487903549156902869432555489599037951387276322476204545920902720409627056346575899953111704741726379980327786104838090438568821182637911990296912867955622555804613429002342478877302087337237279793704905759892055209768159575073212437926843990562425973960226803979056785297271280574078325653139300394621834587728921144037620930120579094627112298164110213557206685893987392279493422258441123521092243017688646327037496910706282073617550149420554783865560849728171279636563707452380834127333302760840632162114604461364905500567853780554769159676315123228400984849811171741398222324224727316190430489455970248690297269899056605747882454268048032944512199864968239830125842827202303901746470897642816119633890470602977141677705620671894849257000627713046284232773123291461102452604040311117098347623620568535038091871219292810191139663859082727904200823667778659974334322254729942339048656563976856584668641014068610936762494388943575989692748672105009388290770918223373291294728857789604847906628540048117834070185879298806577447247752570667866779329595106678948905825691631047685217054150244171897466102620406230509336579231694919769965187436147444961277510292138377947709218927055289666448833903841269308611786164264523541279241528877357520609747520593324494421419410156363122037476689071951314356948567587039487257734023534200120066350700387398016975657607194938989058243156272331382730569033449446483133070996270882192055133074593251175451419524221794335196522394966030620815541899709638452518998365640065086401203473229738633158075590200667678857381674917696148523494255842606770599499888245380557039158796045329821628323377218776211212850448461993663246033772197179325754106927946329527021161848199772464959539688584539800054624942595945453625378487195783500224412483884539809019094806762060057310765659756996513632276517482080299177689653711596691601680884760997368967565484350999927339655359616739494326420020639896730960915018316851227818016042769624177175670274868208800626749046400075064475783301925520757619072155057653410903885050706189193550886379251088681917557596639252005231419324386050757751222682307243617448217830324121468886043680339938512175015881214360968690955107443819869385920271811014020931620794903494576271721579851850327245540825075749703833497415525495262246954130673254440973372239398799891230997510428263465944642278061603589342005684876006365367441529021961297502328218101982227502067636499264306364221434853861855240166677319102721838808877983751482925532638747921042928830925447925031383032642091913597376702175596005361603966495767541419256925211175457712716896100807873720017808904423578457088577220514361876058088409834409159063271136336887430578822708004091066838016422759214002033831465767749371313774981833317855820147064085965608749672074411519852125931599942605601217367480329658628923603870560253526571521033485333916592573854332617209731087578141209150536294561180993542684309838893317076145441401219988038579835752067847005094484803545103366514237502844603977383851134945758814007788163635026135759594496924557710485041631485313956469922531694948955612627515827369310522106193465508067524441304545862984971336541174251516455734692516696377947466672747967634607215653694379264210818826102743549354653321738441237052745664854582417332246830103125249859456661342032779137389828311039239600855990672018540278307815491965279819173997546981812126909097286914851858086885774332737721471281152783152353830565138284536860694148531994593443699977904898609246669612219494261427928980035436666687567990192533148948992771474008397863653213057508953869057116740158524867527480275576518447785928231687204260388991311911718708481372786519253882850529314901636474274276650118647221614185449192562061752425805142261902397693692120596578185803214754874852479884764817175576107801144720372896628715014293123174501183142573857612502938055381232768784379139261176760935345312056980012263444350362619881013206039949858146042624323653882500830594231965944967229531323318391371390284766290647742726469123595197594317770495495462789963472004006837112117524704673596406426690106824569720616083560528686458672743221533008019695091326207075024607668607290052521630097503007094205160546048994770390350135589006370715195477984464334560473486384108898544163100821646363345173756030828741998339119290225455235702762282235856525487605164925717658621936260299412320710290658270630200756675612448380649285187599634181157327596252776875340833341761153445927024855386423469097948707149249609146457118781853621911613529076509185310343886703125603063489507833375600351458875867783230115154784942816885266623938963890159721757798999131442300046951916138938508348400994447993047529893273468570303252647746388066198899293726737781590145519712327891664603955008228401986281990197509977736255492220180823385904142812375043908687911214005194997484336769845893991654520906457417528683781325596685648077270592495097162649894735708810932553355699149144018898998585914303645122026434609295729164827589581670752136990777228305116258232156702980914668990624388176896692952359558240696872648816246511559135321416607967334047379164523072638863009177496712141709774898211858886483556460272715631417840249561868438384863624964674013242868210781363777123850645485860869401684981709205197574579928957373419152205573235456168302022638941346993789566975995584069550979716963852311283057687851822870965578056950270036435960047896791180880126972759337397235796151251390331753220705718017757290244218911400887592436729405833724469079902277510986722277259873957055125746183931117648492054836154565506354392868973854000953390174487847136980534959334259900566853776362206240585339942490935053115059238205515897043135960437123585765358472622836719109354947932370277185741659421991009082727305004319552218804143080457854910646256213679099197506182458818916967552135187963808040768854933824893490595239943712742248047686854576975339449163129814697497798585139978806721416606204897941563916767424019599563340384980879144468327454903431578621977131803618150593507733264411501387102413681405869761668629876112036295649236523700751115147433584977537373598961362448925698100261396852738003772738863841615688636236061657363939289488563789262612680750308791744350287763521524139840761056103314573031540878536828560853752614120560796356032702255162963806223422024096533187013235654643013769190471763559684247462298382834413456542992291980697519872762653058188564154177097114257340485963753234310562393120329394168300447316451921160220428737857687342616363762353232971615506406091447950804518854608650431634321384794833354164519117964961594848814761304895603616963827230734633245113816553458749414750311418584897121910494834327169397889211516240483704067046481018180347185920367224969468105267931792115488351776196750629582651375595737286303731788784307534994339670117219554311408453649426612740789961681624636415374961719232850086117662541529849809428973931688424283837320272258884333267499381118673320047616492302260038632013890778353212298199425600639042053577852167612959877777223086106479648156998689386864436277166645978123126793549206212768283019332056643946367404829150765381477673100826484068922443596901909645867579890470469946589897441678710814637338837949225014573022120394085296893438452923080939154961290400862591338901123592914142662992956455119208665430213925714542918162484078413100693416453938279913591798377280099895916370792153714897594258791257913899407966440223617572028813432579181522186651268812651948910120596475759402832121717081852488544324685437967062961865911953864631523769360855748219237192914581869135376940782496032493928301763853570531282884034855882444228835544989809062947178132551729612170133595183242970130696186931448538885298709825916645430648286384168131324469973675074060280745413891772318686347508972733438714878566099937453466407025378959226296956901678854200860360308866136894795251809055669366827605446946382310532244608557592717143716540727712322386451676899633233039055373200783046226002293066180843988096431617038889828280927464514803786487362242213954422969222590804401412458637273971761842394757217469090207195233538387179849504075357739786015861329107196412913242991577769413971895488210483776140173331288723281950923081630855490317590947667989619526920099346091879990463274688319613293895798760772665231480548069474786478112128177680350225860907351863447463551956203245078704193500393669338865524255601406205498195009234798956846242766608069389269406877987434974551117206879583153806299409279166509063719203376148452623099193943126029958864127154395378709144029698510535496568718522109444741544330858208200079813962752172246817524269875834958487676699379215517404430285130746446778504554674960799749272095646205780940217291296007588381211730340927219732873540487950816596496437439858995132096550858502116720735965800442961183463878731876245928194251037191581961858969282494132980394468548240015521822055950629159980058779526725759277659303325686720029922167187500258162740073672751546109200359003145699708676112337743387827898594986844286948526161016682920684890275675759743546520890885653040934205822140408060187412745433518687324095337552466857743426765709745533436818234612540960418699308615198287610504663356131785887634663783647951516125926938859778167488078024818111861947194080095807783264637352170943403141633504541304082432182441809651247967562686855580270649737104910560596479573508695785981667259280093585208482671869665684964802560434169944460357407544842170663748843437820533028977159957353932718326829782704826955764670286880767129592901839461366361095264882157952141816746149503518470272880013365967042999660258713062909628210143710059207971709060031361766507900576137577119084276029576022556127423990114346850145585877383764003071434559273178419061008323679049070716448815390282110704546209863515954799706570409521324565021885021542893580851703044963508686198207492478416525302256136119342450995702352141062698609882168113811281758829150590866755135967351319218098461269508502511996165108590809848872584062828014687202217469679439872641203308428168899082173969498160905890404291039056135112724645183343732350806857254313969049079052628839959994921696573799596318983543866945832344794373706329519359619473485300964562328692187193405017531888703618106840536908274040275082154268362158904190997988023183262925482108377303375652617846278450571828978084188196330177006202793203609140126889996067270255454510474605225780382671234767950021472384553662800277812626785933120668862676488785388062980650933132237319102069867052506749296669977833438727875308026993235962559152883900251160293400944201507408952891377701927948598112259541961621964049989107314683111359947646801746914846558502640958060118014400647004879703838914187492304591297919215785400651646249447761822743686931096263678434884318014994525696426560531354146833351457603395505396284259079306743417309368752597814306301143897911400854812279160541038040161200891735457183170870298107322337419465407183607271363708758494995618388452975202430325628083408220846226350785154996701136869865456593776680272100188974454345887318351716512874839346866522006340733194885595838515943096708947986126409498046153820965255095517935969677456932896414033351124089148676525770061177593848417908007455023449849165196752210710870409892281250368896375387813477370021699728371811600855724998646569890354049026142408453046853767157920532562231385417734684801368306980071785203361521119260191007034376217667147946196427706264330635320882095643396259325733162164781292624390771782074125318364211723862886558112383411052968403520638614818717856972181967941870882117931384430006277045261169193686887167225964074818207334057272601121631652577959479376048487007701551298631552102020366497511245092846390325532335808617560630176695018597036227602471985014104230377603226540572011012282764504835142351881390380439773265479644839787153085400674257194037569419378722570202402783909677884891362907642702162997157750972731268672862831133712265913975211694306887735613432398023729939519759728110702393369082220389295558350998720554425904120084631029682599219219113583646090449259937977749127724118152319913190486212630100351800663878819829870997757809309355908486829587817594661260966633388175815826728925746093134509509701846272204581003874884887103407400528446994997465540322321290448385222348199310477560976806832550521178849120939369030453145581953931449073953166570351699360203058935727749339848600385147520280178887125925376869773329611711809362322165092785135945842461077292184923338734368244560684835648213419381319327773868661247657823630287096923791791258011398403651509040174792077958506082452955737276466739893774942706348052656674651653227385670745625771644287740948704730865776475284710448105170192552374110141810831564125508671175366868808242261673438732400729806414744091192808154842009689703964582221384266813496235345234736953256320073161612606165015769216118346573184517422458347648904235174475274315819208356878711729880736415875414740945853578132537268882733512413226312932047253052871121785802485596988039108493622186654887881956348410658965157648652711228935607014632610582654457293451450489195719100379406922465334141309840890633847562028012700962108922981073875996701873410117073093765847449935899601532605346151388866737041869130724861294111532444505846866766558147359782453541688191086192612325772171416942497710305099800227667140259726034844365157111060601028254648716085621237793893207089941808822234761352499568432040134610151566444598522023610562618479260244170861362745682378451470878403145991951450193293454441328056006648370835376640072667554915280915360514229545844543411988688355622546674680333280425379851121507802572356344404733246035200144133364611061947839015441925311889009498815689461106334616464191483023270929453771740383924978411685663686335240555143606020541998663709416710646994231856122503567701531316924914676301346193768328493713223568865899456090547539049328589397471474568751973640417560751991506878753686159056629825381505305178717935578100886186507603657086372158056782290691754284600033624298061342681916846072507351706571808084196252417337263408280550670871921808070693263251760143497714076891644785561629692255496302378140709771717864916590614146573049655588426561577883212418156927822681996123483241613810501161335390837670418443344978901435280411406934781853757017017578098739234060825190457232201510832652831841881816707032729579076607985903959358317554009186945236762720315016040478456642321414639578486557868411565506572853424930975172933961552929744014144112724555337823545632202538948940617255778920495911843746656683714228090581904681386361815826006046354766513983882072415711795548826698691087242650687932705916090492297820165242623877265021558987116374338316945113767087797265459643340848116884437437109380382598749862418374932895566253607556232454631992156469482508483553765105826079179461209215515126082317006178876409535379657574272323836298630796129559537864309103204647481505489950830773977502799532142032844519512098542678611810203763694046330732188107468603183588763647988414649060707411097737696690240785985070297667269071195681526076646362554827101079881953353932413957947662137441244182889012512543976878014013162029093693902816353604981495344854908956056159049078917031050345652849970972068118377300816526826878943482637599663515871249123090999732857605498108416042488156791477449999062269128537443584007735981215301306572568357675179954484948157087438303120176644575244259856368936041777271517349448763582877434364479167506588343261465560089019808032945546828926077349436148981452188463523938854285871788217568550412250647262000818141753371609488094236767950042190597583179136687391095601841899986835011310055169679812732863974758791344411613240259177079466149485623066153793693271789186670978665474087417595646390302339505807641112728585630805282717272295000332169997715944007904170832619078483406080106283130948516562720758837153927191274522959674608318541548667478276908714918816001939715910273758692724697009342298431498715211933396782798947747194311007201154542271825319692700201075135581920603400379993906565074116878257417608933358173997211976799012713393925140512292731224075515532708239582472277945984811081396251640609370144032786762281942648130930180696105118960528714039895359966318645586374534616598429262681050176728409389551303533840282248012245094400673612111773286393364093536436761410962223838066739004634866644120086959564785629952252400258337191978262399726694833480861782114430512332055209890058731293896638371610409037376535106283710920913155324240437392854623965743252874679000263010208227297683399169930574367599704699918858185949820194131192235675373954424405576406159808512257652515613528111238294209118556471987750272910042057403918147623966777899456836636353152027612282228779083156180984356947563158534778004896688052749471290514455901348145293026104384615643519071999624755412071962968047902403537652739927705299750793705882065068062008194635978120108320674084758404657897668352633483155757791000698528790359867529906496610391300152353937948406241951332008484931333136368764240161884068038788483295925470316480820457451097566478374154277641188357271249761192893850107079842981003756806714157031755726480693710839544424255875227834580488479504035053138721304928407224897278134167282975375832871753125088694674519468284767401976618701815242988267156431988537882763722888653120494172688885631259650744257259382460424217325739826427105864406232711038430404132532066151201221201117777526870031746924045149640482713595545771058108255819611024704829043285003676016464676230566318931472028569469996621633014847645681473573916930431260754677392856444311463976658123637973242757365814926234083196648632329465438774890482426560485212531568134729540771202440108683106593382308472098192318653042392615266330498623533077170845511670315406407957193269428994447640492511539880941793184462909349334012567090074135332483033211501876289637199298369567628329073694184997149955975735411432714386275380947791103024650052771326544065471533328448991455701053339772287706243782223542713246935506725930110720310753081717118798772708419501428072445101997041222209919273024079946846776248315657456933063575901804207893272144885690699005425487305610541685213694808880233799216148568367210141589352760003705801012939002744796413690767118552874614147873716140857785968302149027136345779667441303882654800703004883241942104490415575930410495389785534174391847623781888697762907377560588155813905139799590428549450471813761373657531146386014524475541640021774324374337025539053136273023138643575848258043725457336805136059061488598056183700232949606438024707548640723083642383534053717217493986993102750552857428219915323938614160507984583328974374731476919365540596217346436796250977708877562527796367963142625451425762337039440419139589607651807770091962921050428195458030108694989950416117006947454074871704184155538832442840981107889688189453229341579535920154449347214750741659786696248566715566678302242552434382772713566384405999004533752083358393225283539206590340089282137848990103077711214902548940969898363393956565093569718642670591387213328301202181375760966627764472810494086342575992828526208282147046211300331703309503739558334827981178050732504579530501008334019523297151243473889782329002131574940939465764519600353659072308998334966336441080329201458377348965753737484258988274591347918692134279964092224349935936306813424237085884711366765741599229060062390104809910957570106047453140069868572523008090571071646570997317417207640490543949582375450706181895983317173456575076651852207266388018306773429403610095366857127477937093614197383920226362445828761455600747949021537457043864389428515571498392718888940065167174492801531274455700885807949477439320956738087700049999441362206443983130109236201741313745239772339633078468391981431921537000336636971106455781265577694040633199863237777560170223075507188930257899476171249986906387650090002348365802522013864568714698131875678436570499801236333014660687648248953594837859191426897628722570641826729195168417088603379044518096250331613642600892491559802435076947414706018685115917112810688597297356101590341928837054007081081512265490824949218062932065757940857030397307462774051315791628419214661959042450846284539108228810382276345013687287401372490239526609991313903296940776745879777821006735770988989538043710931398119481267495862729161239439547518074204053787018502561405752156270715280786989000712493686993006617616164192619525838910988581701543263576118614756472277554240986031765752497871042493490464539699877021092984756034238179202151885225191765411106630864505750148137669433885869632839987323581789864511364703806526436212145367592076856493386665057962413066631102490574052736734355873576394810752957379825176145707024394713021631096081752477955581488046002311342317519911939946579587576102717037060204157102518396351441015137114393023213406901542389201954774555733659638891868685498827137151466557905655105549996094655780234224917262272460302544800520808126056553600472817712570694504651836477239022353075133541612272675802382646771964352829669065190493456184537835686020833055946666459704208005806319815392526546100595951534376173828239885800941455693203590111250344170591779488461898736889577006446091438030286566884495365221951387449399253590119124933789353578145511379733538526977157281748072937904465465365508099248355282991076844387126922717799282802155223062448413840849704731651640097666893295520079577183385054444820662420544729806723481948357964845463125068630846300874424463660455733973764674511204763346791056454283558795008285739954407049825387129657052518725930607502498347570679292440685671650391965841546034316496894842745309595481610574364477285677860955202566573508676297312335963903024552743001572519854991194099791856222243530830022375766768348988799957366127214406820782605248993363780740140282157065037472737991917037991965816672222458065954397462652979991238752633847942562235674345614118123319475357632103295038084018833297163521954374217906777446429826387143173881464062364277849788998776353240884792514817713060513678281046519870514098552700973953849955083155970919243522393777726291407770392615147096710413953495516371750948166501705332135706694584980053867516859346676339021435989372175395800861587793579033534420947312386562683992250363887676099589792950829262067156235492877274144308683465275251597899498479637900770995511226363680195150846287805435173784975570162841154021683272129165907359639460638835854306823239866760559260102109714825683448874222928197445101643729562536287725832907312791398032129424516419561467509597108712819758258127040268969271556832642151565657279314147701273018997022925324552031323575399251227426879260459888138699782871857840357610702836152560334376539095611023561565677337949525760756368050395624961401566073089362362693521526849391579961172681375012499432359414704111906213750045941837321645776323094913923226833219838868420036680444677758617153289504143502655923055543972671826708283236352208944370694642690698112592315017974312639674914995298480402750751958980211378804106186619131847467278397381920776798240514844152247896621546543146926253738747833533126150893720212184974392635838931587989720655247095102148206515169883749110754629043271347385007006932001428946379590815029885640071552636906620823895187700392466079319012878860191003171175601386641817628041737969242483578307248749199414021224948385294788039891842289248402902566149949905948507438987313212801998122852145235032705634754150078427232113657888940331863096681480715957597098754864407984699568824614668515102797324708108142897217963464456525667841724478405469216106189597107795988375646836549765383294531924593184546482006680379560240070310505434351740366768038986969875006014363301135177484074109655795077370164987350429871990062435073383685766470114431541171616936961625472760603435015854201866064233348418219313247885287536057187287629227464422439632026338937100930269099975868798227485328331828986904997536388461012260805086585622898042344105150919431734595535035311864924274578689478364539030480628308515354901855081847701509896096977940817742868228506088100534686782918729758081478602674726505380951277916734062002751748644255848028870465078841741914285481649487054427611478317824045925385237112387115279348696573360350143828571677743658063673792041784542813583938636055148849837386556863595944205117736819125242422153909301311839066820469345178215974056542015146997171174648979929722315783560263672754710433583917243493969490801474844892515412014880318676666049145890034058692121329223641718113921484128535994180714024045236409585144645244894269288712573397657800645825305267595139601328489749587014052128891079104480712993908884765089433220212369447945415868103372529561237534831482963865101046465725371738215000172389312022525238446300104970939925438052409302595928487359386538181190882476268481050175871112548949128808060776087850866874277229139968466351018368706793517334857710310702892359364789021888612519036238542948671157433913327594519795439173235363388109228906080802200809435523567527358413156646735051817043167037921660861892345391694193517658412487312866365695132844330927209380689944184697000025027107937316829146502922269982101317341145392752510329907080216517538099819800483280981088677719268590286437736367404616117155237414796895256257130164774916838200620876134890942079100220831005153930665978772520363137297328202320869169352964982980134030603893983046923155720101107077343424092599591644218396994480947556897500842901802282121113019540319243160726946221229750591563228899083922561733127830611528466556841028340948256427067603141767963732450521703655334252442053633075321123723133931166143713374682845840976929825634675059985264866709514498457320596414429731239312213441092504490018852462745799403055044270416101105097184582621635846652357121161215695337729685572373366186282237235256869382811212800099194451648205145688695478734023054304839121827644957432069592581833323219759435106359581416847292395702908139146733380909340270281592550309237240982508250831911287212411438458943894390241595883780314343829250753253674260493772941873062454635430323283198083443010528598374214178853761258592867881398888634451086462055855159646457446544170370971831134184097878764206441158788445589621185865076675809685878551647139903306598855796280620834274480610835308034597513373336045891005946671409086384213045224361197859684377665931061628479126894676962208816443716267263317260269381058497505589503302203024788333003138243609991106390453891531639127274147762795094881543093917817517513956568156372938140874758748683627851967560742596960156589043457237213829041188017801339652506026960398146122093174017086543576651989509648876554911522797376138897927086490533247253826918455234564690250420766685169237059913431448538598240991368179162380976642010966040757570002507343804222206540594074428813488559558451781237500754964030533426998755657062883084720849085744853162630940862868573191297387236797420086353651059259323442196688642760823657261803044419289163703417209470750973465659894553224382865829089808107575171393438586538188380417614485769655184452686275462039995888130232856376738073157211831268460514734042296104337525099823269494512091400922144352442988636145460685937653022398313221724208972034057060573279585537038086039165241625667140845027494321313507281650075282734356092288068870306128481460692455195113045629193041725314515636176134513666699831690216168131973143025995311432534835681426371991989668150495420624862992228893225484392203584344390642469792376601197936936498581359120089680844244674734478137582923289591777992091786135174749884377372855282256404213219332233728298214076466710568493759526526511619511780034276657367650379670068194534892015770059909493880943491636276022214151617589583469896379322052448029860126703496056850838328930620135157945171610994150515256526931267266790695401852668350172712933896567728986187078903522837026830270751099568403170875571248483702974989041008157906880016979261015013266575741118058149001131045830701108295685440292544505662186331294209525764717042207956456378160870192680965635045356786880216029824314489879083102305580879995221028177851225275630970315072113574853223681970997788651419645276064660401733661552374065971571533145251054704933158084186021621281397262865886504401086209365766587981316416994176953286120434626756714114175179692978974044800585255040431116046645539330778786779230397119475809515450703082629193637069074288055954820167105704608235454888267052333007786264277043617585062298076267088089877489707139832846294528759885193587304081319311608454637272262065564465364979271401942334738372380504548908824352806298247914169236661828893042977122070379474405086878309376309137424288265673805408389622622062327875851192642458532246532372440363398518421976798814434175056003373029089811863819723450309077562326561793730222224082775628743575537794277513448559028967176994735324950689069461856010650719638891944199837019269993467555025735898912199698635749601831744885497697882259669689476032548429120539801007584217782629776654856350429072277145837274113047822812348757452496723065269869204656540347978465603000921406583283210412014134148681127376265841751181632377129545756622912338207928436996471787814807002450516070511086293946231549517329487121779607044713472721035007654199387470179678120312750633664654333945864641350825302763893776244447542458914256907614266511496655822551043172119126560446943004064536782610309444371150584506928769158470956490674680918333769672262627846670030146140528157078441680088511551635358422154039252832662002576653818492099369724021832968027951988861121908844331920725813558885861317633730361702271065126931135032135431700956322520035560765081061460307331902961982155330866102964711504571044791256681032913107908548556084310111678349192519045135919086531407061063453416321283626585156108980448785823941697096747417970979499470236751699659445843762761174593058245006280623518308580667142068167455285640944959958578393398461489077719727117268747676316189873095909019885698572201323271238218489560766209116440435011022122143602927626525479370883163634707273183097277468517286283500873377470127916179995425861349459415345519728298154597480113696607423655335179725688646045500499922145972350915023184339177714699376330673355323367943592119891661822979412356861187535462006657935950811151791362204623305730100863413745512156059237174311268830403159959330115399462917903456707208966627793777337642522788020852882766108353834392392093243825413357834995661394509562303077321016479632261658660082550896627045564237379917525545884084051822863622267893664568187209460684360097977274256312223093580348497851182936187074849882668371065933974959829039600792264204175468485823649436364765317947118422230469905417468474920789885627313140683788399788266534963172417205841736726403675827477206593815266666895043232641800396378527246085218811192338351220264516414068503355020430216416856055449541212485050879348472733596912395889780006856206538703703447538321284649572830445985233092637471708077319290534065838504523981131174241947845507000867848798751645375835908067985233069307438956090780184769181023779678682800844533295542049853838497280686387311634904901709083866823598778694133726124460032256086981268291202322549098475207424290840955774966773328196996520831675261935469415197746270870500696618409176602120105569948266360177081780848268170828906995083763357703198955948187795117416438218778067954612420444077782574979265452062906699096431799726682281395675374460949356642457059343614819877248411776350383061167119514711541855759588147015396124420036139713413640929594014150494580652288840629925559181046164135789942617074508746490633282907875388230027970015269720566181371238679221643960192886895822343200110462640905683734580034184020380737344406982647394453482823233343948704760994352710625847045077505044705761296025634340955921803972159391312272074348888421491662719931396232038063299840195281009204577005848114336743000691338771331529403991115174498940863417386880772887893144026515830831549696110649978339087968590555929121049717473954670918439419996728109041253533752846496342525966263657266365629116523197193733009268930196777581122059414304350751145186688142128885022269908804829067753210147370134149062916672817380321184642111040602115180090645630756432920054720375464714191425218831833810359184785248507078359976229932053151220521497264666262623250791923268945318193686814596339676722711168120464567681124189234590263003350925208435366215809871365177440190304589491101591081252498181480268861011524345029208899568334904061155100099481993190309301496515730673232689588763751542390226967384646004899870723729997003052388742796897642949948205183782213101142553910716836522777249763572134195159546369369664364321888760595970357559850557073899943189579859108269784959218312741031742881881133888506345449827435626182493241241171337834343150524778367202115728211717700734970968087169631472601756551960917012510825342727947621481112179904180888389128430037082158746601642504100676996226081267336072454231577119397785542682070037071142224748300868527695332276764644474586539852803881934862469773262933670966600770407867596089108809598334179602475404417829849115119267130909210543478546656452091413950786227091289613129383744969672401541300242294786268503927273795858184175601046518238187240785505618421074857985127297779598633573889274636563080466501035408289999279071729968261674489534297229925031089130160602205984420673509776065186060632241307437697947459737151416250307692704722021696620317303823377287225265714915492454814365974801067584958416829547920300477719244195995489550989887199282287337668595086882535609250394318242150013474512447403980129363327304904886144105806354591919263035525512338263670420858897712684848958741733900348546884861806836026035177399979114273731783156896803856698248572107320290184974782382196948012210971685897708609944803175013479081253019714830493772275788467506645566022533909552083192441583386367926515769259997795771788797031676144255289635013741837032765554464392558082811147888093130387771044185574474071775132106557186148821544974369347987140094637778650605089510143470232840984654128325733956549398342626581727267080559468963450249686112377085830055550348534495770955483602177458537845420983338614830230410926109466893875737977320531262885024596864545245568428308794668328537105086547344083259564447324226431942286590509086628701302064111962620690680057743868461421073630228416013928871925295323537396440804604111743356553896891113571471724544859176448115574732684405194186323537831075558056054654179917558246993995335627572440130361556600877094040649800788302493258528261347352797052407061777639453970029052701021764357765899294065601166051701244660844758873336814166895039349065776740216181289334106519926102612063582138750361182062599154020190312848850978079960814815214118988695622336510638482340604080167988435324854780210636881903463216973550802244224260083588740624312248870969430913406797638859202091275105506106522054382489609428913620960404702667126695133562845342188058536475934463158759863927402515777777618313156637237294496521864581520910896110786368655411692617106920542375365658086232171780162980902756114541824749138653762330119864810276089697418710650195651695707901671418909798998027253374843797436286975280144315873850554451096928080773331362680501770551513770953445139399520957827011251990475808759290687461548319200035270227500867011042429112818712591230133679476077048709476945641050752646748550538434445091178057410419020920030023037582271151666870266870664609487149709094991177671229648120544165268187012221001014702873406855013718870235453591501685205620144198307544526151667385475337286633015563709158053698438274682292854228693287510168574773940231267573520828971755225018733619135659617556146842026615691226892735745995269158593885805447034894801688237357470517666915823766830488273437459334855997800980218609803964562323795630099017128484936312587942068856535026881173077918495573016888594735850311119029571360388749333379611129218474942264400234256244795044547107100976307734062968467578120495652374657423274806358237996781233449593126426944848087325532516170020094941363047423433561820302488426582712843412083761386437335062896900008108878268714467298881334696758545558505534425411923311136795670919085609342947391869298267236586217783145813495452937837222440184095287438589738649446271533079169439599367490973518528856366337031508245476706481449511384952433652799422924216834495640088854797478592608203551010447211984733803540959896743781592023613967793328916625754146520767883406824591884564625111737966854992680897610026675479081257879645204349025549436267594012239424076420007473468104145762140085567781570231603565133893300647626652792111869443921684354638988227583094780791938424584456349466206470630076595346414007140669513888483360850279941840626020777527861674635620991580144286667968764688761461113581531869007519488291204526421229224116283477064124100622530082211506055159134644067263859413621793561312510992118237349948314599515505110852074210138528367233152788421626231959745885287195326904887592945501152450990355895580438778519861284121748305381473731043663779364182973589875557926923948587721036201155993821619798652328611101390801760655005566776863412729028540415458752211119082400405952505478444491554825928634938364332123805346636004629445802252841066025682729129273001292163011983495409499408308154403541882592250159051989621996484548458052788747995651232654917633634528163661772227274895175957825773121796690064022071523968588681281331613779050723449046570188459917046107792738968113873263976298356843339073209099148723081578518647676408425149852214148821613899969867783145264763019684375394957947618501132980496857971609648393471639857385807784340514653283381829400459474365578797682342652111786803327693047103362012417654867455976567586592498945616430116329659047237838729676212541161955818306313716484056915231604682550247882651699793138901010800229560893478911680486781651323795257463745547298563556270956012994370405576011167695418066361992237357739076740379960389264833610943808664847435305357060928105493322055662074420434089822882225362603166587530668580528415547423760930626727909261318991368844321958088086621393147213848232272955058192588978601427455756788513881974686668971202502999962925404998122718583264312343635920505892908634400654679901498167566488328827408296857692825226917180319786482536824215099468081835525465174050542596790858923270683601518494496675798218917102160864746559406450344575766940768654928955829058203277106085249955830557074760220068410285389960640209172849854800021116084601257419090219726304767207579003552318541017268423418215286484696621574108223036638383872879447337054294993371339297349098822219736790649456194125076102112358473493454708791166711544295861943109725973343641889343460006637712732716121814617629997337585188901862848792358404775423775034186442729129064537181856010671919331026441247940482362672839806611710591303058605539230226087501395673660448444541232713369088471251396450401359633599834235153876541937341198108696783003129865682611664460241015021842237104041558659182851434335626051942868332782633314649364062354302508718227861151609787011896012977204360812616779296738340178492499067610822949951611430924064120315607055198650596449357916950743369849802458689890712961360840514091842210734961852209271511203076982263960603775420709009782612011840230311814261765727594929020300707373746148755054804227265709923951666809006789283217467269033603600200406479254034560879983740532461202474168894630151020698138220112681237503839542119770104486669789209608982645167974448896827453061954415576547940187892537738019309365087982296795122652139235119977520258616339784339644435018037844416867864368094021626611501703152012990006678385122555606947373241091735114939987756044000192807333244119896120030233136906094661086867323218632163052434228079560783302249684268943254199801291366189874756867273012087551701271227101228664518267161676908360435448117967607657606989675080526120818965334204853502050852455357026290689224877776142179442181318920610060901281349242886069320277600436152799918586469596519496725809527551710789570760338436344765079409179765091831467896218850303304729091792449047103602107318767690179934092096850249462931671548683559225796813078226142875768239044155054722149311048457468835359637042458250605216531912754637605568652887367059757136595326272906694809836202236149455145623796648938065862125238867209652654789380634191571561887324798431690796790928098294025477090324701429730323059257927255351770194892001271678355847638617338549829250047536011413010725992317953362115249471060235093522959966955957590413129494860572668489091078415628874369685040172072001102301158008707601251660105447388525209776031038981011773921093625512344214167319655553126500659027087644686672842569382089602427805821024338330095512187447661760990655770853950413588964714996530754069813205210197375776196031841443627683865674022407402045615081454839003918237125034079895246088686617311089423914709807052824675502331848285899935114719126450177400933953133733427337373006750421578595640836715506180985244751367391242009416830978752273710022784785907480293557366958998825984176700504009056156940741738471010983647977899916297947123585284905056906798429540657707426733918940761884628049395438367231650960442669985751136070442017488530146984340084246584727919298535465529891884534845588519929918722198721723579981310189526286280400795248906421269894555146031318666401395256553443804769855471831019941051569754764650707750464098445160846099092295745858113264099595283247896342623168987569354486908090200369498019254032008342574664674956242819643534599082377071497287334684267862056218964566802431813621661884584381927123581884655600660925378849125472385493942024094731270457162741584721296672140094051648477035185258635317691795324295210884090593691675028172383053243629187701639132109994062321108285167897822456443401599447942995938034354688646920400795563982109867821226931698275755409915613499685625438536606793216074032616369970642918111427778836642000036266839775401622003399096118812998052939597944702531149573985870194787667190007043385928428488478510513948679944894079894842874486543787288746495046157246851041974882068074477883239276192453577339793631901806490336520597412395024925122115411599523467828542369128379670041870463231791074674484328234482186951968460619665649255135679465122047721441119004610471272400711076875456933160926329359435997091526321370068409734158032164084141451620519615674360193099137845180208250384969606722559247911902583718138393112829024119615100210957927588318248224431900439301385309507798961284120178900270877240490668769427707252761185035778766337894311154501937960529438487154589274085296777630071621091820547350623345834689803570546621410816408662698517212015201985491008521394793021689625352463014300122922550826217604384919989166581421398649508051703285790227734129541494160746953865263452209877198892983175936395805482612712461924957645083072800184196265361772858220512078731470358136968864073207302287644174121035019143696733226231205095535006996607840063698228107471365374597055156360066846329494976915966131502438586505726560340852413780069759341823312837010472120832999893247329781706278064969846492894796839166530970043941604560658617170692678271999351482763382687725916998403357485703907780438985489672466970563322428516294527484371615451163420644335539212323790644022669098309262040838768389970612129726805648999002516787761266267231204685267109007711342155794102578483770813571006539647707530372684595072513805232385665525744262821669086592170802217643324315700245536202477601495089631710463643770834316951088337936921674480897655184619192493186169025118935696822799128803514867968817445005663701362441806274582737940798594406830249061873500352718325449339859006473050917085704527828303201954056747197681159742334023893300046753110292522716267102059457611808248083222118463501442104129816771598042419889511926159844808966947442528695820629730205927460263106376798003944119945364880394202943279960088471855344927990727615820679879862460674807941014928096567137168985476088800606268923685847618167132650844390255138080861515938649839524122869460256040749018438643716448926588615977623477641646405264050643044277309910984331853045860277620440337272182659792227127920305240191914865578614931077730518250293187864759668839078400554007650255066274729216095380739546504299291566065046675063631853026828837384788289930762754338311614219563840146859724508847265943308778733831930885767284061742505840187342383564346599760695274832982069512257161474661905095677699278886305673239881752881919595805972105982589953144803686654159027797337137432848130648597449714246768974690651332479928218679501349949745973393350549831182645222247403822718600433904652462314325725206221547712107192524761507842232427797919478730075553702959563460443519662320328014431178628745303020786698038568911158907549220550201382922042710554310431609820460743372705348178716342124367320126006228010775022044054324203936981110731462779422543622414224435792857855902520064791741470238387466633981950262133881366301626105729551459599543807539161757489350683530636856479198357114327744945144208192820041613107198687541500862392257541779651747244569080579789403483955760969929637627357619682940998309312666494899293756170334132660890701330297025177635590606716534117436899342391086887099642840410536805958798346211711401146127762316980200666915108540633054249535982949260815226919874006835073855175191888044381522027787714130161887145693829585738839181133280153637138027369913200583691996166032200447214255691376424816887025220754543413899644543184750614085097295401114982144250916695939021682371576781120335516904289077452969051173772369994087425278716013355245178506995300597403186073135460811031731921111691198089852151358717839164780814249543473427192992452680899736873562519413311376056338180719079530108220438805883083089492529182716567392762269069519961316686532723434745070212562470552092630919490519561226020709999002442351832610508237030310976237757129536573254453533123820932007279437689033299668716645413197361953981824499957014819168687137313649919708995543816900403494128548670040182401737467880714590366133489352879978137664461606852746840307472775867900032850697986890510724152984256609201307088179534130316750118081871414889176395297749247648550408391789839677416083240551833387909736559481039098258521387591102424912344124568284826938720447738506043809257910304834561969872783299018726969980396034575255623215613158145044114057855305558714969728003019879579662254555678021368859112150571890750194581562498233847445051460264306749401008302825176277791842434064695218360385144112326386253744023525015770917794598143343562855472864385525060696651941848699916924446898647150606715707684054238663384746673840137308594526539981871890073593153717870171943824296511349575388394638380362768606380401683465575946608074468292092567388390491737428520350627703238224429023003283495725402649159226353818098938296740923010282937910785762519776871372835432510620379399925359616302533678954322614234197511619687788283093034399890025270789402887935965304954272186466616974470822741260935483422050588620281348295739595879999977124222323373615432648054136657727194196944020096701777773644843309336467638027477083347855698698692657323132565095726944467777208623169361212687920807183769950337318653284261342853293229761340364548462848960130960240009209336644907104402089035443372063927756628363787238407037927571144797860652331573296080673904460929775464998655307525984627736626332880963903497321541985232146814406368718495205863501328391311412552043232512634069009496484258436393625578827983931258037800206733636464935811327252888124691568175618260482112968537036684685613752915506356737762545953100482069803312878205030470320453529385765551427400791293914747948113526556654133425692646985118575441209469951876243972047624186387488521043072864056085602827460375280338205573167925602713869321849803788150109378206573248280315887711283167009873864140568732546718771128325001235954662554535458787536365579759376384552952284635859294176738180542888139336744911950083368053755914900724461609659471317171298845640280445168993891749062434542979989741374618273270098877382666701496252321256695431337902268516133427363313927494830855595253131861218974870362561097211294966641905265614105663065954273222436764804814804880114069973370930402399132907393553415837071892391485569092551803063811690474481974963893196872538571905712845411392942113971465582586737972697725754811110888185023532244012341876571482709663893539060411587745288078816531723711682999431293957297272828074776132388057683822033293654206283690354025133910649220566917556150751339823726266415647575570254689322976825083695213201373376821808639135780579732909593074580811617162973441843587214347741099215484110555285623406249511338690736898394765888676399327839282528643777275018397751961543034979746954412994198016689153705592551518503346921091203931580281227913076831941030704027953429902617473640198412431392381050678962192638439315018107779625335399495228549661124869393666129840734994765731754088872496675015882119210901666444903555855661475281559524117861034135567249629292508830327028960663389720215669836143465586626320754480542448249191416456652423364882305416768356364910503909546863406751421576016859107884092273576171029572826651810580362176500286634845344954168527866742330860881255876781885089751665862881011699896073254617555329410282716856544972173581893615931864528556375179295769038275558625279720922191058726210877650767560464077476035030703012989226041666364791724171349265919887336190006669288442035615045577776792030622381347509374298891972218187685083565869196650511442181417388713028625290002946260488488982964991380613817048167385546786102234378104324114764575782356783682684407594892832561615630190596232503201715881529803893242936456604645757640140298732944332854188294106113449144532051498643060159591986763344648090011825257371324854500451743136687692207074261613481956440115635277341369267254995015278105861927470884063364010002196023566292872734784801664190921310523514289723827122388145956913457976386653031019220772111853499743891726804347438367937233817010302634788983658667654961157012233721793229266680511718959616795965457314646216961387175345844175226213909536374521652488818866135876717931870837678497773274651632017312786621741344827239855813292221698311405765665151068496518927643468516017527144605825509894136255414282612042485902259969897626434322339333663921854351940611306355784315930251202695532625801798808840785733441166848652309570353823087905799803367594166245591322218053332529951112151138797880900635844436109668018739360835396997548490922427219908169252184155329448714912361185191598987832601235660438269314455234706138767769837320392336243566492601379988335460561109251129410703178421283384629807514569423494403369164911027768238463118611824327067008669370736025385686185989012883995337367531751283137953814852444838801553611500120461406375449686800868068105681310394913358036350931021662200639890394892051682959638462087015638722978733199945686444834152092652353348043551578657735123950519582992199384795375380834177810264318576208704028140334612137046186655859382581950371980565634520500354557308890394350228475257706840997628773398256644376773069004414536558829239824459317090077008837934633016167465092757639066028804144671495686140335954014272500647913349252903021126140252361730348619912965028624276248790038480794234514119560867393656490456936147045578953456592197485363472011500290537420427075281006941011997075933833234145121409018433748481134605066425054308092978023096943213961954887323543849023384264841010546346713942122358037497180338979357905973238409292642684201201622426531785454372016228537822644488348056279203611323452195293164523289840836967708938532105634702132053578498286257183517785026828575020108875319881271278371682635748097002683588674574448963246800308905705325626151471593073746721670202491182054432776105556279209291107877432582998463187415055934920511265408496047715734661320296556909777973146733244844950358098273986184251700070269065157588165989017146270886695294060006605183927173279737523019555079031703284645660400760023789557865327635173557197366709553214790407738923365989799610569252589066288979145851896184306700314302036640098167990481368115727198701013397218530065288749953151462871392091707650970258908645763482154907600534537727890683372183559773934034967106981746039173170652999387568801177988609150268847408789752024145512331503167433906455418939656269692416796129319165642097922233630107854216492395805141358742403431943363600970009761660037066072420221744116233716505261346941531148963533672736513341516556675666098181779065936518018087092000980355221999725158091783084515005788227363802428234600515038295331270223879134438661306597664029173168288228801661115098952974977648871311823931805496392132474711199726021528236516486821629258977376891510896400041872427653051916842128460142335544282833860903614659585612063304248661521296989205347797705524050788880457525116816732337006981354501829761275316944092317972547765378725897267315795809217467505449912726344391326023825055502578928932938663391381154257838476017543257177315468676393573160415304130319685747110077757335135860274963160391677677172179655383769162343153935182407636359649336577585906222249875702910005214575208610009015053370464744350191015708134016382421622705056893012441338354612233898743703679422993334352719828310539227662146125727794748877802073001968622436928839371808237275384037140183516228777999191893810816546624537839830377701393196450973654577803729787220424146776834025490144335829460161105587329796458295494880860312589720939109303024124799083427670941530720051737889951288611018732136416195734711821498111057797572439986297486815292892729496633361691283437754999916556766446537671473648539733153712314559314171247703461363472697099749407408557012223306440229700302037990987637865288181804367941657487467080749726689919380707606960660826352687420453546907805869594297359896394892615962586575361841855643222927700416767550869998747452229788200238760492478390757448676107910599555881415936636719382943097655796589932390499712065380182799613100232335889139276858522805496129659624129433521158919690549242596970744381650202670134192432858604557638781831880065476486485770185463998342514183338782879036049248100083810585195854679007323528806251397848211077096788232513202252355505497412319267118828008190159457215561377661199488530875315841107526234511833415363545443443888054355568131506952182378250220107202518301317687953203734339061909999443875944517256934952073827842037903725127568793757855102014779367856298307002036471113054868809235146648467027370356273240008150992793238417318782317579494075090582871627835584443967677747251205826389399982833769593325799105484567517830578931429057862854760985564310876156819444212621344340198160576558355322886784338133983083691246974373004913659613417015645334637658917888771471503141247660592508469336337264392063816476808022503008837273715928460697281513656267808909952310316388743640149618600419808437492563382342489030752889490066689351210128869280475917206672378295126598223153936082920616120971284197473864861453976658433705609122544284545698562231385984813014332653850441311560669078037050532729331660905773744298111155095040996694127285352869246268446560618868878970270844407681874260393690161651181355523192136628520210977377181984708093993085769320912565257251026845925199438336736357179313626262877941225356613561070371960500065798086313361460825900051672416213288058277394781590036106078973133016247850717761885832143145431014220175430110743954521196509324097255626693347119744572823102865803521046205364034657577944291234396870759304812016178031814096563698639557558901766960555648338341065850789464422440041118213799467945633077582587996813688167274703819189747089582365190549581484323749995544757260244355762597218428306712545188099534440291002099512540893671651742061372586829077039428603884996742215633218716639456637886110826262409455995969394251416942573064347287794572249061179807148444688588911919927881271354413243156751333559944846258738570172857743202362420022835608335741780728217339463003662967266785973624383078870640488829080434835856511668474757555114512110701463483010090588115944258559978006599236996543083119060010324692887060841327406932920322676943557938511992548483845534322709206762217329500819298938757186836710912941628036521855728014520457386294477446921308917644137980709184115716103846371407706911695099637154672621775168019609716654743528843230645665264187950950264237189455101522347686110336453911338326931946810854731254412483445902442017118380086719143796065880895370320478023557524965443348768396747283767627219791113537040948385845662660429656411026596486643760931579528402167587229583179806404324532628982597376211573610609794609009032040517049990599554933432070096273442974631900077558048126488563154445608577719653570492090447550586556714123812364269320861380100066602346995888099321286069055461329822629558518213760922779549158265144302129975056866608260236742745184525896105156182557761135736606559782712868559527244319314663128241951441863159066159483080505471754334380386862581468208628394791375672271741031317365393386649134201278232431582777628236468293901992358892695054821595624678520943084303204128812374925114405971026734349343170577178633779643766282828141109009132836694706085171250614083667562198080361409070352816592253288688007284530329521799890283723702846145759353213270819186389859849674086629885500410066485130210034837287024196457011092307742716756999518934559781639267600414042895583712090511271743113578940581228232858719238417920770167760342171417876954412717529163022709367682141822446063732457765265794259674228142520453706331741627620671963210491480004604240239828439881007327770231923510829514612751870791530758337347528132618963712859122097141703635252501815069289211718673550572424698639908053272177493747464121276258638933747783906506990260569771596222386123291616746814065390540053068458682082201341455600666253170147454315796330185779227764715376321271496725584334168046229951646905665039621364953174118721653671948157421857886417578147593321759911321488135967761948097387133135342548842968027358038251589502411059068869121810291984242719230183360506208196373658004115106416280794817593247963141412032418671410485742506720818303289139382580401205290300313544563736262719564827800413094173820594585221635897548542519116916656571883858724058794734918721445447924430415306107153701803614286049380808402193004614846272337375677732496039947437222542124960319535150462140970704531433658510497852535595549621065941415273699762277876069550628915023559972554024435798289085679018507303230275585565385423340417444290204151025728332258034650506176769036570617192466491057978583464480601986894902137032774557516680604931451961393191257404756879314337609117020664781652988506703212353546336147923131662288992527925867868445649995006252841376191993064688139117361682840573200730754130379879758252300355844544299158669029179866476932708202539654879071888731096528823933213951229719645609486220828590580159878155351225490397771663907759237639112219614831745788003254218604818622136156329015855165733571728756774872133429784253721718345528356336631798203392776385482247189419286864173583123195523054805629999348036155208076879537538689088647750896531830412797179753965137797331475875268822643390988546958456766375547810259380774212066274210591893443271359837701221460490346757381056258324729480039703274253718474939520844636697814742465600483092792586942164168198219640996653606150619186382317329703952362344125981803480752221307169159331712044882750922184647781558061523324873273587841681568366020755395337335754361798411502149337311650879227404470296725281886970982655929557387447985249704867315666774482862025949713058458367772796804899202288662176104481063141813139272452511966874999716077545023331989703341779133781227681292130654971877404366512694947856315264759731184576352565042190001209844101746467302554329781722050063822734180939077949138244264426909807722437137204436249280587693102994611642982386203873857714802386933935086660884599498060275542928586805789379747086964327837595926091906114939225087763816813172645412004411844065676037609323797319376235366878314512415546530534890129539794112025044583800147445166556573002566247969826718668510787174948531305283502239676225627706105256579192410657154886480769280017930078286842521688237263002350961258508314374584278180567787336387514242366064499868235662527889475466716503607715974893504431755600558482982789964984828516232818862596490585724255910157805735809669333822166856215719344217266731375860963919126719245600917316442261644838352704831086083970917296842564456626998116887903983232348416040033279420023428104813550838562230692336945913952704622223980135613889203742232083477719701975694960096421431692878238851574826786351574929216755297751471108194349412573183220824859799478720478191103376097913708624961227338961001729137227186233627426946588069511745307766772077559002840526937837532081097722947764319209431520954230734946864390997150409435926056831696578959562113473690861336080479544949095874427080747952562702192653740649932639759954798022217658094633965129171529486864009307208649035036609416235141470515108597430631608223688146615277767136550736421888572962599297049927662223287162925500467348774088984217948065435427808756265961534434263572475230483463612173078283484202106910201796874625221637550144507473364028746985672672276147600759961351706162011203138340859591127957888909884596812752894505029543025394865198371517152336733614264276141030707701567863162866791444743973411765361434057688420031844673990714654292537822864850645040616974892854911318704193358305093312800509873969841915959889084213194521010144532537152499576343229755476113854384983700567250948821788739704743206949925084303608076355575764922368152954448812682963956447580489769914719808960056185667218754311519339216004554376055261194071003023485539841887720639973804469290240767035218473640001698788147579758971960988702882907493599468883680369281316106363456358723697381875854057125505830906506628034863588218529564888021483308910027196566892486358089954356101655135644406403324291062438697422110698506663116087061604684610684659128908715458752267118253417135065525977564371952140472722408098279161284093801263558367108550499979358123847629288222082882542791843201842210124746793674736045706019066249056430687505868404409325361693606373921026356641596428737321330194142460664238280729118530560113609279510808390117574219395332719896690736269946602246831475475358106142516981908062063179309107084886339775021484982773949972788226308023686824968161756925670127985720277698359357247640232016861324677889530884693263774926287462027986894241934434420548972719666585602151426711376600351980971048123534129248174357645815103367809932798137687334167763303782056132342877430509163809491350214615312664542280638583480740982228569650071212040741705519893084671149217185021464974323031461698747953894647110676629678341127837459453386655549891015938147067010738914416954964063019687309281067376871879366945147671074296979754083935557069576200833221544277096022196466951757685028451244057169602746316373313967573741115376019634280048302199643341072532698726912671874360268171540599566195695894406457293058854528805871542697606866511574655634384252995844279078040083481059900600352302565860243359275617204068606305080819255353092326920621982580998897240070488455029732740454927259423841439998219529954993696171166504461649426822473395586126767443170340656048145894102216381568538911593622067721387766172670095064283923163630925597703882708742015105670576171379758620821849004399284282688810548517755282404702914613868649430586563282919290663552778591354483558122695135930521002954791644600458095652233143174354383316696787830152150536376710627293065882972656906279220873931304641243269280717896856877680338900803381503004874295205380549987396950718153453138501675321291132811512975459753613859083316502383409102090705472917444349405162755867467849967973628696772068433477913455851662863978061142697482111009594332240358270905010546360078419794228150613532979069728636603803858679146353439409499572019253982671491034129190216337259324617200310173439308014414918086097929793662512903640512081395198514132956750591514200037880352967568840618679856249729913885410609431462076877280455865633364726514530093859554832454800938772832805156938823947564164985595280031049416005572969698325624094511363270497219040411235249518867184543447606893973231619596169182351892708004602097465205062690726821692567184677200468422131850976190782232350324302945109341431988232692887320269365490604263227723239473582373938332305496798242686822598913134014210253619118990740121812671002139430106463172216229529018677602305404262026438853918929105799891631657645329212975261850526012900961908619266794216381703236838850496031422624980315953104347405410002121992821597860573810160121972558006835199714574717105820579643555908685254224845004051743195749385495329081440193137847603579508525785137665456962995179453312953469836049996080592632401037178610247982669616026609839331791538081659931732463533051731519141814640084251130850359476404828793872514962300969779708558726888897998725184051426941332672446335255960265850702424768603294735209709986653745135661297086184289340243970907323100482518761848045331007303862638190979108287214480713521403550299536527737853869201707303437760969339428834429759543040268085061550150765398571240764481087318964651280420255914692484526763179214145818103333568455532797062060970283250794875197143996908249508532148869551945476742330559474754199987233432945512419383957486116162311520048889481175703913016439429330199468806945280417708634257132901535385057436649482321937513651458200764724196011535221220106203881064862547805822220696689669913511378308027750093000077038275906375662249228474850284131945382726910688374873693902453269840879869789001621660388026383273131135796917977658393666823780827826043316778789408033465470443712950719325834116640833989525744991254369820408202760801355155445215824160855668994544481627013156719425290212905993045998631887712192811297289048122490011867047182969152361566176550672454692017449601762318706963510779855902325178705933445990431059787690423776837356245040518709602259793764812514334159110260172910488566378957820873876264478953944134117467650215059166067568462641987747271306819013735125884349153458367082121021400872490031011740095759399176888125109666243007183853208803931597384309688678803825935035291072771172509001344482878365969815355400338190321470009134948345544250991099168639167861457924354387001645155881898558744492849687703320343259805328171373047101535468527423116236935382767148925273016682728679516260695688152929354151653300335515724570105885255679971882158627310519043506100747967375714347300923360632447667272609837651177006873331843892638378758926747601556309937304188947570548258777298211794652579055229137476837399945507477361951121469644223990632808068000829086586739035091912533214198079792115985737784585168232902539964327558512002779894254826181919376098075704764261991540339668461305449315962662516031103246615488049646696247802488232465092990823560895313568391571464106053586861287703738444525453335226687760398482529165386793380685046717299931402318780602969921245996612928558835667910373518177562799605092078198168599528532200424117040533171267528810655617637987804619942554342239039554132353076947216541530723392105941670863679994429949120359831264465716102478495126452855385528811661409170423753244430706303211805675861371685969920446812149192336822038080427326912288534348903738073677695971240643498864156020648911939275994226421419071697146895694796668831070460569447327782608331866191404134443346888643210252768717133180648446377369110841214793919407046262324480947752387647916808377382746899909316227664023031284486657181808901564530549210974324395640110038992966383545352797768185494996485924640183743186897873144333697493825723258744363615464852589856374800547905383422840256681859040410891597673116064282181413425961624084846264950829542782125065583201567065932131969334088767856921398704296063054795711068759158280546259267850436760074263716051307784064306604962196475672390814695463486398470234558853113965336387467877577108649701022879026735929931694381733929061887842324213241644912807100932861264507033248679493339188785119070562823176524585677966035706842720147591935086596554466545164577073821045428105182181311059934735447284430359662905830840685520880081403638695601462641055721552761265008782993537019365856541783929784028232351439522932515153679699414087492787956914802245919122389708378769366783434701592666562748174199773209672037128251483960757032750625498377156219793062510908231518779788952675874991032608854360537768271217965878392632072813318953035878863217090286414646980112220068235391677305720228240992256166887399905162113520622317471230833535488381516210650769237149452836832485078611721325158834048913172107663551728919430357345465891215191896827861482892846667546757671442215325088505569463032094493340101238527464561290241506617713832462740276939116874448922372290601514933774306821633337753944813125595277309611243961043924699279428873275114668444421141304963251234546838698472464782054517735146016333192081640769010351240348939590389863691377821094731464222960696665789019073774041699975599976588290599347997861178125856794416869948444646709756729168861365770338913318251840582226141280362401426596201381211223163793856920086585759984857124492130890600153527816628440984019504510557845972579216620998188207907547683643916912541746527244408275854054636957424480120336829461622819274869757173541345651198328749415021539349102640226277540761318425909452811286483305471287371784561976724937035133780355372670521456010833593679698129077568908910889838854793382636909004220740535166569796264567822344559927685412233855716195155225163402468180324944478614111018885852556808292841099867021125125073131288900992076817025886776323891142911793645642405868708613281236316450383451651441952682617717963888585194007102539354415662459748184638580663370832966829323593052345588280718485087855016895080064246152374683062628052020485995710572012639080365070929936985835845627705957280497054937011546270031589584923791924894456055577185662598339857721249624620075080859362981573171621167299577600658569195650273134102496700382686924262910532658433155278305345629177472735165261441376192418825269440454334539740791401998114114076111042489891133953134783821861069346583170988097177031644226280986651053910792013135415998997567289185614821302757983346435315915189091485332550692445582284760368218021800519888000459542559920187902912328243023153354079256098704040380288886052038203670285159417484760151553501771656846409694448631123229110439076489448186544793252141680444519223716116364518875538926699936245725727287773873725799453202359342113484608317126943511445725738176540978004114158762599365978807051379266834182991794261724397645265965160851511547276198686181365827247403959364073877955927236696543471581247734439760241182521051190581803388066149941487521327406885846475298857198573288858501454007348032361564580797335749627266251948845377483576180927995828424642178061515823921543180198230078321524303495518340764465463622814780939724675449838517585028517166159071364499923852142370057021458350358942280203765649044190244263456480483145569944362492869371178773476063332185240566692595005476484075913455997509060655058918642482936284196933226265061433455603837879017057435203310194955993920922520251768532240533541259521326759633830583073501254666735327058535305035961767079106185012981777180124664167784648373785781652057957173605074268297754438219592220457163552063549890466717267225455014824054519604725024625247250116813946969827793229939391945806226330241917440384689564075410324113275698028011089303032438008199354862152541951025638636202202770926759595518208721397090509458274128015373503626642117921478077812088670389011256046173933760867463747883609863089437886023065319503208854884487862700231755953422691877195616565592353208799939632374994719922212888323546281629067125071465036470359280532312009741641066960998509786814869923043825910234529158946799375662543425061465367562226737536728570874450333531009971444857473078166790870463406039197996734772603877495314964750748745671326152472314943448860572629682266571450928964549744047507244761270950640759753660130978345500689004434028827267110569933630303554374206191273174765447266515174254163158124276002620183958840117988034169380752977167340278402343682454679540532180153457555212535944823445432807493326617720131267034565990777763543888792661333485935856610992883193109226569212980547258327432571657318960578408180601785278382342101286891654482649974375753704334234765080183686132967666591584592885093253958537514662709072255893188332869632044319528303083052057807097354304283853226880767282558991876617023700094886390430538771033719693021777959074677652212376751908230946909286435808323706274517338336912880186531707617976508554735523226669777952112191138327378664881268226241829861823235410693195908958160847983149617224151044334513612867187073286641859747545244392134318756166459751230506381877835650367100569201955328976961259750335886028067541648765985351210713881533396122054152318585901464454147838531201323224138983397981764906541023281756583979545692743147968296902213558265049050028045965059857924638727278477624214407470151450350137870521292022659982790278987243320847567229861259475352770485882481054137442636435242050579062656276649383562435763425214493373506134526321899621855251915662611980607609039936152351992696282324267567788486666312148174458046908635756396964487550283875126605733693245264175793030779242845264625778328945653192602231865771468387825905408508671388951597429460139390993629673031264682336575804514385531517195372814793913158596225452917511461178658454659054624003514515473229001546395721263882616501314105883398300008372403579094241676982699714705633324545059806242613290617435690494402216794974023305459035156780453770660784166724762703884501868427318860898936843811563852847448245307418395252682494928937401759300449450469009272576134642717970422045663064352046139636518103757624861762269775046116164598576298840132279087304782974018555796397605191748738953006117595629683314079723677356632203357414197868696807266597615987370803674437858089240533971057143379231625554259340614881338907743298842297711384550640969458678283637945757058922265073451368824749365367244848747174055198177150625142350197505549566624832441312692682505854175702145374543686675836689567294998912350892787749442148278931302935338525038948841263979131985985204263634729889744818025438399102475013882633642260730464461347087047703457733824217064327767878382947564439563101001736449653832851125728083919491306046154260925201855526077345817367695613402943847213267104037025321391843431698296411980336080398863100867882481064546592137171524286509779694450098211775405029748123939722785996604106115341624622111567451700595876687401684584043505074500276981065124740464783516134932074024319504469839691474869264892107014594925881929199935632511978242247242004981176709867589923128820630304583981905248255696881395195831866577957110374488004145225876994614262304821235105489724349262706732079775661490830053324669098667536201510903779224283648591665487885876769227138049505735949339638227431938215198782974928588021514419586497337561938252731553131044579462076455669371785758766602821501620105169986769124848221053279306059017491095787609154770981656661852796027337643884296606779479076318201163151616704592273160719450613609962783350772419994713366166753346364793539619108905454470325824978450412944589075802034986680277913984551361974393934373999215699379048935653764309221438367342972841497828118021366784322504619252099845725701293868624405986968365417419073011893827099872539191915480862015348151422708018111191515787977580129110176031884498148692204658066695047266872853818009997352298296866162190414798963594278050988796370742163812850011859999690691031121844969067051211269569300891078039211899357237087056363100729620301330341945608763229791577613591684037505109239160718013994591161462414460701060309208434379404525101805382752702986212535226828700982951190582699269718491664852798715162041074531845107261401538055737865345044921202943682347390529052145776933019268628860179624857164642501135772679104488845672095851363024678116154768330811557549533548674199970002214341676944890809455747060483195247879511631625046381057359330146779508178509492676232895916982231444384509219112357829680993784373519634893769231415126324390666606900415347976360850463550585376036330299279225956588533261621535451997832185888156563027617497597977793188083272058820772545233417260481746496028604496927198087856203557619009601045234208035314832904461295250392919845881812030319177817576263156874894502131318996973955549589648488290302467816546350007476964046595552187870236678698940342478000581255104224034175774687514205038395742709208235946188345627240276029715064013488288684849913537333929021081772485634969077103445263803060448291944831509322378779170319103815034353479112344408088148088023588568863941017948555912244433265223139965430231151139041019065839154654401222957451848067964743977516853084785258499524757400929258678265844172794019940822367373109092016737800986876052363666480083203147650216465312090678091788779343654525966163096689936737566065057929104532966472326607180509991357643885114592987774282503428384327329403950198520684873389933161276254936707240783699417703012655742165654896105629271897059796917067423901821734301265993904088497340473010764478695529978970494301296144528673160894246357054957257035604793094678731563161085433392447438232786057241582770670301110712665294148207083336406941994917865265938079799508345891603537973312671928769949496494268400554439637615655646695542420338211757033690273382269545664810700140210406426383184208949120311687273659542329990877357974315819585370318657461622879929085582018102613531039370542625674608528023702580175123557251136908850402684099794402704037376550203754704747057387550411827336880551667516444688566237132695692131942498903764488531130563487441202936036474823224727381909517896532937996534569491378460605813358452363468447164382099176881038254843120087182828584739108067085793424128679339690023509404616815779936047359789654558887060156109014795874654086306182511341881009549670226086020361925880154894137653263162328953417713740151652711619585141661857127557379454674233210401621790358340729694775023243932399375611446288577806281623419757023415499897182186472283906824147944156888347676588522063108133447890157717332967553696915715965427526425571638401232703563848291930428749544574860234114353660172489096900167646418926251945527923844827595979887788632964371458141817292481034275775279344633885293407362832967832872078880301914661302618893602666024010050385160750346569818304160560670035079913695590414481968194548475209869657061786696748246563029491260031199341652593847369039685864267051578458393199323357067019941441837653618792487506473552944555869055504561586014573014031254792765518740740430054054715447830146116077836809667212679175632221677901990375812654500069115058987509078963273619773124629454482825212745083867096424831769903484237081825993554639074967670367636667379338405283717538188087605709129983324703741123638305020429514643862052629708950661894555359956323787872823892850869244143305973714538310325513056991747931478600764238850998904814632087265290325422381405871537019869905682896625295242988894219137910512092298175150002019851574543439173919276361307011435583085936990768113328796171654077140694506185952385759587095042496378977258103601112638148566760195026718192978049897775655495598232039345368812105997086608338763608580613458332539281758092076134862012569128636148241472986616042266021663047461542106062831394087649225075797530154435708148369746986482182648021041293073192629979986785157215582088145640811321167068399625450484799614292326089684469181623723532568151803729391871523794983423430420905655336834954334299210504425433969154084645415045613957998081461127776265355731664786712307057393060179787427571877045286999085515502638662309640524117547777451937173538499532439177634399612140243793655052307644393952285293004540094969178140943291784953939386603663534656855810574004279137297725867047491796578990902968131710823989117653292210238896349151149689630522717770027398703532840998292391370554140975647671021280330447485926454417781800005887979161391277020159241384680969822162061330923481195892678385502315823397348659817827182517347742602745445026751857547115712231467679461400086270429974312395248150292505662558469766297282876626100229559869238627715472728803743710710438186245441186616801950891928363375618492383550172560722609139607204897681327667910854873871022801430843861727215939805078962522451186181307445952079984834076635922646821355234529770987910836464650529796689769103349836688288276306925191462171852656433526101702376347085306650376483689979609093743054023219158424538629478072617425948842603272518312325712710247626623994398526402247207765177458787106874261709106441487811407875821501552304540914137642921978556589215475772336417713834302659937226724500307477272951758932065810328280388416426275147046112833431129429959848042664412224919689692022853334956971968558907441841963883620783853098314444392228481447870689914616652967210569054344711782019822067969955545259265163182721966454197389691508585186823745537661030970279249327308624505975004819295838966420946377794294879386488783632183259470449832750716769285044808290623161908183295816519607646927232005376269742534041240608315562992297115054706460834231128157680768512880681789427417202136818217154004260367123179653958939414068600735374660903349638285946333578880116635218504253307976970027044435055290211163732720053795497047919959022444067721222936525897718018083588002805854310391977394110443685632894989399419702129950964706331870111365296528193696473073627325018512068632859184475567420415589150822012478297395006395997866266702999354417372224454213510306808348923406717955756457499171196647201733506998484298157564962882258661618704969203342054221906735334889976566215506984289109532021371554759228912184398936438195356718791251468250637366949811179209594773624897489965717826705451710529449128494690413124478287239976244709751700682203833647956505812601059828753000600955815600856434187998427664716185598996329744120031705709033368996167293844508673721780452488869460767171376505443170283193594189904643830244343018573251385555926641392979557610398762526348531551303979692713047357783524595556754777701915809519549426459172406778543371461521391597705939237818800432563154153792745976036040575278254773528425122401540683505367176291783178540591303604268206684493067570752829169903000959580142618879143283815045219256056341418893344935189942530611332549595545220905064989585494804361062152850963708683958790656714896376573593228554274108653038448394943746084985583310835797408513825804577337183263463357649869870886144973207432336211343382712337629076936739664411128345700669269918411329669612923136571706054926904170099739797164727665626739570567909679818198716513292752590793636822279872369259441679849319236983863551642300912544037854791870861328955001084741938675025717892455889968506345448596819162229418388289632970897944314086728860382389729089206131181315801063124642909395630987436826971433343513269047663802501526521468389308808877166674689881681150262004873080293205068276639386654092902259513905973539376590190653116914884133221139655735929626055383225319938377319454798186468797542069841279345845171181021172165228839265292856375189617323365751475924692010618468153757661202744939382162762197286852212241500664745668093995669464690601830353755353922941649405212205746213260899539261473694109380070564130073151696014803290310384186720386120948343092395444498523783906491866243965068413835210071474327194397955054274283696005966448075638408067911837490262908070428117112183172370859052969411707648890112570230084483735565054436804100107384307313881366604250556616573630313863849762770562572713314095320513055645105934792696601454746983700725150020250540239390263901144262357774602589176364235099391337135272506181238686722667174837378082758341099869385146132918227890508676281232916952447461996737704520786392258490537377491485541836403414317361415618473669324786035480484500327397687624983731007699410847661084784966055090518620719996368873135680245599737688463810952588869565477601029307747366721842022737120660545761149099797759327558192941456071808583124718444033176832519271767295317292025820570755626777447800417671521090906710012086617085954013933830424796293433729927407608513556334895316347863329367721845620610862178911869313788960679557223599278779942005926449755111123057957185672496987084909930468257411519806271471136111459206212719585152488353667258088213191310724713515490479299839312526488364031954669482670870312563171003020916470660117314870193508465551901697338737240987501791155304606102812327958551452877699949963734988108827011800090942218815304833051083317425095182528320102063409380658866655377150460183763682976003825041195393924685831894416941633541525128235937867544760323877438042823550583288588535087165576192992561076450019583705555749089503978489155668644205272806580856014221228210153864366145224592236248792853666837368654653017585209307070261850317413990605629309771053237587897183901370025438079659991791700876041516436979938964385623920800209274578021574711481595047791171999899492801521865502625621788725696098196896121760419590741801633499743989323898458535034051930568937252922469014530247981645770448409483456445781045912187962681405460469802288751865790463526947595481797799480767822314708150273401561049879987940763910379206160736121672859669076552641913773423508004113967386117666662758579625131318326261741082931301100085786998970670116257162563561008091416239977304499312910762837182431188614687698271065657464308139057095626164028428378685805030902857314066882488674718004347937562649988783403562827144699230466772610750996682224790982869303943069198942261884444739517388176027044387866740193912625627484989352472227353729452197082014589891149099810544621260849337336034075962599457428124776377464687029576590726637099648646286324594875783164674333620565559514875057789198350581403098865160445802997792404447436839200081103055416416047124079876476884457816051567375055024532917656138231467832504735795683984919593083266834181828915265026280392039562091336357057341163102854058415703664539587346301970184346167745213026893168794546421878542772156189201889445119133903112616704724956030662626280902408000118499798469460962775940487264819175992787649152603284541976964914925260061832400492016433868645384844900448706986074153259994782671706725574193112394485523411686525608259319842129563772889513424274396261625414888882634879647753338067878093292438089758295379289401490194721974627625324686504614743977440086947613359382776267412023620097434108458421169619362134789728567978408922585918482794433837479786186087567575720524297645486687770045848487154628781231553980557961705919484908629810304283783419935082207901695353478777776034116576820402280153019128851956135204884664115720572041566105878092174840506534357483322523267134675208240455121656600650153302090074032896316108301112162807940069158862729686926868192366815797191674376769156626510061879937754290745708929064195202544131043811780075406598320085603798028635547781285173549780497550893433426061584337353071096501355275662659496471736716070834747309747314836348620654116048833505931419148484796605419693512971591486612445544763405001385394407060512743316033742051644193597770725325439728140968590850484516414327629909772172398023575869059561158514273056070902041438634621254409619042160474957979753994711142303832039704206515730934656552351210403540027401301383238494419318922393236653012155251599053661360830636718501415078540670367036671845672868243328647336734900481376919478453008527228523628253758759011581784695073672259269248574720659604276112679327865547495164940045066318992738760981340042512931904951701371999042864635469868741600773587293853541712223393931239332054174525876304740943635822968470604574720160253037414984286138440123255065633615213841041168377265251363720924080424696640596446097112709983980411630052541278507009440466440797513176022403106820313128671774125299407094867829386693797830013979553067225530168737047291057889055172231280150664810614540489703733855009210687422655156934460707288986981665651044778917777290716459501260530346952217272994430560032455485328406823760106812766864087853645617572249799314137954555912581295542607233842460619049591456146026140036971085086251264801852899969749489377888011120064753865343415669346447614169231077735576717006972087578313840136424952997615444146813922622476484909740696053648445551517099609859304477308084288085426689316376052050882584618972524368748127351170692791115660643549681707762271619121339932168493625574648715426461820129939686707692622472859164699558748158772556229902877031092650324524777462165135405653604858243369386359211424496682997319903476077704566129468206907816018475633800055082822305899946468481684796007876359726814921071893357515317197670504824532448693872076223490155571928076979386648296554070449667932767330582909507668628885692360431965786363582670065020123826221623227620746971791870215373392642426023980833043515312668637350205293154338351998327872661279361504162184852444701893384802874152727440250405373019208070330980212245353623879927504594686863038328887457362174897887401588670402400732512475441206492078520563444085095832523452565928260451860206273853110434403214012953229773679581092518613607878257817199808680318750574861462924444902782719075118353664664003575893011948468654994225636119880893582130411249612286966084244270932938115972390350979825139768450548636345132827299888224521266530394874254265463929987651435866645421009538663279428932738249082378216631765085954335756371669620138601963776946551208123216183100836585944199708260725102284752668235924177385334473329054665019355729373451169761232337031698515486051178042878897996198359187605251169473109321545821333389133636660484629445615221711630610751796476453547199103217483998284884610394714551658059481408462039901701062139376636516654809735197246743822271237412933532450386071713137903309329715537806475793108118099127214071426143301130259886867597614516768647039566882690612885709677985049282028533319995822352531317741305817876230378276836204146280768759232990295974573993430831328734179475571095351765184895364790342336780313763423991972527396164185003691790423423301085494121462870411494616772773307691181594111872617943041187902666671300686950219325485262507718051266657431768798886372623114631522821276475250411393478217477570594000996630638034681385732480175785465037455994060157675347557035998446613320346025177377088264986819971310567632608656278487062474552971708249318825511267918081205596860069430873323700802916367329714767514561285606874011092938940508839705635179944437792969946058198415441241124668538434449616870180544083146619416793764217371178152957266764123511457882411340109579028413664309436896673145176515061897270460658900821064512658165420823952108424998985507271252975392646350606945366352404779615564634158951932157648677092227577183346693636755129345291159171448374627439457736177112705156812710547304919797471686910016800546668015121799051956672181964860095186887965841102437077238893416348503036726161638953872989919927792882486860928878659080145077877664215398276729271348813237198614280870692487900569116370165049365880866125329945749052468835929255585745062161573054029297610558678418846470968294808898562064378131455579110863799198388429115805735627126807919333156545350885470463634993064063511979477812098937034966024713718426060657259566379054291609702195798249239883706969007331216380673474597547388188548840472620981404443632713593925274704788655112633789695353307597252644653509233162362021297812392417014653684853691421017722689879395924366381304432172574155496515520258612943692818449403539810695598274587667777721627156659164965155355920614035895953186490992243520129201770915602008763648156466697947899563811147700112969208414848733958683556638735579542610519928140487200749645660501073578350544875922990694289988140938491773812156799390807706422109652964210468367738289495740518982089677140277116680805812584696562740862561100924358163337675587777353651850465944659776010702651718882891110288519940304224844593264265337218762749334868615484143201321996371521410595432076743485895306624142474480837791643432834354455012316051314875958024010673058520017116409573986624415052060842828834102789531886958118250904341457381552275311539028810286895323836116178461946846477190591255503039767654627194556228879435742443530366319021589755128648921301047376293703661593464671369594819868392680172947310982128128924917237237226629887789331625446155488079748069515249762593834317550657947388690037139709104602281441180177201753104255347343955266842261338452019148151856878651591754130531591919884726268615912882341416157820981090363816408287437021815270512954728270244622967256700459529486933143170689949085443235900499984353399967615011482430567531946468012361039483266177053699503030845237955591978578893138978702627441079785303913638670856970407239269388244328715782295957126718596020590520616056328014502854810322163557647785373056245574929470977327155107233989595180671386882299782129086670196495748142720132542484597233779801538045533054775696218454851852064877805289895437765660215480184471360366553936419930549397489293404421561953072273590392814999825871636119366575066476053978248833148087414459571635857671607894225992658151519321805902349136352406413413862412071258588172080629447420786545620934940939167825828929877985241972432980114919484311483578889950084613497522010472225956313930458999609003625291620815808745087754104643251152179655039164258936683507588709439193393036011363309970968940108607533148740430131393783699424771075632925725616606456110496566496774313134243215636599403421318638012195147544608880200673870929493709852698516773488808524891536970267184045964811159047271890692147242634734307080473537076304812427839866687630203475833120539557989935635957868705014279260586369863283060034031193057052362996997785567271247750696871498142293471970381342846065128775607199753239489777951019279622191161467331706245711725158494982234540916487343076998894656854195980916996555911839720498353135081975562886100979912262555393155249562176308814174633051606644189888648349361025533542885168152235167653516667218610686960717731664298777849557287534824066846339523507756002056047067075637964355038978270326426149589656344906724316585964596199525377691188883233998709819546036850029583371033496684189069398841731312206993231240745445041451255427249078756850935984273143620524953690881553486240660413661229037476056808650456945041911366051739672636119340893814397542635287219755963372312764237136650664874261338422786495131042499739963047747952361855749503680621078293515350480369342256409441222450681958061427403942274121000162576110346727712770597127369379756640786674375729656661139877150154341063073164647854257827047417223178173519502621072281602165600606196060882660581216594240885933241672070513537746602789320930610438634201263461884223879909451793777944150607506352942896226832747454598968778065806385441210741034206673554082162434736529675423135878626432117610313628434344077933983925219623877548714141419561410909438858338288090350517839505163489812660337155244106800054946237049543892936126292507261674805275877141197872466144987217524418441885130741583872170257676929198022146074652308438976429508991525358439453139784087416106918288071573802449116577318117105327115856961623600195133061063759003661411433215993118411151964782169113276387892634666477268753820924641659511787094921382591142994765335791526068160787751238974879028198095700859809643419282163542783686626280790253126995695331818261805993818216628391970622769370645771007611193662009820949968451182456629295835616627056371793528474823830300761224075029531215942567903260924681466937673497335977235956705093893154574883668858047444191196694187591568977545911935767153918722979682940367825871167354175020697668459351584102406550716574730291594767254428404405624809063376935073099826455821431070441220689900386959244200074092306013420522139291027894578016646857516726137648428193541878297685800512997820674415054312033345619089961741537839377911788309258009771811876557713064826350134781403395582341816200402138797580176647424109678722719179581500015044587956412843047398684267911314426339066001071322586612951075834582787499308985715830739207110910856482878774546738972352736598567731587795643402659371031827246477998111558712819408959073946102383867119730495423388012266798124017432067856522913788739010238113617245136839780889782424770449012303789701351359673310110526940022375242238446439126335466565361747762213297788746741118528501726140881190281166497384643993966241316310347179700630415316926313878294760656569873139842255957372762900099564947718167191684603700572308397946363812372133482110124119141497044121701939601901008654614057831660543464604405009710664572195126092023797201432237332828637783893285010776925867489891466006385063704701110548392206088390586805723604536220165711787646636052291831346449303435169364130416949130174347405420939216242829710014643290124574520627204165293168370088351197077661214368514674404338376640996550280029279175697130195284545168217036959806831815967777418463260126699597970440681100748023208377600817534622283714013563163974853251005148186825190356091965547423821893540341366923231225458447330138189749665109631480233399326926259617794321594694088058612190171618959799686868865431714470161580344687782562504050675599790862493363217473959197015918550082053829940634042766728204435105559612844020035339445919358033263041548697892796296639070707933280984011959646808411302103422020220937583574951062197423594000531989326031023323092162810335711911945358619339466925607124805483918425760374612810313721000508434884904297558401775043345165519620054131750786286500759943462614450820610234478531696322730951659424917074448969208174995069970126244764759390235762817310945418875650474780944458360532608513468150353569035802305450546843455608269703212337470572620408579240437153710063998142097238381085798485013269855183709660098929304965949391924679236702427731188944434730510998698938118542329647515930468822629348824726344135527766512737426842499133997920337261249697136244713384502565928010731645523965787584624805013610557847026170952210008376678933915812120747830702295517245267683394742387340322233956736880979553688465120479388771858850853326220234572913473809515982978044407764111030866039704281223893108005372265656348385146691430556020726367416030045572352581240187627172188853034075028491657554508984702030577303158956965537253936749373878306897098734058061581667918104110995505034771439235696421946238220617906754236437489567601076763452481366452850379277202707263112085195825443987110156396636312153476104681870543973553509995623555434175106680311594813877969967756057660539400017589199922671807617198163289429439888313615644572069133877291049292101993109146690597447472364987600581968496244003126740209007440890934901846409082094272622002505371528483769264562541651454242917111734189828211921709702796993488113781744934471571020762059457401273484031632248930897117406085475268048169224667346469608281840143838518293505836129256124091410936957856379167107025324172605375483729774851882561446906332085192508510906466225852992578064191726315798074558036572378691152379872132268068177563827691576842752617974078615020356015886910360277433238617638042326936327343534251746688559208166077554510023588125536854605653676420399901596172729154460543131395605231953402048041911374806514710887482039758629318799617274365017689948077629367073329175354930132393988657496801791659028410406729629340943123001735087675528012962155956791480630750390963727118062551195958564165417309271115026736382089832362225061315744789563080667579166737341444930202008757574454556104124324789266857440616395471021338403397924420459066638672288740033489349577935523984338074640614285086605714781311827105137279854958641355872162448891020163951004224429746633943427871739627262186506558508760643558294243132534530183195200363409206127755303071197796549459858956156474649120356242628378459814493389822066838399499244863243860983103412696581740805191768470037599820177892310988111988397224981023009044400700491030083887663674345477115277913047027816057344285183567626451091329298509768455734972114370573572801776326464714943840011643062475572820023634644034700247369570439020218695242508782048058069800679441014810476906856668653702189304700097670624688608083832257481145766493640804688844655512063543373841589927007856860980508049889060436058746797126912697921382429145680776738136630597609713404126118253065564378896000563318033160547891651787316393404149355967397098315330551264002264707470357998865865580324610698992645369108017063546710288550414381898440813759848291190756758508181871791212172014622120851857904499305108655259537235657452032221639710263952761284939896604152875929969857779150698492962093008550790052347380029445117734943246746281816386781495797179895824027959878473879293827608418842720873536073100032469171023585350107304941478981935767912852687755310476367765419412625367442376955351109637134511790573921097237065081835925845244508032598381823536575199606253688930011101867606242227141970532049565537814859953764323478897796640990236608230028691256847288875614123218495314422229651494963395317875180839967347384236348834850580224154698421446651375533867863294030320325584611066982112072822043889789648892647244906778773903280666083377855518216084930255957626375922282708132935583627790484163046197831011884722284928166517231185284558759804272594135628900943142412177878004767537358946665174907888851871603975679462509099829366140054485302912120924063352173536060109790325718648759171068995741107060892289811388538821368118433183006687353316587720651875557247506560346718514793419114288489662722043943188275679523723172815190124244163614730840471439731674457984677147588719221358754941162938928492909191258298191748304757475114638534631022630735930266562928884822203323451974173727770603844933944280699283643212134272503723574612402903652621760413989519005364734172409472348564553738562501377859685489216513286884383124193331371802076350270067474549721131244139859714311144785479577727905377077767522308353931153715967329629435232176403366967341089696989581291122984701808967371129010235712397565688054089156135114691625250970136997442434394496205148795898340183577155818142299516923551993452025534218358313865850159315304935985119757047883510388495682000533538447786388634462086988614425794919599787273688634514264452526720257984310472079001120295140880154985392238996136461363763008036837572425589521340838111213493532286881760415205304973554939178494722076997829447203261180725724743681467900356037610510218927019354299253718483938012728339325189352434345198764793875520381087223027054664157461536206521554196915401796774146294652746366869765201040009691198372714117406942116079393834504425339857375701313885070130569665413524036950365697074562251107505470052529857961317258610964443646719225345289395362815553085655742956187484518321246460191751487374332766526280296432384681138372416766126194096222487019446962851847699136210631567965050671723005750813632853735964598651344708548410228671998578498982827672719063823396976079111737535428120800310990008623494944067354208649008587902863572231586878877664671949927106268058145850754439348141236003414375598664059650901414246588576443472319568273927445110082644684512726684285330580576350633437154610639503160616738332230175389294633016673710032870509725447415745839781898769649652261993716438119197423660512480134241035816812470876283090283568840890786629791552588551014265059890175345868638192350424108568045762017785419648958096914047272442861178666078033563221804468933730926913651240548951776463775363373500587284296178168026411785392608987375369391136078873099243981110184158619514896141367688960378315140856544112475767316812059743112219847975346226247072023415600421272928101766523062771140066899210673190953846267797407144171926454941057722288246865065462553619448173089940287125230155247309942963207590295893306308692540523263183153668390691884359427512559587437023141264286227009435375621260690189105898608160834798490844966091901038104802957110004149732821593917673190091309448286228710343090649595472071701915670426832621435796156861968522602654280297599292695520201708059323371345744487640217196540987201303897145890358033149354342955099113240318369717372937805043573272863435905257747880991673847860239435465375200713857344201182718673029731782835999731933122579937739308594921519696529968081075610682001418743531589274204681343595056493718478849572596773629695430886045693686877448115465694385327423046860546784621146552987366161754409437131210989563138613029630043510646636961243879350357217955962401935004523703237244917037745146371498641607175517281930496169360545372351038570995732364765813608358915182443078408261608634483046393278967024172358276622489450229542259196538861151192054750354711968978435710810590352208335049551972071685343755802180682911539787869958121659650862994522677846794303318023438160693862840353204114816884769060665858095982428788628633741233308806260478764082704641574282659642151253988980178623268336179826153180523913170768591875750962807844991473180827460846157595756533455636985736695808341731008446118630282813077137929060585961209528579505375825873138793478730695715208464215989467760975439550175136207634275486566981058943436372970576903850603674999104883439329110906636859986951294524472068067279078191724031777541351370871350663255953791425385698130217416818394124332810521633454664611962791045060485634274436498153545263847135716524633853612583088246353926326209878781216346743036938441410550018593907943703402573223206056117890934953651474349330307062013997465238170721043803631459732183360952776361145128415075515574366448200747260867006704368499004387664890937974120256785537700260248818959128169860593512104972140398262001708918628700273966613489059749513661648078871881021584836916219037546334345351017381749304558095259598109049046738103573409447928282552453010411615906599905755250350134417718370479634813353369050875945939148843708920954010545983045718782357140171838365987022567919503308982989831396283250120303488220089348811781919938395894454517036852956588441200029135270435040691102800854083592229614698018810283745217783221797890683728187825146772349764555781376807922313612809457902736136712311501228910623596466936135226257147229785429087697709760878273526295599106170170524338895631242929679678839698624567070934975030642745597271510224299633885696822343904429334185389792573707126954554007898963831024342228638611380395606072357647043348407981199938793052649626689205561481128340978859608747129542526998907685176154974964993618166820088508374123652154932389367112050629829231610762762452421146833803755548012689305274724556729726411125126478545040739546138287380348727542459394820821953252446120095387321968124727607338370354711939368697420689736300392690372874801420935517391650208755145252518079420754804802459074849138882529631772523719982827898854571876939594004469178809542433488413645820996746957719640166907372453905666180022170201476594465695301030461583605008565848243880149480099793547290068455747818061363474078390291651336756063680706490738751827632513119775013377355779495712994494341568953171120190072029165425520191804882306680612267099420658950636192107506578562996828646445106348943984865086494638889435527591525291820176876315783295297499196507584247189373688343854610036136467463890375656459445666169366415883343106954745498460609459907971699186696153030503535883404799849837921704467226517377437689276701339879387375712597736127780730438872074101242834471364196220565522298678821085620426494860337562349953703133054487957062177154281952053025135039728990514139604375699593513790968658924711649003163313422889425943069926635322466447151715291346568247175426618057716841688220694869888630209403008290431332609252503299201862567064740944948293394455536072495156715679415559643092763860480225582984998310410312179836479606518788748076834467382713388251880127939839977472851571183950741288480910533190447444597303611154537259367580762493347635079666063958563986213766373265106409971081867292786645014113868819713405197469180345570710013432381650150794687538816179893582367180879625014383705936755416952737342948553669977881771715768774971339959562780162114086556575167283195696424818774767471072448806627945707608338135111366513382955457528610281737915767271491052201662630228901238135304101876305589320723793453560195493081337848845950487141561310686740462114685619888882255031145972247427069957930180707012205573875365675676484912293442695438145030395122547598942892090775273236755743439921031715591774701915942272390854034958260356358696722919405257180206439263918698806142142836715930165696320540565011209005314409838713235427873562675983308823809657573476106575775292990895353026456119576658041051034306305874377534900143513165609749888590173765517329716447716140726124317925997594682773192110815295226821129114672321278906310591669796372879168938341814227144295639688710988377366893875213722267806091685454604124323039703180047179115812298456442827196295179148863973536091881974857102812169904745922553355100185937931543225897377431223332524149921631187388460577739442925854769645343189464867936838283456698432937522158228595832257845888154844482943712019583816706117483380414271829575905198405931689824239760853921717191040604263199820496636654683466559066528355991922650626112604022244893136285290377775962204752618701675738363370749491548963028281017369522634851038786719080063255295200224782465652526821357009518089651950089064778715125849229077896172044279841056016601230522995095819797106354578162798221628679739164297394648813139963587242823362183716528551156645552702430112170397545882900193453539913418666736121793264014109782405096180526290938007349100141073172200996092072130169796521660689585422372340884233524370434737609321381468982045772995028396679587696933271895684334128999081571595364293147722857843514551254647849768792939846589529875580429322682562009309953418099701134849447545759178624604669033397584803828228858064844008843549320969518613129342967002336806789893164941658276461972311478658242002723172253814383378021532739707481660722567538263240194277099366006262336510777400802713800897539070756834483977311538465205893561991322442179030566109605745927027017576898650991805947214261461396774760469774598668739957173196933044595985195506916307741056478084067916451347332980462818330779924970953425631561591055773081376220569057371852402586551002243410270518379597885097780512607187733138307018748258137207418521932004765953744899150866851351260220726473922331626618697192707484978492574344705365687645596760702501956757224613142281386324273985655638544759732770468632362228173698190914116327133039885377400230550880777944416488369617993543154456641674743251168100691649584134758995181906360871634639454662352889334398732000325611345646061597594253047001869812933412028183121306738801334066761670274106333081149155435672162580807925011422657625453259229530045833530208567843468075964757107766586958910334684237422641614169461630092216542246529335644778461113067219228830102075913499041818620694292499631470467737249091719348155234310866610358521605574281432658508930682630475778897735987922015844626418953401968407117296417311289164330556091494850212435325068968780949058706463995137600991267028163455206381808573700835706237991052723277711783716262915039689518680817604892795039728366402216001321074581095182466142417798228192886661715399996846146560101778998424764488786381200903120158919861396550953794279850349189970036045639557078673319063547891388606762510266999673221574438331927296900849693758652337240674877304253565159065434611413848790740518318567333650314856108897092719750942587841823807643252555098964173140454724040029059608717266999666822406951039223545749114932114419078877148463453618810896910116596293482610893503531569604009833081326443057559671529800532264444757066002562796615298852416406944909361856454266721283024514447796325164841210885370574788415864515252793123849935873855431785873211549276577978676158663148053102232445593101924087117173613264844749484593471986130105220620863470315421604126009134744344201035095242006084833978399231053580868235566898284279198889358389611867882885132047761995643212484858215968654000918346476827015886059524824974027357235747095126515636768595863782967082434825799619924449574600916270891928245239172974667753734832464375870334544154873460079076547746120221635200677614099131074652529843411365278157998279227270345427966310996281116113637152159616545105858650966343901033046243831334364569353064916399461079330672109308274083436374612280777118500420137591305006565994684348906499843738413397901029640850466181819895381720552732634041153058528302978076000587214980634286549296593599995244768042190695221357268124775417806087500956691738301423922980581205463453887008963153330103414901909960636329593124855548619760976329617482027752796756056862562535534194462592460011746459468022437543425571465754636157534547792400387311765576141756051901572668401466569438687744980178059865608820566466630372708255431881980649205482151056726803590737997016316058227754933498788743186268779098102277952278547020001321001459664611172882309486834525131344709073654952507291637789297979112547499390878851321953991544874851667424703939028562976744406681204791978974182102839071673609813262092783869408583937301757935799806170587471053268471666166161438777325232527730053273604298893269697597729835492738974904729514307802588239739817131131396014347789790070915055536463328779523702536535008728535306598884651327377380960886678419727330219765131025966337899297918725418972558453813242304724441052761936959809686193947299451205769081191122325560216511446268489099206899658458112009519715262307755846069701462694311197491992381771057090680878762756304635919772780649946145462927215440766815197091315558432960941996310473420082055202352912159918306314357666260877780562177257937176303426020757551172372077725257385279602940749073881563794960242745362658137073180216390565431378788430541625928841412915321328851937799114305877191331862314497366215754389199858253576081577234520961305800944107917924829518864517265267225033393560234895274010509486315527754959948263034082075436695373265380767348036345679996261120979513833182690235338486673316249080788384009063805403344651360908876620048006871012739626092354231223682201673209233997359344471206494969705633954252544838845096341727345426671066094000049422092863332670844435510317675085906447258462757881334264131381297525659555737881253443055595395300131971079301396918658074941184534158980419623852853502952013358460469005444240659320514292510207661894025627767491179217640748902094989166168191092508381657021405805903109118927205899233860243203270150797612832966934883914684618644122623392798981595084335877231609991396859525233978776001619461577374134547107440267030218903045485072184151230096068237171440614341277994743353051585977665688557810743334117989369325377210230555824198985208544140352847668576812032800831199696949057544144593820146580722605007903546497574940602307207737753784471702933812510288619159318220144171421076818543297777661843970992419678144490338930159426984715702871686135761608452051657777913451929722982317199799170979526766301107553428994257205815602319985548380681066821445907652740309546281361661877122171749904919871780526470181535869177708463266975984792467312191183683510611908268092144396614284750094147236372966158452037884013486875132107962632913479378271912087758857558762542282146845769656564653779499351788349976091831499906847106742803561929983614879007005397322583581627370749270123180833085913753710056059002012174357817667504185449902341559601365755776246031819133463082374817122714225467795281359379953217710589172710591227950637404329565273756011514719769232497821230762651468869813193086995265103516121956955616361502198942609752179041690387090062180513573474564668878660786471912710474177166921858843376919729589356386685352487171912901776141509997676836108281655210797225866262583171040677063311486123446634844759611952878789182073020181060519783162770737954903077115604624691181865572499424418540208701828345715070306133409923798472594581689413085608428393988560382871498370141226609481162702438052316322997195587802472599185949011102325495483619677390079857024864713454249335171501681102859799524220226854736879399312077062848671350056690211108952994118399982282627453290500703547529166649802731605616588639404639234658297913840727697181417618529392574236741487503305500197624304012067175838070486033990855997834122764618116149082388474586686830419842346347129488982454114809302532533696075869273873250925916454251517207630758367759601308053377443591824916764392889914964082925554065227839499221305228177710012354084058560345199214864086000668632106554534391367790938556857012056226918536116339284617097158979453005164433305342927270091099003607932688894274693880121199086243352525896746774716271940491379301776639210637612074510950190738601209769292206976285441183008252445237261748326697169271167060250618617169437780983915468023779866254068994163716411158936932355619816011380822781311423302398153761950629321496863804422861680128924567836953055770720771322022722748079959075690178370594377064920105317974025441468062595124405693823218674898622441887841757100079770557471540497345857491749839303682713216927334267489443279611776990743217160736155217047497387689700091460527781292183451946663203940991680100206030514305886117941864688866469055798458923677875458079235124429464158759940367210918807484199546676362461703249078152566795412862066890632154532817157279762380798331649536409238349726166163075855181078618845539509919315252604136000536420364926643106903695614833775131853857929130589195719983622404308055685278888660469450428424836148996111878651258029832315428226649184610748577396894756870723616588664429905319445868798168018854233155138128548960081315791456214715445454662301836047071022363577319717523637914821297583812615407254064647833168800929328196444457719220575396606374395889805581121822992287265298405039834259764770699548213521608915265507009553648755140672421629884605404056542112427377117395767312576301623594916845846988611547694057852609591040132691108975506028888566349857845783982008950315127403045519739165726985559581684979978948571402545746021799138529430454304719598950127825468282623673094312369727073901246821210327239859660386862985893077208250212799767446573723746641298073360044916799246752615628176691897435245997902714544765314056459425472780944064612925316788683295152544602577983074559166476047835100439102900006499248287419558262611234472233116744394752596481224237579060036603669261968084259734654936644655358764709887982226830935174676502753606037908694962435229167399550236358505804501964032702507795024277964262766567588670757498836399399159240047217414391792852179570090687601696135626792350282570197838029726086457613872190774417016592921090276256262918713498063352198315249985421744415868458204482609086502626087450273204388902299943259656762017062903400495726572432001948380815115255047099082454859103158213052868826725492301511179797588474766861814087560297846898524433873327047879170863703433673557579638472328062196732328132908963107775194525296982987326818803053789706610378818370521285486350692577594880876645272894612310852241096919748643038334572762601851284299502114511459688056231726358874052176371792421690521257778779371915955970050664671673458218237436412240426035670583359756155005684040752084642823596879099864479911193625639368227275126387013175439813332932512814599166296984646853426248861657353673481621169846936054084094675794718174063800214686821265094815678469956220407422173312568796110972140018871188289950606254836274700745256715560365087334814438820530581981353328132140730998523801647649384312284099723618895607043061430504109842711713160340546848682995022929044336614006718614634151976366154996018980773077856577330276379346682019651487716911837547520306958604723572772709974258860569184321523562759126014469671180972551505742178962533343543477437572320179155917837834399730093236534926059533193659537695834881829251293611393297335942725651292573047497746854971958498938246621475275018548593115031985321520869614649410340759058402451597711952466964861782692606517921235290330772402744849626917326765857346007578776845042718232981933938696969610011117757018080706601400604220919582320808039547809409277927097345827102161809634502330354929384501006898416141973050733585055205131663311149082044293785932348150881763711949274046702162760089045219223356287225718391553774088235861206116547344891109937463442345811586408842444323538907469657484394044358425948847834906021654863570888923703325343379156426560648099451123341897412533832832510503140445005789127276995003614452478298647182399951091674892624199798383647364418878015416899279975224814178082565514127206661283543232607240404542979312552996953860458309155318755021428409371451684497131826329274397683681037800160281466800819971380133572681386422507585216177576591004415596188025976711259041013579167202277350999042501687177744781915240069481725210906125921289730134735008528788866723576693649956240759741143125859235166742369178848024627011667366374291832399448291996575080942861098774496048383185094712588055559339612980762404262276641288439222715309552262890184152222173793882984472585522170715312300700606845984178046021370569541227155865369410433891891255093277071846893801657037052437764121462239237410177944652115333890549803019431435569738679743103771181124871808349841116239225770874056691521853703878327706107175320333288320568456732802435469089604374302744709776708718818932042656300508354664254329970101276194381333047019768437073875016517601417114481652767460375055945110910113953411170840119905683392655374868106578881987321949173515350035142876449976302505581062982431930967864935347881145179495561107256644347293765835263551436142305037423666225456579603031091967401235502831947260517136269489704733986171086416604061404618336111871314726038945109962355716883731787978009687983005301263792122103742165469857216628137421465863297974188236103310013436124675979533141270855197525995670957693749470674856947718346431513362186511167455067570444888251925212517775473855616445966041424193516509792650656265165935622702999269803988427991198831312232343868569242892238416123364427379918924796637907316508452482329652856444204893065568182847550917732336437835899425371745837140222923420535994688138126642668835195947688426355855859227463044469841027462487788628055874194825253549926361445471731264225537882032452631199498000713333027644064398802173320099984080931125419650124510088189596474463163890207234147864722022844363818586199723467248018150824864686148183357949636983762833590806463149070663960269127787901827494461573891989044401762383282485618210005715832700439511414247232184110590767375589427304887952115191530055884483396363311754747371980755795584568316170675187261005030881893967356771374323185093632523922829716687396967329714039760636458885332291361787587631452140578015613579771632589219717155494722531550720851676391858197832092166538218697120308866392952953097953158882805737595254365576908397771566956369966331103239399367840279363771222051457644137638597635277783734015044903293710902844309097551248219911188186518849769701128595371476589330266377176035894900338190922329391160099767285185682194585813790673691460363122294251637099587642465520155823652676239659056599937109707392279621135404126730333779332145352619536290030553975626972431150547439263482540414573061741422304897924888211561553183046900723146695908918738080589033201009018580919986959531969327459995141760355266851437943046631870545581351236155128095987878999066168720431551872619124610370866009454353838050055288641257376034687358695897276983651124663924041547901175922162107953158404413223236126151119863912419530904110016444193863247742804380076697821445167408773091620846487969742502125623665280579046382868811365077878776836041259780300373455560319364254181495688762556374618602060952438513019838673939862907676767161854764873467421543319802129747095771166438704359969610277393935748905075190535401929136248902826104046358350019496288415783600122015185405762082732557408119682694673240752135931868176807743253773008646826944767130213065252216493165635319040441934006309542079631095570044221051215260386032801714364810846355068920069220497175350852623475926145889521994466272542410048023329571195200017709040657379603868772199613718831511612836310782761778949200432791768035852078192234122101835524062180320511113606551800738230855613490171661552352841872398853712971842680919959371412682049785310057110051055305913478099070199833878967250683617804185940091863217066429695841981521257897447653975892688935999168334667926176662741911059475019261249403651766001446217970687504243277130190811161258979233702289316800079869451865442139523853337373779843860108561193848630526724670221824093002577345770959744849176836572808416794357999125611161953954446211705139761624094760208896527680365715390553262557462120537677887237063493265431277551404366277671619517490425998650849878273548342522110162619398535284836238112362576266281775852142404791312660994302450767419222483201410939379142003302837359119677172502307656821441776812901040313618798909106808402288498143154853737317346360582572617872668588225355391248272765923786707688745827318550014624886417429520902068987547787767691501914519271416869829900822380563588896114915541291565476181668894872026366470002781995530313929354731989608587269951219494324977563015509916109742505677599558252114925378338830512739756348702622762746444627373793202469183373226271272358281537309846194846108150185212183014953428807690690688842344241712015728229111419774260192474338471946786184983581650805237469814777628419442309888728242471294849953284117220931092067756569591331544324948800375238831419758034884073921834437610648047372531755322219560385110831685571681836428613080572510408715922202680488201290905171762359456334450692685461929447052869713706072518306033706564346169866255264939944707108106568591576380257594040865779501953565780065934482747193149535054545846193245812636241836547939078662609882969679648517180244094287912939868393935819670446506192410867159789966121633147616238786805453859135345896184159136769057310155949234523497328493612743833384549932380915857815966337723818194598929852484414503839774284568428122697047156270243471534861852177658496235696989812214305749007773791158275095603935651076610045715989178155702200244633754789080193582477991805151869296948493622605518575343745401975091149259895550444912085293697752641103184113352350924666591025416788317663608562014233275996009131225451734883035891952784253990313402376450174310176151638450925571258664727542389141016840783330002999161700842757499341557066943682769571276359923802279215386778815828805843897084625405318109687961584911747300482468558307785969096850201092165473028636163850683750016758525471108412824574409249969501736249041871173489268542368249905168610449119208369610745190732557332754134423270382746841910547547365651647359801988583720188130420260109307832353865721420484568832963985508143485611359285841954530200424115178339126233966326867896037667218216700046645134934800248832901172523759314200647810524385793761984773821374707068484189972736081926406455390433494196120051838714932183493460433464947160106598667698317831428658890497755951264114749338474785924505158541656249791551578176411051069343802652132614564312302721057341249120990026912471716091240909027329113177075638619395156103696154421029702290357364345940217412105124585826380540424862404052276500593561204515966440484342871935620396912455059118137433863516870877932901048658313781166016985408375229120581876251321740507240983860781138440597132177424284212456256327452001321936868697910484469252428994163176681347654088704087805385999463655446150741299858726268307481862880367990556724520807592513959998783391722723092583788919753503562619211345774995069703500270251772981607209597980092328687367877889743732952942117383918641411502993795655724603968818231303958750336998885619721359481990008431499685053313932289440074642939260278628350121770533543859270558544898621221808005159172794939084585893116528545559823595898779414132375768288639377275443881777889274346743398000517757495498117221073531968650959513949269149566546242265775923945536933762710548553366311634404212788488001465840026787597232666276481538362237601126444198968665026038790573756236023166437727938779865344081711156204247550520307573253001067424331052020976614241292631683859842830013919370174601749641003528208469491338979550672525924798106488890430587787884324104005509198591322148465383495514651787613740734904153044585959436049285826375333222406994497485745657368177000510471541036142800682236116824612069397437153023159651597243951122527460743146551448414718435557687027374928222487444896399991859867478385909790012262878552359829459151333304511438967540699761838853795912303899133421295931708762561007883882890107455158834310679741825579597284382927523141499207271336873819122206521421981888127054046959992936213465649321442959116936668964676189858123486446094347973392489003280625469452833640132704546337365584911530196430376271966092576249483861080760550546955815937493871100378129452959907406152703462437887809995629492137436597362577253923717355190744383058590865433898256562245681096993520582329893391192958707477785321448182181056231952602225251845668036400686642161774894533366567939014279040416678403047052254236690300375762173401290113269203206816273701692891676752128635822059998233365609132456179871126369456037248071261415522574989451175391483988124344698565574598138329148182996992721726865113736364135719187816437084457675897670418932377691395724491472974045638005640374840678142953498697672031841879291174836352325926454010713584460579378966174588507540218011139290506122812001250473237613783990688660830175589303512413521836236361453030728432385522818283803215736013882863884011351703824027154568104472495021446709718338917035462523785412232278461169877516219689288250176615385030570151851048131232000707869697068904350931626655484339898233239163667150833734347519790526183661470449476607741315414900269547297906329397938326659939053232501487440761776556979183066848723228270324718756288674031898059826867208981239302770299026199817712793662257336349881608152895748291251090102717417784547555435203148020766296468643868562372025365066860673354355756318871552814616846531155988621631027912609878605668094505003524607235108026515403929589978636662985318329854048423018229301677655038828885189392038220745235310419719227141181900860921298367407753929543006092465799314633674512517289310357992065737715977430437563409526222547608600453081007610463012616126643857603394324569665613109394613102054571656382158337151948915240924176016667931411153055951770018355874729495930595935099352878474851799742929139663183398265923140226089795292369486655239466552308762188513076804511017440603058355827525400088949317089399779355849290684385301186288575620456107807972384270351032249276550162102202357763512104688205058967987526255396911508856958301121632478236049474187147409841654831051722840489342131789847209500267247992533082603300111043584127317981284494664737233595473397709383006875839113819632483102244887940287810025694387255431728494614418764407225664133613491144597700353119281077321922895061691005316277073841972715559555072802663912871156875327558564350089282508183844227063804191466725724341377854704445218817235476111114712823741915796016727899576245007773048262767133549829752087553597303640332106190066797722023812447990761584252911536452274976562932002645608397980763370481430007232336651016677053946971884754745624731416637226297110262566126764942042936130393021771177910330391160596636800436986074737116930180816577884742109354929560585568632098073069754445395797811275369350771858426171504119932323280636079249945785074754466147189553024031695381059729295488691782513662362165347486610107076316658426386414096258135325700148269771719713531330427790173915143684601815582596940757394316148418595642955544005584142910061260992668810843703995346404589034628628157155843795955532035040172169877937349364119905508141968698738549494109930309671542727264036135889706947340685085867948507862542376253547308941535029283282789872577882060197298213693462018448848129060242479652264560111417320053646032355084559413290309760083800274234702595124517205885291418307874468404981386071732879120553604507487901068998282254916646702579928406899183065458871048238073017618752428703693768393321668282644532355001180517091634724439821543381507745771344908234563330621211105656199535120697095986235497501489131448288246583693065438855055663631384993889548874769533878653833938171494594013174322031689268652147594859790697196492477590373133490878250257320137962674996323529496749695172420805355621429799595546507967246665597832957064380168627597693576195329632237850645007633971305633630807936450178978493694426672052693083346373280605907615145147061960021484741940448807108134587973274507126681761913539087364470233464132702283969992907259289981956475589875127530689870505444538021687620519505297385950259776464762800191819167703877367047940831743924973985630378922258903451150230264521014867395784413441944573882755414124153348059318560670588755283468883797613791279087653552867244148194084254668812508115378098135099569165741606325106436782149745325639914285898765454863298836752843489405393699786519161862305641096002861112948458114421489275880641714195439107437983198900249098500570165007940688040665189284959131004129152632538264316957541343872156683294429863844873001711932016284325940216717172479254275987631826213456677939885288186426309246293275473249037980732757392172759128911517871519521551989479556977017615202602114104525724303167048234207235381846748099071999286747325667111978431015613476355015011723930438459601451888352722438252737425109999915471847956010649911078471223896325021474344314920306934139939203892454049274249077564054458599831584072914222790937453789737554763490877031894177030437893111652580817001410639576697205686692007042875239427844294199084875634291734576605568956166928629606930909646981171032756796075842747328986848096106392530078250632780760141145396144310263254474903762030764691910781998585207745648689893906998697901221368990320801055491903609515960119643105580683142674406704828113671842068811153906715616630634542173190305865595033175730147622103010831636348706825551255114958585678428263255580116776220656466348920425473629839636282647447698601767860882344750338135295621396793980384515269839075032535031450674432157041557872084932799676218892338758282976178351854312302400796527833052560232300280225192104067117715828308965211269661875014072717729842176812027128321358170825444544728802547572085689331173729873063355075059527083600267169922675290493769666916408513811498685802123850420949807529266343210282038833227777835145452641136281052650040247140387474357240618794284271569190420457580591962437828858626134784138828675543790233509635718992335204768692535981356120168305441484507117079053962347218511372837381793756898549652505674480325962818594413948861401113994222805006053273968387636190561972166173793301159196314604272799862895742131948648233022557320295659287616162424775175474792321501339907579590560310354300600047790874229957939322269107279882991737536952075565962244060221363283374607207827457110799122636048531147901241005258029504174475316726878070928447388423430939939192630182438793361315471517200549977926763454586908117518894677260315221022738829917406872608564237912809447386812820917856398488592670157384862027448508805813839107227721605559634305596467168004844461371483945958659552887208180407879107373394522356466259625544140095850519793706479796910355222735702988015380109519579309787368822796717957937833265862180331398189594833572204056092271279743011627541987825870592931178990113987271092210064076495070263691336512488999898092909316761483853721984710142012748584709714801319187856328867583751253730350199655483347922124795889140962266909285307959071892729920021949244840044650709031537117525886483954392700864854589170412171628574285568549292050199142973593855628138245516418067993320245237643374640077607379747065559374055694724265717013963455226972320712093544708314105784140641920211155017753991232700821956509551246731442010936032241526248787259110867616614081416562933435276332914083754167387442991842071693860198262806448309410830085478783512481470077782478524693515063264965079726993345912716454365867617355177485235522227134864683277714715937052935745224511208490158330027722136454738000694190769082935844849405983924843522171868292949707827506246573598814871377327643629486058171241267685939512682871393269894623357425766046655289684287425553956167833418199945932479405110919977417996811332404043964083224074036788561904625221598026422905025482791537104258364160903722276473533980167555025932584213274740580459553686188457705140065702224409490741752998545949135433317502285525539406402546943176236473596705221053834224310041737265615119880484348850131695646502732201098125603783976417794731500106259931293053471286869694677693218660270053183319792965452081707390859138239133849457122455622297248733046754279371332057141231242960042214794937616468792937850867006314087007497210040928170072622985875710571925299610502341849916378598238234799625190421666489867199046648735627094049824254237687818859839240119834339327026025895501077679357647306997918034544719224151378737473073158289083929832538465845225733103008957141274061331464021883857674023150315133220268536044711812199460447865009884882702798728042230065058328248122887297609898964246240457778590924681646284072548726130677757143465068663890949663926092881859829221181237604027561577815120320718238641716282960999790947882946350887598899158155040621053231984615158042472739693019005601652355742176707068459341618238976221531137645425248207769398609856312418630612207528020175846252157986402670293671273437372142441111894285419963224212109303404441622492178520479136416498263409384174317895409714132909938890614570356531000974550176707364594787556141156930262957771918541108270309220223411018074304502829484536071587810065643267937255159744799043460878637509757418448941488512965697323145108606096285531498107001157772488732543067967021989081207625029747257520688318389595333225732367858297260390832172024067609122671159476163113196110119861594902794379962727241367451383599888263507499297406110523346104910358142409010730635308949780676779057748013520033645697530204744444735477760421901486045887903907539410878508349726192736957412590131114615347568205995325165912336950014983424814732718080125682826920623576389315398992155558884324852110579276571259888307067052459952510169392506001602061729400630213158644416020606374143142116007226233233612477796442942883630951832987218954313181422667028973287388620678517935615972577376429309456689529282526004799385391649269665237428686335994834603346178203415951393420779419246318228511332398000840651345494760509064133585600713181184054003056479202260121296841613985885272719782797658206222623085073320488263837463443985894209151156429074262360872728554080137857768616246373672608687508987700227399294979663436234922403411615241143415325403378003879263688409110835727835710737761626756284109351542958507143412466894951555235849761424202932641787307545672978189999520809178152329303685474842429596271648324556250165343567680555269445884018654877134181459814621781645003299130678712408074216488236373244634197461271713140725288484059116818739997659867291634954957874819528495263426916541077333657229368176417560468683023957432826695859995773318732058438470419135466070998247477929357667976733655287891147881863861989996515133552394860643143367220341665290534837107446357320234327228091905596206526188445910293577483872017945280940174492976760924930672143943949408874808520470408840496013616444137032230736328473763307161173408180315673636762608771802565144656145177253820997138924154671014565215123755558954602928501731017253645737823689756402802984262938771228488533098021331433420202921246174888145781952521900630207629449217324778719247894982144914129039846059344575465881803265572844668325921661385829666509845916297954101016191816888745918305482885481540198793025944746421115039573715227661394796680544664024849691873354616938551132914152668349483623929215711256419161861706654973419804477949573652234263621688078196954176600549414786687638924003662373049471065209301614762989428836361826993705938003398490472017957939069021582211184071566064838925698607664281119668915909287201596936123300409973119412613245845261506201027274374079755020987705098478812579436678030535317251496946837127352648172500836276301287816539519431056117532098094774851714610818508738352068575729179481200448457824318994735185089562809201474388975098619258269987644892381907955343237280898936430794988714515737930365021110457226214069085162192393459433623930975954121551884510191331268491740577500761999945067663732950425257278493842930482684252663649782067554132579490472947051328941161868481787899068340825259048703393647163665384754206534303362375566568338932822627483326514090451238090753551470823199818532525328780598256792455302187451139868114053296194522206292122039472560289144763651300945686997182015733977616162498647754071662694984278499899178332267178580322758217805083121124148526149685346283617201844193547165693047519255787435790221903425950096996754078369174673832240994626279824229061003559093733983037946446019743661050463328483970316007106268433105039073418514351071796872565735444491241369752507550584589587942491983063011739888631202636632013977505575230295611680869404299165410621736797584354893659800844511396777358129437250858359323540696298694182257675437285257092859251440036353340003541148272056693750519216776169035825587042892385630806298949696694309847219165398477823925905923384301887080633390227491256161378617315184256167851513399462902644026039883644406071661808505400573035421337278861244718172918794447626057452838825012322517226048915698097625730621118028791942157471248423400231444895905762536394953954602210471287235734389854655640650605469487758881551442141391139548250897069777422545756213441197130793242851835925516769384751318840772643335069893682284229099336656970573316449805936440416513770090313626875340884933226487764672569565901601463496971825238426978072603005277224237845717902074341140656438839370145965476613398078842240445548400602910458574403988227675167706986689471349737592598181925924495680615928969823972877188673428824954226823083948638465109963365879135319111516471142895916134383105471006297654836215869920596915599641134805196514079962834529248166137185805127933337157849864319304924832651511361480304580769557975667318475526206774725756842700643576620086166806501869795162226782429405172207833521212436030327292542912165697397058986418721620803940183422701958813159160834395174716582761988055215045012969004141574407159751848067027699338788130330938786057768953799001078839805700310025609063057724324537604337712829820411430393040509733911267634878413235525954353594647434192958805672719056017493424803633477109027604562998523446247219322664048044230473989994276893730596366615200954901445923147781522693697074105301335173493900926492773931562845257851559963230510274385605020261853345283984501023609795452332970725605570767845688603062837258883865056129059615848315415094666838320962082319594964017178953820692213845844279215997369247545526799990804290591994607839313440144172666748591557210327168941160226293139739737024977547579642553932492104784277645967113119008318414726798889009705085219406222609261751464394508669036052676324971508435067506334378901644180303809423540035863069357333775916236022542617383946495198543134600981802693266367719327116531994097755226760486191668306454808676679071191363956259050155605623579094884851961074220148558529792362455177674289279154593362061331670007369104347074019867803155697894819917513732915116493462911639902951828001121093719274861040381639257779526856260256285084785105033213802279120624742705281257442588190442629922148841770838504172994702331545545270123226655650670933818166269635522827356587025549912980044908541581548571348976340188084835481868479043885858520538081724597314992870923573005984878199807536637926261218644249204352343772916810973694343319532568884087706843800494094309127598923665170812853382775453212421093878360611253597487190212980843858758618067185597748408337471889561762794106329795365208939990949615860704338201768723096947159512503039753782581385499259936629881247382946380943335452523616033198031716937949883936927623104546894706843760759943395731163362608318283601156030935855308658659847414411574197406638505547171877229264566434528430282051633569676737657565571744634096833208256884526422411302593601300322563059073314845513790906541037259066020347950624238266479551975161386302633553770336687678485338037012229776595130409028622780418276509980115875621306932576221333621889809095314961861020596236510498688193949438402931241275821270001299814976778007656751769948824478674097562986417670255837707347293656537949235215512709563703214938753382494099326280886397505163300857155991501974099009929789889118206891733661291589379732688044948505567223134535893854415024393265114071579719535382043755573182805077673460695838566478459945734505925231551595064324911691666953145699445036545942539988080158369835273046568865526565615853328715814966935953363398190495747540319424361327779829321868533163437349235703724355067918757056644214015882048081035146558278931316633693550497978135464571401014889137716101547558461183454579843537252301287917981623526922213991492047851754756292158201787684042310949566669296782181994660420572284561648962195151024277801993095212038423124787835596307648175897901711247308355066650919970308657703246958185959187065170377233974366607920423337965711076799432191494111474594220043292863446974876642571941381860685118953699571603023115000498206527260590009469061842125205962555098688561656025824705790157877343570820671881752820721269575185069859291694972690930654255594534611774989127168721171577344011800741566383893605636979922625092862813128096202339306724550061675733794773944942236075447647416370962129743748223864293872487006306064185538115607192142982572870406166678798383447154530656349549533050937822517725398239051341004513792988751351250588015558815190521802684461187071286659454405918079161710154899278499468610852280170223265850414522334045683586720470514643453707470704893639163437423768860563496379393008064393423349618452902152143471411640325039834998682602097950333653413101119940370013017110121708078097886556296261445632261334501553792681855212811037469525272063358283594035944086456293483972680826511361136773451516452518203978431840328382146954330693073848396846203069183379022941233231387746001150097737157303507271318531498785015461759451343991097182442501374324161900060223667263937456670638469303801445055847019050007218277337044760383803411718040797344459604916156773134088826526235053638664179397568943501571833466533167730930967775073473660169041639793877342856082741148896365750509188201538179112163531433298389799691536482636025226003483126371117214873024844905401306562729535409185170427243619781205882954955629924156258082508632680971525018270209257984521766884510073282647349105323376104283093534587820817982541064313429970927954856249217963289922622139162074333660556348247247504020776930068951899029420394836195196732423010245757279602885571321774079384174326339586291605940268644077787540118998991543060490402875474935713750937833248880405579200119119993709552118507705393823900841848538623123778939442655160033640922876379311458170083444216380733728650701428283992821857945471511845372706649706612820870316849112199395287235770238275760286546873563842699410479877038183430064209241641422761928696957249406264699824094322778732470669032573428412202688686500122893123577251977753922490089274709840940564423905767278892600327648678663549190504915297324329030053397694065410052235574607099183598159792565583628682628863601812148703897906359846697024514497436967771215071397376962405244584684226085176002368745247523765176127368488777061554163564457236540524052065246858164733067700577356349978894897151805186698280627410529651899984011559659473344865467564542878378647375005556357157280618500150707671655503958561606418861958261562691042966299621402454690384820420612506430736989632092770618497990869495835068864902908150558579191092765255667240149755738932544071977695601117696269853832075905607922570346588615615205024325828606908444785983889793477616289311791496468698349800083949519938742687822201527274925778698376871134056350300046027945407289817539768913477522638267875305966405784816816954810338433142435291666105463532825919025989155663134161872594947755569407927271490111029344988453541591198675386588776080808528432547987785561669703426025372597844535229273711079305792600083096940989611637615081182370564176899290314948111849919339907042019001644781140025073646315996587411752284345190970881931818892601295931975652678068441417015200214245096750457702367583241630144213127450994021033382885914962044912236628004092214757391034299813613226274177662760526242886087128908362670234453733451498024931764342363011451101171308215776954153481366527493777332174106539782110762189227089562120394048320936299878022926712321320477914883011562444671522955842290868685566398340992181521774107305392030709971762087063248011058113018809790674201631668006386333528722485362655391415831860126982210466959844535942176148918148579266474534052795828843302404561996838767419937100624228174793429195022228790494373066440714041935204875015965684991615528356775273254212249843536932685524849679396079617260211456219713893510631255324499563014731112604383632017865667679905061567430493456672891402179149765223649041862863026471630963856493388289568477239191307181577759764008771649439903612657585320140556220366955085954194768841461653138777107737657315463066106575461086306769681151891545257587451696949715642425858815921166899939073151962033246713227543918470613635780012216740499110809372812282518404282861339315188863624372037591469602471224121011412513315599006181201781511107768202576039892243384029356724071660099609556298755357837832725952477488194802291056803487774928926557804135827089642318015051815295574904295431969561349343018310770730947471313596012169403523152513181002694088880155642590915217382570219231262471188403086111892712751387793121156075728297800628363306452145223799871150633138547924961461485102181952952703528051206803474167241477287558456070430518430033914465601454908578685238027655637459390723156730968751723586054033511189828386256999447831086264808760556662032776398954490760665519891049107931263181759210895473534288705277673563918285236055253094562893614370751801373222917229415943804620864727037835812764453733645943723603620008282697610624660690652311557531390876416840867373653167754935425248587774082592904329613025899156785388541875720488271725574081589428055228399919284994066916371267937801214631494684876516925058404820036259602750129797656880581285465044164848508717829458981194146174505117386689275256003777951169569211145175346685054622173402654340867681886460180874825467253154775601765307775682439873305025181934296464556126766581171753063025530049142160591426221558408927665650644177964540209161865937722854423460365496460129626499520931240226640334695925499805091796732487056748122869960316505855776956503595968111896289618460696507656492751298334535592736853132080326941469963958967286672610529812384010069597256374364090129256410334188433313668279267482853602980762584046353004373636343919880021442137450146333533754563994646305721551344539329802258282172809330189996924916814920921057899541821513601970545367586039727985856898030930977591012903742671687973567713043819493398604263101145304852477789948493049155310200648112963619050861461849830682854980162149751159834462093551386838778869244387796546794076789625080172674803597208711445412478630980854181097089247961209656264629863870657015285450898504771629423558305111814309584710995004466436641511034409806872643059634023411430690072699204877270064201120544408660049169798694762582371282729378461512302704011124617872478379382598278299314909981703215731237036316743438138711479554014118653112623271964937524390841274043741055754239147773141881626651338205266426760737452289248023739539381953162579327708024493006128326472317682874348525829285356634705676064214281822475339758894686809441603225985019746403635379426370226226345203634430910222516892003996719260092640195166844587043742684797233323025823857293091510151296095951091147197122691141142075301315101266729328089144141574875887381985478450546095735154012823101881937116860240519312288424939524713848112198609703581964031105517090559680805102503452049911946642237161732518931862019321296748737021581609249066279966726574285536137183401519780054560940932683025286367046245850806113879869714473116026611239872890387629854039754718565658849504356176829143768097796861713389590285528640669646261502860577399194879149574010201370830398352979774429842483573478398935015963559648600563712722049098821320756546048158269938892402023930725588672324518922351840173870512970626527310908575448208084700408810864409120263001710730520930397278965972128069132478994767390862876262417680461246792006015039475911368071701680214596226190620716552605698816108302676273531942448676503927892043313500518482252922606053656135274203960007932360549238060734741402528338694942380373622365168114655967211779342914693444660621865423123090453774516108156104691873438386219723970319825207981560147605543656262059988266644788412026993316382828655002244398073291016410892659725050072846989718975601794031865094656405764458500548857852808170357895042227631051413555800842407199384092482992209227329392721836006859372746319632256157800368758157634268533381319369412009128881704931996052102225208681113479981526867828686571742564321083020200786449269829903555565046725988462775644747877346736263262934109300603060646761097079848309080765855715156467168033615956880810461869726897157892812093938878248994744837867901643303836036430706140830460793548230265355235644398402072596831559247043757443693751275916676191499577494274101715655842302594802901512191992497495706848624497714377514459716878457299321524740464337194175847184549313031646229966273688073855985542560603080299255236268819544418771748544406323355936297307650645386796242450713846997723120423970967453664516496072478156936657998548137561809925569361117059645704100650626826810792993312833817961141986712125863674126082517642650085627462529416847294740873038948887819530501333176091733101080982037093456176545234363298477479046658758489738872726050571020154668931353183672278893371527688532047067329502198422680214893726147602858607482037331646827411724976625076537134373299300657840033639329219427834411266790417596443340103350881060453890946754160051428231250582072524366895923509657095714442397129640320726993778939844441900454895133639772670664077178774554606350621740795721203147382731064411488650563333107490106069700412813373480252299460716225865056791742303963202436705473260478248511674326461736429570384756229252307425095505191959198152048278882949254385277213438491283329021430850518233940740635635062229969065452849340689815665837674522445290714597572005541620553475490240707277065725773725604511122686044415901103661246591429587400917471051653063623321717780227153292716990472618064085289880499423885110306827693876259663577678180085271448977093971557858019308485165842590865927331876301680122860416055934721159616549249614615665209147046214238424699412815084952844995287577563237676763585738725453055766915449833244190684376629886060784706911564880478846076491220906064355654316567882184760339995576007454016895851264334337490135854446462875320653617464800862768455234546141204353755895231780091920652911430867917964074357195819269896599276544036730764044488093588019608833648883018769838969159363229861027435955312525100696002658131024170227605553523324385185426461352162732057072737273901767699065943701962910745497471084270705494857399572072526646229457735263787189394887516296901820886550104263633824986040217604682606941350214984709441197456900110728532729783211891338294723466859224283640584158811292736990115180115705567118416138921413985804676326409759137252103134387139769799050628426081694653490066096668942616075041847589210016203190574454728578885359933407971566726089254532865893093319035434121482133547725460699400501353693610511498816976014224369551476007410458108482710742836842667724124644815915078726230911045868954787181312594381211351048949236226007460645927500596939908176588594071883293536045550541132992074406239830942405921760122623626500798221409137828943765861099739120714459711518567290020088303729161809612331641805288360312582438110639088755859213731220357455264995179688584797045553213210896875909930333816821439369623345377571876287832171915572127360996580919074557486754112621829952347072403557240927026789741759932682163115077823173825366361448756234514666810172797423987466377159681878563838145372943908594832307034827333971900370538007806540273981166356375100147093775917275577834488331898464811146958250352467839613344283290808753672332422651170742983354330198957660201643007625883669309974428697430745447724225306904424990979543763810807118752505053322833360673294940174624554434956336346008459528980656595898999662809142213043675969246070685368256241834758872773198491329354813908062334603906520542675072685489591347201316294767983983873247935679069608020175745884786913494912727292135574142606727001789349282011267995929607415311414687417849166987828454131749852226602708011088547955534515361771638685976623719160033311967565794147481935159632977897953798811640920014029129592302980193303131255681194577623979468213049654906305186993198090305499882436882795802724637836527513567863428089788266611502908458656398457433019636812068359598965515505663394628052642861689704293297341312483384573216500360597309050995517659608118315665597913221203450313570693745541357695796990188793915856989107896816899226506691301062878283447494161384048611896402733316559249615785469411153258046210199849862312940405563760620123547713048823290994427124650271260991235698482825892402314906978116275336829898753968203012471185519465898585686186629909834104180408036455709354920855925003688682730058949234727822181499527773883027289432196591742302737065679366704016963788280698090318982490772282944140286695828305769993717620716486760373847003987815885897650500345026697213038437393751088695200490689662377645372955035193227849759414732937144694354451101892172470390944724169329712287226114837703102623755513620631540287012163824768964534061460123750687901640933459018965475174755553868161242866643811177196901343306481020070955954970510006189313750960096918515022935389990674313043407503439979703438268015353706343052548723440291135111832357934042058590259838144159374208449810424401491383030430751142022061875676926022694101709634771839412107573739111799989154672004484513349705803907420826578329374141390698086525696900943251217384949968524813333833390432426006710837885931361486356081701812197469929584119755402429437867696123945995146349618126559591041233613504506853114680596376930431001315639180687440721905411042171970411516171021555214827414608103595753731861005916254539805823585848172085993280484464091401492060950171288270267458385122520014437740591514335557215289424852438312168253597721861281973804482365244321796506012629215174125903605670641480203632524454517864257236951050247537764196182514713591454052260504118770297537376453893320842408988949551430963772676334524680255102167024747695919021248780234146387721575589905884359806072692350202640669119801281689167182555024901866195730186446700503775302085762165786843871127879442893789672453834502223614085333700175897030087613195018366967592003985516871583783374895479676161623750186816459224566979399261374737810845953895020637271233604190040514388210264931498614110422071888630036329174850111360873313938941392536502055830884686385455850147675833163264517124332682042959018002262677139373224289661842122576772886890273242118896350941618253330751095609995300839799658542164389142255515937159871531272014606740440178318696823855029346481125668996010548523128306089973454015973202666664340035669905809049127440684910426997133460475328787082750771411672962575281149502683576770062044522589223368427935908485091644300581639837898915398165245297674365223590232684259928235552457151357165241781413879730438125149939978556809191383117088779380932502331533475915353047223637280026005250283461728324189373027725237667034419438472981184742602429667493286435676046085644624858899139191317158232438537829391228281442614519961783180766252648564429880667741101607569838147567038129972248439655273361057961393966004187831411036931182081941473088189772712400723085147540712573609548500579061212271141230930979889868193429227976951998697507051025138384380353691859244972744978034200576719681318411579104321653669974374883259763220649128863910932348350547252886065874654565605246379932240989835830834481890408820863684681473623173240550223898059382936175387181756222824753795442102080243169815137024681085486928313845627541181243345933979145252164855712200609266580121747265178391262930392856839409124042970991263224753572414193599015928744659834426612238526952090194817911961882167105120376492123443455120940329681093481680281667548557512267481478130341428661032265469975845789138876030017116177785917150448000972869164025213116693187270839433139061728778806710549590585704577813289685055442437985195016697494719226337657729147077244071471361117649620965864329692650460999885703577140958100542753259243855582210833965313444485519165109038594931410659683503542965901464606296765823400469365341715011451007897829189025621826139696925969538711935236442037939928138625811617588517695674164762479376358811045408524986322961622812074850007076916763110913801604140581417514933850284329492694681283815409048427984069563219935192228254362595648872378737770806179816329179258386450316215910759659635414731614877651018630811657969683444629242602537923058127345959610735512118027301866700756240264815721547126705676685349943560983238772778043813176118073594568309553207334117958288292855163614237362801984129970210739210964656459965710060241478102340844328774480080133665762963410815922283501217023059747983467610806595371193375674144086895022362011481677018710016217205241830017446654808510528228821604678576463695971885933041164853943979582519447509690035576015005878098086585790917961600521990367340188485440248926475736164314803508667827958319937263788869230161272386618092251972380132985245465728895725727478961126289999064165087092852820638421629176510389462503216392246508695047096762408316298667413186811085523786824574483272700479960856374241937318167764148352472704312638512377607324639029256202518832701220735560396718670426000521199471817935848889613632973286287682026169889112030164241626542817955747341475836156829424415271509084145457336270726822506886924055557952239577020559216327179817559346558116095929917705984172959487823251247536343152187726648951851800575438706935033223398686312238135891107214757039378126963289555347917942929458133444194682868860336956521769216486956171106462126259904532854430194720725382475444797867432667445567141833859818656875148352013463096225082588338303029482533350493480557716081996067606781036238049572948335264638352894629560277265896059209424170476054016390999252875652043511043167745796439934962378893937500040148670618973941972837623010728675179962180825561904756025824187603516687496146165179233804051216902351059434327664928040342185682059055941874274908905382070859545997860913885177223644118863840799490676216884999363524179544030518727908992309929509945549704025226549701251577074071403855257870201610613056366901182349684493852253873030239332674852438811676901263956433956807075659367376258426522577469114555010100367752619275792728193726639529650823993087163756193454911268787201308441354739405518212227408632075087982318401141039336516017299458514653024475263881862907884772887929150890732296253840014465699554899038680179049538958345352622909210650881196096775364207512537509133081193512481808960506815638327858926733403409741389848685373833407639965920493138281814295434257177142866214968870852364726226135666585744851640620208067546243915263574467145904432504650865142619235666862636332587919824303927177270474160710298657007556445084506569092664885463228915295606285693468842673760559687493256295546134725719091362032532074511161392287332307146504796317359903732191871409160235952705091406297671936615820280626332312174912863053235778314195891771605503703613591043012151233570649598326385775599391484157446466455368601396579634432413933118888095000455633113215420936603993650554228884181611036993898105910412464215710660881039121006395907971440087379231190526652336040045227596282046068859417590255955179083547561887830227912111855678881542461564396311014423586928666206034968019556907980620189918622529036308939831524225746882441312591865938203381027491854856074630532089847789154886432496127119095328012646857914650678213720586859336057003568330007915685246574206582290815956525987173674886571351698157879458692721818344567077508100180523429960613903959424309029360374182924774908480251860866471404001708426569344384270896152105973550144121884816275163348876262667863993170710427226548928510960138060605408863996898117042197877251696992755516125329056027074182211175507825074129502795273243031384781246254916636149260738180858510927151866239405527348919665080397445737351781788449794025860502799873137643350922302163111128901303958182041655760128836198709420857143351363328996622990810666174766586430173767078747759789845874065332389373469221807576045027645367638160088373996617983370627196819121818520615355451018099634431760228895030576581508288631474758199394011287496700651858123511290813113128311133704205377115057824402811161602270386492599510367719040347773977283107772701797433847773194681801260347307124984153134155497575025909341099090319131876621167107800329347264818135879340902221207381841899903683488395267794983697651809743187594030148537263062942412114855491812297419955264010170989035943528531108279690534957862702811616687419561902415103236303456021148755186787932173844464077501923695061067959484192996195347577879689537252196905549278049743464050979667664027698361813507575524253212082953282494924079337945416874770405409022974864919103985341853647848818265344465848886130613420100097794560557271967311072948589313210782756516413595135397667928791610493495373665626288298724310808088486073336778277077196834684570127253479404477083889837666106643751140816175261360688542197737111402692338698717962216504183599121010183795802104833801487499145075506394874719411285047243778827886222431903160608718781214735249955052875802757039251927708302583119259559852331743845916867364793815936066869246031816838476186741157666776817644890356316561317465402956453217869323474984906471649885673344252717444520286156219218197840417215895760430980843499098090154079507268489882981108037745736443309642576425607260346658705225433037911308160333069969822722038666400766523552642243241431630390097134134671426555166439118402782823880100507413661609714786277141346418680993615098904194832436177850232175317017014014656515695972880655794118502002349772146828780422544961321923033934749295291409935175557405372918041284325898227020169894847059695944629105982142670340220462234346111505491935812929048765764420217211443969338146056090894001233446946444546996298263807391792673341084764216201687604679160603200973393199450531342125227687739460699939717184871513770563306797898894943674329859192884876295176940208448310100281508898859234758859436868870201386078923187535421294481888078898202120607884065579066278639986136060879791150022494433044595327605072797354818651753081782813137758516265678190629734534325988713798512379339852283380498625220424144984236660429749094348960179001520448491166265542513737696364088963270352328124586264651825804716562265344733472138358347647573013927081630139581893809077690067255125376116269676211798621116309952196470797195865878217139112697704886550951282317999248069841592889603082371541011638780570320727988221891472101239572573741205627342180767277760240368686475605715237318010644812573301932781186023350452252445963474436786966915324474543931073172348693786838523311030519485164380725201689567935139657177207982541203055924029505558698796836168794440698511958011568371299572116868374357165782159974246315575204631611442091546344118453363291750786581348447664993370042118588099906692581861667111758579951656557522867294124520498416639396692122188841322439434511884149426979053358809271891327125698962536974609344875741012374092654622801855375275524349609297032409230517432419093407257119381458647811809819074840441811427822152126208017941870632537235721620584270033816946484695714896467649823806422329903598158746883405560049319829601859887979029173161404823582491697221108796988610633280713293899595012550802445795513847646153032635668667035360553933896237829007454690233702200934755407016535537689146177567442890513587218478353347967267279558082437735539342687833538869001813375994422564628791462285166326210167403423202663039139002918405707369466228525726918086839450889122898771997493699105763903702725594354421731251207690583237296163844332093309036460183270297496976822965542558799470702865622675813454699508265072588669294822499039841939997393995456155080685237434448598074168445536776663314032252696499012253559833316362068927315530609942384881077927286905302232292841378755815315058971971557522386715394861497208125381566280250161003119603038440201119193898293234660739701103226566782422530540654146153215834056581055288084668488359643902256159682890463832238975087069095569345224368418758659462443895282332615628702217372660483018017336298127268818739493171234544357345309359145633638537325210787530082442536106911908712373655537738985304377382762461429680031653526851460479302541234168963724731843044826087941774116087108644856068637009392405522930673053801417444905016942162526488920415666361902504345170170530574432633773067026215745859439724327730246870795602387771786753335075399556999859305136555580064044817387940883113459583552144000090554019796556460459656841512580619542743873711879766785075795681114183629322103034902607896625801296860167907598875333298460348153254151095551197907671659214207483170522092240612063200613088565413642095928216608327701783247404018703928109039094901714637141002466743191869684933051795829097643732527487367094401089488651318019858883603937237539678549309847773942392084098540413349433263926456073069832464082356931035144458952511277498855065929599502163690013563794725200980965553231700818739301634359703034965407993463868110318466578084629910319125377273891626607968860734037700897141308097634227510322341042906123854579057965009235627929484983724738701332143170036139644303476412696086633938375734827914206821734230339394507639052065562831076810435720094339864287464741341000920928756538044580292101341082604853583398251008924845342810516173284831742808784773472879095746376809327020849105361780129405126141389592547136080284085741514497374945267684266521680755181809123700834287046989761990986077101961141091290714530318790290632477255099034143083618930054217903388769537531809099821451750916278196099288577136212285917790322180661095391418724819493778359610867369942712867974526985236020835631578896983706627592706603104234934997750645707641757791134427636107930789542584818929315756710293395441971226952927170573875224352792349849554293240244103890520856895474313941699039151163704216164213446698036186630698236328656187467365401609968996710461210069677547473188046536787373417602978603448894149717739871134978634241815106159273472305512381082237950632476348205290725023911869077924165762695269102121918030706731696595610783616702153425705465952491548558505550850664354319479682825526037552484585012991310645288572556766169816316817406470141000435526711840844336554871994562735690380184644086723416293983521182139698324040609185032133075374994128464745139357069439163534318947028132012279891137970165245634581980763705399458291627125002799075568361330334331080720394335770648578400341867213232237455154430127807598524951935550827930753270833837592452278311072943538591489562560105823275246175617633914671359845344336046345575740521147120385779935937373250103951598167234364740854203004277177052699275685054620117665931964367835554232309008050007156823758388593249205899983381148954235335981837048599435132211597115209397422540092237565192488181740313401423403017333608065128111321889991366928065038808685384118784975064438075003057658915341465191291720936037787917056605139542271248589027773757204791514831947525328507294623686461807609210882142333129315480635859349291195757856520258364084600884151898556159003114735267274766479745593211385422041142833977927064029984829164917957271380640499046210156172583012080629763148944530214414674929087145783708935271954155906358164300637576452470440330402566368066356841367954507487525059731611213162461626248500261396819394947637365479994948169999665731368364286391593814796923934195592448070896426490209942804398761754971938212810629199397300726569663387319424110831623161972322971638557566432170148014914662701887268495425119567383986156803138381726013549226069338371952835923108898563784818142122957363720349951059867350179361296035685310252976225489916693621975196684557534684904225495092525210365994203928552330641385179292051986749039772141862002523192084557279424599172917439325281564658321026766472749294148283127378955724478516253307856728211420627549192579884445805000239803285998695441351668460499252610763154137514844713863010484868120373544919033394383126342714013442455769063345137789844689856867520435574006578564392003938410279736494612397291748621512360066627127764819233297190579665460742446377038059427704851092596351330006279191424047979317328855735369697610257195344028707606068764483488669739692508144040056658671365211300462695476962595412051964992898200075469270364834709448828809421087357885379835575367756290450582713256482243705554386749405161756387059379978728962833755256638825503185623220574967107021307875199132122629794488481188251410613736752159434528388974198027521048359546412863604452310337477656452810733356367966654661820274643812618535451680182136403215156596118364000660192856139262847162433045106918636981152133013809081469068422993254867603419939564804759446444347403311414970353237200056788235028322769946499322303732302729135806400022248935886452753874007089788737491353349599927414244267866062918719327080600902514946231614722354949839348326093826161442424905643138829492618931579280828007572683953518771375507621556498575037293596404449828672766386606738294698841422474951282017580465185371640840098280236316654393596859174368037512232981995932028592390460440269194188592179553741005931157980428629672059329511137354596175866103116821667503178256147332687580950438701705650799133971590588447325390175832283451207663650037733745027893582269545160146521934326264330798494474862067271363791118532313301115314199539694263608509415383505938778027131113439879954904606801306604242181416118233669297756168646959633105962468519166728570848332712298539446133594238946409660754171588258735185157785810548137007109252912703043922825335242351894111638727127531385408141744395221308938818442219142863729221357652718584925819517834019841349689676177164548631543668677964092705990983435744441250879654061238055310065652360342465481502896521977122358001691612199273429760260664046053546963066202552788744679790741749235143948275711180473674841601016357023530238185364709571822903038332409422871839693707276857819346247903378914900384905879531823139626611072937837916836240676281246435009566022283438848992234496598267372380817712865638441886045645033942281163000759745604845028097323123962311701330996917012459897839678683388406341651311598210701516747068215710545200771608662774603492129893325876292911451128943879789236072485017619329922341106129661694753471329628273664452642445710690475989234771902408795113826925248092658448956752104287588025193273821415984831667057527823262213876171408483189824562319595768463441424862137183254985825542619133977525286879153384952335707605875258675934444335894776427151978388568237376877223273753639972375536400727402653671262056286413700581641241568284421682956419291096710798513875146554024508504566141650257024961652211269442213846105363499848553800701645970553905626925406911470534459665965116007258265438420958895200271635780507200433880450987497147302992045673658748216284230205409557159086247094416754343989770804359170294606500097396174764090197583765457607574209687005944784285980902817758223257623140657744569247006606519523598675616525076710690904997819479228871231308958275789350556984276688273310173111731038180217413991102788512548102672149734606469542123329636039123580439278852701253939854770658928797975575999412868218653899524503921338139361245465915048454344982542942435174929157692913822199259034093854345653586298856570323885936738661841624808568504206482516229613077385700483762981270800942162321106629468187579633882964726684079853291400018958681110886306415239701006936867079320993028835728331089561572241470238869685560726972869352831862223730198418283032925741221851823284044394693576800614022263829325176364386812660851897423351359047919081469309824077266488579028323659380756456477313488969453350459675166031641627132266454936019828094540575803965142891373292637746596810667126124803286639096994363943248135928091896973337207416788417508469252741355462967410218139458395050456417307083285207092162346892057795140208148276568024708909590288672537794272054945512743162013957781327636174625162354901625883207234627417271485960058688278778406707768637405707072053216592846781732548579789749151227469308863470592131003986186106624972854320314508539086206232540087832746361291497132415173774169678710199787510156426964712690021755454862108165012554041668541823210306955410801011970675169771494899568947222576736248852358053737935176612590345767787049574748989158795387403495117956135743812248236388744764257983790622531315043754895000003689422137742322096669663817176522893144796632992174034326583255729252521243209470295217627115667080316381038332490955882821531643986344415634595196528878930980133146369009808158107332323214056306127318705782314152435562568484121339486917240795038622036250302079361363827936033477129213780695926801454902305463790259813605707481088824588255088150183271619836295990970367630777406135880676031108896833294237662948912504794889189644689375380253465816832896635067973506282240890076693697440302896419334055777725631525237043460901076899502144504922345393783527137137426081213694724435635482104978380447377136446606833941394386032452568125972350971395245780483468876194575767022941832045161957818463197224967795724895978837829594362117749177190147688220920430800691801296710804986073409973246731751860168806280971651813363523643418362394636680264279431530830190555412801378032926487434065503179215580027618262012723350591817169845320078081364949323201047711498125246065766803703927414426412417573842235769574927244935578757120073024173554362139161497831768157010494112036295740706257912293138668266087466422953919962275292630952888879052432651005927728035853718463677012851075511762736829199405254596589521600589566548704102254686427983861777938473316459819605505217067787699017152019266436047194578875260753797453526043057209325900545101107166379637317665149056023625698229954044366292452118048164174415030130423162523693980141158916807701304244266754531522701950900626884054329259958539512012210231409581004422058354860934834551848915577105565187718824593561535593720675256224075055290403549076818880355154003656916379955369977954926537131109174165867034144973015451536277782526144793908576154976483880574308387343527775266809022864196527540782235592154512085323650287339472774095553860952880315567376967110748248408714326246460802438981687865562939921160057370057971147409449612431442571870357625124818218305944928592261170379339030467779299436370160847817755533430345852658853478335866358803244257078198513691286445630345995821702368794688171778951900400168099476784329790513420123768403961642552590863399545093477782057347504611450484459254954566664636431308511899856024184272175965218378366245962082810762676691479201269476391223716145429943712849873405102007691881707212708144448366471051143355587548120438059201230167665373570520714606156942080091935036644979519669878686270775193577484500717292934583723765502327901078636237647944883639503246281513546225943321802009116482687810496901927764008732080835119186290958276888052792780186281389825003586327341018387084920222677727971950680168251801897283164665996643488229165847285212252965952623051443448294578540273192403352066132305239244553600864785622553166697426216137237663592345091785650996152386768017926694087598484100979899197143302483666197853815997488086470240801821310707096812704086690622167668654740402100631545073933435871560855542903550388903048272968050385176401248892768522738978333016334694211430727552107891619674919738024595149572772255549554724310458161404062583626122562798329202108746430001456789517135196320576185866439840574847155064728236618194057938460880702913467148778609305322378537307853020382333076763652618002655922546899355011593718200705983771286013477317101791423512168176330573654935895968444620355982523434737279016906948869948623618662634064246765502266853092711568532677526393909253889527405179295108790787374513637818199503870422913791060788527668455474989663419919341045761258054137352993797318459453598826200790089812379439582726726156437351223399212910834811853816215212930569958320776605613784283708716817156834814186237614690189084201371462677288241224529576338321822598515599791821670527346028405295608751773610106334993608447535671653682089676285807164041785510645918473199676362132242931539158038144028244614997380888236450759321622150480613441583169933907260594957138238882350032635359611630977360803172706923398798408782589879731509454493975548139580194571922571229324901321939005321987898767890791130280529396605191378624810010236463564133271984321428642538065916274905576041709110481212069566607443282516108619321239155513511100498461568509241945689666671562592506562081323519962205801617396355400181010664833457915504902661251577183731103680228817201338576092916095826235180663466078860502080826129597324009113133582474844996676666134768391117086007365058109165476054831749451052415099362056770736846674173326254111490581219934525014730947397934740786828280357911978813897126107867867324667439254404670643213293578490647002030493458099744258026653477217298435076681015215943098749690781634596613844100573070849387942327053812666951212224855037052100957702598135818000113764720251323131933107897711329247725386554315494372110749528678168957817683726636029726217578293279967975714957622760065214028831565427280814353583836129947604711651893072030494644167474260877183394940255457067885601757422299933572303764280600203617753786882905179201015363130610727702323879067146658304460399659194920503281139377153571896273777973806801948926293653586170857157508566633671301150921870637900543627184911339493895307699464107992742840849051707210099230630406803952958687137593030160010046010778091651687473968950092047124290791426341194206118473014662664906859349741941729932823069916465810211838561688649965778365176725912728743045065194080627464022732413183946300291392435454552005119972573639596732572655479735900269384054609942185947460535838064197102614450350858862933457193076333656126939600529211205188525944192150967346267750796227977539123836585818838200344554318999439686336179591590109364199618257167703661542006992900843065000501024309147246632728823402613482263772648152773338870673556678097044312298385087621543585028831108727992724316130026230987251124988115729101415551138333094073418837868933626633918914530339625539518417153279240918762746702744086482017886426579057487857861590838422406937981865889404747208073766105134785373910287769091869088171069075556405260702631036020304853484064367064033874123137649449270863730934227958416758896691502615741311487561760413426112402906599554881613358891179992182887170172899253914779677940956488052459948350422861962018126596317623624359547687017922129223137495095502326764324676918062360044001807324385056442555263945815596158707047898553505968042284470435438502211413397783041282213449441387412351032429551837908958097005038088418461302347895971393634215213986208503888131388137455558757388015943898847351384477206326915688565107235373050441582342340556437176142055069178002853570947664604917423879487882456000805422896823656811785959410650942612008939337676876189185669179265238725768135762697123460762161516621187222336500255482365218323995823269686348003721396863483431470522092463916372402150732827111129550902544324781514435826908505159434791634646177126711151359114026757329076107199036067747520488097290431873996530337668726320226977976067630232239954709361383024349760691982737294506801044727096827489958561508312462528346946124608410434332296063319477734609206569833054731705101853557956542764356932158261589003462567855349468951865919194221281836402487977631614847339459982998847599196355449791575567501291937618033574123616098608784808582344791547994353184265013328674654582564394646790729227733398576032899527681800510454159041539540569883412379747790353072846860684353644563813597205151658139912192068078300743497492837329097629812146156352605920974238068964537118662316459154163765027803445914894926488372209182578731326089697508238404569508017603028510401971641709136388358625131871079227406704995888778987481072380609199230387737880709843580594830355529034523688979429438165984637526888496748582533748932000371048114882830510703418730707890861125672207908909555032437570284756679314202560426056034711278274129851144187544954934163588027309510520695978186823695889228276997963386436984610057776440799258472343225875972611046857474186190915332220211944134928059757035466832929160756172432473973930583852050336431125629882292972918143726430475944224380528227738773511315777635294825163712308192087503507133296418619296519990723360558597287768765521650507351656395558831331868302452300324435955272425411334955527701413273866308381239655272557869915953865390189173240164451141458169070258294512772082980804136045182783568227012964277859228795658129200362116006534607831284807263857434861590536040700720060284090740072667073711059296284024603568643408477845430779650642931797296869333449268586005476464447753896292189841933234892069104754886991826725875714119838434740260145659463169881534937600953369002300463683279508101131373447421328453549480868444648847476319226626622169536567818119857244421904455906627406449914231449165923694726317965770655287772483588691281373852235292074203975894921283130637694970897242824696604441605952225513580454790825053648261641075084444047135560847026063075073596318358756817283212879871828335583152274463254999581714933229824322930760151117864211486001334184680175238701340308089769103309047977111304380668790559940847474382401697254273569131883603064769163050837172516155831388832298465047864934663712396622560182979887892317259861330247194559516898785363046845381574613032328910226962164752514548713714149906426803407663250457107520852082042476584732834298539655809245121102006743806276050605809837276472261508655519252395770539470382590091196760351579913426825115020757065178004841292412647235673440042076675278548544186940132666908044513054092007250416932524744513304418709865131408482616741183549522770363312438904388623420402832393447683654529520268593755730934538683089551497982385109283413638620295104908533351786274649359184550224993204572241167892633078258728926788655340454473874085812590242316382203772537167265405792120279043301155362093962056048968253669006790852654464032331449512177423994421407426433971964723670466657440456376808586605494651662601365716120527033667362050502112118742614660239612984285221265334598476271234602417664335718981497566207385458339908756322060153709211957360137081347197230300289450354336094918893396412030369245712693469884661904011900700972715437272258017451192729753548093865192211744949176738867584942712283082448885026838155156831712531444924684443949209404500084605882651634228240208949297970185766546155458452833375734950541332097059269823733992600121508984941715300787660909827638644819977234924790110228700067530346524244155608399449385096602167530215443894066253719044484948208351013155783657724296906515418437162539187990707982869781218169148128615284756815805894937524992939215055154584143329176965423757405449130572864994582003999707957722814018220000705957184894371530231037128010321475302444773111759907058612338246007232760817229941708372001114531180515998741198010053581546298307375780315337223627823753901708831724398638890270508690679829718536076612403460197165613895781248844425679728950677213292724193500866905425376062640954993043438620932856869812311644479087950803518341796971026564708539262833473019103717204171922925347042526586794517691073328617664337018602801747296896819995821503023626366438574110985003264893591409072313855632666211936378357527130835749425027616676116691639700135077704901035216096452428403497566150223016239819789662616746827332458870918003434687567145684338154088377113310889474974139179476098200810761558056321045498199199306886667165904857084459967479409853058140346033231477229683955184962277625709219717391130234404307769216452360237935068671859884412249970174363374898151642775290376034782312585355422502512661464456923425950353327040732328681776340502996712358710836509320146199327186985006379048515549775418117636002891365884974960419640324814193038304310541964576978752747057295310054131229399944553169565306211096078077995311770339659832033066677345558880955681795459101415975798019204164243620624947067804288239584622177671237799962210184662680128196495969884382875044124773634527597876970546484735968106132074987587850003133090546650233059524388026116845268731932583110519801394949805114597529457678243469301810320717815305876702076337033017673758728485294756607338354764774359404875606431075085946422659606512167147578611360196911025630620549025865322417552496155905903475499810893027141285577561152492843005300019449289902393935701489767440241469559870615522503928444769498701924161110867177823194257164977311593995483756786108623411029580960391519011918912171877310579805013757152067037966081719654134668638551771592964800518262577660200893816325809192819717076701016779439303238999585879673830407698059358028293446506782787692680259951750104615503288398758471192398517532700145240491100245455521819222435759062240050942752888975106235689384153779702148719556051078445195834918977594756084900579712879258568371412389923276069250790535997101890886691918608898722532658860777237196064156043046729869182624174674341706660096470782753068453412974927255316442226311286204982121107741425333673940794155609380170640883267886236113231432706230019699583352555662865923155929832059153118542692218548936602653959008496863750289410595591946243952075159640577754169703645513220928605709938080687355732402488262709987524677195276736400431310872826107024907108749888583991142270938233277045611266117905939808072978105355139093821997801567366480037768153655969256581253516426561592633856917336233673476972159102532234802123222083724287797991318071140105029439894082690217191785652647604165462326224495819391844481632546304812512642742156160769245786310866620724137648948301319500974081594091355484347075107000934613723190416564543121502874411004642592768733888392713943425455566273458176553151694941445771596875284694783711178732927756600594754676750296605858693574530162542563368214438265690033985179427215321161650154518649203434284070788187018983716639442063705597310972802550299183654031231243844150218521008413582373694247949557677833369140809902391161699490370463108508349933060771813639432069659111365498937739919935330131599874605522280221648708586991636329023850239926252680005193363792063911755880290613033231695804665443884648408330502668827846629977674644411262785464816637300669094667552335957627910518483692440144268292222655196623581866969880108178362971423536211720697436574602391875041536931393966384975938277475871600193743543318582148381047480935136847133803953287744539300104762463314000446747916668409268040376859452858420435029098902177650678314752296901279654959528632519058161542879915159714016527733337983306307636100157443879725530017001831001313942157990469573299810718514595805998878145432734810425788406270695567722222885224369202228161494225500278649259557541995809831373195495030848847105887647636312131540758109536199931489178860761364669118581426104606662369696102575831823058664740386579506584988657577199639994263438474214821350689714208296316560571444272669626013457007533436766518844802527402792149503003768961301745638658564305110524612923247134252335762732657484416269541057621387164986066830300038936228119921667974010692893738415113020602121256301241622102028618137657755664599486893135854620913765660829170722599872737872182182316739710415650847316754654255766244059216093197151662874559509774753580245862686194667349909151599485763729522052108609790757299078421532224584972209162279806562409644463935631642481577483407458447615469576945400302650755474817914795512346143369149143881486541873519795930443949974419090952791852815600274756082755018728597522707890971363648218244439563710170698056869440888467862100227379114474261178613764869451840493251065357974396546386269615191832710745788191733180360414438779137930652388685532648035616644588100491458372066770962368494890208604447223103568961152833377211412152976441570197410366453736679513004331579131279299889763235797326337085620757851495996480934218533627127758236173878954622929060924833317940764321941056413086392281940742336673720231649675214594251712008707663369952238504320415221791596146432669301259286855168548899874326389722150462622753999484748814009683538340580253095202976434018764533450998103347599076916511167245129904405700792806534344478712798325384418568137514735595877670124257946137234472960685623892359156820329554325890146609289781484398087993643428126977893751893453575078968070982382687010277516631835270501386856291782185525219203652466237323371969142058978037680673783874357267153409216743908435404942443510930620744551737612414584606668710990983476177373867045763519608197570841241957223231031512105543176308979110538340696933599752096290916545900481054253710419301306088902401815745081027398629571475847485803770797936005665252446491675409106785723089245878019506831106430822210248781858477238308518487949938656575917834636180829601422605957786140198475758788852936405086623480905973694716749365872681361556716984981296840262718286129984999797220047702177653430669475412322809427266363624300068775468321184124989239511851924265993389777574204290262785485786333572217347505594016713999008211715700195698861870419327793319793060265927162181929908503097382170183732739462424268725128514146358438538902348706338040146089967472716674862151853897106238912963402200307704695818529306071631781027112704058780987433376355219824249758009365757224203472747797154665330613997491157077214370058151733058682245041771750586440670326852669509300835080973485371173743545054460001738028467862051443899831694126462662201242283884096771940385558416657970327274753366587235847606550599460530792630594393841947901569501349391871380509459939987614896395777336394828658204278423522533048616951183334715166722138714474913601805451929260375449208599339451379058023075973137861894886211840732860800764879104137163494591226130162839108547259152694643211973969069131360696259059516018075463501215176728102490971670860548832990901301251895277567894653427596079247681319839640800815830806651334517101027725757110541630124133797412230462900885237461601936107087300481078320085794223603418226113461170090172282818185614506066969308088121125224745530738633830111080661496870888143526811011971406873592964778299612690306272438213749204513312632857464226503645328388731398581194580476229028802462671325915304497809057800156610514851704793132090237445347297913704343780871538888092193134407379279687765109346278881294696479789761743370824929149530805510574651826044472487059114231650254586258167221520176130525395046630189285952548609272257679280779874177761846466327713172642728801237711901553580015964336708712658732086394785323663419870612734175340858797464636967985127100575172392263018301391864403456340420789824969571793494201304325511105597328591664696241657488100973377862086812648174846946335552386110912201217624509350587342718048697099122957118073296923070068488584489574678390008397917882346439415958686677628523979681063403221832674676562711540034794860837074946388641879206384660491038750488734441486964945243200550336635316965990642165599858991767903265298847338939804599639722082705136743260743122628069764397712687963503840014702632312188418576116668151123277331100185716703490660980102063986170320596973557971869262579929930773469859209229614643397836605378046275474372091806862077844636219647033805876417199449758353716426236660638428922385010190593127719101492137278684949946529939346816354180492205806107356291751091913240643837416620267887877850428081522953371219554370754239187091153489766199006047930371974514945592567682892539506510776767706900913648355137627355826006244701241453997729501218394949571558810658338914650632938156400597575113379719780227935812575981629019245791051365984083718014693062191158539400357668793360415396392170248034325522192388969059220467564191076345653459798204798687581981685387594534966364487513719532763991052804554044178482035109568498274230317554101395769744004369157769329462890865996181482627511057349823247880961628048891677777416798035795710882392021083394937045060570409321599254005462064418334604726579679116086989530564528424867261968738625937824248982123291895949995917441040820468881409271792122060691128522634115524155710130008163801132613793177031159576718246420836079496074405036173547085861318543585001381972075663394318710275921276525480609364282411309098587793479883617599668252981169709852141601433799965654901397515807482718158051071409055497299012051994311734616122175775890532555758356688946225957759177598096276195559287837502079147294383829576387637292848809965535582114621547469871898456947895571570248339562561470868485464090462872813166477506587786914914408742064044405902611896715807338807054224713801234234947365323544187556351260855443575792786204761622451252027988531715207586777503367232771386025467019377060710035876849338571578856848471922302644242392167276696803859428052272062940024991881275794434060842929234092566113121811840979666848314665726923560218333666683458068720531396524857473265474669855422983216393841032785952247119786468740149081552847334750732386367225061041546823183133261246532584942002068686306953244940477414882762631948744670546504923592794862801155481048041922198284143970720050231486049734700981440343464138512551617769545986919887805131290552463302815209931001341225799353569985421715849124447897274290662507483235637673375978735178733404693252050381098396640814862425746640217816570088731262039731791780682206363292815261271989410032157175975533562217937161233879153820218369574381637256209494027630590951285183338869098643945572130276196092656341289678708790042794131356816450755300792249721308008633107425404767112385444583868087074703928077703808027661920682096451256129778289826971359990316678580523901923828840090611817176912052875838341734543776791642885119653923019589589859761335174648835916463409345551541446884088518079561317528802042360964712779574992832752965784893375260206802420223066984146209098388212399101794592278104836349683919415821186100856701505749367582575001452621610799323460827559211041465413203352514378926362767511975167375109898061548389000454738514400790033944434818646294292151071691923586066692169507612683611095430218753626662951635278586752614463816872521034058648803631742614184350372153578347369114330965354995614984091887624345989773169973999996207163931816456290910746252123937459491554575160962226990754705521938302321604043806274395729045215868138878634167523816165660309028720795942192744968180233908069994683413850799013216216287954742250709706844063150107886469057214885369130357251744991915151055199220764254584004448287510481970689683368511984041483555729527961558617654858178129227660857850524293287844495196763233007807555336020262326768742910484862484929507719083884695786989828002405116917731394826873992084987598090526630183764249598955813754683424989058374766618944506102949493944498230618426669962711461303578056797443117544866270996242275010409739569004360692555693947536231541650782251975596565785941909234207948163188581450844947215603748961874531998573635873363749875899184191914889019063718069990654629958385005121607958854873397809532583849521035171805395352483762940280091964221436422646796608762998157505559724557659295490338810040781004273316622533199367179256931660193271675402360878482195830046173914206424893490822758029398393830931474885045455559965510145927110278601357425484612671422110970502184151699051516295399154134357183014842421735529745904754720170608395456251522540154311946972766513931871149757724647668022283976843650572645193020161119385757650774956025014719817284613761434025071120854554021134339114255039855765928766474880050932137567775686479008984609050602832504097512142081418242327371615973565568872440692256146950436008123485187684787025082236506525431307283248346663485168950711131124095712833957437998438897292140131496529102426973946753390271210655864299626248903679456636004860790817943170238873361318495360878676815290766357994487998549944081872949362613346602890798723428589968372622319219765519174952895011499926763471752312044079181884865042506824996090970612384594015361018292595831396034475367310541410727562725793044963476182767436225162818476413717252558630069996056126669093661998443061280240131942105424567121472417474098735391139476594747348858846879172420989168696141462284005971685108800262869150229587417137521555148455532451137440593306944856275091884087921529262172690825433606295395941624042513891883369482968863086928797952510866622304492159274333421240442421426038313900958942843142178046450500088943730273388617653733977463479490629406878956082984992140759535461214249061141804695208717313005046282692388763655666099900966957356510861864493401610311669342747776383946423182410057687548314735395005712498647577579616134833872228427999558556214863842233392581056794759092277870668938604380513645783050817855874714548708409197008115870215292769613394241949552582854221261877515766645486404669081465914975442907137591926188325004209224996683138485053209384344577691145890354361773132649679181679868756911900618872626111822518174469030806773763765164631117685147619040389443044071182369323877852971008577979522441948150003873371752347664796236604930159918065418195407497300311404779628099316404402115340846025574649096284501527032510478997767038351116269791353366378446496638610500237268731509669910095915156484892849953389313776405757623683527122090680593475842392554147723992107311163718364380881520315446145641766377852343227810823732448602208142519620495036809558135040968813711418558710061355384867714066794677119513538236791077819941737447071620067392510859447650319817413760067408880061624668935205789522724240196991300462575250484784456534967844902252750872460063344948207548186155182228630462184902785556646491285810040677281354789262160571254242277607716884038791018101898304893513326498149719267016399578618055910042630585609382148631850989978412799195672209822400412128880267969136906618912788336235345505220247694511517288153316296452706759374819933490031396784890141179420684452237126276856772210569987092230439548346182406904109519805841230882408456261909353609046466927101573342765851471356180664959042551894150737533416939620342920757615665655070199109623178121488048149452647808899924612811997104114167826779046995259030687163977396033432790611709998523773878608213660685491141600198434195718741881369267835835243792396099379071925596224229670558490092984006105031287165992919357023120725200796878534075864661806422386655972410892800295017988279949202984404889451766489080218025856529778815656939970207253961915163476978480165224745845866324879262826465814721663324950245008585764473433630274065786991651036910251937675004548672501394396894099276582869751966847478653296799500812837379154823367369744836084080129090749830656755345424913049133030365783852318532434092810104444944863748634515921564315020586321673808232615747271448248418631365936295664353543530684511071846789848392737076266464875350368462241866970382629055951207043710475812518852212018933743350121065242832850865389940811278319286677538477168008036053756778794984715143170416260335078369170216784202923365648892483069737721669958086773856997415310371612093246393592964529435113619577120925676570411091614972609637325528384099060067381293406679902964000191994806951633953737849432630495175840751097489827213926052478621574891077480492360544791597012368117612920948731325898147606004191228301746892311896826077192382553849952717263806565225001494226970868173013312669165419704881220502866841356972939360892914564661174937643508326033730063231063062704333787814080953400345377766106716775130379106552197922360208183073927719260836089970043655997156233785476171754518344526578856353456965808588270275217503236891405022492114885935286586830266190571865744211449008273993144447621492570186959486430577316334456999758966399411465409295752444795060684056707983549467209228302859009343960806362944348308188595378906605127769811707631392946855527046114108824870262554174409428026340680069452089397039776146949674268233531980206938843861249306938419170886721540693033643638089722685433103988676655434326839488282793471127348902157196246744477181325072164008854473904911994538954251007096578279094052588306474874890941596910199219988479118161069558304305587723208482692637920905779273081344962293115212239099110787174313786794887068537530730940581689656181727365168509307141965197113544375057772571699938797790707846324388970753607194314257411617030792804003626192565203791703847854812045504369987149186837676670761557856390586918277141451973868425000450396630794968479851587068704480813856338460227111051492108471878501937361963606516556785942278229338956768077300841082189784872888382523390890387643200410810125508005393120001173556458548936434746141088032840554935339220040778730760852840316379959758601209330290324481264026734454464377870831538045171897768694137691627554549264744298270063690663332060624809524409576683415407582414828223053591006573184112323087943597816024497209996920796848055170644131233944513800217726841883053577576254675701676292977505058000288819369084188919514290915851543104772290734810275691931267062861624445955990151403562422843547199614607360310291314339895135214588055680910419525038420202796551141771229518570730762585686686231356802732301915436697513830045451799842431490494131492452069798329822793515003810806158292279209946364619782396617457942794887858607212108649875889309606538613640043638840445032958846753423709526912499296099303267942772405861472781594153660309844679694858663931031324836818686886200316652243551073642818718337316771799248352244469755126364810481949022773288793129609099929984306814929253005185004048863201411096594074065818128509097834329943832962772011596998772085516074235323161875718485207760975614694174147460742126937599237114512876716466845987100463219536219303930887557728927465554203030116080813707915856953479538036660022182286844368347637100067747980990062637394120349783065504169526973414358529568410559675555800894208021322494010034882775595064243573840417672264686204568632549145125968502570991861031394299466813227916019502129003281904715849909324628792196448675274694886700163687611600679066302598869453824256562860420885607654461464169770953520003686586518405915070429859285057476972311932278795689035143792276857124676782189687720290523527093735683461786648496303295421619954737856467934141322285588025312135215426792950041609432424865633695437359465113761135697656465844390631724423715936787619108459733977777448536167911831676635390481968385230944355034921644094386188825949341539815751352886404000148807586723963046633797504919840925970312670398244249942192886525625682432044379115244083681582517945546934965052657784267580018295099243886726397854232404395657489383334159620833848985601067479234040676065309616317217147683185316273026382613616304604773817743755709619430073242858217419361052410356240298855695825836953806022553212263791219724347420461122332588371576348639801874160557845670856892351670042828360350795607848541118926933829489954213939635972909574701444823545287477386735233321147323250729868457873417741615922451860223439536875862396564805744062185405319865294852039825317832990354025286790023827751995223456820763134663637849063503859040722376794805797319661741428443800899218743147493844451935080392440238565559570708069660804224936118092594082448507733605400009009085314801598962432528437185418480612594586516793367627469555072009842169979529479755874702983964197999244925411088106363689071344130480514379303341931535678670938378246941319119879989601140209974315715106737930818785757683281151658005104967707053211923268757295651701056236528626262992615476326737031700576148111752059146763687488974109797363086947271541692980878533471958559427531125155168976695474689383221702617958424709587998501394837183724995636164790416120965397389140615709907896226973386388278704609654809864431927207059641285868883816073875958563744810543404214772570882725370407566361494771584486732792681551705639196018995410800228972571897810896624271126124270327685368088356692106254787574806115710365363514794436918630737171846491319577156754807594123891017692562248579592809647599927649713314187424645586456503025752933906964332939526286887108919809021270619379981666977824895531045768719821789495003116303171859339750732222431131313321286194499968484887069674360960165517996692229011198722351571834287422243974726710641506379462835463439585701611557493729703105607748420417551971947284112757620791606966144797430616275913605175159605639130064335144027543494722850232198705852817631911826340004733103796455660200658240166238991227886500608041415587918616875848440556509630140955018005751776209781230180568570017978347313316346063943942212057245762750433964342291821349226953178171466886566913299695302227301250905536465550449133188835861635282143634918032436672354750346097344052449689425239890480035453254453766291941051505992705593103860379394044466530416357861403479799322903052367713149237030282077779199037044663492187537056675336943642546022451742222309381841377442707483136190579931605389963952411228319489255428934530663384593014990134000971829819886040871777022061853891070582674549423880894607312830851057186043372710639996719233673257657974407492014854414102238898823086887886259312840908059217290339026561441303751037529145914827522047435912788215382847956322241691864315846550637515464214698419282389355186531504174968642930966656831891749964058194455420449474527483457608610198353585313321248990212131377452597151927714369093970949900429381940408600812408627268075630631360914419134614868979335844026064310752598476792977548596248507077246851750234735036021023646022737982354587827328928366030766949511316981018501533542563668354175093762208616276890384072109311400210509990132049812271676496821243874137269552743073341248771098616422784118982410806895824280556552548238604618003996668157885459635566683758129128388446897495906607820382939189121090998689206540204134432202382364049396726044416926050324227201390934449065416839337102525669717977361737360776993970374828638215657970062973249422872615749005922856706067776045420879276625663283304425296249857568903219798873086354201940284431390628413305040281413351735721323080358640543012310357238617900386244607004797637955294123646448089229784989958052063618992917207055607851862311432742160207469272875879396868872262748517403468839809091012915598614808494092837631521081633344230317515247026653378366095821382417077975851063163332209956283603265023767660164818359620565546514473035268307034748288856626561026947577527475663578474063368394266619205673566568455911390297850390110059567850504699090514819493195641692329625031902669915070806721079692194183557268415839459956059481994845990965193979581659461978695138724390440930745971280359996439439490722078565150547654327153149669825475484263995123760718388805251149242179373208391969476073812588409049050671446629008237346885785561884268548171474759010859704678938306358451193810015963177018041905403150630578747897434968187920909683229852838035484765562886223882925390538572267835218681974750158135433182401741229387000060814020629839863662746306379019259447533710291430880478637260218493513736956302447519260090847477981259579559084411945253233361454342575788978843275618681205286160973711149882724610771756831090518724685690979260865018113799968012941886719643244432537721264237779459566250077257647843257591516163346395646764866391026916091526655543425769094981075763589541109892260291581310082616650535238737969399512480588960653356391309231549697791542581516888031052279671460475630617498478831180939567113594242748157564106500009386921401910039703165761869884590259986303071198810440862130254958298294110128549665089666640269575442148056088769242263687428218087610471959088463216842906586201652480405538340953217660019730359847259829704748940062823563811025879287052957636836999248845408570115427748209110398113312836252411600722509799486594757072655736317057674374305191876230630481757970401979913157154621883799493766647725710011060310165814830115392895820089828745980277688901522815746282671178306784084383817724519898994120592855187978530868518412780118259807572546417459224041095277995396412715412722196172078921066895276855696604707352963789548310069453417073540374136668402071643973919072397020220199467919729977928401250801497544907380358592543748949307810834520839356953476226973111752156192916955337286740437616308071910691238601810479366264938938319721136348665349341684533840609580878085255466307196305157733664840576534923075906743513128304436338664487794493717367451762214841159073778805129882211037278375565058824656386816574947612849255832728290903520659195182999414835052800757746200394819092492829516693726511837963411842966604713873913688431536479372706116874958473928812942329705652931965652447157534597369959907345119189177183267553059885371513798177249282265973543295959977542717597258727588892283184222260359329668893626835824544754996963467708039790669176750535996764173478912365922287073483821094266261010396628312124801855190585311567446701086648725272213069632865944331934729686631358952738385968363096555174258773265795445797827330304553333845213412130267042821224318945181033091653893254865406311854413109338701055007197383585206328338806995155298763194690837321341006363079458028389439246369766068281626458254300209990690002734484541697403507771743128614963886758387618580469340501546589283546894551543659143633139002164667893140846317400795681349108968509415460691305602888329604553838712512642751662074140226118275538899143057944243744375720360117382829263816888365994668943470250021314903090795525758333463566022859835320557309291507416822221145882260421705077292922080161331099244013189588648153828843286093212241332007363773677212166855237904785577352415223126361845072626522572657377773769987635377521504183649265053304854650126962200174778094292936347328471173059812043207852009553074608000515433836850433634200486352489853200504147269378846109180124606912388690948860060421924096790308593074989552757772910336911466722044368243018941278166659227192488672984460172678840383092699587445505899128555715731126146793624615499351570297453746859054113141712737695773926358427940889582230896535005513568212271111041756971946223382531516193871532457679322183616762306016577310540312386272334626536380470083800504622167489933522410115605374236350185011331961289799556323501843139475481230070368605123534443752217122345549702804334025097210365561900910004006143637356820629317930442571671842604790783928909467979516571878445354689633091760167440469848417118111826124751795711476693424704610838357444995983931991775196982702943028607788850606638129581570313320250779011180257145073365844960165103922171727923933453686921123323625340264760059334751786123824036895983560654979610784949585426111597296524368365156852879546247609085072649148229846864154360841206622043059489380520097640562840997021222078958637901476875007917255323776819815746201863213391989936760036275610288804535531975278315269034638422212976488772841143857108140026972513831787227154677449815491840642820263029960061748993995042081380358552034568941591263185303014602144658161888428738877788166507555831981373871905106400547698356527790004865766465117239524178597665902702373588324531234642326351728359038984076348983233297516252188889654155663801586452259935743431748933249119907104363022267309335013519528854004537469269774480190773963862432169781091459703909822818989434362119217466139108854514146744627658174212499453002681593740492149728431675988340880063639397393593147221316198650305831055041731414301068473269545532592778947196634711103996746633560050993512609165967948453594172599979621440171319831440287067503530652365984039550189100951261870426084307700709678129003306926744604152982180626484008618583729379797090075676053619993786760798814561118215223425215955083735033157719048817875788125056201193599178745625666135412122894429824119447398829791470363875898883641396270372195901279700616363562050949476260285183027375532713927358342300137359486806945385289429033279032858536361546657769189693023511751446965897834955039490126321359290348205606443272436941705511979762934435333661098912052851807068488486583146738884194357996200709546573032136798304583552951822889020080400566329929183460740154944711805943326738645404014907863575723762185151597225909208798329654154365080187513224238553358062681967493827906233017985200262583454703379555580738259935899947655908093272050258884494823528956407058635647694691334853797183469112179227912782468177565825976710073041805750920988459546645643373659053763446438241051127601576660439768538848645628910949603859527484913069064885996514527747058541104848127454677947404379835152173738567937934387994271087827270471311746470201443270500585362887883664654231610266403371929719097102803891128346137570399091438769305295190995867249714591296368503333603966902300356748546086644910259801893421686284072897638534183987330688799627547813804655373524754936256687867686387678641048208134896754514000064363599172314229355880920210386599301015402651771437719396958336871105371136954030220652685515006744173585717403859367321160108283707581608884141018318175653656485559151470769129902209238457656537614234279837825903882549999123308501389440196194813486398996843491870014820098482352459002007741911981601422321732923121118544619448070190278499516659759862658631144335516054260234666690643556597581551537221033562213348325016662776104631974753838429540942396752186266910188235272349832626417062996298966731696124165542559461290907693331891414676162236968765876876307738831362999274116554147173402727741631006365676502986900146580178398780630231749131587705829578060871214342465825411732229036235329915902123396685401238742152762225925644468942244564950212304813126498701363643886114690476622839810035387928497305825227094872131250249366769408713765715954768794226038676572765029734490541062367166554053586652807597343321661226847215188956917371254679478549630913801386399581963449506086802735449556679176305016553690128033773442204256852881506344748643905944969524610924419590604319831770553167012168108158565884306194442652283174791886777499574492581861576188523606406739649665780749100264416031863222331561782196231785644211859469357137141740725818231607228009322956091805561250194744856001754044612400955202157257481859474949193285679417302151406286597264558964576597659119079598137889679638546339781537474113428969921035169698995989556724812200791103492034723377180432722352152137849805810494304501759099961884945779849972859230724597135379095653528250385068140421972948170081284538313983734529691870778629535128808008059520142611428018204167960237078077026149658710245180155475895099296519065306190743709711263161851483480792552946773702413092367695226850992038429335547235295338509448079446141054000586296170834284254619835642798087995267985218028283602345006066528313506447405547768148808548570222068627886471003826041388210983569252497408117465113709510501647883378418335391244313067040276659416840167978260849516485599045531710919125785441347971683571883544343401254926693884245860089637131121822261005647040911166363084069258578518108137186512010288701863633527145584441831875652005510678577845205671325097488454697443577958334340106471604286815947384554445674538247337538237778115378476272583686539200857949416357474234619631708702414504883262676128802189976399596775744807412648671954716178719180251565709533378191156542696081823449259470399252038279461120141450519107555288762625919265876304653365444697977367349682261971469611936347742126296753284773293615924556800467036727887886963354196967615173585687771473355110001866966405597833285892024744245293938431254631033036001443589271741976286174711512027833682825917649775119194681228764820151233598205696968300151356989107579608998997894843350559401907324873747357637738759161072810744142929479912830387725074309980942659303597046581021661779556587382098695124026408060244738138678115351976629366491227512471408322002494251622656533403047599617893213855228829086529553785477227267197130239223931958903660922704398279074411393444217439078419143283836503848486340550523410359386005380544600403833699146752822617603306596084380130649465906561220730831400506573259757910775234110370663517571547718252563912950374280313948765795945551811275782084112794966662935570936402388357279307206948006734752927377262842375652349235272116869073089981616318110522468782371460338225550445706123330375498302246113323625652646125713106755588127722322063895367866880166814808185656890777432589105148002320576782039057478607784338965226719326787331568885191825164199104524085635186586109365705010058399195125589741519197393193042289658653563328775204125412363011055765238888245086390525319964706940417527253325140529234924607597404468784143704712885906250609640934371176537961859329858881613264133156745557723559449590381621360690669353847686234419718447784415034090651957853686890330664044056529846399369265933596716996201769491438506466190889733988408893444788896746625510640882754659878220569466242860040634081890600326849297119042355170743933636844449289372886150034778635480796588804418493396942743408760352644666753618417070545155711111431006692012574095057596437123731512420378103970085749326470971836459906444276776277591296967470943656364067817881469618151127056828949203733473139334326773926587384845107542967867609399453954377349145081117872510684869281668331907108180411624563808418413791862078486477679374568093013298825122578938087326433705933534319468522804554271791808893040254621376652222605423624055007001930265637095379647817983011867297104242706819464034335828950513030562949808115572193105247958280278957350532958549315585951650575338254115417077184254145673350743963218895627551539451794248093002167424689467417965414912024484492189413601999927377305078077815934508345527014949093669083626527289470752174018717284831856512025104930649565496908617419473264991192643489717915628532973223680571288466647333851898814161784603007714348320690975421063253907995082042127131060499603210449386194263213729327299525513084441917955114234308777321374222774308352773233862578201142226564774596062345811690351416705109507791483896569606951725705936604857651750890149178344497251822439843988420742668951471794373718482221944989525035714327200750264842212256671738921022457122700533488131237950369989691604684085527206212235858745425015428612315861499011327349888705715028374166195116602035771692154662483908354928441665150242026341682159128833861264725027323166636381111828641801879274975882507727387112890160798881896272930601552027209751870569424091891024800240083499457852233797791422925217456989228237800424037857607270148811937466918665553114620374943985560588302917953601000749760030673949372562360314456178986391752006501433788890894030003187151753902589343676019175959221033355497467170782055756776668397321791585879598308050523989845691246874081751215518826388807662904015343269736759622898835917122877788924269252078324937466991357371471240094938619168886488646307945041500771805124846061520012587639631528247724177860403295682787833797472943565943679143201514915364722310954104354759054179671284839651656005808196026722792587945621942395769757233041941724629350345897664189549990326375825777568798586794802735394117878671270060926744367846647734057930426034378095956363675714848056347048647248424752930787576122603659361123078087395216346136967611954353117548330830656952373173173094446867977353547958916933311344930743288489562860045782960045210933602371458209771665667526758465366792673649419934053067289666705913919954670725136203084276542586174316508519020333288709752311296732321746724823046112209752620011366944678150295855918464967750488768022227295348081378203590670159629139827941454616214566587069599707579378852917680156730478077848911970788871101616920724481945409925684418286849664665605479733778648626480393603116784286264936942746868090175124398951802192322298319550837487303528689970551908811928727132116063617031803012704706211796823547735513957807402412836627529404849281804414805006592230874918670905186469747002967467956230112632475080112357214017145310036149454523777799275890545395273029581046894561279486505290285235195225865775363098954188990535610370312568730567705681636925948798074720891650509221107838929928778592615051772351448927751358054505775279710283755215274051911088782113090232461881809254837887713350335253412090746978545059947676731659505824524594610804721984682575459733403111556181284589186821970648840761399572526924563406573783869038989921791728310574410053551966988578378894945494035549997986823709740754052685919034410252596038716550016712503961789273207765779177910651648603178745036411061218805297117951538773696009942839058516587967818460789660554676768222718842273770507658926700988528372655785936872492019221221732036650775478807363526830568988032316171894638044112446126147012478001554899288426580699127545606254796823924406315544629933820582928409873995473500676484551673134631822718127855282927854541489092841475205163387041837766960023931220017146997206102992516257967126974611414332495290678939299123355823712927737184151703773336344009254674828324867416609747895132242617411961179061621936356110833358978489165930508960548318751699721301452934454652566851636656722552877104269188758596732422684029989621944219201000033065238473642655557781947719558275248878746427701285532119658811731156145819963099345172469984209343002248597632632166090144414045679091503149916253349786163923484068553582483476252119421345836849722804001687894499819756628682081207663896746764185894744770512896163099754953833383387010462972521935098797960058384579140815721665579236699003008869329175812573302920764342329230798286078761993348221749197815933712328278504914288367291395171992971656094607108805306004911890886241842959655844745744755836028139253332160692315677184217116618858599024618066341765278193546779773020553034893746389627511141144768928106995333979210365036280430188295457833182427905008992644154997435572702735225493157693917340471285244849459360251007582271025823154589861100167415736893472486635664742118857030812381371370146553892045388964026661710647587524186470203923558931032891680642148016165837276085028654102094813638377732621538346234171839051667113208375422547685935354867784229645732478550131384741673100495312794846883350617358012035582290654614715778639869527488554885574156794127686151200633859048850703335347843094005046818322189712165367167108031036299875457988200650126646896690874796921635120942829276921185663867066184599662350786383702155951326347902493356297673320006929110989430186648829642687607883187257959426065082909381778599998956146713513022177993705778423906140260017157807413738576113638578812239573345414931642783453562971622540815211055082963723820683494829745187032542475253139873383085886950677646761126356879729554220960728805073743562528371652978153622104072478265980457421349305821492461407858300955596211547723262371142846211413861407787651391909555971400646095463657170506039258789254357433057489450103595840371136515019682180276609740275932603110768946693108680399698188934918252980498976069435939816705631852176465735188126640348776419721028529485506278821116652074301904965718167975232227736251790652906057170815097265214617280291566927893429094132072478640906106264736850550735384549405408105820156049981551908429420633030365154277921429442774780454829090049558373482030570493242801352452543123943865189921860866483846253640696330699710787133693790550203507606089194011601648363582325113509118774976997227169353862896146257547985983453943633252584906308070097088513038940071718302709851262206982135243931332860933830431343623643499119386930719217015747850003588003961373086396575242359242598705543858827064978316030350317023954915565440434554952186481759334672527999771300083015731114147856978278728249959645503632703425924104842000719642385754917006603655459836282824304526087174142409150006574562618661285622369015881023176803110475326858650145693597817978575425940802590680081998911286343088958077382919946639273806816471482811481002241722316940023452670975572602292288034712652016623266005147856140961093103798326203721719470816490851931376096562523846626884134613476950569222968283769378201206773783958254690646371026491971924095409824839211026089622474597381273432962890814788190269635684641907855456148833487516923716314263569653716609418403652256895437529083512811581507371539912238051993868837793546505592898426223554090596141765905109627306072316861817469343453542428969370299792355178186278555791254815981691011503081995182541418272617784386844107458150845894115037081007277495888647744499336009673940070338904509821714771196220701745144207838243736416251709436052941136296052712569555163152335286814555957249141942746682836764064743174549029411647797481260779887917894960587900595612847165611621921020527714374312624556622031123283509564540831978795839843552226385309302379056842058374631162839040456521094580052613820170819451106203092163325803215042351833217365554315182081295402277431512409007098717637906788006127995945570178261327370651042598067503915848987889096065362958844439554571800950215723214875118556969150563808476213395441053255279763386199764753473298723706096429960272028424686528189984761336416559322289526421292745539551266387596747732404917451709684127836355494998755527330403161121313607985013110709480914155522258633508319175488524983273453138024312566451525704165014280142603007556947721486353235449307888011044308606261173670207600756747328997773844841803206480450215027145954705316829928989991351372027700699752385768956171593481408587686635714789229622727177506552860171343836046032998673710655858317972335515174990889063239046480062883406970458761186832494640177581697217705762951198366059093237694989811653154027512759083554851618884857133576494543461788522447283022557671130272676171997539269121360776750423656891989985321482650263816667481878450721114035528643457763144954303777157359481354230120744313737569163910609118572805013339526253795215434063964408580537130046194970948022492246820433279474444055345348976253680966292109751904307198261850949492246114952438324068506559389806271542949797919898135570407266290836249961773857430719300287119250272336936425682784469197504700429396481296931855790452087943107409215768104213023976761556408085960796890133352906559542457377486478809315033097220753478242250836602429700331669219046429675978867410295558399038848975304641964067991447176619185153558865671485539632659723277924370961328373270014953630872303700242100221255605867543006900035357943741505208665245133209508063996832538052610000164407344317528785147947256415312760056735882526333287261135863779791684003534084779133427399596888857347671332342136534044087414594659604598140649555754076566286031981727452611309511581682334000405980124557953384467907662620549202170728075146794236749240402290683887362501101176095037123580391926632154299873167479885106556444717051426929760959007285835553119190178209584237204075218463524941917682491754248767390878247005543897645284633618574540448291808638775325686392555585159123420808426594780217749292588868773687766177038281292491979302587814605601827356925816664296274546196270767500438222970052604322458492145742041047346786401233406151612676093804443300266509209158631504417050377889907531227787334050391187005470000215333891738327417700377443220920857697478235504573938446542723537925720503311796791069524304285830402264729967517598082200499414375158863359074946208892828754433416352646165482793617760947638674407690510645017045464107332819714587036651040040416511838308353721514207502986283458422449547381904242830296687820347795689490256794036909010520747716673926130460790578155588639772590039593207784072441439698122436371224320976285847473888619170550202458308302943828526537346881144787897397280989461077269910988821202154425513310113908970658506381705168606244197241162601102351025500306779380778016425566806714668574384119525554897374809952696635961379671783478109033062125441053963989036563209150720597412625833883471418777355493086371067759161527014688977936867086416774292817196456938588976758877976273060279733520320640238721642297964662836389913814981331884830731718351945791671264807391384767858149137472007899127154294625940999570613239682440761327735589203900575338892985878748653444674905095991747591951903147260184650007493881856657329856067582257677728108557234255034478542079098760922362153785993471056748895112809299986203960220069800525016829310010815900400587786640725350365699424998553732362814566726569467544464731970252128185505546775102700695302515368191648212941076840058835573817326326116161963485758471559186579597450718218927039896329122189894888157719064191214531643024772218315992300270194113460895129205999973829474235104255096148581824269250635590047158519046796033093960010142795874181814064424925951890152652766362370655080899920536052688044944346304596759262243432787539036415839409734383604834597287365042354999055290387722245091814777323570683471795638168568237654604401665176642440685664884715919332626025035476381530912627577689872392748604737289495545048792649164397172737956260894105511915878028406646583243031104324106891358873318358743205613027886936475817815071792536806684145633045674056147939220606006600401420760859255779090415993525782761987709062292208750579579656966132699976603385054776139704603509632748574295895769850746278559648637774917632396720694501748268861517571179651124185678486087863816953387545151660445461443099180040538777237612019483886547362540974731813824007917118691822739715777562628327878915850654677868649898655584793746567544000328585787107534437413535453218463617682013604296897476481939855190583274851772294736392710960108892785752750111799373671457099884505016631589847820790087833935761280113939520280353842987279995157610739586889044319856372689719657425745852931994897066756820012907700623261231286215766850703042517086339950497088247102031056160821469590916651060756981793915600165455919527788703777823053442638635330119954811766188620667219300835663436853607206928394045924277364723486820274214154974828187624208789223177685603207163397003726955747729106026554179365109237355280971392771130005324715967046780349126948233713886435198418088212732328349238350932824019683609010915198083750857574804449933617798734593625651844481365075717215628559664045409022787663691714603802043202234192057872362473611437525426896454120564016418294525016884096193614986939198238310357976909721904287657816482109102451133922684218162440770774309053410235774867332753900136457252605702051526124390987743545757671197914694944210124606226816204617755327061061692654972392691593552886651691080526807484948438271727145421273824414103563218927849800012897920308304896662042298018750301837804521705240988615920184199733990067368249918423439688011553360998691350317138672351757939508534211377641847285461091962182136325919290813463675792947100523388585303352715332379583028257930096371619477690554957778752009983036607691130007643721100651596185020181747828270853945937517432684832415433518107326661485737641275730670568960892744781046641873658473812678936313406662918555956810206794115613671316794266579906391522806378832963537659468589950417696458460275236391921965787173109608424176380155119979036768512412740848617945092389022520691442161384071996145537486962741880299342444031352743155931010004891274206333303684900193112556711228130615836181223393127634589547472401112298360113714578422499942588203907006648821924121286271275268673678770710612571833133908635939986052395352853635038072348901553108368080219544097395460293819915849574425843424551766820763182788094470170536727451803885276626200101240218839046078656812963768690479693067650978520965961332282894442399932229114659295857917928931121608453288414731371877486460064226637307983641803408052563131134278724632777039938000448600170071229460353281345240690616305300777254979036041737088928069311953351664746930041615340306067682838962325781038428067789378801436462699753944035629794398344597821680206180510459023581690947332771106448187074427788506220771901519489516460893058400235045324595765707671344838817709124532890647846361851546243966206914925688199208050307670864301244923665639000973162925843592175353425006997188836014807012023797897579760670670650485277787477006294491317411801584658747565863051386122506292320727950611517665580763995184989474661362472395097811025228381890980367350367727415473132203200591931897446408341370078432553182078457948377732723084290508228375294797490990346787427140751616610915681549667107676896912517403833463030414969538883799655369303667120860763471072405211096886097691246182851259837758531820974434778566340810066840742350892308753871346471411165396160949461861378384109961880508857305442242261550019757960782958825597782487528513334647443206579095483772855440201303621022135816560316796191617067902512925135471100568914335086403731908035793628205403981820322426189143103148564022631531149491003297630326787400056615517526857130370069437317072000018928887247146511799788380319650346982050718899832162761900097941871282527845807381016703766186615206209859688901068733477207170798044875901799406281722324481780070890774022019605538939145445479010197223570244787987632796177652507024082586439314358264389708508269332012341258339656276596434663109432967053527851128914221351406541759407631402878868461168183381330311653467514147392265572248359778301463881317088572918276033504619993232266359364920614753933877419632945958934898774457855001951470852587804241882787797950185546265999903488911541026326114546448268513378127597366055666924738164363105921867775908440834125302075022038432941374983993340364843651849407068621567014107951691246537509909039265165508579510229106099294851321208479930019718331772263892032801756542034406031579045682038939889285971512621317585973547927386032036748546240922587418999065294622146954653145087674849073656006334820978326891233108700470263694403267583174955611771123167510007284055695438728602426076579172580885657609309397280051042114448594886093852804773893538079127087229498051411830686706136882766838370943499261902994712086090620052883887431763448912632173129915517168662374073051265480063597488392904318739349805566092111289058669162453383094477198974418782557395312942817557937674406587321089204858003545900678171599161596952303329413533908436643634538520194561164717740790664489246998714634290840575870935146663933142394520223938003897850040211262498383465835357504949050984983859532080192260254472384966902745679277494102929646532302272418947124671514696955298922931163044775659117831464828839965595550602461311299559048007806983295377744342676152144718512743301482589467199879370033800035385480461149672738984803422470953019798454859537801535115159325168351827664723638965698868095145807668718608880316262549807490069818396415550277247639774149882444793577331494157007938804951025821660844418779360939146029372300789120937136509512368415758224793966589181896897266220582016268434427227799279801057221889317340030999337420057493551414803767858584085738819055042703223236647876336390578452414828002923329271572278212840466056319767510684071348046205490719530626955244333733505316657421758931916066468332310330021045883975249986157997190994789340676935688095903344047731712026491523757861290245631702559004920389564976280977816010232483572892947297918546392362095117594565786482903794307858120559374996419125475611176043693045297515102520475559077420878944514160359386965344918590996105906197374831558727520542304850993955321114615273438435901206401909432099097014433781251451093897190935382814491395127126364131987808017713126085884548562298938668950330385896213772211011683857213366694213419308513239763127528622960218011818721118799379014005919976354099614686581621536478330677498051443396660895458607604087119632862452308800841658659462339435433318126230094622511034473023911089477108614854271821002908768212874979872145527379601004540007168966512058778648964812412630790401323674369935833738532189435356351595791131902072204595598090568069628113686239064807662515337394147389362843364633593182519817039796612117219813206620938327754372579937728511765716468672624460119759219541040200825252725720658694741308869798929961643911530110511222965631772863430213221513925987829962138073321842903866954109216067995124469751280935753097902453599405404525951757952091378710282268920314278262165650582866852156088414334671516261546190777632849089467433221312993807970398804913505483251621735184459977275677369465048444671448471054348354947538980528941742608103624129891020843270065310250751410122025931134634725784534750311415624099238188136390975278493860496037527716881844697164184613924252106644475044261060997790142751987290913216412267956495898511488008300707192940371445568463733260739440983824562972170559343112802308441473238438757223559868844029420299022000175095868450154013190029378114073793544810574058177620917809330156367724866840896429873509011975307144879502999352987104166720163275293420315669445273195562216760623576024494964531487827511029291746748333989731303747515385972230130509070714379062603343519597970680296012881516100808513987258508352221870960914405456133376690491242027473623205205388441398038303514757822963878181747222181992982970143463881853152910657052282790009455994115522830956921202612464227938357361044180888956948578523558369458860314355292098977668605221097378674975801708192726882348134440046298951576535017569826225191050698414325950322047480723578736809414894658478132490772226836823729829220148990855957706020951888192835459551506188245894093331164871711908651179949824680002035584152024254457466410939048529537658644327664197756011970200873484150907708408408443608852074987384816268285379849386473077294297140749421195428401564055869508816620307416065651148152401261602234328545592075633039011934451622364158632896565888400538634882498964844051607853613988295540952547881112093202024458835769700511051837637800209064138370260822824756642004022493534851482278096308147086622440811733991939221963591473300305198163730258430882908002573679238975499109397422739589287098474196383574168631647177352833306509236002140886416340663149854734396596703560944949344985995650716912111392934583522798327692851298994706845131294193911068583992363429563454319364728746313931810738251508351662679373247292328236138685657834834924623303212796095477545886149992848294008361576038398224705391164027858878967482655466695414468682603263751371306014646139587426373277156813358529567371969174447791826420576404438287426612837847952904641795660167245769615126545088845514129040852375436365181095304320236987038843943698914659439373585613787366161591791132562841003395619148832065298020784616334136422656637508617643699284624546716491687610910666000435232423410530520421860838900126864592307661677608464506563141508735524543952918763532264916990368254601014096809217020839081541564460139661660728349500044951988991896719458795471800549613792742390883135947319527574328772616678956746441152635350027479212656936375605516246216311106501300855890822379538716319363177850104196897547932409771430593781714528887835343641669289649697224592330036687013948749558575937677644174026173294150650027548038043431008245344951834919785337374195227294549915027390204189345243608220901618897026066355026442856984789333886093270657274926099593513250474906767450802849965633186203017729679778360696295171664623604294033224520182673598428452188562718602432828748945904130384495850353851870737911760933304612880739316235067747113885834789735790714874943337734692545061471544247527805413317085732951341622512279009350581085919592047827314271226655731611506537366735986121560573469137992025658164475506829770473030301317022848405046515000250814138713055565692858860580626153128562196077145270233887718935385741638415158626396174684502918523316916318265982826709222596906769788134000833312102630056699109035398409465344136471992349691992909273206875523732772875685011825105911062516994861756043264584952124443799986095007679933712431813553795835441707360940324787534447447822879265772843398927619316032834342699680026118307332927832048425609833317787304114605129860845005157787150966738380963535664130305647394669062810575223549754949551892006804711275573425922359187161474393652348523444344803270484166879568003671265153746437815140474816448536950431408408576571991011456863573136054510277589352660185754480420854143418851922655633055479894200230817078675239033293412013945456429016007602725427431022298435252577743830262057834294265657143515820341314193733605379640385560561456865801312412223162890363952156855309299586941724021936322498507865987777915615705945448231085340070102722009903869605636641424803016294435628889462354048177734831599736197188832024826431987462042170467003717113318537080685992636037193363030847087665057067644485328313729171140764481129217776682548322385885396921098802610908432818612865442200867211625720951377874019024842646970099702990321847959566241026304252291720700825743001751359600529945777156693053953853389001143242627045193312738507031517238124690915565348806870507908313728047087808754612661768334345670463140966697411614748486452078171200092289136025632909143940345257514094705411382311369080604321513266795639490236338640496491219256237536866934126788285483106511685647496547952740683192283627864806128683094566462879833395873770922402917470114303104956047182853100735087564282881115578910651057950412906260635372176564469847470000375229596237594546894660259718629297727797806174606057391542398197861631229179426843754677271112949771888209646653122528384678217252441252109497969880715095118879046907880928485376803593760265255706108666950616849712758627752430016947303072215400219315870326567618985164596884052878925018848896417260265957848060486958603630458802110950472032291959222505316360630268041930376208519508920228370219557857611335115112545957268870738202508960742663026944196416178690554124977508593758601465904231662999365989151034046556890906298724568707355155132453607834273534119752229416484221464620396533254404911172691553251361448345279490839100507263945364203379262790645365337673509038657915920040370661714259876270960662547228445165588297416682715397146708046487388457111250687291896514620970796299722629136690160774351158148006714754186267899908990390680373335597381942722003291464820069034846519613871217814777246224162196626793493089312912380092129258598724954110186034119692038665874388135510681565853148369319720921301268299597611532719038180989834738640806689716983397432974866910670266665442302703420124516639326060933441850400671894392622591769726441013117554131721882962046245089345019823534220199119936749777531274752529922104387163510665972316288677913975712348386476536017385587824031957884910127367415683576692904614186373624733602321040222495672800723078719790020825933296335472396584416350159890493744002020737899067520086828838941958163393298633777491367720227314717256243812897575900635866837189209030169622208204043104193324948481848197927678435249142866112967745031692925814246140893742617870818193332660439297651960776661506622399318811220506314297717788370502711807534530215413224407716782139934890099036048189759336771506861106694473443814512036191368970950758981286637368958870500700874894625432615807428219776402398119601778367507068154469691898534100598158701802474927066059196350662831649622001681492459283107890187407048886403775120501445610061664595220057495173166579760690281415565756697116729201734567593644413287123467676294920190028529646291548289912699909413731673581366618917783161776582540048079708279347027041302157344925509770734806315467016111680072577671005415967149217735478950469020939366679178960306396394551289025345969033918399956658596483003751989065925525037084639662022745479152734005715718852540991667854871793297464892036510725234407264409262163712668526699859651423393606325625025769379876156669782354757478924321115378815636048485264679499537708481188447988747639424785423658886516947493614385885076095446351133979554515780651887878218073061261834418067093001368920375644878482194524869385339122616488257809566754225497754043186756556911841484650894855259357924678670824507198809491695622506691244763473737595034893721627192115387077390196163056617109497609217017927167827036717621509060445951403537594271777792226900272614408378690973403858220516024445398688291293515021416838838260389743741620009683773638277491733804989759083268960153265996010164810221336655183285571497238274541055981831056802495996830338919470940104344224878148625434548247235789716677366106298833210679920308497520333075335590808625720920258817777718269519863999767677320245083102956668598963654345211726622407470457114077101130061925955795941587117102771985388328643891774210935280636856500548725483771557222708883494273678193992835379950210384229229953409400180253615440904144416022070156596524127021865834512737749781253396841102252470736236298895986961599085571396749521143213853240325721088110834154722070494608085439555835390863610458288743563875430977712634021706116962388290628576099108444060775083013255727384157814958799660765339398178191018886218328399278053328496070549964661195815082445850531271096521861081795303426699129152843489335217282730107398238022891490892165370295607996545595031814223013446721988727684864243034455933326585324604289649421930645547643074775281235077083242653196199930877443880380447948908583805977047774949876673705342155845517543851384219938247176231900489685735376840887989882746230962968026711322065204370413923407185192440856210002673540112860468484858548572046548963092964057447686432364375354859098332440822664415952301035599785593119498502609604054644498052989784167848050004789222057421462103540488147748503649386574779120521702977130823471612783674196193329974328231510586152036909169686391957217674727793979562629336503694802416962653291566790982867513269669848952438001180394002961955639264091382273795826338316151392723405786114141852600482665420852978896692589360455587083223519075087979030618240409368315803748173088156453381237114635035713245577584226225927947833508041402759681448175555470493963977735408003663521136697561167847594773751068443758534929884991280597229200646501193577414060270707337375882748677168119581222175199773426126672857045781517535880645921058527410176652029831779052244840063928524985685026198357843200422355509724153765558640841560302268143566500977350089380094412630395253004011535930120614228145941275702351431662553923958431296790946182783574492354374522487074291497680419644030179155497174094450844165109328269727140147029111742445772447482234884586317665674284584695469867393901705775176979620042927337911853416061560923008700595913189870322773508543245662153256643282306268958039381317366521015955019285066956252667036902013484571932461352196821394908660968773615968274135013387192923760292029980458869471388100736052473479401331405861320715012972144463861451292782533687003114038395955937609258318971982667809861858387481984783909468160540306286594341176102623616699163919179716264413567110423407035902952811129146149902667831713260097305130897822737361943569443432346172071303464960821622842473135005142942276035062864516183768712942314273029696552690929771940578622178699368256394591209060173532519757769229344547925424764809223855213179529401781862711774871119787829155144849844453021549569304702124150312382824775496515158206588628739907607325384996629117208639019279065985698424015595921450060220914283404666184089097461071836660790070373654345699309243514430560130740701475254242959915254870810539062939920201339919031429952809662961021016941742420504509406980786447942606797067637729209556284827631016059835174152458508655589272625430199013172431428840757265619115739520495607306815173514354294842737449700942745272155016481116743334689718492589742924129615221918383567253882254441412699701795316813507296667086048364100091265102695370216952173697498998911478110929653288358415475324773137879972563316947251164822396367873369853397111003413128385394374096511989633572254778224655903998348932799038729782315828451940493929788110384507458926204616948089177277849643349343660901145461418475113815715945912805938228355305491431600381386635587343294118893774286426000039946959134367278311575209162424239522699067650710912851072600499545178228445784160329538532903118711708347952850161785131534951663882400140960948811898508701414464772533395083977222377920408077193517440322330386297561429058047097953715895981413379175113375837379038195735695269377663328405238701404368626955704998732566767844517943053324160872325633653759214577564136755410763816578882947846268505113132536002869415061409761066312976182278399476042460954756075909517166036647196431000459294928413028480573353587588436107467787475077680845948597021835060290548133950486885432670037125294494155222822084333328048027767360563480237527631712004789033445076915004238306844475287690115382121768445854554437147419086470058104128643493986107107087789534463319960456650060879560448345786906826836916530796209507636199332110306262625493405448273295638501247647625357429215219938476505694556725418047938809901338212599869471533943632214342371161237988496535056255311006191431606376672061443194158015087214137764637532581058994378859139224702506660046178180942524861991720230847238990620956896457194059222092772607088371411172987609588933944780833959561316188894298902847433281335734817155568940605250418831887838983994590625948547158969453980191982912589504784935413355044473226324503873558511956971329736665579133530810127296950383424894815552619752894733794251104277699836754224832195376877717353113097383936850800111581427779549333399834752001653333353552764038598834869405494684453208944972532801263377397505405474840697932554726393254022265898105026651116411049859726650520088787340143968317847870229376509955817374095991736591791578661577365394852384204391494359330019331798812681955390003279332314457045909860054334870868063634116085918794628984875927696392413336136977422219958032634209870389073403207685451949708578492518844935986864806630137489988769086883086486656462472884834159929559789277375226339905770118707613296519648589742236567548869719626034456296530498370714878540709665178918048620076305716353596404379163592116342327311013068502105802705864819248115568739882685629274233653575385141165045739959513054187320461063745278482741890144973880751671362269268068794397511006243621645494088844535327942895158298073918884772845807460224423153502587189809397530411381334459742568543614736778499237706359079641349430924428375739444356043474772030870397516184818838459089644754731253105989095972033780165592370929104239333501927052083902144979247703167304097356788112839284523634724245902469689033507669082737881726206959412331808550122673511335696172476086544442908728436386111622485623885132457833980762809006020522258850551425297923328096705867153655475180794614939688860058087530751084262500526522627459610832381866377546469608257694770591283545568129736209241348673996732699729382917508695589002834569864393123045511437046843798512978846035046290711961468999918913865088309896232500919209299408032108948695359148429773916217592539122590931964449146987707578657421238939582349945318757460843432940492666103239079644938983094957124373927723948440282119500997920330181344157091053598638520764132375918694122474597255806826150385152406224811079117025460609049326427418963312621262807483048749374364949129620370361331037494342127175561264681875801625390530004377116457154762529268833626592894053338100405688522953482679424850757135794523486965773046941279183035007918025751190614229144334823072439726298260726895610743252455705537761119502707496764544797072591978244805221740863159674405139566488896136190070416084495395177792949049717013739846178701065544078066864509113515715523896215060958792820655023137448649505168647271064734215491167993153117545775038517643740284791424143909021340414537473110768290014971385924918186491534579680789876980857114254886997907071101152805018106365070784089678362228541852049544333125072785860784944114457588747729678547153097216169658281023888731998870056038985787047500222932531718155726648555233804499581880487107967297400117436671535548888426397838963011195260505849824449134078261121247909562723065511264007184990324062932613979233306659864136768515677469249219726266242557620075348816208751427020492893538474345450254371463779420155634793690034223943049887077918073678250143110632344237033177651104355317835861898161569156223072369626760622359450579294715724583792392068896518280193060635676224332620291355857057553157119167860740863315059056907509049228941842913052958261373963935926834830189496412436963642735188393401810864775485844560820031912442263575012295171628563168871689476189128061740643578636614885369039035866110092385026900133718779339279925288003776219064695945197463851149128233990561979511365413477782854154703378727286057124838692738902146117996872866895544856250601831623753296304812126575984913230599706076374316622366441465516128921133823367204903702848252670820965515053016387328302456683137169474857862117654055658376486402827286361066974092657370731806457815978547676457646730670498694784825316035557838299547486135584848118775932947127413376512860488431059983013336681738887754788058220304465671713854490561993197216488381446370502721271216027311276088102500420061297028791245400812881198796929098633357482505884968991437688304681821705016734385101635642322281513974153754763170697198644962007498978096442418397986824373407575554300934123660563697919246209389559812524784124731291421397825276091828370135501966985474702243781564734885381279345115460714496655139475356820158747227352964000182960951637245848921758052554088358411742116971007209818561495622777879907717892876397607574975894240409467106340834634685676626459046046616475439976277967311145443035256242318066978983721978063965634798458033707502293611549134935827555988411012567120825979439252815956119423172624001197899060897554909857122594073350287747747879342637961158958761982128597600278384682967383876684247208507766355315607343726376078450403020249818464995972651744542890046700659612827685357863085972251636843223357750774407343941260795437495892935276621182445561272803275394963192887942662396467582577914816471053155031261129931662449165366733738186509112568862528611327157502175068743607828711821121998497469545480698444705560389301164014648439617103091167351402931774442010830064088248885837769381421063137752042051860612761486121704213512221621151227364917908419956794360759714607892989904013158639102103569819479393182464664656140992140023840268545218203448677023434452395426824368679807526066116284526293484776602128309482071870398237759665918518933767333156521825214868090701117817422798851995850134756315333400781624809371741670427672444956563147409504664949238297403723975773100268651209850486278920306154258684597300346047073183667449418268882645845710371204700350551858891267924758133935271040695425921905916696191037646380496320246001344636318357733437368002113234203939791474759265881169905857230444705541061225626523156591304343573624231458429975234711516667227657691440860791716040149256565737488562352138329676574710334204071955103647988253508572363903059580759435113221777476300911147843381659650157645632260208604531103202329692853725188275004592037831893187373164472079087010654643112219348042014709909939866747219681909519592169923516361700261514355817298430987343080182757391318909749095987396063879512880140069100167066193563143367466401990866918103834921373044693795134617099635579774672260242266336606753611169913228548523324838738032622310108487356693027689459283916498241880039793884572946240272184041745703803877284037571219102920337607887675862766787455284352632548158227998830706150134531975470601412618448550297716242420101829190487256403081927486684202352629371931013954091662478740313748253769841308370455148614417095586549593767860247792142899638665084316467134419097938180274594299039288016327408698675273292041870328191746133228807237815939515894671041825875335305466602102343485444346938001996905913338858681135306365442050796243303384872105487811656297311320654850810891151513932157468857918358662850650057290910652957392943222557857010414509666521275360511341952303666148267154330273197077966315825591687620547498669264051312623273908765890503769191519083920033519576015651649407476543698047931682029536875055150538311051895105376537150932115419042493765926393830857699238564520504187756684877829700009854807094061505811988498415050904553751433120155874268352860708971589862313395629205198091351695835877053720527023281477480953899595879026025050792205626252720645969665178213709785857986459591102752560340964823093278962365602225083204027325439500198985520990443610522738878482864917904444935395595431156579998720293474248914888540169706408460189154587422096508096169666980255486650738104509417238664117250621455532076312976295287001093871460721990500455373734824815967706023916025283480620997941626212945801617948654216668841940300152307905178607794878641899963416496696068840171659150166851450479943217185138181381895443778806068305894349027152978480026311232062256540985940490890522190720232222916843534742384070083825932879471986462875624334033592734983788213388717884792181325601421046883392299228831777061703388956836841449324335950052571972881783715219453348922385010674167051899647044161334765408805438742252083242407475153409389626683945762233212631265052061339187910625883285681137088097777020246750635392712514490731326266147320689239192811982858084421001448642536175887094810951326733256137364159387612984992657117260869700584001779637754176851948950509090019685400152615077801178965168965832630103975475768830926838645549792749698885959466849242009139164764035345866943390779591979224271505015658322821222496083751626128176510202373987235340165604048382707732898243039730686254338044957821531801888579762870133176158669566941251764257899347080727846205777859887201497885526587366974988363885783412009250590902780775617481640969952075342873549362247598318022722281609825011765391888263705438756238488683809387759208078538716865510394384578202000073193060189557731566746982954499790444156825344228944333250616072508148834523814568731836459557473341462396521907181006840611192308673279432667562792764294229075512921685964111920024741204170157065986725678271329716584136416001429541041023296094804436419484761554908196608002457913539121642846497526927340262996139977187450929431171369536682753395846152509108435236880413238617956359357770996235163078262700524772054540582714194846156122614633441836486425662415064971864031729975950334456766878078064131590477273006415551578367392719213030000185956016358893422601405552343219095563257211189234837589882514032798835832968918036513257207910677358948874410931655540757551935685469220892440377655522964974412856416958335162973573734959914589615810820579752192105408187631085023287897305466670098832340271973989301994682923440193915274043516343138080474704594708232065659241924092136908131740424220283938506507628035788324580919425531195549452268087840638753142442454203826016524445362415253422212621482372671421071992326885081026181339553496553920604607030111131197190855002778641585283232649188751522997691489828651796453614080029769648712321402746575461048781064080190676334236497654577147141467425703865409601855227218070218461391229478610253679568320226428634753206901373582802475118027319610912208698440750071573552633581564213744601838993755339813605645905962327244871618657541034069169451025489042644049550886926742474803388111487400638016977326155487646529670028687330475987382267696943171193278594679182697978268368543068312448410162601010242985037548513801028304150438532715944989069823390860602878303887143016767522465540063615279721181090791219118995500012191099448582021115891532307859229176639863594619668430044500318630969885812186527905788261156610342066808126675750572454218520614672580925674170553841466417271397763154845007639612544135689128682013291605884177760609381517396049638343725640871815146221674139856220388011298626577826588581422526983589346090375498055119557398639029494387694091016860426700786771888944955241610350239340151983522591941261537237562207872786754741966320109435321179611847629817443889771874025432214527746902413479525464965393449584788078947335118782386256673818291119272789960537844213209079456841935411240171447077319506261955106477530680881228066787183339399059120677179842595826787836791808965430089341442094486716686257438010735996427002601310172978774339498683110776179476422940501860095822939917868063057745373194830428766390455037199225063165504139620865522399307508597169294162393903989473905361154349287730151463042272254988086358602776743456551356040994048477124047032092064960368488490149963407248129948521392806198215485835495786086974254040678729288876413113573094790500427887065846657640533877064631939542975864696424322886020551137220426738874490944097883382238865793478099057070400265839662522078781494574689258071367708116864509260976055680883016006736507471967485749364605880464382369005810708073020918183202495626579514021307195243828401098553614551060257334899522702254070177218586690651636511338670531545230492305557519960597002882319827812899413534529199581177861858019024786345966984410187325756647934137072022124180834776032830073556905118286887226920007285881488426759409098490619875783058425752016655466447083132048981570762584191700380190833510530860538980076372931656060529389236408495717352286357146971599775027572721033926650432691115921218315459029403738906328563202235483848662518969244419032306605389175613309421185476753533887997536179878360427102251895272684683961377643696805478590708782499027629950767045826091310690647241981630965241614757104153755672481601433589244141179559907390018470731397707757481512200973047144269444106195126692740918343879745921200449452590629097091649585399418544938998933511877163092226682719634808772862725447447834641215754465431441124167376429848749138835627363271620069471224359331549917853950816917610762925022283293203246324257788608888937285058800368285401799021168298656141391176622792804613509779086245610766119957639729679448342830865517484198667190356114631767378678505822238335803133512339263292911362527104345544557653027827852452732246903864168886073661688889674310584149187735192740729393946334610381778235155985705463848071506146739643794004164949600518710395369432814995996861211416138543647138729056108683082435181644830091288218569693057075022662185890388845696890717437542867078065999489194009128342142188203039052082231215281747242851489213790594287111995929560281882847094684339633106714675158026201478300893261664205724560544959002014895264715506952990726610650216851500102561483285531420850997469918165445978772505593244535148835671710579702378054116621602520206622987300807253245163828687446563318416960165616764833267872766154891151894956567243863653021257333947936081929470477445901897618988269938510010578792895274145484758561631715509434678417670813567138526759251348384111239657618148930169801606174918541143380683277525580966946618429482329981233550534863337464729778296101876903441704409263607387532814263205795297943079503739613629766013650266729388475396409191764808764139402890240930410087107803549048212095034051717543792215059520312198202438280446008342529259033421451473170169711625575728501795742507510293875895633345886516718435995853305866153179564441305745567214857849128057558879244259670884576544361212806458453080977554717818665617248451307612203304682277773395432387720013491045749836129332246415620491991399961776731095274460231247233668342373270287232553095339526832572118662706981699452144122456637413749087589672386627471345858688406755909093791640018852700928418031033664012973268054429280707000898162245268277099493094266583499272025675557852477309109613192894217672806404732330460687557197288727943703172052213630325597634882064790700187040932413876931236511780579175182470673378845735057697973009527281665406074072848457672345027972710012387423265928123048074778163870492446031821565084276855945286169658601974127905977436179181750780931500188372054787611423634426130235060620487876031191096951589752472703508170317995859486168148711941672427520255578620854725344172026979281889246236182363308631237701614014617656408638206354379324785156616549432341264973936289249543607215653001915702750965175933328647935377639316466722305962263156820976129364653600422588954189801225606157419713686926743586720253024772983538436376482336491991998931754467435421183874777675374135025844547466643035443003405805908481348966900212163011961397442013740610369025167452822108325216486360690355639350588537081989667423444716401465531871588034578373490844067865910013209949661089565798430048447628944215948361510294377811587302815611267325828965163157232941048144448575567049670400328206612758027544847348827333717970906761271478901676153505669691349615251245389495543723542032865092828304779014154155032459024359837803144972252336627439017685413710220539651879304862778063066030086946111775626949064551804429349921085248527301105307868550594984611711001436152540939277989183163816661344064412689632057278590287425620506838022810350405359581734239894534963621223599048470561550399357794260144697808058173812760403521573972755435683472812681098678733886631501641139796710728398373756212592678413597916192697606275252556006292034016683246488270440523519600338913420835427551604826821530843969379931244321471719596390087006983201479289512324243155565493606581694821421467701210164099014489609467172227858953750487491166159873397002539852521831591948029323058561078591022944306622094729644543421047264969821497176955668543954035957584819608632475778398817806093560237309505246603223668484614167376019210578260780274665506144103661120130524577688230782660205611044350815307530453266442621957309712011690281238076940103783436204501559410834954982997133762281637647527669585443006086043710839777070910181218609061649089658485753175461675956317291763569358498569390777430634512542306373859725823060893369504107786002229299274149413559015203265922782662817520530310490285593700335304366114927952679568915519820151628638566186482169473850368726312226789285742233371319610347665571943855602930603218762955865618147808384043122211576036023126033651198780495554280886157827863921276984472764062944701305953345263395092958699705512450917483638629110946530990133543943209430999613599640966678435696417382064218345190088853361945645222369145164647717358568725145372351703004422841865967615863997152540689073612299707769652954063574869235019259702983281853253966113035582448368975402102046715632701376373774845785504799117403642869303735414175174045828198124180836530117843396964157579118614940801966634233253259119662173351884626254072222871267844114940764562153067569959367645075367892063732753914403654406764437423112254896200082093504891150553857245842967075900294571265415678774890632110293934318975413141931734862492137859554309457774971023117289592627834228820397077464889620725719904749340847716001433220478501820128888883919191649015950092345315587517155984349460526054419098829867902134538527478737814175623331622548974584618068432647240678982678128733582047560267329647051117102488759898402052253225078188307423906781039874011217492616452118201949126203083580763380859225686942281652450954056391447549208723217949462891545796924740489536208116802004346266400728506325153195803294829072005947490022617133099926460054305743043163728129509755679283703302793341210039039864502247088524985135903230750231050382888573641185768608796582387902337497775623835081870877439948643834592548872493339160858847607749688134807561841470315666572918310437537742113258312382192780606830567420156826570957622605065375820048169479715141898085716239861536522864477359039542284422625212816064936488022425962936989366977371039610904232468438589942877756196153927682143752911470104628231949200818484191663578317562672705553740353232052481470122990893916216382510626603648586193522168364316322278523712259897183674367852790434221950171004436089668079380857377677506560896102202553907280875057885299803724996331343549255035520890932654562178448545902792552074205934316266293993461057103992275853516789357227590971534168478143488004008197456368421649126077071918668787641430986545661887922554996587468269423384396327187372927838879195368043295978145614968281596910082113153026402394235095254254138556197846084204728851551065915231839324464921477065075438918468871824765501075457255846631724460681603738650035262979725167297721100221609983857317554477606493065675791230224454805893213810681271131212678693971549949467390663687529529298424084226800900238809134999524564217222364592922402472454807926262906865787383042750620667696385142289494533270063692583646383989683713300600138959582783237605945426203911549779180642073855841676575230756087781774698052190179457680646018347428755778867480813707828720223826214428970565340670379374330189232619864143543632036534174944801411923589590098699072809590773408661109914572657512557402335884875305838942640751377292871528824008964877762575892906292477859543248944233206990872754797595581116392790761492961852775947149236458608610357314633389541375204574193023957731830991486225769062457585945126681588492520632630206574078917032812237123816114208117188058416489788126544097147578690424127221842649298112286782421220772249500321772735384469245042433062141351065690464948097249857955921878581075942282769575317355026579128966569515328852465314401277942002561531281890357839967094589734664385086029572358110714243187018148794893585398326099478626829336364229468036110709494434547723671343604535710762772933498675199763857829112836943469405221509427198952236039634525037347821781008871422792587065031243979811565140355234136121989564986486886728757634703933548735905576998366188437135332460997532496249470429306393848636809900547441742103261784518778668425438468767349387189472911554947734478200881322379793678677577902294178903498876241478780408146437992188544003418575338508924784949801417685140493274160803556637568524861522262666977924715587905252287695396947461804519517765268096062792305142599489717875738937273768928699211053872516333184754221497190892418091243311444096491577722362932780268837692286430696865208867464089814499996290321576530691945363977755589663536088600732574971126373871956531981329150338503610391004597415792875622481458530184738931622749261902084364668803746413945560184092373378922658256402913899804185233470844733499015251044354594986142634843173923540179177283003292716719071643115753039298344356668784983755403592216988838165220712662158336301165851408310894643362305315153088869604115927632847645449602084845294474666778820058243781625437287450072074975306307492965438212193391476383467924067122348202385491186647425879419575315650552626301144284716107272364528501758358092744467802911116217026269391933720183886175624758549862114454806887649576479861947202982924802400165332313560274380528392172963527869420034419847166954027426195189134334662994594086761540707185987368300570758032115711880354001956617236395592044301223236347636812966829430131738045689644093759240868613289691214704481961555652764709782003001821487823596161493947383779099319505349668156311152254756131905747429311896174826064936460019183803318459102467912279375968559144317910554026124707432065516141193368429326597728013048616697358575117884693715048979054170793550920716908374355655556840510129188287704122076554271523630465525509961514338377366684626963246937573658736900079285310964767618393276769382259458977865543326735840944469977464265274387957281620757418500889119382894588156000361943846210195779064820787822542456464060502455673248243069068003194194347068116066875857473655129956431598583622306671656391313315301033699896441000592882299934949288703890497553318724249475985877188018638706892838577465463891315739503604715758581483578147985322889355682919019454026408450732353721914625789628641532977340279018110512161131327323989420256837305511334135797030632922259128366944745505809352706394386057414504214571600349090382753272537725762330671070224766512877006616948992265436358926949751886552503713527155314420431512561936568433841466693172296675408816188944635246411357133243102267788703932822855004767696309142191397079941486764968713894252637497721089857630606532540898455251572600231711314289198619434169981338488102140696828297078362735359288455196761908708211794734488432028446449691833926375731815807650714538021778409279623124051392993496840273043198365063011978203353716401203265290277278397340088555775638577830112457526967242557445415701898301889619542511593850004951290369349015049329691203978178712311568183139370985187664745689101389889956423723024918328890498154196027750504516124817419149796668234053702026424517365750020871058669234964220150580228627285729946158654473407973470766492403689889816002680140343018766805892930514326614134021677863337894505213448853477539166659168628018193703879280694744390212526630877382520130008124161604890945410679138412753125422548490240997540051873109738628264676128988825478073811296173573057084045966340807188796349956332803823055178710763741218785593939553638633361402457349212996598454550440083528593121483740155941119916041145725403847963340026228334870847058940385238324599562719328987298656521514650639019797202366788848700051591079459146899226896416477285763229434691088233370181087729951405590164261869911186803973696308307237530970726151196374200252848474623325644367296313813288817334176069268161108303066681767223431193876689831263539766916203367754156662071745020178994215540145681264399949683939354915610343527138329372762668220673770635953482841236002690307021891485322947177178441484089107087745433140890644888265500235850564451323703464748051648105355059822855185651254819082362497748109589521238525677918684209843752337565518063007378157630349587477611183337156206977418169047152909941452569890737890516621353825534865869550313089738010720575669746409972615409257791372989802178469606935891442638250943003895712020311309463168602318032469036312172931900002077197411184473265135730417468439290806747747692264263899960086972929646125476567385367907065177799228052498242832205414025645753336468322476175524657870911154022518148043438089272947782510125949805912189367502917341796233360377175555803728869593386006886821656293730193951023832354389772623296667058172959670195774179220372850150924313045125663273402744601713139458269057444405704937624663683934277047898757917127918695109171574789870166980346635270218563907618184564328873075170804547334930971802102568266155763938670647922841750906961593652109840107515102115015380003848794137900316599309739272633799545425713016519413929777010411011192055923147695724275621778072298341060100842576082977791237837332218595393590513799948651869007317066803644745394426227444938271991370417787767372482078633083413678698051501886326544787120475069275911597354539710260898448644112109452225906143673671089330450770116472776668818272109189275450348296608509821538464269100715366747347329182433754932393655813015169890450295517790859266665837950024533150545746037717534056020586718272443948153554541421739874821753473335519539527206903510144779321873169129992123698270309892920287387800439113998776657914636089019992583088317920179709792008879401144742228421534689343176167920859856446183984996273681810818439956186348102564760538840867313339575561094764818533501335808412200755515464963430358920415903821858120804489858526683892166832868170045408182707336827001441301893342607018570277835757349654338684126152087196499029049706590371369567119144016436649913844058118950967967599486760042122326446485665239865029977915846066276182712100326116957378499746361921636509111546679716815939862398266232479169465681529242443768936686039432969100514002414987400427628854560858889405343693240509581844458385029584578364065347404811308150575579004446061640660802086691193529044859132242449022409623257805827057775739268063116189080700941327859611044891021615500051551759407355874825612190806305805848676569444945962677533599380217652621119617077903693123521281236177383278789796636226818566078262071745572326917610278801105227521978060536377510939140124940480214099847519493037096063003975951844997981299755678384380304092725428403430044949462171811306556930702860191586681672727585489937929478705149216301218026496467785324263895862090860671864303148772435545761827801940226208079389647738691515041841121534879534652409207891124029586528815095500657711647336192166350252920565868841993480653678771441185469535452418769440832417922101599072467528201331157973882151655224113547865959707402573274367618055952587310996278918251390649096544237687285923691202995003458706495630065704579553922338166104466606154007399800892345069733578550296334060333559123013862170148289955355738883240550912579297240929999362746949509134764878121128850221321823219982610433464040057405583243286783721145769452314805741963169555830869300385119843757860783899039739551847372844941272725848148189725026464277008569750228405892405636563586749191289536398962617963759776638472745445150623949895374183704165319091848470394770432419212142864697243189068207622572131610477708770271386807138009290643331738074251940447807251948295441947442814541044635848184804717694147430792541159526701473865697036524436818615316985865374304394821744891894276325270481420924149931317392714960253484448367187416062295801685873779715246147079089871138896563283637289651649897211119888646936172625514747427919686805087693192595501078708452662960952920869488952183633778139665016978502448344801755838176451179979709317630202150083027201302349505973697200145481975640691300603833952537090731739370940383381287371353416459910741308361336178496813847952995395376371126309261791707098192652832047826155468567559848721712470296129668901454500504061293972364477387768908317292526801896949949314959176127843723781351692421163000806866271259872057845400490148345300159301929695460191130857959649956942658257367907774491369309731000645195356060566423687197969189821685884268062293581421889515974659465814099551429771788284314830299036396952357368695959752728251080227686008532532327234474978793740175855048154900871837588434611506765897142866687122229909752245516673554843104132610165716630712568936350167897504405971338085696624322656672952191857994845442730308169135012536301680065372492198540417448750585053645419189546407777517173084473534808711272588598581155921368388177483536547332058948486670728039368778057240143651406966449467368955700629471747048709119995480852942181097163746349351248674498445619394092068103524873441128974027809249299169347880820650878576774605719505326833538305991741294428197986119497103494448089872458485569497162600810817431113397506674670330826390813472635490212226900640720674476987978390795808904170982119019048133578994131678317767753132685138543846197174176538774799931898607324496996982636234634725830868744123800809907008367556343134609622354188078606898411884989383244323781978972347667481908656715340239347618098052326222124109723109673563152071992076573146984139489472778634990122315735197246562008715409572482444422359829921122836570194662977033865077451740107273799328303609046998138323094329619677710822597445073229293568236383523359977330346344039992455241783895796138341118921586673253252421283938842974824590691388488150384177954767097922015424012533765211886432108128382502322362804170861184240588863659798677951971888909924125004811145558875532170262001619872474981324116905031193892340144735524986026722116908349141572617223070770616149009111701346395212886724412704568998029668994524646205647877649636790642645942650506359734206990715608552294866829958325488031179447498348767823927658455872222672449009008796413392982479930543609968865686432413280214214306458710033028712237764114339783660156719223641439533715469680954463383691114375023273229663516303257710969100384717537487945604818340851756297784671783835679456101323698971075429513353187494972240662557985112455420211850973546555552426254484123088560622280794980332700127178483285284480777748858694704096244907008120101795456961059450327082811727624763625408368164011938481327604574862071752900591325406471404560088108702307052571987474627955856262304400283068318655862562646969446859546853801751941594480422052522008360477313606559673011758453580047057814089184253232119385249040584722154346715631223041328570004403449124888514602676829031295997585812808118939008005238760483076236227917241402550139388360032378148060878572582781434745679904233503375818067410980917854324886105813903161545051778346865505015071557046392011265029579650660364965518118461157052306334487539367180691708757928307598621217217356500940742503020169281702315174207156154041259971336132353687385189975321448321049095637922844252994978841628267207538335952015686921709892697387171069560866058760458835441635367780720190913812641344908419996751664384262110428896017641234788262625314997516725349723527837828619513447093660995260198721436798804165582046538796375710444551761829239594085591019833907572781581381293981888228515384503836962265949183820061513926442449708800032355824194806585018309975889784028820079690469854251431334764727334267591562238545125639167490770166765084808614952913422727752219674644672630902784166869143741128952560431196854906030446308930803511476787250281814439159076394066220844891403399501713516707349113852632543247176873647364356578347100498143842728369405443150631209347774882689069960988094643845852412006994329305319584710370716480744626319270239479782154587561885194157822627302239977530864355121475508133972966409351411441911838812905348955004028515604151326906966273443863582947995850721960378991088897646301220185260480617746732724984362115620489204738352625258859560761032933893371302478495035159890852673671655238825026022828788616467769338993921963614469939326700258744709838950055415281337167152689851981584013497809314814669411164991981962594514427114533959271154703917195968061658918584289658158157204582086704392715167919493308674295990281764719383193540300329335118019827381605616974578118458740174551096833139752380117212441251516665877699028525481785037312110579708007387892050763223544969057049779579193083251624141757373676994164971675590593806965098740611546639316094926755745344121820447037770128417729418250917498933976849810852916826267258140488908094581158518211908827173561605263308244923027081245807127731174908471293165779900248676272864328101349347711488155427299777439752570633922080147627091353959355947392314955278564344605985868516859300069892622747727895256407374249507066617714205790982012204677408642155450790333306352389892086170610822229604860233596567095663240614786653323824088689510895408884170712487455001746790252833507419862933973873126786814024855666155515702765013270630769545053782466643892365763849066322055291978448553417317699453378012433137052837933621856915866539107598615526243352343750762656842437139351894810427725845428683791698080234188905193252116041592475859632791565564120124169912142503610936616771483575205150367739845481437195420896920143001360218832774979340467176706249282888676443832066132821296067988774520292496282408253069705273479773931513273514932354215176653798635476975264360895142046401585935821966424030547501176723466717857454746033145238881894291275787864781327130934533947001322499956498908508772326412414805516328724878960644075958146941795853751411496623537196226178033049520404188821825804516021838242887717564703273205990829408909804035057480629059214709638182531433900680256752690372564166079852608610316357304397739637210499026561225017548367679455448538562428362138273589419007844723372902926236193849772903805263795472990219261561742132924880628148501547847834890944656177532627694437551278449665682328651208221360583401191571220304975929963711834407567716587042589076062104980430426479871079385321343116165093486477740311603943484612193948328278411266048955428832484154728433885844284656419914189856987528247629509292466689201511633836629985245643729148842412384903032724166852076509455383536393896191596269866759763685425951830166913429714845796099040945726766635522957080245162342036989345897375993649343961192488391773772650962649563601745422615958220407608712985146068681212280245029020881068182833582920810102135774297443011462930979342926065948226902020214603991058842352690357480078716997879691535455106824147955491848087507762088051355733373692160602445491018867570250760929718125382326525225245374193361303821931670374743371598647546758347503374820811882651941888423062492805524145914550752435455289567403178595292054652904215605784849280703226921563840901954417734218017743476888743795804077683104400428606434111460798244366376845138334983182131982126255883108297736874667544379387890443140733761777896057409602500025937484701840763196982575809945124156289383640127462612362855655999378088819845566716298666910896871490138435918175090331083697876967285112733786721717723921714389067925868527255255918666559921230093031719143728747563079947902368502454011360887969332001034046130577477287277783420691341374566912618289155079895026202324581177782688537375802433542131330761939198693609367621163914217629089124388773736354959201469447651064247989080788676929293519763935285550506595603878475551711795986374619027981509870837437677814580802437622037266053540575826999682614188139868857600440406531605923690243658700586002466048433357460528053867651556648848797104885636456484887816994439651561508385061417027340775515904434789005485172337663649452451378325502564683712617111344897657459483152401039763048370738046625833181661325560345885319388977280924076972282675107885031270682293625039994677080295094403290981366566378506272752173401581299935805963411005676500218352218388219639794749360482633928734032629248458705412081099675774274785002288693830118075533572244359139042842364753789263979678986100113667845591844370179650151008154419379973448281969951710789751937214010352637433364618159668367374733880717827267227716352439120721806583746822267690578820547273346368572199993791781163795124183496712249508458367235765139192212596760305039008000004146072810263115568633057689379622414307132491588167402511530969911007405580451132317827132357819167914572824742015431076755667691199492440626557342739971574182343950742436417694196656441181906842155393382422789170341205213865985281728397948518167896693781009391847614132571399053204385836621781095746005755856441231818866101196417907130905634744916739528403396172744640134083544843284373777632118929713274506865390283073404412711693113405604565467112360523931306484789192681462506539790854406331223667531277463139197283326629601820032001280187979319561002285943807374383233319282314765198126139652227381588052336715725480878055360639765369345044164366517039678727003242394845964350709473029683135911404234086700069921659805510524807033963749362731301723321272799170932211064885578541354403536625837795631285606571508936769425481062288697411258485350086168149130353254115963241981341072329492905928927365299664314240434733350350638259902007161075299680507385312410000735489485681402438329231368451043422872883293420915014308783600137972812595243988771807960825073953512324277835099418643829564903077737151752646951368513868544173910389710666730988103458282050140233713897938359028310925496712698424348859002406911694617810180314659147664056405886836944610086323444293051252846311061251794230916453995865402307338862494131374398831070568196322762603565714562495002660335914369536102100977939586503712011645795104856158680470807972418381497349010866205820968827442108227420049753700438043991998198067344242798474964316743263512885852326835635125940367382060476161678590744041711697599167573180278401170996754036573369298981819401381182680961346427397485330457199105766189735385538111070118875797124081128203121052350752787162996050972789506724680912707390024619665760857682035290457757950725682538275083572818930031701573342929732243541313870363892639175033717873760078445117038701479336336110794228877457956609565862312007297246900158763050969597584880131051138516289388586126652093713942063359047007846234237027854122831590868825132642166037910689017115407844843428424002521048846500062058007666414374254224271624692611923744754486006436933525039534957626502226618213237658841363641010665680895639658894013772036204005686278805756643485812987856969427922949594222487485893791771796686877357371677552415348466155275261988990341887949871377028585339213741328402305478189795822291621015084003201672908390143233792875386775425143602334992056145253372153242844831330760177473321256755456240646270676034670891533610496457241628298640744776656892234425736345860652782449421689814561605217972245439803506366291324084593329195752907392343635873701487147149235091037600224145119661837218066485320846085870876162229729397479962689111072915170049889307431791445893910149302647750045680005684211801885724117344467665139146856831757246760681813599803618243148652506164972966582220810600352021010041843055142725322213522824335340942157900337095443744536862960686994836358660855326622443124992153659189694271346482725354322822016124680539397070371652229966124571278333119839499107486562641126054497067027728800392046989879318290137945899280497475028121492002243508854162579276849442529377837778538609315585638979748008873288454284055937125870069251487388497909089917237522005551831731355364487673134212050705201590972703483505759791061398549896902675936108215250341563213740904346088357694246057463561304379043753406393314516574773262826345079495769726614568738554691549892124037174700490662645968441821052336712756693350496596144482296138983748483677523024139037898965472881486973482359297990673986259593255030310790013989042310919351555518663771961684514804988388056335561940123381694082491499185494124477434271708275495235491857467312468127441443480881907931349215066298608833079841178353891910421013810079431185000317731493874999206782228288747598010806455742694035151183166271802215555411799837396865748782740155038927920409824043366037494018006567553588771502720332163662600437646910824516165738910723428770097672212205782693618695271502144659290476867827483863936036962251097044117873187064630620941863701153604338043217609983825902818427429285785841658435657329759236491416774602867837197663004607243844230573546874390827357677756599523823969599935035241098387344813153502191553225755506236457725066981140589971883760950704577479841581589805418621566921402086744633962396797721398993144359343661504189953779742114626428572593053520328061703870947412254319479794950980404039072473314355869793765596399142965465430297677203563532331961880411052910564232615051847581251774106455139834452475188308383491525004429086276660949901332675795306976367641554038195079799135053993899510401942481116489118855134798803667272481500254210030199789591916448768735943418748952722477779817973293513857531223237042652950517208347048862122762734182214590139608176850313710950781520048936877695419578623015379186973263255222820129652760157395797810210289247314402729610812304843342347103427947369095396436528717104361862846162276583943198653509163665760058265750730639214821214058788428263798005226430882669614168698976731734787488973211827439131328112807148899991808467157837743387139029583741771331536166639086726035685178293743448793016998864116046241970003966563952105818854990936116671455166218950918274432130533381963499246217985920277709698202868662843980998316868085280574012151810676369626312190690058094463944025847128416713624318492652930002647769225800810681360743969009631545421033342649827522566197967640616131139617242407298250359870271480725741659608657365111401520277437921921115637258585085194222543611000715783870069549114994021131522882523533291036678758117604568038018465792521677702075061121296246103813461100047512411204280531711825258031838505449973956165833901911034976815612160722277045941373933936972995155434566109232329471968508025516902881382022039484025956870320642814269915023361701041272181678607904557533315161317791574712908357939175732273069809498720113750705644617984382772361639911651127825373596360009314123221289720828354524091579567028948475671252076539825226556826769759402723534890785452069398087322130212307513269095937640388301013547719667469531141141002068906051759165344371020612357917722283836728072171221552633892724395102680200935016055092807216016218387082484811642693728330981272582349244641872297114372558668323881828287885533058173510189294263489602975692071253387550127699475932668643759865563283824320357696784736148941439044142244050132248861314615466139793997809658892993110372152058067114197411517831202981819803940968768470673427488908284794968676048465915224790374345132481606744534496266702682828270491898432725077815849957230734241515771171316294863312066238487252629145264831476968768458898274272429866865973757881660298936550081173342447781821195937635278975311774908001644858804734490722038018943944173533142359722481672259054738279645836301878957665368966955781358852888984763169578214079583750796829561209134392121561321505516548655414917254091021354990853887199020800391287778734089840872424244444599511522600400479217053870024401164163989203107767554591966544204786430748589355574617735528457715940442116152298568021439642266393206577516739112481314615618853828901863920880786094043047418482456049691558543236479753178175974909245122891423759858499658278492541961668485094290068016920851143548245707387092597808508718846611690733495441866546519639530676700305529156828639725178884950381947975240621873393184346631896825898622829687533374246346100324740376555862035692272699806110688105410679618570539459479330955813535617244036760849307332517301321047629239818064518547309508968271664058260950166427397534344712799864846807275887014798404973055761259514867164936363175915792309428582054072466931141258810860263776231376984007346677534343844270765721920556733396976504447815366311730833419311204876601719446829803913489010861371577259838085227548472158830928614934231807770477611569512676175249353799069209627589025692946076070690285989355841232740809952668418653081869831127518341375577442705937893287504576526069188100936253387289145329100735304247449980937063736105620463731331035343834198190762969081351527357685698732693724576583084353060987151360326489154357549827976942234121171306951420593363714091422847250709058715283566857620733651298333580498979763831434206760376562791805498860554649378819142640229570675473074235870108612951242822558902474312948406537094194254572883174427516948139046205096028291656976770068708319347018090680316415933597589447826953709797618427008619351313613232729734671256949515495577663073843573716939716980733794814827088474779572566308918877572879198593574196033147536329425148748580741985887173751060964613758727128825088061381731833386878870227356360068956907923113469215449416737527615806811271208386291854292880748661761121366941145101548879531769234817166197597835554728402395527268909510692557734411727425939540191254167099940689412112248185323709492820863359472024548859977402808909473629651518580300279108084017351661720181105275453162281654152595831811760225114236656409362432104507177144242350461225207500250819050161117798878721005132164998850622195808387417413979415535842622162930279946700930483008460562015451502450902968054620324047494982422790712860398801164873483358032478618228138652554701986092661779481014816698370188653669401550751870065456421577846934835829575309798847219165741395876614384352600989137759603157818302657006867315386999995189000726845497727934841080445934505367230674995146806882781559178785193333747956350481251566942324056191872364665506962685221390305492189545995658251184225521779074602028912513674866880047835147797065250064661064643003986960877442449210038177959692231848219984883542089926705112439624828577917121516438791816463618282565462986494816756730819479700384855314277424260089725307111200906659148158170251926725196530287536064870264721795685323004947926853441774823616044628884409790387191174995136108234523692593471826319504896209012015208996243477497042268247717231755863564689838714364023203239504997887272614333185449341651211510641820377317346299788269807109583370096833847545713598137299354505724408301466837051506540466907979537500331518804057451055150268998413838208322048499210742833483638593836684756547816316306819432827372145965378901533729648551982430956898974752729551102644042961447253972957083563807732404855285743361839034235575878343191695502749172105843168917516938251149166365283835411920624330094311414725690155670879423564661983210055955364609911675866400007408195405980857961934102754837204294731854240449054568195345486752022477734046245346258538720042225501953602260448174148353066169090333562098690863886333102604887791477907574323635270875977873054307798404225347459650236107270715921356239178749516607587574187330339412897564438990105048919238496963530463723286202463233106661724672581894845188049845663370332182959473525451764899782121996667409500617535799691997048649497324182364369772384804589406788739511540488668286688311757835538834967140054862780122793654615315869339528646572734949607754152546122952616606297624005134138650176007415767348898109220751673550793188834041709827194704977332998633000720611506877980471695239158884867585435603830419228184233081265528075096835351647933479079221777774605404815977577543724978007371291772181317500938831737877840176618168219863265972071804079370631971679514427082663492169281936309156180597204847801153150614843069664050333006437565936251939964898261138718396516016836095112573582611204746392018433342239336602754965503354553904208096841413743941914160500099507761663467697284308174211573686299247211754332250010767246013064764330523268801219245602662531596516545519243318989252027053287872291956815048958321140720641888639685995680139325843676914565448409572420633089289088133489884291301108386093208260388125285249940481905903817247225225584984099886798547615010430064320295345947443537288348651105287450388413757586659259982460107052198188286128673372017432869973358525318706370283878762658693790589624725068450612103972419221119677073717036960440981764634483158479196152683008423130622665260933126350256387416046583328305141351026737918469979292536996272468790244771084903463536591167336420541158366335359920238408324916899750659153892488191916641804184151598486974870105207851604901793546685495813326288674915173366480732322816784921739346969491086167818069354591607729209145374539885559520694483886074731388551471924503300802654027139154514308110513416850611639487178456623782069682558968480984811837007940634538648139532555449115318375224986776405175101086728619702221503670664984388497792706602840063401028838530146353310246150809478639365266796236038566104305887996896784668431249944833488110670881984714684411336981575135949734437018351266990590868572512942649810584785316908174802730428899254637164836058015369769717199650998833055293910553006644143455340608314264692132856506551210542640101279655359743120092311246858501638807327456031682209695596614422863082063946494970704506428978317925431892588604224375745277132493964444865482273340527922664470313512060565830304141897225982676191469777488578098586906034725984277732877608749310014370660111853942763962951074059932457753354500878234056237846788385102525132201614425400808241287745397730778618202240623196172092626364504157547874062076335349859921334518330191619231094979173923948126921119198582699128288444631201285187593505387144940466794937024031485319232516287777510720086559617873701774797079179129238026427974865321261159433125707127834427743917049380664538864630513040042338024439435142473144928362091883497860007562856688459400976048180843385109586850448285770863217553631365288195405467027633152957443567066255867903780470660329021236943232937633429453624481864287748316587980170376252054711551665711522734740651116932276146099859375329784155908902405610583554660984788290710974418330240673719318667840596736733959983821905066397124153739868262652854042465103673391877388096124091454422497506012227009486688061005720405732313953861442293465575860242498049399772280779022345039913748721139784052419979565878954905776906732862960063131872298606515332107834457013820244995208195691111548025361938330140031244067745987098670213230608545831876652939383020858201006177305096472712765504607476453401295519139538793032823845171438799176030672249298179050383595606870783640755808203421254946622409195963165390827444896300595784722088316572942210762760338913832098768725662751911642978525673545382915522593596365432480518552806647165340592733829172742868177565217553079845253524294357734002296317339148219603660742819442447243520512058513238220318840432754850980517428978564699273371412619401887390292216640231908756383404346329575103265771278280205435151074441524908892893268844416906144383773274247336416849579795316361720606479082625339606759483398072004690227281131195645978342986561550825878282324111231103419780812343124244347159580007384850822056111615955324100493982516912439409208994744777653680850750626624919827031671640977873732732861484680851069473432587463633950057239759104090405550333921501685370759435933253066506517364278335704820016310630149542449394228407690088962288275198489134456262030647949918144324861750723133511010376051421485723849987991662889056986902510994726816270418747459269147995360431616480343697993043887343705600210408008254096912121686898782313188779491028230259640439169352455263753898736787508587603404506587766342274525988653830351925448144595644572297870749311649582226896369963828961232207382858007369626753317633580249526583914081126252826701617870246869591975573292160154857067928383050097660485161912279545234959593469311813356317095882974781069138175453877570216188490335360572334441111636617827867054382472136254106751226892873412779454903307043781164298917963463841988080599949197879214839716941802590409523416183234605716878242688857721366834521224622486735838593457396907294222495371489529542681240457697771954722579111919820792582030254412486953322503920416705121566066399475380945995665154422900769896217672354546220280166687773841671274338897236378056349304429065101855650886368844150539093722058102791648396717742445038277118076815960307259341729386299004919138119497017538111947226169343505793102761452698111278268353330238657126705145680618705183521517980620065300958773521724663948206136646697510323016452217770290891537964825787972367443061637107367833646365043072693296063347072359063623603993083942203785477612844582462003108251592546694196630274932656186616107406500543895370195320573722979573057876316925858364559693474886883393836936651543961659633243075708027788629115339413971091648607666018155707509007832228652945174460251525623016389951209855406676402463509746943355922251704811666864806227441122017716145384169437675776516150022468991201959218746073058340331522514404829713198128183227082565887505632891223443656829760351557107842873144214608186188102566103883462058222574013090654685156733434447864486284416450507461963599445111425021789770925482426069159224740481420619300618885334886011831511760835094732021098013402984707713574445664747751768676534208803225060669613499116683869142218264050277807451423536992822101528005801209396072967386116001210308195675210652832437326008920219205636423161915528827910557194248907297650770101782883402651970162370488775082926846691514664089587192571813641744253832906120588277292531226113472715854639545959611551333143989299562146686790495814393670824482020137347499495496579125396323551911573126756637490617044891168369132559112506908037912734361662368597728109404404446331726225569749544987040913698754407287974447845477399569153846062474331783985995652949397544107273558596024642903065659704355212991883315219569608648507414231586794367665428108455405249524376369350635697249897908478774471385784777871332299654722992239276563414896443432117285678459405163482457695882371897859932163975005073115960982009024718479188074489155665997853698138158813103715321885568024273232001873355368832433422114586958111701151778051231764310422390933260578970527646424890624860424984763947001144421791859920160610127473566921152751804524520844400889950141344349170669105948736912381999728383492431090559284120954349795986293690714915821289737220599781892671561049137476847720512558049374929813226059421576139353708069079962785449447893079389984209535308403015204264620510439466275899006114480860482471385913229496740072529529502950545861779699436407359490693670509261206417274995767437053743714567268806125111735974591718020721517374943887079604005858338543502012800442966011817600095273757817626949622663880711495340545267957469921032683562410296580427923751801230206120844713046267647204531854615102810494247433198587801592957611363817432903107992361071952325382458613090605946106950626458484232159614712826006743307684036662849342366168098365311544672604110337088223511631651763420265227096123803977229941827025729901273186645908485492721585256633957322238745325288285287568145477944306102782534915532429892267918221746226558090785861711487200481681319291833953443836436492489241745542515783979432719069802503161554406784697138598906693323374551892656804163559066785920054048322046183006584438350935845258681219768060941523815685243590676252196794421614158072203584188746198586197837518751621596605994064280556782467046451793294227720614354830786886810411713583879652327858636215798085165183249222713525594523859291824514430940437774833487711222680593373501220067664002951533628575554155484986693996310171100278198762541845492115939502317878196959798769474010804186131930366350307426124600941958403463688307737630095334764236103529997147180740957436404826285309914101337463324911621598385225430389340346145527267232665327649429403422899491405132574431687874088384191676066862447364547790162231602320024770727010377634181707626961498259292940491853823382305935236093141902612091400985688809911135302284961674240271931121936240480762636636912452872900991546089681943149124990496823777671993213472526904751564482680239259242291124538771047349503466397491044233896314520294390723692682213764122024306515275873930041447143061778735614477149787735896657296533553939286332370546227741102778603733273284502397016446661623830730172664931736440357769047635009383428700069503776505517100412355253608050037441720975118904559457616279691749763879886548251756088300239490447464842768536826476972002241203459387694796069797856954646732887048289628511203060299882607618903405195189117977764342485558351295929679570300587055978576013726708906381433538651319942991870856946337850704310925039164993508503909953811348768817797648386461823692387763679008039763505831552741252490241765661091253039657843050904204974495012730567538148663388803548735749695965589791499400642981777719605741827156084672849099454175829620654588502524366871639916042060747112731908324955500508344213232971323447672953343220068545183800178609060542404377576734446743949154906901392950146954427206874062609450485807101263655768735760717101628439721454452218690707080141350677023890295477581810950727211756468385544682864610603083153833059508563572924462681846764386779410395862489806370907151649461068504144553216034696118146092660756237255091715433310144025133938885632008115434279683741919686831307478645785676766896708800047228682792383801310099493292591517632139899501084592538550074390683344762380220804176021955375542398088062482700871178395785015416741616395185355225618625926440101082766130674547128636624689732619260601113947716601607773408177936338417785352490270842709045333145509774187659667102116631203262135201424145764243648209423495121542902323700361623571913660223451981401532681238983298183135955367413965942599824550955933472412715612042034203815689044252974574557931574643388677631304304239148298969334106562230859265226624412804128280410719056019842884869660150185268006104469499975331137782222816740569289451930928902308054316183022181027839996826588847467586692557715970137361369982490877756385616709079358973986728778913469120026873805803230975499298287750728836047468634579426109806798234182657686751834258479409682899339993061759379586116564327868500398081798871812061820501079954268867436576016921582430895842411441834134117746087465895987736483418657794656860865531080830992802389401414874452964831463015474749945492993972120712822430962344191608383540320790600764927613946404951286718828500844786608850984911160106262088987381858461111698931256947466292517639219833289127698746181124564348290542304109661323766184823671728939574754446886768866468404252030258035388671131372668818893750745376315866453681154506244580697501599245384557575948433284590376273669935997230197824900611192244653820439112272840271167297642106329278860579646464826406160513476551587292039157540739674861338157232396227449932443552389282615430233461290629541493928632131659233472162672533550400232670871969432679966170303871576842337959334986944652790507627163214981620606098321719344019541366257184100893161341082671827175515428424198384459276276700962572898430175185808725684238478239838707374791721640155842239254050506318370808528581135511508245629162020956982835608869485730978057580902178567881002784474069263048566740122725295988371898447568183812239795111318808549563481752726961883377121824792109893507319020677231487986749735100906395936281935736139473811840833662352048582674204005511652247330009185125625646174857301254848022895670220241040348686955204054685463894592195547668354822819056366507044501425482535315146129860376967630150909306975603365695273134996088267533625620815465781370274994029910955067002266248657822069172636804990982144105561230255132368207432777752775591493563461871871504873147806641476653558935742375158129251687640228284054291773670777640708959247199241418017039333643229873050947870927767492018117401949344259179439047297134158838196103506369702484597083740189665388040321835107026718714262173764124520632214828657839616028206458890382165422740927061622364878987137299175679718930803886199493766747606902602871700247057111462680413047919893094824842689575058972886074839387355423303300677959621335649864429872595727662866148707375438788475231106122132101061219282748160074566452556167223517946790173523224799615357866391533160704556164619115523595336054092570689799632575605492288022874120991749613989948957551608093401863163440996139763527245486868955534460429444534091926885364905508158151921132894487010927014991927764841844776039209262295833281184305158831201145930132295383171038828820728879842976928983861389694941099186817239489436264444011874851731288283996213361281569883933320359195601946225662629397111425490708148701636964308535136455071327030701658023417509882425501935219420333485935893646344971979382840555161417661048757084127390043218557990121489445308464429387341232974267794227772445263682668527317053186369154556063427435642662075854836113940774788435333199329252461237390802357079511088597631599561269104584197078070169067966827074489814410890940303083980184613642470959506973198935987396242522262681477644129345933970455024770098122774377866513530962799602772984763781490315641813971435655295870449843237023601211100436686189542165888838810769680797811286051532290478093806040220045451072588433567733696498625465873073735697690362335344988317072758176379984624227891238024319314879812934174627506305643755008731816826681945685011166273384055706649483046745520807560212432871337241321002387523579566273794696418248471137816738394750661481706698484676502975189659804463338331443667962562550597377131191703409443790109361773905789652992784395633851855172073648037241568132241633860433314255727375949639092136988973846178070381934337306264549792898622073457906717641023990611689495951615655336700478521738259184904666380261783056184976515367434823336234664437851787116975941472469227009570265437387195842376395858597533338742804341025646154053542089883576126906692220961093780220401545489808791558250942857412406788225286675874515926759452805057315008854027043608737722311890245421824906749962475633996176975720387346752213772976364654615214817351870485313538364160021015841096420034048549750850794837196499056463257831402626188011835239889511315025775244761293628369688120735449835427608070993743311422489544132443939538889122308877389385301168760727907583661992922758015555119136675217321177544493357625870398879527752408269679854229412929237096689609156674594581199302763949314516056810127113378648440110496670475002970675203091673391332172866936660653818768856137011396279395105351520969205213580389117590383138570616734753564564612515624861269173757847900302064124888961079786769316350511289714928997813159305672857539207315218908560702063685759821213406328464113395648688795031863161017928089325310664993947300590247513433255944227698083398901212778117745482295335690261050027105457520271791915423487907085037861294662047203425985517825147504350091586368222078452407426598763305173232376807066277153339454101764334534740712135177469435303230082632015760775737594905807363053025692125556729657432908307202318107781950736120877943505650765034747778049158072498699912009005668493773481565745198901041918880408929017488064813110143250509036793919808840205000213643934773906825296706648961519226993539039030027636914642110115082235683628913802215672272336737643227205438414547007392049804199525013227093212224879086092639818152562798518505119850216203681936178391449752658978267973970895858776616923237906626861064349890353262851517193072177930701357941068939469773694099049119678512760288716340898183377946982429068033824742089490149552224072612776580240313953967904008164994716421079893208053303701292295886599574088772253918490427192900783855975995837887748491330103593465662533331388067295096758746975876763691505423067367663034287606160693586457208174319158070308004043023633527757014053007990137050130170210399128349217346010974325322937747935900858309361947247081598380456292612672800585917567559758530978487698943848218120090165354626245821527093662582145987137433977862132943496854547324595677227838824565756717496529629817243981051002157263126010193882199585656863527383927216466843564151740770537787539633441530035898488956058232471084066714364784527088274026212489249650707604617206334510517293736677614813162950583849720254411251770114158549482460082050620351719292108492045216141943208709516108211037434904361008740291104303605753981335725032602053826779026855547893670648446819132533236994073258062675337212985766850575062337706653227626071190855036851689013633269645885720092088990868857031780564479362558089041511839015442531668655132746925254107391708267946553457455235840693047895394297859337675998286062547832942331151209494760217689541494838717435960865469510100218611212480949112277476027990388277447357763370407482129418585304270967557416828235368740626173154703706268825436603498538991758845118076796775419684499601682805525801331307790894545466731087117590412874565814318695822569283293780785671470254393020751094010140377054374231519267526994387224105604026991456067956631262428868009176085750026368235562505631256120885892953505941099870659271790549401048669935889432786140409461898584053528999630164230800467079767167516014891297004714113266571973962257142215787135472281834482894689588478780319161249951949794861227948180672697284482728320535304901331212509536141711487388558285979103839796724285097730020886740724109239354118328216557795160904664356549295955254393206142484869621931285788642616183508885849419059860281152791172208232811553638850816245310931457208761667064131219008454198777212847590008144337118793451613900961614458388466171361972436467413239908441499830545902893846030074279778104183144161272868054197629830723128389027875655855743612973834192677237942661208940676665484899813013191961140281941026122488553086872293022201498991764893705683331618507610803614598293608764206159611014625324981901955424321472717145743445757649940596904517354864851521545686242471509857758460619825080665268300935326130548139972262017123090693050861164144755549542076204614794402322747236023146519768596069020756568537516831810716775388086550303519485811671931807318507630682140643887638442555144082041707384438910203647605498247718773314019101541747822306256875956477993502181253000897644330401140220560060165977575520315250969633206286263941240358658226687065101927392805295402710145638773795847508413868149997262140957138412947254353049277957265892953337858571031292563780616217758261538295538566125972729401375360649280704168079755010716676849874854040209108601220196218231473188068796463406002905685340991623633254012361710607594008139213934300496931483191985116347821154326660627194386039609618127776156118039410472267542593025822657241934776040319283742247621105843924417240782050587542358388170145665716270410887118675474995213206573844882119083541768429404034399207485714022114370110726211964482870236563041977290487847107491616958195960425795456505383254457965010899946345340012028474251740967117469946218840662377530205698179459655171503337381226776996627441022948128912026413081102995060607888880235419144999521595127904033826946515538996944483576495265384676657454503461992378671852653815754636844296559422389381282788310863156469870542715899558144625520085689603186666246721545342936742323189819535487655994556643616166757840427847239193461887190610844591755450426278112426263778587709989801219704020736739121523553384978053132839793076676095419252013466495512973805160472126329489997532608238760795510177283021426151390497279004071509119921130485096054041455510456274217361161725836334121916564440107223476787892174440117888472230337570169164667089785904308815059238511357655604224874601723295719680528092848029558590458540598717246355262024892266689751954493178040396350242855126642344057013432231620487166158718182702505788344940084618082237885097294553983163741374265698632928837177334147499591644219878652148255762670945169526483106253936770203458797757156886199715768272941759285094371798740570932339233598656790180185212273879125927644101118796987748226295446906579043794059843663582772515960420688141215543314934984988738294116256011243437212190101545297765751967435910314486674702128829315224726084458256244645468514160518585376313843871307957469411436753189036236068713291555142825002069189915721454243880644906832563674068595096107459426630421305812766286741228091282207792838379683185916537384108307667126072908548639609222706435837111116941730256497909055851455583667756677887264569685760178835659487236248879933567892857658508323155118909339986423651430126888134549938615437997439364288418570447140530718596160616810362607202553176437106054797775246184591514893217783100020698728311912229919276184665754754271501156691729755136665810321244004892023898636658390409019519533731212857117264512543939932594680449625479403987961868952719254376800465880462642187078577413666712199521138854482823938263896734496561251786466355670581197144570736821119577327763815383198254010599936445802847630466534163609110789706018011765867219716118174835119874078773498017491440351343181248295948236710303312317725684066744564929233272195173725753343359530061908934155782318921557838763145385105708403766079927478667744577093647562352731384215576673678545252874753951352799272955020772280218315922509544706065096991586400911823654912965898240819197256469782260422636286993631918834098466379553253229958179179559040040462818871514293184724465448454029025584373241734770163256756557775882531436202235043277383756459671801999925618116902763995777324242912869802010971447880186062539473712120683332379339128819260063022594022699377168168534667374093566302909362266835120224193002960232633207347859350503745367958233410281901406493927121303593108906874797228203333760622413919557428264954470018504330157264059801825110542112879753857815879955748639249096527937822268784094458447609397478023341153134306905428119111158869189510765199829457368623714759551986108906188243228269855518216825315955455063563351117904562406469134213276129096413395174167554325361292170881172659233176427109364051264304121721757881336326890167604341175997223864509399608450077057823302467453308365298193412447048466165351722396004686708109249534135592997653954312167667894955240237673309559104975647630284858803651718155617340545361369569098822118332486551360883472320003334749126796769103287385328936482036972399774862876503000193456238470157961868176952228141465642075106073509211407891108145514143655958311260208586312361076514571619782758025340073213833896570234510055090233234221834478200889581578921327052152423194354319142367035160685786150832821319151708057796618914013337787801946396591043082671642038349905212948487738395303898402199465853963564361949103382099085131167681992713300810846669894184742826348293003021478602613340554575261495728004822830631115407112330489584188242607702960852332843789888468568427061710805442713873120195720584686895567764081379808787245221395997196130294894418419463864003331691495359173425236043568263236257472152582045492879587939446209058577860895096753400631510360092497378138019471622042357634404236473403668287438079486022754351467671261737748914025801455954732073249414311687420659266614069054681117109432427245248283464004214434217685923913476083850984567955509314345041786053684980178054333595069047217329851154786813407978847128243816501322764726481996679394643567056405103656402717755071701390046014940838662290399811822619977021726205344648663834022652724795678704260365485758841313434663165698912060409358243924044706567352186748892183801610032035388066622499942925847050734582646354463433521102538595820006405310664855584011210557103413891671532525159658259934907857728438829857740156436271839530704321832852170467254257305830785432641682416183024010295284943063732176829536361579593509325015284602881070017553341572799758730623566026682616163804802279712268078685843244949713819338152344618079387347279403394670389036065282444750677849893961462864693685157528199243363405223803029889742932938390722776786375958065376978455900708782369666587670371730350970020729920578591922114227597626636762104696068908712984166528638366351896990855003629733526492904685839333168735716976201504501224396917131654100199596050629740221063054191670810253314448311402687409816220219522089408270550710521586637801651344003384292008818946869017040725515419954662997840642009680461688907142061037856577407566752998160376288250072817016305304842442201402235607851469238481793261628443697668488422120735396903808278184714830700701307067112329018363796400704543733919211536315558358388623997420075812321396141588733288075642280698955651640820872130745727445166505903781932227736908705581791253477254630185648973716326601404707951000339329588237902618495088295390755572270985453501527854310783997061094128164768787695401107426135316285280242644699748886397149143189861559973164221284658484884070791811384373222064246072225325578189306222276105956325383603628974678125073946624434770674243053183438888257498703933992510920363366610417339644945678312853780908381881634259498878228101105239600101462507101055631226271054039724229717346505554876148140241315291218955538408634894534031168643209601703738250852885705315474889627240224181080337111465606368690156595125934365441875567717380365456931723805363433484547687057216819672944054081665691271602944433668352285181839186427608098226599848907010844029316076823346300403479099202542470534229506549608982630480034325055136817410979521005218483330549402757695490012606118849717729051322920653846653006498802530233034281940429809094940625663530693695584182707958610870524285408991708128657014749205502225171779752114331489990831905864135393817115623705001201713520056340574442790608541885485288758832402794484420361764104791576521146709880241595025331873048168071709818222432922201107681392536057905765101644980563513783452188443098218740074064944171671283205346976272152174047657725534628025196157426446041730195820210324490341180824738741014332997562775200554764617370128027909354336550890044753603076653254925273975972548619447663750903133420677857235374861146870430616628271229779403025518024506079594983770564445231093938285295991782721936362597837460751481350262733495369461159051297269238321808938468815898684064734261813418023852300568664446488153968472132369208472818595404357571168910654969827010014830307343327036475403825497958844809400872938432301462695202706044115724214324615638871451210112329790854879393295218559134166814663868466364975225405351736494980941397282787768842150561322413099222029008533522249970018650573991933637318071714845149618096421122400820294039576903718848896761725411774067904841653859318316588381273609745806852391093510596304344373329547688519330665810145155560722517566967186692848772906706301697355451830596313103736415473337171325223794446446994041161561735560454250157978051801741383048712177452046910478013050058649076510399363950840110426298409629187358407233076566761724503914962596756897844267860011277369964357911968817075294272364148230759254882073758274078210870869625146468189842183839899460685680899937115124884995983190545129726394335159494308149354430823377376613914028115266327589547337651796965924027759562459004528309288068415688277609053954354692976928896507656240158733542494927729803925341352607054105379942607653806925040237997509705324950107661930631926612077087406180844350344101023262616177114723152733013490661200173365241014678124288009357716188047152413126826091575072152032505860903835578158289136201430574296762877756144342961988136212401771181508402592770152002736066280082463721864393438111171690332600063154371931842064986002639962446559093576695249139642989545383802916858167935574381457702404663359595294764713912809038379939471414315173949120568864972458481933958247302669279491430366568371648242029203790927804456280980284671032161880240196687489253070375921944940284673956462011792107763679869857396434256112621390377696292121397392865535043170771206067753920239504160062995255126896275344054786370271826622776019731994960920319959253042177612673464725486470400833325537147379899681301141811013741693435241942737556635699211651535811868366971890172469494023535019472775687524760179531273798217365463296762670677448811181912161351900585274635245139017835077520841921659439548150197937111565373875409285909216346862000534442585905848553332724441666508280035271371868127281927084338060946228952988854793964264910585171398869727007132221413116073765783487483852139045766267805241835214612801645404073830154419595788370901271530683001664719494556284855266516770319932356506481280059435008374377939661606356784917546148532939569297790032630054526463846116023099506541459553867075105616520039539659267221852733605765906982570291885871713040032332013029469129473883935367420467336817802040680903693694464010917976381436016170831505661975984436083649951460777037779211965123057975054959967147851686651588435857845636355352373188880081747747274924486473699824487579343275985710983141667229441456516257158889225565872668042333802951916956139435993993031874573598841804698288354327186116412270186857751334684254152095042743347863245434914068239393965883785660294267837349638792796513868057859335383086923552334012149136828165712413116611808398260104757303125734358884557143191455905427890285648975059765707764638495287767452308772539379481079043224680148157257402857186799563530112093468711646625027086575101475455698995352500551075472658550133587650615321831894773542600880263960502248265226884253213107808765592574823237314024644431266985826987965550234336332779660427752462097320329438731939076819640758442998177734080939071150714652499974358812932746718279588769229429100707572282973479992092286714276408387320627260317511584448406005564438193743313919380560380838852114731180974471634911762592529419709849728845655637919418976458464799431889383933788827651712684478480903288344914780182330471681978445858243980385442221333963567166892298653701774619337158483843026191842776303166974420977509577244693462966112484116701403001621838259403028862743408499720927969937155891412711056826548624933533111711090960449947450668370573169651518760166073186944161327656927683870006127360913716842334014681759743978669996571382178734799811919246611277870343065713042133596402498467809301903668529889470067544891095434447116947745590281890548547866208036054395430875683333800581187914358656574256443529851075658687241253231367188625811548407955231665673451231011820538736396436449052955621798042383764062265793758584280376772989601525199324036294130954349311213953751810500801714332041057342820007490100948950751352136678348142634300593037970352888629080171655518618868809637698794854630666680005540993338301257132118877762751120659237220425649766977667002321300688622268639718513293474588542095312163937975671400748825714658360665157719227569802268907506120708228054542517113374934396943948785188300793842615169284351804000461673058134576046278916933395748728092888182393629793634661898629634085484638653591847528058789665162887070541593837173797743903461436587175990579053874449584712618712785733562406073247884888416803976028877101669521342352917732924671752386088091431796606621474010728209732947177095669175518841030211238096637601992583225642003509657498803743654469948157577922941586267548625002220972428718265212932027286380720539661612664316767393255112860989823394881219579380326884810634574862945379567698585541880789767684746696793765267762123146337730723102698293152321353768523226378326631623375042288070350010872906116165458822858580127172685417308353877471291838406157416499497400011513664661837366972901683437802710447121686275528596635221998309233586085648871745762487470944077737744180970854230419637284204845243745598318353416270174030854613683340805802139817965357589641399355040134168229802382126682567393961386441728912136667485019718046362545982096658236826594186633195688169173595127112896854148887894219979194403701684229895459999937868830315696899870899432006958268074062829957086332801888434247624091220025735535838866594495300704894228570547268719915076203074743946202685118077954348885209054984456925733564720455768042640535734098366234215546233132143606355150092058821313141727499631980409319509219590016509391493792772086558736188305575095721039424023257725311376337031994293581083850597291636165309777583001708153732027294857405864442418538974274085531952275011023280901879158628164109196166340955971894082034484492167275847765255345333130306590400835695173242658531773356323640366706340882280246621436481153387892146162924960329313490664013427432844536389697816434410582624769879599183359040669318991736883694667150324637938319103861630420131757569904112900489543338487456500615040136660936952435292322941582560681642558739601136351597541939363651458730249110792062238750870153507443376650114051476652940527845103977486583450250201957536229049811951441768575327248540883756293542143682101644664279465117729490166651310508042415260420612712962854398335082655324824327050432813743460348204062296342347934640310236905492516901863282447453148289408972582588701851745968622631310821686718586569006487457169925590042644385758838401718969494699277635244991055140755093442246461535616938867900301961686826459153882487539604681204083268760554888425604456185111351269872761502222074758817550639288789598810276876063577926529932869290625952407206860295810653456215231812015749843598413236669883591396863909902993346644962632351924620201391077616076556057989099857824805314920610174050989199525666131344720872556725162307575995682504301288889483123978926053259057150415405262897336842394493084605259505216850565607686776441724035209769729902259356624920829854254309311529686074120349600655810210731282091978405224421261284282788072024584400473983438056368108175250438829522091624747861374276973629269975810702785974470787400261892413091365630120456616260129884084395054357238582140848554478228905935611263625542856068508282832180941513168797108471468196279208801245000920033007628505981501017655224367546857593251574516026938980392418296362521112047988562405957193894148026225497179765956940868253791163260745730394476862432705097923831797157561601343917842160972231370512899540443488036692356141305406712223605453678029799901388333119800358319345257000055136119163169109125295865255100927110467158550133467134326193807007522173544276097809166086627730559617991825146679283464380570999670372244775452659710923558514090958557024419071209072484486124058228287024554952888908345298273915614756595081178799153419567904796285825304123437290221164468605162888698213441854246817751922829732930462429116714572021583411182735787631209207657783578998670942510047478423240007423638707053547385772206308806666800423985821593743607579754493493338361754682958625097667765195013579339587073848384050310598506853442186129010906164730482814229452653704804226997952597167164650379704270584930346549799305408844912127364533536073163007163590631814743735163004285277714055922438670281335896162211359279512815489893904011641640870227421844917764010974420247029679447599818561938732466422957360363697826770303153598797229910191370062825260485758492626246104701699550249342862101725748980649492016115556631687894118312038636747119844021124250195343661265040795422316098922028005035584023921223833090378624528258196951073655285839575502215645263999984440148290792504007085526302428636468449954269811634213439578699295881363717413452852593388946121958857736966924303899169785325075876733570119472564413125957540159220292359144536448025433622586868720672172727685645998184111502734925115283155715904267426974997872470059258248611855408709430511586148818911514836425904794555059644916600886269141317772063334807833068662295149243165896675410366104972416650534675188193100127688527009820741541020006361848521868182733747808068372904133569506792880748069656007608226664695534707575842547377199647021140999372081306602236228162589288100697928389090232278725735587333622564823266090421663586772763649769902647861405343192051915530580597482188339370878934999466298851927423292556400612913212942778931463853093940217102767360423129461942586967210962668089834522658959575164834203272205849636512730857451770402339268914405877418173809936918821968799290982777988676104546613814199709016925502486245481273239669941088066853740537599026905748726357655699147676164227923309993740602189992532678344385276497915806746036050892773116012607757670941600621234255749766012760803132970450258530651371403484201796081226961524652587197401269125132397276886042925793604830672938998240585100877535789111731081695737241518348161397433257026715783970802732209449284896435197456933077270478333788443857607010139816784696449985225174326581042831777590993714213820236934771470216452168512115512045364690109722350022801700274683803128153809093066691992733846849900826616447765355314121246747066300723880299831448675256846786969805065826717198335266446058024276991513425472635275276080837708798570016369686531973611353237442894151901090714549494199810512120258185250192678577864353937451685066459047091047775320519184616640418668788952366549105851894054786299951604381797044685599492672749467453912233747834746730573225869852991207231861016231886726273742532716254373170229672534594904889773440591076301285227883895993994887307169613405988416524417826857493701069978273769987158177572531395473830242447440439967320532371958216170400261435835777766615591356818254040825188648044936116258654263589595382210545586428073597105143442521155088599961453985688659415109739532303958866308315685889149783589611149983022466129068081992618145707655775755415537695716950368478796176490920115498435783997494221090613460388940686068746231383261542580119346256043292935801548147733132290647949564135170842551196215854073500848586453700037312269351237979634918284795596563730901057741397502687847933184019875158113719607689280618351755177920164335607099349844808724313445883303063186522055786303484937419449423697263523218850731769986484770175747054742933407580299425960153224381246618782049620418265905015539430064804084201294036664581655623016746919012563048962753424207984803657323637050939213473560324204302454927203178295183985819260068269163863560594807768042476634256564986650342737916603512250351251907307962344688769914340957860210686838357099400048764206446927603963422019043700112764715021952533138485686911433755348043048749282085683180895894988390157482696381519864237362558784746123430054313336179114972520727790805453961994165217518838990183012141505662588198942003883470815264619388102825113284535436559474970096282907840116632444092073489531629431429699079446653639559067866763541036185969196569271501830803598304686767268759384998776304093610870001918965059641725819995725414586530818551588629420503146132964391376770696081124743039728273995007488673457245065760591939329578664269344361091758535716135664320075563184255495949463667076990776035227893370180715809361839752976339382516175855051600597261881176565158724946937543931043797222224274644518370126192655389863210260966386902150781857151984336235788837794679075354687779136180400969223209910764324662802078408860240029057641229180963611295517770444257098488537278104975723191111849947647586199362707223498808375062854750399490355353059557105341933447846074872694296033604285287521788863209392727471651402700466989682496146658706091649895116118949445848010663672235693900618804834914627182337660710700727098405000512119780867446141979896238796674244692053210726988542065450724937585049030695887973698058981830152467876458198444035684282974871085942742916293201567936333929125516959289233605185956602753300362366830480615453491622314762788785042344152627834991315373806402389546883292118440559615451715985690601556685268230620704473592308018077882256050030215832804613530206738949847025448248600160599215309936242634070466501095873311774752452591412023820578473027089659025044523331479459283606117996603001939601779695716468973402828523530426707618812627533004477034967599215171543718973434327034634551585311608896032492326078067016522473758452802934113366496098384370078147494078427575258336076999746608665373687268444899241559845880001257538135291344387124197914760739417437878490090820990786714629194680854422132925683033237036302174218416606708164819180185690821547170449045815842844147774903261013789820419503847071338390237121477293624688206069471495191233479372029765965041030209320384336875615932991741625105082028154454308439027718565998150567692147287341132264920590596469440882609780715408887767765204800927594200911323176127220841323782154657957363868556832923560334987999998856269645257158207527402924960301242501339097942352718124495671337348082385515939013562516631812711905550592459042961355347843290058067885964343813131348520520526355866759268112459018035458589710651475630688159048898972304711672868180078895334630563690104396995783150626257130778419051985173510431798851877084725605412941745746352161638870748217500458479434034425562662550020250516149500239297737834995843433555468823165670412056435771806157545974392058424491803917735710642320025646251203410478847576677003049186174190616319568304113352309616693381095712428628849996189072188153071801418922368959579343905789001587576199052707180787460177765130310413861200858451507977595514361035568582647195784615025643111933980502606274539706586506967327596428392334991762992570869456784460272462121176831402081752583253338035008474054486256021207719396595085792658719379924311052263689826813191466120457719787776325694208981667739484336498244529412095379271770058534487612141512606065199180428491288768233691646275691070516525918930185070891464440006710586568296594959414492010146246776746575591183178038182584718250002926258319484531349551804292974982551592227575543676941839592719064930952196984276107186072468649943719259937214739114886091288687122365736610306502360689995419255552862773364444866228238808175419701094602495608609923808420752335268598941553650069299702825754936490169582828486181691440877104874217251793423237117984416267339521746451899357654769412078728869582881904918412678094734085172524424131128849293943236643227677205060290294891112514325649649379815399927719035984761751536324426020690645583017141527087083485067844348220436527223900111093939955528405482577545375303769810766846202623654188565058026858357023308054198268218994820240333496813692090361724748631516236680500544869503092840229891828227660073533597281891162063325897763622121831227900738853582202832577130196962407062964720365459458118777477157925171306154767218218922023645649891968345423609899683653401368195883105931657043434407504997048424228273448376705758023942834026032830350899378396977705124316166865390664185736005727926900948030439839404131439931515201882821312647818540273414960463996269653873850203672731506423383326424623094665515065338820159404258837685680799349047365778136360087452825224180341444635997599173015558448268867117670005727729148833878949584290827886745610048834791197412974734442805820395880511104933407972026117841933940517146215613958822331612685845004400816227860395238206760058468267342511932521854376363904481147131564361221496298427957299309491716358896842162956040671570690093549258232323676572283513675699606978831194829431060826448438034300087349168107285195177011576945729135252035418262235196831337785784939834196565447236936693568084106487454848301852197549875294954461184541209593990947069092389233669327002215600507649800423945095408389845227108198317800898591477287102181491217243424505325478672370900925028871338907690039503734428996551040253223195119057873939437191139005584913168733537276997747852786026176421766296703125752669838984463090075128240201271511875585702557603563650923521464357122676343696239880853464600268249860173389193282073184025306749994104562288187323620591746642686545486791008552559363481148958833077299455545992219837061784602418219428880654261172317242892217440955752753886859134632076491192671622237602269522013744536699996057502336229070163430439669485173504318791163912057297842917562260047487587773097055662993479657092509972924406819316492930539188989184626977699137760338785558835383288591619786872592113208662619785199703677521380574983466785446846213753886281901260907697394244345029136249446298523595009670294449500881827080075657958575963403563723121832081797397160018433609934947814506488563502780000389165157864488800915470028432599538017142200324938480845719520343840462995403846899268498557767693023107885811928873836143613685688152575307080311796591985304646780870507200792210172215214918128084975909155335611946870670801636487840327082248825467424077762725873605310723355049233590282799709088272950161960997536033548284024778864226500855092573030443529958766404957145193763194074337217510318721957615806421780207370253128114925374520400661814565066231113513781955670910845259074689534871985740384978030349749269111293706719037512482869479520987310101643466531341527924766174021491610371573127288189843001430900771870413903589409494007252166328310262994712062203766513198398011544254070749826625512564961683467666875988533823590896939467373095339623195912935550877202523025062858667429585404568507360908300703836448282766153976746095473205296384729202452861173001317853590346395625972004447523135356758476617588171849369111085423167900039691940299825504029505749422886717409593181827096947266520521304169576702009317863505738164414770246758106658323067459248097874534853055795924478385774552202971526578272421423153605087598171407562838205354004495772519368630560207415896535941451650872225752922529635196255507150432610342996607723679625425231492057381822346980808668160218341593826478142638050618506997361476621487696591157193870242618276349648636591308444133471407753223875960365118740128643217943825760458278924636177132675953849004190730001041224137449829578070656243321713739425114495013270702150814858399660085675090197338583350720662854207326719613189088308361377727981785373621544865394757530885528670441429370988882557105279966211892421275318933725931550862473775946618618510054245349175975910245842834741257465434120519805845587368373467344135169337237530224774102002583152539090076440122954038587578716388617532750934390852551536888305714475693258527487443885766814248364169163780538197695520126734346178726016850144381721086370147257585318037256857049112086345673036595405527769020369177189427493888131612089268913194128573300720371853801751214481169775109195675897398582840592653423295639895499563455106860315016817581406191869609635447306824462239954113336272256061739079646191996016657489731082485362981586812356186016701950238886768675576201484793091771221885374154240187189302480095168036398543735500088475485762358538126881267956582679393649907859975033581654604875030268432085336259846811840802355682110095520668437488805509291254226674903879145297247689527566813980859211191325705277938830464603209511262179799389413495342092353193126057906588072391095365782475845294062148488664635339695559959835591610817073847678506810095932767833914921121513496655894558458661812609051165773910399445969441001209771573440664530262887449589123380718729607540469014549558647265868438826554529941369784936068745000154790014647455525084429161037158753071233252542452892151249247777969791374854604396451562353586166411774729234420319377027852873752058345458261653353585571810010878926271139856191451366316700456664866639363810447493429709866573856804663318194560495574038829377310662377463128449256818998431996810483201864052941724375035508073110614562552376289358503236233023313575663027722176361498371065986183185139772623284245705735073520326121829619448623838468203429318648716821250169822413821840649722624851127363021744057548314099799093354448665585994827813941516199474986520837579037406439843357946987680886768587717644152784356538718159389499214773306101459787777403516723538146313789394694860289677850123190486878724076600263223502315990633500296551525905235815308910475652205807109733097762125092314943637154450479138404744096910588327996955461374830338500258412866544969967567714728293299768600769050209326975399966013006990093181367131222962807877584335724509038175119239026088960669807464725747473288917965996674364666952693364283289935899937777121242776952517848876554362089578027695549465031732026172282239033764168011079469707902333177905414522292567930045075749105533332911266497879334834162209377749789884985288888519658752099277138189130524147253095790264941425621031131695661112957781221826001992747372875799706384981518463069206294912189952097495583992299300988956211107976315192734399830967849920239028212073308031155107235195928413432907804777319820026664760967197481946035266374900716806344161565666991074527732716206223200286577408867597164345489553672889969630881776595655841682561996494221968857917720680349667913738224095938229328674082025420320596255066107195543515014946822947764881758134554366503767758527651734353862167189058524234568369390388276741405689884085742492899112946107418033456089811000085673435820977501741213415037148814024912670772162763918659231819037027845423915066199983372773054300688086334779149327461440106124377066252738492372765798676968705997167878187152173283681607384922640074568373187433430190129969916149608933158021642024313845393584832542384516747151455920098799476202194754913413556740314716101745584928945668005783015531924694384681363182066328607099923224566809960389336573205501029812517718580853765644397670614940909474682898512622899369345368597454857443248420138182744207323021051419888402672705172229383966051115880333804139424920799260452026568890671071392855730649345006664733943421072673349375538113375221718375129849383916562310600992851628759361845386856419883887764877133464262973592081698581287281798001987871651275624560293995488313372440039688708547665724055986408103557965364029028896999338266194390091549649434977466203615300233717432841095732737667812402314493020187181318382929291727001817226561436928355994144553834800161234044596125860185303871487733774128773154218343470883525142253606059440024130065635650226577127065056456186653456746395468778458723711529637842497967529697971816897549143084929863466971705776510596933226179215622762734222629891160958347245635193840945996308011092212673396717848634229600337962155104078233417314908513199076426983281944399424889791530476326945623179936447856665064190268533886875407764950208839667836626093521756905514885079146690462031630700090933938795517873899611691665905766287638554856472536141196532817148165261485503934328858390346658226914249861475747947312936979785767661089154213167800418528727458885149754570121427152885321578655048630577599366982853293278654141312097593340633621895968203186461050400463781228205555656157146830313031825042666547056001009736215097290294716073945328673633059415980045116795136455890299032779470539317940693788951083490234024680860763283126089733421225063241288262490928005007580192776426621371480249662741282848646451674237182398722777109274315560846933580525927322830828907616048851269641388645511019214888901372951214622954523161444119248802002758289771173336203059783514986870426423951635300551506678699467160130565219161405764243590968216709995843516068208534259634435080855201608893423053347674641517328844340717092353877479383330564163235662164497781189791801304399158156583278663289571403086128491865919270221802428264563903652892677677581687852182364516679073167458261422924820863092558420582983573837612118412372552849503593268535364489183259509137374047022008448498450291897371597545036028301780106095195588505690712490166882356755252733232975015838444687900743796971901638380339455612733745912148864340534720897596009591127271858187933385176574785164768203811947778251176434935649044217160605641119431025361201620363663261844052126573859541495793235309697615794474054458500464391422626433883560036850830695971358872867438997589771233960541396080208897752827489270059681611249464143140747101833107436906042389066718996902963985563339691486445057220245866425504539887294577654075646115670595944349804329722157851943498501629096001126640412586512192416986829743100816430441970339317430854272289645042725473532978663164802245186980522722378301357835508837972253339902367473739457683320402317889157495907195614175690879394473875472404915751647084296203335255478302255593450668804421222680817917288068464190049922559155236829201653992808302807455832655635596946123222661592132814656319539936590502136130191138066522953674506701212587927182400467815594995636515123122939060309142999307191178460269415004675011647114465842167534226471510530460955704965088198511605521034737493111411597815518908154369981667992767715251808400498469934564756099375731935752398536494896633226822923748738508647324239548201861478957753453271736565287131979064096385382809131985965972336743435677164487845994413128584341565394355752001098590486493171995608540399532272061800310930712090943703378750555028126016864441134520909466788206745274633407464970280763062827101870422810601098029413921458175781693361582870611458794716736594490652230267375942544573608502239602839164284130769870193648450630569291770191639513320675974348044492283448358150947853365951949026990947297097950723702993566140128787469601163080196124554794059161927544652744160169029215679656604315167468533976563467868781623401977174695484833707213230486966230169116237722151216180002712290713632807870286947038328760969948563132238686305973232360861544985041483695114353571645347825607736425493495808115349724885947501531981425697187202036004011338389106953750087778443985227799813814595272809817611960818088647927916449926157318484469474280451423222050698481289426461472040487602237045990463396483167744864762190728454916524009747349815379358410702074933644857216539154916579484778380040687262671290865783208966604013061827807327434004386336882721628873313670737421658669030522298175240025079682446376335224289939887973571371582137798956390967272085912330933023907957988263923574076163639376852373140074731096764527289983554773956071785508305207440636219864855284686604463159298714655371887307203609777102843838078263371705256892870965717580246685972149353991331032235572793468502794524934932870201633365898048925792324515200150695003005502064344462082483598657700583254232978460791987507104371967495289086430755870183063983264238453311908861160481167868148764196235468359680434867181943999746715733051463760402364545316815409971767786736096274086538927358640909969680098651954104885566041136613990561067964637964106117362436217003200966140169440109449891849339224535596134772731563902371237280145022623228424028222652379314573161604366420750338476762715182867825309638377604259004920039485164595311761014658048306137369273244630763751141784785224410891564293455284856995991374629687846022234715686961200278302822131008733229572462768872964216080931993838269831841759995275355961363194579704664195552646703340580601283932592388855896645809316979865359829297766303042249741302818470678428337677310360309419847410979797343518094374092263114069948739150787595681075143947810272570686472192519761907865342950219170166359148984500317234250073210737291277013272452176489320834840329618792086613684624156297690608417176443430388146781083267198460404503187734067591967469464101155225702650188250752626458728695712420703832614723181793246739308460556079458830587317232118812846982162810472660716579205250657410345192558179581318564184598033306031290557973625085531442991331525481878540921998910737779609793052697177758338824878334624696855736929812168423109102220774944709312849115226242882726261594257731698052870928273610034987702297418302355419482459855387011627115262380222965483166214493062326048242628461576728628098906292513571794052896674748012829595719302398711004262734748582306026725574581264583261274996579281231060889440939350904194864934157531973360071812087892063182236066810527780347336484678849701215717312011178817703955181864049227618978682094323248489044292188568668195496891727374478026104454651845293818875717422847228133845926703175652305258378916519675713572886867024509998927930949004243373205905729641352353579880075857567589204139271598154730866677963702252207781289071702283304078637691417662985129047640644114285694889043061557951265225320411787706934067791724896782990086511979961091358042474925773729960873523819488526227851659736814373375013003255351592970441552240905694443613437417138305159068930080460461323075312852292483636720655124049501999941623604341962621693640494934111120887341191638037924043203437020095628030214951041505968931213828827918133270174055826969961273283061200018625814499835113388265378616683018946061825524770575473765655016289296224318139458567347117212909143732871963938501772057427212125033068135339707570974652059507047755882647011972834334531409850871154229805052413593991029023432404698231896323644342791160239127689363565509173967924973313904429122949681015417610371507273152741155445862194090752015847126731073445964828959671690735269568129756622616038607880930088203883932655542314976554936924138992578530500795310957637546273842821128724888071875505743481888435204802617285143993037473260768621131099115835264865526954173451328330450875246595855488010886050997076624122644368498016319284754164232165023082053933876803193787373364785519158281458604838415261335810970537942525798524729088546033178610189940497862626118876250002398955002652640347031899288394314134150377147274549344947027539199568754823795019164164102688414542441864957126010069538670887678859241694307092544316484565290432587790885962478188663413820984598361860319403702698563535856993398498174537770884637277053359020778061132467210076342479210101296554218965918296807534470618123930550017854819960325494675115806336082196166950409854146074542061473907346426143089493779958595318737821036047161696856656616913049488717023736307982512268546525558606784961504249478564531365919104337722627198071131887027182798685254992454482392776742851961295033834690478577740306686794858957239776644165701832454953861550170992801014750155801631402400041966903953038134328665003768829840429823468388405752944705615166369510632574834646759862633745454348740669060284842921637358996238783491192924082549390406646545520554623724380366553669375407738636182289589307065874405357408325924604646772684674433968593893722042682641241270844695843178870992603440550865093822219079812968205194669028794541967012646407513989795432552898397424669149076202827002930698022436261473677129812753931049821978701119805528830645796977898979829802232928784675565109054456577266460525224336707928379984489054760043905214036207304742579485918142704651666088563944123819059024438988743849301281362431005847712605027962497317037131892152686139132523406022997734611905918768266875162802117680502920455011611862190516844615787526475711355173718848507971951643122403550918156970439059570653828694981841446380440998246782775472866886992721284078383817259793529976958451926248778750941576497287122247784427518167226200726654792337995678214922120816737529529770278264500768623409393537112638962565673961821962694922937611034253257688356681856904441052669542501022845637854914548737130750443836392667664884440160219407771875768670119050729109909460635798462618581439867434489952078644878654168625948424592281714321914198907125395342865018156964703036462247607605596729743472302352780387717829570339673441618763552891380247720632323856939895227995524592400569967638302433663992463902589336132534856045732159612776301900616633393665235704691941223532451530093156286549254093167377982659162696889158992014794604576853709928480131190191493728975440883491055144646301347377560428063232588424348025832579456927552321902963746859725077572268148665814639216509775536230655867351552229310926886458935681079804433879564916089864040859802404948528294219505072030819554683507673422719215497935017920808480605770010167958405832065925961396481182813405778282802035895467207518135507439721893196758345833550931689882364771396850040357797495407423767838040647990630148861200490343958459546197508518366508279923939734342911789411122830081505243422309767102194044334714320867599432566801704275289261885941493538006608700560708232060149678182331997140236486321275220093204754368832411625914829336494328702266299164760017137983216598835997741899744303101953262714512295701454792277725436265431724978317624882623787612484097084995343791765334936762359204220268257860691373007684734279110066055360810131422449904193907072854028233530734074185031690775109791992032699163732512597504749575265309547175037870233846744880252006030589866560097428591716509199984766977837750942069399005166911621722135677119149904080327646103835845809129863325271306168032133590725855344816113256137176203365331814197294008698848320757574251131492044213281518859424927964678352771844315726771383125619127810729895960994567779615034615261316638639447351845348573268914985503638849865101349618402111573617669189147187779215334097400485283770210216833655705805352159527498041206082381802121181750515635394747097047328903557601471545278287145160849729381027627421393768440311593500292825790923101625883051511981108103706292469679167576324704673050213757712042056398851664144229968805309328337547816299123025631432306750274635231119863676885112133279697949624375809698912765259569098768007445716686700149110989915829880199150059858816658306896961761774783100851697953675250210295445075273651002647395994345377737217094464920689489729003610713923524074737302159175751651315923018130434097111069670483694939280593450185916344919139259405113284630706384656978882716285266972384643289109418274792755091139335555901797311607146175474564188064760579412100237966528287120235926168651783679906885097513042796194617751138684125818258993000295576546807262389528422065431163404528096700697467771031179887512303881305089286277175047450301373594559135756936166799588958427338445527426111262900504259152931079575006099416730236228227507827468486611952491770553382275765190288436628252637233656462769987140135056640789650736425636086563786667257310104905552278189720471186523132755979641166553752188755197429132068113911398138410243086999136107250695649502071812874743964524421144020556133787370335183678152848372276843842864619309644200012372519241691890520881189445769853675695917375741271070946038028819374783278279426492706369746051123259813904858454669349883232112860260070699236033098736522474667365671185445178409251692031343859354877113395993741936055384845596407547217485022007416191796479347120752493127467257726940660717540093022576502140399090324740263423935950938449488521081081462688778880219989891107184208430215415426735138880328430102608879289190711909536831150132812989210575940359981967923123451118493040594558613477780930247306056295959148296585754828080054668622084891993613905441305620651308525736435679141144536488196825436234046652039274084331666384122543383159466434277006402488074349119332019267214187961194213903781666297645739259137599067149919088251561788021784974062580667637381440077392439933327647218361645123013731845550719487626405086770116530229457497976540413741080782979495209281590322667708010642563680781087918998508603264597722055683089972907078062026063817103145733748562675610069828408381085364298577960132863571667902124852032117508143644060126043064336063159244256285273077111250446624616945047472028957125394275955128133738526526416858180440881189851294217641567612140768581863112647117040907704237343786362748289928947683971143401238027103334343656376517966601329148476364690536365047899333450666298015395491756410114823487177467715532497720247239459162401561263998970528910613924730800768415933300199065386037703702405656313393753591815289498164255502189472796788075264081456169433652404368192788722153322006710235325111918819925932697811323021702091691557374591499835259123525295187083822978828157684876414582691214378148716288534740304892204824285631309405209599598640012812691144707708715210917134464634086418053255569638061732628951741673601106472701998165478504922899928221675830251886576295144013314643145481102780487094486573709405273442401258529469149583766373269309379555911029424654012544489419306057024781088674553447504187334098943983822887140394076050511977306452063331358276779782426942181124979828441684734151939989918440414114060518233755947057041531747014648028173187045670993168993812604425572542419699308146683944092752628245724656117300436259449111922586102304540544105642664751834860018254398158172585274591569416092745338815545742270602108173265549490263300835635548574395972662426025583285043271381654923434398521740005071848200981211781795462119656916295837570094781938776933146219072502836778619473244156834640798355357300504709208407189293070734220980383738086035682124172124016996143113958237901598969481025386956566544159327087173398745326306078426411718755635129653594727186881489906838793629712494085503583276130738041619263102947523288353586632177478288600174300141691273544636576466180649241555274039250385839701495574020967659119518350442350624769891341019285744276243918262671871627385906892807045208228623889739139959636468523063988198583750391645031204728666002720831780328155405664106622996467978439076211833726219709114620245102854797522806513826664671179861644632124518909664276020336171238762030224071652533593023800054162820239246611782017577381621847719732658137752336620487325033420279185309599342147331359884418218581984035636640236067192887606935625570412937968705948326726728265673183541485554875649313431414243150508729676877751857368183563654836420379429549509965218845599122229046606907963676624530618668242152638281405898067612623825321736394296350909793968030225183628975974198664700081794614917894557489829684079977614729646428273130535477051710291085651671405937067789336663758164605281678533913178664548752130300699463070763754311928302110276556288890938038877959631418872430377584787754128336536327620535566991485805753749254780964699947166695201797418192532020066581846638133240811977165259915452988211588966589243076678040037784564180124377489965154190037714415135687663031699046108183930946039024819659821831520117840886477129344312269047730822641191156407896746060097267098994831479193715251924408074222023403149568506882219870013159786699418137519862301141434588662389114331601845870712145740047025514762417655231139112844426858438137357259166140247199988630605700633957375573622356049136477240130465661306541675648486693849432221856407388300431537475299149278920204289688918923721902393710050008353601509871671139931992823919758497636649058964026268264045666907853001316500268934177468722559908340310696843928008709483311422185825997451462985510502142289337057924839924927698852502444476743041010024682977345383110493119831644932486817953876691233214136580584921592490189418876043390396572139932676359693171430434502651805833031086949404712896853544711368752134191439144735247321630785399535669997731477199574514077687067417187995224866541730622412454341538163049620464996716300996605580551920987407167989556757751749234262819126615294000190210312455322282188679642731759411296442658653787269357717707869838574026138762608832286210816276766294327551864599728209637172421752071697392977840402782653750080677359879889272817696828704518047321239089991451730112507196637419929603889459278887094355394860973908424086134993932103213911833408594882916698652406188213178242290418134192909231219078157736030886286779885679794964398150474609192199900780504651171730790986088780206598594988980222454085059637448015505982443838796579780973658204501194852308772757697563168390328534670702935795001755870128244426715788249707088148299279864718780787926153435346095786068516266010022932172345026563591191487799198648387157176292026021977492207593294807757076296793581447731382316246185502417092047297362236744861806482306028922783719098761181189934328479144869095415120334658367665511609599947227567329054775974195596554451905399836816047676955204075967845574952500576563447505660875786588377085436416634533612589070574666118575911108428823895986678973165451827475962586358121917025113326179338254690150050555363865609509970656413301541733195965922475003615436370257212095815941173742162971604634241681630956018241409521838452977651521401757854643550362818998915125077788501368520487889338300684662398993172552104878604322965670498941694563314671740407320098236119701635800731684698727720294317238624425011169607916686171612865833154679650414197042641571226401433353794865805609804264740068658584200141037359819184478074617532193591036312106284956069858808321856932588851136335655879007006039039051688532860801134762081555675775403057007056523954122529280050580757637052516993087764195126891642951337260284065382694679192322424742737087002450955602419886315671471749290621110574262579990521081525897284490800898728853006730094260123694371081672884580723844142624349517820190522474039461715226113072479681603582852088306265988840882046716259183612516352364694737965117756465555047705406436145408945474788975944513381827566113606426921903639973546499293646182612337396523896822589441602113052926865865520681228621358834234688077460652175675693582660486081180010865588549976130574267416634397076949561403871012489375360895146422859371916777585704698757949915461143361320170613257492245612183330047102615121130192489218420345189737155132303970753346591093892192571538754760399959608199771781204365355405948453387975846983035056321784270179716151065611607570629135348950910122976594864620927596404992076860147710295226708155549947201876526331734628086796725431602343815127717616002264803932182862486303032865309231942146638314134005024646789413463873618951270681130808400444301726619630848260820853586029640817607079589120369802863832126474511535824328493450726418411590522204618268605250236486544763324657356061055110995783071133700277640881447152427590118376435547323298338001892047704322785430066980225800971113225416764785448400458371471664755480859392639974299173600746401154560206836896891711907729824396042132478691585781042607687343688101783743077341363415793305175645128699234372460312159129987601382903004837050608932034921527433133461196772843095551845515629330673290019448214866694844288283922936476815072701812249963059094549641414096760154945050777775098975493085312845416728869249377526117311015757766134310471361668845966472739378694462740492428322601694487528874224698303532412817738898983514254390732325950768751399438115394936841122260243710628772585562383541270185367144370603468869864544704984913645491308436570400620524610323477513681145947826257007240453498019113635476792958392762420231566786531903627575817029501579050755950598019483705741123561866247180017006279727367502065105595268730871364204772535395061386821219982616303326472127023829053726130204847899406736978052111834986689107346804105141351307120259264851731739633025177641875103928594108251981958497518058772870664604738837539055418098112435667148837662170401752462218223605097665195532302981110420782760567048706106296072438890532912319516031576682198489911033545702416057745190473281330413329139073602382182496500413510208899297717960392232768574066400651220921678518036844985165279368095667603847487202675081017249938696733534991136601466356960836687445484727652904758797822708110729264856729566650587436590274157441949848180904021649550739581568463971604176373944972573562103935173922766363116893659067288021527740323967040083218371914339230521271723028752998500791422610378502748735738800587062098958648207505410227609403675716038505349155902784062869606797554161817143931279525711334870427907256810762271582622650179402485092017352785829726450494672729452711004553308503388965515682676272941417330759747354783098399583803948676760293925648648667099701942042325583927674291231411153312424094412099223859352286158518329652122088566200504904607277532139370835725971279776355032060153923209453863331588554402577892762034670063640434401107034652941024184468614433829411684035464610593905927056746465317272771327190468924565019676943827231105707982406957230456872984003214710376194606560209140378282260601433254500851120931685485448985839726890548858990770371715014959595299254928320851443064545959770600961335582925796322907540335948664696417858339754807459031322363283265486893130579697940400681494459045654926601108801915108394941036145637570834523498143744829958969728828898208294362471001036151809734229205930639993162525360383972034397972052856600533372738203768225247120209875958836790352061648426169219760300494923294880804133314066432991671721612464299357432480747174713723344888948159840151996354470062324362976972001786591320578712263490855447204486788969894801601361744885234781622149380916165701104781147483119605099093677051519826576271422354413387630201802632837989014084441065645746728631127208806591515886794998387227176922267165927382593925517494254889583065948515368389769452226360025856343283546379310589648943138412357855559805902134806768692120736150276094358143217084695405171644653591612768644646251894620751188443529327784035481727790595400437659189537123696259175009033236884306848732159138279663335759267666861576323954296702103987712829983830399205711179066138096933549726739611604844686827194562340824108102481747694402783696293416285443266447993099702921956801380591689712053561316616749304007700095361499943708185249126916600867527545180657773491319990991203682365429190952445028545223688456177307922183816490691982991715635580838629873977868784322479502169720173088707208259501048034222380373141961638016926856002736942635278839303617666549088528710448730572665095286369687610261154401618333973219104237349186181316424587120207538919035918218382882882003501636271778377992624428148977285375557392108354297708693076244711575188622020868108061468958025650879019037399030184233940660926176321476741559815655849031369926587629363432576522550384114305929925469633821073340674669034572115226303156893886465847892908409627029980360818751837763243440463470374104898343019582650814945495829157774289819726681372594700124878024050937476304601260597042192132866357832285109770777495197483369051796730569809392064575087275370295166644797744327677844627544424592099908204721274149711275940365388663998502557861527262081431236220161643579448629572435138274854906101883904507949037919039113708761618789089325009603999940626211943427731293942380762136434250428941939839654741530186131585826294890875735904678972400506310782016437721513081217734364491370295433217821099705208698257605837224343547966001150798256303758751498698818795945654409186213057720497617171646239626626409702882520658323782708933201565645416000722992933339745388394495589414358506464387701006714068691692715448595656250326178945581853572721141471862970757944841146891788023037002868570255577620737964204254806426878999471703186048017869878021503087609435599828408704368468784530220933008393096091372072957931656919788524534673729037513529897394597698578699894212742066803322293088870210000702500706032909717630318057191783765328808075968153533001307514087604833924253646824842908458453324487248056247679889152796322998351877353153690200586661758622520774927276180749442138978678127256606846694874450768034236798963958515861616789709801838025482622352957764182127574162370533933504749610766053461102620200320218536514386355388078850612052831325428600826599421563114611935233198908638756270841698595667818025088925379621598808445711352759877371737313290099827033462516446501886947471440208402431249767134481246639858961920049991325743910030817769574774982629786304198353416427414021498945980713842009269225417466558210701768751163770399527282605647370228566734931620637742932004265784982824595442685714627541679559288704956103783524311148540244172138129318030817201090290947738223514434541824118363843849341757618996850337006122766637796290289725595725138878729954901451367929734542333824311643401698074048916165829933630390511729902665733129912352778166391475208857740993870110044839627791374464250854960916983382885257333231328870406979914529399552782975623425444504399283947709876179691275279413320741749974060414497877279367357548373077184603359681524659311293447615683682348890934738513129209048579232761812837815730584349426213658059102625597243954409837060770236769646058351707220262826980605684006997664671550614453710485417328654669797155197611445054283820132065799511479485400182492984719719613999726310347480564579772473374323274961304858704903111446285848968721976136306706842084395314373858980975473693104803101334488728779639613963560713592738963123186415942976075202591817849543299472245163794479275863136002513333607321851342078761986079720304314780998472462367126056771429096723831622747675665417670079879090369530428651481932444557217187392783138955497031726699442045877504832338740266682810221107750262820551501765640315405715630918140401768555959791738863918607863678661125439529764657488225709647714139076600064540106523315132536765322209705346967146370615143406333014130977576927848847846194693623713040544784945428294276329817812351892565585526365786753596323474403192708139171392970870942302976422462597727148284988234939570372492383186337402562475867681161616952626752329457873166681241559133729332436553958656317189306942292249956648720163640319673934272092559735954042851771603725487705940597094312574130534690280918508946774808672871448390590832629861676320113033420556441002137239882798631034778244083591390880347642255568253496713783529501082926462343923643787278551250991846675616072096464561374718441896971752354599400684337169994379709507401394794979255442659400407624576279441014699864757934130811171550971937472183930091971827995273044940630840161349822097060838498265697915603518941353719616789800993674679670081962824711446528390963097989857829542646015890618820340910150117003726108132399078548059873998666498215399035119055745222545628625169772163833699938870892880708150575591430966459461408433775482803902149315031992399556193903198860785425919316872386915062390164574049834332891407537354713721592289241256289927394709411255125215256879059758158783942876878039894442638020226888239468188533447317119467474774074599213608041320279188429939213037661253087628845506333127577093226569791229121475109374811125047535038427827074790398752902710428317684497101426198204520194134822840125437664176604643735110955991190159256106569742747470350659582523379179943156597907144561815754832081707268066533866198841494285600284538297494334791161114653734998578527689144366257459156008133029887813915297210768404994459898763940462864987670285839815027459853492305564233359015055658620345336993042973653134224480212417117680717461530516551571241991025625658364787313824247216762729999743137816876346198755216832607716597272904188921632999167276830320839600999126571349751601597915565870967572776215999062542345590633079719411164162862697303669066339896743915132578994246626568643783404136952375049712486288744724843723175115057768845123638927016604964200015422363631062297125003704113099881618023975022594560583035695742422155454435348894996568055055694515895688902339180536876936334413127380634564759396264242256274927079600844007156090510801725651202209658446419765053346106139007412212854213966510943915538951007889094230282749553825894828782439212055282097026309349078693488237874291284219727619678179112632223886801235789101613654827297304509023727854295488962854225124283002318751596918639572708862823840988445754204962887436583747508703980732655003869793448798246400103353828852243592498044718509271906836771628665489399958088890697986475625134827477116645368531505781742195877195891559859460547245094856788401116181329962656788375771910949372880154967495861446135950956854195102855689157239597771946712661464351155579376064869383970634466736164031149052970741313706211145600795685431077966258503036115033139738524777388879150219967499272056871240225175511523446973676272857289598950352971276558985274527236339288251937393205214624560258074893723937847902412505396425540761448451281060141083439691523712665316528743131703284845640537841309057303895121276713679823202303791332657453165353244065403051722365307917183175198564059298387654968919285757292290489495024327990444397852536976082005753539664921303243483697109822280346377951676623193482020016319848985956433861428246076272758353790990118031352172733817989228102744625286463534638610449149149508798746488024345242575598203505576026301441881553169224273331740016709194697250265632585587655722567522626139249126759485489348411518415877906464155819786072775987767189867608210413346408700102920071512387317060807657136787488330812428163189144842117901820829967757311783669233979477160534027564189389788750063339901578457425197004932076554837886820357268076682708852051449447177008941894933333176268176065470765312457556384493626006912642648250878382479213407964077374305523533468094026367583878045275424791636656793511732693013187087601692505854066699472421792090860549487447202353701541090429676234400072138514501181236196794367109126908705982380586642646490417990018901107505788983565892887414136798042290353937753750814999612827997626502742900587442809030717341769540115048044123983880429305701868625580545921110864456542017411106258050641826331051721248316620817121084338373872489043202918577679509497272236650123451266474368120665422970035655819338966746591909571679420024037979003208816955592378477090121066775368651106797661455523586694879977686172726000213876058294230879839519446697246675662564016720278772423141983442208548074530778602099735630609644223264143621715548527084473280010525904392461884640028732099101501390565780108024380739930267292723504165108426722054326043914802880767845821390114591703315025237144888793953624169693536540711151013504441612342543294233148172101043419435880285078410200100525099137212099122603008503062756851868329536977580106349641420228965621861469342200962342915449455683218353563619819600401408337297480152560974879569009454461709591384121027216401301062123758220403863245564458249039999638349552015274946952480187525230262554640642435551852527013544509503634060996870925793656269515822780859841149270158752197360415888725424099495786752943806256856478808738004010439164081429726732710340898918655208256919080865143847482559280783530988368007288442851006067330696038887743202677768022784949567788638915476066463553578446025507827069866321920003258806609663474680357596497031122893925052292574975726673287634210542106888700351634597730480725599761908151385860686380055033153412552907121637031380228868760642343921894645641516257028790124536142416136252979611187703749706869740554689417102448876079361443815865045547401479878478001429956488105815867438715232328424513542254963430421432799721934599274580282714853557915153657954724212971165753467742919406178430657595776979599731636577572767016214094125525793817034267520692924373731472588085637176995859183263392390122149389806718785348609208133585035105573362166004789411597882353516990093489183524127112042147013125108401976296461599059017083070986809029099728617998516834991426091133956836782725704713817771568681885221638531669190331667045138824859514912715209238998768224551505282299707532591953212231903664264171713530377774398220112384641190225555337673373497225903065610711637723076326348715337827559793926191082695463088182958239374665008415643873857407141479842362756323166617112513728322128303776674496117521414331425344917511106521339760261312434581863897048920988420620771338776068581422169958185300511460726258949809600391287191472344218546483015190393326846649853330045542614739296264878918008519147668738442072474161238687402279697785885792045638309232287824422372223640603068231909316175939028380995135874015646234119157465557329157974912531493337455748209077768245129315172646333791063673587430382995661715682150317445594709033529972051326712765574726478349089476599616139671341400187509534308995784470940382445403974891323676468061777361715251367624208241837414513645081009668881261094393761311036451252882716384738549081678336029843179743632844656182438154573012820067671749280043384645253067539746926795502975250694207447615185052034759879569586566284139105102150612062711349957910075466159860168975806124001714969919694207704518927046138952331993835580449949596740362201866321512829629508259499721126053250277523701985028566407887073311871742017403448729605185212631729296630751990324764569496103348364624321157824087786128168496662518844207182802907029623919596516999482379830632060643201603544300937417119118637732163145237191502560382601886011519242898763987694000723502679890085686253513776124192029649215272842493470048996376567094027653351607405239388596979158953818272391979887608263966398872851849300477876385872445367910033090447481955181540824509066316236632161736727640796711602936694138824322718414870943870444924975348761346463475284836971387075238899341238754594100467931440901745460287122683934434236334499862951528155957386324757543540880133120105900861302262194201180566925949268821575436053616129152530856412617737330079256492887489984964377900581632448841397958865850464860859902784698714131795832146809853697416438601681796431507405146623734851271691232134343077411800576624076689363630210097027455965204911781863891014177639418341276266910588106317382310495839638716292991103443208348919772243555537516132899892432464408422662677044753118084275036757094968601094032032840907417013079342732314308952948408363490594578867539636046753324085644914939924262611725731657949407164434625916662999426506698972785480926705285090486092086523194494698829089048372436903654887515520515420304098056693303160743433774846383913510644150058388212765732992573547815775820836511071097418906694448488062016694022030907335391832569341185340098376354707100122348119677280725886563269180223255180456118328743693909514034447853837345397913553277051910839653665070573684809901248519147059659180865039876307405178943526560238738697934255965681484196468864893826136068978413208055693150527011902320032038137447685647563700626805817056450415972800865868991243898621183344131984773465800365603853358106266427985960681461084577431588895510841649319712582554511417840715390485008638271897769882058093119542818685680761518054117077333181248885771890034782989135355201681509155869579930539318790934295988855691621719717255647338865364603894042079905922163318863492212788300885748791992867288609760346258228265887106868033568659270191827581033395557141115744256676896617366177657145860570857001685571170841114654375823433733992044622044156720781071122171581438746708390635923452375237806915392824493351062056371832372136066124920427549644717395926617681126818596785498317390099104899184021693391782874870455824088495380704436358214321857780164056598941474873888245458830811102625600010230447275541230427243189389620236425517363364298325918486184640785064044536208782828263027898514540949335057468376303228823060618428127282565935547086385268618419108706228951920096226482058989038522457151968939840542861423660625207001741015304817739676791083680895353034292688269390703101962415450130458667180223892608471759194942664679720540276005579246384531374869094103196451268190995755500475637231906052813926023242283486358102465959538664262024728472025311963527274064440623672175054710244020264259779033436862982133258799955027996518050939706172157629152547113323305162859191170210087121138037784283712732158495431804323459868803895381595014569754527952089153754932824181882925711392892422169385292757235034417763630278904584746872768639728083705884111877968781100305410793654397152429201246392514605165115282272790127747520142315608977398219130447051478336266577273708731132166789476310914063286212438257282962726986668901620818006198872134384131906720940236236982030039982272094969952156192336028634265445031154311422341382706745988958518220353760690979709942761006439873293659202938908370770069910731144713053056248686564535464918834518390996326365902395311322103823946599548760272238964047890228993849501275592087462174493061987968989417541426915772800193486988553678244439685803349791687926938963037031706988851829507189277578666557818813362522891411791095237438335426449575568997567178073005175698527036677050880029187062008544103786432574201582689351142564274570814777822094346247640659942829196815483582146428886562450555212229646954840430320729212015105491889163922361639237882171898999148867214595802134853554551663830801123761534620721871047103258668472862886842222054616523369175518933334799471439575698536193986324573002712564561579957432495411377263923094035436353051559455213761431240502121030360899155994715006323945367082872491089371399035421008309101087405216351593445817867787916324907672596075219523863250639173737149600667061521170726983454699121833884577545990542869203462727276522945795196137193147884268562048442759301838659064757792046739526700974361932769357906308846316318438437367483994064393096960009846947965618189443170871299154182313882464710455755294820560466041358356854549212461516589019941837261743861902804412179165759787371447901035775787672646835753452277376758807192170227640732447038797770392566633415751325898634386347073870893387409915986302986809793604130809243261106953089846755375401640972327178054995095294884693556233071408612443362205993380960813397574681556689121700929832605440152405924029675741518125450680858346050666763896871655450516482886722699885644659482718849423613505748350149470828985142574542862225974471351991734792832607480499618048067407586604669244314343347148661252961162369762050596470875013320496165581850658004578477061060469676912779524232556863574638652194135871608050980939084407175400797621706181489981904092521579162140616583001335106521012233760878394517537577667328977751137585637654966610743136579176366917528424145615153254920239514627004719266651974297337726918081622532979261605151049045833609528983984886077684706036810338772456153417421872838110729029527615781302970814221430692389814864252186075250876755099506667394817273965753457362452180427011054090577588563049749203450190708908158384539105741180009956652559418859609990097471422956847931435712194951640810930415956367416810378343842201198068087499481262986028506920295922840439553718296366959768132427488294731426631899084134865629377648304689088742956369943943196643735285880234063766081070368090095980645153806123592105354959493756089381836673293601123261207741760119830760592572895131428940725158716435477961082051750797312409713259010320365316206445469271862716271852135344638691484783752329034233698046794437181973481992623283169532152603688322513070477635349260775861302032307821271354204071182928663534183760093790263220449484645873404186707215569284097026549972809815642445052339755579261547785754251297885189698063968442712473318214516317984786807480072472893141227983148690138397984753249957309717967915179927884979902732531326251013293733200080187924843371628616383202323014689801127423223898051831844360590386891675675973036020672102314262753307974445263487475327286737947920762555058862580341762796489982929969554482918214788782837484122794948937109750026149133446804848984552460755481132424313014344800205615012354538128580662611010160116322379857796863296976324307156085371699288187164536324885275945021951938098251006162255666235626980862329112061355369976081613779943731797087417761093680143429667316716998422655841894688095348170441278569104421067920122290388709767017632966687152336443709333555788736210211847634847304069863652975655480457756211815019913992244107640209422825981652273750450901156746325053660491942363531551305009802796488047665104219075162477391645685413996552789231432929041412895236670260231860213992753529082755487960531058603210266199895659982597901039257106308345531241446593732375486473758783716519878116482122662195189760958586863686547600159786980453869164637152789401836885632866711728194479238258473218614666294432336243823005017024453871607196379487205869931587810241658042059119025274520108695647151022047521871488860189489039514503944513393681727786404953675944684424801097445302831507151017439721223884970802034669495514516784065515311637186252049146209075809699479305995526177887476775267305250555776161424754359453927798861582881489399154952614557524520848786338079913626424782432492368754114158443873621149510433432372264431310910461622902582363499818530749940080308114630320313893655651745281039687974382984405407152869910386028380110778658244904931886000764654216486384691827769660292087773800335760401835175242308949070845476645045642818405208191665539764979375919999902184384379684838620924310355213033346412356126620546025020994254221258055582552294631943470917328286804450402392465714610041506031724709765652954633592412920070274389416156653829124652169848420758774967332035393847836063188977156948806333690166903075489787623816567413986872713286094979749416588625557939937587385356700405185489243936977760281139027471156905117586453172596395904109517701008877500764676539766039316228268237419608087779632070252772406867537249455389974227778502225549979235990616658376355347661470988407941498627992494740669463815123994793710338434430151156030436760720800237364500452675837100961109799837506936835885883188212777660162993135976037981724565219808255021500127811284312656739896442590744407560302938780328766599067258777356059505593117960574822638254038799618907994883305540624111268099919172077300585857295347146886104156494649765879866310999965135486427856745510347848368080801532645267652297745939660478109349087740953562359184550251790423419278896778961046727864157057131157232297747574050172063591749851863541603375792869891666190566427785860047452706419687471611582872665431905664784324951299357282979998148106411753342397271557886298424551604766706426484482897632563557310742112207492877536443851402935165598913593565825906661183630522634424915701145174180440820449473461632849144734059624884302019613234471799328117296081445840779026594404454279135631102652365676451916734146226853564844587229957008678036620920511517581856652959545244129799663862140059861505033842169889753434025307319381186726357730006349439269936022381682835096437336030380321087759908893709613270308869000195106826864884409225905391143834274967436942996870906296448696847382281398818377348935392069394884519636921711927106795860928483856360509461648191697856794152172568620759525706949239265039733265620516480084085021893310871394318184963229177213944298411904391271119428136492901570858223149725057202735292287419773356008163769430918488239863024316661651672380250642000072132167552035691706739643926326836477131397350817956498439318624010174690364482647588530955217043643137224403374465748796679119055426783897075431736536170084158315680237274058370908590066622541018054631424906787237924913983350974571112237464131429289136126864111514509079600380004225082750551388555851168222687094618027532032122664793308007444913924338247989119932112025898008521305428540701986664371222291220634479712767371616065277380127824074782499440501294584752711833582570323870828966989515584302185627446488275081057742795621647990061676306020201602627635457946705347914146224228250530629737919393555753002134167490126739479582106988444928937698639551265867189760618487742432132884072009578654853498891893311575236946264680025635763819261411127994983374485251621315079818628451153780797472528817106958621569088992224339596655687905742953491552861446904333534743889271102897610202684503112588964034298830501262173073801625106803857898423822949113434212931511035591274622988110640074526636612499603722244160757652883685853912821809912556683945467870872460474862136439074026777706826579547642795842713120394514473657385837062768210611082943056440825649243414680448575087424718711585045972689552382012729970570853620413726881373556131371251613072322451082879544028366741476457912493457162298311954998818645968260808921767064482583462421964301742125713568806671799869614990838558453583659334327638234387599690113234007876723666208862745112827719577506947101018161029926023872624266614787733427043392379110675324090620239311858430502653032965316737470413580505242885341130327441753876442214003531457004978089785232105637511535785241361539838571099759811558045885119398504410666464608141891682628968335238801147406567498977469226163044686200398541303086875055303087933822130053977332466476506278076248940049120864403106555426234855333085051242563106098326217951960339330922939314754926742964379616381467903907097370696973739164792466435814074415929797518421239514972374663956151165631201594039809879957803554612170450402064296692932427322283280950378727745809991793623882490340754756476113063179915185157762864024375227005813899394870863407963534533592666274734917507699663193906204405952894168336952989864766153895645092542640868164534338111851663640666824280515613257412546697329084585445676925050889096472441923075777421813555705028343963599502855842326233191120948814090390882272725261912641957515175096947035399509078152394046856919294376319757963580795843345771920397244588131005435332228991201046156844454259457676719991421676855428953287595809693982192389937778160675242948957191250045986320264617431815799399962060477599240887264982786895691976152994276021520168930050685128517202496271579005277983539450698327786352438741015832260847900764655998499389457177593749751837451403077180378643107857525650713780716891446785262806067251214433033827466314735482635116037671893047027487613454846627008638166774622383834940176669825841784381900684637148316696367161003043609861483333310137176226290719388136212460622772859842276184798723552878118091104283858411222600032046852515339538113283104786150176055024794337595540181847559678085730615993286301224709831990744472505398230836704383910470581661127548977339931627357796049377227447815973233510493442571007872814107260740105395790644090002286859115372507795322748957979616003680704296593230639228948607908205749839234577252037135960937665665800961476167819830304930236937394086543711184005675522702290964764696615117375628964975878960974614524536961088877383648711634883349657545456103959951388847989461736984212253217149897684273594307195591405923173848378309902661547653937782375832406130166742337725414600001878988899374183531707208533384669432784293663167087077071131952705155372274810896868346055167815604975443165707083681826675805970313660964844578751252845174455426270718987438688167210991490993907887435383546480371541158913731020164387663650218845489355149568950527539513608989605515926669026725646561335644966004927598722922811087263353361099900399573313116910073587629745068955304134995291878721363994816124248667779149034881818921656670345794120536149727174426000767595749054597009332254547929311468900033980423823739555007982519114962621281219443318780467138721668839847376654255774520635500139341386835140875751905826373355242580551974792310344283614618169062604337534013563640783885245169716564497085632689917950343920865667657984874307185530086030174920396175316404811680064980731044243993847661831686574151859415534421210166514364190109104171605716705086415565023098759511545683209520240828875932806439157899973149628532879113474157004170857307208685811177879864293978984945067812486706900829885846648099844716093686362311874108234240583008731467545610166373968581887599135565781060409956919771814102602239546178500046899571660550742259134156688634733127989268571948425572056706189435965910832655415999529498151268234640767461218645716623476698050978146068409624298902590847630562333798590272614093320165362518708848747692030879707181182548978642606783946120176095691606221273226092816679569166034494463702710515601250973242669141953024302914334070904362657249212826532032410571982827402440555117956119291872358328168240281639601469718946457201388897920319913903829216559676163004409845020980044763425465086184712983344197647891525499590700341813525529444381370503233234037661611673056480571459756884692480147089391606031829447873442266800382115358254889809039334146868827862656030493870136940160064659681988549050660173464725705171499709461657948604432541411017694633384179384876954229645154703779563243488663589261324601545417771417838301070822160926602832162399999569650703830568445300250121115976579433142982748803977619241665302079798821302845008227198827614768446832867793029537871496084589182978780818839577442279029506006762906820657006034663104200387200040785214778836426278956860648954640634684162790997540886919228683344840618212997283127065553483653908721490313658721244323115175494780839788547344531941833681343806775119903953575268606288308340165722133549226058183224069012362415941020806856093184591495760133603329890790115847835335958656016817387845347327520981730178419813083725191152376427767055373082789628245822202468002939955154467384300769519265725253613031478444069494425973271019640713013297313342112151373285096840395283061846979118423788951777207077113760806235998179927195198478032420569592246202074629638828618094109587248262108339754629154906591420794430824752999420145033726854580464799353249086798576733233909634682030288940618870813271433614581031629908652365438307538635675688671525324491120911365085802752600478654142013142519967674808952397066862900525586797721424631268171909981268441496201804937245466698243072086783679403328279040698517252073068987713245316739872695748997037112225611733108066157764282485777885399438982414934234205742915444229891368557198551034041067071354445077644530545038581194071295101328560492993881130397741928677695258442493285399939220520747956567297910514318659857703389164004565184934738487431144011731413286470558353760888464878589568573335719727751205797048738905219487718866435369611872778273548500131862571522147148721128303010421210330270787685396616470791174361113619805876650855015908507388138769429850087687284129028599592328253538839343577662276373623873998779611159198484332298135952327119631771750071683927505008500886378246304409993531271399053002411023595821221428193875329445093787210520379128664683262074418769235615232895591379669044867083669567793212335806422845189292657900771078843846066437598732468771993259839040875128683391017839351260496915290919887706825901701322040728820354871840886657363697607970501707075541810231226011018998844477969723644436871615606550873050988239981479806477415793394164711075188608859577915712741688182577395324284812648148976086216727036314344593072861809617212559211437666428059419082013871757738553647936743982964347694373534075127961504743576980074014176380660346860980253598046944942938766199764140814061096461705742164848706451212681512952747670220970474581340985953738717006670260071510604229239566988064135687901648525406375857567886159958834567284206044933447461136535608212290050265287336366514236754805119747856931906851313928595448119269700782314677302383344228076735954459123921263039190954154885835756698068908656274387916804921871026987599289053038063523884717262299028017050288241779513806594404394950783734302686205617326031334842441566362178439947988071012161616609169289012041356221369794853709569029629809109628660460378198316165674497113634821212516306869242170727712782223636258141375035986040526304595038826179993996630416147059770033987432825602793162559969746922947259288475287302408939600903533964384099507331181450607857175351235279422502660188576141169894481843382288464227462785060869963694944799775157382561767095140416403663797526342486308407625924362234492029486264784907233619675586370520915198146948914306845534132190396771391402617162991595891759700429588467185220961746165887651524568384032975710954126561496767204649124958694791223173630001783966676714320468202345417201879364387520181303973705623507686808015575763436681480130832325876731544707675617149791145065241482211802281418831158556267971523124347644765106262516735373830485132642826055913329752582947140997745102691607022413076694828727722995681475877837735958184185941381922562180182577044579654032789008049951445595692400598892216363687522260725337111566262977922985937302823106372800850741521059865847271580047833972623471664042213021394692687612530408372400458709469149121826775405190163523786889887248822619129741944449085382353914974574585424496344274771148066855438798125190004610362876674216594722924091871873106045921599716114864017838190638000729608202885654067774773565962483167596027317106994575834340130642953136764335673608951384282883618109942589122329689419372590253570387942542104064280867763413941846764259196545040244215181353246821019436464465470082475776645327034006628383475325245451846945325294142672565383441267082067871040227971605856574277103048108958510109589535508465811979106211729388101621331311011255894670352568774136345948070604191439302736478196494012572109522717418045243495775492075545891311739002286044386246406093042286641503263747904952959281794582271420280005214799145037860457302399813029317230990345761156377417941009960280680322319270708975374096141301175031233537639241183887103074033148804415889210369217114338787795531171794884217287611287163231291024322210303358296388773552401220471334928828375660654043758643046998873437237879087259934684600305311236334788715154882577828929032567980873970703067710486800498997626699549050674199231942591840290367546922006199761986235589885288981968846341005975248535766223454665537595247101455537832848453239832180955444377004146110103012421989077345077962169257684820918428911025053753543521679711929162236705871773240455469474831460419562947153540587590728601005644787248240015228997608462893024627451584435112524477555494289630614107479672585607461704637428413462173140410003927697720341523410206604510363484909943156333224837707314496991517682373132414421854569364107616894650907535873094819373877375455793563829528611379054230604039918198961442963618875734851076118669968722753721574010829200725680573303874997041110646613705895455328694974449009531000945972885944958675516243197356191659264143171185353821138373680384887892694981976852831677896498735103186306259491411228217227802582647734347774026073300995034895549967737678602880498768177728061484544870511400062478349014100474738999575052400290498380207723009652788371833747675899481320141430100292782096010809014554769575626987378602532078647161281609784092993785931853983254216068621026429107030400204384083679042340858726558206826827586592852376570812621097820878730786704359000238264436573928251507497848182312046468065415670620557591391271629777376312804917155575042045307222565106338410166956376333299478506645662636072130850477972832800315762472903328136370712895750012109575359449844945379295443988989007142233577589757081127009403582551907951516842684054528779184647754656952574659120466736052479041428976361915612112095505545661491988799758420034640352536244577509676212904065805057530175166333033935141508657215580765587637350567206544149902839440002914909732075619346535941540926976391692584897739831441104581567890674969597177139888283825503098347751918179671511372145297534392987122601509258952643458920750331477075962725927522585497886101078136777968312616308179523017150610386190945482286642864762532713797271665612046456620004001749513281056554249150566102039083679533768504921823557675517500172840011248065526238595605415279821411235893313886205150242466278762834620425335321135753930328367211958439799889408661151102843136793445230417507510575449443010328039297793390212105023732433985205036342565066420371911007849654624554295237898232408540275717715743377960012241049714911781830827909887685008565124526572204403842177083366121313244320090278436161822696226973392359037048490530911794234078277113793571534493420540607901221634577819385106697922754723480770649632144292853193018474692093976222305118218131837899333259766854119775229770620721552681427036476154509118049046979634569575878416190825207203721572394464012942912487417175762453524505033237553769073304763301564004895843941160054996472669183171114204014079353913196864512626718423400611815833820091402885969916591065564257234758206008651423399072841852927733654999493221947070962253393351879937843792345590611818481172071917286482218867329934536621957989613532085488176826790981267860924077082389617929845904504901626124045074014154252462647653957021820499390582314501742887250927747410767645113490312745652662079613367589655855438017462418526667801603682083260294558936019493737178277208236472390021800866721115675735173594127170809884190427194100418285678508197661052809935381620035301495768352214809898454234164307712543909773448371705191851961066166244668842268667849875087082855389506182516781139387738420362222042889889465970289721589685053001666374271472028830766988604936474370255885190540288575914374581446043863515514210574763384574525581330933252784098952927131893811045219378997005922825187061997011526952907027067295166915087586693221663213275978031585539529105667011585095908363491313261074091794496148696847537813445052840876655007613837808693206991281477548527792505415776199078332254214056888374277702278166352748946010571905633529394100155775282658518773885459951791711415494530000899972011326877887441302123440899588592210760224640100455862513627189232149875601133030804851709288171995066432663070973345536095979068465468973047135825119192833330995736258047105322452444485258360327361893158655248037236982425425886837149689762083796864070666216659243371210511522214609402230523160074953507578800974022632479282774871860328466432101849873793354612890079702039827410556553606108547644434980036647442222294226300939205074690980761469870733645649753480911901014987390898636422505091767805610406822336777538158526484622153707668947345289263219389515728826397316642131204676479538974472785133343122587884579575968917121337062167004407062308819297594145147819069345055647918140347542263810367799963368510369803711367325339331192132115797255658510850967343063330615828028796933927374209339510856662235981496596523671461369224596917695216592994371925381316275012801824711952108721638259044668088301287988249587464571772034524224030908300251620765850061955338306241454616156622265201907129225695144417453829044238629182296358137640759844402176461017984279042913301914488865284610267123830241238959560077207615854348315302828145895913073742370144364616589158567912430805762265310281228325630940329906663531231905418977965079415785131724367303642865443150530109754985017517429565654764924646580576304648829275979004889207725805125058414405197459864113183195988140907866607387081829140680149684620488518452734894739652029293314187964377767529457486359261263927203774810914823282041354479857602490877162643482145487087351452233671974397103053662731127070256253037638911382566083498247256519644144144603037265430073280223047651990863234346965945120290667380930211710692862239052459092752922367909356076836645701114238306138946556017350673002174472852729913378940511172394330415310348182930465790032946929393386051661069461124349876767569390641272160519251266412911209229491759354450882732676342965722901995946465572373096218748333636010312109590920541934656455171615319571292236623195845470617709979891047614210625166759046394280203369017049870939964226200061550452233691213235299675088463911755985524066077637385620841743696171268468073781445869575152680441006380671299772497538609302311984613663613532900227284024812713990710286281366196898504944101006246409207223151348991992411071721307631557462688864483558763938266631759226584737775232004347091550770613433159999820786695878834068676988191218693342944351449801513363506894486912034147305381212618765884094800244762114549439961858114323210041369234327670946206462977479641960912460622368896199785489143563704853544380085822010037680366558943392441465938320475608511539681375686854514062623707043010332033785123191409218728374854527631818681122351165861768417043598318181844192845925938133913841690970210474453090611507772322530755254530301729362207008542190109647203592478306510487897236969282281325918176405476043411784643906815472581937049649231790414797764138979204033317554510287293017824668624143288830446225664360713005426662350661290993534692033533539047133647417397961672489318611219826015164741810397869491379035437878886096734046506557563088947557434588812354189236231454889837135703438928967053609248108675418328118504638978310106040302195639949490454264169884459034579386054286496010114673664372120143628687700397551561115573509469758159720557091742402963025791008599950255043254723048223093101984728223416888210541829635393036393308857454369096056725544152899647545796252950259069606821385249199611011720978575715661264731734077754497133749689855053386430970764658314748179006444698235501087193392503900238795797127998607203150434781608501174083987878950722294557987824448817427111100199380152842918603804491060146437783938830629789435294144338014791431831009024367273951714008697447526575924809890998432360659805921746944074219759747837856523935211440735196167969369139769453718940645125291651637881819454514402468254605703427744860029383952639071021666890497206345439729058848587193207284167648790348628293229062778811914057981149723350450936495964420281513070790901457732157301252441206296645814433641766945218719864914348691461284719439515819591490108364178128058145743878566080971146676134752254387505268049249927403042704861280931708202606828859178371918199930504578847600265562345411000853893767387789182618311305402733898669485253754771144537677673215208826224457468407309945982819258683841847218981393249880150952790128511643625368163344956217027939562674805186612439093133060401412918988844552513202742855913719100283022162634416890113174627787801417002245969382510172049004906655305182197142785185387097242871640959096602397667394841669297084938029793394021322687147283434852566519056618980993200706092677799797555307936339126760836576792318807269708271419131568693549764833021350747168559445218706559579468449346597612623218461708947760146289872565019130221803540185016755733925149018480927414620211865990200244732403080393893978395642829658824322283922696144859410126976115871879372652956983695644070347314007820338703492962214137089007170248845841852919906686908902530503270988190736073655040054634183924475756966047435279992425345098717910625311977016835054523350254965209182852853191699226506292128723557251069554692676206614129580961821190725473967575344570609826020465680470736209910160913602286749088990950786603166111038102374414739334059345385925722258291486161497192296975359389038133490648053440055289193858492758772265869624257661666302124225600936490708965467848270978783706959916993782540295387023675939310897060538628478113355463072216903079487612472949370356855565022414114598120912180800970768254238943395416119200351634600512311671399220479127743764476408146741527364051905236670796147825206716990065745380869159267857769081352891091951753489147829091354666194247838457707940304948712464271173876217079409110782319164964236621277295087465173919411846572947035127450032321240534273883598453024556220929530912740020546692155032357187648340546351080666503988507773541035165451870512179109376728755633244064297323259620270417357044874467602178615108575662405910786090629205858994393601918201472403549497883429017554539273439256852093535177304086623306025801136337204805816669016482091590173441765025053579401185593611091757010681184147928318884374911747060434527859898599001919549771478892196923209076490560359052197364227722947270029045899975765658292347684987445686727336077684429363876635712032212811655034867836657009121787882543567368000674215566128834904601883297731608581885438773770116146488832125013311897389258428891501974399402126689356092295514154385083382528913868313859456374661345350189615694445507873370169165052597134456182812070535690589787803971746713332908523986162557490446432378587980108559971208124240738886665547726474493193546000866186067621266405535149309318436122872681157843291356079909339034948616700716848962371774591896160637250382363533686641994316780667379727673419098025054563126667704705212457342097679516866381812617379363725628907633443127719439589422630286687050675860047600825508501450400300218429810837961283709344251253794986190966213951899024646492487444480819361770999165952161428141927929993653969168427266651505135949792580039650006091075109693858015230856546061059216322773488340047765045537342268818563344870851983370606904150887141852035740248942371630014121031865276172605718929236318231246178250695552542210307387098468041759541773753199371992588513929352726599062213029313748318010082997806566077905843367177696218287123878933009154581558095763408182013085083983207050441450569109685407649998517601165016717453080923628156960246789238186872839622073341790932732834778094392192007881716251471852710238091507084754595517648059772187912586078908821691127506490822942654013824117210036299247992399071467967869323282156382926310604738976559494097797156807127155488534125612192608099016685333755714820726979246187880060019784738519295664543095705100683680182616112805105652368223413282925930667319820130823602716950771180539650319403927109964875453047325604025188170904892106913675860837989744675348942942819795417628932393182970147584420261632290180384580987013402542666951297550606825131602455576864156837995051113822024539951108720922121596672736646755626857677577722091494078849451091016570158672199262517507268246403682706817049211444037627509145492522299724944796200685332421721021091518722553183870457408397333753116962129585891436452427882471976552794209927295614713515691304357154945933742424160915387658513901285919680367120848685814754727994267680546687029588835801886245919473374857111589471691749113370288559499155946225859899577148396448256833991142808903452040502680342426888261438074824329075290115104539699903499358318749476212974473082019221381541812158461668595569890000815316219697685684613419631162968171102117843872100118681230077966231183888960729802501963292387365101643912816495072309364929003553638974890800497681629501488269927856473682880603493144626771262684508790200856511994553436078348813974364490732045322015578429760504208074655343126759632596980641702645738348851118725864953738951346571551741683868093528464900670229043671429617071360121612450857315730873835803209983415432549190829486281095388813052380637798257644949075853888038537001037199986672263013362103674629535747010003269451284750524027454913627998339659017178158926241164658694076674583062594398706978505636269220834499765889629248572789804741529155074412331580466217769898644963549215270517977605927383332552418317119608158011186410258648688226589685829386180454360930708405561370617122570365040738035348743012137827424894022763366897795731856859237669101530316077939253296355584635707415323107336391447721036959392713364688781641810548544134740894502437682441806304697892852454774740031526995332633950938610840855862492702420369538339231717580523930532940600573588060378818242146322051158643267198230310196741488456942478555249558144969035434513161482546816492544842374136416056348536735020250044791502728363314900441384658000709204857418760772155374182085187596370633243635036534752213262463932686109025887217861799979451588299754775682540906330697244226623400616950980055757767911929816457399753330152799780741130920819315546916569563315333038712951740318958799778468070270687524185861938889620993736073803644815329535804787935346288858445110660476919436396746101780554016827223462968130215394080406493812774051510423698255943332733640095393937853903092685294430029847627490813318918461731572544900643377709876847840372233196260900003416836226117428489418075357260202654642679454177501293837067620793529879823332886730049545889420708450814270126109799068022584082524614975359768307178462908662293980501117942590693265620598182999237324022999601888679999004385673735870370565309812965586617990503468278489262511920336544857877044341582848590285738269850039429731343148167552494120365163571787254084777302763122927653016064373959188850163474484378847449563483513006088459147721209113009134904303560593375331816295190443117631123550642272378512581524425728730739893975376371588912121973930374091910564012013981686585325072428423402323469040381845161271265055960288582810572180938860678899078523873296249901842169337947965530517655195632568834393490567747631902463941099161932174819045256964338771419990331720218380711123148838691957742997368843102358390910262556082393366826212596069569904113028624029341807019217427608064968289589871354256443675931542515171254079165258690699252063327764461340596066429922558244302543060976985871985077834948712865558272241762186683633131826112081473550748853119615442511285899955189727847997421817093521216980353656830948977267705676165860436280001702003230876523664802397597570965749588412371279038135068004464343550348952454661444975803569973530465000679387149554125072420728466920761397887746643733643346808722094738746253470105953652598901861496300871330821946146939175124668033955329651585112054774479491898705874395963791331015233920766387525410556914829744472363349667169402835873486903692684704571906118696084853887221129883277132120068193079293032893975706100005600925164667035024000602346176439291262564931391603618638243760694562664466060176379680197929179005203589701018538021919373889270553140834236230150515325235302938488629977771203173489492076289584086182221259849062879350686496098218028670683356594056099584097997765413386378148792269578522445093450471675524046812058206750950345462616941449617351101599407451692335889279458747483054610146004620080738042159826306821272126646283249291296930403721337119696001924230710735492045952270789099130964890918232898921944607704433037422860009726149763409608519227096994144688275999080482845298531067822128642825485185689325676987129577775988764718741730906298500677094502057562887418749433346057709089785258135306277656804215259179471613957464565827774694805376239853609525892495818755083186344344472493545229914863672344885162403553669227064444824146068835424193983311310422995072818269953074795282720242849027050784074636268443617428973051936944963963906847274998244842108338603088502372087883745374332370645445661665890219533313687201867945099351971507774667278803338257292322867193361871471159484591839707988303639413046735168190842419609742275168855588593360010182389933410371005173075818873381727622068457962995427684504908128482657382432447325456757490716107221250602397297105165279557029336810801517365299982995347055323750333661735452173736762555585809251869508743246784549419325231101082174353427145841486794610499319425045119808264089398735136614247891134019445041534932668412177181348505762666154776287593380350002425141994921714123880403963271117429147233514524479551297640965869827512121637015624737275029399834016035348913587158074857487524681490850009217950774946492389969725372826546455123339137842159709003772548735022557619399825159485493663011886015706340050549750951162984532263602348164443823590761711732040890356117380889980255896569970385610429737176630455506244043099602221981916692446775504816048164385204570811994078827098349682936264441432930596374264893112533679487840613657324580902582472418946134535876385656530425114533920657474269566201152536236307890410158555984580132283281834023571629130994321069804574446282419107627749918883033320115026949496996959689029211260497837821626574116119890103487159316363635562651980325055391997795616105537244112157296381601942083853246084960462295712870844856646448131290383494543415328713163357555335461715536039415696437125493444649900375216811272803211998377582953360717738240454804616227799020252836321816220330546654659289422093993035402820216073521478179196983312322511823542796817761126160602872801861615671649420828819903539948973851267914247329829596692243221137014161235821184410740347730782889221247441124745361423201781588923814365210914060154768576382483047802619616844705137919573393571293349111247872788233831983813358494493514502647593302354326991888223469573483058745949110886902547545140646185661592522891013226272695560032029865835401970926085350515608178278144548647598236136198163615250128334281859992353933749635360257299276442999137595404305437053066776083156572458513805398398047031139017479214615803641534477315600019695774012671270367279028402142141254641443350592947695902001276595303846578939289777774898451344934387026575179438976891975238288942785807353234823813915466583823224757572099672145257769896424029885517095361249417212800244676793653189916730510527508469571100010981050813335598474014014161863428366478496103523554227910821130346396674654949546200909838383728933932757249024499602998514076628730019973555041956729560422928232208754727231902217680718590927782299729894567035450429811052747391627266979624883161368331859915086373707180465343788201767515287108311697690665455344476418970293642087464569922292858940298723593846643803022617261092973786924236901626755942749210132034554966758360671846291848649930929166394131390574927873584036934560697274820398116385098211340624577228067120995618551916324006200697480429208017164866229272762321457220295417221758630829766757242797070168698589310259385459582274516371287470402768887504210229880337785568522920584519143405195467724322357706804848610095937499411569705506638519616199115409207615002977651373756389177907339718467715168250789432003064966652714786436088385486638617285884408320052922272844789365544505029844612495171435094422112579914692135125939359977378250220583000706127476627131254269685240509620976304889033446574080599343664507270421759254993557230319323424179840401459242669920837117960927088048288327768123430220375932645793547468258479805197717427759754637543637952867047779934241846052078704974860157601082670583595324488650899981746748888082049408953303943034664373959496475270753567869475504199554866908135458399150092720639544372042466537567079766407409930119371443752195444852238353685612770242644938668849032406275918878336740152248547633870175528986424695030056212404509522941504818211061549632274775422008272505719562317597135001416449967271870889279284870775252129258202948125420035561107196817499130247899338961509771729670225067400377896116093860703895976989860931690295271527772285137106414154334449597909979828547790806292721405974452993517562347421964653641070388676753516785127316435689031419525925918415473683111230960796862867483728912186376751943504148532985355156901666043640824625972210840414373040587038410718986642885882764654801080431810935880340668440280453108172016796526667140630096762206704507943675484429389904173406770763526989542433851553405835700594896180438812791180873930804228573694106454862128367458604723327761640107194213024755949964753022940312363537023434870086259361457504747453745305209147736537250986244482241529972978987636136164203221528634405015088627096743960530786284104146220815794027519680783588922580533975815283240360072295289988435448444267662310044444037251817983492725962941202784825159464490441030100548305036622608007741523032546278636104521018176905947688308705020421744399917085915196432916369384685656722020865889732889179929226431750626412966365783695436869536722320901735158541059507317042897569010894228701109130794667535508930171922788245516563351679264203103972313120849699501898901111068624734475042289204438546445267939714479139729411145418950879366639574724141078341957549421546614783729132857567017757329925630536279215570076836904851168197913687107596347459258965291745868804835145601544503997244665015702775154333545002610689673432092202140541170523114485520500676859874668938199457656827940124854679035491220753464819354821592132339660209460732165542932147719722189799460572962384544770226421260881320449794106522647815011011948783270029049746606524394052711657167251409544189292880543665721728123571038595615801128194543386403456250610064903263452086107762330100683628281087748633615931153398107710145151211125335289533132660193813369880781972733000120402365350980800832753926546659891042581477760197603368985936274489960481595469668172728929659207565834791177892579414828442131310683753877681951690314755028291495388730818707948494341109523489057561736564139301704386548627649482045628544703892274168919004230859005756030551050039354840002795255861529325694889778578901041257287018379468953112333437219382680273619146789723364489482739678259889396577112998256467181484114616712928256705150300609463914872073342947629036755557123281590256708226068368857290442689914112503284799216129918182782441041863729514003004663947706161504757731457100825270086862144253351641028138593339306860653930648094099892678931125111396667705975769790260030986042447215166874789777903962138889836738889460422360878633849487401052721671880655833964773799807889232710204796060985877701699887272359360648950581791002107542530576817745552555225867234643167512316480021153699987066116084439944491530067756617368805424809628670846697692009543047264853626318143210968834116179061772357548179848211244323581092566871995977063433484289399112668652123553049886114433689239374896137701962436540401168426482066382157806146092671926994664495153691405429035919344988448740409747981442833730020886346002471918331025463515349065134881671253302287452849396327939510074748365188816276954221968144088681492436863836864889645400591118974575447555346787129723476051567231287917188087515527066072564541770152495447338116276791410641007864171050638276558816739413148843431201206745679004958619081378544283105207457090150395187351187988363195313681001148312552740201920529665296189353547912290769670501578947832953051436168150163113134000228644654187026940870035181776195383649138012972839807457285032976592680886868906956109054975930892681707400811017017898856236497941027043943356382950809874333811863465997452266086041291107980725530174093206926007574829939101268245912590976991128321394239494681357057132036915746112434327248370673051088315945375180418249867733896957291283666694060170233447907010967092374530382798375120480103345437037730269143124993398853276575134565108470170943071678925821554816822708799507801433035590535691388832411173928152088657858789704363403154344471780364140555486092370137762192454834062414829359124029139065471818675666292783768853960200288898665832382224592018819766922824771676909620103658688239684279833075118870438008235614715380311803769292819233702918479755153773961253271393751122244365427156149649332876059217595690127679310547406998865039278527165966183587148694321467560035758254415916069130092247155443200568879990106785311120218698664704338052446831404202544694647003219213867174644184845519632167828017230437671199955384755412901510249074101702699758280204492348774420904075809975126680359857381494770102642823307194304103868744633259922540160172745742478277901192301589481450298260456730461506855474886606449002279621060232115808851653213568755474411610513245081303126186857839958448889125841479558185453165481791887989350150797373280336794219407865429978468805402718153609476209747090216790324773571810832059238972823667457500551639629858824167857065874397324621471156642342608314980050356631911728255581976201378126516119364031514632465933378016205827607299337648959303159837758724589263556464336482559364513470723274350435905999246960757813044254182525778913919069640607636099009641270609134552651576735426511515065816664842082834513202049764867999443690193461564183490271074383247201663913623905814892208354073029567517583469467891091419108395637409452144979886291239208633672019876683123348592026301321671301548942991158571314828129397213468450457212703823878767151398315100366806050808693109159515949040797301479606088881560068013292116905628845901506965100867485609815559900966710721270120640534924943343275933118550843098130832325031435496340475459530578375851267385797873412116146317834104102196934320150534292198327438338216144684034481077976561909727429758656543725472320504330107113659877271704253420931195865055648086177160687487230339965934053598114657831556514506870390835899470603893457712614035390783408134164007381998448300032670820110218913377559359172292628620613515566468788996307700734471003168002881504209286029711781683455854037329141077423836132769163652407195915480508628871900667414122196492983578106939363582421327783582090129926185741329835729843397983706447066218264297369078667046382573541002846941645714528960030857936287165328659028031637892914170992896071332615559443980607457705780439802772094766595474573579390366817541336048635724101010313028811676269363310345340369473619529059993220700639138742017241107407110651568629831115723024307418882238285705056468440481885665234126305320143774618414276706800261650551111067049297836861803505150861302366201450312161691728241662588066355957046410745442196150946618311869000331393558003928721713225187300865570895475927688565111698737037436412133287404810101650488601882650434319380322871298073665160033042845397748356962998164577654518187250767386596895429214952453396008005648012693507805593097319056199783005780463802778591392573101379600602549883887982578324557178167204509361679454189418223222275121239709147513072019207228181760454018764217281710168512991096976644787213552879592507211149372978171039103916390558627038989522546390937366002651736155049545978510684602163047103877297063998099121896271723273607734730499600956768532195019565763009788669571415424699094777896771966130758426475501490875911247384665738708552526382415707341663000191325821437551246116193231495485402027415326061095780799335574176572875432462044232734578866225327626631941668383626463860654937443580105398525287742520097609092248546850806309888797437674341310317045428620298325013193361680768590158847513274852556345519755984430732662243779941079382049045709656278378447192879175948795029865485899755000763656953253394489897936268063474991721253899068610496475018842647874612986425953374754648701081126309610756698079854879462234376385999346828432802010081604755622735468818244523073300650793254856167165305128716058685733253672420530953495901226068130081844710833600764986854406883102777795751413808090473150291034717698252835080341778840879529933382864396807283108959475692617261879578554373921960083523000405534037678225754838194249578897365367666013370422556325821899646748860531753890265332951828663052843259088309502155769340329792891413605819505633699117414761884292607556047950109051471266808255779757196880428761942187342375092429715428694740030309978878633479996239565670009249268543308181964300177183795567947993501839808111593101127024532912649258966174097720440331929797770367180173874110381394880827871859317581252868278556687111961218843725797824739525555833833830092721483618486999757718780284123928770310232053744067733064680354937717579245260479479240798364621397228897750635059238720315475392005769861508327328416067079367529428608785597516040185723336745158211992846839885635275613851732449816182516239628009652651457024397217163286309645509045620465351802100398735630131118646363445026073165472174604217398662783057541197780997764859420471324797292175814333874167944686248670759131245096785316922009635947015455303337959623800440922566138684197816476804601504246832877936540065094599800268923359045761796167863871981143737951625078518497626805862756884466212651035731606202397923510905598375315645170531962989811139805557358660777673308707747790549572330480030852073816014097721957839400903676508746053169240955459190923279401812896732926164371476285357568839630008828502049711636828246879485497313040517883437548659121738320543778057318413133098151641430010142402871505252072853545103525739520233382792752188589589129265858806923715628618586658083100412298432175076294969102749876438830697019403274070452531357095683590981414050954740140208283460963952211224016465647484264598103576006771716987867056926684388343134756533068821329901385366967520681110060903997203608619915586670575341522529185030390220088272591998959485195772192068532747581441090733450413708262136753446016581261462272261509282945330786030500651785159298566057685928750410013126150389278991097365059724571825225753221627304031815091463243057527299018438657372464595804304980932037225507189149920706149167566699109999799783435826157239626406927420044998202347148536589464193110706862646240318750320987175347215677657100700792192800748988620368921697453667119108558551028564682806380689937850214666042592065924112304578688327315855884434316507713694327892208688563901143093466724698895120311569836152832060668032740256426618543070923332613508459824037459203587802224719807746913629046201659700616025933290091982974952301926611584069856326754277280726481941446524016026566822321040947606221349653920467704023172841860934762644101093877826063458159259383091111540944440771952936563005652905419466477695182842250861530923075163475639460934788072226284332325533168649856965946196588920231137157929673871867788334936843637628089088097654131630082589376103977612606649138569141907690832858112675682112297184304225970801059073116792732195189548113834495554707293282205692106324086839661760563241776496697413106652604110259730597984035897254882602148266076205832156414687111033068740398647733668361844614529500091636451492061223340462125792679718215929025778371792188120226217549993657894142287536089694098769555479578661621583611441657774455314632265813594453029126357753973404212298436412305109026669903250801862515878397714930931374639906487995645638055065499306660714035912018038365975200176686886937912052249126521559632220299788319613249272316440933347075997164819742762807299537697173198136202585288513690403940049180523527154470483167146467496636544495437526696442147563660889220325085174059638686544182658434969375900158889139633282677420213657388512338552828906331663925275144161008644447561683656784026852231398965524684583729925666214908134837725430556335124220082679295332612973232799832002744542356875368353565900796115331407246235127738779264168899048002203192606833860797505441251601179533352748906995984036002873161938529194471846146263143340775186540338197372124938312438817344904973091025944459437622493095432435927651196199709568005945281295336648748412858769508752516190341766169386824130483895147178515296352268033517134726130356370144753900031686900718598058406194142248954558205011940747162548556033143333916345706012376964111707635681156042504774429271447380530795644760788587915977963491223303481481322774797759395657444731538695126829584054459025165671226260632911583048033023091938039435362680801759097793511781105587161887616613616880579183695224350087698134176805188499369364877772244728192203057718163978298998662397071603028067878521052111078100011491267809131910502642994918907529578336022215668924883255603483484231264501554599027760702265997285817714046957958832235136179448400158901081449222706968935630783334509187255863008693303885121873385974256371505362276131446889858438723857580550456950658664259924590660335978675241393004120213611132733431167296249223385889769285091967174904302667605291902805136802682305809317016111960970278498632865355109569888550991879485854148361460700609752051915881794335392206236215645374335082206120633293829903353361776448829543792269104801185373752136065000256700733034861162636474755655799129644784300694737635464109760254739849194151793724174308732901870970083168684915064553309725674709716615229832322298505804874169423052001682261952428436846725234616122806484818247407754832169025603888138403759783295497444732648517423895831084417615922959521556503948393216684864736419548491319810537273897977494352890020892936121799928268900689345701596478972153181001885498952059159028796308734569764429352997719772167499002439608704002119231191937116193380713375309974672124067919140824559722197579208497593188204769854636895799910744564930018933797242880066804146186297741537422131909518115187567954091505343168142973656968264145841609507343625469706638946532205938859170752385960753497798314576915607401947128744900517541218959624417773844983445928730063603990856509223890442560229341596874752264712138767723877692841212486402516927628364510006037612849089980617533890617907843130828771561221011358971916471111979745336418878615134327478041418787516045776973704230372417805314215725247991230035525855350869904422886759909284768016049469878500026514195561599872277102567738738258272029727105508552719545104581665812381483106801880764569477924097472080364347215504999052561146454404047021713430909484938649444365501396881986731426038824230058681532719139859114200629522859147776043982194937105118722319330387150077285727680644918561309318575100062538763668986722370380914409560558195756530908135356219957492870220993066262251928385326745885847486693930596800510053259121570591292495412677144289804668167337850798231286478129314737598131584510954801297410549802774933484118825670054800958006409272307549135026155205238577433631331887905251643769661616407598388247068641435975890022377494578833563694708204629481360302376313856841585945153801785786741029825225139470732677218300118994455763432923499209210676868393317129727792078483702822097312778599391015320398608868093048343635330388033111102582968370519064553455960896203959498681373840444233566992649382427264528980565078598470785643844071907329814250207497765637437342665902668119898743067350297531869049237044963304216578039908001261320934937474521842383244913920103079253368349742760381045425294987564244769336330094452522076332992869930648747665384758019261683673860250885279716310881306988269783141293822827973168468193154434885177817491540437713351287970573311146556772155179413052884048352641716703074517743327773774278634851299496596111904600772079220423187882086886135314938023794678264618175466453973699229908666407516294882001995060130596533371323494103837374273578096584280331712923207162442660517017666600641527707806274570968830160832268121853504036959488944481164521767357195772496629296039890979079661911877975954268952749393540891639887193221509027645797727435477685920743292259871503267234911803400781526676780374335834481590633082283506346109743092406950876767574789779729935870800603318677193690119210770480175062641977208883455853854117930194928329626778823461719560661424255414469189097889363494874777016960878613489124207696023896827678914648433464196594157947018492327238469472297618614048938249717870065970985293948662420299904999672034938705227922025402668793757519256288938310061948839812954194142570431937253218267939999090598579138726146268185898265121348002563378564218961891796345429188704492070145717713379705187023995299380020571784604153036872354299105165424457325734409299267475207475039504230899740524022541748787282267642775267512091854257282912129347058009478045205044870357976013745297701764765385983806149156281656150291591573654623938147728561333011892653273763206579065658505331009839389606401087565341211788478839593044298913622546434524367814177014637338592217939005184630271161616190211997519396520693990883091582335804249716070870472173741260193730838895115328942447488934660078743528489518878473501901127578412810799022664815129047625207606605013454166091164881748895502657315307608672060488308433453576849026896894802017849648302044414080117264130049440798902152993687918228545381373227747068013359930304586242887570127900805154268016852403220599215144734970460118286056354362376505316300884373026265283686004363874226147168235738078105203855431856128109996240542545387769355901330764182743820669307112632145035874906580164977470210878480307706936001064880857424604803921915154547157531570237436377673147043296570404902956678951265306469250019664590650381051001624523910577932832149106714719242156837843321218650811511904140257673026894579521561652713441053490688248921322515394316888926247987718448096310289690680708528674403006645410245141313299666390436142894449758165643587903097940152807085474491865335595592979681662761409510529132423685776086850996496079689150531175779863614544677547216134411010104222471873245986451652808315885853892035775150782871501156037436351165091492374076656840352475894084946311210432821579888516692771179084127951531057371692024844410033309667423603830265943218822295051781860300794173886887376185445333015779378969722672748814714738089296290697544806223590261039551485097101871998343117626058354031099274883722882323816165588278078961037912772407265836027838036048808053393705465687631752437121793824312577706133836981854645130562824859835306101800841182241774112943916310415060257878986571593475793526518804356476867280883406982372374598074866205488938533754879639127117818621346814504767655156968349951450350193568762300045267285178790184763669316976535338810572164414248727445655940930869742008033405679477724619298843751209598097947506484863713770598259242412996155389528073313283439886907039487351594970341199451046961388101132013878790416716960649083506030655698400484183174722648265639016147559238077702309328060784300091258264721934673924400022168997254065721012606124559541720328168432960262701317759679664918106676240955830196611454826451847895617358390743777158789707795111433044944162864991945895368890531529407614771478814960722246641014691560091299746087575900602386198418659122143013435441177437773700324818957045750041341716614115885907419926403704159630278991026016123363739344060624280964170377291980784601696934527170806523481998376998946798610426005728089564340411359219163810505982456413509715973004641563322188795118022421990931124496424656647280469731667042844157343871756788293844829951090564393710736228693103608126713822354282674544845356152818101912823623278917320802564522982236220206744042915315817354798205147511809308714769927543522165871995976064263090299737616654688153780383178380477429126185017292209719490311886427164135920101421499824560937998770541161882426172114687898322451782260420837060891263784695050461223159862652662053200933956269336706071278865043781863470379039118049262522462646426514175030038818347279244159707878075565858875005675219489666678112050357387801389716902231198665401197083984635067619801002756437957057027107548200430902076190751924993167847019462525417303977451715608083259366583328504250550175074812780670413754969171133059473817069443987721003867049741986134642757183164686528402568165590763789143413857421784984656771681896026991831681004411465630004460538202530735449156474408433848206875226835724976601691708134858012703270948016380915137921114846780544193527148058646052113071925708814668941810257918285754672864925288386134099712211782944991902795245477751211349791504938508545143182137644298407322980900782557471054274510261069749130204741521560081416231014054469119333563900376457820505074344393105815274696363089237166544747544192869904176236114958709302227211329659262210822190131941687400077016977624282260063589283525007860273403359248362061077989275063632719899160872314953386926703449678818715206275362071120635141318432067867819737792380061717685170914286868756316475903785567459448080739011017087638762135180752546842190359483536295885093777807700763880867649698240222096135237822563528890274956211518993869282627496226471521494613976419773207512556773749868524301554787045726674118983982558110904922435285706076529966897224873355235213649350313787396882515801043275133407627241243482714676022940207832276655294058570766927799337690793137200274002458046245346689967445349491723854946890228928598816401953504070808335849117500563932283365464921841298362167623007364305530568610406982656205014367222087059589056687408102527485415316257921048354478581528667289073672014492331015187779652129081266679050562408175511648171689582346596717320652377253928170431478929449095616076185862787981199041824180286428266431385736640569827847122018718272642427491405691738925863894121506426838452428771342055826371959593130739006957501344235926668571014438716523969856863128316287450468681212853892582978703602978945699767965539691595705303121622818036018988997141431787824101650822308936452314478173209855855991863075939277401364902217131834987610587116703484659136086387357314154418477299492302026374458971447006764461963851302358713172755341524550463083663580401566433213590392968032847025206142049649457240153421390418901434651770049263771131905597978575313513840327833916177693420334981772570106133339414631484381982436188693016779498550176729542284097136144421005343168138889436024369649612070364434715052659341347552515981838476675219233709730723419789791870494210255024627699289912358266529232671670510929882902473945605257900435594135780288460915696189006107097633219987364292345493892133132900639585011558246720780811801848724803147756566062604828954215026682030802267683244653757075495669315637993029057775203275566068355940588962987101592866061412352053296234548294301623034573937251485860882708112108872330663017848933002569605552808256876944026971856496303784380061364738899341913810890841078609357742294508629379021521077314864218014200972279113722610413896074168375983470748245814544469165818171058501713669220451639373454747441269618148364514983684021928187409235053599375037202764391182604608140362444965598513195344321732265241697149346022736469317137692143808166967756546200962508381057227382121239375624925216082201015192027960290131803889327832981864169276884859975450448008286650204566595569543211338639754637560929690829959043337314224773216894603316462764414455206812701311944760777796723525905901252241715631113755270048865388362613753641391579005261411660154080339067882805652758800820260567810582201624009651781757522962665138216222409971694483202975701400670231786678430811215755277595470636371995712310020124086461854345703968096486951929185828130444415341954310922040680144229757361054874284181712265096173375172542355338799332817659833348830385906568655756404278788910931637107835942102908846291289478532864991054837789530402619311759373443132193208292105719157512216894019075364186431207507410638489625375325705204882739480650531849311412870237493022974245990584709405538597647989936795995510974136510618956788095975265240240479849819157349025929299768887565689881580063822180306515722009043287274095711906455621903115883501932523875473958196208667753397755576513768368138106771441124489951219361081876379126292361055243413767777075513041312760258820932311885916524592969518798768695937380557354308314345993705673417163629952723794399048934024972504061282588746131784312082223408209258891929076121245734865223439810770185945069927718782719726791559450896680907471373399807192319715910877107069588106331334268445194359334856651953049179274014880550601380783682047277591710742946704498771625605717261451538652703049815142056159440961501281894881714214545900339893103346618434302628655036471517573574729303499196863498534626816770785161358256960278024681957239306475585018881411469420813920832088597925372135673266620897380088135534735826803755414907531148241064955589073257401549441813638737590439084347364324312408873315666708891958134096667467090227559565385273429997825959629972665344367479703557081608516504676432799861299847591733668339117176593788282687948843965619896916749000753361991583524893616628511519823025026510407797096008338677982671761169985224067139508936986783106291050267316034661669860350281867943589523731668934289177215140061324508333019499049882325789755020699311481756255700064956757947996722646542442633072470832813238149055801332697675953341122902904402004424676007628489023811493950358804882757608655094824680767029147183794136051861700090191387637062582114342880901001256373289450564758114293888293177344687177977184262163188935413521599239882050249250010193647383912583891834500416065579912303894982803481152790465729842252765487186955581318265998415923114596588357983405287695785756497443156305560890270872383998206693782698707122953647478843625134308535816243584871980958522544646657759578815632197658680144135639925890727801133172111867123065722791802071270234072647074851013904629876619916453683849916803085420216952152729069066856368447474341506363184113009799998254157334027651429423228647567862436963764885939950954044612387419389294509564253204471038297902632348426117067473826955698856572468781254785331729376930333287624275648372787215359895841190638910955920004942876514032441884885461171467123795099528465798700471282229219985462167491732189918631807542283848965587033219021387035076936963236395170771945734899843291517354923080592487968160287836674139353117424067828318428504860224789906281244060478047666828538558992334901726076737075667894513223914912330786764997090723480253178850322487833170646279397210347831171077704399297721633362842056645465659552783089086009180673015023666261624371964099272096321149022734478025421355048009017141607248887270018130911754564293772913261379228844364431922322665294534205377804993024919614461026580947300258544256793883399486251074955647759198867884679437131233057120791566038845416875848097161556354442439196038877848079545665560809521021964178915580095809632173153635091015139556056349528442519741204849418844665407073338313089968132991512877733313952282862677430264022508421549729742322685619777586959211541284209420812465025357824658631549593715156024712937752951805574653751197263236816454696927931348578741295143789239300046707864082219415561027530684174258051521375884608022606904113558319835126042770830519265736595469688555030439764209711130922346394138898120806746265033438597798551309169446897720585130527917854453421496569490854278299555097370576445381406648690532592852351500843557321267098049450136271554907603844840211353436366268883147233647453236185058069624472876590778203243275356201986407866819367694352759702555395464672907479945047159111080167279369170097896285402349489211514781383947449089197551660844501189930404302652458106994319398041238749473172389779331624629691372577484971683335733302721823873021669953093800059044591197643715825955575124456290924664834192317814516604390852166691785944382541747991832214392032279638965152647226936674411123997580879914302532961075042557567141849450333827005585217494973400076106807105058020003710965720598203640782955346654594753086605144724667375714678486969007509788445705558697627134081451831500611001199847259784807666473067556951826517986387605449771232528113540887845137768184171462296774728783739791238693262146525413187673074813207374630213268551152809642920986551301170243340792167268826253198199427966821313277068201589674656444924870099842995339629978660281192165801855903470943182193345873322703709705701507674594672798455569572158169049553113593740962298702113106909019345944774360074904447732148164545425870855411222420746301442997297537064017430007419627549009138257286248467010327100639891517442790481068397218702251117724155635137899430107772182025307673868039214873592366100738188185630484100802359725393399084336221567196157445261598411331692465601589714157997167171893759219010934874591249774222610577932012067818635920105603267123465485691207921328710096557897628908864974592302301039758504691479558922676345865356454785180052950684992278813964905003363388503146024047916080722613412606800027149141447276421728217423518962984505720325455437374719834595704760447501691712335066249587265106449104960681569167554669141259894668354071429644334280283486097313046569884352307029467954030911323422651817053090898762500037785400931209381960977887415858380714125224607187588411441559022020712564444498564011390572405154821084865584363209456516668555988941247292336153434447475688705518045757510628128533233887033265157741329999538818031224403917869248438302688718811149121866134740331999542149679989135051530387198542270092132481907029284224437396091931445588485236149658593201826053146471571061541934711355423030514067942205470282093974556967041593093840549255988553082755812899650333021231568141634821034905904563060893203878642889876343770283422057396892073561292806138844299948621650058015253681910536568529291838076529566699034730994719597555233293255235667688441340830684072056497726694714352655879279625748354788310626431166792583931717619948945576508244572120908872459879151471991203110909361229733508046056199351036092188539041423282125453867536591206415591460713382719684724499043762934733084324227396033730152770547505203377051295828164679148127398481146531635746627800339786914422230253593232837334184630027977308712749833715553410662721195553848652250205648130330605629490951244363609292429865844020029023106797068380761405850645096971637222014136953659458246076951749642882386948292764147458364967420538209358102921692683289795467313249955298403781561835610128835376421751579083270813300022545074731079219345180176568509870256251652649351483699968707328314016083624139293784668437010922271115016023122395423335366058097169817103110197541344872139476564243709413826117327239147850965650660203834789443655465318325382888781537008856046467591038643014848016490198938262292766748618024557718262474673174136600438987918720174096199861380609324016540752474143022568015689334412515388158666261786765358736573424534982593236155953698300014144760109910790775840107837255559465065503745825273084725322928007402275189178759505268816269624247720755185063166937893408386185331835809504360716049181241779492514892868157667186776718881393227556311556551970684137746689226381713709206420514441514326213166127602194143465947109863807191005728174405162564385406477208974264855565886062833792549964008300123024170655009420211160908650010510384505898905609623943175898878688096082213451797975926602717703081704311324939721495563368879396721038777993109549377762272109486974680567552962567333779002898042464227916751342244393767279690996298557276314441438627987441996298530724868753827520979156254726869161914187426273605870171828884515433738537961625562644123708180970542854965164909773811536101471074491511511052500125663640327783808751211832912751423510150129769511143705304482354014807192301361098421848330115178605160597983162309823523334973254507258059643165295981469222041908024556675444755063283846412487234885584910887987018190452993383362577550711680481806532716988526330826144169679033798394669085825407694489619431474661782408963188854759697623535158897940098601989735799244963103112497081695604859823665602151144472594066038626322397537916090717344125513706477879125142313306816531406671544255699016867291310690554871489150749471826214412395915183728777109668797162283350038371782941030922520969239972430720069276441700113711722041588575095013925845697760476173606342091399875705145210421165934864615838559583535785600250835717565604393515170799338120816356695027967591310089941372073656306245334463681244249675692866976397441234523054022522073589985596108029112102448222107107488805578365156264037992143730209465481776142087902325913550993226231304400378693180975328648083247061370771422229807881320216258586031085509920695947106631542937193952438575625384033302118738157376627495763902180625070318896828324713765913561786945850322317250076038278623530590527739923283944949182717751647792824052955144166695142054437933555016220686952800404258192045148975274298508596087125019177547288534125569040346892602358694724366275146059721720741237897582966567348055165754492515016232827315532371493071702640069409223288764863093047255199860250925683665403077853939248443652647386206768906007854408144792926857510607247464680073219603440918162736517411083358885124552164949040203377943045522788531007536347668393322832563404100509770154921506625133692376489834750244644054738176470584680677033543361440287413279493595914891086474830993204933160936825767366228881705444235315845541079415630561336188448836381725568733504816894136317494239764062733684497808576423295836557698223785274905110891647969228421636612744884143027528115941707141769099429857488190476535214641609302543729872890525615284422534648401280149406617963676982341897133507860577041859227643388997875767928536701234940126977365076649078799782019385295674355982449027653158225784346111832702011504433623277489279441575107106088967054748994721968962996777479210347532726447396783157656376291223738650930658801623139069160183225948776264791997737185395678916570404939992263425374159025264878749564447921572830614877979359057525095059093325200401335310374752386844233513002797187097372937578276957669997412151594699989028101479360546156820081130656217208628297412969031926260550040065064550406003082277656647736488853771974611593168407204173351633063385396522746659049885287119294274047241353451946508148778595305303705237874141040748458737528642967480916312420748664800864370401367700586761256968669770399320101277625059864089804260719146322531902454022050716325697448513149909337651816996091094194711760279952922412809015186145561886256743049884824660630363500891081380291914851130706338740209424218252034006348235066197574372710564975521652473855052673535100435588751884135896437241512890936632014362183869656688375408397927816360204637218187392994175344488108125261655051666201233594887505076146703924499163650654933407877967884655188735717614748855510779891020609247187538303689503256864605460703945513484978297524033005547418554930493196009239775153742843809198392433488375602769397675126891280285514939391208026220006486371902305299051796058695072105026067399431040603946470805001792785434129003104931210502340506636498143489520385024347269695598829037246915578399811465127265399619753624123795424464230689585042757784162305096570602004530741040201239716401023025810327458717915893273746689887141522516866901185335622926676864914457368173721364056349400696720035049531002149418022485833865645526110954450675415025175203342927071360047562463089479624745257211058839346678687124434671251127502296596958316758750389594512244626456945096582741941714452810545981441210257702524199103867975501850818736200725213009598866782311853918233181065201266218498663817545698420153989687121918445663683119565147029238781230504593320491596064917687822761956073031899619251581849292299043521332563461502272254130007520606244974421382264783497135341185019119102728373921547244906426799602824267801686346712911652512580636598108437069419927541965232612183284204533560273217785547163377793959278618406638975130779998489074701613964896572755697598301483135670218972263595517995453404948744168370091613468936606700863876858293116966139725000451425128453518072881347698527275948212321957183135669212552887959677738830891116038055378143235209750838079830326656516969254330054897421316692863758038243653658605351474530205816338634997758212674561074913768443371384046748601734784687987457514744089348435317990887661864808456402456928000107912639974162897717010068603351707548510213903311903574013723737083416919260826177587527351249055719347981530959910012376033325251358743609553364577131009096960028423000086257990822267066182484987462520370398409488537631275278341365032650259025315571085254405618292710571962137459438543637317726437159980329799086389160436681476616806328320894336823812554731895113686332700447451521517789238242696461313238423269919354066664798496047545628851314356265573963796578489456836871728240319643713099455859306186525756046946328485133647720014126517822617675487465417093920933616510030035461385447970223279561903198394857998888594095527319591107911652185523140837963596939144677148768654069498790822950056116425834307293602522042528417720213836162605382968752650914264565465229718423976936292228738982734156664709715047043704219097478955553956386742276566910805618709298149705476630211034219086462628384173779161157971796171385065726185751642613648283565469570274706760754498527992204879006132145209701271696725505320350979376636659631822894140990673958780603637325004349832733160482546349977474472486581398261861616171471297440703673743232276236710907995523406079630374177051634787460806864294745877558650931836923137548461052657497236828281618719723960287308124144267970270805438418391409894578665641488112892440556530812080725119415036199008763510364857125766958956842338225177277606190387379210751524365995098704645724626037388225590917537475701094718541748328271642083716645559335831081456876300996452650347161897334503704937088680136252507407521267367804394942632513724396838284726833506740791308710160223036835995177998306960546148731036245754010596494525354274546986078249172493345558299749867034326058704966226237507161359634829960067971797486615373234604846489957327618781966277414190252296761383040975171259682071907960196882894375260370188290460123411434496228488942245353055356504848051367769498514630909886503754423546017559283265180354457479717011139746686135339264484071303914839048682425202278830023266305992925350102070755475034885990309245297166752944825882954139990259241890163635560908681688065139593262217014795541272099658337011669499408034059391152804351184188573312093920291551404149227741584445947316019519284487139920722994317715153471624958627005578059334583855078281211639709979890251790826229153576635372687732279531606040786298399117351849424057807425004999936940437193655378306711439333795800674911938993546126463920462810575018454274503967416875371080046345808291275533802622898307319488552595145326267036588434777581236343109929086577216295287452798741182263436155144269802936080489673128374275893218137686533015870999016664440006217554403750915396474301356175040069598187235990889042316011313139237766920691324909212371605663663475813284698594347757008295154933296568907496582307438970535445601381275078517160618317617911971478555535032719760919125044014760873889881437009168615082844527662704803219093436181544941493507913141353799772958274761340710383497661437045443962327997835105371569821422490815331362684428597713742567531478394882754832359981784014086775203602189681390488224188834925101334287173962228092882068007337456845680822652520585946666554301427383649238703276900928833582223774811631330408825405624277186807001528171633730781806654006916899186670397842289119013442800071330236254869954397759450875841919166023842413506076447763316214458224592020586239700276392859787165618778355203024263611415830321821426236066101510350883031561770916070037690302922427870799412309759121806942073629224514802234700791560375043919155480154696376413185911234195029029232734949676249038062829981502146399771549976710606564340417457372002627070021485098633378675158731323186387624746174566966013711812629325948733553142050590344245332235171708011494510362468953112506151798737579181970240353176738963126342604921842851247872755600295098266691273492463412289448630462369903599464969343103514633630551125830472001811678362064170970103801565986794755112840483908328639685555353215859070636923459645397497790394935782203816930573351467869784453158404463889503000126789689220387028287177138689193277444960021887772949619096364631687939684161756136053907215840111827082401160702635041755764340934791805096528212613004522793826069594077410006209675236909872601930178933203364091408678037753336501888490516919428278254535867093080938332209043572482999594908631980924008867805052330876292209993678389213294708441032348437502080567451733708228259882559340912871937555644964480075239563143764775016102567203687288739031072740908655874224074836014928934670894962081284361287770399202035178226449400442506119343368764988750840925784148831920325550220446722317625212745869079404313834950692833692377428510654084492355128526299016614414420052189649120140401075088434860815483617507986117366145396980836190515563845049390521696033729919550588470219062267916593121929318608892196471195771036222160484068542585199706660738334015904141039006283417252511922348430663391845001512719284023910737051786270094498632442154190656186783001514000784732847760869824541222260315538286426123720515827329264971663458535146245668242805545860861889819761351822671273197145746657672265775701316879566998433474220906777953369305211242315523289442574596813510467369880550701026917927052521555372637139243141087317592674626265975503711360409306660448393361432005316281702624074171267075040214567265824491730841127859816372371233017525403358760369921427258636694274143280089449674571885842854111859337813695941161242153254774234333923086706773347720043561359136784113458802419669629740243043327891312085353037675562035413562572146338990784708350720827350067839634724775902313481775519093709761705071352483692503539535367758012316005420429058231173089640922498177916954251230923210033782819666930940455940969841301519995988242265440628400616079017308792258074658257733038453645290408316812562089254617117908983876903550527648861135923726204220045675720348286227928905590943238630841534639620297079825922755046303584118273293240828163877534022400905873657100615836252379019899355195146783446629817320796700404309248411242508140232735642088131788467315790765771615408642290655859576568870803156383107217346046504938203078424737698342287467655183849753288864664614858375719333982925054082014042025745749990472936533004797005130620516754691896949047405539077839593352644502286558621229943670847318410429258490414712636739665022000964231756846703707135897380378994058931686321988794570351373550607336796494348604057455852726917098128294518949919948475052640063242967952486509210199041629232063192227157846448087068512041454080892144328187667974842132644049699743465812885191814365003045933813795928298414844383093803588060742642650721171126845292951514723355695356945294571188468717841092574728678684791785199671556559418543531532504581808916289746079667563146402834492566586441374906988953581203811174313719226313321999589491773345539406075595571568883701187032589271096364525012884027862798642268714072581604463634081197665697756413898348598806225197019758067693303364024254843985413536239774924233516718083956074116238164326771397771274034392946435747440697013855303861052369378035172378636123237626777354525416769266486639982775763935124438791928172862456929850369873914607475345318586677006870283839505041022497267671869625803827225266055594169399162997557616108041146506337140074610538182879352702498932746492568787189500399078241114756169154706545107576862783596255225516816651049879473820808848614733609482863091397445000262231495990772834860330811986014192261350400914162194293601662160395375163847438553500539002470409254452098243751120759562889498451164700111554812531627370784793785726602405979226410735358593061092327536365192425463460352935699549214240510082193967344988342334027596273553230635931998872368654438359066550961224650516585748433839285070489316950681571942934911530124781102868294944082250951101171506336685161720618808278274676544435069485524892406402175233565149603253194318123248005375386831534482111708959204801128135618608915111310641934847270856719690841407095270336791110800437591996599868137371733449509626458723691832896203769235298312405025946798574498755452828308898705145162431572917005835795694675764493220105721112416754991948733366200620179301849696784341733988231246881652590468416803605807182731904019565289999643659801813140465382704708689398496180843979737012946714072344571594312975524283921676909192151541193323373201798448261595333873041186884753047034388034907079364884941672589791154702157474854785392960759629202029158970412433671242574645991712777483812393589828686671015024966864233203732893735910592132196393605334382906344725625148288964842537338813100431370857122365853924738529741907855713783210218038351525893451485389827529661386805450922914647486372496382635192829641466925913193308236454950602368365940573407865428701413578443802705680391280992945065948667069066297660513099235215759972666157092610099361408239038911162864830779738769101297289789503413205981322483348201244271961195324859287884816636677483406685790088907760533835692681634462479981897732632482532141466915050727875398753989258804425086148634759550320835353577371976402361730170406254141706315312748609115256846661520603773993435041135686678453700764173228718049875941753955797588724594964624219695685318165990038201485634474568463199219658955168987109591216468481477336198358374615331137990746670334082698961133081180118136097059599919875685667786631027591922286822780489399508383072901613245469712118646548786307539692892686768431681624130520542053631685714152270160602049552530027698325155197875531985335673003180364390458628267541950127180347699991754495815598719886187304966019283333392653467507366833737115649216684866505388949488346739366340504496941662424918543152205823100684272083348405940521606734248141899559408948661326710984348800438664978267818263878259309268097923420949627432158080503445997541642527007993098587522810660675804231209033156309072833623361600430084288741666860738501681057666836661175780825735434320956054561711455530325892208649887519051186284691971800565888273169540129226361243356744386461738824421355584341437709174247380833632221364619572653880779623125592402202763310633640825644597704394796677855348105345853061478624446142066050123111541060995020235594082832780319836927287080244060396177741739458036578085166333537433926481010455830877588313869179185041689378357476012400924818227182573851902254812749549826309721129542869888835540668473787618244932396216400152399116155013174131350843870414217027308252237849066086188770306200787378474493562785688682312539119140983139763154090997891786434413286172693606338532297536525761196177902384363468944429042514103586606225915823112509622759728690545679129863218216693797126223507613513107162738656527529858091400702996020381797327346985970718204461968850870165329556874619646570785216036987280265545270187731253826167915896424078520372466885028103290274656658401454789640538334810814056294637662410605166593053054276507533199455207374113912457945121390756753795368688358672725795841824237811349961675471091614363091709850288035198309667870704737878934851381022863665534841872181203704936189754123313635105494067922769167385649445462151843500565431503843980940756411648506863261917708324580882095124430488148823802069262277341096832561089246213427555588802693791666541409046844649077338253617197683014094129873849218778563936338510126033065947776026798593227552996395631141974587459025616477080396943340701173808272536175581939266557794830439798979955124642817760669055684603926060513433395483456683961468116030027910843020311579490028288036377956875837792994634126056038780499693753768404802275747532338127234971924316696756431907962912635264052256634940230531483638509025503583014072002900928281173383423568791787132622374949018066075710142939237189415066452182372387328883617426975111125654924779765202022487902769277518355119143518327015413746643904680371423781674047062250938600532213410271176884074086903000228694864957729608021138429983495683703363870484788793157243753525669080506007524077345189042865432944404008053262851292001974925616514268914727500713119664049245660888993215412875887656522109150357924651968057093437329530673998114071446964229789867891544448266498641078601635878201921288413671681929922074349294073908660841757620309758427133105875675267400734551980513898209761458158901800413642478135693562065176276534224018443253878455075940412266404072893978426477901222709198440605155347655572572022352900632177384140776088214048545024147895190479837362734664603246470045113290358760778424954926657975608146221532727175978487826520136583678343933747062607535847262840598796774729827476485876434025324056150929564904470199985474795470762089812388872307962348625124878825391384134259662292376855728463707285251124471124233974331049479794369428230071430200279565306676039070199063760735955778361611986771408510612569747875433200493906750020689292653185649374293288723721650716495038281797508784165100382768199496259479794372026155392019957425383956456449013916075477095048089432973460695816419532116350507200650042865136404096457480127723594050054198631498987852172519252259218626746670391898088059522922387648871048905913161453518483113985800254150453415666842112647831780179617847819687084847599561835197302645020099868215115233329571971655470942601096473123183245980721411481354291212875875109345893333577187107764957480015968347149214417984747446261672764563222237743311346036790080576861752203141034022182559165957404910768456171038510392848828816784547444717484016876916872076418847691389875277871645703489121015428836966709975882712569702952423437076176722343614811593033829530250740390320214837818580534139161117097529674095266759713683299053620904317106621322065729303739079217424182153907540387530756421084048943825250605658811709418542532315429974367089658224403460098593311814473489555921979373232076637050468924706465286095450750974550044428753653125435268112056756742263124628360179444339290093656788568272879838475081840499297372312245569745432571472433703030912280066206084994088037508541368902911452692865404025811227353764166337435835167744139398848255153138084641592012581500632976849471823221372937824418953259386064684326625158559998559032352509796731461493837411372343118324227736220572152462306434446151046946590829581985317425293363990483676903099124190625412622540730900252616987925066320313008777661220109994945467664822173988103113211793396587747296855840713691742398059755404566074178408344251610815432112107988676776366479320483573073749736154010713780631003841138297854121659943519477733941010182294311887762156085191024381415486509280354679802972013739773156851161028890211217347238430678188932430436355602938778885965394122072059151970839616625453448780902891729392572347981118731731853518664563219147609421365824793994848782259873444510578579051383535823633104214971044233305061906168521466483005120439021690227719336921239079278523611611818699655471386984439610128203780197669560893236722539684541486090967903722244989531518866352258174967763209464690370732134885664609474862288128530291255757798290019264710032665621547590970948954267382293485530875488907259915250716220181953174906156032262389168424482355881965011089097775605009357655313976972473281010125139571531578267316065813197366210609237622451363707206944941965782552269534413241864067914947249471796506964312559208054171454995468208876384712046196326005297724092888701751657773349576486003347869627142109653125069710634951621480397595076105656374372253253578858981271934148992952185759685196386879938245176932992392997781442099026138295894174058355415831859021639287341760184747898874212384174150067479281720494222053665369213398306723802591425980619854108351021489657426779394235073257696861470821205656707837656468134415259765697216988275829226579060821583851137225820705103123378069372535609838019284724516899616341661416082364027168036188549086606570544574371158934311705719343499766743672279696580961374596878589703735076238995302423058548593531046604643929741411394567085873143827337029334273894187530355886160668258131049011641671523340883176210661342058480429288132641899535599665680124754173906680981080556373722642847562430887921629409834177680945866665141753500718413595911010010198722582027586103614800435339811467570632396600348417462240027367584215737057761894849067144999655975959017926899347614302670280408991768615656119764037657190167686192467115593112125854140487848641474962568846108250835580804534602791707727203910196203441751954255123724703484822107304390649816626258069538894629995560126847433441681771705130929164362562034181014324645356858651171835130616032929555040419130747809208816902935267460104917358425134217290046318810802008537969814163108931033569277435290019002520363134696848654070889870615449074493648591193056452532065276394914416137689364837845719903133063629396533509483664884268781746804747905958659272854736536365087604674781209518543885861857811974488243865322927847873403982702864191157406988248824596021936525048430134717665635559052140533700024217514624021125945209096114914899167715248826720026654662833087262168685106371203432682952581298225047376300422558082397076333754641593931981856394321823276982754492127697151448650916176465867316071999698339994789210514812067662348435239067786915001119176098315805863667975787298942720088073437280866526074859569564587306527318972858926447280755918514555050116857073219242890358847622925240608876587873667739618998053493715454407600913488609718109814262920729705922202124587052638988989599623439904345962991420771143301851210855264879177576463526782762442639511143245238007788254215551726119060204316557733101016751569923944886968264358453104647919660025272473034746632608211547129385702910482638552423761634873267141440842725158559170846593828272935471246825365089382877830466490071403044963218240558027788885486329587778691063408584579936063625432029407657435309192869285325270207405992598534851432349412960672092315613211077031380590415583078870630484444055686343303978701095110749072976295352568484718148479432007033323039603423456663792905756591699531641592593520487833774715271556818427245046915408946816308137559466127956122393048135674594269170893620957229016061232663332217622468135546461468915821690427214356686550170776031662204724707489851178694934165488534808771370363726996895973273408837355372528532101033685877802487600497219419967106890941468392297379226920175947210770645272012154266288324385975837859070980828532108235958292276082982664286749516580131463851056086661520120265558224814821792370231730092980820768366013144940827333306005003583123207595782832052682444281193897385704736534290822745687395869526823521592713264767305025371137304743523079554239339311218409796573463597584103223486668124809399687341280704327577200893174284701695778835643994487168995665917117808091786253864210964327813746694677441689871579102695685289416145455790391154346407694368215289902890257028799441612959272786614235460662513344968919427260119898576985907320522006162402434301710162761393538868224058540095988966151586076182791356818776737922923243911701801026908208516516550046367882200149627798482042628781411921914557551503296583377355140467527596750195708997787986397261563223213303868760376132899206359915170416008319260397166220371848758626123196434756228948846359059364604112703443069412165696295046239051638019830284966238919416955814013116029219979065882756886764245792969062576800143347067883184494859599512123348681878594658980831551114480318692927198252076427450689905140770564715774476082856211156045858825900855715392739063188194982551887628309941207125869996421701950305705953737261611500279939079173488905860675542057253388634509911530342481208339732727854766650002519741601727665847659284316776964422750852962864518508381768702320159587260123229672519622954105673332022212407579625872338242045358652410642942693004438694138202268516541781435577569923899224392039625509639550060698010972792656970574531100825126125683868915258345282986521724559374940574105322270362762189763663136884312340293803052660306308641680505835765196644083892854819312413804803769436762648279253743312498681520181262589359220289994026573948486754212525379451140684917820450223688792759808884264457721452871044596275911375500311424589549295464001820810844038456901603860104091952316833327975191075727374217096720186794742346242674675532674892642567667910061589077687115437623210717299894105242618355343245205749371261988698270199247729134617964361484816397992210388042550610608633088451146626953335419121763693114089514879245106166520456856244680512396515067395322266029954424993850795985706348220091580857663729830718927450329018545191816136868544186450546024054276247954644457224538940000806153515873694964277858791383016370706027438356905625768959021062800629920983171571141778997336262649407566711836797553368356129843780879119603534016788085003090423066385762822582904415762483160532659888081369947981856600429989771807170077560908758246586800432551386823294998911846104365463338706766848658118682483044887043180995097429117551320745287549691287312729437131703052211781333902538781961073061397302085751640759841740649427011599341870588419024684641271816318044018902605530869299545870600542053811967539911008429238879380130502829722863751245020091100623111921302826126487098797917964115958769382966810507607468592681655945813771150623032339100091164060232034218206751229317797046549911290290427117917439605902362747794650729290938189450054180040649849482236119502670060767233027045238837833704684045822965018978570955149766224702247553286843944367246028340622477585012147529471806501558604946480083114167749824361549453112428718990382975527903514408151534877128250354232462099630337921833027184308156202434596265019621781771936674625479479489666798164366070480232219428714412901433896523253948016723868085340095683832910758479496010899525114454394951132215763710581627780103248718225447820246420073303515436790181398250319891036717395712227650243690124406828506892225617422314369742441143998287631848165752639611779250827669530930769414565203462538474432778092832270176526793517171425651038619528093873522009726347325607555429138709542341025752710003282328382078387994101723244784042556560827464619890212922972862334666375895227661985514770218548150025233576408839044476741552396189697663292076742911608682317828598439418222326044106759415620627751959264782776021921061828063322414626639281933171789087365085731933547568480225142366309199844149902248296774355595006707165562958149593830826609930847184072324615794517996487545984865972092878951803410474941450506940265264609694367355820228546019342976239950955760686110085126881987165811080592740883934065438136202674472969777169519098297631337379335089274046727818484807554608380087395577314537381020766047838195843329086867649243822816443410822619613934125325441226411960763738825374860821069589171492589565380934348274875994743143268609604792342410053043335820884410154421971697088170541895883166731210899168274690171215737170408723379347719445806451073324619939209387462430050826594825603569166400454209269578086925686774563071503659511654358724129414306169075428246154145743852457846390946233846959257522137649379392495608718376974030167949357950380327667654239257418928075182620389131497783959450039237530469610932090263044743184046613701435609802020834239637629192950938331671487580458406019282041287742360768492372814440540365073487045566614867777051086166701870139721650064418479389845886907016699480765841385228192096735410100890941754517027143149059841863679695571315528032723478769215435452401909675774132652545085798429941127914322781762975705822453370600855542090118470440821031438384826670616271429725492704633884977972862735903017527477525199525046035263612255065181823112591310430225235123846588155352614421585208857796597778392218587699793050266087002813690308511263279113918857976421562341774100977515761668679193894154208985013769152323818984799697062807247231458029206364693402147549701468438802675611968243923972149535997627278011282331086465523131874867842933694468812651484959842937411531499872746624222167461176307816076645840833758420496768974470903247306066782710030757735585650487428814444057191455504536401529621057489653077585696639907645539999389243361299193803595047788372703839708865787500150525516132062100573651765435652667470999471700610476859928412410490442483282923318118249477664940913432844764720208158370764120833635879765790997587129321170835867160749500940634129225481156342172315713697138407647126275784610158522408423823452583057967292079916051526558233589447107523580613278261575078247493872545924218634888371109449910096234992770752780880867081786874103639249137243163105824463566885566875605805035398537365278842613626842188706041498146362416860937016720540420323956954076045944982633927333129898042907772798277494889274545204543691258740033394412461034573448386394990525101913299782666748489345137509557183202802041466131640081370890719481653480308546781819147872314886745616322964278915903685302938701657234647265579192969691737653323738665850363660261387804912367635446761867373911221011780729093882981954773477901724855347476722743560638741970680310549966515727174408554107891889017547568822545209392856924981286336210111057375013879422612741075589655803744383535144786183985593771091192651905263805576997066933646536218076357966841236647718961270049546754354737155276565023780811816316734287956655477976847401945485611087068439746094101339128853629061161164616496434404695922039450982762890650141576682520108993663796345061855228861862925733188428842006452895568557532169002678699639248313717707787425329031715518932617787197736845104526447087099481810196732392659847105110994695883873834778604574254454212964081013436449626683232057828965409829278087573838457141633816299098541183604451808262908527268226824327465349969140831490267188668599674890241559568034780198110445890132373794556740814450665799733360523474364568080505814883986588275062212588254789823292518324101773324782157487508877946892606749074396959497985880229894313555557721350945268911387355244586580724338473674200257490988800005968721927808822216504131153445394637961205289888800980924926343504272920532500335721352324604500002373847563100409828350004048443619473179491393316951929440487603080388380008663544306348059678451119777897684071659957773050770231738333032293833648571407287620540236055315485548265079093454152722519741111276820419780228456850247807641899037144304576822111509734636484994075752568245577307178276507657324726472368484324396748399373754878059324042961965184142638838459048422428739943262129913028890599266187700568218824161047083751194759337477998166083416071281799203933296614817224392891227311649397648363787975416168750517676731640103587169323156920538566794052972561286090254115347819010389493441239838178552183387925945565580763816963435031299812368152473398804852998616427568811534388383199102987731154236507512795627600176230411208368367776382010422005912859940764876557504936069171836273893993452778920725153363774838484047914470760591729976473360676848929436132343680124244917157947638663152459310822997173522310201358805259825386392497767776524012912897911788024589149810775463532251709168542870817206924516163635870054613687304243595351701850294532238850803735496477959890452277547889145817594160143559640906534826732079422282689146101361367670988629254764037364431681871421230764505590525315169972897514045174207017418651155807830469915904331302366206817332907611240799826755513299210113297577384814657075263854054142229985743378562673370366202178558533963664476324286204738591401299774387135916203349188233674015423125193838656161603435026884214519293307140433777458326037781517704194917926772137238606597650373049237335145999694460828597292642124143363724846911380112667323445559488602530669571207360924000066057905194177083037458125133599749030844144004603105925878761204621426170448135384151827477449817890732285850822734115502828160722882975765372309573755969219890825564505932728940741100221567131101486773108447197337039830758907790038825160673082115881109183062596533439493411478760903740702025243300268958409316242948861762598599148336728000324629476001764628531619741662150072751496174478713606249098756380148792915048013034734457717897570822972972812571150789332187615748982113203648043113148265753100193570348374379006342685892834779250021727976683572738007623952422556639953940836446019897389404096106549227155921869415318394467114746774182285394433403851248881653732127991117779465816829267078801170245087215553961209478878673709468157938168593789436141269077095010952777495306180626447595888188041013235320689051591170947356886964756094229059174890635359670534246510452718265281003813481138464255553935237782868843388129257660632340326067379414706962117747792174844535904466318736111067696381226150130762287908468793323342288637734153395443698337218792552365772908355624366563990003513544878065907121492932220706768894604037490991547542551548113817483342113034053256988826493583622917010799355093851126969874323403998907890866048589567563878907364965633239128167241199446965517147375915283991351820403096460909397863243885195684737704359252564623543470642277936271663702234590663106465068809582716168318821276380519960929694629032520855819035869001888542178907327281335080095647856677516925237876401412666624685568409307384545038761992207791726647802218413142448649612517093136696957968466932343724381166875834169515297339412902581391590219708348697204546936061947038696260856888805788027986558183857108605973926072076565744585391465743114361475628758419444026972454642978841018995225184838438398087984537657406878343881844395667005419691901039128026686706588070042487567074590196134689483562584337598916686671759759151052597319597074633510631242975901399586002609323255038200735014318897259921076969482650336967202152700726673237168005341131226389486356540149753189490928949293547637577442471510210165115143540393940790713241208329329940517047984709065700978022754234692967891759642139836391319323016432652108497260054762629368177780750257279738060162637894532712016347758165158960244682501875118517230095668038622722108580453803582903789145512344463095929347406679345435983413034376001837892442253691043397189240404692239985260907074731655671551936444411199094158979544740341803528808218594437068271470439462883999309727833791010490077930228173309448239866552042750210213799269422223422881186671326963704759355844985318931218681129332135744994754217581346462976442447920236337207551535422976353667024457962004261658799677775098935283609045398704926542873152831220439324548236345602944095408969596903741611668182398930624156798825017411746375377675916517144408962707106073867179534022980367725505410938046254889513018747571311306790034399527376552042921744808008826867952551625518266209591869087085438219276710927611309171679373461635224255111780844245364125981058651065061455159783223785286694147063831657673668590810057725172380543726332105777365938577880959748209787229462512734900342541002588994142284017180414606145594215679365978037750462913039816921227612158217508834712899564326352236232089307350275218317357755283687703995282384976759843073445213858524548167609307428413888114228253357454234793131125449909993601252508318224011538209884121646466101558981849221713171606620762033320386913209946432581393517149805095415687817148685517282571517198618246115927869720451950221982161399619492017045312607415630912985839488441386043326418816632511251881550773641080628380560083410226663609606251896439326583264771081040063003425791809655351374907435801654559089528534605334850260927517960894475707087740252223486704375853163391627286525068143476307894429291317498635808738482062663166455899664110394576863224595497354481642721476390662348551026934540730801700529104840365228174110519115855887221133708341186433654370279596327306380363392803431999454484831683290233423973754319036556887635516934540933913617850476909799996151039464697392848617679445342965453232432552812822094147856027283254735406794698632324660067041058864574388661868832572034329225762008381403197589127375274639052437210910577794340809884142022223610737567660256446132683739992762963842475490879513070475609471741337550429210057191604200471134328126391399800435273434583963316608482495390190223833316838710063773381171889583099623197185117950071512384663124404518948041571594913077090407697023016803381171369515309675623327511799125355764536541457300541017153471684352519065924274075132033150186541464854844519794038146241790745301807908523581112772121468179333555918161467401409343720170930988987494294575845414333099053655250298962151247579001143835922324365035984028379253952333288185811403506872905791854932798555216769272791101837944229224718008455092394563758732008630854644461951441774685148282652985815210585005013224402068892701158047387380004050660190638696297477158163668774053971828611321654537009202091383086538926540234634243319069467376753583146062038096291020593887482412378286781685102515324240103978184339569213782716959263414298669428977371856349982160306093077150427204999236485804233769034272404414275298793702787366681011121575645838765412932674621992193162355122485345741488419114807440732051913980562073919538441064946696398774951558406124201258604365703553876651343873053116994459284672231249037446109614582500047062251071402666075984598008444401333651665752575747915122955628463807226192240777259164100961206485460065592798824815698856073689444660167530763042314583614673982911403910373573021901567714073324924202332378592870657550492339799620213567410091055090268906383113044630023000203914501539363644788170788401186121946836621045369126933034906729662214337712585174389274945102352990159614140871335058948467720059222121869199725073181110899409225018932636435123724788458359172860032827484618861813562956583251248769301278629950461486022360833936463649324645369766034173776248757544297521046301133398887473547455296510994432497801308380888443135967342942782395075308732598992974491679170908676705872869926089733817501469507631411034914763678944228823850418736521935634600087601001266667521065073733231724736795167414911083097527827996672613700043266728096778724001098952765337350221683177847866690660388695292736653005058475269965234818451906007642332655316928706819875543879657187801008374628665303575121776210761112060123677740024715904605112950017803402192479634096211765392213240708339215992409764060334196713662515929154349297411976436280721301219430761407270377523270145699910983912607411894433395217091402609903138683926152773728531664696979116629755280391796449792905453005300637073607411359634651717141758186967448731951053487225276685142491025076954928621004970157557682789894084585774262781226598891220803861401464749367296226736596572952867302806986596243598953642853849097443252160532393409974134455713582551022641492796884542498964989960157099762439484579864227225961148894662031957134505176964838683334380191319157149339411068153901260989286598947200532765980098674221228308197503001235085355321673561910656025138203823373700363830629203486254057370370779457637537645722143109865025443339365216105837043881909184803639572625432506785516016374842554822869913851626619972399939441412906849331438152074896024889389137507336972945803993129528396905486521899999988339546055022783106117457764277664928446083456454043102903422514779691771020923719522046549900889072849860768643581853953623407398334599705484467046437931223683414217003974560677287887297279894597813366487060451863489396096794967414170388988688879988682965951739535241897933476605160747308360495935354515890106611113936909743913853338206322487332964552176803287709006597887356116143488017399551234071489866523692193267518490480759113576311822339357234562301791444274516184167238123782035006067141758461849200018167714767013083344438271407048864804896950041289947886384235310946714358327619185973504011380029027461450631352419674579077804514049460701071324154512976742913150248919522927850355968445588511651765387571951863085200260517374064136069629982399058260129635011205204410417111795371598261712294468034098749060205319665651264951316333955838596965331617696723288531894529400988456783534605478042438849543758271254704444545904679317722518441459165725507875271992952540011828996310879578587993532953946555179966328878217528531171676009102766170174931696151205662606482073759539666306575348816429154798671050914569039837329376021188644268185260637775377608792030303388580741761243792693642163609828170014682590211380856696334334567475825099520598979232973535146524193972311544560173839237507308013172812369885859164367359305382237311705929309025955633066759116744736763084282823736615976299534869805271660775455393057121011278059301453713268263837093161974840405542406538601764512526527309558952729937414125761071222086909944533237780183420814115877371202277448242586917329187519324903425363050102359211854396721136138947283030500441067997467276349686612344786263568168444724543910936185367788278222767646200866803743574663953149444133528873665597796591450075136985101261195016534941657860637729902496750976472092594084098674793627922391512747685626701606702013484853161308316123246601225426668780561124243677951430090270883273743737110719062245598684319989639556602947164479961809945909354620197900414593423960348907769962269880872535076256331019997700419496313178578517802195817606231306778941667788562556851650184829047445251471125249061084711702945633332507787993675174204330754507977998203477345357135981092460313734052760373682870818395308584278883239774385888710949817460770483076935957850794584847805345388381043249489285071689902717245322073600613053083594856745990506913594710030094045296964029751628860567176333421004803949009842346043683342388507284918540417663176857150317207735486263966637867942886975014255487572818838769846592394917715998858550072668527225510353522381564516604286256166523833930051495405061812242290283203975664079447452892097236116310842837009705156817131200675639599728624961741593377040081540114275027394396260470432416813897251157676209377695989131640877749406102813537077080317300258609379404707143589180303085510840539284394098985431996940474989601845341853741726338441206490312475460919140572299143748932562058923377325160522558757951761035192620665706997808408419029136076852011652279604424081053365880020960873333378380127697542764814688669180130035873598506229078559329247166404537737289916194161776511721367866500229459184209933942349578882626294239967091309287707188059748362449219449347966745749402103211856356043945153574729633565518978639372865279716461365602154995393014190409361390915917232236672511424784959657530336303084728886400129599154088059069574585448177152122562019516851346132917413828031900398453930462641875222889552216413628176840849614006184687800103375951003963361765197136008841487724617699685132347968822855399731742243867683836302467862622437736092945235757986864444564429760757242982647694484549262954668366033969619781878596194001595232247580166969946974841044013368594915893539571913969472124985936457822498685405075381238577342670976145310382121425462783611092807363829068178233027705582131179751761709999260557032103281013741410226149981784667240873488205227407592468487850287810632111272978248707457014348417786049034365228394269901305803502059439572869479601017489953855014624191575268108751906858493493669771809352567648935581199306764369339341588594646693181850352341413384912563728928517070574850530449527233325323292130838564596891872958958015353630268943259520355480090479384557994345194822211419014385988491055096761650883436416202532725226093869134512114798096703222722057347971444743755427741193313660806688579038745650531326713539251919918372681588123934252325119372888206253121228155636391896764218441337126696928056254181098820713745190496076409917705065372267891982294287283614523731391375442151664832005280545645310179105168959754522472918787073522727820539271406409194432345138614957513040901825518862614370432245167255036418364056214827133836931028818573816426528185803115797280080337370626279656126743162782845351741978047289289459228883337520672139055678758004635534168275726366810808876171396766631062063980958639169836238028687823312208313502795605787345781471078824581871138556668223156612458521990039016315497057947758283363182810002066523078887669786361057227041495513109753691201580954238150021013508290286364973453150063577157564294052169098895283543813506632666861622581431330806319355631305552909613546930479930696804381278438667443308185074114250315693858546402841511335533066350133568575513446627889665080640181114891172576352972257989405708408591112870907136893293045668400013721102585152250479628423244460460890173902870298920899393821859054896629737850903002733029761524323130692393649370159362179099881112553521170234919116222873068152384464246103253362424209439851933319765402774454072683005718311813025004137396546927877221215012570522256423716095317280175288862539962372955753417267295509611705460254028819768074845467715670804691750892954405241231373831699025177280788749425450919381027493528323592738707390054323686822418019608101899260470876804788799908569988892845048582082432830900768677440065429309281322475751157222458746202467378782107562871762436865912303849229983933499963432285934022829890790620394333054068971157203975057643846003063522746091463970033242963921935332451446923725642878609640559365616940146025325822510407382314229348839612366712329247923050699114876890840851376190094736143203252873832845808820735960644364138261976873170390601493197097409343584854447946033106846451130946646428443694921726694247823190365656684958162765521096534833780692802415336075565979309996779318852879946086074900870586002660508706644821753910476216994892720420008178635993850438059059573228307902902214182305180354727467891188389486210051963647007281093345580897962200943549545297529971351376934126654321489919730672721178756005466738999062947378968558454248320341254014979658554995533189209689051674519284687599217483012440643733208762839706892882356214890606440228591763922344583340693502317842650582925046453380933108469494469448177434804359404914760915180185738096612766963702568450447352876443997573341559237527681833165892334734097008557272093238559549194092176398304763021123294612732109203648740625161771763118224526584424500739102111625834055847937288333925131993656041095425104796080418398773269328926362559804974421636976234182258690826237046621639934847317218482232720164663988044415666964367381574585970878138021265289737537783929657717981413066103827743506379924779155418649297966538861584782674264472567507097900280612028151987525749795994183885790750390324294639699536048437838223141094274181458415330627149362367592109522912174769903029822686283765033150224538807500932209406178901541251089567286181355868432721606705379637104393436047461313851786773247764250780708670477023126497170715109365749921717110196386362872220083374088743791730259165847102112156987355721581402588450786148434567731453582050194468836736706121879667841180865922560249855354244000588710404516544292947221968722362142260838959707800153162924023486402021811113433231086651687149282191333599720477610351062918641314357057791657427013475596563290575274047433788722153660156422184494497000751407340340674387021356546816682982729400563035231436368209842599767763035326986993792382835896577684921742326003162891134047573221102106199365316700766618320032910445632708317063097029795794471288190143885101299521122614136990587250123027795960335052624546829980108931094135491323223305935886672793581491359065110082277681115087572707179887669153904566125427874151883735603629617373624280871371998778961415653302797551515032777951962986035619366693179715503475600145463376365713526180231858523067182828848804648306531889454443067983170235157116203443508610845369806817218507267852818248843808451220383814262126835368452168628365176387782735991684186627690039234495885175453553991683135314161484844628497159633979498577886361739330972769533044612199438216839780589974023960593001486254186967502658213843576498217687805047533767251593752791284838509569779106529483434816306834464161722325439119786859573195723344714866105591354978249949821450406458852129975349923491376735823680648611912636340933668948306859288785184498735789226121976189113388638505749315734946678335998731865034919908797266943434009187876765135377874758588134364630445546961508319276316772190683502750019496520808774636835552858556071707316459646626145126641208565421046241211990033448573770038437614500755967464418126479083845980451322451737415907900718328335094775443661445334356011720942884827545343427089143972057950320047585046222032212231966295467088337467200473394332555778636782819227592515677102634478922540404589750194832179091882001995376162021087286073471304989165679942556072536228106274784651807542536342519523843546991764108025905476846958274674299878867351954318586949934109700636191525650870460330682916060351340040237645851285057111566860409192796065770725707701419398971458195376333083464558315994851279496336260110327290904424371974608799573849861232658792743968753177517270745607140445091624643158503024687233557697310426134687086111364504253589183739256473791668054454830370084148321581167898325719499625980833504091551197451589095571530304117656385324924071122280425013577796139007670416786588740244058227281250384859466970321427809786486965604887630599653229353219586474537083863584051615583892931014877119508573746553938189026348361090178196256771969737794617979715810536818850885825317049038411454622143251003801824923603820403558878164352866201873073261384129304415353692858319226901176008399168517331331614319323877685783663762536230149545196679450477516373747034299267160828371959775446353624682544333624738060095660185333317580069360406221225245261999261096954692037094957650298414841384955828430954790738516633262905838786569446460385383255521534769765280788975959294750477942384372399246468540967002751479319031630273682600167958582770186669266067679790281795376449140314895900221550192647999124909960783983075740419280138862965552943804394843060702601160590486967018387261822095855666387742393464339132282392316509919561833738911610601005266270715911353249602811513660514453834378690576298444302475255860602062332649490657133093172358234463262028899696941044827160746098441733990735594542509399859168403058862811939759622580036068957492104744899681813944643149697995384352015518917172990533480008767059756200364487651611003610811639875883587919690416562694787199066312087100498528839226196277552485126104186105951443519652309718665337486813778667784231370490816305524020890724743372777631052351634288568267551091162947635737340833454900744155156148484608097804826656664197962096725756747788939113080036043222441950289993657963989213107291210120993532835500019927872499153752477769178277290668684802519965111732800553154523407030433327428667600642426838392529395263388671047637923125592312385622222727726713698547862066424207151165219575620263246384328947391084750819336680613006466777447806904188297268678563483617878463587192316481318695448879651496256779884666188654831828920531402650122744215298598852936163855946114908986924054532464924860078943556507191399237075880013640666379013065902918054226534165123279360993465883599490975179278973227505253600667895891318908210205344074699439670786627582320442737873806573165886858002700429260693149253153392516534352000639068628052580845477509675611968104641481757049117375796169090834168162287276625714868167605969858232986987961821698009990860638293230419842788882764199249203935700395968681878326341305632353393980755479671341167934934657027944993954093189985294695336716718234048431549590176794587906980260446979656498745811054516827229793998609531183940581891935042546125608548159265407422318505900794312681577945448304925376770179831473130624308019906905292430099105997954810515587149492855103597317649318059006014369330370098019634576732498218303710974384316967108543581300938032111704692518022499713106261631921637986640931546056426489222479396594514238304576148791543966038775232030855969056316617983291434267253925959948112100032876265784893491975331157980981892970234992247519029069056778363514274795183906914316481723328680283779505942328149463356687902200643532147725229591556779318816104472902812657098279153553594635411830737278340522719276121350182030595186087765321252656098118654839395850065870622810285051773991569663755440766964488637997027377285456645194952022302298788138945783354355862454760386687316479218895174185845246382167366966182395419512364008865033369991597740548332506883956131809330082756963615340386946058139917059325208548516544599460131254020287258985804928182592966844638187946569703895554665483362263432852188390694656247691013262628345477827494308034938965751536631928074244895340277344371806467396219251470600652971968712159824522667063953590892145639426015269876571128939413865328440673371715103309489286509710025689302505801870924044025787207127485370732426288452904647893817572097134855839286418474949223660967897513377617215701309115693489919772607245376224837511488355036678699556235370182198070227833586212591303958503476542559065435288742976835935723733653592463110513933569523214072736037140678463099180119558832846499094418036901952483783705403961916755756451012602881981823812287465645793317703680049531398729162814547605360239964804308586229069180013318918924462268321380139207643585796805829493999221542206865287468450240763336140838670668627147173927981264020565158682384023128610742513775859403767854128907968481354293282263368315594435336404483351096723436692056977154501741723497812401942636808646959608327159863844424928371467393696548498876396940133991175910895919507909983850267512479566281191544469477101981897927724827754269859302506496619830813938922468785640351409553710944201974321977993135826046787259354343960749779957207248724260271580975432469939498348921637797586724417754567741496235164318900327469317420274916569234724560892822386313503899588433089627575874434911958779390618416924636419644167297663634697273028059740925380174848695048945657716265872107628621170546765097533796002130860694654936087360223912787605128495630860963532981448375957608713279830529915866362963466382038675322772363771968565775804225802990904125684413238851570233875549638452181684621679456075072029630691843679123048609561455645288813682660652442856162073265790656675718030125291295255624911333131043220761373581197060780265767205371217956249552184832139762653902807643607578206513384760131662626809665958237193488085128313687787033537417423829152680403389704331836601962185461769436079212644108650212142597496112603277000973203796665429213561038190693964358036380535823463625676816730424405948761741994216722464626960228970113313036222135131943557566709130551691440614358674551991404177316046214243873582885742034831043358931696149335182703559174169115741226751973240409301026116197650975749517012020803471540654109555756956864532721068132052134097933040047847713971710762903900634818837122863600888340683035723358133025395782704412986900979784927524657722925764079767641276039922964490054564876986434348385881477456189616667931122177929370337437323043331163839548826877679780285046419083790961194989020451648767194382200541975606571943674677683702275141570088300567535541564198018200818496045908017002933046859356822227376013448406732341192325393622584958031978312072346154034838824732523911079503206187045858556993795917700149886731231474309489925236412532260449569737518555700907959815858750817406330921471522005611300128307291068836168674858490234690175459722459845552871321650139148239424248971444111641529691426362549029081267356922206993369174146354385674647015046514539107804202940195671121044116907814198802769227840710459356554889747768152346336238402983940443382681232312828773124777601206094231803872195887554168364856810497378369802398302623751263417315971444175184581213886449895920592197102450282743609474429956135626708938786595976948464892349323168407121907336836740602531025131775621151310399696934438858368289421693563723203090031120509757272345193387582225247887083374250686374750908624900744993216894782029670960156608236374863972911432864660812282548344862842251053306338532183518949233557315662649332638579176867133292997618185426338736507029274321284319522079299805491271007746124982442444503760228446039116494041177032707629482395924022460387216130576849904393041711795490098763181594738824632375798009088730878373365223891014768750871458588910642153708284030760079657485176326762072925757824447598525279996576911737438093975123403948135397978097774845143252568820483043754338957442328529240182256934131258739557506720362961852336361671456452857762365618952706715024400541571944116770332145772852139888153967563229387871661197540450978254527220201028972029024746502349656273948375947690960228110441118216771223488812538536006480873425864320289948638847301163919921616558433380981399950309923656817179530107800643047551769322364873216038725262860945598982258668783330515179659681870282949803818618736925094515838486523204117858092345606579037371954766399484390400391340157973888119495106667305249288622036607822811160650558502886435735651976240006099031181715470800084401354391023174150290474643259346041837075713018710869959642525721771124019923420152941451998831936980033350312379292305515288313224650224697575366318877860929572715187887711644468176297575097287569027352173793348829483990775268372517637349684512143421254229539451205766707087026361839597553855426842095624010849995260703723569299958468923446650495047688215858864894209830904597267690913041523190378399922150252429908641065814174158057251386844910854203862829478728625522903754044748475188583818821645956228584948169255026039661624322665243473790765699011358522886024648322532717621090989165369247552186434901042112537498576710607991686845065916686701226282951376082307594623931249353303878095299721588694344660125166169106044446104408703110043500924893509378307178334316839831149196028709908282536217130062148759824718394261486306584457198656293042943948720727391820350814901965643345580212241556707168045598891558549322242553673647844804861574767267681042704184747623352244928624173314581548034901272216250626884349562276631293952905892193960782933765467295716773723095684547291451648101035088918723903543582941196887936329858945043377657221920612930219015431032755991614622864599576142607532042277703732595591911165046424419428043595742287127098479779223159032542227212674274046360455404913054409556006732854816573625316740642338762175338769006485133181380106495743412816749945135079742199375497755329877526546694019426049699198045986210780264451576170998165606623939208383835008471225886312752460630427945283370449888443322580203602883285539538716174044465394193596289231487121630718020916016102471766518715827570455033955632579641943381793056022499606692043780649308777016027733334485576443304392893459699049550287999067820842010343384924958208042053855495599206662666953559498761100405694356628514774643095521358672314429256591813033110631600623502804803714219045324367098156504144219172965043160687778205841860806105158189350401065250470080501292790437304888139844733492405438233432916896038620677962793209836339172100390892788726934692577387094214419191746719121655531793913394950697883003162416243614778005004056050260584748759996628907949000149212322424450723342310429770180135279918803113141157785741397877705059403995308114046650957289955419075593844868451491838712711928727295464072255157002328552922697759582542934725969016920049186249799754736979452312864990848921680764319992076354586812502082933374805475736750055096664119253628631345321563947646985578613660416982832477539867023429188134507328415183868787096000131271900253929956824197258563985848512566334970379211372006672233702792148663737190014456530819438033517799713108365566832840609170979231095428089863953685345518928148987162622285035199120869726221661957733161193496265699619997855598718258033250906725145467852943713128427476096879316254962005923647726491805193468974355370326392604474355925075713976754414089087655980234633940526719224299666502570736512094052066704060448217520742757712637455003713330021340138805294162852699433954766660701580362776669490549364165168639924417920600114699225928123769040419512375556059709840449159204573410492568507618149143203234291302792501060027555461039984297157837812229237344832271409542677581634468172614173312457015941446524436668661327922678837167236610829474595691110197548785994028594751307830843698137252805682430988229075845193874691919007159019697406502628027502541351855770542088698114332403480013762959545727390765554471689143949166290425711196657171106730349959693899775828107644709171159792058314503555328283136662986837167593066625247267764029305628169158957047579873373694916674394669671098260475894842785027328432412753682625461888180512310630833983838246651164703598458082954354665924762698916052103535197615311475465934897370713781281664965535700303355152771576034829554925365548704434315339736333149390543101770567770428240323171304230737810656828449442624529159856252615699591204503635838358120321205167892801068948978689932479580843970261772891444884285482653894874299982213234171187704918215907261999489469414961174103670678962929067965186950110586145574019700477741169695812424849705007717108435383940942950085673425194187738648956077091808313591006179645312837675103193164473523694995267413559568644151911362872619515611286034448395743478968938587006711737956077607514589240556562824525327876641236503284975508282105915129247598344321144162755245596953492006854771821699938016054060557820817851614650406484850017599059162829082630315560087038108577626482645972629936677356260040581330383117461706572376148483856058341331958820842814638156020924791392350725190716581305786105497991025262038503083285992928244635511876707436116569686386450399565184951012226386884394415693928453695221701762992488019091682198425926705705958550801752095425447222634410406650048386607642381627694536295940767529981172615109444333425243576050314832099286217293099418559020675137259647868441214302909116938965805607406893192952617838076370212294392000615058679190000093868947062197611429774831255332862441357961398550245613529443257517591163467006471506547858723423038063664884770228677868682898964379824864120849569940808509542818491217068226759179393857951975683945745681406339848117844115432232132643432442452139267034734066551806371951914437747740063924623817037361672934900888027932126594435926171868395673264722160487479763005504894423217082754038418742214857041696245297142870409205553901016413351108880983767293958254962136502320381967065878291101649464601829189243442595444763581459340928222444484525842703627837937183313194416650850020029487875627117003116651734951326516631549490963259219817078129172374649579880465107713643510719007442268859772962918379046826458245986673803919705540332661284909372841890547922512007028014381422476017238196256051847605323665089380565739964978997282446311602419911041635952575965795688267168732293436015758798832328388771585993974289680727354658648670328589068969905230500190476935204734793421152011867076036855183704417191003906525956161141288611607349499961676365418141612678834534982373141205622703018743961851836546569756293302027672014496464470891811711089618743052887553027668463872079201579303742720633669474716338708357543329998460093452239419574303773001242560171039573199342955013248572543049751196753526902031517588849371171797821893099403510990319191901528932426601941418781921500217802367459754285730869344680528956560266433480223471876290955325786908191795422328967553866210745628438418147365009796414041156144287774434873520036340622417784857247536474197529887324976066524198093491577717838308473313496863019032967545307677273357576577162138331765056076810198747775737672925014696285190819193564332042910321997808159029788579204292965240940804938939988626974634881500439375564621015338151197249990729797382144841236460752399453798431472345765159331362027720692843052233439441393588972373820169847450733706079105040022422896460984184233162831325946512239055185586718584564874628111752710984389884389079240116159600103937299249658542762721113938476456562594216952731773347591179951806594698727465163479650811594786272004456019577299533013061217937345439214387513060697100058095711772575465041210479238869169164152188913943536444273925692703956283664937722761975438447959415983357538462640550222553746430447589246922289720411631087879042247028642680875816108647098197441238164831214908356687242267855364470674020239642353339411061258530377040785739807976276365813780322704500947424606354437510776990845725716272328394202387407837899116569068119420677116593358238999446959794768928441168538890845572280785545869516556542605666377444542608653889595418147805721646072393099184946987204256205133931187396133295876149174891111466528283353889751114708901357122337512003876316428659338169231314975285225437971667055730482145610637741428298186187740097330660261268292914740900860537332826038737342958398655290297398746528424170128123971390688555151740957184737680626435081518945382064225912739941957465765786746882852073976837919065011774377934416631249120287790090519114979709975448093298997793101471332705485218364309656201316831730179774137475652967340213775496322591223113447931698288573312719484876577194875917157697426026012538749376892166758174904163178938529506509205024860113647595950199806813877097251750792383249145472032823964039662960347413121619301833673502547557677026973474080331754167315796408809376311605154103886405446289066969397663195817538393329598818726448375191415235424931270188743230619407757729418052356590575739087598720230340793220916453021416148126055020911319911350041586127662896133063642922849385864361250873888168301212031054822709700494044184575486597730286312684401564259169123983451978767177333958751527052556023978682963651179876008131651464888166842549314473377169918073669237529530578232714425589865700376020602491542465419551521371742613096911776162780300440383349835466598528033335878361688869280880729670126662564711625505068429708964011752046534845585719583348662064113862171517622615808993364578283175736782073741504771970154490817776982780791229824599484060212794310372672535169928715236780038399448765153895453177360006473321800764370180612245293929163954753072811581938052257618875089222570195182165205670625805572878103238122181716110596074938062259186165523169621274388597540833339724681311140985328020681576034382406608714705060136451065044152967429819061304786310109722025062624649441496781044103600480938895740039123724527272560223732596306431810860554927264860569849838270351467774506206122590847816374395104027318264531043347504474488280247354036420352445475275946045581805745321646624562236621340438555206504202375042477446089241406691062885717868950312956407981248698478469181260348597043558792700132396508175561508120318540207372017372085430611735873493285363608262537979260583636258723887342877185957464321268560579233904791280273736018386150042045823787150486642783229487126462278398923019710923644986882601665991149969529317737719006427864538559842250570296835359227338490430886993379363497010556723964130277900456261191862327245138292516339659419092511541442061047591138248328852925260790840070273566268379696439875181647628215314266033537886270791281540029715880602076701847207470885163258967059150743864538540524044304171093163139844122200674892461189266904087746625910126716427566601127942082810490657360447148736054650951272175876739287436624478036167623415022674228809027240335736918869819926229618839741416791128122770775231988554805301892605063862420965851944139120202240394867740785144812122300248899458951699678342429286072972650795364018356789681196292396004832509960667756220673394463400427812265730760001779103314255164759255162174020727881117108345081569967225389967597952389876375507754646828124014195613188959343859773810466423040612679332189440059045078933705528515824407472019774402400620944811584455565485237700027867985179530624891541154047844326719237200273143968012115817727042309320179908755886463694423545132295126893915553709190492971394372504610670589278688755420854897419289150402180575605517399807552952205719232547704624910810137415605023769905520140843533835257740527686983504142873599353728282600350690246071698733619234790736129967186936038462381352675231441431219006590777774456290139123044594362868051977128368519893576195077045383242567491473298274251641974055239160997337216678808791874898996860104444747113840529807043930837217770834429546348755643100299521724587928156609247799390650846601994571046949867436165903495917677307992615857458113709673394987529085711424827754487560608723832474446198223631028108454064251603270234809868413882554798747433474599035468236624300095112064332533152955366401275592072484068417276691277335790056485818031094354552889518302349369620153221079023450953837659516147311547817599510487849570800691387395562139207012527358988571945293493456070004166474268330506507404212239113538958133338479899240043442732050111137873288644238665828163188862473612406376154104264123540377160621790934065819732565301153876375428262708356846939099278799690807094645635277608839824758232232309605810069541522000684684587896148237825449058869420120036043142574770644095001162759113705205276394269898370703041274589268453367111740338363531784700598459606098097616842702082883032077936502952630723670739259043807414942546526378870599566586820745586050431613805417067294022830789539451096947647415936086154453418414908106338035307046643993788547427150502814323959565104209152615150837901951010712115605671636770527246961463613824362377715871337109081503577627746147190937774706726112287291693005115550769080053594550179589286199629428041566507677622579573262034682046960590607136032614467654992990499017787182307214229640275998960546616192452620350177676361406784087759929158622858318788723209915348495815350826636367975424286116602885259563724293837064564192218020231340618943783239074569480775874722396431562963751005901516503159125865571600600975060037087711062469791423015337396229302295221006216733632847237770772533789780059786179246993271678670679218197087570322882579487033865349834467041624325771266718708660269098178870896500297451027060184591972560552257232994343091692332224998304317263397467233970144258264470845770300368410254643301209290591574532870803782803619634442681559926669487492437217233065960672000623865055923855838022669719825677699670833745838938291976157620151460776464594747461758422775464362253506682759237856204948244740978602375376931845154472861598462937890412135892237836198285609833431518044161849440261367873908058782845040367838964498360279873024649919188318868440880533540862106895943532876331081665175167296375876495159701647499892604012532869661947051349245748846887289402037448573722824586303415241384945956052976438239649132167523831515411927254810865947293142324703286741731748316083676338311831475780551406330258612121252780373390020843052995376575216225880880229402770666905281248809416571567398478099675130320995143770049061603651162705654090539900220708000323939633366346819639512624580665841633098293040181618586253438804156611994570995711749316777414201253745834345741037604625840486222808068231970140147433027868233126638314408763518805711410126641253426422899712185917285335076662000704136674295391488176832747672842261558182721249857397732747400058949289703111867186274264110710711456523597954197368023044547906684784458763163684291071041601600740691380204810610160602489489545484926769347085951884291946765814196191915187591678329428914654727512077251388003355257997729569465066418171041194181248042780180461708276408747666303129598089209249104864802984772398822815296655406768316662630332044670320811598160010328670628723734068649644919836340486976763541951593243511100782445339107779112461686622112866535791895308116446934275847246072801567477108898493831189273026505016581326979018725840760475123632443474758042493382262107303082970384756941270009497572451802147940218270021508173627519592628070810466881086422862180319370287143580454427807125032585607853521840099032118589787825604157863261100106477115837035971004959059083800570245905842172021979943258720002942234794749950020858526402135377428558899010123845864103965589123043133600852669253755526862018062138370325002365850711267376401390937874590890228674261752389171943132461369415194303943980579342176557930358421315537023280046878311501525360182634545762010272429038218507673999311990578458246029518851614045518724499022205255806703469316151771339968349793245659417879287793766205836349447810498509822916670859449675775144002976911035120416036848124387412576579406279076742932766521765927568804540557716859486299962197807232193722976093790889197553424404496287844524181169303065908273745088617845186253450733308788954062948463107461666751833946727693430327123416698993967595389445724329434484537985893533627481918760195035081818728564101631642095583927052666108183663227844873927249824453839542317397042677542962500661863025995335365541926324860078611780540156910159453167180910984353532347157250062769403675654204030121194906526083961506548344688641400639335049846518088880765228881482228560199697653813579013216327888005252902180120777882787254991651443346425641192554363825786543234917149215632084979664280798336477447164097333112145754737118471497402949620982336630348060178818617443263088119784187218653046242662279629436468419250399393676867886518068838312485245930977697664860205927937425961451088182022653541078683329243540281240406710251947048960020998513585301461005022391253921477282463871219014868726999486786695626019126124628111994994543381379461030930122856872324802053640893692377593315374095353712599799921745439601442960239102418549908699937717072425460730124771559035030428632341850150056023477966914780742801445587945766443144612160583976439926977294770010756068045098584128353317498122961235340906805251498145195849523059038765658896292922491247873426686141796993936868707255078645543498486188119540293654078516962492565735746329319243072236079062928764391920071866037112203218595554288306893308272613644086956922837148257313559912640168085719293501365504237092995742950169479071667990030420357963057576898742565672005584279162245933064331909849560964783051504451121436780879688261338948899899292596387563504051569806540222737095495149525061018068815252785326870336381710644571098093700924910662366987584469423402681368807768394944176793913433314693093226973115903608668595551317356876126270355900193198408811575583241426441620641892876573297949742965580219497836880081097370536462857401415346171692321332464343138588629822446354266184158353761802177230805603330624978016237079889792903169359414517101281528189186753120045798851366169294801491837323240751148683128835712939195120203629143229752030339587327860552697312264371775375067709167445364664132939370941184795366350942306646233381881252374024522419188926151105063819719180762224298159405263664197600465339608553202449098215384767569752373095327407144578049152408713850764027707939165059264862516434523261041303733109627761249766577587566219062622157336773902066368560719215002496631967124739577496457820933208046896416927039215875488817792112395346584808886710556140951543266960450142281508094264401750301439758113001136072146090643305737655749476990996256453508500813513100165285666936091739868651700564839433373299469540089434755433542882627282296850091727219494292478263928186023345416364427691972993708392546940063470821005973058595060300109854877929866104790157578482182898036640550507070264197188737878343622649455688318479648726250991497348610031023259103052356131422361656135216043714703317942606781139247974099468484671814458254130264498140562786451427924543444074834446778326202553134741320491576617937682765108114885330444016360623413055883940173223531666854567295701821812095308478420670628729675775000074195844357856969577020819606421348076747086927248938028703313758793017022299668863099020856844538872132494842148966037421870025733584971795708171826098539540299664309450981107548045639405011139796413388250419771528167886278033357791985089829862660710389452321876777568896820077249229377627794198277186788218100628104711586974934345402201069442973134874036522168870850822336413296375173252370747404568475472314272731109303759998872377154441035433587804294596132128838612556046482388943903450998117994710803097686656574590663343393218850428387241160862074701082474517786917525425241172877521392368263091305362370401701080699746044804934642097464252261699102491632073404923580899363792684195598390455931777213445313305848076366044113801219202645786748559560874388820434916171209735844991426028794756051537403887186962884086490550138768215709803446425219252485626364432055253602819094946526382192379091000077933679321027754319736255895280746772473657631907945044612751933501138079589833773921292204680800577476314727663127169963061383110291453802053856326665412339850172219397512909557313558188648181744649399450648103302395826643452003682829355956535212985431486023701734346487436399553867026024797266480163629095746554342941555856902244962908108048910115827588421284928305351329673146940531593610565943442879792937931984551753039038801878347444246312069599151261814817575577922548909424187130943997559271332479762614873403113285709473082673213078286261106741143482928756631256783892138086055016175039336755570478063880239851104875561389482849644688205383980970047699410335798599022227987932548655779391443142746219860013281953274987882796414081610430699482396720945038907955586541441809016646576439843712899897340178514685714317309823456055585922509826232587674385131648313047402808254033874584111201886473115768165076301730391403613622480308755872193557924088722657559512314672442505617233606387564671659728011121119660456569003516417512287634651869352504986644708203385511588121616406912729593714460170824151097912944293347739993543470191240800368484367791276664280910136779287036491830481696162583063804821333785103758363932800572539345549213354163816624427504674902413405976212077989356478619979546726922746374568024063148271098191837554749323861770089161753726852873810199261858454213177348449459626680327122528980663584502687646912009019933016827699006194509316736360672018998117956624167056671269397650138671117431009436205660678356092843453072209410938522349243988110830372331809000002499587018322181953428970033900467421741673056968004309284566613984095783988679969630136739537886143234640149225526477532501405981683463448207819070733292857035471378325565267584657070020620039987864479222676570028426264487549464414354873562764462349144450650988627413016032347693595451000807651931848109869799506780313244728400170330073539094553301217904062434214490489789794692119055312346728422691673687447876388183951719406167535452998219508877211114181758204684959673500310904124793952142563639766634802433462302427152982660901507180738068471177199628772984272726501980395336297039318099968146244604735120332124256769543120005158744785440587029894312578772267890032180628729864934242067611534993581007622783347317897701557389217809964196256504029156727544529702986273892971345463358176502240383985059909264790834410798696901489244698534905497266425463057773168212276581387909593790093359366403086886881798767447885039121778214777769298266803933096611669569130642907697836017711259232000511457392956424327372493573017261279454227522212378150727369906185864838256862178125595997670197944873327361656814517547472477474552554002415631852257286343035556874705150644320863382886785199889980392471684561063763955882889652345074874803404668542619074517688028842367848762186092939257797075171787505818897296929660641246234394161529233333716379500622833761639292337401220617534250212203021965473874458348569204040078693834524593283941665788860399139383937070557394288567968801778579466997136845077342388114566026019874594340456026576251611890838185486731226876848059142283255962373490608953776310755087994477908749095222714126671929765903966355670305332331090349961083931934476272424659725496686364177607776716254600480562483096013684241455657422068031970434151045383608220084783948998875905725793868692504057206046624559237357370270413172503220563671356780689905886826912719755933847484316914151173893964948480375349987729467728966073052259785697582656328432407317333185475159886869247360081235172332448876547506806543279025595930967958299137392536341333169892673661601113536007058707805503619701023088901400866566785589715520590137786146591337583634577621608645758020024409816389995911728004425863635332963570271442729100153769983735236967233404928434522471251518691637142268088684840636105575250770516617839135387405200458323562942398214282519377412192057201442398992567931153569423357499792404529675070877430064405986825890775271670683879572549428279237344109232698137333120925978559290340095206494565087592538982404918507072371539654925984181717328724972008894250806935039535293996850896899374440937695784219611992112184236832015388831549753217529371967558984115138084789667303303750656567169581781724400884594039858249353503231786723201536600791880432806087881641306814566836367283495364682984294931231770656439211568656596804902908679264467968435862537933461833756006496598589322590110258541169292181940950199034398675792326139081500352984890231359576453327178471675339303123875011218352123729328887791727514362932856127102451788621804326105736673571322786698068953604915897925065811057450877915608930056130071880638501224959979708610625929687876356715938938918562767870777151017041877176560409200651776421137824900658991505224263300507124681010077165714445746434481666697802833726397501429882968975483501466206393205149791646577081447606866674410474605199573715673277157164545215508171838781935332153259927566983157328363504545097389761951578980942977637857331443566814780019184635240435900493634500932382824728366330973199394681305237531673645364665129629747909031555790786892351435308577292023595554487031947052643739806075483900905760457487255081650477391541970418210605723064035914392024592130442320828310205184774881207383094424588986767326964664370444725006233589919093904193025839985427311728677109353885999831717054069664350209661393772340872564767051636476300329665371391184702511654377957743708442347954879008064650848471987955661378885925093986865601034947774185856593219160917847238435699052760438036592468578402470601012950970356352044661868188944818817181074829417493080808488074066255382364810697368926856282659567338812445461689701531791579887059481951629565768260872351566351140088453355541039059111486577665567304769681702179338950748525084993779931071098688285260785735498506359062848990257666082080397236268483254866180072626216191082620768719711163689402407271955524211922676956287187595056361239542630465584360270474879273396600803558309147508200788330722844700214801852087092493810070900467058412385157554050266665199691307390640694564487253765903433936569510048707599599790929419802840066319611816311926536862372814057876986419041527545713497739502189362750207620198796343336430446421330684296776955444247116863828278876891236908193574300763260490792111238484184637222033138699341734054158726277500247594157736201784387943091084942390288565622042301786131508634964246232537075352507503864233995079994153639596694597131571339623985713981362673498672189311490190110308072014349380121111828183921079781165652080236735972211076744837095212799367988915656175079220337015870285808870063667294197467326655264278245447981313274859735719830929255282693270813562989379672767464063009690462625114490771846377693087827458786108094158400339213076772018443513378668141340760258442513658556276145455966985396948559409717229644957139552680012678265692448421422610445444470025901917954710454309489426758830440263466918689755772612532840384230721065110594574605451189845487965075580713574389443723299566648362502734986786058566017619059043823015449528457047490759507987421862712348338548516227228150216401453528799837191986524971060832500456678323034773665025987536841248161299473186921161232703564382202771359417569327346171463527042674616048137054555798162963914223255788394545436447618941647370715475034631303894405325173755390606929288305355654770153452406338589497724513743538232933746928455860396829071765458999531445022508497620472345998647998914921768226229144127629653876838199021277205825648531209489448796197808290243760021215716821539957889979686264506015430757311392465982052559622478513462476903423990401828853277162409304072670743422279177239988782714490882372042093608083461489339691744356879279006480624036582379218646122535173294057924811740679472083561947395357198473391358199131747641967223456579043147527518611471513196741390915310413593769612457414005792362568289303347673523512504124310764548040843720195849806012405843977213604383449207588263328435383367308329929598014867725060352974664093779824039040586562770352390699193505754174425464668244015562278030709106445929627749621920918864300244298399828281868112090903200494942862343156313229140439193176538044122164253826845676775263828841006707365877446504319331479709293358434423678533279495204200727851324316330583342556500116073914400687578436981063351396326374764137596070656191244798531581659424871693898095147516935267759561768936312962388331605728052717538194990876911633027278966091718899671361050931608632631737359997671571378050629144585742458289806132036716648910532221227014204482388948002028516206340136248723046969746085961070868740390706325913657147871984819727574340296441690110488367391841345764097729548711202552041526318840476389823437067613570366643808881943365306939562736974383727116694693982610027444489589148640682567835319509356599869271359633439260835033270545759173792131774990577358674964213385627021642243441364790828167522964134605906379810766164635771118507093530232426439482304987089276371484528867873191715040375809887533031020065846124788972686075221268643622025280800668574764920538299769882672889767213042699015440566506458883092442304088215528868899017265751978184997703440974168289794118007161023755663134190191296069334513719742864883818409577681420894752235018237786618149762793224281283139797282167393013051106509349706473763057974759973059315030261322961882848191541055836427875660518174535971471845180130887762591767825254530553509468416638687495121952579043124171179788663226226264499562688268511730762292806653338819831155617318261007847331955756855763239483987714190291466410072795332404816836348526963553149603908271758737681156041482853690721887314243150136620028564327688939214681970121927018361810712790536417608824994089246474537213253931573132285341975561558105602988715612444544352959749346667823834404287743226649116911685363954665624062844918203525751326855313436621366418538297522442681057177749844794558804425614700420831391225105037720434220995292644465327821759775174051706054740507520840424058892028942579501271742564682733193703362364674051836459762966956701698464005696694948403060990700372425702445702481358020950906990391506515808772295943310933446906435620170645910047742047800271528238052364898166125976529534437137494187735697606012137456799269751125184636750604946482959341921864680167622070030402577415173947681952707950267411141770564310192509832172938028112854303401407915983703450492633053126020569145025168343989437901172311351527219614764509346101821193635579844733406287189277819270484862436986210620672052277374885629197244347932655440186229268845515727999124686573538013702154694450567282517782852217111298564220825137909324718399581954365434173588644486799139260582522183791420212644890741185875171259576762255015831546638910808076521919843780515449389347639102064182485303771759917065848130234985627575158618718359505440652261173072292313902705629622312789231882325754981622983230701131131119907029260235426041988014863020098674113562838679321433948822715928926478656252181078455019080470517039265107091392450049923179697004350796084988756944737767044816729886941161121195514332893616515884162550526528506960119839647027492855086114917855310367354167999507514508490423773739822405335066164746280223958268052709379462512643815561004821748298956638698884761490883196671393600871581045255460190201454967454676401807968837344355697889702857695705778816481215242200785700027749937873739384318534980608640446894938177543458303864829546281206469019744483278217335041364772642068259423814838471676830160459619483181899761465870271964551954252077995351069520943270596853769275545949570272333584610289608269348232353720252797732463648193393070902088556275923336310968928362164198943311734381995410466383661904534977527576502507295184525680508457113653304114232143477973040250669508913961323389724584682864835615310598942782324288882335070368009535617955993456170218066315260236026284633489721541460423239349641301503532176288928741591349454383224477214055488482280403839273829272982902343413825687216298579780829019393258352498498728325884795617601589583453181249258064520625909916127794647791056832809469406229365901754966899584946497940894155003468581708528019646498322086856626256788637160389228878412458771440708048468130465139872641603639552224535091283074379436230372800717597801562016546480995760893708624757180477535229236005506771697476550139562859843740119662910695774854835472471937275746865751317407478197060004796175466988069426040910061176322539215609330258538649087107887143982334963200470799548442499903998937750166455828851121382204807378803025732946590737412000075677062814019991143982992201231324359644712506001203425433896687149519558314618987445642289229957015791785890206373228233659689831421668609406315348024504707934944183048520333064307017441646623668722337112645325544708490496765846520087977301990674804130547995283067241883669394110846041638849239926461490295773095330537419633505306274416188073506341606992773297642708620712861941934945347573476813822573472930570273301272799802042201625211478440550112687227280659408264522052604694367664483216777875438385669364245875190223515632741798475166073180537546235870346604803505598549123984364592379157190770668304562698384625974225236999343194446090979007311257021695829371721893820108791570441727653374170080524074294308770165870929428074089384552808156334621097916766899852005407639701475162018584940785181217492554236432052520971939389864101090126119862742535559397055881614441736078730956867434768895028682952139035318824193031908994415579221946850262530369961129664650661503456785528369032768177987325401171023297444429151691528754029062887978452273579496146911859619855824163434137509271433173798487579655563622894431194751377764030360137050208326196310909175447380142138076709201494123656704007858132425528675536872165134861167439641946587852972556200983234883798408483686520428422459067208728562614492250242554656457762268532766504721791285712977192404597540714930705532434646523610102444442819804756915466133257996824094740888082537681368463560841807062889007669425961019579789955219888596688801889071738357041994156278150619393979886972056605277932687820089323953221511918372197194733960648761435551872269881306489260874725082097468543476548803068073937542456776346735909039236909697207440112601503582027169513817327140485173138808537163937784902068274880231308324453830090407740718913383791367462704737589242118176585499204085447015367341781659465216863973978980597956764087616630717767725742187441633496338220369463503889942322911864153668324880500653273755954190490283835436448571040196265947355390954164398790468832623948711516980232133165283774711635951938153452513168225000604971838556565509051700925727461788719521035667830095794704923169509720607979639673942021105090882418863412842698997171126276665707310608646607118732271260032399533372327017105611669324895545652512569005849243669697475406447904441812949752355657198027545563535842068644147377743625999511959448124886737350676627112937196052657556654456289696247755709235286623959255695634693748184117256354876792887038075600751289424031190768668056911891511207011525618446470016262603395618946613745003481060418277620175358565322364508842127279575081614346457800131202697933474636194582786036240169079293441078832107006122036634454376763243388389466268888059522381546597931242465304878306072765949878495296302380357927727337197260370437402634765319624845691173657250130948103018593046453280782991277826886808188728642432760038526557929061309206429713008175029027305493913914927172443918232541103571280386866217348177522789955990202362878634053682850618609962541962494094117955573893383514763356817893555146353510438287763673902808454391352366311369024173255239734729038535396994280666216631047090992388770590455631538315684146996376893170486626150582650586303182818448202477175326892259546822831190313736842251986599029177999317120015423061815874668269015603614885939447437367751632827631135583222640902338855570267748099345612500562131392933446662273213154648422415063202979224742575841493897810112269083102475760656866849223891920736295055488731045851872362443992358976218876222794605801455114113654718381736780312423853831325087451092022723219091816387730970373205536076627940682877381436545277249405602697950732539707548483398743450234235397135331982598936628197264035861758510943018244417511077441997001839182185322015784543338720424212786238042977594354158459344677665315360519030444365892804379828361638744658452424433966026822706387408263966812986148706557156732856198529670761114718686418645414002408341058922624370726682466927668248574393084307353039597453884929434214110445471846203499861129820031250709241873566676902490975932775566507859188491389812950732162063209387016425924149008103787419317061146600630994061456139753878893072568049825435991388727461304506741563240433371338978721413377687071104379573418628383648608633448049797966056366190718129511714977731776621279416032695552540637289795472825686836962953092790060009785005016868359400124206573136865475718294258457633525496512690931244814256454469425868290584652950433419838253692361542794959066224071885471082164568844787966941969171913895351996231901703495280399351601681706321713056451245361008340570879848950906664996478913248414566228745321226193691142977292696154453080475752986019544566733164937036272836554708472945207974297214995047957493055587892726114745043757708500292316070381517850417618097290768558693666315040011195557951789679824569481511930652361222840178920735886607057017930455305483448924278285239787143004766023483307606883196367805662813182536784244291322721688777854469775134089138201428506144208212606511567122592105784329891107532971962280192082339305502950886176417922209664597513446906195121106755080057468263057756744699767918197299617509537285922865785477103828210039995599298596319345630167909965562546369224887578613960922612029617545553605788096605120818213125456307619548050411470807017368190556259013498421798349378354326732809649018994167770157711140134066808102303782723875276928605101756163538409773763531297420653878333037865271185521415195063250189356612084896002976832780499940195214145750222548176935104829283776120398686698739641968796185781343831950831433234940699880659167532487247832009807633436551865588549908799637713490766252084549383396355803000516522285775277569283407998155510664365679312693444956197370517726931452305759259531155498337756007711083475882963947665253340901539509557560202465006853551462972274375428820723978517300090052185676261566901871515612581535736442950897815836595165117107185617172563993332275300683502977257229970570583527691927629496888244298259112375571389287470446491636650853044085135611222133589764845728957768057584597510121405435000637942748829528331678190194652000789909088905333543606146954042506022961526456645263355505688012826918492108057922314976491906687846244560313540937247867582568340833411179126716610370972166751968857199435671404166718553740486438211435583415168194386178143031852315125787179616077075250037094253888071775247316984668598665537307770758850072687838906383810926210026997720395052589430110186729852643678542857158138479814726722926116629827566760795377351753849885214762673683548577030759942903037079474067293090231719054854649978149139979046689638125458444105649796918251291630046831791574260879309630713009177215084122393537748860101374224788850371124754466531929619892281474115125482156152654341116762201958471868285253782845780695964847510108900924487559301241977793076567811694703707126587450227152473161582513179396493647253755569063631798989906387695714816748396896336224011101769968335576443850809104582923242075036549109330157365405587950121450048366919371725510026049028120178324792769756842501662368945957715827323466789661433217255604536953081315828400415934123384191330453488835291175594223902433722181256047158195157076198819749120283948466676963634616437328452434482814186824913582708215348674906225559371266190294568857794134124275086154321400650131496247786611040833461793067407765873877634494360483626573745088811033587166526629156581953974587675244917803509927351978321072663034672879779673280117205975866755102169349567019221511932716268972500850089256230242518763752619022146737217190950934751193664401997100454509311315396908083415075825752321113712642333961382032226219603711654974526787482983570709938239169009098229284774497932172529356891529115113123165103320406988677048314531223769407423488754042705827254605757231491569716104062817009242736904461812683169261178818443081939923402040357243087275562058765923699376162873996192384770871999436297329733523817804344138905690189256595565164091032967878223060645698591491335358504535474184360372155677800312691887352828117873300722162575256143684872408101320712889835533107322661028657769949364776622626764090915993368686390799110618391718131069180508971445480774246040726469339958087362026538799514405522065491019688596102177043444484445096366445342556000358331979121463692114756665478668372100961783824020202858760666219875649148360791586965461638678576802482748556849724356075375022940248386915225926735215318282949636496820873891617279198613740248565435200512350763182420310707177499966323577674350122569906347445928906703945689383113831448406870466816053653127086013665893994162106918656812480449347095136099279227262074550027182196810329087924118683988220869064669613065853808529383730991001491777567265226886139640435063867685605791775653136467697747865498339164201370765039350242867071078202370330630776427045640860026844323770545465335113651242120249904849206624092488038504817381322947569839172710681044025579413644470336320853896828086664211695542047071171515945263175750026754560429976593888394322764971136308472631272681948612569402814251679414698270423581987585343657754826073105587363830931044693704884555677787504723865781637850641617714620810998568254264291266485540728122313887569649372718817742342624514483513362013666991949125545420642398406985740337689292103345431191374632344618509628787979373388268834766983137320129547416944305985595564949772664730249739513406810221396317832233932749121450227220264809303741754672154162914970427130659750331519747683949981658407979065633850630891500413665207086251394802342354586849702933511986581580846906115308358948969708432379129767588757249290611697605116250111113767354844603458895031237690543029464961641074554040479965084439153056211956315669515399625757020316500104047090735965225765965954908751872719284125389210553528001056138820848948586269311954101827256839124677205456058249269290543965080830516044102065774110092992503976733459214896390659140512026218676991755281768578601188310456583022427142214144459249816348062229923947595631336436532804092524790112432734727343168394425450599051756590828933473465170702559806376010747577011081032051279196089555465180320858908148097305849453993428531109918672681346022052040384000272839604374206328145016206856709852541359154984276081164388415952443988105677782091566113767445005970825067328119927254823325193870227600965448006573286610117240978278487546201545665930189327453836745124728794314863167496525024781731207359735849707015191519856032346806302083659875657976067833871946523613497115612548566181590557213407055649548288283380155644558281349228745908880867806676583467195298487732464273281480507778708146659049166420901121367211679426412953354290864038655375915386380196226745994749329715396034074797589468839472972622992795017584143477826905059396650571060062809933354349536829873735903336629150134790750294400936871501075941740689036819395924304188259458447775430451989448691294778251841565211696506063796941205342150546568576950547006229535023063978299270008326193759015640994592709545835075920765469425147418877298345239584639970497142728483629058046481603373889098399014015519746302967511369523816654519772001863663445465407101519143850589485114176202848151392493490861051767493505725553327302349578043968146081095068730292778839938403785212981745442121445507114270014097954895338338106714657135287258793545694333290895074136453265251790745420706039968302215637500820913982466697986001763076033801972119100796933806559690051522460574086422681081142045246847840483898864201801379933547043920762963980889461949283017465337788166365389726055429393945533947487084729711833183464558335718082183449431779476026281833607195084739362430464161295891606705679757927932634942146443104931116426288252138943014669879407660969753181139729666266705708783637483811891158402270080889166405837525829879580296824703481801618701944472980097171334507146290956227595903667549937018850346122151313391719476024737318071089648499685890892265733284173202784524018398697776881985216551528263126530614994395312298544928845209958373607628801752673126316100307762110517593632893030653865638165615118052549295811451224166887551059516718335536166236345501354799058047630563575178936633686316440443264891261282592277469005992026894599270588719246937459461197307896410484375784245891720106648860999850949411159011084095343311710690565970356485193463386333677051985958887161797224160458331900742113685330218986813331327836273374591705309434178207728875148210627781975091610435705715355340982223416807145953502935954336739089047783812661633056331242832693279047637284158237407476597586956572435438119906805798567502491347605542464642237818880054068886965106922434196433622024837356416961600481028402442447367920844707562903700893145340215821935129902564790628935908055154117557948485664629532388014629255845021859665825178750688342066365528382708404499151792162717791569010071113591219850460590828285553075858649599226621103176103927898337292533076465378342488607764006269762715580969152942731926551409207036546726556787297015762997455877702589342414182216968884490912782049785842051260554382227334413246660793856741384018032840549935932898662715613246954569721667773250938470200656857644245779484410046299889842236677234266177176619151665487926534711308403676797564549101063926687576375357024145390480081090268446497111128093497868553573034784240664305664653089901570464444906887435225879875337376687728912798576312332985485697042099781088570911616790413907770272064354233521399881823044355128461496297244483282501643345930389171740487240614482375470406142807354061594947076165784697494524553674075933023861534594779861247391160329370462350550542487936353676834887682592588936238072532929811798210371411395684249082320190672123701904083638199394134340842019442347392294679231750481821309034589605889479525165332193596404424619338814852324437949714836826174490046003731537339754333511763193724342905873194411272324848517783771062214990009198697897291005639460992399565429508162379817334197768346476059560700007180856008099510615790887079154301184122871966832008425298105159766812659705456528402797730551565447676194716620610807177399557668730110970134683769002039764996992623447397530332322147160726878696288129632133990198814076140638679597960610228807402606334212787135881257934431633519840366505215425550027632023293348514507419239486965946360078466564750053020460143422975153148172924511319568176658995448124825319919951855016736240228899053568091734571370556334081425660722516539468398789952264334124574594402349901222717157646371844577747985901014517534394443242134042059893529184809668467214584439267017347218294843234902395830792913259159558467433083360099089937646724887359736163682429445299336841422580824185702138571732920379174701024822884193639657631595391512988185044395182088536320609167660731738303019245859953062234057647802749856758376093458745059105619254703915483060792949600282351751147620562515030293787486463917208620752624402189659561556706436861251943299895570598385180892834665122925232931304388079910615579743217257601758292553784734271301908796998599557108722590207106514014027070773254189562784870047573762555588631314472073382051941603346704914033729692973541897570541606714497973789332175948064640871600252833566397071911949502685435119444557940921727516639537139358383081466108270077288665892549134794071627352775417168292815196145040155388461611066734958426798188610375313467610197487155068735254882398906272141073616668063766068895897834096766357003148471209551688808942997726149799771536007319081760398651094457826310285352686757969238760409592505323251873682701131572412945872310256989741266951275468876131145298236366830940063984937168389570151706535230468652322457896691135190314507587929324938093046273837822213842616291277869796464194412269279173723632420456303246488432461099997944622032755175338831423869146514142989860192204614830020468156262957977030131130311543974350267164209140969965988921774255899912088641597730246936582940900579708041530695848112039599248823407612894713388571818647998471617587096378391843099277328750170549513057915968682897500849758523939838153283968311493219686403026279683853844763735757706254085541190896630707789141182297424271969080347342186439212629520096081442878436505302046261722360266113184163563404852779134602561124304339557218594680496376465425611613084228412531678410497372433389374104598640182636917715206617408600499580047617257910561126276150208218428486557482508013970709880471819672377632687722001198458094400990003699473190018397072102108806055484500031397404031232549489793748458341441779670685402656050807813688301690033627198571446133487370378637827863204524723656944146363053252269278201924583870530941520889847446313618442915506017814670860344656600450343744227227120777974759011902608694093415376507215692786042754084334759532986649493212644335212382101627511381296212959223478749999737067945949758769108794831480738686024200948392983583591663593474446587799380026560614445735862048660579550232966412611076958745027378379840759580545315986151903712948403803878594975978720350821818712195388669656000076227593263753436495285063612324786714210845883748656817428214450529854607276554942351824598509224472171172228486629268065508247041259124239558695808925690165706475839725510096543227580939177420698074685787072681976389870556712194192735318397964706743243325149776491703277660940742855284884953838701891225900290157499741374468069365933431923000818611926918948778262009524378989003874576507333584160680751831728731525427852940948154504514141650728988978715996068044148195159668720322235602620502241772168234809645242733298730212626241064678370227946862319402451115572812945507388582348298173026218898724050561161930775334515563575627840951353341748420496492713620339603623876481884358028340000483813768046806743344550450234197058143622419984656192275439203439739072612397584480987012014505010464081318860774574257909049512816189283169431691596953846634442856477210544844730278714108470082292746438612225789807529092331008910152870211536135061843718943410205961022081925482502465392281363420085067317231146940211315650808936738806608506804326772392592336342992194336741061809579163301306036889823539922178932427217917672450628264716377840325952962109702793497114682335963602604037887651231635344154050336497905022756451660371336009154194065005317582049970449456424074648072583311558484328632726892626848733254319130850828995271426612000635958982304784664639443841349810223706695944906635822682022108603190910664407987926003348645934373578762373443107766943560740925277537713434311407383798112420378501171468644639489660081777362988608934434930682412731911673017350776085291247632181236592674550725614289838969285656661883270293135200088128398585002862545079041186835943487240026187941251466878260071990457085162380405444605227708135694110535590906442430521489975060662860451715154222978881491644527892954290357783467763486252340213332937314879932762467456451938971378508415245660403021870050760225332701700824377331177398828470063209783202706558849965612445787630182266412924306028744208935124822464476463313448172846598851755447356946954987150123399238609866207560785241808332204465758853158406994441676294749538676333961946611470037765727439654122402317897756861480385279525086097854221641353833724465143187723005957523354068086346958132486068639908320173573964739821203568444237016547958508618047507299678355298576961344927395954700912827037768660356642863395001641618013305701983142530012230182236009192656904672399459843224674645944154933726038618146257325303061590037826242449222830117222338644573057199824833968490180460465193411064749708423861897728530150533155347300835233687722368351476293493751673647484619691221718678165925400471323248695645295614798327657685271540993862958995403584761829460174875826323932138733193042023158064653491158544468663320537156511215172059439818232304555737036754263862944977600884782176840526479125758297143143002029148167838528016279709080131910288561332407699274356813942177657178635283827839758283364840970165439500419138246776570881541654267629453146163776719911346334791431567100711818038023882466686905481047040259403682779336782551796215681623568087692243758998306596368568104520584408885632206779687599476721763717403119911388353876737051361722587442306238397563688609212726408288648340198249059393705074830826277862791663750915078446064048673953348271524800011505721117465287981829331859071821737243814180363688844497702861781957500139865810193527083810066266846474829422993111732744024959358104047378139622621084330439481918855557115458400072131354328932564652591832500696173411867930238814512453204617083268471452206502214529043039428771639802833054927637824245096059102831693058229261825182595858454992484600164761340458525565125619970853182135230936939621577823066649597660532946692727044039897828238721351164806932282970867682019661005437454130145059843812559109739204909837366259303103026765842974432358142098885447518131256246473947308770532154773241406508970674289037819208985108583303270224105424359420585297985825318292075536350166320990826279398082435271986588938809843730850630753630614981487750856426879756101593358262010971657858441145890325075111208507779374369814687786599643493731717050846654864287686022042153636271479920879463347120481026157293587732819077620684321764763997630486169196128751076146769759133659389887464069685444939561492780065724433718460917790885133879286073232304986934282906545465732409474068143125221494775356668010037892154086360819388323514732779477305324621047223277989918953493126971047599569640337161809232284375071473850276050716544748381442827138355694342928546376997575143833183970656199389393699508492428519154814453104155175527544063578468746356651648576758311345197224043567707653116985556389688503202564821742793126527801903540070465942427319247718104289337189633611532999999207419168352269014431016735173965195249158492701519179179834373004047357936958010158900832415594242408685530059517195837809233495306107377260213537159064153011288881579436165802176252767780533911321898091115306947937923743283850315104955770848535657369648786882249886222520278139706027867713485003032226207754516106219680663455135328020276585942115592335322966554523291876876872790624141534931762144718096461485433845865153738799914839959022518016386098735754231600802974473998860601179761147232124238430049586041913829254114915642279412319677223608823197410586059671520266209117173907855955576202659212294942582557998262427291864943680591088001848302444063270982185554186848996421728816754393262006135824497052966967188585409101210543729265409749422844499791168462543609436171861537116563948801777016139673980640628779083059385973707806606857996498012216093879116802433541749085371120097644917340863343475540864935848353155166459999435117758259698645842881990408805765383695981912043728342526047198788293530409889796059790758032382850935800388447246304081796540651433786421666011101756292335412256124077072909951041346485581974717237189842969479306929993635365912922616749465882002510055100942095012358523117403517578324677537103123418031144931671572384323699800655254560842484640526953176295808718185015147500646702310330874483452298755494969311766669319007095229704832502146025479324322271438919386506448113968477376141607458960565424561916848044968265162509691640467741570463732523945754308167781379146189410897366036741907214261908216098837911037841847974602801195836358563777934788431273754393701862311820880790332020891436260126777693529200073890990105712861092136777421026032939490419941111837042496874232028035313428525672272488386919201883943852956735185313608676861795409279823301165464479367899012241615400429285005780004416093426610153413767623488645274452555666958837838850861065753014812749215298789949420941463251929496706783795586626353964961861987433034497745823727053442123102968915253537501798181163952412862508862281809708643501486637731872197956033275094392310015209579410526242525187665891015896344317353002090395623465238597136398771868785155445323133607909196278117287935265215918312632660073067327478140078227457686524014005617186950728205507395652948275219989792928102888161554602326714507654960108578838520611630277354236757805505450927138552043137025703264950758624676240778385622442954662084555940640649807392893320541579774784004889039308371137254986436694488686995770071468272634359687704659569161358601918161359381803494339426985706043766324363427945011950751539011409802712247459482378834563229253957168901622007723837636276624943535116899587154122059113354190673375191959013663473622358782200554495639656102668244749069004461257400054338577719658851017382334849864939618701719698851262727342765828316886738286028601219855453029645096413470776036997310811887378733917287087521622528748598548691834716182843778693271463507352794641712375586724948541466442102308508847564773410788862729449763103345167632933189483915949863475783829839699745878212219524651981649804609850298466819087799278853347541430417234191411457407188515609432671150448907436638016300191335754180186288473922166709833478080350623369806561542059384531221427526165574286879552741750289891050276353973393001545398518589293867240555257910855935206020296632624895040545955997304767117713090554482178950678090296010815550082831208801076230917785835475816416394683254141419418437312634158828459957817052314581388938850586508169707727323552681421730003565606852377624474949321691541991216137628299944117286301478801014686832812651025730623562164611724854340970249866682938632584681338679676063028667020821384304237126796276771255777069883992683674263115971328200617209389868775792396194329341118550249586275336240093059637585127747263209858623030062017860101186184784530055454389830331268372562116914864930865936699025360461054579612129940084675535813326343022653485444321023990781884091946730416767071927126274145845852398560084590163635325499867216453616853813137699333128877607139879603396575846822753906801399944476531557336431569581345033880919869276333968494566345527385665886651911301750060995138793064769975733649817271829506738357463826679262024412637324980231117695596382849869832535011936263184107772027852265903045508209374862489512742086129215209879318934762067165145817455715172523973252474072646004720722069942095723315914895484132020811242150799325952504384997542244568679963822884716604181362484697516660765289736854915098409343271671535673731523598592688576603848730256499508152497803847749376078613912657944886844850377755551147583654404880957818305949171149304341164675110572901656187154857579678016016392505153515532908676285308330378642690689628714430263586584006182335501209451901272472747026066388720723163762887571058873660158951390392051698792950398394637541509134671483568186811213388518139474196994847207950447445410462043075482695244502038771419823697708228072633133122272311808261471824915861369529353009921675782035879130491043850541666912995981139442518162551181135188153713787133177504678999836557946063521367688884022578247187895051080547519941023501464678238598156203051359658811425421098731622874924423393849220528459730567557189077101391734256349346493537497434409726518131796992443284896647973950023333946129039279840206949941306638990458812049638422668583475376871680650619312359588195784314642313699639183283004493467000021455906417580665872045910769080715844785150882071889590803284389982351989852789054802532389614127667566540397396289420556067491052541031339991513295510371682603383329679053560016619545073372022089618262912005022022223000631774780352585590859522845218724902380950981514890020940401559178002715033512535454219804266889057810484364680782609653745611804060943283326482936809216435141285959291718445699153592144436736082014495453138949351259570842678345654400222822094572187338436405391398253592875284687846740479306161126566742588347680656249446904013926084105970331043425409479370289193006184680633758266993347214131501434120705590768053545947969050207631326373202702428136041198644293675546733603989648515624811928268417630346874013883468619821615628631085004585787414130610970340722333393073959523642522169544563920422983926615304704474219749547328146089833177504087308267234371944353069451489347587661478085380702738134959435825372441412347414480995006339656865436991484997923098295082879010317714755372378979304659785731789696844267393461158296581748506945190891754387740928585336846582354604363603785417769406758061753350029164440134719790366501268461374576473062386272684892901543592853715495867868816709878101395641946549484032908814846826230804408737248346229171139965711908437494698980958083583060112932715592208101315187005657025136333929684184952589328678170490924870857848479754252092926189168412194354936169133283176845382433368170823282817606117590882808462501916433692260906958915004136539864455148544967016780400517086985406014239164481083873077850507712532777750985529787475185530137646273941834962327127712313006534022328198895951539474686552603822241018725653915741685503341284022312544751853182487747533670145429334396548480531154706402493789547734683369235627347418698557965857778311529091089117356037049165531049948356624307722794842774576450047290317396721468195345412574036808408745846691732545792581755265608561383172373948358314906480615021853375058352660166968557065015750766307947393250164445548100738882543020095304710640403064360386781506313623345223004916802170538604125391811804347012750156211925353246257382579642504376438574594182254386170134576390134791282972483445843375354659547310205272670785060201666128380005515785365925904878166299651266201942258198790369114011484593522225931449271893545938578346901876340155534510558895815418292947876193204053511670148313831056511977702810746344731305310003799407603556714820768016044149126472997159116127974635896523887636877050802961648621140630700755361354891584107008031226540318746905044049862866808830162926386610760799404875469556018056598724840104082158547004390295658294075140032068324513315983328436401228461912185637817392559541529269289098238788395156628326175863077084458403498437346474391593822446851248251250645186782814788944449715238929102318357397381712224653877624718501605528774299364882131072275551737030900821471024301995681629431570785034494946504605187686454153384507857962083181227180453148242415126700934105639832767630608088566512295430801548960924746513643170854135818199710540722016470695320821592617377380785879911785329273960840162887082220953608609881159989163242925263354386004598194981019445072172874903305051862062854841588072267676189305279295876566210416935470091449166180174165190201850271161242461841736838741084874199658037564132061815943697396761192714064161130216335415662444060724681786178022473590128456720498580026611762825478085128326506011397847440838160775065410463299457822545517751830660236655372610405928141333801955479545116588470138223758310580538620734940387868170424984164355252254309205644182388258802726102321838724496578314446916915081115598208353348044754507087673120294918226570559657764597852046426938958826195293677173238348935853700473600926179769772414121772942044569249054834620230642334474575672110788303536014382471527319137949182760444229854919251544010006922389217687024124735422967836073927016906941530921390287830128390760347665085511219682950717940032898501168362153912044381814687125963856927532605290750799585866463293649306004996369097391513559678735889515940545222696628210652452191716859056221832744701871850668094619774220548369721262849600499347059082995044400881534893478046721487339875913123658465173828710322064943329273038731046922401926002664458460211619623429272163649639644206168242398852817781607627577455660838389633841322050878006432698156961645339023869836629145587151777727141219255195271759223289429033723403802660196835430381827214557418827110937885631067974552414799296404910128752993775377493642057206251105911551840813399566123743921413009745229353938075771005878444758266575577001843759085982393407095403630623219947876373662315504401179417672171891782964545611431513255761198390363978916481053411197391624994800906952992699549008697541576976509245702405274640326608491290670823734337924282258315269372451837392790385114159533714020148995592217936356406584795447133652177670844257465195035226040133748295419896383380939593261699770253037205855644252271450736002434334461635316380296483164214985894250056057036545840575917885093553487479354302730677723436053261178360358685825018389988047410740910017400492300949645311443383776292651924937236735185169817898305704448309280096754348848401535842994498940464937537968237059669384727232104780750203169087039066245603430409868770573680268832520826571660066335066512283944057687324058205983161730146542173834328695846694725139385983619994808297262325909432146564550361439351807462251643821692738442324630261955978430869147570543577220294726200783665052040717530960903605782269477276475362911328469331079872535358793611230557341949050453522182145132510226718800445620864663827982628522027641880134474622636739243792915231002630267686933158087824207929448690967068586625520818372628652474471976032079007060796906376158706446787614697357025089133453151402566303070990644593812777825709359949851366686894876247005158285551372841230114222558858637044380053528478815379259414645488797858076835871084068711865754974388662456501242569655300141422037682166777867235440354736204040394362373122522542070704105013006715515949773933836390277402056002448316888830294753182943005263443589406761956325436633057531709213183808184487068539741646553608875844017527157146361451181973720296550476208833892680370478105427473094509014630967959614413888046966539874891112024997963458019663446659108540079986184070649104981623882811470676158191497796116663179616712808882579613294350868571991853260582773642830797912641240232208443889385731993754021535031762900976460225421420503828623656778292231420297504509630182771411454145233755453112445332492722742779499711209407928860084763430973842481401874695179252954600631869576268031375484370552105383042341139865994102525772171682001089173338609928971875648535015722336529149921924813474648737871870895182053308002380482570881484874101222824198939625215281009720131768280991387671291903618327634822557226617540570277530651221559063900225798383043270173496265860901412766397203469103385286201057729906243948725308406850318479440350004831127331104936199641867465262823871298682287452148996502645174185141667420888823723892940796967368750473812122887803599516528335012533124962310677608189656229009127156038687005279901608421397866436821261500688029059808979479148729173153159148163436803444018150978440047664990600729057298614623150807567076254235334248829296745279985327482506101405027751580664425146783400369104066503335606066384603505036295857955543086138015517174521985549430411027901494419132766558300938013020331597880013195665302990004806864220450923622926005472770525716957939040114695857472199078085851541169122121059495185500530784006367976830808017127385083351174483717829590504840335600669770315409966780836303468402360293058074920180763999349379300956558559822779965457466016401761477540100054362498866018726011582317868708391090976758420019080823382090581576878892935056902839263639183565446238782844862605726485451357285621560952147982006413689950294181816645957054678090654470635138863747023415174802571291722281904573135468235098279047354710214506366736546471557025610372236695044845972360182716701485284280808210734951790666266974452979169119924937676490493276712913924085936293494492874301676048432922829100100033376670146115242120186881648044515313423375874435686127428765387113978830125459262490374502495482849784233326184916130985668915133507548719905686570808595629374226820016869540672946613930839091206899125154863193356671547658096765042904470673070002122015635802077083075326108494935804931970126236483055764307318239874960952418005629463995228896336531205158055787420445807197088285079275858734039649082517850131610357563402652968262867343682909132213575743800085911578881704585065222839544639237149683997460846229848927238033480372239684242417676834443409691029507248348770263588067709031344140399840642170796301442814831216369963465412840866073763552121026496971301278022959487975012960417086733139311672163950436330058395940815412664669531777147210099630777340799957881854273543310962017542500928907807855729662092434453739493689707371729638426375183063782945899376351006030561431703545271965474671389837069684685358885273877168851756304904334052941749139125781398868427043421220999499505457803461659177905473802801918147487016269934496966340263168468768715710188973461809358403209934227738576661392313722324606874560019910468407846649253310084075138055586890078636573772758227349321543597451481162894469488351305677578987605908063115634207465031015677822637888342420285504108523964450401130437388768824065045018596766628300131760238859424043886216151735595580772311289469021983814901433139277440066089733080135753487501671882430973044795977309022540120146951115088494886502132997737324281427235568255500834139538696881739160450858930238079986875140429707242288010827126545200870455063556006684725804415914198253230951240339392339813540432192140266190298600841014957810210316988991782765090971155953820477531370556502801825510428315314504204547915161567177686766885754747898434210108078148335848201176510329995183093616893245486063260427322683920662510182545685389583413092793705787842049718910521817817517031226498571274604015655950198015095957231518150106688727458109653696727851085553958130579652374525265789085056694738073883581908358378653314567135760818140536116338701077027183750557596186338652957958355598259874610572851927435321380633043630275625667778607778867437562244687986351464838679393060924598179833149558083821794454856917521503947285868370997178120015985341684013803144953892692812309339944388601132691216057676029679713405543680717907459483074515803136822175639709125819863244951690232870584860653421084864648358923358696618645494105396392465679025414528592940395608688898733689410790862267887962604707552116790429887852982744396922296546199532064166959524830662896168012854712752794666654134658884351913777754111620128758807232222811152531556291854977543701280111762332218283664282426491623075361144990342592125515522083178406160924334755320847210600102403872579437853373737975577905005415325200895572070315174899513417305931607656140155281750169797828289109630749322118382296350228206139082207604040670658643765355763411069550491392707292676386610110210054293063499394425458633284926347041786087615403312176009019189399755218852379637674865400683857491165730708888219396880265043580755317336768984405932796598902190956060680865641832821186107804369207451181919823872429814847867953093951004903595723983419602683534913130674641233174417231679201320038023508946944683284224020249420134638241173515663911017369064014088420413512455497696925933067985775119600595304162201813880773472127451995119996712355474929639838501248238522594005309169641360323256005275044844323783561803450550391483310866418866326114234629805013202274985565942404221919007144313920525322404561288599945449628105196859120945095730775719993766226496615002862726100060547323375348215460394215191834675735948732179280600401487002774942483151771148524376587593300410644631843371879944055399879712469982916051281683369212938702897690353187375765951163498414801531448474861905253239137991367538851203567350463140857666983737934890830290668981622705451731107173331870009663509435646502646305824610512077151795512735751641079878846035564124428589607956065281672113471183866662617434579119681508356052300048889763986688699016188282711725433161244180421828120247255629964783428682797127360042675091099497220384507067162245678179433003114916446537898309666927329614369897366352716241238304408534809455875555156981336982599593294828333873170564503420038509068414292071483963264902576069300274901263355248232465074504133871521646340273289011235784465833617359633461766232548309531799600611505713211950108303193217545491527954666812180270945242439261775329908285413265063212841212583772392871194704254381551376118359873711577718830631310037048439615949860544145603826500185568755264611081585883800409570843946424550504503924379328673111574464038978974285951919416855375964083476511208102377483578951428140391939647692883647818504684677578119618422774579078876553039309357801579862723290236286270210741425208494407457375654284396956596271055471563361084811564117022428194230328769060794568632914658595761520952378139996450391078025760952038822273087744982092729402998186942949898157481151090249613785489709355665973006896055966217374312457068708802702996294015028477133047835262993695285072670755195893807640969250789547729496966159692587768823829049476600096462693846921181282384727923588082428233721896293018515481196978032499791820403786017675470750819953664765404533268705719007307680953433255360134251146418057530037043972977753467977103689472149300266115676817083298519729623266990197779601719305611990462211389314814461477085467845859290133050915450946331056632412692312120384159003097778190757604156823692249641846597931303460868483196652659786918435573561334031422795485621372675145645199917378930170646210608280992722410782559459463392796152516807619183539741406915879601939560892619963333087745450287970348603735505163247911326916267435351868186010791097242494530657401141363977983611761916683817120542062664150058879827798620378124213442142813317102091451694001501114263681678285376262323399091400574609310190928742259969902235386180164423958758991565490289981698285304262860739868648860033386961792452900879749260599433078701868981169852764173091122995210241677459758118142723530658455040991387109982640562024855320065166869056835467612027104953304428722076382129898619593686517970376236601607511448329334939597096086793889452235718143577162258318173992392878910939032176000343780797529870749771236390397982568063787557758511209148929496790781794192400164800015999265251727132956210788601323399329631882678612795047924400643727400226609403409869357912802545541576141836161988914713542325424593878987482401249091166382954506794309359349138895073159215752400268339405012656392463566752797345898939991971835090390500969823873229981953207326696544627824685235800980067730122890017557479018457790244362227436591903859153213168013051770257272081212260495114098095324513876548043636270111938654045404681502685512277131579075349172806632544794654635897866881794447795987685799524829977777522348993753187652099377344615941636571781357990919043435241058005013746609489780509078491331019838414737266743235326632135243041867253690579789683023318164475124104670025871738364715336425028672847877168045971727313113421426470497056744189443551931839536370838482049485150952641475831579623355756757826414436832280266580586492342654623579479194358147780524494144189019140444527974109111769423727802376321098049402308321168676958769661403940656307596090905082734821279133385142611781873536009905511200668126252359799613272103043793145679515877331625961569167276829691197750061106035554200666439328267196868553563410168131562102306776956596330461872448976220360524382207061080176400988601961812342697066728538035751099770338305324557913378331961124540145108307705948783853014500718765473383225452722331435829871005000645206984590988321171182677881520920175870249249518822079571978020614661551176105573909773491305819019587109075735731250697202709014099854817657866817036702578255733349194164353558915787883184324391719142902820112489595866441003814583194035422149997261605115110773456967197298208773780265627291412266871237622430608612929703676230023460463666307183368860869180577254004429707687196547067535898253349416121886733841821193162032335410258683942007286072132885798259331167238346841871132640377727314249395443782295258109192068190943825696759982572463358532514562356632359905105735393297127306130733708626167691458502695470805014007899813047879889697724608292218255318361582968767247611279610592880861132382788684697422196359454091137159931348498467729848068781038875929643538245148967228466131353441624171582240007020309167208713195988045232993978299752975282591360124581078663681347534457480861933425418778289990595082028181093186660942789105546795409686500120388585592706266287196024168031392428836825550393292770969631282423732834391586815414397306221120652837645739887574143054942453185957768692023948383123479159024351099660636222811571231241112166030277040015740310909153675619859320796231002972803609687973716120459275858701926871347037524853666540408723645250685302652858852282506512558952564783211171237724031283636296613103025460934333772438231721501690685503318564667286437385253832903793580287717593217064263500385673357340892225066705386574999426978298577243044170293192319429563225755909229345482169929481594708898737097226311620123780261928790771643907167696317326496627401850549819143040866470770295247603580290981119221484863803803788446503162154036498764565876932045267094235454729982615929554416170748568902307363060670650614542615752060926232239851297473210118071651350542004622959500912451024650307968553871711352058530525232818254024812543201865786214337683093266225288221508623917215566849773661532076402767864727320792327464855123851290726822936563356264674658253847021197932847972264324544528416081522805790197052955224179270764291212485398219137334684730744605404232391101207121359735463176714180729229364874999880349681929103133445665051955586794274275898827726715263412868024170530880259646174077508619499169476730048197105925797853979864256503378283478677512295114373118544345500054854106849700640962625253258253431779524319901863209950100668365202103816227151925900981953994968059749976408255423559569013539105429566052992417267811696405370691251393316332227419525348691070587853699757748055050684116346763436543994002552682155140821035603351075136129904803227219875899967093899926095487649175338069637678214978243318177817468557690960133481144025152964255567613225698087296691155582501023754385300763850646621640237597826825803816670887153326303055721162037323128095010119749756021858099105196640229985642568707544387117702145744228338873981080105469140242803233713529761840756488940824723730024939812120418706468014051743278834642232908054579056350067007674840788943667327451883231796037095635580052523000696912821244537912891075409720476010353944253153077214478558035641348317351685743007785888720454314308933803299782302685252097660511149858780597581020023472979997068007008352096560826136220557085565432285635101126607625503895804913060769766869168082839926309691788223562543922673032479797453190360905075790032750447218630530010875004429258536687943648148068445665335565086361280799043452547207106143821287328463314125304578875493208819945556020943635226477110901507979752713307677164810180746849495101123688851466144554798830458236855623589470514813600257116041357902983509750717671989657372965567271288584182959352250937840001285615732068018656158051846948341606241153417643586468266658614833284680110464532507720167824119332152902643383788192097006463370851346898816525286798059154348321525612894921863722717669237209381224779211289205693946890535845518150192091069375181714267110346385057695383942958171676085607997114594839417742351717930209074670189323710745371275155486590190604981934390498607127967073488080106590689346660230609411374208527967859346534700970729502961686470694652379176107732484144938265699387164535830564665879302982098624485872493894321767374795414039868463684363094501999763518789828587840607274770831090223480839028237535320928011295271277669917891491353690844015868128056499505501947533949307207019543912821751350236705258381840689783522705809265445091126675898029835312067751032592597599269900082463771266028405910613308693662761398362477502863698244732137857002848393054246889015113991176747014109217628182020412514444586860510933179160828702946491426704545925443029973723591877507108762937029327640197146499989695316196758323051801751963678601421575285964756139887863653412077436107423930620425863605342893170169112750577542177701348397598436226918116330204976538445297548383231547232267556423667073798505876976215354482059197295243592702933454936836636012585138351591514114510437107566812666910215933812207051668677364968795970231318660306313991135924748948883568384071700241315122651076753360772143664964549466257346936737831037410067878632141780981063179577263181455282855769889510395238956696996621413381887216512458475080925667767869465213045400058239517484666563047460960635577646555814324198511974715009634963526180651857902479768879185498424821061586522680631796734091181220323317399792893540871484924781955534661364777989903856246238915056211622998077678403024433767445907356349407483967743921045265602748844678530953874824647849125908304516925205439453312327852072475757130916369683329904130736214283974983924551213443917685858502618795988249486262362606090979070875150518682499699049579345601491102556584466129162946545257205519759061461583267879243605834758278023821188105592451914658428716624965131341778543374506205046226928327445293376615371157980487414148363994091435664272431243362453164536096180032976023256012744569747306438890661159120000036625368068049676956647146796511504184180621434163795062857008756696550200910014328156971687489282120298756811111822811889367573831916511558274609963573795746030052488299354695734536915874404526315769560494332088819868393600651390055103810352464276355427405806614591475426963921348087672557495320982702696938729419791434764661881037276308606511845697273207222913122449979643277863351871848240263555157502742724485248089527123448759440872550470948771181954641408215777480613459501055601969341848581462974154551240799403558318635076725075431059571048519340033519479100291969630344871312291764392345464007579978123710482617702126148380569884504472153766924057385923907969624998242739260526517955524157726467162533564909271976250274847153336446230435717703062918375049065741437555090378302912908387517115240502236221152602313166619389707183677699140860338824679970994778701179573010868830560671712683815699576181154421309173579832418608173600615513795530520592529135099586720105923732206306397074272281806533407365008833006116127571977507836016164069163398272101590437777449309719413121478280223925008285826317342750348364406147324789222312112544348686917436623670291800924897401108718594342821911941863599342519036773068998316389014887473861764945402437322267240625459674034341710613590674203301751119657941883193197884630313782595327709792690884623179565335187431324235654127741201701177089908957156237606943035167974746654911433186780113426818390619086262113863122928330010269916530479536371292068120278478364266877501642452489187283566464927120635098965713550419382367156062362562630529905675903266998324759424267561560375294302193183431685148081973423937371399518518269678394362090994343976648706846597804983273512114272800597658979830321249888106058139889136663405604650732273973991524676964129558398673686561134588285041318226953710591195901209640782354747365632947488712747713607441144482345451592879960593491176670408257849022490332711844599269064464971402268522177485724744180784689246542709004441708963608243508256139612916293858181067212771362221179125164561875606418513461189480748557336635201625677001504801188033681095682221044169007518353253786468081674191452880017382150285790081810717414950676372004829474303673331243941246503562833235159026206842106628343837407333592319443270176239705558885314954169170431004640620078100291675572762370318373766745177532013931290656375059869477427156297604227743816984804506273620297674127093493837271470609742232716926873492692108633297840225601190291959766205745620939153435146072117559311371476225273600102978995154834476149376986998956126532526934243908948773820920957713705033723860341328948800437035767009353861910722007472984456373943697133139192948570196702043064156996836327531113445882702213406408195723135386075226912106229010367010012039161569414630299629304021623833088413853487803880428381165929291833701288674147747877288325290697240790419992336939574118945576539212247807203840507458197760365286637271634295503702873471325366845954987272939234637447092670051090829243754342294838126259922143466463503968729115102336595019258859977680843654849212622490478693840883645546435899039421254059916357069444561297153650448195988186723675811239136187926899295677652679667448761058879510296096189071429924461432240195643881822438218030581461220558718295027064568963395000487435695809514077606364501503161284898598231515831101991605683649113736835925283004815640476476663954210273583814183816704158698613939242274247686103776360174545313217468168976427717745499927482730953637871000822134595959979884159780200543764196203687101462779075728111132995297168003225237846225930461416546047639351436357042089804913769366376603251040003012914830677636822542826543192766418844538464779339859328180500949842744270623118968821552669631987976160863590103934139043999631931411085172357935309468364098580051244209980242063202461286316741330510958692073207042477155129507016604343592506936716771706543650009412086225885565421402624656266268535656834518707337303839682852337726844726215346923942068964934409105764950390868029319364569371963572550787583900581987879502049623323843563475831197693873111776542333049263095867537501715726555174066616584283493001188529966492340220460728861461734639151046016644900886584580578592140703975640567382638228976939181275990603190095588802416656108356214546991676305486709631800207159087682129640229054120088241480019997654122074281541707882525769412712256317433403930127570459675576872304252824064901699440803475127363589451652840643028028411071680802037140949456139897048837150190765121049363896986523284971423579868704464597200101688308697735884567917488483722276883834158640686897763478287077497059744128026198114330665079602091076579508344895541384851582786053494862747659258635864460304835434906775291659762318606368912884778797052946915417485030499627540780927570916389057324846109145336746137774253639375498313095381092331974419096950542167280204496131658627685959160288224418897771689978351395347041751023413935133508696413184938027760070681312675732650136131381329811279741334746644556234884702200640529959686762871781229187606642453068458604972209151922103490055720120694974038101728489834195448862571238040444030981764809889108123975660523499098669883559121575096867388423565944895764723712258728630377032124483266037418679136273924536806523992721723013656103804658018451589196167111209977351464244580745391986276415967673422484543571604949877196924249357598234653688308028897409770647575097289649860123867985025349609713090326026243702145886662017325156028796443529595664106083426919576858677718980649850131671300740799999599946249294113876594029737181131350954074250642449657856282241271494558979267457975798160377343455822019974285863454687119233421287674306679316713118977284689244562478604026842162442824037043798006566376756696325080442818822347710813023066951821212662364339683918312417583620098325877438669271477916955780520310132104489600327440531370535426640490230937135610302793073973977893687421370610616322206594691340426459251430107196144354837882864149224436112712182812056452330116729619199984557588130758802174884826805044023420922168011375908947299138551571783944828847295677152161311249567715355598057165133488060457099270591037993191171088621637236648095150577026661204349446061932898649417376265327191918658957634319508782300767635199746890718650548582166179874755000592465506965577347981879759912758376532226281117867044290055519218450235751519992092727280486688280115554985612026110129592563472319533237606516761866249032914898324134974295710372248826388747032275675172528310180800564156436130275790906152323574897825242221578183536557243492393264280681502060622678079736370513614406670583646896237625088815746769742603449109110508765677199848731320212828535825816292542898763015335661389913811342619123702690860252974138385323043892352701112128075381332390250426434399106268422729655433372754652983028045008286192837253424999066571361545086832280247957785511172182432090130838056893371995104576165515566812870300549208189081370513267057950955413346590451866096177705983698626651261637009178914137504335725060333345358568669781923961917843719846877995139126472356012250985561926719409585550214263366151764835184557043882974234298617310564416329668045972610670638998203784560232772994276417505498502510712453339754354137491985974475059779732276331524469322868588384227609421186990552363182041678376934550003135919538226162754299595769819495294463043040985984611539113073432941735096464424801044396899973873049744725624840306175267082569054308962195477255907557809559280547808027097165383155760718248494993351604476007912586987458029458222291273341923218169028189567306803873646652430966485508408155566039951503684807051027583578167896903738541117991792896319560545782595021461048882007237125793059399125647687455162678244339545275844023430274795065868219242950945116769600855067995106859771036517641836280637371628092341383987988263278695651675945693166896989605624115363499126591808652807500164078686782527814448068003507810609932869372072226744558461242239691694972840881920629218594771896067103913068185877244361794653558242141691622085131312152170166123420381499600209444319501780094714653205961377880349658232553541362380596828517594163269503241777519123417387379409412388027118589759973724547641639035293847722885356267618100976234586588919789223046518996965367151152210492353840523090151397708864129198946187964856783540248780490882961854206583117442037213012350751814561427084027190411808479129297940323408484428423007385247531270805385685972826297659766842356390212750110722649857886765343365919320234312059954852931117591606917337417744375267039636068765122200521315248244477689183393854934636952689677998376763661834462883370988491048611001703842803152580882739157073161195398185523594622073641979807954409192504217192882385454692844836591771014857867728446425105401828676183680691610492167274850454071900406425829284523934554116539479287706905734839512523098249074166100385690639325867941559802021555868910237384826352645764450274809951320010207472767275326294705955447114114758048633481040516342564734968951420189030377158710216106671789974207155990124689550244088147355744469204896098363492393694094553938462853772452766633744950196458400506350755346736912410479838398207508027218502641494582906012715307943612982784182563378148619791867875965429900218723713830001105884628918711309122482403115706840691246909683728053876320052762705719762452753086186752904343605002785654055047971958178044992365943478050042480881400749094987859650122222287413610114654818511251285920985137897015053593447289761569275940406372895513086967095193424182141442250182347349263884974854242428587434352568967285983331776584026576145756539596668547678280805013176665744829125105111334410461724498639952187484129052278552311439005167454091057502738367405754283399766463851169852881063076677826765360597691085891494338737780519313380558538007707547702137955106584438050542137472349552762521414405322438046451865923818440476625967926870094999392196334231501068014266590206161457011081809568047927520911691169345870775968344580486077807975648490824972786740637051831147593884503151237112852955254229303149896936513657733526779360186590957273020438532908517989877785399496597930265705436428930654960925649174364856976103151223393570762959650390273493625678469171056767783382222890746973009373100478203723234222882453365574043770906902644624758951961190969692298909605353681543717705528858368320706573153064770734480271862322860654589213507837185634704695145351529498782968736577686918087994824400992043139217548789227114168203995827060622448957535465025971903303763417587967799507580745895363569712950499828018556164713893397064684123716703752191474399162485340809893783411903679987219220959809753276463924925261881516653750848782249366543351499921933414853494360254381482007207321311348901887346683371650997431186600646236189665859338714960262130766517744692726156078929390456662924654258593691587785483277978648025911170468550976729852946933781756345142087921976986266613930180502871671727903784649391378242188120054163120966660211993132838606830119595303303611862310790532398407889454218897078488836785752935163648185740609072423359251769709850005637132239208599054619612742278720354195619507589477188044766862652769976819421419752063019313065708680860281457332638373915101274531751645118664369783801715365429105175564221152358476688522716558353996716036177258390395226446603222951351127872226690060521347185903541352503963650726377399252962378277038935442049674974423012179475027333354882597795305318360661900338809082224520379246590457498712776101163637775593198836328062372215127386552792580208336332647560611807298761040895423866337575238798809275212854551709828121193496055833259039669550088279281762594505607536151753547299739508742564253633227472308360630513119033511403844787183478478683208721814049538636263220056084892573188960866540059877041071740292478496493536521541068358835811854532745269581665833000564016764723314120341923984395744083837525077671383829656713467861760236085472681249707589746152768476697286299442509147545412433053944698180206633365213748242082211826862195717396888685478200472838793074141212998650128213656122759705731108086070642291406096197159496371818457571958993580423978561133262005991702816756728206445217314158701716121164058435764546786832271994812454874655368042032419156914523707842914432040134632001673714762206987137274394838972536799397715934422652728512571120966813396007198704636848585143960653823189767306256267292254097074004370017993624707755693375475269740367672872379368634379612267595404146734008779753554877762107009737059590659660707071474689199264558450539500279802491705077874515933523431564004277414980929006252123216218657689489876554001722516732046787022777940691996299385089405591226587725799007803453346978692923332169427018085265820153863615677252464264297058306241602258278955954492825485849953847090733938268249348615599703396876484743354817067142248028663858515835718260033177166271490831376127640307469311030412481088152491428784245974081324517910241928122145197540509149219620563265481565645656255480400050519846473541935389092586629555938427943111641091981044591747696721313619141894266497702413787970403574990846672376096898157791198418894936637894568781689044113905993879963760736446614364428299596184745232575896266207930695199134109765387985940641441316903083942181773788119901441403610911628695398785879709437123524265142946101911525679710416794451774442702512104312793810825282592831057640184407889981922551418917757044167703378729093300780937618948297047887985352306102562571892047874351650180161851866594734850050984765263462264509736123782625455021369105337907363446752133564073797358822296667838224229907068747389869944996876274248655563997238311733336298991631690645085984428352059433264879765507503712584512551380197578353402598070719692646080955158597634780164710863672137136274678902594844806091520942937236501233339799877243259570032456892826342481195296928455693096111446690413888808327649977503681346471717322541395552007341195167169772092042023835171642743690423651278886769881204493907733057610497614750974571691207859428805258255545788819360998526221016945049747896812841509607118991427139509286575682759782274176069775639232982020224913169795570751133781361893393445473446927794962570077828602005225276550486435010468501646280218285500432483328848163343532745983751475001955460922663687550935765809229130181765593313870664763312246730029918584662462097882230952896214587224266228778436306212963477087100031637339748187741708155725787907813364186679236184081521782554891822096452853582480660692024674396286213066841160988770273346144745724601534266128270539449118173666968340483428186536007897615921636994043602806141074547758774869712275878567362151896928247538455278656409251620735052113371132914223074515932770159959303278228837245734315100901860510771286841793167101251129175784475898177193322672054701044100960104245487638613844978384325255922882091245734639810113688094681472578396026053843231990497900762756774406727251722099725138615592959411660339073842139764002320917697823454549282574044861286912340719292753212334764638899989267406324833452446418667922366287521143330828177714469418697035304988171171315427632021355886492710419617933557422169588125711943303731573786034839645056645383689106503170689340836896831872453156395970657585527896046377071758219730525898079042808823620057084453650870728770758485163444641903432957246779082735783760220577417809079260522731854116066624570435100581856878900109875743924539127770378521526565419562130331837236104010469487061809202902005247038425448054411525375215337846494010863912630544594743697280141457093076551911376465551409259621688223105921356882599346411469585279377733515995519782085476269820223531026586061834867238293081535906697848928643324146730987023345339685797518112765779852162376085437670440191015126131456972806531639867693969462055092278294714736216618884087930497304439468524644633942967848832731052442052310718152235523839209367561774286293286165327809092813408568329916218422725064310037477799013856238337496284141334201508489681704791288243580614033708594258528537846250756129264571148850040452315620316013281257550283755658935231390808981782959660806565788335575881836092392294074405263312879555842442287110384987761223666985471814573486017251753231630013466828986313845166732825459568151591904961745373109503080433869925148158003537585277788410771054009291930221233116334612564820254309112574440001638551388299661874378736657749336983345243111145252905897336005145315264996069517605649892898617789192805175512730322413682287748953378954588869373006250870307670382959678143738000331814802052780756674925008848006717195253337542969682612123498373954059109082642328716028429949714056305126259309992803280957109637964106713301113078796554010217227312590831252471132203703585798781884820203446285685086035886663008410334445439374339997910028726475525145969916294906873268959393521782004107107868025084246337477485474422214806399996723427819730933957853997506298611334372772094400316202317086509097911644992247687556472892852909259597314009905765745051605206556645924972986092781618608843509865537101528193511587793147221315456390287867133467457539734161189165326611241957149405864084859648504467188504238800732499069974556486045668387778080382411760492221380731108818690615031637689311271611279770686101813020540130801995578221543951783741321049993752005614215011907211036197913727089590050614002789324980863566972368976206325434677230668585680601443437065646288488690328156452620162078998779899679137927347995202708224976777750476371506698043541044048417961928619202167613972658862270404125884897761293082669180890609637869080580483551672020670659393005061834980764870900152995350445686897690983908174269899796024774552597290274046473766986922438287247381058353428987374478139550431714025745721530731281315710982246615313778643068664803368181734958713529939320710687486915058021455371037758442392645858716265943839563564246545059642656698291995611041761853327166672520600174548687718636911827523887928436334556077382990450469532248188061207975024996575872248706050438631381966156704771509757707603315210407532562223891637138034398765185955245872908647285986316976596493740105866528119054373248157301295989231551134921043782171634904867325944958534151240770051235729271991348395417571192096019207836137696967476022388130840121235380773562276504194989804329194170413597404491097740647607816326958733694739316675592807883359916008670957464313914940849853044322486198004467503117072099512564011667365019069543215877163400799113328105527218091700026487622732816440147341166118765222456799518364706873220365750922311868810479314776080458650696379421966290962072393412514807996034414377533041109785534779577574025139914934210350655730077174003065766869520428913637287537895063157236532557829220954260922856886274144780633740710295482525833406333930272117536396142456498745919132146107847129122007531788949282289193185270211681768723633705858628890066131632187634518689638145210137083310670678782243379855915814375671244181099466682083378190163631801894686647215711385753095522860512904750444796029716315010881107859306080322829230516187082085927542776991092169300113294434278113451902768652236907941246376986801442741766176651765135303985497565830048439497590324724288733345253905863306803387957612324029350568228268996815908677495742908703135429840003545904931829057097046432884117567158206644431530249592682070351774445950752919894783308969047337789645250215845966058087508725867347650924305018640973614901482598298668491476370085792970027093580901528386052176420499364079517784122832934934768786517340972317793930662600164372547166333904752403766138415468181649956695023466527000354920371507822420981615586178643297572790326039760110723759611417070003038756070937922812999959103445644464219830605454452022428454487796154535283720642113637205136025622821590162788813020134500261521396312584861948537152219047288224705971816000970356950412537485064377587120077278671581215574412986071822386246803938504732291457974433204749241741610444187228237221644288272446160644107966353509260741206198606507068537612946034410134032493199718994228631325634510708757257300866290333437855127957906516600004625672631480442963602565778345988300889426035609222661651608010953978706830566496610034966396802765954288016109708496186364097831384130192035177406654563425423548481476860126453049602390878163714730546139607814674808660150485683062304248918419312812846630057814803386778429658763908191173522112346761854376990589226775858912513309543692836487355820639857551963056943544746155059161812241620190173477692975948030483670318865342058616559008474949137504279898116497053210874758425416736324973225205329690478970222973005663004334253004427710434793232094779647753907912206656712688787081310188896340958225102933515369753092613824659515529305974313311497782594760901454573714276563259802378324697975338865370484415149041224860516036798887981082824958586661663087810276648706004981682155128626449871791021163928078148841516888050618134799168157114784928993828626932187932558942787490575444826515568217390776981385940024560224958949138328467998157986815565609294694778734578564454598913088533933944450672288545826856760494177698010598867561808062824721930396921403864972201168970863675205666855433268029929886979767479409105110381391591207999176254754588908348733272641176005433261456715953505672555948447400944991005042636956206096025568919490080900756226408799973054258602322212012627866874694659096644231462577566824502957880702185580057538415363608679885345585176358964509242139138484064222749353897376343878464278241958529436578666138497092777342079114685686301999096399131818879282848042446076415008741816082539506568293639030929332137157015288830591405401476180120361444248662510431935947820981630540513998162990113601919612956353939000594406218610058225808547642137673629707944769437723055170711504442696078343464940871058282196337983489210071480838799716350677432665405837169492235722673569522064550181382673647756522812661904785567248855741545668369592475089040442815621466563502832074551246320319007459350540020836887453343572641910126541717618855767511719051121528065134773488659466614539201816461422081574357364864124958010842975349290275474510630971767028627708598387031910893756904495861834713287992284419495620623809235110258548719432228909696090129582856508599909484330494010290465206344483645215061955397172979284599218714934125321744746106284652337567463304815858879770151940719643108650780736134560837646019257635978006041831267611405553520440311497040243082019848461671433658376678644477321206975365222524315879986222176025781311350127834946570674026161357617829116814836566399725758421126263276025336818332965629504483421297344836584846762689991554858307508403994750423487919663682824830228913463770892659856871483473405109808698998077329289069988807403965987027115980988391056021021066359707897297104127155569164840281405879150108701844762659145534229388675248219607177621547594931641727006881279026188213779928371952274713708327351927373934304559887889171641935687498476513661343715400782367491531760645713721141776580570150759761265582231528037886653997453157186658776185975382453809871271043613635130891157501319711250492235475943400919209731004682827679897044239661505460784149328877319052564150840221594512433984086928337423719522365171573735223967098575357594868834506306461034509573708779616153921641384539343041895969353232768465435294491111599644701491172143475399881704064979478282136667054301891267784272447003418405763440044864111747224568609653693419142760446097609601242958188969235295245279330379102197910630553239502834913960299167112092586422386411443463702432509761852446541984041668440277667113751391526752865127799198580997794377355375293809404432613890212607286556145360302408042619661760536846114039283058524683841304781098106732003432577480853306768442318178479967466995717375829922379783643454388393560437105528484198956253604589963734894356436625416582714528298582878510981106231538255041885541336657727737420178741230414993529578091150850764808918063023391516872152988512799696095859411292415768516965963842575343194338893305269619240365296093509001185690211868967909165412564109541320435803617915254809347634469824811665222772117438185648659979009110828815578178285678504348484701956658157096192135474933427120505373536634744304644754739438795204746165539969447620985982218632119765104020807836753726197188097384775026545214377605471957104346768912120001756651289231074773444363933141095139575422800994329245477885726253139863508822311171107707694579082472099626203302649870609444445847308766290375291514318605199974806812563013874433342395324351693668779602664560659593859095514311859891953695706219644964726652214149888212510494079523845882642895383113189723373367341825556696351643086513131695190407075702627423532721274731228421569220647674237344518635860758310338907055631765268204956692337014664011610603123676775320519919471576049191298453511676255799059967269550118608977290551245606626739300375511972269749823325150422132230749871364357678685459517767924675716232270125506594602687607439882449718712225960992992896937500229077020064809283995559809723596720379826041986831687172749774394813215157024062790302996708444720649128104866514960554673471285061544473176231041637859433105046064555596291540731818164745205608635252690708435660812083211290069283097521177091453007070695512134333141974744911540543359069514522506383191783049284958391581897163081339855681267746412663085025222976156744228462223489484615034825976586152996578326945315545356411658300361127039273646313614813585762999207328890950297761309076496175245213557249251398238855932244286941202851453241188039630264577510726779535817111930933936466063795699501702679580622124460572693749115983328088851648820838102975318745194434531045288219192389129924746514707353537299759297307587163368599611331122927999408805982000348200822844711912533510888315129020576544661619231888721465253975676443553199639690467009151510902049158724439069004125559228720571905968829797051538675478240740785374055822768491836573590751219522126890706823900163700518477372539329173440009330611997203772967430140043828454191404415802534875032813783733191456868399397095787633570038329540813871159922672228189458335333442752242984176124072301901691698469350769323930848121274093290154617237200414201733718839719114664785909539599081205326214955298503005695623016196811891144957478155520396238528517505631305781311130383323827259389297762806522149388516522402109219945232387897258810606479347290356320894127029910835878566193780135489346476500593143176455205898306709018634639946163157257261234556384790857981500214752873683243025825192549932030065741655502550531664969110454782119294443858133755832420836550786814997148373708285670794539029819458250303044056501409194424233363456584980504517440612432270512010413993493003293618479497829042124364520307547469264463744400665376786639535873605620762658145560562444324618900596431525739287323026706750479195548472590914472032557416282607970611392398758034877909786926123398142371885802566839152876237555620655081252453338318435541017134072984457524339901093153502432198640226101544507372125664083628474916583654614121579756426783065461001092111581557209185416215875727935291639096896770365196023687708323853743156882671277146994005437503759731575788356818160129962883874838041500171535865771934605645597393741276694288092266890546729501480643415492699185179550977413521644456790290409266775115576160784657559627554471133335813057296262777277531815532682538406691291630068233093149281302300072101859969013554396946719551626463524337087044023508816091434346093527816656304155203822938458135937664220496833695350335970005312059936455705650390515122557421353145600240763030261621599111634241171579845289040688009989552173175659908662349100990102972037477692818866200937462638787838100119181236589854504309590688709146215957331929431569152738248494807959007237384680784259489425201296152683280938570498875543526596875176589447309808752331890762713602609817450584073398340291537695711898884021121466227595559505349480120047152102727372562582794461598831334191044819324235605733790655755024708592154150739037750672436229167261075781931624382547876047901119572619260463936068527962050232794398610610580512162694604488363093364747449608957273890897676918177286447307528987020606229923631407539512282095678681994421040693175821040024882991570820968105696441969395823201549229644140299379907635949911768081000440385149896692349991326022100503496325636103494424147963721593632359165989905384238559924574271961249197509215441631218958894394051376213862711576952686889502661503732170143784062639942387318347808603589503416903482417256038685500470051283704124012836670074396247376491547634148457634403999347940138135046791627352542313533156209583500312097827628780295169117932820831708760759745596970805253326023041028106015101340148540804465991195744091080740894273691825664167373763470274257369791510394784583226920345255917531728095500127220592138294319443428484686472902961443328077602443395437327020970239618091904270671384893271660665679978333577421546121246379540585084772315847085010490058413445218398083547393750594862478085009938680567488265168543741518809790504243391377822667563728347747074726219711220687860368304309941997564715484295513425805492362161279016277553884350453250353479939357407107859059849572299618680194192663980617246643030112589587486485708978281191451114735938930527537317853394412360119049082397408686328016824883201216546643872473342465543493284838532041295928574273461906852727731404168781207155653354757816091487644438450400682102037581834729340183026019873645993670102882412127252573391117397421957394046429715345329675121878678122931886946938039449634366717786467800997924877133630044092482940168602466608742152805590511663426169189680120225762986830002761343981708401345828663282622340665989816017632807083063872710449142572056807402548141160868933692093297709259422548375875623561530178322507923424592359739728491593386392982895900689344421115318875892074994403737544052714249094587737764690482226911556086578589091284784827553846629854584501141848767174519934473580109288806869312741299231880267104009012814737583060384550194256406700129990844674180463610373183387190034397671049508053159125728186543635638969315881590422274331744337201349078951004528161087960164217857404318481337980891634309416774222626527275293749621939918007859159736974536702831682669285686869819070231746528292607044940069130899452313852212393802693594075246856883727928880304102307296491786065022225452536597597342438685573692511861886529933215451440014794488468101515058586420241271020663657457372259419079799453586786008215224523773056476070206765704215168352728001310163171373143157311194042310356978583198926364018229180559351000109435361455372482063092170300633007233909911255990008231202131250482975077829118851824958426634361883217381910370313045229281738595458788218990026142173025316296483719591155842593300823854524777483552633107874788873988818813951100890354405480089882106585704709449296751356872245593806354668980513870217254203022581730569457489393816157176224498415673313780865726800856643586086199776617945695624221176551944838748888338523134132137276797475680041219899310476751614609327329248476829310170893953524099202464832391938810687075755373848722668382286560148751382265707963564370730137658488903062465228673198576590709594960489751631495958254497765823955997034511455325262955804974693477091630728752271403416564242107651789753281186385593797575086319529297308314550898552553198277604385259217648635254903021918939042370372538287555174485062814615642295599396908624067876950049508795883041522216235462493229758162332491898211036632179766710791189136684080946910115654372466318185063681208836026722307726356128093532215653734213139391300086538724224528600274572990968820295698383056393096480585163883220392153542948587943922113170228603859911616938553229877131105627417381664641809988661641853739482298414019771984417155526561996742726305595817529397219603714261689771103876994132247573534701479410307417870959235917950369884778245882713723563158941591638666988693859751147970491145862891738998790403946889030507790757416434620266806967803997716888927389050310038096641188841580035374124597109872323289152627339269168033982652310725430175024282779362434350766294005868170230731014075209037389750255618882372135447898288786050778625918001179118595586028681693081801444692106014102679959749433173789448380607515890745978079484552217088647023876642673588616087095571400406050203616111840258454342853445952005378279385780355297454085998845741750040727166443093029230127207844562692983819854229063971826717629833693734795642380964717025678283535301953555682675322636445595457245340285325580387933590798680115367853989433124389796544285639224934958391438665422005960467343923202286720522218099983810829388068582899246416787905150672983201374724634926002733946214179899362793730557360544147446450195131326128469260705688030255797154043585721941860499812663524674735399234423329661785591194945668228166850677529612520358427680934380266957187899620730353129274754626691437378479795427953948212949829850537931859291078817954051481347207412365156566747558425118233192120972163913618805527369475363886786982991266400370259206402983893444341726134177152838100155914575101552898717954182037429965237196827145520496508593499623368618456281326520855537759151217523234738531905540930624912078209340571953172615723331997510465603838966287817177667965149260880869527616043090967440778358901529917478996688133860670452545589536024919990497993374688446892175482308855689209033702986850496543717142387168555080143990407773969529201803213948864996179928995214068462286039058320835768222868709813519777051397735051672193578267744117840922739338386229866505380743521019683142276052549524602848538229532307851306275172918562608713161840105905640127359958035112141310458553100698866836240622630483242943229040010116060646105896221649577418307937165316735910220787123617623448417949262734298245187654044485139353310218644040600401883838470575612416806768400623153826328569100411252221909022866227026117029897255557819679441761770988568842030318099406770327966214640067096521977226245336845651068943731491168147373339225555312667407461425209420109578639658311769874856932460443297658414276745771226720694007484250432423433094487524933664806697296189148729382938761529390197330393683577704778946399256565120933951593593214716762821709998294136375387286456677309617683817950207232827181680555990386223440237115227546299543038348361514617540126010207655728237634741568722402974465031741442876441035398612895056738117479484182218141011903155560890171242660390090893732361299876940315920061623710751815555711723287067293058915413792244346169608061863675822377406130096399093470922298498811354689042843272279901674649848373138820030517818452542969376142001401731554590194157550430841684267395612745307729825272892212807813307009042759968751564262292493372258475313776085756691232347522242672810477408815997643865519489808504046739197727763210647697190846060537818905680181949001190068023599378942502171046748757893099741386533244202064049196510985428254369877019060174047874062423307428032776972613637206246378366471827826789608202212855884854270756320886135212731428355060649323031911667157256973211708122322912064172915090955253000875805320920544675803822954996005352038118230363625320506803655166693895450772077048468113674659369074873790633073994981766608356509807260680367841767510700991695415652621821802585768934618189373256481218192617434216770200121474872176003718654933387375372764197330436677486176498298235460566845627894666623090263573391743131161139523812274028241489780475202675924227129120768011347685328177310701207374647822782404373474142492033973725588584581475610077458507450504805962943534940673404003092140318193423236427539302607947262185103044181074571157353922267836775658967061263390594375073666294080840928051412662673798121092301579791721454575502387411492934498766334267414163509864786779667232572035761796327786869708735900921450900830230544712521021231645107573011069650208139256299367594797987992937891489478521041853292162582000945464890666025675650053745694073988603297717334885140506580434106212272914066790522784313522675275224198458970104001977830057306476317248271920997512500496781382465234366255258139009885168488992315494461354373261790335359911020459317934309897495139768945783127132783433599261358371291793972146666878302648770179963390720954165975541114828907476316356992499441607144665916917023652483069129154672225633109031004635863432017293580948768321342072141622799478038246400182919814353811415758318364036897022977538706718995471417480789399462050377360369032676242510350674495528925962256816661082679498760958514471340879667920231702879661083197883396211074054819149596849997314274203459244528007684102060597881230314815855944555754814927734485879111699877817324742989688879828505721060622352355582485315056331201845574305453232501084935251400501253437248413071840362707013064581092999784049789132298056368492935357415724891362324892372952952760584579045345330191230132125219401886451741087882601718026758079596255627172288692374277701935620483120614155080077716810832748161592053955075422564112611627641660028323860221194434394080801692641982994350633173011495393393872296707733591336148338011091503457997563773541607033858834741452302597464552174791074256004074516741908663088897560918352684336749600885317288327635315377918508924867112866829810314689162670591480853010496070506964183866306021985457914458344418991760419105238290763909259706430663995381835780614485071114076303872388979006994586605976364295726312211899848913265083794726400696793040254274337778189094055006869954159529748776990885802521670281807806910349390468069226532478535724127460991747111419975336693560809676702733847295721915481993445683314933758162618103412127660660168729104175648014422857658477808270426657933992664203617015855738353018588176107858067445200660956099274973283074507596003223822387876776099936657179979541985677127736052730859344842745438762616959550585599548007926779753171178085989856881138563953695182815585679667205072720718204510553964440550492810202333340732785161448136706167726478939384175483228782626240592125425097542371033234060249160714607208500307100641969821434345886889211645837149478619095938963658480631468028347055014973998186684506323157606182965485536023766198356071975709508307137138259785986556743739174412148619647671883614849855666730089077270212084076665241189268620954816116535031307053168000105804850114757617684172347901196973104158658679057766061019616108243213527842159503445114522466588324276132608511146448014796351038450922350274020979779576353220309150285555528960990150847648021105537762491910127320163374980727075038919903548264046454032833114484653360897642995285039405710076416646522417883247165063372356689149067314544745742124289474365790755542032394620450984525776593671526235240282817252745891358958587939416115220764314620864640509936029150810244779135778760465536483417926946131907558597847587158136848921856271230726537180660550782327936702596785271637130111763577003464295639395064460267091030185551056123462230548852247930076572112792633882587094499897607628293308195618003561489005016865216378642206597874650699197555099877355984133236812935523827841606168316214827793378464536840697326659779297334511229934465786450711922075413095141858595576418755220667886016950759030047215700764684239953700321153774746247715447521929960790150228664510430459630820294739226072939449332162779808536470624437220139397331544030740905612322087590606460963347335853265741312552517666668418184359451239117004123211763950476119557136150418467477992381742527246374234064015650899267976690145349117634658727807329895506245611643816120583335532294080947932527376044506632601644302671135900787330314308533833556975607510984796976974115545642928945087712542083941926332741350315843680710805497816969698172386052429677635218437949235075814522420110487938957729476360447143384434460142937770724591750580611756492409552863423330517314803990183935908342616202656426112059253007382226141679474550815989758937771488640992982784609775020520593151357033507812452537120730867056863764588944032690338736300269796716418878035807681018412913688761301794772021729123646070705898419870224718404165557447323770122122718236065657543845482125222865142112503003564151497750740959870335652692656259589152577646240023249702399057615523090675719753242808799526856987863833735767028022473515854249008351795491277316951394627755001115637954183249909517106171744828370664227228852659062989735256393435351414710895452973267546381819741159253375261863179318066077442911386881809845605935350525075567748567703258432252764721760344735678412492959295506209717227129814132502175796334436014362959633172571734114418046584585277346243397881284291147436599231225290577951905329113438618266440150024696397390098776413495337381756972060033865481599990549578325423997289007835487485853579990307937891245020884368839891749802105315968335148664996977224228540907512627575615062186319975949483145259068355280521938452278507971815479689412164318369250182025506483811613471516412379059258969656754288550396729063426841531418667867966766671552629041751977507634072375553121405838894218726828825701391184605465000359604348547472669702575937074366701249907322932387504670124481209263721467758453339767973748842516506598577299099872103935292718189906962570806905258443985291523639087341037156802196590026637859440841106706629036034590501464544764468147929959698703479146271084853609391685676446517260490160410639046848210666980680774360172186404823383384266385322766478872578384770127009684608568451010709954937708274061560174548712694605489943524359800636871452138069994161493767853142971714686521148017808261285190249984769355239446678836190395856688698152921817143330196658220648602772074891419362836476312893326731441128010095612316353159233686623489681962590932036399478073742570585250221272468299510781668234765927146717499309177317736404817721641862733666466183250842251853725257876586258740416670365765774987389051888447352181752135391800552326654337591199284713000522470424057280907174037014368969503591760521208931069491245132084080736765959436352896544355123515380666130826955871893539212585850484810020428446362484242194698998604881942389967830524620555638281051994033053399059671682426027032061908777911613764435201152726381374961306851873217542743974639079826340231447105043660825819335984706896326215114002965555431948251203994780142381077933184533936794763355433011497174793496650493466400330286134982497490518345191674819992609055815486933235692359355294178224447369993492044032890305015834248643486308722878402301300655717028247360095584824862206393812558337152783566148190201179488799446128938474042583372771611516304006104907811656307018692772288962291952553564552717304152413350791525158717012398481356476005810790222863326792030710697200888871989530919096329126328109818473299919564644726596597766199392599098702429913240722584058035187249066149392358826564639987262530262732281594704995543084124805895692389263158630756934205408580364496050020596413698392651450108059203639009046554860869868827127269059491347682326338127282638124905378886117958851949116040695869843856119248462306822329429761809659694941332102704244851082397523012248823315443395126469136196593326995395072995890039921745126040827743846371689980036573402058727644891935097911575098148374246817424371136982499035513558769859355327913395945501918662064095227733154686238626525227037795641793526284859316922170109140942458962274347119905610329539904112913730358745126289120417602914490318866644400602081235262020323041335061855265261019501838351751048424969320337883079085591996284737726032973101489942269397285411446195060648485936680790066709169701340186693918345815084907126085362292780019135475400130671176762696659445558112555618369285342909551149942863382834097956416756774512319859946238698980649958032763510675888441472235713136262888282604566470990402264934145295261457263586442185494164643070211526560194862870960131682037273132568340959062539895944091044278167902801552240770639949320731888123526352228408148268974938228074660844920101959024521265629178114173975586356355753635209416009248884523478039925496808086745936501579516368022220910832674124002404125737390193157005235150522569369765493021103806045605178517445862239035514631417146662569032418780969433463458083006468304789040826737292792243829945759773336602475403487787323772202006820667944352956572422230165283838107378629886074334397729841999191019923789204326621061886397618718102377375184097811712548939598370683501372434526443422694834684523530683439893718161523799581108654949900008280320860911312265770114787599894112225912418993682006465809301318363671641520280699994653751507545124505517356040196944598949204497118731385918284928696865494736851306871477042778337731821240393421746955567704795756888025597719329559384297923872093729122131786119093266689231777899157604731313151253088726789905053163726092552593095778592062264661050694273043075158085052557508171569309078853488642810066430721107092454958831092830655699949055452268050536632722670045891140358190079453129850627417895488923918641381103774215921930704297299664349891267971288929932338516087875568958097896353914760899451790262783189696533203555725024698640858342252372144353731608229715845972107706855473374881743216739237330418653315756524169951114635990397418950780627574665440812978846353522986469525611700248236795207842252523900970894678182184517336336939601812408749236904940926841796394424148329950713739980471348170002018797226158939081439952069926987220826719027537899454753938221140256256374477296438815645643723393620028963758131115241553451837832358826058290151981608266748287852456973462089540699750799023311476652123971798849218650331069233139361980755004869680751229063500261660188361832918358999916398289914215049529378809570529671380747800397527684429126375375143605676518818832449567434946298213316719372539253762753810567274735864922488683270493554660663492501959609337009455757996345278806940750053661123007279851577648008865539456456611178925835578554847266362730194312156228448136504853764222199127016577378601737177598309370819531581370186919484551183696692057630800308623549239776545817105707840844870791107427468420538219491658857273801726640562460317357933442701529341703117275496391197988282829872777795846884494322097870791930739272907180787476742040061702473094608595577607286620991572584775385365508202349198229777717825142913742971847697150863795873707634926656134476292037975419901465667874474422076599274329085427164805896874957990598193094757297683650966216170791694563691016787159990818582776934785598569572809213445376977107767320862660446575503122835093843658924639282588982621920961133967840173718916861017193793608845775992261267679187333628951365506829436379564903491268302429121423045928473387823196174456119485760262747077494634000352850556263902437951418876124695857013378106622277469262669062095557186438591751317214614959996206280700169460880507252592473246541174827933027805464502500242237600729362726647368244546053213838447724723910473253495159909198514551897043204384710481981020989558201406025777918778641555398019647689692375147797212848290808751823536794000334401734308511642501762108226880971592789541946381819776656210001275511620084832872960728258493091469681876519603088478653285480827227107531294685516681223836463838085975526583176907501336610219623571255105813156588829616891869528897297265424232741193741109611638262737666445275322068022936978414831518706058134432515007315693260684716156797220055477009229453237661915449607531251652105263938483876234455733624285990242479252986210807927851169500129087212995049149798323845476174624320117631547310636360211319756395918072769538206920272891023647555822334428378663731256332090168109946259333952525130071538547649229306337620926884924031028670957529350720634312181222912082362557242135905184366108658840592571291437608082613992950356404348418487037699886492198708185019724668731698536577138095617568734591062447985159910855805572183440064308246642233366468111392863846043502930213979153584919171124499565236920567596685596348660792416318522809725410099105344381966661322979876175716444458462458483496087739704985269773446355708715687407187706040273326242175522987001020246888038314630146130331276599972136319863801143672533301349793072704781239884031005999748613480856692748868418092903045490670861967827528060026196715730787366254063551230915036825768242762103155503009864118100623756376154168425400405219689681519810885847573798911224512646391372590383342709138503241672799158315834341457931348425483104054960360403940814967558984913714155113958954776913524251263158895464808318449170882722716671478637206300652174654969130899812531250698088189896839081357809206788947511581477591981344506122383719900511320586255226545690512851807532052717850755095437657234997163933479569451680585724718371561266911668193237144943013909654881776639593138003669701875502807668345875220716366753969822668385937109818916782792042386366702017034105946785048564944463700983817366276793866565115848621494613948965534327464673291267905121412015233214040410660121278578322859216766956289307384117728625030932558201205344513387309272580505263724378196359934690252729646829156703821218988680177829396447923497074749800501712004358162694490056688420588982704458357115244015881444150987709221269860820061475339114581311486622124297084667940939754809607078682056841977890467441425402694302728783042720384146604828941333116702933323938351266292102841615870270068188070599611611865368223628131169892017383496596246034958944777341050197635505992300299689381270936127929334150191889057698710115701728453493031894168160294825498039592141651482093455826421223521732435576229070809745063726939602888642703906134586017110155202213186446168827877112048114408221838931815451119000589015261916595565523668016894527742612356468662140702247880460861837149654666242877675195941473819376302132556301204840634002236274480005831052595226169217541419575916800747746589971893547682551131619349345393676076434250519621059832661720749886031626192420768902831669643160444043714912622460935470699645024426886808631136855634786254580601281137579023423423662606165550675175203401369023673031993231325812167312190038160191525333016925668230420849022566042084297946417479534825198534702234031586129580105953532100756985405867147323625709541259139868323407475541096309746082979346182888373544781430019737483211170358884474435809631249323314574720799581681512912070964036619835582332284426699738265891334427610952091674594244035705772879971805686948582435543769713160167854189888614552881728863253734159273355151715493930899108011984976000719300290312595281453448042883675162964837736427049954626545825839221522677190446188687779693663498147107693065131567354189120595716865801506127637938070062889729138241788272731902603642221366879208226444913496628593253138005821252954985656096039536897334843360601436023747212065216020333688426893442093221057171623415538436195683465304243856524051242364490248873525655116199093843424095887394447288919156620637600655927231029328069735828463862592477026578175960877540095860212765357320513709862554014956404923002801610735262049136874829097225742463498884780559781953955604338784505261812380974775801791088392499287686307334898712603849077988974693990275602876329678743990990700172981913680546249512874540300379929025221317776879434846902935154288283660894161066309546935668191140636604307460431211365625368514216259760466136698600302104547146559447692709478077078875143182877384664212142058712014559178767500222805982493883759223674336005973049624968374904716011331105123866790446471247931087285702856044784210088475973577645303768726155444308455105933495150595962696827091970079393278025610947279811037290262264695980350676300106306303137273612515794965843959343013913927496639950882744854492066499894809537373312796527675161875349632426312043376145819540025264674109864215240429733473101283667666723032991739478494536703691032299559047050665900651178871389353591470612213886255715706865036955052547623703484258388542846624889035781819558412819837361111992993774285717084119867033132546162399783920212279691486031686419118521895784616593173916252017889868841765208586361069049089297116539189536335655763122020099987348933990175949716555070294035353764678854218610919183107149492877186331479037599178611247178225909029948359736306367761172665786597464890787456936438948571363839038668376914481700302952176993368812001976647070495873411552574530573717968213931369669394010672234991458523559560575659468322057489956110631080471612640113936513147541014956442028877303460561613439697509082972955018978152026037912676710162069637650847643889557863555048198404532485585859403789785880190263678678269518142220302669559361922412845529402157489180260855585631004761235750671066264012341570836725952555429345160800831839298927819081788175088550353223274011788310604997243890412438099550318985523668089239163060303795436867570735110946240544228199198757221408079986407006279533120385779221065962126674497270780891891113010452698759663236482758953089698364334671783263649243722152774218343379772302311213855130042984014213430874008797508740723205780629198972549533325297729228779420049430399598518338987497857729438026642174595954024928916937115121588639398112179537189798956594074883304656640526826612180233219170373834340702597024880069702390558265196641804106532318036044503183234078985878560369161792816572034447447906077375340832288362208767059464326876663263162103998022211550874977552234542036093082341460319583491108611533274516577705951192003808468111623793093142994072680801623161598165648604625546324305150218903834249820819412430435332395286450514258646634802070474204100319699959475409589472905639085195240708931363239430944051799844158927415089612905496312128800020958134691500635320917325810547160745241206605643322025331287114889792550650224902735504628517783413613931324643692848593488913904363646880963427741591606760042957939839939016002987173734388424692218025658545280862638746270137537144711663241938701173801775242749613297126070342452440299328964735184657866911700730632662371720605383569438780610829402326115668003044547586015187655526820727683238599877308334758824115024238356956702431867873721270901301485201306417208272876212919589118762443360465082124646177546447671259350021374258555738576979109281672729015533035779023083105839104600917123790399812223394506415530233555902360982523908723248754987230642700467755297317059602478157688950179329480879212641306519528663157385459397748125157208018616827480616504823737637895653633548168053181849382708354409687463221033766700713183012262452428122022106004432367132981871940184561787511445616881726792969529200950227122933770062662036346095039724406217094369669354947231071040839029999493054329895963175892535979954083646894791985920517635735212915879833191982092646765591605784478696827254936301048876419016496422174322930847928581010989781965583709465587883831229972019760384562776896811215744974784595329550650778350033499723565426336947398598876699425861215246072324571262634291753193431111734958810863712628599070065245587313416896142245184808894092740574464115606120372785862427446527172219153914680334670470346551955966202458430175820551745717186952736714572723058129632869780844202013553149048301750199592784147318643389249419228911782053157285077322994855438615851615396925593582329398184722759138299318506129198117642394469550380597793846534024062789771058181637448703321356951391165367872499658825025717826263734656687199231051119724752250358113327164557133197941971359164103730129260063857826951110244649474330740495478738901374623810612626632661134751664634999510397271348868034409789291950976372057480631827483076003391138997771256645601363596847070600455938719538609154601973341372070910145190300173470404143026698427891111613867524165227642285764406343963032658309216191756257074913252162053910491313907386098868406284328685297047139797158307641788173351913815794505207295318778689415988420898768032799826430849896947697997017693838255795195091650994805250083057653265834499869261787082329921093411791102463097903616394602224018178059753563474366168066260911265470806187120700427453181880285142130945044608784553435848804134497009782221040146414203582202288100901552368901637376400765858245261793309105059903002123700393582573354251261935253029187986303585663274510794884573242617553569930912363459410605682812557440400126013233784962644691079154818965745431607727747641555625326132261597911987507317149168270630612926280671308096301056337731487610866124011610142669699576892058075922433849538473658259972889196973470636441804306975894549053037857017729366441544360023441089088568870935421828734444236645041499700620351081959354317316676611883697908275664821968312957493924571458867381019337283793605656344915174671887863061647637140712895291579311837938562980783590954648243626186402717151975678676728971454853554299102961878551016919374564497216198972695998528679903728730628078623551608830721127804333369309876487357996608818244983976909041617120584497049703048312188625586349472305749508107120367106766524999215707743788975082518559271917864136341054862897575410590909924741158011607575953024768549976291805681390219667081880022349006662701999796803784393341594526119773687707240563048518728095951679620428816914266458502328827535809518379073063802320831901376131499003346350901626488907543200850986031189279070292327444639570627587743776069122228869561477799672542722546895044725509233733899399857938774299071816286755472092153947223866585423452546359664392209871388809868280939682060007403966729101942089825830261306176501764374182473529599015019885794288732717581245320808681056251718129437220388932214156662970036043216701071001446610944729595063937590460685052515826944887685571802993396922378529100567936769951481107605413467285046965601857561440644222150028855110983124631370676760754961409283526358011032546484471727342398642916156878338368002155197687279695813031906521161940626629541059010356364887894291387442546811570824135120506048033092524593221503164042306820044505107860998259963041962145238594949809458742013141902055570047531274745480333182359634503338897003970290679543867002421459593385722232665062190537734595129426473962120183658472071501127779135775381819601539399636172366795732837898085134390444352299399200192174220335004375614370967804606952558753435673105518891445762034659789996436871944008178041424815258170440098635336506095128275805651696015334322663128202329229446644709032318732684039106002905293056277407885051721382962404924749987059364307490023622646302200663547357921140657954546932163355838053514605654383867303344802564963437679361472441356329033926627054122061317034272524840727295898159929027841839280230863402540641647983835931392872319059625556984477815060909375821116315685009380269521513162600609023371565837158999323069117586025351574780522883257023267401997949692202608819522102367252567711452029147521338071323316927416685596675264375088870827746998613704659349986416511828620476966769896929057726202638379329609368184708614289775305161325220609639324416345535073147956268019075134751715617757156641757493645252023041081143839943792426729247393270818256553576566654895746400264539790103739169878117166592508232948980830641151188516700849799963099224186886492646680296900088963796701330244149358573308755042064995942155977005287265879910045054757256240026279664494362964871737331485513943013523898403351178974964521294496471635645937927225312877167399263819460750924992344995302438694552298533272121961420775518679676006025738675100750829842580928893338881575119919839214881064179146447103390562080701826322875977413080977866066869620485466234200978511731881310138053201504057798554885276571594430081163796779651463998049526682370447499704171320227276278355910335614544445643172271767638691030365852585766008063630362930553585839479245798831794433118685261226828221494638651464855959214847349290445165502047069916017591215024578997687579010293858893155404234414380763151569704287286755178888918446651850443315377785225700708831178246197731377933281888144661982921862601842192021732342882375801220368746863201738631004809361232637646650588667815867003202402028273578235883729819648730064360526781039701196690980798212026350351339057017739626984921427852224847601000940034344496258093155248486191008775598176247033566765241167560732998545975800672739478871552124093265867000474890706287067569997319649497956745510159480403056028328623226594035539742779405721120964715858076296069498013873152755906791101729906337004333070432225868481251670138132340526426737768564047804068275942175469018045745379620602478368876625141102113381799082474800573673895120436011686647456758720558662013253157738183416029415636670333783200027650445639493277423877949963594729157105695131345860581969730651931194519054317505610467535694446006704825401041168821460206927237320306332452834912729283540696221129576141641619209968744229565178138562332564651936869444142781387107874706332772207778060974378771371464059949272312908891470543118033625486112911291745003826918509895182183610185626073989774620865841747095823214943421132259137666265843254017200185490629998471654030961241373653441222129928917583358411217390039912535346112866434855586265028396687970969705398060485754510329288201345422180292075973784926540304932508895599836378519041862493191288830745006492743789643001200460927964691270153806780477982551757078882273216004334365837995595367220574802667617603636628783715688445623892440612913418311566650615887449807165416845207131833500544410629993609778654492407014954553028427600639690489649530802618263055433456796159016853447737390415604027617426001344780097346674504014827567905128938198822576290358998774373772286806396387299171484717243077042430705918547245652887960792860883579361716020657169342913681436265813511749885419444482434031365454191919669533152277015937254526689373737930796539801988783064679970705382687089454255080789118418584355952694732735463068771181749283951038017405403132843286614365548326819949490066895673570991242674029590075950408641127393716718009727525080579697766704878862677293728952438215011027411800088205202651963372377229975214972843969837799005220169339242776710059551280608263488545363555878458347252210795440054896532842501837406994131611245872998674246986691343001405227386328822393031515921146866884881058493487280391554842289422792988983019139217484351565407823984033315155715924821474268173534595366004599162019521107696643144901955150135401415230740362024675354710419184008596101982253279400390499666285160351799389935618026245108192652374786676555019714838142392929588418242365013163814678107875531506671033529259406833962090478992972301992583551871555502655980135131569811016829782748472853011725933345578192558278266175659450644263862896747946527162812529896327717665684561859100119569102592249458635151184523463471548943018017705166809451208351103868871771239204249443290788557727209387184250945917673560395426588061660544250875342588327463548196055791622572120350367777465690209538153683262951000352383697240076097907997792837699816489189925604341921975462917282983851350506416920298103620819073375703307441240017599158768919142808006920183346687981251985141074975772974716642631976786321218186115196266758895207947566772072191180191250190089470152457224062361502313248191819183624679012128210519902470135747300966851792996762751053105402611472266547503962782508571942972192654893257247858645900367777996659371686361051526296802830977804022839255030186056042592803973714839311114919367293969835795203672542967232418785449089139866891758391205515452025783254889735912216585185216443588592812025374206838536638052789074762722521789235164753286987485739585167611946458210534343690321221145651518290983872385984183107932790438121681856233996540317722934128383375670480241789069178644960690288811673303282514725665004743353951135942257075903975029390135854277588806286677127226739889382964783238875515892628079987550594248578109661201407872420873683184039194350949725472499972396295853315073026616443462648721581652262670616671570705567772711284518774050731953296991223116784663472421037970383070488757804919195472810456509010434910258864094551108415038790917238624868839386569464983898198526295710320153084280442880460881060531695781482778064401666527088639877675045966196184241893675374245419406495046668376955957642183295120565934459998651607252073579703045543685724877886846769608842769797967593590257240369125767785950979991204155949982491776301605017662901204991069225499549712356071068100716040133007730233314342649963331731421879516092486742802803214316425379124176477458092771455452883742077449127210104839370391911130618403692606574223458535658849422615551852954220498096720948745779900324937652553406544923712613503536823532941915251954581743782083571426596625631029349714691181398740425821168775360017038812731088362221303319502200085778457972190356017875812356648013945359199232312860786304617141143013474534024095207811954284417010621252518982276979299497197540690582546506697277461050283700469388550880613496538251450636858948799387710538680073416780406061014370844731470217214509147936862134169466401867252474560333781923743974634040021818604145559569848374333174610670339907823589986950377125523406419804499868958573744411990817621675855778134167069308527268592152200674244214983344754489852791019262452071498198322054560709457928527315280119422442695931760045319684582115084343843518475681233998638539615217054255882053976705560302916625996991343205654168999134631820061001820800812910387869888015190640652408059363592360843322873302043511460107780119977773184560548224501325649192477756812063207797739136928916441625899460740655813771707750639601671280258261476683097787303379580194692816309309533823668223221761830899138460757333037557756176836070488250060858543653945930392236107585688371228986720955221598911870474996668774546714079174858464927349645584315118357353969968844402265644632683492933921583653501432635604654409667496993928508024280555748536372036486777673844356195678977911144146016254512790488988950279566977796668311814823183033603061235735818712650890278613503595781221268807222699605824803941218948722537647608121962401729622719914835015482040663175244825022739767162810079533551679204867862953073891265389208599966654966953877921649481636509683960290664162919145722414155086192226698868085226162647155697530482437240531634539769065012875088011718022784641350385709626179379093310065395939184699556112304988434653742802998731786478986434165066092232953030062634185351568874650987870866077842485868093918582595634418505958681886337810074190837582299531798243689423887891763261893757405659019727314069981523293844960047980257915899015155654060360992179610348567605487142481769103727856803344050297189231095965864061770134732534188316604760204751408929064905745794421760635030298646022231483676587846834891549471342432534787977540169669979389722755699059651571838397368003326671896606082860710796004521133323187997679112078786710317347175347535644230860960386720930317288549257894931266701641192822030512107811667737857725762620827369240060817181811161875581746636268218163898067439535221421967845392785647501248865726096752768681228647318640075454201691695990573386086313245416736548401607035274646252985386126513515225469817446335420372883974878106408735323960232950465671552503570651498451044223168696080075347746141131738600750538715051423887903965582505275121204160843135997699365842766258371204663176002120753183605118334320031051761618286707272748402120696334551821595704890484332215741342442270885070664824301505215754113163553950589337985740342259944446503967444347422778506824630752990713150716845170024678709083182763328645685655801987470153714182662150759153211884382006486011492080635719610068552515636120822133672156036810994131645014576015579185692989378465316044770530214121052607833569785073550173589036354883128654376375947232824360422189005016766378253170481560340235466280354178106799655572917068189145522447997327767613359077088112155591891376984971790008975908775176904695718747845148128856665112614837342927310971325041803088681472751561246846327982535381566565568792647741135044805220388773931801596379582603974192133856375362397375886222671397125069667511024185824870726488217570560832307240420045557030223715227163809305938107897285785214181558767658788616755471751131634161297676442534150388522669756196221351766109038025273874437128969007157654412411749733472997974751501088419804918413555616142856075431315227510666626677123165661961147849614137794026864250759482405465600664300898825711935705893294436499742863321386992730550784443279679920648050048414770240461449020730892376228675265661083227758390501585638732264804443163650972379375849797477911140909797116187656017768030659151631205537478256247683279375612867741889886290019377649701261469682795391453664070324203752711944571221103365871805258961562902883513529324873999166626859160964114058867655435337005147462915845690411090742249407904159906698623448889247791235367752461095678680334928375115190619638649465973336117439860537644122098253388940880835026366439799747907626762200839715729055732994008177737021725134884931787037355262834177607196900174399258041841722543369016710360903629146008210703529730206589885982281908454582307543683819530714893251553920071411513209619495967323084831172328260598488278571865732306848948292846422984896063439257902599834789556470097492780323257331029490508382121186978000798579968327794341315643924056137480325831876115027294796742742374754782031444714345600079111985032774878748315975959460970214081663868334621252244537569570957293448388272830684662649846990863742733380203179950386269089061405197619535651417413664310264459792319575939043927686057258844527071249960992916543974981545263449597115122593797829318595141688133359255458683111153387129428964384123505807611596494625081624191785040474498939194729323437083467867594310656541957992404534325301077965562327584485134362238650210418359173295340291994099616910262707337365909918544341454104955475841349942900426543375766505162876408509714985264072267251626360267540394868464124549454523172216186682057064293383659290765621838776952194130770131066247997289523516567705512563809153868538366887094183841602757303878055297760126024577327878104111574524019703288479590967361426622987175097203895565050257253490265983765935809842169945312098011986152573414228375840289198068627874875687346061807280963826130684633347144425784760165039736486891861164937674297496549493144093578297149068013350430014501006862869599052506948133667681635757133256726109790125723577242089729608130144908571735862788205809895047438783746309304869991003367950961121791274389856318706385405996837442088162462945049358053795467766644095833440435384508603341905159670953600773166036644957891440639226790601306895590204956448843306028477572146954763567397207427475076120714590942432529617392657606561852179965932357601271672141222429018542188127279325944129834127941145327652798271748894906416510730461908509256845677440188667829754722282812359299117230358798640944159480783238829158392287806714265475298277426067564894389304465740870061712800649954318030457782520870859350625737009656559957175882221258480622512329883207661440060028760445343795436741062360217164381304723821500728883105264661111524614770357182388313907222383997318746686796789874708003277829006436490631487905700308129219605562617108853404894338575417707404517777674956482736376940391226308195415739745126755836424476597203556205434685410878820181071518966804122870201466630662530743118896128226094747222678016292720958428242202725771837497604823512433515523347796570351176341945384901202327512771071504416539160899369122788199532963283601717922936595132534086774946321026477473665941929314191622517469121432248609640869011882607935495455496410843262858649590513029694832060589031107438123023809720615762991228935503897755949443606907306954631165809386864309836467405402257733217861272036123894117944189083420200262185568619618902504125003515095715925415471053777456102512530220127126840130135886239412824981393265490565851393327093812237504070920254872791087281349250967897318556340992085426168246541294715816579762046307896673578199334788401880927817767385942835775824310225591249698161908480799917981343698709640091183584698562886981532063280800833403978264114818155290579070679448362982876256163283937585633175193481749795716081173078811677793012484669405035472670919975222296039884018942306555930818155696124561233634522855724473472886850838035467021158715916490996173656992583971043628630907607382942802602395181965854200341427351588584705198668659502312894220297627045253011975753919031975346433223763362225116888133600878521887878678005344704655394166170122805565647275837125662158778424348545355184374396115529476351919451894141616352860968961629549327165440923029477054398984492954828946519190232208684611153510362200959795898657625771562901681302217321980918413502463518174051615423373375819767159581793006850665797421572474377527394044282803167299270542877972447930421402858236476921775007383979659963532164558085268779288282074267976459174896287131557418581942328259871946456196613389075531888485384682154065475130437411528786576222107987920193578049466896571094393671673760536449016154525408645136895880665577771103698765821233421981614435498343019954895148193118936042609833349560434500597979567598740404478712139112944078070245588339169113122642599741372441026286268565021058025288175983236575968880820531483432820577536177082241494037661297524871311962446739701969436428752358391147673712267032251166749360502085367455535094959097122792117839257777819483031281833371595689595780985616959878875867767556513370735607070195677722224397941300693161863919251712739486725834703523343741391822169876497586529212367532679452605751594186534964449331274880151307242432728955297209871467395135021567816556328843625787862522324832538731173205549859245223337819477985256411051158676173550324621455587597147284360529031316064690242017320555247689956517223982260643040346018858678679903065675398455190831903570195285293245355714892478013150810259331037725971317606610364805973775624508577733373337129901425194854079482061192504200306929847970046087781868863840503063390463558573300874064230734224039772817094028239762574614528426444099978185046920364735851357324968203721861624410325960925307775518613418234845466045021625894082623224779058668135163440227443581679959874551548893566202392694481152110140940418544857190086104182388995735657339849687318738075802933273077275116773166843740283660472553540614703829944646010291813225357707284265275915387087564139842621502331037962239453689936504658765930719297832590784046308737870485275280145460105103357667839887219095357681061129703890268242185946608787564672221655168361467836079618502312572529586823988734605300357304247415117774118209830284026932696258134513169633230797571894900463344990816817923412463814313844944533399461489701457116917134479998080673850805257539715491422976504057452579467106381487747156452070800507751274052763106644926371921639232297612255279042161374255781225902725444826801799011979716788834524967111045204592716399935261314696546635426237235068045009182557150079181831331008652300642312349808500677148774635713601874620783640773726822441483742129081909626573383133792624507510802148605331527103612160370462931504153294616139766001142125330547393939426748899360987385004325065267398691175026126737757252351150983972147946674286239237609090858244385795358636462176988830779586151609984716650256642302436793700095888634573075013170045857276647140415579576878441939525874592641672509410728250689386795937874228862201914918632043889837404363317693225766180635899590798453965614097712707622909143296967690761883835918791690929610368308058160163226482004625524397454558363005372098989617074602394494592289298306119666128808695475908122664202841005428831041039220675956949405395040574774517570456861118894256550371046530544954178835825089885971021092296682749738055402115111731155780507721730156027378183839518958926148392117371471841558146396317899581947947688829101108345326586709818132996887132871977078316352205503486355190219384963906499590852930541193389903896860793544296762549332362393121895975703605806518483784544429104990769630507832327900659186481220125921542218099851522279167319435494573246143911449769280606687957586970230662395913433275548514867224346444292843949243840177871695194010788939010992179613431110831802874184486033977179870551467337831783392679289517491587707643159397997896670892019845610566050014053535118227940366865239714718333733878079575378646651116659261204439935776454384603784044638910665108698731650166325924943284412453291000664976112459713671599442429197461018154720779111345561561851068860986664096765014169317600541500435561743621932219499957536234733926891647336723854829517863435327925093860788971863927310506110200308266079621585161858217746039620837928972653597146184111717098602876545651482974233175405007195469021155525301348227464783524088079190064682971011123564820945125963298576882891629731810889759763977370936438632788054938654539300361059798743857439060127251561251812791089881787952979002482868839656241554318684485635298285863746931847371443405713465151994912989418836007756633049219758424837234403531512759374977736843940691457112109246721347194208853301167441797190694230290852151764996724968802384794068903362162960467926429254440607356989037002254695551642800785685353695011095696553188863955918677651568066807204589858661982037688565383808082167772241997272282361994513658246220376070073538661271164126058682973860126715358259769349992092682858561838328442709241080769706324171497320979048740577690728479794331017454698982902539645278628639217323378049528752326981870679768378004717152099608262946638140972444448232586021483079492318195714584607511317404013984638683554152472921345382757700422985909121678985426420148629676614129274581529040072325105514792857410464745796162960248472467164590335783313805829128336614089580651719103619253896565975490266880693484270163611133354542092248388618473079867621231323971635388382307849052160364012586670744021067465300769934779713323003892983675523028047485362575123088363768023469461841173620113456629572916002543876680464572313548070670772004516378431884695060388553992605260974005016580496751704489588104822055767706729281519621888263997233122928875945491191027334335183911717838707121987523914417598863738633749195982714205516824457058945051843644331933041249283845703070649647707557735328931833785088366151994857886675025508636496189023535324718382882075433701866590600533844463936374729608699183252087642168444862575922819862511338968755238380694535555467330569076240933202723218701778601791144283999876048948537542789655282345237659079921907601638970736259346949283143077241029519842956336663012651731432987431516751650306219331566248456139532655301881573932035534353208250918470514214056635334887165648456712533191839132150758729954496943838778446941541385721952544093533589934386131665398308304467831409924092431525786076146950308823042937709866041185861040023140989036278722474759999164461151465894733920478078225209696604245486475294574050314610418969824352131331191867533175480679177001397038636040022262502140726687130989941756580287928361407664106330330823809645509789426341367418708249708366126725290731024053046230045799788392111717164889364601116975349174326196662581267695155234937960305932994613893360439536424314407857815672171620846960829770388198037638546117278738743836672638293857909297859363575370932806767760563039895371382993174294838371841254018744024060599994366825627643708217252607669771362144574965142535201065527205973473254922402879562364275894561523568234156962003336939530077681705674752619281655444926324477890652230589207081861717762940417531691801744613852814060898794321016575918975239976015314861229107493246770320440456248579971546399089363641113209010379725115377676069172879706011834908660445313549772599018691477291088768282003660467603058859459142575204322876840132819023630373598922165587676698085915810729495345391983372947375129815587626983724505274271992562559777675237013083005692668017723408826320032458759963247730468091081064471786722129679785010238737156824946229299975801236059847985648511574526319110869674762421042959361755290152401267923803102473303482749576011337532388466777468475142330265832882390934720521974780683114756215563408389978226346189491780745628411619989513749693894937422577828188416350202958555638300632347138815922567837247810101054832829120675193390515179149615160337347254069944606393203589875001384647413214973907898936232434390145342277772632869104146210493457334070968542969708575874324892648069377273088154190715498636911994677939671700479855445251578661569287333886268244556097323663302707365207359769710646320284728629725331061810984995156817825403282814071798146503020247608991331430439746484307687784868051121688005274881098299180126221002847468915541809578665142350581424201232705685743183893410110922276494459087631486929184183959819576038172932291172372562796623406654600601910274984015605553626815173782195053730167278112100550777360960496847862550015165404059438645108190738821182638921899492178191065794246746736161538335721172899461841238925501379791554881425266963956262626795733911383023097200592523440416660522605403514975717786257151403131464336425509411931023351706372942325039628072852661394664347924719014775151448980674495490840640846217285123859429359888939464561579730865962827711647863598388141940131146717359420041347159426690255003589874989766096065687236689622687363564584395032205319326502233844193146764952130660117912644118373604813562572475384980305963798516497265348709513649529753409716648696096918466383567223043117715088272601856931972736718505733466809498532922001536728765565723470834593299049200727606988020319837673627724105577547192096401676703366021435268955936972411395297123437301669558719483365075292279602293888928552111277452195543349849900793210677624406421548919093380485508200293512961236365027333106767115142234797981231019845900250585631532922743896142658611995768557754773870735281338209147401196508516246261062238970448148103409219138826095336900845060603136780589746131496977765781620202965398690177604402116998944524626707232574771117636243969254816893431588622983711870363238635232457923831702064201847523112105169767779673003268371982821752574072476862812377385110051850809624232825449828343992735366925584430566762030083385351079902026573793994948710598978931249365006659162896402516208848166977632615443179052090716452446786285959246657696446245211589706175339974822361974658733980387680339755326596966421164936891588513640362704252567547982262451911495502288403275506015071118596184754194682977444575209763392561052015839584243359663345895869472731650436395041356808240417803938661220575962817523085330641411471386435956021474046057874737643817572932251457976375853644020931528447897581958144486668931699113217700469682052413771606314713336728598543288637100084245404879336085110008519340916503911158648271639687566547283419895748536622181448899925491437692277583308499000654969432648176804536417860886181981950149427027973549846569659370417859219630347829976064176451122639305126782870392556409755356640591237823788883316552459947839229419715411707279481649081636744604519730535411860215562895287376160677487122997031575999958256400661162942007763934872345468956048764228463699394979325333772248930478570685732212246627458593842286869563902786539529006077244249027342957427742680700239899507908864315130510505256981917098426877538575378385993966023602738022023824531624808638927239028192161331765987795031336581561246754096177429638598848711128469112842934856879760740505760498514071342961327640358610252977429748562725830499469541707342999926653911214238249235521752719729733889669564904484500744642699599139022729746404544412018498172725158764636611410379841251588419176481544930384789053717719778553188246918340524897817410045839686250106166755389634953878060952407901819689119008297885130957405675457280363203969513661969793514595828567377775702360687573036637272626165274604476845494704934327112540273281879936200996790120335066300271133091412446672386176185259496160961384989287350909447774367423168531161333472812564905954582748347953915074820459631570743314166710884107093198921269878925300351925105012498644889660639673047961488808725275203501994768834216655622860075829146812870026943509975704440696059632990743656477470031559191247793897028927618945453688950846506832562427240822229202048311512159937847286561171919782090291545632909844329627207056931238976089252973196220215210921253799119523279529362856613041940638450762785819389552528922177400509248319809755597549371552737157038027918573521535071981652990883884425619753087717729333458584770092314735710379384602909912748267700023287610699442331416845886056618878071078892273892553449885273312789681829617113085073114472438464019353083125895641212285354872203324503963089053648843358099225170221699604464589661118215711668530154593560331206795642145874808852232733299270894541268592592116140689738291439619531109896941458627916859780624803056517473315039671560362193860565137870276230825471605143992066352906564983522475166271128147718547634858157018392309103814665383103490630631520201613602997524343599597266176519832608032680205426657529668320928776246504990490337264338352441082124921682931620740204783278529463427186446317860937877613070079883411880811740122470084758221435058230500617198329955360833324856221272982328664207128310359003932346717457124250991982670121662452800120076623986418767816635011168337756101452191134636599680022248211025106570265956968371517649573840250850718341620423487674864703252157764913503955089725605324175291196296796930995421568951102492359947819572773115553247936701029934199062444862655174499661163906892423466085748777341866324817229253496248633417845442431043301052380192205060275988839953788983424448915174952708855267410028032992305436318082572666878004264549923463575245318990821378101945095556337359662277405245303149709351854480598837245827109924866328183527270388014907956924513606262137519793580295776942215549813981670859829718660681863919595718630210742803022950702133458452772310873475220489010137592754078255399853342004945510423329706683078799762734482844741050538852402449387979329470303940903573936946446583104026382958743950255766307030879517204754316792130043137478091058834874982185288643833962565052055156701326713214625221244173965038520999634462854494986482563801605019491976368459836752942607597054693025868160419112919964345718555268683920884476990275813900441959122470690138068934513499395342919105219873797328555501495310298876895386444494049495710772244840086925952488468990825554587478181120168580626931524546526585585925534453717497066676209362537538791057471283384669587689410823668148271856976708951344324753156767864966646518684578684186044920934488186651637502329957639271877524080068807935411691905956762541944994661837613405510807012464643763987403125847147606233779342286057615191617536632142083139149959448205904061892328001787144846853521452099394723652158823084983560895094071796557277326873877948908997510385613109300267576794319803390910210968856979003188344729625296615529205792434605258242557981991591755796016595882932138485534340035802569943295169395535474423632721581530672439307194623708284296215833349271222716459522823217054774791922988189168164208839999855507623841663509050606663415653741167542520673343027560446712182195022242599219321663141049574217300633948159077125219187412803302490512692543624919074959267677812746326179720650885673125645983625472020654268931713825404161866298024495508262639326821809721789311497848138949098931141677888522511134664183904106886257807054608313556223288651757041678810277256883752222238962283608103986750891601585850846640731196174535585834111991569103917544437984259518029125513104665829365142317775299685734829207490474542830921260099689083900801879970765033683210132302265960483407287730651017429639195304649106965715720094615218950054210293911966517134406676068281902631988544015867686548638637624918438225336522047965292978964719004555114017244374354684010888052710993566722169371347263664734854533171816188845599088297476990198116696482375693492248841994505868040869394524221115908749426570242372841075937003611293578664278085150501072866103153839011185037718751841740927625543017639661116303549491867883020643448161175657398321630207353450309742388360475828139496414809172634905443367982715176081403712488727092157989663097109277300873962371607955250347371674532134217896189146654307056867877055749780959965072176003716370655927565565542279685727704363500693080396468564728905309264037846035575622999226049590625746589614116051082056893164486425458647813172945837005793658653098898492501204843980184313384500978705190664059268681670146154506951178329951150709234582309631629328103999810624837616538121086575663595652015709244578897044416226963785299109317670799655856170280796261732488299956460797396695367035371950194819695534298159718903557466726777497310910350161243721927249148254883099102907364365995958617030265483399897671126938203645454956676649492782435645974900396854371568379533899584235293322225232015075929545704798806782320510502813227594867442096016257933121658113019532756185099617400940514685257691000895449850279591532184867113871664317957916866343199291843905202220266210044689679592451559158131121619443505528714138972417382310159489304889783264189503399589375137847304266526261749710196757283167644346004872965578240096486532453577235540983520981931133182174573002582758632157515983634676661910052369262911181574917449369872556639851230727118648882262241881398681170699360600652373892434980849148487997428230780897425907171242553105619783116612513845134214390414058557614390707247317374568056521011688994057447035457431040567068075758681232955084979477778110225085001640866352570648159622907194382921617737312105959847903324869683978199843929038341245681913501738991581266568160012011955686293789066201629521884004695643577838118338723424400047689881055186038671833878570390493727590849033125211019576617649246250540448854291674288284198296169096615351803249472208014178287922923347353306190909911061576013336977868485951382418555932829255406359213753248231104037912184501938922575208137703962999881713116978293932112491377249697044725844092913224202857520235000199378087309797005389970338399779054314759170436160034952630670577889866121842786224113974509321527828327630927606722109504180182215487493234673399840202994373108307638584358310411694238957976932574802536143712025386286522943023297756050468068126793357959816303421556537848012850531001419112160326085863131343673364254045799667383791465120572247002792505860508849719200489394675222211253699621326925506474862061008459181484070624824021787826242230902587302855982180909943126312098554306512045299187084664366753698375752363794521416392233874000179601650947406941357411634751709666450460819222568263361464601834628398949012658404307260326504640646165883915210526447418803221546350211140746173641763017773048417696086669949796996207674596196212725005997969937896366113565318043694142903238447690934841091940935414052906946261973385494524708633414310575873739610067039266829841840894123504229242430447742717497831343473183178003495093562028768128572584407869255756749979124887487406013335173823638992298496954179557207970210218676216408525493142074411178063112308035531170348382160113428681583634257542280868057585378961546071716883930569828905871582543905399020026888868478638521926810007414399278314870726050529730335183637232121821514906664397635653059101586656805100195169218397721174111237339224261304525115565847028923724349348397484170704310520597132436942475104635927468723786239446869391259398294029413471526188242077934281774643588660747975992256216352614455156749249797986719192524926679668334544542144276450069976176634733296824055451111490910682213524201729083223766393480545682073009235009862369778609892318910662874460947250690877835539852150400319658550646374556828721712709979699626103477267337229255681625327336036396415233176358321973228936840798338679324930864447000824582278742730835609354031329787866998734142425014149714060005099168194778805207171920440609826368279927379162893653850470582829814415956743847976793334858329125931722458713023648558983336773782031818313653766205910933785653428334349240785138266624522549700660689365663818841798788448726124567528979997098866689857873169187960641323158896800329185336611861258609965384370978121345543737317605461298503152755813369347649641420964074237759709831642221835006208846875927332153513405932390453405756376904907744803340522917343760544185307519791692222596682483130978485571390210021095955717117596107616129417859869429286183086371281438438089779971331356407363136103955384536445352117432686334986288627346507832269960376712393765707330535567609410386784849720051961029750062982485057270659983191583814778545054950518732836185314963424695338758586901174481986124498962283247231589087181508006738396824719510193061233869083110179338758782517687614714884767276446467164215694719090981231558307887380076209140565957749246915890710229835570155106431495132947272014386133919051813882345492739972739045844911985728941297288705170283252274229825756741983305651803451348811602915900888707403859766847120114451122260892833248811455432819648041959629249027050033105743335248705681586861771393731771058718243215826044834323290436990301127037814593057522658426155208551359685181988587213451190566069528286880326658719763556065251646911994997353661886336793329046478852059843654934718729736673515966146435149924986584329811220899835606476903266555615888300127442866108199712355017183703108107241238563267388120194031124403978960930567359697337190574454703227383518320376599782314345283402208958592223755255090768244118111251587003632582458734450579051584704762818631269997996647865301436272225789220503191271599549094357793982051318826634874588324707067079521431765725469282421380754801801512416425741523231810469566692990174110843403230060412835201015001020493829575182682798045527513064791393750828785873283761593385829046451085145682659987525836230017855937928424035232728048101985133730131619293693778194470139672819452125982756185365956180111407775902937612264758337236819343480764783543997622091664645715959364048738591672762477653590557282417823206789528945977364733344316787197952213111804357854177488605145444178095664852070338090370063743163516881432283129570599687411013869002707118894866650759235085470704325520028869786436718969768287039796609869238186023807987522465976252761840332923435382385785298683047940329674741954966281351939091590353800789889330729848351831224291851123589972649716012960445719699061107448916370352346072251332746013029105080228501207015225443156534894238247676761754708848300382175617523472274272278242376409807618306828693696022192089980571905884432880157103100733649516016349393673747346921670108315628099015722487908030823201517379857194225185255002617305396324587886787088230324125080984178725109809156240180550356344752703625417120462759174535901425856261839705498176242741837078278742189873104113594354964136402639854001835618648449792117650538326555374316844217695231166564635648628442700527157826796623455676087041009467549217583566238665718564206291321231143831216453819104433626703326428246024627160844623331539894444435906447067448626209455978774982131412282751192113177313491627434441131078106769930240077874236465665201617164802857869148628067313015692535472596063069691970110735130155811598718905906958363945674003344314688996714786454215547496052552263784280421765833645439386647697211818474024918553407554741956140499775680217119097545884489721624840741250270392659344628694259426609760179335092369775959291716339962684444873743756261999237792321917344386491596886021969234329374473248441263111129994213999930842791292013582856406110805428706737227557641817757259231611461801898748663792870835267216134185307946584515107415611846297866602440914404603233749840856655624680368020352971607123947421585001646452575084598898136423197561158332280278717009966223875182431354428607281623255241139622050937848469981657360798874633776850041700486275397367990580001348743784791397238225686400322390808498917160571543743111702898694663670104139863834927625357228976120916021098518054985735729416670831405419358392880276437501152641244744488951171905086526694135800748868612850302934450184229071410768337751093090423650903219808188084954505895878384631335586414504395026363127481780215743386838845598463084561533864802050918390763138484200879502428032078285453945406024297918304518273256634986221225760329489024149877562464392011874226409066044841612705051799294117986143045713751738562999043574572970674763616557275007344797410593534136415944852821500682865794239739030995201852820011556823347757718450424894523570768339797415167786333922101829934723428253026394722832568189230318665570900595271850092409097137111822214562891390477899013027174334973296735628602263389676816837103657159280104150274746308216086558604170001997105863516933138554265996418122118902155748277065546688532442894562447666685494717439470413658401717917192714566642730704691252764325436867591014137287286595902454337677169398467331207306186808762226525308557165407557806400854470036348687829440652653585508680614236747691417698397488224522858762041557058442515876460353316554470520441375851537364009842496225692887350578274299050844369504073905627937904110362176941991928278834909960848134033262773773524852683514761115969427596747293985701459868180585355294173736166273386007903050820963830352451216332856879148446957186136393378870853557445145485924457200343923978912897868177354059234197150504325629410153580651797703454127296031584464876931416760215417383711632127291978800019022823948701056179972126045016312093004759639540990481364689550423280010278074296965452469683067629005922968976485444607328569042107153308321436779968441279018070441180781240159767541608163902229013317670270527483396251889647707926879686377523733793344926944414938300657503842276073819874812405013025044625724042942506561951639340262010521317371638839528364145500580435499148914744026698085058654876527079070503134487036716748637818509794189688189217141044103285044094697902896015861440408491253632317098786171495813405335163408803023133394629507501105022686371462538651039732046021907963174167932029300886004935568335184317647364714432741730360324612646154895293871519542736062518991018338364385279862733929027869539691651380328887119537031843986443913765537090821382593409848110086822724290474733138236722769807939799544768229218057381148981111406463788382920608852303157592043458692861945308702864992447823024650917571366962763670687654618072853851228037093859096237790767465042763044043803680828615712174075996267967471565849307036301459679987097803418372333203653328364129529815683534611018628639302142573286506441750611459394675439512750284896308202242198579390119171791138030452531155357187872448108208581753211003671097526703667992862470850323242147298111415477198746540770678653399272249406308045186830309114384118937003676840900593195011284370894074354717502230999334907281359996678434963081779586694956618793691647757165357920056846629565530117909640977420014853609491558040628516239720167250464298714349915951016129110934071707998266939959699858335491411246138540274714659525207087170484088793648322975350770056143194782785237228687066915065860415833426247603786491277864836018615079638365189086047997720635781387958689512274793374251808713741317422368282799648333575481677661409277330569832920607920049389830938875591725283356463701046031871861928285355073964402765702450859693426361317956132978903373755426972431178732960162954337376335615139833041514505780758146229722524571423247405205461763788644125023596132416103158054463324001689766264467620929759899458071720359248296750487783501091069643033464517226653770965822511593061197010042647195122415350633716305320158535667541313412543610347304875734596647697834834770332530267813254940575483000445903827195035635179382951942983086798583970094569833387843826507950816064793605867035757315615030017739859711123316394438321007461806927771171766750175022463774629900310288701451688636667036919714243027698851109609828463570710759976171727636371671455207559600573404713281898416934962952843520805234488055882141369097531399606257407327555736835558547215347730201193248330838940204128088414002777213277559621980765998666188644481084963548066748242144087102179663374498985816881588993282253060694410445718716742981032096304653346938582704220634576281523052819912718565096632456934580879025541731824222767980113790121581131263787218383065878873943334117394015952224653888884981460922491634839527208394789103961453865775579641424229031242620783018069362910297365958722300383583551616684519833052225892945509251373980274957998573428333050438554431835588695472633257163110849298265638649576509015049874670882587068762099234998713339897505960363731113376973519908067940709285977667605293356769010347367326757051084274065983174538515266340762540359178081823377028654108568970685369935463569099536137651298003043641042874689213147875633370021092965515494150849797168395401554122108418867246901786745292885050327123945648377554472335261219186603382595125850719167268934599314925233137048762228861162078316540819570152394580995273654586102179116763764113510211844359831972686115934063611877508812745670857223048730598244462454203762127083191770729884620581693561208450653263598902766172977898463450310051014646387307402878593851234745912178273145044579723176702358145254344181359132548331658805506010806484007254806034572928970765547106219737845282682227411301839431940510312850922000689593633099638089643223132781175917329333088996056097889688674980769995124587887315129069511561055357850595791348067058028032194057373973959037428107698768195459646547102000680322933268946716243950772729513891964520307964543534946059200630757999184662509525093216049428283662506812791903203948382996363878381946438599526715023330511642422006642040201873518164432321739301321309908803584243320982720858749050048918622715228030422272112165701055782800611443707683714704688315677910591070430167367026200046522527735692613810117747282596226239901376354279180325928190913355204095298413216742532060222290340948875851458702083400054857253662306191236988207132162499180729926569914736599401083213338973856512277275665287518232241425280089841368433835517784459683115860578596566470069127107106818891596752830959136218908182928730318347270460322026654607953207160330547883533807891628114183101738280004353645610273725522607709679961062794369936204304960117935413386400453822806338660748966617547979076057638725194622851384243166232336378417042403673224989899078839972847665938596055780959731783076008137205457580444543962289879807364256839263880152648002114248110246520845790976880213345915702467968179661735183287258905817696284449571766237689142321463688329448159453587866559169157911444771001732872673455415381434229097180436210893085750381630531147990455633670440865172411544727073198434342434983187626882312189105713293862464363114786670436751733015465826123399645139760984367495399697648055599400870086720764117853388163843144917275476168670266972783987456144557490687989934888393545953976447993330743401193771463877223532073910551224821453004590208380586591900433262848871146431120158594218584908531878060295589739942719340788249397027010938115956612611534995547321511597866308324035112244409060855906176890699533406338624437729478680449853660104264761698466200863195442557889907702930083951802610140245248020780468327009895869068344694527267553172521522713581894024860502718494473251245036631739520941049277267710559100373444982081516464275952284926070462453761110213713038666110664911749633339208952282191970073574963278980478489437854103909761015858516878130892947883008808239310169286346932634506829931534092099846250274208358040347887914598512753298794849610277535969404800725179434630134191564015371702662538142003988875009047806699042514273143072714591794331507011274210962685459975620490144061128979262395444789541093149590426109690310084242318729403012128546070092989768972637900779651443475726835903089452333807786246087998215392818333242079290402331846644262673408768753365946517930549644214336655740169866845386446643149069524241184494603189026699098379591469465637345490123377647050779725670827457108696307997760197191965080715875585354255734457569371225165062735650135774150063694195778787815402705629676925271816343425082774058355168605395331040715322766681493557881502374864707842273544826702307400036487007280681042141200793159870520329858309116460744213196494349710005721003180722034207759548746749049264034760526381834223509827933951462400197281630726623421458831724229038050227451524564344518717420667421068809659009703541622228340162173917557271088669143421478369513647031761927707503916642984358321576999520360730727049780698946390123801282840113647326620718842943878458328816016279075841765694932876927700939984632641853093065799890799300300201733926901516852127723077850707849208972715460066762236311085419017462384934483085774586103328114725105219376238264636433049515860271088731429992274686448875693637527487644078087571744997572026857141079445393888336591734842359483954133846063321582436807408079544640648985552909038061306632975681350981535695178454041049765321500870745705932486589639846573718109183067986941590717015669976787261616833502725009549611550223766084642541526556034254905988728447904504723650384203764662356723577835333516250394760728664079911758090243445906667221683097913256001539662152806710376995620154069992436104551484227590820663445600612594292564337084091839858315492764378896280404407234883151876976386440722714912818449427117372473200304680429922814793472107769971347671183559404592714233079516880238392196933630169864204553246664955151844810439566489191110325814780284743130163782906249679190858277964550482979203224272438511442209643022307528141911071180246439446403098335626214575006712902251892128621070662810559225558136227685282401109124069353158305821395084757282731954064114511900185731330188822373643466152459210126107053605712076228619758647246015758782727808388112582711225300996294351431125988074113537279341470065327330255215317457358982414022358938891631585856184346863474059620787982274152201501467473611791021504459594130169437551723582513398830736628471425256269136134862855483614282579902605394826167293607362003614973162297182204113756781758490938407880764797498007742984784653095981557338115589464083669823826378018351186567768992628288395753533837237974332792101634069198209185361285850085529335406979609027034136585781962380347645488226637445151965369425069748797728710631915212005490102855121382202289542603265320633318611745405994856643198726925387356118431141476335972861667120616669586444239958511811887793840085579515780097536446977541781104550441057388380464981654727627934369489378497354968557760955819544583792331158299726768348541735267825445788504341453222538565175573029748885804934216516376499464678819703551123817278475577917341959022586376655829211801948121436041798930740216725456311770810172102182168343644326178142354638230597282679952525069800387736232553157022101748084336569500255158415230088426816987008571233608328417369190531441755461214760024754063574389912665653985797642574590279519858064420649000007387165794897506639904829891388193214281879736651423638308164565412674548796778238363622979418953303724211846326464054701026056963682784266055785795597764447406117850723398921502420526351552710996021874071788578629547945677932366890895013309555802049954362995240811271679126133663239255433988854581128304619946818706085879245406094451621502975253480803584110346286208566962428450689345708837987619156652533740525151326917780985080877807541875310639367674494517746801639180796398136199338044096679814899933906073997597819524859551713264242252568814261428809180757974018027113485447497339016836972835469639290826572633636291130014421635560612055189792559993847473400066824299663266198379406087805145418828844979276284532852499070885546980503449234997103675216938320674623443869801451247474025677549596788320233148703470372477487768917264624687076932391889823529709122976139788115931208787470548721673186696409578014610154313968458023367331260388028950247110831110299287790990457164516865566610430278457711922630621036047987766560786869486339204225375117212552378846633033527136263492955193032051841185929583184315168258243012656104697330342011701894192402810514395718107266443545990614866475467251511981179841270344228580324352151699933189611975302879134735700770743672645148833930656711521030612519427883300662157507156476914375391001503543641035306359067936356715088863295964330113376986021831739455974618744293099155402095127655997164792297085790013557217022207421830934441263568960837729512264554027323547577388205605369374585850246734998495649735576423394426039705939398919745562895997002085070134983488185923763234283386387154563567152178750662433845443120742288247031710027122426989128851853628412805360532745856587043480977215694046482217802534776131883774514599314744932540209428261271894338752064671071193830089749256097820867961016445911422338707526113914441360930872365662337006991107305393638368990966687815682189124230487271482877148900215922287569852776163688580411674270367791380398449908702071480542029786954441594953334995905681995023482203956520237485701918657548394161964153740451425194972658915777033957566707885634597594041071930101518642200485195168428875078250556469186088545055008273737249389230709190335826874212459994454058092660279858901641901828065070604142375433157090769508574749458529560563369421373394514191833284370539841032740242587734148980184054939609571636337163425087492219012554607673755206353633810422101887130659837804016629138258470955970671028006284870186608807190447129948425972715217674139893731644274153496976293644803501160265090110582613471481928833346560600252591484469205429793091391030499238070734867395829498142338279427685945839590069479519436564537511572160932158748083252110375279610039872053578238284061684236611453153235788946708035940843400949428857648349057391057878024816573303228640788268519603763791238809246067285678682028260549064313868184369906320096423169356595184134358034620798197441222791842934260393033347104559446676381765099163738184951883382575656269962494096772957379837932285860506531461069146315263404542343774548664779067734211346402422607272981160988328904028237016973000118363595805017420749716293221581516409373889930801929330140449866887032559566160657933279647224862121320557381140643854766448014059019793202978631475036497714948980147947735348867724067804290528473596841653638725586631354432993473434140185189816949111442592364477501104296972523698320206418063166420236202331109940784247755431999669094398189427141421864562992657061611051774101430082542453272042096910898115932127346464658032314758435238657872540288720624353269070555029783942065307727977663529745770743042418672929151281011827818662616707987424112171305577590413345125296583733941991262035534905585115571178876777528911474180404580073137101377847927842202223555360545963054525775415752591338763018445042613710146342406534386410373632279666122177503678477475404057702958559619751893552190039208818787706757539190025160739926783187020275347534791717984363897824778969104631050110645496920570753176393026919228700824784205286285865929045630772090313670830846884498318336332105171643566537419610032240473356540488098013698824381295982736119744155187131411037750064725624353855742637425010394549689945743889919592210586005742781657222734921278483791599344885346850566912602475870985056729937583314255730772311532970138955327019263804548178131562220183197208105114726208581161121146239244635387445888600974303523198646025855375775141256586499744889236273045550896708894465766614882808141128630303804318765164432434162831110914076076376612575951668321588529536607851580994092476320446827206518202488221113029572111343393717438796155597785218957721754786048486284132823728860058057675313223735547468062357606363186742144054156775626388506743180853292378528977686986590172171198459079243713182074119539488587110896478362254379249362334974942785057730741943562893177055790247601195876196858580064449322962255720802806130418308484423043260336530261363315124046657209027242632156042718842595285112874229015848275959434104357047380874603175443767890668105225562186645221891419506216428610484774302842641797858327405931920861093313328544736411502271707165835307729720022598109501244178992389050976373981453328286900958162650775681585526159169692987468450440691652947859253019150966163505125202136235460403489022537414564746526471325584461520289803928710947067189736831859292722962589180178251741228093718963074011174247675748336172244025356053328868739565025096797035612964260914060332225023099615740847410245096976719033817847738824845772451463760080107884791265429108481759161610118802555223666623709460325660224334947818647377177852956700010728165360109742107251634377980887401908570740918705326285963795514141571328521696720481577620323886903142882266971126451913790560826436074730770984215672566795833257601917458560887529317289523179039266665058128943109821933321320109075843240705241487118764601256723627365427963749492603320704157731332028274003520822807673111344972347557958527066379886609011759549665727240854341997277536182572002248722717438514802917856318354329736912185251869052970540220036216155179115065184851082820986370828151327919647325326757057342906868719286404731568679488747883414320839602706121260181976309766912321878797506394146873939360324649243175480815895128295273302019419995229079410996275925979481889351619377855697797534845684265804946580681620439851678747511253369677387541401702001917289099104985862131404110579958085204194535420995251991601148215000204231838286626811122783540755609225720490500433674582425093756533933801180584469124846118410506650362138610990811492042818795418889171617895193511162377672343606445678856437871166106912211635345944788999300462335864874798915045567878869993010866473953352801550141259099081520765175039906240622164197509660819442385609552740059639021458880582788934855860605954083847560351695692220577688110373990722816321118015315345413277042591834308136773603069438699741946506450052738596158735588631838160219375349365576138984511366585633395827934323760563609466552133067737968090768288469313150021435548573945468491902782064099086223960549433340829141756880807905485874336395773277638631420752685765214504445447817280245378231330106818722300126434307582218609007098109797319983983697143613250239734827187568062123590724934612034615906813643199371476293482975839620912253690557118115519586889102069591186612093485321723394914705346316953979452511235219689620963372943850045933693841596951486455310697756093894846948726831869765358188964522332427902441633470931444073565631783358543635279652920460258972837315107405292859174337692982165506902594382209885695570741294483727514261316406055825316587434342108690637766233353710010762525715008025860147605902267781584963586207421234338278955451578183235722246529008890503545440286939165725681573755057646161750291578424046065363530696983628635357925995597757190137920309701840083170871701434164524098853261552351165889862780501815323744330229625136059563427024423848194744312120291505000457019968828387152055419194982602256157940213054276737997121835522409281321529567215621234614771451775305962033799404433517209543885348432554137385267960854739443178634814530816667376637890869804516950512256557810330665396419590525736183072583773010114138228835434243867972713879832886061118457064176193695619861529305666125790674231267018275517152464650795096888472279948659070353560499831914148204417843427841272389355178814131236312615586855630618616717270244631841146976759661163572236078359732012427275000748945763283912157761101360020954269002530247221446889088786314991941225187600233690218364485688162230831162264130060875170871771740610228417603378482024260287413259789802239739849735446433219374305437293673541323209781815663456094000257176044937504460952820165306011427723809315051063741435941438711244349529381684310767359825417842082148079278054452588484712228745034798528973681130154260465368244222982217158417016243739619838579033568583059846293291197582815577138468532817472476246979472944681677862564004275811449891444879755148438966364300165930456116401662789680489823829738260409329117250427961347287372163654231576204568746414289724272020912149197553965094101849074791919966229467298210363080163085316505569996037478452221338045062855533148025500280152379616184167716538638254393462468039401513536233241882833113533313481806177782743291199321758816904479595972601983285935459494765657193131142865125759133137097743198412161997139984641270586067442474318152048043918946081323372688751008543807886518128548636385484690281174836407638315846436344059673726659041285091571366659154493124291579148411894495529074187019459710586833114340221021088184079889855962052652461135916881777142876297564004859949187797320232221875961959051371220985517944056901487008589490674653921641522394454150829062860539830483467800633160173497206384375529177118982646710881142199911632066586504841833476215938666688137287092977410520730253613704173805603345854681953880393824147845591816230098775022326994824301067623191518526947685069816093916904588075904040321053121565165008594463988517784840848131003055379561186869934596715636427075425192551473466995077449323755552372129582844834654287165173477840025269370436701805141156666778214668854701041907585736988968710575085319902774881062205748648030822440229788261433096881708693974268993040704675573892340421471329909707444959484833157321074564580435572973112400179803105888657550013091447703595312381299499004494691521188798140178269444862009000505553157378134826273592230243096248037168683829542225110625146197762302319427869976888463822119747638523758782942875636851713081209440877911033249228151192077429567717657645635684873781928212235459148224287700938053878085286962306754815203002180865754860327965306431590430091575809132826867861885179607843493319285635689401059672966859342316676411201365631384686577240368902227612335449153411417674240473301469965207007798686154082434815353732221201018574289329299499014678616185896591066013973956336027265354815614203734363347177107891126595140007595524450585158016881381511684936276194611098493560595268354369012732761182775215226902963497371991470172094966913738971741596081942108511302756651332504718302741844605518036662982354396082240138281555888979385132936255080036244943536684446762153538750178585951675813163610349652970121575917706365862333178220923886754103631686159860573173725748215083757916496777257595434726657066545423199278919170396183305864790073092506222691603518780540510059513478453894587087237542644354369427683495597629404423838728528690451905751973102183216344863922304754693518060734058425575187865725941204938845458296291130098238431289765822326596378224289718404349375888184199680264939066287330069376691216078382759718239422908518928015605032080180474401370292162604723802172267668094600403281844577915066773359226460492740893872008136381909103897478195157280947632871647417425202943608127250253368810909969282872332798882910899051423601534445046192618836170280759446244690230907283841166368937203626080964496739711545190843424171645087816614439992117950635402401564778185872050742724627639340413050694778366948178472095463692504418106239311880232870628802987480082522488657322893265820469372378639910525888986385447160963359849895504495448389366808729983131993945783607021504251680476618671975187447568822719183928438550736326473885692805687339987713035268192554296020013294984467926794861472156704697056436510778925847435541168899896799742592594552607490290776524213955866318431644386060562881097786453666715726075705786174210306108176162876875556559120576499707666292924766226110451222642783730832864740792136695834199561425322089028989437498241039295338094535604845742359486940304896046982006766630170059250955204481003469844494314893330831324074106338635512641437033596884975772130064733466029586557689972919113986471979393272176914751549691914418892823460777875388258808470872518348218969507294620716836944312656895506493083925589327254604536319420733838486043448634377417553691239039591981153032504290023168513719968648321056715289508211751197856785715659125884370164409988206388238271535818533624267171445477046973807016982132105320779915203984399079821250640239525720694662154212529787968522098587655667646700906824202944356603946951637999268601797287230128209796122883000410586261447959219744289611300325494632615976832638558058959882367442840423200311357184631647898175991738468621425676608117980331532030989070207431713291267084169011621177639051496386616419444760526578219836238273650824026535199720470281899910107395190679336011275784791962308660314188551352468061088948868636965102951619956909417330666379993577654915999485131974074076643347218909097700567192601821361338660835413417823021544285635709051371384052293054754882034596868551410642339429442274326792652006821127957499131314023311567731867416947135426506905605542624813562521167143607120401027481481923729542496860297799556612827929880188173736766917127647310452112142547854895138382522843533283375104877899037426130495574023125330055773661994280762360620007883947643761098005331417376707269610116437808877876295751313019908404845217857922025716104108402066592495963045588335505088394783117043619686254051284685491202366202168604820790251154914500575784696902526835331384118131850139853169522561530242655616076473636471744469100539991496546881490516011377127838803258020653232393133453532767319856450764737091274252473100972216785533104265411229429553075002393374604626881762342005919599150873587501918395466369663132540658811867209867392649384067884790157758534931931342118477775497600192690769404402323894125012252540449815368100258852531885721858028583245579061193222752163761136827083103676945100338717233482777673637033310321361924846618740619029665726699798678747999393192186729791338633315754481507796289200830104545526069139910574576221431259459340508261023521937189208194402213200897668465094472490339990756875462367595090106975020603860211075343344200691095439487098803827520643738281961096580507612157322770725274757314119949306691491043507029765512364075389551690034334998669684594622391589688635593466829391038873515282139426175225099088655010647972720828854993489414176639265509634807328525589908888580429782697624362897730349050983638335614811509994614543057898446893262216685230228754051011093508884124326330669294942057921784766847885845762838560095539487716214190072274658545391065035996480036217218924077559583281823460956854749904832445861319803489281370628205799000895988991310087455103043612868343718416040029126519764219508940947307451180673339708286269607048953969702984156601278161234978061122866312510599920241838402117878961820571055011819760266594987462103961237772777882976195322303749967591356028164764156439423943842834467394952404270584697302624645673535082972581023194914332346557855384693943982175581649123099230074904557439803044560919746805326191992270505825199066715088899675351000622297392043677087166187946657931655408234786608773477179688894486946893321780408963860484411080429992606691849937296310132564687812077626260176550186951574499170874948146045112275975708699425907317629040030205056563351962315481689761019874308152571188075444229523898238835929248436435089755999072360703840390552976742224464657913824384200926744259900259461706607421134722656599693751535260880329311535006866627526501737292306783755952470597853304992830409467461063774416804528897721530912045471241305495749421265058575026386972731370374562178211267049651869688951304468761914354459658699001058482148250700399692996454674368012569925186984268554750850675346535028965971274122204973708264291538424916889073810705457929835413982733393355974252166662512519172942789798612825347028309463953638155336994326424969769460920815799180022460309481779514340230434093378785053242530928653488552825924637149687519570565055606918362997435014665497301532657941302060576393214721836933714294927668533198385335144559381516308623154190929118602761654854637402139539792457885962067899077413010739694718514835841678648235344943309571000998841361973884515488834564546164914997500240463049598921736932391582141904305868166533164819735190545338663879258538788370165748718448453563628626024273394649204528989832088202275582573383776863187981163858053273421388813065767359194260946506303578584579314290994772334277326451430952317210366580016853080329789463266178460570198258763108225806533525691933497790413258702618281474043510792258744789993769853614920519507042948636295091169908123964043594532233855407220368902645905683918672427519693477423294657808738092470726311647119623819544899173689175874115209976506892138182174940409187443120962470976424366784468603200425682539874093271106450085094553116458883338923458773161416726733351922194895196804033702343455374049203225739993987481325373935068715467710266839807645154849971684287264374866786652878796002201652065267410781852834455956183094234189699866659173445368610051900816779196758644005942508016125400837630672325740531650296398217113240873339828748365613866584158926672927297328016426535682329786268952545497702571278908420778380210318580091147155804994125332339544185609667044363308351535466971202763278309146865324750490979568299047516760720986016671308048765186633439581973855973983412429832641066014634671751818365404879717703089665098418420846123568768916188326869038425096028124846080445744090524535709321931853891902348612145768112550635760782425434371035313082063252573023774844663275732557078630839487355395709084511351732334786054555060679676477639142470398954308562748143747945940441335625303205681179424479155646207827792975443822750421659641725884705747036182179684734080697159786737220866898075497254907463539805030254124534554730847982342155043582086827830759164909790328302055217201733614827509167308239888249042872777088572606868321077816588384096651378371262112400142565527427682826196848974055837353585230626013180378590395354028545986214349132895914406262956495239808640152520545248335658697500162152299353872693272377771606792594987726670999812581723255782888171627701118404335285237736985754295972845835209232875435781200502716984445809814761584554960405324823635110915482434826214439064606655816245442215367033186681705943252100256057944552722000651280869562457051856056290024950169258613438289500439631880019990441286873419890297032253042494757342020809699302484100571265284332766874667648378869823324532585121950832552664861128735188854061665484236887443817526230495209746678500530920375957063608279122195556470086919553944486036229276635837481291546222915509350641779468841033308650808770043824544338493946755097101651136154430618206459373845749431772654065876955687624006050351604385512042167276973601502708361093504168211583471468952152927985055778017976052891435874583350044684760083698769788593550615801544631442735349723122758486228509055140802205215331178674821762913951091661514846679908051822036929498000844419921351435663509938894250735551501036787109434360694997584049629206440831504609848373506094010291302540474611670204541586250885577606422028689535881244163823350381516132624835136777725288372063682606242920987573347359905657721182417700287743124564260536113356928580806036731493948880073168955813259809581370724348641986121378489713977445338790265939397644045698811276303267898483792101199822390037146186111593845880260836909869082668547680850197744617037069882415075947977202000700449544645687416713737744747127705333591777299574301409154182496569263730061916456762551331582463070745266713698315491660437235610026318796294770479626323515974572947896255258989359961983167751138574616579717005225017741273790084576829686278532528577159777208145175724702215547572598799287109798255207253439482728277103811561838821586892037782317859003613508975193382104153835657060378776230675414753971369832556260722262022364186676433613702907024692453093729895847519146357655577941625849732490435605071455772047125564981435494931798865985008904806240501106302493572400664975986401601080231019952066907087283343124107164781068000317889093493484583860897532036802037337176821638003912943914941037428513913884837259504258818177991740663147478566756696059263542041973415209320573548490424091185905946273922190578634574785708044810859457011557197342857175573648657922068899849744130521685382463098659298484070793432932871919527231495049912794296471406687049436390729935339641500648285174105979014287274338598367153132507380509373922857708715931784761708880368498324136913100490059671835449850984920116148268517924246876481061826113071817557036635678792396535456668970380354839578057350648486488433138020679168024358244862159672723870551161090921387931272115930447867447741563814796228391942611003713813041045860178626133166093132729559807879990252218301977729810801010370003205455739115255310463081150579475943301596589297183652038105573836468879661053469241898808423956292980732591587241713493388055905149705394620096381654346424629427923174273589900012542434157524058425305210892020277352343721619979566110035228330540424759967644183046201486666644056391447658130065396863830332799669379641896909712836540074948900666627043729688426294744242248652163750459766699930531099291743599917552221650986946730045966715600187622581620879419847650325411578075029924829619287504036108807987037430643793354864571488931342811115270604506209174568422455283609836362239478249803164945588263418228404111095921959274224810037745653915861444665009937450126022407611548588346567721997052012783340792286147252467039550959904760139975217510201873420440806889780342963912308801748831238407553672588213093804267808394810570169713410605455144236295989247056970205463735519905341111164162017470017503810496217319029615649598278948141420425719431884171010422740843509146821287670661093528615360653024286564376143147282607070180165383948257531279321788200464779473281170061596246641038311891677948135867783706800100566109130190723680265048813262411665955219045643324022638544529497058105252171871141872503916212830835655507943678775384843316543767847315877089739993036310748775609559177493746598162143432109219995037006458437783374012125917890217194613387082692142385032913672214998956199728571897878353452217020952158645839278623913811928812255022940455374572010174849221285872262106446186970839232858604180712268853434542324354874082319266290869680874129754117866184734593626866193809442118311528730841116804158981750798608561862748448539362485628932054977119849602535361126395204432726999929923297841410031766390251095878546039752663918740237246117472254332540314602283049106909131712909991618458718890156604059781580190701772315160508201328144373414578156149843069299435842509259531736714939656022217392505588506364065823967554387068250358793440290127259435657786072689066843565847489279530904433051195415839887585162757104708547144206040990552548072349211235146706623271368915894234504920357759144878458804390151707607455481742018582426990140003868493703611387629669504176313325857976577074332146176949373405651520544688166012906638066801785191773317914520502471478840293733432003234513532155129424126444793121829525366438147266516681485226153590292313577413838285766161167641104284137020839839769008521140393580643965684747289780604054788478449558322893065908438705077501934500578476747216970935276564660498065433164654804034383380590577186640885539193514503945319207300253354595371436247120529429894565404077092000565646287421696321231478244232897643982050900880288344737972092916149143458154430568487812387169686708641331212130764209606152894351436969190994873845065469166886968018594938700860975862437229427695602426615778170814588275289864111027740927204407249644585788170252824728868209334015247932775994848486155088671124686833334812164803655858989389824390843714660022450680030618242514016820808618382589219109185856258456507489611505814018640676113932383102657750343187192319170013251630819883770988640314401498577955728573964731428750096503719794876063263092590558418305366699972687127592184097689204827349184622675312616524397642641894166535872443235577862344854188233908457531173018695604478512821050589198093797404120275794971813167253949273091691917479178905143642293108131020081924313392473471840363576157477485890746663298848975946125444463848038452404323176554803217211392857531450073559593126101950359645506451628059513121424451900480096669580735430343208583530489556962104777094017039330401738814613381826616760833811044542405626855507888179186037366989645258920105912652734671454788735358208540479533938071031921315905854245796013202435072627234816743529526150309226653540239472212703616209294700696052561064397161110201736391831238503198033958354691910494974175501374733681409208209709018993766619472842074653412707508010698280321285337763860257335076307315069845966434622175268374530983154869571038118449244044716128128929688920499103991414635061929989131690676974556184002557046452872462197622001526162062715842716265089822167058378980419964455462018354062661918292322469371502863259129057630135385801467354982226118298628151400506956492454521185566305888397959830438193525255532690505406626856148302499630942426348261233318216701497161222007438902033812671771569622108056886671085691800259360293341528866177527646704055250103550917915140129283075357423790693241139252774386579761656112351110572702273411754490286289400555471902453704544286527613409904340396543547645939825045794989053777584340101746375383635703889864581642914584031826577402364982894046070318037018057478313648067740531713554830095961875398104171413682200713022406758721314311699778265446644648305914025643076074670464559233375967962555531464300947604327221123459772334648415038678786411688409429207481818742547676888128977124751846805089645131057514153762331200282248130020116795406376620390177260387820125115474785381801473917671682780306550770782140328041218516615110877095940367775160336677735977820198045305109528708897764650982852402427936678607342228746853581790952582797090590061506044639079277045046795643420856126325012406533259273502984754699633616334914395007611877292731010060428310522555620024186638771613061327383450681316679965816797475054078563063368659087803531762563763209153401255847005283437098323599003335944872275293754933873371245941047520167090951126312194989711282733030728417417799095656142003311215796925064206911737997386451169648049437273670063114044834999826751399462028933714602314847142045683259151712744206848675179032028196450464709813807179430782212416509086450534387367071338651451254095677422087373559033212813732726913567568650685866606524151740341049818333135815063323437031059035851474416374849479011702795552403484186949384176623524574111844158721106541089160083923872553557691578301190949848104462638750901382818476780683094565952415898052543658434933763980902747395909330884132616497220167326010810831761721889478430934007721937623772020049410276961224133396795584391987112318587370413480507315431743716722322326955136598384413139974618634857124424565354617617677606890325705625679656058517864852547152564255483553654213323724533807435952594190740218988866791033664747066585360750685555907869432716298425383195053627206060834785427592315290594098022269662386152307764327682637165567019337380599604833336212110783498907813595447966762928579391278278231063084351471664014613561935433611150537797417926895757299285197930059202012957643561297881778446821146311242821569072057803496294416515832559587568489109928065285981110727195076405699405015966008541444677126594974247537078039925175824750108320436939800973227950678670355601256278611322938799406349129539350344754701137608765025397148409760187743972217803527875417174164666153186176259960095888566821900742693611973538797225169925636984406590691947770277894382391991547724396934176678726057695021479351131784257829505308270860773446366804032346035588632535364303594837643115858760692135812064754978064346993637561403225877678556840098898749916346701254653211458197849915754131691969617307747580914623947832536446816237649805559813127598159718434673172883871837804048306855906289732844798126892968193463921134174133697443449050483601283661009490122676973962458359801406539139449946377687260795565455696031112923371640407771106587433127807744926111809991162179929214339961432969927788976071933254627679723004430697102218234403603260625192249709969720881301439099371032107762989901424241891772713300748471682823342415098894015316467208883387339840591490105164843162439180769377853571975680072809839458803774489758391698229727374713003037920374081829986952651981544633442896128272697988929542277889405661581726602544575079618508863581838727294307793021627982311493597937772440093480099914820365966912853009645216765971337139784118253013098631636916153438958922870200406037121046244225541634759976825829328360098751117690878507982571559438555245553381343746636307732362547207680992281400221271563186760241257999290708025203680056484171861420447742899121702500329631315632455181872420994326578638595633071345557560226988655194885881855953058550721504165796195399818569285397817575257977038014452647516124839082180213963137229016596666224379239248973981915705774793187501841612588227223644940355096355814064531540939237477561039886370694624806989614079777393430987680081844908310224210228784758233301253809423238068532065052794563409637549539797046943768065871886321964637662370844596667348860496318627948652421701122977803507591974898842596823122633099153402675915330097271354947919160132240165415663024629903400836707193613066524153060060384410346898839735316819397663985777858180958411862209446113301230983026573874339553336849204127902464100446812308247374618022130323856332814438941045286388042733577807276850967832076890990619914380680783801520011156435449983071467867061058011606625766578672569932668358302692054340034739872487056509315777357796740698182395435958184206745871599238419664142527054288060501539542467964571488966701776653795833216816043399687420066786203348306793884159632707163611647956336319015645462862608790130034495322729703883368827957817197311020421667735997552605751848222303795964959866346025770809416277461223677384331021537200736984042320312001241985302756714638264309326902517900422239695029991668764095429680085208002182090892664950259536327857686059962715309121053002141154827343387508402228234624645488424290538001295202344851406992216757489363151993520404506188301127964028229690622777563155184361357206974453433512616923588359443222779249492964714242407033541661167774946562854201141429021173919443400807894470546497412636957197058307654418732132457709298039644469728579927998368426072271698358454842579336652464390084942603350314245647762396360097108855706185548570212420677769840424633645142034225843950523584628637982614469421806930131773422194903883104079885505044607787978479196768080337198424624452365997958813149900563797574390596035906108318994398747299111497179246575689258176061072743301281442337969209985592158347096622646578748257386426446587165621914536405705917242505966630071340712226604024593093668066576087844467971519877716377821580192649779451424767475646414968286994704752328259904243158487516160663605103575018176099896419395994390431571715973415492076597820847112573980776372472277410988408447498502426687610634737833318999620752967753824613326063400002645467752216568081335757464752750379359961806928250114845009834276300506337793028669190030856374802313973988760437083721051096536941636430251990378343409025787986019042754168691792526066425601080972020222749776550582951364691438056396513013801350538380290973962687807264829749265478797164966250571835406270203012588395635411375447546498947918748558080329505275055889389394683592283362390490259188558231133391253016140988419445192200843887799088036979792904549257735917428657911310831550071851842858562641199845710334325816991305124498300980121361439003367431813806126902856455885472640674370221553058894687535697439936704320467483041513067370622010079994613165407828654091758748358923734894906948391772670419239921751467229301002648283773037794365059803019375736951384105560380356460746139164230110437559296541760112547099181440543460149435430288890995476886993427291167343859815329885368280071040894391322475140389355027890556728941435756743312663498590696175263241825481986653555222237776787482725667260756309769660670916465657803222813750924229560813308146265462116065163905027743507557345839091699503776579375925132941904215161388790166524239337909058859768267810249286292418547185106535784450300520643972078302128091728942650240582537462211453104509426389225481492440449404767181998828723783774597587529975637532547001852375749802187710394761501164041524063635399786524282651084255892246755482082049146935243919081373050036581281817226872046470860703422051108187395500028755670914996727061347489606895942365252101329476386403075310202962497184923674144749226695694663452297255535055271467088794263136415366270748570218678170979591576565677765119042585246721699812429971825620850118592966771154595773263837833227983386096843241168721263830538401334299478442550898133299575131031545088693716916277893589960432828415861086659840764206003803363360579249025951351042638197621314976382713196939534364872600405394947001696730596023997073672341641612241524613088653981730370462109479563660419711566034749702178295967805981789541643994667893406704140665710857558929193545219461674196709606831589125304629657937567150462536021789384786546725378568177508441486989812966138875600646321326384338757915027018229187924946580538797711134630921823514315903788437838089403091615174176569502646583005583202229410597286737241361482678592369890008089659542282405251330464988431737265420716418708987207629155527776780512559401869846269567544559241247970004012007419569724196579012783203149595775082696249485075567197750459945632590176214014073640811311902857030917325006041413937600291691910657872020711216737858540115705500272727853435753484382917704680527448541028948812286677415015325223707019643526708085988323974424829026422504556148386377108131885243331230661458434649020816759545387154424044601778934461588506781015936203661401195035213997615603939126735338860853394107812173806862906475012160034667897388377719615658077390634203425887659911948884595487666713447201860650211798229436929551496446370881575245835300985098923990380645793498732308382975457005595951455520180768621119058918159214500223287059159424511387402931400915261216170163257992967266741054177186134209626664759332844837916675964920209912697201546769857173400931510839573473234000877606890763846182549120705062997878595312267315844226904819295551558484497888235345782007455657644354337979788381166295946971570353147987292221884858774074616741398821064003931665456019293768105791684023250151721367264310256774734972486939055086183441072071450604305862913555784241541130939994338270176087514712657675139519961021755689471197137298323284581315729545431711695584564547957559361248405244604236655913334308276859408293378916774132764246483717347344035883344675747352465733089595520446183798625700107623589739832832053957790598412758581244226837815977645990695655366751055589074718650542017855651977512957336196480251684640446462750177097139089604668867842700993412771944971802105167877138275796214919980650617584882790908899375141148489071868961448222624157578099566183934924275636698863356059791879643204116694941441112783909193470303333639334736709646229638620464569914453113737220905849944567875511508695132309010528856142545247411893791325056258277550027079654884678695905117828349431698697013842172519669514372080283581075523841325323540947358159981049473894662193293216182739570498741294312004166150538012563334659404170907427856040715957164451329012925144003069293552742806170067662452071433848516855991294198656077109654623589595899547033720971493526362336326609398185541790824183165416214251181174020021471026190704324553006785564923678233506266508557764310953252148429235549427288049924504650935024167630836981648413527369163976667259389790214949950523476809181472293215320134910970340449651145198078865661059592418946382627598138604783415758161074731017141058482932144469222155725352954805927341047446748495690749722388750567310463398028465067103675689777399846928649980166390497322239138020723542695177340010168010589264475770395926192198961043001680426676358417838524436594884943468457960715781166504123088343010871804567710807417601195723535654375857484791475997781604279603532508770524886737227591317292261661442138369933907936023671696625210726533891602597703761331938816979854302617310888944941736361307127944846373499811714641138409006687427344041535596141254559331742525565380925922503599206271700187835514842010944051681553968787222732440642092705912679492272924568319279882641781980230021259117834048482153935275027555486086888647646126173519230437793756745144309338738597264584246157475708337228504837437329730688233773690994549648782379548858517925939826463141887548299167303032236946016032569993228042704290921356764693648302174129380916630576424723084410537206998763721838744270533913500764911911072031670587046691700230415663500798811185594164993588604068002972994429410368678153192524823572604036390496256408760006672710980237541590089129264464125101262031827505356988622083082630361445189258472016659680166494195105871485114294717717209691079718839175741531181068956637858618449299265731554336636279800933957220090053424786519262379409441375981783925951234637640159514843948290620636399766873268928340967104929026456163653960561845457465170278887985779580262885766475548276309644933391635790858450872965236155085254418497938230897261608701729414232843668737382014493549834176378166912655074441221673896156541286313859175286923859195739353841045716539135697138198719441752695382774963374136733248940937516854289084805818870347652007982932667351144724419941280482026848581821252737866491881335808244935755676822489884423753770993509994916798086234026787137731374995741878827883819694635106255728109401046381339795203115886349582508888478610729973283348893444024116576806977530728556957619874710418750135169990808570846100767311970318221901784785515947839848404922760760234167712691165778957774826520720357287232885533444766420479424112823003827505775043098440584349482807775817837930325665600784185580656374066824592875822055656135401220567247447267525588125756649780112642203430683680512295734530979784790555371384694750560986749733455976533013481667219227186666226806621292935459636500960185903037449380158524629670426569064783271816789141614448006728406393540135108681762497060935296620154701446988173243652178240668436451069186438220708457467967229299468321791237265345869635981592516071740843645535678688347237169227895179868021633817882591693245122313514545865835317346743451733516872092890536097711362725530019002603961234405270196417581544932323927380275797069053540752604707140894033384857453759348074640188281382574777497510508726561667353692807817486278382855470661368867777658023836383686920875086173553068900196312388356786931596941123421312787208335817691534163091931276353481239497624485995742453680543737513095387364070529086339742312125739628873236690872024989493429336587065969050822254672529962024911225628314337337227890048212424210764683170244744605402543502055981871903578283645391392973462128571392209642610642377245683385403897854297412792139355643664926076400738888040690021182884162055966797444935145457701704915679752716393219045768178412893740806057241201683762122238070704108228661783465756600231193095539852894567817312394844057654891475871633207637552438134555268905624769141274705054473032441419940816659340632036030344515053857575765732005860352378890285210317317088165770857935051172514404609283381601449772151815875992494211027115324224418591512817794615142590148983325917245808121206014458433888978236130752266763251177787106544318889571944534936147780445439018047895602839287096945293877634237274863861372213233725495411304747483974182429271574230807442801373599613645213690055170231204181280314068510655097627934389192972964158049686687633995734084345760067901358798956889120909043045274779838427127393661723146223723508895652009348601938877111948334025863305753563498988701059839011181884674938649732739078131771199669359479001302782390165225603519232962588198152893991583992596830026581886964726288707981381001598408165085191217023996143961993507537189494698800135008745000524577676795294860347938188076266924804658779611806141555529597047774525252502947703213784222765833226999540882372488502062749977011902166124767320732647256812082277353542222708300401537071717785049389831810404387352574852403596885610848580121314961487628380690166827983209340956780639993817208798977991445644869296420684514395611381629913361559649276421624527707238247759504886753258833968385113411482063590461959673234297367703989831059023216184154916647015024382516427574433771610554794104057623400948169710319961022927299431912906296832517545779203847949716245658161586421058193830423566721387841582237195946812944017568632436652521967537707544352794004457583705926105344718341116406737147191122989356115691842742811650397143560686392205504990799183860851276133062664057578383482853397491819601926570876050728205824097663988151026213516915816612066463698617709432443320652374603428478365711520821195761231751212482064104169850656930827390095831330525224563548204983439477097926873727928879972382197196877528265783818402600960934020167402572255780891541259995695139702756271738788306439205515707796402480611773921794913626792518742166976081618896847519621059813750679290012946419902458299191478574952916589035509983797879677423028287159643825705745174699930915178435980742694760251027520861150808720948861853452212457221360658076145931695548906345213000747563716344086078758118377928168534808395154862839594261538982879852601613355921260741787611894749328918812701806531090399272605462116919573400338701594280083422557283349100028034974208662344620943902867146011813898336171493545293981306867687530476693733468652237941589027618775764977349278864914351535712314148117003903551683470610280161508997484042485992019878763654712220713596764589812252225729177838042592471719457176009943148015403765011955246219058374988953304548101704144646526913810627717589502449593297319181215230942865416292641533669520809680503206532794353987515846988073632632092405959712964175836490882144645704814026061743887084098557210486543697035916887840152175269765193202774425033950413546514412296724782254869221213003779594393737472497909997476024148698345800241280649811466387915096924353402308398713373210658579413178325147894161399556707380640339813299842985704718595136233451420687020902561119606636287629852263164415526694143044649111291365445674961164091012764183029624186503112956119006776219561514434138262253129666377707084233657089074057776954239013049538257775039816319049524284200074719478041409150118299410650200675806339970808459961339771386360633648263136340658933077752178019536228919030170418741287708124149769585179434583099281070397792310197165831964258763704698624655700755477791151252623561924322362022179225267494265129124346480462862699600715729909622214385212839695594322856589946831450669093081974094395862170245874177268865413432872683900799096537987785607366007019798805926903925255315963023591847007471304882937393119011108228076823922609336491334325101335996841769076147607814293555115991835880361748340600814365146052451701081923647647556823318379248410298901803051459197409010302160146842225360077779286697121243141322215739156139060075082856913099457625591075480569551504078962452597960995639598425162726908441125818626418826988707691974543187974217452116672391453225487165805411080816532129720148284251978970734012444359207088294815193723234293540748762131612675020244079415533968474151402164227840804105912314488062921516383303403044392935030589996907210326119930758919489117036428317970291150198802293376344540446668852452414841049078936470498702118941445084668460804935896917023998463256417199959722452124456737141929097488227560786039427188155110205016373739401476668064585488790957078434784627352511157099628692641071982930454803152362693205536142678695819314950606095746152379961135732920777736222146899293641430289567362518386809453352175320258673404233103081766579382141101602065307244119996348513861219835787780307773948004284728053313337468151657863371513268981323546107829708009570014541161471232617603864048966780354110225597992480939819800302051967114792551612050102967614285280823549163086190378001470903657122859623455379026293953558224508026413535442776644391521618573164675113459553443370545780213637512358793693758165131209016046767492420445140287896159899753810445495824024915220675619807953642391109662400760789909677961141563984968366493434769044782674861758810570392386634885986522217361204072873794834730854608858905828483007773953907908075526579129260029705912728817588844604969922945067705132914435167367537091070547374070895815302390251816595456521202890299981102445078404040456001959094873110194283605108850694171809539900369066514332501220175242619696070981065752704989650444842829842886037047020997643358073512754696728935779621067953586059099465131729319027867804773839944517651902848130249659112958735823639235515637461926508323173581303662231838632500759716533108232109507297530368712813233468862536800485736792777777741176134037662339396823229586918854829684263347571544193345153520578293128285675400366903346930581119194720356823349016115917960291645833934499193386352068603412895290377215102305754131013036574875370976021098427459538154918358824810760723656071121252630932164726052214188492576598018241122748322500941041191994835976367628391782589492804974789749643863773937152209534902975447080122271479777677863820198703250207729927843167626694031515808924309787344251786681217435336694724054926405814005554312414320994134611273668312829190728124516912414259058887716457787770993528387403648483783091993688450320354699435087924751401501669088265167516862703637107070991896819569909667209094823044611164002133312790047868356101851762972585620021721460446668227423542487338876841906007897739000639588009467587090950513895449727656696464499117937111769676571854595111975964647808035471268254065025898289779183718982533130149965684933608912253284542986255821925250472594926770115952741957519040226775333967156085746191859665761331010913080191520857743592734908738303741761714419321091512371071687975205790834605661548580749087090674131912831809345908396658518075204819510382558746937030898180723883148364116869069446341540909649219348599865957566801043608480547939927562844544123222772134608150210850340963318100899846674938876461694905242638551386848733632808596711367753567664960164520415038652110442788594701041777950549858871789525874981123599155102063825734187669369336555599061110420476957744816031154549579921827103177195692779541245936605939906263407546583153988563004542766204587691565418796678130494182794668811005500926358034997114998544877267273716895992446009859045057348017330855865425152712601062488240349299596219524965539994455055645470034529860814166976706265892513880440199377878956200206881157701855325012698230235751941873742077340210861478765202646384567133505608101703001652069085767579457875068026958190073977462936433592927923715069771458357318107906076792123573690819261045508896260379961274120248947031536095992271285247792300210886148297281989964636747475115941414786703234491209625873100938907321503494714550853324879551044242591767142737100489838452249605970493247570417387569454651364859304875495440207125639132357574218497694994086970291127199504662983894205714608302078843167819236946680268071985520388245128449853502099037528912805526557551436147271693793658261843753786728634910842329952715469795328694806026774972608300268218602662288246284957052122725949783510718252246285855874188011131382604802663192900273340712114999523965116923972593641639748474789537468805209646941959791605921181748396209921613059239491894679030703192950386756099231255002321811047669963972520857233238329359589641710130956074138549113105125953097117987447971708389974223892197394933624157955138341522664038407539135176497465349387492153860484775463502949319088793760811025591935045265566501865008652087865504222596873984573413145063530646438819867671251403178957262428700074274181373104564714560556142613090476006368586953369371036224111822290106991194729082844809788745775687922690843844362823512109645649517802918465210697875958294658178503674850301113230355973689526709055497293831079494075124753788720968328412664638653029661742450224175475808999093384265745242814254802665772251028028554640427051333847643829127775642433908817974820988128849487045825502871772244746398234551737681566507049931543314438335542953876279877269300014026801350332612113232035898299884810423475042462344228930923530241498122634668063756952202893480657810253141391732550432686341252732815958711317459426748559112893833038995549761953274228621143581427678245147156238423632609901409705890478129858419748258288304959823007670440521441884002840452293185077086507011294453272154820761021011426286317690579838282265935264109792326629649955155921588837108250607068019391090905662635329871649646015950851620796493763122075451688616649094431554954491996696500644898282008079490362482553000289667832362970349661598765627744666676431377289175036708248706907034965552274789297755646086869492515373699429253172399692624112812284622664908702672787213922333686801933225611814720610746257011885804209343770922747497468009574781704874774896676651488080559682735641063215099513372797329644853411708938232158041491900179052175101962248316857456231359140789188108992650811275693455191995442509594639128744542475102647888212546514223522186163500435988701983369414057004237209986368777534735972220129360064053141250678678747991769498376831074491179708216526431779136068374078932757126996891587977663612185074854880801580602668821926783168671225296305396295792617024209819676665814856784664778631308802391091363172030274286006522330567031730970166656436786028997728371471233928277215860374535536237245041577245274288963072698490194041218507118303875010250362706251462222949527606849865445351304403905034467716807745607432043808153068810637872886516684888912615652544435573974654781661482385256413077262394809810660575618884623876938024544373667052753655572161322873706287359040849111526646529079445145584804547063124407837576914571508738436116764163813300309894101176919845422302022297332327336493331052844713442646367958713393243960232414817696474278013222225250929502271550512298132615826652079066031208082554239810222908722789768497448797313506552132147817778562596030968582947985591462758601749752938912719995969522735797535702378358742379589791418999532686829344705909324487653138327330822498748372734947812957862700583270109664878334556685042493742528620527776977044139761455520177649387586616979843200617144226350675047117917413603974221024487152976632825988172960904802237167498193554672228726979179428289019352620975341707924971436643599566165861212204863807735056573933411398594308464543004242569082029272827481803750540214761367249142809972316021671362066739937849076422500409805644268064606804995959205668099377213332397251518276249383355605198217966294076857250510596417861882536223684026095515656733623820792374028452026010974875458670232869525345229824693807937659776768665777145090674929272864932134023301306286346105158506471163159379429491274624395141983337297651347110546580507204531974493412990711817331186091572656905068175837761701525185701971244549276318957982560785577856996112466444667882763853954212653938658866151015841605392401732175501638041111607961279732270483646895032893384291329631673359727660621936981402158472248542265322968886729849192671747666609981520759058495880216286385769378851084116830546836067007446046685968599704549232923204901636165801756136625010119036802654181691449171423445534009212564119143398141755575110196453111753246466755430547666858640416950784754297557894303535513507516541217380853244199843179104331099430917378513020314709132860229661299791061231749254763593509540578138262451720325454236345909259345256345258000170532100331470760465063479059151418100620690735266160260440653651396724672963766580303353306552013965047313732244451834364249253818692578695601811860314876459459809476110283882218280113781146474588713272320561828878570856548877003601571535300728234399478029842307575214196116905389341787306350640492203687288187465845327610145061936757460562722377956075258704863371533725404680377382033903265030980860812189019726482026367402158343979931471197766756316018742967231387541887932125506730459308581884064402538595013658031442689311593563461510048158843594435329784945404392008384094096908443725240249702611715673949829356029598278321179732042971075979629897025618200063907514224546491626053443702824432369996553183212137526133409476089937603271376661278233797949878714410424147263328186027313677861023992082413551412479316276237640280418548310568555112965317014485783317747892543511317755846997113380770152414319078910364252662507245136069650804852468527478027826591823968486071292059380680718679073206059791303573493643589406454842204564867592734000257856442938966422478058172028152157531179652044174731571665057606729917114025281576731131813984062530436578197949050850436938742118983589232036245078138831582470237392408329615956379563841954282028664427714841532663310276857905517518236287599057810629468477419711688412846757873308467055190810237642547910526005427242508830907907372780932732731365153985955383385012522834829893463728995797147733800702805817732380407703803748245090428756898998703105004537162659266690382626167417977165514159451792205413822814249272539084162380919554612072320195221224870797022792711898060545267207660021128871195085777954117877075102475078901224398067473409813457252370549093084888371493433323754180626972431838843420392232148712726673207698353388888408899793697659176841335554459595742016266298584033616678632692429186232586105870485950486004342964258832765487357210523644438532355381963004114689366638179520822898361889911992451837639594468957738816218876556751158475625477342316665726123980152271018044132671625897824575580734536940053871233258485307763235566214017412124982252641592526538748537764442927573402426962802052481669875584627731472350675963850278039851061187516489641216315659765517632928335598492702076761408145207191468838485842608877436372912511840300515643530688423316351774478062490914758028598289309398179222968929184524506763353035616743144591319631724818877553058407119061469378171752919966223036517515423025326171861692823126223822382118620738125086912083199936377901146540342269727711308297514377403172836746745791338442354487080687658409787265376301851018821035977483309768557971696979013895299787302977504551045981645480580264155032307472512090244780753790968338602276970616021266534422645412862880488733133611008232537874207484281918898940388728601029344168240152625376324199484140897370380200808656851281958028653665419860902825136769914272374166714580429023950568309965909119853837875962489307668350245898799926298867928037084556003509084701010703908113548087346866391241216517739971578673937705110760555723799601539495623684517618921540208833076466672297287338511134271030043939472199112222553441964019979236698039547087479234117154305229050537262245535709610900673488872014045224987844089340434425933872310451261412663874587312608917901621908986928773078188002538014609809150461037862052777052504563734190658747661605963175556641533166013861941753610908485050901264461789308180610424212224966136424021839602404079724238445811994926032189918471264239087178749730323360262878899106281521035487673744092087429822259677154584470151716825961348195817581525175703993934768661227951605672634731096277242429377985308962960899925494444123165229145269526427598546239710516649399142307257361080229821948090856334065511840065399512452738017158042568324098214950340537975367554029107043261645789763539692018925568581609647941711511701067564128341008483406275220149537210778787742017865906933060162601050298281977935801181980123395303549150239643403774439288556339628975408673924643904164881841185924450250569146895780441923614011041070361848921486356285821753934144775336238398773986605823466516072448551297027328737730508883344350043585142263069933863193715846144676673205759466541821295912613969508517921239536244936989153864242369571172282374910275648512904139218276902727801049497906434681482727563088523107685110401782420363778021713573603258931779978706608851474629615959931526420712617121182638414047081438662068427557294459059100493283189799171287709055088517975018665713222205257545417630216959013759684869947456935267835943486815345563271019660219971685975716743397556062945969355631644788418334320601639620167591008004889574706343490181456342634587922930365215321662298027288458351293278061043127094565557690074423611880879420314188990788009804602215280360622269603681800824260140049393236498471491841136886088846416274066239632881570123727931345947407587892732856023749705155954483919615133543210009496474731073945482641831232505143602155910206737387493818675575152726191773301994966132413241213500675106519198625529031200016691092926588418717729897391135664600054401976504547686727634266684767664834756387815911312140973051567281501022100778583693474501434798985425512969373276475140728415795738102208427535328876019661146559946988986394756748187960715699707367723158084592456277215509435263138654826315724949357198990019265661100751187319473348001561876406082859426361996949762777270704582652142935018970119072771168598006565968114370582405003915728535000825259520850760562007331978480944388307308344131825152406668972384592552703862778120069727523143299065114398384181264969379036061132668119042908450450036821094707839129017138359502179563198029222914021015104172256822025065231762140188507141080988285912861345190358371400397729095766584932113883031096946954299903850519153697447064030303779977302456861562928066118376639140689808415539785315630062664824261224864000788052236369886845295095448180888437172205661072885677317232167358285692841006698926476451948068125270782453241981676707838391735267087146866634392904721185549469151569900131027371767304827975511167062728121140473730154974315721518960715908882887094379428206794395405951226641573913424916341235734984913748085671998587316631558813669049630474252262819712014661914124679069978974580402217512301361469821653419947455760502116621677661810211843116891119984450564224639179172851079692505497657483095832900531396976532556562244464281142560848872292491280312825216850238011644337760316433952953668355320051539017885985825175088216483380019020354790834375377654822001593376237057474927188728544044847756986382714095404320641199048653374899387216902790568196351373509804263317759873942605741800640622048253258630152888086080584266074426818376394090341809817242540461934023904291116362634102104070050688906967450703045276700394741039508372654663881701668386568739146884766020337642170271521130701606860138683298561940481009368186819051482409814950302119029629149131193177941592541066131500439989714039563151794066160880856152467361656727754710948876985425526644879011876800926782651188977807222370507748136080537791319884044849695389007908650900996114833059232559395807190738850531726744107680666324880236695777013499833082728983046241281725831760464547083539919921414736000361589572808444228271814568515958531858892429151493263918796266861880627260867830582784688292122017842566516363996138427098294355666864637367837247798677199657668601774062770434511104875517942565790292873583939303942960677519050612419652776045618224255656644912263385459248540373363976069114109544459746740677216800216990139202340401597380444310688352663182394782361249468789273778437786334607120458398277513592802440098594267600882031754095011796441590354645688527983573266469159039206373233934266975452589722005455719951619237350973388805572570615539336287372342294746384673475476921310517559501545197868636362135878529935844325806443183365283135765062557445487915765919036058652244582566131244936983035530335986160041119399735678769467863244503648556093092541171319507796628813034401897282616863939568722654830950492259549135552390461770240149403000798877439150292560947732621033636079221377343465689573813692905774247404279014504245784009472482286148574825153606763151073116307016892872533818432891001600212390802065861657103289644981038706649915536345292665328242610444675848551117353206987469867338370821543858897965578955725988988854622989340139356993783569436278785108427048622702553637340916671705666753394160869790319373383127739394204727014067703848225120898047480609874738628117518404437744834688714016132447663267321673704817348775667067437161187511444463044134354091286174728682891297919084164982735122606690920791721833934975942161671511538946038445723986430341474025410560161857365785749518055629198387592048246350465180518521677675134295583000152784313396825564220432811471110214080359128462178630312771381465867824305707967658088272285284394703902536782799571459113012246253608126362677719323810977571522435622606967489974573385352594679891508410589950613778895629994500421932865662540202592486312108672462945103031703735391391725069024944197940849670755666128472935821033059987051282475852527802480983725033714634309538017784441123232816253376681338172079575146866822936546374052970239403160772202437942201263223220755760462170997171574311631684130250041682450115221629025047382231909408431855981131692076453747910155623314960281944830352963274839452122487089071448160695217030274207681674479937074441696515850204123486528875245632662760605459064849488877733026951057777764510224133846841893357253042085153684828366446249266791337954007652721406002153867709086821135328781179343092149331063928553932214290746557815430374142183310732824882121446651630700375317844981072766717696213735559437149653008447006288536054176612706363659681469914998914226358167332236408166243651622449451648555646410203487486714455733140887274479470107266292071611870152785498416797252166994975457111899144901167280276694196365767937105269332483381320739086345650031779900534711193622632688468184804466584928733612718734538429726226041086170328386594563709960964243960031618573315029402651358777719379216460716875349130524272053853425323178826535787374914463781664027609457210930952407944500668423121596249347829441616038712453720566573809354490762068038559711987802718763423537877043187797981031808560938524664014984086013836570957438715484641578079276171358226138521853058619919323147128130425118504076213179692711799161198319317375499693189183316222380678832897692412990956734979001964782543910160328553037165566421872329640057533512910489297971526142354717194320773152174895550005220851481868782067483844845886318503888761018371723186334549902876111250439657975391846820035814067034272582159856696431933410135932347583239389886771142047493800045843227249894644726880274570672091972494253330021435241445208540006404457835870502001203301988765312466785039637031294783488174796923028276688780214808931452505998217476058868504571576991133088812781249719214157222653023811307586116910742763852625804979460166285132981959624115286526910835146120853986614157806515593218943694617112808147464827956203992776972721941437490039489594708474983007046590231340893984250214933501625515663097155958203803704808544909410584475108623837324844103207896401540116577399440942089279700999095423546940490218082712755035695032676368816975905636809417286850039147565404917348310478568895698637300053921973409469399871413083687794128225815749611728157886836160905600351580707815788074916316888491480602528708295826347430387198667513323064126262671040378196867938473802571557182359383706716501333558445691344024208544376251274325685248746069280522926400093033547897139014705763470353253356634918969640281075296634255545146931412189363623389578931008721474988491380460933099443368829824891761503809901020653428604964917272767763434651779074643634916216144711829278813117182025823517589873755355656925837897635712520938576875504163891277535864160829376611594228927577137094699478415098594947004370718056728543508339244486881469860809504637908436322259616232581495993440991060229037859544143318879854817719929310593631587957612550095278267243695070603033534125126424555872079946398761972223315087843044642083254916172346620731788111212297434125802999086076747531392162445722558981305342970055518674882682189158339470173425703939168656102171436060514772047991939594058666682193479526234612148005211675219293742538266903591196639954234661189862329465600469802674922900625106169986296784112176556346649268887748024084996559024556159338867295647075262152228970211169309833023920660952265977971963687998891001437203003240746101573861691709762462856571360519961484157426648659854342872160574668924644133321446227057028593120632063929483949207750318130593030208221093125991449822787449773285411176131514699305373240534276391865469331671427708930751886973551971145257749149882897434649817536088747575735950641186112475129407821878656547781062128809984648354004137113545150693496988956409453708875688591096123675046132351164317092096139122782298203293785986657776078711540011346078034904526138380141622710918647343880244431594298315011734782884499429623633491816509416269198042320098542706919517333961088058119371199615361667593675245984302321161177799478741859937475084054699215480762882587649309170109233408259097227636841904974285580618801463711251124613557197536235774100969922581907504597466964729041701468431146907499156803877449915482143771725457525093583563763692929482989902821402292858602415148017036342689442874894154633285467629632205059506904962871803170667942591198032996997756101901843144046643981572278322864242054219515907172155134367613648569186568422251301102348624238197083662608380132378610035877393430151744363822049485258672788540382922694923768655379396337911849905925150265762368093377346613417763837684767844727576125458093863028107256117134192626241161418944193590007514390642683731794304926255519740599313031837809179787763982062156150983228565475347424961968543843594979112635690598505915586413662112224048628849836407553890019751130727710315715103094504252809016353243157796498446259840035969366319806693441790943584719172162751687206746053713675010408365226041357754859685852629047883107751664624245611632601656210553808950871288894071780042869837409001483840082822619659128582104141561858923524784371022003698914088611803704013389656018059798429808238682663854989897457302997287282904115813514918551190233450121592261138984888650322474462189916429361933864457876774423038465842004653248146904599547299807171139238557136187391250525928604888494594244313289913853439425505887437465673024130081119005746342795678295338354473571683735311878695463134883047930517879019990141516694031656557460138920173769572104329290918550492142145112312743359419558458186719530570727551770346815279724399771798248495482312476237899589137704601065427811567380866103488994688948015591963231839720673389861408547497553212886277758191621736706532266163590455781790242829173665205062644143595667528997440501370443678509829433070719916902971781002541011217916120030431110403618345394655321431706881077012184862383480958087325527469300668409281096943342437590774652458768748517039935712810617185855724252146060892209338777232810158162587512732996248334311896444969790164310835766923970261680363147139121352978138491499815223501298184125039193455335998730614042814668032318987321729419436823643440493236286727125060689444489283396512971049270872097063069162681558931491597579024852775218323967846349337299566480810314169184613323242303872641964284392490624220179516980934065588274575256952106591848351470584906827976257154481886693482243644748072982845849554480605115731143203942873118166519028909575727940788223365193269451314901325996253406345866792861223266900914206630625718017273880853268077957941159210248329587962735961429281993460435355484468723818529342064757497747239431165175704389357894170910105412879200308602851183259866451892861801850064836496696347116874714954158058938346290844381554849205325115018827181438624556422933444291285048771956572971973326466042611151552813106775803478314805576811982044974074015453899108854139260893131757013994789249626970778039905991201858081434892639800311171547353494970929178422042008686208419181581963927650478865401259832981656274065613016630665541570442476791551040601360275965590407501991893418612191437381861393994225470823836607686876570916566885783065702965205438494744992341626757014267389092064160439799317454954313606582306925682523328474515137834986504137073404904386776762133964747938255527668782374457678883302757297591857449024159794733471877233761113219805466768401030275254935914198593289971328063157857111786489998559607042674903757036409171768123162629022618447202728023649888962938612951541360094710882068048923743901745962977530684050003543614993136599401989602408060026946294341203930893583167195403079024417693893830691225922113263971152348672100911625761573268106556524972491030047790571962301026062553257009060657668404354899176671258155033344337006737858484699661134665953692922749207193500696199375466172571581420880799783545388237631367271576056602479501970791052660926927637774378973466263675038501038028574386548894051153818293861554165339317174073691943569536243264760827019954194175207472477029900625657123224670286688558140601864431430068590015682454160253311162101992171210222137730794004042571698341021566633453987763092108582030444090546066145452708252858802555612928538557580198661029741629760941152063245329110485287340283315940628863252140671517189957717766038560654518258835822160309252568365014837062533929610553423482233178470943430762139668802603286408166557113378888259023309519531142007231291344168786696109124167394254910624806088897814765688539457598325277564915981798586954701187234206074785992116068659418263605666010840098770043559736752425971914096179385064412115991635015020063551363591259077780714733968023784527822708342150569372870975053703217256831221764648312627349405360953508348963245384820456289149863484971099072931858409712962136127248084799388376239413733880611236733138547347099163567798686486677720322750493741933866236119315462506841195027771621094931786439903383092332851022922229454880864102547528267593237931297540467823830773422056235557499363605864172331928918259510641447241819792068781705519273199898268950523450418538332810754627856120408344147573009946903980256213288037798031849119399775976661919377723176603718936758154156834096486963470735609086702058194131181612907417875569847210548061074274283875092225852320941197438018459679992116314713506039817217048327273396206179176724399915698755734017139446003553325381594800106529674640117496341543618233120290252526997327787309258682039852459235820456464164024052708061467438337539958142088962513103259401045076727510156702049517205915662071379809010610276463698365209925016325981875654088409029597263080757957259389753852962035829639273181291869299297493150587818548955088208659601948291328143035733091558934650628170609384369823393140258955892029508186846164047209739210944613989936217227117425302999809148732687832293775545358113080669795279935689119029301399604007379568297323797399633621135786564469394180011768826003036504567128770325169017571135241250336531949212974854061001687048858928558671227009847527782924351651192408641482020379321844520657606059649479767087270338073910284323929072223639031391489452392353460483061891734594634656728692593621267310931463773711449868485922282829026865439238567628830570790121982798189578205513550811940422393780032262530808971194713192021694407133074508504573790662791179837076638049965480982443825355745966429534939599838621858601354895846317919058549104088293805368579313891384325204219482413189118364445974697215159265226357869904047060814203691858116533648506589884733397411521317996051843854306642940676404941443127668502640739919930648680047970454002825174813950891262221818122428651471348187054439238378669171769411970015064250786013051768537252999235946270207699614521646529335097780245245172586132666139392887104243829644813516840859459792055123070599810461994403933072407227712016620260608001069575846456422049185254768291130100091360389674305998225014660826139003550973134130969998155117801833363581793855109974744491931461113059980826021778078844397330455802622114108107622621386642668190004380618528850687586610128281150137875685119237152787126337746249360389816143628346178056374797080349568344372976548377032644889617292738386121962531944953192458954855981008392249204409848567213970580174329451217481686196192838895819602940668777581700731167986167743857028965530228328253636475373849118354367813779006356937757387955908128253745983472299450199987862227273060615800755993253587340065445476044745716726602454363770513091933037316839788631911701258963304501145418228403945399314690875918627003440930481567392422581615141441432518117795550383676825167536710162063623556956387963394242960333429449325882877597808913903601792702384339302507008781153308612377773711710328873239301574898258715587609362424618411315867636911846096430962739787000541701501035920138330772642198443873068608336184499550886856322313848783498572009807220960908341234754734285073764544694028397487699397743272952601129891097921961782177895681240249647523606474023837614774607757097213630223805632050294236199257315664513635065896110939319655018349609109662038407381949406888190203961306544119136938387415256761747098264559659382634516157945006714060506211715219849272818821976656980200789665826942982023081642038714702884462211342757350313285425231113596669093818357530356880402131600811327972583778727564597453136104916083062603133809382169288497976988054454360887217815734411183119478779031512497691915690521224476392669465950655741420846185820908003145448960683322384780612067044029698320320644846687470409313933742582500412904714259537306263616844634058260836796384386683199343302371749858197827203053320939912353276172305681783043495914994121574938379444039001624791304258786767968286832126959885164345526430668142398364934245892220524367501493827960037972209177370558400972214270621452346602145952885110663271458290093931310637646535968438137154441206415288354650874514967228451184713974731544625351444682031842759513790672852215528052231200635545824357774033774687526483534963532937846261616217915285957958046518297005406591540140322078017503568241160031385962184357820523428095289404261231371609399631095966368594727476086941064543083223147537577782383229509810912541372679962529493795236926223510154830602631877803389697414023118583094151694358063128720965419170844278569005731439123455053193205425096776925291310073755567471306776062486141780796862408334285783684059204978676327401755399646630509040203783598916999270009976429581492487629435747393350721031391259614921820571359755738989955556316982722422788895218597729368247768700926205382857981201258873967967526745267949841173621799232390190702611886890974570198243661802805923597536035629370842696374755925450592798555554516120007724986100923940706327540351919423643185277942531945846437199385427478270934864126321451064915494860526014102470429142691768281575657979248198616052534706676562511477600047650523982932126374566289235245390637700850632619262936563867223385253419745423191619946820531905950143512521142002902241941804842300915722851517372998864064964126133791672913260759065883516644831783237342030973845107098665085664366416888178875406074571821509837293600518328370803637966928546713893684416896412936179932466910778456245517596141230699563651284563785815224495147136997666658942149974402411369690204991553176707276712522579471928342106515232557248766508780469845476695813892863019281198233488496253487499142403254332209627409537419654167425521859751513351419646903897844967157350661775065759354874116266155669019997981818840213527468740542418806502835536803003827729190257884127929100614253791106887988670869785985904284953976869891227655609705814482697647655908314414624672035452437078984235950026801347567790960765984171939847717034522921775117688146260940847395005830227664054997443701018791449262231946421180199448797722256781948706403800958250914784959759766377047361872622907829696143538865019292152790308384700535410191076542179120989784032931612401013736278642480824426981389972977232450053305399488532873322950917585195780337029714945388386092367042794574411262668352873970857627905325954051774807088351874389016196919571009939887184818634710394170338169659500831017425697624885857934677883070807689252117624720679892982467931525809727014969092261624681914113681045427220336811053718905583567595263941270304149477539958269052226305862908176399733765686983153006580657800084017776132724643266695845320743421843818781945037812090781154397174843377110763853180492255391817806949046378312364317318318481960796027743557676748626811770333207586916821058589933841963813635885794271106144651422437693471606566381996989458365130596094894621209869115440759770875355106862444212923976521511617894605414892457798572534262011569168251016614148793350914479404784213890883194353603385895572051086986341943679185933291359787861817102164320362576796755695220332585668487600400677910310583438653141848223544769999330963857678456414333057526733258211581944175770354173430150477371524637606602545863180632822278326550916229003559552584322565166272355603050433499139415736339344380099323093768503369798728199978366275509635904564585022089961204008463797666926132223922761362430538128329491473439083494754619926754794530388396778132981508927052629866371757812119172830775778758626813839772169018503456161575883033582081390626304264575622703836588499691370314264210897818094681007275316614875795173108957630597947137045724549814971050181306824884281655837083743065270412849211611709447399651709496139409631471555553725874972525869051334199441734948022833822952881754285088934024871460937852521983646755723476428782768327796742712813121563091930320759328291191456557546537256609454347324075610252939669576961389959529821778963814788845131838044319175493685302345490020860118637610313436125644720769182389562987810901480045205632453855337292269298316570596295177083184409280720389451608152306049240585826948582693008641714716633500283997630062830873147935766823529045936133985629034582181559643392464005806509648559216534494513150840858455820454781410421790863339824505567236025738322057352347463979099524936668536774953821785137097891517669947811575732962891944750431056259172473481579783425283188536664320785048561817640715468059932256307919658414544067239337037906045751315168290047823061508049504773841949527907048264719123225476317853829403825868410649134616111223606564491202043896568869686612705846805983297856527928116924456398120626169199808008985739982173575475751233892477916659599734778601138961768883640377827256658324270488257256601026737743754660015220004943629176421515642082990486366920426581474064235133308801793963054846063482898307625229630554354472202690081403453936263739806990652038553178106394560062586005220830982163028287616195546495293759195990039884256266262878013018886671045798596255810523909972537997288693634339157926011916400657019201509442330530351900063084501282373311723319944294277767274371265845954178874616995910438960691230179220914420437827000839264256066867237548465149649887066187759661125043564096360640098644898705598500350396632515474772246407881149188499785705872402879604142617563504940463518460820894465868957302502464166692519333668881300406299759086178700255967782168040519290701987024213444209284055503347141115420338913566983895347296698944333257718127072470280830418433577556282214435064743641541436024134015595668249626917599616091516600266287479578835887925425614763707538300167074816852180087612202411156306222399558322491902737361833264313730512192493006627742994862603971893837916054502146379822999695351460251529009372960001069772000015765376703371207248364701754851336125196258336972264341302439506911633395436875171646732920980061804012309858344151906050350435537885993397503271443075244273081577580472911079748222488632618012631755078847148156290860868589456985280371017622816710306365928496814707151376897423100484207269263100149699669750786371344449096461912284210066310196435727669098173580435218951319790805474170467448509201728261510499243710196730880685469469703303286198891592213808923114884689770707094472616085879109113004073753948939440348130187342055971441020842137503775106393542692305020957476299670013136546476773027245321803883895768494424062670942662610976575485038470513568551304414469098833554231823513545241394525089001836847900650378652309825720379557645176658999428471826513865603843986795518460151478962806216161611061796383178020349931170205588114230443838995392195899860418187318899499110691389929752471929005591602315185437800785479509414203880405362568068695431952367734433610306512356826344598157760591452949051973762681776737171528818536564350680030845290795653511608423734126048586324674347241851546598713410190854198425310096241948078575345046115634211425949049859674537402251980381675319241850580240379694967953052270239829022007171400569125647741530264207995906102066083744916447567253013831961836674993126206434185280667838783882827865994262884107316254752003195308164005959983640632523952497731903107123642939509180742692440236043879863613795207455901026019171228112709321600969206620013431099417448265591935455520917037517291906745295853885788441661383516367659720300834921041572732057410888403903955991012372667768499566790915076360969798645508849916509280977697375578754639835755113522547794679207375385271623037539528237797512986159705101295924851263654538029512151969912161241454466382336394101057746928064204463917495331158598433498733903670004719555732732020203981341294397034246374436527824558475108852539298202620861171563903547987538157232621029487663186487871823345795698634000647490747118215332236455992313192451623932659245502585576723080042461813421675349975940719001391114387069796302117393604154943491107002896949216558581189915706809621841504552170209883823706167472852300777905293810386101213992065612776939783900892289390072055704381934130203474561009885141359485864512043584085409620327456157824300430367580888695715299981479090343499566470108725170391802719008046132165990452007356262739454451113758337621973574064371001098872787094977704806636621619160694490890353319816862868296534219285195551463759647100379856464137333168640211461169113201163925732966606980927828576205515299274430191301219616965230782931295543807915495075465185863642512887507095889786997604455309137826757272072732587461476406070226240031566433866254367218151203935250029822003050664576921182516568070226541500698592443544360176992499842531180506659746441351636690682455073778580780564100504262916412671985858524470963450205141092052772053332920582457574251538360867432548764371519562777488537875371160945037442688170731971124830657762626083154481136087266161280334683128879748678264945740009739654202339788987555507981025230102890934632214278618756012681305183845275602339879942157475938913360149152669390319969331788626245215260830455463359071308788009878155690364250119485439224690205307638244899355312588683647923914171635703937115222517302425405750539502272042349910430346008581001608204470942557007601212874322208098680077510511743109476098315425748594898445425275001238147525765155950802919371317886415792759313644763507686551120433097205367358944943419974082892085919506264973473768553247786192548176176909008105212099980697784876100472242771537616663682007467079024031228549201316143082612013829572179106769273543936042876014392754856329527982076268675420393242687342277086155951850894161841369385302564708786801987902317922362238895378897256529364219263927610212810508013363172414462593776657181356247519854791577850934169706065340191402435421971966697194747882043034754754873576051372837364018866503059514470300840530210624803448978237594531991295761656533725799003530119920227544719689822689019528199782305310164022830391839707417128562552861653518550501155595567733385208055153371499770337522642311037177667898581430310578998035643061296301691592553640550592542059087467511963975890645612302907430571332804214910263628021187991600856852820132614003476331966745159597094940593934830310916251104782814797262386170232896935084098674210695154860724186476745756328188837776824431718231963138369812413374253558667028677985514636711821516634260440341247833401072128701734174901722283906495034675222953225551635980666782142370292389539181219004951959626714250994438534537734405961293955091038708982330000814658797583454459279914736343585397139547784838833706694195342779275641534636851561570662016032061742463893173720745684201740976361691524490692490111382467465711548737544771236157698632215245927401151153372048855003329653307580865882773072884813726426549939931859804275828417181681403731598944800252787287482356222214483765633612191291911185959305512606269534254942591933910312690426023501688194340177001178755285928163883751542551417677497838701001863818460352180706770358062918671605688949154102576254809467618321968877018024495515225070785757211246488106624805916825871944388523256390299875212424552226634854324527566078829967984421115828519344949105422726987062712245123857546862435527727809689648072652117257628102564015819384508476113671574305862841251452469764912211169089937615368627579098402943648254327767730741547027840374329472056544145153798396501164227554635361637078111590543514322386316783193460239469081716433512134428066418084401623853346766598963441346111416200630013655720196588804525096276399315387745883971193876569118264844452266170629711004603510627159057343925005989276697798050951571351252484127208265527440699078782323638517617860278084234208288771927006440290668079523812669764153117166348334930021518762387392724107291234664927854219937491504980271473840216853517735986051290572427715595534701112862032993297499108851229593238199366908711713720534742031235531020235693400660294247505927336174047631081952105753089577559751096385594733594990562394072895450160286746611762904950787937402180749396068396212335318426700875430721280379197964148646338948700676182781122865307740184051207852329774988627954611735415184622048754734963219883256724640331843485754517369975000763707217749801774125133377656800179167292436094053633561320816183507053245831842562307167468286626138577556268335259910144847251356792986405738449846899883973575912471642986292762491796381418352497537346329644437750759921684050908358933968029797155158242416936134474866648369691157850396456897914844379193646546938105443765685205545711033362116371522513523260659986877166169683225257348333657295735980602737534834219912712067972650097735210913342298460133900367824774762976023351974075983229228810372004663724965439867161446263976236864783867631057164963201856208317938503968774641380509062989233633796361375290000409529328767724078582702589582606963343777066452467434816286531030731760467564799902029456251163612581704293935774854029394007142399665594602044150785962764836437119647911614154452868143975222113915262436920812778142098535168583966535125231214876512215682047579032681867354324631068478693352033737425368956852142650618574432691759105698390317778678725292976229125319085285122542998406365118826053364702002027303883307654334829296125725832638640924462048469419116316887160879335206103574146601358841090392557179144156141738596141180407111458690612100315692811287999106591813268585035171681500263459503515921581738440727946382639696266121537368224919942090362372854301610481836189241542046493131445188293840568072307275411099075914032331326181318253420218009560007107058082477774421515225949055653522308524397264330287480905281625624586815320348673397707668164376278769625453410418281607876667113917671422588547751228658486539528651361303535064340832553271186355391098021554956653306722878896898115290999148536268911398685199335778842471565301126803721045286398159724720737559708933105623174641666159685150538552714647384605393014737756820724315363356306087410373363722863636464260242183161111801215877038740158207626549621413130826663215010921520495560716840080014915998702125179519548092792224427175914475814351184341125939166988177595911773076640851870272806156257480714535964910929987249854421986548794754843628257633675658412077704059518753839711308432897608222843423742767404226234546775222779785507337354133298633338240073889732699355077978601912066883990485059944498778789929813441598672440894138885072133466820361559515933758036849770581780942372474792706168114794901736791922941401184267382801024160115045114999436424563120297362311611416108621570062526079391800034544124352205419668353512357575039303546221543363418479162379259837625459779276686791279142891201693566582586956220830912560806941596822019075538522941444828520847044814253649835030121869737750336869756737878636950190046354478299934236514095818078086958062247561285771399244841875691613654712048096772135807468297840058322422260897550496453551339962317964552465329296565206139011691239453702730512081758768640244939889927301381552195871741275121735990235615940159244304961828306290856188921856765422634611680620896485010040483486486188644253823621338333592935581078798252773239818592979306755460586246306545716979886717488335060424452568994607212392619903618963526630994074594731702154680433677410280284950804821143765517212818729785563747842048414736993211080122795264045882241003330654766684455052311756741246911898335095675304578489422318743073186200012282423127356970749547120841220489130157204506288195482083422221651536570281362777754598418866279910175273870438116411255361284825140672289634194863661707154382600710473435779816977259259345548731693120428717071629986335275585500375378244075657051516710586260872773887209217097117385348581082575046609050989195665925635199929289056052606259990891342995201957820345106523152105133661598978755779668527266750241984095458855715125615467039770496339764444701743932070768569164765507450621944234453681462913071411279791028372737377778113724920501097660186450780302726087636597698005792571665009375628667199000662872070732415230699257339027038754588622202729632059648996325098391178124422470440039005110879674319378103144019359966305127464111632465571509948421642240079400141064086229250834797404186845777208365825608764053506693788078517367347935679350518735273551919706045507387516548577402545131041455981720628831736763127329498188708613464666852373717422571690521667309815811518228813968640154132578863695567776445782949056509740337325745405031872690714943193529814312940080865497065035709191547584441453331775390412034617003365822548220003047167678813164650624933016762933632515637860534118471332540747019186635722965023655911606882890373868516762283377170943200299342609717317507511976460443155096253749518910297193232347858416148828350209448971784814226452578425327692405799976190527827122836001548480443612372249644438986173124775479735943003170397195517527318357664119525012523637946813786297462561846145778507223697133442003669239204572076516661907886605092656851709357697613895031306282021097845507645579778239951149054840340454556018059662042287069264627803426666009312831872379192890192347322705919055044212902769950691488141012573226250519942665112571594139023413600937929210580082233257628013677380791846516331498538400094449609063998295364195688547762765634806215259796682466778593117043206447431501754945903930256735584456192953988717168550526625643284489368820850531129943931894848686348898346280309732975618840778975755748163851631220879360451071750700264304727742427629638410470225549591324010464738722109888041958276276304682298976010709712963594698994215015346874122332758284038212672413057418366157140338112476704193411532341540800304360274310566309222853376356258922312080621737249484047745030120913173238887309430295818128744437251478796606370145836371379057282381153385481337434306908285898805757733985915816610876485067698012366824588960551562306069399729162169336888635405469793898710189984177970337560312286522124176333841640330380583106133301936577366968303924780921063453565277329604183102921148851168662369255343150124421476991617912832257353349044344247899268298326106186507983115206868789553458403212228402726052559903653470049464743675733426785884552639566460848367131880562187996886893205519221947568731710567980279692421587173364895512920831957716400103269804883274413581498608669459745868767277887509385228610155731195924993552348399449421690194212208681107075730781323763803336287912059951646618906920275499611300081336481423580265200898813984614305417473422298563987139662237493547027499439477863363800727815035292816868434159045908953538867279303864129676147463902053928086131732184127228609728392466502482527757445575843446874671307985759740297139191915549555632271922822781503794909600055921497706937647666238993669402759356682098546043520508735392757360844234708811652701673817141499270717249298460091470714330232154565228580871324740740835996487814813681307196098366865829274990541109790498120549219683280823838709468993190559698843447248975442154615080201685107057751266273127712646660711704906416438352201994246178624292494501349216870529795903186598642836921599644767645366701961091229394375348957392147359534463597690386921528349117708448610452261766417043686981023428846869236836046254459680233554288669493369247605990325527300724151098340862031135379450656764673015810567958623459898018177752686439266896200641929437232589907682533727697489311854463910355171989723193743963565483206450403826166838681225380145479846804346585777974807920418214626788278844725568791671471412329310030440657766086418380505617987703279052687973136563391607435594499770978677717270091875708538666361572990323905667536701728459928819522519938822069062030660356983056977260171513859565832591189058363469144096989744789800176768713853132842823874544435658096303178119641614482003217431744924553006236614256951307994830329843570861511258270403395278957317273798277519971955059541461736678697816738962295112262242723402399348157842929121625346449189573406799709375302838745026449075708737937168719984204723193521440699729638901812056919176904472269572329283113885906034437730233072800789709605674781953436758681011490881818990717702261032914645226742188984323090118213184661188250975230254138742413316592789452932489952796258993301020354290270159696531102453704189800759601398214503067357521936484707264202726212205539233492536045376338536667787360459539128116069462679542544401265807967442873798732791286807831442276527733059262662293689528524467763222415050575082474923114262488152035176291339207415531923453950546507974116480388036883809269931327456695011058467240259928103802932191149688350665207431076065656087728533820312173001812864976831241225637771892610437932050268286926446505556972402398453657361448079214677239621155264872829356805243151470506626104903033257682693499527178312917333171685319844056357813591902872633889023616686973347798317804077216256763504286795034149012424772108135691903301624212610157276523512441051367534030735690766963135183102858027900713500489198926178176542642524583550961617940426059781811811046851320938113783548719732369135409779710775466827679816755484863180843509523708210253421363422369782890951166815566751644716658927360366343259358574304211067094891096878404657782990232254475692271919626907682327122476148358927972860444950774051341292166149262349166960323686318856776773577667833954773571858727712324959788294015257555733053791093583896840413293431094549892447665663940962235279746454112486454873709559152274259836484723489128718651667833393109997241005225322602645543772624876483831129230227103635125700399796370809332749012071490810776157564239643446980465227533666166763510590920710985186331328488654019705905431372664554324861659733670837798353921379539434730182037931311884960538675578996195621773825406418152105291994683349770240682768868195355671518088260009067869851094981906247841506101407681850150569843182579186460411921809908482265985719075457459719733650636258434079757187991002407126579612463875009318155726479999645446429383103071446929273930672335201914025382787212767310778422602829642438971977103481413135930903347710297138423747883713946980465370820501626391042799073278295842415955928452421471962762261206866599236515068524702406312267239938331129904294171184907826232097507191905953323789222262954729683738260611925487841254398541448329704443264756248358032071931576434660982865786416451697264223700323547138482742163711052068465249359590816006207644774908573989562165054234349757876652782061370091905049577951290198791673976162157257841203289713014237348134167202394527619826289878602243202214509962494873559342322246093180192399825975111287720080220525170632232043517331036044995186604201557377410490315220496540917579001376649607077216654823932464592438930020895977081173780651475499246126326186984030390517564605215516349996828825449265348358251525854845428320445142363247723585075297559428460636568663096072877714044786017723013050852163683582336791273063286629007031576257395649330619133991792099115925654955573092782964295278866212165724680888844845380363224516953585749271054349567985629254756411783402061973756378253289923025684277141708726285728538279768349672318064445845165672165168441737912416018564480566568997019787786438955007535157426685524920637580680718614470836928248550338803996489629927338408098035179479455389879950430007202322893732266557252765921327768779425146646558949563816764028049411399298172500538768388617103062170261063538634814525589304759952321267735095056814126094332100235916682202413719604106499495209852878698127835117138689841908305786867872821749177301919618748562498858479141647196532654517631250730681752863471918497708698116839810943766087297769223813740934955602551903751631383160341494723698056614254950985524714570777833930856685401032709864735828612905117875555211279031130965866370800935267539586115455742435028809932914792432794608387621269487463008936609411413524768952081979737757382659605036728519941837102794247858312433990967257832212656427000123320361883556722216243066165801163758655960628602233309111373402332688224410923148216226742540198273006708858610149010328779380649440356222951518081683309423455878007618551650203689475602592388888354163075724548036953565989217629452638276419298816897795507770478850699612601043817061656424147060254903422605107974727100581576150135877165787211989067485806402310814142555473343941353747154102287308152963494033165662372857410755772417888010269639419039794769514311685277330393403652078004217767304821860460200828968840966870914837945813147060364944675941406431197285224178755153418974067145330674575298681069343927554228790317170342844652080958424271839524756611615154038885663896685839844927456908351129037013504345187287413917829492596256311913717086982319596809761330345226196364504823569514108437768317539940150783867136514935894806988957339226051068698214004479616077888138241825687727177820274447246773505963718785705603092633439169321653321217345863516858665461683991123417119594757733733106091647130936264857694701962747209790051004437087756560996041663321859172035707152319429738516399145667410253739014296669312745181115959257801985931922897157278480128920437867557732863593308612026311164017611943413404140404448801698686251813812510241277916053650451765069868260472863628804606937939974431695885911028332046646500871149998902504391109244658264019322422580027487324977818685123790007595200134084929048047790599344427700935195392993319809365294730856143219258097891658771463573676646754910102094520105115703919306187792857382548641991015713235581232298202074420026344695397523281360810107289629835478722154215839340264717617621016397506984058250839500010811189414054265907748910251993624985661397747274799623811912108614141772757260401564609455942520027794334073301639945504794615880985777570599797302673334993791335448324502397979421855324504860531024252929562416726013578805982617251665611029166546569011223110415782235519975344408956060819021661803029848004906881717621471988988527561593617364081152586840547039269593418445604205765313156925775424650091252392328322226334227407521516535721874032706025234987332711212732437973628198214763781986396136082109149664437195645122098818950203636857174028322549068796884493376943747156904694823591968282661145547799092638865380953252054966504095142748076127990300945184249911789053931541722727815855255835565628187431012814335482462415826880373447140071469303144632758083737466540852398182628698755665929434963429199306685999585478099919977589254851571253206258567520982356876403871516151700591999155820237820837216996164442358887504361187675115566966510567041800450178228346511415286909475112418546454459581795077033733256750664403971237751935718163979553520519683786468501715709750236202882578132583367996196153466097568440100099938375087729340230212923692673505403535986754571664369836761610535310997155956951590784400302712742615723065564007131544542762024310461789601111916141269179081570684462726379112912894211258084901416271444787738014500230670329851489691766641444002267473041446046898639912650813863616419482339649421742322756086503329281174093555436280083471674455258014040552450011342346187170373458349561516263826438696062415433930146597811198603787617532689398421888634778893388409272226130087002753324027725842368985455927234475177247719886755821232446105191139142618595963649367909736091238102055187899277127481939042746093406532440886095792518038322957319458529908281625563177651254386914950972101655479732354749995090291053686358833142580239061754085756938308816627942368333654596813960161478998355969208455555946619845368608456499218998374994799588050681209439509210364369417912436732747767168924035147455499041219467353194720883585301775368359442232550865381884047405579572876930507920271263544551895182949078372857006153215021483642004038477573444064718288813546451663600558152238278854827978595962400159710757855119986128981845482419959362869820038437611290419137026498835403720374602073278123814421862446306136846807808149147628532195809886625452336232539011898766389937289411326731464592044782986902875780879539308816305360891833212693997622410906586961703386025279718183690343501349116081265251534956769037368310647046576438918650336199014486912479079560273809016608446377734071708526348127247184667685647570985616353503108889472266148115480799802666625021691626584497660205179833359417138479148297415786466342505879648659195947784327986544924101724256301176053921044428020754995587744298140981173687673395902909610956876450394366868413467061901260752206248711533260251528551453073110400285125161788548791836441990912291159501143260127959444378232609609959506444982199545855725042770504104070473197787891043590156424890564263873281337848494277627468107077375045713500618754654495518467836516005300433849568012147581947734586913275666046827317340887878406020484150215730162175760879856149292341728165606857764631240100238413331078546710746218003970679690345289401292278414624009479510558424244762155211071533320658907105382432696054047938963567343758815666675107693146394461263175185139148695299986104573812124168614435062199393762446045011264156586870403113226590753741701583056754315685227422127669717837172328010826260287091308209112813323810825359132794669222708892925506900483823959942687971506729778946953351963259359106148784666961156315928820790248333087517163544981028330409526041038196099934851527514439221225238657473994512105855725950686841316118409571912062225008795650446602635170234039943452889481768830369703359204976985422450273233108062560176500134910603421406560649100637097127469581603932301893824252730821190488845612016272243816342171558002780813665709048703751853202072629853449319609133301580915918315914379889766355794459280107085767483423193435091793131151233060302212076725072393089549178834285116347007777250001383961048096929678639850744067586103638744617300833144065648255013429869094031657779401656300240568116864689429815863142054986555396966126127152780205460861494284203732745257323636859096777850354852780570873941167201071454325253235436088999423020246466535582701443211860873342509814175178924782042374604950756799802852747595623712050676898524269519318748497278409023434129662268275427958778564760163027280022467067388276640855041033000499771697464934198017802749215257084023729496956574445485908221181671668756902477925804261439879869991388075006952049196298042468668907775591440082769464596511922161838865359018043236985496258544216859058862321967245214549466332013116757552848796259369227824315312516621322727759038888697986657803397141549022134747833044741310712407516494824061433193032450809812487835452760636336674464286060266992436426763173860916501085145326707514553595520851950487978853336437420660297744448251227835910181932839997353278336913065107680283524228012016614015095357187914270772669849254971903046581345441698046370084115790428625403298518555723898773800873940915624074553223060065148089532895446787335205097985824165605925846048392317829530365168064219180238483501901149066137400329654228669106064158772094920958690920556563758837952736228222240141834093139729771202072388594857911317182336663256075332620230108154337502225615714936785467706616203860326372035457623312367632675080127869627219386467709442518809416791096600167617101574728834014344023370444026319990791310825557819987616699143451884541790865698722297650362927473679418170924938116167678186983743364919926899512285281657113436844533720122403734589685137089591183115599690125293323066972458226668258220774717852295913541876574384149328806343108184304236817406300725140607343181959983065381937130460020904409730807474334017687086112382031222545538212531513033550644710611089402401827617041758997305815531840831743829481500460084054726938925237875777601407134683842975460692899373151826890094861286543631490761882801272003125451973242645202991204841405014917163862001214692782017673590118612155230470032645293419818028872488948016054661844363544407400524426675141499766156743801903435451771157875236356982535965708698195107252348465629460797677735622933226197847666959556021722600581652717004096457656493977324386038051420173653269949396918873218928381035753602634961213669797017118594098777131291606027780173723117045432091850448839562356945762693495402844548469424635119728486652657712817749662749579097830985724725099063145241374436124757896063228751021468925600723286857954910494014606596616452522673549637165743883920796988764626135054996078165246813022146826735581790259541110128933655885443077906838354292871498973366214411784671457803542246653330525774279013047136875738418030002039706766667590219969168607039786589025478894318639943255138284390749644973054581292756682820427585617112512381935515275760938465546751133858149601450333543055163876023198210580467327559698904475411541839347402363446410593624303384804754609217711753727928560747245106733453154034350866133675565648214439576598817729860384991427076230209571115863511225653216871869137638563309892278442839587378908107092171423492615487357510704396052774750316978993577887281731749996564772190870425586161183509679635837193313144196770345049044023302676105635230450529800871866330469014763310227148866412140222721697766048879145015649142548198281172261359947967683456331173989273633612508907726404924621670819107963531452405165111576031868379317691157585131970323848238350713729444238490987765287522510730405476659892674445800878992554675736387810573668503102946952883713321364584988137828218623098737918956942162964277385688185743382347080437014598021501713115111642917506156802309349502821707618664168564906901052739453358982739173616750046383934438605440371827944432610396345402763911877320841756905364048728217716131442582720728235975248384539395599224879119851111546641726097842245580645504378057037264461816125457394881047971196098372451777711475477532774414404907088770031953557472243642651139829562491589448390351004284469123726592814799259288751507940941982129634681994602535024072878833413839264647864334459104837546902270256340530985621750050442789173213797993019750153283218606425876122600540467532747961968937486296122579871639230606390672252195110533960043442561054449169880085058932177660499764335007778167426169554676664198276997950576524371540336875610649239000863221850493703717249209515226781241724421177551861858136786857054782274581031327774593229454109291032605447339449287503199236568039763352526772055998692685333767535804932955051321817105402007148613952147443374327714622280625370314850639910599955526437173769435786453155430931934084910778088765367999786809294030498013383457370086260424989856645857184254532210446836933670021511979255516775446437189868015037555497102370288402925019597130403061541925566279206777266251216696798950940788167576244571817909274287482233322161422149813487345984310374624148499875082045486017702685994168712517492255478197756892737795847793275533518726447256085640038289664839047170606599825131742064454253014129729545670066323680427966571621198476742797874360961896827354809552449684815804749302159836187566334181656993772628072702337012488374225595456180242833137429077576506915262047101267086283908386415099085370313100759594994090743213614823192657894418145332341333578513662255445158495621225689637590534222032028321186078483693526805813239977032573862457470094964043881080716119357423041252232512412027082634262995276335695461678277986979153995390724179741600337276044693109341216378552778239201522256093888833624756015078597292519992798981343622177431943372701422229359331422414172430455265972279789687941945292626823625800626097542986831351509294436271014524245694737014474632530838708619666835171668504446653331378916662533398535376016337793570747168458448656560714739079763961471031457312364405275755386152292597617048739333894131922238782826687426103156230718330436728847747800012224480492863022320663101487832013621789074777236468189436146650587248052317802502253242379050575779760908901801198050421987662503845414484989760272557322703266848244922580397374404260342608075533939980224968796055442038976855808477952231086448985226555086238344139075602701209501647282618511240515708358164964498829629346127253786663602022911756316669927940437912214817824994292565203480169413807802599380687641168530317973819582751537136924503314955445208432965542104917842417993776636670663140606613224936456532974774829403888628056785879989364040999141415158880813849458220657797917774124532975183252623949017586170298677818078506710551928588329428481330976255289951257615227781176255645389467501322389686112245540127650846455369928018487442301390704745607780128476597667522453382029736314157512655036416319688034608539466493259943120298748019760695006057000478269549269098924731425193976318095416758397814117868264961733925544245187891331764779646057204152521721785436262734235072902916419726624263068833504572232963454856862122017024770737278669378233389863110864778575687759360191773447756379936362235379952888647877975510308571365864764234306511867625074245950759253204436671491740854128080341700620509459905193423071444333415968571768388218465182080232837055774234889821322704999507002931897352027745585198938217285608052790483276560417660485183191967396566153335456053656006035949423900390908018320566982429881288021320102790732055357862338214346258499058064152864588849276823600641817895730037579385371105363708183747788191013717459083910942258488860210492709005249874181134843056945802715821492251355938025478349953216274540405178375673761927380378685451942970459971516022976015451825350535670108448706727762611862771896596159112838458580115754832704758668870284027363448692110900078510346182337137129736255904962814203568312987747563956452839597826294761962843121221236232801562567862536622365430756186071884485683498555878255178418687419834545987392009508770394422551325624880501627800885053591048491840052499767759167845660867564621744672595066930775639713645496235376430029888414456005444231463450139189023839387741703723034835613045895763389123220361220504141063891597186798697492902997301999183297795445616391198161267247184705211866958813183887129288035451477705574237092740079702862603237574848067075214645727247786011801790260633151020972550023585009851392759645340193897215969960649272001845688626706013047805406811301598008530916923245872010305873123993583621042613694752325316562042140217005776249527860903327754858762259002753999666926332550763180028446972084959807330626678717036742845984775139108283566203884611859503017799784689473197738876202137708392498243287218418870099578008506830885946695454661382020362818143872771514524150548067316299600885448994690216300999169809572386946461799614581577903250462973062619324600865389282409978983259388222610205783366584011522954892293401591557281755350078020998595629174385226941835035975137165418503329192451008702707294447752074648749846010011572726159903041779625604643266198724930555653850463721889994464330590007359209260747449143002709482349338082512321748158315560663968486789050228707777348063937628484578869293617826506090584634522277531347188541111320101521418212514047586102931011326231557717262354106349793396410595006292003813422883312738090198648984258708244647334168480554868933291006497063897203409482909168588541704886357821671485411997923780268148328335451361958053469723163567780494754954446065399810946771545199425839943328073914157464375002691580511277038182698240938532556579674962149920894187821252592901375799681012845349580509707141843664432399974908214540049166952993166088054001370311014811502221196997052692342744121935362819628395835403886116241354202625675095494272485801639539118824411571431830362909246662942334479630646613914037534677643387162278061783055474584892076743035311769267521016720520101387413009972288113140784703328191682033347826409121985592020862185667187391912930793742782397168389770543968760064564635004368764342871636180855916234275775175302776584393209463376387079255459046575553009790093574759312260293657027176065086208158019853925030401313734816785892337094102124181154259260197318147625111762030243727096124805396046289580804737546941181189383454458829395154705942117568033488775894280133038118483864658222188370456991409033211533634800844132906526189223790344197645786658948964334201465160211446481986932886594758593459053448532122995072102150348214328243609794060664483030544995333226212283856498369849106147445674559016029845932377249071451975289707812013330549132114141457554888957099159370749128181542747791646320937091459376019805371011677186259209618310967918701427218807304644469421123922084274297287094182542967686092181282154448026174728381859552153638838087415787259488865585455415467461263307030831641139941085975873934875517413032147315364134888904459214677887789973060153983246984739495652004499987826004019169312967927001446100030540800264961743468023413667099476253546078821207106504084935561967432676357359430010170070108264780405276007673386108509567305849745267780135854150385646835688849311571199878750025265438414092918776474310704056529000164281270192707654382795389319738295264273254781692277693319611452901586950510151131756661981374713474661842799812847630086213227566522558696035560971062090263747519868109470043939022847826038886670584071549572484796030141176899731809578239410562257244331793797859511451012537366143787905191162659926576381783236144991794005945286736687102221311102162050840145563637218201506152869008473762379608348383721763300636035115395183632087380781405449237615170790976773328612438835292026774372161496196160891664926896214395933768449790809390119308153523408558077812250385610888849582382331369198487658110472514772786569835252681724434264222347186120101119499257860635339584418357893874102501704144612011979019213809071862926481593453707042833751544021220905208927018973263590102526580547418921643730208237080168944984567393885388694233787977650615440325547518454852851630380862710542543532952961370505560678061557941932064903490577746921526007835513084372697523201165740122971107968335665865789354569962417307141621614348981514090027898151234350004978933512956491428023110371363127658979482977012881803964440202088443858931291115908598292838253160090164073398603227751648680610812889142282114187434179825801728673340883426998605834199039829664138644217071418163246118201476605289048647507756312206341340563123077118808899372302146457486981628085777346901847863870221455504631958062179721821416022466251980395089487476687224042956537572639693023152393699763166261698463157777084677974407995234832085310943566433703843861614268532298748783500071064702713386778370634728654539450159150720289378619694619467856390856288318513487074739776238347414127136991640135329013624273162615177575866644861368676074881445230832798951244451510922888927365087002641214751345992345863561807578936820485246932661661653937413697809168243887518370003896200839620949872126388997286796922229694193921480852964865045184774337361966363503586413858231214343881914917161056011812522655670588404383605047434691596052680104693385898647411826447941860783129080223771517649862935334696947365634893267843350199119121545894035840651211803433415639322389394931270309517511360501966559042266621205007352393485916706102312083666586015494185437779232124497601493661975479875221217183185879402509641182669016003425301041366659634737331549036666006373579830933067091918533477507715739211745910091246362367331716549064943417810849841829990511541916266248609336150075303933283574694739819947682536453660566987453327282212207356694991380867198842121378220055160581406297241218108542332784232814322158114661786396008253353138238262155776049761475458297880127494274640638340765426562028051601574387815045099110250573369452498348616364450057083800925635752153326850598806041615027045145147432722202490701374725808063915004782408433477130377766477520602857514111516482599109579197790434688074691682234171157087115938752061608036914471606357763632024130003093364126358500591557851012284494237569027975299891639164336148656307054363986791787023200479395254211671302546184519497221988694497819609568761810744701954542430825336449371366739912401475821667960010640326312288433770786983977349625447846028071119185391519688400039756236235808421688889582778287336327895300136841955429101573039482148634518481725656680937638058083579925896074037499761179223698720377580752514884861591510423666045245590303587332330137109100555828452280561629529959666992240158449288356185392742286245654639587100011825063992716214652021207116294470711411604471901015851002043361796580785208449720809974333156169901659704673417731026710729887683483680217120585484634666344769862914925167320737222463763145353448866647852153878422011962253256302398188256418177102460889101762950504762522612912665820870385869335286621540291441833217560794837860555642777235284537016281372363619657344046016917516881186301915937117811146756130589784554101943923285835635305893506862526434927235923063200250723443803873438523377703117623845227564423105250388594039193186044500484034602826523919800004903502293733809486700490446920424506481139292309013625583182450457582953909905990166122409151621270150992899890314511278164869794393089769448886154776822047186744667895069599457856886976488572726463260177426875892255817080960079731142515080946827096269364628072581981632410612311089984407438084694058359284572214559574153890214891383635444917763154831886928691336144897789181085068205185711290935739046506415593387853633075948626165550801302706346004896721272013313727287909206079238851581148368461081167027490474349618319878736578187800511007517419247375897007041471183655167059617790638531292400224283469062440827701234320751441382350092257816177750559021418927601437455957884125701666000508130141236827212326614901736826638822425996787032654520435956382277529356347057202257635966501216446282657479688508567777422185872326963961866650668590436271938975711436161657521647213165667471562101533194238935166347673258356866411027062256410254671735095554188636518915688163289330720715475750534163357952732399302323326723806121521554933176396941020960806096340495411895825945797054063866754815651315391117343111617211532465963630115121945215292525943829357261745971999231817171695720590544480219117316933321704903887642394815531977031770949970050759676146463860491451301921203196382414063384939898541157482458067755001008184297901916856713397833198150341157341065541036972977090030457827033084691910377611373312716076144747970952622910104046955361273020198187743152293993657555940723560451124286788923382827060607828225425259337849731313053392736087339050080983800144122701613188469711560522742579162590868789976402286926814058835826592353346281300587257640930197072523733650138338963952127909847008181431361196782905106850455083270396476864633781731378432561362700684461282233239986283499254523408732094319870260117355933445350531134534163412447779431304137433127655557010516222615664560563966331062652739519129834491858850189451333722012740654724984121740848068046679615439066252977163290104695735496361718439567406273783609557995574772752165768566394058750293126420465575821494367214570895287620481243814611050756448281131445829271734453856522316068596315508793163204868455824610882082420233513268891678286396194983435597078526093755560891168450106987892450778438951093056483833201055190435189530961436730472489679217920330032703501986836997666026820416002030695601698681808633234968200135053698400128587697033599503016501794391889687503588274149836619801655895599946516594050657666656456451295009170163890867711687764227813384158808827757790971332663404673414521934154189403434223043421346075570036180302787401642450272866611769250760327689540866080190590355525042713744264789103200929624665082359138836958440715245296393792711318330217190147743141643537189784907722437566139815277364956732722330930474411565384716128280513043777521071545029091930466925839340594779872649988108187483486755994660945174928671748957117573973751209056758521643363017793346327741056453071936425346181099101859678074466220169852394287038954724851729767497880993896834345659838151356552839944721479567415496771374200315496694240854916894934223560640515762459028828856921611450209984137959800231191918281936711494007439824763312629556728663987954983968593316064138341979418351698413563540207085599477711861105659311566259471100510378423976762162648079254625194628213205916387243211662614604246347384618765155886429889220317059107938759725652692202867057973919378600074199118913685306915212719289879767955352067952885871923155521779283381168924086512544157353387483637518219008564739125873997990692529453152756110822077191953044445191017927006835940053502007770456898336718025510230613644924031769841324976227446859684152590636604644230233887012029229345650078625649992688769020245097289751117184728537480418964418302090639411438137387024536557247477800025929182540611694927629847307791883883027935043376149623839344390334540489202902864596273648969462944217897996255923992892115018577856758221813220980118380601473624485917025248482234198075311993744347541914581069769331190512279517871056715927721463613491349312480821239404263543891666171532726782288062958199310070483180888826751717632645638138754114754893923949208293181902419031955295559289240840290360410420760102161535500803139951221313413642543431519244124441997404254583933958079215572404045682258746499167218013399135856897246345499008660088349249938321547343682380921881029767424424849483177228803854869056878667006472358114438294258832189603536707174816051981149735547659953844763318358873159787133263949540058567501660587514876544883980023794049490500075459362405882782795249657808874910864860028182339576738460121714751029768819341434495057504485175191774255994694884307003157085240229474316176367689412460605145623127774214031241011819297922131015364527239773450543866772058676191658208265174298252175522218504667320535841176675869773763817451017325552616788197925042019270493970884943288617589764284855346235541633969349720224348439566691377195024086493968126653191284847162830597306149758392463022635980871606884127921655685204623944221263861770203298210286925759573544648122592486542377834845695049030612456564493276407151402891858932767199451082616423107503693954205877650444922067575181193292776091049161058860795046187285068624858170833224355018742977446433445163374487922903051108524895733962331340374220102175561088012610171372211920238172205639504551604318541329988262113059355376481740113270877922786858239543247225324317622878830804854373206111630447742326153328445226423714329494592471818077998113754698571506706744760370129268212168270010161545067611214373345718407176907834292789790164472763138313983693415401106743965880791803093848437892293154579552894656761781329372063874507719583765411111414630755042140059887829989066497370791474163527650524908528255115899994331893946168495129308794776447186465158688968047912880918925364638361315196134238324885069596768064594716915815609712278372829959707154015492967124574617263151056441667305771162788188855772015203661946170809166445336328206335309833453372975545416828581522059199416206220649211852165096795763227187317602399227982074295858883585324477079989935200836904769270503177414493136821774484835812779193627806457641939631481608387179558431528674376302500407675458172527250564851913935347534788362766829585012604425489221150467050928171250695180389607045953707355636339717929779868627096856137867101727835831392698069626535053734713020742137892279149336374259305092989660885130557091842786337604906766510938052538712636087349742540638196711473088315566724630653344220956906920564312582169928072037639968226508900747809459176808022707622912670242429297600777186707412465676302061179556427543603310348267043900281025582070312610240925686206324159955129244131814634484655803640070339198621292668357168908048202276901737982784904660674128190249332803449661084374870784884758672749234098800988247673554996447504951430682388286167678251910508283880798069526451845030193960122557635774686508482666725938987002647332263789203850850722935020651759133493819087197038064725028903976606272481472816912659253314778872673996988740595976482590935341979888589619382532271359508112110530230144689967187828410542323232729411846881094167197825739979736226258605117131347940606933930829722251608619346274667559392931455639608580333027174770146104363968662322539820576292791942748958177033544961100227708688896831203104793870816910003201035495233434372230542139203383830139379258231499507245503468956550333644450939277080280291163168121962933710595202586175337975770280560311660111453487178879961062186499691191808570952223037266418583124288803905016356311928766102431631448440709599676737623823221386139307932624343297257386868695899788031470063922213799019784500654985379399434777410924316065311421742146453822813940050142062961511455096725321838994675682458917069201112344791886305909374412950093142872086269339675679454326143750970609467289717598863248162282651416159067149321013302877060711673350726640519529574976326678164240406603569852415450519808463046202864323069247221220595033205251537988154736339608071492085748047942372819542102717367545748794896511026035835967320383412068420958142688420094730263487254502491643200527213592914928484080821866666065010138458203122188201060748546435705310163685357879920371551009572220132667819246270878846395749295142912219656845351387627820778688508987714926963855970114989348328960092741682436839150063965930991527183105932039121962332727795309733084038139012961143254496760526121396999307864253463585004917625811658086202486633421779159667199593424683403412148921105523325285357212642360319893769200862271039257174444171002716421787795378868484919213320917682569064915504411968032386634282659120369016098223647032014900809716469065547647909512113208803622489256205402428619035108844158775626153985725249396789109032451581355073866479014983396616961066426059724811808307631813173589301809858837209515417539731748694977496610444685316395872043528939386708217941500037507512329836656559123420843978162470971102741607002770426636236885946589733230546582835566701593165849412107928842496979901213710689244645136121135635508142570007473308452623210895433294880690233631793358923861773271089593793414083813175333792284462388544318502289930847663374953274773324723389475181151702096523790907048260670504124838264400062743696499333790890319866991860540251253838377398591438671243169176823250123563576424443664239027421959056632215326393376636278746391227743482006841054368132222609322722693045877125001962630690144625851128092902802819394749324613748501184456330135046566038907357830183864080480713028269616716076058399817038332678386314860833637868235147704118127603701668637887511127526032707053013548597426534680019270716271858941446619203612069973563042109405693777816486726925960362366362805616769130523774926755545658477396085895605546167000393221999822883075438669683478873176844603247556472652447755382612360097379833796653170142579909433866888251034424956493054959592002162905071070115788549397155985593543232796288151388620353287515594324085533339554307271858420333816411421659990468493961400252859732246186878120802778610629274984429267910295393341723161374211077976760982956161129374154644552474485085167475812470799427516901962274670061532189423940456486994090617141661881589568193193583246437102341183460335682249970761568195629815307003304808606036497269969868107337616631645732690665318715908456599594097470276505527914603728130009048387559011204553732127838958085336162837078486520528229241658290843895943548892948530946853037188374500830617479704842556946790280388617464418446035817212739712273388419965203432321793986914529755115061704783858704715719298364918100152430919113647243375942360115044322118274228093977895683461453964759848509786923986399023545051561030968404827070097909708168466030294950445734907202929321706190766608628138003950852296160155099589962799200970829994700431268412126694743598309519324267126715386811558195379480638654915721451420644058390991987576988007760326724281513845347063292299657575112687770612465498016239188907140884967396486035008172210338781177753098656767084065471294809393605149025149419285023453560109989879768324936468432156706787489927886610375196249639126320498867502878977394495855817214008541285355997880175315553914583650358751577227313848786731513893878398651635586204292645164218016687466575096629595874564536761649435108650064935858311240976999938928445299305158507475131437798801698221400214122310278575843561181642490361627247319236466154615909596169194062437776692606480137699586046665653205183955235999084357295691619397027339524427240893304739750359058492014466734088572749098152858697957940522385117574353385215491301158717107953906586074185051833293885215534054726884403263455088407460701506456145930269119794870861784779505021291630085511366755719655727937905703817387319443842758934236999450379822897465215407793506339453217731694915475653820490882956545496374721351304914687810589124723824781269196686162730267359436523610002018865966134200297484165602801357030270092328437766659959961492692025065100050152720057754268774652021801448863741255555930722188979237882438368590629777092301998913102091769235530732299721923151710805358351530147344348135579971436919889670778873383329772671176959743472341197070561163947319595632938932772089764988602594426702092448924805212383789242448699937270646019735752504255516693219866928529984359633272830097585257145226210306838470496509477461022244276660492944485224467155066589937646205825802184544754240269141685945414613439099210897957634088998947846639747485840673806514880967605098776630096529531062951915877788414262961228669191624243192356372820605197855242405512764855146848171360448006044996970851867045132491995072438158404720424566266238206823133507793727882509559844940344139792679754918192092608380058773794421793975483041926733040220435981334641710734642038191225033349798511304500590295422893431462741046212359039979862838903745175013897527933924351620350252188778099350359877861065235245528967159093709746443530932973640088595357171880717538147067423625316725301548090740943504419050288337535983538485765126076668395217794587622105084806478692067001024369498982294006298229402771090578458796128698548749725657867218991795275277918022163557050624119013746367627343197618095227852702273696021945677445509578927735479999867190436561581004519690096509085732600381081677308993754778344411813451522561933825383496709671675807389252116022065308968990724656257320709329751837024865289190918364150388851089681053577284726348341550601439070908373903510014494374762516803732369593056893100824755305975052468124276761567531532765382555470260212768698737306721731302272917709467072823817171884333326171009127012959477122739951975050278177318808777341492816255869371222467911658469588861775387058625962436394568251650235719929284738215686125526286962706244788661417773567851164378363448035689479835054222191914610241121332458613306079237615115488709898953892758026357283617295882108058184792057813990514149636070265171286521060780314615950715232713288718115618780364644589301001955716771111293343936142577412790323109532938090307562579451414028150643518560126537048617222306009069272078107777957323419621215578107923830088925519452198484157168756859210048805355647834993373579617555966368737701057663389823118434698144631402579334330920224550979911086109864580974919137400112465131256444418744472132059915170499456390187195087919979167096880346116615994800620070116482112865398240832205486038659221430842567357807585301698970550523069177356051741708180146675066233648604060400202018159048860690658640662776504591227457089688808321033340944120735593814125143889987593665066480248658122997040679332758950084830159554809057151587287491134536589151763036127858309478523686072009748723518735064295067898239637875647965323596379931329773296858453805036681470989247046675437866007860399745175560024830688713199307393698482576093088288017562854883335705631350585452815048778435567939106029606286765273872431834190306404305550011861857318587749554312093131364413877040027967968381322308462361042310322090119013065963593238456613146474857588819028956459101472211878223615912096251135205717798194020556916858078872348430063400361429694377108450279756976938800224666260491303267538096256768190040528288626002714073318710518408369975956812296616284295995009724324013739524399505111648836947147786000695559307453871452224329654827564996844147294911963963899117220697753403727080030211777452847415983035590694572050904674260991949696609926766831626232627069781770863497110558708119211037665616681699113485328145562730692642709651506391935514875051031846423811515449498247628273498184645172122012639004876188883166432293801384371361215856126915378387107853670449189816132098707930541165708017426673959355742899738870935783099134415972189783913511783364824368520053575075189252056933588221771413032549378141937532433162592389078764680355365279254117784859811667753689852519227624392204190589028489249629581851826078144983067613543154588369589276672905066400090222530889587705163339510064759464250265761377560671188347524424316330732730654376305393179764320934757003806922517974650690708885643215326014240076344091372501837756285999080011247814100023014753613179360489605585062573062326551489597734567629296389594031717152277701619049646522445531434826798781252547167867730626458121226856952888998339403957976345562404572381767701375694099836984624934757303522624578654269635683647939050381540507759116745099156980364251896915143485549995557789830314554949510724274985409488899332046161679331611900289737614274862806291088697989683811798266002611076275786581686772024639632533165328538190844535965452989621388489675241203451820394308622387934059814746987603062391232027030401784203909747389626797358297091932742534376260262202197185116961986194313540479609105246017526373573397635268784603027863081426649628871043981201258049906268504153984339327547806018562594779701670632594724802948590849788191962802580251438987299636616594835735159774878277660091082846811838507388733104159420039084196087455352061914189135273194476955064465189942620611895794447778034708769194397744052884374292357281499896156516107873739495372009325680237661904972996890604957555955784371198514030758539333495970468927230410125929435859944919163886031984358483671511121265108147551568116838629871631817307646634025129350328719477681651852675797019049340192199813666400356590456438640026602358438625422163611153100040621725231442637875939106216959348178171213355761249885042754466802241666652613514363682153800925925343749923060417159653615520552062112999329987887022275944508781153955120298903905121212936264321879040019604672628204032099233129106537737880399895813214027232018716696897732494673797855766200702379141832018205057514375844513053068102154971618094862741541513638910625889659354947466496754473397996845914595035171225147985681019540007932379410408679674216754137490348646827730494286520862470203943605631233478241380727895564465334345774524548476737185981153822978244781299128615414619959431017876907379546486153501189748174344832363906203489839350264223759092500989377009130256467928658187817765761060220442687847085601848614424925056955195241991164625603558543726604629336019841040998212774818149061601306577827013721206452902288784695505122449010843369257311993780744832586819614960129191773170559384843176500220521881082135361883788570996012254757081584259871989171843461252890839104246051533713142517201992346461399717851520006610518675906745787397338193554978136108059005263995974310982511282736716986448505537061826189655403464214850790949474787840545541199923007568811078952110737015187254704986478347699053406004347101086132469039538187785994744712015789880333567893692858425338069250897697354410218180197939018446596868495270589814306860956478237473164070988362607519536483374788490659035669280510591517600183426968513390332889644124162379643510241032570863367068080478293868440205254871586540627977280451311957178017826547338092494635404876583680095015336744607576354095231670635807318071927370804767972116861397170408238656972492471922549827636361474942113742480428256838359239590952846029370238687133552877361501415381128830365862475905063140184127584086534014141008380598121919809652941473900681682752067405716448609185541659084610866992193981233552490851398575305864968356564098214157420581513745677233625124160281388878624017982805037306956034231941482540577339430709576691987269758796343069814659174070260702901357065023838393108441372971371505824180722521067133325253315845468842066786695403943514417908015128483255394588134403851412086361116938545358536430929668054614828210797867928286158994943743355161095191203611470149009309893251722678241024809751980384897730587894448905995049015306424790367562276228006607411337093323907730212322334912432263488201066775628638263743327475071263516423070206568687164704279392251572183496406398040882506217423623946539807162389160418462554638848507682585900295823007985507512383384748821659988209554462385567415372635257084964640437298887153586485204522347998104077949201122933085975336697777184244976364197057504495109095222625124115834987028775269194768046321281074775074161686200981758781757259666464935643369213366294969333326577016224041358087474945350445575197045309643466501773893365358012099974700368949953419417008944714539134091759084375822259835960554015148691344280174948525754175723416047799327177785754731391073757504126075060492509948005408842524689982106265908449498382327848703462794347336840602505179072188200235286278371507559457784477683588369630903125364959923556084966508301298538453142565770013532696479466018883994756415299977352065541031190727685614938095931225099179607468334299967609428267907381879281692052836957359211854626410570707548535264019321277847811124945478764636628711048798130640329232395463297996809916756139218153861147173563064356369523550306542773360216866606684608625277368106772247039704573665996096225485709334401334624706186295496939337942964519472433174142585910218622611859738184454345229055964766019360199924300335620504892096239505340432878591220534485812349528634993068894043215316331975341883891986270392822315393317607717868133232361240746671319479848973355477764666471087762841859164662146789231923593846132677749292515311300620988361397580963282510528171654589578255482994994317219034427845672864855671245952321643989105118631779233490734060272626160539601539963168889933812372270447826173798467638233395945396877359011172602944735092504117300655172264137033635827892802061373482458937871278928471683702652658282759797431136053865831819498837472413205059672882315708788182258839704238881917548045521422484580092848484178472710154366638933613737415819407620471534246907990973144132355730406603205004876863705186138483814228403122870812492130953590201900910494993569355390812882375722183367031918918594163011823824335811340882857571376042832948097124573463030861037923968223816916067333712047732107716211596348214613411752588325368966413749944434372214750424992122591515106300209286766771031443237823466708992421316400568480416085622861638702519591657342240902055778675961485972622065461271262871881025807869552879169689947617457445459595244373082550603693737751362776882467545340847417250211748880786600642250443792887473263962636330086009509778688736190662231868143265761267825135297433768444765378181731766477616168827407365087946933706318682636083625442111947380195388493771202341045141826748527170991877445881499860326398060672993089961811380752891313073331499535847626120153006373085555957182916064002136680517298988166420879270348919573424720043112467992404022848288658978323422379923545489335151128400663241463166001800305645012794987042557608713531521679359079743205288071209437510634961249551075970292057095698932400803194038625075853824576547957370069921887765017214585344132743618920330355956712331952989639315955685972975463063492196687702300556032655621544306631856448074826850211961017387133271408123236482138437906547955253464272228607617230864340720237614291594161453480131034168669759605428986930801656093368928266169323262463400509887538525174336563429247736440730569203056914876696832801858055403792937266637846441790924587915089012529374513828840316663004916857449499237467283803940187062550268643117158040425314175112747617550702686103169370496915521307250487439103531925570579623991397163979552662719671218439553179802483735709425209860506452569994338057144482183119925634282869422567017206849248882662816025667521175798464656017281246176697903937780147193671692224150581551885511341150770294095798231060121229375228004090429216165701475864862255935174635117789665683608104009957880314582239749837066278825256277125810685945562576033164323134711455489943284756995615451761936984581312365235314221814555442310041879872916052451207106409036887236389825982994506651801415039564731458829008639954653937274034178188515782216363547965887772260760965165459770668147103816609944365251773583473593739254914453508026582830273540446852901933285919413869127672499153720093043620625986999014133834346290599031492899470433511412911309836992755556731213348959298470047303848817188476806692705376923512326565120479416088471072553923735217308169394023975600272868499534688735375895853639525065972080278895293541814250150897425124516110991411489733214129595191235571871302993147727186903869568905712841126602123316871099795669703301806250419799542509976204968529334537598107922121851843517388483888265732600499356620206733654890692589696129987623800078194627535048502082000110510636871123620508231089189675264427638113633156583029361338353983847681285401907894058881233929851140111477549087368840702892092069941208961794031176179209469853882332168793167265280636282095776718693335726693496404169145317638845896975375265399634507595109183408886227723865479448218827543082871227329401638178976343645842789328919343283542160557683380010521789862028930564726840348700816969638842702320311967531256311352445902249175167040674178883546555610741267318791663162665416185011749891929279783399776582272572874486638209199778002532725131303667455511505323867962594755295260733948749658787170659926304774975431296806424682222568031370787637986831237434019067074072190712788645573867425008481873818709400937439706817753886264002702996870486884209598979141226442621948989331439779668426018807623354509350041813296926694530453083672378032638938694092678146399139723459760337124534665575031172300555405165407681798962187991470384909474464779491252539390966411185774301912959870227198410587910885753828663589123167301705943648100835842275614185095622324754565049097079618625855992429637807717156841516351930338690138152766818676202442968392648798350190878102975686042884691712548192100642177442299024654435166149573274818402328645242538765662912758747244693343393684820912860100021219945540073079452152670593659587325369647298701561344184619634322770227964852094376687978577373480653570009405968174427596277311298522540346882727630920975891240395800226388659398477030933364749062305864018040387185567445070274306335724507395251675235833030903459666369453555497567365624059220597243166431260924635479053864107829371234116298083919015643055651871318931519859155887738529256965642754912987025898135481503941024521011935542386223912313461600981231683874297785188734749656891856610806143174617143208943621468393614069871365673053658612621712451782563527144917910732555537132555412349267460181136427350603207542421907876115848077702678767926555672068057076678245225364233316087471121928676301662902352869197417858682122529331858864024942548591361748687586417239762587706004191290330413695203114013220851636283108039728844146061062910424639863249269733682479426882465482104080949596018664931065273646368988955826864757192900764044674311551431034663158744235475326248746999049796339289626782787891936726726255216388073987061698140765350764962437884544738517933007466258764970419168239008442187708669781381846823702483000351129249553814551822880258983280927760480433073171504359208833305538400375460212748789712007806016510098760367636106927158555571245898774800170980610450816766787362253778985300878021826340155905709156184712374706664524011004612526010258321907108166103997835838916573045029986414011363524255122030404291514763894210478594497009402349071348712938512558174396346689891754850376423339725493866970166923432105249826136242339045883900762663855989661710871881180094053416070522186907196843757023841035700995313968242238826268273639363301511414390458311612877090791071998947043332952706598624501374117988431071119590086749175062995728636911155425857516575415674677047679767277571955840853193209981792518922098982030424188057796334900471234409972086404045746529071397374063005623331711048028829124788673549052320756286266399563589070175135339518782274761242576929691280943161945777969173022713645456528283538886744449681434488312993374542237900010861648787321628048313143221208443336320478898530327311494810061240972842586995680274147299965251588908959702195942279849726886805220500369096080903386573098545465774850326643693448482530483225406911311872597550610227396850825327421245717369349133631135861234484782548617997928994458492110866521085448828065882718703568460577777500216233085439437890714144370425426030557792595457522932599444167711344041410730089376940822583582810350370524557916854066532756016842975409064315349071912444531359198477932920000850259214723689143219317148057497016834301962483072328309620796708023600630754080956856103447615307018664182488586144031031355835365591795659095292091233688726865931810831468856978523094883385519426599269726190946188073080958359439480852576610473110241561920087154700599802198234168346460213003725442816111483134066119110380149700074080092875650020431167849366837804905759364169123171272127050378507922912733137855995785116479813326693462478571472004590973639211515743296234499120619376706599974078672535718935842734123278029825505344572583677620862648098731322709153747533387294162660413458967357449530512815663948539695695442782978606817833292937618465724516392738583381401761783874583226919571974675431445825162801796832550367762605585574040528480076013270684888182375463783225362347554731974758698950304309413315633840939321756947967889943358570993376709555619862840565769058035082713552623591787570901711528875618565545461788365861082694700445553657061970424524453639268724620609563117527201675026341045460347254558428390355716781680533282664564097961053920198827876836289514968758404373053478234924877763042559407008336164335238091162115948432918164850530092480721054486326670402017539475843707655734658708080601644729698359164102810043697333717454860097314154225170712296519222360460419120221457652699698593919991188588478097930251499367670025708849502220883064480035078521730050070771904634574530090951708490442615137557530010759016749020405403017843489888771709776110507808311147053199680478498669154687539108064625953716197028422369749206526484502610188205050180228480995758927722258099267381937227662074928872528337883243581471394315904082237469673813805344323112909381016214665361502859551946232639638220844498626803792757352594377391629981721021531019242482023028472370620019527984983778034831609622668426020479304570609328351943573108600043158072516848871923023078256910444241281420868456293761723529488345308537140900561310115839713919777577153572019236619837901169352327558115113774998897610065648273160100430627330941542807073395075870506091740628208595030122987880944895392463657397260021250489719041036661728982836039348175200427012359445465076868139922220608897742790634543570472173097779947510583489926120955612958695308090733350002928625685570650888240120850410178522733937254940899456073260363983626206894907144688576519267192554521785220435650321897037223010919287156230884820312782430171479708574191441256580983090063679623679050656621067740436612716264347390180527446085463592425676080577208162837214353666234430955073117567932625084774124511902055051073702971294474510024184236710772623862474199251582572068052115362998096050744277106176768668899614856555260709534416872365839142584881730863889331527657011996250706317611928204542092447630826042030335853034770758915157102893394857671983707959025331319625389962772633986604789779435754998425136619965539177840648143203135724238589256393071714158116676693902603857100701156977314824363579109953844088283078577927574346870855868588042286839447000877457999677027314581774563950330091224783028791164172306410074283002879841761818190379667213157991995865196725522114905090402517467292887171861842053566835813456271595301620934910704988151920138429560939771634303929639110981081480038701271092653169998173105087782347423730805016739390060418045081300422976465588175516072901875847766001530240084882435725448705519545970883515473430463741344360649618645369882074041427423707119534085523955440640747487284911952274694677095195422374598814628630194677324895402021716954130356239898539744519792944078278636516717551106221233468142039353786996607644350383054716749445288686956686579571601187619415192050775087299677933402459324276940493236164706634356583870780754134287215669876144625865968342820775618779968671938217546048941030117774478876442755927703679159399730895598666750671670157577229202175351167984763178443997049926967555482268978258502773937994740890924056607524182861609439736706212356002188000093642256929638285188412775801668028278049033484402948894236609168567388768164913174155185785903237618800581732377552763254706269747345408310933539464237845138101402473519203042257475140774702399247806331970240790943170529623206361262269393330831577702322165394155105582486044689653138341197272324930901816983354306038756076410568982607064594866536173993658951512798794596318676727584568492117661004734066948970946107465203934053700507146940080871017556633743029626144874637074254665052288073365588915805002092602128044607572806889351427775149413067670038559571534424194347099217839813338698818131884600638820905203290878111446539679469905872978180130699665618971154752184563335381011930886117089534089327028982948013138370240339362478218682300743420276446148636734429100799786401905056927328691076419875130473630426566279874030029141196831765022715704351546168889012269638735747339472088601309319520113158598138937638279478655485079151720016329264453402318587777455291417629353052280989427609263407963202439610586865725530928682410959860163757911919745949476645777292354909442634419911690627985313830211609524784118400318757684332295269611870561492453141059607623066801571209257707781692735621547980022205452575310836288910515057467955876327624533214948640720921494718655673704409033182468166381690734627928645261952314647191313781006047914416397419929058636581631496070219059016196990453794243154629938374574268543976645305935258942437678139540617244869613031238745438630774357740333886641539656182671891683862342187654716907831856216553421299273145807393544164520353660666207517589068317557155285182583995389402567906224950946295887142503475752524390080497413053756743704434686692949539762939490814926921553861108299512434289997137646577583209574786286013737369782462630406033289266474960509796351021200272425268269271984797609088077529795604378706106051720755231720644365625957942052138504964306615884311837268391492935507429008375079266527157369983269745352017046568817843246162411392364592373252915586026092454445859686746163903342561028829660890285519369388228517562149232426643856605835854702561001644188727065907283863983034589193902514962254116045560844602772559738668929883638164721073165392802403611249316889977475774824335417986537259566288177077295804819980261663886201046605156124573392408353223175524031289132536912571857117716148648157843998803538514966392535816601638178515310923080886383859892447052762443795032335953239802237421744870605161359849261367932589448589723198781675424273304159094790368402074992549863571195093874101480581161219935608702358409523483963295670717855964902418509110177200083551652838521072876425515210790269374062481471384383069260263199249995404365367015360072918334935333122927956591127863588970681234887320670618600365154421349276107022019198501745207644964816513095442335549495764980041288909047445676109806455211443141257111771198725288971704000260498717190900520399501679818554266158500010110899739349846493844965781071619237231780852131326045070538542462641587056369370685434614670607618445534073195950954763689904936634232221363064722247171989446712604090537370210359544817277939163323067312270711652628403606402034870483857817369055722399698273118123434494149672771803268178557837910766822396729236767884159260125726012056125563544495785074803393513339239051509579870445422622871908942110927691541088547409998862190040503330567028883029778490627074293166518267919466962913405624163528864830545871544972784959589950980796808407794352572500206768448772719971176474043379054564227687006200394512862101895441984520603116153531101626257248603989333147399753267842230036048499614637149056944308694388059635941291048099147472094950097062340330119422949141078559338281187487993815273071586679807388413749987364182581914632981628261289594397637436053933921113752389466671330321044910687867494637231171112191806643375309737199668973402460807491756928669799013175097364495751988653813595284386979556479189197210614070981200782869514756984962387316577849253663371806213893841028157218134925573271873589233847076639426392661234392863329467460091374925994562434378079513941708474292577963497530188394564442327811155116300186380433390686508936212828993474015400853650542461823319891329654624673857179356742593479852705430340889593999326151746682950949770664243689061085697406020227317130093062471383075021976892878395599045130042132860488420852845212166687978655790902264993293413264582618525863203918130340104933937938108172272615121719280746209676123131396432364390394739601623379765711358678473247858641146256158061174958441199480964938169548604693249130042741456709609445356793069411070092152544086469228477344178093549868826660796995985738112788553944693244698876883963203005542333785005512344732109207978008487242534503428024924793894356327477297305508104431052476534069967034303765905159579525472095331094506721866193123095327780113357044498301190115455768649845065234697083880640505723639936891748823027573974140888819626706290444284453968818621840874715715981677441193021093686330380142399832671948778688491552949502230035690872554209920199040308528689684363294110863329654923376969552005486214215323345025403565091984302207694840236899333036403685507870094260422510543167993238514715084964142785654444764887215088404869957095931801962515720785754096605075654457783855816382479377786309975806154848478147152391888360001960695334698735285328531722112949174237710194171023660412321288262762111357554619388731696248851187770304108484742477483219246034611587363150773577857269875861634670270303725970931235888966370444122682647264816109459826327832131910375222630739125335276478013325086013936010460718861522935641114696310625557795315776318333802157656565763356344132496875682431339528861898370690268431917090428443821457127533276736340334584146366154264289130760909625921992634365746606109762867200054132475175877056058384243568595860070712897793198100075573639725920637250939019251979628985201969281130165192269219403311730956205990528245739666406435644456456987222954377072726224508319564804565821067799877930265536359838258395592651802856875693657726875069411122762717814356056329125627199912043938109295499748197997263980824425157736587103506963258976832248172690057427713603620769594266235638854694955816932322363159904080444068143098939243572481793379093283423949294205601185077735763848717818330626831268144525670553720026118729682995111469892835141219229745123186366417306059836881531615182224784487297401172080069478011312785470458040131583592485581079614893526360258875427732987065428733463855142856415710248941735715125173721217486713059606474807068359413717837164671924285227780530571763270232225927610975637988832521772728798284149352550863749506319932469440604032320596576201577977267642616670053578807935260252950359527721287747733649427233527243901126875207449529032004803331873293291648834479722322044287577427506255936322007531712322436017030849976267904397220563761547436955782041067985501811492036293964159119917785841559228121233762137798103171405422731763222064884750133469585124772411152282490198118898300329504103896155017373424185526877560792402969945422657214726856675056199140280130136291878608688397445749453981584195470685181459446000338445335908233980534641695972072274058936837759602685705966374282904232040686471914160175483385380319435066533023897445669568291351388959068422427047191934305571803992672449413744942062879810153951755305360684855863637885525562546733898221178754500585462220350418668336390636816706908209799555233371907933658102619127163836111971306957208489887421408204255930539695173614093338439352812317681017120073487260099269212252033046135023187853722413228002881174901625863244004080517591624385672073125442375328846789514688338685136840963433947739710798478442761294845592533951180175697727537992278123926269178818349020890441614316473754913409857814829135799788938405482940069125261121604521266048745005810333497042860709885671926916797877477051104222695841567344403142364838783929473588596111115287263860872840670691097169377990248892862751079574073200736757524517643308601567326595850084595932973782034605466103632497035224005645187714881672931059005798607760238868094008914058035339040780949803090688037191374687035084528115207463954185316987135785922275481359542508261814296595170810080148435704108645319741502018455184903708647479846680665124437892061494570902689199375448943333394802033259204693823632442646397947979229908739185639376880772832972616828123545126371418273723292848876756546254938723969704670952396597555832200619572737990777328013492170548542149892702210501359952892328001223029203700520535630830293525073656338426230401237413204934644837483972613901842339153822361980987456316196001285859946715930843309305339725614991490658721609608215358945251358860934629920275474022409744842736370885668445564670529291945539149270034861926520374382812777847412234102120574610054383339226586219468742462979342159827628447998080267321111407776240808692907293655533087832911017727600000637767352213157701265862765208377993119857094740887625024235882681847464529507270458168197696486222938669606878851575170833456376220184026923764895264699893436369898892680670210983177546202386737791046964056771419346163853810627999429849246393268253505125091799234930951517692531343206428536636494014703026893053069707067265877452831114852682109538860833265032270371043072885325806238646768526731062723407478110242216362793151337545832762273225857290398999683590445109793141235454887667380914932074083448219973051064372648194694736239348839141215191783352162694646571952162309499606900162497413812237822623136378188891630880056888938387045433461990469489404405402047026480607640578981341687229032680090908750988808083503327813765529132846139294526755793764401990006240709777684771972363464012553819481425486504997791489752594990587396921065600158460049043297317437288568847842318703271287794911441999427503006496638357273052914770829032135525855560192489385426012251814787326416998015559769760089691969407360410468952970597926462272391652111824087291610217172146657937894517152347976073664549324955916113286726890807975838006978201650177964179383947272924661167710615213391790788816704061520793659410180758766308676093833959386222596740768009972124524160671148661800948721742322794966280427775425554355649812360589162861163251768704084488435224925153190658862325698461846383135467940255307077888858328847948335092332374631512788822876675035077888654176438814976335600421562116573509303451995381865105779746332966711316778767126021617097721286841958055114306406857051644534824302881201038698005581619670322152407913136131704341299687216032187027766605162304705078114473928929010828421819084870669455547611740809019741369436732368755433624330164251736045489218572338047396418636262908518938464650579200592018299711162599873614122572149051520273435091644719339765913009537791058351812168624607370495046536658337391580261098949286824167328213274677355809047144955555667675734114686323994910266464622152481333314497977658665316855215307839426250889870356266015146143280612907870019884989911369312549171848668238659989311648898070439152864643812014523941756233211096250261671221792541167470057253205824011171325200237859812316593826751691717955068467066482165818642209566498215899210832502530418807234070382434654885334526082909657306238835492219355528106241623033508598846184997495055164329486387067472233433777440767783983075032846717981458542514690759557475067822852267509227009662049168767806968535581849514832224094550656090839238311615561769353893881412522925776537000191449616757236410374699087464623125804223627340691010783731249170007877781014121493340772258525266703133309097486539870215619312960898659673358968700668483272026879674792872177486776897755512179300434698636592861393190515428531197773779937233143895221536302445643685304102451791888171690762298024193532133464399192970355992473657918287285830890410135652552189052844269857200017728767826472336172074180107676913516236040694351869800486476327294452265742556579087725777738758252147108777692616883770766081634757431685708898825032255551040869538302890563939375502014829097303624798056328710465770820595063228195143601834784145580404620990422470059506120024269236580393694922903460041902799858430561822497221070492412173998848026070740129857748705250479983813267533169897763245336328052264330012797631648033069026102754057556014888440189326374910761162108489856314165591869001231519134967327785779798885380775963264523970684010747737682973450733073186642558185988482491164872935679323428324933817296743927479817754130258498172499422327939508280547359728624643933488409896514243000016450979796232745979265213262308544823473510826808340857282422144202635224555296256218308849445351168030068874241574826925823147541867691467869388594944057191019947262386888641606027494968855751002131782850690609753804423244140972366369501565060636228062807204997649054185578704585091796365189437200562794377057245213696614963186146166040871566696644974564623936406960179142228675232159039710479030019345784158964411202162793258474015080090722215648735021437852564200978061021637909633107507865791964950086163449568076516526018009440846779601115644566663621751147123975319012142035030094045343140838093914289948552290258638221280344842838161726050743566628121232562311677017389629417805999368811573637610816705688914530502878303896657017120809706331245861960097531686022176696325252884771754851076773446675237535853740071086815769649228819067006756707805355782369491221559389517599451088363829627289302555671444368353274650234198510387280645104627270084987630149252649285261790777942882390859156409333821120133162448078799204642612668785226184763697832771680173489587154453972245339513737529140066934881839269676904501820569314563921248558487064770340000087903339232491203810087838842651195110431594173799260577956901656634268892517314404032205625946472130378935430712146829956709818849296791950097626619219505132429035401024624355061336530557743288617838941143269560003179241777614562021485137575882891191941735496835710042898853825672410020661138998473222723816770531781713387021439808758613688351104073394971379552476304544234867225228474640148418643789772654852260164449307823327109473136801942191406153489651981757760091264151816417112075471621455506370788598121378892877262191994394400252916557909887586648473360225335782011698889814126487111959273300405487665119325331251737664107086961563565521182328355045939685911567634087932119985445202723897498882958019902093118683678622615105505804967599352191868773732696846724554098538525159356138139652668412242464897789585906817263746312058858377763432191528767650732716304470894795664321802062180668142290112087163822474746236442430522974589593106603267710567654470483915838801429028796784098779729643330339184446405448415697536486400970291583361662590021972489532272380918970990859267378374762548693784467430457526590031873625972385887376926326009365114432452701499416031213976332834866423900998419727855670492630891260597123424479878870714916908851544796981551336953450213694832085376649307724819891554017981431430572058657315078215011712767628505329379455550121176741304631316969262277344005619287850330021973503689108025390324848873841708334194479459723268393294520813600472707256972635627271558177096931732030654500817433054505719439324795151731588806433271639512491351617389676866292234483449208508819719271569267602674501449126062402637722018442302636759514633401807272974409312357654159214676413804942608277299413789201840641226625920824637909173012591971816250177442559121405061757852637150747560409377454345289831987292508538567854240301352452658322453246528477849062897913218529469169178648652510672120725986621954670480054967552718230641320134874166323065559833932547782359554079596471567590279358028629554544993494024098545192471742023411108474655165027040756515196295424325878975609256462545082686228211262807023223619788405445563211227250952898666529503938374345046722315053523163688275293307446670204538610501384518259919909916400646326059791659789775183867034443312823172585145132611091447951378424876209416432736736652534606215128593484101171907715508680745230872032774994180508451447768525580117047013826270483008934906422833175204293694227507760040965896685974708620334728925952135582117588699465100971727602743296920141868411491747288141118695772996019608002812469496846700430341779578863397583421856592989593189428989067978067998251218903360572096585388638710919733710090988978627662061024921864393628651407464475987427374402365346636005399366298510519091599083326759162291763067455834935465368628063709495821846876207728134529442504271048326311766617123649015762805636653962605945593030489883135093046560946496113905134762408505622208726520606686924245431348046317544548945226862545512712409684685183278040592521842291831512644741265046815451269823009551376518641655283774473490244514448523900802036773972729735129293141423779642698797650652308496535110149613509328646661161557899456562763803740961539802019055607128798726369197840000226211578571654341862447723026873560353635463351863099361610590638602704232608119113144541986733595808111630391817845115190423685887570534006784725179386669383982760908912258376176093964121629298768352774037516186237047348604032674869577517098607729932000703728009671498964675910406404394658675737344458520480275276830592663890633585441777918514989651252013360421705325226221095509190454452363785897680500517775091226595658488401174439354768234307423008577075162999025861731049327996130716329668796205365021324854404566457209155877513610846529163393776781992534496511353409427675454947882582246218303832915970074625044222271075443182943805361481902151478336159171525992381801817894089558516039272677309299030058582664097873259659627145667210953230574025324475974807123371781259661969783271868820873463093617670477434675181708476288337326726623117613221621112478497258964621552428881661683447823308764642856430607428991152405359316714443315225785414906126772546477537566762144344660132243495087088992695999699083678893876824016766770858421611399361656047750977074461942162242489550891146437965835473134401898998999574707992291637484749633278511185751331805946620996365290943956314121078054940087812277752702701099275248696453651602469576295997106117608116001803383564012979749214986545607804103253366110180370457146405601495493854098598542152367931657925959526525143311545760579465233490599976160305257314533049263316767987308909736323620570509756855679211772464062907460110695567800025814138453043019370682329023203327618019820244562540631050728787777232167626010111824565698682471475715698868333601307607037746974270459470929900599996245989491930307506513835148859029415380319266955625500031771764104269563864902362679621641251459932358894411871862543561053514400608804742475442194988035702947535770051832209611508156408000236955414670477623834241752540163119214485869814191913214055299163472995184752331056415593438462594798018640901549093406323271580846752331893226636530449051203362703639318682521059523469622646657908982404539965975715656170223965855614423276470137710997179219971888933906882405398623268367378996485487416479478767774325611984148252833785804141999851983157437248166229197840972239523400766931055523800581062228150119729417459498663992379270836701820209352762268472305594314416617951713930280674718688184695314036504291333434495845591360966932420504271295956873470845157228489246112466904907883143284135412317749852220742053568803285003309610363702271628546443991241013424436302407171632837898603124767221343008332529663402114192184171429850322606902307226675517348827821505075826965203069689533725098345976966705931196606103737171530224895427908133402244151698607500375807877895328276239185515716411570132720480714571064879753300805824926389895029585420309752636492180041736556358699746698147128122978932880267304015362187954400852199569816333218951844834246336511581929801392163273196984171766611758266696391845403800727834462715412118302365078497865882505171333024853708599412481828188750049878752399542980082372623433488168709699637567866739262404189063394722097450735719816349779906673474279208072861242313594201936756743332163262896393657618041635182530268204658999500585806451385501465354442803230682577344874460972370185176625699088035488002181186807329668628083098980726073079268125640530760544397276860076545304568179826761586337108265398329730956163159566261876752914268618996802533956710664762710356646950689552212749724222478029310422915137541431993731757793780106529250003280227370794851291680478328012768459832531314108907380839629768012490297447745843937918669665222864877515725363213163973236944279591725172933508515634976129950852179988193021191639291370303153806684026402481995008953159297785586892029869179313734789900114351921064251731946067944710233172230616233170390986185772979174360358751367869925556943946664435889661843398610771953389382685176245845450329325895323568936989091712776048381028876728534919612611379503482657887835103029175751617800426532426358744030754760724051890630763021471918228321448541588397247969800581123392616653919047373616124454637695057924833342125764910238644249705478773969245463190062606767768642750804688533119816680109256764615087945867425703250245641670330181510168247403335371102108895851425523807969296740323963732046304137067507633159776702081993720722101395288106623430540256363373652365965532356120454442174180781906395248594214942247915101823016658067937257859120953934800968535034033101049586211688383167092929415669172914297671136117937349922129199337821638209349577979269260310570967394190700018351746762634973976418703253141100522164374468738151009628381483209529011380622769603522397250013330861861435852991465880212905624860273965110302708038122051830410373412415292577185758387785059844913469207077421174176142937850799920339093191742856054726396609366823876885459928788371309274960643021219081930556328304743726703214752092701594030500384540430583554886957379369246153509139161556394379570128009872637596068915012963953084304362844926085672462049899356701414495336342761998271920095294047955118537508540510995420374699506115809643703791292483763200934589282255107000077603160597481255565541592552175773180977586367575397963295854599365357608139344441287549560816395925610728699818058921871109914951933115079022459630410204349023663056747473158645504407638322913310510536748318324662486912529017254909085840050825716965800188386882749061882973658413575875688923884734889506684812567094753814112294724295249093248351162770973301680149059822038746434571800179142677902804021281700280478398948009293492197965951979408065291304518656154592146216401176770364004359799627942320414807820849689777416359876596215683817568253798299471449457783572557005841664956489569374323345255692873021772064847170907573161850746951097047538644028449378270820788972659949961652368584927636820895747407126320972340126584218020174491240779849009287949971305695900002454311888933597085070429822117278359911574590637573725136455377140770474176918807207080825578249812985800711755054685733795718717784825760998467175595847194424086895138833004509532078914047463400074988504701517873248771781715338125064384426359792717249323951351111560643317400570956326638711545954206231056801925067663614311772081103775842139993508789339121715424182063164609335881723608813799889954369438039571289962876648023157949597964881024705029606496430907320807272454148757776961551713761156457287007114909483857852943149376347947468297541112158398948992545281216653319659360154654277241787487738902570703144531961219407440801873133593943588316104046270902510544141166864111054877985884669938968706875298017106394440014511177682816001714252281800304395948385490854746423551422486332108416083571380518219610932238085027059298545237385464110413279458162314163151411962178395009430893512398263337859398138836204936838526799749350728765033068037796968223873296532141347074076424321215573510769874096513414525839993680587320960098157693925219077703953171111524481696266647994465850650706795030322419238688060501218536323361608361160036665366843031834463526898967307347633113672617285234608756145481633793861060748929915702975529070383760382848221964617150830153119553317803315387486242509712224321088099440702053125866933357861780513635338667394217510006141969655881006923999206147680626187246651663953444435184739658616639471139060118104088190328445547866852574728969740754926572355834488645135636311460165463434274219975721673874156706576959774501097509322631489306343957786731973466656251681498162680239044401471925119866408963098747919578327927986701375565140360543137385277831037088497611063213992456403970548087434705117034983241356303583400938245664165562447937465299721685535355025845376214984978683643497009477946387449364151881674840087504989196732489706447667109301917147799283862490869716218289709764155208279754583124132753530385918787836658414838835051332595296915234947888263678124392619299983646643671733631853483966210298429844330732275637509132609744123467112013474402764392403338975215754045914510003441241610650271619041347805955154956918224219191061290309098098634749947257995521474227077147034608980401236423910962562883318792342011068819406558061737950887181667017689056614288155750885408597531165325628412660609658593397597447747820829533869249342944207609662561873693769727646643297260638468074093547546310009713815606710796878753913768904955834212533637869657895261928528170198712875040915303336279626036726342882829125212826720481442896972898605808225365108914137749288248465243251186338586089465040366207491128456650121382206379429353705406010256491543695157730653051850032782835784476287157742335197672010248543546686385788946968999372270706187511549439845835625514672063121488790977465502070594177378326415703638589211292750332318637830781366651224691228865990620950673874474668646670094288567196850375195518382870082731561906467022660888689775180159703756885555106539453537062060552810415295438653502391223134485994209136805670932756146891986008339060161879724414653088153247254360965252392329511875930572773628859238108984063888427563131762289600048978636245612276937627682493059617074127654960676299117654593458885295898128481336345424834187313243069883470758755512948001418469083904102877262032631028832194825275879855425107414890911119337399302816269851351263533364261717907718684678337852478038453155859399633402423653063039860778868620406565218039911006647317012096848157182292311725875433408239950172782730855115642966578046517968434621394276454796184366594568677316266488113010051991616238390228121841268829871522449133009127650256333242531932435681080732988410742873623947311562792237222299345890046319947578975780791473490529073627023509940671568956604074777564049262075581110028344934933783701885455961785963074574158078393714221513919629502867274027642274285962647608022541764237125855439470268604251126875513922348495537464092687824506837011094514500492785967771520335836995198498067472922722916968995623039782935629166701716817215180785807058392289534680134007629111749156305044334354941051223646481636495144098390830918970017928561020878042617192658693664287998024650558132108574331358857572502913306044035522402881862857331190419141417410899496642089423983077915021010213163373463221263352845877138949073515590204324141997749355744261750071956568082672773353329494465999635825841058849691211031278244124315453358085504620809261993458160348560948514490420542115503706863915605253396148442252467007453471637610194000455731063653383131087000057240850009213610669337957621444019499413946389098713860487820482835149434253067110719444849379028769580151472910422138564664198556472014814407683685594690891695996601059736429441771730836996086188377114458888308445898195138798491591172722616159416254770085493928252875164178703233930105710280335288304454212813017716046825558418210410082669509241112266089407304775970407258336204745059940363604604507867165230957848196953938115496665411150450501695925531827257375237870749615342062702966084196493399945108069112873670142549720451826848314604112733898849177940330206643715205778148813147432953378030187834810969781775518176313995612240720610699879110506001850722167724816040011724448563382915067204559180263485130846152082263955144943483802593692402201028974713748715616088393536349028279153236723232909314105800588167828763065967254668022137575469765881033122058700320566791329758216974189313664979933923771996697293592195906314299067804146909809923584265491587635720068054444595935132324749891652816710946488839426698663688272693659261800478432827210475512799379897476392064919137942686878443341207878815649713235690218670195562736758466608276800510477870175728301284884453867708282113188435947432790580796436422216258495715396052800536850568647589723964067004870679833911023130146151114252398275307644711893211551680687816120657697280722890923525080081845058033640351074156969573881449399870123683946622996212971964052455232790375646637634813722426546363384495484692794635742308888373925408422348523841524963664852967753051101166611344182017604956832482456666699448662000853782403339716813158355448017785624918075518707137185691146109577396670351973126288823412179763429365372779388931663937456191080996888953115010186543795080611829921233136863592041934220969265936652657070344896684813554963386078294417555653778472479646598296177385974795226433710703365453532700847696266372097765025624569296816612831233973709871437357105309654804290884452695318996240468325144770251949492977681665034898441254685432627870929326776906284727294692379450479298423964540505775214432726010543893691103213043910324642135591608550437133192571168691315447774979196039365378301627465144541995051411394369453360305188231505644179941827404294405913704628862753039797685199051113681880207490615593054336759905079603118766625995460324776340864698101584384357732025743562372818500220957705407333170972927566683407999667016414683743317954470660015764584264452996807165785384616321213505253644793223560566733280910593644706239274271825277909191464152333952917142343748804939890968325085790395913649531317309495080519500349616382698299616947592724384607366776319987187123181748301693050361244472917332416086758911090632326366853497698680897227749200028779903857636484232104029826038459983651895119641442199389394088302059895978873693746633644259833644459541412774071221068496857233033416481270612669010309611036394022703516337674653090517981623820756539585375702064441588408655949473749485158017490419763097857685631266090342939533472800154845980907134750635337320230252839075010725102625757621163358515942384012186674154524532620544599833510001919191403530800047339270853330570461998335020054573402826338256841474383502317089352370257386359674087161634389811816641578372113107585157236267355396056089661132797036701447210148613393085645681557145982318400047406255138355486313353626609190867586621379241063337156260826984224778521652358758214749823294384969517960281340830129273156237827760989896685353734187009833458467934525970610702627865006205498630797218419546472454931086380254178277682050431048019986800890532532292909068883556633157182161452250154234689424741448090804256499037603888932286297176080600459722015481843195801972650705104325306295174970796772011636121273045735854153723458101558748582590014296886758730320914070081760162989251232507457297086731006010478144432934808497166409799358702999289413108294340469318859400232112489165817069721736378256196237275968527432937643102470652024519856117382874943818508936939710516361190648889080433509274593762036083974470581097771319047475433909948913494878933028962620120059800397944222234035840234567960871801239393100587390636287981523931914593847670798939194637254508631268836831232502521062266740565846730278160666024472295529030612316841323580812043563126405143804796182431191276817429018158318656436299975895914743611489414158468696582538131831174510022841683144952139687025936234069350526769816996532746752063548491191362188513144206571522167075838428393382319530896108294032580430846287679999396698283289724551052702386442747720278694588082823601636004002041373856311247340927030808074324125616506368452895747371163410008614693972486657077528043649092551568111779065053352373741162806030950251254466680387258836621549915129811867784928357482641242540318623850228389986626748176450821399720686501825155893449366224948827348516923032584297844762601766971416096791893933160778415722115243170294189767882830358392269176151778254790179171404645230272598739165562539273975741436325177818728778237382199503122060855574099486875842157623383764753466264397558895175257664863159269025268245195565137810260662582568152528530131862444982487277161719112930671838995633884521642474965861263968712969785027399921526062649456515605378025699093430485798270790560349272559307998953944374288508916158185350891534035093458229629331076850171877667759919793739342507598839848674276683061180173211349381605714506408139947379608063413495396492112067791304801505642141879369878499568838392413849449350241664437423535875906936387104291344820124405701537779931013838082202868433165292442630190004103802638239607181029661161684348015442799140193339022267530644017627225166315406853513257464093058605247231769724571165410400004321106444874280309999200611604967084815062250592558343326018222237796097358549484833397032032172538073913446775125451057222342079613580821304296708389472232885037881555467970346398230532591213611590263358019565647216696337595637451090939631155746841246772817214493761356704546269118514674346327126544207930618346439576654666927648747812136050177340734246108434169293808620981723387192036668046082600161278375766782384481950111209996329605754276228693404179247595320769831971368222725213094645707703696751051548536151488484797774560837553409381626335920731827723580457534310360586486150712582914385089181626133038585196417406677046235038025377811987151682385078701597302833354706977618788854286849164853414329591738330293529090140177587378141310560946262454645442856077349550682608808557205354335049090132264964674941092622480073852713697606012551304415017882745565993029542774389538560982963172831155783278630073352539550967205649188741905087828048442379097762224582889088716928301829425546249026125962372583179846515552825904322448267146560649822892705025990171847406502971626865791073531285880055769769939326599329607089343941148891327614159764372789029369832591704087956389111317368462687083576205017850157051304620546604958273994460460375678991282956830158402676936937263548667216527414934150518930466087824118543990935226188326655652987959985423323895545208555751684469567420487297715650134997896778502253181159450498537093214036155994074187078096023193033930734428015903296005709226963310354798135281599686287749043790767550019029635673583948605843363148295385121715924706420892014817205527616998233715988461832607078167808242298663078750965061748045614809344417122432204131931301152415352430711607573909485233886981550590798627607245317665572966082831718220181225293758390725987548613333086152543857799943193859701667385741495429331495753617757181222529237201353735957862900793447043768659024021035558721757430669936920548211006588551549693047160006294860812718277901503180202470872545741096007079576753272487282887168647382586303730466481411938824715914308440146685855818526550167869721509351642478184851813152554702935753662601426046047718356103687629501459299168501440453701682953930753052336840784352929000216138131961408484693854142388520881394336226951187420908243684130599395097382977225622162836887668999000900710623126059254494110315883469132160196413648746572980085693883890949918353463555875112531755496722431138135699721658287980004669791952446430256951926460411860241911799081907499591713285222360910012495345558281583875443352919833417437545908749223338603971661319054525229376235679885475022380378568097692682989773512322556642981383884150664840206015030175357705829830725943575730727422725786223764746446168215281389494790856593416805001850269784345012638932614542654605026329955690414178383798879545342876930599546711936353879688961767886806484914421697623946855788939866153273827195551237205966817402214781113387381551885999192170150054674320794734353246621843719346483660174828744104514673944953485477346353997846562872096957706278828490008015435167548898162114845379226289985615336646319349848986162085942127427807741524473039873364516570749280676816041313137200684965893899501377876929920238175907906916317484821310289585314248483656560305635752787063861374808918016039021854395716213220536738237439303664199358690601095124556839824196076091244199611294179485465515478247732109701921186647879159721541854683182706321150462824113587263923461880254795773910237043693014711088660670110420743246857436859682345938555518044016143916991795464369889484057159180122398926763583757007580166528700923808758051030528284309179021336002446894627218788301185909831789200769678137552833704182405501718961372031762153738111194196018605826333815951179752124445687184741422883181754685149592435192855915085656598283529461011295038343326669186848244742830831301749639173184545030954586569987404078927313152183694233686247959572976217331453264694227303651891258167956131493202152203942611736444354044382111210450679463618141607361582729647354946627508178347140341088030844558091751876269014651471084674657874538972478343271012555509138054520811871357226074153678208375852068650430911113131023082550818696875782386971775064502702900951630164214142502203867208563908980254249743962852243512177132978046694214477482880649141423409412398454666760657020446392826113019408546455926737966715485694667600379184391018911759329867449737910881586070674545125304283991086333896894973184734075955494196511689968383240652147897907095317931774894248853747560142515372915474047675346410194797315083504340170289226286862112087232924308360166792296606545015254825002360615290967498818525496073282324392888422689435895820880963505454045863396702626822483947722962027428226623427121361935211281171255390900264508500539572224030626234928362058439420644947710228064510743675162022380994946178092157170781745061285616742643029332212386060686478173589147606876957362920080216656029612725184090191717544836155422792111182259304135487427037888221126051088204453518763726646259405046696853421025485005119665791134860666571243245823487858155547858376337689043986844997104565673441841102700825027304414091992136244336277161889583174862271695658642958548053305138542307875033607542743264592582851745683464573833145026626607961803041144470066364914737247168015621514765649119157593236882437924311539200241986138847453898807390652678024223881966429896946137794073148925855560752313009593784543524123719590814858005368489041654993069458988222126076401786124201804222068906161245937276629820911495439200976418573331119477669727207144098811008398464814577857103203645267714130605022172949662384086948328422906398266463545558590934243478715608034387270923994263806721001283475350867816031179025360966340489930857430573575297578005821174995308914409325509856305172447086064454186540461996983176386832218694093452258123336995002768232398919612157298376972176547971002617715367443841994511266156146157094781031357067520044377200760882068658522094827382919419546469326712906627702335692770011184218296777456204024168227358192583859006578948332248202445448674922161051867398682772042822527296557386641054504628259947241515792677522400291714115989620049328421872904260960213292931723927532847376231960590993478944610283805339999441669700529033502360270487464182531028460196176420536468732066623356507278468633867096836884652211720801403254905683679561435187267867459917562290712495537236855227271388102501358504827013995990687254242181144271853161599299505365956713733420654923050821400758718276248585886462444127167789357725680768230743733076064556992340621642322157021827100390726143614473483513185533795508678174246063886015942342944247784921516931572769688126836458456220561819568732567171392178104340556322153212521401748977618633223844639129392347043489266066945030917995536742699365831623090870905002948795327726556245788567586392733012627927397333583814826215380480282990131009903575825208684023674023207782300683887544012881134496443177676828300782598527533645479006389490474717727605307556949394291475050343692971736984252852272597433033475366593588041442643339818021860154010888486193790476071090247402920734052798674823825842909963938690153099030999991790961776411562207737659709436224926372652105163749688818712444363914191704282937359271852045908833011757877802778762338122023185624000016676501926487069264806807499499773819890236656983178053141184228615886443240424876691541103903356194612293040246905456894796387787404940241630928044568399237270328862645415467135190316966819255850008076676034639136751412654810409232972889765822826833816276446389637310808582413384943896312107679445991388144828608404259100742038630246268082823239176111983131328879975511336735484902677985291118715591992848366507501946379624192231420271321271517771141249009620196020976459546448842407471078074252939641947446061161631801769909084231495090778939575115700154481336758761576736786471936315655669819417117815418682018911444147392647042594446081497217096656333783964582038603284620265216569092754953340531704218447508120828016490170868811724466418586215843327674849025185950154110686570312068405578126867928125421086837993199916351488492253863272475962614238634964029578059170553668557854223999228302534913191900524077639617608747723593019740166159336127093032503878461515395956461367806882673317414630113833516623875619041996312891795160856207200290868014213930410671194262389196021906297697618013183916350885824219758471686563629950752402834396574681188537390804920204802495493872305035009499783078221670988848436441690091980116434015894961412295827040629509400782647041753011229677950331202389388652903658869231018155022824855710785430668816736474851501578257826052364433441372984573310809859796283964372055718089355047599341001278708590451046315926937806533484155958853848096758757879626910598552634850054708632651887458097241538880002865642994956981638967204279280986774001561893150952511934962662708191828868136414911128691097147829076846439906213602448192320740643026154304690130536635661776835051676785763609775004486042427774809365506979141679256591022346149564445996587589552919433050319994519277596531721543970901611857234527717384076803771315390010392210800843623881380211582465816858069282650068845875191987345752409205342917028920560283780845774464784500309033031986638215097975299318287801552910444899964746014963852260623898996280152836079747792939339504475966785674150664339971838671441851707222493575237066810449542116128947928409128087309100804962357887594007994629872583815565551172062806219374786353785747885859126146925837543505965725319311387869493703706768778152373396899424803407576292402702738052381944817385098284612280461589092780155441970093859841391168558482037612598680031207951027195625937020260299213562536863519196749105575962808810152682740116612561267206631849877281024975507836194884247782386503525920674992531133599405460177539898809017657463862732356730391616172300295945484400927382430089515733181059756294952362642195793445296391133668659566132843191998660368227817003712246271137219660540391988736925597501702540136375439070675346439667491556867457974393664451813298590576170011883073241510351945854524906390556735615886363159676038722510193303082705605668875651340183730541894487222986720521701804715006919116190049406802410947330999918568782830832387593758845731464582854450454899213031843477751263541592477849572479899329474311695497890509192954501601425798473468471184358847834422858421787985220515148422635608403848700608762190005673819133181731723862128750878558374255592373867181157938340998356474744842215821667416648196991646229815564844641257956996632303128889074175848315249280249146692834351650906083592587035906025055024979842852042187322867191572730200509014715267121178956895844848168963644824326128947283455616160552275360521175112014711741526231712975386157578945092185350969848977007389013488100274120358454242988140108533594729549194010689080892759195243270639918941184936352336967412963328038617879408250901036994761920030469901981556444780543137905822238186455246923749383122129155686276623462621194318087735047145714274095502293065900910981389898471035311982081426102474815566360642312981155378230241939398870834021545118246329912806960890600041067107681185072530240275183413928722560952706925375172605567429595546603203338720385704696578285739953479627732033582367819041490127496146117682894825525922398949920350845631544267646324468721152996449111298163902517375390788582982823191587014468519543462856062283887678253186192521592345259932221072905088202945514306641215719242774605260041189664085675476804467475012387891829699664627738938338190423425685160928237625070612618121495532162369160936501071521744031950083720708821688687791334192238169409499603841223357765123666348752071987622977194391379935118948248440053137312537982314764766240796025628636397563773920642881565451285010823803981739620445020293605533702866543299450004281016529735513387859661709691747600439559681101810409028720048361388822295941995919938456718591341440582500546798003038332950176726297222501049957461443698880246507508828250487311204841495976211838086988427413659684027633953952585088772202358154504038256151682674670116841754526622620211475328646262179693778739520400384203987146154782007020063716199080002587759787783661365045147824666794844723314591759846152755935467745575141589236384720582326136616233102883728688814734893809737580126900706405471364441542367415555265442909584419677475299673414632409176264907400119119151707373397321561222312251459003533781933405753939774383117736537478460136004365150794767703877285034564179076022672533088753268285024460561704000274857452465285996427849837251228842208257297462320132355820146454785161733198667035219095026862332512050591104861332004539955463322257006716312116302808942119123900089279745051848130909797903974618920608858671791521305705370843831197625348062860924948092788486118647732188372795335058943918012399580567053612702435558507481693998086808743060487287110537598293667856594371450894210721734178235689747422998195072409361259353335518580213398568375555448797211746972643432677121297535454046646282066505097177307732443171637981984911077488548342259837065681050282379652483182605409852021632483024756098179399375366110489477718279422901670253868314426963561143250335488040036495272526001417573263242339470567753887990558610534600363166167981820823123697054988071095360287010371836497366789414193040810233764831375408293339249274597315617956085823319003802896389867160337038936807538008258173786151483329342399845219435811639216473952367157363232355891383403371145401214511447725076262303803299203004882782565505481752746586012232079544654428297916929472796128407968317670879877801035098184339439242175298863447754473149571881729966216488309515363523633817510652844787279898448542663044786723961911508511082368010633352785071596245788224296028037429493051827940295244152561619558388646694004682047553667735048900972281655777484477034613456834622787976438002620051656441221691556041571740366444564859286329172862778263936423553754508562376294590543917586740320487317818173148395876926815687324893926595587021927880828579922013612614557156292959693416342008536049920416083039254412834536396033555438126545720434087198441957535630697315623231608125652507960601546282971657057699182167990994909837977983479488551252151711130507765375377009444607935595509496923882039141421875066593345224127937128783192168458603314673513607988140023146088581400030630415097859243649063166720304364484362115422051002358387932313029515958145429141670528405084696549388935060741709453946044364513462683510326324944659792476147794969054113788564613433090657740476093427500343139814499512382596846674988996462632890066645951787844261825394181776867907051035320179226448952855789203770373470229125315940158971380072210988547121868138055512974069483204553506044326909380432876550863193638863798136044924798152006343544063369258888995075977553351971305678089613340017103255279745061517242110332230022138895582642951193722043609401956514118238344231570424281237676259201490194644010353216409766171345294989764717951252653850942624698920343681406012636137933939642265491156070033065912346374862005601474949215868638545367034517365846897067262453687489389453271880724742567770374473276195655016632395672128228271171374982959794981702395881525210022128010407210866394073286251381074682280679340992009411452194790654510923745617944775604587377867679154903401080293395332733342455328435348945741209014675484209191753854184079759143557378744309131720783782583397319635770264550572011880422229637719739553176093382719052698889768726002637836636859529346663339647002681715596054723632659766692945173919578534405154112655849693981403468552917277614832434827011051806701545736701864680140944319261134824092039711985322520547167713180042641680649394584038062502899897552334410646674080992563725735359866618816261863919814167365324279543028504230324696434952828147806637612627263067186787972615869277585871950477167717721527323916664050835022235226031132845280596519396664856094612747775227323898638198360200590189191612070313805581633515439078923300634347467404820389806835196259744489537467995265285905200031476179332108261975923615282655918024189815257490240654217126209772798018909095230189462456477260987165252638736075601990330649148195102790270283444128483751863222294462446444248035327332587845816983133851030205423353011453045064336043581932168409999352995281759180264649351289339170621835883333567295892339663305135441782508142513612298204248364375294592862004230013509588287951067877802629996615689852201180814894348495804221719414691673327610068731987140480171790236436173649852867442017830004237050987406697473911927212976803362416944502681511222811472436633290852190491964019483884588683023151356288561593366857531457041947188250052637571213842640060828630362474796908479846906063577847247634945555293110875906380866887344098326266692092032527615026671952248485305550143758223362948238530344335962423143522366333894315993834217933015170087836416655737897502998932114423233567546895158701706764147427235401232823635879433818863832846715516896391202695433320210910323178841296318265138749331849524108509103561177089749867544501665959363920979965901160019952546239421467285169012827815071468472758314808506242201891682008670345307160730324063530493571938304809598424433861842033433160451028628360201623107480479409110565233514394361509055141777271141072269063146531059514227873024823026090681150128891340968816663493921064870957712338995704111380206149417212622548123872578650403839936161224965134060655911597612188189098077480233456771864370006246086101191180569418076798627699709519348468303616389495087494228787000676225805057356201259354979636980605781099230727533517227863569644859392124148096252133046491972764047546133852612787115512172660409757087557785845644728053428914869346772516866474699454354551680282607903185024342594572590640627685405376070600789126905026289922027078907771059894829616380053586055632057959346812345072444936171815325399895623226134104327497937359614306372580335210569584258247193462712648757392142916089917418970529080391344213698873126209921334389218427710408818333096983116564548181437150159658486973739353537529198511640813850218570724960668302568093075501582817618563428246546133767916366028457553551764970650938271513112601101268778733897646311721275196618812117221431675808832469940096535831811625361325797198977329628289728787956003900569257564515253098036894602848821110008379844993288390660972686069092965146689821970273313511716141206396166569571983024402455432160284530684789763113064934691152346605459038067185205057519619051499824743296875623273029251118998460223520433757609205645571704857453647430335264028069137948800872471592794681474350063786896548170805296299783941757247349584321757337217523924136497148724760121308919896562464517881392599762664903035631596580131499090876245769939632109302691664626464838713151381588358890729849462125649529626268309896434688966384121195180156977785601483570409990787775521882918605708589440629379458205116694519644572377953650562630460247512400896359367321128814765724417704451228285284623189308178808272375085745343790482636315343434820225518479681732029841627448049423720050447941249610471156840947581699762654918058633821035792318980615216101205562711138748369483155621098023779012766650018439233753856447423334513383243404889735018433650838384575922699571990046685369717623077410562208898163165803103948868972420610941167624018495289602579311981607811477625823334356205901087145525560417401934843327098345694776736154846337028500906018629331176273977172669574054974736513464804380900606848066458498972311124161124580754420228194687129411612499632830515969107695512161378044806453851158422727608619177656512222986195924352522050061713143138823865402846914537733165000985696132149076237680983003697623401142445244324247556702380804888825723747691017802301445408463237796502060954536919139729390257878089533659686612738686794379464162302288538879298984318734808042411448710818806138842228686833604310284653804231116414970756543287653803096590417717199247793171406078175723537323375954773158537520612826036360575479414582347199225993190746339471081638355662265076025013026074042195223079624736239277549868905173789462955082575544549577278868639963201299779626172050433642699473138175438545964306166177764543722602133150431156429824238435077516636743356143499666416018344186809485449611438801655580854615680333884185530811675515467028114878653171767760208474742470350693056467583278096612409410773221766330513091953401781638137199335197658969794841869754354928276037848660842957582689517999049258562208773293012072389945362147225443351115877240635282670873820763682990905848486768134830703197051402610388105422199445902603739362547750263035147517176678257610300528776440292229472296373491733797074267216346115655432289733789876365670587763096115428809423598364053389042862804308340851401254078477855034182282136927925001653666938582858687159076962749317692405761659924284168184261901805037637626069603115273869809039581780800776977169657581021294910023247125833228881039737499855206698998962479617048420598325683748852319719844760181291444114171643177788145618580227868383020103055441608483070180933931168209205808823137424130442440367242796731263045193528682311708113134774414729592930496979982913116096454835056543750851533809881278973119481316162282494734383648962225374214615105651402802294824390173765631708425017086603881770243861306244932017511320185223883426570290208818318890598185138522061809002059076849013393900186659144848853236333760046158913514678373445194616471233198088188011650323041181574022575638370308001550840393151683196892582590932412447369182830388545336961041420352726512157214940450426336424836465581976087831921799173658488298869609069446529396832436486676398776138552402625436537670597927202400757010058778757073465357982683186550815238146065369124157337666529596522407098774269029003423498849993187912938736187030765161185808922562126472127118155842005688504506320842482328841369530965201403608643885138881148317503196619797830192017649818053303697316757323407632813939239223520007787965735174844296920244652092519747731475595720062531600495005938745642756468259735468615376364127269797129970823669428993859225998466489963622522430882915570232500446229757086531228602167444990176202110512756451025436508049339026467009215153377176715519890532102095801676797386823359069109051259817056368826040461593254387523562642047975271947837679953429352834089829394193564208688881281327418168294529860095722550117639973175243942792336035621779736005227750204064478453517702657940446677541659968544851959243451862735851614451939972633762047143623255535268075710102496361438486952335267896154994343165765999452353998489242847961458872377356531357685145448737833991955384358186423977230792251737502011552779631464695924291418794219175990512659795158544248001923568511918723705045413459165905847472756790502012144636968845828354376873776128222410804435691473890251057201534972478469968680381854474896424120086252107878044220247189002606780338271954701552042852960124087028762340735719412845171331642741721681868358951253355087198548365604662175225661656828935375890740332518243119600099036385189528936997998616863220811776319699084062299229059479080523481469103404263561511870570583551844187549127991608318503125142968161300020097748950715399458548055132546738479297024856443361137455685847168236110810636821774276390842273835712493950600259638310308219371315075830166076580366098812186642697460294921074666478452550687304176466024714977748795696943576177700206638055044759409300567417895020355569366802722235656006814640621776117542554116408853943722226390177518622511361386480187046399028501309305994704255434265457283005397928453141631412463328665641360800070780002114621646152263277678913921888050630264308413617761719996360233368796459733522210928368578602282824853207229208438599605752833741453075377736333553565999681577438245611592374463186914426764580631753928572680301190974741995149180466819544427961599538546795579527278615095661975708813590094692257284235309869499673442559998888200679990289466957884325153657711112014574315323999713777313944990620690883888251186747125346340659570328367751979014582267501477041033239686670265118330792760225897245728610914923816788084647231030596940128132693333535949503132574181457071970440509572334118359177397408160975294712972613179517236092689840891966925213905716853223083164731684670895527918639215590013508543913075959319652947022155851376089427023205512447106911877347198155856218039529472319117036557227117367105165693056154818679372407736276954020940061672150357810480939251947138718408872818092629817076183938977631018197148823003935466423703188294443336958062366566805704592009598384418461321182996900981632632606266729573598041504408190997503222044036226544828443270933755616685217629084994858271190032180615641533698470076555106267520267554328229930090708701191855803553342860484236108507105797549828175904774518812541425325788369551528772664529339647839728507504789217309321435383208592921788336599036506054188149186894961123130896603968907251331799875240588160309211501081093365552412389084178199968271391889710411662980303288901820451717367125427968015993270770958388092828532542817647573257545216682627344108003691734546011867842689417519348619817789865818025625101315789657430719646098835589380287567912265710921435993963416514638405943524315857502382278625231481771567307267105540219248543252476804564647526108557992406326837309677492997743818440016416755993937808066384461743663116575025317160386750718765614312217104808041502110736235023051582670345811396202665083835213766921087017825841393891786103478938474394756558441394340001015807343033969713572718344570916200496043919977733061568167187673769144848173180368927886546665444042025854101664807187137630638397089808786017687121942026904732171968056401977995240840129204250872019494354833909126631648644574354105413799266588180700905624166841397899162538372256616259578291433594916115625958446208764561307184200950338240204600250281172054664596469481109977022231781537104111627545776383679032609364563560102488963501346089278443734811381349633690414264383689731084221663284771675426785366350031632077004510363498761735459735009223318941922710415228630215246890232512540850609047699718624704988401573947861088128463994374799202174812813234604360544105923121959932582013610320171329036806903288097493946632513417149914677163732083707319624642800148779299447137632485992330820531599707865174854240624512487087645218925679102251064271925243952916256310445004567758671371239084530337988435140053866919524257326034481126759265321592829583987752255223446980131579120263402671649460134011691285229214196710730536097833701160578174091393047974361890894853542968621305001134767464208171746760843548332771627116614348889435832332032534693959991905478874039277187006794667609756580644054853113195852937274753196113751388552548806585948530063500842828564549096960587288022897613380745787128799450870754401773559776033557482714612459911798173348762528896400536594980970408596396742033128544287381580115228277768473136701935977860188349679052502920655975313811237532690988423556365572623642907139950805563561821184385026830817056097565073410271407540206782931200632589499405126639181994208664499900809188706512393688800729334273710979664006783414181449623357038622498786665308451535915383170199533986385716706236687827824778534931109786649931357529519480339906991665586216419970244174746984975089105537783671543866788508157234905891741165121259258654944962067825472045396129300309330451184578286830108189575016672126866585110654083110337028919232633258296586793683491347094247795978454456878558188033925194561770490721245494882779660497023421903626595940934157444734761713818948180863638160509786391318272342764672269234837457385483828179281168031371244980709363078108469363102686024217185498983559709241372176664270508427862828164863377872068706086824545516598719995209609834161274379921266054290674609592042109484250313350956148942910471559503706458053884048514167798228946395922607689378808642416686829490624302637997004539847780313920076380537634965584560189133578067227783547410692795923049130607977497964768206662209664355827164286732524990953333378042230415985191133805271885788588052747579617462927282272449750098678268109172343833899023621613784226497340173837631826964664276395249912700781684977816686961550611520349843683375886373460360083274076112775077364736823900964527593394458856637984560055412137649980370518113383989097423290958996192733735714004823908413595676998090329704431142280220618898134225452188039009773225565978988757936862294705268078298576317405770716482777633554190039516822289710098144409811662463851261951412137384640806375247003150170061139008200835248004348616534977401343824179542508683282057765324362055770533215397026113921644880478578392651172603790003581161614048795284852641547756294529291445509454784977789729111347468937274169865671078009015213422102328173579718237983567957432762089031091395341604502608169187563908747885863118810562085869376548497607254959965704973666365112568677971659091856959794820316393243507490762632167888408339799680425742351821860574937527269429164354545873755799837463753882490009181345809899251826166205048122217315327093989044755326316832407692573832527047078140977843335612141651235870373626226864284181755172406259435283531367849432313511858120904733678729476517269559337251783812184620311047875376269742728467944002804317224822179975406269378009431111354869628996393874504410614100492676345514256961220312639884270476117369420134978593606830012700345935942331601813437537333267138799029096957749484899977517111505644700293010172754382826428285325648276795277917072806410028004759466235547620826802026012254686304618569042212502545053407555474651991667186231091225900992084423426617972349477726951741190088549942948758180592100534912099517874430687184658851257929025721902167784385123494461309718499246422428846947505188624898158798216176955069755932613848299413962239641623051774805310990630543342571266116497047944275007730617138273438453154743419577138898968042870714619541273736618585089389580248931336401337443287215847913316891118654143203055830342746717062070109674423251115410356849694791180211597815494651080060026544901306855002486061972914150421804765852157758879009459156819659554448454647837194103341347630239294971671796785557235899996683194651515398597672310817065991058864459477102720590965829332798914952921937328393358227318797944324349352186547983085027265033639512118526946773706929645641237702516388979212671259913488671263967799277682777209771498972366792582193135895376837114255780915990253716107361279767749199346782705811168564614177169156003919575692173225024886014058042838921525694498175791355061558982169050363850074553121500940193674727812046300652176323085984435902822493141923007231172907456817121910568389187484437022570733085288889242521566102832789585239648429268640407411166861295632379477671621155126529390842778600086247282963546853548999249406916753584819315841545799952480135456932044009417275787340908335679484317070343221934228800004420567462155361507765444062146204125971760657778428921375891604724267747853902051233002580361385566318231239847400504601805705963131711790362697816605953048835272511579235765613532128959199618482662998954430237935474751504055922995216852198713900314312767442157230591655243363685429087068009671449979141253471167389727118156432994622821499741702772371313374979303409148319140238088257853842230630808340809929306463482626528523126402326316194466666815187395125550844207481884073060651970090857248829677416034883718773036986885214036119555257854995189997631305171073815228576791574878184185342490477143615789725298936922177795349229699530542171959328902255278450201887738655076092088325731234787254127325256810443819993122316344821234265227162191062574942762838982733409560803589679488105338965492444550769836547483451005339155754767803770170645636011555598054239379854399317264518700974812106368010355838857850765239046771705799765690741421010151252816923146782432607959600237867498146344005863695437634372592151652003202122675868646882782054833476866437866092138682880161919266993083015691072378757787822315442580349104090030889216059083258644914831931853680157956462750856853516990392978818448978403812421806860428576740747226102248157124930042821369606708954858516917570175242791718796374146838462748481108242736216852098156208465759706485419460555682530331175970356769261802115066899155334643744063268885801021549344603227303892936087960220037815584709481585996119176774089138311397273613630700390423583674260417273106214734927466370347573083784872915563135104134375500513497596008123123903478588964382468455016941123835574968165263771593479398650557556558772181703163432610907129130958258552082075706422775676667769658983883857745922701735000676742636344640336359054875058707515017368070501794901001610149334429557501716425541311111334442958276504549783948469396128687438133943019757090508201999851062043778878327669734722152316746003093916893961046168634178841467804828151546415697950810147268440099354718910923293397790519480918337529500370713882228426459565086286269785674035880383777377616229314245327241943331914055937490345305405999209340434240942735437361180454061509705607196409512685741562779951484246894612956222843245294775528026441255662983669223492888522633205205383001339716637650194187239088794739653534807979238625779444063972524316609667146940028148998907057008840578830610627423137381551025246235438257333520450063392951155021094698531259260615083846349697561882665950166410041187700111118331763649482993892044927329889564593706421323088635574111199749898607321247897122783008935933090437849011916925296217945996782744843288570726608371465854171768103268110907636602697946713652325277583164873403644063182379519726925358713367927747748111141720268241933448868432089861738858149715026948718371696715988247549931067933291667610350593608357151508458621198045581828436272831387636951297839779677061563202407188097425036846109340522246534927533730136289190449090309936990281825806362615014019952232330428354860441634173335178818005412735012612718401804947886159093550294983838156531784472204934468622892085752903680696434303447667104662752323796076892818921049491049713320895871517812261581546579581691818529497854768451252646409143726007718528230958433715597128578859242835574468707771711063597776252498915202554843535945526990695713224527438811769733944315668130751936100683466434493262178056503555807600239172725632370470375003636650083219047232904938683001359797759409684199114948344188056571224361101881545386471139205742271919977667077756322699948534964259049181385874601267126058975743282388811179478027919919039132284532760957497355552068756389724311283065681685134900084595018602282887561028247585502099174688344343599061444377860030350386316965140764726356683371620898211460890692749051137047609908115257416406255644106384463844922761005226312261126967588768297786892940725767564114114347435778039145950761631425086208018624648604675196648511810827238190995632994285136973844174312877632377271188890335263187601629163145892297338217684122257138943357811199664612594404345027372395423349612930748282991418626236734750977421888158515894104643058555504862740675313883952711724339500036917541711824352709891708424115650305728458755091293795575085432916902967187078476685530970198577729947621895377201484747588791993986772186039293694058065855444996182228168988649570325301679162978352598007656309282991383810294445050497055994711278108429113805397610482257154281062167672721186113001242621853499481360335542038075915711822047697105594262776410789036619546005965665725026006353463307933858775071128926630524473223352869317998172013935223188965695860722544612269339992658857152846895899446128965441291931288816319577006144618736977297770437639777157575650855185058255488546544742784986204771066237009229197097248853250522446877413146020724389950756401123508016637000230238743427296973118186961489549526285261691572563239743155311218304139557392038688923484425993692498002082867179751740344532191954034107958011025700202931328507421227818589269740512318497079256202274700805039112020808109419877450922182998930295333322538855038227820285228157987262995701276602633987311139855008244303620293476088361040620091229851205273058695706036752695529910389206734032545680988673562189960977516120955902965273174087955438185742696704791051028902227724129188349169454101662466611191280525946681234287125737495238031630855184860788538216331367717444430093942258830689481112051030141220772575859448417473069806410547865698512614202896937091329796082500053286477630483103585458300005825377550860798243918120210942636249909288089271515890560565563257413808068668220809511727308641265437771893740737888128349344266017847245295633233608331596008537257110645444329319133045485005499354079691672542182070671322986989764804862315393853032379875419068268487699565862125138774030121158204843132391472078377189218792978086012995583970053100720501977077244215205129231200330072173540463794226301736410446885774056911708768527850667679525554728080379442075193946295066261103473151280647364442304885058880133852110553729875218791136671049163100559913442445727259797500950781216321396328595623380393906636822711684207997229086011504040370582299616745673692162599706708901921982030957571150407241134104533789504325108122283824217779408043472893483886652749177403438521899408483952632845672324638900984698875934652885612661136486401834242279313622832925695889910037950787350294746534237230041361217021185360467411809655971813645675112703045876529318206785884305982143349023891282719690243231297413577482205598216497553634058685552479657186495294336444529450820601005605924199320253014182329107835982558482607892741568981249486020085347372335743847572194563519040390942093874178304202901849733328111023062028226744427979630154938359304872099381571067663190775468358844815260508527445192732540098724214802518966273997842497882678951369895543689450431768260998980365965148322030526476461031112164435420864510058747066245581235304993210525113093816623273575068005706922093888043881624368283786292751505066288503570645087367724619190165367460938363695639401823199304458605854038123784013368905245880158397013573128894319252984785514530692876352321054628205408756775649654677510354174387390799999574874750301482348796938671721443038469308035809165157084567769779591829917210642774822294401569513483804402197059823153488933112359873394458808453063931844819627152697273909321839509207161275956073523332554356331947806702200479977813414525659749794082968387942180459845606006744980936181398281345047326313505580368519365754255320876280467103638029310127831730847041051312120146290687636620215926366496683733286558801818272210632908268647122870163004723317469688412996413047517027240794256651676517738546886673185038646140243127257567984240436047752877886689849762041042336102196441281370688405290096558265415584972041420955749371828273120556607848333626612911442643946100638617972404978971291247736265668209757501475479973102470130632377007646246725652653889169450706330742529851595253929668836920396191021693807743044485504619018478230696347265342653691490127693937770966347878438249839882508450009326174753490124502214874706108688619619621960408028899888921442399941919551248620808063858714316135003533407447288747417876637118691389364571855528391696449730711488667616301231245566350668408320210472839915581193885367270677707148592729158839822738150147151969164135602775750602190026405623893271647992180673592957286342744182400145382026504946438951779838896595941665405704567493183547403365733733424842020921485255348760881390344446701215706326340735298824665397879192805783717335389109561450910796229306773995150631859465615927450991187815222141204394114893755544067205459924955058061805475450854339140629850172021700061267839788503981514595514487593165615266223353060119411913028176798242553170135850691279786873281738769741954843843969186698692202057668096294144204505090172747485664928691968887391599742211123451146456988776379678572764049754849912565085343569586799080497075106192093994234050959654161975600218977967003510589993459570964054299922864067943914549253292942214065378740852939922552744512460110244008310355418614148402475483818731134451178878334348152694233131339931182096375528573486429957668332935998918014410668610071187198873904926018972195757098643420449931263730066206088741036034463289904317341687225736454323073000726356469175722503254202633116399737108954867651093363557464473472467868264423983103595597348928762992697453215583094354775483689945869071752551666449149792188877995589283320668804499323307528108094347710663147185557438747868712643574485531429580689441231018953575480422202187723712460134696488119756734766364232704067059730561665932412068006081967844099553989151975058755341137479278584584315917539655364042301090520952390271952231160965407938965531352635147552369867094535131092958509804216453576069810392069742509620882337386132255751650753459172165417809921713367036732750132907539690851874695271392260478589609455268443620620339604573906026017000757630022083105484569990721381405802173816209951019669373075943548408314851100724040075241313077362452172064464114714636893329700618964300669708071464807375540756077224229484823173424766859477000727666361638687745237261536079150383799554736138291620759515615231556772010405880104248195651971882440122371030545052389827776876029468954978702877854947397574760345312729359445986863083996679261569098430145502786476832174026381065610065550252510309265711749545056503503787851932988348312240361738833016837946967223629361905535961918802732996902567963208871812282947878620443875114567156317978102626158240084360404119219990148080308445062852282161470229500428192266759430152779164724383208734102575219733920139015294193436404084691845632249646969608441014086696019103854757125073301946656187421317122899493139559108500783207858118419257407695048836697352797033377219388750125046919650086137724721149530696209712474437462452831575545034407637593069153818624722421985190940358305827853369284029899043050729671417608815310518217589936862871702641369118834899914428380513090917640302774445319225805308664436706370922951243156630207711728046415466751554091845754538794705558728934807425718548017927272958101465217715268396600143051902111930516563874981256062576977799113728305402954053270031232301545003904956420374442382029963196497138287480067432712285779754742879519299041673247452255476608094173448759249567049892706482260497249092329674564304437666731246973006922838092714769794481708321529144392612448867561171102725619392441621844795415125745511899627337709800014358189842409517029345076224355708809156667847004243743626904897671283047333851830855160915704581750053976619644096258775419723185542251709495846155635694391723182458279879142597310294790723435841459579491142047117057502619501042054995038379619620666481083908721379256568314104502892536877300137646844605244295019585368898400979685087835959476307901005824628911880218718142029810910099823601737285662180925485085979418733144493675254901197075955406173235230623511954838570014006909417820281304030582642232672562433314616575941194305886077145253898953670078786243115330245159115447797783348444277002195510461988606312731807704514787035272198795149980217633531218208488706875672201402815151090698723171672717511767841650518810754902359275514195690815332471933140577088123646710919400569351944709901764773372024912236608631447554600945570445916657380952304824493274042900710685720018782990707142204933713579792782566900051135018682139181316031593132982349784298527051855911774423659334439611829581434986963698835073445252205613419778229625719320449786628567534309020308929346088650233364668522934910103881021353745773051015585005904176630222402313678423014051197756215610193244374126235454770203790650501574843303743837919163190712141276651462705711161860560535147145373778670511012428875716525326359932322003090470482652173362551228599512496692128236767450193781357453424443725567517019026704027651353592849276760708551518562310792637746128048357757200772218736592078202942511686760393959793922237469383247820204084428411690347953871583311850462551680478661696055363534363240505662387776386834897575302961518240431714805589346179822356784673985686634704061176797268947106962107915724397716919830959302053632065359177956280483858934828373080253755624170280792267168545143632989502704528817346388184299319209600443427548611107191147650368257118024672874531626462607348272278456575003919178044696745667632514851910314911492588271478570399785274313679790786564525185917446705740324278903825640384743410606674455933343036744419337073461113234786695167240424255380723080123471276854811258208676352216299046533913128175317810895861066992647438559152225703577782100299515078314151092007760201915520317490300282728194393068626387248300010660193899472006190945716227128915705645286964918114047622738533015982848939326169681623757154165542682398967399818470150178287782040633656797347614117235957502122334388555433924383498192888041410970657963021261426194006087901497850000223711206901887723414107263749978995713273548658126445321178330716143670379912439792511956346540486663495399665531211331867494504188191021870589773737393224572975461742780845187016823597060583995222188891876668672660628042595320791762817959205115605082455707688745392058629295021499378742465264922794519772112023035549605334902694289543270709413473635655702343935109108416472096771429316545034549509415416147759615702726734879678222760384617822096216417946618800755251981298343494801493958615756020770002441236213222350223710292841697265046833819887540937898744498775742860893095547669355968711000360071818949883068135388671018007962174578517159816074868245326814437168074604456038818406195474971228287812403538827664234136131269980020903315187090012617817356677751504999188982900985651699562227826624437683497663898983469881001993844502006840966113174101065019468322516135668079470861140537573948827257676882140018018254726034003767054360511532261617299682843046945544736184700240756107439363151134957762903141706423898116526285900359425919507876139205476301777305511175059347282277567715963189702934863439257932884435132767000493202231334649672759806606597020268371804319631764991996965506191770403252502200661356461469492982597279695902673713276771443559900262632576634649755860007355579102626132308108677820658511273774142628584554977750292956988775900093925343384256574005423957635169824058921706682772131768800718893343274195149080947586413347042283241660769329797673984046290981046880364140596909668893434488159547639388717603917689300792087042392580332382032606348895924028819329502840680305574629352381837962940925558362024782006157972486399402735146849300454842630021597471035759559312210384277812902538314768190110154756439922950500967144682527366115729242570673495504285712461290472074074433541797953192363117372257826394429221852080635220342022537052276877378085211085193263323887561536237310784079582814891652361921680907932869424299835210488522971308972888753774052246834756330033118456527828355316534618081280116812364013711421991822375799556310444664998786184855244597518397952725342889932986892314315469006367749768000105983894485602296302568078857725294775158776836699123770205999899022762716082355381309005983126245999547178676635085582069797798352658097178503616963387546218643240952385824955502222086573153801561364401816878900482878362217223630943181113490643865594570463810182916108466797254493241031034463912787547558275787151850333323621463901308979390578461111464024621860228686037100670255173791059016224038010891459165652337146152463154011876219074461196296311262531375149941154033182083294749784475843007396803193687722100874371288858670333782479112011258828856508551163607714987772875741976723991198517216617445638010850091546076699453888242822998844112571830091016480410550900910986408791040681036064813977800116302766783955215339322279145145966232083766545160145254395531720411740697477083773364777303134644884191816547070182795759199878254608247002257167902394488719358214419886391945643201605721752052804068062157617185354022447640821524252301751343299529621308277696751293626216985239121939147155037460813948080866012500899111937858651352738041114691942997741103303389878146806170267683754589281860082394259002217870801295079087049143341190350404956332299007340464656863746679707057856570324972469923790176929420106638173460719168717981152773697974598795742942219525358519411623630803164224305661117672015982191336705916329468247606367663999801310423650857743898834052791570532636469774438081364195239228752511330130268193541263250093920237839512776786633739877172887774078747710594099533619224557897656411828381730749432529301804629981911323351754786236903761820735990809191634437247483202991959251297173643549993783680498517082877769654658134792914823065992830521806708925046099079806139217605840797869034749468618423670777799383907208040615317557678033138416573204169286445590603498438884106986991006317803887709733628010169834251068204168569653069492997886885804654401444056677484432019545198275519217262695075350413922476414864420954010995738478085755318759659256514217881791823789021538413917214234031886045795215519645674680038833653406009101256900324397282116766753064229892808675355779612463355247713424050709041134335851167682184434744374392331525801238224990171621609781047816790076234056231835934928499495867857728895420649034361051390430145239725253806259155528843749858543528893591095721085369072081453630630991110533642409052913847805630859375237095854207903241326224126763001288995983419967495187076195619227642511836198390146543106738177802678561932099137034701504732016862486235945595808423342378649862755617029930843418418783126472033962264594973828647300383328173845942578988033827579736172765513988167784322255176342547219156920714632724970887510396796230897999743031666324107775514232235673387065028943325492146125055635603056568021009897617408297146271437120351634752584947888504404153100327025560940088562257470342640852190975362354769711956064927328722606912675218874273499211381134429186508619277972717139976172357281363218252130872735147547952495878808289730281872299126814743504400109693137796983777173917872013560146418679609651301068807765389949915303678401528225953843927276973542963584291620312826123280711304403186339733137321904464380049970629618537184763228309078244492803741316543931548738155173513515680925054441935237049948653784723542492924209870793827359588674621989615291286485993285625487387255294132645848843163866921933597095653045629948901161100650166344801549982340075433637749625803710647627995970464580505883428968124062087466219377351786034548185147137605751337656822617663518329819836709757731165305656429005794914756688398527659786648996237862022354863935551582328540436298260069276130161496251353195107984629577543374987163205374038568550589735823927116644083778759302551092362399537834212401067863657111657676581024380390337798043823711373953799987394725334430281948105732927026922053840402416058797717476720226417605810541821347688857196828644690530819698197180569920375988346386646613935696344460032828461377840038057849956963232178124888991745394463649729981921597682846910459912860585228452391283986860720986798959979212773671996091432035913156839727491730924984259148309350586020525523244847767196295319724206204184998264526681377306189764846724698714737482042629555306528503481467819186922251036453972554448589707002822948424139895505329756974023855415076167670268214337133865951527547803860728921357869820604135766203826544971708194531716473830895225869900925271825723020577333279148486654978556552503569336916368195753374695395446309684238311167453872604097101390826822323641231768389940987035082571075106465195660242513844386822977659941212195634416116149847552092719015676173919901737904034737185261981618493787582637235064030407486428135839962376948081339488946233633878979488643293031952782169904057070209447116616787015877772540126414372405511985526078788350877824138566917131168552761237584908372638977014568800225550035294285059456142800097062999083174630270363392950163908675910555830126310882463798673309387584185078452848809903231486568085436223796792031388902801417008455296529313749421057436978529243713169978404873991723431001370225415770958264146972904384817787211247908511953894816035167530423305317154920439244942597469417569343808767108381741160058478155931092182549120561609730520337561444087271764123358203031690277479552447086466683348422868045974272052190477871842905436428954833681017687199016177785974415872648337528787828693947882550113828508215623544408186182976429091757001039344089985114051946829827669001329676090102500702794880736888538763243484202355031001336735372955319658232502872201128194297013316856840612993102049565142833836813293184003928519431296083411161324859926947986095678952715476001363320187821299652550740337417780736960944037026800749556838483287726195151541222247836703279076700216647924931615152201376487697033513191997908386965149700087343789805063079324407931079452487451415542236331595603457789558952770517192804211061457860932215257387950701395536402022133665248277949572809518831199526185330370078080746324794138149692130210270505454545982862564546374094931239900912878015325425780240126680941197320761250798933275352875145983883489209339171174197694066812788460948974276275446199144000657710338888435966864772513275142903117324657264700425649154940113218671112594024224454989798783749276541992301810120981687410691925362163647118487850961942626342026151407770857478367449146223658238927903989796180992391247114691687389251285850345997257756380708311297408341793662927510097176051799740661302777795487287811750367453927419679499487738425850459513875437812384597577984979430366185139574153614613891267021614540620066169389071719675306789283342771285796617303851699795527946216033830094356484059975332519530907350656290771587773668308466173256670908026094293932027165015392649251680934909018187690121018312979901274206600259337876201440125158562206674045707027359307853994946002012873086750694480635988589943951058098532966705853844263718500629213540964968154859866371657203761974577654098717200837198538347245725099688922544618697410736575722159058379176923573733288006180119803525870806962290225820783132056115053471226740726775927435235517065190589156492738529623704279887138322414885169136434040997813847845226450027191350054908576935194447853554530366903455663550631442665243429938316702151247723414781861278483143256127518392112645568160729969082947734293654530836482102044948715544250359236696614571160767681557507712547735813765610182460725645047714981850133256523912735694458136766327258991709362314536618284395042047109496169189766331353811701582962433603568041593439835556564049635435893848455195113113470726353360762403215314956064818267018285906782336786561209083113881146089019625886625948243929021543802182357212994256829436024132006259483141142142038993787378749050883103424395489756729539997876292586966822835762607407556418435911339438480266743417484510849408402964231918779590400447280616329772269317769946547597275336822291344887575756184119787162984409810603826829269385289968619937027052233369625918268046582922489470089418774667978657094256795463070427290451270804512345419779893477308218752642704081058033099586737767778652315988793888154850574632595828508864186699156276293946710611003943789107027642292403832982435115156662380471229606549081320656501036301800274027830098325082734931977077486143339162511928805097017987324613341827241807591187924771889520474502464198482039307751622815091897765723523656301188842737311139509497961306061489163040578541139476796510056907730123799687988290326384146781429027094631048097546917545757188713664913096675559326292945424137672387376406795506208752630411081263306723761032602791264889465134217007064882655512421024484665220593160482615256622151812648843586854388213228193585658156217812611236344132004084319582468719513390772353334510085884740035980473876501248151900070562144680970874435249524568884522461218311861095292515841717249164178343705921460870898014516911651098695084777068162231721321771103313027032029932424275241269602325165540217149764349098242637763479346440173239786431176615581795188955607526752267655941351843271259912426416348559156256518297010695595597838075886730995242544557256939165618282563353219076513470918766300018988349338517526717984494081232616976016289611487518391734695191079791085988198980691535838343612370640756690927932295844103489458230514098361080175999932624723745240809608412290412021473885463710597633628796923686015935519897238264751967006488558359585660305076265824941860869057028437409683736189891142743784734529037467822778487728660978419097648138483483401262349675963109717987141125316094171302952857518728983556938346198257805827942389735525447414280791621805659055292950206935620779306401141234860436104673845029140143528105846395975663907464056359766068653247908647848807129483097877814979713075069541367600944750994619396208222349912706921801523890434236434805527136834717812542987486733697173566751982027777689142653373169251973320911366602019584509517918490036247115635491245419166023257167655270123027622014997628475359827656060721014430508743944552430913607873402029719517732289792295002447170411008319760559089904928088314910009685904000724026844449565271400943285253089612005758593301463425064450433989852242613427670201479559207160471978253018920911032065647943948596001948427114781670378370858610803961861610458946022935282903444519674938451097973160549535549856758093129790121201890922063488370109861742178833864958256288768579872861171556205042333544492279809994474431950342424994522046704727191861412884409384876281026131277975647738805130989187994674950009197342101804391498260906389559195703930171703621442357985456850102221363725783725134517783825760254850329823491779004812406922521998681958294903807794162263222309560626858317879146547394770742917022571987456950860408765198460353442843638881095234994242297894826195362343648250796781431287635781769925926996122394461786896082210812472244535288973923223146523300222654515986999282351995866547766210289156839681236405653962700674860712502628240230536503314790245904475708818800331973582087282054773296300733851348929336240529488715744007643628910443538791449728975181497902771772199660477668389458899375655319287186196431456668565837277222489346671810211159400156131523512340363851652972225276931555158497139424674065578446736678803763348968984363681325251119951647743947918528255382666180944497672621287287682206734804146294806685508611669860700451712584469722469191794079675960311294658418400556034613546904962465634320203999675152953540652998719824013260076227476728040292739891234896361821141756090559808434154992550524582149525519929679468937916276785455672365050788806097442566430523024589430106645120064333325235999374247044651163772494001856022664912713058601338033056975442574855977882793457822140498150985462882501399796593086616917704612401591922113634136676539559743424778364426544358558535557774471189204017168582028520213006924633671766100848556383970604348566749958218940567740489646895613650376041621536259741664543528971703402598764450262976691718174456756091330554107151969764343127146933308539271928060131596729895240720263538087111831158878772744606364700238254974279786412796784885952168419278531060617607274912234291926684147955557347977701604773093480142358128818941660432559587091707476770689568179080558527795857115342223607334159121700305656474715663427480167304244026483599495161893253341367548976562153922360893905574752151751616801206095632954345768863578155815882440175308050175217983700762340384589416812539250626673675145935865617993318616133760141820435463001852349322800868820447480180194266702911432564493934080843833160011224654555640634236818467542608160327984223382106374875737585119126510248006088049915338947098890139081414771644087526532922259077678308562465091426748139439496933324700217652251066339690019076288749574756648058603382467599958258839161783698092906616917805873075289891962925581305299354852043151691540664692718566602911204578474254738927819265995138554418709593599216524914327842575792050782139714347895070765978901988137968685739768827763203067890658403792734854710617640328655870809742070269785740823509821632388444808211937491292851219292074562874888359927508403005760044437296218548897018163280311267831593094612967724569395904556043450470505082244755207353471692256535955147707295475002503453718027983042473448629397369198006617315739532062300548726547510875624622077869327394306958764722308951632538367016501810527096543166741075700851652920062128651476873989191913252489661054668349168007791370704476657553334805074689549983859131344431704377663737612999582487978184430747923987018195774950995990481593747217935383250518318584051252472288037323465715640525460255944389203297936827624253453408438730768530626035848923671309583112208021971004503006788370737139768610676632662224707450084799172938523331098465433295928396801672140070033849906808248347036007817174371293636538899863299173827816215117068208174911853280646679573740572418074785257338202372419692721205780718136300652407703290352046948319453732488353601647764930925575363408648291500363897736693046188540994225569535892253786243023468359294717611744615719243072511027654684285777148818863953288396542023266442964236359549735356481611793665043323114599695313092540542736203463904149285281748408267094848787956515945148832487614995485337036345986876489674616581684698565575658542867148506601615829854844262213501510845849680609981557182504090277983041367799903117766086907580036028215745008016816542370855918609166016587509787311647454969653366145655289104028309495968426405577210315686288675489249874151071483122419042845023567618524442686268682712163253980041573833489862362416870259817657454602636309660812576463086711857895987168223055879192071988977837782968182648485769292758319894907195507272407045056892333248364764146460928395796840707426452881049561782138192409013398335732448226704713229145386634887670885340650219082688111846868333861397730508244301422035789105968243220477154712525978723201216756959393934872904031459724645469297064610141914068271894084196179572166986871790080381795767782844778979291451618953706616245364381957682305236167266472743506719954387965074917209092087604684199211565048887047116842241745374348271699806342211747102217319086846700545164148644022050163615249164642137521606837654812672373289302814024158135438311489706377424780187193500018699026234819274030073418468492193121793150995183116585461001873460668191400294856167950035194129367901805503940226580277331944593498404508307474238628023125287808558271081605298120575541809219115052055288621820532284415278883683757845419296254384945302622820370248293948200608569654130419768816176624573416167569874641860564766934058213194115156503347258773697168343311055322959060422246848371748441357003168944270481983377692013989755855031366966678745672848077104382819869353050616276471635457886377926566619495944322834273116947643615131212821502891137666628804812333390348380898265581154338113922822031766970734708857705266447925588588519383585225732773187168616356357011591613838990989851109902241831065177862633196605076169172889852483915933435374871107583526843495465777857566684987113852344954467136566949538185431430547393492023556434519934361254778206539657507082569021281470324921343376995892184633794456867252559618419449178739563393343135287312404394309406652903686824964865687923243727130297240242365565980608014057243206259952571553398861621958461756700926431270718528035679620947178856029157911079874214389321407117324999803746409539883362026854687205998022381094439563884089385559324797406596080723851193264675447911477905261214740784253831200816649362029285867511035075602873734097191064913580947052502479261665012104542987109357266606582003793093140282926598760469040332315741675824140592440914310190681689214438795612354947122673162243800878032695665662217358480010624496334027254697595665503139369151497763850720425209244503642439250466802889884934840095285476947805551413768908191214443357842319817197650869254750287588811383440976949250274868674671632916611830451727255695292844534057294140581004113394041023113420393974930457477569044241001377753317013928308033656769587239177810442500949794410920468854451998556065153818906405625069313431074875981395428962717395759264518488348142761036636590867389156360216470080135065549756221173087552493786221283807181602141370240981268892868506416924376413467422562342039725551962625954503807571423890554617394498060638258877442599183385181333665077876695099924745232745452303038730985137189629421821471661587536495032530169737094476019441354286951342552394028921751952917844885607922069776558099467518266799788098925621734843925400286279411611879025783036926290742528444858088804736918785693842579479954041084773956627535587184486663260995611271774489027951440542531604657419282081298565244921479089580968350721286282696723693149279345655605211726602574837393393280689125971564273332517001010591137549855534142444326108983176393952381970708639608264262224620942833805057675264127175372897104310755777929231548623418122432415118680800018700976593652927621122371921208141741090576586487423950113251703810392325023082080451010964580041536638648200423267084862903930038603355060016001655604470349794648709055366718221655279255587732850423167534236864045949284285290272979985847015529338688920572855901120593899775695547616390285258182947493279532081731937109606108888993772426161341924358203054689235292015078786121192354894004544168338719781287068212523215135131733732599307330871346470435976922133071151386574920787409994195730507261081148768300767991359148055833203686854683175318161825367399045295530896054475789162639935261298857596119428724260367228870440324060289409102969599547366833805613325063145995945239113497706539574955463501445241778663635442250158619436828064234823254705363548114718439081484395534320797873222867478926612648985605929429044370248986842525841356303910978344487276412565816714140766325617081862491776525113065070482602509467759647616695274732182493737656801918783877930093560737673102108814147012344897327168312011787727754659411610624001358143871546256890800099527868265560346017615985905849783837937773294311571702280966313298278442538361547291885140933796808237610168917599431016961644993432761689950646440983247288463421129764054699814037335835753814994318968676908393434095206395317761183345989488360899052551907209022664755191540045382066598852784506744077919816341273328931326468346432564826240186556623561351539728856762975518230817739175722165871519285310157677048285663498770643743182584482423034980251632528201794527118306608462929413577465432255829814026015907024770624225038387308738161707060689939385585179210319891009992664763436357034046093292851149145196519553173735762839009993931613792621639626255898181432343563061016810438251480397681487904415447119131151760101195661900835422456598858464601939642836587713357533835381103160192558124955634553857403190887203158724074001103382319619481473030451516792599782050457591773574724176110888760741178912960472238509181016256834170188104393065507875121312148432065801232934920955082268037476904463140018432231059491518957102343253863693682005407841429279927293943391666360488704621436018961712259113937250312383918890117236458466184909536313995867968976870883138242372336024866673675685422030813351199531564060126380991074719158054554356853157279338907188647719895335264402183618412177126251219807498773469603115485504955301819100609383398713304307442993227228262760616422284644810919733983486681292888690101259692194995159197880017081086186902834492400936000447592164935543785702420463304650856838084477312452400977117848941981689044993762381557677713696405369848486263766893929038768013778297404076005497149571875240404477600716094766119868263689726674975179670135983629502157635409721062731112343944197345583385605107842898823548651908121272207890864864596251489065441630408624459192414050072859930480449763110820367934437300581653052020034489669958049575476620295431170607070904098814589182310334459823274297849392075108167791590634306289814534753708774715887397595066498430920072827146466890724995564978641186605125494777863439644591795240522591006811718338248859997908154652504511843546195494488025921281196836927275973559237481349349342350921795022904461004134024938705006543925560450665311720726341265890332182185740747382725069743666254847613325624816261056177051655427701633772732333829317315026546216104480004018162417727981457819490679979023476380634840372125560159661538465050462759355316866037454867221838856400561340304661042157780210179460164529602579448389663019281628755992428061513691833875433132705199394403501589455117090246487844771239894974021687867979237135611006104414402417003560472109439501732196267853671108923566076723371327033942990977846351169062444370542598975548966930320020388381570125063523059709524408585257408946599905062792557781698650138226733348735213786675080019345680186223072168946480851781322836149709018764257010879556248273557701139808849951029790181877807819070213451470082116222744445666928300195181739897778493142712599517842473681371116193996532401373621958794916108621230285129107260188892389762414707146478773228018987410617224978980200654195332431156180625645609953333288542549349782802117508786373083838989083621115232511181123261728539694376680017804313659813780138358270449108867889990108000467471858148861214539200452964121746884940224364349502008367110499366754596658306221741726824388185964913073819262664247147463936270816400147558568039525549544991049558464497662904553552958186971238353626489554306876745059961255615197000608669878817928380455082644476378765307003187606924566566639510777613875279650430074280846495690036764658092510796243488401647608164462177432204971608171836479844665290178956762373404709656566222363204072737663138334200499357511618638044765452092950506375129165069550261045803262623548007694020037682294369403614201320270186999180933125903930446511320495425520797416887465376255138082770680902098261807174237425294630351759146501493402438886093267842984130741766245226832277212728149773549923973443856260550635643645036879631806248054034575657518034821228451007867101296081575285602431845862765555673715984279417778324263193522134930060934337363452564190953492799272366653571845545841796724232641910715385927327917803463543411370228684661132244343607876714357535598030606773052666703307591304960805106431129794443543537797830124321927275040059524243517809840441763477151430321494343237914744867285930558242748411050497181730218876212230221568047272656993296128506889514965439919528759025517021711209377083412134468250070281393811331398850323432554462370725193211235203425276119737881633638103505205066880004362675458371448745913897548132228585585927999321258715309849842263887223379022302299229723869753467596104985121466167613957186273090213530273173528115476302625723691958784766380479339729489279761632327468382490957418832374503389809308512687880043419414409367309541436393212980214810757978691199158437931353654112150238972882732275055332730546490914764054346613837823143230892296722969106672945615284681406522788137376103733153929431347372715424397116159026292357104618006670476848557074753572102816370675403751405056297808047756777829538524993636917316369623682727370777625494352838308140133450283289031730026832034399762516353070338510483952421784627455298376537995768846320622519515585856347850778696696670914401122667997697642569728384028325564108172253755599790322676315694602785519328248980137739057559903037740996418312511118909740016930579611459244930506257600007331238628302992852041498351799949031044671476593791498992803921705155648712951739391529003384350788019901285103884394547287919556857399837726011604042522539716899399215679377346166201392152472072288903525154135594150577167374261580027985467391086761544995108554872825039111755171834004922004483901910091104280947056386541896671227051203254768904856181060157697816541345955810513450602132739829547983469288262276032143860460315242961103218094360070533750725640834658155559353088620435648255197260525554630349227047925423820533146911759006739060291414467700713248417973634834148695650626168026918615045290740080490084889900542142255437135329524315799425949238204601104739472843823699913942553355723563182663755242165772106352623932827675079221120316381608098713629788836723272721889564434850209580934845497675134975162439764324916184636687625402573656440596433696513910395768941849982848504845637610363889341726907896131511760417294302153465430986880566891495054334422297542338786373840231678327567199131394553227058011437877025080970211115234377990086717975418402422856465521159209418553037005366374888108428468685649527655323014210000900772873157423750698662131615744862609633108419820864928982587373433965269051345768179377674581351283065142216648780013398110948917502479460455312704246935265458569784316609670015355584036991665933593389100665787251206498632860618941433788338150846445979306629585762029496590807482498547216896075494253581810642924309635710856540036159010142247124264745369276371804911465777220211572447784137737136231529738047129878265564842244260718332651720916245786659297613543936210099301900359901280724375148976896242574164967763731595231861911024934829422102031998982652142739906090242723366640936656681042390904491955527389582410115112224296523326678236300451049538236581888007333938726096036417348775403211414907244057285319506709327758286669378974284466447039494882874670683999894917567104046213735014220750353973317163025280779499938666793738728659313316165749912514713312076721175979909256726317749117541875788396839777825770606037779456585483141161059166786220266500636889067175819255987417642227168058876478834385105117397774749572103935704509981827537050632665562810770163568178674393737266184756458995128593008068721539145510036738103116065606103244387640949581946038364991020133450751522309126902223564865174445201836722433493831310836661816130776066540455903760271519984681730107018343560127206126002972168676135737877958032512885903438053835430713485203375834245923002640598801464295158394365063902219849933053921592908885661095968082088450814362149972261998134480577080895540228722502479392668306784198783024520858018231151181815465812309097361596280888571005834104366602011411398720143674830754314246359078564083934117529576279903287902652837751346712558056968068529778927224014691537528707317919818393345105354429996008087990566231358348033277361785487914217921827728595505466694999837089058005332155697063000534066354145625558060850570343276996307075929313386501844194614920904680872201854446367070219158120552015117283128008416336523754631580283375327851954174485557177559540896899153365932026393823477994815770151682710989113004378501914887873890185965532592420748620537462617573423192914024322589686250911455696134688523047543522378213517810770250531999644810077478142112233776929943905493694332157434331048791786266643802950152690023355688475043167496766707302553200792414966067242053262568934291888298678360242866725988370504032477750207705268317487726423003080026523963767213869400292332132774125954353006896536502954588367715762244579249586945897011451981230764941473865745482697174190715448889588519773297309602905909472239041839238180684128535382501914638237469225858000632246352771808198920091296823576428128044782935893884316715116352034682999481411334252372080264992793213636667174364366639136848837698981852615990243251333694501124011012999330546480996413953090001656526635695881317285758916637690561404845644816676162761591411217340533159895188566966797333870948330441928450576209946833599401956769780417791155758965400344758296276029731199743433693761753108110796652102640539792241003715995452560017576288818076939203914014215802058434722060934301721292307349751420485138493851968508627243811830176183870576224396147263761507982356541057362709507671225164585406810955258296728454319604955308776345810015044762042390790173028192566916485813563213025273565243164380858153947908895602203159936547706483592560008894399473740958254280639235323904323492823374382217018121172906947911459299728537166417413887594049658945635448199177218347933513156049646329143917379798280360278827956845874940784254346854077161118826586824414250062832765803717245236380948139215033762883609483456309950207362416844791606307552273301269234812645049173518355237334006967507248951865877438562231998945338441969779604118077889492385677556868474981093051016932032971407147003323481218135680985086438101531335883148614203574819810270177750946492716578107036056886986788714552825418346198747232353065334772864780639131014811194098381675651308065804891288109125329076580634074087815514877747682902218257460749888714913336635786796140002231524368574093588227154815943079657527589737082084300629280421791873723387301535032077257192088400717402200366370288513691696531127002000472251117768721572763876643884251437197757413352344825147779477301538446670274663963949843693744285022972849437989520154075900177366609634900529988994823951958297856982913687369132302094429277324306351523025113175919453614406234254117901948773416103313706438133188834804453363906982393033813752255074878722663245989312109613678106913644387597243990954590350893966842484342060211317216214805844115684850669355216302042369569387872039288105341539444846494580769249528341724770857537667223634398741807472257421088737372142308484247709214392027893085940377561923876140953132877177823608175647449204487858736244747724045053338199653778125045687744772737238833584812280883532215392175972791325206229815693418772059092104450058519982174546476192159542057834276565291908922699752822325545892476230978632605998930357265236689710302181192908611291516068751129787765611261263488003031069192151989844083370326495067966726865320974496360768727058139985407317550507768673038514074843113317109705468325956238989763616081591676411790427345143681101335303800707558962147440577684593594767682389772587847626018475626002628734345328212423620126325786448410285331212075456267752517791887223589311728666264130101747401005203007719191311856718878521382041265884279243675077986681096326315639755439893331913653716196430071204872791666626182380076579728236846331683067231830139061298878777651275668264405059610679503592903648456450633962549967167477435643594494685867726593272442330870839282234778877432495782299926058740401004992616329248154817102743132560485193578909237385989811003299380990918165759138361791378213119989433035350140703928271380275891488180210541737698613804769568485225214079800261946476164845971107841995649117977303324143453405467774238674428645236206709180737294711895081868072526997635425296269874869416873810521876660504313700911774513587597517655305684607782070695209054538415785576076848762993144054495454493647747577769603524010544774781776192823261593732411955713069293627783689754457907549978257188952821626298866620741567547118911046671811392164519846882759638570259081811598704294999154133125209025472992688500827931706217653268677552356535597379555472445467615188762253575298110557471389263553451709665908714599855570356132251035768718996848479098324012676448445966979585090690081974198643403413764263919107771956634893049987354990676151661776647979953861614493912590217564024514223682371646399745451472494835385464518833246641040905564586366071354621313850071018573184655518636131496675244302485305287610508323837372800444605572363210946715051738715742098706661175470558368857242976750196751368422810261291416297325141574579913432770048832421372870110977244049569859919093040187462661142387108623093790100466836696836423170005295722457922724117800130814364667698241374179680051448173148807883408390300228031781268488470768281252645192071925014331141981013889211444257473237005151054500416424164472276203536177175415875853464260685077724343051993153521271773402333191278021084524812110793789527921432134117105011990518060155446937227974249231538183671351853400644866232745352757958367039925982522745204756297302847861755494556843804910532908396489169887012484207043002639455513860570736139336343599912670656847298445251156035469335522396765462117309949633030231365436923615078763759873752782898048963858690709523068432281890375255030333139633465501155111796082845610857344424367688642442963289596911430340008153232323391962423039788043902131919814618990796408331905633871437778078736187563965049071522903596114397404541250211016546358831441609143762882723247859740477608827302522411144344339235226000724886308365913199143918869024025590526842923207973783018764059277818473904235618862749353042849010209304551801337276113363661791000240988081706641020752863427755597311121052633901665491492282185922769497386307946328304005614698037529932857749856966089796941949189759019266166890431849517466108492233611314731646454498719857380781473531798587723455819081489914848596787099581587961700483504545851336699999714423171950688850570364850097989007745612296244797377367881737108946319625425964070654477359763285897179840075863927296835966428598611539368258545133027448749831939206935657190360257181075857114497505110550271542921696148974117399538595761212944376030330171866751383041538378218946012398971930525947883050477627954959686645515341990472206040258517304226902472152734918162306689210947568822943600439076410952524385541439053307919418921827757812304206766216742797139645926689756422159381375285765826309116317620622701384829698603251615847027225094766184401706472119430460590278702551310042482897734295210085420420531596338233466671676232793772154339069311014527646870771624111234131518009629742177117026506283803191250673780640704261866396079947232474314185584354001520785385463073443782924501653711348407055847325885440969331520889877590866143110853330399312324223129318586593986347836387800556556016791228249806886417638851732618851661667290733592509577549590732771486278983303288774856910239897290702032844692031469857545691949515205726447274898208226078065510217931328568012843420973947591261901075760279639711169096010116672352146268776691776226032784858023372123154141859027844105465862282202106385556740066672759379565267732619124018193642693415959926794856990319321847001767219848799738096080065816244251132426926924578662690560407224834334828558816082795470429498907407325254055677166840924643477757991803452778590483955280515365456012558560273764037547374315121144586614286166588443154992960287333843555943229506416393078400881994527262760179598356248618918933610431353680447334014294851927855473814140910631906251786159537312748754138985460961740721257573580664591437167593053487974222970885524086098473119567754453718602451127879241999542941211240558814824250841894999816953419747465757977224843600060464187855718404148589451173296778918352408357456388386576584533909149279384901939245252278511426097391844638469074496592337757712561561972598898935543750737203678357898350675231416798633554489515100191849878929425217432711822042914698238106990290157925584755709539151506074844595282541754117424021671672174824740416995491999016249692682060294153376780317394430351694381941216161371609360117176585406071535792122150005919663018217992841002850162271614502317189258304194526190164899736279688115608855737490899643533845439221276212418006573866140269466653485016028798251555187721149358590164811104610447410321514656118038019723305463363712880786362466596123440659875439309933971252484348657020902629052985450798654682972616212356954660968305228502323063741807329888226025855035355094457014305931204726492458741417218809629161421915353742125954146473428564189138448246337357728215412239406268329830863062064089736273839298308362712436095287844072809055455806229406613129457899509160025833852302839774046184348769935699788098275867126206269259782645358803943618474927760477915013140650880352946471681032177725279185080343059156714146992456846807558752644238749279854126560104112973139260073540129619057596666819250260108442901250194360160251462310930086922678342743854435179577631745335088125686188843600829985358875415305728901728421366972584959547521253443075566094364228232001761899413457405504566139068510558626630119764737931824390041129666732419303245062895344522953357970362137923530411427042136452930947650317577484872619144768423398751170146899323541889654139032174293225093711344591908183048184242756809822308346608926811151798010941664618273166810032171656529959285861995595161014414427007492049448649052817879976883145380723579393524052318030864776290689109950785083067879062532321220429027439077146447645220813922400020102393208413789851709852907235453126413143147609876013883217773154136444968265866157237084415107748707840274484192023366348315574363152404012778222486018289961482867149011141599082776610599140456554514184053040541816975683631585156300814943796248483246793439676618723921381403672118275207002597787080323192508736256002621749213790940881580847990823452121415019973706596542690186581496622535917768132109748328693077931485328970879505664903221112060196020329007026390578302261341221023455093917334876599587898144645954843391257619461206997213741760135928216257306566233201579869803810566464994212963930051511143707180421610793846590963162820635451614590347246129605264903304565526960190840535676124200268290184836647399525802643592609046782511317973108887925280066568435800587633932523785402866906050915527530201469385644649158825740586411553648135789389501712303740943995081407934056730158272305903397793592179631867146088209189992290846464759115162645987710893936783192954999267427564188143572960239569535056469924405587203640368097545887803267069986119150222963195060579359296841490880985449668066332115759996928484896544285021474661864985427768355717603521789505020675096726745596039384123411465083023757084599457753632000753246013897634468752691073552444426313903195270106431489533985280964995616418077863355998477452744578215478533663474539530156988089191731047627546841630773379706861187939209164553631994077828496467365572340386362430364231643599366848186964125015987366523291644118071099411436487204377838916500886474949227860155616127608672705383923071034535104871636408176737441309753394440585368818074825352971401033038201859811580782339724887367315613040204935891073225031798742158629342843595915501846019890204711340183430888076271431502637306979771073300789365387271552728991048444525137028183787977074088342587599087585861331288535361344191827685516221500133411211383730682985219503965396771241912165798982890779967366810704545611866329172432113346596867777884939027251845202630237427600549297987219615880407856804538338416034884894447991594826530127329938831649353128349167438493073217099701403397890145990151595036441415312985301093128699868046734942229793964534848776203734959913231449558588598784050489816874099510290509225741918174494819275275501614406722540610004944084492637727818902098014175394391592694673012532207840945285980004279424868642870518915319809861634988363496019962048906562618963700322202455438171422787694342153269728152982305967233540712485975417706924330473168721931059747934533883596567942108016517192532207211289019503408449101891148137366383455553205580264573056268168948569749084970377815976785248864192802605290166907045564280823099230595110669795582267075100841498142320170946174279569393793451608187038552107506456279199567354637589053335217328332120476284682229058454066452959482926474917673995158828720502481266599438063424526443251184846204882230615052445696710108841715513214403972038198008594213475744821955927912852278217928801164641697218919482886729376673547488363481113015527230458522416883857695256041696504576927773900220102256816535123663620295484139722415208457248097768950881642462354141010655421401920577838879672452210254495275758733056109397569805139934918425966519778134065142557455445606602427730152382176606601577985985596720174018702765986748509844478463271486688909365380629551236892427836525571673791677510095238278794135365026604849976089302473001713786099214136414896026631417761609007102284228483188186930059422321099013902852047780703823960396156331350480640677791092313243851096724542786444376476048537055033534475068219959308846495010873962859626410008968618165898151935789249065353835552380394976933112566744090323283901872605667702716345322139510726394735014095600062183301759268520997577306297577260799390324510049247611734920642116342441807143720662878766038073409264342443419055794573639843780661987826695992006204651874826674237096939165946581807420675801695416290622015630068698476353364659167305865210174036289836702705777948111054770567176065204446224164049880321397582027447807764156771286183175755241316998509223675855290759864741429855545518300424951859886635385608002802502905450844226270660594821406217915304914367099584936023728592352252233841305265709261748819729370298984371437050774994224355606551772084865188577544681797139848089075773526963960263475145586471647292723514399732908178524791508918668606998603104215487187534238239550963542914265806742812022253925886037612756074881024563542240152945438426328544955024847671552382194672294072692996300098977166344431239165386348683818920067573420191894449166512462889998100177937442361140105800985824746917579132463925623264962039871210187050921857667609458485067385648027105395409320780877187391134488801956252136327852897978137303483078551606523939326624355342807412108639247857778609560821502912784596850128922112166048456648350847949276728772043425516735779198203669760847185228242731683024151962641389717697604152052163717262513362446745297100014224721531936418813025201469706882466550516574631365352208560096118234068463050959428704394483965531069348205006893353756893819015774795165058282736992127399715927987047313913218553622370892828805727441048905215532124806956362552855446156282544064581422079910652034024640806722169050845544437668003246619183087552845530219435224634173672873656544685025327759353857417220663446053606609246114175529339330287918194409551822501391690984149502383864686104984839599193131042904221058481348600775317984156013699858829973317148630674130274766477386345310296702078933382708262677108056264481078685940179011363460259180313654658655390787066964628215034967980464849226717881211660337609180735363265551298256557486613481402711871699347445088535838762052658162143268511651480240797832627272349738646493041177298298563177908705027207533293792129325610507826793829531480234713667190476970157195527710993635825455893983578040878335458969956595619717059190150917331119548686724028995143519780022144461700950360324230420342441917865396498098422062443241964196604200315338408059127712064028423124247347551329730090279842323260042685597159284183204769246528561161260639149265314803754907791096874339531898563783640378118373629881048064320689492027116668637089180910113707424235585695745454897585868184435412665078738743613911328413267903160585048340856404663650201325319139099846025177066146588963430002200333953234639260275990816645914378218653529989522945084927672495957410866736644439649364604971347478236194850043681634687604114898106021669745481206701560922356009880364790780450975337195535483488033926904805156458189052635217733006575778522577058734522077705692988396560202609516425982440162723552257739057927279549158959259392004058709443192429641272890163500213649096459039978941149077814992813597792875164005804960181271351877731555039448761484851285290484331170847053322065179837961276999288760234003371645531744887546522440769104083587688506711210134565039182602059644514374722771487736469734796021121280544532185493988763843588694979692470763997690493524069498537814515392972927487031682511085468107604864415746660146763922094672063133221863280895755547618898256648934216611512982978030200427348329387103456713745889466128978554438535972058724405283940655583787910561216259988858624680244031736061393006222379355856695144839124074098566814787828730008440810490350181746636111995043821980524112206461213161738779929795008679753774940212955073607865712896028113768024001045948053246665229401689051936322998116819686516284260903126680844925609228418939126930743687027811531247921512398033409165156960948928046692805245224217980790110461580609441454355991947236721329336274440932023816019967689724089056289870047944773682039711230451745996031262409179909971620098381054414288564973947923670680248535907120411664415254947847449572748712279125649717232020598601208571622203108114560733754525854558218867290036270664172273170599108778716100516258813973233937638623808482670389868293340107463697056048431942420896366387035696162510161030962573810548385775396767024667285472242324298674239695310715299382260098226148331338633579908559223327077306583025002944817591903452564910300608549291418949331344690053289991273591541527424380582042752330064273079751730522655651745050355985486867385925741563223793381045838982256364477090614036429620366844670306243055494660432191194700288119462180512185703298887785265600317119453923181605033495270672677909342788364763354380881527346281019721361475379739624500482938875868080471227205647723214660923321117378447426654092471426817533380809963851403189058866119534976429134350331342308903524180504019354870776253686545204474958378840203410526084119785920896549110087969469295450284218238079783207208936001765721256394265218199075046555106786748331175825035027889998053734123567981249165181189720839076934376422020441011191323864808887736817828541048872355386900057446482748829484569444102537131291161129558416374101171894619318133141472462240938439785383345739652216076182179729537185505462904886032825474314961421014367245061991952806757790716681275309005894694415001996580975690073337539878160619749808457641845829794900369806865790378582586813410495418599347699883344237228610035739014006039048173571622445632461988516343109036095400977327522786951293908966142329041481198535971568962497682496594064156333956179631580879736220512124059358466495726473573048953130185737766318612080250798396842397754574029618678225371978930529733500822656054962687977911275813363747645857842897005790528816621585294278932703033894542933336166926995889404516322445066210310979209718466379127255771291845028535075864981604594554833685138796359686359400957179389500771879850719588563534644626074146362297963821153456373149621301079044115788946436377871027683375512913542248546404210209844887960157092329592300870983971159056217274664516380608272460025552561096623137258527929141054914177639775485752781749862325673803146069183579560268949705794351426198496020318396608867060597219479561205620560458437370694415029503871442927605496413660361623384018174563071613099623386065138289236986180467525424634295283187625407859701867939911395240526590556145756994898016571367130616524534634882344904662899672310524983651815054790274735532848156930942937151634742992649218708309471913320420164465276069634124719215181884986274974385433769560516744085587128497728084629072525609262892670329836559176973374859716661112049441239837071804552248730349768852229285109649770986356678631899166480702136034394765006821197460792114179871924923167755806425136380340765703495884100024229199190269050610567608252735843066291836189161359223159982403643346984907687072620286661666648182152616908348960565303045434373956183174373062519312927347912424336277696412100390304162614036939408563839714894351638489479276658035882658468026090038922125062489343724080615847007455549550349402620842943670813978189553124125398835767107773949965453232303044583384928479893022012228671901823570720693124780838997872616205604397569195763837881532859432291247136407290903830012848033403136547997420173416274717142181130928277007583822987414306592275243993931733692433868656839865077686361324005114604433081038063086858801525231106433303060635507151279714480042394863133000542111086746508194425217861696136136606544083263490484714501374036621422085912933211125334271971288612718762767468541945948873569388691808327738093414783382834496907293517705676567023681760734854472131045263624923302110723923885696435239305066520799210086640796108230262820944998543060018033120270866680714937237639930430862149539890778437660699849490002873440180525459288939832386137477854715411546982007566868958495942173238813289104860491418251902157057200392266486573110653627431926884335982908979263285890997105567767107751242755012787373232647880085618662676767807092242623960654147067887663950303933373929046562940760170405559511186435379896987432026384983091126653236270273025945323955913302574181919973520592083310620254983235020221684708203886542106231728124292974863018226293196226478606756385216321813917427663838027513468703049519958518834470573942810362996292874054539924811216262050611229985943195943923943863582519835754566742995521918872009554559895783617701139059480811868421443815416639277329999526618579746520801287613202058679709703220458073715513825276764874884019771796063286488640304293355174176449262083608998790010056042340289186679753493351647914595184721303891223579975733153445160133440322455373773008200354370156788402692220526419109373116930043739735347418019625209732095173914783725753525568732553402217951959384743435272605706079685359833807820662535131844027581850547704486561249359515650125846552775167370383477750537754089890983408636082478398915119283814392826377325952222976382176480509165042345461836839781260309931050399496459649218166448663770132115030605800493443475594797818685358481439251827648767434208894110201586936480076670674170209220150703200914356161603951031541504432004059334469989210366986527737404534222942872788569541319574850327386992460201034594778901386792814796466914351884327530137614284657568661491985179904091101679002799706400988137985409049638347632534336835462803827307308157414485256922010649624688063192739178336610673802827765005139053429695354198615413187088277593481542080633596527829515467006773953721932106706520788980820341058712995308668793068820510649026905176508915796171983312925341951973838722552132226144769059925556242872479612003843280785115542814254323559632633259452322580984350313528183267172412806114819379415354489765280376218546256699414122253483578715931169542436348543993260360238047979123441597571629533891446922534800614510920668037047162390799540900774200629654787201678724237024928359863962694678738088353574582797996192323259420504915285807984679645555231822433556577856408613850759289284603322544626400378383666104354067814063867126866461598975773329926780071260920688856182357744782478444335927224312908798033857291591329764846942918029199886836273474284926945585764456309604305473701373809522342150904384447215042911070614669144419617694387522504339470960037963950615569170843016395851183035911280420161053040841758422899422896119373671831909607724323619372929252400226100303207417732253521926658311302774222169548884217095298787536309466501040842576257269760501423884566522107256707519244755295847095374913160778136724121906986740767534037578424717669576023388247182243531724323111041832596177451837443377065371973582390972108166162408980785585484862975150132788610035153021360478075974732923539282001238499708560171187037149439584814351746467976796357068515123831138082057400087351425633659591501483227410411824207674043401313160231232617123913630666362467726443388500376446020398524948337278489289209218841324999862928473512004777252163983918162656535117877195766674092510960282748659679856681978900846394971212317555006471372463848123507068739892524942470675184881823079347761667505620105625875430364853507830977535271600096068257673910442254366693525319910112251319295022631466558651274877695852895654181586579670132773678963278952815152469303492700502256272383347181500096682873517141281416759080377327843119493770910175244320733155496964881281170137458858675926703660197141704418868318898660339363190988617515816620464814651258984124603970973641595029160586581192058107232887541992331642539974647953033140895550394910719463458845781138803387430100818621748099887698235503455489510572054626613073621743253190838488798868843062712244109249664499436738832742941338892525783487316412019513766833029597361806048865246575919924936075147388939693913137989136158506051890897656396918309958610633273578144375659582139008149452596129038171182937371198526142668932245200650626895967969971575989121575841678970852998250227618220492779850061972508738785947392606522760686218853335230088003311257228424735406235062181467410956776543086136371204758895797513752860865724989679655269943105180576943600912783051239152172084658941841753091371895982379757944899532503896353877164130185354059349320093660130912354590577107204222774067089536083851442981263304858120789928470511305232180341079661283169591895984398256460364809115902876548334557517450598119718112024203349245138509958869475147230654588268994212517287432211333452079623948465435548168963610618080043684563640907672451831399515411397396452156755610273329310141246214153558160884656866479081362179568599902818252208194173441231792124277171664226383409687599554897479532264387317741382687571623562627031234625390183117282371555684370139341808017775688160689208800621249391969457150385898408012028409750729764984881230048913475533955858378207760651357164713037261898071019083159311019579426908891243769208701369106496742740220174690667352308839130341296631026610046612787515047318521044012042681061669722214948071626673105260049000212380870025302920331718048145296941554105261433665285390740753718194319618394801031324644729228880809898930216652418440553370637574691081544430230623978239497579626305726604614053221079625486543285268113831007014523727369017148657596267526422749574625127418274014595539480362897580989123819695755106437495174829015042293431619830610445605934763628920462266330557152036299159940250961235806515232408187285739131250519863669872587096515799738647966750540993017564214643334518732472596009085743220441615931507171208193305620629894261967654317162669281262537940782043946623060090240339781545076160249506831246289017794097959530821775330856277106021592793958603692543256080008084794013055348705393832970721879573148881035998328198997105661185343303729359132360968185338567088488162680794095788393198369727583300089677453357137177745544670016387729334374198158151451192080253777059726192583466731019176697824334899327571625375274715761340643034698735805754295352766406457403571185148671372262199024107066651699755847566753800708732309622228525455085628290743374751463329718223872766111349966809904987618887982476607427049584270888843984262544882586797012743097478533393786494024640114591048271597777646755726159970816082616615477873515037760357072953397354529930290543668203390962695502204347695940963161299683159020743584903488399972664038314137759700351136215597851998722427670482860954230487929788753394691870600097847755273065999867454336352684410183135758408670377479681907186833709252252763407465202566726384739642158074531590301363741627242816269311832025510696420621782842246559412813050964236439143676591248169274661993947230971535635578367824708877164521273584839712091235126862434177724145117252403815124358915747588563106977986701376717467526949289812161171473254600112453950921367041078616559361386354736331865243151966643926605083327228426183230713289223667041675351464466894628701180849947331809610704724091460685100592111977767498832689871036531362340545037089693245379759300666961092786390397142200280010160779679183687994377125373279210066918599831276601672751551182636198976074652232222349687394174341855798322373287560822521765920869866073059397820221268739814820729913379631028141687684666408841893233100494009811883859657797440741759318157743585238591202938644476976018496710404391995896571412599050189670435320489437309068119910339809818090819249182113023121810916209223261278022908995153505425311958983868478312135155534278865170922831944114966430239869657690827512803202177097882991518538893445682559760629223266258621723256534521157632784315125975336263145845073214316027558897446335381437125913779316817999490808119309851458834042346975751095216729261535976574399971183952231853777278991692850494881418171374784977500393937319240815402426662695939041336924765267211451611513449190932778546076537685139947171906832431418939381278978423024077979521072856634782554226031057827167607982478379538684610597143989989609389470734046979996722467890838926349245111915091678812769528785690523208868146397781431545595269412611636485049406555953579023369967818894079390267829561780291803366417294583742393082657616806026150055323317546600864774541610885663016872713342801731800363006362046655275851073920120454414232173540179461180636854953356607644005145244512086384247187028421400642616903283929882406731406942908336379608194356942309202267595028129486576015692412510046458171144609143541553042825183242052755588886367814259348494807861394959989365470813948542461541133106151163208127933405652139241944765028989669328572560128892026448267887574300717713419819927611923765410922089949983432204121546846715115063910474092294853741090685981480125618437161949189158212624396376787247375841633678781386357741120816203049826369205144689463718387295112867587993763204985350820543042890207144170628187332011628311271719205256132699066297418148037410378707302307870926345263860683670101895080283298159173003485393356316401207828222558632319341096594511812678665664184101908981803381715825259720455953877961098069174078319548232474810411750180288433985086896633636076692587713501869640160143330458958186306190625461065074691157832573796159310852847115341347832524581408748233775787941075933285845928556120846243673640642055406663788715023564334130709118073182521104535456775078744653353191200813046777003110987911729255108395771856724475339344312584814041374724998233659248838975413616086865354272904553684720892184733505014433447390801970824292464673361530797039725323140841719125396681828020293346812822707268613219112265679434219001770275212173373459986364269700927845637357031366643563777892387337459324584013646487569914352355653381147628303844760037420332737691204954161641050481995251981774136407618102511026642604493270374449135707213585219252969736836863623185213850315794861872072834553142188871887591667332506126333388452712699555796880736311030518951026806742763819988886813340264863996922936733037196555298859466435146146902284560407289763557786344584533769625958636474569946309746942148804849336497755634710092356802279873801736110289892946423161812730174759259485372166111681657209125582203232028088609786079902435902247253095474304143485749378957741723202288310100337429153374882112744469543658503871484713781046547141085306276500286261697585706584170908215018394245678325918601419431296506411662144346917526277880091610203511949418707269882847824680086773528412040114474956571369760973406340579990757464013222513850191924696622151649535024612155238275113293070960430104687755807159363898435100130812158433168658511227091422761640037985949929344954377177376042877588650310974186378804274719347738122285841918935914240223853306046922887864818716018223803242965796629284522536567926091614286240108358565194969081478205530571702113189564154331926068431932799233512856532738619709175159736266121257268308122011517345447505616770329513023326846561315631872285599178750626826795418592078331693685842646738938484428593156745721977529810742090429507302913562373547931413383102503194988822332354764317221105265981614313273481119600994498387633300594077021231394626770801245386363911199089064467607529328301497446253971828593726251509730567109616938978614635342551032958925636208693054893992058854512638827246745180387008477061142279540866290210289098773565491074970469977398046704705231293041876686428889738853322492172773421302059845764392801403495540741643934141205736355711364666731902226158778982575506347187499004595746662517733125341343819850224655022770351079979206026669823894733100346762958767678659845362456711790609503214451599509171218803931238101348879127768153163819452904718564753766564713157287816073790244008797448819075530951475223246179876626115276480152327503630204462218240538706467952203501749781755945233877556292422477648070567524120134499406627660949375350718296592864045426189168979561720830834730478059491055045996404456491326235610197340316095027758880837378087594311116609267368114938329732660408052892199087793487989492928510903793974827396968658570794543530508192374231558040879820469604843190194729009127188422318585380603629697624716805709253666335695339302087237988199143097260014069203379514779125618584546437752441354337149457555211338470360706293126289604895898945727530510823729359283886854749573989396154242933450471529589778090705676405709782083894765094638168654227083020082656551941009792278280921950581962998060530526145643925534151757832610894107021568408150594435822728797080020869302631861003664815013879176004524624668233981232018352419394988670622358594031266182897820200117615599995165810807952348652829395792261734841492607765910301736152877948003041349701710653191416382900192989811200334495585984115243985230637167315042870872065162882904405085540207109952968543700512801311582960199188940905239271586720687546100034966408801289746236101707179172120094818321289145456130618485805899732603063324917127951439786803540483219479518569298938117937324842151838767349462251333055116002127023698626326917445290301028989033289953489324646420274098969829140045798660246199362828103207625922168958987317252313276177376065180084675954547112165053001950787197194556247880483777296636576258285846659175286778351430996547170525727974710848705940013811738808403775018741620541311163092402917174074578333935722079569714472747510753971829463386012188486408922644224490584833382798832384600909937743405227023812518129966265380162747387642648341455487079206851009396949865695095469473919632286238562659849863092661461190793782899332552659513335391891573137716130245352100694037883750334791582969405727626126748787968784098639736147588301990716503458793105745709387252892722432639898006210700634645963832157544911097635129174870045693721501017647182389969879195576819899130076402002579038463078578285069499690882858675770486891796822076238147759219817181108448322338327617014752984313046750411020870056911240885544465626183224830133044364484846880182939705736716805736102303011274479583516579303996831055676736340451952996558216469656754424685985306946678392381973386482983562594850376683055951497037633587902958501124234339407715870725608979600962446286978619689894441919077529274044442916607243432632573021296543357637605770206356816445359916366523043360953318461938470911837808034517354764618371040450634606979257992479636305402486103591670235839864574111249583168085580305632300694166256190197945304684111789124042165309054600156187936973145597280315118084087302710991782967845108284330731343818107917518365115788149938279164200850592923196196498388518603376021106373284471676149853620217756825558299403096085393018230852783911966985892973970346349471386946173659998167748259661430374054914557019771658035192380775208817339629843541695076557684016543988647679816870095812730783512359291257824431252796714183892803468839669858014760595027505625915579058942442162213580296685488942873331530851046454616672827454444013502407479355140456035369703503221580833855275884907559464452969729621023964060526316652232665845520638389811866013479570266331732063636614356639552252373415119989914213726137399924379236813331408398735470748102604636966060812089843496463288574707762850635838541600950240470836580086398914249484424229291080830249768865355371516216066364697273393319525848733683903193369433459982691994858650505557957420673231217030334305398194097038827832952136068801823275005287639021918777885739898688865089380545618489242794367284662840623427951435826046015080088435530024094743330593197678165830716710122228665014854046871694547813574895072745160510555637249164817448657622645221946568980562455221819599007703697977361641742356513755671234104505970422885202065241083690511072363877344904642310789078777604273784055667221544057253497749948718010778271195811059742827125758508938810060426273844992465570548919518136036796511855706867620058376888752870517758460866445301103706572642186715798304321156620524708113917416114039893901963256220968670719559472456942130591121151665659561139058991974707617490457548156918081468158413952767474900041102151829315401028067367925812757613291540385992518990582311461548751507128356066088342624386450732941688892215282513419902089074485378212255474712842174636233783505967070753901053733425964471303735509444099989623804313326793394965069911013396121814700748386682998775007063493782947119339865929550862291020897288566039890611638198878563817136844573214607704368266043469021802140040553518287604164132108280050022609406564548985286712334576486798785486240370258939407733062039922149249292222719030228894483361458987813529973272965244876621190516870484732128909601556083122210812202156376903748037933591586320825755842653014450754751627781920634684889151102407369924351675543471847208576351465579647180172731195657400907989387694270759706940532750774621989604410596652468185604973951285014462613400939307848169539486212075503648468578205993365678362141741758940836326019246500338716181519670003054201623520006772926948742623729376555703997573579580956588516517148209359438686691991929645651421278260981636161179365533765357167639405960721890217230120045269665579415031804799118561689701930168402670334186030632630884096493359335391464820947267727514795632566660439935120239401834359539448701536305113778061867809549993502914051232766426010997322568379121981357310460274729859866081654311709685178565682871196219242044526743020565032133017033118513008349323380089875876186774726317385419336558602213140325297638622554676230993658907565334557334006178543134836655146963634712035698945212266676044426166936492153928075968599078250731366179437607027127496729998730665451329723231674706526079080927785315222471058997724912589084684563146084627004100602130196877089246439452259337458289267343903810167759067420528267525407130241929563152324845085457486931463571063039092342023009154309190480081388531215833342887139753408128753344447780898478965296018439467194970934104099890671546363690494857718380754560221848060530053221698932139718058114597170418648629924990948886463596312527559512231035010184896056811768797266410557831492338509465677091327328239118254840913021215582167039566503472042524501538441816753583140208853615511738542508436080514737832946914211712462232269823494073395679637049953558104755602720908725108222669746003164815352849666854087689996726077376689095495427582255203233417081941959798089533578626665109037129116107072849652832328971941161365001831347974878453311954464204971926664167440630898433382040772900927305782880788127228221987562876820556356074448693321371767109414616751992552673692112994304800800619816858632689224417324406127108220914169570739987251808083613976575826941506074392166810525621840286540361372135918703920950226640743022956482572378718048892688796788835115120557594932587635493882340696166531245935882066248582694302658001088723621971822596285740917565127933374625117838046984346863898690291425188818896119711857649371771260412913349089888985421383702923574659241626879052423890895185992109104266848099168169168931335995631848503874709763675503143788685534474868724026890667434743970821145742922900469409621289274181148422622239550557193112188866185667657431790269501674841648020817140902580051521877695009662066521946938448130693474424336122238507733697328541970052364913755162824444484064884975242079372174021357480840283304056641096010975376018857892393025544045514284355069291254881398859711794888588971589236013073353101380508220139269110450273501085972886223588215093977440539543610598780712100546020477356949410491153110541500941011205641703383075335663429065763007472503364313396033965177181628431947208749878037648271748536423410961834481378199738979845831237681699035175682862212609317790865361650535448117379668360773582398032959151438649989866793413054938925456873318704562934788674578470550455852306905274577784277960778230554507220739581210011444439638797348295368448620676532593976728821025698019424832447707209505114434160096625403297225925743651274647743507708907106897525896694494623814986011324556118236886056619796601671474156454009658081198427368161464640465761086175130812669297959099105751170946910696740732112761762169414143317197155661963263848787468624567830356013520054683107519892861148945276401729042351092275895643272856836786623702263737348585971521068500513974199568133649318603795970171244175413850072127867982442266583315634321469800020525031658042078389980612281800617046952486663519472549433881885893877082851009152843327236704818763232853640789215479567728842138300251626959144104515076588263170378794222546618115430151431655990163579475318374943442944204078786404825586335454491193516402068333298476297684730090590302445600366676360311087203803927405175596628701567409959440291247396608374592345858761037127254557319248100925479317072454198457425417088492129447905453888553944140987952572911109711563187839970960842068717864241366617282502676312239526849193593399626435963217004985510711890823799386776963129089491060594557299381402079212846806929615133749118952693966341565351783932264170569473813554313366341285557263706842029425972440885840489861370973595210561539462534360036058428449086872788793387117541246619031140497445258174269239632716388940079590465975461765693206461955361658670265217528777470884117283902764955158164529171284585059354175184945214652062848817472353176925377404335423630992466575574702584641877530191844314466916106332461903426577487690048048561938856960317002388315299827145443499413837149700597019312475777497722016555440413275210124431118213284198076425155983232480954420614043193847821542942940577771498869801929957766273433205040710956198781007520029795518225707543739462441334585669671953842142774355641778645338519347608812503337161722611485479786509302819945024671566218286833325979075284839778995821394250126515679956180230445158472410323535036000551843331555129693316694672500372326752919710254627869814486436335494723535275554513045981982886612495623988844689188558754033566032232630282183809394038416360088802464829864830517449268533830114884003125338328515566623341305204746540688171283698382699912392310569708503588480526023212517389559390292800337826569667334042615135816370619453532999872727581640608242751996429410455617301936331871691282723932544351194983470072613657556954336941238305604378415436950222157493986647305520667291563278456526055682496724602633895537788986886442677832260121877967023009312656825220335482235632400676435354721925666317565693701264754714427013283968385867456987283490496820755506884401033376376256855672346564955156835773616485217004322081974325786202921387694032560452127200076091436898944454326980880404022265219736931917432053854849593841670386197395725736649477411013552869735967045800630838281973979767780665068548715080987287585410598368254662475398260828173869273335184202797860761039588199803293912833693133451046215914272971258519991742773987365798560962769074662645715732689175785911583290150459778428695546991948432050890247076428470730622680673778734150606653570909854006492803213789357008915266174734136947898753493993271201750892807778304773963023184406670461817278186469100022499809423299248232004720184626824199847781823639205566525198668870812747773688464339071266615322043037090750554666953507337106453383196134163123251967719975302010789533443333528499473597118731917240451156755759816018240668970907078349446671881218110311882466108795162195400251024843094720675821877878488050919467957539192786553450298516818820045293580524708670908651328780017535447781410084783625137813158639220595102920483689360845782451422825367761391564657987745549672059920111709595432889180052016001338755166255881067861832492308128851992380550334245365553791116724546458760956369808242512747921098227175131728619252246334730221459503347731796454986571203791384789553802571110191436673257724575343195183787276434028788073279936081662675247525985996625641302005410121620854128708771422907368187775102984383297869380215008831670386294961284780733144049482692953419623924400933171683740002800616559367651221848772558621164946712166065524563915299925562960065206939033469806353941864863976088441988631684977268183434022439156533729338041335066243303137342877192689848565859312760106463757475797326757649164996132344481052059132819008824076113203844729295047692956180109365601555932941832854407266522386760715303334796910950213413399392625347263452086658287902194576208117894433063398571585001010104658841474854806650150159927119590639472878040056633531842974462229559013720485939382475068165915688459289459936707305837201022171860206451589015796763710502272903377657369243619842688704302876924174586387853975285845943613919440180930472911034668599932027928441925348135314299483741468701157639254065393228812336108961695621905918653516251941065101044412014637040547748527570603613047280319022255138299426909479850975672347085546839874278509675787019973465793622624891016063569586039883911259094459439651423009228294033749982141662614517035210553220377745941044117408422902394493900451959659430054273224719465637255740859153245152747727716011841841535308786505433193065494816353368599141428502619973232405452415691628894386017891302294464676714236407769720865259353656681395384960854874431649277651890418502734584040292237643816820596125622124750159441658115504985526195003874310628299526445306747783959693465174565375611575292688464493837014696220022236861830757046891315199340150699843738154330357384671218655619293642982591519722547833696291274491334824378292988534286750025821154133641091655645196185266712207788736080386891496900020408512113938032562970853591920425348200304203447320991512139772809499509973847284362623348730698799286373740859827294250618341128267993541726167426514754086204541249546102797097147273234548402444988438786032507952208948276084171605231000453166869070566126817038894913603243444981901947943393074514168869144168071443230610485331113882855492249043105990182461441466208200333011484747743173669569828880474030008953618268602142457036006629925520149622912449801237903632480251460025190885382582160880047437300066411633036529653855072289518961397801055970681580288731385520673029124331127557625856499525547238079324477680281867843038061446816033667896295125109885134096127371155832597680287304262265238845678233031906795127521393905919421062460773184374396605718553071479749530986222839392075976684655882371372761090082737945119403505212739382116046042584684792447867043994274420613250309351938168012990304665591588196122108212546156573009357394934432265043430685134649161239225021443154024138776669194328450216836294712145463794917141614543736724571516145128086529036931777442566452504183602779881065129688534619214691683092540398333370176726711038526953536554452456449433697857444499209972129664477615462923965614836124666858301397244494198832114276370801528527597839466534119474334312411030239503167723477373965384392624981244821045134912538199303990996186842094035299790791447903331341685497971931478752349806294576108630401560239619230805141284698462119995753073427666788853202012866728086281408420614092521191734766322574007107478609587377086848708646513679148330664840511397037249531841197272963602263593195039522422343373448827144278664340125054862801422761559479817141652196007981370129308697921393801311021516589334190204040605148536720609833642253016771134297487137193742682030734726855355827797148009621505391435651209073858106269027417448216615015803229312911471881281553080094872432069626078454136464997957603308505549646031834507746239015015830989671588920829828601795127122813985998786687793825964329895381745566621699965637757008025657044810782416406078152534052020168443756217647328493388593297219222386546101490729353530019056232438841571582707886184280144953290059866144931882764330317879918789941064112716570518137756599782664955715402975983958294614059908982309742502517041456116778901500717852503956636350628630888374212831585493522348100153955052966881071216589482249470423184101763682641134572802674615590442471405082352993551418186123346654021381869518659479142483074397787938696477286425886693366103081349125105517921951091102260593813514393655364244208524405189079083115918452282976464529706752964619413938369933469250708229449918730887935937838432829013494263867151229642638616781895137244472045093747454708797508881864350624960321046923964891670852859338237247035719872694903190762424812638482022936454498848385885031560555371952318332655131749798525943436116950417339160391847610888812124604132694210861829510533920126811345833178564503245326968188200860878337668990958086865483417540340246952457287836923700645630090524682872091819812646385489497397605304591205442731905620360133052056770907473951673421562717278823906010656161400031237885451211132686345144076049680799018169396828152520691505387369094113163725218962145948584349347513157070160931147163694932401510537313272671156975794235403920157279413471481302148110057089533438510755258561013347693571697446904343876499836910966619673384043270698485246600404685359393926959699568125807729783415424134195675649900526231575551029303916420196652571577611721074980569542624081853188139921978499325063541518311743942776621816588801455377148488761219366549981223811192062449757972316914027638272352698719333783629845125607770819540643210368096056700621281729824458701772381073380755703088839145493803342755663050188505744653026962919867835695532384327900911556230517440170643035204163292667842405998605402260239315672424199502731762990654419860434997525747051236362773062493203995345138429644613794948720005317187743079905773314713274891322851932220781361825072273850183943943926778208971412739643398779225217880226364295741747286105147830716208943408209841677014557460640265191667921397095863340832533903295460392685943777430052336126615398951047664507316437545881747780520435173966344410040168502514081590629407448488236394188775263659652552643630864322095656666568541774188235726467374615584064867988189101581420582909011835656355007173536717738675359987590650362742404403489490556912579673211231321283309554600614942617502108465236743907064281875283121575810622425121528958111545223473542061440943377026872961352543698517051332350916637280563291961631931040818871029929312524520724168392922199921764033466714499854233614824898109296821342548167207401096623781238191923930814522059832440767054650213492432380315735394363414628287332913331815324477500824067219213920322230021169536023644353108650352532828832287137473275083881056708601254884204653795150694592454020373691694184416997975169236425710096261022861863963460219455993909054521887764994872980013052900656593133184963754521408632335277188937983973886844571007496274054653568347155780913714900328442819175630531071015677539548888269768298013104647817974066276736272428051962002019699517694648148130788205097158726490616637992363310193373986190377925278956545388638029175911383417418007654674299142140628135679236123625148987550877655502797872819338110112013555955951675828184415834249221617182154354767108591604324425300253864833088693797416443800538249666478328205753435920764341186670615848884164363708175975962922555165062371003716039609614330820625758936161882028820056042352212561848208572936520462084713122157668595899868449523595697945974646794938751247987772108779365313685172893169052545946733482093327886900994309277310820926539474426239204102403879627779538689775929484302585699688698395288253299403502144217576007645731584852833811131875191318888549415012684446989995233465636442124115238979118978975300363390187997657740048712624239212986857313310217763921412308680880551200635213168118968119073952239167143853892791190652484103241611951311735340519842317668870000043827356198874535496853807833257001161523660057847059612469807476449611424094871843936756692978691664395587500575650760121393078140382949999650966824981483296078133680486419791928306523638087162289835715363351031390647564238746968675842717157703434052207650198690878942248755928437199264681787714098101119808021103043939641006205025616759598549451589490517760592387762326956112236177365318264515462724511791687715854318647563874741520728865418805679309742072067012633868057903301788669884190685114877033088984368945402318032240425873581332275598392103478514406462672725862585722438636838376444783029926770019998600598868210153880581760943983442039075486173754552972270929742593546764364549911725545558077819437680247465583592338651643448047613851616382546116406041949284305283858127155812505970594735466351697489264846080053502144629334474689174440705945511363396345465751180408657085862954030054867851540490477176902267314328766519874329514484668731440880777924035982033772465619273548836604282128848027864712608227938703807563883988505142190391356064819993098640072817330269731363531811984325027035902951753167322134020976646151926809615280873185871739966697722776552003332088579407355315506287572294326583174707191457899888788144433870508778648061453747087913144988590291639756901840027949622375037440353016144414230590708434464004247867995456436624886053713499818660926387171803886844277232519622958314262200461169314348792853345064729581734541453822122777014242241866769427227711163315048260533840126860605602539406902937508141184533582474803232979736692732809828409316344452750853188806822246649644830876434502553583795920328696291407510149263048717216869991284935042301288643210903768864706321968486608986513538817065197912114825875243332813491818636960279831485443372366387941656021022533992207743610824822526696023270006720200589965925471135868738223505339154891015356372127398111698685026390357950093604160596726758069250918990537506552756499478680938622048787029826210741310101295210562721804819710746820465972830822186081569082483676264502983602029735061792035662570589772882672615615239477389866127320782464720886555397967948493190280699546787235293710768752122075142187250396150130387272711962184232630875997914738206543672092376816287166215001614235323017849541579967200564700478069488367882237548943574895185301579325208901244373518263159138200168992915292698150080072519479645945786985655672150139492607337125104559601991719086718737378960054291706122596396473122510534698441297088993021602178161154196883473159206133079925842415068873328527111241857438585127263335903229349105700646473425461037766192094867723650883555835174941702798898197394048692915947601670142539009136519012174471614173631929316410452498772769800176285705566204473103802350435059229354593139122832770860033084656863927552377089093223320141161849909359561094434124388865469895769403087017707350495876583460569059011768369933320654382087901224144410825744089326724269864139275409617640491377728868737771775212064106651808664806070455820503880390864097496585437691185382123129609398698855539276341717725520113855323727614554094098610694078664791164538283363568813409130161430427218599985509144869546508936510744203165610962075237149045800727593481594700765815073454043220777296726109254198491109692923383047654471329470399062154717730896202651596073235909776907977737699425267268595349800587271500019924473126346078186829173516689538466932610326588987352049777872820026319502862591821971467764812317949411796716342496068475110018901994503125892483778236119538356572260340297714130858282007577237045820447806803004820286393241349535175054357111311561125454387801097065857765912021107923612656548691130208972850663487931093647349660740966242640151839276214589191989584639825253454322686031746986119509058306893561502016924407691402288588303144744219485633090489834609642368218400395997896572449061074540538868121411478104751961757657610239782879751436653191961138552529601398731169891426044671440882236088060531864006477042549378049200724110975181141330116919265139964840726789608088440529059134954488699821552664164057266281795357907242462051313806966556500024653139844387752731328630663144725049405956761205599922099316632944922753205351960604935074554362582822668058485062761062358931002321177526530776596598097012910446396646412351503808039699012493131159429220239815894476372753396416014817796499902701778508506633211755505058449833975138998981505969729168282201412358720208941679734997784436808790599239154109776612712363926641285121539356680141969323890998527679989438601261612570798636316920054906573691639312720175428676572419110680482213094928800193858091193218850740025267776910024291212386592503411752714027691156800117317043082896673342103124858049589339511847954508537704132837867780160711629984041272614012610087505842264521600689835482883876616075582228378308139918450861467626796470432498812400725796470219146824061374725986800515208212306726599015717431663545491970164933310767683840316176841589427859135192351874733190685602149585116642090395217211387985362010386439979983889216561117009348430249568942612068261688582999783318822089887447090520146380055928627298370864895854465015607376720473303317017736623399820549175181148217249245659739349202784385069971067080440197941511747005097743281226693586134700590813825965223508270137107616932310927820294479750716394974093339435173297525783053504879336115010061724368276566190509433543492934513064120536794017869231488881153975790576235492700075013924085059039612848048399206185558622258581476423876958932446352376194208372644506905749203977500840963450909853867525667772514722228359139224481039900931185005910326152463934702862827927580542807022489769435834188535398717612723460185887504321714731432509451588531988420793947088037037062482409994206053824663790197270253506506576316849541295734608968247607031017561001953469363702993343974742359480958039080140509341338266646741191080493040158863970701478982486901762050176478329347231250945252589028495491415982748995272775157961778749009030876739321367035078171309117333363556016857187255569673730809301786989792094918823922827699735161347107134326386231916259956288865648437673368040263975032867003295412492972664675617197654285529677854436742607955492338835994301031757990332596267663408957688591083441886232709060256716643770997973133718475056919672614137507048241609486032976095078516981220119022698484112656656817356516770729455090202292291356771905313017903816116344997663745381709781239840913979291005257099640848623774078563003326258700668473380168909892844538950857923115876521456956926949811642462312990556469270431399456370573336455932343317041730046958282278630549958964421008331561449896980681029443221809088949175224834034831610541456961081434496989689562027932251085268433938776873970630878980315617684625286601153985026898142694733856032536395096214830535776475210476561572463159779258081096262706258024569011406876541843931250650681883348113932691502084748837086748715347604094106323400081690313953121694521682970029582234258568398390048797208488201446454533850812267115029271356541608139414358307418848025933445744055815237926989575399727217047554926898902871174563328117305488767144670574818614907359690148092846172090979800605290891873538869171958478072482197565798964372887832061686436422207926639708264097167564657647381370624764847598755356918600761088324441473992496034185376548781422871999135528224561193367258765502876840958776246372421835752590431804545606734646833253125667120409868243866885280415427033770227010283303571179767226731638236128105162894185696157094243345524872048101173409126316836872309430970996579032276378655527710990880452372902865511610422754496614338218630341355512553982138389522135875194676102308356848989035226029266769418262276051569497737654131865311406170812837293542021297413879105956909564372889561150669865331042703033243718628299792076187533832321840590117239838328215225220658503803047267585935827371723408442456999881562859958953005869035195174815263930019510465240191659877919249565571518913853825258411299544747647818002826519355639668186825585614891317621385644718540921581874614040842838459924537799873099918219266243440463969367376635378662317221904186162336838775056545759659521815761001943691889222908260630471545228213544850419410224776390548685025197444337285893596889958595701540713147393785444345848314799406036682309485641627077441381718207337171060897748640990913880729619796279351406050644409217562150406774685769594647736125653096510415035285234204712579264886967205767114670088417237648741748893319863657251239308038293185157211049760236781757220855489391951716398267046133374192924378689487075596801407222986586775593296710997526080449051341876141020562594223556881318022551326015175465215380798221345660081962095491838578578843086764595870546444184487080104816905134468090297671613138409242070736939608721220369152876321089505749808116309811180913715431456908637916324045536521985811117290039703650037435185058363507487616765301978087734341819904432245575434300772002487661468373718538826771233590590571171682779769816359365950796243986607648225836154529993173461241839754329885161451622742710063872688462080754192460968591833188533311078393207396189407455862880834819556176882730762537246591292686218215191558299701535993777734269191305543202315728781814106603498056560424415906928398786842254459268182646082995941367487217111469256547798158823337803668377355794004822580239163744685622731570103060486227140058810281932415915257821369518023798473322419909032034121120991218917837106502076839396185997153132731770415893539942220219834517646766478294512715167978806786111736138471194980208106048059035536751511613080919404045271384818023278037938746694236635114656108290548940130519130553716075524691875032558735927904264248214199695911665062982347696099911191919832889104632565592972699659613433517603650291844638777887444028583249559621875422304818097266944681654194240746970233675721260364941420183301452542761512345677164917573292354296182296474525822910176490878648254088398376993341842134073133998683953255884016240538522881544279403303385478745245360440811345001703299507190339286573436397806486907533289025011308083765347021557513686003077494123771132134376046489173341871356140908073926223955850852845771221005510158019770770589235752885529825696145912352592678719397663403194508946100977206695961384527694958232712195307817180147019560123773758478845941914407498612666898900251820122466087218166558299922048386269069458317279507516249055066598576529666517196997618598430434463039315977910073991106373233124941967473921261581845120777333696508856815568988027484515469163734741141122311686378939144287283056052756696327783369802478031437906485545257736726257160137230819903521544595469953197135564162645232856854256642128940087621860040447549672581789264795049632033318843721156732396665532819639257400851208410253377798845075253222056185649223171423739238869947495157618418932050256009279618952166956440995473041639752204516030734705937076992766131788549345247167568533254063897998775157538724831763680738292218164407785489269295786890416006131798852584063507769334886012805104678149505592546640595845706940895031482642511646779742202648981947602514063870639547246693775631060700190946704281062456320126997309124798640014864296898034085269561489420165718390935434636586003552280585696954351029464678694752688374454406812804916291449152756359216673055892583319195628971726682366214101308271844611544604161530802071756423257107425265769824705124007709983629002749337687342747702350676277163250724102963780272755165523968143620235182839205507671644272931914348262386032186787095273918584974521879363543710845853829705790567429030535419604081240609189004358354579627615174853122652916750432775006546077325150908946754677410221500710206194067988805790910013502740156991314344150064759712337519379183049980438547610981748925749775902228619533480930174337537899382752222744262946719929341981844746431841415894052770544867893951041198827096322772310098809659571548970970227859465501306264510700219796171429462980210385610225782278865514988127662108150617297043968391152400818272683826800144012583430667556974449110025677267463494653025422937775624967441609551131035166730311287773120733596915288701222504597798918881787215264924382961937255144432882023070394188160856413513535968272651891343910684041891677332873262083642717810561295481863327726050232211808972724422442645795452659395669132212413374400661269425864554660746464920941980229591132893859247020507796508469150945577648489646823106782461628715459025340540839708881707510969674909401888775642315869983241163109889607578341964987889439476119551054496855302192217665103486770397701442002629208401476406305270479882044232902333054241874969127949458775169149325788613185216857460839061672381352789853429101123357722861133356255311524177188872225216865851056586736885205471982051908166857065830124020847243252640446360237448960586282797575515976866642747956713843019815319079157122069704369262307014289754970304142121418900292992528522770739075213116368525149108193441305456287568917880184220000676904597512910842728546651992155273943861829321378364879812044877285834651134946742116318020735369289946208880330202203152108077732043793404434786301235508743999949700616977667626301459403590910591104140866870280377496324525497083209504190861911638157931689648608424060611662013456143290676516944763267019687821657036968190085301613108807973147368644247749834487883525713515902187400636887749275799813876608379587750234563808518859735700230966563336999231995998051183877630245254373695840582188333875807488563208510695746696019637368151751059154052096826547381127504984142972987193050045447886818370112469119202751144362276637842951647610244279274672507578912352679712509341537994256068528539723453407625782465545614524922550136745569999023110493497217237786397225521302571514564137575673068759655430529783444317606059007101947641022637063708121562755985705622240376267495341171140543196528416781807728983224167226806151367678966845579736730772810176139846759764373332898621411318444094323973309861760017099206793827623802312031318025252142711739593372240620382019984119101381008832570363743132382499695507071635699685677451025185460584351154136220175369268446723453571317469285559210272963680563126793070750827295368205429448529963371989223978741008038125119144391517958239873862542387417356423664756612752140569894198673646513481255061961009797664847819829855559388828832140923685659790449776918708318268940084455827518714826359589872144150255856850636368001681971174918846062378817163119720951016069862392302532617922975008334265992231864772771377277724525826339607591259254807249541783418003111991060834296207120475271605795722680076084415215731952936086050176541272983979164466366001972086547610722933171680843798743743357728348928098338995189934109930307458780753918492531014443741183464568874722029995724675025250071081377816347573998260600732914221253251808191557825989589878971202764816294909587452653877099036044225596023834875429424605536490107912667353124850319063973786616824476266657486071945858975346069402458812927741969388879746773595126179117082100339927180505408894205697435131722006073971670223936105927927933371742388986131524211781813098767862547558218944926963925702907429787804358455770887809217256083216684746620014514948801248248178762840074927103945282180738852230717192497803140401460265940030962234940707412400851540154893430417463050642002774657863792396589901484309935975613757729101639942736249402335674733639716470778464988326372489095917979672545716740949082086541151893729373573067933683547439727535792448321091766685495073678221470604878364814995922796563259619814616837863421615123912098239277358315439514966733526166673733060868986069869501534440708491984558409799102272247200433567652019976915991024127561459846495417450735767646223254391330399471414955719594158383077937864738907414932831825295753570505674992572431319139391552033095772459785614540295228073135617750899990596564204353281188956963101645029200614534858310044936837012301336905941488812806840541746732182688855267210286567840937409832580878546269446396446447130182834176709734732137092468708756187405082445569582796949803411985386501621043026869708918468005729929815505549788423414692083447173719476046746354258567060944185126168026018380263578244414045200931594297212347965390565535974712190657887850030766560248917643079040587188648240976126679387581464823523491401584461258803914099859619734640512311044270211493398559079234823048151120888860618713508768557457360312491325145281851223019491445324413295602523309537129787350946387349448727760716729878633897112852942129461067383014033082975784644212962614616462624991938212884292483389739962005082515152029533696828988674587547453864785668165119231090667109042627706499527864762062657949732184828215653587936480655857804776992551849427645551913703654279876934197983888177602419836798950687179750648832139949589981445684387489858486304038456748028699454743076670058744252204537831116020300838920563279014465404279254159503104221623839081533291467413423517093476476626487994794334868208301703213018463001347858483608011572661609213760928508035546177257307275398446944842267067151028033545614387605620092857830719626282146211490102533972145101532953021141804781685644994108890420294050193325550510456953942267736321440232756811517225443374779390220619084540238046324213877691292450357403623108155067875939858768858511338476637924784581952675876146718294200241873583088716032231950014651319575272853621909562354374533516084061195330552063287145249884298454894386540965613856680369054167508203722297256292211390559863017906410095457717713735420750513222511898919853628234414075661206702021601224823520292944288053365667350163928322784263029823836890232967320029285438803151683663070493352481979621001241182128998090334234437091257537199664174296650949160780869345673223749092770329815588611317138628506804849850842362756697873115455275723917401884797323690020631225564909176501515344316879912065992559595344649353226722162660000756538738557093075114725679020354554144796624340424531405212708390996594419573779576603381157863005393085665706910648200510013620693031242888785561305923157818973273026661229254199373174976767012656879305232583779386666039582452008232212340308750682520755549149222790181221738140327005339524305875063730888559418250453500717656273062702324564733879001013234314464583783948111692389028040164596994355482495960736371220447028892932588653260854231887950075117062431066756981252379481637823370798057171012633919495923289772152302648335508935688422103549943092370006962571484688087206801062092889038263684531415559867424819880322260975292433403921357747510563878176417563061420166569614649737807768580688011781500885696685662173098043329663779046247655065557310162749249542889788438732429410839226396103782610660943249020542477655358687261648452641617799075354250164868560405525560477920231986968833403303788168581862290536024247264134168025938438178918651685070009886627617018225804422595770059984647941784543296174704537720770261331527308432733602396292268179807378065682889534770554310340911544761217967417318897807679461542284216835783893647323398831300451130486815489649100107431541613781561611649600377245972997985819233632688336157342371692838843156778136902632035463784322379159010143006019895425649188884287432432488337132851198955065117246929108289925236872995044354071144054674837196648162516578274642867854331676225133781560525339146773432159378767094508511581527615315755259162061387992261579938484083755675923957921054224846064970341893448696723955997217984717465710211584039654981820518259130442294516375057321471442206334356843593267346490357126276004951162098830050798991303033837533992464876385598283584580952502680325696905243192078483505818527299759120179671336798983683417183816488366967588075802920543913929397569702288210788909880174959909051560625251301865044804125870040996995523683593740225785043630272157645700421364168843096833193304783670758149088284020191244581628396034075647055704496676248809080192813632712969866237658837139954461359484528964434079321228683740041305854536375318125852550339195829544973297580953241798473726708846259245990166651927437599970342745196045744976635925355450084622772047555843937839035329710075405571224958241546718085593313935386194894185504210899366496010337524850238508887295925603821693476970912599324851545213315937873338838505236598709552844150367427901923416204230892008930801167109305054184928988657276767365321131407315715633709542606007780086451113679664890900180585762646308244155249068332370947009057627077544407080497897956612643268519360892542634896817632209401588924593710850126862065346384873020427593096604553276137099752435848341550201075692286055667798679383507240675568101253060152754154636367971806871566467792887469150437449847911402162073165605931528392608226819263316299560564521871480016222584187980547023728207648291817398207654697255428276790978392208743732697683324124583445702100294497617397713059348503483177229583796438108686687162451826624393067992198396558750719047365143600158503217265894307551080857556858081017062423369245751938377499312716255973256226050451015037434937538781433605973966792859932780098113201217650535066063076105968376647502688949930837650832398527434718315734188879823558346184803660960937528554171949937860260127236335161187629139435095664205815578683516178088537147287166271153016482209328817960975670089249376687022647333779614210850456594498463403919308927050711847492611188685375756484939351821448262474756163239702249482095684100057170979975662441952346456919345280810689090792545402660849132614042363483393859189110904606088907526686196806205476673878330602422628902366557551586722106569839767752539053683852615206727283267043178690110880970188784888119274054830555443244838715495759627631109601464495023229738252619841725240212654832802586253488249736819381714038809259362438948605423658599188765798825611991044491128845561099237955746063529838485123272524964861851543578606388544720599175646972139699045772965435754800671415940390094738773710782140854643907988754904138199411853663137718628081024839643496275737858435731317586583414314115307994950328542148500881816884146747661895642339565328121002293495115535427739909245217559120869177671262553909356990003595545019880007246354140436149507107154027056051343130816975382179083619401358801609902967793804954096392901708888407877844096908857588335553703480839655724961857159885279493066532723808813385005469810103736669598625115415599604266862408993058605225123698179681918559848430995740243200275803760723564757307283992346933376817935035501564571220139796613620631686158947601632301488200692610717540005505718069565259223811947298051195986267369090667204577621466294104513840280894074845731608478969621964564742096236451296553466764988553318135490203310024012624399024481124524855775388043168294120916582668118450835267378751183226429367603971726783990973220138723994831251421938296396365586937396119083239413354798281565936052556358105510419548679078471782232224962028137087388969709186824087654212369935175947867398457503976540255512676390750762214660136767826124115507523788029670625672360408680635446028689083730609596401363962760031489518630049725415334395037541145906227883896186927645832882356922274688742369327505456616073046646760964872901374214386860056944078620109672169243791350032027866802804167984527361569848608725709666733553204773697125869864632661382524182969647582803946703081207097230138125101101924436029997044451003462118942365047322108050070174049059687940794302769928034931960668213820208525821408951094092168906404101572557840239804379119473844710654118304258905822890144345466998974944564662808185383516929648246024399525812427865684123852762828363898869869968970313451977847332253432267874440981605346629862588149986349121832513241534455159740192420769766101274989046167073395797365435019935091575866548086732549900395990687283993681098232024202156518479151426766977470125758814222700634556079312142448100109201998248603639597385083009828271068704404397243712523420630174244836442821583755577032962126557740981773987150759121314669409524731983039176828120045356313526227882317240823092069212625772182865213042821226391783573021018809619261866513289845960486570538445852281342789501760227184947415733757730230939536627952222003509816039129194582736802189340720196063096670277360575819233310498964477444225212512517194587658488970988116745813234359584638449294455082160718618152429886472581648605822525362799793525092714917009468328604017020759273124278751199758417976166905214519924958496560586815571603680165862727171200192693149446269110792603324492315122909935148551600821358804883653489320912737178872681267193521804386677344003928084771132034918758205731547108153347477419721987179699761679210296750820473252074432631010098055769735224773532094386976462570595623296285216986681587285325997420666731191918736348164488722212651281824251339480112824243270644635016991558266416568643650603565792327004374858739186124590246295001303637782980469289437948405666463922474433962010231050097251764182244381594606573242795696931576781885821068168316545052876310506938525572151666237405928151928144503914378132046864172604833527240752168553258668789798050218898324889222507774172513560691103727104441924180931015789189642624052991291274827397322045982869090002258122096057465394327432258638424127568341575147090588400465858720532330761311729587947338493015679899213861082914325090042036662413002286427508449814360944310466720032890664688231980576445622843855716808987801493392812649529408963824698106400157689049652036044505348954962666504591082861985937148276339102077546254892952021063209224015999931932464619581780696197251425200635798532697156000060485851070828288314673141565969850638472988827638742069817605144063576437389994450909255747750861382332582076276236582991196407861563790926490345873059978728746027387095166552891549131687475476435820745008874830236508362486660071096207070694740106127565127606369475874522099197009925586096835487096535594254370393877520250318258665344353100078788405708276952771587763498698874734933229166789744388964136190531417983766443924258281719856957491604062870357205069473887487135170004083872428996945857130024689739331474380615252053034598153637547132597237612646020011189182415248389032170150384744640218792134552716787184228918824292982551735075724519550085794760191872237253774960326527675610980312932024516210065304438521132567944150922399708276639239519528082352779743153657561668851255657705401950062310556529098412055014822662446532896700160800354684837553235028210523754480310489404985637626671220155306401504174958778101307773361558402517917988239823460167616785021846074945308170374025684259864628254821727067824982370014514675855135472785991403187340487092233257685721010815627746610923697598073868840533272023157506064782009042947080764034915128877045409234655671021194385073151285717399038285552736339774926730357494421903806954787973333105584486713612966598591556954172212660591988010987946451432278773781881443859018124664706802287702679357596996779770636146587667374873988717631257738288809517804033003370240315353228709537084607885895867206226050659358412486452404210613336578195602130887563732374912496752675078913296159881249586078627281113930493769090897801922105188603876104211566725753813020281443511614262337705350059155313140757388612161658184389706243627225028207338307145725629978150408978057050801686268488285049951692818087056520670150221837651488848964176060686549258204619617110808726141314867185629560158989710074719740082361182925684654705023897043700777392103927205306989891204465674703884454348379243093983439129657468851212968953173907715719858937468979232802689636246697650702380043175972496674665047425066464219575376822109888247602467146388947137671497750944435525785242692743405461133352174390105141059477112714738881164265868904626712030415852584351862679210860881797043499124144544430963837332753697513695243404901660672432187143946836241021192756596125370251620148567365975455137980794951831230879205697792840449345723042093629631059719055006427919711968107342355983973831311499190328742137163277723165467838566182247478118865378208193176597957449022406850718716037845206635729621514753012410110734902773031063355024147637084990503833804404407278197334355282392319985323407033186041618043899144697125314346018856295836139035403713523492355728784287007339059009131379204229591578266817715800573752183585476344837775587090860046889784368439189944943323610863311621193276772620935324439854935863672602570677429365250392770400429185803472290123032405789613846300290449722195533363152763989629968118393139567224126461782005551627174135118870453322917873464333804013968667759789991560690716368051877039681829185420043868666831092411862098566867002374438866760965434495506948952215194780555765708419791446041888944385602470799920268087158857796904002797687094842005722852180368711485408517061498133187475728566092832005634132535773644434217689259048020808077748609707627820502021100988887200634938712630486139849583368639273643864558871180223883231266663898664847664656104026534218821706410559634331848224035746844822749633214030821731726046389830968221355090812886175638083372018860964681977535932003616125436521102599314657009711432295540750980135031686003929297748215213051580588590964224475395828558321788980360159937225875514869203336265411913891941626568356841831549276354463722151925764971751114713203677849244703602266459786859822669925109327236317512149700786846723157177956715068293868356787335698012382535105875711899013328006055358351594198830936493614076945729092067394992569330427906322991376872527691944331751843848213090850265058901689750306721841417203240116373633837291458110658918887557855414527925197794753357409316655683999500338260748069397954518642012652392947177953877112663159521127915863751918976775019711965696131564267788093152478573004602166168377139584894144846027743314242354442780604650589340122372882475400277923107148987264143388783230721309051133164456911339293642394788044044848436360047204991494640860140760861761832802417261745511252764124155945690626855400921230247969324756163365282605040346064782735505892661439835595979008396476996187644215473932424227340897190041095783986290543664683773982329501816275920726954312594191344409431454504620161557804535657774289428196134590256108430730720854596977683423594006273897120783407285221834373677624023116370009934060053318642024129848294659538229330966134974201763366916947528287751243765011532660584576290604034968757540205053767726271467319672277688188509235959708306625982521779663231015483621159844827901820778612063437423826494582621918022012581348855571631092740835753204148327630563056336948073705038324401270864466350312794586093676106249030733101157956060234297790812015103022918615170996515583643957940774341728741518350965978606530458099163235518908804327335669615718137559048698468632545348388165108318477372795096450109207103314098075882794865807204498576653226272889229564907217751276038472926816516213158781736657564331484197902707573779491936091658876146604268780473690966072443527850214518292830811444865884139406920533122499556040050117105889536615887163139401306942644293380264138660089960204743237858461314635417510899704515853297405151319743037786023200282039416527456787044301745919438159747541559885249036799082527973276004968542878017329719181796038140557179667687043480861295463852373676379112581162182810010229499970137043743508914000400159325151913663986299129420967599581283048751461292618480411813389426519737189638414824684085037037945952422178849639982587056725902272390466090605875520744920462434728513910982985279296251197685048720129728091371068675826105788676440136071985269697121446697685448495475851764512245711168467329028068133055626384598581930891474541657860170336217316034193615907525047590813059043959708253924437822276481959919793825656684113927251852904758702903961540099602527093662568157489355489512725227381239622239994800854712591790719580785712555283166878249129360620706304993167967173645190282543592551987216390075388258853420939363344957934223994125376990091019904724366717202350358096568612575926972088613397519472447740383745057084037896176056369799427498534181145794977235566119939505355906079876100428226626851574117158792982258609235938378945526999941046726037472441485463765316803265873989375362228962235627027696072602828378534977763611131568808680115884079996210018318127071832255241963189639596330996090407375588617100387872495964718696167983315015406678520542968779129893706089869302786903746367815257269224625062090578702095487814054577718229445988051972689939145150964861919100274899257903973728749282506339017030391358924818028391512588899883167779412499835880069348262513632079714479225580540370817129512576936818810294438728251699178624301195279853651676926429728288168752649512319469773128395531761481669130178089961225836815650853859784262840407768113910673859677771720390566502699520136891138377311188504373311691867313940480249284468583641467161128204743099372476333118921546033581024320917707470858979651242786964874849475213131466623842927790312310929803173109641136912879846284096818244252843636400199086333052006810912653270262302771193284373916206399815892596987646717729134967771047459670584993697818132741311562914134721926516631114079507816635162093688479688751629309314440589293402741937780017219438271301332410533172441886061100742174500779234425231539064638359224832617791222621724860638617473792216403808644835477986396548650323038004147184068386643776798712386695346562932182843356388001741294120175672441924385324711617595218949252895966216730070617119489744407762511859833493443455287090453263208849734946526302206042378092880841777958160374525485831433047370638188152441423051083549467658645147023087643767875912015371852421194115854239340086344524475229095558120388373029342116622698874783592417753495199471276765824320031769757408267851162665925653669099505430656170451210788815459043401884315266121712693271680470428440402660872272407358413814666370646198567837538938578597456075834367201514835073804742021499334829209773476376066302186424527729686735310157182842996863815525968504790275015388249217852559337295251468892649889107028121718980284396445483733068454364582617477298717876966335255820068510788514369909569417230260211508341788010153544135740243870070940598627536484429199677143880412114324949455004328174439344292123638783151627708727057134217187457579907323716887205621711903322391019645074805251776890227687555132042820759629040180779642396881833174664057645406362232459069492368930531272474917099513647953396045144953241912141790373639154730930844596546608053073766818389588014667308522643949307626396979769370744220195454395860322151246691038083191919134492818958339834689658866777635028612089379933500513676220823491230414562422885019916497026318751762124045187998602740361780758255135910298799660770193661080648667862150409427867076088288186774267624362093058073672627647554044367150985347193190574351016410845443578359357884416914344640697533120967503128630861640098950819089058639084349772040574466474423015471169290295381742158011558863867042973442569245241851769451598853534221430448827802595179830306767076458471899078190861250003417973302867090527192805149257334672354579565476092019110573241531476290290877860987761831331299904396977153314133588965488726651696355998948891854927751994603039758183476911575288987233591965697160295328078292985348699736518236315644658185164798708125321867624229954348579291917749594568784001424910780333688780870191759630999600168843242564591506581156391208602563404322850656661626181417184353965788258663569548317762092913305197315769853242691666719026229527877762448330027134847880588396906544926431936903329716019309027000968552496974235588190458910340832332942538468671807456600177458224268657026546416653649953276694643841053102887369760462868819219195068194249408900966886804165189087589294372491324140955912713127109951296800754954942100429725954806826830992206754418267755921403038323437343234313179930495144135567964726958141753230321724985048500072610750610412562785523263379667479818577883747125555383391074452257873130220284385982522643939896292923085801314020893926611773721093137429807204133903031290640120513873508890124480019096628305261832013871999262872082399541306821239606149762494684230619431049116921104235210962932630134669063967728809496410040948527838281672376267662904502169283153780423345431949012812637285289851718595237354110633941655561478813076328000720766385484016385023594525812179812285983353060401813720291493960562661353517287100721754700596447899542425527531371075352059232246048603243102494419462701853526519393882149933600626010930262861454132402206025830032018310735778418469302263915603638069364162842635643550307883754026752046284462465064220673281364895774953431962324930446347047847835473271368218536358396215203470344634651838731130260411126025442182419237465658929010163728476009829685321459382883038598891053046968390113991986463971004885768849565978670094497921376892231337269538553459521332797139614369317306951924983094626791755066846305845348156129346411577444131283986477999851865023605297166844598472769953637896159607048356356277117357674877777806836409635181860541418697535216697473105412888430017631923588061333158087082665296004358615786728043847255027805921980743282111650639231784649692562723948226256810266370450726160328813569264670085228669503655676435281559910636344698688991911182121336601842814756676561275858490846826661824683724750844084718244497389177279316846013004293270259600343702118411344409577233306317410398203561984488558514177176323595988482880009031025390735432973435943501442523924127906763404314293172841470256795648715123092356897963782576167516165351297589092133388193463477076519587803868306923045853755201601359382486255141210639398302324625034733988837484204638566637189341478735426376407682937718709562656244728909617870015607770210575212565728261288367910050331804727569716047900189982614866473514452993485617051599586043282486318027390625253688456029992500830476590683993662181260206736622200974083808185507099076891799678991779895213143476187022888462071850459033376075076721887831467578684858512778627201410416333287532166726300611994837517357324229416935636662821465301277292690961862726346559326414669050899762203806863042685446805532926830546076873399706933504836889942853433824521249636550270490782056587229594535823657740427022457853680177499640043635140250829380333945026371939860398111888663627593602843371128232824809347955116340314661830419206870140881254237519318972005086536093083708324259221552834390823649624071732868590274709334226403539343809104721815912887812098628481394136981648960874485698041540751032830583199863485249069461168820150279181600151772939246352507916712899607241781207120532519016457002057312365452033039708783348119517984618360136730890520108947622173532178548461317941375055672758675285172720814059756871304648237930896210273658048293396304330137896718971962421755646050954698174417336053436779117606452199428471379395196017588265325644260556839614778672347189550457736576976463071906022731036523714532516698436410423315378916032362295518227894784367388544603526698677494261147657846176640044951510369335607016074825724713684265768916076932521638871859150031775967132921232407745762739242322538121610442745256768528819012956913822373815238454123276052424475189626233881757252674818916973215330882969590360078382233572491939347175329835022916466467710988719655608457721345215582736292761865297351331757213020026978417635463418742269930447233754901337798988181548633776371010624442241186355513625633528728900400888207502015048427152738715265206123982582717024092105051622706780482377465605488395145255123974388232227944366396352000290044301515632204599884647767674401917225355375203267568961836528501280096282787920646261109212452889481677726548429701520724564282312683768141737346092839692851823178380642385317719942606831677196809455998493991309029934794277143152703920023341544506034816983601383028773374458546156990951567041821896591492587802518556969107510416584753265144933442525796084318361985748294023129807723175825396485236297947991448629542596826536173648764605015894349270310899705989110381775838028016181671494164741994931202813966861205866613950452725088060051594840719915602495791638575270672981993385005853556593244998540146213699697393684066740879077016970815102649169792812442412994848445009600362660946865032627120408548330101648542131590502175612094426183423776228549249982212596302447447949972580499030669362985633231979086367594563075025645568333495311129763491138505731565036815736334001314781284292952223600404604120495082545246014017698055371058245031286674078231837364029109753110328960661208771340652022425325812265332418799534365562320159715957736331727610185296811718169694471001939128307040927087724104582811328019186257487663351843555858350864319930784437648624179031158822718869077350792511262087626688225379004863760707807216443142655633944815808592952976465442470056680874158789733714716359304867123192809182107059460215177381196980965155677513762036710581369393191966672416223280422177545407228103976791726621697841873954744713273023114985227116686318806325508229276940363950423334706316994336547993685789856132122966814627278697545753734287453582404704102597783277382242508657674919307000128540710660703773780991957275909887531456251045713277171704855048501277677727975693471029171815973933334616067765523644049834425460686335500503249832913056614484225047782736770866496531762203669311311697880328980011890739332306542257444242385223832066613802796545548020820767282452611806037178283011021006993071388210845444998442640491480477032242505575378083681215654106211927352309092042039872417254343256567921370728716348424249371967012471759974722165715106815072882144286092975857873624284003703702275669868100842004364429220970834737154086492585363332999961196713316182045534899544208187847436528012024142900444395908006668016826292191906366111815779038209440553066724612584920051914649131289469799855883789664010989147353729745452555634685297988444732601859722217955490739319946852494868454421374784863785314932597978966244488646417034925013433194709130164978633273344629101591320801199474657912876987085349330805434584980751153518174107584063952821030157833787988972812444738508175246748846494473418854504655145094854924375102423122669450674498647344855568983286436759695917866268373502390723215294962310844388807512054292689144147898351835793628000897993078301319335751511064724721389430157782110141820477754859630885228334260370737309758387099257494975947660133348203161823469811592829747550255381927041456167827534116917642479780313850421735877215938144058712289274738700989744750344403801872315741609147295798284568948068758776201466088364903602017324157190869334959664738586887049435755965127533892216661579571851303531520297449558431548997469150372841109585215210116701883167158856596833450787841718801490889513197127320828006001523279888582480276216050085818705742077735541350241716726116127242937397993544173252169411765748926646105354478764742261456342433610375331663838640790435779190698366163826796796048809093117874582806817916568044302729499355925392748469638012855394590093857587094966652864466538391688223476635167008131463112302546242423487712121280782467499291192751985774770359372776660896745197632972268221644619294739393772836091013126189329399905336726715189473886731371631250098051746061440650476304262975181912219511718356035040471717166128431525325891363633358233662597691919264355634366355328235051041533135336472042973773344387344581120932383095898759566180780786885943594566394538829468956461112644497005807193033037277832389023326107543651214543923615448743864653163382310110080487701895296361034332930355259252503384847497131118122638378985577907511910844581836641730761397606311119479866189785480549984615498020232063959779920504612798561427594874859227071320276581690576837347408244951409213522405463957476586808013916074769510561718114724201049189160696365240725204438561976574211650396869070524976096042407374354215829969400074638777116932181673413200262021435033020931105663589103014633329899067640221591674039719005789866692657542870296127824967450059258661610657209972700771213241847794567777958618676290072465644225655250721696910756892234187733239445482694557570360677604647808492054873116045395064909976175739197606348891673035000423224205163637628676194952930433185696698188937682117488560484732850157544786948844015107421798703607582567999903218903239385509896496257094635229654876996856154315820241219781201525894786624752677737884789796576206138958808313172515943001580424853972806712290881399558972472955992729455872115808427050006850353710123059791032591994216638497272038182342453021345439570813737269561137575010367390318634609046629137943408510333342153993410845873882087393390945564854954536352853918725408301120283073972622186800978580542126393122525976517692289103668058844834577460761716302070458608357529491490974367847582330364769468740238854226100363125298195138128636952521454858434773614301713098434826591240739136699679054661553972460447264821266488621797577003263551757035782327726942424524508424056522475007350663825353121459941469190566040825769982126112822364376753113673063151489539577819828587987234998699388695135086014928585038802940477088179873837675506767115547236946775910550568540072335877746195232511845135482204137614672514659535806130673287209488233143313720579027343011109663347025163719281626847760003984458073100826107238959830260820895084576290129753089619297136872029814275152071460433879382250349682734752169794946434271804982494475759245452198818212234906446582229191673426612071704851622952135262182927089691351618549665057144438435488591563017197082572873065453989183685918792398542317346216490176897019970869777365533190520591886265235753077223109036475931058005777976739956740360374651976252876180838984755664481415346283661713488141692277470401834365686980781962816401232486299721190052763264082793511993165503062334845421618385721502951030402068171505517196883729883624254476010520959710673858086127511218329540167603108032837202512139934098340978478179673646753758227407822577240015172634930874106022871397387411763029568151038632217082436686810232466849377442950401921736024940108492749314949304229413540717944326028108664558948696834278195002115732561338789649586385360717486667441625089027379046377384773881918370666160495788439354800296801425609736288972073618928880006801181353487978178640863586188222049828000955488272862554435656265900183539261199237232761783283748931508001311393746123033579748799692437946509632809598719662869766861030273848132110306210378815420391038965066179546236313199518629254698472344866989855192101158602660439378129915598855322127645873811868460341496614403330334297491809354170528306189258863273016510706928115530760659669588685453530295123160598287240913684796638286995557943397980436166193784101071647225357077222821998265334663515143817350827863570295679366122893092614032129573636289169702629993990646441321641011428812919581200683752124414058325615055294695247807253734636520952534866441536558432335897576547924418546218076640950581136807293322964519460735774644086190190848616841944650058799733086886840203964787235906555555715585675819472583609553124323774074377399250322438446803879252764098082533828663944692272074307746219850362165472148451160428539765463768377195910569045592302527790882315160639510104474932931615624240925503205242544445335235206616415025858792791519427618653577616758790131325392283769680534129160644140088542972370153627416759028248841792730723678060730270106170887064275728796815377061271613331400580694251591517740639951744378983137804314767253682192466423028479418508524042883689244787905619624769104192539086637812132425502087327350864016365523887494454315140624786941088552234569137615535076038537770201705933841705254234105562790672860016242632600256457161564947539511172566708712860311649538715982031981877862682857443338915795129914727719097113265895935886153311874887022128042136785911487379812367101358644185958277755923086144220868938920891944496328172368042111864745077136869124446737362761682580979999919617133514948849472883387222166098753310763652373779272607477003664561960660257777212738039924031123481834499570148692198000873179327612788178946049913705001543755500006426032082081553693205025331811047437968726067414890438374597116849754290123101151463459373388322356918994435511618577180662928214676175556805127294367194481715972414893233346631546346611210636252451001735836839136418704549704498867284291719195189317857123262963458939589539106952135197630785350448645049730221906233425089045128505495211350988174900411625371429136500397718961546241120612085312539004251039213633864741092474981632008527036312817931732917630474975615688161076554624043957317692434892069607118819980466305192915812384744742714359165401657318277907758263728975352693334540362512251567379498366704851709659435250347557244354202316845243349936250538180716736169729244480648675526356285965687386552651208747615803746287174516410496015266839973072200106405384312681688699466300602042821186384452796806391280032947487836050352896845703726048255905930685656618144857140714049183584800638223215652257835175437927531673272240049717920691004870449131175128912664964972595212970462260598938202076905577725564598466553124310658345542263593705322790651398767482930152995870859577947503840858938530198365901880356047560003086230255835507322805304753323123551572169957032402440021030140944934327984509572997939623702285372435460857091481824736404244768792444412512638677943726872784802066986473711952895746325802767117511641581631369877479769286730405511553870318337772709416373840174282183119205117446571942515437226040413694371790511097748126380744092653525684825774179753943245956228908163061541704281924687858597721681861737559906156459872121131087063726577458400967922190652413218238445485395639998647005973473097207296592439913426349245774375340855094783012483346644399465876561482012682599541149118635184533015582708859496405751541421802078765235175026437900742978193721001239651836835033674441893581960818254689940400901233161171379214172001343193240246828053493551828491217813254241660344172112471435442735249691335142481499470921411106228142546328968102014472876917501575910979522488935358014460145173517995057284077052278169467078987422648495737715823954737237279220983989175410369358013992486761239211726162408490026278657299276025082549458023305061759302272471245646348390294539702560822127338031611144736530786052880723614745107878983610128682466550987314105351809545534188205742221522649038181674447623280773592622056746940845349901737314014234343260705604268804505314870631374266109543179612041756618282940171806625599000449529630328154290065034712754408540925255492367999590671490729897700275025118133543328773112821545043844253058363679146125956536783716779681226111581918009065395099401385271141298783282797141560003951876700420810566302583010115410737186005717030881082929211395857319949671246746332616062322976332392975667736011376961145583955415791845982330285875688917211992283073312227811604571552361335933445888904538565106931118703900971053025650364601106436167127896369898093769304148913277103856963110175517165676617174617169559330797501156977165242029178947785748107079593848038189320001735640524495849331482355913724695349465005502400841084887260551279033198077955801442350294804696133144610035653560886662517392981394389073354845645811756860855675707833006012442334277905270919995013972138667458023474663332376133690173955193455439907532007882005654601797878709884193917387850170750034228297295352930830787421339378484676223292714969149085544937511924819846622986267533438959261311077450064887171576520308537806677106915460746997090499661081478021265421859398058625504169748370077521736387606285304552300690392177329587969525918799905574417166169165795461602931550690106696002738674935138438693161279165026912645875497443773963654195418685769402561545532293024890410413130794499061664940288462046128064682768820522773975760378474257880850186547218253434990514382546273690318302827966612717150975278732336902007332974027615992457955625557443473326246780869758629728182662416604873447263440385434527826486220163258581063618400467175057792715807482765596266991478738408326383603392764849273715582434131344438024410195988061898030434301907623537810757297573435956755763117736494433288297397828342363609678306738927242519421430315064605329947273960766315896836801608048891510294681587037063877319556240527096518454884639804246627623629533366315132245900167634820569525606462495896199458750330307049439111892871817930000661929887053446808417722269076312283426935084793855863849515924790925151338941677808117094011855441327183118800353432941472750134018213538931946966142257503446432488881800728813228386383639699460417149665944763511875542985065414097318968090207850076405802323734278994736953384926192260225278432306321336015370343178636402947527936933839777722816848210576763100572924314654509761615405354074278005913677604908745698955500000039603942467861594863225708160201030229623009480554709409911986038482982610089379049321130283826959104084709535082272226071837607317822439371413360659143357658011106218216358798296363089792722500075160102161240449766365989447289698114499247055453959741542315321531756596654928609715640064983457648931058046011594814262769649668959583981550309895949721037583509485772726871146371552229009369608788616900958345303565714091733082663782634709289194787036774625844946594279202919833067608302628604511068053812793118961143346337937004135304391288384013074301585026104812621729234471244458068176134043232548510679400223173237767855454779752321671454124647705173061223610126172340910069926943465983936532608615984657587447978171851916839472788084196564387237396384397401462756816337975102268452223278912332318511316519815883480261931654028175232024113239412429852640705828539612385700420830374935493214470425561804456394588938290602597122534304627074735817283333950711036813517258408844812387032676151368471444193743335805447297824860046776431111289039058554862407052570088783122554509911212861595932013957316001264151435408946268963190188863644500702738917609187682601171847219091037590995936858596224336947714581286221074932353733514063394182772576252281281727434039554428069923224153935208532721888148706406702539523769388120918092384397553471471250419368046481325214301481876178574788067761268660224069196998693993777558280109842635740389481783350881934519164728106062430286759245331173004158105033990975894057984376589919701598392059358848124898531355500032397044430690036472080391784311382474719673938637676753656410581135724281789312483363389131019274828749857164281392580384517506567999666282910015018623376184673671620096066872413595279072358851067516600280536512006196536459071214538735108368057475357975872575505491402016666114848385048069758272241004487387090155265035162966506621584709346315143977746236960056633448231863288940255538775350877797848071521464066427759673455439292047208985099274667141986680676942821592247336555849620992551306543771006852973456777072923545103704959145075921686577808341871462794503302523117884947987464129106882889722887070306322692838301511023650177536882950754076808761041684980519549930130270832849804973204275428598362270662431221594727844718909503668414972374810634886117477872442671211645376186422714042283265261532794817920223725919825961892759412827888922715855470894707036759395284919571194606343502523431930093240329581726766118342170625938918640557293163044622804125876081373234884693836678323220769134464661881377573446419992979939954361455000413733069674764005873893510037106131893975369293368099805842245996754045018449535432056823431245659075979059968924154536740604642124369039950938325372012616189977414196450955891045727133739052712266941707010612146909759810605485653723265119229369372056598653191175313089099403525550164657750122525723105432982337954731766089762674634948650692319665992531912492551638526167234203441026082532651340393444898409606725168179116373734200888589380564358833952047883450456868019730447144467042517922681090931768867915304504057171304465218862646099999862594867692913567498353411566500677904736667274470994539911393307334953884319686448251705889792858926668890798836309011693356706222417447823924147532609416325896836393240929083599770187810026482447454638564331605213931892912855498750813954767616887929169064746846550061640846794219249265133015390763500549409013241446696685098122370948287296234423037695483679527720514024267980959558812724442555313994787315986935997059535961581148445801118746747324803696219725008407412637331809800284165923152730461665313572795938059667009840503566910238302370259559813529398546369456297016581910874545534065120742032137620780168992097389384095160678365363459276129928306327327204821762531845587063568296712499293573870977303327967768633685332448020797606811759896102737150391732101318208123016247523192664042193381956853581406066297502913944998190910567543582969258427710334222656143397759025267344599652740806050838942860541533298632044015587645961579215527934711434978680902748125549585679767911531877485956855312418031553653295174091221207841690790935012115113751592508944005897490483110421411165765113143598142289058851970094896437505902060864932841754274098904558970555741876683512596117324123518406776682186236894380623419213995166720271268756640137016560140926659293465217193427468794470203893668981301014479178286822096366001960251350292106942457457010375796849653203225127801247774168432164965698518640328972611066656714005145203524347331109816307931703652671978587369977385037694666896586355895910900103218803392423042657713365054520445757363416328543657972662077123899192829661975300504177696293669929048563924303455961489414622881186543673262801935864299336273136775980150377448649862403552983098383793912065759766502941354711046478008034923954739309933620557848057072069229791353737857923065811047633489682573000832259681981793101783960139690008450598381991310746364151024598670780893654073351914577193775935372670212036233311254963797327091803095112783788514855997893222309957593992754839851387611471686284717302459095818552647738028137433039985595810610691261113553959116333182221167590692440550286150372441494420961713574870754589315525511859850058947219333050728781769551609182092929601813021109400983617144130762245093289490285485717202812901144653913669022415194268219020543792767995576771941634925409047624211368394057712318052297923309412531886340555822904897243163757303127959703024352912969328542603928042028802874526674340718083490833405484821041076063055123891503976409353608497310982023167987120379699172834048013893660644548598612848475489545277567633917704608511607198107778313040735338209762939182831547601646034457082102918929910872712825389740271953203900721504697490047391391007499858341928800826351347498646482904082862481122697304046843494771181704360122986982570117621598705517425441627188994573174506511143612413861754793466358648573657367994510249490873010118492383314382555665107340031571272658044137677015801054650516920209384333717728610710464819753591992926920071275241437708122037095737464958365215605475243941326382440232954841572160693307997209493858528298217310981249792853017160834713950371352852614788734671644147285806496575557073080231311570021655658709922679159643822993557755409254026637907266638815076393389891966243999702772088253303865237635595473845418207268104827834000848239163717857689439330218863880155421056301170011837645950282012519184885478047508630591922652920893971491523345448709614069846135030851945488097659390988422520946570402176552572728964062197042580804607833984939701497353760692447788411556775970197151622040652579401714434212016911685424291463322708689636414975941469891009019107730709596443815816952068811862666553635539166860296124362200476123250910134137106347007129017218889893513014529404650828689458966823357682577284193116229572434053933175188790859422208563850282714078941787874886628822774643209346376311465268481348894519358094223451833062840129952145851903187370283073136329207283073615229869561117461032208506257170906335457171027771306227112988682640843130106952753030971529597778865375639189744977190281784942951109216389726857211364057158130904999540691550909679011128819953905922858732411062739975404432185937666093085228532193726429275606424952041257348328450682304700885355777346610207070600040617778157950830083399916691320111646762566530213848226976264444431609881355970793735740274117337716444618363218303486718933264440136419041690582737700775075708939301573125807165023395205271425223623024723435283834243975096846144922340020671200044362117516837555700009055262730305975762373086958317372151858292012123726567391724805381429222916171826004260570357634665821137300326410771571429265383145531127442925372405741114423664693577703000142950908281718829376606776597164227181553951616126582516668877295481984119328892646376119927919386153030776933803612679265216706220912880546592068831688371295195889880194748766280293632884659440350896456176781807490290654171274661130451721037203305832147654785156537000483151064180808271494944800820707703634263916689649011559695022641769113326796899256568013732940319998958777060018417434440839597602270564302066095691286490241528848972118442966890011036385907899217621984400797467098904760731197138274948642678710704694846499293545905147166533728366450074396979031053307924955157526868841512572037071496932792639553079734327460330807209787700885441655997134718682871105358536655271850976654289128959431068656670105602833141989911245442044465854978819843404558539473739351224252373879033030722015248981278397617200208991093933627371317347329128691130812411641017428381082386940144051612774155777535803458889564900363779101989504767617940474918958737859851039933303080441363946365478825266306350997695436992526897725558130838675460940169808031013538118710752846431510101604596384375190761683896331869036028774155755838566990116784904582486756324383355711792652846939087007844466578015342818448920340965065166247124054946880678005476932024739302165694421723494286974931578665730948738804247932487811370147362980462742715152851757556101702637615149520550478913591515240598833457651264588356977307419145195480127171667965608093874641092865911154859906358927291222880577957544928568335488980886832341562810638295486504343091858336629395975583881244973327840492188335048865446165277521683502899476907736751352733635393275454806365212161071584996901913116290916941898107403820639516987894538329993820183558270850688492035941458090355226734776517792925064740271118975051019963975136772363423841534929640929468119782136703141354944901485057824341807004267768238892297591006516092231453953032689160395062009300951057073174262555895046437707062273715371199388406627482110457164458960874776300933952814552086742520837998256130409574383973956673160910190752294800329994218960710593443116154871931336091209780252771758694576625970497657256519643234439814649411032435686064351968080923063289527007323704350326812508557579288088663372434034519770430475385238951612656691859069282147735875762465718956395076824576817039647955345373609022300585137687479692567190933697492830628703534816867752253438133578235629854214083569627356905780639956342447572486703483067879609499659948505301329606053542083395224488442804879237267761619445133037962845290786172961327986681631841062933389405266424838001985985417026071583971267460793826791863768560890745051175004821499350465447044086233445934304645679260628101827752155585848943436866745174472454101187964372621808442611010743159081322646537025504439343022212786543395441448370489639518205347098244655359826724156932367032092870069043238513263607255616347199088490106323502296237454784170807509636890976091334174322576404250407905814816688261274586860126512681384850775579643210927958421618824373843461530042543791479179375451275728686844878657833020639658605931509326777758502632854733950843293942572619459699986925922435592571071188974910753608158678703209291245080001187116082469911536840361962363945792930098887286861709576010515831223819245546653110246446080810690874087857684603991821014290651931001391956243686371935716032691227960193065766064881233874917307457013510498033809785347926804240203328655111147829678442283277233211313090477741214318917295447627596635221050579148353912379617308242054084824169253059350561552230071482585009151526146260276197727159156391825289097735956341794171545111479714315634668013280600058815080798225537343573363993155418421333620216935133338170665500182729375645059870826431516951443250560691078878970591133860210915041880398611641578962999178827574155955027110563683173624422516899143281499704750045708723994647392036477906012316583234080652267327121523081793089986433662264354419600218708205951634293493693408337546745384219267703769399323936776269321199909419112160407557113209658762978379701350330995480611831297793111580511213418954247305126808202951449060049440211000258560377640891756143622896377317387255922047754476125062433098580996452931037796548898905940951760841463007586539551750468521371997982840434999979270763287988600104782041935463977817505815812449630522076999594242691836263478327651731427887847553174384359541216207140837953009234934740322361297476145390191591992362620837256121969813548699985016192292325896296464426708646912774570638587692191030466589185356844596279440632562745892427984369053530979855113850040709585933536734627398484480572590218349174357996872499189271638825973581811298612078016810135888709309604126994020886000214956186577409276452357870374569891561876694519139408694642652048567145942126214250378236848797816853842960368010727803148895186353109368285141824933872817299530842628054486952997550987838468581763650730809893814270059661746261268701640689197289932002634558767111886641014995627195416577818481413888074670901110514140509053023760582859248083350325656261712306498798933090115135291518963799254740486089069531750787377170810700465634929913184847464911647162434440432462833447223435251380223995668867210109808613437981917299056326958940112676403518537475024714061545701416160534090808814754921285238700342286326159988314230795895507791837231282248839873341147639205607470839181018726330539782665259859676475794252988807625544831318973555394297597625180715747247974548365956007068441874600738610922525620212165985788391112197527320666367834959134693304518638177799585603369988042663983257691182765592866188020985694841043361173690652439606498265671221343873722441531269340876103039448260705491898326237524057572614808219617678174878711939467055941987310210109813570991871166720342426195805030308693515737262659486061190666262114721611744276845992176525658304827085070173496429724154683129781761589309397982764234528964471624416599041599176022484987284224928498066511023791557976526875178116326986041607141452228384145709678700938795034204558828843674313164038988715727300497296546233281012367617799361642704519671283332471738683239089325246342429936755879537963090349332358270674232358788008834997772292645813628894978457021961813596994427541329665272789784506627587119536212093464156157107286823251142535500696923002522487308641590590762420642836792277741224664819723341364782571775116507194024023305096761986521043535406778111615134261779731071571340064138543264920668255494241694032525026960700392896957594966515208025263085349435547517052313944894348043661421461408593992799335827670456689943843415929395946673917897514454800004361789541590320067475025253938171684458915187069851917607391289055654858747993929159029616964198255966020331057238145959867576710833683840971527391630870722284287882779639349638484787420010959962826347479674453791396242173270612176958329620486539233178301174979082159545208973009582397992236740403829255333416178900692043892241511178775215223617285513069498709479520736363276347420561381953370980472950476191229847510112243305380008664200090571677624154135978081245704640212147804656993478791882284768069919427680838591208001652797840121869106846443546009047476975622925303453347980814533544679983142730614966976089605808271878052520934840318936984078281346718250755219600996019168428031306125560814240936311925632883510895620593810552016478297213551703535076652377217156938029053124885820929684617606621382741620132535142382164095482020931341589435210760262064754036437692600921333272364544811216952324265634370227293476467982156484823392222634629117571976439663012128240856178731487094973976594653250778794261539554129237285982336556257562140485106993312702677826243425657978015571656386347132831180689256052328865925536511181355909964663007865737597524814137038139753606941282427850133855111650449168235911438037180529284992090002460843062541770812421280297418478059479185034191216175100622673776772951264450879035478616593538619456284275212555802589507384939936862844766988233029604843196561801338047422518266042667944377131431065521005645014271541920074916366340988978829667434777802421681941521932028281920274373930984586733919851132551607705145886899535382241569311905250466545957238771818247172796574641420822169334113366716200780616116601324256029535865866298356667249942716756717336328047638312169459547328706391007459854493732986178145018341599004863752471438041005139946818027094475712996806192624953048679303112945373982669041486051821139832442759318415610408253287758329740769801189746930896569269152750671310632340810746962938604845466171904917070517081122717198274532915159323088327852393695493231347068720989936146971440883673399327475149102958134636319245621015675761216511387220989325449331286564705651423710145530577461749234441564048551145259535808901981849496416650870570730181323052951182474236462822801105754500754727206016514509367949850659813736305844697273041805379570848910185442122838676524489646445113079868059227460704956934471571721673022260838481249780147690412042041944836591626862491702703697796773537481064299333338406635097756024944696130304764187926015792557460857339081229927132166375949236195412733917233891665722993510883102238749561012545940221643601672850070885782520815791674755861494220234008696023235219997844753633937641708993068869077984358215162871534015592428194410095618128693167510868732366454911130486317827924888970375724040377211014662864927654173265233868126689149273261789800744855339244835363933725492612280072472269403370779872720664465186304144589879301609373071876873364037253156084225288046775157474611999284188887355193563831536850518772960803741775331809477249178583465870384312351612656545173354825432337075653581173581012919599883677918348374826452047768236204058925874831495106524175168402084404397357791952991656127950355776437874686549197274288554895016125594080687836213752982392658152971351610648324628420805382201632182026677750318944818669586687669622210512272638698000721371566661496245072693552314908369639015831526573838585846191729850482299395427718502841017625972751601616036780550149797678405617300094241222077423746558211066494728516605105563198817070190290947671700449506821786617240985949796918047647941126682879261631245158443433249351846405218102702053237996264590897795309177050716108120255221813475898505413670321533425775895851874719385374628673033663172913618309421256677241230945270658520973585231425315944529197397193155716542189734046745453265783062102555803587841990732068575905989483075701479768978042878158216469431411229123962769345959468188768694237222804214738237819066897700177994680911646348673729012299077124080333939985351396928800542946739388479551833742571616102814130422617779346524220345381698893968119603739280405211982578824183803516256869006169003928259434398340704799990080231366205193845105400244158051844565638156060844936449294509549344261603144023362798346532498275634951803244256381903863824197844840177535391261536682588521267961778616120409637774548351539434194767996636587083106937387070918442528805507224730277518143932693854577470800841720825306797251963979790324141012730242579140607777614133196073447006417080341590212687355383493918404540387280725538649972088231444445583786977560338104977161232457361820535458436260539961593475830466014544720234745898566115315114804798972630719966742675422882445272420433311898400749633458267905021383361533972745144599440986297886311764029949464939964461002309389218186934215711151260510667103515237640816611639468411056490971381458195736424054531271048982309937699950890932205724960689661658599443539510448857666295159606132257400227238214976143987193583300219475747794349399006124764163699248421009696127854168153634957215710658286230968754722791856268732076286023710505724039551884412164670768926275985920308459450799512282793216041200781266739341185220913556071915987686353635800593543391974718983257113595892548536980796106895659027931297776113292238263510128791713975966502023641023197359919517037328104147686062984905457799043453404311672085844718078659388780476183205985872114925960009917915056689457333349551978430691673585586817010758540962424487698430250533050967240957747089283224547351816398741869917978359544074363039400726916357624681445555944507488124522662430831874063167665346314339656707711989950888486630739264060743670497323386247382109919665125597714262686059884679916635570176643975868171707292629350333364230188783798456061377433476642757380544777235185757012133576211985620535884374037355831857105027088382175236723504682599956544274149839139015836778753902763647579701859963372408422473674307109069001218922459781861154809853682154847828520538093791876644341693544620828054871129951595276519834318355896796308333260555814452001730663318668271388991623721583649922081839356869852821795237747302448342459194141897295938800292933369708603240030497749475686236310332616990193367094787909002106637095823745345412657770956664036085580080396484758969236909415219453847411927937972065907244164014014244807232807327269092322303476511716558366361743121999013189419410467394442515009708200274212346602154321540275086903199623432940602794652472189283613776226724107586727434745809076000699065212323686101017426550697938805318297430220567735144623816041535004597706803778762064525115567757662743765323731180232363709550930711575693476042964769762884010740569843877374534527842894084186048907844676737676175847723635177168381908844582264088066346381378703617992912687407947018032263403817125052011465566674590087445801608766489787233021319478361845545229882279712684484576306510591699480609623651359608634452711613453174690053189402862858479962252449488796358413573231783259873935469936249156291232004473460961000895223664555340679642530141934836131854397549980901061590388935720748971452547683765134161264995228439872354753166832516820176246277062835195608533955388213855319248213451865769951032962025317632265789429927870744005012977532561233703660204265781010149654600182352937958172114796275957786762098443793920304762039364135294796063716943340148151660846037388191811148326346786892341240251900502932184074693558561718931273862229961019631493857396075061682248585274044507898358567464602872225613881633760400933871101042686556281682157064452178405018193323310615153962487883895178349828108480231318944156782382041940217637078340649938220646456631936058345860964610688917243975405250758272386730380311666295659847191303942254637489850060859776138767369938925835294210650132739129400102619117394339882499906699131312819552012888917496746182878994245494195684937633932511716742140924997039169095696787543763293597204107646638912164438183044265746341971278774142969400926937970227640233669161854417990255797824081754884328311871085716280046529770740709450596681907921194422320459119535400266265369650197342015458602106688792347702413499250604457585259222823005912390152737454191410487444092939192119256164388973644959675433928338017335295466053804484850701401685746682114203212137578960215603998840583050917170490190190600004605341681036878609262633405649919244115607792246603252007648249143307761944879074182910547116921117337996894504336842387358201057422041405092597241827343120630385994107549011984913775451645956910440612067017899577787611475413969909187992808327722040829551139294599252295063469564625288593992219095102705165966717836715842940453834575001926077977733474989797354627527739210101249134702525085449184278425000468650027461544053932126374885399187709983978691069565374242896554394987424347435805187636617106696647572960839739555301452987380840661477302760043151200906944044571946358644371966042329521484876569424075956569611327424918314912628544350649940575708963819853283583576634579758831671323605816607266956609575591296946041813353628269321777478615283509638861954811268946444728489578850712341532640587335528451669458766774380351442968319842056723542062360268306206874255191361744660802194645478202533577346122027223734964867933438907683007178053726062686139599554643187398730697058816901927903608027555104323662378815793980018617481957930366828029132784642505813893728509925482234903811770033779117947209380908227967115915723087827037004284277039656722270881598090649191257561404385647978528746784693919455697171939555399475667646030076940508418261420905921272608810929817505572882660841065089441224333739944480411809848617737700266582969749438043180227644316012914222178282539005038259884704821927550510971280117625248125159817481177457871328861999725459425246985638612523957201338331417780741578105375265360159880469505070346625137065222653085485842865938896803348652191759561756209289023044753475070308576176669134898698967449744385785637620221407140616114952551956519279151763124916296277806954458652482435052231608326683965350588423274956093526512822725285641647916848712543852515237456877957021254789657858180896667692310769509912237072455986919865847066196089770947689865791995786528695771631077565304423769514587380006644925831281297073315567970834936589115877324858366340283494011058159673909448787185534481696103935771163106797015613350001434390615049297324487214500327850850276477734021217451039531909278680001143945829861491080138280988234658841973499404534999062461374842570623372866300043825159210379657558640573681081282735887941463407661362646154868654283797196847832418230858326733863808927678395164037141182143085120707580713817315936912720638157525139587464457854690498047350839376720532619368135066793792019178804428690879845853242048116185928527856059016471652438888962541169865942959711390005910270811322476105991256902205219802676838215711372470126607155783901997812186409237363724862002553345044215632013006589546578408916147780073578418847692288558918122089490226037575175288532108309918418877866404593604081906505331844191762472949351894750528236518957217335963066695675153233640526266358294125804001915209974861469249040189768441568379341558335955059219807679827450157387023054939050140935266340989921201696110070523140943994652842113387937304059465442189502935368495541809677807477208851136215465033116433058058173941505251577878592070088714657947074404971195405001138585397847736501664537184914095127155714612185623401106813364600546162185840265207384836302399852922141059689731510788034046653365656161576192328428770887762095754047932925026683218208641065755234294415085886919842409468145571641106854240555222980402046495974877691378770488689176311273028904658420892274951503345514407049582579108279281501017705633963324559714161500290193838421062445400221417959749865773841732101910062987721587060543718449245490882003382596121558764371883457510054755888001267338402075782628827193325558484005724002729036154330553962306804470646610786423693758550534896185959567443539784283889631413300081307220029569410809904017762629061415067940430109434344593349499637397237319324721906551233691342590697055898695463466124493727060775462663750285068906002509022393094468356834915313301385718192155312863476052600179649656520236019817526690272095330774390920742627253218280624796955237625501308999447322346796138472286183440547768132628322843996093692389146066220173166651811765150330222017218168671662341312315324915139614581105890833846338970612585520174021700184908859221406422640889170798430557199329456538514074318212104324215996592172017632575362745175820839308761607573432518540085648019124197377223449708669510167573182150651910626943370368458654813391037319865811415623858776705885546635260417434499915123915791764669180470322687522418761297188106104866872129465979131662674279478497187275744498195890494653048712371074295904367046262725435857907090085284035477660091812199396256373199411868683444336614933300925828096101002724964432338868043639158893924487129773417022783433279791311325847181011539906129782350454474719808370700437876841575149356907803315127667705384956862714980871671095792224845165267611904379870009355690715212801693901869681032751383597991336352577135345213305549193935794554309237308468898483504341187966126719799210947556514947475137076597819616788900937514397548995690681821844789179874317744006710847637414422517971142293916737927644042010061974127983645414922694159913716650189950806535802240300190978588233993737645168454779018833702446628765101248750772172928015394283453214461145507356251385072912404403830061569216706114387252380549040059187302187405325071106053069398188533478856079363101382677517909667154332782403684497111168271671583588771076139101802290568436599848089596225148069619576671824500072138620069717270138251251105001836854174254872494602775623026966479967979501391777273140324095005620914356607628071163379583925446303996242398555339425830562861579988110412271050651947594875837780216274679208330471689380574398737707559059022379428108162973507953573680328311420725670357038903383608352052202492713841170595321997655769413404584650924820571707822637157723100959694746169465681699456668277600975449929188821386834992520253165544876729347057356868930671644206519181386408742051861115395142330441557268484432610074351680485097833158262405575428008007219821264301845749152883440631316881227252209056671886136434278970974921156456660784127781511385037727174734818778843324325160054430284358785526760256161860893306878142012481087780223758913835469643863849662555366616410822462026241181102358495267550489979730719228706133072901078635934924589100173273108574164743725626240704330760929584135540752396740651182449930105201240825740594660321029887408802532418897564870007480007223580759410065677128805153355293493823277785242287296974068639004223987182683237807683666466454745047017382068490956466190812857502136361851690406212621016121721783748879649607280472979391748742251505840041962754039356801323548991725594831174232970326592170492469618211988921399473073614558850142084633756155610494305759555125736620619293999815889108248773597043055610571947977468416257435606794669384744469510386563453689357850786304971284517720055992181794337984975508016343581635798537737778324486549819427388237641218698828738117229446148820976773516977432272851001426489085020479572788876286053696120882034052117562999160370104439143012644431396259556890656237014581977551724917509380340267723019316886162590463558047480084052367476049239099269482969096992139456636968287139938236277270005741393861092353038672846634292833313946391267611172140198650554745882974838096522128470786314725893578953792500213574105685666559999705901300119429820840157956703337929713359509117334733097845641094639083025880711316280737662980506118437014122892676731498109412000431974244319741775579633957658885282749102962572818299386764363297973510305218091863360118279823003253212120484943514208975096794566442716980871203682682706603568124732221739938105365591467717260585543720398282205860961290540633364912039830391509813003330571770822690252398724372261330626403783798653968393501520817123795500637287513521153698840433556406156546276403837638319962353666777167274136082384029951095990737149223407533572745284187525116747771568962612515747399802761395389638004521637543080407393667705961300434165181382429266894903285773508821723076525876195090120337512697807190027133534282043516952516863349863137865038942575126133142515208219910806881319408852962196409379519570646520126703765775025394539012398707997450098326830420377925476219434308861662400333118649253663835897971462428234555180726430212973487477265444196033198445942431770830714246237522296523361121830293929822230977207651853659161385608881976410690370921226327403732136661555479368912302639756201202313778484071669605012923794793949814455497357751576993152590789769367256561068542991850822088193211365753639679923441108118876502992627236680185068418500772598334560023034830062003010856224728134567126851012738915707799980487328521432767246387051488777119841244085511453388321413523301035825261863329347835036576721739806339056548978413473471946797909211330914970739957970390914435458357486236174625474826482790088582738558796172656442153647471830217715559536573722830476335214701624510835752373055361131220352826173147196037227459353860341665894637246455236988510929493169736529556022932217593665111088411742289607116290468199400791442772712821865724593890825531039274647256028184766688177955967383640924125053283857711620185979422306523360300449933161773404919041019243871134922594152568820937561236623843263962122988206572055930009385615171485184791626965524767277390715080227716846752461943438104454420112090134158022786371490726587873734701639563130739317017914753386692479171618635269492487695202682334283567334531635588026862114421631861988794205402208576215513858872301185963962422783648066431592970391024147153534420037104414871230587615503540293623979123709168249400543510791008148443245518500669552854646171047299330841717254330599142005051470769894500332546830907054942396753496290087420367979397438846915056190492738350277901476756843924353227235406433664380302667267947505023754297414277471849403288529673249660702447217680732792034156208737069840226325592520405413067989914081452494259245495752788288572198322588710822177940192199445895278284632964612563700840981894031982735324732315172388172862360703007937815531995915998028915823820651452509700832997512238581779215794285606755075534452665943537079956993144884904627962720263193069762204062672286820555267718492794476874560415916172627840101979945401619514057415156370277056067364061023530839063591907170837148575148707708296499960414966260356050604170814337017219103176692548798617704485129218761422665104903117952372296724220983828130833125629568873383996345672219156044389509977629215819776662376913528168284816038622229365635254405050149721631588128213762725146745885739071770392925933002308366169282982624342986254105289173646871269222371521814003918082411217819409972596015066899120420169555629501831611697722726756157908744126890211348928425169754834602469334802264583491329903622274969656820507718188854962618693107239204605065447964385929977871097237065680538743291616940460401455255003860931893307113961248470082634100568100575425521330110420825937262057972916081516395613199774275926899342156464478273805363143699693477550864267187392935165169143855032345908153208762428449755490945830710586908843179398205748352792062005590253150618500045761036474771894597359415724107356786757016551903123737985064435658616276244556975903398710946084863346794571525684130392738748433583942389989717025658944924065723013844812502805887938519158603539026692169234227306123750182836593358847478509639238897480445447391330522864839058116068677237957948866467430762267405696151469249965454888570564436207253073187017733306833032337372292989143924583497028608325547805534071807969869797382731983217647179722545973870507065402808462189629224853521287621860236108660962638723347105943309549705788065102407585754393118183794776111473751318022765187602597275099757183442493467381167813690791546491745930169464170266530694298594343354679332131487067155790911398608275182288018137927051664588137444495080921185545768693103139006597289898406085192581986257429622957059677677587012575116327957044333261864990483864336092996287820037055674059519612767437568907301258283852384004343918756886621066773295793278231513884748273838878106144646524172587749115136185113273908720154368261337969621441741667320233401327311259941457251581590409337597116544788445205794876916359963162099985624143632594540344221396360211730663067489315759459531601661238784136943298746408372325304764199201688869098532230132866776792662931062423277690360161638468044472517524839104829704522862493313797345892102657508483782888558548668883104346378137784775636783005629346382269561552285982223010271326002831552261070358180653647672756863928940054654517590087478392438071218817972352483372424969521243587553145568694789855425036475309700204010078328458142899932448300250798600467318196491322216328599067486131396442828844912644061244649295099420894431510348526580530113124295644220239671921190835044243644892285098961592591402193422880716050761871307940782686546957277384848627111382882914080375077272859006338556472325193999736835187788005791724045197128306662218310808623003760372909490973997133863410629400312963683599832364723947528415062275160478736354063300332040609336229201361039078513800730222904569162622292593470940664585482091671400523600248318041940641091434455999089788322844875088843666905621379321089510219087672371880871617773601940103392642875661691655940359667926455185305778903155692883162507751899249569487259054445282205297136582623023576722991364517994200300708559966839705925168330359516216038718376961879524887733863234641093462292126179838240906736651748185541358187084513897222324367848451617452875256286664429517942993736212421197150763026636597653921628899402146592540858108128957840956328338571026031437887160096128145911678915466157537169085379690567747344669405994554870885246074611192598309056710391661562630820959344599070989439807514591158892033259547555807027020874995766804730389318582181052184888580566842861868563743489426664564008197809578901908777923246819596298658735686746795143038667662926579812699918156817479475633503509835636470586018313046351063172884632967505094533454342040626649959719340163451515847888107080860100301926862418722138344817710651539006781071136211190868494041301713041698389461517208386575940133637128698671891494956085196964000836423167470907489221179749000051751696664015120949738866380597165343422849835157313873147135602529393488417727644043387778198398175652820266640842223123968036665253904511473318686342392524255314648185949895663243860606069180397068582375259353383310803659368436998896897394414137680188781531773493196026992852411008968206478417793401497268396230216581598711925044681746040936279494693024626683630406060247792233818956756992939742557204182071455992655863276149733917662745819906031668059896396890475420464252957477890266474246929462210097061130351899107417495267459090239392242251389356099076378247682217521496053029361680880682998252419940628665367426054606976565351911289152728766657755532465081799180415663511661466401260291068018890250680813080417021603984463102261698795447487183921880417932858932357854623271074550775426224973887153929764181725786084305377189619724507109045198435590215341492722959356479914864819353817803928634033410944777540335817457265099436818249831233150587397068791187565346611672015097341798764534325087080279793773207200701102919772362907795820578960020829295171704583706074337519422533133207030324722084897636187420693156289521108158254811488746429172949163469944114575257446348635565139700932669473616301850738918903933682740120548122759896127544954511007651587380349090921881083060931807590754228840670439286142085666979759225349807762978463585869283961144127391864237159901525088494546589789775051933167744217886777372825883268306232793984706093620208343513665031573299451653195360276485838318209277398153623562353576209094206934025374312495825621561129804234297327612727819805934428492958906655315678313688162463767906404312058808426656585646996201221320988572024932191136017034824038877843416991963519607586119020265214152432913592482920106026664671872461799652649598474389884418251958734010603469740431851863486073008916751248938226429235360930358021702781335522184671855367006279221467751749557869231704885243949110522190633865233228545280640978071408727610872818739149084260224719408015780236165227203850253586039164627792647066938236885727996487328454032594677602020245369422567953678496556596292349957460632724725169543065001866276339084541747456132910776374881169545816515147790333030537662528872134904231828213312826287590527148672914916082903277326363822229827760292107666441629409351745084310154573183119482814441268481117108885252573300656918550956238747061955756347097725766230660061616790863556571285430260008818233104668368919563606971272094100057090437885321687241236370627033355234999632244544751650196546402689277346815573407089635202574703380075379603228800252385848039393575652774539882146538511556926769736572791349609185033067113618781510640184772323013274153206329531694318579111328099847985405802128995806941314795709512193381698407092827953437189306698698820475398307967066199781977634008000167972920174851625239072241815186893193424485911866177561544321725843193365642843294959242265895329937489750931219951558872994029821455375487062134669713891988074812507451681470389573129094893976230200658693045005461685309735619010023165059406417286168697394270501157994082118343138101653047922548137523520809141640004329900854494127926929649013765636788189092996740348689407613005267184109357159663152974448338658791165344878112701821631182312870569854358576830056107388249710629187906177147904037761316882972192133312492818449963768073232849196017330829275584975435535276625463006783203598934995337920578970382034636250664237363192205540829203719268700936725112931149922736128656949344831622184491912987741637445686052375069753168983838364050047162498529745050555508211700888022514249862075753868997735624998481433445957500058909480021097645312983731470786533486355919305157591722450333912356804545049396978577946320284455251280341166537406394093297755814223353995257797464674964599406909885372834690857993253562215589283531950788102581818414005676580516621456658751478835362099420762991011253605001160290924156884728498500702859284343065738942902134802433083638334983069305225579072813119946363921325336656454028989377355327642056048790711463430262492254107073364526718914837714722485517740694576444789354829887019077341955429775272670032959556365456487624340244168633947236923007419083233950596296893351242437408818187538786335390943902956818711960030268190618094627477734680280501205115999959035753666374667155323427364279058514358692172700025264069743923439367381556207250957579639365008048894749536206030478523241456252129353129526260635201603839334074350424308922964113523696296646142014081677258282673125343870528199734736661879248942237727019510570030111084474703094902521284718394985960170628268595219222598913762067219526709622254288630751376266456188046631921883430534797519002320909866936869792545762859099707995503807787218266002564523466471689379823468479357516331251325226538555994416964868703433179530919015967477310187394683958212293945097262825151913361724212902915951235086586321274972669697363491627104898868994329634289315760632313529268545322059772216714551275623409372835650662361648163670117995643685463844098824774673408215800983744295063352148385360659837427150177226999384744932256060138111418668833525845638625860441120649252805099428956413036044810457082222324463584641747732831140679202894782428139203787465432642095336917648658178480983679402153720532038325629207881301628651698653857837035108441125294625941775906787890600690963304619629263417558309666386173248502759370675462834618551416448236872020666891780274131760214257963074079159039128411827589928154531904795223316971646987577519420323222985098226704266381579247164980312347945190282686015175244637165961048433246300206438829070285337586042042667192973472645990289801755671716181088634522412980552417654877288883695870202928532867457627459376615217188006954304076097334430681682171718689478767339694347889623065329922155519267726864705049121553239592568188380863429318819722560327971347515986130990494652584932932723379580129606728662387687719621352275164645834464640188517100317844627847209171009620679913749263496847287517661704960969621763366865148179609691834654916895758092972025515344113121777120591818871897586311944498937597857146909980910586543969280181000699614856067479301677284285313844969399669472119334563314222760287307491246463669845938358949386149694397012530237888471981389134610458131925207015790695920036984292264585121222402291052529610561815845057036982221216550911404764966795817138783665136901000719805777276484480104705215804651703812953567143625494493796815405273684562192611541346558024469696817803163744110019041746568966323212871438340309999870000439860218287588320821247892303531332897835929480046008272990499240477408353253848588338595577999552840309358807373296922903292649701315184221670396295319009699256725308150687832686210824605797236718337372969933371695471684766688739101095511524502123140238039834244030401962044743990050759895196245867114992019352382270361224283644249698497278066818877582063531601382241523058631221723426287029758675815565071524710465673862145157220916345188770133796224094911879889793331715440819996509452626373382429278641549662384068620248801920192170003399913766769097253134105115672524093361043011374182287834774407864047793697950217580958771272074453794714480046463103341999838351058746848698945562537603891199650823473896014048429586762333312631143015876271142288923231657122393057646945682805869445328430387481780148704427837345414355826668163834705685939861018483612230543063532182642263986491608808259171264252265266387493357051559877052787553115089817917769617441029026458028175612570374214755083668698283791850152595229571545557528526834528061045845966066780345175301171512412139036966485952514583140250125796739230153232684408312931255831091618827528119128517344078043268662198077552609755635318355633970135816031302289127748885291765965679098324965106663998509504386771712382687786374689556473281826541886133441815827930528113459848890873278663949814229949012420273271131434771534402950050507448900617108107875864754866346702895617098049040756392663933133069283329934398738711419905542954739372587405161668694912213636895618146307071263009816808640490588154306619222261674955163396393712805131098959007828433975889047847257081612938879908386110651178340079703311512202236616743754874899779699218561634410075124925852135995963289196912843046200206355113983742812733931951607691615480137253721557707205929783712316476382963986552377857517958663489843224402244089465542500349689929695625268055259764572914535692493715807576171736275626758250079742370974393921661089319913890923528572123964184215401339180208182302966456512265685505532956381375532558631183377335852428802147017954315486160526467416065348636134653234082440814048763394572822331050392966970962477118066506463433174185837799806189430612869531282388911340938249484941747129306359922538003373775606375297768130391852702723486501879889428291908923329379415695681069552731156225303173648562966862066030224151667776331304305754284737550721183197684193845786876735205113351550380114629186974847946669769035888135284665125114348255755159245086843216593431611686596221643730986822360612148706594060016199686883346271321896246059942094452873368826112064548053271259651069847935483652659385435387440461801597736507163340356196318618878500028612578890738461544583491988802645433253081195159118237682437176262002105794953295576272862485838624675089540280444596161082523780167369986924636950353351409324179727606218780970281807183933282365838432984292078118806794065153028085088056531549606892662212027256395657857542361998821966828667288083345416263189239835517344496998924641854111936667383579485578630109860679063212380845309310895530001933441764050925666948235584565373905607083439838581077363102156680344290968239455717192981403049991818158081084457455483112331085049121290346142430212182072053523440453085900744526853390781707243948850990532111250333806375007515148737348454322090181893635900343637908441397511846302655511097171405190373610911483697466885871386054469127713122530016235569973665742968894821744674055476151589560940160484011646424114805387023417534806292793041490756044113781544708313448287575917699121467281134821395037237463839575197774382850816630292572207535488095090943640393493810552673743619202056470067035070714281322809855822797461248946217133267583798445817220856713231392504866354536651563587343499522387104426786676438871717902046087585756377516320498308953385733002141654938541030800555720401892857019255260930201103535299278862430229817629685491844111026047243727957682589732445421669815399812365213097723930024679067502888306043848730845639255491791654497147649698786221642766323009031566239535284296815589298090820150303864099963376840193239476810557108048309179717994086906553899397582866051930926550996532562088099097259353742014520685536304277494186241871210812650363005507778780506352708464851159034900212820749211806307248465274591121651101097838824080519864638623838471501143358790926044274424581981447695329548396026844917532698492022200203743718084356064494304849132375706029547079238880574395867843928268492217138722261938379331070402172832001817894390357952344214386624401410983176819992047559298489397605028998712958363361477040865389125233248992127307344731416296131165688382191497972306200755329516372933311512347320243246426749585865837529826526217587033240570196991053373975674815358311476691013254229248036549682963745522356143203591560525830173226729253388602669690636224629201125643543667284372488962978418384471477897326148953296989678288450116613715249747091247557963037177575878991882761463189786058965416651793277919973454953366608923046036490089062386083376538387876099317870543775402210415185644053806497479803273832756924560977214472975930210755550294598418654541498313193414191143312131815078685649654347816644008640342232920770027934405159545715505127819961675072697194418608404183149894128928429128720329248167219333399931006674892142504270747885504053815818316508843892282268773578834530653318328427814069409382774036801938057459602041369850973623244345356076286902668626173614626654874137849103940646946768298171960480516778821767924577827762384651441503744093874568170503941011579407938680637523336446923736950640622065047901810126897895465287374981686259096138437089835101012109591095442477776230078641107938496231035491288814367784304629561229884455067762486641525211167852129968766582675638802379132938047482743450191658508131891947552648195241432786035241010243206082926258756969949277282574642676463815346815256394196439825873640435273126965879602540122076357670264803583268015056067923481343508911703865227664584374768374096313970148779874116425067417002247450087134928216269872245471588236379035963675820567790125600961167246097349656871046221590434780720320118098264221023868246871280485488940023724012231725636155590341774227444937680100244048974054413937651246197661523162004759384209382404950618894793140962617296789344062053934221246304168451635621100724506942135455360135984941196943941892997483386998629096476007009562052111209826829199893177550009503167333119363438982695744791592854577493756194199599820546118023265117433975213429941690480934289587224584815729691215638931662580318775114080778960704848574398961994988913365567047084028127031791921039945264246535163456657800681769854256381554302185843399166162131239027423196134404018965120933442320445759917940608896702535193401934318316627315424445851568356080872327911333880583960705235706386289297741540036949854807563954292004245605673452653840196012209484150674567079542432196094218346671843732625441055197436545612727704682592843491707269755669175953484655553199540753313894474361859510797295453488566103231448953957778843522177591568763645597410355874932305261623005344736335347677984776481386351232291892933419152893287435679683163432304417639014231645261345241090423298483504526920029961577856559055259763394302449730963112258986347684262240586277903429159235775475917710640518805148724700638531858101719737320852364014790373999199330486013953271473477685172130175958662058986398428286353561923017919567132710399078443999402328151491249650160027271665663007795672961088867256738860133092647258160313455807555108863114788882921911251127016590064117543376052323765767023685807192473513185803784282366990941022503018722132109583809637124695553993954622306716216893649903476480175287028079316829461928082061947159249440078552722342164834789663091162949138034696396055251981384381397894614146359507297175218906304950286851305168907300252576701286696028098055007215585826126029557258133719949581898252076058747778783331952689180494868366564580573517603004262584422255664020647214211237796592308150987719536853718454495505872324321576254509632585037602033990036887904104217364818545134226440693916024218427243486606320625172813191898945169123281330222266110088271514787674036766890251146892230555757533442521140510983066266966213771751033760821409071148924289495065804724512979522285743522851042994014087991051427652682987233174195860076409021014340582789771468476217804377534858155027305999761351617183035497252790025784541494285247601792701782819088052532840822448250604784169405712081733380781348583641885663424308359987141892070023126797372824906521919104725722487169724527696718179483512280583130740263781095559239087421992919252601675922142190970552881630097973361929574143232173262271354410857830487730745730060386368387010118651429427600786179873740267717379838035264359598014162367403672872150745775247895066061342932116725690413349742656718366801697249155986055165864216864635135606384569458791790689987774660191656423245970485255221539621989753890059849471989359426474040690689514929310639390938636937842233586423634435061226264199046846539860517851098475103025679736402260476553912262797767305132395343635558304272109732006079860427581615965822180117447720733761830635654498621894163021097655872845309659167293144283798929651877009609052912357824792863340024395508843860154879788498763901790829278195598354913920544224089304669587338138826510966358571758673703002707993046928234882585354411648288191912163230689372089065353034699815949233026175264003116949675564308719096461809245626603820061643124895652334528020993920651415435523902956196165086876909879236885221906715350518679278233310612583702667099148682356451693649204781756099705343257095234522887482973104419682267426965847620766118703316677729897240819392805955448778600508686323480464480335382625033313841287335851664040856132942874511987644187215949205880753908509246876193049017173376142197572365404676140201820807610214099053541223447082357388013143046039529872672091909195112439033060261966194225344912247887823995900162484414666196083760466782908868835229096359548476389192196631694685590077868845961726544483202326772190174732778070625281461103178964691417054626916650479581590621649475112619510767992170615829861419192984867068316169998888776313374371056496744056036732946119454082303412673952669364040322114478181508972098122984256380433894515200771552348695255332400609276672791419527755347796256876914304969221298888414067387859811453936520333339203473615684119225887116056225799404814787194340871868835061575179340436700374295873765688966459218858320038556548475771061909455025237684191810275538789782848108602844702557639879806666433757212969719124248523354229066696873615141375064839643497832627956269525131097655888161688465738812822142457000034671734434896574076525122520628192106761262396357551690888217331028658685373734843625508770235068615403630219163390157618544644553190364872056453988199530926537131169888520121003113366331453817650763044862026607926491756239921943668270500815812342515224179193191453858756292227130410222371677161021600685221160569122968065699825001147993763902028310609142419677031162088757467997536759181652160391401060083552532668230687070125126108938343034865543277414780330752933984525466677605022459147394845493418557209048158920340462485558210543210166327712739866695659874810916589899091617190809818036866145910378689044373047825231525109584979074084114700869788200321370476086099568827157277381982126489111790616664156750542890801034885115401769422645812523829532896181003636941336865890882208459283676494899951314210894417382729792390055291282443918805918349245208230883757165610497098203562728877926671373057859791203707279069053686847854778318587692822969615104226625378802778825855582751688841880577152049236105809731680751922765783079380502661643971064069262533331314538723255065917552190099364111097657847390176638645004664472902531163733773119818781618759822700681727735459127760199185784140953916869171565113362909840944273169335080470624007325854747747325830250568885338237304716010202849862210161884101492544337575378489559256858479275776736886174766469186200589072813870282442079249210440501922423430533241651303584363149360357332929904661395606437765949681465774029746800708454036094079702370949691236324325212360683959095462203024109338658377794485055684639461190740997766068711431532342227621465415533984396932097345671816096309990916228897298306403660606559312260866628266117316454130102358711065332068527149964401344313199803854994193497176693868879781851058787068203687429732426029347496666154395361134375780459008826667457099195719451156923850514286136784762819472360688122715438942387548758509639513886805657285316226021108033550129104598847545118751440318791077340249809869088698391232641637691082560427261423661980154308058618917963880282223002945677880758314608700330009038148709557823039080121052167496558520711587718304580912765032738775373755795334046989427609633315801997214292489369613894897198206786912610217111648927085161442624335329217879356270139807158748850501588668723588411750825338797729279677542999706532474094728794561406942591906407957906211633615042270998750605917054753394470350793963584721364753674626921387130637558732668226234475179658102486366760705692408591437563836796703595675649707549642581898794621345871134710195824086359353069355171316445049840669754955581428659430407505398677721386924111363419021166628901539828529234690733162618405461981769021713808622216995230466972238406236829872041489798901355823012257525490347509880015752312834202595613936482793439374531225044673213364900898314030677890998762054524687558416931457076044773313759325941093778818163555087897151521603352075003005600535197982117015076791009698251048676990233078566268634966093744680102565618949901985114988077192713894046693398559262010275453111266134753150317415767464260688195416641853817173563572486387049444811333767924852258493580732007590952076500210169363865935398760326396156502635320070710770673487264411750106555944608561670155395942480870940159059407105897405941994770054462375593827345187889822001946658807437237878193640671527756084474942312162219367882000176515075146718036406271956827241303202314336815967348310290982272255756811758935760166191553699815619908216399788070695511640447681324385923049944826469799089207344410451231841753212797852443707913191763257277609505201541256232757408916251438485663748706666366610236195780324913927534395046389437881491476479422176210727042620767326200154059950915976030195072283509111675760400914288793011334757874042669976033789861624432480262164922172725351399529128708032686142842651003006824295117214703075473667600665556314446927226356940593530931680237768322287300003293638446622268130350333302755532912145335508444597654641885769647737443200779184679984276301467456665622993126321280074778278561881971109827134057337065582911953956318806269058339781364111818931687394836998956046696778937537490254335551968534100695152702035830876308180586014351191341416090518476186774646090484740173490467710422061729831826418855815607254034902142278545666975602728490669769730148678650950776772541916197486486957481817555665728718248272319237172693018397609410822358313704132298367511900246351237920777536604386002077935443097471784234401189845167509302897692258811602877448444878605293428892729054643823627020568115432793606162517718754429108756095748213859926718766944534141200737609622565527298968874455551757565721172482817239346169628930230365503496494555212757523956412418935099112413728709248593732663644268775863811478942693439447018454939420169745708879944691092228818166171388917805007072547329476335529524257189444630217131553979664399439576852445255534829006249524249184576817677095572305166784699371234571182625323549351745197199329756466011266149239678014986843629260574860182026460683744183465200176621693265978310329882177205446944767979242684721310315617108855248278866918197890231708093499614261046916108850091801080940440666314596710869025427928802814728356572408658318503299321172847968645397784069285858050291355689306051386230670962064725162436509590942977526386229688166198701677950428850929395405249863993305022956213215232253236604441865495637794046049684055032235177233878065883515846604826157021686388400361627909025039093987213667677390647861348549493093373703546231825855209916535681128982568479877419279951842901720059180659151556446900361333684720481432855120416462815336758130994663207523027121725742924647172163874422745423413444403290556132649135497388107488064083691933972425205959683280505842967207735823055194711949731794514833115081661717003696502574582300120633925052205933572619536978980719011942387868955266257078110296876894558447135548192452881981834417528255884228130017610116857428799821740135898067817128409968183422704880588215639489151598791924790592115710582172281921070528123028319511556270309101647031253011271528786952410232042726210034384854691673490362127481205901076591515566976006468409913566173932817030821526640530177005515568748164576452067080857045536237286067686466443984434376749319373991007235310770228409673045328861401325864428041281434440629889925910926310515951908615192016210446047834229803787031466186932080038482505718346465231920011031400246651004746845968254914767138548148159060147141947702459460966448988337477499898451691768210516464124269367388312583622387333393364197420946718314660246379719619411345088515276419087925085819315457659557320134527473159593983555062742137256293333932081687072001990927262937992210650659574523925380959196135636385905146893708022844667008926614948623319607404913304435278504023433626185690458997253994522873042514006626770140828198016739220223820609905136284011568760989379784922645382568998394418161342611513926382406418993854173451225961522062268421889692326199791769554077304552785318731745328393371552992032808712712632703442939228683931171275452586894969682067516008743795130634515136222399056167243935460647139292915910663527956800210466987815523286111814776760413692659386840728395379333477591762541276773329138811757646761269174843366911111676797513004724576971711892747739294932420736340296873703118732061376538659929443174378669426384588447740171252623252584925699172106913650258117594016581548192048125584092675995663404881868817822164592440860664004244462077335328140419599681632394523832306912681809322795980618202269357202879203309793146052871935928013511433108116262958754424608987249351491352323590681449783227738621671499116948130186691238030009728270421942462893722417156983680744483323837723663402427208343271626515345978361329447011734335458831253965070628331916593385050190526936808741255618923366162424186750337712710320649881505074373375479180580121892921965927206024440545525558474119151050488319466300176999131790885649254628378951691217221495804158817862736340877502570834707862107917776266914510742054400976264159513076197781385538659883645877273971350012637480522836495520469619696373787754281441303721435528503740551558386499154790595748385143614992889539706014659514454311899422941653103221677114173291881834240449185598430034160116815672290305394500886417714136605991012519982949495312531950222458535061790737130524827357970620373414946368743091412108534930535766771793253574395166547134799991859487018324093881487008984296440744080394467427160342471363462895298018318484876116585522768461618593580463871792867377737703484779977421982704101223776840104899293079122179367307057916909045331946428994492810657250403632631718059963741301481230337048298719306484120381378872720268290830798068599028769756174371720265538098185992477880491374091916254196784397249802701682903678374571443678217360830655987014927221743792845463740499204243210166129528577014425998693003587296877422862521353337333322849634656324186896913208471115209485763653163165027142716077369072891596147514311041757940591345825056561486638858630042078297940066058285866954773206417382912290450076912415158468942676543471282144229640003936463224859423720304265183847932575039967549440897855571661162137779511514295333196595936051036276046463338947953734250481820685010087763744030294143699417965148518669560526100863511401786622262598436484004851723691940468044237398418004129395492359413013862689439402279473077254701320623537011190402034939750710211267319411189055362086363820258899331181622183597809081637037676883395090361504550384065140276466569861748117899742373257298693844661504177107660179978768481941295074573072343060104425703259941729366091651333813457751852452128263782451810312439301416307239252617552330835525258786211880767209026315247443256537691558960958862657738291974467452054673744079907064608066319202118682986694527614516154247253038735442405527950474512638220306916312872674188565840209936548328043525703379639155797731202547894705083940970273955550838478881111754732098612325296686313318037688362900284462105287200005354861257721455008270086819893367295574898003261244117165235738636393369508428530457150308745779875173078448689671750149988817588558605969752324458875122822257719258353569274730009459159140254496922330222102305226744318691478144066594848307314201675405049941881303798111426343824377395704358969181806632555787835046623228398346170757071220134346990269385000414511461626027209400797872081764123175151905336952643370476307767393987292021364885124080745578900907840709261706938923837590815651791416601329728301435455577812965101891532276481599668537747193545411831113254728671700560741759806428777216874838171620367261388629944270973722235054155418199282049769178923030067868117839080482590042106233019506932178430152699774071994430023423632966579177705551273388305909578336172394131795066867716690129122001602275214034228420955989337391380423547643945719981293429801189771763467587912724977915501050123072311950000621665639163854938568937393720409550273498617446816272730932810500645055148168984596474913882384401188290399201167913778003829854061636837767412497768327172491607026930163062243432230409310480774643132683541671432832219395545699193220773554773422764646728044160203285044762102442217417171795981780436855433115956545418910715468928098163366364875725454388223882766482099746968359622748035066638677261303544663781173677566066527825627856644255926128261721447967724422592399797937893259294444482016855324632307820288571097782301354164324883361040293157126492786794549619385844031668082639358519354551579706164192599374879252325068470782533316320326416671013524060586266613259340470613880845314198459989183973811745196191403329775910657558743315699997673800511467188198598592318565588677778345653923020166767772043059667713667958887116543625806141355957807449943119546196642160843197860488478523219884689237187128823175715020682225378170184626140283755392468985429236626775831752868527979776335678561874109138658406573234549995655351907597491103751121321703910344824113541711981572800931351405163804842560461088998272052132195505089193758456143691658190636006563842513003977238587226424686194848755845515235782806800114556309661359200310865650198789480108890254795544246278584483859377090183253718665650563784202460749971035328170008672268536432809928533215989803131768652268684933391773369913972108113370805986225201104295662160806818961168787504627985376496385730297777296299313588798438058396683969124826118973223677213709899386541910685975784525359432673110002409332745086711297786842374947644315422816675019118078015098556943498191131040099733529665945800724247453506090479983390283831704667574698184090579172086299621784644624730942245934877374132515500551983995614901657114571014756886591965305949230765343979098114384492844165879242156331045558497749335540334042498943845696065821136273588436419115012350740127737890281250548868505994615876895441718914876297895257878735701827446264564340377604138017403857964078609071042210326150308323015311934629755506373603340451807147495015493067819218742766778397166676239487055369590989782512829095944202006681715954909660741192550979455062702705524265816393939068842704368570493567867603608603948132911887006831588696747043991418242590362433858491775655365827805157566447623047550530524616273694629612792611991767023733881640028111643399141525417618022249255297103864358135435181876190190220836740094679444466271921067222693652218707384144904776191709226012113973572749708689175805431667169228987434325373433163825451389058293250209077209265316706477024929692163877961923642396660381443996881137651504743513462909993442208497746612022385666888834465751574333227693872879075902291852657864148562215547080017650798497724316400537673718197787183851818298204268834049276081618566394379548201365664535827466524018730964879752176666740433450012261494460801015570696737654908963104318171764262745666101801595503380509359614637551343879084894756690179557929151875160628363892855971427369884165700097385076194945124281055753476252381666704484595272382159544936016013161078725114984843775638652069823304871155819133943859718786300655550180383873046843986329400257799263895043681382323146123897298768332377025127478664687187917699880912113251731110432283990082679514216179011172913948348205335569364885526912192960840769995585682763763578072457306829446810118400477815549464565597670247226812240075833048642249354371239230782632846336499332231397658960854341090023372693071325071542057937366747335908269622179198181734030345574483292598474324242560796416966286918373367008440537927325423631582918092974833960540689007304507498650349345461770653816525738474843448823744196074994779377387307298452343416182487512778563552299585227895430631735065736241552023844489028270145320245756546439389198941670685654629193249399563019271720083924193865990314969216348485641252822108748670020560788108517307431978314945716493205624289372279530932016607631975339376936683806695552736483564412362544591200536891227264667024998230401526570231107694009089141376683712563157244656460074571781416165472216001328358370684321600320539188397328262511032742350874481766611327929512513792186399497355552366208486145981981341178603878618755222425792768573396167019772864141260517628666688478785034961987243967787910576330074999838732602689103465654503084799692203389510371029074217885499328118680555110861661390338862225437249642785878394172297891670045620388330212008787044981914079198696821641108228536262778016631358561416254925066939968319206357373539804150792547719375105551945770653184159877675547879072366405292902933095137386316738445972949256820464316046529123054110659284883178895828040214230240357543603936436204222826963974793025404654299460715859453650769042629148759869769737303983460094105035086980839637470045665322630116758507594573237145687189059815128430048237830299192570143563449045550876603737149566343922635931572241341839319406276362474309204465931436580485789437732863719902870877995710080894215298419227598398265870358088321683358312882042786045240580033252234323598743865419587763223186311211893963987365567847178916921882577212272441003491591867157270905959922000190914265962706380833505429608648362395118607719669712465841230453327883218131004273910224211549313918425639736785814587681066461885338694344616456581471305481951537515810673771242130147726235139027698517766254124650593835675693953213759767939301110129327008404113422934144073084530567473068676709361361148761309521445720668695576850781421848272814459171804376797406679908575932111478320241265690758024899280611533566982815228626240335872780038580476702655959749490208213520181319080548746341715822817401242992347382987024557775979144537084745664094976070486415317012422415782836942849788790924831211072514744633550702988432439203187948918502046687441448103329390103120060614524849149377182767690684666749218534020515459578525378742212349027194412639095120262351983217153191174489026867902742088319465808936766437354847518065718074153491888898437183119625700864689054803932293110357537679337204965878496868211396722440803844516948299533023696272903210216607336567260208139223805020866007481441667780689654740663389801576048408877672617772354893592997663749012016847335700446139322575410163146933737569868003924319169567480642901868438686338876335621738182511137392145261598754699271908234781458611672904934992512134516181622415308070150444161793286937031147801458775411355543734073005246443758122269611128590747256668679864599260828571767600441222434415219153907849105610590807883582739515559966048645007499423640737482797321700525878522140594171294992989170525293566405745340044169496430449974084515973906947843139257573443073895328637257271914294658408725510304617761132492955150651044554345425041734065362034480896979510122663875070455143001630888104273797670378791480494138570007242611262405988455661080123134601586349078803181978953211572379743792859870239767508966345986257839365291111878590689255679376745101770834300129813710305743300730779883627387427951787196928128958043857232190606232453130807335505014938852761127159866789165710989739454461851745856353659327966404200751740687468253996570065619288194992061588444556629181965543789364104223333496665846199285687789659338551532914099251740802364117521524949573420777722547951216078335918076861870276405926492732369128076196379315345329954421886194912384710096939735164639173862388307794497898552024767885947624815150760031316874726442936206430441241540355556731704234145262942568838251671176999298684152184571694302825784237329991605503826567975058733495647603099075731411526472344754956093551088523552676201796095205580825333138702176371450583729447852919725539933772680154373401603735698904608454599831094014285177119716710617925760627301453698042038289924116776906389812091137631355213904004541595060748082134973095350001217290207552410223841757608509811004352909622297209421974524003471186331275748868738179026727633468062814599378256625752710515070241728514773310401930048763999581670502449541500041962061097832763360921976892341748584822171534591959063666274656791160419211837351063581903510315162004789046244288600606236462267179974297810026793855901719641810632370492176848693418244711728446763010755068618771918486453587288499499283345140213776869717373469223166764159002708400195018562054801864300969447328140552794587284330627289501740512391056893361051921440034986582152978657785590399455469670895279117941813402956373129470189913388727685417867635972041553151038253546555354393605897124209420481791702435550025096023997340715925910042641370541258853347202360906626358576730481450556760791935995419679623849080771299755852215296971366184602845261545867698736061416556369947036915225995531973821325092041521786931324337124869613031036090722492945821906969427534066566798604982137639883091886828870868844632277585276241172325631595101246870766811354436825825382762008271379323856934958044813383614725636395227756131315076936132287100091265470832683319768524259488107603654040191315865711583332632784358217923128452463201673124368306726595576947156530797954186743015910517068755435885840767389500863628691766087449629723674563380031376238221080898823985560884935814666606382124026825338467390674003215888095958034594205344020177228264544423034830266884642453138849078005712394046055214749288790877944165779364767668977257968416131905419773332360118545869303004414011338131416285819462516649844321100218948333114791703456379237999996225609340238169251034595607143254444190752453092022737745873262030245331662575604243401766330356477726232686979357942220524693437081474571167734416973395616123083768616811280952806915013704882628934806758215738320606026048576702987721478036090433196564163755271173257953785967789400901480318274107331385501027042519732549160760831767391913422676322750520941368458985621974475075393002308304675419131716246416889250527031890947030348246807655336282309126959035466608702389010071282755497594272583602534379891809942114226318419237918815790229545637973600757342875363970026128208448324114665724683643427185880652273431529778760273233842505243387121439037401817455570907660833282548743346368316886245944685871072760769436498694313259319951181898539473291634863812189596723213159738714299856116751426021286251594983247217752810763803789949597262364810427510075450298736328251140964041831969114679558390147692254235758082486697700877903513943924474561871300802303948491818534325583486218497149027120708564465670528320843710964163635458733023454802293419839904969401169807204361741210511892716273326790139991427346207477414136664087687586045047324486850908833602305833135683151667013060266362458514103082005294618545329806827808830025962390022007652728844635860465450822229675512903413012373173531727202195446347513292864513388484355663006755789202695175359765464253640697798829837694814314793388338738180100988293308264301058152824033220287506646214181487483321870110050853373517198210226265311084378957721294606360328320262304824284330008083658001878395049320246326637015175950257722393362829217715793188127547997032121665762981977479866571906871872293545235803773217083471870994695552229081189623523480357098987832458639306003076721649017025309244022465229729990960841481259037014974813653822740297302162988192019258467160970763077984127518354604563318350370881920586848036900749526592039886541782229006395946945851041066792853573774882391520453998050263609378425960165513096416879873824995946921320985521173010010943365765723469317875006491433812986340257129760195397886820965889809221588787771223513175771564889562808726250800133748302376990648778040537198432213569324747847016004723662249059941121159241662549731613243352205658233851898554134145667994886872987796882554245180790854602730755305325507047755105757455175211896767233633439561233466799491502774875310610627814674081295844548731789520217981814174848233765299718486711800251683580076269650030386227882286407612930483935572750578783327828936787098332769850873892670398068462418919644697745493409890245390161680361544821966373067068569501939702199021978545566958143256923143349104772863434749415081361560837793303713830778204349828540132815619701649987165885024226276187808423918432775478151310077463309152605706841170003962515006468188499416468859339236993263591560538382379057350019257233392666350533174907002423402008173414037640198318075791072319579935691585006508321181205891730831907974074481419272333952298415895373952466916434369578728632601166523176249796321774470720541064795607127014861863987841368658507920984442630963178291897894494625646762823017198463910550368183165418687689856824738721060668695090531763188463748737204604923520840285368953038741215851683035775067571279915230880846903844838274573850858053255964678765243651383657662244348370532685137429415721366899424051333339326119356184169079157346160632739938865006279207370215827878824686319337531681837975315116852727029195871157293551708133797480323084074445055083586268053758385952911311528190682234541167143111383397636936271276511615609583818930834450983081171688597983958226645530840762990876710937121130685179520183372289959131244613004300302585195418842191650784079828703548443566587257506812003035488782382309043520280179343779593112974923252409915015234069301208174364876825800871434784283200977527173415550010642384331765702369453097339815659537044130761234535980693509358883228181804848036331305311313654110591736023300744918347357241227360286438243144978469796329480973766552727669437740694411717464894369623539296808187675466710470246617587245404704962362384958661744216267087913658604094783479169748585344394230821891655974199527547556190355202602276871005365571275209289046617086158166441125662524558870518714977516926349580751649728996784001270400405597214907051510776325255531165222151580422446207112799466555610801225823041426611212640950859031743670337563637539192407845642409538547648571364052232692683470923707712064229879348845303572139983857896998777982225903305777306735730541872716362909086894864546518395327948479106254370823845736504402343654064887590935165156938702296760309578184263666577919440336227898978187307169223729924018898535789035459969992175891748045735240478063341034551813495428199756701117157327891487003986642049667160451132491496627026180749657398185268634047286572875212120202769032725370945114652279163378302416451486133704358296464703498269810098655595741482768672429400719723705813518851578872110197341777749116163415133527792237878303726169717563261546601012461532729091633457760678541433937170143566694260426101452768868700008859339230831250504396349218961799495754018820363978152799302470419313402300708320361098764532174877505271553073680193843921860975060377994044151531971217745677449654526775257638203018659338468219139050982311437192343257414425678422446307752760768778421440981752112401174894523416510056574339747102984196310959372701105383267066969582704346610472143085715312503321526909684641963393725409160619564543017110036781153365467414031480966239889380168373489363179114522779427662972122333605580049842592735735806698460583126647011424011166952006561926413717052442293255586268201891051011770006166821444787028716758402750460730280312249923136953437755129039136405521321577469938817568064530197125629217213073882134338135967309708266759847892923141148362974809003868303972601402023785352220910072242646485105674063849675861511803611176172324661962814869616082180984409960227027009348025014229891567053004663552330193223385766937527160169700706958253085847978903996465217278095725008069747196080437901196289218610707626607571534257072575715724643435262550106862722529948999658564155843948271768596352860466349392633912370882279690693641344670496172824839692269937426143603552790470629586606246553286719461598249461352114561702728318896558433831230306492368053250952423381694135364266757449529413919216429203598729307725371478491810540184322688421389269023444680225211702492056184568379250783181189202383100414660190033574537026683495656905224154451443211955230313435350443283520941849073425597679658768686053301904688379468978821230568576972947975574239615119921163858762310240793059499815359357938154062757216674461777122929834516246699087442304152248985129137535517120942102440907667324641656260343238539448398432337181062160227597294034152997773704381726923576038806720458321904762822462628798396577444758963951416409580305500663210014450228182699102351473597590846994935427105566566373849875554443536379984439147172053369362016182664629868477029776370946342480302354072284397187862973900061738460190438885681820842033059848990875348375171490143314520140112513764470604129394161615951675358425111442469140788111486762450638499362627631814579722458167443431695951396027095257651926049285515616123628517508432995947821255202752097574142080485368944971017078852614207407559268157575319494024780661487555767547861088582211474078779649687688216232128983528615178812229250733652890424377622869644844013502884145274428737992721050323599070389737275866112887423487563285660794035681908506683248642345443318946923234857813881038248222599826674423803341074386090106864574046383936501047032445302564336081992330689271666753517128576185975761219068122644980432779930382321410381736507204736718098926279721507296069580490193328514320232009180368237095137784010029631333622025155015357571825375032587889755860863969757298888351368449069236212751413595135040501673148177082649134127763209943918305555952995230995979563622204437069331832410726982415374718553689911862913679887321435812281326002569376392458254698990405975081630897540859247819224083065741255270514022455536471693022691040530713848838640536791643228964979375048905684800872763433305027723426981123864589730551901208636500598129938688360448943908856483547362244944189659596893573712278279220423776455919723975141547731929955560408471010253611326110083648545638236201434869745186972246279938947319359416029354709455874613605788538092208493762894470925515885091175116594054027859493212222566881398560134812640169542589270101116646963782916125924888268035485575028935924110832994347949337503545810582296787266357181160566305551440114017094836464090027513370598097629898962992723497526084128802584836967498034726319480015706443395072649907563387155393127692254011111599071224535623817302337245343488196924494811963341008552617652037444000047644569303612904189239790219541628883779427509144887913438760074212323846385241384724859282650048793530845763650717108451424434425314444623467025439388029066774291173569839939526242604339851005862906410477126969008633263519875850580001768123622572135159173819060685286822653298289119394798632741918583051024013612966906228319343255438907744995700491336239746321156897972914689200560738704489234680279772440030712715570033223706225233179303201146519175217743645748139944064165183410968245006209694451963158378755547288577502155071460209272665724507557796136701865330649641677097627487517346659622091828523116842338365293915264010638875998451806914051923406237147260427145213166446403781271099811599809712869581186171718353079811712457347222692521899299056230743897643438697182618268496382624685998431580407127973001647887866260272648328670815367343533475519742994262987193268412105354668733731117573773326571180840063968202430689787914070868519865674161038369927721169800350096747807019395314441817274888750763317448360563221292328922842401986385732151967834717060398449750694781335185200586355116967601874636978043527674980353411780376183847533703833984226306406610530947929229814073533540768523062842204490821618686012278146320632495189130468709164735869416314705208692190944739085697266624938629689386742355509335198355507928815678202279293989010690672970267611138982700042476097931689229893454704470240533178642739853201933561079339100335963450875028964710756215197760480451354811940207536432157726050251617360983036932899157537742117721557008971490825305745475692472516704392550154616813131552145897589200714556069302856870935836472107568779177103826193985739615216920251199658773633320081489787420084457412056556481562510057470312852890013032041687445563059622258059438365321181624919064211611095890753792579533567742677450914480332367109160183018863278998474901803207419978065570589317862257305492086602832024526829660097826234727074263106235654612090093557889478247197754748064195664139045782078803123303355860166218089544819954630675219833531864091079156934452362789562318090473274210568301216519659424373981697401707409899715956214949109401190436113099834630603110392846876299389695558638565885607825873211255021638759275403200827928572091062473787077850767125273922726247579680017717547081775109954820407028290140299211172405603519008184637496530270848156340347933673445174339996573793084249290887089849058031716441002432755959349862727123573228284414147524671192086573256245257455313656294008460893766227277833833836491041266856091054033732658964397454527264184782531276674808045027971012030111579299218472026272386054034175860299361363023522410604866295241575623949565218071264512681207968895865173877417447595510401688345291883199761399288315874993940150235954079354351517155783530416564319361670154785667559466743146266332483729041888367694651997584385514285573974868857992141793833363504686294169682167534113328124334292482390222340768924420945512089908068784307848739580753171150422559028267266159371941029072605077431380448918770642279540964551854010793972620448084059014258650808366986646004757351353277312451361814324231312374359412505630813595324731890213998600789754010408861528139389709662493964565227930939120346365705721140636165921856973116690840403677909740281626161628235410687589979988642083406675607504226205655736245299714495910113746996351077216090729742067537796990722447875149237473976496595048403570932364722122912329316969538350217850540852141809841322164611005246213924808659464572462336860711968770448352083230132992206090547883104233821422930157001655047116782290758611508707933455646822618697321648996774250991309532632841698487078335060319962830531988995877692137115511653936227312222137382712319517901077482851531048348126595550099209905365239344561910082968198144047866091576694198625010131784456711724696532230852211884081747300818273494921309566236163989030019177740617738303316086556361855367594725124241851967963983945199695397034813198949740279073932435347919700336446875162897748636540021040823786209771014754737354518713523605475108443579878325996483217130119123000493660359690602299771616000387494313732250989243143273093379097137758493691874708019096637294095336116419979253042500999802325360746083271356706213878826989702089314633530326570068148568229815247272725989825301503951359080814188404269614557253608679244132304537444931848739502194985139602239027121783802413096354803739787258828572569975299258182832597030342000192490511368487607651140219623290879021179528318797613335717106681617091057652194421704811973262342177525332553642079297052607408269498745083442608711820728126793189018586456766453325619332238861594959723079649820979863768222900555538711291289382614034387979917988661146405745266927864670479312809440103797854464656927926501011137818522709082219045466396786669698780060528859681124561551691344298405732741141455752359239414697642696299925037644003904759235664175668827583470884247983251806778540270139085198129365082324500254586598860653368648482145727385988478610807359220511121747094286363374022069060995689250297982700702010841833806208857995412952202894706019434971865036608601317448355447939763328680213926924521855637713186972149172810162899064784959283887046235689576897136011624248521441688633847051690149522286209590329124000773071479116945352079530535559652696041778025821343307840606095311821888398338169520121648934152883186411015920955298499916926313839969389621035892749767165297726751519794187202310782669141475247307557998155866233987926508315155441533001772937804535025018002523704138342488378287492645918064710321610347950738547649434055206623647736335722857297563676120369264742575297667288272527194600089794753180326108755123727623567069352314823126723941719858798155400537231814215225449289934243966120431691736996424178156658290477777971871529476087139516911302898954749898841437709512886881996609469534933495727015971651719629999741943722049507332849246757124574394871516386432562382856088105811189110320675194698971905581037813618733797729473022760495511362995102259206687262233224052961263430067238594505709173366152971948923727390581094327293710108243772611700884477284564287239879665855619292585468930700671807085979878877574081742936908537615150856057605682873492110951859242429972612079672634536120210106276768057790237448174709541463190114828818068326068971364801606646466319438351641934325448754931757746174521589624578105760031916523202328370809839434428468695823448542053242269584495231165907095170765835250403633699795421454035031326067281042357940777752609857900219488994160142373547795126416116093775573724646617534296069423045087712826435795608696031707597469476530649567388089663477822454927859684172691954961533004094859257654568146492137259102681980172274672245997794457939233664263817282374731181871446532938370730423800164201295388113971976367597594846189564014811890901021330956932947104523731916863461410498836061626464638519709576726736413653848215726348735827214846888026530446372132567225910393485769699107683830477665328572802365906799713576367693550559122986087980832970778750832591068893883593675405060287815716963767970206267299415150622325403844227525259324836611651759226628719288758351463721234116266643911615444320442762120936732250842822858175142770063006674134285939969158797378138835926622423582156776328350639029225187688083964189937393861942760083343032959623392023450116067738360342202655413421117055309427786118174066145367475723706312775151825744018258511990226880083037741074178347437746822132640330479691677803658525844470458786484610497701591288171292192713302613541684974753491587559515421214165563668615112691604952614023215454408165840418242354412007367264782537593700889040811325238863143939845343624182683975889720532405439701727744075113923330418943905385049884242048622459858208169977627834335498761528090182677942230789345915585510796784836585357373068874046556704961110587521330261159828520690925299229274472630140558261864408509307087209010288979763064881170951467953571202091368911114044046636962757604146411677899139870392145464352597667465355210167371042555945166228383688334419058676546332779380975015804285691684470866045012365312769181408176304953258466771388573143728921399455892717261412978087504435224620016587169262331527224235711512828363225736709379456649181388700418472375261078321387233921153370652105691109674967665977955680020785443447776484598968959192669507198480298681277046963215681377657811826442673779818773658705650314356911829901999639941407252224293988111454992844020172613887923012568161846002128811098449577873138282831134990055726345280561197966486582376843594089353471563643072683331258540641604018111072630366951322581701065131141346772875012830077933692960683163645889337683746571248780063503239359241959002146304212292651047222564895327451724126007585435673077539692483155537061889793489334503030786226622733765991350673361504682917042333774304123952867923653388311009615288018140890950699041768836533961811945651738622109727839652055281919340737753828508610733119344854975964412906850052115430991002244384232102910981142272108234359946171122402306632628724778660469472020072226761586679338719064390263105586878800432813597312477474668435455218836193023218169241567122552748893928825988599601224392855281706126080664475875801670913781034050045549271286151155023421427050003644177882079807516760815812182267909911762848184706015889500983520648496714403808606781539205829727561606975974915953977653878071155211528189117891816646064248276155986861444424091451523486157661547422875666165262639554248441241236721143596175561544578302840558948094205137765175570199910766225651878434299356514943285627518617499851546457480890586262513670156377363038251599315878696982379789854123459665976296469919352746099058871966632813098244975052640110799115201326811951685483465232327710066590484569232477214921450073374506630727209638361532365827469578216835256117910774565711152051738705106293091953135573055479546833282830851921063466809121533950795990433912196674654932828966933706476542059910472245462044314795739886386071382049663348775553688583572292396528491422892005836993198211937963224049429397467747004157719271987162341629337059910020717328751946400422559379013378238930216380031179007965648815689813153969230742503184258120456852192756549377920719420201991336154073683894673443276409355597091408675746087042127019176028331306881935430139576425414093395233264456728408436456806195723601989153592281126480385416392464449997033904327751600668009702372719415076514628777575147833534480818683220659312133085458238577669443063833083756965635830825575037640680582336644314890907958427300976711176876240163745409300861720778139767862652042054387893991233494056833705657302743913409087767574095054760356093920211317487125554490590693436215159773645851730407426583758477150941164478852844331038430559644957168438893927870128753168202801469608102131826697615785767783295954717960475021198964389757289652619759434628184820680279018879931059852437905484274092832845630855893461810921420024169807889349563984274191687319034170821228963761251422811840325174283136495834800466187018357646665544004435124652437696478735279927223191591149710074822069518059473198144982973703808091668642616431588407284902276191549641942887768121099555863450581456726547840878157202433572913831839889070247625394968882367312751144591517196507652464003699333129490382355075282346499969261262563621673401042908860785765258820775834716565497595408748417064080723344511613118471888194091124628897963300276985046641116086117843684848943890436936316492362045707603997985872060276630327485652099438654596424645219791082521169331896023841916065223350617442539014332085724501475777856763928010975628865242759272692796312151733999494523424188099244735232215338601185308753974002523767228052492783827804367811610400859875879461660562873685087830967070332689855812592710324659880164336763409248187942280117404512302512738420782851898931045717190611466679172280565284710384889784272822410878007203711118053703949403863256456133097697141310875806994299764687136978333061680552482455435842111330909078022554917577803625298898145002762411311546115840150513305600506534648664042242489354599115054484890231308294984038566749748944732394329343870971930211609301649450551063281266505300312496808426660251002628103133350884168723508414371466376890863934493850668097946773662895337710908899836186410300423791076820316374605215057554409762024526467454701173033210399334852732419776048517395910013429204437313104627879381188850187682739273464783425855707563187793706326705211133202878640150724555988143958881949660303581975159045074492006877079865300203102999352687129925776402158667789826594010677275547091970240825963705126865916629151042473202392579325902898212690571237092346410630802732208922712445361495371635712325263950572026066815100021836241747461135049596673461249115100238300740090426922946186257607567456104412278468862723719913594254336731196767385576177695914099379524650675044887108491385039315617431479625323672431840534441048932343549387703561227969763565209749705255401127386985497406825794447036003380816652197927139218623351809265183177077423771837946376690843725601362577361993794438683419313386502728464490269147433430750994860058598561239362958590965760302617843513793996388873226304764889476530065766977527179893154302922175973121980535999769720896397548094563043673523126653786761409703242379799179564268018265078584429730429814041585243512091100670996127386281279593305149670867795972300964746105179654487723478813190271646473533064463249566693351785753849488703949290783350321178626501383037715745695944819626279512419033378130901378195344824180682791900109929168341115846357120915101501703502720429671105679086708339597948793587121325259109460812839555768074034201545641674777386280829727993696177640090800583018945820515397606681727524619628716398201279749864888664797005954261211687030384439106353713923783873529776306830048397837372958049849468947056699737988403926313326063140771325707241412201200614113958029464487960030590733179942791528437014245871546761314675074339850034367756665152673258632560639377881922860886421146288264782381028510344031007188343974170044663341047246569943405790209665129871992557976434967178921928402249081279517532353558483664053285165037240317325371471132196408495022791441403922242297282630385397209230060379050200499982688777297670914526255073770456729761197309573000751620002648670937473755292561513067914525250177554526767242436062331340286370923861988680197858256963862639462163964362338699974524450959037990374061498406050313665609724175757848154664217188057641737458729452944288863051550112935545338341848262357517489001907928805362726955015913860257798220511742576345744838112467527651697080744529468849700903259690406726262210010504401831692017724232609913832314732462180692426496169773121080708414866587704062560630451898910715819800976961408692978580550633693408472006187895788135470214830296621372999459988016052975358237487135961720260422965879485850528479856448264135357056013585791004429175413418142510143158202467854637191206197406548447898929386932326583827440322824557800749896626113349677993371889674716180212903773907407394354911274182276657323854188104288718735073658261441276762407703730473636091839022329606069309605063461509894377240769925802351398416494819676559930970610944564096913971960668757375566757762946756809765012315692078467265712594541848683807468514556500377226697643712482394512582372486641469917989545957315114929023669349115288399012305490167031538917545665549918047721264488574914411005645679807071805072440773137384422808682304309504682469693992374482411292988911610344598583118463873958095069979425703415524501888682116146900336211626432781594979314171484070958639297181131984216081407595831171200336993326369065056344564138059554952907866465388309146575811681748305560662112136164621969205807065439545466613142620440714138597904553474432070738704546717811391704028455778876985124059287262006551865928112565854291999982558715588822095670270314820168861276069672884698139219294894144714580074890404186149339576230517584578232377236134230034929379240275080083227217244267859577963912442290713980495109359888892383505709939481043557791007572318723368244967774528296402396806966547839665064159643798026107273365941087625685285535858910337191386737770159918184690878549527267209133905465191911466491372530386102267338640866747128889776242891688678696432469733894142017702098361980174514445355683977026997115276260072239466638901972461740709462152650659746624899120152469712749348328373168284907909304959231794227040270250132593237342272136863660081893827836524636320986986995754399311443665026221273545146601172240421362241899482225056111550406852782703954444744245249087702355088725889228482744921340959512445809168148180265758594782466124638007921206819784384935361504993594391725999185783253806594707799730404106958412394492616432597036621888179367073786461242626509757201452742664840808998029081242934968935676234560650631650705333602465907911959971110608236932553415984611857832672000060992254005491645275851942633727806083768704869396978682468822274133380153625830550137713399132512501627091686983098998642828121656841369348274537464204567416327912738758727250356892345543798415124526386115023556441487089570367354445492166555227891713473932874266007720730257191059207371940231680215089147975196467633671603710162992281224959052638072324745439312169439375298101287123848166107097930143549690403882460848802199069705532634503113536778154151204765372784479009518021499022893679516163146799603014675520737983609933912761049957734180272623076107990094488404058610935024994575283097295455436504743694876527410444961844622754798351631613955069170898468627552281787847846884342865130592919995895363958756384952145596758758991110131376694522509694363213077716578478832433658913679888450754490742293040084825292226551714302472679936077794553540558771075643098655182527694891003472886176787095355030438130095675698480674869663547480340629398001175325770734839997008448532915727787929422982595895287055306036851006061408041989161975543244599851280812418627901136905897550972236061890610661803656125434931758643772522027095581953215202254231894175885988584001436191738582315526440204099193686478703362898595686820643655961216697151411134528071078138415380150342669064615660803554145311758585963915931882313520420228322417092667618304996613364748331074952575811084293428809243889144775469453960806196848276345032899014486550173812800630231933410368852407629341509142558412882449971666955985236936273291014220913985903967486817837406660768648147201577554257316959279773106180380212885306753820535451088880441694665903159072360259110655697330140181429530703113628237973788890436752887457590791232748020963440318971498497797626068736220443490108614064403435509220120682821954281140561527596914703160467802659544325939728194423554660354442732949956935443084234678678021817520932721893161814150445821814481937068606338394171143801742927668949965394148200652988694780857908091459176613192329969392712507700627532017616031557339006776400028986505305797330396104742699340025449231382153740339271483747658205796557675498990430113831299992029170997090136721072920603905180418262716188394813876860813593231401370800522451564460578618570335818525416354646027144782512482871808567838911906206824751970644549754812069158321672838182771773993031057435820087463423701797714578933466883458330358043974253594340123356220848210161578904561186566187792956044306835161235001001066563378168596399375030356865469799822186261277535021250932481992019803629131801699512599241470481715112972072049817477496794357143855857185421342122650109144583604860561123589629474737480938087447570302207379431584584323760958675715897214125398464422417763225261734070871872372096369397231865277809594545752736124740480070603711921877907759973338225420022557028594433993153202698643651048580313609443842185069027767434520004367912725183145224153336554763985671007614865498307044081762410364735547454338891073990165031209511029716193290056363133154260680357802690934407221752937864616042039343646072113957958227235678147020900767564384721182720193022514628860120677162939270203997996119357873327909345248509238578827612526963538037643707831633915557863925323685099042947628499878461002458792758305222064285204960175407829829643653065693228530238156534017849058752813290373232355696057680382172027280845718214272585171976191957880327038107360254043157438489453904997512257249710680477262251502257149142244176492982625581052054032010712617402627529990545934991402865994332042593618136815959034804608440764990784057917794594156885157086310244518882334272115736155035548474723592942771556088561309188924085520261797103586653937227529340505581757541035017516630675451722247647994628789881785658931013662519677427342806750699019026381611457440382712257813998868705335561139806867700415430300318374741842120791615465053555836623363909118811872589344066857602016951155850896831259591032284804510711125677073221852214497082470747408013227696057455424026262539997981655641209387239424371365125450883447244546248883067249880268833558423218104542748075388919439766312567828306557844694657033136520903678030772352805552621422424058732375458294975513335360631721466310494740078106296500474817198293334790696580076148259503695377997027533924041270723746468026219340547507808722188222784210841632275812064891158100625325300474619617876632881312451136149169405380918675084379068613778037547004775400109137331283841651182954322338016819614066330389637063206971023036855912885940880989970277608728963253254988999680521022717490425861323594550166098230771920908432264162971784568499647976830839550354494700887988933797864322607822098758635696041831580827100922902261984798236586550238193307632456490221544498444585456619551553493523995236820412361542034224292777825912233840439694096682633429565905724578474292209378132210384522703807032102630152547518530992716247772958424487961176400451498658123038184895828227304681577428836701790240203455391590919268817069638478149818612059212527748732587373846114159331319863412588967529300842475199978971950758564984771357001058266361010987524445732075200957001818933802414366194414877572934418778654194505809303342664316864184802023894605686474466099629441966975119598850112799824411568199225540930299187621685795466065468127489249328162043974474074073729054856116706664631567804085144705499217566053419832729222249150530546515496241862855534239041689239616100742617436550074385525909570045289551811242518162452251402994113955038127838999235152857112021363914940340295287565376664280673682844899002258253809167675901983670107225446616766945119619590067426377770522630103133555444001465891884326069651877509458240363174322046060760581885304577338239141672285407904429418867646660751502122836477360408479100472767040987177360268973137027571802789130354332179039485395120334526229696596183418609853510884720845967925095068843762139930485339163718257274294889274948322690602987398172116666597469252466539889576047990565372497480373098716381451275396152642030107889694157677284493630288215050758468939081692368645412063816520557345260044925227064175585584190075910896414862566576585755218678262370882527402110975914282898180677887157464503917662041310920798836395764406583008111604335896649193689482665605383932749825123554232621950534270690514375797051772567376410743535224911037574003865189140737030031103076351112560193962878687529055380855175129895184794302110192747947307687701296682818568936070881993739964353774475281142014149843035314415920905265555100876901329368144589618404145479723910836095375107161075935418978203196711921225712875860821337317159344154230478151376303658840247812079057979601154062673109269569775006335921486764145945624814163292728690660884962533618340180224076819978287288518829157948495370866594439776519789228116717997706916122826109127767650684216836502295558744161707577579983823705397030355214632963475079955034109555650974402416582985089474659717547014750591199636008216592110196290236281883272019492662567660742674226877573528559763708055003699875539535828788388974694112785863256447946877952245284819612365315867812990099682949007522683797621412868620241188208969158623996844075466826241425085570218765124953807019535171245647612814961284683252009786723377375616751586498732544365894461251654927031003701344215784452004789402814580128474963687186078571446980879848853474669693449779638490394946618493876413908565784241657409373392186101481084097638581907049901439067665927879144654388726803977701439001650828911850825760495179002508260411149485216748713338431673248878546894448877181404144942521972584774313327675299247687592088161444568826098259024301501612487754722128045416465595438322647099215638536418293055393898699907513425529849341644732795513360780587437043308547296805872496569356678700669184396462861215256649595794058629729220821488038837807651610143665347451333917878610502044873510177295635183945867639164339250345373898539366294723905192760846850370774303417309733902363186462327741697118507790934949401983119796732368537223853497068944313511453753447654749926589859197269167763431717047873268112442607419320372713852077335441344824985919259293701741694627177390976714093929850831601694638452815749285550433685468026314958356573141488650869194457473572419516681486434874720021227685347016412883561067489550684189931524373674411325327848409582388803416903605257049443270061832243368528267575891824396220645206351744324836641223507242288557509377285047536435352073601682304962867444431212773429438887937640080110513402950445584539311924128557161828837652196065871333438555340384472048245428600298236823866020536283944724721188424346092834010636025224930853414361742520191069576130184491748584363982283192405628307275392047779224668947822312191113022439994321227511097296231548980019413172620922783329672773811229634053307029955122454473206556961479670595173980678366554041509401095904445276379723353816892811233690498992409902074318910406413802291343730808350038946010356516132276391721392541049377111240027969696700843743981399993343598469814287891075148502735276351966055535322053396454401297606116251124262448374467386544989752344620239936883193784260069126968790756554056894183549336592943249462895622717900770660724619720072696137701418540766202605775603602441475268119132502033448388373876966117856431190378708527950660094203290979561715325304841331123065948876818867202583091452561763672476843915953202543693544172260816517017908051175565195436308537166800307986822818876790119364573626596209205125055473405740234800971198092974733267161356770298258078193809402783382105650233192849871128434833319346306601677665506928442204189050987844829758249119823759359802313650449590109129364624520222684821184707012918994167354600386978149838359204518337892384657028186322405876088718032779432716404083864315173039283593585628187081468046583689976318186153650752322292096039562511087496695408958917447037535099624837326653370360366724507967272065129435282492749534510749007147354043347913491028831485348300314076734471423098605618267880475945688236387129286361931070312276731150223534886350329930769622461988890253154787526825335667775424616564516266755410716012727397590514349804274424958918452140941400440741445897551045623247537884550388536807169689316537266493487837825443485545788566698144116805538298538355003658255107347096565568033843119466143247622072043632355616367325743204439239544769062402598126453488271487785155096653179151812530124204717758814228679256929005481659683015548094564441053538646412647860261442468836366935384691083044455490465632644592758812809905181639481495189177163506923958535934252424755803579739646911264989966207530266985524559911907636926460467726618280183041242940369788267137384154145615415814361142938413493484923120264547013895906044133290491256010464165948126416813910048480384891744677127303136800418704675136279930367387306415049416291885985653698123804508933205365126980627276940274653333059993666692951533334149267399349176143777717730138641375785514120245823439690351104571125664604080068821004751830349872188979460521479642858616701605752758244325298156345724408567773948480888432032653662884843950552673823676889887244995925145846417762601254579483558602426846813158415238872219795248189617869338257999097198540624897318788668042843706222121677957575850341034029203923673329004799061471053077075249913944080563125990182495717066927483274565372696156708880923760053182325984184272955406824720158572141411714669055208697384790090564640765156848882809577029941973177478555604149419987376813567365141667544381148418321763009568245169632698169428979712624534349548813812313651962902770549255068954449290176503398436418935772447459155826031269272297883646619397284606106756396416946404164600587094956130704028733214628212950302648812246383506684302641787280249895198497459720587131354576402124201831222007879002476972303557215374576697300867498060288938977614502605926128643561870230585462388538987090551753500356021174245606571788595333153820081994540645955334535310834679218736297021952763636288540072815041415574622402188344697117823405194564375206839827741312700964509347787850793734325712091021308785592848143485963936231447887765292755483003574982823254180117603330978909655342882392347391238465185116240892155772797734823575168206747397790059175907588220309859830136400124653148945056509173157100116369107958200674491011990891904397934072749435852897576246257260509468632037483611589018157028278249480163333038227579577973545268022914399312952374992611009375609817500080972009551405707719453782433642692674467261490063068319717909224866148495945717918121753557381752747707571748150183138458615839529556064765612258576361839972263745225875763253814893439775774554673672298936177094719242011436805044347175039516620760158082105791037135635490866582994268990778143821350431671249077496970995622660867055753991230199068382422148377405095116278991522839998390481005609466121868311203387276775722790492191635847552213823585159631771462886266410299137444122302286015136741341152416421479923172756303385120703035733799611101961618715532848262739005339422144773325161128121929912142117678385027749404548407755746933494809890581444921816965924909604064800497943272525374244950063637330540340647738495167188987856829493818478456382749472185955006588150314754057785988955333309033443263249577227162201381760389262962256194046117807372694052726367554451137270718291877657465874643253369005422370628536679051890571915809769774872585449188975629571688124900851022404875750549131898128347073659767970034538974701577776543691127851479515513386339410966752297034186057736858151601567728724685564633905408372600069393813411752645658377741513831840633505754769580367486440535858948819914852690204594103499877608726989155308456879793115030878508085269842066347749113286566088983608126915793636798202632684640691035820767412244572163326246108074528063231492832657759825451116689214428562875305813217973931206435029328321373325263738889122507008037911720903868518092966434399107239230704934361063396113581829818108673280924293517632145043750162411064245047049089628044321356274585620606089633019392025538687169469741091143078081901562167820786301326022015355297965401695733409450116982433544020164652824174305553672874451752787975791256090401019771230276192982148457782598836973816189638439089299442193869905179423678381143333169823047590183084845373286767909323576629363921457072872255245510032739129733624628388839583886406105892191606109003273553606169733338198494670120832664034090559395593021682441140736122327729518553799124420505508652566332609775876210870434431863390258948777230094677382472058457966876950470332068005532693151148723378330029335586681469929377010751096446835990415191551066860035502750999542629920151361167155843806788733936357556535695391684407291224237818754869642413579804655064229962284796378724500665956337145885571692284774060715117241421335210876300523725357139886930061250141309510205823467985542417468602770435160394962850247777684518659875574623342894062563692047002777596438090236737718355422634394818056403279535366605978523129826672651681213446706465755953855617063233315312890645853562486009417975856219036440227996892789976904218511049821675207582877397859144302330635504970093834242518270101113578709694064425771316388053081538654992858788055752381864192026206697142828937678625501071670239134966602720141077707834777996275958652631025198131097680350446347876560831357123364546128125835712445974195244857623647277975513583963508929487989188242224449162773260462935046774181195816624988285331183202909311435983512428498323050328312995865406318207838531264528611015598625431796009046712623424762246974420197865511096707813611713170116309539305175896381606925281966100986523100393651343305859992902093649247101010281707997290143348818552212138449047786797181266532378661118244745312225706078781108387467654561389473876248289656313820706371635578387103691974618784882516525162034710742075355381105840412790897044271293964108924760314773815893218568553236563819773608824922830378192540872105742724115824455678583275813726106359736943012266496570660684022926622951299551422793863332338861720061049298537998427968547963269627938512551673662363400479702924064964726630713720897529228399012208176621150152858372938096165976421710206424114417380889001972895449766669484137569473393790275528084457048144090269904285442556778755010249890301751401745067565002894676166486837590169481434588393844149657633446361262374225536108715273006550901375144862141193785881526282337447390084546339388960617549719267917573527388764262754804674352434849260933766174259567149499032590843240832237286495441418148723493730119638307450282180112233355273556315305705749086345012241595772298617118801861368523504701549607858984928290686547035848953279691388167032907930100807052753617976286976485737138510124548589511446538135434541913778951404677056165498197109000176758152567142620408992672236347691902049678645761274517664469377730013891445769065456374965655872300507402509212365765559710349865071864120176445419157259927968763708783093461348761579562589645837263971927447486059336196582253644424438311474264318787247533607637476313201973811775957988466993521640088532288343102846790357775465962628202954237744623291063796897356034182232749798140982071814031062685630540665121107577406709929382685072671845968309431596606968845411264810076905264684052096422532543957223366234599177855093763452682826369563065489497925635096041279680912153370594276824711189985586662007802066320449901017173049029535924387629009837233344402609505408882108763684484699711755930356723105503345023302055327668406566104115983725850456229384737300246476332087006190769527927887218737963574166861973256091942231007638607691234306291604783559130713680661542458289253398238279239005865134528431516111827057968068076776307568204918511878237945709790284808268532352561908012017173683008546737078256136826418376249388974554657810849681588547470915226836767969316667627845209460747636783250593696722745129637287721063083372931239579340875176899222608082601754732490531874426190461608783128685349683306441936312955305689301507624107435043622875736640038179342599047424514604605833041723044394922666606432896331212933421218734885585866277544114119595309453031305462951906459760475338627641934101524985236200362752921623083599855978216168531068809388436887146145805620993970062750138197206195263179849596324346674291641862035149299221407997654431091343483065672082292186186156703182195206305974147246070224942548092576190276905960819421564299740671748299959560270206309085537909617941872376058436804049921357980294236903572637251019571554170995100985480367796919457550572786090707090904462947159166644647371127102493680847691238848038801995902216476974339673266972791951900318554766110297131669842705600445895944349431802933787925298950015810318649971990806167944520284137151173050069212383854333174607443645512282065251095587163519638876317012615943193935388434560460831344187509238735055957944292898053842360296404911864572185844448165361893420079122357717381637483010414885565045629122451839388580694153414418699533852761898326470737119438935052994601433149527434584212772567745470811139775864965810837542155706976304795185589596228078083686923441196824363516948114911412970579834941259407917310234276182806871938046150445253791387371848435495842800256065787354837412315309482550527294588614830493096556146891740625008188166380531641917616122577946247094036740524817870375327843424974904316956226147134347803309897577879962322397183462165997961065426366536567186958914577544026538888874156010822576547049668753239711381150828628144830190594773978362347223665698902265089028026751114399981991480191532405163293433830613612693271851449077170903471809007816558572683083852868703585594977205786135972833017974198268673123855663449293517462837499969830367002315413058420547640336535664507352738611272698453630803193190966458349443963761737849691881928442886924137181302831694076618580649529528525450005050259846001210527995450260545510976655350263461181477270578323876827834333629809165363349352054822168421063777724516496070862955307134714325147205015799006273755779459633706989321457392962394485632449646944161888195897042231562362076639312099732218216058576511839267821823077436362042257459630788334671616318748120798964249322305223106493226240489869200575852563281146906637931090063055591313414249290208105213836509474265162415739574878995644256716600063346449591384602520608185948544915314167973213735330981198655879282032853288434119904266875478905358931937694240908581295421240327611181722822387951085146218474093607000528284107021290553130630125846528504544121790186773057378244774249899906886249628446423336383835245515288497130878575111671238119722139052373480046659814068449370410639948392518950129238026061942586160283091282619988577129476459064007007718936259291337161027314612335460432551044416351980146412018341528393246894049341991438250015955523468130327732988334804387156826418689005112071720949947657228072223733614317424116992365858582976842995658756710469773664324513717317262172121835537323285583202850591900227334061665541522784334686554988412569279025804515428682730018119179802022749220103382181124055219583163906501331236959162728979999735733624399572041777133122987678732431438829284619825628890520161804346707067150323838746110831941647945426304841631093229903526467746017303393365660000662764475231608484049177758271986020649547281859568712755337808096107414264292365609411454194737821483405163823382916954448494010842421876482400676945793840478136052655013489882301031408401059468867728605231714280478364730691336123363949918394913365861199392911455537619728752626501204325002384999219829349649502060441939433092057049244894670214958965588899072707391340284815945322088285876025995965603666246067038239164935940288811514486946955998929191486438127855920920723511171546013041104089094653298210465399393654971610243624616619966759147854574430646937344090735275095180889769576781454429414979912020233370890372352953606189703343453860737251724278027425283359563442643184204174275328256274364642223078668925388105208981477003206298631237653052389376662178311495109697218585374037394035319073192134107678255449817912250157601919661911636058064676208221528749684728310041611478579258358035386675965472057681230774149110383463356723884875784691565623262528905837467871547131244467915255360227800513351043299379469302841385310725760900689439358804965440492513275071019491160233169896437103397608899188129657686489096866316264028741946132717642866292229957174334640003870129504488463082934133103858268387764823728122123680919057956144949030528772543738793230582044266055280034505223043527736782683391478314155147752049722187533219290492652178511450501674799901770595631482920834235948635076954577465719996499873982103058646769527314417192133992219300181430398355589584744376241780544576772474167343229367125941328323834240244237765264069398375173170981111086624253613288075581461983503078060870844058555993825916352329272912261537335780687661982092808109780241411353843219595430004197682978770559810662014973208928992554358133118166414740913936875348160557286488371245782660259611293991109936531559127126347627459000294175408393275858091173450755018893917354773480793504116848547806906516012846070845890318850938088741959229497261517590734145639058744200585356954148001923416344157102237836753516898213660615758336353913830312012666442804174732994213326797545005792360562725727683555578493694607934584026505186637071808103712445596625015230841775599808784568386390144584867654653336979689577887729809088950593340291097836008472542722976844445922351802457122976398181501112052267362807717532015103741822508819952300923524387022005636801878854371542788643878995960040758455215553682098578745847704935141781757489400081098370883306670776031262924442297262160096716275498351432640347689536389790497676582183679768332212112315896540223447878165995511985961208528123931598888120227070448398496097326094927312041315804183471054414191586548866785751432598339775828138755818148914534487036812562181321958375230714845845497028253152094040061014733067474613067719860632575958234638741961917190249767863456904625039761081752702478295435104219978086987428535607862499746658091292225950177197530536996591237082461230674442809239428834539709815769229680046098052422482035845580123571312482313013861123532614003661089405763933236567049987173393235092654608491704080529285607537884320099830993876756853827349623297817762686767904378926042142216337531287008193574863461883090600207587224004264195929469855124444265109549487307154578980906373191801261356377404988015894111367524835336650724413775997024022594279602572210715813547454927068734322555910483283103347438097379643699820344053440403961186839175430450572890356281149548112414004947112706961778755797505307719263719848278312134457333039307623034932652563757685442499292458982795623198239369447983352572244316767175204377956804095632885241018923695646162305503994149861674455485692906312222115457683493497398076452079044902644556531899178099412208741075960146290654525531728338924947723687264753484217092166310336457204171444695685817573172847364429420521661263949314621548425200866333163112380401899832656163860123521949002254398805304473989128326012084037160727297729121855525163825792707161706948348575959575009028593388913673217504039442518440331850964178957943120815549453266254499561876748599837510295023862115321609574884060748059453658897206468561425819026552730862788275579196417018255287988395170757352444313903515894466364671448101233595253953859859386466285081364236440195093495996728157098565409684342541513843067047733139712548040955775529783611187397410221929242742877332134835410939673412406286298928678316290624698613318990338507844879773799346703668836372364023112040411108048212974266640932878161431842900021918239966357915054552853916499798691245971564568629160886701677579074615212249396504753217262658343758221325856247944226069891651117264387130900157303311151375552209640405062614680573445018805573549428775721656945798214555700039729933354324577801399772148732914643016363621957318093694442232386066494024401198484026274576661076586109996432852217388859472989674688879803559761352809058179191714216264462082372419398798725210899470753244355412326229771691299633588512978548618112820786386112560817041432253020791093519273524050499504766164825990709227478463757780272453794219659788540059718122274580923210049254111520267742283210607620820411520768421624328884510214046892349358645460578723599525453292163576899397369495045859220398676965070091956274049170482862299002641257982133111011956496443335038564698200850601962822844806874535776613789300493733425867035034227287790717330966864868787325270313849709242410447464697915832253723742877001181668043121293708478968094355533258679829981205251420391722694161970529934177645896051257178949889137655283909148445853884131826674319318351915359850266746792529254636029295004170093202384298033067891020960921882329452124453238989706509218957442611247337318390621226012088688007911993548246108916660003584048652137483838138321361749826514174969184012822262955168079944531926664110345837240416945647834029815044667708208768360090782566318898694718604833449832720828921623922750304715699581731094240783577971939565853502511731500819469683149048454709881499678360654448541938345295308068432578523180155005727922550409036728296633830292519446653901686290962133071432681609389189208341339821741090182521717087834250290785186110316194063378615837450323516907533248554066907410931347993308673646263116903517905020284248729604980959629542827002194941567419451877830737501164612419349454756882080396206220993454518494227696238676404944731417979322100236276443715007629314290606057533760372984934735339808725136542771189807785465274078530751454622142827725153668072913465355715435940681022946887265388287929812131631638019154800863826107990216856681217703332187150393899827722341091407290621972742301836838695170299914500753442643378474231756802177194113444930578039624310187409392856427033825079393005722544958658359027719517386107965304846705595295087820204307306058646467138143822720023237141269591933145614052761025316227478538743475065040995489809697000405097735526478932479178032539852985989777115023921139003791324663818058544319738264012188169354634285449455423755743799103057139418535382658454169188158917580004412270037497248184699461763627278455897129246284599295631034343807882612966573636160357694286790371220716520776551870482864292302078051784480250528509648540827815122722981338188050713035581515743751919416408084916444099969682470594886351193484135205101699491876585870976873382018253716705168104909510586299772948304856282121673930023253407155729983600943137196939330557127130117964327074294061483812482333072907232806933815618284945799135847303176675271130589867586604730627791259689826105064331667243173529332284145905623619217169033808219503874561105622969496801717703033723258435921017094367280730866487055773387687348775117819893357109103465458528745725897870381899432438279944742644792276837160279893674677985300472844675409318642084429446025671147675780619049085228113957042777839457560854678237809479252454858427621417148867149899079552054453151158045529397555999492588090181472485267385952203041376424153868999106917561682512053946530916443883252856377750259504962224590309599206516915700809071866236019231930561756252824627750120371084744159293093733989364256892583564771712700736926629865570192899425003350762569525257727402852295588612622787932610610585953507488745361717646658063184217377928943843943777744121852754874733181775637680294103388062110012705613410734792766759723596317361743876862573186403350736438698608899741284686571080424709891821787928827533325447273902958298949532333782277235924956582303838901491105107766750304047224917390433737863118477034762365573994325374715330883088776930215296905817947153916614913462916143637816586449807370321481958391800766064910019149645372944779227624950056963209677088386340622213099056250355775433743199573479779012208575947821567176395236393803510192645556278848292926762046047055559983476420522790299811022783449112521860916677214499203718370972568996197339820461760735534922181337133604715180889686870652716768706194085430593504942455475539366547457124667881837247501553351691259075879600438439893818159171296698963334243892941497288146479746769327242097525879455420914436576911214928485460985658258868308868908919513121554646951885435218254828979431479371139014981734230515562783240002122335348363364397726925797959192197672080789619649979509297623046007503361848163806580178603012157021035183394912072953318773681554211018178626761969212657520320616220239403787813894131665459462559652308448559973851164187430739427254258683014370205737862095257643550669340310780018898546525263502192165364042917346499537520081747888207515442643145191754172184836293026530453409203917717257746101842130908238969863052589737343068686476240722196380033978730819232187016984645167532847926660727768163799433954234571949200010544922267450099099141433870076816878146596477467477667039709738812434700248510843019217163918199991162160365074889987263303337959132608417587839282581570551133981775789498751178874765824296043010093213660435797783293100178773574310236815376042874559990881940117636543331660684678678226515371523057922576282974942680395706889201343280449452150704871412622693459963876877931243642745559503435613728301567379390988497490571035171195813502135197647778539655127292714964806697339273939314043044333872027742954803586054351647706763103520523545688656867856752980245672273928567159364778581067129446728938520329862598727648385152396509721326724261047276055914043962590721510624742495090939691896361813680127338033382295668601131395020082021342954734991576597960173678852635730622578267016829237929200706356055906245265811398850167779798809804407594722298217786776562062773799939317525973343267363401179697863731537491421015601307190786937753604523475089451096214137891154387380727961838119627069070145555681066918921085157252830602967738117701097935957881761715409630843150348000858416055452426664618166687254267728593704524294028627771577688192220141834377386641906362237590564654062512823572192835397558742211230705203639163702041579462692560568067781963408171992725477297643998506810906313884812532855108534268012575556272405396713003827377865160180912751376385617559101661727881837668382263966969947330791606786060122149095567009851002560990523707172888688574428388007514215027656127901583575901153970590564449031822680071525495586057235294095158773923010196806441593013199528606766730176080858220370349283089085939895737596037374076228938209665758488842363292735120069774111286201298374365341598869516622851581057455292350688758981961178324525901778038867815389233943582947702809504597753499173311736112952079694668980325662326415223698828671081516659336306865295492333132919538656080800928497094415134182601713519959072806439969408780382175308260227227187768711690711924571016170041311120265007531634109640558532862857493588282974057867341314516311389399146620370040974541075573231779496711554894027581858343498055343748004664933042674633435156786672266695028588826774529028897768958025072937361011551595311502662916472777833646332338168382333243284226007251457142597540212298823841746825388257161486725195335749029783181976097986871423588352093420482129694136865952191873882519216255017733195869817488663301612946542930409584767526159580547434972168765683807860172699592390648564769660016077300331632799042420038718986680949444336080290540994891062765572176338944251218659157861345792318096330375857575863096471026038441583252681085079001031164152352414575058497622824194078459628159280355909425770648413980806410251758875021988615375081642892338038726433220513638931552642540294541691794404903326820364357840887423879848066758600455924475694355020052194862992402934244596484971113863410175103295576102353549764287756510481637632461280108414809337823958315163632968921435520590344574469947460960923611219926666039015422761516643218312929040720898983877689737487494244403721843171019869608630301392183665163683537473452588792578595927916292134948703184817004674447211126824879176845789695444561681264149185308954943692700566577348722729522070424042686686969213646141476359546473435141341459916364106202823564838232614507166344499771779814555939862236665465977685391214928423705437124461285962353882129519672893675742201426860955084483801244182865501894064489335075452841163528531983117310183725633164276159904081424065911580954920837732178605530340431085631820580931160310116608450004270206104675384552537594097538582406108218055584139460867844982944553841079138087007476725700362172497938857378624703763225294899127925262927262217709222967456673168652279177702847190486382886159981039913794601710521499048971301611166312135682419798424602684480000556764226501433573858683158891951365722042452425298998823860138191238204303621191712678509245377040879226262342594894709385386031479031586021591858917183030269334444640990486955911931173425940711976694046141165987928920425535254440849092319079384295659148045331011051065892555573108293915276675197847315041102989273540545821288306869279048617902272174552289775323432377434300791996024180134226583562190044301994279143842374567928456029903286414946742157613213587537098055741042921181526922147280523170214188329814208020177770709795206126927663154299617925596581731667573750203229750990771081411191139896179896924095027739120632882883670196627049169330740227721961375862233720953204659317798095093714921394139457042816014660864297372753223140116321941713063150002696537475506366776151364350768056520975951566237005904826695364257058286677189809348383485623443752189237547492261471012818311820123598915885746732873279405683706958077852221094882449084715809046509194631753501164548527069866959266239289947707885862697097371385469477328296769672472217926785169550967765767160233128008645072564547870045918102657757856662854244821549626523069677148814117376634550176369782031129020269321787233394080687263056858272713440710801366913096344847286300657598617276333604691255974108764400061968206203036124198838084921032407004420733288217511868378619503603492123948637836059670844104709662902738917197026986116248225290596935683222047908390415826788191797581013110380743968422781280825937539837780664816938841174056801602161534814229437087685514148940721767238640735830539973026698387672340997706810109175825037933761397344513316402741809557636292449346857323227896574438599133618914069353895556803786758385737860165380156594081971944901143454294031758073077595053849337796627286974239890038083791741431321467159452485788772445000324639197849884132444333126150548128162746157445594202072620302606046114072841106449410630536120451952058307786445169675978587828837042810851353429837584250631494089659718734695708283329970307468889605129349831854561290638490950529463486731004687419952919881570838235709086235537625622855014754026489108334663027265400500767043230006760505308059135963525902722212917906250018712118007033830854713666849118167975934785134340504458900952250056334864181300509453749588815845775477503763749507711713730291256160658827075340864317337121906260107075602208292866475746570154801451062334840440305481918625584803869463873133256862753134168053417696960737297398380575773251523074300566414794991952202952164413788492314057378353298750219699341710819985797284126175932087952500466111380954658472469012497080887864911029648605345374063627341588565548261209027729052875473945802213127523041836259073787142933341427589936516531573146532948303610193992642520664858197355374512561896259360370777196874066075509819294749818961866931417913000889461210635213180954328452883435932155771289812474093628934928396781761659895533013410702539170628677040009437591568055551423166290677794597231398214148671283563219512075945581883447672661834676184583514390338225714937167109738597283261439111942283934987553376001189934624101604370346821442310138004123304031711083843681831815987532825670781868692975401366045860556990713560130704569701849850266819078640802571554391652173857969994388107695761219646648315549082053123111107904564592217439056940965629354046429359728226372458723278220716496641082791486778322416624098903256804920393768197912143813446723708489751851779659616653856959496584873665038069349762528330066558404271889332835818411127793806926728209000504252833583656991102108039713111165894973147851017714098630279999264069292316288820557670258622100879633329135758018604512128787676237496634217085657466563572245111970923233928962335702954002696047681925313418263107304269969973407467284946344384241775934587710584969380154176822641737165147698358478532388938361828694328481186242391977377977235709463591303567290646547171729190888306177239660318671843693975341584403402031027428984283109265028939672439933986879959378874089043057965106240318622188634925635423554974417349405058975862097058087692221993150998224993863653077985651112092865576178458172944863828503994381497872916029833445787497556093307714259319392342907394697425885427345239405797181024069352219198893923254280943544313565115836351374634675142830446460589193942586824363333816233949988660202642564367502255546268156480097724233316390072066432894717484894549467049518580752358775112667013157922881710114091014636301091127373997734378407797858644557168763137870807517561746661497643860918890820818934046835985317334210910009434221885659017356699128349376925308560430058372602044567415123462072808831594041503548099726116861226667998565080014053932524790881662397972338011764524840609034738398916495118687142148090214312727951129431597487277086872677609821272647565257239366105921021002059902590640554522921367661424342680008170422543840133562297412170502192526302679071563178814262231646756685772881674104255310816050038033317284862149880711989870294232781431331867350891840175943231908961000091272712380711578947158559555732584675387092523828076131849948803196688982986367054753410812048224925432952860904849231801238592324983831366504510634667014193602865898424189214426128769052097593207778735130749871209513561080062065723284754449524020715935165668328028616409041760258524394447952539497254179758280518733909309964860671804759893338212607766818994265514320464459771242194035219552214777002684065183341263481121155704794432281901890147535229879755096489072914498254963561702510322282824378158047346291110897097953736444383907546255923117690806689386675833616445820639255654033143450683070162964041274567928288183959333328587088674368444044365961065575583144069375476416731425482102597706171390734823689183210059858944574235674689744453411543836810953921529725281022391325679578009595333667375172686606181849894538052363785308629098396281284807652243491449482648950000114551090690648873645202029648880728349418138804738865196234077562151099889961187569819696942224202848839407239066412197468843101916908847318552769129666859023584564140335549154100104194714960689640920453343419166371501082786910177573205488555993759582897561876760942615908024712328866635767350438349274704612896056099199985014974660969125963269111693354941612620571351479589509432690820119888325411253843460650662615371410183424279283103041603581152310156177367552456891604705018389130139196465251036191478649330792657007009906873858075681478936757017474882882355349792360587194211609133931493327954414101502186221981216213391050747086448577836522794098575109837414221214665496651334262592083431216955794429998127375617809805582501818494455592903149148648337173105813405976748751563192392547644049997731140782710228611497217347442304910901761286835415624604920032250297123519498808300019576517576528959991426374283630033135937129064851549663940807125396431859948602305544790752981365259093507773396982218628675110657623504734071807982619141265590298520148926691611997382147507764025369003378034708477342731489906523948750478892053453000926302307221590559594847487364086113297789002088117773260214386820372372281346324630800599610677506555731481704285591493291999879819313112506661372161476084697903851273282640597292932585688838244518679430943659578849164813480275976524321899932227069119984598090782280161957635298789392351152791946685143552299208656752135285882645669171704627717164521741396888853359088619462589617789588325566760879979040035559556402469517214211875362938285897213445643385468163983807949426037343800709987234880288266627165768123079187177559794758884883216295931010473755077632620580990781612183227003993636417448689686054554445699234138100587590370289879074734366801698103203930806660724689275744918773130948923559718334564124513555851465469569978228008145505477209357539194154360301896349758990417000393033516900515493445199575763725768784489402823053175926917923857353457919020948037019246725021293553484867756956618058633718640743552186705361215919424004708308215741423810853569398565577189344204157802154426006532133506482595930769994290137138817580373077653515536033758788297021306815937040682350825392309821611972562183174876480801478649341850387047625248503524743825685315280162813963874315743943746134379012762500602117040861346425585576677803243877602328578813865192759838719466982580700703940607135212706139157669710959089602396278351829895480990045310503788750416373112570792438776386598280431647695669165978353185132067808731404932985619046620307897032614826214271638316914498110258729410957002256393530136282088653726207660121343783194726719306883310231328180791178445919034547451561768412456466305510852899524055919245936907998923197588134472938082842076115245504687911766389940160639341770725538100691543541252178666646383019440087398641580485863175942922136445189163600185247788679058722307295895986041524136204137387407257980555790326086007528911063260324331293809161749903832553870473962745464392782389201932313524616087601681420313293896290640922547811977739717040515835404273798713150913429614827131939864439364509596501425664780983430588718613223147520573209171360710096315846559859868285672982048414067900793396652658427906697947291084392312067842297932516313535890753808266368611455997202825559476074436271091853238878939040165301055154919920044929410318930569776891901840741333313873789424069439705552674318936548554937682525149189903399353301441247028938490536178772868580297994151981499499557777606368940496392761870207774781089652848105002882889064510705372478240968843199004306254785214810499342032004967170748783844357152793921570143924626014615483497418722122675597735646197966027040468212405639603809100277001566638937087626799980553425066138170655371806630164883436661119546621914362008363251324540009798424875384109377499048821630004109244417157090052222461193981512278529062360042546068546855008154798984196929185771663708109286869629166150282304864599773939870728844597740789844890045873137447375443328628501609035685363089909274843916233466215876508957826083733118624698677325265098379914411318783043462294735948578092177972530569751026319323425246117909375934455826387827594448694385008279494042934134558743200066281317808610729802446748236621984687068932904252460393300889105454684131275456304077015257583876688033031542590172464280602203793663558847777780904110414721045906952365991532248080256375054452893000119502712509237907811727658896496232801324699447106348877535798961545086903591286993293508565034098635322547102445464910320185934325434407700396907876247727459531996632965066674120427537454441520172644382411651173403035650305399176688314473716576169086996784140443647743398490589941543452755038035711041531765473006621958624854266671869728671030873021321008137242926759685460093140780405497298977273494059614535012200729233728088426876179853764193275849221230154410231573699618278003610441121233076514442040877636973361707092511378052977030375601496336224241064517762500477333739328366318619126114190673981975776894380767306547761035999845695475748081183526604967836931188280480530357757788167273568906161001528677586726309333827719497890852427076828968402307807593878080875045903785816322486153351369100008524707827359219157540540605202743804376148997258702705950266610553169458596300321186181167148889550016087087631163376199869698889409516576987154439367565896361608470079720308537017636886326458635530964666587743156710648547819153475228399839920623733069323426928584492283380779883707678439772277665931989093750389797491484928160067819137088481802004568986766477428012235346632451456722286317065844517465545318049220592395306673186968584434202501531124753557160667901218279791217918008780858901702203585451088018401859895244309314820808283775652199665531281559536388343340712963130940851003850569563381268894060960665721074013967951274021863237259428421841560628004188010942265378268950873566579300531029201832259864130233863724491872263488311669242151807360441101927319363246501983272682961696843957643019304595699700227656511214757676232297246812997507292211360069649407182125554806369727671145933225469143178807594979881318799746641044249788413114782716901891389980028031712724861485988556734499904417453693141312681355084876707078393957818819396206920271761556141090379340406437170306274975781748224878243046070373255699393070208953733393206773240202688978343725661576082494523771183040829408187314002539508343002980958637534655841911975685775048093457159538269215436919277534238637681729675916904058462674447247506064552133076661715707080761220476907432692603967993166752362545593079287849181925595521809892418918216475887282963969127057855306261798028401505145410782163172591954824193679635556632860527622561196963943606567560722101686563234087856902901687021990355364495147144714679666975689484515294251278906097927415269365171077994622967574834109915917339341719164325187669364600370843332417763283327997868045725118032214553339868871279390965048605430926985586014806359789335194354795187890529247312444456653480860853142036713608302756768551270196055997035366484053120955455720551388966194500459436520551891597708478470887543026908370813151658705505338079987117376732927421469644658516022044217455150429946520972812457125888806373774210398868033358110867164493600201036271972516328443962056776833941132199371008217038846276544921063134942133884346932966238301087924118210339329364048041997063263322562253114602772727107997852541543576152621428730992230741608662277404448526953794410810177154511800292876731133516507185911829976036882483007568230614601113998248317256134823356409884672687163508982811192006159768698836400189362021140745636851244365090055167985485966490184060194151850561197752103500454406015628567602883415216545114184147916872366631706292944717653540555255259138446273798796863076273423727806219956838463808256882805519264541236546629417338417711763779861004782563917539091742970210647733667864271494874488489521687683713458476576621029412920023866745251141885880742560732608064845815706261872128706116419723325130479158457513098698975702719532237773502319014523857738634049370722990817234588535793823721021313769416569565899712703799427213328080514557877232810059476359689476919212535917849585151756371388688849725898994490891724309146322528759629295770567736662907785700477270438289364614117730736950060520903794019315500811402477542533643404100219628521870238065022997546712971904843465974759859894141518151491207266512451806448962895393490957146837912122518823310697516158421796266142036034247137368174454955267359367828421195556265774136075667223699598467872113563425648151414896000646346722598074833857341241019838503732614336569004146075068623326104986655191345292427636823461297181495206600312571472637088826643791115048551771730228966894984352978691899680347576115640206473093433412189789367186039597107499300505473033635060601154439212619449066740945123525701256305836376137958736350388529498987539376963373663235151996833043254989320176862309045596305861158245744208372975335803187956184113704212770859565412632521172213481164450136059040853668532334041417509118574356091523170079327891264386144706968855963434399311512179893892906007250116207667800263729988260167281580763883408488867651079229263282560275339333166271065656417193215656925193751260241087705972281735224346522014367590829224863708372196815977176059460797296590014813151803087770550880145880436784890957240345782223953834012086951416817105867622090475224121776056980511738506910134022177576952648710855012505809496758236830112768512116274475214044418362038959899009603543217506795473480782652310998925380014491684412231332416951468606226358073783490971974813764035555724680346485212989531711720330835694613830537002630172123605131099769258197835558949292842555984853138384713604418657384420453406623175578110280879468862914304514601626219224378008677900478939932906533188312041690235384837119789196765813418474184224424381915398868683584050317481093132367407673581361064684659259267855094251969417520937974357988246021656049419997433941264716725352832868881974162959962156567082952847968839491424586422010881986660497848161352609326364951069604968377682635901299588330403499253099706021177427738544526736525564928618957746398319002907033992814645998238466935991847215786448977675601262658809330050119957795723754813142763586279101164166663725595092412629418669161784888164230764973493520394231789743697907266466201047958685069100279335980448255911864665412878701477369154975382285466533310979869843056029462439479612509865176536716673888131654185970701429124919566031090150408823958359756628965268624317083272815622448723011588150845953716014035042993421925811384367454315448272946935928361310086775415806831718338728002235801679274887749620876274203041702165638093420416362360969143535869913309925164208119690975563995373026435682949778658900590582922430497969077072613641147387226609617627053410388081906302986952283333787061929381938801047270056507464660529697138510230428373159228248190734456264028587854313234907063173976785129684106234474164580875384116413543735340767482602059029201499096987877228016246738120707635108867989453956381661131374469156820726271186085741579010867694090679082735161776006484341975050751692316023617588622135609817692008873190412982511398232829379511551036950275547723192742210898597519139768140148965233205727774099026378418336351277743013629472409675477297407654379931635158032251223283704225979422569306599067403009470980520886066549021429254973070925814111303700118451190303324840687519092424997300112621534814869091034217940544228545809581103496762632723129932992558168651322223709005815144683824212709796060194268736333282641616132491713246074742177263938863195726078190850957112453443316982576637139063844076362483342699468063345348630411234981230266176184928923072279957990818875141983510800456876216720512458105821990414326475318364292870766593544596500443066160788501590978629078636948874988799056484884197353030462265735212433731421969188342060094923543818707969074466644638065056393597557722442173475544982549822191586596072422157440347548797344838666469450561611607204293523202301032147774866802236154830775549427905674167084024161330559992781129430114003082938296516174980074142419910778799095625918943562421390446319495304849360627086513382203306767349317929057090653109341003229780082276530676291723532895091428922105988823423621717200209687694488922473199231587347794551072234981316077132576354956435200120236983033550209826824961512982246948732045597911155377305045106872450835197049793208675578432682762673327888066246126966628061375838914847355082233950828103352640196034600164212695831780074529139279880275726557311200014787041526561482971679264285490313770843162918938051540322948484092954178893428310790843563761802096352960619587700568974875512041267174937003606704148795985501205015550517550829965178139251214551414614220513396200295938502709732788362942711253133587370985751881107437705363274699527147287599954605241950514810128071832677098453781542889508156820585341257549062771033663825263790625219820350525471449633143702177792305274040615076767549381662368614866808666585485468889498503590138958259080564285257623451982965674752977492954660912114009070938677556291565517128840379110855015004417971916236166556344943325295453656738027774792626512446251604054284066925690195285985943151575142217963061140471654917121775169886037591222810019872259828187909692027166710804577738217766347533011298285647024481645543989535406737486715832546802241129908150471608986985467801969871932882693845034148159689618922855913198273508083775961284954223638267242118278123581896626224738052193534326685841109542134355236199834748329535978814519334371371652943309668711750290505242890402114792399163483338315824263149428977952157294192421061567153537937643301094253010704031331889391954792342144319170473793109000267604325227893077359455650650829744306741383605949447072614453906854433485636713397887596570569812221032138536215571951642448439086701336120232643538691388487286863023722375246439408584199255888617075343556751559031787441068155294973063947617568895541303965259837314507201379900918526858346946215321580393361740580345523892745804801307438179040099107328544242230754770497526059823369510474070134975640206246398916471858447797981825708103556664759326578809987901174580414881571441508214400782129785784055558009307977003084471448872210588820334265288015021131164324422842602665847955000044380087705138316374276110582835650890019953810836202116755873038869021969702049581957248628878181620019991558809373307091693484311307310666380413430094346263354532802226934735032537047459584134266844248886746654016851612720991649307575184455737449841138165628744727541236266410182075755539246124161840880984639373257693536294816314057588409631452910294210381903791016932317837692627400984780044878532687154246946200867989277882611384800264202885346352638435227596794462192846865092443896742653366809117676943627933587605579849025251393973997697071185925673529216118829270030278354747961125763413607864392139297525188124704029724122545047156832164545758896192761445379113770211604764211159845142217636551887797084544387566827089016528703509505838379313379730573699911437006314432480785325358990316415921162115702607057732419964321991051609285730216629598613676331659016010016180535041199072979863651111354740822556065793377371800164164105163231957967210987268695658321562933613132869822152278595353057984960349925137068566823947321482917876666119474193422467435749289366117523127358466963816404983642359140933471474493801343194060564859855788577350718760994013993814875174522779739622738753732938075814431217961025538886034640113438170685440658406125073341137550298802207869006659788030088137415172974045116635960032787917475006747322383039900132908992962615845331455101366016756509965526126763031957660523937788449426489518583089819719935243136418441759888445481566722112181663174964354747628320217370717258826258647958214673577193700450337577221219289079246833196720978505911424668190993554549336035166667714240506195781920276831842455020139862669774844683743103380875388770963007601445212404897411092100840922461719414497675977357529143662699579332572374652513920848769699163094055462710009561618301367304002089892501447616306479167126312018520806283767449487904055024391322492806547540856902055301071749279713907086347751600203272170229813426563686984481288967050121811114000602953353191831677469801559110235463478077613920727247309273183686302312923015621462675405434982335446961980054104204041524439717770701319035698826632577343611820532901982061517791432463684068901781696165595459649516043910007151465706040475327116760706150271432530210291988442289014266499662002110589929896887747445226651599811320561583156996083500556794311633678052991543115739763526246418688294449281954106140877806593911239610414006211125371681231953613370017539258234446462338611390391889243800988042002219885874336560709201133706068009656758514057302344559212379727831790052980302250983976070264539851899680275574509056362097540426136061439209579087440894243570903128406624379271402683703572846571661868719878933930317530419690675640391138669110121465499492160695927276324259915410513244354890994669403248494304873357791241449095847558026723638364538041514034212784215746999999995422823600356897218726846312652471706070415198720865236536970911142529904223922837242136411454448910117275329306948811222985304602455417124775992085837091507605713525730943132565126123472183665605221172576663389415499516911403094036936450065560638246749102116218791266184504295377715552587974923389482336687747027178775976262994961228390796547607574554654820862778717146510802658912073944257117647054442696090427356609640557430535668341500808114272760176083631287458720084160186561894320916119795641245520039017311639294332428275294226052165565146882317814621714653848311001813062451736188489992733325175123826844229034587383464514736574223332854648735494456601199299793613216031854711121997198518652383050480711140764144222479179343823382941754482351206369583664429031279488504117864270787684882024677013216679025369772051002564554408166280898261439488784598454742532824819014755603151082287157196155457978325466716941600757702474817865779376947576013791105084301743825566467490440080484969751323998897252509256020864344593837274094930949276197132466732313329739017013238383113728394370336180517848403605678734412284802392046596678571939251814487186557918564007892096508927196106242526040420449350141422636951286056894904466065722907290632493846133123182387607645363783842904554777900192907989650320758699612340981578576068614467149097175743445009580614497201441053144122243159077682491781668132076061404430651128194683658044097485061429714812850536597275571682774079632814085892160244847069929788411977788821834725019475311655411968872504466831647074792363357944151001458586603664904722608947620539245994196552281935800764638999547102592403441551376181557954394204828889127746819988979121710703036914741655164596581724854330539778753717141855957531663437421122884357441470891407524759534959423106943897995223052640223418875556676475416611548543793415052565261608431575176345571584010592166442054311946685494124283085495917827556874192977418878589994848178704247489935341717369759073016808831795655067195328857229691051084548439038336296533501088626080407335106514377178606223743735737097150728531207324094101342047103886743095825420762844318882164368711398136136938226207082500652944635006405505767877228637924576564200196832637634680988595437834736255683540569915447525050712956606248127289428686031077098539677431111721507207530514107547363955211646842365482074234321737914634812192284247752145493518555676782742430862049033122065497864612860888631332132584965252269151740239071816093236906081974242776173497122002827321224564939830120424972118582616266871873559815185681910127463542259852577609162257723975552677746001481486183145950570128126011217178383177899160663601202738935365202982544302960485519269234850863575728866535178204512412248475871957743184715318183685673715506226954635085133184259431511912642181034857195415934936667180703713704830994581256671795898463857329012495703351532699858110085050526620297095133576566446813142277010104708479025262781618579913266593183349122709066104079659421205685434003058461791995843058621294134311908314198376856423248471734660847093557604495823395892575316429224924112556712447437855336637036630868055353374833352349866148732409516161524856332263963301274650794655907173705044309603256319614473593753850789885955439907787100771786379815783890388663057419053990329669091814659577131454503319380697109941097143799361889977775160504271170487126846482009159578836006581033740727213710708433380969366527606044525429212172748705486496028515356779445342167074114411655455258939779136803568955771462226599267089574733881239784977003107319181381163261700186541457444624683891454047017389573075113574591740403192905883724541816354290481926832986700241151309136240507168805852703450618256236796891104689262339395827467053763324344774567046850251997568595915776150597282483156846232177441675874941828299385328388768388874425238527607988810556234994221473553622191259737468386174628210500877962765673192797500159364084968861266573003176958396129627943389501139166465325438808076391253029091123560654735205797140883079605816612698350689159904837776392174267422637399946088339832354776468981398033977721248941524194480604369304494762427003447685967788193270375168447937937713073952333442334294941738696036678555124900650068301120016359765434726835030742924315141467876398527718043663241912176397364429510937075832715288594597800227894736361070240231877327111256062264364012770501201977339395394492148797089704061497359271612667522835589475805683085936552654603676157982105473893985035373791407778746898272217321529102014660832805975943497755317645624491160141998319506919225722449237575189101369450233204517240925835157382413427217682193275002852829569488939320534973939933147566636801196679909287601422267343349668616066906951073627509293321978578479616173532226207483031437335163191049289115822743433902992746162147270872988053065329033871356482742890096729007019686001310809246625378440583625738483054269798993855384967395768461639139677663989138664230631510986367105785031261975767297785962061686826375796389901975126272906863670116908161293650148586486231275624713153241031032072487117742017414404235617331786108025623837895303597079145455345021282521774637207416635418673524391986288632207331411736549196867988202617982053418629273504059301403778375838347363317790390620935946321100181032873300666789642586072361552863173158762721505677262431050974926860664924359945118998703496175541725382397494325702686880767734024900131451559026573784718472247578212634417533244606833921808384528366700176579022329151078195641775196522621137456352427938870223130024207125236344826787310354431576221075431520629054901238790321317405038130215664203222464693635298442776914014012213781139229208560150408912610235127264482271889049511566112455206240173115204388484724993290778913992592890696154355725563202848567364067234615293540680556858249555442481549408705660809921768042020382829832017391439453471350589720786630448245160475718278451958929057192307761308511215399182100951838049952472465746081781072597622845326574191297648018079503241371493507259949814680160648787656514844733956982669898230385632485376890574448312654562349249964457946624704592226287677805084235783526565372150962482262454269676397997660645836634653040801125769266232412030691207586077599706178829223122374920369832844804619529527818315983287295930709500834442004518443870734434569010010074687242361879284460005242443433380477796082099792976447533750803392000695368776265739440074090060182983721411887674370398778787517806067959635195661587508296270012833005698954743823351237931133392009666411333443558175709175045273342942603767289212358309865697756799561296330317746616066576419295710468960826381855962698681092551064460256768711612854253380541901486979061899886925555527351138289603494650215698216644064023031285558652251251641658149049978729914862068560989153260682278694633212055824464402032578004949372451748716773101983277642060243953756795203600133164672257005962588380583698664040416153029929517504425154185991882668328856452888653302913161424489092688551584936314988836250886688424303728494172933116070343539591892181817501045566741059093333865117621275132453804697126719598868576308504328614278120678601428630562490564494386818214396942652993001493924376126961026701538530507387775495363924485688651215866246467790727841468559237495810768223844250468936372030796262567841094705717392893733449089172406840978082254353064322414044731680357147499798447490153517462200806816843077414493629239050856619803587874220741232760246871959834637276451701580122031656508238346513815990440786643016824169999088993887577310110904401139200711854029658976765685415131609905969944408029861118538838083222681300150734961483857621905696770444566187944134387878489722519629120547729796469988330159303632063479626670499579535289807846469539644527634657070739834043886050125912581908460816150648154305639497731247220448166956877299876179854960742814426012237537116279993756957898895503535271738540890271634240488967126725137344941040384220765868332936025878334184601346818138616249881994974251449880679765592032738543486165757920807075341841738236591271497229089159469492302569883201310458971682817294422875524744705362467150566891512925319378214685795606211886797824136108782862410570958566605674337044871747962637661232946849868048209649604618040344071430738875219315528466883147165412746118427818518722876097638739645952501409153930764307195576455559527215201925551373381668733203838660873102388837930298517302701048660052121436265183857790002679131741760644966744841041035927937078012475961174646605753054329322171963377871319930390674187939732889213215005038600657545146501703064386814506705177327960310836495733753062367820928465201555544035203121605674076203303618781183828107023746060256489035928486596347952951509088259576675786745140458293491398494801548178311034290467784881827511088060114165547194521577895045962453302320569131742879495862129161478562318302717431036267594114300679478102244269800800959627453609886672933322425091097111097643245502305801231754243833954103903488751962759873428334175913655509355563405960379905285991839933340785837630988071610540459215393570050455254672261984222539844691897704569243064235515479721460382283456285331305638774252288425546895792963220256082304837684133814337573516416517777631923703989684040262019855663329975582877473748441613204868391807491817964859863387828432172561007558827414215292759425907948153607967001275357197361853659338786106205875749657101018840497626275273020417595845041286756103539590359102996429289466528953316121431272522686714200136674315679020620841064863985678177753407065967892674524836691683262851116776951427882314907278554442007751470213511004533020070248780902639074964042378276268747631800143661311814721151879922791016234999147884355850242941980469598160765291045238221874776301933571775964471167433101171643680149342188420256270012603592668372099596615467834782137603618839662847354271655004236848373852919867010735689026127501912353640125544125229764265585272459500567623721720803376341301833059660237366291052621571748253170115657300927886707057903246927247165053311589357138532840584045715400179865084786592246659494678718394697778191529206965600699490588825980874198799963852365730173412658526493489929889983390782720331595463346246338841611947634685827352984940083962281510948321568097081390746426751538023646532804888015801206335397027191797842842600359596588141935320405589080501640228399646714081785450762763273130278555251449421733689958783669967132973274505186848448749009946132567273441080000905376233977504829822734747007095231665112314085182639995621592090419789857720743215034620110873429148839581449372860847077729576007007936012341801027617746919615144804693077498107454908336481387505574056619853864553715030068648730246016412501420516818032655686847101162990150183318765062779146321316067281065386306074510051084598164723892665661393154650264198411739910005766756322536626909024143942853569894148026151989549209507255511318663208977999014753733826672933381931481001717004705452644920074660388152970085001866022248546647800105013391329900691943645476187098648337592487088780453910140654746361215129062003536724186746260786830081796567938734913374281147430169167619779575040223469176455780339437815491308851491954391521149770045503278578017171840635100152094808668940568043188081648124983938871835922291257562851723929699826987755200074475492391964315455089830243575796664851698201306714413082971777019887828513389742337572553423536669718908133828190561519061377242644770191728059630980119268827224436932222904274890781376421042129930564897927754121803414897496504143247491065350624564338812103449468753043517289602396659622589880091051156535049365806422053272983501382998778607625788624709114956052485066457318977412799443166415968689095443353070646665578120785080866157426329813159324422270133966697202735587579113496985187752614672233157167993371521881694129451441530941463467679616904982874145552524257712400669597611765411765502815887429906566776859002018631596064537783034087945156869206560178981083907595691149529513669687214872612033794828726354280040164354151855841907482339068389298689825045423887390612102668448517006633332291034440930551273957406543211611474302358954305587310875602025230712712408298493913593667208279414008139869269649304399825176787773825581804322900124166537819962116030837044864729807790546083779865797287123619813406025368599637503079708120672176236505772471258680448787700671763396742093129143744441158249288415399649442261414370151245021768359936631773765045743861958156483876127516655093207171084704264550770220265545316000186635325239896358260043166041505050111002020200620069361604759123798197334130557021626476197073642905633260057069484020788116436026231030886970411414542364308970539826338920223681916225386838075401275638516700046006562741271683064089561326133732359047649694726891060200709887467878126241188323547593784857510541561317649279809931126141717510222995720261911722197069256972190236262078221083278259036481066839756585046831626064746715571202159025055732263876513590098303336717102406703984177590523007526829604206363524097241994196567204088307376052881275004631217534069714184882218317957671460054195895656199576678752645555268630865087407516540704883920648619769766882768336741855980882424184823921098639512748443195334795682244059942647987988340048586865173730609858937513171868796277770582720556476530519582111624764525233652137223927252476380128579554149070485060032321627097357294500862529820046740693287416850322943642900488146989080886249093537064427667876574565848326148830956103108894702109429448746349141702559344656325549726363290678111744921732578740119805335928070472086939189844508918699849350255236210043530607827281760524528266203646834214332418915637340316481412599382574808248821176984907813998251830116165295300756918339630496819474160294311764804181045411994548165457565117619465667924054698590342295953057047926686766781006313378609428996429102128442307796257953834929748493009997589752155770647627395770563457731304902382572136551925718286020656781498754519903606933510570725624363691606149260905249098149265942058366882434000136917356843084398131140614711615827195712726229333760902247344297845172050644487728670328988411508057863021184315630305423589637582332666292208152376281301539314238588321750897445608564632350256874732032273474293455895244956942298233190208089635792802043758606063820370983111819211988245192899075983776504973527774724255983124148070718702753522555708373645431248259291531524959223233622422356425550934379712115414506499002572857549159158240020453339275334237425732266583983314153756981002155605028620154850826703170462132315905141025883301661634148364286520361319945502457641771139505577565840645575775635003765408681226368869416823770995760782034000058922748057047055784192723488116986781299053003549538927116080699729051245350692917723054298908072865656689177407534498863631921150406219977563409887008345236696029592369575586858671285644730804868108309474616553759611556659727301441674570771971922646429773338709663716035238289267896400635805505991071235091277646894923393280501497873678649931596847200912955761747306125294826113387073270695337933675639527442679371205473280141830456905368065413910729323222581837290268006223180539068827160851491867858513754640015354541615330218628784104644184689665009225910443148637133330926572703308968669910807500587443083012933263926369139001120834146700475762756144915366099447761283985197245057090111169257542044536643108059133107170425985958892393497901526652363228480330752450481330873912521593457248846694692435643251367926356395847225353692532543849681912539930941866447148161251715941808473047611544247807741220574843626343530518872241116484926644273654919151023032773452269261237126484317203037089439744809902433392736085500197435161075016766671055990939103755852041039430355165069193400582189228261846266552253748087019222493293563008169867761051361317457444011141107494231262474688504124153837281001277593600258090710046595346467186140220001285871303432081704502866358117830166400452207661176869349923199304439754004378387729822098869601875168825485604629592821505139867798676880899823611546612555699155370653360944677908930257415183391817515786778806382532247684369364061782273548851678087919584716560438273285430703062418598605929037370496219213635003639704621826378924130412050102755581175063126880732112218686913742461231613747457189607634156212525990878831025867200675923059612546354636978026672856579847425611510410491213350509630211370166805559226757655463905331126748424603649238052629609776558249281190546786124223486465882918016333773017948480872969673457129915417247669406669053625083463507786880569762087907019472607514989199572076690145801775286735740640206935359802808370618337921831742965655180078744790628122083812864855671801515270345493386399280563424664928401816916562156351792466090006314634076341993387856501633461758021013112433288911754832371479422248350530181271279367575009877001919708895752998209429441182627391209356409338433064302057326122756801777357930071801481269198237506380925709907302310761025794962149756082305613033319161255235195814527416461726104488052736337174628746118744401948729553388932618439902619446160501370845170123003062355474684666599598695522054929468198332365877540525727286371478446074039058390957105577834233313653606300983559476016944825429558855725218441507853914220150779719111909144313640597260096057273356768110253156683993219733735918079757057813796067859458210973812182677951481345461137223283958726407920461673050481624542669105015587852560133893577093996269177359112667538321716630241483610490441513577911894174655949138062521361943943010593400830480081709812701525010142940874590695547766009220019092339930464665923097483661177000237045638580091013331033823094523418247687939831404467093693359261072956595800992092277225501089619484247712149318143888662817739590767308303767516414349575062346490942323130738525381261392784070540282149746289124532465199763517264627209674896184953765329129079600622246335191803201283714031146681075664403328677714941816858764281010545330049441895476678135297505922116610625093161668242088686720846010318050426638017069662132107183538351717209169432939251204053028987946668043122085333409059840652201672923918148118105074158383602651130499230852023544812604107442386263796956545918440045163655343337846297705491487703338529603437172152242798353200363244299948228790085443888310325446259800035698299889124229399896045671743828819660758813095545878251378335378919457858924565812726949626550700780069927606672978273887543256953277509125186914180851085968858151869250101248224431772474282768194880822869040203361334669549142125794142010115247819582657662927237183652256842387366610242864950490122208842659807261472800039438137156511826477549094599123663427536167072581509364291328854849544925972998704183419587115176568906111924163850289835770151438830688435237973104942916677049961672946863912502243226497994857237309782476733221575203569831862706807378717446251151704726307759508197657331570775326050698612512047672659998652632438114756756669443341838860165812623018130343931348137871044026507731943689987142140332766455860979250371859426303679086175037691348339092808983630198015437575737597503423262597095701348924785158050281345461166943634959451717702093088941286249369807737050352790789531244314826211950904938786248004704929549148991620465580320716036193057197262487048582009419232109066298152147511958542846483110238860526352390388062794029512813722312752160018967317197513392943010357891690131189801950131258838958704300501641093194054352026660344194037462230591760692711015426591765494909540023711214646590428572390244792507757536621126976557633441232010998503984284720301758939556402848810790030558068088217638221902284514741625761461829655443045441561421928098115087356497659176762187837627404491321372846737955499699801058654663683236543599533534196278559093120617558294045937222324629337503590682886077268397505572448784183198149316747015418778608981277070680563024713467886870637682954381965367202283781434426493369152682913927587377035925465380979858865151556859527964428804020806660812160871264562286554317520658729159226685169711352884587601137149020822752071507981327890030277370152623195103630023973149650871358476688741838658951470007110977733778026379493381173022263184407948574683237021093880158807310174420733086378421350904432208875189873441238399025877037274223176341169065170943717701422232604947003757688139001217222523272523060424244217123866621760055076826367402610221502599776826736372347522352069830476438668507446740058909319491101167175202147153967864381836235463171219793561405929225260306988143844274962768687892621421045566527188122794084894969749627773599736745812991920063275429828885613011406815936573753127632128096504929484160273530558241407148433482070408468039978806245914109584510049275131132713564762643977430894252734282939857188304916156316945350740970249753379920771702229703982168208374794520017024563403895956072729149058528069902232590714681645222346776893631234859894876701514183758743726433464823838303967043174287747413594100015040456190274227392875735965180934927338733571322538524205947123122546761127560058946059518417467626239085521367438106895337038903358202751334214044685215714367827832777008309877449858541611234949724945197491968653330468449591922110021180014735697517923487111711948087040654799192338296113232781475754219030287627660495562161242264784780432566352390679419666208438533213766566015170022266361267510120640919385817141969996916109083682700276639063936805550662152471769993691515498655676089603869160943656388112064754907065891103635137423318531282631417714662632217561313640099284058664364241902709265471402670983471720862257155397199043935340798140324015765769946605612082133625956015893413666762135569436099582632245603947448537638834181818028870636576340525359295416222569274292454265232754272314225549148880312153098597557317334590925094153206343474373624266734736045770058617010264121970610920873907505962669389212021304502582910859126910054300841073608561747263463157520981960264721020353416382555845101807865149730684883008710855151159491723006306533728070899384366206244147803250411944166106700361947445898644070175126437523340464787100004800671074763994950617644231644113737429310753582299349841920623572199108101888752570936146861474152232980911768883396296653317082940609917760296338020599542214746862125017325617495967984588289208425970990498678328667508294188841934539787947817450477802850131456180802998168804093179759476996548443062079240623839066319621036118262682403425692213025132452847641321189613627977057617102423021082622706011341888549719773065422132153719629286226849579155665568507777755400405545698497208391521564663060864823319477664886280090558265291491385431502145599172859701069087991851420594390484550806958076461512885416606503173172124561109049003022905839030975840480926371375152199601404629460507925877165252855678711779941081209698708462232587597515142078846165594083576088264149485754161528056864941984369330298888460935897592387984426109091828902343566225670362767571505713027995081663439492677300827360004976157607887633730750186427996254538827877254275039757094189110495688091822459626247445935501324328481919754270586916557205239425074861328796654794207008700756020066306026837842812323577594326992752983777635384015517419687765528488555827814787049216953202938166733389887503145780680915141264477653095518670353236473921146291239781983197295645634029738872717000989134587989918773396421215096530303395893880554516643442497731445273285505990685037859718977757072472661702792908889287763501353197802228943531737744474712688996698709533284699569235495839079387538431842602866620107511236400907924615873939005785038833333847524112494390200395661229032219465616743578457027162479651569638732750478746860966908377235199226772317922048620703028819377614812550146141496349926326499227429972295316803324232809682871578623115955326796251906717664830723227123160100102625015327056032201208384466654719188264862402700984431322036637623894044925370164535029725077605785976204333367339013974091802144939503847877517018276695085994862479098326793904367639949603547737054302481566763573591026444084340358780055452988172908333378644177269650678139221152568331752446003296775413281991552828329794207806630096127438719972779348607555634697213881055373152985461648320216057497584110466205803404318456431908715065586135821958758239222714082192973908921666455664261122957923608351022155977726586018282534663550293983599707806760902737969675354300352206365642205080110775677905400694613752171904451188736564314299542927261039454120909801551081259486204320106459246516002124189751860323034497177719420861736842719852411009310109749943606119696152550143295312410876745866122813491937684024078394230654325279571703229913827779893708197816786447617973796069938593396794742310270056399502514110609228710371313423524353007339415786119591965126631475789602196675199632983407383592184734349134889226324129452326021440903458752399580903978204036582284368392150151594119788834875155427939980352180590875052386122097950740048675366033975475634518327022437633762492322166451731824745705434264023737167799978199064890908540709429577238809502320911559566829458864963039873852472533426822819485929025248881250686621555656268614228505244148955509803648584263444128277136807941585860886336546885383696548273766809858932408222433407163713676269521126527373341607123387444974177403165377542711097183826905257712490756215083299456593634905113481106443672170368688136142256949020981913818586421302294154142608469440395150065440260912142211368551671944175575834868455523130551751534991665562108335815657298259068777968412645683830229133917784966214860374863972980030998336637503573417763329574039145488804521437425436059644542545882475340291286727341300104689359060207378135592367210166571303237548086715538524941203065954318921722167493901720381776833785788640486851944591327005055315515985698105569139550637909973639836916294545216169360374275306770777886820270450494340677787338614213648523559041230078985539808433881607479065382859857757228449718630753697158714749739464375555470711450731706186105087746167532678056092036718394112656617927493763409288780323032968951438948965861424234390065959899852117825874002812065514580849966171216546766385189098984998203480297104712168162580909308440500267546913790727902703985839394665070454039363000133168338763933274424903893863574657510523221393389357181638122655010494963623972197423532982142740448039640829184324147694558168839975123436027919603933796018955921189365382820600458413492014860460629533599288280068133631044362186966479800561146811623922709740743808814724550565068051570116392424753531582736721719931559521626986905677689269156826734863192755683695832189071550639877466308533186575736793387719884979414568459250897571852333734396524039176427327842966316978715681198722224581368811413602581903887471197484005867928148899151760150790023579140013592297085128114389089223094343796703822584590683247935703467020982148981467325550185407657577620349483418570899170689616718891008414901985268591273071227276577285931527318935299697891843978625278840568544435119760545556412214548477818246035057154534938068075834482210847657856625923708485233183445025532492184089614223931821547644893304244752024349376492432714264774835765536964541304680711234991644261108043958373808140598020318059717985754081703975160954250222845360459278037901086608822544278992256095417817503072203138521690593997980508568994794694779429308151871189997072819242911615448046845092747472225947955046603177324444961836693050355449672900667838653731898587639639800598944382313784531011878916249539910661554582178373181036127097952161322856161522847107555367904783309352966428046737892220257662579331885455116571339605161640474238192522047838161114107333515969984535490658205678768644414713151109017647371237241917316656047123687098014348913824978377177540623367345475765421580656077280314501350122453266588806840421818546129642013593180488151782031533166309044930569170176044029579514063329088684931902366573090715848504236755336873519151158455710061852865398884932961620586328449316740709232930743182419097027023331692264431198790293411803544940991971982096480903803393671204336169794223441975535676520346773665225873117542810093609192233996563615550610476026249382098824243147034833304894233796918199925012342109691215109977043406831166652466078283123298709106725094138081340878013263012902493217968541675262488952209734588396182570036011602319814404191384190704068542615728984968052786194236426094796550997561209205507779335677216187557670380103322060720918158426953696280149114593633695662511700225118904821645170182773609488874025384999131501142514564585046237635087061006112346392063918396863801999359052760450594370511164916104262655843320073504907508884322636447491681450396679267803579413649300189969384595538277689254188978331999036683280136408123574191614010154874044693123031802551414721463506386792254344450520544523982915213801346569261058153799057027532089707078792153470696589960687468579640075164626193106119658532329061568207696575314792506922662673033171992455002736039918086422670344024286752582565943232995187739172490322731947049781011768690622472073910680478756751426404908392439268082419343120676230585209466114048174980204794746548393031727726453350706065722603335515509018596844108998470753275504297337114544687168011121121454409852814254771295207714018410388825784045244979671892646819334242879582845353346809970663975938155293070701335735850643552965992190228764848108607824861638495358851426933333117342500235551043406145948818823610327178343174809738046200845541688952451435548552669930142426895270756973477056833988753225399852297655963979436050233084987903302537097088705422413715536416003371198825260850607949561668902863325737068153992781582298693856656371023795177791756036610907855571718858489278289448219057733958991481860694131807462955999874346715562427194236263393394331508577967711501311632591508911145653997191118036632716110510507401764841814625534963775009521948101233921162734122834031387110552105564138858350437410652762084259156709654638962602425688306534765917668589308804717529440164063929999465771490920838342602958240923674740901645789548792074271491388213282093554670031635633568927437691885429232954802137506070363226692860783879580708908739582151685705256241327643503800962400210873051518612624863245578430952708378596457475865933896526703054239085185835030278463401317893124194403932082965984425227694862864521367737428448021959847232480960420254840129172375843609868784165233189207273634311595894660587811059922849693172969540266374102088641003485935729146883680312751768859048644383036353636015385750932682232388773646186824606999639318683995228967080734998707267692704167311680266050775069121248797873887166790588913893540455662499632223880554319236414967053701998119877768540100786485919466658496624967634969969063444571681017245701901221732645612511250308148857805679818157846108458143134236444504940139020262359190029380296861496263681910020774477610962464020577846786552950448668257780963494612584665792490736393062625121509549912857792895878913221373082429799516126846776606700309192175963084773570319300517023136053310827412966024592139089362828132936427075138746154252440791945208717206345806629606240266185113278314380968121974560179063970029562047840467314623683126942078525749095457732210783600973519064591566769494641526156847214041226773329789078316176284936868991128761413695002711706529195051327391998415057912642027573110498136260838477987123544280391694591155751645751192564635956428306348779633825379540467551161440829487208597065852257608248239724975952691836834640799651592596583800495811768902308380266413034508503224208156016889509425097134204597143835301246452919246711911779449497042546903781377210037462701295099238160808529909888365460450820586379185053577711925294514864198973357652172745677193678082822081680473300388498524344672295740299277223749214157642547507346388205360362216415026577386832624732796785901641597374338731730187741190546061559357644408871881096124046364642687767919146552565073669852797962091446111588564045632448527645707652496292734113168041292421665260534249325014772343887232798177883777695944777061773334976009052592804382785498816070238863575575756183988913391920799608655088034773761057385031146788088185715737384613912421608916705166235082562111612249078631708772025593235399875094109324118074953570328151008164137361979004786146787396452103444003563149964885436196257107521688552844833379937572057441951567596670757772570728641801642388312873070046130817000743452287924791648692610273036146610290823494156153184877555418141179084831532177020526613712159164554942955418233958415435065822371413437959545373325512788579369555941849417833070421520122226320741182931212813505090282063966410899651750035963457324951866616799251326529139963419659439153879705897147110464214912663534979764726511503629452025580364229644413879439779983541537159280664678360845239923280433785292142747814590324572469116626656458521912588160276602619746589414127123589493655085714526310385077167398398625016332619665748244028870911791819029961922524314976867048018526384593331491325125990271478525576370673879644823496470510660426801209731773482932596194927011744963041775757922105922290543755317039733677505872981050138102820090939513244278154596253751174060913056721147205815257509365188802312266021263044851208256738752106264351554678709337230119496471155332447489265707479715396606562045979059008874206759166236745466878867711066292836371545236304052023858413762663162450239186254424000331686624767980706320190948988434455495338508766182583163179567825750915943562390894308083884611302263872287970644012112962241772951904369306949018329507279418358084650392457097133249625427294388113184962996269315928740212013207955857784425856963003485298394148788694918632042721428642377317030433099876739419213157313125049954410816926893515468262602011073530501599200715691248486194781117404138548788809293500054346945879672266961347218111721398896027541096215953504840018555084274123012596694419661878199196942187556906578960102080301138095728680684167284799143306579470483924039518326709008979291912369977113340191802941361308161094774038215046755040758998030324866940373909034015470913920693123920956946680466399292775178781551728128010963729623468120038055352959097530551265336508582542416596064538214642377577167187529770099989251357810005334954949654504839843427121701198160642946300446081822466118227031060873640629728610516094068980289241225744702583661287676273685213427500242608711553891829417257916619002665524250226815571019222535809349574385290095624087404812108291594192714422093749211206039843695367240313768670945963447626898023881046064021325562310251141510856075058991765273280000489058773314682846414836735611110834311633950431591381547482875443742940076380724406781335641633679889037335764293470554243091859403657328091713775137285917660945762463069750188619026038142866597285470697630322736410285154314825517240317561590031232598467776745259176484677178677538277488727087067680381018128445488189328284655828047481561702511480357271722581216312589868791323975995958391321456854996014228931715580406235071337981978480613250831895155300787303111623424267909423143099325484864987982996276568896335402844057108152766066185390105063279461175453553473077958448869492272022227558991639892827543867386710829249248345466272401114556433275283806602743581310814433090371395738082966585950491034907996790185113548730053891786672824919480739363120536488321800636914222480410066760963762647591491430657852604763745260851901840976781189988040270089628594055138390236386725123743468406768362922607312090113554503132599270320251218653247873682261943744861667185881582335142243887475291143356678410977294257412170291339787340737856506652925566457970776569744018321155552068683844909637195068428157670505134933963019956255414537630224267091642315044607448954730675061183939621208795097838209806532942886595211312916358314999631576561267961696468434101600770693516081971252595708729195296895730573871501785797700474369154082106694832376169466908943068627780331421178521591121752890448044775496366862714323712760797229301732002326903176702759972507999995915476738621311420034818479720001952890095847451364153622333431737664927101505281655285480995056594856909405810107594887449510774810245968721376521078478577757372989791507776375190527220645716982897484982667599173633508413331112895712413086792377465140297636443943273986384568548152538455539751732336919229272923189195079393335468916563981446606429527218987738360143112479126142161291948443417278846493746001076750108759699912169928760546651393621230827869731049664795526039277260911086925480190694590281725828065248380495676419056300690060419724823403096514054383882333810408842970894150413615745320159008942190967689621617284506904064523303463009867009821539219596433627682904548986574949212709451794815941477479314255861105905149578698990918053562462143696386048132735344942238793101149887850467787663606570371989317958715802378162809898316410865477731865986038006162873453238638501700307753886666985423500378571106530322665399565080714256469771059638127068671943216923738198518767983139942736298038533785971542679255999407447298993654092401122949052767363700625570485610371584979580993662471437291308544153014733124500931948382371435952279424400480313316433893511694407705593328057499596349674272177244622849570075450325838460219221308661695710579383002916699652657855956948772503983792020063860525766254044431019620451501513531966121762948988895199370581371374213300463688961272511408727615022845095955783961872900106901377858231896194093912361634459266561772187917921109514136151314770916540595724538707860201339290467346795734691272277789504276043336670870263894853262330741407482445050931755918203304604773343056126257963943258181176027354961526586750765182294526369726216038128202518625607507943614696814076369197026015762700987283821913309955006268769979658985693648524999634971794655788642079766779612431969689457264056081998807099663715944246907544596494772559220161832276833768658046884573205257157725817076912585495080559058321292618651013493740760517324650031791009453266130868839987944097128588045541762780722014457902298025708822366020385034521373452546435180849382420748166849110892116051425818126055690279406058180817509316562623327786498117760283901993179116737091364905989077440524933550929327826853130233665591818060079939729237039698533717815542524597030678936550955815086163621451819941864819950107059687809430081709383273755511819701945726991406002459670690301871695310817517908946270071091542962202641985716394194899926668975936950176237991536433055483486390026266309007491937807409259845251681030062830202184886255402427204612521407484329494064398787026212052475342119489678254829902960056084796193908184322289367523349150341455544169525048565394067806404336633499209781099730517288049640583013935838871872778047548478993082957793757586488976695202139488535471611616215784936062001619938673157832565688192869416437593566529299981282008928205960262960683972862563924859456379484633515193576603895677342191747529993841222172498306790222422360779226245159807833159055091786770502689887467989466563481613385519167642312140561549475744204746198590277834627623320265053562982942239316596449954481049223908770530674411271813297763408523373616115951715900418195511892862425393656017697436447351999805288852325600551698340061016456842179127797849402258248640202802378983715017160916740920833001462766052625067337480015244278606304184299697339196371694164872138033844063791952703284838312675441677053270100965909741069005419223351479542655175143543161821093244693892114262148657952060847213620337331599821552596260642043644754019716615385332495484325889118550623144009417129491700673147971665247626245855093570732647660536419207054594791974785236591628846264949422746379188951251228634762265833133434672070893156036101556931628040060773521989616348982093663770907731305933380057669122389716797354634466889444358362859259213831249873144039746751511076772090451265718387903062101594479295898443467960579234029866254491046352392103545094029230628553092988048914942276450378783411011482178530250374863785478440342371001890246914382387341325205058941601188796059800215590385089634797383459759834105992052206543193518025137391842107591566574424925458379976293736968997338738981848465436518139554754967439117891122243263062703618532049545695845246846548340902059867007605466796177115845892633383197977973268429434837098241945890639605240696567902614435084370550166886923104583049161661808643494368354708627349148079873136015352031842035217603183633340269231594259657968648799065537197903986959506835337224265798458742961474715181159243789165043304323585267069681518705195393402734203216764986466668312504239496679889648470046604514925503003963740045111531364742224531194954459536900993454058951600767450942342206905103445988346319695156081657263758320501970079881282536139058695273015426578836938276380129090937482444694831223672342990704909080195575324801911381534040563364134151545397360509548677892791042696819416207324906402675178477404256633506780315881320349610898333876239293500038179576171420837857256804044493954429090977837098093859325108214027597825939217328067890530938320321780277961192961356201293508321221136517430501942948466672267568022754919229189958899283730001886665047702886131526425368874367715768517786487308861198341590341525620694412975439037968040154223873619308447309700027619093431171775230719276333209449900166118783738218072779761251593579759064005277859874347373168726204301396791301132138440950851341021427927127724983231316732637999466717385876278008734812834442820801609852052664159755947079413229229951813429496522343531249026622966826571859997445183998578870272431004124180061271615951572463957982752097916050046236564819934567000799101602686926550716118153991223972645675694854095050106518760200290542861390443919725849725073306177282474224831794416050943228241204164951900089182657784074585128545648755082453639315550635501635448478822792936100472775660627643069513491824354030398170749242108446616505533785307272465088075964124184470870914896527149782304154552089511403269412931507340038850374240313995741525328186468984055698166612660320681658920430988703925883395514544244058722836378388179333130300019395385252109429158230561584955840223152256619549486440400997725963407521796788578881582778977628348814958335707413813090724248553140573115422284716645130676318833508122295928553773624824527640468422436779663892633278724874162021725156716213879903651588331608745437872450786120788568755046458069988248486283334496009564866342362419245785625237675786348538968037835768618969663637444527452591357111145652263638346241230770303007339021904540532662510416025446934385952410460103750520267936952423212562222449421764743445008210490348250546426703020563779044925689029841751474396632678934856986146086098013588318010179818809788908683331511456878808762567907671945262270095231890859824287041156069144045518339569411009771886227261811284970431188903148060806789052892185995366898974033268776536424947388880605486434783664198489076281037733859277765710821447933296145925522714335179638028824646055981130131679178130012213405505307289213345967239614602801959402863667378091843221602147177584744466144133317214718907728090537326934861100389886020536107747812392282577684587754367305656087225536537734308464395604694950122960505060802067122253355924484415944826470398342303561518990963371440334194179296249832565295376018539078923928748334912387984602749047933094370007414562419528631551306311050090588951150865018431503914885283753287853799339085221667275725000926526366545591428841156555782147604297833460042871255424833241923744783385617112575956525321279735126636091297291090786828686615097293111279749372499112471055251561018668957179933178553489195678137592089602747386359790847782198535899637082808463215872564654613600717415862722700380084626879422430481182001316290150845575754546426406834366451660215380349729080348820645092829061997194482249288308597702472603708697092680686909879367132557337593345801157758522612001958520204640229567703942468612443135219710665964989250266302130457030037951168875999063873169992558520770764069661557508570659857053260296588595686030243892045507230459723461720322021731326942364373425654838097004575622561262309865823344608420371798158074904864251134098924723670708772353458310300744279003713587100674037088864283927747386686739472554667630926956331037216084333207619727940516675747166692964426613479693929561446190486526817233856381144208260093024150796715344610184942459527432684416361266327718499504251314161769833862587233825940321903273595484759610585904484880954513936411357043336675690302846697290892022658112262103682870269594886813643877932537957470189971845672999856798634893479169884265220615178054543318558652469460329169355802854344263440033038299735905160496530513609377237792599190416412393460704117225780379187497752472793710694402144474928834987638606385666177081090028751490530182192559217151383759975385019646204218478951445608762817920806454509064651357642507736073572681145419313112547053225850715564119612454529191879673137926997141961442050070425232431833943360932597712003210246341470526050422280586325324545901061239060468243960858844512297324615504085152583916846514787825827878717124035328982603383945929941454087140123227076615884737691439868812036118111823629729232349398718558411155392288985463442335620357451009313807641405493713828548085903274942862771062613365725213782620533053513750162989492971923639400471793846751077836203273955804855978852385428248376298529507610915261435124192806291515586209988692316984074976555354617552101448107335522328984056035328204731536499491584418152045097315044587157103897851353397320041107298316983316121556401976950326402272678423274400585788558903105021314582623313366594857958932187321694698845525190012438267870622444570433244364936132476903533006824717829873632890869839005265527477604306496122951648872784196021090756008958166234151525239563009568407599799380953850693759500523623353853561407521689911320341661028523586209368374736164286613672476941863272106010417834961296467815908965595700456022773243584552843676318833138874859983842721311001380353592533125825669278927718318700733941886073882617985996541073206243065388735778253314798149996085036757674183594216599505954530063396472152959456341030803813810571997457501171005957316570822306985406407604264170679312789615646844644729072033748298081897913111260703196648719527618186950440455231048728279136562530830487078051577366894931354809572230935125966858730277723814748278205809902316480998047537356494453885212790164992546504477184286064809140227326752760037718417327425098261443374223435301820924577161470335594208574206015310330291477146641181384706837931681116210033150565582351072101136372447859789144106659740691127765294951065291912981894956038121512870363935399636039831191818954284063141983505214774147629005729748181408740832905178270834398413166845303513946707189293844879384623693623524360659329021833194805258057304850270889157179420140675799996249794378787581810387493018474389197978748912677373958140681849648921932862027777231711119305156324533837265928673802639642084057521713942529291191874661464997692086397087607500840769513553558585373413103903009487514018798193082253339425881446014501807958597704225003368708310785002448682215675363355664417842662912841632506359762115815740814120760404957830150812980997472220414756976361527622929793451912988597451365192184633537264355665590852867574224440293520503651592210307474181275572996528163222589163876078667496117390577649079528382147325496537643488254265984087464501847906694322046168848069679169774715840544451097747495858851912358429452075459375715367538283075623525733804576753549605541440315689483553027828251020700929290995118726349169981614835078714562302200176804706786172107288501208895131517936162334654792194092698053684197815031207310931675237361391719037366879820990002919616606689468544144841750841570962382730793853254546514091867971667935343056978692160510060818692610146878763249860776791680171918477785037174762973050426526361364126127789196488934233388009999081025743519525016201028391840968216076462904050188441068789759566692728029216059244044993333355859028948030493772001815833222374853515761340463409122092698777757119332783920698548058188119377073264428145899080278467597190366795903372140909662894541443666194232423513258778790952894970235421888644459730486846911261648805542416090973400310487560586706846650404801822306441873369727699404110134367583194251042494344130297321119350489681751814789407844397483986061186072407085632796576928155388236711780071777685828999939318346887191418797975335104035639937060919741649498276276158493900026779199644684353227121132383735177527210787920331173883144258648601178164036961697967286944166610174450190713204481417505801704044590899596228642651802988114633105228327436001843577107627985512628946962163574958886439634213017892979744296909329900093852495469415918540521167995816927144652017646519134402051647350351512777109639288242647700790628138693351589821858522028347255501221102332459331340237914627852863713322175263456780770767783445814773770980402016438614333231347247078980446724338594278580545658675906335358257155071070538973367065209107453048710949482090375630462945966213331317165308441505426745165567357666982888082480122590840704959730457588253676326176309412985426056546941225083420121155467962179635571852241305994314474637928172368896865500020923549994079954462923563689326365617355248475941392250360057613433554733941524920248445130663631162969225379926991749811885156203408190507019948563906905002629408171187686694600741798690378361594875340729652999551066608238733317224860599514820208988380418937865454414673759138026772177690143306247770905752724502717903114178871147308770409839866570151153137921311765370695781240033709845260763714432218042999772405804819606860475737321641251250081444017850584889433370149885263044912475129203401943266376447276246276622996090605660892203771739886368681671389570427617683850093564034606453391809346507308545387696523405361641107329143255720271449183000838923452696746844117365040364034601191870667186896476850301542996695301997773072777933659077988021115119621045752884939101620013533616077366602580856476946944357253928954041574420706475920233832414627842150063108252982388744146428340777589281595344111206943385294076446538145845036452838399771354995789737490539728957975278303228867440708767577734573218689574554450451565790652881986294847578895096730314622246281930785080277021706636753937474908884002850157299661029267087129114737971209584630313065609209566911790905522659793048686822020862137375068978900390003037649625501866449813408255295818060771443716742311539090588908004133976784691993431409774593259973747615715747894755434479315776423650065203849719602798922965268803278317137527631888688093401435609841998618939566665291398557229630311333501037868718253178652966926693535771731975769530968408745687230251964448303727682218374114937609032677620107481936515626120651708922700870565110747983035992905841058437248925613450656590524775026014480768432033887542461590850651822835190211184091048220262621524657913874560273440596123513625436788694943074671971416743157784387532827226121153210478345172291988668909552467508966766209020392269302184122548739060301512841396861495192749665940635350627695603733222466834801995127603645257862439983078873594468292826139772506608035682006591492221687074050040905328861394198084553153495863795496567202952531433202523246199618434889882490778119811346519844813457539449519346688143201925042583196239559954076693327231480992224699587580581112262433690889841898102139475809061826037098541734593056654846888287075359475155565741186893373183507023032531413712128221949687458845266544861610284040604127143893309174547104399139136685433425440183082554275730886648105703738756330822340221558227435189137027402945369495540420478651740906193562273357194837863055595789047813377323604676810450225595793132626733186341919502680380913033108644048798001297632789519180354452126468404707684171315363816444627203654959779930425000861811413911416001336729241745500539917070492980722830939102024016752291924208444978423011228712075960216015870584561550817536563588239600858855343308934291935365803070014289775593430553494021198357938622800135253001290045362101330655506021573559501236323046298655988522573967867776350863780692100437809047526912253334225333048365668289263239665564766509023833233794494371795512771506385218133042287942727852530750231467067862659750641413670604079223529308944340305107561210695377835421391042259245134343830495932325983633908703197480339298604203209772670038010073717900376583297862351334891654338293709353564699866703516443871682632987055061661238782548409359106357818454061592592423099909860390070274304329319814066050767793783774763161034617366145040959797446248595464386782634956582292419584810990767366186784307223569883285574320085396756732752294342451343944899463715715204581982575626374280634427057361733984268934237283043187225156810032900505804948382561845553652835557734834237376271175284189679102545376971800107802277541422741348486009580183229643763769136003681695182905503231101218896684622178342502480312673433953693981109433180409909486761948692306546621104136076585432222806741121849252226690009919254769170198330149379881951198651004283618468031651741312585209419492722122477191209555166517967700206566489373465309305824975944612646819995681891104987348675256449509424390615978755993747144867151184857621415999559716319594654586914245724602401203915733709671077490818015340865562149657229095726151922306445171824873606146997141712393832389092752395691229110369159933127309532657266880003438696226028433244191060345373295018840934515199037792572233035974940277535284409665337743236542900893657070325761267784202864492597791109899434505965487713890896606522321609285804929869449083230469128026933245060882275468141432220420296362033408245452157715981978965927822987114479173183698969351209967856007989110224876041951554272364826517018491957476124632193521675981038961575261173263059062007878144521853485002900079705697002371761995787745965126032527550250780885483860076745417779596538959291342026698213017227896206371086194638321227159017109055650870957989968630497595395796966171113330885681594232947103112565497188795158840315451589290220292952575520538833686448123065874909540169030770749420167983375100119813060429295643132720253490843455739999626473953567158890213180851662281442223297766441564843906325636449494253214892516312897264991514473643471422425384969130699771065867232111573251174542293475680878040029428668669431038854480883712389059082728912320542635150380521992285759726318747046957116729152737101357310136289962984787331631293651082655750942202801324166111935183358538253140376049987437542128388134123034648297787633748898871858719235619455076988568076833666946330246091795150926402277786241956900062018096302287713194921851268585327825638415711297292392158154062885345969906509749211125378063222290395323782986029569588278201043839938912612669326293502273138258100330578437994718719663841618663856389862476107934008410463176127486743983015985947358688607188283048230110930108169247955985732202885303463014973128099101525917422402051512549737123309376625688950216332032137831952809499263182045622883094814109659204120807960160659582524258427886801906714216758660901243971959243876723273651558652650265321821819783983260075556405375466203006373919145963451765320768964647282411366649457751139454695308346078876080574107293236378340463966806255456959779655527591754207882421558547087808654401175050757335741392372710556381399841661659143934603092758921436459654408486898539379572360340947927279189520747660180843735491909851375617824726481369144185862567833320147797678187047075423101115939555478248287767408067730318105338449069035907645243503657201284137264338478326363142341253098092189951810653415074042127421758781469652041661022674377392885909252140948556443170908241473136218590197830913837328272121643493797533204257437153698123479595317084618839973564999517868335486960078050939085120924139961515814631692816622592596230666613737650699304549285568207610516706173718676285639895333149843004216267998155539754881333528133078389198094716169426594263057248835014090980530503448584118698552398265523588982356079959439583951803824147033796790456283323499140100234694720244537252659366495860423936690836312449393680913284632942670939853379535080452947847494851183354015938805887618538943796614991547570064762889333369519201702076365348483251372549576263460356834527303853274092807740779276956559817676511032784871424463110219937448234659508861664038696696532306954235404495383606158326680408612598550375694977056363102174497620303306558629110028972069585473947150658120419285195780531851627394030170177161077606304483650616911564858740778979459766969278754739324445869928083984352707998132696480188457124154312971029541368013038885917428825112523237300627488617157446611646412537927878851689132115543205856353377487030608066870527778711378486988269432367500406264556382490404886700196346076522220914392444594421797511460440375343140315316021058391296423174149934225935905134435263492098848253564334709982400061388137507770057017483468463528233084216738966275187018791375305179109203421363222744911635279279023138102387680201339947527061717273359494072789365092426465280693334025617900149052460790492259457166069520539081809048528624587078039381896884387767340342246657322637792919426528138403740424378405021471408968564379509873417087087301302086963377970375627558406023918855483886417405109162094483365634991620677022501865115381665389901119825355540799487125267986380842260117718029380539047020179778486468389654860945648611640823060356758580263892976122502084654370856946233435057012683425831211039232372697720758443321352703568863443508725157216202702435769741188640521019768293208930574032050678362333316089642653176653120536213215516408274840348258917169242664602156019401411410363400625445006844733329775223630559532664376322034604864078782370887763618215382005442158825418099361424013243691177155412204105053761897054445021394811136009901626393311557024902735505435402484775416326026735654379829109606097336288742089503439905342337436060961585486577501546620601806876612954587435351121626962610426050171021435156647568716107770803592474371071069998088856077087011746593053537863190264486743456659100377064258316943997381648129675438236490000941987005698193778099225544408176200715434417279291915986886273352889249895775682575859250080535585052482062495417702258631367103487287827583432691631359251690050182087887161298945962953296942799665829007320399588305690237060288819392868213822027453226449437668021789499033927620685624994838233004623000691026103260692210021694796069703614827222540230341551988293624841240157369919293495569309244670610201535224977056530759999023348534055544394536254351752889389612656045961606266097890882065964709078105926246190486474666860184534637129141385644385825042471783981751049489679143394510182091125042370000468861970484368764660176174301612722014374935691629018498304597532910448609850796397924786560360533480406228003994376758746082865433731481429472842144043844918400479277789860981595685232088008054457414066185537869984285306277649561727295572109510322744669919614834349057744587606072505485168232531056032737047726727028068779475516083701897388236100929808845906184476181826233097409181458711906870008593702201956161204658778531660336017835038991366890621852466600029528340858716797600843957086920933383502407788060209429174176263442254658224851052808465526211247641536206517508101683733772722420310764410122986146602532552615436685255949833920604287010541534690521457814612898396585715838811719585795844855749595257027812236475411152851604801207721745339572858597088512303943798551451655724959126799336182530292942020290680184084147641649656161401538799012201387207115152791796794661141059188002656374952014665310385351421643588125467814736467232801502766154034727074493063708847960399023771089159658734692059046359681274527012086275079047646030860497080409123941735832244961967914509047149532563768934667026076521488950862590497577288109157861218587847674144837658493958942675842246957355327776421059965304345043306116646263292284751777616137240365269122265085718438835982074444086051581064378772390857697992006445194680659673649272015006002063345707549723265022337763318028975007368323359122323799264572998753571170691395793775681250425174129313784237362312516290626815389517012725209574494451763312750051115041018089204894810806610677517771175994380102983383325059338332987566474020017212963643265541198057465274715363341540434940320113656616593196163768866215173989718663099925702533708042346552553751913124376362550507430656781733403411481374505365092686270431430661947312599292026823704220153262491187062551543564779305072828648122554530149018482288843368705055074821689000618475542517769392151254875498552763033405402929356227474617967939822536944941023807446361662303594337772796131403381872521598737078332829264112149578455291665913585772854516500728685246090174065647109900898131199000646718298267627480677460253619214468719667388854306056007315532415464957814027363944738642960391585628848837035180389934964474421747851562431129960361011447623481400787484768510080845213389686586218962559349429285970822242453581650079070422481902949924628819292269423248709878381232584571580829397800402692003283438875212404394149266783269646514982058985690967125386586309557804290845253526954405959298008758700151112547833413291463643954148211962534386220544685911341162983953785548761543722192682278504963580817240268995066458056664538859007637774342375862453546505595742125251639873219831415127969677089421499764313625993015805195650989273985048107657893171957139780997323520759658710621993978898776101745591489382402405395799653664871879586023809917656314022539091484018258318601201033671021384884808117858250248430271200043946901991065652914065042367224374541685215829083272191138325717102721061533849859330709935806256700521077273465519843550945414945226752802117058685625001010733229849340092226141079282596589586703447714881990565179624783820708293744857066020984167616514487149532883072576234719727727601829478653447123608145810732071362039827911920093640399074872994136191763117110372838246290154231312478031212752121588485122334171371864737080055897077270904337929267554714289126297092617216708046370916434011907930023525094377649809515430719085457442471346616989701779678984521203003096663257721774488099493381569229400997682223385149671226462209511174821231337649103115220976859749417626845266280707489127900375830033993672586053823328610823986444388166102605417780046312342672116620923658676419614962436365085593214643321421613860754576901667069533981066082072976480457184628997131554643470053650975005265271056299983212129095033065054850810193124871884536846849126931030925314651136090424282402351676159408713966724122354729697170786212344156553284981641244936107701079924195265600636949307705076388171106696053199816238742573298198118103254063548532250283309068637033396881416925408561834664186444062830539734995669821200501515021063472518485480723783142319062442757414209806906062146355057685038593132070179963438832460790440762084625169058321951372249265086662557726831986775196294396726898205798271128083557270754952992454921322115257161294365645360218677689711452103984477447716968607925068219672342080532531715661080525865232919235661825691402504017366654875333840230187327834677387624088975945966865727250999764444143994234059126637271286994131803695184370931350656801465133004179602275689258006320344926298489061122493218687424719422373906360500418680670516533988905143858369732590279401137111475349688550897836719488007663091037151593472983440774734188031527331777874328450733799174177356621778032472076922893369313389208861146445332123925152903962246729126456844402965137344227562565337436023825459956947561517392663050977754174602618150291782551166835294828346186888145710051968751613369607038698710913774492850849953929970051226032121761780036940177270069205264374464814790582664718643565681804795673084894533857469035030585886498558704924518851540169742209954855292041485840093168065876949384951261109036923501657256597624471398192354698091228032270986910171022338300189185197863859469567066736407770922253907038535248669807025831087449519995718859839320881998603335689589238267867450287200490530427406178768117250559681025476168238991606024288443749457948052708227787275550903723298512684362808777297999327484707946548478249924534402667080499508988794809154551556085844598552790634731710251418034698095832412692772168057447192630469633668763944985897322732293992421474019001937781873754311610143953430981527979931385990119679477095428281757801741311819713731690732072272023380637681357831399769609513192263857228586197835916603091155845514067337300454718757333498301557841988335174558690508885156882827591145043215010083400902946828138025306809093487075118801455891149290673455184872773410463573893911628137224745213466159242783216005308204903853865186329176909836345847513383442035067282426895053180072228846376179453977263479940292205745187837918947066959387987274821078408466683893769799232487448324989770416434875297663044868569080228967125579916760524523492701746747920015958833930763977020987595310561903644794988407812307713850648931047378242334278959353622787417907679898210225519114011412185627252652102885624719608493066211417808493516409650105323367205379177524653078216220499212641948866633386195592446355671983581543580572911343568458792281295352171577466080415178826438186812596019793675664753279102555266587403518294707361461212275486363500744661979469114272791826813337143910081337700841286453563923404726628885554291010250943347029233365206603451925599592654979800301385065917764889429384411804519348343546948924207006089306546370941121824748550173190716710069699401505724989094817826502803413409579875982874475635248210330666888202620826921342887012789134413516142205296764165697929332773899956471470976894131104985701342751017381337555426952470606526467864105381212379413668585559016983031562181021952054875564381534353418112832857669409512033591372556947113207395546549422802508981348540783007839719073014708275503754110809715749887473748640645123814931116260099088317911678429375005464064849127559553237918012350135171224117042299197534923481530434058578271979010284093976417722604283082966102516356659930396770288869391060260206626942614912327572904805993401185269873638195636046222321800355521857234598624434509899708051155008645539602673543494636513323409077149401087971497866549336115380921048870382821112415583620373161333923947342672514708439838916634487792109459944823876821035285078261297557663107405430088035151750107119835423573186745062862131617753022365470605370056262024209685425040007727777445852028257219327684645732322338162837800749049511155538740383208041045113225243701634478834101983432094005762859071572561622550414822069182261664983658250901857061938347667679959191796368302168194629945128718767529519333881490481320293254865605669653714225673641359519129799392491298616804476740315552331959165763445500138575057168164937185001244373860576543239817703642815794075075834690692670435986131215603478983079840579289571761429354420369290004681186344336580868256858370926957744797244564163463408978186304350809878985919552465246707125237473787629967460196300964962967103448389332810396167310263805384467426810751263517294195324432599078087464976962533224935907845465152624096136905243714662460734166464047744119080178729523245134334202851980321404160172049851523711476410135438138472342314811140646532798883014046845849967218707775614762056913316717284438028935426408518259525750898560296150537488995926447330741909294051558872737589408930232572307590908201674942588817161537456923975382249662280008752701469745752753548180468105077087413699622516055095567799216612705430394722387069895558390803346630787780533510992895637505209029693175099435946620734814071015171179364216073245751096276322819318838158987641688773882904126702627277728272379936901570345369276234792645701720479291650939937242613089372845675044641901437456806325582460443218479346143317995805603835979442763172428723656547500717911456064035199595487639788748038540254951584392701588294718349757882994226241001935084814412443376219009008077285117033333571583265404670469656739363058260141719248747997906661226723633022579427433098521139865569351809856740436820046414847741045610486508778946862015952800294831128078874759313475792405496280512201210011353475401595762405572041552721660860118313890613353041587572255567320504709661519572699035119990058123974860333577319590515630606801164072883904267369136746534346226655401084616006909511644423691415553974804714790852608520305152520146350503873600724060873140472353520675863023453032721758173258033042690478800071961345296856757578420762587574452026624073713219057242506697562789218833383667798697763342138545858805441541357066010251529792750114782271027976288237623466593013227498128897412771045368470529923810034083534417207924551984714115974131324040278674645037118995014127831531424432250767705997149059750068305497700369370643257852627484740782592064301738294095008762398085979580113849496431896435413309757434665730218133530960966191687060155693734333568700204023416537681570758611760858273955597281046355890567332598815805143381939008513900069702827446910656519699394485577131466206389069967497716737545226718839387529678976689667169166947839099673400926703321682037019988713475095457171974277577326215185806717948888073391715284691656541170233843559451395956049504103576142455480755573378406810522466589203019452642130594770863903470871597771402917984537140431209344350242956543739584367255060088783814396416281883970704391156969048580894449384092220982287871422878049140065479146346072816782855186832313646164047947820577288241568233417250557511449484997328541460762215402824144646109729759071490670420546786824740056598736929867261426440769829358359136005217934271736860978044649431942373819247792862846308855146106126346435754752508823748380639986004769767442731250462402706505675586983798045328839266670350698820445023454756394581887938951455444717475246353156337811303941834182309595968532905794877836820585812659192783553598843176433303596572016361806487618345663324730482875804560782853459522190467887428480739836352977587374929911213756075073117209871392095326104538483088135314553748845906976353283130646353328924021961030174033049058600271696827275641888943169000617047488745043018359366272728556561809483655241722860941585672431958081364652246886034044768005909464851940832266500656087716087751874382017282303596713711472585734424745364292575137374579516690546068343863418259601185272638341219281741993790774189214001020922157318455338486032638924932626677965842972443902274964044550573046934503952109569024737194551303919302207791925170216721141956645262472031138382045887672276912012628740836393194050482714753132321350065767066759856889596877731770278360222866321173959237985907805052552500758056857853731963690892903915839045509997292655556298223615943054172988362908640699562733013706403274480481148133200398512035646859206379038994433147459063773694665465390005136731549622306034447212790890234948722962189197707836278676563125476986369134048801721178419020172774744481665756373474138850497272304650894812233218279326731737433555660695797861615594679547151085586336353137302022459486263334438892762166609455826531756498568425375169745920530310317728779317060931102420293793178811219385662536174877232312112149109386929612850338511609284730392405096949930833572498058464873916187993110397765951404121196521620636240517033029905141307945482683551366803090907392508021869328688987050115632574511735908192163082382659816300143399249328237427235880548295707977994107512993621008139671608005154131498978582682048211446222067481204194738401441523284990412840091233675532672531400188143574361481040271024627642785274406813652649667123137439304651645951903119513219896055760631458420813255368767624757369339997052279778151339019993479593057757288627955838607543098463663940667029057807743047779387060874761334758419849320905088946780084306933556112023223322393363527203070960110682976482194928378982695496648023938678983198794038448089881430671032271991624467282638417257094710025282338617165123201661734897233253608974840702950718090990416832680593288171100592847030707736156057333664633820066816992779274568925432133677730919720055544230978887314002697654249156272321257805392162098971546600621821800785317563546469113274052031820330206802073312531865431983596824527824678632470548948008697933185152326854130976066197597605892369832462785209596632422364017195065233546282249270838448317173831418476713667533947358638979476670360291849547453179900009489764802652495880399640232634332674359259619942429819314558806063340293983013404715720655627755301651497728817924700949337614879748040281555925556408345343748260796121244591671932013055367815661271040011890584254441359960111634290283563117417382074015240531108333373596901662422726303414605482667945291951727595775780739052246138753161793905908205340791786238556564134790891463731551318966191881194221325393848055950195209412631396573723166107210071838809495860788097576654263497168340396623650500423634156631547437447469459144211679027278118185416580326506693877146434760163720684289479626931329444909275677140068056746436759743402818970148526072514354392925124943100627055540694391128794079528643095023980125323579895044144790490047500166459885370720140446721096332049221378985425894922586229442106921068161042045479322789794376203658258062306129807001235104110469142047366886219010486493263073170424390530964479468138657380361979366235442248386653847745714582643980623816831951924244948447547379071998015171184687332376093989455042055075344256066213818772020245440631889659972782521276907930459511202172940274159630583055159975265642641009043928458551144279645962434564578310995607521234134626871923550059250784838271120401256193324510496883195041452997056824352423347815311652536303770147197500983020081574611711049093157565344381037751040069649083013770684965929920129818545897855673274196906102397747909399528306221338203838430526688970549285454821391632202448716296186466355487526441852111954023026349735869406183659923139600631289999148571800148235294513507331999608561439892435699172443166231865613862785568825445691726312262287937656580775800102617941896796731227922754456337809646079390304666561895143461721060828152115592177753015153042323745819241311603141682803497219887473391550669713251424960541567276096234326580339970169992961419767922497995212475897962598160602400003822717168983936742701807207222488639578386269771656669713728157424996855042873528069974151285652504294277199547193924314425535488730819749909955985919180928959479927910716479731190381243780455329329169694279042210962028249977919502130623834349744191077530149856187573110441367755677953806040707761867547822478179416528346047719358468236794668698545005251561933936011136699785866732682914893163703450358739002536056961930437455667377588790173310320777848827636586021508276828740060979669722222015978403172095186314441510313722778635987295943618784794850558862858695765443016346960594785375246815386120348972807633450499274072841529256910160396438386471037348101349395502070721164238947209644629398037346319341111193926016192441616552788970876797379528132856614696656095036763880025001303208939841881076496233619006957329096239633723220342585381314455785951335968190441469005244601250937623012240179857470535605350969060725521727084933861539673476113607795255012672062399651639429320111476760106052079093463386833864472039519532688139061577400833704901478273202443283613404909183151393995033812808707640199498133861578680248000909500135903736325982636464071501287603960315181524946881381954608529364366944469471410712783409323675028826588786541358298550944669252316804290178819080381198525918978549743250341950403027876604270357980894180538873469494968178465376314504292241989274241838341266975761403150376398859883887240283009184176491212946739763387664970517405535974311149778719063953567939930348967625007218209945149642189022108310444801213049533108738277639908238477891481349897720445958376432292284539607199247938098847783765136807405655299045127968582300244873872749537070467424219244732251548248008242345984099752052627581736155079484286939906712736081329778067836485030821650380588104805431207755623767564123920727136827039415369482985140236083559451238166314191925066707895833127291835478354338993309217586522604084735188162900878468745560348565070697907437622242555190871802428333792311507305269283591599007961697358407344623272017463695507155508759670554835807547796705180326874366909543347728296930919728621037630217302586588150994789469092311915095569985832708941746234297042006194282303828936104175904390345196001776096157659467751118328087208643136465887245539491346786673802528902335882975192411684665977231818825609550273933872220377815690418574280458680675249272277627333161681248005538785128504726505263559868291675738708876240659096129930585604818894943512852171623377498724000836284052657930593659601593229133140388318454246471048584835527145721984399932771580749998952430427807858729363607772858975944374168463414005431190103830263875029172815958673863205647348251967769212831809951366079571485776868456125006910231676728474153854636372551503212163990708337281297924977244454230836690232894318290532458030042885886333163241718692530420067914331111846758688854034177788862126131538150760627443541349606061550890935702135747339436308379363459419516709423928760885174768259821798602926577016917472999551529445096393698489583777030522115572111340399919284690110546655223511147533204659927931638555828254488995739566556863703810342241649982629565707080790568780082499596921175166837908504268123953653947330999296228360961399551369608705903579591331904693256770399814036772319369208432586578631403986656781669005396045825748944915410340750689482337073589145132087069781844291535766180384761745124182308703507801295386525381927279823892275738396645859475284549530606424027538501181029515803589082730781019717108817647108589026824335325528385054941407781250799286995353314309589353246474257897374112236644298230452007476786545399115367843821345822145953496283784672609657736229754774572335795247345011575262858825864069948841890558697489998385623190132834745357399990261443948229927785332328292046297855521357713140021969773138802404282161703082152753655300540932294180669971512892080000281087567050594641987127083946076700976896617363566677881080038585266311198262401962296202795539801313486567040766615198429304758460994939072716842641085947228866912849710267666998152478429562606198874700997234246239344904783684062502834780940216983696461300597359113437636811253369137775949755917327171473561085558879208933768672626772141991080050984785304061267158212459411978610776410065533852973812424781310313499709893759208328809209065704626899780733774577849208914910278681086485829426602350624684235698538344097963803946218591407271076633184902217014564326307772989736167024304095231134096520910376336112621050932728182568861791465055727339985719617867392223105735534667078554733345275084786306929596445447037351018726724019448619933201734880478134035243163942140526142503568048036025915378631872206814643002654267392664237609756998518613428270697980183214991157029881391004212077095941357296057646049639445242824619298491747351364149256274772839976944876451056462365715302504895644541459582026813361206149056517668053418202726070506452204460657516483246515923088320597363144836012545841718235033302178260163030756455965869310618472225676315069758399352832852417614834344588672514934392964983205747335271465495402102650034679901715972984653118757331343009014162505478902348136750756469062702882898697612439201870385504339331981482541628733645003849622286982702470909275266622470017793362446501390455737046965840217057559755333614601302524887256448958869282423206863430382641635757101402788457962974029618589185150004361617895066310592103745161526909522536229325726200232598088164514917918158715601043268687886184754815407157437145119897411526179157411025770475178899038698833746596923468047353558707871289241325645189101453743686123546319591627405173738161670566394359526863605127646318162467627975935194030325309023502507128587519353047614510162713362099736241817560067688391433149705572683254899652782307569964977376984560801532985222000448497654933614546580299558735626246759884673675483590664803723661863578046688180549536116542182933149494691669415910402852937518643563610298142755924262845167341824778413666041260323312708562348088395755180195928455171757672935379955757086813410876632892258159425007755736751808392512648143129556715938901646666506303248915717312855803024310374609146243937169486376557424600038569155431630041601713148759648542957590595231911044067612346596143871493950949579492962728022983948236834630665683532030335263720470827881630298370785770750401004601957802872955573390655424878981425288278822405478517768290451072541981032036230667307297418668947827760833151737485324808234123168941645089887669299472145440603461168690193043460704693459679785572892718845407167706930264923349605600122907347060608166583210978804962584197699187926464066662465897224368773893693830812560385226150358504822521026863637270915354562784906082550936982375520960954867558528487456827666042357487323102012713181697503112050598449600972126364434568648345542726743987033737466414649258284238991948491946440008686356462831667586351427986485426331410994100805099404976095096981756532528182078284417746102502658288853565871034272684235512963253219737438750589125627080384935052227857224424139199475852076171653822109455796265556066993835093108927480601459853833668571527749305348499838746196241155335564849617794277637492969223854166261259526768269266821295953758602573078722891314818272824952102873108310882181678149238085781326736333223597802875002316960318977784001333096614326959395205024031670326898502221516363279529670900437688346859992857071517914927302566016793543072778602284791200380079807359415625749261164215600816332907119233680545316287410403370649745988293059042178862127465047037504545613719106378590637263866272300415037002379674024282427589608949842193078156709762189345938618351152642832069930164626559989315593074513402246146508322824284436809177917414464714006911215975207261747581560188426398999208284871691469599969061651500003245917140906643168156966107992638795180739293761690061987829123869894844727486171506144044149747213966076797699406370684440734705498686583480597681491362514528300231757782969706452828722995380955737105333303537806576405338978997585757084538573922295913092406668838526757751441854869513047740566951049846840163949501210938506705047864941760100930183578511529830276020925250469993943709656171018991711212808888645198047929149524868244184535568675972590323654394748205380714965522372956944251887986884972368461848328208922104921309147787362336218076564155948546766707810153310082833375426308124257846617848318411654075133726540618041303101885038591558312718527161463789857430828552844525964109011449664882451985128253198580919457431195816000762047125021420662014987140465332479610996024522343704131281122182318670366641973409751806491341063502912410555636102798591517446558939633955465215157432014147117798674723708542004850513421664788540321307764326681482020083434931829095175326518865423743005102512184827991517763403808193085168071153130333700989936749394189879265159432016070667301044512537452818354315573792480225936693651175211097925065554271871809736167105474003438409825859137571576244763219713771638475569053833496698595486713538946017494894131996231551674416489716893913459708439052080714038152029722299336963145173638287396372077131979618216234185041519422126777965669444232579072525143505784844186905839432562870521255117936041726808050663851281535142114142396207931061280383974466355206487499519799995326419255745319687049786330768337245787935418188004688710321075583725862498249592075662503522863387775198471453814339376747695222615943990105223567387690857602476818525703797540241163197173383587913829050554800983323602493427271631033343503512835428117149792677980592531955183934007015587338862386087677205313834604207917526510377524999432920012869558762860372829156221888796664246102631195266004363984350626038213051340232807606766398445866802935558702310811549025521005014857834657070535645995070321605180640390655926466946154960326317634760433881582830954790715133974711274411706280223362328630986948336243281933581109977456343465338285550365540308783028116252904781526397259554366691764548320446107755624132338356565950964833333134362894043123186992111355748174038283241006091650921386457685599337133857036621949159387543685528598802460055685652723346455834233095073061328250541810214265617281128364096873888725437263781636430501524721120289747583560751696381754207341795844155825628415506128559103491372591585878714124500451166656985057225562103573246247510903389826847960419618863400669896241083867684835958835391662238179206725916627881694177517033289433755141390230449393748915898092587650859833545143392117761008612544230137818013203160032667440662379892115492999833318808260063882539507718479514176508423596339969120209611773189666877738464019314043760312418585603831444531212341190853908097940734319812298377450580745447433518672125851591385653712459932593873003279319297010659378072701057864732950764165152321556882599964971972861142566574263114745727565458863747079041908932040717485457591341699748806329138675750776237195410467952190009730352093617308990055327731152239208540709501863339206688926550090254256268222715952703920875458827058499468624154423172122623694258760763625901408455559186704536928440603675894270073892451509606973017697032519336342676832719300180018460703088987516377074830217349118926062349324605994194294481754590983196966543230354692045673196036736600215539464951036842675438806083226870884874304467851823118459773729197033915997037956317793359519547671064479525719150375643826688345084673030050042458161473807785979003775099507953951209223443027615244474610124341074677530025965038763353396453824899963539165715258350685826856842499819232677149482148677562644786530638240227227088993470374119485163555514068498130645708008563162859085695541378736479194399413607582586698310398885064428545561710062234072145194888266008052817971590047020748944005063444382798460733124103669536839027033701123286997140326377718691632653752369657194924493244392720036085034816722180004659549570763825057480593005858653261367139943199709280775924811768322680426133704098712714821713433995411408117764231254236018801497806074647528074573059047009912211516162704927192171323764752930385319191305920388055191650509590206108054078449613822659032805577015921300317204019990240582244121485736361312603130072715994754163224297884227966928205143574510876772710443023440607867058557921186340681404946585331548549966848044945911235466805742826364638600924390150765954438171109949493559433341347161286272187843163537213333740717484953026700857556646007431401099686798033072852311852312284772247301954717500128743792497127878163744638088578193683991627210152762964853496687234145715873334288805619515120173424260342090679243302786684635203896580437435752482126408079003501878966916448958923493164740251953098883718593774675366373981753407993999789846239613175585344684934483822434222067047050573708308153557723250120525659790158077997177653741780254681053682905770452270648315414058969261302278735477478754661867355145119604697992926414941168033044661191488704971683843444728553606158200848922187536537317990218625341727126490020955214710446217041953036887416548104248984698302865231926122730568215044082327884051908514857473718056589265159996097288425574405902497980917824481745594555067318260002875193479796944135189965076692319940842819958234263035896911586937923513740923193662978629948678572538717524717316764700697581291054288256793817432716039974717877188242289325302300122268466617038501450724797684266814787482129812644547584170166017167806321578720056837500205512697836457250396672353233440179148182341078922318307746358145850748503882850243283242121235946158846551792284126639606488434158386012550397353391905916488815780204754931294388570977643755526998971520920819496023161201380958142003126286017496677729186769625204745306143202034422411288925021865245527861421943775213821174976207621543117368419693334555096356066620214075358741945009218525094508163562247947570772473633000528826803386367443066792359147052774786676563918560315716217514119936853723627431950331453968156288514299086785551096334318157819466912562767272474679099538936080263374618176108708167528065742395955886805457262600629018910555702870391151664973644922953225880966476811993522116170401123750286205611466438404174209838576244733849806244810476416474189469721723439523728075072915909748816742009336318493967187074906220191341007666939462217441518394984187089149608176799439762019477356164494569425153432631448316976867266230813287181844189398966923099254412443850864345035783400397734050175005225803134769913367866839030444379106097917161232346960184284157613772955729641044650818980410055395773598334827827735614250466825438441249637379620913360405619692296910796531318131414972889760887644149864166137882576619901182319508265440993310768234646506035431100378829811199523750384288687346839100571237358091677684213928603468539914033067401026822267651647817189949869988006033711160394302119904842486883052123251767920006554593954870307464953889217405762657741812669451592841734793838136813558386154164659053416671221137779508387564599077845471587561741712357844442652121557003286658195303939388767666340205882159794481234756180236886565778467614373437071062513886963872190179116783706000356488475800799024301771972370014388909611038252426548259884730987733102400954210121032665733275847483437577123947437052729914247234513044287830404274136837005860815368444748672282326306030990785559167550607933558675545851006122264549621174567872938725713624228325948559096128084872843487659778678244442016751178531685269777741487210174745255766222126979864305421344120939133508410162314258115290991681031125982501075712112938055309304627048617559260000551561695275398139490442434662007411362069774072836530538608379131816977214945678320647065726235285636332501998832049223165744949481335565562190254375384906066343159808815349461530742139600703302467484887477703203602926121375943710991251340184265812942975988931065681549405505309001045107529583239226900604173413121890604001108135217647408544284990921534992022404799652469526930067728824902206860119747728057757851429947542762941255502118882577619884870339026750694994764831247839200918369629028934866913459986017005489285925901737467220756137132652737782462121705339129969752621105661390334171530242549546916581302448145551232463264747923116348915781694079894460390687144418061093364909401410700291293495545805789630376304692507325181910609076211770367680011258287748274295870346094585429993654920929522518549395960725162875044496948984011781483561399750843883494875271189394189413283745874832295896934042898491638271037856127334074745783414560324314753941988806009464450972896996325700775913030065951049577205549767933867475523203152812994241146906074314257141964641934584807199844286856077326882484543132044389922464355535393400136217431853506966121033788596998209102898255293352211902634393994337698192926626991005041046966668523287768588610299407041707040613049118919368336988857387134542220987105091802846695644113357633596602585429248433563778751349240257313589959094297711390486304661595082243926581081676303803570875413080274104081626096558963655559138074228994068680109631596093014397860807523677574017436669153111336650869460990503040841998132372687018881321291042107148022728179078675256094584873941922496935131872590748520722332095591796914105349685506947965131448768400499199183034791549318972063579217324343739315303312126505322000462384009101965430442190625176846165090019675879185309488898467046278482424457547549276741476289225933628014396436182400930031208503730436842488109944081890185788042112716045067452945519876333888224982424848067090101612475863884436149713899525330479608288505623009907542879097109154607366910082717732705985766166701949573156410142017202497759741448349541721850055518688552969489842811111457425364994589057781086860221277482280030144074013148207163545177142211419451112147007528944629097654346735417340983224456819111268555747275893192751549265449298041161162107145267098274008483114676981481123975748024192073203826455471234519604381831377512563897655661274512340812826655228073305704734535731538950598770423195742678436628033092948904311028451600188389955513191178823838895540042538260737230250101695321544529446314843708744107135697328635848137056830323208231069510696780453796310665440748827851614112569323441835820744518642651617310720787334345432211659082401159166672779323219247810960366435470367096496986663376421155640341899549428051019502155943957057101251846441606471341649638751448451442732349827397954165439792635663544883323776568224769945401909254966160716782350965944966466500699590407703319856277877002509356297577237502520820642972111026300050157553753485524194482467475644508036500825281619579708924296745267437367937325033159496384417198442393766645507916412681528558210588169266154174727934486686885925633862672781049353771829951279728641080122827482209322591560143641471356989545851142972067957296429717490910007374098500583726668057117831036973119616977677453172836011607647039632896818659168826355198149453757870504372875010825507627967724046960806530324240450010200012772356878321006848853794220362382212094958650962352542171482652499549748203042543759372294359407665654593308873130532729185981873294799844891314722986086909101296586070114460628020970655154144446558341457307616178790987290647960222448552671389918114581355301529321452205072149853647966480874370694492520137721138289230308725094875360700958558135507869531652380695447967679239351399293183225107726102551084267504688565929495692254339664240878136847300801134747662907566159718765177730013581818589777356515699127222563365747697917029473996202092216798659191778887721816253244048758923986248385104908091466756805177696240056837541155612485380804048998220906047279871113002451104797145151828601687598487744493333559135218301649411871016384140050100632485705032647173009383883358832987849173451947854021657776446218141889872998407554371437610959741562549294276699454544807781273226784373872335752991728836759516485041913285493542624959616816911144482180404793991636223355569933591688563267196491571844551815231559134743089239943969711270081721740125306804249007797754241234753189354665627654539860889575052753533952376287263516731186810017143229512399968893987941952888463993685217845009152274856271210078093763780588984593300846774132302781664487030678788566277089010269994721975760053935724779209511011288620164249818698424661614323332037218535400611181438982685948464099638365097262794917478826079777582346621950594881827462314758429980567515753773782808583591276777084648037597625904983947335620657988181493056817612205569186104776514484332394628753029714851879594746168866723943127146423850317370513001988975505699798474480824251330965179553792083851741855288539554823219640719658028922527675835032826480124069077788055208050696577456572568950355949144354368271175569942547068491395361646326473705560547798511026040409534191624996016879180598600249618606900395133436055623213073051039084120199149582331883078285650547694056095627196952318502957429743672594068197196090114664431441739257988436706422074306763344394875301499233124911639909095780137440378538117470616944373780752743036070084850739451323074934044366945924337981232294839955871269554137832308195962019353466297905195624533345355912476123672230685059271545878409417270592564411195777425141496796213170683357019332217752202278976147923341012948645036877934562547049499167488868961075888163335338384594821118713290307014436787290341217159828788811618684238943020080703842998593880532766973550329803112215557091956356552338874383704439001318154660729966699371429253393192405120238044677442733441132559092762188428847513800475626735249281853572722495593331525223791328735042669483887441208337011079144740590545314803610893887704968680505658425263976077157855789532258924745466626106866272977465824743283200629956309521176964330862837235976350507022088567369635679499235783771617167435479944644499657981980052304880711059147059563491971873925749571404339444553470709327132342656437063269952271966850500961605976158327801463125820425914675261963228505484680210353594683832132356817110469049093662751891781464600391370111540687577516178118174280642684866200442202840436349706633483797360019491722233993575560257372364927805501630407565352452518218411426952949894439811599817510856448256841887043603675179668982023458249484850493013508242693045567769330363161554804867779895223430707535583406506079485490603938496611714906710105903295518478169743238502096227692337829558890037175017444179876372251084214941506564792363546635680441333875165958023593317550061154195141309094861595333713690790915285075675468726967480170557804194677612422172293573597785061477439092590224258486330930166276934911048234164084378131867621385084556634067468529681066415582131286550764579647104189966584299137104216288925714358559726507413989756300667440784986051809290337379110947048424085474500982442530073530301609901554887096443368090235791052379636898425287999669280416000251713407571133959206808561023470867523104217775604618546330383365325221067535512257791746698740072492228065943781639897123477947354082234998991649012259179221014490813263108111828029421724480078789093804178069813545153193945224363104183530912695111161398625152793484563040535049183526705170958969957053091423600934062083166434786889612771987972765055831434756047392890091982274630856077471702371984183169660204052169824075886012972445536539253646067905262184146432225284851228817870780206586127575547644635090362450418120998000463324283124020951891169661431721559776125646921016664627158442653901300324815427488431797232658111877450474662666157739246646100789711196764860002138581491443772624595460142520919693930715998364027416196479138096281186770239226103065906684490677005972986275115653545413555852234677252692466654757764380468552956535437702582098224814956501256490620060188288935712461213610502357441109317829982050100441945467084096958887611867912218624762845649972098695299417645936289390312016367132500297820362477200409721081337562955095972752750216444353909833350438696460564192875968141815578389116140685562717841666328575853416325792586855719654146077684818831269586968798318753589324501328506796030045429842794339607113881064421674714737698201430582639213964321654838505680857855898599316920124658334211152056885254036508409774575656130466187406709551755109657112007598500372520434207548739387273051191041325947702816039763277551683155865651747461267035512267260072065478688505599370430394637223004328931848562924982003955994159736875278764591839485220411112618483032052628335555934628577205389218788504358324643173112566889902452129950712596101961412336369271389714168610348486485146608240893047545424634281913284199973389656408596184960456867514588733456127181212829440071052871917446927890247588246316933943619104672538565996436085203291441143710716216984116542448093085886277027670920069742157170931266161721564827253153595153800966258449303205004582263401751717806661370180309381693493377933818188795311483199382623414606243572175650109054555879773065311556248659683359299026186763301455373719010532968020927710331571142777247355518511928322481287254718077621551601807690408621287443604818473174931725707451328286368590198791600072002681113038504265374249672533635198116147516637509890663139080354063355270337769476643489779805115396185085028689572906067894699005480948865482220393320395936413798384540326580366344895392333244577089928656588301932472027302995664007638889169590214213352309561333530873383370460748045374367195630464369472146604595158317378614909710941904416399615560082786967625027492165985118737671849894659020868135912535188523539961335257291944352740476184347540079142773254151535457214689933486472728068469421197994127267972952654153327675369746109839165792944039385317279797280036048437225549412931262888146397453116485994220442839787792169581110600389392450669244161109756553260411652125446215562787385509625404965666827212664908345466431745118893942443880821779203612744932743298550280262901989775942655378406908663497002393214762547029027995657819281764124909832350691676289598119423208067535667861387589715349051533282941605824552014914876968479835929224140293246272446902261995694709368888002835501787955681289750847489034423091074769367235921812135103058160525594502514368250971031839860748984829169917700273804880650385522358363325342174997067113808302228942279367928123501931839531298183928543041348049651890887595734507488207519954631902909340585314512196100318101536019517797931589646113460608593064306030131421505351526116366173943218400426577088040572781815605081134545477876745540505995829647035081379221636861668251164295084922217010477906708640743366801336475055425953860081790590842801945114267100390500618493553412852112507971209055962225421781623552673486636741397124861596315851413097380180315765446058478137380014051334813927791216929100486425875043161463628954497317903559350198727267600078999636957858125726391690014348956019436338455863739184898940620698926145162320541913848180456441166002533596324015507298781506038931309611392871051201662073563125977955337152849305651292441269587074437432892237516822927386684304996088649279164783818571454887644376205992412501902054137908636102018216801354823489226787193227960292016086711632717410153665144189822740763186155885763363226974667544059914645084284893536436071518400436598088675866987709513025052166487260335376267212489879504928432149093034261767321986688647738946838863323224866515632957998026436678554871938086349146516088598075729794788361587915923214262140534057327308544326616240151153767910128241787051610909094152541715456964488194765360266747443958400978838795476588985571723271850681271037462106942262875636250263047851224422121799458100421326879789929526216752942878482545352180686037654868282558171334877251760394565009939496242053653591625370894257512731544449978420132137225968299778754059607357325907373735492132169963779515446542713078204718281306510296765991631799876178055219238520103847044268061667085532915685267794325744528854162640353308873301252797761779068505591520142946027980400283062804329742214725623353800075135324371008249931111651487952031971701906924776130231046388206335137321346453187949750053450754853691477744915351362846771486013534854692576283612355822282766867670369721195961346212489854917961762425540106278208132728990665331677996842006946123039544670667068778450636139481681868075446106847874461334992011138593537974847900550213153046346912582493852245995319555708109996653126886617114127962999895341091359118830229610062325991038262848628413360772313537194851224110671696512822358307630158580125829498884676140653888858539495768693339373299484720640944364787557367122282051270475743215122767212235643956759612115137276965836452884292057874456564657150607287942766156784840562473299240310727559179456297637200246700409355754630022342364529881032397247013090135549907588772051619062097797334930055818533825896185820496168955285586949516290578905178624030037532103503649697919811094000480788496550249456534132037055300803909488658790594719431396204687715427331079214404646180544433876979167177930646228444175048707616853575129577473834146045484460390092760990100993828584648484425725074647637901723545527130673048445844726521913381119038652164332516436677190551497613059416093736954240101043941646786246085368768519701487921526040352409995744307962332508644178672264611445461644836883676082626886901969181994006327573378837305771546976351057906706780134717050992086739301193550511953873650856377070419692947189292650208035055464652308188426489417744590964919297525013137474696178542135261741909741106010360448472379534530715110502043181823465720274857637540886621985977894599507578478074016861241017110776905920550664645769638184185792767973401894405843409838099097434584603844779440889138191234759457757875963040483832603481111182297746616037829418261611554250128026291992526367858085573100089893059023978088126491330915658510688624239684792534174122237923688454367795706268486097331162789135830261482357633487628005489147420576077537964446171834763697476908737062853939529697842876671814622645089996669985009957044760948029429685435579796486680641945166534499972061328187390338335378546329895074959552391692608373717232303334701016434255057622914873965963919494729571204709517285873512193451892151589972619490342306078512975939107586187005365959794962661486148306194697962107544522816613120520519417125783894732584279529228394272843918048546808508476147786449280838933911672046015780829128986703986699686596647713642565243646182858875079152583371334953011292299230554298672733241874301017673725004251422677352738549892343444202974599533106347809827478285333719964184467148290310786859198962448593708480169424086592360428665820295728403249535137560892686741736964561292028855822659309620362499538695955499096092967154411758315613755816004068287799350347315928886394412658478033488089055239912860011547596021038537808092116215123563677750591383694598165157175935177403507392900528077570927184324372585429644147368310320860391309981396601405786193685748598311259068009340969864242106612094087252429229963676047475437221869535774771353425069766797757347255840640200813836054702551523133039338174637478880129415902638658505697490407854600138999759642393916299088839287080553715448752129767323582935861288411360249503980069105785600963487770944715544458236068381714275200673704508038351469515224861771208224555425501276453199812571089893909621842803526756005579753983744106013945417896740555779222319220317109015138456331193876971064616430004237255913181569903863115783616256303341806294265174844688561269653695750126751153414374434720172513500500753391145845840822945085740488865947708435477247848987398237192850260932187697198559025829262460507450227255648393637940055922923729660167836708380300394044997531070926531005980058818724441078084231995638259560435002245721571085712133817229482428647442911761121090465815630425867759397070627698089796013789147677868783791647653892223909437703119885173169496747774614669054928868233961214699266322041076856945342888909319832542427058850114947518716879834602287795204074201927938910928859462965688407883795091908834517557276652334083585669354383702225404782756587178138596430052330146119385249032718488577584639363235780751788212304903448843443014057447428131144261195568644329192872225572332321266335915349497469020960964769638414283956702076157296106290637107037064989181034733142255467406365803648644005685910094853754288420473309433663410401295432549060307926075416052364876532601220859732596268486290586543899640769559202190045232072391807641840433098461953218588289690160272102776906584730288097279039348296729364286034127975950278659757635512187705479661774283987733153291034421664965235248437505259715188522825297644346263887963189550808449249274841351602885726392134381401621243830354751782993741321112923712888559423397518819734268236751460058856896278585121781399000490733765947128240149302608116846511804540427417768917554940869245484883779093780298517620193333374431666264532584165507638735236031316471791703432667391455937353215685248225988508704400157591625528362216461628464577655719933358256078719742654891720095575554604881279420880224134097785569402524847940948887450825460580789970238053281420153461779754723470336647667580565957006254095642269031928624670066038623002859167364294096376946617446098936740531457855195446272235404062766270383166550246941349853413398529463972137944422058247990883712399733555924636889001796177369382538882897496830080997425724527158325046196818614075676868617522817550267854867981686338592712676892061641246967805925902945004757987057037082156498407552054097594856369321061639181879703498010727756422805357185146558274147508444171793724161076705241524828062253884984538481865196485944887751690252825849896693789851862894813852049845617974040316095020547849353363143779186925665149469520742221218908559609214658694867306239911444417967804637780274863666369407607854519486836774001504328295211553032279308337203035382639756264881114180081088439804021990902322703084930363926697113707802366885239513055882457778882213246398088056524744089543746745818428540360869369916443007787892318577241103044597485932712431655715056995959434569415588412410095113051932566530912670080340104959059234512206310394179391241304945592283291357747667974074295554150073370844610550899390708393121791941429916841359132271534434124258213238560984318579307661926882868619837202386977942382461260124393953783519802345472907218750748578934422652125476963641868996929284284398495302257464810863225547591569283091162130525398810228045832106446237112224462174129577462319235771447130377252961662133403515651521454683959544109437780640525894501075968627019827461271241764914452617545766162305413420682275776565465947292960426606507260666518440017805802923805788596472477122345686081263628285157579370908417949582036877131776918315081662306407023990143768480109183121576733175524879584487143980017465894236733288687751326349593135049743763107017510776102232194441731818419818948107261713109271045578913151716241099730359351984979899582679477184357119033968415652714215318032488333417497459660804554672306894561540590578720665658850366439163077561563739909290204365824056633814880371780752634070103712352950396221882233784008778016164109990356799570228864164726299784698451144055690480989030941973422247326685784953924231735624469371598176770146971254233786736864510819714167769410414980973974420595479605502480969214171441544647989064402750706658254833945519805194673952794326952820189559583743546343871138809432232647336865554792398291888866343185400997960231805204000027380454049968545936796206795151325562913103776052024139383001034873475210178842342184300022496565257365696072790863028814579565265496169481466405941991194309606452334297992315626610988044834541949720718182910453996297981526929241672930965702655118249944395050890209597321366113469334360521041863299843785342999263653534389490985550776091805572807432194983223934346194586216884321647952023987550678789764488561644325201233688448473440694514905168945563134959634270509084666251510035004575049892791200823355939810899742209294140440676515952106040857003385008282959717281027356959385894502408583088481974631893257151359531292253554217322120201562574820858416332068525157996827125651591752648892815900927749305335417534535576376440525611420429508065064294555273173569592383512897840969043946027892897884729816283253256710569540040835826406978149942916222545873358983903639972027622431028673694486166961419150232065625715522026281082645840070257018048018639737175460260576213979907073404870765425934897289812302474516364407027892354565465445701144612668745773665554144657458724977768730682391673742533600398812103372648221978612224548262718147913677581565218516096414952967977802103098569749623341717568099214563851253505065559764991798916536857080827223704365956969432509718974603108949672598173871040015511088598775986002302516491696560971993599522622084180733364494796767544443276000197790625371619665392824898267116956157528176386460425494683990957044341231600771327391948446910340969439880064995862904927687858687559630946986753291789988688244376937460921986987878584497532814297444904453501931828300220710015544505783953813059546939063232091220824365851786401962670631264134729473718706669374583144335649635272252654875840188762806889861208430636322085266814070990935644334444000790496299888880954422986288802474283429390102853228533094266272110922660284557002292336490002293781585507244266894748423841646199366312494716477584331629832301212347997423062457459278270952250692047622207464789656635866471732635767823764963565127430494933383311268647980130994209023822856560721355013864901195403669970339226265796828274944436298022125665043777473737862002919708367131974778226908409395110580558482991943596521496124496645657864810359259910277051374087784798552622885054354203248142286737219162959126555250417643511614606244479587673011606501487678906457728453291324783155779960730376736657587701547273472358724568745528309284597100487116543269326078182660651233754844872426095447198733869650901830782229135240954572331538867757340875688677795416532718732775614467573572916984794678601189071308427343989659213273146971297988332234617832936818208949498121055285584599009110550364200886296933604397374532219429628665128218244299225620420223359105858062567714762162952242878821324736508811096730498979557217039167030657662692738706993544726352801853014369943729500339382248690903778423386655142319370008547944430772528767851729809194092877773334343803561394690614579722500896406434342953879641124369834509702500857129982591767560698015016564802218813152043843611258955232307381908837340657925335085451609650477767558600375649710388393716324812163325198384029399074722678005029529535628191959092443549238401591377636258283531646203047746051891252215677606997066964575281697772707634391728168057735852466152833275913494105932873534774309961742104561247454993020021694738416642159356627839974523287338000969366621070796312931810572535576969408910436926929381334831608773692944655392323003157842340108068078560588992420354980155565361513160093613779561430047237698276741504595238797061469150876781533103943011462442082877411991497632661737066404246261405193661533382893165680148168438555624312767633341953772425362605589376362960034893404693609028820708502297766154554093221678301457226351706923360291246804831278914343588178737572172361858927648442631978656348741913927955259657944304259522353201856464309629672638437774271524543291888271868984722262103192194457708338666965294811419039601568216489160563429237782070890090850431807320754663551703647692722006096421510298902650800786355995173431514826036163934837132587339363838442839631254062531589737957492871091226793548588786170549742047910810745194000789162845521610613066800757321270894808100923713553014279423788620874270696524066678593523675841676844950576145709916440862796356740724258327082661593817381646424516249032693607866197145431365095953416917354829072062826196542112560262385857429520559006212400097723665497206391323959808123210015080663663908038351079602545204723009749334466539852647685057927869446656108796938959956757042586016315996518869430554572230183384670292752747479728723427519543887445201192362968630538130580033060309698740998121493661975273811978754911763780515418874346193199015809853462339555477204666761445994909553474661368297537330611345516474369113209577282029687446852222473734511402948053628916158050662112703056779444547793679654174537516114945675528658895987593717187736689178211246557525080670838738458758098051916134128746294070098407001195697299347409016985223873184732035496302602379369762781221398470090051912676037742906973316519039669027837219307767858799892851665821470773386197514483294583360597148604376860845690909140109400508752499616758289468348586277706097528391659070309129735301663541473027318206508537907630633713885977165733584327583045366351914107868451921685005208938078919769589954407719009908543280047016159218677957588171738890083658993476895543543398549860409923405177493651419668586096749754199739745548680668400917119745044865233230898199473376720047813410757779116430750371858992811745064552363293787599673901174525199386122296023549946799528986191586884927616939472711166597062626476650811993682568169793962509455186482242043227085011747676553965279523259264338660339584020609741687477844514871262501520141960066138612600707854676848217500914531764465496774159866161772334326694075764223166650603749841285796205165633005149679216087000023551715074836630583016309673988781693091257744250914314282874797019509931124329170457964486224466329155857987499980602604815311320787350852859775693187282851421053426793987891206907944507910034341729117228558438782098411870595092327252900699176865969256230349702034626219520736491328134784018790775879328686932979373341685602695364958144436010530196165929889980615852734320098521560888625445111012819218366669226602529201422513424040718637753361228957143159778243157456795940872499596563161287999174872058849328329782286241785950369190606968463324102105761832354854030908410080752379486078372179898663300881544790743829336529017712143928215359336918980856721414550321574080816836187760363060789681407713970862641990226176182907781842945685684877892944993042156402284898827610362984968526461936559487938269176173966482352625317588030347255949696482807379207374878514088997966561112713665287312626218591898887560311014323712262150530761538975021671531347080597634841392156084049222997889544247878771248087974538703718257700047055674625977043577194864004962062981198968150786645508356678537742598419402981089944455841760436660178979096612564547212164772907845387936019193852812982388517376691676545719558283220169572709380439285064096346227291991803244283227489286893667223326917764677856338777719638723502137113436817077970744576438775299492363430180166450256133990297232688212880759027134557911556916566695689612891039788908040253979208852878996785490110028717559370382383635851809018209673900130743601145741098636540054321987485845787619384344001926197688243470447572259143864409325592589442644257876610287169926275762479949169015326141292102478477661833030757292985316788191915003894531890711733138731472806882121814592747092116257198520715619268795827393532452941852967532305801172126701298603389896195890975476944713817432234093448942233671591095181537158511921025817481577991270087810404208957995222041594646217199560387456188573612184220005903359127770433525450320123875423828507823885678263766175537325537051141293783661397513851279781376460305750583564139591737097596914753037480235366310633173617985990214007679374882160577537593662500612635569683063661122309823663565708826039423956171076285992839920390005630676600312955345227478258164790958158143430613000278266631884330304501956700202903307638512225675188483272379745061125236894076824820952850015083537012025986903116685672737550584421607161093587352170204982368766855780751968936952988287351887238888308008647847944074071817532550618442762343948700302488803413060153639029302644712164114598739972346826536169620924653640886366914746899944231023829767311229173063333815207471222354563370544651324692905318792802715899546336966917560949434060606860363322114852649685875500292833698223479360544568198022181200168699119909108861732287163818136568390472610705674448051779902389072090019099249913140087068466933200808571979216161038201564588669322705298638681528947924387374595664407395673434323284657588136186943399538160053608612368613470403177448556558862760396986681395422158234183084747516183663092815178756905242382525854657441973179355549132765109398442495508665880626248181866944125402254710316416429963698221545648014939745293243030066296202638253351148345956674336747419592406376454155592546726007925389422997289795126585931187950523545238119048200916333240258801652588390856930967699220230181943302202153310048479460839729133987447866822565996375576952806952844288253913666461496891069595321622108247228450460073794327997734679681978438046568755584666039947023300281431316605647252725941399830294891840594271972467499794277951027290738005376066054003381157443324542058193644225182293963158601194241440454964749164461562986364344902979889327286548084514029886963365530243291930327507563143511625417171958573404514595451836494862849764447144499340002670430081461185169753005446816141018580277438316397121738659815123693347389683319701446965147458633736674405088149842851521407415021764723683872918488576576156467331841916807272666978253563189220219781249816855486885691998820895515825254301811956432859452367543221038481156928338304375158550703363424840741770889157064326224300394111118318509255517745576467141019755527977264664335309501226614289144304156757792784074346285913497838857431072185843694974112047301018672242724449734199068770921043029412174666348965437997133947752209689018731523136049099729156027877714878055764552223466728976393643805879974167788232282307088335967650177551732320920653663621236520966767699709352979717395880193604042517418551102436997172818337522459349491071829319674803129120749025944083907600642243921322999107445445841286620384603111786768155718428775388212543930004708113301650519325001134442971096663919446554344672540859541184587333923706993726147460950159773096574871721528434017024519941433148303641976838242306399947123707048040611534643256349573588409973630415053422078541502180554744130958816986004712435648364968992645015633326144679644512328675877026657250438868730558628272373663812378899697240836431203016781023204560781780304900699273259835589703063214251286505097678210496108048191466256085039195632693959935123855652848757193496170577243476882048836766120687228297002074174434582874685773983697334820780158718315725977955062421194361782367418936699282447319573721535065713986521505715166324432391656247319743460213688313198137207362339683851635585122573717881276000280459067379731388421132817010792260112162197429044991624650786629553747171321926058009981208853257066531450797019742690287528328374412214561162632029970015792992734436335512201801859990360203036491177760823276452969743082525542794058419397861367806687333571666539900112972001392994785910974314912921841605664580770641013691249026746933914601159652793807142208392493281347358426650429325708304455919047308673961877360218654146064076534130080211413395967851909356592688927176448654931633757135506314560976493179541424675647466533059617583975092055419534365399005500911017150270095588492165429955124127493869200264993064448294013528560664644709159297555882939184882156401772083391567810142582459290943419280184781898459084486481553641540885117637038091094446437191579832392827993100693877812797249239885116584649515301313388869119725851913709301595920714952909903021841194657723582529072888032432158487801407988150960780296374923060083704464286108767098883439473615108189689592057872533831648593880761263358448876439768807519402535814170064611994255526075042622571158406767655167360281771923905863940891801782640176179341759452985931122828402492714688373432005363498312422213677816534254637397504700072554071451506070865744795358936619374479304695656431108382036733395891230351833794092659205001374615596305040097840286638201585280828878715651119703444315169415713211559176949270526664064338290189736421338093648556083539543064643341650724990368692982540598451916985010182843809571176853537420923183287270442894222869120153524699083088264692322594801711025962940803266563914390134412331359399732370374821112309171955457513652642141709243156313203208957090959313922573698983410848362966837894784125234300263415598018486747544928156758646672437077461362049425306873928971206700771156098829903966104830595366844725467280718919538589872589665325991561836368497229773815528108578005118483125325071778148915507774443525244908541694521878825672464133680103119129757815141003471569296162520123340821695702844818443253023101689845109746056501084986320498390748711583933230387648562937740385783073007903753761502864736595656345240775748554072651685222732458389290772387144810188512190043333566387781713633200655189986312609424242365427308435704672040805993551042226655446854445349570841876268622089170961691675452974739324115143940802302752635679310236197044488559414498309417439559894663011131527946586746875909703565000682770030889400514523003275874874102548313892647518783667167805872652061367231818378552819018754629100051455391587445391778322897141440363771215286945559352655173418076806597045751767087437588301759166852527842192275370425073185204162513627432336894696576915016886919015826274177870148627501613110654251741375078778314207346554163623137422717696099698337708003760223455363518394411152633895595798692548913977491546366012802065657327285458057780029597262563684869460224729213777537985404357398611734471925114483419278744969734869286989828500883688577160432620985499491723739534026540223381362707509693435622529020915540739455251715402300837621542993205532768433089915618551865808209363486842166476589687097967843523733749693074565406654174388534419290898118815116806801201545801798262229944895200238471127035975906756371678512376967255868285095673444634906919802213396532038761134228647165164896640475394842860457559315355836778735156543346700119378502868614102522971179049236101360326136598625583859001341510302347193768145733406013473184344479658435334918091525929364403163994708823016278531097935217102334891974544253802353253824781772452516727218757320191855478460112646008925082736836867992754290225714432819798375575057684447884187189391232492764408647146627957246918938403995581780122281152369107300887722222150194625544138856268704744733564597298309894210803500124008339620854639992497834860668996293176311727438328572930875736190645645383313421456523727256207911833660885782227517056866108561560459467297487066304262550958772756478703857627629170924070434911884751618392072555246495908191502553995725956746586492968129278697483599276272842488997201574875248325398883897775563782571164908731048789036064554628145221947771911927347073689678798991679555756485305517499719179882791330560320266783403040936084809991031227175577846521103783957523733624556923903680855693762076519052492441087096731033105159769836518059218802753369264156829995328484150651128174837101466851692924210816937693913515036190093574209950642675367038425094123228702704723158918588287887866786996759222487302082532645501746472300943527871765447749088709031556511387204476674153084705918060594122187458214133026867649289925568242668517275030195636374882745976007176477374652942685296627095372380883867403919016721631022110199190973686358152433061417887714077120119715388263213895024665994866835113947765929243382567925535364277662116628597351349505403754516371332126361679781875377613383190443519334171266903678661872752654858095790177087357021111080104664725454517308388703974894337664853555100745935235881723974816768277151368779700337223623660748965054849176744533069743883931935171729765239170806018255860923903844676285330396461547962127063954942706212314824082405527103855802160010057892491476777420538448986732921702342419345944472245770312846394992572322561022036958022172789221514381206488837739021932132312700681644910960023939021415882916572258441058551378867464579447220741533758002312076691791782360028997465558859463572807326662657452611290625334250950910783009006582889524877308134340129634670029062580049142374309904724923064460761433154607087146602915813413427763954205377852303642818156589485375499871835544162381347086486180951731213226363083703576812181288052312214145955486935405705230947100641555443446621988220631851122822899425727831752309662257322279892009032649065461991168799920187150875161091972921613895258056361657399603728802012855167740241844539837135224957120667545732108559012792693290318618087125165042769550757479631014894295051632277752685882076951550783060711280383264814236248115054351259223500401217056599542708375565543557593870111154638994176743593116236516131337587571501509652552660741023687353406166039280482510153195038690111692015292918958418386696061365179876557280164514467957146123678909733847945248602803947653623352780301194704784725899319108422794506703443811324862011853506946529280327447016946868555879939274503222370538825163366161213087729501253344909322362487302772488033483120544583180846466524092660656919568297387415461520695660845301693793518762814218183550376314396618103468714804300734372513551864165353277074837122362386702354720809644186934396653542043954813469088103917280671106550666216114100044536468555848014509628977290281836730089948843413147292842459501482127870686752902101508932246955280677154780195827649443380876389033223742153798471262062846813516617428002620143283459752019419181210775518870750768692960498608066488578656145293766721030690893095299377608794571863150511198410208780318515541743638348508994568126564576470351883383009464848900982182798579848899570359832151104932293613219263442541137362423777763418312726291534391028096603944895791734129812940374562490681248244409469131907589789268294845288229287098697196558812961213937553911509366350045750634777573276810545022577781838607229985082482955413164797378656278428942051741083965227569606165632157904893299116271090777091507655651578379402626571818026887230129356492623375648819410165104213670081872117672124239572117591923670497949693435592134220935233945732572196052456410039707180059304267205184691655545007493653702388572362619234320928101932169185102113348925551389988824693485003038107471126897073085623737814590390488318863411294339442473501725479644287395094913335967465561406541046406049379276323999698038627970815862860966122264276247563258307093674973548232865768990107581115733161368875057472583187512047315045896423245060365163810538441903571320200259355227385644945490448306139578107247173128015070730828354026535379916815799362531207526355854624330183403328528902784382928171169080376473574881635555601432019138682189418834684349772468239988375325431055123806004669031938165822817718546128807497024065361716201465443884870650247611442079436354193178655779459549885699139043745870464112492012337336055129707954552996491438602234959225551148990465887386194717231079733790244799478871869339351003790090886764392653786804476195271627227215190378418602632172220963228710024185202126934691306171414300891768435262378297214621299820008549344133633686573453441990530617989820319111543602366823487412936587024829543164002147118654807445519811232715159335742601661294841512890589032973144795537166082430733432606347961337721696740159658194860656963507188305780226342396361354852115825524687759214045496737659974089842479202939415360084429740982806910060893253223244583178387086807074782970765029961056658025385967223561573948692528041385514936856736925116985850459882105038971523863863072697005179080183185607813957198971303087440987444860096932161998337102055131864075688130707981218465780281983824271930918881852623120279560829621356599455105417373596136748458529945405805052675089921001005998484904336044047617921378399980199875064210118196115069277915785127955674252817913333333325108907983216292317922578547432966309898904671586488060032446701252333952937296394071120315024896398755576684456271404084703574082494230223849450053757660001967276463690254241489025582087218666051090396806800218537282638131796108915367720016711637751698348988161507423761579780249926083081132437069370227623007911591771010611612269469820768026831950008084997470160106396581070094264504760232123197280686479768642389297684339187244088671756886835291286112417287711181773932008697146686801699686208412121902912216041777254496089539236896247808511940735776196554073729428515034363530191720886791186395471000652212691748162393647922262884443982494465372188040646051729067493423934820206494436412769140614004231653552744782427590924973783173617248643205607070868376650871537935753993985460376586633206708563319127297715864689719752988394910681981544727324619737032781629007187549997696380251798481168498422239369227920856462110813049293078020304600095353141974124693454926389977982343933009152492451996071954919763003334958408074026157607579481454018027734362559224177295779253313320860308219168685419623713941855246603954709080729409185913337558331137689381732753782403042863905111917417419846674481224594958007561960355906682200111443892709460597065164068702106977911356925116406013475846873472550967778555171882369765527204426017141585693977741215237994997165635609030133330270515904636237427848429500530131388839886389105356438954844985445230251732909008855200617516517185924027707472044140302703716929750630799440697182090105191634182062655208961363392335126952610894389142224632900951797099620142167462694131748150213482369634316288452778319567098067243867120581874093396915904385034922240487549868058717263182454501877324089348575401478744084093405110191987372068022114543045584635442900498758957558735431992663430787507931729539513206178922733306319431060604434541385895632163266657992517611258560958785183646716553425968880590612105390203276820685788625422471636627577633933520868385785206458911386968495069302432421624436691788749278180189045166609451605738558565297265732205254588948230029729893749410661182292529858118188285988510476401182595297940765000184695429285103925924682039022558429012598552335136275965180975499506517636468863707956156121361397075838995731221759365966254799999306693696577193384984132958173116807696218383966514324217572880839996106546527740148264899450163406391334327716167729322300985057285320622853676282693086097280890401868958145052064630031213785510195981465300835254793796908069664520893979573472172106079680497929894990381031508931117756445283973814563221593718987480564063113562673756273533162513916021548905995842582659204750436494220201920836775406207651947270412495248647349089103984263600779832753191647824852288708733138938619913186955725632188610907088955357649666380764124591891199012796387726003161783635119019721467454038062278441492095908865047024790383606069655541753071653759436675171864622355578336818966675437392277984737321989465594168017886710694461982930184184410679792861069568650533890897177269047761766476801876795925164029570870458362810010068687409231396788962297560193501786665955889658212476181109269826289046410354581293727538443407720705072066716068212051012954724521246706111312729824453500938511966552411293794115063820752098891491020108837129597659057588577631949431670394320858529629131531924754554022022413430420772600084042168510505773156078568829453105828971809123983985879825829791791552442119655667886042925427247536718325326730963269289124571019013696321560578095365646584436960809014750693136524957699277667377112907197961146984656745894497954443347035881452301735152706573400828209651201540039136424292974457827947290692077873110909159509283123401501358158879223498070172361485925509161961185138431569237266592587994123559727872045140148453015978754321664916767421132052923354401233024433973221895912682242142213600658022416558100782503254063102453807933542292827607380667450984679469512941935124961206184064950560452877860973949270285219316906297486090426186872954481341903657433173698960337995445554508676422844001877232223964701891936972289539781796191234168045938994414328409546730325655111138929790015235580740529273474349978270130593538458751419059147407643351195537697806797487354058825032360370378329203042755392646282989645726969364441804962427723858897065934453506882630001914760336168554456445088984007103391089568282263339916239850385291207644114513787034042284150687457151235161974300161884413147159671646005337397122550477984847941102933213094153102198367545852909904790169393934398590117967165702165067810319172506838283272712643364488206664626864950389964199124207549506032627659125972920999213685765030928001655168326375235664189186366190265733811613647904118381582790794344037213499881117598072027655893672629027585981506424566761755660716720478276794185915046053934025513221678699736025688672879536677200614031304424361880114772504846311355079007917657310938391849286762452091792378497621235094745104371322932309542465745396985988712930771145573324882272957437809430336811352836779182774359770883648281602708235389754495211869752774748304434904714319600318602305961713154492651216002253741700636265836832844442321665803599629545700848927285034858196260087352304196685639399386412928019063710863998798781056660741446617982518538864825764200539303137920736727052482492656193852972968936509047269510020889616989359918440880474321988377312332844199184329393776976511024025667159983000742494261963328335884623215241659249019941961615365888145779343218091703447297362856783193595705062926244231900074639936893014516288844713705096544547237232660762418868232613360306736855483584267853259190035033818522793139408284887728500076241310180248821865280439413417989230634140938905453786363581970113107831759637538344550649718813278513316763088778690474242460659575127149968917701649197329244707617405812148259616901440212016239152189220034768326639028614257530791396978726015037515324195525611242492108968702059134024044480407076438355930309504135417840671173956294685747359869226519975499242738146350396884012394445513723142502939832416252287379835391298652036599094187902783560961891034451342009429159514957159966639376296673331243821844519985911219637212570200527121221371864011079989469692498074278815431700402382375572482735403291480732101405177847581640045784053598806668313976050059018411244608321571064289056649733928167471587677892668053227196275968817938388900498783562377279114362891748987209442902642880577325056203733507339222121280100250552123468037551269103348807611960113773830783650043123209790356871326977401159801807540665140398554485866352331948526114781499460678619124073899962452725551231825668298772988425280882904146386537255528729386693565962232814078123886726674353252335631118359324276138643645614451590151925305994573715434924447557812944229356400178756871579547463605166479752878109090242914167207667654851318193368743259468463462978370286490756766536328292306776757734236852579558616856120994833504044463473045873182181923225504298021104121808645188394366337541970567936603212201971631461724408190293226462109605966310458549385540705322534654554432989775131739173720159211076314302101383532409052649785906140268435197282202076385408381462170506651042814728661545909252461622689683878688283672949618747238719077261708480138157031189980338787224634503336888110570506061248392456016556643007620417528332672724468802258115299941515593748288234140568627929222347990168764390750286350926370988108343428605713981103206824893995813890278703902969666806847418715827477608515996267450535686402343409070804756039093309368803135242292249733611004065187157616546448487170416331876592104607145606785754829666126004936406461212416123909381163858462197819052173950177701737947492622379509173889795672424900395715398966677778459890761766916390807314898219191676796447627109324934630361833508845289776418338582429137439901764645001978345667346726613916296684206946208138991901905572011438531280161781365215575274139546181694277499105767123981701289686689241080553461394105968274722548047777831371667912529487136131071750901263094925916678367217079373761071159872930162381729033449734345344980032724423311083460464525483218356617248643066685260573359377403575619845974586515043285721121839394961662195912103394458008311848314109661148085387935579876398482423862250780959841525089074896062039717555744157254062426255088869519714654940821999997695848650113902624259786040847783039122882102740392087266206293348567087531374105692374059214717257403266519487372234697271357985047201066181485616101492456874921867592007473803074415885221154891399133461368349353171190929614511497358272550686536105796935526481422817981882619628978569330305716320077695659034845927095035125334244618460346061595841765690270699363980708762252326705821028181315324416459975057556264931772000672932162402142507212099963414364718818128945879420894973580947628266282573913357406574527198472690326062227091284632076287883413628242632830864598403405470654450346270236645558396919271104601055455892351444750378886607516460965656747351809091373773283508645739388524535520355852758205604501379131909717787902213211630561256552722261999970765010926733669773627751899030799120947675291108088163669702842570855751325300160014566527912944558795719426901596340502509362045000735264790497609827050463609368021118687109372285487463374279035202449025222828265405761185099878445161546769068379597906892922499636134655658386331284178678586084176664102488414529168712783009890825795465594889087861716497674557535200840514934352088009686132680329353675963275592217137926364647116919195099914686954644386888742409778530449403657459084673746592637255698994446447385655817972614854035872529322579028720291578362022127228175158878932377009519814077595092737383214754141112313407065577579764501297615273892565009288061774306800601278807465750816430553751866510023768386516216903579138382660033320052738512301015389058338759455765190184616992370203080881919971733583654956699226914700445712295854620352415005103549217219183058933782340918197004941364671749165587681673310097653185089552717783809737694598850525605240272959103413710669971069244504626949998848628552135835275544924020108633936434834639664613358148453535455177525243449234097973666621320619966552364982030376509697320516076463203459735043252342922067081669129709872440400092933237238940789100376503748571818687707013245462358336423093976942377502568133830453302455102344729487244942924395146293106276732498983485196643701828368940317308752459918891643456406481887547885662103468598768835380330659784418054128362524286558227670497143778135991677178210363546077748375621537878467634898506763820086896964291193363165550045979510451220341228391336826514130064491001845721265295102855716237313723634006078276999791138867176637674467389089141781765642107958795181778990278095644770204159716630394248872224759626248912216515394431920882713468574544445301892144469316051074248140784402120539053211185418183705838747282215246282363986553359692523097991400576565984549094876702197608155083990718346868344839111746646953251918433138319761319546121195559182576741790230095390815499574118243599362267805781887922898468843323713559900489821065637606583053887835438244197779426066651628109947557479282228667928816651205176448888758742547830743303856972000924071430587356380625900790202479550126516706549452938706264390688331550907755690583385266439084073936550979291403818767027696895926109838059553779196358024583975048230546232820816633671265386390673557009622037228648547513398963448334844527596751385411067664662269388592188324534554324151839999933961620049032907135092710829059936207802364813680218729955761175475953788419185235309283308625004821396041832181520127322609294758350499103658246306831861118195911756236995081782228624326541395158067519495139602709118783377547614456380554524604888043941756115551091073065328181532657330169484622964211274184126667225783048716096279945310189624436504004563662940414280371203984759404837773137770183574704622933249274859092032886224583910529507222078568242265994950837060278596405720282828063747182671208857027141694338402389979931053217958173996997153928137238176635126493580598849956085811177663569152835843119715532602691656596184821742530889820077077729029357642781328861992794734592304185651698665687069784117689264723418299459383955023775447551102985064426320215706948213663449274637554418040226086851785194631290453507254814392044194980273599006507382149374940544138039646531122185791713677332656142728770803128487107611929828848277461086116973767038926292020870371580431429462448106642558265555792311041059975975350015113225623013870300821137631315436358503887706529702236568283884195291382047977504507755979011462986705787405004706535026794331538517101773822511924015885542877159916470480806307072298512512644601281730207124642527013555986335016982451780187512366368795805853408170973121462360131890688819830875656920062134852751527005164412612150745125604839816240234996586543646747574914117668281937559549759999996037960518127594805926579818511607346665759084936671601810593252001988454307488959362732263803868147549808543034053563327164413888928475626222861732426180055872741463821048827974241299657058581890442262740700495851946199538543733465764567827032153032764991156742318893437810121678313333673196616015899540455952633426801564893040345447447349308840477962461143252749160589273286990073847498528114759123791637198298005519996829145923459558053404420948643363132066323225026105255668749577099802816591476354018798668405130368295417225615840227190550454662669953253511212592683889203659825911842406459944834093547292759143394534052007540648794491016616414971492382848860014417576691728895211277563339119676394195268450312880430182812143124105910035120750069321821431102117078472321934863396900196393721300949557141174402691555503453312963740357606802163372957525569477289450859893026797833365610432888551869377735166105474347182998846670238694185593552795250836225736427956682624014283455253103283683767638872243448639573792696986232952442708019645717052363394799632476062759730594838633373653226042292333162308093718522236998426994902648690836500326353096833303021976787522646511192301596240811395418097591796668813437679594743944990417046796169988600146403533928027543599789402667132736194972879951473733514310406757171201672869769216794993844039011965758741889032444301194962291426007771043140274180697979092802818578545289340003974095753429410279553302849554406230226544101096602868614725667260349828042486139463837717169570071971217439037364290029291682051765493878460091893009696032671347352479061336023858609446470322977011142510719698502581830556598468313013576914412253879452266657933216698073153452807543172859898632096305172044802670554744145529446831762357149802442229939500519124406618734613281449781774430007818543180020998406218901206802217682297024402839727312989582862527872880682011552562480233807039036581853775270335658438692134136805536427729893813048608922309798409402863650682598091223093931399985386721360425934922438145575609407416627987256081021193981768333148466502273866173318111641695508853246414538253567247994333946738638285239989911824218727760426470909249289382171498045392648319614951883500199412303951191606442578315810113091269977536468655543854582475633155395062983974208937116705308377149229995668914751155851399992451059413487729805801289801980886818723539161817745809896608235325658443487406449594539130129160769203935188318557000012813827343233183301203272167460750053889148094764268713304593167992186010587779098162062428093178183838393978273987508490561703008334703530870049701650530361341124152871872409841901311118425904281917104555175213063861536248119953056136933180418455590479670034241048686974010571138417286327262995931096692438203620072996484188752974208760420737527212859268316957027696858993970831354751758474735752848634848359941787489995292031511862708786683821489690546395166772788675590855810072372277774750806154661264474933165538143054965340597617404318636422423989081560379206110998538259407161267411832887183755829645419027589450800909294185667734609290945695310077410175987515652965196665930933776579721343096380072886076065172378746085236108867735418646483059449604829240092672980050592173768327119956304014555979115645285235072537477272412486381419833946441149378750677482162048118775455068017516578156131280711541340674812784736747184434517258018035508571991018642145122549738208391214724663251778509339906360881089671264970188976481943582727942393424670985991390185340584609696198741459680698514789173375698057855700891875947949954396053174917005311819511013608149736612563467188479992334174575957826711535340385481284794717681033595819318350281134725817923780668904181304442071991962171325735931222926028813101070596209021629528278093251543884438914076884507121255132141520463027415690829641005850414496163364496062628152204532558513943398832013183699753879047658660084950165069582216594509384601716456933272477700350603561700589926866465029866398843813563617372080746754454206548905935133529162438014949748947415744919690589076638480974055894181049113719521695445124246972226394033420423145293340446436062180572205136319479085369995901269070830365698098288357207431406148098932440328529803537160699183224167909367235674279562927084445515646675696051773218487159947627755711648804618937440074570020570925466899028660144883342966285682727354045658934803134595288988099564437074445820353567111896619342846708679770386390188805182969019973414641023801512310390646544264151036652950878137480657380868144830454637426984720738379240950129176548507684158830637509292623116877794134663576044770262600796780073248684194353787386525749059813932737974080417072810086985842143861334559530037177690720860073380134877518649499824393761728730635914089247421521481736579919514306711696322428033267544052475401476920421265601398017390703934538528951073407910506268739363239587201831544254386123774267991673445371179305806764305777565062575085494673710901615448901752939897370634103634526875098932466749196026355924539820591577263238727982071451673780818479476790267526366855813312936903076967180078581434510344142271631333441318408151154540386800247984659290165558709856545602949896165467494292992016466975119833466836897166711113838287086690231033589890431158267089114351199764468713780770972112157494079160847909102200584834979756792577290482194799910330077775119615521272716954432575402295667204143602989309895209008374982920207632300748214049042386257097731746712932330288134879665510010993746761821297193872385900871408613760677061645002571208792176559034201604285354246222208099502916902231823726899541251623483862076248360508607129681095562473321276326085232936529302013006044603200449376449238629802775518371823895886375429035550793523911354065925477277454439434243520429072444887619025664531644016201797725538927314756576876598997209552592359480892118921302347491168624901351775795022530809067178654308864752616265391883173180415856979797343289523996646945045063164725904842932443741096733577314303371954242555377804219588569011843976914057307272549017735614079395294378784323218519925835362556303894840230027208107691374966649468271068578401880466805235815986672283687928216642605122284710658448193353276520555769839212748528261008180478261775667022444932973762281245854878069361476551792051204875268378240143811652391116509943456281325868203736458605151688971856336835450733712036811617242324614744537223274246436870157684900495793214828258398414085264651983991471061895217223489209581745077657285595836335651629503084776091651249825099573127983376580441651535135986749699665170608761182091928033380193987519337649388505310800430627599828470574619312122919443206143985722584450366739374913501201038122763195869772052621909201727905230939755445688458167097452863621804357361301681849854409108412739021679481993620092620096126430053369965566930802331993217256967774405557498313256568772564535768456548055303883031973045568852281256770282510971417768678955050915925475340615248132237234304149937224129023856143005270178773872265438055929326275328147908419226332491832202587971203336341111272669140152873790680537844975927061890265554185339610130896050798088281029274745905498276331558531849172584032049967755002095665340273211174477500984925851292404643445492085449881053079801575030805680943091914351211239156472048039247109630622608905637221480424221846812636110895175512262984825599571126831720859417999230459505330190290545034746581891855895240472335334731332752429463919043803728853865588001741317333607946332161144294424037089806923667381394894653290755637582907913582669785905126833634207915940301919218683235712092363651883968891022019072132931996898907878544557118340976289974822375729392910463737301905506350290478266660147379369520736475705716070820562355671324422878009044707442610455778493068347564357969789910752066972680014328131124630966281478180380828926870945817479952509574487619838890190525318275647836560901836219405541400798615372839171797239124047739402148993477829185220015224902146558619720021689622542106431255605838942938463707921135714272787876437197977187767156587922990246885296841511550725152053310802464921586694930699196192378509478942205881260666818246295443611716440658194523745456915906570751111947319770790353593735034546049315739543174092504279155985632335981446152955180527977288533173661341666358379644319746402718940545049316297944233963735436976258705043862011223870835587297052306549761904765777902879564730276638518730389807517310408360250037187232715762739012725275901191748184740975619614397332214885454987194258884528406160702418312294242275458518156743805608477720425851771260124498893917677640823568251113131924486575825405933350475951321591643624503505124379406596253034311768738633010668298347488044133583259605036891831320442447148353056344466800303979576360610845660468853086651886234174995159493244026324733628663964910279482790821614337147539852746203679645825445340950926426635098605270250092853063681675637616103857479944431143792185886075728288349508622762953395544306316256538374252958383145178058290564810855029087401083552123877823737532313125387032735874598284374145443602850285933469856701998817499613789133853075173193722184189598579483153380759894974760533054310870055361925947860120230602952133153199439040341387337661373106899619746468427874524647166138148047784189427171408555700194157017334262745495563399607241556070719261606762667524809494445551971959871243065837683486967869666628050200456785610715804118614329042649098122202443195107564200282862937291462691172391139678493940221829157377203678694275908860154610629785771818907686648887377026085388597680104835155597043646650261667374772465941817448222836653007608995670348964815775619269273646962777159918029998599505054837610981852206332108074672855857252053585170138315156252779192169102497867801042372347882584316489592267343164341865303663748029706681080973256175158078912518360304570545701205916170406600587858655535986059891832875980498149494308508460550683546964881708411318732867632431651167408886709997310720804785332669806805708276465180127909302587649006732699345336101012071736730788799396446434651151076008469040941908679532384733775575637262109189197474951490902701219581099952527984849110437703418562741315635597045519086006562288519494842943673644833450182117311809712062302683294704117768971402297046783157215591513681197452827457536447890140392651290578805957084102786857541327337788478884212597256255693792354780810524252420979114998738951900658165818092912312375909500572334527251360645367969828286295846594132399521530287674264691834814973398283885781495185818690086035710278588969419183564121479360460667102372086459050350894397744825542190223273978759088475722118255437379974930206126044896036596617203388182361026677181044135628946017407065941128813043978566023473442259101541854679744074230041727551778182971382801701311680504555458638541217945071667915917558697339665532195726733873806886948865677377608505223688255718820090175648644707017219969234972854435264279378414842322678644210467807010716303084078666852885814506401223181220650515254549689518537823430030521708010969085944054734573241816777254195798663937837202611447520131594426982003857100618974288276384090872418017038526863517047492218975073027073167866729030958941070821133358879580013267764869029935648012683236221120787255887262695195545942550736378453566786946948134270730920218261054114254795740872061112518481243296172402698070466383305440735921898417416153239396910668995509285818974514449521047315348628945633351304919918523699083010011433733462297059619206680352819728953611410610854105144753639400977436867048314079394087303100195012140904191472348266006153844054322860030965976530645207444177885606977549179675457152459863240540511112212227115697855305017255351877843546799460536117806530314822154057318375401285719499729622674141599917632850151837932224152991924969776555796065358148112837195901879672205981113328687046924526436035544811193212737867567110253380747823183333765370660866059844695406869825744671707239765592811833339570297224456860886380345787388749895044131047058751047973746449167433367822060755034666475019331006626321811209723293621658531918759036382469780251854513365937881271742477115618109587810660727490132530549871175602046292974843037950274828251325463959269799064334680177220009870114370761041558120203880497006109755186197332885851326983320534841503784873157861920859850361572348041690210695739869171913620329474085556269323514920071980081882968563423239303641779085853757155122218092538895161527496055096607963518041482020842333522435368282047943735978830760689408742912522219478655304501694294254945344528406655006292717046854617307143031417912599495413284244688157878308686437985990298366777786849210531085723269145948729950584558245656511990864198801953995574711865561560007640046144018338012132434720484623555076192644004420955386374645925483690637156150055017692051053506869180455896452112030322542318348549624296509095269738357679861298202641297187395267164171389799971588453726716436887295013960170950599814210818271025388301905999800964553622169678880564551411832383867426311851503149075904904962176180362382014885173241181317133937342510239470149504884905892108376506072809012461496457569821490865646178605397999869276282490034376494683885160275162889066060374804345518539566549228555699850331338496452847824541204660418918041672170698057934733717020836812139370409442352083215868078487376552564457955615969836063067145696630535711624506348571226110318470270585627892212568530068742910465460051152279248804769506644860796405323050448302440120245961396258303288144858112448128062638185585469679645460382891053460248122907011717373665599102570562393046540874124090100124095053924880267954317736815518060524913244904131145534632294130855844529847343486773730606103737436383195283402102757957374141614490983605077485145176429125679576558250017254849317584170172647420576125085067003787737561283859390364123969576393715767815842260351732935787537836140398843477870042628547761530986017358917331353012601513822747388169958444724589828764218195906102962238082060229123614221974498425654780908810293257884381008610404211336364376565213034811539876887385716319230852020848157338038738971674433283119614662623404523202627340956028032708045988770566815745820197822502671151459721467367104387752814736525649561077547463493955714207012753970832620110986115868531182814333751893440812610668026192493303133154598563113215405064740519281914907643845425831478643469348238142152556549735969802778004394609781673157350112342527356999686041905715114539369109911304640260667115066449904136785130400720542160572967274880984775128582994477400873050041818199497902848573797026151275064442420444082016781467238718456906320140594054827087906985205888095349571287138222119436055158638168361284731368985279612206337312691699562932596344463036805578967520513810664509329042414224625134094346746944272504283847619817690638776900517749654780960222769738215620397465749561989824224962376745400590591006675864585909217309039785495925883737799514344072728464674117766901165511172480970530525732503989577268389744168657378771670900163128445400921309789618204324442197723827842137325275281807384389690404331782527402532820207483637059688206428732912704028256116999338467743126644456989023426801425326652990427489537842706840232713902293041241590563062429108202040203547555909730917538416891034663880418228498782542575407014674577373852208241678226726204760004001923772194851033010968278027725526283396877184827532840319426235765405260241418559279910614114127812410739982873311390092024766664501939577391424237504182858329252916109763312898755336152089352271114529282124461830946889961072790563795712341585891814867715700375017088518809523152631284890944975613791584449283221251318557876206054651778359359658214976255046815731181181897608108674075273646275674221484485939270759007099631123561703242240457025919796825920538768105406906374328757424304862655783705214622005863076187268157969413610547740137463638069210356455168754327956070224373529833314978501106119967251180451904747180129834993107419298434986258367622840516182578679854048574775924568862586436764558674751731692604375801468740876447670427142663734342108687555811528280953624979566989708039710109592727257544593689593673515270278378904128488792446291234163482503420351323642766084113556018479613254052928887355837782717064099695338383812725049140162305333761397400458934489517481942932955147676669955308743023971093383752706507584944073030353619304632613727417734338240463511521277270472288380332844619749605150546026452390345232058899391796681727753186447317161707721938962776100269864065586245763809497320364220992741231615439844172287721428471187127671273930564865168818423332466576003873572362831583627369109588919802232940353813503233151695681692220140165843478610817469955696146815696610092687795567878743820150220679972134456996798089237643028497687461635242436447247963259389589148535933654820191560572009088034726978491931721739971154123679967241109541569062322642414799593561903295773338727151088636686706511795517480207290385305088814507191981364234880971866556347568993411765880241622543826074615246544292855587398753935389655115144358251570815837529274933630830433179010090243000196087925509084397294825945615301345848033511647767495378399183794569811627610673781440032563538524772315158189126620076756911516573180158282682398402603661614539117809414208797967569768298920320326481193343846252580932690318998343463007807391898679694371162945095641571323256041093703096276557319559294908365852373407790274673147572666569645546336764451849883822061408191307255754772272018482736589463278120392362097475703275891579878872866937379193280707531964353813729090257805632679067258900392777205414970728451914151685762368200204018529937287912230922343168751719663864906831018378343053947201318287370659189617329921051550649745558898508941161286605653616027294289812791514174093979406248228573912197277904951056425982224569341343103933018871679155213070988650387386415788418957879319739638275928772598492616531519088460638981171437421934414669396910539453142845091752082829399260229671337917415571993281226369334770274718235018383943182807671164261726738976361803960272581244288196534246406677100234583742844561498843487018954145838940034235111921721074494680127095169994055891631840917456750548199702284349754624648186953246133473825047729149310185217478562050492953701972580491391301021593747834654972608884855088832386432670745961336768025279835551055485377539253403458609421175186481230400438950603878492076376831468871442189428919666831163459744407283905946587014428480494098075268766130074390296538508817337495389832777195006708694449269938966585566202101230799073673198699935930570299836566892822753055863907887208664858050851096711112422937196979703974929880163838599520838981871493699942607972199945707119775884188594403295775151250210110283063584866968730862639010841842758565000882798574963029677210282784881873634243883476477603072347227718767647911173345445379871503742916022673632317102834910115072065236676351761966160983716093128539509933965180072145478002198163893511214188608734845423168455175071288209424348456327624175883207995341539097489976534076784366451358973668454349814568911324218129533075875860976821112948652117215771168622596607591985566606952149454948722150057037774390393146110181637079468779252471605130091286303133416523112402975642817701219203490797119735773021210534466238537007442969452384089260373772028048284226587439625254154696940665074175597134637406633883120754659376356415192173101844781941286867114095810747932785018781333971635236755039802443877670296782132375266990506530120532140078452669087321608917061692750273116882901442359123912303527603509315764332850142683856858856719583060635062129311991349667396875292526546298653258484580252153946742511397566054051476661016538014802129460854585993065691738156284120981694168866121584396275196825413555214996155480820389300000716136653347109239797192355734066039581635173568027979710386978774999577067398106392682373051134626714301956046248563787829907553949459401782589623767358143470383367578873453185927803853316451494325016329311620261887529537039978639521628323769701350708540177887366186529131864372857615444249668081368234576743418181525311934430693155157746738908602038299900011631130027809629409696219661622503431380104164766391179368080730140712428456000908882310866976654651974181597113593560423655385546070399354272367049853901100803945610355869802955590273605705798749730240997186660284299571087891634283624569883671648147880871537744718544423006920236224936098172434962051899241349558626804934389305746740823477468845469679200679117257103364764401854813762381766118681606707686860887853317447721488241714984990555653063915826573866209255104332472437589035152363745536933955318145984372279564734001885910175956513827605781325826289080613665287015198953856797092854416942751655890742487095051247989492284484101380767228968561812375606695405058046834070216896800543258854214524176696989606968650636054185384104592064818778216749425827925798792175423941515580525930883312844406066299802996201752164966356389286076374423999844801634988431038677130335597782334863151718057809431699663923689246926192104984126888471301360509895643922704962052396563141763166430177692343173806418780963927755910601420925591475683670410725308435365028893846312547145157805839795282926724478928804857737079773561535620253224023337691759764778341380554366324921510009081069493483146355473052280590099845805544089831818572773791703779626796308563537168244272978175035057240029210807168080400319057311230436706241502296020511580285398214871200263979763080278395039061132449312845753006396786923169625603699988183140423104858605155781592587133796828477772471730502459444850377592888816405209603266955512008000313070259560579657422037695318042608720944269894662735328142652185687611787362092701718184892197171686387044240617827595195719025344777685927797991629978665647103179965036080422956408227678704650987209569703437844426240833719732537831025270427176366462511531358376370647287253165742730757391439286440627514313709954303801775365573198025029012717493935232226877908626801338495217942877091258322309516325896562547191920367236344619319393257002995232615606236698143571406986341369036073097098226258395803380494733518625429345406729077188297723673622259994805756535884766816203393609309577999500329094707388510676879029392848685861417837193567390007047243589536235966208449931789154182228745280979659115076510896674137185010104379467036428258957552188618419098924481580152613831855010817946607400896621719893182869511198268778466847981173723417295245599332450186079061627875308362373610982863538983612832414792876451538561494763024725218971105723006116644288260855846000846915017815394602710626221925391640624795086370654238968151426370155692296608886812470505077228157846758779103755949103115691760881898692242496004274459493492378506837091811992728562340952764824494934495610733302999040069117402548580336426518625437119454845478790726750207538642783508036624518215456955498793183996298430804517902807462248167862166260356150189158941938717703445393158126074067006242463918843797765257204683765876132504947499140106329112357507049080896296100868069431165337131468962311971850215383781870272523593959356308021452074669212651808717512585938983849044528837241182733440512986911172573266316496778072087560088309792397104503216999258156394125197759642496601838290566549598329785469521964269246838360740618321133129497601674805066893085641637555994054987981522908266145557097800975495324273563823782771860878965491010951158777854824568977822684842240817142835805793842613697846680060084677173863120571384416000551234950584282306159552973281841436436083795493879252796507124759475417207785265883887426417096923736239749338613926265268172678488991430834132844289059036042747199435296827541689584282454588806766037979730848540186200367359251168321064033557704867871500050852052388945663602305914750901984567753711880208710856443659916197555776405038037701013722965335568774180497530619838929395965965045890761305903670000688933262304523001287772719616225969506779812996790555086029893976359246390091820170450425618011351661745407082048976583648085348365315437822002378133734055308678476459188786448307527243590672833107601874697853172281461130549296113549535440213774610135849069156057701878890569560952369902629708531436366026855634785738641292760539052385866566868212099341430955760799903522372971178054841126068088450036021663424953436391530588231366733999752269698637360340707558472393054307183858985457212446276588618359358912081318533205748479353974475319954277649305049728893604258978638673173862218300894599900327422898781225998389705063976306268548028271825390965835867950672411646818749803175154975001089984025012362277520548826467610019615817440017062980442981141449124084784670306425548829277254755920535500550725042852728224895343407128921567958994145118633535693783194430847440169416354113193899313014928878197011609030901120210741330777081834561396075984440691848969572569500208414471480869241238303009474577953005858134291450713313454315892989807435390708867431810777036653606880629970380771560553642323755747607399281941154299102832030047338705307625490251823297168261217387208897309391215134808284559181403285677195108148988210866288156553005244813721641725058216540570176744051511244268202145128634531657255226715763916677651101909015268883876981553331382755367885052616308305232189474599328905279185561275563761547827203853010912744799577837008884370067844289706545502893405939557972475961706289520103658193350817104058914732727359856162115804587178423629191826501025310824822466513957211106096117647244739803545137764790294501594897551585060405374231060486983735940920914790521801417866294835262344531966988532801115572157891306804166185847531552327347860369939595120298567479285120957945328468064620038566510546893006559758105404801303949740927781447504158382643125160510405279829424552820673894363642863508343955059705813571264796864727945102720328460289922597421291051391512413003353855166921798310152773352531150965781755707113190511411141713550330717608409798575403521515805156418467983364603173549174739664284132805057291201293431487647489835392944053446222323223685833484064763974067719700654395016986481196076456788459598675783447773054903739494088135607680719685357922302312836902021330320729102741451622160448378388676350315215164306668147779456511750423873974246960835803286443719072418637669718984720788454101308579358064279248080650299546863470753303348527179611461590365872074241510511709090539608516765924283056847095471968221212767679504286603030498280754322463445631968260869363954850464653566662296439018161453644423806952507184762541570786257243336994930433351599953718045266320190403412061514800358576583463852604207745410509699063231121211907274973127086286315278669789040048510510021792256369461462907211838670759052474288919946027099418406936142090906311850035218196296026222502403131349944288999686842678747185408420508300666771867735806949173644967552124449832234425740946911353890976804489473707081969242350068359742867804569440850631859124586725980925335724879388737740760743888848626279101702553158835125446234458662128748757830765470857536814935275105312283311240006806533016479262590580410281638027889651306925793918283694167056065137345999114422865704751223059800440449531704728960826253875039521486548336182606521560907540387759580456192275702285492641798286559242855463994686952167620305027445380282289438550310512469562498241219244523199286107325392491718402876465987756588420683964196313830788873306609812551198572735384959772896952896095833860963102418681972505686721985656750168239208854116250739745962928672495048022139516386480069611059934642828107676832745101860717267878975836519059175446228523716293813180362806433717964301335114055513474615764854665934072542459105944769056610862867623381967573969695957092132331656798736721568855732539145002841539739631421222015910100300806635969513221478032252577936146048956229343927306551677887356734970492722674512596104769786253768804111091903359685266879641625654095729209002834431017100342575891886116876176719098763693366116480713719956256902937871485963218708896167262109894675151532742114152226308277988327747808557267585461928933141966448863939012128659064994615988014312766400197644163451023282447080513951323915217110517325601595790936493888110076228789737071821800506768078336503465181553255403996708712243031756906253413360165300216426008283936224767594568641016936506938924858676440859709944619647126656686502347049717905680927112019781066462358742288944727250613791454520357611665236321734262874638081003848161907849412482055083866678685976926472804087780813680360732170225804165827183537005892974137655921041629403357687549028883131423935327930437474759158976980770753364502301760102389376416974252182219681709423824351683239182597199366439600602860667320923862515141558971215699239417809809133957688066905815854918658699639552782221994494117938348668408621105764002137769008244221828049275350246053974626188553454627595068655559196396287200447953575266427509930495561981667018702784362364421123511425821024910458833290495419544839446494016529790088552234166875184584688380795429054320533786121550131050920101271233216415439492117194496701326272788431130051694404456377465698934782669695201920915813336990512345523051535772972105947502938643117339996969650423258047180670342419515267122775298622220604409783443704680045111093404535713588832415563537048473192275724116769998515081374300368667192510581547823035115292567120867857769491606082533945890961635029295258266970164163083102281297629654598765646683369234086996655135098209541009204598266895868417785822709737950827554433961775188539473527685263696043077822639605795206657685853308400594580067377512584210655729539132204328814869689166977181275329169845267172067652535698196848569834061597037485964141772709770556585962973126017370143188702798489635329710122762973767307879197176485377967663905879127243836703861844538299387810541447306038687462188972841493921548349792532580432805363256440076607836273425001801837534292316505911605238115216338308779553942161661312190441884453289417660665555954961609028528149147778642141049930851844503402496957583909631004509045225723788596744775628631359608502021649833725888800011938969809706920164191714755784815370203392919797308836452150592468792202809411982399786833426487998945411312718556313474185920682160310751533254090607094031145411826261146809396578592097787629924225795094305692919421508654704524647041864873632052519475793595859653529473897326345214308785537340367772579694759669859513513898064123279428563721149980204053794804307654247707513152537850047144005662318400925887474839959223822272357612745085299987198042331358550664022515365240566641609009605894406556662594702008452892521730867395305223071110266404878651045222161067347849460754948148932427010957964132399671464460049947963253989723807636851710934996072381604888079419891148985925929167663832274991334281616336499314276195674819437592717560154716918931639644176091037410346949021990630533402912350865593220744341385850781695454447435702049208143818332395917819924961575103585808034351343234465026764482288401767401878220070348414676379565896253617366530038213795832235204315063168147878993289359869840103603255390016849235409750372996586259473518239689296080401680267766981314555473505705045991043732025358422224720939382066410623961436554029904193316924741322335524143300339006794040263433659807824434806814275462168987982400835627021073175154779904928270903310217454247875549971273784249772605392373908291916818682535152811024004415592708302760133823989914013737718460564729637315512942975719091460110781865801329793828411397312306909582995089560611267974392570133609834652019160340555811801621175014067064764654695160493572460118705028872192659005491249900557429709748315390581377657306369184166246276130755143780742042939382107102255003825273784472302466141031454745236742229125653109909012188013289934185277813872161335279661352715122045854336363407374127480682497188523338240466007261793909958928679281358373344459372171216954748249688413457034678996200405596222828520729609073323508781982261967231784576637439889294314086968358513242480372108569865306213080389821554082711181864396880529767466515326671954768328654789519346631396167383054991952148704608171835733529772891805374139321039128196147537809210287034309196307242638165968381158449267651825585233234014469854856422391669252533992021824965448819967376892330667897400967014146250169028908708160135196376158401891163781776069181285833449324825823026156401622864993724629533731643303419139975736274794191084407492877056517588181912019190978716645812742611817463717294953597574265320722255919776011771650215401564310602472552866648476779967820533848345975730341204632784888339264867924979143173920444582145470777157665618814856184076569538972784487079215535446118764909933063416994786212869258201390324132837442870745473009865814087733261359200419858637063474031979355971736384946054639613707477175762420721491200495378832009984845710710047532762164436101611558139187707969489023259143526026324082829412246752713969920427512601437720167467916450492261371476700694301241874973348043482041227944408638245218798791361600139499609744878299390136758554829434786562815656447719909545188794414306584542475758301122044758965422223235807457999966255988364970302643911169342859894083105860317321976918473370438575577105075888015460026167912755815153381108364473175290050666766263969713998018258599499061876005055774532948304362252168267447395056902021045112210460199923144012015361905173200676206730764349010503727414354210197954989171446693502063642421678862296620170858335723182098353443137858467678202364197316459350781433910117189282910008863818850467370100898275945934495442361054481275884383106574466327615296688151049440471945109050215292087075765406289174641670966155780888699631116602878623679790515037722087134684866828168004441951429934799089737043146191384387407941880865183943282931826656056196712444707321765521551150545944852395852686905396044316748600704383919959869809590757386067986828868794186664912711372045109364622266517088899143248807187950780714562548938586482461553470464797526781745304483044955786951413535236940271876567201328469223683270223777287345390883609808968854752037674672819494634516668941468058473471666760628613426617873083903525855849805669331845779995431567595751261488277647415543024995307630788902179094475669551005163069441419072716012933889824949724600284952345482942972339600248986569710540651510951546841281179848456585802154870799712303862076759847270943687114825229754879935863021166337327377871145262241257339842076970465796883840440985886054876636185487128414618425031004702479087022098816864015943689123365463243345112012349113375311696396395047142460376325996178730448115612303829768342976454234884877458536591279799004589035203634035346758441679365510871978764345589319083365091045332395707613878674409570924951179695791419220535541876081677139522945775842031103987166249279344943829660515414588832125746741482068618810526608505550333089464651463748313580095799165230595550269898591572330885903866148698992585081366276859690027263040200063453517249248829594589262881232357356304159227793567035553352713576815662296863854811376688989427864078158760317453768919436153086440392929623363028719667991476213385632453095715045285839273364895028457058155792471356026421725698674195048031009913688421555435292280694481576266402942601426875612581216160479531166595145793707145096812807867635699703901874419228052364400349185639114948843624490735440610287835765471744887654617337924707670988229365887582951143348936193497535668973134659677450553942923648649824056572636045048195823151799419166868453686232022723278298587617409187128627924940795122904679030453923813540284121599944551173995418664525547662737710978796727153203179048733739053210587381466711248264957944697972329238778077858254637863115684939873861046132459527740378622813979387232209894647139178100242188922373647679428276853879041661774717804004258538640199632538043614308879424955236721049148335732012958306379776416743759797185590791417685047877370483639513660934448059070557946477073100713482650989202060553245646806199164229434502415027740270772470097327371570952512582446691920876202086479332805531680103090982393617769364899048056110653469598516309444829180762985255345744981441336803813039608333741139545773489204248681550457500789359504453134190884104483210436126076254914455116193104181880212469710002209406854663744125707263595067582111103010547008780711000149348211715636321611687543138677777275787008185639636255453835708712622295565908010214843430470865311439401950250337726920765805877911532819738251480326433641827434291740930679737556471165195862056245847016665208543346607944357921399424907811232426193580734045409695706847816617297506968390834595064793372378869426525573392351814614421221486443676030727814802055343875096062383452445347527688436513408569994433285389765682280896424259258039048939920322764874546693534605614828369231940423404805771990623147345880277372015167726078485765452801511109533719074039402243693849631545591534831127356408646334740246875083150103556419969196216087745474802651482792290667206697890875367058675735793419911740828696804342331591511418824186552632851788753284826804381317902578247690692851014122190190720807135378034720995975263522625585120302992640988941283325089450558753119164653955553267093320500270982070283571346375165413992137098084091453637265797229660165495216328110822682013147981150398041471155874955671573549294462524259968470042732176679370954485552695771733955708649561635124537466814060048859383152950335087817675703999486504941135399243649739189513971781679150963851687936769258752534999759390860478028148625293883082446945943226047358668436590526029575622787566464375621582558727088670684270767739435094343627444216496567284057108027998287238097513407245009814599520637081100250935172443495100351601423344753664708974757752582155057218190536249772108935518662935637074739138796124817537175953559507992055378651154550770185936272733682755309467466925004468665393521851359182843568104949677942759752426892045166082506154747236481513418484152307935732002259680743741237355800272820514274229714623003027808902158200994700926410503800282116251297556552086583669863678445731808228124804370775333967269201599623739592180455616078807771234246331007107551557090965293536718471521902309989392462066761494611397716911563785713371874950191759579439122341900081291464759846237498368608184154285113941802109668480702074149454630328905282203865910549266896503239618417315398983861235927403660760376692427708202687994986876853389689542277690030677220092273038922078374941057095713069268308046075218504795246999213564708940623076298200051468858720779617667599386930453015696537688327598667449908295342313471987717214785535915933362302586400665449527774341558644448980053554979806662536843210372014659534092432812880435281661054349981404668150098473312602022288397557092328960006027556026227566304113756004143315475692605227102645953805737394050326485241021514260378007653448743400720121923381500090407043326035607758476292576791690072188115568301396671635038700171358895577557171074466351319533086729073628596520513942259374341276956284938559750446195917430106770586998739800287605011871254883037462526118869463191385962423344413546694794304137077767791083195289173489510173050567005255898260259876647915209749669297303573908705759336407225291869753175855853245229502166667564805094795425769777300868606961456023436222718955036909262283346841713622085848354649232232147915639519663171686163353467174857430798036649640066867730544317256851398029659255290634680498284595447538434932315338748694649293476057513925674525578242671014096713105926846920919094261686965784276433548215948675677818095342759404567463999923641608329714165211518338861575366225290635473331538136851583876717134096983820126249302305260182510052986229496177782027169328836803883189375298054929723333662187462852242870090266750785582181612173608475903906537396447297286349647202712422634528494295787160128001724331352059237417401760656880121007803159853540175148148429539034755003521815342751296174004941584203198050140293580762979662465487738548893573871049405845225882741400199026263619223235832942313213775860067879920404074238986464233199851018528757644498325628271483056084154622726734932001974938131048938152828432600485115118566989067671459810261657674330655525027281158188861304664979094140979110003872809989160278209315731044037180854801092180385192449784168154463730861872542902162393660624907494522241689575733635897591660250358344114554785611425108537062095409696298012419790200530968910759246532531262443862523336118849145130795703402484543203626675660186594364383774857888298386831385010727781151498534408054448853295793244523565141584330379663199234203818113620675879908115517796532517162035365914519029627767084769395999039034215252311714382474529779657792399237654721046041434733915922849849130184314669803719970079524944273342652636688235305335685885217253644918058392406306389147286429312388321569514905600726095277400449095162413203124212264894701190110093171340243301277547512068886387810548357001614612866614552588404918266372005690793171581990407923721295470813665620290122475860151848387762158444539319697172255930536621806927086904622182067630100453704396879967197530408524566524213207519737898246055362089539006516080803785144512994108236467317576985962724620022445106365018980775901312976203398338325004097975482916705984372669389976033213025109853196515600028801635199940032385168624205950250041486993017153507831137181358884548167070653051298625763589918131379534192230188579653382711992065768083373450457556254222487622635314901440995919464005811877888229967783007498553165434777313616355374343854798391958622211497242927549555137050084457285597049966627247849784757025248958331551691442766715831835471040171713295041075951012528916640075269039095851356291892206279420509352196154830262962862350173711308484937203000640287522607384652903726753346056561891933819386901836858746949270864082192192121384697207516044786960601929101753485997150876508672453448188534041977332090625946770800468517830762282254237331840038460302782852756394427038173300846487546813811117109390436318599241998413461799652825218052419576755074010888007977305359126741244009680438736994473483921934381928466222878197209838857977745558815511542409676953549808100111163451876714712510322678440870310972367384509827909339319910562061892599860193393582708107400606812453425636484774338641920844320059627796002927005211389210263764690053436465220638431508565868486435787662285676034553384297756685036358544318319344224491835169395455553154857595809143549438839875329971948146698068711882029866295948086381448101256155999979846000032863929752286063292090229298243208629631055925626798949730719991073564668888211570995412644498174545317358550620477371796992965278552162888639315006178222129542348489266605998681087628243916098991656404707806182082964586336968327210982441390172636880833457206125694250847683815572202651272923040015493691505058685138613131538761017845955729207696289854241909748387901425323031008118434185817489779710879200139329093297798395558122462028904557021920523146652354351657029825028983738313157492370271962730023062816598396288224367896182550099316517951204707931539855790492994440035096085251413121107173579854285223011168482123397700281085238264589907218649357766374661504046403548749402297649802011190863820967643241676375906538454589241575015957524656428193093569192300763909624530726796227458776629451423273960936940077151914148586002584564697707446849138338774332822319563507610320912937604131596225685402687948644712592029795693683516501140060967821394595721615817560303813031662723322607318559197769194114421588564855633157924442252959530809607271261389324966936770794743354699534516049786082432592254108377920520161172958378101482445443991799800899634279845494758916873198890462632195031172657600953527199073296189444132418061559644565701696040871958866097018100833112367810113218949004663737531214339164574755201887332935667321197142565692644874663818545308140781449302848481436213682299426153125065728230717068644230462165962786453389953841407688664515302127761587244793411617040423887417939391747997910609340186273260638591895520576050520683146526547381942960336099247358546895753306621831901875252762934917376938712731516902173754148697744901551968512783669998935460578122052403656992576710509190923825901481825337451172077068723903271305553523724881456489635223059250750950457864440460826664533676937709274855560172668253824942584637554376484266464692386495636870651149648024847561928566923703725325978589335218270525969491871092890655070127375127266799309295402911548259567386243687499281323514583518529338180135110554113713851732611458799493535434396283363193087171504900432306164698578460940014794137787619849746338151405299916305260127045855864730884381768857300018167583458406398213655742938427283456937286665795420116763308937919808977190259909515963874469737921427960916674921105666654926980691656008691460979816554736217822168795712584947397239589699041612634010283938688053445608460975575538680686967863310843872470659470865672338710345915765652886934758419278380826452903157612224730902788223375692983476722324283513789981602243815141181256243070571132403847447426894218779130292656567118282527913314113863531026354046267731147546370157732066619609743541456288196024762969428798110085865393349914908309226528541062195089529530359979713666437882263050663482221305160317616272948196927850130340530229006520325327192855671801233401697393177529528851078836546026749976308424288006348002778603350834447730627473596852006665810569003910449585435681016688625589977343263682565779657982864484444358927096285417574263231660073586515786427984865976731071406302743427203468052945401681366930214936664710684958943273975175786297736177750580313808922081386020912772401377411481534435228801222456728187830970470742009229661661816610289955806067223404415738150994844772449396355061942527169381686854422287184029933020419175387066385633497377323376540661182514174781293561413127307344284468000730570514959103500356617395150106408316375127676288277815617236145761548797549981280269340714597061931415158605022985213264447870987314382807676462016913569241330978646595171086114124350783450644567856296617423889365427871495625368802711484002516505393989621148293084225192534765825301048843759147795106443385782034915055297476213351777270282017268875723163895220156820659510731451713917208604461204350252296242544101460000756385045390244760519027623779309261808168624562926425687371544173241489511054321417610796231255169856376337403838190318625953469720901095529314111708582230390925444500292793074176787285294180392089485999647223063600610015283669528612587509977864683354487450655501457696102857129176331979990180315616004638346687303203276002421999297900587076357263254460137831273621127131497798902703583489948724792269025094193220761905937527557607056006019531913974249443953558123378955164263288258235348923911052932437116630891212514411369497816315613630888942176956847289873534498581715167422408233322720836410760526012333184087024616167977220193636358044268592065816613431483386740677105691340932798356092677466321565981411649494481952032450810862876421168306908901907256890169145478450542069403011695245040872704537305252169156188512800334399917238706476446251044980488141106755873906459802456913516312088439899746726335567728109643895627596744288285653946675443545301375173065288147963662348135510420641868120620538015602421607731328354594487393745021728608998594371847550891107296808744583365118544327228370705435656294887915952079513839225850361400204153826014687969647050516756574784359148114931811705410671474870197273003542669864403942979690689079875396805946263092648867593533845778664255853233333388108697459342298152526888405138284560012074424389814185361855291048201643280364997693336773295124966236553747493399871181010183641839686642545268102159945978068371801873229726500464812685365694457577570640351081241770294315813929817521945842572581501036280657718993531170685918492180126636284465764951293750716070964808572516318371160017329766694039010695675627478982913541547161961104212032828326102531562599846814629839891336791505639831484672883806021518520918020786946342281343545836247816846075274963096813973892819780744115000218514448624652686470478437339014060598503292913085600079953632081780333741037593236161159127479070733914513452143177963737594647001265662382664442254249126577887316686964513952746868957701100206260793988200399244001127982183342980061694577474055749257070542463340200511268258084469491493408859594394544268262783369562515996374282823959293263211690466609198952545926151345063699565493800225160128309494807753824137063039014014563261236668753390660741881110168348461644940646711096405505121083078476559368750433261450708982011975680032293501250208978439491894779861380557500228552038704828337562751816618428682638106258603639291300796841816782772102988118278311413468977732228120807720330731839154373187306207343845394365019491580097915058975456311538039657355162710842985367001501764163391367717837298448128788057384530038813623769387430670449683338542625644776039757476994294177439738352237249161091109966388768438853301753507214697493436157248037130014454353789934298797760115912789924472142654209114740837975751983055660307743765911700138152797198773035323175836555383892878692214832555931142541800500603528382977861903898198399302268020239014793781390657063803780491634322279691231849470753605371562240234692640649690821090500285909285290773606425315017223575937350328312931151548822519005225121117477890375593237661568149321542338909189205592160320610050524723447399910848160333352100438311854025627523756336641865353572441108683166684881079215261432395574412492267508149064997440402410017491179414350511206683509354111508117759396867018874979174588352177135227772222653457150569779934348850203053165493603039685150817987410505505112304761784213736880484749698256469943839337519105931847390480591868952052196462486945269713170859448947497343752435251099534247466794839116859226003655816433662020153985573282876525754250415467789729911746943013848418815283289738166761327162542919228831569661961484541526907377782355528930676257453736848697146037706149797006645820692992485219739484494905167140242104957590045051737053747307871759406920776708252555355006474088157533823033281843075631295288892546906084135674414046408014812031316962262869577780744745814105031987034909310336647974738519932052657824851662503238872492461116762683111961681653997540831680589580380030555800175342490734241936165975469591927025887201365382128001276495959340199682595216374196810931784223499457312326707963647972754687298413537849246716125325363206521705681844833880571167937700566643204358147036094174722821516597858490312522466020271120892964748971664010932083270779543565152348040685096066554083178841473536044571370116654691970454030760300846984553394323652745115410753461511225339924853225863337425973906282782326936569569602109969902705730942672665908048877874474524569281064534318460923231653019934627158261003507301843770380100732349102627636210141599519690886632016939397995706628173302816514468695428791626338304014435085074522991858210793027730483007508336266956285359674749881730694121871814294326698356807573154145521774595343846174992505223284085654538762892953487667498699359999381808561067948216321887348513794330475311708489346798028622450877147975942513674562099009907486791797815472745691919125508454649153508168925580009196905495113838585282807692731183568351707118152842995319130507511470129315551605716934035511498672582720585828864687906522237439564678715776640464649921090628106713354461125161110878395125703296708681620018228423564607809238857291220031481599809923941190161901382475820826221216675518007577755432386007541148984758269951715232869546632696150213208212787504907625891810482104479515090270164531019902066755615638111039060646355884251206370120445515774090629618960680083033409278037532677455301117703272015802753882209848272555015003027105789738399846724924141137513151005043076719454216039829874524590852486480918420079065098674269233817449807894089530168813570007496994511517133035794685529005012854857871116772284523890759834963052123034812039478011550862973389132672121945288537157897960625499315167769583557069169882110543077859210901334145302742419189904067834998065547945523606606688241841616045537280879480506651929142763942225528647352783278278095812704343715661279025861587038215946357396897696354792421650950394008221970169889647820162955357762737167517534084994993220200310940871555673947083740255799700246064458543414572953369244018104771071908846643225140054422870460357310113900743022285607872751815537595605940538535867113167320456008811742412571513939167756104552418584877015036825643467734567782773679571437493291320532759714661017549998821876490065144934816355917479459388173917117647098541137825114245574901143516473498926233701677474333114484267488724279635495500701471129868300212295698885025669009151572628313234792243687559828439094754196323870999833724493833883516248617394110110589377702282505834656978398618298386788238904359817467813905964412230214136941935075276471359464628436235422086045132693616667582222532370632463634309054467327383989216095460427209267835473290524870047760732355853301940608392436540047526968393954182225821054087333684417794006890269394798047140878993068957190195325800246683855386703206662196145246802476576681603586851704825788304701379791070272183928404713121012303019118636479991800091350262338588520914998457016133193356213268376896926506053609413384607081354825024898224579010030730073490792985811709112667758952431945379839040809989155244602292930509062287228478668589026975846852724187421673988639228314151765129693697683096755717174005246426646246276923438546440270638064295841945158662258538591689640760807309803855243831086213711175192217526593627415325587192552029192187403751554022869221860145924630069676191579080543570294507176830530913068536916022511172133216327464578182409621566452579149628952009329339835995046068513407541030071630042380541128669391083786346816597883341254878688886687654835017420415134012594216887260984745251237389205343203821358278902293061947099483899187419678293673186111326082366902427017972151058993515083702720511824228631303448771205381408383864513775673490780680235750767431427791987092702559843505084453790483187857287072002523570637119239556945902443637257419404540697245494883636196657055519481639114556088757379360204743504207799244181939970506033502865758088269401513099281471732745678729890741747275242013389294392341725288219589158826628100181388529696148616445348095333809524081067122815552667081125131790527191084981181165977069896612917150456382864132261623867423141783267673253569322256979468165759380558745261360988482991845818627775575130981862096414676451349165919679661059368110048542433538768176473187295735060736595083302402093006986533846451948070663388172379390913384066018522241690830989034782724161631350968068144983676657461209007049115353225154672176901105441261985238153254570711897704416108860563149946398721458444137157727135772713954101139456606577371182674453075493615340172686169270061619010823148397154462332503955958585077407054522564768897101438192506689959743559828273836740332245279583178713244272233281721552107228891009556947145442934943537667665845897352786293060800296342483054755304805132919512901935987002300270408675226037164713877025255347855717577082180151785369949641522990034075156191737997248786748276236145270099859078503370950857602720943067702518275783509485820621336298337597258151352118626024867549485614316312227035795989374576100894938982721105228344723463700953144915410955689466285741285203335430695864506863053611421068073706286559847486811147164848301140773239313179408161143679116699191346357399853198725440872216925823330822757192934621251644771497481955367794239262503257628175211602992854133504749832880436018782715877258668614784668128341362443241002490680012639836762967005338114034242844464669364962623030667978716136485376294265303376001872449755725710292767447462837150654729715190261457483467264899786485069644384835816464432123881400734652580923647270851016191091294131602694803908813461949485826300684126420158342738307209143922827308210380042474186242314970631912960029807796152482479055290702970924975071046893734615904275402566185885952139592540108842599003130718666181640520440786421512349566371998152143023786966296230746604919625410355918193940247626209670078825769794295548544645979896073222816879856735373332425161070301345941466988174695260692788728850897925469425765343266934224830870192702198392654593966907464613939728397515605911425136186141181856262365587726345559381922588624266745218932835071324217893334198471064178023361871323206426670202051227885393977410010469547742893256284407579661735681317037271186135881398067342484045646780964725643495234599372152811582173173246696588727232175632292116848595289509169356732209433383397545636364118514260764572574659684983963823109328158919675353957555724642498452696871079319395499335687111084532089373963366594589486759903863860838818956699911532643101843486968830234711745789531093247919982418571817116174849370050413491563633422365726789188869544442777516262791842896869648715717296468821467391308917238494764505651535643687476251886618652280774237201509708931230967387290129126893189390369287364802931746114664721625280070391029199430396038057234714109510582075399267080640664384286371258530972971455504639705491573481482940912811152217539308090644397407965570348457037553177974670252268115004477435285661667178332768451146424427348668301757206254275666297021976506727179691994717064708289271425989760992026151440703857684696655461517907173565015125964503069634391425534533727973211846270613859123832637084880314874705906361706574213416335706661428044222647533033170000130335899442973831957552316463504552256553645080368361105132546996746091273189489123881195119597034447483707736309542829019611647841835990545469922284058478350309827849621511104052356238576171020883837616189173936894330952551533153161026000456849643554861237446880015042927713339754076469764323553164674877429410856466440391625901959316505344011084273209437679505697524752438179133780811976762411568575052314846839542070685065315394600624431738825359476101456706018936363596590855100296192887949773182977439174344124370982945223059736921879486445101439597029131376199004819554787520695945516138913449968004385005933313393641392327377986879130965419233445109482517011145172482942463281595298378874315228933142341254279382601790714872610925147397043002077078787635182887151356860439936037408110269335132462718056952587695167342309302259523758360703621923357419161088201380354500693063231512831764683984023039844942511004848197041889434708430055517067157063788259114113896848568516782702489590938554451434938234372363280842445308156840785966450167764657586533712295886810255434782237133930290923793200255577963562951887402577767043495838646480828645593702753575770818143054911407971380281310723242802223931591964461669454529020849466575667804211593287802066329958831313678754773628366742633739702680844339394081569970136560496058139072411289957462624628110511579586940914851219888819332183432067417192958852997507541401411206003181882454770988812442400090184636440015896356939708425116384749573079767762854253175803356671899682982225874229286338666291227917972831257552373267874618487714149945179000197909515822770085377462250244356222221445310838419758137347756696725191837635448122253759449909794592754457650588045050934725027002770789836429927188874574516383248692303040571039072153245153137302559288161067932180183788494874127532567849316258893529027325509665745768605908447920171420106937336499490131832828119294647669975767728512921612376341438033250589081205790509057946914549567051177048409947818441812994011283297640163104333823339202983897933327800179937928554065625026667403086166217179391026319142329390876476819288342765760762632060573769706362046196865543243527402492890926478460699011088779682563805787762067534662245874248844667932542887804621219174485271266669425192765585402384351171432369149615985295270394148187246015283095214685202318574816823196300662441985947172962267280923491670455558693125415405623985761777047933361001798039341510002050111203794950812338407747679289801654791634720338430800362220558661001383337416163498239237548833032321673707895283138754443806042411568336680654588326280282783606099990172380183270516387870243981196016809191938332508535327972952879094770159625651091610517693738560597391168292870530554867950468581678936477289548689668515709235067855994503159198817107591201787417063436292603128641476995039146073871668746638933320460419656687927051248495962107215638788801255448988597820100546111612486442313789115821697161916536635299365566419789074377648892921634392588535707449082105088487678328301547744570268873495503448361622063818570584243590765813187140313173713292240452916391104737545553514665576786017352685629813040509045442560508476613918110199835361937797017120236228942176882462134741316974856611752562764511046505206505248961809202086668839339295333522008402932390412383533983423143140283991833321238948044911975189085179352984275658165430512076650550731977879664460313684317357598350703658616127175223092690354286106350216215226618897369032892985497569969977673781893348102788652733458050802694986520028564875148680471784315391364715094035376278432499222718342475886022501427778617914697197223395630523254454833718008366246073027837433167203960671578614662711309046130575127731474792149649123023821652424897033622457156914764872405119554149035375483637569302432972691820041159664972654781471041925442115088394666831955145787770123886966739074399740057566011151222980982099861680560909192535910251103356466704763307415321745659840789813450824949549724569538482126105842455181718601548496596336705253841159232661352174710306770625824603368744940414068982238702681547771476955091328784789489598451965131397974590393781062832149103984790614536413799728495138347655538135015095222205612376722870178882795161401527096477690574199148305153676365636259175969375234965359710362614239232594560019635204137235670297861954999783896606713254716832621621069922690828244459346013455786915209723527006947915692369345694021391322398738171610978045213748517946111309602956516328300565704443509033553052982115300128517067747559887756916215860839226694251479375524512716337785395975617027660345145762081340021991709026831738034980420163136978985138760452913581814364753057442087286534591208227355034722497219017561990041891180812584973758448721532492007286464077095465374168671917391501001356342028528087875158429809458234831519984671322774988774505536553837238934915423372766338916439266590647844375059553552127608503426797057407300430168484244401723900472174558953416954120970050447920235887490675479099119831711051909778435973598286039889162045257284004731323500291447169530125264260057283238604207294350579722251213816727478773451245920613639566024057005898886453127965512742450897738567423320636743749923929197273199024799045217418897168776196952343280188084117392905142720288947156338362293129326595778476042128304138098836283242016427289043607133555289816009386851614488649652911598915535655156904153366351766062983057441756291826120480842727426837813322581268514733078880596650433559936311813559734523720642641299230308249919555442165825880628847652882679960398446942994142571426809073370675901352598216031925074115846560384298648881043694809630609469307768386731566447200727008752515623692037869379079756841369328395981738266980098371634821911663366893142259570216520262527179119372929777202333672113981821666696105514368691932044697555552467526447093901600833939697538386555005671551833157391866317540900101820846909121947195650486005583676666565578332627380542515085107997168273785307455261392735412737241288120928355705457821220851974761762112998645428377513599278471649511352355600710634816424435453093308533780591844890612067620528875799720612710910817856017958088202296676741781253614280971115535889606541165367230999435054044770194968412116377189570377542376234353077777028822645153890971714366572922252137299137229565933541151961527310112670725051167543355509571760526803145644496257836363133532744844434467904402970438417339212291255557217202667463663383432853956442804813543415035062568474455179196684177909290210585419301359226588602379782665399993404704268485912439687091134311311232129921738365100847263092060263789108192718605115390825596738504610040433623416986066758225029259762141725298923637266483052588137826808291515949797750757704949317328663791854792848402826110410145140771352557470730119092270604049684150644538239992578861546069982412105901538793392675302181829049294532799744435754843137212914070196673860172517482214443705544641032468091759499299811505718245593426864088046481981132567400613673108294715360844233990418140185537439290788293645273175290978283041763968009534328978992370775164859478571732660786112745998766852736496569432258793632794555812695866587267873587216469150217448850685371722158541897865375337838984632539896077158804540299885197970381129213012400784119175039497513085700716468605026755909156182214499488424566811307418126654602595826725412428070513771373960678430956339552464461868868946162157480966963869351020191075046769836650157965153869836480411843085034682445718470336598866371880818464429464790411061732588712835779305211880455988089193838004818042823303462379178428662465744107501247707856288371107594001156181559679423255094668424137656188534840012742815618533597662278826665724579775544323524813560774883975239003021334537608880080027444970449588120611563640750717602978794219842148263316392110132404701186336719945219529029771665293742907569602481774747476244421032622814396557407066805849509505722428368906594964899177011233240805517478998728977777965240607969924196046124938600830106077195583698578112978914154712113391397657446222618453507944085600162891325091443501498784763058245670987741550105150371933175768135516133324704889449402095977571570179044348333066663003310588528042773424042030921646973583331904460252459246674545924687812327014270746457058366563203090747987993498312865789110380371855266729801259195815285656868181237594720701287656912232409921109050509042412121843526523914796637487608101605321488908556207541125939218695678008983476724304033639394088995330868860339854670655781646418898522188146930265732766772868796984414283222827352263686688421320660612264566547958400608001925152572478592245446934921644925979560866481773264723326233221735445340834302733753239739293114028241978814026133878751966903503012337376213319941129145116596385468917865212032328860325605345494514139695010225926407071108358083278745241118311093399808784802683993964031074124976390145437449172129811499496006719801306778493317391589214036928477048973574096208074039988788203912431366009368158683919875168607340420187202322027168651253782667521792475569408828707056431334810557156616219529923965261077104442555536437593417339536665122997712258171610761905367309131854420160930749490892778539840008870309323338677069266595263351461741412279371858171845621951939956579847352162085072530288506255221244817419965520947423540897879063090582322969340263346012128430342889583352227752092664768529995810949706717036630911481672109021699781645587285849315342217362593097164586472983383752009731303110218600385844404518946359860383156372508643335624313145335587781442664518843852353056225647008072870878413733581302999747204870324831395852894199138995443883720113658508105189403869820991358856393469851315101686694712819935699943510484379025516208448446335003362713614590544325937422682162643349293692311118214104845511255360856924554761171559732967436012797858847067571720586956070480489513932622448907287361896500535537274938535282410085251003424767083443420268999234299854027631486841874954054319104093878586777329620426548991673194504232512652015266886961342156674222641879153830388236278066549616693571857259738735997098457762048000900645482405725156771083968934778841732236143971014459585815376237825059643697008048087518792009285419136446011299726913885764006088295523392781663806762314560762394741923245529176121302924115109870173424494481645384345040835052055596242096126873436242796732215308816336448324407079299196494591649656321210924334944847710284139633348514195106080695484034210674334121607947352575537627177239600202533477215277537734733377452858528566785731068889716747820452194463890097913344276948589108250022836481727499694577440558024668870208976212314837078367032396341901559590059567516021205294995159980278412044827602101815315563011252612831103588670991531059566714641030404664370783296999312436961352326443467124269968007800538415815542136641406559604327201131556427926666411795154627730994905088890512308338718207234775374509607669186816870740698317783523343497697756675021172368367173844498372195215902670414615250236337761072861285649269249176155618233445804926527583475767384764476328249432186338101292945101846333605721832135418800786577125745681239651879413680684959946830369116436788314875717082344548885963909934180293267558160298389836729206353953152310734040858254326501506066767358331585857284176109572262311695886825864336104549975857904859695743479715595654538047806054036885247894952011012562812113921093853885326150522763292120524409301771767664367141258984360649629492069191321128305823777760091520959169776339550172579718149492998150783241427926819205443935948938062082819922285760134606689162910641077873652855850881923613817367660345913205134728231174058808790888673241661150854219902662081883968472574074734022910736769350067495566104538375310836218202782720745393668855460288397056921905512358714399946289330984613964391568920774337723203228741832789246366274778446060739118856831548225594519787766992972501254849129512141849177057446714424770811302666798804767085200279042411402587189511671664140596889822872481400701233007765162134135726850098135648452492622463601455679006768622832447299671158655305835523766602361876615053482228479373176508269267081728687459355915874186354694796155425260955012977705725936075207639456901157110335953698230728106522959897387320451369427561853976595760425040317620981736725027753237146978442996703558559932792071930509798797997046519514073966887525855571659404307229122492719198535114669900047764438431917570597659478069493067908346794049547183228414581489573818426508309128295242654943222558056399463388877578883509442713614416012632949891036880632563090839682382931034175351587686524222465117300909474257994589496842887184135530916720239171934794494096225999256006733029823567685719293070815155217007257963507694567867887468742264687316985353497733430567444938368406809217393989416299545690481729914157768285486100917503827064535390242402825471438800820115783069405990795987592651819088244587609923608524185311237070400950372401566837169320790722939329532492218228487079943973107136351431090391308024336246262627901648262119907255972698655098996982026296875706752182875456134332525883951689970389910379139782370953858740594485086193846303766638205589772272781873885635544687941163583539987301785956861553920055528021402003588509818672636576329635765860207777092512387180909851446000697414286778155915085477480814829341393715354061271110543500204872334037122589648499309306499808606013938878108264897464617906125963520001058557511805275941468309978875251831317834609544326806332721848005316910220458002989396026866702235349418754570549253291194000953646968906242589779672216784024198515460716896703914895703348290471707007053734742725060025962577612976360648367265664466572783032106160648415937397098011523057588438732845972733767619342706929017041431842838163716708822741703192272297435875969140110459988999783648692212431841165854874445104214698720096508774100627952863487943904885867681117531330810318593656092771377976895301148579781372906222854792256791630090126078306344653341530440111486479951071425539009498259687755093327982531637051229236706920887914471260672905241867229351602652309469427386390503046591394143657154258492923075688654024667840884758672739832923099991801437383672760120033870816015456901331178083567122596643244488766444398260175752946834752362319928045647519447168079536179863375826259075394836409045130636190545843636606469976367374204940526026318919460673319475187585582706782784505278379469907851850293437536580504995051328365972731164986429329570503278316711584546677824247534034332687576220880142712889837772294735567034071435156702968044804229821948421961921685106212294527406623185678042600877620621863540794838144553098600255134519217243905090976860245058135464645678487843173040302250284018693069475315718132206782417606026999922502913318148611290111291258321253640494138017001074883101493802568601163000165625873885799216790366587796147210323325077120576529853004717243886301743056996743156343750208055279301324756605911353226899750855065096131724038169060428259775731866017200389672616029784494228245272012466570046722294009855912964578252861498346048797082147088895714151513886680876918398594189243797853937531477283000693556528637687661181171799157607604846725322066856311280777655744451688024047065173223694111763164735960639547093991764959251512775339702286443864623469657843214864867094778384509392418573714850595966742988315043209180259903578871647908669640881539123165428938117262072185013927068197253514836526080029636183704527950232996931580416243627021665555935013532070653993731369547127683191210670044718443804975179579944742968475889101899374953783582261993615804418987259540958453840532645374616428878742477923531313729417248497069642448077616195734876069728249482988346222084761535429945957025937650838517889182001737458439567407423504027015422322691247693037293830960820458290962967640651445238590208399804329772928917774260639896746327117328557494402703883327029431710189897571733754278119276426924780103635064068208449127138160846246788607404316450657557421966409507510380769602789924722598029812316283348589637421523267353311609244077970320362731262871010171742395666361593737777939902733409114020777848190687939293358150709366913035865933046302892578192827314621265463793158332545110844062057926772383647168397252468363628343444993600710711699720950493232104575680549353435482578970925796178197782439377645678556908765872546250365587248760177817526627271642364085592244068103573313110170398946993118230107301986829716863037335129704691844549760240889887293859329082492272749883205907091794482736328742509011573373031667084900056022897686569181279609051740320100973966811839271299642526727222754695636175053054338846593228247765781957513620872345050429731713152472415103262371855990940514234355779463908927408902696797253493424266923663387625814381127445637124611365414949013957180903192629121998578520848047429932255757779264457822888918813424215414283718104726115780545126948055100678462315332538328330137128214735821390195739279520787847248924336965791403251041884728027806026016029186079670620066143348470737493945588422097823404170946275613660317712006485291934611499412509594308557423325298129681794566536441968089718644289913757724878074616253214682731398980432784146566982040235379775883786964384233121214589602748893136523954444749225328461197381714417187042657138319341586261854408282764645048956398442302922536218462085161233045230867760688817032135289186705359381450387901762403200315327420483424134461435414264838357409846741637467386670394592493002481204782080506423813775349146912602904221328968664606540778927883891873041413030357574651528979555833650889062108300251132590799994763021123451974803770070561781656557658227915796861616312693983757940203050951880140880153374548995856835575883684699551460316448071122436726451931856113364509834888985333999703861879040751309615514883289287195952152570296764374394552645793553496191287269774213711664134869365727600976590751864865604945193395129974428709267632431421939521988364956399900369831257457585420929480555160676365392379268992671002997653224622227948469121237644693817223232817804206887156622968057407604112486140795189843819513988830803515885992571529884123257500470377963085099553116489943995762722500229525322389848822240933899620611275240991279497660288629080880391350108537003943343549909216596209771796320814842264841247668106664785289368706553781739696065396409938057705268939299014743535556695529379472357451698439553761009840783343742798323567793231723654025052077853908299432428906460012762975884037883255168589200714274215009526404324563844009749724759252614952283015523297703105311989771715600898982452425619852464691354638461887531045305058334415574213886876571589406347053177952068843984239162148075889132328813652910436998550361358186493528818522876717291524532599864151336785049200889536915076139828952336313403011974781974982182728308261011414109477465491921326670625683629510214310504973012089699297185102147376202454709701707814685750579717416023282340540214813590071647425039149106260230543204308670921504108630619128839671807966245043041450843842991982486181284549381687574073717779950334879510722995626903553944086241965064160568301871010529819437022697078012042976373047905492617526198571203388789772820644312640761468102056131467713151894084915835129746830735294905121886157472137924966677686982199215374047286056963201683747724860586220523994271995936553539869539271635499010605494696009526294233036655730259550311152727771368439742261081364610093358619763982818055748223171067311848634415513934833256865429391039360642169432605621641150558636719568847865439074616415781396289373022451292688227291380450451937522715263240077439467084851686845285645880517907697137638379055567037320301644595896212006005583269921691696283223767636077111019269171250177527244375178007362702469079501537976019840661898124586007411674572084362579583179303225527985259741114866526059571082844669327948091847240632467462511104082779409611138059026706495156599751331185327735443457237521221354525707503568194193282485609824282536364567157221402394268492123899553176698793603470116399684497679944491831186404362353266866619476042100136116243122413326745032106923721260047060108354795804712087158334434156299897850217513993035955451068675644934505065965307627546949877771234932663326908200140387273049100519217095096373965620765650958945485347963727862883589623164011022269408809678439740858129766870914188936252180211132682239751915304266735921482855547515564019934180387916360542195481179015801952629622684762364517096859592007859875212057069216312053005407236836455963465179756396310608555965640873669775127993764226606736731425123419319952148189665322945688994762019823240266362951800541397158046276786460636860852796550275180403341587906080224236041692131319338036199993371711564376984013787710748342545210805473940065607597539116369054241441743973323508836435948661201140540809948808934129951038223608603573824034921978871765307772040642931175351710158453423932257705359725184163837504192508341608806897026466840112835543995452784929943231154144991080224384586119274080283752382229520065218318163364625650126800760909305569944404136209562265754154144975619862558362365922496657660442380063536995634580392591247651334287781196039214967144050875036037688083736528404525987547637676448700021171377114678655769296671656596691160158497351028799458370145510755984638159840930632958107398282214790012979197623619146870745813132752371741996241029051666950536691087928941912905936934090035009232386994825109423797209280225955533705186885031535549331413925632352641238830359315305095310985241297532241052926689270174073978328829847893168063868526265263504341503165299623643527062073359993925572316564682933215174014807846707278562270314951270976111595787109473433716969608167355507050781231676853835517392795814135106586446746762003052841838114923280627181215694909072562134948038918651497383531915938537791778484154382843381780624818597498508555561957025075812784207618584614672726850201640641819325905239548385171366017468548513619586095003189624054927046027950328000585232796664231890892463695519920883747456543327474452643082015527811658909209816212786945701388248440756694958863049227782428913606376762877076093052321480626093707796566479249945388389018991777785585214114235171356816221186502467320004497222170860700042717196010441968726526600007980968309516470898443251768041980144393332390203774352020636478403428151491851633944694625234739842214615950305957490590691485276416694099874044824091448361328268444084507232680513830804779475513971165975846245640727316910975768752591315644015574677174839213732422139227359851937584895447341150921714808303860884218141975938647132063101651902555585006835198472481431325064609886197716272921742648491688895259320491252630200674744837307211443531331064246505652718041993678095667561636582609122611664347062001683353058976498078616042781047223584327374632349964346558297871323885312206164443824424606275149843409351406775284436621853495958451505993823850076754819517880693302004077973010063974844898993749476742891240751316932430228366190375910723144073843586037917408106516392561445251612367328619678927266212835131171628203160656963725142180483821982000968265806069097240536528732699406684573523220625160334194664020098583794597055964559905798855550036297311279531482569385733992413096049084003205898821016361677143137369071040116833304190347426436672372502918374044293740626892620899662637904089332391186158083743751644815247491395622141171456201465436400695025438969157729770675224911897513708869029085682747950329681593294618920548956691978658112747199184007526342498799323331153379018816774827456653558480688215039080186021685646315275388597828900224075989268929890656574702987960749884934456723727786809775453198990545400861098707442232808581175744114575121723780945446430266954410790584457410662335156122359072084524740831460369243919545940209475695022829683528753938465881430386071525168191806901370567166533930240784398137010307717608686256935140876557013418462760153150756976999947912288934461475460227894079759345669014358044929187697303260187515072984516478250521820160502932527073855203952165585036145419380807359946086658915281546950874787117275470486865578656813951729744741079070860351044348817754043341123627664837566716792695313415899017206181570920449083021412946954029824416807954764009791573966764578853544011074864913280495257373297362724941240389450629418107147707185774615046563757004074592813167956320765546784576567855740511471779846230954711514078623681543565566552582482577975591227606805783189059801440708668480359175003041537433160614172817182815940928104343039852737275696250042508476598783582216092700581966421684534359750113784370316990858936881980984419439692666193833530903111517511415245740272922991127041665556010682064718101188075735703611063576341070908394837242823332275792226827376578328562273739709613371257537693822399176428084395132960686306509017938252532194521408840913468339468006836286667867205961109653637982457792583133954628688291108886333401120509375164736201477781235728512327001037531136541248180228763609193967083594870167976289394466870887945767086240714839051876818453752109716438442812307334281997039635995675797321874245176675599279230559940800982383222581299829541756407498815476990541048375391494196494565566688497509807393149141411724064808093298217937149141726030078261121794566258203762121819760046761172918749085127304561403293526052476362482900540912965608229932181862592973079551847214343782483224095355874039233641073837702492738367286554908666188408421351944682880459826695979169565233229524361995836918673776914381368710123431778124997681699486092927109425940067589257952452712318047200261625710591567601443373441101020883002179044738690461190163122840875711078822965605050636947437177355939274218434805283759599571810644367875099495264993560326455733377691347557622257049524061090833570402749155551847951787197566751931184810846849007053979368207873035642382502988383388566079489881571427551707726743012207174491477891984462523917215112363859204267836069309179237186802117989836249003382379207379013874131211870518181512523225195120986015676371033489791827707559371120890318091640321721071640723217665151489269630010860694774945854649055220561300473057424301698233560433886130027698039344761205847687123236580382979187771999455107997204448406645336574507809359510182414895342358484260559090593717668904807062349727476286183159816623499451484620287815789057762784030377595799503235667865695714606023965224752040919460318177114179972031175383649622683789427771280967156916025064073556959118969495915509194141657577854468881792665407246967725280443836511092177801572519769854166922954409922858614407480907666887118965943960756527526693096498875322370409337232543521682238264794630314011749592427617173098718226352643024649544390256586533121584474722828803425446564689902015836592831233758862773787229028898950289715058965436420710230186837446419332527121835299875558161737410651853150659674976236119653701231235913331206394501191145710042390869111886771912761652151308853949599363329298925419685258516320109201879387203885598069311009062079634510168094620942481581916609423301964311023894411484531137664062262764916891824959817373008764022099367488773062427477707592190614915805009523549524107201519501403064399220265365780407408150289092109391538512125364002993081328283044065773341679833625179511211674607920432979326695731314716647671794543519028235809679762049414840629481512919961378071061261510780359824629433620223766848894206732269703896509414242473505343505920239016434065174472399739534112942385046973323027160180033806042150007297315524760238969671313230995421959916592070861006256630004459956209954576661810874664659518670176859209115696420209501186074100340368322388002752948807123504192552443383015197409506109905265186841126403117571247015470554335187099035841016842288006362961577383788461631673451433003511715481179661851180243084005892521762959384348313694713072344930887184701995669149127143573389247351091568813515506542084317673239975980826447779447553709284644655721124576069101669940685597128871525688950746972523560829021916647319547437981875590702877114250727920509927092388412322546624615372236848475623525589561284011725615712727722950376630084396061200201039943358224606190434893889463421722807479100890766942435147204266735973672100311154260192613924438278203556977137385430943701581237569415472061974572368932881598985531430120877716041126650610502101852583958284766813513324865036739710919605507545570502465818923470448996842064403394454812090350546854485139557281602512017560053288105389145659834066404059921711704512960159664155163905448051782510732345830885622737280348471362270416037034831396501371673932476752457870525221318560689511459767186288634384089427411487758145434757856015552399694148369030490431772728098400711735844831045331182081701308441541600325664349624175196257065623154660778592824168647025949743041876458674747641653755472921131867860937402411760639173107998307408537461376338336086624257657361220637753865778471571877819931677805960654127836793286533610233566326804598575615464858689674748905840992847510524802337836345735008575205068935066929531066416359853928719744311898874715907034193112220154078727249735349159335841293565781912097211198278932297669851587821433582971997520558270117087839645474905006288557725098568155937153955215954003043330149717054977018569628675576658654120363692908525616134405469178040797334366892239606151206618200251440707861962154536048378441097952152743607117523892125266006282253776712798989003837659805048254232039957756770157192368813106980413951288426538057125142525343412495812023267425235106897503614410340557024030885703218678616334948048320630920254442270821082290017251012168240161487048803387210509612072407192165425518396604090707916297862185440306229055453485468119898790778518707082908030763137430899589598326916552497296470426869202291864549062825283735270656684120993523675326716663053832675561100652285395602361280537751904142026797909966724103374795963044639445155814099441824812793286261326343832603473175310854880600311020473912226138390933038322627748164444154311157838670290357760831610989072317979347847734380986388812315280724332139491327335064490027918289591732027519360364410526198522808368831465849029622788114441415291620700375508816579664289242639852414048401606231851385910772412733725832802538756841260042450811557973142387159792607352565872791157307598790601870824071604240949950501568412465440906000462479494618160972744794337572798881157660074301299915748651267083269907708287447280358061636466104973162562848212142898466842363828746828141852958529466925643266695980094496455335474185757027586278945042511377203491711488874422703248335129174323494073150210804068553347500261991755656185874967978483327926630966984322709080807648546492253828669530403423838782946390879841588599546864351493287571386788908163245436438576929770998682937875776338181401843458706268448312292735176647143030381392271800653995116440292719083490786012572567970662885674342356164260633190726511232546256135315792230901554644948819606012920770641970087674205480671012424539951397865605931931909365301260297768257763633342314927133508522206656629016184003746000495172535188039494317480984421169753339535404138053593679145370500550386595698638468608674292701422587597701588043489210751896149329095286276014391154541080339983337219352634254435359698489694838708163327210997060925672784287964903921338283785426884143719513477308204108117489177919682086075207826932723025173203372375912788344082639011055728681199534969826607657985788454445709513727463955275079135581135529624692797381171408825020973336222633221928179701172815005585693235103060012159632624373689365194811898462542751561218472202694494966562160949234555038392774632352368306770241035276576126596195171643105822366001637411632022383676055501620766044712163315900934719975944526856455809550902026928100898519769683052839301083301968247938784899101148416591612958426879243469389804546688558918961552684383022619734167192585133003474690468519942320432280563913910276596222901021578766809149156907070608826181756686830559402025916121906716653759712964542390450198712284039981977466777045913193200000700609803328364624984474958073278268151755131770439473865649339231693541726996577497345330499689893843338722264390048657255981712141911149049758756396625157203457309490561952654295203735645725126468659933603624553394459682414691844621675365967097627617061081626326795254478874858449728907591106311395103275054524458373397661920989600867364869257294811829492228553125711881143963736321904973905263832134160595650305033926403433793389092178522210245454545113312985337632649476353757023507752279781728879127333233093339591462173200870206324998857603597048440410763619973626122137850401667809159609639644461277592396689708660595053176901440587071262278257534949498018369567513207361021183746113643768419706931071836582324724551942345447153990447167709888912662855799141824661230150487842663873460451386619023295832901715003348941712613355737946121879717160534918492980419352815650751284484326568075000818114339256555950576469927271300348383032105232839277010640669290803187606006587207571729549400485149014769632922875139214879152621167156592656657124695870545373523558975456703540898781336457006369326784426869985604526716767954374824128076903931990485328642174627763776810797891507266229259062880702558945140541414492648113982335209785945415098912997585126050386152572676236710415183481826204049543672204604602161982661200244683763490193678051533663263943658408621159001404733782194928517921495286513008482441541328711190897923257090817147549459898328969904243569203517009788692264647353732651090350559003135127919299815835844276939788743211413763944649186936726217499256372019379822371764639892274436911723424878288440392210366373106454009750078097934523400367151980084202529290743674707222916946528310350088640683267284192933505406007728755656750626059110550218601819778625484781082964539050549277415540133869466189212541864464264451273838860592012197034497888977242458683676740607695533105151130445232296034736345043375265884525459594101701443214184315018940474002538690511004811005635569351199721784124841671553980155296116919902204743305372010069475200629263239883303545472817156239251394055819700387622556803986287195371697945747435234385994416044081366276192634849033272558093337658519432541932880535072713072282416149970385929962812812823138890650610306224863323519548491655684550673425034270175952785286733066834034745471174948247667574515573166328547518331065067940557491692331344393634040030380108044230192640024108583046230307811569568048631617950187813261143877547404217738012105187770830319843515302405039427935370625224408732090823354000558324740125326037427487318773085974185864236031689688381479058769083607614752369301561263448964018944649023552342884251888754487850402844862157953444743784879382900722005414757680651183196970691498286766639169986424313141498896882017218511391604423693763592036814488807266465247579029426491238083382751806844795539192523053440273558567060019762473663185829254107644828047085798183402609145967279296250336844592475844709481694871763247930894848708738293687257925244324739012867671682618587770378049615967149242391429877356885471271136129908918933634407791960355251757896454383190659357048540549641147387524092416788283220280261472916965764221907898856559765233716961157264028031158801692389608236885590757587337245550475403341529989673657610133169086312440811797023221424132080991348535080951763623512188499245464077297629172552503111885453128355062493748025698526318594440757009431952670238324310165294860647969516381707871447495591980864139775184006679090070270894219327646672203003165293533831394073674111243033160787475235237598322058791102369928601073413159406526839795004663425719862250524488941574153573124317243840942550004455194980067667411823201291403143231101329908867868506095053181400742906922731450471544808377159693596491956668646624172905724564364286075075149346888740059017181094796117334285454933254011253803415451142892384559906613828794407703826996115761608750268923144033623480462590166825678937377066972561971076141774764437000822513699936272785978233341022102853836197054507814921459986005833267644528353615879302888185224642996459941895865253755726726071628595441375170215375750115539344746840909358115586384442637394561388093579796923980208040076030870056547911879953944254032582288327274718533112019310943667051808572169864423777418035578586634476748731548944978204652810271998534497460541175279037923644679689600802735600328010657165484006623429472186045811611269440400877084625519497594190303669313133838044718752339731887793319600218100093201864024411280588801940949115880198792878889735533340513565545995482493392736736850358058789482612898736433343877534533234628528159822790097067373255063399832825623996926693844458038770678064373694691142173453890932006651138570944779125576667237951682168836748271777983108192022594051915515140413559399339389762634503264154930210726588613631604182437267447155788748019843388331093056841199858595419417013184392849961733439863898080874065557566617652759638809894091921207418354814069879802546894551213977365506817727385957278747586525903287083946672161459819929453738036862622730340367242047586771801494637925187292213026267417309781229942422539649732834688124410139935277698540208309230122164032444024551234690769641948086501181455997961552197096709439383050860016381630434746556725249689551489141006997282121350766701366482881415331713037385433694176028583600024918584807593019545552780856118924761243759287303492380933133636749788348695234754052864963208639649243117648957612682869768485019883952509313361280223721966568799837517655202739029774364225159307955740494993039347866061695922073335871971588926450756979001295446777895229056513774999439850514746951449129786396144287781341013187016910394866414753444094034165844329454343455947258080635222474849157960431541748590777661750781720866026680056280001383015339407330316011509950013960808141194418529731086678134133650217322562463230755079435168877683681727185348769977526595691082201463318429713204501274292984342702713654406811905886538701842368734621790570465577449559316356303551673608563744241885169325985737328712789371568602664382348413292162399077610522365648612400043553714901652916018516256618610368587276257909014292112397881572472108436944838222104729088743760012018338224084371651762847385774637695185500537638983988396962679917860515407770209553018995603375775364786115127117638670176070537912661331680675499912906936587979569224882552769600897311522365730152799133940388448169325490085022143738135078548535249996030613070161211599541214422604459939859591386502645570604718839169607109313833883573030513082974887837629376863975189595553946219770852700296744410285282263014949725346210468597502955342437772785917292200542990716530420638795209617608283961214372344093051782365101515301191305607384312625443573052686061845473184036065306553748156671679955575674684028567460415639049337299776756537789843795747364017428354459576775935531918153958813899279918116627676393339147678834402500088651869831176694999059360747045694522492655122982225396973117517330557557161772866939785811657993582848333233516550082698855996291570807649529072191817767524587248823361915058665329578002722937572991132334519124307979871608246792026373343458750863662865793600234466075940666604731905352476118684204636089975675760014806931463404763263843747926839382253717716544050334079422360674151099793087991131248921656030768016813814887634536693548846624421834034593563082575281150326879490135144199447476118186523601547488920811270737573719485534462141301355941066503274910482644997318720897967735740602655741929127693888302555962089405544753456793377526720565777459510168121502501396585595546322755221228527279825442308348909669650923085914932545886115836455022771220483978955393261803713420609739524588191067278486401273158407679449046678034818973402592064647195696756001936156926697209693259969774771492924522671284563829950761126264759556428746026135228862970489431380961670550812914103095730068100187618928728649202054522749215319284800869291147694834886134280229921506999849470655768697621010149726005571418277759337717223569310525952427826886978180214639370327606325125016731267794535825376347485710426390796092919297393497702294134033477487918324730931859678796642947813594058726080597436020961753526783466984973623273818674008519223758354184707940932902125124646132005048577060260487452306804581174518929532842151231964365775156750263311177990458849703906430425025360131153876669143781050929065376840200242728227626784683578092352664905738997183114199984981401449778560234091522054600089503661565786165845513306891410278936028847381322571435079889565704333216129695318859878422548546280416119793359894153064289378326828079545100300359684881975803472038513331395021416603883497580852235180908757302598826351127614951661932030921376558546742999632193085143477611169319936320756876349074058385071152272497982595066045564687486897804416237476695760726678701539493377518373526524751440875886422586430676249767408471769864981030412756189391851822364271775287143055362005617902286619336807941587712891304919163513042926597486098945391168558674719497668905264324281138496649433481941275518602875789584017482030106444292614254449857336319962155891570848130448173002367158338466363450564098857676852469999491382960238078411993388295493493178973462314257043150264568798005874819950285354047896409606545621065096940366265398685030034823289007959805440882471983944473886212011089000524463983422857270089064733211499043069438891430849280701564647602146072749374359148308868304763872957102092720617133254781197447986113106772797987662801359756112245438544773996221043763454998758555136944155477710725553091774439370133731565792561307469716284648187107935060639590417820695705649694374839024064348658197486217085394107124631100072533549066910545621137968516780202101002465495985765977160837174911421835827173962483531937093007925417876307113301448967623084101599988197481939115409466794529061997738207030045761247450424165818048341481236285338643145781205408229084235215893725745215296908852254176374678246983760730847953502746759328090685618524916012194174952136895055439341256437552764278981941727663186651355593843375675309553984512018268062706880902266615230416754184498860556366864419133303991769459998972299652685606906820369769319654837294619013649912653987027127146072205639075599941105844533050278423108784094814842182419783326947042225061446790746256707188296042049274948488845537335647327422931026389509041133595905314893249572582272424902163775530277491182767895410456820675903010775577735066475164521428877701821870545692514461842028769267008586797475760189142819780413306246502272471176399433196110760426601788230790682091623582454424968828032129568421031264086296897642297557446637503501471776002954198580903301773446750789617662633595378338506887025628816358633734698769367955984705910668123761915206857715214941346653078670890678875972078944361302817246630412043955411304936983999639740358972958716060762787385218836191858281696980205666505890327052694387244546271308019115410931560236539690789934575705038561895813514010475007250471342441242964254402972779945015033922508528756450326475374709630474622922520928768224664701214564809574130688387368200314098293315062975940517992791308004638356311865005166642000704483702428531020722357448937479098393957552087699744810243275296532576481782080339447105726573489060090130701202574642378410422661871434198571974004185578497910065533767413136138035745530876736141584285405849192096813168625735435997947207879076071682499013379423934926536050725929433362621190387151013866089061679474267847593902089158845109430175055028519050146294568843385661527756368928022548240428074277858339892859845786740413131140391609973336784604618507841477817712865420753718693964805421148805691771048388724887973191945503161001592220757372605965266820697167410548028616760146600316993271239916370045217880269850314116168026050292175221232159228733484630620015130890561131376645225838972998965653522747108471495058230183898747256142848327636221632476138270692696397447375446818598921238928985716195460487688199113809276190749854858844372215444221711746185700582832352576253035975418580939941373429939456167744348730299076123529731264106868335364195270422937718433645780558207066870340596084143524912910877535581177023603505266011496225284536641087772043962196242446404104172381111653289343673828487757342747285663630324618919675054036938460842494227227101746084363199479191734229467311608591149355298423769066991139628900467819600589399248880869026889533070388406506438248588192253525564997069075928632432003660737596461473364857044777245622323943233591964076042878874614018005887160622191321680643055407473405557516315105223209638429934120126815516954825668634662342105517199843429251483854708477699214021818927474364370502075767256849598144072115207364867401230503678755565752736933501420010995777559466933526624166498640297600657888165336676569140210513547716595414869052122159460957168057885952318133769298953716200312180362910168069689346481943175929139464489232198384367754228647747811500665106462536377018140768804038536048242609643934201245404402008883648512280692141131986682649412998946193258370470197730392010255546541705505402838740575895792740681591180366139776798460167281182812058828663443912313723366754646282452269665561698430447437584453252005816628810205642280333336048576020780191047633539785370140871434787286700948115698713866762240661738062129005355018833013632895202719549049793783134266343088738591764744099849022081283083021842130251136880084585907079342170173830889675860972482408764369499986908405216989688075114134573504074190263491196606245951866706837964891541290987132110127847364773348474728574926108572855246496537391138792316537811540152371894199284663947325300063538391139573689204589204363445980786659235416886555477650081721009883740420544857806688103272148524077150807626502383537447391906085456595610223357880755194336126307056006765133624398562290215291463321963146698777194994105874382035878656605962380419871520219229795978188163800659262216640563589258265093472174315024581657332562342854317664283540817964547022348857626659360641731922781097539487706722055418401050419849352137559857733809327422454808282555477820803411830662007137410212160283696288882376095647294374046595406431063478213995374972041458374617517747381312916948728668786800861167742319819876766853660039121720313571146513487084085553667081333136018296156278975041555070908572462831290799274594831696268469011792262246214982653862254932157491336192710699002135705467252558350160614532128471349438679392597239957678154599451541722013995195683176906603248516930710834501497703498757232654591163522297593072483152659503297568103221460625354698990847406072634428280573850688144873782204397304360621706715103096281054658196375483027204058481034550555174079455345042253258974776190506771250867743234202237597840928328483749910824192360621976300338585795407885669711542987948135023041125264543140921583088382182450742816523895184445087944004433237228176061662835698781791238154990756956941153512244028681022074219585080920992040674912367019762693037667525941219109782510384115694192547973108164829519518463307943927012830445306748868712971314660790560604764844097564507934792235823419709779477764476103793594235844395464935379077827388423923267764291167208101549294583137926171530524535704463114789217098204849931142153203520212271036718080821551364351921002402816773592858986448381256512152674045350921807339676984671334235395185800603955405797426325546009566539764614451782936557324904911822094240013639890230076163324249121457940976253139010984471418230827586328033235946904754514661792631782572913668084841288383774712909087696950876557578379795323434039687423625830344390146047724575961911075889999917169961089035572383650292168501398183935300900232952341714421408934011120904998153509734731287325894557850151253767970146158904451412518940275428861100489347879835927553989554188490297911084956569033090694172252566001513204557500106964988756795269923339034626976162679312323723887151908671317050135178620115934546303416787042815570002980938321051847076171966533160704632417974484664252477421406066030049170442840791239204902765676754271675231235564844469899604935176923005390445468371100882753372202150145093797210342817903898947447243011842558768667636277152194685644860440504863107266075691684984268773963139911966216454309603503998788356676077649349409322489606302558261217154756787482060341279404785471989612374973935099009885560096265552459537281803914977218355076950331249090416617221521683801302005239596533619367327392911694961376181363753019100382097692231487946843934330740137919883890682861687054359122314638023109340624348621819656925951202971164498683379085723224470430824327452559013450746610867961351602658345618867175478415037236874735048573477616416863685266326559395021216129603822901389825121743352840058604009188152285837360947041856073276914777441792792690658372357590791820936910045388853923162432870239398319585759602313416425853062767111369800918064068268594440068070298741308281974040473862631815594860545698176832731951767024723150831734129667713926918396647457718374873789860064754742563392222442415682060512208467968841825947993235507619227521993512432223094301702037501989701324878538819381640217511180385718082316429232602386809796939062764708823850309486113296901226223339179729325017977950300833217236621212450856354566378624260364339953917271032142384992652490140379645531517627646757694505570490758179359329973684756574426613821474896707729310273725708595965541256261733464571595896019129877155636572535888314619195477567275163599545631050174663076234635568711518074093008102079557648214112273035684990746269445796452360816455358280428512072315391381301139711579883307612202130373679276703213971709968303939314173078055867688707453859086515898508475684696885612242718745377538839250546982278960186465227279518513897859124866043730472767832553692612906227510220783941047938701140113610228578360367061439072456005802205962939432940346804481280728283338296883620207519281214047005324201745664949125136292815911989388375307365579980659472005692047951067050158684374679774423360595831977361349362229066329140303879491569939332914184425007484144779314899210272393008720617942370655990205621625941243316977120559607547672287637487345345852689973179110781788413733377266407715535220431947267547995461526072337428574827801621082728652582606409760480463029436477107047913681468333509655759894247612052919680179649318556079305885094556844524315101448832221298660071028426473473692157879454583553910418557654911107670548690336676083567722095921687656181770231388000465882965242359447765634951239738653735365306397420186095234143354216824214671611968786932098377483013272229450251103354367419856523472770357286586753938183226358268672458985882019308555341635716915334959752196417522876250580327752405778973783623173979132945040633727791988742528204712037859089355404087874295823781636294806679857160463658315002432986902068255963328475712692700606312890316967168191077539780392558740513027365705530639560008003774844685702099179800474987563624504593989415267795216661444202556554510701589658881613933709872107801976093229409339927095261432323171012325344247714919431683259049190986273165403250722163761870606011623716405253956836154439516442612590884156773378340425596216397037581522991068403745127238927502675236153275209285930489738913037599015415346267527380163785012874594737135188056852817773947653376695044958810863650241794884757149861813322284865183579311820316571858905265286604531133021264366832247381898487660554748494785207539206282919395694937563117063902054186113005182229850444340923969471488621439331417045062806776321799162809963789365361275278098593204984998428403840685438305459978098636738263481086176435712596936065064738147758021728854751225186386647780201120714477792054560628315630747537046387409285032043314219027011543800921522482906272798623824999399339113996271711529209647572052995803879236441869795277650422893730146428694701775590929541075621523550364481559948768929665336362006855390819244596320930170872476279334193760139071749236146822765039120439147423064781998290247724733615748876143745447649661575025749512395580279216388257919006990518863470574671160918427599107961043089405846579172708313988875532113171286467330666928212154194270826554202189928708382882309462063929951582606265513456536551348120622120135339821828447917692502245508743716594529603493591288562376654667948338597323361161112519334985163034684748373000039690779574057423909133528000317717739300497153009111525695547271320981396399888065606802902253861228388855911854584373439344355627429974661702608979072840506647990625934110156111566000147158797576900355768034737905109983307199426627038625733027371903725689318599020683773154647783292758340489062206564504465281205814723221838510375602140014994986549144773096332084092266057032951352605139245480342737202830188704478993759724774300885762906223939254081782821842121739491190693386950902453917144369428288685142319860341216633106255892718463690248092298793126957281429384433544889151489027943721365574184096040344015795606624706181326887173767297988233638294489945984525617966542936837880361149414587609966449022906420949226317159386073859358148000195485741456086370651316080467913429008341940109845757341517360045024180014262202739775471488449584897498072170173775276431928931702238491222928766606847319502173808721780146534504409599759184351351901156962291674899622086786477038358551264106668625955711235342521139910689593796137684793434758905258640178643068839218804500180210773641321342678981531528758798474256361883392753989170785640328443712116414251916791532256023449729960978770278919089030234092417214580927724690679318494143746988564072891837807928706505903292257134852405463737145551680438116593842476931039141988417451234497941796549336274135198398719826929628411786367946077604347021529517465021647917408327681575861822445580756325603367725851657010348533529547811375899467460498729352101843827099786320223545126514552894715285385905777784616540546459453017299213974960325410123680240211497180138688990297836733264478190816328525840365593016137692921869884963268951255809391030587263843653808262364455069543036638117621202239818924372846201603903417200659568328478092982197105636006315244064702187479889686633048600590723871105133972359394787728576360373176629782661727854522900924558880678768000689662575390437942569684872522561354199036314487860104965928582061834854755322877840434445950446582837229955794895622812410598007893727075832587438481233912691291293091506672994092998593514728938926767723289953312931046853424588194101546345392265446447404788439568371567834682034376389252887325070565062921076687394264249337773344436948836667861053655590023417305227973290375434797210127990255764658657280672101221413026911187613466904678206096253873925874713202470779678062444630570227525730486609986744143312724017228116474270909582051597547802782426184173524719138693419008059374985500428745183718784112443570248999782180295006237704490700209948883431193039124988799683314853789438419030322793285799479785966531093745392000171500796379829372687109266556405514914257928140738797666840454621954076646486592252727425364292635981974018277994675342775518247047442896015678744134243048785049589731167729928613060664865824066552488701524873601520115341157369282400767997454456575962256069660098862099281149729237861134655086874539154755602663826888299178433991808858485733163385296672233175319010234298307590667087864607708515201995873616235087960432526926602385198180794064254372855267747621618567071313411582574287305029676819018827478534907884663685484474791458789211795292621667913845131916997494639066326807313938302642237724862470840404261859885925041455414191530661472132961477419069524709037691916964625881590281222475974347707657438040414027626865322646017792734247693528593622511383073057756905924152527168260015595771889338476947599844396384642570767647368205108091252307744030340038871940238935478610709114971791251630524862561075033214430802078901025738125751087404129005489689738312477370447966094138527085155756140792567603269702235841043258479964366754142564777239449608174648024317831115037446724137577033911916395566942244737209851100580273720850666841636219306559335313163974905284012768933627790668627483111803304797010056469739323547934337911776966365377333314222799315726466012656411893974839377229398854666041455909451633665036986310818279121406790128436405859493378146363681761907478392542580660265101406124544284857755670269965514367867992922887717059953055932919982192797606554474702317397126960945004091251401634519235357278254663335546517691718542090682360957374490107705371955026347205907662119076774948118121553610426525274010588854277668321831222085298988544523563726134198502364127223493407798733149499344660281296552097392188162073086864972335085919167792128376366677764113570734442983197734086098753973025242707669043521239804974530813442236829670713264152594313711585560857742049594750173526095189384953893602894894726994432603270586740416894949333508641409249532154993259681530894825455299902662576798311827240375796517017165735598371835162396125280327789256375966480145100245410835776959794084862894953418824920498319099556374552395050504421320426331717333242701732039905743831130247371881483123472223284613006018996267207980856620686738404825556293813214277813744795368105530168619193214581439501777494221027763078496105892785441346916569458824813198543050799064727440111071080999158523211502057423426259668333838358346019243594002787617440543449868388376085421854153692973679956607563354119243239984159450274430537403282016610394870425941637475373591290318844210326703978125830534120209676449497860335110389812706996254740095389764662646380057291281272974213852604687566394974151871531854400853553716616802724362757439955690772786476116908072568088937815421511390286734322853939757983542852748360741314120465126043167003670064640126948379035500508225411493363853578086374476256688996928234035917853816652652116926160729226118282884419804731123771701428445377984488398294241873753459870472307774035233098695865246816972799818282999379457956850772875109092939184128687390659496891434132766399803238138728349306925380469186752606787094809796210376141872270156134408589645211647722750725045161307040576674739119410185658877371415530687545328878371687833006809276722408129139230366581246589777779750170953062530334946216837983523379531814501027318343172505131435148272131961685008308384145564669649443229310015010694384550812584317355921153628571155214753711835197328448552151696613957051424736111750669978577274809229566946120213118236489897349251050537169965965976774621919775594607510709704620864569567740783838094221444222815337795992069746013213033478230429730235377588860823262142132687969198322401677029917881468208518340492769519891919654155873448346064489499188379958768874545709563782301351785571716440284800101482138946246506159212160865013813385284987234416759403954070545512848543244017919698558100044242734667499856258743565661354781168938153796633720289553827441208801881347583711431936470228335559010867727135576431897269056929677514629227691000420049819534452681244398124128677397022200946759311790170621907248908491280898668888716009410722577677612389267962804809521141276617586536028178929300527815636644353754978024714673583145025726420829112757802684449061920087552812217377832620964974233195048467903066934065201997989741042647161147049716085947163777284863639986407575342450893937615960182834812997390059803065821593578547310607134531182695889528558986578100236343189353991475177104073014763526258760718637223062599895065929061706350293854176617805001612105424315818760684351513502469803870895163499076010188350162021590223658988032583602835966483531210538357583511947672839987108209058687509891583408112595948911436624720109761267176356834663674292042272345760855126744705623646458573803711388394776082554105388099219825420990349274726752446409887117987969814319492962783214110714592255151347539468563270601873346549993919674148121354428295937457057274359220113602602045483770600992670115672532805360064321033280576842671151647186799868179409116345496321876843627990821536763216088630578839735679723055682753271993964662892310968337702650258231605417750285565877484263385501225665446500443371268509927029525338228156502140354886388707113283152619668711309393210595152949684325179226310740581816170237395563053281203411240876299909072139898910575892211851417745724158709668429235092099237284515065834897568539290166557389672787029322851502252753181445267177200730859233775708943136882505153557163532496292853696494067948377892387344568567616660075140405172942762860788731904184996419757477068070208562995040087704527471455798227894715350567037444434791761522290405078204752219518521646280029687235706310598486521341517605904642229622908414927404089912769854934897484489935103287323968907808779974829563112083775629085263794439684902950851331882620777574483374942856994786592140523918059722541851748662392638722095599713693885391227539421325423411882963545005550430888823226546845986797588072108418332167811847272622071605425480331169062677738214358588951646451701482875080993189096203556617211798245757101676479056832805050951068528418252046356527526766639135348359507053960933922387666215128693669328498935585096532441046790597454739953471606737897179461576524214300866733989231624702084018218242925289755852733135475720302448234687328970449809423944016614098507518866512475118461781058435509478869140443478612459889506082461810923955092416329702476113516207859156442114778840079231040236340523879218320390827143282019168232222115809886658685834871902055781521743867419844768060081252809718203083731993067839634944063963249028359567435514764124528794465592735891702757689708935524282617619022815838029526552213162885208971233880097427935481743947266259638694853215731414983952304906696275204634225051472573577005937979165793869415878807859044108194616756030173315256200248886774116834295177780454390192956900985374386848482094788368286640935252258947434546662645915395373013687786779196366564896609640781520561994871043533857355462522537494903187141438053575347544495288134971729877680471288329901861814582744415962566920421082284540198970409455209016096802292620642372710684972728899989350283461662344707412586822173338659432537495641740978391659827175601105817437801536507176112506857169947869915386234660888059901248676622613830747362343007369493683306888753864785299377466980782242402692568814638677391967900749110080886563905929079610680729660804177468293010120424823382821908143168880970804560708242149882137364200508519566215055235085305779265538148682975530972019686027817337393176441696701792680470664112941411741345580208129212984633229898794130354926159579883282298690560309722852998048390527789837391492003990964301579407484568169948125417734198122108928548704705102848695297699845300727741786175667807384299645500667856444234801121909100061185892249414527836254219456693936856118134900950997764310353034836109649301848869481822056290161999560230523915603386131181699796926476900750518391847309172532903125203246903641090184502818052792683179358064312390639411534977102894811002838796252198353109414612856361525944017613862623594420158898414911952287160847829766862248567753109397643696504642833822480619018164726505998916295207852426728962757194603295904844742920183936010385322904109657021185963420062665682570927296091140204812460517325018717838302329012383661878306625039587198529768667286463411943561850591182574510352262370140577752613752680132576128770687102572584640269361179791701255724378160528666218204987649585397731221040573567483026652189107864150343783051176126707497136587312626819608411005139481877927069312233995152371302985316707613877623678691251258594763135755993342220406973477657560947081228927906188262552970351046224402683061367776476220735247304384308469238089628131310545333940828788857553421807732013593708898102352555876875174436369268200180908999384136117961452063559676992144063260764552729745094507442930261673694355125916816361378497186864347841176804239804284462170871777867511531781693985536619093637657433366127226351679313527636108215593624665940262697373491115461803770146809458656074694015228897678363366239738612625818654084703865822537768140696630240501623542410460689521352150323493444349148918088989382332669581767397548136345291571461279371914283055399815051010034415221015250268710450793231787840143158362607892124114304480647007675202141631654419787051691473868594922452105048373426883545798989189219050293633355660193177153695279218471661373768353432558709854847318353405810382315614903979709219585880545250317608359554523714553833996759964562647830819952884918354206367336156817053527729107834866798211666491601634731010809932449766336118513928306273858284471587232782329832367600084038237238394557179395492019761374742766546910726414689040206521126877946696914532554719267536617576252907913813239939491066891481574784213164221292563996037780873426327941555940862137397022541386992680135181900789411286398649974172728524452491625741545553003011860979187192257209655923525870083178755170747301362924938932156024058353768284917193456089897747459842133145857193156630237092361015983736185153177857396314557344122474155747145257144174118959805606904004317010186867525714396170111263435416603225954002837530984942028868352910585666784499777259614149452637028136484410214485844602452339030442405484586564211844753266545691921261401969542227623174636428525788875626880632950662828652272781792927105861793765518820691803074332636638553009475251898345207419485996822037595795338834750010851545291104976878718049744378394905259449054240233723917932560674462678148420620903934795662743441004749842677959327376732435773555302159011198759013241758726210273697547407250449106665366216999438057059133744795411767754333751386752059026187146000294800636374182206640280655776472850923446262111518439809662582984335348407827386232938205800805385626903416575634785758530988761107203710078860481243172247537470749351840776240793399804068017613173332315499599792455402765969772235216672060937096216548539250863833955196969440233273729901178398172052373116737525953146991986822927646614791420002256467603994777907047786187917868757345943626111130773628139516307913135363617244499238446597847028061497557785122938845132213139520172293513009319493000869498003208244791056597213288429189519851240177911702827733510956569401190656548038175968704280250156423011114152378953096672911936535645045755171700675506966880167699628980492303870302734923934870717743249864560836100619767637765824257385829808900072341643887121587679884545018667534989448928882757318133710390933584991898608006511367883468012787262795754450286723135749112943866930372226338991455391673272908246477955599361366866932308165231305822022543650272473550418480965782151526187998984300242849266699798559408911194807697519424529671839619142518020768751810321215226145063941103855911395241390396674144328566882161171620489275736739705345416177003959837215919020714780789260956615754172596781974184209302670736871702918857049736112904131140067142098246982747570521593004103201465693163507555635310248296647091326202537121744870472964918882771242926368727217339563614907409444044075170891971852612052007389513264471073136018601014762304534119676157878569592278492722392741482040845649028213235970894635227774618852285770196862556875822711998606970923998814830253424622783975129529177152846415722768059628491412148566937998041708505554076366928711682517968420938895555690476158673643214780641877025727042256267804895857935615403943436762045077940868001040857729912014688540653620449803301737093083579236216434214122431615608810483742373341007141803444943406420075465702541284620382551882133685659759038822183999601267670780461930258033047340029116082164254212715609442939351550541237725013243096044414343288728679098097681383000503143262657393852025902003939916732912642904775145757291527752401592061722496368330278650150821681277885184327847363409456027742983057162034816204676125567028537449478397825584552640617858061237463852106888562281378269215835847797534263802806387276102495847365607884083823965699863995239488088198474768203583815042121170486376167610682820902209921231370115090659147893616559189737443753337178671806959286760204958165195236737064113611828944787598015859502394663851429967990273005252664062187774980921253777039677240134834084514219238754015286484764139586771274184819303909416701751077562647133100988132123855989573330610066564123129262167665007496139911019754125772491048349922612993838394108319551270715755501932623135580314162070051997774006167584538677362712801276205878231065211880536107487984653758046753019187249935197936034545268807004576286504238004051509414675527506306269428133528904802662078902325345838182503095267828490181155534918303467788259701523020113293588222523922193361286975455983754153278130325542003267446062130117955231033377966836381724164506215344365632936537407467659946171775816717191132993117514755136965128792485038346366549386418060815274043340702045641565470207690102790782497743235531001976986892493627300859746862219949222962622604520797148226161708515338783315611117397107504642343256707083579023416029056535227073426600130759852509769369451288822642772236518299223028284527954078137479274446991285948898188456106896764245268779523668758474906142051571049322919937482837251915838841891622397175082954576819017129853462044630245964600267865978429249845837789951435566549186665402737373811027708771713574461601646838536839737887967974305739325058765187933637157701486704323099391565423872936974254260864627010444957037020166581482441491274494198008455490462195584225570970273384577496112809094900694479659524213242731859237918796642179343125819408468982127854827706152676224794943039114267269840801727977666234319205782650976194970739013313492377766558619776320938715948045755113910866671055661446931367363518174584356127837865293799355250103396121572941047098354146451392092684656709886722887685633406543486016221800129441896828512131859295055062457225071362422245088902838782363214890706725417700417763534330572880975754206588987267164305940047900603185654232156329184548652679114499944827081259073512693016202014701360609728036965867657667761420014654409319781741473196490183516141022382007147159337831594930314284831513909096733838227709893536106168510591114349324086632413377125018256282884788607465094888034723035644376308202489844351085528975350222040707196552764106789431371011905791858788629108588205997605101012863831084854918707199458684388991070556322092207780620234337862519049500778502239490388863392667929568909684263337025413280147503515777000117383828112199450805945429195014628431673849159862524260960657443705357550521331618972430544016306905694137846386663865552347120398613348773242381805579705432540071541857209592811173277476309274331655199244241872473976301544489741107039210945834220870969681707248636609384024497073462255418282907601116516571081292769126609554626557544088211559292632077309160506089065277436028840076336460827413069592384062710026656400777149726383424489316162116516861336643733135849564871957024401897369792487993249801452943294159568967171808081623521493878523918458420221886604760805536529407468703627088291877632168660322349705980520757878427118000626408749907861886433505836441886604183215286366008185887996746314317430080183710672461199147155570636108254651690554225886998465493816553833482471478790280611292387925025389447134380415625891975292859614805570498762520089478737342608268057443357984976748885083270689878923445368865185027948060610711698404047588486685149830013281433235249149417325259397980000793419008127831756762223823943848644098454276899762020113312686004500696519089353470664833661185774664464157590861424789510453053923179649744300917151624394386448034438387171427500314638906314271479228364332884479725071902281101134620307753669357776061432607133672194889091110260639820708749615770409938826968129566943635407731856799286607373546570420175822966658905190356601685401144257793067298346008552738953476498769134754988597054744748567193463019162912111743130065460583389594826438902810077094497886033331335850643012736153383687660935916142717604464970152247662335043208495463177875446274066852311940629084323633659994506381523049384443299608863631305701856736662378699515113125618230934368043482926329474471467087028406824047122547327705821417369588990432860448252500162908716739909867173171646048534041057431171007658128760710510572520962412498135023625322333593830414183797989684631909760894614971555980428987243013298719143818344790124505929259406128364113535348331399827335381142610374469808585261881063103692037734714578014604739876289613113741642450510190707223992579081807108857148834148450027166678784357372834083468281892215275299802447411574537024860329850868306507808886370022532850497295831363635798042510735027725158893290833117107211446831001382166956098529524752191166965749955576882788488974062656371221351643378463568933539014738020506777502026277675844103508443297049142008208546959866024587742815261213555518306730537735605632720875837439358754087752939565426774489699586944916285050038265765878855733056736587861239589349200014108379976566141806427321280742178442015727406245348117224190835010836361991583334930062513132489196794218740304627250732569822974601072333531061171927330484287192267191887150118560988563582298341628468820910279735547097047421834587517412151370930105215694585563871365805703388690184694579015171302270046710114985835078772229646877086520940671769099320300926208387746221423884336056483834557852628768733782956368658309329253553794072572100030523973152104758600512522994040024782643917331194282190308292882613012950154286065454710544278249133918409138913754203897183469836025468362280045376850383092148700645865199351995617770728088637210233963548536603221249520011724965599014380487849592964543869673127010051209800968723483381226169965017402472376944358112367363745810324510405413632655487856520029764451118782198621754005602937527476088394354405307518394576140112847023788144016988470075171171632994859070422705347203369766170961819093073902252746145450451745197971089227706197537286690382265625429776969087164689148327157573284090858851028147714554153216986274828484904947736313462016598820929688979826077069067035865112347385461610846494493558130085167251083159078006861689255274641405320134325183958309807042159965596639636073936087599104658407122982986513543061622592581241874226839134861505646999095473106317385134855622143472841801103077569242185025343891244919574117369198505414177204186986114880890733676559009707823783960007226267114470256210542167320371761481914326411126700726019185118919944960142207105045540944756975281652096249798771716414170484229152612664178675647331034811562211797390254762272670353247689850728312286479322105016235386993580506080814362422957032444715341681298666719021456258005922926024976603075921327464905201557848785065143120048708353157108907096651601826306495282552346035408699318550839160127053245663199850648742441533632599673676594754321035482605991819469194405115041703592826398158029097061793616163509474755066464022614704907374148403051881800992899560014304614724117706517073191972681034352508365471264411275639672340009515199297236743676680301200926280499972013644963741638115918115705457483077595873304006035967200254788359144996998635169883654452576548298067974968977110571143080486784290211265354183640796150201444379297651786595260897520124124352122991088816087893390649294366070136162850627213982023722304287040221051439083442625506536845864896714120170029340754696750406449049474098618757902818991082523836162694527108238002577165539028380075336979898292736198047606517097097622936506790879026015561821064934071084682013526489523779565557078286653381765202375238897042061321721169435852586963898178282668040989297468630459902555916978378924793718102101298523788475526640761922956539881336536994701078036969854983230618987493095555410936494843689606162889725995183031297611839257156212449885369662745660030527649617271513703693206828774525563496444764947535161590125427660547903568366605914078540571691297121895828787699801380431581019583714872351300268861606840699434854622382846205086218108435852577589394577537045639218771030971005150906415542115356651102191996268892172963931078383344690325236923937970506826572776920107459264444088640661862970495087293742800598267216332191711863685696743393931812933437215119619944943708929276699265538270124729484570101316456672000027718041945599973536688900235534973351532070552641311877553017340578804590370377454901214855882917271204327839573038112600195766741626282392675886613101857577183625948442714208358160120738435818905000527080891325451439152580480784556276733686256280720925500439970343686869405329962145597270975772015338306461512428650698700305811030871780015553075391856581669901235739873853237090247589006869865499643808056288222589534545950444676151049224005155335140559085143060847759687346974790965906761373141797295983183865024974652420694534767204466586085761223990622075803418776944529198810686907506016128895102824925053860226204153373083118511369598698108654503706528995843312126023354820656770622198732829279524394717169616286265146320006540234199960591400945017464944038448566464535071548812435096703118429948974928985326192487423960154033344163643058241499461015848513000145318115097247619567114645793950848506179194712231691469690971566443360859246699487026058937384033908978046461450311937773027349006561657053495964014137824947979385297358495305063314883003132853501065464553741676026533159135372233659815354004562678468314743031932841103504797617170158174892758776481285188607534070978688856465909299613555820724420837678162616627740395546261478960428298403553855038941671519988433547466773651792760102423315051810087713082257522056073481992102121750761354254905759861257104819543584163865143726365784851710553040182184820791882780788548161949672191220105856496044391801049680555816335914177683091584094675809070092145874058742240598210353810002370652447896790349320501124451227485859026341847187815223646871753406641010610107502058388341803929459629727341427210860513587874635418585651279021019484752330699229602971381386881092640361450367010771868426655585423082622070563156014608883407467138250644722975881850806232772008428322156715084550809481693400471347832042835194165161629023666672962583919988764124505766045686580112099931041248220963927228654669359642641253558969879532702778432278256722578852390418307925008374869580155383271464658656270829637776179952524622677201623278349625224593464436278638391335944620992254848955148485095525421163542066446193701948383135489906584975476629508922885111872120665925286431128683301426688208904787426346512585797322702789526346043479972062375467659806661551145377489005527756223940136955227601147804386796078450302650422895184681390095729947721746106234945866281431326109368248923859047425149688328326592887775604969755909561419736847755601257788262975583635710000404509974363631843344302460416803839150307064137441743853073755746219069806599740672902934330881515657114977249908291156818157244821988148232792772589601659631107042788283197366921000325109345078930476922942973346724683649565458404417800792415330781297805076190592410358176694085932189809331900214066813186549925047075863905238683601865426157522429492293382777293471063260671590826409942039756438368772607635157834147506653445747597896451232583926368087404930970390083472447496421212045327470230812286049762876920406694004813679658714134122733679523587171716933088260092320737202546058595479355689269260072985180209794178758779512894874756002357965195899090911777697915946634361947986682469480999862015013076849741400215740949380851987531215510356377513000523317458722082600708635521544656238900468273607957599442427172107045513683139393923927670894468065749573323978853218365031106204583039401509739332871617460211943157359355785547779961415063747178156258885415127390021220740717716757563965785800847128932615553229359901509586396969886515994170923653441505504927168060910061043381263298940509274872277636835979128880823663587071045863400908997845142611649693569289541874503158684196949007454135011695221356386092846066693644904571858760066957087741537382478017403589692288045616157615365973234585141411708437038239734187052705805406574703149359707717867144255262421834912578591919393063646581894876503802484118114700244499308269845348710985198482567339202271677098362260584757462049818623541445547981681629144950988375553733981555332267074905587903192376530971168929856114558659608245454027817826680663065683258126976713239884792494762369664162352697432931606797542974688812901661610824596163509917476639374184920283521024057743883716524543851986941161733170415727164913190876920066629145674939831456956300850905306118939074491556085626888451061231732699088517761492821961838220231759398719152766822711260545096066915557495560457781513610321647048502692087362715311101084772066040690674897127883703352903031551377766960787563339862087038839036719895445237336466118141779006653622123986972197755897705977860349015780845794612299529814921364463685365404181563510264683323809511910079335494103274139831072047648189012980289227277561000597630256906079878070984383804915122614878613155652271684077834725643742317632285495565197739452043303648426714841058375897323790485697805513275837971419662333966842861611806015096565484042360039047092462963479061551428194049829426017691467061234246391155593350272095000943271474984976823485143058141005836514776679370495929335015514062902100949244695413942763691107670731715243578575462921391962764375602106095091794861292684137005767495602824528953369448250583848866744157869234733622598077623855160450749619902457904356178502718583163937327087273587164618970709458780074698035708150841728820961235595280458562062223928211853258982130135570536287578104408971343296461902719919515597334366286403860488741783509337397556811525042448134263412110363713643789768751197792063401778372978722150244517342636463023486799365844735765906775060691537989536780835355900713210129492326069392807761946697919338310217114533438670965616743527407002782460963180871067853969752259817516880319938370002189225387695331416376530591407797681602512690038240270894080932062727498034853867941785119626401049421585125168354283888195248753507068405295938808588769563606364821938164315220011452198696603063475916871681312814623353520321776079666372992863073005876125410710302446404185326768746439545485599907398753915327345058043414608135773951516153294683899937441019472559768270468794050129901191928656169137443308857134708112934098031608873749039013103103083779556855947703121757566934318407609616403051081087159374485471694370840751642712999830409752438882117137885539111143704100327215751477294847181006209767407576125162081861436802220972819787011997805337308925735377085708265045415425170984544724102082121105165428464384227544192445445553850450902939033977650283575589327583399165665887731147850511894258229800170643978357831624186408665094911818886285112228366496036665207538715900894030228588871330244165111400977191686598567210470596722873002065422807704332379969317170480411187657430784931400331603818197706415309654358734538718234595952536372390648093638675845239041252720197401113763441567919675363967271988956996023475051581033213036619329455407304540652132373458521624245493306700084889329915333763163619933456255427695597205893872461632712354679960643130853066921731029936591007247860330741921230950062843609566018040069396196948353964383325619090925858538775558853367076109919833236770031251027000027955094351860840168695745276412518058189923394595099170136152485053476238460437893809525300575838426129691438274472816716817037412210182052781809192478975750237419349795875852013473043407926924424874895963716777911126246361696176980973810776828789511782183663190872005462895949453645283775594353990145221848827343647317560602252877876754043870759779732100099424662568574583412936073447290503891298479205027641265690128514134258447692999617457670860994075338382153657821199125161297923396376538778484558769514088978085010369576253684459684482587645422763571108090187910365009922245278361628080005704652888986313754018749889321023255709114451959190812287171476268341078903498706474002553821860737834110959190783817466690970282143237455395490992129777959959016406212750040955977887287560632395693271868826704607000012534081983102765385488425672145701727667626912023289652937000763372008970674364588139920304428529766519127301612156495386856775667479845290777703531747298671815568005954648030323275443380792905527337721746433397270342443715019741828455935017059024505560862747151336271935728135133513129186360502969672960575570521120187845084083887753464526528482703627228802621139227356633069803122068750329589238667512237199455154783740698319668685856069523397383708686334931173949491223972674903759369152044649822589885392375075901458478817210297411785499243247151102542237167875068166178805030458481316239790150371348552716051236540265167215700958055810199537915708993909936339996257689860087489617185526372508488416877010305814045199194514733963238065747637030276509339915391269946897743622858417196914884638926523528358795930714588296404408480591498307850091120170714393280310321531638299195285032256491468581350733569002717666410832349047113765366944595851088835002108192363330901399364539551436630211703561974398661622908439290298998460689627477024354064487767189170482549557929559939754336740400481922492385356602772450070887726076651743667677986428314807281418409313476984411998919426043859267884381887619569393408740847203904995867321813639920361144043024432228180038784042760000702038385293112215816619146631005736665849713278052252895487388449813691555961009889530825769648382827235326235043223827969802673491933057583910562566654935275157612769403861044823555877445663169551347955195523204149447213994581013995438592403621235900960883821742975081914561013319264349998186197364984788847813122913959576894764351046009637940373103969939575690003170517068966233079803296279277982932026844038245543946986679530525610930184097544944541775403868434359144017500683016818767609006369020850390516337128277702125266675542886481888265034156416454158763848535603669884366724611053556953950195836235296147280994762607012141966731732436050946806255113187224166597778211772632384738507025908661801024304584404661594473887035704217554811142288640962575418339281158550611851689636787535046939983665286381720358310204125760441517584690966948443821390341207427934785621383908309142214123008681185304914622711291199874327051959813276185509092766856127189538648232967536730372758340120594424817080596145616301191764264034047522930196042085390109972859775948173031988495777226302675798633806026293012081672615539335899882878619687716799433099413139648258895435939795251191202887627167254993334613005303094634666776625634395180411455108104341849424375296116341093054600520261898369475162591666266669506219816540955285167621039477480633387508672056002407080931274692986031858376458338477757409419341425560972812906464469284270608889083116564624069460867421099635758983602529824901559498813309261012227994406229441001536155656949599640542958423161310135822973422015166643796722609228332472345877997539074590424011964085196888550378162275234707700544417261415379978792161775121408073240035008521540574309546530596626155695122488323427467617002115162403095744885315899604708723918637071895313086993827968294496120735411773556926400050896902757982608983908534116954333173958567003269908281976705395321379427694009036419388861183064595161854227642728971479002798938459215322684949805045153893347609551491324850179384382977702475093290452069598529231194692413453965308738329551141933521031709369055298227475310534200160652197082548753801134338079595874945123032621171624443411792391842553017967212555384989113961729182712450168999853022863521382913741457915993138179640980334623510913430469499583307646155608868827843603729353244448303888436774913727398155917137483252190722363484511896392717238333553450036852779081400993804265279894329289860428601246408402535471460176229799449725025539178969504653168744264880374523771016917788416324380828539556287106057701240380765330891030618435016251508685887224513272151029561578430355977623064237961845892479335319496625398907006132242271811777688798254735587240447312974014318906134710979654455288999521413890547762707027635636940082289583807385573439475205121769961199318650439546018730300528540377789784131368447870093143260833555700904279532316823473933476480478042727295287153879050140114252521257214988475186676929330325119175142677223042237528982403083579181027210544164440021834855269948919075243613990625570099527801008438616697642997012559720189156677750748758996853308335557361020449064692370958384558534775964047067983031583050106605061280925017320739363449067218291097326626521801214826353604901421864155330552430027808757221798633628147259597765138805740327310364422298190168374260659396929856375288546492218243044226537071404929102433854489142079217010677309920817806504479837965572436144323791513613324063193943318067715711181259138636998751810574784457367566186145934089984289833183721219880022408824119814650128885529699263372581741263023116569977980593002978582623978528062373837045607346554628090252332034541397081756419509696922127657504521049187175763464743455720305868631857482543898900439096930417034411048290305130425655151975234949824319907562878483556404992425898201973015680082292121004079447263173838056492171956107611746824798276954000143305008323515709772740794432745780861408305222331559585609494779412806215100075608583521192861363701873004358168380217351598718200114738255075922749030250779346377103668587790719104557809910252194307773177470179030820937552777706739200353878678829863775243390287143202692006636676452063408059684156074031030496600475077359959553998539436192612158280429942059865095350467753525939530673246247206981811527770912490343228653177174549104591176488838752700426722719858859983716033278776982802712758914663244565005465229106143483532694081964912823505816803910074831677398191982238667483202761602059350222198598990702757147753488275893575835420671399372369511695708895189028461816007925505143770566685090733605724704596856181657728727283990559092852230460239374108480705994541008872907271009091715121068020319439806924890731136754865776030079688319691254191570018147529611806121256467733685237450206529347979566968368487358863415484400269371269484843062756591798042013295590631978605751396033538969103842880388897552134987845073873314373713275775069163106583758481732944249892122943428776203573025662041560958131723619085186106560451160550786261711073635908226635806273267339600205823368531738435428033504067753350733927652379070488995887551192859125577678024600739846111466895153955233937015155814077177616007982932343176980714223939848783408437426760852799110597547933754315443099780219055755801279958705902743038704968810336311976418618739096868158555110243912279543959886395146336916730336138881798650278931141723027346794801403408360668402002817073722830884245187128590315835888708756360740652713250436438174307992570397425775893962285561361081116383987553145203286964461900566513279413660483497175612704422056970615623875793314299629950103433083395290873586160725111233067450875070854964051002194965264959256165408841729072814429078128827512669535963310980992972057221481900995481821839755615593405458220498895827491055530189009544765780458938765602115756600574033398667531049794130449250392830392325228712168764004132619150595583350475972261085071850835854737140157807909251674397505404088502403716145598738331604765089958793049533797886294205569762282419803128194775939894225465156220967002156834173464866899317127784449335497213217766343244397725429575596292246195956429289212308104262062063011151372652078510277944952851914061539152768062830691598757711004889556538959610399332188155495577161386119806137977815436951258133131233585743379926467545161894640683759243950219295087158516749114827695950306822756614302286876942949977530584001148941786564332317841060283239625262994253103176012819453170939246974580128799220493842498585813471505324915520865021315555909616101861055704216549366767538371804624249080771265429086048495515352699463571890009664344687539280808601950181668264429943021881603983776471720583071075709788034001793563241933566093204151851303101540356397717523477647785634741271902072252528893347360725024124357993949199436426368314621869254858509401607819636027482449616845202208537913773595403542372904844219915560483379512651351625943670459094094846233060540437717385055766346895467047950650621436853879811250109772609074978040960014085596635979651997911298777691987619216883357765042765044870544966286028764542887106429675716953318323067058773783628042005081411088881596167058821967194729453772409325925897610895858966804353185544829191945258870951739493527306624525681455627485913828855214486096383867233045559477062647612800080041498163657037238379643785519519730879138829170351506234248674727243105670917199243959536737313512968355076341203863580586212281947725246617939759711621862177226382895632381652661543387919204363329964475953406017544796571195613460986175836065389182140124120425020654024126955014068350020168688685153502353386317087037536248518170448735605026587733225962915262934314457145678735791316641074895290636309567982358210996925244698240196259314569692015921144240289017389285305289690367660349993501339178755524345313792312695191555367800673006068924491133516337114213958438160988558543426170954631478780353971824078003901980007215068665284479503860368544308730210025273225450068745327428664021564106791810909853315436390054629472259292079782738860500316613946896959071926265772997979423620659384663082281356332021944046364124863828398689403137839912405752978774286713236786323468144905152679317311770028193072963180932895817035524100935444072988913394757627117089068089522823241874991380539060290325360777544645193230144606117440100208320592262432110435092030817697070716906253426930471216215145484207369432988881417152842915050908969450680728125210154926997833015574839674244017819839709787209008639732816532572936527146131058707688785615913771261947439726301806610959655989417951620096784445764873273717128155510282081365681012815825329143726373540909312367302627510513277843189152044044354355738174437570446872351770919894555374660267063666389616714289693191559177136916959507733973890183412895122548745915227525608805391236125801330420212096385924860591274620148890608879435892091865128023476799371659158957536131024795390689688771040912235311590780610294189193838512961943976661752776503268368369208708215895916189455859480969277744185681094060104953052018106597081083449735063484355163597332456072777178051747523594931268068592499288123675576227584774084922748998644682941893858434857898094758563658890389267602409521717187186679911224243312191008215245811434471191099510600854399896766357440164444046038856044636124785923664493241037220326888478984694219608871853437588472560876444228142892397975986956525908151462410097446769649743764563857250104089358832645857430414407371123575592812573048213353150213893333832581384431218512515529370133588805399296817525857446755849994811057668784175748064711939825129981326749985573057828723934803377428374696737029667027480262806018247490685062224294953793253360675273412541885422990642956514705415393082559751211442349032039385629467745618556486217221730841468637688390707842334397826592251869095542888372794853995635935625951422015434195932604633227889209204747269651968514413058718198993094722979888390628180585934536774089534806038157857494895179066625553256787183999612451470783079646313483341534758869132501008929883695221329609967772749859893726830004479260027380581015899864626245101459452664876397044515084414997952394610438673135637940011031789758126116741100404678775042816385131994843655470954618681056701406763366095994640564345584594837490330181443028646370631571318392158126555296001575630019439405905722415935653413714597342300300732932459775923227101578058403460339605991609010653159968887663228137538190557830381185777050212294845012615111049345267906162072629741169358752827672794272506464308700069886446363041202497576267865966441456623828917044393114075518274880350806804425137570377029103091580232631671192711127468603999936035876646376360865486507966766830994556770292586706741101525580990168772693715617862229862802751698756427444689046642383817646468131267313718841570621572601540591970935580460033878403470015551511653623541492123910375033100331279777734642798212797289614418004002474642356541409076760147733395125822900975574288240848030789255244658791784973209518610479722041495622382232139833437225799700853906551295192574804707744950391792347699944753466629288111822910118328432884576558271134570996970083095143945924991237745659585138559064796087637426012166618371940636975317763745848331739758720662449357985621718957921936209196541923644299686753213733464701625572403697315680567389352611361441354986844498585938354830964367789082077286191252155321402542197337941019716654604362197831877339299820282723211944815820821858408776261959165737655973475751799888457036971502451026582467926396106156362995605706730307923502739356019156152185602820928595202615983012549681913211852640716248971788111792167520553678767322234541638005898742421940037789791506242149570883521850609059275885102018964574715678963005719262597238027165521479020306904362474399232054241878161690319541314717168771248871379457092254054419247798105394858225028840022194646198548572021718612185332742588216676910826516429738422823115804608850583276913297437138717269378291375547064285418619613471328832346748353133854893167968621120192307044775387976585286598491165287048221495974297642545653814238003591444503478965864713762444608988752645091395277926961904216585823168383958326512407440265931952642784878422000485161947426550307764532901370758423548863497057692921409668902523789204189891698588016891959480016351712841392055853018117343643763617885637294794638095246215851643830161514974143532023828449782743109828557280237748414442194087437044851279118112951999770453783356065497044187915150490541886576421521990130741445535166230153119784221794613717990608457425651528961475441739192519045283416799076699636725800045557241956901251005590307456423860436635455397825382032619418593755592581068087906979228950554859194074544236125352268694346832119087999633731510369726175767165870800364621476402470166699784911334271453209951298303850853699544524130606216843731421222821869046006556256225478000930039912124390271224662813646804575922647306044594617815969667376333866589034602478952206968862947606460646036481671096114207760089085690887282942168420203930125164363018436956917366030358805494758501758075538314386349910197934495290345651489068658510092797473136534540806041323029729015390870614067383614167219537752332180032212906804025435346070302165708182470118145427266911554890904007101047665254593808262007547118040049600984749909146166487135089955750638434088820852209292382784957233016970238308677267261932302448030974554411090036467484699495287876170014584254961289513995863431345864702425154711453327782954188236305589414815203130278551374837344615523984393646809144012971911129245317649335590610663090865379297813777973540438625050283959397535399746405276879721408791883118114385469756138446233900910527376389398368697054184679277477455375371623453332998209068025954415413193044837985812727292782500011177409547457998596493716625571927462436660298493494003359561667963049575144443926063336021894294023895223733148150605769724870621729090150990483873702457966593527632070561320289742996759990266408513864440650895344950303592790775913186744300702894876223160377975550658477350701265035634259068188971492669829575783322949927791072555017110248457533310189915401980528439252074443102126324195564192540576084870419426465840266741475611183622171278280922849417750252596922658764820261173221977919804976695450267525551766961362421051124696942438628175166865103162457033931831349046772744542115075565227615129376547942802014105710113079643975683173152810219878977526594509634124827550631572989865143133039878374755194846605580606095544411739007377064177199056702467543160509772712591250930543301213066284318579960618422224370060445981034354892657424828740986335499815018758157623137284009364114896888897151858595065035340671135677006711781011648813560630829004124746528520977227755124000252758849102992734633754555491515371420306658429929621529783369497701734366745258478694239589806097224737897366871675592330521111016949049672929039990520855734067273917520455401332300708156560832872639802421080260331252876189101512071796494639524160532794800333308691741762114660847736236163054831885427190386493716066297175936955773388135556265756822599807332821271779814097870264910234679673856815292511797145244099068194322796581693733227280887309037347901584489304335837797293401735758703080385072893632298188496218660094237675002465961882797128203966795658934313044120181468829966196994017990036514865016329630803122734270656892895163869629651998469263694298407915336621915489021285415270395027357018871232139176659865095654959114364340668971885433828520123276938317979233718828589016494424464277750445770488326447550454236808169706211933226782272423892353361593689257883792923190045775159379560014682566744591388280978385069724155406363742227361466452421986909983221609213041314726814233987587039175168567612791398619076028374389829816776995177091476278415118196987511687813289405341173644296015302810437159392265027122082244525875802603957266155495617712073118254083348883515389324112471792971011071926414091289966571196821915909018758894738880717352793983656844722075434046062195706818238134243674850629965154501748567763895308674637278022074983008307450530720655280844048530452491092244235000495355251123823119711456750629521559191320195079676734883894660270570600442793794417252495133526041347655988724184105432910880337947020843277666413107278542672336347800048588633709242856054616326355641036242831255712283929364541502509972614684002079197608402124071857815170366549057628323077128359451311841521906499328827587427727480739961175025209823098042477944568921633850121915515076564534116030261082349862240417820203863506399558408913502933468085459392800290630350172792704436912416520426266461383348671960838507710649670909482892247287034172310567656331486137186688438445876273536199514914179092654571606657774843414138014762388374267360457392286302004149494206941278416529721291262664175582524248669607270354068858838387959463440235910317771201948292166276339820166962371280248613669996138610594071442887907349386685665178385125469173142507622135139405604707811768369038018109628617788719560252377956853139601383021859237366453513519442561824740129835879063631365661919857869408489435973063631508619915820275539604254221898592619195811261840902821974471170330732803800065817968283994875890263776422716234345300270342072665259751537858001512859444122504071971720533497480572884911903159115834593330158128086060278002231423478755284121577491557230984087705634077424473238100729231484830857055741237275663831257039903655801926289530413617604549522638705514478726043417920318546850982455902490826937920986104949422941179824752371992375432993439580060108100741791150776506616588531246409255186947190330482943016115321607310726935950028000910194626278969650136778843951669389226685809365393947146388127666416503581422392859745082684090897594541699479345014524346813232657771686053240798487655749497348799939066276357147925325801519626575231991698672467532773638053037716257873406251257930246972516711110929377937532864343243812448752570701743524021521006572517931687744852201266851392559970339125514397404488484374899194461698373284482588068824317854730475612097964143639261790773587958667376412736337114075446435535142355592070132290079371508017968119057702359838792384944398254123725375766957202313362589681429685041730160149157681167624289003541321861913586102978773709743451034616120749550404522177099128330782645797719995488837014491700331390166187565168813013613422638487715770250740601609890118633068870921248567500956324639987777906609040159158706346523249353777225483738542932067748187602920455144483296666999776118838523956853352216851586464537913661646291186836232945629099197392191100687343823877639939397468806381214876881398004469856459282810060920520519465612333811048143223580944233217167903810615843476098172130939945972196021607271557345054873227393956567577578734659474344801604783280949964345706119555340118645443533490881422904014510428896825377294820370210626011480046248207025426466207477014675722974823922386952957545437492838439166989028487376575351307789853267374422878794742582670671997904582258817560506812655832591533908588727439713640813413843592415348823245418150222295624425681244111185046132395245829948120243813515210434276066110431443063543704042479838542710354929935826717106188274245007532081410526822038925858625282696153722329774959217712096399686386240441933312990509126252668756706227618174187145754612696585818617058590492767729791237255444017295101753236214738147659896199529151634666124062519111897936541406273368212233241220003750622087957165433548157435697225587387047698381772348482734584103812662912695188494300631281407317104083531782804975892070958654725779510940890715279539488814956985543225786786950489421556519526650768904039294032876967606537756333779125153250717775778775251438724437362592857944800303319398939400553766001351871225811396150162727351405988747932400721152610133565406116577687835831890493440709184676696675767924652922286983131215997861019095743646190255372921038516422168250161903506831564149993700684259835401493442937303234670779182908117499407942941977930216109376781522130874257423935892272325202816777767842358096434911158397831046537920900319646826208717756252391895223615734126292257305577928646635733159646028700096313593374932185641017137512367017447059475165799675733916443574766291805659731478131258327885034600848421121160335593983544369608104564687418246044105936652151902956692112964024795962615225539355407401744848311514122275915288053769500388950147312470879248125408546769889427971507376921591359007654737767834106406923176062228700229416461735510023834346485137076492603036017754641555187686334809738014550017437300840572898229438129906503867614252900578960587038705968942715919767210434384654862713050123628535635135378657537644881304743075974070824425557517446198345871297363251769956379615956377941440984310456184664028256861287230656934437992177556655320582729273224941216996472641015152648037997359931548227809011243834952098965664876606414681769044745901368954693068998477130876406758209437057231128902081156094336765237968587766275487555578744622422675484246621099278495449153017179366772609846644404402067363835313782663257451663734596335950694677230692942395473918762932513382645973732970191098189092813526833921130274884440516309320128784323437598024462742448409072165900560484053502977805652616511861263992493338920880095905063281921466629921304268225366224645375268949006184889915845448366457175423142891695796225809237451826434930173832196285793154672729445691687691928820749022753103643813545480671933719420802146746626109821433502366465002106713392698206414133926596681426792135080278189442103873657830570651057775578991868137028102983595867943278655693840585952098303993340727064720044352602302589803564636475988899357249005968951330123363245223017607426655753994992095288135105436086144281088212825573803463017043495093889485342067179119464264239822958792375875583817179636015036291839484202630374117742384862470988481608175086654312461598844213774565243505053127912186594611114308845233969933613128630016253960998442687740738355707346371974494877000010212120600827407194142953684887142583297006361712232267515710437266817477430465656066538450207288197493858573652976842298554125926890684881453310356764471871512190361459860368428262308605977019233896046752410191852758100583693594409284982209984583893711713700972895903306686751356878892077924572266979816274725525888146861224573049373939407048910883122244883307588879706954215008625686375261810357684478672517341742989698602786001068174338348444048237707008033177144361492143703989488714415374720834811289883854885332010110754793019005759768842288240718074780404062236600399050337585679961996255920854222243564624170733359686371502598251378966121918924364009246407467116370520594769361874194941429363817750881851006201355072873140305867576831005668858055838825145944976384349818302269362548473246838420746576977481802299109719917200841207742622265993152613646727198046387774803121684352962095002664011152878418784586024327174616715891761617246262446184510983642564567361027199533915505411877535573504443782460358553708212057108009432138458028991072486933031709347465651941963158526657016861751350113910818312595449458517496677523383261649378619853029800580983832746966229372532152239650060441618701690508589865694652130496235717129602326053508951040083538934260893020195364675091844754561238209078032636585411080688367229125302919168036442150892726298337912622422163990355214888735646001840591239439776223096206497734564277032107983696185636194431862790370458575957513482618425436327995130451720785426573239716851121972164613843286700564237765017301393434487724540775953442319891939587034359370009783573995449678511242298886568728491164232547064320444312828276704473098361076349928217483076185646997134165381317931743901549014546197230580364919972808995283081088367560648404664149538071093383678924695800884239574224235456981513207103173966010456281694665667138866187112212453296163181471453716183268199337704467504373506972432886231534190365502081899530380936458429945261723960358043256401601833256474148505842729389568743058953891343305927583588590461538184913291593402821560848127995853502004986495134943199823085958254687858294196287785269328526627287089730935745301228280449498022105420560228400592249944056394656411528704584305416433647424728614523731276203658440708089807720559116242255514376679579076430440806435658636302419088354402422328918728937700502822860104295332806247376111304527857176302087328081058687530049888281770762433436919048332463997471150051372954684525372249634851600703549335741126789456583484831687605947569812697152043067377664788245630853398617806645164607862802591024975404567850177573905323144962136411353004462689054525157149811592580584234789137573046085335099798655972395509993992956973180013435259292851776479384437984546470450951900674666883987872181767579073039538179529209901777789684687170352860636201977690294556391111281669084280382889237448028875802389115371597883362869656649650002221184354464941383947346675282254449107530104424511275149113645702901523859102024865587009029020470014988459429603738682878439092753713614101235637591714590841470489024379972170393385684534281730269868720843442894908184441901975567344563948449173396004422887621534015426733879248358309321717344298780613735471229491403232292475524200069756369354892658765938256775408616313936113306397231437004464000878955869549334620386423130153412027668303220526960555445325495818251567758129260409825840497630775281567116703838512377752500547546059486585850611024270488816054501108749601910775925940512196223275625819435775072920026145276545828867009581189663721741571563660435253185663548004631386065400075650807597605996637207673884720549130685546453224018759016664020944174322322163484261716449700798508559605455036354044566979379647366695021250470528259085771242026260202644245556041057475816823499059745655070479397461773046769277955155720290711817360229665157174729029380222837086168217097446313840752413155286369193797608981928786536641432523190203525982730204218451078002841621505531520931997711051634888425531233055343396843738550459600889509377422477309462740041283310423515262611424986954650795347755942028153999304603519026129836243353153892990785804324812116624737029117449433736795122769647361289385052544740497999696696605574089978873489596853578360234997591498429334155191818153972794508780274496145243857514746403144903871185784673186101197162403256245116871912652804190183666173886737904732210069304854006564565057307628922571108781402601310223827457845677743112073107149490597090635688671539889714386437606972204951634973686045770591614499850149382319278150910772083710442860530894156988990131548306229839603834580556468737715154390473196699634632823088115787723186868268711037622754411476414090766997041930899904220475463267674338668162285043709351083213082147606125626930055637576378890385159132875171140903377831694809157367086932818417568714104676134501161085256575793335320871744328297929873565831303061988410658678141010651983120601176771823126579608086275554048093979752967139377772425537741227298304266753363172272369706824582689180188719034803040561337569767289969481024345020774347989203930160507900554973251249470972365165762906561153034573727886804601263806041074018031197777935744787654721553950368009094856692902696808211817187124345238817303005413775146513179435431033585685708688770490890694496524711862553469733913144060923494409993456477215969691633442899280241662592209968619743179477814704247311381116816676107974000831502641475513600283215412732230429219841183491001277987643035351262837210667819539439659385198200437712567787216927667746298687255485464663377125571997197242159104849597836269289440514977467315227415464300362009211998464891507789345626905079797086843561656819602593521781476827078988764241067260391937203880599531105240591862588920952483248902517910168992701200274396658396453503796072799628344453157815184167288881847632552605968078193604422613928258767464025250845490479196372757546156320876109509468339725293500747594265372054978059020005449115023742618153994778678682298792488286161472251225474670059107445957410132445183495361863176614422068132001862057914085811514793578478824007750926228237020711185082035628268880266548440108020527316001124788345927873540910295573345940061845553491370353288234306096602041920290501853593657138484071299430388293188303869708647166096895523153739195606400359460502779816169263152305883415855355169867545173152946647666030173781364540065909857756248959377052715674430507525666381732721578499900395764328072320949141075362088442079518090088337884823756984020772589761061051301901870099161670395526115771338213215667066399763332822915281338127274976241510042665009342078993853247851278021742853879926998273858587037860701415007351540645986311537742579070988972445537635529068957221441982291140179010900616056977365671578880692018348531539416788990192260195696049665901083146090858147405167713389365224528797674995594355050484565461867609933312928737285471682340867114462498871867274123966519773240966391789570383985946070930995388202908542961701118247809980213525836820710070286017593184126241464025262074585714839015532774413124890995099946720488933322915309418254820966667371714609873232141492929222454820374526365245688065886887918457350399234655336828627522197911368234431504920218226323824241188358330229979498881568637403219595632683042582363772655557072584094357105762827685526921816223839750009207443641279079615935086576107919617374590223376637423074211019165877123365789568031310977151305709530858970507448709842481001824406183133926265815666982371117573687271076067208141832138019166353205323811073296808890500904636931513618187304791461399476637922456756713016244605524411047064653208944921544041072519614919204165662947534189920926116773223285349385930539589038384832378930064517266145713168833594643346163986757269825446862119886008257326635598344223154916167481104433838085534080430568720125449016787240600266735599072096310583964195004990219276562653434162301423026281660584929036334954083882128485367514949695739585391172594464724965499489039597649815465981287791107871916434946133596233564826438715569020057126891948856271306097822666725616761003792444787666622625677215517510063172004078219314862180348959015893699585144058114790708570730367150525327407657097207995338890234731050550193138252792844015923397808353154450811469917201946415760566483857471138829613630660789359823642093037763664819340842830913061725930714442701180365242318157936486383675224356851207332983756440085970146865192146168074267682456091353137500196487589105293463877067136981275032112682365734818445324663459871498208984587396953575771578039715039111331561411501787279675207353198404822514861478383748803102990867441669793069084091825604229516046564383596760075710327801116039829795306421080142619636925823294393424920196325599151791216612040050928500881913077180753450108191705733307547480667210810931225850534362690692522239539751445314697846880632554663633470153897435417604556315627566421341250372680353377802078638317529340271960225133422947551425479327141740175474106769129478527084040670853033997138140927669814483602745761015131296632861764808354029208549114780029662178685800073157027687025319206512184326826561790894870552148948972442813703293816430810406882928267168156878499802922496484447068720776839624342604450657573923138910880445880994347862556663786100823722408662766147849437902504339935845785112395956623668425344891763328268113875414091949785156014451836581973127477920208724221002035880158914952978652535047908173678528642460895949429358573736200302959204899206390631336310641581186222379684812336063066366601573841346533691276579009511682751831641160793127610676790626774491042779784643165047208775257573369701570342708282751932420728398364456435369844752896255524173079560813961068572080206118723529578145428623113022497073721374912941703974737983331015799246944138301615864510752150980309137392775963304227789288668384934684284464925179018625986429849372934187797975977870347537576794080622259185967432364061825313368244782054552841286475152364912854337518020508881217435292384081259811809862853584379857331907080267945703519567666732571694461558316553666515348053572925263859742647485358268144782735247466267760367066412695599125158527115337543269538825553308915923883937855015891127844075298670430696099697498367790254609161219833617324688413296680470174649163468150923354123146453345179542343695925461631935509104726540370105776786633279341940086572910444735886422747935215181680032417939682614117178177627691732276022175988855031474653515468290726754478625610816971389136433636285154572825433935282989486214978687051848932717856303422763966653885269347794366772857430926825686175124653441563569189290754393631238575694013936152337920407359485844772963538320340232241447729329479050834678532286015859019107935648939545462009123236612453203466410577353025694310272030683844100458919204152622739423917674457908969417515806319888743381530334904509005193933012455747972237731353563181344704847445126919557525504651834382945658401897649005980430913416975601248215226948084346141784301395581824618000226612178140718568048777177681472732598526468062986982343869396612898388999760204611180775539618113299637378540814128885041993065779844745917944964119920763608842589708149411859162151969110177886184045351328876578111407264570464876492907993591516918757706204590188864477646720636869829492410433535055576397144817598494628567451413776487529964890007262737854537775025967226542599109330604694772581140272966639141758237090132539108260881769900439682575010713237556792720025606461606936758231589629417528809051817645929052404043963347869055045500331457301489144321627647689026826979974168411879692509672375358770059775167598201152051495110701229944118493691897384422411652581588856881843421056963252135246772844777990588048435676482103539472025291860530861157789369260621837473882897486893705796609356419453797532357107798674258481977617083016749997281398031676543081968627707810172750355884956998861748751153470134413364984418334857351614717385824813274229588858557179634808631806960904926761553896918706010980003002404895796920228824052487326705555192824604154084957865320818802289227454647432870822456456018876362815927619437775592773779733206781933847693759725252072005381001281183284390486616670907290291053279204719396456232650514381517090046065791932807600404312172144919822602495374311816868662958020733291097190986411691060283875944676272765961469986324125643141083547120942845134247783784409403125001658515527539349382986768622870963964247032995770012438383600042484736683312327228126476552784289394156865487270797644809717795805881308601314837852724040901147902365578281370046589737085693083087136947928727361460104129976249729231143216635557720457235538327028432844861685947889997178310774582096291491322614528736249703762961773911138404531587718456073792176070813687534934295727092200115066334026794974215430082954136106394853031701752787018030750544196461527960264953556271985776710077395750111658295102609692174661787933100091232885118744720944333281085070284441676656969127525074912082683505051216923056012175481740577594702706613609107638001497128485422453827712326671573570116344336200308279554406425315135875578205488618518017662280465579079926404641261210236451922329150202357194024005416946751309692614483728801010049550079164990558378971141342525760033462573161998993148381987162938724884297571029038939503704184345502331717944183291515953251743291388330680401514227671791420105940665371681391592054357832096674806382437805624294546263432871080676580869072359547181765457565247934880064096083705428665723670005390959107350117497286930238489809253438107010742943827746879053908635645822338609074438807881702378052822339282232338149442189761968021315431770133038469716246377814254622170509696690107887549410667771745820415139530888332664861721000713420730929116176737252402404350418482728537935218997113400778475810993479742538454598589163721529316912619982551831670200275756314031698377622071918919941212428209392002526088006390113321035182890702669587327945859556617925590067355981572076159927834579679395712696900147825736582365069024744882282903000150748925937145206180737006223626331047733748524777704580935137492625997510176648662183813770879169432026616860530779998909813051452411071673158838315893794957219962964822825319062225836836410973352441122435619266593531320864004864125170230746435770299080018627425398468803518889549828784040810969259520917099150432838775169712916799873374052827412074690603107786231884121950043853978827039686023171592630012560865602035574240317576371373786308013100812962750005239018377493093397693789594917068663288884989525138977917243178927399200331358630856118758634854618412087639144795840072254398213183329607113553667494453744464259453154269264483867174430909218229437497772065415208274387302165138738608289030446190566307452799692805936956532167529337457451271776864614184582611502944511048982175828281054126180113011713747959471668118689034448606721132108901901491000693633951511117293916130919303788496128760128937493716816787466662396109798350193582980394228096995513243352675258882050582158486873042184362870117050485062975380940456021811523929345397720861390214695085431835489747332285326889105931552166021162295369716375190215115216092853460061988024634356050803706143734786835549986553890422006326614480877953675657545490500180980399925136499921837676619048294845178714081554431874063505340184237935697732607937539338278425011047717457646347736934287734366243585496122352207178660674557009083446487838060210039419435552308895467358824439695388222416879079151557414312916414100690180111967014178672698542165744247906220072855754462397050489571578850425617751699942091101354340843994218185499168064251519489465784241289745133316257938900536572451839446180495015323392406821885568724622471620751185836309505529640826756725519635563084388334967885199161045560545848143517819330148505663237357816956603703397207140137960557727176425818870381789547698852134442013893057477486624425271017192176653662829910904646060752021650117430686796250133617741319764886713868645024189783624003623259913984693701692715143759202218842962516256223899541704700697325531343394538075172893888801008349804742652779712558039449237085143414688688280412705673590347473945979119453551643735098836045421544191945117932035327973605590570576517666454788249316264440127143432450199192282034324596904700714040837687518176877746066868933035000884144254829063073830043538430312081352931739876558774033490149773367535886330079602763239929059796635806993083874657155095849331282464317670960782808776743348985251715085585762412100026572273957113648172929848922676193733462406172182151413084952795284075189864181467799101175682522591111714985357816633597583476625825483773471089591987084910803755194120586404265777680157017172922781715799430575217932045963395881318435370454927344233592765446297540188532734655426087123730800515254911541364447725097407168875170919777319678404621875744301999432200097097217194383271944906022506462178987896094992241112317306619932979232644806518402481837175833089384089118928293171416532408252377860659967332986982523311951974493214301399819439660848344832317394656169241214960097115984956780316737833001105363709501922657181797100050729135557508616981541270057483915165221681892496189290125868019158324754381871239543643345184676629006171359210606309250887613335834165750201849752249845355859192612959897198055348433974304261330798791140579205506217974840670852048107108577811948604498323634727245449832237574168579388838046096022414173512656752469163571088739845180561512063141370886098097458856140037870916613732719901827764188727644478194078930536491294103016819374271838642365432271535369747303326653194152832842670407753107358952311962079778387938554434704464290444987243856274869259981213137157759721258591575090978919913135012119567046176794345840198451169717269061366656307388997037350392272425941733230495299852894190188321516369934890514439827165924940559140780187254659899642811309607636393216218625354281512840554713588601116834591862865476531249715546289413568446633116943638452518710259984904985915370797507393154698058978007958665110021776048700776722005312796724271408341978460534588823626199643491920821124356963908656550668391759280791130694401510907775292369889553966233213087852575574715350514081914670411845750382961779883317786799332991503246399458428569005772469664356979702896893653616264030798953111788255082816297563251849394123829508424143444108454875946685898214726093223105650776431145791721080859061380877861891332449731503604730894068915581597277476153695917021250771554529521990398883103696421724666022350393711898153586145133146423078757701896259829961514257598599039992115001862234831987425626728940149521999676003404127856620036989027286125858755459752656741374597172717464563276775827758877611427586718886809129770424965054900684584534000957930332415041584353050556931070547783412531749226461131527993274735186652294930705322856464201709246524457380143903290285897961835712268730031749325878118840546759418002466326629704211945068911504407071055997974628770176829517898178733582331671534998158237049233110589404090012783100379413984427909664011372318746291856593551134328184314245384939398265734331739456722154592143850174920627879861481819157427368889309224328815769107099132049215718815086406333765494508439751449119824565097787933493869673963159942894039189283323039213084414820811848342868558466688498487812070329972137968548963417104978277479233742231541253763270139158468810065405456354540135855462799438663195316276942573513778754022148916893149633416738444974891019027615466836703843381208657953054248717264868028698454096923926912968705884404053752957816940041827014643360343480973343500330424795102524090903350707361250421760237677589173085343622296874012688773172345725263514387773289594289625410230993946221534265091806729911284218994219213983944921173374655782436470079964443463971753352875843163507882580026108276104146888419210776901585692025824567258891681204357630428623347759181294337142967715343773897544174330449163555616984429456656903854269750511943118634402620567537518402602065816020649179424001452507679860196440498086796738602568261566714441413149276149425634912845554419914325264159897780121637129274993361453635383334047374071551989896689718863304457074721236292461057099708190471872172159745670230899988950825901129451505584908153880049609441559798431774562083401446685483345222741126635357591971094616506452020812938897227869880966291447852898298047037905624779344109940864642281983712866686165312304372619422825269856112532000948603579581170823425405557790881017514271610661918447027670505467028584145178414511801637916884732221672405873434600779230760010705733209990206436359609581013078852506061101046838240090502482193007414578398629289445783522459036492426798318582172998454566972968242143928271982276339313783627244629779999885724206514848700117750564277919010081100460617403226683339840279407926390224419752240331439636421572799796620561010636060008208045812101282855679787809172765352436196593411950099471100292309666413229985098260103752531122665933476025119315263030792334910292030383903816237159970325812292895554695582219036927564710617191225339851994101395014270808593154566300947286139168098849078023578561230355037017509634777022732409583939639962257741940857076125263243006230680846710620706699180828594902216871056069684519637126714114124384332042051011245088163283643436300915824011495606969384157923345073269212557176654795750677578612535542162209498524775627116559517003721122775301883381461018170040459554390994807820368872348997312079105866377371222508831009067924806139737528050618896280881041507265307178612378772682430643843719374253330555406045129347594278556040152295563717532377774964058179252008956088579490722857021315188987834783382592812777426220487022069522791074692126972219519198446803155795094773833115038014898837922564508015931349332611093576150171304405239399543587300195965334618288236283838803757458174402035868421092566844322054946183687220830909768235767161361802368933296613301439098951580493215788282917013993193616013566765755372860996768631468576645546741901552944732246318716218605731668432508871502719478515131270314386531818157647266390701194854177773392378530785410034577016509084225528666398873863968594097126581419947482830578650038003483969709823377891309346663790371922496255153445978681075300800347535365598013477151095366040332644672644265151656889577337642491623800536032270323297396359337038602709152241595715576381787356449494557325707071604777325427234999653814613085491135083653714766767545179724339787049382232271497078907986813448877795684789998776310951220317778157327198819936350764658622509585288836553591179666555061204668219389972592056128015497498752501415507029963528712208878679669872731454407663530055630956803783086295048032152516379649207724485979223126257446244161246229797773536733932133010782061993039604714706740029841309034695455741935025471425326392458590860287746388339776343511823540533947420358574527915092755243987989718456016369951674562640491552058833920478988156577621128893578999832434398662533034716834333249443479401678275758242197020941713629586355787501911280727481165107780353339612093431092075616766646046659494816343311033773668071694671739417988918426617972112380649716202963263859603729373269289438540730453444807818968302889782298451438013325570899586478224630991335385252927685048619732634097963782842379740589694817293536404716092076428852533815302708770751423194758691923756657921035608038151481976286146370521500419393645310328135784214379265511340503025564290558767087489929436827290201104654725186917535532848196250648705172186696500864716888440506168152856800489109920858790360293301961032672553493572342490953004003512990153634832341489327032472634130699900246853446842288838045573061502661908558638012304639872783466284048371631172846860312587335521625104991567197775142720165756806989132767760011240216522928716334229721082388501994237721026855530784281288238464803243833617573727256294178170914204552453427002079157507126402106358508822158765428117471179897267917074003753157490080918452957098553591846378732178036409910771926040744294893866115519745600623504760768077229806289094282044107566289876331400461610045583450005634579302758122159229665508192636323177525715464592530709102110161621768755668359248480009795409523439578724595190836680645294631786823475441649149629855590928029615891768947697522028913157833395063481366136147950108886819163337017988479925923103397692777902292419101786712326527776626796399303920464248529665918745649847951131406006119197213297386653564029832938694420481562140593229053048644617761930974993382930445963243481079205432960157720381528287072504465589103561968716942157923028602991358878225206746258582460214153625141394672360751101662120811295141503780594157793213956860375660266217468086806966825686987408964114103852013068507076990352093741115702980030617373033014401468082529326869159881692348947685860888442180624121952405891936952804468220217864973547728858852382570954385833746156210657117296518464701903298831960488518319809856664357086446566099837403843255862023808106455320950856988474757548556067439587029677336158578577719840479852713352662532516604011979188898176397494093247658036657470396582073273400703183786831996566456107748859919944796423466919655995695986922159210127883356368681195717442591563522339214823435147776246138658423125122013684822307142203324442043721597883956847135351597154348123403319157885803770083312394640422741075353882907687918736556855937847476394843121893422037071868106874774301338231805244748161747790120134190869643734663792361215200242257150669953216734168767145377276433211150975643252234541187602106257598289440452761899662657534886064619708235950239882354033379278678912906702327598993816804473599987407904592283313517134310548413617362318686225487400581242720619255857325610407152971777723856285818178806871357130415270309246147544141177002907240322433770147231280783925331021305017681770513021780337769307806477969987224753999706364816070980128940681459326721223851212860154425496518670402827528195054981198812118174741836427522727801915237482901750326858280836770584407245271708286604751734692284766720458783643792967021369810025433945633593269996817762480220762660426671851393830685114573480645400378079819097660624038022249659150979395710804610969023599452396240528615495649333521977030746470153810482393511360222045363078286640718103456755178849900074465068235750560533695019640571280985039353639254720638168276227975942332520290879502525947961605659271787691572647061927724778184396035158310316182231924515551290968363387476705859678626407912530736500219509309487469770761806751383851116274340773736242991151431976513610340891723181091385354825186502153571826933038469341816189201663804283622896706811269338101567417685911536126969749819758152409965745445122354783071499076500479308515060071836246156552803163289374777943606400472243347057204265901023058225233729349086901215898172284610029056939236883849117280234679663544343101946428171517441074358139508744108446493219063634953319153723234630711054299923350469182311737103205661730222017265980495817746062741245982254334387434026472662575874025608596342776430188915418823269509538100048051861925005107269743970424447481254307736842662534758737592700302432181331748126600128913128051733439107864331514355648229343168512963532469174208234710737757221339407124381529134039494550411057977688283884704364982590149512218411609528796906660035137125560504110642840059530863402265454208298938036385069829378297655318303298501317255989216334553788119087982669188996111814492929458169138491150016736849449612832096172662517056211237055273680693257357953161867885744598546688257143264794487745588139605975144683329486882965339036089491767486930602878587743385968977460753418305325712097205853578591710651038836764938250858490321174333279815985106179506331934702710595051771892102912322643483798815283333890308715927516467596073496468197258484794832394545856408716827446635357214801180033737357570654050245324828576388856438960366385471049312823983765281321493809315304676197458668603827104984604011364447379049255646164120021650818702562922127992539243176244337899992700014122488928143750660063252734059171440050082603982230471552058750661207291911440241719657078321878219826688400536003311598651403235558843607172079516203868709809785951023969345494111317520401368640959463779325999186057413909075840863567104494170263556116087332998528982466150127307145987447972266859445782626546364768180644245774381136328414657335042226599860742396356689163264771553051537069541881044602587494120036459937429424670647407482412104190171999506726055635267065222713063148399101946118632712890997516115000642855295889972722129411568867600040370976636326837738013465607921228100589841862172569625943019203141307096694500825362993509423982512824079126941701959165529081697829437784752804394460579469790907858403878999518267759923934996671192551105002328432358184356607775188168080809005841443542825695725393622221724997352853933507403999366864664439377196615484658360823680883351231993280828799816371918218571021176248989560916047294719303474922761924660413575420083688080755591991569173427631413221104058725359214001638221445462002498742464591508240911620151485204190276529918429285820329001063800062462922150889306895593974953031981700009017797335871719745288680859824842174415541822035732899603880101376183673560294354422676284014618242071507454629549524797873940436258007530131261376334367668274581130681486665303249149313922531958505388596324459203329105068082760280429884651636425708649599613220155280630242697140551484685401662289818309273890078229756912806044163972623805900017255831595363151130959357911188461002111423681413563778106002741465245920813537692471176027595634255834981538445846258429994340396746592980461062251351532860408412883090820699617003660635084817392751654267915674236590939894833566274814239926933597627374243519085005949046760598600904895887219337616143685242048039467963493892875916608267079523249768111174152341469861887088447468989215227544062666250762762631231367260674077228638359496911827016631573322501195365103372593884429515551278209131526440861100180501983290448832570320906055881138476557538564859126840934231549218395842241910902607328213100242230989560210765760175298862062214491684654835307837045443001287425004775684259777580241665919752981049362710589526731205775166342595478305256931940013419669857001636325775299634404092842934040097870125670841340851075838338491293058657416293554898217756042219697369271935910106830583789120721318499620945413587256285032801411044794330282562435343188631716625970910973312195637004676247140777680377162664788531206069281186792355695793223976761058992597367063751533015163346376498363650184250870441561645762559627790931877395527422984410727845931083033058027461950711898153131850202748111577585941028032355140750969874697363937958956261812850830634933778741616453052677167083747653518040044944640683463851157177740919351582501657388715937910334476224346334193693904101075675410164174817681182302711126818544864945543079920783488015952841962359083051545590880876964743734527200363751073139160837482908305466619142475712090726072509919921974228355407444830580542174763023964798946668186788771951125039817972343440746593375104624438069571715616114708126046455946824274164144813026383635683636131049358179176832274322193652401699789799045878328666575172636746953988253746698016703002706956477927961629524491292079369496752069955146058627101918182929789914812886631049893565797681762286941227410442758120018566244810363294238213813990235854496738631656261092923643213770964718034244850308995528262008567387976237806120782678152692761572727922497953965118529277235450526196491033336010139293554006552130141627252734983541543716455615561842094090398849275521427135654738110128562224024508679278612102228229208014178671187210741622063723085216479809552656494877316364546267669701379487602140429693990953845773691397654470653725456884730049995505346708892931847784887479083900373220065841308076514462855683344680191449610477788941143997194892028952399414357191638169499996957060824799563314439002149394261517963252137935996250847712758031138304251817432112914519364304103542488004655718212850224543027216282676829270629561015759325630893770103561587305342090094193091735744466756828837188939762052313337472180427401499923690802969735227439205397839716038429078728975133688941210119813140766947419737568210638384666981303339059519829160284453968186646962635781362165130777696408422030415982890218075324608009943515117388786513584594780958003058741292460810317896654192397873491401207965238095279540293782644070503570371213636982545645174475874336480036756814188418015441636172483302113230494484062949133725236235109467945452923040609181682312872078011532425666359950864929943681907355503130182368079155441178009993701055382487463733586715502424592203784129782745530793712095545519970418524269754208295932706156729363259296544931192163273469942428149674169567234287125301057171534731554073074923005906689542486027750893056511871047598924587306613589648854242206743006731673771868643500817755208511807774823498717817354454671215424083011258914821012937677122211166591959041827775600890072910595492297898740803946591615716828999880214938535369180644611501650985645230853322265851705035552815917943528811810521320246459705015128349507034375630491153167713813682856627282140380776207773435965548158747854228984931273202011060210607305341202136162446454622251501674503346318704642370638026804210250717910752406716629572446714144493483912801862171625321419682617454424148357610140423488450590547172678533160974363837721379163531196741832339882157885969629935945320964945154559257811201693914711948701220547053240851255547682685099342315049593474505297291950607372703221207489099316397066528800403556266260780267540255431073849658114893313408873190472391694302149228645009883061643360365107774390515259571887863013215234309990362272415245387015714715625215533792921560293402137805412717232615334045749656775977842266178722330690991235020044209334847933962143855288114157980266949098116775571144148936950519254468137742787135853393372315763815953775756547069352477309168169908767131593146856434046004338471561324992377980001295396580018937734069892384980312130912780880989153761322747953005509911750640584930583130806072036234936130508745959610744185723340300790088331259972760356641007593843557633726728249427278900541110630415310226104621374429054115008089385008294858208371651198804124207115926060566207417174891564376959575624739663262169320443070572466658958241860384376884252769302363174719107718051457138017456682616534934747412211384218907502267302513470818294263277807127597994480233567329321463080906932831335567995347281827326892056653128928649931230490526191731341714829556736681066590089736438493866320211983523082694234848984659638290550830172545301497952468651071086624112011855278110418075091872579169579353291239228584836746841188339665696498256464112428910029259835609336292685041765727357465906975458135657964090890920115793168506325832865362101201654983693388961254742209601168358438801742225129083971711956358664679601736775911983688706867775692100610556092708006973647735213191793184494758316382884376945289511505631281211741410744889233993269385240184647232550063155627229911503681156829894414892062370075750050763710425766345519877517079057546174433649070529365090778595359097117368495722675179567900633411469270680936797552639704673925067285650800562937298661028409675416160050993774221340119908126713900207346744008150717703392982283267397365764024058625389167922759713994340484469532754737895724343433515358099547701227635531273680497647953407969473696708274991744789600923647737188773750306689510450893296053992990192084224809569374472859905803578985734004383150814699875497078550876959135174975333724465225163307282323959902549453846837371670161659441900910780733652225854032957271413148748338273959584438126527859736829633716778746844942460631421429881656330446436556525437751811459236975083099055672277461265374580382012984557920499382376043751473857352073675509961787299761953759587226348056196353958273987291284638946367199916145446638879289068788108608584681951913614623020322145823090468691510587345450793627978286595277719089082738212513503726471613648191340670327470876932538132111791803117193710225441939655094752069473675693622086352131365540057031097628524069498902231125227099964859248348070787118112027854380330668615545347142610429179951475888498319604096755944307889303675060654353057574157063175120374014993659900593693007846605155983091774095491413360589211798804541833074332010564368009031518794068503260370936674010197957553088932379764920897264568978677008218688562552517944361079122208074103914549287274727354355504184569272095727379104207036520203060253490343058146100574126051615959464425453227087558329186744514026098260751318684063947857161129946950644658752505369147139825546885735791221884996349883002530259778176090706022141623840098160306857190814698854515208058189268734540740333431169877740627173210145664647942200342019070445089600668055211308925787961498404887906034137293577719803406038562786283445828593383217601778253670679813016298837745339417839319698567648207567800292227695637863123751367385291157996194852755156200297870604965870254984531378502001800150773964792269976865370570140223978381759085279824191552565491423838220782025456563894889185928022525737946854486453832762550592262309713510114091105404924262841320177631579137796562345498220710604985816184311387512062468486086397162187753677563395295532514488837708329434030290624590753156537124230407819831222597866756878880281697233353714485283251368362132597116817329505509376335012194203919112302197168240099048578836524549054748661077261160058225846854961225532883045753590866008071019816439856169249436038155194513171087706486783832984101641195165705091517997164392871776203948854241903457262071765778806398044097289649325051692423336775861184562025924830920446150002141810993151492490429541322184301489154709263553654420402996869960809901130063361368407457059183697263968439675359044168579947758058887025856408207239131294123491736842518833179322295510112728266528262593534684628723307871341292513512572070637186932647184400274954939618689223422908760999645883671690168718224931300211209127587101389375749458312917551184622904371421695249132855175243362171318830699519951723649089137015003073601473295368550779839633584100284590600429742552184426891236435438804774696543498039835186139887055273139825731857629805420162965492433061373688512392940411726882529354351324974745314070156091979981991541681613159064146823348405762351064449990972896171170420749704830089372830268998122481420222568765492771630794582925972199780749855561349879139251081023714597596831006012693196268867873511425030076377544588592603991228810429649220560348937990373708273663165675983273735938384221210550114422036881330470775204834683899812509654821871420897773770619287276046944774530011505320532613856541821772267983706776766167377285185260245936245160451192294028665263428578748596018267617129618120573458070116382598051990855357863886858270086459848769039476113039945286722783715975257331017434722089689535911640920341819725306807860981263001063314914370237857806001154500701956899379991284798994794990430134150432797707462425555103325851541209202931603907618215814278219581741008129217351019947650336163389700667503833118526856588135565189208476255839713103224979961394031693283634326931132347987807798059324176885715462413531399847702378001974677902659693127986244493149645615562471494241040969846161634959275296230249922041975835598561909575693744799303141976997722243117374389136425258771838449124741212954370062509403648521635156241816077502021228223267139298990841988841041780774441375706891832430407457369546767994694085899890673299638247449850554090348818396187151468094952086084633811770235130061360044133959233961568042689488991805892954488920426368065098369765424033693151191590268689345871728507991437626280627613775178452590461014530729118644549284496654344720393492482883319782909321174977529917712643328524918166813059834873707806655870310158778352552343089960879064565048492708981143748850440109446544417815503061912063882356844685309993515699857821528004522696672734184715095772036290497927211471740450060737944092504024127082645835328918732363342032640824785478380493507279243464065241562741983809990568288352524620767043178046140354852250123599361212452530776117239717098814392598805730781009456978736357320385853063562037909919570389691393951364807443793862702290692443875823151996891562718837429632166818623252397052379530365218178486535546352952163122048728003871321099090016936225905119482674388000406663065132146125265465903606876067974155102726014782357731678611144374696400571234115713765490272967174047664568474365346066966567466273280034798260572008852183465417603728793434462906234302379575628238056591129260195786906877935279709116424182548271445529450402575871517450740473459900756391864729295111375122157027688184294168887359212823768250593683999849503836581005836398355972935329948110454694917805362993928530661022258988143399938796292514924795279657423311936557055209100396589911412540731344308739486324786689325163770326732251086609329308149196605427644601814943876943530783930191365173318943022176882051445587500342058606333808645726778356443538958966997464151179543570373979387725574119335431785950874538059532029285790751562419674149226444294331813610232329858149157009604152928576040566366818927289927509681725771802854705721873133229190118154675146554059406435133200972221034853852007222928930565080308490048520250697354078249358353074009630019979140622956092824522504457145070717564317186792776675316990676770558406217787673643336180368382979682751752215320170454963219745549248706315119427364863744849735673342498825821982218124935252241302708218390674783305795757607403503765974767283861834681883361858868371516046364241750617031967763924247196019662563828568733718350090714720965275795337388738747237601550168098435338013658418352131356408320758234109592428677590337355609509990925975051065260928412841386066113323074203254908561031289681612427679720612610403865088395686632944482359111230500335066098926977197131946477496034991479094506495340611198548887068691898494248812050605490613593693225948714471450259038367408624445183205421525733475893715482637355355198624210612679622698889261306661912822350031101125349556961973501235832233800270892459901494117654330745796194855252085834414927242499368089420124948355905689076268805188240645289077193604537681272653342637816008303058440400177513053126953444378547489849824822178790916673540490986585843860711841729016929601338443495260566371078981830310352841365793217457617109598600226425495189978418513997655577602290723145141983887318960796044707472925894536676494522970713385517508734164765422192622703491935963950055720945061126614269869792691434205612981792402010186168916739794688518695997746356185279094456027320122101939405109442421919735109517985446391672859529472069016265703883132443467157928223396365544672432632495027749424480349742164350227142286828503080353490397242410216893049678841253861895719379219481839036828437225765931402967333658996403537832687887606773120891210841240223464044704236796518362109766730201442995823177955678382278186176320574625552355576007771415424258453794428275841564719768963763359936459589530157197846567844112222177286207070558538006513436786174453997597947004142732198514895004744161135429484663879551918236378359957049784518917480867441968038440139258696432115941650672277144397219671702369112169473556631826884197020627669062772268592315585013987665148492272691900027835322272879871093090568931967603824630861538496363165673875979624474422500288930033996482062432564560019930063383556878132280924548012421019531490157720703558122988499523260831594945105698992118945491924823190993035696946596378428038470444815148266701300851390919072237905634400483706184603320971701444606079012931204088459665245861199416662784403461706415805855006891978004710602598117521164368018836395939372838582119611904828848128611112682307372981478403320464287601977988269902994717461763897268352739683096710623790365498277409641848044503263143970610101668490306140407007230502273788654115743026981648625164315023968593602534404993409495101369230912663956585427960742681263728829259209718115648753686157446178170344778362162323812152398828342623359998243159209305974306073578196079228913735372674958915996396916324770393275536497054605730923505541985774598724027911678520412543625313665815548146699395070550120433679571781580924508129046688846313738338221947193616397783243164980803724539332452642193858978327014323557426726749201253069787309230449016705519688277872761347025179969677034365173348771259910555169616613616292169457563302720884233884098289566070900983498178436689436973115594764482905684597901380731499884211498769482927345617784628750166529363458321390470435471700468236941471137482421935452950518748869817135821535513074981122983915564363482146303193530874811485946900157893667434296372235886068695506395447195716299681061470030380237417608959474392029212313147597204505355836648288445824872203862811997258620748861224559016426603549182861951647612099029193056570746210510385439893833791625406087991601707004232259185337448611888635472851068324317966168464068035776740897766337724892553397633467409775670123336089790963993588074874679306271564133626155749737934250626816234804777606561782149280781709646806115980822561397478997679055752796971754892100493242743271583098593799664565018367508611876336152384565261320714846398921004174489788787722059784530781143419438011927697817927451879671320815978406744581500422007673240928225819946690609211541080932247736639168839075094949329833814934168742010297960520074909228767261898648579582368007391446591577262800450108379172906445091775440472839908991007631749287260101956508281685053239216954642079481601688959488514419402931289584314949447113831136115225600050044369823381421264579060812411131076775484138925111721676779562264821977209438719876892521246205452712145849284815481814910166377081013080394050459257469960163442646679354199465532553378940153820001457821206475738710828557389886793121403037806600144865860728812962835287938163837957147270070559318093476331121762538750461253191405229267777314087408873628945317782257550999508166700529584965497891727766118138424309238881483246584671790768574843505357785663739928737815481090333594512127916348928814157003236589528245675524636445086431039824662178260251949682108095813789202590512932090417769115207864402525619870752254705454940758481787933421189644932225666294382498103070325904365820504721459638666626756343066204388957995183622017344023941375513396076194463686112308838477813736633491697787688491387493064516917718796587816479482284251375166389966059626041506525026627104307285525059216643696404691634923043658630551857876945319404216519020771793714234479833299079228023203280094695727838112246220864276184312801278319421360060449222954228314763956732520216501706851766143674931836902027160790958326909918810780329079101157561219735724848243219480836273409932097752510991764335951902924479962454935148191511258964404825740531126017818712661411180921632343195001809749247576765887995502084302989246034054723598543883832210975356921604699099045369753869016874939494860576991723933494617789482212624178021262213495660568361166904059830753291874075140986032956488375899249232362880178103399509457274895065417571513040664800902866182444792203264865423076162267626706311733135554273903393087125585978114416632229571052994219414532734115987125007761524428800803079582142565432912037243906299845502590767584057337254354890507826526831567593655192710632740759167300434675994584244241689761711292368630736033947177689256437955249102754953726900376975257420942356584065293380399930675779297256056289206756825671951361345088728817315102619881856654524693215772625198375756187914502759712365810301074928034099856382662000024378272672299068579510406585641092170385256795539098937658081330427385477389297607983561079739750398989476213547256116468789118007269194277813323337071352486272937157378350147546962873957863434367978206239446306231444381571476574665304731831731482961984623952091069386022316687979654550148855046731350340140000131075376928275544001539213875352419808036233283355935217418069057168729926779515010585775762726128768050548590042887586232304336188581138265605960026514006063395044601048172851926991279901112958713724943343244446829951973454943562712376903514633363696759415204943636823422466247075743554747854795543198043839618858087146347355990723974944194054065447429500092665314002839500300596681534380123584145467097695756529991388333104300392098151049547517299271241397528257420574321146170311199158254362718178797830036379327478086715461858167529575472205849565974325297545428293892705759840303413944182294768466304286354853342269124853564966148765428060999421178405149231490151928242514095496434355036414697659430886575383400171877697460108517641082442890905337968891861422312436468636226140428604152794122313733946087855266918478760127027871417763531116999725675221837203375660909060710488306431288374042412012611724643353891361413741197653529615335972669552480424192847440528686898519722379497334098468565747166803402450567207841258861766955508307740542680187817397073257133268847872821763949215136636630279028004344625190034228544305971676956350764952452010618791972025466453813018078122146349521978279612550453448697383019126598423092772662059205958699007612612946429699930183920614921188111463778562852040080688431714645537530269639833403895994069525287269035329041793414722754850041325251104199786345681631834850576197017835681349954428569310612567898630695263739671919046444183088430656312298354532872312598054448066840225591912356626606296089663912764555067909406157479368116179540533869645366217928723427665972950066354952872461958381890798457531897428045256255119656565027359691999404878856725547538148539345974845932412328182977710105083126256583347914669033169487492903658084385246490288177238643299138174248446105698280322728361361133201615647870467349743950829512317739850614728007495373380929632667151851775062975242728235635836611567274047352196807641856856218633369225875156256019173646075454153644282136148532604680239278295307479115216667171083713421875203292936243813203632995421307999398286619915323916838154969256449410496513351078125651592777754467127654608254589140386504345140924249766786694774688424309207577016090113535852737894529495590622531599000398354182885397710835937252008462140277889281905796283536116352956946456737642650186440980935198174974880489769223586686725857539385077142412287289511135266084320176909510404458854480915201698651525165445951942036274392044276576057655025352362779693085056549647438639263391130806726233868252727457932564026749932993489800619494091596526087773413951416318846140358261750654100186899636080026195358760640995790001157441301166421148000639513245167893037564746895092232215389145826152441132479415792912350858865689957574750849285704530136023964446605457112522711053748885578823397572021392528013045750413650638013916592096321776916639740274814873069180691989589848084469032591092469936646504481384759809697923369770211227601058443319154688710602929004248407886525902392671404811732279174787614581888616713889445029286998753848276649882431106552753389284833240618766836662792318541073917869347179716791110666930988836812479595065320406582378783205210833769125059831403785401614511577920201470054210898108002075206112176197514649594023522222753760609770064286935433862085529939436784652089291302447135849243796674880990886477453370605212443196027386165667691468671622195107411750016637209411675720694665627251134042507666879260956451781169250786641427519584940988384815122855141845243998107207016885194987123774589895065507059922319669896161202446102628841079390940875749116473655310531177055744161614715536020181599212166472344868600613026870787844714915345935817490937711585331848636121597963633255361371408837950679251304383618206915815614074578220571648796288349747169525915228620480093648802430965561280009119284132744219611162274829574044474375400260872181921328780193463123388475062788791773431126262719286623263729761498561509969217783823917121894978163737804906082800288352826109741240523584623795911968777459396353054566371614232238548016208620509601878411669367372509704873609086773752803198705867959313541512142873838984080555586953830289490646952609598110434740242629432328362073523894067243514135579418971160596697763478711260202935794929900809498065876672001118404954437954526655081848080828505888006365569577183161031396960528877366969028783881778798531419583838062176339884642443300595988175422610770352815889482813621483575920939299666315089671962983141236814765753590963262883062184542093558701545510443466925299635965691611434900813555552673248400946120565216622386872074564174369816131834014324144751702333524431665843889522722757543252679283960646862353569644296895749184780332245552151905942104279690964120241083587409912089558129322636819828873562047351151026899274652737255922594459816348399857620501212906624249875627321336348630564964564443309445116837340888618398191863012816499646381090439514235153599893052524420558634805355479929285943508291406412756156656846754230005365944548462362179482142909155282979678120970860062594477839123258963858917158324443444583750055612414632340375027376020881568351055719147439632025291037474792906542857309773176680136288222989456278829384306673240733832734422215666735815037552768854084015369914841638112022250832068034092258860517446353763085758603938587519381675454156791106578248316818483057517488450973095243493796019839321244576133049825647499592375605173851468904984032166578230767071082813578818468063775483183413132527510771435046339553648886820243396895488962468456069791416306724863667033318816957197601217119796683598231223708690784946738353199708455885957583425572454005076427049815141727447236448412893303454754804366803772512693657019792970792655634863094602582074355259105219652941411360260944939042196332584576009609342591861274459400560081129923414396061454270410434127493682078257865830256305644068475473671356599715287071022401817078273673895699154869894952783708921982503839789009706367671810612677725085540729898364698539982210128387777625437142877521690247279568286002871725085869374403492529824717629167538390978493752288626444197052178501743370128341857749593511562961191051842032782899961794856419221597373291763922933782857578958177979661861242096168691191117277836062800844504225467028829880462658889826845121024676704566898345814084999608796098430865731744202265862130536822162799435308726266284150863563985412563698778497879041728656929049762870265452735248713728751687075431482759767959186517871229228661201901501668722313386988120462042088184361685422701009304767328800415837397813758572692490473234667574848200981344541884289179099681960826122756253537508378696761369353571340054115986746879262764745144020366883904180561747797488703407110049106893392624082762801423495338062615260862652061679551474681312814302455154726381135313507475510301382934555805848607067274707935405032135103947300351403517354085267278386118196936222391992695495673375435024621079893891849156259805666172757863927787211754517442497190795465555013194176916703047387249504304158613837985861284271115560442513767755968943461069443935382992905459909447198938597558913141114655022705135789043553738871971380474858035950892953522320799092392384166275751341618505617445737787969130594769888708951432693486581366892794180532512437536203789111062047902058186676801039260642244754106029032454749956978114969792715467520895731661566354885606980706224847148084506558408777771740539115122485198280110055098575143858866197728631526291315560144777066171241779175270345509567348410139380221813583079810259410310936717548493068340099486436479890416599145565033295398834875367680090557682734467068890724950470011280486636045320303527144410664686763490199514208941689141083469206597380116542412232467609241492503229898259199993145435902321058389302311749341728469493325934230573092108621596584545636068962056796499231510595517339005794102446570680567527421166828702646494420078055022966098120361274081735726840117403517751329667238583363511576349738412520796863890952395656348277582307274800865831603759198462945919417083740303607476941504998012924852566557557740818581753128971240251552820313867567173628486396446229468191890025425060834812639411453735432721001998490561336985906064667047088079099633483383098574016994704016769755419977650513719373803251633969881096974100495077024978042783720091904582619345891713427646910348893745731865855812708243617559416508160297269761862686790537882352528738797910080620912820034872432825584491117588831341206529833017655264304612958527091578886428797068244436790000597322748489501414206370866018489859935297402421220583088080887785441173311407425131786633620323050995484656787076378315271294503161404342312933202368725855003707089616895383410708724189938384499119504422606347830272541312590597168572562853414044243718468602656030978112810164121689413514454855696398671834303637580799692755944633221569676414849780548122053644679671263810650671658933415596234606864579084483092099925561268039077881851761460812676699297469558444809779992751362459285620593552427693516845646487374403072000549943484471499920889011846374152972765081887806143184341076507100629921341857860930884168413482030800659546653948054130198701198411890164584801011437188945586991008332589993552411495299104014820551540907842293411056168370838473112038591643196166164588379471130898854540373400799377933568529191254455696343304879748960271847008532810444170507746929955202583461752718399887560912357574989905522875020470367920360552959724963618271796436256476510625448328927541871115582237619185451291050282413863836342921698140815419387085204564232249911997106721003554421666421998731413875400122350340259579345069468587607152394240689197148430816129367552086460403257320494403000348507180055138961411579838140649457424960501361620397907542093983647255685096541324350202951049158238127358774504870621987108373760662648117976974630081274802238169063707476237073269136448353597461855456375664688972635778549441851048287438733741181261072930997290062535330667047817380637309141191708368550871578006392879920500557547977545672883352853144291875824191057765134901481685437182526632243506976264498243672060535833115780172074146042135121727049764172443699645170460390825766001879692682833595631397852269127655113594128425158530765515341133480997716703130828244360587708024896843219633078949137660269256297439510735574745104769079642357288354560924374696889778474301181667445299993332512439781536783850959095394021215269474320022970746042392696270728704270759606107731550358517467139235596879457151273231573758470871757434881613243587490237174297000168647944660443286489445049382610947863339938642360076292779090385081449536132540031520945464736564339565688870893233381191314430724842971103633427015600034308066343178646399105791916163650507349012475280146302136028878039720090604651637045080782313222674427933377667335587867185461262519695978944482228133418154626526842074295673008172741330503545101793159842861400858695289487503055561554791528518451608840457624308678693071051142681123011186204633053984854856249517405789509155263017512175153893712476613822968060240626548719333715830801812183044301268758382227748957682452922760035342354469197987853555452100944480577784109881333216176230817387183744705813490092980709537311198774753616522224901639830465093179899520098564503520632399798067798037601002692726030983799083909809192316960379739380635475867262700657440351642530134517220951234341846068987946797638710829716026076925730627346730790469902270669432791119403188587656957334500050910913654837047037256616644383282105945868998451389801231528745280244477310516145674665301806876821924045839402758060650131431129984682663172841412523906622830438293326808948644557665194461221215305242708262833133838035856821569582818266205497943753126376040057084820106696284569539553037676162606678821872603328105217339141704520953327889010205424887484834622822601038854812644663140161931204486379805378833682679775127586987169093999316811986848991632919288113526952900449014494053397188991719494411292859554912442493977094299524919289811180146420827558445208570693133636447216796227455915409723506198383836758663939392966962092992260968736642581005774315470988356851424007824602387794364958319219758995772115428536284070595650586391387583576399502922141973296635562950980235495575563813960536581381800556303688358340728812669253641502008937994444071171616254203000951921401205280948381988541183158103764903723141399808265125526620709931305346479949873020324144404625849379549809083514403598957748742776908763733306313871853565154494074367371762253650377769630857114912523506570776357490565356962889171893499391414188362698325106401988894122183133556560843791196985361975458478000836593041175183980649900911282867758840116948726940758236259843163161298153846932867943367170137726396186341730646081304340510916571043465398839642540860804914853297509403682683601003559780669175161759346284772688608661640031251471308002850145131225790011781935311999669236605553022755766194093844285870748836980223892222914821151683317273292343289749625532319286949330490396428683364146761975498384711939867924962034157545676120337496139276138691712007520958930416423590708152463593697383709806916836274412497535688175893196363303371082667882050952875027904742805921661281535199556240031476221022453110463017455916197171410412552975828824574055661163401454332508751055598203492997970009210191980964860847056648144979197161432143177921814361421941286129465691820590331507040451912878728601034920456830765442818221473541371706000314667926755930744988458411782087641562202256264050793304966653113635695488610869849757005533837833208458779959864984580257208590602751782306923779922143580805718303316398113835313013171039770133068285516562474598482779929191279539806017711064685127372291269461971159448922714800460719087935813235790161981120864649970721482658608158803496515049131326767716270496237375013911703443193399153197614466887005857135416385154325079913123377230621372551066457897997874778308254192870975147012457311429709450595819869061455753579879210825502119998795256722163894659392810445851755165014004409289925217466101181801165705307770499448286216680732834357661781079548968818244630057061703049704605292974556195781228420459785229868983502807518778326351843604026649538389989465004384136250538044122995638027829435930193030485079224703751349512350048925672469228047556682874145048299669810913462811181534195725143299212567643901571649358538444895870137624193048959913270289463754858422516909796594886409342495503436655401730193340245804413121226412256812128348682058382402400213986501419568370811168760561081223596723731738818277868035679051004812181755037551795526754238648901800765101624105856368547974728516587674424264344566019997386181127085482881292132183850141193420520385674392144241151913851542807268873057119604205814104748035376430864382333224518638633239815448788974934491845514181568215856199702330623451520385108342571095809552325239827103849158179489753744139905342354485056571620337355488296459402302169798001402769626925811374775370890419478469382199804535059474232369323765348167756568882056694166758296418517759848923122796515138115041288263796581281792378468304440633617885818713736809103218476647261499320591569932143575456218217943680811855447087970056827799337212399880153344602164468722559352092280030825966747263869464100500929456933339400391393061596390777391508264347447639342638575384698521392061272874531967930498644166251435518324225353714022473256514629221873541363407490899296183810424115234842086511112284395180430625944687900947035566786328730980275018182982185956219987732410330379871474584770033967581023028505701818570544717028204229336476327464936722129053776539364045078447524370711756796431889702442570571569432476691429434875249891470358666114975925619499120965699264857464478597023736615738647092871749030908848216977774640823780539025277224436430364995037848026197079522538596844958700000542604832442395290017167908781095482682913209949620081299226383620312097321372117204266333151597210347741195555279475135157852855766734394700072557399414222373439304053316635394366170000395838911534487071452163460298377042338732402577458399338288718001443673296770597658868699523627853776703087211800975142526616459515043707718707279189935830883949121250765193300756357602474533980811483484499122782223729190700074281107900914617000292701871479715907529712670951932056747312492805792402118195095871278597907042290577125987702589597104241190783207586693747168436687189312521839175510463286983312190302493992913106662797571609123853523703984329141496282625662722060673121977797996294789407890694664004687322060144709168553344629632091570334908931601844491136692264643703029240960888261033159041361089235976623851451740205245638374141695919108012252749426846000519635374924357607201957173780958036666162870080512620168973137595886217710616205237755956257300355163564591592509720695150937571192189300288889215521416679339901347359226449207645261399413552940370976790009175109311823876742092657116382733075688190561333160776245035618735056449219093123705290992543590705646865191180201794620157315963678861083832076792799802622228035499519654619468730470253632055815742926262425022531657827628024528653054932384107773162214197458677098343918236278962502648290518599175741762794486875864783433502925898429586288183607604456311923090053705947286071236745921415834001963593720219274706889243750917573844739200185347890800090814640553650440175607816766849242156293248351024313282464006174153175461872530104468131783354194122341545358964398020032935146686125282955482978628282825797226093400453185853268784412081801266780271592359041660983473872040690725471204414803480768326161746808000722483658936579391927737072813784092890212117664033699615182186451812052675496036972674070420295643905110528830492156754309109015055760097759247904610300760622736638550170499116146022895398035828545063200278808154948190600083746219772902081643395068199974882036608621901282121083233030511593855775224524945380695384990307588711462618850856876695182407195167043062954240937911018115550705424345625164877268316276038459105173585540587480155153370152098716698743914278686233085162473333811880399072408632618112496365465190189927563158963302034310815386688550517430063705593311389707447022032048960141661592129443118270505170494216609814705929612324642406511030729118986975733922405528799146665001853117264118258435603626227574260155002997366744055793533986840419054084715086826105517440186955361476578646688739624670444470027297300808635882186199823795736974804171318031355314657251409825881598368756178799469671356108674068319329976925096953033563600946541481248730455440679411604967983071269667652545511864968806902171088297133819820727027767175732149305402847803627465241711940226335131453298023629443880361114564515517870357511476962225536773276027774329865077352547984650245087793647289913573010888301643701002378742761951629261381550870757509555367127160573864200915077688556688775988652289600803148424785719091751648300792385314731706409888752737646920851972346120995459015194910578912811813500224396684528020608444535760577552547519008420313051893527376643378003188289583012902394003033309381879162431447116519244171264724801318592726770809836154018408830204919378186293271806221811751021890126938621405377164918975129851917481393795657411404508931516754743490737911227241679331224319736562376103507449636176544509773841952899803765420688933411853410677735237918606747462257888470553365855522112790782209980566924646886000800360249542761569687244175580285961834568118349269792518838041056009237981587548596746055234523448401064267142807826894844248911352193933271446435059086498671648107531688469512402824267264942861438894209035960947629708038560355134466566960861139744609643283868827948326567473187646296182743926275126756577878688016714734649724091101790024532665382732458558330008961143240887157799792659387431673895746350823075637471276126751116464160074154132936099048142948800175167198326289304645116883757085648958752066233409840415040904473187028353017891697535334407436921697936054354863893284248213554527959906549231437887481115707716045550455816603403109324065184981233112820151477011751637856776384875224798689347348721153361925647515251055199526183991159915654455354107201764835510804573985250918908533550707764837775648478732287970322178838704551530108151941919528031470356494143119530148658937894653920789888356856029949477482585310764363450717359419830043566306136792680876391724001657806103070990580120512373562223205349010384891722373624579430874209939597066502696300302834989406567674716511433824316805652415947170791861050395014539850791945768310278649737124191269490169798622517441528626486379152532992434524345516840573160001874592700493603196147962877377827385046946441419560911344347449573968673139382309348134741406980460243031324869890496366033800639519906118518495447320714874447765334127317274275233698787838190707235464059647479111895496338177817991634613017603375068680033405247599200723394684462482904575632297502842020141750143345205345287749428612502847052940752456975445223591324286930946619780841020681175040014139944072444604326121783079022210017565607973029975931721847040242952010463430441866984841537914416554860918189923132430210452644107457687767664749540478785354237483252620271146036324833177583401295553030198209969280093662490973298187302591121481755532940371928865204909862341005791571748211887781533122176827022450981714133442540702979651304139985987790240143763661506905861604186658858254167708970631835430399876096637080034374975057085527024695948237521036091734155727118548475955210325990794361175357283254169586282090325581776491709922540535407834163932178891588932867875484639144410809541762858782354638744408168782023645613842636413638940268722171795405654553089523241951028350457857722503507794703413026011213349353153306949641557628402210251450681069047297639716866449150351926309731999311433272916464747308763269259020578185095109633331606753004803660645278800088292545654800629187161448146591187291906504560060371379346570365463128071522867681633598188357857778230210461622665646812575902906667407027943951092033806432530899580203953276171879184692984941229139205739410557982131127186101861021004116754553854294310755531820347432059181940987450600355988714148198178497891998145201812141734072887807854974470583469863381154723185701570518167163410382016487816691832065535334486232347432862344347192052648772056997754066663405882903715824483350787550795102525181128656693580798190810927997419494748150980585689232639838816166343074323255302838102249332613093046947112464072897290022686569141698395813431642070539669364466848728828280749580989516097950185413599197436230249666161436246442147228297645964195516721773983212466804261700799933577846614961367190782198469930311652200555500538021211724545198056825032907671402288674790652745814018585396264409125381367976144841317509602394272380308599130403759770916089831333797475532158020463876597378424960151401069127653005865638329500916114282876865678696873997874707879291051570774530440766879266211675018185576567996502537912889484312366641174677013973384432845604979941589235235193859960670416192363754170444133095275237516119183876882593123801771019689257616194512649949785549776002916901061979612613675841274100583274242686155178559026400538439664219079196332187085539620558781423378441139308499895426562168179276020933450856566383451477703375007245671489189118554334025245172688125802594358178956638692249333134782085081611909377376090551790570762581691553366068773604876065077678936644764585670331435538483290902259477003352206339438216585306820515865256949346968585363182030904378647246318155915239094597112796570156117559708275564729913899934805182048108622157400182630472416666858682281821536734118898775825896909081404121691082621195754352820007661724685873285392698673597235337041922399649363586233666467875746100154114638827609330962789962131080924956112002223063465500820951066220846030886653610269942443380715091204742189611707769119589804876761880564712240414214352051347915506083869726310793680457431250695878599170908977763032729622043531800402605324102387223685978563729528364381665642840289132121979030285903250706716423661942123952179066110290284429221393840831236553488429657274712200883489760513934428671524993916719778104735167707734384919169839606915065327953999574876899238223375176457925922985784669888575555793235766734723012397154106683210415782837052037228525472950248939084034287290650933171125352297856251611114486681520541012922089326261949837588030081480815884826103651959871015051455844982975300690223015157895082798523170268461901132502533602319961447909674042557290877011662286444716271803909404575242103343473754751590775533806919160051231791137054365868794958600180878251196022552885966661671423308137073991762850782495623846559831353600556494468977746171996273722118152498231056841585930733785799906500526858538053226659249433296639594342140757716255577424404236064056452055128423774243468218729612509449265145602208572022595713370663505976164175609301150668615407098966971660405898190131800982197716845125165853057053359201710828478069102076509700324167070134838220508992881368208119680997176627952897603912669788396755016082410770057752509945523312920488380558504139307213085953613973025059967893672462055292778288922945530727383859290809533442758579621615886359548296473633029550928000163170789019295478294762430826067578304136192939139330382308057396939549787640471192772800392251310126271002186565494377890417973238044838161191818106665780475735391041053627722256482792116774433523910606901714975701408801198760837068396886125131511559614728235487863301747469282263565044320164508213002666673702528062021559063522209855940686027137696561501697445644368679289069275240971401735524819185228600923263665178767534628439023572098552056928224945496303935079657413695470297449075742211292739762514208508307559845714216487980421304223703067508537692328655600214944700062342734755304904126340078790973283765678612277595769089845059939368809026091622554644718700531536831952998462938965502437146716921088673685340936918786140823493598858231232312077580051896620427655167039734609616063569404086472859713834953878096061089177442007317981174881266826090841861033054960870866417418274959067294837874695689225388342067982061348932823801233178685683552819360280797568296905401594607846960632652887663647355135702980250308090482688122150863128952520703139525475691967516648997882769231233554436922853571354578442284804010285305202700004156670444528394678591307717154766094080935095064091115678230403727821083033582554482810409873678657523577259502828169044722712988305968113923616691071759971594239760724413506012473219212868417107107236764090894672222195828964725298830020447125017806480962956665149866478137409267423667006132545725818957681202365734389138750735092368806440772832197034144843742809598766534829020258363988499396223427506240358814755952041923226764246893864174581781977378495714917387493797474013720650573164655239680055931840012159745856175006884645899991468428288193370078219766864221424967024399548374708297070990119930092708599517598700730814601777287105261309903565770638944783081736000546522540103471567210174081864170820932802442118589042255645120092020382325943036131396671193845719194923948989428087472880552581504255380125901277330464832582418995806173735585538941763857169362259047284700474749250433960643821825779953199073279481445895000792400046102252214698839678936622783662259406679594953426552444535130270481037326994430547507942999396065165315180658434842721900302071624011088368762947401414655294965718715371870183593525277642867534025871239231416602939953573739069097485352723660574414277966239647541641554260498638444903611714391341162956763704596992401112039704214799940623160725923865811087257545304612465273436549372048948107636295340330690305519989235479724958080420988390385974009166072109315137457117331705323202666320746941505622684000877653944195095099749803256771998517855655222989644638111980954836889806758767723683863719104653630745568296279470622081873323520362239202820926402543826924601936962609040357669356898483816262937707413169247457676574475277793326747307502753146132765980507264547136962099895455823547733220513027350809706177032323122308016634603429390560792794748725052978808747599938619731281574666606112693426470543662394560980297200694103673484318047618546389974819438425461350556798686861360416502501859458549375969984381063841582597249465138042968128162310231025230010774250382609196470261144655782754466940256089373288939661382947336270069761968361605475630147979029382933453881429770036080977097162423010493092444970890797038071524816616633032894836013350164327169429159470736887354124367053136332186776830000576817126597642047867103654083299149839050960370648162006613264169063639750361107667652339247511075752806129888808097122877105461320339848480621611293508843585094958946176533968291981321985424071974701183837420112402485045641061021315062394490079862654973841123862250333341891817851903330273243140492041215168283888033059672221485389052120946304571050722409962877854773412797942624585257107576708053941631158664980111085891795382067956877682204235859422555277883208576841718913716091975885930077538889963358220482973335314920142704136110070077102001047524929138297196384473518684491559395632958865148663371901013070206717487342143871157442780208726438810637810159699232116834440173452069628493844644850361335353004591522379831093476488836871840131191687463053150892184398052515146059510174645647730803960370656738184849308115518711967908430312122793168474396125598108006096762564515052416603079956502817058045745224274183431132525403985576491640276938750534529232814560404676666969112647292888951803647018620781792413631933625310098385936525473234768972462018846944673105116533005684271443747835460680910422981546033962932404285199031176080871013337733881615143196675733302601518457939177626131986101771546936337281557548493736037651089501363572338531316546891032222070809400238678087827596465668844216868242757728973737321162898280447667306033689442253261560243193499779883923492434326233355590461678150401661418125224036206808479118125576551273539623617693089706679492583170062350814824445770050145958119573134126415459438448209916657440809828531172294954965098722322435033649011673864621077932454131146992711839033342450832789544685002251859575276763666491199831585020829297215369127201467608526028841469966699437920924756070560706205337642084187858357308302056027345350812468572111619731911585637329807560041608786653574634810161502076538285690346468673549170480842533139046383879575058162507059387316931260404183494619888550823605920844495372089461320917120207633014467195878975922480818428473866937543170391896559747860844570775545547850370465033719980873390022437944441838129783461737542171518204976795389787579511452782772066139784695163070893858227372307522313496064045347264057177996942136924090618355515225846971880026593033590760630667571950931011320392764876458699562746385977889462521753462174754577006898261722730744940246921943904171954682479496063158176465234568904643128529333887214274807156615264430902737182246102234175133939386894592372348212619245944942505385195954469153973563535811546981378655276768401719980990668128865260941013721052848697107287305939836771458424534339013022668179381144194174908053211815999764429718007739882110005599252732123017582738861450645544773116130200251373378506282916262860340559853821698845714779122522064494809595448863745760286821938359712365807928075611818619326105673048032769286509662023490490688989295349752306177276530589901557501619650604109661272181327787747783355438684905145606410407642772363309890439897605928074719641392066775796030915356476775801118242451414389738839008119992604556148955506195248269369914550916194324501888378340862163306926785590542577273458973199901974398330538658539040395018129673725125657776841012870656998899777369348001764466884078835570230474302175597778796221815428676144918307814157863372751396838511540237099858668106034430868631732892752066548438564975189181047039574163514202396417240829668154962345841119713554229964941868284116111611453760355206929247304840958645389520597850248337211992471446921803897923043765545090967854491183518727141530314886730856288728341637585759661579402116417057930617729648983608445563454348622039964404575437975567645313991076856068686621650769355970062816599417359342162721715448239779041536988597569617238260832030897924870600274961130717589162904575529285128782427579376168080669853202454696096473890109954793308210050953559200002303711654258037707866673823128286827602112546022710247649787392988957531679208291237738532606497981694660126209626353691793903422693377734333328912219869345578347779645020372125846758235874418296113896115527562965970080209945099162615718943489393796209558029911146707550936006590383630001137933190916393883654411633127010773014068676331617261401647748529508255505624232697271100265813014615820020790204113765229917529267215814042125508841722692580551596680714702875095051313074958063390573306069898654229649163186443951690847045226506177701109128505055063556825750454250658085517531453801936300684542862350715928275984471861158323955514126853557188716061412030659582675531111232068991447559769738907591926720926556129081059578173018435112412484295260280666595820714835440821515975492844597801094583303935041148374201470709970019910469496180586148550207329045597738277891299108967184884192118477733057156292734028783588204576811099377957735960548289817116976386085376136935307349324931243095740788412012278439992111227160284118302430423818112684117817397271308812609156506751636739505003241296381212929253792173298414014207193990104360129448313487019337604893576571573973524009202776821010140111516314458352920403947771899816669997345661219377147576278294288888191100079752878680503164390541753587144477495497505004395787572024298222505810411492367100404362210492412440837090890979092421351709618221614602976733210303213973901431534649523973388137652671006583089899223394118606798669246615655918680808868340081282652497473946392325944498254118984487411288722121998581312103046146489268034162596192122212498986883618125210473093361795277671940655575924746292102463242258468059011822251680606322795770395276402728596878689257530294731775346180901934688217981462349027473246990939269083099636548156854748772834732338203561710193113909189224105463670249766014546887805555910690297280705587286036174834351650993859891457763404579542486320398828031517941770759432164344529817941573707664639814226284183750422996812133662533387339650811577884576117295182666429330124601926682172099473909437169560675539638758033742219618010284532044707997937118831425615250561708969793926388307713827279617255309006086402743886485188736332696132063886877215815604259643183398596443766256884419842678429554300104625419026052064096162280524604375961493507518638172352464405602347357251815486434205930381035797520403558835025469833767476485579112400631552460478835946023948766914162409673796018673367914303949605355971036407720121850825898109969120180889306331107227072283138351893178544743505034709785502001374643173574652410388624478405352337094082966393553252598626885022980782962024998399189478433708317833522142722010603190524793271561800480711019518667076963142047061970278188722227652779800394667159265773940437121366244230856932681841253179701884730592255687037608802549606708701353654171592496189402742977480859560669210288338645936984877606346670829303651799151376397164747899546013620396506423793720996982892395303635293295113645086109040396283000568592302195363762995727355542870758468391927532819006126394247291186484651080265226562317308115650540258199156533674127789665420102329801296067849554345337833368115350826833297303315838518084262478061773482404180818098953231219699003723080519899494359837428623784930938020568596587744786108701546887783660369214114854011043604196751122410820146603051110607646998277193006338099793066390063133888743011925753295052294363961681546473582921140244376337993227669086503069488213664616635339992136130033095147511981983022060524124455817376202897234108533370570886694677496882832137758500049183346497629132053003361491466310941786646043759198908832564932623239448591154190152672473086289305290026122093479466497192556300650522823884290810886588517398912452619153437755327936651789515307434983132455301620486750147196030023448774027586497715545419279118720877511408706546800019584998558919103524126127995146015463636298693300063916884253806333858940053565264491127939463440831660628202081527008486830097511990094413697867939207879912008658882406582728009100708966606475957218341382589665229327188822894932322186896074690169368785113149085563126348655364131092142820011447696730675754247705377479787277832230085133544245760785528566560027190881303024445657987537705316737258342928967214335162011789954760285022287882939761008580263117740548393906304540573498364596963953784233952277314703257391022330169076006930089058233798438842106680978463213078842554802737741664637660694342279284118452494714784098328230384358191909108449710095921187667581085955812434167819694227288686936109537925019101972965518741956147013957602245910049218740313439021972948546017694394978360823949435608609759738731812310795599037263780068437528980208071034859102813300814412099970619574720547897847595042905073177155939110899551821638801076306311517316973907953922760213389342166985694774723821123665230057405071247332849525120653887394305786427243149817934675573143856738212518753583701434672839440420273383843846906183062779049075944369186516368482586554828206663677907079561014571611213940016329475132887723927989330204259346022170319591864219500878054344563911279432144683556006257339177888581287882153905498294232720190412718934649640586974377044214306332831147352132894351218847034798578201484311394098150489147790527013601521772067360804303783828738412715472276941773330827746225531919801578165159035958490320999600744261329626635263624992428275162707939241394207209390426473893077127277065211619100352379932721132830588266752238113378968056489845831445651778478587705031409320116305664329860375853365783979516078677923310992684589392639903741963049588722648447239846738171882564459741011035840037650005754702595864808213541057849422700153230397548148418799104404994745354351685709882639634213844014072242206672352599574544394916972899583342028190253543337622726386276877867440419322393842438702187325457612822096904263137732621280256189863279731769650079369085041936516385175404907433135573676725711756202410131516647376197910431043343267574734700132557659189905112440239092149957925218158646500362455145030159469645159584104222650723950852405741191927610106101729159304197743440170119677585755503524969826859433403707902616993248365790763501099886635946122030409623063221171023985885773542085482851813448302551221549140909670297187990717343852078176286462103539078029960747152709051599876801338053089641105964439498271805534140891316821980390224474947800884968515433232186601939415980668804314828986724792902564145475519295710415017170869297011649999410747983463473737480357400860809458767418336358383777310501374109034523310162987781446855680063456498771563584026029200479728017238272439926215764792214785321408441313884732653898443244420761126378489909470642507687884631086661801866264597430323327975522215885847603940313670586127778857568115524979709758165451719971613137621017302717312134523060850875884427654580365067540105089849195892087485322392117349644717353428974934694436864426446619461161539078555883750395588321531922774148573941606664211154232559175885773638668834992685035092218290231512146618992641541251642897406842672865742756876176245544350636551246852793277620248908740504902025503215885779072936552978663574682962547862242342144432487271037816201278508738480383005061666186788706088630244374837415022395900621902510566262659191255223710546817208437430332534261156800764809954530682627567852788516018732683884954065661442863389761140498858486330096658239747322838548997844558723600943600990696450072672318768123262696088166161953887324223680012543952571327842977542763906490420540646338461002755907570029311395450152269096174121921045481990332418800814924962669609385425509397238473692258424203360562803873405134507134985333993538781244719176523761068189750442968434342121760954823699411850305345165123526443617705474032215993502860017879570922091394500566785133923909549260237343153840045263210530972727742712454137103005819417204415208512580658356270236589802000956058446741264880519361227104735552867094556129305351574529919386936530079250319663222967612907627220113239840868725842638656319672291723177093163250131686033934944564566684441250950423553129773694559000811778437863195753979602242498558535940664902737088303734102460820189823907512229425223398344716620750644711279208881549510195964125084096884238194728340864874995709104508831876190946575760107499283806282301110395199520575560424734579292419260992332488908043573932505660444497585519325310234967692155603900028688640858922638177090659691577035956899733018724365876655470966457437135200987352692306401174621837570330654710117068820553634971903487692268427528382763124599895488371482187065124434625451761972783274640285386297188320044079808582313715281615159948294314652498049399708233087064111399241977965571235677021048317239330242096496919954844964863083510333590909772608680732225033550638477439091479041546194991788592070130500860524073723636889463578792119258400007185041039190775459600631963871557063483805326555339215439374184175670146193845531749005149006997680614845954440144984207312477265507374475370393058672124811513825008007453993726327511375295888530203617875298117857734359322192056286811440863489190395038862941955430848401320521886215821184808976225918940535484737913338530940117144619378519683690759574085414025184532138449659240885878076421293003709767780593553905682551729802023210082484970976680296851376063281090589827697656644236462086926154220529907544484236856839837982355735847194097702032385704062919407110662367191426523899208098914136342817313760370807915554572429543602610453999288955102680208113383538066556658077689133150462761919236512038608959866146188316347746260211488845432360433651527651750703988586682156402491819164079652334490940131341034385058045996324717531467960783156548996364258937786695624111834449094236344580839715144965421245694714914435289390019431066855034420594901729204884141433661824524357223101500669549890567095127777681494497665502966770822858099590094385812446835237642359270767771423987017512902101379042680452055208447202689914498532703095875742574747345075433605116963238956591262049375441978133560496526168845219482070647944067957382327261657554834697412578945327629424485256347685896648350973178424377460368748741047379985681899326091906027816840089321264565240323685727737728405099263174461761036714081833560953460407848143407823338077026138484760317633422019338668057026998117699539479373853482941237496569704018583846054273182620813869339456473348464760963931325489951650301560465740371364491316660123361757458101577310043779426181122829085369651016836653234653859204700282683837126510067564200585045291222898480997979760273815168116428096908265394150493287057357167294684525906211722301692784216344741046263197872180818863524161348946718292264952410387153358657527594705781834761567957068872386531309822111809045094584708858858390431168584875902907228498891504688974778282595147942300401771867538745842369304359488042234417769467155187820565008721902921566218922300539721822411958430559171432150570838861034334154572481103992624649839668996203125679286881447233490567819065424523574888154624136845854148588911664711901537726894527474287890491538531583000317227448503943539554050020298385774701580859915377326364936328122339222338944842328937710750913986892769925894776704608381513348695052218697408007846465264057280601892727426203686975008842640161998814899466568575586462968204905489952998325828497892098233443578343267885944031014728724398111294751010952437441736943168544358682084019307890024542079919713203221655696302546714132874518639313681735991847803318990210442265699469347544239616973438411429833816658172969741079166149963030791064187012475631017726968093531905080507658155488553825277980043165023266457454385636808849904032302581159359164819291774369448583083728010803741447234426096159227869129443051203923336241880717390408473000028607271202523780175452607950385933103586519964010930097016565934450310283397561741059566060823048521354504301167015942181527415858701964682732550197696284316624350967204916716268867757776429787564306122711182651759851294105303962921741499095529556675549220372227253749864291849052021172978228617185663839816032833714422256055981693449744005543840242494085636109170555350780051609548186373631147333228449542052119977676051280239533197710793200960553226073333564046933064503083926268453253506085499728976732959295274776762599779851719012110789961929214027994416084690178275498052116356627550931556857616665393834551042943444900403052341777674656317006340810014278525311406057615219814156324703906263880381318973937523192021666559350126422806229529680394752584663912583911009861453635032573991602972331819912870951252134490734651329167863032242283059497170701192625923877456898081042834101462658730224475120720078203955289106317545416039003065958263365131464339876711458752717263724956535051139661123552456414527499906568494204731542540250797826913727906788529990127901679383504316295056910121787338124540243594980434384377365803388813585688231750888058507277369381291671318537237801937251608398033199887302344916010088559718771073955490390054022716615746272813605591049264898220819062128774111282910091211558172506910790921520774313369481151030799250163969429295880255145869167589077935949819136685134917205752839891658603487394956727070720006051116116032339588908474794426220979363970098336486610782028708292217094721367645829119391047807560585893445388040799416115352612176881063706478845813593112788619339622512680136496986579213210386326109938585018203499034578726564019170161421486217441388236867409582826696012732773248171099154449879266370918424494833441799339144141846047183076589418552283849606281216373164674143986117573639392148553410561544729643665455504787112650248479207418813365536368283541498654315950443609660082985843512593713186628944947734009644733759055549044154091920204219998504402351442402456806562672430037648481802750916391555559138255042674196763878286050272782745796766234440374785726203702403284411396865580510680998398403925987234132502446155816851206088917378135424605630711138544956495383002326080622963514620146878967143332244208693125207868950330228173836079470034757463253839490977075529717657290225353858309026803849380666777190624787582531994261223237229463705548114261231238784975718678904927858412566705897627618536903984009049354577118424740875003440879825198647671267640240408653503298734125629053929716408908047054920229630687250839210521681964264576298372606461865362599603716354974257639549332514902212328576885751903840382514439231373140915731287784778519501937374419095652975700404899195531252771569136739997435880683770331421534586707641519026048952737150168848088150563489117935419778742181924687384430436508074260380178166201492598408992901368593144961022690939984121714207265974549207120029280839561145810069069105465920803194248807521643521443869295745414993861459966093665536745661611865231038062809735818656890948658279875165428756842640445341472029957239099633936608144030502166184970624226269023026358952254526278557610519711971090089679224232669852156127760272922812813204140539081291898458081729482669690211617010872794846828533779255180907258622748356847902676382981147268605264510346482943582509400299143205388366980660071473332501518863955364285991041555168967721918663021699260734812413404738020891009596355634801235129070589033192865675928754133073004525491994212607934832351725321730967698881424648973412220264054724130900125630988653137661784143583559450180268198192015876736000582637212051721941025325061554301966350967104904117889189351376099030304573141636777143759599737566207189262342702944583729416237939683402363735420401827716750196524971863114174063659824409415209411961872596581808445438052355856044617910207075643814011859548127222701379828482275232882680565661001405207340298434378132682918327947220732835728172719027451715329901750602924824982043081126005883176257277233736459767550682040306098469373676705328709675597895827622549671767028028936793460806878017959491888232568007661674522849306293744906643911312751163111953830830551630547910325952535075454779929757219930892532644471557170122514585027506487466140053579334773253399772920580923287964636601667691172128324072623379558474782737321713813820960392975808494628112442577944246817001915922458705002800033056552070179324473927144339959627647731703972283244381180110552985866413765932168990151065712094512743672401702900028045504345285837469227840908122676436131101336783685086713842293551135292155954831223041934706517567298167233148266051752654575417544578554247202527081929525741983780121447822722243303050785549857537064781968962787606038288146629681310132887264477065108878267710963183610948743833980362559565327831283135088668578877323514172989851086449158071963866014652325841910755324428082097680393686499124459640711799586484319736363533815133870371363965476607926750605237910507768895017281409582331725627232159696858125865177247026223650779413240075135116900267763752297523330225994544779710310083906136309891357108510141168002667564516263383134570033026089514079755413494934221672245192281714888887304589821310974542541785347643057420519597365271076942102253938874420808832835909881775856834916195636991446554812689902812974117437787099733872730878415900789603548734939846325237269839150651929600997924942107929049727053056225014700389673727866365873849935216671941945430474113071339054681435079595729145734405315414492489057306452867246435955817115742104011033841871594083045754392656972145917980929979886160317559051899887270240466535703748457728504675389522327859192779467072303612127230744037582670549130620995172299420527932652440852345050581256353901448468210864910380390256207565759534736751638306258001504048933315262439632753652706748350666644853153018893874751177044981400162464365615196587045638952139535144855836786246233989517203650009948393251499920344802086985352326607955821169674737263759937459853310922795714426902557984417875385182096586152475641355210239107022142651763674089121727741771490414815789812834017965466354540430056017886004872320829573863674903959037183693928816084536294661836106435240434890048460057325402413039376430147371739088402005148944761579665181440855147658603718095896957370718645642159223879564431206204703430358370133505262096704689620099373635278773468052143144483833479045742527209926578359486338903434258910636039946141642392997592456955621725635274349463480391323797993753728945617601975477688472861246204495167586253481779385721935195516380616018639984526620145963023111613307440614535278823311012331163235627695996776055544950696734134620116315393782083188848106384193567009128780602107412012732542714998481701918537308818171153024681630943615877731968127956844073881377276858576763303592620966350474155915658093244315295529816553440002727836745424600922110973741470353896462100615806341303975104126708198887371596468694508364038300634512216006935208432596508028993434722457774682959257997330667196348624981067258386858677845950461386092600691635472408745435024041969733925168579231408649948780801982752739883697931834345164240141358903913048281008208688458272681344059923972950971284639138128055032310230235394791132700168136305682523166860778995058970129300107265638517859176882253326025587574378729309277580819632648382435732518104998062594872525225612034625712779619503104785865179521821861391485164315067600242666585971304098327077997624735567050541626487438202617469812243911364965270726190965820969232072157840531992945892769899316150609801523139053852387630510843344134587829834527934576949375829467065435245687720703069559907375685246070716511343759497683915237744157760848994218591542663024497523025206125496271341966377985646974204421065421803188858640147935797846313256089428713596282192138585582550831086010798271880663433405119303232530644653982561526761652670393724930077750975511750210411041336466372957131609967967087598751572782630014045617563834646273968322447476536056914015157192254621793286375650951218419208927476463169960123192718675181411225537582611658231470511349024925217785742327789552025660622435690473296138426957462988410680923672144081464881796661155207733248493224080435457598422778200091913169620443321265271293711845762165634699027570234497587149674779692826680831099432817985830473296973062112382664984137281424636949799462941752384115328928901564326445074881794077810207961057683061523919163972635309981691914582512578036657024221129697188577328849402714498799908336712931673659179587020677004591408840329288784459307054312014846342665504652524144829673124352300372706775645429386051327073487629681789273250969488755617335329546021060214543642294108011111252071081985847630318667347007418311026398184115830861453581923939842448226597395195735012178077203337968895862296137310468839200798527019699894118559034048507569274481688890046874418636507674069316613845027922041145944028686685728379619992713388836139470374086543273792970592232831829692558739108454221442927281698419383966621538640187704970105618144647242746735223812699127449583514346264817196022393457822603575292935026946480941561522086512461156345340677717843956104570218505812237660381565615344705621195268990742281422101708821877419996423322778153959861735623147575252955387243262308963918918457224128413012127343862918385195088396339141683223228163673773735717500055544318801034574298283977605745585813719641366051298164641383300102359570203781410093228784354916463665472212863372505952593129470650770553850663959017204412141903400366973279274774287209319401631040064538776459618095140571270367459409731368820008940506358244831038858908672052996114409957412225647976596129705191834625996587090121890689259510536967676450204883313508773501086996555081781328391615941172142309159312496560528686967806047577091070340189927084382163773410337312446694510440451625497125916439603451499135721622931481016122077290706728530116690953459076115092348832911475192477813712294139569368228797362361713238864930571176759094166282504703932847674836889319591190229969962042280658350351149414535092310480272884375130378199353269840765994948150141969057805408965092086401771123892788202143831184486924367791182596562403571864219150446228164262300600261981376458770445901682219086695276096292902334493264920165400340069385958883205961573368406830220226346256603764439879341051571628165831334379846659173066219408261919482865238486431678689649802166087823381405790804673007281666257278465452366996096788701611348103051449374911510191566024736560191501358841016980904051822831278538392117384705602267641577793927673228136883976383074827061986063809715699727194622346821207093319697942684111293910581038238570375127735000766740403646610501608378848207605791232689344283150336879642219036600746754755111796796502481672719089980733130699716321087540032112337884415037140486989867953773464694417177306955496077968360899585728127134106925375453692594675044498496339598274590022338476961989655591105873878072801536069974292978453999749720579932634727128857087520407431427505395427596155838343167163831380403654754253774145746644997159788822227272090133308753419767166257066562538595508290669135142807161068087356282258042153218403127225964854227109061208789468867741464966026324093573599876819546789919580615391620541131943804866989752926635638178010456628878670061270935122297698271750252082014439289884468454414914172267155876675375678725327164586656606169358420469125846778870417037071713063944599121039735776530700335655935689356144213103456896109361029738316258647251348797260798064257301686784220655217696148078480735560419758681546324345106754427041233790220722185133022034494417066911692187057999882690037830604775065005716986794492742210312862381008272039662551921097781610178303597594259357667385843491735940060941209443383299018311289361204448544229481858605664404716008478077236203829124496812971562974993162784856537239197594123448415680776752560601534193902468819145438632082327630673320153112904520922041275800560956577655993631745352234214101915038904410203296795045000890015345326364475065066584821190483806216956988974099793499779437440955719937867264650514881026545136646036430726620371341395320054355721809693560477158953897682343803930341714669894754985944597687687846151241058326978297259820674038121304294735551224579229837287760163517118330012813181702530735078167533976122494397131621840058166555601463788859885131355055583161123841970310453866522490185747442558711772770079472260480905198980967933736230736521769983825714589955471199936252182516200966867098814839659044670079299701692133070909887817340927930458225657098024032344258102270491276839846844241529208685747021513732400024931668823596036808712978505757156089752728747848132138965562101917608334809509319494571344707472709695784578558916926940933039107808828706798193038285009853004841852871647599503351775719240827309474407735032308289843023565167870228429037533297016829497055049719369250189611410865876301329537482725822607498794557704408429318022326146210906336339714900466656863993014947923247065606121845787622199965630957859120221838498774417611832254447183690600177339157472554656636096645877634792189841004613535488543796648336298359627279666787976776805504350998250162398450475013507342842932390271284949798350696931105927005918815969298986235134041661872949213188794192220535236935800397376840385434527055979465442799498381256847849925386452430958256466842817141711223957722994960798859653565710829134489231940451896861483850620789184718326678767425342900734102585804602963308027244774133498620662545039607458081918853742020781532464350054562107602364887895412862421850768326263425035598782141191625686598104190201650322453800933023558006665904702289731923343470394807402481827277344776361709414409697885191267249550102541119302379327503949914116858542319968548357808773882659928922658732458905564990126410402867384980345186373636087571904480224472409751581814810120448919810136857166770527496969969789430900184741224457535558106758096468095584771200574126853261921276011878623887424400312058050284392096265072186511082859131951221689796471228324854239950285406039106961454300620058351311164429405978918985019815009992819392273457007237823722166643851501130278384855940809927424922612595614833082425995282263927057489770467291804573825201423196965174913183630925326471822720035504320919667658410715711371839235175894739564757935683982145420449373084621416077995246998566910614551747763271749370944707135401812691031714701894967218712498942883193859599079111804848911803467425446264057780413546531285979802320009040328915252649893995700887100209501252839344540323041393487240941712413726645133047544386122939319447852446540451469311724192841379512031122587860047594870111442188715616688582244784112467001781601131683653554369962770918511284075542738338477577735758168535312076118194608424428457930633526989295490027348370721971284913768019365364227527594296518884024371006122994002092101640900882396862306606122823751849793542599590666755728427739370292881095265308905632274600547140088175137118011460717261025632387925531402537580748418521021159156096893660807624820109817127205827778423144013170823404221805292575789630216562636879265199713616014847468748038816469297663421840255015518267863926268502186371306437187548360084507758516517694305735765846296312593064407379520614350450706064165089910103210965012139240847446824313133690862787792588159644784360548196544307865225715792297824871665082037415336607249697176414747710596630661957810419236693165634037471274942336547139963870076673036913558234060121441172389510964713223865747398588908609453346623302391546077892516916622839976841308704961447227062332143816077748452287480522984566806396441791536926983985910712060929805721666501441675086125438663557828309130270733744512263240642947723419463526524735882641804305297689721996231148243852013820615979058304189279848145681817365365200652572434820162514904819020174899846477755507786749444904953509121918133161120930199075025398482881119237399813724410111839693006482441833865623948426346691187109546261797005713293275572596396820387560740067216868411990139449489400692358868516557691586357395609439956839297339157402997043465701204423846106589988992625661873558677534709226631475567437003946161125429534319110882536678858405398405922965724344022375198188558402949746999256327839303437782904673873783857543224386304998960756028966597285230136933682225942685189807019050104792287864932301431680384037856124869443216300899778927240011786742773431085447116314808026941731827405570388039631065904100256613330313604839162352619053116160572182694237522763053727110862899990978155535030488206856712562838928785078522529436236945504568065507084786229984735718351611675063289157664976436452278530940038245023451102598399738795525083487967271663348233323821930329139827663827507804459860937568521591087933787064885892433524791609934468141293398014570797236560731692236274157070695274230103395867659222886778648664963056335196363200173511511529788414236849239453557107185179050772243550177936173983258864747224761243411705981888254877781750987239151523768936885258342033518454064999657065814320581405613528243649558098168198044379723782382758185768375316664219464235923076414854982908314261695462109032824622895895969712985295877438675177052028404056427622516344614615572563501028978798247867772667153217056670928404470300188911267116072199907705942263024803661779285841171156201016685261438327224046338371308423643014366039483012907858242969040155050539277800943110012606576005949855788629477472836078098507060452262640128703074419800895300707520639051302080176278911144712179493278886464597516692256995901641137782127569178865537758621068834872605607106813983097074536580557759664013438996813851301019921722019899477015367362205069948008495549781637672774520728467584049313924536744666186319458058315724394496316550567476342718869974779914330647483839001054634352401956219443436551408459132122114564465080695079061697916093531612237653264880630532778899761749276227165398533036226191876583941482782037274668112934304047955375514249779652360855720325038249706237334883489298690625051952658205179940615822542159993753967895116171487489250010746324258813796461407734132627362926807240421019189561208894394034568455464267098153604218348663267156452377872457578917486515805927400486550640494835311760182660197432491608809445144714557494640731134059864011820244425269407341896088508255569187338931535473080929236796219110808469822406698463884415768277462584825654238402562388390317347693974079297850084444137821127667156700791543029942323797910780280805020297520675439874397700528834186609107604694479819169575544957088851509825629031057997373007299436119444761228811165571497838648227360684986960605832399274833347790401610657638644815929881482773418090017825492480033199640710644418640702988765872767232715093318725646371865352382286507852150028459460929886489016865049215375753089127696820214462101276976685244547915706578293731112213368443463559987916934811568860161274501595740508819056877209563950237333885085071634862895507808950555257915780654028213345374580143400382056576437181540324213417196496630916002321965071627052998948311579630744199859556461526988128451949563594890513597263742494827566469014174816374824390857754070029608998569163801089559766261816672882024646034572928380797575219270415126008609916576524330166332094648510019003512493494061791403221311407827010401839944699456022489887687299162344903699539655162638309524358827644384758588991844647479849059895545530831100627044568749970294581843579771589176419883950000164828695249026616448624480166878601535860809058088643044221869551545008782480760039394558438227446937831350561300393923071399656524859056673230970152687934082435365177130357429880040917241073061741429784239614547849830788664348543199679828564820316058934087990379782928557010100667873764643162802319989571229718379134567064501546701989115283342045398370467533039032241740456717515479922813335910444231395621688823856083817279591643514837454802662762577668854592520780576374153610017186341584158562712363299960529078997454596134635094753660791480643619251152535190002722857387620565811740214350906609637384893645524320128622104698107928191338727873607792912472112653228623307488763621778871284852527591593865738770417741136429107739735728185181709398432483253530115820666935595714997379059204625796036320092471379701004452788109775445182995676172754445363460050272315269654848655683280359297354032623907483102246657832624191331485927510659108585471881584727664884702152518652703841058291655588255655057531694955022540446902886818871694794940144047988466649746977107282010469117762652618264833120816806324018229629109451376182139480924780800065596940488674726553137488966398446252542029115941890614209784008634553420770683158807977592416315700020746700903442675358825475425715609579035076122553033415202876782993318963158027983800953750955495450771405238841632467811355221169301579315313732308050215728205659236040785123582026308800711451659402293482702505194628699595808402122782305570638040544987722101785578448883738461766521205996572514089935832815616838712444219951249641264654198867307016661487202321313077867538363557189598897403216555316352809570962114821965060661834832350783695663119599283729887159851088565054983347439707990812230472754724663506629351969369784098718171805286172019560332992240675237924139948764944682063427389734860263349334897568271308213790026873239065644103903885153314716497741127490754786308575556195190387060253536385254042466050531773860534590165716949037699910164578239497161633539232079230071392825368884201743532041954951653075902299156887494229207754518589813870576929716251118376087323598280897823750225649178903840983927834783291463709081339396454280634891019029226986723955543133565557173151950196184422738715528228807215551623071326781500109450628050114596118882550276696913122277374398983817511893858836488719520419434450258577226895632041072716702600905556164505914052157192966192441506225378347768475595320052799981618718021370210843002072842912553773995453219065647439615148532131086831857871738761918076604847517576794638745158263173831073076174013069440609378737077559423348824122143948161190820444133219714442769072448718480490442726443297310000347762667884072267787347513723085516629381586901566555146591306602259522428390705306915913448610464450893149786311257163671413592878944434118324582859409431828747816959053728315399304803210244849097916600237968668039644702608429286574887612811214689638313809579077148221289614288799549142452675196078794500701589684574580739183611561970383738379186245341682374714261605417009909909614965754601035308602232557857023221224829466246483003515025008656557948632696110466601243271776371649887124834854018490522642670255519010365502204140701362063783640257071880568735404770792056811075708690013330309687658875942278808007420634949725184255684717091698934131972085017444181016087012197774241263836836693471181504008796835164744245745471095290050666738326439700560154829830850965119647270737261056288889143541548408873315842889653991158904669401908544540624479186923397357941093954180741145156674846640289137342691679592444734482981802237746155664754113160185461876109872797020155298152057602022924136334061027184646877676373675775441344437956367185165428966511543773943320166283590434690939156529600413258569364483665834946449952714948157384530252650861154477071504554187542641850975621330836567103812210342175323606458430742780311538197991723247492745888852745207848025260057376040966504488326853857799656822140368772431065969970384825597921288189856841422562459260460663244863616464475111964956657194352324374381170940762799736004661587854209822017092549042905709298959151640436051380767950387034154174218669125273717191376839675416981656676205512963423931580814465716588568932963699214746228674622830327436357945545457681009299721499150585824831888933606994095865545125232027730053127851813212389431418810752553698993851375069797849959607806753933873467479006634752617265245684720469038428779885810606498794976090807198448058496212623524380081490394380499940378613018454983606302164200666143890593274263304568461764633288876574206724115300367839002178203163707639909306437120301870895350551248729109165522777690419901471577574006745322532583365726672620458890051726892393168741729365211319591635850037702432534701498286951271943188075873251748253296352971069363837183844090790471987598817036323681312518326503013202487007239874895691489177705522274056720610981415428270521786047819124290280020458796881074178153793303547568736255092473844219033440401713837663411030354292084199266157008576179639777680052615583917759660993997070681624502422228700803773827715843266700531516685178400515651031604685104301749851395204130194628227091505811427921465390073832917123211232204739470284179873941496055741628069674679031463746319430775228281486239056926067666023708471588314983439693406453790806109210402850753218045204637620105684381766646476232699547945132102554231865865591002786016189361825298694950469520409855610941826782745455854983444324200308031739254540431555568723670495004691385027420652617898508939472246081836001952233145151319953099318752278306180224189883124201665805589635027329199562143749904959054409845049268599242074127647377560842303951762244975426846251015277210900932246466107010539015408035915019421239550405225903299735469721318934645525133562980697064036203665881131751944666139316676376263660666176402302879034946660172879658143800800707096836510841292444951553453825540854125666854442159904291160685877360245636400379891698178192007805146896340446359769014979152274002801113384516351969202598986190812044388112821089217049849387310550884189528394369447669588132520649087063934139807772471347678872963726448090659455042801223054006948068782293121312504614975239203026109573144779019712677495341665352839089906784464438229890870065958436375554410813370328026713188652386867711710968982021335919030591815407603549699816622108133208886472195515809773951212760792647567078615381592264182302404942673735108726614922597924054185276768948154609024938379864885540627422489042388948439319807715134354597584531506748843516794108655729481905869827835184320860306788697189762050539719955667309873945946596797028535999832327411942881180035005816618824888242643461339479447147860174776620035580934976105206978449973946032954817306928685509138814657055865308463895209337637070520301144439942523748323112275366605994145778868070690563006668346360110211023843817765254757411873764272951382762407505883098771011831969851715467723854372142658907820664197005410472539180734373943736136774282167078196965312346955647701888038723232463986621849256416152557180693486001213630511727779050503670130477607467221425962323710782071762926239579590570507157077145539301882871957465326641039653598159902984882478976843883896092143535839897262689892687924311513284948986510836630336925146186981171337253447440314284602426141363336111963066013894951246696961046685187223467483763375779770775371039515607567985991984079361612528709321402377583807977837882689351249473404351988385888535082241587546546897517762883687088327274705785316484906964259639842099662828941606884787189414731958309655279743922552199585647964264770896383142371774010635633285820760646849963502700115380533015352078609892688820152747102537010714740578443806661281293484636569071398169323701974911303909590565066709994872213916884028064031219101143589003744266852804470742086968877385843957141962950624451526156314702964119895550247157431521878156246405777437903447384912064979522887579694040060635099942284393514271745405497858639653469588536999763209223744180535760780220427484507501494519558393130550264260052039844235004196702040339530609206766922076520057988858455798533315256201915851402913090181217422673845626056166974025526708200790697668718499901195458056590972517614399837370165317460671326401748750138976956689512945215970603134484813573180868245562579480354246878350205098843841975645180122426429518874439203636099344479628981409235526489702520254401533616433387559254647332330357951957799091557776007562240318403677132125303362444290424774317428110498098045093722061657468842403337462679831156934498409970313861965703175177341951093397362622391753843680768703361030084472157838095246534370707482788815153306622402937987047892869803281417003121605744934919600278831240985109803335087784134121946538159930406728344972380614379851754910870907623528647604360649683094973999021136967475609552412560384375482670540984287145711563251643099491981259404691544323628386253063146748604147097039635354475933448598254568211313999995496357383737953161308611097642094032689766575805541287709666878489345724988011285594570147708566158075388941324466494080367980576870156027792870729880842823419929252233263645432744723884792061363070968413227595040571066598526378824187866003600507853476663129033959026434350327376549874858737308815006557224727030434272179982549584410989894859009779366256533373699395551393073110294946221739496679242497591374683815672223568313545508939113430772645193009582054788580038355947047890825420406282142750862242646193850796229855168835069459767329332362944725880610063887448733708698226548096927396376114534149139438979342816692413902495416455655587757266236911248635833066780351917231078155513308364176891118046675182840265634684496753093295326613097086012370465201072296293219299559588532710147859947855489906766034877578046551554733906367643008552664580249117110798502199229725369911537905984335333610646980385046751578383458362212721265252516640571360344390338107268226495662258043826374505021499480865583595784326745211126517530629278358814469772794431306738033206263369317424694871139267966762360402377398639561022193638730232692417461488914566357097236545072582657291350388081512824919071675533710821173592931811821086773371045480574720073013774697402302473844607750660112051882544019031528002198075006112282155945551367170292015067236193767033095609176541437058045055566836959892967576141608793549333211228754866526318510158111881985878902268430569831379689632075346462571400007942234923722895142009068064918329263721849727077169708904019647299761951043393566985842947161848831526662446070534230485770445574686052594187642931594034945562868318927761965371445675783279781483027344275280830788738179809441699169639694233585534252428502537662408711662407581092167746235395869943783936388089892484943237242662693971457983423024589960945972326571471738096224190877381695344909193972363195290315057905143338826158288799742506747826617460385322897673568174704492571469957752810141027330255138651993397307023232421791180712800803126137004075538999654334105085971291225134060036536428560930169578933150576920244106844685978445369672903254733127299741662279448814823794266895327350021709174207044861527388110525178709262854142170641109144345530014426672417086833637641851301687660063893291165881848660882188674115942151796125483063398772190814106056678348030472832510907904389964543284496824166511142014824628711486569600402609361504010679874785578517332410146138362708413066752592575948793238491467545397018002555109529586171959679046844431258780608362682524286876435769103409974573819112094556214785296626274022752394406030596316273329211496248587496524053511086583482660171282363566682477071613014660905805345751942878209360529742213226574348290253833530039614246898657039039726630145864711817790542629206244504136372807456250993619047478213284419212242122964983356776469895718352941708087943234505322799945338920330925898894575430671650383688822926947902866627410276415659925592766995251972615360480758681072500478661822648502538315844389323116424209345388939603358750673573424626770994545297415046617261372623760476417926041159732519491492512453200540481469607189438479546158447847182946760488986041181910228928141377375925401626697929935431772959374451849327115522599545616697958964901766150291430740011551270493347154537614643905524356713300844070658892072237010608327918626287730858188642850203743165078009723942429477970104826107332847472565300725537485719407184955684120509003300673896245434660057295961666864670087740539057581043460880446234782746100432256499027127371554971496235610377779312398137527494823520007956419349863478693377536835720836911158175533238627290943208701153990064024518784502528698086048808879940681420817570487214914589519112675231333258671092917075467162889552291853304156654839140285271241509421721170085889360631444518528706289019438350029390158747483058663375135713042162917177705743086362764759274289330318512459833981739685067009986864434974873787596142124773729830665954799979922841355668108365632265418582109552781610432915679409166703495173770426437332064470261449069131462301594550369658861725635289338106599321373151832137782558058177917037865402843354424852135570215717465952202849557608872768156476752088270063938635234712485212968896706635175237578660605823759230450243702498659967005457668635284440005784670726092586188457419649627345893503789835272273868334831966950639989019516730756921592554934724452285897830376096602032037627888762004521293972616300922019770373341543991772726000716077669164098549669999796793181219454893543134817930089465976361167914165308746834238910765354752620803590519066471539542128040584599356594183489891259492268622617746187710440220288666126475484376238777748610790742056939784327057551243015263127005799089661447045699230408991534004735455852085178413379943781580548134669058357976148630315518010611774617850650756032608996223572796520012971280584605437175746045312395490242800776917060189843892901714391934788921862236779603280308131222266446903131734604136268280044557613920788915174690965547797143727150656838632465004985348159411923596326170249768666973825689985688049018277763667307613568249704646182800310873895447248293462475228862855310715112560818419845105837357529676262262243598195494321878157399316292818227498576566253817251138816202924046839915420775156722542407071284865166797905150907457085055290607528274379114832800976326553337725344321159029904787962555672933219999858531007402258929089415042377854376755502946519347905772654250796545550167114202827075348534108616192763272154370534804289438665142586654167814460550842219680013451978246779616596466361198566701939256141624780459050117359711572586303692952989944890591488739228413118408215007849292058288436417255844390047467741058138827122941659833463090746727190763367220670962379515185327344406964612906374974679552171880627853934760516583784503876169182623158052642703545096845600934241724986428839505105660262613117174606833046380195660703623901743452220932440971055634310880978913152708913480701605708659169148923407866994224734311901159726878826515459717896809319815210671120043059405520776935907732715811837463183664403076467817684788347271583300345903270558675049649040308952115525606795729399664569695241746524392041884126208856439449841605659793776455753461740738500620706071042216238618664445937810621236085601825136685385278343424749489137011893772803021887823768968787630247078073189023514248190778219725443486340992079504718960351375551262462757429438690449985475097759519017898497505388179173448098880086338090665229380316114766485754582044417930387295775117252842409125027142842662135168308386362830500912353501471302021474464152160010698043083652900544791175546298157361209442208101716222895704678185238915502076647864098076825486548753471159337969122731554914300717141694732862084072539583669383515305119429275107171387759338860780670074776472833087887839052890697912834348316488791797928804007492859770880986547635408557486217086010126109486392535162514945834567167713591107958998744267477538587185948692128191048632702211969332727242417232514756708665003331391270882929994273195625608779840737218659124557502204855632644968624063631590009699803185470572935529917119216295821210630294688370826835878141967378900475919997095507658206853413395435101366298448594900454494584265341953117952293188173551507497977939323197253913950841256061213317206192800177239588058582647837506935232657606825806577253810068322097870602500559124591691849831980434521831799708384847370534168362434952881807732957032770809038319698654678328288404771852147931214432951463905059101231898152208780140487291859592740436404789327226680587241117389774232319958903698453099698689688860711295594391384781269154368007856646706553302015041351947165632132269659691228235626608894534484062665299109481924658362827700693502996491068650950262304757057599612520358480487396641028775286860784969210712579215489601755794270641234874257214762049715276806008423452986868618020482389937899718432280188430725024365120414308205106114996175070684243955983883610053819971956684771414429173564035190809828314916643560831135416954986908599451615502648401021102711741344422006650785599216775333093107064105053760342303042277289807231413332188625955204115787512696530093434535503560659325317916199099846998620953024348545341998981893808215840237251658438787503507704814824193233919916049454477848204894459834225879097180272837747438825883364207164340690980631189684399373544810472991010377169216492669269745533260373425833760034381347341801746263112565144432819149539693884830924477471979096236042859322579276243400049359303726481953878726754652595045141251365807953376240250271600940982363431610550613219113284315837882226140300213648491915966228779309207957558750326497043202126726316963331338649088050622354478091110885067560816307924836795375663860427319184859275714342712166962435202064466117382303177311408403710072658780871559034564876161902382256813119211663678768967142132789050593361410636548499415021936047870935436066956180390268559235869030104230877827849117910466248010867994612392268190188256535205614707486533747923120594022144130542822267785854446807909926171225903750113339840086421554919031997135919606806832486190983383565804865376237613016565916089393162814060809740703788852067191111301310809795474904149381699152914477217080965586200296052487822271818970297897872189158403804984740071121738265846438968785637704967250463982064925806513185471878658524252054478330363860845716808521708739475542709803193743666828211868648052921109233433554047026267173041567036887174450100167115066052271578055201317871384304298422024898703781634054696031628805356149794241619722779844592687716065724645463727151619147817337044646702152766948692909439815231149091386037337636491899065303289626061465888842928582623786457073400167515089459662025648916456354878705204622306080257712996271747272166718786981106948589712901774475410446906021791947779279099981035679004111670448078741420649142683103454225991401682099359514607030345031626273385484152454859885367912230156588493264762525326943942466947665209941766292861034914381598177747880714996635536361087614781617483554817724439432215580897520812183709657583699749884486134916844854459135519134986053234447574578488091101197083004649937616434680769636912641918447748707541547366484127375812460306630085404245095978790650151976543304121462886238335096814237313926583531491356681559849704733945289657878058569241627540628547314955085868486189486790707290012311586117663401231478700694397357927049780572999678964305658306699189451314721871087238383868795539906298980340009300990722456970918614804429551515435365533286072358971258573169165859381251633894954848688639451412536614399676839708279171035681701995289133253618631238557879247482217460158255025872159838745544509064014782801342018647361929053759401882944963371157966807164507215856456833702107855989748722315185881324392808129759645219066914085030088954939339655961611387539637582060084961056831634729702541963098139052179551025171905596547977141452385186879325661265957119224791707755149066138527865151962572706687613745731421185667460279867485206430804234679959158441221784808598415116843666896334068294905469526778933976128526583117067184263940757487817304664194886439964464511061681216846403043685797205119068491778864585327132132706837259012652849898676756786140710079873009145732996566533227126313971795937216429797094495198940084304397568411855851486972647737320339567444697238515959960358015776071220757902314755584029582270995308769103369997039840454815659148926532255981129668664238397985156230557370201722366261061977096274188314372110280839340736660826600510582245903732330533293102871808461912994900250286592814169995228057966105332356793239553694027941345187042919983757843273291807530141093890575793306798618819152551139498074937255436416741061943177302328065186659304694490800378116683643971573221655058576770863101230093490852825140950885195573782067437862617882556021386300948229088760143245744257391221660056081307889925680608785374665006279146088231633128010793726532345515203383243546132336177382939110678457691699915147196295305834096891790405524047817849671721537832473446906972820334196193818495296547461585798866431784454060567690824431595701807531743200448054897390242174604507615754973727587820172896124717807640262896491343691063264004935684404429182535912921163102496919970004618086155208275638045939944016165372847669195284778752270951526487788261889736073880642918928191757114694153302835631819779346108322378123665514296213843977871863580917444497796633557087069731453701174328888836598277537481191977317756672598821396423095304700293898735663015603756358643218486138135707521214737305004449488915658233488775358958558627184313600831081913514757855035820109230791532005812470514699852360787937925374802487075212042706453831778968048437267362542521758241157304542978005809221053518098066212007998956879857135478024519858902702876901285204310357308523189015163874303143541873839887774479367198262126171739385978109294804884002623567620381968750767562685255407659535776983754516428392563429565613161896577200038199918327527512341277118897207642312346074522643972866281869988137447045025955504266695612694606081586947645940765844572987089153939876521011215996897516241619232935202097931950678814395685351602045628120976191536261712589644854404020411502144392209890281957843366342893949497086845023969942899559647477243256209389527257242510991631766199309622626703532028255549217217314240909420020003415364171248758006586360875458105014601578187879035339703846691457065311801013085772107506772884096082938603685304212625873291357822442711472576449162523674950350079088757911633661876427583902239009307456217128347490361388662171620434379660624667879404675873623054289115423370157948934814387794497621633406487183200904332164113868679492360877520256100086181105883383390037067520954522829595848740781804359143519873849691025549095334840035712787743383858906373307411948072248717854098888348627961846784712152196175527395702333259935500376360688836859075014964173153995210731650177275944264469674114897542943554484377805654532961638354673696056422784114492100962414868881611915066053831091512066728468924984193999542326744186667483525093877991743630558570766207517624247233579459038267051421663354386464226145497649520401233412492936326017224518464508227637509236328918331384974769890918324467267397720829063381461500019193829292863239322263478488534257477622333050575239476104448116472477026549537999118019365232539824726161047006321541105482686682711480082849025741346350720784575376836000740057018186595796588680555962266574669425297846076246526431080682166538552392001941584268430869629859603992020365364072304714575149803361391680387580500338627145422129973984505263804280060149322411603057763413435649113459153928643108027677422116850353260305925537813711932293501814362554576414199421791182362710359435231276637250356167882467491083014100046167899717321715110129384913820203933637345318612044218346392070337743859656202402199584714926058264871398863482918718196172876496894551760449694812890827242722829714376369721709766059446420224642662258023092769023384175031683824543554744403550959413097683830947731007760461358928779958998945344747321837857494895009342060421581913993785328426058601327022487504261495896794526722225605125344190868694069786792326871388663612306841848401185753625037971359148080983436765384504125547032069366352224586266338298037077572042149555300768427032749929710541428593060295734230048285142781814548587380903850064892516728325726876441297687215090037130757150171874112074351854789972699045393899452046259962878976341986921290767024232133782805126932549696799414996427433905928889233525302808568180333660141307876811061912322146185243859300140318154803667813300599660708948420576959332049953748985253640456748562967707886336148071818225947697120697537409321771131085638553500282896647887303700859743711989644780591742400236606162701310650733090582082543486577902753691158315850009912867675025577171238992644036412451098001799665423987028981019739230182234038195195915915528384628679540455452200358089905957664574921291086233975147352878975954406726210431878896963475744087000052473867387178204693184063208646330487113165437374013244185887022667209075884996000942730591718523717741200548137787181290853436173582171222083695289880049356640235266278045514580563484412372724320515238272966634291983499949763473143193220990713100141639930273693007957351258573150662106506379128102011639453513245793597169674251010943172632737631597719804277174735427681847161861592309123958554201290031601483044817607959315152322828714811971379732142255227774720774974882888895918516301503805745821876063963978523166811893540951643771303045537171911252963217766247566854242497707277135442155592956768113040139104181005472192364385034478969815064107964424396262126639932698591021624115269982205147702626677744254960536756002134676549895298679360662661420150960409342541106996209348398038366956246207506473925398978435491154653559973186614102534412951862370885720761971261465781786862361049483628126607735573285241178614941828541798943053456731849223460155849264035773043879709159166455558034146828316504931908144022892206844550361409160205856003547088077749698632193067547531125058989873620496352051246253218974893618198009125208600872831391699963181946027332166333356645660208222199435921484952118042390597856405295539107382696732875779121206115206624909310677387230939588347240318342628098942324479381862115386465315473015726611822697988939235151066655725078083128582659058519919043809052202975199904341787749307355282074833880436662365432837397994455933692670586228730339215052019258335152947444874917202384242631180654496828372849786302401856827727462583714694641239347232490247161920459657283612654284667995139630852902787409987210182073544356808702214230582740604078318694475176708148579604137925822494168923411294801036345850582278335655945750254186087784115521518747025018967305809157781631132324992801202460046008836201648080449668297073198832726779916173638613264425064411086819886639421247854841051930587702158436785290013507221992016054662467851362213230591241612837871794432694993644877262140514947915918223361619553935258541342583951523539070372730398285568003370438289997915231251095522531814259844244304090733849653104387701018206361015599566457523960041302937170742504692398727552804028310643375844425484517497503822901931528993663081973380780856186711257054833704555787773497606134509654561331912881321980054692566920305889245202347273499112818872136361029102717619750960209137921656374689477508721392369333341255812594011643824317996221323654932001489702832809427448706711152303237994102776546151066853082775359942121916584958233106897686015428843652868661389291875242757730178942021769050867112069701966736999937748505340602592847604123893741017987163284344543097544649964331331467400236136706011336644355502845300780156622214395876380746652093067693452819017997337205457892991268610028383756962255327931009899228484513769697125152146075950535261288421970806250678448928978385852937100667425252416791476944213992175512994590297557271389822395990310306331535520807017364006124698182957063599658952298108951733048410761108374115044874299591958040351494648694997427739650732146971499445857072798766536141878862399761758693545269563224571558104825981495698310949880421556311004360138710938172169776197106562639435258654913929532945246638475154807575553578219101928812579607433381001429304965716990151658551677599226541222583347277056677932747554931893150646537573410044297902303763506204949604329982981791928843978695347969313375695036066424106125674093298188275016555303556756015787632534152841058036926669911909505659625532375111493110190993155880446478060528563583584446366981778793536340863612215114311671324567485754428468547005088690701121724224393225407449691085720177781856480501802825905646760833516771017795276116100363213190330546395919699477843415998787967884753165281374122155451631476756583890746652147700768669334183186154498223083537532479504202577208171587121834105971202429639823684658465924033183610119914942303295865955534825972635889595625192429832425726412285353355020250459436332345530669688759551733948802145519494560739709368660456936143983804415283896603710585030265281345485060057896405824090560529368769302902031044454434843419051664472384435301788384620966001394127293321610502025406590412489991275634827042510539202294679812598165456981495388292612233315608065886221156807190733625751720053952590156132008084817740254456252220748949981458057625564720848918808703886722986328582629123698284565207965893878839605244668151181918529744195149028678086760144963662145690513655288854123050791500353974478849353102507568841487063525280539060640783643635026482875269738093431180888047811245805892905644270890660295436288354061241918846384455228419790132367234497528137675969202842107741526897523798249046618040236295589627952871639705610750246840014927369656713100234856435872165740965699759058859436876449057235019102775469664547246719721904105961792234468781164451341488668989398263852317698345957654818852471085442368427794602571593104811506386513148884150199297395280371946433385453353268509119114911197762327175783510814922815595625403779576508299464219466085274166082780303281478895166690739647260418270811338442265014670982270357858634086938287868917889970641387820647170733989784586200405716205519279916997778112061326552258628476748033223892674308507717205177673126372477739276404652949245686730320628330205390802847003442674082309032116986529731438804994753986294912307904924130665145847759616011443872437613593016554063526835995084128376235215569661892754373862779277360092820126131425720656935201665710895519239195843024301602531954586482862287522370229683109984750880817264039683780210454853740270193728187314289726678677124985898204000702658054317628576085188088754232808058080922239805979020784659876780541748269773125933521160886543361988764248065960557669658051137421992629472131021900134263543927576785266234212418483704436598048874551712239296369090882564814784068383784697213683521335877852501600855145879852957488159459130893608134289616561215264488424096985819851129241452502630002761935827462782138363102291738597655635268739101481119404704735742739401742001612379933101688809651347696180263540702054069145312981135352977941491180312240918747586656212467150310063083436252220221148074588042524052020955087465026119008896186124460666427023057814570343229280093245298337760486425664253727063014238943579676160409257745632093427495340941750267294472960551789391665790095634110106631877589552285380721742332828343896925218257777513076540525057417109954827646954021357225100879017853594201246997148515225492194951270598797773284837492015500155094318768576520209901453312956913310483127700448918516559659718986134028069879463568037959256361853810519817396994979102135080299809674723621502226505284307532676871205830958840847276343880868057853919770340629243457724301568394850244126703935490927187121709046529445392549497423528854413679863114811920692711220633038379933701464264053485840259879467553931354423491622333360495015006543886999171046498217513391056404388035393838657113844027765450185783934912995027086428114889670073848156534693492989498794153750857337590521486479459845813880047697120457482940835292325221774078152012973429486519168773708724287396508270346923723342221053662051451485279708639100495661262904937552030937221956955400186728767877051959591906862664965483821823021381899921795811600453676443369745166569579908359749649527443659971320161371293847382555713967100081534382769583462663365693668094332795966299056711750377640260671255174081534256774713019939951145199166890411451257151334935623976585944827116304818328695339275605371542410639308132886038332845461966089282130895728053604690309900371508801752771314766953911148625027911122566114779412784440619702596569205073020012973203932119859389051592914198454553102651019458619708035761967531185383255032162098934394524480417896309982590066196666414487245698490689248042419272883724517156817143032726798302874306283967389921859437085397967238526822086118699862347682866858642322381526309466458994886133677631635321134870712947581365180987398961794275168918799413971390942927540810163333983653764487481119856586960078983500666471394728077055552691496093901069554765128066818765463491585268658232182096275796564790893638248624522017881548790817800138932939242684905573683721057657046513148826715525268010864636823472510595822864141913221425422499764594717740907802963872504445915425623083477225344716625271193030113500750623937651927327806928666984276891950010126139900611882793937894370134664334855589170712745615374149213791803968833945591305894022985406545794085590840377383167779390799423436408238600088847789116973857311348857786557172502739206356459245310242601106881947653399811293340452636070826438308623147978168720031330414061088400112785570269031635896138022193408451219300192720127541699584886611034654005733990351210041468724281569065478542593575366906038580233836912472848873215681501697861415630940155011652162199327486122437956577414187592318983597345065315858167704416411983386628316433505421479382094051718967844258658977878383521681479992561791437593905300061681748596998096039959457194988042241459478303681397816829834703950443962594703496335957166410265007437223886987425920316614156683757765918709517636487650611438305768439150648123145978160080024812416891726836820936338816958920284922532031336480807931536627495397583641226384701002576115650936770690193458179332272684010521062822485755405796949662584816731884881518946047793137312251557901168720327957928266136962336172333679858285776014028617804371945120373830632827533643591046557826479222134908363406406156684394030879795918012453479911529679262836495212504350243146649515180465187688836410948649576953406901393036429176564138868120868574783169798917117188061148582982838893172625991399609953242225291488952268175032671024920800193409856624550748890959970992344249481502812457039880423019469019217025768242077264785841578041901978714641279934432390532641887158087534564693147148490839025098790555830878259777969023312284237442674892630137570969884904184031914453272435349885405627648388733268501217858314818697439458289077531467272513347614224625396617872584643696411614507915001196400978024950598069390265100690369574154805424495474722911928249854695508510278276601812004232757446894312674754396457298945681969041606332217259087053698730034369286820768916205575602701175310393130094228697500173983213666293348241348680615664110185817141150639459381606770113564031672442741867791205230853988297796429964913628409056580827188629964669427333135949795750297010789744521855366422036975119234556210468657078528603521371355377294221969185227244874635657505738201469093215364573995310910951216430195744515497637478641189574665326681776500176113840195552092334190363166926269323399044438390942183385092301347960448709283055391526426295932253529432883404696122939530701447153199659767842712142067260090990683486543249605577822355183479197708906075364358470860644864269976187606371915409590154890756307954818151340497833997275791635457719247904694529070520379990843083573311387885195332023791032107022597106858395046291240327306079096950451150724034095392095825995481620547958912926081071242040162818515049467718913118490595241818627513007827371393538061347663180143365537169907934229576193872786080422454805035204268919765601276915452927945965048325570801710520712340059737785995925723839470323194037072314104213724464036124099403944528293287579177066388084809954916729932429043983715009337008810268674133527832399563279556661872163427657994678927102044547336844861369634294624388127232135441855605473735449011900926642965815503794939568465482419533774689536397516781415416763485922153677614842244388188364547834250149709369264809138404326358426188652841206318693408245552746713031371993096687646828608621975191844878606126635903500214820335872581321356319857687719835121944791133882475857205661453642965893195994744080395868311858743426120401392268227066791826177443140429725995375436868466864944998108250165072878921886349574693439199431379043334634720610003859139021775050055013942878164128709174506750593531130260919059356161439094201918278383495673003934520824487990212873296283732712787428447565945346977747265562044915483527333045308326246407002169320953271095828164311832290516819355746138152064120951285033780536258183614068897948483981887323757248292455742818271174692463597474167366068308051877987892549134117627254554519702561616526445784251637842888974653592617037388727898422587014364624036119639065571273139637474226800659895099978569253892111506289133224244544760058888545609342989537535561714211129215217483438772911558869378205904424154017252680148542362044740680825509015792724136552073143470225078124030291540059304198351765576705242999798076112235066038493027694222318666324564311449680018261368938870224389416961933186811028045720225191620056905919296582270827838676241651664956103635083159763871339046756505095870839360212831651534621624752164193329575011767635560610827519856537844775107678581495814359034220734927511205942915651063993340654060766761815722962394661382614976800643809856141778845189283111786832575674952661836326471765590569582474685867923439225997178496975032097957565195291742364701802179875819982777112152240201506894545010357528452253467605958720629948626191689279032887865199430101891466047975433882381279099248378004407258325281921678684633432847414832584449258351747800486636172205253205166126628343592666123777021119528211532236802399044783881764265771049006662289568352345266726707661553428624020889379820096689103558847281756754713029546925439700867465762485651554363217839364114162514294245856839696562419327691012174632486748183590237154682182542614139909111542820696055079751855971998325104522464499964037525013840694542732183490483832430221235533623536982930415239685269438594094907205493525689419988556802252475820729673116957216043228470566988183846031719080598138248467360016617545704197088894235493405154606179224007042348087729800404288738384873315858178852962468719185758587063231030771889476685212260839714790323629722710516677866060067138880304924357466756054481695236464325235128912067073073817166067191785589767402816674077820041364133192383460617950272213376640178485365548871713066218248073848998120345474018056117548841206729614911438431885589991049619997745925063368528899443971235440996594718310431766624055558761236709239681952314883950666869258620156897626011504125995623314899246731184102146778315505015603812424153206553595812322093678071015603926976260052555227443160851049438976161667373353972520859841025343641444809487503701630494148770979710716990486325280583797215229902575547715461183732256878608568626470646450607207058499003658875621267284575873108795923222257832177165509517475652345431643933301428242869968626587674380842356625388675548504420884243860237120031500431244226697147002105702896467792286202017814359479115791070970090077922173323525673049640367662201797685260407695312473095733541196870865006964019772828576821270634391860755786257158563234209265892302791515762130694380749224197354438836337245964157870971269752468466072372496757000638147847862516487945983945737808770873043490141444921956305688707465111420386350361362306754532798374920047416915014346789824520866802940858237388991703369934304058216878970823545217888376119988955418680009077155772602531600634802235509265925458208083248075827278605750860902744998743335880840666587573795102423190076514348338223297920390386701573083503072997395507737692190795687166299039214673968452540414288159731711099485593548792220038783036447257176359328472420878604844896692158742551460735976990775791993692223604188286183039333522470141821259193174262032977637001539452500785477219951216127925036394079450696039115486928783346148896873836470745581552687842889562093003847357098431576920464639382278147049490268673632288115450101533143302106152978925754112163729537356439855186618555221644028884070621077963855210691319409343067575681624266587751859422204662811668370815455015963243859168600413989678839020459042940009343163839746358744854257332590536043495759925270071770849089063170715064810568441180132701605943720478474259109578031950005187794462848119822961751411217617245983053725581466857631743970880533480265723916860409547731017015918613673717671389717472145866597967344280682776271180893934360645773818027826982522139909193392156389787508557340888630589802393236481746424370515815857648970574376884641259134063165021836046501759653554677389413966922439233645084141209846897947737190409992717701524802052422057861022917506348237970900015521902913844571733522321073121751175775620019815668983641935984997086048744928966949905464914888856561359502507349993846839948770004114442005943011549998765819793437492863715472886091523018481452916133390898837483878381830607881501966809818385914597758989862397132518127659704130635296128457902911688257666874725383604260608222464696819820415039922283003889009089910124849319404546749353789563154723976273951602254504066951530400434780762095532672815475228597208689671391790211761742430799807740959133168958059753757785196914585295060517279902659413797011365235317469289796757676032123061211770072025989005273199089364198539621348032192090130015173446423326512023449975972101331752694972942261480461583124080901502462177124803400399895183924748784292403246635719127032042346929842176263871124649291979765078497338270795123036962544458276047972491802661395344600181933210144010643338046182139558077018278779607501389851649514189825520006574198365750914243424498981278175794921810889066770386563898106487234633057209523354218619398112810035380203400323085790832820381557191180634101130625737227143842799032848616991051605760228514214844366401688709917154481426948424638437183784973710059095250950016347559916570210667506088553977061249857647796957950876920984225872039908660312673544392134092715127281559518293820087761296320616326084902144802402350170672866024664572229276619268860765680338253941059795361395928249521279378308621140744131674178156832579974278878146527060775468611080561327464805448911919317344618559344295135129807308815112932629458813531597212641295625107635031858458115538372397999593342337878671494140565877227199731992439102243149775895573787580355474628643897010012460057086173438288850396956587648467321284243446806708159101423114310216806463720123711881109897257648702147640077517901261055045150679696144033785788807175437824454479574721979162285699328738879986796813103429439540657513442293079505194593306118642456114154756813949674502555443724037899841305639593399553563062401187820295175586302416838816563083964180389302558674070865942462707105002000094749117943042331448319405628266013536255222136907174847600520904499467156624856541767641928835853423394920351873425453744233396081593579855754479307406351229677851134188806401129157216872811573846440295708448644387529341029584692278657192332250212453149897735171823625418070993686581596190973096703993229346293626414192509248835180479262554369592674631071917600751004333163764198585023996797221507843739733562884993771147653042852242598145542301918363677416050516802573510522331396382550165231391002104569727737122291978491487980469290084699703600482647068822564471005409841948458679123066984544458226799822012895931235930987004957556741426990090897597181734543869036386906030401378331908332784349154714575059333980764786142149007020180506458022532614869662570742465032174365424370417599467100428130891077663654735947089850265640849827279953801523385474978318316303921833107962969764499395780773465342859727628681711959679300572234814509180764888478007454039272999960146583625180833947704420153987083287029211786633927648374291612523694464224933556375024273974497921441258782294068578107137178586124492311353125602688491407986992181319173408471358754793382798700521536084712272563263822606797881174114803172514958030755809889325588724303976786780955718137128062197133934960198211189220229235891941798499939026091099333804289267250205860081181258321426431700083934819852751109047738181819545026100867374915743967369647836887386462475663201779356544650806371987755816480236739749931570264758927177951729561435299697766675889124154211021522140319435852032978227211386752301693562301642803293961232782132879539025483527496083846737628489540497558512540511833189537784285205715694331326316405834968550564332694781877770379422020589313454385848657663697482214417360355354300889588714204121001708781857205482631367145265910292393768021801912888605760085060130419993568808524368372276078014466956918566628941466312672909146586312015915599106349200955388321743636309775785784499064246908914515793422075011323575359027385255552286323570894197063614069690157007124351681855923283055783485563663636501373649314286063406326456898649800793923499439151085513315840261908569422153876454338751996833261710163443239787156695183780266486291993525101499177025590917327000378729772751979173088548436970725384354333784236873259610875562737316102712440295356799380584582944631224675361834376452436934281656502761846680098912581784034615650144730928215864816766649589385842506099869425352845946434732240226366614023544674004680505619781553044687919176671014673492748958519226884766685542629130551764963911140328125250988948582821036686070499898066601765516214033926419003049748800750337092773665366888406813599969418992921509156224721320945751844592686448321728318018676650377543555636711467963502779856883037435210838003020579798642967795900576147968593719735619666589780374559356347662657375190682603226132214714670732871494795942889440811631529073809900733107261178647142781181141459436864484092202580847706412331174262589184985966479218592411946831793073974161217588538755256517353156246068123248079494287045548449079224037338168963883068890300199052975351009072948422242020144757274778608480672145927672384653809606187085725081064337410161747026222917561114744162747631162152210420690697089875897849189012427147151506740452699636279768534096178520010724192048548293757314962787319138503620133185331940744324884775822006223037017273941965590731382595355456392780068279394963138541629299821624963603097934122470094502535244554702832590435906778558673475925357216245061839288079635087894947708997865548724710062480549068404470600072461132977109745470026482952102804521688332638253782989077866066673972269337040478533629955242831575568104451080229339145030915847089935473638409441415440743749326323889653954186146114767817371941928673977226877592364604422077649687270429768122643398204443219027015000589258910980676212786495123941905439920063573673393037004922573757635479595883265105070784709417379051104013936261299359465053721541727273921994960394198257587565527187491086787774956607078807257434131078991291629863538971286021613755423914985839273348214636525031085702105121586285668345569781283644412424139503671524266227539920651300939275113459894952740859164627767322673720473675728611787180478844256826579445357146599842580535581753678776838361244674171863368505026074046847753263279149887455699976496131299910788585594836105453416972435712247254253178539359292392938915802015780056105052459740211499062293113477181162398715611521475332202194934926734728419668891967518617538572135162111013922472532198470680880851201962864534054215053078202869370571893313102170376810275631262324840032958956505933825447546847105804837868622457742039219828556920426635804045956711260961147301083431298430138000195598396218943780131566321735271876936795120852099130937989929129082248663166732743777588584869290182858718431010868678041803989297505670108317453939868337640152187778230667302436454560433218022821057998318491797686359865569230744092597923034113274240903793719991302527953387255785668415328330000360754224034185443515307387018113608482027923783740153419079617903680508011193928025014221833034618232677302504675716111550244829254587965341934560729157093157437247080866823310814332212130227697146515854992473859060048198023217336309334601003492124828735241164647027533304160029649348194449302369438396240476326197834140566584616453957184642027829743086855707750434074808894112810081741842633654920896054829835915050978908409685100833627488759752179440503830083735143916874176096249596974442745499555195523144993016093206660718751793965948786793359909835226285496363531822556837748016735502884001461616382757606989243178472618958582922144047522593423462972247790267097447401766211032479219618094487510570905234502829867206724913563800048496687591130998678643674092216290546544333195203195711066225432889564642348608022834740685410449340928952129056528730751184840796959984321466876545456841405380519787771976566832522806206635636862959656444977360817138000621163221519413382752185863131918515729834814968501386198407916383145243529126179823347201705588338569292223165411336871154794864079676128864268482564881719881540922814492337948985516692774508887035846032582800843291258446496721937781205228756724294970879849821152867057708428399373539591256228654265116411386734266545320200230942415464699130885976336808449697693779416292398627941428105128199805735701480368031483298347534995908806238085223644747570020481316062000589934348953878317144586543779262639093957088330188092857408923456013275277558510410140061150388679245083162916577425767315356277288292691959566004282226401812866519858167489358509365368496718496709322121471449459847755211777936866176093123296710241870206137912703377905209644299160546677461410877175200469330322371638290511673103706320100282868903618757733371381405993640890295389219846662937911425727300813346247065941314820474725641699859684936349384992401786850868419263529836619660343077468086845480173885711459034811240292375195655878415801608667385271967204191373331146615845261891078533664600443329731104412169347845820028056869004913325289849182484788175731176558059365467333845332695408058919599778752046550529121749987508688903552982034717555620719160057917647442288294221035336551561549255925071289117522836886468198954849705103315591347881045120479051180728668276731862706472601895646644443139639354860201849592674928830769343452046846641023715777274045083727558020578843424464547347147633932717528725032952009879419369083438606226723491818417021562390046457628236387244218156505288593962076341035887707953623065830434651318638622235251415751806823873959213930590398870551949799193150450483733473584938643288972873473096959481571981805409609989379689633033383492872401382975791137242689119679468176928629268345991529702612088139091074447636121433583286711460262587240916975202319987198780883257215279955048710524746683992066418151392521146936878714152144556142327841654170547966449049981213346903097191097924957762265056628495227962690352567318818080786641268480549506347306286588345757857287733150187408788322803267857921550279071828145131599460007097750687045590406625284567474486036518643390599074738827346258626810606521273313366378547135092347461605334939526969055699063536724993007920407627415497261200334298232457566990564502379114792686633060388382137859791100826888724754327879412169375471408859376155473858107170184510513588924126614442048664707384947847955582418222384377593344903424082870276555805576417763019843096207464623504816947501810358768959740633254676449245459353876156980058065492669243555888311592313640855624559234312727226119132961647070933392533436734348612343300320307534465421951072926252043131973065704496434387106763757496129581971789049975579538489229088247934256164133810985143572775914344799296029861597558923582548498125197960953724613643106039629243374736042362254896326047418306421762271252446673876903509030687590655637191899531368956042500256729538915992478356380118778694224619907831386070409690889437689638920847816696355187834602287541733708739027708464014710094393039128718518687414024378712091275305187922805811025604845433425749881046376856956924838066156068322617369564811712869661871209987382076835278130331362407521066883672219104650978224441974463934201670716395149189610685536415396889536639722164163572288142131546155305273038329454951503408548514717580722143574219161070905884964168871996908222325036307227752554602746317814194023032319266945985492442262411174597383153977066221004092607199537401106340539494806033691394153892234379930475251788160598232590675047328742519365005824527900754158013078064325340510811688169581368612732715551273107752939898629847858725712336295670544243333629357230309462488458995176659332237451381106037049414434776532084765247495654409086683192494894177066178594304307709694474500101631620910133387442012092530547186375416975974093527046207129888979743994858122166315814103602701778281750517453852458044549947271304616709532311209117621884677056613418664963011321218791759145982348929754286477414320592423439751078637765421501925303804927349218717413652548842749612627315521203817943135217349148934774871960385985919491537326530477556347028482597486598834378692932972713809022107892849340834980531064568341104012594271501803054565401338681463932488050854935223183068731026940561088261019659677702677350460814264574022975800582179227933786551640141591181890385247948176647028575730970056409969740854771066858983468323714399249990056744323517083105868932311114489572488578657254631283891464688022209448018806462012615820278900194144271559424884732477793110956826597203310835647314206193584199721813583692702964453473741537107044424570582699352981947818180808911919922124931076004232259325701454197035215856349788151230061143269632203651246061674786370660711517963778581627564116951706331651974402839738887448265569565909156014209071093813746540327102550017159091036351023907770122661526176986767239524160428795120880737396712730809353993138667320825381362096801876543718488579819164721762817810400467924121112878768821079577636158133102749090283884453668189356900227103513075655356219967879479492446586123774889672260920663330673609030040578559411143784092407793284022236085725044307777384702185559138443834136542461451151186578063777306989680825430595785628021871105734204248546121034159992824482102419447416560625440723118279533782548879910117073920728047985718635678931320526318700106501163903407700892389924335187580277140887608788536384700701079076341149366032686953906050913425799465399767295154239971062409789405059644916339096531107211489250218951479312174736887302985424663757974198466447842052065346800378974829477619448712652519367456473871947655917274348856378376005814324831615140428462076275679507052611273888086205137014915283695352638640712902010825987491419967834409928625728582030305394047068056123635444952812348276247486343941463530152957663436171410826360927959849322812629162469206835798937874703048014798718412357469915244319900485835747609365419127345948837948058013000867202562001451779471173172143974786667982668969460732220627456393796917574404443590929650719638496964248466301811161601569152073210956469348116135050457466826049959530471339872046731438696591041120863073643507652217386589030966797713449653154179707923060995584813561631447095458206616142135130909904874910623546052861287664807623985520497050396507121191666247036792379394592792038126424648430653231644578953626336984279612983257106752314036078155596858980798712459472466947575590271988231810417592914016775082210818262138703057395554711038033607909135394686766116603489137512811978674678138352329810136638169775974302410984827315384280975186199566544031700522790936957080045691389235286329724331117903036847618702343442088329826005106214666461261474503698296403263448310293078954431780463495804027994067489241145105286891152622344740928347462514078745319341453927670423478328448126515951152331929702516595950386828646049126015162498122353015917094921509068167939126397502991839920664169073175078424744542110428293169332035697761127811101652926488979405505003624800682609191081087246989988789110222852782024494655763198300599050953095701191410347305435108600110873694272988953029451149703970995481999488391371325192808687986794525610846868292689179027302110643231848630414594072540675256363809078650385026103658471825888700457212253927993776244781826507835568119611609987897192917310773827364405135253626371317538277980478769701840939601446367548063208366636060134455851496060690909092055005832426604589245238984094607947378995771555952056167485655506556614867048077168121957059513729222928748358085106114791768559776197646975929391282598551734645974455411746277214857653960841852443495123953128666704625899353730204437548953729751014926838570974212039119691392956135194022189733922008551431110120954958686761640961704291090770299808992659050002647126039302451637598559266648331077142934922338203388030242225096422716986542005204767514537636362937008043143085535996618857696370499399486196302092602394316882117531380277115863612059059679035436746220031794899318511007258237833613248402721372278771996415586463815257316449810390130397346497986319450065486508156516693115783124360676139685347163837489273143296926349497603972787130620677858818380202436316080741631341101421659153046908357673650797089536786928681350973458376898601718940138013697870209114646766973186869949048865365162408340158264342384538110812592664146906696229237960306929866792746287138721244395827810054383156019386796497662444730522406325170681008850051932501461766355950618929238113557070056128454566253897037403297226382210396810726687075928536359138799666957545462716338984880890014264694112092580483002871921048644448295803467830415903813831041639402501351131443093534772083104494254642818212483242569622070746442172500547415395663186236647126212342219783917498466066759511922805239842734299140052215959378375591685632816492503816990815070297651294386603177956916565461080177501127132375269366091592144383517603831215755909524287076805475190044697763742528114145204847698777482450626568870111393445284839878285475037715421216293620573316929403110021088440064979700107636994440185031291216417127441272123948702521991869711327408519627419281865048055771630279047970901714340857840499942390722144140859886454458572549197310136099022399177897373925143282423462126831359063154089422553735536239356742123274752224108253308886930339607443426464348121751915746517791085569447376141284494306069955977019416088192511081864817511126193445196092497073837479590747205613367137076018028997626475073625273293392763982366977338532235472525924997620934192266569656715200745288511301589979904567425114009783685834193568544484827229783383845524269219416723500256907090738836313234313570306685123564866998094378737725536630165354869309330474833123566623717404264643529798256596391591631281257673652528945398976542006204318005106401685215352191092138832969119866132426666750916526736720751655865786090582094497148689312013401568405124244974241030474042466489831369058647411839738278777334083963397499512073616177612600058797781062656076398190280177860385879405126711763754946098921123061643213676353269402185374618774780211321684439146993908952722952064843230873424453132763677660957194698825941470578697426316770730618729371312491229435485176193971191511108067187083056652015513961334662463975034440342392977392479435997017204351466169413650489327687709019411234229793242030008841496999525276954916460309698406263907542998630898649902206149032914535027689035039252195307466982735798252794964922153292595625138484364162185974233156790147517265877640586967869688846315837937770631625740893275473971282490448888456891790115221394419489635619534629488714730976849720426183679293912117765701583440660664967015428100962161641667529754953724694918484146864098089205943429723942138100490254955902584155714328482384916881541091911213281751961124533408022195311921940134670158735946572246983311602921315112580653195823946911363284080228969148295208623589046817553621355209385938586870504664848872026775880816643163960870082421581127780081453356596293122175780241502296331410645083845077680638852892586369254735148470161203003818268295922991138607961061696433991775856200328096685030281243457346615663085930076206057786792661213256158055307300825378498159106399316064771777636194346471053919363143320194929463272025245844110466443182902279240572556990338261804778360502437469073053822658277531816429146622049694349158387722684660242815684418907554442028843994429821177862158293180277494924267422597868914544128791474402958249336586845348558233985506495431412320821038409840947732922062242602376475627326986851434902390486448675291288786954141654786815609795926969548835729829839427130765672404185621875977946368561552465902738220722752980899943493015033849766754068252026835226918324630586940607888871139937077299590523087342005016907250874417350268734117919410247131550279032359557433468336852233243372743081980355406227142319909414912505474124642523581743424109658644373144385225680377490004871933299333924093236948841078695160783818373521903479819143387524660217438874561622560386832725804630883314195928218056136426547682297748978694016194358589803567835265740929101079809838771662673082525306374255384158535799911120157425778995045371318725441244918029230434835131812579607186929342631009808441390381786660065993777801816265643799512440054346646090583149323357487821890231840886039088221984595851803326816529831645772260794259352023814220222080264541408362601398240378623314151100114416933067494813918090840872362495113235966315624513743122217623342132536005022178721529243570976695375156576955808678666096013968682551932853337229586790796132823176550565076735480462498239116109984587908602250828358208780069769089093198759954542037966310856999635604407504074790566245631947669074837092287668347123273666641192156601454550700717999525173534465061473138527280731472600022567564137498591800741446707231104552182338165473938305441742517445923113487274108705779762919183447534317909052217929080162432570840659887595883545805512182398745727657057498709987489930640243235000193588346699256454887042838619394321016932077695830638907674015580485702570903265258204774799687443028834823703196987430416517115728563397363738311351491459455429256873351122282501719750307494394795758259579244891939181482159310695193825475914964521887365285349897986076937131479997329145914981102059274753035511413877728437269295843728720145022963671480027490863921185141505413345571332586070229106674176555033439684247112591566891041328881868130264411764854089094830660938555273342560424987393462998397026092906814275523733675406665303100537051077956994869957392304513060880323950479695357961009123501984281486843497412880224766445680714868263061115975382448182148853623013557911489352273240391671876344823642712575825470985528136787699076260769663967045026365418862138522543049573114910276798205366579110432454970738411672510378035935722452957556285938266955768959536078708501617683068988533033578210690013383408601678952049502155929557997912553931060869116009417007220930739347857959230219358605023728059660696043222448531825034806291171291581113079099303325790397901699871994995169186022681196956603156908403719312734993691797790635791353698734169655099378479666932905395272643541064667436435619614962943512821684058451642129736707126768315002899217642595596385466992790028900901374826703247206942833903016345840709653145647403733868435902694282596206514403881395205734650217390112425358270873351876939677768862309597876411390502898775975117299019467375820517797508524306509534913178573402937945233518084876210156665051941844426202092519733605974028388710212076228083232819962282926465110297391472092508012153882098126119926730824723752152473922187054211674647429380878934490235493960064016384445580532976639373899431692712884283852862447356192405366954938486791664447670493942780065885166225357547442355627215411268152655188406772231537608351725913787885528502739366240977445469187078396291117364897412743644233780220794344795825516419091350797810900592207614720840910064285827454975075548754213325237174003987736543402000211763624192670276957741588889435853813268861727564658158718557689446244720591572511876319466123178018225631294233407310568070864854367974030070689605357960571561997882777883231550435795029768239654367541690484222360585178209520921917917045516298868378784939703245972928542936777958918833251403711401453034849002285019381526405064190665195915100230459116201734033301822337257873652236393985153531031550512340872945666218949303350259388760120940791092056604868302976437580226262692837242166678295919412374340011885341077740222833346170158596557058943354313359587549221125257830553432997428182683848959029764251793025088795529719453680329985849762064818697086811326860297040213346409743285552468038194928014848729558666901164092229333655919032853081272878969104281483211934249043016800806729582661676438089285059222739285537732815281522955938266055967086239987250971187299110295741610617582015957382170272871182503878577057752757021828432588384765364243636200607680097874958098084880440820564915529006819235861297761795427408366256841591325257300971338888988745819630137887485471866197624481959050047950894219250538167657084201044317990426491312507173807256381056050976182124997820424387791681314503977683771966276266664914920518511620288018820308295424033780396827303775373627698479260816468709271979186267633961557598323897354417862833246191636948649040692829057111948552432278668063287554377522618290557391072899502299915867607575861165499502085320467097754676939535224701452740695466789047643754935951070259079594650212718832871105670115524797037783913030609414433177404061238964927625552668672418000340342162568110404835500975002158159376718809659112568906442542862792175687417497346253451867361364098369575793301370209419058933344545389436502270261772900628799355889423367540941186927580268026406671640495681157610668185148565604354882338060758275345424804441571704848314801244099400763089555647255370340403056815913426185195676974596636025302215491553757392888618025826031261568096446393393414597860912417147451434784617197328696034979373026839107230902627107882848050476892094399554930464360254131577518880501039198245011344212762031035009734073517896381639315254256564873842757166493472936044007435858518300374998611462706766094780124894145847662699747213839114435578901322570413518556324703166803926781338260722443475501358192905777221015837789968592134672970252390761024578204407731320642268248040672599128212720512612299853889698098802732717990749716860709097519219754151510843724219967524448340964951732408291401452060244550632474739649520923108878450257315224600137685807008988762159099843236174022250739149563516189215892650396158763749193023599784350669562901458158511174695127303230002439587357125337252633528719782198908807547480232301775317896242345680911107177323493346274106837852714567661838184253531542148920773549631891688110222164081306453112975886698166209753643303530888713700922772734751425985007789898109396174421386317071955839842090512401202752277986984937102145873327095033203606330352603508629494262470704538196521712601433621575612466555224630706775427863605604795176135823409687250284307979607674616686592446448254416181772108495169826561274840114017078664436980560518420278290221577841843372352061716815740287300000332910483374410141335627458853955437623770218879264312508110257360041568525180544420050089726348391194646913352219202891035317843157793650458273647565959099411675004795047783128426898240102639538208404072908045713694419276644228967041199202100280967011135512256884499784130289073163044680579184717522689705969414154671785447771819140265607472311194216130092795074627527791345400551177350810446349153799797864245083392551829290061441627194827090632652949099219890862601419359282004692641501385119435852050542271877938792787787474562724744502983647911362598229503872123683064225156267031433772855875173282705031123852722795137729413822404038930510026405898936486562959689517123581009186400689905889054866954784053243809527452855944108202878892670160253942621514889724831026532368556366094438676646066355474896323941157437269644947055681456774123601032560814656607865300508492872763613052823430399458226884044589679983416024166620537805221199484401207329358991155276784681850452024878632268343406462749176884038578756512550578753738532902372792013358304129120678469123303473414366414341055489558381597244167230189141280172786017607961414555994792038198743185837683949435188721287925412310251244981796990898956993764809982029804503323051494624889794259481408086697818627476655987178586374617029350029552289843640072691332095798834589184573728070535593859431852909603789013279860463210700520748753975799908133913943877595255230307706268633336353572724316065044340919494053732203139874503828612720125591627605780030745437292440508846216232539460635152577932589972146589628801429145421126352303242373711490236964754543100945755961267299331422113056716507808754629954569632758704921949895070835918083485252477889440584755613549374553455033170898845233225645190175789889907710502896531772558900034628341124096132845721169866494906926612677229590798924316669611336610633224964412429877179031524023425837829933367672331057082281889042352171058332296841700055205855390629825651626768373514927489605110840037514192552641192046234294612472744077198207710417644586358276751664620295764618630506979968328067835371651828146768004946400079184365427979961589717197287454734557593570936670895271709902452918487740529758702820983396698662774271196862648025069099776533838542963087359767282622335706491251145496362229820704439245414057381821736827255741812807638353892880298062970095499078021009658811346263981853774085911568567612229082876778615614743984588992027267554133536066504044613520937378257214088591564909600821347931510548045059846474616913092372359288045402387879357422980516666490551384401939225247089366064561960165743228609090686528709399992328340428891686877778897886329604187967752381118343700298513766667900372353468690471953778179707753416846152446696445469201656352722918612737196095481051959006554214983248675719598627088745664256333178867410388800085310232723106501717072150131599316883487874799401256312299697236121681313562442905882000814167135947367243914962287275947476736233225646882575587425503362825960697793157699896776288178215232417274265866326257773021598255026515240117428114274712927214377512277443955611954504733503565802192463906047009077707241138460358923980169817141960498506342699887793068032962121221825395424955554756032618019686055988382988020707440232971860231337433221064658178595732187256431118744714392257280973718244347584242785972952350624776572400688716649899704681150395544812195407035238712132316277616091943858017784653652144143152458240460767173856711858159030648257489238918398929485451598871217324313284827530051854096204772820963821093461674799675619786077380575383961868174204152766096609361426871218415737036673643631323803863614976211331754174982900615032436685167222580815282702925791533833117084779742955681660316641119360004250139509306955756324489044759474026721333778760618255377270040298497524044783440918016185177752706413813199784254095955316705986921620442228800823126293175044951823187602861880052148338761587402419933858906691172314067473022801249088269621636777679612939864524935260323065749721355458469323324280980019276931670171209666128731043385261691391515256900837726823363638367089160982241187024016216296969796456894761317288903885550191060973691957174507809586749937443449596307453205376215052056706318639168604621350813294687344622670235908353040389074100128558650875017307762701504806079263267609097022304759968590876243097672233453236334671054125576012148735249042505343304279660852109520402497360051095755725563939874315399504629265830692680065986756368490612747024183199687733847618804462727704420832466992150326592721044671433817617736722654993628905848522871036129994757609798631981209255783811752755514134429093551199139221304892215240952730975812514856348515546603733269595384785056439414949512095070460386486231095846097266637951221331839330240716019908389171162458646219357967882616383451026815247721543696769267017304353490375384650459125074301703723436161619228447880134810642072652838281538346080891848493720996102870838850874740890052097908122760490508151979429919620323001948565996855109730543363329841451228161292582793656025594435850937378505300985422291773727495588206789049247575878182000942790355437837991705808270888648028790758502327456318204465685457629979285559525429582525919068668918505993997258791272744354132431006622297511336754439279995716631351515250206642614091006654532086432911892444433639117827847650878561740918678843687880658582589651471188244791157385034341364609674283967116291288327922734599499728444145754452865673853743011630527245220035968855165567363871903257758462754381736831584446563288431317309350218689944812798826138741900944708473712277604890516607896413255237620320213577014359331916227247946919291346415872253980772186724943742943210513981978226388010891632523565917156448031187964402120634890501530379264881562150384553864922134041033874567208879166938464386432979328762225051463780482367343676473719658351325809692601969851330196683284100560412588180945916938215804539802321473253690894006657710075570810550643259884350174835032870896490719123572408869049795941924913797460532863775762328260677249364249127476909749111234591615633612302273750844409169718355344176867568937589853693417127242030568147065214698973319733212409876754261182271298222918483690560673403181932020644786588289677714009659505925968218688774123713542007878387103278894167068351933788737063546252051401755740335397474381546186883830550072023088758210959831799316661983075837241208709674995481511995908600239917454308932606804965230061496235265987518441202436232312502586073370046524873842332027176673154852700367787174268755371712925825031053761734743109427762013114235260268611637184488054132408150659967585399623316240382120398074058093392736168002304902510007043938286579880586073990049187492425026083252637743866184641437706983979571057908678998490808798162817974534564735810777728226292996507410941906793757108632573323112417472460563685302217219333227172598149206846758622970624991652540187808930606452118901418745565078477940515306488445949191745022418783486282793674379714399329959491286068804634266359697579968859924819151621944523402248070335117344583471482416620341532440669243443184061236142929764344705185513406548947584773000393622145785478973330299755340005283314355901821858808499118094851243545663998375467822985789691357398523763886442487996293156581419786349556756346263252859666466191591506209957206580618124407175596917927202434953345150405654204380822584140044724074876526307826036526378611241412169621227839299404911976805220522886497089018767012070845927755329701145608059655397438384387771202121926848601900129504045405885356667832498811945668373051875603823787801057579719289845294543851784578119839155657532475568570050797792781546545061300656937195126333761890081003314551931234369179838035810146626758742495829088855876459299900144996353019537666859439665548782439902191025699673939590535744313075518531801843422723909275097387909021522589644253208831476001863236207107688064649461681264501329969806538745465072287016012251211414785353399987774911801993689570638818728667803535442059907427188930723099560020278926244835576278592271729573290167303772673822818682267175377135055654500486780798180021478697274948645246017793236925140681794283142050349199750108182838581331987083540560620143604222923343029768590828322173174859172149361472883678951788126538793038664469686724154568890517623879442374267368207671062771001479594538200295895556201339506998425563194163381698906298453350639829494788206853636234520527500239776235682357400041565376794747745229375234496137522377283445713708068468360435539881164125887644467200988254207591046719923254491001364466393970783958899495221314516059506542925816437504643601629282388556463704407890033887023734594819059862457178353692104707465951782120150572614483326331565199031992433920471219714461265356339352963721219939381136835732733721441619492599846568642128735756241864647150097413112133417529288308903081692125611193192054702676840523534175495633331509247280665672313190102352833736324780240402762512257654435536360691791885744478492783410748470272489925457449514088317717682983942408728023138195582985845357459055962680847411573927058639638931938180008647473349419697565031571066172406723524404739375229136650037185703098466992473676046579350622112686934327538599479213719304072832924092679902016276009825880232045811779981856109473097249853125482424042642280735305251419469485597910402973637931466385548735235374715142790260667888790475835070848930061487389704147909593793497882005386339985204717829704939645964980175312253451689807224015945458337225797809268307026661402224014290294297614273834584644194748638158168573221140847097097682148259514135811809896200742635772822462236197315036915651908756871418597074566412319798479567986144837169933097965607319290032664875489385981204325300952364084141727775423122859063252318794230259259088808639086452980307212237486410798344805107453975829790774800390555554229236781416289940059124173929769817610349082117297693315326374930328462543862245368599850029155266957736187385446162905913752041011315829765961982090256049664183276624762000324737619793730009613898004767788091185476861424915006973998063096069117866339957364506440250364686196986401650221825400141338437354038592470504362249394169095335971281612881578107946355827125679272081741512674440777895785809157732471694140829528796497380259327851375547375922199852216898606181683501293849100657060619418030961315484858675829290961407385139077453533249473213202020345383715186529751078125634745980338321013836965018347984185443445109340766412793022513591392514219276265547356774652998341128121532650875026281146748857147229531377691603408518106650421110042620758853566676858139757839466470351817468828887974498112993485309782930802421787720412261902474702962110742191016328836458174039945957579729652645775172922092842452483008884290271256102883740488653429424087112064515077638912289115107552886306532755855483055958989410730944312028238950770840456275388342451297437494708263564547764027336856875933670853362755515875942259262721411616828191496613664511317137938834884402564812793640048538140628239179465890498187726752576069209481633994085021189440978055142615303713091794140645437345348818294689483102557680206834091240104284053901469361510743027123098965174653562652214722114035207349678408496328701733760902962357529204004627377324782208541473829942053664505828706746879845849805345161465117832277076297845672131205823005460441444206264604583784641186246665766851094219705178315473310212322402247461478775026060753318072004110629855277727905220529990393976573264725576160557467443788080589186620000465272561097718639865195809926276884002017542596955956489249530283816241326300506446400678436438180111298956839563071606159583659476671254033665003298891932688940584336985209571532735846245718348588300617794854869540895656552037214023754566642375927750160604024741038150355340617807101131962688182463061910389667336521163136756803350746569935188090637513463421075308144612859769292554841674586405884540745290333440961553227359928644941267833919679547648279504881863752827954113688329494887816013567332263152548529272437466762511378458687170650528840082050571110107939503616043785794239611783402361019665896248742191933387657889765725472709609642779858299917046699481487370469643981692482061243814315595284925926167808368020085824980790745827788477488189935931363885091268876797965712789478544134165071948301633496962660883919292035033390273191990615922688752294781459809599239703111284140486513218591164012770963019417115905586773919537487064068548465351691883774859054201758763733272621626458039510072282680609870290515502619512455762791482263632464930540719954355386569376302044112362922159056955038961211196515477609046026327998237274815280415008618592661997601180133647141262091630585459211748808765603301642177414208826538551106208511214836573461331714320273011085712833138424246602716478035884655994346774599386319897313667106591997336469541355080556635155479002662647653575062919043236712738795603164757373817839064197593122633708373733621761558306591597348870425151150346195197039681391898145050210171640749854790349479925431780680811175939714622080783632848226396920642396965008596644244958529913342013124985566139099024727603219093653232030384567161303193220271621621414537726262015241643012807403610616594778967496323067567834148264632437985387032048695046020262912884771888299089581535548132789070583908330469774416120866313583653329163853130541238558078058061667776932154714862341158050327562760070955572104827389794068560986468257385704694635959818298154034782329736224497744392919940869101461826649839208850233845807548858887075063267748576461759270727861077753521446951354043390860763990030223957003734531407742806635577951900556890313541413962989826757889508351873673577709530877333779852729835830130125751605502396332283029026400695910156160497117901063061501416092052878708894262323644815436780106850476022643698540556755110413386265577906569138373606040008478431026395588507855361996514947064125916563543758842733898333384007775484634717456429033845642862533386726882237544267537896678186387062701086039555122684324032646738486324746709697058333407007769833670707305782396790570826297831575807569246939950565201755012304858276671003407408680925894889430386703193890161672933834029086638481631666505961818888139718138479137787519696800237795462950349383392280493011559085590963758876555713601411602706928199145914515267038329173347080525696861843825680463206160681018097521075131665251318171920116546420787199072110726486288381628732898126253040071704102059470393314356321832008588303249208457106771644428728125963403834577071562437582660291219973699592213388692394110333332902993404756194200468011450927222082074062417714632109587285587924537427020394042623618313178773723611813465560972235118288575041967844794472168701376587880607212089349733502334849323077886637264364953141515935228962190453189691204668114692877481568484352570187044523417550853331703182973418882161829477469406766980065464814875248029505755006905718410492042866374694959557295385912055987320378745249659158875645265926635444604927229706769174605683275637024835727648237901432081558797071968653172581584745912298762659853410991091539327981607717370689531550136516945961557625597363594419884846390104618574028064105216059170796400817696517159929717553824260183608382427890018464085077376645616002915955323903615390268401748154772971770875311232305327802362068133534730848435140127135152632323134110742484787111909608784717998491135752234450772929848115551768756644361058117433721293679012601619822857941893595477392592915883594243714807658608284847780841360324098218985666264150574531502580890968297267306289290086816875888410252851722169093419451039146050077866634102865789027336385530878313322432012713075061170776220745731497544077869141632627267624356891855489384458198733879079852148584394384291149296154583006331548926939255171574943757428902067945195600526472477571184307133297465204806055321051946343408564131182346117880935077382304425937988464608626618916646679858262438792397321821847194410554338889150485451012421206805234589215669394004110537208936496245937305993153695028230014032324861263263430000523047731620811241921781457130806611273113948755428101553522211015547143279155972918671948635064922750429450373195962086627209048393846421722046460340196304740199599177301119381764603722304086706118412041517517058582928812770319895748425682546859556046033259662200485043039195965214403097567777923243632249458855213006633981592334006245807335582903047395560657989167779123098719426189876789801609137344707732242588818431587221661180535536584467222236477428133994105321912040384508742549921657144584500153696170982170682962697052751378809003053702964452887545183427661181161298461509382760382715174223026542598077097802734984776473073228065916284187654311322439421664568492089823368494110821723286763454233500302789217836644174060694985963792310889101170136429897070203660368516780726038954491461291396847686005138339021584731790425446865779342363893757927360125596926851825397377712567197063790186144447205048839086701842949963979252519753095135459605113504956619443473605653896036689867116854451028764796127141374682919482002821803973163370308083564792400813501832205358817123992708146383914766321871156835739119973611578496306293281759783090147711798951750813279957494266286256735572045980440138747679383184639915782339978513315310887176813389183871836087281949763977196464565447901994850134570086352706207971943815882504772196381645000628594185290568458141989020634100808276127309293584938886309925569224490797005163515375876712729683537738954934750314721654523956536922609468087079196005857382901668283864369363292657194018577133518467971362174389900742158391308468320048928336020346380482372947081397110240756530378446879092942744512927111822695487149969356904005545388075091154892850402626187543537953634149123802863769376425226797088293051257276102985740274098450964740712407524197519463501277067123457408882911942087855195125657236445675277958576710261017005872542009158731208359597105697772502969066464541017533854665560429489087977430813300797598197751469329009628300871070169830413305816332067377736604017647732356364239580017431269545823611255938162637295483227477370737725291758317179244906014225826314009406922822087565297623947668655015724188854106768421683314244498394237795576447718645718077710446423050323549965914751568295587271570685375123277859790536967297078785485456011043157038504047197553939009466841523860636890737728189129094376263226176795845603709333884270545168502429406051593366843107750907178168964859137013534132860661740664725081443416293651035370002227971347804684756264555799721899027224464095331877695647461745238227216234660945192473575248391428637211707670800012725730397298080085928543373604552490002781441944912680854063865610538383662554297914373993464937531056513431065496346528330096553156755448799652956523619343027539680947569584491665250463712612858039373291394703308528833506935789946648397361858897819887638779002591630412555558623988163516719110340036520249209816464502853543477269891937153636453183126405549797002692279116984135401329299756141102263762542000665648865525951953888698966915030754123488778035745870764883074904103782654161483563351229393227853774126751189462395215008721737937503855990204851548055476498940619868908375847375103193570832731008320103508893196328872259661814406181099902383257842519806473687903547092866550893068970979101216120111773462983360198298101603659694915799468155513352178617411308422930837600202564107008887012130239678108564334684342324492271596373873195021103590967538838633210291298663208848226894618365709197393998735850687263739655554332680805006432971582669948451710389056204245316178197844759137525020434151749314470687734683003264002468025171681413965979333990062032315456199495170826622253444524753512925079761872596313375455926754764711552742558991805175832820549437207752341823912855141771707539683112682322884115068061552554451552609598175545799936096728706798440000172984880688236897440916473557635454355533348919484750223583213584012591659502085511713323655335390854479733813875773624323775316257890802241255571022079189452623588547063368123723205172855801388119404894209822869352637654807141277828327224830916819956088936384117388450994561139134420187403124454229279371635057999294750634668198971291940789194054942926143975077580119382433385466828380649359977060844871247581651527316196379802965032636756512080305424534774248183944385692788105509959110024704008812109921272262426169813374697059087293088853135336401225770464811263287759704368535708992868858032827589978824392037253793763255087688143144398858122862855143313652739702735040372871844569746182469724903735297864065750101069588226979502722319502046671512325062078946546201238396113823370449956539300439816597497639482495638315161882051103815295496610680346410303847570900761671988586166152828377082964124529216244444614667717440650692950613566330342742974171567902863585288996122420960241480955044637823215192161552556267269605563591275445662810861907258158488924884021230422838495313040069749255063308361028538765574793240724100899130342569353883126057322906744444967448856376534670109384588704427112034033083977436073724719002232135781747663219418161480538034949593753893202043079333716850252739460714023005436209927105571111234947778844912611735975530204848620602417130715683566380146254282887930856111653455918786706972689627034405802193706883977688982814464363775471957389380854290409096170014031916519881862918304620769209516391771842598503167407713574476512959935441825863919576355260521385941382580039617646464519900791377872405057636272605626068924846057314722822516157827361075057743047527039617196144259729318796414110509563118423590152657170643533647814037470088002295464449581355316818719504528706512166862875517179089976644119645290258813989995023112350697904995430112619591992104900339400372166485546611605019264574465103096001668620381888826901974217166025410672796952193148114730973550318505667872592994910602306334862386931279641970936799838794270670800194013783360625426332137205548474123572189297589391416330004426607837304870344458902003941782755600016980698095561493845421008623550972804123779001614604204137689026632476417646633756828688227452783839425368233389616301139197428692050732702006424585398579368453312785588748891093450684227784391224163045242322568889540544062621680057563101346751127163666050150685729838124881285624832176414901837082978900404094626666162924332310950877432541249761088884218475079291301068299481064851620474967010437801727692018957958473749159988669132987196785415662150798230026019884748202918975766258645830574438481401435367102795251018105946267945699317408066256423749409520889528665279239715077753450380476539631913558959419398068859504879347790238887553531397491417622379313538959646653055050237515799593587183521511724750258014825652103734933600724266790705362422233067828845361128922779944271053740194848328868183132159441492281741534180596723287768088287270192801533022876983559885716631473081485842932809356435129076405621984063861264713083671984569801387489577703907005335305502053341011233387649029777473934323614817350665738257856365849516408897550152449272721562323779384341144147832464148424591643136708089507667246526041140536978555909169973963530862344929042659893444773355745467829025497140512691895764517991453491726160891331468819671122569093715738383798479453744302308427155474776094909593205122400713830325709600661617141608599648483935208688193244955639938463096162075123306985305349835420273973618373863885171398502034285842068713779083485033867025273931986240855997577531610039063693386187411435899214357451614682578874030117742498169703004492152240272326247795343612011038185341593361963146646152896493213705382687127278209732400178963507659476784754339323735551703982061863777408375489994460743836399388584528313513948073125105929270065094158036812576109223273108413796158398922512542932477836314480641656987179866421863969238749291300010467646379404868082391146897067016435590759288922714632284875939349830701927424910305951682596383911692083316922710636086829399074744881799874565119476331221668780722671025180129350520432343722124262052947277563649726780902830710344566089828528276068132774111232944090639831249040787242875961143621883577363962188787201801801093788064812357334893325954079188895314990882934410357209867348437563455773007661614554242717658187353537323264803818544630264049307358489693098091217393449107592461245833235274659757712650719414436116524278526071198372663328870489762220542511430415427031442220537109418035375045798026342287589934839945162858497774992046096652644709684503596841075920214584813160573552185555950871466354894645979669669994828880551460251852499564328568991114852300766697999138104601064467485577022278692224196080888725195315634392207814949546788652373430856970309617218130988680576496221251231840474466647826284821870500905438083420890684672079090694668474968153020825349474820887197703351644332971091661762650344744809549811115399884553975704394889496347925794581449618567867782731115722151936911393909762663076570170439058817957002450548250418840708053290699714361669276464824928523384196448553141111379613033244721541990413971209577706652966002376201389850634455700989844778994246110929480596117066784780140795688042272069591735673430974784733767707243731375181901395165434899022957734126396666775220944468308580777019116193782542691769122299714106977417146016143913523035643436350276404773447557151082666764596137248386348099741873711135805082797513359657024336093128725488684271219107204725137787307104789663942371761578554273110337880608759477149441789655199693050861813017263667726988801881431102331705764143988247965940628017740024951424919458090260623519288839440228629761294965888233406496183337604248506642764586995385418597885722223973362866493712450908984834586716357066489103991146528895840685968615981248397163550123157724191315599628302049615679080564907125743112212629461592758463882516437871130726928901203155340564797041944785393414833348906966795286676040909506735853803890086744920733547387381299268616140814262683948939188086979935332178966299270447110013021329739180187961621670416520147470154583617155326312011007404825971786860663740091186029011467248043114425421069389382026402010381522576253955028838519831323975412595077788738389421372863612416305478882645241462134838363396379235138114834204623182049986985332780956150285496018605266738500387735915941153534327421696205597426264864253740653054040171411225006791853043435777290669417497828670996304500617341090896793480113672505997269954020511426082230786974632743919376943981291829721750015875517996950705206799879906916443594975858601771190346728460052516842126374325949718923847453608842295077792773488742754083114739231271785243109383231719221754643083753674320052925401350779783391255447679710663962770471204077203283535399912921434632734589260055600692152188641062949846660797558407937979367405564546968462587838279363181512799259383463414340509910443851207175733623264917143939615759046351481108918183211968397122660352970386623544562933499493026037473896860969534975620093466576702346700646560731298780778480910427321793489085467310615262173869871455593205795388274536389213015539564368413959491542021193800199205076856839197741406447526186865813098941723182347971917077512753525553331534079293683426382637651794634626095698158713201408723658192293156112162708807104011270275462288007318552519704874021124607851650382456419995068989712002695560775502938972622253023677802285676621806484162242613400198813585145508961644489605132074606739935975155404815095547930172966967917566515513446763551588329351231257689555402145728361742938050357895361123636596076691132508199774895216654652159395551433204469759545541869939611261781694641139523568897144378453340687593363873776247847578906915842826507119676518697191750832805992201062561455444600259767273788318368532107860610157428215862818266812610563248182818676397359823797525728679613620421146685458050153061190748355299275671018131250898063768451191087174569423542148791035207212981911278974481478866605803690898043980567579902129160854127130003536347096288432531925841687693599364598268126099242632469313919399279360036332496296309754030682366859311674446745550199455624742482633527476580553909448741207429433435356596977600898466852457188507865467525130727219131436220311689614634056549465365598577935739235632018338275618102802275573374623250568546327757325971750440509772347338200295485054361418092658131368861084816103615943478245394550877981821390629697142814670834736837706641473460080957091928523959089062121991078683716710452814149724261105766952241698663150832285461900639531687095420480145932615997707332971150867978565619768080288591781411583876195705834944678483907789944160206547772618421351358904470907460707808873228071494526796204519402694029655382291839629805061738905395705098932130658030699968366236863632093142550650926742618271965716884448808368402426654115839593608546568449384163793936968482505349665778470015388622709315642261984813820156990431034207147541664425818978510268322889032412542777098015300347735957073957966963966975500833766261677510933007457511847506746914968224000555706252444260369482448210805728256423656426885522519297050409343295639544151993974830112793557742147750602965634890602350089704008749362969281705094295915401044957476285312909852949442875280626566166765195961985115613388827326764420787868341768117165959107558459913033239160060127180951556889803661581883151992542037195547077816732262987855437057278798439159144343059708349032537219632351460078619754352790972849917577507284153913075616429668332043474581962040057454411335835226865832062719846394953493423987380041539235184268024285827960308792346680760169973246391196222768760800484378474527684808371040205430919703025285286252086607602972683041705384845088201147717258774620024084596491396953927988562674723880762514061617075579557507117119538043851106099769596952613065970688363602539225551860458806142106533659241234296129005690809214653873521010056535675623772373250995941676515226407662990150269635732876220556678002096498020127026367137956903693031839575005385255092862212631818486691297107204833394507179053510803760340083358632669328107832918416430005309901840120514341744575323019270808540144837937128641439811878823949696829790822376940809647994206506587335546306261145083504148591696453361567652192972901390552799670800588156186087344660601967983781303718211950510221542407463615369330303334405836918729413392807017316889607695459994468340140632381711861173237778857859575522579682986683088323411707809465705581693615199124508055469674333867915376937962556795707604379838359500335538444550842160195216370025084941394438358325568408661544991705273200925690358857994740304716116521066269819181798733735360482805535161638743390643318981454891432284039740655612675113772234863296390996279799897395128315523726113113828083291102366996654387815195037677949783812982623314410576824838869526141466255527133397597194132892670853525116968940394297634498757254517591985105485038076590322475619221298495130866095688383660391662596323780607814087052558856135259091286108798265979157170154733016505437678837746101542476200252301096969000155774036002981001394948192238074859217498337534786407108695971041291147315677648740305568237317519736016501011270049567406598934721699645386097919452405808048549431576538622607325193141182420888924887506395666553902031153858747515638155674069126740218802762709301435499737413800028128093753939937581595073025494165652055656486483956582382183335928828336678476008129540770375922728800598798748834108997427186047793566792429033824487165061191026222242847017468593989743423531608085590399491264218643002235097930762851105952222761329936867462813078575820988047323503107789928598120188828842440218747892756366326041715342994580081592282946253829247192639365888291423239055300334699658281881977294975490303875267905223202528958050440855688615544798694655540113317391086882352553942098649327399619804326761926257844033477816478369082756064768787232039075384855951497590452862518738412268797409152925967695791608081924921550045072751416669084995053183781906551137818500036643125631665750925646044343125746972058836392468816260636551485597479072987873692609611230715629064438916194918924937779459591476695794725232879739963588562807498951053388276510018637518525171877482166556469011924932657719496079380640620148059861388589845610734731390966388409263131889303647002365241316259666564356725030323858338391901553723930381055307424991518089374305414540584240225856267055599783282934742570346897307874998431177720284930499418765956718057935154308156368581104801966617206742299774099894691000345089037034252269615887452037166093794568361389722424936627374552848316934517417306597802895984414583880401579971520947915390490204765784803673394643702193962064553361827044096294700326805868653632651634642210736730119907203066183834934220741385019209492743650366403836299053670541897254222497414887897673031984933465423725469167400953874273283091857207814274984973993102593907222575653779347085465353755771226873248712705647078244075828219479909709438602339476825367236508387224004829818560430256910514614099589949480636390650045954230184540069971365358674943377694477159318468602976901805980751406828703887844316009324603211173588859877987439110031803854608005241923144060564882273853964266342307865394108731658044834808134862328132107517834925580824180191806974982005196498558061044977021924340182641631773615701693468701965239295332052323466017582940620134254821991197880147107502667572353252089796974381074646177636406996517801468082987073127357995527801385984422939508137381030697585799248060032310623327444179461896152562048634271705635350096668473417317064667947560805966751785865064655591339075841321955751780431334640361985271423997681152036298563648830120127512043063121037328421837067466823493493857871394273586413429659198799977533871180555787422686273857397102468417626952745420928080860895691910196070236170083731423367996028434788887153953434830620903566525694674120208247655464686733559153660530355189752041578563439203500677972673922257277052191991173197353153638635649602936768197794557661490546057164535489350841627382335327518160824168460039581364318202080302851425311433749594049134633180112246112806364049214859752597334645020577021040708163294213117910759667881286607955317373505129686001634473704401310129891605478568247795853230561017825836497150366671512593120085578316013870016168164012388082552863134175175923633773397531106292776310077893537246475267400461733330292510748438378395033173343453768980442063315162749773978958408761116897087365693099804005149713630208653362799689424054108143163919961828721231609588664744338429350277756676673971136850279928578427331917781332899544438907468720877412823467923882614972918339553169082374197427350552744186010999670308473633511494743052666260275825384219572082955692861833094177136735768471680871274655566133209497268685555481629864980423562804126594780124812716281049185525541292066481177929045001431570225807240587019466143660131810808731912349123160878223424114969359102901538619872522878453569244666190872045926675685905902657735047608023530563626792651685310026593888253681885039325950091244932368978023901673847084869627780405060741019691517678946934656399164186733807758021573868957726319788234714787746945271480313536543466424312200550625140049299780942796849388854380909737455871808031565959393177758580131517790449685964820000827130169703015429652975704836262653333170837273071028455223928748675416180776823024055642574053654772241379177163645995234879721056357052382186937955754164705439502876459386100274443030430243517207562623973719454033816950440039416150514270736212378703284069130146270179091002544785460396679271873655916628180760843530303245008328290659833078680629513961163329678915825131568280147219536097591683975190831638234620175341491202060098040088276375630461400277182640781962264401159128997322562171072703483907816316406599925607442924319944578025288384670782662103731777345524025303794852111212388068803148989086209870444450456190121479810291936828940257039398722697438275211764811201403119007795047060128526063663968370220021869030725803284738147427977815143547199123305637556494936345678919120838732498110769302320615536589825650046102032650816286705991419639912945139702051335200204460878691869320811535309054228767839253667945264839094863017308913353575853323755803675227326026771947199306951145740452194745811320708338752241089392623244546221730364376811670331609757462064500197710403607879420020454929246823733824642844918961463897677204473007908620371177197117513497634620122418257710301076885885142736951361473425557952095707108500241051645754424208150098256266835724794779635904833696209170221491395054845947788266237775347845735559877126391249085021623200250404280711505412913423722119708024303443315482931172495963129056455442375924350247113626703048650485424233018264298162582884009721432355063902480077550827754994191922769869052850559012112410249353616435672180714719934910916979398902665539614910027826529533327973187181541171200537929996750228454280269690591574544475057445505206641879320032455650547897876939300276470684110539690905065798952302437497094506676055360480961645728982469398730267821967341695756817301830622319406005808229268762473861304097782375182879073371297524099531447658435546927819794038863533237476152542761618758437568781119488427925344188990373204421319156057859616660988174518681385828909686020226706192906037314956476499644772935708713753952704033308695939552842635575352436542973792512744052604661096161595682840222844196652104838972611717621351354905985880808406530385592631130035644309181875482560021736718029889198471645770794342105066489528970802893891482246525201343938546198527164684356180763191221308209206819961757696130206213539306603497308833545890411759035692605083458656430868424463859623023171252196813751759825158282427188005672741657283987308621546218843544680583583280741621648131537559019860274476345215518939756943052795294913911525693065192640720401617722855957617736514654920480206573166162439147775970847541476683097244050984476921207719284070808086946410157629011533462006405500216325255380635950019276225001078496180997902988329702199300533533569701847213664498049283284151518963038829036729828535508273813142196225064447580082540695289825940676994807243308938235481088382429116477332566225642581969356593070603535012018286192126868130339524398747211641528418189366282342825185622659943968405930010756642698696883103183170273429457724314255152563539677002698479049413016581784228979409550302190302827866854852486964591762409130895378903204492357187183514260150487848974908698405866366949810891005989758451018069975152260674636944335077833386122083337308520412164547355978187394303549716706117495499085120000066986577236225322031418616215428720290646772131436991532236413272238013140736608648862750656588106862131090674385635257158385820511502759364740460626455733095445110919587977552830066360838605810283464310085163217125855196197194425510954045019232003466107544199345014419365660392065012973031024331026656410705480870954771077513569773539639284414360520166345755313624455531136955008794676625267285366713456171912296530105298089429063935915518229505244829231159954560538206293955840453486306319404041527096101790154590415176208049121043062088065440506179880153107196796023845946571530975431456367683187651242988869004646985016711966992219924092807254364592813871691734584712447533670465077917564155416685156599958114289925159406310787597888281123998613738478706205693232603692732869678805488474112208505212123693669620791300228846594567261948329633893797078865310628392825947975815816927847390379036797272708307520709920739796851199675881087362099819290638672066991966339794671071425383766606706552802565241413893326242866725742042745721430820220527934618222278025665332665096438069374428053689588778403424320001328876692450260750323680128177555942400878266453498405014058374453134547902681929009275742854197842590943753443335704267886618827806627030984868348363708323442890238186508515884027824301435531996731821061665448957123237879726012455011906489465514940331929084098634156029987280598685382090803673601751678341016559396827392758786679250303702047004059622758720198242292866371553238165288822842538110842508136446446922895201134856583155835836881960457295829301136656893657425813009424178393261268962966390652821545684284628396860016331542542895510260602047174914824536550167448835496545866127852687751626120998070906903061776244551407186215946310522492733191750471335244949662131293924239346680705157529652850360718673569622949701095984060699528637821427322528283482062453682824796958869625819548097678751349171775329781138640969821790045722458191643388280936414248649013298175320556058414401252681921884630942794796398039630415134862127783980316837667720754390209366355765222196070027404813723141973131284421490823837116419992784000064885796821533425228197977873118804480836674907514587751051484333608229706154218092958342127645317523012079975312755891779087985406449771150760113608355268542000089580238540551913688529090857919416573945524042373097949946952305932483442245411917218856429313639327275779323665665381298461884254480369161779775484800943523035552050960654295260923060562041840945205091106611201394353008358805693556367525364917106775434647102374491621158940880805598200750461546489644783065524479590195892634660089753830382839829738780828905752903460229594130125276938892265422629915626219015225784305314459362395601299106504807915977245977603060304825380209366731501533163758671030393648331179490441403251231178251561135929652912443798302139067618360903511574212033515555315707590748087066067051878367333388408342496964611550698012754705854315399228078395926786851309425557739695055392064875584798784476863620700158867780247532122477375525938605882800101411240659541827495245412372773356533949206953019525838789790433481987388532232888129998607754399735181333991760517779356545217284307324638094574256417550344685163742761538560745210235458762861736916507671990951006007947943338169975387572090274710146208916848302273503678430679345776542784103916614071869184190348972880835488027371751690980753836105465231640662222233609923949143260705543042540122522810012380030143860656726360136010968562130347882823739949463676982398831392834517394868257460813516929348908889763793227272598165510594555043789580284622249669744825689193055647688538678673503091540332284850707683278185567989326392343760500434275709545406644536264139827750898932789738327040226878794225147029025521913497375000457412581017899968104439740539848975171338027668887838800693836788411957612210163847777512287861450340641113133021155687328080776043295626554544673205813508215305031115057341604276178532763949473300384177519729467553616478778082069481199410624878679242558598934761359414760322998447612669383828798586124066581598797545381930620676939792078316723200673239364419392933185725835388527679359063947989618049763554534027982076192841727484386452137613819927266918714380625189645045152560749405538324170485975618196782820578210272203770581977004475707573256735364536803779260669460005838886582689688387680271949304308413904688485591776795814785100070127324713253011718530285744421929308961574009300371818927700734047388437077477668037699672290311813309391207769694966531473391317636714765867649093667130655383764527616314099192033177937423368711269150014717887297674162633025050955149292413731403497821727997800672427546077924883279922438643295459952345849662017351234595309530985578950975736246706722442162963265718245406043480320030798242620050945939358585321660883427916644549370390477841877870249499941259351645941927922606313157614096007290350725029263426920810042916656816439248511608520233997018819733684474593871951663620389540808264306376217796097958951214808598338794294873749564812233752665632977888549116734208570137860298848291016590453602983152534068995376620034818563466262511268490962196419761936481433314218533970688945901393212523511574993517078967436993169038085001483334946447171120032609080619027689907560584502515561834619808580695005344508785414277307807549960773080025087223533643389580659396668560889825552346029960231616099766504457666837258932010639309437475406196266231713528920038351220324868972000786733745657112638990291446492647651684978427395242101568779746262033888413236874514182742666491065703985528276213050686037865499042811554863818052648875390387518834153155746701114725790408266380179521236635098460598919497379112791931813336639048256999858738114193160705634504084187008342975544479396786873575280313668915010441196174536396080199668108674861018414578619204233476719963804980659297781820503942500602394160590567008153975040286209503299794255415280129846274963846376275378648504496611972550549681655192802018748525059972936081711232265804663717301859257062312962017020312105003917417554194616384751442932288631927294518287188595045280545961840080699867709590979349651552389486238191522311473225909882076153036549031429074188874211589122757409114366426695896684120740926195635650788130512150345088187722172624707754914029798164812460801648036229918751418286755234805556896378961505730732859153449698285831139368661478722906873799424352024121009317813022405225802267916385298994249843113875891727383146971793655748980004477036032448395004442320955141643408295086534599924408513208498590521976561078700294656825549532293397385827971574482463217907659629744896710429957550340073638120559621471806331661815566494942081831611442605508678953701198497406251155766767039165206893903734991169520479781500123905116524100861554269049736483063990798448519857674351454350399038957025898971724095487678552482518809464866320025515828626455468261673479887083405953065096972041549686124810572443513441445801056267526052378652866590604227244797690383347895035193910938934562590617427862295014289223960434831213067663475769700561967931968545644910045149495410418312659123329846293570936252667148321524598490747940144202368053872508408898504698586262154683413325001185858735762913942945785132320785390458019717334128834128054045993176260022153537075466777907198091219281927831550197495003264275458441187559072620969135856950782144824749532006988958050020619681713876246796071086096721472342101194824054862149016963348189709733945783982127706821516469406416254541933772032837977153299555021233458708220811519518897351669268197918516614591344255644391439423380185462265323337836026281372162626220758139571281612563423152954894852037419273620964007808675344179087657438224599015404171519707894163856388945116424716191363560500293179323511569468212086057774661704340031056363943356310406233015709009341298565890561340379987117598691676557436559076346544701784459753972761899604864096717819410249429354076644756681966687954164994624560431630731836229731700628237978550530763538625840035819646217289094174931305971941058515531014703445080267599989520771492477569854026569926397772175505519522392208765938106641250029564387889497163932237869029564156723319216058702063827031537351439620479892701612533913457636467768526164565913192944884942558438969419708035591929213350400321488122412924560026455606571030684479386820651175462065303220450730806233698062367325091062637418578654133192981005416731533250426332939470004092235784014399898334683712606290533842437060896731352219080545607266896756022911069777435870315533689565090381511263881875166748219813613953714118586138920867347743598595397236071803117729766226511171528951212132350121557260591335976037554296578787086170463920905028519057549721090373385433233535997874088900671046842222067606754903326488472567737610025928048829369346429158561568008241306129850573542802353506782663421217253873457196672389709637787747128882213056351600492745204824991047901692177050234748589912129681077804472311291729739680960861497444372238390777782366409597749721291785368462640014447607380166628562781806752711237485218165790484715409829265813603910543213584916103555606086137380702851210782999480870822245357345875064179991187859465718904504968489845520479562872156553986453039818940275306374411584361838357495418104761646279657558657213986160683067226983378904210632235389954005193156787288370547130406064956972768147094378804665461342902275442549375841849468294887566607594971539444551191429879423320438211274421452111416126791862757406874115408589189417690069870729876969538948690907076572184288824953329001739697707580773201407964711374013075645226521205248056603563905414308135152996668459748525922833467287632019555027481278472692980731147496302092864044117450850653854703544618197793804305565536602738014351613418028268634500973948344656407121161903715420480205457754191415716807238276299138055756184950307154023760274312561727040207205565197526824511288326875834468812878775669556106162792735350866175909283040798885820250104908605434072201801125365643441120366683091842273327672543090722438766506699922160682160173352062384792994600669903305587477663334388682709007974862636938239580227228944120025717777455952890188704931395303781180079892564858082546541700890123429350176850400831498147768403523671576384114426498380566389770853698635220468612667552349975086334358355974611558571651451915242962933509614174814930748334139296389153182761395507553695620436196726619130568573771440451429801164709512294890755063209170177665553404231938175526771603521504762863924900579031164780836061060668115384820446182895925710133198043855175637785005946295112470486175047751245579064232118960317275593975309016379320739762674250007267287796466749690065805441727517425753854977935228674144349766818257674487098980396323049877566208880524951218459415194165285253155428970098626560179441557965947887582897587595108445935827798723898358763080831324387868829735400488400947510061165894217561086330493911011544299106747618409912156606098753910967237659177023436763978506761385545981164977403725933169335111011092084583665167398873278946793952948531480428312038455073647180995204347333643802807436490536094337505290711642357714979447091707893134057346552213299797025274623096127150464956560082559789906407229198640772024524000515546535191513837207459134854932307833306708741497075087260579399415976878857078788377833665594317850927627535574001981148525404387644125581543398255095409388267928789144692874382958575783358761220868678314313354926152987109012490740371079726265199449590805467115281933732671485053204485992942840546664880340475288935777017183076321251144944529760774516663992043442896756892831375804940967695868250437845982734079936691801850052149232312935546146924655251617277954706669123789424527506625172458244148740711427866193631313247012213929473506528733129787822340908852950368093046391977762062939424412987572052051149270142088592068138977836586886309309428316113246501079098894317039852359079314415764016653193180967008826246580971495744467682295728459863125711197911848227002843960223486988673281836588365329624116114307400481360603651840932728415195828915273291086707693695331145813816192063524069214103542246157530984895648746239522420154881702336586909176393989405271208587589677477970688980095198698009445256236709705321484453971475652435568650274346021845783196439974107099737687749043379173479217309816852322267754891797631811773835716520769232061405809504403123653731264393088809103308599145722699018797693529588067860263442797980528929747330234571371744660545318802973067469418286071483270011135283335194084231774765416885951391898492397404286979189511971072133929248771702124834129719711404574852632970769758602876265609910132027860461795146231839395571335101816812203809681672552224481777966898270243614860076182988070591110068821846781912470920443850884638277937902924468710680555800642486867073894758469576353701610197286998379704456276084848456702764793431751767955780338174506983152718898972598107069172799980345694175198555539088899590137260140816691440128691836880453067767537545179938955811842557268843301057942964490725528011796777640703235963853185790108813196471951427732338746842765562584400494294400037480258926666110736487772306621625225571270978375145089697508281405722346177901796107409108255124492337098739254132061809043312209716466868697278744916384883969463340849912612674978938658394794960241590984089421925923763418086539897976358303200037774025398027206079351469015252609499796361701917787519422812553824416756771195955597630977829021280185986989516450528593186812088766137094510798664384351786717416288380862958548469802395535110909502985917343838181402942439003665051503315425465046294593534092825397138031776164327533989255488708851044272133231238585884500430038859154258754001746572440988827918615018284594341193170443886350848967853688766663151733027893161391516156010937845300867425207383121574434373871114589515882059921376072709465302691678902412843484375421490393132865141352673348951856941966397747885621879974558843763999674102930400625513503312112744938130598018996758787377808109536534677234931576710149118547341309696352792443703574141849987873606389267352574031764397012730160039879708591817795394562088592367872636935334848477863953795117262527771222805358658017205992911437570361033107282042190505001967547745708143311850414382065423893382651388090585776933294362926792525848148614299475719721543754676951536536391018991322173837236594380244506402738056320521448931561440680709651882838814639870032224334270084819128186187510159514083048613856234592780056446671809392750878272503469759810092122381740660737679172262641002844244358835348942682900395304531567351259283183042686066611370844187028785287993906668808707759427967114511562352751368838511396325032115441340369232142625343247800022995714631710564826033744572689544396752705898308467808315731839826300147065320401844924537450101661091937694298594765628366220257241181647973753285282346702917485369163384327669232934393240518972038265056556370491716106883220608612851709589586758066009813330561249253649116513470568413972209088753968223693862416127767413794592587391895181958575801221691140666509491931625501003302656760166386254253599706579955386937367473642392140348084238952049982176205418561069544161301638608408578993933094201888915630125468264041696814393857782727400259087774611140935696868964817064363554268706011932388915945036151574924934207523571927110137809645957052795195861044905425831461851610393356060781203924486354598523855751401562467614720139063463518710544887052644171909775295213446783525072768705004932330205198408939535346198700322940099007108032716102317617171999375174308050065469985628200331767129040670072777845062702222715096872903346551430856383682754261678973218139345091685506035339549850788809550117244504936282119740076354384766397564499734454070395582481370945776782297894203850482887108285162463023795613209916040714074028667059501791495123159936834403957907456756055129193440896726301898496054584547352167496902271433416397065216375652346689265299986550709850366097901273224780861791229880704775181142592810906882782231873424164699395679878513628346477379505944781363575277302144589996561352254898154295235371313909324228301676502773058965582922251099719505151586216963901655775468360279987216701786277961477152910887993609271760871763542744076088436955965425231867563214133042883274332163141031778961290629381607019181143482573548351782547877620150677995095140008042896806268000685435088156772435117831038132131005074806474482954554048736639924918885005648639457570530820203448508527004783968252504433577042533446524219824278013090984625872126902029023171611915844867584324446814366609140153416549533540644255930891982696793379467478956604387266830457405950267274591239321897521613683759010503401003289413984380566298024623766489878002095889072816618271727757567933818097099876848186163423445842308407347317745082303235005158028624432077354018016815330644807882048863366246361790158392104101913278453883392459000180696749837871448528633569094530287710000127224398571680845725672027243425845264108810708348018592761645560834278891589474833718023310469138610976301316931200704015602592611479224522862280913925491548064250046704894211262864462915464092725385172924116737324553267215837286943728715273378648092351547351879276836449609844125540256622362784574476261668706180910282111455915877693197631506488760102634915059800885077007558921150082915371764607537667394928319537230321400309714929679366313318722968925225653705368465429245351550975352928022306790599259289254787384874755293604458021773986971631099342551216328079871873937245607838975059053006347669559595977663972317844181453685855988048760830087969974948807683441272025977833395783173096705290955452841348281255119827553775999761925870915445732227151410784973562315474003215485576721541876459756157794949723178327127010126667394408172250110003796242956824969995604623103209004850058785663173670712189238200128278739017694597918348182539812547222204768883923505743414825495026840025830159506073572358891792646715807233799990198999410147390098506450764052771005643995525225147281485595886181381377953215613018524314027454455494182404362769692609393449460109948156922035217641463842881183672521624601454510665049773500322217184048443600996030565129688082517411658018581460328174454184291676370473315800975450888864766526267612830146703803799214086932918676578851640752561861264653707921229130116488188057986186589087132018607346107866048866921935631199221965166846351590323788457240249259799214195893491262414542983905399497561781349957934417875932219007133612509973852557733242439687124795312449499105524713918996602377909610505750146113222660197993647172062806723983664385165247713460862451895813323347644521801883658444932427022711353904098780393777726569137720456466241796943465061650567558755285695669212329718287315559159776988654031106476116437868240436328541354713061414433401688728140413684456228239604397980657996252991270353601146494129700943199507974760336717611605087604739635094102556224761658016455450649599217448468690188097258326705282894196133177455558786369020795945981090516659856641528129953017751497939681020585964390880583956288182264549697025030539755057717605448139134318962684746281910508490747986049225376764696218857388343662490938833940993020530148918061804950303810374374975621585405352376475171003982064348214898675565504318696942859167534633861572709500824182816747119467247585766187311907866810284042141949637428766185571830230137185842466242549490448626857371638802792105935576044954655082220115135144626782616250215199184188149788142018531104300843756739840856787641165530263041771265651063441126247043082254871354025291540334106000931419886493478034524168489468932219131683824504574722066913761178788421070966801659547309912249257078366393608385413211117258317724781167594330498162435485303748411143800277727848006674433348304412080000138543384931987655910279923692550382314207071235898260054346531012972316954833350999589143010353163926527124953695728545266374202757492422489511357624621854033057951246072786871217122298758994792988313144029588743497867575501038436818285299275537511310873857880863282274545327308549672510198155115080957838292227216077373047097764519324984293577479019416498218318284152415794319244399386595123235046142316324792257324450736682037477954723588928744492160034673519193756959568193308342034676156251648332061799926334503561963327899715434866043800186366633671064291966170685887646814692892892453401274358636093398018477742968552002767841971684107040688516907574203248632100116735493732037677900078217054042810655388079294897447413857037292489328243063703354794496170883750123223512995560377575951679430266246871811857709058767964980547354352038272191209892398825508424395367278788877340286143551215883696854136359071915527916093803720954642406753583675009796905546621274964199150005437583560548246099816122590042555281680790464596398095576564824235594651240698087521896841329062278658056329344693088380871825955985041477364768435255087571672246616522037320542701737337404186270368257850599040790850260971626032044826658935316195530040577635475450885493627889410307638131708808621589984359288642497655179900800842169953054183714942291969970513759395630645492307559114182141355610714697366402940013517381931347795182152273012165231114697576358379036984847168771285438587624794797577515971584815637108418927634208751759733669697011395775116950662782805443037958973667293820620787956679989331191769259833694819125478192249757269432022594756743789702323043229810247929159810735106553289707727346232080945209887414748516217851872098744064645272167377531923141537723324961674848922903437764131121533542707547014727888418633078679934223174810158125217826924371056242414866459419685249117512108580752789979358113212129266915461329995036535513282482526964562230216809609847685252423913269278423064592064480353219699449550514280735460068163614646249797922472736303261543155956099047090097588462734242258417564006713238661276793458839576750119339990951485641713658086254816561809098372826251185375187830751586188179847604557532093805767790711062659106856275456526905339146005075042201049304019531854845206310581750151660929212854169233854865902219471137731574892190568670177452025885001158620528037275176512834227376219813326303997802129153645307950222800651205607416652529173128297215927216133650923914116659480439571199959393576899762895820948595668804504975143887131326927103094984690446954075673415597238062965395378710581416665118305908506375184047811805504325608658881125930251840710670732587043981136128792812163655773598809577857131384867016320032318667975794768530133163525948589704376533515866510230052721153048154454103802437214519579578629496501338671363300395437879512587743509354884821706832680234121185194758979139243866420219387469923147175811232794490129076667643559142043113181519662877250311299692406615053691642503442231819147479144661042043501953569137153036810884130680057999975677718124908536692989713333628486725918080848502829530895060438279307146150856489015784184299013294198670584099002823060482187012814769892616392257025611404102936336143443195861129351374343164728465721500996062787053485198437337580066917495372749075267614090381270404170694814249725576581198128834088590412417283027556369641377217366401413876876401005465849698212821487018796632020465306243990842491481191728774924090165409952608021961817542711108625276495448270301086589367047117964644166460145229677943388109167110739274458796364654873980981397674410610719566123311869659120308839730143907320244679184352423843044698924877983605241063687415857192505362831723156561792873125850889361954354368500685169638733124307297581211831329783485361777378709413956020778856368071145435296908048023734582116011256203192966814604061527224914579001757990054614533012802857394563669508611044884073840412946534278760280356999130966508153829645350284754331644042338146774658495380054188849931826003753504436394098808359951173695901865224223219279158347043920531400471451388697620324136777391955110017573788841686178392941905655812029938442540930546188099447808473236336752053194927302197058058839739183212862874896973751204915520898047718027875061166495372007201643794719393802267508946554452159369660964987066519975042761217634552823642793561803128165410819231879370676209049668963305148836285577040518056758834851902136528510168519262840882857446088637844615057959280897235923297990145199086341079983776421468763578167155791250486528038711074960200005013426430779984990657679412038200549777126035282538212689810302082449606703799344161718872345599785177645674904651791148503522057765083438240291942024859412792265362835352152758328187011344916150554156138715762714954970590124882684786657746831287542212454757177205650824121390189710042582866221091634248765287032395452219767873847470948739481683420161884123322971362851640825107639177455910657196409712913136863207782199582411946813039504395385132174087693930144349177360760897296531918475154339435558158364058884956910333596478779681690219280108864652936427060925253735457324677768047308546535281669931157328663761309954914165428359037849013465467988353419560831603222761287910494472734392983494491961443331965280821626902186632269613211574747351792070425376861648459509347321060748481464960724560060227030167407459291309436720874202207254872640767697686566363630620104248026892656423675234908550568492797074802761449446712596062665850093230636591559716939866410579224698433948931264635742613039426963173012614658054772601403874822514149913304196367936066774051887524907860685094893874406716058286912018276565353775419491075517293463708698883559440050630150458971918702740123374319413896671672343338913392051270337202494368012359140355344311756403398462279875615204946674353250559767373409120830629801475301613290905036195090366236003449891948652179853025099223020599075566895428301535719693182947747950501176706220297641094813617580771364560077787664457976540565237891238816025330658239998495535066074860667517395467129075616679798212291595613324982314481700717072188008811599959752457955207124609131287449260503912488092812088278112842507711139502784726488510102940739512667555679153922246124927722696294558568658089166651258359114398513596383960927720423999461270068364576233184063741563904049436168082128940832503684974745061202947886443108843778483229086422276228526758217337281950764680326571336507127293691390148803428676152113148378901281971723792929081490577841250882653420326460049973145629133869305788480444347029393457474877215168957659935023558816499248694055787677614950838936072289672862311786490253071187818825941204743072204995883268854316689728153310790967827496797080977478113619071944047943358779351942891791692549303744932677376498729624589624509002412858869434176045586059881512212773723179331402218882170493764490993980142653686105662090788407434786996449771959225692664489847024740260900744108687974928984326229266991624212964397325144107643200957996148544470986436875213682685595970073232911395136571930072249158345166197050591055778908557178807627192502536312589170413650360558076216840355097739590400781827641752600445489843364138241677508367910774989803552812881753648135843351774480676536008123841349648724421246847839652380903581203701784672975087158366768139992953359665064125062268281563630056256626220146520585482205846921764577618550797017190467813823212371503861382266591426111920055481730428877061020217158294540845639843405493838201311717544033275136136500757471629043875399857701908206997328960295210099054279946838625521170483883885632911200116313965423993509775656388913679107644570578265095504463390167590326448690570276685556828168114822034017656092336990201867906445912785609492608699336147330335262271684370777509521254624088888121996240826429723485853147244959812593988445679133748090347502640971371704330768154190912785144996166184323378526460074014882989374846937508901251092065572952389311613649175143964373338710863388177291687873463001091912432662515981330168402364966681152036403912601483595644415439517723969781244777822655340793016336518248241124098234788837896901609269033803164179495053126832725607894195209539692013390154585636037102270583669246968053317548784810875316233183650301441339772751033272153600353413319306388459441560260062084604910633870587789835911842260402076592223709042540093375611253725674561999759020495809988345412101199892359183524440270831272400323572550875901847305919725321114587588560378681902060403510394380539307292669908829375947205317642938674169053003065105761851700277811807438606852053999199548307460419792190484811144926529518235214071618721567742481809339662850692910501361660528596878441718967520277804735038694492992743070817265248523203636139739243211141942684502170454471188802142069901749093099024441233524413898134373765685712910052216185679322937622316849167892721297850362866692732133149099534686440448805763457564639115515619907226461376085292379992401811765236117887495660585095781779119741325697607572738891191085952419057109974474293747037898834495541514363111536813976686810831182875836460654647742168928117646345287729808866514616556436410762577508756983088518458481026739101779074546780609953847927848962182135536695159056214069830439937478276933531699889171089306911967798476153835184562467924467627028159031330386765565816389287155146096981092230462372743176926036804308567668214478769747054331022219281557898165247010007983958533725706786772643037847432179235706848243672384340051152344256420231571706456325457431955873014303610394088352606873399529428141223235145868225518180356737932357926850590658350180970430972793917828774506158429348817736061601641379220900963783839427116372178630574135604963060131085236201977800273676774032084503734567798868083583772132795159275649914143281857529558994669003202060966793943917076737945140785470931513125904780847709883083562974691931154945193042487070063345560478412580107666037356585557870859779594108427050979953701356776486673062890748574905362906548216336311053647738755021245916645277411882371003807073794294238347770010963990742862468538879127362114638935526809600318837274377697003349026379411106546693575617010410372659983555111994853468174066326379142241882097758200519160689628096217072304961358000946534407568415100457706380105268490669123950192916861110954759934584106757253093485181454319445750936874027672139229666241623651063422020988539083937925217602874691130808461859884355183766492499046274823830752561318457075494466526792966976186389232740199477773271574928794707928294801402722182420624465559000429955696863632311422235482850422319252122217704380645591656671736849053214477796204494635527596555973260277952447553983002002305987195155826946872771278451838343700228794282646601091834291674953563578124668094891405734033458819035774200371212563882096771469813085207596321445357202221215422273495873482534763948179265374763131560399557384013874290983897379410528924389963541249003782572055592271112239631628654940362590609970552095886768448229170105379626106677072167939622892113456664269984818896765687051790688618231036683225805336722694978428870608427460501276035827762740716857046659959466644083152770564279447447316784868219933754992537181883053488697761021172637017128946358091593516536957208437692269979237548744244316901310684124822643351395555238326757965730076680965497775793285361103138997646757310396690161029237295762858869538108136096408459989192633298932137472339529281117348284201738229139604048674941206051422802111212132251379745691976366815537842100890444633641055279420967287643494423585921083526475565273611218071752472580255234895649013662895704814609570133739406885201246999944219741090981067174973441420698957365229599397003905602273393431868059060961532349201680763514410848981269206138009521131677614189936765177014323933654946908128640569552531097453124270311519706075630148562532279788810127316739243505275774216875646335124494599951720148287880458067658951329110245021296291048880761566258502646009270565848331666124050247876352913353159511621708582418525685790747924359538510117027501731862743732628098725178785874646130955501300113481889184403320841791970817676873638771111011209116620228071811946453122990758304311305491029729792511391935331861882240787074141390855188120214950152101173868719066072200326557812197791535947445731276366993298751873376643906609118596661972992813442581442740043307914753402049408195775568784967381135961447261731850009968260603039890910887482224660488239259227926420789885810884607918903714932490345526075516231330006214593060004536774494534507705702779814599976485232216170412534963383125315538446123705573583562480377276549716219075067399584360783450397722576394760760992426887454242101679704411311372807425430640144654380292183001962691301666283276943390817372403486186844950220437560169775477109234920909507556233479953935744268333103799508154598696434167493906869654494432157176024229128501675808443501409573552241181803135323752583373209476404033561601491375454229870461632457435888898209180565550253835618015557314994331898033456730268963335046004181392457117723146023285586805811265935910750860130969079140901462133139716264062260326367205435638338745247553429786690786949935145739101649545211515638680649043702624680156019407531319296146980677367037328944939346438414568049854779546251030977271535169380852268634612336024715050487014164986450662244933980144830143635006603828661234079626198918061668304271743762631406913978198775549325799975398170705878159899893951269366184461479665079430798521576076367377151352501130163152357726145955393934209891224227607576416901699749145098213484431252722899811538607679553659751815049692662528457993553102670109768737437429525320983144806232034582356588633490294635199617544759278457252439016758066564537961890917544002543915897300327877657492788581348191929191752777364310281631609779520135944221644233231314508208011341031365294035272370595480309494064994730692494645819983155809597553661548702867429094490604940014962777555591419625965101797560743031385212440629191197638452642772555333456390532007823329315079495674949589163576318922278258878631228306327589632584007988579365781690837584745791730413194593574835397818977475187332645093622786378618210822667619370959081357146060689972329167037375173726066579330115770334393108159693064410178502241526687027797975814243194069488706964070172346187407016309348056669789055109929165846488753658230710957568533016516884280977930288635618051214800881287424739214167788691923418225027101322733698506102653932554698553107669723899362756982924997400915857730973829545513334988381758955602471312483053197252050803336582625641352174386020405760407360371405702673101407641879031833239945174387913236211275846582333819927375767033102551271147153816723320599990878301539528416267221577177927748107492286914143175859896563802958478067456732336488992062136117945354990084932081872428967833374486746393897810612105727068011333336646367822747030051729978258044209161973726029784917148519892725203935108648153183850908402865057646809540797727831763267671434511192653552391635523818294228453327020499407910276132101135901442118023124423928522900536158371101422176110952070622121700717448486909859025850656645935012289761007324428761038325401993324597065436973585313104429239043954414065131000571018623330008592082807852676215428668100849850681819327913846351207868937626530817011976726335246931153443255833218156317105801566272056291076885544781952252907324679807571773734877602758452698517063437792732142362371547839071501262385941365696753512571645026013097125780528029157654891595752112474722917475156124594550438663594857149254286099494251734537382207922364116687701000313715681674161943187408515127190416369567294529244861318840487037435751673015046000328743401876345457666548268395092776505257788648827634330826315736148053885041185937771153113798005600645711878033798314909115373553408826469177564300431983932598707965088881419735764655863328129376087596033882264355729133076688833944679923664672662451460758366111006825918779699525339549499849945805231348416611947012223736130624984549402413614424207861666312429622826413303603921620168515153758588407377379460872401293075301299704812214427343944782792962979619404749278595934237152259432206062761763967200384534511848943544987990393256671125718485240960571711471161549254623103146033122249338825721427918227439005944920354236767832571633564698172460763705673430392538233806823989465765431137485708967708205994889261433968425523142172461575994569008981834265250326497103349149565564240003914707914308612161496639059697953376031673859365078896784987086757105498545325296138317433747658285255228390415104059929498598953631081951396567449385115119459545054419746589628696070964822710210523688288699243361199551824486907277565137855217086336223363673793727250243315108915109442692069165988623477938685678508400621362362995111411639948651042986973095750453011105944010189172982173203491867901146759826420982023120235470211616203668314447605305861537110523236125777812415335017308513016675611965978386016040705301279953788006580936241736194757685293192319949689174799619860458068684840293680096516284325967329113164957344576962452125513960007380858136549870039378319398886402625150428951393145995483778524345946760892322672634264311327195511131702668602115003016106760417881382820447443731671572886029797557891988127534187652181545342923146993098405534266528803644205421189205007500429671534004481866607539254330676611855782888301993124917438166958718550429969362086208192245699935166399858971030739581039249435770098106508684714835519382363710220322823862990375541852322769169132524251874841971025900012721653640239157578923800637124251172792057926606419961010597439131950255390296066865179064254386518454181937390570124311301361575297357640371716641507862963179782647745738448630241360822442311794758622611530200658222404767446563536637204129360441750433936682590369715906745594229397307190539236179340778448610183647542585524035561760093540278601560215756351556259783284658128739295808030430221114910797105255817510704434881144945782580170213792924458879321178552150869382882301333254695607543026135603933603744356187108906013438462497904735021078389149633728078466110815064028291183677882678342736785410085264046852106786002681281825184615706316330824781927894711456810234808305280167065158589916524481114448040546184781988134511517063845376821423247098624328144656864901393001022420188249669072607189690083417707322110868197582534874567130116808455280738339546834786794872186293438367607122225190104138717817050104682492060526147752394675068911220872944109220717866212692507356854371910590844981460621269552358299540054793195384989959057893915224009849076701496210401640787546147400802937754008191366650990627427431659720338744952219528397042965672959385435868371327170852068709327317206531963302573715306294638396005165581848763132834472171659708235026643747073674615647654954284202899106232513663915171568458985507585813895468880083311043345213388660065379312185207398520430657060590328110810008297125067392086082668299170298264621031867818188920995199437068171976247848332400139918841874102153472676953575139448851658606020736016463555271445938941067547885703931178713211668608396182084726259930094151342484000748500806993641994202720272041029012753754027311063532857220470112606095899488207873036665662921941212193546732326524379275617290116837849629707536811056306178636431271996481116841001695616881941452539857882971840499663822403143556710371540553494453672958842610633596624974489123443518602462178264202187306481626111273443106177752330845375261364017137801788445889918118735396466346632475379535259848048608388499719313687335022920781600063104307562474519295922305156932029300308426886404430558131088399356274355131752899498476420449375684459064233681292827065413930444053463995293015108433896363192736571444850308601384408059669189159955914620352883268789237492801751863008270812073846323845233226763136651483431680596199001429955508978100081446780918284837190906952529500307947888979668273968722518801196243508753033510827700810952834576209792530144109352145892501735464325056193334193474375391152993097003660003329261036731704548362937387149827349855578861510288110321300704267192767601253502230325104470766558232271947434439863318518416160848069117092355280915998684232631716384788144450739250937340456576806802375407972443782509084541910442724005962378012898083091212728384284621550847703640289010134593173678513556853837128511954156025556470147391094867098347762053453977172058525602573022411631751397526814569578156436201668166204189784637595909442205691135346120758202343235009433584520103886642530608438658689858167055845349823025498638789705670384263382404925109849698965380165874642444587632688666428542569158927680461549126816552460705492535627649997989958504616789326116253490701613733341907021193353778309930172267434012339505967996861393758838738542672267398853267856883769649065007059653628227505929223588294125167728674963015386102298171702609715415218746875390413145477586741365338471349937421194275586705697267428688021809491701246048300275473234836031271736562194075266950613466643420166919659914394560830456120738843585932990492941915781095699503689607929527500723007749852967918508680766772274266115898987991799126193219071121817494774184865606440136938006817901241671181214587936920172771626280589730764758604790478271832599288568768024010303335790994486634787428807510405088123003488842258757859793358442356445757474677656456754045779629094971279689067922282562220773650456329551653148874495054803612649825801347418248487956823569791604121982916446030753523720584421622736969710548316890935330300267910461324800538475428337647242213686925870413065908392973097851035379330304407609097640302496825296616744150587516490786990853058861897108538651489681681309369873066334999384088518080888713195017325574149841876268644254393452464241292867689430592267078585666975813691808411602573579926724011396837046205585760782392809556512428886709906971216171503203097990898078216021970009657189215686771831576166484202764891320552829925738762843968442534898604996613165931640948022251214456829956827295114535553584521015686584816753213534603209891705905167006871377096634247322763950018661210759724635679365846843794541752277469449742383050368172738896874736504859091918979371927149351876029393657208934964946535594535456796422948065142945877653087708085082927000798596347992275108111525519728763409245769449743164286160798260639004732205036013502893135641717899641512355274651542005025227137341002489298434153828843686113689413684798717015181988379731838644541442591682529938830514330563378831694536964483999689223145373631430453825425277333197527265804163247147814334337188866374160129157624703772873925521746971803757584331730348918481200197686841996700780869166914977271871830777266103797305903476585454084770891270300696123207744270310249605363897463911953719712154420045460440171501589140427972566385792871594975139500054731210363946628929879979261292554527259363985318173119077964796001827179484199715980475157956911696417685885767362709236378886662876108199100609512312608356636065324533259827135441851330240531835128262560913883485578618591119935622911707100656874087161919581384093312254481410236886579845284760413575964398287689456120157653079094864744741783630611453613521460423046986753507956314187287785598258233254586740017933100117330649849529075137973627773505905829526353454246056046249532132865617442594459644036616442567725914602055085242778886159355653291436131783013549786939539199774308877809829459286793413858018815152817629857574422363770636043821064322371078189444697777631464817032135510339016582262329625526590801020945283546723084524209082156735223705999066753409771957044284008090088339363601148323284303876702679127765455537067704127970215448131600055537982314606063040303308251200071692339442676039053242782801317106679947036679210027958897386418175686005825850402592624235151387941468951096193063513561585660506809169440273852117702862424033621097706835908787517871621963261921085138597486768676459301760321843076708594343609358337673355171379858586503386006317228526276367595313068276586835389381243806533888363610219505122351682185109374890353799464424745110163612215037347752400814356833845293678840676103787542957544723754475881096178355553051256782664181716899465152237530707299931467579144548802346464063640440777562126914040765867987317128041130379702177313187308440657769126507383246311828701691614554716385479392362513602584692130125242263616970518018602904445777660165062772135469504787593677475369223897573008032336032297274344726440262798699064745553049661366146777109020395204131300134183229909857209484287100282496574584011331177743436750750035718336726897853886397915015828982536559441472129581997458899576269399596903888867116801856381559351363901869090778969258519911783721219507185510991841029584152157191162248438605195216510545754645398850203214727272486491776874398359949560201437074960422148631378257440403172075242522235513168255466580893774354988071638067029790589577165340139599895941857205192390682220502035306156319874084311686939207935435732299605404398254565233413179559503457216531364006453851582077551559243120684157510748256057556741258546021053296233143475245359008984167648602504146810511314131760109244829975795751677815445821630801811663354061905942728728485097066987137691930334373448682854890477842539582664003228366526354360994717940336785905107753446398472739874097135462793730506808823731275322820872932494383530034365137844649571503434015234251243596503007419409224704072376701728502730836167685144210638219487790907368035865676337806315946379032196282458200786588405095052379388906960909091189345700863142160531563877210276887983907309271582033992912492144425053915098272200707984011583677371688694809209539430532510420355493708538755048091131202358093477049952313129205856799810034422490831303219161341740895247080500992090283073139141746551359833468089855145131675719162158976415630725235494460923669724331737470344022311851625823182314941389086939503199942411824837640679876769010033362870311311066833218224743502111372743165152006095563717960939539823918184747376025062870466253863396261489414123570600357183010965412075273451711616209242718926722868221138424992320003985365337176754194849740108880596663624536173979291454422647462491334960226903881595738445376734556080613179901782900785366708159521014053984805615179935430750175479008494171824412416038869109294493109239929368265084820534073080999216580569031864290353518898285567271505739401487931417910009741781333701517384072447846996826443706307981456369109824947431366951081969499900616314870541594095469077078580628392313990490160600573973892407166900762335523133450728494259543540779337701394089680826590023090982304295678471472761816546632517251197767612733946282263233591151160183466638787055622641019648086468587638155549144617171493550455900281682155293090794144221048848221236194490040792441725963069097653414262774516271615609974485433466242392831863587684428640087849802967934715049456794996515304113542546415869054715630229886857224420196447240480253242405433667049963955727908412760758596462255500607764136281998012748760749493424022546356692399527549092263206396488862484035708557666135104863697512889264056143663156089911631347514499164041861076550342219239214535007324896115272465621675990038871115718065626407769140737574922469561815189880583506937667972088045492627136162811317296825959037008110340149873902403790900727559764054398213878774551052002640871792428258650527609742504593483245454857585174362511804170182648904886132407818732795199323602908921288199730108066047246066963484977388806589630867220168291113804289478445089087608352199696353602563826045107015936620675851181665499771755759532832072982417753567573851772763976271768655863890654282949536256502013917504991617496203996864500002132289175575237144831098820618959079840031881739966216317637978191823259361597725986850856545486311337362077062004332036343733315853614805177925005768472078964265379179577028360908366288091091861749734254578720600103937445223469204667286132663897572647511744736478171514648054428706408099893611363392408762039064927653666070704413627361905036207179510166308569798276523331100488881910921244982876872390182624235758988609107974698785651833358329705952834976112652314679040981362438925072493364551657934641133696633878545780113426853318263466684454438011471773847717678185164570049229097977232888263150460191299262452308718601366852889325295187755556780820863904465529345506953471887395212849674274063484920786997268364868387976590678554275146305340742281444021556184342284895337569848962612922615071514122309531872242003195224622447323405779958077024993564145524015441799533083194345289776149036088237803971279594247663542698276236174896814787911602795225640827553198848385518996385391845095142579500991009556856958450461731170833937956511064482530217660421798283735730534978124888089970859239840386374435683945217333752722509700434111813010494086518629037723174111409545833852313034133648733755928577192957126113891022906690045122971664127791300532582976770958590510513593561741357220361887045635708972042645367819082831486888662157234559797462797964074830884941354125211423332781055318034509226718186486465360702371048162619730753266879574020411290880928734834277909713586124290504357164385891361598635772957071689536776672842230169976423976019000384005977515853511496073615708379979384921299479226388393619558425633657571665826707390625442643901398176264126508771646149261547101671533249482723573330904380360340162072489589225124658414179808750002637290784213237031484396404645941466181203984789797188224568051927970493316569866974115469216339544705632772890434441459541637877357553944810596321681298929560842899803173786809409818501677774619872497390867602394184701111787297102618297142662542201930650231549111123526285927791230657086042698314030008172606785487574209106449366668407575918275302598692879952608432553190393963734213277802515887889389465996597428696351644959758807531912858237500455637191599912818686476512832284543820521248157090188272631398507195846323217049493616141636626906295858158457278656252561392435188564866746979720220021031701626349265186194807333436754493264123946278821286626534876512201489114002751802577169837956249814916242202321935357222100200264095580925548598553343620321229835111402141232489802630142581605054364225833590222008176705466628883304094359777199520532599824401385481741287271712368597795300854206942859920950584578530438100892241828423751819856401855676263933681075778376899165202618729648661738540929258680964043956057894048980074255672694867364336504674628717959397704853828612682290511193802105118442717616907140011229324241807836604389692676011973046452023131455735399589409198206266242587245687373577144587457510998224480234395505784075090593623085866843968390985694070173529396659157456137561467732275489202735733699838033292526953474186511116953402903726011161470795313876647386326356475137772951008371430716803032276249034126656025721005903434362837631876097885220945194805500757644440141686432118375948639709243866755446078467717815881684063318982011394399389632389170889543118482908115578709393989720372296377761327215504241710528115281147586235667175973179720268955884741607473722097647866540671527647558959161262888456997624554734683612715272042285687525727937792286423469894597324304243667081137257844488005875780335795817801610615043607097268017502365354857946110802518743803848705010637490880401777530613999518785245788210321466032581210667325996781497767755482921655240791842909442054711874511448713305179220119465207290209803394462416162410847262863981556909071974652111119516034898068788624061801411889555946670332510952373111727633481115785102703862937698131237843968601136912975835213910901669498170601820687828156330150304380268571317979635461113897240211845348678722477405951408151588899273511987766709743784542795025719341488710447169807889911445617388311227274893286314037132049825820104019677621978768504259190526276748007259713650270052860399280148774874095031716044936065745432787330575007609255070922716359104627808007677179661602255894696002931980530243578260215806264619088774077414997016999965133030097005813678906193878877891870073792244111873576347059898359659570484383713762926675587357520176184501119452701688672616508349320707172499884903672333482165777015866486423906092905033039562300756291397353782286032380736198069807038746534272154413679008577101287200100594005411128595474629157045276854455177851448707661170288587251034262468361776123037874162410306623643473893351073216105824725576088232947583965019036156580429058218258019340048906089742123788766417966591847501524734265249637298254325985557184685801075227192089289160465927393143765489022267784756564095929495791678424631573034547062797766043287958714854452820397834080938646785884319542062832141888532215640054419197163007366073500029560946081968511200124843055829521083360508962871712591529272708507750903125451325026179352858798271278118888392232240046202055528278488726807863249779179738357542625483025113775574699941762890530250649510913459068608769219832271940680926311290640804323696975040031369951487253030211773347231123035886877295283093103154005048464987762679504317533076292122871555716165877098650917686054767776073414283733779697364553407396313956177051948592326168172475194115577682504852111589726043442360147315979047390624887223035890225800023272945017737771035055279430085462221578215397300327131443939919392903317359913017356141933617915458728004670163539108251461596263884476381841481078439401112896956010736375957910024805127314247223444837616745880155605829608340213742541847784375156450522002133740571814403763003391526606494064559613733361321547720675998970780029892097839391045052233115320200971000640084728970078591015787475966546640342827912172363280151480567619102934964007850480092529022791005932142538266262224061093085269607505624619469613617167520153444248154805371855143068328233006616762635903964299131918881423636223979601888518667319258364411039957290331004594039401108751384929736121978529249149999872181376073408112718308763252122740516675466422103435879787364750957631433006466388543780000444304327874737276520261412917460112513065427607104616252435838415721350608605664172210652065039371251291702482161347324846229330245189673837443191517479873841194450511246323333611560291914801238342643938437403537489453495557989743346344155939953636978660533194100573899767694852945473772291776983276480315819751120708411118407267500769346857448773229608396371111057363461941831451740190106191771523503387450203325099536541175967222091838456228363514145388714570184165554594991284363217594006479697313562598263966041193290753503160904880959771747641694064163424156817958402657454751657798812902514960412775329929622510750297031485778216670455230630635353623324295123876121192606679321208283181973799272087026695342804930860675959562118070655898350774180525806758635107493282411823578597288314300587765732285444882707488746307094586027806058546247377056589483648144931526121245842538675211873673388940707122507908194388464270620984256919704177848494315328440487367365001610730245619585359599340149154040351369044208449917195827450449358122763930353998274400004878401894359625510372024624242479407567450540795956330369934236368845354187602500969605010745653460638226421132410128570124130317931234736049810970994304841406064965419870762694261410874065011394641475221544987327416885032563070834657238717287515165308874338251257310183788909299021809862058479543462945969197469904447470058011261868793984194226774968024567906414650374174620304463943109001601490631366019627646081544956647965632075480142939923323048213141687302840337513467146866367025086439029156235540139043023230860870589694303042490230218412714001333631192459355388199562737461165264590502177527252594075649646318176017842524611118779712301479231186773310288502281838569295894325106267341004179514610512092156658580147424739714363140025664916531645061326217696816738005977690306998716089576343278873057950102752659303712459992723293475830986574754189411638576886686892848158337259913832511998262208874863451302334162047685522284520040308570111194854941230628092958019157127109194378152541364185415998754840253614662141317618397773585059360075425120869346477776025596033908733974475178314784111480949229416516145295707842528579650429524578128828562695796759274294944678275212349515162017768932885316393430830167327999488397043632682342253791440646663694695272993128789844287137476430464186177745304428244115229311750877116252916843745197807300315358210580859270405442220835114244795204824348892471683199509061718089622220707193051902216628877740647761923310972884086227691285595166090997741032790292563272154797483163194352470121703565142796760134866871623784406430621767940645233826719227646476675644152149717980117704591177659830284049374835889338599351715403909943267118941339446077053236083629075966374095761803084893675083003600166814874064774208833855376389706478087739745029696977818299286061083322338065808610745710662930244352923230361458613287139300088032915254658853061517146644511039627746548702338178428674508979286539739357029953578863259137041187380699558062526767309964773535845329379524364172294828975826163412834618975709252809758442104985830461131679558882096820221023851379769168245891352903061637686571717866843367085832325309458634053594360028089609695083016602050152826520706041770397352444985601910553116266312588033302683954058689649979897569194429842115099860538007431741295478836452250357391648782455920937240612656086620782207596136705191247262452389498173132010148087687908271802446531642402144744272525682299085208829442613068283206031673137842565846575222385644459355209625860910271004824153806975576397184645183772499238008708687352721681988165295300634380863537281091747087211734846930649630365923022353966344333405611976831886268869131234393973025616185970040090051610324123434514322793978185762830152346856929068264433826583438588468975177253928384457128131286224949456120452939235721046438645558811505844515491151906102083893867719023318206937880372403567112165652667737311811071898951438813535468201801846103365409949954091935228423197691280610764482556777271226534167918757106058735965075767169314046748340033117495046099657019792850884592549437812662434822490895567984858249663736991380561646036915479844926027808138083302711661415905049123260718870345650151319485468996583853478543740644978737991005997596243495432503688456432834743296927685511463895738784298966344791203524670278029722978031681665633956014748231927923213745100623234565621222932654809963237140957465175535990537623276468418257166108558487720941923915720985168233542658343322872552219829494517670230922293599574698385908009902624536983886652239023256528975228509014662387894095288866073036543826767023328463971264029075597117073939400233679748621514214216322648063365797414899960088900017023805941321442040976355156255059240884804729256028682776573067846665647635121633941399378470180078174691639005813836911669197440228432435587280837043962599142695070853652313505031551406354533881677958323518204104685616630899325079695637710549248236282047638715134921549546950606076583797172202901674625570735458408466827500899033316663896802609758244173679851267773751112598816844268365208025218116533212925932711498415994546729033383134656740608963456688853449610920832562835708782770936500054381450753457520973674152339662158624227136036656995294877854625693354421548060992263603031542962127160087588760471797887983541370262320798554967680539545602096396093158346741232727357333720260358446566999237932812026450413347026074987611002602886749991865531843900411493445912852799965580197679519489619935299058449013331509082381902124971690702125382382204374042415557140243837860655293201361514441823391772625793050033981218526086275909352848590343438832081490421386348792531569523535632585178635231136095365168929501661944042259752846626660048947969513355294202354937827129053805525355114552797048175715426436356988623245250293804907512403516491043621094869590251930586472715045020014811375847759496214917099949507258894928679452882163980378595481929352154482478885554956355784388717937418913058172009871807830816791419441991774194603038236082295780342978982645250753669163582021111299312431761283977378816435360958159737850215880202453595875559919644930146475616156957808819202578633455860534522306668988361816056788185141440737333422389265818355806085877368794798048708585715141720643402166875851767951202507831657895012010338041671986018715537394754513067164794948989348830010728574488002789245726092813634360015259762975674993222638369310515098914651629019335455852512451694766489718392828262611748809032871679665179370246007762829460621458891427505886703503310415249166409471413854459506085563607810939957512102870218361662399736394378514384594768280522000527781865419663681518891948459979918784928683422235082708724453549584384987655989235311192622797157267523102353279754162638173274885410325227372430759377019157828800761920291158170690981201976269154733685389917664478365581196412878152779537213740144025545054555780961005764953110877603886849084989457619594640781174396126312496269311302169151278546592440634146034064094321519051898519319613193265923161032575089240146025215516442272969704892385064746111162299784052046791429983644084275434202253333025969377894777031188206092038094267409867007890710956635809808813592259763555235770193964432658529503733712063229632859914352346004556910013126967977051455244709342900139158412644675742419018997598637525608388707444143449135751739493964663005668415794866257972494036165699798474779385335283924709729969012008874602857437484686854499340427956585161700556877584021920683671704771856713378815438725642211793096551146549015509684144063823562733016901944375109933450992824336173314950446226528050994616423098284916979009168111561616903591903431528494481509508628307446699524882257920059785008175816351659194865516421431750462288990147413224594236755377441415266506260979585480695020463894714406679186450826262243179794191300578307507302696360126107084207139575121672086717567010431192598212446934263947983369375163071517250679364178370723420418313452102558425985310649659355212315756226362204901392237313446219266519450326153220675802595898982879244416545514281393453975391834961559816334638408265002010375661429954461449472582169727857701442329340118824075173280300690119489219883726623311102017885962094141194887044285943424841510000244695889138310538912572579059865828453058657682816276147421539876978738246133370179932454738972748847503339114992541311311364584943317383956579003986885795160559401674116747682397290367904167615366784761889253257511019554002389784762389103029825677620174818753230957153637232142928194876806473227171500299250385077432722855939350353206535128878775888538911034110264550999161896728194295994316953097654568318625626129164207779803916155083167901817299632843081943589902324708846254931246991110047998425236315641187989756023284377538939388519297797281171218588106653088170820020417116243167704426491775400282618120341706777554992913728048763288535252524794740761531687026633469990556960576663182778894740757884180784001608687098343487213537226537821310627520771254269663839115269461146686698921294726916875684460767561745414338494694620081791298969973986023737031717819347175548620278535973840897151819471539173716530378575439053836231988502584715210542560087842633767975279097496147777669299049271803150422714238051713820882955304356218840115188944618332187058300309315670115421535048034128959116884470252119969315023348975165000776463576019176677523075294755997564479495435665963501905836131805591557720912929521258586570757517406868589015831634194029518557132323205314399184069828653215320530003718182494044671961107137848951066948042418587584147581768060946054093542126274281368625259837949618505961595921491524754400298109935557255466791035620368725967734718402843862000599386404110823602314403020252872805750604843084434999882229687822504512431083096385434346300487690019541091694543987959079733400893706668736569241797529186189026651235174295991147891944678265692517947281697689417561665827576113756923843974398916124116084895291148622432413201139772208088250468592009722606303410164470009450003012271379220935860512735673130168185808556307004102683916606518695790901931458001815580807033819460321845064262611860471237444074276577671696136528476034907769987037118917643782611847291462217563840330431564629163266177409163923177332701469558016196628724123801579401206174049584281420993854805394288045749900330628021505586659253349353916459819594171873768432371935833202590688471570218876751144695569134476220693230631795283388714924627284938515116162364087107867923699652968366514468612156736505667878258837924238355768329230797547932539821216622676384772672515077576773704757270174685469174101768306065099518926065792474765471455904750571434947908090181214132901776738920398571810484437983104717226885744854564778780494226353086139752146184550169967994164374725945064815630134949730140757850993165660937782571471042061585236690427853904575150866739692184788948213009072110172422456910520958344681046278404933498724129836356795178199558851138242781074034601221170215227922461223163599599985003961702770217628775469174245327530009677726632794808805110017140933205733420611817383501745400889233087772075385333867376086150046147190361955842980746688025225379283841897895463447128479896678595857595678418053768849256652291013925465573916763806072626599588754608706632483324900559373796908147390721869674672091194895206001218313953831579252159643009762867137292501292169354140383895928998401748949775631696350359413552258019308364431685786399271982764308408975876427428951859601652978103260350873376998936055485245730126994237834384499056390745845075655124174325648089921428192983761706672014652507870513906861303547626809572459638773794720203548159441520624625025796353357467380830589749960401363498346011642493844253198749024539925645444424255085053714545695386516384553588594837574944353454915804968505416857967374666472314323830020459054505163378728613663989607347527832412019938513472214779553641044889835412891624044634971164596595099028593989787105935787269737635431908467849519055486307579386636966116250695430220141529717854089620013073749897505067342442688196612920730306369809603476565615882891839104132504459586880674691571836328157529221496772298406718997143968145480653303972633198692144645297935823216925580178417448107156927355008921223365727002925836073901598612896676866783907913054753157338728066382486399859182536054857063067226762949252433874144813880746716942317622376481376060714636665288062322939017420145304974013249183946539804676009797516014224915916279451922278623000673141413208743974169419358313790378465708531164693188609674496279367359983618713268904289944700302439075626295691383831494647209755401043567045364241049132703503593985991366325555238456814400422033981550560965291103353645031003994779705888585513377440074830603204614745610540964058862153149706300178524465659335640336342175027191093125994432526794975774714749477617896177929398016938258705991109595434875381860616407735554477706252996395836070305911130366684051484302586253367717289295744212880705558755867515821729767263575695722715169602015333301137712677422473148374862104175911010918920051715039166425312424172335418409706818212552415738011943024001644174213292917362352132800000559618145295760505843614145161273179190154765273474752462499506792860394136420557609807615217190533359091191271384739936923385331856564816076054079143131191687973157853290563359004150416912902985962474102915814503043280365198385800951344820150677155815142932884155722971474856862775861809120279698143515308178351112298712530335967983614138154816896217842844618419611402876174651557077518704311496165132076144652581194956965729221811258620236363366122904648871993572285005103785247894801792519111224737198969757813317690881830895601860521542143633136514288712469057837682939923805665906374481261690139553756571518204333896753008367509108986180952008843387978043889756178552861663704085117243365068873791018634202759518096553586339928545483285949310188970391322023699527562128671425492723954651969637618377674187527446203889550500448263387379613987843545028614476214669554677058196491014945170346898626053056484637337300385444291404637495843483567553969878789022844447373652078302929258727849565682886110639135995652647513621059668032153066347508571691650412890666788317952289256686467133875231889766585373162545814119006712221064283270934085188510478052019325180990332541968916457474776501022794012426494176595014087606980540729612611579608929776468984841762525363738526901053862067896539480570282324405490744184061690883530793320568137493851939770156500776747694959681451142382707400084446038362820923549713159503592270256738540848451514366076820930370880038930871743839291885229896930423508144704719139388474413962436539867460865718944472096609208116979969832994998251529404731716889522574751000656823501858132618585595727742888460691599362287636762445782339533801412008823072060979594416039280458836316775360741890454387538241150896131302103528463812808852819944869055968959114139317806633871126803344954219179426227261997205195739654824886045498002347548610787378816522831124121093535220597898917981823287180027361382153018303853059614941482758349670645004003273886399936386478448704031765195379506070203847421861195917693879110496233539754401222457737438924936133284588194899297001394106124345771555149560715565790152378846969221357266040778409130664168371480308372425263579855258543746721353046409657264336477509772174098854846941906855719175180683343602235673073500393515093327044618820170973896899294321425933009391816813663612977525732814619690561826417480281658786824181835407373333016041766716210235323568373830976255098735960662194590356993020352928108497112377490193659215484059484625547021343507266005585651265417617309379940002606356465417166542139635075924745127817784563588499199160367719816541345562334980727970128893101844353907543131191636971789892527129309299125317738415593405688030574648629238128133657417111409396471692112348675630239469296499751796047526952211428381733306680753365859859362656671165186653167468138389559537101309355476459225713843266428028963127420223430959036103024205707239143857254280112838834082913405310907932850764925398356784143643130735199010867902956953116499364191500399867603466683712728895868939551912523386662279584609637892796894282144779732376672751603177965267638523577004618819310093618113137268498893527499608059176585280798456795720000045756590312271387375057482073721341084981996985682725986127774840745381151287692688839503605129963947291863185507717043206969545920190160746161471450796627585363794566298180227207635016122313141806544605204405295721258262163183325503623274474683884652788421893732528925069504073981755489793080275837582464663814831761030810249022150390605079538521940393632018721251496617800214394347763984833856515822825219955831429624835891267915151694918428287650317832480008377749671466528858285212169459629767395837203517893167707406714955789854339062891395890733538037790294905459071652501407034677110263619252997762880420880253634628986988916290822505183529577494686360548142687230076489070035516957514161468011628232802117163020231326728024725020015826746845870506212270923111392022790595538240169685713071142612872043913121046056181259000414119378698883568705074996033649457326447092106576762828632977740674684224311046445139987835864755217968778790265215171463876446697410274869972090510078318473378293946197997141525642302725204368596399094205675695506318952592745580565694511056569123069964844973533375047874168419395007656472982017639785887544530015973618664372213486017553753579567159118245089377212947488354424045027998180635929888238844259610607613130956705061036993362982706700121947789902019331698687048104495763517572105977815269106971580533455988743786267520280227487240095713889798166011539940608221164825732187254514733283605882895583849844246951792467116650376954183196249675126599406245991947278457140303946246243769275770188490445775676287582781975941867443813315238267821229466753301107966287970995075444636630188625103713550332862483641004877959449895213731127533047492384405635983908419337743625447555228504784262678184238648960980688163796599995772636797276891696724032582098492762419701893614073284792296877508600338666371040831585220233826954351013943218354005183836970661598030425368210313591671571192518096344789942911898990718713448688066524848756555606420254047225371105524976655190384523362706514934907518156204089438625129985418566388246864354271915328542814718001432349292217507933374251978250546916171930426501708496239988887069316704134824354352746735041056329018235191516317894223311148336010353261025775499267016050688068955294706794621415872004616391618638788789906456528649464272989038349605416266418382338208076013406366091241734858128421926903943927964931880246833191483839125258767134490405689832958485254546358368376608472258294954977822422908446212356502148777284912759035047592764791575053493884596228972595315764767116425304661905564166020386792239617861707984702784442926964740814507252206228563353039066773651525196038167312628897487073875690383805347644687495154262984795788782272181144327013594175354363389769253148998164524627044945073595548791203052859284685023873594089309072521912762426046397812328815406615283724500251510889048145550237274333128829720039666109375788666034532747635962916023052291463533781522418189496844215835635668992155111055868242536682777945926329009298224480692616471532850993314664403406830006661370598792252751582035408179431914046249561021697127387396174543820300872816840500887719256406502399232118664316156207327255712434020196122322613908990836996309068993744185038144275858474239305575317583254329553584244303212733828818440292312379348460733699193032320294704555658753583096051196838621821240928534233021202689410278196492616852087568322732576507640178654057852685049498154357858007298630801142446967444032451709875986616821045646105243780415050925573998548620676256489733372493003189573847606074162897355657119400781072995313123921222779775543177001085128351654718389595139158194684802021505021394171965364520201906039795513070723994051482089871826944040243731566919218847538606950817184917946377482404807183615715752223959609339340800523246857564264538088882372889816223709293388186402143645610881395883757583271358533471511207296959662421444186667852947653344064393215462117875194222251418785798210942807133832925820571156366716106131760722910484524601575815188095638115966223933503635691996075793627955709623537059688681260882344082893127965326088031872050634662183487181136825228611348630448522771186769263415912634092709381209606513132384732250766212248463607290969352847094990559937245926060415141593868447944519066456232606154267122630673971087360755579240927515486937801357487424981012735021805247787684839903212968422810941951361013239103890551694799708536969387054325829474401765915533875964348550728312761769585070246246130278581236074180180134219532057172054723063762221010963501920616475318234531701965759438820798818513146864852799638609243805532479561829012784509402583072503288356469925309235635048327636190973155476549285435747767243755452729250909362293016928026601182835786091116943620005385132043444059532452709526372944078728438360220887152704032697709536227228635201034345733197520378080675968956932782456354658497491183992735558464009806695932549609676865271360754793568652945911638236894969264135957728316045121051605398340097494522355856780041355161536448451492913922615456680383435408781117669085882991080743619906189251463586074882116260782898319271045305179866161914432449843055312653516502088385496570523506853939820089348852871712286730053464531361715135822002224158251895546497281508303598799902603707836410448341628466297889574272306037653750782584391706461043485732609734937050911127449515908207432776048227751276369230237035229317163575147829330127901898823122735956792092582125109825146600720187597439643501811277277905932851126144288465541153630921640675137560760476638855182552088029630629989884380188287105381307591857312471542163824491063847169262404837747577612891812581490678039074681876888013237504472248814701773375099917676019846697523427577070958487583512380913210092498439498614741377876494247385149169575073438967471503661087400491882838228896109524314631586469993982721862924777250340707945636269755595791674786249885198681303498672077329076384306854351352921955413544846870349571374224793684172712649826415107280954192813608849064626020384084695007623472736421724174070287680372511947647981555799315972291523127583839590888092011178586635663996033673554554042347867689352076988652031035524267007461087791235791268750528009847462496382475862043892643892976397794003987717743239836731005196892591525553734534339458641599457907395809020608910143311671377691998896824474100124274365639585313150874941172314444281744121319387418876192282487680254194721248749807705295764404462183171165707033439997205735107718100161846626513425201388464246310870314236804632686084162673586975956798096691289641775548644775667734405024738005953975187796705219828994034576037364469272600213006441884695716819859597933057410014774917324751661530487038195902491908444254646167661869694919159999833315679599356372469585281080728923405914785577179641343467507079724325740407605169069236636598016412485950701979384518820866615546473153921123044486957784573137755634146748400397372435704949701433390263729846050708435125509155735654311696008568852133063242031238807438886403602631546472092787352877851329580307890935748166464942769494721847891255334024959563474420370702433331558768604039060525835710271671408801011642894621430086361964691695816435721202246288748512577841392990281105030999831504491154843541357945921474014866338160040781054487505449098454713369188278105692011822109448647228995655943616644887104144181310821605701469468110913196902064997883887513762781729357905760513579351229132676211414668477805517907979862363565327311547869520050028016908494489364604325466240549758867019655837958025828469469789961363319661935804711666134739199052715185342099272068780169057128993653397060330386387946053931848979078654349477387203329947536055295780552933257987400285636586844208082825583544368879905450239800065127414433962319132961726481630129347707331265164565848986564938671450101836636858387667978740178737028118977748029448887721053493557858308059602386420955891421831117810665414075558004072794667043053924948640934714607879814243975891093127930455153746069126527718117886440858182168665265628877410787634520251235761536231097165127635276400182719100145493967107304789857207029927350633961488675131007708819069604596572665845509151449291288287801424160724263038262535545449512916106530798878107993954104083101847105787304221098879205057463008744883693036938559608369589646028775713169205040766513225929535449123454631417244132825449061198695527093552153556010917968892971128834987707671068325896581698947612366752187623976976970816747462190914136840540399302207728375658722323902526814809172262447585864574028054910964695798497251498215219069398748927249955808350226664717087141251158550856635382917674225700396365087414391266000796874022605166518326651716983672960204631656736073875645797422194172563839839951289341318438021946276595288456183571816534189014403021555709691043626758110843752928085226571528279853081508062135370111279828273403454777721534831646473793331915979387419122211043642308460019801148343559817391421709470257425136847977684801373303323967499256405748806689049534100039207862274189467989159693966729928693644488404375344420735303908178920281674598693976247589502153832037553175257170609454044734694128630951217998659289116937652614169273176485657603727908670234698961896093885282799455042361629432065670573570521036197899937971739785394154814052385723152056834579771940079773953157489733149650839699006419780387973280144490034031307638477488862551027875428204866329813483493643561446045818260299136810964579441345069437906257186037852629417725349876087109523908745202075314111144712709913527970738284519998601114592227496160186099324497373188762154450489271163543589882140577891315653117742614382177713605737705558467409946303227212153346592967659690126081328363798319424553444278549203445994941647392350424787106837909133961990377567409603499231740958623012013835971910951060476897671315008881332254634916014189520346445930843117775875474068901785578034683097859740731801506195525412023185902428295602578079804860475634713372223104109109606779086715956379751501470081472269907412759162229938265882191539349332733718393987170711911296422551350775817228199749332221363990029368141162142564918856612054616447609717938434966334444045166405333742085738040372147629662992201223792917743632355732581040539280865363646952012211401871447256656674545827779648244130553056314385238130689879343536127099492006327670474698249493893795522364089708319344454678147445861520484354255827173773637229250613283320318714954324390646111208125686284598812486928522434496162352653485126725973699188736616690882221538653805093129172154412089895071017300795168222224282652447236206173448854713784092549142928279258148166542380304444999110276375923694817209367967911233943170265186626596498749954462239410316312194114874010983889123887097755599041737842537379561272227727953077852826162109338008033959346385349423649975707635050254473806914743180511783219404934696180824465817215346808567000427420950884412493503106643197406259818515134886561212630590589490863266720464361389823392716588193933426367467878324981233726465992081753139733308396464407433320100906623094227554520607053298943501267425523372518633075718677514636267647860282569392775478437698494594216171807848094085940979736726105700329926437218911003496436951371506648488377719031494037169381009390845508531876808528382311054891569485616257126970453960964294743825593189420555379699369026744854308676401306230272335305424920662176501228767450574033591032347331150266702068429690923771355593827085842749507062597935170949095893889749124360241080449851090427800863899900862495671420276902408884368499738074058696558831752848769097753681868666918471228729618931867178159334534703927400775313062957808868124712020712429118035484053425215833569127901706014240544842782517211124312744049921316982511658025854509756907588998055099893012043988566628591495913981202508025381266541654524934545289981980518182206154738463641489916410685096621249232009092953557325965679114460335035530323920906818469503431476500123755247508007095704299002108719689956747636068146659217061304182051061667738484897568867654872869276980929150232038770334224388029396386233507620221373024429443361023181687811949407187371603098919788606514609372182574853669202849104248972179903505011178087991632959163533064740192067121273984447770127795662262982925601963863735463256161493097308111998823241640892788639625548192925280033436683960044096486090401242953375132795305269763704910816383290545533001774856186535711069263871329904628903955346202182034643871274871525810070925838159910021118222999647685989342298859923870812083815728017211481180892850466603791549114712321451383898941574025923404762765066283685993909532911504993649226667086696273653181114629741131617848090651314535040614661865142570564106804611224806408567777759243636902650708398177431965966291921027080064887779379875336006140411794594072689893430317191258466190232978860243304268463417244070898958439623234793521016649552765923325880654692481561495945366197705759955896941067611229161846700979518738624423232763162564773026954247563890489108131412659525663353112252996226220533692172729855840973257469284092491026897905443401758454262307702197239262879175484180438685939084742783430119786724119169172119290272039806955089267479443788589189593221316834731511733102812800556783921808137199661705175289263597800469297241446703236718078685778329794633543002577563702224279358416007769920200667380471351855230044046312745084843938669456477116247660277410598805989365634965836105428981242775630637862530842497100563531794301068178985474381861552129371569826535961192672607574887002056021478055728983100787043492705466692020744626063909260885277302910087580825176261479865820831587461395333420635852502129953917268143274702270805809493762370355725115069295242476085085240764330457913675991835442357955222057936584667939393803179978325055888149704223030236184198148219190961886282494468789147759692944118684662805919072615948003330913133784395676033740671283431304503242488566340400495960434118929367075702559594834971514734612282703513166967965631530347998080471947920052131579309270088719739179974034780522904160267407101370375976853693322305844533155787894266342723113903390867687642434659229335805526667024361483316140600112804149114943428877453833385957839052997804729158637381198415706190418631347939862050711948306966770640685533241865102554653053170205143152658068313946052652215670425002794467721512401654526791504543587789310044952498110687900470659541370087594958801447204355853182435426895394410562489816481718196924043163428357078778064005675963846836204240294810669905870816759330267815816042835455775808604526044162381010301102480929119550787006430332824797699261239870530507075325445677084051957257515757320776197583217079524469547475431684965989832416580938221337333087190031262979024699379726533476049906978849337338088245339186015367156492631138257823111819025363134893096478432916882404391775464904402600073940769319619335042338269960731452704464392308205247411151848714135527843287038265822048456556969472831586388242227497972655011884258365571956044098368563618904512723699930164287249529047332037701826512142708053689009736793192715627357530529781283181932861367717568445794373884716722827306793218821180790261763920413817087454168386828969210118929018024101129580047743260796763721754295924697117050471417730432019128401599605499275608186751534278265299401109964701323412168165452411931193346089192518986047047231062999990290767580224374072195298451055764715111027125099603059907192830204634103766340231546657700280384030337269629289228639080210515723317114348438915846500261611810877277451136251768094780232679595207265833466973952537134481744952173730664633332615290812156435349026666704095714010347227999381768138925617509075279500676326375264608438212739227404031429810502532344253915197525651477340759389633970026556526059327228566119813830559009859950227008734264378890968766133056170018613928458756796839089317864909420174003368834875061807627339341327981631793490484338344383112190587038353035523749146895825361109978478021402888959098474900585734543158288368900441118793061607642983404470924288212355229693757687084670918004055154321493063372628455930732715631289243484297979547079571667710021411104713422432622952674599587715377451111252364788729725530290062388910250056343717641662573838290121326926391729609377166892781426799829506251295027959410351218138766879102212839737969352751765771553702572173314297927157998135877639049005784642601643157638577251734767188789025193935656137428697630803648952832697376104754625549688148948315796907069686663925905803073729428433458757853996148859578456493043445774829872769904673875506703525936458988048902796458807203594597089419531922456898125961602363178008573852978100394307254160149718843589631848804346451652332871211526953769699461638153319312116583530811836553697880161698005119807955174716701952639664718069635037300568756145717082624702646782967991088951014637755536790820370688520098722307940470838493215372240762906672988512772770417550060861798636494906605069348062180070530147019739972937832720224024265551789559311044270061124854722344023542281098797546666319039107063108110405752227139809794670395977011929116218886187993407558165584878108030931340669030393514481817830310251762518989409978878702364099349017607727964867271046476134834438242729771539237375848614509329708176086178314853623629155607250275391817720980842438031075140259726631247341892644925509394105184964503155234548392460016943607005462819329974594217077289468080295321203674289204360941907638892151239468799236962736816060639866425056645363191949219513832114128603501657725405741985285669455014349904104647976515964477575057755773600970177331327963968082823708528763334913904036307860599508527425423605632070813432841682981944029881120051873671106645085302758457266599281018976272399687389598726518856220828314181603035137089105017492926295643830924224898194602339687851903365404496646408016992579804047950081878971519239544121197432185803673421178637122529767461858978996738446094539374826686693571468880112431263915463949888731124617767825998499237128814354065229790913090118566606440284434899170670989854616477667916232075203386760660868652808583303238401271559614523414872056341766810979729462559702802997370203090443922277933416881181584501613696634901083827253622176865440317245736677211060527955316771094418350124263769324132595895138896245098551967507825663287551040421134366696068726439723970203345336162868209913629704517371770362221404277090620758316375675241818993068935219198376097773681624730121515585399902782280938548306057167701554626285543814649159167051449312248630265144393273088148156537720591052309205553908816960093287749888688193003411111785551976190505877442032319263689783711922983806615387498911564629192142042606236257319978644510771241535659626182941067831538198468365168568190797259803543522099769177711596250514515204428225230385006075842946164550024505186915558686787106425490196343726473945901805100986011131621930584756431661561185434678484982963151904903372816269101994445760482213208658191622004104867918984515713757446202047108840006247524676581261758581168745530665054384109769761535199022154667492016470584300148789339184589348759013611266409471315103489578537985486997229038512986975444659413241947847545369834224054192290671429960942179550288238167548838657598877713007565343333996335573801686894200821514259874782740973972639479297911140660813072951805059218330540129779348621440010627386683395334903331064500779602070443190049206043257416670699081153246092581164094831434412066120875224779405504669967166422209192547670487990069690216810736970193331901858145443328526929972298324815480142753193545637955720658212850023484570136123613223573851590986602978863203038973366177426411225175388210229751033424428752108674907956146287069236373753437371432481253997503213702504492650664851311504359995312255303985870444500545751233914192795905013081128177534758500013144765013787039123008590065387241409159272477939732638819536236010380065629766083905760879827978785140363223326910120375818388420029734884730240218381287961176264148719702588416082918042535292487381799860618593444359061323896865876277565779645429790022966210907686867669917023681927687744861238539928271435362296244165275080241161866444421744243151188340013933580588550603254197210329241136888387017529762487628830593834837146708264877307287440848800854447431622670460093862087342626371521966597636409544764913955508279058064385295970679743151186170476446872315101573170473294931862645309724840380344377662222102251552525136383319239268618541556491483740291208131651343705402941243900954565102558203987115873567880458032967474017330016137040700930430550120127281063692333387661840976093896602617679071885055658237023210798804502426196010222767469950032225821964276047919899900277549849011831576492994080418551152602102164624702454320986098192661314345468479636141394563757621254576960584950889424348702262279749773565156962626080487009783203481157903124519079327949841275718186135600525807964019415060971361821687452737083183754323436393697840548273798893576161522881810462275130564136028037680033963148298223587607609471851246846619110526465941304849252263276725859512307806614245020832254423949726761595878636212875216809578841242881455371499457245633806723967533731657118463456714450814488553292120722553077161630503949111126068111489438708185346226686415429140516687545636051899360202467690594934667243689236281437112733029868117659068353026268557352738189217741333439031138528988543000413871754979560209403228570904138852761326109413645233585250548241929324813196628312585368852878753544251656684728546538937061476542154838925876001711133448528450787968274547051843899610804082922032639025124184867558309290664954530026246489324041004770666293152670240353812488714346190833719835187290600464781318187862689612237355523962243927285004790321785474527179481463326106313785080443059140570456620855963173858253080714340206824003472696777484014285481510324722049959280005189076841849223818689433698212522306697895916642101193446349645987755155194034239185077282067324130044880711168772341735637638359722100488894510645750438013316600726984845685297913335239634479006002945102492663242906300374569023953788211211361885384663053170201472674627691825033359955592449749987503579425492215880664137368762092687302539631820091426400842200587811864513806086635476832121201063919742897748295998102225086026478536497972386009169387247332972271645452234946023147923549539051060052505646706961192351350903686545584437391565109437540787632469915970964712580646677766548809058963610081540825950478666599312156546550695387876118629018355864124567689732104069360333687044689086402633511735852984042931478117942619158771733674384701115660920123241516232067435869358429908927259358151502178389569313490110472162985900517374558158930014228768684862242580631573660888051217879326661256390714026331965712982074436910501230455322331634469056449443791136818184842721255199996799753774294356512922251908478469115781913331199279259757818503644564230681618698051172579612386472444444227832724335592046988184666963800445236633908057898236028681746353198505031096112706963811636208882816870755410132245337645031621165731001195962546083966156734052459224794344653601729851277199646282216454474439552247808687389483761525769117573569931183220703931701207921678233295373470063662114618665405404663910117731053022313876841359100325412755991665473554304247278521960448296008421590936587617846173815015328464006720261630186468368728324635561470109386808276136004117365242883830778206043380684159939858100519342286610399600340727174439431242776229326565555405498864484820819765020731946790831626304004286114385707188073872327199652808484964045461229383952344190804747847100359658252883894421817679081184529265231024605334600751349280150678551671020800409314264310516034505327567243519560999238758279345090905871841280626792722867942150658610483101482031546286873261980682639343705860185972734444829601724729270686748070605391944598318412357677041704135451777503623762505920283500555266458881111665200222191962960752753890625065701674786628322278307875121377996403805887073166790406160899369177787662558919922918864890070204850706372859205889627431749696126280803477526076840536696581449925329939001379012533859705986816574084566108250353760211810613989520273839073341668498886257230346351390056426248033263352237401206253014629288098014884078155457456379812402129717869546965288410090734381268311374615852898419010701445817953411968818490245807429007152667975673388550639809415559030145511126895642894221023396013151274609575024799297881869082530284897849167265413101856962754728167063722022679326282236739166732105841694389749602654297704374756551993528640565693556462836430128014209237283818833709464863868213743930002529191459219393109689619772083786747767262095237179569936845278339480666098930126770265054896367259244337320857964896038814160118620187362326407478204402450179638447901692376096000782910409825485919739590741155118384815491871397578117651046772873971817564702616424234610609574870215285436076443108891840221746100298196178554000302628802180595089641574761265723994379614692697474657996459517737719649598296645627861838930923548110696956331840186007972393368648449623722389095973488418666069890213849655102851994397161009967199597387840660112601288462071633510974188458791055933911277707371797985228871856508728282830073401415889503125486046535590994319834699536296004206838909512363468661663889224312771094414922398419189161523212660213736740840318816693210414736451051315178932068962634700009968183865773473205747370186350615138881035991929915695233873843206824727116605402126434163951510812770054750900452667838175199504072313698008887491052283768297952338040674548547098680084326439029622688192620911287494010243149592444555443925869783675538935052178298536802489541715920006667572228889373997837649144129184595774272113944613767999874704396324745053510375239079074129647875246056578600568699044511259975641511299382539234089422659689472284320397150386972066110620695621113378535274813149857781175443057708287304180840923783488777682890197000672351242323635402166029876710557798701723179064381647369988407859460455779196573835662654784660604717843284799868567793748828633347072859545391449128179280639490541451263197205821328808387132683264233240681990020133905198629299582507489598624610325373980238295490107389461831013169747347365207608249845091458029606314056880626137206803428267024521227495455074552760330080520562612705261387272535566922649376712785747156683923142999541130291260422778780358706201199329576846371287391901563642878938105684359028767009243170000876808030793940588118594612800413465719198305854899845379965421208597330979227898916042312311142061611928971856702212518263119897993609663533649085357489482631303534107706725110060990011810368878732378422192055341712747189817451099175469058840386144622553233638732927519027849702587368040143467227106093693793841218809490554125858412520115992880876619656884131191044307353516891366708268067795959912408966269985850026126565523575643408611565809311746644136866654983862312440661405176081755467266554691906365893305091009759581168671293396035854917950170055080820308909767685958219843665704384083774700262762170214727112964494242588354051541270392955836267745693467690945714804362403469919892328149449393773370514516531734645406479321854258373261677578803761790961707543886562878817843352610980248152190967781673580239145393352010078492497547012503964531873542528953611207681527059550436926771307364910387632974804207581973273826834866110378997501626062731792987766035609382386560671168811620364190482994867616247279372310256696585393104587161993613052451574777317050132597094739080842628332774450996477554290274463980434724817678577927316740180076515691662554972334034335641596372823427740136649490501893057366339751334336397185605015193927733607205699955045528014101181915416636524266855269870625250948012584803418547031791648354631303207720722522702937678193275951272864461802284682910276396595708414731146441483201815934052606568825934708109593421051675061385777987536105574229495386302905529771459533578652276680876423002257042763473783406089177804314408164425231013649067965260166361904086516251618007378956494204571509606205197556510517684919016582895225491700402439109555530899976897932475729315924491893980433254750626140612200404741531391726295535487183773141196979167307854272388060188445399507789706259285820375306157240012156469628928138417883682067931328775820833151243163537739328616034529417716366694641980722866529085446051873501775073445719240605855425266532704813562182531087984394333031306620827813968070452428205704947718639742076580790634665031043794302132814596685853548790669097454717677117538330190439417542406416294471627778819812705134904481331836386200227316312167557481455850139974186988763773358353638795345247112534798925616283228184176196998737922607235496392924484284131590709276519346230587301456624379478051277622120187828581351218811701899908083444660515950593329269480066424028620205236152648783964180749895633127468780630186546114275010423561883772757653811744923963207649723154797105473173006410367424753474858008920281939894474506085867413384822794528477616580752750318222844004092278073861249559135187437320610918299067732780384465260439055027818223797127748712482128830678356991351192694491229819278314241107946895234851175751804850539195269660596084204711162874607940553131084158245364714689304115976806389666319864853267305662384401126533091017457973691714619342878128179275928079942049554285592042723040682841677568164433955596316418859429784020001769547404268653796739009894578274755042943103571174830402753281896637198387932160761886596850246146381584455679423881029236403278631550398086325828011306948993790444247499245755411770819805179052655099226246971242675452513505889961380829998661444553538526731514210511060037656878364671367742524649140956225317644746918574332346621198583383181434436821034121390051785586210788401640742982353812333372027652594270314003666144601855756080743680613594763449783873930901785131765828450648477429159158597990153866757660508064831806738737978439681976822642991189131152893817542661186595093813795176345330084280781756761539512936257263140761167394606520261650918175266730383931193233885659749646404354069447739394893257774504045653784177130475313525484451335998502527374157464073866801503979005453285988431373593293565913715122189374632293100325963579352509430723815307587734659582962605725761247556402636971413460608567769646042365474671432252765592834529837410460049360450387839747974608553362060210802930737540711571348946929790186332321197726932952828950619459248166307518984007803723312944556369345215030700811364492518686101883210706531342260732798318470588395803493410392932410623439026391366418897385524343424933028017469849216774375647889954398075537662360981432562237066533327731390744620092430317521033030014705449972900627924777341936027408645139066116073362901327413047833190250018438083970755096263035145470972639358171800183929978859763097050299095600922993179609985415037944190368296321626298117467318510688969151063148930080358127009005418667772502668947245988254047231345250629940349952938261532569125661704713496844632440427310069295053201472794262736700680412929088187425956851899389057793791651355590564055766084086452037050886720665266464120435673201684260531650464263605182298176231596960296771051683823324430873871130850699005920169267451738520205807304300864220153591910389982308676757738747527844546462765727383880281606764306597239989072686359258850193665842327095524873140898563522275795780748172430152213400267450511722203582730001061974822806233208717549369060926231258569241474489539620052900157975174639454012934424497374924378165250787270383363520511090732212873115658870350827603384036955684879351922139771532861088947301531078977874495483986335858845067785949621612549427140911494942314351166662004154908018807060631398392245020922151390864635722566452308611187468811525832194910397515486956618323603069723190298783644677185893830734576217800659553169951183496509866445490108470450822973280036432267256563849050975932995467306579713311358376539738826890685047952041061091595732594167961192886977498812459698867802381982468806916540319872603729649540773576319695122228011205402768449119679769334019436844533025134914220298997558653422300235682934860830936336502477097337415530758520055318524838523264450825745858812725564688759674806112131408591698056176987453796009950200770801030295548224860173535449504350683700655472723056014665927638411800734935124214556581901117886791773642738296043901118695272334860911237810521891548980372779424455312523048876251397661797657776078650295496473467319707273325433580275926888820005959003861023757809574285933657616256940974667775230065509762957606475360788967077837425135271115927339849250588617080303932628215886680302541581780274842338895034084156022125142281988445075267113382181341448218166528440621126252769537037785000308754517653509711913301406621506523358115918903213720122542762761815275141786169485337729835257590861075628390767170318831837248536810060192239921210083556900195864254514681206243735466526735426855575647000604471412187598426793090790695744433710609791673493086755428944593682271235455096189763689262459419427927789878541014917220022117568704250173783908935040519988505195860773991023421578496350141272878491649562217385921222568250215232259163327870301062302108639711063464340518619541155393459469174447917894055520054954392706910815963194648548716676639090827011752435613316010959753139104462170197017754966330452249780685278259875943735967003864865984987292424962349447228997442804770435979127965079588472226204369138692168464370979128925886352402466565591395293828285231338353394240384625907186929701563115527838270376843225603334554492661410804684654933141219505777662466930143671725578172786127923857883083723752118743829126718913522673719476695888693862751640942714670227010804720391267261935032416121669236359057708229928748970856400914776058329390612181654877882646085033879633664427281840418696056398156024583332489201944625087209579222997745070513243226734044923835333610907000968736039921745939048463373713535164849279308224839027698346711387215701331125654771645494800620736981560939408935138856076523030883134256861593574594112282492785549447119242498429173417626127253901817163000910820683668849642385951583598253399815043142211911402280299920234605059680563606077678852392943785314142292975967190223983987415853907851961164213539563596258323286603255666092816058437870690029832255216415522478948997962814878536332737751365081072455727815839343038604784978109236963152631354103662314854616300666505850396129308278553513688277807347442491947538959736896843377613092890869415194042492891141281302644001239903515947244883268373539221081599924125726227347239156676725271047197383991706740133516544582368342820977293678996637548943058985056507080904604675515299528521406950682960022455957595888968717147718013198278905263249254376384677629190303116491760354362249637071239734956834917759227251217180654714660063429334456461876927108466543657637159886841835761410308117595032920140797732639874154592729478120626829896054400816815198363108128586833366343799053278218840265029075959184709408013866067523560652173196469000364361165522198706523867024786397629080721305372463439400636410773403065022341871315377617338120423472690985570269182801244011919222694855469700097414973956602487661642611578367783849516984287027081838103302588331125445991967751209780927549467261232720378494113992296260324359045499169715156490738151799533033260902216947073956077422397007870240069224812222645782643603871288863895354520771949067088568208411713809040505125161992358207765033855932617135812144776484721811245503827792423239787532323040644009025715864324104085612496164357103202705585936760323953423605751248275659691883911086537082849270259314500359795715792164247418203870874987873005551725856339963677217387682940039314812341718037107642928995495492076650325049502556071383301941740755705249163817699287788827890122372582620588654616320864359231961558764030430387318228000322534670758077369236031020860664105674312681913160526468628835765336667395884412023138235573653134839755354202640379252569725745567159564212497286296562014307675469416935197474824078042222294869856187545459351482650771272925358202961526085711082150462152889880633052356268409996108347680018389653177116563619199927142334922178625919978008966756818213657814820399729884981133199574034229054009844256242535685482028439315153757970982484002261873392434532052537242152811187167815565536349091397100590664523534144608283969834014209705377881185391940859430098980049720029276526328008926950146154717378876565820256325144097406146200468087155321770993279192972355249108792545519797269936591097548738979285556519524947116163639548522626454285688778441945335392316119335793826415268803875065501633910102653342706243634865102424666362781636238738217227969340142932930590824162808938823149857671436287645685978365585013987725902488317768410290493931398788614970646271015119105245511875156012886018219842681174002132829119339823852249122579418072638379104990431236793226171726710597725061232001983044048299689284190646373100344853804032721735831182678881431075473148398788852612765999274856515154468589511404984076245260391032928004255433251592120458823271016301722870233055566034735792917773489889765475526518686459405900186713978073056526870764192045652982700055645943757720781312107956612254094208072913899051834611126725031193945314239401761970310808416925983454225478182832473312611579746825906440439152467213450512311313687722821707693036062426141403198233650356603052470789615305115191748998820588235617089891714635555716024402435750039428458806759902069165578925458775767138714680717000172224932776081644309226378351825887211112142743847241822146492802161661771925926543605016705350734956929107657618434701036878847797122634822555591070235763564963242532919573588457131630805553209396437673535875506668008205436930731023650872987023105553793983702858619791624328842778106424556645012428008238524884688382595385321149320895655868696406070383517839787181046144196210516052793455580765119183940799875973742266005908841623667065192846647010003524393781128171373890510230016091037919744586071489674863248886285472469310036239806484723668689540395822059862147334279089511593504162003220687536587506343222645880259063046689705090899069199259777198814923998470282367107039959649101248787713355333710535422205925921989795184397403745864160068786750054952653062843311468150253229256061413441325301950903439963898585567916654975787564902362417103835884173488089875177990327522881609095983738636429871383636938272090723556475479713372060615161096363491453802257982436388837070796147304163622896177529077446113857301223999635826566664180790683011263724128529716832869185655170321835738420636933611823718462687943435919668018511394671150135400236551901052474327861570404611129285234957509773292078638682779842029757701157147125552143385699726479153754005142445422939349917287433630407492815756747986563996274925512948845580740721993527858842194629857743777879934857637198977908756209501610567856312870089873490943462862255327248163510929340403246804432540334525047248277182998621735877642824945492633309673196694668600429995297159388603289242620935406562598605365066710444181764590199139222468161137852482937260209563380715455582323884500060465857665045706032918972644981366019279721264871872417514266977320198089988124387293208862382304697288989649427314868205383628690500717573402934681978812356098026141412670469205788114628889832028712300555763297061198662877117307797648835300845043463986678654694599380347901744185703744677797525118971908054515902512008001401276869868423000028239860729597654148466146191721330426422188163837100817875235905463235217006367071670854602368180275837141487623047951758267740097505363838568824652193898928169742741328792337664611487924512664691990153244646420566321205612912165084622507991569942257849759208017748056675318376410162285868748307984060033389720006000468111663004960435838073189515905200185762785406745635435742942183922246332086456288962952405913708254514879758309830681729367354447261730122019176706589420597589733587455599552232426191533216248596425750017588495002228470516491751430667079048831483082294993803959994909698788075141803984101775886035737453058912960639848138956157641855889673100448168375407116728935586192442786446715853618080612597724230106504275320234738273093872272238732770988252054983456601593623217434980721309021892169579690867346575520036554022859418431741355215668784515771488966534655119793637873325508601424455493177034647588223722484306242262564838662426830355257933335106761435880082012410748763113964975330189562427978954016427764703379012397881468975537985333986982358789329498876805933169642879112229337934176053260236044753908886460988783297275971510861673499090663949888325821127454203264691935943224623564129419846483574767179335783940495785185425179186540116369932316773846899302801544860653484867107881519936747216780460772873384414826083123913734568359495744870713718138549838014729377604422799065225102525432341530154269218109378282839097882285516162280662788100415996719890298439012722937546892111046465486777195039890344566355140574336680925314493440945108835487089776266598403423746286724647010882425773743334013260582232353029267288588983473734294132866174318646185584333656424851286856978749396773150755727049599531315034747303869062441663240082704321587672298808254395571781227739991663098058430823294315151924368795956642728990410524338649471776881597931900596809688337358286181146639168646383756131510582274621663146315572350373164066362600636583817065182987666401564455890225364706316631365809763090512975095870043655437433378106704940235302054676313086754143112403868557524231972824044638235994162760073273345138146778654168091248900809148404561257091622536644828485993795789613653790061279230013019423254838218532762952810994331174057836242283221493500291422910998744130376291098312100960670821593980979178707269966881919623915240638131013016123949974265928603062683924307420637207761999180420718211634913161841222442529116582195344716039218323642119685241414805667491356986846075900318768518216200733671192097959755230094882658458615138406741866209075950211960011475737153407709252688624317981546927004988744581744834406514604047482023097091214380389373044925540716650166046417784246067631189927178504451504780672857227495000461498390217682935112078296856235763777394991355525340100708823712617456640216922295315445880214314025092284227249994623366603379942190861705342539801343558198057181611155963281399214968908563508838554168806571899667728547541486416301117727273671167375363986703871881829396321936753535757483565895139529050000527290117234714021795466521904579061609871347708792280173969069965585192246518194330610628919491978119111345691363309208342066730822712065173176980621947304863513573493886242335885572510481080478016569616994706849325040842748708619915847180339163202334997724887654028053408128036355458294301275988082791990352469887395135361925580542026140976901122173640766490119186483931826223064869413395682684255123564639002429707961749629453246098234803866989058390863218478884899922540758526790523368349671152490317012080379390714004875023622407686044171287885260673950455379072038439532407320069211042132989363996936902912138858447495707063551669297581650726168372111092186362098879657544726329194055216286352238962504268155126647643814498654004543690448389436453436114115503408088949563575116174397929627399992879725400576442942511337250474419158379416119077345485941276833265252646731668297529144942933679207048336177457147859017305134095427961861064144236153238445057311409830329611485129982030923299187634803051297359556558318923571693050649147038612693577871084285444690520430911102366469572345187271187166835855487584248997048952764015401593420101632466227527978049443555114927734354832859337331571981874015204702468812844995034409032336497519709526452891114533494306032743426588578493249168227543830781504479578097823739368211171596835288544225968957759892755097922880507264952423589263543577037392093583580255176486875300657139143888016084851772064414997253385250851357432861683817645881427295444662451128809984860266116317973563499968714253499845932511324104025857857932395533001021618304551951554644195428726868397833775999524198703348844069311033567361583749805377781823430913686711804925530498767034708296676693253013895523821694912754338968315777131128881956220070542314393264069910866639324696304564806360618223660733768901330716002692614577462651600065504538375579260646191967208680867864386597196569844594141027815845447071137640903989497652800007308971777895872385618296952206000049118487839411421444478147243470672537702686002145399803097128996034090630269756339869352370997405009096598462460424418433123778539678644631811267590065969115901438759518797467331690361870719143996755311593377706328891790355054795702309818641297171476376158695911262614796237623083972525971909289178767452265502507627920810315072815759769665138191950078032163149117233325527602547585935195692686283085834347309896844631802334577055816187769258571402003017677326941899395779598287572041102455124582734634584120294822791033127625102063371160262660682106880732599330708548988208892053871141618298041285035099524297562104312771531274906141412045722450997183092579420652377627452668831742660085232826744898100804608545800869757884254269572948602893956005829211082363859116991174658136771075297414950933276000929478261802064462956837441127455476909273957451555290152929531300977948753656753366340635516407819351957288064919881839434481068971501467227364928406856267601901997265930816648218085438732233128715299563129414589887428842905906693170393830032654053815651124555681207151639070934272443371970437614166437788294636311824693415530733711432487049580075002789733037720751387499747880157461107554513624467942474571786900934357812694809414352752786996210934434232588517232499358859558219210225029034614436671628655082522776250303565970156219286831921955336520273314307687232863478313155114312813711557084656339756249879515304673341989399031686202572200749153043061657071458040292973563744592001008756973850931652720907796000808972775401180426078457737244016288211991169955199407131220250528339244910905288090308039558078364502047047059206918936372079587366830480600824608146716152858574805550038103626874018807959312801727573042856235138105116870749105425055844879292870605290492812380511258798193001422088090782998596399404066925303729018738586580054172948921723282863193010753084239965834214417721494565582906087513634417617250906814365122568342911031553952343996818840690593170714476803249037173786649626644504481330339179074301266649949563219216629114626592718296455780956958446890104873084322236862387357823339928357103899555088137996240543875343354771798640723162595238669877703367069257737489882293703408117275456977719970780158110514402204013573993060030598171846801494374066786235559101164912288526194995016297777096936672436405472706429622866650459522719227088038874410302389984603999476732039183083806251227669980683865106094390562378153832617073025510990902510919110793414746226743430211567733425817553622088844211360350390017577329091187360158144120436074737585504569970650482636170221793182655679839682342850352305124520336489331231255714102786481644374156439536079979577594151826964491824490720113350630698150174887770924659682436007892383532071647749377299245999314692892499833308054229527201647282331242624960670237408532462512974112153569026895210759094637883815386094199911814329645244721923049187084340808005552375845186839928418627536878248739525423767789298196466083264356674468697582063007883276244814919876947254711632140181849355123406156335466047263780891366617818103158299118389454929592283387159825850123750790848196626963259919093514018233813743550842820110903497109808928332208789217117288849156443627850206603466532617528793025972669117309063823899087657143403752873314706031995631317527891295984008280541825451505063606649789879242031498457108594262938474888151056953598098101869101040020469703268444874164769982358155656236391422159477125595137720097185339623073767240390925933996610893948112662803705301287996736524748408884167021012274390476467489061055120768418642480947889093579006824975982490226537583816680510944281811563577491676416639180927835158623724368871818227881535067143116035457358445586518245047998359788567011369475238455116144744215379519629224981222606431471815597957432514758733200062962604781520908846793851187763079367359670139979822919090799889326065447221961970595750623162501868970179961713220386386580357530973630673621687521704240464389086718547011278487565530597983443851295792231800848376148690777355576791403144644360802353190952897149216630472547548656581629099195027184206694715982151475517982655130066567988512989559830520202231207001899077781514830835014259855428680509163086541591032999159351041987324848780060766505464997241293489823538707307156152083255143576556590215224337129995843717318106448725046766305689263306115083697280426606473005782261675990119847488220119952573005941094209836752905267040098999733932456006816741227107884616713721595084799702915202263065395481281142693939045835268302875748829260300740451969019216889007619685371122696419455866825847285067539889257017384048386023812097082652107284679682105111901807864852667800280041393219374201871664347793003484559793738594061577586436096460373669262101796868033957276955983124274605604298678767556608177539362846479789024186409083431144812520051058426957831888163889791960786793314445029868857937157472098624528369921891371707157186087337321970035521045061023942208379935371665350731020473189783267578670659357906470279734834610870951620682818052339894966606962926213778089339563884796344845672943903967692068098596910040136081182970116524787097214747256182641784095052916491734602243392790155638389972099658242362719400391660796052032646799599106449019809801620410427250491311911046203126439035151339956724265489495391219881285429573908290356570665051272483367067250278506502984559465313951105673171772824086054053027446104945569623615142721368146271930683793958055020614275727743415882680539462372779785387153262145936604074266418992254654255515860331660606922919725853224400855254114517648773761266786725191770226854203230826944613770458832901990331202187632746682910777144026100206458961738654753673620948968281629846036472702232392909098227570791407635844550358830918905234957520933033538924844590822862742030250963433406613609332846320158290924361044555482141294578144191691814971817037513047247493266896617992166449248004330793232258817715680295620734312044867360006397968867805459638923768173084711255760590014880629024102119825242291357690296970942423265558365376321112036001587990780625245849055445135919547181284916187673778191989651953391441294804572235961462049767045598365645400113541576170898087045896406347276194017139851181329282993757014395913370325923402163591790678055305424857553077596416674628953446598012575597428728682553024485587923107028095638467430466185701002956426478559601109674062221867908417645678916845467011905297541711704613222023079942259898766683980881652907239340384162342373328159079249217944401031278558452950249343271469386276588645144030883658178034909258356860193888513742794033850421027160038669237304680933777585224981011690782422295520869366593827626144258255624109014143317681994664862364810684536234051399411619302695211953643361106166087981068415724922068866338279877453034328617644710639270205245642938656036981069577327188739293527712894492583325913534793494607146044313596523090357796836734666458956897806623496416598841588728677206822311266783194085961962166907442044505292226511679152306769718540379775080884099418794267973926190207950726250558653856718401719311886166324509936340508097136134510487219466689540231211888644636534108979845331884758813499151341869563114440403666441915258860709699530643654065959377792099640518931589743185762911165356612064799999323359268345126082160346246618347920231039751687138318916901398466456424677909382597143696939945844887550183027327757280871830547988231515281553739686732800587167379023109921368147553644680266086242020259561670464312644179600737555927396012838944780639881079650516398825424108532362514807906132778473104209832001855714060874686846548158331227431994237531656023433997605283566667071706466988934206758377648884938720647694972345487180795658970138883775577126365009336388892327791114970600172654307778113030507506393307241767378009581693459610587988814310646039796007802328552331963372114141911775101140877964537187692729534738950233000298542190687270899402849972843972729054539916593716245768601537159512123545905875199777497451282423832958481334107349340191699248455955207025718119591312314257064143535657344208997057603901922250825968151087676209063010018483819729805318604960717329999698550221641237181411123896457684761616723089352351810202869711026940492934592532581519608416004878527460854758550918737996852275533061262415908388250551937512499909905173448340126584903591016342364624291807842655008744935752947120622175886828393395502020401595672632367073148380306808651751815853348502140380422261621901855161899995924924538267129626052770213629612623193015004298246167646981450282327981827723383520230365601889840357550074701400148864510792479690281040769444453236554880409239634403428618691894165563219047359314640132137046597690303390165520184101658652314476619540127960684578520197411025108160347751932672454090473868361981533752486898435142387662889354770532703603791082651956809558384420882080000096671931033331242358462981969564873964103620364330178472138895077592353940946069218387297146475016212390106562024848610188229994033667558680955310968102090686622147310541652103501561376297921731501991353412107835152019490792841814038275979778416843393841142724679708471058355374687611407033259257149851926307270560127580587114500564387403697368305364091008731965913811119532284579782839862341216231473389091471125154318049343512984821809980671953119659358792264551239668093273105738438056291546357621510433811312899553108444041879317679311132737194452913129929472137265402683337765173027031022004200494764671277817898057038172025406108713372002972512660558931698492522144704526214901265961528344607682518001056520404683016333619833228740055252457250735316224802588293664210584941854104521613996200370345065398244021455512946970107790861152585273077631806410061438450306193330275326541951149771303742747420229952608205758712445901198541010668754929145637908528890710725384884968510702457416749983081896085722237735344196587631218816658056717623041955626634090763696470966109047319368607003074843495996412268228190925068091861969884290389287936608780711535547473643404352136024937562203780985520120942638001184259842853180250111091807569395203096045647018900906369772792907172259672777545040463071206554110322643406479661565135075880929470768358275992105611560835337323828325746889746635217876983624624192268507085699512345497775655734457168165047256720431196888827814776045855698594973160369493264961110289462485982804415655390979274092529624982932436202638763396982336521301129357682014121180978107807701458583136621832751545939312584426115624962933056770445590363082104567648104761356797451630991673756260676224996806855707457493549709599173446170502378800622345115871469679971959991563993475444277560926837714449369018485502961378783261355131338627385389772357312054666904708674607877910441487196325779941703287884263077039086053196696255164458225540489212083699396891107883212624539653190733622888282156913583073359832138328781155225397025045317698292414752827497562431996801133883387483297344569909401796778389307547164170282468524045620681950827960594151334595305296206415935659078972207715624653466430154534345426655889114125652526504810976736051995732610114292174002939238722005131617573338044215800104655296944581230945346950051662981521436673501916078972914094562860713284148937622123002923628655506784665583068991065062099712445547109163147467102993780981528776578722961022779316703036464053748531753090580491210649654050379713449518654350498311962224041978957084948359053136245070079448548717601407282483514151446047408306478588597695900286486158888733110769840550136478738387466794670254112189696623503368729371439408158156997234545797986075730821739752479238827600355731446005363548444555506170657211326491095116028187968342856641009494102137410036419845306092531097043673421701106468938574340761891138127411992993503544091295891135937255464369187624960934926055783053431896957056193879323993131846150760241893019425743295281302324284141539763068561188146576423151108740430029822455386613849841689046639461976817758156986851395329917150880909831528898289573821926580933224156391537495272752390615053611099517353221538514221300229648004837178037117200267637219218322314698237688843273242477429355915015358465997699083753937031500569677435098359022255960799556528695472277033315199811471388734961515402751322702393616271768600776423766453929532480969942911740846916793369277125769055309193560233359862095972452668502641223889656089909388626527973343505042246655935758614385570705299519143681385918494484302617599564360040323620201247866961690867352903647845693539258142098909719209063548823939088755176667921266439376798318338203323922618635862833054623850183425933390713365627891225653880949797312634483369325496965574152519190218749803025600074829381629880187264258791489572822300912388262116486435461916307638067057834644383992693846404673378424288273473371080303444615718538903805063519369483117661721205650907789754144213737221276609492617164045849903996081642762799983935394730916239390191660973598691031827452087689728424924189807419452765502862204419293406937137291879703305936968425691564250408289133596556130085024294631888094655259711687443738423683574431601056100978723833818709863732451095154162903048765580786362115185087774932593049100167495088271216526708158753287166066638240010792438058581462863787144155337634040633758524188864605748828668285678732949815690714840875191895785486846316520884429338221176198490852675412433273621757528688711136726479958184819750249531635544422769184802023491343520862204954508639103644634974619199504130117351320323850688388731813297090135605945728162885459075563718620037639822073597483131516658065078750349451203492612501490588197135949695230183913908194002668219190677333696757337619235071364161267557672172556243037253942013456868823414479387916495803972604881877778413532528722663834905502966033406169774400980401236075663270287793270296985040121431458249685967553828923355551719759256187195088998172109078690032993075594018428668955738613400233837447270355998773663800490614266756113472222406857634899645178621697616438533365475594795738725915170059438987815597887023291225991225023579796757927178552674285255500560434325048784699021699192182926119819130988447013927361857429245031109879046775120460305916254577066712429053580959895232305792943110098046741878307640504930735706590180301065220211837780371607970833335046026448456827195032758358454232111400535692470531278378877258219582162885589737823504943549195009239464922275962596691647910935179720486629481565993210359472654424172928502315001856547062022331802007718547331712642572073759301534306285517560123767658805690219235282419636531735359342584445068885593534171655045490944466430886317616304341283417919415646192768004739016293398713221824819010441581515518851483061906747741523457550070894900635509963080866332711222728867301456254206412648158395886066482834187533149488100402893918115211172229364926116908572649527619188744021488040519490956347410330224621324175628852646905153288262032598860639809991408132819063831124247457948376847746329074757444733897603272506387325673798939980457210830630602855559310047956705369768980902164733045495028920890629927072796047001509820569176015085084767365622489798757216790392960504236534525227070042351481305997978143251948903105119101850223742908651230112843850777581737552204222529772173746709185959200215931879273123134873525556173364407204263434559668130674052062078935718752633201337777838150591345474055062891089609332514020364452824674414368600065872204013118178570287713969360228543085822414791095743239265559487663790889954133410240519769862920950618476253057969227193469601113992499748288461614313303773677564938042979905348243819888699311387342998048984231251487829088089031783252645588703613267667102075701346286978896856961388893118168533254167689244019480828361145144860173562436992394965696784846302752940511718553582918169495583510555043359287724060162851240636260753184536104778019401913026052931718915564004207286139729888179720314767024163868484562890631034333448618807811215961950029608830185649167189437465697412231096012269731455073883732735111857074045423732999807996309652699848768933919832913159009854176662076561869441328884995406962392552476984412020588077628398727294061061101749855544399609398134095937529049777391740717001538808110723372315669687802494191218827288871651553642385002499531872346473245980092277134521167288881567361782951494795546034029855064865196218658246120026796296211964314163623666693837523930537387243938083594484096285837163939298449367451986650658583882851727456309252043062734819215567976760142972360169780023040862990505918545156819466392266403996559959842452062311481999576365644474064643398631169095504789766906368775622111877556553307753105628516771713995828405406454227336738042499180317839549912559347879919255991057313429008488834822727642415331348466862792236962632383465036216363706852785810526968302113559670500396372710678666856410387723295394623910274908720457444876016927773595981244506598531397646930369703202622711181323646144451083597811884389438664422259030060742010265895253992080802052562161284859949341032177197163741288028814066608542668008847407865224974974269330736270141323157838663365338290527303405217864766143638099498313470892734372980175581284557445717054209810067674415022201060993646822834911118469936160037849613599023377502523627487292214053994921093917864924622997755611439440146486787857094005085900962837211596757569147017012390450010577902676453111158188763826542523361299554938648189022509464561465186539393625938104466175008414616664379653685943245645431703667801723589072265374368855691810523838711088566252585053393861378403979438595001805191382389843114806596413682933827285598812798685297292099980286165708836059567430891848783436363209911718926067202703404395049424954145633534762986421427161433280172834481769094924586305250268241391254195234423048224777003183481316970672420273281219252378922624877114448298153837123610120810386954565582097540399297009516295839686657088387521389512915260881054287951333378009517686753810684986999882069111712963581222623571435702510827885488715765589544103226754035686820422033119411780684291184444249787030158660910201409557447756297896639897434772513924278203432943909041223600185492702018469025348471935753217169219932520572200954516225312196387655022560175682826187701367824544015784794504592170573698523052088259823444563359237722321761811401625015804674216462532830206195548436835707691161036398361324257964098180296085681313833605917246744139684951652403668369248280125407386239554756930743967728440187446199815625695222349649493921798211528041734195490803508439825941949835021274805407558010732132429470296363165099670799175390184643926045193981123123517732329227142536936358292866092392802954523821076975071497158834189108635688667754485956982807270176000947634165719359949033196046339285238255427147590772372621770762927000313203262672201764912737361015673531204725539585721460715005247211474827808179933679231415448756075703185164940017758433880645789598184322979962956888494554663001005704122638450918756877870870221885558584301499680748642571792103455472422424611683685468632615909229094789345052550660363114125086867905070661600978296150625222933128628747818440567655570239400940005527562483571982953561841592886773018177387157100319727706666943987565450846630762135661312696457318917086524587009247751930727176888297994839847866785986441572657984759226432853851099381677362781572235796135138017269440175524564395301281674851322373264087441713256877412773241427094437927450435631903685613665612094862060960782265274349909260828493778896854457601472112964239517794694661842347267718724992207071384888894646005928949834089733960380621878030592388556279443527125021381159910652819436280636112608213862325219072451693822280197132488431017319611955452285329442995835302423451289988914437319908096876630724946722641152037815854582674302596679986535767757431304652192543891499896250936465805748374784207210402726491474887741179602717951834088505283609705539082816351552398575187003128042564186667418346041156182697164425173395264453957575222310658377371662722377686532806738411247067514561587814920536708923022557446409983743700872225632591848448033941410071232924630356532408942204719684748776644868082301293959893874544054009504208901904911181247203522789956667874414452771690530845269428895926293544824519374814153218091783148477144339830272024067747373632963210773340574093382324855734663694039895803699375740126768605397598465547833291322534058032471701909362192985594633278576455165104968559620660735913539661204345377258783153123205154972516510614903251888382510953990370444082497026478585615169120346387351277225951752257918861253865388236236610593070390766861245953562604439883819466129849339759470263121092816738356247202801044591000137211518816695559511530536542888720212261754883595530345660802795344786553494005943080763576877026940264188139285008412656341361481569233081709930054844353700078374015782250826621294980054149543088282631831718925197535652147856501737608019734627025070625596961430374307487230279801781501602732917563445319450598152272875094663661220551100107686193166684253976983901148700704855655637747692267357009280078970731028814904913979167249512375739419564276644279579973877860513257734035050789955761194457840094041617555676188497541982445283709477035410813210119454515336771940267088866657423965363239013768996181968052408062523581925031755621287120386705459532054182461818965590001762474101215085596673108424256060532440649442178981020371911148053523227481899325057744700659198727323739607515581696082373015830740099011551674492622457090692590529491146889207337303074463687012259399817854800670192101922287181094585885490564691108335535279076249385969082575478345791036416398909736290699203856298302243730485185402065325821001392016983507794546623268732703833392936979302601146776599368736765147972647108318721046950598886383661587735912870144575078801486916839296844016054321427549874847212303725272245904197042492718499622987850180684950012470761556713835147900617606950000769645247056425444174448773034135962163976688093009917745292934470293930840824228592229158537112673320822327064144420823460501758772282257744694686446046431653572955582869675863467772177484315430878539992777672819414444307319644677895236489730078964354297022143041081292519228680999153540407764654584422779972517779213852485996956754549269386178014448626518690426906688692866994758526779020883469189587272660802433556133637451743061916953949518545916051399723662445017962643396780495731511954749881270280971942247668881366009812542013381097971044169811340111426255102460878270334831079990581927383090459419948756437883423566522300496872697435248926411433333132325467998660749895791624316060085693525817563098274747536271662900828393292319642222203786851492436635187972510585224465457722969838040821433681923960081257791298420339348808782878046094690429486701725141015065735164029438634711773855673707180084197640973241743807835660297134075777663373239656189576359228129576974616858206125135020538248861359404055149066709613118280584342155870768954553123126037138571678348753987729709685605098551120965424237576643167414988728562830261320190702485747696783953931957560553729838733269224900507613502332652633707304381735215378956460254062300755883658888693630668598406008365239461022077296138243813571156089733869586185622859172393842441347643202560815357532309548286028911014239092338376031771302726616657892721654612570253619143078497398602453017681624833376905896176110233878636684602555733234931328730406975819325039878642535905705516102448761964848648021036960436407286696449186204953481577646450729463378270448889665848221292881169413843884014794935066417368386827859643612354052868138623350830408955759425222355957722168173070726749382962021321150594459893005470473748375677454874935154965041319947715326363944406924587779939787266887973353053351403688916270639045951081451629943301017316471927273863676231222282014471478354399866276485430368605633062164667937206661200842108069648101531191417122669035451849347483062002157573870703407245732131655381967042437893034765064745002926870100520732460538435492749400103181606446673645413276088631367910775066396387884192173908333973591965940184394750142534492563627146883876128315587182692704583959389006139826535003292530593392508221531315069746972013758107159469618801243131060851537221684989301164064005664979949546772122609314574954604292506657403624304724207722125705349712382955969276076920507921731906305993114941168952458524618916715639082224544274773736596103421081863602694693168008326597341027856013637410908997290836244517222087296941130203995986708721768915818410360977352840598941039601103023717345018914607369874631870958462543694774463468898948250236129202346585203760006405593103543794439910826914376392906999567652938338980275730483854518284449858999688260195016582710962731614203293526341414099629165494872979364748645033855503892619176542424842940055789397952241709428478226022978616873342515781726995713937890605027435324102267077998705849667518176816820816404757690996006135779023305147647179267085421090163633967965381345022423786954877432176924693471827416243132773744162262305191305021864582210858558831055055600847003783621766733020193874773297420295848510013546083883681752240247358786919825377366803930694514797799252757430069451720678384365832111325754854147697016788306293125579797913285713348221321674454029444205870654671942015227770098545884305587104859752950045744725256214922763469530680893685220117370650030133896108644819144602251168304902588051381224717780304158553771233500978564123633868878931682776785512847513629919943995263237548852253994710818236270140080826265049165746111709827193684605342493100149818493902563972483767945314977337853513638997501012970807790570959001991364847303446893878986959149065305690942590123974223601949211473486408525669922725475222840423477155691623461819034523151720076259844278900664468087170971736076522616467940437307404997991537656546820036231180209296475197268593593560329302671732564352564052390211390920867906832301315278240955505726482864720342995990128778845512610334786802955358705197526351185719946984063258840051079530382433501225050093939845675059119663034000472583920599188487497866984496051367499576811399900589183283591376683475420118360932692168467525623108344685837365041121647172125451716069086761393411969019350482451202739374176227950330515525700036714408974444876103625821656688488158486812732562038419842572193407681932433379379897940573245173931396585233952986487780689931688599475524367517870038517100696632113736205875466584276667127358727444731397232029558236807478966915023797102540469690401818915364797913228682411241485421031572067259509381272390869250943468497477775341547879560764764620328434991538918268527828179521816082860906282661637456142515008162939440977722669393737294870880787365665871048194149019088916863176127765234002625241310896423953830829999857568495338679200781178627103729099234625558413205979066227840645032893252956637231707161947639903731330146964246838818471224643816047890116117460675197141547235774130204106885838576082650437278826960176119341812411701089740208503783508008363651875726274723520041398344635687721913041008818461945802537688278466952128217717998359604245894885100124201541353456465496666524979296381571642192836044357252207254093501640025421552744095162007490681656106430134630541882704820211723633797543781711413125360710439745397247188912508122799291968404807795456164015575962914651774843551584910545030798228385060942114705072382116050810603278373525842882738298576738253014326592103605764533622888736319097341471426699354318965102311917844472233142171706597454248140635588831992722606096773455414392399991519025698290035810529788069129955595153891756872159888962037488624455537222880367085837350596607250204172541213166215506038865296763986418987872598532546225395466245066571981093744995806015053447944830995382326628250018596426709485233975287173280152644034980852456753200744872365043352621427610789129730081470788942518038172911615547094804896581726729723418830257296104759952669623458323081888027547617154869860555770917820883026363628469490512066105987322354867226941237639442989556338716988277251425188948846285369986740020322802983662046732799891052197010545189209191189654537835230526706658393301038298226305012137813428774151636405299272613207097515107198352806421803805706995543564301192322741414040465308926389322797673418056036303345471286099287748880546845741649809108164361087545685876390858255320977291645383594423665879987932288743549874994682246121040311129828750324925278977536348270404269648709536351576202349202645871244249331640428503881479037730214116721387315777183853903181497775540845046024871989800741200515374225349875262879171385172744666631662339887022232082017440429699503867179298306044170592365924252003117089909707329991547584853127886105391272972143639418587702990488039964801592645525673344942780132499891596243652585983171778733187629526391100248401948163588111957499231510095974549492343257246605979273983310446169699438271194228787122340134194673542399468215216159076478837867063724833608022784601028029241904139179694384370013490955711987539365938021412474138148454562294350551839359017388250207461602707142573286648106749210261350669354511083290520210918261547155795701255808480929280886756363300613450128121782753185787034829976130284659097033213079284076628534069983912415715690420991165284441482455859734785234796138668498560056965562373564399870928262568743645140532928292814140392677515752415025241420775326425499098990364376437259818282510284855254343551460188641888110986105800441839861035723811519557423611041932252901338235546831230135602907062145753259211735780358742486583032391814555006979832356757629023386943721799346523833079719820803334515308318299992417487434218872152034678374334410721968371915912140241186362361304541443020209308795119436726775025863911205532187695106317225023247639223803429868376213253901843145475526979512344197864799900242701503634454642832324048900665897624255301296528164256670608713721322481039734081514089032961368068421519934422909640003107004704670909592862530105613085827080620121011056640248789914290095574079996016735507626538936992475835535338476366111968008190208959264242582462486177508882650406863450083623172477080054079390302086801657360937684492940829150549139794616632167509588602430732770394198319429885343780122398941651543206404170036171648779249716314741384911382049577677132584802596178866043463384375285827106799960986572741097384180616675938631642959733470726472358748798090592943845509689734760184416044776810755479980974080683687441855049650139904681494112660647684917923317427663160686698984271218951329448378849627839010637505462434414000872949376118482113824320381729091266370935531352703015487381051162308642578762185239172816480480626971519850533118806617047722595976112873816963350453421340764953861877235950191975974587547659271230553113158401345808421403433545635988623856795713085675064423188877774948566352353148389021514154674906639678823536376569791659972734219816349874044548786708429689248400225497191859823202514628707185451614448318279454112860994020505832759005065965632271515490086715317532211388085019449779056618730104692147966453146374310847857844279607114108137278753672649549422718255235109792379885144724180722495735866861627077775274969204041220678588058119870889918875811353860405701189974927238012765336492833521372389248966255963137321339797663121660106496241020778459513788952210785482476341175103131497878208052109472170903652713732191938408844224213273042311848393470600239361476365137366674256489891685510818387734088585410976894498477916328506341891216603516526398740984561969429044877544172084049300604097261312399779552583829442649315787317431928488097528715833102978284199526492613671341648845105284797391161413824956280370156178186627163482369921455135128123494599104222761179965168949276739832990538868000047847373183201784366145934953406875743095575975084093982400973958192307095786324102666880046662247666203535671706417648361940341489153277985888238294877049274102926222330232840542316391224689785176922450005914082215924351975649188280248224913927304314991706189971669376713190802321070623558697980638973239667440190885978275110867587435666008998914464372928673703550833799632747794717729174404021476664819599528028976580048505346238702967550414987505940884056676241841575487726158746330921389917559918874649361091162460784271526160582456233413353893214271715030271581383265650903407239387148220065104057683158880287493560137640120120583013633375218150708230055095989264401484376799127235304281092484683090509272616830119682894329988939019954490694662765592554897605317484683944715872224686906723739059596809979421493956753082553511052216817823390873030599606275411009341326049637068518280074245737234439165993894723021409062479062687055589913626637902738914237621773482231979493529436310418708084146784711757644815831820973799011572434572477722789574081408766900459451815554923128410694449316793177968735287795433412344969431048080009385273362815532981589963329002627241658685732940856436065907237656540268349321834375827827766971003055992792192077494907458721918285209744954436189971561841632150072884296430317018185828331110067510082944416964047273569359998718079282396109891579462913195337016056984941715327040495727948076691311773153386526832321479055645796180277177332784725248450609662622726054713461139269737946771596575152433131844374105578612857413521632662449429667513678445223841845469230023971553806363230449024208105180170685839904763758383900951733309917549361416209969297936138458161633429897558155071049202313965262306081013857866595048388097234351533818481917546514425266682177386821119551974581970857962221188664327424932759152658381145125672537549161397993033143941238001321917444854869786615922711632652176212568301909147558997325154549342253491588568942805434289171320071823234834001988370264842186283095769307598177197984872149497688000659595361761803170375921117943696155208043318077293326524471370877259050846407151286978467136307818527270182681289954329264734580841847187220852953242015215853356121120473517968108700910455262509903194893609953641463040703472251211580393025817854665300629154651448192744364835752210515731858416442227884762022875453344711553451994602211707430304182009641359414206671545250985217547409572535718432332411430674153859119038071145561595265181230022441553770935228775168295348734703749420429954535082234730589719701489721593519894805517337011628681845566206936388558398388117482569544350444230352018517140020823581106061204167786130456066885825060136194936056092400306643254431614167382451093954923268290890416395580858552052119716003901889938222881909386634109089866206013882396603464265950460180695844517870813678447931353735198825032630770040192673077200924413525729928456263972357642567218095569832752806193008441953845018165058682009621565113132283424899181312539588567296292671763318144521132335884028415472160760417313132944042044746948802378568838754812979574755174970184854426165961231653426592896618509941729758234072535991386232206630440991241098601867460151939909217378735381845978755400738843998807515007033701104361545919060628400362726729517374507859449006750727249868911359775314764530313955590977943218175709506659836875721924288778336636390077687958218204203025137991743015536827551116254815099365720428410357963767192241229135802923811170704293575205172240264819128978115694307213175957121503915582500937642924955041821647981807441232790586069732996176569349211082980414599390550428344438024484244748199801680678898698536078265054221130138217431117334314189752647422089902253358358214759943446372036834584619237288539034081097001595751316152870937073195221261645590676230335169149001550833367476013403730367348614914077461230367873689536711701544246760719158008120269790089479388636213907224425894017622458768004369152381220167842177573353807481145412646377463005830066363143054692196995216987747904584117578629882359175502657888063739639010689607114666050120993700282861117195551360634756588459949113521225846003419613821175688107019985510850639693720105371948389019017562316528503254141943200917630597970889603334891892246031577420637030421199869207944885812685703998095722429548755389681735295985014885223716183866825446386006810035869666119658800091721572500965514441358934552173154703035982112281991984212826641576706018091752648867853101430782311297417077147995199754823402221814406384256794359505309749932671561599123695119265086170312714374661410686217032678526656167122301819394914043516194888835548849926828252271254513881302240899181295946013566103572539392417829309016156595161430512906010804735641784015402035226789434625892238130775877298117458404843394362512805986250568000479922697378492021784219637272431395265089137841374736897027363003224894304666850962304012585981123623623662534740580889866638820141032444431738355410048642249343079285286150447379690078872623829960145303219517134301700854734310019637954683550886103202581525296904351025507909389939590447347017554123937630785602058234529678761757903527641286749408466975837718975919165427796128229650716410610563041753368144215706392749014361155923558431416222326176699666225543966251843934143083069319611835111046156746010601216739302360077686339868024980820369627384933286411763262738336524965037948699968184582872186935337204321005433411039789925568667524899833806884434727858657083030459087860898671546956415777999708172889221160520040361248528318059229130352495321522414727807225961269991944102416437001022400293086239445260166008838303483433508209513524409341624558080649725617338430698107350093517691597053090278520185915599542514981728083558744802898638276635663484950982962131988367199516217290507692539967112113236300310780075554853452593329857896126531413852619078688507324997585262069799515293096402011601667807848628715756960209693028589799169876523048996716963441027515512015887186126104131099340496529223825111590353046347256986430206225751906336836712137205729058354525959922356778034813749415326510887116694941397924663756889888954819244555320472843648822812601249474660096069036630979393848620900481774001986696655419251414004070561140216495263696841094044294206646303111990879638116255280925819760509333115727969859564063025777605862253381223131223498362224607675405123441821580899777902677279414359658860088748467652157937052161623411026899416471208456975982421989328063633977304049718233726205650346673692908245466846862190876682208098113033757448269546141193855066591943690656020099397704784246972470285589748793215737808574280520605173007709675861352741935825440287417182631382852682786457946981247511027378722729653320654205672898771460542042673429026533400428373633121824041262461226013992202572221094077266169284609255120890548094865599685716702394073140811199840613389489134321366357618652528508989679629195540371237822973742448515967293685666836293738006125125813436744016464081439749849996733147675304987140608066848829940405137302430495224483336277234656769810889488360737900641638917443793441341200653374704626345377009654044213449893411102794150324346101197438466567817000636916138552888375878028920379565729081364712033441575422787337076648044389364626719653328675050304293308451865972393553375533272357799218514467859057592443598743339510654776718938031005771369527283193474500528138974610855022507390092976158820647159470947126870008974060997957523451730524207106291322288011256484491514445187795258080608521328846988263807531075800003947589671949067243139191153079015960421705772706269647793337462265996416573617478666423691187819164318796993921981636838019328000021931066588890302741856768528578572076797415270288848688166382737623439502294640277591546009955193931674835039663612568824074510880649485523204786624994666812428258487130054832787977177819596223844772981612839612395922751080922553034458185879323870348622757116603325827383701847537369929930482882387166841063126701687491770904203441104888285029910655948184809045517356235275221102707480504932765802782825110650522228291994982117430632012779573028612387634709071895185781631910563489748748149042830322260833946486409528147712732936767391636022985975373782393204840926300750246038553411792819969072321978114488696157707257505013206325106053181620717786056930978881185292036172112569936695057623972128767413352749599693203649735075227907052125151540088744634945605855833586654050683659194346798294570711274259064028703812891143562183288207975489355816196100092662774773297461178748134680827172505302465807759779449648216515526530853963929536807346469058139179193650543573184809217843396751572356660317940004818949871451168364896749231938830123176843076362995498396441167789835053685044868955583733950787764781885100002828726042440867315067658897652257835788755506602008802791479210761822569105936890548869994528255274608581683242451578710191265426865144368577251795290278722531081224815307447791427889070716811110883843212269485357907398116227785346120416463395500798602784293702626092814268528979304376806808945692693403971201477927020390177765865486643997000485414968456296510752033077825174417950574217378141415529739669462132915690612776825307249692319082649407572562836368816255855583197747041027202123073050728979706433362448579316752956004503643312244587116933949786859586089646829548204022803867329896875442846942551056284898728129051545471050859693829715770106669103995215204199783901000150025574205933489557185499069477229820084582290401255921518963341257992855575293830672054329435585350592361009807770623374789707269478038381661101172284134899688881221754719031339057503533646510584837036577804595786046143907546473312101811821680479645830801050966662715719474092728264518436210496918063878122402015939557605328603327430229603216241981642855384158836791091340573226033386609741140644639028787108687239490232600014682307728402845615015454437104576400473983658383784254277390370826211751834520629948140407735956374072160956751477637251716406389862445693743469413285491421716245242762522984512658147458792158564077479568012262429235994727856062786284622677498437849740906938958923513176761384593743981734868718159628581775067195839498503586538626627095821324191595873962237848979943525321737645084956001719183345708763001400560953001767666623176408323526176286916248357653360865769027917251035669565285708194273901539394389915298842876573392457245074812664318121796929398564973537766051009631682960526387519932093932468076892460068624744396187891335229383454804040523647309031466811457992427704030311067655767593425663636567510541247710244935452433077448946107346462784233758403850398146506302030281389920081264429451050694009918614686213346428551878442982640349747264090476598653801083681167215292259954921771216949385678844882038997355446360383270567855642019124187301320355491840739390417015005749700768135282904057061570857325897913532021512936200629751309420171139937843116455039060757737210106752350349218187242016951430244108127064758578400149644468225862438458140529877096293443669294218968833791491544729970886352729410859322783117440781057255407210146974550638225396165120360599938648509074065328629382606041811344856129661041031919909266494569738840531260479796094434722750479906755766241571028160825723528612326150043504632530075546757338641550781368485495443347702219816694119953987361872577217042482198080944575847130930665440902373640540515987112170731080592372222446261555731632453024634308199134112764184234982024223833758149209857629660926259643405894223827799575626476998443675640409068793788059568759963416513836863591296943196039483067427438947210636332052159665758760501772393797786410963890845901698914182424348442478654204430943821241290000464289121226996460451601326403994704102478132225452977028461033999409239518723661377947968395303035798389544088119538712102006838360383685757686412114031051512515529638289538584559287496521872532022383601646233386801996921798628598568040809507023859074713811775372677850117441523289522012540851850259466365919439104269552222125349180345000026807925193304899719759646284764483161310658856478985971222813604044959673529987885715801741608633185984936240759090365578903638652775856506602158411910621861277659145914855779565427670117259629815372177742821316764455815707992550449255011073144624354150694699365118773000251230191623654776806194659737414383313845098532200123611961519815732911026006686799854294067069154065078534771324091049839918912611652336401254037644609124578885688106780606519417650667788903445010985396691587614185064591899309793562156935492632804876876633488383225040745542087318862167254914895315747639573359757740531698650524451047669311887983782344922186515672807456233714016144681309491322537600439371941751470598483347405155424322484507507262923287891132062575146170364107333209881241034136249197842459229462926452363700545370413947471699650102987659471958018563094128131312563199453852015187370281525908414205039402540132620805058966352358490498383478848213006059111519740570159107913107868760240188597519214115355572322241333055097835532095195121506692119769673299520078778214149483291817233679053107250585838420344933559713524182844600201917633397645863952536812158653688593333610027768247239107098759594530896305579795065764840910381796333449519274097253968349783386863140794320968180121567872256685068928873114747472895673984756826911867418275561347789426063807555171319910446216501478169122955635611339587263681688757878202025609496173836501379143702898490577886411311901415779038889028166400177276309068370333306971801045630847574905938573525040102938908638489118405544495380053590347883182151391329461459282444883244839096582437940890336831337172782045758237247888465707774298694083087553285415023870845668742971826817089832703714175634943203812283505982228206345975155893812082471040493267480032090220600834264613753767238857584467243476952245717750110591326876694908174293722040953283159606849255698911651872267504982000733995900590384543710203444203478208090348753973248752791188635445837073100119956040095571627224985086098305428382121822388488059841752193350012183595164907292173914957715080055504007707273735044150225864829645317320870391560906628997228117731276629900975788137147178274403744376219169478451929490334792612697431347850680104204233543664128680254929943175514690257023467726421456024260306926220512996165865670155103426341126196890484624068527916118962433821759051180626763847784114758708918282734356567746104339508724311822617512478265769355937737852952136869753228964727248179129713352218338250822700500341773299920982422871187587283102270899263124636939900385484331871152300284059218907063684107733942914770871337139596498481505814206029765936238151576153651673324681438347144000144875016953332337868751413394539273464977835014391635464524245756274651180616690259429969150673254784911362832892417270709647018655498569008878379671407996802284937350828868178159367742274785564344567475809749563466491469027255511458381702322147522685634556572780923068955766937380117914951730828984117203807537669064029959565461893951594830752484458059848796811252848947388715713828858929944914403634653045760562812460548540978658873245963836168658041667801157220383733989006016406987261564650037350786768566006218565754940810827907452888715389896378269748267651330813909499329987781754001500275447412506115661856495620239578001010979918224122709139495638977278648867964878492867074069694266062012366803767203031522929197078547231509890565745467916914467261239534437924031796380191435844143396543300741619248454359709365678961327591598944695028392740010431746660133155945417728335724316679346656217435087759802005238371116532045623126472204611048277850180109040825021894099935838929226058224432545731054133784690011994190745056559641939717070015572791019006478159331797597798343126683937743223195145693903106329606671469344942904948749867669889939751715633447078442826312128918617810728776873428403750489357958968269331822281912212574318315202674882223945561505315156597301885594008152524413959428285057109544189548818614608862399592680256018115464062088848373051906505250531516533869097974929805372895452794102440747099380888418818457880182214624241601583613929787085763773399840382602708260309176751185665947483913033053349527326517495923849270843195361074036114243337468668181603350887662661946608766946175975002749446419573627095295199516781626491623789774957171807545158933942996233074658679637319490258687096268008269084462261570204428704185714457680467490329271811021480912216623334077378362083853551891209098995705314033893959753786183059858641136805139202122668544187605123127726939962458073970844943437745489268294681211448739746121204470124971309971439435290974103072113016981169341349407855519900803453896775685506606585639069440482852731032097664313397217370994820486751890696212860073668974800534874647661129934074407684178188446785456114346624264925020898193566632008779600774605215065883318574446750139959367533279977954821365311026715570795420771901732250883127684679228321772824173241194138883565340036458465949027906724749655897362386897667560745839742750642986883751862170858032438501811636971291214582245621721645008314420180864269587502627762963020785572319840716123848481341142350661795492428138909888699872159110519854241681772944864971578723116381446951080051424692983817029593473894184488176937090190251401772262528143476788329543216948278742103161526785435839099467819955302715457844089107165014135170302555043118298676759936603080058006474411843379142755175030980019276576260653199799887737741726401683442341739551931960051404593407430115628356830789650624125385342439422378346953987162055302836295641696291023256750234662121960621412034201370810868152331800303512658478453610070469115137487417594923764906334086527408941538613009923542952339937297558702596721755829163599635141771404815584093696035642926842893774879818602550928138571634940648339533726419944681870006924603732945783807376131899761040695172453392268038946139445887459690038361266689147206261239040794219718351664721649747580464373982994134910787131454999187942055958442817275780893398454537243752525785472811172518909677670949675127442165824425562812590052558654495028066592737956235958583035182699923240694677453664255533570167296839975697791957697760352667994907691030295569973775096693916112905172078905542468976516121588389200970687074725232803964860124280857413981006659891146805231519012014981080206841757674994821288118609317342765495454465801762291979679969599626943429357094435614652012078471851260374016659241008309909432309831488704572784771633965459708793032194332642310906705555462739687527027965343528887832981987727882159614048462420091442050774726897428770478333747131032540787662770749341596480064782740441301211685105969232680860944619281554981990347337068833025876158503839985145067766148207471308009014809286855507892843734356471893041511097030769685298393194097542454303683363175154856152272148025892799576591558076205453124826082860543989966755795702383368184516926202594679617237245487211567023459824212699465044190494834891540468295855864609487807999599865259088115857415823941049532355703109495366087974332164044401962852035067387728745545770672506260388686505019365094656424377922375728848771542153687387430504708417236426356267350917656223781863041839926875938231105888510498689461014479582889224512519612984140809689521787551112683718639333375114947907932574767992325177926567295167371696368100056157772910220510955028370425484941726822609005008269351881172373395258194004892419787570657782355544167551996498406846810193426402022161318274588927618093170065876422206014141429836616075596583280888578242876645802645362792800338685843143181014767517703955953695503727659101611821434492918186089609758943522819531691109323903136346843342456790314578108392325182633363763917157463180673838360915150754683304295422227270165738233567605867211657615495006545138802914587992881800503656010055478040317317641307539109002663977143916330218988215707964393926857417367105340524225833451778881729515558780777074410396068513432941750796074636412540671019380920887282468935071001082919739550068526198492758858969425610420026730334343392028725002774405687995585564165388839472388502162140283321535965283968822191799738455696837730347366216727637927408852585236131269555915372573158752718408934447673910708171116682464958874517517334842756829301977587109271665673866230905368997820252937058190425404557777454716944130888191968539317500488589532959614876615167327159133553603637540792080921892494138866876714494617387249195431170030306769425817209900815968156054254023491246000669007101666507015065770906585987086439794658363589148560022016389437825775250284485221783007037111597622879735703550904707851267384995796684570462659959291278025320075522654391342096006808175036499783008664062683792372977733627695481907329875346864016130573365752663407010100217472400858384779434516843398720435965593117314485824709174780480914214205550472020789822706918379913005190952051933351548096160524523747292872418105240467561110172498689135776863322819874506112809961286893694672217351768949005584082391475087805396000496161036584588841190841740985927685641569261933031143456120681783129013908292997646269642397096696144301173248077196245338549762706866707232654803357142938204300815519492895507183247500866951059934466363560592492252047343145708924297570931531267832409461174375834548007283025854966107279225889781926101198818029249920763458887500324481787837529926164203544519773649673747208358119156628971559272144304651736170530646570105233943708429037322919990156832386426272645761816311487896765234223122857573803903410405832007387420070275690978189314459488394915270409032365810966436598903441895525366982640960766011714317207323388508333636203066635201321174536089660548777999173929623647855041859441670852180683208056122643080236631803407744157375926615639358227274052127781369470976262188421279082833973361913395349167506745749530337897331043190292221150314488479054492162468780749665523101131401598932980286827156133203034554907997291164096395406924616405809237472423551210062863960453429916507541858652838922907418874866375602808294965859517697866051377602928012385564403844879136455257446401680104352019724216927291234773419274137904565427436457876371752902167888583478135887509272897380596571305206744511149142458873961123184425698335108560303692438691726518419016235395043024658265996844019106217060525797004448028307345881031768550018530481432492830272008877603218969517663988121464244572023619329616526285648563469611386606890142266384755381737945116230915374722116006441016236443979833332472154177699205543578548631316592842007575535278219967578673287381628632645004014488872732232775073963156529327004139332060386939911474459839969527209774288941543663726106394869597412439596604907089028020271568590363792083555886946123863847282174025028938137005544825539955641279505140710550290427686603077409348859789334728235892270062552618768423277318779792239631055648000051028340217941511329956720166897436051683572099787906564602696388643481379517936457206324530272978372829571490870895371899153762777494710561648664754454971398424592729197536473340296474378817581582774682829282219557285218212253135617962709405648571670442368704379288393751745378004125469591096989009578221712751748482959194947386313434632364535756667719711948744933876528083428079946351490443840330605395564072225920710300890922755787392227631966425827435065548309736850701233919295719128147939683144374741211688290249624129111617285671550305237253184050405710496928686256757989849353338509133995762349073075156405006017314028426683733694426725309715712479679640945763434226160553137411317347944559650559115720811208468372928216621542863956009241995540134541264131781255979067844250269090169534670134129277989562380494724926215819113322038267740064463942107540262766071347725180946451951406860027900587192115003932640053360909402693016232448336955609372999900648231231337350509726767401449844192846380391418780662597585503870802357912484789129160648520129299243605721393181850680766632492416942519432120617605969061617137276951688975671595911978600017564654562842250935907127878493979382663970411853534961316404095948449742795102498617423156760592769531915602134089549616381463383196835895552238720161524036554673774708330222270732979625778979784349628781886912425059497894789045990321960517985292214713334880170736033344607981474785905380350281756496935932670710788855593812778299671850081704121784375308948722778685063116269969742078398074919229616259787061943947423510214423225100980176764860760267644595095711214237542903290183227548278127352141537658601553956678828684513851563802169770173778560782697701236778646865597333335469760066942930679598844176061236966944877271322480404029497763850802878288210352816688564066748785508018160803281094060474090711512449785666789599551141933153396702874982352578258172848561990102153119661991851591639420460119329262178463144242157896961213588231063885344087547766795688583056747377629925530887189210726373994174897435859263339776772841960278620968934216295141093354597009268345699724068859601116792275653452347314904090832241847706159052077341298099542488346052420591882385229288254829640892941789570811120627023007644434313017595343560683261274775571647334167571250872729482806803590997788188483887302372082233390428192741618487345936818285446988464963286010204775113206792177225913306030501399327156157323131883260692566988134788728105672568889714132610505124185944683015241932752413682905142099575834764083458255383905391844430516639842859518388276462076379741631423124938140690936620314198115671559955243137231306170908950692306349508658604635479223516956276656200611221286024894302433454064119597917694756754479686647758664360326001449167490660023317594687282715316992311202156930226385345743217828398822578067594956636676294662033333142292245389305771340146168113107058807485751078146663290124389374587197103073312174443303823643998722315766731535557512784728244373323207298786418919646336860917882866637653953825751167522229440381353224015551415126050296026253158182082560911526696896168340727257955649857804583382117953318495017294157138347822432768852294806589798927855977691792726845814935210020029421903229171539831153274317512097444279189575533529644116411417485143680670000083661078168279986477631011250363540280114752071076683891948814391480141629345193942763149343617295540638893061203990201834386193000911540950305503293962588253200286802659462776596730178225374308296797181255935597116500130668038908987561925596623083925279105573828904391411597204691717019175471745685059278802237309886541030721602712550856123961248452641753416561759880680564801156977398669684360152190220172926734915971534607936691936451744026538947068875046453396441932764475662940903939514757067689441658564734527467138663694421540068987214415133904906168779813844716210412038261550125588313628533150836572743664982698112478358221027390020105213379012177198229205131892434218364449768985803515305751775076958451629476737708220366430565712645881754803901022916784140535525374522359896781294364777765923825798224979353933948136967650355185912694588719383965768182366730627966880686326866813439891162880217988640257265460247621663047393173312672851359001121842672418318387247509545645403258414034988419993054034973070065919262155394142911312169398759792888275121610417335676496296673070547415204312299779494565187397975477497955829885239595914948299535488230612319215570484649124292572989940124119702442744164362719903359847338308551094537252659619741262843159842013336367645058287301349994311903439514295185759190084325088719452793956113728034190395171994640563238594616662207508587591322213820304630820687666947951852584936475776572278897801175575490753983560292562481645737837676394122924357803530450181969102099360313794735740623804110320531070967607518997959011439768481418209079287741487715957087715980999936470693571127514150111534311870758740600391478370516289551485014267199345224097753508930373098589535694988983112141463500479270375425803173181482738889220748594570422504078036683281340247453921181193421533744480074847029870294001162487057203890850487267017365937050563456721286360555539554092171914318597095770832995503262854943311837637397804826607911970594320653249341607880343233057253307806681210816013762096591926173357598031001343571534950082406288881973301627129563607196298581104571541448439496183501838048997018479869884422030174221038929907619643410218586016679005046960523953924637673440619730195437396797454170580909505734433898017385646193427502749075638559298960851083822219574992458817336965719583263436512549169596545823633398652697659495231921978781665467397086136703386740030144663370549314152384880922362647018485687986890693030089490375910232739014004253964301704845813732668182240647591987398724106114349191953632086850467995406035007421799853736337381719912655251841175078270340579688310399580025171203512423293605945912735044872260389611032576575124914861851467010429800770219608625080964801487128653107777426838862139557318820595224949172373827396200352621453333388330870915423811190152663086094674244811824873834594828474966834819404926162230586178869354620175017235128776641929319778346831329279478258548004128422974345710852437969181685512314182657517829212913871318815647689288819541725895369505362083404969210070336532248013458992105713904974134612583913723303506821034407272354315630746853219893785627256907459366173013269438903183442502225648124107374942430091174389414576302101125343077729193869135433055871001190724648259380501271546037779453877072079259942169916978625101678453747916426241134438666183322063240266217312116692254860014456501759116989667832078494991640483563154064977904423775572263763642311115174008138403396536843876849214607302336078182424953695884383590362719409457399561013735240688741861425486824946192197962502668442985220310109537081587406035223971014844207968361186583790249448891866755040310122193477004558050511537983873095206934931241874533121650417888025710184447279827620924037298835483070180460279888199692471056501292138749187561463239658839311301259731604494486106699620566058641486283802324493092449536029772849103356282168026883680004185366089721755054644152478279196673980578804515638933810103997260502483175753330049667733733931753025550529796044682641778513448466023342275294519170494160749200295764469341582892785811059587768613609543173204211229731995315901681599731795348368629946665548014976296909633540823579219636682664016571657939316365792915336365736042060041514849052262303673671383557865694949939482818994879104979357876012719673362492438557258694058489614557461415545658129488068018472056481107900083086576022223252725889014578570353689746100704283420597815226924428627810297478928068598081569500229885088523521306830650892887776351403369424689377690313713793793043075086221938653510464583801152205737370918103184260507412974402373528253414653063979672108290587582057932682392935020280167661118257277147846825568601776020980637546823338833783745180656707758102198881120101964371873819287424012071205685057251911680870978904890513264257400907113958106239154807995082939764117433633389027294310454987509483558037360135458452312347589244188930872657372923938841573654116076827112662204206535585019319233080370385174276373374780284591213337552510860425397639323311989053793295543228472153792267165881697583918821010476944093355980887217395904308519131436636101576887618847091711712053560091796894744103608629524119314995585719704113897311100156348126818276886127722033424730779916865332586211899095778972023170845139713175890354971380315587162128791597128555659915197735653572897497558464994135220384331061087064797242806493978561705644263510190118844939098274172150025877195043629199792204748298336922664354447443941222999394950438786424597869622579896005777761895128929030315008877744035701526281830981114487368627144041425358111353462036960843821736355888222999315937483132111215453734891814547608506295615047481277484178530183858233082230909845260363559852553474333457339888321021415347649626822862289946619949366902009977129758265691435703493116417804677144153234319573142429011462358617779805455103343856242824135656896302375266432741102988213641048817247793086799809306761859545675007424334443099983459404540414337270938285829299330251086016615188379931654595378751959755384340145870108852071711970682841256886136281123075485464287481825789664195405648477119321310340812826152724776018698459208250763200964492162882661126492271521761365544511437763050943597064973768770390278077223821924391957390907415132497457262178046898508844307536548477564399880925188681954172479933597752610553484107325229374694670502660652980929081710903138467659853835874124111455833397144693689304499146256775370876286573745079521133505505565124157899085279176090807737827652533086188128646401729690221276913848545044377116790217265879267930837118932226375877431933077551025199973757388868164210503589918142933533902595134929336500502695879205015878900617599435194968085680258357873746424853373546108301737160582506696321778294785097598858626431441785235216164056919618331587508916107199087817350395320629296800842534425706625785706905809678017256792464502508901232180797832851459683350702586460402275291198430137219197491675850803700277957058714643476239071733841376677534107756895985308325761825193510693253046231474937831844063242050554428016399860441928945338352988253306298257399941557460845052379444552129233801033808248849578840325252428929349298414066172838769636008071453160489752889654123554121493529496753546105889768776246637726748682303947758722570866264404622631778402940767186899773982717671207878049249082723168923615813781317935735416423642770701575983841756168140734505105554665092622394691832114259807905299112950264962998238706419067176427944071452999512468901772094197214652183388269066896048669142756914776841955424426596339270725659874333969723680987747509106300027776610467374543214532365216097910926963706220038214722188333339981214005373218076997396879111144343926953726937591707144508672613938716073954698176408039150181134116152775798831854748995476671550234224868665381286293375907928994218146062424516495680784690953887789975207913703722682641296145040373465124747642033601993077438257888224817498291826919302626454528740151872525481666675953318987187444095594311617568479761098617411665647449531584943706521293243944305078884967728796982147988326641312264469155211279304613005126096936940307079855948341211966342812822851386750255399167686035598859629632994260326748260905549063136408323706159479110649617802399406641715204952747098692154753084398925978054546192514639798373578418211827854828539774607312556710661675706892570470740587520075907512413712420779552440629883544945322335012010458409358724487248118825677115671870196384670680296101163455637398529191057631616856720046632353082479717136109862293817824726721747643756742945981505315181514666249980589856191616648569367202250018305857527137328029845903892615487294507200417837598133803249052443724037208230507975284500718119227835417844824927508887712768251685834053131588961539655468188101345565550748506027640891937109726294188857490033181918812387501252058849174980430291100171073907088835597373930735677948292805453136752896624269061989110263389743330907137737332508300137657235473361664349055462921049855771125780683449638256267130397269153569124572813825634778410556695630496183139044449405681132645546227432457543578347320658369152707597975445842089661176199264354951351076714258259106962223361506069683389926901049289153877383925579946398547182452977408453706623365625734285979935632653685169295007935711101002856323485156740126300234418074190737088608441340555501126425722806632724278727244804579730277505545276584535272239088505394467334851676982095757133486870006967493275966205140232316265303815915686128250046210391231469158718010596916421873050819226785614763771778615693958273643058770367137391016309501911706809092645522269361541954134589970517302238262935052553155264189543776816107680697142337135951680828778496176839579230272986031704590043766331157788662045830173678005638251528582205800135271821393549577906337252766148153326780900320025579339057732115749421775083895916859280302688060945703330757674094563371001570288690834243078629829171854192924957012227626957201497368163614522879201085974588867746586545309777956461639685349814852811770344678839766255412881538257396301232071013121261424869274017719679939654072961456366779568799966993223288749147083155300385640323932905176405872977330641935036709897365141405446260133448396901428866906041545046771640536140237642322803682969603333323902371073515560040948470965849718256221339726394512556144715913733276860350534691185126251450353585168794356242341269839238180631424783031012357571126637344601568545658083032825328234664761423890740276145332189517535328037246504701475189779256934694912527751223713052961407963924184850517463327456651610094398330594176424359844125939723620019301301207037698646211802454302713927903064554307231058131775083725789490592839278868774292313459893392017993066111781788509242941183093522621388599448937648166259103200610894751364831088301332665959990343721102498217419753090208791176404308180513813354473453568687751297177304161656920939197181300653460044088339158088429469603487643606502930872220048838041773987877971885072252110284268813441802707332797738429344450728047311670412108437654078040940913373451590141565840999576467300894696939631927182033232420952451764254795273642784920170314887296490808592697935774142159253853913660664080889567822558496821758904953799446330861649203255593538438824966984070460067973181079844490461660250732550466797942658009192569797459443743361324556692529677203505292981683374581094832447326650567242808526431286577055311089671110212858876104854586069415234667958223362222819749688419050951266222089538794472088945872037585420199755255087786457730634085644590867023133547721706997589388400815783748936532836257360564689456941774578258826188175214246643481037482627274491210297347867558760928705443102379015044511794876710125026866743683228796852229058001327985253680162142990476790089721614090408809428031630182791110129884394612917798191113714826351383582832776256428075005542923308652749234256513456294410599504532113658418524021753679952333820047938499996839432344186634934293963320431950906408660660968439873927570604020901367384208642589960060093580148655077724009564044695440884074097495842724432986268235139048036422914654571476796830117334807747893411689121822866699944615151939039632483204834408072456608874927547572850614592205266815243661084743276246089603979292929091851493397095943207387091121076364065896273749573382372967788630468677076601512336931384670615619318194238071354668247404667815493923017202697263776701759360569114648648541558665470034758749023772020309036648730904047085885782372391061944221383847489618341318151898565008882476350864449918601179056592236710861480599187320550977736702327400675893560758554502203330937508481282231031340721904438430999351819745035613640278104873643270483668333678390772688494032591428715516420255434184787485270112052307711989810722607541729638053276729357074747292763146582065666120921171921570574108743198512250518503959268592550764954836465520075383221843110057602386182886136394067774454471815301478715359899061010874040039373711240137945727999415086349035708978482551499720367063618341436576903260751184453211470677208544903371831458641762331966587575957211373106631812052812206354036127043456050978606701105356219072049202158910618011382969622990710260040607287846331277646759900240152869215049142051168069492265278410184744420265835913602810333558916342353748502494052307527687076702461858245702604923363338497303789801762976700646174664759621310633910047139057455305354701571033690015748152146477975463453719476426803826438113732738480826216080760894437729412415304903894631632652966970350627637030789932719078835205259780384405438633337828020939455615051371583161776555656597674990822504261450482315178963113668298949196669801534248342819059183577243430841442512550623667081132223065963903563763794039469210534705377175604992692326670399848795379764307291233394486556094839529868037418507890310133702123547881154549620575911390730205718829712102601872796140709711617217952634614735312838502226521174511915994302515441558976291750662820878882409176274901828126362034943163925175712338945882196622995392399447272308192080143251902102814949977507938413721670296032267628007755671042557594282985125185220533967214410425714602819365248081215924903607670635446101377799221822288373895893402828832668088943185118854265181144510236175346429070873721049072093738220073287588433697838557771590450430902648909552504153349104717852129902793387110965007516491908585366613487140995216164745183272991828115047232619406295789158528841006545215957528934410961052057704002919340793007527953752348584238713081705362117395290502939308780770630187991595676910469892735531833639722568070933204548628905592816476507927373520232123003512489809003708707215754576519313974742009039211937713513894404135709647762288170624354230221938699690455812764646244666267816657983563270944182605999447196826596903646700859380583025376057552062023418414407158425047843429748000879394181034377458587765904543153089263851044648034513772322530335191044464490253621179785629985441551875166234028722964364287680741961992623738764179166146273467948452959678303614336939943394745362846832682942676627535572883481260975459681741853882830082541700419372314607671348980084240221397312144585751308690239201706274544680339476164025619064373585848215121546600007739337964600410024582765970157453579156102570914154623188674323253817133333043085005994549447199389339132793714889389991535961984491516139440172123824987354772680792942233471674017824149364082936441876307984653284535536048653877958569000251949350506570743449429557343492034898871199107017312262291892543279633297765699687716487314127534769944336974981203733834458066095279021658208756688838069783680670638588672984550408028558397324726205623399466237657192022663968151505739142477381317208428349050469228854014328745363439564122386176533106410234899836488184210415733282546993666789902575738289080572622206425376655007580612510631462788710595408397942993861927615388099775765086983955530619518477468932214414441579950327123757068396900444591735820429221209050684612720849324053926757172765063864364442137215865262980049474923237667011253426234553147446235012256413231095775845263639071830201986981025728504227985610085497185198348116701993405611070904976795230986845759089417098435768714585881558791456206050664506083420855922201598199233309449857277298213387049646610440673209114703187768025004250302323130792424688738675096428223569220881580617993894961927030637455123859359964625629873455701054819832844776350409481533641261224804974804226781073342473096054023110474029407173637616634344151841983977356077972157786867112483705675688363815895766227765485072972067011020998806959791221357674105760435726514711595857448371979898274160917385926262189380962356443254188172358550524642381641741729441510374161946858372608800752293165654544511967793769197928007564520775557275904508989259010880106307213411408464519894883518281399212099271505380043974971154998341740597908812456360697028676005638501995294206790405095475232759748403742660472190590362836039272887272837440822764832851066541646539481639545735806230004903046148208612816897973288168575098359353026314486222858625224570300670800349985606201620093641873940766939997101987825250447293947808513103736362363042256326781127448260610794387068188555552969573776373141806751818393404939573202601412103732233274076637697788236147611449892279742122043366143075868804990794221444312452695787194513786065019653412549177263593710913361645077677247585203533189744580035355671320869730601182278352939802604835882346339597707276028222433498563659965774291863984019951261010285948482045995599657142984964519623004855408738800197724984316548895369954044278060487426117266632393475042852183064129058956566306503899363456893623697255890134822194522161809644663353093719899350560792735413496590568979470047764751923515471234940139939543553959942876466181409218876279562270626097099045246694493126912029035112463680204145992851637615202814028404893355540950118735317430643466572981594160947521955240384841431874029713847025700516452026462164295706210456591946547890172064060339468316889936558831953341569647228508190169152558869221683568359218851256353280193469490565202672642600583379041214749255236464427979509733996042825349840991164263060396935004599384491262014081599330393419674387270958863363036098557898378055845419296744115329283820919470178497091785458469580474570187216173643931110500501436442515413959495868434452219355168704532989644603957957539430006654195033080190586087651050481519765051107177765720414192805132949549131487695274559765689248553047856102637474610998380816126288967091588433403487932755130403021802484327767807670804870055881119760050181047326922114693842043282529201025113290479612795531765186121704495563290572435179642099706833494561284353893866361017332168378736915255361977460298592613051443476922796019898704321298586814098501338052983830306039444389562646037026313628990787160259820065358688884934466818805050765224579004346644553115442911824779147467346688563343244336027879450140992452554325937974958420893750735338837237800256291024955650610066753508663009503589083221521634058562236106625438408452992683355737236190989779736968184452032984814501753236742799799237096089993246067865850808174459871216760513407546874964576609371959615935330252888403266874017680636334375648357024459157257432726560125550089483791121236326025333376320259794573769936147731788095507496108690302342701434732610532116352223888531966332641435489350287927678143305457691114395103864288520009537998622781266402170822111041355448915878638906167287622186820969194596341454102549958459794780086989633584198519311438708351470369368212862480703316318745733876737886238503767885847644266353716427991520705125905952252081386980300571200092998812456825790798808766291295767462722735556734086199881702811061806991055926424819142135589928392719086469252010152431290046495641350522728709421992461709793907976309533850629597572985902104620801433479846791738181644413312497191227426450068278365143069608285590709576438748788486533252572633852104658045077682856783749477254016868816072770167056950917316265510390314995214431447662323504098306847011836485808131053314486791650541935060917398545699954211851385582331903585107740215957284522333636544238141132535758105124084070410306369441725142874961551972232614320891551453873370477259069483350071402849457791893646697692070505416267673408203365338869144798229119085098276864443181113948662101676790236447251670528579808463383863550212874860494457826085556738098766580039831914216801185072239490938337563154438764441814532996470819618985027947719227703986059823729952500903175334049516097509167470446360947756144766445422153064933901651358181720225192517641880116977463082065935145277916557979744653513406685731962682836996327737795593991006483506836205800589035333973904692424111563052604718991499642698095120872330513444150454936840676599872009595187776339841613617604668910546166258340675981182822168502931591120578721602517229918724906766836736518287025722479336760292917300456369940945917946369178239488367545290255008444417364848100778645070789482671627853734291499719659710209216286865456680433578668500749348218495254982537552798062714302894575225700815966225865371674901347951265291446227714601919233451160526724342896662861384935134352475531593452512995571381351414674126855913358471715126279920481526558798197602645120518646557585671614680735934332632331830653541971990679394396676639610792001982050957112359092694633778639039944876876711076026924806328491598455211828648072432493545773741931652646508057450202239508623535153068105412427526204235987299986403203144500965274650298039576354614889495178693458022330224859811532152059579110904274857990819913411196195568437250334607513641788935237336169980067381411075478801868941041801360989692887583155567954216527620669339455580881254961834938970209781259720072024761114827367680529177846703063899640014327351287835208532929874376631764878532161561679875902622332257370974523047604289535227728271542711989316541259332796164616289801853918900901637133272331153875810434725400590987374486315477615803444068749075674359312072658476568682872888362604100534383763368989747102103659566697183544179826619527778098966663758028842536250901583743970058839716135482137770565159744140370232327377484720106952876394435372911039231288739549032740902276361021425759963947336687973811263093252804745649243628550406490856109664755870578209592350979244969696097174243222477025356574858389194402346972880044272364489167442948931775120835764366783277649149721976628498557104227043043633068429026388702376780882917293561964323355083455744510211422796057329927440672591887606421071765548959003565633162846033790217339149908900372646333998824999455681281405036573766521638364317036878522881033974877080211834842075987813299930127641873597265505359993641326103763818877636811839717695734170780566792190427839763401064210338802686057450579794192312154409094645518644423243055687671957924510867968182162275309170222791964251668784327994146294439139837731126996592583590715681773301298589739623278482634683138763216940136068916744565513951984382134990394074562898700299309193779413588394116395321432949778554859048731521419351275965672942239097714416669758436527271276323062207675455285017650131623320619602577817752162127373690160280025865490378125815923169612573550237057353132511365673850641430846794194947227299854252231775456817061666220773518869752721556109123995421145613013708877107471360808394602570416790861249669237366977618614620163440525246313391974668373538171433481603275324167520557885015290330068005415579941079324381035439562065829747649195135140785436303752794029565919595559082546765094701373644612030940885550745536457024557026284065433710410052973452441465445243277693929001206350448669627932606331507701117481291932405562072566595674472089682927504109485482546658761923702682475444357023712214100054109194947332733949222744816345983687129993504283750302371447314924415830398846907242782740474477921174776315463084968970098147734746977614153486811720399996342237299289619532876323653583564685439278277215998864022505079024476910703540124383418554244089049400047712333102585897456417650833692102443518182961630204661945493379006998764897158558445290868885436169052515526921414033277876043352838028705233042974800758338894780096723023390114673056967451670768330539827758208502591683225543001068222586960513223722604112551409708591006581561871021850076996805576112793559368609662042873486569292858090449322859808545880339396536168997830928018766137389496594737617362951739258795835305382628736197853982715149139037497397331074394367477365263177864802383227708288132396628359643167816532660617654148572675097510752695026773604662771535430108991444335918721967075419380634655424791562007110618780897956696073151925776370829070174509571875890799838846888247435013805817667848746789127529384929515141059109955437255444518304880940159297523198404045009018713234733919481809085894225286903136842817119991991213672664026908209764986645451051105248049551851963386745264082544830001271060639712941134781362135730534429303870541551456574147648701112494484240743897377724996627240774978516087016418033598921630912654675992144047129584225414011120840150000807750550558606324672948690504512905819163365210650417025466744077809091433841675833026596549488118381562288513230974685906470233830321366626207507910274899833671574865246467286717485873051512949973698026441740493881985868398568769820280796984867898320557868497908715652751655740714252804300158605629415228534445607565199825528983053940063822657809238196989349148513620436628911867488112807210051292622710624513990121142122724152574202420752118830913666974513511922946237107506815987414082150703551269265024230909776260615019563788680874604264513711736107019655960695823668242530196295907406868694020094438604833558227976085142642038181755522173549519973797629782787400585731670624379754058148464802510229332323235591283542853754500627478574813341319151619332803036833224170255809399284695125717760256064786070382564463762568572835306887869489100875848574979300508408891065167468364182465085113012652096866334108498965055749827621922900436761859574955178581321409580535739372049526071588429911733914056436039513604721835944178120213918598920797837641473540702977804090677491197191560398027316286743665882236761802452804492964752288568035509287716037224691108312183031637854587950575699892134070845245508645301151593151755478248720089008635689028113861317105055724080679586187144469090761833459605179579538699681464607139033101204542006022120000921781018486017879086091737068117134858094635457837688048502086057166351091620062309806357038910473484047542766140959764370863410158704635472846835871391745850919166496274557783347128554936002828797078783260842547296563292880363541899889553897474788345845307310383031143824662446598351475664951096268667399528392768026151763809046999792583816814607066597071414681528623423110659424561865361216948640053501555686762965809424663089391207632329381298811060729644346823875598728775399243844221258555751918414536234475239035777461817695549313662780389169351103456627444730034719791475208798679957464832789575252936882908182094543776136774110316054995047032453843182494393981206201709078959602115956920210265681498836912002424670028858712542350112466009103151620211630387699848114478653334559180882378446451914505297068001791702005697311164158945604827763351254503355280020294938137268811849155337879301857380710686280940507288611275486706845927167533500567567354660605107737854285841623832384119349297399586253890474384739051909859507310572612676746490355574222501605609923555010873886108567799960673926615022661132712110898168083977049330066943283697788770144126112448806001850073273761898987030983007194523818145975747101210655384211693631346896113916987092753463157040813823591713639394248947890682172609942414907800611584136963869460318489477822800798918283629625553647580541031983901708263256798909867544961024363482278135642867667959844956574109316906010728240300937206936459273133165389910981693582213685095048828917717798589152139094987053512763681544991437421192587630046540435638034714192632872046265875035377689022737448480602266794002273039208138653228203954400296378774313666018941724076179058887125391433159932948116533129541845278470331892810822388973483205350143651070780178360484212376814845908993378200414977339997607446633798699501018001496847767484607010369628293206771161043641967481712460355163575277173762433807683953081556773801367384290804979538187501430424604910397779974510447472915294325927986726540674594820842424721694651973898086436277267822104027474743659942041860328177893754842994674990214137134843220412067696557817033220592076225926530951691391435303092750886131511706522240050885131680008781397491472517318957097730085827188365671601396013320207155900994402610197906739337433527048997758153494360557543147409109167478109184228102538188058263205428632490527451389786395688568905309990139286846807773478581668039839411896250617955664974988709245862061666725706764301912517282490693609179871426416076515713050793930583789365534859210608745361380860660496000790634231691507108618996251568846542035486406524541163244993703112081075784012560448669847169912918682433158103688625883780041448435814041701096880642388177630169066417419711482959430862816267353084580019229235669109913592138930951292999853483677462329073959084020640237526646863332707401218988477610966710742215905475141043135395624637747778976843052916799831434687492830922677943519593397935906148130559683915121949177085765355989699569703015788418695853047902130273401173648445606929300918837914087052963123026124030587699456924170769427123367534100639111654701204092121823550345660848854996181599229317960601402563565982177418819534030100167989678127853366418025559975488446541703180616507760650421693080154735554127679503653777873737340407013936648734642899669556104033848899353902085330562500328754313686350271754594038718233133143240858223822905146952577863228981935518132602408744991800142650484795521045703518798133729151538497924294432211952901187300333711418111013180316172359344436977713262534424431043857376913359942295681698933618064642587779395765859749145328208531693703522944394098893354298107741452824003098160562167391202137148166144440928717862349997130317308815550969709378958402207330005633459805251040731775765229069455117779961516579551692644598353917027128240420394345690057466542003648128668815189768361002012388338213099821116093927612174149640777734731668402195376787053904110345717016840499413009688852238699738450079120209064644798346645996734217273092333511355747486030034719346377943997492686272762455143144684169180822579165662685630045123176755012133576187576890532629244824086104768893157279255220113691542616001441825099745135680476101070088690779687706154610575791244090634364766634280023039206450250670425423520443809790617541589782128438509364309408060639292927750762922241088647860240706377312860728203563535683717357075185793065886205844400171560070955767742057032375668076326025202444139730080955653723115789580516825832796374176699327532489158195789716774782172517200999656550562364746153312540660811374809062148943075944598156321521736687405347753922730856321177822811693649384519536357198603931927972231275932938713683939389782646985135853264621084481037366471375285586717404767421339428560007012229131944616557021364322740596761815509584278023735790023523472418264246048432196768633446579360934341159791066975814678119966973031513535865143199905446238550319943073462683751602750523720554504754756741916174298345581225086248915704157595254185571671743942255568646142169979804057587865925019275049470268883799706294641229045458554035937387230880321689878056340915272443827314299967895294793017257424884921125245177519524613391902665106989879355895071250275604577960325828925185678011515171634256814765039012019806823164665226714037909548109716385375266999788036112451280258820041687214045564982157009724398379818550717909434941718772732584530281172902148733144936330221261155085271048989419618478931507627976428018730819010761986288337143641668894414929261430408368471396824845309570545727927611996962385994999375658983072753530779095438254223575183219797798496816278126850958330539303902257150144288917793636568152759351472515980230438606527459179255039324876639708859633267007948571376855846547466711635661202500429823101883138446754277358189383520237360474485420965631991335933552954645723312086300657852473218352004484683573813478832374243444071335504181275442837775540245525967535182070738115481616967645585045913887272779254797569853177706538742492076447275644776255271144343896991941116325094711377808504872319243962418274720284348766391644343987056892779073340961447963843939092508440514380148830056652744578586071818614481038638679333136019049095090025312850343279683045767489368299969251149752559457888749950382969217884356017095808968668073353341472055592983700481201417397536437459487246934011925919739547770560802124759911055303615043546718515582576384580523009778658193755513324698921844483434311066204368157184493603013934858867468643217882517776195972222329741043377666896867369120872186265263420375781011097885520578976702907547359294597366586533798997984455070007200862550429599235693971744792656036053509378731943940885336520861203115326552664285526031466752991136217189530646127522654156183331944911061988305454890067806946122953236959683680091703709083090487686484270985004025685005512566426347394979713124006899077580978095092592436515574580246109727109871475409954753857591029116606159836665639393143573560266697849051973450807617471447202884634097861034682196917115416538492698641676382977050862642706160996537055145095386827928832410560373762727809483829290036161599336571068598883064756417465212817571415802383455830390164151771657660374210555137281269760958930330315439838773937670356258116290446096247734348886714512152709795378708592947238767325559597943923981451265263870987823884660490530067132359001814897340321574123662924117894898045853037137317796407928818230073871441949411622471128945155650717508587145431682797556484078829109842121399200028255443613807623890109392272131658732826686262593349458534310174385141696989759470009337715925991105910172879553019141422726371692877988760517816935235096764022718985557311466558324960104140110230483958541080224896530412803964070003164835913884484455339637729141066051590430005492997900966080798203486259216125675883700019470329683831387600649712598758055612206087382630633630709640166324374002614891090529529476076869606305533879909052443204710869622736711794486828042520103254841938522779343459555001017955852298792234238089909617303297265126486159183116706042289631247246568562724325406153317904162317786408303305103731885079490541534421079163598291386676642149480992472926285780095884882561902275309955148656651465435656915311469633915672113158165562924215581402949325558020365788126390511091404449941019391735118071845811916783621389150207570765714867008475439367432860910079065106732627940830164749173194942589877222056354096075556923767835713096775481490319995478619032019705680019985585879137438894542730094521103130466880530574480228291922208103199980401911144919282273687770285604832406049109930513917395078314227654787370778854323433351135856751712308503733600979273984963526521922717771745403334442704682160171532287147757807338780739897407890650194102500839080210776370492782175107741373196448066942550918848326685957988915585382128263515990292899750853000630003626290721612507747568012441748629471070822443906590348524548940192566042381540434987317388775128510912992687714229810733743111730051009004953532322022401316383461701585090304157719842425430306259104306508613054757617449332935409535929299026343659752406540727853962701071538333001452757561675489356926148086342126943555364996886942889474673493701275858989502352214924893421852010639417773739010716323708820168673108721107855291664947631098946236505497454384027221271915602353298465046551039899943480796740522838213554700299066166470024122178027513257269385220080936411486272398248430194181248407806065475799494464466654089558771446014980237058379665277110133210361889553005648936666250758335369440244716222682009148806083276586869283402319153924165533316836290257877366325611397681973797577654144677384773989336002469858289367492425207711885218889865525034619613979035632704322606540786175724688707102094498133211261281056554915265883637862182582896867087370594230017611910945273048032525231681593552434852658512418183304166031153552278296440806802659094048579766469213759261159935930699924356124831971350017995156966450838941831301525936440041730222115269444934764730049662124249826295430672098017408655100125719056289512204181708316576364606945449823339468397166221271214891078210398999242457574499662827759091539797358033105130714900259729038653153471098428361551299065252477908686537457170029322865646502770543881266766500655637025904335104460010725739115943065967232890697911018137020511449259668060281182125824138927540034361597669687090417518750143550712926185303393733277944197208743459991013230419380441502675701882902541633366797292268818347657705736436971087697759317490271071947357727553561932607448313430831097318299251676625851666366947920191480735344019620645172660980884609235897574515544960992253675437071207383178092183912408767061639826698263374448172165568152656109013965722226869109548894685074944649964607883449278923373251077565582300921607582138869202320267636330237288627536560633578417467183263100595858915298065392796754937600334905002962010778541276048457056963356276263728245884190640556816326830400289615996452172508197000383381347267879507946018209754578672338560409471240184135494137640659176304701795002168628338570322153768613777008530691285981981537498609588057503914983273709749735076582680634543695105569067032146168698175777871400722735446698726345159923042237358887740666744427916873639313521998967096444802713536609401666682073762743030570502714110460320510753460007536694181662963208366233845168136096478258612345260997997259970963396194967445880038663876747406980540038540404387113056215727899045278193032701132857343403631231515558783212474839475453333772581106497174534383137866999596918979134248075492708503799080458419772687656249032686940932897493994423403788489726097915793295696369006294827169158179629283518650801485975462756497955385767054319355867374668549639898601458807525682367593604403833511544700652095045393127708791452930895896581041586318906542967051592218763711107151937434049751196076682836665141284328297932354192666723056522278086986152388026014465960944141165665624817474683492753705708785326925960560234674059430609507752666298317170549703817187254527466273701969553568105438286339791243423829712823593565044957394244140657666858531305916107768437118698135986704546390400938971026919856151200831434413540165530450028978984232660241026263816490995606363684954226457030876474128977792259033354357448508252681369838141388087514765835287328358115748948068692046515258447487867359950782204760438967896080005930235968812167901845693605379283917502574396888698103567652388906015651156226725327748628395498898617079469769346453836562180420524401492671339310204140759160684110628270321170668598405630838572359238028645005524065008668540024640305704251145518099576504675399636102999242461366736331119400351753035257368890328363710871973634290326172451315029940061877953564209040505670026471124138678147903889679382849989409138167653471510137723600616005022122254184263758907392961816155512250772791106745127320533416795558901584140216410116645273089803435338240707427163550454240340308557549496570737042968305234689238910980279198769262642402004428642754498563406527718519100103843761646797602233690888329631259971882421946548790999100580964484861849194754220139766973038929128311045269584546425473676098031429684714638202592424826980039363771930060319577974227874596531905477375992239318198979580958305120064530700007365188614071201709296046492113328679692483749924136006495985902057974579630893822477896524450050928218943048960536408899767831872363747316977255147052430667529820643179303244596460532850277425806225030228755116811936031279523364391945088200837229786036271011561964315237422627909302613089295177996608365428535661449841676634344870091402557396469481961696660756762821922563500209606935042037669730382136965985733534424622312851910728350325972067388446941831852305524218630690087343159746884902142363286940644345780304255552726293788558478056138885428038402510875746351492855372290399897241137697474106454207114552620785081631409863014710821340764084233189194500428237989006981257193971967796149559051163200400080798600218468724458888742779922322853373750111264076949908713770993821571720793188021116840227519662108003466270925699302889004723816605371171337342029638659421303051186195900797651723806863617638521992778464931731113278830179449607947045400103156254407034410906640076028570026189763086911693933339440632690640139171701974558295916673597107669705984500845861056319556361866379144636587057411994645371354265026625138837421021770307807848518991995808860085641150961841502611051577062544270684952307455393647226124469426141495816828509797635178478389106078116042512863570699128672194379192148148001495371474588496526942437752569121399470702106615983065241165854660122658289938303571045628423712781896070666004007273460587668014729349434351869311228607408839229562747963616937707107053511900757067766073229276387563871052050220019459713735724981616087047603389413984093861018710552650024854371332018934935130337094049178590940229339127510737342665266037923119005179673570652715884114249017108650845607512375103600950909513604145397970931992592527092106099671292248688038656281944673577880655020158856188728577024579453458739809798101852706802870451814660556447868941346503141392729277131218989305286429003388188577990551394119204071570018062041056741832977811412688790645389930598572256427880585806515686211597510756938256699444834567423445978725660415258433987498463141214068933757347043984715277478896605670698805033814445549157814170047538523946656127516569778310689760230548128884137812502234948801912247254331568636576315483880112437232370111651923187305976411176374657958778179072152624790349739836052504973640775038685974913180697196944690497518122881070456571786530790978271717489990469828685051212000680965100359313882935624763996684572264253811561911585907585004941108363558329933969583548895820666202637691611312173255080417341919630444361544136128232165766517565945606600156219319924473235398010404765384161116675724779089581306325605949656751680408594372536163237845943230116251823975356045441241058485022808692950575631044927558336087263116377759333609762128853374851535296056139850292014072627227306365306056883409433827768232238069879736452226537526039880267917940872928556403771259734874619812683994987462025065225658477746613751956106325163654379772950533663547421768279725692969039786979504073266094912853681374789586377397499427032052613291958053455898774099895758386196066412299407609822000341011603455989390279865542260541226581044180405024907202641909924063970820565262623576211551694491082907806719452590637755575953398806185034704539762843139386326550286468089659267809982546717871670537435585124348030736334979514294426629384160973713963220049924001534116306740599585563484858616977427234112790342552580956673035817371620811190992751619322818361340136578433611052936113516097493753181960315015415053028020038370883021668169123303487648899172798788815290082072518467168274591831540864641363310798528219734214583899439495157852523406323216350287850286443458775258783622044450978298155435664159977121497414926639218353220796300276706224339796171096895414795178770216524357396409236029825630034579966050828619722361619433476849578942548979284132379075623449783667422165771146792188808228422615158873801631326037023623747627266181188808018626418309743408972759653026611157698012062421691615897129429176007229867263119492431317017837686556868192207156325972407605060854615581379700861439630111704336003259060323829045354843438240164116086677991171379807604796862632942576775840891404233635930941704029971079827217712750074512756094079156590036215175793863275284571504108210491613741872193535719955119581491691118046165893738006854547357767393128181038738209553781879628072600364948859634203386456590147548504183023018104052069153827608624171783654135924146164675490884346846650588016109931083520971648623162523671258031825947296390112648993838800964890681665373027259679796684522834606005508259198319183028088277006436600985366339800513089160401859225092334344080859621120739135794778045476232835315982512308803865896315360893529837210914380239894287297384741678219216571305073226723351666517213437880685108849206266859330718320397032619411353030436159025122305104185827124707440380864244736106857891209724965119846272390420194137902508961138227239989459969118158071069176723357632339306055479693900425176616356132367238629366862536016484186108972456766661025280692011527969957998738043361054608122933387250511415830942048822340903978390492552433848373560240370927142145611401941048852104820866994011627183080376992339452516088257886894110165522639891571414152758376765668761514838630749467289965760299247310020360907588611209096417871256176264160887903487962231679334857462776600660044047621675935471294693704977766417211426922713449762381238417423019767043364649026889740548533041724552302319682029230482431496072156192518496462401416819956755700015769644794745678415057473330367344122385343770618502350670921559032185802734419239033757918511295608214275467918731508391606618498728552022343031971879320516103174802037869340554357871816969503338376276749270102100892444618519962766279956661733553410012826623079223935082307693744460462698169565961645628306640576772594960335815993203347359922004188560145048252080495493446698409487350427310895854915612531139871452784961898175256556310037550301294581182454705953041773812014140025446642234377307684612773490308887741629304427659768876925961816433758202670577993359749624923082182571586632714662713365676862995420080153752080780971908148542971778705925385291350270428534107589133389837876588945119300353245487762857824865369908861011469332481421628289426288007361704107227571828603188936762537649974374809201121463402178443891345073446627660337770907379007731642393556967522331395032504834753081660556122616521135872535785067976552378434858561775927816617405854718686249743378655684966149156547494260042232439319769991523556801236380708025696295741241261904364927523469949995625872601946525494667804896685178275999932548569622047769743501114958115748787695258576082308290452304571880299883910216565318741690885574126301484840924730460151839131240524732191883169688348094165186233488824293984308953645469250118958910047294566854672273467547536767481654686064874958864779666033668781718683875036345616005773892229037471914162223627633978289962260517093500721542405079809382587496664184427318830629978200605058207647115323381834378920311564619478220836032375949090338094302369040634146886634068242977886256113043831946477735420817873565325899976588401700342051926308187734915200819296564243757169811084192448966378401470795159922249119636404076645311263709446080813338246360193032112992461405788704132319036727596612474199215438249863994424490507758788701439080056507754733664619748545163460298951887943651304855020639296132656233470962152364716500246245454470892912330910367236858859334577558011752056601633596861532363550565978710721646183255246583991334709790409611753275406190557477799946396934028325555139020884699238032683384126474354490118848966509677821239016716827352995559261682742411808594228811051645724261424716857449415006788874567361490321559484623213161371550684958217578009963254528930991438664386539788491023261673873754347994386120165595759979311182435881514391272834945732699570285539732880767407664768373508387311021286433479565103944517110323669725032482947411463006750691095632429843789738194823073664238417768848528008641393227547777456976710279018904122675875393040934222791752107818752174838961771670739537288218771314842551164184399658424426816055818339630862443100794731697006969165864460609458702181790240504389823672557350238575750915304841424569660091647033543868069965810839731179076288916600362952306481379183559890068707750840493377234850567093261750325851438265015543745129393240155686898262270459790416119092225289027281491809971254799515253254977685720640753512559990850447139424738478650358868684729767932817524220997507732084378204426939740570580773849024557584631925653281668168276271541262596155311111772084381334430963196687131908529817300638089607443803810494539336817932277051009194066713760975815544126735485118228691842050925548109951957546364970367833391601840830838047073954599697565019987124875717999109465577337755475525934441905135256051449003303419194638626351720898201174464823047432031374357890566991087589239249059096883033997991919964236564797658161139758872296553699439554965485723640408562882079271234333671460161281385421020395471517822543322809914170704786769273597929915418233305724767423003752655470457800184398059039093705330951991223738377435807416270618009850985176249797529825566427956933130161596265337868300565304273398445721842999935686678421744310974598905755011168540356127422394881723012918972346160630631773426452375213743149415525684710132770451901243165262886017732423892798990052042109772819130120355232713426590751978258132513888308099951639552577169477155972665705529707580022065406121899479150674929258407295976723826344109539138249298827014443635910844250637083557963650304662881261373083811909391221337515954055237561907473317940373217632602271021182369560205358030923991297806618300471060769692665401834077474146969835944327286392548553540768504763741554867807469266228298791752435630267869460391281673025503442067047491278507800349332031825752178601502599332840847478435525034418012886640090891819192894564688613601120205058909746497916904857801760623726993372059407731372858350620131075322422482074930476311582118066801972445205792485304535099477677172783940143873664550818977478693333804422332484184844640903956661490113632283235477988677611973711640574219673262941318800601324863902261605141334750351456790429314966580556214288839829687212712521912198955821819500568616074326696935668597864411812948597668272558768878369457035673438018232182495314069597717223334968020475670366538981070614661433260516806861917121842238117110597948562463470008392899290933678104504606931394431420093653437538799533434811195516868961621361029686140288071072423756623522172135706662032434329464354694251924661667561789710338524462473485633936744587565895341888213046777099169843279855319641306009843234420670075866680533344698178429481598530162555733144307736006127968210295594557754158700090712253716587799848949535050732793465990463561405959074594297906943531789180562710720595379702650250139125364833031604387465096862205031748838198295734793322862402902194417431204578380598996307085973956998890387102148799694663857208470397741358102590870760693996245045512979846251761805520170664686903850633208187040546212002898515119466632350288726648749473672030984814837991894273839178696446845157798013878383018652438882383708100683196779202712002011771129409124340310478820336204278274051298875653334004316719467253186867709932432550727928776810031097848308868786090992221337497339925813196801651017813803088023337529136000895992959224833287115904232433535269343535157855139322055013921204943834255910336919474328275486878759875366075698823203708556613212687139363442255515946256042546426535743534022289282958562201912008669990977622451879617373884606613376712953595601153627120683215489256120507162985484592291935284192131691727273771863175131650382081806337937730125741599546839505119490872532549181670972294004953686298652902945162137584733123127810515563690130229027977757029106047371700842789004787929005137622696925922307423430091075781430125545432608046769435316230467227200004363515785693825466996670255809513627755845202869168458217653016006648209199645812510361946349943581740500512662855923015307158829930647349677067236511120070303533473692446401330730709691028587365857722851290387006601349027869068320320628921531699565589029990000781669321574976644287283318323506835299474475289738794555907062489569130529998251436309830423133182187151476532079676794565492706586321889329716280138229238012407096326202460564039024886380381480082704147608543367986630357099179168398044159079380886730333807444535651317556702460130432366823158963625979837632268066568537209344733856783050488104029664560962769565967716985968234776301909666774627094882075398306936425844088929598881044493615296914172404703266109668695129204805997187015876519677365257502679516299267304894995888463271449984833300079314548582683719675149183071293501176070637799433963939986667854530156017931819354414083634376092139624097860872833009496320525275850454268357563043784270503043526114568168340502745588196284071909414613067334592325883806675735157241959292976221697230350157479730533205620982259991368548420874335289020224536647931042630021722050792778870522436548012024889857477095310237451070041690006171081322776823056145462195099865113962821373341501278645620750314476629916979618973690433228411618016252077497113347912604625429500773000402906968234861258615834848925199961132443424058674716483837837641219095692179771564997051795509348584689888688525338695841306307728070961717432298389063580877141295341179673031633515767647302045726886448822072207714664524912204419126452299066980725148195331620443880363966822082345418072865472848816496208626875839316160740902482565280893747663355480737660149954559255834065989325707280789684441978324354897376245831981076327222943611613015202796600318572460082582141169980942230481779322019430634214466196942374513194509393098941628854082411903275159509955790440557910267837514101077597950531260775030327670199292840434748732126434254168684688451316410386198973510077527166730283727986474562602791892187497299715308143957241338425058527112702300604013436230115795692687819393300260690484243060161997747791196118520186136674457447984026249313383848678261347832889428946075671816300015647038092993313430186131195082851793429916542810853873731796566103391523700773349995938200273171417561892298162249698626051683430545258790227372903677522852811334327684919718628392894407041644949019992585117987005146734049771781796500076856616727353826712664087847062123396322275652844122804779787595615424235154273904232117992325236975078355305467130731417448174625739086918784885935638937301758266343367314517460692005669231998112587776397857501207442663340867371575148103458812305727705574388850623435593770486866948358147622910535188086929216871184533081869412359468063493917888819488191760250816414559093872157938290212731702659703127325498021300494934097644112630882914729241412247133075688231076867398869705752532379719624979160107367507523508073497739084262309110029341719082614078363937431376414662840671776657958398460664514768245506358917526822011739413176583498070542191931103410635603342236075321574558789010830656669093761372004104574353997617953319620563851352398310505511951334038339187530572063191157352392219297471608862591197413415000081136799672517362315290566333663577830850807287172608600484836515423608922476127567035761630254923149248818885034823885067688684921433273511430459207256094019839021145610227418725296016741566242012316120877846232236517512975489027655129949066924323597568083753576666429353243447852421263742953707550727693207955145094942581440020838324330625981585487444998737575366791540428545062618453069666764461522629393478189065181830440356766513723833148227508541678894779232408155184853899809058834057118453681857368527724902932518197823223167662901699390206314025147325448389200414312766526815894718232880799969657154350371160867463228602781507341321392150772527079487704484269005133506162057869261213751674521959444440057052808395093854016694445562737895642263566213198984257595669615889584200313856481264182300400313530335713990541223826485613623381355949271260571125791126040016045262490599299759002684022751266057922176383583591954063836970633989567874709490141821432674606543110574721175577115670018474966395759094272572047311763535631354319345896407622509978136359411421005629010770020870905902401196165733876986156917434992870564385010033776760767412486576849193269639443864140427634453195156814046297965700557223098020782805976666394378670915734501293145575193570557287981551241494788594673871775879797630201436756974749167004223450652214775190698953021254454898112707311931492221678116110113096828452107474051821794524984699133185261258973499701076386355826594908698391518552327140410202781474269140650963625470687803918374171525727883391999710047894857090201258256252981343992025470386752426484297572550217661404035313158557160376366633570189038036434850924566526178758390262700804293808956450199974058452451062849820173717844561486981398367482304576863893238789933294188174995109419187299572515833770216021567855078344664952153656103188221931861988358271536539151380964437160781915410388750179045963641939789104424470240489722956490855284270673626220911829700208922914120281389039443835096556727382068098343005397639044712002909966275595942038161658740499033156619097366133214180066875145716965337310052171290053863294090848882410562701128799893725915226003628980732508263519682583818922499423735507837265182792264891501698879014026811659145738520700307305177074519120799043830021278533162428496073128926143703436714583917422116755482701171507645780647047903001453509862243112699429088952437612590125386518884376189310212320061423319838274995595828396807676610227081202611304275026957520795772672366895560673131306230441977896024077782691812992125073362148824734700291693818307914792464521129375117033085067624392269588077944719784311365813479136129522882630432301857563804639112516502488014990641829822094185923529055852315605963630276937343752397179699063060290631689862893298599276250495306231149849163366128503008443323492111186366705485421922755493705029898780211326298074784814442873475286520624317645107388775625523561305170971491935837220215027118361170356522354812191055460259054148855986942226591524713229116640051418095645167869980173805884111142280332263900796095647521337209675311005074752476382163962788434195303060977415448523517992263871562945416177191183432875783088924635929763943912907656441525796185945264328080196058237473051316753386244859642113280126692613051804006527725050558548457990538662763674897504182392219402918041269710499496611589998270862158640477583589733961787978406835064231302098587059700355859713563981220145250664703898918867701430133661048210382548232562986972150928303950101704940342349154618643175455453859645511602158491697372036087766367076588444210132693751266218237002060442589573540913825960846099906259971233327432756314804595690614039738845309625061556429286866655146495387262808648320764214191892574778541565639882448694937230119980349646690864396059126117524752366577295942287947947138786341992047959089473662827140773034732368569282451925118597258589883737557317538560945509105209661713989026056997344193961371461329886536308105778529562910088741482596370253290929203919265279533211723934087229653560090467446228970415070293457189466155778535563979113416969862414150687206485944528993097426115593845992606894588517000186887632988029898065665046244175318744635310974968077081823794176194322399307492913896516251638239429823389924768645643314962353509161532250863789361963195072610341104158779080721201645737409439837223205353212851233423182261237425388618863972413450680721065573703652307489867206584581552087660984840449178331691876245134746962249125852737108381136028556703115922297946230481454523384983712985966528056693546755394247318563811661652548183728484990531276926492118818166027857761132935108389392438968302763450206025269800899043625134717577305879074176509622998067602486500174128567262985171266819288406416318448784710599674280540392897426615757985715365856919168350820602993232522666385136161549927434318512842233212358690587093464752338841784219029396338415227617103139681390400357983315954909415474259537630280680532006334795187894545035877463178661995571222867110584809933232725551874923622149183892073180641463466541948016798722442821747005697919557824562282549372321342545399188066109613258737421169825872570706098386481595417038534467903716616725756327065999174900351280059680075395064051379418591077185908311671159187379038106801878068063657888487840064149860983105983265557862718508524799616291056214053905290141767106663430628224657302491973764155232718296849417058520684806270611956752744863502195274116708982069726708487308187194949969230819661034379028848832797877512600202552589009778499162019514010395794805020309026218545893407136042533729909225414515647797726416958197050642019393048857422863560800678540706358354441233687859114043639053733121947598320035307540505976829848023646476178826293233274847056818232106112998133367195824672640230373904830447040871637118203904387186536031867319595771747990656718525854937446417103132248225984916094761374215792766904145302550994018188869327364192312391976546406170138452842804977888177377025307528721456684246629902183874397733562923260267444651457528162587218330908156607957460204897197882638231810408729062729011101961714945059167242124936043987995325482274442311223765012884340295828812832274464698836244343890194435069934805994696234092655830236965361843323146150945414812787432772798968832446945701235307000886949512156169545804354264851524953100854181862748569407189106071667118754143226350105563674199857407710335793197207406151681958750837447088685088722398680151893464431358406860913907043417308916330095462545102666449789460714319730727945600197009310667173578844113438117383944051831076741579388729807042670596882900681830434850266083569448181260794037784800630691797445462546913913175550966581749149385574595728211642176610874052221750500610136066281092773861601878802702056748043507899220312637870180146208571826828326889286666805735350980365518305094111092473289236540425103463760947871610931592278499461312803862491377954480226637958913346220281285411829993775472047178821211739945704625422061521096549325763947868412361836491572856157669575589453621367506972492742415048525672075535113253994663412974684484661055415047001285847464262325509302366575218881339731827008550402358203795546405716878257788414532187729001180545016470277551659522148671283785541500821533992922016116294823564712170344398842069063225827815306461588941250844384437477639232125021535911391260400071600944993205442478825798241354866230579189308224577386646599717943085081975475527836810763495902837620011648283136458977620156928822919591359724991433813287982515261066008482789308152105962412198137024307231043549073468181197997025663167014992691156160662448198211613179713043891807737496270843039280066305203972480765009589216020242330801671554972669505976392305406332445748088537971688515087934375206425615990767857750412869203721407465635979892937621425001061295869048013249519123605821265468640536656249744493483309778242756775730457212475072521666117100061195765668352722017708322484578738995224954200018999394377124577255554991416116893252707115930665811406148026920472993580149290852905584923860702739296618879194565979857806129594516211331247294923929186576998200680092783183543663089045222883333296836724441413271413475773828211238675273450855906595168305227537286466436328712722213756073919966627986133693396990108098080768637847543317850182033040106489211275275206606307744981230085328202589284603435137368104807046473554399181053073355407488914951902757651355159824722311795720988510823999796675867533084317329192324967476289649883441134336025543897935413433286343156363089416273597591055451466805874132284929005928419745526851263139267911141595865178948285324871819570190795405023990327542055473904034354440198583234319298554505371648193634500267183626029583068774950139953777120092133146041812342187651189258024724531069901541736833343033991880369122593068947907605117658901895224761528019106331007979871032070183489621709269832442515483139236057135220362779080595440091649150870684078011854945427222536980124374186326410363584157519679307075398291925565124433364501240653198295236764473913451868573414893948223303350893231115916404004169429737577524195240451630206362496170815316940595698623609446301506662894354368533931840241586627012039602468299223754683343054613467670561489505410016183557449754949265069755504655545095003218962791596211074978442667360980152106035686344542577688408746849610706956137214526652538496836252896252318582675838306261021545848535146909750012814063172184594045171212349624470084143883817595889694816747023098788209292603339282837720390991640664008940443392558202366194249804125184260579015311311353732334615634800363044135570471807429000085376236055939315648216246523777137886047769104214174450466400885057020487213949340670931676967880413131069224096822661373816179810681992972697298763029587325813489921949462980691209896013292463556261990283386747152168706778534301224169333342936645140036875068302153912855432099938673492028856076821822738043018022383239262619814826311646160885778859141091440528403403340042123429093489763664465139897220316038557405464394479947156830332901391846397797186143324199408457079993631490425829313889319674300308201808484993075800577321011874000190052889678313501214012611858561159391180507523713883208428990302709394472186377705177278289800605512186493534903054629725810389578194989441589109896104685944463692270083070827999201262696337593704387730958868547672755497960235711917176264329862952255112916118218616991074654700897284577523502015317056139161972782709066523931426338034232361924982638167766515933118621775644075056565106516783154503835992406276351578689053085663895413761271854872731109117575045821692223872172417007976346352918615564288809812356942006904185131707115524158406719478011790337141051079691240008436086895715445243237583791718299074029429515838376340754314523676954291598983225260857927916168135220394345396628987419788531721507536055887645855900590929084196695738471038383730551645674444987595284700756070182003599416967242910130240631397364864942192397266421124968327288453559451002587349704954579053646476705003659063411623186944289112057460864489083862527745455507243353997546019935015304597441752246403054502674517443603515042871556655368505633197145917143183072657068499028683169660723123966467411538556675871075899524271455594832160296916675039664985050265593685053243706683640292833147440023068325454273169082364442864650872769368466250643770974997085097618524263635901595944968753757551743173220209155225387060096905805830696800913679068432424901264504826033034607751190534744580861300573440398152459974002230065510764883276781238656561336130235822516199301079435572170754685282149657002948982367192811539761796483603991293265397405066978978749337830190346528156324778743763335838839917733992940677984536248951311635713760869531102434737505667675956244794724165303122309256804530983805664115891678010461740448525714123083148025842863073479543459706230377824104477364236141799915167663703885224055977167866059065370188593633616441706307223632836650594669093902865117121495856855166774784541849241145770959248534789620104022247475976442694475054191156495712649154065777308145948377909230320039679702414129580186610245691613296944833964972302574622453167406961646065541730625936673548200739178026879985239427933786340962022895391731811755352074036244792952142372672938875821775527462444778083529322741538432318658739346704824326542182656417600716778985008727263318992949897593879422481124867206844003487123331567631609144566588258925840209190386527109466236933201789458923089885714018794362077813541115715193175839563261732296366122125103814487829566163291975837084752314847594694650798066533072136348027702443920584262872418028013672060557159713110229844537722296496385439704622591361304204221340056370233177037812839689795951765465874829750570850828498236821488641028039755585207313678106936435425604402047881650006110714706081096840576414456485536831826160345235543701547138532233184053921502208704679448962682246019521330613409307927189086546763640969725472951803236588554284784375041184933470847164820520742067694373547926594716560114210528954231290111856466383097523133145220970218480303733681290476752597675205029813847867427664735211826803283910270959849997300007336370117560291867739268549940504936189717097497993029138044528937437657978618337422951705108184858161114693168332986906030023916283845590767668574722242417343683267328531303845607839824631335192982125785628898486477824349426419929490286736224281444076463591636845832240447106241225781379991942054000011985422286476523430559600568853506293059279061608290990320815297015671817265870030917049840204625705627766742217786964985446780969992787632883774092599984992387156834973800817692164171752934123846314676459746705553035214492579233971245570985317497871985878814888921803871140513890854228368139902977495792788121605067997340711729527277955639151865938748053600887719308187174477114095488009523838753562306794798271203094051254367302906342625155692361238058703637313218078087804572150245034210722245211045628762652765804884170557262773488415877218952767458226846478298729027118301332104490400737744210053550314311725354332223621167757236779556011920008976548011191219208529548953084998096309840649451145973613042908510485192768004978992907528226034478439125059594698027368699397436631324134542576190716295955086944747293236165681771089873404676279699283941265876714956173997384428785038410753057036952155639290182010101976160334871965970398286450546387170291509484673978369434272921224231511134710097777551794481098987487959800077384086126735344478696611666794867396067848031430790618576172499442003243266530234069851075980358091064773669314101593064420250948110207815595307369865897459199756415955685636468316096467923001971694755387589765761681841606933932178212777037067068422548556299961846923641047447662470720029520264290999849313759546348660556244546026160867991051701900285641707433001910219773508320049953574649007523838894448100261892743761291685297833854579327779755888598795743065757419778008381470126465459810034210695880817057306204795881282202758843047824522219038408952392838832922690425451175999781762928606787401642909173529944224107298796159299757041385334400107848488128992049826201453395464314956910340111132199446259469199672423857090502902309872265927511075728052544267992981977976967432159751779270859019294839075731536861608529113468976035553566182813035678050903554354864689308150020704278341971585634903745254746607985092331722945235749557624068838557324817925020684909078682009056689400696372415308881839289003659818608552892963338027238570160003563763542721185979546962310619774419041006965140770005658316249126149053038440571322072685766883008882778979574803447662688060873284045243435052435004042354670689831283515729228243166079762362032499356641954235375101754037001153043203543264284400167308795476504140240588970126906142655122845706230476273238029461187120354697153121131764644407244285431029772515207406935301862901259204992671738713282972084126471085813721887218471625817283845181091955174848390955551469431201734578516233442762704648109732085941473787385834472199670386093633921835869301497076059210745983533483012969250858360406393263044682138535877789277123310138253495437116267711902770663243545762296667327858522500064756243606192450476293721501339357420908895631676335462218314928592212858364798440693370522812193075965209814744498382661108620852412577078451667981636932684093790709572137450635934279225418785278534233489740662381858521014383977200441633653948369865799908935844582978752256775250795052227388649916566891137802880711191788805198677426599829816263918856288770974382914010261680426138142077418259840521653909694995654246719597789070749858963482703231207832683335515118688726057800370260437005573800299263733116479914159893934568251906561964365367188359579984267236985856348518206894359597025443684266682741446777344070237740364328522679808110624790184444116740756713073665120520677193344055728052031556743677703807531117393944754604391717798115005182294979511371824933181428945361956217626047727371014735970391115778739201652593104381164985393246343461698542515310923458124173787971458552100858295397043949437327900670650491132456870620785306340309998165590159733726063739784761424101296327292430987656051136709190625205897552256848664950425464797942496337979044794699771404381001502376610232641249686667944493648605527138429943764742235809363664854717697463404610405244435545634863583376134625156230912626731505897205261764855927107944663830730167235051253828124814726652506936502627807607925407041072737414884169627855653832085827770987982813311749704684372503968398611381480713699771956550194922699136920574265990564930544621725978495437521760947492608366436388442637104719612112241600819553746186329555937055655212655299771944163305305837744803786539192527336358809128630063113888352728400053482804060642895289403761226307449611855268618117342798756161721399661680739926425481567557774214335135506819468185386868555321614429809295473548949331926937423129666464009234166958917468823388502557099768785993078671122483688821579213460587378274407515498977953741443656318709583595182419033708372055887491291965784169745113355900240465295314274054475441985556172725439142290333931871391076057958047095444082564516170496179896032789574444628217593368418511500140565624813613338005084953597154361104718252341183072965248938848249969609118267523669002130575993331827321290081232290720247088060109790326556610107463565328162830615016011412311482679171987754473221095563020385273667318401415061577250307631968523745381754063661440390343240191890704764158168546275506405400392923777587853227569122804852990826437000720235920398284003096297421982933013880349946552817770529106600875032822878594223471978417130625123256575751120561551363853201298681426660407974939376894915850322292828678640689368132801737051340472691096161579583419878595177540858576464497411562526345928545605945857000818931166409634514482656487289138355760497307302864424370410930028774287667942553166215338702131892164798803469502281511573779634879548972202105126356318540622774128460764303715501394858338447019907120449000219348466580713623898313995609580124030326148122057789941158809072590801442289759415690645163712009841957785470325507312986351244723043131058676143688504884613909757923012833645027753367179721819983554995703399477313395898284188534006690441481701741274827295923766680582587564778507434211788873117791589231562119746636718083519328630846273850854262582918430207432021567257239988240427511148977799950527010972480168367594159788892655269152844921431933678222129911347218759997095365728199208699018849911899806307582624944785451191437946586291449197479144899498492059020026915053405871478317816444737631721353168731625514012911750734117669614187085999562842024349710952188130294824383610195784481705947030544891605833971691729214417452365765884359420969106059961957674659144210667142946787842814315087691169183306825231159600670687246096903457391880345444311644833394413660296727453303788034776124459107023355254344430346916690903947078224396193807999826562774948040092434511940024180139315008610936573367479289513210728076388584683490683405807222283247725585302201269396293907021549188203087693233592995922843616174621556380402180191583236897316066744158990278139082890208085349862563734909793895563711707322264992412942886221752249434333523049093473042839112843927199630650589527006642103365551593268608111001026669770366808267898118429510207806634920596697633901922319195610415419611902154763759488960388023165127148960634997424316782315193597529135440568797301075187296370224894463342740470335636297669080876566230271707971505785561854765980687855535183695218978827270590038339537361094031823010848480506423931796095386381549112290732843733756608275667871304649949157557743856907356014913711274591035832076098211919447365592625584945459397612992350868865821000208063659163429243239824981260830985735096580108116390656455108884310860913704405340721204462104482498023815623886908189809857556503648516552268852323350113002813351155269472589806796274665686470971651446745679210804009441180113370501862172814129157335854868414139049601729181137338292140267163536926245424319306539842892004599363692661455812056915154312911253378062034310650804396745388687336008427498931608833695104477875581586900883006441294582284961127921686607464296731407534005937684495092693615482884465422664718504783501036465050272281901703019323139954798817233529226818166302395389240495677376231546038642532425899589100874376794212054241301429592732271508966130108033767744591986325967613542732533737583292271637274034321091316317569977205562116670599865043215153823885629538150971991287270351789699474164597285604702335538649873456559112749038153997002131005838004230986407464935930948717165221549524485002005331004877726095432236441474570831761812346824086980570956437783307123728917330913584820343336346908357879627032996264639977897121767966305943948320920833602352883628443271462299657368076379731660501392649252500687225193586919499856081150705024442276103261413333111697431427359115405202288003257877566091600319799384946301192481149361708497502940143240332760195128767850421667393516773462080192871272823708839383509775333727243446929777867226679104390067790773835461536918526310737477893882341189638117582922838968345705355977981689453252908166365083440073927413012843891952337250593292722733939775332691924619805965808714445563830823984843230758004768851929554098742654361501279942465597888102561829805886378661521104023461014702993916736233159056613897050318303923734622905608774151247723946615128507521868169399476812005179040741038258394684916845270849968620028151063994289852159585727688425988613502875077067000255483223569089139285340550293235021883441063618016383294809979128796621608394142204255020141579497622816271940316624429582707744354622359066668761410380679375073323752372455155105743559518231490666910347236590568938749700048543844389141634102649916932410689387485757677325734979624528190193029941637382682101380806615110812062770595711233425994221684846938694870715229064384444822167782040699701040416672358026396210387971231831528783582131865435043512511786675077159911732010656509785856825979092923819762912676571497345043124259260875781194397207373232341692248551326694758661020898180632965394053350675813504331123103754942998426875486377290490480078770432629641906926271270178477540754528190402214090790752541615520951408342980679765019554072334214049065507059290086237210230889868442523293599836362279962059924528153198000428448307685016400151345454092912316745110398902489289634793426078180535609126314606678768949876223591433241957985212751734462734128283539904351178381533407087810908335027306734909458746821946199890496819623032248365343999371898986901310786922397608396240273671184200655580754872426969010968664146307233002502550397594153684715385567491914425712578285154271087073343784776032294325213145496134329948443689105213740540125875462768957116770209413349359454858490117656511199322761905520380568064373320133100268251615167435019698949561429751356565372306620443347578766400787828198481735083812236812504337113144167742488700697725651798096942891940769061061533770247252459912265896668115857994467831789439944542794819554980717568587242580583734484793385950380452214151234592783750164741072828677325842066763759582654831627555379328990841490457737228804250804352095395401347336199067309131722405490685777480607313042746346596758880170245458132805701475883310794477813555227996968376104055592891487618462362088596328536509239406996570305894900210410383577668474261614294872349653609565943834544915953897513613776567260743738055365625166435274706830108977776202619200707776405560685061843719506343770316837888786722472883633744584269648987039720344209571966229812905689247868911913893443407791518501056563350424619635189348606647994332563261817537387329921971922093202158935822782272940951116765424947093527352054845140993889205392067717302769216067660678351178480584170363263777341599331508305849557918225830770168162427090868345738597094299536437603460089820304141842938172771497117002992095655999460251729152969070028796984988831743399059208155855090320091562223884358756319648161331051389162049038638942678561047798698244445911324004192766552874168346812618797239432929576400890679269557737692395622101392632531446659815043495788293393706776668579028518521853717258235235243845047812219018977131024618618628916676953207419626261761505123637506749675291732149846836337518049210087499789374223434360298402517895935352434416507776080703638037838285429845386379127195192667273093457165393278909531377970421556474749867088676651196988742702578201986057071271403657306968648240452784482752809024979450679698207066407259902803270232714688237694856742888455238292404470756898603431986597654050634294300944810598439994014372390969292686453947113919342562185792095096079144143068534748172106702995279402105222807621853147148070196766551978834310189598699167702710345620370166678342781387137503211979168922664142951575383364165148852912196605858924361288185584359628549935147183862063406029535043729868815172160531867485898974552437533392402133652489889842829356810297482679377101138464068018048982570375064260671055322338250983847927273092274604941794235326761666966637065505623849680553778395874063428222634663131911001156049481828074818686535038441880301000137617949484563680426653931640229640177356494775234043974525534463376867409472408446191799639322437728512734838258432127865077797858808816320456280757410057466556563270332721445488663542414656008820440721101458109296957387619431041945045931757364145959732546638955869205692701325914205753746676300909830163238123290233171077002135748622081888420130005838571118812046919456306553443508541047110504710477661210302132094999504493938074711007113111559912425402624287899240974977588464096139076646032085069530443124332658261480390920925107809702927740853407567288284889805573476726253293163754728068090152396937365536439216985017530907858252329324884335159915842892893650301905584177055210036937394753733835943963003360971741013520689744910805709783010873311476883763507478715616039889330683465230832778439330673443368392178771354805297810358565868782854662165315779100924710833523985117641021972651464304868701823348752990713561540608933677250812034201332768387934344428188487400906942490315693366515167496419661277667530255504823674350937754873836745872347090577431467575498506592036388765466084541137462588143340622376691459760125143889751141225850281629985245382219672470993193783508922517605558992617020677208395803534230875355254535238481518266854913004521793012771447498126324904817446410537674117253377202816684005679980807277100988886931236718864347801558209746687045792162205806718528839494898179907471339577761974759735888681781420061536433261892696460689680226966532848770467150921716364173653974662026433471128265796682318311735860850515457360209967105637381899887408317264276422269939516452814457608233711389657145069044178853063807270393193473134885757009674413142648034017333043010880500640159494905138034097080576569683381510538955597596638923477242329226897775751480202596130821468424280875080950144750553579423587262004043813237264616840414605273879247453115787930453431859688159062704900728537563582655048932682586320348543763008624662402710710834775610455904576751497124078190396317580336945596568920127220402710371784831499349334123644404966855537560468429512999012790244246014725157836923452546644762428301939938589913904903663272687726987695502970441898344395822199100951922348724640177235323676500900254073200838589394419195531205321626729582008077089295071315128561911752809150901358749874796298723751943381656845393503246756843103205288514349291428724495530076325229898569300232436395227758343041609859479620524747941462061549942605924211165352879319278589117940515175797270657546294182818852189876463262480547227998161667985924175074218770206994872014156491221958035713185987614354471624247708913655624934464090378645084847301563739222754276547106219638503017882527125573403660076684718455059980404104223208490336670943387017633482590883715572947385880935314675974353407117768077329714588674411992330703797022224540145830780708737542121555143692868725467194421509028578093559551198499822976556616727707893093955524375592996747984296022895101313148173618008752543209265107002172091611408682507402171466275114497509850827788689060834599031008290642397679986683387207089163946877713578561685877525417761906814463136580578565633446560600769946626939846798298423923585849727162968992981804145300365719235707585598898558780741760970675411990029054168899874152083827510353228073534395917439542961246587450727962449496959236808433137420107208739699618887837660438021793258920410776982289792105597388420730538890535825552874617096055927197126916198415918520440644331336393343201145570783436829782389619651948846840663577044820966938511109147482045475003538891482265027439555574353991072432260500271194936366792351683916462818801218386913321272313975954635578675586470394773192993164895390107626677154718323909392762213115810524361121335867199590589968136803839877974234191451385023119554486730909815130008159676382436445461348302067147681029643147760796958039262304810719360828449972142601317107480430440458091833985857604083353732600166050310056216988323273499306590778481051116053963014757826062566161764196216123979504836764176069439860056770703724570983413496297190561454659881641859247486772921687758954810420396591645930393522070225129374243000264521868052278207986056616170273077483497487539705142112519539891023469889731203573688682630630659379524985391145202377652372946227124752688210377478890373865647252627883033364641496340873337795952343806299965761569815303704390651464736891798717805414705714236774639922862139188698712204169714138248704576791632623101267910054868045957821343282477000266676488001097489748135673274095582216046802536549541895606709874912048400431565308924736513429608080293778233947109665490784718835439352748268944219431691280052646348793469188719493258709299048510447716807190483490391775735647385964176733169757198955845654244031408230872226833320503833778234426661096975539198381381176879277808192173648036611455229376552961808104167849466027332129562214985836484679362578285870417985053459762439666246669023040407051685819103113332402499642570695965647637846809984126942640849434597309937358227423472969391706372978041958162167483882548032527596702548282305299726186718638339390685960978216948185293311251608483502637939174699355660684414731715311840212383825214138939749874695506265001573079903476970348569688586639481002299174934259174250956453748577847532079233681710614924705570979059277216885404479672292321097838595506702432618873089444314429199079872457561571196201906247011486814162785104236396866459462792495073242210681243181205064445919216865582484653609053125464121023391803803347496966775590691321587356397526325339230705922957619465521921776275989269263377237949369986034499652665944084750619865103197458280593329905151679979786030834484448884401806948674549662507825356955309305109800533387777680281594635175731293903120873397020348902145479288865101667946899475972844947033037833963617938808207950737901779231762241157226954904009846269453368047368396516814245608626983387189126653034075142519403146686022557560085080926761806250683321834777326128419963541414860095983858233532117674588693455057639920614391987484320755031738072686916744402532176027942871114650322203517264375624209809073484845673460841839936780939911037641008432919032945270717576499257381269280229843498478265651836152389676787892039654775446390045065047519660462217507462649502041461904620940976049699003982047622602046932644159076266299103311360566763018299622341205921767727982174150467953145835578068809417125979070162135842165446738717982793943769145366173446493418772693262859567788353729202624974999422682481147616830474249672173725044936456191153932190473575049759924102962304774019263263962157393580452762933863260624523268459919296968115904983617827683331609961549580455028724361356810036932618712702858153879766641236100466323924190243216583359134118545824218676334561736332652780526541970985388382911785481842847723801144074485686607270252171676491522844924195469699686351145613459755289534689440373671282608634006818169645170020702756568006714764339320094836414000211419969823307850810555724776801721883802423446385336835322709066910238999252203788674705978614707714524917359826330857193803224930595281915965196609797097810818623528886700447005227619391002949130354006821688385951244976764675975460768535954389861512909599663122106246707663237969373462356594786627863419735129965671686442446058778179044194488137047190331656310564163167971816572925422612104471139418366329521107758497866931705766329846209615549739594606790310924163228830216346876846679893261300375884344467952617005250009359131631126250299181415479562677191235429734101857778988143337832603050037712649351392397090937009539716312919689928517687621504343741205353076914724201785441127322219554433009905217704288176259858230089277849958028756792555210523658492760513389549093841332128798582052555206812766833784065223219850656257157733397478274709347779052437746213171953357636931809781084247989829720306391650877771192912726428658442751520609687281702240788312130991218056498840010193726264575136371208684991401201743848417401108042470242316183995785591390213108936894506006989004516521407647522105774702845857244794084649427214702881826401423339824325046468460804892656305567572276050853222200862617180056300820617634558097364930275219759202565008656863541719113445863893989295860685106052014248061567544655928074110851474988293051040197129912880477165286897114265490705738556044776393880839581251294096514399285316158780701167049868807523687370980359889822541491075498555150811671718560077662473787253559980601131797406640220225681792119273476332484351468063044166461464288054736264052172270823981451701831697551362445191223995131408981129106862233810211438047221396950360595718825472398191653026745363617648482444520886416439576880497694100187650370821503101168217117006959196638119721254994826320582141740026624301379445861876381196594527424536054966979186991767643681328928685667659968650079334514587013027038025179174244054429471262080104817048486114624893020967773108037291532888535465157547222002304304772066892472880518616486355424940315395192015825930063345358472120503779501118231921618624455839040085052671779849501494770403029398187505106462083604513615470016159576007273447611568246133371158333573991133438478974161562338402638180846695706929316199994325776083815671436477979688913797570757187281734382728075027210805665935459608897840813724299861993166313904889187530163645069540975471532101083169685710208430031198065220697081243174626916325612019003171473860615776804742198045585206291736136534562103767905419343304300716001892378434155522226291767405695819596755551751631260427782485188956024796647787533804007947193561892904644667622801021785159185774331180040654885591381566973406475499459389561347666863871600929509386729673755477978364665544314674959018262511362398861902659040283259415949123663143803440462950222460088955775369292117884912775775883299760657988463042029650111456993961829944915138349910591095256070581954763656314624736853582703346764620294747452228704282770529626088265348675018098792945254699408794915518916803730885867948674431683930441752545949200342619630539595156419122869191454741304195014617700491290149549482845538127936441868161975337990902718667928472876229883189816088474929804954645294719376363001383253964793682619154781790825543642207707509180542517346491218099268421175125288581913735469976881185794971458623360948837874625821766632815398658352279191148719073750939514314703047464272104441332990098772089934073550281889857547277587265828121886097245638164150156116586505020821094142973185839887215402268353597143591442993630388905555228715838904539357238653350335853885624913930359260337934935554671131330627022766238659224232948405081744083375590045238304598179958121882319157547494124921944926069019597347118899535984032476153517316380957942245097506270082564326276114769433602429216191011429337193199700956046669733087878145044783235586938552103196742843108505457016218740111089839484986762915120913925887097285663719098139968633450017830250682706111877810297994305524159577267479522959540021340909324847412734503779175339311670188653751492746292162764223560411502493174314044629865967633520797382680053463311387866386643347127540453309649293203403309463938752173570335550078066611492751311653631946584988391498746747283808527489150212339394608631015075324654040379974698605597180375227039231170044177144141486407790060675867698067810977683609052038213680027970212843466989954047733269872868504266854955763685564687316623663575877912912900769380406503654127098188653375904440913364868214160792253920366451663157949226924606455736425011840735176603308294142947404686747710278896233021802509488605744239292739068873436481368854744933958463409943215001093134580587476356204100930520360429765575695067118415609735579760323081493733223875083413985380021691590317824182961406178411623528131090612066146909828163692666028315348231734732773744163958970338875875037600192618462264076289811800338307451220111876297832370306190238897310546078480687848425591823848297093800452658550745072262147661238069793376572683726833829860323505705005271803812926265919873323402725862186186122531804049389824745504966938928609063068740233426277990154630587458388793461660729703956800855046380025935282396813367447502562991219033151652782935554380527239343064373542129581922475419720627977350788890414746990052826330690331728003125613616412651601193338491332491254048068102308604957921328821158372205369283030793296939692845477272260625630737170684421905880135734172856286937064494822795600346829718239436239097740363243210851103527564505584043752724425488446931354037315069570081005664358250347618549104741950596189222273244592426509465658249211016441303074642017077810436347957561765203735769203877278337616346815753050795413143845127286117024358844318041139601490779930201669134515135535353177395908626150366665681113388450176019359470611395074941453113233380742913146454591260182649851000783453585171935363320361885426560537243640931347881108923920775217068528461918540146936683443546329426416318639071902984670095967432619283302448228048301566967929925798805528965655749411115628991963189202371964473678870287866873339664622822724876555802471627267126079328516622867115959713969952774348604984212083667087784319697528009154799594948285775116935287116929383374857844769779150349697467989022693356465125785329874444001803319036094503995349344110360129987483073717792331473754660288868162011877960221865370292211854651214243541123306400198711199934258706637022074724576295242099667064040285947887614083455173742393666133490235774192428887520113483499379809544250252869440543042293123073373930796846494523657647073723105176490303282576981213007185014802438842821806556791934068509567963732924407141594139505029593567442639501093148813952272694104681248589745029022670285765505651984134948491582925557424461957572482863179614654694319774252692871276757038600224203321938708097809359052671869022447252778153699347130461958767133458955208947850899273912038078170476184579674702510739441790703396614043586916823871202149864797209227438680984337491736562725689122854923291909604740939905859317318095647986286537369218337154462380236966536105126618338942017483912238880471059979524606936863502349630736667046606947122759863217490715297002920258308729464244362221008873729066785219139439725296062288250365989526350633544697717054450242759473892822490928994332390984204494599525406378406128672742240933655487678342407062424368333749345077910643096380509804826795248675529414345682160368399485470023705394561712649206673105370577030389901376473100923107275425811727890676312759312220660574789855485429188787858510521816887480593820047323556011195319784067389813692186164977841231972669358093606839151964133914721253901413600772049883964189785803090858334321778204647747971723686217566491544181117145281876837521985068760409121808695617744155788243950752525292498958922244934361245345442668365392146581666999039654677858306169580745336158797090264922542549560550086444419877637135829723485162479903962184198637510231391199550515015856321524255582903114160001040622555409104928351807758757552019752090260079980070777995335968719774590615754391525602022055395429931917141463194859700357321270989649823706226524733236068388211763309288216916405154890210658380543974299337354065159934035838373266281115309554381319531074486478178490895013205084118128013087574733521642503299278157779776626507898821675647270914471180820957751475875216562203271320548309564967531414299437016233082546046147091182200876022467334110875024443192844819145174241519662866356105425172202652222774839385117305576279954032553734398644329565764529985192745285394194143385178374986484143531266589248641568189390628535785619851419541856898955928347940318498235205974287222855263433420487910596651784967276489337441951554138813369409916484305576040261613194306895748444145544838168015294867197305933069739124443047991154252927619177304185730705974307629601346261358054772900710160475347883657029610700957699055203556706395346819759112213532860757513249128090422660135941290455878058277664940333948686118659142647144252124288072330383207359448592971812720265751549336295953232226316238117645802327991044208654973574729374753259966352165541882593590380857584850724968132592029091641337322390677847216683058234445843361181709685754608777886341368766688582416462165555665312886524474449439561306941274853251358920821063966394030513853323054988557249112267075313602315084470556918520187105373809164374435214038511482297573291462021926247496979982366308041199491285601039302567501902277559114685228846730537389072616842438461658539092029623040342437623647535438323509405271081003059743701793871781994367234894233352296989777916895892937278336081083452676487339062116862722356653700712163794135961447128894185941758132932203352137404806241145353862036652902983863802384212810778711555808202848419321335295135677510197526598512492732839545518502978663094664707655435448573937679644671431192637197298032350378249851694231026384902572994064877749818104646278301396484883523825151063340913366776713180886523406480042450386193249848615987181040013312631648200475425323452391767318791339848620376249879835167410659017915503981473287355325681638608399849424142022313399087182454437955873149602738310787242216963173227214532589670526638411203078211391718597340909728512452231980200853540411192674704228530780698565012577108303594472938970463572212798459542998835463396154767389594514402195886684090819282383051311859141945001344234048957489160648584691406883315851483481897017619880281742226929670807148165709500793815534484834227178321885484233699521204574422220712584332816259621742301404437362378326543564516457879478042419475883995013055024346820122685742999803046883966309973864585550544410409786555149614236255422316031768951157738491630937849871730584737344908387959614940372865742293436072387532747293150797792968108955573051954759768156922071389908135863119427850997683796840846180170590370420920908246726430129358732850370183255763229557601254477099365135055182383274589970668702600524000523477222767549101382889420337897014603788105228208066595974277545567750630343780931545011981090656446353189172858602969831558602265907069999102716431850644518749658257204393358075017276626542190733577963363627997189999376123773858852542365584789036615893111416845870563352145364165323458795164787628287582017628210733405394900999714648154559796315486298453741634714519899398639649592203740568456663927140818115037603720405461827588653117724123360937702725445020314811426987083084980773487407508383192679902039088238912891448129205475283630269877420931547963201803371827511390641497240421047431011672610237217827727023260794841006865499928999156555290010485726281696493432606876254837674817094925733096390582854652329502790609186934391829410444341512330524748328949434430963127857334188737730682157907588430111147437485201326165094663975291911692800020252871419840774465757403081936056461748020418437402932540998744810807972544931409374119138734085005863199977884157543802310870460858771841660700495386948276867550535025896018955650407429141131198924257915869031837567700286764197001024749609990091397064077868115948409569270121632019401534094994359330419480224009368818090813641151948413048539889474268023798929107080972056096861733285796752754421074304573982136052056300617594485074297402115104768273817016629216069482511779957928176601234243244880597694945881842890704898699684226331507132352287697151449618828270819111555788740315172530605828198746117568068387941428934472490399575411542830064227754754432889418316148998740337797948762007180173124132828262421584556677412090953300553992553816661360646166988691769473409120079225245033519020600695992005524066482269675253333345571358922110386985166271905929026527818307505850879915162492769926113587242589504839982198028017257359718073034907887974846860774677875236224826445347206845032591230813302091684723222274039128137229463974765605154004444023798887474549142835042139658659074641515224440411397571507919992240897495447917653155968092324006706400592768139258247606713342318463545381130187512853304522467616409585737174336529644590086094050765975727153885495402624967444720691654030401144231850022430710481994707022169351671248815239420138174646460011349306673156600936706842361769448343809384737366935838322296367739868961843526086817561397963098237092743837292930803825685144077127058069301655692641494833965714853087758777289438205472941533085689123800850427420348796119332713482395023539904063310079738668046031483662065643974978138405201858005358525919909440293167812068086664613863281952335188352348188558138875792333625899250869785229997018107981106200764031067465418775081320073713841998054725827175785665352318067847688228921554187816388709972256100200663226661330052515989973242993807812001068439986046737575722922495716660869106136858403903671520249265410124374220798503195425439339602981587605284646134946243061571167702084531323281337845024865319458532654536218428642598233450704022239296108695173941704437837180614513395598655704229596320471655617445740365950168329955436699690874644991712325598273270454136127094041302132881409471177804993491621203988665080875609964340304452483406652527741927043970903061284276349855284667093228078375063883609433322990211658563696676242672952257447628106193713928217152180279303210458031693806427441864603359590918735017803126064866873241732947779782367766377007096169649244386704285417858976973427168293768375039557680977736409789393097175557833631315563561053508447855732149552724458218208095941124988345360219179119074598920044200667398006212899523426072978242916157476974916516184078635916960562067689100877264759201150884234369951585176584863184443846534987402622271961959615441531566689252815514913188729420914582257151117032128305750010440756560563867009142712728952620142118922310768888469306671919192250874699071850131681548687437393890146338612248969547273325299544645904894187835241916109644107620540460444741513362182581661108310975196907575730555603465017531050334495679819603932251613956501278234381216181145294211076055720274137080508743427758554774350292585130097148671407305260463208688364448666385501666285564073575306478255546824887535717671027012823005414446773546868249112106256726474260167897169004743874236520845387424961271084136722605271266160912900100775552680431543442382148166670602611688663627781178606224551617602049597047899916153245608260556866869416650281853075099306929174587398858521262062135425503943971073563466656119159870333495440040348332299562652684351630250052236396228589778646475635520298322226270699342510870313634119943581750466127774014721051196819584805962367539615939584451383452160499863961152347967845329874858366018870790716923397734876969261455905556967327172563611101869208155675449275084134176134640991025117214641771798181045433738921055230694218082647115737274494015082629189843308496498359211314341754199220954200371859099918641233160274510576461906040276886041070097730974559013243171383842207962482225565685714269746760587746605843348551473617227078297219752418628765778241573105171191478327397946867250004093090265786490161781331779517842450266892792432560835379527790425081629217203027023193690574742128833146199255904583975247091361570647617840045611356046041807436531793899487977191146442863746198847632173096239288128529200725864168829397812570635437627365546292540007847232446588334506122128290352078160031616498419963495148994915470278678898895860155313587750116632815434687341992044398828424931175520727502199149472918006639384538944255291196723281954689256393412869724779622429449800803556134446613788926692592213375152256981081317311615271013423180869477138586525372245936416678482605664116328161191543062009905256402411837146576798388407421283723094035374481580666927433832505669432001355989358564428896666344895605119858302034785184422779422726434302345028773404486507116953929927989215080686483901596564078808498112822618614435224361783175129196171715632903060111203207061396157991070869341642010564338333097666491211002613757910249187733112874898937886161225278912715046420212390793022651280384269180935426940194536882789431878714993729772900137057881175810543970300529585414640950796355232699827587781296810738404518676687142692402883728012816581363682268710774515374377015881258994144029986347576604637570665431759603648685234797460192182481219770541631077362021951137186119358526892260190846924738970980293641531774579782738531472151343160211612025272673670124167270409169892110029214160457097071833157995616167016354432721523207010907714195097003015979670659781810726511176038895239565620766801943975767529803298627850086975257940842845344457004180036763945673297275761478137730969887701598067522589326453263377373382484486738653466500892695123075097001544228076566939227951166885242445769071079468134587029305390008212017657542846141099712794858723922926321075274711538491451154157874046221408539106598279558168206641356544941949592955067904634373678383332013493005845632624572567987565979636963878085639549520078926178165426885095891132790228134508346539018064650777419105921052507959018203750409393117211126756593771416080333551543690398920977242241077344088018325163776437509730947791777781265902450853038894435066900402504516033169776690424868746293039330639607701757300491478631250303373056569498423604818848706963703303914641044983575908241181908394123837557931980155288510850238838714361826351404724782087082036126424729664845361658116404367572134630726623883175846457680296369208581959872193481347844216181428797448781230196366836331242298863630239422178044649548328467472068880324916389612263049271749807506124976135243254615740346415250304640317554949074723594180964677669746582588736979288025831663101405050080316730803054392836786719092407794035706186653102032334096679716958343190386925638054402364973575273266622992440065598610738058443475783143440574673914109947515469846711007720234959342868728440160227539935879000292115199321738871974875369309690236179910843114011261859086460579689131486435333036883623954394252653726746709096122556275096773975414058288926456745482635662356518635335869205015188701144020063728723324770303434587522743068256344451332289842084562977174580512446703845240051697996295426158629821597384464506533051826882966214305762812125878012510021029153042484202203836048178933284453331952094808896794656118962744781912007906449036001907094298724812577704881607069071247458156721043745205523919663607326523891019352716891385201026939842066985542738588131054502176438708872387773258362256463630392485206989650240065747254251925483357181106084711162415297710180450391738517033285498315043798891992945692637158709438457704645651361972327130363991013361956690852266252710401007284272539260862886170933267847948733783947816744529776696212827893662029242751431403986848648659859267930367752385880582245995397142315797839825330953733080862912676199458663989249967024234450795159243293926789727167815435170525033117556828058162978329059102053480914824171124503339700613390720445766489293501489770863341185087886646674029389842404067630323869961124893458489920201471470784090787860722191866370711769519519674016964667980356665810277518089666435003282627308105723150117427769964901764389279477273061164310424285269490817514403127065127432650313635523773025419326906249941279612289545520515025364149002398448076443568499697753382888881475640797482635704339752777221578650397581657557340908310713744588455413731138395082589889625643572700081332977234390180748801282394892949369873599824647428253621674703683574915653146643991175566938296017206338861176577582285210459871081040696744830759847988949523050392408788710902256763312440865454178322114872813747192126264880845457932707773332681679067311163397375080680960231474643232846061443544321902191686238195922103994916404668477806028045270131575668040562069700048578140171644239644958596627051253388131604528284150112839673206976891130851047827613498570534003647214830432072361236212647638959364835702411380060168151469874008256794669715645395193660116413352042075729927597784487969290148726552784091453833577081323093465731321561599615107759690288094819907096366029488768046056287189747331054406159943040320003390967349601643432663185649861475899069481323123313281313802737942044586768577605950255921549011739271425081325838890855052064777315035617777123744453419835404892294245534603536386002957200151330435850104932860239179778445291084956335552830747862813628829157800478521651890134607525963767561590618690154080469856526051183481261186573888264488437167936786076328551990209683426851766940271489138500838646066769609744931535464088807079053454189096455679285474203592548549065554500576161885101170372601818841937375819745289436386093600585283246848930585873354769189672263140217657934671386793925897847891132844416201375337781474693748522114500501535251480786700752411882433920154335675502587965324866352927894730561755275582673472163453169378647517942604659741512872466305404279725613268494448377926434831618616934118716059751419493009286247345834362602552278609368232204887114255224360822982532845073924054814266720725684486801605396144910434142397730449141694659435170346964250378127405162717732831349376244905190558781809427222025353091539172758184680068129153018329177882101678496185581537463901114663798337738756779257108448591570741844520184525188234889107751247112309669461912235459526608080837664059583488009457379235309275605762097801267610637062890092310789647162467929626374166322919543468906179868089711652587173535328478758000461217467430173903958727200349166925039657496703044351094025370989064747086770990277060549539207466074126223109224879080078974211297412127423665495786521137497448933539379168440819472727949508561272802996264330688561846584275840182270812088504096619633972145502344266796602728255005146126873170015323031502444001327301827204907179990079809440168332477546034845553531005009006792175531318569637838470406674699533136175717183947717970105131053288843047018111492945029583058420839218764814947652780700254429371264111649432552346272409072053231931374873220218675680666216631885971611478016781450889231367272921190602075514481813562261152353793399916350810659621906959844204204798594732894949071841860861338090907062813842839742461911913689199698891126434691602167205707694205741457591110380866044538697942059070009099056240905028381480518437362260390597644011605749249915517635528405213711996614064859478621422583825233072050198796296000921242405124274284835971264204996452743395692298080395738844876873656296463104766125352447992583475599295125408282686296726105143538154543821915767338324195570515204825847210255039980118359465173388306290752609333464197535111443624456151857945939733777918279942293628181234244513429023064830732281455445444167819863354728022171016193618115026857199896133974095506721486153378362631569795919814832812523579330823408663908251148560360960944719915648883922649548929758662979304187704706348823709677302093894147369171819560329790447802962588840801325239565846467624573215209941051080981661290026979843807234114545099152152697713028125407523461860687781930573669202055351302902890269121630533732208913319877388648758591097686156190848249594091209202243265509990647875724936243855932695467218000952074851046880009388720196454228544635627308836404132291388488995451996929710516223488952424506406938123909538075787616824921890088574652073825782761617347909083947635500815817778680499037670529864912740757774975034448614489705463336444442970459143726403601577632178570830354663857804536064680288295593297489992916484473990244847176804619005153493771142797314876501390392721937257584343470221939600549593211388833420168840735386169757655628433606669667675062352469529668268751592102204533944591198906512466596618732167920368972352089749823569960091928094487141013714728865494264033922909221355518527894522245630847126793457078695437743210300025960230101170184546681910810629610080953281219330883094293321699643528092753520936186769612996413676042123587622601475645126372423305848143039584610577207450936196165847236023479080910493219723974924746242161266459592180054508485881470298003894830473881008294350625489637263459971051980824077118016116354412027232478175994149851452253378062888123057253600471330114338009472771135481504275990726501152989956996635188031889747396474809827578118551670409982546692291950127890279007620294443771797438888592358075224954581478115742130148209994300827523376544354959303001476486309872912563349532506489455671847243922514977101487141265468720668685779198761290914300790401599780779943326457240582255993757168711740593762135002771922447107706977918074341645813483605861142087728952142940268060124706062566242246052496649006928314974808280303793199569850789133331274227085762761539655752999654457182159602897178340612742149469004370802005775156607609102167263553108447698683970403211945919350802694377010764808721406981635677587309781681476933779100594856528950241037130306423919970429031657115806601962648342951869596048066707901581463418491328754158053336303042389988620529731898593411315313768188379892334022807634207407003455139401929585580406399551887873454952932295600931478982255965540941574933847184447272536627694899585795324215611672930335110020897235571697116507501399824517232269143491736301607961841231251779362822375152050207454553910556365729159561804924646763897335133446038534115800103841987941829584965267013835559600175161415384100952459509190326338855468030541970963012874885447527399969619843782578218828819554280479827122324884120804916377940161057822277290037539228241173072124043064846998736622939693061889979726904064053581151653102102073105089972760261512703313962085318341189783041458074065901918672937244205730526020532257855459522197317971899195223860884468097622101624780358267872234323592381556619148487394065084413644380344128488162028892416120067441436738592625495967682578800112415811184395488287388061578743267065312042288550292184853372542965494495609161430808695460158200092055824269133978737811158188723864153571600255434686600495819836711726640281188580920015673811856018313542408687077216856325727237818522842000287912238040655889170275306104952663673794416736514532342772580231156114957321732949449186464438595513732635420971491512792051798606230112661894074362651583772379803653667841989894873684121661098403601628229728690352911575947143541484906583423480416594610708590762589553100330729562021703307453443712511216196789435677780240105503049316725294507610588770606709266413643542518655700266553187920155789237391141268641048400232405594397597106641619384327573315261003771626610533179286101881512467368028685381150102951760745657618463947657828285459292747983526170374907415519972316022753263993481247798935657551338088654780409933010001364730609556962697091621428589789767318821835692021013008438446646039797389386598407680180979729449677665816853121937439640350410738107216235716312478666448703190541224938522723008410816857615740664032138603516700345585778353746348333504024067399554624127325646191335749242571775233513288843658779629986623722382733496056905237220292260889784922199442682299243493858753586194828769420032215205191568559169324707867915734533422417003570626526745634750044149388517082649224866147983496960771191804779032291856973755828579227754369638944931079176416382044076340913694461075831428045707551806758650405513234862955411513953995495430349130786342844686308119360520919798842096130734390244965031674989284435097690278944370250000614072493952492753174142454893193870676459557302477498253303373650509019341564366383809695458112035863042531135378611687111134581482784202185166148852885272684971005881435837724434324470938774657975751830040534835747943000221629376434414743888612856152133809301025756953498589522650510060879236191533406720298135545256304807110409023733779713297507106095210684695208205007003268589670663588793795791275168122909859167238031693960145700339099318243337060976575323314872184250743686829347868021686515518932892827779341393351964364222488660093438668615675871440371826783855987417675656913706358406060438742701892804750367257051025763109493605170584915461578858150852634063854404399105054476969017082792386833831283267474101495165326568315243959302412188130303484711348607440274297341461598617587506452372590167601702325449987767591594599260754825056150674437243082644808739598158697233644350384219131587668908136005710292364526376399965237806070088656499476608609133918531729579195887355415196387229978537031780913839150388909147536796068282379227243749155048463560223979646681991540864700604713978841436426928727904877326175286325147133898895830269026895855049621765231125508736147326991853457934392165731685781192951582102708541559749540613532581326800126585896851559990748143295048762938646211247444137474382114969552367859662907407290837319306817275150243482822150248256131198716046741028304543813890281866962554162685460434875987561807042434588347422527576900795554021521388074902589411199831052485288506397312644552278544264364849905116635969620455063405642919736076659338027629811398281032611932804125045230233916590021683282047798980705562480620031334967004988841765703108578176081414261794346855690795142152594593472264261833406890933698581767395828349696132259628228228186424566754074571652822039673545313246727088611167488267739621771303343016949507712277357242200813946096383553781620702965564637146500653343985996521032440315384434519227650525698551015962928566433313736585226450455947309244866388860245380522932135279095517062799687736351010230990891494451975494948845851468473255375514429276473808646582408405982127075296502825299974579139465712383723864493698826404583930240139321234231263756725938814987823190936027755705816451494776803405664955031977810553855639321349500856561360079848767590514165687167241477292632227274817386016538067257688510140747904556754194443250556786046126279106302952223112169833696074970067258806170322671276101962161095958463759471659036467064139412365392530442553431392746158128302147730551067735203774351242114466814130313503787340572180015095158427738042806618118548319925948965308437513477322331707502194270194631114623613686949160818708360451870072955086807709315485177701058123863640807738799295755595454913278644689008339667986508555190831013279703462417084628479233192823194378041714448180945508424676681577313473591729133462567615596539559948041528688788405503667129208373317878402838781579119266039043690102503189299697383500250782205012108633726566752440044953971367211754563516661667880426445661977754590824213692740757678750805359826290988721100310740796697513268869806364069337993622754804534899608230683654612084695276743474956200971735478687003803930526745223294837593651708444391704320199897210498020221261039525018029914880788283185486383014576529613858875207126600529795174244535210858694705200884024757483254592234135381769050535848010640570471384407846363371121095369254185280299837786334958053231082143976518132376888827840540206844273921639017142222946942204696236672771541723393422847321489910445966006947986774691008258734366064999941918507308258777374016275160748865845628197890157408900472062829307679060943124111446429481577951915773300012140557487685070225499460140678510126612650871886710530577184810913474949173543929659966680043256694543902708944698657571822009063010444165466855335901148282767882352392158686062647352197053926281933559091474386961497702118553559097504661440787579984014801211343465792549971438769594617576678566003342206419952113768070657591151019585391678529251530585330660951442759483859806068496254920008483079393223915371591847636007804585573343938080881542668045364554641896325658691027124378201020289169936050078260049499230060644081163277708668958495640904457106082693601949077883223306686858508106030743485603655183257293137834856035537875014988515616833201561936503933417166613916972562460950020966988570681672354805866098760257478229574324558817408546321867782330405511679459115766996616929614857258735551564235794691888887013218438233422515372401097319992270854081609222321938376473561150175526575223508878249765280144144383160040853129859598880512770692455854898074014804944368336820697804839542240859886376593846598318851172215714331315758922090244716858556270033415183737296399226504220750689856392163277000678077928994215352328104829852814451615713237150520464547662935762189836674441447679178646930259145957400364786446613376657612907902447790165947808325804999055964625994341312906550355387710514728047972722302022167034985453135296467957721174526387166503754367003613359112435914717305831111963605325908605309781145869956917656311415105032768578354478603215360085777189886391194190983185315567828953356953055544850836970208167108185838844487420528924126939040223460012743461968920662598289607821849293963104106365538850229602420350139774901958965788780333870568495543331611655506414842226234516390185636105960869971263466398984076548677367021018979683872983488474382134668676533606216368484847166132855181895831035412191158553559461832512616735815773517889633133297085381147144591401958529537080361238571022569696569324308203990733666437750043320270129680433007633842422135333898482397213076715739546270141872624611401394037744112143255540135126206714527250635351150761004289305147568651332872353113367176403943579650535150140406134511580984560944520288961964088107394542404008174411528669091552960462633068288487150659383863057969956715262918786495268599530895181003325757792875562615602744091521865205098802629252249890381629453636297674451583615670407073549792436524375081439446174802590916210575652431953724157179778553231707312436007382162967421264582821348695622479865638291740730070424094974687630103295495230572679384610941573778467799859038122400952104880086837436969695072022442557242437560463323810735373466315031959641517266945303925067014349097431642290118073803325438115620437502431671202791307129303350216451360596665336953569918445486223353927568364379331940451088463134860193521771024196084517106834995835599303420577218788106322607787893553805156789231498166744914773701235958156540519821901900350358446556867203752617211578024571621667505431543453795260232979729157876037972812237173568829863833431989654663824969711863379615802477720194565480407980387009559888619190358080129131855578184993585128403057268361873258425654221298797162377042089379309375419984714699089839408307326221840599264548475578816917576032974296417917833748578076101881240629767941963437393568848557816979013857829472808099858943040728348967928506881899083641265708480162900281435946043240669566769645965714596302617834866736542998892714968624307845432720907339411979074980982856452082014214473117501121878854422346225646622160967264960628949418802358302669638810542092913429900992492431876344155309430560111262772575591971257681783344664912802872704308465463469091160853897406161993071374053736708969864180630731620629312219545267346364351194502123299363271032283572666813348483489879905011029674346803750281065010545380298486062976166538173514452267086707656414428675612902646717966067811834004083625192621634045519445186522115903866848449660112322397318050243843340795497370146668363083329573797894732543921640789179992522111855563800365738734147784562913832738460747795347445459300748791011928709535016176277883947640456941289239057939581476277376076950603194211561563436200163247535787312309341842014253655282004488991238072049053193000926926028945686072487341971705254621212273711623484031555578391651350350496390270891358240315595735757763993071401824602920844960780197530921188014402872395707010996706523826837465906421746355758258604672517658875777112082006101788439532835836307496853366634239859444646003720173216465370453953997615405264595039131048408886185867838890922017822450544222239016285216900005713669192903118450062412841007091636929609245173292420946040564941838052647553331322927615804326458613891717657128510844321868935476243248222503402481500929972468574977319433026401649688250293537466225039995129099668530347837669664249092729320664510543980064651837538663109546099082645159969956070226607686264682756412655478919566518254660930860268658241024990414406987204916661926724191596552934320251639579343030914123711146370676992904232042556076152692621023220303083168047588587665288877369978184744945594229574254168308752475512794957992494757479214349256200578729449773192810963459678954416052635439824254119903040160995124033274508391774725371557047169474260177482484820658766729902048525888593422117171141336305746269013816128131437994116322079389893774768924800835414070188965399782471014793833202782633184450492371940188796766031885137153999851197037916759181416143890846949788540946003244074580363257093517079705920892952990730813899895769789466418267858089133335075585017121852592388184950202362407670981784524590069214716404057664898138732460746432132487073331325746034782457262824002714247029233113536561883332765615177369664988973938569474862417561116016404586322126615705230054188901347096768839378781574260331603699023970454862603125093778589951181595067088695960890982744829462820889733204299948919730373802197193638360468065921599298974077062937889307314547987232383926601217855751331150718453449762159853231703223300627365793338014289786121177148574848561321579095697963412160992160656574800880017760956281880472311683031377628030696132557823767232959671064403104935969067721804110898219191147699644699003943471653379781522716864112070293309610418278087115709323375674748008390031238349836835595642305489508200762704068187570185849605626336404117124264645288218162039383917744676111919884029197275139013678128885119525884780800332953427701451688844917638304667171064345504625700204699888006553166149334311911807332567946798597964306362831936986076114559265570788576024840043322856470076091956654904870867895724048246333266690477721834581612104074995797918951575417620254603762738553518876651712647843813964295371289247560733415658159831860196481609312816264730187944873111800395008725789603515333359861203826746809156673763904181213715250533912071761442432184909651015908641870774695210024500296500158785282247164228500383163710928996109478510833100109563386909725199239173138866823786417600330477965596231844219554650209207302902555883727911212317773564646910838933845592101976582672217823563985179297713666543886426873604025919714116917847770140102486048049230397363504463156179201237378069628588969753548562005219293742997325055750350611415746750251806895567678039997295448714925118976666638701156290420548844326196920643276495346619240768706039357260828128659623918059846376721713521098518101645291264220236010336264948954850315569930571185759943624660127231139826854409731677980699140653972719178343852742201593182809418128610063541244291011615721938183146804816049182397013563454912662043982048471683463028652176888940862705673040403105531094915219706376405666324640121217805644788827236063109316875310001715985557213230354582293562060447334787948859892848031595622199902540411268780517219076713598569665469242522345999120926796780054218981510632563935831227801341533346641507764742537776576370823948299035530089167861998126023908804119406517769057550138213217091833675972246860788039159114964122371959929573082741309288134170807764988162812575440343637949553876379218644205641298078038903059179530656817322444780300941274532690114478872166662822907620222790649431588595043762356174522750372186736066878407340761429898463163215759866213420730820276118735487285370618515037079815793253504907875553770907783164915625821279948288754362965710162313443606422479512002277897754402786464316195027625076293322095600312155158868395047549636674897664979342052365166291888675838133622085531245073105041818681185277286324538781101092417747479112751124393998483979940734820634780142648272098865506353229479785232862757801341735883465367508485425784776282072570699433596842205223481346938129186529715925145331785522821832809081344718087366394160876366583076232388824411275841374592946064785210822066093107159760645416388743724870749012442925393232580331293244867786684454733527893998961144868516485693015629628467927328485007672246457536931428778803891866546068152464356833258924631041671470262701797898180072250591216322510766112541929091705188389330040931450479230987182264147575127150084793465557801969143237618487166513642422214910151175130557041081706085507275023294657497277068313830869508769458953896447437753591995832796325900281003308316260137478664755231375324891310217240691423824785253798260897326860165248972660875161583349530304523730090298947009220926763244533502761494279756538539612600543264112244522994524706172903125502386644420423766543687138646430197150104233337882558515534592125220669090228875680085806290627133982503926442587605218974893477101639449779749366904624854342813293601709409115664055204780251889231520940112128362104007095670215473667370489335442510429177947592907012230912342504580477784154493388698348500625812265124929876879717547289027486307414023183451756824223889374752528738161377860538764859983543577384576430929440486205748120171390709941085881868443836356982176739497340085640626351025758465753327928118734856279571228760347789859620779938894823227897299651443519504586795127224352342085150645039696815624549245814702175113289575170736468987515121315226489551058257873305447778132867499032651181338177092905153055876159929972611452161283503165389446979998677438586231018705864022492942935259524536788436699382884854288291172408655273527624597552750025518498445122558328012158189704058067824611880510373270776442749240919404993799772123896041796006155582781630782284238199230822742310638669728272953296980774002696427774530038402536645676751217310533194254712370826696456953813819681158240541769083270511345452731704708225994905067967225870437530455178629221872203711706299173311863561585621858895935329060227209790430700629838152424430322393696870120775151935326625091062235589408746960567731566787428795353246199570727487692373131530403666067610105797037402253486565602946434238968088107485547255570177351103316929175504540252865924539757718511385111584342348795399769463359794770775350331734973306190772225092192773022461935431869125100292139439405182136711586812754721903848524184065542745870912438491788599968285820392639902471963309541327788323504458614497869491308144820924457811896993476086472778221985195352693281312691729794318071195119825854098130192077804617389923609261772244379853222252904069071109854014107944457475456498171149413090842861070125705238515917184374324301622519899568524333422130073912360270421169951110086284312331657599498515628842722063913799443720182016501120627802483945456732506647298038931433820451326855452285170261646429166894302037929070712294360747586788252849800544693863483503128674674112707390236813912023553222434792136078791707119795267300485186368483148142648112639562098482076873802116106839355182614117155257919624364914811136457379532506525264046910837353396039118758965010125478555590312060436220612512445925698111052405641057140930337684923470675483006725253207146874329894194557787723941989287876776681670660028697203402043605391385473591143501894278048210011390968593972350821424870123450706449767856482401829331881951239121339700362410682351548139987256113601798903003040219375969611230678367420782724633193719509370633113880632028507587995926967999784305109123621079692852582002361341705337070644638631065843217334185052763827219217175455546512556814112899059487683499426996417871712810131884939134727444504202797931490851602272662510225925918071756325993467899996079951560177338384613819341715127130117261605558050602626559440422602980801703325689732475155930077153888956670851835004389274217406005878214170571088292752188502594271401699061587532332572979494562420467455181415938389007009413941078988637906491220753582230619674093729474665586712413922734772761130498170697538462002936342249008845131638830835242646196008427196557371687004862324858906993490645080307336380800978804054505770795811842036126844193601304805837564634787280960182509994784706287259267946468651032856092693941325687202988764880629436622835807803317250465092969445360483028154986932281166958966815550079996497976965592725379917172815475964619957437713822296661393616652962553330374775781603931148341997109426068158429977302409268968242689849826726082511238585548762633895803159482241178508880744679654812492712832553054868405479392806435496609389717247705808064917363709857648586812424839569250004965727009811513164719010573772398868021304418975733630889183889975964300225932904263372681294722373408798671215641590972588327123844848923651990064707940913713002032563141448922521967894742174257098498511006495607512542092904276715606267976551514057871747730382567574945732726741137386120638019435505577579092331684291594399202451956841992676414226025620007598546503150374625141135389552817654279680983588239393256015320387778166452730116433502703756825651671140815054330447862188319766963729238957411445037573722693890333872932138007013234666840941537348582156345879562699925426890252866335834023146692021159098252433643044369612408358640706509610156767110673784595016033500141507811471604225113095454225492885158332614578301265931753113219944757783939342289920339326435580278066581145445443614358982723278619540496288023374902816264683663017940872910308524182065197806613917306539897827488677492264248620699947251303859265748495732268221171361861050040558810832920930777198372036887623490145011897488733826929882938958109130325761367433942637400655841671325994969113193686396350321133954052828299334979856507992359952654576874871203862848238255593672269938793439753006084769391663175585235989610624548515964399244589376963239132328349371527402378811126554330365744393519095364916994770313616693039320969259077857740791394924166805623378555763177694698844740066141014308321189643677638523384233373002984297026332756164215885625582341744423404835254936908628534693512111102118082635580344519463452912804562522899048061904309515199066774923876901729260159549130952893251949580894589677620923733845087703013897032684277124334310504948953277663283236306359636858542711229497468728471369596696112658165767722306560992602722762955432771015487824208577127442026690482981501500869775050369877286799986209803295700678611456354328684834517473781260244504824351895516386481374970860975550616903304900648657937814583652432037361549603301914790951958294301772522407074065577855574837996386471069595967899526513902232505671288577451174596027827091325554769417208383981269615567271606756877038506007430398382007909216392301286172937093911998546516842777082824131662308685755807805832836500159001335877438514299411426471420930418985245170316827160756261407602570960549116217987922537727459058580628443504287072416533627419031013883994633374019139679870082818024484854796262156780644792592924458081685448863871209731337084453753229366065372777673702633927323693404579758918758568501572406680499053024366596630946667389397528956639485954570294105194248071147091828623014932939172749736583670075619392366662347895641987079718168515441137997029362671069241953407922612193441767317339477731930529638592215911447248769337338246431354610773257782072081222335660642226886336794349789423599463504014241899437386617461236392769607999340049848374559474209063907840937805132277763716054928909943882033541035394267962055765710907222115553723863648909314074453906072656268525958619397589183133639201599955199799788099942862715917680877667544826623727843343160536035825172981773630277768621968457076129031148041998030082413634583063760006943274871146759659434767018573301331267714242268742695319841598042730030385650228523300017377090207043769507002102700941483364388503111297919063164496361269771327369744392899816514105821582220117036413101829266443482761578123843900252667309960652077428940122100595021437166620799913218128827386796106401249311891946632916187952931809424936239693606528444457370337350740694311186589768979446134029994062870701462202926575526694386846884518785469353058239788372852591387341374373004423487101416536830580535154859487976675631031294782355350691960323391440758972405168738223565988929631732258050062706355661102726546848147551946635965823987109800004637896783979320768479451611301735526828792611124666115997785673342897624946597933357997355735323509191823749693393341078210539997038491190694191148185998594147856947710296551678318320712293276179034178783515264522316324197343448077397902944904973909811994757466454339830792100459041249935839965839381625843079468982219140447289791483396225890512446460229782354730005256932217629115299076773470795492246574916941676193182392951008357943614584828713844392853968002197451795119286949232170182998723037855226006929559859259527704521221201760161139294640022381694352292008380577500162539390924859502652340524054583114608105460989518912435463104516569212850995537500021519013337151991781471997721331358517236265641443859155630998925694146340530941462207973895848138029395527389569105231201047591928758598259287525220930768220728497465415385158365746780978465474574405139538322989993279290649568348472043606480193492651526685706047836815270550874598537125624275920805671735365784800306797648839907818541447487119773875413645736351999901533588639503206145576827009765218943556978759672495466375459741190108166078698383477695837900563990633411710284258927756731127901339047123874379100277655788624549384797950466033626172110223796602248388074627905581171323619178248022163655567221204156554134111952181306075679628315876056084073706717000814830038981105513568432079638990568139006832436996818244653352984383002194339350185526302974073480371986176885626678096350085608926182515459789172421613816123448824030590818057353790911200590793775586393764541079998941417254063747417389641127591193962216192111853879737554470344805002452396573592556727458632018028963762508080281533986301938727676458901672989273350767200418033370629148806532777248372024253679682845292758999149442552353399303657333568506392231205888476999825795607846643192726734675081715007343638381636300392416958142828079841764561868004606971355966806054461468438902095496296368532497786011924496795708717477483621975666933864792147177897038417030548736717940661672449493729999043767691355439105346513175782299168201626644528892555175701777766519963328616422344161270552669265948260494918302008717680776519802756735171514722163161430388503097683358510639285552876389373640443247316514949155836223038301481069420935673180873477711705618150167853322432346615927915775212819800515288637249701390502039245299918904985038563564866832588244926927111812605520633374989141965839412245792001149212540448558049586323919875988184929239839953968299969285582762528375068716534658329237156352733563770083797675008539508871915998589384513665155219824046103308497838696455488421339885837112744115262883168443079133246097977943762925885252784924242269999073240672616393693859561079241338577050069657253321604746076777023489121416844804687211732648844715093413688342038077956726291460598004924872591147630205938534235005603762337263825936222014504852165541307966822145158140349569846847194990052679336632308403579064616119891623910579081974637095456699482473782911903039595679498602498176405056510112178578908628157713938876758526100808833672926055732051470131990465432991039078158207418478137730832616416636831042386925141297381029071214874115745711043233537741801538614526044987286071445806206998966646360205599728737707828280434699661062321875218738975366989991938007972748117087881620410766117423605189921741207003914127665513467202026759090689434252011594430738422140268186945413462262435620958471965054627526862754183858005043149628978017250148317526800918297867818924629810942410397421322882235851162519770732005140111574093584835818019913992847903053375389369151160242536339466530448311456692469755778674650652350259858009342806807968096583663160063655005497414082044655231987381871581718076965151217795663509534680483348919972255994715492009337091258844089486942174368336502524843815167211658651794731671385399717671218499260492006619852974021242361266899019473395968987921920661902295601754145176965244116481921415359495190801595047399210274698713454266085682536985518293621121311307824280685669867449701700727661786664449176733900510573132811382527701181834280896296619173339032511447260937721216704680129172531622748462808084857448975817414474080819936907704062315523014156298928598270946753783250261055149088970533706653578723920037625162009922942506021972106440776574321001525278574507809918243216383903730589443359863783672482471196550064823926489291901454680202530938777274199013088994258428594166697815282208022934695462457282625222380750947907120323342323616697909710532436074435518522705089699442325628108556082872472371985768738134319565324137831633561286723429797074910675990094586256160599404425983782788522714187621531496730317116165375397175584694851456111602685368855914145087438615045833591155236198633562725113832793743634568073159307967919205261875509502821714033383788296552689227673213922289048182916821632971706053513883282532973419720322237814950223282354236617730564880881419980234475556374695493158817501524679759210675615160009649800701511186528640407572901420229585349102736673531776005870201449649060046725338849047981713525362218985549763416306531048432612580841858679098195236932320846595752293888737730905225744640960879766760472052479290771509794487067383984534162619896378131145359372595066957655417440849907400737404810211564740353427308290219045915156965786521301984835961108819822027675322841696536951604970575729037502750036935686252658162184664219230906453614055876862586788241453874628700395778106481304043904061321940501071670910516758171512266968496653438821756583944067322976208257885685204488126665877687144322369599975390167738650129000165700029263199066790140994768996915179927767208541879181178305544981199719819891224022914075927367105004461385181979629999610543276422784622847268280219816581916791459174546309615360416571173758333086021866575736067025454028344330251977704272103082092881803559709811452076451042894758125991735618335805786886091692526528573007509692885345768735921406382710006223018793574999452639299722446937674441924279100777282633289626554207324286468754023448760750675721212723480013795405800115461335569233448837062840995847510734099552671705786063201677085930083098003277401654904285144109106444881709376663522670044910604417424906853073083376717652426984178057800704170773217590815046248157023977833625770994098590273126628316855323019651607237356597994215724907838044915923057100722731927651238103950008527631323589812139556552532468823047912063280916319734988551265218051509074220853942853948705280472627793019968428723251975183064577850068680187438412341456905100967328354631158508315696771757863209774739011907606337352702527099391030713567400771769528845170002498238849671398109425031109385460654880738013570390518781370181518190347621573708013448920760788608070109782770630547983281517648920268286443581243427555727271522160208431195255377186381944132609806560369639832950683105438093057703341529237583953613687814820985286054301614351979619740125580539519749502000364854267043730613206354439746694996679652785495739213272077949460943706146364004608739833818860494773581652702117948562484682648808384720923975125334992412149724181924166460743324121371363722085197884995432283545951329323398645671359651203053931829707399836640182147223372837987757621117740392888271838112581649911181745729357575786650775435860147532071923959846073116610345258988782636127210753597551732634047124975492638039479030451133250889149270408269376826898179706111787252955104757066335039648171937926877910678477181206540687025869594083554098274141730276428563430226858576269500474165388216088588303023060189395176805715329950636721756334590807811267282583844289517674728374312886099325442558197205173208512897165557899415314759596626766535778152297124443046277560562632756423117069316154799793474852015234542926910765604455981469523046083255371497378479785879981955678298340254823477506597788810873273516975341616872975107662236763883006614930635109862141776004947781447877715616711536605664786348963068163374169068782799399453831269583212639045242681106293383232799652973485566080309323125660421001021643961882696552450820014457142135075193074067793513780724486627565345323078872532200628647678586881938633983138387740354463836530696663614724533979914603395774243512840691745597725517868335128745369894457497158197728113448403952167890205060655348601343920998462757683841318942110114552158935553095417415385702545925463963970695886683644857344972980357694790109187122010764100970095538089210724383694282890730222899944178014506942308853650909355745346209331626057047536773094116634672859874097676226882170386209636005684012231968624443971486064866332055171806284194819304077072811726915292730120172960952684570827162388461828216179468155635768231547749804634709336759184753822258060827829618071814923304462216595611782691245080200522048539457376515697710137873665792985685227792966572433082235145933214526953573133874957716839720668343870837714043061124626068676748022215687032668829975847264853579585496666266248316298800994067895970467169723267254936831931586735336347066473800598400510723102237379869230137157357763128638606340405016477986624366611703901298522134511689901485732700733532740521042701880320284138995954456068432053676500011943714703311669218528578619345831537534228547358699515519901517208623292441682484321766309503620113746150133762047572507127550677710628049054476462057369439164189836468182753570917591020300086626313114191678119826322775548451718399037953135010340469499633594670051941124084601501313878221066494186295993587213565100058269962232989149398057564184070673786221692083370386193098949237483329504092203419987673111480307998534317618005444179536203655299714761783853586828487402007087753533333701731471087750418469677894021940110575749494549452039533675240756002130636713069042821392447193504273816582504783046844113281594064365182545486605580127623690865933743694906477643253931974460943814832794357357923880054642220808428147613324513962037425333400254589856179403457717668624798309290398721240740393335001569270790913809214664288884971455567014989342593508014984846094438657481643453969462837965254718870553646082760596456485916492368861806967384695277516984446057155207685474631147282060080330607980047995185535860445608059096056613898865662527134898347243374663229713858401920089653442216180699907418786024320606747562556885563294547579913661749242101740551517085754353534630007519630761299699850536048133189042069423272561268675981404853573150992911583461325094900987744677540374102539300640564639904805482148673009389002295498403651076545738845532264364348066388206918361273500739560289170737181242247347308711796154087238232511527218263126727398034766526980206035942907550545717305869484100358789737268081496893069102145318081503099157353038398273023978828472066524016827872185021699429297642013021726167857855193046089308482104406127335972644090530868813682280175686379212679837067393180714721502952109542796691845162440445455112458138188509955968869545864074212338329252926094471658226514164005414306742676235977765440210559522850081394985390711285495290705801545658578656639789247970263181416585291526726029339054993014107991140647998942358606268966146733748360362591290951347523913421865125952599482310765200533718573876873549754011837351990892313242150650402615824173700159474122344736889938113516766595790489891892762459243713352045214696911871170918671833109378857011268703346920367289636680764526274978610618313043391419457398873623452159380929391693913521750109393909154350307963898440246146400073491537301759606339793451888197581974467774324861275170506970306948364927531951292044877949023636426636402776495845014980302892488610529581708515973011309773115312366549381413070628158669636383170615494635282825846175076249444643672068087108522256108575999248492262994515108324871086368567904575510911762809126805731101543146848708402370199880964723328347358554806585651608916809891410418278838766490330990896403985269548333883912656602668355515619889820780202710562307769866480260800476610976023929554355162063782491750037859999992499296263532653025982075604916070797883465893059791328779903936534130133921811787307958010645291022342372053815051683267270366441316018278335211544503830656308844323730509470964183407797013014699409914763333481961617014411949389172710386350794937924577061318916844120490211766919598656276126467527584916864032418167859001818102598650364231645442625149314518224903954932287171388857127592925551105314751376483904156368380526927618183672437549230802461550733258138741786131614664689995966211748395585712739390567586382486567596514157073492004175695571646835407279020188183571619407649224225641935066039802399028950232306053976216711437580471253883775461477479883305451059850861046750324191778450236843449222221488841063877287565205943811327880545887256862562026685579731690820918898272309743227012184710311692640460547729339897354267699660637485140995330520401444261278007302673550715028213067946058517241263895000430409870751389357383746118284630995454054635174629029698380911916714419266204595024824421607239169271443227462976396836841431251864910345174544752854922454855501503188413210182153879623264078087882004114744700344401324640260415804587587786144907794517657715300810103318131315311936494180445698966431908569826774338147102606804609999291771483784291646687730740387388810019762298895627233423649905647081905946765738642867723793219260365893190374978552206955268692997855992391920857787818907420898012192465578279843235138392902643003138038108669359017789455160652654429003701101814093521468430190760815687919116566931984280525483024256999397266483631831533677650535718535035664552323322769986149284344135422947324812373411406861773562913511495402408601863781793477529100197870922295355827572768208841336829397690526296823285061561902900912121064270052224865871892653823843055565407781770836422167382747102463064282010959206951644296159583004773257235479272088566796791004617726745601273970665722934463718028045355004154004237006314660596621137918089906142170796562002572889932729128030044846924994333754640140502578980114851944444349202558554007822148697247265827376185279394935104261121823438242215393684559788313764622183560670022028389296967582054256896322046058052901741000334061981304455574521956402209606563570588571864044154916357333965756538965356838812402341901672333221966968014806725724992737211212009384056835898538244313034975446059329785176965260475125121591255270393004406347508632234461367155163056393961999531315790337908202127225747822698100942861087493452970738636144818388922814430028615774343365961740918028499910473289082626712618315327771374319537113754839263408825454853003979313882084486932560957398145256063440496958868785049317462058459310113615299345296004166577301257938284686167561492215205558234366905231094637981971308686471374129337326326384679938660957438362950727087410600018013338605430915158236014571567059944035129963621292817451648848994595123899422083656657475988199096293246885353235174602022412074799221673029559067036899449624992826665308144067316769664338913909693740485798755158153984269849017466053217963213173910573970265463929130241203067681145727267073490566296247836850201963451911254130795478212509812961481669539703874528078561369966843568013569669186465638975583700409105962214909291802158429239344026762316129557481671587086025505986999059950827592280060101223532743474984222768295015715494343932032035378399380243332292454275720990319812867730910416949475532767168357321070394750208733399583570462814859567613832491323703682194510661182296989383102791372912701878034554305219041635545448460132919010079889947411160225616403594931784680879446405484514799218654507035698201285349614517614445302209732258533504953704919131999531264676400444803944338450051674761290859624171514876644065636489194228800100541753915395050754861610279581428886648532203618060110468188638991671128265961395217980720231326931541891638946822180673598783315604158735631488430635929172805902013761020075202703187909065443783852836945814629144439489458055206071855875059919324359140107810477163142087713711667747565161582160960150038665403527646210806462373097855306304007731673734221360703179183966257854378515456780424344536250742722517692584954639771782251798683776528028277719146644282947048954004855519104278360575939364255538218445434787140534473362750715946958791018006887169514340828346943523004062803003772607256422932564645072933444648166215065166697797683762474198725811741042957980989951144475715835033154878928121626871476184445574480915062557633702159525780304536238439130576047135167778904007985758705951928302417998048222966807765193743976775177921615679572998808404618938941387048743361515863912004579422051914287364372164536894020823827490671466823946578733384933419926147960882803451938758626081879329649600658866679023064189056963971936555692228743267682690124206921507158880773258221988412467378014887146821911400698245507024975439152013120189358329143755792611112648805361106208040907044247814846277987081883054144740288100001582909416115048925921603796495636435026325565789615708644335988847503656238549393965380765354004313961626419028421426789467997792889901392283297884286909891025887243021340864259522603379666463965488037065819275525211235058835356362337597250165432753946145913064616225213455315939616749311352990171423934183931057263236537696207976275017369720200961971924841537369332101505019181594657267575814773055398546741046555752244890651606721581398858611267327735326266274187539685390658005067150870359497471650919717775909746722741760302296617004622253562417048301706304881439933427264013207441656640590597839997776762500353548806470168735293215486665636403522039755542367282044132695355238524389440408563163724966997546208553819700248681349286787247295963183274241077778917252729143574415419604227721278100145642007030197202352047234000497384226883374538337881732799201183539802091497557487649929114949825314537206696578426913089776358551949495943012365841824813832804916963356011165225484940975965945590187153737519271181442286989218671985420519043293248102331269122945620381498937578313823742786040706821282961248465624886962114944841694066671895180325408747881915542863653476491743152382462404155568179420538248499320887091643520979743728455550746820326970669620010514638043432166403036974154573308324261927368498341397370550828593615746222593179492635609933936744870639205588621208400711888310586227837994525776052590694415660340736750568315346232651155544426044208770812787347213498885278001026875192147745425508226424073518902047655004682017659154088985304186824860850606061573227000276911840019247253290847364213661396689073437898019100577473592891912560875400981730667834689446217663583563317423863637880812124471802279248588116096361759093599929142309478162512321313329928868591123988923932662687042021426225605853815178869838710179367694884441512667309132872945696665931369296781861778331535542855931582902633305668470801931069282043844590966078266809213925802165504880987707523018862014327489231078600147461419581669238241982799800570537761320437632575057150479115887772369748272159516074569625900489846621994218843522874882360738620000596130871086001938442529338115891087293143566162883224642962463528157984228362833584767176386273578046125025174967936019969687652041481958163054050100567663331962728710954872705107932548862498183549422259422548419163440376224188936892188229117504649918291282061699399375546001429004649413676204841173913426897922696342139428983455807569342904728497557026931763041242542671263691076919736179845874677055542394735871783600499078508096956119405467561641374648236729869997577767863496340288898489171329459141437386167291279502898671449331949078674679878477331845476340519844249381461126769358944369002504462613873448391858927698366252959787201291001486528774154820259282641723107438717012559343947186735249643657731282376465253932500568098390475212228676662496375717423255756527457793769290998781631691240274678707463389856477531144377522491184696304668789020632114342411547622539403828385323359035808970203171350589658833104374914561899019995248384643790469177827249100156918558403092139849413979408696487649191690207699592064413805392793773564004524402725440805636973227777009780538740281674364068712460113650620860341621504170660316754111987007750239250082021154451896126774849400537311992992811808227239261991902238716221827094904436526379442621313517495346657790510208925684609330601592464670677704733901211606598526781927998120895372061268467684203456005245984749220425569507336594414477207999037943282547955432342603102017762397849957743863515144509605618593072130543294982752212363611075400375652773967415054082064930754533534529753382021908296136431397136620764376957598712388275367864243061804098736834758173935758948621939050101539801643942605089496814031433676499524577723917454299120886636297023671491312568465453168593076050399614103379592004321723469185382871551899366711120649651776285934867909127474957035960041844232661883895049798905838945465820774135893008289523629953813612114561885158442258327511591982838390321315326219064923804861550161072110776963554110193031427314890626063268134711444260660383447800966922890680830874809554014421718854779030546062441540109513140925604374410344091655494685892512480980148972565717379307983374019627248278952216066063582611978807583334882962651858481600636680107997112349957311139049449495593187199107634017638964089937476339076927130644929287426868411104865059789352325108163225096025163235970557173261732986881626278118112519485283615410244888632449486696688478269448926622303278601766916829182909448646613025835924994552402784636218633834696054114333655191219277858613631622407738007849923131342966507855312191297725692223525155333261464828027645660726409060725172847623911107954202968396301448430336113676790362834017891115940067327519442900721614592085734903929461188324205982217390147482566935370645457801760598832282576365229981704976781084043001730912072287363072550490414077096172717270019233174803414177957565541391316164098406335667945289205972609875771273638083139709063598209580541814202538750201787747339701234982403693117214348541520231549654946192877959639682993450762089862587896735531986378662694868929229447645353648945831366440438385542871676707060260386586573207846415315973880817303152582830726330810445997407349449091440257789714331797891468630852496109324397455965437984433705362569617036296104187808227216562448176760806742432409792214250230614572451735433739935030244958301545249168509869514179855074591879962078194342310252094828080964222351592715221477351038958468109037701725895320028912865531325039857303048764320682524794023437415186436765816705974447936822464071490250981945325491842327244480240957052321648884372340856870059055755236347300932793520452965535897658473807648982309786273774926159199198666869667115709033056666031087168019746728546169851353437162185345871159365208675321477929758577182896204749317394210997896732210150081015291981121107148516218710505002450477770271868870354819398039557939001748990052865572746104553617331924245247011639142676666786508267954400049063201791953538171887112266554942094357786306770146970313275823020094618767660225526471207484296019910430664510575315456235855435664753661627275899716679370521926657459613492732654996051130242095833188851031824674299336642557543686641339557750308034644105770305275673824079748023719669767666691028960760505259868016757849030751476508982700924771196553746962881542726818878283532841783259528715749663620971359551257658918398666749911776181942497834322858500263854982603365499632878575509060841991024953471403833699074594797167155513291988047070736096290330769147943545988967466846289868156881999840756039577012371588077005075079099651992121974322083041126154284652457205393991793915558512592395988623912999610523188012694410800356848912866835253049093433345180837473686117597646920753157594729367331072096333428453676723574580304982723324621623267661146272732713519240884953477110235230623317764112141456237884339627578927191917554059486781196503734597883314315735426620790277743747544908468117212107042548727887810260239354123656697866161128615890010036814955434156825603519554666918893782638804612453584276222595290476178925831282089536018899961051771033960094738202761617751322990687555884579956003141317750134428959426847524549413034735310525378960287542180743209877485475740412372368042715760467427879220063653373990418407954361849205627175870737780804424790268035266759042979066853664572572332993549850350393839422482022987108289296199436261566542022892506584912011007171518660444473997488792576936026127112153198000327602163421713140942103472421799213904723291180263038203212288513531654331890605287998007129840108035928517856042897016958477759998585375195265916370833165549700825992186066814009455234074850995265682104627560794947944694817394103860733375730883846442026478187510361964239189685786048871915304037739871704970361223943105986660082142999370782312830021266295919026218565325598137069202222386538315182920079495844663719875492770402761757598056251458932605890359754068137937768618060799600416757177563744351628309038471438564860910776265250535585649606059406789779868956640982722084096081574772780749170367884563776950158588320450918430024168462416507904967314863946073349245717942379150688927492716454024286794645496062296077987637305446544878794556574470715796913482401594627868182360076026096506540277940709095548367868893036700834948443606190559931035538928514344371208137000150587864075980477284435226146808739998036377731475597488356175112160282956137056859033346765489938225565587580951145414742541428704423886198368189620103746221137728007520793968040472773781682516855280390031076272852406804056845469044026426524168256025302000105629418988776444208414813962678896307868057260067480592626048234522605076847911920600724963097942706202130010482636920253460706901299463330002411054451733780912040105636113195786815057467611832464803633876219543207421955176037643648158421719303788034983728130483378881907673675044521118820660672203738503520266789166052740909673168242945879293897350290166163886661612248454856082318580660077353257382996763542790040951981362393436531467090219080221448282837512569537979158529121351629327175046374836396976990508559335636258041790689701010040498183206984611751993205803455501183941248384863991107541363283437319837019659775774794007097410573901841419330530813614651281807616697394881796073107428019832274717030162500147305486041667295632577180675238857693232925358267427352292160830313461062132030024987079044119767379767049066671881205705004754657946107184603976326785033135340529647520497568454858221028700160353003903911460700908953027587352745186164864584468374634324284327369065772769563298008160226338640592593687624550506160033777399037775456527790518644548778441032244867771022884122994050797221221627053496462054931445052680880225115444406126572892625092445076656822263982579189437909715072338719706127142747993931434385181250040386247336331687049997334482091947399747092339302815561975644924970738722126193211085508868993298253906375349818093235931809332332995484814684507023417319266775627996303002260080635100486441962653594899659506411891889743578735322381308842156969021147370573444214647020016141888607627967417309204389201659623880537749006984245930383654399011603484488173110728239890195724213323176317564073234511216147455233670997821471906802071988313080950433752879897038811854063620391098873635313248218253868370724875850108083294742650601892774747120847540001664075413923215499776320317423603165515272066019058880611323166998096214193349345592403107357923303091071548023293352008963397240422448917192774504206664977201293350323659223080231087895086016839892675852637330973522472329002225868863779419495491826671690681110736948353963447563117491506769089564929655223396363332257398439538602274531758984225046569465915668565102091743710496146189331790712182016837124026958154002161712806681642550597229937598507227462810588877922056101465654017815362541506558717040238503855472222010670236652845041233349621600038001595522593918957347606686410250921782750827265094991453899237143842765435422322678426718519639757848257493782673302900518239856607782226414644798547280831606970392930626156970486945302322031713519254652044136813584803042567740612680126029330490311825996907802170647356739090857521558201326006721687893845557129034960018803183236260333212140382203016235242696450001052335573795193839071847459561245702266171320075037154997785312996043151817664533375181724979919250382416061121556789518087903126832489553159129269760388865657171771897151787416494240017116433824453400260757296054967069015924020132251958740009963718268211424142820894356820164396788974487750827606469117275763529123917787107933556147499162404012521385344900276338207235373673777049149698558373051846907530183648518032735829893794498573401076079397407070599635557502828405493431893534462408667849431325899379664934061874802001836016122379188356813003754496631290039534809351262381619077218761411436720060639701503821574889738405462439284150867959917639039670107621840662776628808817642389692956039616638723145613322363576900139673852189705875582249055329871322789770039372086677597817394116967520362355357288938767856913492599389637198349818968048492362627337518021459795266145171444111433019339683469704967706272969774795097301787983445461612177213476451160118865859057642918834091667776973576590261941898608069054900362152823155468330702030270417010936960409569954651548375744858215335010610921494738865929605366465522998913207166676819149739715390975684584563658863517229079508598134484031896727244186730881221525818391969941776443566549045062867879928639012878592734233543642583397586627965963621650073750590003425275092111307279575331535469170513857993664623619584193427640928412327110661364792335260068402369981291554304241911201631698101678005430308086484416935244728173306198474320265752569917088417526872847500040226380987341926028080735425794769404814988884135487732179333499318561999991736923584438967563237547715497785525380154866554656742863307231972176673985089137894253808423615586091897114469001080039843422917936173148580476778074586995555345992459619107978377368946039821666725768449447460325987781386548143368168890600549077254978242208810290349406373260635507384241811733176117428120159538137166292830378046035628355581776758243699072643846682879201075621174625224719253849513281692612689858222971309488130880993952238165263450174136771407126808053559743412156223423471184990109589641019052259314066409727185854736462659676037645390681776671030989180896219891466989082627343053284905454078024865888523010914598653307556533393054493363020781855004356521861822097943313668804531888100790141626017649419559611422501899885861400546472531480422164206353024627239071505917957510961803019499427316780927330712630138862347580150915892683547023042992867926648765755317616613108873832790123191035271241052855464411125479297582316523138910103346507425839835358243409107685699594614333587014649045142140075713416281616600703048791491711250468973531596946009838672265455377770276298500908788767393166839560998548724200203550585058750917391811031992339800312991974616153566631684985897652659796877690295303445857025359436430814543271586468813158669753897081983230993859498537096836546191476880662462052329033350736559997249774335159731960203488287202563423413398010117230004282980293757363188153056156224468339705861302179843833552094425427494875702278596243183723045347063980633882246397270474162142207133146674551457377841171051097760504228621815945840970861386937012020788545628631240002013114467664390371235082733461356551991741981038193018396057557123417661784867514769576947860443347961753058047042926136793488971326373123348860865617910685474839099404449613423297066869656892872050036661925631797534201000581416999903263615804039054569372592122663676158753758595823372477803775667926632106660650774734432026900061640157863560515903151142115376187308288104956994872664197035197794596378671551284436352689028381195585373011280341610113905942041884830000215008470005597678248389329179469564190317975572988245349392535267340966956827350676931141214929057783139937055002931008444710009749954615621902015118643129719662802887617733417565234808032560073947400406764172876550907154331962089829730106568660925560300075105474038851752043627992847942609952537429020438023982812576249283898762464994016479818274777412942423589630321879743133200963129208890140706230050231771044861019323020380727322245430870138030399224613722696284205322344059893605839938755909320219533857991990692577288645698411481835273914256716162449803538790008466438753249666129934445115851849636802135277036315902144808907142550260374315616333777554387971995286485627140155022759465184361739279630067540309017767043318621941517784248718317484433588735941366072037434001266863667772888571806944022390877109735181917191690794309632379529882019154493242721825399245651268118983359822628490815199982737254107492606345176097405749977650250244240592491577060163549626604528659914093011132629953478198572946871910375153116611090804853843786124027946221421113309178095871637668026351019027619903243029810644629645985295093676499445477408931453980515814774759253085038040603240880099809582620889880411197673480304850511684920541980355655042763117766841164573140432777468233962120040994692883759793638956387382010492392279880852060524994703501186304188770224521905723836225718505405808304410939807950176674735509880533552704124418730363293325770436165645905394343932660056673330007339147631341146612948252731812002674301957003899289964480203586766935073181782775611885680773641611134440834147409876148587144820924095518182717842527725879252051818571521049966609195641323224822952348900056245361661164062035161084215626250500291757670798802233745346636019955712518731333884982128085818919592718056265211704749372302000405252661683812420037729855628185115813653350329789504458607611196975948233626395344206579799448188413332335028943173801519248961655355946303229085679290358325228805326454389274345038993806487540911740186911237023566374942946487586078140603018319658034875487950641735935912255916712002653469039475835281430210106040734140684147555964038485677052405031971085424679187726698090805239514167557176375940360044875034350469461052307245321618921475619764290241264248113440731134826774284994670280923685315832667660682477084854700470214667858383673610806530269992148439389420528000421809899111677489963551063356893711172377935159290032947082008511782709124393284730254960858879752602504119721763598327421098773961449839746557573158165188583305086706894696108057120524681771890245240713336575558028585898637933961044142368116711892543765267583107590605062207353728188327139166350060281635234850767527392262659314835317139111094906649993140909073466435849725820801278103784436998085185756310812422972914398271998120711596486291706402284641765942692332171396264152976066629754629744556049207502656177582397118879587005757626863732755521360865197437779475573009191037219563449238590976546716292927676274298983149921283990031367322090107352618635106307593015352816707920093304497623369694140015260886971473978204284119876329436621769018408642147708734730586912851511817655924851869875248673356564540342604439485642740662073639279907077430460621899918453207666989233381379915203242617334876783119515203489958852876622691986314502440485419825415535937594801694366176054007457091787026225656386041816891669016458252847285676367847635155813032592420703353419010534310508597907162132746185686347711129186520776470499813674397936127143212800698409005884260959422185934312747232835016976484596534428003317229602359672906591717123710585962052897074150408365639521558490902504358639301230981818502476709402759259476072807932294421543460152326339354036746274448489741037349383035130590720350302126262921417073907439821359310458581925271619286016175192922077475015353473101037319025445423694444472907709193033624960751690381138802005457635871920041017648234903371653343899644986108460249092604691768752457851750253017150482374873485327462165042883105909656228488963149133360883938961448172919483185399074450030079895422610022748319469923046561974322371123390612381936181697344673592741878440585008869283747388403456485019580372188707203175058092144224585202983052262897383744339225858051291442041861893706090152317693581639210040087897700700469607154391587388225926957326220977749175327131393600276666580811563837963626963598933638275478713467357989398738458611339861115924572558210329839563814663872456457358917827885881967654988019375316722044951264121412712908737028711598088960964318283710272585071597384159115983369437025767687554899542392420530577311852363467392388593339859417092611130155612361605391056951200535534082277036676044415701378399435722769606984537042653968878419964517081037271123371523423521706346777056744121926147982320739013643772164433480233833800207014524267005353501360943185523590728007440986778393879225903053970779847504570226338705578695352085709690386638183911159288979020746354450703131021597448224863162268230960479249676711421814351289355369333487939222214575001181213440785440305884534346522242758384805174949402153825474333447292793609454810025597064855900507383374340456551139754469141745789377795351377881703215270489721200675193054463366518191560585935183537295721857711800886262087094854458986976352201572059288378837428076240746270542631999039646156279176657238147633697476681030826803019515676454957335110337205238900495635008610598609507472036244874644444545081795683239615770775342865736173625639164162227061405510504523620606301290104401391203276538772336666658262162075653731900747140766779753845212082488957713902719133481862307830261903517059387666849898851836051824453211087953185028545021673856708860942406905487583058180266198702648397363304481989622798727233900450350551167437407848798189069378674924829010450136095906122641431351223641345474157190763308875608474799571766263406479787988668146458231317945289408525690622868408842563908017860572219580333943971137032987084156195122210782969866366081919446282753509724944106337253160484733227435907989646635486491747971983745155731699578154235325028603633975815917267990977908250564139257202298300606576563858024232430635060595109609163211931496032383494140605277221851478798990283355434311148108018397200545340998660481491246165278609592270424893426684923444871273605779271980558403740286520035767675857256627222592895035639234964103439583106323687401648877168377038161521946006161468642098829478258335768998769196257416822771076835691504418496374417287107368000097085710658797023596645392533779617714297043633372742514489029942006791956106955555800394395069787099645865749585987665485104877744871259020497485124331063408464144619275555568634761381070894894876872105921960285430519306745023248688348105791601740233108271317942188035446461254943086331786053249980169903731883172976421086756323626728961645925931210224761399717823224849297056627906738508481077827045429006764145791221806930806495544444248443591626665170270280062750542728883467589241426596723100476588158151624272981862578457902602543261955446545311739062812053013799379433908342317663141606762991008875436627298218512415929476723255320244425871433702938802966403699234305909559130976658962730098971224708815204946880907630588932091547294024026168728631123685695270801235427369648304231823759227547066409050523692874378512276020537562915587269702366747273872053952474438451870434818787730472554194503103713998147123737905163777072594289599774309715543254420829992158436550919875681736080932684286296499335796600843048775946795885091323484357563154237342367588224920358098936023864490486507046155381089899246701566326276638976344212559057559863778182529364691473439314191997319010302092041727995153737486639479743646226297120413367476072176381486737293722697027744752549628619275015172865971177467585686938035714920699999898886180161779816876950219242218266741411240161041207484517155748039475461656979155413530505949214265044486438676076563013319095726386087995301098386343572345627340532324796307849065886539123813246099532940453004477760926718461359919628073847031502947677554736360911287357056085485532183088337518280952146577556142157424519564982606260043557998388178368942055717695212543118600192030917864726972969063944634259604741041314903489689465420133814973173108150575023092718600403852482981862398379569430463893275826750028022533350624977629343199856878434350843659275236883650855328295528124373847063933663624578462734839364562623119322059170367222098151552343449743689959797959480233669684126987002870828448341399487918339619873085280004304248289737959665246606781496791389547166790047107084094179716730741239428743636299580728108667603514122663001146779164717510171086725127958034706993514292015742166842722300888459439511143028476194008612146371031462282097417726619857114052004627514707926386694984662321744905545987103018154236095509580274176406543827555279673124459899696874469484273128648385570146627754159516010647000716297285428610135271569876229293054553205723354801930490671737739123359264354524055008868532317082271220315005742353625236727100889828550999090791760014529218834939156459756949930373442084520131693753074591240380680078068201701001355758347296316348615087797080236348300418007931986762274350606652326055680951156877688455117932390682544619861774786563176558015481975201484506949798731822110083627652152177521035635941218732717359567340296262091372466572427795924462963382186027715849302274865961618765831831012745006728852075051842493226089867043864989342568051142864658400888962333276894215006121787217856690621328769356596405689265599576715284875217197902243216449731774496951057827780030588027834044888638185303796447451322001591843726293981303262968633724092163010859065845251664423458877449403989494623985997585749569678539957729186826924446230303523662631818147165867035118578534513100782146803916163724533608916563423323997280208178510515898810419809286018351576454582172396278593809580888834505360172706021716198962403691622919335641059341300647673300005512010576361329903231352605686466414657319172105152201004816258067615567374664341362382871350520171042263492044304518547608142799154978719029417045474321880034007981660617745138155714244663828589428080643607987544629999756757466205256966440932720576417291553140285179605776104245080645954673690183564165136017958919702591880413113046961061491484645425594196295268748227274400243081621311806954820521303908678575118934314742258683124494777158668976516674697894190272116463705919501601205376894897948182553115034123103456104708416886937353451642265544994641031810614072970559969419861157401645197607879628736231473077420840810983557500879782393503579115460713855260427859614928307167903504809344329955109456529251181450582069460289368002040592840423359077478245157305026484970506837767058452950758648182712844940444795442344367830516596337031428202483283559140827356041697422909629012382761525642697048074076008995546585306040083038472382147104488366956942548755528980967544136552713240862666561867880232479672379533094531650267499174570798110150518561425835313579523930322947404509000634455386621803994406726308832859548255186107941531935008319122909121342549989955224211812114711832735085640727294812533902860884841437449024531246324533501639901099764853398992262349416816267504077348060144939081590877122705375767454225894913996358066249099650782312173362099658344962463504268834037284307177547040966361134641158268068864140326396544538253779115082237892566205338877846412755510917650563744391634231267374586889605885777882745973609019334868709056735631717521091445634636536119347048795991986191466241652084477099546594568448404873389082404785587601914770841862761633905554074624003143667881944860949917376295878025971298842081834483724939606802197331090533487866528167243866420978806165629882247032738334531708132387232941509345354400262107325187853469767062028734510181689217532302389253173376991721800405594713118633308482074082227070301436849425524364267287425647173381060385114419019615457361193532259409256253976280914737693082247967901433928714350156905388823820477517767858501504871772333611170186629850230808785486935683822620441293040427528988196573889003514463098063091868238429793434613407532852008157024746879984698017118804507947077572408126361751441511765260276008147357986405861865001503482442489148069076891532896197318337410236598174244042323367069346416158588460913200839115543096112699191773054088288464887325998283048064156647775943331574330307380664634874915563469374588566992307478755895287261933551846313092830927650143813482769608505183750186224449122974399626096362951746704948744037568084536192364972365698038617829020187716998156124807823753148117599765602205029765948998593562174833307698168916341217989397398392953122084343156189112267616707291711421485533925335754776436308583472211616763646793799832235267411028751471749520591868546286349963373877945385115015278082430956186940542252814689873727792934512476983897591854200148266324646724850142681138956876125259585608184405552930848798926384152765265502236869455711217972971740386411701034314650417449136481840665679500139717371469374497121535441629376993678974634451892250457962813172765897138759476156976586355370613421291673586482983551761678313148596612913747724521059155447576854423903140788428882905640349207109742440181474810222940561955369946376054663951662440017751381102734795874621912708020556376860743506900977764752459467751833090730009876301484212918788593903010140503209951521169872875120779606181299888333908767821006634545843387382751357037534612633534632933758060485902701828660599642520680915248787406581474572493877404232621951137427665591049516576514011009334068187796599726329967017308638482400896193502964751011685747308785650871837604224645231067508516910819230260654251161761336359841143690859886105352476583633452021324972098725221368479861037394561736397912682288322395894855543475656930334261519644738968130966920740815126929315399699994538795714051792350715037913256347647548873595987462352421583825371586802190647026622585026658156389666276207457490265186488015523925164417148042816630324136092937500805765100722155975807208044745016884943530871559208532305696612813851932391650176981039696374433316613485311329993785889527408839102129017968787075647679228303949238917294978922177528845781024066738287185052237409434562801989132426469041933715022046317436046414710727547782508516321680510799831487560155522944544045609055424830163967021854246278985535077266849168741801335428761187863561443527548945026016120206008971338052903853204556821083397702965686514525023908377406040017934468792580523823582813428190775418938005941002788826488855511148123095984614953053991989789625140424188626809382196276685623512123407667197007564952445624897582407296900304148926255918210013579447666607981171293560898322451266185066331753005486824147643405717519681647049891919288399359829101475618312544769675094495444580424581337304275014943673272193494148291728108873650455321383241837582469410390492077588385161719246890345065862127296368727229650351782135930805845291440846288625144921436615094224267292864085491916938929701040122806406481574793297315303557916357119709009757282185511817178478432299198730495740927686360812042216089906783740618072816587996575339760764807035025848056504596565166067076560836135952548774391076002399537711142022581743511709941806898855262078090465346479591981255459044968601825657026597245048521434881973327314751938425167864426705486577849160919382312425735004143356984198824358866370154236549517237591045357720873424347027198097260184562655267174356277377132057821208664487333022225303398170973771002950967847986174091889288751740085717269136975834649548338398370228494366074232602042498030382567058898454372020036446244017610500714541693270563006752006555438575263028503013091048287186852952133460500110367287022345616659193587963737490562042610653699125415526131261509094505694429008733534033280042650825296748263307456523811984863498387374796623598176522897374408760603745982690113446960096129275194179282753153811475808529514711788350845203254083399373740676255106650058823543808284143328007773458057299646642155958641414328126406366166614776626748602237685113435410353765868856131750200148427692249122086349652268658990342654583272963229978509228547496919808468316453184138183503595258613123674508258953800997814131753342631246425002546630015760786876869733280389095741495265569294756710845733732133320482144993142305396494637581816736353228486669781426920186180300294501504080542642775891910809453749411512198004661777775980050726102699077010416212698189149732369938750245636504312024220820538572246304248348510990763915584762003467752863357240919084306725127007046525945529780380724963372094857852085655640462118012727604794074761246520494946059769680386355078906633506746724885289047932054201489449867380110607981109000236168742606181764134729474084925790525354730221641674514189636668557056769443128653534085044348366465336482735910109977550735572691757461099154931591476366004518717220400446163320558227577778800050712207226202170111429403379539199566054928845278140814563732687521491449302408103125834210285760534407139025100084432452556390368211293760361225802071858956351905122825748563602005610346744696965411150952486308354666417316022716422288591803676111817628709013002643327375677591545818109810708933117606460100102585334988232499287577343071820353716131293469080915437279881040306390267313732932689972303526965965587647623231997658298159755439836598794473590107598947205661732896426096093652599538119009673476487404811878612593692637760769885756840195865694041189489745724745942856811964176012036187997889653025427067040733186069588065325643770709209919435486690000758184986418694399892632261706454156474657635151886942445848299535371448815029516499016623601257066165248761199190445230358875566130351237714267532649562322906112493139687677217230408952076624337454175146264800688362107724648259479743469908063728162349699380899351399317965158971603761806391137615477192425657838369324438635059433465048856888246238303227542254721877718927327103556126794995657456663290701996874161325378698345321963844468626528363024984312424386417838450484006479597395527917942164174657971168098117472591764750347051357917065061829724281903400788398964373955029959798419337344247468374832416745526602076292374979593148853010240964604453631379139911394048646502063755929272867001743147961731154607599391223531495200233424582760900871108939117197817646496900357990577247744053717276254489185404886076360690252287348134649149051608743169336089705438582666192399612421448801085563953630092525635561904577873225729473741075501975181908876846558189319028390111307696922753279260674806734477191382953694274200222124885912526858336955445617265540457136616957013736451067345323513152424435068175546232052341138784839463448546958774647034799303985707225740524822994639180696698692997751207382379758695377575343287662204825446153970515830157273633684107503187365139734938436048201254722301619253845587674685744739738807176937862955681957434386092671737158527694818317546863147115113022102334280609976070815753467037546483105189939204643244136172179583287756845271725126347596139843393190806249063067095031306171806034212990976895748871499870532615398176539367572979005319445393215919691254134073767633903614833640329867610588901814667118716145751896577488523573766922092493827095868937089291215305309065661659311168373860977963293038271497324700689481977504565740788300675046290895783173687348928974116111425592308767515013892579532005392333429865574016858483646018729462154460172091954867051175511225070000080762579970941413995766074070835769691829828992303220292936126462641623048861104172003415047224484398155431455797393304552360298191702245254663766394869905416468569839068681177244013772064660887095657850715876373462037418428537391144920419858100094539542541671979085492915308177316048362011768503489071879822855305982880900010309508685024210629408974158081951932087013906581873616250990605799571118563489682610382094726047176466348490365947964380571808784987908395350885854323055971339695797256544101449925817846016968468285378420438578139559804137596209380102898147647425364126035539049201303317828056275981320888040432510327220483848662819518584102853641330738078297801553267406597871216574955107551197900681208272928886583150195929531347895813466566708779777442839476784603139719214459643504784896779205149603416792884903045898852711605093906852144676995464649873484136927006645011209778015448080104074786111828914616256105925279457216341878252684252194588017657958695986432457641934570073360140855385826384968380701775444364473559087517379123965193922326906731047375130641825756077345046967774837829528687069516486862952755471240542336480002240274765493035960355913267784813884443139669293411385780886149494424440765613928122116897378119385227197866781215927025242889700738173898316077367934611862050914228347598668859988237915001439066493011453532127885083489264760115127765566374895263243756908969198981938035138975677587960186129602284075491490328576499851030125417576519491826645193129067283937822579188262447407870967650977758657306784676274331137253445621758765970377742010623648964816079817832988790452452219886704298930619352167770983323728350657647797994329081221428821360017833525450880561123878123733006751736479437212787572169761198301142276477753336995757179181401078388845582637952886864900676244056723548817984801346760170253481285034348921110170141765494223808305544105000905024611853221686746827978864560568312598796942713400983107011423415288107513808430837374158966177243370609008080930083425403802047031620028540311147845206704015505246582151952442639507202210333285777541249875468990367486916368979624089815468728066198037342621035654374208647475994394319405494884857906540528420162545878741924853694316705577088919208076299658993581047100172342598936436290578446777366452896116209548170279069191833446744329217979826113651798977103135796438668296952340515047334592083470495599598485619619056876874283880904822548756513419800461377600548571745835692874460101785186997484042738895024240411162112327851819887224566169769725376501558692956095403633410566978249840570355566046979891210285968719653046054381211512284344469673655772333313655836905460659857111309405885969931298555962684586096228871389005131228436396245960654060803897736554510186200805033716591056623678005060542924995624846326446695833210244965883534994062531780980090573439612760435417088603946772686953787188799843699500414856506840231451082390077521664790194157970024294013046814631228441906823770692042559667184921661306456864130118211687483651852125375787437882677204461594343085365505310116763339833409198488515837142669243423792109188796998575501862978727956214996971243872963124656074324414599045227765361042366887247140493921996620431016195121921557065654357360833243106430827791838551702286651968502115498506872753470347224151789725425760192022846308486247576369661780492502520427222510931765022786633999863531748783097652699330345004207563716251445186040429479253938440105873145538085157303574004204373537518391012912253288529389318525716608484904122966516590455514051718489788093478230957725780943137572149647299198150829030762697185312704147079859303206161019212266452660241629948428286786813641365472841850207664348561248989147641568051294711364248901846724968072598189532135649642521187014548663255329873502784125794700575007025018679272445772919889020521526023594592987437407057957045044882402655775936368710528887473774573267315102239912463031177407168284278178325249055715057385431409093257996315257601566141538400824906285687254243503605555399105097299412202375172238121470868898007376138066216701085914448596326042736376801477902154596830546474073688105319941151983509950337991645594561626494590299717624335181780749198329790559729192851189581739798441127384344706151214338435252060814778417098377519294181287136166526262245849565773307566764662316595263529989422704404660839266693525709506624590378467206964627735555148970652672441341826038054847355738906894425180768361174444574265797256496416017426121201007645624253702209421573526772080340115426971894423550320219241598348791832286567783531896885455185401916370300074578584076627854508604173577720854097946112647453848761761582201685230484674562205145097013939377082553101703696782157758360648956210394377300149718899866961649357472171173576528397564771492380026067268480817475726907467371952382631808253105358970886684853653100283649900506614587294405345346562425603059255640725509707641410388697936517196972207923982493931245174476886472372570033782537307090410369493987551721334184675121367697452530935650217601256861933761980851073156229262084956049183657199240441415788080022510592343488752354334283200709465874030984031279311046012740979224064617387113258814313774300378848796166921347571127292075487061300906772020678860877142520632793609702825421433742663961815387984667791006331566833150877142312809994669663481281254724722371430154754642305183791581106285560624046571988303391719899496176521418609067794687092551722002482077966612304207291301888234650157956510621203838999413718652909240783528334936075427069001225383389039166593690126093657123272881988074062061312059677942375634529823487008644258918265713323098265701398348402271694124436686105961057812517886323402939975631643667807981026560392358689156808968833130475664197820040054119149245126789532398879720416019580501108605765757789834799085634064826161349576471660532073453230658173111772447464479685391533425781014798825422535329362840615234932515845741480634615809247878410712732943840223252589891709323964034582358646402091896560280191950583159343450807715230333455352991421342762443880756784297524490063380356667770073874748079546113508975580504071089973224702470133784212092328350307102935033856674777202684112413364690371510266022559241030795104517517771354907374257936733813392801787393044075710331928947446679763462520198079181847216239534205031527013988519564043542619564966685961478804522122885934215434540738692496833771525355223113914717562681184782808572271811739608111659930589436869500595479976511951587955055543632681055541243352879500310944740813862307994312610277431260210994758283002478883278141893173068410234526634899591671597378769374366361475929892952599139580704592307687425801871737514167701656195432182736946564120818668751982817095231521364640043067599794988211722331952698483489584461451723701379044606179173872656715025127773235377552035966543045180322003298416416501206102631527458783972619215879527381868083945208220737884773018545194342739154448325038543511295676065645429418298472098416764012262706533474384792038272139694817422228941402114056800278974325177651607348247255278073606490891051610854110846659188850180542044345593504340771619014023682642492134319288196391084267844191681437241131797278689579011549267391832046156915140783766033903477697715715948346062681661636852087876681161976932002936503133587578161375922427191676297337239480174368054974269544535405524768600184276281224646253808306823477313183309061814200520798206875830893993144477214523696613860830921840540022499091458938522877641591606589705376046683581088984635433868376843035797836946264996690990523825017774193986657294047835125341577176267887021046663404040941383318939810598921746954252646388867695011477181866511979895392876028877384187037709433820405421845108079583677213445773144028973352278318343636276498689343879319624841109890043836802658110691031880356122412722203964043114492823096584727507744326216975489800750731135522810479580464642181743813061642846416866478359360102222309355518475289601525599108465522908287538147579569392432276782402704394883687894282562235364761685377100583343683163002923651676543994404898325133516989970077977117432621492459812557128827812669274169815857706276817640230626307066778821565812006822163133587736018343645509719524588814928787122073609697137335011256912164485795505812642370644312764482808258239801499125192501871025757991372537460348334007448192055512490981171144304838876098692145430475297842335294742987836343576672675026717122520153671592408961526419605275387201274543979496413057624968988719019981337956187333690829509037579319337300847007468901242898116221831810112856488948721317833809449138632889727561009772708776071967579302466355071952916799312041408442974720405108769280094187831256288495035109008762372961335798850306740066457602501653291848485580443870629253377250941741688662341382097894905686061106322564912252338727870911940832819216765821529095729663763526757817161772154965534433008921149372723906945826759297896299491999068859262475432972485139954045114746508998264447650851531672103936953434551235599352089936804764709243582439506460901333803148816274502663882746693601705836309436434192345772464006519476632638510313607515448263969285617024291321557396661501551095568561009546997057794916445514354603859468428072898077509860911637602693952087962200142415916910898045864104584007794461408348930120335901753969824795327650253699098781747599166359979202996226719150288279830410883108499606741857710208861524084807235609069318904232846823194499915920044670016718587818023053097382501268933281366292754843586580951779468682052681656736281794285746175973036028589034488984724174815870468977434495975602089962550148759604229904247257531548201959046884025293204812773686295278725582761484330068731447033042071235806251558522026441574978341162044153187416335877830247215980153565040352609485404604343523054122866149652679972028063783120289273629619509842125296375147557214187135145914587215879862916496181916397740516226145393530339070493274542163291857975286560416849442456429275461322633082696128532419641776871535714177785428444049956315252767182208725462575682774721614076712091661387103801938697429808232685592873561566331421094491709557168058588477271484174511021942235966103442824477292654144077825830403720131911722853560718495383329977655494239148649545243365093688311642726464873367701161611498592853015254234429527426274498355483189099157355940938041848176698996648166130318978577166756630304453250997630964820512420601815724590682148032750250255025028767308210805937259183404253096547393571964587174823830411321015920288521618489757538008403170550230296950319568436137056860126832949341716561443007991557226124259362403661394024252912965603365110980700405439920542664397040625212304966719677477133415896285414435453689350255925797557588855132491739156016144560203458508693043612213771888812196006819327467419719101132277619192947894591192997925175702438286954457627828440678438514441858734186216753287230467994668331900753259991836576770932360879951957785588621653662524578329836197628497789025383309335461266065704463080354999747825106786518847929838746565069039291099136921701197908815285629547627651171656469533144568015999558619536327383488221474021802557484274779529283922980728242951250639205287241617559418835473227687905233136939538889450903820115256658774740575379150513850056687487927711752914801445107561102212471612588083523660329757435968963419503689141249909146951815577738373080443146778294917619365593029403952632057670709195509807383174351083940149406984042828131565762324911037340407468953942591321733351519610370311653870119258124101723240943699344121484573535677438618727235970544825214560432119361712729965652312825379376248048453191360640173563113390360466415615079834305610351185090555905413168015774845352625854850052888153858041912911012370564880574196468955132315423807483569534112123264781193571525359596494649990825653353463188652799732449215185906266036007599241107417580472731331174339285395765221378392896088132242545313034971373601238364714482478675687888915623919164841531832526926300948793854116328195479598702880854023606709709443335894173156532219421860907121005556784291960764181204921293939179806480819360622726239536957901263180186348206638335514590196989280759519593271629048321494822561263950169507389465357049561720594014502459651903102751207336697262688878541138027095131423550601933153232105532092320792864977831470258672873097771939052702519661392423391206904844569971201513366771304408056191496551192236037323886393095711932024131686193971730535608270849779885645191842325975099040669159828685274457748932315067347375969034863404098590344200468686782326932983272932233887775368218847087259673453249809453892403379465364917807386108824726213948082906072461495784588822280702904572505941510881169202699757691614423960177319341329508333699555035820148805736314290048256608102263031554646955812087780685210666059209003928555396253873504749961553204332787011840979364118768080094471753157065375084697410553591191548720329828848777900215339942746483114626700921797341609007583382174691326631976403050178290148225822187737903515382223156733336519235481168395375586254412666092880333735548745701454497483476992819517095062445183888537802743860942217701873792629863325741328898604651849777570739283964289152283650021676025732227199254773170853722070845566213810716296701039260131444289580897370675097772842541950152159896281996758768357064966888150949779259238702113981027684788560702691085057047800278207282558024472760172696099566960506275282982806377649623933845923501062226541400485971966359153187511956685596961594389317291565578803920699443622969506412122568983328156149839122821591066643383090368567371970362545301876548356060252670990655459202097935132157620162352145132598984102057604735559713717963912288460659242507702978624306330612839834171318023190704010164978068810911752223916216155419884676615219121874893416223867972010643398402085682546944970474841116696020827686006649348609849919844924666146124142463387941067206825848701733049210448873232963742773929105106995825396830404696878904352593094102452073729066154713330445441861804119113397539958285392967386381077579800553655251308227458301749551961597248077780117915215928009367123456022905148276826541878301140970248574237104445310586010856876552868936839597245211149312018604591292056634843064502286288591660915485042818882853566188351016215440007071799309779865427589740244141736055093051895731892372413263640873623620134546008914959072499144529389443875366561183449355844725968114252420763344092770025981115745166682991262483457260508749023366146625741805140703821452964879240215405481125944605464857775778336176793602129670834672129616989852103140240154306731318454153414921388801438894298367883993553580687413503000659403447447759398901558890952850488087106048809292774442354973894065980884680035150812178190279990041562602221311254200367524463903929348671960086789847981250535353971462494953661720441762451374996847647278961119661369945321228127701235512536092336410371717715722122361297608792513163478471217422197044803078870824514840565579541880747169134170790592733333601165164720796171964883135123842645621795319408378072191641944649390890959587819840825991431758832385760586037481670761700700067334324651991350318320906441630855501751116037075700217310236953344855487271129882683309186904425017888749199628746874686304056649935691464338750862572560061682689103518512125499489770263954328252044445157702525837212876630749534319770175647362420050139087189470552216684722981860266753099691565102108884720428870139885153963368565433461709860653594323517581561381050047953787855704721777870399097722323333690696969294817940975992112241573756166169729282186804168069790753319362774810487469141748020885188185401931978900090286919537155608634407928619790860473884449140338079777064991639523471565884461254660055094590606760336013932770371210203274460857801289827829860024616785179528800447100583900585501830356365384182598245948860176090554158718372616312712662481114187317203226668689170579944118372449189881086833589793782117539101007955991220798761296250798102297419534040758875998665672373308554033841469252697439441269170699165881124405771248698069314126918940245570907404852945242671366286552914011300664638843133444959631704880593149298864917783261640598676751604369329128543097641535791522273527473990896134821961845997394451089026644585660592815841134405146660480776046301507359625526696822245594019004568288746535902466610130545044552036096327982855601246641378316111672740332779345524725584306956490802341867635714744165296471447631990229604098079526684677950466023269488061897945165714846263946423960060685007214095335196141740598190195486580300272818364486087471879808945119230337047928095530222747587002032119899130747164915389527255054714587413354537150741470300168467661547187111486651962290261470225439710401648018883132269290289320122384450337151483913355479886823046760273632891318447566510782067973453085165894113640864654926132983218289212566931089811250336874989436372783817911404545892349248446088406014797744583786134830472372185015785246706559510372345878584699858251585721715666666163831522881585984995632644994843718860942947765693618404016791977137055366378850217393852954065891097556672729981761454749495351664036217036951184271781529164349616670536105362501860986912066662196409089921128495431721285650051231541541717675309996332418822148918943213591819026174431748649050694916540416880215238303571338400012421564998753602304608272914273245362880082242826569563722410096794179454150074246472687178356069607609098247781135655301223807436774839719877999274414577931420609371831930135251388026886932256430125784871908745155668464718320806965132954972090557225634058693702796580512292617643040069083773631725994013461707007835266659102553984908078931830530482035927842111057641416022675081348908977875648148379695574335457029177999343921578185647028824620876750550261758722690229750019645954126040198386354250511446484510905708380894596958095968752320640228650961291402552061257904765306445557912784415424866787060516679775382758480931564158172500445778993195752114457623518832669331976472723565242822681068004067193692982141273626125519124677476488787817449621865436267935456251621531181356473773459386808785084802902292607735886191784239285497923272523422230775197132902538092921433884815634509091578221848743485733418093530152333986031736364009379619583225890727830795467369991907257658010326254844544231201838663700205874154681909663422857907578676681747182812675995770850216032821878802496462891562079479355094462894156298925974361513196661603955646473565995874528574185420454167977874145984428084617797969075197282787718874650605944619519994723630550038843869726385125714947415380380461176992855161045336206390758312747627310962511083691343771551156275536110618941775576515389520263948753901435548907957803370548163800229225448692253369887421157453668030531042424539875813803446623279272429453344306496749686745405011889540682886221265672900140453221366147400937128153745958482501839865654688078167382949521954025704978098892098330719176232229292747000622390467228256305824581479172880504151051172947473676186362084548814814799739060752466373553911742288763673844615620519591439190460564370603385238122243822850744321380297137947091840380337686450739818611813435945952388612502452921751265926070648857598330711122257551066921747945352867801305459890785556428650034388824130591090837474403457685957662918018774349083860775007028851000555775746802364073166942844447973753543807165914920055359464052335455948608286078881702647557839509043932371791052275854886687177546972263886401283629081167106796735715948878852497423921604885756719854465214971611678166805689874996180833051530518300296344632188748346038544189908898312418413619365849022561809786436563653927065886122828811477735565219679856985563680660701697026382769927567236819861928500435799062289733156205326963248763483354166423454112658710531031181785520878081321002232110379402541866832647051423262331323287509190262957435341334331576600569337521958910473085248364440823538377071795770245953091040288560471977985736973061317528999877305387710568494033888509979794372426326285145256210487422501345259428075760873916917738776290961230661706494069365044039221419666836873262302275721395987300021546149915654613501320654579106212105873587796365027233957054540738165640447136103674789340676963119494854818765549025776594509914434254687381339602000757860337710974722293016788043025579694371923211795138922009838406925162730546512405621258980030420574866577670263557532617355800588132901691334321830839624533592557463463252113923427952280373623543132672650375574335024389548674642482439433424714348803673215434847429143828528930708052135876325597404927394855639639584241823005774240309481253485367700323087348307617955592599120059291960345952815313079848721277788570602815971564560746210515229576903007979772477783978438938413584080943426864783263155478809727866861605851718693664469334484585394108316554406779546079048095735442440696388095918719865610726661126920242634183203937193545012649071454795826816340519818301871837942881236567595337311547253609891805247059839964376460384654509519357311818372320878807078564919504056921335194837399076743879362188662881782998431297722955328168033013265654503291607193222782682256457038910783952842975688490783531826934677650809844534039715453745932383879135452573489133773280791754938591738019835732193841358339397153657360326064708134427163781465241569875329153822560444994012303917593035178962872834821496273904113120438353269416416946449814352780373629399661577980790834864821152922818053438645666334344302893540372225516311942028010727223643287287454133909904373426962152224200981821425861254107388921142541529756722957648526935994529903915387228059505490506510183942361824082175338815390079191557438238516695194847792983413252632800025589504483385433352130064029471673185947165487184170481629125800525195972430188518210533803216497307772548550880087552273548965413896082657178558296976884378740888452005506664089747115248519937459718939289447125331958962254327298271190270192700841667704271392038332525458896460327651064409932318386142267690336081486951709295915655022148232364060669516026262318741201011829555082039648869582923697091719991184700571368743001500546708199285738622014059123411886328194063512762287137467788633530238712680098244471825964696454348432782775091934893087318261397704578586112195857022800047054144757986933337283808056504015671121209059498176199485712328099099435008562326511473929380634194734989203197883974200773448300146744885062542542658796109247290664345504677688637063693025396465992864375758952341673565851125497189606149228254979612211882606837721787385039277980421688920716712641410889943972630157272501555198348053522646857830708164349189608535453624636274267536487240944189835629051317352699786164534168008801678426192049347240429298948701003560878008663668830213873196570592571112820387909956221971140531756867435963567673454077567111417632435985881851437668068338803687024242337348293528767439672782166162689289693481161931305410917098519186607119837053969735192178787742613798521246499075069511413573311108930329978119380163509207118264170798131172295653388295895586207373916189506139539770125821955946820269811211516336836270229239030062766233422527804149868155433564730565619514280678611541695555080507810626581234129730634399523893193873190871277264593232471331603970950189529764540316065731025406765755464581349318102124667597770405755212283861091513655297714488646557241518631196647099842683166526898165493650335495903852007340602368283160337940839743580490258053663581493790795723677854512360966662393228679874272681770282995401404826649083041054827127015622600863156053272356547020336358645224922838022349744855300120682260295988006069327463178609660381137124728492492843277354096004880546960320861974440185167163854539823890025044413404401025586344240997231155160941875584676407232459057832858954036332276028412310425374007984031275619448451457458691244744108789792731007191505089244713741246157886413610018852394109979224398780735979826086217305955550148223217399607785101030212118784050548127692681012525457816754851532911047591529110924855010054620693811870049732330587878902945238837187418306602043189177836728567172120860186705401080945117623826876462442195694370087535430355920346981157194947326283212819843319793009470663725445443364732627303219534221769992603573119687795078446729916613780143355909317529307079210703371724463566034290090264329488245223197118078806439056558107912031145767130050275847252879463701313777147726186849970860655130675146276221035348785899851661110736267259648435411875216065153072542540701172025373944664780253191996502571060839247909825718580510820801202192144981081490462000378665385764733742665566385090401238230800525781015947991751434470849962948780612276272159820605236360281300691379318351056863744701073116315171110231318324385761946100329418005476858132393173502368954477318188402236764198631853872919061079373213257993217236452752634239703514778125515157376895654440726768061429104282849490258366259886692807748611492566282780533099532147675805708708699338341629160224123952969489788727443892143760106072470604759633327153398784001303740669268299668158201251018438323558965539297182186544489317072543826179491204063427639274236314386648022441579030157050022691492997641260532293751664833909121022206803732138189296590747287441589777062271511689950740339116863368828741946992396677360967578711553074187392988744854645407158914755791828462887235084697165093441342417300584012519329418777233827578099226644744292482564188682079815196925910523319193825222106937527555120716212036266383690634928343384848627683779062980141781206670823567044723107982351558843887587211511677419102552313171131195081968035985611575430916528122275809446047380431070662259449720289544153696882135754333239964277347844273662857839086172638723354904212777654136947618896498047495816700054009742261618991804430821606957945745244648645517873198990851355695004803729201824854495674030580576406259061192193940842845365479236170865283580104244418462983762951961197015559322620449188195794182151060081446750807896849139209711318318568412755204193740942517835968154892724893363593777728643585014576841480422094540687216578563202357510386901632598264806056201863900547401885141832955296176733169665076080886350648375852278392996299731977087773079381975460318355126726303161884387664072901312269071560089733758685722441667238866780992642440569673739448675253011015114558709344178080570438297869409510204959225626663605289724388516995998972724292986958266471084561769405982163995788035921810612808212072984463438917554877393823741853173258691341336032217435954241573890528178605861468605691124714670619031048319116317923610043533800141715248996162206725662604378163326229027692878530145557397495415189645304273704677700033302930615378825762456003556169386746577310467487290126993929662123485090305432901527341271357528971301758341861893096743208787856929008786598891132669015908054895892039719688833577217645993990281324118799827880624197770118396260455968146124954732873718302407574984548491579677222774895705846682527568681916425272057085241265272882681760544637539192984212467306699482641373989415267130095973687064066379542296085447500235411832206556826817451874031185242062439712683850902529757460241784084065747062756785401398311104224260425200223662333001608373860707436520732459360879957465791892193488841126668265068314213873382590224009434446191377243826921322897225321572771440597920748018595917570170877844223312670943675852687203281129201570330935849535185002400488769626912166474031292569316795303742873704812083671182385489817991086297682463870284905258537200860962292076513712640415742410905374287111547635483766550078002215806560854828643666905598986254181357133816761295594004971810672904150630143459764429546590691619850705296743393576686145548571878036287032175301833656227816142115567820719189109634168888758814618311335651843597286149865529093788965424358767641909352368698181855135288588842337338997098508865387560437829427110821324919901610549208909083389305399003597078037274751602966568180829473920051938670074124594466499378689882797700430760238991281608902510366511570665309556622324747085539650863499509920044740763216392344092934007577076460153857286190973186811495147224238201582287072276297858169644976449967845038810006848542060259645054968696587082720869300550496494627714497631396136194798733796020300166612636179697311355023680088278687360283415539141894180598267291333127160929672020711071417227038981943196735457707661286747164186902042606656981901362854455967642100945990519756197757714088143221970080158006306372481292655514112829353885171265164125409047670835943578990621837923599644145294131494928257874079738531894906842317779864934740440741792476553415621207946823357786336583011551007034644598156966998420734376301243985619185731498222272651016743453162660112404042563831653630973144774725623614857203374262804773554397444715601610285405225684447568437684733652510630358748700480545647943477100108834419785763633574766354518719736417286901509833232483917822799059048501291878007350555695328493476617460299121583723105987328981674450664964519625960412681887506417798352494724850326563313181616460589293861065902578887492167468629693821969490210983853639357925782407239486044928751602705540462948876381495014389199622968207825739807277738634643402480551086616085392861159973416370044676069489829914035187548100218727482528324809072314290397618274241298996037799431663438506792745370545620637989214359858732382266856004902003149387270592796594550028881275244736192679960678017742011327001777732485908599207117560172655187215359336855857867716534637879343640891143668802030904919704719113412282395717835707361829065776586018758546000142066656604637415081505724005614992075561470472552799090889484618568581537604971889761225758110032153557173174327054478680951334682749290938239833308396903860228012402613963809387170939267879810606543633935768422242614509146264799224916604515987350156896815796564366752569174184489103404051703056609011251132828962135087869371982296065432864296048204092882283896397085651566071474278075757818773614654411356143554494266423289065750652705616901236806232857754768485932233810894812894069944221935677911633420185299528835690743988126636359581576547135594074407887872448521122590094510245192309112253294625335998217919425502871955779632932803894375550506161878764918307318506648488677422531515944656356015660662413234172418339125632735020965159526762153406046694359425570512167483080784131966547625082905505212377156434983588484091025277185517416761835042917817823464072178137770004515615977030883465431190840582625008206945741099028804612314401740166450572157402177632980122165932864239593574471233905814474565354773735888729473626941066040409130727275644890024871450021756837024951255061950901420455820649827655956765297344092741668151435889185951443485198220244143937245860318156511648025494397337632505229792919432626872003807237337256235335168117891298518850616571638897552259796055782624254980446989149339262337936490373171881973725077122155533740563287484263286380428506763475418065764064896667661238611343546113030273979481423410380835236506329752474021792690851037592736713436612459927436856105397335580265782821686122582554491129338842259798755340890795236985597989422073751585887214320572319313732606223404932714401062404591248662840216509456513937877748896727287778703993516548647500723748130473806882584899275835381140149981040313110590837378014452227009963106063566362561531861405284237285327725951859137788898411191019682088164400434969576945382009795953581871623628068375254328926479492391053821121362960063287296201518311820061610005312050233138107973944890174135798905884998166118411843659400967117835337246115161864165098667746442872700380955923951067219092481614870945211914451031527840517545891555671522084877320801204340664205601985685874037518824692720873048569171608504695976923900885141577880749720409094149791175453543048855384879093445545660557001409511327993592943328316238120637652901015056941806877995159802931768573358581444818576831412821418441659804158917845314704941743895811999149617757674516911134495311894791517355703252069531183256866314206274784366414357050724002421439320715066790657271906201431108903380730112303104471077835604415189598965362537491972420663878402778840775300544080052523741490763362420694285468945692762096675496630990294527066915340916183526629195598657172934674039443998323260981027047180598408205762499767871767617392534806195874357403840111730964277451584188531326349746696217289294023145526012579575970818387675077155799495713852746891913548295420349541092136915180283112225662164109821596957096492383834601093506860130247129966085036759946520759378461077751478562398635401931784303049887366951505718191530241000990889713387592686298528256911723763276036747840147880403908595556174262543361362703420752035778007339413612099753744241281704213202660493966448130904826556047348166306060938216159828295533754690160607818331798509845772710975258273831617237557342994048295991010042268850765669763747368337401965368850473103418450175910783277756557940288236007973461915728063483199272679452376188085919109033038833170647586887080737926716915785177787067748420802302066053065075053165183969710509619464817925628168088573248173668245067612070853971417760900298341451271613520119027737706003035627643993715244567023734808044250113835003794537991631116509461309763804712781067764437201445604371115528748060971874623510070215434718531541424006443971723317609766032183772172248769993653584316741695715992886316512972044695978506513805816802442463398490047486399874295244820765776014252670822188717370384854098523128186582270911926550125523117693008535822175265471722094192907845791883236311119452716420138511276563210691937457756127920017270682858738275124789353522028651155248819697278303006335768042142906593246054039481049016528445414400432333887066532287141070343416067876724892679480936216898505050577017286748101772889472968456832002647265262519591944623534657775476170456066089015966200741914531449492425364591065911006880272637652489732868522557365350068070112121322981099090730390669777646750151761763911325309335119501969198444319808343173669776678358051620722616436219276279879147146701309352294307206031553218661892088875639272017439759824393282818168102874291201391519866560807649792972542268085734788941399190468858299638566431124639764664777613109778280571579201295246929140155491949945175519075635554640106883040971498369521942704924405749238829488300738208496004042303436663259775168265834817289325380250452117673238081352632816873533266663296600977382729749140320441843079133586518339442548622584528154956277250280270657516844906657874002927663086741596960530190237950873665796928961393961414657472106982438080616267274799269230588052330634138588349496657897964208062783795478752039167582631469519311358294246506386883539742296353077626768206431178008616053734166600174208624159376891191718111526433454551838804672472625571548981851339598272300299522455650056527993984402898438111220545571504337339405200957322295014320824739727588417235838750919699825223063305022595770292746056475590756368255854639998317312891975474977725791626326921937096914232452329154911436059964592104536723657595797081019780046929239690789359297824462498346690608906813955931585103699939869677148666712485124195162882336398312322894870494000778544386691668437857457686217228299609241829722919176295073896163516092071168789076365979578191811314721226211936777582174984791184200642570009215134891233377326512422763583344635824775994999221126014512349480909860579211534927988218583271198317354556368633776454485641372857041958748267619419638661615322274467648551466819541941944094253228604780040951790803524332043118195243998606269845574720184392776885307662650581836993485174886176937462413845459717735561149589052188463002723301741376229202610701733424395485278165024420602763024289238646519847307242001107371826288734263470780998269330592878876077343955911918895499708303705221952845039006281704748894902114722848472549273118036491293286723906804090724972512099494898047850863815455451297617164762153016202721648502768140763218286831981662422059645126196301804976780689766393430790775145224675850043924715630965790349037245051481832309635280708830711299384892568623282839249340087854478250331350591326347219917721864318690618630153269913978131377822202577040153687359985179180725985518690832994019416072131966215561122184562081608982039616443109983137522538326998289633812061547426496508623937593765599634796078480326551080407426551533422580411591822656026514316023337561343104548784715122873331077694216082047934280829656128576942495574333598642580875421227129882395110463763560279971550318024121902667375413382588823548407310887377659303309994073876703527023920557139887933279259781767873393259170291966878288562685517054795188613574455918903798230123163364765391256995111684079160605986569885798560410077982725824609819439868929784919696739489195800468944212899443220805649074223813972476521773501068002083256867719714814831329439988228840508073286254244424079655043767312750600434875002198378537861271946834135054311159716549865538195529830124205069302772088501255086838679040334706372735214144903295980460434791951530234913934689408346859533249336773062072487166788256797191501716799496699374925318579840387534832615515146760577039750151976049362014145828765955098074018701612044955193691697777360700101106865937714927244163494993977783320075291431557644375323983709900289361777860962075186544181454094998779620986445586829065881322195679389368014752857003979524160740466096074494772758238326644462993996538292796350382628699090524451688565058305663423133199730310635503674838926215555248889367359338210501719251432684781857416794990719966781480499147445463946477747201647588522738042502709763827500140590007173551940609521293669392330341472199483225444569142159756479473186250605959843721098425014805802549476469313920120756444092158767340116548917528084425001071435514628814292114622676094817871578654744775784730162002660449782658308716691697068510912810879452383804872948004563812709649652457207567129448500891893008969937669111082725551267434952478787313813845857362120658967297523714558648754033241578144799368919636015798479692408996970388384184635353299643517607420446602551732340121951565959181916655997108488265457121140151139921728148543342556127574374589631966813947892837257127285281301105589286955452560817788812205398715076826888834822424430533704324635807164820246715704599634960535668212447177865925840925011424019887197036914212227551620492217558407446088960382143425538356039209528460505724848390771524603140839288756440902668989663098770049958474344928021771414331008205696230550326451117808285919856269446297952291456135125315443885604348751410349943870368359741782064558403564876650441077449922919268804131896008979756074601432174022004089233489241872329537414285089887357483621255706098818349207662861919336588716909100462055619470864343538846066004362175950991415418834713582849289183930643642940876210157912254510495880419629047824616437173226085895378185786603042463594897284971751007980307757971146596259562719249793176774944290783175836496272332099273412610140805372081783843043110394711678241433045626311693493484197126137379372693904133123749593641056554024767773903882308528717791517930178515076606180040062947083119869782449982932325286838945386563676760805448468412322143243954495682084189522205203010221348072961745962420315524653903016047591293853921262907021516472996510346440391000933508849219106559664919106801219309045592820148527416859019293393375173576083521905755488481724863524957424921331884739571509085281699086574368089737443121516023521433816596012517866409631192462896394775474612198796197106201739027515651579959986531358321686178108303109102984952591145381982396248243476254461781526476029512004132624481324291733138475614461862182971197166022000383156543750309683915003814910922316998936534873300929391322671687496829164997968089898517778333320063821889425571756414972716512178036902907311064919246919602547486559048108803968647791634191853117304631568961880989732636668061642947458402001158267520821850248779381769568003101282730439591587198110035279300210645878814698157894068853103505124120282896913487239767986568942434983437426055778626590882667835584660584894767141004596835200306602435249800139013605355759882004808416429323670718054054335923260772071054825864743573941068438644231752357234189520431399512461594949182405478900016019428424057109018982214993967392042202271977084358315878287531797257729670662128537140871646293509946589909917356829187509818176910214873331703130195530752875020030332222282243121419382286436773520279063536461283510884222171608268932519832518675470220956673067870878615587741740796960666227033866544987882386190971965998345536560849612287704215167009594704391085639969879031617474846223322930759735002307218975701415622596177088293650100514921873224569279252833799286373752401423450802516559979203351431419944360247155454570351938419431029711385016576857352101111387787997400605943230077016098434890994126945575507906087876063709448938499470781379264822301405641899828004552105152340711650450718803241136219391433462062203852137563792421963201332627833523485870460763113624851718115096130013290042968266404194996137772100381183407096222797591389454167399453942811537522012553866140777474229489985593698048520790257071421648704208044363497672061225091726298501785871820759218161918598883894729309970620005715631378102686224071324337798033638122916546985798562585700300334903799708419297512700641003074034836505019564792064950617844854388627793586179285116689750620456080575128203505724840730177951664450430166041358429298269589256855419040706651207206458889725310597284814178748504959013725907141317862250634023130065183993055357025811608428729078146602523465940564070515682993515793673690623355197764704630150890464028822947413094163753723543287418244054571610376059059233980756361542577311569669688222131715342626825450130029130455706139277950971632259019290996796066485558471779685836305440542801604374496786507349048252488324261874978708484391742619632413501417876122637082327599059407150440196754261317747163151906541746562723889413971369937498890345753198047766961510809625287832238507097777804190543216313586898427895469293980391122098856509096483435262587287601522436206131339611462521493300273077667905852905713912006899887267163645282878824822583100886286608810219445432729973396476729633925146174406145484132853734693196054404645866618458517934797256794626989289045883267252156897533335838950449831208394567780332951982516159415230422710925895849711450613645785062231967239635554695607135125868672045296735700071195178509481316228841131506108110621182853714154568467128431133712819354837186034247402455319930337155334755691441068554561765251382978078735599707533576907757391355576380804552190574524202928322013099466448829630958354379369102579991912202967976577429034654700617533080445551473061025583040276845351759346319505950645718589106387782608221971016399573801524823430308997991214060728253354272595596975719099022660662217074213224891052726682444196244407426456490292939463997026206932315856738702850557941074537839033147774548751233678711636984388846726735490218471159836365484894331006860291146761634663302268300643647141617968798028934035769028802385012431237391305038903298611675906912958419590958299591509006158631066618127077146170876947465705200834781283501491077985399073196817923760499235813604583989271970922733008346181465124070291552628560715620449813552985447553828882730062613886037468690717084376104657710226991117267390444036810246622990212629003879918838650803110642367784943085968706475787051189059742459340638652027399163450467705598070827746314519166840710138693615804475156726979111843859400184297290977901655132102979096108413710369504500167856980283428751977132236526852194058511607178286111606240633345489376191979884791424607334133145282913956848721165783763865809904020887789984714545067684409141349940299309837367447076623384450991010592304786741883665950722131584977399226210685432874601939697425559840157613657581642285246188471185993998468954799832813311119441171547103019523662368885758556936963892958661297113397013213033586425237039042799862381369379814964703708848865492775608795956659766528140118760223726850378592860814031815614579786991738536647520250995698214833848225292918325797229773787399776241450757886339640371102847296045738365470330676120129779864636293028593229368484991911591352171837049926839772756825160033040385675074131284852093605941087971163285734611442764855310493647360867810952291812789205152974235738238218652293498289875012364342570962593607973645060673105422629073352126654747983192142776422291945200340648296871492557265873227157815610109061414911793645279491455423101092944594585293455282220365687654173899154204257554747572698705153527699501582781068806936072468937198697528689236424256134440575378141401948228219201386705979643771512522523987203608973838330152069316475599666466642409194472668242889070419728143318460894607151289830661065906071356759841112682873274125396644977266986817969166178640760467287190340518962578547874382009627764834325066734815012096512861340010644526815279804836789582955363510889639277754499387422974327567033055841542253069124458162965588164136706151941552218896377272876350120653636540465488773460002451916222439169475648930413348953630218819798247387986929097498159520023239479484986647782451889989505286602349071003734974128416883442126455040301784300421491020401639557361995700773217514817004845072443653259011162863262842241508800985535057012421266143797374568881409307078916428585572576515172169467581109950507545917286373237567773507611174132930583137646846655389513290010564150488205213176464376504881061668616871994245835400781303972522070364120095596687957614069023678796679351341402638706409579165383057480690159464750996923369447904280879547155135976663920813258076925066347155600858927971951938078110233993758834487345793631869398044862878421962347100016945377776105205020527028221868338508331392674821942694449177317685441066324015370414889570999319578118618204784486186303203006329013968911036714789330694262962116967573972013226047069261244520343566727954632943477436618962750204080901361960836171714841186988251893470090880679110307448948846673287813881809064277907409213946345464758162305557018968277017013048590933816876208994663930606587781490382471348374445418303171208078594666224212258837735758695511981778635781215126319197239306249196511180881082315335968473983956380791502645561804702425419242505749610692794752823280592221978178811389212029814241079649397130601296706778903027115426461672257976016370410630240541232229150627354416910439973849072561449708010563428152015396590056607244161480964629293596808708304684224412821072903342006586093716527432628193917246980007653856434615136070120434173049078547244826780835848412845090408313557071364683022728993749195546195905703551090210953586549831158681266861784743660086037144676760907842592908665959561921701070453175820279920792446777183807144421780827246289777636236994603576138576690220197171922933132647028657647141311678377984365422878658162130850630872050979859841404345129060293345232226801738112911095233029681964904798766637277782845719272693312015063539170576364067274545951712558606406840903490513588935699341633290999976791480212277768203349587047979698950275728537469556807372996563135706740573823698486942050117481730704854210427406486926995068118005416819811364559185045622140023460514863678831562295268177315523853877850116719468562713145488348692615573905222794085790833010775360495436948059205082417514677624757774741109874387420739905229987403391883962906435077011719718656032713965244064281659061942127175969616743191114530476318090066085247806570555224009050258011801283377266239013888904796011601579465719525975315320958473176640990820512731750677662731986374887158773291797246657316116020442323432736179642985683968135495811414604172449472693552191115838199433718547669901561725316167002068682904650850700340180534148426992989286914826278763380630489738354694837572603280749079085678756759465063637774864664457023564433594511960066003078040300701394823446888255784678875069497819392102467042363304020797649104468448990129818030816446442332699437373960038866561139027258085778191450796496025096808493211593709026645382456051480460467141132887023388897462791307597744599633005944558693939676142772850101902605825806460795063417537819622349136541448176162873501243678235402398427510235397549358935465232370978311742440256763987030150678908021357658841036908584642479078713812766354637957721382198748574582009260223640624017569863730230959953883297895770064604924358184497127772047379198464317200202133068835487623632919389292794173125828471563931479624524578956325297825878893050814086538493661519470725691586623371318571215160492880904921116043980917450653016787566649423498695381626155907071159958142430369485352815921606372235438137011776157682077341058418091087002321582213424436824253528173869511015302401960683813131253318104238663215656958647618517758646568861475238410246122271948040764712866722293192651033774619106848206942999527191630949369115060182684155805276988290031672217224681893806233547554261142847508313960661723294292306424172068377637137753443820160002266236145651611757322851043316808390724894089880353039436120325488897901251569957430077309350031999535691442663238689594183905008877436363106627525541388678115174915372141067444445568135344277761722165647836183973466478470865251203236236644122045989431650248729936527060281910449816430254993186421146903344225514381039393415037461374520181297149977960702053263817200050375313781165631483390108694880381401206536598475364104952616388579960830016518797945438104873896642223822981341990730818539594784323741011603284278686123028784482566868543707837563028880281064316180693250606791802285632012517752200110606756669011495231198381471701781729412707167563423124705116923659583349075334726255967195569265025299679681493052204209653845219958550124678613685976704385653413814945476418323545019693245435712576503028323955345213841542168985180159343289620934140418009307436507217921492976220567490300136088885502668758237624343528610493874690263303905639420023979136208586661813836195386216350616185779582468849765868228051402818903744577141755247085088127583892352783477078542317210306277207148713510350447909914570062233628111802794599018869546888479724535430360512590831426842465176655412551791669034480854562111070231927806618272820142275362453286303396560146566132059274377885296949751274638387121544863137084236054115868122087881218236410397398000748058540356319641247238155638266753785120128500552534335506805551378670498485604594285517586725715002490024407324585449860135913012236874610391076328850429839507596102134721135233160231436192434210155570839202648612423080926034869455683483558817493758166295547668236823314196574699987946450403872928595483322532942566347394113468126023889181633073227264461975661064594902393178779455394875938966225824779261180610906213942504833932897146185438045157874705782855650328152857896633260965457653585388002128013154343748912349335868057441941712806934536806798473884443973828091228282873783388491844170666857501349601204103073167097480219529297063019957444657082093543959658659184232373566031239116750963564997799124282741329866827022270769988023215898537645300167553113457069907419550218169434529679284601073362705656771259198638751828544568398599274799086191383245156863603381100255364052901975997784185250889396134380577062177912306562906345045178486745955861370079500387631034614053398691167724312859650048197685893089527950048760716772418770544751415661032754349812646723505688688491997162024508709405779562795934128065807078625804533817584447912327160115040432435637550601010405930914528644952738122938377820715385623143933548906245234667081613975008165948648508956779311454915570415519886733009423635623131575306574062984260429866953447413378622047968225825685095680958072215415337040345481280803417163610551640180225572535756500147248331500063603896579535746744268666230908343623939941504479084372804242215549649919002587012726881993711736662826460448949906830799386298903006813401553867154228006579595040133150839355607339012877215005375389813406482035773725385817049407666026684649036848270310805324051662541799919346751707378671939947362681990457217447907348729092627877537320038889075442557728649778298581388005650876869810599634957783690968635182236655316900424233111467966014619077452181678444149398536160838508497641978849258933103193512217345225185647024959722521235370221094299030110395063486868939338687684523873589078938376679334568786801797055491717717242920910250886764075836864966404444158713405830774302085607332332365506613999104725992152377131795544841376940063973481879500346761248974657784575838517080991625880202634079258844013403830146170820959055994835607271113965672144302974430179710986464637166149768328659391661521433288175404904555554267370167289935414193912490451443855206561779679855993140559411036884853636348179960639599552284038637086035746005900989737907556410156423929754365726063443839670556285209189240490107229830882623658127037804876647586673061777557574138498049013804062907538198531928679022997187211584428615736266742124985490986676767973028895411796112192312535626951387301565170972441227289293682108707812017894934109765563646226761263362221399190946600536675910003055902640989806684776720701406636628291266206275920897141941977944306766499251839043795149605262988666430049444941540604003137492191239959362603687069663629171680403196325249885802003232197998312928641779436862395930036954756385788121054889170161712852242381115454008509463387623060955773045538386991889253358735274743567825060659036484964223531921473624190699626749096721458654302433619656381031372300970200476065127836332154123836540578291053517267543664257074625677054915593913482963064397165060407943501156700348753179145877136762621861332312823378805387102288752256085613336010110659464522656008181150856410456640369074030660887786417504545257800427498826063118968406441535352606594513890103794370892798271449210393410437451260364084863603424346456149909812739369881460147801036602796497021817102052585879680125287446808914764255063055581721173563695479284998281284797586821177818698328478626958057299738788355594045114434890779854082664763709583790797541341927265789533439465093389277130951188318468595681853593216456050635897054983473542866244986844791185404474070070376072198046227092957634320161712355980078944122805214079811621999674933887994009899998551037221853614452657230129148524583978621924577051867242518746120856119945188889852643974246471339603267752196528254578839812609538675860784768889854458621614731435663278624180035895949576447669660841465919906510304258245493457470331446888403017626140936404240218567867671346586875632754280446099953929427866610696777028720705353820109934842740993230611947957236981598087581792428793999259076320565819904403497791019644732521443106010591480939368373177829213473925786973728561835171550755818004066319686689108999799978771263984003331554876803493117067666262574687464486027695811293336496076740201462644692905305009688145907304319997240996502618021123339801311109061375634076156167398543462265265018897146271811225507616137182642313419847055826100226547662023970486721581676074723563054687541985321705972440285219957967806248822518999761153613881116054840778316300187670127573116854902983971290219565851574314294921651504013260904064687047959018603706131815843336020480484967457292464359006160041502237780189680913912754973190447009781044287768335506122015810302551649214029575191216836353298272465374949826044996722036973813147926500486258661867833728891658407678839069222367177166769629216693525971327292468936194875049409733140354210170243468912232962677625380623109001442868887130955537753529466835311778538415022813995236083360811263565104029227463145109176887941701747660124982430659062127523206499176004500870244680687647020534123994798549033342204470426383792415121656355942227658269917702375611965296602994813195937076409715613515652995720517386697204324898293315977553997166075269625333586513066594474310021386491090453319198498058274908305359807217063210651509473167791155800830273372165990638674840908493681887591648844386591304850993900321275546605502847851278675535713323254668194941172912386545729305215103273104373100362183560910309781298226584909064450732476329227493404530202883030811712098325420031100397460678214173010440993739503170246761860066715014928595022385435275498797814224570634026610702682824637826050184554324890676151020653263766429246317066929620527422266887197677695117608114860477006237345292939528246588892228816042954953746842399404609653870719611338607432539397172321532155625027742844981313497255854723313250225700966764126767957114814017581839513890731887654580212926524303764531912539846451430205975153982942519556755942825760734265735998655100806075059643470720190070401037875084249932111483532999574897574142416314167229981170044680391261116510106797937251822546365183281483885114692149913318631894170629752501020657809073191278366411305316094422297943244648921778114550691988126195641726692870367971820682511803792371138915804653467403332234540783914368835658199981260366058636468670818901930038235390422215829388568210060176323827265347144970574959579738607657475798804285855607540511565751294531458262821723725749129863617546669331879741710934067626434703360085633900369160362917427172686690338079022149392608373730630811488424275721506770957489658629954893541891341921564529966405843072152852392705488182611170178430362098272336640672440614532120682631422092963856753863083311056914358713447751179350335698251461149065925536153092992125737834580362612700791816802647946293711597698034544188110446980537176945413755028352685446256602810822373367007907759189688237226974717509744800448188736639924383338407499780494950930398477740417022540656684065820337805310348690307238432729590452829293281871943761648067098613244047830857289482937098479976670931080439236879456255471371244156495404492986379778831322900829724582205937663155620786813178895174280500942764641897661029091316467348807427157895046207950530911950632957066630350915848934955464859939751401241724738730312193980644680926631700639603230354219758011890420073630050243325965298799546085787829588639723718786204152071333388418584074982353486011469079182318914938051956920237907318530509924934904353433382489586377450223191804314810641117183654968230665047529574792782982772649472270399259740629921397848405482132673847683985600533975852585580707907204289383048461552591234576084793919721651738557610194631930622075642016992457846639255531770494318015947991521183954644230779745529417582807277638132318160833266316271397265765018834053404311292078270250571861087156151255138441948418894816282952856868506617564201140170301165450059857494327519661456810874523734494312020626780136668033405810531840538262478245776316982144191750531586006046509472569169637863028119500171352871650756730998166274098577448061115551476027774723160178196693549857018831583014339190703738939459369542036032837135442768360306940876149220830237730934396195257592939101336108694839227893414279651979074284413374893696001186972974546500404475218854186022847495937336635183058184415885531425885169345490640316974852255020288138410077491759099784585095062369321964254935832218377798458519305757213118938534268821489520260266406723117127710260470906482788856298249036863775862913351619966404072854825509928449313013495813547558608679859579746825636220279331495818975217364322267559601360352440876613523083702442030384208387155348320946051235244202341410294591774705051527094023585238503533579467189288905277055945761814366809525719865065088326760442444847546416063624804602045090745045207194809839117700579931664717282838444140460712498804484657106319622886804357396666107612027234725831453482571555192769412888188256705961529132027858539439342597344487383147313049854952701276288778859746704540227896631884371097969897888243073250683097734516086650371805862100191658717208512515723291843981926385596936815470198945269185400099391590818066357538499090388509518834322205295412311439264520535696590249426242105384792986753136859215138876750823016994119619852874683948098888287671545223464348075802815922878283084865520663849068460579480542019792161198163922682609255618460705621717185587430108232984274592937321651766613427512456178738142153880685279746552525600843889154314568128067809512514879896055101703700961576546707801534594374157418231177497600643761390049343485766152881404684727059208739708123694306371937196204851204865285466484693326067390544869637173309193489567331011897852764057877705125874132516605483736067845873744733332774598986431001217643570207554904350631364653386522045492790466866391679243463366213031045147030934663780199552714332110432230776178333328713405144334679471213541683630975807736821506706166117744008148585404237048407232702845707512697637683314109127921169217642945636216748476105556640099533081312417583326269818657527861011603977948100376260792133815827548784499398065189186272916748300952213366901640669809609414901677439152635662626022195545914431428931818472653130776303729696223099478412354615874814868738011975616255302796023506425488445225449423672525088428829057575661084241976462741673832427698466488016216725989546947412597244748129372806970904335980301045101032981245510336966926933586621896476542566230163940258927320386184338846292269971853273406595749551960345106453532488263183990856671562121461050439038344901480815556337479708987821720099341760709260526832388971810426247239981401338285853696753331850491833567642819722495190556491133475865649705108353152873594501762936148740976231904099896960248274964210507351445900542343983279996476204952297897166860578006961550051838522452342529274540786751898341376706369712617386967601775008739784588049051430002642747586025409784786629391358819751484737015486270762315333905680863911040706884339700970052507692489715382236581053893991529464497169888043785453314426243041448301774560651005560245844045570423692473126183053017927788122071351252228980043377094875233453498135180885821559869442125374341023819009158976035983562785033465407919604278366302441158798689875554994875742762881682308271260955214646570083969093816323865919752248204677099518642709109676874813736849867262550877355913147330220144278083950611447896457456840455811725343665904562911889693110382905656832708437222946800825069665143751544270186287216428931735644578612159061205282786775541571076330919693523939212872430207104048943071729461089940995836792390548129430872054861932173849088301912729943272290760789327186620118709767638413927071662394851418045786759196275416474728985783571177776725501030989197520362240540892152752195285141963378203179024183509123796218028307649317738169233766351284652994496653358103690302117297260039745806650033086815601538647762643480165193464713535924564627759874164733471336194072117060791663062481959850782942473573888041426062151466148121851800612122928742913246461448331154400202017220550984629830287869684371536035001857069200599385002068724590372296105662920233821751272010614556503865904320000041654279593625641136686261335462702465587666885781679924231734071375107339489720131832161658570364924343088277770902144213685492897939888336620486310272010972502814802104146736073186227217641964158320142464593483012068398181691627748449239143185467921323021434811494133304898176844012198632056872552872748980202662291121512539309478159050321970561959300489071655603407588946047874445206237406404139845952279305308084574713769144320399667215856638291878347167317700790827126283812656977430242107882024074549603009315102993611172265172900432235031943278780577647133752178340382462614370469886660316634621365722029073362417430640838405755022213048912504789559275526513317092956596613658326722721875404177615847359976007692733234746245284694123624838262026366340241169487258481701966687187445740817231684821597038911434864904594455870808920682462624691779732406694849246978549413075192486156114703976065968121464586925213215326739573009638653806106738885335154956048265065774382795688278209927580427030602985505530721572595444988553891209362203487270474882924982897858717522162796715042313301273314897895695123308365056271855716635610240338073641299640751928800101614908888290706416948029834170711342279170493212064591527003836357154975049212635199047496142891518947662639857768201596115855483159238946567535384263508860722593197724944900268195761861166305481124254573518019713724112169065838134151905658862215313281901725794945429178085066643803441516435389559765216055845132306983855067612209791783050589873423139081884803995236414977007891724806898141062586762472640974805285203264004211369277207820749555478199163613752117248888527037442567198891438702346821215204099756173417758710983877771387122254429269290535453341817732106775693675841124449604666990831536219637349691067371174123852648890375800424625806981847550295029132018161388606463842382458411502625743046121063974811352522258207515391241487778966753776113681664879352407944509470465139621655187729968773202224408372674466735790323810846995784534095391490345541537605948682388904133258102400831180204950874163263702473652452093154285920444941388782529356122239059217381632484287160485618871595120547903307553742680194928177095055964048937246667925835085572695393283908906757358604218258035608135624244952923982621071493428873566132623969297005160668878670480274074715982546961159961213858953546560117299119854217219113303564015703489225559213797687513894232554989467544370848291957603595801390636038285047197988854047724445214039639719364938073687735642057508496836254091683163586454097329255150640909790365453788383050804117301505261600029620833414248408307580856007869763228475485463431539797857742981922942350832450317694901909508344423806567206628171427491765067796418133832752807988283439019088012391133292249121051481443473965506311566484086547151056164360335284677339721340077773140474029691810321977363491287916155327117128042383861505408274136408482721513797088607321135690563191214926433491101997565854769177733437164371450191186132706287045399237334773199487679903953052260154045814525472220693974030972874242266099504779901397282895646054670918569072162057319933434452537429166916949019059811676834371191402466290718705159410951573022008953183271789438306629057627220548659945634174892201152800229035356099648964887637544456284965660026210028108619187582662419351683560739818516060152341607005877683784364643785383355724938920073565614338139096371906807899198826798347313780475760275245333980926955581734574039289431530903586123683152255751634205629357017824873388868003063496766515467641501263624701963753750591399388243801606562601817641840213833132288836403670319411225758585604727422119693805569521705978682581669774496457656763402291230750619149745583731376032885601125603594697661600080808919091153448630953201985872785243436431313184283661405255452130053846590361339282042513483221935234971291480070773491026176706375601104184931679228858121342192866374038272576036796926905235234806073059830909355448539039123710073176373622682499320205875267905424377836589409546649136485081095221121631635707794448443741684346730400854877933035001150684973984138623358550029949317287531681191365709300622186647991682713566430052420491038378544651715170799731024883667027945704998733550855457741939847573547046503791692182452478450010651793872408014272818513435380927410334731641697495988126912031144077592354300011089835973633635145336682667010378899549504507868942359585795408494426141992261896075703086773391246454781751722289772934488341105169335058904989217729313607218913930846156481858453577957696262903577876187335235370780012643397940369100084204615088706690560486392141222183557112915398665812965403103467687644577498392108695854013045487534845728352625795692337244476319678401173044436906113252060405511773642071567567030041879543860530058432473122199511379491347767077751741811676686890063278769197261068612207906858219880749441297925676878262097878456132370973634634001929418249314370959160248106805893819634417937507282521829494103193897265219718276077951347261333412822213086712776651884732319919222082962582989517145826699864430168107284207949742881636358703643749919257393338645883919985048597030014664072594230575227184229933137208481194659632568606144086708207088708655131013386368088696150939667547771121973414385924980897468591041022319001308310587094170465943473273167857487543994977494844772688119493818635826798625114300862243219288534865531594849913924656040556775689027024267108832992111658588296829545029748046725243053137618613348711309816644997975877131002935940427719353681591710702948400026538994966977311013244858178683005921879988454845190352676518042647701716996790321614696796123019231225172538333350265262693345132234647070084655155051174356307951226790616082072220651881429892882442969305529260810048316862834008830399496076909013774982348489142926896658133737902019000330552728937146278550583413008479157741234762792232838788447171814382700358461766438231750063649515109762094015299994383938628243980403829351031371887686530208370182496129786002763265159492233839079157379533494133457099969816291886220577228007834611387631516438501876181005869025072751916784701385237615878087616360986120494900348357970506677463706709834336917701671929747889982829335592067186040285599971842360375771015615518036038840493576475442208633891239869089222186750430256863536555169997323224746052673683474794069381912857670750293413232433973966475411356970746681954900641209444696619030581102672855500539927912485322432186454182064958464727899182053630937152290545390515351069186940777604671009298044642069281725149496909455378761624900724150835163900061008577342950901489244331696560084742749581337860400609921898258027100771332138368079447517810297607682648721139502419617400974923127523030824716911155194762574784621686399091576866232355304409155113364555997640541638287622943495874898448401042654998891345998291557131723948202883085305908112524973971993033511612838005278215435428203297003981025783435663745312851535760472800699081542950292846383525910186668190684188755515865138306513931735269347756897294524831281193835804871364309322566153821683470191058776877291223348558947956752844729922255640129473823501865183385286347666597791613570535502053424042666692169273067351792353770163693213265360752464009822786408826652839434483161937962549426555194455177120507143209353262543420017941347929935818681883916801581443958743097104929253327798789046248601838890725732393498428226123083679461547351893724237559538827293278959723698006863574179735815304045903767881102379465703688708697787656568307880636149404749663087070973308712354377277067576753494470518637988248933334405979537746474893825015563041078915502438468916348292115540490189913151245461022685136079905210315263436827871534655523532426577057061590145450062254841481230814928763566210721577314417718708211389308118305720759349975310025179783392917612555338458769393594945260950303535377975862085148808357648247261046545193117003730186868953000198038221826508768602901380945317766299559399838528900851431017672909166178030176783042264674842889674257886084972090504749300680629059828552505844603903394643197381557026919515342510365893174995279276938701765476300840111223935664200366104685805861363394583970755899272787587024491549213118218554703928866357731454748268115388387821709989421896304493836896260832525144461769630048031185644508317979319629985571653963648292892471244141641975215385318188330568317575072316383935000575847281023744616079085514964845898660766831212542695326505283912664440306515170171818177832250563343671546731417964537499326896191361756221804374320483962052179343641470678841162357965023168449693911073694578596165547012621842212658130238945733937422224251691752398730043475488100702220703522959006866894471550342632810807330975073973733659679280249178728686328551731697604852110384858716815633064821607024117959673392961292818101459317850485804515077584222941421919945866273137964298840043993775775047919403770562998097304241931410534540232969938136451321810399452451042605559109817143981940170804905709566440041978990695113829988162360730469525341988487795393520761573007567169801825615011467144220165584589512992024790812129671789929819528061526705365972686490086293267988228644281822637687586188022416077549896119247468612281447990343765573483499958923985692305349595761383709764672852127342443721353068172612535314947235661324807298882650947174826783679325655806805393776999201928405426142309882711243722386435400055351535413136061458155623735733424599391389008980890949642935721391160118814652409849968522835206655475891830008496783412201705031761602702539894566898385159613902094219322462764328168922486984834943074173937264282162946042967340695193584310843606898271206263071940655792548224271342545038949869517256459195384082566816125718581695712429341794285059969317265485432980944653618647794873717389122832246742838669825243746118572410375941362830142568413910925996639982609767567589698406564595772654434292058412711183348284194256001564749534394081461073564603324893237048328512779484040686734217187508064013438527548100597253901141264610031835536199535908455642787909088674148592724626310310263097725238437894364933755225932187334216387763648999300232366656901575634182878792978726157506894408355238287750623819189577943673193296633343325616848015423529962999134538327844699165647579652576310884483549899074899343641185001168895392713943878350466066488632839071952443505750223251612574434353070947892522653191252587324177293476448279018588235001237775308076274318543739754524518641056256878809821600429431573786920213652422927548410621799903064154520794287753221342580661507038229511498743988001659223142538126058839197807973286563298068552879665803204129429556464353739191262975170619298976254040153831598170610072575657301769812209283550340250385354057039515300855545023902269939001410029970297394757235351513942952073050528649242385906011747946337582271392621654284103853185161633507422426895471587851396651715191238813363958099122497016378755779373968182724949956150805504972655754450925576657441910347412097385602240116511636509088372281409103193467315550996298361727224087129069802770770014384583838615812090828364112080903484199773551267902169007701205524349642988412196451494596393273395375407145990859863758815603484154584566372844836477488415822907030033881120079020149790726495166725198785582536566204217271801661941608478571179612733832624372046916523174555462975965667336306201834718562818948904141582903335498583797001924095426288406761804526185471696299629139498727937492041357997659548830643103352166714121601190078586489823353687658569553218556971609469276604300587112499312855806377703823560317950958062751993690597706113018384654450517461976841625269062675913281369041409932422945705612381423660766855324483547026408036390252034487166175542127190261383140767726620411539313023772775526204616144216668825706217182293284601952701822846274443664991939915778095689798649952807188898231024165820315882466443361791917345306628449371332987703646807175594873050749148604232690774320290836340878073993715718585641949030842993456765033653842379316014015354668618702873985923271167186063305305949087502508092673437345960526935622754001727091474460929362910939280132942540774758255923479954599377049748588424125711076714258273583402652114607076850209323489235010600586027276835382880290096273834745011030529486618719594407981634935950372009681146183470596752478436235956608701981949067471719110346184133433717065363600201335754990978406743486053476499680698790670806952056023302608587300838205978217298121262044998064317701604814742084203608227875720025370373940465169800313599306479730876955767186268124692364272399514190532175322218902044067297374695080068528476224584065312959439131404665045030303130498980908703630659087063527083139645330873088329812191411453817064727657809374060032158340075185456147331385138411527613129906225557416872960398321876000655533277249155230899910365716036616427199504546277075447203465491081677191035983874000829139875944343472469182397276326897333554789328948159955147034923839480486644988238418581287970980026748411185194816789954843188008778855273802793526334931507246375796827088002783475986960813546339773409582174086638581398618442798724599784755329506813765742457822770814015262502706809251995497307468788747539448103559026753699224987271719117193849834605703596344000293533504481344879806169188324881351686670061596094338827279339574446398338692686736871058828158768081432283833266038032730956894709642179517629101946096097191059926452666197546716350876053537700695878543349653886328719590114715573238879949306641451940705843111811343998786256602069055661519629774408495731483536067146935129343175275382248990610361010391077566109490638787333980061778816912797087154396303948482650974194221250029912306900096277200344842539149630580924866291669919729642712083051462350347489281333566000419418773585240048386356460895460942682473986439516818406656302064219328661549671673810520529989856591197459493597293975112676248966790240630747896717167409947595223796374919103173436033708973812504422079802704834949235648195538664142885518434957542516608213876956764927252257247691280994719110514270982495586021741590562247827699116092437887908729178392771506481357250375283130316882753640522420841696238588056345086361354851784676522044596037359539424989875650845743612173995868590685553801549763284759890202635049335019235006930072622945344152147792028788066200293665840356031019889188396716488097724254422527923354629669995872146037266566788831891867188083402721445568976158690876968338315608051202540703330700089479927922731641130360895963349837163137189982576312946215374495713835162223259099986543271995354944238796420842615094282684064704760090762490898426637876953030421648292295101332307829153224086613215063099585128848205078213861140991575558254696327283860652908753271069933369254582939142274454724394744993311234489109024927147506889602870200762879191294873197317954039082804179736168218835943631065400668635205458169994963962219377124291051134852760531516730499144958362353193920758082704832599080529630523216750029889740342898575920895904308274872605351599608700920398372711436518295517203619545624992820415434057179984636749924016657530782650823327680960968585254094845532630426056945102475888743330664111538892918923922441903090673135415784266459772724368121583285772578256950201357022877216723392790896353775892818385884249323292246720744283997493040011801247450635012430881949570519899155378408036357462814934218097582411265884153277355886686854153694605919048705722632816074570817808286427225373574369670998267729534005045177898854206419421853923431323572687664296503828214196971183316584625043985615051574742549218865654337463065786750142893801818289655734870222838195294942900632453851711194283561477751897210675290495520404895981744980992195108534111719217569719603204799703308448716230322928328942578775372951128296293558376877414216285893887484572849308428443403010231105833413436870819557937916810759240384043844189721331393391790165281706288847432232332434003870046107671398586002046893459765998647497538649085769386584650898762191302309058395686757748525521170123633668376486834626266573667003438098243501218262846914545751824348360037796200237845952223400616784199305144313888824029384723619514708195870994969864381934116671709638950761410228727871566790863505715925041521643154409257238048052000234203720855703460856388459896750060610814876796206679574538910678850517682392325931694517332355631272073477467198923797219479554914558430534910864173376884507541102799400582222268959364271325624662659490226878549828090155015230387312414923847929856486812998800748371937860526861356428756896267001911139875299436490685599036246762069798828376277717674638904789588037774612151446882817386277523337034421550454227110429199909729416343968564933779743030509108881676738681125709707383932488839159979420154039140879254106627948757641750781714345559517820078716090099818169784268228573248012733637826071345656776418084394358896450871146178715337408186556259774384644203210115506004851984037888532280344362068887769776778796515538928034450745791363252091432144639822443464481849564729801905760153906508725814937842423258308086311054451312492163076094963882156145944485671865465063299523069112172632526014083238559843795041942627212122162415618352888040542452794019062570426752882667478744618861679772820475789612706604348846429666000890077333451092921179412720020268110867286106550222136258942161095847883923261607045266228302580725333846197665951092500524769572715344242457862685903908078145359673053655792605084021277610788269052928682720482659210075242662977808684245821251954854394187606568329247248173318327879266949708215830017575856822584922438585097663247358147927286288449455002620623439138417745408687074171652621206806459999024563169379333506027051820265919082703069650583171687349257777691257112885347480545251644496024541818539255846606706939244375457380849794691821908050615250036485916192985677103053297215030041726110495255381397943576064986516316483533749310503008801016401633157387406464489252464155866332837159000817749451136364097728471757408380760082311278857884399550083784790751659572737657888884110648689230048793245305479325805916410887258502520141051887369710618295143788705723468075292548588239547366676415569608983107186442450806424826498861651806231650119830007132753480836644319395823955864921101376824602220434024408296774153606112980411453735611130717799764676975238728391867813965343711468666613675811658145228610029900918500582671966701781428817395973341554693397241395181681423430850117798364447191344217802346611116476583076398998949046166761217386573367493743465040557905534871463326101457336016388627457548848737168971938464219956432998471499576776968094952168522058139130399168685618867225235687114230762990902303364767314662800319205884413013103085203132163895772865790227451124485137886960926791030954082144221572276418894269461254566587729319421386325297460216049371479054375848108511414463225367556604494006232498162704077701435382471454140306257508400665415457198058281218147506626204090107179887438611615370345713523167991492466470002930619997611982210959407929934563254071794204185493258713533802279014922220046590963588524172968536504364839458783899581242708043639414467869888493377377714006889792461765669983369433488861901235511938540307243040385618143008358818174704967394116080528188266220059999024554186707517606526231695574834289144078976388236005688407230314079932259532306837539225060626808339789883558995905255815391968855567368923406181418961358293629069446011952143044251738250215251875627822069797968832031741083538921670159825294824532869747827603355658266244595459560142080366327840099521685110277119552421079951424673846703133819950999035330019180699093351618701070056434779400530489498479043402976924922869232279635082229678978163015819400739877346477073308870393764591215101130840124839040503037710298821786829242481536919904812728269823428164735219323433760027052297589839941975208196062337966604968561334473518975811876124950603312364419161196478873723485473046882470958810536110066401327442559955665233528870585262018230887841150365611225388086046858461307656123769923004460668480883681072556853801593552155585603503658146479080246435770369683949898499528859152390845797863227090749490332707324308992016726440060439260079748887476309892824649956372636916093229511466985063819828726270714362945258668882939195814875262152889423182362529383552226243294344960642241336997133264847415476032888334820870749292415395653732623603294172525811655622411000540885483796267396358411424217808074241905465847507496338885922106631110908189922231623630869487887054509369840309388443725323411602207037788919929095180136394113619828081550009134515403472043944206999947519598266939531074537275298869496246392698400759113678165020934548234048408406751165435454759875967215102975080014279822635503665911319138213863356327672676650388548054716655562202843274160168224067832888273159107279139453835911566820471195312207437907730868615251648703862276070259733297222414549054449104446424823141545064286464686256765316572422781715889695235150997890478490565038790329334999907353132828846214463938278613348349510491049827991517004745961202260380635177704008345787507066018625361191706521344556110493980033323448214864707236957683872660250305870754524572796699175956435806763845367938429949276892165142853459743420369733668610807152828088617469065551329339258367943184665056137262203841011497070214951689277380740059286382764950484668706733296362620135772040504328843079055847556973684588758382632231684515018901486188868057931704681014634712173457786964782030649011094713858653443520596737984312871998538098854929401877596169983487208860853207771107472985201231662126997981798439407171096062987151776918284121143348572040525877612355761640559765378812166928733331433947682388634697069280709009218260944007649295732760708522125700970787490331707523698903272442406266897974225851642938141568850089542284210426288850032108640482658374289564262052058198102572560387196002080790218571072319102196126922158269516089792099277230155362415319926401208641711629299311446403608524510969114183744624888134918862912834988177971995747700072476737729890575055336116093047228654792214993009642576344344560474133733519894255912680796505129688986306158691650091369824036348087831690058113745034028318361521629339846670204225704401360371037087393925491499979115547954598112754331913971914652549385392395167684188934973138250021448318732187405476135921920380364865928786677778539505227283550144970753784225413844508146753839335973696275628174458558686993250968767457668461287544420742118147505287295352691483812298298166765650434355742781204339839557882428475116539292514295336120432721801338557637379025261245553987419574654033193544586361462578436796541866899921379218285552503620546124706780072514540177029459599853045917991105391814005820361855839968736750509968354103821597584817708016850074922241721885891636958912430062291646025440773311506090455653265222243000540452812139070553559741226507716568578707253087798287320866607968444606806623664515814643498030883952362508065164491484790070556529879620832723115681681874439010364657481326626114134963238645301188165113126705978864027540683323305755110371900250784920659108135232204698155147231986900232758258154572308373313311209337655339415588613476513241348833873085256783185487709047105407785248198701071193676522784344290672663148891919646633662574506170727626024507012469979210107276099981602192385450101577322403991496621680873206402261233796615532674172992483193989244674573706004854543718703128893064377441631587432940135163380398033475580740449367969095725619989543507326692137499060764800410034045513046153239003484135407837523785984268528443854626507238570388221019929056090674520206061328332296715752981622046467425136656795945315880878092600127822921021795484240738164391189414072748318282903203442237841664786299834753941785669024973944322638915339139770866643923182962817036606031178483260863481947523073438827267002895144378330716439947130544660833859784379996570006849109851687163632814369458250066391728281729651509377268468500062309496492342923389794488092343164135582968557169768686662739841266438391891010414111356058197796818594662765163248382220496663686547128135050983573923643824612617742877985439303747136757889915127689335800448098558876336929218547918915643992504142052838086416817472698598510555776593843944215778873477142339844432041676635330513721715381806068483096596766688809477212326752917234299929416612708725009649001187470728375936581894533929344480242750213928858938807857277407597447679283360467965894958081260185306338565835739017578955866877644472726181939301595422133542270702325852640231384153579926254151772607863731897821490018549443322521789365976372546487998819151320982400833792617645822920738767550857142783822201103757027068623376798827091566072617417114026827448429583317497060957202057667362396249317544742717352442186914570626226090888192291204848753641125537332185046297038667569962482087902858790037685881524988860048453896071581310603498588427756441235296216277034343420111375051431258934929902775680174533177111383516993417114501838173415147748578000946866139810347857521547260393325982512532105181873368017574567319413445904552747794946885559304967380109701752637300460658967355957952923030694486290505512993252205445077212509276029480818161093225304670257896461265270474379044607693829995888392712857521353022111234781812918533529415473225683477456692176260342592950283693023406486244651495144683343673502835358836469826769603344520593200549599657508764680907005594437388685925462738260853238548398511109876808881372317322472848450751904989292241744086910747514437514876421767823117591010847210354757962871042491149600829537806730947454903479887023159424632942381282480617672077137817473623509851823859151022196215963220934214873450991100383459851313883716332328943429918239130484180693842368488820094541939634650155964819990239547337086329903152790802318543286036561638768871661846798450913334822582291147463545929499045424301233949467923380856112695169993917063034612053146381988208728854817001068324034187869572799309095042787382011231273624377858539816027237932666126375243015797982751605640517850071853767586847726205004897134194939247051979705111499968250945904020974703268669244199489011560212643837634495364721469948047227159433157045897487188500598889160763363999244742256741546893304163856082165686226561649165734345305999432150816949132241689595039661340259171157889582212079539452523910929845337870558533709102955613297345521783182979875300106895929546902418368444984344423595431107344677060907678186859436319338609110040117072827714194190908637570810675117495666666742665339851268150326540149750266506633315467176199731303848733168052935087943580170696943778953918140186933970355060455789778614183081111964047436264996865868362978209492326085900849522795655426681171879142715940555709459780397491926019373600300521044420055838720434167730727753431749043377133657101335475453041643096949878280826205181369345526111378859084228566143666174983515513153211821659928789451708746887476241801758955920630221582699009695759969280440408974872238344216505286503922388810677914415912609843020522924189858079058403919371954706883736609874722789090037322420917548634768760268565439955231698217924311354977611225960540572859366753100852966711192330967071493627037934902310558652227339654591862017079827425817017723878613897572229527934392325842060065826168912039558501312162175453720868894745486209582940380321433491099218809757684972324691906972789426388322605819399484868594667330746105202433805162605635386387685663346243809340866298747193478254542466234898207912977615371106240541212311821164187435175551237538424444125267767911694043707185592896722061315249789721067278216472401905093655710113993922013703061892695664220751667435270022326880767061470563281253174363409405040827039067029871915247618602400278874989966874645050408857854070341373210203679729013048155659045263742302592407446022698690551567600178695254404032919756335553235852595271413661478054490300018123722110166436487030662598861704972700628121128840529846003005174750819359419897386077760361719384355378206947205690598277822407334155544415320324641959026443038826767471545854134930509307936717072420108508583400681970275834066649589622447848135051796516902211137126132162421050315966386524410863429711798518206863810568777606121124122548789993609213467087266412881725587828015632965579408336427679900747455191600822612701796913088288318921861617414465192560684007077287617000263353374517886441378489668200997000469567154868396528201546638281339987380792140445549502230980649432577180267916054099278165760869634314165518759230623736498705190369260933057378600684389342455114544972409938739803640637593021083720395816153924332039502633997324110467074929471647968576439696917828163875935688189194017931936789266484779257703803874024285720421526228911418978822538664190670553279029114982114834389681021299625608273092080308139844087732205687825664912098918196526467837901676528345048724188539742007337594194253806341847747041597565009051680398376017523526672016689356735107272045623618091989902562478113805353380641058142799574400333593085254632870922538947106572650085523523735875329068011745637158966926393831153513485461744026935054595840639290032104197350850001756986576874217411011356276024512022863745303019151989107951768249383421124106299335354939214155615538790610627570320525585872640389606708251914979982739043265062819967207560556815308411282745917877854092883249105699562638596524174439067431901539647273945116628436595171332409123934362791763172486982006914604528637324471543541868485473271098679729722271336794054514617541461790092489079967378552468596838494834368282688545174438957119087523414063484096970630594434265677101482564521525934436858781816406785110906159802857264905194863200652566621312734405371081390883868238546630430293443241742570205099897721384081281753584601455899457294656794166446162457563367858269341010177754518578272356255897103491306113753591170471194454890698090080546196476325025479094989838481600235303164044106763995701383141734712146063718472636641510589544954336466048886717630336297569908103473734397973678082101430417889865139056645161160349082790759460841179126356694419566810795521702274822937783278108526756127935099568490350928488043478179853164860629966822658499573581890801310404944405460802667218805658004871661600970725121278296894719569672780198036988163486182103814575438892583479811220596007150479990180600138085151642149306658372643852132447711115126549237258828418820490755123011611226828306291909928252307447883792093311547443349148359418121469383912907833067858497605926685266158631048561425964821127660691612007000002992538921166433529463387419485342147065935159109940459666669856171017640357210765013833809053226900158233210302433514032333424635141230999008026812808288152873185328242876635839557946992433193888051528882517954618217696954112665984445842630652385905642775885115495708624405942062925557746035977662077944132067559717889170208402435605581592469805819917156650094004175941354499134345068572276811684183421398684871843954805687312525851176300943174988392732591118094418962350598472298685837183315423330143877042593391830332254853446080472616595266823636780909875217108829245134801796556945028717552608477618187313222008901150726593967355298859807763102463903618453779561553498357874146354523892586782369806657071505883483913915991777448943258666867817163938462535027888452878488845931352228981742192139661922573874629656100848002228933198368436884253298054778069240542208373350246451229900047735996490156359069486359449662446891262080555517284001113475628495687904744313077224880327703503611768915189254146932852013639828819951900704070292656574925318482524553407882678006052801805560949647022769522540225248559557453832902492301098602010452926532058297945436638578655817470493509172661291358000833234173222404885721618777188043597029358327842086457929618370808297341695049287426260372315588792222081053940422763825135094669059261088648594621869205271066606680872007092812178809895366427585763484732488968168888317265040158057819394768870059007185456061368515415999294014873573855183890950156491619250587679732471829113294325634099948682472729956323098883983336307575296466699989591377343278495604249917753944975532976495950003529479859416949156381777006868210412055658532738638136551112589220000010287673473687648984770032356711072623760791666449493880906111639288424897041752648373483065621575683997599746607019271749109912074450344438887377336106771775710416720195903789910722546294009412703505293252369418797623788083691149943821755550909203767303769052726081377486983544796674372820364005752426148101672089657895154283384820218059662630653301839648276747566622986143918848441818888577945474482506694307258555996871334901642992399402536921008219398374994041439673432476159014573769608009355689667145651271971245521074685649904481011748773477317021305499929780529179455253426453670775925754449575717584849878940978538002867272042773993674136415611055814051157732569564833542455332387593871957695579969643402911032210035534910968943138604548375153741615050359216884506683743370590937093616390745837468584750753594505548962888898065095469639913861908975070613002618364888657682134251120086595772650573411509106109794111170901715548033267868252595492450157160646238790157977405574130415382104419049854323761266625090438129774959446433196610215942445323840592451838886126242796464424181595227351460349577424563028782349708027360727846058028151404590657207602462232135913325367888049478519883523482628925115676764877955329199663300527345932521750396789931989023860524950226590164547805344400409519650648642721954601261728929117197103743169236684916732668740542826030408798223794548954951245217604267959583617258247369871609152148243869396717004887696720551487564756092254833777464543765275576473683872099868796431179657435955101402551983574160504695897251766548481775165730386212586878493019923832446490414385482564213946664054663539289661532770881839483823344017978675125491087173005598165543701479772480344677684762135817129429104655495731331539669705079921051550830899651805545975180667190802723074394757853910107686050539084200814428178060088263704557551603425829809098598986362459326375856242780553760403120203154292679444161968451747661003222159111919608226963375729366041550290706495563397439516151372898949320188728332132336828365021464897573960918488241038857513361665873748530595734877373183773012888577185177321380414042237546919610121324705803766261071996766615019764081042397259636688488294481958118592432401429204104434601466742571680956815890329129598613572835604332201979953004451108349028833384988630844694592461069079653347867563290666122650041109188996991037868748597191099029822999248012366515346906700310851604351560832803385961661274548183206290179725987793143308772031232568260724852184045379712381897046543747259848182311819868051956096334066192722190801775613743371795573829101663257925219432427586444851846981628997274570584768583166123519788815917515088270393105580188336555844053892787615018642993493848919900946908079201114238644168351243391093584779052299117281924705266906744611106696109648069029056682162806561998396128751847466821657893572378549686804425367462499666152166343587417119539147849324061014095614463422472413168322298557140407048588412486043207371251165720894772234222944663956881247116230469257369647382355314568811435120169285800236382953665795626850127890597513792783842872709616148265623425191503222772385834149231407325139067485202369205381426507798902088541405918469472101815918360141066454396293724354710718588925071396487609905271930644388866036159330304062680857209369385217235933095706620819071916282606613218186195351514968328054323759027909970315087058818954364531166345991326755453440201082651476203544134111198946294485007675590577350469690722489141071824490934081468502747898336358099636746684150793206042486858544518695545420989965409869158067790456372127435666974009734638766994337376077562840706857451938940439980672561447202728229440563658387254072559289926317966777288198852423092228536300136861367823284066950450687371590487565045610067704885372851628579897381462390465728973309513271135166728443747515038608644058770004045362463780105747761359226961925237511670054175187223759882020760921367901914600965085064894824684525076912279037157236690461885557659444973566255489200855000473141931910966629581599752134855437938734739492463282218391470031422301747677495023197358873581702959496374102662905765330398646748850202062531488458801022026750069218229267331064548521133364063864114411379385400325319218895048891143632473321637949453464529398832369419921024999009043030760304855123993595041967381163734693966068090949654059760563210461746563751396451927537818148489725431841117436279911737124846201305355801180995562683593820378429400758769229748313350793054057397352771127951148358596575233254003747160540525199204733424686247339587673487753274797897681836616119346118920456439548634769133116355510281542299600776078361542782432112878654525943730958217391562196641317150681996027831601839912811184109274720369309768926742325483049448150590994899791469022778905494183490011994782272585639965460220060479697124549745364030400043810090339658111928831759741432855620629758933686963727598480100588907883023783352258668698774063186626031767491006755308546148959448717819930576718661243244347506221468996315317396753899262975672319453786018708047818044410533536638970550172642703541198368966006767630267215024553731971392308176724246269571950716409875922063145796388023640410214229757785438772011510049893133682609690164019475949974232715830919226895942177331972059449472220150098555537559993256889559983541233043069903863375513784573205287955181136089632254404872340555583087175116799222256598999317929264789929813666554323625821332503500852545877776289730634070091206250139360617185806920671210287021419208274465113038513383337313806874191940023124779594370923216787903418518376326241439209357347656396697577139386486104620058519884195097315393048503819448554023485878283660664639287886247862144492251294883874581657353281327988091303393672960888883365529784609339115890336209497084038240354948411715063852257805779004617467090954767411306353047585344326741151887038215200255886806370227880996967413409303026206429896777010468396465979744355364061883473777395219471078179380991461421017520350699024999019508879763560490904764977985327237020806120561066147077308705071827186972483138224477687565141550439283684291520612211490485141777603376785533936165536323414856982727560033350580949197566896123645690156379199299768690014097352133100412078119004459929023557251063746930857710661323516751890593248985914029595720105084694895845429016995596180437417578265166969574448163827854035002151881553168867479500877288539225514937609094453825786689127190164241781245989860948848229294493120218301027945435497822053530074158721965603975344941039328034680982965881218216795785940889103635524606024338451290940125939202888823841353062269456875095189316761887642724361890692381885565993205461171892451962311080278840153018142453706660646678857866948757379322997405707256368523154017661470827628851374998148293335085096110804851654119159968834152358288189545953040841373299570349081524135800620515602777346762477465228432612637102139055819170425877025163660101795448004405925465321268697403820936314902668994716226475190975048946840455346666542437457967241100752561000164002343990664028894563215131436411683476838127948529699848560077592459487480525996988781920223277189553367889820460366526158198234052911962461588874811339885125052155216016797524377675567862996623553726328612746417350636582363606928330123328642835020505380244172801146522210553219031722204639797965337791263633249182338985533399669364614534145177697712348831191371359585377252866443499658011758724565358850667232086249470259386740426042949921239780279915655368947554269232981826973118580683983038810713524167106558054694693858285978048886119224694285141349716352071979327025906664244260454225361748533848366022410186312098711800902835100901961103204496916425148507244768687154056186035375349573389176387557884560012380081184451542145535496019874297815464236194344922904700561602198385872842680290001287785589445309754520902079322604659415034580200711123655525077156023938734969255396755423572346552395697767708680512685729812448836394989304016562696905032763840569178412180668978296551324308397092867029631102710290719005387776985037840363278737271633802794959829445031588431806133882140523047345351011058437048777629519000677108513539701286380929325296660703069743278510365168017131526386413459179087739450291191295007707400411167836869127515089437630557712151549815933847082752144031869410738323763271501685596127195735626971223115691466093905893397895540970676879127623671593104645176395821904304495735793442243496008341005873526646800852344024572947220469406265367745080257154011528633635951377596601856447568779826059038975866873675031379775022620260048999941946546729394463359039871355485134031419460776198349294487786572942443172678989143805910640807054824576217823672535871398956970327993047428231305808494245493916449342707145107657931916357235823847448420234978572198432301649338293854931914435665661221285353214654630191891625716393033041803330560432922556730222627661598131271416408138784400561083014098436785925939889418247731474529461111581525852135601141238858125006602585886180459775279210042121093490331522858603024036625155843881990959361005264099207062146204588704303565559502662605795688451804268604921442916000951889764511847913260723272325271123070501123201088289065214380216900563838237914265330690854798463970039354319436402014462695801973088999832184404192103842981060502776234173580513598227118801348304466457941433789080463025380151607384291194828904553087637554799837965715509885451526330467367315107795302498364290940517828426617747958760080725329946954107362019155404026825089471171010238161194325557340250243078330896579232428654939241622910335507456113622836297096389028153833351199228317073432742623725889706684115934169446905074360506471416842881628596373265304538642471998474458482157613817280083747588747429270380598670100992864448058294894765537041432183232937855195499747640348240152251827464015619727984070687883291743184313916210848903910173117523729170882400627381136794026616332163618286205038526106875213298344334266535342049129999582932265288887062871510103633745204890163542693558036495378133220035603207924427989614867833098232131611223733728112622804938923924008621544786208691933760920735453354740683902835199664450599948695432940083933833130393751149452805170767201990184075077810700836321733942980512562428613586998017760478360925532017899370945880111318735082313369433610205555637690099068475560779051503957796022171867358868690095107938015663474133947307068205337620946092454085517153082263451413482696473448381281258583518505306554332897231105323389932002457480368104407401867457542410740995876317277323887910401592486667782856568732545190082662147059930976234753066273534909041220878455917550533793342313609713327929471638671286819941173899755840680411701023387216411132218313490288647919483410231611533145716347218770864233962453179230468321779746352442360887647919924016604917089590278694458690117480547775044312650059058484611693462470331551912216134002988946990454630926699925538301644649822343729814760524260226475938620701602350999421671971192822746128798100416749014501228106979293535194256186174923904054952223149920980800650465987996546263230060866093210661626512055623272534430784482441783741434552840329075212241295715284365969212210745192019295154184177955059691203513952016714557394390207250025917590615541740721248478655998134201379060680287016344412647707019360930564179567982321894723014843775840519531865379644962816367220084555861532377146395717632156781742300126330346884062212344956937274392690384501151324710287766121355961715200221448050911192585375435319325561296144039677430304532643079716741896030021676043979756092520787206987600430369136076023915606205345715249254038263727217745188815478169305533815797162202090308536743238723177178082227589561662448691714784036957296316660513010595056153442396376366736588385986906203130688015427343160455262147887157262731046501635668243502548347037769996182247076850362264735787644648749339664563348684885872284034932210214483447217748418820479554962392346686699097729671960918984213935152620941226866487797782783665323576447313413004077472042012622870690398602254689929313412524574143352095239944999427227134789517015611679761579574326003340391100041707295168020688603099735514552795132207794075848104124358698159841593977608735554036986046387778126276396156640001348403351778544553080571583577319535293286754943965449858243721157377972244234972631215288789122758632641299765568215280179414349136542648191508377402131224158124663046579833956943630293515447495580958377177604494178843662726301631928922269149738600056191641452414656490770647041186596373295713806709591699131963820737839277275249957926160725126977070542779157287354827733259071944968773278002944657397751724465343676594489663290036317880933902433710456611082858815741919143585392324800118727314571124242634119055694980698959123136819081700073854610631957084497479988055073143697655557894654284721375241825581872478939336478407178707907558577126046417392904733180251546108771866213701180488699793275551852026287782484978821280513312110192220257296687835797452497859061837205044297324978660354537973677153679835552352875633270464026861575671409262590966592756126845419542821753598233161228057351338226899248074866223806938201198277661600804140513618833510849418496820861454786733186356573049454294809436818119265878942225430634963230987500670958248907113802343667806835242400081783075683244531896056113559259278124693426736645335398773673787372622169901165082938366458861154082943895874481964985822742400660163527007742694005000893848137188404884206781284566978784818720921859341972699418477452828185288558744821482009616367497590605044320747073236735441506853237486644415479417691763665903643394704688419699352668357564739325602600713195923927294030521741235535691542014087331827193311767374914646211581849427559700342351264323049214525806479692190182828138251696182568866061476164597669378790922971684633770494398139097343065958173040301030563846407211862111785973175636165687800161806715652258472792412681338123490361188783151347085974060035600320861912771759460460085431527901322398090683394496314437223526304841171765624933354362479317585031462530425163676838356688195911363229670480938443950479919518912252758278775901078058753713311141800586497244084594776936309417969841501613148558581440781265203669716625614958651476063523760537143002779192375375720619037242585292036695363932263854452217153218420584137259524281259589549747828704900971553599631931796743947963619771420903869451357126197807328956318024441522661589039283298597923293828434348551443018127862184707338020068105281979249373166437555782542316753602979260103077001708350982285855287451963442248507302733572808331263838554572450164102778262956358457367567817061876920017385200940907956736017541660553037277515122323568631913113407057035246846673547127929557421549051616835911266533335861292104913578975123682965873905929903595727278718515031499224097263142067416828765042854072150731084116945930339246336229466392564723302866875470080783368510376690522099528383944040884808025457263970148083376944844669632319611160446903265570154471802098342022757143708597666768574723197536452647148121576611841624213719365004842999794446440639568426097813493284922756674474329705435090077009983488749377523056246009279001148036067367853836469149007684771557579867484837599963798195329837647883954303428879867490875141184773220339667707812850776450331212182353198471688384538384980846647787704033201168979013993500537288578221272216797946688799955881029375269949300912985469696053793137413719495757542245008653933112621859841870817677227107508722245133541313949112095978878467515663526967333144103231219936864643360912364301172458319457599341444154693552871850700957022586690794632586135783654329758609145592915580789639285326403017589000668537753806677868295118944406265844789875408573176058444861654124019718781279265723846766464750799352973138901372548353656293845829738807548380383423765268381380440462561957986553544342411581127127088634596898871144570470747866454056985934910578142867869588836824546736442929357185487652752927628685826246748991050437227465477342745623178650955604864616843843813421143755806640696625023324303170156988122438872850614219364731640884665796054297973384214101045190474661564198128192400418448533173782033480371789464943116285682345159190503728904299156765852716878524783108386109957367672104313901596900477801791602646951103707745017395762993760420856162127865058728629308478072921238001546060978729291841313954949833647014913272377703780118853315203332966812589825077130773383126145513437338943096228246718556088693982866187088091256997606803825296203079893257814401313532720791165172507713058461510414562785216733856610427375404174472489072061322535024985245198856378620324444741097671638375910722882550959601419097243858404349785450402804932473547283611974446809433237190034294881996516084351756172416042227515336180687108422360902499936273922789618783606379190480081407884978055407762944096869237584208623632758706476677172249231030066251227818038587786836969845786930305541904510946125215900155384904668592065405598024679898738495916865103092826248709579521234271895546621711980601593346912818461475870537954346230080610134747647503594224929304498889087122108987146812844969920467825888525157825203266420582465809494601072360083461493747485373856625167609611726696761146751906439561308990671766194735989727951224886638690410664352603101849166494307850899263213079083132071955617478463862816786417895415225977671019095405482924632242746656506369103550343462171910598605960416105720952302676203759720606788954243928503040526451542323410537979161941540017028985507478705562527924850036130709408506987552792253317950166875449188722720410556190166736716018311307718618334430543493228436312544123643575273824551845745876296700455186775015616343810494614954839221080525055559698309884209975860157725302989364708671010480128043096052042459917482457229939362955086334168548243303221001903320534716317575030689722082676348439332896064905826125004600572577943486684119015289317173045509095119280322912125428745610817482653000042243862615232951870853199850390687918384573668153058440546119930307188927717952504338492368175647333050301210922760249302815211136387335419023920957473090630143082268047129326646411110456615568121883363131707241999702334624254613995440005610494141084836677740929290303406705914936744770331616259981303288453602098349251450709268392147947447830807895322796753011700260269578643696465566831291588788454513218768062454880539212216675230147061791669708596965841983767943661369940990419909488840905504920140997742460925318159657713804747627379609692287679296852159647887585688574678832548546458067811966639935838827597671456038122646735385884627726230148437743681558110059519327747706899176698654863758591622518452903515750701854016956233988844879410063875417749583724379655803440351064698234213900328164235144666529391152831289897890198289700263423898146651552220331508953502501869457588073266921813303187776720376059076553546367046324578906833017452107984035061513374637976328770533327759346992241498785136818997657726966163997782149145847441394422422651202100142478722403379710192212492426173396327532785611194283009132321607100409211824288520543823470286588265622564715484192308336989877977914297148453347046536009053694956444021887377172629843570024867142219230636832513719661333015204715686726104512545881315890440382582057219592469651230691509678566414473092776429629371279052028553296780576970312576983090983998699851030628429047291940678842188407977645495551036469128106609897358847083669489830197720083650472834549543371034666493688313106406301655482878573679805693661713531892945691748262610255244432088601761030198256597131607800140043107137627870986794360883543440155381381884484447323310168959046972229037244947907044385684116333091353746557586280548312619033051773277023438370201373344774692520087869616762269063809741791750290054825499876038900053712664344803847927437482921428115332409536064328835860677011995304975801969642942998333130857970001266419008929940062503196733420451272059966929740170625452608764924914490918987639312236408930127808991729522783361016458116308005636582417497534217992407664922968771086145704927257408412769789659030066240149050897603597211819570946758626690397025612989666858708118670709585910752659562643833449152958643790072827480036238708206884818260014817354175935501664469664221831895097741497013702426829606570533376009125633874530968515598353011072271559520195739740711345830385220085250427209450568521989399698319434719770217372471636677044487972165305741127659823458482266528892318892129393373386093540843641876574168546448667615547006901727438690959164301333768067692777238138726641129563599332454221233691160504179958604523980572911229220252208275288701541184830612701136705732978795291610393539968345508603780099864676090049421709500068556622477724728288152633662679963111816374363840651711201921648580450876990289881659821377952902310964539233903707110424724170375427209836300577932926530483056882353568746210190559400098015865593081791899020480943539945849190477835347012899413009677488002492333089670369243476609107023690855532470558071762292083846322434030692106844392649033140278377166301121915794647924625343221641159310949921111493739131356604430059880528127245804291544238009822647940496890639988159449153623697974896060954276034470201282441034188557893043188655417152635973589545425309880883058492382510119879647684257497341113539457119884925835342147254355552819900355712589703266500756287801460383386740910809783978273840515566972187236065217955011199987820171742345739546382886828342528567522497975094053077445906431613357924413982100217451102841922729418677112089312822498772606060457417992137259928783612339506253322235646877852576854205179510262379676822826150383475460391763108704977402649145027147902152151110348817327255489132943543661614455060684987489534471726655773575938696175722898716824357305734191718768245466512332781535130418355796261627879114613655827286272687659760507578404090412394722946819880139569943088168408011065863251636105234717494079464823006031261070901262255695981536857969397836433749633823159438748071700471531848685948805770256821201365691362725611610569974084380353806162270841386595913025936385391645489955054655157454292072625627172563902786205232147327138068499401745728476350144331640628135814764211746966578616967189285503703843893363506605538985570335672205032123830456298591898362191295821510785777666640669671274738607628288258577819799249736860165522048678322825584086473373276334664448884861609096499870449560212485303777677244528809555712496944317279560723280785769013084993247813801358160352519633987166044611813080581126678857231103838372780593238305779914707706154066970444969036916825027574940027203042171297359077340491125063825880818340096816452893835230811245092402215083608040160412475368950470702134763829150180726135199360509829513297507545848914761550873302637795161096988979748622213302744546141526392986721464248626029429721051730273910177499131021652551501260135500172909777571756233799472842325633238793586687815514372637565092608756535987689506181948846227964793847687374047504896414410633226202716056769254116859618360781474710660941086494029700442005828396749875913648743804396425965783795939019696579244172726763754077705772748446479382019424028886148179029750379453874263119989606893980732018978837350633345394805073933242866715131758318394874433395632755258237316787867012804620408586665245941912058256003428325472534835697248368790005283869168543189700779792811204985496253467337085704593293944082776804870210248958691033984369009533059657026483850175149737111159704783509654043706262236255913268494219490446519027797814102672441094763754803429852545993651885320516992810614781444501185750194635707410784417633822480956437056131919240369159874056791169252805469763955383464987262473010405815241655815152266214951444909730285409213737069781060830115336042729889501863926362088802131093432559827942243751468269544930737055835547593758986836804933755694669264505210713512159206477226515940090813917401252596378282828434986668428812113398928728726518392096394563649441619613038655093333268987462092650783387739555050655687041946172735150440193439439157041445832578018626744433887493713153202409007962910456885035616552594909663700974819860736797481760563860461397751700659448092465182959661109611056640373835319860818935113905763226403501441323139954023260166864702907628136047731497093825301120591081234813098913160337289614271549451374771418768770472487909585493828111158659407613919695387232002704756913033033746254716396908622920115958411141769839682835642073133472089177757997385922356820311333125511446510029386096515899107557759747236612281771044217078619521684578992221558997331524446134844841481877258944224678944411681105195743584248599757594586281823466935478218531098046309864597308670848838555177522290388080457638813617206812302078626119527335966017215646458532025499619820008727419618448302701288075580625099770633312141599338814168185467707450609311249275400843476308800689488273333581162351081597358210471759638342004869386899498899121635371532905366472099048562481778058434771769474226811058272260588108096913755663736164648331283295311035604825150827866122278215148149544584781931195123237230008829006399320938789355925123501668694363790043876982988079496290897128384999378495812220676286509346275208955259611948186450464253905771392859217110109177795139573863611523398309725063986984126236390224172648500513407769270499683342051941814518937207055258067791101141822244289193900122425741289790833553638517837932622779854962347707304379229816191873739499696525498531246985983830221723278456060826097616895552516663612812500194139953605182636698198294410631653388228572415616964603544519163351589555592132196786611923325147537073645146961639204965627245401413795228950116110595355668897157304189339884382953476564004937477308663278601529727584276731245712721003997785268376516908583107231256316898870045350300958088997254934045398642744060325055658070024902845630172652225353531364862335971879735651844860009167888575942508210604506181820695319347740793002201957269191136807543910479344940008304132707660877592950567421607913252665548452982177300845456213852738496849517379261317565068218888543149314737697896823659772223584536796739220548439062521649782244795385091830358684991530854721337494919068273120769034184847272817433718084442457346602966850177596507823035718233569207911325347093018760983750753703517596098224551663192213435009154176582557652779861460685848280255696051572520315566408452124528264716887311196794598526764243557337704625915119360023214461654866366463708039828401293608486339441952855777206103016593127036649930203944897366963122013438555697378138944782870886182059520849982899012268687311022213968879935613920382431926267808147656601868371942904170800481879894006235900713876202352288531842028950770024291388538573658692397710506051745030061484832635586969415289868272021763779811330349977436359878144469098783344413765384151575137154795112372763999689730765456828512186234940711489200944865294661438903103269249413023603242255934497622135703641535073516990813361046442968379790183988144818237206340414164941625211625065029818483771565243840473284780524256641377112760157009456246530873515102950979537714027636945156525500400203937408179384201173219285377280719228289750715589853582583918138790632791054548230680806592331416437928959746635065199013441039055088682222536062908661790817331797379788941911479935300915296278031573081147064504247238500120822998843141157940255166365008586944179451494797338543407349275959460338803833550518320747478451046707829361543348180465543116617851662344244637851440247754699883535500336904689347271396124179633059378861875545555418097233946265986576679235924079798716414149399387182246547849755422825800323177225902446798463865812677989952503154470223027445532677311781461941142658370894260762557165049538289023679896218029867499486854326390465955855015550354942302753161926783709446640987679710709519157062166917983563724827367288791291496110177142387158613594749100893078976068454446997745138142930350172501710348120219062732444912122151471666828045718007444670415213870343972669477713814375947678217434788422174396194741427707829173866097337462790769060324451427016703145420383770155510545254298645280007770789162745531277120067641859098168567193267466067774172308475948368566529901823188435793276113633695147344308272070065301980802716163360148587673522296637838792909260781423414628328429369256283998612284658885898100545657020765036869082824768582180159991150751610862273872732915146727862492662777251875301243362692792948945081826791218722532394202442398830784408794632770328488172656839506409366622170625808534236462264075133618926985664732821597386842831794804772969074511891246183345259351728061498026871522764219786444130589469488867359894712027237875059341206270675013954378653674066843354950054887247142585443642114772175272280365589790917401008408164371176768821772003282237974309605335262335198229225692295653360499510163077813214270320878365051124691598500654798220826891152132095456890067869727101659342308484250327032923146266657740504202792085123487329921495919246466629925014914005922374278883423434543714813532548187295158545906582711672691013683633214578622228539615112032298516893323844657104092203433937236261582376811779780355673292652004396694891844182313839029872419003195139178851010766464821681715184381213646674722202257825118749452375340597616559751586961880949653281077182230215605143647449692422083939443266929308813087796947074485382758706148851467877701186692511201544425245686702117769714494179932626818914158823493935501018902077873566010061409263875216502857641069973409990073870670268756360929835823896307942416953428064851750555416938766078402913925108602503996175106786888309685339173090752382096629462250670721411507648325000861497689579382193062069252318165162700662290768827587266024566597379018015451429006829634574722457698432242318986748963797344021181843718540194369373438641200394330853408258174383318538578156472956471796447467657165249047584831985590412666983915138593628044150092554920701529435291891366584034937387569661133391112173355014447482941156203423718317437789004023876865411014008816197987171532942012930893476715461831413867551557399933163216559371522191703974692855214680699434832435349924732124041917022235406504142789973632996295180198391961620947869225510689758469184744061960299710808597782892909877694284865955385649113569470311509925092336587838349851508324908322937954518259838969626001064231463909430121122189948749614619652632004360433516366201338584429057727582565587204916093380123758355113034013425393663957453824782395386921044096924188372493212790643333314069066477417369990731213981964236668213028108796607977162004484723269954719860418342140968423116140305719275776348504910642111232256645060816882466378338179746992211232438774241429505232453159118421033918463391365051352845679977162794057412940862152560582663464797051634869869693210378293399719609419267021337077191551576433095809173063067390094527568054985412546971650134132332064882471170076875360680195254523137733756658469824326054417041826947324949733109693553979840599825128425945416739540969811697524539929932807410640037359647309254324464132229083801647854017637256626228348400428831186123274008291817837285188452926611868843927662643645931041372124975313609854707501907604205232733337774771043946752709367829525158260306997233714843828370794607957547155807818596123735537389088846626630460402858572361708604707618412584184794476232972220029322742413464764440007989250878438824918860020660685235191635387417434750977627420578848506014581486037767621206191272108794606476826274366926989669749737469413351608703451599316537338619765827486650993924015966619878458585474464474733462987501047024618387283454829754875171258170896669206022128161344816828472947044226022112323085617635774990519371857360971321519188658764220737898689178170625118130735039404379187152897227087459616789242460934948559896809746546942913257910777548933842362072520106948311991185281575863454654277662166709198812428353329190294536685891897046737714207396931975849300186571109464704994961555225274834109619397892173336618558651441233380316648953200778083197443185466431519469418508479267555245386216947350894730168175891257719851402837077577722729332287865209625833871627869112314046082409994004848738528927225530847167460169215104223800974778515409073546747308810637802244833983849007622035447926125220506441632250096470742413455747757919884708779444961018309183601496796168900427769287956778505142550688430703182352269144910273940235512511732426701505204480251632930221263265978508891177889660857207420020935965228771878685393205142074560295139831764010213998396761235201638928208948552026864144690704715973410695694100349113865398520843555512912472062735940723115503943467584818464463342278766541198819258013440382808461712879417989405607041451772052508020295088311209034763146643618930671062378617376461227446167880232121787642718836884463115328182222295745370472525797839986986892938929203126793230505497791124084316095910822787045734876920420273641841975903570284487773384282937256466489667104331887959589096293745906067101424356915830155692359469307869930566503737202859870020413540953882542379917746335766676819665175653664357945031876497540796580471541808466335535703615634518836559172642458332427559788458463110413306713638587315816891023249114002473106935313122105181238794972066353830383462493519003756274622986418964538796590487759973762083449165031296466282789978310835716162067369519554128681480755419322639651347029923186964974003858332436630017822281314077248921749954287877101541919052148380190021727383656051246436370014438152048430130541800236625762819287070221003689369889912952566816243543960124817597160047758317692335360772332249727373104031346373762517783138235351834768584846157960235375352678837940510880325992512494498626944119018711433145195812648287033925953097901617401634711395346946732261943187127345177387072037025446076804315448306829108714806759356790386152791469117079495982486650701244369655620865384979656483942178395332959274821918169463425913093282870418087641766478051502251546900294368903731697107173740001570502825840872298467877597337952097876022984069342425509098864505805215494642710011515363429087709760076453037417482913722972879132608501718994959826379747714143313849915364059330684717341240455262495509477329770520499029382385424701195884274150372467572332568881493194727926788843758737925281882634030368449600339656537685041079213352119136860285033551887354511492276109518278423377171298548433246354591678474666405658894352562160425638277753849980276749392163948297853694104374905440638785533328051697213157063510953587130533173403707248893725829749990890021016636278683134885678002583925122502547434300694125058076142735003475028329004554188227405723944230855570385883617898391696375732092095915739955140273050057380087753476022960595372136249344242044370007394096644311738861400524420337159834615926195360311838195982231652246327337344954674851177883534499229776986095937379728411880993225712122153288717923982891627432345117312339578313575753711923421699103009678612586605284889115794487791495245093387588421021881261451082419449366201814068975972519166922732407520046329170510930566244587168601402673854020476491250648165194729310778566232934516162732717047636134351112114629242499856332992011439508900143732350318752881209191417962268850888165953303149175412854535355120489448459657730363547184505284202978850700254825412009057432210484285340543194766285388100552110543381731968566780806577972962533282504373139065109989187243872827074504657722191924646932776581449558401731380261077362616474175402752465283099154352192946879152467357426987101125261589976773558103777433244456793416044474082854477163362547237954879577129476450757285073061384350926000548516898829866395128687135051329842827504554344923464834096522585278636774673457119871198894903606107839490737119478801647639886889030562052036377448306445284775480724638561675716612525105095935476628601970979717226033476606774439117043229476867358254538181622931919579602025739825113490312243241386490736020855006914062100278776266492192823694910442644020667595727726049045275480766061723016769664079367481436789729667244235592792338811226003082998461960793940571192528952489122089111926403535656481918816164445559078403468503132240608394179255490922874747053362088940570944445529261020382563687309422552623243115483026723948616532846298086553007397745630225469576795268028368376213293816837710595834803898510487119149237507092751545148939242529090650155799769716239188200393228439100083230053247135054345626731295786721223717085983524954905140002531072668685377559642331003953400259470518717924845346170609826033740754747110334442915554462604666943635528105658032565310622340403175344203438676173784037135561702779796345279674104898922035514621515298884026311684474531852771187695647207943151873555145617310253780702255832783418173893671729600623460197007251667676109056089415333449606340901085353070925065511419937146798491166698054017126890737387986468166949416072197628155729820111209625551981849668440153464743618270100221333907384833779568779738354685308796843762351141381679284887266124830560300568380402231411695034973412397977857970960161750025580111874023036743162825711075379608546458248390381017826443066717283333248370498505217351856182169995801363357001381845404307649375263025978375206893036602648241219277383650607064666856864543794142946999860463540097768469862963913647490449406364125850582011235168023706530903838913848399457612560950442832755567843218000459701711450507786001175195579660299107226158611957046964355386847316066625983995713600000680134888923123764384560699466480955356262119363865114117540910542169528858683036794404857262369398109549756248175004124322287409302217104344834250170695223741625011151856869357113445988874224331550005452489630769698272725626989781251762811867576904543112753357923877261123005536601260031253692131583590599303022088805110040160191471160983134665941613680841921353015928353431016922125984046791722630674106608425632805217026101501327213091957427212232813302096638270284787349289846739640304722800293380249417018642390625846641150781884183212326179649460000474974188042463774015147914029620491006102719456231460642380735154031681155013996927555890213531615274469095668870847144677613975805959871742335824642222825531393268808456347436749972854923293146548636295639575963201761339527642553284694476908281128801888498813330926806900030473888209130005096396804881501004497223077643619874856293554236655722670095061384760150215680247103342580704377809084938784019971224560901811383967726204066766760828715048850854257792716686246774377486355459396167632152008382642950994581924583985438630018967186840304561805562998874927153529829704734862230555400806626848778322271320229931147203481153294963183460947228358845612089715306104410128964539081865266685015087269836696729786994098720473159526429466936304776306909370289912475314942214050404255897018786199049044087410215023619749783232528272976320400966786429183723915213858656688476992723267725040233464345570116537361435692074693178983471174771651714587427680701359954301644738483603351778867741520653068125660418301284033610672789505624600704909426796977871851412439114086709981069672408639856197853560360658897734676728323263368689047950594433770773427825262056989726772574058755225412658050379110276824663817479687748203878824210018624168525347926620301585326716384397935733108700792229938926573056686968649603625347366690587261219723003539892486799967796370201033747810687409882176598724550344958635090494487925032013166236346445586989229247164083946357361096774311662224410800453983446879431076430567232020183257813134160811960800150593685923548126712224442217033526576031713680663700142218738184093088506876060154388635294860186232926515043921485491467350369430316198160033009600749298552648307665201634047960148067670052610538528366033695670237727169835502043949615593919265916714748893209760815133394591132146140804562352522689355714110248996132757170003908511227199043810953068722603132677819696617320805603582449947474439206732081935550286125030232602609861144255433180694955400510396826353846037792700291640534595511983543630952516795255275364381508813140809496972586865300939074521763625175168479357687328122556576663621901299393283671510603480904746011922509367700041759634124098266125129536374652622751677046921241187691377868698174518554674988709795493775678584148086488684275760903217276973599878514805233262810402294000589409189430562722342558598195471809352743422340153859838790932915602608194937929693940501900613994299254715358903505809460541193449893560304904279517715306655268103210743594714732161592329145694542298641151893904310265077043923676697465537377599689447228903895528957730805245328968922572761004368037474946425238733377935687831102493642220479855232514917313176855039087146997380277444182392048669770546283514350430392516260554285804927116601585837386132886863803869133835845060814474033452861978757758626821962131285605519275478043015294189740745218221981485800854946182294207042780391074544743770903635848174793054860625312538596895197414460046605612647329170502048839920102629129846294261870981984156076514493680410386284802460867495790380234004678725000109171773810245575018138573770411702482203369503656299662422899268026907283867472667415634373750719732819659089234391958252823030077537472445397006376446678245146319747177308697385706354845325447479159017389480406073591667850683430944819535652040982628532694707972993237318006136949282927519803056174958415207891591128471116077892493532777967858912111139807955488365478055247960079696378589812068068487743257641617451417543270764215881198021856846582420107232140943907291938562504174364891641651081444557913477334776239305804286652574692756700691630892254564722112943118117167180587727068277858256960975005399062667979285210435280420664429654785635416295742558468206157963928853238568460555013348823359311764996005882727273599439442434850889181035255344114728554834908665880133074845761393001623492271174687056031777771221926048699249194036039874845232811620214397633313109726346106565939715036407540145987990039474256061829333454335216233000680610084496372596864509730861461108267644626613458325322605247104587815209675556516257051655355978598176855271222840869191321152039011347843834187789900944995535711029892499858376318511615690994785587483897615846607519606136497087023933802519040525406048771614148168404318633330350324893703478144729158193019919922005506957546753664449020521160630586202185121199899533496039719155403430903419893969642910259506737902023662624907777948012625866826617742859692414575272791240093904786793839776790817546582405138707136143062444350820746140123235866377421009340622859945621919336574816166200779658958589983390684896653359264956361868542108895337267183625697130429692743319727020295170128610853440760980245905009220592007759245853853272662697974634721404245514499294340346234287427338786081793248244689610900887188029421824055633089180899392730320959124889727895851148578217726866066957161977606317831029816901607139662297098632537171468673487556124260461002856553165021477044769004459288759070634292048669800909704974079242469536361626154341598072686479684758801336791399896973246028291166391238565453013570569572015663253316036443454193391974972158343998079331690124277148259569635974412860466037899199591058421624497814328005608193496449698129160286117830420540796418340789021604822482093691676445730299793186357099897210648791946811372179411059035286942696969488423102670727213150688284540534710226773021550163469881434163085939383990038054176386425081541980416248088716429782689003967357736118553018169563635265370886826346301278644765567937316954939398248630207742395109796163648863443745738360969685083599713673318545444152081762858727359761560277647887023597266144161743373600120044855066830092383916551304475343210498933202675241702536783920894491637463486075862519371476124012676800624330961609628847881119970966415208500203384105252537818862748782805025655668396199989771649220396539101967167336846710302507733348491367374779607057743129479098804229575056315615739305742996834880093318112858680500178254590890757585833398566501958497874261709989321223259880496017324526301745054799379942969247829948934485091815822299900256227727988855279853784131015454724148162316984511146849496399081803824366696460135404106847870258010330448844011695354081676533686391772546368411918004481716188956751986715711588185173160473784005797753330538547108759513514401431319778359215275800453352879993617511971844397847047495084503677178843173064166924281513021472093003551738052805552703801938561330428115228199311193941794272915990193735415899173770750632343431632196830014877184207787890308783933946886303086136406441324401575129209190953788865606929955811175505386739514016800928840096001742047894098728677278344149337521966026892208020720821067144822406734865978540161151819881642186045077785993805055791054348730574621186426197291071193151795593400711552078163960678840169299998618981159191935610537060392424113421979213744256082402613726967380979433019380240992823289656710239559235040083171724219215528726318289445786916753822424097491420514831401637166743551049666427629184934050645148314790814002741196868495347458174801844192157138418143898443195204523081624398010635592394938601902771687261055830263527756259604894895204912309833376044232970804056005443971860625799839884308144735625608254694388077244271394190096411681984847396020159935715252254583566501784888608948334024985809124119480124914858943179666521996469656033892088720797728383983986858074925411632987495009690598502952772588743505240384596740427695094995113351627417453063124944229114129057412434907264533295039817180249579698412265201474479934390119882489833430181444904226949930849129467829499789812122120003994715948278621341428327896650485692362596755132457644650664265798432342012974488119490804888198740425971222672592583756039736908911872354679196358095572698252750217620825625011037655325258986571712765964797278195848674271197171010197137405318402585709193703446628943974024155552417408599293949755772885020228102173300612921027017419600921465532216204086784224355300965822529491943899442457006477788127751583721034128552901817740973420941833116462827931659287221436673828629456364636239040889703911870397347019050995021689269763481405580542902135116186977382703910945513458236545383762893055028376431865479281188416638037220765414322424729011059231165442114755833781689473390919347462370911249593295660045772662137341775432077783859211534488485739502566135880250872647956136440423331321539106209042972653785958640929132443581853296784938865037816152615430157969227335433970772667213020836731921113509857487648569887818087844627023436849415555797935402255284875771259756614383337249118710471938129897751990391163007030824230936320844160555911271794613028169119219141890081255615373959379353749716596050461445154263304352339904867605451713193816270870244398481303171807824204423558461781581605822164073516145653405920487980880296580351060743232103418388787593976507044713927898724022597905665497400303629066513103935852179775558458600951658370748828001213258794355790560091363191935177349835984899764297388278172487507932412231151492546416236179711714358345849630462692590500696356630469741264570410193645061538836724068904342705197100296175846066844968831224648414305273529060142801799037511600247983741933592440464050006456346794960593156569539010315562967822091491531514194068891883197648349275464346180274019146994623633203358410447061192658653468681142303084182283842995912315417037967940683475789118959799370152700611036579184243378281277011567872507795246256920863679672143050306186709384020220038029581724689865914371008359532103199042155931569041884841926786012654921058927743853733320438713836560916034904977641357917270517095294813638643325445462040825896829185506098254287280291914232931196791110013526981404229935560337904639361870046126135894474783001000188698676370409210096373207268133833543420902414519889839401321646950932008054446996807793886943201986269880877129531680059554976628331228482373241505516640707611246993193594305327769238028714578080952053702201116188152763758291506589039394873471699452881365378971263037834124163217528108331424825235514749744720794455234130648028766519893781603618841189956404861570332522978096500627293689552440813673561058632398269790473272257917151233404166333687787973890712578277251032848860409556362635347897499298633666426422797306964902540099479482032756922296343608917402866859794554999756951422752103142213900876628300859315317276489979723379825782490241315112412205635755542279826114088216143540291024419951208452922079542938204696471468119822138169917447066614569657549721648453909005649411344459361085270179867029528417152216612169468967444113811004026030207500546603276423888440122276060674519716823536847380730433784160680821789438666390995058608025231539601766925996219408004413775437914787247904600606818365896772691075919235946900836048937173528671855271654352942018938902509600144853778880023902305498793807734287488600177979296883469713228233701156305625970697442368502254533477306572182173775415938862345299632810465460776470409929994644590695713547218493676100930657515253854088159053034224394736436673005909275715770059806888365145483459220008352058098354498952633991987749981501531529207649804266181425416233532353473731859347568889173535319217809906567498441718376301746415033560603734661364718967861081511625184316562126320306522411307404583323003046060703353797003866979530712778375558367551079045434365892089468633100444467645380241216025897366312861660882409911097303843420654588847484039796703528263981177050318297972865143365253462211255785094804011217228244178313251279706686990252361284322427230690792828110873774369429631986443329576560922017042163441755494765712686913474711228387632128291099049598194706421046948997915708212011168707528371167245236925798041413664232180627238844034138160180536214289772398981177446795164001135214407106484052256064689207933253532596765418936819639757851058787310148140286479503925848739781435607617412724809473313555972300666961317121734926157923299937535259345044133224290158934584277488816789529190497274840354059274824844879500808162141173266395388248725788182139980176614358381165743715068364054065277368232143244426614853191496896442955244274455228903221619825516970998189107242750626258680944619691734540849510676026748308638388512340885621938354295171901132755428346375318034997368926459453066595269986273787999102390189568542226677566154391919118193246551906772871298015604406651041115824935356380878948840566196403117055202178751275131964867910474868781737444546643078106101098131754353681227789115215536557736837249915597095488994374420171320033973766181690722794438674277879777759433286250511580528146111336193181923850164449078166469332631372686156708615222245238210287592982891928801185548218092495659917117796344304927131728055990781495019313199582902117315449585784333403067887240221698654659722027185964708726012615423784741145481670801499258765173890759643850902112279162296593061036981593512681572036749248385755022310717696818857461610872498625498002524919160400326653685006103544104605583193388335925639408317624888939216221558151096852735921305312799796484327272647619445590522022229904387985790293870299160291697488270525090255721719300778946708869033546861428638971796917050511908106136864421640800610806894282964148901752027321387134511529700167856268388400028559030455697780821996178324897901549852405346510314445761820188522176322328397915887969498347346725758151053182067843030822606299450139430844024894170443685392809152257003505014429032685166093424226369390286526577857217005855029923151170735855338805690187815650543319107638566274141234294962586222205051474159220100796086567026766711845058131165705516239196029872503104522800725839285326387208813053684128697689328094705470163224662627526553429154182453416127192851845566868314372942058378350019259315536978955793488278889137766584155468982040651997028988640715680347170345310308844968718377696180268518096485873953471474096197765179359305884453443977035164038195020400602218820666300583536199620611964761172211438929439220072363109780303563473911570011346104122473384303360909729147326495654198652230840854128581672631026882171263792004601063540900837001252836213191998188379279710869938104511203466373677051581255257108024703859329173524039750809883674525432861681620572705260819577395977911856978732047123317845021695361358633942278216706467022525783877274793643709826136235478504690160291722390704558728535061893820460642167857472888492151446739835350141630440080712591272542318837763400293401555502023938044343122927965297108719673908042266002684862962003685160430592818627201543047765673193037954903375960768426936873088007562617507589325574367136536220756467005466474269216269773738694360928901037599394879464288301599067075678543263746044325061574539040352171830628030517414004872264450910114070238306610155010067475008112123467550284948740022809003301428692724056375859456587111328047422726998096099405493290880817919530204753579542219669897067102331492746058976780533288529313290993337594720826784574145193622229896338165626319669629870312974469240077275007958036528641895206557842554893613417731147011725948044882081481417209885667103941567970445342672354757843507772076442993448272188313852303849929279716946746661150076657409980351945486424681394616550987187545200065806165937957181425974933176765920872370388011001930549079117658872385881791532047891814118730740632921760994071686679707155043907175164211599430310204839322651687225021726794228630757680861543721853944492881805384976602434884070248571759087072460771527877536816298535330062540964547569369679771571023208404544559789615895107975045768124745212139507670369673043291045125803225673406407201971724594699424700654805830086279082256692254736762908539109098047514894225847966870634565621363023924337273242712418915165790776493791282638321237716326367846488753056596058221750150049572647527282947169750457384976140897981876264557443231869363399366507365773429014568561632804473518356701824500173893535516351271625879292011961557687058829122444229285667383900293091020848238535486979675473281869319921548759521230865038626271273238620954415348665479230344204059833093624870348460615721161954781314067774223057873308629038346940871556948807156542819568688269090013943580854655219651792588115632342235832059103915124197109377425083093741543809757397420876728900715203401016493963756466030538118162261840600563139411533278949518148125918343096342809826565002416757033770099382613273500845175481564970170167463788658700698251039466146967427729941568737642002752914687376012991911698939058376772590646322133215164034446216344339922876219220078310543388210267021598814940859737657202426731921028714711361564659444743067691602079656356198635971817652134075590528564326707984931310717909440005412976220593634011364782552713122589742615786579558701394164250662413110161223881304192906011317886552105343330312247755721648962986477304102833503532276112197493037844568335157810896914823289510506268857522204973285277327843764918349726270869558176614003192981746139868579774172520758345163470900577006758522190057474207267866863015295563201084688840088597064183758159400547782716828765752938363591439072930912747291446615954025061769067777178426061176727808491572994027657922298651872446906596119527163601983120355522849341742324852019893808815597442389928207495870862048239439938768518637967031079942257665007570437671398315937669345232364704526277949017035313064308454864611319167613546111635954305168767875909525668724712999565968227223196808386017552334736517378912723969165971103863545584577106739273396496235641066217861204723149451202940648285569530382727171786190250437484068931587839423549519980995241891668961982708263446649282198740119869449354931379587978205031912923521377229993329148235656626660493035078906664238664255593734343624379862775653060776106813980814844386546670241593725753702623314477551297292479747234273182026336994544574443121134136727176313801006960475813624820445316236604560926195648575591999136357243532948729025210135293832781094428044915138154164263799717352860617974209699467094775585512046573443965458535345837918072987591782960511472471217048452844511418901988559198873387693044038758062347385702987095747438699742122001195333773353101829944718816693208978924608006939732660835124546584919599942451418872587666045185939992970890797440627284929764762872669594587184178834671825266520784410885716462808573696327019270204259476074382166629855133343613523834140870211877875633789542408401727186514976417218043055949435049747022752727180846720841762959651656347655357605489091674736639758204127332946771846731178872997853265530095659011161155599975545197365482926609234858497474699712082310353562921890013779934616415850311088349090548357630180589102376343900060178466837913043399758580327844755030484995554754673363307016969439697280281426015835387331160161806116608427112084626403061278865306251214042590948722200558800325074717712975962613294219515071933204652938029253471136918543086648979108595648884639555346428829752247276256108836561825930029702948088952634994700056289253255622977547538633447944702714549441705237619859520402289034376074298881617830912962608153508224841242165207512273764892872106612850858798351643980063737604371728762739997195968903411081592288301546571467769699636064356122824086515778428279905756435670638171828800454174536826149411622737566871340886728825397918006921671646502612312202956589718779584558419432268674052887512859697223640305389868745061025280524044107723897390528579590981892187167336839633913328350063515895845484781941733772323419964524249379973378781169844304023738353821210597258935111618304826587129743895593382396555909325021489432599051464463094798963555132681975145262645041059779959344813699874444894093978922323890131116366949159773808433844685629694819657586442057440311487614830364966763609077859564438374921067073065603622785841113926613267271733859242437006956624520281793393684964642315618564542328631325084054013659720789124259610102631087068781217969273161507198433825348666111127028754992201825776039662672071983275416858308689081513636526028272299193010237278616249807758740159556710117762586378876435175818585812478523824043428625527310477973640448675459321933937253202621239197200861088593503155048882450772519088548910170112929788894486088596718004819410813986598506417721275377813632345770381818457219924502141226201464554159252582554460239030213173080902427414679376366399758949280188673851660878785389480579974159858554978421775316630078298708035019966759784799877837075224990950930403366626389239889989912705837976975842126108614000855036446165303050643812516241729936780019911144347924699421900944682576301022974004759127531636565455327247708948521215936576088719509895821133116964068467912647317609695132378306171704209482410026974610451805957164755701730000724005822009445273724344550935021182141831099387290312814175446699869666906386731890175176400081167072597505750463591559229823359604108278380862750340189603409363115806202695556164766724268438672782165454181166690977216668232853935284660764266303635119343020334866569300955841037421400758636016035370347963034269730396748566654933328396598796150868997710688090700001392033978401537024265435410831867891869815375423344954782135767884419057130870007671485732403253835972900252349459017263758785426968735874721627631632384719664459116045267583754991867734355538435313908363751831069886518477853960458122732428994199367967362539303233885009978368271079146308125424630506950778548519423067093482010686608337657805055839294674540749416760178081097803022212110956193923887760381140163778748665476606394526143435689978183303963649246158862809196816680380335203692533145091187507716041957447550554775711602613930579865308596821048572582178591072795988884135812037003429181206560659050224517161954497918742897683217195327694918324625436166404262533172550493179081932715182473655467630624431047892900393775392683126589779478895644106642356268729364224975538798258144568981126560666513940685058182379642318914605345494495476060161527463014477880297914153634885846583614662805475030735719881398328455737979200475029298500761551537589454378711689562628987810344534244752124455610614850373105825343230916560529268487545223587046276455618401130961903056882998324017983816105498776094750953371269203523079099628666830490966397031693634786135223952447256403372554315199748320441601114547961030797993251487343448491421971071231863927616040714621378902858965065089661425386626866547885218559360991664922997904183393466325186181992295639941382342281700537461949694946419582799155850254796049525049686351462509733264227420166599647661026291013247560128043534227977594520981026043011929309298899220380318113543821454744646210889944641159350476218844070290499707346512780363390789518918510280372967321423854278118292782530568735793535095393984452728867112926244275590701723128272064298393255793420221087406918247040049736740424882848174381828604761884238293046225037964756978507432320565055248586049010622872297163868868466412779275897703880501370489963501439180198545571137039500345149914903875288152803121161760865142394769653529305546133646800209130488141164415670209036910388941243589898245140166241491161765525674516675504061938656724756063174599044977697055225325826285954138354011412095533481579901528273973383985853696002966014723612902087920609117008605790051446834688085031433769998778800162618573217888022169370238606192721279138610052679856195619483138545081648800239248096487654657363217305200609248451544761827507417831466796979673336923666696094041544572830105877257487282558943867293787177306521559294573553194366504125511167153226849799304764484308976051307086158118941662640577946897308136237565147311577524864196778761645776221932826131599879556243316309738364873866878511386489927885697526139493580693825526772367733187118216440434148418629650252248773836420576096080372447123877368831105105043467586872100102550851876527879101967653655628280443590897269297533004937280936468800333682358247837201526012808784481751928269323300869352885536181917496828535519378591077953380292927980047621978157304932354947253957313626634578935918276444183529074641430280563639140838416033490174349790586377448869195208212233169893561588317168269677033788275585441761244624677841507249580878401627319218272493591392110842427465425780141855429592315789205110398512221041427545022275927105958043654064354718082577150500133053876080038850383818410366864402630085467350065759424466139361449188853210220178408288623211144580800669929802810810138446919168672873365190524186839596417397516087661356088666005480355609695933232312052631673977946963574554059688074466372852046734776875129460262325136212875459282691925203561796310405774701976899781977429805826647249490789786754957633246616091473049995132935760490837393782091273725731361446600534920031063053365771275654626553916227436494298447938539372806760391650302453405292468312889420577475557866207065626600931164977954918889465630923899254391971808673616147554950107539220285236066085475592785800300696541134545418680383086981650029349586299087577261458427507298334035010304206154417248287622712886745633298787981128232021574429224140590271694797004659794667790487733219982375362610035618410940579143564197746313431720540859631032160071611876577363782430535313781911272758922407787409127309559433805868801932228759424640872344531458683010912684468380970094049018581035554090924289184602293586227735667275298521300511596283308095648852512645682303099058867219953494594530691714001137957940923086733628409579015210481481015834273071308903316445294801287298249823830729386698291133682068094927472468938770055925156583595442789985958496888903429716302857103372421926772025927739985347353731961945034680152497655820720869888627622395989568930482630087292087594768012563922659445132442692458211695511733357554780561881660583746179140517059323093809990600664095778277010745952133082574617399244277905279923167520111631717284810264812558035481906375224753640249205111536519303001486356916761615695853748494013151846550436593811110002369654798483268304701096423735368561326791234567152458519365770330716476222767289970196604055017091377352308339584322763554909195213249929640024285874297527507084217799292555206625338003395809189565698219139806369787728381045947254710315790444351718881109131128336379183230017231491761665828859856138744175736600630473344908214594572577295072707578691896790666235132768194313074010536018037044830386235413315863908114126647857084854444506111578790162963045130421847028646058004673088695299617150654291755071100178003401391172264078814207015547550756840163712965778443984198467608594790717842278614141076594291157172766565441988925445706763394344386976102670402684709439665425375696763620986112684261919115025653593850372271043133495302317264375104659646820293625745920856966237927366350791208085075191226758490716130012809136140662564318099098452089142965725899462053913996018053101733839715264484478098685015089544383801710934144036931110855850401692170099634782519477834139639894189347647686332311984688381833641952861220729143516292516172814618597117477157246694626895722419055797928722048376447075426104076776705127578594867894617989362195783979418431775934514832290634998576953451250358857961506295373409126153163295841255792286171915467167856075761574097515610954732042044211360840596319055918216054662734379223577956094064897064820105521539365850647713447447182674119100566347392000589403696065575002819720426162841430992640113415492398974464281402611882058151411511489059345401492929305312568300897236568204287931635061742894679147904755853234117917320331228841283931559676819070108967398228419020086539427814451782185198651556305421423995869612866650649730197534285720901587608296371290212987197508151970173620533802824535587187338050524661222383051776357219994490194162398605474461705599272110037914668290926993084432044736824123753110589055289075526070295188400077529105860832287660077825064229361760366483751577936106661095814695262626329158136050451578240627490220908548625312942849796746111267568317659566689908465526587648510028527184876228012769665609185953757556051559686408398033080268698759289872384519770261657102006844587120814896145032840076952900993502942825928477084024892892955957985360547537040006867729566092539631320830067459870046535856872615879041161010427343461194038291274861728139832032976201332599039631509310812302206373738060619262624520041691489174006409431360879395775230875500260663529860712101816688205220028755014297312999295572462407244505373861838575796460342050751146172776427447009539173344100215259138073223913169385884669580235121606465081928278438996924983026854759394337847239379900641872739904324907206819489865558371909841965766879361399630714296711818049080534298895219010612125272610302903390018501505835743421564933501258897287069981258392405209058632175746014152575127257472844105444689756965526045757149039141003146454332337247611799357892423632398352217937980972149513448049064031415056593935534957873264736587815452085703936853889071805284690234682303827940484494592254547128339389334477654441131613023448505392244416535882669849462891884808115121052872704519543378325852231515509120546548543341451580776152803488795730678263067495392809747335689913631614559399031947041609326893662667241381865710445165970543553104828231567499232219056600885977878631365935366314662606734152780339632909796070393328945084543230295395326810704967423747267032950028848234523575345938144933107446553193288597830256836364895094607046574414381046652616932723847382829647305436687367262820750483343449028686591152693228884718702949403880789318975783888297025062051865788032947394505675404736436723331881040717699791509567820677818049625348559529636219986748507220658859095470840502742202885179773619224214303056974068734495072417006201274909761886181754094544886364381099404451397818571752632211687752854436139249946763238626611874464723102695210427576707121174434558891699045756112578328822242351634708479290050587959048053092160833679588240803428060472841867396522391319642509701153923359266669988476827266434511167619435302888804862024615385370610926583151082300284200944140366359982012696413913261129410800661266679240605655785522845472362621107100978651189154979818295778479198389472199362133821870096944458468549288392679349071301644027840739823863323478765250399719180922698709473867935967821879298693042902208217729938659511883251581449861629809267061120300958982233725565459484043538812901895096193542921198289004166003705479065283873889666442450886302904612692001995975548268441303080216468589642823413374761147936079244127328154943426334964734485514478298508340953643935407662683917770558149548750722116656056258756860645602303180620503177143315188741522167272396652283029472901525617138822522622838865906280580151991787313401337081502167219972293702556930603333607721502050614795849538090397714605741225098562902925090441202845328622653537970616902245539006307280309461509877785042037113094838273514952375412051630296141332297720736518167955857373465724466497436833140698934061832507855630020377985373430766212034988758713009948293989697246708865947988157931295011714131260600158350129069113391312087256194357517736643039442776913738162632489573248469173749996204716142207987600081097514353987258844430111237876352525129842349421496412728159226901233079396722514607256513368194608185907031551660427458681409154226925924377093166087292091119411183823256760509235695720788246122556616603168706894057635667277503463983191118203101455391198565316618915983536845626314172761355486445625913245504809726306623418196479861715363531134457085511909204531213947143241913527805647678768442392541270656070303023696669423022586574666596512111544991933903350038896486792071665154426644032141231327171587831022432017164503534125334345822967763874366569022168705323099308284296901548658901612611054119287114490391929700973313827623063012697663128433820375843148476935603555596139273674085232125816335459084006360783246129946124992486755719422270829893260273299549906472244269614152490300181441108237197960853843079042294728130269041619972463145188636071946644292221502026234295476336456999318540410244787749745444506382072733441097650875890587375289079588693800503552915473088948382766920477955262645630720382807300587041053793284801611030726796412718159995638891677053250357867625170207278244048980375995167202148080392347989074495097510543015082292875044672354495100502722716501490683904472849527323057697092142464993830507118685678083017553113350156277388592848782110453679933392453719119684585095585788090290467926777739436189636372985657488996223590608447650485422435856873316638591691381721530426055059388968970613028459560931690884352071802833520964802523576016979328304284985244813872489093523742317982771000431815968481429039381994851130522058068209125120999940874870915360812409092754397931480142368785255680511814500785596779966932952762629262964981453705317727914285033557074461305768181133839612460611883751236411141551943286202054088956461846231044551623767799402768718626055477284714444507829715916832755489429748916359265597710995054443875283000494131064238533370832853795669180250124519595037087687259155500888996510747245596259933287948056989239089098649615046418772453785875690304760423961896210935684493123213503720189164757841717296614433643712701311200922110165506470268285483751126077682469737063755428373238709912766761223665700245814163068674005357026150899684692028111585122144595122868487506503259434791432148542519359299186549589577083923704924547188584983497062684331243476916486494699848373646193875173708879656443237917178800619700411904092017346059774412637012590477474612294945804569849955388904276100870459019762570016023701922340402491651471433735033206166396056689311138336728922873127459697830185689010214327937718816656125696596683840758635308916960862013811442978536434419117290941290431916019646421839827052183435565596788655398274473245265588763573190373979100844689315434570632885356688753476156992706190611152389990824707251506629604971620628376964112428750194017216964427393161939336358461734369088949817076535404681300030769688602922574003558404377451426548667136346104950236785894250119017137918544967267042131542870328306748835508486508261966050323608843398953446361249433511338495447180615033172493101188784615990379538755082545275236421027837702576077582016565710499656670372136855671248792246288602189066899700687629371390892772207849577335619569432050472325521809278511066961111953716674291022580536144755644849272963735704217791319883872937882713180085271534504864873172159684160217655238718628103419956641689968046897280182447684560441749150180941015965169065666687635065150311032606680810672213972583796705295571481375784998100024178507733391865753640735299330931907858453705005677211100484347536809899352205751508173678793654560563147391252855988351996212105753403251765076523647312833809266702031221529579684298541765225623719357550114588362282379220889341429594519169691972105200958405009038401575905133975047170144015716566419590318921192620391889485064347383233241757829950953484321051414762284888670221531195834124338127189563615474040122464006291966111188106998742875908499399283229258049583774475110050074260956805751303470970857374297333897779501986108777642026545142015522407648949998823736887571249840847846107276449411887576953644981976293261263412372302916845203395063980321934319030695039344887221188588663662451984247656709521600209745338284818229120659715782821921513361206506281715878831011181711887470531366964771241066441850945464531392910875621660575323520271900747319910535513589591576081470638762669503680619864720255261663497644608391005606030919616607607935324378128810683582932058586401513416508402275096342408578758631715816459313624434791311445915099814387716330525121983505297686383581176191255310326741736800954713175943034284088680217142182538416246819621878028439656526785162326518606075103757822239108889879844409070188543064290284569244275066854512231895525395084961528275227203512478710427935579066244945555235424379557489850344405058031258900509503413738870593771521750862109952274545302347284066084717217815542402307465715384441307660692725459508829890832767131003876921190880402262380736417943413387681374015512695362920292595931534825034803015043720044465270353679837030863395285339517122353897179082246804152452911756576153583660356144974739630354762909357709145225815187303922791800961772407397994788572564454672082007355288023192441137085817257460527522158196456624465618197336747374928465610410562162829652428131167175532095282797992509993503086645156644565182874387970339720982834071192323093662210289051531197971026465940479294006323507287255506847940921772701434494079735692614511415685429595767864643117998697828939160495317257190188778120322614185372061166670182104471052947051407789433148962999680657964532414717179630145712637945272389553750578577231731713451748515059442022607875333453159702648341004591184110404553590196862873892670447057802868787799318571127492640291286156765403752750556500573568844337777566194135804205827370839517989474102028654347513839908490921787543265324394220425605250716623792466083718561612431831371305922265714098446385876863722419433529847746263552517777939016820661680247483102689458147660933192007628132264471485431644203016268583791636594757033683716179431709325263566241473297866215524063622881438477701217127436049653905533983226719507294343413138230091711494601343819248886289871150410705616681270051408022721133413555183028911837894168021598464474938828181579135633836004023956148981991773509912295600308206010314913371915708379094490550630342148134783163931108468710188277566357741574169134860983353510898873585581091932091221608314306960083121661566294712082924156427576795123060080038517334373943302499315620199279143631512376840900167778301273106509721197627447827932777061437384856919877905443024317285978255861758763907247145637865402204819268617659458249991968108561616653147209417251547875955994995995335343210780784107937442653849475485850091866422453345873416515117394334943408837060708933407819404374336847860522830919682102733157107426505903151707425589161683604929962314983032310357980965263963665442132955448848611945701688940974712231508044752618039876826487648151906211147748545656779640975327486918829881703760706485841017527915711775405797453834078821315043658554420432951291652142598178878850034783400577462225471307876546191064746717667845905492365400617642282006165453628928022213570124094341541918909252731435834740321648234010823409276324021510044303172572636901429364020358550114266081060313328459719451030399935072866013699971503436547691364222244020706283448441675489395611604006784295223022307423843704476843730427984674142854636708151330198987287741297988434314478318962389168900681529159856791521867053668406486775747023205582679259314133823579516288221425047789513215895242021851364479827872775459966269656574000086648834063945557531730597562702182787151216956866847998980798579650581689218429228161542697346433051594334479000799169782779814886475473300389449883987947308358440847575383686136723251016866429776424826096965854292595059585387774117718043420833648268723392956794447398601087505149982210298148120525434704346657907625995769668476211450034914033072013930961413703090557688273944173997955074109012350896801007593356461462309952511383044009875902649634931535149631946709433966697069374701150978360328623004163956353425513137768484923996062190515332486249131238541934458202612840869921729387633603336760282124130757361171192264024462583270359155930702516608780001412826215303719343957569143531908435955976676939522938838376731682917090806597123326477328902753603861044030828689258257803244156926634099287639008315572259166164464507608022304463438791793475239039149225454509608063489307572871265575398391200894369586327580628279204733226674862959079172321941152756232967658735641669479745088416526357262389738912067361310302979861048727242296512331211205436311200227664567463336438700947633354843695559494293033030018236924609079423993648228946519587816596682089602130649516299649762441912092430804750494163986047096795572617841478366027757682828045942259464234639954194068897208554739429425425741369427357293904547241665629841144411552090473462147130251158145348297722144534939008696533581289982091695873541630432148893991888178592609024464602750124152809129085170046912010067932391368167896736199819639895874209124248745497235266315923830588423070303891992080251937882182027652929451716606970166623729469357955455032470252260946267591241726103713114610146689979599906637311153949589486937065816397446767301089052249786546815615246004768239876668234371490001954024325284390570195271828864431440372818708599149289426568123513432845661763510925472881829771653450126964868848358661349055129642772439781986712623035784972097953782065095493211069542760936080511014399823365953463414892523212040527983491685621913385039296916178253486466350915240627050983788151159091709171126258781923626843592524723393317961155838703262548566121235073974104099280925808198037829802765134684708520029516427374022614779675627543057131805812487479618734362331211971759570528927700079176638522938594399033497392068979697729903009987967748398687305655629114049034377769557743296994293809050294476251575204023068792962450098310419202953414694646785820673753960203549411988394645715747828492731677831030455276680178281011427371812516249771390428315689759647872902592592466744090725064754781416731788151140275742492599845123943408072522793087980848290604882211174398031571105913453407741525939937985866719706529525873476150641998287877624179243642680952354164856404069567680362075622656721774859833812067586217164567411830870389465950588652791543746353524052934151456953283811954827895337860577348889407382767172932963946876799075562958573891212863522319395695497132238697310373841933060961917533173901046367333821788082887088254004204561410590827846498730808517713242930697136101092804797158150439975133433490477642296331613991812950281548737895046402316770851151303792839671341380004605465748701137208966284539334634555309348056887822979745108939347260757391640539654987354160395190970782820955252678909420224130410498021106315791145832078508387443636924975947286087548696990616757668306085211606885685153825479966387458283104991500424658449167074604803866924102365275618670133759618484893396582644515950350530304729815782712918351034658834692957568392247603212356717679043775075558887516489187214070845835679004936473373517588793611862808870993013800245185761945380075515549577559061134145680453402580518721697815337042743322588569319017898425840581726620111747963746838480263763211227587289214593862832617732127196384458956599423421295269870941177208873953395096741537667924780557166730937930933073665744229179647455377960492125953863154406833306837957339185477105105422613834396949667540987670529800994718222178548639427773329013067400060020712071169686455621396762572483059460470155785937289202646465021382867211945101710198311022916740858476655818603641034938490963542701026385596244411266504087662734875580550485649148626249026659664164344979826664004828348085426789317154141620787068138948663642682971178042595287372054940004727747053055527702001442797265956657924211586546711712474525335578699383478725770615407362181998361206725019303559900304135061231389742590858230738723730260027679638501558385530502506151429772223891925227053076178799520576780398879218969191178377232414616362216438967821225689318785600266948764043428484825025274670319266021482329348740334526583932111035409444726808539734724615173720916196107869553241776636821099971780027490833308892424591695699235854391116402749920002607376475826823532050330591502624734407040299709391845970054337741979510538501033380659132952551174890457667518789509604168094945551004346616186267902411065496996499421381696778593326156670566582924768685618805735915350712066149938064261093881695061002574077284680213267669508353265329353771261828888696861653039686600672217492377166953553574149959536721347388058052404836197312538221977627678597957843323545159025775515917250967674859132621453136190664720710795761785132072118439415853282930902506024613584687270687445446381728271947915266738632308877195062494771712931088694467053043614847110104761051233651272608525216665739828131852449924621913133775311564309685822740303162828593806113717140234178013300207456999845635241040999147049350950245994702259575166340892682834138513906117561645757961882306744812802380790858274108652739211059262643402826705778696528168022309249782774064727612738520045929042966949532577933343920198749533385547417177559249582816723601508883448939922579777657584309728610195605123418995358593317139057889811990781403085805173960422350021250667910278922658264522123617019113224243824861625398509476626962955206939578195857440083853249228667716893315621821971099979419022855672496345844965296543288959310840197097767393720786273867066525029269057167527016823201332024896239602765994068144297581064155255423432517773165288096932250916648253966175123796511469503304931261881980783693568319047770637526847726620349254495564755352555670747074607954682801689868217061864807441401396552599097762990879686398808927714580656051214360514420386657055125492094068892843354643837287505960888034191076201892323919547731538236160842509264455020905905891985796185561982569093422984686972943274866581790549547608985293693384160089973085986168749378277332292582069933120578942985013527994545989745997340627645736004208646379122224358642578936032599571958324320665854212664753358880248016650243678957765213066707638637963182510699635153377010871153067112397953442028456172896721682431415278540785441670045815292030684160626250636254491534238685444391037436601746809589766019217751053712734251733563501793560587353606964865462866518959280497605176692890157952133810900805542678353903638152836140586835750297299542721538325596456784472478129690042416855223350612597535488364172333315355751119237911941707636595787563303309221159934517213629906110368699027324452647304509113661590237289167432075184936760786850781887283609310825537283667661598524485566616205814435688503259348720805519591135936639090297528239727398367050531697856212813813293501641455483047793848183464789259204240602345606636139453013543360643810572067407914301396615560657996083005011185959858163688897694212755782334513598388092981149652127718730811202682918116272292023604577298419320287892390990383767990931556347230036814681435911774838600514579882272749659762364703093335203705345124829937323431980165207388401411527426951478436794705834709165382837768360752337890002460334524829411912706917676443926128055293778525617918237283082503489301604821390003226765894778842345468866435182698649544012409577656875270185575460666859847086572301636705030003746799374268426006919147820215398918125609140164380962363021520686793013395832388072382816348944506065387022348327920149430040468928706616837590044781997846477438387100663770260062907250869320884205273542715852081793302985026303941861838576808088640649323254766291102614319343282968039632425644126294594091513000134493530038834042736182766630481399468489085425594500260001200988305852887282443178863772180504121872697757201420465382017040279145701727014836972327755015757265160501755862178656440834684316496273778500143003542721530530994801088724116623524562910930147910748308024431767444999105304178923625047941462342296877145609631725127432230854153125995563745961981230233971516110299451170657441560314298366600630800906477823994150282962814383691212511970789510685741791312987526195817786947089146731312120005171298807618183217769915977324554832754167093848759243098399358391849134196632987937174959572872940470841371936909478333645749924589621377387625464573436103497728781363750820961530609661926937529463431690004714444748307987627396459021854275053140617332918173646521936026438362112219443974940801433381016766045170380805094183697614940853518937787168007195436248813593080232049223036197541012535845758733804048368281684215489551654217687264492043043408148402986782405297774194568711353695589614094692282220676835169957888804636929330289203809967943505358465740703748691194958525272835336756314919314027915582340197070327737871401946867670450975647713800833913541824045596204413440167248244879821351610621791965240057041622367533197620560106703957116517578974526769748576700638747737833345411979000450145698689375325057334524243145647072396057998705729402772484565476585183991472598868833472651173073307771724702795976925122318221864599564134599243012650001578046725337392723146134447495602695859700593143247820298271555394752087737871161217761168276671600800724632330205763192168987680814163534732187773464794915358519725182936713601584574525504890450213491123496314122256663131615070971546123726905183710060006473078912346338083331802723395262323570097636505324266639526485201627053311360832911012405750401365635680431029072936815938794110472343361896715308374782419602884673246801803701730971251373228031793655194810731867565767605686619285176068735687674122852360676638556668070189123970257257367661641507607719872866429675143178882012025827192554420924336121700617140398485264351316309920504614252577304559537423603718048906378921949112114945965401300019648984347618215109203836489874637948969435733523507165617632415493539160691429559743236668186672770946020744021253476301773059785835892908489361287281844328476293581984779010382799008035680380484104056200169159484327054166372975120043116047145500231731675980102868530503973123665923600010247305142175203929774317741168433618559438494440752452927821143874414533472152368938881032848078489457385248051082421830033577149220128646440046874036612782153306059779034882810770798076819461532934867784100009226096614282347517170868027512591043359660111997404975406247982245801544881790378590498302552826913689451790308187410731004857367117298381991471168959669663359647814496799300004233325300174771079043763594040250290385689510768594808910092393627915764526369128471941326272248179536451133840180370712371845626736538791842736921735849346668981286034842372875996717838247783388591979703022813165028697986847375017409073882048992448335624703061659724031690898567958694637926403844988091282125552630593997910832030128675177860200261958867766729592552648848757385233069707664312104945634740861320840532679124489905679018867518516464966523854783471324980739723249895273462039651663384081495538379876042870998199136238304744975073522468970831236934129956347021125551856016745981231359462214801665254893598274598570311571863726317124642085003936331372698301814461578116614455964706031518227283535911220374531955219028240432330164850885517834724245084433287823981146024111587614626311118065650856002556576206499210157891198826410329321342561872020675636323620389484336804001379300602613169714688541495156029033358834446492966981915090029053677113028114128144803260366326871203502804213827748737812492537318134798276497854224746561490746079094965021244119854830976355169813610855868324142984264797118147644891094789496328769769590179161966948681263626733681740104770328657527923577720504428753571812564989989621474457033736767298871193007759646308118988455428739732313528917542841208243285671158553534541847777781242384191354373122786794079747093897568665926763116936033407690887871924628420569426174740731749062090168605525609984608960849874605068453403186709948135336568238590371981750740386223583784241177445797540770961374444955195292766776398558514351039173319961772082689984021303758938922115287343529393170182912987449176373632021220597004080161370263343961402504929034992317147423057720488607097484283464867506937062947861056401362805640167173024669506382842657734497579643712089489061198404978433034425872741485077459942488916772919068040122862893419545789432084758113638186880271763596436641753285955757634109071045788259795681688106282150519589677972847729237679631424631518380647728451394405378688427029749105069348324799749921845458582647441536203074183885381967620591839519089165312809872510177447759804408577457886008098803445635180693261915245561115485624165393424219093209790090811483337948113707675531780238299283539399540099751394836826939601243494889914384246782751395659323872035014339547525391636339893285867961535004490685735050191813504892788117045937742723256485167696587677834171317272547774369542382562318744829269802020125280872719587151496656688054162324844017789199301979048187752271847377825536526842406907969625719024245867343327327253466212408667944743335620497936298495923572617781746114845020392379489675963707606368334901075422574888270158090838270960213484080526153464960548650795650881086865743653021464570219864892657138943056504447095759963380628610159560473040070977720493000924727590612232366674517701936591559231754645877862496090155632123022259815207806310393709332352209916088212382743325996905286430955571021736286103155950869308730039336845061069717586608312421339034794848387764233148274126029527755600784199316283435765735318019421341033703067382348328537609832606095591479000598144027984170827723169697503348060762239469163318452501266989038306353318201797828276812785512703923717682721188842414898869547567765584446010928637900396461609165293992724278486833535850647498465498475984006478140994971046096290649314126248434565548483420336707770913819716745349277576012691247600172771618934750965314788695765533500565387169055032498007766758691134118385390823745733728343505908843429096150747908211757210768006816984577192986470613592363706545807173259765492492336368386477852003017216529285929609775627633441132236564643786423836525984792807082407813091112415688441136880631368846918328659747434495335361658852598475552960127595081988035177295604888756261647042332746414944556330923827815698336014204677332599470537427560658525719337294181158793482581614375058583727281766432318340284625679116822944385115639970387849770297326418554167132021918951739121968332627618191943673922862715225340546030781339109504955664554003768848307185881528680102792046976870121165592889536434792674172935731057870502971245443552073579018142803330180172317447939051037459311059115466723028227622584667262874628658190683347719574575627090595340191857695799700827655454117418539944153525318308016949417788092137892644800075816426718938641181538858457378615441329364901712062605849849234165057686750356989637134390362194666538126445286479848144778237391388568551482729995573691243619685357682640042068215361124264649554346274201845293112611635577184446690570125493738914221329310958449207379483923917618305171844003519349513685141301357981442824812793528180330483500994273879055498751944356645080907073113840294407281369850531576256452316303957934865366711360523732434170421792964411602042016585137907447710571167955751970461962739857146412522294478564735724284869232691067023781747022974668153836625423984749180363036430526957645740879534724652544439781678545368324160603732689027161009354536875500724631278942734736185776732459016266734608526865641528328823409147019039062305656142336715491826183447656499863725378903118849610294542732168160301199420227680842660146726285987719231275007752649095282376052637988137392583148944340330767018317077600427251655707213238058054993163244699484388268608467979465303731212870633917938682504400541226836451863433939610320232357688066766105874409328601623830426141191981665768445634835897039761597023974599697618263988826079049445679651959663326811219027743344422110317172089366800815216683168184309062707686873683911242303765973335147090925127577637888764040451472782321038856452360751802922650089928897088049740028560830600254775501391674711804529840293639831333692417417952987138973152885692020872329368241649595026139013033490683234953856893912327078027062140882249990739841242124959204680318034760247307331936217970546326407577599379594978947434212252235912236101373192464766495572056635094255833810055299835763759136555042248517551314834552011880406179038795198894496199090230097118647482403038537894882456411816261614269480116333112784355165830562536135052261108314795253590154145050441858466669238958067218936923976502270790537240985570229938168643862218216799051535464256980867539924151669464241802780512151687937584065960513144597514534695695606893638951344053356714203562542283362906150533466012717888917182238978482102402437821717695295748057906503771254684692210464941376458251291984233298012472842379431719655390039400245629367619817205909894758882355377003412210063234754179675881361144461623434895870340065922225130566932049758686228031724878576263653405660723081285247455067324106129494784583086852911313162521450639247346658897116183841163264425602791649154169026522952808740035298392755651707313661937154535763115467021225930007192615743682042033106677436926667571518858232598842079293857847251422902730770847447124052463745447247658579080941515642318531267587557418632568989054117968831278813788049938036932327202123718030306155033422145348726171084685770928652400288923404284478295268988864214506255136409703716848637138446563624809591849804720410395880197701911362631294795503408185215405524409469434654320986404946869348485859750880610179165527825291356434161154371471087465543645061877396178562635753602970728837023512564650284331386273043222596844620755371922331060568395813667904697748735638802351154302702584488577902320997109325296032337945257651544225246617114319798486570664685978830664095891429056755806854429018620290781310826749638148238548892641250222555609993942086468288573339362913073973946134332315400647118262702539340778981661012026619084804364249161103500558795138928228918093901109938101590875242217186624573509147641669201993126744571710883994290149569344183961688452144202968369752632006727260269969613703645545816778769927441894288045687187555041734469137811632792964504356183875386650293894473192031075913964953657865716183058470646853801236691364950560049166249780642595479403481916521316083400176651944711689134809208638555670775184140344145539534802251045534800606540157787580862057889332809202997951625120249777534774969422419515654120742482823868481993079761398615235445000172890956202724313272855343980184138284303016439961038421093819567393485928231838295147667932793573636316782527791755394448072201967812957821026726175318513981410679955842800454201231047753182047527822670995040331718165537228241037543616944647775733933390174100509072745471770888623701262680419941817258252884287589206972850025381912628669693459062087629282059123510769247005059735621266966949361933049745060488930204653308608153248459671854025974633786091673057181884919831046666679298789474955015486190495705478138796470806878072279233283927221070471791097863975210495298546917061532432956912319505714801372225321179212694679282499635993257609642017175788820571274129061851179238007276115140766460903569908257866793088644845989234576007196503568093039315103901698894531542782175521388796844888159768495845823805154276127718401898975132241754954321724215525553154879830715039603144654957591916922143842056919062057964012013025886873270843392556292991065925745363880988114923964118273061828323106206517003460977458883649873838239378298191838771061702829984937282600839102635084012251232346955674901181729381006707963156616000378973498267648357148157953620569493866792813474041836589653681944541932737729351963626898694506430679914125009810017964995897146940612074184551336093877882279124978251260708469381596523342946657509232173483593483309637114999287903205185370736780426904823367194721379770093665357795789580494672258297376184822718756676602677811084331686003197919403067421354911232654920813003409230474476215764035442340460628005059235066932233465681538447045140077523056915477731472526927404221359928000605419902768599324407234715602965945667103966657888893890897993456317904849040878079844144283499109988870507637027512844981605138788020930161165779151790947165252951273272388342630546484800458377147178693741650915484300283985492510526883364183453890245823199726648194614676055233118981128101138550047811524246283105418830631939574413759943290396996220204629744935423841115839333538307617794315543644911706601649522704526162413852065216421340106526680707152344201421608208079357525986683605158930452286441844655493505615669638634226636787335792346032757320097512470985527845712147318095546051994056173313136691378925983954653530134224721021870776798479170643280331120255026901627996815925860428368742933919935425978148067159789022540993243373771692608495549604735464635252950884249986991293621666806953604495454471351905586721748912800689289232544979312316535543321834171774923898443853863906539220750342879286472735832301706989160796288896166768250826463523705283741213567318628942109308882615836579693727559035962584214423115801006377774967321526340027292601667727075738036672797145981512558259924053222949712316056195136899412355118961875877797223882326300622918065871887587083292454016393540318123948983416697701515336897392265976542125324336018909280936244885479391273722318353972175869162264266348820458029922723407548641461850205736792562349491989942897626684161812328423461833566488277979538914908773142809037554225257276916682421297299925160985657374597192787850936392389138621525319852217846496986379781911995822051720165629415769569926731237341136817845349663323719420712608951196937738440037362613394430401761727732454556698752386562784283179004289279159810777793845559592433486108941858716485452757629901608000395005250827095580578031165983496886445375148280937720482747470584355687719257455588356266309272383847930738119680514559402613603860623902940802363480939085594406180830892607006065278296024759190817572527325640131325653670586782726913821279193438147644538387969908961657209077395132384861047315791398971286279829868847887198818219158627370520353301584772883957134887438741771448489529934534660991666715900673506203379518719248423097856611637640390429715783713202856722324392276915660844723610861095034507754389370157990880059172448810207173198416022026060794089699826098342199677143805992631351523898370913154374571487666704874865198779215191992996590898549223474466893362352686363811390594581747449435056928621130241066755876723716657869031833244809088759071964470970093299668236249832949897969025214277472959997796299730283651323211198548880192423145296201275052311399358389080648062224559692030337626087053673684168528277612438789413517814185872599478287667180565946624382947588650945804566760593312408554937951267653480657067452045482431945193371645576062637265033089545087312161706460303899783780639370336173271058720792190250964898883592744528192706554190766422841303676283762587176396654869450073428528842930709144400825155578515860239479951830316173319693072327230880618074531305816349598598633533446676752525201752041638553466956474514808129130954987464623567384574103515958811645539629895809912183003225196129009677430139720893317240333845398156659639064667961575367631891683960212403883490547374789902399028287113437046204674901409005771139522488452963113778671902297539339854166787952838919958468968177427933521393429117693696110340150742203059791843785900871882511332899168727821631111524474792554276681218763597836526232243571163171630521601345395231599231417932570565333568607669024838942733262930434019845945327475378201017040506015206145886650034194239088033670250720441251066399814634084570215799099043331026450416685236766346577758074695088663129366239573146276540467943397705891038890607320811226835522088639789489955904140556441409846574094710511381477843268834226246998034401797423450528830066168244239412079021595949479854973992880564142389688428974244543407260837872535409469064321602540478882425149352540406308612801037030728569495628003427071409478330679877960016989704836517454070951645392235880484438253155367848986877237936116058744756654392361296179924603310785374331200341454191987293882279689665313389776244727633067708339650721870139081490762689146145906982595827126870327872894720020089542000965129344435853179474462970140781145800425762302987525359569063293412337657989355981123927475133931328717779064211801355423264278341042329283157436116131632134537511141617839364492077946190318308291939410525331906416861147931378607435315887987111804312026336231022419542379300765605548973339451254446804619092284689684425650106964501912191294048969319367476392440956186204999642025449193529022623623501674108558546041659654519625893494246824101500212073610945961524843130086478523764879864920453151743906757087758242367136672548583151220127659511579838007890062948214097168241232421241100373825557372619232383876193310871715664424154202108543491009595120539460040122422869055429257693066650096168304348364623817785822164341253872420592231651404845453975624057520710116598621659822224424510414553851398329416367196197580943551046837987853932694791776480953950316712475945741663272318679825645929812321837599871790986059310142620701340478841649709598675382571734931344405950823649696436148062713009487137774122471576302986901410453857680092004603087160658438439038059547161723980431365750927881153942168185548263523455861811921235168996274181744464086019210442934751457448410139460058724053761030735518493224329140679326490532929937830700129577444530873993270479673521535409904997378363895198133315080556797757985353616109679244812777993935103323304632328974479671751661347461602545313696245476063168931727026326725843520966102966817355023724289627456172345439338461757735790778074870223572144629068019333022420737048607582008546604232842411949538406466612629754890083273158204100867243616753050343044006037045069342210787973897444776395450803948821839334433647135605210221852316950891660164688200686719401870221365604522043048601950337874259613903661468566569339468388827542968537850125316430347790435065835184418893630184163562042144884650084277772677401444117497336895988641380246553245252709366213510442210616201450217642389652511579318792353549990094881076225804953734771547311617999977375616108923123154309464804224441070722802320831736895003301205290150985719382197490419889268220220981054234151894334771762135448137887198841512167578018295002907366632906726039521945549671107960161015696881064967111680133326547681550441235635653906155925679371839655714593662191498611591386661912991603173056839809125299071791930562703937519186279902171859460214238328225154833242425019690959290203472769278974917589339717230182962454832149396011524058532970626411568450794664176844616809480429833161045703302920836531427468690148568219033889663481762878613886143841181989445853076552475580952143091956039334524274036770570393371993764839902044090649948953066338135962651094827467626250827721424211204641337530765521251181383955642338911231585641466398523358980373735284669376075887791403254906251985293556558253718786561754329749588614607604646086407272881746613873744699627272261529739864219855531865308261748934666488969890550133643485007917015255247660495316436350696142718739373325523797002143914886813731795065740014507345007469035776873783680811973531480080600465519410769921532697383989453177482682031502368492701536263440595492078430542183852316675770673194878220465186837441095304203685458034648906490040940129261976775572653353078060380485827812081891287333365246655165094704558685234781725131642289537955736965912240199839783843309543815919810037085251374192674482729061333983002789243724918658562734432445394085745285030598074653146525413787020248366735062241838831899958236214256182716656181352429323980064299967978006280125825413593289999550547676851260354150456404495959050919392889296772583437293276866379105486195213693290600002230335887383835340545663990207643989947311814022078941746652258387065559959134041294469483914964888213258221304581965269524463140733423347838601214126175864107218670378097669711247741812306019732618692480020985009505717634103108232670975431637704823517296182784329780716081096731066449834070402207573141089975361432634669220535060273866105669933316974189684332823570623844450452052867653554016070701320868905538031469630531365454649724971434669212159746773262518753360113572892425598965182255495637998410577956880103853978531309050401601016166994345126833058640828922792637997939050441424362968604729872301017575352643804762669077346829277326592279532308580542790425587862036188887738768912873775511975971285383172689838393708592892198633647557107298772713074508487705764484478522642005305771837027549591422409436121122951839431164291631995281591648128708012196155555576378768803016474305791358644159692802533715858377022991253934528967000807615691567366074883871421806494723789149402695335346267714890049938518363580920567024125257731616832196853142914524720147286499426928109397524597049918575356119411847589427256685915704770058521337024899863096652268521230462100165906489778894288195290079880263653551630802149324677418293670622863995658722251830075327855475227639460651529778128770336278153621899036647963860358548654931411892306062010154059075101665992593760603235057613280731072846856476578962575857821874854110574781040456203744742188908100220049901272990143890909693295813948754660116588228522656440165071866470318275627003733473315733723445382129646315973256827628807735971450820539348655034022183240008472048365674321581024339448063033686796564099836990461590564384688256688312239438828623600716369695128623817046457221989497527537233092430345430943228374778113326219077618980351512436889499232232708298519809959056995181922561282069473370590069884750189199693790620060514063856782740502397640534828824093212629816829455063461297370636477565683492161427043301916199643733298183747991133776864222003723877475101383214608328145633256968485771353426691095759439869775415402635479641836861313659041432014262289159939385390016403977757538206961983217366826792334557702433503035742494986750213092381625662592519839480003669476623844192886792765134544079237415639970033679850957822126855801242254497283711130797913679655490955169497081941235410412025121212705736082399455559924803974332514542729579885900395528005884478516885712215649654088564258951576204530511639362231186068203580047794554856656743698575444495932191048765494152245423237712733913614902027187813796469436088902571474103362342025396382243797628406802906283585816718062342822316216539167560648631703459941069209196839602712316290351692656004025263040889567864956970450421494674736212609958444674700027601305457495042717609861869031082186895032719134450171944298236711094073966556385584939597732569796196461407984525721776494334494205754723310178788889094928745948152594524104113270897614658662977079919589209311702674790368427121065448645312285174052994279753796116857971160806571916068677749450822193119961450031226681070535960505913067878202942616492083279283376281414568290752871070934274784141133955704218062490167003283554876747661454210748872056828897008156349231687852704659189236604878044570195278461343461400343575909078814686827186226500963574588262732533581732009767322457901659161041531820896404890255860403766517057341735070517965038327782719058765843158191062543317047124813468070905480379931601128110573179104636603799374669008837020443647307730658417563418206078644133608632190889620802400944769914550090747312243711760278234241546497979077164109407812644170688867478690160231634277350850972141328369012763050020116017276992758505344472841694667413887065796226179964928457083666396175095809923951917905530682557572177879668688757744525555747751701541121277312303525455949068639432419331680796088265032186294226030682873710487709372965583419389798145871796951375552686908264461873176122364845627387614456251112902728636553884754037328187669219095354283584063022193019838242108438505732745817357021815761099578966086772738323657129471694371494634604622575765493574710359697807714857586842455319811987384441536075561595172139596901734209559516983399502141857164171397090349509750620258930077212058466755139278472561512152702783568511478302038246743552094163169901514881374612026478809501774796168014410743858699995924564226381560922574870520162150973827323314047777837718661730709426217237701093499146867772436404495305925224431537980952464474138298841869335481353275672230724579971001921015125473461848449875653909193528811322080593541259596607472504080205395721768973222957392063753756639781288906552060264235789095568259503722767528940526467712350707090604341617055336291079009346190597314541837838011892226073484176421212904820258358162022240809445891601198012465393302578037835107743413210089168028562294884243935325138049688540352616790198620115587753884193391687662364836564947427351332858434602955921445856395136377340562785474600792299546631355037956934429058362615905404777283812637735650287092109367094599331633731879476299217289281860866501380608515999474082487418805369454749685302745949279086642023396761751644283165478226110024890068383218583359784109430661473061250305474692006292010975508489247656910827485968166117960758943277260050858996339001920648292644831078279213877498077261803477819019044503311536811541766296048172227964077518725233708824000615421996309429862794559923195951538673495151753270190658578154635967354504506419822480421241427080448956349204693025731104750836143113583412299336036468599009814569060360063734040670222972652590339726145470521759768258965698703383434130939303830199207998532394203521355293924432061594724001355665015018196517881431463755910770526306639951316986639687851588003966690800478055623273140065161616688510110024528575624247433604677369649467733340804015867360017370589147147916434207861114338071156306085585122080861248423104249766320285929084905605362658440184885092285164110353762164750269029376367474296942615498878605408628669371420681782024158899413741116199479613053618077360926778022413091158260184605608132677516066959856829684580681317635240255906451632934166689262319571793636004700084878303513007339393049933659537096245067502672991043883945350745933160550773861964702582230469501552721951919353585527223898410610324317348385307580381698193267008292597949698756067090379751567294233899582970979229743886492520094697676271610580206708307221080223836355529181076903765592253384804695766518005548496245640084620349740986819011489823241278209795684986629919250920136599290403628480272272032522246343126785880274469957267462588418195651365233465037131201313572207113088896058526080297141828682542766259525015563729112325318650577031349218029434770631015836466976797117690571103000889264407887661715030557762056770182743517040115000681396607030667527712369504055685254066593052390268246252490907937806764272566195398736568559406033497945843978132193817868986206766984118314212962924295266212278734253399565107519441266016877874121161264819539074560060169263455024076020408500340192802830114425754149036224098837284020741132668283599758925275526339083353436150031218760771396550703677821512127434842181454729652509071872472121619040046693052048747019400233165543667575207044329054867270688513853166531878191204559699107645509724111804012733345241015054516092812103644310291418288087265641073028522507605647946943320446379554703830696818121856389299480532248739747257491403129892260207530347325247211325933790727521160662612336321542300687830769431541180508725353938867148574807453159222542371192967591321463431155076139807425717758441559391812608627623145008988916910161941519113742323534574166882003131095158871872149906233500435150133484479785530139252482055363652807045546510856332561166350133146839651211639727662683277937316415525067052382721038030235702031222428050314660896373712219731735317185439765198221799262145483295225627100572268497909668123767773472534494778839000833754090037467137367274671746776772431037174626450418182361012073104956830688616911663551730572617491669259194443138822947337260885981942327451615382067716146540827506966081608531528820279107082517902774964413086493308962676729185547770920634604714795902914327956606953603667448634875515261763473282262986859498799379100097226119985280800020751403378487804448270845945678733294200005790026978727925355035040039927424713194253148386213081004901117634924036436170957628381370389552117755499849811548135372227951429794740634286796713584271649785578346122892132305917765898779963846504910452576763011768835274279164886367050227052499744167663807681882248458159374040120091615448181272778559324886791856560090865624532834145879789536890504730946290151032316167412418281328347982825421256532408758617021247784885310723733525247034860986224386628333019451021970572598522183507358250120641811758235903064322268627369203482209231944308951989523383766407705913783442557274249652280664429475273126057814915789973781524553252731780088939753781762561455058473832792067243581612932933922732361084910467028570438515824396334258717932427146746598459447755039341370568555486700697070625891079955683073236770104857351889660167627714509528021990126691456408764080712346190379782745682017528810439485049072294534844843738314680133932011283134902023831530825485277638226675809181174478237182191295896773976419611691013384737699034792496685330110608958202496011439283209080955689656290734395681103607943397936638961538070197682695957618192783644550094368629527047149120541461012426147206607555428435463922429497927062155473040532886950418738427840183131124112087469125017438572347385852836904846484456439927134487716003193925635508941813947218581409904819305523482658080538989766221130545328094185207600171674471401280969364134321763472026533390272168960163552566288878071443571562559906642015834088282673728380314096235087898918741944025624240111098739591722216537524784184460995284280629456172812469212954035470696158248211495480501981721518868488713923911275240960789778864555494547549201003947655812831130006144813335286259404052694539246712641425050288203683856704378923935326732579919931223264366202813610213355089757451013490951676131000745352093856060442702853750533423600792685658261778397334959549619279204752680412333532366877118577728907567959369491747515488382112683240125348450483859684012986060049430553852397206576705645445580051513666122912248006988998751390284049031743675142907699651303119173834770381574350401690183206416786855930574736820301868325219937921359486666568361385094579948873957849248002221653678167071548088928543194683935054522315390921854551647362387333224979698029333137270439366813968320937119773708365925410096369111293116062353069644153959989762193306135531501745426392481227724893873886015869467346660687664574033956936849554938483554394620908445696730316413674272225074938684964263140045283852297389407835196723680028346903585444070534939098520702647059971445737066940186286544790196788025348442825602946210672213399866538738133493701447102741646008043802951523487095314584905659896126714058835721349964482436061391328600176321437047469507751560621375273782108680022610379437879490581216445009979940306867057265424657108240094347415552252616370746241935436729561028306279207180273495665162980934642366276331776714906822710906273953757738225494656275941593324285968094240778001413028457867429890805719049159319990698964673202769949443313269648488022689067208152386283636209539748948505868463984615404577113828710074767673674498089034874902769666780902883404315649431376081417092518552237463607419010927301568072694199739435245736561406384297936460730175676754172760971959791724267131589177637204724630509911846445715612802440372471849698924457735986151909138061352661069677477014750815919611575513506978910331179491369660320979550299663160612263074842669326865442062391728629545650005341010525728784628784189816308562655332078311366771364803434764577814576077203256702243605067526645265412328214522647454845233864900594918511184109345570841978385683548740192491035722612867742662369718461225649129887792909864587493075005883009996692287420855950531048253702212108133057503486317103687747139335384735155575968210655049212938938787684516514672146025368868710690125788890264416910643841964036187071197116092176786154064879149151488042772364863094531807752671761115395253288365789807086985451840917629241867815584746052815554138618732789088008548797015646859571001111437799159767824012486158443854442793363012656990517210391487632646680398858605844807241665568595438419722266139794310581552605072067891341715914263099377184878072154723458876810917222373187877669280731179677458459209484559152849139013568093614572646447663840923862335680325291726926077630712094597788212760143517102022589936754854968930878201604412029477523057284525828224090085245118271995865797098401584089337156296620521795812917181415329617401743621562125431314081166423388328489783395371108807216049568155596728992185810222362914174052754029898971819615759068790848966355365883919973490212497511255388750304125920780730686324827441492536165172655556577676691933266788216463047109116984260053083779127871842386923875873307536911679959143246895811242262979778554248466031583984897543178564356886503995734915089669821583401083191728453055418984651819368632826273659583111585205234524016910852557589821486159992840445796444695635612157674908490033581895220478509158709495183716894696363638116138484561520584013178863690069596953021464421196133475989846421505976797558576454202808291424399277426491487901206572906321666923035703517590530958506184824947250662914184229230807813505465860061098311888122380186277933912364286910325127319608277480803527195010804987596656679430205966160753399191996921848586350812861365088631056834310630746951869553331898002486219080464263929458481582157218735531092455780524042656704575168541251367497863498375993951089206605070719586160904645802994120261583952899132275700712191241057254351559255201015862404757451212937125959053598374135558233153357668372010275635376413940207284234543858767143619736695322835257986736896963184012716202221787910334154898120301145763545332368151511523846325581272792976415107364304764985053193330603210662770879121245449797592438917739999289319733511045404026319507155506395327039939085211949202354223887484676489324064689872881165400907721641204872244348865435389016129868591428010951407210933476533817635443512747575162772117390777615686606294499509963914829945578994508592013110360099515274397241612443889156522582838112916715489888586374556208998482373091110899855229642021322310814615862496306542446633607757593907644501614315448998705072674302824995906221747980931671074736690432869283949421785548441258014289372739279981021919203805337432550106693074777343002736055942322058694929774354476793553170310722844554965845996468957295108348801461493978152281111170861876300480991242495861964786488258356637370475493719729213521123931964221336127125990348250391171707464985555746776249175486739056238413644998780951136329235723396265053679461797392218937230852855176844175542066716480087769200054294983587461049819409436697321392225069495557164305456567590860006076436864936509528476542087219012752812325886961984045147903429960357385126518208993026764677049132597038415370384602212211765863253605730715888977566321744578350136086116151789743057169746927964109807417424359802254488082286858804150041266353601282026509267766645787920936356488765666206054131744714479507281167044114277079089138917045393980624527009654874546307683431481068639032616159989018646986141655353848874941023474139211899775727455943668211527436823595512930959828486974572211396206966837905992860782541539484986432515496527741143516690258658887520256922504456749405381544763903155484425594176820504392102538882157356777048790687478724236606707233531085368121319313131746781055128333900991420161232294920377192280099713295399665296205467090873490964353190683201747290286684817266333386071883496921194211217662009656464255209917423282671980025607684702829069630926082125355109641265455944991476334807456145784605525568953268927301232614351675470599956819905349248108294525339346796416530728722627011808784371691201599171239208964690557565087373363618978073086965425204805684794418767841605635257537741012159467964610877360929672865896752314255966211953299106522899861322213738209811739256538193201650766161654067640942836690875231563155696948760267646143626468930728695706367971906987777996833053777943667936326024041340569136371306493567719934013371272102112281879526756573357663481661850345393537781759014850627149898213641658698669654298527879293471726324507161656066739256791715705540264880632036728760444042575995062692800750847071456973828866088622496762133793491795944212251862851141024555398423723612810390221119494220797806314486947983216820794742433299585274465119087891874452366850294235423803794447641892674873419271415982977936249636112155943165643039574715368993665538963140880591259396541337911772853057365450330617797303552581958646900037959517978860401044783957806715025999221919136029925105554564714116105152686102528641490873349339847845700011470116867752789863021440434120784257992453168412727840242525163803897015837541651807034822945231014269601011993322966960551179734620811902975146246593583919982713966317159075154544455388293812313929439425758977464877550745300959417586632851696864200096875557005208881027534496044124455231873503858388969577198677675834621343436140461978821962957894375179334292540944570938241715387913178040722222826969871022062246577924693645023443687950606948133733280747977005706962838637044536481335892254638706339938639545410526968190806159457316898693675173263712415599436675179873853152050064522881404876798828569305559651901548898862677412376241296119626217015323135541717210732624478560643807112408294829313075104821885722907109122645151835171167931013602785288842787631030440223042459568241549811519239545630493382492752554668117957213084997721940057349486966958433870564592369080346639084784563579935572605451997870435096294122984726020729626977160790295239944352962932873250386254602176475223136969872649294540988918448735726950296901870634243776419820766899397724655300815743499100366304581952219734655008534785605585489624549627256658064055277742995049836984537402279564836763017584020162289092503329524476680406462849067476155219736901080425604949436554628738776817530183677798469769726393937538736240486086710855017843158123976896822357602085058758254536033239251588402984072817857894764904062994198375424458110646164486532547281536261526052084424967093874082090212444755053130689753323170266634779644870771425799918590539301245777426057932994984173051810209394688703128732488120732680398210093400407204792999516528682008727115354863475964466541577603971060584607211311472384531282436841731855865222260394551386588440206971845961114849621350073994255364436101587304912815498997531352146303633135098602684490963436990370177205801587993001216763677639037050658959074545459178521842678995411077897032436029586637383467992527891907094965628677046066972259254217499970576176804990931840326994100770343617269781458038713352404792606657723888518636456804141143924016970899390565237249392492526068469852064197240982950703089280888734433701516493014190565414323968367976940655944733978784424857492777532704343708700758097450094754677357841720499301321368539812905981016321055839493492087591416896706859789793423781966741275843845428135172021460608108583138713911761382667883475136414446187697740788885067350861447195891674818296769364431541965109890346313713912462434546719427657387826841282160290716465984288974014815547856733814152017401282380976594100345914863842218444998753536330699988734948549305437835122292487007453436092713520339102508287504628366720992333418976856676131798477907432039101269712662074782912115690858165447964549125694185250218218219182100176766085384780208773777385302929566826527076462524074995468216400003216324035329986160976092987156289960384377480499396851302136752562242412607129738590033073044837728511845254366333817591771168118566959644045997608963903833593520427811915945616106844879663830576621495727018605866744606267148421621470672732430826733329101288790756391154933042976052664366662913093135870045320529092393761599214895548447503095657479491628451251755003442991019299235570837286688997562664414529034029111131570951976334850354760247155397059730944515435199240218160288585707225897541096424943161936340162474693389121055733791999437265713963983887066707594489096387986346037965687893990979104534148647770307542653948373674340318846148890147225753396868934357238926650745269476647597251582421183325884548821709061273254597826935993963413088244344473221349576802242459525092094943936629465602584348827505526315388843190561078348200475031639269076945906532234455855597416517021075908154646113190283506304417516847890913160381820613457197669064714199694772153224355803888956596126543374471495901199253905651443444294200195120169140534378367174530595444818503664167427073654822638422866511515998280690257632814698685871830608705822319878697805072993701680202217931998260496947274612406210488751401968762210567816917191111772612604676232657267049309276743478659153126485312368964751346316026794620354501330204084397012270646081762343649311778291430429209543875458655289048963193091940597973777627689479821916437671652897471349886242007653469427231622472139078672028770720078909391855311474075058422511541887543144942390668197363873796538499389564256556797042736215817823591112205755277362800994696394942394114633211663126772640806816735103959076943060699090026807934465174115241039723661338308179275902175380612957836870419178720357539726787583935255920048016629414511885658706719630353480454849291274399304940344343799791392511640481652043991139915737891015935683767301179487729152670275459593518723957174671372763241556935566928064838775765753470818057433555633171220852292241390365900817197152405552390495220311846872158116963662729910394734175092961102398925857087068389555092748766066779530301812913561081310162626527635694865829473193869358721389649937395932814748628802635110026524289472883135294947732111858130236744775156479085331472433039544803234196323982618210054339685360455369501286914830197555524866731612059021655098480718672091802491269869419642630106111063157209844465005837747849719614919120179090345057453756772824693131546437891217038371539350179771636420100532361203615763952982937780241535727438310708694208010000650316105625693478476236791773877748092366043812463618245649657902423184714649525916314930104776136719991975521539251922994595505097175918245710378251078690249460878317184391765059452918758352218871791996327731220275469375958189655084684930672039827493343422293233440090530908747807604080454222179810389885878937047907485248910725917603427859723885037528988554800431782061467002513792755510709237075566642060820703368749975905554040928082611998412164081851342686803336939044650623920182009551909697986014822704054867468799308154988411743026057299275840774541902990695951359353095089360354895574071991450033438626396888851213942019552087696768487620164765967272790168199047582665558273879451482731138404515813886857637969696761275440731802923224580702903158194517186452648218508930243236465909797792102414085565277219174523808173566326937354527954763662744621686877859841897483378317074496581977336057613112571584416658819424313083455725926771919680903796894874496335261840476247512757878440510742829296277582621828421761442412148489219275188606477991913624078131230976755305149749418686649110469962880664759500283498322501652920620542595360739412189991600576243969488047548298831768012131453273020107699833700592061237056099414137346355281870772083597667778157673473684112159293773352613590617197343169448626134110332241249813811591732666973068572657429873242234291736275675052613133057445694630233645283899678498891875005270458809534340736957411868935676248229222637677726666750938389387301860652025818699954417492804758462021899081578907669207968413411142493571473533787124984238688927482417036174893807204919999336308582504965784716752396957398348588989929735383427404839924809181541272990575578460091167653563510039094504318133461832732587311172846982525784255904943896811018415047704750441684590318103750400665651766466284149930833222469479097239453413194798582186763155361546732276558313468383464280172740737182770255490144946584198898013929205574045057649628397837018607432596372666080960507087463275893346594168649236597603330990939905113874143662349868997377597979317520150666340752949562374766374855012238949847850214082619210271202436427916865448105080377428244338981132758095560485785058987490781985664955322465669462986345308620590507610294372691876546022530384564455759747643025205385958087662383537965252212105811761639532930092119108068406984546069827070732203378492520307204327231479403907488239856194324091333272372688277594297890100940870670665655903008245693001261539801914657925204982716268260458618538833487384413020458164844290586374900500358435912138870578657805798930037272612827276959111489373437079074151193338579607690133121858737188516235013101165849415897150668614032807453507842044933468130132397016399695086119465127922029693129836147619540592831257096209155379361938103313352140840500565554942945237122054182702596525789843435496576000970204673164617218843544817955950780564361396327523019296644993396373444473872240895925097145358315090284066602358798986406058637971928561508156148461705226281106658275640213713451499753192788638994922530754971509705081556109901459003207689476097117447187137314616327462991504783616372899201014752902306513500176955548485938285319109141350623564012316425452924144595256931246692379172436928547388709413926253585474789569723917558966896720232146976568696184365881764418645011620432082844031469340140700549515369048410169126083763546854636249770975710684148974503206663552781413087402126328628892060772530602674354099687318443333524000100966193703265369006239193677186560560165818825107597879161905332311635870746031817535550910830513553768089723443005945508430483310698262840041599597513785585348298287182386477551717891052207492243764870227621614062709710605065573226205788052819305930781269039643661059375389709828177219707095809667616279942790297916131309930718475715384928451159170479763309456878751541086665690193034554646792697804881297662568843923140890609415583580507020246013674319836279078704753348484824066303705312478369895484414391595984052244291187212959853952827171980652158557333921274804121479936455944733426740024051995177225041797403887109480074465740987488288809590728483166474408339217288408803720025373407130893326499936639023086372510127576280996126155491805152293367616733620151415078238767825647661692301463529617216460894226530290745530981607444229482223051690259575537864447279393820008106164131350751051004970878600514227809724771483525983711509534783141139139257130080613888582780864197839541855675070070246926849303015916418493228973207624517761871944262064463666849939164961337705348693473946517792770852539275542771565835316172341595067420366807432612712322619014746455293856641672369966631152747166199367534185959126586449811256609097045488034030908132236426358176804422324549819974433018039223935207554513520354781996730568421350544469781338658179153465706382190382339528318785042061526115818939116371250211269794762699234698065914070049125627405819017272701463016095507131858536760555509877159684459393579872524802166543516303434703881703924579827670549506127176789223776770023210638276375252626122658075365513184338685905657114140731256788969403337844828194168661254805520434164335393271652647085087467600809816020216098463208154740165223370939452207284525604331418843101428226203338341192654708066745504630458795715658336161310969697467373428835349424573290010089807582239348863076832509501189774481665558886811039133315273797712936315706806389303173228761549347571619729767560409722369917331036558907413010687639752192927851498139684591208198609868715171559216878733853982008054311392971348804829356259968056194018872441011057129306374697391596858601585748945912845029106234089045584635079833874939017167765630976443800880435469819191483481881229206540005181077046575375102015422095070791794683922225791940878430680359158716554963227035905679610998154069989204070993353819942354805879506692137320428347647694503964272888775966487444977545621792588385215725622932322928700567965111394493666191486866755382241054991115987890311414028208544381921303608636869434003486082707899750713881073749157009578740414041175981036626599992198484830930414597065227519473974866190920401194136983170671736751503586126465791900266196449193462262522808463276924492125859606275346343299680245697540939011588672559783361840920260254888924368282228152928701326321426173680425682067262018076083221429271024973450933413592584454241632840680291885664276330475311485790594963467805253991169301354558799805800167912675732407837431531280470262957744386444516879631493018833277332526946789847487382808539578661058466603680735037682113152555145456971103703693814531485136424484009478197141378589120946976944031834824482027988472763933920680114568029955821106921741522928393971272803544423126820466599792255184365621574893024174584522208606884423877131849941469137168015832232663145144693861555728781119337005399669351609895280548520907948665370510511291843317151747039500270374478808147085853310245196902989847174055374045806174589780933403328689963669187008987019903449957213373749913116194715563418583152169475066675596347876367245445180127466931258608748904754238229392912062433427745561364082832077717650373633366480851919109850365959225554165989002510012470553710522705507730036251766339538536600863920980692087134106282554020244537267052188254502351733795095304294001261669552073648809851009486437039951867669475802657470499296551283135980428657020740133936217219493495570692982168020975101750954817395734401527203608499125895000732332103274420204513522518847106927436489232162889465016982012466149874792022174503655691781671690860798521914251906564764435946625030427395486748559375688841977252976546769120829491920663215895965631247270604675929801693153566318386194072348557304147816076321622679241385844988312318198541818981079766103113455349354567066946341970706658596009163419332255212817882769418473460577817615157901248235346830665638211522192651276909551966741858726475894820189820539439514538525290104710854832714735621398172178601268147146267282098234836908742949986177323677338024662501559880102798594003208621781808671617072978301859134529653723283264043841423985257920831175673555388711763710452416258981299197694144631825459489004122519597451259934389635278291736835734974070471489922556724425605287346582221329123430112797228249156615114433727279685210087547567519227537814413886789985655405971974433641644665175174859850880834392086625306921359068548809214325526746725763348006149650531219633503463442924558448007226015649322298633526590455142809050245467618750165337402829289558753423162371903380183137816813012330486276949445859414915228411019272070588689490969913103563598865624607177618916714458840877210524039911257424270034876397984747755989795478995671333866589323658568833323817094464692947992131743147059605931248547706381619280862562446701706177240517382402717758365031633698503013659085849439569135262375887716674808179056833726577948136045585439228583926977205160814520397686790096164473154628996983033613743317815133235615946645364783405555770433173308430899686294431664457147190406117034802216809456514096613508701631307841160005938601929033106453920726793013027135456851162012895383891454021202368473218300244197062286086886102361552177114241157404652595125501200973366521143809152131317976125599905604673497284751074107369559071695042615820974452489089494003156576813444992410827873640022899779019863395150850352240702434941702620466286242559657907081793404419097586901137644367413607260867830606912267444867787148730411562097720854094889398859610198293567235230575393605320522961156492713328901840505179133925278819642380712682808157957801884162123938678238735697787371480814370307867306349857608351962434422376261011687804259808050948013340293683726359704650033049418777420979051857178747072747328320849123990135418065680352840979137627935372733593489745778542287458836341843132475077736658083286773943149026383745671768334019814225353285255677977430304360947467957815618734409784058092030945098585536633507512737264936180514702672696466804510079979432642488421990162115280057794653904547191758708847387367489383660809090325211554794677658239948060042532142572508945239791415937147318130762710203393866184159989461710411729249275901692753233671960433048295463418109468076526739769218350989787634362830647710890312893727299234542060691938892960035901522664427663685864871554860661063307610558350958880476426558348082026573398651151832400925675767441287330695593323146550884860259014973533614296427602284252322087700077966083631411184185804649656163965874275542664812764605434761570767235787444574481873487795259127603801667961085673245019180926664391895924390709131709362102713983641111975132250496209057822338287282174926795982327880228913070065281525823038305915498812000801635369010279980593758970731161199509958814911133659360706872157866919094419860246498696453315479274356253906734685344014427402642550833745475203803139878023461653046173509317370769081352361491661932322522344520793613287446680917497863238159207825455114998733149145547776660117457348302107579614062463250612031445380236579708488173802881028109581934546211884162279164421448528022274234069706153277905865927893804220873172996240988401204233131577636246255474891711486012157011474102384589807213427117619436672877086095845273338349842757679420574987109414329429558640243279848706545938478804684416047740382287775887451156805636033351133978786995684697663131275708407617962504671384904566989971049514427441317851400729474468327755322204935473594915254252491316037184281818075767483214392198627884372389375036641674666419993732848405326567212070665843748627557084973251567869543481863815440657622584763257928183510805588219499596864904215099416652690962091452758785605010803128715641630284489937320229301919378360851097087108328897984997175296399434656399542036857601429673832185851483747952056495288232308777677524317334926818583148330230992891202112125423576042196274095214911896522403146737319803172947583050602962899667029553151348796386500880967606427084621859182863584224753342525487195767651800316548254369068440270377748880763836601145959624935725669892384753338167066480815725189213900843891015812204524474493975258497296010713815137993395591715360625072927832886328881603548232050418548146486935556816772333185956620963831191860710962185716836158320848848617575020246371832137652968240048639267695106379659600865439496857461643035647372453863272420135058321911525045854257143251607304727478101562118166777855618176306763161229131984017236548702269922786932974763446557927329107457563049329683577207062502249688235487086473543688347411895719750089744549382239484097918431770156429434937446502240357009128078844843003006490482493908907385434271436486770128932622492014153257418351180410472718297367775925927734140581463110232028695278265980916368126204111750488018964057631470771405617302477834940127891112044173692993848306057746034072380595322633074930008023855129480383216610653580148640324597627483155345137879434287512644471358158287982709169729307434746638769571437647372581720254602938933822657550148203403479555479710580640274302729326487023989415122449063051178487484385255312719215825797637177183365788821236304438718145140960864978578090526487653592503177641888177518274842446741238543039166694601943659533211571689685515367528585401757829666234372270659881237202677033314241096644136872799805692115187720722501495842533870718494517329461967699689008833431657676656094308064490202015724393716470823908648396487624265416850369317213949257201731688623585423537223989547068858217053203018456325670662025649015018209450053187491781101078907288472079134801505386993853104217721798661810954019687260598022780969147886351466222030952293800770012795636994516628400767532424388210927041046150495933703234970850695540979742398634116692928769240011192232025148093989010164444322119056411602236479439884180502259048249470688175303685970946284361994776647166552741886771189462011098473035542831737426280424799919161135715619779086882262384448574596384680432437044026553751561234429572292931841394559724634728045942147207792157044503414441779778709526906047299404409123690889223690303337337443303261961551930371025145934720882897778477798957113846877359318928350840115261633434801055706312704982175552158825699222962344662338104452683221426492878672114692646712059952747648480464891407738977895261886120641486550134535241057783542612951405660468224860952308653437411498150762138854060523212443438456504379816731084518880668425821806972390875622503800467045626693250711219400733515704749194088891578052871642778335433925895953910774481371207505481924661125451162143411582149936648719820463190467834671868181500175945715821558165261534282613449833298390426197132431790716878185404971440107154751231858031270830592940886959957932269967101056808025473173438479038772301636330348395729498239225462715916435636576319588767204828064581290955117624072933016980050062634169796417926935046958286041535394254871625643701155094872755129349783969356763374492653172337882149160735804135722532218246039057495551190154736529845042598361379653143021334410768107173691255135911459136587055325162457489922209715999535444299142114189204792950090964502154135171576557667853280272893410602060238859172127241341439488881145287187644250846065435673852830080340313713436241324127814919777974193099803030948987726075384986605350365555432208437812588798031223340380885378658317473736668502798752684899946456558302074754274888893876883815046984540419459437360052638578547759425323531667371008168658111378908502810994165198223924352108513661788164133666391774261260026078749461337348240258204218071453057927841888577301819257864459591972655146845779347750673519540362139901423803173629595569408709323945768152453798614769389065547517052023972823266992292890207812704265661201498816544829955453282392798987675935489810634210570864776007345741466198876003948992294917719460888951916284859071823573836466863386182648961856202302276517537756535913046263711682265746559849249120287058583468206830042842286761961343602450317030997322854704821230262793160648012024368307929626952953570589405690905147766973885055985758707987940188321352185877084650645831568691606186829117013487596607330005699353161486005023439498417671312654133333487717160804398447021097907625826100587038345013581780433395818551977647981550706393647305912482809611697025283361781566475914857498342649382888110151099033902289190120035967791069466666855176542746942637293584222891289041442196657524485801425455849521887094131147265841991331563409506404061199473118461043378961680395709606444128844707836983424791349103131231470567858432493834516196853220654105712515482975923485928919142479777827879022647914711101414947003247229423628606597524569976481738703796212714336078209655219754128696082448780300704680775831245026724477771150807999234069771590918591448972003126167347710634701454079156744418377104448388829987611094912243054054307805077516312887511407967254855993590078763264328010963969683519410597832894068099651949772934608297681948500627440320703282651537454590874441926551042663046023698475143623130838310375614397437062617765276071632746700024122304675728287314263183178302284203673419369415619930814960545833759780918411414338200433397292700360084354595381238894542590141377871822829876161497861567206379713706637632546699487638217216169098380888357573502714637450152501938166841919573632088407299735374453221784149667980981102873764366243185087519243614923183989808410342084659860370706864136683848490426002358182546320564305968194274539972004230778941574952253086738847360645862334234654818172839731861032972333039029447205636510247502531967313140955320619931681872172316744829334464111998217812832110400966449841154424544310882889830245028495551447925438249177021887305150528766218814444009251846429960415784107813237301388600260386174938380561452912391203861692139888122891123169323127392811353924086811129060702532758007525875682914825348011983271020593870801092326254670058153962554715133720334813301327477757990411422539991359729972036984824515644745485084910077626055506511590477146535339517819257423210354869687955127891845505767400094163263220461813914789112066736819298992332900449397751738076595467295569138399405620235101775864601756535164515192421369906738094375163645412564420012377968321608311230555715667865238803750234032803434751677020336618272479483251722478427030543598871993359536073327173619390542182857015753061796207239841766481408865526715962443504450562531459752432947853713070491446991541447093565231797988051995133594634124651761163443234629076757557092058599824666388546043705851945801173519187880354881032233581441146277466024796686887123881963908778052398003868501098610602861051916667705827045113690378686686532892965315296746072606693414321985386871972873886503288474726245379439686650202100408756593956246198738685993374492495670335418374503474250800006201222179912897066783680249407471509154983580793499476631374343243249648611963001888283751129085249543507896974753714402147035312161630742545985467121645295614118002284026941184341294086365132213823593485460033833424962823446727003723747788215861750258709624799509734530048600151927811933632247220667732971663959877460118602861287394622427421989913454477650996864942189742912589787974301740408998192224315620258776559435867531578900424672800517258894688093785053946853649924045413672197631833743823116875183146455709953375618376420676110231186151485909161883134965065282430109245345206598776768599648637803174190458261354134850188753282724369190867060646413411718192958736198404778853418113463984144375595365979691422235787578656418041796355919026467943528088474620879579953071734974331588133269612984740529153541164412860465045422614144416718180320254461663657289254123264565061725088208972479488644862438715016559506209960550944448703603603624951445109466110418161921334077048735466453190068852567569080496818891291910125226222817952217864788448599029718787109314375067261404587951147392172845374612362252471190063404592625600860337020696185880488900990969422087423835095729504687106664542018415853385975170831685365511038309271854830530699731988601632773327872959214499006879099144547946485486998716946878979607213614625186639597144014062789868035308447611606229326930202655415560282571842776373795209269832992288579452697720527474156450400755037928527562712950105668830366989103770675909122212095686722918884306124535025558146688365050260444634724331676893849227014954346045959342205673237540339022845173639127702891515168795183316392199005411603680587672099515862183417519084635512230752630853081001246118385204327112506789091881384748009465443098760399360024501792689837109317740270684423544088690901496941576746250192376738080611733561676823974565350701179521670472807579538566063638907570368256930673522729422381563077313211374332524331022703068548346670147171346173336534953540447894161356168281376233750556085751033777382948457305466000182689307881793714656878961739258462404855052578889961855694800828008497044853343884885690228615633760557235872690807900148664299104801131015478885936640275144572387554025167890456703647636027307626976162603537047842515510191910819863575882746691106793864267379049441741980325210280862704059972013844095058557848304999504900271684704019373508181453707176897771708264566103719699018765297034261194479052546651830282732337355430272313573136816764083130805577179042779352183557870963922522224831806294713188975766392711745445773190078569196008545445402225474811190442605971227832372531184700791014136484021660291113053787183543748240700403323205290078133121919197491535718621823684759972423651745109924366603047185483515470772115493679944329902011336928343300207265717582961095315274306391358461593418980745618805208974503529213012946289897785390762097533440703806622199762834151538080478532699821314515395565469377984652308377309558586765029943500951407995751304685066987229458205428416796005099256249542994817802531166349746290091689154548807428036078509859685144081797962299134337267887573936288910900708176837579656179773734711519012366695368224142714530461875590761562586555028150492405983694511920076024311309845051779793884332558386035498259585772522707774901705247698306435581345124339677994332539159773309641097862274821145113506293624004129663820637382629439932748469411407029210128110176401380731332217725753410947290159640376583690849360611793571256296345922349352694282550856514726530859542016953945113903395834719311141734561767279191514476863465545956707935131147943808547683042619426551825065177356368177812192942420591947554992589514058277351996828140233894185996607757497851226129040532729530679208436670969349025112396706738145749613329849344315172534113104741359043193998677543121607002410879042851569465805951076023643427019541446044431754978148200237201340892112147170685475145466144377259499489735575057170129846031260698756140832121736780436118887051756739361836249975613506034630817222304308813317319276725229341297501152881910231842674184551976764564142965869823978108633480433918329273540955278635161895545814131967929259900744698790061048114912622634197302218073856257909671097390617416720046351400538183126570527544224967108214826418512317338366648037000736384880130302046638407984182530956961584153341297489633086749526888706541130414091036329174407850697693804862311564221931052622905420603831577474515684238107056141918155376283207007453889428868536179042784572966099136664214962087543849845076475723026614758764841705180115389598524331933052781831451361715076357851162257874136432591086796392363301957749876942077578057347540387834963639145889302740264388115112286870121241195777720474967049183084581189139469736201316010602015662301750371308648156684037708968764898256603416813254443722218832600272306715980669816178407305316473632731871677465388894950500036474502495204815009065584682052594293355593888019765712931761926459510703422035966531145241862489657429134391601698363928969943109373293982551017977024687789357018783747437836509107301041403232775966466506375842103780168851229451139666342531198234232134298420116117203984751582476540942002132370142263123715030281331778088528040080085671919708379473993127896562497456387370702578618635547081046135805037180447076579395441868655847378040121816413692539440366921366601917788784080494923582799262683334527401504162083997937956031941684319618562276916543629786969967055100301803201548575342570056563049904196960339066033379791846256728845516803500466196369607203469759933976184717821762664936907296495950448755701809078661487518975792390149926538747555146596285682263680806038479240861017515790262597251343756107300152031144684246744448486200865869969039006611917369725224816723091658129024669888954380972097814932829635882926021345390770254837361552720351339345263377242549328120753728806893541353356972916246759088218072066095394782138966847773178121805599973047386356136621401261560207501477783960197970623778959770940493210717102806597049594752689918350887955789552510169479233295077198430632335615200734991772172711250234298096337445172451903393294246042995005721080565647393238940783628379530994771663587660735032671498387175127648651326626025074708956176436098999004590614980065374160143893814109666216403588593573623940736019969403738832354449043187144330967049986878326216257132214919374023710278218425513677321690141783658943221080571482875108807647115794509677562953528877474617031519510932205959839867201619566811927765525099335647905033698991219921416153008122232971224201997559565674398317116111149948071947441636270780334818992043125713826314085175847262238811717383336633321120893526648418269433909950541261321610185452542381152417567956124463600659530800815429667050396998119715392532867374857649857750474459362561351896670468956506340668379350650993517078905438099184269423931492790748963664343715377784268806339803309859911148004774985504598493538909984147460738784554966179038753467299741332249347941039584877287099947945805461613339221652004126743879219280871879469615792206459916913561646566968845452839765384324741741620307144354671828589049144114766930940670481665514636925825800601881021105293424102473544563739568699858885789811554875166599652452185476911024181396337877245661801939294179639602914490205221169276533643633434206438599539338584133750521207576363386075907805565876273880141053501193522584865736014403272303534617070667442006746249608486167428362387337617511302335140426317596058468233730332572555920262277806476644168720864987890879920052438986973060154535378680796735943924428482683460368706557679573416938339086936368569812101075871145614063911242557881926571871466158655454511737036364130277849870035725084584946066776799093155586591330870918457615132945155084240879107262277901083481641236406029357740118821345016982657097105803787935889326164177099714829797619976438088638708635019383453478631644864036158052451695142991516938544477196041912033419124555966078723720878844841548385269519738885222904551230394083213788204129013244735912562769816612115104589359175345999502531308852287230535430723579100909037283715369525794562038370766068452547966727994698546608173960236882183211670085956439719556981229263436103091811689901631467289873651066939681633651679024665311221564134555445045539251846100284363861721856462683172796652341837423528333077736414722006758608308197909498670616614943158043112366641393062641354069663937165944646618060874971412834998953866125781585358771880451708388258115949066429067076761466227399579719501094028061490848682016373910813458617958168169446001347524221955214876287192827388451232022130986558062837609415984017504364453196254653628494898020925005930099118945696428191201310042487427979556878783324327381025430591818055022617049071087119933454798117063214058329363142117168998611034370054501731489702637934662777521526351546952398599417996215564274208914776104032470414363826813988172969820881989586045299885046952858137262816546932617437463600048613978703188749445992162132784342593747065976985706047386224657091154099413110357441975964349140726763876127481238798548553486966288462292382171442266931297390892679731228628765704877843419105419449721041801702339539791192421765834391491862498718228487437299672679564649257500649250877008558900131203163079867859195096366662118423552580107679859409518876741738131609030863683569813527000666546399188456987871515447518541209541131158852487343970760706416322473195866981992990367092690463309513836071694649666103960674309751666924940034329170183669378715891260093600181278671626476387890556281168100651574827373371307869914380257160456690935142388942700788953841764405392216648705677830560761659384876788485165565912955218527731202191358476134818491434521405881158232455066343853538673889491139219402327023215443107662148223076619564728611999124314755190424774143846911297962621939369534934481189054520619789261006460380072509061587093790942749835317424840953499991302038143936329707514404622702819031422548247149543174027394757447071580709896863210126112952029964234586838323909315068823462373424825400744493999209106125388886978287007936895924375324928096671042836535229655807728029999247255251137596242437768742657883930613409170313513904359809428711345567347672095125886551994847601702900748207703879328839863844518569688109096334134037074601440888028135328527571815976829883854451183095515886249893077316279303131207700904584261376181848327506941630061065600268978782662403529855154293369577211900991131182801035256883327318876544483806780288649643937911781998801219525662434141986486997358490308509950258211054969744907392677300867099010580976978685675875518565866140380523689095937317799720787136426921922382600153688399875930028619300077660514056397503314635161663795575472408013637290343129176842153888780114645683921128256290948843613057997914458232436744318892033669532516752074083327697478636573507257832323871190804384563011665466327804959050968159229205262834777023005945584348409442360875502393308493407126442318472061864195926789595414214013481155099361874307429726502780913604170482822464547306662260446706855222107229511371268205814250871795852875462560883703514341653359744193895448541627779071996020316897947871161647469581299063524801787686143619492491002519299960623669364520308147705568232630144053264264474982344400997920786343116630914700496300846132575456797105386162455925257888140028651524167426709830366968838001194425990707325192669481833744506795466078088510742280975779073654884163836507482446782178777646585178973037890898113887996877643560958795356443977080672929681006916628462561772976631633878826515666700472238400745526276387981863271636084082513298891395011126912940062173264310123638097157013700364549634781771008518915125262024489124792165639087725346702834210565757141876163884611108126170417300473104976888024140077175559948886364562444723776431896550371145310300426736696088090656930994684158343685123256716507690946370491245822253695403090947168721896401187131563032076544381016351214949481187565046529694043064015013006197649506937847857789780951318341249103573211970997487326669755480962816567891239705353336333915119071822312971241168532651191573880457518876697329628488531615288462467850982019143121199681654067372231612882585645765851582635009073269798887148491570855862081855510428322987854950320861300708622741518969599072743807765032699852824109611643519675253941319984010920065538579117775702543938613703999297975712679550515236586026267540084727425859478805932856302317723455641474485006642040208408905874631857160580943767398107915661381897187594665036333687625536840556057917230457486156988209732841438921171862550495220279186763576672665904921755479015221514627620572726885606830935126597945475787174731711205902916660779117620376521775652447058444082754084908089762944318189703011961341085377856267875857998761749316368148820248909971702923801955126144910644857702664144844905908030966477913404479568245815182140261130618058918068424443370739230751946260526913505809308664720265593291157660656704086877983692209024057396679050443153369670105420105335569672430994339193697370926179198518233633221593208396141166087922514583974153930118271850217447109820457195732108718332710779349864482011494495155730928197141519042773255495603591709814314614841859462260811388816717367673036412595438915830697752655110169217747384706301829568041186437754933089419457399641516382932236792730612914830489791561006804006487013350044154814750609498099500922788385876157639775110791403733646674973649358180186350179698581379991814561603600670635351997865682774005667882052675529643410399365717339529454361757354247665232726910851103954761974307844719530650935066499381492233745360238534643805476164143999039099113058027264251701323560997704050985995266252056802682141510743398751201192812970387174778844287859184697579525458497247163308880826150338162961788170444121798330875258898467507891454632264952566026843743005538214629106579398082390988400738167593428940377390518536771448363864613173864221904953284381983611773423609625722954141210594185748307362467194462703170843227826495676544017104226657639743022723429120393419572793079826410199908956555559360750106673819871756381973191939397473180624276805542958778076028848439165240698353273869329683210363556387026138538641494285777642402352346063088407004475556932908564103714071840664050161206470656089293077802959752670230502832779055833170221778591377217199830499641858048367314710658522682157088275417072833384855002172048046250004989042476046800373398244472595012723962950170450996977676673382543450374292872570224233749357434156867355400372026989150344060330596570264575177097910050707882505735082696673241984531724259487551156834549668447288603894914005466465580032881020088570487269066028535648650295183221817782250859205592454878581787652355145092642125718398993914394764198621813309065897026983606799697845458459835737143620887733545862833305369845518464889607177395948074337781761811481985798362054451425805304483698706334312294273404400752733719567638522978115052617260014365406917687041462343719306818108847593214383498404945590805940051207420697757669890598244331754577917893487288856017040571913171001106015359451702210810920456301914737549000259737655490160631655200280549863042404999384515570136307936993070109086762315048822822036195273788917162323134252080902383441286642572688307148582715519254018267982210793803642869398633489008163514458379594982704015950641539408356205567056878383405513580596230506859405147141402800457727096856918550062969242624192794155197937637351225123136130764266736251848642745606250849947417147532677273228230051140327331576785632871674912232784919474052841504777491814017226343163651986401703023310522167109578999289027738524622345294242505880880728179273471603155905600753649650689202570101593077793114982479691373711504938248689887067892750668952993059015903466185418546386157592039174646608831572352443619342209917179238187522829741020975418676522939655464679916599080864026774376548074607751318175239473215253676117583933542569301497514014687480219870329542171833287210659683369486571335711337701639844061186694599862967160715681442674025374680806327930540049961995500584768832473288347876948211361161703793793482438098517899286759679345520050525159120256236115895979717391580978297265067470140815415108299750035605251567829183429900201320791904482470276595947109321160385338762065138555012251911962591415862222155156909470026903067962887650443609484047524299392029438852413764854064018177724411262060825991866398115802272098807651403922378349033310064915360947513029835678524278951836159652416601855833743805011281019320672497303217395481717573505874072976680572479977847439246686851672763166308762260397615809360636477245486958282404039450163244120114412861749967367360693614412223778092231411390017083587794958276019198557539938500258837622620050382250005288478924106212757746946255336979024217183330868654241589491409484144437290957287837267325483355458857612160183676222743518215643768083725780325003664789324452884832629074854543127429746195862137860484207247620617309488742128135022878900733112941298633792051683504395177549836099960446341809257128951989195088788449816057558747390856696878116013187109379541679130352848485861447271755669337455541215599107849956224398436636066126292275647027533980468843920304078000073042368474897312415263076000964241387050113925101609543592677712528972026265876373436055486616572456884707395777248094123224888228038117156892856346995277790436068404129445420994392738294397563955824281968166331570808191269967480477320880807258478617728753648027730696344578511663751157192580173260128236874596021457374012888489241832811260081295593002566751134575961965556255086876264355991042106912430388724799262876423057526902704784237481470674209564153020265016602869355088024546330594523492050990137361835139413426471950198647107159094517279006549095849732593869626471995097024437717936454878559693065360656562926923062144528867085133484951173118243699592526669774960801398006738162843733272425160869152482822873196260958120861130258520844524181258183218160725159605499358374516264554034301583697971274529398699761980379006247431723913111850905204075093559344524680488952960066223879784122342532010648180849898275767613030519991907484288223840382620171892695206631723703396506269650735123922867157604232425294976872172072259891680586483792386774886561529331845009079023562337495148289515994831928546751172766098623789863922856722441507982320609018319243277090823564934396301085801797172452342732976583573833883218326284812218875536952030384298888567432196829072492438909177975940682816319697644240869809848039598497679317090210373694612453158455005125130996938377991082837271764662075783143105629302792304668482182542305787981992086133438275472116783940455071496427376200018921031493190705095376210569985795161506831205219968477917778420582458474980647287913497299688747794819781522970798795268708602159797038805687804559508806818386466502951242699727565660463090997876738032578139011406002651594939546454444178326546893730544932628971099440664756492368257772649481033863541317281181458826400950363252388102726234718367703025853490356322942713695870741846775511192837948996995855102890480937639245610238675172646121740265267199713639674280125426860173841440555511063673998261334517210816548448187057400474961539790540430698442230698951947149368628770865117605381635249170050447661636696518054643433714705407982322295537918090214402420080793754486529123582558450888822243578755717687308602660253544007949575297139024260465110359201120144708407594852475239903432420423324939735327011879238862548121723388854402439253599677412851623199199928227128786325952097272542881848473501622931534441927266789303178787099369321933063084003428580177000262546414141434572834391200772971629516227362677064561947194586698801692203385772808673700133358523914597702563727901348422410814031994203702179090538175254758410498865430830410060792056157450839873117112428419611147438812496022322957342179966857489688761025048074035576753448039443309459022417427962480024732849061920941667410025671721669434504456247750941596708853763450192844767181861416026565904587875020529773965783311352454096050263671608978654586167881018195639255685919190682426892736263057979930902184276400162091413250761832639794713522518925209423439465703886987584345965189155952483360139887701185138376109901970245996452297652833580038561626124078791133082024568719608739715438837931580219252285773379933074250828511473174129444300355511389489785350582736765605241209118264985833286113815534802376559646321304389759202813110051005759141703277565000701746740037297145184618520850259615158915346864323106121465839585608357052261062981715882365426464159250699131715481442580042762481869025981271616227506034920944733572137341508621909268062324404929101949525914171243865370946708781139074401910235249620250127351868912847117681588101050177307002052200017339736661819692297547604571480221783581780586004895143255234018016512178040822901707481811147408072233737349561284552775718719854371887633462244018791388972532930814253770615610791074970014076490286959445885583252455972822206529677781086128154504629036591008916906158340030555178692438524780710025728715608879964810125010654686298006494139784450395183086782765852015996040140013204794102928644041871235515698982948164838927762131043021704190230287869727230458882517132601312252804476781725635778547605189546507722717319901690762162754955135675378704040430306695856325307646359442516965941721175887708906013966617895396565185333533370892160219646372534616206025436865383924778813390256748285859906031933394284230663760368781195126161611977774019389684305503146261333534021637408968720523556096545720547446988585928676185001779316185860920559427426555133375721869391551981843607569364021466850206243777419000173830059308379345401634527102159031576310032345167148663102137517859848093204445865529188160567068055272820297957533274254336730100267488861102274646592292323142891906400584411853510706238162804597848636764940898384831064642918587623100914474475750325958679158394491753549496822237584938998074473818083478688638044785517833512320661286990234346053578248842448440509208885938203534512104533918781089305174051681963994686471126723660280144586105518241812265132568425580829790119267665204751731621051827604595864633485808849201984721469690843280404564093583721800105769359283944946780101615600317221258188709613943453961302764698323354876047165560118631823308212422739499712874895397626775431666685112644846576723590311468405858707661178761361267063345160492298691447075972183739640413772045899446747161135572776718194800176744489887081113425619841168018560034917521292886802303984184808556231928663854946602921346077177076717812783283381310477152555308926504492441878900506307518772207748912701104442466941655984213774276361235832839228603508082060532925716284563841222561090645565891546639801792761602696740336765583937266952302505613254350386551585054409623255477573280318362444144030899572404420898830270794745227732994936658789070819165956559376398865668043734820302995406427776606400404084141134068393385328219560603979156715729076797104926600588838046276693261081468765414378566146530467804161610218376642149867847635454623771725679710246884099214172084775839758175196049308184460191606783912966991315371400366652107640712035222838814467664293315116720833398848612648526985116618415230191996723336206706477099452287040360467544212779401015075857264683316407692733191725556647817457827175471719822914865862384741818054268786807004715562600415621776857915326373294597396307336594263268320095362557437391743992939110774068273722008961243243171613010425360787733008267739049321114534628938874965946474264928768443030194352685482058942957670104468049807825074473646786885722562192970628581705295955271392949912099350046307171704432579701649013333061905990865362821651293143386605390702491297984820169838893697464055958248192245680159801817862068866214399873620883477720494611017432048050870161326079394172458618258683914730025237499056891446189406692412441856856004419861472785312409065409794707626307025121164853071874324956587094990599239188742049930175273049250992605696762947928819776179359590827484283530754264934659831744157299400235364141848272990593056076573426369572099860079151725528428586358025613980938677007904117939729601379766778058945702131592566805828029876050229539910899056338179010554853231306943437474478522167590944948492999780307791010524330789579909258594385447681762527213660432739120709557470692671938577934531212758330009228078735779011172721264401255983141067914391567095059381164680610542590095991623074944916164862343453073106724759418541835718546831354309768533044394440275913818898112967652463680014187705995125203747281568571658670926431163294928371024865385323913605333416999039597143014530296468890406042950209887287302779943377367088760470761881468742210254733177356100810851315609873242496489942447281640076160966410217354876566616572095148998177111536018571598140546639406228123747928052299928433188163066132160989460436482729884830541504956126303191250303025543979315769662695233149624182981724721922762690624439853146483967329042828408120981971286497832980048926393469611269261518766275488951323323263215926242366875814542967307782989358377876029592746175954809362779302862145758481248474676917798752606253374461018739439410466444768472920400951384737990227528742344788359896255210189720152106797733311163080890803501429144679761178741790629771419219190316528554222494361543726773616876280330547847465617823595542859991653575777704496877794290878436633469661893362007189957910731266458369583222620920725415556718488827549143976246129350744046646458551394937689176263315355365761334695403635254314015932183078174142771265502306378759199037803657997213725538919932238302757263037468585510139423160774845282857857060414074125866570060898418517288199245396054020391169199069910563938538807845514494894382502301274054473177557550858025218143069880229905057920648507021740398950855414844682229440624410188477359003127101226807179003537392200121730665591440750429642306096256137305062355008317651056288153519929545830363261154555668328831780936549874227708544221744899626234162532789889972097821711852604663383997655913898888395369474762786183472934187292525772570589286535495289870991995646790679745678386390941172943953294611456015142320738972587894807157469261347016069000627117500205398974945667008291784544669722499660930088869145567569447146962322414985872605555817746227063515545318205106864018757590910897536842024729195027807339472623934162781612859864098299824947703520858229129273314688243294193063553558358337808520322756178478113114274175722995874016203505269001249992222918211597241604761161212042436998665863143321731568508087833642429069921379596843755289332028475812966668572757008384739862900610463063800493926521926462328504122184153761495494205618619742248166598130124107654068620970223084986170724676330684268972337907990425533702975566657402605797736417914545928541200787784044221760236896798966015872976743129602248460227338290848537131834607257563874242969307469858011236257101649995593306481428849786683728028179315241050568688882974411718453856430559128434815316201089166453929243360202770308825871160296722494992256098415309628374036245671402196131751300594674336323586878375810011883755510388982225510608270367464824132518743362739369005701786625266338800437442775526566230780641367029520292499014379743327830944063939594972086653184168305772256051496249636725159089223573342032713866553748186442327932799017805532375568668904039132374846427013571148725212931444976282277031426172928457577796396834866834883562533471533976772035196492385004538603780463435197514877758241686532158975541902215716653344787192066916448538346006441502529304125893983197216622268546330982103692417794412297382269507577479264129450803320731347532476088005114897435961462576290184847794686463355422374402894414376847368362907092257064671814146754295833762185757776037044709884658658744275221961174765241870770157316710983933562807024989756978391900932701733392354598387333453947266524422134912316064379791978498819797354845527713525864028473851406883642547872132845251832199322407102015063874183217366553148290746128552886974436602053155105778648094048325826950732769389598210431136143738873770264451271599395366588481551547608617362646424215690545097923402255795231815095794709217429251947663201745478111856249335309714560674367085691006831863949083029627919279397211785232980156261747215744497172159452460289723418878725367383173769343154622822618583965153326689217864358196309248201044622951733078714552341684877251511088375868491693045289951999044397015415893117281867330036308779502084950059915933702274314873748934359003966258400447664211478545737424923621190161437841758549788560168583710558587310525953499050369856611206751909024312541888989814672328747064595998028766373702883331111471510029581024113995455329322859167822208380219049989736400093568687177670886797777614102288290944198805442903252621726121601148250938066551399705900865156961242361528539789255170092300803193262101804494313287842533825736422723928850220056485367353209801927120290106452080232397595967776150915901863933985246931201506153171166928586103680308121438849323740418381849097028126760458505035363702289743554150631782383744043042595235301561335700320189852567096790121693721476235547522480512226827113588768585133209044552749798630633245296269845293175769547179987104432474759144369340900380181811779715990273022124536576220401010559835576881346817204994593033597058991307945364783879941533347477825795418983715667596324984964603939355742224415927208575638310165408046729877742861235118242845446318908046865054290033073078511092443286291173034726455702169321400785967987745286594614101073047155572263863573160159303519906480628168342923287987471995613382459455916178091903419620217217698147236325387236162463108186460716911759589849974785434016577632694308460265004843653013398470448572723849662803376332434607047432128546887933043473567462465818210149940197652572087862523309542373095073773417117444340092638844720210379961529393274448591166881676337234693081937621046032083770597244173350103204920895798216871133222102185579948432654775469070719301761013181306476014085284844818873379766924540889726261534537802160358251255460607527166613743392543676618389265364645603318102021995645890761730541183504677701890875602118393771606096656046858523601999081041970624212297873610751181726028120541792560622920245545965863649039260566705449192425341890381805062024656310239783290260858417330950498188391693960287547592054909984772577128185603000980900272312539908576790473636083274101925377931357374597570627002120782160406009358657934884493108079649459296848733697193615326709436436466830581026493586236762103985004880874929094309501983472653177020320048295908834920007213281481529186171296516615690063432491992976842373955931918252374012145604409552015296330115647904143378684003682455707067223324740696012781904921161312741957490131856344637430625664670921899505766638574162535710675678944160490162517035729274175368318474177957265161965002071702949940919004550631669524786901864335109314455036612731980464594033729050805988669725966912340123834579207283621685486574609031175741601589668354077149021550443328598904601417508070770573733379973682695654926699781681876708018680040616422549313353725460891924712257175879957703006958287920013582046570596853211791343348867774667136864858915210551455920233874713191858278761138992029278862924734229661383197443252895691785704002918281438305227562080767704738020870734017478844664917852581594749458050599257583356775134463951100572614126367541955689469347249213709037219558319712318653644684881120175111855988448557124519317309077147197387344651766203687308482911747218208446262461336266109248485941377359943576313945828814264088630795701378347700300383907067273390671926754094698822214821224669880348261850347221471839768340794358397314347168774474746726275601904015764476077990831512780040358125139052991029386488541475178279585723683501754020241632083297709712214640131002058006538215308422701303446454287043673126308880983980314985467892405400488086422926710651724125457813620586367366529508361634762672163497688489811843172085048145205931670731257713032164334252224279528308372793424540164417020288632945278185070721252263408332745441762437743327937767201319464671767171875401825890345965464762726308662075249193623757980948856544463021834141363215142139371896721430651842469062943247017500097327772715637068007211313548439386339232429301083310950631380514699743904977039273515175017481249549246148745191440371169034521442248985906094541183227424812898232764575929341753773181458114105347619600184278656106987337687616119017370558560267237718223594218575035113434358897893426263758759277723521666817845853095113631052195926224888496936950880580668874364638641349158251160899451613181260126979593954161243917226959635322714256449697347501262840354567270162349518206280489175474175667816791804371450829986391347432796611888359702854565764703851572127786672319146414233828423805146952608145652770696252639223864421230416960356020720608158308383600067095510102582137059967985388313579301031787500174576857754510485906212785014704974362584186182168005090731081122403442949011048084867107963695227978599163853774619423928468853592634972948272943521803209527142784663329060130136759348454332524522681008941206028383536337771944384600854857318847237734061174432688283527005743557720032221101426805367993449959277565512064949281394237975864984671766503369529652571903573142758934753660123458818702413121264444991054487522073591297242069670731566179927440029583341955101676144115134976517587433909516237071733919611495474636037642130027115369894717420510817967899704884566355062115680896088398938058794651293353193226676420194896905785000079579019711117000319852177073009969362019176673930704689388766881675960820021072102964419957053700907365810495035026132594567058214786335538597472680717851162741110421417569800860156663198803520297569210243155574466791709794812545717384503284440998296706083499111484092420754037666042516281165276288655522665927857338274518542490519928995433930790389522807747159539265550661269328176663066596885151100297362360783824223603884733557473262980954188041948273528834418898970480220272660755861221738320013411775786147917707696316695558896835983793133680598640021337419246556478816009194966516373990008082218398742995065979257976276868795696502110729912408165000473155199902588180681247587020264980960758174291331548714889128155685958373754767130674140039746329776173198084183866235951057132870715819494357454937622586761800248907048190848569285422101567005608873338511021757664240218442150234494641856825934961995976406148348977888435890408952821965300623766771978595160067843820775285881138668286695111775252301763207938102978661089018478159610895498521716081829069311739843895843356825272298193722542665523166660388902665383778510193005205086339124126855591904968790764207166622687616508890645246344224383798899677867799591961227207750548078883234124640790200499683223630833723680071425673688717475842483556314450711851966861195060865049508110017397825655752444407993203865712262776542512828117999789704754017170274852854288089960792040627920477344567750783099990373275111247834253096206855042154718440359952865062666769336711232383472786814788365549688592458026509814398238344321039492894454924423803116218098022439782935937556456191482140431536052395361254162276947266587913313354021503196305048558525313500049785139100877155847382946491528649416562503839012234619420184352243100674107642231450226909262270022596610328924067983257794183924961860530712007810044067162739115699718942767805341510791611413244554206306288850868787500996839608620624360420954603378318183290937852465435365066422509677063663056241986597394210225100839599727562981201926510150777313229915377813873842485369592895597693361063891993429396958156644350938289859193497927479964331777820400735038908460335621415428703256649010514085614295758529132908133061487707997435592455542700721223361911961696373709513687972890297116813061865930344365484121311247869816156991549752808370692227952196411118650639107060782299358926134695453294191183952356394189204989366316676402281099552800128090478989547149041680098809221028648757713607014331132322941802104632595240375525126694814041515171419579542384529773371949338147288517045856061607807458396984159058184652453708027463123008738702299062588124558772418082475258270976008241278736106407604092616450680590040128145653902372097201824011258995657530007855507799873252252125458474430565324772326936252808812201933772972738180664045377936662622020737043986048292419496467238771504794350264789941193509383263450519444559038777256879774419141601162429707303512696720863793870429889293480420741035396455516375235010986003640200302207214275337581023649733785575674238999011891960711140533615269257358480108142805969144275173776252124551120801839717535599906162147141778236263200829701269524842438767305091402124737449026065319494388522866323749833438495649726534845330575472364592573804152082874155018872618244199674169318819594671647058704566198898732207944816965912981869418728532368866611248798918541714317176798674552919216718341976944880853038214576637791949612925471249919510416051231131977238223252087235976060740413003600859198308172391563336805055550621580986013209226699669783353813822151515807553419278437550564289668124707700868365474225794324715952616556540613990693326487146029029812795432566238845911069068423730507028316346694300289780024389678590317722506332416237413651085876318893640343732548002544470394124680677380346774474820269846245991679125583539473763431028789233867765206925753331369072324048146887775303402809239592598327845051570124202666011677168503979444984272195905565423243773891799002472012611425239186845447052231856142564345114825824355172339303251049105768246702752486723468602150639480859195327235101864239959140965505952530750735732505193197828229555413198770700448080459280268408801604731334007514152184119032836895167405190168927480815409160009893347217267638462488764235510859673072482615163168275112998656110756738556624857044652534801361117292162250547800468170236617439775419479369448678184885306810869850236407274754594582361615947077825108002414845331918743630576288283098589956528600723888238034439011237359721895925869178769079227288918445217746847320738517410914996620185530785505337794796859823275399984158383216546902753226877836610649373132480099311575058526252489480008259492857234492556899478147866277280656547494736896269781308585473224450724631922643661255172682030612747882379175496376958881394589179879886937744436332367061052885926572857875169593853823412613092508593066074514253576321344062443056010537260811225505003703736941727658616216297085621447500896734614331135136518485006636554682924892498470557131676452931986232214504377992965054936994452637765394385756748934968009913485956970429795352701709450522819747640178693298592267277144704781953035038784905383638044661414154357675558702430292275826951118834121284461278510378870944000675852683373238274477579725192257635130529584986422310315311880978741920690326137725000382798829777091945484522716657466124484240189616766385217317428604817866800777524946636213803611949714343144312913040315443800455683840675016448175987365442270983373891314946167894589029817656809069874273299964688113576429497105532347928039369479296545465615965380403044217135033926823581348146883412223344649779404712489847460155507700073357100156565132042308903721304277514353632144860832292645454643790971996747575551852091567632542703938275447994317738416149037110242747572290864489430534310032734870580641583566690798785838931110505383154705993914522476390943274622058958395361305766760227730465055035679095595273780655292475130363046836595755774834248812004444314578501993611750477054287661625915978427580306045067390358703032473590535423115466658146150776911144707101438870053295475326723611887740852154120689198430003770732697366306961139774984065941516837645737719385836326492469745307644269074666995166564365225274254980220946824440931631098323776600233994102692529094791584107890045917025845688500034308102169509975950451385175665520991340468155641195519839173684386277892534706719730112828581519472291683029412331266299908722491015342242555081366791284243093208239234434339012171521128953727513899788217844617613394400522382639895385604273622998870241690141904433012939580937440634223377008557781846516800079848558642003992972497448990621398653152439312903975283330117665734403666010034251213462511772833258710202113444300919330940809485617647493637760773923463733680227909814926254041404744713489753728588429122986223937392497672936681834763018776472584096174440100635280048188125784415828060622691750315579102818392104437267479574228353929380602995129121734406526367706175476461259779313723135914062542277278411699824820056139554140288873005075545770069069167905322130139611853626240545782973394913467716436822765079020069553677808620580905352336078248145458974420805140464048074809368644355904119220046144785849957292442644939634221196258797026071942375911592970873117368705989664419212508953697930695613729360822589540250989762043388397746480491221184742074569855286009526067059074633560199172863225116948742260860635718019803505814366828712786168775837355284173803900680649437307105018128276794692671178010166225068609136199835780521915630751995633423017649948437080074072559017947253746461287385494371084799748814660576605510634123178320973704864753911176623363524096468261187145074122567275826216193395585407684423395425442158272746709875617502118972148428068063896897936862768855248030373823128761321700232284694250009168740213689895054695874163420740182213783161680504655437132181607159842715489327368824961902376948767089960592547615882744649832870786444404745715348121895648312339141685137311877184284337565010782409229225909907975144689008751718758992390622249103567618260627080656069509031921794784065051263670571536005552578616805252446182340006350095154386282665084300893447320585435022037700087010619834675823163662457598467055049424934729761192902890137150519803116771814352513157217809285285001375869649468642568515078709025910639296884852201159798660368779509156019017741301088953712353903181178307607065229271865801886283762544636608425106896129719450449774612587844151390582295083660970907273323715995796890795181966569594629099833484153842305301247907408605886814346594915628702934218641965003788282047130271276715158901383385229140717611465332167253792790638795049282712466496169468686071562701634893794582422378755831812792030006585376913065221335170587450027962677623317406563864097059959911452842746971639931192491726231024074300803608884572322945819134879846362086067064292128694143892681913000828186971474641988490874788691930910203301636957417657495415858145035364447595709606891974996928903892952588624754676485526229897333235074235223203948035176846444920161023794759919799806226976245292826594025878725899448508201318786524248153245107281741055842742636257096789199669927953598826114043648130122971261220235621277138365014858136779780159242044802102276249546518422235300594762641943520820952961751713589706496877143663953688568000477087438976108851722584381615414219867841118790267483533170847623745121852349677981709782690115279121723601174905586443674166871463417780185901860479584054689474167013160380261766794413694668700010954847293805150745826255688985400472872381022001288083331447574838148797658144883824256023605790136869192524830204758748954022597086650390294077868381317583341606242722361983085845371153863931841702974090524382923335705262370979722705579578500309356117707292232378721769238075612211138837448519824644961094220871406336444315411998291466488592630626518044208501235910037660517100114454676158100556153773615062115460023473636529942585066385672979556204081656717631004063971593281636347792389433616677407890338265053735517497902176810036125122483850782193744820838703970999387647982150330553052036314670159921473454196024105617552875052185388470234359953862718030839853963697386781804677535575152575634824618299486872569682755431895157399694085493499492085608753357278867898652848126863415326998152928947117443744562654897162018052605825791116358363960485482117893247922448641225046004898939288351442892731576497832022442393635939343010938878359591083329765332371202817768068114045560957547324226587217251850824840755151361756330845701910620529169219563262067393846494212737282578482497372568009902653359861198058787069434494496797347603421216275402577597638614732745312229544779254122624001588444611041468855144647819369499678153062324473556561377365548180875015987432780051757080093204265715742276692856875899373716245189505698180751284986164377675871836632488890497359099333542043383056187651400616046911710035627118594235983665001191539490846088485609353819895383460856957454821683343954563219301327536104378907627179745642444293310239056919059280014721284423644049813561170063752336443933314892409565957654829629522479740220978468839186106915425091954183088421471229554452840444078880451002961016332537495943033125849926013330530272853264443314176347797373254817602439184175230030738833106643630758973628894599817817080560511066541152364950267576382199760389227645746902249818851723614297408545575885602428798281731704912772887758639697380932584920469358369253137801756475710732187747962338314085998508650993053267180994365661703658875667601653140900033163204860623934249166444169727616209927831290033095571667316577000353345655171787997615046445326999178122920403627704004533604148989438022615560761014260989287534220873830759805376199358790500221210363957799527617574364226169154682178874212872146665370439275097053547414515677693453636617014430283404931472641228136959366885219053548042400001196334604357666212623342753481506031249329387293924168031977525242011533039336631624379903720379977848462933422388175369305567192041108387187936942274797222951485551665481934287280425606812116456371879244641088323051779475564958993780389684593134322850980279898974714685853568426831787637220122719371993955938618348304050099053109733456998327577794231771659449283141442021688041167558215580662038140203704127095531678522187143429597989617086452226811457019624947421752209847179094868852247722660161053556505879994081819113783709250206573102225872947263423230675027486195955156888093525754687428395020139213399145446727426908338832082813473714059236763198195250117289940350504343084954696507449722231816069125640376336498783996846762488164541324423573238693591985295654290924173541363842901508751057925018394605740567776318330167147110722972415106373035902832916678092185648586795088319281484555273880042003345794739868218126392328960898837227531651772462473053912366798486483468378318536224245576086555582828463101499736377505819777560300191464972223197457533007733725479450950105190752731043918424443516874565560687050777115782861577816493576668345025512606730940840104042723399470271548068071750518930102213705315463621343395231089391133475364324039240772887011314255010674568037555492055570644997784250824340709193757434856273879337580595250974086015423887188874985236275868297813701128807408971374946402821172687117422170443373210350289188693109080046863223106689923273709229033877548121837091436250297985788454225725413450510686003072205217189639729752105264800532699376476461839526264808548007660123298986585867401081078002183004207994464455492985396362510189557113893797802046147332513909382077770551575318792480885372492051426405549064896445560031791858137721951011733987224062242204433927316927569356045819191582412165217140499659443685493031270419351536483991343326208166741591237167680506613408881631164788128588597254109597354880798188000342331787845078068975251007959542622549323736869718235972218757111219956684159762737507171142604994751521387566857788612476918071455693882358486454490340390874054751799770470321424644733858214812933739267859745376999219046837508257837002840609274685946001097766478733605454700000455705121269054667867699027857283635198568106822163100504331103339382448451660025308245815946579576929081452628965510085991521412181487421324579587369335812895600342668234205911967986334553796937199281414570817615346209322814867162486249796402693623093219766445251645643491557578190501071812880414428093408604370331678759290727265912408789410578006590232620112039607269224086145114368648715318091979218620229514934301054698246348505327663082538428070447951092324823885919754204641134386731099551156829246603356266077428007865021653375969265450414526872325188034391806103791468709003866596355765744529029226997850464817388748509117620939238811127210634156814845372131008082366958658679558703532055271315356824852589377709003709187924395058781754116741163452396668448451467155548620238166748686291725368002375992115981858987876885738933070968656000160054837851953389466745520771283791573100563910831569792295509114406781653737229234857008765535225067667636712021809559959845793643837519887864315835849738844868250092885152556122741078687475562914156352569973533288333209478021587478618258016182640279707239943870689707064774190690730790202886835792985018700086499458729893711488562805309124412135346266012599697437510734036971177364285248829535142363908117366819446783655056770357986441305573179086352260431357046310300487088360829888176304344564751457072038566913407166592314697134373467301225524864727449297023491461385324288586307452325777722210190575883856287715859832054061899325001654144760126583808630731453657322092183288593472242481914367194098675950933578979890517812106930427663035824434851269275134310052147453517172125628784338922333860204420519500656874864307000146811491680901429082804307182399076936822008340624252812432292848803601348443474639712651430285502247759155755987399734007348774247909901797060072293428638796731014392808604627041633693197639218386949530356585107922000196228432043355871424428676544118809147897031666194768385675197601530415115817921560592794780279308340595579617637501715223287996957390596346977974131872787411807556545995907258033809804711303055014388700260960404978745205085993514503406102162091388915099202942452851326886373847751984028513597809215422962401076606188501759477343869529434059417062259374436395335855849951336498089859491366780040037130457453813327577761631195599026449363159674550514248962474250231702360250355909367763555937900266428167068166736275061932766715397310784637554491248826361704906688160843787699424869272853620504812505720430080085843785390892154642380920486435991976469827892001181520655985077985079015161378866793118957116173377267835924691886821944983776831002287696242807819079083698684850030089460064998954902535969648791598723834809238303769840685509689860390991481606679068511577518271533537356502441338701861722021165010334489802687181947252915882022300345511502746749098754281866860604769380259323585167301144974465865906193283892633359342207180853406917779383822496468689913021654576341750992485614539607290025916123746694182971473948109742054490760038328795288468771052676090065095073482581555348480145702085097843618069460740766678030228978967885985801560122863209701826717279045666382511822130520290486114165838362359709128897723908481070705437128940513907095929852346050992565778941413468416120732091423746572974141114960219496477490453821163574050769402524352095658876944722645918856818882452496805711827646626526973429788749595880525339473163832201358073201292420647357247645774678342268503569597821901020537401345440401572251438201596979843736538773437618852708283891616278689681535050320670230670426902957477236633688974133973977223845249899924477044095735165847074652587109329216260015697736556813006637772122371806502046293426884245268256994072761516631343163051836741573931379873065676092121758133157945482899622210187283076587687224365818230645175100361687569586539819911802024824597618751511797818040979081815112722920492062121324591267485030187305796234089898167326569395140446558419286388043635313507541438203886404162651400330245253799257617153727727965119494165410581105038125912872746670975784968732563898044239275982045007925589344758903248253290797358021050842127861117146421999601300248367604611916336227799712592538863827131801810086379053150133426960695534445232095411888362281662596408870255793683368553983483055927964813266609254208313978580560981862621640936216788406071076459153204233793366256327707890553662360334825640785741650589984911224945903907269066968587965151997283336222887399794062314978445641905169477193396724446900346893710240584023025703896951555566218742134684076231513428791440160390950952126691937166145203639296733522637356428846298308777749153982485778686277246885658017755845195261802108636262888731956032339472100622740329296810755718471395001374859655162534587812372667841156559074273071436370954741586433659579247097204048110732773294047693679368360244870087786167005254265256597127931150725310470663768445685485384836780248863869533096871636448662663338644092961815769493073267678991176479368896805001532053172824333511796418968077287986381134094145262507019584825833799136692958085288442426679203377059410481965420855134341064494029809666852396540490649576386308906241011065917258500875495369399325525514128546851054074324147431306894386843217954168539439541300035984274587790479183039830408404917942848852709136267195561696305134734875232099722809493493608883982146994934945894511531242170544463050224359953604954767422831009082052052409588956765705232078290203701180946121438748298048915849830044996359175621624665489034263486198164042979907239127286323493327195060925133456305334651512837721473625080765483683837486483680979343387831190122582931840917778072955060310386930626134991176101798415785928876185110490584434628818607992120003531160979930501375317044512223482195985307563345076830731445538261948421218692941009471312504358206675953129092038571125571779631451135290566946283215387259743488651895445044059886139738706216718085989432948836217419375869985651653706381605333343438911567967488783237720478716001304620368609741958561831392893833004182827039769049638921843500480248896841652313941873870294416200431473232887829893750171507757868230410230868386311213414379158296637860580543867279091669103251726656137912045861346829092048744316338594649072206957508111856941760599191449187629965757947310744650962086874340372878900321479037650480005561900559717828128258989160015741403039921524393799122047310071131039537875994004690097659637096895934597377074351963490332671272498755555780139718186396420000979527368583869820413743283999050760177737314749338152650482223881123901134867174377581146282385991606285420220403597649285764842902179052609170618045971499748585871028883874968631882355763742822610941245584196962574233195401736021418020099082653643764049651279751424973594548057637508421643042213945843935754939971561237441840327602435938921903592659515275421159781704334529861910586449330305377323373170216664618934405680144644982023210221828538502854368901794797455501922172383895109088022706270968844520261511531949107725342844582602711152939683878785772911190943460805660316817350055829794057305682393493748317172519590888509227170363977201264498698571966723386050545380744218495706628097621495347912207600817964639128052667521289534604909943274290609399433606892100183843651551560017086782211033636232479462968817645055128791525942525156231631117868297488235230327277647501592464377875460725211206505582753665295696342465261627619920400635895323596504297378120138425134455291560739325069614252719303937120040483079294378858617655988948627909638596896875668369270799369362846876324398023581876681958344510154836700721658348830590903152656767836174307160966174735611219880409256508001946056002629865397051066139627284063170125755533910062640862596381576331944396352166592025673545798319699348788619282283231009303638076619534748146082328096232503913015390003739903129361515264772691436735477798540752089876447952076250816514995196102055925895638816211300299298878638203743999419432603992592144581928486772673239185143550592362627816458535154299905766347524359736795228057047436082233289800457405479770150866971870249612485405114894217813714892926566116975380613850930603371745311117092840623418362830379975729527851208412766381858994996225985315337789861191995897068161090038229491240969913139499395848663222037672615940617984554295740010362549867943783702157946006755208151787859104608678985115684944381947872975568057839706981838179739093389489241412257118208774844569568722597413506951185558088453909127493123080158621730560807695532159467522724215029160350572049270057243398687433537303103006675993841175831144975790235926432467889596070345269479013088530597463311427583769454020823963533123338777967815264194788279607398565354655873142760049583838388611020763049639913712935139412176191020242077057402845112939689260966102085742683090991823812992962089468281711250869963972356419590364016638825682427058743781286623372336909989779805785964851454892190825489899453348132905864775188584555547400634191649047141941436378009060907133452431300731073283818030805739783435813976409423286623842149825401423297808615778255704077366593559849084248858053737756425160612998115581422517441009208747470668715884152572950299785229465612483804573987828421805049202097801715682500571539744363846210232120158036916868671489272737637292094886329352352942644048188558839345686462320495035288104140092565211717054125765518170756366516632007500838077245686953928531699913974185176004661585580915637513525625856813700072033885153703585457351999202287022223019773312783298012861038028364469285595021897241273211778135520388072515139070341233153731375763204194351223206499004024449001910050132662662659408972605585063329626918456153001215227592183888994434723408526624341384737568937020400244756132533164451746900984467184997988317972955232912769841491378440754211043198367715434977522305099605544751009494285990635649966999183982267993732170625641724774910316694193922722599073951543452989123866857560143629823673454575958285243885287679548283586233212043832431826342937631237963298957834070699244479719634538467904595534827980198072808849773971863765808195625649786554803647169914316907678912932118251260093522922402030403312279119178619491470633001589200858928574195490121664734146425468493901722338136196420253251912619099049139023650174809003332952921550061262669374184649235585742192226268851360187289352405622508184093168457799332868598518488658257452034967026033785278717437395604561048353564289265706294419566425300236412728555214181209500662893085872621268936121872836328949241576635303070306631330600900685278962913311619855201420669620828219739528241276407032053238950563326849650302808531462995463256047738182100716344833480661742695061175380344674121443442356279407659373552543451689955794445465196248029907380302367206736799137521874796493057795951515992540000202408203760462033864135055818808039900626380240302965975477948422764912292142365914762173057242213315122678546190788151171556064565192961462400199452395469177477148556250123597279670246820510354386326378075945965620177536505149513552347196632506123832805469807712865691574962607117042135209387834734110478699532126058801816270565412965248480875258230135783907475301541559922083179077195159789404946443484130541517154908670679398276240130903095875860210610277365256376326735766005783816643036393478454140942424044594752498159467244024339188421054758380734796146717384722183583766908258719784729520740303676112651153004340607239111446902329411320478902647957432028762240637894802119803380489209974069014305002530525135125085604010670671054227039304097603685074089641015403151262163132322574250031852910033334740048394113393749018096674646383633285440986540672244692793926454238539612133792783135045400480983156427115718558829421213674478249337594308795682648815242584082304077559411403664908148686481998505854810161738204883342202072866000378851705368983841139686190566070272113575341942869629968064635290832483941957415876450438373306782228512079316876578641646462110422176394909654212563507379847220348391799618824829500317820110232059549830243950646214534216360712450307390070864590588704297686126992462824834106884728664166450020652995353116414772209013472726161866060057217030577776843673836046876062678597642999671336273708875506969263331026551672816050888393411517113299783308050695352408817875042864757151274513973821837991365210343465865150784660653700152912382861749719082730170558227653095162464070181773668684453665677087065070245770566631758510039356255494651794905885633454461000932416254006337105689745597102393533421989450950078094970650007864609383894029421231492071614857133171801651513109291113691986540569032293755145663288843724699422374994184560172050380151649140332917055681655562044084924531096938472435875890335033557916473967683387926987630276581252119767907598529626670956504344394739392918632097805734012239507023533111943409439664628936959814876309170239448612016216342221707796580278762277321114136759334402917213238188683617878677886561932234894827415619493397875570821592784027694213986812132835868280717814899324995628970079292488087011814093784669527751919495675871764813085975477634014217686158294184027695528557480729666444818562691830142194609812635601277260020226989980863156561512864136111608758996382647356385433322655899508971579314514518948540745466436448285652891053447618343346472068460614164879411919492263422621637919599194769081625555668752866935929591966296322875996011320776687920686034120671299695216801310908304024945252423683020711973336092031121278487950547234179141159441862525059665332340321940968642117756747559646697848073379268540564109039560625815917144224747150689613242001005589702813656025315452662210733330378961196171656679149080825703602179908121265386354758630506337765943739027024253545960858961236259804871423385561048315188530548068709653695318811403745430394990114404894818049422572819015553446386140899262710388267385602858943302150589480593914615455202147335417926662431337799808163629794410033600528202405270650991316974769834161985168951224544385952275152645808684640312184551421110828287205076658355569749666906557911636450749249798949915460203565440472125708621627691533509203904050233140962195054396731824594860254949819288198506441876260179797259275098987276349374264780516332235150875345081176343844713268038070235898390070673179296037136698981092397726291929490047243850352518955011230158927920671821638625793922749519892698298083475636122281045880711624989842505634974320210306899954773027056884722225100371265670851348730797075248981438122813765389900671159576407551633493058888594620376001219698044519739627030464641518639704591334296200121145247363269063983430549928742161123443993563902472157560206467452860581302635809508469234878228493605645061273298884611917676749388781186011808115563475043094687412175889342498699518156543230321757804653289393662407316542352604801493637089578329421597781752577006153443778944044584089137981402635152472153309589796854790987974124886401936683598204612737886639097206366987827147038496040273426832411700666117999147875751706320462779299944763525599445712774280978516033522934050269645766914086009056027002757301550423771644787079608866726346840341113799700953697682488561668437367616479943375512046659372993881870474250578011347910606679793444334006405499887968051158465256954509733733827441686101363205473544168268618162083731551777400738255967416437906119290901368415657726154384619088737214161622958453021616251591036094675295356214716752600719922495687345735669127702019394965065573524232670379030462145960080393895350226887960464608679627510158634980746512685751191388189669545141933298446478876984108692579499481311479411781772314127157242550868161830514367975467260630855402347257627146488838640975464173382443153779883894559064162756131989400801419255518322801300914390920833744452198228423763925778152221880280413038951458704209478903130835237725583302855325659946673994828041776907678000089838040296134375070171077674135419497476199728566762571705545862360789701742874285111724623320113499401011362567402014568967460063507529102426179867017875101636774537898034350690805588501846144482189939190028222598049966266597785659712044832307660841084458349109126872825297454316971880311206414039454935911722085621934992409888776508133321696046350867957061159732821931744874142058967600728051244331401103800431616633617381817370883663469639974420286481552680691369712783530973216896730824912303569437415421807360047889559542439263496964016248370928291188433401400969304126695535313936275717267428361384735343157773196679733271962573682853912158175194572075565053853516041481802792090871527205334286058349257722545391589616287066417787560543175275664520867743770806901475461522657674053535300003114417608135683075502163871457796800469709270929110741565175912367699880209733739734259886757997564566575519649683488655735862580827530176337915193141663264584421596434978541274093361557582505878367159707315053215974052244857058161575618449471880353324194022817076193746693460850868829521622521108389926675468898290972596871491801181182971944830294024341957582018204659085584882006962902447176282178101364262952475882281942371184957951337120847542126090804141191275316660373514182511807908944535734091024085240842690873448045811396248348041838277053988549963594285292155668210397586292085393714427925656523146398425434128573799380808498584706408733287284093610398916627816407389016527414237318376922547158027702021253333987279334333088835659154966077088558835203996294890573584145494827348657766351239529279619761456742515122828911958884692886830935310990484064539039409740634042759723835759236221389245609255701771280481115770685993449652925160337713547881186701829091015967895952988314513797450485615408827067987366710412422964346069676058786275894434556489143155261448975321910509723047977688003198832981047520533327537937857644916783294981806405724569394641846117307385943295303018768535035860220574167931095911648654353946961649088336408228072933762489701610333780664338061726212891226368956860856236626460848591089705265276872635462415641236714021421099333458848611851753906551887356822027895799790002271229104630023547000126066554857621599859382371404796457628483810106231466371375273208801454544258512374203341719233159092902757264656479595190524320321309367480455656111049328226210469079572662447709071099872498875797913464717209466274961958843442290174722588259691428117407368517208179430922313331200858891352251462361022132115766920326737307747923400864277864149775838566533865430737862693076543757222773947874044900822929315208589006918512589954869894775861918366441092996494084919147333739629587210645704234951434085686120183576673202454890841361153773591677735685121106512128369674381204817583944148556045750960232454055555957735740273106888020391653030966072075830424301397676623466835134651568661522743523201183880145073621868453892535696048015464521111575131334161281307958158461273030822231638131593674656845296613301041814255006659833657331377889464043063002120103959531323444060817604469415195713537678738163648781344118659820770839154188068402673564955205943357507572418678478604321955942492662290997451135282406080299459405804990831860488930134551536900294572147191240274007801978262650886597306576223769529115011400962767766014699103034866235914722810839292690234289256357696691149590905377930008698401736687576089645972592756485810078544610959626095642926153536034648058697798556461003524493566357067907987516454274787319129045532475285414022457768261793561103590817083324419762936784831633120538301828266330618166765932116560549314520142292241625435104774591556655041146144680408678008099918720984142021180113864990299324370091653063294864458720905160557440688355563708601349583349894643715342512507270629091331203542882547719559043280606841512404542184469548988119069657691896378768615431871789647340721067281346054918825020583090548582698060628638664329883260643008972969957933329975236096876654484070105404149751242696577114035044528667345767863208460644429705601342684305200957469804425060359196971499875817689307275498356677229098713096574515689138366300939036152791945416872299080522211151900858195184727821824966885618254241347342383184561373586938503796944200466799462245259068402916563558196967365376165836609928926990882464187262450980618611153691333109734269221975437592539882212759573718316943504797082793413773808220100852474397817769083537330564767375340024395361590182820643642528492310043395901866980869640800568513291609386383401318655458221626395500128234361129628590665089182541753330032502389161219379719303780228592713907495695329091151130393878644720444336564685392117835421733707488075790056020630231271366562179438732406964555489716842778149300548944335072291447495487360141710366361861835202045473352972031863820077490793516914152998630508448239781145629017588062310672921147640566155667989503154304664044223365147985288052702818686771641300492108184422029592670184209313871097314046298175647780765288153272035686714606050092534189040433443375458917301283553937643647359470952632883663745049669384299994821998432049134316099070270027407461913054879366862060726374716378684618904988844422164076159752975074155535816667922311233277283343908182369413614747315706828107502852402662972491362034652340160323132439312298956361028479427866578764144545534544407146168466041013552629612398081713935624622477366000955632220121399089990852058496937830390748125423807097930896977144108962476834902938829119761282990215206404291620636781141136183498885085946750774481984328783798408858424562274782994083015056168091317451068202493595508681947219084703301597796790104009582054088027502201327151653996969488712720797412108395357178071016884001995096593792287138757269661005795492459670916526781058238710855980995626774381042229506886359102685221825464690331741128762941212099016329541332214286100411831491441248713302289362282019898534395506462978946646338784372717355684968833773326367075829327295109607176942202152632439836744409195045439982612995503026824425470911529339348145532692929301640579414319004419239625197154328242037285186607761651710407378599183537282688728335017997474661334253725374990819237971202139984980378020316822055141383013557052707175887153265883944047192147221800771380107984928360951225146802487721760814827945697264949222915310955680094398055112375039982643506876889691051641821796663442736300274029810196614271343333556309292888280100840765421972059054830310855806069639697021725826292283124554804223943086806343202910197779277800261101640827885164126600357378369964350440201396153808075552323887825353643711882598157053620338486790304643031598756832603603403666915043631659872718162850689376305318251797864967304720327766700674738525761250375198691151207919738234441075566384881412541282267657033258348756686161029163960514878021915424169132762309366763198497572652346487894424145113837865608133700324974470009268082617840795990516540034195486588646262649770334307434143423685172420893519126999747144540387521069321196470143361663995041130091121340475694492750646223488715384957637085700288066575317616874522872977133445581283390703764520552147755864861948677452107738441907642741430128872490852827171529255593836829553605322928431612836452299626619681322051610062560924057160759057299435150213568210450684647628764319289949799766257508888129192344427586661418019525444816356755966040148525769715080687509407539517406270577245229729542821023137905684582187296782991461008571574467932621245355167061357797292163030931453046418214625454466290729272187164514935413784005353688034771042350235083068954384414107734711983431205269205384181115341329083070985562756681191294202085965477015859025996805066660941982811680117471340995030570200745418137007797563637004959481666537357828181676767254051334781159534208939197714978655248218654433231599762791503736487038005140057186853612497472993958347960066865467593923816329872333752047480130025416515107069090145063111578333155235956777554054942658324237509406320140658505344188888875092222236274087253225081402774629084868068832543563586738793001863750058150148833021718234775751574891300333087783385912306279793423595782479086834238504304582788535130576119666654371397768608188547033071117759548683365052095288256727858530596845695158125868455068256135164012382900815439483907263435710575600067806446436899063333000846766440880743253918835947933855042933791735842635855917452679195817494813746018872758972024655412198975265710733175452037208386099612143695264087448631784053471019954468250499904457255763355145658253924033756480478739688248434027313006521025353111027143251170963599920486154935406632667299268149378164505919718441708661601618857307167706674136754550875936346492776779443505115777450619610280634056591724010137688423790153706880561990296629451472317083385692090870862968039257971617422856519209100065140667861885951760485457948670858059872000124255280785269863156656591067334236225476378657012829772470942831777567434093224004599474529454944396998366333373145914489015375364862606306448452760235272230941387773884856677008092270556411028560576827107677699700946981336444230587571082442322676625474375640058257992923607051858928949944551544456785813225402668577824810069752421083787731035312759465069141417977677857910985748499121962965265935606510466080459379213871755327944789538526528241497074312994712140365447367243420389593826790333702601782688834095175870933740807877610147142776369279524445700599456340916637354889769286390073708994420229006620198913901797503443717022330714624424963118723232978433263649269520363182930643885009093038615473143816255179413249946589136693427163625840518612650351842573872706215562139123163458773242361627666313068764977488393782109236472033663450602128439791091407170844880735492991761517949727301747688604798427930974123845669341602620729291097352787975305105147447614917138337829620278015078041603000081517805125292958483551194016077621286828787419920912416579226047250473306509608661319650345609670393989317191435805487951059606455487274390508198502080974382460070468274143510040638046443268314313926053149211711420449696012107675741632495689210405459274888359815635978117014086684550755390851007560473196044374410309601537487536799445440894793273832807580470693911116559466440754734959982232476168090053682639419562719661320650563441202207263639869493759779051514457947104684489794945263364847471988285289631677818357929099830849832552113938780100672569869744689980365537389230626573221466995553860155651318674930837063070627693949755171096879381488319194570006464631791617967835612548598874933620596035555230496861988208153356730848557809901481667462141182838756264435105828951177863896708306515520026248375613321499822932514974052615438917603903561131639894430318382402967140760043746593733323794084901734854572911258994585254203746295351913867447249048494968605061461872883267212190214498255199739045283600576549042504518293407191692876884241105394263752099818937026804483451444372896532920620844748787259543186519373332104573976842497372374304206785491078979065333252811749478064974876243872140399977423519069096416497460080523193052599835120490833504021602255030154444310928257329161114499414564831167380110899297085825643759143766700141965138325378101276353857766958378806977573794124126873358126083890465552766597883158007673941967491663605583252171178165986096834377328546447020756845158550842377755649777994178241105567871213537747132346670927680526701543114678037929023721766824540832305794717030804600179778783722128524800058119907899477065043719801644806510329424205301526149859268272425474079365219054650267069475171921686499786753145436316909683753096657163522062258093035806230514200604530428322083074120456031575049651116480688469873454213090091811834407509933537867811320932195081946868736093202976391852524887714443778209083492416995971395812314404190839327938340031820312421168726234595541566277610772025156495251354215926935266560541416510053744040413911683293472151260710856007336556431949113443393059606211133584524017478527338911566220430457403313812454862380016156146212687539916694045434785690790482764162272670036956886527678749312557231203121254118166573537268950574868669089200058329941032269119373627103122300762688524752690952522981775329685649841964146311777614128364463156073821829507771412082648500295073976825400286734911001151486146333203743697295574811139878726182842669413024562287609604377243556344522830158761617670217091904720878098869462719638755606102263210835193104699373100169755889130663522030783877090656632380803886110088883436177501964068802776918688584361957603332429847027402354950405884004841165843088548070114976981061707942101362701085564247880657687914795901176273138315672991593839471530451318681910000568455759002116748578888905586871590619938524606160900537075654228844552697359655772322717524635961142507524626003916609952159603830055040658516777605771162698607708276353059806759697887638562098478040790677127647558289736790842299581711760912307401754376138042873881284115314151036755452939554888628570550517664994435989226841890960681612951775239122672107168217214580492806561413663453240659018438709350975562126639276982373052656380970009874586672395564377557259767468213601887842448436145380004163240339512973090118724909981664829399659489303309502665053039337556679403808732879316137273554010852512308883023830716347869743739344085469806326306224234657507469671542446306023905869934505593924180909103886394751055167034171727749000955535142449498632449150717375169860293278611555023353839394118223004283193582153936635833378251389238175501207717579378461713182293405378461820346745954853693712620054588182826252940016638686906148061434160665860670988771150754804704372601197646927414476749213611168199235907092077113980559519430561167233658853673512964773288602925915580842077836111447181205532511740880308148085718983887776421720680375157352906461943484210270447347319768111092834956992707023283049525359192360213542461377248345814211080482859651601408295816252145120475933229875971207611163349852933139090546203395389522032339033375050540040711436253405628008600450611739922756302884860113221104529944112684419021450613114414116283964947573875290867768948040098359951971932663439812558019875824839280088343436057949649788121061282344865757747938280220046599492816186903383443326864626427345974209899442082051022063652280186888996554705836076639370124272222764986711224214408164451215212819030718065628607031684668377911811374117625522335665696790615271392558850135402496785695038933918581599359584179368000267496614510275456910839188615345053492388357332015447542497412891508024798908672374746436400519998587746031982082092943413155048300380774473079314069716814789714324783169774231469646657508281099488907488198445903683766499864226428791705531906629433564619312802638006317781331278645657086960777826327520868701728752955065917693237702122212638850155375118636348920542369018379273698330164827697833401893711084881271979699368891595209586861991239955474412484428830198940772910260801391523373037937011252463782961389312967277405966410798851276294880300553716541057485124549862758821152367941562212475428658032911146632454925783003796702741497676411484865851345287132607379076356892183769667753858557668871226745928923829895322958176944101794629434189489847108102582981982232951099218581768858024861491991200691570943106012338602789752610631678216718497366240449274678306551965660889244129171619784153906871752692283044179691015552818406190344974448002440619928038936798554402568191739598648178995111127370802583877778371721328604938921551445466349862769352663455297017909752819020070249442368414430050817290473615599193709725999140817181332352843548034658555181168879408303318881447398286122497018830664767594805574581737104854391601666010871842077445434873930534213425236634476605782315702058400686415297045274341614857685846224113476116158066903693098624467939783989993602484844977790962050895781996387638651857244685388282130860712406662744588985283626421704902234607093678325315701726435431679958713212074729560488882663867743786619720203492721584982895877932771014789878417263490911975021053877114416904892714605886612076354032101363341318489928420878362470720808519165039510172933512578771257614611870788665968255515442884083094171441275611719403807046019206190938228673101154172923793983404194059983978174284598007804836098882435286247896437360630507672288576554216187091534893142422624130577326104241609479148378153183392715451220380601147802682256748029834505403695621425512389683414224295086695102279842715576342031174590332881504518111136289852301245075066633990490078842082135888248881343023918065242361515619944232613508020624722813743247281278413276081361288780962819942019281955284996382048565626405603584737468632010171054793187337186143988037855921231020979198563983867677997699665089183813887896005703006827731860561979510680758721630566742624346280393153943583785509683250770641874489444522178037556999475804537444828033640369010392724840820775731783475669382993749606927127493238570450828580285890940065286591075410525223151149812682161291681707663196541190932156977390760625628146842936091238781400997056918116173591575192067682708508020450644040089373412724474393152818669945100048024883914562517949222440799050283143515616442677440287500500623284304803931596261816546088027405015960618995855980843238725936513685772955551684828418302151503348937503007187315602516117288006124382006288205473230264006014501908525660606971309729138679245353892057837453712579418074551305161742874808058221755969784649575587091565403790079373508280783162564359894945093238494099297547784023371202192305670465786956312726605231108122548098235771488398229055169815482250964445616510645669420000553351333587132285118310940881718442021288506345787811700948916746714473418870983451208694104447949186220462835701124975464955087352879500893618065991677052657281477156360309982389236545179619423207725664359555535529895589465407625156771487644442920900459112828043042940029494595528504659023621411447127358607363074877249375534008908149614003406538566318210903896773100649013251847165620242783089407318036427805067666635269958975491921964732872595472218451469664201272085501460257401479158882220757115543239248928873741149296340913489979023288837515538897850359821409899772927539880591015944558937295492122669498589433323164279479288639999298142852544334995539641040032938929514009878659231406698324780148303852293028986415316737223670882965074314092908403245836445246569029264526373888673090948883744539704112824151313758630965272179199175648301613341116600496388293595303433695579747529081769558007760768812206813962513762891742756850485533529642764893018186486496520926178905408475242750501170541259354489170083217840413902670696048577065608205152849357118424231300064576334133127116658013346722575405218943064749752414269373495361107746457377761742731434179607959536668777146463858930663801465679877004953123563421813151437359339018003363574791640051688948681435401864530967319104328585803707543045153811446827715179895408396978048225463544984994004000695671135839934884426070195033846268990800458558998628340983491870578281858468655560148124186985306577047769052630023472025809029225411843975007326796431104008788793799112916924023001451225744497448150744001569770933926099496253509848715781480944185843466879809198858369965156806882831179967986754683551669031605700669330059601067524488123238262974317392363145458244776266062563003133643447883684795990018841401107681198052386245084047883342375749318176495409310206385701014700640859844141062309407869595302327234191710828336920815275564008371721855743595824514971536724088092156575859759363316663658040685491615375151064642113631104150675730215722896877449624448178980474652548357101443279069832857197174699649370633621267041572529982061819682317983765078770386351469630910691793349144644526905007944265257222630329503073025928919124429880881215227824477667233810277487158668515660059652614099351188934770092218564167795798990434920581726052653124022316632584495880986165594176186929690456554519931328217200625755567231195766896167849254635934999475917270950633036816238593258862926977509241183202765040958256882301924364172379936959420804110125920002258674896459419375857817200026860523068256305028968060314894079860108475352886303920997930868775583478155057859343419975816296342785707960236323947277990316408767834808530563791039371233801290556943104502760481798888967785144590702625034951726942174013664615573380979691304705344726431327913223603727857490576813387763688062098395602450706137623044451048563701127211762905005292405543988932969262384949402838405900354639973025264615950498992619667595223367400586096977331773224733077152673534371752846977061067964766148663167704418335504168149090496706947657857271817933520417822204928823619580327139155591231844176176095832175871002185265825511645153138391311595945060021597767377478484412687167815174472907902408041999873227358456234544474621710182715610484771199012451326306572120610945275113592724540999953015529442678047038310747380083297171906079527828269636761843859960613147004013846426365624546298864692222875655404142550817008965310745180392796686652147773859738313387622680197228270651939587572277348064271738569486713859248290135851560988141066386501379450162436637716446927198531851541753322309127591094112419477200608427191350014264738238250588907884785384242918047475190811880471179743387822019607374291919164267459471777468608017249408594473578693800207366961828253242435344710758909040908017289682196703382110043458570297183473220291493377822933052926911304881964394076458346923839477557510202768673604120335118852739107075950553215429409456799504726505303947778891603852683266673171684470225156176086181451629258395531120233835087611777224159191637988317229057042859533843069040584240680903892948591501246157201780174407647515997613744531978454632332587086022313878608442892623594502505192887972726461657122738887633463511009234371538703723050761954325326887326307253459568237931593135351388839891491070264524937450005595475204161755249058061446799305670191392106629292246225532048795322052697569265067543248343042932917881132812878855295983108300234938914219022900904032986233454633270232287121240228716921708107063768036932310282836531608410064191947485592145362274871403402718393209650207905487358214741505026935641729737428006740701755025123734089974824740147147912909529932398592139548433646833369952553559523601008725166353451041431968033382000702389845436991123163720643576105907321691212757462850778370044492348887217055566206161390307848676194676746144808012103908034892903103714448020936418890732766699254388458731412387562922855824755245282814468471238498786378515320395511888736988958123255080747166156710731426623034488330171499669498712802072774239998290077325814145868448657230501285593192115364266889138238543995473089970448151504647921125972313543095045259331444908125644923439010944468856081752558199040941206065862937049743304341292641568362247516267284118414483299754788659140608199189368811773844005465325692254388791487102581167590922754668637978067695956175156185944273796000319979196568077340649845401363196639610917720512169678718698951429585677015638276272172182195664675853818541622603821298805226386565792629515240664918358236851756560225104086595509945113300674818715573032209165845519496290181233067479791366691133497615758959901772546378516283710102223072645220380883120464899681250101681826778890222295489743313591802184707417246301103475022302005861270996710878260367604539681252409205367834676472610396279852150694629809060569223035727724062862150237964110012557853626465265749658134066221838244136676501763915289929021459912565400085289568197255506737277724461927091621133695523276756454725990998448665295575172760134370702192149584926009803461129050709386979350997634005421388625161447546846925027377878474058829300102802463877222018458260082831929901117384631900554382539938489735530051924125616780612345147779632401583061061226179307908443653496814773470080449882310876508005874739050226514267627069610872505282213430221009932888819439229955601942249219138438558437551629079822384243570437969926627521169442630891785122098493447276811214727309621848547102013108895061725891494837100735444078684749662592877911714120076030958090565914065033308189854189100547838000682241270712262652442482375360041174088864420309893410574807624362495519716826311533399009978881396658036704975583540309779474806687922403916670416579420201811456700068352400222020493856571835076785033503857737784654508508682069881055258936025325244187186465959022047749347419620795851761746471399196716641877714153442382910635379839985966802137514358814500815675038446254706574396756893307480562902852670040705077346105094150785493161405103508895401222446935305194270337432570043249066987077032415084230642036718024675140430051497410853908990935104225731775803600202375685983649130877998214787617843693734216480149322008782326155588994636795013915111224005398144424532258528855313529314469061098654715616551984985357143966831837373495661275857310068431518432349427616597506708270673047573253462999240211543939604602164099442559167459860472177107560326413789504636342089340487324924676673072979133293220107065750376072214136398014370537280568024010145755436805025083430611995901184366294034154687298057645968740300861175467507247713191733844335651925162554019302695549433918852996710779886005318781989350296212053428329247497462725579378943120010924587676252477572536366072665266678450085394510008990216475468879441233830037300767081367406568453450533411557988932055032171973323247793265260689336703633506257896069881543256463513991795891788788177906174657312564389897470235370856947108572681388772088138046438262968836276199316969684901545592570955251568722092324436113574820216829833505566873874055097646034695073380491387575551506986090234397263602477616326135748242709991116354978720631124327492520600773638894757323290543795170065465299134045064182261678781159362185623476313312766414951187654192621371962866596141491895522615109756440328064671860822079114925360018898924006540156467053615665625197141446390852379629860092256139233902765049271747761448527234359170422066037320773564736192039635818461713946097875401881180900746402739799070117693970551368768676439537247138848001670418056024735598502377507492860152436680688959641284714406568133061659023905439523463276842888696651487924950955062821443498503925136103612785975457806302778526474960259261467882909609857948510279361039372148104982199771545037689811694503477880382156270962845690139743273916710619189334030844585525148011882163152515719967922455941749879423331925516215919925656543628094698232907385034757801034936508685588899084193153609989936720646874112609612421806952436033166932649037491839288605546409795861388342844693556346670183370420748207722916704163058408641701366442481174731787657075276129325343910905671710943014583254370083279077522775042674784903552988581192669755236481044004335783442319018394151781064935706553336603662453789235746933145251466318468254070779244743494087633338132497596512111383925480727230025295196801002931804690701079327570912136641054236602722437110963993289853425369330029557498937992205316855870685779107585934608996848130949644100876219335832979306303154880058089011107347646790874443217660320110312560364305975039268985077073510921817567011697118815658408038322026636622693651149321338163218664792571385365346138663217585193920047895938492516871778265858811010443097338232592779408165161129688570985134436728437657869305097445524879954288223506424944791598823551360913893521765761974050092931567945556829911259012401787048218627578168455145764441495413953144674785194810158634288703511298045733263836534898313215882783048065548298595926722405256692652229324335734635832913591276542430985310514771552888791950996649296914859631665489272282209863518881533229030004864004671366651736530416537109461790969677103913491572825226595446956371339575218164364978798093300476994907990214341743452671759040371425616349849397075404052050385511081922211611903189820189807893881005619520401790069400758257368015690662668449331131510675307992268529684434127931352289137301008499674395890915053918803004678532095364472325604394596483360689509838495023283721121903679417552388786933919590742755320343797160417224636656069458111620766157098292851873955207395376667508806099822019158912257305602084755464412406259383997830395783262958002409699014114207416655409585578274069205054087067638563122808581786793622914875548127851086417376964346201517108687178898110257823039328374724004769902556909163253579533442205693064012021033010700210801524228251741535405053149849101033689185001840412323179083685578402020025957494311483756346585227248708974761311465105332812388973566191730400928344422487907088887756273890780996016441090307946823663099835752253987826631469615616780557345130806950108195025793754120215294448102513672574302897155831364264367599311474871352108571089461256192377582751377896796386503569880933462708173220906801980658135176767000072456924046252708688625039747778057351133929962145831816110017711859526949940456836860363094401644312374484976259914943744698073592789000918945767453713653388647455135847579258060810721900328027194537490547161929979374640612446882359995969744224980760255378830983915449634559523154539059452186558246919334757443440577856389549848397190044082530598029750019325658707408243449089022127116627203486607307982042721682721692845092082914759443769880496465948562086294583804648591515955651370298016404108696624201530020323654102005200789975225770971820443197890366186875637226617734726155114806644905707732732060269794666040474760061000759842910006360761274011288471063838641527918308237566290013708873922535631606785337947926851637848998861675360671154151823046267156716745446568953634070381755905826388653877791146739185059203600399979849928168424003987036740999510132398893762925894745074014090291820949212642392215212695547851885478600822628182311856328224392163703408653963094258082912250120953254764196238325558006835102066561190486159917607499847790781756412629907023051190992884570659850936358463418915840471855002324194910673159657097619391929226734526129654545991907032119506163676220969287515227959687430461079609907464936059464048029484546718885028045327359327001677414364222703342342290209754871252758163860581274048132987613462581896600081615766806343972412404492707261091596989499476262703512189563545835535109571318371924580577102719694568839288879646927072727235764276098053765627363078781264393976441963075277068072704552084811467764410494886900623983078976897784484570010457230248988646193717673430143938173514322245213460428260670694349392322959102927512191883578799260031180229370428692914372848134026170407976999268789732596824729311669713882028472099519445771565442244247510989448650686602247135518249146281681265509452826975729137763978042054733683908065874591398562183940741223707940635807837727554886884271313681290347261864309626985896944638322486010642864540756026743895958960089155580275322359374502798645019967315715221405857102071845257066718509188012394743497780564684595844575322287599259224438640991053200932594495054156583428394729863672159502481688424933485200894508863927431506326604659985979906546746732698620971167319546443225868765011074938405175465302131409499059430655005865393241995430486797856921179158514345604983800391616695606175065722117536724652786760159342989105259582305820399396746300797147817556402533005573771915245947075378117216754218280799566367971581871312389286581926632532907178452961883927645464158526617547405305511376963141393538416159110063100332569755238010335735720909036515345741576304664842417751364437220565203494523450001741624441717948635419040534673343697591042850995260614368267857197371160307412533776572320839073457084059884854390444998063105381368967956213482953820925629509988611381568539175241712936253245386929441086360755421038113330651030940670601580505471346941962582075024254519962010914829193185239061173661313273365970901864764369257316230740979342495069482485521458530367431167210201795226549221613513271656325942899877590105758783902811568798022042087529280039922987110949512178625795095926090361071854511636177946428980587250939283718498492441461208517751449177746789988533604009819341271159278573931380853644694428307169729312689423328234909536000164213512049816280796200089452870595058016840188435666968920627429439302880644832076877674934045406896370756904054676151882666070976150172304955372428804387300324761974755722652723581311590140334948534499511751013341818436579839993515611079589970199063231640050765479263628370922923246968937491905113961579742879608641158321571822692686305536745238018761704797355742147460477728799965965896711746745491194588598501126428582748815253801123136258499601012653296338765096833474916854321877989669211286239090626970391513238557622427502359914656351916957618512788488400970998463141687211838616106980754266369491197973968452954032501278436655868444673612788938463451441336100394435084154740923457820805676202172340195262809874929977977079921051488212095238278862330655148594013999090464538391000340193164859445739155024331872404803987851581388172017108806718190213946724240995778013608601367060529810762291079233979787709771342688102017066778432803776059268171398191691871333198939056577345973841808458297937186059997699846125435131662976410416943663273262782834787229800623378046848747849698041160985875706329673727338961730273465117031610011364716313076139663770639026758608454084611865460810884662084391959548584442092376843805457700452128153747456599160700969295436899817526517753500181622806480937931362500004951374431068503793855645202864367566869316978349552035688161196262718880540296720340156995660529014263258685521809520332648810586320369553306435390582039928777208492333903488516908711260525298185527410601197548042131094165888448782736602321580868727259960250937807902531098720181552087673031824557580801482659641714075516803378485278828551378011786444962809723736799876369017804278934190741702404432794220602130409075216249319097010012583731967962812516291665685430975612247599890726503298649404293174675884105451576851122291611889127367508514294050056655407905848201473253719662696136858809314136779491482529106561072293010117354975710104619215624837610835541184133336591408052785325134585184973598950646992247699384755441929382296105563618233227185767307301227321490825576413793745730300776870292185799485176845066051770083142355766426117442198419799846379990602383722393706223779810795634195305199972525964403034740227844586116952988870235026679359014184674074552403549569282572305255516865218613481643727237369346567342568359545410850050416054535414745575679181152346026887501050247237344932283221017790639103845922647678326145721756470521607546106762471338618269756578341373121712230061905375844488070806313119753064143764426683935694350670307986392857927870822786680467913720228831277493383894205076631778209646918799975972991456018900483435538871490737707916320962623383606038786945806870681291986023072079978092476465019181351693263086037450526279606850943737502700796252054269901971945988654100740957547157764790038371747175001347937533181771912194073366620244216578136531506310730080602901408010645095141017180656030901468077756688202145983075817247704031092355230337285385006394008391592697543361283731934296377885979105496777477168752071017357441434732195237605298165988889828490703643314264105024521115830646765192986687204776667529888060093043211625249721593170190272945264835257300574802309034202478099931465063668050941604174943844984098778760146705959002204318593926459013060400030492784268856991861835158396844669747829317174492246725469964901459378074488235094611438034105762357815490832696922333327529193228129570474333010314685617092850752563843808639696240395863185494156737604453154862127412262823910321492800664270818890939170033745599177214335773249427975510775094573847674792101032639759137252521871525252374870032939109025040198585076561375221739683400516952861113938065727286598811031363437203937068552087752245053472727924468075371740212204724472413094461878426169572361925287762343267191249086813290141937760626477959760284917077153479248395654882126390988663534233335211546654983146291720389841672057710149853792331543460659613011335998191175087604221489037030650658897275282791542707457416459291152612307941216400833246394473362059527661491100359839155556758539704695672837616841130489015372530161969871030316244023402419105059794838400442332078878777685897668065989222656571283715409033188706797132084296766203490722725311455304697226385283625967827670427251434681111249856899013854032815708340477556819116245858405276091606546770536137595710089256284230072534932144137234984097236612896290401495125588006542092206920881252944972780948269080528689209373406184136174634957704945842441296977226034998842064396373953616702184262704005373194687668353577662210507262126754775496345428240325374249785562459414364080679269030833524191652720129001776364072831816393311353763598100963143583750200838877545944097733002271499762344056179823863944067388307864308136209366827430867916435660375853847045861966579831331169065550189864122739749102158457556478756481515691588230419373405809061343503994301159891290867900722310569149642051110001039550319739872755712972623480696633340934128961509590763400494984655176300068223577162329307333219584076345013933772508544932718425742440504611740281778406844347786683488801791857811403539880051555940568087044551816340577129393088452612763671023070574389700620808776580362741556371683575100198848217522933232396043039438802509276862857010966707183834455247600127195113974442762545949896773503490362397528152943847165062030152740383862783912738172948582234120061668493898693359994804899775263374056889338830796756686417113516886197158704056250145341404797803822192037449517080420853587999754349274841447742877058996356942856621828167565894382974093185172502103755788623993937873228857507442193171980068509872927267015234377017258175288106440150201211821388204543677182089037921384332994932448984150891409661870288683930621036874668972304062036161345997428800553123969416418362655022852841618594272789912008639625376925798721436467771436343353623054769239491854634964719969269137242635608744628724012531399329205153592924354490534093663206283944536430585209378101350691622708466858720683711488433163699758800829256167920738724314543740148675175740508901382030684868270442759550399166877468844375737889832816898479714789678932814238976465533668074545808204169710185426159450655564533332653223455288985484602180808985864529839377817421375389332549452211459422862496299439833818531046055446129638111298259563730574234004176469263458117215195229253650419078174894484535768734220169407193068797215455696921344788660752211535300134806413048155250621771874190855833179705268811758808476024304710377996631394707270658111512680917926558512691451771390355335999184441784265707764949842071055479675152460674610469945553447607902228523046518904068940042038231660760242772199898302391761419077926327561684816383665103532088071306168176877384644946299970749120649784319986015495903936983457556524863041263422587276253200957221919876296477275689698903065679049659959524491454781550805620027048743323025595034697561822027193515732102719268375245781071744642997452344259855427103398192491379400109779432133939817128220894010646105785075715608831273427365916347950885436484232512020502942317072463649004888739166739463983693397219229701904085698390065700736550236524146586986740839724801847872765132861386669301360354679138817720011925497259532406792112132722833739723822202387726120463345975098531789834863470371020369204248486317780151395342389686151657441879328102924515615992175596340162900242224289595414522890701435422511028445952501098706553347277586406224265759316389677046888496134581267642604198380788066418453454298864945717433325518689710140459728320829647609562576287340339548506622673659823827902855787752145469787118488262929771429010620407854303159510996100031838926948986377123564814088547862525344413329330774269863067930552234817065671797122762917610029389720649574535278935589010300058120833056255741861094614772583323689352208028816658455166085135513126401948234274009273512007999301769086236646127370118749985637654764739091270866252352691774843738917661094506725296619994527462746540873707516548460517858859759781048987838567727184764596785004977597675248951226415607039646515396997199067196935658148686320132630758328909051764797648196258209741341141920561918317033745824763136159406818830651695876222145362338951657945089556190895244615754435520724694401433332742346941036699536100397490867322315234288355446770276373160309998231138703192933303525098143056110067352249008378752409660578842056553669373262936033467557381782019155557915787480878560634045012818380038145468137205816416749381569044245821616329993430796498141318705982564223673519229768390210547958273591461436428384497285629038857859048689629363947354169733103250567465760138352070788285751233654276522897978038444734354309075226265956667923566473732067395631166102130126756503368678174413818546290387007405192765638622195545186857944624726592115376827786762326916755902218261185691723286731081318054000121690626649156957921497630122009541189773330622355602131818886268311966858483921996841733867557713133552529747184858965982677712364681700219178999115112635088681791672253269738850371097416691437997051456532340620129959627416255777577155956956920629771139672647493610451977211125992798361092200459941712786188537109678552089960401126436907419888526162072670658868451844818461070503419558989246122726266381958209119701061599926777113224949004919059392538364467632833781575951035266655852699063821420400547119938618391736455374750098497672181995118365691313452050183326262781034141081570515547538815600530446035273573351712789228775992349230555545434937228506212069891302752480125459950130133370257648419255717231398600348751369337469113933045971066920898624218443858813092421410465308211446651637167361277651188909345008846901815075296011769192975448344472581319390183931592543757894734786622404109063254659561756466015279580921448556264296975213567054574501903092371630701102420909591730386332002728754286590206172940544553392601787794911178413905270350011734022094944658137374792893221119068904612360902119157683499999374733485766730260408813209906074255435990556280958620747094303523247701108499887704256445259978508933333991305796565772757349668044670015144974823361571016541271988203304507901584861262395485114081752216219332231561075654068256832155774331590813739720576188248479204382665360649187931731646227959370933233451569705756345275350851951436981944348324138847730217252921065812914349496768283272020030318190213607109336534083377202996034965391865156704769875672233023597190326353117395518125308042153367453214486191560607585425829877284668646979721943054665460819329809351981814245513828261356761883976173058041766657583483423946370109068431115163401901520086122704728073016338528706559985231566793223045819444988137179968900715695129135810755556891516305800053094679617603640081946264101227843290831007236025755347961239669022223320344666179910951183670471012353056377595977939169127208350927651463535500252684173734800272072689359740098590423978162271270902913534862636644397926837108365907482579567034574406595212962456976837928509199759297639406686491621118762317230844331664600198760767321483604115467277848918224533186458486566626826792189715458017212790323859237501074103414326447653379425337510980892752845287687922238307271253986770637795685856830787004521641681157754382421721602901114995140974810068759941208163824883370746465154166096387683793623674123819876587036273565595795804307228943147644641763975895181405715133581188938313844993386409318404383867516087261372575547728887400373281394621093120998753793351034420854316325310084693835350018314906347499165908533221553109292567143663092473404200149778852853484992378135123489079618488912547650019479683426265253568601536304870697312111193197849411209389419480684413997601356011414498922373991614732899156905831493938071581202753982066085421835301634343004577522353738790668621898585955258000030222895431767642889678761440251626361970573373435849658396139959911937912247200817723088789556367599678553783988005097159057062406621214214706244014342762238538921860192352371540540649276596587847762642958016213412913202452860986101578737148816384259965152346086676198460623086079839452445133067801774577012163037804823270222159944982004947188630977419914179145578787045120418759949151365502991584559581183061462611024820986055533364508265001691633199714914086527771964856923697073926528931484087227608203927629682152098186229605627961228086705410131140648619896069753964876133876773910151152016770752239022223201008415904204558021580358591026828910750653232994850820434704300859113846574840029371344189142000247126215946479392756254064152163063165052691270024956266953632107766909295539762060000986098918562762295297499486958484148857109962841932383558740785129649868993208548031970756805710331140996056575706433670306698112622234823852625827110324582633206656749834624371506981964607456309106361424161017068591232378342648960769434165995991522146971114301012268574839482122270565032407289922492788107301228918766338277896763115797713098538667788697453004307614809170670502372982748304285561844908432624472544362827448785563942499586449188239830389173517800718347989728107178472006345978520570703155274263010032299708724844976230943809331493641945953423192729747364469174891716779183519304394093755166355162516888177548029840219238057492495783942357419677310914221030944840096712475620061092640665074398465268672271601311559093508298658711709043092928430170000403988258746707553318394285683612109447595734939135617305062287609618728030112094231957926763225173912298847492732886062390846694126211403581637659830255054305113971199545890521530903309146214215135432849610901721396404528874062159850619435027545987185933090106330205503081795996254834328889646351894954389948644043010159149662272494565451449709920766457830745978384259809495192724502804485941702908336759128170909290086258889821830725133677486986691242344897655274590372198467063523160602916883952731239333232982217155996203863899005559492715499360738360481849368706169031171797505535996060462428941513264310902816135669102877760383265555434489662171526252185731228210329779794942579339957816907206520392319321151940816961651547262632197673257183854185066372074242201106860330905648153873161249768240911546625526367673997024462479918934452417999461606997414785560786982427062186100011431163812340587355395404277340904292454460704643715849553283165050140777563682656163820995339010070805154574576014981767500667148827359425444005250862049230377139283265862529380987104382699923174516737609781965500292751227988739681745806690387132511746293887592181110080814688016682520888828573072186699531868441015962783728518115740600601834043802293593600074767953353470353509885432092340015464243208360818689022358123922433818170205088068902916581151601631714039918210905684604346360050345798680871979764365656895932425630216309449559970808915688567682070421690699823263367377888746940394991841861916263670248347637834964750342763864053486956538701641831347350890700367312965510516157052437673787963428083930997122599743526078472627313076522822588057876388953594721389467253675414499956130658473982287599465880085940358303687665139292933759810955138931300552736135616029264691193858461094200233609217449202912141726189996291096103990608537356395767732249284760885756164509857848456959042435350023378751689896617172517565927429419059672948399651760422244955130203490258357743793937397673560254433915348264493224234169613932013396252685970190271678353383091701851822636489768356605340310735979826880433618508664300121070982000928489844432059603038703599850213904015279951410145144273706235702855652893035983809984593362267194648686636487595516350593898775494354434539509960263243284529186220261982729387204085449169573114466365802915087424093094626631263045525035085622920999702189550047687636641552311339812370279498663581699092750038939968841019001096894261234117878743921207941223747499364702267364906157771252972330999110663189463266933067514413135521491919837266909385780467181663424809270471819162193792272092401102216808073890843012176398821789488188452469147007812444270268598094264482832456719510400196075924908374983469518060923531747887126346981525339282725678172624803009414559976716024525225237121500268147610524375496320772695161059925190949985529494690530956402833468322400232008073960218864100081428975925458526377628299363334543679654793089558790117837345113983936139021674004970819938558570089720090821149017970006994939865386414909098474931644306646272479283010017820606853958511458790734399159270462778182384610240087724164202011833547736951950856782518874203122283176352672612325084910133680048000789160559579550394440412897724117725999952995471391757841355940206980523155535129122264365443535700582807313938154439327703551893531350478742904400401256366452360894432997941580423623496707564479407714875850687216427827335000068562466270229473488871302027492217958140857978938455482561049190933150661219622749005897063838474680909368431830150449825567111338070504322774062528973939691663412912746648295167110931353010608587089929529677701029080042287564898065446265656878098537735403152128085432166318924091998331016364201295581947661339170118868024530664973891998305444808080052074499683886672445546723010213453570606970632935696001439290617601085475514464615800272624598230121209734551063684698403686647184120348608392379049920392461672439548127933893182267473785147694844564292336587446376481101576266818619456834007353662977715674376451163212752601518981499048627161297518284375839584355213666081554994290851562995008358046961842212354946284104831008090735165362692835179732403713153742003338891122277902162054431752372058347699691368397520105225450742946903149044205322081411671352714789445383670973395268647096707833173800633188130540906081056587819683652665369099790068212538112843805177883280640449668906379580704901613956411531776262436414022334515355400985286246337472584244663491576861939694719193272269056870198824957939015551762196732793621421151079355624705955486940264242318381222203180092560824826125363946511182399484865655344831578998558333719663897054388427183524586411126928794701487159501854459009217979655636109030908269006703831406383269798401427777925353828554872433973057169291903243631966531743756832894732608358899050751835036802375563421790396769037930040081276922949607108613363063630124976322050059500126197198069255113144011886738164271961605733535747264867641260996545239592938929473692798735744502415849944937361951313990104327744363536312264853647793661971555687546313742490624819575533045832129574460843430502789087027326389380696911315536302819576250520862081840512653533838009148468146632527379086969727370129501969369333482194151694664335276634956248158660847334915816796779042642329138695451914704131714816049456363501407071153954083929893432216132815136172306259876159777395191465452958212923242890870899374786393026743586181473406439754982911263846865916049632913572420606908601702072296372787718966322697402436918698412173735321740287353367778465543582129157502418905947282776582225953539308453507011986214960871080039308293412157079518373692293337135184372448489410297240993856731854135794361529850092707590571908816128335056603717870407924969193597371047179459207080846002486120054982080613327579509478300907367086492588056561116158975184392861714054578287294784398133878092261854139309759185549998826434208108375886185032467074949455164884634311248530195823379512691234921346921472715292782342946798635267392259687170012333117400315260682181584758288876594822377909911320086454309114493263062394923928094677921238564279586165537874396716988904981607720243132370873683329304419351781733060606578926286988894087362785996731197965075588163562893459126437313553736902539121441739797169353720035115449071695262811237408553483782933611744041501150096562859589883204272243631506690489807094406955376418992103425488104969875399466663633774700441243708030928638926029298176546350108758763390872279127242226582199662959951795547980226902831641727373525525185817616776623205371752634949919465595564183501519436890816711535407299084328920361700094525738564908748931454724842887211424751999007616528351428635934800312609089536879494901694757585657216955403410870081962768450333909953375942796169985035526841354855534065667761406311279778816856992813546327935857928861329048533288871531253655838070418346712086912385799241850648730456430108393350160245794705956338710685872835681569905843308139123147827955150867665684259784665691665098265764172926162549705238823310260687713634197213098501999572264878956938655805505336286547071984785362067859048917422582183368795233998786727285455592024836696888830763895171805319431437313443334281423658902682022533106704850304044139156987254047450447843649096720112623441589128729176925525003067781991355621443089174070039678353922141702284999280232308253508643461570043692215157957669024976569508842333198949264836894291576497780500445147397925612535588255629161571487384579009899937399051395779881110216652220397609980456773748863474122771702381535531500758916607622881798324476639705489122107175774335220776208414701506436971980594242353098785313120623697599323369229691477265669853205181086647308409360728111146559483441845221555962392813474732660346222856513605551090590263414824149368930903436482125715686989086737067247971525625535011979667365494597952730525729288696307640502759160301890277431323883024180603449933160455515732412951897955604477050243151301810160250107953781570367438434624764317234145021717907251128495004444689804846545878552064923012470667386306072963946967516288420790143963884707089799009781099870920494485448332297647900703637651735506466471546607172623782746483664869483850876803396755118455390839429020318707401351860582942753960001956712463564022447095915991876250853091682450890853732436526908826560116066902932916147423395829666453331087905091779835485386067490106157628290116706284327961884931714246500900631367212199840857851047938453359574581247724735707356462357075587507643252022659429216244810450180278600885999037894231255124708426675614267365318595355431820913112203597738297754691266470863371052941588155333897171055251070857757785814480880555762768228475248552015994790069574757650266675099967667551230026904577937694793498597289605938863835529366474381636101222765719051265997688409608775472577864455020952772326168463599820942396459813203325151355851559197111096571142221507785531688769370809610882135916974368530566490504621958816418765772962009809801335782696015949529331008476842514414217095998559245804731092510965057594842996478377973828373185728802383970921817439792285283766166721033981630980358696006622883676646554299731393694260681909148271201233283808360038680158750486351879522491137826106475594374264549624098719504571924730823160193867551945498097114652485813337131265344702144592249869756354095918232686006121510086618997963643781500267993499365969650391197422034497007056670997055012884445922883739309200112530671417833076204154393448989738724702353004472417697947239369793363809338664854301672065194333540063754974946967657806939350154153742016202847073615939523104281335383554280042027384568396988607421099780401316773584896096587416361231065459337131363316631608364096091589762483619430181770335370255525368281962951802704448332772417638624375332810767794631319602907013265364294923942221359022171986966112876773657059272957367551413908844582342334394444448368882827224937762942718622321627644681257249643654790023239488275297872436432541070190880990639202106621725597230884863786540794118052679141134203590594860374326979639231391910621768656295217744422262371628736072906760591654580774978213568461066633127124553173900957372957751690435058546602673853133422585793548407638861582397793539381870516700397680932305387925095813523473328261865107018812196951023923664069143327845643974041710506501509210790837521732360457400075632482281788562174948404098697246245265713176328241463769791988823857222420118967328273086148698862362342162858227250778955282444530719693841973130862704622389653694671441623371923909407477961827900430918610499519779192482700311574823973126822190500216431239903510621654494462321463154795079185535434562706168368322257288072054119437171513380811066608953131108637575836609403787788676872632398036106415878315881606338896386657989753819558330321807730720529511804040628223043243766200841048155494014311206681528249613077924047046214629689140763645174060311857818746855978284558337308548860723653296377655306157312706872177294189734477829465357125027962869991624991439598496360226598379283126249123916933849519998249056883198805057323258440391070151619420043325615970648112754427456721635935223953197615157100891673947244968076673134737962730037829433813643448549134214395753515598197794783096805616550656748183269074458050109208064197009941159211332181684258100260103362299317864806912599442894925203277842429606432012823437891755068972471079507114028319332034711650258124339919503336357092401671018039758905245493461463986085769694799770521223494028219075655837019214911281716190129601300134219211730933103047936732970321720035960119732025439094868002970932927470873508987223737036286534732132754012941957164984922480769045389083533838782918896479816075682603113673289629955424165410257864704727309935263658645609942914990566415905166680517946921807029704746452825423841387439896032826628190452572751111736913381644742426094467234665046292292198514327197343800329128419616174500362919695599338980352555256171838433784917454686703158563471945964227726012181370598088763312216492773610517922269332133014802877709858558094248401222752698610700439496247443455034364305424624358065351562048771617190256384263361003687374949368009546486510065930158921756594636299205688166313274824971713076187860657944552220106408247847402242256241200983526687056191052411574740170344726168893150988802030457843008387078114809960644935282676985751809621991748384590893307486916951047039225135268159090707050432761417707605595162115295096502969073168740145316711236713193598851769323026738315375654161606364876001793591545657759108639236440651362215287894268562760811126935096552871873957284580475691745670325998183473353930185843759081645711502517791985647646794300152506061482156695467432077821988077810566201377677776841310608704012409230018678698323754253181899333700408275748544644495849843918900821975177567373193232029004004063462648891349743921140674630935021178153636700405729606625238911837889721350629428290895519523127941796627553522938397206891525028819536395243394435798715098375600802703308573077597736671228873013066947579615074963742246102937993015558422648263694260690253999354719335540307091223990947201189115315102456569285666856410366394719020160794089987353568383085924522833589754576262224662575438406629199410563141665249881112330608395896289828565804301341300509986747373120703011933435997365245746840462079082563643080554168048703079757118576300536769831923239689291678324670091069219504266004382519356638138463214706252530006645969779069680460001392337744246857890293992411553172238274616892071771672989875752773571094716764390121276563448333202292834788814085532306868245348346457935388960419038143892739416677775922195965482753073641513769770838490728350107922608548900642370731491771253828015729460521661345006179760611641652979244192309776995711219205468461791100596654237722736420559217084308301647839597448910393198134316220515627390097235010573926307265236099946437978813103753269965176967238213117933553790005601658928261412000659138290435092272441819004772116797725252648376638810676128618831846270242603607068765373593978946680007506358495711991879092787687055153237612494526336474158697741673977105853403799169278195788543127582755983836968534627393605268470800199525216517421395551143630735670494798491040680938673209329527943102604912948507086197062748253236458624311890528933375757369820316326920990575517787267870338115524488485864367303680055581240476355709280067875456646746043380539554019029070320912441109514855677840158787772908977199843537898195079808502365835475234417222221102337432952786142772531840240069516717919293568413467429590298053789689034974521459988031470325524665568488329092978218976300649494185002274771982735919052045133118706807158518229045101281764410744293642505398271029552092926742230027839885987690235457437967149713072818510967797443181768117726360408335796575296033133602780400271446645328798118428540821838297785953082919592753382655782245118180186799389684056602414713159197180001971795839735073829532107815872029417924967724964591095256582601367435321728367372593648705350737448776289001545914024183056178270080139578507200101702683899991520213642961803900324903654168763185789021365259726908801584107441566373503822576274507515094319969338936940477344802077554832342015815238951691468152512504435955993433003886141106763745247285559649680877540767018180458493709363735104026476098188549924986849120354453816746150224214951054686259844692707663705977605327527115690665590566013165661176122548727421479463408755824483598674173782779841163676625634558029751345860184434043208380296132655205647287992454422428502801545716565590678803196013502387454059526035177803453350793646821378585879676269682193079183947933746460492159891734285800173666944627718169548564095103116711146257813462472461524535767292717697958248409134657802551975412777940287016568667285951842020591443072549265171692916229553860224270575453195238318545350540311893043800551070263164069370085879795436365069268913025271636134561397642803379071035814619702760626844120129553678375908684542535297069935688114119310153484677792085872302988189857727978539351623583652401978447820668282721884957964953116120771446793726616449438229084432932174211620044370197931078000634573343722763724964498180058572173417738476159185722622266388977509929734315945737715371262451657592821142860142045839098344162995857068457489292356206554807527080705918193236400378100526453630594301301452354437567052695334924351918242140635212899600247875694849709986108106049452462404239145230226501929090191259936479991196484405186205501135418014932759634156519117002822531638939358707180797520845994330703265109050257660279217424275736389068368871141918003716854145720871704151919991413760820998839771070737173702846752487890733581021787724285327709242487057238931168424278851922776800649368611998684967375484018915257082777718474847568147271004617447485676851354366786440115060120257879871275298571167279787209004803562940505442252097925775281130268093071064273225276363326596087084585747235018111563593568142260417507162431661440066030992428048756831704892288020972038334764589365591152653663758520168989844232806182806447776759773970027594021596122262870424304116346599304157834726843526009949165439858522741118987498759619476335174664862737839408309120958287212250474459415800357183552866936403052984665089835589970242738495139250423444652661244128071808691197503333456114312051145881872205777156056763637112154854159217858086918615334173006002446684987594617303258378321698635282933522993263727511219713771379745553035741844914208012265424719137821564211569847713368638759290028531043971430088524925718245104444784218721744735343577133487173368495209326657790860335439898594159298428127688584981255844603662510565393085850572036536766621663740272190349127947048164214413917838972392599657834272725743969653192988010089144161779200085238121255223141374180586924913995739532231979391923211731103378879106108614399434072352655255992745227732096933144015966901331198693847418804886943238243646595381800359210447185891730853143594957754328884597033628817275415131774221276716568675703705553689304680822213451269942663563038619635887704000303456741302707727418129044039608413452923231298009692956147290768146777257144621742594228298394008948127229257451757251012979873710506118228194993003376857474735039875128908755427052325493966884524621671533440163005242703211905927085158843926033095988373906897766564917500571571333146879780484045271500968437691470717424719453093700605508766141348195417877146109212330127152992779940944464870508251837906076562761896068362619020287904518953423388788570080758457261496413374921167047160861082354918061089761007445772367027502991406203431887422996461856155370478066651831244903228460729163831165744908188155370457239083059480509973789187559821062079213422589077333563371945808889294217231083799669308991644815634624360061110859412196572914249828808260324150541908408701792912138269419447331261519401914371913678538183886119163657206222377877456285456804598368368692409003324112248340739819746707699615784964381933274757959965029516819080271168051006236106013994626732865841886741659369311089381280622664406856633284406895719699264695111827180404843497885018033488970089987451484964113991358784476960399287800950348175398251436468845911654629757184124934292079308665626205714226587506918994795557689529000209390243726025749841611639306353128030348085896539835489924763989425748129393733634678477239530796685295024980172814379635639506501676767643394138959083546611268032775223453553164187069476865597790784759324982772604227386778150365745634262858731336418763538317524865521224622414050320118562181020960569355114524890211887543983521320015170725730526466840066290296353841597590623042802838391380134972544699410229658818729578085213983106462450940728821864606308034812833237917504400180606236820402426864072233039609313554419888386654102701936766949469479445842742000171074158417034410908382953411664636512650925022805203889546965567755180112137192900870651155189629173242177204788876435513384797729678026240168677173085502311430652835210848851323068786797545317352185763739113757276645528022085370940577454953403137184738945218771301963273155680942446902275521686383335224095043164979254968092374115786546397160241645197961259859653732762743860289278036010996359977779280454212276982763397734017216416970445648994132204817655981204327396910161371761993286709429417053575755896794327814226981752667760113719167733864536189255955540680031625120284906519171049584225675045715353848850305979474589644495314531374512638634142152050144769181109339250470197614197677576875551140882895947554935585405495266108978057636004054454458624451773734341237046062877189983891900467150081159695087860983292180764869939603086046994987987528690537265016879985838589022144097412109852849439220952299918616468344295453226861831121910630714287114986220962055976430347073604871840102202483713282615110558795765410531144579416842834653059317095819965524272254934368058053651769129077680894665128233059064043386354211832621528765013475822688898923322871821498935720775262012183905229313399365393893948453226426969669334188613562958848854645709858617445757801358821902799787856913077413785547920228557003455368802178092477187689991782408397196569279177881299748599628938885235381243257725151686711271271461369604160885617677802503055049162084963086526446580484488992304622258252336942676751119539754899778621459419341252076371440136724979988857650401250849952790380709972946016199463524931805789218916512247784203567523642829014952474902199779735818698660116815330204267241698554542552008251955880566690864769182179488871843424422347236965171070524378627908156919163039624121584252421031810051077366647582989149346157117869380095522617193979928622484690648404904976558721963675126689337654755849665363297882087279159452410970856085832991208736031399161469805826613498678934857707497185278448519905524350180593265232359675691942685483701430431322944013571166305802532828576847998883901586197948493494054379133022775663095982569707525480548263933535983031080570570492211185068888021272965903209975737243270713084313442150847574350159533494218463382910486610382995798624615294594024629556864973550477959547821427682129286337158355342626697590545918409446941516509983477040004577957614077340289113988239994423614989687087743557221427055990752863783933698966712267270795061814218140567836293835840133239569388664825901225042518355296585827088537050883467856882365471458250591482909407356837779804693578327148085057905009105072752553228535300702620446724685556064586103568544805108620488792633093818993418214258813362686142199854138966386852759852309687513134473941871594634107491490778795133711778675974070727819888560848049328222461371895699248476975797047893636043042718658397780119216514012389402410755020189373408841998411834914019998935973000762601306030256660518728171322762161975942648788716565638314848611438634101345348734961554793723307841423083295124633522076787836427795754587767600386522771965157134951186555944741479413377247439403987721929999451973908793854963463549229245540026135399004657029682464192881793341145894952370501730970884159241456850400035906928703054749308526965097426886089267569361598247633839134722670174129493594779686008446981164758839225544268895594872026584627995035915707295108255251328137245368556948350831376012295512250105305575450160519168623964104867205255640183330905871681283997981584568077108400348544355992674018930802071828370208027656134341316794115885986390386920913697848003760280722408430158076641830819061391291157083639904596865517228749003228655741320157873591304015370923547308801144250720895516143210003034228160125944422739799274494340303373121267426041630469065740743167430812486743314998917936008136636305288901650663649190306875486214825517526512328253993094247311494104347522622023952749317148480047982329248461940497171550205888492236070704835817964447316934947132718713919755172707940314139264303887511755709810505775578452984796544981295846491746634237955677220303371488263849983363101558145859075606024724467882857485698125634599013092983689031479819005777160288110149549682592982067159801142367462082087388002374410712860925397955374710386397429378240981617538746656869754621725862363219361561264412826846174942655819906854565443815931871912196581042425872441354443158357784235926832452648040351941412483569610868141245692026643550818541578554763493093258853591589868853413004500218026837943233786618042332544144946798200356344478511137707375953296069630692236238749210136720704809474904762802927757672148578133211451909050193349283154663184105982081999347402577957586630359504267108034079967053698376934137944296333684794375584049832783827860775906977915846672878619732791962841138909827662821199839994502572558995084416385212435489245839727074984034101898943532297070801834926080023280133617728953891696785319539257832368003360388927553713701279908420971989350396481925412701332200270568054187963769715755540111525240583865770588518655201518749353258006556737312987769354932414258967555153289508266337853122335593191857173261684123454611670140788844378234338100763542235402691604561520588397426427910561215475510540409019728539944626292277753212914328328784030294572877858699877826270913026785716439876855933397955975001598243635347557774946634268459500683294700053775796878576471114144950112909228714867922871492049078959558808768754361672607150506137466771784863216422011685327743106690428175770040639827983841549786941367439316453593500003737043738092329185119717514565715671475549140080538044885904973584016287114583947799322009298086143937155994435446164145278103352709226914934976586018216194764653442423582924175953160667277338373765739205798995272640871747594152231938350098116665212991486051837084353021857368236161765567790255226618510821646526020323711856752236870748547092195699780645561653553228375196059893454934407219222894238496725040497069160823248946462720633469300112790655365961101674620333269252041521163402208068372560001752021383534028720500205729789799309989237104362374802291893806664276143160611131704718752470942927738643493328574177064508312579799707173015003738363366437358398991674094893032069057147770203365169983034155877403868778711501081028780555045797119222649557548524050477769983417900551534006832731603620112894984268309631642523268365322094156855731446294229184681207731805318037454068161690156445394406886690854749004506597337731612061534018656061465101355270101493741939004703605600683306328836069115326027164507586271830579752379471206364852525722497447521118016283596990036914662157224307853365343313773098213936537686962502158533092719961338341418629685932565900144809738192238628124642711064744538381331881272864909688136231787745351891555496269711739167828263444784921012037909661398855900577140410308911091274806343515308866460082122034759101290478787715523660003749832943053416482266392194033982282574430377279598472131894325603251043734976593734572569407345465354330860757573901765848860826419835649898226774969168777310300947851669276228997119471967751012647890495795435415581170058982854606864810158946478398920049058088340924922156655397696162288515663543494342392334603437484561427874018510702560225816176954446640846941889863659269378450543625980401759551799502641173298419724273894600240878416999763899890860737144249076319761992755826516056402272299964878519047295514106063134249390494968025535831040337105440133832085093514009439735275406795283443363607988770648110192453178086582234333255136915412465120270590479669459656468366181900039069197823144563246428594894998593287926397162783893413985526678155110780829972551135875134045195418275686786756790025392009380892671674357718415339734875695314595607359354277386208222396304665824391493028928290182302743133556463202135151533140541289514334635430273580327598925534835978255037800551220992125028847938455753956281739749062647777077961604526065052536961933902214196263006674352363847999660400217235936029014794984653785242032174460419845144217659218723353181223312241324470319120941814357337114580333541510510140972699151175456738467191657740536809549603759806867813931518687352211252222389520550216577535134610417584801487317814872501849823667436085658215356953334904597454086328168213141862104136983542074293945986347291709869168071720553501593130681062615327775574585811471889541112803021818475560973547538246707364688539775315109494957282119212509314335556950839629047411473886048154006299743340615368027078144108554631213287417943361114503179597551417196916825462931738357156389579102144932316514438947290539195774150968422336714829202181188242776082007199492646043650367090692490507898457510219257851423313450039550043140055439531613549682465045667816956526451970305374292344377296509794903237096104756483282663761586098465903470893240293970429499840729727439138631708003232399991763672163930793750995546623692056589579885779314010244316946573130729105328783154177097952030326977759689882974731292916526327883484934038999117839172767726652113315628057907559126228242913272317200631649333305642063137256003701929382997303910307535156952625461361457759640058767815258755418215967422074190213412958485323671023543754096886199361482778464074500090487636083341240836465898762499511631840050002535660402617242706662214927757117963864407642703380385655612473745495632497199877486761912707556028950569959650362218740610955952159765095755760708045808308609382843786111941230923498036687626000471011872662647974430321230363262439780887834106133540398863523114494395458088803235499474144643688537918162225311711535197675264663802490882153453967540538385948420069895701354104229049833501852754471977302785282783887531089644768334887820042935330767603996713253492036989760414304066361021796107341493602681540698749597803560967337127672594970190448063094227465087594833572577906239331613124345577974670243331311244045572062126190117578198578101745038619489497841134398847830318317352722860717904769874405463879495988174168311107464680329621632617100712792245015053091072786319955792878193934006017127690564218628486229162182223977825345361523718257524218188599867186726096722451914370212218848476476571234105181724198625325653871642422213260257795132660648667455315157915152225801776659067419778223941473531861415754691795452861957218572759299333167028859172301716168422945691626866815529533397292359890546135171557112551029901345609761899263812874496655527859351297518258943187633073492385482097612828625295553137118348743448067563403856178428264301146244606230821655675369096338686712221378181802863051932907140885739105902771152889332344606780967708690145708719183331066295462955267091193820956472909136327646541779939486645586890975865711383220491804050984000547508807718098066055202024910713323160208121025013976139275298221225034551315177418249057850400069689577912188642251346289894565558789236554996053118791262602488760586549082041990868004647010213839747374798344692498575472236361322046430150897483346545991332106687654496619493884931467624723670513871036900298433214966419050006340596632150929778560160322627585051257500078349862595030232328076598447985797082324672664920381692473351033964367879501389176776048113628597937958709861966651042943836705441752755213841347945490493082256731622480792767402259973561149274212894103304217055628242456509727102735209606442496441758451680960642202342089950932915003703295008994300949116152797998947043931978269521041012508282763527672326429749548021828171340100800836584717898826037098216589148113389493066114862249449165344362083107963320044459213718586733927589388270362880017479995669133685091738811871155719377936992635402904289618424320705356679497623570977026390262971560932557710694867140459293703714146658375800413460225764834850096240696515055900036614289343489275603403482668179197085499835625592558108167941222191995672271136967522103184502099341862494874940910492374641516721138779878766389282414391280892812926070651566951115898286273131701212930273794299468046028347852884941763621189963829155682380633268961338574719405305473059058173192857198501317059251347065291452359368422034837919228516939489222695312606847974609383635331085033335191999212227063433798268689817002344631158176449296483022054588871381228688413135655780357173091541660507504311291972004942747662574579642649387317373687008685643964457700443320255013531158528962547862900852829525101830981252439551138034544212852631920324731972959005368827767999023635698088360949966900061989699140756741059843772310009664014228860958688259584361314485390726048467590580744206718900339718137798530179170719516852626932006966928861031734249957154692305206093961304277566507595952589059192316225101236363547876043713015252096000649120674860828219570252658064392383525609211442978284404126192076066102179740872038643472146226418929132496305120726483572899439419786465129707087566632489000243753504344161020454045387523298155537387262243633645824600261557638836816349766036925455353171062715091276233191933896949214581100935888842213373737642321104061146952299169997022630434139887058938295375533247671385127450958983749795673698588750887598349177867979566333164674908848779982155731185133497021078428351340514004699319049016254285116946184023302764149610127681621050433610251959004700977928138379416079719106295673093947878578578943912416907479856220166355312217614964521470455684165493871024714225354134289694351381266588689111094495660169803968424428549013740531761817501430888678461908510552302614867233019593972710887830774982433014509095429609419025835365045972894098298994939983018297651801354867653763068742026592830843441836080699876339653437713233687603837788244562187261318317622764319333354825024622636638013180075162728350086020128320670368882546347143204228622834157085881112965781885495073477098308789436264947117537835320790505438759930741264745695888181805556824224897558641697207246229444250393574966339509108141465463291119845781551920414723113329080819551935055098402203804902986228798022887750535636713627122482744619248728960324796042012005023783694961648194974691801006850297993772492793578423245453471615423480328148372742481224942795374747686617339401887523346728574251435049431828444154587752891085977411907065768348929886293185569314134123439138249255223882811798353523635355507011934403859855493590267821702141805901317819702013814348429485684467499747316526994621917767841471133705111141167581096761610551630260642118690293900812426237952207909690215719576634695679097850079826202368454281510042934195289142752681774518895439595460713727956809138414805411299490456860919071593749292704124357919027037468259952504991386580583045271137535543765490825291500772083368569118614140310814327609247422122836172594900256372910483842787041288655098003650822265601940780323068150352844376454887032967366022596489716424917899840442214638511997246793767036395060568276853509810502500097283840459118127433332938169032892461931459880623600226440382611118857879469849771611693714464930109058454566784983953078777726242320684331819950063184544036871600368669467155073280769116139050804010874445168574259035122863071120304258515817141533494580068334461959365291763872288297267600918629631467629166071888742466007205062215765270891958939232192909967586961704463760547395721249581700752053479496565917535365441275457051038831085499745424234902803241775103252477839625919912178192254818463276989285312884525436203296171011635766709108494238924916249830771997725172429689896716250750873672015524665992710993602282102312032653905628635060321957896434645348687894643509422329366123848289416045072279062305793110857795948231202724573761027323014229194780825212958961215320283452430244395979980121601149778605231179082504878766381822105780296970715195823099309802795744044546656978993013184726680680699677685540865124062769860847630144192672558115005511831134679706437441909097240204991905914913575936204161123182100091336980493436058032939874369664898927556246878077138831273772939962434045026006115150829309279318801568611582891024491220275727177589423679816714119605990310100922955268535570653883590442081763000165638480546720578179551844700381778565958857128571839372757676414649934845630739725512532289589025366032576724303722006021128506273456101129347964485012735707978837278009437386177904200578918995231912467132873397064408369543108630396731037345057396543318973306789939528915719879081578464112888217803970428454969015975451848851695911371957274809219790058865742315595562142766670227421811709212658409756639041357486024318400987852194401894091659112435052480565680108427306662064282972557094250328009129015416050803733766539089257691682310584399183062315492662665157363210551048257839602187313907868996100660054922882439826104778927925491527349967796243798331997422743158043300059136987169043050346269817181364846867394385833399491108859464314923099533866790971140253016956729700504757404843057301951862907427477122028653056655394460232038415351932363288883411164674398255909688958158089637012442096201486420571651886628423780926141704152558619017943073469650479263249604446866790907189864804054003157538212903981671346708172456541306606663212607713462964406320924308091910973384258645918098758443869026756809667445372882129749739793531618734397450724150562386227476341732062643852421674576937704591964377006654708212126229513611654326656771078281458767171112597496506863439705331927061745813533423043389000873341570470056467404485571933003007059141547296297551487079589573364253573195845488737100549191392509605204715472468930542364431577625484003499820323987034175447181108045837979347824468122914045620917958216712695672164491635324134115290448526037281952759913354417783323265627245307961737781009315594305935384548992796969895506786242165490299792339383611440812261915916888486534262774726442045332371610642778337431397262751774643334382987655461171921570881072015127482567066589184774085617896056517596181381189542316207544667556828946306229806502519252057780256930890952542207225720538917656465823476331984695323918002802043471461532889081008895174432899524417376978469283253480943488217057332963582921791417663865605553247768363888180164604553969131114844811832469457196615285869570992087221608920895525727201927708925951400150777263171082318875002165812388502734336898045665301109369446114729884307869989373188104702406878047992949647440534917365737513963184138385458133875474419634698589082934503938929982486618452571133022413279260672096075955165303165698303956666831250073542849778634670195552812563727432337343307078044910048375992660010761008670913613857207274239385856769221088696342678990775895328469209547786538984432403616435595984254184865524878933259537927161980476504686368359532727820038060622983169747947019719662601412340507397632924987948260785623372705892661111585344466596410093734283329986562390006556006592797626100844458493976879485748581314353235328952325719479789618105045894599276662326093637948755354912496043201061896104501893479140945397775018305194053950886507000724123648674061867915418028976120226893228456072922899677129435479624404325555354994925991885202040419916251252336160068354086218977645558997098780463695472241288636235611961430182456149294539497655672847970344367398420346611360232614101236785785196393170527136049646935576040212044543908566889536260000118736677947013067175467234055983980006200785355553601061147789193460371024955731354653268570056551976785974580944059658610041455323029201906758222254339930500833186853398514875985770399130331204401378626765548044456812802043356236910454181284810915593137224081438734139758009108211827363408950505680309969798522544770114319023442404024431657914813109267267521721493610836561164615805724626147861483064317741177414462211619439271953755370442782724367930483480643012947875703688794855057417598262177128163587348672530206260085738342562084671366382721028613651785958536264130243743702843131070831387557555760986467994540714436873793004401532967195685317263810645049224491296185434709902103456955901941367666271378332519547926894087265858315939329577646204209562866003543432437138935649832317791745739081401517951269804896146501653664087525879734819648672494387284111295929069911485406012699801364575998242794671206917335077230238090533017532545782901940101253421170745343158286311930716245978007863166048926734178529097383532848385368613537236776230971211213801283090894790718203954151962597427023543581055072481508372261326534177724771962838827709380849728835899133762537223596914318811115292476758162903462513240890394640631352130177939980908581360234403565681106728490025522686039870069745448609579280617461669301860337559061793977704569907684421997866171294514362525637514206630338566010918085764805238937653581453370109076842874931812472617156281035461865048585941094341397982522082012739311611142837960406896910182190241921698672948160820096043481330698265794452555608937321396908566049271513659375224590104436992599925470056001584004541867612937817567349227450276009945060225594615882428554488971039634490660537994695531985574718274395183506742199376285043034323096361050222420530229980085774043535746716803995175269505598063430950391150435037239644592513940627848045099843768274372555525972360587507503143509378947701354322872616431664227146467221718569945744646916236497276387847068850936354426350526157912015948967310102215406780802436864023213092480117134544416080766410936138643472860219934128727801820781017737781642224065556849764290889610816033927776954954308449341891200381874826597744816541386773819030616857453447131168418297521959302351725165027023751905063163541585738123066256927446776422838661026412532672617334064295620824561097194175382587978880076058596278027422053948746876901896329626783192669472353054962242345843480051630880330533709858191667079269342782454046340171809601686626110189204756078222546696557061380779145743832480685524153411316383980912285703164297603730139790726289676086921548934825271827353629178943780096545843133411729165413086362228342760057394786704050808285625569713776700327572448087820247230729990614118431305000033216605389433457407648309021042398975177035300851330363338356666472559809992055196919514996542565831239496618134173722316452620502130267559548711500660312244083007398468859184576585100580864986293922365379340644849576548485332676718224364351537000788233062226364720266911796554096715563711324801929247732024567310847882988372342315982678983252424913847848630550319153116501879739182932936051822838734525671191980993666265320340249723171906460190102142902282329138809850733815402347556762675231187527975795877858127771850390166933730219890020259577155895020370938786789395213852913901611454340870523594383442203738055290134697531923992856796291300920710191042231832711100124244156540684083192096814334659126617338580957589590506649322325086543192979661531870287712072098307530644579618070968660054279936413379008517813507709453459516439549586051528983882912401423321514987788095264960268138494910283849877492255054583427436453511088904100494279486515578120050388655751263540100521265100482741500667932603353955214879512758493850973023281297006568741810607534895974673168733478024208912825816908272147404403279983782666473502330803722959114881845420797508840630550609405657968767098284851151543580632274795452159486015039082561148668917113273321211911492879334522248855198216060731497381248969435411563007369845313394020802746503658293160189094789183671309826334302156964301082063058895154116890553674629781777925323087670257062310076295190719565005074303159493847124104834493048531847173809546165132828291401669079253372797773118834877387894481321544000845148588160365927645795038655311926182170505550985025319113695053485206905422800107641886608780598005990211952890134631532584225799231887723159448242969369008881000078587311060678028477654858240611850837201069615855560090206420316846394164808375866048331493961502193080264673712287576557349406181338231495646038060281226255121237135149291243939218996566210334430053628481563969327833315333426191805112234525982782020162325382770687580685792471083202834943109914101598726021007297779055534644045480560052932160181274727865599706833677102915806523674232961815336438465272441005698958914636156872509276532536605874971200680845874024254002654782855547509321230357781354620369256751938329281457669082261441818097705596291321067026637888652402772066603282826241583861487729421447726142778602344012177619357324316372545210225869037899642063831707266148960915775729881085779111859529937956032768364411247284328857530383461837387727668334066731629070754768827666058179583197535455010279773062682505748447093823801698515514922621545029292796710357563957542231362776456478109410730323555141523283979528159080056938912973890903596477054884780340533704678503954339841114642442193845114589863466646060608086257613286993634760075402200776460342766042068583116044472118444467280432946805994248782907091323357576097302584210902021333268443380453408080038317019747187877217702643612565176185581536613232378777526091791824652157941537974547272282970796770766035985841465614504725689861459750551867904743259340009313892415293332696868726086636957556015438212721267740574921047982091272161945085056915592826178812037287447420535962342244896951911454493390591356090950554161791067959199339197519282866527331425420328958843207609576002502400817813764924814528108369066876636977419824664855037213407233370090584403725843365141074655969601332486333796950471302322214307620672601336387988037056683882034731723424216126386885875554602682214378547238169505739746855610896053567813351036320549089674064100106903694550532068451664924018653472119617444048789075390528722007311651007212527707905012536195606550373794920150435038887476720796562838864475314242563326427364041203436780599789527127194684283910220709506953519332979747289446781230159928300473166539657537664851227312696660954909585854114680900746632723648828349650726527160907908503772458066476098955208901956420721205159507787786049284038340454126517760039436000203767723859539210211549297874409698267222920538929672284940260037568189306338290911688457423646925181993292609554989676704526585329745748936934305816516352453113886230973955880380251151944824673358048724636562710256890382564032961114381297268515646819685440274297164846924483459941348425401186815373438168735596925392637467250592814009684710757736930803968217552139568239788397293566134620290351027675155534476251708601503781729196798447828376739243661543332590313149195250426502692175740378859016022631601723342579215523355664390370254327505030218375483579363249705848329695994590288861385860449196386131840325163137516951812855242641237725205279610147895248291800964160598028100756108715438627989327666752986182002289449865734944679177832151720329829989917986056324429071814905408405787005359990940730406727190266723844403321590989295753939646719890204739911417505448351781142304176890212105241456785923059205036571393571882692155743076520960386076177096350065613611000386342585672634548506504998124921436362753332525567158473128970502522851224116861414291522989741950453336784016351552850255982525705160120360035673437232189494242385673178342824719493580727399306336353545380634278077770817632797138369706305118660833222119413653551279486976180543886312695862065353359314458159090639921512092717161221353175925049901425550157071261544904225236212474596952151766053950220486403278383862419162215972909094397499862463175295061118319172765185621972118608072295479965613774506391130552221512322856248993790568560353155640194434989995773993686627329746496435903293568171907146466645933206305227017971823926477836478943594564228949930490766349453965213790330691895393140984507307383499785582295915760583188796668893507622920717557951461316053505184646450377405652962132551383350409896879460002912073904683341763666718747951755945454620167844701543096618122833904570160645166742282785495807229459653532800860053010956028090821165770966921542980563231905623997633516567486295717970072845086335812678787846615381735526692591043855287424856641444039133115631752608585784371688084407061044655883294246354559198705352174711361597875056176910826218494310860439218909474218120627992297019928971141858946137174261321016279423403419727800942426668116827997823834168977493680358522491701550847044977254788227397501071133918762000059249368922048359843154487124948211299549557589104719752456551376037531028821781836809439311609126454939337559204215067068807338221128377902818616145827274896609553335699925657889888414710105991962627190412675202803435651307357847445057413456400114993821492883803038338542168781910482793638567772617509419927224758743453456853911923908483830707705352652925561129796654868423659578964132941255087617859673122727587763427442132455133024784144072944573581979867916696998698469473864826761565622209969052171045219979843761917741718842460848933992273820065041749158681549822116314869513239733881991599740043354576523563251871683693809953015983891652080639939356426127479852156418577726608099813406000070200115386629570756146129730807499688743037570434164222391556142858264623404820365984836249651970807814624497234179934644248947235434988373971225429677795811152767062422686042157912470597088014730489875736003759393976006154608419080381407899742372594967725030427869562452286393744121768433858087506526213090273199316502766568231096842615657139605037514127433241650197812542506001826088252701406598825936704110235224279625015311075801040236147479154828975786964544228287783948453955064413449785477374849477572813591716574915670863476222880640025196270505467632138120125591358349533603276742905422896605615723253493197244621282500880228789909381056317980463286651469931743747763097087097016655832831082702458598587418426322141987660404247186545114048280657672020463932736130514916333472288620015330551762979916387852952146980064775127459740841067969264688602925880229748668737867526827180333584563614667364642806118477815746968309804199696612768644353508408879418491071010635947844255873592690542585882007425459967672816080250958499599202865239829370054109344117920916649344191464386453492446745955334162832146839627392959908059183801269906970623743426407183276489900832169280499225055553664961049977454583163404599144539182473780622416191388564075925863972151614404218441343716328392160540709191437212499979292915835214619234467126322016672487667125985374061100871298273480293190806601189263469183903935836958054332628843652406257394106537172776793809080680145916815881268266260743983147409329375390674414885375987945362462633093692687040474004748807015820789292989126464812320974298018331929043285261031983550834125634380740437287343058760788262289791860690886655088149295548877783293447663467326606857204558155330191221861801989682232850943640747565929390323093544557100725933099086908304156284889487653569089321092304181082485936523227973109858058062872338796583162038195094237650601570051129584942073401458296672360534395230120987703903378042761980329408264023566619376853182603927380823406777868510441986997293311602697314400452642823702185833286193336319720150640163598020944696417345444665913042148933639818577284410312620993423168424932409308534865077197236523994375276821464890186521079125340032342786936454482581596081000543505358197768259723432209464695215164513025552248761028693842253388952919482148095962840082255821257497414173314202013960725070933227653523173416924257907709293278367641175214341544178086818338936028332814771672106627938979090395748249402269549108581623638083679444590820479041087651020092075598628061993072835682047301724882801464588978495924764017478587873105679456124695588185417510562327742882442168958306524083240030741854288321923917401279739198831682130069890729550285203794092588779243927320571348844842759470042599601887703629965093371038026486919973932506480144032831028776443651994112323563076059683721392996240456624152673802563540037417186014475256557505258468367487181760408305712502476048969840799687142122850055921102418644000586523185305588425419023110439143862004194798894206034493328551176298424193229970260972715216397841951272402075352418334221278604633092750469553570422592068642698637691809772803386877161046613048766608859849043304099722096711171146324025054319298546582194560720952423981681705046893973412096967918753936980366637438543926103216582884655313612567317898219764384042421966330953027714939023125179588775227292460220775459444324747532947987389197883164984585157370294004646694697244373378546916947287890176442217162036974278065945770632712685719691896602519455924427383621492572782419411777036783463590428832092528225185223973580923735627544562001851764039632269205600347840003492724646157487581754133916476991037514324423608346024678570284694765370203566846391352460809099610313187042794766015206786497777512161046140315214811585892673639290068141883975096342092471959336918088271980048145535676613086119679195503631897230930576473018881007878088847679062157283693758947777884719087904405537483870752322499893799253176982905817987533346502153778585454101542957079006723212557226070606087449309047364082214191860543874011743554615228010867092281587867322744472200372477512022795026858030266925262460654919757338128802613220180100410680870945902601683144626464406469928386284959729067101867077719547500752340057079351150496640437984587097720588676762179367585520208781735811983493754013485043001086988878458372901166857779537602396288706376276255631846329323732476447416359803223407958430674910468334013272255490484433293574868445258582681487682348920648117543695926577546518179802032435486664055770244630280827581165881704014580267030156620758009290816022752525599760122025200877070028536827462689545833827465872711247618069623641677892328507771725460989918166161593904964471268162337695911669409079715793304672148629352654871494022028725882734792690089564562216659160881220025212842565222218434883872400682077200300410483784962095311810838419891067132233558808295019960109163876722334405941605335664274930931010528700649709111912654106577462673917071578510267792692123674876724908823009016839927257712385188724929703630140178849420524018479978889999712626732061830707276374467080605938265608743626048528382150105484259088288488826298208765367498397789705588377755237180863022516405076686050009256663382867371728255935332570755758037077199028104597472461945131798533773735734440747194174243325447154898888056961147637199406534897917873310369315640083350569110996211686771109245936520565973598285839204967045797682349962905821943506528279582219200305671746797479446876531905284531252268540510572205926776904511874676976555950560384649235993331148939573634377043949779352586872215970133614263959791055719507156834997940732495735482443723563347945918784625462191063433153232630090599512014755615377257777036409982301667465375329793407317838081122046996674849131513814535400830388081730497374575644609796316596492739568424599135731166337686077473590002362648634933478865044361122394753268966607706894835566775335216874500525401830299312074948106907524171366668880831603379961215740771207471792704894211983568070351896461629391048422901661160108732849191444727944593338751211498334683935929716415337237083009501092222960451221414818069630601692135666610086912609128166755061590197438214822745088630406416642415769349768785746839570216680970147975058344286971040039363235896702451619225298579026253402524894432124314188455252158693287689846738165307328043459823254139289651815554845562921765874064613022707962134663742232851299756209989813365881278660280222741329016674955528330218970785902918657470628925915002489335006065982484222698357339304931875802818835551470036581473033171400044342982446619595124056664714417629776560727232518459361757264289708888497026601487472312844292664247672253648990731653672165249163577483723635907454936821811299388367694405860084136884730895176455918474317904893924657480468104241141413260116392217314319237987481594352108620766209559939741010120607998640202368853084631528540400314339936690211873090235219728452181182587306535578752924958222636838943176186129805200822949697972901513793385077509602040618369323872973915480566112034713825982254363589306792929645698322428046534811286916351719816763772504430053539595009367713287997746517879316028236552912687521936198773848909154998662916343779209227474048154497832779722294403038977264662348377270714578419371353632359962001944192039384072259691405854758633259710286545902916528849196130817318379664931539427742856461052527756235662514749308214520091045919840573181330652062107516670650035318103796078363181564390983171084267734239064750621143317023851431794268756499357402999968965178851983336597999349050636896304449757852207249369473404962066598634708845140020020230016288879304289222565875386223813815859588151751187527525099568909370496932004981207532972571072320215742576048129737424913832514308479956134412456648405453699108387238415397300320086671814170460909952089042609525701304650872234498703900436853790926242300040330721609136394545011192486349664025870614247191570685595224933697826390870335198242054550530523683523299792828613806524172367517838837687246907728690587254234538871182834544892353337859185063318976891049042486357084915609581732833662178633485198431374675291128236911182406026296192308883459889472049557759979305336092132055445682546799535688907945792301175820823812199321201116655306903931984285601022075578116021149710828355126014134690866883926923539765870113326934281756099720863302710993432738224895122369263534018810850518096675554379891635009049141320580251019149627321880054619021544178994467616203814217575505457421468097587311506668607824599220618105934762518270049282692784595493486712070713284260973004076412163486895425530561488216510987729661645096382983203469024018061343745287303345520189735112230022850030072137643547422327012744149886275297022929638357629449138708377571137179718016527957672681907641416501308496131041183021851957447732183026638075384071800215261157958865138600399117106106265186364177560041278488526677842556229468481658933705273089967997286801801642499299494183538304545739001404664446428105905872337249533441820181758306032313444206719378581254403110798287792847280544148878612712183792469598716356955711946739556846699402628364552579178737428550793260661413527980536379404062314003402731567506596647232395897036959599991747094677752305372294961932646255246388871402099984668283714809230824584198505103965125274390919151807896905030406055235543403621369552779949905871934948328018233828457863142155859701908007576988412881950182448728314184646941547493845814714815431677159842267172883625941153901799229365370261290115420680948979531442128433990401400435909535954220438961652191259777495555302074768040306904159740554986127076134306668643428624766543168498787402625255871974484089920553310424746266876506845962243978285416176689464915839748805820229523466358302455758137228746121794362428467491735576595390457635983672401961740146591508711807325877335168981448338805121211225933194138239031114166879238659285475399521593073084841531790291507631421279515691747311774152694999917754928160371792653270093564242707765516034641069959117334924982017109789041781748389007506384857821495309778121461883560537136335585723647075309732127913983353338965265634922330971725378977320334296220425146552055241348217208262717095887903372000901631894044291053986664919692655683809784801906027388481655968196101725400203081401532856563261962407562730196745915034711604089541087783459515278978216117724176980671073780918429507793874775662820946558822417593976925550504073426376061925248911052691332087981227062084347676065611294176465540716690655402415835026187040876970945737148229589489658497359424660339296239050594694730847150497664898165621624732078760211778926420514234902244780193588336122592702421813610757408986227333750485182475061452787932327071287270267037474835530337579728239144443796766869832292630814404311645404038035393416375419635486389155599283224699629965907714224276987519418939854493701755382053968925649159612016015563488778662225945557531737707236986531716335363773744551602173771662711921739757773093290210776124792404227165879113470428291349216026534233885236555686222655809393757761724260647812894402694393057736811737149584420208513493438958006253849199132795391099859312575000382202442667027070504348557568149027273900156229808295946703134791925464429336110056316034546101357019952627384800255694306555708570511074141988614804563286862179929870382484647460581930955289863519077719875379929339810051268081254631686143343158948132633382087965547881684767087161324379061338328201306668539310584042192333207115636876722970417910683967896760341381501997690244097963916308924164378847431323794344394356568097095143584445742089775510304711271721068756288171150101797920968481208656248953292664559486139029502455540358609627841245975485066884127415932305906830306908115199230742248502349063484416606761691252320227487688046130906858162904066953660552886871007778183657117485480635355062177617117533883880989006292340641164183762223311081251386148166312801945923731344342920774776670402143685915207061777092552220529860699970984124890793827549668041111720824283959635096554741348250737339593281653887278278406883529282255385584003950452692037442609723118233432418208835998331783618843163051873200191805655700609666808509723068410692760806528155412348574283665395862062062728349020494241989135880086735124815597549407034514973684852883457197196426810670214764216354267436124747401178567147936673613988007643289899041540793272347151719893761668710835085182483519036069789180381085208552128082006196284145076948536929789581757197213028606697335421564650968409554883498162166040973555164177320800920796584057762303181449719818388656101174829806422072501843020916091553582260986048024555417512754766772683928077614743198814864973252416890960922561057683067291686369756998642067037138136602166075343663717831998343230584404900512455126495396555949214384195031889851456978042506932766381900857169881877121068137760679338162872075528370256762120688920470297585666036947816735913926352906436742538468209761462944149613407504932159628805989521562183430570906015498805148939171390766638219834623460175906433409327949442778691355724811188528316917361437071121300702501522275703660652081366919181080825971311721498399522655442540017381830646020742877006148778344851810519045296931439307957255506750234526054394973171639449684206483526272523149068563831862876072645168245563492255680087183247916774374191736458802683510327374163465193010846320342754303469758984983358874198578559288962639760435048557798837218209167042126269507762922023879387174739038069102800592857644162476847012314790332940102587666162799368612558682120578698490339536268315367060913262669099900787462220628071506495420881774725515807989636614961951364242475904474421351929957916519274314515082261857493631789511719638221481345854233461472890369416184471347935485634844664677874959468595991244146236916638274628129870368748195040094565275279896409021740458495036217999882590711284104719286429657110296718727981308929617991898259854017361934621686913773731144577312229524941262604855523359387337932953071283558856349105932477971305405128862792026949025086936347146167707559712193944401091444742179866668634478257499626648798809903800210607368078241632807772102348624240560824557006603559645492011382141816868524821123012711558342387061204271647153612681452418480276514198722337689698538520647060040486342393420779422284621594398295520315418056112528335291893405291062054751826721540662317890956634546021654701441371042977407828748683870193772181653600733340754979577104283803085041594274777420771781286671833480165532850669512985905854373978546440194959872528455851813624498556190553592754007831652554211958401028515914996321323899792037663514918186969014808284011874746338223039055302735759158301398902939651686103838577613312690620241870033428312830943085832991153230650164277655019434699305580084466926314255134483915656973158808812979128743430359416003221223192699155170080418893773830534666348264571504802423971459029155516924107035759168205292232105556927154363962359977241141176374435406192568555330831330549575613131761202986114363444756819398939462243827601069805145121618781194607707218191147368198856024141475029716555310447760546365287856485017577648460238146267623294242683130872334964351613439783747252654222090599041664023043431379632115660749964303065713472415855417015254805732140492179285300825972413750892900868899169456939992377893323627846447462654837195813490212816139298790032548909916387996752523461690377105801042679555316153869731804944839218494719044247645722564001594043659780794354694226733840157438795195156997908698459538341232864605301004852538428113935632723175713557099800034383299001942193574471384079036600393072237888205896822538665988744797730140779032740344776839579724194022296777687384906811272535016160942948203288855391536783191117227716368075876729524215027026451019469730129799709980265819951244636697166885685453457019948413101305277616092423223662454853384478144497657156618776414927307255586432799073771269392187620460735277668146622162289965549537095970629295461587739342091101099341884375746386552870317002806987758420507540496372519575349655550563711282857919309980826760726462368222633997207079739623690052484444164413329508718799566231460390145366924010635617504037477055509444761451790594594631174663689372145585437725087744377322407451661176985061087543154421417097464650242086265427261460625522301789716267436114430459744884961755025014296090422621610557567656355206682030455073209762372473403105920228611751738584313244725351039891644356550593730392407769128804872443897519939626383187556959566387178120241977577603156451312232817877516889292237864469004827039887421710406545245140942989518649132105314279216461430706412588114117571253863199087407902030715195741774160069886871952886792325009946647105080218660127316689172912942936520440818131109671502721074234904432701221281988397259854087216981222159171380705613283553166825406049923256276041751155705990375450214731143114145877318931816911898036825351666958400966744750603198231422142223581779982252599130815774599390162642959934813270481361516078652716004527622428507445644344677897397445045415380413413966082900064658452258364145774171409882334708550439603967963035954125238333600678149706003219235480696012133583788482480730485800588192518427650564812907127427171380826288038151203982826618866827753136812535656446998427619775251057005166070250562999357293826526082053834961353434387899529045279180067161227958124939308009682654840244111097456309844006998972446255498496811169972044698868226339804247406232270811864830145095052135229617461137533343779804998670637946706336612121229202370810129891356595915490968892796477196608003357775732544469549455067069474876212201306332827312998175038024877831682751391866415133395218690602728595783863270892492406884839901535298244183382299922646890354317542543384042994655293058433871754201402022127064976300723614049645276590344761583101934338887639544641418104890304161209373595411106251122086262606899397971685342168678662745624659449214824757842766279022619280868701976927664922430909421840103229595321997589677785357106231714081020751660179373135655252036129411235188968876668157982495240135331006044616834199629044562923360314024945200097899774140651731937081816401662783041769004041942277066029366273874345277588213992545001110329353283682258607196903203810008447517957184531161926271475284532642395554778351263316467503708158633807558336618409059941707297307731124175500427368568943487909218419646113462828191620328292910911866443293244756025035632249356295375489817550841517872274933209447949038699846125844311294483723153297702175753862419707007281938211888416749474761968682451258444486809013106941301598410008413014490712114178615769962676884934933697545172995112700816331148585592888871783998851146780954133394262034737185703675597075159345948936531557243454626607210323787046464073169012931521754867580360503991475738876556376712179828307585190844754249970801902324260737574609354958113704033405725665323029306638354179870014070394735198490354691662965221406462241468595835873249405524529463178913728971902576997594482439109322916995871966311905323576893155173836436606110308073844063600630685053576100009217169673537026798789472969443629038821811108387141709443589439862729161456739958233648386391173853617764340609064115629550213905487028618880984526790501941138278410323208986576706028182990400029634224884717622137378791229713734441969649519755172300668194239455566473563778399882006151907462238379413737027810237772682319093969822018092715048101979724466261314557719252944610200853968101298435451434362502335989050341899406529972121229371943356923839774787108211330596880725675537928736707405641211599984955387053238029717239351445087923558364590198574211770184914213373244700655167238954327585264126455934792355702621706326995013948695211849002094521514579912323126615067159734324533167999812969461506916657865404265650747732107942233100081609408851678196953972864553184953389594962011434952886953929047615158499563279714278504597209709467441779202799963744757300751308518144627297393260284005276737692135950982161710040136607810137788008835182339716146525016147866081419542994547828873079618919582241083467946489090052937441038417691536813450712464315586107772212215774830531266659403069129703046292177765022137264377111200147172432332716270168611886327546434391623926514773005818887225121679583326103756604633149578640352809602265550877842795347490781109200271752995809877642925330545843455586597643374195473646949763622337244738506699516418390265203588735705948571250414672931854571539259220592356987174857092692928805697313795856808674998752959869058020891985256327971271058547917771152488762849138356656090183073943122728112290449038964984715638054592347774120492784207373255256794969701783412888191361543910747538778264798085214605031424374491948676439831088292781176914476464723615974457903293745699110177633680857718974281333833201785682376747024965154280738862350696598174898286968701030874113570086434146201645404925539907573115181899059118542196208334921278425453800062481389514795800764255288895332821660328781968026251397355282569957269914110550080486440894415490211224496141018966140280015282619140898263115638770919692270022265249339289608224458420549978891982173571279285649368473053419635191401672603514580743981326190449620591014234545083186517967581696336828803403708980726621888062065261457279646632439797810945325122948524845639252632005784684423919657591852215869011908414530378102200163085694039268723453594710072713548315863928980257196224488638318892461221763576702939021359222878816836385390481032471911156224394855992347071654113145297576502606843123789109331255122390162627306180189294117462756863182613188898875031669520488181683925942813840384153126055318082134245986499391365237993498342954558777399191687740564045122249920158820462044851276339657799808252281658898696164316442762705216913562423801914155820385664732475608692121342283340887444441129082880032762830540576099467352082690056220973141351368631922425128096705256466988515938923640068661747516989651827348418349641829028128270494639100107959811669521037062777370515401103843257608042926425906706094721796474098717708575418752405469085735222945007263710133849294441130863187320777037267059163827323124807233538339914886397344216803788735831817428037422095814146452090050952841709004146450694475707632239943568347588598926315471977734689802983630685940388982521393100436229572332291876327025175946852807108003963807089176125102372858620763197392676992752839772974130117893018319766860998644883563309739271312584412347608542344159447503880459349414557663962911702998745717948645888001296407893889195525257585527104847508197371916920244546310451106056174058911299545591623298721199569962639689009516050970417272840361464839396167477543577510633452120694880801421806147513974117731838614898701720011699374406024722854670844417880036199375828934560842937790048732799489346856377566286355420722400756179079864221163944174374378129561634853806212253088760691332741903332358323445276185486495111219979679432051568012030648093013369780501197992859970820637498176766766717222946495378514720561959041347514744128762066980091765391457308148601757755454046536529741318413412700719083082077812821614781476157014905689895841686790256656816681802695713998024446946928975888914924725726554661910759941636734576180190738766426682591549932367612971475228065857853992864214702673909893924275687758252397170954724030099110392691010508405192025860199712664251180753544021961304714029704716083912982571382233464176684106870542788036086271605778481833486609118107318812495365491682622646816268397937127338719755636018320689436301093725037695231027601933918519600936635912994782765613143950085200247230917099760997297013878970874074611820376077624373308796409245748584589908546140012718057001736454026050104269023710919284431464576935106929920905641559404707898100244718400286911664429297234242036824889577491098191439910524536957425868849122941989854476342701884922437391628023911170799501065743412274969194300928857925346107703293042372709328208197542538125548632538039993825257425966023863910339921541355713711933838287907196535283791541607619894397000389632406831304874164309748139640639601834365494421032721435162941063632792039368987405443087395197020817125050132914025493654310081306099417910156149986396874056257653351775388673361340074552643993568999257260497338541340435670050188190624960839946368441200767278857858303216131135389163783991116458673734304779237094994518738073645812851728736815984294052941075587379102304378350359809791845125416628239629558371100425327743369164870625736748646008454234848462151882728953557865795475041608307430044901700715224558541210870486365934745358466671329129447631388527254328444488820799240788104133690996849627834005578466946938085778814921139243157123896384503624384523524747959409700881833607290003955943722212787990745133062844335952226529769011066281943347246885671656866562433034561392347836268021383121652660121320910843163448227460404014028474272952659217567234702465088020602058133058829799218096801980967693846114522355505040554279170497165014494477641403048246277258631517524857604583857250844116013469454182275784609922240933129089164400193213295420460517572398377463772160192770883003179685107890345473445608062073130956039295259326334119329202508194298804833822589652280963509323599008152402626536408080010417258098560156540183890671634854020949218053556158144621479356197120657747227145095035339657590421265910913576183328723890404905130255323360295221734556202660282167993854225691182999900570149464580777528895315570496259610230501556159335562440040481100059957868862379494196558195016392078435787030213196417929635823907163452706114565282170443946207783479519289319226741072555786914939082098636761964852708537783433617581627460854930015315779524282951715836161185181806750881989448652294475315716642675916456056668621978030263715660395094008753426751370551291976331081725753903000068003739281807635620357251870844629608224692992159730805786995243330336237392285068162698327674834963017706262413353862789462190364724361952950799693061929976325924553471970947935250579760344096612234695763195090674866354787893507741077421499997339089550247330099043582255423991076633736348882584401005226138279124935342055411458767810805946325716073025530866852324965464725621502941971983761593154820326826948203326690238652536722588790324453573281980313679995252923507787139978903175340997543169965073223212906451542764890042046877965225635433611520308710264516151288414981978927958099299333003790678917132693237140600043136991592031596654726581981963750030638565131420443131006110116069907391160112527574240428302099905849719759559828293124685472908105702488080671784105272933106734772815275201132757580918931115915055782049747005682957013986513557047836249241856941236702749871038112878338556417721648822333735920199472823695972047859197632083090672545829709941017480013627695848532191544370196216599929583461028021023098621977971365473211228691903441717576801023548587146028782154905894645200515670976787941842211621890495132361019859699248513295741736131778669210108765900691635298832265430485174054477374173343781156742731496944493099788518397757730645905736126290773197561431349473974839365499194247177973924574263989148104847521510454753629297824085815084987682925764846454246952266260881786792313590101405924834520566475089320247344949658168250922276450497597591430300821399729596021219498448740764543777718052434762354856051101953791880119356190133854344710482277395300592345957141023537892665713197578234311997724626527537741395345053079200567014607320449497378291780800776620314133906739649082684772246970230925339127965856910230782296632280182328451794540288467886508824783912982997982657099622319202329160554890750098775121821771044188924977744087213497263527119669789483215421097158632838946449478748951004034687020397144088307794297113861758033977490953095743364461069826024143343969062538692589496606473969404755149821484828042926270659314939210065643424108351893843489410713951787799569339085402936848635390280517918915320343449660733202740386969123200003918440965977792719884273596403747437900050446371243289826615763905439083267902628104017467790381141579690045807015718577487000069920662384731218756950598743679528197153935977487876514670379557469691593996925951806136271328177244839252398456956304389376729148633828538341275907137395314094354222182627311216492927166880335324045573501002749658504136510761275430616261509324231574356733621505891431877665894462389791225290147517233211790767048150867305985100577622880568194845684814005434541262016812874386553131182113744628613618635369000486701949212361298665993214664840803513569065369312587237321114123178038276978357214807915506502844150893275605619671204832111920073773037946890837150027738530557806453635295421213141091990164370025835136899211691611739028840977718472420263808862806370510279472885502939569050047684475494702425163721943079514674101088180045268687117995444664813231434374240591139284714069037414384798001581066559707495878283173693777613117694219521944188312363374337758384729294399878047664691756528949404335361359659449440808075119866766867820330388292636085310105599677336388962468818480591123683851762118724255396421441884772960867496241567232941129132081368328577953434951406757841748396108980749448964094323870345998945983858238915490924044333115914604116474071172256731672455033614315130946669474740141193279907279636195246685535279425007299201918836983106752117541684845298011558511148273530390960943437364627760136366897175088701620002691778759409818504424853460719291761777093352581923425484912906183648962662446291641618529764514628516714235072950428539674619705127090130876328921270133082909738620088882288117722265572100601489702328063514337634135970125346388461543915411888446429736632129196953819023256936404838724716220325440778522287379303274268524898102008615416089782649126284811275279355934750819894581269290631214044229535787717563540447615512828350050081086185369538451705042935340851347259335829268397615787445827816352829817499816317460864207801056780622481545537582057628566843756244077406048667305162413866422563278499550223870406396484586056909307362620944383201528752661130303932898046299006792263720183995532260856913103537998129097998070393648864108115293381949295518398853059140569813192950679419597683936762406319556819013039606893678022956072566080617747145236950327031027297491348762993339471086322120277564838234568290088351158034726581858422202203698027594387556166161825505493614375289814563298220400364494455117032456396776948418639924649290422428038969051189676296981871643887616670175663262219422491266897497763716240755428332856541619382024117495439101620110116954117506716335773494662193461191183098861799271404277104127805657175956185456053487356648968924566209053347420726462285682082383527920114135739434285720540583331306210576770182696220566023812335676785509210347412858432538034447120540540049653335181993445360088761985336504105177561473302373026807642225881903199493171238513052292093788979790996001755022194058566362308078534953988029236737920297275919621730878947927610712673118287315930377348243069703208475905830880708393954064987935670030340027960548628714170100358301455649408371987505839622495868203934199156692178748671203322780101523744639433465066613117481587209285739359992573628651293650099034849772550403076835589219492360532220226530971708821933025393134874831203590979960400506626046665095764482373141318070323501037220696422132824859596375447645344886857728479883970653263451369980582467711594487229281237968829373797202078144082752826172526532950805680209029340673600341327012799706949735743521541745516228448333812917338788991798669279824725691063390669833620612400530146372458592721311296176226150297307897022067741660607886084685045948151965479921599276369684385294450989561412503312480837863785191723996354696614835407749109890317071224766841249386327283915155414734441645012372961010446703180735347474108889976534373048468968187279617584672586122663428912203271871766224217977938049042160728117979222068390460988330827234157940261648934161428313346326188660551447697907211164134835912426740077159671926588697624624635817554292155516208876238734249865044615100074437022263293072841451501635649640932001537153175577808461747419979425697567536322656413486788817045885026890611660243204711809516680513456776665236835022512045897082913300714952980366195061627746158670546614390487347305127086281155946317956369964514295935480883177440462326109734731943468296535293871887425340120525193730202783544219328804622006623789831588678206929352269664323158809960709397207677912512818990490736514186772440317971117558202766910153271123218712052397054640616619631038685756270562469628541035736840819337721305947754099307013643347105908536369169779572445232435911820133468404990499353284547106087632562901592650237640358497024921060063302467438828190138079322123228355424813291838569736209969392959283590620204761475628108107917964790876171547620603408938220355498798535451095754436426602082365114176446544963292185647815119140553360654112532685463769419531992475439393133725186233282636562884030221966916127078436550032003801602256822703530922024217780843694035925113819956134373246067757369205428483098629303113874648937875963334154209095902855821970081788192694240530671958897268811513981271461079556407953088707521572781702166580103919737821535556479431716519049561725003516024183495947777921745095562456373625486451516185548434398760583840099841496680123827710957634597695309398718624950481742457242206545916711278035608059991920630075853216321210641226382422421911557020166950873711604022689704246208318979853021306111333220625070363052463140748672355602613601904016794486325933962497664381620038194154617209375202429436441797450715539605145577639036579547985653672746390036700647385017892118222797683499161619396560771553497133269040743739083395066575284270775197556192315097926464585728314161818512556146080535282172713267399238547586690366681886510271719815940950366381030968045598566564090721320178389396635819255114688039525031470538627387388416571846889796082743533754189739259680318779178984303214986966606575174929485247912299420969508689422731373153818659988498358001432892318655266113550753163908407023378386848723470235270880957484884721008483783642193724100993948289255140647040904581895363002614526893118766425918169977879064383149508972208689042423781649037612678130966435276782504774333492829295062483499072742614775648455636925702407349383032226189307942961554399765223629662772994414823294027251565747888636145068791574033234650831585925365596019050405867938171563439608385360939543214094890507017032790861526814005371574674545595289965227270534381508901371322664350943932512293330493513197313227377059583171257551574559662701945060672484676990193591214226722967627082048191004940751291806687957302231388056690567437711860456932122910338238967975867016905085450554898067687753780719540792157607419672607232397519329172450352456356343802451688186485896686888898771128229317358993686505836754546827387418860190885211902764024081262723979691760452792598441642177510556273902480022724787277265369349185138534888205767082530428736940117576091032670022175606416921414381359091046160368942338822429969242695041234417882392214422559044471819821785667872569095412361148545070825154912524681965581999353483759664585119724487500006000279790796294831742043035384264446690723247562250000557811323222665500082954156390817547139418324159373735849138442306560401796386327377199896853321217239872354671752412312622592054763602137005976261547396559162624909118578015931834692774794593501113929046435243391746451086284773493016747888766833102242270241009015888213726218920833294777499344863266251582004086243753558777318325445254619389673904750987010868799031974927995212434851006428988656447587474509730511995744137821071646990081664958251230610868449113526357723943100051198270106265258638384497092269639082568761989413854526060898926313895500583274354225271667099886634145677362435682235943620071001749492177257468415644634242083669569594849908302829275771115160196944475615482722185572310737438437228621093394483170033747479806900230662675564106085077340497664837278404793611049112359867709770016445241300442682155294948096298345808438142200880835626835066425196960808873936732849584961820167391579913729834267227747261563343415636820137783530558817510470859317034604205849966081007712929246154854188527109970120109639573069156696714593870712198408752254676769553961166100613770261508918264465223593274234680535633277454397388793321883918306165420097552815933209221458758480843666334495048840251029752944553109469871156211399144422332731777634878313886176827151309131028505450699167224022512004952566130865548927155981121403804553591103014586124818127790806537080228949221228995668858127932205197972611176602248856370525909242583104027470597251872231585447675177341991038646581234670625282377596530233619359162969864006669791450019406532656641912626112285362253328595218101212380422491644227099884401461843145042673392596352743007119854700494957493506691283618112447982754982968969601183994497208889173023922766203003690878196946794283505827523380061752891634917039208435039679591191985414472473139239399019574530769453455466012336809040808079341152361808549570990136881494722210744479501079296389675221254102256560343501698411760234139309724890984144596879030943908254627398083086880578481545790245296765249971352998518749436886742841939133922399056119967189768587856666596977827814891857964169497544299194726745812450530892856730154141736561744356720223125566014285681598984901476166463726171171008383358541147386256261321008526454153010167530026489494438702827001769709079721079297072753643215148304970830723583944486657804503030550378901610658415012182341252287145928669374784487846972229187980193335781258199103051241713778910460345417452408247373859999439115682536528630634245122296138119353652231562079917522385633777348170011318596164110857064642368104299856681624535417067276477581127685156602596977740532271431083867758256039237183090313966654993002472723297403020268671818393427902610444565223037641333221992025291065396987029703537331508796556805473714708393459435324027041032257232317552974076531138760516574495253384331489597991210792946903877588863303994043842225925180411210549400616406260792560983089527669328163166575220859030104294196831530667426276517298442588310280465603472895742900271792138402570915939834529784700034345332435398016138681991201820353301910461102982557282870063217590192562041842449889394176301920819147484299110962336771662890644820029909073045808651582068790735429549285125272335891363952612648377017866637795292197679297817261393421838231994544815224709347187967244580206677043656894724944284293572418042990741981569654561713531047321996546809386033904772006930817704679673025469149002814513130323482426234815764359950758111397605766685955302550466367999201659839248216434991673341100991532866684102945844570612422276287856047872251217452197058422727582557140402488305511635591628996927941616610387743093235972493132231814808742541868102575131784102355579821875482467873263050198041069484937658899160037453513077436669887702139895303145898055115838890929784119678680909515112588756526630406993424798809999583010234720126699334749960913920668271426190869471868635283554874957062174749814843911322738602341774845591809848783981007152508710367776299094304086154158051772556843374305277685066026278877342623524534529687915436178623886890607856118692428152864151397222798495459910614940040655534138005645097713076024495787330867783265685042819729571965010549789579765142979159767338224740790612373463180239751984105371168751380894216774187980736804117578146813835761053965095549344039154298156515549511604770131034712559638255857306756111279383213132686417196521456449720719161442958747489094492040297658985145633585104178077380212554922740693049592759422890563923791156952712344266570874665907094195446252454400521190006071014734247941364926446689874440958040675042648922503180944650820707854569059848298471573688677957035692758975738185200322569247523157624943439113514519224433837403602508113755977988762259518597490991219500135458707811305230765581881867108894406540938580761631620203733190388685397885560881171184044976630960174318619929990226444243808766887035751575848986557661128289772114111052145637466461425469624479947389681175734247900350646417429668053258926731383927897477286009094261180145140814001876399438396305526499688000938671967985178813363116614295124342814914035035878617022901576225403323605984965495968454973632391494795206771190865315692620490118434662891953681393751661964873399924583371617330241215994961290831334426952442331006107939938537923557367306345356377612873275811234018754834518757106747688983945546681811362436115600072683426369451683574198480452827091167204134015833595804153508452116063577948261735478619950942489393795633821295865051250950017872400454015129255439808195786884306187310175681579043548919816228673243630111210713853939984968250865693039629943813665250662605079443341479374412364081426490406383601156860910203291844347037645333031623990318754906544903006546593018949363800896281804107372772264731016916502006363392384472416442793747720186846574054878445922088951093244999676539420039688323386793923644183714342991598220931458000351754860951272774266235202346618596647571856122272074209746857849172609577357714931349650113217996507962842964741830683516084735466471676769711660804550677481648360278253328292590733299335279990758153149561850343026594130083746402733063672122764939215829473275843402052924322291607624314951921710085778332632523037667955949019953864036893934773519425552626366121642397195632095406984237675457317180389504020316228597540592014653595100725284012317140723110860547334926207214915682032677573353200999385998523459459393148133753641394166534262199502089457301991975021874566251263349852609255805997643140400584655243957217639444470863447543275639123929241541198636496039533759876894145016264984695915556815622289803001055286999603190474612371244051024188814319691099302816648855770894755384831002453242303141775486911193184517126646771258442653209825788462369022204669150486786690007797253951565906045107445924978771067441489290861775553742941382788230889693457237023018024923983716586187012268073528321608893898435420421826383308754677985947555222669576466341688578850513814684074725168810658501608883442191902504361722669825302432033950128104831179151288203947791863920932747329690865414336428836969476157109187761460344686348395952469477169556993223640521714090507330540451669410433989191523155615007133705447598609936302385912239453516502172155005259617064023284368861019634453926029861395276665983239518146772340108819989351960585946177723975385769078123440795931093016173146943074467197822245749522466934801633530365211052670467616773676990465274919819971936513793718795188468467444689398257450477574993620668878776718780681802460859044471577159944359988696297519126411426329232839933211710178629318220551176411768919672401851668586642776335912014436660252923491433237378332877081223047640795190579237718693860369360686234820665923775426635136138928082204869968051383477998785912881617761118762322743742299571455975752608537785634067523320172006920109780284388887701799702891419604843472194884668900681038370429233805276120547729453890720521844311919154919941007498792252764007621987124865058488720347006762233120167867075563918377534306958433754110526931826000438312672894582230021208611767074024057773529806729571466664661604244453551900151697672853573869783563038770683176878240116854108767823597981807655261369640306043583245513021240881057151787121681093442317923704248552621116988972062526834185775333743311915218412694189198402497290080194039587544569547690326031898631740865546307704012538141188981815144787296135899502061616902745624831409080352582958177870226712442675207021777374413470370755248482883205274799660263970899775438976561132814642386948652217070840031327439149885484695933846425113570737175129459780955916543672201662553356304023062904928013283356336182613009701775471834899323966274919689275866264085799035042830716031411139659548210939985265223022065403690760648909910423669905883221175316928199240907223338644191888271831139494133879184356121278502044531842156196283309981137342064595799577683563763319445876796901447159381421629888689961534840136628795170112557972263668491721303758376888552862319918846963347972955388487983175790019998968984659821417622922515968844698587981234537890309316000796364965625865947820561143546044750274652687522904302416586839926747404841019520888196530997751280207335457400491808680920849638830993745795228549229065404650577089460636308175893226467295683046794325351754455334543636528617424575167247561333310245045513746261287048746919301775351146190784768133475222983994797688351331482662577821949644447033235837144115906231327848374354463911051948507303492147615914158618058753359078094699214202643385621296013748279381263709778302535017163022815740861208697683651393491737196110309423137136466973355762381075939314929554933015942197966020987006004271686109046062759402485616462981895258515828413871904996033431795940103184281220232209500288762178329075564772285860131751301636085096413419013679406318168286902575733791831546834536219002100858582347544102116800497581502874901236567744064375345524499431335308864387773275816819148955766322683018159988103611166377040004561697426446163508102799966305564229800221315785258949118306616899825535102214628235038126869130535916268615153814177292220140001400803417327474800960377043507295906012024448571815455217626915185523252465939057454252183434164489906249656368213830074537803579465202402307327274980480344176788965113127966663606017197107708927682475721550921400757941222352437600478237818604613642829519374903071810043416657266760722666743112274898238389060075495573528994066673682082346863442605099369411028893433151435683453847409635651838204495114548472963756394216107987554996781618293087093475808897199965889145186406247931087712549222579753934038846807414622529615487394018045275914588528638773528989316556754649179466945405562215023673332141206503555231499052330829530195769532113213799971630140736576374769983002876116317583073732938115712370074364440423454346261402725012876032640146149486288383024820216461907245140115878052112492025920269739377252584966407845996428361856995365077857649070774172286319708083557915598804682551871479881796446681333850617421876857123337550165427024757170610388392349193382907831534850200123153832641264731291059513777215959327408468654196484416123300250854317842829509427875071746718468117104391944521016561838736162195080257926680367402332726007095140636586854431565977349298479446796959017224555594200368839987552673442222755422784187934489872715858236483470866471052698657788001499378235352248338351181505492727681117577318324414921984567805069724198388103702612777368531111129345687821726661222142656869892014516250088828341787062203460762864789694455276994694853891007667615562911969995730574805636747853713729924804213143144366381268093027906373288856433319795623234638980037888107572702810567671604571008641322141004915762593125441368182599110107857575500316908088387646540068077624533941932861823607187814975946545085443031607033651184319466319106534698357221962632192431762108440281997474044135834243183196443802567956592541324182487788048002753742191941285195894534825566092098747553506244203113053495662292869246006294665098064627094871655024065712815163997194678543499959018514368051404708401764524522123671484092719263442760037889695282164958406056856528502247387637941042899978634617093266702213141578849542494848185789260654316952070877632791862381285011465511857322940340302565084660826632833333747882281076441107403860823405640004972539036698032971819605553165502216131817787343462608157281736116523283550429350749399154353205011012656051287910509085711462091912744452742067153575069114623680711745758889257518547280928649747864689802261882028203580693952117408643588187899101011196676878752724116712417069629188071993151127916619248076235869187450326153572365284928303392035859159276644777859419522688508044182333632922146664945202480933507191810765089808272877556174229330351663782887627337142364452635054798326937418846365354357793131760407378327895930290990902685806488378837035496088775551419448439099996649173922032013502155154236839207372357578137078098927044701739553543517623903582326921327926424923381835597743166686175087244020786391331162917194283464552295046420809183799181283489130871280609486040781177760085022822346179342531680279137494016344424804706378167618009604947119365130095993150075263023363133282523039424012561532149910946615251786776383828846030022098166379677148446852982616062801642830085228035584643865024903169170562688089575663029442659651331752143580423234260797904249360825521439785911564189274808943829371107060145586920031654107544733046818653518718620543564875972205302939836855136596514109216132976605541416578042921263075001049628856961683780805290127280512825586630904971107439463860277754948355882340135059973487716579288795202572224418377014273416880788396155434820590124489565445718770585889730377779935796227196302868407058760946513378737009828612153443626913218181904852526829653726725474147858676017184874801822034189794680584705524153040503009559974656571936607478602797651469865739719823962119426138289435783910211145841745239287468217079469646916562800852933200457056076738953407416623304688103949763467223515767435241844245434863576039101115143916781265625580090223771710887767606827618363174148814774394105958637788167020552539403911256359939406212412955210880188773153504116935889156537014352132854282304873420980612242187324567016597834915191692564819739301017640973478050073855910498961903357521317729860411697906279269786163319194081326197006144040791530725119628833219730713234552114197013074571978525325385625279489286201491260132772874848554906029706352145021067727761446310938889866992741539940366367400247604811032362404996569691773187987366684354338120535745742060677905500408573708088348438217221582358797271956430886363216514761661776239167646285560096817985275808316016634943369327327293256356822293438891034600203415308968180289035877096784801186583099126424370112995716282908153749331311683486757689746032765399850862977133555016870117456493376150774929899011833116124345060881345626345266477761159991096978522042918401331146785526213138399987114973388719613256866788791717967221794940554006697261103687287874562667798587106252149139372824892016929294152655932947109768459023205657938082010664609829771202249674236341169307619411010579976211979090491763509823552401869198093633017450020694391294078630629421318774758430727339914108695945849417890895881461646335869835710254377227042734945206397310571041426338572629366962093725520698180371220608314750914332926676155576956974780045149027622677179553406772656056494893489268834776957818469925282259303082940411675466907339367801578471303402296675481357685295132327852517108719362071705801792021838621724682455899046746159021063272670428241603046019334290684758932866992815633986822047468181845714242626080180787930192746390455267239978284342652668276222352675426246839843438742334662298911109561675106715765932429543713814378452326737282212468214965893474632194784199785610146469956990419754991162558066377735261251281408720668184345128461480031782763127352787408540059241158913338399926981176136638094416018745885544930202303583748793509170831709020358171607394255027381794881112955675816090799277886065340320176838493706648879986914500843880751286290632314375906254742145584481955615693486716599616543332802280010010289596190796499112508858101204043803247693793115697357237589797164186473897316977984979666495052113566975945530457589774258021323377450152397634960961255845193392254620242427501556715467541686653434263172595061166478898051065702049621377900170985791568087292958188240277046494018485899880219941386925660162993931130986103636459372868046763201434895139971700770697819216259620832841686086242648711735800224456099349481093358207290185085657643158036401157495859045468920057755815357841477278485991104177440226780848473991217469358654856861909853990845491172072813371687419932562334378942917735265653232313111272712857031685118895518324787469931629878818363942722065428384379328121109674841067548855664960766985945070180617722053570659988292543185713571281323263882108066217095696582087465466470869914325471570910511951460369937149717435953913940369642752802314089129101204384650314143213365324477984874777980571242472721152560204079213293741132260128472581107147204150383141551210174873247675361973981279602567185139301235662734119332077786086184956264505928198988470254474659864724269827470175995469454013575247891437279668181934938882183963698750497160677687786300970377913085374977804514524274697634929671301968847436993996817782917193088103681617696280722506276980408688202914326967648361712564583888101240641739842556103962023427562461330810726279476688007140469528036648447132700413203175087668153699488869955063627105215865719992607682866908552552450650793583518689898761369005123193343673566815025403425758094547549073233074501681325537963473883981216896880698076640212386690652042938604415784414491329753753716176182841109603844426055280512749573732299970386047458729223894894963985458142192638889325701414061917079323114676520679192319239347444480969050350600557925675289136682243047190645917558029972596586649867731830573152289374785001033077415001862996025523642050061528135329095400994908640774988093097082057325982186665282003134361052068996487420500936797232318307625818088800078444806621527697450696346627244848660350918687141804518768647812423540984756258278755441100190817912775713776235043833797511787730917846413829535005819040842787063219102777009971054374175819993164913630545617234767788488676526001493134158490745294144175571949359949621716432956414134331761195264800354969928587214953993712296827374860878391400737726909620712231093742278177132177293823686592419146329411656867639473616863387246837808145973742606124482254324191223787804243009605520766402691514610203048073659010819164087293627277289173403674724528966085660135433804592221908002632141210629403158443562378705515350021794523535772818068819478010060316723681385342279585499928320619974090741039682266860005629582710175189781809771276853474099876894759424258246479199546845410145200073984607559139664026646478672040803817387400900699239956480448004309855343861875755733356259087705048642183623935661580999106317620922932191461733399555164856537649699951244569558412921479962744694638728100735395089289091039124960505044193213026229978829126513350051140103772248922770803917932143588896301959327210289346999043797010695932181498226118098330178526983545240811994695921160358178671881274410719484246281998221522589432553486409173420200202962073884658881331690999986789141122170979706895851670045009300067388189266101856937526548397624155288972109859171536810320088094701784599044055912240013115801149158517384254762236703325822625917619615746831930285145358935082965385840607963924157998812253689526041717903152469204031365955679959468643508566049621826588587931881122692698152954235467968147629367956392057095774315985035797012006074799691347280237698075752863113285916213045743431231942240946523587539189049592440383528109855757669639714774029824570564469954512094967381079868384543826999381813806734364274677581427908225692002096113903333363261997371172211400217092537426474090326153707862802764566717375550395720095365555221273505665277766428294334997602829844349550322737309326764322284350276314300159277275146982615765559036799034578967376645221675672613277493343126599630700911413057837854050646068633759986812888150253525541171502420032160944573450204957257606164127093569710978535537724251075953125526603486130903858850035858150326138781212852099119176982730114887537384449789659120006388624267557580503615657719259630118427935074862497536967926800609079432579604661449290605441573086310745289751411463211081582880565391741466384375231453027553688547057014711799509149088795590813421200871012348123298481080595780482114259087201027426294896407919141199222810175061063413882341891768124619323239006997562990886508807618190296509718737149356124682756711421550955597990210456542712932996874460590815081619812908176195309999828502122188638251759694957152622587865876639146711000348649236187400573857110523054684396883199846247555551544643807589472430841013524319274304637875012959247519019046416216858678146567635000578524597147849747260808607013123911598570872887315586117642920837416803854634236851699331881870645695844178605665900679869980635177804849141750179328810429617741750048933039365532848873106650573941187096850483044742493125011431929663190014357435471397219752970520663561211982322887871583752914319577429549814550193349056675588003405099070772417714671944301826650529749371411588332095544134811917139119701561147808010605698652046293914134023242087563598919250374658871410425353478771831354832550184199822646328386126197154004835460085748680998147346459942922617647228256266675718773672020914588314610739126505907217902831250116884379767653404027230476836323979052684556058631982599977316904038709955946160568589928568045147318346227916011069260354249047996730748409572722577680609819874427739277532204198357357740695575777210971173245364600577216885593671870799705480280794830798230579512912830621855044401221534183729706992453851179866632791650504796497732022042286809269155902703640978427515418000403695330662301402229460561890579595923548495738901744115195930522401003815795216105834533568387286379449831306759849799543361991626466060310146983156115328549694125512532101135215698609099776782715095228756932824009338639912576435881878088138622261165284917965164710732869838993522426374714529931270974093482872689855030023488785596977099613623937513592220641818174677489215119027083692969980116088775325197386420688500211640929018173384000708581155192957615449455223375247861280386707751209362698741820951510638385447687283752763366902465154967148734563004740222761305623476905895380043870922374573881844484469374992716886428609033587758714169423310999928523844699584951868490507569452433710099221280058450799364738082518111143586393953603343279369796117610910674731925527074543793546636649685481900118419176770369717163338621100553042255612713264416237199066405578703193603682708060205500968385102297343956173207453107767389042807579241048486603667171574632445210468611150124362136472551359527663424408343190327243382001166738672795252247467434957315433025724582180537640796666326065771134104183008810614049360977155185414280080013711677224312944545814207876101610480384248024764405726476721207495334091908200404431484435128238226391924685111330657790808578632797139116398235978795391678219913181642164454617989521202173587988716288845714549848681863231591095311515880568666268835225440135589422318122926545563725642717471023544515508397331288708958449677951393134545949535084784828142161301036441722269941192109287320021651709779827790551581930652271224773699196114209651695922373727649997802119281392678574924628295812956675722094925783688658150469410992496309094260330090015248721720937053835393345745832049143570005569457137637335178510308016514996242978607386415829501048566832179985275352756952022312695643141949401614824839327500897018459039817192203376639564368494468949285194780030280209345817495037494088138722489200704840861484326992876417197478467037110074685781503103850743785704615142303065801355534048275715278412787678023371997596418533532978235870234886124653334014379606822108638707152902515993642138129393688064374420401836308299720569966737846608841490758441102999096894467454297443064918848595530167966548793911600049025755677374142311505104124531580860345278596816847359783374793851084894577971458428839861024226021525923819126721772527605671313638386866708603332829150600419360190158052159398458492203024273403281877014953439753337735952505344890433596378882877827323826552684930366321068626721393518042600311782077381622560832240685784834260237969839765611811686178028108275055652260640682164270007420705838176618328723266338580760725758676060494238342093069091281539846192528504721544514218123009773511042821428540327498958439350437665139390715405508246654138577152172848069583925758719826855959798403162466842679900085646587624499243277596587622963440730783678782636929781837910037398493732845310470420095163367223188809409793210651744895330075805883507363653565300658154920966804081553309486034191012649439808695611687434132522160294950865850923963034135741254901870480023074528656999267027453346444764933782448215969151928661743184568134817379327307774016844814790697636502269645668893633322150081384620338290796821640002708796133719344853418927811547351343741073876373788612838991181323248902040842215890361371378783762030417166192434923607547778028877299215348748593652171169555941465716199173744914417454194015522212175200049417165366321609398245658416604637249035591130593338586757995649182810180877779953187723659821046929919932486464154665285980392942421002667406836990348204097153994535629944875182987438805112952301824522602750388258753997262607319190743129750591403726467984030701907800584757232939529866568282878893278202381305391684200643290039097175568855579389986834724484031760580384395011355240098200811073660924201153194139381136712314298706491048346587127106808804585742699238525322323938764119917915851430587635117861678930904833408001861851685373016432197370126027206619522623171304112030755383749680593591755533411897847745478297693915573988923586352084249381327962974571464939165142876269881754894964367697677751112595656441987171161732147373955732885635777099002094835677966241089932558263189816606627205611486929223823833269137968681161247235572627581315711248695321922258895061875516638226674610544530935463182371684980028955035209347138320665061508005027926746667393318443252009262548294104899161975406280528342306740820976356514365157600138281966798323616666909465784622495120571405965129774400174974247204417536679042288580628992760258395799817321191717345240984865867372176912000147974439631923242591428181386274485671248791522829540673309366442983958263320915483557907467797741558757820527126269033254794756234245340512179009791035879418113699996951029933433291011440848444201693246011650713781914897355916341715724333414924738002067843002488452269267907995302935478345926618880056863875180004596663444065017672023158268768821771044567304356315469542168507390218192544947271717207235431622007998915623379886537589795214383299159759884202830611423037982292236262941109335988696315321220482664184577949648892822621266375300096053064043888844577996358407871196322903096346205008634052007494832165543597658499966096056077538161516651748317989118171945345374452424144567043984841998901371995233658836542035703102686684572155189939667457045583287863543276782898634061533453461551475711648370462426001505767180538962319804153228599420690817503584333096531926231399757124010584698289244659072895898979923591244143957917271853966909894697221059674585827426400265996345393703699102936834220743785189863845364388536898682863987948521629380698444205658478837882526901255795210726157893421156822210972703910119235234483404616391829677469824354338782311060132243332532798907860688725575293084393909819136964874661913866241722896362620858440298776369349959030764017173437756059013035833856504352993275808945484756497075944452692650565810429102607060929731641575353325661008899839028141294000058011911176419751822516135889331058509078909308330165222644655821541826619601959548681910593343891707510975792972426675813482501103548342370660744991252524688100580592230206387487845096765067421002735658301400647176072884149291603726535850693086334797446241557049594189361984572885254064221798391636737800482429371634766490575280012323843273445714295222988527838192374567784394762530195739520355242870980828388969532180247116825296768349154039112345361826726954323523386574386869188186605657208709984319861144046649025879365823015475004714508549286763188987509039839280945987867276386284384716435510713764134294185494790918549272902832360241231233592621265713730313919281240669748113731755377376341461592402802832534916907592494781502600200843267507438265249556611816040967292338220483630918772874818737849428965415825786302745530023428295676283321189722321990112235134948108744417126486800511258430130469419142006317331671338545680119903128994131432834847252828377088332127088518226827313283401023411855379399210201904027522164237902397606651044599174097981528041904988426443613585715189401809207684680518237875691255784571916592223645177430038001473841375159018868610284323086493802446337788317028748092347750860340823732670861788573330617973704486803129956083016952955870060330119936347020916618586133157896534330692814703145409981761352272787148799185997692237553366909584973289843174032429039753387876204720043807359447286237225804028183109169825844723390040457460624212087490678834890327252082075948698216830187909578252853442479724182394254133204140819999774696680282274610904117598106061728345094384686205805679607414189434406570692663684174824155052197573722926668549209193184140744537208714771306984441039346642585591618580616857810363659482385808113267218853057861771923908156782718179430427260831573758458281877976424020027277662474904136720015932662873839767416241250762788245314231164857786467120154871627027283142481868327403690598703160998651521512540597756706230904518175648525562341058464266908883740657989093962611455707606975955687284736663656769509064195343284152073681541393350958018275867551870484857549126551065333345805427619351709994020366035956254434063300166878746633378607161568724777802764624283017426890107049962896129460290916153282491047993124331220021571829046805766648230654035997435669024348843876061950179006601606044084845594925828202026789277278535877536779897764308769068588932089300641003751999722998652125583785476668388345037658485533325868412647214862332680890039029825957600912218122318118218035114198779308849534779073704731404584607696001113784893065906036142073477309835581326365232851357056146497711836985335820130359720209289290877429045204662120534251228869790512215581958394949275383694490376609620172362031734744166484964549663135258687433408068972773772100631638090882492086990500592679399924578599906496660024185940402628075493838808747357515865747640332493754288838166902570931807038262987084895048969181368149071155912752151600530209534224662993691592253485101127088359612220040593809114975303353001309380981284034906952514553094681758721120745024194284073272626440113901736405734557061181732488663573708039805412204153975986550010914039042254416363811171179056972093556845783081309274663058072447322511265099133222290530919380262198985086545830995498648742522442860077903681584832079834795377738726895147215394853918299529117055050267183566472258843167640290914107295254903621278375680038538916768014878162484821013773643281646923511197943063138480528763731824033933868154892339294741573700608854513289415131246347719662835349879717933797576236983404633487764657149516766349620471441749608706288028435470656193790667349306953134441747455571255748265452404399231849784139770494650338145986026525743416452106393972619643841143384771644280567163008902067141079445536641683467802475197516986618605325837212368675726329318238333806683705795756672948582717231968500493302485845461212559723466764542622484088335746746625926085080332381203850963447954811916066929871879315610674260035836112527979216136031218146161247370958646149168958242966432631075839337482717614569127174338607253860208683073965308566339975133972175459356295443856575050007355927215940744441887257670162264269360506640085132086923244246957328919723805355484782675886481717568658797597286377759266250695555609326782861021847489388571903857636115154257016248450638380751505237875919866025622677608164850101783185469561445613358600057563574073149706518339722473934081063760755763052358814351894392983330533961789157489879691555166174355265951442413186543003341261660838635060954326824850797617722065455006867767630921921709387313250859371818779868056056849645313720961655602081592368541118421772715805736301071370647011018383868678443261159461844936587253288794648312889271203825187442762208105103332341307653666884219965026474839918538077155066837385798920789410620589653322199234902535079877033157562768154193024502637962670501783645561214803173540346232531936759848748857294525781556272462533527716399734618246324919509116260479657857588456361161260660149684169603853786635109085818969562255593271019996584466085896611524357493640773743567031024915458721357969850277794458756879380930663950981688654289743901352900992774861588613177499154839614343007665011770350973860584335868469598467102736769829180012716364369713436651961814340450007238417967270717134041718648374752503467188451018038255139795859537076581001709508667316071303042446114548179660504276747268459981558248237679555451355694687743951984059210725379721073812165855092359124011877214962340378250966507641405413449635585602154697722198844707086627321214691117772378632445095069598092144838149889459862363245393179371401695381494930741453878721925244703967704790277083127279635620614687571216397379988233963275233573230332154827835749187594601972720990995194563432990706891420705350197733563868812127608199313101434082405427839795869426027835312282726533274635168875876100778198773637603186602775481547732622667304818716279773813717607184589514698681104919158273437388366443336053898814362032027195261133696329646702110859664608920044444927321207337062350598759553229096887683049406326876470144946445268434660514287581291985936253266439898474387090448391335812643032010514429061121895171394471914070150312824737893606924117333390741856722593207579846544860655359042541038337384320471274837637111584703178144527173399256355042524031413581892893036354608557170459318333979985355900198804891001171086970517758753911281024018119848992464758736695822787125519621295106604047691810821100800455052839231286239699531317719092465747191246541940004649302120066767348675725424120642786390809127928131125241621296160929056039198317382989104680763731758635653016282282523637764487455841626061760605657329571881512667129210015688010419670179659573729089095991023259294988057385233320174594856482002671012489032318326393631051403805782390034599099578948461526004606408860522824076134473088703506872124290584399833883194620365259335308139063019052746208947030491459555413492966371678456699479766961399658610535995133198904037442805126510373421124245596994850235871802938026355944785469264474884144910084643689844302875212430600731397965014199955782821961844751051867819762387526993934137579803205991600032085185742349826085222945966530838160203114093863362624753859973043034134730781632522934545520697548969258039146723609349542331326708056511679743498859814355949310153054762901219814673593011654497475938972408293851125321434300613784415254244298191236787836215986044868513308843627984231766423866785950399688264059985402911489093737185885933679688942339387487416907313883696190598965569934772674781641464296218429425584367443643683697271836324744022760040346903959268249635923840900614435543838840131223149885880693940630704427351205578069302672430367532439244925086658226593605796816892833690414020926340947280915607119337805551663002404345858509733958290996072123161357298197508363419978821879984987801464840657892135074525756664255616013157443435041775028636381004440533144600838999975926557683265742459705359433577571901106888085648418982103956200816386145130147428231471721999549492979132320688347255053192519386092948643102376587462477808232511858932230866663781312308063076395146343117576279395929397218040890949761216885185273359882345311976229512163179144489562977688727381104943530142093816600057343525157704081558696653573912649260294349573028825331065772530605306297102217326776175071605704888088393865265942301069453507450591232225269586851514090369720195181096078384479387878469843044617627261908937392606581132651177044555990476049474926499247134054303125784135466435826727319251784989315278903459507927542541591680197891822520142347325765275893262185322442843403736103159334481616968772282857594468579177221031177280116229018541195321635069067997163452942941039106058893544368704029859372667230478262591729241615517547539587579134460032034401613275102392086545514818113045994082826234981193966604742903412235222581423118738852332641780816902514355379447574564766325917123579584805863686605141775532814665085242735514438004558806414445316642984553451494965261148079580233609705781873285915074984604369063232125434402026120563969219131700685873960547807160405357831834419678435425034709641608660563553047625478121201497914730980719660005297454860726815305994764071731589776919370819596651904226348665585623114438356299339559223068169418250751219835762125453558977536256998312705963375662231652204623349967874821505764867367671250340973835986172451033171405683224724408740949974283865823650845423603039644189275165561761689990689638128784423658213485856400389711143150738522655025076682444258560111773489823848211038716595087948103596636354950498434748930820369139924908690270767941388234773296620502624596311290341163533427953035989209312435621822359183928873260003301860778180010621865682437720625432607011504065210487553955420834489439316663214347465628753445624759931067232394489182573254577623161320725027768568949850833875299289896414213692119595537889633388731457350393337309142015607816902989288334295329114137673444502648324611642947362199335926658332975709747432539895858877568946687998646695200216719343161197476113864764984934722535079594160373559596772341852529692792330245848528655663893467335710820384930038537489125950637267035112669711156247482046826772814256473356399142621970386185049979097614189874408692115101355876172095795631272377884433881433550635090232403069205326860728185755723329758235264769799878218925926663792895410145461978260608908515592466420975775578859457837265739984514800917609340899919341437696606768534368156654840800876118625062516112320493301830837786627262925146252662410344788531057588644633916531841542614628328892449802639929292300945106626246152765553289012732338864261192068046618899360650618978707831508881470529110034215609124046617648507441231128259965725185047981987845878870429680027521818273109190693747528629238657437749391781639654922616686656554364511003854712341046116440999251495430841784775540884091873625023808720952121684873193810021638009548698269656956779084877459826553598679625563321460510826015988352405358652168377314167205893033691968997401676025850003514500954674521638309512027074126938207565394679785212231047550346930874453822861753505687835283685247067139785438352289813692855485489257465744174229591766816546675636177274060889954546223579410248247307287517428099582535845881840329185293772379057785260100844646431870531272605072690151887658680830667978578246592770703505846262525264875682340706337462947101777395033433491290996119681605282472352307604911273320365871497410444085992635244908412406308881528384318325838523302540012200097540178684043545064044483866020507545719646798121378335053495344569471860043884159982514679511240180711920182575264838883454359940457422033308802458771397640467075662833103180699751894402116638630385165115053772015447239996196397859424268137370456343927076858465275954167915496373099036811376013758303955365747929788275555851684470572326622629813195063580673073541327499202134775401719935097282001013859444438793670063193168201557328719990406905006785206486544642741866299718243619343982171330379847082243696741285989198893218079927614665855614672441045817022461783526928487446092305825895756319026330220135089488637686502209387251844289745505953572306827277689897875413793118895904016110277804433810486708133060323532156994637396497722809071837911029210836036431095576829160852904204935556073791004957818589551634914148417420381166483797366182105687662542114266507262218213106377471410447247337880647887920946788416220150938101707759812297191661802300909377886519831284300442414588665717356132297526135508689305763419837239673498572888399641835840738446732458213590717255759101813327614240461798340458738092912912587276817533948980835884167327254614097835173361887562870890909136354076437015671472599367448138921942811552359870733298809802423344092499614932992885460169982252371000570908907610023754177852518242847686725098088354208848964065566785371093796041440865465001636209135211775034707941147289386149528143252099836495374013592360099316282992823645346196220490698159537234437132971607832527413098800647600653799366462690573992943144233452790651908997006782981074350021495928558614353467806897423148848283916815147252802556421151584406149979829193625906403809537533638061595168884337712297098789512445665769975205941348150305014587684611520193194574495618297420439130942949321989957536929974073223453887675951953448355522666424860474653184562157865598202828966260673493465740095375102801775431316849835473950966457182264197878109189707418606652686034689422375915071047245661999230916509942120952961963124304983518607475106762202310899815983665319527929749476551637612772349646953939449446588306045861438617022035242613915224632330760068344643864509302406097137187246835742853768020242148280544995095984758962916194510726516931520952906593559139950252319655968450342318262119084595923900481294225118942896253342941614093978449455548321075567125908505224322083960792540167339315697962627744140808228892736231572840951136672527939291121267915609404301571234623708023851050959735332176163397502403742218056254969388358870832822830486560831773463107563917541663994407598698366393635435005546240503708483757460672229272480312295431742367282503404110845769766788399717546749200045252869959097667206718202111058009260859975024024338935381474401045765011340020223754473555164782334112360989314451588779349257589175605858221835718175107201435599209181907965030370821749641076934080776325931521430312567857692824862447879553531893662019947063479219006910425049534004047611582705729345591864426838215452277198369186456593252131129238870662421975942974099008228416625549066245714228729389129966842558229214105875690021044620489037904867130734612491621571640731789956735101125276903539578449954840300529919810875108765270299327667595529365471212097657416996334565040737822924977215963577455749146689997327901182521674606879136525658325459593264410424387200865376401114403648010448022870417745767249505235622317259676520394432069860953808931756203873936168687593158807490225099593695032946437284016159583205555259045914820487912698500830580609397678360634639708433845577079962222298411127863529834479464098932136181484892240143277897637925055890101935310528108807264256769441941671663399024620570484871481943186757893906195980889187956664559232216345170024404962376724211968599583257526574750788513415724038986169011814643245647799744161480519177232346507841473240645019519082723995158417404842007544962163756225414846012030339365780576856874079632829679477860744285252873178293674050711492861167209791306352453483431458082835816221256742939084283876786011475486978747674942323927558946723067101313194100362552140621053291204911143774025274274479823126659769629264159329519193458785050446942877348113804955905304027129167656139787292179086291025015039578819563839969649878997000568801298016907854787341093216395153677072948322527663264605230905993925606621953218905975350263653627328954369141654390237727502213824355034731058757468847643479282901267925832743247404560898285090458263476614960149873752589811621125305764180771507125218346884230676865125403805305493677632412630536139334532433298604664462496879057416131666193136040495327896469065693666403555981774431489886672350381125753928890500352585028436225185073187546763293820376658014526562943773022014985281105800325184592777001831782648351756803451454740948349592311488038404990337003020570937286510518975832790693683417780211618061147726033405484664836874824942795618240069960967239675420621150778911464106749424846435181193962667955640323464167384900653466015460384398678719559175611323585261266003391616397106598864204943563641072079873697095810254814301838875969271103555439945377129194044556020774181564358977685215123025866060189942772054450789402969252176185175165690564935361961992463766740014618323785055249712809280293098376894001031028840389572501911592283446041285994303173195561792343452536004884877372449023980972082357796703844462341482791347982223089123283782531655457942450831063410254706691642996500108881786288368578513207422434774803835536576037200862244582326479661835133850970721960525246203026766564486431108359494697294250674909802696514569443527504066566773146559394884174797586562539946474600061178018980521096321104971321664920373637035015735346446779563500771492657969281808305513421621551026944238325037647679895498229612717849058096101374069764816610408046387324268380098156324954767208458378484260139428810919866436928383813390214950319848394078188008795539597189341987219867048887098427278849846817567213008167238049846982092881708912129576987623034846409130157102037529019434475410142810906900183888201845931948515270814757189382479032665782169218011438858643720867333094541379251106254693976982809055773094636069332304071993536034607125767905486891478391034188206889158252120207369258466564593657975959397394284354709702326917778494998129098898560555769276641210143777554442226322389732044618919535955617748798167431657762222879390950233986627605547500931613151882167827490491014030388211982343963776399367228488577029883377240530148708862804949353292881504751359133081784826869503184756918756721763478842474139897317545853866509076685436484367607529209056583825287415033439761523487141889246845260277167758872093422265100325551938903613142141449352721147787308208210423248111721710255040662617706830193892418718536042705731014656931552137737811148425050519867168633636360364531430507517462362792461154390098154096222228478044345902579143043186448738537119177564129971488981818279331523439913674057369931088968982323133607780188619833527252711837646212129019949338973973786276808454058910488608264844790367714731219982679454328687931297380102360892021032347756245302855752158781804946728817215179263221398445147693360553510684216297753722519294612742051282588306961353328858167170350017327731247565410485575386875026994149425057840968022609477387742172766551005260275273114163865851335403832245133772631317678544924357183944504734641564868889107328331601479031194708883485766144356004845189219212309129222433113900864147639371998349299785481984862478432360800704904889071138671090613955312032895871369982858814688637192278679943260817235744223489165434418987462234483397873309663992203041761605367824546704075485788480098378014074006946216064830520295489529138011830424161456352180617971325231364064458511870934097711218553413973578541654849675797339098311956079708450324847942050305544705703551798206073890698806596588581719782278095433312462026855234148968668812010367549536944539189363397613112666668275173736757848667040050627797397134267971529803380698352164703995530267182367107520478604152992791352344682227807224755171673832776298520533622257292384534034166774338716571875453156964416984181457963280003207075220669189099559106522904244696317733341707313286154011245614575501204022162251657928576262847106819002201379705157138628050298563870118720787808572861456766652232924035982908751879216714359791149628590994678026597015474828851311729764271013343143179689165088809371407825121068787300967476304561297310622374075789207119744408720473103721352301142553886788336397348794793625925742979482746665492326681170078112611735726095146426027903209844218552117561690271537447945228060831554898674238329829304046521985638863498346294579868289484285240241916016594561112296386300814252561380471019270557328753344404891460401640766285880869911383089834989152205097012488985483742310783597956998906342980941115479656191965341799575760791022735956677634557798556468040290010276440891196534786048127649701717823990306261665848285494385028365238119897338876571582314762916537648937838186233807534729978035056549306838476739346501191784654964656526672588592409212388716050378682241249331232041396047090174529989164910686922795101410103071927263896687356170518325730156840966098355724661431926698207073913159996875806299127225407958806538266124508386375597071961390637666850064458698937208000531096773532327018412894528520606003612313048099573912479762368314721551219497136469071935219443696364573052621235700094949313337058721495125082028431711824467487771273233195885316206889195406446139858918098305830438140433543214426381615726512927406701008851245826888802646583545959489114810041162770910111718759328843903348419605518831855645486069729876691355994164518488644559563404632805697000916228280433913950771171086865753518599837547125588783430471341269700209228264007677131276859201747895449300936907196154711218495270305315598407392705174992430495027618738933732968513579365156361802098593645050752997903402477404583244545413723126620722931524748187866649075774627800795296886180555807816295123363142394463208984256499798722140155923187096032430855382652266553662511317231710018181854856873747733412033796130892511465166129009933369663854446389773507609739630575290318194978057426944918176310392341769122496599823071004562860198783683390988882606633874009781410817831070479499041471159784815519669385372678664203378043454448183373382651226535643338313960562653400038230851442828638400745145730778502921807650416732585473877005038469512417273779293267868119262457457482628242164282198195030058255931793449075673682871346714067016141176150023475741195834079603977762166589458841648733182677962653222057069561469974383184549100518153116074584377595538660866716264000751242972679871344969528908532386554256638670470311264404341262030605236847282991683109613363842600270717825707479175845727566001860055339991165415019627395360151584217423359781845886942039870437554314585351965125947800254218041359233831330101301513881302367005298012323706935851585526827409948913713888920823869769220901792477138897811928453717301513724122343933365445829460245608840168630071061008696694910128027497304980445182163357433221123154233128559544926744147882047998380515227983523011951486604950711087092459363564603384525471691016803440768331937548024715796082818288415606583768698267374662271984285190479640076902896951071551918596646096971910331881653215912597521232686185894325423386172190899832466564450589711599195273600946834376018730148500810286237032216170544281092967914908474540984515766575323666280736336595814676513896557875812600974755318779752658975565249281303687926530768794603706140652590560539360800134823102989448483691351920615833182022125167642077054320070585298927772794569153530977271939153735049069233519197782216492115664464274627775272758098265100740427937619367512592993662661958638849050769377634353958619261541264351538319856942101478962874512702720766212673940763517011429963422345720462752630703645634115235602877842023664786684492140433820250964551909863576342723265911577711061091249011315348273588847166042886423105415933704954231598784563613637959539758823934545046869501703865543335139727918401705919054848696787671375413717428093590258445215240449520278974558958918975972731410328481518896306763078807285356916291000072494422757140911923988162336609822815355279961728610312376593347769370131518442804455751288008133280320551888813451578514909302081829652171053052551618549569510223905333781140050521565064434525433665293274974228651698685068130117721702238379018920053388308582361465609510998392788642176646481561390056125408566909566831946818817084537432589966185935028359109872555821240785518347285475530280298173704844919199904699659124978108607674046654674424522944950181953990542955190325872708850089285228955286977775646746703780900262618546938272157395191253756530066821959654767172132722222602014064493389135993832381292369251500993919478851464963483827439958675701331202643467147929049479911138605281845788771185701758083182250091220192212533914199926616221897840259738448555787376441237810534939921550441536892268920845579674722872518578522378972698018716073639469779867656976537236294410172622972731837964202165918089948153360805894592160117828651177858667996682779257448672273743557728575510713171609999422616330705086636086721607218333125679857849600053195579620051311413080508202715753314909979260128717106604902156143364976394146771327733342461358347052669235783614431748055084652310151545480896111380508367208306739862640372653263724798832304160663608909288532254075478169228954333285982984167855295869701822278221995851516729570043595617961357242863424317360902373637012867775266202435871643051564365820906486766206606775646450613656494011405655812490028475708459468272255696428567573725531831793445578427649887657045147294208123516969103178716883921373046492083771146140549690660606489709091489405717578018482776063440660946266433500117853503292436461703714911364431968621034552325468042147279291962963226190003945350746183606972163528573757486373230571268873662333907647145740622992882123990414127068045671240929662904029518740760193303011087303352531525926855484389150309207454331179026169297988568786714957698209191700091745550957974015908680052912936024530975464687999413265804076400953941224477314795399245587785676408015066812482713141936921708761206753802559969474297237136853253388936582152525291598206578924726621757037374759905424614711698393275840350843006887640906498830304500074462672138345122571074887771520536894067471914778749181421959147644822017039293395291171322145476260836635603532635027857311885054655832542981854820408112305811408696055419622627613419880116541143193270123233579299828177491168061927971222265797059979633203473669462805052089543043167720929888423627799820707054039707794899879774038115465875363567759371692668713559681195310104603942657611210505562168470899510352672898829574508715346530720236441009218559169540883513122318900816115258538698110689117911435545535996459457821477324432060499066348399819288243832553973187618550932122569318326586792682878496659731076331552969488902278812978644846387534190401694361300392793371028178408954510237374658922881161270824430776084998383954624780433716615935876015088926167972559380277022669032429573459582064561691878592290795542452135563570599427936691261157881380760311417467200185636162045401453625095102413869628980836798859304496125159491919240620626522471377495430105800069217101980202091916901357368829682284953366711738976888915043464275157914808889006923974871242694012306268832381755520079554142705431455540613784615570914699006605941842497702595697791969425935661723156797041600379719859962498898711040700114958880218602144020202103866885033405157056630010929767367070878587872995425959002262762047787685237422420786927041505580388060797510506579818415246949310034461831228537441992024125345709103594853970612615756611564333249343376236117591702032309662084598462748986244514618156409419963034346296011697634256132870302703941850834548474892018343764454604023810470110599505429005192301700271865107885956684892125375602637049090664762522025497339918219619412752896780540075416096617341111290907792325711610466885436363406816671955870612297155334748013124160771532117112313295304996965960522550335896762316636627629886170808686211215314955028487140074304122909227269226002790019469214018018428157152847875498237813142684492604541519164256820548658664022037118562159094841983871414609652014609477189243616369047789249689550262504414735208540849239465533121153465051239171880974845938190251539143268894420345840604958692082589634719213547383495802164404743337733152812785242710776134273423369454517115229204829921078709318544296865020288466407908982597905978969066854735498271331263801758588673793481241284874081252243767770117520037140095009969238770646747468279200894028444233993253667585471156812708033326476513923962133960384466161295874135470426140511893626472093976969693955344616598952676099600450308859370074318412339018661849487205017227542090112064933722389256280270232953932965065058035841751321204711077058042405831525566421464900344485163372196559853781630940219947064196597974123034670906325494272788062871821733312467799758325915234470634899062624453670842658709387728233762188824329235818930233373343463667726347830515285772756157830845247787220294602034226530630735272382497073179359422611563249944435013459741939914398449802420058917800217169953421368745455506281248242358923334830981861022868316322185658406863926350914491659038501924650560253169780198849415006363899548134095347977365373537445161616759765046598739846372083788333234970778613387125439073261756022672806795692687000933822664990072750004935833507072453709725912989785318806809614622374666707670130066225488681014516783913273235863543520967490475957062254447793236967322095325733122774897048661696845194262574557754872156769250071841480034564701622790853004254538497483879673767164856204456138057421790311392047148403984711489843747620276805671353949110945529209149097697912226242941713672503854544109400829462755534852091468934555744407383891812151031597047089214354645703391149425436565061715881318708436659576232303237407623345842968667584158087382391218746889149033121200924531641806311574941020221898677007575910879492208751117864540342748713067560954488108549526371339667788837221990922036942955936383628093239495731997307862080206129170774477509707010041543623273110792534543303185978168724371239838164453085709185236752768829518528200482134302857388835348651568950560632713580190848911024169411570063409462938239781647098252374820705389802334770825579447803388142935473580340039150894506768225764387968272503715607712976812249598235503321042235919068937571972708956341643788269156949438561746979988098443217915418288808549035581195705392251370668517517015023036699007969169537381662606853676140151056583166108997707766988736153043633038148548240322217777174398994038655788878819445970566694168721406789690981192852989704572118317365421769916465666862890663229470512730401013742027169093374171554453173454468439509653875186599578009892910045632686603753559674704911324391066915357240979350192647897036621081413648286632413664115191504936431504163238137003150706805630199539713184122942259638471388752464043460775452678950608035142283248439063993593930321452317049750413744123468638620090456401712306496162741272973344480486144139204821819322337309297350547446518997065529998421206241051644539859309079687917256014781504532267771779827822730772603623746133014215209485626559519509575840821745125347322184292709045462194298515452591774244023128669338169011890145342162129706929484838168767426512838186730012832465136826840874387920357012965927653212026001662966015759513179063603795495820823704643008655460959147434004366733837232898078167263801555068735059775399847741974750374308391229343307671906087843552629012168029739518887809427811298264750948387746339499839554292898658833176813108476904617739229547313683065288256974814079798262630198235516562378751044112358210063315849260328147415159224676156599050650747910491518446013834651666631269844069114248907505403777051678307028857410485408561712104086960978733942217539415472330539225255587276393128056854151283259292827728625767419765343524176293058062509086531611788762131240355999132015442904336939094766917604157933420622191328727667712205838119792599317988426279728248102022632326647592201872061142754450983321258126325280264985080908661069138661739008198858891536244236091557577920574230295459807668575540654395456504547403544208153089899376333583941058152170543230452611663263319248350780971490871635412264696666911492880741549707423025302793067843739419944577767342728458556970430633137554934220056189172406023121765130090336897406044477610054453246217758648285922283128270020606700728332896379752783069330784005102188407667268971871556512648084691156657822243074351705143102775286499457753575454970749581717107753323854384833717141467655172281425775172763949675552605960695836411107105156578275458054364444961715017287002255456693443725357044763894113762594610718170023644090752960278128245246921630352284373774981690620762039555579824125823921495397957186989707037519986997290976418039179737455770995482689310776481522166560827217467043754443358747730338465048195898432112025753051827978460282530518592781188877075323282937515278760215180109189919777130716059867419069279481434069330626380459539472641139986417322582643950162219630405800193265124904646803683526632015050478376938879873999853090268461487440673849302535635019939463944739142553598145434589875029152280240433774792009407619601069642959736345379860703980749038362102776496423436081229876024902194146069810480144877908612277346413541732088840340181920511066119060218877069638206101608463088951058048050143458712952613817475265703709374835112833162356506395049036141376461819705237034711215277548342220109383389076638552577319198307631809774823683338256067494900903401226822159608487257335443307853874253555630000896142641704970565683918353743704339373163202615891352258008739539463126300658395047793469142977602618914472263425241462535252465032448277508054832569157821217603290821701654348876048244048294490650404790300453714995890928294577341697988320254830571367422976047404500385443223502282328365170452388370907282303745649554078280291249836970315836739484193527216200289101028056014694884319408598127707165103356747525891904499352327346671214786807004796025034092473911011153695887482709156136873177656945680809258391911924025383612946315049973418132004268711522845984868246774262712690982224137393217920136931417352546356403434426096739268763155289111235666524331737522410946580578654218888266354995440639089874365083859505189102765808311794300059021818911680169171351785015056051660073050009081687536071761907475055598356013750662859847862214132391397361121016128797723206053361920621633981881141618077044133785697903650940474499134994205127224297035525737061361759878932603891873949300619005149488271522932185216252130919321856181173692732758617343032454919107229059567925160008443288782177889322126995788943103889992513110506964336826598889055268591077866967176095829105247507272715902414426512245724415245338828301476986638367348140775163490887021285584241947160465902548135976006110357462161309629616271022557905515261552984831807135951297173087414177917200333131265340868135580072595514111826848460434342721086681856076735234399696618545477598682225586055175368364765218545480921069167778608266712332429103637852000756375223315327851507708652379139746410796696626162714278349970454849361941610722086249679699541620355066329573155229989823989830953125360823372226379824576384557302408330863701182545597685197352346057922422568229377282168411539214066943009229239047706958726816843555846968782204784490786898843699951938971962979536472688375315797488734879134131924907377490135785983330422586549251503928753599151255583463363274737587315209383993014243557121436728519483258700176343929765016210052026547817155858345390296119468802475160731623805510072218043375118610106198337100504390290254644943060873177686386108383549133603954329000195513713026003544056112984072745650295997876109333296186709013195142335250330605895781721105617357355121320045411836906334468870905630828606468562764377319847670145435769400536495311879074891500447801481585802610791137420517769317682839081202470491490541594869604345911597337147014475792255266525039300027300591689988774326503965832873057479789402123311064749127500249745465755690914627512953268046526293453008679207357183775888008351628948336309825572756559876554395342992350185327621234251918980640635401695514357293533100704947704851734130474353772988468446310413879707140227919566571373332814521830244395160496632541774546764734787070977662066076329907362796450253055732350851730714816854799524873566703856895789327906917140155362193219922367548808134017372634815604340922093930452987641327094470916684769876146834134144824844605148926027223768685932464318892181677638719429488683487551507920703976846855075470529435010260071562033966685097537040130416522592802214529693343491393911415327682557876754189921250673621490137388237290098748777143597983261504845280434339730276116900851808259309081654482685200901731404058027172429771785427333397689070206328394890348154378196178813331733228866823708726013507608979550356168951066218781585350480557525194018522068000553529451536215338782071590455405169354203410937833219939479981104704153964767326526270860985258441780384143158066665947343124802062457326272533219093596437798510257785535257659170253943600708904683711283981367209342166464255690607133896731489998457061695190898801674342486279127742612891736338213672785844449821043472199204044737362110178233498550605900584289583452869606432092273194753424884457479638124994108927195066067192825278923667697658087129915209202181671445692568344659721142329613013753516156318911205434840881794973383543836104206617399206127621449241175416131019649207765129286685710089239165312406556972431144711705622091640239095171149389828698125027384915471747183080918673880518867955974640627894525328936308442338426886392475490337675965454194646560426256886310047973605300962365043027474588203095280685163936228671648962059321909485328975024109068191665047303180103557628161214469595158938518799539834001563412006600114117838060846315031046883913670701642003389144961223005459728343142714600887424128830667078961830907255445157749567660278759902519883833015143958650824254426386904287569352474818053306248873504141725278961172941569537264867389567540354167993249437644622193551944675280301206527504401233224852456749005239132287347286884954298243200812560854408321321562442997601320749104404871391634127615893514826823479375704728417943535231934273253571394922479675123665205826172810708092033714285328468049417981486956637893572610032869865318579956209995699064643438563644892429543756081530089830205816305497909156660582131161546170529835533698951092575454980242123132524136845209276217085209091948808133903032942482925294458276294927034403335329789769592219712464831682576753356347551282982743518086399246210789315438513800113274433180558377976289827696016807437111570122041818983998815219892137581898652404270533546976471625435828294563685432219548079324247633344357392474659828775591537530129443725220387259454955671201640550600804358893475232300185881080949319854158000675876540525388619458750121821993672308512485224108543523059118129450585252875643600663822221417657302776048707652902316489319203201364064484625214128087007971986641706651678218763612349410216139169179237746146578129758198876664308131085035158769000022633431657850820259301102246157036216147919152459150013865092647972188670532826845264067727935320386155223634543604418138794236995897895068157012659615529817948682422669375660341287391118765519644349175234414385525457643348655682025043984654444346884141162318626281855734525469127991822182811749499562056207533991928399834093659429297913167802852554255169346146955838813692026174434277670486004983241519902880859407772270054211375860110448838926125361631615376851483172972003541114849000742140787389266022220817866573916471928390610784976746246132797177551929543425995706575644908528342387146284810367307273364602492644309275252120163468693097460288628042049911883586464604116791601520649992503856904633048765665903602259765075054873721949859682252899675254257416544604082590057438750717237445439615454064588427083424031489700716143122201026829825562834715575136701827487991992817596575642124994537259399964172547444912411917754320079577750325001359438137458726205918321933207119387696881640768422234334012492563480713952329217398060509772008127041435335048583001655909471782727249472929156156070461634846136514837905649905543755717309789133245264897672064302368446195888657599751032241396146952625651338961643175964654207329054534587921575562457692898238974886586245908622343005766906766004032959720156071379086028643930561576066715439498654682352237425969352024467179972425187719177636695156885490795092515097757976971711961927403557453882357078871242071111592126850534503332305120425510640796906845514848356539286377795971790375901845396269938174505902353718330199686267188651491083263134236140792767544597951367034307302311327457082499174994953621438708374171141246854345093847262868276196314806760924243829932341037965420538757072726506553511251634047637777753513752900734209534582347034825247272965521711141534856905617533233219567947568070295797186469537697487631425817699529845610017903879131337673986399919182554018874325177156961068324523522011766121245762712236573365714729993372261434882161407817677218157061609886748049693600382546427847918051538816667314498485020870849314208220061354611855428617752698827710380246599499248574253901622406207269897657130748351559774235286968118811092163195681608139127569574121033538514338959974804072120079590504571493560657865034240464641396375598710620083716916956269805912160420585270704605822844933584401329448396128010174004020296118196563372172947582279704365091652855287529438900445077533352491720465785229702035789144219808987424853810575516796013312190518321622139014399417673961973694203428809596749771214747214040944801402909977508225326073410592876531233084779117693880499082176382196540514029377686420690011849389727827645862671036878271127713190154754298883241170362877136231295508327346890618062951743334482608220695919173793107371904632119438935268080951556457499927281837529534212516316210485753396831387152004771247070399756352754059034658689873041927950999448293885777531766334496227525233652874318868879941799865103028730206029196487940870223142602146491367859547987675171790554220580232436041659935227491385204931359227267679792098126110384403531005268560801862118307026863409121671523751426479527567349911695851699061564540766496789190980966681735156541305156260746752116590162572108680666996878786228764449314380887778028008659089684260437877392556749290080541914411375619540454114574560768736932139470306703166150744647084453815568891901871983729021653530791439824469850401501716225715666459182158614390512708319508713432699078586899876704621150824767979186718561144417356564551312280655656918022129820171858536208319823865517809143160983216903382806346228188839656210721601559975556525422523048756006901694077699812721465210388864226948315928665745464605647609268075156653288288733446161671996981575008880688497421114242026662770704174945079515050001715675330496509157638466514371140128441584949478850371658010076698652095683917699767653449855770547882399069357293217729474618950107173460979387863614035378603908694424857576507501834391824448933740922229287841076428428217946315131552708988350285555853097183867393157332029812578924929656629934331897524021926595725142162401784201616530109875927723822698829042197298877593693643516669792456126095456476486824553062316767113775946641484930265552294383901906605130654332869586418017364012089808206691621326265189271211679175000225405256792082273464661086720856032191909014009704175327538316644017043284841193510652003327081106900839752108953005823568336365318629357204625057700724167124552050470594821184390413475742809876380693344737640418018742683330389046074817463501028074529377857194462525799250172894423484384915824872134125556081524515149609915534991933013486146204389866556130107040576647126064585252674931289914933819389917033370861241067989152011914233354614943933398739513283791176829632908235007090796648144418327439507303498755417685505933496687194903751718300011235152922303071599472877246390360415598074530776218189017073151083371387752229014926893475970924091319151518831619653285233807404528961677101973671545423906393694736137175967935257529031700717239239316362383611054825018057616045125549382694563274667424709174654829852950428500024999257960320242996414417194710906293582504153499207655310809697958240398711726492070033947951811197826831859934320910435070761640370679765152884233331420139655525111182648955288826428673654749137333468705248173344303193927546767542802402355382952860775046112969258674134067372275618182435242464173957008444430466992563212142853779825535958967528217683368099842332725089464937697594248482544524526236083113721120038745431588198391543472515961699337455335508337961841170794796440127107778105067272034586334246003014367665217168630205456647427155531292310407357409843858310251767246058027757908606930080089745821726682450018159890939794402290648172260056190694866758001902144568888430905641333802453094895184424858786728738218495754825362440637416250698848476620281896128388279012251199605088174143034289259427298437722658196539790977647962772253574318640731211117252702090953055145880645682941136456273752063993517447762944855683138470657304513881905382488870408053408177593043733321730353227901265478352959594320192411937355315955878665807988920227107593929073836406225479612368425873655741025799852822889531659859559080362790500979512840713483181174032131110119083241577669216723611978050149685357144231808329720283846223960238783361583556534817225739775478279032413266186632849077262950244478101906245208101213004398365509360458339740901875050852134748091831215496375764183416703445955554497734198398017279466227912866713855014844174330221482407164766478605231697730518883407660972881764437797567321656472103772392628136813456046280388765799679011188662933560061948448397376240976807937995724836934273182338665812272193070196759626774255880829970907490150808255970078705279954444953197157224737222414770596013959924867735635895233631340627652319843453445963207002092517051749737814317137664419390526807013292885470491314299910244872064633994948627242824833791069644049202532825075453483183254867325849760376883671261839528665738676273170937118918930100032993517445022315641013680377353036973785031625701905671749185706934739834796725236121043606587918336065409326317345624809773388272818429452796595525390999514940821821697969523459334062470649290737208989715002715535740198580049500672282338008149429463685732597670804634756773861944807411730145993754474665526041374820893803741333594215651714090922879063148817109322127732007819434477654478081256472699882813929191023963790952519744897246665167735112021307875788110507273276458886757245378730419768773362834556728099846014387269200378144473348410395861649806148778172098174626966729923097876385586135331767467150216683772571239094763227750957099882730045776496914800625162610296714550778665574911593132638410820080049750715441880455480547684068179188408488731874614890181327429651753268970849207730213396169053016042176521324071975966350997238767551718777588126365397566988211388077223611283202223660527804903910190400254229855737732635944858948909803676523656021640372914604157532906816597668817081384808527258655184180516325015657365756061661334834426950839362864235079853854614509530547646146593825460320615189772178422219172394220205831561362010938084442169340219519072362792875329147913703716183405196059293764503801013397533428718539873188261458313769754114482326424363550192841623470035824393272109896188404355543515966241504795175481628939858869215939400822868603582528813137012026696131009716060974835098588772741753416777865550094665803954684837004243701856216391369106102076135937808860841676376593583045099241730687156783364672067777273118499604825258992656762965827459379979887184929827847400355983906034323247400119935047253433488826506264851403580266559492649462634506826729297526709092923375513372911137874636172691251871288867109564412064706513867414621178931207521887866313657287558336794320839061635715283603019270082583971078880311681237968857574926331252361377657856914391132176571073960797740263343197825024814986912925837858645142784240471521554083838938864255564190781141593390624709431182086510284084231345515405738262471094405713922280874261091272550904659573521250837778516502656231974069053132670644049098320736896678882354816388284715508148828164011638258982299742448711083909822256648145320554049901558798186607765395893708091011765055720499913229099755269436527381996191054041849689523255061258466365768214325395322912613106435619606568727795870087012946835294649796482796970034158176716164652729888280341193929788567892366656927751314501253815406410030469796973347656676936500174504893363394565323830147819534213390256263786510268883989499884502523419309808196482901200815513410585097561225693638711143086968170491667653057563829207364523749217872862977665126585997931366403315242361320679863137037723797084759458119100486883797893258986561729502736832477631152273401616091266206027786411723504608733489322449462325587308538953830640781616930902530221272717666524396984952581598116633764736444289590220647297905341996322610741700450501039477864433871934797880699049169172765963972306174459367224095838658508595262361319571595048492869256284739269444694712712996187586801013454881457186027469833415170911585300699227590696787092876929094025825340551801822644065227983674601340201229587879805400067493252289464787042027557473206284834242119681968232350127450583464310584268711846768996959217624025139706523372878641642167214075408521116997041044640632045463591906980880405778458717106390343383166403499026082108672831216559074394926004957762841911137371272283674138079892329752064238284018538092050871850973458851548431680278151168244816660509946518416298550341329463340446895887759999841262128457571720612746893471835921207629846126030272209633014943738182584129385165060714326635881359966465736498484015617526959666434917618494141642187592547816786097357226469030155438338752563057262019362626423966917148672921237168728032469996732427419790941261370232466821633082199578101590522336966185752654557719815935229761908735504411198512934835056657142300094857195012651066082780670045401645425107466995046167672438576719952189872839372371350239055698375623920714222339059134455661659486555633564436357376385982294187799171518924530726074219168671772898400800875334756797917227161172275232107827666213786785282635442006060325647933253501412113101049805084676176446513179384902217858088076540535114128708926228564614962398491202382673971627532530525257026029627389999975464684515565187483424959576918287453513139035624425221350940551886226366667181266520628092457518990598872476008980456793732384172271559120985747526830223702300719330452245771405313233804468409997706927067424080457129514710906839541373595355160164274378477112533796695710818745587304580683941046641765900045890184526945720548170186073227468282737113138285162504497949175083303318798124481287275315928363814098455344974095526232305572116262226806023244001138757634584485064655358451775770065790046408771828996253643518780332377309748074482592319001264930768339559360794871820250006035948957328295361425178047060872972240477256296001416737240030119737222944687105071628347080230438622631274444652563778746352661950452113452159183523077449599898361799739039781978086767805794347827036207987970431291094468751015318271416376254632742942404790035527539223986800266040314134423931488430145049126539130264176536884678973735715888054086242505399570451206358757239253774759446007591732590495596667596454713052533499192267498802068488324894197587122866678264061339513631103580143557355120286036304263113223552008093427182132235989406684781654647875396718575928924607754464283257307235581610015081442114245826732890829358119314682454594409473274869993355766691625763184009948108837184234068287021329557256659370524944113030554320899777707416217599843042654683551683544635433057178092592078488543706236640313679736429081256244298838905992728938886018150300491023667023641436041986150302860902573107066189031207900121474910601060808247028441736861516271118417414598917374032107066392213660957564375661854974277964195028204202067276580589947429833563306804895205833016513367152733815159061939554742641981601568320872853238792830665497525392356415367146105091408330459200382065606622060948861272280133910151530696508528500299121790246441703474313335855854493421083341333560976812648997730682449455142328812506030955285168924117732436940156846063433963850615982188716726406495558816851006414532591761845103001279365680427880153365569914393695884633772477195736195192568618746694940726539396659575185893561878144451250943007964871664347439766502672198849457972863753342776819115340400559464962392079213313247734937052225851816391994534630010107015032358412744633246133422587726733717972871199079255396997127360305360037003866519606452558202296266889273606857969525911679553385603836151738624400525045357357040608298868345856832483253516927336876005684879302770682497674462756561399503754152957980513308144865123262869507937669571222216558723226260183080165647092806124275614865932180078278481453222137248612711198976066365041392412102077283150644331042947089515781267578830012615633281796786425074383496884284091289708349332006089127437791293050936263268805546302656845906817213974366723354337240767479007910870340697782444941274056366527361821594511900259646258959152680297274876947332771102286380278683853155890397149330968183880309398222949028771824408368840193965430631946738419787740795570128606977268810807450520704636565640783980652523896435965020325872853226367168353652274830288759078424434217829014178000616722076087427761144826352258190107389162878451712497319928532385428616066833061363394926653885177644901141764833489394281089567258729477032824852216021693344965722035588956817224314747594367034904811230771540588660624902741155395264254271553044354607036964329225280442303605693450925265596999759934422893917125931322984428554419659478735555424126060735763330674446257615319349921085559498240771259046076073514028838684395010311057421929197961325569232365125643417643159897878851889230762595417645893749873987376468160048573103659101584801215625360283056570478625391652079750880434405228962885699027992184631693014913582588932688097938354669695626661762293540345412551396025796967661624136241332908339029026703429219368915307504128579313938737835118467063922938831922921381658905024549991661402420616767217992669820235748443622506306295199713641515398465862395736036948887229090637155354286072714866294477748592801996556145525313754637479327039660350432064396071003365634339495424908619690524812774341072248266691786043287327113592488140814364146646813816305280392597506576715272064508140399975819634519926934206046959607035071220976631261412865431805730659097059573301783364736799397748772214464856754726326973051786333625467137316801346198135335616861610837599791523672891892229293146533317543274242346976928738353514071623746279225238325603682447497351392217357431192594299707000582402650940242220589026206172590363635927172586686904700424981736024278344704113778413293027763333765286530210655002059693465927748009669900764744638735097476217062076093745944695258698513266714590409790978846093518851826302528772607762699459945929292185754849917270157317178596106432290201752461178042782562271971310801224803991852649945728527873912645416483990633288424047903555961955221045200150607658524694763299355634388585833584101947677153505156250651548441123871126450038101602925883361380311627108325015611861773367670948265344256700389865654515261990600707249004242858810988568802192330202846427171026578855703835197222290493074046512493297471530704715780901286504798606661866937899386090559063251000937848331096945461739266645515554193886902521334938355592777657909913350979990218804998568423719559141675551100077623809362975081182749939574185113907485931477650360402493002055806414540192718352752450852109455490375700739367291222738325848973209730701131620012266121112664645740737931401641087489730346223061177488126822913337503451572953983701813089497875062068153594119541340435373257351559192443369277304544660417007262418193138959808511094842183824307786505657996960136253072559928013649766029127796529160256656566100679814037069921866379931086527986350843613750103277754054678130023394900145594465422351733774038645019840931227844269389017035912675787577928503122632347548097582358160152084347279713844614439578383208873514359361319893012666015750705162884575594541600909710917797971132601405215888481156762447471365943917453160512228230053037257390727834524503000233093693707770285964399617372010095108243908676634852243212083901909602279100357049391863421504089303640208639488100089454210642883792091021549182664067498437580638842564486151141781671000962308420628304909807048596048948198440121915866380585079585395802535311602958685357283288809643838680933301327178136789183094495956681893425759844982325351009370815504547225492459544273878677225947803969063719785277312396118358216620967461047163381744088586129319340777609436355329449090017743366487736352537708074705040350134863549862414901185158414796332352927586391846686878812972909248644716235446163504166028685922707819034452222230316517568446403570271264817298729754183879225788087952897000324531628249045715493454252694541302113010845157420264642467211141624192081894718707192580601913747774892550537490056602279165723651194386537432714339832730814013704281879788889545655400861625868912355323018328756568918131959428985897446610452589273460362372781711035263576406601051839016100660181871966252336364913914225441470013918793625208746651077484924934346872926587815741685724448451173689567251409829602570132272351849676704999040619384140827647094581006915054786052189105953559910415877583694959895352834816517457343051221547951976028299013141356190793721706041032162702229071955374159390496962556306602922816547671740122406715025019951826405223782483645402812270271819513658188547086425382297061349483303086501742866324610937942803675813436409757416459205139765364606467316699206199211304104791378544783997018904349740815611467656862371491390012833400264252493178746451753686614160660761724384134282788854222418911926924059204363098282523135679343906567216477180648802688034350825062391058695525719879996618750337925043894615593670932621247192323912538462464682341865571992618176362109458825308004292891565118051474900230988444264482790885108545969025594444337936629826870770529336630745249059061899642102447926354274823753442515103524827841262799844911162811775825306792139697664794360882149054707388739670408120672534911192735904945403511915399164992724329920165220013127655005747452494263217577492293104839744746224735905833193037132117192380773584788803414661514816805396822737543828874552936189974542974423815072492310875963909999042890705099670109477004308360874412090451659450135269750987623746519896229219700005444368561163466400183396644410404398136253238490845693152300322332582733449698748242961029728440261623419286222642771073067436297595056107674431160158288440944871606851119867730775970235856395561443005997066577454169081279118067368048483263334009397274677972842403498989474609344160424569389123171370594685866337910884315957613670408507870901090100597922152158076444692785702364667135918379043414247506259661410908333029054264376743671816618619575844923348933273068668346625632663771861662066416670056505516876925832785383157041096940656821398376971393465544792465535143374475298999080906636875582099986181392467028514034213496221964970001982479099532260537287758079593142054271239301157591586814753703449752206890656368560124731443218106741396090634859847597603510991162280510320205310877028155418803056095814949972487481074400349017769181020065568307659958134564846725770394238381895075285367820792858047337927198126689756220458740757006493715873018088500215915669911174468749887145155034321478770438314495292528402551892009064694894821731552334722646964680555601826411014067740186565266981978176671088901209994241885115535991925682992681685297707648664238451758684265576651045029193143628199073594323604445904746974690220877170574826625798797117199863975758422158167518380556430245421718420766851956748591186943591371916368623948907767803414155193518789017303224813858535132777620823384274447727954314701456355955257781676674600886609467361922709343313215533472793287793029355318919267970674985127832014103483232176324968726950510719806880300477800617041797921325552453387047835688783794115040786033949277966464411984976848250454768561968072636328375130244876996176436524232180043232691912715805425951306731850501626938359703156451202774351100576677357543319273916366646644522875723990831229436248056187564659784572078345955796429253254923187016599632339091607708238748544199397278221687375697527600283320278206940892152380311086132652275747154034056448538207786816014787958278763747359325989794253447358609159034510450424534169336124292416790332033638218953341460882136317099708225859402105728533013250841184152038570321724871842073126450462537293402231858951132757291976268927504750984641746627553708212615813888986289442357947671829398163305926649777023209979893793446503510592803042214163673150331630564182350754882615040082932979164521302106147507929479081954626895536463544892416529637219226757248359266265116044582865699467698565673198949811714855622046095592633376644933949802105965967932460246833006204186500858187606312972875598572756718670757158796738035584874036003135785259463951167600048158131436341902427105917765538584543187892717219422897807801710949074319873968258611669670834456333154016687006671832205862805789472896978635167338956206416703346703696094959406171573171093317693866456763512929042883208416384051447890598091868227984748179334733465407985120489176557594464615853982551063622996585213446383137327587131099978895955228133362712466462467935921280871208222869750120002885543739260359174110097337096980456407711560177837121289853148078884930958309058785429464743777678760546319471026315051996791037365952667731799058549834276806031537860918880054101510803887751128509447606801663987281310260227640703082568858076019398792585871516705056143141361026242110857473028659505944890594147799920826300354133779019766301431378025517678425554223987284513848263903837575651667955733474013866170896851799319707122742921418472309645345129134563356108451725039157719108997045044255295217428783160214260339997816102973921038938889262696085136388214041116316495532762011299117943836792968237258043268878291379296588766411421555943333221832572966518233729176147667648802638395799112407409051629982561046813695648467675948891482742463481106809599529513496517638586463319587748946839561911562862472398052430646975875095856418719994267478002357015020951636855909328782864794562277071610899179356444729376976028652003274212840065417748156612516252257110773474110135618061122709490460724485663144917703245164279634616091972979321981632483046895489480952110313234573352306512690913331760616594977951872051008394139159056796950304948021149392387809451355124341438687531972749942362270858188943702019212838049794038830397671266868096221566635516597044382897108236906797646140681981378085702233821755984960643950713375769450041193586400772992264703453363011844824697456950509837853136885736139310481942153001981553366038834167271946311428092132485202103083252335384260677711328329295803464521552834208941231303736963461897448804452358518309816004297432868412855804241918203983993987855756765720573231994221420624270146591161969793800048248475397230137315926016385937420651391010433737350715985734229123170809447763027407021516970151769772724158251573257847551385408738962552933649446012374705260336440677003429935869301371509016096161843774613381931632311597026427937599686499045743007297069692019155641709577224761621259558762644677640010815576682165073767995172179346696507938072440310698991898558307703395328406572386235152970530063260577825971092236446266674132735420965272286415665065120779275853480541536170379862449820907945893940387823805624369248842193979520207051269076447297144663602358164693279100805755659573206727924327473649632801865482914040333836435487237693203407378599752036852011559357440498768256120340135528027086418713483376271148939593627379151964051663588163561835632182768954979116472971835497118569735427355979707844417336253453336439436623440559858967163071557039423080524790064010719600390068316041662319364924123337094459268169118399000902988205180948424995641651532057826987864087440551422653087853400585422716562360597584823842914960555389751707045777310878773622091086539027253885332089169230602120110185730919283698064781127303628507559508662485045772730273849022491153735827022572573089721445431186602237802352205252719069857237695600831285155730153966747998126657001807065972161044701719579114503069980614908577053383249791851143977617585414266489275725152916534725276505468568094007513187809249186759812761964682197131806004729198917487551929707420208758571057272920209518860261907382161702259961863124169940732918454160307912861999203740186563081502374086300994162212716323192028286755337016349876267854498978025104126757517598250540060157805066128094434536950649573751018779068458940880572658039936540813290016586166256095505354440803458719554838466557135221773555884223621269106505577742196428712649926424226113929935988960539926619912844305474807516841923117817316456112521127713314876152803017287799793602661166993475841018836315209063473170850887805400204699835066536150954313863136624622694300566928153259980316556382849156769228552294577691910483171154836530515955618738502019681774069365823427478289681868243436572662354056038300404319605563065720809710001205721350364049420560694354634585664645313813151468253344520712556077167301265455667816567937922011123188749209612001386239570986683227308118552624341334458450266395913410915245945171854878335831144832250053426119557875895563105998417530854296388343354938571875873790691207226972946776851742290461046622785050267390153623739103031764074638950273219716811150955258665569459834812810554197373219626773327417861681575461193181558774095118451323667960610478902098544991747599522222443092537055010885205880638584563714905669234903887093206631782437980461151154665898566420737331374049466526845090735154945235994657370775572762556232598667025193990442063280586509256045582655708812450203814821208987500611074984364375326746775197198608475433243160219658885176181003609210750499657825251078029497467013964913030448606090271372337647818258862193872894079506002917511112031757478056891672072649662578851973434757099615579196175604099111201284397481836973378478883810493089613879058715784375883435951195733930198316333706414413551318000208740609901656224184517034907826729465795576112886574381979648059860626190484741406517276644331552458106722075206562834822282586104110190237106214933924413410617841415999307701724773079910857483373123587331795842887959822318709339966309026196759968049733681981631746848747402563541314956440380294693085236707359782884863585825018052308281406917309008221566555570625471285540880456858095623779069575927980170277939529618852105917242441311369856786816743535814228371852523150771173664591874671816779815832253460587027261050661176851515595990460282077611958008627268379848987205972148236780834534983290201986720839792896532176872761569179934169398604382803885319684592135541026956196788016699706492213808756359274144907785901708062836831556003535200163197323370052757172898314690158176636505145671479158281700407470249524269876544456196057876079653134414057291958552576280007720748467759334120741587995482399809258005999309417492965111395848246598792653932124142107029142382156710739724426847578796057981974061623038758702149894693664316584978839139838960406689927228743763653792930919060761069871421416526797873735825852388991589679263739315566341911925375424826712281416112441881813467410298283406126023924083266409000914866640642097143187687027181750684728672629050822855301096930398075275616502120944242898727126158228521868821284168707028497977312861148257627064891706773718274223732637499759092549909078087461003996144537051389187279868077634898470491658189659080056304909661144370386759475505726311275461433837718399323556569910604848678794095501956046366093615232548006115150660535831910403223739165200673848983038515467511784929247037745809638438910103485831400491614423333724587862426517264830031112574521543884941098089988922654282816160934471440210011434998244982634561871755345191539823093887902693756962853128969687119982530030927643680317372569304990376757335671335205254571866568039866914550904429894635903444776154851566936404140093344045787793701218508027117496720982962758594690804070549565858437188283818172852045058190512642226923426595807539033033598090258512558938986569079774940750056982083801836867543248706810346838360632605364092713971279260273120176242468845782523504097988796783307257567034286010759522419698606374175130496248891279287656707810490193245010754802199031510595292692079257772728855067945525297025352385956130665755249278381312375728567773048680670831718843946111592080449638904930986628617535251138507119472551637956473894035645696082801572890636869987398171542351367984672978959757239812620346632270820961648213567783059174408402767302843206195486101193388589192835781284389645998049158744720995996329587435741802310059371852044984386015950771991023658443955459839258073757646382211097827832294013953218553776666918504367614361449423992908067456409023877535386754978573447145555498110021624104069159183513139646251392621798011501541143836757248837707476375333592784626389204660298033753302298719284352603823170988958534005275954374367922052542732259078457831891455718196266221017321487893943674937303961305508045538819893959105643863138445103733168012260241014503612667654147320909929923889718636895815760291038297014996846939359339128547410022959688176380675943808166507237817824885171694396213763242437696615218409974244830998502482695667303402023858057966334456730333279995858960049147066287520098040437883368750991307100435411579346827032791951441395401563416099821520786508307632768767766602678270926874206780094619476460812790590274921086981881421710786239292549698264747877450078540464074170829497958524584427072139537292313097862528958259385849624561192237015918894635483527834313466713832645185811352214801763020581051416979306235180023773641047835722280127524529150156018676603958306682830929241602149029730900076551142738873856336682794722272706841436415030458649998134198592728341999009325282520789597833787422649748964400764131969515042447349615753846296643049481060762680356595899933161624742264765112589024321823119641421148467068403380803239667484924438432855210675409441806584922509988654968460382823609038905189969863269920305509868953979775515278912010143186003448741241842385445946506718731792339584793279779101260105275674169518028480883910612466643560457919236949948963705566603869960886503959095110252290191565288533326923232763947819961320834275330906357093109004103094417150532858145911574750906711325057549069052037887286731859695506920989385845094769501960098400107717634718708593217870345838673471050894205566880335999621758629145341916650165977900685053000372575735583050632519601979320441338893790585010929262927429051318010783474973133294079905338925852759199581559753930078236389766790466280810655243526169268946966281646562071093746491869187227671359617130488734041463388972037043676741213835897864216866153546482721696612787128215584555632200473995658149389260931526840063615430224903261138114321421105263077605948028698704860743161323600861586710052889416700613911838275735074371869138146520308799294347514532677798711834958983003570087022628652343097491397544445315015841268236126911698781168886795260252642693688678415657055840053282073980640639435511944966137084733846916222363869542936089258779484950922466701314821787900702390692809552279498554236031176823442040397632591819331217469349888662945558233652577019782529357486015957073002215008715912786885906939913428665251663216782322915593153462108887859406979077480407083174686340279736227914677127834188195870132964095647539968330088457025681262915716238807003161693201200220582832686360625199169565769083879655040972996014810947049758952041865636801549478285476922358141513402478982934958234879257453543690024420529934146962933982992382488936114806907694860454114305374025730223438900263768924926971268709376218976643468138892177104584914513371124657954303990205237574935908254864433395237030521096554501359346915203293366761931480464355340137544456957346106125709839253253588156457848712848586827045656394094902767847549746630782900409638455421700932945054890618659562852160728629809464599004980766739108700277499845176214835923260228848599675815136328116521355969242145324174599232890325468968738705335238772567610236376100755347122796612644297870724097599009475934190356108466817418674242302150767695485664231894584185589755734922268251317548697649905196280052297224268328972620126451667505087075564096179324814694671351296846702249974243628201528063217491864690203327551794297260006493438637703994201314780138356972900180663426967468390937878673301738819556025473970193863464120176225475706418096180053116029921615364749459123084431900656122671085968939989204976187824971741639702245507957897467895916428250776199575090913489449371721310425183257446645073348768364131256566364556362240066793096017977885771949114980519952464385305689608383981671819578544871033954161304068852721717094631241955149985950802386349655629407287085877609468627027556207322110042340947839127622316657041348468273556591178953237505134614153895111216365277984672279641707483318501879048090821596792274417153970762211472180891724908952077816609314081492827427265865338112608808965839054646401659239700241336900489783069117076457473907592718047815141475565338629160131820809897689241993698267895395878967724219085580907247224226014664530424040307127022584928866644887951988705901235311364096255329987269991622920843027132820622285856553446056045011163484981448883972683519975792943435478019350742462605243489927468489363649913033885864425403544142790633727308518351945994011068803474918670984824743473859919130653685239258409979237265983204141793431996540005853192982037797305562178921043375120029649224100908400457848849187427308046488826047449833328481036261583457914143265136755435502340747245200504621067924938566589342782916965972416338718394089607177868206514051874967921512735735986503345030899675555813451578109142660257372682784417527286096261116018119016812307898550042572578141413063494966204459168194928706660305386400244642066361753070873276906038768616470395664282119595515231335603375999695978951855244364913896885842847069375893981072458283864101584561643957967865637484363680041422762929022208121549971546579456150415378906480360997135310577762194814420151652619636812490349268168682005189322285660463343701709630225861158704300381060150844312652904748983247284303214436757361259735375523670408557793147671331075536863331879430027131692800193114745020726887125268935340527676821675744722493087715636180822362019731115666196449379669489188947430907155584424704173688088458113708343644947722783362673419798009474732906357655991777766950888362510957559645079277119626390384245425468946782262823465735012093372208654653216950503625501028517083708306501334066194880727180520927368942362457136276508846303376712419949956110354064989586998804686224421729921937074301546318604491430712719711272968517086506839615275652770155811141232259117386748233911979817949230735151551717148598383868960040045456159547160670128807610009216897725165757369545402432187498920250769078232818821695484102232229809516331831339184409254743729316685764833916276678008939462561824134982502275745061922713739827585877942910441090603004574033246371723071879566073558976089651567373054932003961950992936408650506823739047589159585079318228383531809553765922220376423624787123044258589094133886756252875152618771630109366567758943210856959451160719821598680057321020023407076598104505891670362000604313154160977160533678553222301381268718914763627268946919232097664977787996579331641949332627041778384467234419581504490532645740788846416432541950997402909797420320841037109671899101855015161750595530699937370432565140872736688010510740366060215171868391362609524230200275024524774529849982907745295369809809120972507783881823320751835386471163599746527060685795915896104906655549892833390049762509362555914796810961847326728136154857178747116451126284422819178040840641657293061441536985270164630750909588272380435019268188655479079627982827715028838876363517428796400889066898138490538658903835117757118987949431056169755151663292583871191025692102873413015042476658077565322857857503372516949175568426891444366827392099870444978125090679839329353855273464519097001032881485435921903685033184717757983877575051544054879881191855499796025391618890410704978037536352309941935152535639055686179608587128554260026712288613167436480815979945121520987193869117803433811340303351745131925570019930803018969152235598365854357068461361550695091530170948774144027500969772850898838804770172126496340086972480160455569125499884481075493732904813440077217229210951882391651873971305300367619916556388759619376409961820013098896572621356041249677914893092591724483177236366937162055202038004931862002909074163391227301102178754007725735065075601193130517051774008193268104916291158515839103427809641803462650257421834169315372323303881867550407429325882240550252905317823416750432605029607518318677304703039977592919072099982011818742212071645058350698112583013949830933913018030433715621226929734302240051546766934409606071979368129187319783946501727732489161359813290138316653166722789447102803933915918322654160313721629187246134259499806844087953987401260752670959561693710109454379984154016701827886781636056900196882005102283132965955314483427466714555388616807623649940631396097155275038381765977558537346714956836521633577010842950511456785402220166020733720919994465928796528603434671646076121072869216411598916601722999021008579687953447874143599654488072233503080691968975134022067099466378158441418250426604971495447493135525868983593116447058902852314625393622303431570930791915862578775704520417912694129805370371666847286308083976992856489091748061703272382459516418236380845295593604274356538620486250275037067721826955791398771022070469296665032509542462138536283756667750405068792104644298121830202031472853006139591588608604503001420808579283629206742561672842705339763216546716142910070036166021589211909124625705846099346836361224860669369295181138389772070331101054121612557478809727200007629787637598983747749060703537795520733438711198506443107057999554013715025724808095181827916450682035520152876354048354570321201810578590682799504758267610567954341757312728412745855573574204737885243738922849671598671904974043189768732648179274571524158342110777819859355142826336994964842841780293353096712744550588214336237739104326101935739886985429542789519647635923270768266410363925107708581587018982667011065109388284517910748678685816740166725679184909137629599444209116426429661330980320147781267066095763884421142632234927372466591198794916838352466647452975903331686933049788936967114152212012990803023989189912838939246598908538584839713766285529026741141031272979865620359152926177721885330114997932628941538317821612910137005229231362598271660783463307983081432941903011753876019135057733822365237658017566903967762158039604893600245405508273424587998138307628206547656966527621685772935317359869263483441741224940505327239695491112793491739270382881444383199016131065847589368632216962268896811595623160293947676700360333894321110894939719238400692652346700195615262957428534130493840900298987354970571887550642000493468283991860727900344977535057290053921737033914899695726607199313264777507363154798316297825413178915742104657161628449756246451680725018579492433086720465065677266618065037336599090423774439242710253834913057604903483916915612712263668326163606016522401357041046935341580309274796596420321691699189434298320517125751518050334150885482171845513894697387731407022554640444825492898925636925765549808874668942374349611679264472554230140585904614014168684397382696525224355147027259214703122368648376382838761392257348079090808893876807709921818096503791924075145096399703686709053137343060252988006971404551383227921294639719486067903271992887801289194401150414919222763752148290029855518539077469905318915346756068896292156050720757335968766578308430939609044973616489633049870894673539890456807112709308090907598049532810237569770411052957575161440546854856067826515164111736032148722706408476438805706416784255096837929079428963791414267745164312990049024176595324482706234855785953498497805174095831483751359254944776048064444189431747708473819181834091819255164940811560037889215131937642230136444109900456264426537146677573578509293928252441468784868215812233107674896797705372461389225151527321249256570202164735261414366315580186225820909008411363297392359563911770887502314280966300180191835952153800522624605507310410885178552324100268097084538787124318952084049002370114978029506522520440962988700895468083542800684429565801613826459693097030200856813226054188326960371308444900886345744639452343008919010880136951002675215797307008071136798490332315206509373774967667628747756551131763587800091624997603530758972768569133182710067201858045439233923228400923680659906348388893997202000042338606337126652686009037761112631665648332594296757127846139702267067919952026078012284768899778731056007454411055019355960854986881956087973901147999313496457957943434030228136134473757630603429336649840793167006880294421618687821616971682024740969853251817528852266544822223519806985541328184237549672754328086657446684877254404285753485216504588619904820330039306206436814896706378480684483118888924140057934514898374648381811720743660913777776717210642914674742611837708390806252542154740597433512744399850000147433642976790440477614667869422376673562902216798142923698919474656945080010311163206835912904185526848884838505023141401838591065909018126781962407159723016881721697724591777953338334994077215485226908142612262562149698956922766434527960203560651400534178420884812129806376010343350281896241346614455064465224858287859677079255064973013908451923730272346908958087694616813599720729985277381873937246456245345858253522570909085107828206285629697986963176705553316470934274809204331331838622086090689522082137605592857330651974145950340407232921386789984827517143337812625116884690041887510766863843603184412040027961957648036356617941895985154350580071423305780315435318170409426176522867394860175807587056968277552112670205287551427593169952358829707002780516253804405647157191855550238713225174295203865448877315305017813813016240362461055889909411545309730577515273597839720457524073257937109153704819473771374547287370967380800080600645355804239346566019023620695219244940377957499966963976979766498085065852109426378734531688245045467027964943000818587584636373166904834049068305423248635471057552035416456453462359741497650437978539113672483848921774836803589281307112473962140398025486149451909857895015805250975896502415240804940164774110355421461631497853226219360794031779595446618096578600808099611337719247657672765265373285569892718266173642900881489429606396090061482347862979779232921180974474341265745165649327564542215574303244035829235125507393241351915605937535809973503990989403771654771623953909052367565259410919246079414408734632872785722715028012510184334567070197660189865779297336078745557949312874501898826639136485181350027491880534848737387046843430229819178783151201427544864756406159713054099542440507800266954371628618713769885732627510590934431593848124847743032885918906793399609510806225852363081352942174308156714277560816361354951116259992205395177287403743618686494203225227555378233955154715272959689835554863341376233619735408331085777082014055215908149137558838178686788997081380969816881373911176150130762801762075739289378705848620817000717372985904992901566282608737255853254266738468644969841734348052125145669685272956879463708512268917151420444897271184910644306997102199647352024472253766828151622597928473678771526819963162718887121805508002491021368798608610464011969023346527745770955695230270035632249484164550795758312892610616568404771363772223966971056015302956813158729979062198985488521376174546045522546170944037643324758178741705715213665128000153421729287685085154482524663992754794652454717864059022918279848841658376994943521978417219146410743267016723879521989099740162229081999747373104209543957531690247465600853311319850999003452013566706275988196552447951128231211914349162740838781917533595494758929402562215653229163357533553570896270580774134039913761525407801176066809616541662494498217808099760878795027819087140644761168011983538846141371988074388948224335433284463297950628026978806386131084718153606801020280294860921863485776262410411145323994277325499422670772759498810696966748050149803767260545813874750303709461701959491452695055529929778573804925734609823048551002105760625162798821759868535204568754581169890598002679204879414777349622612792074028592768753805234353413485322170713190384756691306995561923726928138777296771723466364129174840101981575737594032628312878171961287256575342107583287895431552762029896568674704652428089540252082451293963552526687734416368226901375746915962153092836563440416029551810320341294090300085641252969100940348993426021286683410257561620761627744513972542264382358801364345781828976144734585663291333418160477282406535725910829851795054386263836988142339442760882380298243259791912032386163696023187693772784268290283179297731514645167577004637603265082574479097965598700170653891239328496449054074426757288250986714707498319241040421696330065829506565242920450750033790920911032987436114012321922575693385542062230396773310734426267591800262362036078629997756066440580192871455204389381293714683067836302944038923549443449886961262452142287235536073544206443523033559293477810433087124994678848467940743917934473864733803708077406124171998960864282540815345489821430725880315951485117943859718780614036439187058110327834686602410956411897309586875673003100767156447672197293460770451893410877588913857600590375386558937790114744235483132876280634506515333816498167574065937480125597414342520195829122070503135722794106588520789659306447315291897894075781807116820505329700039086709606755211769711592615014327940527161390554875868292190495888250676361187426081617541173632135171037827957958698907588959638967447909163076675621775748302456474999920061614164590764746299355085924277463379193580817041244159611076938054801718068999901121295163197665904784712668597071924507067337240665867925841838731343328018242257333054512235776233954527822556739929177182380879994736607977762619249874947991540131094580286815760914324759119621541831747764670007801648404629314810249564412564065372721055896154039470255651984108171439437155776831402316500782054007478113792806019439158950950194620161357528709976717935083543876508437389207393475114465062040353162483291750825576150509736478834788690711774893848941313460412962229635540634699685334275875349688980377386841787579010266112892653366278547859183577613856723988243491774498880412320037787689982158952179359489834820357668743092956753327395628321317316127357936205817483941979816131707962614130037433355562185517756880650568414982910874737741133268796014473268056668918494726452495981372667263785886937536055661215010785569063205726725159094230249362680129385311571492793160196256758736708913112305202118730557072481047998002852769995278807596016792314427728844639065208696850617356296716593471623274754596948812590326110087585398572933856446059990477846994627854015809261016734869839866026975767190552111909670626407570804920010108687615909263782314571751864030170701661195759311875463534974920555663704652489291143738562977320566570130507764726634896753582048023502902497460619527997640708394517009585324945329287447780785820474489978474264086765088621116537052067326812309424739417263807131810582063688046152479790723360002222406722354075304712224079583748823038462088638158289077066057754830942674110431448557955796712901777111294377562075056584900692273304677531297429464063105671309226935801747406382592714058859188027895240796748681042456956065964587678309423609304712897011064681329043506763897695702635434961819567936859834818687563463874614556205994333708976583779105341670197180204193540347617490382558778247770708708295876209887592974493283412702790826145644425757475421184164960035574018514172941201268815224272518192502563417741817108520120688516314776338584143777048269192736177309330501011779955954021908564917172829929532320946586553204688556307788415249183202157936907424020331933183988823892980310734338556353544534472158554621292453047497561791031486611034968467496262435001230965359392604047719161447690622513305587571175113643047980044883685377089290588786149602353730925487823762174552740402725057379938831340429612442980755971312253707151076295754113987857344465567094836597084187252077735323997634710872197232562271632307572727943552843704508893236741343198815372277100525845466654900651993846784987452313401560741123859350495357669554772860381361651067711173606381513539201151845061223470450093098697014360799144033566250166233704493534684956997398908356801676426486119805373630088349897144377267325683962199557413102442347482095259029645781814167752287250165766922553309528945704922265738943873393612752391220880721459576323739816237168691736333885321106911214304676368534600002746634667330897174897395624555966674063660225561414143054421766072012008281043019419179854659938402162706291894442500714618827612458201150827299961250076266527490334206810004503849063127017899540089889060834534744664104177852886292588456370021207792439922947472398165856462487983006856277615698249033345223794649478562657797465334712474257194366711756114786914523201444681964342146014177908275931039346750021089675019146330845076613751967427237162339181538197888053025001509405767408540489486387190646225818336414300864374212360196245170024751450199604932456040300287088756818189796915048492538830524762327670041123055307501175666543082627679122653567160850368580647111757697036196041111544222626148749610640903241860915823785281374691030488003407409684750376386141877534985864310288173885349297563244275287972868175432022616913223263486886590089615340858769619464504829960810971875633175381015661322383084681751386124678206128624885783194358689025279481521837737195321105804572468237008356198379638944292459847944876850302066669599801494341025047320875618376920703148657698978621732029248205919704954686401638365608436618731514257358445157958686742542449406163360288814664843966092103463539554516808862129325148323550722864296704216940659686713037684318191188323330380517519343445150783085459039470543555085508720392711961316791310723518019327645785547229215069966368324595493914372373912939059350811060147437025536266381345286400221073389685358783955578637199419861666640471768118412949885982478524116826110625422416858763321119397907642854324395057716447461515096033913504114205138960930364919788334210293120483331844925455404372555017019671173719479402723572082694290129977196524091197839694769280781035024723985608105872380274984720400308390675518921436636956229701920964237484734827161352303144752450601465607065948913418623061175563756492443823762721362177002838537024111248885683910498334574591289579240147539477831072521241101416902220334167630677227270531757237844891745788179092742599056426425787881626629093929763448232080175362122067934051027584562608510566949164589323492404691309874518118421336903962240268997641519204553597822333977409669390232182622397727380663067975254447134611275236305097467420865339144471176544317050378301258488683884211714645191131009969685596515770741747617582930345744195920228410763085040600759247158239619847188632500244562682297456883044796371370098707817700881333499962499635504033236388646407749058572669425110258303127370660706191097336257537344886357493414208409425713098296928979891635348358008396139814767294947339366516657273454242227365284214629888876550571179633850268454159524879213356039224053241346167268808680272469814381768868725275396419413199665053943295875025368123347293692200350264032137054443934211191510985203685467482910410619272254254856718773633246035035265325032948886888463898738307799308025473828497794481868662135926505132696424759997387753288301310127871894274944958483558939487509455981551943252923629806637169775159987468757940687806950054035076901183431000698838910006069659019170316865453120482821750278568586293993875632148275576837626017902889442011111396789686204448500596373118447455637885202445248497351482064581356706490664015966112549047835290244584910544720622082717044333177271130072397743878115856258876229242640230016312923419646097732634048022813159555050483580587089373808693587071535937439018883577820335084514153516686681877218426387296551134032305362047651276613461751774416992235391571560563577768122107388278918926680656783570356272576861078575056235404214222919932439343132874017038552423407976325191878734005339330489162463281327245818898396391891760749968116840936099540102959639785524741810470625053618497266747836560052512165565892076525785316701406288164603649135127311248935334265350720002866380279699082811400058268444039429468075333966517864739290653461721665403925440652532707712674911953689553340509476028823430637040937253683761462948615037413761628066012432113300570528944418697776044818153959031305603957285032681792629060180038593513814970103964956831401956570218497228306084284851962609177214468474684281797437653033360504112133621248540465734305718588078333376341300882838200035816931055847471381128787714176712462682895305104342399110772264397019869439870307466340773365394220078262173902410921933616261227179017944199300545447267817588705205862812192405117584964755367555770774447276974704244750151424832148956034152783112329401873816773048081620847059534803992321628883568586031143189985554036319072796876346090368716710253182581036444905684713436511102910874025182475084199415704151219958839467811444550054056622157079461095868632136508158042110454378231178258180878236013215187200222035007226528906988269421606727920178358665579716795474469862974460419608438991161113334718330386304857366266035858784531377891500531956649805394871466190367440650459656166605250022634198589096939971961728389812236211000172916667680686094967688107631296326655955199003074741898149216275071372702690683464692223420145614686906041212717077359483980830999136871497755341047003585202798007361881754863075988400196086581106848645879115947267906656856530076004051836225658575805452635146814285262461789533174168255017774860047465658860577792840021874165789820987626070482002799035857763667884915293990089304690777068701431996001456792571656159515891674672774002402145251287953100585279579516885660786096409096946628568989305483367356108031223118156760428760830777915011783658043674201491182369434764659551768548607795151050040576294540431205353177758801940895348946599237666820190453678363730687703024865420073284581402024017606773901569932959104027367332901338345588645606005209742886422270365688333892400987035456168505947277649156858494860175571115450541023632461551592286769698344766700029915278215970882395167358801354501814200223778982183583221920577936746344664833926103907690092580013906133675816762450763171394844064152804304655337549208225282238737843772098000232787536917550104576399157395277720212323717643012126689621939733378134623073164610585561013776138615105631995958881817189453021510744500912111929050157963851190208894543760688020618650194206062040719780803209259693079404344818500921273856994652013347292944247876364444691108545501266368404776827466582365078225460562811916707286062960228226838024750507963757648651046240566007718873862444929781271948946819822129491991708562675503589265860011394905182740482515022818478190949180009004193412618301404323917901653297196719410586911844004392358322119409464383194907632856744139161828907244535381530883757809016173753851300011962388707558297389909671796017668011769100886564702691875296337426595923362994943118789074481041658589556335221520752779993699956587373312354271570118334914353740872377681985774181777905594369619298376318445943304118884725637637039313307056683853805854480163806626171934039053062378257282156020725730967444719250861324284068187449915968204522061717282732610522626829254375859426785887508781372832025046358976145257067307894389197663048523411291178953516389730858284412147832957147129321930004236818823894582926331361743760669877095871936636046703979725612877084091913497985564114483243913726044011360972647064831753963996871419430264227538021724707399337275636647221822248285331623187436886816988078803565399580605665968252408393416257045472719651402925107951733695862059484487456944796343833377744623426996943831802540687026422598880953124742206916134011456243801899411543430478901809768676578692091090683976652352409630618477425451521092187127313604327818984617331820012328583942611240845452466448275378477589715707807145873811300442410045518286489105152302172506241436804963431040138334123043948133977391605600446551819483775637800155014447970735123332899559706593111463531669965979139051052455027705979211190963100403339730727594489668637278607300252297330332403598488002923363053069742916196719320153837163279923585186129356857352089393619675139804571241080525437824372313496111886098202398766531534003252972479666069835536996354211706396314480872142757844519808974769568395278711163662802929164615862125875731179130277425353100824166713963335183017164909032141654092089623487159157424926420644994570326349235877405853790481553632648530209621161526625038085068774947604796935078401715925389280338129567239196456274306596702158204189885058807398435255390174892571137160610215756634269442790838478003496578452590993960800107184420005074077475441939613894739815102960207100099850538493662374354399659053447432812617601410094366809944390465353498450047303299790880334101902834443157437929053968635707784931707555351144946786986814872111089888917588123964165785586656030949678280899280841499015511356783012959278454232565164794575733355576452376748860504386354389170498887548541709303873956917656059098015266385802597246261464316577593832374613843037871067669420283361172741239079764812945936591578668622678690058164241643176300028209401769213326721718385520342157602824269579470759994273725444355766976331293467702639128444489693620325998487131002438828104659127000707083240196265533201311410735052012866774862062046449260084482500580596598889386414170360269355475801691962498426848378337368175455924904122134736102674951983976444622817795544611526686784623829598289481405598015497026955741387346506783346175219879059836702680893646845206591788812750020268485981305925750673901333333400766368024596058336497666076688782061457047205341650701339659049459308122877281130757967163085884779779728459767853697656252373374160804456715478888392874120016401145590439133096598716194457421865318277698276714959482887566538192695205650453162014199035757914234432708390236757711233968504603360977312605668467206625354536388340015291424769968833734888299338485884907517632181565240172394972509712523110208360767535917377968278439198497109587531776276144337774939300012125876081314064543941363996062725724100124132358376831457846685076149370198659779176221744087314196992506383834961560837924306560336873748797145086538871854446511490162951618730429772361728022917938482540403215210204884454898468545069516541588308733553252568321190595052649537370030868643531635658921826078901850345977301020575554196700122761566120939688668345558679356840902010413880666323675522891089647362442893408991710475234913851928218381371348845442157627948442039093901656239022615188383631242034474404426819089502436642964321760313011323761187090427933161522793983130368376864384733949295909427501492315618353553280261169017683660698428632014091107526674397803689628125988265994943198718065511079239415363204955652181527523477442395632343022107592056077927358740379958808187030624652510703449499500968969422242576014896478706527590139859876988983275073624434858689676360311702813397596259162208216570516063348685767911143458353263341880446281567117773369819905751713452237457387935254081436825739566062761002175901515513128093715049915442865019874312820220322875106741938260016668094059797005955664523083192521644585116119813990467289772025378670156009739325120451046956547910930782387855386957683053128248547295043147533974795192543317094697845477382464072235944603419446362097886722532776345224575311396291992921595283561045625781952260103907408939222213351729529175048194746486144388848720581568132667140355393619509191706591646525404607369861307531604615683958210746277467285608000091838360256841879894251674087733809725238189560086664649888904218702385196691465037475193826556519636813545329791961419283408191517983650955241034446391780433888509957512672273672829407767924674177268437143013497139173008536748928797355591179967043308718629616255052795739894709639683043120107913257424949996480542995918634397319375189567939400533994401496005844021887697008088979065543124239612976468124108832061232208892747869215863200455590865109614538129227921134598357734461663695497807197368041156524597553984341370077250468459856272353371253558001499377809535465698984251090264387496838526174105423784839750750319038988570009918188334403494651032854928279548475751503844656961832128300389827041512541883263622677239620704907353995755244505277190268894567302567504125849939327868730772798298294844330341751020793038275013903044315858763111221014022028163848570128385766298944141434179774969040404424991594268389183662663518246101067435148000300365189781830884685647570606511124556011654634574638682007162047958335562493495467608238993114799392542589067116862989887931254325161136681682172874921337488945664587231719720633438646681810681918907664982531041699764143819117593825929367657084052428184810613157573284229173515911978298104168919225080264004203287281243035124256560837829800354965327759576346687894819876255160787256922141244309127681254069879844476069789873671749839578768844109303278802201149815827292068592929885070315491992391980046327536051249758750517159989666518447962666169535037405389306949645866633370821861764519364119510015352390946763538723973632783513665766009361886865859707076802412880456401512908898012865288349977448969508716191353153900530092581712682520733828566891623996067534097125669815257286852803394347565894865056808321326331805943638597739667723532143471096711988047770815835287964165685244109852034174122882860761995704511137659412931707277569803530952827580331800213845247101752351502045481539407569053763485150729640199450297520869970303133881475079970070463775781893717799256014844691563576485135029883120738003384835646260949226693232980355891618951418116206325132691268891156469798840333014534614384439711473934489551243699146019391618248213673783244852859703313476363487409661732908043808890577039016598058017915201038718005976532727365759255607954082007134248724009084024466126470799170879445353098795805765610915682732754315729751823620837310784246862728046176411940697506335246004710734008442015795541546676519536662695511692996924750291529114090626038806889809802835795154040704359294527021409678942577827925540785937362429042895208633015935204443943515729797009316947100094310337492091221830125604661644097737911301210536400439308971591976183362017765855177526617379092065156497674566064536390664595620357793334661285886196895530795119145253591791831368479142914881352805944584688327609181968902056768399182418012846321356487962372832913239777520705304641726420140678921483318479984697944772402264936302893310547832801456491614886834267068069247988414610998485220266516939169221069306486304970177203206491758259942461889363393906716677041595982162667506790881353567686993747007667334742160292755473025988576340645777374349545536672201672791506294047396298619753534148311399140633587721140900562673173429016920323129413095115200691420170555504882067905759187758565650955489078830293118995344890909409135444514289130830650951967822702833679475771405555022891365497627885165859235561767045361686251479372906164713568526590192893353699177896958848149092799746078746110715316840155695353708688107327762029086424259522151164212260173724672293477953152605812179415129230004442492229289849531136718308611604555217628096950079938685698635439545085227890460541435662862925261520159571827959589502769514040314280609350045153897542958345999035683054426190130383862218223883119894547854443937967502439516001707781695571436639773656155660869877164154316653672491035965434037614868090182167532469886056664157229672365121798485342620840612097127381683589090742402550823648834285840204567077652064335232594463375355969054883375460339526420373152884317239378991207399234090217625921248847623582622788954005316430036383624922783665258127714023366792101712827469924143835840425678511704686078601558978989818431232225086889145263519305816093160564129583217629745034894738526014441480496092975284396785708598428351388316224133839507274695599613764956305500627599541915205440625597182240082400840284430433771362153317327908213843214954386478449381646961066255820603828143274274352334357111678986623300104484444637144483207239885843937310687256378698890496007783093453403541999251056701111141929736645010120193088378931065793148320133063471591272140567273982164183604982243421347420790207730982354070143284422225264472715331138153735927882308518652964849805063883422932915397866584192163131542128793982139321169115510663924894659241750651793844759799010040700667088561388529747666919776418077662823297132919920216057878413301066971028049890851656241156765144019194289958810924622045835287346959473984932563609448019523001923768350955936111458131502784215607000151688293613543423892409872878610765479115131827482990511399913469959216679268847250736944996482208844147642890776724787240331943180927060704970493897923710069192424276675322781679284926123699914557116911958289376188784557547373147907828325525175696187855795432577193528142917334924427756023278336885803391569280102689025821663674408167275438316348482856283802844068245056821523466940452669288805539547913454550894105327444049324042745171570818358233043014044948883915976694579676298691014957572335788549104591593308083721539368596621879350903644574381079918823348691376633674834092680441761706736965450457346036936448230265313868604289088605480242546142917856458518096722428072981922516666282775428796711415664020464388144673320194673421657827297914022958013070895224371733188291841287431458473859880128535322779373897478580333479544672341526409425450141277184951377480871264212513075047248443720267547134233376456532075772739185841768078097840389421642056952525011662459412796162944787788472590820967141045880776697728165814773096611287125285397870963418166605907487483941180096002817276531990306087943113542063378178326600076235984221013258377871419981725182995594403449767244093333455313040015918009663274162460045417556239968868848710047618692613557938134230952719369286167655555662389448494685744231902800833457898964996442068892209097765254432315573606648572779261810782440200959530070979985170201261647650196325978911705866126426432462774858493137977438543002346139790730988349331073155140388832229573511120987762566115603319796801633381438974633193809252899159262846793475554581153576261055411414952828565736141658369742429510581855622655069411428106826688738463911054986236134243595272575723465370634284976230394253666659490627630839194638587449555680679200493803400449974149448281861551688887184687543817485843182854453919471103033513863722229020612378277607001405235689025303274663989934105269627329500728117560531999107965506508922313683195801423072657939449195093140233722303440085124965335280377104432869076181601457133314716858980182098517384334093664211515009553256225806788510846195069740539352334698901594497032006166021823528746414758455792877757762928938423366448276650054353099918159007705931907366715367062590598989131374668787018864120958819267365521260609052624739705016761761387106597147192331688035736448488672810727351155298506618073754271166056348887990715397796015158149322788676308883378455180033068954264008516901638964552153100896084702716202289197389517696940335661192300821207983152409830343674768155142985625632326676366870951063783387796295145692853049308008456271362868442659652685796705334619672955092357117496278285524277749651647364138968315971495065473324969149863891009107161305296770417750095809504568319523874423535780164800885962208663421025096760866432216599763256300424419165482492145938193222573352264329369239834929417957568947834132798238282649155772227420854017095574109260649392944015667996858315236624187676489278701004330437173784404224504861557439394547800678923198379968900246102331005714725331384296543076032920409603687255935497977115574333571123236667913721854800407365993384720861664801952872589350711022100476395646946169288671434618642194352810799893543613020535717838188600080559504835241891192435666599912140603158138812510034000506893297102439341359208653849240651956157995191374113471264691925499886232200869907959243053804728163527731179459876134191608210709906529329400198045132483977364754610618688945254404512191474261424023602508398686323267197649213272144357336529117945955012165142501064595473641573676999991219676446639552220224393363323894365769633305241592403723923073766075460515910845171777015360190397373579620025368472384031394260097925302678115274038986974754429760336083681128076294870713964498452675632263894215047705849022290560820333454026396565827259090849995608893920318328694748576028039949618655855585222711479529261121721105213368285227642960713798830795090144279771074875628846689310554424157274203745099796702000844833160014592130488930094231215371091066971150598222496027477024381777292032111730977108233384111395021409381245656275131285372484644566166538580143061704913544955590240052405440275092723642615099525022211345345615083047061725224561865138825400851761614260008994222398492610034487816825091576758399973873115011228160837122732529838160647624886424610821868092588364490221353993115457639910640643005855866729112924336347847008468757224722421513901624522540434403759010950197909706768782900009920147172034261014991032796862677037234337725523376444313909943229987384988565631109616904036587060184363937385918645575932000485748952559954798237180547581834891889057482202170557221315107080667019066947904903821951158990496611225469336144972187553898800921727687055508487123732597647560407219211469618397259506166491212083634028663244888270488031912666828155591705421362333212981192746027209323200214817531205010303773565627837387337603303238561653531193150776915334024355377669243161044269272450731139634656794012486775643518485662061284380214261279613569346336803566426637814491430149031802225972139908703289799880022491800653239825812545727276967374986821526163632921732322034756530628173208169479688750576422160543799603972175578221264984981061177782872642281016231950135063934948480033641062056188419140498843615635469806697487038578313170724562863842211047264606286964502105257655161546257260657011282619377907341583718613215054468396207750281540845834697066917637249741890400467606289475848459390144031694433744547237334887898979428044446731728083049575155157491562796649298756275191608220337928593649469502670581577148266458218868762013525706769957935873543026674489691968353776359974973123632787089847137270522377353328514369886578258071821055152688601633839927216140421390082132822393003966345102752229037200497754311721074323418700348230516502631468163489277698965957595584094601260223700880665614476089619874500995400738899123564302493491703821230735684322181359803688678316122465517891119565963217409548153928262352457106277817106938184377346045642772110412040995147980046611855872335784127437234338125143001485068892322202368271670280940988691113060729295779944087187198625138668123720786774043746610368932530782643442179926349636215742570406189627076263514029862522145756884639528561970252365348331658303326727732651567315468469674525394540901601457305130611021145601947190137581787181857021278563844522995918618252504716255883444966565497966484206382956137312558015214124577534976014908078515157552393293893628341318471444723606560191856834244384547521002060806169118781909411622936972636747138887649692143202235342342168153172111077722144001542658797225245801442581065630634332113404720464263448860295993897323966473240340350793706146023208108413730817659292696249150136539231951284917461845506541622018559484743841017305895835673365370412844483042805956674458079546050381990263648505582577893767447590867403291386908516610414035195583909789920756484416972602565073988009381964370787393777918399218532442701555111213177045092833825484980716280490007528776261450870854538575548645851815353205723037039125445034120650085914408544445081886837373523129398592848305380626843382036600940299905166265254804482711830291095621521508968335713033576521032022505243787323102614069550008124941129336983633969811613633296298934447040991677908671949447231009725535173154092118656587039559771094041533911944759507874547487635714315267115242821907411777630815525474057163841652993955511579116457591453701618481179648786507347075589800141856590916702467569416522834891285383995176506808913877472139387767268418394637870690647863036925172228129384174192064520486606777969206486192391762638319811759863912677301824454094350949042471090389805612889201304214722028994160501444218791722135622279504891407129776445957630680985125668276154688806922209304066008834430828563519639829963110727672342551604252942833139735325954647619821083239684347770591089941193554558364874734547646995176294119083496529798523418642102371198581537951277818846240415070970681499799458914149213218711107493224400479677922584347270862127697913850999919392996231743276706725396618860677859957902054416888931057123176297313754158182764208994569640598182495068768951545826698055396603928953512511055115407027089898631881501788658225260033124828570605609622215168893893670606711477718753506830307734121420974889053400112886687500569880422541183693689271464682723797968214651971078788525178646354914600156718854530107060599872492671763716211870981319596821418676709277586507150008801869523166742129101667035592448297030128924968510660767807537285663537937975349085981864151195968894600091714396751347127331364801237572073643866952600955294129425505474031168977836146653538037044240437459451160809477899436175933743143747964633632411686471798821253486034948857660696447842756186517779121745086223000566796332008769135447849325677997197107400142609754634075419006778510622897691491742569984309901191884856624885589491607875767210528256551093971214584447248267998082979610840349511748814554940432897039403827027569459815977124052435323323864713183978734157493346971842622910838541772234486827882759921247072265397721145699461695594590959956544384763845195262064358770002121048802029524823696612083531085557155648344198242644098209936758015003203029066089044262203508963065764935720493977110308759459036790083948723858665237657150130550260096314960473205247286441012985269225758935514216263097854768880195309158076929924218140540606659612301436599953679939901377705452777467789466824541497790294220764981378348566311530317350404336215589599411135642281820674890767053093170257727040266159982795233129627615455794112923736423918468925467789914128187730312352154528427164552084757467777126051820628816681733778048513292137753880840633677913802278383779875377179967667573845269409369582392794667709524166726624608368208811712786557928221720751967517713695772561670583010256004766820177066416094600446257335991713569229654915095842333031619140609258357287279730405857302635032615217736811484331283944116772004572571857494935251630367681308106784505060073522740698490442905437819778758324057675766000358638123238893535356182623670220272864737683716435203009926784359074650762954321933643352847029063592734131225512454364632727076250424701068850982246284143975341494789305748535074731977626947215187330207330087807931934364854200054478148891736959351658197972358340974282650797345697059276798860635400202514929647047346513731728719759857458798185320037184938474906636835361813846785368764488194991667219007079568681074552261791408995842862151480254820817854567778059388807927557479519833427206342255120418697883209785354653332249761843526794287211237228990409227852755093179679353321410676284924491506945720132890132802776801052921821270939558865275032655231536357445502319624068189929627670646885181825062858564690277993638498920244825744523323464951342976174004812923337092253908441860151094444152276052972695689056683353213807598590514465638750033539587128987216852981629258928664965823600896684743452244109114508375126183532548903883054681701085693925574645482915201672949366995034757012392643253472270473971334508291511572438807070018504835028971299194102038986024698513970969862782564660244111529703251198647757934672777575152821121992583596027202163910039291306826406793763833528522457616450699355724679962665724499160103024097992784629594741946394279501339394588097666677210890711199577470368866191032601360623501359554935490316085108773377468166654227494989789450025577797388667811397130120855619949249157999908431233632154014351871713486093826864688332749719423332431501477710469244823451988343187486001479547179098516358705601568189939909683398617415029043950193776687738298124734512818259618354895275449089809411880832413427780922615834437707924087820275005866760700399451079160260540982935983080813602876537945861546740186927436232727325734734550416399035967484453687863691991906328208022804671941028237336511368724969380008200830192336080372510061310530295505183789700831367771711520532117150756955194408588398981688487612398335185619940503075770494649710759346374299741168794538550885998670159644330215161331135614305408522146040537873127895442843059647557261165703806709758424590686320747580195658264523892420725424983158728813036149997794595974522347753034469822315885678440236899192488953197473947799151262243470996050085294826659997855533377551160020711592864425628172829036222336309604355713713257447757463278022792639530250157943363649088423855681686064567735088475985216623044455568059676232702899745640522817577015515189909505089780635240236496528309536412474798145764434681723828052922916254012788134198984435755572552014939541879811191545474620078968211253606943392138333946775660429098860578466476169216606703818416228606242087796036004039813087476219984991351185484123604388525410612644984699636522920050879149923385778768099361331836019144757599447891131303272208725511232970769906742222276045468257795648096299547498201406746538409627464916511375267189619516701195039159788892080669944480272140000473350514662217074283945460981952924304456090685382388515481533950020976297634309422655955228908137895597294546340102916974054867771844024019077840131096381471020539979309537871023170848418494042689237171829399190905171143489863870905710927877347903177720129240577008435378711404343177458612501204901866409810803617265157009741556077870954812330732824618692311662915406290834230837005036508839006608886199776476053813654764633811785104648381302526778759469107795199954401653565176559596200392432981469609402859707333735652020684003606183323545290528110562247219441051380962665704874621977120706567495295206348689060886710379168111460449858104107751168546810800390230330254204059154895106210928861321966487978619540013266845470176794972759106990402336179253090867468731754526979202141281716288923624362539253376327139185540149586414131334307773143441833673041467030540737930368313625171197290454279663831535135364774397505535739325717230781779001526691163546685678569061629355174111338622793153470267605148200742776430229035352648075318325201878208281491792055849222232502584111036288623587701069483481029736664060697508607208490128538605930303662495423824007734181047306803591170691404208453516273348203052774547695927919720305004004203110444684123985872925959047979574440316874964412421702510264321830283963294765153749671975138881038680097185460706902087833260135712185148121746005746567188938094800265273979502939705373702536317908040084471423928486863004525363159060790898637386157045402327924810001918630562300873974604943670795525586643285346193642061008596413943198230725396551622562807781909807930902040370120468128959444978374155682076907256512312803936601578959000976856247960017140751604119102805826017210373966724045177595333874760736737783820957999802751381698412524798168759942228140064525335561043822664746656666134925729944250061903611390770330353437696605277211434387772314449208832163769730124411218158842419583979710506623119978448245081120818255039505638262043058209454702338972176400732508361359726093466489246903126573380055681626432069371975738826626392227151837969692313593059905318900397113062109699316775360560030989133081028646364322415295400331101746643498783623945727308417093155051419922052073515126705924395116897730527685549219180157729569906643791049745236594571622604183262150197971673134943422333554322409702416338190798800610027152924159155554039328808162583230794441682370832780374747366642415758348276867115678896737487898381472104568197907460196954051681233275831942801565029980461841080589593512700135217090035697034008887116274648792942381580961798592381964982738853360309410128246104972631022666456025601385794875041135924582995019504576001765159523770627211767755388622986497605258272103145097145931222653331874765405498742242414811463887699626933936593455858034901070502405004433648140723676202046747863896619298029416111091624996188950502970133709437587781364973059336763952867750233468335833197880591001850989975018639727867319891903528862746069166254178231396144404189369971335547433389753571101236616908015263367238814282808051786751870795944328811197133435313335262822831304769480167881883379584189652316048825482889272777369456548778653672349612155293611557972736074482512184905851677246718060888554536382301479420582408814893729834664740813927880232694988164500886777923159788218563384349922520699845560218501294635176713541568646016054199669181886503263486455291536974475091458230591935237801105175708461809278381778429777745159145193054351449540416627073008134716452770494620008310498178012824663170564194113952531614631508213256727304984723635533387173848721378595872236303161678241577922040763607013983571743315096419496078682270261578870155614800243680113797003202888048316983002178556980242577503779624143703003514832344721743006349703772678458517928758641178990084768860397641978820518191354454221469070371882807639121507699204717493899165475694625930029250272611511080560031077134938627327663522040136797879127718946213391376125915749854882959367186836868080988199357971649961183453489346411145190741838903966418408085433616460047355514447444621779619613100384091979694906345604047065432331588489687743438825518325949257756077341154422507951412152967872680094428122953689950702805127175306971501398718416112016507950379381842200987063237097053671437304097160443975588138480362968472485614657883536351755665274351468320158472529632955727223854881831114410266839521705295231255846219671428263096901377167327319235009882997088050040050009995040381621300651419110938455950035084274544478167431643282764582225350347469001789444457846836034897155417123826012968392122463778738444191918707244088928739713494944036723256034570947710287522364872925238633319621933570232184619601195911774032904935787749534655360032995201325756065575296327231712572601426270342440870546038968526458010814502884691701923348690392482036236756251410333397963973342382061646834627756687710375972197081922750307895458775483690233280986513538413996203765247763926164627468563636372203290111168613410578376112405287275577054198410013837733404478153189109409651956078832560680634479052428578164590143684483719652468013358009980201768574435745770761050772345634901132735939849983711428483843823823007219967123484425458680543594901759155451657559661746582185807080062717099698647758908092791360164303517683280110871078944250800089403314114434875954027260112290351269309735683151570220344558356547212404815912524734455428218028519071045399179522167559586972417015408373836909792648524916958041166062849962765951632862733585506905936685182491147443933545963400468152981586487597788107172465389464885471816185403434981995994224133049172340361132417842450882227581362655729224867229558248839336865619454333267045580341450727076287956404360112771214941027638765495771936195183940420747903342817713318186920661786597821810002364861031400373086495296469685846758303565200571581290545504698536267327643322245838146204994993776645509624961445209923417768229735385056882134654786923863325703094650698398369280566879079665618618840612564586501719135860631668339903434894213459800743768649404793420742482734177045039186821666340508996370715208844343602524530240328289593518574289243699829674223178201304634285459984134478132358577217546434086658612686054641770735794998418459566338212337426786226508603605778041521858180379740423952582109947003216999775682051411327485413988061015393803422089242148439225217945691622587337622113393477995203369161782915960527739590506867212146583218400321029039187121292654544467795571591142793508243339299963196038200053292743930931762764927288489396071501670363960593025854453626486982946987284781879657965778156940957368616709401484456249841713631107447763646966408566545336563916622297524748091365475427811639130269785995837981933056075177248780935487111994892198623709496604959299161199056172232431412674515538448014200464252177857632384562952965824130943221398222528082436413584258063340536993515661643470856432954788231732688904164452603550561002413729158424756642971231931862571542620771230447914226254297326741339625999894741818053362242618955448743602388277594056881026411560927294992610570364093362294017362101921609719365635872984817831236560966183728746580328500645459870137029091817391769504177064331309618056488043599213999819726648999354817132445766935996077450505784329126368666622444464097962016445814161393744860025802522693374206612305296818726782708808582203199700040521823791569998740608048525440041075150448430940832174362655963285916546667765145953033436538403914026877677123669013310869181083031197497097891370550062791726915329453088311382233111865081173706877371311884916692663411114145095917319625106945809490008851713702475479864440776225658599435088217471975316342233985431841077168119110324156252790420974237530614762677382237646784047294869581729087279611064295336431614799290251919059351238506893718741397543286208903970306158770163714440756264428384880616778190056868894440353718614864335605051919625011102661606318417509531604959957936780979120660131690320893882454801429402693413661313416346989123863492243567737558901270652824513179941321660416291632581206999738579468463596785512359710971308274473020804051192077906209828119143663711511702091848017494021732720683543441896661517395615793386617502522152773265800392192429810475931503726093487417454919238094316288895386035233634133359700982454612863171782949404612707527723064976894950584712603184038781172781083407981513303016898916443172270258498904881127914590008065771404334266096503965903701889817630909406580105337189208350377089868462468008565703578583349019624268510187725113112575969834741080018191491112583124174044749522074168158110350351229774421640063586524758686419977812460640260263620603794614369388228988512276364368711662311260921808701574199853273294769373207590635674142266029949285445559742453672298030295959416770342138417728581309935443781039649976503911477238005899690603058104557126324882156503360564611837981499447535868223146490604129648255542188738187985267177944827219868739266795292213771248223333265429244335627723221266279949698523301353405065096948627047074477788452970095646094344258332605546415854880032943469226054631202319097879765449917649737903442700878958302280468763195276582605560190601904576504987630220028283948157215450372132882253619657807619581287486587143691438491120866162126900029947869381889034461666603894947033522413402358187364971393413728717729258182728026156689690096010499688500087539096603962135253445615308828264407309320124690048945196192808443832351712399332750200487111157210183776987362308485054782642886431496390068511348338703848520959799610300499826437521772323187229742027792297251299951226099540523065220013996106249827161149025108196713702577156232300367807648791506966741823765761857169500030253943697689813178480018376793055367234358885742260364452444064302898475310215660906098151062964960522654599223048400541277420730374553802821466920467109256464781476228975669959837267823335475560336737791086200495351800920959583226994665786219868577734166740754146717097743671925111584718053397557033822406373921266064301945472260026981942715711653754015959175222875543842246439665252440295687465576630783525517851439344380537577960994927605440590724641289941657426965919153038314469875243034282752099840982083531232956578411933139682131416726830258676931508802546405945088880995965989570815731543604592494145135023754738723777213015109889339245529720940680176083562776222781350603506667224897220472363549853509802278662124669746865628493474235990564510361792122809219562117032113598056612985846235873015638543810847873470434947092215703623622154498317849793897451168421806894926788662272213136263831850110439481929286012436972034801141547016971846751682908869197365001585744234695898709525038356911273356322761152437162162238248764923071640315468748862727946465620085923795243020582229016764444565164674936729794686421386533479057105137967494828670666934390174193080429373751503566441368964245106100588491447802330637533403381043624850861948679460434087818446056559746212820687046889684722495266816542271244270581014755566215872141322564266414714108398129022441571777072263103541905845691862741001093897290571780726913369003431186773491457133535723179443851707077530917658188548182783335529620501156745243013970151592890961724384091814477780000545927693294872793862205912108591359462662038882468230660092250893240407187492128359124864414691832663647141294440014862303993438763955689081278350183234923607123975104359332257320563885530949195108847287230531684589137161214171980449690288916814729661447355177206276161612044224011861939464294690312445066933798733971441575310864103358497821389587862323592700476484881137102790490342607355947550356250081706073118570756810674357315523465401362137887823637683244811291660056738995272209648836923258250898999777094046007649893260647732011569760939567225418530351534218392786810884012250008565271174756678670102443509335141004404812278093437513832934189845992923665880743893433052969947621264947729670854446282331918269914144369878861014252140879353023318900392208708670198044218819293464702800465470652840806233929351623528175734376839059890003020968352293996540153373103877017342739993712956125663169895312265597383691848180737528040579244083170288735524347247862568600308613521090835149637860564623756957996228197789403899212440689899503172063949405893364496133404348825160527177166976562095512939252681462508361250947320945837061983937172791431966288478713514340664351596826341516199097820564395777755635886064640519101653324006557719887409226574560853794105529643337994105365972863081243791155810397481741177631064983293880557250332357067440111851186651536365929184762834713236746628648703301316350240438343731145135721625412291896945341128161693761720721774213891732510361984817836404610409228406015649762473802040764322907421163796580033739505897720830278331001701637296529504577405209855450296535687418081795608148713350837543831006635407504976587289355424674678597361269441707110376749653344981199248844085209136323961865771504594779691010950428732474504972826212735530737199040961500383744842083672518567154257728935837539019527924810006992656204983475888157499737079774353502196053081544850817248938783166319744103849749859718752095145524328429215517802502172066959437990478133087247184038787195235455858536927618130312581494038167984981860670617968449402510134119909573824913638166984386855112317056001751468502239430624637714920411013692295505869920225620573417270535687791477555455029244327011032332264652600421606532489317761497567464278008155767034377313383843657980165296216666357451890321462562906929854549472862688089590071894814955853501761053640348505995507022709448570676920661969179254274648120037457185092817176619486888746716622370876235578067074148612192113070201206641976221916004288241700414276074148716585006429101895339314267829687544473042786928241189990035761792111841307541445193369417420267444451209061016873129832375612108630819334490781986277608192774828769701890467796034461404967396334368418226907538514666179593388992760894912465744657411058598817791099983830919810865773330852522226397494910717351073430156811197291662074466274696330778646306613913192562882289762959042441308263709254756278054028848420039335652579147290313334151231385480121006200969779046681015435569207857887068103268865858152870228698625714293255823985839192754350972156826648448594424530304646162231585667133837130581061112816757926285706697339373393182285259193055881944386070245006384677253674541647162967589217071364627006202638565692927144944946345936342003321803739892386867953121909996439500788981017343091238256932076663988414115635483779167425658412222473691406682368983128188888881660429459131208573960052293328415068491879466773941414985110873288913536219839520749553617599293219855332853782394014325047066653863345887181792718751612118072960541748465534466615580827803849424341042253971375159551080720753519536079245734184725539098369040267848753890199694077846632296282761939775862358924148725609569315812182385734297981098509160896577930553758792024393686335932576380002979091624659255929087001501399440423324003496627876260694158735500159853246512152984801803120643965567846329047330852914175244615333878399235219994478907085422804751409928742371206880261679029852874541699990420394717750142041792774602965176435780995571425475795620020078592557241688034466125193687949766424714560300376672124337127781584562771525528954716108681302968041901822854122475215722775680166804749061464115013950156281919444939825149658996092402461207909205585294480761345731102020324589261603551529254849395683671108512941380458537916410263236212113193512165383491937074341654315628514024105691004515723485106355977038965629894291309749237641043216191062961085806432711889781788590899886536002091476862499230894491924928861418680742879994968352016688000627041219229201723307590399645005124783446358487856001950667320628969386157820576068317160439062811248545889764748648416217123611009657565190314357898621011574762849610065681780406575415206920674913368013720401060789684603623669436208688181292188096175972393218567637833413709741965961855413193987432255210381230910826984547703129520784482912523956216666342425919064055787262701970797753532068063525709523240619590075710634762124041957762159258934433907345499362998183911424718618878666686380922895311499739431403670000047593318900261768066676765434776840913661394824706435289455923354152588115159248195313111784328989034945985986678067674539870026868970577844305855311008091568499696188119458314952059198791959011792971686666763960389474729322005385100778028787956254791999226834792398646141282398954037456551124551709422981354514574226118672384349238721042892030218852690226796067184880247604787650388765596688219519348165942598469305949964244388064425825739475313374692610323091951728376436654268883103069717291952955910830168073551285279520400533606800839027983433379136060921214832898599698477634542349377300745840111460435288494747126513564813117937700660606505129591103179810363855208470853033173264713162409062287528899626936054418498180062915872149172596235606977812496323988729248982882863189950916425405746956579613966158805329787433533722335719853300282179812061689553032809776792626691606715555639341819708739397058241573670308602079811896431180587666644291594831341821993554807807531879069354538325060256750074814744770656108005491616367131701674540741194918558384655938335046543995802888375923216822586728302362884232575360093671423480504161665248115497723784584582705451885566601483775378452418680954530404132687645116782993461778208434455621711993790069017790415936423471832527129946665478922829638644254408920571439131906844928587252777865623307454242608628156193822381019943024594296685748648187770608448556613149214420903474484934013417820944449354157961061287286830377769061791381233268554092505927989465077230316010666744697911483570136695413481125329783442182822480083072727270269112150198795093893244237006315954346295749472826624177091265530795503940373406149480321163391765068182001594256400562781267558204021518455101524966779153413909071508430432910532331740204676940509581855825940594176791040316711791788050589589024096670506558599543915612446005479283979128182881787761783745118688936642526726788311318562179104845527572071680025688882834346445335094148349623966208956484356068016031220580494757561476401411702978002919481406015229011377577219108274518506952431458267850923202098538153825270803890638500144693815146921050407215169126688494231922739043396085595053825270029441942947864221584366809489305615792946000102404996082596537049716381892980805888804663608279068327927006314836829436487728105267004807407601025781667049156971017526433016298752271979991129331942022930283818550670843506968799693466000138899417770351202475065401768625729331597943896702342424364945278436908246359265400444027587868617296355817840512220457120298380268287414989160168855361735065544718822307154829503788785057173703993952494827700994712125940695611232112077391380792435338395980392556349393290645180967023920512063262656428639834056550636117421029052153675841355179400614589717272553548142434654467205996552052255985932395337609557517156338278537848999682324112137803141742394275572458290446444661698797217290372307942791228708996062374832732981070346582406705006195232701968352168737897793633509264190929566740916528953083146975468250385997160609513836720717041142754120528852417018894676404353320594101444228448860784644701635681224228991444842001805850511333352800142551683273632070941068556519384261778963360338103464138825911915504324469228194131984508437606986622419129237827135088920708592025755643151347336259344938394467823715022476131831519430137386144697831817779845853425430132758908647235519043673730052658247660033842193701771724172914808494858287504443789249101987774065480229013724690219501956661047626725975882424034165922518475159245024581715490561046640930509891873871706392212134039602394738498970325798042473751527632714596332977521639474462537283247068537326278958654783563119154013980939378076897825015392003164800826905866172779059906262527812734902506155903421304186590011268412986275247128770599206054802701222682568377582845661376926593451216999709165717574472834777875874501071566774570998128737668921596891298879807103037733894014179449398735050469170728124899175253940238934826241340304124065867907989355267014861673948941991918283642232909695599734587915382263795983660540934866291396566213903013935566637371358765682714458485631637193791650738440698461761435069725545836156045616496914532780369550656694591961274702815043198739093416308954102426841067201187552880619512365664538989383014078337441679669307095251750105819849905677093245727424307328463303312733558732650921594761512230474839177261986472022312593463007613132840561460910911726835989234018084565754741711893580704647603558718075144466036990883458166400786646951605807228903087084354258082386618297558561506110736956090299779591205847793519336810823591017776740148218291891745612829984926908363008456634330996428215496858520453062529346632876450408687244820312749599804325699884174850330726871646351479299091771865213047126887901366357976982832952034144947260541958075422446415496239378775917749803309966865685574147494956315202321381950961544417036877168425763937199644379307957752787311280764471797985432266808503492148021717710772894212672618579621378558150592951214312210652405853611733161823535202609692310605511872701342849561119945467135877384601082247162231930925379073433854244874769957894871808025111162090161423723542625110784552071587344793203991714830797106201358817763957612176235560542031269742778769650015023614273465908289884987038653416605952698710043186349843143910308210572393046301500168956220938521514400194459384695258235220044612158447147601161894762323531043076997218215844128141312353909433507635996473303651831688125098188277784500809062226991695075155879059612093410498246427195539113044569619262501142006033578803757314133254806028961006232087047033847058221363342458085592716045912368612285171533433492597541121233877042265695530498128118418692026798377327296296580177546552130012219402980224723732101654161151425920343091042389389211992359421734195238979198488027113900343244895330733096113616761317487775510312973783348912525021665004675421064681220812668519639794802624205735928809607526952567903778108939924545009039826394115416789498452774244121767728152496499623583911548280929417127251125309199318241040595476281874365212164646372389052272470670671161513424109278537748611279816577419486206646754962896824793037854653030522263687602439340495715794378329385645097853999378400951647263150203836972211041493778983438029530024887940683041284011622044823005776307874049734773721466688052006006951541740772768814287438403722946815056375258528166625525694303201778556742701942617952071802600347853544694638514115746240640228575387706907460989312233534314527454929627336903108444214986054940150271959675344190156010582858397234926972557748272307455237285119626160352506024780195493665495207998952773478474860458621222117126144598260572565698215424716955491974633278173565020542719817607170458089295696483651693993432997084247969782185348342994086051996211896503154730671705128501827628881475603232797233334402343266780121427715020476564178972016490030944989922775323621240653598435818098317527987658711862576357021468663283041368628513736394650237624680446887124296324644796269658466804210313814241912822373727223735037888769854915103968391251280436211509099426804656240121259779696257991806630114049459723321172041541220134669017098119966998193395020157767428937129550126246196291687016072582781347260333401357606837441743898454348264463781971877043365895306988317142546878202429327650518232078806890930725545237830670273176614142351958189488046981318141021098426579812711361445775812163435545557973570001611958253311408875534472281985394790996768437694556000703484822685222091486556369020187981370140172715504214639640691599795126773254884321234226576031055065574098840966716628564968761207167634638967398531919151889077310087527037846271641672213752362550320942653873545459935833753954728105005731157409965326419534714142924257903740332030062703683142843826438885350185674213342125316588382685911462174123171343973420190339642131549400736498136638214185493376570777118566774125422168797155791552410813482136826033707911970382478033695538493068415965663563922651376161773618385553783469777485875566355452964426432285128522882239164007323941158796774057381344505840339033380481875760211694205240629690756464860055048800228927468604725763215985589615704102598022221603839480745372688071344060366182542092541238389697037237554704259033119186775619074121634136874834293136322439435943809743432415939950361845570793433997158197064015451861392996235555016685363415824320605574505925650597156904282668966277151218647431049859830286984363508352693769427087679106646770867098440643632249980206533785549482045045265318577735525552210506865175819792611223169300684165287490108192499124634453034603186383378169509167295223617748138345233266281636269494330618295108878287251280514830461425703630543950559415404505890805694048660702274917473954159721948384296621574750090505545170888695708266267810413385224560806112580923453541040194732519606759367287631719954655004013061579901261772254271506939770710582072172143772571258698445062297216245456327824111620433266780064090816711507965793801527831194054424748468183718913668165259545919672163128810166432829738897953714363113525876586318983996229870732234102730465929313829633710840090630898081073473437160715205909113559576408046615898394858555897337295705554510467046027655708099659379547510461895848011691183105054295126417456529444418248278853491338997272282350506801913303187151416297069954609327526565345574431853747312651217278686903728171601051693603460553798180606932892165677119128676375369410505641864627982982679622688994552598043912487691346563662235753527297274106813570706248266187680072901802878792379476045576991245359123308135054468371091873653331215652087914458498788813820435816069006097704867499468080541192693790875752987769047187726500031779079903745206067621307051462453115642086223652895746190737364036506713120804951008093334907041081427093614376657753298101777961026470412698022312348341138827635611114609370135641077842867969611706549235168289868864834411762009665256642281572792071111673690338419179378265336919128967953660049763289266326364907526949444156885845347720817926186655076639604891413058170243549553095958873642705536381906315792624929347995490553394357087674992253873534220674867902673768067767778550370257988641927593077313409533319342393175378551055698079915491722080772258329334178013835570600348272522660434537533377299070117962931887936518227518154013395588802201720490864356693995558682151921077251272170290845709797870255583846038485852365293337775376701949009841041486231614369564113196165984984035368896924944656791080929170671702606134206596074870031970382845357832503100482933105136692601182539296215507361516702682888764634640244661785990567031293233340886108107373301662730529849831891573039830700772700336054300639412256405244196801616359522291645742889011769872979917836618741727231094980314053675001672646899668067996468628669928100599029061134753488971562269204702806848759987765297628094166661657558271423182443208950539744467978575236488399217061693273444896221734783432504049973484555812238696976471222863316920612342639853289802898314891533513604233523974512875601373510140147104619043407270314366331114667234782955282775421628446036209013211488241385191692012170334306035691640666831985394048964472704539064795525915367906224760725914198582466717357156705736881482937419548064173204338744909437844540590891294833502152656939356920878548059143148288026538108416478568132647540893784696598170108417668076528893905546022386740752121142073069768515444432612783417672839507635842035237424874855277566300061172031360156023521201753890203810712675987002928232794187850919201469506410358343138028937061461097074516124908396247896697282363756164431088247418003105008631705492613297423425252762220903251075527978189215263101655082103161204638024126813605683762590975799649374799331232982151422520360026770616735218822114758547713363130611031951468533932673903191095559075657742624511405446578016979820638644005133555616019696448633681404700827467324080905906018154466807157386262570262146148528394616299783578616523838568769377788646169966635682111856207432842190133734530209526801359933638569274104552382673168580392175918471246649779860923322742703581729214720166706605706894583434611141449082503023278864187583555805145181598403051453017555254006629602108630242195561159551136785713504212374578403232846264635121260198839845113098410305938281956200947345978761300830440455733045653792451658561119136155170446376865957533271091811863002889275732588247187817775779839940717664932534548203128225794429913059732509597395861883617092213466512783692493878819231474487143752218088281862428255256422665859926489580443415978697995989667633859311804239842668418120058854830968828861065069097167937291421632129747986087803566219372716909759934494855964998575260786171238941703747673033351386537316591520333174214099013790549031318402652475565127224515110578423409877369961204014733726618818424110237721309940198399164842969507681958562836935127196545945872462449021943191812804465242357643620559061266359419640091876838447825552188131127729721968473257448720658837401584228977167772378934320772051570795082489612365752601796200310379397175140895048645070554770204965742300269832511592805912201632399799497836151733090430224500841158528110597061894276332986436053214855731407127390430525572753464640993436163763393480854976406703241759724305822554148098923161400569408175753115112272461434856142438093819480993628637221330293173077685387402943910928020764708377917110289878750225024680530543618650290708929558455301680326691154580038865909622925886889434429835471281684178644977920655928806616363655971122869739611707862877386683154394611295784582280777604689678966445825953820650287198172819807179181697786985832099942515476193126093812920066770288985107901851462951580647084365228520773290460846393420257317274581561107590801677582532543209719537025619444473900965335475039411189098293847355910278260243702762662991085111143804131161130071773412257632217008669790659220448447814857129542492424827334319715558373952056976832648583745872973570485306995298408836220371424417391299066427343984430999041529642309097882674793541083730446214769493352418221345263425744396890303316113934451029474754498392740415883127146733319681905176183440091049761233205086915268036460709887867555685043036519114531551522561794866632007760625097226625847288488372196856115452558475328299500376888384773988226326326866095073307932160673024314338758075990051079508229561788944185581688161726099610036311528442048238941963543618636937252658305985472831107593223193072667036280106000164990674227763776273633712095133081379475906493179208318617018260816017144974470993361788517686036955048659747044397056759803651111542201077093363506376496741853465760824885843264927735800941741115461171541257650983827645719205227621042384582996816240173505893738309353958907236066250316626625352735218492068533972119716058705189817099220590979200459021997722244296141879558916385887740426629678656438673825471648273863481734538834170019497337757295059764750955587282256103137821104797337874794022209708911855807907467904850531527250486260191982451018075268701126504554851006745185192234062275235599928234273082630534730004860979640711242582362203059050151518448081108636340557489328358723817571560172712020162659005276212608159189424518732503025723309306218028460637132758411031597172674907001763462536081431527738839089403581336506885593262480277741739257128171914963294800741671563573069310500525902334185560668568627677402922334286209353165415122906629664809743863300730070692344882247713176224661587695992203971311418505350283305065433514185845840991020067929347985896467016275062859431777718548606296177285326713479036295026035132748678602443562657661604531938071597246567871000742183896255796801941915002168040652090529528811417879432506903347486154425781364866187046709619613339948738477595797112821542313138435088378724338135208746794495006884874028520856501891157451638189939113719293694873310815857718342474759721294608005512238831841341974632566967926096665146310289236278334590926155287252320853361642554982500477782402592437264459210649493562093499204432351009041096670577021479953612168114151027163932600152820308867689745529372279968877522800455189664186666763861629836875716619961227524078421577500678174493726811584680412438905286417956148369023884317199510081434254082028171152616676535986020523923107272050486682885715535979051142202091723509588520945794872307087715868194661057684922118489427226545968476008111829799169515897652775623336157234059759955359640310240140823947259460976099679607664933029651776648991717970111759503692447561886774866935994479291889019638202849158721244634094291753373436394759389026669719533937090211515394068318473970806205831460213697188489446409437656823498099969968877084162249011882572476684654000716678158445956502189103680776507164379650987749560911286901331121255786632335958107416428614793596184630225608815280939075368168968869156815845682484526632293717158900172048905493124470527137162276488782927742514432420551312465749767463782906287421422138317085284384316018351058001015728993056287079152268664806122681858489338555225000672611977710399333058289053774397533654259625543088186359071268155770735732409671200357837841562037584910122633660087495081685875226948230852329863812459183131178558355993228170473045297156668220113976000451103190768446161699937476255775517108329091868053770308960884767469208673598817961274992411702614687440321503696029095589926293496779016125334590682853727482297497511703159117061359790770274672410062772004935057634223314337129445021206543510908841079558381640560470762421052540220764839933313111060845067375351229643753754283611602300816857968562018166152005555205961302613464975756768648425968524211054193911376276011825016279520692767705221710067073959676070220768575453541435573334308774718639739995265803561897330382502354067996211670333275415614760020243960625252249931389349007930563802704892706040306219896666424658813436085833440889620508881327495250079627260564661247869780101736568849932460660463483151169065409409673261474188193000978580008887171145305569031198966275027377823369944917969819494889948559801018062190998962500798219828139787245723082700124135620966979616892655275730452983955299866349258247484180184775749577053285702893041649045431809652294830134067189907547974207976671762489754903545934489900747314563285147059095947068479572124955833840202376922756501462833553786475941739385393414425662153301941606279600622529237757196053033900780655586451431983517644279703889810803972703588644305078099980506324855902045515796995502490652960188347789083899790247980138512103768707311942441340642333545698739846941333393541326444947733937191460878652464568706581535863645522856022371006896247697615028762501263828162484081124259169516056163444346424631651903496352441213942023489980901165802443993163001094203093939426924837305077076489412500517718125455451324640394419734417797271221629029797549971329668296192417198612992549288617091233152246035259169321164822545831680824638646584678638469801759971063616168618042285275833630831054031317488128889025514582407428531302020514154410963478034223829858716026121932658251691390193936399322198540933817330778534059746920033098342978656331605781481885065109253136915591219051855865650933877753196318108258409623133836823909596115341788499565528219690742503194819432359479001766613503953308003526431976670122193669619515927263829607441350022701467259654822295067316644838723111251464471450513640185067507471187365701741581057926013971502205409733289977379004107615731568438298683497632076030083999120710772199660145822184049092996913111433400583441866116846856936781618986434796375452196334565416228383883578625744396987155191862225393978328336029984131529625105363419680506240925453496188417740823495205212219852927605758403530714557250653785908239077725008124788929805125702147487385068729307231898453118795418263918244150557772940305478178686224605470862622120592906624794316406534891148870143115412775769253980676140040186553370712641656831810701994177488361556334604899712832889932684210496005256409023050835288239681594103688777806824903428490751679452756447284729064803018652406856127676294310582800143138549620541180224025475507199394129965851492580256310822782571247307965572611171584798054303068417008981549211375530313643272577261456078285180316878495097326794218486449950400770667107851528606953241419374305244530343757067935019882148783820961032981989226693782589525424731885587926032900281875415358098295981616978930641345236605081480307471084022838795566656550005931474964837529195520369796226969709020443099398476752096302295224526852837768488499499752773420229855392740281432606244592226530726563150494783186554652846088179408332835731492364928013740106119050286637055844736232524584950849379378824899498551608311109315175867156532103812290493696590141079974161833895595988375662666587073810430948668818533825641940756796205026602405576124415019397859783636107627052949771228930365890791939325947878574399020857042599116057604001043381089849550802835929543567600252112451048338662531296142250750013177418662392327855242927766769419079659068460128790955007943862568104588159894852956206470509905214612042794698732162009109412978147749001225601642857950139250500109150804169033956199276361913348006482127258841303436068556624374134606656134004274352497515164966392920432555970713566742717398250095541985371327788169642471940367439261398276406171732813091192596787295548238036190197447755184129948452021798577450118258556105373932988304068489224666012675372065392352464043340278555065216291592402488185694512919938339408695833220231120564860951211750952529184383796493558861760998519328659145218823890858960018551877353329907838188660933949446201758772594039862902569089140810771102870989971962214288692537702173897537109628370087996663427871380543122558877381903086060765682815399743539455180600841426553225549016030096245257724102042655456347834961183170382023612491112997036919311643575640840505292049456664307640168973705285173560252921691879386182757495293312234256788178773569357817265792378468369152266975754272309271182391000207549324814812115349001130482246215008947234822122044833959227259611557766061708828411315880497306690144099319943113663192508558867282676819859414894188336417626041239506147985798338511433661816732196423893441686672196161613047678306904017194201390621309342024634770679149814140586376197859175811705755386253871170137598016138924642693536939772672014538522074637091452600370641800811252384910204025249569587088465062451129190135189556145102587946803242523983651603742833658832115619678344494495149166876684233173511348346133010922704001089187564729984476899670276156490978094932696753037299644780723395541179109657135344692274493638811542353098683841579417399617211719763689361161187665691327815574447373135423882505815348663506561627300067045585582730709562003675404999509975609339548639299447613529199000097455419973666881043793412571492436317150823735288310522401951082333234906289846117645383495338666283891680071233511984194788147678755437461212687518239130452808263490430331182696131963475217756658947040432790299743087435887336629935732957910826412373245899638961633701628239027457084241493321415047143064824152939908516614634017938381989146789245068302700468797406094023667040485593388912211454100515737950293057575783679781813213983636369359304562801934468039056044502557385656895340868376429935159831044127353125653854589740065557873906626741625457445223494821194979339450408812240392184571625286240339290951371780243507362717159906648063433796768353146483129751363008264874822913970573957535883235660876596573621918197056770169978683336408997764066863547199835785561790199490649423060593723424586274204514898460603117260444759723539164759439669995095793429785102905503597533835310813237247393325158586714838656406505395472255485297729475311092345908031988044783523682526496867278715583854665762736680785713157132150669234428056425141730226435599342055315794811884690392386692845501790793818643620516752787411915205610287858547276671550507115400139280332728284371194128028955648903628611962209475095509587929134595023273892823197821877662805397830943674967525028044296584502778378077130200481953572350342352694428517351725710831379777241792101708773205623867644077778834976077236307028138379843413184651276942295566609909298650210923531201527996056657561001048291000549813273105926371157554225577883796025921419716983854147005335667180785975171404805085619203316512895536245136790666443353399210604457218066836262404795221466711026533966383296181523850938854058355968194783985718610825403942587836199010575758304133901592720742065694643757937985270802999441430459872830503041475744463452180589616217187168515889025124588496178984201678063255120120470665656982599514662449335783525953434245412145258516927129298050825733749711335805711823735067256105094612042816119265885108312871868324022252964842173464445154293573047103264056595595432805623893540672130475734239839029509037570445137859604867806520964823282549519464389553720707405863855365180601617816312673197200247111531879001558619748792744004242000116302423511426522816891811150983828797205856061330689565058934094948048283123138113120891592003192265261668493156436504751189268200301989089592356844507688554226269980958668538584609397929337145038569904065636203281938711723175721080983901019722564916069456301198681163837263931425067396204149409737952446523086230756162545908499162235852185322786993106159803386625951979014731850481586786806488840420180521101438962740373393846077090698233707136304836619030411391861226497130159277584530784134331793248539074017305014571545723958004062336296214211230474292894117041807792613332381530703989273600456738600562335741750210598094584992608032501583095107099939372581291612853625173588359521214049218777873505136250445439148943438039261893898839168275014016080336062987557416121837710288653684185977662888804875626322884578649255396925857096886093219977936564476341785747099303687999966391199361207201639423990778645986366682353734180004727324302500791195157116836273023989330189150807018986086102492898289284634916012334389529639968608468939552317394782768448687259183928112622072780747404755656059317428172306725570306475830221614812924437430986276072249149156355890673302243757125608841413788195471763781252890812800741860420364975728977682782241910835073186090038243118014908780276836883312017080848969364525367745504867963624289583659436469579555454322320233733816504141127150484409892319980518290084300563470778438234229940752506624882442881175136811246576620320090806180430980129277468798507739675706343815926129615757881150859437610463986367707772074192595803382069945307495975252893255312054413601759655392312616857910717439819033435528181951875462622772586096947668806275860097324791329646519593566739815314465459714621260333656921667476987618591511442467205474181213880465947975901183350938162391643623619258892739813652912108324235974696356585898639966692592690098015965182738159375474036233748000776585147405018966377915471560667842604429581944199241246129572169842095485091450084950145712325281844140612755470032986482964982006881656578135081121349307462134352001239408392522714931902616299479851218555109710720398986854275203913122330779753146347069265046902143648930959518060108224339621418670223571154281473825753484355867457595552969331840715511504187171160172781879756050554949102893084097937298642671095717840522395947504547404291176706546231551108291182061304592966826349806433226078314379317678916775016102696521524740159588376011441578346425414577426125450895356246023017808234621206374541951884984670387305958305407224334200621069333457403170677345828326470887983150577358202179523497829791684947778920001746126271895465228329029764124637493475226623448164119748491031108258390632641071946857914912100850298543584844040393664854453868144118221858918277158349429726825912213549230119958480342784845259065708396393863377322387142504041279444475912969679692401646060454671754384441833518772965545234160755355240852976936010012923698074901480182619769578473147886543858192177314703078753390048978259806944892776396203440561905165423647212754607093043142987048964645467655780034259146392326160071759156769852842882205165808240751881337391212624816948832893463383073934488425368455586208776964344949049346683948684498130943605147910452030648817131340869478723022288166042933778534336067588140403537066180957764032799125680697174497513999646632214901591399522616496544512700801150908929096939684261355831504167707582380980138532876558197258518029375258371618863190419621161037536475270039327735025556097385356110127975690355537643707507615153559154377952157034336252651119033788410681367266527136423038545276576749444751491163369375036043864184615837847404037465722621735844041787790298444213575038959172408039181811524333798453460472374698412955652895881588100265105582302983083716339122816711253140725858906960726802504308750759907562637056808405634755382651563199237526275991152646744225687133428174229830468339536202171482908229781796552449527325852454658301938672807828760876987604263605608699985800964324492574463080013693351914259454724982971219086367624174665831727624438712889232513049369253512913064325302716624606199679521233304494947069723996856641629705000839646713142043552254344002307657628424810749656400837539740220026068540756022451368332424285816763005260779567567327281438921272702212535625362783293941414142020243766845430086513519768986299430602945082708370100147206567134515831342973661359401665665015387613193990042800702310070523031590239258464536598426766421436988946903727321362249767422843224735230251319729819923108525322455276445988817898235308791682863303995015705960019305075464674024655071408488265239394999645487976569391678174595088946371650578675069091394123551423730656126505843348889690938210974905457769358109241864291378610667137396787191538027076977107538384021971368586791284324168134823928373525379842029311922802329698781098353313756205730367877073967034125650021032563763451290248925885086498325118591528281049240950407474604076809709979516139290736318704181527924149557590937575130066222816736553203806063971391084945570331671642094865241207941771057494000120477533476459014822019056483872008403285392762402554990869742567702241528411674255606813918479093768846697450591301431444535696909379126046348960884426406483775158253559520179862046752914384032746555699251666207894293615997040492655897657446498288349641657325179671953100549437239136038634495887594332268309901617742373023267135419156309580527527343207710965918021200092574903856573995872174245547001233986627658369536589436271607060993675441804260139462687043291219075327128511839555878057345894657824842678514782419074489433547877553884268161064371311120638754188460789800815684708690964221142738679089424656712714602358555904889026312748204442155633996688640060030517170483809486662366678614432723346984287343425486573175975890622078692180394990690521650891631294059382446505683359984333816074512602986797872060717128165953764959108481649579081662857032341061085053975203669337062174818067067477807171898605532453741761379921226640338111063083048189866075999503709939644259990139554794982835527988870421964987758292134176941433706007109547992487369033660788508431303119496206227842988140859552343532857833264727452100787402899287710892359568197463337750680244725652316439702454559892250763444053920737402250682676323906590540157825871006303292318054935218056744608469040650570470022237519565005105171883009208784485410799901023925661108339236231490317168068569408812991858642090534490132292720455479599118986189947080193569827031549864416724225276762872809395043312088502868065501723364477628330725693932038839251611264361463659896937672274378194821419044186990659012495146431426760002815846027220996897019236029727011579189159625757941741625153716275758734181488338169381533662842522659876504916382457559170252872994381579617665490719231943806136446865774832566617825666639900405183983420676110208469889846534789849977315859627117403553710019134526262310745012928835049945824255157607730475046942092034072330164657814273466717641600232558625530638407463995089442038871539081059992170250945843656390393851818888271093573489756726226081361966380623875766530459847917604662109287940269398856814834835378631183633648529919506911952029236164936593111671440327255863695012966917356999354654377342459327560226719828322119837347180171998111342828537520296043449228810130136905135152453945023428283066043637945806193534133221650001215652856538651345255794898577776876821557372081797852582987418994287521932248841607668708755802357888745849541962958152822653172058858078726028846107926954695542557627328958056046215706318571928946034032019625644976314192520713098190547112422731972785030230855356824338174580382685233858408022209195637466213300205979041054381555871910293745908618150441540501729485625142655802211011850943273546136842128751498868313532357824896118721041571223238343334584164971235637440075487151012233349943686903179820100582201802814191326367208284836434378488130207023350817310035745834363019770884270812792748060966996815125792957281396268451282339891629203784516087784553700342106019872419051374486935118636451004922971225359273875448427398384589745017509995654872896244361768637538399918709415206637815524061706225938259245264179465460246562957230274140053214920385184772580019698874495369837326748520753507428016468068349134176571856061314908054402857351679653786694200009268068038462303173749203178119002870024236314425584013229150708905244582132708808203166588820529776875435501351567490938688152239145003080482959403463173592824538566735675725461561174264908957786179251650739149788475626239309086949504591687674318714813913427344508295366125314200315812642547591140760447112500437004959335696215819508703241243327660491867951899164288616316943062477001057362279703352535741063314828626247579127585484930714082411584980198659367314319876352042555508105028536041260205011518814702575102310873170508646224093348503901800730556063096948931407863393905083969396424061986370752001792895961431703648830439856673093933550575493569578660663500097508460445463506499584446251812480593142688833574391626285771414483849640934157144865403400767366407498714148830620366653832426121061794918038045643371803680803643682657500084345718282439983460353139344279497553702585573137038158249082509289694401765237632369224837529870402129935613209035811001257861389259530295922100545187517494780281684841627497070219783090092713595307152115853167084328832437289955521464524971184785418583986556722571526652263266508098501236526589575329095761321809746983345038166673029472795860027412698179706193692034306852136962094390035108447347848539842029704948576601662703030540140090050089362768123348546389765731350237486231722884298753560062693134679849668595160643590801658117159641271237336158110722624138783534726083487337187977911035699981142517425550221422148282003138138572076436200594879304593784079954381194367088758416062938065204081681172175610469354007254421898421178959818324097693719121794625014092225941938834900404780021255891714663839419046175172435417250603939124371596095126574029351328608030016356667201809380671601096015804286836126262995082519474026574574422039266861141649791972089456189535524303556895675844535694385773985283456280536751122160201953176247075391857186019350322482824984199683004279696771276110622970880516240684837904697398939291425100079620633957049750370118422559579702422881187396061973187895752924145024172149887806030582365203326560582521394122912310617281956468993257731917250207405965542194449773039677613737369399011582322077530265275257675215235270887216441231516300414102172762105752827434808265032356937428048427302645261508140884440941979278426290936419563380884319072198833908639322875474068428395615196786735755564842305188959185444499006656522242603901062283382331980333167270102536059594664816298792485109130858920280978647296960657564245274037260290737605095461812911795344555542758182941827528431791475368238593560809565709923288452006431293298337500859653872908063312605610523032887345055188087583675365070777754596185973556842174589893204034620077309224774537660148354178429534471334196879204849814935784406365740911890323919380560814624985199435671750903235326966189585762237341996390539511943833204023404253085951116048764370429667323571079471650268824671720058153663921302607670636263115590775723398358232817273197349237437815858254524116554919515004318846959844260829979063391035088292125491271469645495431964088539170725696907243769312152672713579295651294708972925707603748233296334846302201749931054738616807439391569031791035723485151555046309936775815953701962953121472776916678535165250423689244452407760126039247704053331221031779639520521279276865447822825971299709612065059533502142892743055583060095500581245874584092537545565078092878075813258755266450792799142540559110667559719924145167647345442369679702524868427961738330551336968503684177911091993317837928751963162612339234098993081560129973347019359784153205733594697314078211749314278391219021664138784876071757137504159990160570529354530474877487463061869560050086221462122189452657367873876393012371787624896717680194657312741033037107920621338435750483321179936659119565861593299773279575259910494233504050297965890702278985630210937975625895952722136284642235767776396419946881129235009229997093598205511624608014326840122588382525263986001724625864006684144098794762457867078943878181444455496395559321988488165046882359334607359816440076305322751343703335779495800626096069059864517557591847130236991945925047302676722810934388309288409227803731653028468686272433674344488392388546027600287020823091363912239311163166765713208198294718684813502932420913621848337936446988697096137750998600029215162599110662530296970239259214140300891171260038856372410112005888519358892054938656160698136103176695967082888412676514176861379368658049049221623248782750111483265478527961990929721721967111725326583888280819508343852975667425793084122407702872685575365976760586947737404494520428858279522121875843914413185984782637564912547136775924135846139198061470855714652287404353388232792333675958389204152667009912322041728156338790797508378893851541770100305780928052223047404791947278765243398741638283774553107540701885757075582088269242592687389439342109379483463370906491547611691020328422976175284016058572846961221827843801895747408149875839134508596333174831536140561412820257059611584962313347071076871873070811757661827150318092142707555316989831043412611060605640017720255744854015451019485082304217532638733352455035382288031470493735313704411142677403139551493306864016976890145136476736675329657406524866711936752288012935083650055694766404601140866206514972648148081815773760461474466809276887449238993540801838991581214481304905748111615985323493906090372438339484878061731617245097852972555772233620681422197101376890717046931004073866554541893296423079647330458007318368200025230443553825494451466525213120041575658665511829718350886339628010021367673860697927746270219985918926882261676144048479058737092127494713584025002823154304840836356378507019784475589726554011332583170262559791629676223400019360882771185391676639371830455373362012055790131455885579993655155839380457239822152544604430562777453541746238823703626861611200545475238512797745646474183576870018795801408181085405146761368763373599749432904943857368617961962065098079849153329288090771670742409096936350304645253605290191187362286801442998700628467954228137858221380181481074116325955821401227601043030010895129193038112737229961016711958414923880959829664965225660917499477623126717296076427669219354470704969535026961293625284788617019275457240530517808135428448994256000005372592766992710325954004596699207883115203308037390070666412150913824644915431076835639437528719862326883732223563672546064223532621010015998614086717887791897386655621788560259125145199241987756336094735204828022771753339665386420866514163548760650067458876933854914467354810413266555565975553727550363067264638329902865542719595207275247965056508699015454879891617159609297951663088182242854726420962390360833475514211641466552793225179284542165320419850193011366789650485389153121303808918996005124037662774226604503884056270717404301598888859925433043427649969111309583771302300235324036897257744535621737036648753794079153494916447271229197954817998187108412773732727239284693084054634457651407839794151198381111803225992940270474505477721476948192926237042330937335648312712690049382023426772176786245311739606000850126999667802820945642283679249171140665967297601852876958146987306103142664633860241022955379392187617857260243570030301040685634668129843713217047636985967201281077971130956414970863655257230314991501334042597742147240829009548522379911692323222386441760782151271177161028185867619175871639194336999864654858287618245517568084925100512909502698290920468792893286143432486210995205018737264746329887708149712379002503121437924186496956561731195277945145554392891686709525180845745517393178638080885794214570903501961225700429449914016506914596243586331162106951245766113816573420942834923630789659055556499146622250639968482046965535483494841577934480070662727162641613522569271969399778622861563066339701925527226492888389243501439246264257668681530691194526036342081907286884415873554965988181102445920694304230735773378748466846043107493848437770991027914341809355826968346070369623246839534247650226658133935424219485048408504277216281024214105918417035635644234812034973551269856951705745485737826186173098773133952264462170645976747981667249203928139722517434259043386326458844376657410383856692328828289184166544723041842228516766907071727746769826379593456927224465051414087563245354606134123771561938754298561526570695829311865605482360476581738280019390569959282791182113792744959019452928026985321148879651701494877800912461868315111718293835178431329196896112539735521210125582026340051083580632984427206928923364697717878925744520079988726889482088598446237686370201166420185821345150659299408475923503015512322520564999611039310875664678439306820087261321811736694174469335999921647654097146548503193502044072765160773721276688627693794830643104304511701674458693518410619816917771173576974341284369427668398861703441462440658397720115678655257545711229104461510333974990079923468092142067270884974270672267239814559229930737550504247328979135356012886237426937846940743798916009401851532161842947302219095743327459585837341628106367925279114401114452086305825628680758582541897149231514325447728892325332338927289900509043942844003472093025793604448072649733232517551097131251426139360722453530241364503831040970753801131092887605793873873191975545705889607851948604519762174092307025588251097581283782960232426538193362318000946111519298604413286177122985282798084393396200673042431948385182123051501150105367030255468547913972562020466485332864383897073675573906330793496295085436708424251265244061592081980038416891211360541392994999660455316007083282611748106205869298955608073714774567435312584139080849715880307621336292179337103476044501451840262838561537722162812940163080071764771907170853922490414820129880125825055033010605792501986423518376901456184645380830410487608256848110424395209300208477755710926989287080321845647801730628797118704122072692149732262927434014416549220696916518473402358424983170725260957543559639382997672006974459778740448997509725477634547904673871990873859895385573909922101774893732780388756848246297514214996876011834968011227565949702557218022277831793657584649995657940719578226232819513534185674035170653393498042784639153234482871292596195114485577460091436931345334859027037271338133224197525788485736077160170732769885520993828836571095892666939520939901718650790721823928422343700772842153227849679043537878347180715130698911368500891244952877747085843680377921669544125821606271876877752385022712508187907783513675096751286748943774700365000062654683217593805807063558988872849083380739010217382195675396797081402834886506053166515697514424950106355414804263760324336368862507444942666815662941977554330484623542866029650995972002534703161245798577849182215647354361206202250381502411216971483983969912167100095454532262333135879904008454601660850076859070890111217727976584151275956154185134094080726287941547906943690265535719106792938487112398955720845119045317942291437587641202235359805946330940493763661342571101937721429339558134740785144709464597181354936399279194767327694824486262532141159310742388704378640646776152783782098270324728368968182849061917643339242057789053374771366513605215266094772377105385314731420829520113146709722995872918435157473383591058084427909252879248916265484359426031890421950443579854689166622685206583909581108270704161609554927087233836660423300653460650168149128011039157872861445927950246946622320891909248251029189435895250187465939194418209095573785804771351726559863411240224975484117092052037200237233653922345492741910814097513465144926250924041300919185572201942582062325231051897183920803746542591446318871598144080297359887913711598003150834738457948306144535121277639908320498087960246402971860241030875276164641790332734606335576307118326393408291097321148949670972545375923268979601614565319717676383230057352044122952354676513957027451337174997091191748522964766248356064824386838810132824988404703203880952168837048594280696709788201512792884712393139273289073425456449468806844749157475974503236788696818393461412385355013915007018104633710064525159661493656962379883346530934669289111945179977223020420938861207911162108783263378812500965860474879726362056067087084287247315853974931411442585458500737313253740248415741355702122362420921507332615034254546819228467269227674854579774699645677492015692329995818380643277221739515678983266931414095697913783215009430637473772339526752631367925111320976781461770734476858637936006173903232011516596104566503129427232309905933114279734549405801962346337273487716609120884163354469515122238608416418925298786429311411576467105463792721336989626573835335723939387221230518831375587061751063972957482932840409604327337867067538086159976969977278232663676424840999962629809817561567205993242790421960251597909551295340109345915919338239679393667852752934175507433313700270103115230087879544956464209560804478814297114190921755025767852319379369060596270627503627078645925848654935088259237315592787874570101164585686342347392969167209228877063593293161079774943083348585848570260487350427649981033776366048438333299973049685540240481007873809737854720429294833854653075528906039927227522138634793166954790763135241840485356816515002368601872772956390254038777248529761827998116680034238539842506426238103917005390865858469071723402183826642569909607861563289894998664744252659869403636501379481441195486017527098436410391964474880769315841983834664463263001583091594266893836627195528329695591674178640914919072179372553975611280638769905350452853689004960586087983823229599992778048947875300855291418360990619190719018115446872405938287371199016404082882053407940871431403411842380230697120427302395961511765204129115852714866074953899110205456444729489709820478389925119171245632929810133824719879952850004040768125349218681535927026552062200080530269989834930219010439380885512894518166505891349167396884765740716968185927144178580183508386286354266570872642699594825398383777911442133464358343863422224947683071059925666776718944028213354646001727639429167481304058331412326373707514806255024990064200496885885419646063877171758224976649428836952650739681945687592289176400293281087897441471520261397469695658698647482728810136429066319577036608238673709666207654104370413058916799499327310105872180113407532215835323169849314845204571416445148041747408433579459940782002291921298797645092608909768288917768746056194223952281382890495800794806637205373418335728121595674765970360926867486270912565903504434985131358739108854202743377526466046552869574638823691817168129091698234303926101926058593684009483664836259749710572052366549254063105900402091626963589832219396638647825226948451735102470767428246259446819288891517259725308433874703395739564623228987715576835139650536577911041035379910729323836419128843515342070738715647467656728935744287957613996383553819253171972992828414854104500920154843834447085652197945269724993372179390213418134434573370679466864039715378690026081201122466218298673869275078788450117114038145268254968102405084203422135964691705804129916280038810936722948925628946779771140545587462298852940735883408670700591405462913166694391314467717057945710136503777095967558240389367558754353505159354854119430036434970515027306843533572825196920225903539967270725547501671292194316055130573039283961966218805124491918400116287833490908229674841474076591315052429016625240223232388347609010370669533391939964027980872671206236580479680285694265471057350516957410555186329785209098883289490360529602597552983751022269698395060068036654919125732088755129701745251369887986817661704293319034994736672613198179049658031135087193850369846054207216229582998300996756810383874481178854261560832558592407227601813483385771446995683485098510490016950586288977229656792315514959486342820538022226932205554536089334110435860655112750501191853895006614674738402833757365039446160062712460993094653395031366172184263997956168545340094068241540613215560169073329893276012738133847118021924150022861468612095568064847571172788610556813913369625237382542686535406121336300789024875837156552555500865044257714432528228449526853548537073108640184867142726063319819955420850109286941853155840656478124627331928721537166709361325444264667596735618956907005638817707987042316777785526587842711773417218898818158795855602371242279281729477305766941342137916415212171640498940253328118460235172557893756984442013950954215167954899470543196508968844453724237906511488345845896914237498669802962515558811388643891889171216690962855243999434113966378990858717423644131579065243730729874300330101154794997815940269405550802266120462801622370593359351273727918993012594880608027374565771372192235874170300371402255189507104173052877711866767089706691577730257320163596394205422955215728214602319539184037170130644490380049426510214214920916627328380118395536326321731496122287125614806329247512625335988406707884679805544710322172083633064525249706117742460912852713537001048986098685983251447219114956482237470132244858354767102078674033542358399898291565583073767432168605232551477272314356833426239678443724505397430341931020489656742589352079405017497397079428956052528991748067326059753726687842467782488904814894472558897159242508480057371469793552514269764618744989065665917512829223388091767719840778677265546308465625309568549834276611069170396155426002699986321460125195549262868994955763836755582313064670350336967961892505742753863483180515102937204734776673017672994522948539642131831938872285440864958645097289884927794325948942137300915201483884864461967232604588463821191575091161173045288828664103738880016091584552518325949958668144931843719835022474524548285946733214860679594366598825566813857055470142079368334058851548987504299688783590795835581818667141473029723926576159761232459449803694539374444250406040419259454616694580747343900338343106885141185346959728108861556004683908141471616664048977695374718113395605774209506692506565858454100471805141658809366693625500518856359993399864205324212491072377065861526538461468309837324345185411304757277154457053744903009620992184864727091969773526051591679213538654370580812922464978732824729848270163410460750931695474908202304102968151799683459269983795673169171232362427089897801887356814607817144802255703908847691010560661673127709953173975442850276493200339837542422354920086905990216012205560135793510244091045740428615105271094097229912367783440563005199975601747655311819630743908558856338825317476877233406464979649455935195916814582564407256929964011601634970293247786570343021355111248077598941562550375905673689442549594049074123372810957874598854850974792584670834053441545257506425361434499478168660955556400965373053679771175809472786489213269214392432537076940793118386732266459798735070722876339477674994091687746687900277623240160906911295543849500147184393402907038373199367970933821772708573489792170609848061303229327850533669771379427975046566605346185880724310709107422774738157576780208412460821336469198689458242356452533746083736710170160847473893090930096642109079819721171952010633242581460958610334112271035532804905141104664566495198385038287270686134640823680029956946453868885984362214185476939480954889046467566064234552834888264082899838404252385514887321484448653572182432190599932458011929401142070006676722947766500820292803459771684524372156737691391877710229522649625759140340307312983452139726224553150664474469296260936451478968962402691428525455737608067082283074481154823229340764717833877860437570453980558075044241744463218333579134014711165894382713843716515311353075367729107337603716178069941204210555071170545290795191402782577623604983066048343972870104408488819321328416573479386587781800025708654177951604241833295361801043228489181440230060338249211907007924396501606331112111579411784377857789727158728658473545986528957487537624557325346572893343346502010989172862537688799326485560783261300725715359518639898682881383177680308754147258324754480591315989034805799736024059416834367854438787324777915131249655088898742624752826782744051197377568182450828713944339481288361850693632107554398913792174184175622922387199951198920686893075140739060271885716224037512895073424797265952109590206266638584450572553330164267891185616425577190338670559605327622903694852862149248113999109915955663543303345590123155614468084743667651350705404265189089807325396294234997244484547922428256257933821824091189633315766868424897255579131784336183576509293634728369431319907238769792226539390265212779188223671978394847472822911985344477913679903084960273224401971240230168858632683377351414047771340443505538780297001954596942871832853505605463616421954395453617818115684091635740400760760763245120751593614980033793429460698314827459363312157755290783334036652429726334820935062878367455799011546319743115772280600980015770999359291963695361225046749359425583881255072218579746043472087647504172601608092129724156149879276750896779415199589266106392533934167688414206173010572362294003389542478216169965264923644455030344710375131151072175200097261809538494952477667552146233163191749586617495113834332448425368667530431154593913772181763511026510778100293765210567280775090555910269228633870566788472220326869906698456935030522305752901722315785316042062911457060183281884215464680059319310198624610703276844693379197039116781297665588144546284681134925398889316853258100373005259084449158409380119165710409338201621849205506804040427257725619525840841348839131699935869768074670499068812189539214758320049229550786011635164206868395179491059006581241844198811418352783481183741270390656857989055855175093686276544452963975986707630508512270541838799557663154974182437010772479330350388270789414742698139659203747573151128461208490397362437727483392630718734265416130102519772959322845694650532631536626398929682820453236297945332061261618065607339611625732277021979122277831403544450756681138267943150772093148739482133242699517461354076204383666443800327731355623931842128549097575715299519620320382265874911807000539982177192948897783337556324597307799124458921537018872525558531998053051237110896091132679831449720230825445462633004343104213173407455352820706875669519860265212021948250198612201511129117049736401251984209732186309909305070445231534203004700663633881154707941122001393353269738364788719805281771127254303688817100410076940406895325756521057695548264021571722214844201491196660900590702522041565942976584949664696940408779023559394308523761596444876809505415046305521583387694343373706545857909244782008208067456791227203023805105412123983790189931071991304810966076655677548545600527265405581685459573339597903031702723536657995614259023599143583176646848973255753914033913297119946698271525441835204675585701616161179437822125649429216523816389478225345806454626954661112701080296769118592223966894717364043465544588792137448566726595479804327663338577632790002564205181288090787226149327181600032942633586194893548983838161553088274356376282548522356006769939132531387202674318157803871178628944735529832773297575861386092564536506597572874978222303467756947595778931828601439189889426144778433516864375976379916791027316574807170631187895787267525435752503449806934245714342367717344566898057668306465864766803892924377396649773070529827806713336206888580802370604617787587586606871437126456089442601797245897075363724813175764431355326593217406696016375590950988366841888355323962939131097484657450777693067307654805929072725037127746580346978694453007312527564216688342081139135728276998064385872350445821574201906258620690170719288591358822620103849942291839797950994568020319590840007894191323112558875481709181274022445636048043686484161332798215321497991678470545595016500438141341577096221613658170090064949167001906638098073423421550262862261119732360948635581548921264792522388731006919371356065872191237017830373917373903388407524351367942759079653932419959650296624051975395807405142521373073553799118811653726169390153518886827456346722031849188469679177292365966788025506468752309248966353131173558056738940553941085074302832651280483213002002128066468801750377233299583412523961601212740288466689631350350571895284744803864560839112012467058735606469940899078100926752046056910003752048271991396396219721562905301447825552907204434896419013218063190377133164886439313011979363328119593942283758826720356579270469331269809660906821153442533802185378180206453823587558734519383418460564070732898506097551008344564096322705756608481252089952386084000096492536472104807070712491360262636177071988091330947516134203344459591446448399450580965261614026285109381052880233439722559751720259371343297815839453577699273218493541780764335827697227894964964491081359220650788092038757283346804894626745796797377630398200996055245215325082482642663475244834319378851516497962364167272580532219996286708363389535964434135445228132671708590391643620049482255870343507405842483267617072200872984347188391281938166989272806913717224940562464335227515613021685514361077990407634044092762092181795831542826655243608141147123772064891867697705407115683161516338074224336260435227734069718964676049208336039566092830359853482415810795798226888803812450449161928087566524768704698820014261239972529952235821650561833593039776949966377791813691457054197396272881402709304271493515129018054802757948110955370641400888419212945991575985142998874916997585830221939599447120464231533261099550167423621906312052617364346078295296877829134620755455127555159262946005561703531163268455016321570177140686036395901153719812261109375105994596712545020451327527283747755596993442448761147718669268745733699602346551697128968916049473448535695721369235903940071280636483257411245128861713480187101685560046912517430243575954978197772613410597429805533178125467844482943467326422949713621755718976328704445435368436447721655917927132567664164143542499173597170648187653823588770137677323012635131335587817157624182551195686502147371341153397177443737275798855501905426677548018562787420868105803121180369356070882996631749591745029914120958194058811825922305855103277760764913844397705600121114785985351700810361510755187646312567546616547762966756013913514356267261248226316069807604503639075286411993478249507669267405232474105957920013643708545329803306895785959600686174145106443026002058845346297887317489444307446959404989628797304936739517453781627088535950662313717723874257657570280428106971782975064128837536225604746729932356608100761767089567302140373622202085133494261814531038785048739242718890977987612865127180616897236884592925387294222645913526537277011059269151107981714851012593693577544072215678507667034087078891038258818371986353108164462248246216863493583071807464640667848718465406063149015904926981572739862709302117715417325763873235729290864573402631778780455671364849137272307639420811728994299373501534333739862048474836960461046218018574938072506060217252450203549239434019618032898789292364065711723015462599093534025493499761804679664005234559606072078253497615914907882889483343957502215294141624088859997199461202112000459620771013595960978596427726979079438556535699314483247570857068247523339741638465947139049841422804524105642079656869094545328322969933536767796160892644224844434830305268436191663149784206067159375776988487473963586625797037630390041296678567839659260771937037655635909657152268373282656350531331724853121312592180626329815691332675175861716917791203465777565239369271733972158425346748318672965996069241668497626814289874545476302234227625009277112833365184484810965484889661447375384713147731508817590876107267596745787117007971644590977504445390910349038550897509601531550488340222154338844031785678602195546573190839446748847906624141046481994386603624057063912157173957152653003117068053372238420461594985322437669288815449933239210063779981323803515815152499234316494848802685999240188875557212245723017251481300672440532802435427129509726129144425168315874518761861468489692592383419680997411452632645518979776756773358364609155909500119265941110135865212212730412333818571475513059518229827723626373902721570170459703525801279563940633561004870554459332841678449911398310766500230038668076380409299375010865388224773025915375497143471353481133535295749985287910800526596329687158500959380154685083370711932992349872969687281019112754508649933338886228715773387771027140301992844479782054428181287064288810511766162450293865859114241889321117035440963334262250995634398498478884980154454373401330053646541710476994173295058071652683076523854774935620516927780651483468702603899656825627660924182037791487997122308270150186109701963730927756922641448155625957894843468053828798319066086846556278054026056917497180570245070514868064393144186784889493817104260324439006917476695387307416035124210121117603400584226550718051086823518930742465084212521572538794115072390572935008204129010373250144857858053561638898000347303654799183851721811500042502116124853634358740508190473101585737966143769009097949455041516870115793775687524975622225626197445971200711861811170765275312123461142903118892551658584887693712781308161487129578616552913928531649661098909074193239872139946721735197285198494193380444071211441954849764306958522998579553116789897887677091103944673786781944437044610055076051918699428910558526158927625635582318307231148294481190076386378882269867952629183551715901987487146218515327999240991902356984761926651993047289339500276158738962519997689508785661819373786354277560029646645987084752974864551357755710721386379218963759764314125842613348096282060394595473291215781793884826088951952622193575892532543534421063758252303402739410193652400039705168462977047052403071243546284936265768021400201219344264802213944063030218213669957640492732647953901275776988597393014451949757481986237766761425713453522763351899252513212284256101781967593164803217544119451817848934025348569691421869685584405666302549391125782973308917670875197046475880357180824292009846798852418681948557112674036988121982778071424824283077338025273152873958947318540107458969078933435451205983491425645422370197185030058841397968778731074631363921650851634389536279692781475496638799665577683084048490204556186160811317716840528512625713578634780350644495444509742717484008456428741984781462233501264351768275609826098716482093332201171490088402774126474485978262666185254953736080423914535631749319421489212721074020039074910206554255280713168908834823978392134151362363585951140981206601437553056201219481794565136603101253949425011953309056235675051188018678773312098918008924338088218435632850546424856763949025421834883201096767330152824122235903729600472790078991463759632142479337883571991953911411893673508830438341021769234909712490619399331549873955676497956567028312784896131550797453905384413827325667520501800041116059450773973912202180390086931039085756765329201702227956591987993280210876634001960611605953414495665276308035187901191594823145420031198974423548375018189756979327453442851633018959828890222008440130953334869468655549771865206818407967061123942543429303098376964391418895446608365881269724539128333410873001307200848173168784921229970034957903069349707348205397572861979030188692457017152981158192134589611451360131178329820820986280053272474794620935302020915670513570906513788109214593972002970224548070462327336931631163188790183628177346650475894747833895336348887046843132919655929933950003960905787689318225019210986524695016287630891725634328529529118808832091367901441103443622632837311207319097683309311760676606203469759642420301474692910895464250436881750577015562131605319653042013074519986565086571048216477921159602799891644258135124712401006699942670179849069401312723711572378775663069412901276935214182438083843699577088155661485224819136850418559385028535408878074334405834742361831201520507112267308458221786973451716607679891398288951224894394956534131388725926321731496848338662869664799332549868194741304099726488306833046403184399579266765275298908374777779274287600227059422712771936690839940728369328056706939081296793951760873428666692333390077925845418612673213374788135217179882253524330086023605156408489281602835167801284070883038573762750850292231118607491837304730772752005157941460018037719767739332777315711395829628277101965310416618577604058852235720636683512244609555539015647760791157256983324037560433040707389181953957805628178903624862898149737376237902598865971939868192503232800176184509163948371046453911845953224759999809442676046583494999118225971355072150300145512077870422678601941744709890083305579005014948118177836535571040684585850172287569806910267872675352271200910131951915052446112426827660709831856808697143489193055998658696682240806247380610114120968393753539069719150257244756655698460547672102343894114250149305902164266025866594101704208403099875589181092080631207123014339729265316099875996658577383644167415695658027061644698566661553563728093798401832972842083893169011279619604871365885630556677491098157590874048602022982912365025386711579177353547927240016285305215669854418728833424832545563486843123667172802366246808832676868092987198407590830408348557821784091354682525590499729992898979774534469004443663193279207992999429597209574140822497181663878266419624892659096042809303348683472780439233964672023327164746779012877025740834415415902527469747243831889000510339435762079699247460393807620604246583424354329719073851552034798834826826721272301425289592066639994029598052195883160356310808269089229010906720625466105591472288821394480181091449465535338396680845359752729702701983933699605736124821737218269689446681935323294237718124471490142677933957357297481891948899752236835905474595488097322875521325957377464062189580742415653309679756431803250807634131586725238067355579651019724837800317395476486164438490325984804832157033128233988416794382356151469175979414536917143950541227537653209997628153783796030519025708537291068809702626498148118897247300169464121170070644053075647809084469804725019387866680720306438066693996825761632870872701607387905346316490278101912004737725223183465872812485843322579286632305187819154456920283172339111308026983377619427586126626099059358779155499179084866986381756768877017442025628723623970382259147333369155042490266806246693121896496591379890331971383369037315883761085116487014408142670578247698532119911924396907394340052992962969043143125127409441728236371752239353234049113368669650879951197077506569487704759347558333107501003933881298766137088115969860137776517683044316088615190299440255849689619116752232488114709962125180444942904373519827676619384360674848044339678039608944766144364964856774124015030713866468338422983394988186150368730368814738603589478365848602487642968522023643194039917578266945684609439848011688446935110946962794487446370108811698847975227075253466483079549346171004260822061068904217001289982611921697837882066341776525317643006564463988039446328800583537072653519722953957844502153308852791725910092232192258775250819468302897384516279025139296219909626744588011447641960158749844672648663502368650892582844705580916567113973209337943621454084020814330330018975288122038175791081967697971234027546696815957574238386058950946546045137175048139302147666172787862796388891652358769463882158569287880102179400485509551986219011814521003426564909831026100627621788229379201113304062526933374964664681556663402241232446151078665760164249850097009074662197834344067842264195588370528456672313560596586680179956817598078286041780477432185019583287529406791378597209598992812330380602167788976986092426585856610381540981349554899839863663507857239390507714799979489971925400597973996100296811782359041003488368656896112207665162020096780226526982843190715934594606876430531591882308743984966595661952414723139242666846627393714706040403462235036410478364382547445324353477213882472982532324549482489975007432379241023597559793136476337981317054192521302531280247657985828782036414439367431340450314484705665189649860748667538434083916326744711810687288276334689104230022627147479716923710893547604334684316229300399959237995243877301170552429322167632471138646306867094856288575826457132535371617086533836159871107013207215419587888035816926045575905734766927593574115711394831406651675275360607081444355732689385012528050791268113346784449272346020591497294322319255177079525883904604303998471192702470446020789143018217708781477206261401320540660144955826163903073131506311193419789959051047208701750512774260582603285357085501895700690168203004193981959124307767115908871008032100323718537473103995155382657092795765286288323140057469492869545720752526516380875976721823863168402367090193031654810654460107797998349379719992554602867205180934363522488552805701731521885677274500546506666954885476740989295492564463528449097095366247482760211911309803806639860924547780943464307269973097566944838915590941237352169302336322855056078518600968673450689711316570254121540746119166000287696647859748948317323530636520179429891432204056536769065827051416501045414298557802586413332981373889052334599534476956567500600720823567753886511595373819806448306761642787975172101153617947022337262930301197406199910171804031750784441629202735702161702076862215755118495437323630580857317583579184790885601070832196115395620222221133209694569507683403125506819905432668037933272250899634846557723710911116545162128671006036435400282095954308136502982986567550625487228577370288119023282944998436359109338840233329003557979934765931365764640349410661140106673151431705993811557146854342421918159781480735625529328187852095665106988779088963021910046643872156907951489004913731666634740401414660409575172637736042892634127853642188820770157532733518245852735990697150419599479839539457233734331853426954734113954768438971611958818422777437370623201852726381568068922923914240199819897478767093691250370147409158597136381214012569010733866211025995124129420285995497808886441175642812238781648676585114631128990132002637942502735914268459999652729364987218644594801903923584611662780019012595883273962461678800371239187694904331435612276885603949103320798386375355609168859588850954409557489622640572131610037419360339134210533163477615819153016694141848975729419445571883220615353864906322559102504216785491265316903190058066271605523580665316117658358289699225425100692916593102716097126991078428324524312313186142033067635663430978662527978320746862291343069078040640324130864237542619512877672731877082502751268582255210479939066397888326623980308458489046932797020012584583752880487671527751391559694027515381081261794623902993530105147171886525367534936099172963292771036845849531399133370224110203409151540354021542874646663367734478094680361195735570858404434169604879060260191520608422176461691759189840566378857366903421143035306133365537316898847732137640031375470585947916806652748302298363274760163825744170284254638631113296549114675046098963611703747549459239093263507829605344928849988694203989732689977061326773376833704124781189787552943196443818326327512597944841987771498656068262199495658917825413534158551517339083581518663716622780058200509990492831357511956363734835073190612162493946282989744382286587861201268386275050900736802545852745345383293363332084116647366177186526034624306402631412664414268806075139601356879366757986451608119213597175571566890264056641944426194817620262831524851147200739864107786706139652108778384286312580887516840564519434085081466627630609472324628072127115554227564890952214511125554190766789801140980414567029031286033783337621244207412095115615075970597198273539492125658657385904113248766823087205255284929986147491806065699658568976298039955039461322867326895354442658418645264446159566191739350359355171724840404959055193333636794173031870775451542880761526051791420725827427246345050274019628743122373027870322213338285545230775414699434526841754264372236322521679138388171564985860490669396952981725169652056012088304842220467086568410397146016894298789318711970921995029281834639341532261581242752438715324834287987783066692808026382774707941841748051613381253528693776962807706165583876445432780748981561093857110728666164759410380374472254339535971248356123034079835109730682262583941492731683171081593202775413503067076959507771903813906093938474173652621811619580119159810554007008752767977515910443416394030223613831538712558949560028056384026511489414815817003502298858875352876969043769261155685023727337973392603799213275961783219853299466995377224135789142634994715884024703616567680318280447946054864975784048511836225646955518376345009709036210938330225004557992097323639433036943332433356136036954671320527426435252254341158685297017652637788808142932636982207304262283108250010833007545126790498142479482716042908340699617385045487335816732822923959812343562015995273133162414276339129787033395651635089666524600887197214148182581308571974453922341595777558231811776459978018185655037963546522317024593586723895568673517520477133508634165643804278979388356474254587510405529060701325217446209562781376186141207299020848200812793335141964727968237769942565513156674661805621247843024868897512248714636736804789688978599069505891201564379735588909221468074092129708378840103692117509335515635634616641442916749614508254173260096732732625990918709405200276051507957283151013912509869869101944347080131381810869889727545729347110776731682733033131508409627346049302694331813840180052037659280697276502217870410744899649510454082929446592779844259818481767153791173510348507286209607492948556420516322637556342123615500477907094686629863248984539787195472438748678028797145268956549317013321330907023309050055771121756329824865081213804960906338320987485789842460616743623288977962263400567069292367800714277041099539152964761907764291094266288983334651552107442659523724589860562769278061878475028953580436294801559055364704107861379493084287314514885321174195653379684593411670571076475348932590515199227222236492033156853741991165836136093376667561443935364007534935807087529076142391262441640111092573636506363543167062833787456447965911531464581547093463058002650762541658855191517933758968105722308534504788320046407457199517048869332610566201310630980916023558678671927052352956280022158950078402011082781034994405667370511394388964742479264984273472369318128659511944439772938081716346952976479729015020328388705414085455855099500934189441353530013400606452878390901757926620782369068033918835792388168933849748110111853554265410878226558776579807690907206859659080864881030679666554099781715470924650551176259157361264110600062014015963622912831379912294914192925339661624318034860565607101374009054590852527903822568840483783432706183088975443787297091755221716932068766587667930154483319203551100266561851101044599318198962298541625907952076319716188391772474232504866902465792345726260763277297497626076480715867542141608634898711820899022505707390900069390045876923938270537060815816492253788530002448331344168693775795358736500083857792295711361298069641756996396184926097834180953550614074806748034099277610158371461905451875584215470632948910009507628178876689465191279151786941950943095933653379384936426475597943794141687996080861976771420071589678687732286856348810522482727655188384506719438560210562138469561051320315971641277162571661707996179928633374478376694745229686843886931963928770713485037072455520282357881796737072965736121607820557626018177655530922021368797198208022965889645502356584270835114626091286034890090242493604526736582816681545054798973475378560168613906890301223989075708721894044493495939590924899168615597307989428711270606159613190663966180828811244429378705467911568282087479050712097579116431295869873445830204203402599039215021184182993842285332499026502685183449142797470722556751436474485291986176045015680544772756669694515868070838092543787284223802254488911287558912678519410540514543501115275757132590590995555533976697122657252346658454867906542999300561572774070914019307342879073788008219442201924098420805228985449287406603991781202010095402975813418118337660523243548319469066786016181620733672293547895092831831572365581302412454009821751869356357021716137970683245989001918803410451729947607326535296585257327756162790054157413523230157946647355996409876147982982141067321179943381972400672618835893068572767913814955511246914012598641804701676419982920924652228838238144178391738570714178931498159862156243653713410487570337739844631260239070711572578049075096669220531440897514592463752628901079464653549661992646808943671543210319824226654333990619715889635998731259873876852809790398271068997892408624921761819081615723311216908800148414488952199430032081487880503276395820573102328209328858895274600909934218256677274359061184629180742485387808644462242940334541403429049156859293872595003205076257426443835828815383105957725755612322940186541045939145883956709807660560252867116170139697973326800648067138728392296835789068869564485675558382903265496044642605203756188564003496232152092234448531156167322695628305067183088450790860845391966210073639014591696372231789396045067624860404620684439864276529768371918698380042802594256346748524074520904063292184896775628999251565322431647647726443488897283679132145012910438095227598526372463482828775607995332929913166431055330202025889936130398370278542768387818763585438660611240653785667107710445316387849382112249938219272485302880793407847008116313753031501675118875657252122796642316147590669132197042650470758128587421477757001584024400855102274447137425815580970259701856787731431767168720933585195937585715458468934547647701707129916675836179133162068428055906648041674123966652458813627946648822582755510753681640818843350980753230315328012935024896494441297715417683678130161449866774871188217067406798855792297846591668636393601863451236220867970677148932919863964445448417772356739507732850823126324634484937171035320445708493724297519962126003971963201673538369620211499112306056076591599456442159660379466801975029308053620599909256558600045042632726156872828470249305532632605528260342355582423242505602896301219581867084706942111021346606940891730239705170494970493471718199013612764048866771788500041499525509318682743148291567108787112910964069438764638032945904495416242244861436177690308349392177952196612423696976451346193356316985052804782826968622496135009929536599240720565333275950149661155022583922686432741056049422458168866019091113035265279696660999723102905576746087206708120875546335605864117483343058228363634485059958414109239569423649480746776454132567775072473908788950184920833986827457986484621445472934121217665634138189921319100406228982496914604621266237403537493565819325516711049792652863712286738093406896025291365886939062791109724449228549496172089009096698577466425522850964274926563523436154991218261575837706046281188551564697637488324187076120485549040295786373096491116270902976326506562551124841412835478087483976360299224302694332667736287201276107406895433706122751873915489381299191489148974081727089989893652509836911828131702058053916727412394709276058560559975313692891855189951614806643196942002859363860735331743025565895833209305416974340604005654490309226874642599921145157929871195928454110017447874954199314202901962543384011081321840270006275281150674086247907205455288581552113287563220141874117185373217128633916920029101747574761060582420916651282835210043291978963844288101332304028243411454976497244124099439353913567746062812591011974425559817586221134108809939034660955944013872739411473056953937756277212314551202559399739958196387561567659533539409419987202316510148808620955344168554850059730200643295249935573536399544230257119261406244405955148762461641852233393830650551558819186325311269222973565287349378384796941015700933992193533389848679402601689552752884046316226824703510337704252511667722099759912964991092371503089958949791267268304983964807247951119016660383975584053316631850379137837109019352180505781678860811146380562653074289086144945163118569861066648458054724300962943067373434623074738540971826533153481792799146419819266848666646178085222402114798640339153775568529807979072683732579507624990575396561575452034585407718928830722341219067038878657822675327481284701022708662774406251944200801441096677056443513793972741804309402324826761407930040005713781387170239163889083061625746721464056555170049710467422938572350675244074789858619940182159278357024209020337546742891268459340775162441528767814301121455130884569753898976603896576156295291226601978341660467745657161324040267925369685319001542782315150429232699068529750871649644363681467907434115779179895790485002443797313572411982695048966459241189186275349569328576203052216004692051260497064596221132681830633925598076839395942692019051566808949241286008675797076552356286556648877631531941355361591414457570340241348966482580182619942264056555727410601915469046205891424747098045736304753014702473305122557615082147900167352642132865615244797194049669590141349628364619878268503338011564591046076677342333416289488901548559796753592339321108481142464311438902936087884059077924845632620787080835538337510481003906763687176144275586830448926874086802024885912257149109705855235569726662280327782544195045130818484609410467083097030349498273506387297227620928662768726413786602612208611276467674075508222465920615178117189419365106526417298298281431895454917475927592145273412997011886188951125950003871705386749054169729822965578551650682852467332513279670509927261367127657020456809993479817022904508300339846352177095543931280767145504428706779798959380811951465481731250856219972229705458338981452186098247211792615737218590565736113473386317560042331157318901823456744449901738480557639503992531958789342812439005703885767990253934724280655472517318411485661979126325911057299439850120964494031914448211547404966352249356114265842709746126931202825245346375875023896984327512561032498739250174116742298386683392105221698990096075054362656719909630494520402011767813157660221321138742623713329680561065869371492646196897786836985046514956735478794409829322483545843462911344350409893218758886908164447334693753543750606018184248433945676354775521294175924571820962031952012631000563271843385133388277088923879752877699214483240201828791264193273942927156885429886843877845611349584270607842653844742649006070657011782139947281660906885584038756090844968348693515423157268878826013919339480322426589976196574464814000549048228930847605297044714175948103403290537398862054328980662514885341559962573103654860849817292327097101053218872536884436477080862980518744430296558879368503315167437645250104601521156687433987182598955829678807313100175958895142894755272667915088340458495603105952223334803661779413115305679550954915658523060665534536456301849821718748949591650063065965776612872893233912534265319626605615247474275716366691465298478618568925238848404350439044634787681813188009057271892993363707437150900878408830153741200428014297512999044387437043506064835303235689593992230663023339986346190232434976245734418710729218559058954993649037237400246258419687760313462374417661251009504671404867419680540768927825873823184337646862273473766050897189065362401884241108897088820259289154640464052493315121789143175980446159941571673533580381828276628533367277674419477452964177586297786648316317673323768493991415316462197760169903331080703427791179672120534437189254271303006883613851191697240298021455628297327264666462852571197200979827793723824820296411047013244074697521892559458667990573735231167813149307877116848804581900694755463271654210005902305678545005820426522028842182563475281645607064993651871989581598110123201141427309216456535851201793599219159767787097510053420477638320243224411205674373270738989356969831698077220784389280579733225362506996046445713477449555221096550108979226118284107998231193079162447982500501748238877706027731534752691513838256198123667074498695690504533643702974987139065841088327830279358677353356015210607069791266120953675192908684351364006183837530505306791598382106382892626423484803066282502456574114143921710691642582512016103985577185275542556644164886432175885505008820595174405534041779064765754275984605359260149771117864089139953277260223024927575526622759821635710938925711773982457487181806548654817606386787213048499434941805320267913217755162978717327214258497498888491718713603702231385931503192198072329827781777986828549205601665124094316716767282590559862718515618934004575900539033778544014750103637954463706461259880753232295053953031560143829534656138572644248162544474655010426861747581326962849735863743958430419429957424231218438332844126101189264827346398910637800158563308880842570309210112557686117259879464719272320860718490091642844610140239029672739165349244183816875516194317155726807848857023002474302895965070896121391595042912778190405022003400077316722263994014029808838208665105638398175357409562588097708752181483823227449520303727969179729244061471512760727472290730378072202823103659417908179510390485483185415903269739917536316170479413855451361465684340003721734907298878159018315449949596898895677851624689107090196775703468471274328150051903559474050076112183142600141697150692497776080162801686797803687501059173728046498793662019945751873368738738708766292333706890557387372619839244559898000733986160612564550449541996832347957937973286312587351882934371398510281405560154780443241683489716968909769464750458510130202578155893877672053687126557981666497615667013116837851564996101913249867220612132721757928488829537922332682891754471253146072104297072969785508205855267023242262721560567745953586744578790943031124077113628171445491230285658341910549906096189253857559328125770922562775076732065469985903303388982183567128697928777884065050461617998708980561802791869118741243022789830309323848834101660826502165260870724751992263281521503314952912413586832734551289842442260934671591265602658011387076220280548167256026271939645081994639192372428016300056588264924686496357675575161739862805609936373084902814315315354838707667006122332017364786959645239643697874685557278061555338517957549257554651370518139763540975197281150144187021704983374008631725376551559118597277420413025170804431218655913409040693935641315279943245721649543441584758774918411958730670698491414313795692906618937367065882561686570766829908669927047736662203620200742960979449176954353385693636610264743095878447718302154515680741953390187237480846180854490744531049209855973985012242787753474972589152422030380207781912926547815862992824683207460967153000698379240660918598946310930560801461464143579286320386275785647276308277665101207088334321640429388096203713333108332939327303096751018655608418640107526437409114090941886419624598511724472170263469843066526010979699982535068624825051401630900328244964938934184289112419941575270384994806018702139597544268846234741356481681762170446197997271388446825351029232884188484556300232773424740085429062322675700699210537514368789930540562426731948120882085701245197436439639777674456000714369129250659014987111947943197782728663390290263362843966603423431244108984188509543782104635583499231083004211685640740319806780698668868886609633475153271899931651430545797089916463771469045443658195401721264487318977725978341393152632546602367385750735641656028739967196409521390115217179956704922362563252361678551116262411913786370631903926310519413999469820239025598998515747781152485031539618712037914160321977500446294776560146049637883791969627128168200867044821743507805103548338800182870062032352105658407049606097331288534508128268138415088075157743019979673219221626803548928314106175375804448867970251048203870877278864343806054017976328807177415309170983893861262695203704160782941706684706466181694051574612996465313802740311419690940545808783784153565164427516601486492540488329688367339682542771654403920588448805341838192198474980943096867017820261201108493373810742411513053798571839987800590518522527078999734022891757214890896177551927271461842751085601955467277100354258641984171976138944653880772244985586692242944599663364000639647830036918254765924077337274340287721523449730365467504562431944207934987827151048370950720581512773188907837953663051277912017835110740553625979777948697181861558717697534614479258205686893715149611650799713535609286340953366315687154601434067520021299918809989693118754700986546610055231420770612126137682501036585856510190500861714392049134434427649759185166337891954443233785580826329741003557229167466025892347082460255435710678548287119776312648625214540095616970212486765841829755228929185964008918903169877604112074713605308339711648926222935031202870928349401856849648529662676744603777767104744389666629984174692166428864232752470579367876790064107283897785398381833735009896003632189501399434814689000880215530574023777200692623665636852611627715170151053655640620586717285084258626704073390195023961127860334525236693361436486442784319210368607101778848784364034257734016923496487283579520170574176202786252230860438636469295339713670473924187612593162659460099783365313146638325250064140607969666862153628037134268651757441163057742559611152090398330379419008525454767230519303410060299576492516304600610215940124089247290889130563052001337196836597804224254182692986685370041887717544133860187952825395474431465528557352193062564451277279439855346732654626072125042012153966972957467946977998387594795022932277203450232277368637410364004382385920537756025886223773827931964939814931355774157877108954250599839135523711461995437470313902061476028357268523968877494860317192757844067296918598563244711451326602222960749667344643589508816174928287360704468937742702760211363603376337492895432459479442296589754544256858731678840902676971708299599776707277856491232652924422165849177834294171070154402378776170770630694793434953768660004886660404311632716320649724290421496815783390954689582374563938169397017289333705393988362196893586263137339089233167572131257987976333148724802507505628594821528613374163141043153431588772949919731931946234828992989374876342805669122126797917230499568237210806974395603248330780130960277773968282422223639954984739584916626960265930521337112917213064656899231680854929302512065686032997761180049065177039857868952028580480560691403721205985614897248506880114561385344465601853509748853496183388917198514328975290165707850536737535275285527860821604051045328225529770875663493965629770072674071449713194883042056354351274118411723532898841585818918669500031273900376457449584459060449018142191965764330752788890667142464896313333619995911813418219808459639853509047556943857567533792841553083288653371829743938566833118965338180369044271764509473176165064138470831194316298091169098319508102798371938352653358459401436608277842165567229245581892055401228259042199366268496839810537425944936488093458575670703652664698795533253687931650123810029393296869315294046703041531969013888749325273729585848892258166794621743815000513960270163248757330050906754711758176598360720581336415068636109005699006897852152022312266157785576539728173409627041490171371719032107335129680328882211114785902622360355350441669489893844736669225998736897760283867143565718553154685706878825704545228667583919432227625485567024031508556475856458472231395906174886756538937177016320006599051164878246755801041188538016739559522584026726019079688735561155215479287874606352551332894262691314438689598628833032259080086943540739307176105962917229391318509559985504844967818404472315616030877646634717004569191540184726257498901527860321457701644441028595787495178025394500606012061127242806809624609780743770213402855128128190522012944443307826480854970477010862022649487349728208961867175657684235736024702242555551633565192977777939424615511376414037100344794425345990221930010261764833178892862392584623267666671358687523826536245398152576013404747476465964480439895653353065586552396625988525829563010661154409234277328201415705348920252201871932328712387178379372631633356268815742074119507050262705996184281057192211413936436587697700488469849693103529764849661594602451048302669159940129265846084963911973561408089627119981669781430814213825246657632899977232641670895027786414440494119816852007589007303463199073866636113173605534064696640112176958251785370068505269147745169573288147300166536286318881160326622200909946534148449754178839741517082399387940830206290022599243118320895858768290196927461797778905587247727013446975635387613249589435160010209484016608702301633764507940650527003877717920656341941106300686207894628282993046472584094066304673818272898845872895164566176649192079661772032074981761310987602989586625558510282701974226696461417587311536164393753950185816406500476340245130573768161062806498926693037609550024382770794589773712652537754014777477873208905345856969857441051100303908082650142715638311787174662314847749212551959376905537412836508855664183524325802282851143131157588966304046265275213003644252101880403193723041891345411918462077551795639501653017463751518227875217908968714925816991467550087634537932596815962355087825056052874978574107253825759847581016091999341379559034563456412995536742267233665885385419666131610726168360560823110680603610942778013184863782698971320362318085490684031093089869664184919518340547361537080254914414936633894207023591897636338576938916148704678971892330043962504523713900497734027723675783715347789361440839242462145542485210312425537459761324892063397268900406177384139154072298549218059801049494819192148475854365507714098676973979272566994706108645607952940039718485906340008946554094179306811012812950782678251984879703233874050265368242055006927289838413608320124437167311347533663599590371321259939790152965343271174124166560759329149189788086597003567084345825038479139202620482007682615612263051354794524188968944749395605040353139656639981253917363570991502110808137290067850784529991729247671956470506889153491025203247888817987163124608483481873141262534136994607284243016423569267457334376023984572559815223064388500117554687331347588938100885754335221609765402385470600579963123164131210263597203424108431947538348640551067993785244980633362124635166411043752429059356024614447089060459421775477557534809305542467138502606118663201925094087306134698163712667409303778660947606070449331729934339388118641162989627470602126612817022999146245217013922156843272799638495605524914029381190273548547912337788293292227119426701760004248045965303725075829105240271754021209357215875012333014390957673506894155364084530481870489096054791258558090129697973349934543911828651423173650663874056362172403669064334411048587101946753812772347798926894597869183764506545800959379436572374223047413022736535715280860519145576628473854563817958969165853480649815311473465861862247415378890890912733382301150592511151697142727641279908414562606792927266553287277875565042948612820928954572383516722320199420496028384488816233848143262303989964722548684846591137641546289319231575279879028798080861343065937868226678656589329611956430085769652442124805622568112986166881655626619097960237272605159527598570699080693516992099191997373534919860013859581521766110091283305817004646122512585962865194261946940844578057353501720636733974995088989901855728257104629207784323877223502431569839970863860496561545752216055807736787098385267516116768859206073936015522362415372976671686877878312588894469571041250041546352164034544977572986714981341399455686964079024755835485199224157147810925418925511404564791226849415099331661969472097452592023893264790173232417504037454124369072720682898826283755125001940359236877436545367426172525386620708875845316572694790295244030697253241956627579767395652092473525091693998822720007564608810455756313658814713167125532637799142037086219397351471619153659931214798194753799469643856470587078833936450828253970338752429513307526755734980892244494610194114689906538316251093762479809130710509996811213069425962880379533984108288993184496020206333324567517756077129657009631848405538951856341991736169027809613646902398481416614907207729319915657077235590864425902183546162421801255892942239053751909146986453023608259573584896811299325271374682812523756298983634811580285014838567460800874194431566667941917422240605835424910774405992532125008906358175755257553164392371737549742936914147736546203584690994129114247074291997526593571548719808976653571309706879148076818779548241061798640343714332127742225701637159055782193803130724719475812962748166882796129463848293179903531139260428193837831046483707462968189141213045364711201353407518048886419400442039890287936851549663406159190281105037099377913727883577729593276700341863416344376629884974108985915887297571126237485195664041581326247692754643826722672774556289042504780963055920483846450177321379600934670096619475487454904325974269999122503440328885471314439301250554550513344536347858742834193717444548150886842946321138105920387853613914913158009083925446322795265211125371115867332738225085357273177080262121030550033333394783513152705436663857810157176619376222886019115095958551838787839548189259506457080339212248414771912803109251088670997397447501061216500538960371533211899700081896834878745283539872364679371304998444435765759534695792536441807689557519690995718722253830087710805709455854950682286296714658745860887652303072027440635185936000990741724450992393535480596231541560136043299462025733888872090075421286234692544094428905745725334980371548745068117242478154646283229858995300788502789914944269026100703507898820322922489356347636372011062264667487261900754102192115527105763352608996006423178126919763799892528322574948862927595616264928835646075137256594045564685909996340078216713246417100337487794531733829378352949688154664543663953056949923316771181929780853688445645867767532638321988801403535118450140452767784066538466555440135701016378506412934853780531952256557108442495529050722966118665580998817989160083578121569697542433704019848390291942932985541886621384484658275782629479335036475812731286375263633836408908909759028818221688887866513492368872644018493872530285235462052004664935718376415116807994764589018185070919602310415172595649829097843619864423437082738946323886862257200930133956331727899989494833078120011529357869894583185278703279671078052819023036454188917606974327386699375200906691462353773211450188499026022254702280918069754201596593200246610166801159275599026614386424750662280627035817660566019051168366935411739774852819597662393304800827082348879691129067303303006521951304401254731177955067488767143881818389321124089172961066023078035369918767254065334485539903817270605720145747342148241686973336926636889060770029663927156092490952867147217484272674279872453693774203725561100794140908865372551866875289040269974329075121804725033365996013411387037673202302820555147726307321416846325620817829996871169160278074842431116988539017053350067945468239782526924476413762779541803670875301474540287576092618392457137735911844184649668433755874491617683659978433362184155744464996671549003798700160064228319343027232337388197536483335568949431813605569640165190454191241146636803303267018670023825776736772662454042285344247977416864893364245710133364309468324366589875926506426842737005558509027742738464612187374614796233597068515695485196038398394373478929904979603808833917406641208760493853932647675634114089813793639270096522734346733955980856918187641636161293532143455225262832722018440024607356626292075385924552558640866990975045625596957321158195553048665180869816623610559016145060697189972931912771062238309811051915474218966434226632534031668463697595232540922304545407487508761195496553677273835605076006202027705246919899478541667299457673542837137258977202015168680003969351199136326465016073132062061903822213690480113996245539658435543042478325845026865419068761865626873934579261158057385905493156140333745139646379727036828189414116070377011938144041920569494347195068024821479500215166929142777494358473355417590945347056799889394578639103574731729820151545314171691977625304094976016867567041933468816451811379191993258501112196353095939831126003058629621604832476719450504274032985041736241653133546249139741715803478499127150783946464840038414511454945968619126151502618005215743223474415345661287382082405663644655812485951355379380317755545311244331249064831467141350801770476661065306005722691810504225755135703761815678911825742063796271610191799618037809657523393402385555910040329940538629743290349868697561222973803158970719083775898020061954341463316154772900765845695513199868150472190218955152214704422124850590970119454208295254143291737439671310654850079561809024188441846462920564809941760236418611330836781590672284526738514449443464568147431507353020513221779296445384387082977162858779536118216002358066200043161870388634459584186890402860774788914483973592442440292720530525004847915695477490804838519355991263393620867166922175890365225200166127182182594419412071882129750048860476510421055831008176037303047336513924587598058308468634699826692363184465287879881141392158997836657155412445367846563618348821728202205725060341114158771961477679655294700573800207995868247527137431346714109405095564825542402142747490718742348532915795902254890941265523325518575198276107100102590279039039651775891194308124522845790527458495061032815825132714330313742047141468223824704609873389180817299019097935957939311221838339694686016619419879266669698406009537288834447114621037560529882954236420494916951089698722180286844339788597533324159778113462851849639300040491403190525601178829559293705155443319109856591135317031838027242891107533382139937159935930139320708712160728282077489080429449616023301772978013925852556364204891728503500098494402820728805868769129810264291540760974906632216312495830312970251439923144552239138442932546387686801584786587346634345549934795693462364296582378644397589825739192483100877615739038693969711203486104958729811562543652032123346926036362576822601797569131204826823951741811792312274801117926857688549709029979451522439522946673403122866797488273746116792477919407281292092398509951784896379237804250939208576107508667482502641566021883877128697950947886323578455534398112713060422451480282053348330379234668368240949143390301436217902710952274231087171144620995768178970932637790205731105710291058348768609906403409766885527371065051852049346894554971061189147657546414382926403329274586889364347062311698140506762013148626203001825824657320786313763787038743367596117927279447445283018458055474665584155167953976969311762124270033265002395391009601739106728960392048445517679682185007006081314235274031394609656602465526506331405952076511752379558723258069692984110647303150434504063648801249258204959733337959748372683137785093826193660200814874202380899425631446613633830847331307797957262364354218510886597954462426138707829449243992764127088363963201085844155519394662632149361100634562997233838166170565617938520956258436068086255107849484111893666419282717980399959723375095923340246555232830658805566089130897958531299893487902006347162271021932029889990716819450859004321998480323460948739659808135362761419429044908250434617468846780564227172362542608643991610808701815123556271621819541604913678574501033424728237701260335915559609227010561578988451855830967685636851528500143911872260221181466094581224713838280827754244375718119176896559005185141711870670836590980985868824577770592470540155715816867848019657836679828200289779367337277778468123265772920356787974470906315891190101054428898510748177611315105668431523261617044548950972283984924393747510045238449328744974867110503350877317444273935553501388704524591992292373589882518730088335744025248734957789050338557384483770737496279926401445093078270822866864014212167115156582701257826654904336938243687896377695577322881331372476573827533685491348402780297995920485560516533033369203347950936272462978042995015012326600129586286764292661815401325169620395641789226164392924137935406843040547913683298947676718831033209773296671981595482951797125107284392360054590528002770620467934058462003748502618493800261988802748332253762731756525448404415259988982410566611108877945687679704145721326096932434912324291269185918569111870952522537380478068874225101979501026925242770425357702632997659374018471738849601349849212561354711376501210656710330633411528242994710392970332862836358487265652467294455748193499748771706028373687200045301017192720415792392800499064606038784853748543406368615014414810844037940513894625409659275584155462586933259412453163353866820219965596083313923806611039441233132313422550766536631479369471819869668574588751770275363369195533978549006353483196086264949137788985512192378636396604485997076451409428762973692527354819614727682655267285790852444642039870826042346070393052596202411919393356803626071336222297372178387330194493124485956273481673908925141460361299023853000830176213086349285702905622551543120136113827734539422302350390902805456811808113420533958247696111997999429392051594494642917262309343626015983259453644996460849974562143461178127460229429281883148022403587183010511453616116585609742130781828138459586273147401629842721085132663260475938111260619054843943362378978238121604190772450852625185640753261921065782143116628544900527232263719931647328203254646060371809605496455980166638358649739926787188282907535917755689663975735881044924609284298341628582102881978976379017050399364827926189796225653973212850861770399464814094385394459390303070725043884242526053720130092827401400790142839477610374412621909918561086077375097672348049276023136338553001395080163349947986183202953267720213476874223671523219773417727224112269045634081199892604159732233082476393794228511112837954600752034707576735328395717417816496796095375352444595985821968854254601196043644470161084167220065996507348577110751422710298468507660165643328039707052465431384612671011111951565652674543043697645271143690456121298518043028057260079614701476858518696697846275188796488797222514558516881452388741765622643648045960041723998227769139274225715535800598221244670378223627615046989301265394084426209582079749616195745135694130971369985743226160014087792495435527572039313125986986393117387926464606707279282674959374674022967043151219809457211529690915639754933963510951380937168261103087479685677649322327644049890710968225124797969752607175776765639434019845044809887325131478212993393275730445582861038697388732840418975996076600350183996330003113646975819073990645690033245814990169140363431103425271334970450323106888142062509390237063833458357177168894317099358642256006146361772328064795036395613449142753124197212793127067408829333310230694690793429603407764059158488184519171866169585254823013577415353821827071186770445267490211265987441320678241280765225733594232404245157583408668144658936212028431835629221497582451941908495996726653769394180086657979006140593299231315497158708795240264352438663658151230690509346612239463189258500453634802615144001517608725413357433212237258570131515700985363783246367233239151363990993142400459486334463499600197693888813312105734146077663431518143444133469217039439589915872057838240404717948954934218393285274255715941060998771953682144228229231947913775293265535392854199683717232695952922649652361843239812297391281480019680180925840592420517767942805766070747137762108768795315503641129264443444170201925029524111970786403779861434258689012183431728123072155397290235946848328170272930317803145718131150699734473278799268893230895280202554158003105198247396765089193455636570978293828695706299485196632445915237404033397259932656882455220689010529806749196033345291929161302739621451367700229742087369558583341433018350754905139068751497702415944711955268360445893821065573279433769398375604936027552309087509413255500697794650509536601455235096049091762548157526081399106143401182156023769164454281348323284413003573426071624388984778445002235630995717334430302229013139294269433393563794842292934959760824078004864183909200022028886517262012013328593346355520416268923977751053359585656000557406179820701824259497677209551766508942175524390810741179398233473175867120839139715542670279078286252961171097279196245871712424327697270777271593353528643811857437967868360891248978910005429505951756790442343932609019382781040262283328241573789906975641263815184140584692079621044709361861825446397115803613781801368351009863637066919748273661810785038224410417741577123805269668827613680015284163601867549837125483295830805742642892097782464932911431835034194281381835689479351180811306290121283328143606616203586182789951238001942043971990740689338143552944479450194276285922904081410572688929514316335183551060970546554715124518416901013335059705055247199909497756794186523526047970787302161852058635526273575903275176516785311462342400618957402445889588068857507130393530912498609261962330286639905712683814115154244503547919542077978379749026311035017246752901316661077436174281381850958856179435476062191370360877218581086340755460862815274037843942428986082057682043404400250729219136771830531537535169286956652409605777376909119143117676228499960668272107903425550131016677990002082971912452337106754254088662781883180223760837999562498305624248384810266836057523711324509045370042246259472305481987622206735678828735436143456526580812157811794964031051149080707156192677157074822309980372383437782117191436087228622726355838396327159957127721366323181093137094318294943884863876535751037158862755938147884986740035868933871058984132088761263485316647220619930070359187336468773687747397299071775365949275453825529349714156874249355590978252788170936336836255392367174661233937955428506333492649808282414355768167116904662429656555048535421522183649689412780707484987013342226411825884178785263845504330987411363721800483645433811438398599571892170546115186833344024874096313217689447153826517595532940599129676461936360842788995997505553230831097500603441307720981227758575615038087077852557194712865370372631174545789940349681987202487401535023887439683697430887238173794939001431914785841202234864969012504091259550294814019641685999496045465746105276361087845477072297175141416436627788928717240032547572122952357372388463539854904285344490596176431387171317614478023529448420299753100118591224485400968474785844422851237263181701599746626759592754349682497755095502239631324898918739910552061868533531915486791653330865446107426754464200398719873374308376721085580542376925049584816156707104233149355561957774187464471140693720817989807864114216278294588441668682278038721714909518924508870041710241969582935280212516641977349623817717329509302872130062008944370112245250149756044171181547467644594294296524584886283236001088771859038624857568077311811638804322144125550981081209575111913676947799640696971600031304779916799970084230864087489862289072009256500701483274149480493818358607494404949598541500433109887775580294201325740195091931694438813434405626758703919009062497757801257329639221410353130430469897847534247228374852669298201803604058016682894942239574931495210829581169641089760154970321535767538010791311849084944940333011968999487964442739000608150102298804220313407052293730903735728504324880731853068695810558595690433101425215196833063641202437780059251527154051254128998134874013813125138716634892550968811787987674168984087390577460122907309198730019103059385430462037843100534220960264830893240074459767273837654345619087764928805628449198471170607041137208004477651383540779153466291618726553869615163031283304515005453337354125447004299045044769530010182532483489233027387846699407639628837999084779536493846998816057607624108624011788345718524522112174541182368923593322148861987935516989906319463474458638110127411262720111709933190250266168810353573968998463783478711063350803894385028695523811106241622576938399258690503512136426204747412709869410645012710949751286275107064228439025758500658832543030456649887631344949629005252426785792439155277909480856979632060918080723481966325322140312259388469823686850031466727751127766379585871408052357884909939842951642797752034477836684577171094673085014904503859563046803719278091735230457378666565397326787512143896447114754528988620297689204376075534041903023515681252777235909631309354375208191501556884371457873097625590030706877378945126707590942911976289228819696932475595347903908187225625899232450102069155789690940168309210418082244120400479496239183492543276638200621842653500724305200947505191927383130847465801920504731920088601855332269797321999586006166664350047161578111830599901875287113240030774948209681239237115619240334205951818328257001307743317832177167733241018535725047114105666301555814644045093692722848681562545228535011553852992298499762470937663318845287105966027601566365496398451086484606083629579539879734538617425831464755246895808555201210606746271385103815588552139787412859388230884822096100983712244774736832906155508912384457737558554622368879987492629734746111845155952941882334156777055819662588909506387951377859320870011561081008699503908363314688321545541360634397178222470652227651868295622088472160266609395037566833230603810311285665625042915217821566396808944245411858330165654931657774843646434575177990739151619386083722996386423834095265274867745927173072264950463316727249893678769692848795113832789933654362081253415057504930090618959425895493805457615193379495441188549602722461314196271566407483589137744362586592167518825029712852846304206942890109454484933222690327213094018796777122853108726535761370555709203573816208407722002860845618443791881841465666380164794809434200606242831690691530939722383469803678482497928090257078862890549396091716800476680369335367818742919854372789464858138186441774929020815950359394283709025624804111533304074771456000675018550216364077553076212773881495172232471028952697648618968683446718279045956091106824947628241677291690459582467468308002122302172080496598565092221974776770120862801287200798473791151339817800804763212137453821648746713958716813925906141917510218527916344586601610239796505854895890647210239638302406004189459738359232933015689413254345992512725497581978190214386299195908465787680185434240479925128240894720649128829693736753555800735693933581928801599624911640171573272066556559926699738873149539060284117316850173367622614255722952966581546601646497291130970655769793477129677143067554276870024593905022029842451296949629194517459397175053881618194104742467796886431608035938875757669173637283085210586446406669797576906316717131321101778901358876382577485375865430523680359585312652152969400823321908699225217073968787071094435771268547499963536054793868626722598511972098080480704041157950228260633798261646412593949195341382987981449235009499684538025907739847152296122994700368596543710664884707496141411641018202141008587207321368813129410575303402280532758573536437178414626099674655443327750645687704390953610648400949010288201810920678248170907120043359295855297522753102807163499443778492825933743064642616969099785259528374234960011441336987506194975061339006071026819274385070247017472221595663837322543531102820835277381668071782184108813623101049660565735006051662366424092726446284547539467810891057337563734024356999246846456098727319750994809442490071298262715730490388953944498878685456087951688149640223427368849509253652500648704703662981743795424087564372965832321532639574511920367877742367388334407019784470725384681519542698873401555733198851407937121902090688316538044780484368245027805047376863806427637461302351315407075833570432292057276311075788768097501492998967809679223488145279094559783604046881592933333438796393080760023641697417433542587722949232261884055130194670171423520354239678461301041813639492610916059294514151703095838090227751819602355782642492227876027641420065997828064974291365837143248032945463246320127586338785959895529512023825896875117088639220434329250927461505244023361506513385128047276826115226169630127045041391869933522599938751073106692258954081756093059999981092147743980302254220990709867281455507040687105081185757465306269292897959811445218972630830569273960435634245256873344570565960948621383789592942135619883933189880340709816225573313395077831119952698069265080724289344465344759302845314435664736433657473129735605570230297883071221099923934569895675899000492449071748748677533874200256272514982787628534916803447364591386875103467408331798048249802082040513228619582940055000028891468372499064203954924131594731838815627109329718407811475669872606513813304624293010525606428977568372232481461529928924266905339966964353993090574967048917530618574822703945234012381979149551453894636728710356560286180967661849644523872753166128618803055403820400482176687096448740904501098836545095154809489660703955892107331075705011309204392185705468877190743706519198988403279816825309738693960818358013503045541036863117721916829631705235478358690125353811528383827255779675023783947778812697329712378228082969283491809488024883485152271950765734756078231207745009895718083586444055659467823068610627782089622460132438881793498424227704627553530535293890587415660364917954952928371083679893149364955562341931665936160081914770565626629115042300693230814331644491810778106168972262200617420113837501892610953237185742228516127135217385632291700931939228260458263175830322848091645842612864150501372359388250988880893597489884805629652586651600769198324744547106599466581703391640685555753696284753357815883075937708089763662890882540640116142916429466401148217084698773745047258019654275748563101871943588110726617246236087579757092531696465828789284153236445434618887648368432635551578499981679664539581043845260670444734807408653758886958606012089895256465707903774630397246232572420816713985635067866795620129104382858556847697848636826059818066118082756803768170189278195693647697536173280122747160838301079592667955872433111701061973302414922296119157438082396190628727707766595841215953054811472113535866653758885207545403439588625856708304477316368011050836722674052002838729938655442921541903213612867292573945799262217554020953132220236952027897368865304227726750348013890725925899506896808451617068267615538559370309285236820743370241758221486250777336351909689768591971952421586822069253472299882745553058007513653180069293547660094617347974895229346302591206701200767717903981386025862714922000844598599758443717761245705712310345076419995674370303140327545341341225714143357818590446988443742034489257427711470243979511258301451862273696398005103887112638675844229510504343664866602195729584573488827369354266745689506445705191599982531514705297276842656220692559503226280552522437750192872438944191339613485914007832486642665563144154876453789892416659341726122194589127364750241807644189288238577730512574708811067323647162858266211000337582781191369615385258398216606558460293662077879398339940221733039884017067960194112958303618427563411981445357553318817601730455561718485284107260845286992010920732797109231708709135765484582087337484361152070146176420916486673745998459080788664128562807886267822748472004121902698332362279409268356739579423907747669533312184691969268732361896745864728780047900969111536041905437599293308359065285464307584122620431414035051313708553307686660611203833138013596750213236032799055603706438525853549039159282005553117029128003745139874724827841707605191884162606897483679204639870713233497714994906805662960890247297220185405402595810485782612961395326600763066037475671931018599733228098978977664816119223048121008639379901981693063457220812351940758486808083854020122693069037205423383856163769762835050220007296653400266712270934948355424766539926915638264324361211975192598283623566749890663545649194766514969189784689056622801452865122847289605757216457352220306178383915600664195883710611474045353342703735685400672738113222717471449853828869781774455225283362025498297616789082434912506195692701737134722928407441663712459033790180248584619567803294592294838475746468423753501491860955302238065875368503816237630715128206760950408590728389273500690760385432658249742062189803925214553918862613892576184678518137877984527201341659737403411953692798744609353557888857107744053837031707722432498154816881046371130234668136119975728356821430002155420214018687191515428149305316738615498569724148117733313883146078000166870248670639107586278257421124646713732957466075745234540843625671113426910509327900765982414609085056936584982608576751993592838317227134360691765639759367551258137228158580469671676849890376484981613544652535688168254704041167307336164212583505289083380288582578719741355588840776170830984498798627595683953351816593809304378543447095265834086213002669471403106679989178581643260373612352780839150192558573779014813016351464503656868611343783562310949342128251662096274833312319111307370520042309135921378514987450140523120259944105286879293086438317853250141114154219043352847684744598402697006749393374217377273479115380416608766780717080828871592114748919864167030876625082329625206217744248409585713891489348355996846362970942388720886335961835485708458159029310800765698840832274466832686302054201993112253434412901375080528863871456129547331470115719758629321695005970382774693415759309198105868810407381065443136806095640286694954719158508555723997033286704567039585903682288461861234643702828965511020538602197359257151130322039877192930156514183677183636584345809073142693390351484112508951909621631051553504545488197784356082775383392500384344018506280732647913355690185638378500216821248248641578638074461986572370433169317438195538394816461697922433905535889100288468131784372636214032273605180136099591669939109161088871763983329312568666529927189953339358536789232753643881703115859110105491886862702824869820560890875749658271582786913420907705980222729386953185970664604854140204872569973493623420675601822716077640396438990693201451597159549017895616350624869367752073080248889746312979745228324001004726300747717046125920195683439806058384260885530925416198190575551214921914363597570229380098845447299078678622899769688492408989900846357456564434750554451701644641694245872346230464025549343337335315986603306716901476645735201793122709667473173548156295505354845719376989585095844721505018743045263110283804098538596325838497365958671045453718933204498134477629220691032044387556588519975943946180962502468160571254792764485652506631174882198511685471911381099310224453561399668069404398482651804849344779552644320144207660786408115651002986597870832387965570258391663119165160852566882481731295492284015722409355386647690480786102891700028826802673797848414195701034153954365126450953172043894501509216700346323505508565053729712200535294667877806857512601138170104690306949771938199520878829370254873258473324092655332772988320503485769987173679843894545814995676209834327019794311914636991843417279434623425684892834467021230437782385974520483423819821736907715955290999860904532270949066259751929127963539328161506049827331439314157856859083093293686345871383225019871399349664551447569816174687594137109753290907790239373901217174197246503083288726650876065975341056026116295598985732258573055153531515530031694813188248175651579908695796463852822220834196552352344106787543921415345542242621560497040970078247240012319433294650596112574917732669033338959022818421187004776079498475647647892757340467552379726577528563238836110164464953480419513242700673476292146880196822714494874629248792880226113657486302108112502502934574069198309052980641663347448710542821843504554310798333709340155790252598348095647676197786687015822744757647502179968677054093160956239194022831177275664117458218023532652768061151595565043608234009178707035725980620764596170520056960016439170474942052213660603285928482903709058884767073040475841943167515658436866124559247604743107862077444857276272242170411800318390461052438999932859228574741140627409538732051263344179893541290171027132777885782170299207413386678702718588338501835505347200787270448858339581294551649501113285065998842888853496945386809272341149672982904013301113940304910177764739539968617163666596103798229403752335335683109128064432272150086179313205406957260780795243666007958757102492121199304248701711866095217717423555679450007797306096231341406071669025610090817758505379954363208856903926022070270460910508957205298141142492867355902416168514875326247900095774510287794637570486727283911140409610087429588148677408566385886406136890749648575313215621585144732778495579212316297231711215786430809262694010135443841760332280371016351550445874012830692967204530572586739119773682019233752391168912200022158734213462052103134642237907043752575563331499596529845596814863113836576747304356762589324900449655912060875116352462954203773123458079704658779159107774768236445871574450799714839960583438255412710462219129721080325545460148307783425376511270822942215618902186378560426228920769759450190620112548315392068395750884628908534977889540038154589892277779374367708208403530312064202253381203011795884201844331755433572515316874915427329066505899387738682988682711303804079092848309785043324997881620496111240174904170551315249085999707894958732031073250918627181857850084989657128024978586927116235406314417086500757965290886501864509734994813178877765915240765770667781884464712994655842768458942762338902353821690857934796432933027452382469632367324535059527662663157498129389609352150693979740421566989882716485946408997282580810397846954304721135899179642174704644258750211988339134180882636058049124718682314770785256087521656784465144217786446410319670339034401624246480156846773066749918607841749365011976005543729269600247735581411737720057176251501703963535793481031560218419370116038280921186069412350425837019312523842723468865109320891277702297345272450572276954260525559987198825643986577194568634089483845791020695897752813924534792132703569896856321006416850974982251652391836158952443311665493759354284884494098366586460786813477615327398666750119010754127359735109533316358300005298325394056865012513489340055661966095496643544343408838438005988738836975724625544013330229133695849596795906915458975121414689106812259929471447348855694800576685830700241521271771697675094187092594522377344557608327237892053011194074874323532989718485836764653885263407367605400181804971206008011234982380490850947374664662216569384267080647790809550579269876782378063875155172394946477981084473077390951838503282562025366129236702493433488791937751605358193924385105254609895233120886491919266716417534795893939505827704965868563474766490189133111553530708591967736768818629411597828358948212567405603937623049053791114601862271046089311258082767398430697333001297043182073611776306120946063677601029295751913657368356758219524059083558712462066875763947670979089596372834916698979233640508387185102676231509284864000314285762020999409264172449576844889913110121519175524492011480061465727955186039515304648225761364193748952193325480409331314438169396649315577421499737885902748028340704714592904893636969194835012385390944585530664259662579963189650783616625874201414119539472189287150985553443905302870352960773658162639423931463544121660814299449073036867479847151961503870809775686449800071281568163069887842512040765042509412234234139048681203739106403226348230851925966752648256738926242162396965254892816297814106523020881027478820764315333805483906728948771043594974945230268955881561463682685728305026069997303625363885920640301416667407503628090780716470120019109839818686706750613204398333333723091976402190947598089215533471325546682397724414654380617513517039707030952220308691402460629009172526514176340021693971881162537378868801096376720416806427781191659630277712084614692643328136820460988132508663894912057868237142003289358887798129781959347566467732988434924856246157837731218972915845601280111270756214954419078786435680454395192144465116286615267429566648748529276617501058715846625215632123217181269530835044434746195838849606089076143548437994396767941723634528812756195036577000739285017306494515194547975693547399313776905098023731409638461165087262495634681790996775249182022352620998725340381972288286797338326688064549657988918299772256393395802571567594465986560528777477929471809092142926372737948257113712825072670802505137637517442616830969890889495030309928377512544172687841748823009801980701143509481245500628823291381350826725120520160989752783989130138833931888230441155357393356019696657999382517602851208334982327185378182543260491197954532973496886150030258989525513498358621900890021156612868526259127999783060726448019489124119990877655666766358630439828741957318990964537908750610611612391410424119429835557926425707849819888833803191576745632612481054617863753204908236241524096400569964508823529877471661679015903289845992090284404003270073308044214505109082511242964986863275455831260523685375508754683379499916112330822918401093814222314604647097468112534474047341592250671228049523653805994832000351686779431620127532647195722537049448903780481362683157985742218622548234672114315118050533466650569343156649026860893426406892491682535371346504272684346799189294085805635700272689183514462621146999197439916683927929204366128432900539888616084334283712323463746626003676149846053064204974367502866090702418225911021989039387322450868941364471479576894359751816102246925112699941228413533526841766400352334469490729063031139864451741780188920634641130086183039973640671694498072785876180137360740098697058156653887703040875913434152327997711420866277910888413019689551337485059624280349071385567043954270740047763015006433149652412451088282133619454297792929554635542859979425603453328722479069446373982675777450897685239516068882182852629465870764181407830429435249465418923518424436811523891336968939158064424922757286695276050482330297250341236632435904586272071331048157606427088797293412084388866508718184335727641863510619640681707843939724068372168258858434143996768077956807859257664400348226878761143172943889004425102044352881997395750693135922095117456828092139769914636125003184353324666401667136611400432004595044680717366317015663435878854720136998560305261053431292620082911131634906960043483833353520598710074059010038878672180914459172004102172828742104127454318454093806109817765696203061987053691406487085749024124118793018493936204145916782702056341153123545968616529780024833727391889904810592703741680293626525314755633530637690475477477547250683753145191549533228823971886218050568135526392224589299384700293402497350474702816879953711070107299582575559457087136597488921000566320850687024606339067221882215907665390943934143295028270363366923466451041193073921755108968221288390743290469017697956441010721903617388995824212596259332842914737350605818093236615291032973973222686215468695826682590828238115185024055224206553944545708773242917024429379574527817350045121943166023968581011448719458873681225873896402419051833614272146541626738475642552575042600108797543012809343540531099516003229334258087075305744410479366143381336571976230141679873787147923066943801022737639451821194071669134252999266379859278018600073167536734048366042025499255503505355098694717133419393397397859113409116877870294998834750606309259467049130511033357784700967934483180075111234756547634112488938354556370482669793975683310112859761004008793365814279990446665697938164599405945105289788678807793078411487375052816863641976714473601182289552892046536040827812735402153894261404987026508542006807787651510510370493348030632244754825302839140807246122129144316668774945086895205427203319171691966523046533094504809096370923724397582658376928643626473749359471620630360247992333139886654961087566987061670342607097972626467143042012532992294132265607640478230896546939187518961973469923596870069424173414177815195134756797826788087169944382574961744984464976799590251916982055588105109688918050954162737991702271893916864946052806485060198729891957106671930668837999788565047671859823400423131789493545606138647880801692478673504376333268128610723880232893217110209002256266745353688867079151644745634862797265004696104111977461784058740322547810173575548419876593042465934782495246572445681162858938609169038286396265401377438171867240804148265774623600647606655534981309238188078050450989376769245861650495093641514707858827203169836240050674054395988760023268074193954800610994219117543914364637541355129782516828272674412466733873699513667848166806586874285850575204261107231275710913056510868067115136788965180582214034936046245058828523964770138605869186845266552427382998807220246259278341742740636691568834523158260130706805501381582894393877169377101953273183383684167473991339002118128369641278530509760756260854156163225616396151248178815629530972345129018762151935896537887067858784352769305364973981441155662931665595357355164364359004367330649265682272410322689411512655574632496645752809344289042020650844011704727659526707787953686004565944771056242134662009610048632006269470140748955261622514907949942008947109882068408278998439600441283475308059233869465371039733092806278907933790092075409688897898497876676977890873179972530360558103448318310181399323683366357474280249087674018976633896837999280967802118843615654965592900777558775213017063700324538407640955301183688633705677177464146964112265440278325534122133225907687933721134210019783112677527165052092438758176629071527932840526337864043046018341935532536713057433174435917595413455719680726644963518038785340704192259233800379375641452223976291152831009342373276798308247116604261760223727299469020286064608745042733366050234930351822063837687572236700472417009869039503150857314610057694248610587550979724357694290349780635775029286335385796201545723693458232714956857630318989503703854438376104857564301900617775448834751975292129750563191406704501219914872532985784942779543615846991065057578367811838307323412123304462116084534471642521131262502645942404502950853201574269939529801787157276699723872544838426388306427870044925999955387586512740237687326394424898476863475873208534373338345380174429410989465259310963232244785482865289493819916994259596049474624949946343333541759436000438419256507494332589863333258968976653510181534860460850351175746218456592190515611221130949368481788028724982074050208857978433235342495393816360343754968397054148376870186906238077263157364403884787983296047127869512996896671723411735660822546573848387449998865181366919874558053136988662066187577350132580455324044766522101204045913533060827650129787463369209467931071359798405161326230549383979950378528483037700062821269328313570629267310892300297079453263935180278992657692308920457726125430508893795069808521563730894615125542324905038554867774937259425350632197602180379633648113486523381510236405577384022126002568564299430317907416438871621946485689537219586618613026189994993046357587599900356304950959544055199836920045893977313374948154987375677571840141581525724409409809592055129432086304507891552077188087239917687615290205645751520915661430701004286556199498056349874508266949679311235662575861854386640521172084222190020708794683205021715670213205331934428567703918851497790947157453564950871663466582339360906004058559867071352059088843570829922716406306098368371541581137230687018051937733369940608543789578168401471742087078216655542806717520540900474843557589375097838326632192276232023091717647670573315836509142653694189807140014614958015166101934196462387350318552164444734438807404449057956256874462904238848838216553690945517800646777280877558925038324437979274083903949293830351443379640317374250518236875164615083366787676710735659160355061851822988298576583843722749603571410926618104117880171788056140423378262012331203861016168381806998730181930357246478267935685105448258462673480613112726428814245700490435450931903674295474121376504010461317290860458645611741922674384611478028128857538786482741281364549879394413123021930235629374715736494586953528289853691669824170763510461107833564515550978464640634676458314031412103356158845784891168921194389484531065233544633270916206452414043823832775383751779845446166614159898949096853079292123093549224055437213502289985656535345939762744154189894375289292130500534639010309215947242587325824098915886462896902188820532429531834492729639217193632763089021279236888384240122792798677619944965947508296930453076982604491499854452797226642526758791250310774505920565499148813893920004644396012229655019903420905788987876737839722268898689633183014742627801129383877422611337090499765637162980628938156501749141317676030636258223753997671969247180275611271780812338201030779639699800012148870711882722585468897244397370100502971652045716998142151157870785240043913236568727089732910619729488122400443653069852091745128067826927893953606498449927215568347860002764642954248793798107112951373486044498810703989675918559649091959431303653627309457557740349843729048181844819493120391682204506036538736227919978671316666600515757664143286324729840553844035199697940657314272271682873305902685270278759884385241968346438753472068738750904104100611814535618708252083125615416912391565627514276180780980956345135707951616986274777027314931219702991911174913572269675647644783001467366347153529838648898637757018406518341625595844185494230137381068029342213037873688957795272663386463130881435104638996858782414024118050619898208445591276272625605918635510605121746835366455609966796973273987759522516556942526513362366534124578773864308903578167320113277953807324360816282690814696547547886510205797389782825872049153455174388296652891338298194486498874118180128588692260740313836767112409889260119020450145518944796291814649621924027883542267081043987809017907384838219186062093045931571873836277777379259682230394616860167849768462969036566857815223743865625437202713007528939827275501160323178207797505641745514291522364112103392737184567666688078854883627084646282289210639605944239568500602664686870689214737593860119203731242151063676646930719053079799547770768246970433440734463593412030005132590332441372101192355091729359251282889826886551526667853847642838955914558612074417819812730379198620462088131564051795386965744112721570761124381745142048749292903052832625715165143629252873946598283327199347205258456174245521405641013459162024747355510077980801824442679162972670279647535038020160870835541948754531099750699382999033242757472601480986599241027244489458002482274467932734271606212437034548363190777539081231689256868132426967261924400571623609103271055618603824661980282578212585405312440883056015586789792415135860338964758311950436172664314593166787616789188935808678760639001188261813315446477766524691066735308051325253798579638606138323148612991160916940506278750584047165639605721386692875791523188802600214545583299520971162826864860012180000890183882661002587254641998719850981509501351768839217457522213924678569779802422833620906073589127373508430392587256068256920058427634002522923682186118194087606596227508315168021224641454981668829297251506976800094988297148923145908491773394764661158106495192306132554360355991856030798157580794756785218131491634856776009060598262909156503526629293705567601767740155463550656357922821752292794306613307634806131212833255895777381333354978337687113198529874518558935339132267636748613638178632878686883269177621870537357627707930002533133725532537340501029808964877028390840120012029408977051665270873191353324869622838133590247511101587776481358048726979505130580117943944853577964683692017150046870341861445949212657070763213006793715298446009278770189553172789341396578665423090767950655376870520201781267491596433105769510370348297739951748513655121920697331299067984432851440330518159742242584911178618604780339307837226626502598901861814273552160695150966550377895693894716540684818700862918017813350921569413623960836495581785569574677561738111964313673761674461271993937441441179057524720869419878590210257132606360999706306114034348746492810083188516996882095170224475983361931284312746556596488970450762734748374620123915686482729321329805521630734988793613766204996475569426246264481136958776037586895873755956022435859452308459448228862329852690479319379135039805461661316773365254314182373849251461620017033524876349326194658966504120927727448960966031292084942239621040159206562013469701089236503376694059631890989443194287700661148908944250485082399080939684384806214430478507475709795280326894118639600766706951864965160574702212970044264528986643834466634781601525744433025378606878214844577950733286383052843526109370081692350799882377279637416026469493468334156756087659496466830333791318283030394133944006168349330974846219499302585286380518202682044353805514704997197205027220802959016147625802933167850018164808488789433309556269206433573164105634228855856508292357627542831250574475511636248819802955836826344954094586305779634474587017914059073092062598108903640708243085006230584996755377664450102676874907879125942795505334856986923886966920651636122487748713508067781771584413124214801340115105323139624240537208545316906972439113971248514857859915311340920481449930464025085455862721879985224234571049806033844498969389493236894596086996129112217867226088816211171649101266045655223153887362378303869066047341998600752155406118452749825343865599787109954671983015502621558590293722763903990779213584022294736092373489456785908300421699226901279387873376156638845364676099544214538979509764310704657226712802977135426688913710587275496644954502388825928864480285623736625657866309149059849149596645285160442200042504843115473465791793011680773396914458077314099358821757218282310779252130788622083911907039715690429034917226267267074822259323055025172165889416434693441820206852808227606158074751485695207043091353216497671707159781056893321301839375692599113519549775929315947977540985437572357445791449301539241706306286408792278059763875916842131252779109372153621694661547658674636212525144007735159310633623030184475091096310092403435915131435078190562891661834658226371247845947648694292147676328289215545040060648864382468240269094928807167968462734739174851584562610699226756751926307207077316583919021807716372455204877953491719470760248121320475447813364759931589952628004661942825018867002667287570541437370718915666927256407861281920901485359204320345670471687743265775842315904684440401725983200742536398742349741039969184762229516023056585053086657646375577066428856841750104540322790107573672178975040445125319354601244078228553103912137389699634113874658384828139358275815169177423426178666860603387160098320415703213460961476631116175139841497083225240213295120813948431849325742596244297734962480551610616585560951499722562914133655410978092181198454368507101326679205474583422299065243176654544913094264580771409611584195144399787960631393196036849327845447337233340593603403214922777779576842987534111892614631700307139012872686628972680526912023874720359152071225475907525264677511056167888252368730937199901110737632681346843869807136247772469144097482132704386857510523911304969176822712623635678222159274921663972335149939696962823850240349399054059727325926114084185671648559007904100677617258392574709202772618578521152647447293443890810286573837044437647949511373646807297244129325125305582393769172177843961940245190654862776928757891132122516411622808139868803105766884751984461775368294674592930999612441884609263678557951608578782992379508297963093462040813273653794801766688349310880552392326043658694330620330165811329434215139072586306165144523922553938369171128900760619874923855425241905900251135702584835875574633457350585845349633935925938383473161509539026102998901297183172288511046499725075757647423890639568897264084865200021443401287158368927719748948276104734771820963675762706959590073396474405706253187936423919885026431033504256364504570777916483542761686976077056099698782888528314100051626561401600097488875820565013024792458354908642133511225683976822455504710005098277095398811280961723021152642215358283713430703342499829731335379189090371602381526847171408440323804382047463517649830027350148835530198849883182385539726590540467814870917101741232427318869590072595652804231078221279063210916974485340888626668071315129273700035770380099733838599760728599736332003339205922625731476997814968128950673311430465213467835102759429496134936947080352453657697741066707444394392908116910027226249933806129836227384473224261972193546174365401208168219136894162087359440601553274282283997214558145821744197898088842193345579100561600669371861835257124474816500431000191853307771200710596900873485240366706174673138365509773812755679269368149639758579956864718015183133907918080117281926766124306905387588345802199280171236012914642991035357101207376390633541308927018700592986696625733042102866253700577046066340425535788725747102064701046940573268748433844587929497290708192945855213660882260495265865588126964803966184777588834623354265515901339770326602064199996362487265702087715691518559264475999487348487059433888973638118136445482329873825640027921606255852943389915537672700498671469346376682006214986493581380457672598867960271986344390218672883231326153890008454074958070331261624343126038235971742172854392579438039963456896366198671057119678093801138996412902641280889597690404978202167256098463110964409023387403132109120811591484478964425606454267689265550912175595968592573613656426085923855870272521751832791524711992616806647947502597655632707705551005929188950567090571490229291777811697832709386945118991278034683718230048973761410925808166092799654994508398062028182751363570588196880993053915301815488427425120565407183599344858578923372970697925041448485694958918835909363515344314553517999623289354903139349699709661345676770419412209834157445765787875439520509315274794773638650516945381812480048935718730880557953225924704279381370622952416532508244208787735967289529334582702012642163344661049561877494244841911573389307898950541309279649887673656036421564006193062316931663349849151325577310399789379458030103593280485027614307097229862180896011023967917407706781438730234377763640723629820083273377648251040331239222694947287328489739081805207354880562793422347458722456181596875206717580820363428374886491791487180748369100505685199332625469852487137119608030060847313643060575762527376671546402081266571262004742697506459002358382977519461298767343540529717214209574791460971242987917027408348485823394807515868094088922917102961210085614048914712170736838933619390757446538882909807820368177558560828876910024566459138166158501451566328150366969345045681263834584504906398351629425275114877621447041513763212048649316610607345078337473853262177089253447640834823809347617556975348863897259575782016027768675946232364544824216478866973470997220759758782999243869769062389284052923871176110054487288842061387845774402298620459027412436740386038567094931304788970298456690934429436642677764519017437567051507863521651357372882774323074987876913282360358583915654318611319910242606302764652312439844830669173098185943963121849228915109994028764120800596716484814269789222246631081286946443116186329203647185642538115577172222436678170984943079981537441609074594263293689153008590159955818366825520703606360029574997262846726652739869733785771698077490912238327063708539205995331593090476427221396046249005596208272909675393534044691781834043170848296312612866263148181378330291738524121862360824177565662101776950021328536932368391962884669353028654661949855590707578866898883724285170892018455093190555856133914697562521527356518823042331138283597254458140121889179026700405957618189395162285522396940589207317786454343623385913113643979076510152323286522307276144198394715150983134813160388132023412738435764864753412540527638630463305305583449969921174599537794879140108659371058609622061337930509127013522564205638688482164804369670798885189310984386592344939554464929476121133959829403719110035902286662309128773100353720615455409096137989143931862464856603926805115082743114264527328485605365571920431662672642791219409912468073605426409134365351583566982693755386611789494120462000011598716809750333165813862701666105815289463188894978850360127788256313677709514822077400575709809185326171020758215258155773563291296870562187440814776506408466527446571614901872138262707128889041225998345020273049795425836464576891987858330338711776599711475329915245867237218914588230318119784058889623324281680421483584230471413728407375090478190122439411872989620296743045962273550460062185694950074486695870151933411818905401054531178305593814422003337097812386407336410895859610510630346262043207516495878801422582579057804133209924371970877496878047652160862056110983571812403919082245452691659868196250864068868849725644280248919727603264091326916962154852333782660538912285773703804898674018091168403861408278855679648009777221872495181491320698858547966166949238920117622439078931659820446268181620996411243641562261265126806900698147349599072719406374373044219074665260994173213973343324653422138081963519524068219817686249278536933320516459237903770520377792881562638798902566195824697725501977059987054363798012697081613712291504896894925628355228695889901014122045339864124028375474785048630756833571458516519797291075221742284493153273143857042841983125686264111835714858080302432849943169373869426374944662854480921680027269746829305540640364402405086557012739337807978486196695438015747480137273799863383387711703251487959458530053041087336116193162952029477695654449157691202815384984184456700324377592167933012298625949284293233643257350409146187360744927831677566531270123726201962853645422251195858056937138066475695102068875060759905973003204276993239234411904918905977908224538045682279386414072248389393648822173674134526905889442778175543294672350597995160299274966069475430079248861276308595722121369412878031196615084244658483039014587626371877485438945983517902661010751836825119363994193434038770990722382086280858956405419594233957808221367570949552205263552914788082852363369041197273331483618490441365869167058237018979049882585039766571085332696544872191522573532493538594285016375944735418650431403801824584879919711804760017862797020078633083929243048785645331634271173038289808780195987495329970718683855531917735870509811801151731321396665562788540041162049703458196709321814740622860870191140175146192781213720835357655567530110902657261991276730985884994142776007734345934943411174472437638917939784414903716551919553926340173774383635736826462342889480829091482642885033749089081706449810460399908826814760742254788931627332298830705902026247226457213208819271200033512320811968816772262089713973911299988847969323261021112457483556389974796353879095330594201722943158184980758809256018573910206071276096630487439343562050299780019660089562843289711776828792357893619588187134719750669940385204883500515864742620155444021598707440534822458776744915672972392976827048268349205328767223758921765260954850501183069574115260060947799225076562355212635944235339757574870565185347287552339710081049871678042894075104359331384205461302889576501828782884971018881844680814155437404897272020988019050733544232507333800636507718529054343877241613976919348484925386520400811418365866400470816044488915436681471767420352272928430230376664962375161880075548677499378672534028569174903649070088064791134796669100175478945170189747546541273828820067186398855629427173435703801930846383930510259032051372748772986597577102031337348262724523300695019869656823933509607396704885273260437883518361556347672076885815814503689932083414910010887837658864743897503943951255539926740674909385779498057472099175066941206805915700492144772309527554952904970363477784762634969176314347979490423357897852771467697600111955241543921244643835023374452939468424754517205040124294960195033262837384748067095811762774966912918420611239837922536041552635531421752488005967082566188779608719217728252798208734327048970933301418057233493274452137965578768151862670370263211605750387475097158410015575205848213650862700274298832071329075155202426396390633293118932861795456801790168017652705023883427236444914441841850964528977908249500747602809125545363205948783076770894702274818603804571780143023352739380197855235645993138775227178593245962140832779017932377906660424194315332316605655963903007493868217934696022828647295240924162075647314202601126432970925879224129878032397921582984210146695309767105640537192737701125441450732199393349905371129523548996564628340441247098173319451469539562929287155613405450021895240021046244915385048103900397492910518971405988813658370076380724784151334548174373781450175375041532346878191933130880203851314306495554824418566511313993411823252725578953531476897310477612821908830964450916309173982507853888085068940635765099595518825722267957802828528758038828206298679153874813247818585492903596698396462921443564544948042599023648730113298316190165556056968483493314730699200150541426790606954804231774461950192794216778997690742040703762912852129892832018486519515417589919590147264445336893047458530593724796293711975873283932789151381822178920382195213450711131240284112799245504020632017991701363492772258271910098991129001830748450838373495270284368679685966814729249781872604104968447722315900687263624008431558282071173661070171291814166642219064898311256718724074260822647134630721367449655771750960619496075166118549948298382813942951741366020757607920221496626109034424415400969297294311865085212487261442552422481488750659672259689346908103891600963341461513301299341226380457466029326839554908086968396803968405329188480407403809731161242347739485087997150499120934182758640879481611345757073098531667162597928090196392281361589276295499536200190431706139446805612147738132363196980280009687629803302531032022320422995839801944213908578780107300586815546812843627934642917050682385464181642616613161786306170831248330171907539882678561478723629444604156166394741800277612286428665577851610182297330350582357839112361046353469864012700769109300800795370344949199662792476346217501103070268934505163517115366652302754176575695444219908706662760097316573287494217596055043953980784496153193862674579166815926887246705318671723159436225235422932602591353710911781220748458993233860975409738135764706447051712993178172195933056606797393171996690239339256632307989956359523296974665865847830677235041999699628360902969143645348225777959546423849203105791316974811173057869304109053132635827256476559770932464663628148680432281289969848603589975275800983069586471727758149342400492809184802286310805056867474930103403297467233582650986355952832397925807384558841236059717361403961859058829980518001041824502000098283646609154466499504860373329862635143208886198782677318031908926154054747134934671889999039970098173143653908704312339840113053636848922518798997275963534572161789274178582807633966121898955984406644736641215378326224052260357414149807886757297670211158073931677083262745894828875284564190416251780123008302790931668127180396511885710782829027836849127927435549920386486948253715977566763229892792641877109743174181037879326955682227533036566798114803713225018565655868652721891290327108871301524212410207957949255225059107948906382489940743044110297631965400450102312661249991571641864407835845939052323641932628555005150744999703691977567422231503434421805717090392945529992316633972861805707056809860087850047868492974394692303080160060884387147259039933026797782575895666464539632577741107768192172941113450284110529592318712362565869960779213652037787038375518546418412921033093670017836188659214449292778772931528449361076990188263939776237623227324232919890114791422908596580401075231032251428175016501988136846544279436684261244729957501661857548141279141251347908328331001916886571974024553731841198843966501457032916650881288427272103052161771338302875185666424994665384058065686293463110051337593107791204785100515789439199022662890147476422589450098872444007044737454786727029129515130811692626947674306424766528996863543814379490236475808082862078079110926554995928849033651815711449983918925589958816049665529305427619629901535044590971852090203673380824778626286739283008979712986497953492915589033740471756453790978731848944932958102161145019874506930712687207357761534973339011323117829231766065112486001333680811073122979990997254646273938700325561987244966950364136330856886688005642499399205709233133746075559386181037454733937817137681081369994914544803992095815061138745558941310263429478062675330355906386085035386223004859100196551176884185787780619819205097495469508387544681338897767983419477220038966553186325416561984381332590912110590052491965339567843890544742670343181656556788966361193334176347422643585669850249066495011548758665783765530292634389839021656221409897098925459686233056828875954750216378685653797403432756765891599159487746175896590364866223406794866680166816784201154443863767442463765833744918544811285205493760043620236399698215846926342847926798056677288355317439410933679625085766234613308888255054231157566683802174646750220018656626884867765860053868947073034187799585855340524557075746547238820369337657762525317287600897646620230415857834420544383304808642982928124353236497202544808353630537461853079417952317269562049451372577884549244032496439669008973791030105824021649719764676861294443088996596369181663008264364448700985140723426216015211170082386570824589438549158797406710209494999500566955297724336493791856505624894256280627511312423152657142189205071151511601817480245844671375101572920798112507922404651869254798855541238182643403089710691643944172182083744249621609839063301813813236275263608438322178567315961678057949753321553490721541475548922111401277616957500116529497164127512132690832991308049502750756937676516124709078777258631390549870826083813667327656871000997718289762893199404184155360102496624052876804623176294531026247761812810365616569445403470723488588032804275208266803843582870762390915763067311788819435152011557674510569306913584969358319541620979833265892554738979722943303435440098837885999426011555228605215224429801962513802717179704956377051341226888457608182154791507970339148609840319371039149773935638373902856312723152453124218707824561189240094153579457653871722557152927054629654428223493521595074227427852010546538338728406831736723959108528461949839836151377766436402917115840737541761069821472274348922699413573317346513978001275845405490570548144049781845089386411444873407517057020724911103958471794298803624171687068108836195031793007402086437221129138889986596154069634029465830573091296867752254262632650281042894068863685715983136692641857004699089832751763417486613914385696968257505557517257549480286688276951465032128073703116936205803041902230776766432401153517313315963015901763702993743242393829648534677952376967743791316957640992394145320282479240856215985511510625378396704370718852027829858124827313475883523275249379892218261080320222103956694247077069014287809648050919550594084913288016094500341041596471021451159530341360564317839148048722816817959868388025434937930489798470305221845035447633747770316570331451582911314527630617947491431995308492010826337888076888657968630988051926437632153974915216647580306867447295478906549098917917718965586484796311875562176601816327798627587639834589985826418233302578332223386565025439056980129717007323438794800409607480542673765874084827247880307970955655773002750619874891478744451853943187223178661784946842986913724819837796994192861022238089021367154382272745873212321554965368748335065218431919804589183698054764771325147581868125996185496312901492119130113830165938016410117257732575056240522119768459370224193387711793651008050301795932924074342142662839931011714782546880776570479255567938167241723606476407019190657821556354093104649201305126454867016264177399123249522727172351163006543390762680669248059268321336985296688672528375725343913932195504863197507474029815713555142242315259397923793184566615292652955798281905399659504233415615435855768247144377654875332450737488390775728531889740739125519247311727526747214939290644666273695402281059753608372388998836521361814798477475001588639530778270764117982493708132666345016544860604069457572680268675194990831493141314254214641397156425272621329362205566129920235931857766322916963727181974539968012229582704683576777812528943700668424240005651239665739334497081069391345965629903756508574192705112043634547172208004948414048489462157600267479727292455314261840506752678605437263627595347506490557585958808798210424283601146440487496622680927255737984398305181702348469238626312853827010587918830220359777825912606239713058754322418103464035208229516160536456631567146151379354208188288840027323333522853279426909825452571817699967064710347691350944964482714303127998503659781009227492155654559287691489326551247118404782839662987691079778051021447419129546802181096861776017493293297553276276815557817107603319811953637607176532831110135424885146978205522845943255592767586292249835583865388672781040313612921235676598778259185504626709123842738941296085791366469448824224650425767149035933904348658016910111982779430423844192746218855388382302873026717265775281741252177591988454210461222152993399664881094012016069672578283838474809021698966895494136040470085230020917738978711309344399667277023930020605772879842548483459527570851265661632590808571137877931055084693214420486726034548432396053293354087542862889477534015193424630992869219117473125465193941681774359430821925456990041235222442252769088941191396769739036573882076398254931013503222808284885036967203133765763789839326087869036418238820463390947720380572052597794781612393288889635437241413784813484240555937831635674284248194011939962951804828770894945880292372265749743968381539860790255780235250441690637706683722609210744058593786891848658854601223170115628121528181175176370647158518031328945539585465279033477565928620752478943693563480131664851598116607447155852659309692394384733596482630136106690651623101315839754973812374943181264634344506643128176854705822710945505763400813550700239047329168930002161244910404110789076490524674774407155003681822791195678285299763650577610874013788388036000836123673638001350251967030219491174117050542125130447424847398730781230736386324581605119972571132898003685127114495734923376813745019294545553509263469381524213169263612708139688564119262992229262899047155661178414642820623408920815134243400554406650615962762801883583359882919970997307889911898060839815972947303421673622913053793600590918986627052353496320028705401935550992092746766655644644837748366705238386131599012712931191093688515740511816610920635071577719642186416010676001052419241780313348087080467342949007631154344226908977123304101739672785349341120592499123225883120759619254285127814324088774661133023864099745238068180198440750060026684554440349175341723053439892844748135593549401270348450903189080817148037138820221277407820933278398141279297372576486851763855509026953617357826695814445146008352911283828726515907179428387852442886568969700950539753379503412488267110541306330158142696732766309026330083759205919919031447724017517664119315364380172202234388891534850432003403802944046639572523833274307472755335577383052216637199804573946069285863956286366761308356495843172615378622108505205635610114672881527133279439799821705569889911880752803738776043935704977348786508207526118329248419050831841328113438054723304033121060703692177211314364206036735144721534363435665869665403531769647963174559026747625367110286448012300203021228193786888735714669800142826175397230439256712626203879955594703624980381708579861212688057260612267168663358486204924794433608467980104735786691895002823921985700100276965882950533000724946030350515641803582340924935867785388141675841812264670846376256783295499630808692279020701353497119972452091241846873440665510344921437801788523034345448927835086791887522877750206676215052812246292291727077175090034188580472833364195065976338918399762544663556663609912204966106000981004889700098737361835074253744986027504692823397181159097132719214737189495858343345669663062699549567964550129618368800740424527603684919674022664211918074387042066407948114160226976054394696481389434531788815714860344149562040299410127865771231204790593362112598055813504605931289360465040227715619348479621600043135708641676468848984782991472743698151581932635970330714316203399654819932220413144426796209061215684554731841183254011796272187368888973497388645571394315188564763536463014965138713883633328972197379721108713632243771631130971000279161859270320382302313628843327930405287146155167506476160577874952867567946694888961465944788659651187510005251666929999722213373534507819247191560621832562580944614674438550425027941384043344008307743667793677722738365294200582618193709657723894227502469279476824823935270164253605912688447633869585487813066449078394803312548337207890873457367493531505852641896665219704432337532195205569143461255616687256474170521507806631176216233897567550531993557231698359701795132466412605632917103388212948156180896210706035701173218717190036315133174870129069519086955721070148139364227091157023135861605405865918235573515299065156728525436733301641511196167929210800888093807639104796731121794597057102775671094048585296115288371896899682293899022584019516136117618933276008474773283633312556620538012639881219040177036872963257455769495573546911898788832449477647363161086992941331121154976130654703496001557417541998990374570842210076805516733289049010134189964064561832304205002300868776615273477957299456268670141608658409481976227904608927833044101170265004951176022633625396116002069328169614367940605114527707314458439813648628229045281880363904142696067162556245244426423311967238928049029224735170864371200325171241198390987170601467644271090492863725719072860488706368117016332687250416900517948387822874211402483277073831156241778952603459039144099393232737018080141136010998519059172728253605535181941139157996490276616617329330490331793719607032333980033062215138783632661733536980921144882966766566578031055685895868953767008832925466402668271526920286836720091023375556067905210503612574354711852586048262850953684834801077229756014866063238633919751485196305561851432494973456332744158802636094101640413411408431257856786899633366318626899279381764262998179158846694854835350906037631141329858982461080899872118993823096074724843658557743349555729699831291246694271555584214300186395889944344619038722094419121035780602727429970967961587080767620641640464002262857056875100811464615209114213084433161792990162552857896987911124275388748706173810642959783476870816871160511209496857429786826045622879768196747091833490705584061311388991736916334294588923295125621831749584895115612779704576007331078304672539511547882036681102595155903257790086659930225705021718271010584089822418837947433867741407643709938045629994244500610567923076245808843826896021599400798551948138119879336001642420577280840474310397994088889442133597526860991100811527876236628817687878534369154877625018258394708979703249331617619110922767467569582515689554462009636137176570138893054991791108676677326587794398119779696295435671934474033621923568701062455169873908208696900381430943337824699709669724228478552684783819567424324603910542154399965526862696996826983508129317899426687043054495711035880238866844885139054614831686095175475027817497616885891346896144486256283092802713252079394064782815306735624159843867894555439364634523852182833649977718043863587391870815992821380527814669559718519278002503310821607029998039777392776417037432508308044502959613298403909877971395269527282482293943359812849735846159694006324775935312997508632369517403258682431845094929519583834334180497195784429771324582689898810229888597974336165057633001162851791088419193099551429286162177678641525222936493046580908419462214666763493924644798822346128351254842359108766343669793587944723043487367598187426840826847117301586856424472728798249716031984803203643470637310791796460278405793355453768298747820064030025597093169641137840301356275184904711437237578803002833028256143565530316348963077734351928950852781066286933169402166519939832525274904086211861920956939056059005183674056446133998801117992846447432962458134248894599455820295988641722686422263692612113753492477568553516475825169700032315503291380654785072277198098767095673631677654262417713508600501723825501793831928665463206754740202941699128745692569699166878797851153098641030643767981689879954014362636568755139658121866474760830129164354137630155178606032955365800764085219093847936353680783158911120382237824799627254862941164999858457942992149589909752537018669115033652776044778130605234331998597908297065285480089564006214629228054160896385061996938901245672812048596060453335305243384761592500740334872386066391190082648385945901540292117223547298198996376650310658541518279500149507677250313958975629022304577835535085776692957195711073231274267777770446529493568194466339468663246190930087443021016618330776120531477876300111016916140157482685950899075613121014165570292949762203760853506869842040111427758846914848139371948853104306686298865029650177853618127403589668762013543615128400765080610255952347102770834656004350206666676250597042969522360302184918027188834757590716738941880759020077499260486616429679805515027212364949640640832049401925683010336004319209123436759559788458446378419987158711281663362748599074853162236218168865398160277419149490637503787456348961351084127270390904209211127547521524467752595642325841884819903105251391395724393457587147488190189293486792809669290007727080675739022787920560665131838473680666815819293055456053074153612423660212462460228882687499171030807412392473394829289717971980734810014455794786857454550402063639209170385355949399075305679282443607030428841846366354413069476691363833857776284165802764587238104678077259562907431647137802345586903830919883756019339947712332931724269635020932672725069925113713148456236903536507561242264355982401318514851008796892059266318339357447689609990034944959241778358389758223299856010170281406386401595015170737825457675872126440709501765039100620863286179672482527810837366205730167529668510186723438774813311684086590255819637265566277589453420375285859939601304378916479491231282952145568331932507825323673840203175397736071504397163653738566216881717881230041043428846658423214715323371454508353470269547683779949484612564799773710252143094064501127527470361167769752748818705251137237225088503771954258615400184587832574005259568902116782709241099137794488559013807881310940135229474272589583937549853735485848299322590654142811044309327432116103447533008908099633525763778882381305237390588434094223150386612968211980124215421036123516982123305743346792391515057107973037906885306422306677954108262536622032172897556273989173942543226151339160579016583079633587822092256847894341052963706765151489319301690029996542861525351503859601626136513656706342166117568433234477821675518237479946592500968937169891601492178909005086919947052727591212673651314446713308921317438600315048889703252278608306979645680775946681890489043048506817484568116940942489443826504176617420881285008492502608207019988399926129502575242169451651080499254605856536964922422123076235276044095226817506340420998289455108054210919978474071022132114253695780296008622861738131627943371696849482648330915761551366618580559145736247168940976148318509439009819725813574535419294951965284452012666201143103778820126088528705065273446606530792410802699104344414776539532232502158553472796430258657335477636773446966559270749091755988037110906884063835356049579684398391386002602208568214016053673839753723997611519392387148988641370573335064292051926823554800098296780684742682863162188851301382230633149325846687085932542660309728687092967662885700454321950682359141795152281675850702276653931031888288945869399838302930103344041671423034739179088023879853198710880605485789192084543429797707382532389879133540754614089421224502594267907287585661319869286244208383064285874963670782899086625942509651189205849238403417752065517939951070952065323429404985245978226912917856799923010529418959904271181240939935872812246455263815684955829201402672494243629508705751211847069809127336888268828743587166660427265107486621395021799158595412987061079557730161008523801408162773535228582699303606980916187675564669285191974323713789471060724991058792236199962675567889235043429046199318931750428564979573597702252994496558316751559593993678005309098829861940988912610260382017483934690506110417195243162681067373547212494476979649472157421140088192343461992129855011492894116316835190550634587225519166742537529744310296601377620801087118226197141557955184840720468668067206526706055259962474137795208895619577661726215046718791967970427833379173711518732006879574954516317127059254755616586617226981765364272333691604489468588008263695904944978647195283634953335870454265737392216245311733225108109081701734718231412204317983844645222041342374306876274001214727696000739286353125358246109417627717504078962899512029085347597490226779677774512420829906883381849275790618274157240091703157818146950620068240398569898767928000629869917229180405434444294477271566883584178705979330986611346174951333537445932537881466888972146685966302854642427215957409063575111334290147410925245866201294630198875905152011477191965251325467553475190053713304679659088461357593187589259935735474298950858193873952297552047479717354478639478308318137227963644281252870093078635115103746165717104332050317715805217089316505088572550999820930186643781165233310477687313416848990017071610145841979981006718579852686677048559011536385476044163171403588625693899553359364503336582853665465319889518819552730999527789871586500166446914167276018155852764256831401393669750285753641082156997140150072232022676249503362623144674416604765426546525297739919046631817450546489577882701977542292343257022712183298617584162604223977179252939866941458970555398727911084530821620452914296472268929589826688213252049418404141860868742095125889069824255158190743750267705416152160755727136869842598788208790183530449941782653560498396058552731320498970627232729539123878878937950134379399257696191309936704274916586702016117398135217194447272048646552879312250599760231689139152476978695627342620270328263883195869289657120958106723707117753487532381222631881292901091613346493232684472758253015641824655190526889068738649247837295592785022934079720400113016804883859490445700664596181915225500467134298751629528876950686235458605169368979271949990992647312808437971013584246141229780349112121950713551982070302080858130999397916040042205890597616174502834073525042324630915247384509373779453177162997745199017534921179191430742216758408770741201770259134404315944069930739811762646361942457624879156430296133526173491170874236631141547615316651493722924760447955255726490974905314512648399297247230213735234087198500636512364805832128899792865445307662903151544927292825439149115006793476877292159604740621969051405113058151292828376378073649472150079133820879164182381079341353824040835627527703838145899607320405368573645828064980280080595578777703638036438573502843726544097665779491900368823579499183910660834989487478466079957175766090521981139303371923032079068105004899725124718217593026631655425420470984420116764105448499745303421841014309186009712010360981788816409384293495535170321421841859264361916236722018419572297044436510020874332996091163304603178281992463026503929111950038807494258172563210651093323412461501242893050943752939433220996637048982576003716372044170076467001734451519340000299449031025592553169151751928523598875079144007565150842167947811405974281953120515208470206165278132736022578581581032300726669889501216250758662023118421361465567129394596567135595360177041267115812413664096470938490176867719173772980033001721281766802770259858663855757336942794821318857926464380720210983676082829725828115800788499335146804712677867567625700976414000529785754959591018962205990315482420059396284005032820293759632994554010183903269977921628897411036024061970534509003272309409753899547901237714614243503183859746549142358876046375986465362211073603228637971832787519064712340025667490725452612887765477697204613251458350065153313349999888758334273087858775399649149239615520219578312377727651419252002637351033907801561641863917239624064543130766068788669974724475981590265194698979699934744571923006288511515896223982792461533185482297738032039333653911780352038674884162664642789418452807996469814741226795832082406423272421297679927347119219226557468516126530610034082228294857583003562827349502963890829909668191523496218266842163231592305746872601450258793012017786811818563207985285731141878969056351739136735390992553376993259994699151778092020178689568698990698211039026033841452533741604292213922773398146211745327864602639300086459997722575980341937517354583003720881525294888587326565309222758404074410616426519944275573976520321335162111324274850825081692260763407032510748296446731101273132234704771676854043633111822034390231956654614028812888362780787340922000436758378735601518716473224820334421336309080627731989222107987318056427532596602429783770484338492792013089717932307759818032066995074645543151676846062403264142780819014860814792883968397303623604631164227296412930963460490222563180712305580150230897473930251438945641394490474961973687794994179962185823205104495080410686234673551359734070795405494306513197436961689481239674153000654052153282189847049576678087414224378466284577452832052463990876782908951000219977283413311606402592404143199859220605767575189534640142742807097429033397903916034847641256998907510086725070000563589216617458616680897900419193102028650284238394805866524004277404316833531013207571608527686438974900051848900048697454155415468441032079383376097374540971731241346013048901912738325485338344803498756691895213563068691986795275956952187510042140117862860886226331263761483812447847709240820375464661900158389702362527206901294107179068398396084263822024911955314468013915358192339958217262587416464638666382992492952373056863406528651884816500918358513954957820486554631649640178084106266933778225264488915986267099376823119013373216357632176492612609528903180227093222860080721593347808486920143277869542767707651450896477325045139660626823222193018388180753364736477093165480330290200960046858331127875702381475097207372154703791673145704553335613459679756499626046095356524146481477469940541239809153999684438231293321904709443525353601577681725445795784232448519498234932471243671622901445100661712201440321370142927289398740375423108306009601591196913443571680932432074129576467704698590816367429827886165009146661044135636600135592075630285461659176299636355248131620670228969217994750127118814421615725773623376409255110238446106804331183835342662219152163094687347713856978000804085374344297714504674435423313552625155372002278575413729195197185511193511694395864270171366678873381084098286552659676720041345975160928779623064565694910878127454905325714986716692115645273940467492976946154262613291214167472518521806346318130768068993009422564245894294653790688538565414643555529762227072786285911092505955325832833425449544283521897020125468035050492269458151824232046268254409607359692410259580874728370856768295370379419193980786517560144154616594493181415116534715647530325650962440945920863753640343343089223661689160238159488588212364636991438442472850848659261555121134523478828049979344508576965407138818651018561426660030450540221563283963118418340577452348560515686691868735061533460739628504758920709158103910125849838759534615812200815015296828232366258690430806556046727306740773236831425797601474305692838893663407808567706885740040887524574945986351029374413454846995755015940284938223099005579355240418509617677351485602341734994426435172215594709662598813551240061899838584926536756308805084028008554631894724597180552034162105238733466201806902220383715279246588444123018313956866613601647804852178460720686424950098847789130969065275743796533188422395179820985036825465456592466306909477661274268839890915793779479762168728067529378276682080725149834890558188506915613131679917421209469123776658196532373044119348456228971657185461563183601207850348419361849468928626692262939480045757855751990648387148724346057275478540015626760953966612028583116586416912739753117171388410352481241091471138757840606522590716152775035533140861569461571077714417243136154561276725011584209024205137402608561681236293563029510861834535526090659536727480587036066068080021231308213046285710420620534151786965497717642164672808089386853280845817582106378680838388282201402182123516919628038238307789253483728646362897067958998187457869307724989387540614880916882897720253078686605251096266553704788762158548906459741897266188928509607024905597310058334118013367875353105302263078511957444826284675396453290294663794015641148949257499590307456383593781634444886081392835174576138010082958373235325399266590063705794378279315610304285735490485225442670708411315704542777681088943911392432766775288028159401141315919971938007594537695047233683189177568040164104385950638921865408609208877915551377862021260375447712110268195977469390624933833166424261282953597898787600553011510443799917090714642624073625938214016084960363653741608681525887786017340848247165190569068909362731593995081002978664734583023201399570696678440607990748844622223878454342288684083654376853915174462483508553585425193497903119596108751957461498247526660242008888374494844212667124619942544164219171740668933872999288162177487097494391924687256992368521934755497335958138110643964886195841202619747037073961078121550954991923365125787151473657710026584625113882357090210113847272259706876994554747936358374193353326416586182496048226012196846345707129518392572097552620318598799296858057583701472501475169932063936007418729384537471912638174971461793491928531532619359578888735954177548437392735160979313007895556209755569427974917192929849380890404784139426512520369227664728402725135319848678971225945719229933395776540637709699265359476664102788828047896257418145678812433093650658375642699967503593427977435783006183393022229720004115799999089332790217948098052531315850262414379072602767446106501306532675028733412467102409222244302725403101137844154292615572784998186101451094955234268354588016270094326120990976614474620838656478562650386014217765174412681444899563736921437338536759592723608010548733104775568009794211411616312820335306098233943157612319652553951899557584477803957029744119108011697848263394113415201358526218715159231813090512104331990634030672585791453715498338181407033486100708306161124417441929702229937302736320270870614033399686906310634111866336953128771747289953469474991991728803314923274428034536314387644400177666115934790055180916587600927910548959208340700089444388426218635692795889194778035664401559126679104648533987138774649622591363225825585902036698059268792370952594824013606981508423914286137585925135456533607212822791062203865406522019619792688733368215519924394701196536797359712137673690974323255522261154462608081166280233484305417682998617272271441761451195393583871995687957512857808970960268273030627334119109486948587525539042315854244316628618489100298139440505747107396268491232001882630701852656879573205551261833868130825214076587349292301000440260406772486012741212110507228218743763006806623983471841093411804384266818476276798667882295785005614711972953880114031522815045222439142904092092475896411825619472067975588764832008575877001126838430284431271998235876305343474547557796240130951118323291578042680148844237468212740450764795490371698847369615461192417566187254114594051883967300820814414564605663690630994697699160895314151993337783761017674566076281447511711377743118334420864252459205244656736179196694763415575057176150125639306839747986963085250654381866869100642270662780042511792665990031826849176219469016557589081816766109427282360809873889370784778765135157886153117758202586867843906905798411425350193874203916852060883322980797760910218117505305295455251111558943887069241036092843697056242486729687697103458188545474717783724662571147675701261258034296027911341130569010897091289655236345236294834032752292142766180803437905790363802216488635507085191426015160929099199792690725296030845767310614453127916208559670168422708061926846059290358452186581838546064377263545960369226020637034746302280768006825587323335312933144806363102819921075467818182743689285274813572583692512775233414710286269898568391794840727608609938178885255655002193980667657157067095965794032907895927084925196230020580384016779867056845166934633512080355209491287662322406194297328570705924601372868973941915264962126027744891330997459948027564426803592393581840205670186768401460662879557467566010986106951263367850669327590786471174393224375560850052189315622662508894625770557409708380303187494164293127016859486919813366262284442287716512742302510811636366699598014795673622574712259676827403452055069632751728395739974022235418215061885264569563350732053857633773859189174221461793782975649625362470473427110084577116389999725805636406187846390258395426698748942310357087339211074594309673034571191783635436848943768062963450020494739486278668149534202385979124254207866160296889185150423261379380153157208812643926053620318919341642765643908711234421018790749894310063006161946644788725010731085744706442094545433539006626157285188676139536233924293064421411910784507261043251802333964766554386748998137875153137422648456459625375534713184521201368309988232995913583943786261248999918024160786047712578134477952207531454187240932225804141913117384401883500199241913178210994713555266288297463157512865396763517086859069512477361628370207267673649686021047363497992607936249586534997689893056060169462037903789290789656821111447622184808953000008159629691113509133026201939509737633852073777591127275288885123918860729819061552089959091564345106647128459099505652160743495186091033217882985941433936132161506458417357244477249456526646029108717191028198358928588879824701399536444864948928284768908736515127250720103401204610356435595305616111915767793729665661844317235632263272669447518167965126939606440375019967634011738504991550905880263719524927302261685139327435276240794697742037385433457972174310190021892505007248609321856664630108352856862443280286248899701524075157452092184258960663676848836957379416861026841501155983005225666047604913486363132261742942543350653166860429409304914902733540700899293109972837814591501050064196717965426553361876656237888334273427113548996803173395218512168410000294207220465972337020799278390426210837121494680117950015407871428404107910401887804299635469694887510545651935106951744316308924792001787461582068600384108674851327324138799453216639453717734736318734511948859104044182531678781489244989275161590603656884413650313520283887949477482380265486928529748220773906773916989178261930089792908603173706799686616616123036984579492049079835875328807538218559210505286299702436903899308894534033867744182488067712069201746081898069518075217658538685574505495198231017130264892288446435870508052940255532764644302017969454863487958372466373919455757909698196560985003848582599127376945967717700454487059437794674677020939676015675617475212336027122922705870270682834425707785927308829459270238888182874562603980424179813117019758139926581480036371897529565643140798660458380736877775386169852842027735274093355050866077292590125216683095086345170436656235085219971495805108642221120774373029421206415922154942561333681891467445521669367148870667800239037374157597173136479359747897549442064431341714507498268954172954400024963717751934006010880794225451604796109568104850058701622069068270502735225107999731565709910386332380815394161723453277714618990337746989596548421917655277059318522007905755389426746619153008390749402330836313160647378515774162280579620652380525686495913281063986023208752700974918504620777768252384918065335165458755161413152603045502182871126519893784568557229771728999448390061617841108611257014322870188796776549645078366788992026720572996196915372522813379553190602710546253835805601245129553234259912874732184929571006017533206383811529632625656311958878662876295857678192731464514203336001261207271310445379504955174680827993082393650775781524857455831651602935934728839547746893496532833585813581433606637439380605541688463916151272295538141689676337918372117332615164798840824367244690477116320456669104279287688663928392214280107890202207711289924040341371603428782506526628678659437105608122738888728306074779990972574744500869298826755676296995316163539684360570369685877497961654586465587248590203873103734531069876358613106008468371941953422254163619329481048799761371092111528155294281117678107760413198962136715038348980325585193259448680139935680956969398012038319362298061022575064654649728043455643482341609198831283731485470608110275859034656214227773163058739686490989020704807223293114556502301808353284119647887837135731789722961884279609286424771283144953138212619687034784303847080489242977246181167124698013365280000596003197385302981548100895142775430571501397685377966642466594523979356188395238217629204796092551681757037992015312966411914083086507483376757384695735382971950961003400760164779250313901672727932183710111680435143983136724196491770648723385445443634489337101928313548033778110515104479533889634828699979822134508018746281986285801671248694955790976441368044645364601108721639053728377843575728068161361869399522685484946156534670908337219457763966982024729418046356331882140819792949601733677101583416351296659757712437487416109913338465775832016853637985059804787427400282814792660945743289278767999145766721186471439531363003296357061362289530208093670461114470426236407731629252248547868263491025869595019540226182258044795818160078688996258210792520041869968494291196636204901923517203232936492214391458955481146964399762431671947172183275025321949778327554222546036047404161355866742239170227487901419629827898350387591721647223681291535706344197917880800884088824772673317333673300307570419789518674959182711463537050882198363001872696827333780870634504720051850884632464705850780469669603866765503027403168505889238861923160632256411167743300123699095461621127008843727447323292307663905815028685626394658942570245270751064606497684997908733793870044720832764894577736163666866946942741340790358149436134338861299362824862674646192445495368602170325511970825349031854926937384529406489038594626395158729693285663654470509496087806716630235867389850993641334645772330161154348027167684061036695629811303522422561565636912206333281006637843826717017651623830628720037972166115092907323456019550815301809530995922116742357754657415057771417778424153859517362670806195053278503339781383055324971788040813668495997306912940609039011557920277664149035541369425804672601264258458952827115188171817050797811949527754325971908954692503566455943092941636881025149846507746062815067018874067474753972563732944981324330055061026654966138584652274184541132230437054137910648438436137204740490231118219255088669482456779063749954336619143147596745533976677825565057177483221464665180588635102449261362031456637918221794267233510294864571147698285974931735729422527686471285051366879202106755757595880965903184555184576413092646490432026943991796857310098219865560743201829826965221308718476321034528068892743021633793580239996740233671226893831639844045666188940319212258821539527053583273956163493942350235465453512192342942183641280644451801945880277190668538048992009121341219479754431738222805527482180834580734659632390812577856523837868714148504093162900436715128837114942993215019704788051264227247587124760477658316461299163552911776999863689114356189198277703705198959108030799986789733715892113018554699420951251095235593885157835745756397235593269696116565059700006493773794665954759468566345676791658401506159538283666663187735053379907154260646711950687058078415626626642757733310736542641758155384395535249265046390817617694306215737480183793356309987942818379675419336085430051352655932088324118537274182311815206051516702074698693207053549362387190485402491721543074048393392713248213889365823769068793854556617641061315621151428784038891345856022382864504681645392216737557620872109670317494290248631874575890425293030106043117724299266993697292451600879105931306417552541635555645476631339775805164509539413733878254433807995777160569078771889098390854554704348574547029907619880743066455488557540272680070500899863154423324884578411093467517351134173714068232131117558407126708065657632505474235538706672235430720943047174997685582236713682068134693641314026268183040937368681558930998333863834422248761633200481774341348484794957414492515385378455646758370863436920563647162923402786835696821005987040378683692641923515770536357653604212116733776213266478409199175547721647895879459557789834172964823453880175517908924989662982310555194183874806062983496286547269198367984552617884776334533351002495373530751194977286320512236562767290234756440049142967609075878435723705866789576191537879577275305589288336497156563340459675009028732709108529508553222691421362400100513057543092130045914483987175412033915645531001412188026079728135499527024611389390968748330935298228285365326120856835066501911176014743244875557789286675861559434200881699981117467596394538085508706493993847668868001767946341446664952264688581984227235825766887390156270403971632263458190489674291486644869351884817780230664099053532553782878430860511917519991850550567306415766428087670670294344582679349575848666559603878731555278621101992594485097397589667111266443625424572686470677959635614655655230178718896932409538771348852803486871459756905765837097271258439838587760427776570294276167523558724710569675504548572207909272205567697324253469628112536533398648748850798742135789458282842800580807587593655204849209582721887870525280153454665392034144476643334278010467094403191538455249751456650092916028804289494031557483404786007596530837372025951187771801647356365508190273062273529790179288734492811331259809562108450772772452554045300370105130336298450429447773001844078842582318862431107877869425785510293803726023452069305313169633141371769270425624174642922082093924268979738239846551793264167484772306617240329289596617037944585338292677832536806114696943529470977324644132039477506070229314172463757262900989092411825719704038232151514570798829040978849707249677620190677606720035302515850976081583450531819666785726442312251829316719146639291465490766178451199944135060788496199420473070523781417561214840086960314492210263431364938512867758586905935121042967741716134054982315487264986557336991447598527572466012097617674484407452767282039355874412012813124242476423054582889103078538491572188648248713081382476022351916470002899831638004547133906132343768936893626533332692279868467082296871553693339824797674371479983619653551791753502588162125644207315399805638421589149094918556358396207623583607621113298922852342230844281155349181341012386132666956437044963564964988323772593625877248021550900930885467353859788877842247609061279194308190863200865658479739920980174501720863896664342689443785803185131928918219782240403493807508447819842654390892405161702507023550857275924750016586815645694616949510799714548053068330472989874144905800230828938854036037746944869958252337003768955450321566943766401583970342025452665969151763657588703206632028955342812507360322439223831867686333489057507168433451375920324126371882091888062143897241854573713066208940172345917551813083981950605180154138616139453673538521729401188778093963813449572911090093203564995093313101142521760471306511939571304341060736668623820003149051678306020260173354875524511602291377055073119212569684353482611847569877892147562829790386473113089249429856448011941390000860100021723403377101148609096612646629028914290482816034184515104979618764492428363209011674068853877552881260050054320617736364107729522512674907492933028217957001602712468679177883347457737343065209997103021217338892238455374197059743654175256338655265226385501167480004609553952077102203805478369442412321036492240148662551936491397731095181717175983697158933134182984210917562510416123364391604799756017850108674743084596280909048156331368140618468790323790896010219813891450264831628799053867495734387184090350414693523175122215961485195302077813690189757616518297602801006607734156495636849381784408139997625187363927547093520989870823514867855692168520638703343887660285033615095638291959424830521093600975437554335385760893659803701265748853368064303120801595706096264377635267135836451956491537828699167331035460342691919866485617611692259431582988399173795145394610993501037486947885896004865930186778452439943701125241776872917203484101440211864629629302211892911847919254559939668159210898879783799260640211350721091372677330033579221277245729465240132589386317103223509281335924308343394979325105138444652649547483893354557379316581386704991142570150953755107057040011785009678089495142030024255299601184337146248528572119648910356178828637603353748449487281864693306772704081861384241879412785170493320381889248747479731044457660978512554217710470866432700188686243880513727116963434477165989647020675270795395734240830946762434821618687505114989443676645251433654272944473172131644655485948078258307627772570843391200228756345268708489052951815465671213936194248370111151190971518209092880695029625004306348158855112098063460911685323576068253527332463677681178128766341183728507528747976884027330518343614016457070450688356447748106291370723911382010085397918990347877479953631472634679714399791736835463289621388222874696720418471647315349884717758901837534876743184330908620291278970573887149829176591484442895787595602483368483489277556057941201416415830682384485611345044321623717327141772813030080274052375292743125190691130139479291990785455537883677094254435642676323104616059774565306953336149925086817104301367045617969050425501540692794655427877337509957386793879678815786761150193562090158212692317264221508571584901500188840993043215049606622803788433516551723081665215423438677185461066335923102675720909593730317144166902276805865499245285203126043834738195078941170849250153520569025060366645098231207532932399107568325822251580970657118545480532716612758683047318679325315543504419665217301799183334976162881369105521352392288699466581168964742769023579628443141695019344321410782169566812658804679123543217314926233367861314496940218420531267674409433441671536909290463957922150285008143662382377624067059929076237899772446747430921610501182688095014826752591157551351702780378020811307244655989766340705260515300562797868910836087156973202731598991428068936708954470866774018303431582599877777464476677010819243253130927401325532817013214883715637839749175607550262823700804184488438525067241863855893001272977888128756083939358539310310699111794175447530998621751348632496717949673543924000521514667443766522190660435516182500829216247393343729093189170836788601964294425575169241500120692035946972893693892425624538091750084260919370654659858999472975480879728057090249481731202563159401485501634697842419770518051565563039121717134631137628454682036322843625200815832212745983002652055427241710213236684160740377003194819622159355242434479273234120327124431438298310433531039526174001205748204759729292223351239462242302862034461440873574424320876405992090681413303906705857922502171152001529776274133137663179615578500155646021968418612117941139274302396281190432186975115353832562329523900017457631929917137363865385208208826456485423414802035460739394544917142800347458500355524184778622668918897819945804262646641180765110542566951939828206961550695411359340225132624170422396705711515787521955070470177163879470330233213382343692023265029044930363273346337775574926931575981183934777155488664062355323846031858708772013469777151634244250686786574037510076562929945326953858093107762012094157269984195153869399870859828002970583434159207674764431226339607794769331408559621615640302237591211659041474482000085290980574991313825935752117678695794092991650958808381070267100585665415370680297506398371969716668728862865264102648527381901071019619419513344917693550954893825844128787776974381938671194210545896188309329209392676429769653152626033024625940741031960959644954028225661198032850153685140563794725670214690534468190454819160396535802424310884891279329670238733223039306703648344098781236538574196962937568160054597816522152539269582640263735182390726911624763047345860721171330471587711066025332650162131793865574927489945763666477151452698979864880250964952826026126314924804414575571934498562163689543053517758445629618635949011094146610774827791363468836206768497831306099433355356574584154639317501165648296256862767279260940445252224514442111826898223240615012267420012065094351718951970962911943606962936299066972588478312271868986536912760066038609791658631925557486173261271313911042583047442784546544506470196316440020491380214449236271390999669640077317660084939904643163482027852415992685431916093559455192687034640206961371527292193453517661820428756899634300965468933928122382520865050205151246396096414783105915929834254043818778228898620157201454275849436307161384338265699683347529523388479744806039408828870551118664014670896193116326500357760879839458841109208409322926484161754571115280037066939775323704028763817620249364669070056686330215378332156414221632383435462472527464075205192925638575090685697561999144220747450002764600854109513068842294685051181580122112511351523764613804631422638063827371377274992774886286545885092894699067162367379813500915038920919835114423856857090050806144412013856136223568640940746714207715146956690288041807920437823175121899047264961929015152676970975812983478710767729234155862414083959148523273814123449242551484020378518031084383553454827304253557158684314297924592965533201030735664817896427555983759601749108730777312307021118386542460579099527732175891681841519602640462523770610116956511727785576029019292790768969632883940574681539712130646927199546561215355920162073187467401958267914349904431120822740887228809951622006296530979939680453583683203755634794784199542041071824005750789218796785897001301049647056380913592113126774063620672811641951868034724589513987198084379786129449059041996234612416170728609093980681190867018767798771332654404621940611084534310751363355675517296258466193389363300057352595322855413680751809736407986424553847362478919136947830528649784818452107582821667889503608181462293432168697455351223902404268316050900344231691467312701326979060277531941383184194708392369672269053396551702838741411031048686407391942345326931356601436848719622561284720121935855637411903919546249103304456485191569916066404685128749034121930634267743361331812475206246739777559066058317676690490006101138921795894171422771592954400036639776153138727522598179141942202275898236511817686383718486641358947416496453044235120850352903057599932750637647224907873052777988328136776313407949122893546058202158337719163158117520267141307949345343065390685172122434459392439686150822015438886986767619882684445557092569816039812501792493335046731918534400221797924886071885680846377409352503097416823973828099506215883834162999036335253911336566135990449974585920456188977472108634048772828439602864545178755314392148002550472736904626523307364195319400165433371232350970226852037708292342408693216264558615869663449863601597608599171297262922835063373672342818102917044213558544519058913903194873021268223317541967152369109489851978613301621209723617163930768380047307398431693778975641937871015404780165111635243084105321353388868240556581335125778638272223558040768431363949892166801312770810171134626014207032725239335538154438546834621788085871269488017979300514326447178210178719195770528502964886185655663879468142391805989390570655335886952186312077635126597829044982530320616237477846929987923485036168504049991504425560634509876286579459442562315062192807309003001969315947992772681732841527586583161990472852956823408404306009562043042674287998906288440857174767251124357790376737786447558834006874062757556092839461006809368029577969714212450230426867891950382557034577089669905377594403695117714780611513691685808798976272250494565001564523415547903427844168566324272045120867990723413667562687853382858041530137236481264894310553177286728872598188127141830278591966977806438518724926764570788326788434564791257735154571260552095816364548335628799517973543359099647054869152914703705629701387722151465010383066017385808188603624918660864915940925233798669710495260360638087392177898538544294869532539558771590094023322156678339303998605862376831940952649235435112273133394558851919375816487210028211317543698923054735405863458070488854638773462452915525103722332454212146096461459319585705358556098108126514401108933703353081510180481225831467195644301828325518436018947842420847554383600669738925407099229282768648632101086058814130200793408384636875662659207639765972589385140097403054195282508507262825064750870036805334529922864360758696220894700127956125052827335961145852506743242004626869477146863259815757294123104049585923234708451950553365632999311302913837362195618236177613278119276145362811828210926550737577134451037533718190370611339948282789769128161002236014046261031678462310428330288692657540521595985365984279295149920068933447262596326523308783951738973197290220549828603577383795851230836682563429865746488197255751500465346793027609501872926405609725033469042446105352400750181909821429566198007267521121447635488397106345870765047308358310031282933946040330283231331447191615959954369954396861963236396380402029852894231791401202805161272052632506023951722255061093098063396534338381610483800235784905044599805312647267913892924389170807097589212464193452881070426527931992708066112656583577646460923276299625296773169640584851480563021686448603310349054172182077702308081050722343569209537766571182240965429560062749532117050360114392185376714200986684473985912448643385839446926725310448049082219203408607005560359910465854550085990765314276645308687736310567062157069666841878329470842290676552576352869127805284222069438332554059538351968531844609121542957708266490045635821902081397715135763433224426649056558347565847518669084749439588234822805928991094955954188226646491306684446874687829022539104554742918042787356721630199347992261617559920796686224683135659334103067344932833521570693669451118609870365331751507241333403049681754706077257934664882370398024015757160928724617478427017260179478371714466966636336937832188803579291647507926428424749964880870017996136243501582253825834928935599434671236434618042171976641859424610871793884564156511732255068890572405939815284604768497549084022774117944326808190758066775920830222917789894233690847184984278640470989602997076430982607273292612453467228377639555929097255550749475584752452446329293741384846815856234085864274498863309884470718111799075465616168772044379811361904221815548113240676685761521138303046799933542845068564686864640004049891682150718213631196221663246301648828293041661529283493320178991360029209943124546269475477476320294514984270688183260722383068481277063209430226540925232831126741576182266335429648400438563636831103499539420180118160228350502372037145179375768695484325231581886138453841528501346045322500533384047384783177710645039025340110947202355844288021384800361494135527191809785793284527895942895553188097652456451323393917972162946671168859317559304527104936503091578470974649913657865992192088377848483737920532805857863591863861949692349455220307282859885338649708618679333609812917170544063864221372232201317710711080731529325004230877228378787748269963184970845337034005021461168417783215951097826095769559651564136512751262124816655822242266744325485958805564539453969334295663744833431705977715332770632387260527144148201812212468443332707699990159888844944462975592702641454356768214325093468256490061131517194797474468048507742349371376427215677999625298170241020964132029850712035430604954880586789913953379571366592139511160398537000584812636385246608783392516987221547802034181817343196203886338149589449229350879495419646926565793776387191467975597805785251299492954889594461614332211495632786167551474730621947487712321467775519147036715102984865542369182667939518613413958214701431137407347369897042601152924612968683324000348814204571218366991470145786358571161478109117788788076035053469778127923857992723609561737485524164971417568122374507454573949784412498961605342906068189714259587123547408479468953200372489239907975909033385178088412006032464872429629785472865237523054998463838087918984502305259561687580479297282197475321876985501681195447840520197222097871197042596215975348441337098012817178804224637471619419429849437465148437307009254409479299374492476565589337194307699770718249247922363919942378446909236662260458477721191046358757492185295492298390520069211847226547570928497862447398613513445273310756983045215531448988976024077212125141308311281643848962615221345511592813085781397995895617181943195057912870307710835056773819732729024751987040931921403527833784310988003164246802770232980509439399044495181652406824218516970603209836998627560127944395924867805820143877392061648968921959698230435998460435096012190094893460787401221528311789167545434405168310069926346265556052946265752162716248272517813767124558171371109193339661643862545745156498742424853450912425120193684609461467639558143211598041793101710077149215129333554053167427939727091082482599671570972090281337705994131978248877275367192397483978452196143801573251077437773148990949735821113210657568188953817115062646604249575450914930867951296720373558272456571240123319000073861847817348982926575582965199018338089701533268705244197859693913614654381758884985820258933630459959731100021735751215998126057331458660640718479595818220877923739492594001437061745252990012202059731103180022939177830436689812449842449946957295379894743293330659377010737545436118046075862020456099250165340249255258874334007670517478698474260815906902313919252514778173580324719081241276807247290137356706046876556886234906778256326505282917730180699451090474968649752004791134539760073731875671963273224330974587761795231272575186451348982350063573366379407875354848326476292547310140621300238313414217552301329760455547461078455068812341900679723912486832795980451686516477531959951318551005372224205021526106362979205265996379984351067126696907128732663487755198934985709239993486120861618566452670447213940393669319827343788019766977527483458316491898244073471895915024879639787444721927328714152189783380012809717456531965918244002246769500442715560015618605967121664620899759373012561182841211724736469292190963540565119948367466502659109341880931708464012238399938320874783306069862928605865659678806346873276943899681502719453894806846264514163819865545160410011336986733806316013650520964302415074573947596590075608914896264639693418653708746982798782888813919609019465511512869349336491600729901994565009337829498468867190976210178746210383780074673926836879121481947875381635890922335605430980905721010240593425777528118221742569001562293852065525494603154464400561640250937855841265580823506974546145790829048083487932645369725178336871265661270089261417421332668011377877919561642224196586543990002669518502224773775862477046007213410675845296732825717331371226084182231487131296425914198311990588538885716621158500076781230598533599858767306720829683630371733093493926235027625892871704610859357174750381790981141949121746845459978287894423319764390622819522252417550803253580241369584559660582528487693456221847229681192323663129909306152583468116242897081162289958906796170834465105901468988903818850559365199325699053934330648580024832712061215437996706789007167691287100263797795869660299829686723438550736238999673391540122030331437289084795364303424289823172149011280652714809947502827928784943910834704472665978692478972133894762834662612471241037769103082787807210673634104759441431280446732950920863424854595733151510381272484177585063216106614615431223975044972019521566839245830813865644229497392815949186197460119836518659684412424598519338059855231244946647720410475564183468273364324148614431415684105589284443320015476882933257486536367128729296280450632935645009650257077446447420347076622536747974626157345434338778149905106445941043905001886280488041299165505443439624699754306526726606267322026051851833217112358789488787167988353047017880822184185116985554310900825428911356357538895170252409488905377400991674749525393941504613026771439859742037029132168071292668795394374579524132820356871259398033725414105460737306419384824538318584482513239792066619564916207175382085220314006058578310661058470258872434523737150560129697563262661473735026714074885698826515524448359819629563677574382054572707966044853737784251912245984365547369199036545934290469449175391470160500392618163874852509644826195091745538167882146244828088306905551217711063049528702642630720327170692680909752460842506851286502306973233014546907957300579916155175679474347189517705018490471784664287350945991833427084207357937102710612070162067338574475683340651887613487106713132127153702163606545774963134420293718110885253292698039243906685726284598320328031443974361018835557227869434780451942581184971975819792549936492852724916666194387798266746521830419360809921464972414285737392905237765972141146916475064130946463749196492317635824708566434700973273593371483314835313981146805357103148691893817836170857976415540115141098533285482647160710585674338350860323714941144664083682670419817025937387759561077285777485142407571796150118601542364793094973007574758109639154531701888899674943704418543335946733584794395788728645043581165665329922928443804305222247213811677222322744305232357779719321874442210948121532276519480403775232108851210994849154532126137417386450392380941447273060972917877139604967924797349892380133793633893549073927720421693459245939832676678898267183001875024668875806892166391151138408401121704014195661596270709236246589599204242017614259220400206238205031961306578001207145677442526057545951588868126788682786484144877544915788968422033981519765701762070877566131725069650278490208897147893035494554586332261705784505108444564059520410761155226043620809723095255679933422123563310892253428957787203034373982662558671773172937886058728466876509552073026277683016654240560037159434907318912325131001417613925729926048533397716213367442927747886928861728158875648121457043850641808508916667968506339963355356245027988403401664317790636162426698208149955087794719956915957277905079805387885438062714217426569144809863471117233977813116883327192677507786619589427334368474033060257994904874761742225365563127749888260853754547270713050771792349880578476858399765783605373900847849003167842267882916285579159310033307722681503963760775911911322614888601671526181483235246767883138604899283407117095784854072093065667294135415112740943080371166304781258719760606262445712996993440184844209898447775680027743349119784358949790097989174206157217007608123782164240812004020283088947100822322155654537586692649819371257306566872441150454149057664239701431609573621519480896182461750726536383936188740853726715176812402288832094397326996863900014953736457004641868103241455016557905862007445489136620834823273225238087194889117660014880289413990732791704404333876493800544258088560203897038223763503489060945543009675143758585295911991904045189267440232195432492080793933502444411310099128528374927305137038538179878215564374691452442098372041200496478709470303115704347243883770348250258009314154188638867965860871239510787700780983698821718551120341728021221755701585616331898307390826043198805363902935870173830364627073356147545589975682526618706742843751084250239763731696647040072749166793976440267236849146420276590832262281477375597289526262254216630851972152640396398009053951179529356538624279238568358633674808843158313063594271459990931497311436761744522569472869591375924907323855247419522978872952141688020905285780099490461545202063494055139892079473717810163469387568383746962636816637683960585852986981370909237420050149872662266007878810832856191595572285236801819977971202006610864673598797574687081883113436641643757625780245383073029277209380980146031328741590846218053357460709617051089598644137301237956873621309555745482617929959974990969956813248080100109280158534214288268960477402200249712895061092994188832968783183043001177283577104563425689141986042283273458533622658388174387899126193526560381857290435942471078995556329612963146231902496502427135600444774565792048807889996046256524777756099547764613135842896473311628132004820659361175793097685444109519345923439389070419410476810628297633010663749131173949916824188407691601516982793772026028048423477716537818389573566988436244260844158090621201932945154878038787611017343286952915039770223564664693451185455593344882514460024770301361983768150274348062258402066427873903671931447188186556626829336357867015303416426964813668667372095564448586192942669560078156570876225814989665853304310787558740916996616102826427637724757381064766225877036494818980299604916898102817414098096088762117383369976147041677322467501951893272585360637874126590149689870086675677123124670700349059743509450098937003964321229553418704227709063860999176915068885295446838623035623222572312361764878302943017307254548998698418925578653166594958452554103795628328885408538246982301718142245032822366992495748641429372581642791126801646690341227135384750183312620754333929009197960567637825105433793291259978808814816218345390660180131448301703249374570145313029204848814667281374861697591512468877795082918872255130993279341572566069145176502511170122377114613874882277678511055353527804763553598270942068817719030232952453845966351229929240743802590553874325385898825680147139447012100474147328164633577605167841758621118578082594936492745199110944101760250358253490723513647038155072709518563388469122940722218678013415127830120428648902112663086989610689979809342324964029276531065269066088783422844385258822967050664730929591654687283031945607780701574162114283980660604090847136768362928715032619151427493936855696516134114273083271854907959722794299849061427440556525256145635380682722268215540553473226018057363324386495294993880512215167909000600668695224529763426925247620253523058452340023199168135395120067708016440860345986481225025151984575815874904633056464108616583423568441929078250107532048809975463100130583160458523180403875588375747394684094121030723164072128902136810002341664590301475465225029669669025019194951737548437709531493319798546601431550429495945484854850814535430959122434165467996147297603593161872475392498482414149402903539051583620534114121247108195161656355080940697882048632123643791776432231844366632393101300798366743945630267662638035715182028749309380129066767895636596051902035238303285197330551332404009300476048380819493864437199018738304317863203813604648375891532643320773611961182452010513146699058798458926226984055395813432292273929826625603714514698305129001130821012628004046706569320582119992008165243429654542898775941896087642301423454349605420452712953169785823165635922949488661358632639486915060310006205741268777342199211379055347197184913655328175029788212985593536428827428376732315269240333612930801618909782287421877906249995573719383118231782047350369398903780595362285416581874096261021792050947010298496127489528718269608531722401662740704138570064162822351274272315843244931958304455336727024736839870091204638841790367408767298252287292357804464989314041912643214405173487821893585532300373431142944939682104090223467798141916172523326417269887190765645951490940781032251358612758914101914328420389675179123434386639216778874493500059295322342403455933417779692901601322759850253340090593976339818906997052637929157708524640594989121978534853696720813753925962171994724904764294527110405166043497133696711050489873210050150986432852718766053596706385919103190521957265999389162686788291266676991655150738646501935115657051439285711353339827489278054049400297962517710883650518414977716882972365296808368902774890540349700237937945404532703158173766184742282122704988431879643600881127650197483983436395745827129137482094045793253683325934670959152779481251952607094839486607460873370601434193625848870362938073796278389799263674826757452871950963824244565271589489930703090325030122851849973813038301478235143104669616125040087880437649551145835758873359091886238665232913259554910227801617515430431996743617679404403963841049202666579892453950010041887878884617202688909156933559544725403424623192525021451264712144547035561804448378867642415693583415629325231620509876329287964335891454343458859549824048609283334636689404366692122390170051463817808931565949626737804273224313041425377098628996287389055530186829740842049950313440595304135354566098742313509436713865777664001926315722088281841152673546980217344131174361780238169599695423429815800927231296992420798196858471028520128110399857999217031841879032536981441937500759257127236449794585546003495699473414331666320880829722811733020225739467290668334574431786103530116071165155560659291115114936456239035702622144422077137421904187967233582215225946625083540088750805236756577844291484232411463852950859317067633824333566761810652019135027263245367405837725799197650577608260798986265572705320486686415722576951174756572052831123254938361989648720714640295983235050650804117876109637223744155022053435224492991352296028022041653643000005663857208670719681466352163935750703718049831575997944213026841509126745911448571019502613466371746871782114872600743617438602785087338249511757500591132411732471616167792381068367435632746884269409618236867338424126579244952022968915736159119003950683269863260990446904823536209012413988990637938836390906467673662943198560539422560594554890736067601165965004996888491250811307322458281743057899836161884479884485292443381964269870575718923838329324486076981183169274646451656236349743765979679440872587149869499208251155486952326841717430039316880583253445238492251669977771378527587753127030794684268521192100704610858262949192035814639669640106106576043205417033870497718507572874536098307531509585854311650956963464772741234479676195115609788300261529637664469125882191267056229494654672858918427263251323979327249368487952453269661148014226818784917143072476621886241319733781412670545949021921963190839274110786204283376353479128291455992762135489996065798516798536652482011460358188015591027569027868360025582905640684955634453880470711859805252776085276367590534533468866943849759981091075698374699125318515133328635249738952613574333509964403108910521727717934463460584020962613485814055647816068129342842915291425405170641931789082815701040418195419549682706452862520243860654805799441553946653531206367683177556963726633392345892475402010079389536481735615868674338281414582142670394240243294356192957230474475296093618432614579121733582728672435839129525593440643290573818293507922869582786708878720978112685505100002616635480409756829244687941411530770687718599451209417591278955835462982404394351742688915539563712180818340710586988648877829316630743074128486388735826611600805659397487201067059100058389962369911285709661143885437813545507954354004086724856376824875300559943186945822580041097162191073204957436890236973123787076639040494461908444468241883706008125027833106548225783263433407372282634515519310146699515494598881141221560344684239320420425908914518059236303711073191707495402015683750576055106807383577413150241900739305238341556078391762989582106667082875922253687234648735375376727365478410391219632110134286337978077924018535080595448854566671101199405697506759754079166542076792997353921512502994292213492108672576382826321098789419102779548569292938350964210941478743147503407559263040660111044322829212876544193872550350904406013004160985881579078110477943858301386654947252356039629233944470680019483899323711942809611024892095966746000740694691722500468167479912470060158057560309578578058891157591672622080013570603548004371732830458657866852393828718403098305418442453922478179411193793550723761401346126779016153947853918434377680983805616523913098049447286845092148865590354622017173525966113569362143822778850917592648350569206202596233188199229084160302893181465340957487903820475207323819119051834216573295803962611829204773386879166397140346405885194190122100554488284392682453412204010552218940410399967925693282641082670890214542377611015058369359227982101851792233044682269496836268552699510790576524426290980478739629256773547805059866194283585481158695467140674357120668870343549605283185300464535689567459810058387047633330220127614452545075899478462337491754803333531478266005110518837710998960622585997737098351378003858497623835862374903534697169249244837594334855246613189481779863292556590598800801515363378861444415999182805203408424936829646196226631736126665592816571617408692866242387748494896857240592660656449505334312271429986160998333182564453744150708282437566656647749168380823683057963510655733245356136155348046393051956691367506202426450574014575690931385557312730524935907137498190355123160252676380271705854495230309358554586829589088319445704793220451527613272405161882141041111092154829264683484977902813044342091865846118305366902567734947157458739509891402729988987975351749807544912721564340128531129558823766829090748683246327433250830846581262709400159632631141936057866315033455428688471910369090631136701388113344968550148795328394686063106059776296320287934617323014273211811656703777143247688378695754113700271170116653347171585130549659954522500863537165840363635517947523908965404160323419955062016874860357534288707334738301604615715847902459086578422117169472312596284803683064639877745340352491410354356628917165654193148444226628688790021782209674044330747881204297590602595783076524113497786013765759627745698079421905715653788709614632735969350679161621585569129901189395454436578222295739187084681894257528626223788848738187698118719496181189644449714000807410308384262734440658838751419699203856230635492670182711968606381123483706993618882511286812034288204909491356682845608201287062782568948062737271410550673914244156466818210200927793546711612633184737178103070323981801702244578673990950034364142756709375126458338440327769698466045613135270241349271180056935147281039006530864886384761752321505880798399761673613600077609966813212804033221728130987861016567568496372418195833111269066316360852316800534421444130319782584241242440398098325854794315345947575474778312067962134317534114487160155421895835848951914352913630912414815820630541653511970015635062189804331248349026773296412188065740946279977924486823215734983909575548627367355563593276813566530796393411508295385671352486574768077258896640855767228400548949465165834097795865848640298450284806626917136228866809854609687885692157684941371196671317266113041469522187129468515354011263553634930875400583232794435587655219259697691628736432118645546576954149962546105948322091154895437457968438443277301151256669201334996293766636480840994288486736588996810449229048755911127633289069427126714538707612804650271939304890356168490425966030025333401493669223685375761111729527903219547155766629075332699623682113947962314971132675525275638737211692597967246429867640569778556432351386383559943060356543948751704811412734129399359726310808063885879539500443925315634369380038272922374061641405823597245269046756471967044342454946872071051870526274870219094982368569677038896621317578686814003338843008921609096009603159564096126221031515096237641148807668362607833640975775888691139217766401418827552390863099908218233605520120107570890212580612051481780809821964067792763391763948843750093461169097067068470588931721054245542741059444556726951861603997974999604806858303929475445151962303246054749257725542227476296081975060316709561945437686820198534823376769020735422593934483014759692647491156452928382088232800127211998141444029170341561774333074691425080426115444266947291365323959231229903096419102013201174956495987408721771160622294442223649691245995428916249989103468124693491475792408167120753871845083559294172451348665495365789336594914749836927508177088728332303672679037058380922729669685028018241571434682561773540800453808757280868909278179616818324901479103541936917546043854215627566092433000405454126082518110612046133997999151404093132880478360010107116849545264772913398759887949585242101411227500202488568918851069344523776237475752573774992126165823620932741187836482417012297623238418950863247975701936503173158595114976044443819743108756435696859725934287504765974145632521814724141707370980903513410926277191960354802854714082412438440335623729042330979938828291920919766568441915236816911506711527755873679533314604323930791603299785964374046929142111988280568436706608228472203801809322332495059743364530924147973245061142005026881685771286522063113022364014858599756293842032500553169032265450775834440738220327329222897862473536964062645693290609866851073609276459361907302104288783704710753220574555184089767239221873847973001320826792312435556885769398784446679734590957561372824194579289602921309430497239124875762753374637480332471507864997313877739941985839179645211466019908537546451025352670938694723263919432793907485121246742789434980606363832380835758954879261273428774921128584765547247217885557614421327717860801137994150692230435899791720564948768275936650412230868830856276153017726244881224643859788188906148734623494685806828708811349450210892486641708235749983085328627400630336368380715166022709500710438763715128330123910137850378300603623354879384524593012736706726150996769354378564386194895456329473346108548309787275110623630466435312687991868449930899469155179976650413145636004352125937428017093047918572019936894536803817718489260914770836294580034659793105653407589511650865244823024835418442032199445400055576084551645421353892787935669226228630909281738968114649469939388020316440307557049167729417068683529727037240918831126876933818269664702051572860709444107264868401238123832687742645646008623693589225377149186513423561370662215440083302779289522424007392212976219978827576186012083008503817615154205723676593612761860275556987420335948603361769506250456548463297113580187267986921965924583814390656313556821345479278942796814527390218050072562742703150834886373429321981728536103703399700796263878096634356260096926342777041444092670134610911848818479737828735894822507571671764240487707261811736880172030415520891896921446346747127505182579435010756790048472635297006667177636511972476568701374456907306043364104562185799090753400573765513482713400818901814791311559376931927154395615351113947773282669086942850218072051857206200575222030127581379222885571023612850931808223582520706752966431364637681944523833864635480234176145939389869962113473407248978857036166427843422723534540055143714276876188097080448650179743929379187109920339465737857620267868897333552242525322252823648906850201927133547360811358196928769886311887079860949202843540521261910994267122570329691968090815886672386740726155626290010147359014259326642038322857351301558737673187455081907378840308302242570967780655629894730729134813984611601216666336005463737885742878184738034098724153207008187417279908893419973019328043232694106961979330429565474919497341393786465939640330200420379184384844184353511149313147369063567224251282857155535654224719814153944311041345409094804436988478341598026007254898664791254443145111355660000202777606584222162788368080545495355382191684510487918157898879834014497739204418515800151748496531068680408027960994407873484338988106536621811363482714175873366582284716442458515209888641978865232990975606469367992773873534239617421518569662334342630383087368561117551862278804723154284612364601190577835770446898234795130309497807436729069565160302274349018926693691188911596513935476612791194787575372321860469566108122465577778137920761760336803337933694103998431764610399916465798089732290554359516095857899785384468881023471199358420590527537005485293346193701374278337264421627731364891965108500507477932214430661708443922917480876530837918119963695485440371940832676794158386005476358303280325851895087098532087721255571063233479605482525498782272497647473679670401660621093901286410276828800875308224971581041349141456006998953321759770716612098685042592471673719981940761522559384068453715335753261169084874186772172878202263096664311563933271545834462021803245255322316228214801669151531763818215276766546413388045085821561565438795102980919323741635339883517002098286090559052793605794858635795631371851907115081452471780845124470394997188408762582633854933932882258189247670475787278240384576778436499723778723470686105388078472358938749529794766185850354999670564754138667668798770358502683632321040089448940767756947449291699499762529415573790012773880128067334936801983400015214522850120322903874740054120444323881710083349827658088305515224628421627961009215124490023581327407459406014214283310998875475865370065766044615600848312961365036682881332801944553702300978899928296600539161283994083568549938604783266563856124466533086692802384518950978072523481764773228709091287456076897095176846985969665466282426109995555159509867259985516993923086203628930532407664363146904605259237791165895514032189187706756836558041878064389216230936033144914472124188546356002895919297880085004065749849817388024851843106366555898676805441426935026494358533998926676705078092346625977075666442028642627321539486453649285520181841202340357745653716736305471703878470950401964791216498537527946501264972230648892049050836638997478685109892348387939115216272079452927487144345566628486315642107757385899457701680012010585226596269575366257130131778180383127999175726576785994253082113424584426037250413618768436869270453852885893895635334662442481500028500473976591177934515079235767261589451322521932875805665241882278445352180357875670212998755724105742263031178086233545239554959308536066402789022639229769963232061236005457993835434309030503870651641321176304985941777365851011243531585318419249443019743061758951068268001451166739221897213039328459618295071915553110657441319437481286276228350932982527995676014187364116211961119684767369694941539603133656988456361483614143508474392996690852715376954388446396720433273349469573388281019162140587081215342277152630324516646913914751886763386185526974151274333821124207201239570728634081684930069446657415694733290768866055955438041535064013795982736064645258993178203300692804690650460609036332416167618694791880018427360907525279283912693566379044995073168849011398626325390821067607110498168062659991570478348067188253194907058398724099888999125247911800383008756740124891062463666466960464153531177115696176978386420333739560221684631915494911811347196073203087571860881837514209259886306115070160956893834950884015422071672613212866177222045224100762035958694097602610273146490595344469720754058762475419659823967627099835751452941474858248541728473126157295582494555766117469171050747980505682666203726271820263194652570197486704547441879402297348669284255627893034013561155863081219314315240331643184932317121730038848405799627623557963647613341542381605882650708182107596986500147542887689172855859665498778521186462874496112453018323615564466699186893261556062036411235232981532837607496013328951495966034142148130431570170180887493696850258294305907902722427991336009413012026026890154903423142815729115992759641191070562256518943954852148030359253446439073698177117079378896104542420167017319407670720579992138503445956897484523520091727455900881666858387808845429291583883166401589687512007068343180775438667488278007430891127151789231692473536821617774334500673998569691743070937294333330536307415604967079838577475073423836493789287973296456983685817656753091772223292622622795255691119029403232689694624314266446057452599583124767274719521633433239889934178351913273487515989477949178204167650972824113242886606256408666784415728197305409784285410161771702244473017954137011676384043233023188047449410276332652725448068619938560564201412538055758105217609333003120945040926343792131341425547742936510435981776102064617381496346439409002295443923362983830690536190759073730426276700936259208285804670050862778388380897579211090249780934282733331678112945487522250039718196862373604903036592595606482142688604374256395188932470949880937909408131397961168376835925963618202438833670111336915112940760305951320596109914226788455842008971641610467022190853787375827914925351465549867065332074857911259369803560479303125605305016319216914415859399286296682271348711060775462620960452658985294945905846148653520256875278543415894715241875935930766386454941229959430674788430409858733322707464999049004439426792460533584327407566854364404761988990841037086606908191792336791082395208535922485647789273032398668983884324635909882465563914647083656798575934252184115073508516493433057662100779582531297904860980507902987208177221832971078600601021080272943400010782062554388570583507647206943329858028250295899791827490151397934453260393325538925772257687149627243474780621254161340718985376626664015423362193256421585386770361967652372957659210975466528339252644876236877722351696551182544514310097106985936005517372868841894059534291462486672349083560590672892950761881441027668141468310305694693520987244550386724739176257181151676992071130780919219031899728679358371266317277463821716677870471854082370329279321643554441951697500936320233460062963917525254768857617295372973867322958368488284912985846398544528950168533517729331467382771801363251437459146988826314129550079417279413408535732054093235991327602278040368665543601640203630273645964471447649045054623223921911242941568775025430440905802974456607144498152494678077322095595335608120160225701350159269678379806153405033850156412362603981163173137748967534657900319489323696952509847469192963229296523927464289972792450546036907962473023586347558311254955581047869397933470426193219154170638485282557617940772964710218482627772153484468649843191547343791461911875342534287930141639258044861435999550087099238386058127722901185450963750488669250724469275406798970576291567178701493177083140448328836636625501351736763210976075090134112048945547197641395251132324020436750420848289777245331049856157851204447057074836180991246743176344297517553066109050891945160729786879973535123454624839526992839400199938078628863252560118589033381473090258546213654350341634052938719802693275756232914540977392532623817795817190980117086514386761034992865778284683440425097788783711425573197824469377070560954340137719773954154996458932179420319203610892455656820856177302160565416617583076382554834751384394133726958629271808541245956066265777261040248472631373235090045109498770552471575096632263708597346869813404966630589798918283665837627685353004742783491940434500710740849223895206405007687322740986759046829887874943792173683551911065022115593299031756878472335384616601151701687325665287018117736157108895594248523825315244709844985909573761725595467317616373092154567823752870673757262470534321915053717165575363073607354294716720106042263201105562534794777615395054652789048242920900169875959374806763142390173460819245892598354861669573893740630380151030677414573141818286766976286317939092057609226028549785363060893038468021941887892694508522194457907231965674783388693475898050382449579372765094273082538381441260601739606998562944307783569815267088307706167956874495018918724927654585068482388921590210547090775633864333282412750405853060775392220325189025698134103822008506354221425012863908977551189750685225668383916722293987288419382991639305570831368994248167509682860368698167137112921047502124239121471974985785432326887072584530366925267634106558774550406463801549003460408885386676889877280444172208258604208360932196949905484140547599863023981186760854750813895806472895812612860606897624137923073263813871073008388955855916837156669721000622936938955490669114634098286203164084684923945079965583945273132429441007560559244071523772389887525861922228733191565078151370669480655684863999607571022345886703656643873179443746459011568764167974113889512494722637117773164734516962849236211433374218359697649601672143972789749715860732409518912746373636050161184281417921232489222080787508510867365880449629418242757062645598079903257013954625244504374704794638049802189961637197400085364452350893742726203435261105803720261539038445565405341757295114759813517919593332982947871239648760449108666786441734262995150501053043780013869492972938754968444120631774757086347256473001022341542833534163283900698576452217885505252866814702861753234574544879220979897226987986822427076749303800942641331062914871119908595111888014954262834674252979694035222142086814330714766692079196790585779298083002172713530685651427677674780725237611644921690531252540409630941206562765606107665275451270505960684263138902551289776949291383115631282230845533563355738035579680458040394813565735543842108127279707839648905311631579276029140854159833023323308445745795859922450967666828067363790422916587689497573603337252260518740339871889956104648212563209190427406265809965985992751859472167835129422729534927008554140081672505126254752519985456214027537087080225233255322720392162797343738305650722215103382380198970928996974640187079416662461298995708706754269228672037831283845825830096041510095521405052488786725875065392294425698225316236112676506624998374849267239984488596368562847627232948197528883472104894931922924241621809119831675887259682417354527828743152530904545730325582392769052312014855954612495463735195626242988060731327437939946618226465724021006078647040233006756612015754142401301154666422394134644354680414500515124044102608989349361704331308238432116582290689681192295146219187395117297152679373641564232132163823189349041220073833881015759599443266456113677554823936914591863004109380283335271463450398062191944174048434258588791949029468243732278095094988697794256593612780660472243501761374630826932056641597769254656226800932715170516854899738427068933956993087735078177591719927830242795960499367551747502955314504761380725542936706152937926569218512163267455690341967225256872142683891114072409883762414151824511659767696377006456404168334121443339525898447299429273607447993534805674730625434642958552340022734374493492669130141938718543208495105136132895111767503701215668537073620161100925544774219624526923720618202438337129092950623796456557708619346021948138098609306250814475675390531251282742351811090896439865636861166354930525081250068551952420707925746268228098434651324129768501436526888963248894240066985251805274282192390605009327857265320394013384596214311798817372244732557277946933491509732260107242052846815090969733963717947013432146713051630117006194626064159015412729209113956839668440069040967837826354766425928392744401501807881515021623659808826366649015317910608185815856115843243538226840895038048201457838430601304097058353022946558922520373581268615940478024316840985103659043292765365870593094961329142512455854041225585160535597838162190853307331548377070157216342965442038722550814670257348754711509741235644891111385468977196851630234172766861051516995808457021115691502465620400382548556605770311320807069837855918608095830164696335366543994225547771470404088347322686282380089760032728022187075998382795537878253671693099686810404860957797606137002675822344357423512393558122153321440813521320161489247595360208355913131921112690626070726489523956413695839542571499182177490941934765869257129644448912946274308968719878229498718917966730645550984780425781116011570149454221368310293441518478836520819709803283146686566795441078770800730371232823344440143123007468996023357111208491130230365215658197159399892933864094989944539762252984930411346414572995208589797292180381814953952207252348464472705805511321750965336802065427638957972154951412271858374362121308309552717823269963151263321982204356024566831773024554718886537586770164185841803817333838345324403678297178580950940133587630456007044695062956175546042021219787818261422090569269618469767833365197342698274710969786684837146259788599221881284517202693802953431245326797266124797043368374687374025517494418705393140056899260037867757806121635145779299172105825650463317353310318645050772036624141317616246296854165654695834267197022339870917877459615668548758987165855738266587895654725902544829497664237100271198374802223282911677716468127280052294115048704695739377524856810096863800392410146826404275337061691621922859116383884835414130509490614154237649212709684957744919831493297705739852818024930604312721046376806193789590834423788689156752568538340579448288219876904229177958737018023037996372927213812979718529535980606931606890846087384736070470896488949764460927752817514900832954609465574043863471945891399050820256033650947155138650863539248852931748988476409989226006089291919756204719398326903052004772687155057675326215470964844122586395274760641205880322641513023231034901531856202904072219394899449190487047089445499343844691219819430516748271104484710854679874540412710810036174079416666562380421269264349779309449388567733813558042427873498734218692684082954404617210144067060991556581419451311554074130844210885850714594952896993849606985231531377521465883097534470939572578916823607771119260905746025764181868019849825873717954791151240847421336308674561813372142189897184818713508017569615469965256068499566689789271888851184695027315487323089381035706415886128764185094999645231341252209241522716282307320387908420720923281697525661051026571114591273106023394183221519587354380825661118917398464419899915945451082896530100023054817006547401156297893908968100024837576075793526987262334869994437286746381022244330890335627981179948345588889498438612243187659089444637656690014367058550155866251663546785506532244234714834308898350129337884222333553469422901663375163942432803354691673640447539943010431026174414648795287472236457287186473692075251226899321376836272625660314169784527333314685580090448698656221787700240879687950953000527352209435375089604691455404774769257913420641536987626731681694227761715534943759065282434512873584393694829942362333392224201215268763566205840346077104310480200878805095234807025289105037722517156643623633534651852495787277414889231141642408945946865624337021720575032483089362933397939661056327062721826142415750984853878129481388922990784075023040238632252220508347150816779405188289867990573973489855812559603134620233346945155918291148606790520802274696845912032863295254094482346681663608119355174530526644507891560931433553934784040829898823310623093881945859097827324881442046766252284773648288271187154520398691120565374436861422729938508907618149341937793108317704378139937073739894882602981981899686648796780816102074808675290150048353305561806352402124705346618786085303150730641467810743752118015875270706118595788277830907856174143191054931384902990686645573120091213290337947145611051846389846674698941935804454957557645388177629896416094679611390471334365280851993798107725014941051367932968768067936432226788592524155083936639157883017141155482798000086691090966683321338956413407159761542556036916114821304566103368643885680368912807430567884094405278091152578801244554070230689597539005980289681716663020001737118275791102260273731143379018749527624443469807216861486632039097861296302882509062911112986179309071869643999854780454399523996776688771140296553751446985058331358824083234482836480461506071600393322004669788400047494396482844685243891011057446889428728169990172223884944917239774204278036903367407087341773738167647795089549011195024221242656252636568103656654598413546835378203541232661193524876642999695319062364755571109312230432217603418849070286803254882936649313946629901280673231352124579493776764955122239367291249783948162223232218099383041245998078180762207419060423661972413012534379149393772384397654716805679605089270318910602692002154771476981526277815784573709794161720908562650895470028164875772897203169602559284999514939911026819168917761730544610458583449690826208588897688003467558076530359036778624712180809931713234497044010956228960269144163553150832397470654921480697224956990502014771026721511027198905228577055030443245533512101349910596434698416747663165692935263964932491202487279498321597300167603697589388089243885753945102231929778462820167897490173001391296865773384549374220687120423480960548429392495674159333020439062186256952432295330426020435005515956867859701230226937739986049401831915663958703357176650133549551095614196287909244320746264720296482556955957475380153500952200034817893496132842900274931164884173700886916851802141414320801449331514864334662879607604881104488109779038242722619633176242197396567091997225314913375057283668022411971316070141698208845930049632688285316486039311264233578717822491996140581728491137639076423770518152140540939034751526544523689503602248403807924657081134279432291541044450844038011611368142278432576603558401780307843310755980542240679139133845358214718779225102001371142610995366315697374549485858772370628950961411729901427365487570995640487315363489297871910414477587179911568848899114523613465001850686662457496572213238244158899944577577379715664443365720830597785404434957871268756037326623557144608376884270116917995248026420163355537200344292324153732166578780811190559129001429106611999069507860494121738601767963534465208071102331294695816099148987110416261672872530181757964610626981299325047461356532321854846745677125308671028935966949663695682428417381858448180228999218744984610462665675093147354245171316049816552031935324368357673809961022944450267823884304003665120232154281158494197503269391311672694231308559461495381376643523973530562043168548093649968764442764539588389758236669004144981190557897046496462218367269584054156685198695560678427103329194564768959942701058685441835810519178777926906952840464551089429525471347951064655121639734852471004419718518988354559815255229597365617028926949000901030383213983864991446218948228972699959453544470125606387835490879700848972016491147289073594051715128905199358637279776514304111737507120765939086676423529089145845355748997904911332818181320008311506252200536683516650572586718440785177386586455853616866456222121039500201806748053818767093343259545038298067451151394683826804590647411188054846655449627911572307944045005692858478917812510727885148336939500415655172092529213428836270523269842429293959538143437237898596157917695753947215494502875026615970962258836066251593626017632273837920871728996671345328079081108086628838565944209560182094096600320183783538160113382345013761919760074924262172278127107284742949258162545519929880853039149069802337174235737033868647994432290578727962472606274861186643328168172846152288963858909775276034159609969200849016326467280586189889597895030272424990151579212134712778909260287334925334975772674880326225424347972312994615111317854775407968529662275399461343036749978372497616253290755854812219919438748891738544255594741294764774821491256958150530133319250843797990656150405988245772216530600997028381362180804003471064272452683877180366776251870960477060410652374794005321866498266344183269254194302722280002557700431654279029468087072564099173267862429183310889823739064899040939794319789693635083806861442013742355612408136673787009613286369842342888933951392948592134737577197972736941738562606585901880583971232246210407057095718228080816369385038904157519613858367237230862409958143296149929242966399492398337324882975505039929888962190130487180395501165445617829843178535229492502445757028977666066901143064241041929376236375427442218734552942112519423233600557958334864950624921366107125520826784041289275460766968211481549362307136482409666553177112119147103518008771162659652692528359888962122087572985164578349745307466596938479699851873288324328535339144936196115709529389862164256101505679490256128869850842108122837846753396698439891152833636129500154145487666007875283010812918435725923280995473725815836633575927866433920119761642172146196771138965813405403063674225959751215804006127373391887608756823831839850568984667461688147418795753660277746628178665558941417092518740573406728492695939915084020060183109461802133085579853294742567631759617335565710128470345674672615082033774031801532420138107735205460376055825681422523979992732100158029507320127595378569982805764850247650237081691110905504331523946579293210885976315884704394269176893238698419462823025567077995619306644315877227585712793823247300309412782923665915835312999686284680814986876963210792003810905561448719314514687615691249373876796086014242804831838681524607840092571729288991217735882095980966681660884239797352624490169778309907710403314252298606501317322849688380358972818556227526978476740099522816557475514847073770731588084302503857873847724976043785575027807413637908496640757582272942087925947700415968288300021337302765036179365690455321851590428500661040175621198795235522632612195018977915775344621054378191523452016907505422478936514002410949903767390320040740093305641000230146826409783153983434069449756198896367450708731621030252977022653324628156468430689384424560333418343730332723802398900339413560160370270216876320369103326918069636830961496306637192168767612713483528649473755868219609760378691404288341409916455847131546254487671138728572183754314874706735686905800109292624857357433643608426301143680247040417295543441352570310186037437718983586733682960879701003971949049583153666876497742949312242640364641602888274074066195993623907650822727113984842422557595805984655493108289090192100399826200568402663303796493637219424216797790663374007358875567547574112315062373609516476879481856086472064821632173763117338805479520806250133657227697728647316387115217600815790179354985878670984267203739952756949347037459688651443549698246545773680279118488867220977209637497865606262872492337517957633727322084937027509060719884274600353939331033093496343589371759181074592920572729188930111236322202726485259578881746316669903183097371893394840948639232335656697295104992942709088568018431806204986707386735834024572749449035722383333884862321151467847364233780576083571843781776814149140957440776126500625997550948868539508749064664146646606993127372681663968263392960132214946803484903466869847165558220273898160788794714805741527377810668714290374384562902428962893110791058410068292350994020940455928231763785689592626282271744196267116634928546400299669718458950095943176717092033459490671277587187944011139306975715384056147523302730691954587136232939113312374498475892119648846360863607340879248353385157450762745921153549913807980853244535416631580074585989378378277393871439008694654094553191803873494467881697910702107556213881888588140065076133522658031161416004407196178614693113930772758813193858638775866741470969370786652120449862060171314950753259349874545086666982711082556267427564071468531659075333753591714329524107112582583767965064090423912805366116055961330759164791714552198987092569277685419856288997039914290107301574577155354359301063786136155256205545930664687148261968026548452845328076152035448227114964031032530899023070201642649165021445242012937934530883354530578095156725574117030513961536987525219074280200554512326950915635755868490107096667617803900420835769463833713524053144888528852368608137984953893162660886634457292645075614187134562261579194313962072887625803375645419705655508390870614503634424153958949789598437721685396939542211775084976016881090866311492535709522526617117300886213386326818766766394401848879533231738682251898700625269952497084495345540294204856328563974496734781186274705722709803043074029654542236847945895710585849280160288752978431521172176404313535450129980308893350892179464429658372605326719489590387622093193636203828539805515320771836470681824472204584716101284295729126310971430447460123403308133502415824357509377585022616340196003880119000119277641693874512822813824605909782748658828120651978256984096254542219381122359337972845175772027486731903912100136553980754163723221479774161323834078085162319136852744097489672874663918418643189671310679907724135068258836982424220783065040603792731531538654373745099008322214504046273122071377397678236950949797834929266723519813457961305031913140576319100296192138685382261174201628162270265805112222465883247815602296557111020845367839699220440955849097272758035992104952917241850534662698360707935902480313837248583410415494248080902622021157162428417059694341443384870378142309511263718147678361962215088077592286710515787590682857684600165097876932905058256719633930382875740586461329926209141691056224579220388542541888106367106989550814752623975063582036668272156527946751022713281437732469243540418431411593665764333482345859938303590182091112338050130204165993664052319113008361642468854434401814442882331297852642592954684089123526993981875892577565556672581318794781453369411634867325203573102494442899298114695521964939118771885892141719433468419391559779681322603780045230459097615563099958416323283702952360822829208830219785298139532719771528706282916958345210693653546324860907297377514379064562343175007882913513094840546805685089977032297298468760979690807390276675767806254146998146045941611797992803991986401640027834539095414289806857606070883586829105481818827578710057697835427915517668828790029333093586552149604173485976824069054453472038527126467483643179380238315437793102249007376552324274164544034286806011547802599231628680826676778826488511485455753430893980310884470799959077419833934885625697125388487691935367795970944533030799398946015345291078594679200763918400282262614259242186972771408064120652738177347684813631136722001743494006402301017293790037024876963247535276775057891318591693221078479934020169721321944206419979331172078436516058378530093893665922888090495823514933432607336948671156903653703568430077358405928825463621889011135959662168951001305408041254687252492317059624271993899138898022682864440802493136036180023788506729203970127640542089184287179217972617409435449496507814493266574701514892849014050551228572181564694018197231470307024486080363292976489572912168069431243922807151349095512924312227156048444401453543600388177258972780967104615009214616591323421337194147133903165891783162517257499145732484128295035251017702591255057819520308423280369143251498232624171494573695625146284861184188948758266573843348812611608820115656794866147193739554760262170847059387192927566106065102419189898272440098127853292154190934465533747801384877422515331182097203703214777240289553468966807804391353228865550759060820371928399583833116252996587082567979991178066385897745943632928230562042140801749809639407940118834121576099789232680984974506427194796162737427334911266893973277284657269655209879961754034963089710576155595583232694521994726971865487184983594634351022954626566897973184138884983139994935802464477456268939732648529194232072232317737974473189708807497979415188805940834626280320098396943176385867742730283450896093179616831921036347442292791763141738566489100492242440442067620218540176913610406324156783525998046832555640118178975828794305553155409263323386113903438163571951457414686781198635566663449751450556023001191368923844475589495282738005946321489374813476702695962079766788688101569401006297279447324447521823160519630029619132544320664465763359471225012385470880105600419353776108588375687126454019588704625663437637606486792073034612598630684300121700302859383896641988358561383036744196802198311272792623602149903831093452507674172286256484837998596995576151106074284270503511588972489426967956739878313293952311456791381469110415022021746812928304447108178232188672810835832978409933445960455446285840340925687307188369159783392373493147244481147157515994831293469772076638140559655851096017666125113745204310313027127370048554768339331205147415260576203141198427267350992467600138105577882799535583702667606966230158809097902734510475221574111531608041030749136131159141651819425955532981543874702102365747399711058220388665578099145837230791648528335071688874612687085830532502073835017745043677058689331687056567874217424785595044047891074507452080143343106213824517677861008325997707113869577989744302696954917902246051938412460595366320720053057932773477809552616967770517405072327892713487881213493950753143898182995980061355799345433044379642621140480963594695451309385105465340520305858455187977893104459225498154672505099460936697469824438565865255680045879711093408281093811062168613663505132669639963046868298940161729775060515071889211979277459237600310428990946698733908380222249680391202804477805338815957635626280324645672791798670519545534430026233215930848797453982750807852145395996804314310189050666519249659919971120449047803369395890734074577638094090590382674113721686942371439414720439919229400387106459843673563280177208744324545699224505163816687398985684970506871254778513364595433214531542392729147868983618867928900918876739392922125647436833576535411484680704786103433305172278291461884058953262672463014635096329717424410393855127481871821546390657430373663683216594072912980362057769873814568741772444408767873236986011934001615582883069508173108183005680253251706900374482879774796677718311582280202459742697984460979535632495295660393133602316738373446539829045239903001713518076797799616742665261103421628768460583028095294331014442047313251931663126341945853724994635694180628526496346506444705755389491506691319401571965996626298292342020649815182882014200801358057327024755298551052497019522753639780689188838127087074823486526098383463306084332167897785176389325854419962390342777323474338867076834454522313313823284639725394741591312243420945648763424835628731032780719238743110918656172443693034928119290430182312515102921881986610599122986215037221622110617388762675261143941150721834949677189256482051944337011555848785373939063705804011424626099072790528883696781537823801351733026826277313030962094613937507341407500893463989662625777212905037204897581672163439000245016307362921083426151118564753467716400724325243695077607938383847611713131798332244673290642570528801688619431058010402749145298569656708559863177664927339436585963077463445037872411051615636640718781377900888938007103480333279956073266227135870177389473418769831478263976252013883080044573382043325329937747759251318356337834264999921045359847197616218882050461179015782590750119215924291926209123647100358228472412982076762384470292919330778591795947369109550335642062787506641000297975294475481165984852824582559673599530516773146367843039083963870067468365571816223854189276733373340912814636841399359655037007381438698217293693017734321543194679173805045073051291634851838247980646386426517977059341693160870332504489063259155736918516336459234022193211844400844970797383179621958787406317262856944778111263684294136165981747918711875465476323097416358864204600948576439848740868262518402555526460162679211187241367670573966339199028033017873373993172072199297725951070736630417915266333178719662493225712540124359737673073488794656594826313270388785700342392200858255913580106209146041485630108619112593662657272414796387051623756614044577692706857864841403983395185158132284971758945469233064086110781783035725670083694130905531949831522128572540810743741581049269342230300688244228816533149886330905564609673118659575044094164021743950283262019407513080047420391923414255166983086012737773192621104411943919668088826848803936571232221123641824599783431561452070024909564819611932921212820938608248900156162138649695561978040634610245860229137994404319499530289142593123602076138095074609981754666048567971156333901426246107561266777340346338802496550246362980273696858146734844577659669266503434217774064125313079575099250424949637663912779106682667889719936776911388123168594771796955126410603990829960135860092972471818487894825456682914029569291151856701670417615634593757872843238770785746039090571165234344196527651962027014300326729915012970561363141536696223030359412484180822007946437684506146879843294765304988229356493006223899134098532686274275590013587618271507179642898711839998850078403023119640267067854505947029065316808691282131592121506735759871329933195655044541076188134860582071845342084481650591124999017738216772256265695644140347594941284859732378561647547146519508183950902870939488461158201742062307444181842595411468602662925160928031617231236618864556495488161927428343592987214010015888457108381528368961780692674662019586333386136598668536144120424083646855528791702266182444862590810677473078262413387508501297641454755048069213615549426525491361756615658382267341992481906921041861069147955385414466497795051485060979065733219979586594275503740003342954549205491948051861347458228898240182852725431040632149703408571897815968266514690582276659391339787997075240351169973600239160348765016338384721392071200503671517579531762993930431503679217476751747192491466058094863074174412694946708343865699945313373596152621576263360632500142488741865650173335905323884000611413119024158677970471672306823597571136217298025539701632185681322262856854982018731890334028655617176677892565329324495108655951917592258621566861235947300831520150535346953340127903001355626341100441540847549633230877940846062552421707750143965634057993949632955823777232618991708362954695428166396830874694034198651312880556259079688464308184143174152384214485374038909004446553634503380675553854719361894265728807689156790257718023040431678018891370255342448829948759015277115779462679831559342694004388772608206210621641426590962466465946388690004883118772511732921038045220816522410555299110427870782320263727951981652699898547098081106673980406451937905308175366716304680713686321135169901917052914902584276591984983497195218972182397407627334237245559448466003207132492499693555726950332234810044558816790029040950479078243444325615643367044438937786757616872512640752426898753525617099378907472898419166725798990574492892895155975701842138509836027600002159311095678593965915118336934622093795153851864233165239729996837040619061312420947027472978837222211263688184839241134167600367386059794527940085165003156676984457828732987960316919044579900132460067920831074744863541481208831904983949712704942126050312535100973290277240942750858367568493386762034379795068953304439369354375522541230095713124431617995498365679375804032888658993905425293174682198422728445294034279757570058944911637083614763728341814934968461722661557053807689325999627373773557806604741423362865996158118456766031881441369868158515829995585042183599801151499239848213085333491598530705750721619850831606300283348089833633393364195751747787563022582539522882723269930945210063712930422041153364348459415027531467965655450977855374867497685494948049670570200654605129002836863886142690756798140753823028376272105105119771718636749052398644860461011423421800397665799512949764196641490550575379850735775922201229981088495159412387052219692474943710607832994912945347658521335245817535585184236496676229732175729347933107207677213041492032275533754033340546188081923207824164238003234832521391617460488968919324861902039652301483397862339996745957267918568233353001210202411954482853428760981763686396704817275048730597570138891761430779207214534759724192071807288075742382248716547768409759262123980637952658930780957191798910151295506809055690910087221397854533040588602358740512539172004825549664239122064090797501236386386137685439031675580132300832746442382255661963017744533019239647750105270227905193951766692873404824521166592515245876331301931504530210653767734471486037661723809327304611444290507799146880270598137598497397480949196941663836074614048730587646193080272707389825609415243554312620215592734486088479609892073678854878205396881839019983733004247015320154322740893184052902295680606012894019747480504322679758078070337299796789536726788742702101850378899790847544808003590824099084077654266725407703930728396609507834627940085301195799112366153168400369192913625680204747076240101495185203606769394671094275205989943743628203419143981146992085228433604166144681967052836529823343349017573359305557719357348137429061727599604850254952176231800158371073755840930073927383624296481997388298418978492558285666300089683412380706108307422810825565206291254816272456550536965535897141693190084468273305565083180200266935799860842524343292905258546252819220510661500122203204329640070566296868201185993265532533861321151872572551556508936664657904001461197345547876620413492133862343334682492591143737242876390525746361272523528820110681855422059234091110764936472595551538088493238079820536935410191150243460860081185094120086367325591007026357864111947152609966604339189745482094535893068087539692394082956652268215967763077234769080204710518494076597208528816343171054883960374332465954513482672069058077668505294220393930845713326896255031775452277419749280358413999559356487385096613296758080435530424392508477121423871701694405575284638958795050691626020319854264930419075946301288857051402387729358241074598748252462283862345338498378575150323631455669376625005835741082324856876820148307239219216035560998234427855214347976679572551362866764955009378256033062305866619981043188382966918411629349018069034807202823044595705908672064680366175309178471644069360900229442217028949578171612601500840443784388839375848142640541808844580800815387085492979502578076423140151169577684124281883957911447201010543874118602960848557210140064711382810218279904496896768338015808144549286744804547389400117543473132375785229452669167892365464175773425160933037555228759755237049932304739740818476434214414365802305070148434867495977691472078969160200890413027588858791151457238425707470531908830882398986260592276279543426619729795877577003545967377355805647872558218948950694375311747868194823716398120179527842641606442518971476524545652696416650504214231157876878872116170249481703341675578060922627351749720320938691406182444947870620110997709277708750236106369748600186598545681027809739775288157066447008462195879479367717655384104199511881320267511570033840674465690109914899022253572777805319144833374494081953733874216312818629317872744053208033308930527065481954777299207784335714870596911300379998050766107180197781037354496448884227466131461148600264959805277923892774706232884296404736648179527235675893567014919171716997970787145085699762288985209477132349205379736448440949063321617862723381996925804386079872828930521992720191239834294301512575772611238987282271187151264814061321195100613290068714678720821315851396840819511458052936194130819450219889571929664699962610375495608278779727768383751311513670360440445691433159479945973711069129573399007825772637531501425950084909287558363145376930417336132363474813081728187948710978361639821854131124201256215093234687683262248556774406052053260601088880003759245959405537555295342534094099357769468403224724932250266952138971974088852124644989434135193832867076432934620097754047712576687393133536800633343864535608326795034574980842365417984723902723084153509847328895675332282567626655050548962230326493105355028761537908351411448303227193234742011660092698986356026076941850422956663960327130928306202473842991219272546102105597087622261651674905956671170901262725433595560839964123221229370072109025255828431442985370131682551931424768713686075289798634063741285764897477456870586755502325479239812141430374272447655105378336858057814349465876333491499420921044445709808054392238960310657797113912555327467010980747541171284073291317522569026224487918993850919502849788911100740363704960931664063450471300536772157332382670628090516498331077690028040034942302777779289425197660493116993135875099920716838216832729881272470222048593360170137690274031034669106995186654791175138618215352774083871556462219084476157501707549778691896478286721346704410653786600280478615944375717223649139359644203499640984911631485357774318913656072533342386858788541565130861809984690123558181227376443589250026696379328808352545279869650814466325553645228031737170606091068267152216148041795371876846782739391332568537289315357530170556438165986328211067870060337291537017018688647798134447663988733844888886778860797660963633982879166017120026042204977439882300519032673295559010045447709690312049823311453165830537682191894577946531611870735913751326299091466927159936376677225720432392600216844422776359528790102368395425004005055502908186173717097389656587529783514364070494242720354170841624296299065799148077542671536039301901912706124714517096867326499825729681489626084382158326597853150775486206517884971696540146548523290125001092584109099109919630184586040026402024570006498104450664776535808686974242810057349484872976561083355037001665010366643197690064198289348335283848547729035493063201885462798782234022476207704807002222271434337582314300833758974982672023933099926216790388172895057298438712205723012547598973830844034046967041779137990114956656318949706183610120060087276182854883842482520989061090294795275121499507956453269577477662224982746427561119488090971364417526785088460507689500849579909863261027018415835040020518317114836778677921915854214895580781704832045926788721641452842213803743425238977293352176249639604284683188326104128061237597665571580667783245540509659099168636396215979614266038162345254601513023504465388400549961139627629425279398878815604909615042639014443570502057425642410347553206982978656921423166487747600210331359703557771833243317795127703122455792248479884091714476629991494152530822271951676430441143991527397637723790791621867172971928235554443650752963467689114073661978127840577870477949293295657082739642165514472800188210973565623382727151216069973603404032709704381831664405701716083156267409610117707365215087320092393302815916807404899822826660046217355598407361161430175033405995467618449773860943435133854445806366728701335432637402968657295329205177025964061960832313789917688225340860143739340744690158839752652623820673411635730305136406201648856820978535176005026845014845562069583760259624127251128223847152899347985390091363615091789377966948197265198136938063780607727930948503731536968219753797735423610121265940336436563745785847694666608975293891511847014918843797306058220000440828642801581474995954231995326666213142559100398696125882024055794534402856155478244075645302478135701897911734811062945763795736967093741526327648023356117792924430564187678691238447032694525975939757342373618365662408185455866028398183803084060932304820992060088454681090657821803622893884150265323353898778410026350916848639401046082105401764794715503399529056420265197007413968721730901530755680571467947684134233930019034435008744056666184076020058348690508981397839714342268702483412569530856900924858724781150093217181084503705336306946824142036337990016718349630252644863346121043776772104802467271869684312719997152109291608904283330944838521040253267327033665009527265779487136947722645767696359200133619169170048143711096319737885506607712357407211681459952418400008886049958474213436488462906344686643990945239743463894803759472351010172942144317272043510821431798385571601388719660996951909718170340020106033170726558788810640010365910116386524418209567754442999102415962041123974605424604159890916906983481181338385189810353393933753821622314576182335431278657291068366843937751350629824333500357884428173994251610807312135294902818528438986143380188903170697306681755191578060651816165924283776163977133662252571499302022587151931677164357012779560252158983133352708347437647026376590107410636630835875139123690547047737429649800775121204048542528195258334151542097132644871604319673478908647228225885535001391185451666078973053189771257616378278434247375456066909168433690882868810385745263502636326087437320871522139318498636764064897933493782156068444756003345451861645431615548416264491855181665080492413530286911267311899211661232719710284183712593336582359037424313396317748475073484210347282072581971892127329834851899306272489589101895530923556805933176341471868715585555688355487825672057393426912486581040960412460191733984348746966202357676476854968996880230937072198985103186103243968962778644961632096874503959583566645088073242275445386285588734187814541662831260069161428231482601898528461943211817146982880563041797898227751721013519873343859404727945498127788542103220854654571205928230817893915078703093703410442308050607349544584674416245407145475706746676212128027808364226572657740089026933574360052253745022048332880073516177274451838084923944222611210344789331271824261166465218572724054352467896886766169570798602029383709353447745462608737494130597877958367346151718876276304844222203789298461383434740101659301825890196242047408722434213042489051326361597368343775046315462014202957797974134359465742599372649429548373779636070089375231193908974244417957211941811542909609287173005353288038713086244632086857790948034770685474871886046674171206748446597914929935868422770870791708242990378537297369615299144314288177998547582331457196230566547604993953111576094262076225994582415617603695013192838119917228443450958552657350324749804803017335853296831153670975269994691976691148378897118050736574834510655931902993190889078467716534219876570725511384674286963203966987243159364540200105426352857895578727692342908962656977797020386785364119596376396657501501051406105335653200348198175723599993330775687732498744886765851151613826578864904699086737179304125288597565683675037340480270783004083652654969945275071171527589467582774314846837264778729728691365093739055568285662051092116774949248648018440104994749883606971445116486068305020489615731289626216967887277400428391868291713751499924506159558977247822634820417498273191721146603334057799069760129253441454427253388870976349216921968826581065715103256155718062681310580952139754002935861545765930644461389852180880575943912215680754539112551017279805426423084471668647405584336759177073344963450589714428827089328938589247598239914842587973707313564276910383280903133371629256214375866742042340032317078567338099225570609451081312399684286167779690823195839163258092344005430549036022917871861650511021426341396814564773401535075688970886848206452964833416299695082127261239714538442504590753390907812610387431631523031747236072242406242209401684779745950773677034795753898202661417003231609038815730158726222434589631937602499287399749767092243902536578888317210702291100727880348286702059258359283938745536036169311928374605201542989305595189682687067244528470160850487116209587239203895266492014269985313819188283540524375728384674771556646232694358115008221763994573121756329087566212313364319682881988994514270251468111844152208564694791963601137459314114521973909695308086424371720910895431977935900517350490116004416350278071099798539080847920319252114839179624323298479809087933070172271808281113922188534012034117962861288669847098215604949058119683272670185742745096717591036610847586770541663725867173548685863252803786191654307845382922549116527155017377822452048680524856855125728657311349069806245365798394652459832090577321599302799313694244623821304910750928650686213561360957741345002849144438062105554914848550488918388895337157012061560313469351813116801728897644616965639409942822804805709385166214731591244730927983415665631121878827218123855562638574611620396847006318984954651532231130160268657607251750579324088964127278517087749446607397013305363245047977629807150597721191619735626273308592756524453760495376108851779471608029568708301609439189591324861930470228189351962799464666214138148038344011037462120505480632256696215960029519238248528994208253198181642782886435165883330551617246376180170361279032019183759395572897620052025532735247622788833851542775171079159280045758566181242778962084696465647019333737102521304745473332442307039368083504802944790749864098609722179804917480996475075731627760462597157360836242279679015010388405799137361792423754943392792322623086415483706040730634213469291741953475520271157320474561194323939569930584069316782971883394735125105083829659483961924086423554625106501693603329538270446443607353278651172773307258964199393522774592499984909702296908703918364368891594526758153651245536865969314061369918698499086464410839932854962654923610561014754902143594944817928893305015587719554021748088132365575722083747192872130717579162294284915146148982336508364939617435670459357628848489755681757928425892551753245677333868229939225241126445783957913293194667877870076302192728094443610173525742417965868342670708058400722058325698252917930292091398257256846481965602982558535040484182223328515293092929506192790761461076422970879991232343756882157034716615895411612711866601616742343731841011112675288162863058261923645875749124420435167465711791497135858758082802443616301981548072285295278330688202274429308979377080024151958546572368719591607771983457807265808731397147678048291659511185973551044186742556937628175550359687077977108669848318169071663979871050250310069866808555826864222593437204075972696367511728163279422998551218603125469068448409564479172306699494074867047948785196345202689931621000414080106364795238811610268577866193726217225479203522189939103151881360172445496702050667812483352294151578929373906228007962481478563247864074731557726924086232888261188435338552486901584750404939465886231516027741547319746972600845141711293417462402622757156573790581505937926153684325784833012176151291886991812010067557534423823127062390089744518287343789294267307181838715656311139615361596900901190997013815285512445980997674970723557079196513925473633557342967205762413229701199138113567143456928969540196353257553479139574444838266456297981105483678867497739289977765183029489721745822976730722869390345508979835350374424453772447061786377969987044993785944067491675362480701831022632111817841030607858194916977276539189761889397709063817640735914819631147968146498343049061593782585838121431886404060512273855217463041417631444139829506967480766066912374385506507725521304103704787438052543127869875396521920901157127431791622951243478845341626938826083582013792186229100515909422840766042462034923377508127078757514436122146653713632014599702526283474516473413526280998027222582190193866610149376762879404314018541223804972686947679030041243663333414518740550896193312764111708959172700472958656111063666450836256169109132208616391482876476754841796331061353699424219235633740968741994254713482704649000411536470083618292600214394352980721913616382400518312282029748706173697352323896758645291333888403340226795789456693563600337317226019910069275482636183743619785340315826329938866696271511845796520064025266995987130362858229943519289956849131562154127044927630366824392659167686008122111527116903915779250148583400869609937888662543642997172937623365039789313123355941327205083858673778457128333167696692698373214107016605430896123481785834856359060939753784924537142685673394791587925326012842321651334552680632191242369632133233726114534293519002921748094796666360412387937826592460930232463293538783821670673501331631146722477173476709471806213727671575912718108793035746940196262142573674430227142839533404755590805855802245055515552742114520545417909207732760957140267342964090105317214389606620722571103175118155809637737318751571918014415932519402223063554648965473568246440840475734609747093103550709118839698819989760754323764524717709471335481404275986665549451734736630879827230957250647288228699933433753216403834189509532022041602413221705988373856426302947761734603249184878651312036469447358316582066097710838958920002237484362123478990153937425275176402942753682606256805296269526089270888190072314652719551605092690265914168473028965947699631522889288845851929198211659282331797511410724349238066651064517477888470653607498729957212835020145477759059762841776566237597739182827108289955877549497525533985496155309972768933715784025329676388580327655551232108627950639448999853929341718738152052529395266913179885108883821167124326248939556489236659399775661950975983605180999393846191515015291331626938527457048225677272862024828219526608922640159510827738928013507062895575188402166566528823629986537157056276162085973738822070740386301201685143117702149695691390374030233809677757152597681989524664077961388689561610389147320781710954801305019003561682757628236157576173625158519871954006083007364605890039570499797523282031819380719392475237702202775720939745608807650165854279613779707523613473589741499309190777427599371349203026888441721490773668806691651236660727848136253198791110904779084655995900580130664183539647572821960791899184296418591617056218194255554154859832536862546426250245158914930391941668197547434892243274778421743215121533231460261723663873058170819460543481378871506195444202288820991690971508717310215124371491362546622595414098677946772449513029873990493309703029702956300504628542996276454068720032215667630555937655280944856546778000109718626991872151586918751845845476996034493264852796920619485321986032089511744682858130700910295269502241509099730110408500570158536770842169266824272642387040554188350605486201005272144597882102766122756935588653215487213418269119368290622320244945165837758582538084443481295399572542838381864565925079855539496561117959018040516721331422398926891738449894587312218769558547244534068159772488109268698173144927278531056853255621894878695689328998806615623222483372643292810797694819714824011635095671051966830367587084069563512687516683530341608342584594037534817974752487037533752571625835677542756673853017354434335205047648117112974780312020586328006552316343055896641538106500120780524815150616013475944428846950399071142765504828608315695331709241628462671092235896635061892963974435587165435933828651596207460915131027389071403546913111395741888489290424765963599426576415175215005707575632666544841687506887772522403272882780601593348298009411198986998029356379780963723085806956822399981430922877268792940517619572279917081404464098873761760735885832967334553747742266859092554902887816956572225067622135670447230621284831693205038021253415128328209669101954338817749790413721180842760110257167275372336179027973009769714600610964326144626609335465418145521591617055048741985855957141986265245122432255449340361024777794154769639358181137929916499262711809111744393974739739104863775990931277699014321463687437593344463998058280377251951621628067784063523624818087480647210247467221196383913102138465329243011524520172345596598341793213564879912384113779763281838329950976895127545005208603985806805239731981280449937770613424305069699330796264476129546373438458270831247128711136346506279838478851289175070900477757072131484573871776816813818303271285146046873945824579546920086006962197588063002805805744795693628299686994246594258326938755173130425324113101068430802707283775251511643524358389754104449517312324058199926002093153980216750106186607874663862018202314519342262628024882423865654012689147872279776611948801598412295775812201251392401600819124133701166330230747971032492254660659763046000555023953691772677852639119673609004804924486716487689682971006687901684382251040919035211399663180863447247544672250753207143891367409948398786131438972763906895463589706229974318224892183918547458399408070093384901183079997046966421192117013140834817010538195228623971600205997458063904508855790615930992339354282754149662805726287138094570232013428632412154853244120412658261865293413469945323574408687873464167247187498552956105897336656948403186080312568202858168313876310994922865025121044476513103335443177613175162209158452165816492922058932595344565631542007906895883199697317076287172174208286628304458922214030042319677251263519487468834515028054636687014561060933884646060063184588133250760995401121744932411987640993952342700798320195785560205756710804405776515631845893112009867597200967950583794772643027961337123142937428081798103154525661257742600681570913636240750466931793689792863353732003537614256567284826271166640875299070933445900804405313429519284349939208243062672697743524572356087257264835566543918373880960525047151753610184124891582259776228773712951879600889700724446586560543789691817407779539721058677296701203443689756741595390324325512276716081190228410770732099062223730958280036331082358383294451478867484247237037251561857492038510188711406647098292421655075870805763325833792080665244745273309299610846550299799725249815751487718108978823723941821239542594789000918635376584926844711467812149408070795497120746649604403911379178525828939011794176328243592250338762191488756454113080336237355559428776109115259130712374422844401956919560452241562962151834960501320387097258007995383708708893699221399134741188267548860008002738383453094242712883573745672925878529703271169309863463126509355597371333663415077679787058093866633180015106432484070371981517469636893000034152886609665132972850499714641364562799318580872193837371120647175199981985623221262693108579828701866503800569772220251272733749123656442336929580375039190113091041768935540207774511588139949141747762136411939278385629972018498097554730316850130405076039804806639250005648962102169362055032187683032322393592792933489582935361014277990909912149225065651031982123917972142729381100763254453656525341421143268001484327218855528249736611577185708964843403690665848521900760498012851020464258771926296997652467650988684931069352592010042587849610118494960586333968201583234339864296898582152448231826459240068528433958801302835233316024784969690435535363055201798424524080347625562737383311049347209803628258761498619622116225819370816514178253479909755555969957635657820948663304647802094657007365334828383693790860090578713336886660510655296363968385237711854820147934297188566897224069593251927435509876454523719117622289974101531825312841111532895791648698647983454971339579335462298346397153839559503724818921563266421967856583766970389494567055486537786973535556621053616022537558202679632214397235707398002561494151633130374240378946273585939657840740542759451501286500048450362425962906493505350428664373884822702788352211494107893258162527483981300540530804088048651801860218238682763371559280649324332242673093110369398850631571931086359301032138090227484786839426858535071047832125783684065919796880191803702344090173350276931193685533788895559696171114826446346336480837472457016117564010738964532654503640427912370775012523320097630475621017778354228592266569191607836270869076071954148487257221115514583765859785447991935640721218366077945615354624676682190074381946010976805972754546366925009930352959905484404294914876736833312988842321624847785434523366465213592006163632491122178829804267914601256621163739517407841551812719719679104044862596993790796789578574653177694231951824652530096564375371013093977173240479080761741249934461643149335164495059197371636551889949380966437299906188417241388282365291915581002775960518859306945609913912497432301091590298470065724408326444242177415525732759926667545835574469782614586796022345275404699043013839326318267789455306822624305661542573475338616125570399359295643512196680521738199949146263131670763956495502376000443508397194564894401294817922906550208285477269790955298925351430572003586966474300532943464931400423234947545570954342470941423301244064773375762030711847417882069599832983348644280560799603071542921070858251158707431049351590769777970999961714825850388945301545280556415707784548863595266228952257831452237460733704339062621140637609454993022875157908951381781970878163945645368128239434789317867184610384517809372779660770796890627443194149896212537901282333203397202334327391850511148532630862619174758894684381985420980366148829929884617221983778833211900726600796775620836480469761957316234828151961432706112370812329653559774343368257585158565583805764350232327999760043947734977243288419393015976156886043036681329615670630931778652886002062708077069237833078276364949318031937630767799945846917279376156304061240579967127619477837728788590351779584523022868476264200400154916201278528589860785401296280384894128059176393004499534085164980462735241972715930332051707710718385971747360943642896655514592122940021471978538660134779978730466440318348106455400838240632290713535005112973780976134407328430979399971696083631317632984210484633027906201024957123707046707261763970045637935893468966750939421286134783834193603580758283421456372891147965004327720903757374189066981948933140649675622968273982850168430518958038160923166227721332388133172210912355432800650423827601917408906399980068874478630874013724014825266185495279548042420467707717225132419194016979673545490736065287025959748670674286653126338723432673650490381354115123484996194903772810635592313780675616403633314432923190172817772965887610023863515736044593387530621013555591111332546636297599981528223984820165093250822517529401307171111798743114900201422324253834946911019478543167763384692214138099147820423365632831708060227825850252642864827646227827736456280344529005319914471087342585021146642283792402734655883553052552159709683587781562276227975402455295491948825679324827355750425001842303411421488848700339414457791200589549120776182111584570860871927750980046682580588730761570963118638786564401884586629834968311517806624752603647011203715442218798213323558938209063823986302244407256233167082504200229383069706945224766983232052509826076563574695537155579554690945782540541431211527422270457167787015429687965102293635121510453015321193074816409504985444916625340411538814863561041539903624047333774254639305565525039842357125237656018551770534564726128671464957390408266875079800144733630717381153001461425472027958640025369634728566800752499435621906552650115304803338734739972002680712513519871069778695188046488504408902132598979426070379929623106460771107955285108197353788800806863869559861433809401066954735022059257987265542246708311106749904449680602642811202309731187871972870565303622755561399288474803480142043927444722647662468389025002406432650500813724452602588285104451094109823185208266817547462773843423418209560112408098018325170443296703510477567361656885415792864105067648757773992015507099861519515732792076660473797711006380132124267822811941406755801589818259331807228837023247777013455704345666664161983933401567525455379144523283584323311431328688050621108119036883952884019570631112703658639650894517996642511272501301104363696512827006028764485095075336951435445216952302952726650137897623340465471057808639172782956027427070842198439423333836246879034231856127566846891714738427569347835243010041168377202965356635410628765808429031266626845049237091244861989689872457584832865032227276226156295335602438771291140296116803143150544763874784043902353973780779106215052157392225420778789360564559156379062403480708493759128858154517614788877626792770130338636729612258398146293913939544604551986488203893281014490979814846977782451887686734057567123379436019954861896135954911669795896079714420234179317414975461354916179360470405783009376364242224456410936460938432100610424025688252531876119825265128663200886936828215460581747488756650310257274080073633247711744589525765281769235863059898931967517777444876077182637944484681405041027915797564280243211929595955954643646055171946673772424799639281766779103074014234350123349411601472631425255963312626886957474315915630301558340203555180302873721534689406117866496505807850994905216385094646957289598724988678511615702965931292296390987585384495580838956502162684493092423074500575445897137911501341614998241576257101372878941123283006707742219286959367460122277865055342883372894390047379590882582836038896477735200644663899187957673157553856331184529809809301658585693341397259084337807327321584885352828731091317152359793928668124224726091494913283867640951543239834728499969969510710774134304280919926474347832583872878274351015505194007081213979225423357138947936112807656337018809012180353186043109004313254216836453393591195365354505702028152753431623261929481854451718913642726933759541472965802008923071987503387706485128186682633252496988208772425576849858712398356777138370642151328408889836886171322801793958429727175609156349156735617793299957055708430945752221253273089523383341991366963349281712195368985596940612830416475927579766449644075289113742092667723464261442907633294593703307543447922158297307387528155264381509258661926174715772423553427496189048498607923547412478754281983639540864990342251835207506997444105901480207393591968892190627607915186087555673409884796117111967124418363705891924112753241249226888924509184806837848099730346051770156398068284241599208695188261147483220774643130576205714788344648369208758429083959977582240252959138677182193752788639769863915286502083574013849463528593060104342717615619436587963125293280388497041312797579772225092009074015987435836994975001186871554961701405062542607257561857696711852923285293903621435881682256114349682545412874434365199978394108706978417980084062082904718098148268765524603624039943988475980956104925951601182497132485892051196492267292716235261479701037470718242615918791132323235563157326680244585364176325535296642299498268592813847979280550312521475768976723341621546533779923520892041364219027659781030840345432343019203250954269033493269177810399734660863614751181129064598007105909773154177377987549704244915990293420243776761762576479316558723373306731044456529613618826143995501548620564426517817288174225752246803266000462203778690388052154993206469396165532512088602643696447578708162338862035283988166526130686353551582323343844546229300052640874223971766575581195200641305456181818811621778065269099534335404515463488728269853659226647052242475861298998201712055238736317664584105984213154657742403518951782550351547300818774540598558566040861662854292300846860023619307449047307082112368564631339922252595540562151464715657405036195645688389166656358778624304034256610003794951758041926374455312941768236529205294114460227727490566666161999757808528257387087094960305415679858228892667981472824557257319963518068242538877025200033397938818935039803482891269518186389330591990367617481855380992517664272124853674333637846660387515443312195958904934020161795327634889533138835584609934393299133970174839848160249886167257013583087870764819558517544863731957138178690691572403586036182612971691205108189248969414113341352859444452509941013620487133246891689260221503557726015623093192831901077157707555879866930410023365819737317369001394112844967316695784858475176161724557524432255401166055752766872672082580934521482780627935373487828865411893623121080145018237060348494550198786624774390806838576433897942563797955069148189181758885545730065454652350390527299561593038261686414624834173954426696139326621440467862861796034104612023003151442065829754522966214858662632426351191770450637077412787110872770474705370692077375339310726448381735746543840695121932965500524712782668138275617714117530672446348063062782277085498875872727063368116950352745627182569205672101490133303520296637471395202833582136010905151305474926471573417619265206497382791611168924359550554932517068601037705668672927353591740343070945141850319780485743548605367822919553139081733242539533525825210245378909288759496713795791120122130850337918414995937634524547491262424650183529569309841563426903542061036650977303793673027334745670097623058838166663199697571003432200483714994837709284944494401355743762640664681425267792651483306613449600981910921494199314048761465299254421329774788509985295733989752994043820650060973072852907945295484334853227715285656042294291446367943568861258186451890554391683460685939146297168037799672247479922004403380029346037638873619393957131784705057632546276446960219514409718391406347620864878940207101359306574025126264450952279345595667785753948156796098226001794198910095550618310361973141333218135603628058429852399454033873660177008869277409720894478183785296582290006301760919202344916959715114293385572842752899702183509147810346186926716979115689518224336577040718814133311316663954539577397415534697512122912166192630899370553193114241991202829850333581592589917107768077486181262846016491262880746536131128482560256981921344313939564902903593558161554972528035599250378254355763257065765055407036278639760109837015620787104555997328845462836210147484399878632856271415936581131715579817125751482509560248098696275599016984387411779257223447683695813713627918569864674514170535572156930736212952289030886992999947143693965280798705567712096380335049594113385977592412963263566892367311989315906930958042133996360774931021335750310552137404644086492493436363426509998241116692921988043268197135376011809578767432293580874900722666491493469377671147409885376249776468219214121711763746228413191678618579007310907930911785461502017089263423792882999047871308749965451408015533798008834626853727147744576392118430107363441003779023184129938793532501446752452908074347161508586929241924810342341183398676586992019826919778779461900820633196007457045608048154784609485203312683977758349748739628854634009838844085242045330024577530311295152581186738694863540997358329997230724665700439948170073237957686096369235949145909538809289298712507765210554957459203410949226290691222031376308576550434674272655182113474363029837985841476831149428529801592924632098541995920208584495789224390788627593034685818281047900267725235607208298507251455768417774447208397919458740446858689507773683529706604568956433015542510866493355863557011041977596198467094510001772059706842840975728246425942707510216053598355818679785613995248437901155417574603050857047609217562937449570233164471487597622882841333758264712070208152480705558034987924992357655298206726676490834670234236978327655994106137062794299657425227359339969868841570854380730861401531970602782244847231836877951958766643294584607006905671219264990088718914619802730507816534426096367426399404816105216584757037431066075043011104301403303301554387830063070924632877431422448715427766317415298498841002114906360924140915551236836955483904053415691244991793415721107116433126215668575965423207217212307657065957015952342377779039793923418936779706153186658656491414883059949241848946620547807691758117715203677240353406495603380397373382563426370835962486430213793024574244888416201869835829646368794455640378252459782345045702844336918611051665810179580865805857519506323024870990310905817075675298243099153837449023930040517765990445494646455635780346105674495235916267775392124216042384936569834702514952815477244188311383105759742260238932131147381271094355304471821969757165344111047090278112315926853940333866968223128277855383283253414171968600128759638349470538714337958590707116817950184489935332766001367955734270256251727428344335759148219858864686132786498871878645689764014408809475192243501647050423382662750395916364582386200344453018432483706678079172785855262632342165547512679718858884781363436853309121883381038676760711905859862635541755454627691410434697809861080597279073613822806629290537713989560174652473793467451169465398209178603477491824912527340165923754398319189372845864580881067723897172279001614633313099103059737340206036057353748595809704364346279145161922494294950335493368125120674136890903293451497830648983798257652495857583225085329528858008940793397628373709233395537557557407232409177205170655665833602723775173180151297946573782804549829793230532640888919186766819239773478279360247053632387743538764086191566434918143720971784074114284731771855998350172639880561753051452628680058861878778519908576685985478404748207626712335953587314448066249987408356123541052309278264212129934588780999352857286109835160645818584388736861155710349766121502719535126290036524326920160446581503033349888729352208959316597130477056577366328901469601356918979113401204978842489821767871180393663852861765649111218462144627397520162601241540461713231156833879228592575832186714694333863170383883318947776688165718972492331077439554542103556974198347301702447652651790054652232364570000841395005142039817107813753983482307501291210289077494316730949095837272854720712773018674588392770743880221495425729651116972924571028634503522308598123307270517354467124394379857375059042327387316339388603214177453352403701475248844693908951221623314299613351762578293425862300706668836077364980606902896064550706562630312223816950333798358640769521332925253583123855674318642957827368300306183806088367156723928897540634761450259447249595162195050503585154837549371934428191568519026163672311287217951461753971519612608268573252775058586685251105911715916408877324802838245873538966693105244348952254134311516574392342102762428911230204122000877278671520052606080407603102739791110626822724876652868373730430137530258331304908290340970704807185920130449308446012865200941730225403228266960386651127619439222026889035760651193799847658994713391781706303492497357295850096668279568696730915465376464315391984306734169033200186185360935531216898428672674207614846743736020712263941213152906245924127906434712692258503398652164295371259088101130570158036886695780136762589142129705069010983558623628087393350788370751833146095620071410752080595902527586299168448558231256282988448589957566698216181728717292813807283243579845610619525873584829588713147821637076083464537535023884172572907609144730092086261774648983088897005754439703385963318549625979222712512714110105565745567389137179861982011242516214193199458608718062249553619060266174928379546261268289302184002483024498835995482825019124460814835550014094149790340335066398930728663019126700916446908447480165506201246336900135975088715202764929337021400992870963471290632099584657294086932417708913624707611494142033612353864258361336112098181934232913825828557833464719629548510476800731105591017179057533946087218490469382390041122390712563450931123518148700090361065416861503382762178163271500096014283333185239687374711402425314497427146419780464964715866887605408705533239098421750697034461855645748819937531305773042880845975114855100515957348270636785842091514512495807330410896130336874119885571226393525061832224504900690030032907891955612276632793206286133095368218014128536350045726538370110870962910207169729489195348626093969212622914545312173294694967071825603867533475318496411226189432305308956433705535306301352678413554312494778222121214746820459691175772314673548242107969925432992505197239068808182464315380411132708762039914659014058384104627315205096231863587373368607058975814959884638657396617578911186726338802803629813722991474438923910620176503923537390874249009759678574965817574431752420855066847649540819428328815530556414739987142164854384918175359005300282904119359975196012185059856456516785421378985350897921255466629654398561489637317790917823247072968169952691339317943259715540666914017699735096144799404677474418453886567985796974996784528109464012264457317320179722694460647015256464447457801542169383502279421057959019139285643497250141237957467101118925289678530859655776804051578470252152195254706673287253151237702114674348863495495142509071535767898600336407682349445950204951004075150959105357456399542007683150109784246352700929985612812931131279633359252366210686326426981456219686803291785439171503957793006774721416605248431951240818700449386782115025590820900311935817763817496452049823742022276315841865752991854149638671664335281867305539349512182171984986532003271529224349643766210409098570050431584271089002161706589338125263122747310908753460064724977657924090760068598875148793356654740076511577515898461375285545003222858999029371215186857830181553436801438236057833284299651793394142108345765992738464741179831367766933898335439814523967803357709412137295296514885269723311930643103167141532057344528239240602712490334741698057261736646545411420497558973284491661676261652678798323693097132354420837618935770399444175550054771995064949368349482058027106575410953570611961516991517828943694721194834224592519955489863695956487455234816501901020998302659579969871722972341667769679929546241268783620344105800697765184335314141219294644664996558458368246584113048355857795105526941016327196281047808052894260908054126307061323999412296221463954070749626361882871110039959805619144989127252796485501392360266981311660890030243673755053525686119088588052039889272806270698459747152781787279683941165660994714038783289412633777750705897663469296468586822779577076857823976291215019325471377736644250214061480367488516137389653557194889873319849357315832055229400048491649668679292453900461002329026560276799489284030285712207017528278662145348381154808310517853089593397694894427721607442143851499038530269462010565480472247597648747950330193951315500102931213935487432696786338939566487499573972768195730047577842789659365754879605479614400285855743131794915051816421153207213767682303377816395778041323928369934389719774991133515540065495592600282746537161870765555540837031483776998107050003147150610975648759901501280589559997343330824957643683058452295306695407982824149279008112434775812423765057134346708076637508542902831696290250993705341337823347582231306124210513488019575043878987940590651405162259678656787960330810373873593414643696143087527987853196795630702304973428193618026565094096688198227153100823231663135420728959962515493119834562148287606483012124113500145098171425657773291111056219622944682373740722960347224750212588200748782796916046789672103116536294203529197477722283498968508721322500993049018084920493489012804225801667148772552490493342427586139772504892488802066573111003172847572902856469083508582070282401887965380390174619698519721197628871250876953963732145630568141247458888509562477969675283279274459151412249177937941803192693128886080559157533043838378695418704516958455167983736135419966547424363811714405728235413538279329430189734732693626813779094085102876747519975164599620447723505501148139196386674286184453992874148169891434289248947885326762008045548575445336988355460125582798624548565592236358739401368722189484541188663143192072336104721830240048034109982947631060915810492278929616465564181612898733742787936519099946851562417908493079018312814856860911477319448921860541378472794175831009701447753270238421647136011098754972539590243731678418200826427276590169734356570094922120688689147048329851841402013827045822935096748814839362631898089732420347916112128017853360475178961554957651146222163088602901999211415302141048145336128452714150845099525524576876048412182161734628669676115029694753892978209591616842233008771367567069687471181367825203326842286487289684730053570072252914456322230601043670192885787545639077188614018196207146068353181548987316978436261403315311137173168742634598282464365626846006942015673616405075637333326303794060215044260277161702464378265744529628441457312367884046236423399677342768662764274508374146924128258777300145952949011047821021734276289620650625065664537364765601262011413104829491859698264003065252322824630211231675024904615883474519323489675668363838541643591754697689057552635393799659882359486338552264612927786008715116223168293153243517854895276150157188723489625580252525170281509935574029318884327388730358158303690725995006064785230732511619466489144743034442799971556939346300255691478122922701020529405222450280364049200077528363521488325704668752588095364602691375958257877794828693570121219888814523203598935217443036857656554847604311556756302408695018797003615033521859087310039288309293812206495167375261906717396400412418710023476120300303470008863002024604225608233104147541457174696993242161428587585663479420066763818918225912490944194194356982613754453181737407952126849916354730287338671595821635119636321860215526754740314063581817100105914232088948936166589089319874289194746150216178736902688581282152676949003422964260590370873691696477307627770026303502871576924699355910945051326471120759505834973051729112050895154865118418424706234129440478510286513709810835058042126123728111929919393069468122591869458990088320456457987014121640482558010513072210166524836775642222848320175702908012038839561229206580390312466202569274496344886661710612977986553423946756824013736259468337736777416835297743591110799523061997700766182484766930088102085877647015890241598536364275778532251137053979668732868639116649068275473263126460685953477168058147034454857210208165763832475970077647301489994480240314369583651600051309139730956373089307140031808534368443238754423209380955428350296079267438564952622387882467800412144661377697432455914795727534623193354941615122570497191407984458582596802882834950645095067882443511689882949937150083350604127687698077053378543447723197155486103903718280118495637009330447449123275355717529633022807965371443816719378627015035844494485854988944360848635910074553020848511518685944851743777621585898694973221757984026116242632442884914278631798762496685624125067542804698933948254803695480164786418735249269150351468465581301622109879275665510039417723962883966037724283485548315857990160181002722466147657006789453368020957151663165339239086283704312458311343407609624593061121039671024261462498495464343028887194688918479077306791935718688195433757981781830980310489313875014052256790360841516637261597685357409014230408525011717884192279649144756068391087197485287129430917849514389103480547600158481930523013237967126359320464222502832066760818198796352458312581359645097480798697934698771093429738102350755776697596888838969350439691821758190470261555588038332913508061769771709863999595811472959134020741782487131026718801997162762197241793383483353429041582899895835616311707281517241997405679419266240081466300366855814874620298432801476517730699908104545320078473846997720705641110585376776621100845338269943450063875089385820234994440176050578712962941933411792943477360703032156925374855667902794154878324954852482719419785004837732995783748886132588968191536355060794929163395865901046476463014751617166584000470392569542870678227617400449453853707563355702029840997581252357067717272931303478545499072879697687733128652764929020590654334204373454893630491279491980279922215743378016676813474483918930153091184266261745124446826987205146799595066462658514970830262238912386030651502479071073648504022161850474612949408874249645167658300915355038563391322656767946085513079492765807359578553003314335837859284234352732896252858009310146103441937667448284216455600871329912930848251996196475898182401459429569813118493378956336803950261257515736735004985514662505475730550851618136246062059360871988824413982354345146260631684864673091500775420185617068466924715504508815824801029487359634350691654179855175511314193410362619211989631617983198541013039692358412583723123721476514261618323067651761980818637591143268670081464474421877015627635090292571557516762986809133769054162826959616448985877601022388526551871188495572518275238108790825637269241592742393321204224940661076472688828134820201408794781759558784354591227305516062676916373357294831577458605734883318320210816117218171154185011616473654779451428031553547181266396087769714267628880281490246274935272781441512092146465986649005461844543168408976811423234432468333765388845459650186561887591513984930557270735540418704746310422990190756271248785835137609297660338838665179394948492470938937940330115576870325329433695432970677004281922204843949259917583669120259143577936822763240813601819443927319417819707020185152830742390740095972056979456822646573485757694373879458232908245446205855879267303491784791741126513666238946058413523367886566663043718889999899637160188777862864439354589187895538596524783233015799621192961896221588710726723677735310282420560574039406425323590616149685917453596045164418194132429438622474478486001989717403049007088905277522059997240142122537758514147187901985369265971800639327359174586003637234123232843482088399666880145234925802658183064447432646372047432347968670794530757388843775183398882668524830416572573274858095045576747774266460262385099452616811280585923173790660581071901430492253452331065851034607339351588130589877479875198908569917028162726745749981339345760698276515717264571632016229809201995935186002404124222210483101959433712142609979860468777608392418426110495823044244197653221213847771100129838780951924306558139065244181184913470251314631303054382006205934195501256387649580700383911918787675532265430539829600295140836147876717260316307905663891355349413442987151228087855565827857973268471374819545887853191254200307429754462101163466434040517648752265262121019540042967783937233071675504286455096157282653337927125789859251355120895585022598702262828303960705245014422810528678035875974871647151324137390049490108573582652715700825348306043403627181310066331289144588005495185407119370150119546767739888741541535652986556707759145016100983673597923313853880324262419761227968165176472510422854891100875825124853919824569991849065466590823440906483101979169734293675905144394252621733063413132636537134414065733575533806318872353817787761013818944308861068786502895350564832313465368087734976589529862945388174648342955373058275830464971525864067684992309487567945088309217195599800194748480779473563437595033471593364788516921000755898310678234239750883334935989461740901056071346905104446090397476986456425713104991865653540744749210999740215055006146635093239743726495354903409169250692475419782878363462512519603016600950013871145041881830988781327996696537720184587659012747048495394738863169953557200104362803691653013120685349394710614420593565646671051183648748947931602040577787879862866633168302527126314880629951778594333475064004636152033105224559086236252693857279031799234190809338925336446125916888650272909255664613390761253947340618678181151191679437756120128945382832383201313398355900657137560134059664341350833372737671740592399432162991566866815945978997486200237398762201141235584088737298042179833132243697308694973173650690762982771588267400028778814128387586796462907963291881925300442956724093270374087311156298032060832807559095353285597395029133016284181119072149290715904086787303258238001046656024736707831504117813231973298388598749027889518177658961777772068018855865682059431391337271091127623022208527360526394061614264548051987862951336951483431923784959845175251866628331804518236544993261899624894513674077958854893263324305615744436920000033296906530079717782267933571480324162301238929720167939024231093569694914764399659952146270242835010470550763984235845947499613014462934888243026322967092223405820373616626989756964281752577928341055163633234697223475509771337437654239323792181535256154435805201392671066823463393855393730055045669760012767727528365231327809734449295194750849320150853387811142643545117892285589144182231677941137126002047583073742435833089460675714989317113642832321674136888578000057011038318879622742185187916919461862473739920720555032156056789578210976649465456954273689682742946488016840677016273204317995734294774476853408760088905113710062419313744589505097906636637489753422970214491651169094725786940320394968158176002758396290998939210550344230288748357723004743768923623073525538481905115223177124501019622542883406569048192700002334078975217453904553872488186993689986465906969072034262061898097265742822437381908723334254042375060898814444485084091367331048774872530034544292317403198695555482570640734263708109702045003430202984727948331230059891958903784208547453078501204409049418182009978393033960986245088834815299877460449743813145403982540136840510560949987398671703920138936215700011724849804452816239779781239920457118481228401065862961683466924351320156881460691592680053590009163801140223962469361449309249474843439021386979050235230445338987147505724992830758556767465035472789053863942676094648094592203501999772276010615281899793411163199357846130201197713804837129915450349267576045729863251690045710394457102180847897335141926406595666957925976634893928881382862569092732570310080856473623507527169091566036209692048983218457385735551870175866199457071733201424342085058516824445069191684281162332716392885756309246574861746808506071826544755030903992446865691557565428177582539652637435571984626472590883654824875034970824563578472933040007250919874903746237828213483965002827252844368451002058199466293082258423870120519398046769393318421856615438647428021895994151940006799811907275099905880294496575931363668190791519542350556054130890783226796919340533179841726739479120693697875211375017343345617042327968977413784083753604461314939309652797445884879444591890579453146969038067139519042265984902448395758128328037579873389589278793123245885359229546971996768672010900452197785587353390267394616435596209468515987289745295076637474959812447160923673139419203902419534513547129890929337218532562969099015709759694576975804707956180612814781255302653067075537084376805911210051756225369607537662459753101551443394020698115952737104195416499928209724889944880307785423559831581056082790518841853748661788971775385959965866796328035098494333674983239954575439923342752274760204453784178348417532611573335844746886162564563335714312547396919095126203304097514404705417083602950923951065207233618883454329476216900727583132744701063945881174340737319808718693519250877893191005901950246707672643256697533823339451018229988679628464352562128177837449496540562926325349021629440580383661411944714634355197087349426764446901894343294292168716845309713571637080401024187981729855712247045474290815529227028144051339713478101090116719447056458004174493853243476258623476806153717679541626246724885988651461257755399003505839034846271612188226630371458314246806875463249853494162925740334133850508101293881723258803509481420537792241931860392818086765287132670666123274768912863348227543146209355861237710696865590500638899373941023577892467870416122284343357243257079532224062073885807037305263128966233960237618852522154847140869837807626449619594094550189469073891582176366142615170749205995235769235759188996791616418574057238513048553326741537085851497252011432830466171896304948385382949177996347862147951388741120560942642668229444658144458088351774032363496690465877089276482268858808354478863033539002500117705211494162049042563057862364155294264246609097142148328019365347349137261223362392447865359741091675973922058671426253528300959779218758885030936587259639627441988771051309181195838986070250910251421934463169623865894055240212276352527213058746492173405268780961619959101475142121505835490503047596431446653670546171153870191027702881158922361774633576486440140708412469705078154791008742100027437849685718093635548823636289945161115862944224057555701931109032096269572415716319144923404923769570448121582023789005579545600455428904975102892839262920065285082039016034211359011957830419456709926817499150503654025835703500192523302766216076477781920933128660532484670670364439307264149335779847710590807397367541285827008424992934635098089583856701743562858638499687419364309788316963402982079119844094050951420654814302133499468882053151879224497836234616831610759121969471520474343884457992786689907634869216494455042850866745575673186489458629278124400439922700053046026708211784096258449303990216441774891922336414220954412829601538771412746119601435163678097859988963019311920211021030555151160961548358572562619068066681241546126011211920945772613349535668758124782966620278321485850407115298332046045743991460520756400368617495717394214698813660440384274920683652715595478403567066701539056040078594692192993921517425796460081092802125658913929661665535847185746443126798550907925248797877581632592701836263700846981090514805172940469647506786611887840976003063334069714125190619540446230660529871818062302019216179336395996664463147409673482197106095410574541641793446344141295500544423881937088578297811105296169860777076838071724449471281105344120474455671044333526931600427959117384648515571134287279579628092910809729357309256539491222019258669425193422662871628080298335443230983188338583856568033436019990293815688288814483918608833919010549670089171484702850519723084764398379149647483619885026340683170569354142850499502279884414079769915387815603319212094694439454653148156833228600842100249589772018799733696986485766143890999798363928816560628945043150626520827966854810135299517185777040190039089745327669224248413147784962053833537066780991593674220257703248116651882568411945413534368119972079035199801141012663646346152920015316568397397761715853088153429771125988591845080866481656926087470462205944186932960285725257268587381581456458062621665876572234146660797632346431697711060793047873986196267107968067076526924981536073931882652283381102722662443194793113668144824341376073085263134541258117536069225637915422097673278011231146928882535930619013206572103712366307422277275665557345236591394475388625430341607261806520862940068390743916656582548157895386029604145468186110478737421945440842544729057020099556708521773700396349955758864618200967103742112403220282449284921630199765451337761368670040733550213022932279821699972271341037537016044361434773657177525443950969455323595390917677963819730607285931306104047171655094042999074028728940488255114200092067062956128498073663459828403644241359829584259965129353655330029070218275532499889166308034172853505126620625212212596903018225180847934009130457290329451326515558363064590814948389194368280700881089249310957566286735647640190106331879484518280987804609002938443274558932091394096362658531731213698959102848412544325125606032539046313863672309878345312918422151943945787936272550733894752436658100194486954524723238911407188360887872713988114487426958878375937194321984252008269219916714232526921742746503473621193054049872280998738129595740036031543311062204083170855896982614786118196582370967662582252668515119755369012788737608564672380468918429837315533854157580557938893954717432592963376579328253375519630806205607414392328449605641117760924822461921620225324842981829969364687072545396165264596512137193243439868321222651135798739951785001727446587611043741609052205817995962208680892239948775370587705308066922054208137120768519009141695125654315974631733948292881402894318864860649696475938534882701947093125122161418975052690395416605673387554742241647587468118156036061371591021108519720568460639867853643405704410609749498256653208391015319466036961545290789926029622409925362360811585443524134022728551462633442134533873350428601603900694342098924873558355632615463311382658639824071174457428685221477642145203420259575800583863312215586742577436886582324378997553416361195189046544774198326868023691739471574103058151561161649624289200240415481934973529702971684077412906948347106075146207327231360803883186267343451807446528410479172178606004383344577122662614070327672789893838883942149709344992335127101955617146712898902789319178774313707551130461002260257428720738957229384268539167856050835967265201221880390403891646183320846625504214343426605161851573118283416349714506750417203016747896620884354916726977339541430478099239229652134278663759890553507160664811011912896755089327325060102572397960554684872212550289393737393411587794356468498105072645372800203872862597795914233478789191365475936510094121232692923639274703401470090244509959926643683324200069537555174907307026257223286873451535357099149071801393988018526084302010107381310284231537793030961699635219866166354682958954982925137828420728410377173619079385445492935532597369928315571677457475752320820694807560642758484461405853214307039137984399447812898204868373076788355415108420199302589216713631073024638998383882790562976810518910170412052899885168559528517054326266002876589437786528752965655812014058487004274899420147586242215974099935440471213521737899550721150040288706389217497287839825591370250780021186823693273078749606967216115467886266178745625513519203023989326356660330943906892097260942402546829751484086566924661206722316307828815706253836555414185654457974197189465615713082175790624095332363833144474339414496705226068064117481103263073275624481155250733205831888501713876507911601679133537784009060951081531825459175919392236936355030224392689857132342827423674536970570861020464159325353263916403329172522183539711916834395633376268536514767138388446104966654748298858669775018251909825705279000756609896766491450807958025735653729591048218519265715834695206921082576812631269657185958379810596756774034566564519629907943769203557209823870885905229713771383686581080703964311435140997201566892076411774604725901785579450762197733448169633323795177055390395621632751716258986822297097221010694534895200841562271717675824326214377728975170080694768472851109112982734496995114578167961727672522730782079296399228879486839803494692209266699958363911332481016581884921065561900918221324580504014315664460936139118277534659205675947290812232341444872270044555798653013721888609709134778168351569668990848524053856033072828427917403712330998441441839866508943057421901117001823266959877728779071863657521270882911565130147765942040906248780613870567011292029207395119096023770524282021384125905985327491971363158327870587845561678064084923397765875831787796150670720328069299986770597251639743997097763195791797557401446642534817683671125876569923675381937590225997355235959520290786590258966013394125218522506355818472564914975979895702632389706413197264437370614348106064081921401555986872155007576845384903819788797124986599875002032921866158502290541234978508903275150106678218240674854069377961248641710044568908058376910863588573281205267849195241564582364725274413776241307252901652524610348861877050592126753933579300328962589895598959715909786488953001918284232371116422240084325150391507429615706711314582594019033498445980645723140879091657582959929030289295143473597658383799067284833838650023845369876729247608118542145079844978737628432545542983483420655304663858807576619831329037555442419975585712007549630255126463436950186918564817882057758841489529666509012385793380959907447295523260799445643968413386680923161750991399125739352401678439048270159906539440998190891289327549881985903443250638284077145259861372376331137429891536638353818935763690622492929227472434571657501707315833015608316022893998419216865741901755297563377568053487404887766186476123225428212856481699687973119959547277118565863276424367193983624090480026762730574420650401824758635409121915620408249441411312546295792333607269735821557831851225140083230272480508107182267355990937925763619056820636264968745690889306344675228103768909228985005240034432225194505974376107968131799075150343254115512854450925505588866127252778377401308175927089864782398503292066436740368747558851734404060997263725767991926556835020589020536371467543995231646413040454817209873832848168580414501190174551078255565494707753682960795532727223811805027048636973833540491068657646424269561361727380758030891702115796600246883651482824828621363508158935425718327315584673131002340055706337664805469905616271305045493350301115552763836284279528164483928008648900343409218092577172260406268101845071794550766962863898606711469875279275479515967782376063796960950276400279970761840005984486163801615908636208589561815322358562730347162473985230409272167234026758919389049092704234433424104679624011635767904320376627002561911369821482171202587433269444208792069041098481612206603967541718458699367782053752250627634829852730244964354952609754937656148129669383452669267131660336175346126008230563240589270208346262261023460654935208333253534534971604056621441141771840769024146506650489816231249952360749323369851110920055158528579026398785816309308364463446488151425764799943720049309653600563618214881149360861031767662140029349272754011671280638739946105027994873880054014642805933325672784498238519496390789621563621574533405774891461025596323589444179179471239691763608411983968637702843353190000913339147670740233115206330786353568889424786981472242655833850156371034128670303002206634697818245344973343001288764032148006204822600253085711167588827441367869706256179305808976505256704356647250648011695066952594540652762122260069080118012962067105333101270785957837960936085978520654477087398607771420870265494197975170212202311230954455606140956916483348751580048759043977657437647412892140670462103412623002853218850306422007765374895962752005309336561668416163293892151981904404864868382700225175655060213058136550843033403732556568837851775554034308689047257772366572251149073636065733576021143038004587229511900176982682678139475384543522573436983995627658131921984202433123756434863692913849485081930960959808673130705626691763516435304685825580723859017817931463083167299206742113186279584154408207725217428889946956327874518138449506581648521143507404504467780811821707341387874179080929632601523552832309725589568444207262380181639227010980143105905649362266264373430252095075584882468665644909937384944833152078598551638500144736333014907165180392870440691362628211325077220346242540804903505504658885312273131188492884859142261966200582213810356874454150978152778779711807198658334188914757563854370340257037859250840730156612490519808345272534651911880464766992611000719426138596364612684707432926347669762115420358585392143176911783032262595271686128414699943731737897132422566708292055080083246001193149773751855935402350554198175660074358941897915479352603348343397781161532852243908405861639815916761612261760783726716753264871213635841601569669654450858213975382745037251498848802364735009232662279836248127274353165613192702288850604197604857295202775103858656913321719470935347325261049920567262449985726413038264438650946626405963625912816255852468213791620902441832383002593350544196065466279537730915439036263550560019609018117153859650153904138821578102272540452269535649727063362700971963450209110737322958414060130646173812081475839174070271924922183767079855517228603395260521094396701321728006473032179436085438576414467288833668989458459674268828710834706713527850246260726153021141183056382219506015112696049818514411623167654062585843077962868833969059979001513215633716596481927458139700938503520335360427684327991502377074261262390536557444619532371297446947423441496068469373100879464531546419770707080659534967684851349739213819644903018467489175296248680450280880074565682011786765888315132879270424205939138215107847102702734542060426146109984667664082931184857217949386763505573196375400439080972270203924820334049594827924691674535952053281320738337237840868365226936777622408672963081390869852840523184770774495727188825627747299899727780577497943104625275318521960430288060907841727966020099328397575259202963498626638732999810496095168943856320974059832869312519140555118643581155015421247119801165894095364035633793550082620364722356198364500678897185978455620620667585849209414210408941122159291918242560750033016582409331531181901668346022994351933685172823706389548187803937772162777031963676938621507840736707271454275551947014070443470825260211188486977822914525489888120805867950497194056292964493736593517109507039529878665807178012952678250916687340529897871507160756043833848593659895024260779427972894223830440126206776482472364392322481959189150568860084352673567966364996322334029939834609496240888981012491289388391406175120087553037437420320244403055001410317061135806838093045356048216180112559137928069422694387040823038828103779154406834607836219831656202126533130895355990445711356128303677218540216182033894800187602215560279618618701234965741456290773277427249332204223839460341469450389629656573676873100709169405616944727767300023774796162002140411799579496972368717536351304150027891265452460508094459598728581696072637046234814510131085022383066700063277059671813027142086896295823623781198162098547064050467925065590749092310291209754734940782971618751449133717540989276834764047726479316646504533915251801934735534846508175444343014734731279306077354678439969685712305979886147884207814574763872803792222578095050641749857337840400672842436604065287195201601798973246419645961937472564329681493567158254619180271680735257388225311927081925904854689142695141612699395372403821651436599710314117941408052747068067172505307586696690767285716137060174549763149001083567519494200311272731204259153922693731018862660302250545955257109683549311326106254170032677283123985302518533228572048904837140121906299426454161961402167570165049110969274782833218199874434302281674050140978294312869824644581941456447863115633921960828700529149185425769360153899843681049511429061075707450896535718163559760329005094701605553192015407151541190015631882368826400146855785881939535973393283351196224015888302270443073169391408124348000598231152669875200196323353719464114307974830390141092124128082378320509734432706185838919071185279409600315335689596554169658954039277054922937907427725441466151676330946204803846495554843743119047077619861983450064351609392736479019044899833668274733983980660456827732909071484837600357377198569967820953673084458970663392471933311551635868528272772376976888774218196659741719544147251514150392829509463592161335412115472021279606580546353714984089198252861955181287359152599974369483498920415369103390356458461529140091424368046842952427199614197132630854205276911853222463406324064349269519068066389196086796025742093505132875212803841860357004600662812620580172580480062135433103934536706644498882359078515355912641786201282205513838131564330750084900410527966119216130631235401553685821156884550214939193318924033332567555710059384654389192600363228309608937129084961597942437001367467610555247000348194342587620107243982135126482821536037852833230406057969680714958842357973313176520839945497905929705980994387629847268231608056439259352687653686177768686709744221770478157408058058120415275197678803051532095958337614092094489103439550937326687455670080729141641568611759169493161450679516316160281159708379988261216116037160990450782949264421699992596760506493419246050932266763086680029577698168151577101567081967047759269270836334268014383563903372834085593426001338182861086559462263718205064926617367541194842823358853896561403727285884756157220388483410866221096589529498702388433977922359287354718421103277744950721038711068855272328809773932779075003242833064317421025012240376284117991954621649720749331770313183525056260585112349127031109654939506644633994733261070211147451709761363753873027924347932189611823928070633526921854467054339019580884410907828899728549472847393079451057964208547239938424759621195816468834286504527938092603548369035944254900945267137239778778698510152623460208830330032367943219125466988549571365842002142247953149657018190966648984908376862446647481068118196470203993051784441406455495000106244416598359044047969025225118607862756024166253672939717900851438462174918953655338159837830038091231703560596416345357362744197628604174203258903280891461337818793056194810904384396902744328787902360859585252165655164200241440743317544570960344016122174135817666557851596927237188035701078222485039745990345224147948667367614028257233658912037376111514711954478449266765252375362812888145629629445584420365412771163516803028596080171931758427569394256173548141993098796474883009248617405080035611729371564507040062293140254760543183416233015498373726524149090641164481290911150192708897445684699807672380285459613939929681543929773914392293285077973020938516333313471219406469941525899306340078706715710926938503538751087557088091823121570000409384717707409545679073625221371856868369861707428098981772014832748297477983508243991902703406779049081616266061514948949007535374504630095601884620638018960210554234240149704646423014981382332009706747557650116117112975028995503032544016097547830325634319733940579868557682980623165405669483233674883926014013238683347546751461236029358066250871170934459223293271518226132999119687080587315985059529586180875816915621285114298509887424793976667103520197716964108554062830736653593095950266430739753683533783411711154109584226660102065008728876950478792111696532266728969798661900032873269375136453786102912922168645450970718558770038392469686720415630378395980312336583991232101197399797891850458594063080334863934313375717811116008267879258513440517994659952999514233249453260749835504326457721670562924023540404517462689329453757794343810189359899123650185768196579009107374663887063620024404511639869253898823197953446446907815104690152583708749551911552624856560644206469993648303966733379505469840999053074774727197116305057970378521174786698716664446781673194074533052020222910665542045223678958443322699869549709865617675731750564937517166292749327220562597081212594104283597901114735984925059090767914683554721466391832085575397126273592588949093632333372890904701995872943070403569788507893346046515399629374905760347275636326378182124570728710351687967173332286892252801382953587217845537043751364908816462535629308238527106413099000370243900820406617410365094476132121274236556714054145452783765298745506695138026539146668839865448419418378732698546044937047508117152888529707671573433761534006395467204105864821508648449421587154300923380449324759292813578550317707383272169607439450273171361190329264588798017921432160034276004835548831695614056960856249607172323557184882554285521193473966215085270895877605539642637727634818524259904783582367061297223792929055460177811327750764729409317694201216091376331763078884901007266164780798156944827146802779498641429726207276007670537099754785168455245144982988625173638939866215819814467989179205009506150241456014694952081479369981920659619915808687794307388713632728722566519290095608557238064943676409842375254791239158717338512111496350917840110956762810107005839907522822499070853911713900878503202780010178652846145513068642310873443734950833546951343085038306241725918754543284176810490012988322059366931601835984203640779842033307025743350158155262905577808598209365605861791156028118667665353812336777664386693596086458179242030773953990413895072918652813414894527465646351085382007375621633188097279554358881543322538454447202363812565301284228841115411964844388957563918485845962136522604187861227523994079978198164040672426993428330300975224764335924547069897657775975950056591265573638369084753619536712151498910154695080226419002662179153254731712878446529609750196163640537263029785058369031768789554120282797742290898315541631796285796162358267522123257663949378896203898580493983882038605094225746948812752199500435705831252509238596092526914514692636825756930612702406733109992640267768969322770462533112286300360717167819891572482432541977457923835096555820357828114786521781953540428729998671329023188029883803428610654849989805367996449269978515194972186482099786524214507786017635258480908588749048694332953284652104578243482085530050731538392059866840181959294699307666649696343666227261729683522021873326629900291087859783940999268146831932883489240157307733562336287870053802473595206023697888812437693448367440488566515815049283786279366650420795980385450333998543008793084471601674893400359123289552648303091025318602853754006457108989425242796659962713143032336560207925385686292266383703570399696844366911691375608396579137671979625982491830314708631127197387532234108769476504885809759776873324198510960731042555829944068088704422022986508415590347400273278557216410121348372512666701997863263084225573271244763287101400891426214756567098467146287698508480506652434127096263547546566499828456115396481216934203826024160073674343651523191121831212752916578999260382811190384882093553488100965535946115322516228892369930972536943253442823711634424350250099535241125674796573877268577196518655513523500733963500892143347109077970407762200317165526049855519947343964470782422235069300447943720565652841121935570041005551262699217710819019202080651182178489452715111880358672443024663764333060109854505390383296259606364675789635784475373395932600084542711054979414931793943583488641440893016096335960183855278886752559223764909124239284752143460472460642797890076502478511827396400782279212815633293523199010806702778002939433039629939292811847334824555025739423658749320270319202657461840969953290837062979259657673971184714374002327704270083631004674642981017415869447109274648983668623664726049636277635760534516046426691353038341380897823617612672106725655161608594990469436307486659760856000218143394171125485737275857229470900814468030417325229904083768384796735356639390656077597372809782038335375571949922136204502105561026994972306478522162899805889186902543227070976586960148741708222383887113507755926612294060070248513532172249376192040005171255354467174212793881423558983738347531668499068196668877207143488500603265592883770465611427043112141452264532768747261936982521101007369085431824204293968704653254194676335664118136281392680758800874083860130333242967687858307052522093226314143867231642218093823189456125384746203036919427344227909204028542851709677208144739226767259361640536186670244019928964946659861446000568422077513989356112395786416285660505793255568640875445767564148791240278037018120571598086255329971077709434972041892188340614306520770958647061160609955233600751550587518017461034707759892409449392604200962652868622650666661235673598227557488621054633163310884540352448132194487829250702376888708751439252126309863917843283147906088443663910454142786034998653711655610882630128378094978166078947944806507137879332271768783276036466150681160821029985363565350571816893030127924094043238469121434170126448273985412251464029116770546633632756534248349992233916997346959393856445109788433790511586595435208069354144476728798736477324273518224425907438706713805402195928469502410945343993489469208232467982553724988878810976015371885717060246018064003522301005298709522297104954348639215638100313399573847872309887098071797641986124506368924837567936576079364138742300556929126786206682097567166275758382444429015827269128074994088751927757900172677882520128690640482628373212024827421550338355964372982845032912314945019504075609101874542484347260099837459897012359794679186168349054964339434401259303329041753863178708640861114919543927515506103035676111969753709351081717382338117028006027966314548508772043245961192598662875821599679911531271398244058993276829016756017347525486937453324767902530409223105461564095611372640696081110582588725390532286793070518358875572758750760960849662610160008722896534227657869008285241908508983775100535801767851871905340001830352730354003639817128658330230532886095210839163772208413320169554210037480263973814038057731300064252866958665468270104476455382184333187697246389056825514195384917716809271093194611743339915052279738045127919814091545280485282247561697682715349059999536905731013420020436814733828500900356158538270433515464235398363646788283745246376987089146647287549195027858679360254307943771910354271573200048438592459249531437541482808351812196809706464829108475918956024314839323311529185705177139370598877486177747023884772597922555605661587203781356175512543736925850690254164874974445081533908679753427007742921173766930261881240478050370713353623678399575611349787864034770395411046692656739875492033221958842932381755965133021543069574225174857504519000295354662728401572397087267036170674005563282836927764394443869795968885360588711776397681564507489335158780565689510273913320284498454044188412137942513465863494968225720392116325085469026569061732850342755345887022071820666289876830339375749593552438645474613288463685329393796805447102837002308088158089783122538091268403952948047532423666155826665950612940064794002509057230245371238501614462713930094039372948694820441855077350357473881901214519579144405802653129137451899366599589464866581239279901281909924056815606582592413442100711662925994617040394023642302220413204441733387336701750372534028951027914037522484369826854220484826777855526133818052094805450458596659777060985316296005931901835723731222512580837502696123365686387852247619640357718601634080789079769531389367636465825206695814485301530765436187578756565133476751699846908113015743429275041349397070469420447294193366858102163145589057240797634539602970737691416302253360275175740060062447288366912205090994987938371207541766063665733294426719749844872037990184264271825232452005468717929482162600617167143299018944693920018483082491131875520855659366917282286989371399928886138065018662366720128028230978235355199085630763541243286350514310953785302370194351600258750010097129242724020257950419567299560721258686884170401014531754708604447111666122556524141748732282801308769111338687277305602792939352963378984123691136247166784550072442404113186399979027992962839463735559706549473566812831061616869059295357319476096192559346443442611437071826760332867428242037447314004149883204650582688593433711755674904398929538651604370753174949244701774244240687712352535240863768830312817880950030182558147274138733223939311723951125975412349775836328795825177352281506411362217716803867973606113087914929967316152363732695829426695789892548743445440271572535386210312791973208962938681852924630371615560510061083247009928123308087951185838744763628498838023759091414804980513894534458525211155079084532304426975256057738371338126274048430756719826468264807096227671646723433821359018095321698778676529967999509944737981933834832212962375213340624600424313938703758747170734422525942501417631244667045211368290999990195443924810009778292766075152693759174991715151616861890298027549179670640178797618108706366034328677307891928522959074068334662427900880587123727383539016884191525510867671528075364613331551086604182704390591035408285352902841798115993874591306785283480678824404543209992691125520572908768466787311172216236903141556545188111218055962531327898395115687593786734822839644042392226855314496504151387927515389988787214388778084514057327868499510922603401637848236182221662569636852748437583949658522464636382165146819096749821319120151275366470627566467499128832095243379060202214358944798205085169191439934518454587789166891467463190970777387441471152392749068613110351516450409142863152997075231440184426396968894438063958740308975377287565460916143054086901675752716288405472484602747981959064940751463257885384295060126316150314999161695061119718882777186846350205149443833691825035374047323697919448430519987644306869158600421149450043492488291695942644106457027733654384598282302466044857004242580652019604852287675338005205054507101777469187087620294844903153124148329326868866677091684751181614051320075081864513571170610617423035846502235994173731593083382443868507703970818576625574048696325286751677282163656903155957583396730733793927826097869434638639110519693771462674286026365538310276597562092449585336427031351796140689128023168981026706424421527111641468253307471738923031546653320750517789959664072984484646917805863897968170383263980733270199697435193085851075788710428982681792126049201582633982051543752840531170220262925956234198127530131264564126449690465895146964302844694465603498048775308892072081566342633090750676614063549414845413734305671243843157283419431627096000919023655486132085730313315442410038281638674006643796914956483221489081403324252111578587966657227271966667788971253849732306723540603312742726367660692704485871308569809977908508131585967884913485379482095036353123952688259937411666062803174549843858083491900276168629709121840245749270632123218799690872746258582027224460965126864538525149895654642465194146061103381195540890708714687015147507843929756094339558030030979615039343735831519758260004827186164939236211811152841755105407858118101306317277339210201671488902974559740110366145937963744150286916963677442019643196060160656088576369332359531738755783604112044814414968459951923233876616446076891670610333824738678487171799168962966059241224172741571437665007650508491490816114791902761341169370068074109077169379959825580077614373773654316595594439758973354526790111145182209705655980273274530231074359382567340398554733418705528924982581881447007312260814228949513669021526939713626921583102073640904730603228206699576986332382535290925343344912055287287801746701867965363327159908493200469542618503656781782351892220702821474850445712745908268002593399594293306286434705317677398147309868049487931553150804586435691254143268482961590548310378005357232149218103485055733143706933935066657026824904307352817369877453549522440540088109927409338755091505746464274903737542819147133180269271156209677825498042047149676100241500191828424621595259872072075624628379692127833898035173297708203097800472870846209868417528692196988228668848799291998737067083650504021247763941920848074426825175850950248307885165426965600523618332943383322485924557534716149685304919032531032026189287011647496897335348286948280671273124392631929415735347422897764221109802354289032860949145288048885619206847956668077626940530790091995116687856354983486656867723515531306248048696291442139011538143343124851257334514820900281154628496574390853547612158391348820414325280348802101973340544056481171649558141235051876242401702337272321502621016349036218690684901364755054618920692902862592354284594434075873603342202237212680567788403220490399852952531501149617424024743150862071362365061321402826057880297390914218723405068156395913925813364172681889233076857530742954071716202093445924731341265935581739750295761622944486966640775200713123243177870468446591563138213747261926741025418659550338980369323566960494539431733771816116092613882076523551626992710999053664005315701261886293769065133393733751426402207464214422335882602006373303217483883987487698868960616603987907015429452976804936289928341087415122619531175735349742525033244241433585678330198887484971400048642586240447747258838885964411217151661191086070942954326384203209291401332749929403721702115153759604259374166978690866859743905787194253262129263444543420505389586594192196149005076723804364669086576014805776752864256183415041738889075090380032339928503607942721828127917838922297229180205474239011734750478470582184370363677421757828537628549109997139798596214758808780658386944269351723194266365769819029009550202406012697120616701611879379546676980480689935701034946836010760221313678953861526232380886018949727879164764848159931757094940008251262521076232618377662827762004357596162358324148604405864846946630005737364460306311001592183386333963147322748258970239069708097585857029758800861697047616843991822237314220414789388315835733099289281200273903252465235916251489542039473905275328891729847801978750298418757372031163276713479151340437144698762122774527836966431489675949504330703458900925089713369817035913878582095658011524687224758581414344334445103549595906260477800454442412327351990152137991274441751867164503469802662071602280496483709282226367068681504950608512705988335885448405033248186778891492243043028045632722958217522305523852567386875071478753559771723777272118539683837654710301451608215725887976205397879712447663381073985739890239384188545684331747410557263428293308466829161564794885613692941749918881205022736019727003973007685918074622361235690434535357430346417278356067170704159829555779582863116026882333892186832226057164033788497072705442162057579498568673435719290457129746311875022120724959211089640520033777308397399528940670250475279475142368074347424224873876334986947341322441248752793471382298787482708391450645872638081212787360514423712825753644722801261041413394860855995555869573962489382000195000630858736010434162681472201173656187708210848961727329499509612737346066165439519414463544851797309237713160292279205331678103960584143622455660379035265948342268903316050675086840273055266185405200842362854842779073446383938379456889527389571861044201309288804650028921043012775205999065591261855923179456705262145714721216422215958886026748592364024042837654530415616312694938411907760928228455041725073310189473303893057957070896095101506055517049883554323046294459125519906741621781634177499381467799215431398776551984945095402518336282500475244847628355311989030905537179147331760480522464276644792846026500283914605025046352456566130271480768015381331162414214064705367311774061988715919288914068255895524327842332970284572447998356080532814392334391646927931926413492084011451944851391631311796062440380740219991915329556718225950241078534119338392752073201924540238360380314902921275964379616719503122636637682489279939493845425907075045578634799823046707722646546687505037965454256026771884910183612050840574863601895322435899208834937305752577428084467199271091920993028905713912272016567805512347264649399799372959339145041132944664733260864001248214619510257510942603256344227617072551589716901328685733636811612830716133607810555021290683964008476007287063951094922983878679277534751053192042029226614314785074411353629875834541754157450485967199698749405065466567506332634765569607321034751536848781900354248958578940717367747138665380462976231568094246355304771767493567534757566599401938053786172158247563750644165881102851390718781438682216340883931348648685669411336855460860215958272138723743352378390041850897008551068172044378703713649539969961475186357315714049429763206961284507224258761403497918458511541507299332418849033939814409572135859381668043188808665260687699864123654226200681278977793788446595573604704541437731843922361874133000294104229519166491635384808139447400921057392847954481113914357276295966610466779812677993964483138628476742529452504969398594107044784384017276405723898302602428415224295129949258257513820252556225382912193113747291314447372453387284828979642639128260076032513010317630656918404730352045878475252507736523053569375415230525955328855795576034611854398719068178474479020319749580620975905198666527456253130252993348581209892074318166377354313290869492443592427141889001669654890076209745647444772953822580910085867121993638543146193720157161416849877398233524440360204595748056856141089924420930178363450459229344950560679531229022490152196316393815458691088225018677168314639430248651233067352927618465363093501680885359732410820009053306485494020587880066395492581323749555207659093591307283563171628140147719919558696631497965827073420822254428939516729185898475807205133641785670494121744464197385627019130301641064518890275285751419911408760630494466824957778725092613780056137722770869201538424213287355887813827380722232479203686401099670796231381136275257374560639360440536078813393288221961399885020679391789924043765419458361881728466815939597318773193889630261488549481844321201356004502692182204312485702478564379804037396455001156553030976250721648802003840602521968456788375747966753236732480061882565547468427089186756026004415851574341748285851770441823677341020949605382282623137494494199406269074399786823056911729603130111138299404720751135521911564571062530987186866054965079805719407792297542709428809768159789376264620722447757851530256236712486144433877033049384412509908813744327364995171848308443762596139894268764781163332317284765301721382619056595376430886345650919016405170061175935015589930151004071216966034003624404580181112109530700568664260263258282970255657669516908191656238892787098471729452750099640587240088070234926817616164172084587258936555971203915611461035094051844289145898606361787416342952290741914232574882961949653466348361287720240630913533193004137408131450761222393904523372261774229665050752447077047095750698257485323027824159935535891372103646066558284724493912345011721738254285942273217700743056056671649079882390951270746934111307644839156375550919314606778644497874765390304117631217378485246107360700239310452281050420085646241845214543628404180747849141563997746672515153758714769833078910334981652859893738429551461277806440486429872344384867299569630524059899100626027530732226234331242701036957656119468689758798443442567508600322157817590537940481107253458179288719247070212871953128379186465770651882883192460589481167066492176248746392574879750896778873380348577282860016471832629144628110655309809192505018254602963910696349266871698176444023351070179770317331626862337153576865629154452493282771220223940135776439903430940405830409335108708486859210753180337321039355721551417443124345779709409455014728508152098403495421522697458973607709683979354359795932898649856384025193483995159631851362395736521031084285591811503331995703670819860137517093041693244660473502431709683583090250208470592578149899071747531526060120260244359374149316670204164106478993637768316787886582122088919144078150503096841733658511229716581838656957463332702720806920588780493892665904228258040191714498478994968840372593578505699438449446189582906580962240057798442111800766407417252933641523109601155065338205742479344289491417593422326979648369689450161841133752921723911134437677246156785650188563987126493285166258687762254425875488078924181390855865035619885966620285967453360905033310676245231525656315688359938387664438037980802239595315125708412525898797479845696784859721819796738610418059686922739356183661166939831020672080267797870095603973173737698141971043434617870938862465237603383699057385686003684232250837809016799736243354143920214869674433446813765501047256928896136617383123730451752890330931086104479981704501896296148834643683351126736095863212943729115394127856440968963808266511268034116893722592221305789553131503460320324063847723268092832869228205516892826699911598767875696600081544514136154520313719875909960916604645092798569362032400690540552011274815366042266601937035877521039272720258330544043224810593542348602895261612607818344217866215529367166425032814824496903163954714909567574772235874160606418628368812056860328205574638817051397467852536340904511876443553607034110757591718540346566427305772707333112392214597332756875416565664039962188679542462108381461660615070910799881326338660599353704564494053011850312753627943211292859383090630830263354220597176683729108756056121495628368842627896268446695497865207064463726256129162160707450649852119703744802278951129589614726429055953961406644252488065161683483729558612281322309520526220342325008902220031709369054460313039385481407450117799501258824970310697136102092949282081536382024318045131090215772590726689402481171958425390328708057306760949226191100165305425693718809612872162108890711466924088513902680843955251916436724452514729882872206204225215285049975286144121298379835873303038815528278236852660855263400222512137913891043262685243999987518043346470133873609834489902359070769311269907806053510982811349408554449048712180632009541595676396641734178451394402241432966020249116432882928909968134507522099891894896854614446405214003113081714807750881464488248995370957557862152181777836965267449594876722432826494526196491490081047597181505041977937191189605795937145314773626560085227950198249568400900120463942231303325034136405407281164065470302190650164331364530829009083852723768789494669619515339369024672089296285179371980288822789632828125831801361718915757729839996354447716125360956863726785078638065893261818726476182016795079755465454615289129302727726717958080512180416372896063649231841999757716998890618120554765625475297936559881044328981439994987922298019553800974303660454135161897955313066221979597277646439943608454102694625096615082290022488010304022208646656531818839764241837363407867648286781215519908228995036625214126805755716558146156964326371956190665764306592750336584296864554476120038303862592221660000279654356429692776425353462975700025286568544755410915926053388696382889567132853871458588920552660598907828869984069047623729986900306074677979615658795175670519940896390387231447079295017131737370478939642324823567599746271390096024782166202483005160540345253964113813414496376971160275259157436656980353858342247823451856670170482422242795363979351790959471902353376575085617264447140295587333802411726807053725261217737713898312723214939287274393370569072264878119500399205227455402617068051865088645247965033839124999549657529768294266286428088214046724182677220762606936388167880696399282467508992953004211251935613124911269213728829711520708039703348864103073796875687838659579986690655969009731251914630152906156299943701385660797604054596712878800714854943868159556364988215965533387353325250674027291518434112005005853836994305034323942789059568947891127554994703542349938996395348125275833774778908004743076184616801726838485091022830316075627785448586626069807606749726357767398811230215882772266178771216278359591631817114400064938708862413975755700719021840881900792657936787925634811013167334921978681960358811290644541895177163193359648530507606954852116915224674491315047746717830832140116349977856608430456803975808235159617975605836445457706321170258625329353825366149911993211129731361765004678156536600096038584828864894153299515097447305887741364088176809428960561699352419467016076706238974045084630755450782820206807468407140078205016791105326452489284004521031334660812781070349265854893009909384301975119662123652177474209861447175537583009490591133603831970434594680356528959626116021919242775843993732871334843697976459100822217667313350146293634986605099380327532343505806406766854701941283273776717008948258345346257283880661373978622633325721707995354071721810250221762675665521018320820098901771563152351104977387763993845011430751036372262033648013110719507780535145893959895564856443768483786893874229550365470905987352372978152867264299565769260021621744901976044396702886184670587680799912131795626120520876990683398288751307118240350409678243235552488123431785785475564380078959461355445474392342684725978469209216352947274391339073144784759042579001175377868346386842822760692478579047966401576521626338637347031695274567347351006072977668187380629156033237270135276143251376311835698417640091453512126803820459320037773626703013056948123872307298624757347643582697862448338034890688424242455136031149465028991527149950668371268217361484597838586505501793628839245228834542831793452807397286837543887062930789889073963500878036769910041246758060431714760674177031449548068313843365318758066727969380698515104858402531128905802728867124256196824742898913004332494953691650842556971575624090697792940024195749571848242672437460111979246694981005551517674173371954390866498392791786635092528294345933586976231407314277151218499343448816270937076956731778185720850094593328723929964747091200457922886683768915712027617422555395945021537721958688416692045585720748155387294246264535179382499826386965209190388858443270796589048287796579012339317844719828669243437220067497040971527608018830149244378182868593740195898904065368966206628486134259826857368038625082748880280812440228372666360857229537327190827894550489916370732287065520466887235555525084678797298608720779707014974817448894358955953140628688874837201756422182526631129685017211759259803062375286360818323065240951754319680580579276283992622669707038310088755569167264274959112041527047488409380933485685907819587057050678188430203082866891743636536712618229058860040074474454359635564781894952528242985527554887361637477351565755980610126511132749278664033022089316430514502562256662651344072098703696945854944284061991482644277756782693744032094123437376211093983031581473641872321472600805093926643426028735411035489401602777316491994281117756236365632070709700906772512808778276097139158349434944990135340521707366314306223088301599203824252536465957852100574668497793032102070081423163871197113288288590428698531054542329799722597047778200323309781274991171661331310919621015140409311117046150782910239258431953989214618751376889560385710058176975842961831126528368483973841117311244417671456933515806671538180553746099296781862110640918593625415023767187987749487149220663383023039258008313632626619492697694762707625388973295072014327634484806581586317616552435004367155115292266881610625178456273665386017530736301375276305104387851099530474674972240406761409244021255098559631139417647127690992913226214570047023835803616899270427174834044147808098223903738327349300964238775400562459288142818234940715201477719457692654854353908435326399323779980666890406497641447028915937661758399727660322254998006057849390628557512876854905941783621105382695668242426046550766261075488520094062456844292249301671178740311350767100509539155925568050625193009967395836039066102759014177233772556017743958080433016619403178199675868361630648159568814801957794286176466523802567056219058692816552429074141882358673926318416737913910014041777539917480618528508396623233846917363904361064918827177269774056753163804516287040555887735477970318092772177479826811477982943089458368052161950842292171686188078258608856979486276592387994967825198433275836758245195377070199567955578924027580517050429655829487543156691787764949008566658839936149696566373439767542256058276115942633442731577380530710803972684718700214864829218147334937721676287266405699029279324596359974824278431940336454242227277186626888548477189438762603446265498113510806273687036536579563414291686535990995480436568648403809459425229959946532942200314898966653459148087192798083218745107950522645747561603656189801588902773106222407431699975733329288936758293456615114130473609923562030482175529422647400697641380231479632426540074819297853779706200666873391617724870841368406257717554606627286312479346248461090541242685091945510334985343833025131908290793021925690055930165576989380068842395325453263041408716364740427277757246117013429923637534011689591968311844326812533833431647291542637370444847310826633302465606737232156091766957384625433326731369622722038251946762662015052017995855440749175302039014983434736853930273661628440502283725618515891752313623515315892004703624845264843903799148969276077339578309550481180577878011421790468443547373671423225728847225616772894731530867836097408524393564152836559126460384389288117438767374094825211224620368875389023210803510711593277553637757909902937147613753079958624721178911332356941919823465600946750566252970583461374470666219254538206226272601656862817381325458745412664979950861742030582791941923768098359857079575877941630920091435913125080481189239249808314928135864608639706836318860611094167618324044016670928743769442419408743180766205428833844940861521706040636715219746583811884037924767333366024696831043619994304906055686281597892404373870656637826995959251042886967461241639881384106626922952162787495329908141642856070591313881421114402923579440807129707003641904614165688056545054774158546434062946950832031052221028645946691214443534693995678396678822295257594917166161451372785045218739141654202121152892371211398040037251152926475881289391242993993497024921492803514063134598223027416560387316887468856158073908284180359102040644930171701818612598111392583600560623360966174176180560428155472050221892849825617319330969466923952516899451534439031583099951826176858498237490126304325400364088866065087595417411686425729764882343477126773838147643960522052998618480896282195319532169992837169896171507362767665053046687185420453341272190749243401626747473984252230872643470239634125467321354146980253421312994842748417155907376837013092613404300700882755132293059162804625376575202587308907540346115125497855400737202003237870629333178364286092872689598066979944785567886833967572734940560711627837674636457751192477505434600039402292276231803302117877474620708123533876800101336996166338528329397866519497248810211689706162967633956469177340111952206639270023148794440835921994692610141600925521701149999086224730190060628375688916641559482973709935212245277527087874177025885404320602970456334780439020527737475249125820625425537988496882149017738987771992137648606284527534989956240352484071170880988427353882095817837998920194156928645176049877335802750890763438747227779839069362872600045873356961963293750484835370779086077170649127802954081984211236965942269465844365218324248554554922668710144410444034802179431271960644167562696964418781523283485340619404215093046601194414043197189504775924941118459241266336292675033875930906319869401358873364341778297336522266479760179746275654863885214429634388296035617585402744955552550568617581613177192542804708401090861322959769527628904957695847083417449845625285008504286198707174069148774958483899477194405341305448700719534920550866919071133514563654388872171266771042058523893527394614803055455150042880546220049488348442426118977561536952841566169933097017874008744111872166407689093351021248646605888574409409586582739672817484248966405002647409496091525510302470856204061286518021327571611030872454125835079887942446225440498170957833605908310073353474844317774720423212787639381794594279864847936290995893123305546559443269916486289582547450123933963707461186331444427988217150389546119298286983851115850893220082486105704108790828801469054390985400384808797993409951413591698988187165777210417084505528093607426847714067791918646223312501085742529030537044471159837806784233520181507399922331724597510702804124228859328482340890971068388885080044017251628687168128291980937972431274072952996690696031246976106510630800787799391342095501952298793815302337858315643790685596419361425006117060846503905302715826072640992007098424954056082235548018179441648120072237854411547514055215480920043437889497146082818513066112887058076561458413672001951051429197318513511162708145024190137131773471436098469434339738437684150442341397502947459887398831794648384412136451854544144930006460152754101052576262546907240444269222298193130354400692591236445667754030716635867038067157795282017806577023884278253619832543257096304405961040763638107335338762531441426588487817069650120303282024857859026613300924637577588954504262725269488472672752398250251139760818018930644249682268736657084438118335898831414356453976944670873404765877918519356960558331904040837827905318299626511793943919267686615586772761741814443544015119305393985444008346010502398528829634034291380872218942921735122427785241238424114117806090145268528192316615991057425157667410951802621768636095440693875479785218873831261214707351430167321031681249720425873343162130083086980033135523509587740882482226723555581423144406638918662649673536459665101523085191941537895608193581050499880728633562721153459943293154904320572695997183202949142766418752623553423049619759766031512112646936329227983821904605236923867276583530602191623449328885865652036642531252705751858045037157054299071974004183791095389522799032016161475166232970906742983779236561341333707863299746431759645709576822311763489063855696159867217354699191612372825759867491990381422809143260752734202705898789080654453334548978949335301269328024046453941551256431766163289588117660054499505914767482675848579115319011516360205096503942032346237143219903405293276988907566905026815245956125387878442341496167963158139985928746208456201002261067451271682315418991942718714507453791019317020567072775883318435110728027637177240931908554024289819659199841650869501681017194701116160886077266404860978767838900678181708880070538312810028194348037932014460011263389408849605279418063933391606314184307621121016064015421213807184946768618412894629043346383866276009668516116200145192173713817321908417989816619945864852762038050690556318702343318108169522084585977259743483191159784149623781611586887316630395272844356471988550927381015863733317018805832624404548364729593305418822952982499792518265346667400980651730624400782355144130394666236771820569434795274018922680401428443548643129481008456406611690427873432058047603909991487980415961492282188785543613393675387875729666831515096206388489648569603112151819028102221244057275063222213819895373027402191990665609990954772022136866291440146994104646715041141502342013126204895248565018801596824840394254120892854857410534597648075134715503663692759252235369695573600009799354954561550623040233280660084353253497796695939541652301182110323945334093108940089787816641861836510035244745073697455988502668103388524808787246484321561150286806379737423162978204324567244198700528598077446006892825385288960544578385209524455019389984734859714356219085353634067737191994192372408439222659312250257555693597776803685484328772470609491206945856006839023366413890293287912730992743210668081688430415611837545906688708605273918601912922752455967200052277352915916744764781560532048511227207018688587719331015005560105313557827385746855748235388278622021014918039368013332653413974991678693838393109036999882068946791360796433500486597231101309983584603383489308092171684272217365493558697781814491949988262919465732567104965229371396299364897314886732801671800986217140287751534994893381276282541217251984950846059936120321440587354871618449461773558471461978584045029886007981015494082862940084076073709681383793366602342724441439146995714628104193741540667024851528075482661458103641202270451169162873554815741852329721919136553907464984403474885220994775528393208607036981183380796202112081004949484471505574776152762713097418492307215325222642038126961499995658156404654170951099751062666555664956189498773627939390030777686536871280746318544057942667742461245316940239873918972356557793725226654317676498533772253135730201885873286923085134772838905297216072542606653863707023274429646140362239156030846107568020468343400314406016985465858513750309837516102890982473665787361851831726714097286601592500530302823008702638394343263385463340078204282667454161604590951146150882383148034356557940980322746114105394898430754168290031007468714248254548014200236357106329854770386147444348892419761885848265389296235079030712775413667215630303626470583749826557711717078052885943348291123481890623515932947271688013256321374231621462190745041290666072253362916028184344140622303629695878915620095446241157334653097406478915745962222767785997494165662834045494967934075243511996770168102831662150263169269839842156574757361880818282878035055988705796805816881545408451733567104519114072679042093393524150030048043191232224054918853645120934395501314449908584512729320965746709434892838138733425698778834192367753289233150538484321771803674918598563736931644402299393108610906501156292228059588745104076574184454710128494910982355828495799987656491799960182495140508744765809495858833850346006335416034280928371148204188608595703599760296892200872511566804987131339246669633855194093502502257875068141337310153038338537279535695196998466926359378172496182427281731267425514725909038148367955678031308387497979549837168427912770982470766622431652605506616487698762041155781687232609629259649329716236109745004557122693029133463459807979645466881792762407806224258922213285251975607839428795317145056233347589013391309384298719319830151043659679201074645238133720297968051136955111044805484940394303274166739601582918123066652577745208268573363986502621961874781929098188199727575001735721368168805293271689631846403142035311902876053507315818416169847926914989827653703275067208008246727411692696446216653386447068202905133382889846903931984859524165959270803262342243293466455130642616675601356359097172471327820718261672401873321121627000861292862688685123705062489299650809680603310410650535387923472202183475177361911752669251167107404930983819828554750804206334519334646001227441135194719453586810302543921345167655555257185971986594666816083927604233865569326812991030791795258049456073454340618323436601361171414509030950085323174912119144867790885166421561700788273874718722628511938198910727246383903938878092901525951232530056379630331473016252260885341454911176854339674949236234267227044306346345366700794195576262824956194665774190673198321905952104421135563501499721504144816129544852829950820231267831887064208526987242878596011494955595395451561537402847740854130127575581752046084220417800717980378975149628550935656582054674880291863343956859352977131732529586112523810707624017792244208606239653710965366935851816955915834844625769754078043884692302944401095150365628539506187254744680838402580733966271780038445865714117920234870208090844816989189363524734135964110641756374280585378022139771603180529499053932481451617352705185406120641086125125731223236365989285094909845205849082500587153426369631413307253955256659418942947573468743129891547261562478169192177433071162466097163080281960677919368846396862917142316089689264671153462048220829673497470814178728813708535453529583505955362040239989150035723675807396243102510766965249710096904415900104885735383923594806361823461538506288963499948801988783500953564658674633803784200946896998159474361539825854223377751497651993907391359986440316665561839172833745348571642765425900318274445580835980436391307777871670552178900810454727616463496398116998318888907866605002567022216539192580535474447785617337212302248213890142248107559323650531875093629815284623184557898768210500922221231240814060178319264960288214506115792603707274946005260255892491782787251054830372825910482146170624902930640513488200363792135371637297151734482148230553835498138270188483848635345790748884667262700305211037650141678725806283724990392188304005084579211695689962010052010690483297869594177361018501398514549172926129803916833249883608060548881405734227579091315954179462285528267690570428437300153083983414045830175027782623198268196866260900596057269876623320563639629550138860275896829030305195303366364626998216991475119917682526832261824350840943638373071297098503778172154809412331240471128774500262384918346177572504439812386264482259718503046899272046777193363975321309842733768500238640322024958613534078643740154526453151262202725056288029956428724442466032120318814935521842788007750989797064764141266321071919031029471675083369971283821888321601012403642246219853577574071749298700319811158738054437467519939126478098091585700819453125064776486416850827435822426771141325459397907055728511569483489389953768649552968160820628368766262926885433922793060138738842760167143802523766754580422079587587230649661652385642969329773012983309387860628560116334757763154544726566012217896079997158651449774653755209459940868228942065410938991924206498600368446151521001628871017137933841513814261321448589655077249885169017315138504330916277036345205290360886086439553920620703678457863177409098008823069687368059226186844950501413187519212071134885809523154747121838499074444885910742457016676702911218559961494724864724509286135179357308223331499063631748641821896532213798019174620667102418864663795579446557155960554596593924694271453963503512595970723981502581867811974774171883920672631360737050247109337586648146542542135334394751799203321883304116007808802181219602460690828287671479815656257405750520854186405857947020383478064361056383687131642142764380078060749570129046370265044394288238276962242018437614773552408871231918189036931544958743811919703930853407740808411057922484227118575528770618057774398308530231582992109186800083327098229817951998438964745358211626763667791478712480594681176988599840184179467132309326370167739928331934178334705185230968135763229673046551483390736610618967572819251320815579194053649761051058318414228431996805099601128213186680260183032972161206894246712182934073341119305281986290789287670270716452824586372548342240638021816330860733524048420333239629552938164499873850475214904600180044937896344457190751792793583904086562896256397864076123812237711675069123680876292394002582623599503485019272116212385041017525604491981046732988133717291926832175090319678609479700538131755333341871579734695111466934229547626450077669819476833399176989011730565864550698826993134402149808069068367118232346159918384535206104556275524652678998419539114041875810331027675487376125637559693009266678861389333771494811267614062024120624021364752071158663930036237528776460785274189125017889299729320002622328999923667024563972991594780053660599450657499981419191263087646794653149069000034692622167742806726660588714862443032008643036185199899906621058289582894963511079265226769448285975171167490673592502759758151670016282334550705668100253423526266806692649992530437117258868272493037762269972946338487013480588226492535854780292396292967055322107776220067824367139992240666370480749323872672656110499051598409860665044625827712410857124571292990490840474757161726768718244584029001830667266668321213438081417841832403386536207228552978147002461049811257319172851481067851332464881471917630837422175349773383219867599226649745128781365093034771658822370852399305921873462631798260773961049929512647137206200912114178427903760618699536055802153722454860721290123470308961689686225279144278231659255661252117291743018807709961553769926365466545776004776798155537364233932075937600265787844939228551811751808889972824068207370167718022354038518724141323125783272067667070753015945116884235593439000560735936637270875916052769944646991022708767972110233600589894592469817213535883051256197010934857468289227841805058768567885173996710257246473705399181921061380275930065020680787926041916485338198175328796938626093252646583132200928381806922560669048880747168927830544081182719995226273908191499201799253714125042643031755131402244265003309484966221492975726705232107413971702883905728309936291329541996937010210390393740432029172204912976491943470503766594732242954679607161924723735564444416494871774294868993572355646665798272688784908162877295905538794363121494520218066933224416802804621379070035549494286651768555590495529119724041358921009103926578045206752851354839561016452964239613424237993098432577587873270714525457887571784316358490979512991156170800821381547621554533239511790215970494938868775689604742566017662847635141783685457528100922810862479680867879471642621352171115410130796460202848273716183310458382763014445723124377995548523314079256652797945112983032499431441889078724412225882317206908821056043368176091566710906353055636367105187404391087510543848187141655423750734990176769730795152934551375001457842529652582857921717206600783516899002623366670713654177016887353531243224028317747047705163235779864657480852920555279550995329847002043316029599646687996286918582862339563077032199062938214542024161626780221222029915963228187963076116834865426973257574804305936447669184018125352565084197993000580292569680327435997569497017286760343122055612381468449922886878725769938264778254543219900068283028010955452634009365865280256499577572094974584876347041367174388884197254524686743199588695312919341252139562875139621197360499833780088290548086744302442792964338263623678603658395396455292180701270429925527708627304647098209766604878069042540273529067618846469332995842037113333123317074999748947086621432575465572556866327161139268369623118351110423558705040411960712315704843864696163978549265602524797610834883546807367554564800368245576734249009382630636731880569680419526331281355832769934962562816296420473882153855156968160504348621058049568975812249106957558300440749427549046961443106633441066727788002841602281336511959766437365279799617037610640943944244880765420659547465860248094874090157653573100347488293849320558369900691120531539778650763638754849672900428205861924838557726335907583906243509855149912622622524587754004681697265644429006330435848583284310161233741613609324759737075847988718513429396637706367709585390367564218286035260720071282521527576801810615465117521877583776355858134162191724605452731516078745698256146679421308240176362785038171541497542744902017525222728323211823944979443902648448791185459654330263930952475492900710821025340132864591278542622039810309482569393624629369668393335046005443780656566140453630176955737269888917101421453104817338720450191337735160455648163405545412475967746379602458162984875802649790110810202871001035447743793618811293924706276856582302237168737269958966198085887584492561421070579046064811209484284074916993959155436539860588680775521774340529840911740861289992569590216010561493189142481965834825549476056100969008245558575823818663667250253443885450693850079609169602983033638206400755624634171730686919969883010759058047964835356788672984683278972139173214119281211746190399589200467203303141417092364567337275611866823418621899266052711885015889098149187026257409726689651882539318850528307852906893599045180813824252693844427975552864842232411842776921720418401619591178840439243392974855404210912838839800570433520510313913403361846084535902084632780903770085398836365826534071934665680699580522289351564505784762999925068705207331496978610429993510642762904629144140274270209442325820981005011151526755270212192601564878573638718582237629853194746522086886501026504396266833329123430138164772598575578427094642589564830924463491426052816934380799744918315769927670204474960987626925677451482794652374265357587035446764317301383519355293875629806339244431064688553547205374625018627941392425118145060903731127622345659866774407954993795001747383724345560170987494318240134913949440568902577557546031637740637758788999989151794380397022583350458163699863647081618162512276693703525583972221787630514666720004910802325961341378590608326941138696997782556725773631624724852544467426572135793316397045350210919652423451126303794929979983449298812564989678834518918706724045890348535617758143845729987160441866535109485932399093574539404335402280533243745283987668172606921002631192099062482150780375120197158780349797729786036520566931378253596307805934293298620102537155012568272071519606538857310255402639280508193756989581157437680470832951559305451567226400582609004442161066256083214459703073794052125103151990781129412868831776952095014814909243304785751936254469577922222819181337283762480486820704067159973040840366930114125210965921287936406550968448064916132284389477288141738726175495871444704508843122647681149854318482195869807632044964520745190849695009275207049340974092371876749655128845029421073203524130379913719112970837041990055992906184360888967881453290258142904175871876834319794777921421505260798998159890011662625250147987023023910763810375910148311541919138153030392827699169447637552474995796003330834843972889547884953006290209816892484666517946485617557766756603094713140957095562214828278993083167580621643118532096411180724325484432725743844207195535262765921515565552279659267262041775234980632395453265204917031831894387067668014924652105956521210168082437662761424247364247215872213292558359340815837171476050950056554433679182833619510326521361318184491045633302775538817449000223360761378934950408044594090517354272026391429695568528596864406278142775641194131244207245599978918850224004341236817469321309547792621125742530898619342346497918118746581210659697874549929918610350078118183258173319125953886724385324119768326288853942507433847085276903800361340505662488075250656076908096667353163894773735261911199142485109376055066721870277652848269081760073870872548523489411049011324964665476526788330609913606905405904628555390730082311826888511003792511718127210567302007396157454155089517686509237321513215182679204607575602340926801656456709909544936096108698501991859030089199902082347631703074781670741212054769849891613566730596468166075580725627200577306694850115131747133335037839064628121237146663724240604652599658089428232557405622359584839766306087553865503444520721360810596418629582790938881373454228430382685067237893122175791495541960456137757540639345308372350203138746910211527433352070095211242075097632075880071275448739347658561793158374863458162510239522350745331785431064758777009552556314423238892380320586004749576280335465563978349533128637489140564483955433303100093263456536546624969456595758530700477666978608519031902148543139529176255158376546108694324351833919217357932404103021216077556841025369645331349336376856576534449177303078318116295997057219393905468306291708189652999624740567636223898313826573153274310078728295838237898429777655612165895383233115030601702080703116387776577553422095212909034504855869873567207107079554432206888702826848593183711714571396422908054802309547151875595216588679287381189166130097718665913399830411024228278806435354112674934171500993734038901305774216723959362995196635967131621184389760051494788413736777719274302471842763984830751439913637806507321630398301420384076469632717507854408146437272697088471569544044701017645694155822604381519733617666938326876489340027992497126229405053232203898708187336098505031141665006051156632297220817551934459522262174314493164589673823240465709120470521247525257681412925076136170282535304033481764890084680360899783559371532892143114370736209564401437830439164381178327925215055940379987635428968781501940401375365288090038376453907202460600029848309824119362569717025377702245459057044337665406311566654415210246099105650312078848789191331073107560696057660339197996378760308846282891524208630488947914859464617572797714799008453121333454910978199384849278951511042051110469182474848344151021441210390202662276075118107971992368669367316453116180340611665832924358744608781410112250404005332472328609700188988216843840171632062202977613776665327769766685363019693527601796570208718313600988794558423039350232836233487646264928335409652400869137932298526255595846964715582955056716498511929522355095386884691272466238768784712984322279738860345422194303873889417494104750796812234412584295081162063448241936121488806915754650506557379401766544061873477113486456021228784257098001155651914945839386406575399722283960504962697072615001553943346703012609492236610889234746126948305990716598194792068753590945747725428549058949307639759834811817165790640359570510889748370323452284655469587448117394611050879680301887371069506378676638165524996970676881047762743034278905472837683548393753168530455997170064056039696590752728311890305567826011390775925429891965265024461150461003712035823311229365207280299644668279692621912477996114618292474894059108753305726891232676704518367879591254831755571546414387112030022672694921231959327951186826583152475294142415092436104756103946950478754092712713293157464731318737092496737293104811869053297354249097527533442999622064146361737983496720208155407909399315607901100879245490471216979951317238060347844802550971674883911714843611182897288190688598903134584197052998100489063361835428007292659803475551314586060958569199128559370545222062467348594720368486209937060377722085348639891787349729927855999879031702639253982869312797189852563851268727842326865999319200959856882835075510877513118581439381397681487390415558893577541524248703836265985248200617774862315281718371622433280790006489382566336407010915422074445085910455257638425133400563857407628719162783152704114302390515534645108114380215091307629503866903343806890596057091906214445116845172262226527714837217118618119674069260378374466080823668748459905450389042162844969273240911192059944341932711826703965021659435950980797286256874138106192719892239191674158117783355724556275818746567654070524848644424412546377898860013546898722884883857572908700481438897793972716541664288258152146424712228939815368604090064194626033019977369713636336177385627652109269500145536614456606810247256589688014545255249924471592547559125288237739145902127607814174807843081923911720789753004773335459248614956826209038052125036070605908061844154882638993494737297688661831586908742976993899319225482163021006987558820481160807411668684859036323719629445761158304417675742020105562128034454569624800889527116127381312994373774088610688687324343936557736767116513855195486497647245114277415026021059356821658828386074575507940236557859554182056065909661355336419527137597720703421384424419017926111748335707879110432988661488410917790538582105118200068324807118976487859168097314283053596446091006706526504661240620271289286110144916794632278571098428009387638714467368947072586279968596658912890241412614139305519506603043311151383838639688410268088847546451477514525942329988048337511292723228647947468177919148428270326273431827900217276368576299732726046054642449982746417813200745312297643295720633063989066627002131076932285381938740918008923970609762740948717007736973044434353417244412817960612683398574442687094302836979540542706626033584063540272735053466140430308943372123144351197573636200410551664713371004131760922351604782851014876793070766972691638759805243005016139852837602802931860585600820003681917582359722621586033315564117498935474194695837804883488616404984650424074290336597140434860354774720440722676163652937311988197042210867661959222616720531148739372551555002191330373884602667145085820231273757401591448019349089658615029102996200156728861878893997730646489257991294435542223259273219463325172779173250457668792156656963014394704973874049558533657751219347787209298229042236386440207364846525187569506836320005102469516548741532609117847121164563385831934613449138196114661185673977764685486137406781031399741059701185509124462248539661781392764599225692700165066997233804660749068816454367698865922145282239659918981761497609947428146134707402712592947148246215066599813537435801661687048986453569846105955659003424998848502765429944976421087811430819619461521516993669192748186783947038327619551667140451475294126459738276525463424820221863406291404298237690611301893632459340456036602644841798622710458305343307458858435534219858297920101757119826791750506230210064857117867383764905491811115736497776617733840785140012494949033375307739259614543489940340623384824930748976216020163546846013825956441824098824145839630810445590166412162318024891522447392813403503224997561001191978331112579879167191002806295198768775559388167641825417324463588069072423397694955518505392827123698843265866512432781658775049359877559110910092284578826544934622719941876144517277045594553132612063995153662206775345529349559198531680604873886953778247875342019342277809116692418803094899942550533771777338415648535443050922761939900114183479982091416723313186918546162844677151784732331275134807181729518086817234273661523418960430801814439821619115457305013920616658145382407863761895385155233714690907894582147767597293666509503004339882856709699957305579181642460670348383218534012420627737128417880600031850355240255285721726273784814526134249023687028950234550724809478781193491879143463636624568030175596537067184044916566545118123035131857864952806290621145736107279558511219341334513344565775933330029891908118228004782233504731538330114223578950429760334805831865303962112754086543468997954649946962264278640921727483975303606840117557221415160430435389894010833382199421470607808550307806580362555829361055140427243896816563071409745489171803908377864079138952687825644124605183224452930896603559302677835402690561532316565274282290826715130591858988359793048034074997782423858175622145195547170097636795541415198558383673724338288711174472139707189722859534100581294112859798829682969772006866016031320127791800128160182048538385055094712014490528529111920933396489153540681003620369123788079004389467191818397862919686296722367518329668560502873000320067830768179833376827003515293239674210994210206444163572872037586245976569215831208938756521605018419843558407771286260126489843635350298905878287647726479414081715470384406980599092438906621020473047082245072629086724307432613555413605290192964039935938541922965232981862068296047808425943001297871781253495236961363336557034475872307029571991168892119731497825134016524324748683103355055578059801193269342648632699185273121451042887613575619142017119008043891261454266691354500644137796839549149466915660634506099599591808516109028234998969452366993566976613606327983401553109479095862881420345030114896027733844421859244659218026817972674877566135851559254419085963058736288582084252819535356501810144533457391847362083930047946348213107208862780110728897846475776253383095667632552354578939071745314685205588935371974209404981738527323384362480214957168826623403140384724844249093554698662831560373275114288339146421851344867520746393484657028453377221789858497687368243756491115701744335611923570796549320083730069300092437470011137051501803994383295262341344501667200560290478639843321647776943254706599960472544981531813021571999684833129916774770635364492298162405047630877017663891143090353515095562206558656289519648287679861894211914952091194848332386493138594999230014244284356901605866404207687334912088612674342998926586648830427066102595959592329817141013649523306791492819620356505408214916797301435327895736002534334442499068965011765039854199902627022545954778231301041430258127967207860226697065621613906304326986342585984013387052083404470364189666460780950031652893392804232085654548155322621073795183219638204323542755612806090741040357736848719403958205081972065100052340192296097495444391697148054991871621745920953915595227509027748244391803042766520268778195180115679884949864665899901892797518629662564936471066534759363062893381715965698780273311684249141968748310102885970357177118268819288776756977127024245012513777019692218652234323405266538767296841631319345551562196161904821991058330746128674193823838938324743606976364941402181036262637514898501283462438918345231080000086397716633154288416378394336942455349345289587548984014496923501576641240201723720900057676277744850505316623389007718063935266488878741919325918174469246539367013381283132944202968678738091350786628703046769861158501692640501556613903182917336367082837282870441840591342656479666669648584160071155950712545759882271962939521096630164374498842651824064369564745830406370814044244845293450817461394479222048503583690669834214275315115170406504330147867739747689660064353199342927883308249208390468748638523061705262294519004841731742753344409529128381788580253966320024620451730928959126992017606469415242018793008445441855355385104412980977428151454920442978997033014732485785201411956157495440049475574409955746193645881118324269018799681232073968575458714606650760988739729745929449983902870513387996598590699314663518128480127863490235199297774083419699823069567236291498644249595674611435367935442964904574429626413826022617517034994121304905507965151160775457533765261549328295446653947918033509486151478584715793812042891827490315384207002977376469949703508203253661813632334411019922041720939428319306349648113375689234746026006812590029487079383445744008386043656203767826099314957865484757566434407091732083587030032249303324739355022324732212387552752946215505493257553282868926612399265414995762955562892270249516589441272378935486184335293253896817210544451497452004876002440920105042801536319306248324896107649001651761965367359909113487499601294464669272430892822298788470912113361326125920650819919191520772287160880493621509537579405743749842117983721575886061402515352559881873222141941756894691295491998747675970591793126250840319329235539534002276369281686068208220762247821024185282471301529732303878786370429894851260875560748657653693530110227406334547363223645503679658113268638012706356254183497263422418623469546555811318684436879912435616174917887261332469038738884638921916719852834402521380223603009793272726126598847276705865857262438082052949376171156549233952807471202681452544815894169031090301147006249411415418430955050691802299145263099091332191069198589291634010110224720898367991636405648223314970004337119584544155056218421843279365781159842439523368274732307578040124727401643002452751765066184915654586406596787166407677287215111285394061098615754484077843356687778158343626526697642656445611410192004943034805421971189712328576775376985163879844132222430440144761867705611616410518273416560436586941873850104014607233164819203002131190786249681349449910778104961596232544734581065886802046153602806995898796467783972930116503002727135907679966336011559289843928751453669031484850900176501708103600115868841466753645126839284636577005841148533855315705105153603446464545606875517828244521160875224124291376259607490769678838314315267690347420320540218530783782758328820553675707455036109079903784636759481496186952817316546556479973915929124500540975465195338303525806044197119982879639880784735381073739938186428899181943484571884186729688909529939147826281672866232506038428145320918643064544346585307132409961264668445355041903401453366077318155379115082241952550144877276067258557695640392643699782600412648450129925294545225699824394267249237046057244300344563110944991974439192339221306691169337596551429847465487178267655854663924749455370823150751718244128078528993067651393153012277347862181124187740452466154956929156311789960505390616480111341999706384790887122321071107284814305938757604219938409798829099101944275936108368165770925310729175401063904072249629910002837097720479379819554492279629086926350902401453021143502514893817424299105886909091636717099864735186275686117689456790464240805238066941614126911274447506735139029178725655277447870866600224260444192515822149216225587895420960962505560175351477037638036534098159119987626497545523995224005102999187952744502917137100627890670729468226890001516079342168089950629070323640737770974589063346552506230474641908681360206454921228344029455728674961556018326405358920615204962623108034057952248578886049764057223365288525301212984918725344187194211599029655290841726636787470671898699735283111270376093285158685999172072473652807265545168112147704946998017978338267852174377388924871235261366818857901630377648018662801057307049460734917108930042673453379736107474793533062188841714742386151855753542515823907435685579501124744844108873495433555183690840047833732466729887620319106495823883607409914242735103380593689719562676101298022951140563203874396392138058206176992161322077164341939440014705221891053564611926484565242221682223927926514449262687519455617452344393790985069947311031251900847038682885734351366241567585833286772990459074252118567875016502034569359304612221042106048913067831100568241509010146281492839043998860395022410706717444876240834082569809981493475512152699908454002812710657303617068251199913258394475776696483301613251212138735798008318535327204210045531208105533025997483520866969236769749378071127779638439651248499477397045690136031758594670333201907498661910956222124177345990700679131467135491057991418025624604114431106258928407811052757024408510209631825913030655159503819064619251363005741107811135713573317470787801366119282565704340665309978751316548772401851053055796110931971298278521602192484767461556133398609096647695259509984643214528145917820121987112709543321718615772451945812325033922443719165414780447652156074144758700458134868798625259064759741933975003100717889245453121034254607805727649197713519087126369462144572298699112346270470059823692515329305914676807389303472781654307782403875514953032173754355436589245267240469754506864022186614718614884884981749536814516464102750282413511033927838380958887192932788064396001250201997912840343966670077880880778058721565296572580326173314636093886569491719519288570528527482153499809364975222785576298821767646948922756772231753796658346267261128193092881499809875374764454970025105091394042348609998818693406054590361943023503046985567006439980573920462900265996440334650211545213072726261623761957386523714202056680891791158177758213056450507122050999252305094047201470642897141719630555128658083067525077200787018870738314410071232955549214817584251306355816223152375587924170541518088218107450973642380759052926146613946530730565350359557966867011423965308301946066665741359421820469053821529088861753228846607910265375671129537654166582356327861762747442566041634117051273251063904081510156410408073284609636686900418718246762529793884588624091409096770909291473370156558304464354484243929381210523724857496896010556052087713836987687056198922847271052111564745534071765028149138308868283166670399165088496384322379003413887878465775283613358982277964384043215502389910301965153140238858681047652902925903322116081217710235980187266483324999402506272950490726986053780245047388327064375522354259125693912795733212977341693085824768341624557948260129624382226372509299742347395146999269277571142703032960056667822059591230825680075468744065311277628700452642088467142154654299362551490633330109281026081386010147550542236515712736621699254715114558204576459795545152194803912222805302294677885255560563722854481036808660228283705265229638475415382281537489702618716455994940529265627814565754017156890768738654642111229239571653983162193614492717754845029407192084595785166860453213887013716454945593519787195063490494626375892169107867743610809971891674264896045354226148890426922427304046544001153074750540308671080465132759583039918982495764426796356761396259794117546053034631061592955828281135643263716788795451508428089813620682414627557960711961837311568112173650991328131550776854617235279412143526008936542106429610831675156010172088678279169863693895956528815450859583964395753615019817383188314427521000275088722039636071557755601323042410133884289852439888033760290615493420806363209122248987780021098997537409586430068576809203880171530443753413237342870339658463908064997709666438770321859213586682474828375693574063557823091492820690074731707344640956015533501904046038495107443469228712387222058359553551799116925315710214048843741990113402543528019167393849634947701545702698818240199653961854247698049374071699922908790999334262821448514708063542595364568966877910916169724484270359959344996599339111198266082999598951970800603314794781666722369156107199027026893829058498929437299257284836714979440491246248565963131071822528976097227555148853656689209474943889056394547029068764376327401544831858153016109331280287731000013199457730913446551678280641006141940795628511742610867041513915879231259191725104960707827609047680576574017775515827547987153011324275558889431251060407833876923192700937996268138052904810481790395070697506089319188717540984579919668100514296249472770857468799979363301757038719259729074567424272801530225572600041282204811990877545158926396190514456028730883921190803143541031631120951048660943797219570172895568233640295391531089689375100922780286255485100059478793974955760455559649807994957658737235753597906941744993714974214670963108137865034305231693770895020782508604100237649578759899327032761377213663024971006798809133563831493258790646576525217192463414738508807336651071332258802917433525460910130570531970240181317901160681722487156232116359896094154403443994677041813283578488732235141062433701752898451737430074317921530750750920394567365173974748681676038343733213276816894162819602124061108244391439745784763820612362718716697578736018585210809236022688493932888684462852747189934938427655575998811835438717306025190552756270635426569882427243676671944223406778935877717125334248176002202260447535682072845130667626904894313612934775569108683708475401810969657359949293076660028667069853317832177915366865652191947965793244565913381931372071871626438052600950918391579847029745018429628150914208106298417470304571007010790425225057223899911753782743576945242514418218606321691539930176294585390515196575820643267808217580455151294737759378079305708615570529402120718973215293767910560275371417135534471724083407297959066518259556480024993517389256473725319652032943024572347676917807386267175693801878169193311156402721914005960336812084778869014741359285008498149088789499720580877990784743172101497146427753701303163191448589239627573736805151254006358967126710982488374258028142794188009764530427742967077328440643627212889584636300867965553644668309281660488126236299098276509065622140431861288132302798512529039247975191804174394524575344177193683919659668995635402239854707736995813528031976949410263421988261288327255028337799396741728678758058475313324499561196872323683989096966212842917556866142587486911876562912287431748656428733256461224592808043508880795919271678615872190637313920248777055060034347562149780748142712148125530692548588730870931439476538889705451992470326808949141539177639388725807382720772617279066195103749911122966149059463702311206646918800512897291337366826942140646237743746508018695664488915916400687761287676825929272937875583867324785920996208780394767570109314891934919503289683172021745994694563330616405192634894775768606846222111384303310850137633989418746987308664155336544249901371678916982821475242098329271073741213204312367814456993078102529272119423435107983496629570244014965229949569725809747189192941794247829171540939272543971260648823895366493636819110854202071396236569628882864332401696337433741540718819507784194663331284721991372782030538240896972396638069144409659780762112484303110862664262333593068056428077469816241769995220454118915536667990269953197345608351462326653623859258074849824478264531815171935516778159346392306975716151685185817858020749941375489187495756506334813229144327818599796816947041892622472528843025068257234962756699236517407014345931369947689672548000109899469742633135463981311520134058635447252505958216358872763895758237540242177585796157777006040398549942470584018807157637121993341009749333916051437671467800213131460147844196300766005684704398964216629247084539505970593649311303013619630574176333858975558139517971561447800764354797094358299806963706049540220361449292271067672308030290287591362508568099203490381351525264749440344331671266181182380982708352620681337018888567539879080218298120337915431710313057187718315238501495923771634732358120954034144027286197510588313421893800073840876708822741466969886825592379684524963282884370543110746439376006636497676472075528356712663078026514352324071894335733966272511158792378182481306257588868775141105931642257562331517195733263920630887788256344163369685352296673338178072121996121847500632739385181212896589528211060674578185522282037362843355746323896756315963840322456047908243598893319228468880892559767291775886013454466371691362161844515051864128346528243838985865111060795968251033566245531560005334963600454308980303760922934542311782351329417962405957522081400858298714961099277962957259556818996253210914847739611006307684992123455608229315291361976614087004566794150410444309380315258142680967423060752945515843318473171125379736326606903873717132780989510778430683831059143068766202151043498006310462134253920938349613305217524570754886155860759639231387788389799653279279769132466614632419072484822708794098592417854818958660545154800693585907385445417668273150068130137027846898448656019792577381822794855914226734978420563682918472381343132066620152667981987467904893743774976205271969130231486789535621130532114529470986214703478132269458798357254039657997061213256489303255821097346811303157562570566061632240891221325521194948382727155498233868313787034153568970208876360443343577927874006624940375761993891226292115714704876670774376568603043664906508570357911532198382877145402774683077752784937771896398080008304192252205625265509852617228014821122280157190267414310877575255644931646860216204443827180293478547905413737284602729921274198451919030537718632107517977555776474967629994785744816779217609974704415513472933793421939499817867381910810028399882877987668319790822809522406176514342019435396973836674966212604243737331313181403097145691269181663970280124347619770711509719120531345331992751101714716716545960353424805641562863149899314444804999898107708616468919010071350447692857881382538090917001461236912595714958742296160955878124949712919144089285734818338512052654257793789064888137878593380954670233582414758125681331643293689036583243824615586399705737431774352851409880146260186685830638098485095764204938064398366816535569381803650591891845268991049198164871592845252226010496239624473363000530931135213796213151408883287391257011096810734500680645926362794696267920364577142482796131364231623483397132439988076953304423691209061676323923592080589444144419805493658941088151687784380317755608783325516721458144388330115152351631980643336864917023840146813437597081405515454345343831771899561659302966894105214133875515193815017829357968090057397100076923383723864187604300577976752446119669520905443541345490279015056741056675790617392453531209549436228849699011460340851457328959463515803440696755122783806805648034709417296861062232767912799963981185025102774648582020352675378606399801187898104076621725512440064142442398680651630541935562503586553544800010416949746974081106147354784238545738176533953660668741833127212471470717989402803175502297336408551078542811861213653875405655002057263830555223161816146128696645349413346199077786997130671855246194479388502772522382306234563438478631539760914806989921891880114556985871777649179972507961683617153629210625101931140723753704890531764428786973715051027337623432213714637443063240481028540966618747765033971791774030266472187882081459555653896196871735638967897060203406528839384348817445720436512865881256386376611580093312048490962408384955816479220684109177508043028188447908623029021876888796936012061482936650131250347109528936679018705063850473588576209101843432293167169780984097131092367726392569954800698191650028047531842966084712371128880500932066138927523878699726015292261210441653801681784813814543173318071629279718525255774889032384700697055383550717046708012260855230653454495115239555986134584813386415259641400622458490206081332158261226680077205078303115232534695798557253674106271222610827530429352016535857654737151272793663952821679873185133169500848360593720905971561065557782176615184507672082695161870134750194156681071038078974547064113893016475003181909533207829251024620845690431640048773450479443785225515503849798978575435053665272372338984936365182311348493027366719552124884932783443333571645000793790897617337585169417802025698809725475765910813351754833992040499332050291881821587476528188949765809468813018403248536396283564932416526284938478717561236265669227641823841946003783281660694454229597972400762464356516132035135130451520681753706084475346820613085325659451306576736471703499244012641905639842692099234823353000995200053106177379555313808351974584962633234829567946263969978600018233443207698048415593535935920372276851306594856908305711923273616624528288561226862187665206090531528874663455167475777342419929945646259460199549670356412825267408342958156167127318516779684497165222096300301793610803213370401619058783980743481003321946308730394124990814588619163382586717140591463188260183535016510166326287981048013335330060936883966213691608274435763970776355548137428232777196500075265424799937296040451178359052785687593955428364628577728694156891476360995855862381706432445118378081658613308689741700500209805161418153365707118812018725156070778074307472613665576700413223779078270611823040736935942448461043056923896548440829331968095030908116020122938618175653956755910170019636084961984843934532931326347250218030676923220566639145074251543236745408033601992431461621168206280233247020729132358931379187535151061490236117466731660818673357156524334405125672058240341230102548259501976421561055938783544066325778774701138710726577587382434969711825367396350676608032150819633817297802994441484751820681098479866941261969038401486837299535443624122676798227131634375134330164158660608643333128849866755871053699717568874665654910647142548797691919012664232105829164304982227681712004729264873769557452208928725797893551234560374895259363075362574414141936956841885037499386361537711132397210248599100968345726788262001038176864838874417026211305699408011124508214597352196810235066607735687532930539755867227669001592786715261427136650548648246593313025700309619553766195873396462885738307547483994572389079829852309234127934083105736721042859801681128014523727287380732725159486977104645378017780330897570342155870915177011783593551141256073254864585274084289282329556243873408381164574530454648580564643254752496055223194095936967821489592982120007828229524901369090902249843065680099558615691538551358972517109434041472228753471657938197534337637972729874717479220687359740247510945692765500530791316784533246619981411501628793632779691986311202301475416854331661475408171681734622198532448048455841593822690280502321661731421972562213883043079753508739516020251480698779978419508258563491180211244827726576356100284644440946861993052676179015599844490054006301606253471818984280172187182440079770394779514024924459277641876875730986371374172419562168428106129737547400322508948908353956145128081602976473973930974732084699956709682583979357866263420621247761978074649336967549123423312205961232011757048804944684780717092359355007531961693433660413083353361896718378232288312161147843107973630672201492824003155249036487017179712337984334087538995537920202789195862789016827231766709999931653546356032108429544285232495215487130619486197486846915655799762144152435305143881801013498127461264127566187925785958831071818280532599974191233564219658958410444827588562755393832266851355585269413752992933645715475501321167495899640914263337929125540207651785836142178433618978834067675623148421961002716359059724042423886865295290138728087701709892140138857292241375201869707210975660990149950458181097612745115623513511414963303649523635432899418614025674721650032323545553636512024521355166558955808471672939607859350411128116616008818548158543315589523683856972476058625764601347993683845446751680981367331701253808164451551414060605464181202018339497716627117984845080844919536257565812558856308224347427602895796218744548877333638046856519136346086634585533215319224275317116618907580454246301396918762124423586332598441402711992831502637958646359406970825843732828285491086508142353326840767749719567531014114708010064036093168856434272809237293104028016900873975770662497883830962616459826264607384213279224213344873552013881640762278281908224310084728345481662187962977114910307337132264734564750115661644342613519323992992882399276173228919885416573962678953810997830553912566234417607124921005551143349352143147033402243986146914905830270596472078252550813832135975848861699021845740036451260544403340575693156900458121485973073860826693974678108364895445660603213721962066763224298029686017353931558050247764187871516260851809610978742846557215047171974015224795250982528715271203342278862817156914421956224892718664598978410652154454670500557268288605639652144171882669931304910417341347939974430279588759780203152662276673142041771303389072310638953011426114871825456960089368037745894805841243333254903205487694885633971649753167667291515684488709009137402618460963774853023671063069377175106719330819427189007575953315211201508613275467852989344761291104390785116677593924024638983896927707332122167515599723847322394660152260976084002670253151915437694661925426324219927843679850504477381296693532919589238253164896073014380251261060814996231945905539810280852329962153529010531908679484850915521280315202428168854933931146517727247385870823412136935875054643148002364039654599805827613549150022420091146511894120546564779125900371128470679251129041968060847808287559588071087844503164271837315448597423653100651745068146474084205111602845256917347845747437139512891214335757965902405256649199790972340714160361561442469895370647615144654503366029817508078387528625846661050628471063824903975174096153944873294873517604204230583491285273271963692641064428788816694228431101665696062670881780377603834265159564433173648296445644958969254232477749198289606726643365459882645682928632042941340644612220891906116608777892629267016608972766427343955779571530768244384482109142695806658047337402509231485215546090702464669630869233529352677837035643226772873502889927522737856987662084820615105583944799907177897158725838564191550399103431582576963305232786098351229048469806649181312874417393410015196207298566174074445240843730258607431732797319697854007597150690430672093561347171520703535994318202713218621772183328570496989838586125476089930537257348465156230396732781172497042110849883771057511218964522063757762565904535040977559291719987889267563136391390175175696867126167322945655575273509774676395537789846226542855739159684755749128606439558088238811533492573742231571812738948535409501456318194768999417776382096905685553841413120078691652126019780470058458261510168560335735041726812502333591514447871969968264999926089665970645067548564652256895561321408097095679842030091951881285652796371719256960508471918473153568031317374061130739707219449172974674416085440170064490984542602370916163303094474671840788337672638308676950354305469838868530732747903325000030815875011052737613964499129384893154858720153068890045072262513505543437778166484324323575208971856910635669193456050372871816180596755607577592492441586133764064298566713244899363058681640111392709810549944911049248867495832656225504090996678310290188033725092898820589386898417390029939600621673991112920307765971593439822292907503296604934489413845531072594123773468214373013841215694716377366386834184934821548026491727636362383114027410781442000785511156638282028343055542363026762035939627344660463942946377676309878188168445872099078386388123327159443761313331660680782750980846058618745042204507508974020967293485385940820307748429157298008469752356418011833945046367200529756091423263008970505151466018291923853320608894351780504280650092897706193768815422383839212562739750915984012350305821745094320835041597928115616382894455811747097697917285695210694700042494342752802536246295621078404051254361442297166236695898748442532801024763638657039608816785712989617950892976414504498477292048918341640211467016989481294808009546907166286768567342781351777339465384443372058375294368270289149509185321674863879033536618945744929795492050655805819477736176833461251321155445871813423733204877905080486793955244385609405097037976442660642611610581947583911602505042270308059714260436868197077433410969197582024795833154985375794845810949330484713984538694259977766360067161505321331956440866265148258147164580583746739801836496084060118808093430135333000846910948398186512435780879934298387392246124741483594124963079144192924645102142186128494748183183980771110081619464525620097720754581352461605112504707452746582024011766127003209230841774099359785193768708544697829016801615239880090120943883236062223511965107276183618340721174875045317600232526219360833089789858352862766764245208061099752898859381335813363973200268943339137165237608673899986962510513830457051727472417846865231361881796823537266997211563470900185690662538451079073662901567904096524382696397199204186491039420566314386514953374843616549003773577191398960787637890655578168950170137566401631852289065775050795326454218885037062077285750670786615709084698273934184401352343179935623388575759687839787449203609483234952694374652064250249937002583468353473130089637216942032574598484712173377988541491007946871562359235786110375059343770853768727506507000459606539634479164282602279821827311626052042737709930093237769796216727693211492239415665779620141332151190146852877703482338157304606400290156618822733617773703869620482328820131434864612329208562744574355603406839683887362253058013688971739000758610020595617274892247953136263443524434867124901611405876559776257551175716577844198953915112920859870120520192251905262043008232920635819381111399193208475300206719868297569435973728159901893986203664138936020858937397364168134354870314787205722831134772491138923596958317846219301859664926469655923273296110447762604822373291787730954625908939389824044895444709402093283503330943971824168074598691297884551061485849919989023222181904833634324560390727615297264480516386520118811586659306313611361233491656177646078537192224150911211816412802985051119174757531440472743188976553016700852434724945575174928091756226900850027798610350073326986377624857953869039297531539502867818392184868313440459842243904021245559981741501405237991881586015314524486816097522340815553565445486071979996785790944443536049021578793355184718497443884681076410026842032816782977387417741145168031885693869478292843141111668485002450278059349797388461301479718735211351187434294946897642959434417079797107654385426802594460329160871633024635351346964902114861861479566644079579776121880175763528531505311446911957414761971387458901225521700208604144112255300197563692400139889380191220793639700061138053065261200970235672838583380528547217573696060179416503865094358889821973223950817537584675715328306864283639541582351363834145043070384011209473322716635195907603884241002247222625729113692957193058229458546030671912595176586010341512346850758822307362018726985856798106680571940776301696154824020338774405432517597631110532947468489904277952280327953090503630431467319658959854367054865341335931287217376977221526460777564398555045752572082506696303195947622109754495058115731426131678368888549438559795505443169550974248661258349421256680659827054958739613827347042853758342423712161867388550242973088893160647502384391578072938818389225882479241083106315902587195508532918772804307957609188303959868974157667781921590246675879477622297207777031902330469822618382981612118913149833274166358053462865772386101080140345082228221699960122058728406787788996919323499494382192591864584853268652055649248380080046126105842321058819493740482526633389669055490611623212962849997658717988570030942596131547358397721638767196001320054753584135985098831285932075662376073301717102425301211685486784146814452063887218878546320613486778341043567333699436599419667907087964010208195966184841373518868902914567234461374996884734029536340692285599357328657367122838026231707120699291464414895496879552855896245202062975677663800089205387317482551601087348201535397582875266275506300660063157295102622483204553491899969313733000498583318992788859750863718961948752214417959869127758105877380895524010104579869861773429288965299080854180463226692234099060858099667470488055470771915099511204186489653425381315142267340465766085982977072869039619210695834269889881493260019505557738359851461805531210967564765455753301915163061955286234643983628117151942834191531247549540775589936164991179371172210618969201850579498091778126705429978824811284105035284811346673553070248915726808269260136165715660249887732309465782406054619764249600889549907208616921097531840473414331174837567388801930755527184535684932235679483918420840158596768391543000307584982997019137317438327076813083093027794341595982340888585933850981384705474428796834219952774832303518473839164643232706134571883792732208210406186580260701226503058316951490581842089434426234097497101508665211432720323902143594490900915706737582250283909209837001992794678860424683541632531470857188229052950241499594182701981700474575251307841451021274710776987233972749766878911590772766450438284809871101342231766114926471619137545770577700529437235606172514688101321825936013652050170220076121197747886230256797551072460335105060849454680211165627854911572108181308786194207026989487148987657494745196627083036217440173878748636274188112832778022642643130889757718524653644284090538799076232634396526075857154901024920157836366617262719987518454993490225828088652770795072785356835326837392922587548973208868326075301747214161044715965212385385530899425883921597967954245586518637518650637496941165787300301597171596138214328525795983750714424492754469357370268805748811650478814868686076030281382820278089238377153514338326832681390866484156134004202866044730452519946290452091602586846276163232369364772657564845587618392357861067922283165010020625045622034253036308294373973031895677013555526523262587174753564021456574412667004443239773451506580168448119292805743665106115743745724545197692293422375164816156298311354240254203215787716558904631664076158489161759727243185257826037624684519733689256497351469235921365522007628869000686421101609269626026306993999763711318887117564191644550210097223923590169970072910142747413448843407440902243550463232788854553128266384981884070877386534459810639872722624146648498262795355084863818994061133760730404777059693271982760382269562904958574395200645325601851949890375718922683995710984211835993603953149059382954481956282361128484974286317409359886162638673319287746368978697690567588021183922062847384017526283205880723684411452985133101160254150552343023088513859351836616563226471445355775333648732689818437399303152390085754325702093919514720698359874909065368210500384872433999950135007524573904044320012304587409943094315425567757639440403934545658144140211085553399148184498940736685596850696664267538376991994085460702221967904976133011229615339295109666053843967164040831017069451898705892353198626719220279938844945631066220026176898884217837786671652896047738026612131240426810277699385018277856410588439809078590153142616773980148698823581811467286682129994344703849579493740761391773170768173385814800391710403438446725463418082368991914339118502617571205777954362164034112215964841658968148662332591327720246406907984315002577577861862872045658885635892984937757269027063609252575220584751741956875474207090319641494410050882896866386698003295470111139094053604404657602652004404968416862160106404817132995515731359996466584195819993750632911066426165248371790948691225325997412244952151414243239649156595876074156732456470329406771768380794259089233668360530472104918275423639856651715126471162440716966344351342188116226044841618329662863734610185626847273380554126439858229269892384594966164630938157309283045126520836889609712848672618022767791515651444613565322937194024364381605265658778424085589473530290546827870650488536467179776050866006890709738551387827846582180989311948201542857118589306533547995765693650935045842633620239639330081609328119651059847300923099623250848819453098335415133582944974126202411055924930411717446749704306791078234536002914947417656082668908231232920349020373070768070389617674225499592891212729989095320344762364005001525638221223535073180352808749061265508060451645313999283151897659296478820712214408921281756134655881213507129973345212092882630565247372903138341332025518724561516264808589777454809634400973279365136661521705231143354597260069331375491921744073207444331439031412096985503664670870508305727230013961777935648759885079936729320585987130749697566939840370853812091206798129806706917017173587726655901240296548620446936128101200021399283873020446933317973598350960255854299470150507708823683453891836091545104719887548301545740756110664921391672556204000417287195564875731388027753524710325962798405797080967476706885068686769355593092665176688981772604162827029829348773684967493901676421341289784089849141623792447029972229276766120211337483677169455631298641769929778975264015853000744120372447811606720291518815034025607905625145892761645651261619306114756948540802830050325799434422570086914284774342914849241567964331689851137136410960732950307230113020062233201230071995175264642687459942830166968401676959141706302249320922060721518500860711172686192916070952536579914387040580074381408467261915948570661360716979063211877529469123776722717239931458209215078911797075679487082119040089948161523813958352775360890492113845232161874410094973280376719042932212031979673564469669347232087947614665737232011107490910709886502525288818743202285939633787820500600807304051224722040934279267591155225723320801289605511794785772998402225139203354465990633546240020676551013788624837672115971928293685125373836222217359880885622803529934264348772732626095067762628414122513924015258240025855192723169519559425704337408836477334319601306297626740662110579170928437855290584160582916157078933620587213895481207595547649111999284915318135741616061832480540773638148715997342470969278973095130874966883604396433186818528523071185229561966748500662702594175396873377430140390009033399065746314383207437357234451137347953920981972759637896457076213260657710059042316069515940163832904542311682464646500208156636047891221573087010006294172757241157821300854599172816860067899948077170005969213848389776143536334731701873121123655946651837754748600362303610490960146737927197893563726757747367834034360523844249607132317727055194928682768589079327683275746239789498487234876729809002602914534129997255200143795459581468587421432782785848255177708012302065014257482869693058253847288046013176206692964957648789746333186221400879246893042820748226183778649922329252729687414889869523857124727909258836984591464196505196565001146654835548987401475424516473628098975002294286763841956521480180115575266672429759446577116897035595541798858577089645454447996938157194655944324078556280146706919436561648178930110435009782737312578497999047203764848180554788572205859995720246130064506957655239605436070549938193693341863749307910103159150789235468771214545694778700486148323549772375975045603972091946034144596261895933209295348341307410851568792216969898281744450143581026836447072262782526214308583399830577795555396390125098967618684389088676900613805208799911339416867428590837295160029588270668212463267781181608800087455711148150514792493887943297278830398366841308309747953660451842013602075454842410577318185574906695726600376549325360155742014905046597518571195689589248252061283666583266084606952782162561007063996065548176875749046477211528051954184286268395176469185722369297292830524164118737663116393979887248470548938942640083068710930472048809969698068388657572082107255864847195806707523414893764982846312634233153511158906649086711232631206160354033814341524956425399177146386691991116264534984765500814241827870584067847897532644948933937728986198299513697651574692130035246384401914478504354600284019533500199335811233495496773059141567405591144351966555898316702099948879411778680316198230389320669026458115664057520146217159336012772666942213732682782860340461307204922938655038157792370351628149297222215257989102280183692671061343635186873580301295082575126574738526743178057157226151423563158284402418564580268300898907852035097828945212868706553829374408942319518203245276945576051372684997545044099243825711406070055041072284746062897519726620606288992391113300330717034374159426258993769744564133773907471413648198293718055973720317005834358948332752649303074373754358130488389194497330350157233970781194351518015994366268108220392301956771996455914175894761609719696609641366722639567992542056032427653452009346329696079518050382964973552842704149913693235092705106084261654471480407973643296338245282447931131994277809709431767062888376086375244652070048823823921592473261265492367463853319487077106389929253769483669152521847044488054548592874024813927901210988376154806373795499658812144334970752420596859955000481049519432566500847215206866157377935534926124424640391960144931961642313996558071865713593406320054370253272130399360790022385232017310510115467137600663026414999454714824301760666532369819626380411944629545066570132647368442482717377612288911756521918693469510540671611792251615308917062300683109040158433355099811259112959674509055464311543999228114079250743943884910137276608996135356179402536690952653553180943528384104784802262328230478303696037877066386829433375498077722426401579721742287873767318561179990583189026795876749573022028066190372597345688853548233600333227961557845798099535731998025787030834951445743962282712804928443431684489078483392154518210574526856155228732786542831342717155264049161976883206147918778907106680243594511719988169520182885780461689668703216582058189231772597194215950397963308441603074903859862745420960749949729477594262417129812568971400871098346470080310729224457102189513884050365936581380027626682210578893996065756348332386733781326400478529271802742705630465430820332491863899491885351613374302456803819765643588230086597407518749299035220443154148854833743392186310112337541098541400295730528443912970556277872785117390422630997349861809091184182455476092628554663120466313653722612446779272517008610422516872696307953581455444638818244887734003533732766334013061406211946263164409191133161174263909970412171990605996411057926051924475406528186400694296388263693710850720754863545671608146225803001832522268948944976805043819350582721508208965658738188252672022466388950792507636014648992339798466206893149226225055221636258921590923495962956272578695958585123048767042894771058591670756006150002883465252377965017975352399187677987575316220466088803450529903881784486057757335141303811211104719164253975692861728655113864022103817937935476763440286573385919777097610296560872010603180135513543388159693524421834764928411903632967385445012143556342099726833625740597569068661571106258636923708950569559986707760188533665728046972757860216138748695830796022215359600730719272951705516508192452410225452640068321665028901145051685273112615325091949570172138810554497056919746084592606204430174096608268069025611423159831847639348748775093363547912847354629412037744064272562784463504475735605016859941109961785031125075974874173915334283189259966694952600632991363123437614467292298707075607262004991590660156418236953516619487642844254391423859199236824713646914568651218762531254659598201225074629216611998677464226433922372059643262495141645080434666168959018715641006264856971502324842046147074827809995663933822527254545963125687024717923289957913494041371379975144346691267549388564174174279180325742582231325855142462786229386413371515926817354829460774628780288651677209325799866558770847430452231576943508416062884279687236368310170182627855576905432352750843434491365648209699716862977352498689774621519322303796447818000637628581002987213200924363436177045645165235794641958832453396785726141449308445896765649687945741845874570853949937881415017410574614103124076621639107076426577560374561101192672532051334626907025947660976100403990433627218951927015673078238330023459192817458995147237925420832707236811420687615327974408582638059039588073973232834203460859118036680235067750873986196803039416134317156538884102546969155321645359821987716457552815883392261731467472803501233110321708156721411979483279204632383720262429939271141877956101801923721545661301024970576485093400962250542978154100068785377589836263898397564950287743835698716171943417853164606987968462488269867971835517500790941136585102787431307067874317525717249387632011023648573057378991694705412571119089933180006874458025671922425825029643800548279451866506043368767511290152786291256746842494311812456832715611656899775349948317644462225666761926271189340498762371089420987974371081636276172765196614128446098578866388166862040311337295575153435614131321653234082132481009117836318973469934729007280400115745663999697125613814268866689046842486553442050178073905321350094328547323924608072919461954984165105395952267064016400829868818673227130092534601956199291921208432054872038530842116606908609730210842512525551315089302240296365205401795851391143912390273917998185435019053800543744570576688538297638053541543254928706222776392146108828608742679287417652694114477396702457685941638575353371151771268689599188384466633531111144616978858100993736910700106003094901602792606917671118468048152390338188993543447495953722159493994113403422310774711116725785700854081481898251642294553543545104512332454967877253026342970999857689621222699686046335175532591741522200295824555815618975832218620897473346880085011655083243032030242826853894185974220684994129997383390679367213332951961908011401943810614337120958601116352950074220480513987091964625393481435757663221949411751796224015232369306766029448446267005509890809792560470226786981236677433056492484979874785114752698562715517460011123952012403860325061249597825126979508387677022877683467288883820735661723908863041770189929439983624049032243737453521373853895577297478590786418001952042941216736212966898701784932864822138543864443935116482683143362738982292383732590511630682358412223603897916369954243618051594696844604813066353306316289483265502449652254579803207139680474234536690072070549298339366803567127868025782255808448583688602336048140181112362132810870298709500334609541931381930809205658082080146928151834122381741391628943638711872329119706384225475403494984837101159762520528350863487635106453056593562147047195421960286230338905474224054430708483333435223038412059944086722603368718024123584193878671192521238960662051327095560670403477974176468501085110626832763574060481803788130640038453194722469526983788769374379999003000154384234979022062608457379915349977672258435848590854709615520181279615212040294757096450899309346107343452918736013466821409690722933559825176501686150257724663431787996859370792056647614543802598365189933684226062079027407229352864287935323032242291359947876940068024603874277940391393721328305228217205024215754385799561580467325234015830990509843963798201762633740888352916481763818342675149312274398532260287255546207605070124982634045433670346560537910334782294014186095827410765177066193829232932320703095110286762383932432612612639870272279380456132790644396034042067319690857531223258486891887468942564995926580420871046101063109348176452875925160833820365665230234773961974956197720560592741641141180322897377086093993717014616657154885460353479378145000360945234934862234694763096287048617135047535889679577604345778772252930039586368374057386303333338271613274303470747704195005245585664309064981487234546754358975551345720628405348670237305225442620440723422342243825355987672812517933037647150811962315528133873150243680722931281111878476312601571170757636396576164564383970874487667683903853461243335613524914671197056571160881722850272083930537136763891769208350545996874679075983632103073623362923850224589967599496828731825547029794433822899552027713481440959127006004591092409466218783847610288874929635137662389294398664287928687456061097084731225847174375058541340872406739427585255548219187225651178228331879785217352132717409211444007324695971570320625557758952048179826583612243380611511720630803028863415756807287802197153651418415547146175751383271788921831344234068088483437055848544143354049137441318681467221800087948616561134607370425401222738150197075511340767434484537620436647061028449505155084652427364223175397714140767501383094735638717795581511990876192841658947086582477115535682870714158000696823052193579039215644519271545674890266849211184538159936264534688162202155125837165189826108126990933090481551184639122512041388182674700087594784699186879718877049792971166466933232553851502680672994865752097978059491958378063742922064398160850092690489329600152354976789783571377466648575372565992600161041001167062237937313194980287977555489847417984176084548956254076403394695915442108892501802619571559975314859731354978703970261244300798759861497636299054952159546892468530383400141173301558464426048423356767383512604842759110268418136659372880083043923790928738119251018473589132486894055123205131621174063491572438751518812754128707523204680263933296874403307253018122266270142659585690301119045895177069679420155582231156495186850202062927999441965800171012902933494967099560668863844593766020750346110877689010600636832878528236313615270529699050226270369290421091660123671391502291004986229799096995418617271839814645005502564343240932630523039599803315725682730672923600604777220204234747744569681701029594191723160168809282059744353477470899894260732824342200701015901479610339946697155911470820221517800844964969476504249052713281709108030990315000931200273872092138810260243327914459389992486646408779861187576452857079147745760389084331970103836147229316161862596195746200723999912189168956815989993278699165226332443807294497390192049325565116108307487818902725459479457356959041201679855087889893720934847608835802450026688410015581491066372200139168957475172306856861056492982431842237397354122199085618310613216394695624649106539460741533570438988346032905545554464502883657831040709046321705602889115324630184590909365414603819568581937348655011795951111509232460407687042618678187951371763008459052859905220264644683787568277907396730394951791140072922934689490347630679209316381317122659578973969622806091610231626825757561809980633176015748125583996767980676949011557200548380669323859649010630378500692493253426592227190260505856098668725864162819504715405316433353045327337606009516645836106484299499163991019554238881683827060448393084420118883980234806512788452097408052102900291021935406943760469509751359288127041049036913772731534570645582343558214156611749146963934415810715717130989173187847807007397335263504110485728522743387486916696604223725917898068209944310242627529629840700468300475427441883507178017186607058368168921509658902268478334467211538960005928418030834032918922929443826569763564289648996840230474648004675701245156055707153969088461538645187082348777615935744913552733609185216405825338149287917125530232941758133811038986233826089569663384653784876066096455712704533133293046866112090263481772792084560155059903135138167857659753890554443015316035026904456448402526897161025723448720920351242609084294509203798510299395704098899432090435715063518063834323078662799602586710323320521934284007354441689951938849096268006880388533253400386302775292053988836222612358044173482147966259670862925889200173388622694585179660035629755602495642425885146441858706618063799241817524007418275740139346519288833857057659773860079429833606197906457643301881589375331699331750453008590389454168210864956367304332225952297847461763660418576951297350956302564581209280295716196714515968747898447687986912969708778794826426097834768404209598595478609081023706459175777831080697142949929820173002286647341929561573159340592920826643752600333963790943707836910575305692176437405918504010414556248112674368159629669020349676206747155438704325964920920574244557456713942455588515677846210706655216979718473933353524259318667677276442878565737249923134725284884764043087719385022436572207690222611242238873579704672933754881742395077897603458293259163940965882137274510650667362897903295768350676165303532925964261069584503779161826066528910844070800208693384607858873500957671898939261421433938896086351301367676008399297634935821459016468372723336454482118033688790859964187336478202351978053518149463268139637384352222678381052796778301531189743564966047311685183702952529073284995249897924425348224653912193254463059001315439245816679936044009447820118183117580788459457533121592505821278068749222693866234640441060323767082493783665100768159744248607066453145727139379292532222364197491366217754661941082603325302163636223010567810275540654826346815735587462449292366415753092563218285573455970224812451249949602510645015718691345300692759249127277410234343803750667110016606008009354868132143720219301686342701640692163885968735631877026199070595906096811095964360836163449012638253839862272050332645373991525420096382567971613312078800240928955674217640699522677843199556722722327551990814114685046703624924598710481523597423154400019890297974475768035191367030760887314774013331257435707248657124891306620063621645433500815801505641849803044071439728215999032317242214873916064241639815078077291862063321608992666092136774056691409541398349298029516973650452198036760831151771039721290143023678350405825155754242770213564385980516521650313470852053375871429327305199682644568294040658056136536444542117560857130061109999463546238885814152807657673318136995978537891854448043560089262515065619746833764987515559436870193547631728378068607061701768067593399421681902093911460926110825441675867749047721309069881878513140289414775318301749419741589296865665538215800822796899412456458773190890271025617811154311248514001325028843602394106648569416840054432330093826431059840954975454655266867979123697638891867863162525473294507861265023659142419909691147444434631356470757961583547224576883931621876914221442992268273078453863003376799156595676167679923207004239258735224477580300542266266144427410447336110286484584769213462013791668273533291138134447882070204426857657391247403346529286477685008438698307908711181716044597118024723828166682138857097675759626604241338734360433423513068819985342167749151950579296827329176529733205031126562636293217209063549799198926137452102281973658142445747552620286431419308568956853226347331011025185911936094074239696813819808848231107440801175002311484359891391051061865546462626388306268011240645229912119954703366857342253000643115579343879291735228622367713215508468120640155985232455325742107396529479091086115149138449955380016657388000946872408720811532733819078234128967374074936757065102487631851840748223130833997525918268236811234125041596597913102641429062571961442874958321797144470173290864360404642249490013738777102499248346970555994157778519591743391017916940761166143926474072287463405149661906348576894414427801239553454954596515278786567771933274610916288910551385919486109152950703566369904619025208918820471761462116789964918354407193990050234573956858870724871258269411945621718136972393069690966348612551461258754681046317529044046815508460413683831532782796474548839146467218182186083086233012394972951359924481173005637270175398439820159108540519439419791517173025785129476026212541023850580220119379560454121335898761612603635591250769763356965087994814143833198404088254751784708970404327847644168511892540659389232347247063265550970118615998372330691438986756867356212667042252772708626798387567927844145619603563302002316430411117690210567122413836407491996181368346381367694690732212298477893511719418911271857816574890788245503521084685858584592803528110384287025326839562830296979317234509791172256956911384195679757667514474745368522954906870167105110151680643744887347512012828131774795509334779413985682137016817477203077691251701956303874147715394998077743189171706096716770712483837976172906589104490680167203549469226898816012626320273809003033561256600475102565327185878960650532543057908180886549907850983934980951031178683051559718267068963692064127039199242887331015580941772001149834630285194589491545320865242995665035013956734578514357853279078258200698155637225946262990892281761352097715079639730468017868144600560776291907919159176105961587491738181692640837880223780931851376199550658543581262873658311033001368650313153919901224711144693545785929538733939606914383800639628074225491339558043540183136115384823019497505839562319805299031044602465104031477277949283748266564144976184345218558300874938569620447478651892533744810415316737381719438312748942184238685196768600662087833355260921706763301718794874877294869433161072151002626874473667085328021487556051955200155623422485291362883798879718617213794640368317191630195105449922924791472089982798189498281185384510618441601585718064143432547494508842204178841843834739860874138074858508425113612822177741219834019695070791757005289386580716552016754770423933031034216883780173234370132587089584278740596648446435460216303091044789802930221477499659715011419786436402945624431141394594639890936972234910251764141021294514040722136689615649398788561166867974929103101996268764578508373226209516012047600837963935327642574505941625257791330881416171124752960392571010308801311329186288766293780365296641826526048867949965929881938803111957229950321347525278931317108083012046872768643513023229087839193785635604572318941245553495105840002030103635109076613569458850525566730430556450675934368178851074888935449267177235347053988251964740456205003651653727782604598165982045530108625270659568322043074317151151023919457083592684596901386016310724392197496581754341851284178846883187545961516583198704045677272115713185669116522422429270400763056935577805675420820070265802838392717680089529126857475015594311523001457703919015030570317627363959257441558831068503848062519767891975092535028880482894553898899216037952081223204405853735895042698436320284187827361450398993920184118954931611193940754335229112130767472977592014349706696580013336262574507976577768046480967395013172127356279538130047914905410650550000881096974854794238902205663185435784265332625538740758059663128216801765693601403339304599923840231827814291787986184987385979494735302770340119651469835475501273299906826766712369333513433538628540192608415111637559763488583528303635730554274634188596418647219943660602878523085619625590596837092856071440306905809124172207777632634891459264688953742437643745343585687988211909601833135743689467129799263769131237863834259295375730296284722681567021642192000731455982267896702459260653785936103070432246248227056885700205727104044555621488858622058436532839614849855301140613616341978019404711437523617177270238416583315182042111323636292550202835798748113249320009542814563163218035857481096379066619388791494813146256338421658613620748277088287842248458228668586261989623104761621543373983605473333563537689487911825896586227407110033592966729793567517163178961283334850079683153694417072182703419042132510408457946016382529521201182297218831141228023532174688976306472529919841430570339534095974745282671262313656221256197936742460249779513411295989136897451145787026611545143784051762058991222174599146643023928346402606671723378321877254638467074975207417918312972934129225907530053227229182869376315723436424364474413169109956626495683769878178845631334929578797284026954855337204113707476366836185540131306477229936514581213354778525458596749470111965874682740926828822295794594995437092233390247810621525658087596540986244749813104695035134453579400196066406407598359507437136920730146407207997355735001940875294692258845520750965774290030658808166668484617318349404318668967532512069980699201166159111779852850055319268831421734440003097994149520923802550657567189915267337149017791563195641829082601953742119015236853392468170021320892208423603508354088598201926494665455357893213015683866780968651469009571269413164972116607958876872331202881663342150377381067506815628569577483793699947543736775109365177176508816932113838921298881677078631785931496809368232352147743661752636994651673718450711123026761661401451943338148182283644232823695854104026777680420030261264029865641039479255802947266167162802261859124174693513229419971786378930059256584245371564692447523509070150843602742153893188884214730326226890907201381490292686034841085507730239365730363255630315070797442473085129283093530489598199737317872236596911393404455988469129909182579752748684034857622784079531724580985025317844548598419027931382512117465533141055555284698369948633665591174395988833226437459432607540026681692990766874819857777012686055150713896651515598553722516397005567342077857624831347878728279884078310048288776713100974488125362757792901063320929877027434802078566967734285687549374092801188852299043013272245879127439696312534374954034612183061880583527473089759538821463365575414629885516275688957749679524888132868433559304364132803030279427364039953461190378584428397351063095474357507109941351061884051847266074784447103406753549884592799394440149768199379266640188991484297957176077221600285247307330098407390624534988220631435495145575582164742475179769586451699771905754035004973336799266389873366313135635490020925923892782217666278086047601531406491562877092046668474808798604551076569186005596156695012214753961839649214999150345806992897509007895112398873368948063423547398680837761705464906891632890694515571136707854540718654647097150733564343107111657340878551791165115826372510155428064963187008563853244117975689103927625395428088376660105305267948706858925032638330867654941944473550722263874922487623535850121514932264274837054736107049058843806941156313858309077509460441807549056895146418232610192936872033827520518011543540672659339449055212002814202475891626474764346737070750986821721092671259554134250278679316578152673952221688403824059099589048333694302720217406175797843020197140589734592774632845999645278112246758197258142438301380013754887302846031155909129205109451562731630011683103020881471794702398864902599108847001115393724353962659763663347212753171786351993648090618999667645472057889201696362983888379589145478966233907627523779418891826133204291406375201243660627167275032396726118611105886477802984119950627213763374263377037694653297234031217641861901998297292691085239417768448102207626548399754096384187233002832599143951028516349292873948218615080834514045213813896459374234195240351816884188949999540273103931132334985316411112502602584682418889330194469899190274651422012738189316542582567937431168391375979431378941240890742161281530724800385572958957373363525257764806042200678436687005108536060038311355668599842125111911766993685588633976968712958298413504439341454930863817706236014846518317536899878015976380733494994949172979180532681576802423335298356843171925028162554469407391273101002671338358419294658896117167926772215555109122656416950369394705134594556830533349922787433457391350104037359266068284830523832797343750704029954643847686454606986247529558483885427874191203900393641116468259836661393673263053505523275049499914357997650816640507982865353742602103630494355666948471955596643057988868971708913711368274287131955088727442295922565947321872952396710454880293872856393862483645894290078857907688885541568686263826634955504008431197142373183931420647506672879032212301010440402716082343169000276119725402291016429917379260884587008430153862428860233365706111357378089746861369335528892276376715605460286870878520494800937380630743843166400000930072019247216471943294533615423720364702311796488120356726388570323551119574368214020128001988535331247413202360590049528267064471990198072355894037692503392975805357645182849947081168204283545296131412678778835280086765017464867084301744938752205971842293309359763067670580523668503288428192288156166177908021920009707353726299730942712510388805160550798327642977471771009248697159413593102698206623216148361515524488738725937997159911513077605638397169527147642548499528022069028975771138183142174104079335272445768561834771166525558011094129074323606013770499820657341263068061576441883213882176354707619737368584777493821822619007500697278766696596357870339774015880204236072456093699795263649807964255526275540680357718167161858476899868852245815420862026357389336173553747777163881619479879882145968249925755622532192623436115379463069475100243074393187121042247028646205478312598137021111986757288821341325747917708200291841417722594443369126579602536027083617514831782743163909247910681620527193737612966655499708166493008826479718269334396493107121694026848408662899178585998536291941307878700263580004293484008981367796887418817574368859899981533250101485654938432928714705925328973646547077106601107798399434191902972035155621453926795124269482666995815356314556345084271871331297761042176656256854767776823252260698074870832292796892746265716525836343783060770646761201116497311647428656952424704206483639042152594112574060675540781394238506348130272061197955111639960446296519534955828462616803344627412116348730305140608695071187238522347353653017614304900082615258871409452686905820889138786560640675463203256676781964931780401825979853767705704038407092318385446981616292918030305952909798435093312872697072725388300541860576658898434992263156871214780518648233938381255405522888285094435082084935191181954090752283660991238137892349034119545136482466623272130206493448483772836028719174712399974669968185107155656979078941153890857599201946898930341239988464555091461848265146517880468935231813004808668399420237149482299342473083600538965777941584115972959836380964416110107113958036434250215076057681249722671960693028849434501921031057302160998491416343341348953856682349909308960892407533972724775646084651179904473495958470215971907556746450526537762503790347191465790480017667848466092958381691736934646425091568300686000607967677833100387403171396715719953599890081821651907829213835392198062934061714709200100516290910597867743404241556496233071590565440373387317136153659121892122733296433969416036238265690521556718318034422730354893716849809847211775534416596902353269669227672534928432413817594619397931144624493132724025585945628641812011209620518717273507328854338265955944748635944424999673761767411722671222959106946510830540583449645929775958135090566315505803480890888593309703424800760433862106722428647006259595980384655809287724582868901115200192584462154696902538061924269768621489083748615538766111606051970600820808111816689838470256672108762308104776044557030895918365013599242163442552682333496629492366887044021631327820657082819810383569548741946163622401512876019533190670312927580616661479167642147332554253867448036386284259960459489747181667854124994870684770895416713093430106438765263476920187182178838380064705837364398070546456735783063816437909674203783777068591854582504438135888010447472986955758961170580596438752020617213279382031618857072151100472579481304917786305344165918419003712365260326136030059309020398626991454772251907450121836878026288062476395992122322298329292539768277837953420044638343899633100567319358087727755394348005372821369303167139554961726700688661839248030064130341749924368633937292806904834898794829517254546965778246708753813604498369163042566329183473049633069720465593552243982709333887717425435069265530177936763970547713453717654830080942988899218739424716082826307295465184326852065297780295986733149809898488764585011520003889279531871614101177229568906910182159269703257858282422993709860489586716799296958005898779980980191441794364896807564836842349767773181290820932866148293076404346998498629445715960466960642121640357504947137274119568311422641914162406108785120211320087063490254788142668319573403147984601611987228134870759412460392427761349933532727040093472439628183595928260666942269968091747787130454316718556386017410730814894721958710233955924745682288473269889498286189890492330805837926399859050997721835484362703441175360746190361039648183677358098254239463582501982166671360394015181805694886342873136734928796437554945767087378919442192262021555238791734779759039730855655957881287483729723256801210739647300941949138535161670624505357445455616287837586186349415822001739204827050500365824005961299039092486705076772383876370159283056459201012838241537256305509533135702147685797539762593188592185408552184076708811758688136800062488423052454316479620955691631929883995496895440211349346545237728466234635518146520193781498415967464067020437647966924082387220428170916562519627008483932936477864725920940028427313946974942931735412373009218813455252561539595251771339254795167117023716498078615662050333218629980723432059037580467838671984744508676366784768127331108673559734317202163477446038518096756087284301922445918900745758745530031376636044926029477763230710880374168366906159076745523077144847698576241645164909037134413639355549655872079959446718213309459155092643713049541262499883567765012173469671911354377399150161279328321306161585222625748433706187839322144870331995225694223179647990500966098159613825410068912823607304880198179795495700584561312736654534586392738891527348208558052642897866986663450545509404459693189412232165541666804966747913317722337492941825072804737693009567098391723722752958424637917448149202428002224446818284248524369425888381907985482548123488949975676482293972069152863342089126799949112312707385656304735161181891743019660753834968612485027535348834305591968891248152814920751482313231720733085514034760509120215568099845689658008790079670356089233133685664139388626148131462833427592674948053531378164618981638568138050792135269556985297926008078339844367697664526836247605368905886934338814751258913870780899974149343568282526568094763298945616174239587948230667106361596554111806596040287684996182598619223617266887917053794131019560648741326669623714358902559203728496878304569431492482553322429502478541759210191562716187190401476436871234139936781911426146994499189171422607674575073689767688040091607386686032422465298876003219444222500939624583133462297204143146892042733989747101017955057195092624744883356135779476101325636833502324414358384815941867607444246405219826273178180674480612414001775277230913777578687216174117604584706011298282779435772558888138073381795379123893000644967584141361700343786832540602949448821179234625684169699992804388343234922006423202715278620809387242643222353718329400106057388873807182628862706448455281307724153607256839741359892852401754674108313542869729299941935062668928701950186162516574001059506739532737783636244882813823801706107579654562878026457626565207228414833981851566504603050478268955216372951957505075383982080913463155329888719188764403988672243063623714892389933634956097878031572957857406002067149840785803319406149653830310617706177446286034623153820844351058571426446498515406991711483903183178875200307117739635410072532617233542292337978595171389407839140754877331160049276929080060502664571271586918033308726964981185966685468151461627009987567615612475916235740254244371389391333400832685618017334986964805047799449595641595338610379642955496724834078548126205383882173380956302647729191389344359119516777578780815522553582363843159411626148730460896291501524120493674972408291845253031053939583904643794639008291274986991162273456680600360278985911864389492956108865601779110163612354848279368212542689706967963644845629059614539873878678036450684461192890696475975030301139962295515344210287775975486358325283222394134055920750176715213804761238340828408329634964248686938916554665775344973725233315809064541408866088606019107033253729957057855191019193223715620752566276563145300826106770004742985959679852437351792992111602619831719489339738391855043925341532826425839596024532563400061982352004394317074075906749299316654489206990207407332322283058701484735430856433777357096996058566166591741087176958540781376363764638675531703403050179058566064407155045193464063448842697702833261455558444399327656995110964133904231159719575119425339395481406029520742209173132282334561518651143295567640101050089079626801015158002817604830634891802218733385314832597443278450548810799231857988339221133065624522693118455947333100440391916739966298886539247574084927175595165522722285202695956794815830429804991917030984147662340622398877108419167444673188834782914947196869825375946265380224411171681724438236167862092821308373415217568240947372410278269907760497824024179549588234586738602293642520519627885290177411249010939063628345366232444641243350633742710300894180793790438201075779514832966788748080561755449864491096233464415132182054174110464977892324336138765993150809947791597984076761550512568358531406024536841547377829249202412062069458270591743282815133037706994639838039562440117901450066355770433379691016302725769257216387648894577371931921735369086304835461738961658022783553629242859752401044881017120014612278092049638246513290558015933600554287998969505927494005571336195225762410682147656059120580920809988922698748284700525981436103100800128687417739573599728121278867181492792511037970092551317104098546487299975027321250623553906844643021752117455425121687872996056770503021191374626556845623312909747717208795895813779349783909939551771670171396933375161320341850626235664116579511007329822137055002136816925355985429408730826907815522625200949901080570044110458707439463689802813625025927640354066351345243595793253593366755117480220298916478551896355627476268908201954748699401345647615522303673352265798082553514169659779595234556394200872482109503106166906937203257069228827700171949135095682787113780006849542203280192134601680178567539257574377734770192147076985432510877704037691965891368950733586327621089867820189095427453497605335647171856945721193548518513758676460764484389171386254756761210873697091075846286169306939582025371540681330628471820841145488456727668345766993407398395958161642378299267688080517198832286689361747433332141401497818481982586247339256488690297451145615062934919072186745753502183953895612896787273227374939186527949331488838049089398641985405512272287018806783307630079145486368859482736876446031432822473550469710293175192126285660455092492389631606052777674941744581247832809984629586482542370069227572742035859446257888851759833315091635557277668179637610352115296584434503586228994535306333521779547591237356703032187736409058768396988846527873031549454350194677900130247019691187810921455640751442410773178107895522846551833335676376044144978940680285205037602883713266473870682472576384186593298780305662832579663308197231401108387435208383297371988433671717021243911576981829877313411786529314743371007610807317722453232134752359081569057616031492218375464893069190319702963298691290470910439916348747789155001265456200263567449441478395473704544597008947912429697437550505620478485571482471036366585079289391444379849914323964605539986112239863962102132752657295972810672096766917135792211134795334599805340360133913982614822887977332831953494777544755497595682793278095099687220352568817779805215946906753916783937431374320453158244105866289737447263953736435796416249641393057338192608476077523249620280426531326857220675345062491558084146636135336954150949008857153324350920596783788753611860943706630287128404817917360735531761996000683757196544401562158865587239914534149466655581626486928724430547414408159757286979820827866329672296879253063650914243584928793490956728014961078166859392757683159523735538743806513923127968828843480703460277267891255794461264048398115843078061754369708595659938872279520786186887137761543732823167752237623984945373213199577340155591823459609485746028585745576333327058729378156949364584604918270992194895690806217279283460817392982196366410728662397616488058349938291865960200333482296456366405326923141514226102815865012465660077194523579278951191944348227502908107779053244229178533982100476117474698244898283808433128011193850916922329505524467416350717236432790942182739458818301277882309625892148419132802279245137527137528923979748884697906602912831495933323269236779893266159750748884961369930455982954879484065001016371925514885872085118839582379458772042891963901434016798166659789356117778012633116652982572610563057136951601408762615875567416175014904897833936216961671630138993786416328339032730530021212658756735961810826624534296809591671325544413300754479062931992262182316069920858533923900046409571521936696543619449944324300726542889613528507684451973785668875988006793956874438139512218195369655280519728283961980539430381361433951826372747573166010728171308823176575010272172888963707809749897359984579753916587901240836631477912457135168131360264734520371239942270560210080846314560182826654086136277432531747374551721250756388914072883989619861769941697075915281457085961743440672673975671269403074287021042868148659851334511795500238656152290544407531135046074485796916954119374479057789702553112040551166217890011407899578120168321342356537690276025825223156247823823785773397985393644727879145209572541532107704433804393400760830998306468308477495048939703310424296144964431561960912467944331205264248099203198980944805216652912198105905845021402078362570502601191481374870701033359423117140312315401386080773167117216632814069370761936913523385468773948542650280868428343766623420065878159639255237948680706442309231133020457569275054064078217439492864140415098906053197897888497219893849668532963045622154931759613478513047319833500630719327578612784033979527961563438941370488960080918867996355642897817740222999879728811726005886169710202929909918451429208868393606245979376549746800021734332869115059308773188772673364733312441067602059367187043166205939678555006396754446146767926928638781095351841423504975468858331930813855634566393169193552667813774451812943045726262957958405556029443575852551255989489264683748861220082684779630462639102226271723248267683107460975855589497246282556692691044897877600154991985893221187038840272230205928290723235269761136506271349092700912600392207227812571136328771559960848996779347178429040356728943466207240300519741628003658520792921909580149969873490823105584430108347345044651396896043931118356694578402245621308068235152821816215092853044718835700951265578920358186317144468085458109872368485228427170391570311406885878939025279459521368389016285793790891803763842225340905883983014075309939217352499887027888377252394200920577086183471403687380275368887366732809835606138755909683282951871966204771395613662504681215404586524886956213158118942295848186468698977540468285006624523535546988234129652014823425590199545335869143266800445814037847371426979577194087154836195606156840744156451286433803598470267895158918905570096962901733897245298388734127989542897329134086811918383926135792370875589752826736283867407232884369366035475595520269352641253475446648924502086225193881747294294897192384711726398242891396957259973655120741834811941153613121909236402130469874413775858665248726351957868312503210184234918463471647794816011222739773121186292434648915881697457460575785330060979183536186915610180987187168192103865009680819828538797029109523295015929787695780383239379652777796472390089713355379010235168067673992723629870688096941662289450407216270191425677375734929146880127839997333941374488026298330583326183648718491281855128250477866431969569208700367514504061972720707055533267327762449976151765848808589216228282809375022754326943939369480593426448686053835758065057516195148387070773805359249976082210807914151476369854438012683672590979357305986806964917457530076318333285422717128965821883266270326041014914826477062152334259893226617246793764796233847533312290549635817892815106660781382706360002762037736023800835080962939973145014924467642524881654145306273923814281462679115557358482836506858991435198061097037878223215386215237198963247275840975169765597021043470982532326999016820789050960242364389147784829975357606645554443533297882889284312729865004303000521177660032472334588831682946531416756605539154220210421320437713497148766341090112967960279578049058459687347635240421323392638311912409684580172759919157768747655856229457430377482106257265228305606829835679153900454618602173208169013168893942356073519199685801664166092505646277621660699224904579638760617286173496586424948849940398728899663714875505901107463888605640750329990855702278983916946835821570189491398377115682767192588746560690637906359422238420573694576435914179188645664640155082559686918457044891641179981424611530284543047205356265165767446700576221034352613969097441324319165362187719542285832280119020028085963702082653373120469721911267012128931484968300633905202229617179724372003874713646328481199688325830423908727919431114628618327066258029353266885073073081445132208564024339528632032488834783220858608594882616579352766729450972151193605736575239437567556875548413023326955960739853312228289840017966078040121772671075394667024223081480727495156598385874520160213513353526378601590527109677631069722273273031972577182204868060338841239125518459414975056329507784991870482618865665822378120817147575706916898074645321176179267710071863056265118117909818605907447318866247682451809406757296701083020765349463266813605319430481381402207587687796731163270602048609214133326785258845330177038795754070950847226969811234387767205518165308962104862883392323285565860518190668983282256021576996767097136297171372358793729892999224357983864688210357177855901878228033346492909214356529069636657324441219839459415997705811287499589226654726092904398945931275252440352691076982589706374289806786468168709948635253287798192849086228989183485273261460628828535681497074488960691999457352234817861833031465280790557058511855708107894421017042310227801458400510123571089974170821137307381191612731132755704669050269937044257583703384647665663882724796699148392735069454577386794812366963469644766312698697190230794112663988106079947315018650625215195301313777370671103800070807064570857547121381554772331131813353555492639209718808798269210192510577987614010110115318773062135952513969734467265833701719822595798841592537379929704790120802519052549097122045335390315649755321544604158935330670160392219361567737163974700226189062339722503839799448611927135744286622667029297432002511061704349617557322122893107350238006328135811086319136493783933444813760095098961509878238573500058277229064095318763184653436002551848345754249444438019249471684533107657700606167940370020911132523790212444761606562157215046873373035400846646682709288623454567407920966394330669221123527697370960607948264635371228112449837585043902510582145692818627719656576617222869417852362979236629069732567002569681524805346109667152730797577787636250006847068557698542274215348706359217504506809097025340997012301049336558418588663614578845898503728695310340239539475261776384187778501857986478889847380040849423084601603246132167805876884399976084546042537782934068221191829732907995041883326441604205864367728228783820669855799575296097345083636531347311267026585829622911835379896383859887538359744516573483170881033986362855941787515935681872198389348207421902427363407115581281442407748926110620369205922241301997079249220663516125613901290509108898104518111150876310271803517175085453115499608593760146022016302058153587347533385193058967998062515966215702066981130131673034795836326088780948813934759172448874234154108929644912958274645604126392489146014169540452822117928749490137689438645130928833034420746316622705409762336797517731481629356916118931305066012072656381024073695826912958271842147341173686151923332964155423677113786507202794375788639368434294441881524956622036765779990808461486874967906728592929281203951195811873577629943282714901731172536940006107273509867337503055766866616615475424651696366797375293997889317256701284073650185763033090355704244866718774136855343986436926203163593416550779738004869472966017725163734545597079774888129557943071835097533552386208207902859869704598989150685928251233699672577216575107475953812323737728577203085528258523073312637121133715741785665228856058733829661031873285300273363104517626375063063933125719196184325008905075127546891057313964200854125607791112441957543919885755763049129008084756053016205884474940804225244392594070946658808937772313847510678757739658547603223453450884228032346206040690635045559114353526610500436991296036289487923808520602640868747162645200146182092932869056910622140459672224054874208825515720660187575784334393918210009719115510985629793621739519673159248218706088752267559023115676699929462815105139546813295276186115592220053687081248853835622120724613525739652710702930754226694144372801273942987629077913420736996620364305941111062230039836760402902391914211386845932340805589389134772390289649397532382101546564055505857047219304297809226664269321216787563987330049879772065321128773197996467686217516970380901500407373002289161294173692078165189699926440264514039926617883424672642846665259238012173173797662786257332064791015421286136374619760828215387703610957673339669162483748365245921123669327164948987643853907211989171459058052837060783338616595098908278078835465930843859399310872363904699078877317883360907180650427362046283928705571737970997284896980177001890597744095223792055574147749261643977899676217182852235101649159659638785153674362977348659301632547146997751697635598170089765297378061557173725199748669411367964114691504043881259512917317810074229205868207558429777692108842777934221034501181904961510628789171033645546992261125901546728000795820909372257918033087692805674954025272975155693741001802143274964616071813650389284018657443353010644882225408505985246401234942898355224559157910934051781381139164152496571369449982638599642134045652596573431011047454402369057182129754519087016867004662392312276424894938432901306707004426737140217680883074640364279801330851334081031079619636383872161024273695245555067356543164371396185213485372627364631770964223063866642535909794711702574908990093391405743200347862594839691843597233223722649297003166211717809227060515863125150840183332878220425009642457276794422888990218754490382722193563110219116322934914773967324815588213379883384852221755690736939791344683290505436811681697999728444000299561946939176906134200815280496371154558443548041854941642492594161334123102392993652478554259238905993059863326205290735456982486135159848742060807722016931665375712521199929562100695367824246335336309779023789671486132265627784486621757460379920078654587742261632990603549632672844739229069004514107788501987681610543090888633458477376736360636589303541923891488697182523990644474775747375789094168271598681785332629721597992362508223053184773979153392221649569067859610112256851618844595671909973013842747688072418379726490705169291871501118156824777690263911427724578487268557277309969358126663295058747284845970277949942953894659493533715833449532724999716506574419555443307433990110407296464461052621106304765122264661662120845144184922797077732077329994029023859383735806632886800918814104033307573697920618743310466345305028164499061757575998668025036107087477055029200115865948023014024846444125717834581862319020986713482614029747184531176235012941571584298081772936263691865682235430931303729496399014587531145971015275744993950083937387278219051686743489617284722202305981642948627306125975831268408685917310180925742056381076097983822686669064744191071839059758892197455600303019057734747186592337499199581865561102471571654500386417980580075059548813141851722170682707357966657701999950731834263625657266151041487626025109027961002226587023497028065589509952620755414855291911547147508514772298204588451986799286143339391985984176783246731429650342480540052886798292711091220765895059062113906421732937326006974786599266755526709407220470423822623634086818168785131352174060423922852928353014795694821732589516641077879549512669556801122621436185661968643490704176311028195372303960690386544741574000919802557206466984511594141499104691185733787899176115153021361297771917475677924571238081300776424015530214918185602971907175261028207084957082130805623559247109567195077228317305056660084855016733666664280501584353743517389401881095032731111589192009864729975530039187351093404889780703806056960858973690663814093985891015393288943495892724381520505703463331019748174321667877846894393063721936123875376205163526706732327437248579204472858579623640666792897803556874314136607016065663863949131701428818127245148771273717616332044098940533624462314668850594818352502381064909098346636216951845390061999956214959658042746046458791425135098469669440213899269272880271455769169398432280270590154879584556255334450865650853492750595637303418889679274120444761757058538873557311814735748598472489126615113304975017365718943808055963596481285835749699702512522932075952631166157958868278248248420695245773572418352236225586176318221019498131488759002664412848256068613953889945804155836151987649154958461204756813821035294765850021880413848176500972379109060602612926658101658511655734738403649877195736017010586072050152257095291388015956024892232742436445433018702998656003284994014547159024285361626157224219352991272335491789975021971797103869977998530725890951356290681858278972904070927540061257733585103399634719800395493865343458731400971389755732816496045114106899759304903397005984371471567092557685317552408871517126478274505363322129727580358549973470574860400776939817638152161842730985563257915209947408920384720829354993589601840591013477093060663558491341416205500291188321881573246785592713570193007916768900765171205328734365535322327352467394256986958374770332766551861762432967477082463828507541387824628117106760964850333370351490255053011711021112477334271167991194104396106831032760882109368057511656953497385150406856096067491448360174038425659747828814980719213478090912048635701623610709914282438825483468573013941302347158680744902557380214524381330025056114190582228275282334380648848097859486546007399451336659959347732368852275347703469878115086197358866094324693096522052386278586766920950638216933355991951387251121092511508186351478954452073023051278308062968513142490513429572535532322506661880113458971608948227223980588014509365316334278315332284445927342897997845293548891081975191113228485357948537880270801200949662471722949457751794825205731399677186482206552253943033150060371202668056284647181903006064341896361631141675404593942190077561004487575501079711255692990134225695696899201355282875046384715501485352772264278485998393370246965727990396899917003946775555570324965012390175648110989767570766641975940480853414631786756544130337227495252730346808583842688899910145900940043043302315640482629250009044247158716488215889415703619096933561810067228975075717900194983245555992783774255293272995382575456467299581471353872439135142759170193378095672251372900028863953073384142654329690852815280097815566733205859973584591649494053401288974712645605873855333136195721945884999974701743957570917430436170344968160572499680137048550604969554659063931320661500269946594010840053968765858917512208673160818106579670734250826266215006648240578385780287998297593366648482914608178616221708190144487896857100781196252523017037590476343151786597800465277233817299771425261659524392972402494899979019999971019857341279529634674124298970646015061887323392140211102445683562498921674741273626631088458416928578979401988055333104629440185553570207511603289494388080927159196439740468206460902958113011217290148630134422299105744996125322842772709393692525906023716323175713805897260565426951021315487054503495968258653510745119464830809107651813799302941261713774197391059887787017184874009553979763318438024809596489747359075689743299020680532388463025495132047379044327267052409114132643358154492761867048957834549756724413762294628370590965265280292336710510815502379109542431763591116594774647824292092583913974616412537557861817993654361487210440984419211445870845020192670473809594415678223044774605448656339447077035394044660983127918362923036737683835611150184325120592616010881686713016010392397485351790374899334320291242110329256770374670819029241028495887330198062812801963064192075087611793945417486663373084994804346884103239316445557095985156303310268140220154533710039259914215492236100189567119840033427454942282742815958765897267638480257572289283864220243761429201093061214988661803719439845777979834643137573215024189852872455794967304292444916278423476491551346460036267759369814364256490694343139207937986369880607440658466194476852348098709918408321467838772130085797461311694714329419968977693038549980953484310565799201843416703344931394105079181428420595727399624692864478271303199526720330433572334923883050600880637031714310347167908400523294694230988033548512952024336387538183430883030457217190712562061515534685425574931897352683587294679377219430623973072497776762786853659195229219631919178851717438074995216630358621376770106349375834798951694640125974404236335862350211549229986498992650551420105250190924142970893130970045653652237583104967914155004767473850952307406708254496541472911191859545643519103843470403182427090458172645952888805872092026935361371700484051724486360269343235889490799407678029733531591072365653706504766121271385562693622727608932458028029756849324724973642375699879970828980427982817301772291913861845789049329826921573015499075905323477784153972840980314498162946334037532862275131603488995878295643574304313597872299826751433420199916987985793190812565502058112954379970858885411633452482488099928587724556818356999756976093739634475486996231440676346163219029210676738980158942492581596400144817631718384775301041707592624156979721174088136066771374837139516100996176678613944468472240224687461708220270464619576221690369389325883896076462270164473606440070517889030452543308641697023664754036485895370711887404951901607966762789025695808326890401976797630546010483504556139164614689268807234441234315742692095687377585943748646907872381090432911390342590754034839634046188454546479047011736629426165537070384137484591922439335932757264949528915995166640020078016435879874681006370846003476598424262782586187032319426211234123466752720778901755431484801089357725893312146110210644081375635094937968342562869468569872841965322426814286118438554042259128022128328295568252837084022856926054023570974816940160346604284341346133210360355397546175335341632412646985607603479447403613981755626230692750782624193802305982594390613290270587998408768347814334188101485857178806034889534970533568422646340898275878364848330128970258368684366745877146179209082020608265660199399725544155658332608883225090887188535551625960212870393684862511797965481000137706589140690409960235192439855282369492957108080818122234818788618223266564049684124318241810811173362720320518175712880536587783714463254292997065051953123439146341801407401676260251498743934144076080422508538119799591470643245520552391663678196882969290319466212172170008630645313345316635878495459665110644676512115827527072738679073281427774129374444113898249991101056279687529303297925217031881367507886736474964987759252385688788657302731279279007123844771586997077853796982418316202787735242611893617646174171949230940631345331929871539741424729174008090444541164883469645878641315434261633446271007045119649214086075955771912130042466597612073732208963753762474631202865870346682371098723594937092809509766474954985370168376913144087021783407597563664094721609393345130360876680077813617818282962697496677277463700311929860747103095153732339503703770037515354622882726689686990940955852359680804029670833359384847353626427703220134867423469584124621954704254110232102559111147516552456838600954545016448067027991489989778799894307871186783541226588298050566521576165554078799939321510711523327016183263649040613405884604224597878165205321964929014506197782292630357151704563217515655039217382327850245892034970241608785991770583103377516073034984095669164718330673873695329337040287552532048235549843409779802208264049546391243580230581933164478995068979811898776305087418731895168856810483940356097964660229129979743413762457412220593155715746183681273981922997615673966924785466470263411793797948236325774163625714086128702863618226716069726494865439047376931152882516676946867805101455054812173716314738472235268584613716939485196458195690872752483383457600723634729346717175500223954417895690691096058521308658528610382142599289500656336127393029139900965442318348414897130548726750906285858606668718820158083116734422720088394991154292706119302619932918801959898788705139068898920872661284900649665216209724885702843711005542395415423954520424597593000780655690079183363797066574355454790737827963059727370754600169791270175298705433295623043336122572350379775508997714111733734514196282014828229516818725761873467358555915102672662087665288041263922100904448208788694179034807343183750192020499455649417872416924008720277222086900640536892746849688912397679633121400258893058553955178688288613788547842098174091833050328341054082347123381493681046459044118000772172695192569659920965769399597761430522978332795500158195064339111472008637323803605258081142127519377269996857713036149254039916746753927776560855402213096274735456264386947586377170679913675654949038572514357102717393424210615363668919238223705355320759512330051401062681059199402246131042281780963313823130960942723424201103646921500681599374415289060252645293631521614915614220848173770231130731811958661910256670242153367644956174766489509481379106966664947599981485050184338727038483676308249601133392961181274204498153561743534605793938269069427339255496758010989916472734191082165230041143181675361014909249231617681701888323027680826034621306907984771508738612637565126086971420637476366055457352266183919450797690182922396972940383711630218549719496231415294624356618235942068080678116953040558315305454579961535217072190351805531256889222415056520369943873254007446463562276439167334580153078177309120166197628886453591081805750607876236780098223044127508273465672805529746990717658764796792379480733444118700912301659769124964100274892778607768195200044877803632849565890774096315711532395881992106033608405858218464690397953285552001504996618296139481297742605686319050516794788274037209408332269032066321346418071390636575121690046113096017677229553952660326983563550779551625662610646605345290721590476084429882574252430464740013178687310095429629109954993309596485185134180517540096047081631969864643474617188270912673169621660282152864746124631769922447593207863841121687567237268831088340485841083382844131898209226029975760735777441985145340773576804805952051406905596939374165429225208547883277062325799300341807843826751324949522023684789140593032173181231014516892783861110687904802054056862992780541059709250818646504076683920130877520983419285935447960382142948048895897697111197115693010094160074752570613719702988870233697687376492674920491596449045211169163587319930930658250329981466235151449299537180321676948671736156605368637102100077051778259057685655483653871759298917544284858415463370379996694171007952461202565607024836630729068398230668179536373488397818225989294105022878799203136863088721578846711350258155636297694134501452279484546870033910575870071274432041488281591373777290657157152638886845261394414098226216503453975591746521889407891506569819006943961143264447809734401787536683432400641635608717498551069330673408547580675014989001131777461853328270196450294342868094093842879741792241701146604828260447851563962643497824957140163004453791687020066782400859622053999848302725698753524233113893462745751371013156738531394085534477671384494523429463265368169998141491414132940012015940569266081871483848130353163056252034235120273475774945143459013491204860032025568518196454249389793413739667169318684339067583274460534330294191440923831759794268015606231205896260792495198047187916610928937980502797654322052582489307579289253772680859370769661854948217466317970664698882429240258249563742285742282876497607838212989967937575333685876141737632768426676947096722715212105081034053528496340970365687578449683482807150732225156867451019368180327860368719794115465600885274083370039230309371225462764923539421628184246440182331856299232588015854817800475993465460076017471777913449770986527648718747101864319258498023549316508035053546989840666325108121551146475382288220282400234691959009151244559012265471468396299337565001363743258735509505447993262566596434296554024833970872175577431153020551727961994234799821866811478906287425728519096119271579374912526237126213835318090696709733078459880040067007930350637925381907158790096646949473035888042177804250351492790752251139775416315871019484649348307477184838115187447271296598917576876269398827039970989213034195188868003363571172809508678149069035167899691156542180030947882540015549318382117247207646154097178463433042866361895128093294884691919317049317387963113628966227799334119927360679219988176607515921992120802883820072564384245369058227756467966025377007304411976351003717773956739162953039462380151322612466460763346843484605238114111626474005732546674864951040176696238991815810739297173003399794346077119871738278317597364539315507347631310488449239370595740423254746656525072504361157192503976098494911927373266640030752885279486004000999385338261004393864153072611862879623680296508467853118497174752878525607717340306688245438543306323091073040791742522843429762820034136001917845688515531958797248436421066640408376029519311297336632523912893619400026592659657916976503801061415980791281731551344553362299771829237973501665311367108432040158936412862013239614584699687952156313359093512012917543817558872198371103128415411000372052063171286282064848580558907132446730596193567625920723391776987423759383778675906355541540933361286147156914699190323564114611685909355187471061923156331541071323892338586750308518961475438774085079162005920874457152276752143592135058691215504941346212471418723028381083598841855766944018224495846203453886131997900809137335509038557871805041780622428553982341402729960487661852144157904805527577083115344924741760514330299416078661669536880668213120810332535572426516933512241189427161860632415694997852069995239960842219184358582624632108218054477225765239659449056731309801622075387722901185780508511159026376319926420438878559229725997976325252089144451601859971421566158403672841168415378803908483707516143585518329363919356991856287696405837026077486456481487530225832747076195148688358601181204568028995136285127270913824609994803606720765337926593581371273735149986859431059682181905541468908039461727305046126978145346994776217417926166881016574585556816180815943282460236609560704260405722673099912730266564751409152155267463315536610033434882637309457042510151655848135309775538443351950212010007839732212289463279944218120843754569715233918241582754342303503813041809020124854024538196635654318438311825202746614918839787971108339455355844118725979619983055260376064244055252698751251166657851736197058354879397850930533784451328985474776410148105340677978452724559708362823193641205804654441480157403585491077081066161008045292648308929250529608047565034663729979864631807902378130529782854851984862691042018381657755361844290873540508722655777988530519176922906206533782762676304960766373879203263213449941723217776617367576596393646352441020112553742416637716698241720252043050102332837816643410088675527324962614821752335286140136439959089218003996734146031164698006680020320135951145956044152878011318787450438147464892917536210319856128281557113368469313881893294635938848957425095796580266305082688665720649472543656129916149164972236720502751098369402392220316244033432280697924544800647882996924043344055774062261925884941153369923600562896979090970445278416436604795888001712016908150186286443647303732575635713618086462599809927064532551428627999329600821371731961969742894086390068174458703028249706943620436488388549964482547557338740507318887705069142076745398930437073887539918061508372518072317201738738949809549020904758945668837326307996474762840482116763443498275650883206097232966804759505635854700480465472821137451299304263484986353506205742022814630015083085373785945507505085735506054495519254576960857013388548665410278672645406276016160180242304653993800905130944521596313422027150979303862270571232750664291871634489108281764669269218036843360181765629334912561877169761894225689216904688308945008488982097302562739100316256320398373807425678187257248146779077968365845313441193640773756894303907829332715992623064265414039987002288678299845129048056531617744552130713900004159150799583409880203900512785069028668024121940065344909598637258473696747053390889076710072735650343988889091450556213630010247018223722349334280612862766215811659271595031980671209382566200341229646798581063670513193421225527977928457648475990180709829829057960283163498990898424345829916139857829754262052067637953851358924690376328295679221720904904213430859781937472692009588537173759265519587524162147850785009597700652873567611245540023519391146449808913919196752037711149436661021838902459692998645651282025594379884144707506205741597568208580795852752755648820110887688787055311211789702500867774360487446136480785986444144357534869303379909641599091458226131082590391709334978532717918718103906548410168303820584003867225614143835810606181903288565291616935087286211373082430770754776776383793615577362938243399909414714501855881921807052171931931674265357092102613371589753657520842947112185641329019703686489044287887259431461520751352935561196676102169697652813667943755821942050762740624856772891545033449411486732094141150339565787511172728006022346530005965791567023920372356553538427872735983537782444464529885371156473711114935546498924997271740177910223841031676953131033039214674481086835776964812172084812248926591920187966885398314772475627112180122887041297769636116557821575751633527953510963437058241108100764746953001900032566300931393749751333016731891928801206111540416197307781689853340255119379618467520067382506370695425385031452702096344595322252387770687896966388907818133841140691114738446434283473399744020750740352033748167501854691859935464555936618536463273857527724351382676731395822788305486945116909352808736102126333978210578425709471386432810178700860881056267120397577821758111467285770898832068352646018595486757534070169715625749546105895644136420241989076758452205854181209069272478982541047571321578747881668782763798045738414127689982336502578292799684254852420066126354747833901913464844038521394120571396351663874193618456885421731891188412201751646782814581817531308788640181030968266099648695204389263920094420391683099442697142488958781622761640285118514198116843780638677491602487127522972500472074002785024149996132303179401335528366758735914618286857502732074717743688338374194799693734849262240957645911289568607266337854525627861365086681458255391852851580557051456050029265489283377616397155344548534262073443345692698965204469300932871099017502257545729906557109824197968429377578276810642483887995683304097001782203309269037395067317839911983223945506461098756317920372399129269258153404555428552527274263630878340024714354842600588328680008852063842965825295498198947500387307366086241267878551529190769497308895086367912418357379264468233400386671508322063930399520553491870887186857264996871004142836541116165788865571198309161537189963602203334313329513227680532168702443817951677631591260265864136139154793038264251867060488762890400976940331566209119417271981172205825480137461189957060706782358495243020313289495263238196569977578407552281786697877835652683926381716570518233307577289872064882367383974359779129032729113432813081034377448554547939580220292235651403776700580987583209632114332107423925383143892516043885558588743410357661237643976118626971508628042723908686983912338627440974543552314721403014541581931666810022809655799221877642631974865952358244345252244285270619770705818388402454480493925663248574897924567369501763094506475256604531300520223649090476197431982493477646718502503602666981029855916349655757329314105124643540664470566227593355184085907803474158292621408809906465537614152330960619751400204159627823335933790550990199608875605417523436503043136748242726845082051709157921712598522510662330443266716949187721301962288320209482166655585309177025395718596619410442390738136449681600601927925304147166644542858163181448186695391908004333433450290810245122927710610228585601557395723193513478508118089414623753681630938956709006861061149437841284592469771210574683556685496390343819105314313116496537296976074162501187227743057723981165564495196496104153041752541636315844781729075501069016737602777463906066880838737287570466849816116035286415264186690516994807422426379806617002063744721482326286265247700045638503740444788247029471910489063496560243911271135391267258395202380887335743336808764183709364071200748029887952759053595941870060000785551034840625528087615314468188210843116863602563799561406203467431003680106876327488540268832494915240656484008911956949516906548969608076596995292426686727816870522699671768272743437370978584177768329676349875425050487039157556741457958644697414897095135342981053141981992333817490691906465226373292637325908950356029411845324981443502975902072986554071105134947694081131967724840895066410092132085048548760767357036344439866349426895561727938187147167495685656430282947350039862032193949596557106974795425830014691608150838980283645735271722453546291635517346914044790220522782655296701276428772833854585891370174848509289342683266713598939268048511888627316909839580249217032797739976736571703100651474464308228897811976441071674158129531390829782816279583082842024787746953996727452563835504978576483483244569521936216554487697188825261416711565467757029994929877568969967152268099546116036354489524702852699801127246998507341224715751270688448836330099521718328902175751835461710475390175843430963209871435852965588667874284135476503812963538631926041237697925363279117809394825840719586221495772642756632973921873636503583555656899115027757947476773781010777855305282489093270707985960143469064031450477931690072343814499665594520892944846680080539442120526720339748829958949448472041667250444857550490449688255097594768827146085855100530375872790177130686599345127212606026201436821941687074638808372249736003117084789613587951435894208823571006824042777029182993388420669874656814438410049326335744847954787607390470215578953349472961482334134450445345853163010515566509829884902233613964143997643263839934891907751278078650415296089617419154961012118864463296232831116391192880011260218820897212841631871239742039470742000253617050254961911061811968134113416712767783903242283014326377948081421105310276975545366095293279014514012731354093693340376856907833964317522360402431845210228151155992498157646406228971927450495821189959319304928086882261397482273475205843390694512703485906489557750104437146502871012713368864579243236901711890280546404603359232889741764112230928918455196457349996656144574316795647964035349427642825222931003369182813304860381767733300309922437082187067442524451885939958444358389258901151615676724629963752932118558973855329916612158062271282827659574385995561806130076464102287815195199355348342922321283116513408996375226909058039489283573045917584632023841876913196195174539584305623862239133304646147601874427420559772250176532437647494637076737513862676510072824066268715712245120878312831639502234742985667600981261719490443301886505554197466036062678229867245629021095937389969141112855514812732502332135300868427061565176997903118603948485863118260422236932518279323450097321371244439421841628340353273376558320528041405290784397004084397129156321925455540163403302994320549193194915416367885905413436347996243742963068562459077148963645501303881531513026856766586554338857413468854223442133766931514718383940152121979966575245832462048756715046714656997092983719090010808106177354451891990068277498979135849062294404928954094712201747284652937045575275921909496059911879938614825896381525469018556448361954570249907195694410879156373650376107445594795990976472237798776885753548741316046619858927281971520186604966696256727341564431013171172390072654552763741784651077222665568681545265863377532291696496738865832496164293499292413509199973945292512551823287619976876709835195486381507398938901664980763336941476684993511150041241107222477037352011187765275883771580524408460359297907195589888088239774309857753549660623307136160742898542727791157589797210696079707511244240760662480997974639608741204075861021388233924518842986638012320957674182410420839752086863855471979723059882740993500351311378028993562385723433972961482118545060198720759800036918577297588253845884184812081404003421197774157715673022885646727499059129484567620685552031853495042783992178199325933983165760168092544708760831242642858284194504777798492987866246805339207807520673954444550102991192292094752997077762309976713570620180148396276968875525446966536175206378628036212532193111149157573084302794077620925598600183677457500231559471063002056184788013907982824596477799741279579386707200353921295614197960211938173050536866195652190523660483605162528527042849387366634643237423176044162982254975923635041236400736927437606482364879234179455554897376807038912839832335686760845844730448146453359874533788841706953481520204108651941203342399011715453614803670589476439825036355558911260307633073804149165345167169334666027442267693028278090046603097985366306511267781936266334102039880014246957251744178737672438231480636305071699650669438601466951142692678916408165515672115314898828494395827823755899649636508096629561914522691323977220695769940014326165212496657943615855782164009287528332404316934464699289934555985834506063564710377567143520086630453714636986754779031780712707841149487802998813681022068251349060873631734946430306772571187381539646299549122742870709806959172447794273997641784708418053570640876375960941284335918907587219989655940801114052240048244331665217906599236772112197321124859705907464454905935540950052938627131834442700174683725507690286919653858519124947395492290791597004713613781707064557447768500259573033503048572508232113616918306981579990571949762636810607665694648278464389930844877419279601071837115202039650014802017821323009356786039264652590809762307153834782469989329102256654123566261081147981687935192697339688419164145784911573685946845473992568088061277856554934393237385096134327359634041155309717886818853269161506588057310284980152101313530249612629153480525707048354876859752189368916203914498269132284143168677192940546745109268580933763229301570601062901183367323353672421711374431243238767353677196311724529418008268190553168999975052656685715384432715115680071232315444018368985191434597314997777342783079619501770593602613860630742140128949698689672705158087684880380766930344039281903800862423569530072685101642921611366530160023506100327681263429601180986386870215509728895305156026484398480233855805519986260626416221567563483447303586621114667385126489930929262628073297288759813100270959044731281978549325835644414234541097126225598544742240393955685243328069152309387669874280064016481659969116633492694180290407653075237807971678949192550512569488284152999819309209193527254007787458601811472286003757971589436644134811222368508250803976527898221814407612764293925461078489424663958814192783978201482176194290572635700443935458274212350317375563943954293174600936950828402989285099824999859182949386151063170720291428100193074804959702590005154419306901408517692282477843510744254377213516745281804154120189627617936019414158687475988205123279396139054079240318104392889069677866367634291147840473152103727398451432299218024397683861753182529962546812906545905115065032876365395602898055126302984050416396313470074408573424171240441412198445439517392965163479897804382818428442787109247002201963947201671605085098096481154547128021934679659669938163027752236484455813051962960261421611639573813770092960817936811528564311928206948803177181344360538401696961127457106690463865987085645769719411534058497974500476777163728332299568568494997854318854476793409090255053119486014918533123183705513734232279314218640344990867275349168903212925842633945543534705495527614042449196780141670983702095450545863941693393914318796575163520697090128467506294209290179568397704886357103531951908995049397203086066912006378083473523845498370158196483331881108900512357416034379805965091238560074810500287787885833780472315583531147442543882031182398810724562671934638977717020395894213394038617578566386079577353647588646480601222292164787351145152141480449906022573985214137738383366549948558997855118451214530499174004394606161761125297771555461828630095547640481927127589346144744494854234461459630511899943409193257072646536903729187663818409478395825850500356804775759511007347245398809750033035695297094053002553826128493600244533150306236829168370659762001877858570217050791163179380626231502728014250191023175101048531915606069602110623978205033702101186685121488235964296525612224989471808704606897146169547824256355574573797146936465535626626943316052295578914454012593480208901690818910761308138031644238689147604513447026672927986704519207231164307006111094602633508711695269413938166907594657483442634207865220192436959778929063556212233311037851019410829926743593039704596914647606626029484781922415715749202159106522496956511782063391482975580694662711847685200461796939914364071082524850736906881467386483850025168580865337377847099612755620320281656982071397708559284183037445064584146927671151405835233809363477272385809410628217911850349198585946050945484332060346986784680725860453961449187185979392177657615798373821190802444414088608165039258943934387900933657331294510401205446058921909223169680552296556898998118367317352291539258831532875724156332094408081449901937517721711768579843538793752397458313420140527166537806564363110095618530633071084097787861231626028408913019478126811565138487042156171209852185429297315135433060029082571298105430246850280741759089459815707237460318604986922243097550580076872550786862360344597841763963481483214227887773671323597452552487265647776877379320782893542728496736321413500047243297188974351465454041636931080561474842101438295632487106745840183963284535583020435538680349812742713122046948870886765869353179142538653744597798197715906574410592019026419903780317167793192543861016371153592998599407063733273164875571021497188955456600375204042418896590412432238788555358192669711390830826075006358968273301398366467990189681702041593006588236611418475089747772559741218829725221788762884630139205043061073940748300272151621063515287787959267667487298404076329027857143807873493322485775561588455943029005487081407662951603915359324416890000338840061055898322635662067436281727921369049780293218282366632602051849643943178043566064858036296578980734216160949418049977832448277617511164912915746968028811841048255601992726085856016513611006715900882975716700601329591235053807201865625413209262753742030915461537997406339016440563415116819434649374369207198270121089648127692335423360183454745355534190244953703747250129654206689835474111426745831819458752792797659056718169445040708646262777051289222244001263725767979890968262059943016547271459916781881755773455584780775627469081579679663849163648704321828683006286834201200111643884740607288514103992636250587603405450898649761786579380570570645929799229024678452611700536142163383261614711610931288770727491500234070624729765762746662125499161871788462563768935341503765182957978352606618749007949133420913143069775666996041081873487925867777467380728639810141188751689525106583391595305405012190708464625046836595150676822905594349074600613835616172894516285173652636784455132275953836330370442313153571021380783128364588785289686090064282225856190448547981963414280292343782532120611835421647460524471360532049611105279303041532354537668161682575313704516648794107694550924531982313817291490002842313938870223140312989295997907495931578253119077657006710570066808303451617310412352549193976414205090044716353054313407132135101710051918825843555469270248406397541684860873608929545537708807765405075461691776800353700176549462143174552910193866344685004977417906915455501445332967489485421466090829499126820910982184912172576685076218003039943223785902053995476648289219127169836734043115303843084219031390647591425643077597869140888212890942007683969083917478200660067949207473199214563355574319824935194270715811717103299201571231261285133597638642473492072207083284710343737727893977632306492581330826212788766086106243459998370273171386767354797097227239577933010873244522580945684751128426593795998077596894863369258770823005764094341748351530397247882918488381603653724906627833725826054043521395891449477158877584035479406861403376768995932370518792918746881553369564295492900536050527500903750213187616679580553081451358701765328200334991629107649464427007999502148585644468950141675976989805720536811915228800845558656519402339597547774139809253997265067545867654835176885549796526684201295119001764467788242284420272675015054562848230163862501673087183520650011312743472853520270862859527202416456098971070250430552538021109041446042367122524350789178164517540991168018104040984201268443863019025055274430020557817234559172096153268871959914267699433949272423525929534781185824111358534391941460644300794006290937057289623699374351999422416227682001722823482730244909828092855204684696374753787402130871685905140966878868106175659904009973948602293196002121600867218155316780727650125377544294054874332345035919254890967619362412628050085014576003845734879078713042182234283713733693181908412364334390852641132703107273608754377022777619280333230652122679206783843243675033065411044692810709600733563348307490162137818639149642100922949339863637310081136895238955403189179404919661080062348990015449143856931353045412173611866585279119221853874007608091734316292820024788782105013206816743218061729280476931207210326691115838432702874258875884731496553649481707065805875622172057869713475676118516478680249633433495567529010950399659054027305502763231858507133463015223343899166960718448346308458937992076978374863269912959214000092944173472805194172228553928039141063302708984166448090131078921011425479793671366412256829916768804708363485091986057421144675444066182047201155122654573373942792080181572087190715647269875570746629409889742922222809236455359750380631334209316173387936267564592822649804148307182144112449612338625755992295286298813846798417991008305662677500909564606084232734040606109863646037379935388628894459874334176809802442370405944417375034644794934288048353065762385726018261789569338659502821388538682443646005417319661516452795596226606787985255176406695734139625236838103638502710022393834214358629342332364690824286807430490887998461857915606225024568403195510437137902468058800244684183828749162133282687369368867559881274511482268380923001120869143642153946000948566944609279333781866208148421034960892225325910187590609182182385102380645018381515858727362409624624332977072066012099095874444377022581243747486562494342075678946687024474309289643092107517065206778626665388841109223387044319830958612300585193118208669120611173056295090559604435177490766457824858846048781563111876887808924695794502763711513419594834829802458631890542133402098936328313913418326014661220626606270834720792465132030872631226445603235224659548743713934818483052767875944569372397795500907041493594212747508396220219775039821181390985985200482680084964930427609362166652446510630828512596641343891104957025695803427356067120557189623740506556106021775373642344865315286617426787406525431078876258030878833584155739025634579559067771838434822019169566621500591488829606234170272031360331120700163275654229568260388868507961191828369100019879559061117622398394069161287246827423785783146221072837312110432184571478598877244652671238955414742852024763284393169765269724422854488453925582166938043116872636334937656961037852885782452272455602523952482605734481714725654329903184139597931680192609074880850982126747341620388043201075853138935644446976220141558218227728962303716568170367241977152890204651155784002756481804908378327553970398079592015858824709610564327925739211489052406997397428615082950136627691384365109333348776326563022422281502010076032357469807594596766922794718956743361220742548278779665804232088778211548179260415998845005264253618003550486582395215848565171973786586502254263680866181716744369582401587646161042351595255777204417589576702264519541060470366825145752732201110730660080118697711541655556361309124928480974694097950740372597365487094565907356445018467128618067094620742219897326632128300142123002645671577908179045286032921979421452193043689406755304505101123596101602541789581653116519652859367469843306435087589036676514155042596948846415197936302886208798000500121329284540380574144314558546633526879103835204397565276101394427663195042960473618412966384022868716756215084207820475585927852503643063606722487348353715636027146868375395519512705911676621429216295241924968959112755560905579597477233654333318079515639180038483939293527309526001880153923653624902349608901337429688318953654865994627940147346824562358150339078490856208252646349390042780214336174784432228297708829335391273318644884029433136350424083942362799271735991833757415333595728240044345113863460626951609299719431146928072821396844937896311223079398835218380091877170635117301419497189290884039529664157675485755707158749174564292929265487994246654954675426163786274574388094790645593582196699820654023048133668857257144134595928560200448026218125223624169526558401654915697808144326194312354696373713849842670560899477656640455797159491305415460487392474765491405473766984230322038986559099036279843883412582437891445060758698827371398945313323856967142310844424479134576644683518338364916630190383316473969453704976348389368024588418730144693210505181843799225583965946402946292959614938035912251949776968179747844301972303921094356183896131987928103805084181865445256840809257522949523730724352175050453215275777613032079737877760292296182688420687764263632057754668458638954328952251390843999047318300875409248274502406831923556627982640691260270905566929170541178344443592494894270348115191073927038414127403941619839941457877819136988003260367276411931683997451241464130452875649119174553944886397213190995913074705409231264248456726806239636617698497124798830004241180758333066201003843966108616883812807392807713435410651003495405347585463141098527709306022271657158199368054155104265030111162321912451355027984337348946675434449414397778709967842246136567419682899954708629125196083401359099166988212113752093297135050632306860463733922217614476859410082226428614186877134495822803818779492655838459302525860939834727986043448257925897358420464117597458965573606896711668559425841808726474854219360931248400035662152772567617766210848385560550347420090708442290827185397777985578788723196279522619058920656265731507685033104657047457029087460468439008030298349976846387530764555363760612019594268268488216588205363313384852429216915385011688114967563437317467980536333994430354838947401523007890815232406561424815304909384484631996304373707112460919794256495696437860717710883123663750463829958923353853631149761534461599994990332041523969637617876378799171425188884745715990444527787414856446771115806814892755798076204904599317920698310454031066532964500052261664107319417121118174271942154278240911755878395939630304840193381335817269349928162737096724095520765356052068793674776424397484822240197148715973942822077876932625925377884316947469767095238694277570955356601815087920021302182834314957906088605451483586903085178350052018105312273456088007542885255033858685621705529975136635672059513252684127055440203770388589991317441977162537029305891853092014103235251762220892506182661086420735392780498383619440017787940012410475642440915233193610527116952512624797294178316730464342863954613479242145298490428034093039349368201559074238825332340305464118334740959537427084621615966347411684773457357030080634382297144484461377351958576944104232589099068840136238719133227447265277098403610243310864242100568267974419755212906980294004757945589541143245973896737318691664929555235280192997611747580067404914521996507192951669479545394195463651310946803779088435463669850976983116944873356197153756728457510821233589969673094192660874074540359894662166279463196286999709048441747066079265832815497842333951597716199910646404117184181625000057493851341245239246951647803387864983585648084971918253208175694221250612071322117940268839036116252300805182786057920446341461537770140491575545542856862852302729115720499700333223593090760409722930783470478469416611002864630987488790275003733476492394882767545697925911695183207276589728262963587138906876502274037079853182824842294765401180184258955039096826874374369897322397314974659116950151862417114129234504369884597428343041478955346646576081086803664255221323346078375792532051681509172718785186666822320246337225005737152688288136558715285363071575033009887957312855199417550217839884214681456035760509775245759953099490928357302732371890789290011079756250981612645189060563403307179275080468787541854060002402617790359398756268194776205005037774582781126935859892509931520818475645784434594761836456071308040545240156509149498633020909831361551966888492974967676102959140963277243418040836652577182170734994402541170144583584921548338091289570481124041126619953515412039906847626576544859826418593420903298305483543457953306504931184963896755385020699060384963849706512536549169747860710067854454326755038730326398523816126558531725998322136877180656064136445463338170925405749873964125926530956356536636449075308746284686254691238955855289100931870472978982296430811918685604906639192478872068582753404043993049478412253047080284066276598883295717771095426111967013503660373000487334400301308288674949014422411805099485399031689608620288751952099942114300414822019665389119706086755807655119291032195709308430231697955400298803002599186076184843411164000828921258396813778155458526666364208750683779239329683730795964314205077004951840368427398603180879954648758728558592307955787459563315502665163415982678968486022929624212759247356765984196831122767263295625195092079871754922424314442786083792359565120310120144131577456078753255435324952145913342180990643316821854773289814951769275809807461021425804394170879619255558255090039120222867254522800058463847811398807041001978052641632925527012531949451501930764865833945822444879184782023772430214629056419734081431161421706303485432487698513444806936877839245083840345754102311029840387934424867520075897908616085372069034422400981197921253946726878627173521633605994366282124177446933569932576127946690338347621118462805562506752217116226834118899270373876370404403262263993192940550825514742391852354082018995330619639817028452780238118861258578655365289124871991452012438202784547209085939365209953800984493009751528474525312686056475514438071778920629726314074172637559715493003714964756940561500045320916667317584116165225791375715957225057801713370933657106334007952576220007133415292819671461236963233268469958322599961468053546907311572913361772882148350376149145542597809225130908122694296780435447006309549265558538128027213575913840027252141418673911745260762031742708771506342795738760329318168225714299182987937952972419632963102801967603698479410023517045184702156023799546624903304631052574254676121402018626146791542265859481803695720319148742824974373205065831314535358097358813148765114988572352239444321492982902632274202525879765952731114692764791345507952038212749828107395725221800892099568249376595284320940022444790032231139306068975007920212597569461965906968843120407283295515177549043446007295673712953156682901029014481136702992410324707726197890191467387241390960526207839185872143261579877790794563486008871035288108107669535173771976380677600052629387955994805888579594923774773983581362217619779471283683577633977145187642025120993524225553496778059599679412732275194057969878704394083945863369995601347227518612845313659942227455678172044103964639403827183269252088463332572842639619534891419456013072374872385974304648903139229033164479202325772353825414515949858618914706855727224331644755475250750415621377672649670081400166253787165637763086667471464309594695772263866847616597135762767780991940264886780508640306631923958650594897718454428246493471635476105776049547477957087662701573253188267589416823718500190446976118243893387490396266356676820486925603894041725049156272764394591464529194739455971237913519422091507161040442163427042797414499725565347130398342658330827717787296617824971833361139993868211521956143911705636058725933032064298580638688650339872724425599338389585974801260954954143102140984454317476827001076063686815611093095330230755452765074177274240623589091796369870019369722893837469303593905124960304330516424165192810619819700547162193781534990184093869146519332279441992097764758787593955566887157890247287568897258783300995040672845671810568257897831642878878304907368589624863618590955539605043865023401478843562521977193276235353006929263041885828099082814484079580385092127486533678074322537736030793196817753469274359554886932624281841499406683883567402132534939951988766035775550639062210690411266053279375186748685648357138368948943867651691431741621606066881737540991734672462655756474430200917707700946289198856228584212318222189180245002213152963512702208308833647690867787140082249415548612458507237398115766869618403188079451745905808443571321868300954854249188786286365319439323596494177725566789640610119028831337620631316866440220700644744367299065779601263685592920160198384982886323843975076743312874704446282160492409014752549738167552932808607392364243236869406686973752458847135913617462398396531331065980245434576100152507001466823415385719214277360726383456451828968063063665356640835111273778079376644392669092378535833904455572352659338237153923334869803834143431482969779197908783480118914349459360778320329439466926680686181020258745878700175980783916321191756439579246954847678315600705416173978778851817758375185944888537513502952679750623347357873943516695235206361838494239490308200867867773898968248180115412391183543833975702496791647942447548034602738998277895087041598968954766101676558324857624039952198001350124670831339558895271475355024511436691206853869053733491518482567855709212267574130127858546084103218105747346021395980407027540120159250133555235484903513017781837524306571255802044579854814162771594803219121637366360292829287932925367914984829882438118602038853378132108784699011823503467395747223823747071837407793271332184156263278850535877613645100646670817371927998773445021453446406489559615055084200425975632170190935023218442469853697707193227203769500710813180777730238130397318257557083302777821007649158595267792316679426808298663895900368890060502955774438656512598491323601604771241094936765344886951594733565563758466707985557986331390275621270339445854234767337081174546305168828360280139260947884979249708089422964240612769399987386212643211796682624008141949968216902170241429248941515244233853514687332137382170931096921119033547623283001145530509208327753222466104554906360886430289294447159636109735580162155855011260014865289063107002752718077183482476520793130489932396884078514050579993345150832570247292019127781258409655104031013634143984638353182792271916558959120370803430890997419451517824701588806355421297986817162808235550833999171428752696005974895920321488336908347038707352448962410301389418285606382391943087860879114600316162858524700615307097714901072945865276700803547861010444956633233199277798506433096637383702690991362408266593154344996570302033485157039732712578866695190303171976128958812238493642386326949131941647293493991886747158027476051323808524686010702220105094912475148020520811281695086467019250490456696847055727743287568056135130823476371642260710348107500757501665811956946426466681872030528640495405677956160460561157634152741775485404540117289352764971840771664045654192342274997459242754763918558111584107310756136680213908501806040553619898775600351860533247227520266866907639922982290496822134022129819438749665088714050451297599790012517353444923517194319056755124186927521451708962202349961152983630567738910889065473559668933113603352481716270795055190338957622202292052079561417235422860026487165685519524009717722426884039610998698548074626230676801139718151978975730954179863766458913270985216542301684628145850752818584150825984654297896203062963363152172025914586600093696179663917279762519471842959404079933096491922159206342754925769411416479101717105671450459935142160417397501760817866001398125948175141126640433989300553305225809736916293945112349605603485367910459903420197830740002270469247824162600322044571168518346951734724667323670170586322228795697005644215300118563821675669720018965690285654944943691236488170297957870754893377630696329586192048964279403353267742768302401507204726232644812917490626024243201496664910612551724269009065788588424426638979896173648137957739210398593820100009790434952533840091707074500441357372722917477115716119566848737445875371064759689225769460960685069816270673276710622376603875461944173255856126450303040208985075477492038832159224096971117366583421071940638143649433190575188917132516905792205123164815675016705123537293777279839588428358366729816140382879979810898833681307073861098231773415794122004358138027571704634272155103333364361582530346894846254183680719860671279052065660207979759846634572461211956771198744505213125773735640860619920647609607101008055676310374095647747871355268112749712053878937046647820408595568849279795435542531995921588165917824052551494878168949743454858854642354923505464717615250306798559296155473799169586368779969691355454778555213035964655982620979983554352294658108432991144824946569245603277086761167745730267435644231682043056210450364198101180143243635274980652210024529329666338681912253714422517080578080044411396686158816721290805415892658874409830972873433420639795158585521843340223086033812933834259643442632823246025194746810997181626126490585609600581896387554862733630919847488397188251354583308443439958871557135105635665936817906178948919345496312671858815771198993099077377358124662402090406691624751659632705801333611500448303121131663388989729532738362694021669986632530722998430760054084864714700729512458103951058123737997092106955828561341702063604973509225967304159862535039632659141564094744474902756549568588195084378751437158631661400934266146512218386671683002926013055771641874502625590949780118482138866828801868549289368518617089087459222291332145724027986421043496583930069025464531305548181352389681024162374764333936229187473104483250749006383637342890090832745848716818460534439394677651145978325266601376753667266906875439741882836431898878648636467200951928696709810172864314669313309529938814115595776987407012909615744872179678475574765380072638484599416514792482417222493315879711147738313735985555476085170129203797120555120154543705764347868052669425121283771142329855212436199581915189781935111520294824163038055245515691198900947482590509986278695408440620220976086648102634626692670447926261919580098583721252733209257857584334033769867665751311696503602516510491925171246259643299936838803565022551242815619294232140086941995790744732165702064503802813090821858218693951167043122268682171667324497321002495527085059522285671160142105290308522409631888426891088728031493989961602962266264448168735915904873452061735078241445036041723685794019808406676543523448470475044445562530004193119891791701666001314920478708771886979596617984754420982634151246568838377846137497855600090945405319223238226697963469912252271159111259308970311087079728398346906188471594248960906729873914385958208352857080948893226762552190932265384286495507448681942396823847049741989809557103286939338203344386005535452883994456064449519428906712030196772978998666743989658669947250734587283667133162833581945111579316354547196296147054022192010599657571044800742118305509658924962672779073338300359402452298333695766262960510818567582072440420547621407892835930820607465309646006201913880224675821590968053198935231015742480032019002182255533167233641833017647209416106582622295125688295702858443627376831965286230841070870497169186596517057638024542544436376294537495103109779113754171173248390874083510371315335090491678766781033204675914233839567378079465409200950447883510228953455041667595865002879555066809428768752466199439714695876481519396450346921781408039584725236002739511388633444307377258119707167447413630031170517098880711674597824440390756193415105492707964188695913490871963785444577275299081608858801286181104197193129105297067752755358611461199477964789701259558655121304781615092365024913030568188889010367445478546750197756302623037352367685251434505149566739941594657069192945109700842678801842969026133232388024977519503549162302553289891225070250641692226481871907552381178635500139467466646673616958740243439845648563078274025994536241433194787862667390968094143894575984604660829569194587542524666250101590474278788050404561059637826145199569302629658016541765245696744359385987221458942849092951718035024694871169196190220798363964963850237468215144719098906697895887841319206935246255947367060665836190507343063946451699412413168680293615355615035168678352534725543205436222028993954203789435798901044730348794589287439155588741581420422449736957238560086328691518879648156640509002054636789335666489585984568550409264500082306653839107354533015975896294495695644120932579002637677784467751511258909089403682671866362488236296441409633835357958740332219089116560409321296784664471123196994469142527186547564146304213861295700085089519115275950712566188223179575234702795178635935291113549166658323380867686020173016606503366662609534375174590407017494083803558446676998958170464148949002799102685272203076301957193738965287757024013542647107860050557827866026576415384517786106833696207739788898641856245789916733589843620984916896749339721520319158118081560366655053469553157783342188778762460385376988638454542498452892458883195199406447301286306958466491191774716585022681130865098945947760302875927793095472803519543703348767926596287260344823776874116913722692506065889279306958489701400236639048063041284472838351608466920537128319876687711147638938080385380864664803020143809219894938290578879883436900234044109497341876728545210427997079729257442657257204472236770707175746314346853858878253631880631788672875764971143856059016161992764160309366141520334765142203662210749066276262567397370961294528583874374520121619723987711392687289429143144206594386549432946596459642292554982292850307116218547767868371381308627549978943272647352576171852500477012727961123757700585292853774792506780332322694375324038427550371021813166281733786384710520506361047438993635185257934305572493673241103259950319613471715079834281292169339997848913721582466444683028831757589015026209128428747495594103060803174482659310270307647119387238675595160703107321229838318303030469086698843917560905190021887779764621531163211365540691886457870622082130488273212679290794686961270649126971220732348858408832184607698734233382339595260646744582224436737701075745045453523048169675649251115763821129136269056253104127848472155091277867616956325272608714996014535196405915481082391502182108335776937234466448873196866438747282754066468889349142745760826094953705644739067078202257746145786741602946379258476474651302201172080638965953779613279937408689626524038267606522613783567179798105532846448530260261825380651972421649155424853222519609343144906007271047371967883888874827544226118308738346821214621596709583094255542186056041299121420107841360663267388403665771646659036261863412938719105590202687864266011031569944931129898559705089870337854402271769422183270765964613527498723074046221273064031498978743648560234291841569372618163494054857922455240080607272787554684775239839416267469883091525596936065274296043676111353707672735447975367137269605632760331110989119691076820647101261209409882671125055710425065011777547761963069960459522958443118548510393050566900673195603693354536468773769449289202756709800935219218022665637220027273337619374558652712911476816007114572268130778646951638778852821639065938093950442895057428955381069945450243276934709236464040298307698239810017442258341039677162677725251174842871277002502588606544065861719445572267129603159135576250072471259865375068284849890737788151741095210092411110974476438009003188681728614208512927753285989545607884394525178953703644492996431927101014161233226582359388091382595165060706976257825698682273480595597560418583654161607805262190719822597490957364726958265085943898473519697053470904975504262139759800328563486110880252950972557370999789231212051205402088522580367282664851183565408824644997269026223598130506658508008374620581394231938776038547953449903536938105313311219766288025670759717504662853707230293894152619936098566783733058438966331218379642831213395948255131376234616718398136873925845987186056727068964340154219840668933968047076123440156327487442895958833220117459217007857220073310299139475514051762439014313272547730884906174022094279002597826203698468484023908379580851730031450046278791276902166514575936325121793869186180239356742889398766875867905618125532534751299210958587326336293153427492497783600824868796568814758526730243361197574207749149779502881737246716133668241115688511585598764510313896354289055633018203242603886158466436214358632541969509876681916733732614882289280122809555308224931467284928938835626950107465719028175476942747986302015003915738639546666596626502159944954889013403558710108009652143173789125853234500111891984241844300413203578154081126587298213910065041066487750134307264170712677858160301284217795818248972239635806825333369472507358878238014778171221129914861527395682834962352958585489182080229079636894303439198986538615742701010859798637448516007738792333322122401621502171924422599946563852034340137362128941746552955646749948038786464465468022408798153276087503228618117683440921387474340115648374574273955885675203365012252994050595663456899949198312639153731638122119167689360405609562501961062744946651778491141173838750712336579770191025275522981275019783849610604346374077303543930162150572656291587925870236454499775249589051057901479435680656994812167150063813097143659265810012373703170072707238392471186487419061694297207677961971815088653439923583363386315705447492428313148256316692674706742865497077829646218918175885922347688744943915168843847891238504695873937140146274389189890081561109957531744109194677166772132826308727598795511453532796242926340720282579474268306908967412387175256623308876983825106598011511283666942278075011832295575167573186202922091648103541609488542013189071528131491504169741658354351138257829297750569950493042429896053180896987414935885322739342843759708047538192113772951180761295497971641927254568520587611425358708110393595521271398122628341968736648516251715119945533560579309241457938933642876700847274719661312201339445541269445125842507099522363395605180929825166161255611128106756741312879935991466209731503330015693052489318886258670597368930216152875549206345068914164727774978961592623755065544249852547024623708618376987853066022226052529923931639452527969800054969301697454159740260987105553676533427070956189712048549430471425506806440650898165067876050519413619697785157753196657369739555942992643409032330529517488001846990446332470757837309383328905045084962440218109152310512576660690926583010394451812927214454213218071737060870971865987196258559567727487076425743102799301307183634147310304701874146035076681823470865884453550967784078863048845559006237359212540170523085461710327011329098316778150670652294193719856199097605738292661493893129182056031331283015651722830581718663481695124407056160917246549642522229738521948084143086849962578799328248475653840644764019016155554766924000340981560511119890758869667361139937586773752998110718338992440036782413234277242087118838188302826391437674070190108145722054741284505417730692256028802118505785551293963905300326949411114874497360208103701253236260396547646160902336077661462184330042320014867674114300728128085934149996336429590542669793633380161730489078035420652341321789099194661383635199044132289969330506605123703168377753754260075995496327326588647464726825141647485179025850846370305897359992728099409658191841931809607523214410076432627106736521862438794730267807440704485880158348007571660787217621303619337039617519645611629011354301632784110545495803255113839781276206941383253787403947188953139361566981407944593812874165100230953347964881535801128082782647755894050443879106059250170168491284128994888729787562522204339408583718430389429807219951587953791348323679882807922321170248448929060454311091898802994448341626607777681849090757733602731576078331415420276450840176911941391178261389658748724924060190426937032700867699547938635263434985908444575454583130352434536724880866955575378935679315816011885795968117445434208918154407954018594326136001455275484325629914319273473178437029231826907344460454687539568736364439483231040644534827849509980775981494124104265339747923913632178593113014317592506696203683576462439818427518905198055270855137899992104850151584876451276465147016307979484337628291479173369509158200579601301164482018162218490742768934960279760112153887008548434657584712621904719430235490043884711282813280555160114924298862380658527467621641022835237840427127369158670660907684687140326474043893843630083584986590867568352521789862128140557405871664974298927933322710095532951960351872605183417098593590826877406092730441156955562052187560443779818962415982366850864499665141805872179530852760993476298342661161167423443939115597555831382527692853690220333054946439787639057368859996096026251252262859086357348211335386093614685441032370863267203610514704287735082977525059958014813791040811696181592047620277540339099536182683468164122914622436334201489567080119005035972447096416632517944154572758643023446804796891126824996737085513443949547180467911593781388965374766833557145073818917853949788403635585094930349955212364730079043421965220687273462542938612919094592348788943357857537053972309586942234752138629327830919252802821555068162428194698648406118640516092293515288086013983064803203323413389332884286053272352609948527011648780223476154414515447416345707953637495657496320895029143641950272350410467177078262159106060751058520485886932056946802412335946281190963147392151773808839077410058196823594879622898088083883593267453665714852299152065471774244101792464083841852716210335536058795855521891455017987332719067965750555345345006888825087504438055875458124208261272762220999904133760479047881505429598640705977674923426017088327204470370851603801489614730457616673849185835143979826071857472477356942822884891329884733114511690648540477296471036620997952923685179891872767516025956419313241618733928931090081206249620497338483452679057411209440165656809835319398590648192401124643913960704741911297372340246887060875631692855054096021826527589908121871467280408610912484925296278110885744706852304071886640775927921654436531353719495652393109289412906559742845849786619143726682913827357178257532985002807951163355923004095132606420366872657905134935287727057591087347757662476364742238614786419860652816391768323801544265823484437717417780242881645125284570107487419915456367021660261269478537409286032761556564653689775266951101064165852470991993142115472321376701358256634858050652773772829491926291481845640619612441469571190488067063814834167574414148360425773987038409028077122435222276713584120340466649023804964942506935988881298770093296642606340157353170676336335560247780368599054523495095946462813568614546125168793782423512515267944153524882420892215745169842153626497973032094468876035309330479183042862703039729236988386395819712989812525099477992516233230497661874100605429139598068909417582253167674664231347971532279413088917671435195915758129875863876772592838306641123803001230274863653246653125405647854520076087656433471001351905029116935108855489090795463059292136957793941226567881949008914614380708017743952089412738291508382628637400562442228742545348661172060317008538693148647372431918873624261846569493833173830776722243433554006997362828651921732054469111808758095266766698360571050936584740531086239398941709793980298526438576334261466186099885648792195256556492847113290123183501846827896114216149990211803121048095313549213566418330269863738414283777234929315823658515194601386256913967595227656335027489723710576797545055127642144888431971965679514969802410923614767624521206838922598894459586215333696713144610202873115132125502553224154550864798978866077974615657629731118937187941822421433598514417400608606297003395368336078503344619704487560729912924575428613165356649280142441247742419702025280145167396040187548022776278872887556471061967958219746895790027130250906388210672499578800971104518363113186692111694271383470779934671642508655285605110207138715543668931761161008683471186817082572199583697361409061726801503237581786211567129949975181600247464977812427994820566769992150645109600986400864130111582458669800430178764294611785678639713537783668108129050573801018654601741299183729805894721049096304424927777737569379170518997637551566374530443262580160083512430344114795004118185880112870055932012824357765056369290324185277850205979261453000695149866916043773710429227449748085647829379065160230382344734387382127022622419669458318276387176142776205781263822774167039319310250162597727961016362886446886457718423537452159352991734444333304579107112039829514134218565381444088667449026952099619792053888406375664278878494413575055552046266673716903583674576500305660228004601348433991757388909517117727266282577985894438660440070825502526495682759931506002619416354869748585275201646977294574262784866980353670911390773726279098361421101822311531617480371720359095568478814722241607639635829131490108079580674280635231048246398417168529615768673309000377467593481273414833415651154028261550149945214290587446970571172534995505827289583918798256907598736896700572367135583910036729642626784894222856205909160967188231038677264091159692580815261431869039518795718862157690738183215850231619885114990960808195692097363072920298180787242330555862162638439818133469859538183342148048944228281938399406504099766482697819050051517768465862739192109745389006512773104996621862732476178599724077157450107776617256201956378368843297558508909243378237387168087608966466605564344722634805961432367824652494089138948292869406929786372309445856534120664217377024140775260596580281277835321546474616019100628214171056955801581924120687500798956173382004398534020190091565475833289084436721151797869295432326877712981971783111694166538363734438378124155944760554830940498766373610237588618353582379537562614162051594882664796474399400798476932013212861506700043480188378642358832208741157683895938792996327159294267668663056020220012114138288846845385407412168973413660437166124995771600133995319916931090670364722752068308885519243089891978942368223087469092208572435574750481156614178574137703272377312580669720090965698105545855414058425585154329861501578880366398138907005550392175337015100630514745853986582778214006290882939276454506239622156888507998971068464399392838281856731739744081964712422462652637685548627022673285444826958147707576144597227854041626472066743781191136179598246926188101298505385817530826902544346054464477897465613958189964716926743111436337603772156117045721774966364076395857529647998445278487469660756603229259514799058316496819849274577572215998116316180506019573122009914945627692557879641132440935229863586848827559538199392357272319989631450198917466406995915296629202306723493908168225253216276071930753135361220594623386335652889490599582572137516923636401388201699569874505492636888817490196579868639177554441048852674920740747951402654350122266824221593626724890845669796225762944334398162738422946835149871914930433025566655736039036725128556187982497810932635914095077955035617872859807159263407606854010274769068312243529514745482115018339165138233912917984581360757714012731481960419382315106666260882182921711366132013698657347758669048433539365447314138620866664114815328089610549175649738181204220847424902794041946254997464617067086670048489980438766414624452725905265038442999874922297800068961817598744499771733234488687872407666899587267277685307886382101980357326191742320813119311252402960325160443351357004385133984729462131298716525707042450218488642696144271631936635523584478360431197478294064227638719607471523673795786252552955974957249563451609269998614056557888526198060001008610772617422487908800757795811818808677756726195454298175253358669198429719123559701780564674441545782837291561074535423853724759311837454662483117587018867920298788446671167131434825341442788622012257289294671880236275551725479825341149923800408209974905688160947671339389504374548987194390908195356657783950712295530084939436812549681424510971368188987450928653283777051245393795971645221148223941080841288940163985472674727170146250778104237931602217715500825484079566371644246763691393793382570088939540832990029794737903792838835286985848481779259379888736094151902136389713328250721970808220870213180173047726462221351096604408860708887379774776441751525865886830660467999165501928039900715838463760091552199842779004277630915041391868556690999367561690794536430812068361044142853128804204074835999750020910605551050566957284495570412034813498946884034416487696211798342094230886987954818489275335984610028230282679885743399612507907448575346651634640532380637782666257526251212895988699090721791025055384865096682631465558791044952479465986192678106470089999689972644783614825057742549416104412991311184532297537836799815499552019009841716857176658025927275379707254530205660575184845780957176625172591756674366775553928285533187874598348341292793785295266050966730455074774827600969106196748237774396188091270471723315092055444216863672345637641166808984789852724052648911800272251994185965288885936434494189747854675578817407251713307357627341721537223583930700902593310116112075218707512600723739492878419936565086153481518612265172055956204129687184351224658599114594274652331368721746833071262754302175424316238901288658510918997267476644491797358359916667439947852097523415592370209604637248011305385378798433854608265829578722537914800387533850240266943464895294841679652734591889144328772100104572664238195952186933395384076431960444098419728669261892221580724267861531433403237329665056131969190268292269438601137718241811373398138506445245818627221144640197895813297960693360076480818723731608416289202473757257695686752605772945615564805690141197056832250077955633666202427186240591229901593457309197096484212961745741107212064087417830316808625261392335206734200669342317833402430881125625195205554728513843211159040437291317107158522640331507017860307247124745208234070419005865261125416461841080691693886379950570053590925260376859223157846448387576490179885100730437924494744948352356568610580489756559930895153676873832739744781314511753434840365989345722212159878232461172698210159654311805719040474942147150092476646863817934863214423221356347845144345879702663422620121135127206202261005794722455806089359098287012471151435626417765909288252006359861361883788175374937179032470694458452047297542648323074684087564283025735713391073100738656693421586930581934243399957671151306843320712238612006376743128757344480806631474151621228267611187585128951683134424417029766305655032853429265168776139657912299116874967583958389547433886686434052661095848416687072957824619143675400133794620148531649452931709340710457311620337468161151376505652470297258984181809368379644591853291065059556001773168774857351040240650475468652207600894380234872831145012447683958343012075263081858978416703961261017917000213036137689114968617057801205087451921710822190129277944649522876017174153913974017070683092616230545360971236971505139495659802640583342090976114930741860220075357592970887726985176645634028780693981316062866031893426764870175872766379476103927325851142161978627503816043899939445651420617165295799372789812200356593619116213701805034400708652925714802319586298818490643320547729983224164540694831585571437769985847834094917440796734732859547323414358940415463841291007766824755467681134773761371489926259447929922858315018412725053094838447510403005786448795007496942997863181344943273030430835762362481008737658514447089219658457108471992244251826147381045160099760170241935013044546384401837280567049705288971946260416225841167282578849831175788060872099411223833981700196759828626111168139633044404519134800786381160023423980480290678517533228060639362119791058299833218947067743599342861793970592921945687822454524876645077514444571190679011979527329026450936522548796963181092394689332238147672211704983794096109292000653001405094640945942564721983344306026688935760363479698201946134399317814786964412999619430355812990597679966189123170288188054867891859974032818761511737813569331582846696930788764512489064461250655565186155563657145376878399243072660619562400095573420412902943271404159333745526669557697237902988399070229746058414334717108641939073755117625420630504112642261641492617864972870894129611644245116568545450987293238990791989758480504572990353013533012271969765325738093217347129036460355125490365428687140988402865643299028054339593533792140473922249494387744773487442083817359560222037644508114058362338413129379688038859979404726837307441953692499767764070686375958227147693026197535503323788853344084443378313693588701659161518359851602628377417621678540142378496008013342603867599037953410772680727290603447199931719200099903615806139119904166410275719422964474810392184049426113421309436261937310024256093580796451156612617158047209658965109797049631081657764847456776800329132951115787973431201217899638254633478481467867335013087599547621079381861944769458908035893842582364776560005891128567067905442862969702749254529116523405832148716437379183753359693265261383771189442656643471536098452157985677682485918180943386845021208609346266090455648987942124508489352004113192084293052923320230268672656581588159883904791190502982519463509517586361996318757616371215155943793179225221394553028218650090996680590036334086068432927884519435168733155870497679698045170391241821336846935384404963670886285683934165802341495237013282261086900767608635737151142787194684917237095961614289498686179757052739924790382502955677553377348616930701803115218099213637441178826776360133223747518205602499513162681617089332055104991328483194726357556894251384155577326778972518472203583714707490176901747198763393545181552724313947150648837475462795073346145483956136357355364408562075894084711964178605707381816059818122539342154531336197928965176481499699816614043345351424890068205259118506301102375880025206741202920470223642674249566826483880716687474215525603998668829104982926754527414086696990559646460831339688326236495182671624498208942965391846522452449228398681788432344557511588972052595068316341591307826765952790521491999533784349985406634937649229637521860034904267382728548522676791454314402070586378742889825800579506979842859170694858534078451960975770970610474853162405614838215257159182290824472446177238894271078294292374418594570381603754016114428182184520742209704853270936520298486593829387682758694876734439094236584931625458229624905356324155845985922876294068880150287074713089662123990660074077129569833643192152180285089555680427310449687747343604145994269254665283617443308579706157497033151897126006621802891159151335711940103035149230874586121863041537374318560945012925148524048641208442021096040249665164399396239838604736645983722031274458998457190976589529469429723215541138835639257072085752137590885276424273799228380418683737488644279198733897780172547764718707804685932469802061489363562436578911273326361095874854783004997706907793627997339729072479878305743053980634154773801967150895936193018128121597708535610009293061505490372165346483729813064410841282771403001208793930062195931370658779726056769451091404575866300588539584735183807837194521317057156874486548784830496221037145940624480284226911281568497841812746692375123035756880011366664493238074435150134888426359415109828309233654324997677694039434022777068193355052992790784389980069991311212299733784751912438302637282969279359465580531764531307835292776904125260345943642308129876643425895125417856127069952357804335152057222654442393596309348025391252078058930807991918645048684407173675713918580574448943602218263339719852260187787149866512397680133164422152721874835117249453725451112789290789963830922013624280605739434431207609489636057204652394504160536792153201616848208415194079079543380858176816323898083429953507079566475436219800033845600080850229917520684106368057485032167287684888192164929098625672010141003770246640413108282955607943567112607575578425488642245778869112043901318388552151090716846153746689865556282423000721260359150255491996192872518160457932055090036706727201655659956914713834956493610189322799156078892185899159118943546498831411804168724361476135907100531059988268867258630110186420557397840355056932823530503909157285074084152523583829586077244591605437610471187659155513806097644386404733413621495173721933318947873619296157458900555645213508053549456262304456472654472875825818662020399393062445061852559434384555966645457789845328370469935315605371665684391075641938237119276697439353623663100778231321743193754142707473483586635234389190256537497508416983227407220052744957521593372606822333167522887272613289519940932807422304567126912649152158989806623075243950537775156054247496869609415224593334737366519559213285749435110005081677468059278638734606453410046229870671894192993214288328324846380820396797660230074410886323752363716745984482409669451218662949779024435937569577316854532248740295830925743804676652154718724230534662414364925257630253918085027466076576767581293118413535733207766575445339237300075241088398354749729432298510843536304542894841730345577111822210204975123340343605208893127987967547059256796904804751066009668910087978557376991580351045892518903703224221414983550044687307710171690144939557543207253588265096725452338850876172875135650627131081893182040045888139870315493564751589904579059225599164936571202206389453645179435134496253695181717141321052504675916296372477460135639721804254333550650437338004796427624361249462466638710938218642020231749047282072279529658122496575421878914924988170734759543445417458993563340294521035219561972002086748397702728517301048009367157917194370718636611583307374072608181166341191019838799098936176570485488098302511539830747521889067042611166732392954220116397948158705906197717694531984666334811613582502654855159055300323124406197902801382572392337982496671408145123967416696673689193887913055555770767056841541573201384269427373906695419310758057879440051610998613530115395545424262681594095969255125677084525275456648585210773859375591429053296141823065603140900033206227665398045405223861253146649115181062771233290763418323384449239070031372928726728695393427867488457001958747646139491494472769374724973996663825527842287149446796970734634560167120507768125230043182718242511340304412317715769557846209762576436025264958255576920187705326485474816049552320750973806052590082830711770368907484514149091099663385088955327007173396828413947490624243431658960220123315551880900702626597428981929450160410165430521899844085497529323306842421506330446760120348839000191896343427784941791089406153041844909229038386434127359197488249643291400821999861491337859361604138350845937836882726777600165687128123515368446338722479243621176542066760697047117580792939798841038441767473683540313798331590572103171344535559438754760573238518999919426013030795537141060054110667400987178830259018121038279983580340604600244501710060362902336946149386986431260181148122764131635576499404479723216023660465141205924905123344787165899588236344425971615274063101726325429867438561025028705090114386085597344606845725202417052234608554751747083414241686274303379542210583370904392607120455916783979616009443711752017347009155413172219184755601553841125608693790279637012731789402488581203984092610238533799588151837771610064500472983033550151003048871421218250133845887303495176004059395258639402832695744175571678349589977147594433482336458736942759605656006391152314481357072992961923197856413176591308759022067348018032263643313310000996735612495684459435917118107555954843838138468070435476045111362194891702134762567001157423782120275810565563002501808044615996417275595752753674318886663367475929401988843798911834633564098068970766379886499609868385070318836924259565623211986539398531104344457361226292385035540454199954354145814757164916089220641561265814781088947869782517900206441375683938023568490781624489514392525214336601448367350409269387558829669407522191233813759072966038866020363424317981229159213049861140863193658697864110902439948834058696934711468044954558489795277994864271900531862000290719630746567463436951376465061733805049774737778348966149265702030552044332093690329948693040195137667959223485366785661779644350742515757787996263876156549140709726945835026158282854521460495176344115413869029810445545700180739034184629417291158407967798176337784049916497195321004859079554933890603296636146610028136019065525297277268728732815634202362873130373705572075455350998674794839567996571238308785525830553693604479184349094068282246059805086839815447372113215950790189174833676749181814591127852360915330305594617573841934784551784184599260242028324425735826381258500979202560255435984534212738534391861930303045289322280657749710874825669442579643340195643149089310563284244063563761358112748572197762728052947357928814375002130109079760706392082281648924557646539688838400371289906581521188255033681859290739297123691709782022658153253922151676937355053339828994933218460121532395057556830683002351220063285175818462270448470094048624124401498690999215157369428017003605896887299572599791562679682829509871807818586019338128205767729134945760011594724951291645901490756451278083956380571859445170803407335224863073599299712914952628404701858750840887129617097399279727002826710435265380136963949344634939109736842626580797202485641424589066441880260473220004231818883940301361125637021475018494054531983281979415660962591936700496444425580064800761377968560272056011681705270176082590684460879922705588591031408372930174143243505235842863317873150553842704364692855207197947557105653100091712155060758682581350238045875906736132398578345651717819007030533444272782649709507337971606377482367548544717295251575446859843787113079678363281013446546939615327795298372328685769068412306122757301888340819001527452257403733294188427896700589541095650537210840535755806621510776461874744578741928177514752229780023108406491921048294235796392752605642776217297404984305754872291073801346893110821563249000493550559339674853550840643358858607814527956393950986099909109266116963300718724758749598733585253681869358677111542919944725658910593100423037847539798779279324720990854235069766576204623879640127007544091161744135348093313040133263490166300855093134961967852288033329850251207525694373088438270406664505329458524858834115423100552916723148306971945288461290842805984265677030431770278334742653930855611239114695520570664798604972475177073818366166803383254084289863321453207910034262301281866235288755156975376957081516345263344546718748319236810170839439612225302898090702278412681206557122041814138853015599128646173102224847740852017427534994493198495997553534334458293121342515587133805866406890051861175591783574954792130673898564484189991967478627804554513511386141397161108764650658588275192574412011437406503708522600965713526786779099209141392544690773947495481962770044663259037691561346906234033814548942927655127577035120940519054934578489887023435979240550373050990632301545081728428046284244112157847125695037239727822500919324767386043107978235084651202757031228026121664636020289845244326881747023860016398914321866434671990385689362981080305410178579113321001720067816476085392987635182745475267791996609308514784733086245075352042674432925927672662009931346947509426939602132755281628063007847553370689217651442855033030630338433330881598658877877140936564481944193376181395393559089132093172534851823932967851207664331786804583422532514014976787673702317310774401833719204603358821422607356771206117812654242750530856042647522745513126038643169939061218761697833578510190874231252426810428161477610178184696321185375874864895244678213558696379002566884657536228411514692861795676393868224058239879279116977240418427860729013611539670322394215351545343908418797412107203012114698422357837824826493891308504984600927769218706382874344552337655233361942375502850017368645805968480092164783375193692543455898139391842810187905037095679076706841299289328154248501712571184060708014440068426547706035775944358601314468321682477193069334719327095852370653673918924502111423026750069215147575563014493464291157032087332104701970239285059131980047389309761308386241416802214854017914219954397491674018676967631303197114359944466977950430784269798500811926599580800354115120403651732568443118431295559029623774925462957995747234379385650267744059453946031781192400992768259840299233453807040183418401661571516763536247395640265407736090444074067829277259402352453966334962456835664275172819365211721937166984666309265719634708474402585353028104173192407652383201803951670429459705189319699732993427884942071656124154002235462629550517165114665010712686636499082938336497470041970725832326561904461715596366226621815369430544302455466564530330671377217467412948155731867784572896476324280802160985560066954504163362916409398009020877312539254852318950933752049615882763303090533490879797572537956352383547971092963196616645702661527779979975804234325261106565428767329923796485259311069767461371515705363340929595233864409118833815792999240668789552565163862373584916749741487354819632880006131154073439281407197492478271714359491691417731263309716352428909659249886646497997118156000247839890774058040484550858539921337639440621268499731784118519611141802692892974502648385442884124286048964692695963654117139972846414876132761482535353703629938917032872043417454540569263474230043044073948977920851049425087800577135467908641519901183098462678198477633166165873634054845224255832558177904089149103646561618494283236542735386336832579282288012876353441505548204000311042452033215469439815980196207914232534467948832680746831996533647801331481438418762755461821754884649659980929858648674029773403679190423450392334982617616664411004374348089935951652733443792814557483248039625962760288896532525768896624462867188321617704570207974882132512628746221433190028026373917164214383183290651124415653358615547540807622965390762550382466118952886270263838632090864361822177222895197642508142454931441377751552102207825109370978850616954991329647155462812751259212166056086121515641310442194099799470543987875971303156700618407262821338610013161313823641512191031148601379319089972342187603815798606711603071773349151117274981565041793866733888980321067703684069750205171182076912722639965387212544752586033009938183800504458846335105201023629280759518787590731389422965482425844957527584355239404175468860619153631511154216063958240297780276047657191662795292874395341768784221989724362615683226813177491034921084524203521717388468804565966337405738884177604960186383775373506009088730599099622848304273608701518595664585479211405636855570856309651237875340749247515652272642777306554834465822643590987263692888551910506920342757207590199375166089076832264002026599482985657881045238597941792055081281205703341091795895065010597924574248838927655131085010563252142055407490161186281564472141254077073918956593587654755825412177198911730885590660159050744013214177103913345725020704966859619051515832717743682732593714616713171443872874570582610449451032916813676053709445696498642896344149296369462499296073578130439130463355710527494715592610134859068466303614702791239945884775009560585823779478042715621921106824653214976181168514119848141464483621878812732279347410193835233305282488685965138230279916952915922369829523629485180033815446662563915042869571631818239089650581300339907852617220734501737895921706341443057912762575556677979105455007498258606363618682815414503833007914188216487825152819271779072802216352446896771584464254216555457134711869489588262752004082966566727642895558896096107864187451221593067399531860114059541242264869863091281707059930361350232056718629670206326150311723634280969044484858104584953358106846934515555261873878556054838780207152717068788176332105398356330082165242291820709650398285572063930071364636835171634777191931878127182318831737155230933439220064512421480562977679229671913755062380108847889060677676546403941874627816885266192154283535083970643795469478983198278219855123079254575236643895462718318405652678458285198193357400139266219064128105177253300643207818541542709343262311382604186024750487344334829465114804161103899925537223832201867190086701995844631724908606674442158369637571853206082768366954480296819884323699402362809495230896883577785357303738842423580325093546296126352002448739527984683375959979737826150363932631341196063669979666454348462242910798411666628706195652197716508926204473939472943005868131265082113617555176872622410753992324745571562647292845262610396580146578309089923589675992796581509016760096895615946034185469172263468746548183219139197206952928995042078663715549498993897344285062172906994902632494648397462789710543794470122630843839606864929334101811375145652781360786702477422385813120750171378561830580903390294108898115290309844465233736528753345004328530809047465619771574263959025277779448463740834599198095447275928182043275394961736099968856508657261556910213864036880147916373590919024648988829576134307606352291511376612295809920561178017251516760590038159876126160591286407883642329209810278211949423822122076035248354202531623707010229928209170628988567881153114950553924451301563537311949821216478902767969462174175603294318494607316822433612357776929996852077879558531887317099787742600707551129949737853740993642205297592707802286014108505555530619813696778057867466354280092846095395311110019542563643962809482003112448086431686541366510431312471881799193112322060127097672289693628694290597025455091210575693468165885452586013981299844698332782149813122454753019840910345912578745932567542890815757680771557040148038532925104589453954048155699707419601142881695002025983070664624631344764387181325088182244566645340643390740167237637494292747712388594948066487839947956073510086358941705859724573246639210004105642122018612151365749494573990699794336850524242108223643452777645461651453083518055464678679930771844918785936340246586938602993804888574270640005214975560429879644708431111703017683866272641891914973600289040482460228342967191976880463824996409771099960758529671792532240003243937371566618350865713693860567685861802190999374110474326625696875376894086886388571452504023930164895728207962234328032542542986502977784225582645071531061598869300622806594725048020944063055032254449052365468111657549934064033924170051209129815006946841904928516049164419127912571931455648832449066378578329640175571856205994377693959214225301590041775740053930223651266298144390894370430883960318215824997400689495346989102234115962906505549053909967099683634706814337250673667254524821203802313822818575045208487278470710338677854752605821041050137912325650038707073586457264634278752117616621886429819707528146027092282928276368256722090847781417201349009028817118989546712460110586344927731331618462238654959307581370532345656842316518271947885133589763891850043156845120480508053267603030638725139934533527281820301039771442948908524899481980310386010459563159786088079439156386673950940493683565037642925562552532118937630151531936376128813407786246947513992129862771927358207753716515740701137182997722301230099042501839775652565649753387970136002156799058053783018154970601905157911028522284440004932172227027770397371378500731095973721694323661463785205821549848630512841179903581710833038875538463529724226285321504463520779427653359624640223463011817719254398883571220637818064278784174391598317845488718839314792983842040919755608227375185005517113202215294942252623091279835535303722787466671385073769068861190288896176396852668142149071403773264940155964170159799042072167745161302024184726777315578921207426752721296567175580741194182554709951727028172397447624435456745736539209354492075962780880009741569543515919975731835425013494335097621486355445661974237530394822836332266833395507065893190169774759070630517492662069630875576632701872615498724671633414697298925934267255025010910638760498887625435759760985125740896241302603726052456960134059910550559749657389015605688666724748343059865875792199345721673687270772101258061251910453349682381345076842100538425936056086892314772302260337602540582408246967314332263373966589831422113563275231177784310688817524590495391070281265622293061822597628693325305422836872980722001334604895718103268167082827908560030019175344871367213471127101236086830968232477439498870619659877109276040924399852221822937708072337945607390763806442568988211226334870114413518056155406777445970449132856551286298200452924170285144688819693037659146610460707164547889785803813807225085212469399175795013840322816676975583967024882037256832588419286165543484112602481473720655187927607945564528838412293468988117744542197135899200382092086725538401989091209473528914306240418887247828126631306321199883087529791753828511418842234263892447875599354212380892340373839847838220828674468244951715999005970831362876463890886836371272819831230189365925317722988458786913743345712699559311825496727742516458451800503135923831190378005737395355941096628057795417367893041257434546529265271642600630163916726225629352623557619421279587253807055275599507863842689371866653358212119975920098563935516995106862956196542551593822908609424842977570995976606677944976658528181005741401983612230086918161622779838633118903505860469618171990522979747227809248608136683967610821246723447490149512909017252606217710192006878423382422891785223547414539001854473367554844594729409116338452349191514759335231480050249398592801248109452916506831754599467921678584601192117629628665112632916726145008196519664623249115474089905005585318950143375304835202574416541444060997813081024540488146600806908533321673990131421431206881804700947979988413676536048653731818144113731587294024500683167111743902715780092584605534964647190670137290835076858181904342555035481332444427864808756349372891309336254770127750823437710934634904359874256568578913196725071181744881439204949979158397994302422521564423666493412113248410470379717783321455834086140661616040083723694327287095664593792540229061064283820266179253053171526763836479676440047102764655449317539700783830818430212827015560931244543256835934575748341827656722403009066997399642827372832828299077491605882733267222348446999523042338266343636106262933317364219531564657566271946787645927818465644333134343444337257473750104556138837357610757512999784732777861894435962115158193940468655627675138677919266717558648358012136873482794485505294140902473357859360269367371575325438488781557368365870349129723861767128496322860570545790697197531198605345472041128876605228093089915052659655703908722503840909629978934388413886215003651872768361007933232025387022697282577675894072297332143998354814613288805723264561432025660243380515584497324885546129584317580466992750320519734763836773770875608918763347207096615936349076625793830374024253023277661390425504129785461062681759416845385719684654629784737548557625730217749525632586650346337771112833250667913055238759835744140104467252453357009411113382294944672312257258350577507884225661487319516259651253570666201269653751663253248760436325512391318569933455123588763545607984186296141993907955374951407314309038525155706205153721767307928078313293489064238500377550776818026856184394739014064175952273791793800873502693037979854562769012033122457606610353389115453454451101131740073084096700055207389304353734796200472947777160986497013524226727422131440240443864019804854099763302972398781695932103680037374510609925072257073652544915076418358805184639394282194027854499401759467280439379801102805728353641094836101842857866397464012606027535491323165097576511158195876410805937507220300650234068003999862919932608808817685346178505372964445880729262900379363903791015005970066274980612170922143482423124681140766666561147601552959818895797866601616220345082875233929377327791857101068700909539381699533799960910256370258215724877718848188389306743898317950174104524375411796867290140152224468085196142213369769503402271493549023902579356344875448172853232163345014698698645340029757906675715379577715807896501654314993171569136144112546382004485882821158428008742687454405141791609955237742553112990838906342953662397917588371490571401767312715026470149349284443836166248437790128850953584699292021721848179864167980840666218980320207494654164700830815255894365180821500220768865401071596084124507689635926449724695015494966171833945081676230941757487924592662486496951325442680047655316884297248929589795538997126517216655634262158901305583412051119128597937252315425864665880966996321144461504187914960088743622561030795731578839864396086310633769687539519796774492734824525601017168298325239153812831167255441194546315521111460144412530199139669558210051955269323895571703538776135216051163509157835676189803067156750856247741899885378742688538085564360104677025979430155502189245969633190464105728567128934145486742941256510036554839243823774378393695608866120528207371276338185177111400615507983621873009909379758606034343945006052404242871634058527643071860022435260439796427349841336347159202604171463374607510518003403346656740933769979995109592232283400493815729391723606405548014489084670991598309889973494319783369702026550007190940294241445508181088982382908335799088653585155320846569712813071988810107341643550001956348516052055715801324895058660768241989714028271065742972710209527844270983561522404474907336898385242345125299956979554493246256886739821428645874439933573765746611036310994874377441713718990030765007373780172404173816391096425551724204502155843611361189359750402449852118953801061341592233518339695437379974878306825894162425671107475676467969537326480208639962859792645982523007771864951501194463894600581133218439476931148098099027780622745188689926918708985765126087271389946175533988288771263766736417099452479156221196248948994460541189928970714515259907286239287722716704419128885621078946059436830192936315195361884563968405624521237447291619462404191893151570463639661187426246874263267936855314795179054798717277399960297965047999371550522108511122392086260322605895412844062229067683238061437193025457557688882106044267839789200323450117971007153885731803355295654181744068689361677594060570688980213610466396718802953626661645519758560118716319060479867707615203602474284046137903113779641233546662574524287719246628904439096295463705896768812784435754610839712803687549307812962311584880911314095866544002602818060586883716935693499163151310194801378010901114309676141080785482316675245378982382482304949785687551775137246680832953110238616854620902341714422416104137223604316127862664375752285596837998976528146575962335797135102083907297817598479763140142210521046583107924420843372872032755949193842700307728905426330883430202228068969468459177846369461705441365886698218037894265204129170514139232857510719725547912570483601302784802874662631927929336381283745134883602194501445731422273167425510090051678000727399545547021327040975321844448739418724376415485606391203420649813845568367054237945883671525797471084978070207183529153692660418911992276854905442568682409491208220087111898230020424643172305182515423486454966343459576521662429466035682016142815705904371062347174351747850464561782819767899314190018876663409713667633478969089654026528536282631903302570339893588824758448130247220242804844773893521391794897459507472734119730233141352742269034888238418678297212215213131819542923801149723226024797149979415420098773431395715191946030978501493627030316905044310331528849187931721925452916847897940042076796698357804953817344781203803228400812798105698214524912936240931493914516723655934433362638144140502108387576993588622605292800773612331185616673810237979173023142781551560927311855204206160606095001730934928606709352620822266972222458869375075986625700309359473917243572328194961073579019156865046723946644338204553820242310929523505554987270451966192668688966176771583663911560033310076610908886743193001206403146009509355537558619772195782256652223789106911586523136599299623293191875403301336590003992667034454389274285479571963300958107593129582860083425257089307487896752383084837164537229413259692051914676788484460636686187941910236869211900462723282064252968233420538832820250765548951741220137464721613633506042710112020367917777289169993615049349145618522660548563097296748931549014587753876576675362130937330938003711301762650730541929540861913240622422977040626999206172471383578282996452636950266455458422679096349499640345912066630200153120855407356819470552823358865880057844678867807010640010697982695362295402558566708278412162950616018962140225862910483588549245265627896128373527957121479975029366448675181081562221301561697195669554195378458865854039665008896274375327060658188163842843384839193463755926372865988477008900988997109278810080012108791820724943586612168008640588730011263219358283079716377805751202780555220583828708256616171858070174363750351948602746215757700930591084665462315975378229768672935801617148018421190261751819328074337466161652014192608917628045923396587209068694735218042072981046705782280489271002980841531917349527190966673429052582234243679366704651526644932303700659861942331993442800330806102388673231525718196460837607497188581329400649263723203369209484275392970457748703951625427483819312362379014747736693469123422838849993623723874445906726319766954693467892334250142218900953015536341950400486020384369197376439569601472821295570951377571315906905501865801455367209588569479020071098956488102745318876369479823052679017020327892763792553098537997291621826330138272528595884362673882234143015954398611180018095664466082422312480503312016447300112267543462548827489415996141840187524904525226883414905319059881445745044545801092865448848551468369612881643198224723443760461941454355457329001894040071529549026358700879966778744048561156574478042568767799691954047724198409078586125275317372825635761093115369861464139673678545785354929976308287996996399882302307334800373555241767716607786286511124112211528326136197589622126772490987983912972911985819011463676575412346828820534309621234118163407052499491501101257347160418915529796943209771801965950381067572636018473007159869881875482726661567670584045598620081291805620677381161093474955766285139703171062472285364539436689053590825792701754356299523700833804966528767050363397392964395120730035849116439987296104709870504565007713200896630745879606485317731306446654052592251126658256018117497914898370684916042189621713734847782758599642868206047258064093507595020988657272415275982816880058452965909000950593077660051304740376960745411299383123568374920107382343696219162182911472101999806475255576511703369192440879412305487314237536447400063806908159468701057163498449453345044256360076983122329216329065941933320984900281819509333198363593081027626486103543977004281393920614223137029111255503067016367085645915809068733432250955590009607066468297495903312105002333454489747053349892437486333744166471862361861867187968412490008931342886495034045160662930428773324875027015244455607303304555472725824448849637346990599324597069236491386881511214880551571217155288581260907837708341631964848960165188605283390495200567507640333716677037171215579987016159038471563190937034335030125478152100122828950582447140153556373185177944846093725079844017075311017476708666271996427553284105018405097818321140235383196556449283184352990005104779683221896658861024098317957274867735913570664125224281139734184204089730956394573678013446185633319948403358050063313198147318191490146978051481246583873294643268471358403842702294217269234728890746837124839437135211164704795820394156575091464289298377318264482480638115913394157547808902963614316181090018520718902355946924142928146585168873881721088254465098981177254042123052834921436022486368616827097247315902546962771603746010627422901357568574362856521714651890763497804587130377455570412893794554423418862661396733169006435684181561875458848867458749033673501710989703850594932116075066705357744461013979259443106273636091969206530162903175231760007045341004273677450355897078669646104503697695793919501016072998811633987419620060167189246428466461677382274326213493623190108913297084711039406271575525714669793009686279464935434429334019496363055096315480386511675976288548348117300437285464750967621694514806651036313369662870363348026865323563812080322042815337691890091564401162196096943036961006633250614005184824180509422263861040459784954422223643150813167087801142509664969246171814915486697602874427402886918426596167448052169918913541294553341981710772943460785169815138454385608777908515808718880166252239842995125834836321169167221360364825058543246556556137125573848136704227851610785794590022487636772984471360455688059314125959329981842042086272154422590850427994757064169171834576607849004223950488522534540521665158623474977475280373995316444112608175409748874731670265248456659162182432032639333026443165255032564615095952587323824760903557734397915757736842454923545266746936580750347118656807515349231005901908341610796561562306075461889836963357376575389433341718069906295259590664607205344802932345792875053371992432159923843961854734917977489149826699656178527242677235481942750976157322441413202694189175698297907960813573218608819532086559484945994574977147380081093906526693706983205342696576826749238470797779418919647913264665597177097286828861003532661791847449414496419320001036201295098929694829814828208216575274125775687060834105150716158644200618856471888922534155629871671194899786310808716965440709135083999607375343547343742220301642065166596107966106398540339099323748486048612218467844202768145909109083693272822060199475327060733431534428435760247948767666725238689798330376271366732760374695735778916555835860298200859929066977468022439437811206469051281652608621630248295532261595617677956603331114891571790497020290853158250222307986102958288886359169034815322859464135290906793186891141657946081634698851606535926995637005031783290773423380220164627951961100409805527859400511202923921113363206266990792957511250599247062082523073651679591586722056163680472311635963090174225892077108593179252111580257219306338423700202341958857189843348068978379421666143967385830543598689392547840088390739481038602891439978117787411651008328918366695144018652157272029251890685649430379276901397817898413651291669908035783378637040908178178478714655274090775157982021739783180881674595816440132068176188590509197612764888356989128548287242907296028217573367197793238656971251593188286562610021875971987205814748357140928536605669222494498963115193608529485859186160526742037481922137527939022579401494602403945530212684642655997340648313911977906988601827003020448047268518246515691899866667880907318751614160860664689931643926233188854626564745145475820808902802465199986204252568248373656599311533334500979718420473236250684354722382332881240011904491343404820595110664896593983786575070029022103902632483653878414187598791490820964480518744305080294825279770722283956379568532229468059659578057196277478092796785680119655693529657903094452374307277605073911434494570124778621250363007697605775737314845706931225707250705376100473877036356599495951240010700882859374337782588001633132690519060889655003211062491314104483371072676029516955430904703524196753411889763645825869629836665079812696498627572135762429338872030535435535156898108369976420073898869872617229596993838144457749887145304232057707038052717529620223152719567497177201323074369777380396822114763407067432652567411510234306609325522429044849015680528977009368237493362145453704481312216556100615979473431577867600690833377282467248265864552562540596691444562250199362424323381344896000549759783607738868187114199814512011673899197989268504025277787480767521467230096557852509927938343918189262985305240084545953969942897650312624267654960711040989472088181828102012094904846369155244329356278432991190832363722494105595317756935971008129650634406592823901325839142801086306947301302750854413654325047729892140326978417476157590359574199435637908391533597949403937959473967172595133465435550008020152187618368353016405193135833769915405501543974899086083580894098510061845789263339547096294029722274391365839986994715702210886253462853143307653647398557315024298591368751762681052297791304085985138757738981721821326623295260486333762048099203785278509072962745396127755544533994891721430919013101726917383164766732006089975703098376359248579591689922024238054023530224069353386284592774588448831784214854285316813375771993050183629485126364653814129426462311849060834593640395264851145343066597949560776270116900119407774525379872686361849363520429170639769440487284819509882547821136243002912164373735801507981579029361548708342615636469041143492755921663605637439057337298717306387568348615669730489100670328960535687506235566695134429738731019123349575281535905363006202835738291758256781765505609099283132523873641418647794700839599225581278852200202873782794983736410140013228176022665464350892149080021803254072043034702676514468469129040531777328783482863678011470612777095454755165761855456046019005083411650583638181863310636257119632421582393996063168010612488597373355922772506700707347933320843064747445543940210067994928197025041979535348497537600207620366340128576023452416598076710889618821700754454640182689145521010628257431301745846744029129607252266723182605149049716737077356216349452946487945708206238853356675027188898377212174418093593717906593543470333924410701069017546103982237312117815868087162640930048648858987641309470422071699664987808089143925820184953421536489076003882132556586798164435486289783563945046610374544519369645385551400751500346665062131280295611747875009953393889792146717540226019221782988023541806006972254863775009106053992278385816684229540336655455367133586890262027561387035234638684284595317783481563843014557987833340963407172262110257083863839602962923964862728875270885326967778009645488435927480490226525579387261488827488539911048079441468767720894309219436870746080942891255474457735856270913365662194879393889439064169018505282331843945228987185013888030825264024307000350426889171342850093002491358233756141757670776842278171714471297897890950657266317729599040897569065545130609128624933294841163502515842042171109298410415390077387002101623069250955076159333700860275600454334227200378799430643945624150456535686725918933081807884722141349645129029219486498944901940050054555630615205031876695171075969668314431949519284846745824626079812991847285997115737088068726878540655342735791475295393601555840880441340290032749591203364666746995081335949528702485619377474741137681078517002378554190360460615031511963856830943301820899139589722285774260207846874518086109374776348257245434167365801346380625643584521907421987543813312680367539418939880368981519879679434755373818928931668108236135891309101447695953170892290288546192706932974124738794621780541922701258401417661116985218511467370354119554880773077877736955764567025793738450903349820478413900109027569523480929291667969168223400034118933172045013101681535269727172658468869376395776978772556129987178617476911173016833951335915776610911840495326076740859326762726035682062695681826184159472854546657694122076733082151872263311810521941123853289255245171128102179820244703066268268467215697023318391380578753298156504623394738275957188278585606377818143795634297405109017260728236675448708538009915938839847741313868369657609377475985663497025216390410800600835975044791371496396806385823239994431378527434480372126990390406230050260164790864898159317981766276899005778196501910556689204961556104648898450992526805509000063317888854704190016728441701906835111708581628306804256377988877986520745456341548468379199425792918951978206632468871720306494989747768739332480762594034168034380075773520820260208433156023844665025610715793041376686931094705651987058192320039253507849976379905314810416349708242878084333774269177347790233263368819582962806633928274048894881862240028157900886115484780248385117715197944452120714950039540505832803415880189367499750291605268474177087739649079081383454834433018243134060290485015856052510047321305710171212497394221648059043717647940049845234338275178837922879358855421055625037382081626875501770155232990285357233742597672369423013323268520539636433332443284930525061187320928649889247729975537567871556331665442328255452015056268081739405398342253457580987651708608384424589664889973520966624455860461385314997803926311992606451604232218726867800363892141113196708323557201335804439493555018244541757133726123982592844832845430774659117045954852252525574242306487733805333259121567829139606735097649469450939652665826507611186410464891452935159812851087760320469378404568770422137977334981825606446377918517781706790767432254183952532217414918426975605021728956403843230972170484020833273822923625698651803664945059667335566207271354451211933407730289934114664338280512797337633888832253217104837422529481372235898750138473122890653397875921502726012796386001668219332257296897620485685407260384393296915432110681218172568374471054278373108499630910237381485034611193488400459392782379960216128840417019825786385996466478085551381813944498607188861771979091693265036947286262407851925485411812416697073051903412199667252249374442720423098199563110588846543240389528439960429397424389311573036597577179886533316739647689642209427654998996805643085103405614731532063248721543570278932335535161466923472883091362050357409882019040846248898938726225059160656913078446172846923004267488566207796239681789651315591217644895766080197775455219877730144851587020555890818279433537839144407719058746965517590286983705130096303070505744365795273879507547318296087605776046213458280933819708764977732552871241489551220946979290403523587203282579036273495919853497552158251294415503881391380835270393228107091704008919796139400816520495493900355612362373238306694421714843676504243015042118577923164986993115858226486247489243153518757648962433662031995503406323058083105341346402025384648716950578136064489360084260293438737107918609550416861966696784347228845373648187266591475021220483766603716069980672642553883240557650417810514390309938560110251723909729201218490193924391856414178253213869196073375193642857867432793879984627402933690984918334824514953406783017633954440684563906371704135653229000523731969523337760729167118288007665987445301575802395787391586998561438983973907937620501806231662878676595952829600329595393603131703011321452203693304055664935881075802719713339037959520636394851885680707921320563311371955448337949113833640791714132579413679009829928199406683120066821329848417503652971189295466356252089436214109338003783337375362947949784600072649203345800690032081033811373775994614705999350597296792680225405354737738498105914147110698418660441541404408353971896784483195153783609988995311609288353290550805000591121241180905094016431874298951543014502561502765282920423372083324411742269451562651898308449057171197702488656701975474667886016661789967939969762724366325090941161654958039146235002905849297318045261677020295108323028572709698507983185922924632149662271427285036754957634536863485697747895288827422370602146079303372017649372955113267887162679221758530424899663571361467584020399157009973694831115808984500604070572740779881313314518440593826070285887035876245597094779466773018416521135203312804847258391167621138459831502956269891855333322824475233757707954268782242226692965490248540601754600761161676752612415989078070361777406175268017262178773564892293925227766667964459575613534201700772970847346136008486622343606938741824418640885068683386182871611940797828960597559147432758010278895505143104621727676908398963398652062306407108185410591050517465552706490643886609089485439946979726624869559728450617236747338386879261522234497998667110387841103496291902347063704811768267192798073907249495954723351648835383887802830999378725538903029941645875904675913233225454826227795803700013705259866822175674783159533972452757560279187822749035622494318377420682688819688066059952478945599036146786677067727611190058614441863213098213698088274058909371880594327467875073859031255450499940985173275719444786254215743035978759499772915518028057514191572311338589330774589144398794612040674195620332490875897587244720537892603316579663349738312001673823929202259880289330452138770870214774196764074899455476626231265151475567371869263098041973549608105501879638897599524812294798390011820700098858946144584546304673245407072368709675150001954469376710485000952848228916923574427472287517000585934183188896117678528270711774132182535202188755520900087233530552927547028534346803572311424434412428570807136145940172395805345609475088004996917669192118213981060089200679902081963393325166179966158307046351777377894258333319006295479728144766131593435816088278894832004848536960934315635265223580001332220105615390454894728017672950952247070196157666498417261547127991950391805464466314267574676353026077273016488963887356470729242678584959523447637801402213703564715922987025653211784527313333071257477525667080775086435599473483780923985719668358036070102632568712001680590313055557269189229411929299939705173544323139089140432899400265386538282845269183641958138427183445420650065573936656871366758376684322961751859289803951237670612274923721679300525720846399273185823057780859216077171205893290863695108818529053053751154743936758236518919701647431200579747779722323370951579837488902218584220066195514800292328471007764947268857229099940910398370780982654410711281744102822318707076232040816073798512453435566160349603501933743825048419177255900658472056633520622594089147713504182330585140400429037721633992845581625208081285406266505504686609798477925750678140580654683157859019604865194423267129525053437967688695628932066374872697294040076655024819301251104721255858800068028255078330670553978540416308810441588509658154974363619300708462477280362390290613180303473248795681286544812823785041202318023838719017843652511871670471115892878777132793188103851278307073590230111145257619631286876043559879569118553472057157871221014906224262517186838739530269237558294217284524844764964102309160385257206366785377643939339815182578428494803788952394636797979433937627686769990247506349060147901159558597363972454374418671477335960982153218023793112133095090205657620226503699332081293661298910818915189989313039538326089995195816664661364562034669714884242627087415518726706118489340739284050220949517220946482584438458549830050052490815385133724521039457772787385501820126367346467701572679336215357396127498114797346475222151327230027526901720311026007359199781328259020383580935472259861107409026435999730971271540140535041837990338987838112096836130119433959215897760447069675176205694438502180462994523199460245246269552927771417921721774619421789303738565583551383813724353483588769345473647409315050190385351141554643388737833281197291596105597202258211204086826884707406337665992051698193008603610564515460355231246979455123560883275124866977348136842262953421958407737079963678410740703482007101189484488555351830902682737199579322229728025213633087797126626389499185260357928952618874861809797744186019660078761509767618466242291032935300551246743029934731215959732098718225114431826801822470918843249191770403803062988132258126369465954088551014686939523543085069846917946116250296431341048607588529560013977566818486658535690755762746920261421530557546453298448601192962583124055676245555854494938065941477413605219495186114550049778588642970291986525646130308423694179770775749661591247561515583999745589034540785781594544981710711855354962423208341630834741759921871253843140784603164586660669334156756650949879135087970147355229769916898298192094769938598798548519465028016680124358442877207432494513512194825942691627272885701804685784028640529724952567496889209505662504989344122602098330928449698098859273264422349518512464308830072776255204844939489234996472719428088961485055212649979102302008459534716664995193647669099044377966779587569370730313637011357866951674752979562749442805134901387655313248836828457306967116927875740535887375385518995152493911667957241998716228310577694741240931161942240254530341399398254342658732542768373348839993192989447623799947547260012521298383275823388552039150397080276109191092359133783563665742481383557049831316391018377241722066594035142452943712310239135193159165630657063076068029936571106200051743107669282633751309205362960235215197797282160953356075933306395227728483837629920465410390674552136489389392270585588757813108267369612515958580477147928533145428280260523667873521507010116871231858548966733485932176213916341344040421444423034301292644333364424984837022348065716603387604027270333913289807698587398933144371151853054663039043342629317411024004088939631765208075133030445307132428579200128088559851306287949344399317165894276481660126001883370114262460160289824165389769438518419645119871047796246693676542839663657910834019006889509127505273973695558339268662828946030788562903765391870121000892173921904737750841894051691179348374551951688346363577378393807021891422422851800512416571158046704963268998368750548400462612510627195557845537120513337683808565251958647426727523697219342051394576550069904451328003114263941568419892805269808068975321832757619829524775367907664142802414234201946142109629269240502088585457793957015590367950859603314360938518407778971449717288278887857159585828727659770199205815860243625774063139212522395814525502496985708409978271566551635206293751044752218959333943001731673900195127815088971986983550341815927407240979605984736806696505366328821962614253695387871141629073376273909733207282195385013190229853879828200071483183933100107614964440219632327762092067280756694848023447212034456446837920707359434217316549860271896212629175834315808301242599628230345777961068813719967352073961120695698509142917734275209040709683050242258526388316241063733519255730935367489253050223194050010916029320002206057547205114206628784450386416447514778318020293865733845971291099897329295407825580569796958211538074881716928658682113287399649531659616981764846383824345014691894665520740151401619832884291964062067104293958463148237014353337802837405213683250881914062699680381737135674000048583449831613641981234118291058786846912737286163061485177156348378809641450089677435956694137251199810002132913388322357148558199780388234306381543198578332191898868593158704781159112299297600521031290670951026370780897461775666459304964474274075520643248616179415337544062043939874508639453024630983830557960367517983760044058765597369912979581231052548982864695197861235816209940405405663468697287074141018032114401143197422721262918895067005397379675840381010492044703520238371041662573409322037271999854162928781868750365194344423642246126215666101958674970914442199079314979510662347762479784696257710649549132056094703720660158740209839059718235433845405405726626921565486712064869975546483466842244853009059466275856251570620953500618332056088010293768251566692791633866163901201477686634807330813440154635103764636465673777906971101977929618543850689959309060992724235948261974736964611551685311997751844349065969092493427165183591330379294156717225410981370731717837471432044114898099704550883120230618981774131479801723475522585141512581390666967622660013321974619264704635843770040025495286339984075691485384781459456376793391588634731101881421781666839946760649608795704216069183813334497913263458701256357526972289948139598260651729083087409647531888528457241844653852860791528427415785381463677145821166430081688976304921601815100015157580002810525526808409685880237774830418164786646760399120184095330893074135935280376917409754923852361037847939335377260076522961941471782929194635134739709930558302308208291117311013781813216650597053381812548580609065235323791115100216734727590882821449939971857431732011365333616841264328884739515052890494234033994215454010352519541757185209462072790840487503702263603601538078947723468933887279334675846317409255486100275773802787203104467002366391625265382938025557166841114790918511709073546846172756140285517869254450126848005323441921937299924306823845959627759587003505439982889856788228241036456777663191118732231599838235394373393220640537334423865624338192790034057833035080886812762728778806475301148181007903808112299322988692550552342294092760254761087520125702020149299077735775014534329694401942131185730394117322728267159599043892146448223587465832588870290257688463212422549698048679339848144260361247978085714685159580040822253102198526745880078801986325326075801559654659615276563955651265714528262886094732116158981784530540731590768129526073833924825272318983480829041426147621200214736450803564260866255773040601798364785261847741520368674796872536110058654055627745992030389126120252993110543505731237596476680558172575829488463369839561453874985538984708954343715258734934916576560972243488552664867407238856751870105716187579435505884348560243327432979327600660869115524703128402630392109712021214401651859797019270987085131146662739999801045340127762441270767382274893019563590422554811665983152794286626668699304132105172348765394073576245240904549140188329739078701112869022242876892342229361561407588783703255840326980538740908999421529364461664336816881601650825666745721313208193827137422643500252669177098112165875883464016558386400524583923886590028440014720284473684926561159740507573877911074156717237301587808934524684526076822506434038198612461962741493367404294639527107756046731104947873557979227424783902796429394490009358253875491821666974078112636134353690815558762087605492163658023398187218898112442586451797481508045530432714296473960892757510810423998725437397394520778517143845913058659439907981658536954474845984393335389378129033584382633506958500993433505410237712339746316897877514865567537751138542912190926755000876983081532802598248310285547742661971259870071222074727016949409871074757112257811519945082304180597282638404886600789851673354560900810650816457529726209814651959153440817054448869881364107803464147974611491947864893054597536770485542689623480978959046071180795878866305772579803749565600881839269099474751859344856505282276923755253160836449990260256921571454884549044136059195145605215404548294493508740725276633351543505929501716456439331739862983381768972929216193026790944084475008313699815299175880945557145167239017667718946141306268380518360130373133615832571290152794489267038488882370356759122294080817936698435746823600187836499510261488638988166406689783984752522145043069049812649535211614042843526771730253880966158113645112572135363804760677433198349953762551126064904645681344629574659890127621316765536748558182676231848065502275282673815517306901106340887665053207670700871863796512750224204732741978290536338860123247905326713064716910110238073157699387754582487280452842282884187421332838225575787819460057345737798836872659945606074193417155442981231557560752338311788202791960416239672178194882401012270917973394697846426867956590613290337156371249346173138125132279177849727612942991422237522156321085599017727137262683117890117360339715331891299603992778513903493404938808148855734667800743730798917982635220910752480478671281080468704906063228337353651366419449118858859890673997797453388293142169064107222712012973272227959529378792903825989065026894373401039432704181344710916343557767573427361779255535324526614552981858521743774920730451081617401772318434820241755578288833904987973146458123893577027562379661642351486072429939132236406046457231772324021411202576930050460295485823825629157016517021358745940502394005141458325718568235334490409831357055253261954559175856529235335493924809029783678492835476971182724008396401101807438202005931000868610229929771910186902158049374770978859995310983846065727505633314287904667674524566875943084627331900369935754753724515301876818299992356532400469412719046975616519830641288412533259893593124788887728494539495262906795630436070645237775437944207378023261977988245487217005508181318156058952259238586370072842834011472885028838663062804986735877566318486502879111966929687628146597604236392807689877789099918852781022359648692278739407214095597820104998620500947843480065957994047530304071780076049380470662995143652187646513154395169605054260824012863105653012344882643165416188935777218110794773281195586899406209969452476388584857756960542558669082234119207016279199171934937931744799321279896198168551034904551404032905324296029060303374554380497445086402713168533476624003747242481225580347273650274403716479764126748888567631168306055796616498558319467255505388947518182440735842879725825683151855334630588973577410592661240172436745581485504691369762829519135754750902774311433901571075906105515872823072467105551398917674990618080556389578068112958251324306823808868322551952437396577194914319787429673982903428434866460792848271787436407069729332981604668752116067263722652786232970070251792328228225638182715368646673082939771754963196388115195060371879051775910241324418404036248390819433992517737693788122221211118511721744306188426163549539132028490914048413125920186948294954779310490949799723965549132227349519773521737879337657270659612618313522029250408164218213339078708627399355815552460137604068496662959136829648792739101051247505648495086081326905343698096043024475172771107984941651008605850683624267113786248474065682529964803380926008089326972233900148209893438862335900100594362542473179604917493369700081598359025664929186393045162790454753651069218582434463861188930658916912741127721219481647268047937789563637032267957147902541127471964826255911815653187634040152757834209926534845468237021811247333684890961589795025784593102713642310554880502873800241296501404308785446785137135920790583107569902174217698419290885541356111660199632101367981648494395187537112055673606808797606584200576610693058490246000902556253526496638876114282370837380025857518020962935487369347597778505469597437059357848335306738356169514694317970177664463161089876416962662226577062456749430048972905337370961810119710065945988569527732574719236409058829002459376372245172425943018707473004537863671217742975329353907017569272149624247141565763863760591267560137431589144574217311385414277535695312893928539562022160413035112634945271015309859069773557428220755063834723977067904328264176087928469499626738479954426038984390736093334726688645070904952982534669789677611251204554675320016323558522981524556080525948719034329043150296867224466524190785045778265777058216583500996947077140094027764480777195431453842721209776762525975375013650799359372462367106034658865995962762367764463278656450577371574899606307226405623199109463008880961162286139589201861286542679607290254220299076632572340624273892775247658622235147679691254329361237110113337405424822762964796399111513342079465232543218662001886674801110431608149098375948553764931918955399340490476952447907381564401193511337212546114113423314915607236645573739709371053854833782370878295623791644804053438965370803230320473403671645663709649360002120114220655805382183389107575270018299481671997338723280985614873185420921488362362867578524296346454206229112694173921932215575777017116160525708930373817687952669682742157401254386107450852786416416521642502851789693906888322443023720945856902177772964565785193695142206390261830614789926237429974709064375784873563800589358347294717838662910217318872417993565521381132815959204075600399549038597999923175819383147317208221144660748100732819861133673940340103011037865599265596639333267663027148140745513584481336896045420005765384667884542279940241433221662908826022143022783829263765359348830188092060330697160283011810881947278955248993144336051472890418956142087988604729478800666518295326797339742452684706486511782558143191873057389105602214026917207524562943388022238129051327165189596826012144052792664453212021894307100497192671792559993709227505324924044705899070668934019735193077582820565222237157054653311455427227905244874001404880221439536040021228023195518286151058879087956529156409299748494812971214503247763511397149102327790088828635593708113731418653004948688698189508818812469802045751056661953661779554081677455578849615536342185210318072701909086850806686476045768072162183774172571900819388095397776836822938275450074521746639814263096010060920479970553786116955662913727401512167901558027462352448703354178577732861086772689532620584165379380631134431900798809247056730976449554827627723617419354825529515917681555711091201610408581164294408917291897945519932482926246986133265407473408718762630855131420198634534253499831545933733831651728804440749754871210247717680153230975589436633780213236653335916064532572561964679301455607106219347776386997044832927458959769403009359923149463300378442098551946474375579822542657929885911539260981166215939269737293010973116488232233295671610983467907981681917877041469462463053887252082013550255989544778890525603826665886175111075245210284073547353343162681568876700060451890730784888490040677622995743700632358445333760287177902819501169103383003643777496723242801165738716130940179715347505130806460015868249236836721762426437753280605959307690782168474689101050907244807483562183444685841115769704018385601659366034468551374016084640401267280654452513104497669590246750636917497768379723247503146841401300246968194278096177128460491163181842527206351086881782763014802822609911553575164690320741890280004642718986881419272708476570880243631784967274675906422116517712506402109435295526653832376671273828799133843732857483114453625682725718293518951116523575905128111453775932768908395362810958384920954796536385622188380153474485890926452815772675570100616828673258264495259433664532889057535367697867479035027421891932620675428773595493030537242524753088654148798665302789899307816921460606485987274053889763337229597777096286938263423942748036933662023870095181561116753237847801268282508406227443236515557110656071964316649096877993701062462211477468353280165026104974906548920970541866831224653173266877226526588807189211266260461735118435587428140962293729778514487498402772763052814652856852057660747572951694270135659922702530788517541786382161050762149248285340318731140047629751043588803216889395790993791107046571945800234365356192139940545966737795256322641312626875185479118953823719618407344183874621053910476922067628759475840749410690288439067496569982691332419855400640135030722788111990623689319577283624017008009485225600693785586155457696928731804383583187057515043789073845861624423117627894635964854261778987954736969455824490751370095326039692600779203551248745555423988639400866740768444668582768427418063585472330374311862622869468202827248040585619294882504062407196999236743888950420396374021530160369253853868327460114474888310618471421955724951311709335134242698071683347628448718920862516411545293598317268980596507240047971417467959116975622011241905931237266826289151735590845738211961325146498966816320416650963186631097568116205141322936407944265744716745490806807859216469949042950578580128680660658082969720661694314086818830117146534164531570164377354605693556757303046915998947435815254781387300844451311793016223577581214879262513672617999713229605714406070159652785106835778255522038613791226335881891878075433678010897434724632837819284405261026424100512856966184862872890535331356363533307313816293953690333213127675478662050011238833377692545066755725479048888467104901049472914657155287314208078568211166015977261074231350665389994795699836559408723852917938560731431879931321098280406199119879388395207603116837743798169214742259391481501745834031779855980447632816879114667355813980872625587189250057498523937060697235823856059729560406210151985037821335802844619870771396390208752360081071863056653255517927624973189782466887554868765691523654124742911954051151321825686122045080170496017259269582325030996777917483237725549709571205568568510521971187896005241474912593617723730488199212315124069139580546560442261333568278475354822877013749415909527158722926221615396584265184189963249748428155793121574280370253071504424276213974676162242697653598464289063407905994715454030966522711117277509407027185797581024454131911415577311897817169675186264078548050265013823012933475334549058899655409717823927046758644349412515462593836301599629567798193262355523255908004749009407873215562169993061041561314089433860660434133399105413285209427764005941141022174611963678810162023262156219110421098123351088415398288839794180148515107089052662450403146581273199950074110037910202397986950947905767986192280424774504533786881220568840372111095455530986689003550731049911087544410822348805414799525856292042810234159232560193168640236306500204397216971037367080090343344301504432436126039226143149855434553814649766936610035466999478784425160493005821401525705656980084273215828831736793333947854739815016177670217253596168675570715431398228180021771285159690036265468849813591905263155688617930359371669549895457378837269183377052270461202439364904383681162015377033792444710688829644827073864973033744005776381520715036063587363165451354920124786331328061956002882624605963297416147620910025908845353576191536091050947845508562313988977018347080462181679545863389658808084297781298696304514871090327002059045747813687968767659294125102304516862545195090955378523429761923456415267275207533385889597983085552932575667722951088134833992159950832322546787219892245164800613772430167580456949091203164773542233527529766745942303493811054290775775741239887041486493601362597003927959570326957369092163676250058501993292260170910910458605478907658699256527003930557050749595862004612667350583115860873916851495601474043320057137090138737555199455962429722531050347659147500612678434790697570061215441454407577092213872250150495882653634706087340465956921810232237575101868931047578938812212294534211256855028068118866943668976858232509410279614703107571544438711909747063949437755666241872434834716839403934057934794761569139508880680428331172472081503400940734359904471187693748594401099209581763717832504053756436607763754867945573162251205910404557988528365164141132543459556357334479228014983820812034216132078979790769150762798878056904846665822765584624824337943134492488064631319220584166167598042513415697669651856535426471504480137866793336966809980989243818952872837511226091109812205026067000461992366373633815572642207472463734435626192390334804220685069366068340576768796026076006277518475577006953845291614042864580364445284714340457678975473913966393744116885104100629800172803838861433935683294944113400503089102892597263834151467858240479276544064555816256588679232726555869906383002098369446011736693370456819945863807226270784150283560137436949982921504133205783823188396195813538591875164546922663358611419072721003287281566058034721185921761179075538044467980379388418543516634706072219565487862640940440918880785319426922173593640590149033281658463097646322517294476657175304284515361559663098123837024537651328385373824132208090771196192926518446999576081281717987026210284189173244099816620709998274519211394540788850358794381879657763199652661424791456042215687387870075942311670576819663540389394792984665873707272279307379023468475555445402316268981800405574601660404268917992541511346714684054165518111855511854845658966463525043967438668957105877826788178452831134892160657249648119964974678558950867693173249066207104754415876086053017142958621490741791058507830343027217342901478501225617780187789056608348824816210104117436737010957510201948035792105770862964087103764129247249606469442984775913135721863808035732219391189566954450803937006703059709634016129354507532817109781983606743472497005997738269337800778928636074149299357491188663146943073128831229292226816519915266131988907867922243409399046470792757533945369390698819381250536779413338297816509646731086438323039307535468632444870035605244536979055458941253237288640925575694296143274717354597469363336699060915332843586489114960399895189348306092002638317299301912425109367603055851988280763368609265936578154180257342914019771871243647778887870978720231429271403044988005591423988411358431087683033455593522297065503749189839547378008408790396009093050533828330308718234352160261657726904116425893392827600402752890197715731622566454116473135585037633411204674074258251188487992321780540609151981237122089465630784582199660226317479841653368350301811979279817118617460433811057202807891803292376733127847221076047488360297893831152804755211547067029947654214419001445399087025479610323640684804022887557454599175914303835151363473253063535194526544804503672194454990890568578442591893799265794562191295857708910542558423116668540817362723260970295569069686704414099981228371219833183248371919383374233470430231327087567384072349944583371273560592734432191038061420299552300379020018062950732003108126502236261788174475243795170541484452926841331309432448228584792717459749374856168161389728688093925148515282691229241860256997150565854208740332603335979829477818196159709679788952832102327621565867627039671748728823061057427904301393628405413850576560431833383617852278497416360017716906889779689805478457046096664626346797942230685887877121866370617806644053834397432848063495904932095480037974265957402874162311348134354889529191347120492369335236719748218224775075020606445213865637205809691987834865316213965995090825102176704708585962386735515682664960156809527762720273406881668447874629255940276377259146908060837411050656896877216832465691478289352591524685650961044831809701855572919373717396190909495769669558659910394672366453222012249733312131367475138914649061277939846630601277894294806514116208305807335645355352891166583374786747901556027872388742252484949375746368099114726888859586016986240590100906005370425484790076609967556821710275867109389558579098945355868794239963774786152692168575251188326193054924005341185834321087796592487370332102055184639736866689028450620485056971703273089245734764948433342746921696737973892550205810638249067219552592634050708106127102983611550798825330396665835704504359611267786662089206311404674991721588728132138770386739073412569346875361532986891180379356892065173997279813758344889349316415752309481946327181141397006987733036516299587965504720796442632279166688521054521252371651785016634276634147756772960323273634091546324809446000537299844490164715051998069575664686961737857191720514794722926326011253933057856315420501561780101531642216116725868638893290588761898325167160222971031557239980780990260137492847210095343098608002693488860007083905394257853946227336397280961643076609774813550699472236498041519728228354737748622543560646333101518840641868187420262656046954546931160584463090901725698398722638766314206220549231196749438790090618156174770245952933368405346020441883641216169754695203326152226406681321081727880600391643610184996505050951070562652758241885613129327211092558715399679595630613964837176645930289577760543699784540814752635536247612949232715683231372311872833372396853594782816098970318591846218380847000898804746475092454201868542203894425157180190724091407242936467510164989779041121813299998112511414910557864457421365593244430799237697651958651807806976539874452264414107007282545898980487047864176392215343319342282741668310552201387018851526913761125988479054030326675954457007069446884744112230890213686527547106612742349223824490466693077912836099991371579940376374129414215733769427380605866973574405303375125282289119371145169557347946695366679442804620763304960540092211135663556459231664232872864982884582642076771056557273796326689178022371980188361130878001696806807972660347777613686894254008115821005725355627030689221901528731224940778666523977622884504563932569793360964038735022316746978111827987085054132266261759484246596793296247219074997861755716709676422058079839750692512274482154255204326218128997682693257084288568369315184244963891452411297773930504236572302287012091376634402988525269537712121204776477368464304857430269546188640560514923437944996062502691207345405222947286893022709464600789546308338831835261236669752646976550147139709670060680538301585649164405841345249276607640928201676386413472929655053626777875372387621126852093767576406770207697331360181449840719000081283039104588835779688381535280804348417767063077812857903687945933190826332670875662207946456175126801948659739005355823591454988062844967431096624119558653588353880303344094838965364319314489295406881008581920721922690899230112974088553836320350484082689377386570504648196788525361853192302076989916787540630788055793635169179549391541864416399308864490088772634415279843032485886843361927923625962985077558734363274737628296659403705137660484375866921473128721727176633572245741367500959482829513426614459369324729805340976858629740305341918702398351085640973295126177887558021776399553859861499100248879742078222048900155215811663131797770435620318260015614278715334307852025451748493390109692917214292632154348114849152172641367372873585611355233949116183948741080452004762722238354199434109656888048358943645052633488852084966473397413656771713694245531964532953623145480187150722831163112719668512127020162934128299661471094598605288016472480697247130336411239349039410504918079417473176087962524095183245700785215286073806183715194752523248435149610886881175566450793604754431451232255608470115215781709670944721689368104751786602021532200205716244563765367528752789550546987474179094238801515785497698416327686719190829776395124319685803706519366368811168502138589069831740957724866211065393547130744556331141011060345759658567334286108806971389388383625610869929570468465505818038817223799479628401402667503125396355849607673935061612850810578005164884574073395985430517188578135550732558461021298261382118572798352130132150019136825085382669900592868062927483209061254278834649054513246242959176475942957762337506096107885800171826313545111955242569644758601662288871856862552092098371335902032281566677007574487466602280957930787957660867936002737844443120499293931165334792255914340482146355993932010420796185246257563552198385438657192616565997806427501734269215929765252078230090833524562599371856084189398412970669118682421961077614820081385354259552683447627314261252906482065988985382859649843572386129995729149665380484807919850665194345522815122516970365913820278687838722813196340334333929440590696737760588818101354092280684066440552535489427884958622510550086079726138061248996375204581169665933526491319493006288733599500244002706066672034217745554976502695255006573834587319497903914405471713274522582521414589972005388672267581177177420406361255064919559691543175462690818285487858986302649033724602926201492789003400052078572182799530383614892434224924264309030014007231476481895391516153771866458501849081919201592289882048932187380183198961855453201549012768861153764199758786873626714085664198662375136968799264088740406405349120731452026668134762561721970068380016966100999762606948973384522849464803402165373753107009380080924114401845072127138817902521802638591772881716114499582368933491800846997500291524483934440026930204597506301613955065854309166927844820885988677075939513642300990899014383127025188821815114814531233617330295093657105676029608390076081278640281050893912819638525193367425578469583656447909395243591217003064608511681833605326401262273281005263009074290772519199734752910476832546149563275256550807315423343737916537240111205948562949126468174038790649224896621143339238162985650017204730806380205607587440148282925302901023441779259203599488106921064587579721173591965080254634060557119211420973090746925957781665956008972395683848345124874505332842288324573548963447573991029962178658202622547156999457810833278781300100309009485607351357402021088625026952396637528394146462726005277960844073940410468445251366779376430782182645254790720375583060892541598607941662963713033476674914829784087582805943456468287824307890236265047574034592234445995813912030272485447172257831662489917049477292268800217922104220966979843522174277469838281200324319233661486164021348320922149504921365623214355618859051500807164608820297337096175345758494506368471850121381599432578698672374015782447704518688956083298573556812080255965525818114870824729926699873101449478623799947521132639718049729933150818481117022334587560430646646212865685967591796561991050215989401714532688109110064885240597483832632576708449764847904197203688433307655628835081129259148293189676304936147288581073543690589075001833877849587422854464686703443521902053834726829924301339618744611765430322385277197174786520017028241943057037375904806033213877269690022588174740439576467986055228822961850602829200850349952530268901531568427868353474202414664111658100465356028599056623182946009773969042512463022539430709098114763779269893086994825011360854562576064533996455983581308555513460675877972891681204669679206666491111095991442045033519062208651240272883450891984185359894009767807616582234698445838830615937619569873044875586948817154042503411936215256197178506564408015130793162999331620754300429368956284567038449386254150733578999149979122590099705138657888801737422142191765154361427886814636165901372604457865807570973219548919556609840632147332576251845439818132545419617145911361075542308826744950442064814789126027747507557756851831724266521713394532779220389050543958618714653758076876088357965420404283421459723688699206522231653152723357419763235621793484960422869444390573413139108279103616648283859112622574107219450090512551120478436748372922866198073466513212214727281546973714782953653642960559912645806166212283408956246129501382176558578968753194693446454270067069379722806405898279442031928866840810821776753299952803875112958394377613544201559597747610597476880556160699885527980922135816713591948958070640214282272232916082598956513810802558869503426769120451460723484812182939431572460295364021430559847703792734318907788820563114980020576313248727187416876681502683358898284747843874380650029373011377227620007379326386795011762637606688706873588072808068849711266276931680656767822498773690415436255125856751926065458265016578877645032833864678544826460269790622837585145377174807346440474082909467870593126820647694403288505240805449035507016695676361497399749852047911671848936710120167223707493332323730714389941326275048499116314616622262629481004373908415966537974132429490285526679789752198583465342165904751511644063679596078776039794501122789248385390993555288330682819524570865508994348733495071408332303137820045637695445271842640235828012356765860470029934026181767918728784333604160463470920568803572207720798973549087102359429447602754171893424778386042323523541285648786017948020148940720418327658947643548120915482758770106622509200924036081461684447243203677005715319696994629679347429950288312052478879101670890953425399628114742509737307623010994849780288433378226897285880439694882020218365185172037482062311865450797564505777698144633766410389143095841115254159410402926858614848707796704566969924577526041573000722968304457623614314768054596725055886992211834055525471423105592593250591525024850710507815480364412855120664265608167899180868121335058103145663521335014606457521206451257835409861628503441574602999127544711391004761606204804731409680181505642255592950380205189832736972905800689983210898362925738933380952674981044429857047720938282018358558418263609248541428401961619036638286385179757616302018284721020435203600450373852494099145219276574556674513106720995534183873035521019367057501929962658168111052027738133955296711083569557907420870342919879844920142054953969913583471899616272854787004005533632822113411222884364940826571498913616478426976077516946499946383043009044604725126208314582801053211740000444630102318822486695336301882887494081293092938650309420932978695418394365522874703291590497715383827049755039999405311770108174950639931584399441990313683369220975857075688177549358293070642680900791816651953080767810721915168101275876595387645831456697111114449520407117078902473465431325847013486531135128010316724651471642328156634880744289395737525432642494445003148120538357761573195816716559714671298827508199950010165338925249821212525721441983801709525461647778081520724941346022286583452669289107151982787713734408692237945827065297882569863342970127769336487340509799325598875365973454712733790078951996609724217107358919109734898409979570186584238151752007933961605179678197690704579007170066014664085125071889197385058759486226424607667586162027355919333230046215588526606696714870315334310105426583697101293136688582421845798879673855328036971954947771030055758931210309827928735545106124977195012962949975908587027933620118216160647014477301519950334256846096973433150261426057761472816901407132552387495336057440955178386920736126646245326721796511059004442113093187933959567692964942289895268666977648139636535930145273248425555553213037505577691760220653121732231019427952937487747611326448237454985879942745930055384340093882184447201603965450746699285060092537707698381108931945744404625415472221713308344205875175914117631768551425804100251216163392261134566649897406483529597543914724278186265990602162204221241003406891351758499161333487568151437802814498538748891111086346506704535540480197957291276905379794072411794142759970399132664709591684524084601129743946686249572564823697804728017006913057079430648314300001121663933637163378917157937871942083081623223118787565146060729077551574721496371558364447483527400972889759938011746861052590235956887165307893832766238246418370968860776685593129162000826631452725247249414477218970324950366069652457792175017639592649213873019517959488821914057650844530068342616393602175434236553596613406155834804262175090356301100868130767696766353136922779166222089784272539607942122886981114473580583240977040648068250550922704112753633581188516785171189765074024275797005032913567855590713954829866019069147049320167986376858848869486684848473498368953711386295281896221596766687564635338017064500716649660770197399063015769802630586016012786779363264650882837499700808407664037057680601241898823703429980812797160741740538786069355253653234612758461151178918034458820753771042192995995184965111314073821167626427326196279782830241617672943817264765495121171785381113087255394115198948004253265925103628502712969448469416202728849789832592142753961745591574235652623032917517747017469973704100492133417981941361463534767835347501354811058531736253522117569202221236055024094383941522206135165081691080956296962482449092968248546228899915033677839210695090143492894941765412779204000933037937849650486896561580301449255149904469586496401360926734878035018793541798493612958238547475756500047937787242504565317399545493402012633612313284594872356264040013562222265352592481120011267028584291288433764140714595656638836329011605945986748030024165616393821839519995619760882280050024819285827034430841187452292876111593374128075882305475114881718435730963221363777106475232060816281941300525741660220634871613057217574637391736839586893169840459878215424329883268463126870175450686290294137984335126019417326026832440555816141469138356599946151243178336015026384197048028622611617955921698842703960971448327679663456140329167829599695866637686045215180895454512558583593080115181038903901062404921134413020478479949472272017572341307797989166994127644375288670874240595890785256030666143730768188192933199929369717809150227834803903414655733452396567691269260637386906147858323442818717614143031855883294164661178355199145573725409214741886480744606761207201260613552853660548394318082568170222725444994797335307276132777568085076127100769527709625003146705777990639581948774840317222404596337639921863726426450507778804489780391809460272649287701656600726568857323139430635936189287294156886619739292880181711972053982159606296730669580911000906962373251948741916873595080059601328018446306124012592446878210079599447903388890777596280972987435866112777899864450265563531158891121552189592407624504561496950715119809802301282783806205361175960961940558238808464285097280776688972506707863498870413792437313684081090600168629074661399569730015860332086266228118884697357680966111548369015078790920782672020423627128021503677963176043092083334491783928919177225889607874616644600362671246728782858582627751820065280865926635407167692023052814569073152158951430403647549055278876975656806391919397216424297318762562461922585219797628533437645961030309911614059295711512041299288932134436522979201540774359114273384799966332131078020244793548398631869165677196028458953258051695724022440372347346740324252017341113229722409454086110814258245448323684597593273707701423991933400265399017670778280283462067685538446301806603577561871211892893324408224949733743733292600791656978004594728884186445294469246074839673465564700695325739785616973867511252429509757266782511362946685573443001812971203914849120651463039480645869649280270517772465293213014451568700367873971900439832646287745885353669851913194423366932450881653399795846624064204996986781628476305368009580001266536382339120009781463052153768813304162583484502063027926371197762533800572722369022087753783155883358499238360478211826894148169459127777967493234489330105560667933128689098478562254965113305571400275408246469316027959944519917379931868153358742132875180761731590662240889041044637493032082391472127576643700749555837995398755275131050253376984687214459195465794062938080907592880690680950333753298626743876743655500488260050799096073344673358563795497628393917358044089319578120779445721362698696357885819922005105270635529369591508951620286863576583675724830253240484294569368694520735898278457952861188655787478327659255467210281467519084967723433789449005873689124419206347791587191174195531670026262100311856276531040602203947095587694225688162125048786826950899064491151002604171771314736572517400785699189528943304070711427934574055548393432698172620939179796503203662127148622841984141814684104324737226473701886441219107271068588465362463109227733137268615087663660852328900598923207318990182013994526209752061516134534670372166599176741696234301922417500719692747387451425850754783154724901979225704384275290561556486862041969408816915875922828270926385252416629388430294923898000245175873911684091015132258996992364928296233599835827019210705821343625672810089014631197899716713388866834698657017096160525518242123584645849258820866732955931776571925499919228064459008506675608846664400776327182307601859538840542083561093634045214766364571472945436332734367411590692388065801204067407665995514361953468111777040698558110742113525176198080491568517566764817236360983056671144410985430461055371892388817418618536403028119363654798445731174619559512762416966936752224875873815397422792935736647302925136553335385029347524024094832915158579899530779498159511529487715571485187384795530782970245862483663188999664460262009922372864134641710660398058353595095258388457958064968237455304492561920962811256061233837260277866814741127897359929138888270030364825035364428600653902565832020565491557903782823104443455279825727116420244320465276911692793506529472831260150391128086609566681045520217773829812140636834346858354111956188294100390952536096742163700253453720785233924448847517420201697132232471809248718616238662465392096626357764902811255107610024960679299383200259354590890963197017672343095187186674199707417474814525051376221459548723656144634065016769235169646191433383536091533925350976974014286342125407982098178174024474332340780401004882269357167819623222278995065100910068344097688882699327269560963274413507651849832399693876003222165055767700681965927765516671383841586888328321493166577817492029095547453619797478280688085758759237631580937970132169155442267914118104719571387494487738220671161233208499780785211145363759347772000703247895702293201163090258566876665048808285241544556769278256439324464548372630843407918293881291035331103607486831772360120991699769616188261071771681573992324693564293287329841722396968066662936125362403576512042499765499225022230111369306431044680867139509829010824044104132917578802598972529575332311872245870702749378668208306070294767237900355011332120359323890983114081333502751291562793990253945608293782812695951617272524554690536609873020144700573458436977001567123844364076797002129000899312108834767348541774061719406751971329882127625634125713869170633667401920738570615385299400946733897603644066209081852582695611872343649181839155010114675964381585059026995995528715752714670577605036839147671985343461834564439938356242043035201381657941496293027855698368882367247034620998494822961579728765908616046860204903684192031201221354539667657640687180374850104439594187327637899277124875901859494346322699092510190749665659751684194710403278303863489516664408942896151053193511148361470230466472825431972751759971825497186008366887986891871095602650031913022832407505560714911808101186702241032281432901143929226775574096587096730131708426538653438924597545961637432879970359664774414141431392392634972568592279984227394026865327699250176400654404987979816230759657338178612287840266024451164360521746925953075140647783621618332513863059600743882789235664783833405775030071389213675496110680923652659471330616164664763998982884246119792385616880580819280314188630586416591486578452054649638797117257972362885621796477187870439194270908529345034501876723549306283388079871347836683802442110562343654750633561850237262115136770559939172077605903570994243130575607713231275424754608517594517507574733464414466607628414702781366030516836173685893177300172722820628659258164604927650416880552267374641946597057499129172158298097797239935509553463995868328639107694828706622378899571440600937596586246175123146351717129749821208703645802058534201857259963218924199507668213608549801861253380193880966119787533432725559438555211402330623146897366173281540211333539262202493938842388821048490919245290902968548008485488654043712117780260456284760502373114083301431923682003562981676578840899578093746977098464308159269487091971687626382708722465776466754273423465734590610854840690263849193584141309486914985546510377341378896809216045084092601554156379251805132694260643405405847713727226202611315348671313504451939676124587901682356277499806561448274518564543885413679280742143866481167329286640171988674189369574716236043629363400137206530571261722708275885962541184976430117883192470271813853743074600315455194378388904490375028177492781990417382043113010426698881061488408499767557107001407868562140093253106530627916004468748834470624369793100476388473054161215557830330149199377832774043498236165393838967618427651989864520704356251817495659687237210217952586611767147500197036194318410737538434138736522693250403875453655247606644044357997081723075603103251980294083934386089312718131378918821338655170605494814293319612028552339913905328980825547420251913767218103376740169152805135325580715346027602801586549929651261302365321189784241540541106092143111257538696807670626649057228062775956719361994407274533136495863853422655807403550063752741175906191796699198707744120252318912953004776809480482686733679526154309779289725729610924624986730860405407712928131502669691351485633541285551800075434176088785761724609935831288283422470409054614641852752026954734207476297215510099592935338246228743492239799733917754992727144377906399977293157072056797250361327938608660681785077878030752652517902210423158296163754585131340351405575536914600301923922198241871427907298848687321849731756729968476264615361191463277391314327136787027615582919457023986961970478175614147689107435454708905545939961737705738294333467218332831621448796323040295687506867877271350954347694705711214861870260733848142250589625264896115258714765862222829595059307141410070881923797291201819468142977605380357006321353909741625839591481054717012805791772785847368274876754621382590408376265666136621746804681841339002721127133496873127210596776505714496804852716641244336420725818518009213010734578382842275590505461972823838217443144487928848263881736950394758945134626920887629129344932411667310866300375560375192778700189696839371003193423941821325400519607141295038654990511409355939561438769083645042707576682316494286246222891088936378349195395606116605910382738096241538191560043120448881147023491717318704534649392830500521824633508461016173047485056034401428415162161425206672432206081242571427854463664651848120740001814769310195092888861025550055194649574732006663796986191703753201450331527684339456282611296872700464484891652463035962280844160593732482974676897583014435165532207170189870803308025903377292512899050759352873050319042702259758519214467849541201460005237543235772648137345665878092645239372936347762277169504459557854100176093084172766362947308806165714154753633332541260924295253579678120946215883874565051104158381439493777459293601288691524733318510755143659709403082717243025514848203092445017378275301350164969553217293035751744593292858209148238077948628966044960953052704889629603206311155201158720249371724539189643475943197598320174296753604643998079257470375396049911563849494189457951532228764447901475974816110175491646724599081985188878642861651106118208531853004247967092056935144789112782357007923367786306715617574264360258998134065314245817856029305803555769872758076380604960207596976140010090015641439698034023833256829705340436466401735667563765096437687649035221151403451065893682618996791219659548662742841660981197569471496173340677999663657806492262783502372101372797887092339278457337317727494114231342499881578077258753410105508879997614709164866873792686080983984407814029703115629606685462799970039260464226653356267523003386472062441400006419809826767791698450422084425248228794458808194476771184477697466251326167615586604017037825295750054321701302182553291106242604227862554321018512171068028975275858357902497491685335506308843840195834881599239830093349660250805387549123202180614595619789416019754549443294978621191767224630831154179792480841090149756251744991785949496309903061747276303756957454962365212999095896238568212118569723623881500840927583580748418199544828930969469392408778998609478653800040598864634303352591005295914035935077221215314019011579803825041034045595245561550042009444751412757689206821182736732399914117261052938104582915182318786420926624531085679013522145690199083167762171160846101401447552943067099521316791002169065506385909592782214219119741955602274127549750065466157670236518665437362892833781071575626165824992708511697211047692480746134782086146932493105300547983311123505146403454796630537571843106247362294456768896372719500815045250063527882216474094189292532549898057791303916235847460325805378357529603103517438651975567365000486816217765756257325970676967379008708127268164582266650296310424628293542777944359285747667997317626928560916493161019393128764243713218551376385719445300289141816804899572095461311172659830157455358189791054579095922475834355740894030446759962311673581355195023469016324583966595317276706428037115960893246654480653103915552721135625982884065840276944204935142427645939408042367023150003626471710039722121534321855347365540734501354490286502379292085648004658926754071576764562797271047473050177866878064230685966061171083303249617990037459046487707514826834070230249888193042613849586668458355952491163889748963374688225459468202343457648683705907493299834357661067262556307760992238407514445582471157581761791500604180677653969343580514253736030611771648010564749870427979876797323972868849368814265487315300618703880037764388867561923153857207795242862427486455917027619584746572461198413211554171166197567819578227031769189819660407838753459795464102969617883148908179538786893521555591470427816682637620803840264855902790554148425652184547512434129336439974225432921553264185949900833895479352505427375219923154055392005576616171004319093693242409830208014800216676405978346441955581653537938163758518297610832428133962184890521784348532140512134666159751875695505910807467978493694461612195852897378163214663293242341931060910570853594138036290935524027489060607662499301798694661813403322198592233904376825082593925850635052417226919807260174044676010744582769959336157899323872759625647012561868736571843098958379869867977646734457015905236173324054940337567626463860012046954995284525572110736559253159250366105171706453705190366277946811639877661652062459379985708983054859708238491727899069083661608090499714355956078085447523935384491951437260193828859154469191447418275535090478321188479981825524835943101395875545129861070964937639575843947509891365622239049274382781088211243016513929868202011175334737780563607937939534919171528964140093916578432297611371593390441619203300710492283940362561178885425411227412567342986920862797065318228786501913687660290655645130714154069472108897834839350931296088848629193288414030183594622491768096690465086080700930956750233095072055015870500300631850701046092663283380850410944309966869770761966138325788762802606058824677135629393651026669702956698821921738198726376248942318192702741548059929867740124006211627457032518722478323649888870042561675295837828670339609938290096613583977362781334369419291787046066544536002216019389032072970424214033294260494595568482016375310097872393497506074419178850852520403514748566192758626591128546071801264431545476674341849873441696592747701507148307949964794438085205661983284379824673548518435981424680107230668550542231612976225142419729786505090184458027244204444746113286774878214249106290204563741707776241422898983416169418263103289843200240627104194685825533221241979483720895367209079090207850386771789272898557672416278287095168341302758133474480169013954011691713808204667442667853786786048674684428857144119675131167350799454834875445574494780429144501028591376332897162088295505477467608023288583948039543573922856822843761298923128447525127797861963246330732791560367414043088405481092129662579831937870056178975008151331118230297598551391859960125490490128657058850815514895656763553852698692907381644249189878993214210696958431369531659064681933940582593155483705997837774996211657385680039632295582631937958172079579953590404937646423290756390547742011312537775166678002815731864561191755459848074988001551828475418010747236561640973420442899464273560476325815580247729616522623022415806744289973126560145642555280514312520170242608908804798808552210494840893676738646605138968675502396219563294857090353661272728646787337883180886548893114968978687010949652900475861951567450937310562871204003020894718019597389974545039087902573766941637175244169524113183304338181934901577882197764800778178015075567654258391166285133045317198567830581759847513556998308017589150391383791284388511732639835140594046937204086616817069734392718626459434145192471542869341824797302051829178888490852448483237630595933404904658968864845945407410449865208006595129228619488950137800264688943877660731176200439317291237320006876222635499748558822401422114776959284940928257964944667766363321545788116128824582564358609934162610649957661182680426982812397101071389364422609031528704449467432592804795784271659973538307252755137659637913218092956899605476369106194056747451805345951005195080238635900128338400301439505977235982340953011140124785576651787007151514445680795872660160808224918587110913005434381615927624186602271508534347279994850471410884284913722924793396456083015094875332651389967327573082209390496217532838831172454292090024003677513379658984775762475225028985923625465352365647892015694130254836487499215502372321503549528929935669203116987808523179813529240925728578467408504069761795952116304548733694363168342389827085947829201886221641020864662470378061859723451134427592267517200988502312472539262008695784040328469917253965159623023651333273830009353344163857245286655887753833235874107951856499357644115456072410253125043579982530140823756116868030638302545844214649888057343003797721814764962312684779883511817817937900308096586005125136697499685664144952793373031742047813038466454829832032596922706861060590282935781934182305221037158757273558352172784536297103716485772577711369228566481520076364934559712255305898712905583586972257346048024743506506266656932652521643411482461194139424739078715280326773298654256128446427187114229121282737745029154619286138924948484364337858509219526388291535165901494002771547556342325623426314669136249801017616352236458073696568060331571998124680565868120494806931761075547254919244621543757996459997462631946066696533262353406498430920303786381401507107367447693621680107195084536161256300735036819778540218914996024662723599237131231959129755996111105806942498649967089231148286240655378785377504893183827317501976387718014156564244042342714897960956624463156532395924792858811168419812650063466946569082165178019960719392457625401119061132742947254539327726415767954722451693209578170983704997091105768292803885298179966719570811963538737063510778770078707665076951456413639199729872007093826744087983487244386769336726771277486114301876026045338774402335090101772761200458433419673587259289164911405314445170274128761687802040706644722309855679536096582011196326777020645608524583094134928519785734073772704535537837690186042610101657397382206969984553179662316793690552814928461668072983504049399749931266287870980805088742053313041016413429963212400575038290054758368364861977711986442073231846209523607291298140832952600534596311275950467302578226517503104996765038397659678906584524263182481920169323814245052392935368557051035059506765178243316422538616014804011626561261263531369946901662099475838377383743597305325414278553500276378907324390731291366424781466252314945447449701976419163851172592126123238425361185051431647009300600734973346481044146586007311136936120650487469908501323656240006546114983452888929941472286570763202399397542294918148730389318492512938636629669381588172489591263289741496386999809548632498966284293525803364969155533067896846538876154523148991478700738503688666323819411183059854483254093387728877491220373995536349617675453945585697339788272609894157070888630756820593798659367970716842585168854163500374863167792970619184812204592948982018114088688080084592021263845443258675534410531099815779659530044830488409998394887616472970790582861556512612179911051013809648793630369406113808132329130932001365021879112467466653648205266072141581468163426854078159197408879142742898430871360980698489263550588540246733833234061664466513224762026216461494058238793575066817114230849285910668091364925288981139722587854821776736608346424507608466116298153151596820545474965045019451663426973113970278353583756352403125835042361027842968928926810163998884551733984752392787219255893817904665322368024900329003695127839763577826701855262022021389906552260748916900337264775515148285503818010994514853339553711830979954110873379366001034554318044788113104463693428681934889490008714362326436751457967158183573374491016630359002552610664512966546271638826098214605438921593556847600925722796175185856097429966492227736077982841002799717032344599576513509975001937808777546057084847594550691701109914873615796598860395492042830973824931540669459259943946679107020059363940949819722314524875758315606261972848432583675851443293584678347637020034982341571224603780287050851179011328389082641194757758120561649087153096111462058869398561466551019497814451599677924599963476500994996236388399611218642712932792354044236095684667311129963149760940708168545080784510964473724202924386048652944788945038030903377459820983700120904195810834250139569761745673586298518494286426774083945834451119713031724632601721046550349337106762076110672550230569274612776306815609120755245684977432485723607439483381102730955870768432495145101688096614571569154226705848972662120345184304976186832074854194585524287484081517576772482646631663980703138548063967456506843112393879290709924172926880528924487562565717124058834716816888266181308411572363166257116940670439738130470734114918000348622944355672088058141577263384268762284866290870068130872022062089268637533518486444327836037867384985628520074316833033300857578817210019568706354896193515793473957573108188146877851182961553950014352865710031821761522039157023165129126113661027317592809459924958078994554186552529715720937138198175715936459371895663304195595619502457281311524044815152141197756673653536809701878165295312806862040667378902714310840146058935765575549910541174955948455751846750339178398886572991776594120404858264528783909726457282321516664123551306139236793757473365086689219448126694890901720724155319647780232414335607550617251954781976552790470130501500123772505151574160046969095342905854502865533902133320715944738456044736814823642205466125138082277337837029558539117639560897647370390183730799881348600845610464729429375862094931868163837856191682839698622016248047723552768953819264243344336060333256002265426921413490596203887881301485889634913664526801712674549998386377315919497449633219680302185826480029875171633202146654590899735867715276173433479271494991605938324391406928875386416138172500972613129439146221233513540034322707926960443733869575245421431112140227669674595439417564531346492397122258251350024650029138244185540653999391341605405785131174173270542594932376912047647853982771168360670077334148207904006009659506057874275926398048723391463372693112755125587362385006346981351634210784591928373087346251768695397738233983801850047786275021940581919246607757998085805279993084660949078783306931586149342093615750053469974829269263303978435884137969029869526098985184706187092169101121826694179203761866423665113386374969089329638212272484160976462480197946182144711442571742774021463474409078585985042935569090625543832909989008824526674463690519552161920474331269967255026965430950476319817736074821954797212987477377688264914136195502004168502110897429083765839040307851504352111455208748828646667319546681005296401822432867405112117532093911561320118606188670250382343313068522914736948050853715657723959501581585531293161702726936383562164626613457175301612085353027468051642400332952948693914846033430567420708801529228221601584600174931266828391014852650014293329083405430767422458634700019811224568856086158307326140115778340462291076429056993843884672454337519589956040852449976670480360720858061432150025354874779634631859052576639738370861688998800928468014202593001937351343177572239491673751275083367685698385174668750152793729510472266502687024703803967182433615948294508668688389159223137720598824752673123342158008402931259973150228555222111416924755300453851374881405712098619845093913415835578199047631831597866059574721475036440040750285352166849091814558809974058351101950287167955376908110495159428549821942252743255554345284094471519343756795342264219306967222081647455164145845143213977453985087148235659978995819126693807834209682406532536799499420071159517207780686936071215242519338105884487884569986828073903372204961515130645532791779101640342049688716634846711739262790828110755773449638991860118164854437471278610240737306521705244712969238040707770645369315558449295571314730097810652016640210387796533233905811486894221008002647661812986994277531859966150557231327621862667071201447979896748463786599379230434000742992011405540177658140766522912374843132525985418372856845288955430450003634183556846978643244120004257741827169664590553246434911749571125585284079313195460833920037313991587067065721118314717808135336711017791305300216336149878352253243404187776613971712434362132766943155380056667846946212923405639639225696335547117340508517560403653262791075659157839121846184588111185242711603247647633951370494648309720599078980373956202679553812003495357784020632005634422544335805036704553510620243592964248515866320653634239283966683094104649020112889912873483089216904382442126083057396192187518457131270245976839490926486260245966335282106493441784893695633235188826994502383029926873733687020606329801377889998375443022399212628878383660847004227648189415161162036582602130436522115966052951391348552699338855073196333163481411548959544485328763034303974578783988847957269272808613009805418004916480375356565284624632608103788400403713107677435724086228057800369960222007552677370841187774474796811641669489335132573844078071740459297492713278860554410456420793280243124466261769957521185329234401945617830470174863615371516933408574766626339131376343674442618085757504233168634115689311314524621451612749076041437366782320696103647121476293735436364707802578260971839093016566371404766177393509637969593341820726643170961573614110176552688606133584875327136362293375130853908193414417569820857543295056017857238607315474955984428303666731040490036896524418014731401408177449477219227145281124986512155498092692172354653288536976363468650985469667405423930076399289759828534115412761140792475210819165276482171394569244560909564408930664768716377234455524888346631111497207412298687901608929557532980195067077329407622601590625208681288147924145006242239061787794531049680014456498968573994868354599045532956049228040624093846798129782144529274598192014939437769354660733762054116393626808590831323896911275569571960028255742497650976735538555136191210517447690851232828255897732959920565103929707223597354547104807849966316065608059801890039630674957664691583871625630987068877034550044046339528115437584548053148944661092282603305232553326774830030500008878231487845989962214014121873885101818167979356165436503791024389031869183694479634413530166207965140496433296088027068465481529722346974893930530268366866472356013286751801867894675954157117762821489108889807920887317321192002501621840878660167915863678793690411236382183516481566525515935467601460019154118468196014402470216320107740790896827029928073098649400943530788225486267328452659190148538338000521371852150608071405021717678137272598797103355908875599426605234507562076674392775276347750533240127255447564736101440844117531439182635528177540788628725178194421279106636632285310694224832913684975771436912912288563616948444242195554179403909272522665359555996871967612038227096903945954456506300859770350499095139119121097916031131245282762599063476360855445801193741979535476924904026686550977106417480947233410031393172060689575666383716559940483970278922006499830294356975841086332116813163937714759024895023966904330106948542847793101948241007510082923630670794728601084233407015084722045946696195652751859240765213535318255311697696118255040642945669320165125892077678289873805655437950889563983346771111625315797683572576166532202191423010923411593781758354893702522870162973716565111310067562641351356089127587682080291328112443656275339584341994793153059214823123563982083772079183022397482373958075115655583672153236940923940687543094798545647917766501745330090891535486343798915832298002158022779741181844824390763488268914008768982975406434240653432367773212967865369977439645058611498521965396801147516166144715927306424943375021502615164941850931358361560093406767812232423754283694668448469495325611207931199710627592843779213964342453448102436913746080760982811103564729358350475915900629370736015106724059434565005020107138369766697139621007189743261811481150639918045601303670455780349886724264480153526747652328287647649372865023548613320069779683523101170359304854881194606341054025981166887328072195917662095523561237253243894231422685238751855671354631255790071014712269787406622519642657664525652407750341891910573695787357808906426717853790420284018463945260508173076615585626390144962934264426766833442698029767942907821108747624467036078728766766930997727004622050681044318825285134138892980869771869794663938962735287606378098144900876130790454903797595914296214094153611357395424079277940376558237448201034411295217499240342656120716627974730708649303419868592634500380141242680589774947175541089753532752559605649197654999498597581707015110380168889609802134852707611835350791560047666047803847959277677197196685863623232609558088778536386952888601819559857154120352487564036159121547166388188042624793755824897486215437093024961664387094149781373314357289623422343697951007505119568273922937524399915577520190094677581738594140378784062036698632056542160038056548495099733861782662248274426880216906235579812345031674936022667327137973513135979224073392093888711005505466652161535173273655137061498219628505248677572862154333586387276823709815122442405943256472085864342963981893716610253845169135386358247013833861291223060282937047528003476546879158311231958106519737689283330399449715243170095511627294221333388305027041090359794675246648311131545342357364287034763999890534246867898836926746596645075231739027470996826020871872725563124740591989026089309451834565778669383798400687632632704178037901020021350280097562299004499162939365226595213668344622813403353061171958960406065641903592412910411919013241703150741608656621072314164620955944824958805859339714920593987972467497386961974904622931271665795165920436743858656388431559742284498796273335666983124970248486095465533011180715190416049413472863599054684856189763664515147405787137788641748002849807411744705443503512812403966364059273369436615114448533402487902511554582525692077953047825565827505593524565566398267365765707904298677440873247697803201480185585224929822205814657556158969136013096703950674394719672380766083493049511017689567424509686401931349408417044314928115482997592202049241821878402639432424031216197940649747571284278548243269611998202757795962647990609948826621678105913048127067093672866581571867635667917024147455365107035096203166559848869885948843619506346931964373438703138188195694089110118600702945964166526264255105249576891931771149777905029640822179889949122086291600044296083508494286571815799839097751757116778443528029208049361343518364237347257181839921517191992138362211475587138870251574355995909713692438187759474415354231094807873869275576987339116393412167635868600774629565814489122919449112832962487397097657648686836137735633127761986838875763777901909694822838103429493792950247418784703370240088842189021657078821090893541540014129645854720159868735145298905320050484540381438292638094648228128030458324723098734954725518453447080450955508727080060304704446674970384432399837601395387213836497752558830459649583412771081100238929499803653470624080972607582217568508741714868937804035379764572163168354196296516157356656116780626939040166239292806037463449914146805460520745791751448764827218228831216754553254321826012003066621969830032264470066286423762764014499164387085514689009146081747031228863649733188859621154293920779042974223410115700900084509102408586770238459577103929698943949591641871134642545465105715247478931756243489254616148609496667307611204157946048472512496678463258230054484717443567242179927023622681567438215993814753513718912305112486627241229237010708296476246181676830805356300232451346272538394876371637523430179520361473224988815350137508693149957063492997979450224536014559532043278424699214603468571826548801875041556200582356472447251944646959845904696949046332802021515400465601778971951488099215003969443662052348089987134596896560635147612633270630077701829553306284778260600445253239041466141916744026648162107266520994901293064575284163528292672271125295272241073316312727856028764055640850511753328079645568298311286719070043733687044612647847172805500454990390160492558457631835949659716977546204839225317637858611168072852425812060264318469107465087729633659259782788942566086166390935315038295998211487287358723784874683541566596077719858304145971760541372055829036170026730222299043031411977643664916645656487663660535490003343863479828830477148879261616760414038023044734959511635311210888806893964115048169303368462516648760327315148478470013654891860872529630897864417950692031637650106419843524482245893420258163330701745950191118436504315536839957829634883202161943074565868835596737573040987884837403798646656124556113164714987017107646130692224331346916749060178840511915123292172680028249084122154181429886119799759939153569085438110432860071590923063746791497343536714554846169819311790530251865398894060193590954448189409353390155696338250826537481764596036704421056934653035976961796666197852449187516765009975812485389123156790639315190191831652912826636147599234719305643892043537639807967178973739586842706419628330831522731084275140599384849874009296018403148592703203304958653732337277700904981201955447120012224359640387390452565805391819428521073336104515972262786690556174141099707423417093381392677092973466154525222841800633018106034699930841691782298573154866506077142927131799505443069815994160647734805281706045424633278190722190536662678399986551319562857775309393204418746902511218206717209077570708909906506827572215156647955208466020015864599479260293671628889854794421910117749112501332916440743751954371140677391096683806720365325947098688563201240600986869875637867619380544468628786779123685390589413918021972788025259686531037099700114897050412842011647233061952989359075458137320920236309443540219087460548533023210375557673621672835930899362053690858420108598394393464938922312354393844840283103000241452113432217119211600301186602281995884795175706439120104098962338932533921460125393913454770313609402653950705185982245620575933817850937431781875347553584342101320053968204287679758260570294313423396999148272632020858552244079974668719135129363397391272949860275606979077544132661251904577993616541556983829703442146035211457858211515961062671615661109429063972033897954739017438738835604409066229322466404775615452760375635100365292076638676272583682958534104226442263880408275590017709624700352485853338948734503832555031595424056641789496181153183874062951994154452167515401997045631208060413378341311771120506561142070752243618535033975020640440115140237203958963953477023103802513627469882490863577090912861259359084958884470859208076989597828917749455166837410177267862396973102614201355040213498899317363787391942646561935967814913299390627276327346067598390528828452631050810283978611616598192941208154213929884836137742327531083369700124805449382614400740774366772200620129817916954759741959116734836113540279783607140532924159083678206136952684787886957615709602219272442032070558692931543948840139468921568544360051155034165538295773436742746116067677920516522572604791671854567208756194569698757794705858248017020686607494495086893495633583923986547044404328421428360951256546262559909532915224432419893791999819045073645585496046114185549440791080705782273577565844218630136867110929274229741841988240929442159633517256124093668063584736506815453956888678445992196529932777256780508570291696659207368605114471374899466798153482948699240601984191050335817911804714633826891156732900918548691950956032550698224606455983662199116363419691593874804593129733926741640671834247724175401486278341754028827281141262933823157561515163753579904734274575778359751380122553756776243289964353565641394610203437723687072448125144723973147919029411336042815076847315015750626836440320629334048590206818262167283573609007416052522359906704054284120093556837070558366265343777160830933669210762569819698829252214815413771697082857172774869569934147499070481114841281214908881172423254084891897111451725900749833093910213374431833108592981486728577091940791612188158489488465061567974642341976916792503800263567897228020252505917998581962417514785150217872232536911889137105876426558393310141998573882079204398658936338931039685339422394515922624082231166300982693390634560286187601323117490948129466820386858133951443591404653512814056188275663945944966651732316006936982417403418943407791684197901382288453280965344979103684297942855005564888326721880567303535615863950875456441011246669406837553463985072172218518468848490094231835940269613132808701729565785030335660662293306581638270519591886389461982105001535279203360334658047900666934589823408992604647506150769734367994576061733677733847878365530949660116117830544551413694531475695629141016912502299089163698487794834976696172151173780475327372985005399608620980554400055238323833941084149632290940588529798908568298601044093922556684041660743770790353836147570458037244034361369091041295761147498456998521652790191683355625328966647195577884095845005701154411739472168698434038829145427358665006907580760925402100372658448739977357270177174225494276272213897468375422543680275331678025140514475474392278619022675673727955449617392665279230159452803665692359103584482261110124239933269571688027127712512745743955186343292905602835419177059979233380621005109082275403681802157389327273266309331756647628709164165349727634666411109347781863958986126115307710148026609023203463440651369192673017158278415053119153041596593426783711131742503020218987996876734179427589551648366608853040988043408785032636916746405465822396264647817355626638124871652540033361409993883358125577071312470106116489327940642003163777589519176550841097217845794451021863286946321303124245083632168482989799488316334778490914285893853592847905134876616205297989520276828160914015970147465760332221383532309954500861147303388135413318536261647319791436047103314749927471707270675145623643181326582988184193297377143105037699631305339982649934345781883671449762619409717716302645603711993152966158828107334999500573152256556890318546670170497663797799292751337845265193163116322656626722861213486493880870712046051628042000483010871608580739023573134629474793668779825921279580960103584195982463921879330573169120353749038105879905825194419470594800621121564853134393444396759786381804690881092408981053978432926016941651788278575786378819253140141256796550198872802771903963505051627565015333409592912702585208571366729814511335819217441390507234900761494483871476005529826371150744502356354988677480245132775735943771798574577036560446050317616792718189017052512822922805164060188021684965303619536574019051674126050891134641950539128557962898263331296602597692690388263342382305160431742857742227444314322527674739895686042782073446893428788356762673065756844820343140764575102023172820880810254456344677990045362833621559237538731609840633022593682451314517874664847291074898320306138731700896841389699651898594942629533926865927308651107788071246696129783063981175104425799002566440599609389260525460683036751452512370254226443264933578928265947888401644000244709172772477588193476569915431755955224859903619930429999578004234473814786937524697148621140891335027669659920267998593705518934410479772710438529499118164437176324760631176495760264271439962484680520521057640321214157478906507316029027606228016113723490343495647283987474461366030995289261794216791792678265910750457074207086941062187401301940264458862000802626726770866162323823812578263902935579102238597621761105624009239652406523384542088385801102279333724660809709264473900553843942845532322325533966896754701282839329429533716964662778880338800238463764422227288853505003464303562194152179812142284769038819400327939326868315353538194655817031299886695065685031210611150414899809311574401128186197197491974353020940831071430444718783974862415030662103125732690077652451700361548782464068746732633357093640428246222260424836931786495884929674164050162311568337220381615032388194344453546780815715505334396917939109565481847847407919799254406124812524701570744541034786772029073815608333117872260891368825405496980882721043172291254612373332726115868588498496428326343868118080815573582754005291504151735637915211948985945632647354569030733673748681796250113087205470265522174301219923973959089728821102313895794168864825763289401810731557088843317378094017182002059201148632240719922184961440244415132602930904257124584076212231205435824890152981358996679437912255307330501170090795267662237803047131308667647200977615738577543532848971794738230419063782780271519829844481622359719342468055736974274766927027482606901992805602488920156750221798675840973160326945682542216762526603120479390788752520119774757105730847482872483603402745441608444473311577878147622056536001137209763052538636343948012330017048612032921462046419440255100125667717270984670458701297048611755894230724088033205047571463498151091853784890103308458720810870795266437290725845642166244761098730485435150942092309029866629034859829900334833425720415642290779233038187335361730905282567635837270776995118683211088211208361624823940552837347470589699642040027993947354648539127336592821212421154669183704549640462143827243356438583284563105593232057238827715744248101305838097374788446745397082657181079825635334530777082769744853294967958880459689946418641062591970375145660231412177358009687751017953523811296036501110778786496374722509188050561728576131576000944209474689275474060853325730405786510556580609728543015507034655970497624157125016775274370130438735841815933256076042241156899561979572674306685243156236134185424654749581125661161095499891333925804008384892278346442628827318083152313634628877817255479246406202563678436921602791325683437538283720528386497654701457699608955947584330629755884867590884040686901905758148854958949344165643415123956654937270297964746250970518716575338476028051748473232517557134601010519619039590431200729947574144034995915467123374369803119061737880633304552804375992549394487328312075508847153357294704333762569221036270879181886601677029388133346887130186449214521823450135016284338287230570720333008680786965988153609186305768917639127410680123519840448636252555250738354205846215940862169913573800226105119569160420171204938040239603477648535363319657388746226349489084250058863884913131571293946005476495831788573730661459665875409517745761897984004934292103375172921949184593439451890594585147025282885924266535027190862623603754402955988087391196838005107003541550757817889114789260020364845421514607108137072073953667330090053343839328982604954300381586380000272290345511364668279683774811815448333242749099468018192013074939994470403046639313896050043807445461864617231622240184725204032772231767096795298889870966185293334186655269854249193773809434906578608305877294482827568344605953403822164966443299103620750416154551861042756434442214931010451046162161388582188165285266751904675010268021969658042137891024166808887013771419322565450098083838381873078750529603575184764222953557652316593545146477094516387647506520035952792922164692575719618115055404396464340132652492083965780323116956495174975597455581433278215050437358958823081083289660817018287899860465120698469199547542644708931360252130678854903595076968737608254915629336367330240351713655727023946495485948793727010642278141198101201597962686968621505720286526639328235258952099532624255269436711916384204600221658967415784492351621740331825396585899204690819373534935850896524070729241240201982313622760452833272181806076463483857553751398682671672124172173300936814636042819629660315543084568730151150737953920475915052470852947409336124664932163102760459355686454446018680996336402459759739732813853544135112190657369910258061530654594298598197958385622253155568681193513723989750770795152638817705363436412650998496039243188708488254846457513475123672631673580927304496071898907748961462910432537615593327473117238812012759628056349452791475942551818161512038349670761561515957231835235221108425194265058697942296709804158450918280552421374708320410195981406190105717700172622198615751961264133304071582243268109928092800502745339992621876678041569399352180728078939594453943799349895848019960939348147554354348369360026494291277904160823603021829196524441634841469615529533273590162284924965712528254763347571167403796124399651647996009321358776339560664633471822234879376480229671684925979451224642484986567123284460902377353790315810770230357340403793680856074468353223748221502860419238328444379428255550564207719498719237631249517340756169134819775699231143129442896531627998294346499737075714518664543525156454963471993412566962041262411204461162336129196889001037340762342552007770939363232991939982899949498375514190976002819358853059714560685410458336410529184946748596889807702530532746233164589533534733898142288776244229553028717447098939332899906458329355235695061047560981871791527148484779768115713621436619429932890856320558836163985061272377805403957097324494949784427916114123480247894706030271478181370490202003160476682487458623556825892980454070155088911372145022068097157983197821354320883418129433480327056982975575651631417061693621269456250225874999510643640154432258666183605128247530600467727196957493477303804318937789652696557534358713190319295130355590942246494716152721240693854577540845651372095541544219938458745529670339773694541265804933379405313584883515900057535034743730616741504045213830203930862480531718358877917868447804577909106253176058714733954370680320878894106471271459219011457753783312774379992245935462485693737927235062896947721706644058483200255689365496411467105900128689841433966220581069085700784921786357121642686026294266052386420942071392541278332958609031086680357303633964757707633650712315035247357962839927213467390222749905099644902540846258389165166616017132556692224083287300729366579564208832161497473313465763667199733326442658286493362874566828145014740255833409013718080209835925388015673810307379982101038513268545748170673562238544141002064549780479497633289827676295011201826082500945180662662576536537504490587024407182849367584599201510771903460221261189894436379122428724795253333121543979163105423224657432540546705998414170915400932353646331892227192883922866653993963074713268610805294562778295695800655819066676458774949487854517026162591476467920974710234530528223088799288239064465855295569190117799163489591636975358364707830057549765177952287976239827820657235935871405703706750451209324318954253973280781642918552483917103693270810607893943841950503381443661106318263767020333492159311155217622967833538393346304550676328061523932728920575281232448405659911586843986694158184223347933191828228205076678452015480300828922959150215805652335921465059486683343711336592586561307931261643717520653558479935102349698507324814600150650450992322154503204870109074604085244532174279700027172669174028377449076793501610372137649014773010566258810811389934796895756074595678164926751449492174705271470173911403577949258531305375971923154906619210669377444003916264819979393896230404979058080844971042123837966321943443596516026591912127026895410281225372172641267013835708929624297071801145941492569228576013130320889056856227665706565134791686461807603581729275984874491753280870314153172814108392798794842771780282576035160347951695952192888451828410698992256332935818005769203216732699965307087047252414664026105103682708836727378110235685474493355241517087649433782581829141819473005006440392011087347087633966997150772750177306286276648176368690306090492117563651927759622176101102261042841826444044239775491855001501898788920009155426632265590282586671441531972730869439952367272246869258743211323867037897277269341826814632672000909231468017091892033122540513816819916005869795441170210424421952284314818215119062766056381974031928348268490799082018829668703394429127187516259644499642182200574959128382187154929809413448326057706790893281935279901624469873324436479015420259224116304829218377035101838006256177240888482331265125118976657942950640330096324198007663697193974535513120018625536513353667979494091707081943021185875884632894370678635808448355275972012027850088447236775853395932612923573205331101647268220896110684903181169065458262496989095459655874008673150737856426157031172155874799046072862356072087784662214173867077560308214140216527189626321511517358809709519532625930715566177827104877820893061138276890137120120394773469087129716035928256433482538269232014442289680939424528314274660528199402522883772651684225950293149083667763858708503669551953341916420082903753509408317787614843682332807842639083195668408971370515985484213816756040647346960286546268363991023186660248384169569313023702868847313841076686035342928352796129291785061486643576854051883257862178604924009170488937685657347753795276716526170287084438471378692837557513227018528483812811942922810680925350324250429788481750411479744036717199813927806063493482983145101992107548175362766656922239379443904336489653692616152603868350336275092058875947352871188270945772683157154633264229072127424636877933460830348012077222250069095706523055275679780376542296466905424832575592426140785141620743155550807315185504855099492426155734172151206255902609996010784685446213114146353944120948949297980878996096554007718907803128406100663144347620919047736536939243672988477625578408737471525717514231013473644113548386955867996468481093940525579006212584544936747093177371995525960508460619438782622271226479866233079039204083812363329572344266778342703724920503009329212922233630213734035506844572988896593577788035100746335679765354574896617247659038868948005030791523646915876718787857535792251713891501703840516136256260651802889088748696692048438906093691977409010715475445326948392501110519150004786250012052350984649735456692925709952452598682031566281651567357670706515290292464972204599331853892048973944844847474414322242207798853244234616473720577136142487736947849540656410854678557769883862217541318902748636593188739185984072654777350947952910615654555391806958457121845890829862786638945014531919905510005968425933272136213186621797651383854823064515415406824814011388922244648954969419691291612512446182471848799466060685738412840977561158824877826241378250993194453505015357110922019301324405179355227829798724839725280117733683184660428948126862397270556982177397125230181730166290878050550192281589518529671920187568705125291922111851507696328362527742068503198190063263992728655455299282293806983908652840581050791214086612830532600352190933620944725736358687269053487142485762961647993842282723658437370026197430051142209764626732434577974081436857688696938302964418137433926901792142691725077362628296644165703891784507446080247278301744210193163990195171327296336830762880351603424175492817802615862345507493184062357294624579155674068120964677733794005341866873975465400113479418914557028855027988837981273532112786621306628687686720892298546238488625287900275885060470554345124078292893672528313221647617205662613828691394913994357870632817627638140985406344144243013924566087381757459776674600537822496811062181917429045110787304560658722983005713605817380433681233265203779081738655946789258914542584825070216905717125926745650445317060942497266541923422988743497676253477151514449347718788094805760165307638425745635385741458045612663499254570710148071805749537997217279618129487025318410263452755387039604847934064808832054140587796720011606514306464584985057578376477684012484874394814255799463992094413863040514329606640905077102162441232852357408711016851695518171408628786769799309390675510251994524122750048372046786878675338926100766636766419199785961915871215855479705242030561325584328018774314653291403927227113218985328602569576784747712976000494391492950701299954494270357436244318082117105021679133479290528886984404801225910915261690386473179765493040316574892908935856189934740741976109071457145770619145172182934642989053156590119798115996207034629885710585458150598707299752714860518082356171055224371719816230732367901507873138333373810209653143228502871752146551403498547024882485324209861272464108242526653588093779080054260441508631568907412698032496496681375308500718421224865038909140056323907603123235054306972686897880598371843228342056033047634774547415549451321905853727295434368730202294436773000494871924690476334048251221501052870547284230511886704269352032136417094517062556520405327020855729578970088903236675891970314897518589080387110979636739543423733651032463749200083558566531697164252808942507189937728674471733687731045167721257543713769687378931917759759247923714308495071200278521514017704335469631644393854936363182528168302949467344695467036348787731062630905047273561790032898699167357621757171061800239457653619771293998157656100220095177922893077588305919468963067880587633950654031718301042154745872729350282421995865887117491680645976946663639201278222557927146200834097234073733636835592654780252613608894642996313602010259302211144561803085323496895354475758755539024331505329328706474384135828185228823613188530418574108534275974834548627638699863159624347574507774439416678689929653320998880700905184467745692125938309621529194977683012715830062271620437294796743738248713836214774057033258356908980416587589871079182236189586848589784322862667628945447000809789583323863425161128319642716538025558642435139860204904007629993362111064949853989711506902133675718470644669046768136290149094337751455728902787087844663974430158386870336853625248995249135432639538355310146298972908585624383002025597828288455388266030438860840469551405768904351961750969277581810498471634443097160437421651096797955530523802380935310177540212455371050410512337638281063012823613078724967452321604568963677376924147194718171791840886584072197423849441866080292204129123807982158147287146876641911308119869301955555925918370304742364301343112910173042110769659510773107185720197432104304937644420109558860107125109312981444928018968919562139457998351847208851534537366380256651311749075711367182125386370143187637600036930019442220896790763256121134358099025639764969675703160028718193874749954420073240916505733401102005612682159067220633541291082441699413981534403112775514081797728085393443018944983926270100974508131577744895536277300747952828373281129533319286980354184061858210232604353694841843860104738799211844312902631480731425979256541368664865534856681488138813771620170126844348250678348521797716448016696143459226833574512054274914479029981640402143746238263361231969163549014360599685170921310701920389185690622835843620462210316297417182722670070772971642468484617735698540998420186308995764189836793124548251879334934398339488500170196118202297301799839100031003915649209247855074577279982875685406623039457474272128848023245602954858104212433204648056389651273752781853446608771602551675808296042649017859466202550753310833034788957345114460358260019540274376589673531059192028808815949216523910328227271043013276751427386282386385395194097770323819672147025422816910993868109066882000148408547555231409242345849679098290043682758364509518730740447127744483142923725067095016904547421448123515702658552391513349818990578225572820838534193887073716735204543171983654734093273124286579364844158215339147552606582472183240802869684051135809777500396156328707713557050331932346925761430563953204115629493062581756341009186855093291205866247083042403917774818984641191143609338878061097954159908984194744016784835384327903887898706760578114462076593239701054298071296829148739567859934520579094380465871332227509205482193410385405816451782353352804395653824752614939267647723460089095394974453714130598291275356370623880197206872939391045479541526538753244032885307355149240508704187457050410904828798491351020092750683737490031156184381851876740428851775695305258292485595261352265544865213405385339349726048027679366569330042896602913796148526211812305941414033751077925148354062713350113551951626079956571318554519067653155801552230601595228914466706786331377073620202024230686820579714848834209568304356445325411067910152457488355594176154216962058339495833662870599880245168941670522798621669701814425233102906837054719756784533435555506379268853910261981830769152187797229851796682103595826502872266201620012428312733940395792597112320065521902199757113310961803480671478104707427948961619880030978240254003365357634542137439595341145707936591794462697635670389687809370012988636621419461411286398555778917491402750084985532468101986228238586314969006367701444639214802934294149025481166581646810519157096267340994400254729891412047896354729402586009398387445512909925620343598558635389378198797977079669927508218898099550615752183663420042171575873859414255405482189868311081888960928158855995724408971799303813357070777673109728641059284879841808511360080180064830570514739088309958437945754871715581608109499973593103815809153601580461896832847967452848869174862919087633085462488943510963984297149390978398938433300194794980766257180094644567936205279963168560103244133967971510272736860439917931733166298935683442599282803386864354875961321083548322990453843613835466784759144179879970678130717758410289057326430247939101732540076419338219005505116881786944096955888231944187160341619920479027780877227506384016333871170723122333482755460255740206653588383368719053349417992803923648320162183502171520245371326806659490352701185473900181876772131523966742529717539072981420498257580159733803910036942186853517116417411695224634720373373461197299981460775315154710442943802207386877883187635314701228597355736936471818697134318489979333139282587018747383619103039779850978330744677574926961264820711732485436072196055597254051586809905488629768754615248884140488914805752100855447992660233678782303700669144090062667230811022153286977426599508770454396334560506581638051187893676524464047803885154365269505669433122105502348252632277587137219838653635719568260627104673719923300531277041149994094649912853254422877478751189532543861751007782386454402789981384189724070581204940581464514575021612399823754523440598887274810351936828161413442831303440078208104296691407493428534071547776510901080190730577276756006620012104785409722836126109615744503703213372850418866090734288086455597052921566543263382248455590447868230632777980343990239189995478642360330863763321277867722116872820120832845591994427052120830368080408496999873157109727018167115919924821005692263067234837233119876630627396725943817026309080310863431456269923562763944908778476640218128708472058854590912705275150377768878110090201127792570752548837338247719136248690835600592662018947323091902186711194812496390191277627240636873404181887051449198321026578022769168077139741326902429716136470383306803881770331502796093550827900507013499455833753093429188343314094795162642616793585322099402885149593807668552544261924792207351493287156460611248840200824945139446570246737415980861032897605342708330204069938654933650557562057175792702421678423915049436178452914417578669342972049920267681674449677916187447180295404915565568410594125779072784849356858526158548410613230651513584805982865629730664985643811586452222019037391577220281222204714799759785291413696849375713585917206826451947010169919961356813583398305516610494085126590076225497699400095668679066828393895595927500419468701365507771977517676561486784162103938999503652197708146858844936120663692916698735332154672168642689721737033471865726699389070310085178734746377815739511049599305432525618025020207088549780785993869069515564984408466937716287789268531026025225813809428401672735222552991844664168064873187323156776724055892525657465179518480852981701193372383983462059383104285554911050340683276768409588258411901313595902089074955941619637501367013765341742127046436875961624053571462876058515274752105913317827315949156641565735821811164215302570918851996241596416665386721003206653105032494356560187761740404586535250623110520257237458667892518306411741963960375826431444976795239115393174160644289039383688419662380254252372148575961522555369859703915565290648141914381048208078437162291181256474187884755369033904645981526746996215900443075492585205779988172317289854208909032936031898495478347457546178316804654760776487564467517340583018467532713536833373621723152786018194180685448153944336429504345339490008165213812759918592424871333530571580091987695079268247572521791685176069385229262597249610310133214171501845844703560121660346008103565224975167744838782098845241973319645595292602115537974370131150105396407401946431370653781429504772495969407446175303539805986123342188533797527194410953083600169361691333000187807382929531678058807717722086825053112460110382740025368272681400071949712538136762754165130794631660997909029025193396201933734665955514998871711989587147523602463815005447686277347272840618540218260820070338950244596770613930866931339613243233294471436823367684061428322712525067749700553340474743199173867004885776917510038645881011747668520200748201671155586452127114607738648322654117300850262850310369497387718249307287072517427990072455983851462043358776242171536094111521532748019267207551477102776255156603702033220140558824377846982421648497786724311625049593310971419928811369467944615878945318335649352130998035018694447201558245731896383498148283205027553259839111865024475549907618237954383318009419033700988898787056948459119922128415022119516754234984117431787074692878448445018003358656409564558912520741368423458887383210586830805370856682200330634552082079739943845482379760158272730362448776250714580410957029277032753424815903341809061437995564603450013498633664776528632957579868795769983463616233901123985796320171986980869788239093220919565812286284064151921995551668409446530060399103029178344517057659485192459907626883290301585817586991491719183513202564807959488978380857149055548816001753277702612976002362859223550791055019523152607748001653950610978830779746085618931975240039136395006935007824174674741749142143730709628619644274115114733530860485740585711560211108737755466202109128719616915623842559955808748023790957613286363062926253752538876242391617468548346506674382567667868920646677619530395804473209280254931609058437562008117872534364856915308582710016512625280838504712748854596888049345768172098684787568479418789843627134936346644264000790792556006906404591330148848728405865627037401421725539085507525196520389059213033479499957067860683530035001086041828827053589402991841246916325696871335874876385955104769881279997600130488195535160617597381792862119454078190492082471797839778812852904748520331462908486135332597236891200149594655493446992799541667837861618154564962311693197712443768667576555466233080203563905060041926977483502918673692373809963842336814858340797281974911365816320861205910205252559722030280396579663871039015952045998918302316263925291912649458560102940230135980752434113929199978742891515216563779938832171480021216600793249331429797455319962599095952787947774542392158548574592343788583713009284827599354924160510483929651396047868525102648337082512696111907158051531696558967651422777302993885199042832115741306300589244572619043832788990450061272336645685917570989104199320337611281862512927717041304341257379847034362825082526318697326901207353161261899527000776332175180870055682533113664057581506088270848912855993571936725376792321251298467407265417386044716574161424935224429020831215494862272728672014176964767594513028862528557913010278489632700612139004322240233058750380363503053084054589328188359453118052720920210340223514636012639825364367301506355436255234565872426403728134521579908942245780916289172845056682206438434640069973500402829151212145828524483187954077412823710567174615835185313403713435544980238662583694191866279826543247253036746477754608921108464323763544279501135821978187202350922366895986742400485154236155273417057620515025476208318667468436211689647535885079865085650088822317365258577639950394490897704636652679409250778531532471707495975139205286373778516529179898403503745280885775529649453302993434355531978669070918907282380198413313856343692447901498426079431328324849731777777453610007156241492610540397453752036767502817046384654554571417435022800970852650746016310459390038346198550785354171564740134964564699824574277294423265721218544491116720229048507612509018750522589051987540135348542659860128021399894414418952619433853233466810963022534317656415335514827400215027859873534623761370635724602363767935960262970136558181661657219406710122048085396466050176493060214921787413729148289946912716835795126239216272316760706682007334253087111443943843409842693643089593144642478320448992395079336017162711589174030467726601821560755048494073081459365772028680769313187418326948277620815948861283776937903987100959810444884011681315747995145245527249843814379500173850023791928579424429154414168873821450906495634734423572671916772740711036907360385896249909292597877735546289061348367458457487961246938730946034105952696491078350941716687849555749116613636618782362022760941564818042281434050181600982219793458523171898883397766198639083389837150542968796309584551250709850645919936718990256384880228131505726315861271888581677449470152077450941003102085083011491945912551373319536693488935118147872677064253430744998883037128890989862383193794311741898926931421148721244347348363866330311872249356865609234611372635493314427995979987156594794182554804609586138743092769503244665290321217347484489508605729598591625619431650603190206848279480046912325565927102845847997363251062102485700218686945677326140036583809334685360230930421258614620100143551238213207237548990463605585962617449760160360753648576474156489784729881220901148108098741472481054396962532503862889044552693514146701821247148480698797186818820792907991835589541696693064225028432500432174298898122630770782951088258825301832380543087450428293180418680993946989942567150554394729039455934186856390771970129050908689339832373616397351797844091668222446145418390618418812633978318885068992524180081914252684023867626781476119850022936857820615281705807774017494437465581925214860383890816572071882536370891307403333909209089054720434944842911784375955664654154145984904780319623475610352832660927887600739184618383648361097957737292200815375499662852273911576674551674087518865109529198510423901648281755403927373810638220473497159219650802656791281863994226000448266206063361896452076004421076103888286627029190785751338262977070239698410213093132163633231752819098611005546519226179215676411506166441261112349581333867814236393230241991172110314990677856261517764830697679249858190709176033602394923003810305400243355198440203020183066764747033557605959488315157826370303267111759346913149146830626196646489144671654092468306717918393483702100267451728566103456541396664402475973135683353551245165108873401083852129716639200519851401214973888208604739625153133434386199738630194791788712528640382904320201608359286900488995734217983786401347446937337456419324984015536890142258849461838497585206721829525940979449359154273196493857632616589226572900259485738900780975050230582346914584989219882905872704771795513960530816977878134270117964834162510966234216156227301553432868089743039107754038090758379288050996910550225046745535865624272195753097404190982330751918277910993454419202848742708011052044372932229771684264572475339147762642318107027581364263040271913803036430277118633635085895303098282772157850555069359875873084799134484301936759061967020154063958284267362813835039696721511206485454544891936357581432159624879364827434484537718738715793245906374499596058378427793754421989012896713384131413810535119241619420949474864311675059628108943477011541804080603684951528201884335353080847709993888320196141841385503075424040180464273054435509399944909387200881289144168507518252421839435596888107134933606419228959862484587174573058538444714707129031393846471032457015024576133788753819569846788344866779740523499801637343230883158737733175400962920387042710960171718091413945466982356483126641083129619042593238152863602863929417863951559524248494516301566564108319867792454175992896068990686861658225552709039267142827876762787064782801290288705855103474407034556900110267725798921461112198571613312327084008642034275385147320498602638392793235402913087975165773915527747393592723564951355802017551436241303845738725209933797059251288564960023579213494912902266687247726407546985454441683362658973077657664990199601294417493105304444038016957305541169517970640210865794035071632351016935667886749567885857467047181909074787112713828109643231933202205593668316325398538320347256010837205030035519730317077471270357370157231447465911643026222704455791476012314385153821424779430395759734304491725068826063765894216616103965102198155810464213642269029360409426654298461670240022979917158887102878097971074675171762903294547825334052381101330096096089287779241837226523099686324954172955953821747238840063906249558426112736667014888456336881411780679007245645667659727240659839458649757519891899861443928891710579991624093762902802343429364556784692679388908279219555758751603382314188569662926830823537433737507933534626166863842527336875094878393275900101376711787455337034924991472983595316932794432941670862013149240394731325602976401116011172996508220590663583127228780686998984975534078189350164836699802549648444730103198438718723802068675923037439539638734631718995182733398053952300874394274626807074559481503816476138523944093128965242514221454045138025174358473135875199289648246323902031138356529689314275554914941143553608208203824872557487788074662748652922269728605664629629032783115267063996210796917185581704549355367691768922951299171805196355493933701837635367065210146822269693840078047552737315689199635356276314018527626609467443224393192749203189283637991091596658489463687801000383374501752943499427742086153313810981557981290167161990748420330654447778148525029982248353781072323974322734446738367347927323193772704911256521544560212416209634880160707306741886797269979375151681168628814806587316759801586785000241420348777615351390225984383473828590459614591059298346141230588850983290764323949394565763810755567757674385431543351654297541760085980381021292823669944517606614452207414561956184088091263970068279082579795025896930387033856762216882886893331405280442960752156955169834534149699937945217889511871735409522662160010196416246806864727262949807559911775204819019014811712116013268019995169994551682095952117655899923900135743464180967087294561745640781727184704148526784191680424256921606428750004933348275960060912589259576461708161642966033923345086825438245061429450807951683420137442798225030682497967969680940203744961909743004993288598260290397841523880179448933877257582610710092106155801061297589643335133414254232928156932555573747822839983466459786081641749267921273030156116329293170158035781842663915047286107523995152520451389848283078197647641182195208188761197070897381308552716016864719217303283315315429665963878806854425105275496020880154341794871005410865409221309692002857441016246475770230540434098001524700163789304588870151316928553946759027301683200531914955919796578226400503152718020482192072433487135621702250198830043139981824242544118664291944574663789633180405119957407659178302855431320031594322300631710129579499694037232857359615938301456688609265464909949708561870824355525029586724115735827023816908079376059066440839847906330647167258736085811849125887518004238276224126546440603252011121061003862762474040642362827367680785608967307914423265695100708011974890694353688958401773086571803055569084443696800210857346032662942047414256061656445246271737330418219064340707707006148962574882668590085671174479384808189008130432323610305266310211125128076473305987412587793990884125665578272892501611983745192745653401795343411310444689556774726184729151895474160559479257976756412257637199916402997451169085569293702458085490360474563494180916407206515818189687286058194634459559771148027711387194486486429424542871470790183236775512618667109824549568273691750333298297330635727548332226152529360033161168883220929140488874043846296014818573912323633713198804763008000616868149822131589188815479483088210583351341789448599684893126736497753100869367589561981641217793355544689147650139247118735988185035474835973661960319735685827471740593332730341596034215462830567783370682348612218236909712245498226447749069973219255841247161548565405201722678928172905437378030277796698261519829172375243584512358670332935834270489147868223734288726228095196464172096153968282193919298669116046968632844357860072633583297240755942738977960865347813604886460869862595951333337192191932905758073845835270795733216550027472234957256310506810126057394154033082712752977844406512824502954063795924973675949134585200246946942301075340515159625742601855071493511570181089949981684057796722824620573480902161784514844862434492302408386191452183045981111866439020152150939775896668444178898409571358351555955911857249800351581178300041584266547555916929458446829478516403335789524975258460047477717498817032314336416840079870290230550131518549747494551611414263834572482844090193593612425246508632287435809309331827041132351737384637574227800802598244228688464561807854762260218900510322659756700552648171681636677121144904201337042788839280963199174388950542687224402547270763996846991230425639488028943278049838597636809801362867761535464656563240057004770370698979027634258123828656640505765561725211069629517657496180277743524913884034742532946854724394704375856342457411098579948158850394093302424220073054692060371037043489505745587082342046436064210163320495913075503642893352716499763773341596798293150626800458768081153319196428715675719043293172957187744181498285537754139582120140650349394045264034529794475439300934891727202171325250457248230008823865382009493744420755991271680249964307680927913016315133335755156739770071917091630839164636795917546780182950278005046547743137452961223672654606171128362755980316377077588276902123057582367046449023263861044349837097726131463012698380755897775658643688220122286109263312837538300980414138467364715004814813688756545704961992995497093492011900096473357175926919477026589306358438251006907756546708124565733711738628291061164825090770391295642757929143767796151602315448164658933801312868055271413150877598043650278470266444624338558778988625455707018638093503889233844089243129332353197042158133438662136632926949917517063306008756498582152155424086076166621330417514524862585164668709741353209984844324931441683484124352658045620016820289618272778166990853888449618521910553795779253940290759886194076999167214330592237888319111655172661832988343366519284309315901682315634575314276820621170439061598196000444133120916049890370438497637195749270572328384773513014065604041797223163910421287369966319416025014804060427670739602449531395720726816133949981262479130235724368812641573805370535353404906798906838881419102478684250190203051857019173119801007821732777492939318691297503692131456108401783747896192734746113783488805176568578193870248205282964745820489542691007747757177359775042185218405509557928225732057220912759658845649750940938077379444485223912600125949412070391786691789653199935407360336190698336597072301325242514617341344245001914645606567770624202579914713163764168025506338075589598106085392226286839711881070808843914360061225555618015991062764103730823668865497549215532055263550213147968940734329363460738928175896970193672797566883753002308174267810775935543642843983291380069606877331946142808965706387128610816801490032591865132659500684623457589665363855854922089113321800703017712154123894719868319378136931513653286364872227086059155306161898189050049591836121904643819700232301802875319107201766264520996870769992673536337524404582282115463925805533081789391082815531265541786696467647472897757281224150666400326092688517178634006089963557593375504057896572885066312777324572925961100236587604105314975388330584853674440616191016105223634377259080814884225302866696935575388778495479628497501793478368616739227213770211320083065993645855099266357932430277728558293835122408004699168406667603195417304090350367701605927166540437312509953796540945402921031288049090764535468748334801338962922195715217606109363611337765792388574648725920101682367409821714662506900799377224935188245155307726115802790158438300433778174113061422109363014746868900519956573502090993762071139926112005353463463491011303202872146059391841729009165210653269339084157220740170099528381260616476096121123577280844587233855954400277667556132130844503145246149352717181136825003145727542579762351593898606119537844264817880209532055051752307392312344797452826706828830534187089521008511530974523314515175104039209860010767311423475583197783617968212445794798493595298125909354906255315622588591045170212862607180867810490607592825091382622004796165448148674617670384392081002237205082693473733916893381033557402399671167546300012889994284706806279456545646999691872381712730850580791753039651213002081065780280235657831959377796329221579248604800826003821188538566423907714396338653724617814939327261011782387094225446962454824885458307998628448158383590073424711434703108935705831133923858574285208941852445020832056872502409948301166296481833380866962590477397052552444370198281276013800985576458389007595466815239630393612190994458237444912533992449036758312262035428780380745131617236677014699489400263371885664009190160602935900076736763025527279430027246914795488150847688657254892262874698971347219688810438705581100875822599706278264308073839855634949696932477895549987257855092930849739620022963665953720733593430129841385842897281415591147511747234998796249781264790511903124900538161235451853060998357606268963240499036212418039817572257009082629595991280129114777801380267270768341423005401128183791417670201146150362647024108811825194129400094496828394203272456037077272268834810692872725601469777958548524673974951071629153955441502809727931855878699204235485280469808180894362862788210182688500857253348098316434725701313438657053500252165582774551321544180867519068907342807718033226155685086052760067659764535145040631744795155059227483911646818961887855554920527594247621327826794161117791142770872980190410636857695053927345917794435870548252780368457422161537774197709174760610566994281419740025923093137057323568934881843846931686479594477004699432985815760639667820700767172663560793696006132627642332996972433897354054455556430054321769399551523449072044954864847934602319441646845333673273090146256763724005843892157218745430408896125929919206056896931522263508405042278993026612061543837806870069691347847917242825784015211612026589088057656353057532138621428853287724826909418646164568151715689451677338598894555321759629519060707448599975009359082259180797900927657704149618899303980180199430911765185097831888221575540527216130418988006517220661554456058038584081168525104064780013359078184945626387406764839505916144009332192963461584775521904243505833133520112467837307675295802190764270498921285276206762381015574860069189094912587492621992222833350086914170209328336558713970705313594256127634274946800592187487438158798083964990859498342787195274858494527733864406099393851972120908804734868268364106191866402850290382238754293252671278509320458586986253899028378632093762577293408030798770268205856873816156022879342518834814884840267173414759796728177395319438931946962429107557857463116619732238094327691602151003853291059737836771524084426827529744717669243519082153926888697506863208331425576283243922228556198283806173585177053583215448400234694186689232122058303669085154754690394300644241450205540023452647449967218289808662798156384963552688745504269259691859298474604356484965157871191945938344666792342389960767521500099211974208643620720480098450307907627805777315534908446357741968088554371200800420692791559211369581962999378743048367981998751893649492859382530623411831639298098607975503807016518442009922125694846165298494607841530075403944072077983241275832577086399395455344646907056172096997198865143611731767328211874737185892679384870920648843478365512156011488522881063987926564334289976278181314295416819699613540363264305733187514761750079991117126607841043880816410905262131551168908179340592226393165435702976530437703381201502114006543424258327804316933854762092125429558449362417764016186814422636737650170644154962486905393444119100500899319406809269682364892165236049573222990007010199689318030389588683945546305219357819820808114428195931274974630946649167111396348927319348263598850378030114900575738420770032063826721917755888051356579414703966514961509729737982592513467712610975648016135434523247129150050961086939367695785387255335492703659810521520192326982953431353064965472949301419744242951859072558190883529140777522345918815388537136077937798574419924784557943518386592505203212004847338245499739839315683368208294105077987881366581305769461578770780456270251494956282754447395257003876867322582734728872505797161172597759016882154873046830396131501776206634790594182228636484775419540721153357967077349542063763640229315197379512895767161866587789337509190198274217130955471602205344697378862691448406895749783665081958548985601545746789337823581357301355240053922189717725788361005191774926877359888773406166512545164477301317899798358303290466278174814204390302546245735705408017620398000329116155538631411176117659100659654111228732013526395803915228655287471611586422557272533340739322197757032651848926168677602214168424588699649951909092539832554013521372113827856212966653144643089134126566043251622975693740537802761860166054625651074423002394807974908326683742601127457214190853899972641159697346888994008551700611877951844035914428155112074066102844086427106649770279927287952025184267407221782268150354281225921956865149496516996093473295445455737250786165066242675170883569005013564956550039530286564304495495543484036082070968610774002055310279064198942718883072504918272460559973006287219862844631391791974711061161798669746113907464514073807792046880505355299923667331034367304220685163628199015510151164786003702257919846059504130198526652885240495418132041944021861445075830027462382468763915266973810597014646257083146168699084938328404094295759215440489749869055040552744953650911352926657817733524980115372389723863823278357867743367467381875474686880920436940905268166607108530929212232870408618886614486708361005620424196725620088433056172930643199116616625255938406175762482959447268252641162760367056390611562021838326320677427533181006935529254244095177224197588381983196659588398968615870194232729376120966397291634749637247115360440868871480891445979906502783170003690474889575791440783421463208739516594608891207034067862302153133918495996408154920084495804725333057631140388259838664994254710874538809726724540196735400474027595595460465720678849280982135689462220278373528222615147813446715237472234233471884221404296191228848607203672974942365880384096626628399585726672370464024180929361459792724259775544134777337026007853871111141519012029859829629674534729915972829129244263638230438929964865385230655786659437471808798425481680750101179375510451933556703040724190789682402549793499903933451181016486210194454330613636604192134940000426023246829243143612789572483585385441815550244012440335931239082784255497612970301010124985203592798284693981863017026317350094781966229779607947027064433486497060402465483179743783309156553729421315705373911138474008844524148270343284388982216878804735521746990446294628584818380855656149560932377754114479164395606335367308193686985119265504273327148214911545764606919898944552294962994936490742858322735887292265669049100435478142299874313170544553724870263932617215875869489068959572460303110632732286943324167375701893252013861822957540964997274107447786402442931269974674680586625102432577009071815086604762538333898674502730477099293335092388357935008422898143204479591429143253837090978554782595405473769110157885020033496636076141422916339545711288759138768548022215903281694409642746174953695330338070211388634514990657278191427017509184700090020503693226360176235614192885988778815396773669694296088161975051974785398268772398835027738507481992782003256960070234701618547709569290487288617903050944604897794562363434007101710027334676245822110308100617622476450201496713049982173145964079130558835122480538406855352276102549875340257653933443723456491111882284821200048899888997582052758491843258090605833312443437252900007762868455808726192149910257891804413493241114905174631444256721198924047247623485968725454470644614273182835709580934841706765083282744750138282192038820277276499657311090731188712862578363926092228921484563566290006617339328441599227591283026803096673512945873084761801818678773195464124790333683979222007551823134087902731093737686068867974648940491573673087385216874483873631168706122550448947249133148347722045301393624496647834377726676785987581457653559585110481072012378608084341513250144189531357802418742229443724087718568583580911496114492819389816040256997846693795283571556930230926705558473802387514614520256342534203456535637115570250857187613788962080926352507869575379120888121503803728551531729959245151432302198164384825473732410033375030144250797936985170338914588520411131609875475278441070186826141053510357473106650486078759166084250542827992536939399726660275864957959491947318117536112745513043164202449577981355644058668771144617541825905026437471287260901095375018134015429760163846974013633752362555224315566716520228560081194107254426498642301341209253036394428023294243930106329880238258756535608251572787509453016533453460824125545025608031753050615121320831721332783578905867018661260172586038121040637310658898925845356422238403490544397050891234940475668882889501956680739237141975659777242415278696690258641925708900874506888758514433254566593489157993238807665239999318691010272283572603219607187650372841529107646997662545144688428025837318234292571435182316106413369809312869386778655761781641568155572802149906229267804491406339896709039796295274331734977314460873577292238114703172558468310215779750760286502282912795174772571206424660214987037083642782709127577618741866591675844626580107989082747895469958390572662268761705421458010471637683645764381859928527393320141446072694178316422404628509289359495102255922608307361557857814783576872972384789526148472925118256273144911708857799593093450235370705097566655574618706519336870278816706835830535523508111027738214123614857382151870745171664026896010675905447038379713697993201037800055272630633890930972591290110284370313508924114679154025016966316213476116841108782695164021880425612422922832080148164174781063707644866380720673345887149354610172379935929419382369896113669830048251369728706456807842287075314161076125319367449056227503306868357638335789774251612080034891744391222324861584203303834186721004270590454338185335371573331112917763294677923010937081162906770650970309896037646802620475736760868610911026486985508206839520163822129842928961989395662810060063498537798553581472685910747312916774420886583033374903075958729191662315062447655252733027837002396243019842035382911498511292099949439000323807221284716791499192526507014860782393809663753100218860842322636175560164793332536445124500178568875667602918132141791034560877354893640990950886561216159951898564532481318794255118122400165011353333763974819964455413127695644820977515370954617134029323053453656697238249155315331238451502998164225313602537712964436244270264865537630393147616017792226754993790741384972658828749801650917878052795506100464469731398792566387828475649989846469410739243064568136768134316703387626739400467568459849191933446580046637233711391515896372585881359146644546247349676169078216984648886138776755213415226240380044139061614720307189249612321891430715194604307225130940389731504135905022243840904676723779801622808588141249822759296356913276213404814430301867328985617238291073613291203950470944009706764823371756011053411819757397027724527429006223043778987733670267550724654279575041417456552260329862048227335583562847997119263149920285448594269366096577953927604890708510222404390562645152481457114302610495099064196668848412774202375754580052350578856224487163862803705359044741813115151881987742277892981120276201709733898283426244880773446021962460807874832263200100406955375025920262125929233031254986779174401138080495392099680477212202150314474121665324436919019628417233283709979570259835176765647132788119578551413213005321500756982174504512536551379442195483029240554543539661728316784723605465645583074116043873858342392959834928179055079438957688617468557251634623382690520822331814174014827955395295464551451544191763972842590417621926198839112691768759518077753668986727487203020078754215373855720174254045995120004349447370686985107418942326298910819569790838932530435980537132951403721838050537860709927422401603473744725636226585602603946027802460269403182944554691527057867034506546985694414755148661366661801837067629412720693519961358231768235081157651739903657745334752197992216912556314129025586380532314003090618591483856887216343127695519392871113015075423049159239686702900252081927965660094165701543239662662356278654227801760151327302382177364660099365725710680005655500139080544213193073185528149635626705011526953001358775037427278170609278393281539389467683952427630890987271621355932419848866845778345378042284875618789752771466900476079415192023596874837613865722937897156749702306782691276126273904635282030507808540053364430911208052195205268987073408135043524727047699844363745798393636532733660353773896133350156875695991198710980148199021543730527855176125792815390707897611272974074445326789676554159498844011763959698280946328801507741670834522235991081228312374013829655384712642640621958731994083141313275754493484593504889599967525833142457900592113506750701150081211607201149741831348516866865557116917634409809666503291800068193561421166067394503349354419577827495254022169033008841725104535806435701150234730082900050502447935616867516908541233880367995937873904521928036914001760945927889589923283687907117700034734536609577129783136825968067825179515801880596294242000682740142047532788138374785500329060433999314050137341241209001643261934433219367904698734187199838049519746173236131597976766844462768949929630773846453815530220664423497829819018357460649839692122769559252963506080495692241423797526908819259752162301785515644181263413601282277370443814066714651827590071622497488100492110506367920778766002951081168301325462122275411820714405614223837337985195624465099708717010605951097483898717986166957835414513044805617333420167814288604221044339302965631940085563669448389010541071432910779591286823611419781472510105271181850213221010894940395357623012723861231070740661837292612396968659762596897921957990276115113923474005090333097123605905862960664137478946605231659919347868609538142102062113842653496795623783216686183865633943799889887602434016587214679369974763115187463785180677615934123680668914897231304266106006208315788983136987845852623476065568852478834630924532054992206470508347340439973097764474680924526034978115584899393773230127065187255656131090389335494090328518517566395287332749512060986900493333423236230466990837064522185598446559974784233344757716359833992938004043517467171324145768340191408283562951785162193602633127262087476475075598740050686994842229957320107790765945471983469433997235093938347982002784011086191193548922932918218694199496633278761070926024326594701290720336540852611029885571988351859071427114075474751384624586385592287156121816114729336296868400988866794933869131549695623369385316379927272726270154774862273545435196965319864027780405954501564752166558624365653792829703572909790012213256244040265724431453123408707271735040628483143349276319938440793546160833220737660293421806558376006062464041789753074983548536800415498638159724253246289028356094931362388290932167803786180660162141656365510314502824741061280671869915166152146888134289795467083130103832632650517323884301614895999101122894568581059323034458538299148120571540657440393203656408043912345376920546871890818658374491844936722427073433967041182641982033507719728847335999974317927578173515592434341480987392865168632969445107156916871513493281617611072608239595080245065059167019867008664539587025342061752615274425026334051335796317241262620254984221008948832170162514222992229874034097384579954882895259960591761928868633913169355843210249038487976836249155188748554887050824997791375725735590547652093018287894783208193910121697312843890833421702341806858462768651672153304423763374755595019942755528855512945556716403644401279485322446881865253422072916118414016273745513430911731711491283933328471827238973602731984454338642674189168913007486230117849673970394901329182770256265117077235330757640977443892689222447445168065072399824877793475855542910228947525123917228375855844899086200867860054763541358539671866618364039361653709079310168283714229885162206564695998686952768525796952543750003805897945015910301708216351019179968415796247571550213578907779400707525228873301607879225462503554448385161474959420801835297030397847557760151565940172951796928474649158362191258738218189076694853697259629392737968882627924283042267719428495910381556367931918669825864197174038465562697374158989985136848655171614693342592055778309913449991062537321012311654217944021995080415033430301651146271301804213386630329152354434273285633962705547492938822658654292415863828487707547885085442553141826194829984351773782966248472400553960232089462008189509901256154209685517995942588413989964674949175964074185474343939125086820737413660404745654176223533705872321062539980274798680164893528479607474752725891071737481717925890331412047661841368331811077353147192756775430379384512275399079772993533401786211841050957917259093391783758868534589360604125201907937785897651579197012003807210265191233243366871342236269800670981946556019325838733901830131671637617771579946617558454251758957363233457046896768094610004615633471043657550253258637901514874889478348991108937879185988637758336733781978822703243787598877191609586613662860158557416842261153949460820308054608837930726177342767098353229637217907872466963499281565958464107335393696622949971734786869802454982929574789774863383328120941921342040918327117130152490371586383089505893450944364493695154050723894348608779734075996126413294927209742103588295965400050401390398948812188593001001149808166692375659492645518214701267032530584657337186906759940578062652095421604229183241621508180870702568833817434172521040467388291796213075333044506461165776854706946846154247313574023925496987876046968385982884433182846667623470541730887938937811325951802402116021826221380915497858287850102634113709150354278898969507764029319082759229439553172781737987157725677667054140018434947087143947618953086183269715449970234526975788195753496428512974243535552400965019502746497438480716081800829847065016090931712547862341165960817798763261462879736983386683089127971360977166375068718104260777251960994052444808555803603997564744791405098300595557625891821738703911847174707321200613652523012076195706419617714486883601257388729481702774204651506336180552838870220929443320089692965022827010314232542173451506663708456354092132482655333500568347248324324484464192280318729391279696253005871932120134128953261662082258170065161111534321894126249259897799946346755425472859640893959631932079985908009385085469941677997010756222657535460216630263730155007167145701472605554493678727504636965215627950385580881950634178928917435444033489679593739709903488197810816786299853549770601716724313185645132836094774381055466337584703312391119204445440701255978837595549798131504624183517196579999584709310773560642486464087705212182187750858626603005622196553167809402154898511805543464729926345927169126462519260462036706433557931748034655735564830837166390233726704393079536514058162731299552885205876762646726984317468733389920485829505249720602539497976545025335509982744963232277172754519352257042193689290883621292293088319220730920357875866606416050317487929475042734264879046592379605635885349554440070248894961360199382170747701298717114069441639616052342336245558831265438427213018629511627625039610949941422206108460358462327746436229025017489746574247753350422906241128842453146216026712808773999521639118681884506362340425644735199594730508877859525707778734383017934046401591758387615352499125662271992903632582828873620643448989602161665600553310681788310675596508864887650286270031268059565629752218307337256805140863895550375428452480660459775316368839507116549357929639441516921207444887150478898077645253480827726819381760289849591893811974431849134829029868451152833732815159653006617834287862111832445754901702119698200967846742265924094319238871337985380653536442147663055862998660419191744713450120241688394313501821535385030863780841041356919934532390449192398717075814699545542169033752435237714867616273924962760417754528533885111597180965624040049461999044497871520370583537839087219055991770406131782535278410884618238244217813190966471603911537856780022156784676505477982739091194644562124743975877311834592349064625722852969148155937450676362912561044476955543455126268088034966676328968697883738885545958389209622130807372268727199109150834622113115184745368263557617058341787313650404311982820688728806783456590688932665788640679171766901355362327152228314592728467477253021695785984258812295543653403313577821673426491619599482973393353976492657503000467736438401589894055272715366999675415031536764853173659010340770455716244591387178928094881077906653345818201409964057787455994829466089031916610234382438304181729380175198408177300257872110335280788487753603618560164121554032884645121434281686176659799714341120546153970091020003012844353189728052389732296058832639853692288048865813512037805148723070839366417653813646530598743202399522968582165210866415776034671306925853809372649866023204860224236857888127484306916491251538424266629288680670768906681648847329754089606532478980211508517231561547305626174695324447467924731538484065624281570263846682419738731607748579605242002018151528538561574605002856955756748441192089251806190021283544226613777400367844433871638442065407621111368869980976863326054871597545431483004997117162427958050315527136490860525121632262487076297077876594599231500133530152405582377703928164402932943586386947242903540299469695915734689794598149179696104180166116573667340099088486521284066343488377857154861577432797875217445825413719978908838516288788907657231736970664564705474290633430520788689571194444339687693636933412855576003023235339467104722863176648457613782811477119127591864453965208390025058903606829223257957364141568525490026233180012306503518130070218690521069024068649615560357811957606064261764564213572585165172548603997748148898750653375426746741273204243238523556126895997103676997379554667806783243650688136467993262193029628442513797431095339030766148985736998778874041035222077560808650372930335134113717462287516533783262293936538201194701274766218807229427347724042659489051330197973484860881867324953725345168908239747314243516472822042202415726479940655908642300352066004761836620241636154726434585558700990360334795400734421895102174829332922318166219806890520343220236795162446413869755473551040451385999871212086768912823402371414063898553813283289472362145354154017515057198114117428707984593364077803998792868050125669794623668996493677176498975336499346658649714523742885202512558148777452530772977503811927837273313388829621808428375090049351899397790317224377710881705645950816208114275407627968361713086379455638741605113087046486941464580105538850657867583302113622671441164206837683720611281007001521805272547949333426571202672090193894488662210688327797486270265630208935945828765322674792515460997396312202482711333320721887140930103962288412495997215809067069241026087724425247609550635440218759870097888877515971746750529366094043252469283035404425175956974488136560283451750376383563019981216565209870107687030525400268011456198396373540399109943718711882198266453303626113305928260944516227262007453024722226251734766416313532059805722020851538599339661710111534249430967826757844335950092949110679316962070364243731917571280072683993426901513059061020203936127242673128290441025975880039018875581020648357241405356980357407512222181823348762612640066286438731083618278349041703615577982410608884834676777137493682169129786038974503029282271404906494353593582453460731665110321671154427995441101696787526851462509490809051835251229649877075302450397178655760116000339571595975719199656383868381179706638484970662176898657913875934690422417786137266174910518530398263690667697678476639271763954497928343519282484055667633560509896017509374501574614330681586246494831603836147222895825564569653167356021192707906119422649681122849891897014045349845379206352073654127345201632492221739320125526551333690070507936477200378894922028331329479863582365683189058681156387714451375322088675409987100168729691830961651200266586229973522290822111469157624827033579834561898240058855246678135459217196656472695370885048659592841734698892237351358630281401408263735413926420319684850793469488807869304813415857778613507992641738747370109735011482449154537638133824478520418410353351610155091031269852767117982747720493112390650234545414809178525274243699747342543629309303976982561209431137700627786080845214868071120325468274161664057292238497559918351264398489111249531751624150991977969220677973494720924978095007017627580174500477190059698840039858427171247153292473062331324739839008487494345587631941073785816338473294134565061336900305192968250403389394259324656837895495906155443080923712390180207129119156434672185913147847351141097225588694916777511951923646040087617000095236343843825721214055557510468477183718145373913156369237601807036558303396884900881694826453212110580048765435462709656277532778770639318634490767323400118741813401208966670662578299326573076159934802633915205383639324600752566051468894378473665672348432978927441654488228327951510998469916008864311569340791817728687388127919835526263340216210353246503851495236776027969931309351860946061224512956837230762635353698127330837069759751329402399133153869372136980714674463893649480463546250841214597265236430585794501290759701367742054650130344272283285309125417263038625227780792220401079586173386115182651776777775640788550343840304002854669082274834451961366555231651875280034988584798144747641843203424391788906439235472219814754943048961805512307032306312831910479234051390527543819104147974648819481505059468666456392155416525993015636470482507312670958576450767213093278713975160353432117456894895365577098217648062520479604702946033585070975461328686406901429323607432314762276924589064530565192777963196037840524234545698496379008388688868265141668246662183920149172665511249652116559309938105465886465420459888401759492489409267549887746156010694007681020207096959699970378901098346677890974038208830085318997387480279367004623594085815793343012435402664977769609131757336518493901461609750677639345289050280160539177883291629199996265529945557491298929980863209969972658331427463323059077969526330986854365145719133359266872796146942142078515155431566815792522051017568241941597478483742436763303220517975616795945538616217379231386282623988256139364489130563832736988880382338670847621131786191928861955911418944651946659322829628863187626360698731883095423387503569845131484294408673610936207973121113289419618855653148750600998369277467121967305382148273199955830567899095312756750031899825592423816276603468214978558753866974415546909130673983150087823962375108452527636495452611320914584009786926971926278682937791397922204922129140355880764870421332928850879452209338136185009466391826649046155698401792349556336974924751685338733649337279745270096602139284087155099458957757432932174642786378490367253010734383280928074336423354686004146888413880890532581594284173853287738027373141987737761126766694598160948916603380903363542017917342587233183523681085417360380442522043067312914458372606519632687188079008006040853091093928235711998434874685450852509046162704899597286802619394355671838688875422261276349575019765302758284259649365260448134867453857383701885084121297172252394430938809301259993039684346799539396735284623373072856937920775157822461249845555039730532458485491475292860662619953040828460168856831498547213390829168785916701918744398222799473084737568776541783749953710026446584277429316392722825994534716505475506383977632874122380426720531875459992323085459053830220420869157476379552186816274037859556547525877628966772731444324788003854724272361526858854461037716736109513825414019469793369574555841265665567220024867858732292476526718487455725040138811929541135218711671695594196803031694938826032054079341638100075283166196047884393970033113419630161464832675259758032117743111356901924172893310666348552173495360428430831304123384373972022825349546974431136336265525791613333487373444589320058468248520883860328217130356751248996742512164921103419604437581229407654529735349060937381104327550370744673312710580462766280193594168584761026969434281842670450900025865317097275375813073489830846868940107076762527328967698086888603547473152918997607125500424954331731935208599479651377209838689256797001830770169537477068843345938944048370143594182633815458327263564185177685797506676386111364872126140389945553540308026336548665664393168475025048624534769570376410082956583546473019427330729474046806232741065786642113092908548324754701973473453114648252043921387674364518862313981315626364744934604287105311895554299635857901996080290315956673322643718562153420813487871184956107422862666480665814552829841020596739536835766844696646066525980317180491373790237708425495772842562232480968505876707166326616687429586397109449570419447681948650131184048760249050387670675042632286458068448601459100817858304885321200032046071172128455990111865190979646740121939988826140878810265759591296861263780530297612699226515086767418082093238357316549002566881876054789526996008030874248483748441974158079184092842654493881486064911609731960378049776896561902095333505004340960278446185715349450675641237059990287010020670475737931929077250934406668586242003124291616842285288586887386667204620255228300628046330936643309439796593997653437137795221006764818541509291297516298937493785018553176861815841363080382378110884086762772602699504463762612550327841815986023003497644727471130870625214917719617640888368042553734956224438096974532207315022646397711808614151841679372485012838874019649892543922368399766452640245897706785638108403613062550134923921557515158261788673788224211535686031134582627112985296227519856081106220851437217600330455339790547918512188715914600448583533087816125149037358126908085743406596380811427683858107788570795200956920609881374269385422999772585271887859707294123082209658342647308623448246786919152950017788982266295766043599964340588371134321761007393103334810754726909568932592559337937725351443557927072692420442624400166714224153045114058590923171934905731088290313743327092506424146969208305116666173087051344587596678390402526822354236480936299141247012164957437638946456520656888949924922120075482800197468918145553175079548889566396482072287391677270431547688198812265681871123518162193860361076628145577459198102309475978012960727735711121258168027914813924552508114997205830946857018022178621438276805321896028963448142677294362124814280620737691253621841009642915602366013442588210908096836337167978735042733857545695200305993234893193995028340721172456438574657801628881992951566153570320295450064591840611388068670774306322125610445746561618118461030416950374727871044546383460868051704219618579457799034514794104506501252822570344076955033837760664916259307279871554146040251476155425387533402526890711226159403037994001073723526875139419234722689629799119909451987859119395520105370116298101691724969821259010260793935348511075197931007920357021243747440876113227664040236358123456887091118984732546502131112927005173513452823557791652094401412157738419791958790065218250404051280604717987382326419925102589027485538473599707106123266724557908689346904291142032188619917626714604193259323926748800666670692562812247429631840662588963971708901586309772534741687173125165670644944607548048661835973956067298428393569236422008884209282805809597527625389490644703064179412209664395932866957647124569445680143959090728702592728416913065133068703552011059991361980077590834167508768129356212271667925853114015826747764878306952846379229052361339269806878397563437198955669318552790822367414781932543276196714943480473248291439122853402205887006274889691166678432038638815195349068740063101976102622395079323494936089197555612308015956969814172691588908756057065597757461733608257577605587433825106209871849435519688438631265274542350239870417353623929022929020200394433111637254413123731038892427756770715442764911615201314011588270413137545107784880967681241083976466031209229182644138302466578466826036954134524825354675009096923212347514329201781986897819087232995761623565155043458414110163686845538311471439392571905853177080162728580042547142953018928142508316038350762240410206128087098467822970688232173996384343331920422359957320251068513735965549007571413150914660678617434527709702224647039894688587030259377388943168916549040916597176018010468463822306070070202598664386522221180861199974021628226483426627584116646892261790610926900825629116029084084381503962738294699436373115507393245726007952392516690478567331454393388407003467126544193192241233747758337054295834625967071107180977885489603807993587782546394226185761123381261388885358778013554279249010249696821822096370089362522455342988340768336416099123442160294345376851348483304248769260271797729188339704722579719081309611241053025944330098764555521936789277824467752826711301151577932923397612967292276946480559090781615930497483222937965536842168572756093535021540209015443855082370901676149050467382318547747244096428334346557961665744292280820603328345483057111227749288166156449112189517906182676603599477106330806211262270728290124584416713670862453168483870257783042053062911198955730935872115036256146963993900925401393466564424904718992971396857213120676406915619676180322271286842536487356833515700286993765688901011251524169866535251735263649090539524120061880214445527596535512167330337372636912776247762408979068883139222039654417011958582734292831869749169104049309650480872991843822361421364387361569686223906373948263429596662370494013536051931604084490809060912828714870481988991839460934454935226646418624580184621504345235075088773091097426828464634231781197584616914617675691256533488378164246705461304395821754275012660182351201633336718226835321069213145448999679677660416810260665988588487405666830966224190670261754078383654718341694976715137768679882437537991215952960929985776784600237201011057746738147800812149876339206740509943984479312902759700210251135408490040378608606795813590633831597660473795272570950020974775110865088752562086087217950017478833405655273940352422516252918820436836758397257678669876777513364984153803873962486418970809647659439354939744845660017041990870726008654500956798380918084575229704396100420619794012149205928638456725910633897079853621435889719421726516186437880484754730445305011467281741575122303915858421586711615090870498050663003728652687395999919498338140744012761143758065871964012047096269588021773810858243701485208450633849433188609874240265966230124421609414904201210168835990165086537259884655218649182639994785113641942157524572129242812597742710497890696623255789979459085748582593344114621495103719187434834617242245538085472438210466925703279478871062858597942312522953091868615150585285870553794988914182257629152795427367578230464645957819754288829920016324466359511345545684254892868114232347389938694117006289457827281766626605058150896386435050991506268227293485403626111497943988896722876506077013632521839972221080126629320127777447427812675822360635556721370713373984345097813562642055806869420168611364517192305901931133337906447216522092820004466629569309055171953861810925355705710143568389080302513023762890204063796908571540103980121148521049694661956346006926336939809195689859127354238178684650829567183030687552526397062047209285727284697836423630468614516015036598553346086164672374589397839049127476582203405053715836994192835087401053927034924809444503683179128682538590979464502758739962604918246853293077595230555830855636099921267121435115817747105018695429823950564647508616504959889671418983604455057511464874468040789717983583126902737860040123629791488938449046079837950666090240879950379479143209837758040616501061017965384816978086838623093211991550896610426595067871042485855695270266305791110640162691507143962986844266526344680817103490283086801447954102545622799797278124164956256543815899680527534774078875780549176323245675840866511127976729547360533016188094403690299795012929022798025908597440986073125200457995882414848017046226849982553663179933412988668976378406648869150278294379569575085022546958960305604885756312279538930313797553931616489801600692387027410884483742711910365152141980742096437260505288684399976585749337302140129940804429841265431939565958204423380212864606846237434623166524584170524282365975675627204836331528988897633107440226250504547890590435718323769513089948068086293994413742883914080768837604303676495013547634749863667478288649186112500973038609099236027481657965427482744237025677546087031276418684579035866695793615507215767127015468771110215099163361657279136500701680384251471771667205005992520762231609894010028770879198722933964316190673323300647298425100355236648965981490674198602541529829495052992422767887670576314271467334218382170310346164855494300744543840601728266388071504809363947335272606769823297144235847493726766813322058686056033617899987462122852565088290180745026401298126103673203072259443474011409481305464983343275063568949981450829416259157863098878496608057856863320540671141014717886737498288610755793689897879251053731551606096622099774600601532719368043478798441715752638702165531044893712932355938170492278007791967376166876753504998079049136347382823884229728778271561619401984343987590967593777753471760300107728984632085773982751008024765935704339396492566110239057977720643820174571173738351125143310191780072971912090124128509461373095384518883933665642647090695991567011869922252988902108053720665959552490305832609534013692931484336792623646115675303315356403357633059592576036472029873047539615202803245138509610370908962082627038013310181934806241715173426648346347087266997406997836632677616079436263964932315730140199256501996196559051323477236173180567587004870287607156143433007385409394046051125395768024833410325240211382277593106050771629550056437711928406007012293225998454820482303651176689506120892115535999971269399727241046794536635895824252899976211911294222261650341163984704948065179646239915834435813143188865964418125787129213504127406935665581485207035163782042919715855423789559508939625098729796953616659257520556730240387829507136689873427698041645114249522768042157653709433920087082679153799168747856645059108204772469316386638913019270386614579741032788070711174307332996227758345513288776116868599099069044794802290726975714432180178118810773329923669898231094509287241731312576296890433687722686153398510500733257890786385749680377392162182359046494891617263497063106248471167267602502511962404681241297781091251491974851803130840822712063901709147119992734681876198826426394824439018922649238115127640632390300722416888085842530077066717545184942936561200951459528858372754020508260895016654234317414400937696715410292395177545743602554676651542770414139300445332513589270821171664320699078904474461251655801628500164076868613145781441641147141282793004518054011791556556818290305646943975989394679017720090003579774326135587279409463735744820497075682313540315460794765598243227000831976999259263136958405078854313827367425734247661354883242151354082471829818814881982851438635934584591585034275036777752348076539945004749274374604927084439143403641988626434449955651535118107050076398486382629041226746606110152591628826158761238808402781583560888060831791954037766701030391221318053131891109919810838058651128892216422783713566695107503136098512874980468979263787992964729029556067065755525415760708651744656751245889313195125385960251873023462703718801971974862431364423776373782352341279553106101332068427480715582858307676083726027601632361280291733780539859195460360092397381596344657537754588957975275747300340504024509465941492455668500621736659967709328538805985137208741304791084304059633837540642750008467569230472064926331387741393548678150559741007120140678088339416053891807637942750897952760491277521484344937172066570905412700670140261720695616199491866904769016568720464117664666800702177264595170316516044686518742396267225560008719200006230373431294791216766627764772718188352745806509444399845295261998116561281480574841765405951926618734587398077837899396151509167778970507489447628111441710640887557796795096515624201582644818525502303988479318417868688556798258267656628946115036238141891090094124624864833718429564045948529162946311879487961802779334050846360802519193407449760021782373204442412261280041257915142716125253065270467274673583006499286056864976358250774198464632964117377121204325875256210626169998181513677946413517137994605765494004767288626128573051741047088731034802677320777279392941912131907377069818290331225667472707345355808156554744959990794294284371264235964649823179978542834632580371336655371453396991892502126399550430546538295327202266152787097295914148924736879847781562733427872657934713809104314785152722685053265330849092616572775765991888092461507843840710531041197484146756955865390418721828982044934038526466596123060953393716785660522328576429961212591297998862297843022739629109954603383971444891223113186010537176267569270045154527093217201121541233195607172931029101722606518352372391876971673475161307726329084394535649245617208230363552444743533029120987151213321092461124819837268183300351147404294582424771765206645751544180251920605511653580028764540143055980821514548664691482644661123817217372820995897694711508423130013619131111037778634224407129688060354263829798824356909930107575250361336285155789209830263879070726305532098123785817060746570386238142708120217619180193811693090725870736478004300008070937430299555765276553595927149250086883872790828122796447076588147913317837404076172995871451990830121173366071100639103681530855121499822696542831072456307629178226496387876861319704023525850315652064306699025568757706477225562749502992690998623352784288993540212072914485634340747189225119730166673593774555274590749163691212699979839354025228053343979555433771970371940616869831856069229150265863991961384257611634196944972450640287324094532594156207405635332859061294910028409915446919782498615018689480065555218495395754363701802133315629393133549143497585948875979747897990300402730024360549592592603525586226819334267651878037748360027360102191032147369098634868146495050308763036009207818701970043394798179940150896850794860279732343498974375314907725860723802758603823507074860751492691663718179072549310689797461558695640505176147234295383346294888475751273979791501694754830891081645744538122545671964017713308886277181179855752524008091805949441060319163440216331155394059213982819129939656482897074573238911456204040902607569303345577717264931088974593271390090584630446048633267273574711774617027037786737057005569586588255273410659451851959130244606798511197103527649101640652115593024133022530800385864252121372436294950989269614887419872255566979941129925770032629779258221123846957887608848160791848644733257960500117985261828804203565527538545994253262575640862417043708660452379640318700265903732768581666382247058349054289682921712028340391041376364009186164612508774024988924990555102221865470889938531919568806248067548313170155744449515713286177767254438209504120493017772179693076002263497324330528797308877125200092858280419712962635022063280818215723444055542807705849952545543245263563152313963761866897805680780194511203436557915436763720339396161048152491377305898591633665403931203724749738979668119841143585154893156391789455589382845536961804078534524393137847829012681981367290352006684683175654587640719259546209158224770481355203189139573824272328029793824534585889626827995913671267524326096110063673133513078907645434826428475882407936577055692705671297288503110015896224725198075724002767578808123564928291795299156105514339660588174708249201004495989259232349332684538118223708441968935524147119243893564909620430282633480394998745168570360126373997051526597702789405557883308505010208878666342586509970718803492043222387885132420725873590104459113267919222171266360962676470529739503096585927797029463009841729355502046861023163671081275518932797982606276745936443715856871226834473495153038786204229694554772834885248541706769596393396972998264104460599521043375442475816825447428545294408241293377729208019512739142511784441369133245356812566151480407812792285011482616932673533710153729259495811886267780624974482286579471876338602354705921944251485079811944466123240179481602054518822095034192696496485041204804575769842698603661409258051767474981979269062497749177134363293142147218911216735601200971521241365325121350780393585838880785153786965651124350788987256676451389373314100868643839508714969634822356228201808986270543726556808250405590372877853697476730329421166639246317711196354002881606334839211207147713088200718302759874226365932538805335065548423606191723375662077659212287620292593525522329537309050610052786464200623857043594838011193130842397565582491059564166745428686410839859948243887343953869408315509593172013087523249321038223030988595906135907325764935483049069319172366032579878892676627485096710426675262640320033624520192698808436573244809700293068631391233455949760637391219304975768248347242553557280478963477974684287125917081075044746467009652035946761227715361577264330039264222072951047222407320137768382252766576542991467905754006129009717505705750376123629630433220930181186429415435128594697089203232716996289886210146657822139564282070050406155426318910320728163182808522188731625080756850994801347258482474078814629577220694082677921601209877609424984344601543057607422712399878567297170367637434163468701476683120942348557146353770078541450747141758893049270675796476730983108588377052098580296406408957037019715846052901726992060833196710877882094881238492962991136478179179775945959206871172849118958741645035605906492731792641797781519425481573292697880454768595009473278374171216354826966546170223307339761314416290328952712707901126603849078393676706450575747780515672330445129338402634804705602358030435965547898836842302457695265325149982656994145378021342536402678807860929945820330390395898281062022547525743991663200930160602911189251908624433031368760213055590861100051066463405192849462169652300654817039462541777344221392780425456837907546232826952348771883391422001711623109172194502079481378321653152876828884028817135036401240802219986334442870728091412506351878817511989375045041732889364144800348005127577192345101209671850537281011334745933212887303744659452648189526370345844824649615694949296294697823310471616961196523866316903904669595491177806520708571285961309730891131242717777203044657966510817391344910214809723056140790822783439436362288612534775487897318646852323403060550115834869033231354345244853054130219545756346989614066190716853950207807186320106232814238803860908446282225551187320804987820401777770250262073529259858972545675995178492745371351866672202524667531324131479306217322226018943022377490922651298064970728570341139129152186960782359431232367459814104286509417276505508167954379012531364480670823737352096697623629043871703770189054052939493193961398216392358942276230786418691633718967673633525317209287622243678035371801538060253620663612989167532859888588553818993270806874752745549805540534198812723990876747227234568591612708618463782221690012003724794402292273489888986982307205268028409660324705520164336765386736677665527712720819550797810290916441854684694241161396328879090936571946581802654785962780215688729265580444107407550674741110512247475145007160785659540821340239926104648868716327735031128616881681403733605494605329604365663627749385428071853289947713309795811673493687115529109816997677546885684720346232967099720831911203638086768279403180738229506965120549252152965863913586293641000400811536932618609945019757495783011847817943833001088329390694896454882608895789231830404710790322787662512400936070260746002355225911299900273825104272994060994751604211112066676796012349026529869017954538176974788005111827610414169637629205970691001641829010773877750357831518199324506653380242168089585557789245357394089233934566465206541034988584688976110992367754872868066249202686753618620016522289485168245675680388043812313299815850338613076177197105368165703002062077974357781815506708732484432906661973870485614284101003545191631887071760310561146545611839684200557632630328547790511021932529128093180924537147848877060733145280625710847016124766425195706725414210514113350033387931538477651149858490677290973652730943578529369890731811344072745803259227750294855238323952107553438015590508586068435026764437247146827321295481222046393271031742488422445015349850051913959270494390375061317154779602800529359469091802567941986803804402300257965402899856690959594067931749545610123818906273764816484705485698361467787622284551434475735605259587493657939131142212186480022952674284460759370999923524821150727661994931043699205630858400396194002797538569946336898614944225987027551339726668233155545443048253736622891933853373779127151487438923776669391923738573926935457984572091362786604105435000785999919879135170413929045577489155409185467958292550259607503705199813152393152886744173852889031169573861166619669378128949418506419800822551085653293496667568859443980895987158119741271652690544093528261397515257616455281970787422111438427850326721111344747916527549316971767421820689133256968854119147824746945769939262982453237198760123899226641569922365634431346243921587644803624193391828064462956526254369749937716524951699709470388843422071528490637956288132542319391861449766976575519991783700577239029548763066396885383953104492000795017375174798826498954182240544137340638585557923458260101297362191308235597502947946025103740160790782091498621641231975472780645219638858431391871683998424394568011676572481244216574887928138213321177010298952641620987471252938859900413302561661060279987607346970039943060691696398206440872136113723479832716572138233743148588548623215783063906446986117721722442257820380391190452892368676788068712447300781441274703793728072976852613058973689861540951053253644999677042887238693200637645362462117699463681157604452716842774872642279987190750430757918531709937989370556303447368241267899326300067650457761398965941402206349868063484457115134278202674724808220714482724710085344688630112137038598596029711756255621280485265472468903789505347236557227948869170128097865870897950481189767133657494372241916517014343519489624321543449146496860092261943693965624850773447296660189767946050704375277588917875371323941800044518437193785067417244081076418751462677027758695479052632478045789392996841337552591159686109668332072938411246549291382426941923554308904656585328317257545656354554913907394417070346142437778334481104128948295563767294066408874318094383450344885256830799015387786361290568326957142212384177483937133816822665583362313570998014281587255331426202160285321898157780081046308594615931436314455907120287741844385048321628711795904778564588733183106513384966686078594286733619739298402279136115669039983188305743896844281100722217299603639326432479114302613418249753715175709518547357711683791621866556951000024150236219634080035503629188732228538289054930651141746851678973720208209316337477116076372781580955008452713612701221391793345446916078945994682530195483133720729400091931919915378948164018803215087813561709407490650421366090909407080176610638118441985893889272696710140429843756947800741378495807960872478255578154091336076904260026633805700594173403554813187496143354549526218882664922742535357821304226778298801098143428880583249762803273497411272218797766213066573681884651091681995489441480336356987116593506620195802280956170178239943285618535155680023020578192569293873358507048416962454493429421423446742987999466153298727459285457193153225581877000799276983746321626700858774931117686412714825716327341446568229137103096020557594559861382185456353275741017463412339355367177058899445951685719001001658179958140106053126716444518988603034062079751602724026520214215628271147745138165214354316227290070978097646977483034960642232711139055011890378070797247087054788989499248142429690628520898501643548956378679931397179546560292306776842349130344313917977210546976659530147516728161102990206099097548184948336874936670196165148139919785225836609273259589630681765112049065370195980967584155633729764239284989542086244109423434392941506441339015700951274939478496345535196052365784552456457288556565347402993222187057806939396301891271347820728876061133740255197916714119159121161771454103636665695356385955361497133545746580110457739469389815695062399097587923278110066919890595373943517624049869704424330089880053310846926111191616575447842573782552423955438811410542569861864277186941463481649331704061590814599973286622354642200874554338076422912718183921362656557199053226907354174966619956247560293776160751301401546695075062624850766783456172804873651477531189819089633737227928760066357291153784581081475839306493840231851001207633410246102956124664223577064583665784602156216064025687769079787484246180769412913703558553311870773776110178149999706823258510930461867160777957112390563850195277221860190776092435836816195550872823712700526432289899537447675804509789165463469208687801833647865402416925917733302956488400592543959525762463743435645774354565113155105528272642859482377156959641685774712188577618044682088371625049894407735902910338807682149738535377018456370879556957604644822800705189613973281054297835776693179270736947268526410255292277882498953187425152169592169686938664915442674271908980616561033898051207836906548415501143797525620553921497917510928520588754658493441688074332944604896928006098984896769706336989425597306514099827167508554394768586600783561803152533140329097610502024789937068820830765523511577201862408286256079381044186965860774517234555986540705793153695676299003054514422942732515540193820249484963036111962122611785864671314878581499582399529538196724714819208009506264023325840058426641589353309292542361411597787069950842593428619040257571133884752167450082936873299225759396879380427516617353986914152157290640038414085139659948693351790331376038946439765070033007871590186832645275075399648170386498757376613279896078922296194372011544048042182454760389841904487914519549034685376936280405747624240662628553978340471341269938043391999891556105055968675144161429456416166683168211875224242705634022589409091541167256815541742354830529699694370124651646733645823878342960343571397269695463720716629789144075438962472584248905689871905764914321979110040110482382926983867556767461536069081628387096188948491754080320764854111031585501042804826071221958997953981606726709455946585651011807354979991784603884250272032372784870817706130438561362131638769555644599563335377267350066259749749865225483763905130212824832589215612491653189370233348218241521332258616723172342742306490170502021416626072031484786673298852170543297682233022472805110278172185227062438746147928400519201685602142469823507721613935590904858632252739074877831529506408370805315064357837588570017869277875163996407390975616323730188213063902792516866750096527241824374973462132792094843103861560772728866845654378457355634939744944876376892181327663406912620227085472906569142181151692009457405504676585488705689652184285060194184040684047193782093693149034657795783627909863676615242879981213177911336727235546764773539165169259389668843557382566936804512316499493382532475591539775257037252089800931156044047471572970903670219607206362193407779633238795155175959290240843171848654409290157999567457258777896827591862406270756661192286776204323687493899785849777405961534717613071048263624289405605609561906950983048715232205454853143935325487749591182948959764757074228613813608275017888371198609837301097196740962062959239603977536656406443567212333365406439318440169330031566043203205556094635640216176695430084301235581605732050957850730451466098174660733780931520796163782424230714100393274318120384889320477492321236785336234333243486161346975614425890007556709540794339814625016358007595150855979712760934785224303571285684223688004705698315646902702322860558571728698137132533273821412209859705902876572523853922994362122439216553855041045304621578702026956011753641826648409345087947404323002741607589293231525603199842510188590390994121187897393838764346797623094511099921704859300480469592148066126388305513723043674270529268008475277365519390681186007089138131882708787509606637806561511474637008944955514076894881067025527561475510186340644967128823873307405422247394744041972621287055227391800067186852352091387654198975666758157831781163173343476445960344534877251026940752470504225901353981125206558931693425257926915507112638749609634649064109967626937056510390307921818806779090655977781650255561359509105170381557962395408239379599094910898411025452885392038970469741542503880244198583525511875417690360094448520672798575021947265674264736232872044536308427179523810873644186375583269880708747416552631101950739750617626953028264347122046232021355353463297310330907142764202696549310176189893898515728439799985270630747631564705590600922619063722700760936706116642751723423315247789575099791216734950451611964363477398892176502518708836962164983802102311607150984513524845807513811095709944804010428482178523776611658086086575857812477937377174625276124368473425976765836600093751113755355917837866238392186101138118697582214726426053271113462171037809388859240267092060921590015423474666196534700976919777665516331087935728121949405978064160173175021368375435119548851497852244058623057588831133263030408482698643371225627568603720271359459756847165933017327446531877009394741198593226430934536350701090794875078107255601884903519354192020515643515890586880030149557375233936519848386325546308958654664951998311567897858607512810508974242815080896459889758223240143795624585194186920404416948120373822999945559778602276534476987177556925102260704422875561589430909757236402515300740081235611261437312076494936520423403648262246280810663183965130986611350912125139139913506652106003893792608143751130291127998436069219782712366468757725094171844022244237321780770219085690348596723900370707974359825631838903988054161878073971758099730246201741006150147103435541700622996742660943699375257347352415065407846135910385529998625124622025802931316742473001088198965842245925035506569510767549192534075723778335299404238346814631641939642349389579554648119882390845990501623225756907830987774804415307174612805359419684618904253127406145414577608022336438754667693695418577175029863280988786558893122571599054141453961740497852702982074972073946960344734232747508850029440047603877984964329397741870802148146908959706055741529069203747739659453939976405796141551507555774490471254772110480618927438129331778635784823838443025575703097467569634734515231941323291161611506920406937018339869778445406795311618438441426195605252090786694074192207374867824733297571219449807275672267290501517162170256927894186488510165162795083781575465134042264253430793799009132727537091382608102980254858947993101517890280052181297052217115198356145263592744758745663447536075181951087670317972320626439924002743625999589254354163793613362700625437696343009087514199811739513180391894199544854081658027629902500854679701947829634950634508858480797726108882191666858063385580694582788472551356777449857201198173596412432840457916956820239752281708979082999377323835993190045850345193919978281289546485901688452352830437566330569853593320219930085393518984927216482363799834932604681209917475329067523826440299948314641507080639120487094195576870460687631174843289985314465992038706204609332654154742254660602754251573136962793853369758534947864247304260201001920099167773101688324572682240892858459253840368169475277067336658183888156994173296021866512803524946697443039855209645375125271360954058183061110867845853179211825024267851310719543221423868792291566222714597476057501833998247131687892894340636399836413430145687817672968516376866643298778079077298832126432769446463611486717032835609212682089100702764381078992508594903734956992525523985433418060635527817905701401556173881651928652406350676489530814164433001786851438826484706698533017626098771649658157397965549876472226836806942772571302743628870601336526425308803649065970112203234336949507265033051066943091097749328975268339783199350143776534210088167150960533253643984760685100802704169781461766089902747727159544579193028639841076121444665314735699573152453984391381874214182372746806013077167339482345902580041156299535689279778603417633106831075213698659019366108096648294985673247213491461056322861295773374322273364090925440835274776691707189157101330712755729633549220726063721683938998005793247579556383992578379323518313108627478324020605334428862420029422982841987324640109071005835085021638826909327513587091440150108964766347738863237284094085817561903717737034254616761335836325485817233886205259263457885974040296996429352365282382278347283793251905596199825528977212169772994699418770909911067963785132079055041859771270137692917682235156168982628798344820569104613019482871678372976544964218480001932082874455841548117635654050616523448066569715842640487135868653743173878064420594692862827625562854875459177705953146285605475115724091581223777862284665948498149901846893657638738771249241141777401620371578649042133300974698965811299520732849934371546588570754880104418209216784017821972134398276205789106924843131007113322340780546598724790712859601617540638974296562627873806614843025379690954319551641397994864489971145514111583619254663250590927110740461005163968242531282347688721951298055259556008555398809920219990582964207899136736455585592480917942230721684969197663984817280955868647793767164691654275595325712128352873695209779931310315990444619454710564891338735154927555925303955594418420613570835166509740089608116255979955696131530680472140906695302444105049842931752325555065654098289078356630057016916390438451752209250817456140616646601994357567731285274933771676107788089910498971045395137551910698171456257138175028985453576829501562083028144787221402831704949822127170131731450532576774677188754622760378363535745233995701180277607200110985080335268293437132660469116328413858738873087026869726018252773425735916074465298060140892837165627812318667610656982703848868468703544022052237302130732292322629629544918812343996654562662667660396933366089873582607976674923349176283468215586113571421716882139429043113809999102400975921359269891141320698205508133649062387813570902920167302107237139396312092804294377324256237538568268181370946967737075527427745778559642892569622354172122656092945962025025856282408329586739291880958492186620582302279359347602549714643473643168672992630048347864711363095929854252940522447586232811424193862049216599123187815568991013643747842896716638492639516489351693129953783789470963949613577371994160630617121423700128913463434725448231611280227892930741825886774495987350842920549993832157352357388746306888879269950931106771459499070621613576457828350467373557890927550977049409203818067022142103193570067869564451945473233508363680067009910753718468326964678471910530020966828105863546443100997462952492007260399321640254378207355417904517828516744539060935036692135534130790074051500189718460355682424782297178265828529388128668894114954611731831050583277119485561397411837443595309067838379340335050948455840601692830203250492578897016721986376684746990954588069759703107955969634915530334176161585284772809613230861339039905072264653574821355564879751716332559109385470824650915198506790078805559044890274292271218244804836817254179020732646172400076207579641508449188029673827232513580474939354515828752632070141053664342709322242695337745348077436471001206544294942752111431647504880488238256489157665198442738625566217102548231842062494730103340506998407685196259224967006033340831913072900078765106972561071207574720488606861227149514685718190036426278865126226004001447185747309154589547328876841571400386038347322795235179447967959791198266828458469478315352917883231460634005824833257684341022916170051618917891426090972402937629976293480681232395784260025900984305984275225638712739128058754083720739360804270825051126808237331421149450466391078353466365312535519821725167128932033839870948749278690731400549811845772661816512505526298896048907307232516123886465551332789911357008838515677967013201044125571395737558103028135416532382197794780679607421021891413580956201807599925477069098839077536062497991994430212250146171186586055289236586486829080636487176840422991543611805210111916921302571649085290062087326831888247711871266962512456583347330574067370759394676386036927420897621926018779033762694466670992604103199158429886182639928171083060816364902455793101212386553832028249432248280605690338966183869906612820969815006815913436401075063631452448137167496520096852885702725513338234034746621897517992208481889952091679910681748121589037458670131502332790764151815326472821464468448265423744246905492548474945835397266893710690036700974087503702281061554067240117198730086036342517911289731606555241956946419162129298886073223908657078759598578696586663277698131707823013342511877663089204820112892813104893552485848512127749160347639443708817419597819105523979770597572981844040883309993196865903314460907940042390868672926784435935041877011978081035952412955493747591262211379243532479732837335502366492588084599120055292842046533900016379070626859944320315799215109304488681264470182820386437930874614469931808254763383609598729447898688672713104399116491157197019312782642191249656898726178539320043980733540790992953908948408581109857526708338827826869089391702062076986327514404560051305638493041197303997661348278497759521668286399832319910320393526300555089863085844856843562175727649421924202546156860177430355308779276202903724642309623837518357582724060171324855442268027201803951491890351060555103813717152053705176316073225583951125092108585787330801065297258642765523844883410188678138490122577103335492787592672258861082347152624610229216221642132425818686540203741273931129999392595355056230312076729880990745200656045754061014341283742755496261443289612229052222527359524574193033937864552510135225320760035964694467161472132726252664858646620491011653632898369592126975172114952963376758652748017286581581056360978815439152008931612696166234199125074710863302556217135057105739338596449338743486773839037117601657449669971800328680781664166752110503394961453909999333458589988627693456788605734387295169485772825970046706785166975816212352219997272768605485947853922633129842138403376354941088301930613020790023217250438891760636167237116766866247017786121231880423622276461444700541354037143395663065084152064575949618323087282344677297162847559036386232416725247752945034268786405589823098769537334189527539222732647243869111049444109962196675442771332218727271108620561806871790393171672546659497461559270996878935062089786032603204050725739350099570739725083619315423051246502691960304092541941770786332938678787592015742053204036810246277418970777513451432836549250977865741656948137729506418481343642767524503515400791454770219497758208107146907381336856884821296963811111525571726631452497069173691064606366928074741854665078207426765309166338806461391793119792659367450093845003704296105192148517870542615314243920822361632809391891423577691673815389674144281812685661211739598444158663653738637583770298443914396810324492899850688211069620212018584331178027228166831343872216469620984679020542647099970448549047417663458588322113028560094135437215720937002053619223676719304595659594633723458232600973836102504615226597123226448863379084574652076239984520382838770289239488885888256886757909773763132554388391749188538266297051304550698493791424394729180318450268985269588870296109091925905710296469492279811617568656130462116066317444958163887339821118813923158658065109258053333809861378551533919215795811162118520523256833333197527196832825602472842211539233438227320293802570234439140485341518582479373591493678768931103994600530139515683400202593953516182803185155414647585549664079326154838173230525265089694476499193820924116303770845831441887029044609519763498270580292230761910030476702278456757964717027622154780687252754848306519875017549299886039558357449678906208270741582920268591209009121517606658328562682592950810860242816438147572301699858600192166419408477428448988908339446595707833756688913400550785591950187417362695160737018532562419063602605058271867690719396591099061002943082019422953106288493749083978362084972792530460259419251571945911959967512383943456024198427968276857614953891426406438291836017883291712047726821060878300128805315540322389948377767981515878793191037562464132219788977928846877771850911738632840711495974771862173101087332156339959681458352355968932917884917433652599776195525322380253931515420109455145628428776946936083201830419603381183894303300877945825392158827302705406274151122977396040758242820890822962399064988036182838203021679370233834422571097441690762964583662526631585184376295157027483304455895998402872420904762649396369334072552162794171881096595548891099380911072205455478212319982895247329002470630087116948460179748454201949426964874008124305818418074761432925249014359997536226474159964265577683108466907189518182470084788825977286381960676872265977656003064434860109775713615408531866834461324209586047909304368594074691119942474338678655649171403580653786968194917717135260814695916241305263185547635672187244099403964420265048318382867344648367069432762031778378856566236291569039173235290527154563855089567175914749009866021086558334795815978083320594846768117897126916683047887900175564691810813957786483314848447766273816422592494995467141981193832413538288910922237913973524335218895461593367366614060949431431424837223258490002621863433259041027308771858898810504388539615578204824465001579313412153741075088290077964658163441850103280835961059034012381364483856048980658924022413315708945484840324935475835932181593731388906519415453736662925015246230305231733475751219687897024009630037180213871879146342575726580617898779923145791366725909217062615204421285562205234185248267460754996136956701347626318308336497398682889352034450423171905156309361555711933317247684754542236191787113439185061844616833848306628475156851179304688446231012661108077554918904212631269203437616932781702007664241269247745250969678266572833011645221458256473441100876418144574985376495980521125771430056567711512162135799992017484605248305277317683441601994966562531917690215258858182304340462923412003455342094412073420141640747316234573601645300122616743323554615151385835212241747797431743063750853209402398315300980716058953399133750264170724405908729290122350404103333139678049175678582624861030773268849861211698757552984507429648568885287169354946471981757053847932923548509150731470347970075948926088584062932887785952292123360492510844145587213227012447332334053250946294553662732925872155486268340585682624323898400044376149378914116662890769628878962696004455981678982146623641721380724392609845250304081372804933072524232766228480560658645859695107821430118547855092728175660233131276793390159458687747610788851751987757621285437855336780671161870290731795420855389778568090704727015772380018672803082228770701624635989827978975726116976577652646769303979218322834163459884292335857768532927544023474182906083810936322978286308168530062886400652620842145549463848494862931957694847313399090329089276435273309941565522599916001379937705968536678951179698386163754173180567616983817248530593791719013043583662703130531372649482465374237129610202157435012493223111288137038712968390744657868739681172774089188941971204941154948397878603950611041270499323425625836789138686769248837507442731719116788323909952187190237152809877701399088655645488232652615467400813913335373055232954027350944826214954690304217781647317585188717947063314327171767353466320016078004724214110773310093746075367906732340015394143191393861935495349704524728622781314429506190404846653752810147805517891817553420030104831719443888345298459896845842947612164554384088804800479035875939263411132988442233788161031810063506465373755700634493012732615126201201266759281047125534424427358747080398178933508895826858517020048108589072259875417031023946016819038664400537346266312253253374968497857629255852853328064023570202109925870636034924852111963988895675817422626996567246826947605950105553641832752950623106710608548576364914179852090943641230965963343579675198884442475312063906490453769697578286480938916591570784009671682734943341166799846792661239112969909617946183169879377512178141762247559038334788189511012742216396257492790740108683945463546547658756173135623679620877082079491680863975493883745386547762485150138748474268248711453992013541870269631991190871388701924823420067719134776183611468627980168883026532198143304552282290971460431613682914718006982402176860383690824645183170409406779504830638069764373355678809537461471281766950703597413779821189235584300487743536505584998796325989826565815007656038169130498923996358478812377839490812739023557934855618330672322586453024997856620666661213939104909801717465033523991521568837835520408596966877536547452524366859379988086472821779726224658325089919633092741328201372130093772804683203475025931516856430047175192872652682496377556953469693305464033274836914055819981731141831135626713989376609788545352357426067516058471684892459589227932075072113431583444142913442730323062808916641592115640564038828956755738565070683353989066987081453023343752659606646612033169812643015671565604441244966621281665585455022064459047454419600007145228075428104697620627999436181047876344346578294175707331257531924797408034803882279575748013852317346932817140820919334192620444109744768158861181181771000465920242643804831648215902248993168769947654491404609718257795296767859549761517109144796018426186507744080568389806807287916556240238015252018453412967270780170351485586526990960119261808324314276715468334427129019166144344003507712931987176937790450410697517663012636602269636132120526835662531756447911433714029133231596602092501351762664891230295545144101957886328840432227179910179697703841234912827938294121522551983997700213302161557536846074534422661323534258511808578436813217905610273023842039273750717997568051810740342455837948910067068248735260440036026615442612770269936947365783859639059107733061797830264920336970514154204716117537029276545600103087809239525804290399494544343983752887404943194963991206592265838777977932198749450893802650529185306898332417464812984315498595467063693687364377765678633671220314397393389093299890481176628506422810047754638253924977734514262406072347410441790951225874491150750941115709143791535770043181080384544667871358217691276825141682646498099610413534136132962824636082816096660589379044426540421268668246050284217070173316078180036278899655033229973936558455861806054245569131488490384961811619849795480351606426720846385214175283454077579090723907884457908192964567357768084887463041675597229371721016207631470796763086778655961618163823260519566098136228040314755563483678747922166783987445790639982314767633526790571660294036960486333709450841841518712215017439801168812960153869536283904389172875050077885125344642420676643079636607312400135716729363904122832339040528666059209693879827113485424752591973658960736568633019307665855963558405959134048224374121232427749554173945873315039047784841874435225873047890630778699902026820314353293558790059377600075961965112378264394099604233502111288550395726915696056456603011758056024882025700087706582383031177011534329782435072395260856168037226490691813069410852377390928118795439839630019234462889778266936724475123408652876758146331937176010642693035086986171431296911667249593731540426125845743974099326270551642733220159892596475640049098845087158014496487094265276045880176518378040569665160953246380086874607064983306840186555394322629282559778288484986418513366995986842482046407770984894543551938784654520083679520395326446752055188886693235723656541890457057730690870026690940561883121237042897901944648843375960494155320708515067441342538329666640481456086187404524252989504240589970203316728047827593128063042476797846289846812972277369534974732575643193880893955492134811445272623480527753419075561274702455481969250451108754294055134575008373560802188968425854555385368623611866533267228389381983309873390234166374073123074205157620157431930521280541872768965053239933664181259761967408610713493583993965539477545085720701293559500838258657032572079441208493157968269624056506773209237701710197698573220386868657651892165985524293036495280516000917824683163246095252614433002199045632460619424227351354923982846853084932936171792848340610942742342006252282874238483431751743745158898916544205290417295611984266363361313976049537906172579614483356815516894757397718473375355659966104487852209018197582370897083405666288342743072363806669865546835701522402438736547535798946994960332008156887921653336535546368128770160282140908094544908201100050058663327815254074793464441658625013195733920011897843300700374690415406438933759985915007439481300762625657580348874485520556210529400229915248589245411627397749297519200690983069529219452938108237095978712670290456167063075131846740969579819780069918921065777599869220204292606781524679319442090031260869943554569929078509289427477954167254020972523575287884736082087835908891434678062332702721468779857783377035013982464278189030514810361469561524661510574329197148491012453981901129659108083100611751313832930473131549367705604005577766025596443364983090232403837318614632117807287447194562690874231836415664504542839476768398227114578312415840139030641785368835205196567373233352368975122982734905440231290883352804189791422992501007114432211999928096922344973198219222398309386639759150263364809094478579211961985986059467900555966876951150795273640225942258018189452589709550694045924385292578110436881106587064102127119204654209684063023055590748090330182466174050540458610883122184314874536835745079210595624531656434385200772734899683799519871631057455181167587389075472800472014225436876293055291677031245980403611832709518417819089665523057133853863433252611946604175615785653669951529019052871196493777234029404192378582896905860820766344478193405206057910433155388421920770560071998510685245120676082643275919597103345539220024715774877313651125728369385271553552979803578306940363730940300586387570568922841425268220466151343257426268811325026850874907799032992689981500624704566265995077668715608940722445674514247189478615045031235159863940682223579198302032174009116229375860859978761683418166346660899892170301357585649237156681101762648061219249598527041902504284484423577455552775378354680087573833945778126297939788577128705462596903912547861521978632732767600606297169835375521869507741897299780087719923796843968239786649733798764621236634115765531850035834498646087016336150607116757616977990446842585296720025585725633345115982992953256238349358164160049365807831769075513533196392873260952797876270871484256117537938527704826103256274474403567246094796720147438660807967337932571677207823934955294969096950904627446316510318716765352803177252652237649771163878001743809746118687011964518909306895345071569076407280894177831531217163002098429170378638109167640958948998029316061423533451750088916729045508840796824105075755453386683036873739349555428091740838417760718339873735476449555986527321067201785670685988913616805607381360784698877231281055621715272462431852803096834580373040498728800378631582635233054222848103591192787598370467261169474648575176602509736754108400105391890352065627115227885539302986400198880436043475128068059935791816748139048120072001235904338628833088587319666070672859770656628975991609173067787223425413518489451244988612919176231237240209756339319372018040369476770008907961427262438811801564155634470910479868741272875947122806426555938641683186728258632962147204123470337878762706071583792612924853931271174121567019919260571991579836096367294171745020503840166586529176601325440207693585101011620674354771586277751217511639007730707918350169430164546479409546583733492461744678642442837015315157844212698030788873704389905663654738118204815771326707521862105147421394519116917854224356369954042699937339989377880171679882087884411795269764150507443176159495353215569810759710893537889742581281751263303024639461857532847069111298146586885681614844011699012983861093207052110619527050789789784327159147874811705172873013466224147285647828071003504786370263216706630976531090651967991826161176350229813800145598615339173702554065436419063793892607812381423290527894414393830646028331801032971827533786149997468085578971589818579902626212663819769841240456242520600145436456215199116158568430918781430163831804057765793797542605706586117676038598140606703189886733700327888519073673951833057131527867235153935307937373137082406880034257261905819541478158479522393819248875451038275682448141026687142042108921131459215703443211021274502414726787526061809945909382758556875956345087094757391140228092737997982562424250336683515060991329104006199880324069006771422892281225437383472894905907589746732783157436663077009319179452403290273770689840216195071351751709210364335178777245428305002240554689750862667327905668481671381392697965976018322731349234210707143061533165872680583960483587611985871382491936168137003128720151003002574939158303259621551206737477186066420859133157512689435640899894895897942233709192655237274060523446749258150074286145115584474628943936207401685406319782538299918662733772108412048320626309565091767898536725752608813268505422101004767697086865029665808802451494624297540981393989300264959136226704112741059633246879378234497426021232795115606514868453390326397255020992304957436743102234277625683714376935998409910925827787871687829703426347058351717538662646573762686290382976930875504519890903952579452138206616945503848852480988392866226813194868621428288629500681854686234556416595761960933066065765943266745728301915167776928718768298073357279732165281021270254182518892825489427457156432536084383490831583182259307818904060786204486944066695002963439123346160364995552254121465910487845899057558777334588707499944835505915209451523629133357452365455103887439202983987961127276738407161141279195159261898146111235444078639177142482381264050656581914533209684312967466951436158934304250529349317579507955506833794966038127193130017126886926806671345915897417390130191616538388881113468579801674419567570723506520410836637061222879043437547831435863476334479020876990665444930903080038038137149085608944346622552870018032070823885989181773751958280487846006927209310279974277350282389795386844989098272097699458976640635113492416202982488318639895458579403588047362641422858258382286490881369552476692214201072778479588405881386475329584534543534749651736393194264815546896158734395873694964233771768570239089075678146976418304760282054390102616591721068567055709539530786113757034048397174435859272509017695836064763884307390674959770369768599173759591749449509307975068913789334043373070231781020467071505567211314291432326002769094669532523853931086553316113365819948025601682741296523194389786655471639394374900856357985336786655322254992508449521649859999251249644730813446210782959245052793315630195697872180142548174176901435092724951151464776896160366398865118205905612378906277185247518370757301611779902153149823921260795421124388277230202167238630225303821603107166166223139773202695520480725046455934593333255928630561711339946876478164338642321912986790212769966567956237030419250654114004778005486095257271527257938021088127629078326157747754540198958707248670008929468068360046802578401855580114824390474808403297027696127021788427474214235824991725833953355956799970369670307181170964579052115188669090068388319720854687850697461109570023531040389550094374879426625175103219192959249921370186863645299462528897006351141979884132823143594970133367068179916808949526093768294972314973770770858954644227125544430346050826535882299688671106586035448307805830249907521639249535108362570784244952034532679779260606167803595308743690693143189310250520342118905278048447376605359383456638569754779003339152363429540393804025273798684768158779645992726665247515242485881037990835617621146172712083861957005578915182024134212393085927683070737226537789562268645776944938183937010822325177113697686331728535396848340530712279667616628368506489219517499318480005109267795095477109053887164691348610839616442784009377099455884000931908241775128590725523737343215039637911482125511910479653761474521621510111857580989130689865306417653812425017221118582641336937923616392902841738555114066481267985028535417531048634488370350730781961340121116266651056163208064573256410425230544767009218024296930763674281471196867544075739979643647648129170901319934032674604621270461700483812474591860404860110889157166494386993329861395782978701278599609185276671587868928052312860233314750495266540482453320623290117485575838533650668307315232249103536146080593619822863277886905520889250356078346923408576960591580738707113548143591473368377060307398010363604658047412531121127906517431986555245079277683561300474411979057042799702684101729766001090701959533588334459868383863305531674549011884863752536705385211421362586195647061347117652450717608357185189758824629205016900978051176164580789616457592649147345127287909784579123286075489370164534354116030756942463757704115831622572278405437560067469058735439555890829072198635614380240831943038898739862125741885369289205448723998655972864855012600857616475899400126272690450475100557496757324154946649679875318870548491346514917485238672918825913745416788697429903594702592814572981552068181770532126559029483806092054715721305477796573513731722492106207955220838534857731973612081377298207337246720514659390989490182818658471906841906762185677805620664217459980829319079873723107961636986878001849235680629964078313843813555488818570565334930168173652553333248829186400193305085863736432242103754926223780349846343869625203927626278302495358371660546904699941679351345689367576191245319390735896380053749826468684687867858555602717353737621870266005697622070947303940127965257589522477487266409445478010659670826024236036443055073341314098189534710264488527471121978244642592867848244802648962650932391790423488630246728309242308015080628161979279923505657672340626461123959170306794990196963430745228597659727656141920059236194691015921117206166147486114729452506787906107165738422636580815253184577349686208383258885257560460254614028746059341207709147791289132130715124538635485118595337169278349733032031689377493602107522716644885712201567445863227292028545904866053086069900731163256378428492343675408970264885383694494137489034167701071516219427736682392192047978842986490982610521342989954094904241474392308127147470703241687881022477934008068737541692126995821808456756209873596227088474395665001804990332950806698600540858683555503525102595933985022293907228547728490141577728872764524788439008221897803151887506102737737298144422432864202805438560347050882667131273599542386112036698109901160707813277885284388369595267144006494170762852800484830123980969383734372816653647767714395558589069560345745354884870272474113848908744250439099781237985916263811722675476238803998999049476174135735232596278207230592808434557679192943760472905177417781331682172843230006089208774366904794201076941915567059349606391462545091283144203929696071014383452917742235000062081820684114102323514511091609212185047572108274572588333314617894708296173977227032344509146847844200306850437860136379271156498439431867522023198737541340235319826656488219245539371367132492880304432805377265992335285975186881688071025058696582326947111069556987777570528615448546921000458010960413378098922803090524694493879575449143001877195953168438820024810243930927392256830428404629962750211403498384641585915903726803997949120509769911223963674424479236170952268566879547944814672484603203000605624906437298272644438347748042387785390054422747809647293294387524394704386697544319519830013973293040191540290029092071225869987407772506241400432277856163588714636031677232728708250670934346663990860006123381670257299686295410226588286163774685621956671832114420010678691961457005555795878383594250915323849851291859369971844106968422767431187135068764102928475044761556786444509898027265134944515197301436817218115095629605608358188199961271041607310360318131986399378429199683920637052773612858086746397931534894269867771158433845338081066516422130758569966207243904506667835968835511528803657332815893120218048199830459113177798154625555767606172829492228717482945753871304803879562109216456949751799063155752532129596618509560323566151981320747567832799099450070230759845501585247233622172403706790304444975259794007293099951726080562100252595261389860570268870430014851004554214692099243925885302335825380447065715869471422402912667825898819301357547257031950622201565918545074652782829989710358328038145506955109331340464238231882949110717600229825597794438729790895609268597880102023149906009662051326847524287712684495623253580233819838857757772728330903194870903080612709742320081029856923037968505948921188347783384605782707868250101190933157093873115159955241104351213284374401322421682387295080966525540091920084666676720995998496596023539596590502246698775297730318076908785887996892125206837018012676176166772507339391761611469127991168700920835196239833857247671673751307498739266928151972115334373497246857267857642649826077007878573695344073999314061063938397131916351780746963216295677976880189009922317320058695652876857932741166831368283763370188388992992938208799589194152857815619017431847548558968108196590397664557187651110944516739832296420932653588487901386798806800779181643548248456996410245601196450760802388576822743012736017994143951714524169745422528124975004604107724882928607908042820688067737524926461719218072519927395948025069351024617843792614363473537411807824729394841872357724827526868413266587804724872379374704889329673193903187120233728899177999587599139352973213344343634377578328290686092766939761302478297987144496382101644476354575869948747485262994754620055311862754187803511269168155671801500872431227445279033477950823570979543767592935748742029253731826086079709470496527994072974834230793835888396425773255307385023254669272876533945309962410746984362511946674300862685577469292353056146819216846094906179518743797694801678778208330384185561167949644638626637338655956215429867224120509091876289847954306437274386634740297712369992939396922779712069450257340372551311855041875000266216791334651591665410950995932389612925362583561199748545551191335078332720934527313725425426156760196643812089058986624020280074339473666502215718717369360580696519636221258680130268155078508961925279823282936525494822703710040315798181205015704527078110152466842221110642142954869003226737891980179371061806373303712982412980105708586593616652452751343090849356821636152979674968433198878531581883937018043189948779146078863327513345173768081573417132932365412321095071567373215739974358253069398260596354924795490477395068894258618437927812505446767758978659895140669058810024089452433900897457028957462635398183002038575941344899260003070367625151624320496058476155911055460895554919435368151370743867756563349750461048802422445469822737005909963331854098424211243518971048862088760584745363044475491335953200850141191989123874850630026590438672639851743781134483583763586315527630701379049602317923689460603356700092726814618062396069244111697576757746429991916254674651786481307707208827021121455087130373958862438334288708210929945193245527489097720931374663094232747896917049815479245729104185809977687551101734715616736938347223248953833623333012731505914833865905157521780721138702584787019140679053903284180885481393606622725367128714998368000157645261727951525104572677694208334238697685009535422754474965474686652844113031647397668935684405453336935130867562457361190632731011250730127990020433870234304445775924332776522484670710107053782339508418731768166690314211250962413220481466762232547452820732203703943290256184127324498462644557998898231649941142514220675683150920961980861230704818067570213444205807351219491542833645763215500851199594823637260730442635929778518067819182630638777831370602807875123443200414258837373309807676761902159176144626461091368957432679412496662796959436703994181941351051892563993944468260837986676926477089979720069229351132057515784242279583790308737068602355913618546961149846637999065350134363842648881107546337583555202846267781947803389979887411949139221511780370585566046701078762226549193617260251718428059073545774199242189067352465096973022472539837087271103870338461001927573838148897406174200188033426026365651750462166770210034212151188663837191587949840926040915304875229392943042453850829644838913339026495244140551688438351595147421987122393447385622838378545796319570067503659877573275198810439394859217962131656883529122698867016350263591105738985551917940610570842916293743609945567681456651215453600786111570299415925531464299733375164566055252006552313843587016793109159218879167708779774792428978811824663161770705820405504244268048494072734240598525942392844637863594193065376162254799031707383615751246685487735196953930584041527644941182395697319425633071308676392946514984892824659026028364198812128883837547215177440433506215601638370195288379092236642630230466975408613312829024896791564466139662291089059708010801216376890757958084608328285739350011769078915167688275289122818801338299631170606611191846676494334917008613816480273653290846134944741917881154219478859145833786363478734392232064369663994363994558038939851479847995078256111152272599735486529258939083005735789564804446559087670906051449051563169337930975589023115758678687525394918964727366206499440587255748518761315155030920835619750360248997743797236818391466115097032934610695853543494491823947632277855856156512350411992601638478864951610524315056419178741207198292793540267042758001407809236570969284157083190696149135715945146623676366480874411677353189412209833437033650961995968308862867900180574483925845095296705885771858350064034003713103588087406168249294685619797588052419675196989177031825009894486526537267888525436755736114496401390585352177930773604591295689463442840894550091158077380900414451314564548006812435416427424829412544276730723303775897360323471759389775767318315538115709354426356230048649407027581143386344807932121493455947299603247178379876656648503170438246737994860027728848284232927107615544920066856848478729904724902317499456471263944761575538586215164233547166826733785575882399524417224953186920472193983501467970284365103099912831728851927419962616246205468503192892022549458257691901786629261943800978701145616193673128356204432116363853258753531219354457809208423136382424060407930368191818877663678329780576678812261957268457120595536449093339190921182771001099550345365240647721540092158960767296983855850702039461808553749578645579912120130335710517578469494980868740573041415685279179641350702959678925959105666255096605301580419682386670011657654173196859103131457860717057789448463510277733283839239065249907358308998685888744481080205742715398569876411620648776049312862205719690888995919137205275683450444282911682302232558967248167961264838214880497828467975324353377617286556769550353257600694657850786550496719291790514068099643833542852169934306656122278529448192822422870179743202398201262763593500188449957750168880621203564258917909681958237754378022189429468954459692756925298439429305682843789224317387044637423166087341630863664672613670095393400029675362235453538536018088623844002424936880141190595125784931401287664698789364896519512506605432891272086289045549347726062955613005704524474781694019269706609930123341376107262777118946089938744971110447964524431852709641317670949405204188513226833788038466463028859379213284492198109551387774693597795898321743662602246464326927226361886113876804734759497100596663648818655532719060987801578089699697507707529438387288106490366678494013406978227197737927367873472985470626851159482715561730905097685009989097195845219157015112355092501635866060207346298057756761155264156193958950284393457933783859206346060021210808619379907022853137367668036577603216435505472629107960903516448682154957594631130530252210211495166755231145550883903047852109121355112530776750580342854861997544043379530074884482420371945008225576867871840078210258141833439653374359182765036740335503658875945196978186754861664463730028894087508218681263286062246810661771052798597126629286817312169975907095737540273165858312077751238501616621212720487056537519273134512350243621350569181733320901478669257428410111533535403308969939166181987957648532370095582545021948746851435457544432088974134807175096821642310635985582001180533033440069136125494073587184559769614786646949619108952468782665434277194376190613997198970469169560589330897661791895184336787795006031211917760853946016563144227769325596331486445744091134969185053123048486768474060776357241087627103187099771150820390218088321595439418666402131174557318168626912571479685156827145666087478645237995984133592311774325825572800276758238664068885275206853506074770515155946677127207909718012358771972158683927309973867679963479868493259467643384240473013575342211777768702652353269225627804212610918662102393585746443017213698374657104774000482722355145867947155390202383749463302922241593545281462642543223348943924104959817596925877245439122849886868492724841619809420922278824579652276568584667594725513791551489168611529871792818448115631535470741079442680053073062764240810986325402421455545691762751073022172245099053643699402558025060177280319930172605555822475242540052566351671958712586990369354343996453265334982554732952744084873830093630336012647141905057105374997065100061494980306555029808855759940232803952185678728202430157477157230763681413240771641725235395869452015798348813804568796403745269582021341234243737850805551456858027079785597795386271610043116956732425088046208938215674000340163519605066665295620376104071350008601760196950168658056190988458464198423958835935130886937340426301246107989601290538420803606805993322975927080368196700297462103416480492305981689415116407887526649985034330517577580293620636752668957279861899819546092846993818351379586853681974639629094790197155189658316393411533424875650055106200895416849566613498920255946591277613782865006163480829211826721729345976039651935363640570146524846986718750020019215213651286685670685096720580073963036248656950728907574388874636611800683752497528757929020138588529254990785175378019484620108837758724944072991508414722468585186676115258098937207330101691936268678195991105120985493923391739272548488312176201974095303853095440205112532071401115742039332870777326478075600102498188765628632229133729966909964298798118687599640695186776878674517801857858792710076273549191183942471249890990182533931031702855356735370540419934734402771640091348080750536534923860691486291553956626970061331351835385688449652101646594473110096192580434645270309223699456328473094756477265922022123602405605560196515588529390351473122855935400829240064463093141382484070149849493300863268757724933290466957687039398088022515968073719266419528058705061717924466657496266377344920605700547421407868893547168640459432598762812083610664988059021457017514958693560217916839353710408304981062995253059000897358903594088682537256829214951624704556478798925515338354895148110320198498330504799158981283271934598539016838186832311508456281552125458879713197749579805866949126860153377770995480952965156504915212028725666527956523604143578049751537427783534929907320337990064336048060590719290145871808178577633807751128330696744305620922483756518987898295252982497119634028686016817323311540288889828323314340051377128266037744382579216513116660797821222344504684794687866611995328909753671915917378934239377434241713439137313564201213472449382617730300661405683462890491687126666767313297565885569646568330179868911297242340179167661366492243464151072102740051007197934302313756080616379262976959823925123638975202317082350149948818650522251192359645057284309100806473252882110298557370383145373446515049099610323821677271704820578006215638029011286811693261488342883794699115260509281308471594697994980850226940860020753442334849487101304925310530470238371021842963331422197386217623837443641789549901136815522935823439373346128935265158112113311000630827689026479371741287118961721106256029354888501379567263471075409377167311004820710434191475750559952857293294812670374938130901704111593607546178493063012372548546856594669392753426175902649663308126188694886772453801397769945980243195952385388210710957641809393378730211413872628633293599035607674298202768004561750481493934428206143034690739446822456813736941308677351595870367565462648892720639938976286078230384572852038331794724654966095178351061721697567243679880901696728676819495384609070094019857116524711914413907128821483792428886843271087897851190455665521926222385988825700356062857130658493353622036957857094913904285635754985940249033546550905009094575871810037608883322320240445209559719394785879163584699032875871769640140236643874935248797598924622016115528015452740014271401637673539141237767970674843540080068394192912586344968453718969135001697256584995607189205233457813848063812043570261524554621300911658094008992362032646879641078890273535226723832050162436744655029937980338437194316032107528811707124161561646334085640739594582833387194709299281785040751646863400140473135755101413748362912580140430806459496765695221513624404530367099913027225841240225694100165433981633509165557755380297357787896576308471216637727422222483205062689604232009010656769674148947182767785128160116256387797186055184540907586504410074150331783335988310687431771039076156327511895102340115265854491249940176866246210854153672475902613939941334195426008341684786797678603496937345222987914815270353584103871951991078845063812850993011863139758260497761451593169700508562623309408234091398539709860640861881798064528275705128266331135666579025192543136605463284731835237464694964934138226425147048510218986619399395786275437085814209933862541645380676859804241464630060769986679223780484812101458899814222719263898864185193478761826828078865820372291016539553788869423350731022368255712349577365343623292361913348803882612243715459089810225571395994531120680598992967205801544939548783156602488186503919915925237097609250565506212726116004478607089760731245873581263397841292817694348967301214812109211287161745893221975971820830624666869014391113316043062071383708370670517097115271979356701114747345463527615716265736326278636882872345845722169279615353205308058947786095553604574859033796671993976115048665476700724335683069519782306019748035770854137564947479102375543320685433658425303968292318694862836821263679873970154556666581236849575376194463508273085027882880925444012899328484407496311870692096578889033392701205931527881065503813996742115070659741843873849697358460966863359256666722874664348838984698301948017160443965190294073824891837111512991888899419949451355756978789294916206693866355925302821873889976798774155194323476573674368968062489713127894271216856303254442894412296701168296355196597724185012281893640659332719464419107994913381125654667947756807803943320938087026251256381315114770328299151364497257475090347192587493006229597903809923185810098945323690239327283379730269710306205494151079088427434481342310569700486920972649650098116925404633456638474857718613832613527487804710037052835143457696758580142656036560587144346267570980817548831046906053454110134684913727449568477846483088746107631697264322479693795419699045198266406593711564068233715349369792746366341101071456882413744910254198203408395378354700675659370990708901672275457921397406105704503687183011317016163137935642559307801940333779116411333846386450408650267725036244727769852764004386842461693261107642760809446244623001956703300153613416736597768075908880296242903586969858973598375668791290427166227944881228701178743367564226221551367640356148207232420387092357484941444920220060037639451419062481359516984586766636361749648382067684635039559715044752252987315435338452059526798640997716579957010902547237454117169373920114309135940438822370378013494328740411078857284416063391614034942603196174080722647831369012035690847630980282115816725447578679568882068395428310207456549703883419962707034193309033442247466774109811797953899405082282075716384247008425931193635249144550340201271534595722767363621869123891346109930614714226659756855613563952639589855826176235472453853923085011727894409198510174028389524467369722797397380428717938106243212452824526377750032487651244573133973603625012860192236051369335304820023494220449975083703574958526434908393663185884466532134834924871533831092070052670814757693117936682704480929742753763325914182948769185499897197125124385868749386026877267332487771058902351367872597288047577663044154704701971878167485011857236791814369178021276677291408499259970264695743820095847394344153928738468101931102618390593107493654855656450904268389210156645003016702931088973916321136510556464560570606077532383920736777581092904952323769522492564234474012841649098669612981933454504011560605296495362218713247336541159265040108968056242349241450589572806436512454212948469509451872628890664544880710599876111506579033303900101380969721781262379128989332372407690212605862796350907961768366981591670083801745903495269588078416917515572548633624175644966537917970518334839468648136106450679419778920846786231179878752755694198516608551862681135832758658891866115642337664148135806549176865648589146179799212050082357404751696174326872440086714952818008135514445378097140329484869187376258941272668395092748545209002228203818708792386532694049135878500835968526324106351079297763987300457367505432665975321108427170857165742198517418658997802371122689618945568261094981076280342761537098367211149876659141405186061423053160481856226782197304735180115112063519123090011729008811493705181077349080051110817253785197176514607930418545097052689716933860414225758150638997353236395847566506612938894888217134099760430814242356513072942380245984296733119338244599259656993535923351411215542309596870713557670465016404822815792483508139446929144655746884647361999364963840584629242237212860539669164587733127038907142897775143209058845231881038051525030996256937417771968114055384560455647502817983311260259320087900584168305929819064057197028732360173572192042403140679365171666201213056750588637092842776060831804884691755026771159427031128894824548912787245261594625865546581246660506320516796633588408592306693095741312125385848651532611680910836129306186082457011342433700976370152631558048035127963597776288298984195121522957289571697981145971003026040579778300712314276390965157372503388048521459034987479780678696002987539900149612158510426961495632393801776169213290871621878530600665090990406117059870145321577469513853689222809827737625181031761280303993034431518716133975845660640024953478524280373647459243645914545579772643171854527503620458909789052780624708872527835602060666572498655556184535857951144800006411183290636152918099253025605625676010637616381401058292877636900453913123090133657504341926197048105581603357260065284029401885279711919597720750212970363207024765176683489314655848483968362266923148432904031037749727296124829747471559066281266342177108499885925781040037822948737645610752452797701496606585704856853971159126680076131810517287554572284134731882892164562576840321196690711227581970031949534869715590586437022476737741287038295813805668119811570054333553919456799537825060302946021368239301396425153478808558219291764421297696508575738151086658840445115579074338135899071529527125630847394723916031612127872388310912309628928501500060707597487806783861175675894178978806154725567675966278514474510845698338484561196151166476092332621146694573790962913966043928166820197837636923651087614476185481072887358369551679384351539809542205888309793075248875555385751845031247133753412082005814979640504887832202642720968340928881558486337808319145487905710772852326808706815953352828700846454927690904404041608026814345012677686100530586823190014088302531347389646151452109812808802041458771069410138990649406386543978341381987436845500523997450565708066795164164049624176459458777343369526266779424296405367914839267670792788592566774937041621380038041597655262639168210303639287353293052837721016691615203779999000479304121654638686220771643900015331970142718292081392483146003322488017477208417902587572861374088481594842265066132592111267582355169220212455057471795411167106363875370485848002644495575503469288708984391021354214510039547576181223158866124722225898979570242971404934650115859632701211676705847466637113626406355520813779163132314180018289967889111049493430879318913849335828783496846430217263678667227533327276130575002997098092375619195500862303666032366827290842174049016722466474542478789951129359507403244388818091294927275899749397839149926291678593469870731285260931918520975067052677777682404342375763478834967585406180855179068675532828646879260311307629546822801139876753418123125717977603434711611328493269714864308051365730012529350005066414550250837846272076751875111076594150712543429772468446212545381147028908998699360430951527216352029225524885587758996075644267262046324873308606034504742478998847597384256480552673760255634942937855858443089874862344253509681040909324073127873323831538614259015968675771029009013482576245104039882371625932001569779673677157324866365079916930995947607543208423784182726972396756938695624639923707184177199124527649024730611504663865465486069827686533599090108675035623323163755532088769428192685212202295234740361792389160489349638126420234123127385101908977794939790558549508050279542766317921067439219892874372401816679654967642047414664696112664116919172012413284988847311207065088475987639927050311039427552890027198195620528522814918215477873783344453815908690479240624395713658079700721013734475934799201227776656633168506002285617662802953829594753553700037531786059648327662852802810345868196814731002851709976764972190476451793911921005898146782583233303763251260990585485656297325969871370287804122036622482609503298925144405486635330813478598629337058260111878180870842445642283792142042948562435486765288655552047958623149526986051152748949499148384342838732339022706324768256140672724504942570381981499048016774341635103177763398959100644088545466145874732527262829365133713719473834884356188841433137948050213376373929337057046267251379459585802296517656295853161631917566151831504739082516192260116802580993550420849217216963921990295622918054992958712353675250787924146236412356679111035207700140594500002387844604445923698559383066716084575399228974718479434687803176796353258000668262468904209867032010211902885626745074659680397922858608582998085351039429547628346900780679505356216038638876930676334965199866517681537344515113283690103848493066909585625149712947012850157201122056492404206242770635525743005068358854015086687024031951366335446008387286918792212710594598677480787169330654903043005698346633944803059129389168552976208499774120180433437577707671777805802170201356751294422011197589234714750973887928831253582133348221889049743065204640546307906285191324067233731156010052974022335929186449551374451418948797347853706925505008243435553440762247820845869804214678234388548884388924612741194121957767409751732168451695429679495422008856929665507356009158665695258713714998103385762492306946872049183715293776153695556261866438019638813471034308973463213266525667315553893591787332336726340454713816116436411244517981732585904783103787851470766260796004358492310077908213422538849691629132664238612117981920340859293577041614579350099485465344635454901809151164651834205911001768085328069725046347722282565585925107283640934823562124262239670222044924076962419693368585562404487942082571920306404285982861361878978211996238459447668946854521779176707476620525043348827184728731306948008200952486656814633658367156331506754852778155972265927693345232799804144063034227822854243150074747064882968656533764578456590848088852013976598956503216455600413427952200093067366085254585368520313214481744120736739792374810048664302047821793609313952797440377576957653694522468503703627553162750599518171275984962522954323218257631136719683165542777923832810527261178355900020884665124432388800041132162403202949576591623105372112103167787969491885677813250365151986814704417645054355009035497376569781784359570530471773536314142109196185597274821083778645134346743629924804097894731112198114981193968935940941111583355021822154986007658105925726315249392569159584341571379878118144810151180407603009316833985616024025130126874672821374012845603263447235668773910115225573401988437581013185664454001504658352935764006574807116774101618207388373132601564920397224782253577491231125144730268864159777269987376461244870596881325951047086167661879368951251160257294495675780627160622851608879901336959604427333712625388721963281052756371252899335385011229984012106007259215844716538489244634133028849046518677964398370565338053766394291115153508117636130636656873778392528982928439906485608131005983832318431823613177863193978663581959789814996062529180869973903307752512685293434880415602866089973812257830044232392577519655764316158869649371249006360029502509207124470591514729707543422461312004422171311320575711465872474901977518839557403642758127400276419176515266172393315331220459955335774612552448786536462909549273033451503542426386971424522956679003075670171018504951112639045670409842440714742635458145135287077476741301843048265793373673354883855204295723725675343855839193656282558525020416448248600088990022213536656924220353414161023083197010187731345267713989364957135449576482573086546675151082518195208536632422841547909975549516768000990123199442967177337785673938038784785100696268039263089209055237620730168058833634202166539899897018071269827293985768706535611111818327946229090450625720640411665357046531020528087542207488814748012353210516461185887520607332747948963077129607433014393652762166074077545619863099599503031550656636151896563238532758483069208412565146783261014194699578283932727246315609292769683341874415077921534803550286282612204572730519079686384640422174235998732536665095467534929788807661705793222204894185015946825797066872149473555800485754420418595896371807476893120201854419638155639236846014246022959838461115502114974742021794624845741212372051715157358245714490769460172970071710611866677494242109535153388558495374765931662922174205829530623637990126678846030061429333949157775792914769072737106573684930772530666903779912064796537945719932275490920671795418935135977176459732821371138359493113994279154491804734436874341122051389777136090095455835742835129965100511717325584770415771725049244172688443425921358076227032272985991656837599028721114012933291116855488236448075772033734135630510011245823762770938559318321451642546165106110321046892503010720709148799389545659402254868287980465572643281535387538952282685140770919979856951499931089098059865858137807129494943638523151218738071930993083988853895288265302819794339537157129655707915835670221439967494103253337118805405178303349079053486745227893485421943260281721527787724905076754218131087608483245429775557798108798213746026969748178243176605726041928617152752880496700556266770999522148999061012189391497879763504393506002337794273882456585395996205412900875160523553247022294704213456409674582015186853673474566666716779953644159006448292980753904042048270111603650644588450596659338089063660824973017599970604372265265788846771603703244126544909720187997482611794913345323709747209139842567317783018292370054276274716760765353329349506083154260325755773554058450063353844067295301590241025378706215269128759165492035198688245117341036008520264186743085964467870528666078081250335339228507174893678731591097254814215821933858064374175490853750002630931713943776426465419861122698466521724268114854766642884215099076560412091760980884943119097950252311526713561925776592212830878565388679602510719323025280417713324926403748735748576969675459781005459395669312034752686290419258840147759813852032475571349176071020117563815040835833027459300899730663264791750093086676514680719548737136778695590063415125743696992488192211594349397409457343372979424407107462600588171395797843440821824198717064226232448152128224117540652534203044230850305234675893457321557006911255541697685574666813062154587221713193733722207084709069096771315680062220837553728340099136924708777816391447996083229686580222297906006505621299350994041682357406077876833880220320970877865732756426369296574079315380002921892485448857273341781622409560576431975378139077724815290682071196000040522466341504612231498258738850637660698990733922811192454251402897498072627817228241195990757762102425212895772973794043481604838567893929522117552626235090486443250004992955906657263992329235031294072536764061037775680212555808708245124662742137517528266094969023446596069207361886367845863589458688479944507897012917392032469341045680595007921264532349705405320620314309046251412501223327509717125144769823014337809288640245638287930959138411103225423596239324324823186412861644605711972188388036770020557389328971637650779833569189618504894644786120806255597615481461983180620342287703527078182262561472046750032242010291763735256359997236638430795387880342966693103536674662967120648184584094420853182212965685444064649807228150107397343439364720186826516158002616232365870452048336020437850330506366811109605398457037000905053135861488978779257457461442186556174795547028462880672796001981904867461652423663398890685524051518356034168886331028761438306410757910329887435126393881367763597830475668753119397391224655438612618490460125715353770135777334788832888363050206094302149908263034115782194755926210438794544186848659074232904777298902855063727998928156178126038428851662902026426507251793369032916613163623867912606690206940836232622466385535070170850411344340682809750255011909360016339950865474010259945929462811623154060180211355847427698337608809377072856952154927359279233579091428585101154120495619070778151229496812549626495763483125845690829240896268580717587899272134733786797768293587964404036229238974204285107188900460260838997257769279942932020480491141813344853241041259382853016297726890969384466883611173481333948570316559070860199511999017273868676642856631732830330894974180120786652170061822018745781237674793970357566585091503371732358237843389449115518871608686751064758800111825680634427530986235714710095823533315847806558213850313217259882452073869350480489482306876631109636287605846459480198527787036878208877714757851220732503449374445641170226955337924168243022561713380384471268523707480328859129341240507438128164495407610502599054967615310016245200900693464066282003474479428383477623762134082033143223902750128883094321395404925918271967681823568545318318034227195035604510818660380149173874706223468479254701753799863085891295380108888423860187004613565813800092075435230217243469988423786766071115363774141600658681073429902854267496468288238611323420387932600411443520603090841818458409518447855313656487506034274819746422829837570833183371417040347594143151381063729970576359613577313567662419294303987358372415140558878293610213352250640091126928712443063406799075413367032261266493726457234297387603640600645056679736764648369283934545769495415935436994534013045254020063789818903900413276322164045740433510204309296427831913148905275921960106903203280095445074178365993608118946796460806613809210791743264929198139775748970957072081575846129093913909948810985590409170076329094124679059462871883355331806223129473608386701750070015872030154099097243864520346952185143703762335749087566682191781821539445676969591613564564537295923996759321138944926802229043687715691313438778194238163640149168109306344365351467478423351471456790292802867246546384080152181045270729049742386246033664215872172545954840354539738262594325354914702990167730608780454326721747735474531070237364469852665774163261816959747329640613452642293470876790232853381566623792977835781233281812564987749054789484816630368818617267570525240095307727834155666984500727221590830875101129507468890283683736714734007130401775763944024649254430986005368893493540416638048536400840972920046408540569640230769627810269922301925625057389753694363659622272030362333130487408646390810951782928296468552727671984323183650056490528383823581216161543510127978397434011114244933155154343095979158074312854000519294061156591920832871637350576381518015984734655013890948607375040581652196719985725119243515494577097457676656489321643486783974621373221216331851282830815092199553193436208891544370378240431859271399063553657213587109904717494823611960728821899412153240649914391808331278574828830411992712406491174797407574839998511050748766783582342405183366478176025281133218480447530196017151290036798154200416730236851406081256317907838240496614730376304497582987003732868675398629003777965894650837150136720905584200348355279777692897048364884820560705355842401542978842497057295161498635668314598795124573171440874493950511938028204004124579890511120302114348872184305853961072338370415591956824480260177849818108121791250235247780196667014729821780506883343507075276248388362022308068125757147779733253280609713600993048738424886359266783563245709844343864237001046873836703243333354153654743444173997258037572217651949631381421406836455931791223652849262517584818620579158792016123239060785001572900567029681640342381065727983765496973827278401509179192197991408279330431272727146270378468447023542321349784389186430934624699372884902345633979754126297167962738530573806203663699466068544534419569309412238369593352716034415183578554527677622989166650181965535185338888925032334083664518288366419418299865815063357899330847408385217299308488053535543830801551571571975490053609216059057157870747565339619001201174935154677711843909430237721381044142841052223953463810855528535526426810277549589076400233060906839381590538774552385459235344728935701229292496186443237151833953325483954265483204170968137030175827271696882777578683644503682745590357262810982573086620748147774961761287409914222479341304959716683882140736992757834409970635344023412638749162095653216571274615334670396038169450027141652298899394227637798723070913515988338839330687544904408295367692090568154305286396213142058282700771014293615145236230860845433079994543778301666682443073671474597892952969975518485889262055567377103260426702321864152534006402491110641505106091548142856969610028095324808960096974660338690914185513760864191988751808775755053576384427420239431812011988038173910707731632455254006741723885872332312831252443223637964239451693607046526663830244725053273884959424728233622718475540232342994746217601848667929158947515870573361395302630611899612416997140497460596144764165498742850633136502655462300039546816152606514390944040987233338969728655353865628965999122074328470595741337803140760744526810461868888679410730786079347356509690266716509664569230079202901025749527798141968725137634735739841574266385469056098878108972551506210549916910836960217280423719716168915008060527885055044701838407981391286530914471915229570262729038671540303900194682702196649715856080573653430054609723357322453754880079428201994869672105651785814036519172089411044836252454356836014138786059026903280966225819468524970702218769528778706104957844601331030802557257681160826630583080969440925371114595538536167021343739325974891545674443762327789667844273904995060912995874588791359746398273615450769455895476622930703207030520070416275880586156454904018539881362673872872914635673139977676179369129939038711433821253996746915499127575465704698499492903890976874262461932810937507173651152473955692785323432021811066521140636270323080675779206898721069980623541337856769208265119468265532842734434788310097185078301979322752247297999762816253937448213016224952781043061420515546767683248595256475950831574780409525543716296811032919071815043842762120107811867930927048028311020701771117789652534620209347808014363373223063272945018919245148856739203028881258927680916558912954100117568648833768663103229334031954386463320255782413243945848015839715773780556488428073421245694961912687781201476370208857318070446808731803057363612469993556293096165597105868583079511312865968320539567869572820111895476994063421850622092005521591664574566114635898556833000927134981816527064971080884164088318258069717855645609973055687163817873024818336111206028783917462810831925313989231855246649261333070936108412731938051185527343881065003764078766403780991073632443277632839053150785743981152685623333287851345829736909245722265802092666685609355646957357302604302121195441595563550071682651662869880044573999533050344175162705965182088368984265063293742295768982483861081067348122649691073826873109869798459835600940564486829898487173021007758575655541637907148113087389512026272895412421403465542664901112088691031348401769353110379994088904931943683525513921468451657635727026235368241114109881143405681449053433771868667439670168078990743840409148027873011181805530021158240238933936323206968373321339792030187641963862317748299586080319791107770883826798048396419994959045508983324116396220508899226623622391132373438976698718056166195075591744966712770274676536919373810935084033877120896014575500931637745792007360369973405711685454740352308551451465695682457058092548528396497996838656792584860220664495247272099740121865597938735092008113111289209042538876259236755981647790789563065780513910563082835076208497565242180155572250506141101273429684061256908913484002934011483951615769656436131747828031689353019578310690080403562198015858531411139150820174795834771116281369590780759021870478943150636542415457046623573144980201934316295780535153654750097927638747384681001694878102800969473656730126814573497803339644808657017477368084193483645882975339727422715374794560094337607230606462501685538982555211698467348602422578376047591022963971204363883838117284323283259771613579057695579476450530663719835015948731072000643921575289211415848316696204848101797290660491502623879728306942661175829333534550324669025797369300116421070661439264822003179871011156324562703560622760770116682597574619875465830413348321604994190473599854799578836428641865502516021930433094324685775140573837315983755655003320872716144421453914836884987315575143773888476162282465126756195555198649093693560893780597237508496859073633272353001193243276917748977793861953383165586683305068792580031983580278045161567161035653270379354759265264807688363546534661557486189808123362500638822532515184818169953015727738132449847257901934064167979133959735349156585480263532214240235272167469723401543001111130694520367720496701101854324749996282377884825471730565263889667060723171991779022743406129105316402375592217101418138761152860147194112252447464736352331875819104542475907940092419943064369245085237223343569722953764302384744529652338448822432861427989196533821083304097116123759643870392318874123666126846701962083362877351806798503701268240439018436636846682200897879565610243333785029106039517396850639623245848678538599332500618972196716111470229236922698501388437125088875077750546810384538369290919047110153333563011414545327964851349718466714440594518044141236762902597220369801584222350109672234019629787623605331804589476650125925271026583515089365281713440912069902011584637828905678777505908949363168117018103243132179845335398024661087024752266947997003780715296939235632545451942343383486328331348868270477529869605142284437423055228686702842879003203562788095646003462299383908507927877040889032204892728475351327555139803899685892848559025331662474075650362675050928123639896619200562278988935163280499323675951513023510842374713543998621619843231756133862799748167841825301319963230859841842173237313603999631056478429688039511637981962987098690990044772232317864752062650885242756602111131991186140794371920420092905097935794151877418831616430982840450894179333019981795802209052096735339737931247101875545612913113866596964888628204098912264358334208002795628090471569671282322661471686884627669468735226997594758801124502484594371299950250839312182247011201053404415479499483033202253421971061112138452303568176690765653704730489858186445878444244201235119224952002176052394941542631389450314517433777733665136116163928919142120497547019744594404220524212689635304680082505634923769366230616230041273412356464345140980246137609350753627432098726791566338415653010285530707216941394673238183987331764813393894281288390873932017783080583451904718298496906397113605707357732844929955044348815800075448322367651790991950909885649261705764872050759021807666792406032899449786132943165186278633880362260570957570138198861406674324074437505669492862279791444854375086335082751190765576973488802688227011407530889802983708155770877938746551219464422987621814420451455871172086501768667192009457271710610069879200952489670913055440288836640919344603649108681970914889423014077331834822764981473158836701709652606419258024827302702806380155372122187555726703611170869312427252321437328929304122479926023291982106777108094520426954154088145958872881262165066342034649739072737516889210805288135982851550129373827153955487720691541334491588078201525581066447797263724802232230045811966817834555319381568808111129500208406585918035863271122340112719035097553668431541727841902265368172207161514286375831458865584908133271870071052069812977520435041636585975327576230888656443979417158331116653148975232539161386836668367310912040184928206784164885671201363691163070269204158833692025629590972762660699077687328635805839807895040574794701781950920940210801433130475990722454166899362380035460394620805609242770549811102177042805148798260392717944022925578514287297800142984741057376070214656495438146057624708829283948545867121517596192953214343920667977445415715462098514894072436833809383874393376485932819778161120152116749388077881213406022368905835929652685563469530452104888347215183481985219199493971324599083574822340820528649199935129321947926928176523702966337537509976032557594206629756637331151493664320010287792985509146204766023905028105120416218532357437222834964216272760477614361849285579430328813377623693715407202680351786107408283866970171923066112387631908648076932086406765708050509172830041624179279950446985046191905652251686590018053803998059325316926130837274512245217464384824979021375595977972714409428308846866501138550265774644942632412115463616229811154641651693826750622856119914200124597527450604139150196235207202175115983537863674359242648923926360037519383407888211406547217357343125067168897372555227156409738084997708711021921907973247492776012085122665859090273360868077806668954516022795945481796723913684243948334137872812705151987671106557274143614959108257935797661272617253752440826777060298926654238143974229770488428591459322575131106306776847493657853564210883173613600774305504013109253287732374185732500478530025179945286764722051356868494938595386583406548564476446359110995930788046470206015585699306422979991335332226475608082475840024268413971331863236770166545531702476800300357258318905719800602033872460329162751339478939164193027853255404733761440400202374524179148810059207012211082259740399682942036018215695693723787517864961895543089944857933458100312214254224394145418544768594877383693280572473689627235270404826478987769410537551089179038145981571407276900644176558483489069924825450124115182700552150634394624765694210852388443166585500744363888829292972409140311530338186118752851097180361969502826808214348142844812144604126738461500551407686147355709333931893047720347940422136175753861712454754601091971227524336733806826534585607224885142972739174230727856433616985082642296033905825079405372161262495426816514799396429845246294439487120249808804673002439914617959909683808143918532270455020584371037203862332588463662571840753857837112208224958055096274986715077647012185387251752146051103742224544908979371089922096384778430065573549630676546340336230793641237896987459614554780035630372920635816361569864416957821729397237399861428401317199100075892496434707116820684448199117981784016340314265613735745025979068443782772862828345218184419754379988323362704651849109067730346379526496581638656401418956794981907679845804456016819631078417111562875096994882049916539421983624588403567519035637970507522175793319908047506402851129927712825094078827411909063387806187360222516034402173610453221637122795252946205995422414097206651076270656122634566996586344861356799448996126989710267828255825642583457643939366999365556187285009376662413140823978395325633408705529782319367485739737292989502004176390141749043531304769256359539640273200237307302615545306324684157902542804908075435164973958381692386601760179478998350105154503493997976137590176835489434286799256919422477180567277362942647890054919530285058581417174297561617127103024878224536240209563073696549650860817004096163603800838063170215773636097092237969766984586058757158184856873369261959658786771289106780256194616242900906916179213285281396954668145948127066648460247747955546198029987281242741304351250643785709751175273788720598928066364533093296996638964936835629133189106698328001213744844247159148780823433782986188336187629563963020356416680390626403028902265906429275532962001091342669036711002022105614277701911405929231418384682490327744767303439290385979614217251274709793206088068510257444468098374652644813461767933348004502083158163192153803981329124054978745561733627522497674198125031969507791930827297211556454853529972818945419778952315003821773336618576444939914536957074210453334087148859236645030515696613255168883411339969053552592621289173932200038821711738940582858780309084788307896425669190571557528940484156843075892168742238419737151529138780383394581648235628021007286556794421167989384726089829740496835052424305901100137364568340345533746579693794326794675129156719753676498496296444104855398437457710212207730106734058833974676611616415114351167929948212860065785639049026863395080061529499700115285220478387955375399022564772235496813020755847161649796424743311340399119860339317824064425594041189710160847260960846769500604974237679173030164294168560820273149754173536963538320602478387018702449054340195798851959482275402231456068014302477411901532731523916137435121637595332929043742750554242012805314171992179466217414048687190566442675299159461717019006365427064869945235507454712985198695049494727258086668099784919222579231243433346669365827167995536005397427635696144099110543310091891808945280066819769443672414037978563547072417505022600735592512633618133613324055212826596044468401045721574185208137547078435333220271740700059824816434867806535556832504525177489317464736570171979471858040555452914878286876398795060315670642213160185857893318391435838377915004350738699558789265484006172207967259219807436144222562976488623780507798412076868035122413897854598475963206506371489336151681744226088780262770002343821882558365558022962126270078871046869767739155781038600668011860764953331264830409908475374009575930792042459186289516249590120482315049474430557663623214465781199636094593141114185180457815791004778083688251568397849688623847291375611329136300514258790881618313818039416279536754577454110323021367378464716038199036488440871242928874074530627933917142862983984278250912524205435104167367435147891501648023373694353288143064944032437860664137470060019778450026493078772324940144252631425148617704157586665774184312471822841236643803495615594230554768811933237288783947562484836878866542049530342973670436982259266027497414632218492428491646379242115736327610500496152262099262225832494161110198238697577182376754402976196886123491175867659443709246173436845838232482444772864312554037528445341390715517268765430632998551903109507131647944175831320587694126616107602811474499289862862287905852175620274087570179659855449751902320445514374722331933600810710109268068572487562544786881729041163899397224748970422422402480307126629134662539464199383098420579808426373502739563490805445187869218775346724957582412225716565865367688474713015813550584284926213205701054530384227118994423487896171362888021172987658555905581609371998962786210280667015408074756818767063528810639802939998222891631175524805273907138332330522461307323068343903941315944623707801197549227985967778581770888393788596881762948179473926974019321914055547514329217715742679826758601099641031441243938613783612539321263813030488861209193151163360670004680123223452953793508206497872075560232458632941333943225047693268276044114336656562089489315436478669409916579435664471206902889477190978500507238558728559371988536091021125136698033927689028105216696918115061882200510416827192778889538571714536553274804026661396653104171966445684640940684944761814900990474571379306216845031482639867457451184791384534553248635336869398725716775814070328022414195120640681752205852893443880801621333341365898467300717429544350956807920142136085424072331083366828591670178346188410789089205598546094068051759628464806632245087012010113000927300235636810764344774019716791162589588323568217532715236754321016373547922163030623196504060106373780598617412632781176044972077963957576203250312032149429924860248056998421768179077860589786372423582560727195388542077999371034510390528903402818586592026158764636818241557651484727274580208146164675903176646429038838182268185865090368491316858799803318284371367110225357664355344014734547537661088485090430103858746486933004426500677852790724328664167072537372179289907887111230135723298532350524926576304889989682591419031920871351338534606131037225001380636553066745832286787094744917586308020315007466489237299939902212097362150871827281655944208114779220929994118159501652676024978318520986723494100868055955516853183975218621109440173666930506446490215311718391222789784529795196352893861964831361168142982823162316874431913712003649114140908721122641897499581525911071468232909059244243654429130857555797222229161495916209024606087998574131140362037723690572418478084443477915123974706186278201081615997729448146811277796522059514234841004012643360973703224088091335135177508591050274197326770455849929610339007731971901272130065080463011582430794759445899888225599672157297571734042603524085298837584750959489364114305806685438509032554279855324834360229117132302787925574031292321947661490745189177742183519621492704284003851582873168102441955922863226287301029449314138612139479243560699534556089650608984804098871745469706595498536431524544978128827000494280350364582040802690499256984184243687536720534878303034391359716313910606736005342901484787519989050262626757037358055418545262813940781791460014406851763691485993455776808456031051564877538891320092596160503809760886252123140544637362697633061323833091236436258397827431365813359827102685142293604398570534570070459987692062271635174215131966211153663859891403850812945567446334018632560336767536101489637330397329840159933313417375866313874492500154930975227779332998205565764684152609971860233393425904409523419238381554939781585962456694222587046129853880133236148559087918271091652000128693524793134351732513445127598800782895984771577187356253847222062528764897918999846833376782293965324332869035562559925606609598881539193891822314336245239677877502704723252056909874206405835719634354279196002201723171571498172199709620497349938710241392083523504557648485464393565746348613071653382829822014901979279497365158927784404921609831309902186797357982038012163622244150815849703581666620545134817961594608643427380500672405767061883789168740510840054222182271950775174700838385415617638818830420854186392466736245649880130510748712888299111049473213231568607131937117632904150857349402336218424178039251531268391254697923794005514801195767288509288356922050582849361660210684045276790915905147969194495393153077379749281819801760376917419726915350019063148020573101666957218945174013516009170828334509734369323253589406693027953118000661287215186123364307558851921689283867115744894913397764104647382522728992946713883305243088881271917299980539436037660723418410011728900885416557707466963026919660256023422125802483345792297545591840906197790739891103552817887730850565442577485037361102002234488422841036191415745431140729336937835190850817776064704622792237760203298096555029408656173833993660462214140384700582627835960109653434798756149278390407092933303700222838687371311738181013719403715477228785273917907330540326925926681367556901689392601651146789952849019597845383714731375284234759823674547988843895235892790121521082943521772088180866253058855623160684384802432840778974150148757761022808168969449194012716045080879929392519468860184825715964829372334637890552255802739897389296622325008573929695837475363129129421287551762431426227112095051964242544956002991003619994232042291902902779036581802640894626527999277532245277822189070016537280571505389938370980192337447299483278094821450169871491701474147621053542756311983240823185745676498230318278815501168461385135142369652042364575355213100208134642479971616286866663971144431643701573798732208385629813936477031296583248662149407279085129898286770457952430632636489335738337946145608653834107394720863614255123400011259119045199236746616922282801703143086925292081974318172338943955927783234326551570865543978576492071759553388538942190249666505159521705024289240939560512605100832685564481434608806756474480323998344390014812397233206586989266996804509027256471543327259647173437692164403943021460367935034994624693568872217883115266880951145690974864347552592959021151645114331424106272477008048027949450661595881949240388755684284390844682456962710361007205642967945513686666132342024722839608984597937077541561281579359729898389416905684231741383704672910465985699109638215826581756407519123303600304843235974165226981664482025977177463523538598445407210304165546120567982046879264761847428132695513405874620387065148604403449468531624022095111849568663124401535334129000602219119515014738330028110334699890264243737325522433816500836618926620486692508212507211812520775023739891305022683609617711575461837241513605137814919116154753035955911845502121534470973130917643225982824837220486173618093606664625663474174796198144829937131097042304162222122965247198383457228015336684048721491748824955450496460519966082339986671408795455668778346275127722948998239128773178186305284251604649043592320036183523154125774684554624748460752705968742070495570202837528726254258890366666386129912297659778962334222207966391897187115594095905114964187513224630035198189163754894316098640867678831547885246102662215160906013013869695461028463146487896812024935000180566720049135339236994888435836238640567603214642651544183272559863290391516512114937299821146844665353010968687601235214410488079379030124762779592552399317428156320609616372293678087273446733992208984814459209241072004459022075355674643110319335088999921000307231476487314594926883853616420408747497485543744902851503645956194721551107475613290359425584760473611009122293341188075233927107563688696910198364920636399249010925372056896089452375850921667917922222661554084690020730313470605688871938117788343324736846469487608671975384086562182382513248563655939959970135120242627293112217740609568916157036182377860073194999667732418430467129604768727085798542206437727053348706055886973556501756157191322421249375761795575749507833985745361240615821883509234961212614355199245709593609049191274145474626465347089448863859558740066051500398478895039330529587467737143209677651719170409132704211147261809867354514767482767814628670755039494703828726176955036564126444550360989631843628071234257469154993278812894294836737248055148881747640369282286129480056688771068844949903758011644377703071606719472468519024501947077809821307382942580477600563630343221191035583572069004434585040573862159699294962478185655843802353998991887352208748051990600406206409560985580263320471238998442333812163416333726755731833418942813149890916230176899906898779220953263738102733771459097669391663706375791739213456092853559541332229091882629186310275020770754751596352533931162382312254168155655515184418377918642307574022460125073062600990083747981056325927648955313089386761720409136707468755216466206058696743915117245621458294268270617446459467188249055520182027387120518269073614205523392979777124498543863813074500270744285404955091632443056609868360553338711589760087164547197031981238646996766427371089819707648681902945091013439179152620919543425339546412682626353829829154976343121093070285432549952589640046648822595825270102584720965695178483856107271685760914971811301680279872166453464952364688259724567468425380546279321999568937570466985030022091380616785333321832777642953177311968612499904231746444134086737517360262364344497151538450036478920393570805591204575178484722859695431388025462195306475452175269679551400579541966500356414321128776153552190734858585144877639280481570889971463808859669617050728809606448784367220874954664218723135313432245479606344323214478877691609513707098464277320503667937808057916870320784878219408895789562370751976476205201479663458332413163786417627559466449035333254051544801410525282021700085747908087051248693262043786682374921941773952774134008781126218178346668948032457182759382245189099550711585031282683133472748528089809771549058168705923820873529894074478549888599362389798554911684403511413297020540291114436082160838588329559683487563388614599402929831421466324605046336788630140339082916588608503911372730831963621029610450731705579401547659830504784518735204931208464421457085470528013604042121608285821798249942423902168818382912272825781857945046402740305445216014223334563300593127136057317770895123220703139310278734958043390787271097312492971635349223296087470539221167701290214077264903273234804568069132730793595194084232774911841642191321634712142413444120630030176185461294461796489003898437834102610972842611784298324046079944093318337255581491073511466676991987024611958867195329391824686636351681909131635652344689111804566591223656372133869908616464370483682597100444858939965204479954483361032880388763473883065104989288944015004163029463026355290820721002626930459403691970249518145146891403164760978945065245820225489022055750353529914634503262441467853774548061853529919160466151350867483595670513710019106918782653825117461828152335117541359463580202235318903655577627362504067617492279785567567264636799128230840081137634174562508025321640753044790875756701224265545427571195218191463049858779364304109022579541422971940175117563438366850134985294803513103323624913311908197569836823171431493449947896162261931298585664638455702196591111583364969238520695887536467919396993657179518707890489575928212220892269578046049344722004066616362934079815386079786979717760967851394322594603897642415348855757051789684767375711842148432671474503623678252264951659381911002107791340262872548286244545417258375518680762082631142540260856361661259681747249165659425541990087301545181689434098291115929256841533432602862087920410879524007796884524916224619070592709264866805143489285573628594734718337382956629882258239583740465228112141736932385497046607074230384221257691583544154318288598419877854683751344930444720236143071943079444117626679431007467420040772953578515420886210396474848118968427687756047140372157271132904507514313836332634299807154846143456914380999122229020429681464913555244154109405348702608852356598775226863147105773526757897621482587915924028692342492113804614154957340229641350321232913586576346880227803266515495256286925673900368187952250751190270727802435503102355382411369005348406072634687785186704387861053118049342488488210425567058562134602409861867246359375590771031559752519123023134920249763170284204099192095639254259576744077173499453684504121112968042787516561854837454689716804027776764198956266221506532038794193311878919654538349031307079451978016852178187215269659179217318494749316927276733573942585405512482419500749510954345380328964390308695920620993244875802710999987198776441970559557419550491507995820136242084881688012189655945398159210587579033871043410906261977960538973345440032763380446460891972771080810919981921735800391449055594332043496475504636505491273024205912412554558555137752594623945832355683805261379359727043259083654210388152326994891470475705155341914816838176649037085182142035557954794734546842596405520334644610019445278320276589152172387184964933116957061833417203683709518958656308308456408992578726520942326608332548478544055217007969066210142869128998637696375503127747806310608572124008230739710255568571859280124810614235941881944819970859810308924528863700863217519294501456152892077962949598000210517812570551433277466883887318383376069294620064773423954994909009372255779521259465733259731919632646386048240952494191519829505329524589297547831715634400989738360768511193708182680661062358173033112466881572031284418151927701310499619502420954236926596709874315473728138672065235309916604767312183317662304617808034305638413887178082367492563919670393198890123195551614026013778362254083362119763657665350378391675878056358472905972318387243258460417776565243276085298406031917141108301197008384856068653408222597441772452556592555900616165460859220064880927832769799494342363157005440800598597541692211287890456579727475381697703329243468000396168117854172536673198821685639192882852549878453115843202657486615823222625586350857290871605107883013801267674304733442429411179518700331145394123192831964411312513975693474000835547486944079024227303087038753470289331412850052239336521256777194818543280298533313079510262536321723891845579987215406715076122063584204384330838902808282474857793387381487511211808439991701783390860016399674219401256291856251741276312107777306496535098315456180273082582477262335708782852453483533709692568837697814275827637105244909227174783661636438065979626347196605407521234464648952366574488074472831469980943465496074819377976522688204358281005369070002000858543252388486772087631808501371523019105910835797298383919839798329968865598806464534636260374325700970132044363335712372350862394578829624842759025156453827001013882353364063641614224173654400464355123955073791398499028782218413306027814933896690193614580296758562110404347589035917739338151318328433623743186744224679272502801070320491588018702783481278624980674902149665290611448375962942811422330916801073948725057000701096418399952287039755940694703058982841150523801033407295049624740158322355654968454616862457628048883941039862061137260592959990131074818478253762921019700985604211754173276128183640958066158387296754909547355979236325284853458030734521842508109283723036403382806610667189172762279093146650801322342238276723372279515470526256335991181109282186364843739630201525265649746048320011167814236315500518574822679941424772582202221066941919724829413220999211754290286380378035657261609405244116452917076896854373235319688028700006949306947108604562755064849576726204820065141768644487676415197800853107496265679116425228596672641287864640529906196611452583010163744220686542271790644797353235487586780729195434153894337898482604713710279679117353073857810287188879845260659903066870797928369742534884787531889039257050323377467542710995886709665089795391611033753234130833902475099194268251353969498165273175494784087396135627436391188970444745345872266220756473251961776682413499075002294184815023468095372490256037318625456489690526042258527251905252701865106926353137795391521813773085921238103030072145082039499826432451534630830495642524067240893268203629563320052469150856493166224243157142546763995730626891457350410084492615208828615281452603568562557858591124000777924574339803557418770951088168901254276825591094150478649230545902813761425585392562413767174991930363072198387403896201597730457562295050420258687898501986037345941323740556090720288128858748346454160168011588665221654435346264976100925508380619159185952089564731010279331491849576821914295182441662926046056162616296909164943124269278696323691634574192132006792336062267424504431283287581454014621258376536181618822763037370697667719609957844429298009813132192865515432587159806266146530927963148509340206783983695956405480391000110850023643120834339942269325960588735659516246661633107259804230174390577769684244555397144505431407202901956229513440315565445396118704654054716720680667125895180251262418092395135107731263702341374821687442835418288477648952119801047313283393289473959557163117697015066795386163512889048883497448647108834200377109734888526953791589526052008477434446541876733193073665323283400223926433389084618095972222471467917623666609981839670407646735410113063551257997645446792900841039540879717229929438595423526456143325020521300217660383658763745897784803846955198759382930909837149704273917334784876193267906885575177542483032040134154204847372073717530375717972847116522875828357135796169226470933178333294760262067777345713033241606405524037997026307871157828588823603944639915966759417336556727261768551255428172545033115820339293195040077930288799367232708250674266381347160603319116473822078980949215893970767626716646699076770992997062106591224472085102450390934720409332951647828301874093899725857772647211773070913654873080244286682483770498609654332943513623075302830727981987766518762008124292190272820338256347157048440094545613134367407787505253858114184253687573640229478456019955393598362462987515317844293179510000119532558266773525635539217400617066525724234385089781267300790089381288198716028292018043604768210857788907090009316098802073801135098015151679875479173385236247529913582350436648593247417169691156583648574772437668982460452076930412086598236842176033449613031766292462509826522879627188947834096946515553479682634170475809729350635129859550299269355817002016188582862356870660683648178264707132404620717737065807407690875442002471008738061550047379257001929706907683459612410946514956476580733075184854458520270780349385878960551901937682774419537641669188221002614709639446682112693167637509085945078974304919468649782897520461849930999505179612481646252231690660344110756201226315351536611617768300322438169722373330770491815730109937299870833592423804825552844864802240183205602464617432214432063716589377331180018422132047757045899277363105501995034396234819633962511607108336997529756064380071895900223769069689117758716493286489427157288768421129533115278601585009280496616223634930509967059799756010252484771690423196082150686341226660864756295927209151144615999738148227314415265515204297002416584761017659426705272083419761727562053501174096644187724965455273380968681607006905877124489380885181255256429596606121276494104561155891380304515644561975795056168870751912147244615291231537094551499350122873576949163472744574795537122516785225669954327151158880923012545865340048229782001028050205260763188724109277293485570094798003310229173008155011345541592711059886499426876974876541161191352038810184454077538744616321743170910127553206256742463068144341724968692361974795989048441235439640324000370563841253131282901056241011571407768166560407004317053522909653207725319951848574667411150586590954107064132493902306486224453345096759085902008164801904176801502008792175358070624613340583478624490084318325252164132560602734222991163414510903305623946930135708443118171922690223394300607285024592787052170293692581324904537154925820915740728661881068749739821995474242836146701982280152448450910636696980952613734165788534514547836283381850670044548542010219246441334756083109554264192256089950555943531110042559929831394084299365579995043130507217402854458370419072405505583707331365225505660076281506168390690386025086186764238509909469834447402318358978314085784896704935107612606091188473485876873785791110340735077326484290950431306676872665732841764086665716231900386980644814803385317181154286187191206503835947768087528963974926357862648502233716298273555068183419389107855391466692084519633467481358606257126609686951929981320054241492548232643276107769001315426128894930591315715716656992079061571290936622064536160100080125400403440595864300317390859357273768861113008712841829109466699233067253865097269836432019622625211698924856612063168008905544951847465666934968303715101403792018591111811561635169420244916813034300838939058485110216212874560067844657558513826574223778558216048569055436443499064702544654315353216271598574683936730998942522208677763511830826389058440038451301614152668307252163294411387140229250645680745117301863180976705039815430295324118629269825437158322101574470771769227303743349460923386310401394175920456450693363957938774077087065603074175531802288626364775293533493237169431754208933911719076621922713328502214566742198399211661635113991359572627726650201171670575714888907075857698677525726023809331590014702984795186994269655781440633597553615785777077955785852322363340292216682746500072569112887788473214099301808927785934088248952881779646827308585961708555956941500919922501951308852671882658359985629568951921052594810754938925613916574549437018882043853609189654415791824985451339557562570866673037157683920713950853245379884284883401339097358324595053539953080274474098262624060077162990126185297566890073784198993909057062640784153652006683212890805500683844999678159342281153602486216231072183668478858990265386341592275021087385800210923086825176315775739336634334715737741936791293059398322887197335741876445323112741005719238394022106721696482475734275868356879657392893962888695778342644139799425380918469142277219584884606240015863431973457726270685515697421633811473731787468111393538586495650391562818163131667523352629274437105295672522513623733215768510346226082242965407353343292212101009642353958557992346401326606290610036124022411452615130876925168900603217198802162498583901579690096399869786471308173650043642160270544297773023950084459330507848301929248464874665120977783396525813096870933800675040936787958867151939359697866599980828935855586668882179618699752419258969810118040609621818750294836727968601768511989728258013547305305195415207390078253131438806964486457023834508713034981248596125566395332545604774600868636681345142268984089672942575373921243738337230940310265430913680972866098023584031207682219852396407087580689549651083705592118668237533018473988542313318736177038188991468037486199800480273906448376518077136024063944049712697632889045126332909621178718572892485294576370817403952101072470474846920344712255372889647825111366922298969978212906768596344755881902976705480832248701559292276536810219011226841114942098921173466429075310540959822961290413498828243412480471802729988054418042099240587452857613568209349422796800962877925117207794860727635778497155366221287307857649281298442015808371068356008970210998445268942882937729522531799778941252537315349783510376742874031283013212595374471406624990195785080909422984629848934928373951653209024017530059669857242014033193883116181304194695066357444714808129006607548586190523888795393845642795400781829006748649531953522438374744750109079248648214392928921105808519222297742324640252317766065578499794878950298812544207185017063094434695987551563597119310100668503666866370662265821764131918243520946082498307638256841736169483490196202009751076915833665421241048315670308746287212631532893010344497161261783697082354703265126937456161898802432957375458167259825893034209820476198532459306550581649447003768738118645061625197790333090327331888414693108740111068061842817603786736349431987055815052432734854262017416878759750989456580967355294627710330425396519012548538714531397089114447361671809538610880106525968185388171228850552655756101353928550775310333707349912630310050519743502580751411628733488816653570650585200764455479557975750083316111208257306675017917020656950323400407433173367963738316643935385122040972015068612774764364177413388361011272487270093888710583064442487818808088422053318597978817136388315588784141000481436045183361114617859681780241570845816684515574047984949227677704269642490773548577220860359450944968341224620899751722631030406491382678120306876383498346759700609009792090966554943990870429585323827571287072448110885110156798312551632916009645346363029932347430531784225695339230932208491267735781787254252715379284958276539326067512549544374186462528354886603323799213112188308108789688421796590760025095535525964844950013205522047084811641473377773995756292299612940821101193800460160555650361660703701083253106482474272533562589348795564639678530513040785268844634602871683306980720029928926535799477015818650333432699375470669696696390548047651222213544764106865797089328621506930873721392159801536909694865733704906853786243791424238204728815565025293806759715026252890938751523965177257233200967212560313878135422669647125102658012303443864801428108614674303784128193018051510006334858698722930325804706494614626651377901052960747615829582983804013697546242683048717922630205959737054260651923308030319338106359600753265187407974102848242121370360762387755720417108250097247921633012343400078358261493911085895546492825469033838990234574027319036472100385928531881960174416270814356026379571910679494860155733188913613674949698067963635178284722856037285249618150216975262090745346418685681623364602906762531271501036937047499419027780177209597653886112644103460778956793209694868049386740540240986604091240228906020468503526833477276700964716069701278145916516087607951173952871924187742919396866738405666130454944062749397787861719125089897770054742611286928539911623714939517004160488571292218168508237234073113125834927349290261628967656952776063451628739194811637947826561292464611431371042075807417727120550935609329865533599688933656724699467413756818864271263143302023106966126375508666022321130031621295887933070490160253291315890573653992064047992564128376233611727618386157265052518885432639013854003924220884898256648624769891530801415733676421282201418931760894066674169416226364366224697906437761946062044291178061876261161619051362893781958556402768025042846123619268378621404577690030759439426753987912056131013548820975684556040589994874151141290833202635484368248079936154028905410881104362914280251646378040319525378907440600693104294122196288068203178096056344559963329261107956062666240285261462989218658721366483923011115400472407698085568201651392290419530904503290232569156807282401250741410846350500683455207582572454199353196806751285876568364124000779828597380544341887089887461365848383707183017037320902246459235563730682009946021988094500033087678910456929211320843747258432001075989148343672839716013892402697147734113999496563702711422676329465558384638203309579531857376318504875382084631574086512636210779229534081999758827054144710009634834732974994332908244676534588629029280049408270642435902591851406594252450972271115147319776352083676291849923627406788531102186814720710668554030950917515462249391538229252151805992810306516726940520395013521052650133795034309104178322227142853419283433600154696183198189711308720051963595537185696149926909225777193252399127953697609785772223550663821772963208669870815485037924715746877016299834200899564325779289505707438087990902078581779366439324678299251160352549977765002820345376989423363626756627763071431398911019949908131444308452034532651424209225114678756305378255397308300746506302856872869490530803178713900100510722310189950490529403855478793492683312353219831765061127947598640078324598774557385836925962772327284003229223287071011267447672015366731177623510950028153482426421267881149790286923909000133427199241093655461012263978425309544442982525265754491895329553735714345656484494085901413711537651102653734681596968744030563273025239789052330362196840301680758302265187640399179644287624822024258753006846480110585650453449930838554587667375436813888807670512658213946296385396535236005027202036981603266714612376580686641127797098908872668915813653856528419151579018072247308679138041339638696167269055373931504763873095524006147165741788800501620874405331715942661606358343357254758495205087969332772715193512011902238988952894667936306786103681281904639324209977416564519288095761112783471078605339937799491015612204948223268156382539402881976836084387523531617069625797199887075863225061086103187516077395996729745744956434883486540531255378523293899749241732340793983831126846028505327936233716212528468302104434337303066991912531578843899099215695238528476051546658479393277765042184626336012833329599608921313823135940385543169122411131857976567404446544980580801589036638112993863218905999966888630608136051049635408739342587557131493338975363070483199224101615034113561909503655660369065880003242284037625660543692533383378759260746798255046485370598836070926022399047726310968330922407720371442649532315132300221718168276996241562924163039617448077312149582446667830480954489522719345511652112422470294437546260517292080019224013893427286817947347628942001456002107367233857424710321752012712737598031783241092234077876018527145462081735948635678337578305213742417796317605193228191467620333501491117525323599956576155174606656366093629371303047044646330775041033098351417036383559956879309420965853190193302790235149470957932759015466021291947120748255130575017539806176346671434147505140941259473410528024946349123490619173535785147289024662821055414308741930705931078105177005881266046643609077780453306537189670999897868599222893001064204918177395270960376152011481197647774284855572072974440685771477863643016981899433414035287630671169662299378374801768375493284476018892076416386216748533430603842635923096176491632114034074327010230979415140488227055520828097002706430265331644203029943685355431576171920442080777843878030502908552385197158707325242691963146776880029062408874148269549075793770247329985016187221817465146091330922910266620437462784906204626693217261006097379450403070867788158649966547010110882694605804015390857010879429965926176778842309270584712129346106648801822069941080775104321738673441038692319372125481634809191405430932001976202749139750886407801026570216669872931764440708665657675353095942291195416519367566922555852480852212667764703361382130924962985220781966894243988644125958696574157953402941139864432387917495080665052132412313840572824927730674110617378767263590637195892571147676368840403713793611174311620112773817705752458863423471754776601005251894875053182461255890317411895503212905972774264944598513619189821438326427006884357889237775521755132564163813214739823338593067920455904881400669557419197535789710043336852157057704952107038041252936304905575062138222101019346436210630677091503156715360767734444085929536929162163016399891485563463213213914139857758690542991777726363179609090705103317907080644926912777774623169221980014185435560971470249697600864512986328787090201953237821994447252899224355792357715190391430287693919886333833351772867098204741739586650425577100248962805216086463291881591569570967076072303208129626577383747947973922506408014434053011595612745381258390089391920078172254361437144629581790194490914838515666606000153742735655345848258064110473000468514860178491522849260747242554545659209141214607511446731564129010347770536990181387385708922852006360796557072457949162756412740432444377305718581452646783659052446105256044331366436867107010947429991529660511424317773972697403282877126352818131593334679360249313803427855799860370268238139617382015432873737623848443351756153286874631165292692533247002692191581037491843761607188260022998730360357373673949416193963248834442892679584739177918767937911615616991382408541017370856468050001888893680348564499597363544703665542788469975428580650175352276004972958780826639826093979596234512804721953168625184473813160031545657747869806673203806518291199466850501589732784744114328939860190334692835967368208511325520154975423494599552574589459448226706141849423805633689401812678186753158928532021762522109856185810113962121155521269226834550367313594438123370569517020244000924689305371380887104536918416688544194882199202001783472181588008801448033415778301416102956800022326163828231520436820600820306323703527477851896582127958048152126415876762037877282012564963123643401704078266849230286913768578853573376347337407444506575424754385015541352210135276017634640187767723628454331960996069701104027627742473942890883303966674467661030462534487182213862278681788167176056303103401194386534755597357139809173596371169197781863895797875383102906450495795774868293964953423964952013650819767077705695886379550823485162413791864405455532529238542351565823348316778999117617365296305181683729101298527027290429407989848076358569284166552133230642294568641531283169801238294430468489494440376548961295980350045225946600518183613845425645982894149524591427250544489668812497447586135399189873104736725149918050578986448714987275841045245793409214863640731835996304381198252964191750622550218861817928692155774821763234725071786698230551866700776119577529694481392277950896204033089193383545542599503383382141265387089636043093364673854741129071413108691043892538040026046982264965057380742356393155900404297792037959107928072545606341915479946330754982613864356911390795060940654170464901874108997996621315954975738179993946088746035624951837352350586458727224512111458697262650425928533201895244220849729372797366713654982480525834487098246905677089250255640595197985315307116373839628368877355642179536341097584034948646797724020407632095859794415497297428797370875058101373301071412506278655560523150603810682273590827141615584031054522545652367966576492272294395595388244290568490601098723346148595072923012219391162586975112265135510122215774743551687113043012141542648248186796837881400546799897882005673494688522938538326380917516489732227996032874865411999539128429932303607304136571592109921105651675350247188324212323130846192681279451339520046275505988072584421434074718103054027694627995292153893595743664641906636071364525312795309736367734421558723771179180750492804818444804457070451622105016050527998152369001399474943215801583214250739075584144802190400025106192588690067946536625613109630914422685378007069698778112007924216316252073266152188067077630852528495491575572684621523154612719497347086174226167277326264996372088913889392136941484845992554553333888436993744178992428945791008327772548166414185324795308757614094351526203250878720010982079414447020566538245322120856652062035437635839110849307608792211814692219897199324791758213607538513760516224615057116222969089962392391998822891934025705929921867972337908902822672042311162619679739171890568143275889146302745368345352118004495777612892822757578219597023211937961549731405243673278033942983553964776226282278148934645718901358758223869987805014126822111168104335691018001208180256409592922254646300124001879704149903745206355604194963823071832394657424497225017358910445310859986979133550491450966275959677074815697019507640212962793998804377717381162958048598709793991477666253683360383434532283173374459307766237396686159973987222196333012268570662505040262354105633943181954233843855561055370208039400829233327500023651903173963434173117641877876365145333864122073208041200062366337501134101847819458601322285833803251176460466584657859176222260164496628813447558923424977474542069302273724885639618526108235291684667017058680600759618682552808316495025685972006577646075093499441195042165748261844824460534221917236095911730698433961978622921162179352907577566936055931686975994365633191591404910044841681669544890142175802960090253923534341769814610516464912366974765348577750336097345619192877050905346083252339109931175051256868554241123563111507782856305061496766172633664649236708080865411923728773739973898097143995325939853648665220257754140340508479151471009160854176617059551994229513656610990252634576342592147380962560002798179394529725319243098254430241146404771207063979616987241743831083186839541303025769135047520555064227403503200781851990929348395275328043240370000595684483031232679028820041939907879424968137561095916192088213203618065929675226411314851279325301913758431391114010822949264911065807985467317196402081367293973481772382538980718958705874536319127414710678637059790707107038601417565280388017135851730137854150027862735823889883003256308482779711213057197487042046929526027968129732192886721643334570248099358038184973410687942931345742349448594033217194477467834140292023743426768634546572477463949442229220697689183382855441937295491536084677667883690329357955688601413116829808829303400503181835712557039508611439447876332727375019315862276770993516386292167120604728745826305389699232265168448810789849437561744901651084593675167661858504331169177105597933955964655323323007126270242331582192826950456990893962251920838353548288435477654218653460356360846038172490493790547576787978779983854141689594568358259383811316629624492470651092452553358060806773596394162793524630130168250203472680899446053202712359503317679056650722922891249558723380663255591617004495397176819581390371878679317493588562973861153174855490032271513402816292964465404942241371172079022925831255251089735682926324033505279586267859534871974510779380784004011346003421910641858801914187113520102185877306214406249153357145739906683099305787137629335322908175616699837443043230849725266744459116286409806215052649629945364997639295206344906307823816573609093354660975376531646883284044288032363630136837630740085335933196048388025569375758337759168213596679208061376849671630445252274020421300019693989508492400320108401147181438610394037603050563570224977968227382155763573960725083260094510583772995621505431618724098606379070364706336679389790247931683729659268851507798439055301877581662070979357230813499195362065013556980938621647963224150817589830547843958738149069374084391516261284737189488808027514751678202832896869380857246705216278608288831973997153202593397329303637756545686680503788332795029887669811316965773184910678584678412832573941508053127582788418107546582706170622762339396978095825876754287899435196266650810702454256037415676376857300074496216612831374465537554184117715843505228937504780781675646232938115837442242302144439265881085066596303248131742021721720938826242561642260553153813809053779321017893464319529073079608950960729332235158553280785829141415892253657279866693765137617680077202885775452554219371638362358549556510647173006941661131142970397222642875019931652529786920288122106731805126719665429870362235685892078230254002912929394091137004413922506425751806575195477136251959801320792457708961966144405626905471949909680740955015193581700210957845085073370543234759278404335272908785261377278512999918810820985486616171635076111258065707421060986672951827035038905249578914646270864414196998650375575410132115444238397958480037523639586685819318581365226336907798584442637964276991630031462544842959622408449466994641312854069333475773228039021686132131052456114414492089155382101819845879051423330908214206993739232668014401622442531234435196981720754632096014016560796200295123794269181578784803382507677603443841572478531189878706303342900015714124832018832222830868398148266448011550203815368082252311215192920010056428799092971745866552135312838618227657944777501208475374549649973325433438194939990069980242060767551835039533147792507838008140654877569297731466466377742537220192139063906398483844740090609686191501958218410452213920672152568776234596974733351641991501421633012680381070324907326832450025738825975593714210590681203259581678542369064186523310045103237940272433484374051605261928197964788327985004545161743083887085950761376788953811280011302660584404439899246390534592616993114665620934969077387586620009883940291148499224544070955321311171795124345711598294412495978659029630634011349354949088764428239106621832101282067635256620888449693751995912848477914143836784381927858824519559544039577788625947969556457176065534626478250561437671988142553035991922814673731394015125141514483015782865854268672527378848834741706278249051632177964575126981227226635176883481922870893803330305983915860572121284825180612281735391105123549368740223772580592546077633911728721002352241871882589485729405879529736862444758611575917399774781568262369726242508047665933805358987455375523710127845951414826964719747154166476978936297215065019151681791233629729407798791767311934782886573298654209857295666374383006133172914253754437494001064128717622045022715660081747655978453635724730662062080898899158506099605432362989072551702885306867080328624265981720995091573871778093690454519822024024362440067643374611202880659130434820489735740874954167846326600655206456507533446403060140081435319986047945231228348115732456860674469170356104750737643885756956599299647445244939292151644819787098402474156453197420172525256618423079656379059335053282222755555316230130137147365945851808076161916533110526494306726979400939505597925138267765750544452491997189584457084999532835115313406337852612041184102893027915042375103249122171116694005620390599466568217573727250685317702676283811666811679426683951069902797651797061223383984643054520391989322524260812777053701191656190065909479917637976039253567864862735383423984510934548767144635958176552391490512481799989315685483626876476087862317528923683145584156412610640306708831231264452525618551959183576070797548415431129832597262633264271996835391701893131961249448114651341840702413356252476592075911139360382624698709498331474228690302600560365544155632811184091099834019162417100665710782604209667862121425397962283918899093327577911349383057630689324235321826331910821703088065517025434824431900917274670778698622127252200629694268300778517199042321858258740815562049759920884452733002807487750757261705924852660770125982915193148599000498661175164759322579667954254903729994652823210377004150054918716406812952911770173412403764999438932673783027976117226101411342992609717496728251247565699854471568897313923083697198966248875950380817463769313807714331430565577372652456743501396986909510093013115696714924348215624612928615129149930359089194858582290588834836579378580720937947143885226265266567242533652178340175965331878500719959456245099659911352978288101384726833398038872435331850974605540405304469946440917145553887455312259686151306666077135859320187730898892312463680066255432252185611473052488295660959648559285355552936642304540652932767775701498192994955728045267053454275691200478701149394932442066646405159411228790006808585134335687221848650107044802415036895915162231026502820507990941676263248274751027169462741541701714118654521908895615196852766166882025654927234648854773559378892644792566354698210886188722252314119269218587928951612220452685397676958679386148219510483961452047973514616888637938666462372682534469648789562155562888213833262316542658070145415473998385630510761815120050556608306162908583998462007142460987059195152359228038408264286063820645255064539599449597214576916155673079258121708583439265480823737601157102310730714998348810832549561608262953085403778873090910479316649421942164416022872394141302627644807582846281789441075932762240345133227845325444540610082559569585906497310793677514794021379169772641214754353559260770620432672804983753214983782395537392311280253312976012031655559905046328655792848043087528111221859572573904834407760399444822899355039664116405226840951496184090545488882652552995058305536243019446436578968183491578507468770361204920810340785317836336409980613553310164132139370325184607209391462217533986440603699347565222710637477381474597387772889550147389280787568804827573504770254285202841623456714774114431427686121415222504024846155518758924428357556235890273126209726689501158222227171364779245545630872961036803111001968996456067347475449396894245412047306553799257420426375078874031301725023728344169467738930888011240231478496051525746961561697230104241758227498278660666293529334082692734710962097316087059508381940235015988624433654862045444477067312293942788673973792798322309835824084459697944171085328565252242134021261619663220351572994043133701327666508671174962782315589508387158064378854541258009881646797417128912922717164254192297380559287562416627916754619558396742971754835588992424200482018967696262607728417948512865899573295658465780426952680307620509983183065181570370189342194042942650652514393084626841123432380832847326841374913042781322686142027920345407755058062674909472679251890125956328746443856949265504094996146724856930527027656771453912290267498461211926935750769509597126726671785732514786173995131434599754110419165624046209181689255837462024780634072857600505169070939800891271997067111574739773693443256238921514534897076621935998990736585190744632355951256775627242274346449016651344375034398599830261142577283453841977532149672839438638691241939514346248688396888734907732661594550419570254546365841186347130085260886855302415291980774482371163110462881653891738647902597475969090676577409624424682958194507519918478474065507682128019303728100930918787531452779101489638000411689193635514525545744250842973605426870806817605141698100558882043449595259541091751519337173529220959274533988165276489774932764015943801343979141639292898143304909053507227252476770436834199736941488270228505555092854349558069213793932765383132997588650880678321906010846473748788270998986492423740242513226110757616044471434027089549184416786336936674579193338648116242920368529537495558786025918485941729803595084374241508174386594055912885122436942954600091877257870405631077639405610512038308000091928546467197216263770686534750977586710559153468314235178971994057535017787354663661100345351759994153267355676069270092685437780950367448374937036986945090167208834420184593900843419717430112898865756507590817941378926403695721480974260474107262416456030666299008310772599616433889271951498742086112799472633805370440724859158290581304163393125183191368336024509936691480277852913720786631506091250530722855737597836312340951844224178968080238578038681271633650503878259837471886727023170315997283516598546762080574973390991027688875506634678240906853481837488788667425006687441236407807245031201655846335044918670642698325493554282931700785687683689408499938501690983887384817666429817003976588951123725296364293242464729157684515880863850738508055640307771939310936387702191710187617439570112946103659398644262079897295766818863987866788092270353757105044846376967178901080065703540805711005090534819116844245707668754273356506513099833474257239563433667977857623017309378964671594679032779376216645195394447072910696041794137626549377820412445262845821639430535728301025430707738680763664239483784921381987955003282028165148447799890305599442749614664079027077693748425075874066616859684273537105208903376646320973582826505927023262780949892572234271717362164027611681787795219813124300038674178537180438881412794945259616549734944387826391276185660475378686546827527314056183643786389810597315427061457238947309993712650945608087503589568921509313175231810306390198031129670055320622566644928339473026506720961985290692592757280793295511843373591282742214741785330430236521511835301310356181626999247061823614360098268918880344473332596950102602993856496478022486766479187925532787370361326198761728838928867369007807134807923795934848200241231484761156451269257766794751178429612785490303587271246901351060473350173711539840160521640086206716333806668042929059079610598704022237650992921930878323059981904760078473771429737500282824458038788029606814522291836243381921230903691556858533071267344218198329192722749714063736096184850499201915744447790921237855234884912605736747172994475166216602731550095393182825112924807264987923873454761347204596843673254579795581446790231724027870406557774368666779472374637602728921827200002242167516612696149485159681492201585627335306723132966326538675999947886865801465527467359042820721595804461400128956519306793372355752293934300081329551806781413296432138433527724925711652007328267711705988792852658979236836377233070333195456115287014005537979606456817591268740787440141767730746695441060069810651966075653224180489363454238288844528476386895359175201374869567531373050073877607586749229847735228341965238122544282979668169801712783588787519452589836221678856496224986700060507841341277247010875917082351973807477853344729960364794138651028957898965854441261709180861134697442899613306122152556146810082435625280684025697774004136770777163674617226630766337217118023570697655775056914496147925150101841655255028640444011747939914640914366458846950913061416504155601777071131824173984885162252710888530766303453071212260593367657777807362957998671001040705721676415402245753012776022738081119753263119645579460753387075400649742440017047901115917487910536764328028929254830062247733589989980293518256299799541163502928569622033039025942269266112009075781832780601589719849062661389169504338182937629903526023814341428126127856964620944624267892068694993860548719614178421086139503006915062947957904366487548608213941709857006840694834497531908940584499087894346310710349164498366235573232497927803913057542398985164160761657990677050689715063741108382680142595056477717050120967782228768437342324847026437879004896225075278431880258519884168417694180810926112582127889960662414059486787509133657332477936818839292605117659050283644253891287435636219720788567600685148834675918237480030242526687217926918521343942604283201999853998610081493846947004494111735668859824311258678273694074473769771053078245536463820979469050120729265015523378854225580289858781117728242460215326998974325891824743825907429986046517913273309891476540657066082491990439979634697069798372127231489749505400360641284663084361357591827788782708467759957564367480406535334310533026575350938708893942457477559918369261400637798100653482208775102947356421981291387858956602457504488344525261599659235862257025768721345387725840119662282871009818999788024926308376778168564255631649834489766041393064744172402107146805030727937031909947305989310524735789456191359042590498238663304326004196638711031536572828471564447436130624818374175746538366501647281470593481267156949013612216863370819978557888347491517524067896096212336220566437826410252065077509966412627393013139316519418893127735792677932451529914080725062173442300465251034996529635237320608180091972605024863918986904128973328279218594155956898764945793461665084098764423451568831862554914889803044770476108199173308112021233374004588426117464499147563388174807359102564187741893489231416521667276737659047950849902708593853558510917594221855330169077445977205610417296571286850796920449661490462390905322754260548327363059022282539298055017002812489152022825709432395852734914752609964317601129288828803182674869895117980665230080842117294964823525341979699357891597407561902984497768693354662814294729191174954082989806951860908016079376763677971986515369684449448438166482849572961917911591471808375020206282357473647912205463599656940482396871697378254851347766223488499019108151779663617911788950392252060448958330226343354050532133675635695410091115793770198106367187334266829788913811204381505683232242638847634693289128037168628890560317545617952725436148704365872177701563908261876329295323974057285421934732101342033561922061342150371994214699378343718854161001081477134998100198244195976116808951440191848586800291515364071669149672125281059262827956078473989460857149401529488933654198512982973222769902188760234936693841148295190225955822021145223528691217321776137273306163273007767968839921549145012367739840414366210894317605040737785858110738392130904802034893779676408751759725666608446414505134918420606781271614405729959533578496692194018711284978707579953496162356808421557016269152268778297512063195148869013107611401995927077264859442189890621693405303295114466755078376833416492453999539573130460451735810797955629609327953749988905073762443697595483107844917036292821045255444261957102718440431548598117980166271959606323786738457421860603493716848817554097527838249260483633903964756929287360252581722106963339616266854671426099444868099610406919412971419354759529351951398365459112196926999035552971846642367203047555116875365716043890322564093391199589604869988811544364568535310779880776412311557072113842585857108606989423709701114215404003613624028808739776407947753500420519312264501212476134428738143141188926535892815805623222554760377497167843897779671642117457733094324500742637899429809514215659973832248366495271712038171131612175116937311907662642743099002198433163716987570440241538595100574494736857561383172915091193292939609482068988247946328956158446601853525766308904204895354321067140653104087334394485947033449055387964762334971429604681908839447887093000756209230973937151176183882384380452516410381794977522134022845109965847207543415586252856353649182819695029116771971790094483918836837194781165665295265189010055284984626896158870265571508130127614189700569969531054340241007543263673346560154566523338431711134204202374306768275760607168170184655682832864891630641039937923684206517351088841403919742652441628310161381820752105558161411320913449849247874726682787300831348424535231454773850713802755495290245060101156833971152164289864841904199761452599088021572895505733238133253590776508139912938863138201630574297571490440475658891874536164813569412919363226097491915482133715224603820462039854352786772190180202390283044957515229951281357462510285361343882134537154391552799731228164795456828060052208964306066668820000423836139449416771735835059658995014396507770760586102142534006373870559611801983429140551848142793673835090326710607176410942297055011110704313553755461561972511539649836446479199255072342314256426091559601883444037485544300311622224913327863674713112495550616701811605245000925160428621788490895244882894071758146426805442180833634360857274983907860405272833311979781171294182549904563160807516042196213497891891439838709216178046066408320381193014763016405992163788946119596023466207999911520278232723558922237044780930423095298376217347963488527491786013953082603053823989706054822014903265243236953253688543055396779992051343007562365235235233389511246299874866654281248439750734659401225651865121798813685697321116749606422366370184070334633780727598106328145431354821416590005899408701094946270379426393548181248112924917539160801721197323466517371376963082065529095727338440057012962042143782176638431389005715223483076091437468656754251461870809617423021715039197044381658544824950844568215116678906915502678626023690346657300544524977622910057728477082472557143673716121634808327063346858034856577287260755409766042935808913427986726920177921583751573804283032671900819050401079741857681847492976851079419529889679235615500205971094793770569660500492446491805878636031822282296288998746143405177671610524928865845194789058140170238279312230972487929531800494018344059542221010967140476560882319461907774752839262602000179998326125793905381512349760328628005503248431557408179531939166276031197115537459346756456217373536524710372076109161313344734031200288085042881840794951429545530617422404844281290427886396429670399655898217171427577183029661498967781741093484441316937298605279617201255524894708014873624480924115365451911792784946897498903436837703685554016050241900137026011908995305560394285005510984960763934863811335099725243884255624907668600719015200052668845406689502270288276945554576673688519812444431332622026995973306788736402769890244454067669176812370827837121469017021431727404177896314851727441340267599787585764248656365496966473733996840516142739128502737155720510187207939666386345728887631608932438701388406949739995998328378957740504509510429777796375703527315658544913453476827246461375579048943481524335609237008121903020665096560877146099689377289254179416492455250991060394207465834976805207752695556479414181316077164257875506404790800689463144227219585243170778152726568741331797933999057536191386259525762640434602292677239123933276862696877794119346719128233875489249080445539959418745967135282448860020095015011258083740430669845544891990030956545904457439626351796505228031593308675340191766780533500882044583636538824213914551047058088795658671518464264873616036000071706956631073185188335505444414267596761728726974299079472847530403527159619355040535995768943437201792861556270077475504685115373466714958315430011542993710422332101008404165022194887032809258982948952716258511215301801011940100929887993200496813856055071071888839709359797633224713164118160708731694428965275683338147928203138042532793286537652622211635109095962236439387054980931090231738420338882816687142284079231253927694730990427250179186341416143228984062964740264898900208038894783537184419782589619816823895028603529324257967563684414572365131594873023777150488740469677943053456467484232121694396354349060984417590345727049817493578161505728963244599894123551492127720128491547080353270808449572158433326478595476903401860929270686415388261944236411943904379645761661228395752865048787055647470303936535209597687881619657529171696892060021512928011209945172475026759727339428332754737914063109389935796621178978709817711311739480318346742194839891069482312453859774874106356220066457153336439246285567906125442832290908770753231034119197971513610766256284060986723518760495714796666546395040866105263683188851231208232244131577542796962239413687593295975941202596345061650371571193166434198329719126589092251726741100074955418686009410446870490785036228796864519164998293909555511863797241648306677229377256635612608075613924280938713186374105088977259065314475143913900447115005683571298655541691837805869634892087007590516783126388455129466305422864346706118641581211151242934034923482009959058940968541131479658913979860567774413662595114262464423816886279887860395884246951287463781130678903631981849781797426669627597529690439604476004604998036893185685099069373080051262043917797695794933782403638667752177287575340850275127807610939599309983152776607986804248892595292418419952214122053059153798822005737752592690759402198417409551118851029294721953103130669328540138610827816592407256469871556336711822879030626918918770100132208456707277354943691863032984367889306879678628916244100711146697291553342563093346388900259567345108951133124308348001582156400573053209568258559255655481984108136023161776016832202002091804128060724088409272217640669601929890431292195854519611115665162436831420532720514195527430138384450652740046342279652681909381250697561695104035449120377680003549387492102893803273397223237687306175644976222285516440565771891014109505107410974057305727781026505529917223725896699964206048650200566156919700619983261098211961904400152483003480794481181169843104140414075703568442292318347037535733565623746101756821171913690132946396731140781920374646622962253353262593921296779864089052865486711362281832740683223847058865339080192558222094120396073383422480221791472316821974557655446644453665407530960244967669126860331064887028434717077339792082651389955414474392741541013093556271939046851307069784103114919512277172491607215884732896716322016077390809104886379191495500295460884822251696986476636908823236145099838275995123562127159479770537554788603501039493127549694594068255814307568544919521877996391582110010414450299987904902385237052924549381411467352993043414793695847808420301864028657393876113907938072538990545973769360656579963062212740989588251534124457707065419910036356752800566238481525369419600943152749791089847666268215298991029309128570084999909142357819325661336475793155311414096915015492463424710115600492882307970496324249703926449667129262093052915585644068749535022453530330320768598433744481211713756671605159840927722850032662248889069440343147857777586114731890395416063475738962964460877481666072847979477470965017691444909746195325872870868932085726468661222539836633423681020075352650857744405977171814959735076894058748128783341228893239557816841467937747339238531971200695938521702491182674983686842929963622844839156229246223954498716736905209986043117925242831262742828119099593421247219019777916634171573771911712608538807340196586290768159345378874443546885150448583987945154201007253773604797621943454638541859169163572926327508845458208006597887388392202038274668289506507388480457639175496872014357015628895190917821771459527558368838206272715924608343677235914790007153177962569515340707884521755432551089186755782116474357083211347272633180623748308644990786864540901239087821730512387081342604280710916376767013329075652090375060591032408366153639538823807482983309872787521345071812224119129335806861516007834336104037111086036752973828631523181737455188239313438378115236543718952472213249856460431460268952627252916560181763128079667923107013002312773485284270563584852983706478259271841674454951463499527601600427019183837168898996292233493633283136416674098470144150570629244684184922793191409757377944233691930314088105381720538836413484536869555706063006127695392912257240727893909896780821245663280680043349278992105021015361026065898539015421196044105175732504767839059931827501008536251023881168225058689814813988598143094469242803953770742653186447960730982040094111843871362178427091829370456185605170839217466627804270539581580418146482320860524524336281925200007035706028964311496960998923908421107577576203820791040211197103453835045179930884371516801111831047555407395740497782551349858259990104991823234106165309708990076580481452840329772357942633638068726098214146731545710879841610993739088969494276394802056687930587572501916819983446709217070459920036806060270724425366138675208153276999357403037950484513429249111921298134109633598523079686549319195143194528600059720595790220408389060091867029920171847883893627102690000259618381213225927761396833721737705453915571015175181270261707871252645790844721930267409540545583022218505457864323267417241515413650387354236851805648858592717240593170756561384897368510287176313818168487672804813039158096364803597452608598392348151738376987468051139782648680103798658430155555332827687864758130416861896343045862863219029087951792756965783769849187942826085456956102869958409873759895250448276998269803172140676170233018539412975820196459266083765397260471092417083424112226286329234126184586951828094619632138298507105716775045281732790482184752662328253541208948619531704200106524978603357644402762606621239932734770499673593842855180022746389801267056619139654941996353639682698196414256843584230012288850826296923633809504275327238293319846625827978759318597394150275002141210043315710013883136743669344525833654139651427331540063622009023999840175869764712557825264775620931070511491833989787811742281183654883517221118851175741087674528343247091833776932458253388060187734537595807225373699133570989185191764797105881464702689183598544120161521477998433514445042409414966328929931008315826571789947583613821210938123050555539906933021151261077961949857452621703294233829596505491682707470470173740466986253479732266252608263952396128595031430337181254244960336454500293670048329013814231118948253311660503973889724065951786313461338499660101669598915333520267953387457142621509372311403012700553819880857301233617275919290415266953151938015204520124353771425315126291121345346997440542904826357358839907782501638512707817570838567035419855560969648415345685094137116957182482762305344133719697349777014625182861554067437639214221784832013575701714758404495772604763833058870670743936448600111274607031113509548215148460472765292875592498614068963966392460781951125217945692382264949476608284036196414481676519463629582058592913225657784655537597052376800926643413101589148438327489418635980003985858514336664507066124631078461771088879689212394456748989683413908927144400828871927051748557525687688484309554808519310164031975503068252825222872040445783920849763082930726049719947296980646446878344431309870095400429662710002152774476272159223180951917865218991279685012630710833927521676313233255669874558778464010867262654468389180072940171971670285549566833204803556023143901036097013790707719556306878627889030080160148687472498297824240497840822849147298310061247017563857349671173869426226554077507467796650178078966509042501708378557688001998600029447427955673836970904715630261241123813474053622110413075841277955940463161618023263474272924716147032565557126006588009079755449529431610636980206567677907188170541523553712108406561591972830056158411467261103575992867886454682044766322652889799372039668911019770817374393498943031891915956187244634209954764547424791235333203340419967132511267349192982040410696771738007382993060844561177011942333230255170969133591377471733812735058490139191259426859634520327538174698223217135536104620076707764498169689864528533658450882427868503547382607931090438245790188553132407149150335539675001740235900229598595817670278622073312065288172934338495212482054033207534619237635415421079557487119663364015447903301934201330618392133135520799351097607116600930313684091174076783499660459971245187076175930837753823537485909528183474189400606179958959244347712617466572799291165225493734721119649766349113499161130841930939906055250164087920206908875809359387343846722312291187874758453632125439674062102138215486463725533442717352476665964093548978281613694600947268398910013411370449556361821209865870611743187246012946168844372355631598115736980442339426020470347572217419602898120093832323484920648504087968100682026931059025511547922421698386401610262750683660281861297371619322909192434151418530497900476406306438748563663070257652753455302737371828538627634592826951750524231271762371185718013917213930837068830937633357025372448308463875253924692473498258836862507221220069153979166744636058933961334443988733445742420549471013852072784569969220488168592378277410670266396233331683322769089691605261512815416643993114912310240094958833107986307814488551441850520175466804613531034180082107637051465730364949717527877310173399106134105554420769362097982684405744202937601813992643170951712583392943359409213143178627495476643905543834123745636408147492586912241904924081475662433921983632079386740940838869511229699994955909247909813832086244581450880473162019530873874006421250548435873258518969287074544604680612046640392429360759780908544476496132858024733469117955257526522307120323792072979189022317839635712343952251660583729176802882055414693881060471928738814309801794860679428875068503772032011091339792057029447141554858014855506644723868980557256831327095289148646592605658129627858230760040520017087637520001180127568294864044677444805054117908785703006868983371518505402055644113163937863148874850444554077031111963688623609739818011616967763670698682613802986141877998063666520266628738417413321242646425469418150595498503802145145764183939112793342964944519843661436344830816111625333792001250788113141047872807184635575184909378031300111981869361495134701633093893076236710871703837024574720048869460102279879669359469012858608672049619938131348559266265372866157647325903296385489676446382172618881389985491285710443288501772124609675494657693284854142800938080429190114685214667215235857255457535149933361229062426069490569372224352634330112266504347295540060666233120424679094144833827163351538962475389976504943831736104156204801509932384484270823712907599228500580234491711732887648621574880672554094971037601911609570254957041428701487698660849564958319066079927356565942156733657077554033394532727244164569581705869407028670957684164791797812429843987726096290067461359314093789444445210779923390081632147869607615065422917913087159448437547068002591636655737919704814303306902571215511205005862240620933756020494698286987031021684777574254522324530579172918779447317228607654637982088681156452980921083042831082610983309662458547440962708143950620304153082434539529912578078059982645728403273099704342367957110310544138302924417382245527005685183018479878347622382440905274887673115158184377304745967208533422787757367350048974358958882276382958390415786212041006838693186253629359853502474183379365001126146583847232875452689759939305464335936023953700550777121805425839272742858722390004427159007487225791823263384481612635219322234000591033751506208133913404122840476226302906977975741744354667524479606372430793025945791467852427917422686288146940403944382035331866574355307204623866023469282005522344946027739598482899039951613402093804721841917723704924469345599948656054852767055695354022936908396961388907038768787927896335979436188515525088731585557257250808410201533309338339203281019223831305324115988442599654945711000279114138427153136783951496820034403327891041019412271688367327983889308994727954766859447533236865015241801235552702586274886312959786353305554472756546860844908751219918982157541152162209815898498743037113918347726065603558160629566941319112554539937498618455237238105868356200064206409898126886071329369482127880967453662989871426661155364851490511141384795117612970699882295314368396278352520613974548515773056935223727888152712103173818641348366980509361925902979333698608313422413152418496469640065230253468328855144037576956873974820635802511009910840020046819466629164717370223456860247133994145389286840446456263041395752046672506150878228777830938472073303495282894263618851535095033268135673871168153327833859509608544537372417473821953931094927615248004010480475328914199383383534380620827949512645292401442610535258440015617685417535305885630114708888288005212549010170915858357376628033238694208769463960526746921003585066449357241644636830676813141417923706928724493066375496732529106671753474927852686192971467781222308306594653327059705561657920176080274602235466004516286069490066697723421168958331482182771425739254982673412615081805668600797372916501637310269299739929657738015278884929092806459992332107695160393420987626407466322667792671657385769992139910486728791080198913804933318918883401690957690799322721250601642420016890180047828066816600641871527335196993980669523177632849447999240722353841799023735337985291048082773885784843566489644120880810141667563674646290436165401676081132634655400053278586021701215271641609965693085575089264498916942555263967427488014332284838173193907237766031089785149599002218666391898846782269088935156518551046749344256101052414934187080895414040017905712797800710790114608249805735812608189177176785206681555632922191751826396327715868244930221484639255090980757712964470498574962617563281813385125173476451890550551162139683357234489198214553975648084349219613638999431365796164203127018683512864717839250337183383576395637315533451413474771141694058999212518505327894317765758495357178657537566643145226326408809201869003937982329968094323789392767766133522402426794068854812828258715402335047955462026511311880709442565910894301621263463365181673790313579748327966730990789069165745793539201197522815878362956282111256870779682350322494007940589247448923552108422148941374144525785105731792175628498366661396936517076392940055965077923787858263287987525549038950736268754749086643699478523862731924859998573992493744266785863307716766910934339156856649409627723977188894407225256166223456637347984323192713101625496869555382658490753407205855393947929772562214764841637739971498633427889684527650882159317713560320108162334445891492922249880576916877815713589804649693104227087361756090052663304422796705782489739860427707449968731575941321143846690896227458591655614989546852945580837449649825561441489667588825304476993717473704419193831246884545269894935261942547978426551537705920923405980404194777022896579176898317147750540877767703322751308644746343097805339654217329740659204591095249196571932366894973231648839702491685619435506886249463948221225553535958784537854756293303378456683666666479972115516090377405564924546208252153314695698660842866623221038708549003285254402145983990582912974230681870876834988274892196947049252548518996836989206051289739142505155691216508571440944479525901529728044841019156481531567925503828787178187039519322614272083043867054190628208766302364769143576783268590142601686732099439931202230049627261677449304067455203545288745960184614095591762886298328730778641518949882447248833352108665729151094485341179714496757375074250236777773356026442474489515338464313246015243277772421435387451115415987648032096707746900982050159117791839238670584358405951676887796756577061357719256218159275293502322371599306916538710093907342268717626955241996463103790022812298653504989304584166228136677065798497509971326353688569901210055165430879420565311111121753300343079249768454109550553271112310716950246719435100875254704830026123838251015043788172117112730360332478358451870720799808537126266539387989369379878658257506543742201068724861090579077050797773710596709610226371704027060724618539330223402496039681921527232893642897673494387912237835649243284441391590206001535616034031109788266210896506216791439003644735351231749478127202172233762030526167838671009521038741871133535315657596196028406259836334170719612769224311583394841169411451981278169190529487092616199195250603627799014076170008885667847277471223574358690391231140393967683365360525662628988563477780682725512110541107306858632126055832245258118341236113677050014635490851816064553973901262220326049850890089034744679732838617839725270458540432541393451587082367744849607771467465130019573470863716925757675477856145648387065821204458204716230172961312506451356440549851678892639706398569668511657883352466196508979750353090675517717883443242840882751104768013129971037052448519694308114732079266269436710576992173730412629405408837667801394510656688663978449921118378441089193000042625344444942578397404239028427505619046618972248242263897320922796529762764259183003286927235048333429166278291090987395946731029716433598276426556654267097533889786328986941361070509492853890387216995320407543974505482111396043009886918446474859514482399181804157042105364173305145342535622999336049043608944007573533400920549461462717618634468789574495372969529224677826813972780613418432335809281269557247274843863454626039863701272679299632150528670024339029704594280443273653887705395765595056167819070261847138621878798372989384375772006260482219869499290848572736203960025339640267342663736083829815214020216445255996899981460840549606350004506436206120449252242654475235039145864121389935361608678375086699152214594327648157647801577373495063147776127267116190993658610135599355221450108903974093384013626156153331515629517422024528886909882004236999856817005301625667192151963965384658691044061363724659708069919609722890046926084164281052215702070404052135685699588752625551570492527266279044799784324683555451439285650801989340517329064193768282674094716608856522302674879912898117163396132759611195702030497448595487616030046959013831011582784363340765274379156101259793758218185662784609190302464146408550864764890792344736568174765854041557627965253171614391185445295928076608809281657761904321155293752468160398231245401095309774284350994597754901861431001108361924220358793088122320777159058588348256803931561338931979884830690595994101681637143121009104810740760032297821186465947143905246026701419179862909094988766338177224188327249937489582768974425574595025342578945432540381540938784727403229787808345710195703848380214944261720239539390377297721366413866130017398886748421494621292167083216690580937136042631040326292374985270478664071937275876053055419482704399402216144423482100211057310142700427254101222292626693742566195322305060486246199640955665734760536895978099233548602894024620679774284512404134135628969632597557263162316117389738046589915270721078250543114463531977347181613423193846239905303572707936659349726953412173256998911810246776053051681327256719182433226381798989764244537476700111217449102308439192430012086263351043456161426640641871033383746954481438983702666833251700929756892448483420842424149576108615051882722316587195467530187761486819896510850715363336820727288840340323531251320970238807810644505740126681842036851047866041305968389896963731316946167018158379857457378966385979890235033648448139123314553748178452680920094943112599940578190098218961158547995515379447675104575144093834881879916426390407954477738473259931970938518235042535677411952921556701778084382872909708652373162459844203193827283931664577803171425582763336561653454366249336262137410859525206900062115599388522315601844533312413864272617950479894396410450861366390698484810943520631902609975122899191784642810384277798352693268101963756721601907715122295295691859839941691705571543135616476329461680047936146676510594153733304231688391453707487770595785763356344243556790102891295420474660037217330956143028590676340079897164891570373641976555283228699877736365203796783554400097688187662674190230894345994332234378616044661456438325315064953701872068631946482923357982706738811681583078767186272038693269513517039660388139342913562236323451379281425249104911028684282210157990429625489532851048124375595288688752359839474996720355921901928622040415262629025919563732263489545106810813542457934307638781817754732099104692867296702777073359766926023408952560080318979339502431153060926993842267696999358618264858990141658661973407527470470277844499993611001394383102906698892943428463165813254895884674914271402929009352911011278953191360736323604053789904054072506007103131953767028619965745304039433124560234228344680052415581525768564756508410567599723016133656139848529069985478456662639031794763654352099553789355086527720285388218600844938680011766588029547137172206507369596676169280222718247909719154606858564801656352455947850198035627715729662356439973632347964057711790774356593603178691203831191059697427624305743136234048133971703512529417655400379145819783301428362192075814199821268506497444107220585047882975252876964581820769749348439977754732791567389795851990805643113841251202018319307534610599140707001098186471936131114309022593041296407109040705038514317837888963827719008961790309616690092859355318288880946267035767810302692373424861955484369034274582368828976067806544610924361287274852807400371828985946856731163666278176412658285333091391846352554805248574372396841927972990189062095632376016247140249032788777862825845034175203330598228422263918942088701369769263503514831302568510338958062916009059130093977345336802792037300030326142863011098376459911526801768286843124742692659340612519376503894895519199479135040440926210631026165252837029198228937879837474043831340997836295133907166003790043579042278513426110783374945339165657693172298028463323555127686743423374007306468505232095993038873109582775352799831333010857548768477409220005069513321483344763496902966555979220728329986389664612726905930955702198205586932198274296706717170629925487787991096130525532197815858085797250455724022838701774207406871707487385848099643225664683968868291449990695829551431581463114063515217180666770207983227331149460931204868230358953530218675678886677373524694848877947929731116973162447299632973395499590190448828592658320713208253440009618980433436166212897730258490325909958904653220676646454934503787027180441675142728674853299651284763688305371168594989110242636357228463979695477225746913936691767645185493077694628820114650478078354321643229331623201181937058897780690644524497059549035848249684232490472366256157307486763950599960586498033596157838874811696612693531506379573891203093639427116860244796569187035257426942315987822860197891377475721006610884475471270673251672677662006746807665346716718784457752642068828967608119787768389374191503764677789001664370691115954597954394875149827109989293386427907468517670956421143992301654341036884661543014037011275783881574011089066051290107992205899442132419017657806460778201748331435908151236233090369117723423099335632618779001906623544826590282125331267641758212310754084382555017047443797500085739371928201029585195843763190873153628168269190684249596263085170719543028531749769770396182763306046069985810395502981508823917866310557045808733257450555600670196374712172029753219221489982015273527089041965267282912858154477214775184771487404811197157246418073743290062015865180808976302364252235595675458576315395469081926398132019191069359360357945970469632111681541819175294977852302593090830749468309102948190627033323142371717446875580974759213639555654614047107723738829553082328856468280738764113893270128656531201015989972770497439260736787461050770092916276177086924070500458771069674099859329614268907577022191575971445723982086069091978972085321653911538251883075481194391949915530292298195506942288662307662166323504424146295427597287551333783440077953350522902259888214640777963538261544782447156868938695945700215861693395473850987208517738846545781999036286511698248859659961094569944522287790397361575345199249170758361243078098001449419147253292547276890892588286280396752432042652803203085190652759487836977115877057600420566199556329948900640554890586897440679660658686543304952144282449721773317705905471249304474991142104338697668414406199180557183099941141732877717888913403047643164379762714120062072702449335231836853304321886011154794683157191967423470087673263576982717467373815008703301182206597543777952458728053514716604149713267700539148264866774648971735243943198858150551533306274852769415764158019276293942670968290772553424647278810889821689927161621775859978607785137942317213382651514851749974671992458643765741815485669745938617890901633575158467155131101887980877595057377213580462027463390297786873071624211172242729534492104778788981877180888173965350529077914850544823262445797313640075613909885267874743731987715909169136369647499191171001488375169746380640497297334490005300272164874378156649199408866075527329348561574738975357552272372575916768538219873436426066189120760472675513984778013858439528605745019602762590603292896159665886295782909559964157852226075478394899838902270814550693529141102747549350229883191970151816521352259966456509386250816254640839802980290006970414977123384171337801840917675922079115038858293801194248399552633329663656235037286300942004806151946245895861193046960916800748552330800320675675809907845263251219953356745412415050671872509244877312492091070290842340965071124622284344312289896203244512622772668329694295667579691471250820074755337563165741871482287310049431861979064979453241170673738599665325297091800823628597617933016163677598463713672003131938584273774381499807672762412955132841515315888542537421271647529339690889737886135008657529233215179520555819354187796741357255548514126732499883170158839775731406988516029527403586430294479947121678247938933525978554296191854167223052798997736018099651815061205698488717832214945637111307255417804589163177337133315393596930880686662383549222715520529996864041290587837381560099987838651352721620854401093077391114841491881927735260012951637315855193976056789319177232844923549177271085129288242585483744319489504526555846170575338812964947817121048586755207825673058468072691784981425445435994506875992871514989534223498642884701445838849341791146499131004530781429478804176834244490415953975091336983113589789159642227558853989269566735373888010648301239350819521185716612076863671316871920363521858759591077916732048981945681688216728044117498445363755201412438130841680628093168421142511360927203695968837319764885806635811845787824100354936296504681844049807163307503785748058141102534029768760757515314628515470332811747111285186236216193011966975475710879116277273328616263962612232641715914553103045325963328207425062811895303351638662765912142044143167813869763558703895002784686137908302355179409652637609957321232176789042534694557312191230961005201828737331814112672624862782463720586735535032352365453760385252548924342100582015296393129052330998079971872501279208744406373780855547940641043468684086058808269645887787542850060677411393292650632153389013057064116844452145686325113646569735511148430358494453670124790475204266866482998821767590171958994241286401004410043746999114939148723643358891130665513581763478037548488828756719677704537976432465083278846320376243143850523099920651275478313175420814361276425584227331995631448463104142475923673355601057842500769177660898292931378459688493962750150271558162763201779144969240283527561343522253706936604325390340284327819431559429913081569210449771787424220256990813293240846894319388640546966688158553979222288374919840763438191877649530130912682724092773919048733091500072793507318187250746067194238710757121059505936728896772342931468685060736527028602948699846710312360479119332571418752830849789590462235773274507279681207538606059827625031788932302165527469568127238051447978430786068458857135388657822762978792444011251985131806129179190757546707408136450183060588675310298176431188098700097016731204849931419843548754082659009614573859118146724533970897484117668246871104338468938511316247805157229015675541171186830034103384861477976816349542710699354072843303940491408549792059203551644964271543091868482743612088742472330906639024490851175455761051098932549730256130673379521733218353772128671731419419424966440474346830926052251697984413582709034883480474817683942692759445325427302706543508659467093821188930345543552783973059196322741598740272356874791149708540719113580524093492910514962203467657104726203799369368016827162202354060615624798496089150149717182983587896235835290882960578829136576782266571404159712081605079516562335554721994145310302016553085193585707221388675754061027744654487229389359633428166824576370471207564492581116126683211740928674970173807665218235860034247856855147588006964510339546935117914424979458905346433868651542254983370198013992198690865153946891050337729152773607691800938435564551397442192210501683437740219432071597202023068395498385869605664310200325654520602675908792196801911292707950358565014903641919886180681890322296932525564612238026588950839158997793932241077031388955563211394147424028051420051571251447069875261948521491979193565900287864683913035672084237148572088742050718505034419152239269389694769917181757938771456148852193351995103734098285533896112579244952286160003455507194321760340333069889292822110351558719083243520104781768384055824717779135423497204056275904468017594129925764242465868589668803270552615175451980666277421065036112073623345601978040769792463024279391658221663815197951778957814421533932950077067888886979148919357670904827271002515951087537470698926017979449847408011632279250668942584788466150998154503952666810600070639017564485108267777183180123273960161582832354355829256086955579884711602976510985444874160960018530208639889639629192027545549539200578465555789322825515291695076624637107780568793312103520631799343574302952451063395351336553564169467043321750007732489388357802730173462365944163817449459065794837961301682998902350662126857101130154099693980119958832266326517132753902013924638265652381352227740692924125575733586710759635136987956750026147167476478724203885182481892924413804717393190316542548488848574291766697771708725264464400529305165739450222971394580512516074360222679758276234864268659054315152392229360807588621411187769291883231888497745677187600341386770327071167787108629468878285459258082809942242135049476038891606160849868986478058537745021524514176021698009582957895401717939773221943962904219412271962320767110441546134409249402934728578757888727678209685467216267600728165807694003487853268072676271783795053016061398279393289773830677674455603945663734341487157355753804822798592066479015532741990967201929607080330842651122882776711014731834501796664851450273950119352326196801192801563698053883065148902531043533282364940376684752850393431584520810334593173730543562352393942409850042631646391637778580238015704074810489246001515012079734720906865612497309995144541667264982104997560897967939865864332498806098715712222141327284944860817674358425495385789481602934206829374634564164286244623116077914991000677528132998879664781308537596512897875726258471391711083077474016903961195752111028433784868713155064381436476780768521100960777580333596983868732954639341629055847658190156742886586007516139798311964436132403465394298740186386096892496943488313589597880567341722404661921714885237820583765265674488698881524591593911684549771519250729611242129108163968605783865426576631358417076192340947999483998517822845964862698190089507482445087478074362464314803395303285203170369974861455094607843820058522973404571964781629307120272959371033036410702519985954783482346862863884427617017865595727466127374249132231579099771302156622223183647783804282443448305296908868610220766487485506601569796546603582590034811087664316976639297337026775004446947699190284010119347289370915040702009643893751986029294213305270090306331036381027597681022175719245900063494803365323730397822988781189232172501802892833601660796309545421563840750213560115366688299719080053504679019851290012081602763453744733172065639002707009002492032983233930028980172976232734743659851978311519050839992755256330644122721012755570016798640381939400676179192772367549736288022685082133557063512843807261097225650242514510051426775026701010264597020953086289672544968867547463186541155912079582206701547629951520392612706489564380223211273755689759905048856828418797886214405545803660025918458341258788569223483199670779053366939037303273352842775605183151515402100960975577187414328446498268262448639972690738270402693237431815903063646730507860165265754167690078967327709466165054858632676410191557229438552054109807193529677406222354416978709511503302670426079928865296393365385041651633297922972193246222243959913210974795379229646907107195563266273121225681503418783604187938459914655288001833516067253143419712986431533202584973791826865196332904703339218027838050802086100871647935426661763734173279045774333520608134907436815508153638952879219501004558943281880191647495059555838712830498800548902635591527109663373437775299674931420398551114978618155841717525715457891354709123220523707581219560394740757890633888912581878264521094449849601392526793517280781707389415447614773894039554830148831618634299772936168057334651655006596383630483544981833670930870162431633220416534793130699435822663182775067692490166801801119951908382985340046936113336103451261882850641827700959461813742453702960091693835830361653879672886082255309287209537505450015215162421619694722524641542435277592965552652719768372063418433278878931732833489646872532784583221334956653966897806656133958598540491295704053654698322783031905401627641210893218432587816367147816166031118642471041693581435817534063610429011802872873718688672179680401704107454603818846290296324550885515169651399114229656698581740903807971702915382765507669216268182503239340885048466810438699367096755893325735679357486762542693595345709516794217084880777681368958026747895298036423114763646918643660991520198651528625769200136299501181305539448305345969017115344358786074725336477494692736809582044263058524063867197152579113846920978932042193276393287830298359641729052394546234776384870148160439940515509739451532722835543369890436947929271340224876650958187441236047800473800210804016013950793874695158905829842833291595270739949650939882348379328513125060573330789397751772228860319326361249622902695037673856285925011777620730152065451177766432302945235137575771076970802909808771906680926564756846094110557641771650313801001140261394166122360275481784326822379515344060908724769580479914432519256444432853379815709413390164044818865436515475078315106732898142598895316559525050458206304219706899499633923173346162120671698890637356873357677851165010575448211103339042285496339909430289030280520907790872194982144189902726620533444249471415828806940534672790618164768976568894966267334118130233768202683796971927414284334369054397624033075423376209144239073247654614149627882110787082932702584540928238479691700404933072992229943208888649029530612902905609899917803721858088283010954725933776024756906760450464768619715469867409388062914380943050041963926540141983809562926076692164636091446688782207221277122419781451163014836270589690470252774349604783010832258593164261973605725664043606097972572031029829984782651791307241830280131567891260291628663527012207888214245343984663059568921579922054847438297498028217850301869438615620714973063434656558088839381013859390236322207824664232497362181431712025170766918387149329182607826502635877208337005077935515955149195880732164333869906040072606010686715660362490027915043649121546288528852867139894173698436271658474343358495602692047940037561067304217514337113753752465959488896521120316502265702909464427244207802932797944267891467705833812074060830515696053472511739957361436320010363387259441871580456471732314723896658120730118964896451529099759179526343753691240432613946844155364990474120016208912710696107729283774871950456103511775739416825255695098628874288459624464384630354398493941631531591180860996266624932413185758653888056189370128615849899290979469586304289494693247309531223499336436750619938525988163543287529599945815344920501238391734122531031183643071686696717800804914298022335881176548890183129872001084492409422034900414760721938211626643010374859317530158678746596834212627152072967240277502496025786832164178898628730852694124755258474465523283751787346664479990731919100083306197956407436909115082033984487206462537076779656758661934977147259496418859495013840379075103001090763364128361170283977343534066341088384769555162915445535855997226997729082204225211316874737888072037298762357107078120852196415446181394744562378661287719578645843003440821595023861036043438366488251733777865986442298611410813815008076161819820938416633135901405380357091832234583109936471454665967212946487626419532675280175271090374152490407481006088632891652229956945649389708591908730067974984754639450258211510379783451456310696982121960606667048403559193922458389089468173229503492576295603447911643611502636185387755642377879008196958546729409961205829267340227437099698796311802149269312962782267172235118692540715509834340863662729369153260716824947045822057448944562480948296054063417932529371230790463505601527111473886617978032709532733406957686445368107276147622795383564188905290934691957311613369803924324287690027096008327011674006944786426845780747950453412093967597268069863789885427939962887089569231689101073097489533108433106520142894767303609241893913126819531967408720499172244626198950356816289905595632496835076040272242829072868287462744089542850185526184745474638007976402432858467472938872854585402884667482463981626737721062076515954034307494276051680993389035040252878613256048913251167374464033484989240257666075011998110293245029660094976717479098603608100079703420651612569316278651453065790283448924722321947699097127911545565069519610137937962840488220327709675245053154045913374576950677452111989341223347775203100934245464647924069732927283219035130948298880277282779866817938338859388933072907990226419715571031822687940888660214421505409368877491395578652518279089047815238433990490100324259923045514486430713159229614665556595919256114404560474109329814064105614794288686585645808217500981379191808429403558923266846241867112914254965135964933337680869507533377789782266271016975277760811637782999808609669948378207032874695837520624033873073932852508704336782645126354744508780076224453182851759454250903884357218773684331563354672538933293358760499354843340814487364274242357121387389580578363090132372441658186073811539348742850676838525069062044832209057324124402436518974427571656304664596894777572032577164659015871021077504994953248417388243805978342634822727970262399128481718462428286300944846763289285489548185652238172357026884459418868558080632979779248431162302898294022064918206188135178927228715799023032717366371886788821895443605046581891475551543722272566468101326976057814299473610764174071913702670508706452576366341829798819042461907709170716234624645038744975345436389099462902556936207006409892359855032726502953762690301969552098738984471635986749773942029460497377416292784423793523374142537228543471585774856355151788556054172393445953492427098138555535592055851026915980111827483679114931892783438929035106648348324057231830030681130913861483496613745200078750604833136794744545689078181270847253705197498151566049636053018103820016627815002956608495565214621817218306328563327078355214763123433515139247277677444123832687969799477430252794555537656940415986592875419724821900987889858598750307455612160641048514577774155249946724187434195598643347500256513247269857888847122917371773763297214322025179352922095159680528588912300867766830316597378527983106301825342284164532223319798082295429298880761949697678015497288725899223379490472612102203288387237473214814764928064732095219175100136978265721820254901194408302271847915438246062747346187924244909008262347561920502757934621557604696200955760669829416293016666353250491631222580964436969554644580772328668400696381926108935358755517523525599173714950733854223273218085565484355263897997864094541553893432139539616232485004674578659850127399941492388038080595897195957292335422063025960748279129261170811283574483335622239575223726628342948388172607221078042905411382003011270343856982567760838669187064447459383779529763246881840954056658077453661378056132351616473722580580748831318673950219114892767961765193928713911893392724813366638817935538000805806577193997451361071641835240911288352872766400672648795637842687788272249825925129463362267801734920750753578430383125199628195781447600090091972463738830109388274904811852710176155401941755318075212345694796484527107767670575512273813002955753696852156256343899681631997509247743305918652290698236102597963423351583407900064811802385441896514598933421528712667435048756784798085404728706911145778195818997125380252633553199232055493047641553622343759793804226008664818326679805350443618815737221995701278777496088338712807271232948344623384402297868625520474882077797759742755021722505418592970869291092111505139458412696452866363096051005406090913535527292358764560621445643088268961490819302723541131966802047851494726468891463501032273492144333497974315060389510017471955038368815544532298714900348335081656523647167640353100710623568550864320221674767504353688172095938019408272768130422121236911875785383248364610834663952619858513178139827746450075636990370541273034689527478100540989565252771315236012315769321359741559451185291454476691086151302201063844330414184985360205983171478230342357251955548217659954409156888771789052261759815622511653456786413508633760066765897901488115962662057493277199411661115722679881943532798814036186687618314881199214815600575530109460409466924749252381471989563993758130911690069021214919044259216900500636590708279857956147219684611137471230509359474962135964677679909339861366493298152875459803537719213869024328878396705063879850396820244109415893006087989502164099363558857636762252334130222058637773431122205774805703147766448877007400862917352014523663756265293673577531487673421293287787975807244463187896391084042046674232158713538743401695458680850914249950883061591013533153766024357350874001981375175255384708225256958845669451524964424060915093485667631888716388167475245873355489575386495305533049819197049217398679841468690639968611527035980182091587141750534126772008774841929545260606681348761974604074327543593182750548712376724253765628976820311078152161040425109363588034889258972006091511422904076944653207784017758494032477623869421419044771122772003803723163431997217725875041905806844561037492549155867957152750368106960583759760241109903503382296393244459342387932680968513926874932042691241423906483516946428112927678843827250472446692268971892967093603147354314359134529743202754479264547431849503261979399738423642450283503243738860734563250876022086416786635262660991116749227560215658739859251429604704914515868292016974173906350208414935319911180453099695412543117414560042533591840684106764084110432952162014582219137585602461624611031900662890921175604626155754484704299443981293736391205685815423268919366332354024935405026669268043458748387952793755291294164501044449731791754404679622493587253128710676911975796604746357559432685065936513576150161139806402186765873789255846628227255595925012330567133172675094423305079890470101682809676755564146188997485139671762245220244856839075186436551878570540974567863251837106024867203546709941823518596586020668706967523625187251759055828188269030836179725646396788893827107566570918744756604982966534902030808677630230749452149531375023300288759525093307338588302908566631810906577094863603915845708058211436941079183520059427034799144446077415728315511127204039062200184516369111556337921796090642974248849403754500626142607609176319650942350726967426534685405230937986116593657782971972515751150495690323800632214663291562335879216615527879567574233394470997138964176771138182019174586820497293366910516197038119661720105991992306146598208407449449082194542847423378346154590622993701417394290359604709347935432578707453004383723227490786374623455948047949589979358853565673495138644369744292910939220657805364293575846743102661549587067170245942922455391260348089302757116402272207463748343370876470193390559255041003368523321590146320882839031806232725823601948960805111355874528973829913970231517238313468439362288133282414324234347762476226421881110598638114247210397520745537375214588533034630814639953512237412605908242033441162873004759359193503139946162530794982543844842454012934706311742336397135283863810496437606806306410617419773423205370417325698747022270071099189957052706757714475909388809929951060563572989525438298928063968337003398618550172022882348264157207196683926813069180355936813961861945454413544995776948872945416799270302802019036851806127814441977963744512027899467500718514203565717781822611855610744542124089187603242359938252703300898788956834801518104659243499934010429507019294450288655861073012372525329043252906827656439501783064895398583098522007164978465211028351460675533605725401413502709751897391428113766371403796276588653874491960500624800687298946326149414566421142569515353085360482915278386500768418985046991499242435454093530855744780710058991946068958585837199774329109979771267372117468553314899309233138691588447837899957191449412337716603556825048239185685423775668448304458599430933975705180343487022881328974943164945440383048219043166771412259118254609045126086587625390359664174375002599644788560313328723805725714320412450910225838858046947620257035536306496449488971609998728905147746255221380589397241254488166113805804844022498212163361606831623715692737651450690820372071815953321956222756586846754076864084983073364293237715941468804995027677740258076185125800743855249919166012304302423390809879011306179594630245809183915960727750514976199725457844529041271654949635073105305107233969498189166044183619892145302136969793941523531608734046137469915204956292966775107053026163925506960639458769594587887175551340519298911548457869705021592769408002912331834687791903825146896300219055285958443427086102096972700581079610566211942869092454650933206364650961065401778506850480616817311595836364491553228930585285459578238400226387603903125461247050905384098946358487472286119313098297872712485971625076787303033434506887853869207624846431343538496296230088705665112037553598016778057633496968061166540116877389087435315906208689086955125003814969326922706552340140826147458522470833986919928128437608348134163937096229341198512398374812566728632674682376977443823851361882517817488890685172409498340991189382540637399963799382433605833552590593601347957798229916214395231258787982014515572164600805291250233465682693212590303192268622950625655416265114310509730081108692621648139397038625078736645135137713777649958055969902550460691793976402679948920789086901023803134815268180200921349320078290035381290282082027391711857428146806075663495230162589387297564318675542671424600304560288266167102231633176990828206151150814968845327440872283193468544954217746202055264134528231617100641764336974166108503758566693398561975482945132271143130070029245551732145536755867654117383594152910335545278053621867897586606752455848974496474874241939656693090351807187353752840246666186516000948615414126022341857163228379664109173954798343566013771829355274191253837747913974572486775877940934119008191503773570111660713783335951841611122209362625222970146951287733802867642893567632305416331262599668571568319626652496651090618157981556808289952813757402945722120011655073197826180436366656287381336323263502113300174418035764619164156478174369076089762041893434171736322687682455593778930506878425010238361875841207535010804909223103703613558329636538808620596764705459040972078080815744154797925317694995051275033680142159021055315796083899955943327387590262923980509854058240327763195730386577829958352907605367134259284275441024304401977981578675742959940341060847440788424168511012585704093599245810716153151649167841667616229870002543522269922058518128555760762915660422413509680334830990725806925758089340037565656957058243923145637492938253926657751684677506755268789409251152089824869236300332297747581732972570006838253420639345499167680922277723941853541857542263162589889568821645465977996507188343424559068219712615811256734471229682218747053834270214893576274296155527662164089963757651043766704251069755915223713952864241722465138013165745749951163324410091399567940933007969224947213337555180763626554598124864748575618776380171808061024872778865391438250214163820817547755576819779176451432024343485853059417345560217278772902140560503561013041259933799351749363063327137375333125548309296167327066799708104714913187906184834432845936112230286171340928967194743508912286008920109515773877837082178830900063666617236578239329264147441034064207077235122597888170781778473402791636018875778104811153920395710504532946049662383802841373185246030598143073016930968985354132535209955496467265754020500980972419633638843875388943305271665213431241210867399742522419137576374036308725617664516686801150010561379563189819110336719009273810723758711794340176548859556753684601372260464213741133021811871075214432568794867469406683083319734500446060836044392503012678164592126685259788728761814224276043491708371659834366376247663891980050258748364741501724805247444466646048111983411151883084354300696607946342496758755783967141521033444618234583261892190443352979157319077851475947906236667500891503119419814569565706526231976920639360568196110207996850194289415306520210506942172970480318128048470283266807495282949163281979656182359683623116886394587280711693061534727881571335069514326389968604296226589438053195769684852695643910259564535622421036060423080585718545765168553160572208556778184567832250303791588344423161261281880355780286158272728247814242594819356022963632295544321862853349453798063426872052020891597682260634909026698338867319075076770442362073651109669764933834861663123781192158302777612843802147771895473758251891521769032663991544844482241527036363850137435919619219608264126311299785914812472760147783901655609369274691659062195495896994596442239721241961821954665577258401574532995334427337095353670202749544813847269975949097887621007461714717887666271847078715193141950464398321676624555218288576017936130121821128401746127972231282248726634977608588143461592673872911167795161878680913328798481534826845721520571140926313258390953864280325447113022325786818166001984363470630377039110169115829327758453342151214411931877353926045672315394647459141611669554564890204037672468920251747247739942791486187849549919744562803120424481104027039832278780322679970845623334386100127911259439489490200761618325644123947262168685111264246452236015190624922648574122306930016434527259560293703908223902988989123322231564667150916493074689987612667101705792379794073573620007269897106008803928414779890494932333007620372726073148186173130647978883064844341709645919888417799557753291466083834382833064172786554364307717469717083066924591520961726664286115307561664737450482297046757159752611566644698692615487226477416786879160705802206125037208329305963529665044377186986984813864020405059463948847446796017815644369136260749884106863710852197916611244190042770934465335288382954148787174229223703736408803953243968931923482022922142633789544817300622748890901564773905737798682554681909547178176826092690161000265168950210761851724014624636572230000527510794225786131420680610495011628782323414300894754912071729133323948134970670718057181629186048650760390780337014142442159833982600307821089495776286193743377335102326535037303942801389762827558398974847456313688405614304610550909092127610784247493003801577287631539998459012513703007836432843675085664147583069914123799664445165422051812699171114582952689575700111822622661373603697634647403477730732666945214349087093616699097448235283321424429010605773959609117614538997805561209120949903077769510646099873299784190309007348781717497646378553952320479737403970377606629199961233458608984090212557820513334515273465459311418087087905118688316068712205644121992262131029541408013590139682713126524810020047209237873254689561975361423156194482313688986126291692333625124319719474667860600419740181180920247969889927771823671630739649036059691127749564511911343929946832811532913671335713308638611183002666672873265067267574726886430380134298868526190679271499230825864778864345569308475231165059647030940042763762436038914455602892463304523138113649912561630699211849938605700927824292849773237934941074374873568864924131689848809188457354715085339356273163612934461611759223886231894552439470314967255977871193302268223870539405525489790610723452354882374805442625756031817216289073364176479344042197459722668665386837305653447148424262693788720171191159719375416180091285779351900405688831614591933895070699407172334863824681454003394747296772759080502190724796477364504014782905981411348904589139119645119842288478874051510011672525163358330224840250242643042455465190103843895829211286635029888484335899840066802108236389198243019855899045998151819545306953166194632852742151168786119223207726658770209271579793494021595495844733332619121028508438755817809584137030555335203112117415477148770688806251354319991761046747154946880686579678615056407514949207997130688180618124606348002077636867980064134005800205251685247334471525810015158489563862741082943518477974015629375158530848436977592121675195742581887394273808417348523624084620703086495208393670716507174270335394452502078113499491413597371801253503716568421265292836558355924812110196409251152629038842590913488755016975647306528505637568660617207718139908747391606795712026510634151105567434596377551848653125255570135451215123650442058518401861007493000710501427415040593461903127126808449372870002757395473047141408683628447792473102731156315610533277983374597536039100688011086271979640643264027975377564476173225691566454120229342896538127617357051647850044947483119161783429051446020809138420339447060812325834511638257395369736947286376861314441967185814884750990637533094725620392031316722305630554338463373828112793438442633528157936886950412151460881591468725832792946110219718220683824478522131108070816900834731879373606209257053213099954301023336969683975654973865339117925011620968130636758541345222847733405916080683548449348726158306878049852909017533282826521540624920157353944654685954761857370013058852532305715045920400415300339436131210355529523538957243781410348235244493103759054803546727560283136445692966897052480943260423145221936730671181914404815291002966495600547437149664422161971961083521327172370143833772303400160783473337204902337004571708239893059931633983639573322247262201384611916788329764236581334826409018850804398976617333678305628262259927289750987746337642876661277700690998152535862251070911897322856700627067358022018351988652482515277082573519343278172622656279165292851651194798746046124190088833960572718848424218982827362398920727492186264580670135048702328037541120897322541367745256621473492411139870480025502162606730016613852076632492006364341789916708916628397944883628738454703034582246241957096846056545531848794112768388628932903558313421362148753711775403984180521574693358773503858239357534392946366653165604475173207021626154259791517236694481383779316612972287771524802212591129287460649276936674407874779896473277984717414744182227681177745375340258528512646240299192369462706348252965029942472971467317422122463606641290858516966114396981232178598787699506313380661353552544085682828872934612068120776716722445776275824232674368734448443383079094223466333498344994301513135073019758301579902496134886019444123672464105843947214233846702006357363822179991360186021037778605382360767757208396983235287470211115352300873051469327625980963981678606217040312471188436285394240297966168763778853346131477517295345323196130996233420100559516561445836205977783380317208398128411154791342203491130912862788045743815110003423139310578042176402743495885860535916507600985509402685858271040332506057605342427817703365536943227800681949968182681204876332093853684728867398564707848936661072488280173170109753344242424165136908855222557723072179059789223783194085187141420846773645673101315807304424328921557729574550650273902838795611613728276200524556144363840681149128740536771316539699053961616073747238681422278703090669831134276755033897514341951817589782460022715676065867796563280802253910515843831481595797399282193149595001258078015782911672584046226093730374052597144102770390535954656728579323555159949480315581904519460159596535120186712800188514818689715566196117713370415957301216641885054097137895100075780713706813044729879156414143326248668587704456047686501814852752784742526003122558914441341170649411332876928732797070193065155800031758676055237384551355158465461005388620025409704864898030433489719568134860971264589924737488667819847896616468106036713533043928675098274319632545191066300536280184749496307782974242984488050791158865632072293373663727914730683168992551489766627418133131731484792834312202524509019149354641959264779222470223326417792963622873828563266508617949188923736732321454709247512841156290091430402923128706671465266520599323126250682376314347546726239281116147964093021978546845008463422674657610603745537791023185538796169288103125960814106248178874988449323442367508861718538872842251115553287163980434133039113769758732127694044557175423442919194464594849350257799423226530015361211820902689864689957472976084122633457409823403959647762324222560694901198437963419967009774006796720731663495848048513790598847997798562380739668043931754088766595884560269833196801619236793691368399305718291520299720703432161061867428707246240623092659595865466536405854496543752780769799028624259463748998330303122495931381601781731322707987708847461604022274372472708722182322323839405265140841396785240591212291460216996723768308848875434107274170983339433614273888854878478135426640591962482305899877111612417046818732361715128066192987902976076680594393657745702649538115785025762827244845669084575567298211907521255403634534645599596569152115108176526374446354061804681862228919420699635922461775119817425291029977945430742996692704230726332013428778791953160321449886363166682939565584195633783968696634783705736005145818307697592349088755535678028226151368886877981990991919899804319680405241702569960239247807143196520656142158442626024633372080995869121475473278373959545324898517141035361387697012052360146585706866634881100190639054535048434216824656630969284889076963373797138022991726634347551674872540451628882759841135288743621534600661655963873398536953243097822725670884932050331966940172507982017983878256863029567613884506258035795506185817070308525086434300154104197943547086050848517999330685991676957045786712100839714234732017501946343648172625718264952927248790998671809406038816876215237656609409524909666095141255696764404948325848117952822119748330454861770077404258352444247011661398296490829307218660685547610632759568606815520276648725087362395901886407101522403704069763889137304569161044420328778689449614645035666847888087758076562935196822436322118002022891149405814043747352663389693196044592876409032081700425751144641956656544642534264706963506022085349888063023175796360613657597712523212792053978171668761306009170756347352412938618813755969534721042964410289246250880062222803164225898618702301834766707778200038556955285039527544479275847735671941948591623781923692963887335956279115720587526900730754150909532653830441956108279936622758240781428448195174387283816118047899220668324950252887239838700388633939182586552598278127243532955107729798008582853308513625038271565932773571479459504792692316064282770098432600812093105544088941991044583612861554946617608083247024190591043363862606588351829302512756729381367511230679551445789581347513115659965471036611823707640930016579736180360013355371137644735472449397532798880185058175029786843182139705076316522755339905933304370903544034433125165129914636674918288298106126242542264561473228349409103440087977110364614630256459428617601660274888959660121385945128012317535861284633655235202166546943315666255135664064551122846995190619294981340392796610628528095355476963804005691219281775801187857835196432554063410281360076974900005445553505315453429353537889200340107765710304106307917736708651363058314172289791982813264657413397135163839913837272602230602817140104824736369731585369800250245263781982302608523430938205432327625254381076114475047457555270970823505658303955080089138202260139910946710634444039819264018609998567759439768001706243353271148793000705077044042044632269075076795946241875426367927817848254566859372486239777924311831484122691239770919772594856224316266773383178550750060074043828205918149749117475826914163596541885287012330233885348805869106132186699621634366086215174544082086402484136848327363623130099365948191444785972383027834996390353737540275829435653549253645713360012758150006783169022272736129073653876428167068085437316677688733090287864671048570751674945467907449391258942259239664898487626433140302668347497976901548148261412658966855237793706282308805097431771556302341097824185725634437735126960446835754038291143409503068852574978798781202246465269771032241520412517728320871178931027536614448865217824674302561166441888128424752325409081642681554972917618736230809503452128176840798844222199038472400057742923198361420697144468061919148960575520662037032749991805429711238992145617256401667279041028929753464415814863340901477736129122946256048026927129597025172413005600925159544287488524265545244612271522331446638338557285711035580658983438979110039833458399412786162179200492426008209789192173881092235761233207755986392438772159887890430487544948452339996317939656007767227942277540290396860939184225609645908800393354205214472296983204279881579868749605729500145558314006708972249249438932547667427740282774514407200603762707239260341237263618216633630006082118827675847939455957753226352665319886307839775376530967597687827457630591161860170165142182716210680167679883936302746548130950288270136071072534053933133169117863971387730598077438384603610522318410983503690961524040858340632866733764819117326004756533180489281766970301644017680209650677384763252610642197856166162642004464343170963929155838043879329668174161766076196288504667730080494320337984250554228276151901895284192362871360119315613441471517823274245547592754127077196024415952600938816931690812529690779751505403069762640631886421273638188590507962323488786190043499838382432433957516270163153725946111595170086806024583748598097961361461354095960004688250307495213444245687655917870657870610231667752079951887776846706746144232574314746094287441289768972107279113460779484934726305284951620792185855848640993898144085174942420716352248150104156402999391541462910910635950356930666510546028182077048316617601909463346789572490138160367540629387379137236761234915889558173999853911854537782269219069185865126272898015362182923023323439014075329670597694140928666430826283358724283129635089013828786891134290868776876850947242929077944708275884932827226230862088378979917495558820994956477827635802317839128892654160461332672568559337580118303040861978849253191991237593530807276790632152586879563975499066163668866951063824460182381675705496214868474361539642990508233854767923067259735382209534653168551734424972528692963732209174681817350518521903148257742451494626036498135793008189292473200543251800056364281699974505533212921764796970463636330838443663211632033159757098980700163730234739209598707278677019518682155676353042497878637082516445653065491496348074167099828784789496902373013182050325141554780412365557579325796781161319627424010402930634302068591414750479555474970232616806431327012236126954634653592144774250165374212944970439703755071627596338946892676394952357048501693964768773957222650761343554475886322583340488387497530997382450025772321733924209652329022442990118077479292297630936699479649755744971596393984365130597138984177123447338541955116985598186331376468276720113499426348659022791467981468687735382791616600881257878620600887127462980839291538810421438900667865999566233035373979144361583552686148280249634279947930353740890379529659277775257043036718511432420928698646258448906289589071698248200189302925194091117510918298903374151233992065291153146111210889336884840356080903019579002169729595549811242146424371541699425273394928152647374278732321118410090598169699680744743693812682301151558188669351758447965482289849729937550437180697561988394269566235642247568699428772627109788978645246895698833142416585378309186377692389007946222404432715493363779193943750565797344600159832738843270726323367915412921565129029029318192769772689819277023159014442417318786169590663543604099106084508772188132479091858743713015107590054935467277233160667518061231570232577641056987437235676242342223354091851432803570731473443615845892995434199582136247854424353217762792341842538317926408272946553761703348489893495744507336699487774494298045464773472888855307805209600908759675939898716490105289099289859359487403739474545304032333681967567865851984767685717249570773693822531744972884089409339848347987067519519521280612002107247467954116212312925001748298705808505117615346704091593893525922863428021065674203258666044481394660573189714434567851655792514224394095735883246765607790029724699235467221629861277888225212409949620917027877605455245988549370505638651175404605111158055705177836216901830013787153913861869887245056256316546685118329403356601276535437504309978703422755854652799912669899019846275945462703826639165444655881333726099191396069966873405862615908069026574266219849296502415855945523684032765892950595528893219123447988859950793846872073889856907316549673110110904615517416797224782722698310509681653174481618305423575896086943228030497955847691256429479943458505980154263480314938999402988204939463134050904592803460494503925785260305415364897774750768731657887685587867113577785432459816167414644896014109173606066303292629832909519190164438818836379319269867802660177336958979753147322666556097118959760789039446937327042776947414814896003071484388297069597238848822803925383948230543979619149173605000964906018792002343494570073379596540515781812583548956603253058205678197284939813369840307788128195330134034796235031670070772871582751263096173094410524065582555542187462131222193734922037857003740184373063156458896074502163727747106790079623710916780203662606252761249435299450359906384194769299270600511004240901515080252549992605196628129222134513494272231853151222856254800592684078884332814148150696550033206288687589296958605788818493489595578873352692847660040567575969529779565310478423873594490308860226853381143912810416279082730475872249725894521164577434103828015783187311052155132600798497445589693362212923849739531567031258141752530205337791895037924840157441412828499415330964135024629141467139124208074606256465293907755684106250565106312511830951574008043982385668843061951694173850533171546197647485422113161768216789570519905098919141448275324253221603150290207429827351069462022177297454659987937890417092806908386991406250660212920370300621391231079752100965569923249181794102490298706882697910006430347460699397005928804989617741421627862987837891708785544861421638406618470243142512138276430156106544062857165842331542550478125425829079084070453919817447040207568683249078500054626405083882489104370710005499896681138468952140749067321020074147361950734038058833420292545809629535542836796925053890515714963076371368440535141581537185312039875743929158338121845913372185141881488096726550022601933145832092460863440586323501337512628339434965647093283629743304184245582298633928645645677633308699890397774540366232824856744045401134105163986798120770951132385356034637554381325259589222669679136750480354383403138511094008027748034327961767929624508206899163639839205599161402308500455176809690439997059482175248452414682857735961298792539654575609293062752488882693450379002634863541139407938391470191333200509588700673735518828377728336184062321018332393383987671132567622082269636266159799342315452280433057352099715525367282022243139902567998782423162137859634311071538812453936563002697685882942729995553787349806869332589683900329467546187608811646933637466998655923400635467670220375054575157990376802419915643494629278496733330493425229488969775602717712516559663803924717125274312670694579477854214854303679281601861925362361464195119099802151475157381832044915615357046627784384032824150863569218861632389775292473647507271795564082172346611866383390785419846501437538412183227813476444876544893605025415221248750170116831696549387680988994214300080967012763407485205875256281949230264738945130711756340318593123828940410294932936893168550067801939985719306778460596848846305432616769983727642160073590102539431960216238503150833159817446821302499136803854642787826565171298002833682885587866342053114866491784592550357128353863140649109551491902491111890281805189966511510887180184049846928470878920231492658981570379844774082542912798872629299712609493617256520060988011278283794661545252337706852877767655193169587023044627184069493191665087337342494816622762798982135621321835052976330745480515550620434733425668767713815554340118989744983075622067007617687131773178799596397936708648501915034320451141782671593121983136647344296333162599080547047903689309659983239444954982734120684083314443642997078474429306973644807727917572335091490248112124516393635492246051749654526022621008271441693310693678375756445481937638425244610062521214281110034029285803218263702078979317091939259853271523417179421056023642414923089586660869801506470795888199060916642040114529357673604231200335140170883796026900379616962366575105923246984578228697678909812703656145650163647450387992428399813124501864320647816647395259369030046823509412845419730307513389442951693452411881144147224509957833533084923786758062684448698294979586424676515761895476738196262395600300370919401096627061459358264713966297309556832381481006186167940427869602333923304271010009073037729018640599611964365720093634456777299512126984435424757718550486712861199531518399287659605860906276921274801027208932849496311381498807701838640151537931432956002565826211073490779581670201341606267516764922726456576545622274900778956203259237511158820621833453149586414858762274134381466776875239036322076830003453815679062335512353206433390932949547619971622435467139920298875236316788265725050975341227388348938331895523606371890320930326745433155369623005781823070064942893291078977844660962846801058208018491950521013769474317966568531710655856878947588572868455091431073798725824087475706746469361060707667967071997892736901325027752164184472465009504037878579017162657625356837328380569754973503667260106061113563088926099067973613880117474096404209809772472924771217595398201475779983685837199067822281961651571682721477106685017594690451075195252922802669151994194528513822187404528110556624062643543621954381351868802569877988420837433160007878465543599018206244361817232800161124645473875683631670182125652443607485545858035234580985406341425191997680265114063909669631384370781732498755226722400951112172588523065685202198746341441798902533210064032816466385125352466013480113717805794631148035772917352239375785772901314384802063869485490398395343225157462744794961451483317060683001167514422857267636184256340233615378854240515955030259509099226568766722871965029071990773004431127102958003326121205270330934651083193194382693208120540512300087258906615839608003262312865659961440529194948359468997652015742192264038249053187325359173166381937943666089898465663888493720421240647433313464698808898117698467050654193687679003509874527341917338416719627416809497946202957266729641228284719520890167642438034082289661289173196511830367626839649763196774990681302997202204467582841959057313789584204214180108517180153889254095067599066159383479764130559548416418505841626813250312639812294044245844547569021742588586473358249613659446034058598271987895353291887050544375443174516827491661406561494306311985240115515915976060918483317115983685976231252972442233215942942071988140756326885828378362283800390171336792065746793998458881662138656584570279839221095047335221519182442651746376277455444628433005215147985197774042090617049091739993627271307525737027030403351950972566406244512984040636591202263823936203876861866558844723645902588326291338766413511650666780981646339106090540164289551250639031857168181110020318295970196424218720961448776741923714828744627256550111384361441002572295771609282674546937457664744290902552534114248227908803444943288153762322078243349016427749673506490961603645707104329433843647668166954899074702646159125998950537112967493277381881407161033949796508759202443245449051406521067930268303181191260203047983256600072012234131486599897958844254953124980377540766126799092439227832915490006370818357056787664028861688952812641280573509790053361194085441199418780802666612415031843455634771051951774079260386684926854187957988756029207073308900911187750360229966198817168847794101791947905821795751091048880000587063967441401825736942837637724914549294129370503848189612804446047023629998120138853203646136658044995203201880162458082470175332880885466685073241052719244729157122788355186019116543039844767937995820911110480113090502437252899376464010896293695430691929954904464448361664313495984983861486677223624863360365030207085767795265863906586460763756673248447415943629958425679214515818748870011532581926724079248264828465931642842030663389199044811242540556476271928482614443189490327392974658192584260371181416921454441142436636406164457579656665442968669968332429092742560354459223112803686539812485627243990763985704349358919449275871616507251796884868288073651981249695720963965475555791662826871819345957206594583235277832200610644339193000778599805794379365476509699943694416287137761475733901697474258790587952035159223382975789461360522828244677456420098118032588773131224794720583424299256690587422919520389977006353069901974235752989382646468336721671044661131588018282019418605953892283805616233148395456850313635213004245432143529253479576186362986112204152292301085988317887304710629333128447689453166686465981124288158088688875695251072821263633474633158850966913151584723839497052842698629945172350284609871267250661205080395923216115877034924452837274351372383982068826677777999483547676918349822742181808600205154473913735991721930281985307695753083193373798903661279035055521894322036568769139719202059470073863710124340756982784862594569530989344190284760664028422346804724537698725265229012211768936541287145828560292853046558617838682305877400568389599009101256912363010796694188907876788429614724724211216681063946289168318530194715552560140697442171439825852777700088523884148212401424727507213258931887156033556231493473985579693649224864344018955056112393393363196948129595318939770335162698975424300892663821408201852304210761945969675583478619709847944244397641062759216154257192345972002566013925683365806099527112759135439149357089242058451638354274725446376381633278476376087134463584092322531443298082589979844960967081109734529161004962070172859958050835265883557858827679484518121102288971816872052659980831650573893609165582517386122930066588157970765451969606274408578378806581886944504889419940257355880115287807091574635474346041555510098171139794976441557881829819368651553781164365283288473144980942407682018402837090640456371744324065128986425771937666984933373057923424177228187865421370580248493385692349619668245882737153150821345299989145955557499129080873903819674033723566758169954557797087123525390213188167528883904315142610485969017095086181056922965543826081183448251072601195607966367927110803680797606389206468884549854432973051454966426855095164411500451950822051083002563041331410830971549741354358809622283387613295790242911593484146159125701079875007073887141819904961483851330004800761390165048770849210177100463987339343264222927013100035144327946810702892954798186589665958702535241866845956057379798468700151043477480207372564548823173443627082239526806384863912305084660783684932510192999507234018746296619710800846645385469845658216953182934545378469312073532096579005775213083592867493799477902887254378527526259930551857378979250614667905887886111430158369657464734442687609806280020001384935323427819382821292633421340909344199444302605796938965283109029607669514578407325061829231314997930879067059289762168799265522794521327298070844741465742194972467864062798697000114115796140009879808016958973298844684969673615866960165877108337608238703211365799966098514641808363183815896284584601972964993928041225997024503414934899794408677166671146623906301325329578286845504363362497303853073311537992928007751776115475636139726209041927692237776073364728105683972754741521107450522731138517597459244035285692929720330111373843163132287101136690328008655434253472245069078602561520810313224110466208833457797349326836832193872123271705747904762820892437763949584356482391938209686676951325195910700864130752191269556338621265619559262306468301138567642834607869731998896140946643056158257172552623975799487362208708260255768077729883066775550838505299443884494052574804553444623680902745267228027439503680314213970218602241999797230353839328231861650297395208856038449331456797543600219279916298202061180514568904874618747563546943056691557044343522175017276391960148884063451675121111211278575305490149947508050027967106951208227654397163019435507031448131517851154839546521477555432651565719578740757606342042635044886200135509670085075419059027462432723862196172337361351378047949648429424243741519098576321351842495041434728314772656933707938345573076529664748442031506691412564926589113663808479985128109540632408453975835332246768576331947275324526797300353802917663473946706022620215523976396387499754989393427339629912112565420633119131681730564541215301546534964531244203959310990855903640571340482754511035880818679424913056750342250849579211456810013081151511412388749840813373395050423098484158304896033815379192761178597852702733966639969512985612227022187302925705038063901474447764385074281230244216842679101973832124560333933587927240615321283031362292839457569630307764248575596479519747653761680967879799160604046572856184089843218045047113333478493578386477667913274345665363992496635899806867167381405864265734775624559339565144686348436079992982578754681041199386842393411991005478425296563392895241027926341101512860075090353412539676026885454755591440215019509370233885719040158969641952173836998458346021327797364931547130114685999319349114353034422473911413856612230108795354583729147114511974392975844850208670577814961081069586440219834103232867763831472690727942878802869089268890236004967610850179637433051796978781029491944532513459121386225192325849975978508054604943628346180161502604645552395914720782889138274854905963916957463297875349071026071355550590985550535110548441673211142608026268157633771957201160363734401046264116972817646803284369143709568045090487744535909654703725165584394293730821522941671656631922657362379935067462190836032314136213662341282360417811667143875643607558563003111126412402862005556825146764319012731818132536891432580864039957235623672160706544969114587548018203757911486104409637707250555368880360539013479984177469515569012813964640976428114880560738952530335009746533034639452327852790315469559041515543545903266126819270186907219743266154065119257085175733982968339921844546593519138272605007865841534897158717766749343392239663852510415957776790857904240876794357138193716333916376760136308357910720885305204407514671744748390090194363612621564939787586325004320778173913339292873889120411808203547948606814105619297044131941637322137643699581911660753593303658271300000739404076281106501463049629901469321372907289322581040040523225756456942459695823251679413143460924118877978877959890299067965767860596202046153490948300715376258051664143458741686612569387289943533147065949205846916938690289628825795328903638498569855082179504727887288119727495622887429520767503367871778372725228816597429171017608290397697618098793887408798486502382991794143022811949286189211408155900054917614228831435271323986921268940743802159110166891806517380831829948489023983062149201022379683286907482383922507724401945443083489897060268192326237886156654244291423466961475873832360976738785361814343154241188245829589877869778865862916709459715307369617558183884031079636342285881807981690346548752806179566164803950427392937837028327770744220174453049009637692376284255383521261234756087893929199327475204050188515176930069562804956428359562550878542952610189889022434415649842508538173490402773253091861687303982330743258961066912955904860247010511449384772038403121596000452310167578865114253256191726221879696407554634351453322074739169867996285316836244321786616571266406793983008922956483808045158665554668316269897874468602083137752287225200120361534290876631981692572810096878935767540570805785093806884897071745676068370594530691679721214159139472330987147234402720494845856484000917531348325549832144062171270691571427919911365410265312378225067641959516164563271601543315140718271235680196740564037620696291124471800758162313516537121617998925823275839387711634201589968142863658787460961545030610658518496298482669756479963203043641192195507281150085304120446628747276431412678252654047609385213599367248302954811486098397033684463536690979023595690339624649624423596215238920018254148989553807941108819408631219032168954406058947653303632984085898660890786330877389408258939170907996078317073322113489406579580554017324767488813994565673250914688268374244848441553594959773413445625676945338623274636080307588559058149596053230135629446588099706041985771767626989291312703087544007852505350079657327823873323220479600401045968467616311979933451585424600331585170354330233981310525511476740394379058708387802333842125904327857548196114508572907183826945636934243966262129359232722152811335099442768909775635554613500450811726985421731194979232701974170002060037900571489383507900075539966464314595627846425311547110042483258494065200458168821368262410545464114734728716261935004176561234339175028355351759114099264850051067854131395809637240586012415966662221504066621038672248330352390328431805931646554705016451873342136010965181022780318611200648908395289385371981790073424245480078947748291851005841779107273845070690098304052626264554242368340106641432476598380658443364395324671467096406236529334751580154076646298700928572557599623508801066336110902815210490112644616569012655380716790751535789590084229091734013348901657194741118078406418265291509714753845304625470435984285232817017782176048548778513150174577543695545259431538316394209320594939290035217017124447692882835349694226826549195507562074354522041336474410127494886698918932834817770875591224626303869985182541541424126589933765043535734095317418790162803483042959449006884656775583695561532418457212690136589394989914654194367415429390603737802136463195861715228033133293615012154323255165499206717447832904982991726230426176679690549509577833801543866146507801924097581245659509402462724045057368193169263215497774978239399184456818369416263908622201483781412581410425493694899784566077840123078711040012588829743615576835129918219154116090135495727336360775842842498982172227611271505627106135911413330227339715574307951299021670566893205190117728840912016784068579902888453611906941473181739961665656773042045423670148214796595128355911534491398445952522944029589027405259885433231157333773990540752372565932524751777335737734122994141620802433608334174279060430010380123436762992623637483406940297621485841979982733058909736554103627835436100030008679828433666998844027120591689093927530551872827746472440216715872963940965725313635640989798195946771417338015622688008235319271041487085591979699826021451253621886503562167639852597803449317640608158027426314644488676489096244954165103730418309802383400777193416507477034312396671302096352459594378584329992367655671987551105499577082727951544201000641734412709029855143043846361422001686112164940034015940673742373020179117038405228790350138846554504453974430684816921934770068265177090714536225338773761572384444385753404322858026628827174275821827278957376155899826905251621388337192406244303294531528645902600082630915541333374035320946111042876123644130823402235349561635731928865079179447849320414678948731607179816535536321988776219328873135037598070604834232233647356355855092581963540076937310105360365089050065467985324014516268067286199338408769581726184168203723550233913485235027591531520000641459958639786637266016056195707748601893576870657021179597055677334200128483809161127422424175127133213275292007331387838867772078302068352618538180043565318309124346217934870710232175758237321423309718430541374864971426662267483592674697208840835556006464421213245729523798953285904867137713698102843366551430671264613165367541562638537127219126032069357834659016650353158108214015446973921322271889273002039033192643031591347884630203792605401940428749397735692213231002125507736493096133608319020492696662050663742888532791602045547401444233306398471896704613588126077835664510849551754967930750031335087163184165034950555123192430059307709224956911620851274189177627748962395263913389055445632725567793291445985595931321083066080522152516078150600603189500870523329682640449894737666877234770825025929529559708622371749636371957254520870455660426264509802018474007205653514039823294131129183741661920465652550072673434795703677624431858975460525921254483704737472602684735894777489602382749241015851992495505499024884791008507784043778640983197086563154760113772438821072781598839644164536968344519383792376299391898043697616694984508619369498227753470226024751718309555344688125811603471976544275398854470882743071747038992577822512839244930876741948730715160930215100801219405973218698509337809548190409295645676560942213817901814552395259793714275864461009507866392496830767979127698162004322084536067143202972446131468849643060035760059409092860969108654300896532620403336507268104261388086934775352101029454722566489053775081368430524788933276935938358531323689707844085103398806521583646096555345687319342963545109535976438223493578438137527083744914926880355587004436242201049927393289174081193166854002975669553149582934671808788372749256811335291043488080093822467049817397102281940522867411343824453594117001769772199654549411238921897199226091021270882923261749863411138843432620426981017106516065146928434531116632657294323016350953021733135403057224709190772289867305517015001968095895286366732716155383177218353492087189189408845089038466477629660122228256983829016772209307674838649101331356943743881115974230890519337875842193118256999152829443286719101208367090796705618146654597673059400454901816328306432212221270954529864256117512057691172218952892999496761428711857029914349661292301561586773949898010733859152813782533515220932907026657002772545342154137495598113018881877731417096961899928486864161275580763102736218503917392378799168357928659336790771687774734617001220558482123322722866152493150670596863169987084369016224777153429515991369331413123887906188669333410847089593377531429406149659302069083780711729917123912270612101513189775097482822716516828528681767595536627169735839920698115641299501001219936030412778823364341986003204819404956227945722071029678178300167693612098816194436473687237611471889944975899480740725309758678268458650087248657264555543023723542910441931511794680592486251581982787927882437170292921436419298692835255567627034830927520574819239964877940091484306235310389757549112253064167486341066050257429639687711794379305134488612112853883355084903358282107515652585507683300877130469593387036570088391702915011593272087206201406706449190960507904239353029328858964734766772033166403848663993503267777587937620420339608333615869526032936884206293300417295329700042335226301994715385538085759753692021727031519962333876949427285317081533375472655267975455229532304172540086718747372901993438681365885538580277272937672786316445071764805761599896957931456555240745141915190935687582263362887435854715264107949251344018304596362061015616906631842813330182655686552620473627062342175663744041750353177826541631973863575097213536960782544073882408800959352412116865646974546792655013681084331945094340950430515658817156683213817730614199193115747586396847117587699804424794771697307293571894670924790069791856992829833227762940796190909408539767125771577188489332538679911000278642101440221480230238717371397480199532918313087344332539757123472741318188968905061708806057931993273070735171703909806248367893278890785825820797225562257448725987186361224265789640877387758826432861590822175859549225546664113493018202124836480358476568491171904136738807033167249855227940165073739797106537793873788990533694031302695136777538675687243568047139373218706210665215348342154098831342803566603745228606278195596872383922230325846049923984450574558249933883217727043321583139145828528748472306074588771923027863820030143080933249275389043203260883748734016560385306535755772787785363579870402725019269484972952559138639394559562716666387491974990243642484058407513427116216826105648169945969076895573157825438265425406327107764841249663973293412358927938498363150928294752555352652167376234797507179273047743601836911287850804883779907164841262665077459696591989723322245756762442583874669338962510154423751377892297715872037185644283404261586072836309243039686102222826155275333654941515898158015593125253986559840273341790495866372506611405102093790613390598969995620840016849611472340954056548597784155549123831725048111691986919154957012162141664685800045366977809434494822695846073652528182796165354626973094046584039555553622198988289898066152769892169467785864918881789029712216060383406903481268939212399708712506987476388077291206255758588403306667404268383781901189029152239191775585244983642778080242342877950828114247070262634996342042109686880720052347459070398322006213981739999770533438498059315535974900246191161565712766620285353320503226826068005446168278246602862361029907571086277046331192515508101808199477740230299518236554230306364532488124470629800495018411061708267452404848489217833572772283082157511681220400238634108488877550244338083271669237566772881343578132256798297262294462886486141549615399739407791290244558867027305473553560743786386811918292454158345945650978522439186187385696314320400764576030211457681887873019795060296888846276058396010983064426373390252734397523663665559479146080200624437805940687110781071091208508474084885276452996089171087457221479437595527958549514079461582929835699770923901187341054125071976611551702456226373162562438354785095831850584753594090384501934664577427514493575958502445153673163199236082066730650417700796240956762490247670654179923747528735490966328035131990005676023230914679575243270780403304563601649752929917724946645789599949350042410464207628286816411930519906795312938505767813043126038172810818210383875759301943190995914147534236618542321270726851778700178240822587755271231845171501836933897423216203531926394532648218603719931150307767646486718722950417316985798722303447915915173632493961830328714171256662762616981128735357478082887024302964976507795801372202019728849407546158977531871151859844707497557132442716059467387848132612286002846238724760504550727246159173369741439674036068931778405450069137128703441587988358794789329899968537250412258807183996565750659298190432352137447504363518125054472339474793849927202228179388643532601023266674385510138836514887921169525678280074555014542984069092103314860533590423456336938515990225120995981179037520538719669713617173269647817075453706611954162736359020938704316404197750819544351550036327021362570142575492780204238252877136055682288148299013873779204504094373689406965116632392805891436653032094370079677166510073965371234640601327785288538437941827464021760556716542048933710544390871362181496600058102364122348833835577744392650529875285148112057860808205196679786971350961149699270470518083429544199911166189988445027656356093274131857453771683211347106510339121906357566119284406877433640140100557932628713760014339909689578376810009346995406486635920350816703025486415906143183696076684669422474875057386901540735716322898701782187927083239911816678829162916741590343522255459707239456519781453684848518340906350902488489111031403145636864843179442983786380080381697141227960923415127218134541857273733351898721904573926666306570601705680744955652416887576708453446376029304180258113557992438453200507436937002550007944232907073669163978228462298613860804652526422608590406575696814193282060677253446637954789817793510408717663552141756599536673248301470087024743234943013295518883077856469832608550791089770476206203779550034207527384722216067416835487777391178854453336779824657894922596968667401923107777964330423990892562046619394286965521778921985832945389059276093041195297818160604909553519790415920263108977792545789035349077412524048416459220331335342572690205711624344963582742983784393132347774722413521601666368762030367681966915805989269388777550581643365563526397585237144608450020180908461222472558601382201657973981634985672018341398654276785519262578644813305572379675754382571186336760159346943242520782791833994043513528273852679926216381446534329302660928220577121191341657893887030909154114955039757406331796753554504156704112833820179378575247198459099609607519479136786225956778140652051828288746863042798643355719850278553306880670903646203644909914640541369770521720231225393627635647645318913192260043881227349802987599594817125953568138613368417483607609117662883897266137009997103671579850544666879838852229517148119318359457161048595174837644718429401841782558442570523228179948755047468035173952579956031971484527241503821805474580805654347536004150319956530678946922952810503314204396375985907530623331312596097122521808585902994440269928617155467989200140394411555129810123897499727025430408196877738674256861033740491141609997470022187440466082014620534256351073420101400396038408781249394073860528951423445157013884482527010601510654308527770211428012597305122814741660018096301822751980258429281661985784247244120460385727810723667448243593262221598693379741715069728823910405523580463311551417512888063826106624538342680020207061478570398110209603898347468476510729572529379917393860725977717794097036877556042321372567960463440450405755212847606596922353120392950489308808134738808453024277030438828106479228707552647634083090416150143530691135072227706714869395132588986244774534128176843369492914037270915210580180117623126989823593483381070609150394205655777794225557202915123447235474284167703302483234397065628488069349224876242553974814797911613522789698539807128510447762228164119475468224115339987645442307541455977584600613410329125900475630027373900248838571937818729229846339570175636550725979501387700376003715700701006053382412986031834315538537732664683700200118990110425772427734868972929037986946965866781842815907157277076599494874248956173332400083539917368917204327074591566115960304905459172048086069633545701186487203821910829414263241177477424381741080009207914181595769745048765781238203583056865183772030473688509069118722371238716351483765542262495303166505992446673754708492743013937952694437169014730230170911647243348488505098875114825437063967097963506668538262582946708965157749932531170761127536810715737101041527786463261690025282378277767020801224855272314890903327275004575214473584892844431174497107824642421351093967822809982901987316477088847086117084037811567481663961596645402689035028235120006984021388636135885729024872806510432841872870830676828965125507614540306157264972027222967385487033684634759359511905443686803409297559896535614375366556439226524158039917319591388237445323746838013390907266530534606232182710236792663256642347803381251835986192119550949312963449656507644045510083618447191485181943439687247476827715855918042437029598378435703973672059806402170538187907957787727414508805735475820643133185196178043329926918130537657850913653140017097415221641350156893674002752425106336900814111653959942667966921094768563911388193357135413694008799130907476704071988889007358593091855118237864513200759132293048010721130964689860284925171772277618170166332377518893637566177966443261863983033292249995329821874867388197330740856292329363211429601136404343691449948022325433672211869511565303646007286454013288368868293214750821344272711654084721897403973337652885120556642959263959091975263870880370237654973373795737615469190306189417292798285977623474576585944501129216524310988777955292309053576659931791670660100006115358034700300042576778496125084466409493368135736702826805885981677118319141368417676435654346280455316891387798372874287963676554445928163342721632845532298895544091333638783312866871139179175115496665823411595787397546431958793520027958176978277564743878307047642991239639126572157224148785950155411821800348231580768490922828152307055000364436209607493099212107471060367500346226216871290647705768149529864512244095886273106781027629116309441408345901388057382059700160646696542812177929254307934882352460649491487834546814591143110046971874685843132377612737120366669084285753631757358419678933409060530461688995780827971611907737782259028211541323225910165145066051036373510296959582980171962741418736413160389872567740572412113390168901477935323321926623096734876560532546105244922105356043896531691896733820521573807002065462731673409216055757308938389560130340318751406784449705794106495870364288823265005375186222324455146210583609244780174854400081582561934895261070396898679953470861792931982762371548426640168647651779486437962834936891103511030929807019760287549853412931549642294677443702991266003883410158892386422133785087259184779780637963503830792781769827564464038641241626896543035928559082698113983880345485751643439889033839959352661354293597242163728781597614482873755434826209928201619411821470450480799242494516418337720431641260017135818946195503120510571912929097627722250447227936833207272845554106137344051058321989979798494401521274954077842558977796207509723925512877440822710072624235799063269751404844990484896094607379602413091081795444573016109945993780141831926481955130911059142005038752076130557198011735339801697661791048973612986933738573293676178604980728335693433652414236139374574722474581164443213626594699675880659542400849968741391394971988132030737702789035497168509535399393403189949892548611710339098252751513895439816710632135501190993998188689157993527843210230436468801874481574955021430828182973237125956839225375575050925340824404317793215862365051841846634768098247486910703585151354360292637778811698721347748802593723871600425112824879210205596044943836228815551768386774686125165912430025154003200555463553556924731338049685257624108101722425579087577015050848651756165569219416823346709977090208677093164741336945512237795852048053188934984696555024136221786186828249615134160332866053410415732556236856789404197854085139020701755442281461206852429265513084021082589436980721945197409736876076766306014464711865611988110340964599750107021171897512157000849260806646656186429554220614048064990987013107954126154285534666111077527167179599099774282168296555348312530683961567007620009697395773314703061895799879686858346101149000182333156521988317984445354060636672282608838119874016610512448394196276759283751553124555170506726395042074329300136935918582274340348771611935998883277486893405753844832117243203243913854417046633651635751337598287500150941421976318585032851900363708678013136506252139102511703691716258236199320209251878108713438548386093104724650547422826543942964264747953381538253442635225370690200315527345236922442453081259045622038523345530803181813985982663060909914144618130154639637478069575016216031135739994235745546826669961019021661443800726853319821735719682299836485269060450650204396159519180910666999639463018902067203676806212740658182430588800204268974162593246032990533086934660980941806984259356659908184413148482660791976435506313051857627304971948989385664762743240525437408369206456968748265553149803728808794098208280839055728261748740194567325631358263246693480658969398951041203824397601074534982225238455991635968879516910651141692762492093388648073669022823152045918646788680665459874215292317771020945671340646541153176121893510132560626675892846060403858786848005208702016079142941888936485135749480641502009212256559565683241548126948986454671480962738946285662146334852664462015898075391713156055815094096990417482952100117156292527636355943481036469679231286155401878886879882901391467122772452068170030045425296250956501977913752400942517559194774597667226261171030983537048822522702671372964822900001763131653152719254347950622054791109819201341781548752861471381034214360984902560279474509701178870882432736772556522886227287800136650184762751827527073727811212151281863297017270925662406865889458516403984224881670071467078455616877583487040040743894335338579303555238600121780785427209547166698409386808384806883550207738897869583378579734633348397926033340138685247228911518995607082860819609269867568159426748536996782008977654841549689159919840002228359823522297683306853340012857996072459510749821602918999215350784954600404529160753439177454929590330436171000960530878526296710469859866664531611269832942516122127378367399244014410156668259135887333849210134985671550064186371839850510473600629649897625783691737343244664531088015144985167512344982224156486621630972609042208806227864529301243465983338005634373096956369996239265275454168803067589444946053487716758418748138714204926701379935074783273147552622544198867864210734820982259909417015086926116523789586766394709109852081781507438435418303840948412566883026240671196661235745295743339647794350006225722274180440557676239628414984277380811650219652025025300261375155548589735595617614739317172973608661904328267771154840292532105257595957254038158790337303927302980625124495743299642591144817266178843063697580748542556686513627142132976218785532095634799590649312902260475083172057287540666236480497405577314834510254853593345486462335369468957986745678764847200074285799890578482431217824029421910258760354670517397442679183100354434849144816957756867806629832128113491558380695317810060606001041522968191375850084549172306909317022918165461763962430471103332361579510219085723776366424361672998144840713195982347878413625799949514484180580628923045406442857404809943761281817058993550298655238070836371661486902316400199400800660520212069298577716646353803094467748232757841257564111632261126237668195476841608167988148481935334180535376015668944136211406842228667652388200842597734936317955709698395994189830444029295334628480182348904891544780027056297869929364656899760674252295702770000999191549276262018911004355781578685258205101736665663787646418166581142648927041306057644206357105046234219118269856699580864275594552569889195710557990766532479949160293173604493104220517743868455508366193658810936367343812419307908345088649933174366734401881339306076085525654058963753150153254443393010253844996921897073199615996272871892962962064617482426801281915619333004551475576014684371802400213811094579317838548770850211293070667192272016978868755105846403983572131946476165470892699786459208210577581663357384812500953163677881595289095323618367444524734200716254074100644620448691332916024184330660391618373104689306185473401946564088835084322511443797546495562479833200447984224736166007085601013760317014830628739557893796359958849127863977282019192970192289285033246198724383047493194208569235690235798059998645720108818987121431432936930331167190831458108280876576001419681228743693102553820895271382939117295870050650273056669202582506973665248741756148692578653124085174270662628524398774719226743044652335352986328933400576310494943047552176239379420565719505951374294469928405787741278738416764988521311902230449627598236807434234424254092859654413139748127980169965930865008225665966136114285364883515312850489954980313917811976355315335467713864881587778869899073995968645402881370370073407652354284002543359631210457761956686619491165256215937802501872188353923980936191647754723689075198983946684184880424792379135192452010062963801822402189560384287430371323110756209148676979761205776312588034519527253422896873341201607380003930896924690210198291850598208414798410952399847518372148249371382916319410504014777698039400411206875192138456288272769268000871623536487215892323356450800758767987580983509824342924495404601343918846921316323555732244543979819550070194750614302618853911109755873878685475198941863764386743276925734167263819075504596276309918825401258273448510765739312954380483732663225419907001040968495117099126905700206846984848173413757381226158600469211850897619120986177787958895581094815937359335774464992906016227438322765665939123354635767939369447815080959885964868788689086839517105184481721168864496665314732067512491316125132522488968933905280628366217921041577723812350186775204782956776470336317958151707402405298851923950857782095990589818922059348605302100219811372149482313741712483729014341892327443260613338997946256626441845249157181614512749658540267553252484543460078937575046140220295596197153138127440238583523010016400507129904260848253597946165726334172526204473110126502153041677028053212709024349923797102018828482726435788076865111076372646963606536090194363184699824899107551699026424997688112591025957107473478921854211931366191795064426087831849990279951760921066174529476682455556566016890680710608090011270556861762435564432694747371668154210098780830121701108860818343576409769111112507701614405423575213976420527457971775400996320399832580989464133432543395631911325379771403488660525402081656934000648011520387019591694303474935193597034905941564310120379247547434634779564919150441218643174179444325151624676449582446620360439810554119030306719899089896462388116522265559538907096700381599163622629797236444701577334121505321058935679709659457521220424276079789176687507163148913905745285582334398599472537438011828493342619604133912128269631417407268531048586470054415065514995077065423398651036680657932777895233537162241068558880099407364958585750762598688134168115376558719841339421128207092944370667631667759721779899977087609563230094981807191010530628865766275639037964084465924510850282261667601863536340748225033469544229577763479083332376960716599463499188685697999914608073353466625704747877447277620122133823785909956863302409078645091480865954021690306070143827953785044568897530030092907450081956764666312311845531774099663991458726105805207583150915219373097709295269292080030529174644017021954044105378738963410090287590289844585122553912258649055307821147176424669200503678865246340429116916594901081180305312078297074828291723227361021681791487373593555207729054738054156044757614990346392161862373918877001327020048368597787103186230333194241494511373919478399916569664612334887753843616896707824893890770543872472383773633530152730870256815867983025930830075223330751835027917882547065522913031817532075111198626480428338070150587578172795946928717650168350553134321352674607893191338530545010299232524818172850575906135612097889080062036163888153360857476082067921462829921615375404735798059271482414993712174933985421600865957976110590466425527814803963294842971698213425158137866978513245272990193475637713274735385549885765501479980932589725515053446795867926584438304244556466623520196653090198738397560189483309477123654494616825855183572635997216045622915310670015044087540162165557611283074926170284463000702877655138676976488880609071014791434524213704760391589741537798911201974463743844222854864122474476205560377242088067561247260571024148007611598168451142197762324722502533404913971419945501625762199338999462325824006669588304372888227514135428452550989558665424892296859073598037605276796990610620336849096547730543443298797168471701952960056868501113710440436395302683646435859578363370636183732880717776645037864204827926008940136413494769226647051082587012564573829513881687403789321777310740091877618360025543148696891417701610277682310021952284048450384646469360755327036424620902788189552548737088050741813275083674551584080512870921191789169143948165021515425548700916205777519860237764521850460802144775898647298591463851964107885318500467040013319342489508549171970184357613999116814198228477683312218604516782583664692065207625085340319420881708653751670805191127935898590274108932847660138017818020588513589679034746465684418619824639117166440765928760545794709428006114471244735723044687725853977089173961107565379754348135710382943676126779725787190593026218640908525793149486087071606662611811767699299183429417318025201830039891117458798435515193335376236182804924948351894686480678982459572729491867657738056168937026316793819376110534968406521900282218760284051458781877792658018559683973563688092978584619577334945287059380612412698626447128451302039181745042256645739395551884198172101873392811595366094461082526591006774313836953905426842733358126972471541208087816275699691806310801177669001706366511784927170942617384357900001676335257541584708662761849704198715250610627402593237513728548538632830782734792135330643088957353101229153766621606411275600665378931137594343611833470704864058539009558617173820334120402672740592398936709355581336241284029503968001389778840866477491020133896719938703418784836699529333580150091923271255056301283497352756999885299801481319697271305737699841827769157976517755580008895348072008134940964954310818626833282538737258457952528628854330745717361798738305515612450228061856699597133419610149531574463015289656517721727056378583109438954323135098079139261535909455303217238949696495085295639003600241155097678438994177957725303104256831261016892608003071251985621152737205182885550189482643212395268624824006232669082518228174344519011356324763990526806859794694421441444645728836349962370416468181285120611324041416714244137477866628120935671394264228060023440092255888260850619474127788914372598590760783887668571556528052426675558500325493706186130621098490225924350530850645026770919986026924592874116479416457239810748164517434051292525006257825718161414490131845258035439729589835989063367668697965012792062269089838850095976675538908159631628545578092394531189553782705393549505089140518582320675997609119944709361301892278909092184979179456581629273471190341671185225661937335720170220948114570762406488262237916782972548816397214116618732951321450352362461147841320416995905308118388869057415784594224941305663895674451125523179578488893082890454535137911973780512544822406620573944436360905705356139672199859845523886841621175882956543657506136641419126517038251490102255544924774344192530007068300956724302349212312938555383175535334287001104077729655820071798460989219279144628157664751754952346847177346317176136891431927246771043446227801195723422508714132248414158570329744761286561664469772576615655352202981257106557667224403973071867032956896181248523562201211879231210427314973460200357383263601612970462971028009313782672462220583939736585041154632492311129592906466687285411852035636258076576938682317934252070960471692052556106964641947617774193873661976492819881586674660882288591341600150207831635385625629467239924422235691552639587709107849498900865913578527658842460512205659810155024782511661219001824202760385117207551451729671045121266994107468999162765924612097175276287272405484414799649224149428366686644485686556674675692663343852938108397877912163023483623873706499375304492444907075491570815502740316339674145146771801149235112034407744742497925960001925061439384446882606067909466437809954268262690366261777239974409540503189527710169995055236390279915204236261078791130576115756488022511473806472693011256927502937383678574363124574093818285279034090618368558796565891048741486991514623905265113388418336766240914372989975435814335114758696299640466310122175877646184862115483070007114192709923563651545219335319193167513159767012923242641906876569877001203876787339745057458468615749420404302841910285665420518942673155955954678122594709738916087481437047845411255531437276142568226543168350938409577692438266660118029465338191464128887331155151180305929547958032643345716424998164777275323215377123694505644499839624847936956788435358395762762152888888903006392975006849745993875000585218367589345800840892291026714185812983729622176998359688909884902191376264230151512616441851613743919511374446249240433313859518155401025950621861270093373286924036696898286658536609883635381528340908387233519818005935181840376882893705561514117548453910269852282486912678741174804514710552353230175324148674818185999168191879936145414725475232408204877906916201496324193244282812100718817354866368833292239307492745260608374632340177823703085328916147529309688908530700422949933074268876124899300625761707719572448526785396291668016035366405880741758085193949107172613273717299193025583409728708763057068562398817694575798955565496593346209579481231783183199606759322899197615637968607867992984816036302470880780747799146820254507161582414722966039530799606771116258634625930604233997889678307831052545310674029555412983003592335334915642919144025207132354563960191057046815503083539101209890174577939886723909804385795940699979038238668353456348679941963682505191870866399444047528943866636809562815678325580607525338870767438162820552462957012959869055049189871361073553015828964985021612247471165115351824761395663733836201021634678832141678737358753904797248417552077322629941679643452811163701262667782099172164761825857416595450943788020620688296154732303411893036626475910577323439283199618621533637376925149884268554993973866979646279666378911431380767223322561017218731082561447319843257627995209744264596625378851700403881221592993407690531954209326965117265789772426598311187457533831760676534344744126035507107881479922388100162803451906174442884035098006973769680214416166030366790051771029409758388520202006855691142512404990000602710104049038379011961273869082083898291154916749901187538684742515600694889213561132274920370080900019883504970164109156932347725237727714033033689204371607360583047005630363117618734802240312905953236559718115081886659713866522637401890781912075320195506690753102763696205434256183559267460842187886615888355856258625189811861027689225236316018731620783022690632775201523833724856471613181284548636207071651913846665330424662748253594382513506642718909385900147999416237484333177804987402755642223555755444769642464381758495281755128711583226015168817479032620759891488638679908156044524294056249757739985638766439587545332435991322979679722774841570422540588517444702077362653413136755254791031268519812350732690950628605599089276123668903992547147067922705775512253533181971066372821315098155211017748825134489624912094888314585367840276366849327929763688288936625795028942748950470781185791515433912720491595502144094691434811561443218374097450880124456949033509951270917819115995322013706891814289090884186409149461141225048104782129291722577451113536754068976145299354945995231006531996789586918534139969655936371068797038434890405248402774532601435384712911993586426976401577913820366425811537815757815212191699365757859741158318102678829933880301118850645477620447413926564238165930347559228744224788559968757263155953786250461652848299229249620546267567985774475361063278060607495831676377221133010903366967870147402098321367497617491978959971231453800149869823920498743710609446812650872034971721755337044393916228772308267602792203865354008389625352085553939157709912840228113442302434679687528256570838515341049329603141647741132407000862892055423288717435199792340189797019685386224921576388691471651072193626968654897671315540127676579503730394483437412862757608659808555904166508265632832148030298003739647867451919902233636712335206921176036418085560750861392761791147030062932945888399163166407520734619224189042625453332417248021638693539047740767792376405201686879940160807719851538935859230875056716508955102771681513309789450252019197481311229922304747982204335620119573111540242997679733835439498515093161696027020286842527748955387213685116060868128910171414842650929088062554452865438905684622954424052017465056193899662859654427346010501639568378929769881149633633455437059983633329543351822149618218200182470465631174282914434184835079003978037088883256967519945154451535500525304042721073934757179902041902237474023593995468954810857947742353732334294060293488764519810799511052650284299923277309134068313069494567453739019948618697169231993388754227279964983993043859446583464134120244232682078235565093612204089632649260401557416481083853318653521930419264886372940650715256385770612066672426264931623358478865470966039363387103126515964906249816225295638488796343493979590053164955808057772818213721758507741241829349746580019839180446409090051237520755042679500304174345043455674423669265112775372433623231042281475562367060921608580860372405050175174986713795750858878533882056376762074475708593731879073132084173577174828734851834715093235283367891535446250175257668151165461897831932578772292973388481104238838406529696378713987341118161069062160584391151806931788826797926467273886468667208345924902414527382690676507114592682761320098220304329304377234103872894265195446611746306696139221342468709920243634360745950995912499916917293640251251297762045080014191945059207578500040147970164497382920985274304177480666272048787514710050653044304277808106345262620516950207923477984366336798353130362933326964572341219337778951737152915676525897758094926175194884376945409494071106572981011335230027590729019254465866139216481198095019407836383286965848918737389105211202799108443942322278996740063456072962444981864217014192338067569451382049805278433294130867537850260956613585407457906373197331153342202204466544000940541089800382077233658841473300540070709791430429958023136488025080559621568228675568860130715735325509839447129304787223319354951890903176192324439721870840166816877425417089587356716855261462845756111045447956214965838673321671259539235643804259260752685156466598773494592254866983877621189405329331878576695561129962005246666087090007952384293572942630642725179151386065398062063582230960013257323983175406247867952688444294991260856819731364460544744970544281253871515217821310733824597480193378752132668023483836503009574247142170913693354147209626974820093385261957339615604374583566969577923048088218029591001980357836510396863515044707102569039323117870146986458013923979879047869803531438896199929308374944793441714938349184739635111237780547761683125353105332318701173995254946180415380867119595191164155771052001904204939353471464972918353660661786553715259565143282184717851459698209968449957160676526903867955215178145078163054970708742375886162713976068677901164291313563883944233343156763356912237016883476216926252700366420631254030555802802468096979166782571754170929726712125935359905265724876064199239214766262962758196739097537333511430857227650678558629460082808020769041349745295448079405844089433363195241997023130220496662899954235892888878288436558686944308911588909014837794323918454894054518514467230720591041614621577572782128150342035924779549451958762831247236011543622966348557682406965408064444488313513377346000646403711190357657382179098106014078981459419907715966003035692867930293511394588414311936380369910839878678418180649629396833680102586150496044017123130291644102159921702921639267591470681327889035833479920563529023470697905379312313679960158638071060101856895146199470788702910571549823358925306773261272793417189375832451962490734761648400115835136052563442391810161104856905269863045905050736896119067325368931468114610113013628303848675023015704357951294489183196165835919968330033282571415874740831821212691979499488281431720144312539034177977292814295977927123948043094557995548867945147484450113017417463560430759309158032582789245010906465500056328703867590307114534155907183370509117861811337604093407543079007505879415557175797506620633033654396231264116301565523867895661667410418422419520791574709578817960611111221421467232249872684216184933942696734220435782976646103599290734710125461395660269720739334386284690126573956216387243489342560012416552309341683087757106111467577695185329290422230034441117323588715403022098995999901564240366345590177628589543241059065363743583741349409064872110234175913361774561974719258154106052338996109147409576794526798967303781791393620842959241329643478351667406754441180384043536602708483506223313480616772748090032914182451119031422863584966100892926659069230041781578816995040099693149012650856326486971469937295864478516915282781900484953101961631803191037681405529613007959102365540061709019430943891610594631640600090104039699707263244210314736999931096304579029128881731630127164737198551972661894474829723442048703896992700470950692232323333492784090019162584501495188634645061744676709937719279870758842290647368973594906100425754740817685636451981366286957235876720290930637459283210838728782828770416137531204670997669406595119782022673901715576918281732073617880653872891568789380873757994422184907399618058975526520549884270294228705374694764064576061708893894365219341039105097690417798939549303341628843239385852304700659694379442875565805709947249945987601666971763416795772773267660162764614916206502512052103949620772138818237655957810014486144661338926852147925312902197618980266857899562749412635166081300836622879961138639881029218681767996913744550235787293386372849838459313152783149564997890076747725504618232828330386953784414500941469143306344580984556387985503669509673306629600238269360304060688176040469755066668712830725894485376646268463386271467305405435610958640405348298776422115657019506797455099681871107053862873359090214432301342878791465470750209738944867546563890613855954998082383871981363598551586500180362538822647171375020545593989580068874360234246418113777343477758690587560908357990902546839972211241737022085793794399776336584466875228870506443979071052054239842143862824340790370077797475376390542365112524240636892489313192322668378133794380282321305184057912589051994629813491918091681948355980021639877508161164722107140407904386047340434055211854050155157030688851623731493592371447078076848822851550738086700307651789303772649927205685359776939633995126449023955320932199235110341974867443313208548534047919740563450274205465437979440820020734964037527874679108237484285713405449574189590541680803589018407654334306574493580217987420277147820897702605573632937489819251745372014696937081964864888906825647956648126741492062715177821728957451625556998523983121974525610874613395525128352225658885997863389487284121416905458311758845996860901949491811474916287200353144407202263528206316955767312777039651937832688012178420718500851730562895425663932671900081912762025330854106446271503856513174773135400438690162800801839728704657190398322706493105725484851837936297269092918591410800987487298680837831524952051324921713069760582525414793064889591092405100145014540404521446317309897419452650690666287819439178032921936751929677307307774758434450494396723092702095250851294259968561978751756214579982573139201945280385319324160127481884616817091910867530659689104473058028058012469763997273510721907721121025951408399856388681937380352127731503209868125507850477067715242974262235685027480339967938188986805241132547556258880611600365796536701374878795840390340242796832295906440536286399415709119249938263110750805472644709458827213297099784491465721674959864630289054983805807913572734148486612824295401106405627716612727936799494074434104976798618059352185858832313826362354039757566535748932091152947580422262847285721587186249743430116292993783525784987258668111287139481207212933031254661317985936380345665874614525552378874727507214958308038412562596859334288486403525878158003414674219744584316125976227014147866631648744027569266436409099097751544445229011979617796687522973674337255559135099380332744850173381913998645691951993051795238330694606732459661987589014486362276487843202220653721969410421078629792125667307107002600772851509873998902205719204261428574166426532586096742234219939003333604572775065397021637484196139416047691669973581426916368613237464803064190715687166822068979882461387671328190516668445025015469578590863098301452777484185672562751538857206348398483517348756888973648403501228917711740999071577595911901403167147612835929274396833075006240126245834137973435698682972033475414118073732858357655385091350706384877990721745068826176638461506610504156137013038112776205410450796753958548801492137101119581484240509208190654763779692812448538819621569020931737584702739908171140328675717757924152050328543449350155209826983661421339808236513349557270075259438439300037135670837521017390272176491536333797623385863787395090636943123517345384624555318326787401012436019979498804566763514271316824996945607325626359209679894751040756264195915859229350022008391926996941385613976345795827405597195978236168940526897313565543646944833533537689801426605879435631220069064118655169733224382784660063387335017494881356715747876174841816315768452207976950487780715918718439057208397381806732531608088637202872199030971738814764027335135002413479486432512962694419558096796588632651819434328798627973381408760094506002672995551301678908160948508940383687127313356877723355085302966708440580075714678604498695805243201800228443183427941696520773361283846195351028629673499922040403562248034627405668796875367735488540746627745691910811580714070517247054297913653423154262387784608576488512135919487257784660034664953614476225996089184909656692348129095573357145746852622375607107495318195315365715272918391102557784025449683554429010102799428820806470799668941996042751656483949000776379495076514834840429063079284913882419246992419228312173642236881053075070983701583719103122229129748017225726007717225298623417737296224734355087441148403059910339842652236924396439466728178759207394639874487846278642390884859181906401355839153047679226104540661480963344582715415339862375829662831706463932901996858051568413722649772800643355365772232234920912669059975568023501362342298016465023997972286307729139400029784617450506842935835415077874807553043175829319526511279799904218851958983709992175513577587694513857571501631238555961359561096638752997894687263352775462777488666353235518250199130402111832703567421688453775275772283582589829153078786151910312251434623134131613917229001378437432756943637115097726785638246651668131787299982023000949357953416218642496437118240391403574078605184711341594847832811238078218435526180084143303263066459595646994920604305346501808633820655223328302027174851718561093182288878458442451910183874419976765511025822923094218014349568767498806437767961189253245202434991894521028829904409793208663114355557654667974548858773520904074465224204748180835644905857573961357269909768273864081205882243396256291282590288226864044529368304350978653454518799967345709919605407437758935951624315707932603846175265478533640884706333019214505808098310452556304139307901083493153979487816352198643699136747957719650151467250031281575951476002275267901976699478726429275678841513518153201666917634504141477557618650427542325090672475487368805400475271350716258360247754134737893618293441657170805139214104671813304534556971573632104212146270178826535219104899555986255731986579673400650580069406908727594590750595405376588946936613602286934037548725523911699111263074020446280859751765585244115360421043760351636493617309927403399483549336668346321768280810825696435348163372484363932298887237835131233865908581394569237316662422404133678110250528825906345004010891731840537802589425527392558089456973507574745334433897904437532737782156070405659257345539633218665288121967673176448496728017514124989285499753437607090394875209178302604688656104159592402764825213805064080445956178256795592790633422489058450260830441094741812783003524314608931994395327223413544632383662851244621036177866003693727443969380974706540832162607136517195792885750810453398977739482601939974508456924531708840872424873709473931674411112368321972263924879792692677659443244500371857067618133801028225575582089973970283209024020845811649718179086847602683508899434534788791337159156825178719685926656487089070680299623668292242190907435885053859184640967232650479372860460351599788889707999321830019308897873232477300587775311093014829165616573552743188583473517886505162943166524081371126851056313599227757081416287046334451717219386731398583620489937330521425127190668436205132792215187710352032359212761183725641219506196463124733984111753995438243468128421328864979670471691666737779454231028954532215554009286566495248466500373468841861818218242084404327701415463779295644826318459126305571541614341287357279554303976782523031034209946051873533492576257501677998605794856123730406860906867668200806072731797478131969768363644917560060929090830754898499320488529382842538856780297517006475136911688951113708756722033457897744566576617825272587310478890718092118942612788794632737743833643120563248550221170251196628801533594338587360019434980941673700208613485567592298501644192437739748188650203141763689832932398417762087540706246627273808551224199848545533035583916467930353298828417836938468478070255997814997288368375729761290331338844554724070234064719938346418627953909993600856417785220459381649843895951791553640104115583531491867793068995506415342390301556031104780077866802391808075754991762158777862624139086197753210247899690579139301072194110535196605859722369730731505087522282763775467211745788348568343646265979941237535411485567745061457689676212261285479360974558536450519910512012099752145181441941581771901394100913244576835278021439413793328013061732527159039176921115397876464488653924099417513103459602941859884698490705130278949801885657671919294776004343885273660528469332060479261216581800833960538738563372805228699170954271646346325501376885122522526529233809534595518788582547500120857861966649941152920669542969051864883551192064262059083130453190262340758245123481612892529137220765759641156754290653373454746871044463522483084193537972538990924571321654437106215259559791002204659715248782151161605906502819545250912248711417937018634162170992944110090142092811813037066347328750879120336135105112686041732673213031785503683874771746522468426352701880862899544131512497231786218019797345356352924231511372047994243650776447125015266163427677131005869681134645284282438225028338573403456343963803514032802041034130744095659902223272402588222222095480627569043707310609629300024728888958744719822926492941879572033669698094485535036441379425492629246732820262137847785345396374866788446675251879521243555288964654461311048101054158501779193704382847678652690764599046675410883646290309696327039243973347299744324421049462464369365790399002682226304141140045474458985282851966584474038330384101533453127668685281988891546962394837143156037615186854387650997591713629414152629256645425662693600115540768173063158465673334413204957859069067490276457198505563093416597689949213689512518302004835497051959324732503728188872671733472504493460786112966241914173610715073505525871580607046588013967317627740087038507305276455896904798872591017701195703834433910525324312915787650581193318797343497797738658748683460191040770165258434618411280211675013221351506353573824099607976548407941033153210324001837126121483821890684233516797760469453672092942159656165545789571428058761943721078159994842851342947057450179471910963475204307927011083603687004826901100021843137128433036888271107523758578647792136927095483250653576296587455605736426667956004335455489724236139607140514739005364667298664704809974726203540656514375670638886110067587789677169382432046359256321707824795344736180729490418714905440826106011491878259806249094863505703156013650789444843250945046465519233619595932931690888271463959516173963571343041534333560283650483973986055070289393080349962687185518791158699922204037136751915382062575074329916521006197894291201723322925661299305331644552831378909622729481762775626299198573978568385337767065901525564785298376191204832782588339128405316831609805115302732994284645398819830760815785351730675847507339877351606987182744586821562863289117895046036141930948430454250704062371612212090366505398408244851846691821602514160743200099112766146713567706464580218877285482750559085942481803699525386725828968129904190426640275593472520513220660210364835460307734126973509072401037383320169454202270656339684394531280199634298221696867444542684004335710498492135610187595521406905077364879258743096609028431443529057744110697711973626401888537170092367047879180043179364734286196883877238905039700530242253852634502464025828545159812773982284367613845591083148609903861070323738556415166441020464379106473125106345924173618940056722658635714481798416074408819973679115971759486347784746984324709037350574362053677758968827994326890948091166134653420072726864547966810123942049550647851512116463484178472621322225972210250727200085767948405763032201221449801790682978863800331192061445681183586660091530896619828594398049331464065846312937012685430549511779469344212356741375223814505280439121760439510649067902715807853998773294809307437836793471914568660013850828995345048141195841297020518904196897011552050678210129431505512387145570428929289113739053577339962919485831468693814923770928638678697677502698725390758844425672890607695866880934701539491051598468477004802801520676903765866470515553107916490073854015304198577382247740274199686448458513214530194195472079706753050275872559461826763910530254238788016044255411559065459854929459198133006278305583164455553531769388616842337242719286654880789035186609386718415079116790874395904330365244033604403186929691684752395535944054602176016918708838354801396031373133523114149412049314457576786135495986308742788900351484545461308736870535722973987823316498087762330121472957768562309032509042533220589999083859602145524645243507025484081215873766442447056987031448154868559191915373867858569398643287276390495300453466483819726427781934806796119937358981763986040358696808572051633808235330055687783247696983371578415618349060104328275199315141756039618167865428036457072871653512967282328170134272516875308730844773639744761428123928151849597433005251252075385392785036942205456937694582976581506806930593114963950583408395887590064801140025219531905603975624779571402955255012718986099311367872352531337000985251386666791658358380273595286516279223815654490564895322015017543691455520658322782146106851925219149953924587085124555753603204474111771381985548150007824719025536908074477404427860377531883322033144974010116166521931147370836518680589735712041608812212684481110732630546641742440921132183985798401042596320706529662501312981418081545363041773597556645893532251056385038786097742708651384046750695002551103386723717702302567199970678724714997117318175489998423172169244177746773485030283190839362706086318901677504322161413018526931173640665361317391590762846463042650264850547643622421826013302776538627973730556518636170469746248434094030453684322496707025708914704933982306390180134936292794172645545984786294091767134298579556172983189654409647381988018711179491289745239955689964183137986923871167370503083710393023971824818397430447675605260199974879530803128844259138222092128951098567567733899081569282574123414146750122242023436581662506248283858814745455393897423434756823911302320961882989492504408536133505795443418294586654765332560503685291466644430030864243465507235694536729369616049597005517033644913595415171373156451771262956318056953290010434794638424945668592329901786764294369137393564442529472341941616855790665779338219116255186247115590261647846209009882701690566580109085184833360820542032706558610595050117683704237909918369299109984939493956069176837243628182399588898257504714467988515305827083564111823657715294104235656117509815695706158662753314545352340873799941703988923530006113370533635755290029727325282135495481341389004924966360876594127631676750267548433006036030219747582040835312821889722639345683759705909599058333604574126476319853016237347043003387736030319540341347213605688008074268759228105474888783585065017106660427058550892484688236065380474184681280282116582571617313792764344156305026557526235703291433741245576741879558911122262600918881908786259347837538133340114076374304859321093005432497627213624970044220549910143714494882136092780940638420847005135019930634850032455292744464444761269942721791645678594569431035438666073841271322117275507775427918133982071805649019408026084809795134110175025050093141871041505697929127123065947882255913704607660146478645653844181465552390815181206730204294428075331107835492065054526753178090018300094182947411976107594290644088781483193429291322017639176057361486383323270037689341917505733249055275775119110864339907235467173158398933230025988441291945636887535795220315176822156892276041331819875378178780634999990126552414479655649345216690180678310776899636036700785514751484592329351263194145771382901286085059566590446866061816263172044383055319874082776080131844544144977773645519688053643196477281181280307014628628345252059987454884241280940750845050633126934695310162376449178688536972436645126727166437102304224438102886878556124259466902265732136745029222558614644976306138531427419037980792476078906037670724674238131927872937355087869414514430768416507421090467308397144642176673313520202050401104510583519866843718666407403582635959556681287251510381122412311495105917526850844295208618741080928500476884640807849193116994707860528965174349091761381959117893360534856964164278339737906417301385864236630397515259610554385598566390397484895714833104211437351838345646929586946564590727663486706820860278399930528633317712520489015612039203751823725238489781765118607837376687254746840263138676995531961561869470004948836333898086394958954800443812593932867449575390181642808150227688938648838399942628671839873448061798509864090840488531085400389380517245164383744308434117316542563731727070531242404996541655197448918966140520936957772753977709567587848525893512029072634634124413151418472923642112189952873120596061813163283764528268947919077124082978118394920887273299808565993638116957219890961954162519134664763387869413337999839710548156716100097437361970820172555614401459251736657349804302076982758800874123743451423203199658703823992552800489085286587001762729300091635592648205828125830651011918137401465787009710195852246333243665713853864741533857069357872827821251839318057372101194841933649017793166202963829307977659206591316318063150529882820509098643358788219146686641754741324759265336923551639051807204654375171106023367700081716027887737529219919210172853830090409316020009034006842333581871658110711369253149784225184775042765505897024755010185549385049604624583391877930879234147235505850917283939335629232234488818015073380041498508449187605106792576189120533961355836126150546828391396600681966342563058851283235650472596180568006077947349117558882656992305877764419355498955245379640047689092699420375194793615349620916070894191466724395275540177870008584428504591283757769129703053092657810712982600136323883059576947579075306849647634479239790596887157401219029376461090897679618215938172063058190884154335805198037579897777577427692883686280172685057223705045938445765578159967181287549284649436056045138083708592368156913000065490515545313157537636424180261782226224588360672597745392011968025663941906627511871348782530308377700567720187700901659035476498768652089925011020913253671402321883428024706018357948731286137737268841818035607848370483035022513419240801053962984077165241465246013989918693072531928537613311947148755406752022128768996534661427088132621884669822287925012121418443175699326101100521764608126545400904344179957585361269148277645399432451452200843705837209323680733992856196758700309849777782384735278589909686550504273037384310324545376878284632845295618357524996525333406049006559627540454612230688690605491374631167421110613030270183945976730322794380344245244158545101805133357907913939435517696705239987528455428721993871825955718891857640780107507937922911132461888386074481090159989222723405176005425949196587885615846572847735667809079113502187148836606902288226456032328107395725035527368469242453116098407166479133660601171662303318923155912114313546748517813847007749415435777427114847955777367814914438781246046000530228652822109506522971303019274327327569621263043345290194623016840901503428940320586672998216052650848299873999486459475762517176241925937921327764674090396050840386785888090063295165154117047236465599209852654965917042575579668531415885306284206724484384436519956066358466278184825182225082472163827448509534345073952213004900824276755746528452359318078702627026275041775129512428785783961911210932183018775889629976709936630484882432109810477447262700276518342804884048163167107899860436713332363184658946769918683282459096189255728056527834697048069189085556875188272091078516577845780868749560854868829768534385761004217653853792817455291090428697329474039510108672841345253444367755530468579701985290725361078341332888713442438725406138277833825557323776432827440603535114474079145446654773189086931852303998984115323944392983424363102142582503938664145498171927601565979026895883163689505894082448218124273385603418551082482027356010438509614909013842068529284379342838500442937108479372453833527321500073557029582121139720563062651115139871652064006502921955262141670053181532308163568327439779076494646730282719554739451151390771145035214368517968279488281101340957876277932858657867308115164554735824057504398085535202692702293218702044581971992852416335825669532614660539851715255201532187961305233611829520460122624913939760424204522754698340940297834161727394673883374801192206918764593458482439543299909849801119333583878572728085994500416837838087167615525764265735281679964750870845803252532635141200628705200422707648467598840417804704863663936590497247703523547965633678169188968401614344885239091096150375195451729028954990939106286118232853380293206841997452644971546315503214197003782686596053342201046696148527563196657766538462585712508552309419504689583527414879004901690754310424960100319783868424993773850423932993188704623245540992900217052828397247282166876816683760898633506737686839299852458353754617423917562294759816281059176501544350998850654829948965373274116426062238650521353373356772599086456953958587708658683422239665154021348402624318538322619275231170224495662327126118539429963260841723818330713355480767785069394466513782573353673139703360432128325629427607058956666891217615239166559251058775109559691763443312635560060458273320038705404480948195097716659482306531522838952864351729035052139358447687518854041283953360571836787516034289717699810027229111840460125822141156332395137255438556665322813464291518191802207166622727182025978425902829651363106450813178645500864377165324676831999996104229423893775718860179426915800798648551350880148781306143490679772084087671719191090671128933994318189373391020310749810489119390725598208299579653484677785968299638717645218059015015851824033769651549731570011157777638507213600226513157627729886312271285743148270694520825937626128663730402655958523211440171584481911387900124883278240913892310327243036671153520349642685464590096265572256520307022899337937459020675302547551005110305670623412873966812365444089141514063904970438621641700805778759019956391222548931289842649871964347620111793529968420239365103625044599706328517846742434911437591777841362587453090270604675570361119362803367530678610363375281999408704758490827704610836248635898425529232660316545501032644031877841735522218976750871560014240119624256292074157066433459213671615277148881524040732838337401092078073021505205454624969043014201844209044120209271196045073647755676194378076314364762442867874310951651769403167742955441270109777275151040399278322065227949303610529555855462272974874770223190081703971089548240033767871108900652781465712568529559114107571034319841915565010728747391958956827042845957931717933367646899296010282505194987317709924429899762044488251589121322567166733317571791359263784760112970812595824774831324616572125346394732096634524026409932207855899110802652077149189406923460107514832602039249713908352550877394975661772937703788287691482064064251103148142112540683600444277397247470335587191869234470137457699438067968498203533485730717356611468732401632586823069630465188156212061210516825107851635483561002837451971217359162149550423555173653724875251535246550490652438911441014422848219768084166965670402267556983888639976351635973329542614379919207073943439880852657497836362725333240806500702671360344681723637106676371937918249183386708053579936722912734021415353911832016114227235534675829195930234409475391031801150334825112888902817682971618348989120784337060415010301932171522143384194161807743210346600495441417511382855761404254523597220182419564152232105498904936157622454514463087931097626201981780108387910837988966169030884114823472430627058776211004452945235735432986489671608713336128896597303692880233298175847092421716544108027854667934098688393023669160375484714429790186193018951566197596889094274121114828640001953711443161091443925556265016242215317941881376466400455346247880206984041394493939246341339607483488399794885504888209367129474661139183574042505557017350495116120567982683260890226328244290171832326123952394370969703661823167475677117580235320403424968984034378960647986217004247377857296787288204785313995238064413413762212265162241722513161998446461914426092373054607200839742089759197346425725131383211941728025868065582772387047832501819985490316695364762710375433592744023729208429724571697638886411285431025544015079222345544449564452819451644480400874876000121173451193950913225684760930072438306263251775929079212199670755322236384876887575404586862247472773048799121231568199359777020364310011456012975771214351071450715299054317662594708748175991995115728497632334937769095098976436843186685838854507185967831652130199926870173254010331409743910499189314278943256173969678240508248368918791892113791658590334811844269974343835883225343033051956839964660376681141794392629155837470122289120894959529722373587068794454960167026046942240960566004840766900908009701926998591235691716942986470684805163791844039842844328514985219711077412892592225000069493995057399789215076629540911663676055483730668040637927579680308584467396743769545013737820757077812243323444278608333967609688072265372695834363695867477248469321036499587714553181471158572374771025882152258918761613986239828962792705756143390185975223169098015104140632292844032587782370266001301721572561953554517878813120962662996599731398781741030381475400292719680233700656504352705132345291511076879748700901087950240865507535381773136439736020944302070459642775154382440417042899579876514601573949712944465959952637750682615853394481153273564809223959211468303105457185102309744454880098482876852000544501835119017565646271321122825581873578414990892483031762837252495512549837324585406887525863991751562684178657505003677284174106589250260467332318840897267575123607809040789991611518602682415662405583822873528618316836815730850647282960907463107147561406029193428448003210519334211168944366388601230725111119273316013809719750920596849522160619797449877330467913465517541050408458182674487302320425320444647133018150409677673064364891070399049659232947704799892167759052500762784235289325557794203357560496537753045544283413885676169441141190869294012061096614890289520520161234994969375080539009405916411731453795273024950983682512796204517630921285802247172203509586551170940087205402453259331344184867258161150360360420311903157561198933710449724135827164049162094684292053803184538171230027713865314464270747019676709119766298203794814718644479993674379678467132381570305215848996146594509330424592641847424362087057707278425580747878246710598364482022098939364611906932033960542975705278189901045926348485733179271677237825902107017291975427850370583348550141779527218778284196741310980397003546877218946739109154450491153044559556813446927639371805485668540276140925788286472250545906693681621899893943035100398702689854464168264195014162788276802545059511710404620424964095270977021886289015135553769915772273218950372574520355836951535815962940759983292085863583319162501949640942593452139572597909081126827169635658689500018393931011283312272772561453469885056635580654002042197374159821193856906714113213778935669895319270308208185016008589710166873769190732453412166702214226149190907799927516525565899180526176262568692424924730093457552893290269960758567809060545071404476820899064477195439233580315079743359674946821208965189355881901606189178555321085242285813554884509564904157267782968573549861918834602267744221695839712537351731829274202656801368909438593564436334010586265489230888434822113509174902179332649129772951746588758543214097967361775286282062000573042786789024803625199016445608300562552755100829541613323324895597814720345615650835749842842466298682563241357510974452976434675183240614389848535309405313030581957948503971944880852961305668635544915258233194408832092589891284184083607450928516926858933916575964599328867197745031735435647037450990039416426971485548116470896507258070664461043338990926405579573727016358984684788773810485626788932427559249007708212297231755585607636308159785952776477887363469695588102468421116292863931478450042872286513904706772321363326011954931202389124733966890617600838303963568301153098786810798693374587771581948599647377154573092061907543059039568609028738704552896105622694916526051653061030425443528208262060860973308611971723117506848271134675190254276177497288256656562077040744871596709055700731430970006127036427396539252150306853016890353795885175848206151035139163362088173000958935664929056439557400037732796657136469799119945485271145948643061298386894527270622266494977843345890872558576621339270961516263245266694949454977714135647782132659413599330012942552683452050793972773443544631373235028815221990328198899045732489185729094556492905068700779729978974353133257654198029957737553803311411472668625221085382949174235773098136845544023797841566315162929582242769578948501215349271746358098754132302306681938863603571421214092989526107343794646100631284389814929138688740436840655075023883551323925792556704177643831509955762074307040906947415719871850615127115639265673125130711427952820008694867933074064937209394748220750686047902748378151170083470039580271689895546960419254038883423438279574562779949735404291543353054240866303636744062746009475802872313579935372098093489471800162103686548806985352608874418358877900120955308315932142547961703158157959183686194036135803832077593362150189559976906236257981521410169212414022553352326793405384051360736839028201751366214736656713226371894701778745794036344527942345156650257542290434810227808460450726134337870086066423745845563563587453356746728265928062330638821225500353899545672489905806852514754983980338990976311057933132518596415332940512089429650793522490495664713799453218598958487121737647114462071780266550332012809484993105075715753644518315277963573652737847477173542232665835569941923920800318236812846037516109283561023790253269617951874467771799948202360151479507444456842301840404858111351062097926116292904359012449549693951522669644711535368131075552603683160951305862337574831307862577715165180058464067359222095150187897056719640503753461289342991521853067995705809129795979480202240417559909175355733449043477259336997996142418441811303744801349485239980499971659440247143545733787312601040430388863632328285535437543536390103252037738322349482775541343554966216149284269575815872425132997827877551201290449323844083696899132693289821425187940051864599729391145865822213800696465766424252779667596236913371711938232871412012710580949250015317639898678274494283141738195590205923289524189059066308069217737055081274381969934109131191757846915844456956766060508961887810231055035484029919946906643288816602382988523449486405530376599550809294932096668115075972028690350602509903462597755959684004767160020021386573845203097847007370241582631008590547780587055367682330655182119280706670252284333132837407900171658699120001779688557997720698088466053305519134382095117434958760532035085789990882150046384930076998287684813014017595205653954828329443165944593525443574917160628749842003104540497605537066835664704499890120202796160440110627017896652833378477028316246592919432848968855078033940501365260975292019886000201487008247061641024742235710746633641810717888205328411889882527326252375556474373885918077826028258248521482716507895277681250469022550353165707965003878194497761541294901608670776349133769460204697219274005630037358705837918328995193046391615884893506252030201234270807230098764907731333922594398975069112628638433828643345557360289405088011236376265493264908925697204437328472925026695555240141277319351702944235308524805719807392527559013932240070817143843906849505755839595332291079385511777201815328067877921072181461603846600101325610834427012755213168019078874206383722020724999181340773273418525707491867895281837407477497581782830237057652190074644115736685888072626473257682071994876325060327955347395587462775694310251747296215827166855699237194244475171791506301287238787317659193298978713291237267216062037969847345018283912834363148814441586514580726585423041034584940350255216589509018441116709898520773034691635535673759491673180672113859465885698162796994534625188186464844694309828251908212434544166500414221129088338414394369520306296586809995539170358442279809662035098347335208791374089210679641446961268747887326797520540986280080069985339210653355600234869557666089083857293919896029629979327482626587976902473765071989007632092034539830862794008366390364704560428620158378181931979330139434387304158386586618117466689763208385666378382843377845386691217634892202954740023761721669921766718330507494364903786861494477000812589974152020248487816595034469856869087968185945848890324922716519835003098215984396218676131965341888402084979319308983773672770692483923762048629219192233002413747791169176890456746846198047358921258116611198117875121803447101569690417046097456915362463065791551372115194853093400759706291651583425342430227971566994143118517252763635666116939606353771791407889005317430695674872095504238872453549355924599813907662254346131323414865792082257110631258130227298804027450281577835821038249741821164791043507072195677080601326815061116615399296608042340252373454396040796021454996028045931552359832060042124040516512958855990420936110489997198450888595144937919641811917974957997679053562668611968947635344567941466144582852125633879150567430449036166873746186967319209352828172390446784903524817568344381200682112925826139702760584405899030958119224729301830012109337390922660194340001587142820893178348856682255110234394336813998559411702886073151986793744259281924181838932658227433978963721808334774547264771121219962503962821708810916510769550719014969746594511126325340282055205114691625693349141474040744020391205750910759226179350288302522446517221306514741680886310294598052088773386506369141000829635502565419656461576024570132184870907014887448454430222680184928916305401619744402479672465132515477894009685666111302513194652937605396949384130731396583046457467359644283284463403274210464311462396240386972649117402356331378296356374528168916417394256381463010822964239650051395434209028132975070771323312764495472567670692966866955936205374806238421519455329552232211413869327158398146152286597226403290331751720096034334984565121089645656733966526113114273537532210794359043088178558403229685029040365685893800613398589602523897313090649244764029251581554099401119994998145429904760042953290033890802193695604841641433544790269861731977504742204744910098051579350888837018515191971526025662757485153508356761138668817480922651120495063229636789991938040507594542440727745000177655915425200296244765783252409960333133682869611612351582169077088333274075378005605332494863438305505751474415818700035437396736806029684743669254962080702764486374716908533090420967948569934697486549891225914021039928113354247012449127174525117394663612157813859516351470276934549538663710855317762859420347477870023549739923689405145663860030885396810284438922436055775699725576175723144053302839010511967393172444267244088160002164079985117858461208690684488871518349711451038107646055697663189183668264116875324782701507176056263707109357276184365739461558455784394224969590901801294636403739657653467381247431411483486238956156278038566292603808193494232906236032287338157196832264802041376359190872444895188923684216138005297586879277072979457236144825857729398128279944724957366323668120585187595885092818881960098984086942576345839731381429417852581583645021276911423889874900224959505648038233475852539507307230291156593899265403151596072186794957713986743646435989921253996029319271743794661375339521770501400143279910750931207653207176074455070966510229495084721222178753125808040260350036729938154223709628802707033727828060854606845509157913578484621339524590398814648449304014371298579516413770865919073055320490237373102659112116246452624747082148726121846984637101034466371761644760027099511911809067330647314679785692011812642508823040524727915212030927299161511936448649010373406929056798118545034537984493938534244918425909286724973856378789685662688100845765623404029297560973981867017675193488387999343710196375416276594727436576476899146604585250184609810335423239795665106614232150743346009019412598739297150820859505362820095098695897943217441649106601867948160457266159494321067146109188474187836030354892913306727169914361625440298742366350487762759728247503122275911844553030856002719775408202110488986196893532621165897131030638793554577049789558241342771722271014365813357999586443633889686680939565636140254793970285992101398533530745427230500227507089689043503745658481947771815583656886500310628972371913178083987456621949372876419543265101666112380068599668697430789912023139370990557423672327239234001095134598867496029288977322307121402656710120764420877932992120044468937179879866735823096736308313215807491738719277627350085114504336906038651539149860379591005276796485368405802615896438095203250603176400263115632445173992400775502396135956210196815874360800620642756473801391730204609224327662344586163267982951356013726249660980781464307872009018507705386570989729575629821140418082301762782094601372987295413599442531253435834539303151967021447900654266676648671627950376918161341308661870160972863663226265045065195742675260484653759808205898934913474959964361442693406574605900549785721456994268537682722454225216871423307351173403775155754534907580808502920660883862001798784689146315800111318919979152369477362415639283475482296380797839183626222922578370974564350777914297520454631742452927023154433177667670734956632138294457995889788493369871579975547154082038191498318416549800027792432585826461948914805626080110131856629647338771362049668624418959978370249475729156878849009681156949421679928176404054553104391864858347058851442433040431809814685251343632779193725669319713853042583515689559466753460121582760062960972844305750189707289075842503971072673846362974429905212787662496211575760982613298765156352753870920962830018274105791651441937345633424929799654850513881255457294287246413352360936714668780794938689968458847716300168446660540949044797246428033957960032433073330105793644868962344618682293401491367423236746064003539406187455101499325110849311212305945328098698896052421019682472749252824340781408572808301865649646445131079024943745684977170420441571660710321108625935051920964906082432138747317670150690402187099504601517517889983262459644221074803038833333999346823934025053181716098214085321224974320133828596729807638775738020121389826759628168725130837947660083398915623078002004587289562348322591997320189727946089217662463541400293600166672959630223208772766579137892769717846266615128472123068257136577067468041700552644761705329123444359984372717077423069371481386416267398560002583979246731518987792163424013199417837454614476292206178207368204176648776936340077865220202721487706841444352560901231256864102623937008841249771651404567977192072480627644506587132891086110834550165425203540279398532449490084022561528844502403361532545520679671680968830299456142645878586541608968904370048058945475608910827095681426887471757011478475112936833700113665619045638797752460358861300266818802190111214333564959851362053649417942760585702690819206582366272008542054579914994330888067968057967768129762406325759439212752554941102108620946247423056738075374405609501262773375946352448394540462119506834471812856896508391351640644671894625391096146737625328473966475765232125675146410554763313289296719833225805039491041463721621560677314092833342886143813958871955678293592200243094376661909627567338221773540760550009818104614000675330964934646143005281942078364265351456296724089043876231990485234748906820201222176721669739625150557274909020861369721719452565919409338747225540947074658699456389209921230895743701692002962286968927463264922985623416898932779309621053819007801409132447371603737202066491514497459590772709958814404650302357329565486189066763985326388239528071890921636734886751301228386840970032097875565213952903263492070180655362724361194334623437455384543266724806484254708491468745076467272414389189836947753483331439693493326067986234359663409579307014780995723091601264466343425927153102189186581423259472974916011163106331276253795408649435440459380893350357394324341358452500847072993039132570210270342043870967128859148940447309115002186305710227671184116895944244205519396920976577236735296224560582962197700039083012190196168025050387519766766286802824020684244962622911089801456793746776315006454043578997822351895021897655278030352290677841516016193921527124386009548820378811190690089063329117303272694383625776402746188940292940156367456458641180347478388109473168937732951344681236797795284444397351957571105317481893042057363951009219949085661702497908326607626419789881741275384579319854804024265172095985551041139338963604343817172042199699218234055115407422124026653256836206988394579936023907776907325926077515563303464938004131361039698715423225199649228763271382316887988807888207554023677592528437634467349976230956065010748653968237904193880538522756127588171962271424679088703140226156363942362844528419188050148318812107025187913635598128540720634213469974031045791515406761180134353722468092162458142789348686609823144482394911182137491062911282898105423417533288862427945064671098369521450012013098125975095218011990761455490476077655455078414113068390968680598894024399399027719192499836124442192545520769893053196877137166552992404264829325697994331094227952457108818640881168599375796087076767903785657085470429097522028171454154984053036955767586493181735655632740539828415347865110096603077429069870383413746806569327368264431392621663358293710164121625503224338421583401073045267033489235694225610598599539245161376925337660591921528803338768966555856972406886463192841749867308073430495967898203891091734821139661337592470387303338873351810566979658788481340694994276639915671672064017640831995920490974024612967620210032696407978107192846039256372249795744442843702985826972233932150640195639867900265247445091657950652999691424334232598915487215573007150424526668767683963977123594147974163807589676846246484337245747285666535125260481587894949340953668974788808509718627922714724782708314080763005109060194291141701294881705438536098889994317637980462846015500048311621305696560276320270272060519284847706617933561207718116258900592531579022803378560772088791623839919245168473251074219250191326874670889519268303468117332426512177171833303286195750896939640668751526705073481917629007640570600764981805532663354972316011835732448689962686292345297850614214656785015212972375151275771770377690466026524844896518736647690693129187064717733741986426603026281024519372040089986322845840047300750942279903235990986461383909053125418058987881026110123242216493247448973664081424566032131891698439442312568245368690306263417234390421120000339853361381637847249591991672003904488693667460463454804545871917696217079686535135274824571343658189658463911652809868657795802453774169378990206386038615926815419517868993577751422741443389476106788358916197435253694480572313886299568334207924169043809880863007481135208339974235861380067974401387059758611709326220293381875040863217029394066629807443187158506194703580914700090798578113685066021507882307893357848912165119778944780386042352775705136929325206870222022111429584666664832453435213217703188655013520361860352452989899312797365918935337299810726529416440876199707060850301278597206519400002711464577729888261840922233469632304371587225057911756850973829363923680294705955598579533686938526023490248715455802506596648187353665399932607800582316765963779159737327515354284713733114400477700838639159218288382514366147127967329178194808977655272500460174849898137780428438153523495536601132387784237232128574882950870323454535714510408552544162111548107267497430704719187445836090800381652198706737984086603891847127480436168803819215302964036360878029867123949192359489602748052838119355392049346778408172875056127153107150477206919362625589342574798108488651795121488593974870831766434029406841101667085600879369903410364579901582890865586930375542360228496277890133033957603900761683704665872305757994489050602825860230380048140445777708453977931808838495386568091100664657597772198611927929393709852948699455625087161870329836835342069359546964239479698345692933631046332681292693848378848005970320399072744485479724875963946208596433566120118199304353303345859728869160259644156800293864500574099686362300782033401537621857846017450847205773419894111829988401005627763266572421188340509423236242284599455417578254545261033153400652621360732820181422136067735963102548193774211848965356872396288681861774540957718949736350651603783380001242625989220903399290440072781184670657888315336543666109106026703504998215055073993211963690773666713728391772573093691158914215564303159204373218432472468109066071540056953960189550599775202050570512754096685887863892857611768744230566346632572300162932772384764456946504752201821435860074151023288700120389877836774284164792276437311294914413575056865068347689340286495626713274910276246725080921615148758426349517169971512567426946870465544195224563568319779198921804180043274150194685872030712993472854408616440993159423007932332546551365297703327723778865184357624411556393442890602939843150140009179890896117671677262941952751645328575757442901430430597338194214778417087057852878757327313009990604801072124359116283664991553060136119743944930506200161870955490452583369995983634435723209821358831741268678313495705227223331035157558455383159517416111890629574871235254878008069549755727249463606718061039662771811445335381668030356865943599249220015056348278534686348122805319365759133801852862865171753224056738506708000112429345125769947042687841110674196343935722828238252186884226385058362032815940178107281420173351138789932342031041990037985239086767095913760174786820303376693859951435430458973188737218576622446133896870384754235119121700645145169411935863249470547446991458098907773422762662390850314449945801938529474564507294056896976766142191707426419278482878160702433204449240539806479917999729867898672244634719673361921112434223864704019542308674216083417242793416453511877735593291975060579735790819245044798617148586929602643340353425199997429172336774136407412198574350861864840854437835055255008215053791705208424743131583015612749890636018610306114692273031081786408575024201885304061207968466864150861937959861160279933221224575934130748897597009328697907976040467279262479404079159267083466289488566530104011687227504946559230305900127037032892850581785500359200109888189343484554032516861919714215542547934657403967778925297181215771302049759804267624276198692015568728724774138777550040007850096160878623355299773975368676141797513372841583842850567925202506923975768282506286028935149730276637571898707123053038707539309347770639625177028324443428427318905019664258269426576814550671582905456003099411476225210221397947837266679414751140391375810162155850115083462138313496646070879146840451960370275239917854675811175257031156707808044501751318327711550688549883340288239555638076256497175741150019072341731341089878784609945600461611523819706925371536813375839986307008547660808294333921568611170882414973617973222048103308520140711686202955797357862544559432858800483705882020340906024809396043090256558646367072807163398319544151145712525913658459514298586947725195633280384234934925715745146378711423921326516150083981506317799442574851807996950864320787128830806071280734636694879765808335162796795266662228455721588700178787295652770544067578481157824085893306361182191594876895118415081056739066088790749191057712961639167110002124869805426397408502909821545995000789779606868610795536750872887304864072090638109785320264231443746439633463797292804052849133996289330262853925745836735047321279441094006962346524702040549327049724329587570630057524080126835737129173562475635484413249636576126886922593396399737111110217808699901023201376968592374291915077806901235802935726169439195539012902673704266770265196260690696710698384993771378931914905912123948626220691061146255001534577825080075489050234564772717429223497204718843295207049533044678509778051399426697339821891350806282673818564723128823502580344427613466639492125671495854741573614310882652743258880560284644885638377635155694799233356587987443318768535647163621520509726394823563021754726800789591349541449031979190511359884612842842770814265933458620130054137767390993473507262713370609167966376456651268356078553007818888655990257992948658315931289042790515552951697210828956904012164055179604133015877687343974579231986862052191012263328786613222595963222530782234543695263493622920775792217380119742864821731520814109273622869988671454650091831514886270077779010054812139585382055047871194957864279636519094789804380054227185352528534306682164703802926969401960184833926816060448907104003714629558488345062354188646020818593443803479737139378650523817836233768284914460583721208721117102114393930182059628922200694353096591478697657737722062533497874074190008049688353101030709452419848817514249884454456052488499699029182331341980072643299125107944258643713128549576602445044307425629990686574067353157265645041604902226302916457750544271292283216702203379759099431109287321840419761218628525837479826262134174305926383921423254981576794732739303037803798852007157965932702403835762564648620098478095629925439227532080906970655302432092641175420081755381990257471077052762393116128316278816107797790034269685389023735886532108270586746440608625438951038578381584746773522314396402403698598476566630479250057830735992832784891228929804121611085183793309388658325349135724771332762570847429098063383324638574341307813221513575095093394606434780231966811645798515965283861534061135139194869694323090870955375227457838749697165154037199806512476394213628584213209699785585854528174747491384204981630922969675446436231454554514268267659114984826326214662459304864816526267220202014518064559275470154565239333079715375248878514864357616013021273520663216322546903647209152691344771960870586953427211808507552029775030460500393456754595042953354872240228627461168866489742190083052556505355056011180504195191541221435695656447759414141060771392143577625456954576923668551156650547417456899146436569528703040440917653190454590802807315594809022290934171745584803376984113980465372752417344496198934445635726041673346521808691337262706593302030264607579597614366923799941313411848424718240811626932054691781845117390683569377266326491027813756442203017772601333249947694555183200680236610772453304372963019803592985091807634571276448712421620231139135976891612454301238702710298872801201811165452317041531301745523213987877864450934527867628541094762521322730235628861482742084869185822346394918918006283243302444052189402365442022314882922469933821894788577951521072896433347743521341942990142202690001682391401068742791696594511616457701607985590488671303902089996197677002948823684157272677735044545172240144697051423002803983872491327200511859972785926879807982766872441776762283105911180063059858722237840014289983341941738699999394122855751264734979329480596492765450331341080477389967919314285679266122731494375912492415615682412860878299690057167459236515349585013095875509564741390807567482407430729946165080666011373774612338173368437273735173122795323344455931117260948114118877148756774734890859258023472372956132945786176244411311702506505251266226990300435252919129556058321072208944369574571821316262819428041347985733563648289681664569756132459452378568060761122611704097507201525866043452285002615312935080441229039366937261036633210052414932309155306040774446820489045800277288722047242178306447177324306378954802874156389317869207457056269912814396798667823841690973209690474600106323056542893308470304393514839108493471722517064413099198201174344627778288612659137968222834810561096843504447492918202962625623642717847292428227221579538413018672580767279602249736992204016056527689917783104049460226454463293351591331625978143247691727905009771843530653458219203191137587627776865076621702055737201347960260665577000226542806902152439341296223959573865011315703210357137093093072035307143957384290900384702890855831821926663933603197721313494326928517297082563604580838263324060822527363098697442816750292359142150808757092871303026910354023231039286612149608187790557249179149038011521883727499078750208459615284919787771282560779043503612091733241807682723807292386691112158938656756347003704322883503632405232148242193182291992694210784174436740978146182740733167048433891969725716198239948260384490976241384218390717004993649933720363021567362717742787052500430939686759072642379904845758548920999340852105370040415524618421961023667907521057788687980420899085745028460133141731951096513456644260063322842056903347381973028691215841620380358952574456940089281624884810006964836995184060685955709314901882192723439621686190565433301760230229956290162873191575222619028466354347504164951309369249821773855498574354782207214385868495950324516702836633838247516854726016084807988862264956479531631140255360653921855225409306465509028109319370168729018550130139988182147643262064697848055343846194262161226268375408664745837269840893855426227042651384057149948066754084278408640979386587997904900956580464348474137068861536671883307432955755518235341134277692297628878378635795161667658353723645982050836741293174929564972124316407295155120203488430210939441278037891925060192979456442501797995725316426666404619050592452391449065118748754724978339752899156264097031919684102009688287557797439319719291368844291802340902443274514622469024178415186772935544786933945390035600405640134690891613844467247553070086076515961109390852476542753799658732844774161312805284913079274281118519076262095585607924037771459577653157833636029239799654745082075595088846632138614454341766522756440456593094496690285611393859362333245751209076125647550870832696604380757938159522142172917740826047865114095252757538491777070950426281446269754771596020502537645370439912148484010631779934013474967289693795029872293324327996832974955578560089819758682723687742689312934542422305807629364828247159079012147807077389741941909246621066446407663722566156791368388452596199243527900063088502982857076792321207035829954212552255195419819253624010301600446005258915760513877554764939976142713329187710387926136090040494734093558822930419975395182758886469646837242377043133394949660284413158079688699600907299077354036578907779983462849028450078709589594064455917858747303101013297826280486485754751011132768599207719130053817566994415207399614241783522460587034948577242673849806682399116257303997361703921031298186977226149831795548059275162607110488302251375425019724951638309904363783554071958959142186401465153021027059989853328806094894855635631543325611623511290697145798897087945226060104906622573427200244542541530242713831017533798107393742208614526663506506111400686653162023415763865230088195727434181082814876690564348903130168187672114780652641759744512319538933587492583707995066763644001599545366514333315029215385577788268264084842433147381156907864855519855065567558859505297995190503307897112519405111996099692407433640463457135182625592712746938872240685507869619030890104015006704715054426920577152295245796819171672553724689184070040383829561759964196007587113392653788073614949463586711316556334778568599119901016682195122719308129838835303998634386592471936510184936080330386355814331382635744280888158646150390558461849442069098667682626762932928876219599590368735150669394280181377987052514569378190034588300046883234666715184486866409607980397503807281428372796474537712591099924349292944554224087546522796367856119592672656950769443666426503888073375004650581513781133109268035919353754645144489366808721484001410520287311060928465192231381118368035791760249078496323116700295985362930166514582322656928743301011860994402800063726551279821490979020082076256198144376893944048336988717827415303915123153707230969596965365469238470150945455552410867217536558784186687603262693739016586772432094562308859763236382036949429188626376691779595213911059396897957845077844724365401076763621217726632663761051505966953716339537689545554090965006497172840267298819314664978587071832416677826582018845198241759553353977619818837315262500485353118530696628459134978583729053320579880260317106145897281491630561069645475286991260354388526774561858061450168936451514704714802227807100554188962921554672880823837995831676883371106542707814864311301008610919479566608576239090585708404583926495848382519942882521191384107477290107198997683569110646689341531628867297916545505447646201615430651238845363085215316799672342495471117394764876866952369130907803067927923866731829484537443742699141050816272267217352479791569463721909021890030316783734983099279912524295862895306562449713482549110708373863344375115603634611293237672405863104526521350148441327568401780843092341256403442120001920008506288242533637234680344021063579604144250938619336927196889906203486688192669394616364447458567776291182664142551033356321236983839903933776888103096547378922003533396431934182561095406227797513321160869202510833740813414221566464920285182210568416798621664359533268623431155374136645069616809833383579186367355368587070006939599254048452346493571766658918064305494585878143887854316906085670008490003747323869324197504222348802082571752852115212835613341570743784629561057480596128869947196636031933842209950585496039116720298465131705086097614291309525219450232501591902950769127073276052745734359426190365569974632994789321972757086989267879108031494558705859842843709251224442508963024220710459048908937500214516381430019870127346654434545203183581676377798626934473460870572836640851719389721290213635905360604170570005932109189941112041123715150302465359945340403736427325556923955957794329646676892301578674852801430216423510794272831048736619476474575604699046139233430762387104869523719676352392415562567413732041824900674104572965379292006356141761137854549017280766220444137610076227013694363802738610382620990399811225251386418833939697596794731677941837968583134926386820276933198554090888234150119570100041357126322813584924924123232619431822284313905180120782989184364717907660094482854700290841100858162456884939566114242929367584005554021089298786468600798264593051164341601665145495284106510097889908999530756221891721974440064475071638944923566213652107972834854779319190855797987900292578199351490076417863971187362362159684649190046523624176895200771935464303059292777021008008490788295987511242334913403963925283096345497063812910250213597360728233152553302086692377550711243479122470096554770937786905261683186283803836409196127158571059632143547284293839225155563484106020385570426921359496143582042095542414605907676268505428194447183337228421452621278149994618084238288578936194634134122451192693518945138982986849986652295727455187838932990284280239959236767486508000825950367412477578561109195106170283002812821038153797797729388800704876340778857104763771658142459558687406677832166408946042170691997654150886913727847973747398334055264050330178661556505454936506972856248065411017805968334084288304631704059039973741933909185201717453514465125206612606773099094075696534971842722464413559152450533339814900678434054013956787289067370895183770834091733056943612550680192326898182506852556885933657259982319000479637693832190420820160751920639099746032310982424113839963226291936498896740572267943616415938192354124933007571321181952378668603404512636514154190864114687891099243630025374811139221101752512412882420762420998149139153812040157643594378012271607895128216578483440384118041513707134785994676331109789204223400072085080760049968988239401365951706082167574958277773649692671435643079430206662869545904807817509918029619671037188383765183303834848322898482548719555087163946843652719185194350911101109617519764041135002698286534106469392884816475454041530884880573820062010269782300203412821608674115329290472455164217812388350311077684213769052287625027805285074358487944358734007790132823273849124692201551588678453235238695051325778068929679618723474382570437325592135097691431898376653964725188973763519748612779024508518384090928400627358300198206261202312280447722464854869984123128072172260091150257536197399190224395028867908979356404847909200622290000218232686286083948547431239445313359785430242966010937871146549693889296239614631738410745479787629555602301528286944679372560375944480947057906597219548436284876764176403763009871267292386273677076573548101135240643934679813859398754041055817041185498549891073230903998604632089610753605158631543734753501293734690559339292253973287516300984018636523284458548733335638314835860372936815638378727411112220108989925525340137946003365275524382849030046272450546937920043179899607450440419917320992625518220005923945013613119332451611631453030731117240817639640960472556930753717377822447803332916825022622769650609322984125369424884187500297399633390541210729207576342810699914309587438823865531026823414006449409593838058994296633148300178287946310797825915284946472537309968313554639099368255283815535126269116286800358449569124706845898175819169488207768329504367436647745204405328371950360672627609289941235280788692878894270498569110128334722530363178549324902676824782014486428569216496721150817252293276842849696865398148516269693636069635572932599008186596428045013463827139198183202445923393762701061511227079318725558918148496133905485521127136764011971568993430318895252325224154191602534404733724662522967330582681156103608689426813037500814981390828819364155795366211867629074254183385175459425718463467951396695070847958277262658100731016423814712479100885063533674296330989678093778579785675371390801985635135863036642786368671503106873744787431091232770665803823499492936925661061128545031974152734903700910759667960111349600369769628173513013138135271027953755410752203918381338346133445618120470829904072554005974381555512410918794679338427271528315311131260454670542495599771597322653549197210761533045981584303786834026170650977734568542674153546966183634575507668333617922965464749104981143502937619457857619480824722596702157459755545577882060688106516291179602632833359726022260209323935338723083939465406741073991488257076478187623024110870125415067329190056056529572386792417153964787446515292951186326725621529495005124248108896013878786651635430571628112198430790808099776583414025427396024988576699985261320107074119665732063253073221623733208847217966083297278120022740520965815210360310007728572225301048549358666051010554523299212881642755926707887806221667719975704178085591015128544147782217290165352013664782777194121789705553257635717923168514893744024109829825630312814327288621500527696660070857406506246311266497704890016653522352076232305508207687672639941387061535607672511074428717824147431408550735368187902423141341512540710152808943306006003276343688411995465841293374625575259106747872855238303115271961923696606653578032453431477342138308776269379775462119935021793687468160656186091252340963165611341744965434678640210393513818803833842991566963039737363466606206169525162821801003642931244377889860683077886625769572269723121499751707429471386053750359611771068008733812335745019209949343577736205077844993828834012304098693054011459435471080827412620600479689065900800203942949653965178557320566343088284254303008603972569557335445122094968565928979657169285892031460171339145075464159223036146694778783657621287929582469831205705669345956291226962476931634349235607532882828207300823990257148916057427488241346262316025809239409909677005264582621269018838489283218728016471771262941901355047707151796326475701088667717324590371621532916080321768607066719437689978417741089553228310774133235068227495929987129581216288928194123485425905696798387929688635617420812127819251166011529467426949799776320041425508401160853910515221277518810835403586963080830246776655081386298425862847861721552666257778343146648691929315838555261389570716341454493214444362010667118345652216912704892515365590490939504575438826796624210380124764877056060370454856228993144502317542287613317074238870662266579623536761585327440016608297679173038417480722111257987604913088385205041600751835443562231034921474314882772721448047165234914073026165710796109106956858556264719673967760392908871864210855095494892869657953706689978355261590319414492272246429416085549702125277640655592011706949959909770163419010888628077908876349046475053333476918874767974084560744513470317927019789790937344481845240911592855828332619998060717455215492439455993587401806100480609633739217560970262128427294075005340963238004033499307838185664815257048108930010854715388737996175097790532217372388834700978527372540448902787636210904266432511939725066336981261590208257661597727505006804380713657104138682861875903509293059146849861480228788548844450698448391230275078164921186405756302620392078189503883521534836391277515935896094025382878262862340322590222632825443152737986692399701773782360212843538790077328145587564633751374387003862142244854117057931405195211375920263336110875551068873951148386172497813036382900265904987063684546309862014378725446530456446539439832515484591978812627127418377074353095341264274480211595769686976354845457391126690128081745555021412903945747400277703482117538632640545650249542753346687767124382143893217780395174388935756941140600778872958041912431480113908940557676572092748570068957141273531025684726122865667205044099355497127322727880995583931315020390432549421151603838214836379659907606912282098736730576871462542606471049319796350298072563009313550900445048700839378943288004726839587017141743598010824509709375582329299096625489744122067816836870639664726759784992348842632232977390682460001744908887793465851945197745790024062735764394270584086869706349569746678002579707732152264205096783577777364354545788099237927419237185144018400940340081700681547832876434278385710044952126502431980211572839839329414511617236559476660898657440497546490389903433046309019203912534294139216545668095398142912285682516595098347540435389591844036057744437150372812260977416189020418208455004764609934627349398613155915894964896803052485743477572291213693258183397432813385616377052961633198361858923183751441253780764783203274126682671621763005530547580619608336653134273894758302049080451824930512419192186408199341509378367296431522525357466305987061017412422921575174748463357087887207337881232662296033398305737124668258167373388195838630932313518230563533203393048505695129853828563979885892261312382390132280253937203484553259826390918970500131675625420459337543862994769199955284421540130101256465963219471512436231943916337583371421599572778244502992839600669257941295207338763535890224706058988104410940213504898421787640990443004478142153602877933828527650617485126373092431995258812637689248985055534010223032928585277314428975345131813428133745176135804007921982921742131396083519504341898294948528514775777814152725928054320511626610632174377959051063077560709322293689230586237967331377561021789229777557454152955866879376865535944896210714390463850887872370769908537195034418640478429768007962844132232348740862773033759807010650989633020536833450745668665622674975867200716112776113556990409815297142132861188809768164354577609422690613304279771014576188107445348397050961638478381966730135057819706674943454669034531934966962009275244676213044036584908944081628489579335438957370202072191185284118441580802478184762209476813962524246761405124520386172478374482197930120154942306133088295934505734019620648085811840067605056535115756337900444989231918726677109110583697839801417177497726050510035229251571257471552312020240647003194564759046787007416875320435395583321193358638860715339015946042554610852333116554840643374621468464210229786043026878684912261469578744652177775353261673416365091426683580064381607342547001591348283456231468269986192901133645701611392213352929774095434960787191367393469486876788987927838934179001551477201484852863802075972618291805345718759754872558244755189819945756079017832247124177798789459995378673186064228930608537933357510417843654367350212099408347042025350813682343636243087033278842494082847291185488992069193604825110125516008444388896183121593179872813351665365673224470597446175619443474454284119620583953825699843595535681189651927874289149585332104569650908746770823981388530192276399317336813115365690347369258981861018698712342985049069310160245911528547389469666302752543447721698249758147267038561179437180894043465896814196317957261329298935287630507322542984802752361623430879694450592083293653514176818133376045342835029222337762428468460513741515700096457687336506745366126968612027598826430548989900335827368138169149409108598791806092113155440347207288538860323039523514582184993112212396483580936865605371474962143693965054160907166872663840584356753363720796248953389704943230797425207087108753588858436289768354421150249819844284122622142042307227842048296066360196981160635457053571080131750506313630799422966377541281409058293029984442222986620067443786664469553399725670164044835945873931243895655466320292983575071428136992049661513478206147839686261173333427766445943371528401409444021452340774428478081584992963461971400247478251223903783622888660087986555667444523165834459706497034221628250986197191553916204592251921062678151503046327270989613387321273441199054417940511984370566493492802664112971747930008564526839194706527657022586554544309514489529138596582858496946201747667676655663338949761808047805997259968954350761950575613676260605182560940783864652693481223065549180260530630871851983976566889446613409366069309617651775225327707963597410624889323130893409962315752403207192659442869409989625689003064503390879303866529223410755209760169057018996460050575298627368395843719953374184618483011591899909672769928929201311453664062704745631931225185820720154348315299764024335991732605938086288193019150793200654189430480886161426253902517809367329835972543608003708723886997954719578221851141885634119676724484258111466053241571280908857246419259902920228998138426895797366207337904243985360650747840851148684919602583285483042906662784332013698634916971525918819620852478013496849175930402283981156295693950395215131616391660395801522461515308038087021530811162554465250972366252902607814082856786807874284300595799170052288021820936765941451632737052902996412531310718847988935912026330495654879474801809592244712675647440717290584343154514701226581069701672625244420476794739884502458756422810499483462409394469935604723960926530494608733868594200741942454302838209241885429899859443292068106926452545093619753345494896304797387682606791409337979880178664603499096302629200304426002423413839198998502337990493195004345048861063260112739933342200145828695313141213158513943315971928983077008511763922430518676702160231671069341878297043684770173094827818038064801898962381799357527097699893792657379984469860607120573892554515772006855490097372349872520558670260754459085304581181340466744593425011326150279429307228406931567395873378653616636433028793976257252853800099859288225447329031260154991223741535016758279223537710257419471170323307082731782037639070434660757780826541197294630728848061404598906292914240882850688247076645682593141754389630204468736304469504557826427207818871303060940652880650889730460690800231196025922809209590095734859585388498820763237270781430942666185236806315422443992846915223394563952465507688920121396130607945297299342994642224171116698669729436893060620344192327058454132510996021388758942789942924388187105449143994380297211131221031404706216707969886088066715847688690688355593572055509760574760724484814431649816407432982444643599808623210466133210819523265072258100794851217029757869060681776723638032328953332128256621001222024749940659363159874003802513618818672634090113338268978213634348988361888046803340514257500488070060376570409122787286687103911961730968241376513218160864502016857981856153030963473562034300123976486317278321608759359165763508805915767772005421208167424466639066698589930167101021045503781082403808394546154367953169625604051123848061778111587274672801874453345539926352148419473263147910973453136175736753866350718131820139698587721740111844468898744578950087626367054577356830905692913763609330988118973666128401956478956757538615462157025481936486471034289696882403945136834992700739576833468119349763090474340985484936068245576517344509524607240015675761861172250209508940148839166706884284160117707840025171947712304504397753694572433178680767399531261456025651463967357197255271716625491274923590076176509992962315817882322255666900695813155934859887515963681805825402944552165704913345384698118140093578926267591113558957389589535434051695126938298075575085911809716925985020827817188436959454653185421810842295620548041823832626659810581181213300017709991156214981086938022630286833022122740144448628688287272835971401844222202455333552605603426670730379405409747094164839374818576238769204802416301840328779598496387037470373414327115840516133127727371999358550588910892715032751603859480131298621271039449122729457112499931656520186849817578935994986945206181863114609090032011341246798252763315257644404264441398744451462489741570585296803538789700063826298888872712068304444451340637453578689051889287385324383667223219188076461200942987687077995510877409110326749270328251087807253457663295845967509779999417787445103946849103101851687317935467802583808419835426748966677694434509717601269563399375108880140804968339368617520993622547519840720675296508154359828829322330121588962812072145786591308569115526507450264027516534572784296648548090224951740711388609943729557276490746053627964356423977999751655279352350000231101150585987738977964412725708988123148627773142682786104591696395280195558800592856475145939179591010188015386620116563808832307039250284679799696510926027499634044477725251160737809300972912179865820911198890209552783312899694461695874313955652929597705204381667756379192617241799961181634423755153473042389345081235150499021988502588575984319545110219550908995846610805190348095341903357072409644722920273442022958018758420054176781134775570277540966508520347833443153627154229253095822110602364414629697598285073189569460235319476877250510299771434644863690576188049652802322183668855673340488952702085329107242328000071614795805373850416600400131239484856902784149629235964334339335440785237100302688472813366309272169881550833915110992979501912769242682063466240492190604093024066983192843424340972598904419615293388131772630642224762318405073552461762575975238041388618761424604711079783430503610464672214827799636672022597851225122462049800319497323894213450841219856117238535219974561785521450901160007191084300731895613562225959082792176955480995661600225650242373462610679865943708515328781773768698524848493370099162646593405564248223647818046933791988156804740686869747585152314270947695004809174430674381175200199137989737956770814883219677875450060980834726402890356427036416328588104553985321335459894366636397621340261164517213155545443385777477585154085504603165779083653137766280408788737840344646751572618588053019745966893067820733328513383402928759752836171107387275158688813876559152117850794790271508089770743594802715074246460257032982545967389293248706484534470084620110098843486858316447768000037594517357972114227160165653958537428457422014105638147979697409991204418876703013737316714146062241750542283046846581703185009685786569221282711795308141567766649002248160125051606681163094360849346458728651968407581329320049831690948114357958369904613111450351777585047794494842780496707551561210112488071812176627833034673862196743284779899323267623327391758434585902674669279640003673157635239151246557577101542207584026389120087760799304210924717863518516516646612742302644244009113905833375211688031037300084423943374659322608865948695861652782479076813396049199696058644121212423931182525026096277036905558457244448924634250142554516437752244140037336936474363261666533937892356056469951817811988654849344100262714669565265262421500637835979622376144628954401383942628401016778386710819120334481831904401494566384186667358310878077030622565583773129752255688684646925993330805653051372169331171950128108788026891903454229009152120435824279602368416184808899567335532453577457336184328436077305887433266422969119036979627514432379049034058407976349503393013454629274854977003429865923583893105308878335401861811260259756085239795423340397353584407251239742603182603535214361174550243137394733991923722222822077254002057696325978277111805388565296578950332549474080101036630773157562795097547052109941124948066914120391822842978617799705251827440976196879530062951119775250408714863875506024831838137500254619609122328230047039756985290438918442642783662726139160749068444547532616260173621600500992497716959493437779750241494458859451960173677669564276395070110153934656748362888430592877346642132342161016690393208720051774280808499921766926451471676359157889038250721703421212892731373857250701091372132517818803159775798263939820342531292211932193098007406149613374598811157985906564196961448320368003761775352651126834663845507464388707870127602607591947207874549962726788844916183778509702477934038155725962053660384097688256011949874016305422133933452967233017451301153256272255601049562788435481495206111758536275411494462698876874423423460197792180839339108663534419761054006331992650682383373961437691338617370376943987924031646659262179610638517046144427630986081858737366579861301551427609145973888085661981336242333371388490662717652321305611827773141887363493428105319939546490915405046921265626665346537954566033687110193832623800344223361452745771882775775970276542146400724339312007797571499679819277864250046690535067141778084227589768158470357640496000112439508262218049890595147765594247193895967234331795750051762868643444586640417072820012136806522273315390499418252793263487682067157221233340701314141462594649447189681622286625588167356850890441210575524170965406126833684314824911826600080309630771636685692000770979866271346110916485633378449661246263079614874340585252629072078693493242251127105082189114529746248676313956209989787020320782310037753419219551462314851453230294789932467483318306699521193823239087252884193100721259789561929843062353446373964930080990236860772824947122884905306454041090252836510662826988131582820204021326461853458974357210351658567617113274531966218904210455263944537230789975248641690989046364272000983733002369747528756924886468018871207345881736734486479786603354534864769774383531695578262935747402997078450318555466048960138311518693478289925504569618438889986958529298271620580782487951691924797308066223864424631609971584696156647287212082851933360804645266117626969004634523025179429895783198726379447522112492518749603079840744956795354416626654044632229505670294076084297306869242409178054617989582244076407468886298317419023826147485044881726611585774569530664704855819071037116891802199029313397930880367926588116260848371407699178658175079534348994039807735665881778726317591113992270139758678107673235369742802795901920654369392220954163740865245980908635542226040330616790042956852863397700073936505925704851256438321688519046477602929181089298502275059895914288622833087216897198380166605136543840456488575941170209359777358288195056829668219596243163848629173573654741276502766291115145708274635929328822143804063048297053885470614466837446535788546240093232449229625777544690097849459928578957745627087023289925138750439634301008685699913286387080015632694603178385027661898316709016098266805898144998727817255112865986929373499982019454536368528193551447741025756396178345781883087995701886117063359061339878078029176033642984650375398080791673014790129166633013786596350195366021989686493546737187919150692865756309114495527797301696036660841075427914197834552251878850565561451639966941567721520207399289703842794137741136938017048907833638293920222055254752558775069073224021606045377078561123597217380805669644507296185219910701814543396345265392455952441525424530595288034871335001162096495905335930283827869128683087183126403566000179520571211504687569838575312124536915768147717779240616133541029867830362310642530063416116087266726666308064186850449307704666764569726304363158898466923319598746590281642570011413760778997307874539432811067842213610024880182861884212535364342564371950699693950018830553453240237656781273611017951437349882131719791867697106250076643493537232191368730753125763082724246946555026378507195277629092160669213534653257646549548910897819499960245546050513387782786879339091493939827268094862798235233151172063797586960211123589283703508678345346615721979960090167588764635916858485890359166432338948263498387657871566454359836652158403527039014506980388040428004296864416351952989912549429735091871886467992246145284366611150654163624220118764718581755299911582299316537959833494156108868689365742026068890201494234818134194904089900430482241109507296822967491764147103074911994218771356202751941454206918249534293257862075947606191980738318653188627257589119947333176781209025206228293160874576856609631695732999530295788631003257475443401617145483528764903249301620766805706763424630552556809725152607035359117648444228062262409238994478912301688191443908294616331771167354295302993429755100263642514794947919316213920006038673780278033871599252164886981204493253547530608275992510168455150886707258576732645463711517744674921796981054510146328875828052024963821028300450661346617189018388497733892607396378546120641896718988029504536498630914145630735394161215009514953448388693568889435265031081070426528906455142944524116465481425621324316622297819718593480166441637565646314708348159341725370573061921196949231836164726145115562031057019323496689368496771578201834873160729461607298662127311892786327715713142019212541916164472583954368126273656179875270124989290239777942486700508641006158964169224864447133601157423355965598267643429159139930889104790546858537977183841673126073172628200547616935353044783316538332714746071941284684868716377242105530925441136026579321595311746906067331731153613439482583398248636347408661385090584502481283662167936700454904189287023012828898033110835659920347987631049947773930250686345516970024580331840874830442867031076965184605143317184359036616844294887265193399306143666897013147625286182094347452201956078974021635150308177257045999392277662973799962341868949764939218008817916063707494435433406675645337889497489712949425493273042206628031871659367181848449655394698951966485024507980533312113373884252914362454888501015367466850103024330308617511231176749200578692070071413597235302511449292879741136169452077240305093579642101752566288278191361687461725971069029467632005221312457761732770976405720052143900548218901106854486257675045492644353407756047562887887798329991205270238776423234735831095819422006834936281488666350901835817669338457793890958442317942946540441818261655422554926359755980041329150501943466268464414388556871670396408033906622618739947467905856937888702241202261232728822414235113472630971993842524192917079735885930980442885242416420716492732098090839483652094971265994983324055798235853395559583475100029344181688047950303022393227672434277847340068226698037678947309304523327413526353358589817029162010223357077897704231173264867633702521956206464075400650999008425191539940518201160339932873899989809089772541543969026692268575262913820343851484475674602709712637265559672984487637851875199029633676457335748095353144029406998040550565800905949256185692506233806057873993541270163394676590958788788500773277921361033337850238693014453130477316297878854129636885246242466040686920891600377300748555204514237222128338557243240699793718321263871887255564615288372970066313393691447494905729114885762138628729780551976106645252717126514618489206211415705783641264623372151411353626062847543691407180378520962094949909442673304346307864186793116048395064935887644003664067663825082742254974261123495854637914558418012509231671794749371025947580963737191959599001890073229878542890176049893449344288377002388633747536109892012448444233323085440739390421747975663445127606434408706771261790965955207668743194262733670267994726358427465601694809852441599887428086399721760960205826325162926603227565009476597826484159204477646878989675835464024671383441592891401869085347233298449666579860855982199102229000361648651009245646623705375628279782128623857842600253938370716273374249675610799236023358924137888025895464520798339063235120284958913597449991218126919165485032726900913127385043425511485928030019713038252850361311573128782690241635054213654310467893021235216502727225925506253633352982564944941255841024530052427289238974529187370058778301896950786844628444006844999909218301081114346045194998833013082513568009383138515063690905376459828224323370677712673035097605170671400206817419547151565219652554946526730607984721420045216641585441680717974701193509709316236975469990795728200969611288735884170491349643602134260270881193432242511283218586324502626477869638000891886845538743819961191246300850367258598979594692007926771741611187206017927330872729860402020492701013477278233887170171720791677194293290960123921033197970610763741344078416071980684262916750287771484274806929168625560323732381769032066469704765583454337991737832148393068684665536948379711075915176851519304443157994436638252344155789545724405457704621495880598233020581600665798032013909430046428556405559494574772482217381150558660821231853927813734792010832929565077871046197777130987419309401052462738423399546634912841366831998965633040542353293010585161120946715358881729878530687525212711463284638182424385237085494790676826079185250472179400927159544171553263581327071455589519637259055774949440066953310407292691064328401595649222287148927988591989933353083398800071100000047776607412456172360150461273115569364361909106328249947726162804089610667159861178567156898280297127784312424471708962564825168225271240598729518959533858729258953321452466870626588399398163645138220083951050771312446943905676501144214986418751021594578221757035663902881278309957410425351472978794366882610140976523369614784603318049680100596754291135485654282313959376359604554180475552453062502734015692656684278244036024167632529315678120373322218529251246268842243632268124186533980303424963441249906213247805495689679894899702127341047773687109278160843031252356694317183206156681653382367101036429176281007095497454013462529381426528667805286061065465847267042600070499862502288319695010992224445559174252897024214160123320538487789136513594665217784102295435450011195222399825539185163832101740545083510326858511048083004295038629526091994437203827721011365948595802644212779704760229119857409749106413897267683363162115706092417691330257537936901421678545036789072676121978020808788843191520578109575256485364745093059184942304438112499084319429149697493525215365862654074595758754718984599649196988589037698358614206280633485504864984074899004691439423128829433198535878217687989827792639767435693908878587925413976258705931121916138540693190641215047206117908227955871467677071561769077587816351845463545296457637990333641534820928233516585283019785717821516754784635939298102765962731028187175535993877181855323370333143338492091582829798480923329016024910735916325459968433933377714653770303992314727553857497569003819427811435962183465782070380127208531486141182574317331452948920408442031237196030300705693992068989186119497814298312318097594471188567298011796450799325507409577000600178948622716865852928104933743720901164110975874455545506054305952960457787843633002300955942272268435383263051989855621977993431802633387583584323991049766834765554542590587010202354209183899027373270963056922684664532476885319280690770833854606992443990582495272237250321766595710117261171945772137180779797558936747452936960482539320918637734929530054642351874837822246430014028735256941526186266774781192484169973704752451221405844121172661459896741059004841764702761656910636484687304200973237708932004802715950278168246343230396521337716898028063045566714668829684526217631237602279745859969227703269106433609004015970559350181006962860886180089962159618640374946661095296432093747550745248590711860476967578281399707269147530829633236758235192754244085682441562367729502879597140617149094617817065153752889664659328447072190696224486228876669125680625519236289658342540820711879509864789542698321565344869564370242693998066957213895591429478326541400455623747034955037232477485597203657359222859770693432102272074112714126773222030795362388508022175793423089865628274411165087691056569004943424307434558784377406383329054750697941575210751633093510682243991722775291145891639450294639772480690671459615211722681788395867945557421919390486792999153106714437097677109519102335040222411907619844502351308132088008546621716420047265759506753528195588242044750325348212937760125626200836763121243963010826819697960873930501633500353256648997653092776481046149498192352737961005786819979407176697599213149414436098352179840572387290093482094050062169585109395538999057999126014347369744742866576600737736446742568099185153867171974587685972759304870023672831409110383282811195843449723068551127708177204601380277856283693494009509625983272071398238666198586379312307169409620763082705467995535958799941141386440370817131757487470178782737411063501185648918338420665371544456309898581603291477896946854328205506087552176699720861924813832809452600054544360797974675690692678395634325055603583282952699433428775497751749472053412244459545725824252544782844101003814981648832521897516243010751036027226559228889842817016574331984265451201435056392162082262803145211624256408775429116952271490908474280423033567755497493380310934233433932157064780265419247751566654368416546090288848115931065638239344410132032597650140813138311083757740540104652834915536622193142125524604485704087620579100735047135311650191389663648797654075482620748347162131778605780971722853330567781774255750839092854456963054904951985306319150728443826553201625153239137777107937546085283618674144127680969341055084679044557381888387636807722727513208525517581879380789272010165599140764875360263333835182901389364395713797600634321761473615982878699863673270099565154277175858144403258926019700097530515206781113342164018738807672756741260332811205065482456451491842404383992579614741829470821464017564098212975322180402672114632304445842740837664741665166429636242662748331927860880903737578013861116571669646258829553829599213037760657182437549879306095560915307373724740748922346501920950852397637446011524215229064034782361951261879508414338628373825012174406506284700850572212458697698472213730389441836525682681943621733740800050029141663932714690299666798588670520172062616469072674251370002964649316478027563712085827129235355360109908465008071225190899859814060460390881632338279770235094231655100932309593043405079010199617548725728868560659760921802791589929073121223391057508117597379022085176620358192940804812908160563571812920138651104127657355485675859432495134878670281170602468125365562751258501376894114932204995948241528183640774528082409214361002830857431105399802231479967645911716033791509529291972192331085583812075327177524423740858779612430656247151521323595423472219884993255897281375932091177392792445226304432276348326356238912039777289202387850730465535273063244701093599472502232671922005080249185042453582485166983943618453588569971466756686291679966598640349966969169871124834573712850171498703747106878504527730180917663279363005720569650815938000089188446477915161114798215434780595198518342590362024723347510029071646049603559261925306208911954146071780680228582031986349377157277129553312633824164331283836998243269778692353881412248293441472638001754015441269056007237138886060846857241888303521461373944006555003630479499592944912426448797726735823447483453716034315587656922092588340147742846625516525703980623707859188772796953744318717832222264309673808207205893534142775433792663300882787501588699893011706565980788200405891034885183116794470178485194232156638058315218756706490279361925318005643843349465466227436128382747209620457592045838722654062874265917448823574626760850760785411828036420355622253851296488928533004997401196014859807231756738698724937379095731672305758335110960946196753757169848369382311452903198340593622551137860788370804558597959161123005063472431011575963450286433687673622701755621491628391831825202450894306950550123541980880215682769244351611277699672009016276572464743059902799569377367054631138076689771880756567252710234568217036545242084711321595650784829238903038559718187685994476492102938531604705105866238420918540047367357041482620666612571277927290291987752376718542565644958660789446341737836828333745810999048756248800933089658804914310949789291432364158992043183980253783877013180167042119121757794286497654416076589919914650478499856192740708828032440458025075291362614649216096496155519433297217397079286892150783112417294521285289234874036031244158449646828141935744403784603222596700375903282358146143569115440675183057281173068009702520641553697212763893384007409145472214137765079873827807760476663650665539460363968002761283115286999948363482455737010201874429310341353782238595673708164822069970221906614435981479231714986167052989131389565660778381433267040939979600502979458023535419060405208424048332914712446718862760467742029962454805262840471526111075288573072421439757423852598177941732206714993448478436757019511417232729808490173926953380203944722428218478161123957204615125067663697116104989429223173645344958612847876488599910047862089156901709759744818846545318534230540815877843964631042130077807236189503096155026805913368473950472618446875233904562351277815004076492796740355745525086957139077695459360218768358898466949464992254904170916622482144659965111321297953505899183078639763207006314738809558704542523760185684851457083724450036400451514919219618793653869817534198067945973222470219336114083321203265639016697834750994988444081420069999321121203895518814663841297326888141835760665690222651612390866743642182977457276705468942795342515596700186520997035827670353936100838859421997382843896788208581385017120800219623034650108814806882366498692450934042766883167195797932496266589341179378473449423905786497683286728690846396962305796774905026056697262278757018082838627174901580203647957448023830724727365885542909079613255825175297397324417558085955315591913480914863364117817002610877604165854567138022315785014050458978531069034093701248737200109874426027847483042972162567511157109772942484962015593127303517169644084791711701164236639483111808036470539724407662505927820740632097452874444765038895671632123099938600418654721811721527328965912375830999387030682932590000789005163501905862483817629646813195565069390588090296027436990393265757635846523098596972825248431420639138210394339568840359226675717855725429106604376501864151718212336783506923534176837931339576502101553512363360865997907347462980139950213508570093394075750440012831724844682737988783099617265797325350714638197985865272250400567139416948603619410032512262554379368285909227185430371687225519257278504920615772527954067003432889805987565600552981619767351889038892945227355775338956284385974993018211999333631354572114152102627020452138314535933795838224025443791808460153345073714219516216289212074571454044695610372625743612493805901102608904846457242770614091423579222987749766803547520859024257326089552189737078908219887104190656795819092605726528470065004213775514011196644815462720113144415348157213951221779048788019071441000018656053529016753085039758150700671591844311249643497898389829377728806864299762357794917201834749686618933498108037027968363179877607934308380932073830507297795817665501882768245478902357488127643256469808011938198760663424052533354971494143262787969829787185078299041261507307870898086707333983319961933034942334535929835529007844922911039259257664638339567356895417031949836813609410555933292452473678119416392400227498949589002963726133504910568598054882060111649606024814381426800836627343995955062537683597967327525683494841714256118279948789978019051029235554065655501815110551931891224222363129551095239516757569298681887748450731564203833803371023735338775758051921825400158231885772917989775437044062717245399325768465018525959999478673931703869298525899941841104015223912673719340807417461296534431308500031122932214473467135913357162008440039814928508610174511944265519415536087465193003889648111760579620547846986543576666619733018161565141099705437174354022067221105918099084024289008503914988448324958138084815183532969750522069327626136870320281689735220117116090287602959494162651787444773091118563885855998653728196221178941928861745808703329610233722997512576218944763963922392063744354461365951195737318683149963783781597065754868225670125028840880439016887865996563889319660794281037944329241576887348290787827179174704298798281629510754798041974161782103582189610989201601248622572636096119275517801603026381660027041507263957993179326923827988157419805755231902885903363214297956205122375884922255150993186512135594687925161848108703715278203733354893179467039861276331677007131024883593674007645096911649032602384923663779277469455155726506807205750861461522244213123280731027244608983046875831885762644293254751787717027269147682343113140970374149622937320741644208738260350949623329966004033913959809949154779845539969764468689418591304307554551771604447139528482746757653825841808554074511993318387765921839873946225964577531214446486722422587172361908282391137969328114850519057605907731098686189001281450146341206032590351223290574944749907444004945532279698626881787951569220712968327462096949065619974796312090566515749300669528162788484064998530699505269010603563059683480938946051111797431036084152420115538717727478257487136657774194793935471924290375739467235753543298698384377440959736798835203468887432974560911308014772065575820495091530693776834422073083039491681975103480088431030929076430893010684523833134299236250406813512657067616030175412304593879251522665774325291140082099481044793068201282679528260727854599961781801461590718177999596850558323849785500660784998327834264817779298087238061976532462014632280938701463082199446410823424487140612664865195094820680529366569983489785273092125569735200563004314297861872173260102763001471030859518684878094759681243873586437999086971331767794191596445247672772503455359896541731475076649090509755105730764206049294337562856472536811290205036231166565322292904215509245836517927171463821758184888168128861299374819695438228561615016682715068502814120700479269237543559391957746940260114531588044287769244944835498741984364674135484972020476910494782894430101678375581968306115705597970639633148103708011954907799232916406728655028592775058715731000145889729070938723655994015604006675535834194885338523007797371282715877525204015915328398253071166805192587298226180465428764148387560064070681306406691860109356541069737251415400525982701085804626161816345344339862004032125800978716423733402204847058074857790362247009492090564273845010464875557297846140769387015975609288866063224715051767640651334981353940170174988761623194298908180280052314921108449643823144497208733811019928408400310331801715539850988433632749281048539098779704746265481366634936694906607942156050096795739571824190142818002955216342856750497701245853596526858358400568485804501777227775267671258491810552000150496789549449123012711701099892996395947174275112095093409857567650582920081565242255065757121839811576747785934820875350368290866091945517967280277013342625087223127482405933080932779724933963980054242664480662519231127638473393970319658105550167359360234869061103866101630049963091690954067212069544310037818389692768551798957472215186272500065310390304086335993172951523616997004286995401471979080030445343775539704098375337126228884218811919094271623689227387452426139631983585228896323291109135801616982071045388673274749125155977179086760206618739054808257402170778144946664912730746285289147177666651227018861905248955810332338959739441407700711666248690911670941428707399837401289153729987509058105339328962443131763773906873462650750442309954788917407095228384304094584749607613916040952028868984526798444178040556289661015551253443870826908199219294943034836531832241635967483271433246361782540729126419396843847028434118295117070599789687549126623741830154178574683668045760855577411583348952725200221072004762665216855238873471836965795266153987106263391196962211592571885934478130404402906648559391143180497354615277074490280180917005395842844914321956591190899500626549722866284193441655331557017551670788004959445059162343786198038137534986864657032498359189073350634617440328486671248903294621986744383425159487894879379887303075771531465879976584281447906259498199565659926609920302205289216140043363167334464611278491090485896539230104460726399464876451381013552752801345326838655313500354201187927736973320817592091207800221223375966248032707421279914481654689468958090224276849772266646137816982518567676169773937697800395017821860188130885299863914179637381237812782061296119840248850115713602464137813078978120961305789647676483814995060335781268091592050045122063759585078851280172506269193654075857977046027373564147393804845368685939863080231489908571143745661957201410492233900633829738703978871477666327400573305770557398134632153340973253531775575192997548141488059368649512745268650393172964834282856555457849389493283811596088124442498448524205130836037630042007984034061886685460982498650153418849054036313454502952241733218482021904806318664081616260378272206978656466025004236543351089260443264744328388928402866826345545289986514144168638955480326390898897082786956563814797632829728107913400860895334576936249330832944167036897793183327899012303808923611997664225683163057388527494553430391130788852006514820776416010291222697027341363713632762472550482647469819005026647545421982706567128743267699178907901555796597583638395345498540441632648816396103777355859910378537442095294121535986530642428140176094578689728221183583192333066749588433012332781446629001043807684469979767991633620271003834777231611295762594016738606336641192385859190096172613406604285208888469528797978089879441651619570551179235802410097843137565638051018003225915464818553788241901834009587114400254541582501552792727352543797055233323946628307263519258369424289348192124521223932373587341022504338730033681606124522530793313321571920261620830389908380751717965387787585850458282449096540096873575825539056412350914984267025236520367640059570471732687843037039378386195245180958325102079374858843657911201472979593943762573585074062706207409728948142301981226976598072046813498396186608799943883403272516335617585187650336196273916419165354658750894514823589634686705615841761041969170053695932139897549255513099884089544065642164961242395825521197269356518547785066017628770709012706157039708042922985653583178522160989937405618510593512900358544240220607121324688277508146464937201949742532401062825272054351297669179108141672695511158978513502292020370330826758154763003154428505856306344580795870426163960040778658521739627378426802305519588925332865543616857792440574055690253438006356874509879446469296363754785369141209337739022376160480410135238713676206321270558296957593112427752567171310035231317164393134726960961777274729220426526531710379000614998566643958896403675044120692135561450753415572846484376558448621764361749477175604441501365555359971683745947793017275871423471898064011838588332393138433868682054318030535950556663894446990521515330999771797495438488328015340510450118413034733077884077660167348588995086030938336205727487799299119001671273927050045073349801683102998723963438747389134914840723894535929192758625086604236138985025677749200683392494585278504546787233560580157292587656675776263811072663805900009069673067908368109660024061656530451637479131220443081874072207574637611034015592975189296017036316724484448386487743917990233227917380406563006344106757742447713943091607497567188249299529758481518804309283948114437638279788510388613716458809638662421733430859152671055972433543750011382764301819913244137085890099654822431616861539120241216732861923657895757559008658470331913535648076466344620157725945969402014289271913872312628679935227532437050835606245364560630184980344857208044020926639436563787466257766274224360248070249013485782565063160155725624300501941225534631595884507097374558028613757888738466658715932086644799683657983006077591866034899752233820334402152873296910583132146436808631942161307554986873300724528000465371067091438798836198121827398269234515648265100261654308948983662563956846803890348362715479295055761918131708658726859580645706406524205747242681063158342380102222590377436755783043457874609897586979560604161146356179482209315555500160777807019440815161594803128466890090837723580833503452350164028788911341618227791803148103628406140226023339797114409300720022255732737432420434692623981818905857533523637847486602552486156942483438202823036577846337003871693358191503201421364169812016508980403267454591496390513102546761250821439866592254784926123412314305899425326537542249025217470788554132689100642137866854813341777410428223877456660412966959555579463525050512313340808240614689615761156136095221188542306111004863046161221796086496944633174785053462025266636316919712047829881449063951442349646018980220894179604339255268054675119944974324766157765799131038911859496327185905084304861201153161308668905369651692942384266921245465007662733086413236198415574009805104419430310769405425794465913602046393224221032842001873661114101712335045460054713190725612482724114296550083489166801393023620004780836662770546993370952744632777823639950796834742430444748207738562306069913485659935476796600409415995457019305848677323845688929743345422635277182482959661506824283059339181593465321310239444922659683563913992993257072727334945035927174105884887605773457889418603881487721881721256251322809124702199239313581427864304032702331125718769766840778493382979733597551254092154033826391498922056349999311178829496753701117604132630650949775064599280648835173828479705479423613959544911772638072064792100330057396993226473277665746662332527120898722017597196113588234573072183343409049456349497812669334712867230388941552462654921987466558663583350182473955494473406418401319120217660236197395230212369778874046299087508512052354125859761231512833252247776197335366124579721869641554790553261763890545589295051320534299407549925561303358108051327659757214957741333448654807152904674842846860483687205614001743213847105716462366886709840254164324118784396442187315711124264068150888630413227535454211987574771670602805300677379627426414148247195087250522659565467551752187467320513759771915199405219649040913598977702192601588264143789411868585954345386211323436478039968258042477454248289917927734795733284729235609532818562859775794577662682924708814897458324089284471924398630585658269788156061401598645897201167251731574508833789710544652556489186457453928836642030240337297260863346747232520182891959721270421136314794131691415302512830976663747208488438153423819311344691884927012405196666680562871942689088233328127250055633441667347105456694283681526670111615819369706106748890571153575649110664201570721606253698790819535496334292855003839584080730878335435720864824372530884943929854101445105958993530516087918443576285243900497740207448474083116557849925036535780834125530624759289828503841221338592039425948873431025773469969739147786677447900155714769690385676527171457837287729979159325019219945846535038686281520232963180299250660935930363801917670366674747507150080771442183559140599379543942574832981088150713526638918017893698949139988031057279918075897346629731338327091134314546862414763965684421650489444172497789936810584367255700565849679333483687892701516457649109596486593589775781420845400492198594921212202131299607792238209697726857129506448220563015237484209587033218751904173174217640514208491069793200924708202507985377515901939046049905425167182410088260933171133601608936414212504989815084961114974621643416845762435663716341797965188642199752737222408614061076870144006283860048928373086894890986921841570072416989379724785863527743125069704436826142022968489174857837034749646745619703132339703282618466834523163849674507591832158458949232702817810977066712349005357896253640586797967964649720505289047172222002274865028854272403748124279823911979948015001952486991085112708455101671663394514351703149184504936801457520988714929081702066209192396881592434153101156660432463024143379340092049096838018771347602267658945015345744677444013804966003718944875523285291304455175872486673236708443672247821058127817035072896505769479447567272452981525547926724687615304738146002218549691963263578383908337966933766486409684621372864203178898308740638224436045135554019682135669280064473264168586210341161583081557944299285301330839732516149703945167358785179411466516707696885856050319524348517680306418393344974706048009544890611863610416848980516905882639405930051261224342908446564224810164540218641275376019388414321564394672243452213187590869600305654717432382763618381815769206570586683074999498415409696843539595449194739602968782917105252910436475508071218309262192560117575250560866490694772303920953337780687266796766392011973217659387844023931897765358369296855434481003280346597593885153808193557855577363908052412186696065162957007007663970059376767231268583218486905192810063108638471971542508633311414819499626489292531730181414059875582927216069189404515100356671458535531649799377730914127872724501186917576264075347636536139745854701022795403205709228194465487403566058987783792225998986427134806859701618946169370660398494330319171651102873327239415850951673552040989296841194487426770316752776247400148975960491475666418988328801037779773585645783724599092412100312040054444353678392936480199751631428201030964399519399496476419866971716605520335382162123850478657108597888297124009197879191211621249169714669809381986193623830826335564327660755512950437015747026819525185608810131509788120287321252901861233933470236977367239230949336767863420507554759326252364635514816370391202586705477273787092589480916581842535291283918789515133365557476683099474738357453865240186350215321183201292754111349545299176839130056981396497387618144221849036581778848469166880776635601483136022383592367060048043640272478629346659664563274580030890770141655924977215908574073519490054811456168490358254468462151203768929328321819430480616595812909518619439298784860452373884173089144043281448706656100095463663575439665790092480871660273100247478804875798249873999234784875410390930666663423384124565575241049976220815676581992932030915071683386068853489863678819751413866187096573934095944452260292020077638185747238055785549687416805179841228993236387717534328237974122941961719917170498885118764483303160095363950881463249871176863927713673218454702627246382816237968927865270200222975973739048359031114226685034224446481607455391192823734561665076070494256551202318570330130618310319281081685171878209489274697529801229283253936621434296781194734384795762491642326875088460656035681222061805033428146025787691848729086662400969302026512148326818133697048800256458251774147183236163907436501655062667577771629488508836352560060494612139494302181609013243217734117515757957259346534255360613421890050075129379453026230989072961735059698933548990661561379857444277147747399065572303078987050953704358085692855334733452803817917147121070795165476410173299815789352024835289750552103268507424783730713437276751288153099963489871138620872396652849307273506215339408044066575654256666789363291518206969616743732102280989247064683202332143963832326166661064857406490412228514355886188308924997144921193361786159889501849648822020533847825124200614729600195033341076540233289932162302862175555090639337065943771063287901265763870680455276648111067436394456024053178293799184225078204517428037932548284907850770676470528548544324924648914814604563870847626884922247231238818065730237774214226633468148716194282152610075151783410541684968033807594998136929935189757117703211332566262670560135802604704108836977218951506223329583249993152163999581040056467283600452927244745226736262232495300619625202750914811287090402745925553281129930736862555794312136352094493387880223749920002733934919364426314478758626365391102725995919433128582827912941685410875083364472193645495027534277706003746481095347325037104640073995977026910375072195619092118148300094229585731784969623972570079704478116604983514086077769245554299953661891745265951547300582967646571113056745841765256840311915417966366373102529557720561305631219645757460662368725907324958537850539903557570086207871289515068483421199280999170197647613292974242143142422891009416623515137952231785796293186804981132324069535298379221193189152570684135622967479284283864604657351296957334466852786470696336371386497208205707857886374645238097809814587526649271213117246179083090647164397608957977464898006781484109139179045931318219586717966011108590292064915065947338264057666526321920497857509369992041762893215441032058346872497513154317088975820392378606128888225506179383661710136258263558978092787487765589161011334146610063711468124449442029270788840216588686840422047400844500750008195490230989370969940315178805339289495834773206836025995537887008799904371286263930025611755125171139589762725480334130782835033847353229379013585643709380538674839825972603155807974599768896492151483992649617098542419670767459289971246859705046502130574253226162349326573657753534825672685865729422500199003715380129652438017465281427424801049741513940287235389915465798784480622435368654789723684553615705882870223374882860433520735540726175476280519901608293418450907966318975230903933109496631015878176622003087709403078460163273139341348544715739421691296321211212790193785108149266658694244796317398848912518840753597840738104982971520506545467520789096692516182885106511081078498315920272419960060759877103406604074598706764191479841597849613077856326421838115131989937543689604949988304338495077180191026462946399665903165882045250627562504964875979315011418001931968978642765370289428551785468352419328598471547929397909857637035095025010017000991751608488538522488384901641801071788904512476410583587893307008221063692802428422920810976620319359810565020814885937225209591290617814013036997010316453212529395445250431232180994919287805423073011082394745533945199919285458777637508627621978807751951727114828789993646637271815039232327894274355052675835744345366712817645605038838761412459585682871766733246861332259380787679430300424875802743153036755495034505480504777869085381681617059938240369899515948490407175772552405367656766870490950752544017364907015825058023869247483379426180788506030366524748159859488473869177996242717572000750688802880774684552330511801021857399154428025524305014764170569884830554792990192930958834320224833963147574206190106405348141476519889260743307028638892655119347286269535555996259252047463525191011382495288753053391144652440122025931637377232287597916789134990308335947292318648596807857153907229786829537748826938125867023337002335129168276018536970091965463916226092915108251505048677714776855737940932356931762094050866022206579077745061313900731258823341528953210180000251881846493919939661208863696818877527692852318004334070650229819725106544838704131486272705960688335716762310105277074207889369912764359080257998318947650739868009011988758816059538285264283327891700107674440539659727807874833542266222796407238676505142528248422635977088912743099585845368650393288873546114896484608950316716145471936952255838983230480157854856751667652034641035419413507719009509147824402572033780702686952914028477215273393333169741599682639112966313294647869680042386460648599161718475626560002799272928148626745439322745884626025232122086502774954626955658812680789907071066701985218514349099366943269560993773707932524024584616816489653836773008943994306652842782193970493413348387694073796125627489065443918243926155114004347687294179732762213687111120427270563861281993079023985031092938527112023220414336890808544808301853132102858438597846288118961925048485829882792102633018434803708481010226298263472982115714612572140478357857212822095216190690950728622193588048471147618205214223374803692895164839675699671044506197642296231519273820255886209368981355585528432218401076624662023911811935304651664250199888244943756132189464465823140895252687435673528673560650339748969027866885471553116591239640674982586938295129066675051056851595808634906962588921699376028188263572665533356949719771881453621633542522370125524269880411669493871494471216157983212480595045320134268096346345544021181066777434633450919499058161991493997768634032882001179026556671909930124363741487105371231493542002309707673912317241188477814895564978887415713959299029355155018840533294626649459057402992000663674140445188427320126563580966281231149880248097265665306315692109848657658151773481230985115754644299098406403401120443849799664748169765286998787669535015597632906550195732921095199267674761000569459263391498197003811339343736086157339657240319773636783655109883060149721203001742331046976789121212818180233183643938565222377143985030758488890290288554342303005364699415062518917334096194703172069212153840554100308815991486483193594191097314890962832566880212874850209090490973630654821021395010638117220649771599845505101307554403973195663975592650868968071225132494174296440791500797076628073565654945288934323273674735556374043915719812894144549234073629566310574632916567587095865560505439147278478910946466818787741421530353921121387307548880564009416376504154678756012853695158742398941315123390024972089485415290640290672427882650780194167797351420218707238498524649731327182758926087004074746487527705409722864888219713489902492204407170991561403822160275809677671279829456598905166233528308487865528500857793163240720164961692599006094612071764555822845810780139730528478665517327734002897629271761689454866841407097706613775640915863380719092400499945434416692077138384769873517562027677194046161625604458224280746967899348457116174016224279085948880952465075425961766077086647204976377305307252453058369410472201567658797231715518270322103812840156814009438763120681800100998534678897334851095950293065946928151037430948619321941716328905165868879344629206246134645285239028912515389978209028839757382889573151140356382981534557870299581058865965028108718723861251335119632664568604665585350605000780197750816736230393208052398218967839132306788528160472978894349517654350347165709865650131018132110581230260196170556548077885037057592747538686054524004785793674523890533337150482114122783272978753814417141668453195890933348014922683982803666517198870664692685156117566223581662496790304234564462252355191705681787084435250587161826157750872607331104120849634272680611940004399260760468119034871831503712913240693212163082323705525032192560241534426596103277804462933519010457502950069287099675342956488559705777929471192783081866752152300387469504328415352520869010020273722113468912876531936274429706872045235201169044621673838328431385701315188557792522291783732191879056133269676956064681775461021889658983373898243407968620950724028035890331309768388491393795736497179342678542256383975666877012338701382830031126798984376200170114886413725970790834931923844892508584849437295919503127703694789607884401476188830718760736991022624157186313095575618137599307895720184731534477360231030537429095447645271044191475637827592917880710970250502444650142863079303821693597097183247668063112510787008746431958772654484515089849071135058551597689277429747875619322279852135234219272173721952296523294111656453504744954356680068305497617331096196133973441261567556589015750303058046673490241642077776560612979499794364809195443893170931994288173051031799921128144657918962201558948443170984761363383506669741928245269112974175940087252971203085580878216545939412166745169739883748498100485894122195763303362984899870307499934252543784812522849614707619169377896578395729566108308776211633053568082552288987189337976610096206958202243627517463826680383956828443830321911497641050325731768083132201917599841913983658319173297617273382493745788418363480125052644650087166260747360484026300977870371391931596129802798284089535443773998900197489777802299506523677744917211245029448785220936505603247911064305315623380299391462213164963897337974506121385857450522639262940766567119772190355510948451063401802088367795072964699512747730295819141944668738176233426575834333482642190524727409562329333705667970879288626556630478751605829351757498757940868513261052894080106337746415569616831364080888019887394094235251733155745349741002785750661200863583038251515832395355853460087915811308048693379263863675207349019671984382838587102835127376730133515597811253570739136701470010177076952776692126756227003477161936838531792865201783411918511871238919150291008533373388087330286172823869248365129447601493062411609754520383800771323918994910252457063454669575923648067743798114894806386323856548438405391933838856169385905805889550719807276625335618535961966671521034925018011309848377428295503209095047272770171210860492407471290368415261409149432648233477456142447624111856483253205594382212498954469909499599514768430714222196044510672297042949319492679818614482449115410573066065326980053828209707695310491850895334107588304406528719272407394801648079124096666793286882524335273184815359801858717628037237880861472766204253004684288659423854362502568600837365842227916521513923096307907456143168424673767488091881454714719127056502297519212826194371302033782389372143445505578251875373782283670381757680034822884608201231639735611505652320117096660016767955023444442051404186848401565948602756978969728443008907072039551114015696889194912036495510021225602542974261880469485506154441609802636800868449646367623641845037046896777155881790245297308643072268751002261096512243497783764294879113862965900071319218322678281946629310708882801505708881312713295504109063974547550701788945757059819803479385115887622663861934325068634365959382764833773071390307488176370429611084211509153793081061108559120572906676276942273239274139024575916918057690302031487205465208585256784325269032056305430052688563651049104530698740726520626701346600401765458904845006169429830084260471333470686063039591888500094386413408456686856783257293165913575379414918689936953254552001455033961369549699780042740475174152776118624094500527860195746465499000233127613179302853191428940186126668798536258927168971716930903753346255769774185848740174949791034401549308985676350564884092805749516374065384744646188831412874890167714158223145348307675929715987810995086181042013159655783617308664283585133329321031522272206496836393120901437590667327807348197222466879565192737942644200856252150361862979724732493279861742795649537031494100181313016421666839069573700965188360817990577257105084667845143625166284435616711602194009464359455381841472956806592442206667369740407265696503843198194099328147638714745222523861433815671304857004158606946229312246561397604479528938861391167257924500870624507814943344108753422642395195298134636493866518216352471135166161794959279961425827858313133233173091873063357344736515935195297444164253046312529313242316189361664276489247198382640529147906066230829196014071277978670946568525345511760853559683229623503606745173608363324035589810168599607960945765072575435047091925290276637537610869857459710996791692113299644201756225353757280334175814900301684613318918510466512652624921029973993608014169522759965824110357251303932344123699978086061467192956570298749184917860695454503728794869709700528131697173386928219503129315573633404911475896928514936790034770033211553612126329551269459734289519126850155138768711992736166681395199415548969839572948434246941870629161093778426753950283566298989945059464967146779448082328327323077815191641113295233380011754115894395021318806927428299132626720114244459286766784340668053030591879450621447380611252385566247475200707188581283082677893117869922306266957509369256621944711245426405123212412436734839535119770887139406568113889320301628339413204210573505792088425801516004675986460123177903135363078183631520730661450593557182608097743163680653707280200782521709801932789814300548364066939383148714767763898534686638169971840875145040406843107832106070326851269884114520951260136345709702242409387218049594399947013304222343310247695725095664847075310109958799205212296223301059748568951400562864631988706572189774152456808030241288142492375595195389250332767198265134931074586255723058524055157573779221124620311127730581975484671812484757722752760956860343994503453748940012602106104409109452186197587455816257868143318377783100103065500416398482131176052348503111599329920391225155894518109622689523808299062169171789944344893457181565738149813934151420430254709155982664714494408005567262617616217060974683562465993220771984706070804161322147122767105360409549250560129799237976931172144500091611994646188984730412777992392810951712093695556384575950248214869910402467221420390360222924851987761095252919664571929967935492928405915488915310263708218377077112823874630611099110663407000243645351003604194486380532871340282184197447751423833909002641948312719040699284772042169194599953162275949960476338711740316240295143613123412891136342292042786483063779061271076104419678019778554762632563079106701336533452719983645691031269514493967494514569578530846349615533492624218822870480154177500381682944114312803075548958882780903267424542241976777479036461707519819007455676915703623983556140160511472574124836287589716564407292583626354683993833718966178166489592117270702975240190028844183456569218944410642134691263405610996192523799249181214593585794173003848545333213531523657127258818348932081001581120420594523104552973215984305117225417304805791833285588699474595719358671868991527808416006560997301402779438815299599778897230426900497166666681875054207179344167407257775246913272384132685939163351371791365584880718789777431406258943325639239522404544852969789788955306658878709340716846939223461971016452561519532315736530611269042786139829734233771578729182650914569076383665001955818029300376216755074964966003787630000987983612972678667670697463061657334145276129563870871735872931472864985321946968899264886222887015558062632732292414945120099117230413918494738870398655096820525915765728782167812820911454144633525012393183028520679602557649067021131708840935072239715214605816256106582698902343307326506961267673894256848157824949769010351825736632926798698113313392435594797762381715171681411265425787823296621915648782373376833629857051174687823925745185930488413401856545212824276112662262404748118120635735167709195621826275048449758944118166345748813187725291752124147673158473278769593543883255767725199017883031243014689269219570221203290690455810734352254663102349317618559833139857780385383807614028864495998478635506154314398567125597416552996452972967505174127384802315491096354056815656735237447534227501925748828359516077968452361339271185079564794017514618037866347930612615134446753250745226986635609518093961133472852964761050977919539049069177091086507296031643469972722423951178595523012738521024498396013780155112541904371340752922842824094085494169889660786871384499707442815123175712084537454461094784311891936201369840645092103906364968250469330472195562384805710654917018763208305199541102444462058653588047477923934906203129919741943141831069556593136576744305854729613859741719369692549832255168227956680321677418477783921539537956913727626612201089752827543978326549409369655902012277380642491484977081021899615432282178303612283431465614927955823607543981652260103571319320989118200089768770951604537488805087256962178434888823776013046865027788461883687975979990141796241712316854810766464056249325441058039072740944688517345162733731075015223912076548003560887546363770884653480235822351564527822156385911090968182458880970730507826218483582339575503308684226237570808433540218442305659829029759261956015197321364687606461517523095396884646535063944291410207451333834016830228419574135669757526201408387380832752432072201940573601554466011257602545925408398455502741587750616089254426028124704988782427501553078857324739851769073921951622241738953451884809149729123325607317660328615448929055574298402896348901575937059112925429650883271477849775696918663374883064550353613617271501094755752153293408343021707665133619239263421283253349051160716461343712982306695348028459616609866844545935660521230169058567509490831134556445069958973685058748199901342901116769082232752233933475186444874845692995641344842736270298840329032520348734732361641401123892231670838293315789200463934967453455498695313887771770250699422355119287881289970063985912816407633219597407334142197118783541206693628595028992471798414637203004566111436083834418489570219847944326153745496162420600363810737935202329182760316519068495282285216022891648905333682775093976562970818256649652760522023163180459956219097752855575880311421745119974560780992617440393288251262079206677359702867591001527682337345118253555398008411751966811462206365159951165838725380722277753115693597683573661268616027100364200431286535994701321469428739017887151880104617825845158964473127669455462582051931927883273967967675226041388760851763515633944925484743389143762210149060737500747541644965870784954395464063750512605272655411470547548705120008400034539720085512486732938907357890079372865766344374847403128965957532908314600867615304746474232071918722162551016550921924974718517189836153426968441674986467017761119888912895626491051638949968483720113983649218923094343220389213580082427444885991098887991502933703603846662232646342014806372200992112565974004566207590824592974376309017535578797223923127026022077479111269958337298453233000040912975850474970145269636784404862054269326869560937209635004445434300000496265309984281893953820158978455440219451104091663551728760968154507907752429708426891195669323863155638244132448333293829113847040062239762569421710478061221200486648207125926317598155563562835687823976604058960022334678451568093894271481335956445330028324927430386521972641320489025263570560178178225260696995331412726808585398851781112745965541020313171412569431388828121001933858435410840384836088706205385717423471563601993158467023823707560294396984763645245024333276898064560022001226413698805215491020976665936471800404801039921801962899480609696431858854727849601496019794377668420693333342554978852566234770647982770365171168156067424296029745965996428925100560098789378355011306236757679386260432614381937029152366973338101563341998396347392307729418742527777848677943062524521811853806698784845400407903229288700428424276879412840427945183818827499768853132989953227426442697121646912605217955763724860045037102484810018886279806865096378309478194269328703997879316046859368871245529602951558081002145750328051541192209472286758225763089151937124671719172442381611063638926519396698855084946841879958536298745293492072591604103854795120394436533591560839517882513971640720995457678186305649987458453183536580825334937683967292938368604368370456469037499604426719104062261276281833603310507924770469545520824615006828982047468291649933635399421829886852341196945680949806743115032527461315306705268529178795272984508969262731987389466659626260289690936317046456014685735377256559950911675783584025757809667597444581259214547885684035229570989104581119643656228979469551295441892820752476905244202575509716030302596726828362026404061607187654665907369203536672848004461278168640455476550127478286700666739887658456565501453837351784297866276378959982317513776428051480740768699867251381427319993698635119406406927256109743648996356036473383808695232387157159624909562051962764648959489648737261069603287809284255650718524851893002629672995048458672331621111284790599992622827346762946450466601298186464561217210837445247528020522898528594696821072288904398983287624748350906415660225944840470071902311332450895813825599415894612967171353202243936561217028252138305262604303454316376865061435800361520325992507265386652235078231823261193364008708866808919921146856432943630709599264980392160234057502937599753673043488796147292561317888314104983893274090477902745170687778697566018439386970640609491609146623075913032540239605381347079891409561327245625560385417360625969957629923437810750418513580532211875191870403027672069384099377776339029375395866471345509936045781267717853245693245458940624688502555822214095560352016611740849584515427017360390389748643471018637270682365712291726062017204142881198625637642498577699937328575307608103088154053102324967988705751716415333675845255642967662960756420652963401622221389792111047292227747307427720277354889815351808732197991965100969073672449201788706369571889163444575441997984894583460597014916558033093447105982700568756203177755262279446248371054767052948717205960516635578126698538602176824566017865809284415025975722435716424784287561244283420417376486742614820738656942117328936683074130855138674912525780272548559636362297781478924742840028810158198964972423751529940430650656711411391004812323275788836928685211212107803473996337430605827244225897080340906906720251593534114288513782634707141430258817779872625435885267959440213254291663841290085407885672724046837099976353751058937386517372043634653724528593893362276350968731840128394127555914698431158366872129387714164578538232631485762938888107070833949300887669266360686954160530464938522194568468850121476626002286454334286611378899832934549993029954931827023589054826704901760766661104790714712908782344337226769290969824086024610085751477570097774625229324889629060561981023320919603380448705988492534165354050491972901489611429012575355903478307044941479843464282644575580723725837738516858914034214530600202762669381090948885169795335515311849312244463076461599006581827629871162439620533559879054779318848764040206289655695089959836612646852436411036848960276471623241806116288784137558877680561617648554699142161473357906076177290386462269835482758515290980250054630001973788666289237718930948177233719909340459500640167256042873109244596143438296972034246175554469706905075434087006934085243099948489145388745853494984405867727219024469493988241368807970481261109530562993650744440290482069884399227483356635211955965928380626555678572942626415889032784005331225769691160516636397626583199812689392912356674133344166301218541139726201196023922062009161646915651736248252412381879262520395673832232527926777569502681698156856267750653915637656412266034835034149128975580456899891084695659099927975633378408421088051595669463307744393974322169004290513652394953618254942559568417571780917883288435460583891518881223673646423986249204748059961608614615829350339993901130407159770886712415895681903727626600209920337296776959258005633022307418854836642939617103416497086119669430491209670544133705798056365128122453788673855853783269538898008445187044744571151902479786134577689557487054155557220369825778536061959188219070020079591059389088716141241981305068653772670825886404078276211167191230830963345291167004021593255895502071287851404241274534991351176602607301993218158738315284639656632186285644954422324306254498277916211530221537043006794254343780316677094346199098685510848110110114775999948966333195509661501177000127598484670677585984750376028162041967837727633833764870883470735846507246075013828979150365105971570261938958336504954327173051096468318350480815493200926525668387565695710115197207182202984004732682563383481424439667796263878996095623346857951178489126984235625991847351259124227584773263587215837224368837044139085720331188656926100718704124866270435926751968138428899380882934759088829626648389587677594323440115662763569983167107434952451573615034422817890111174267419616583473045736814501506038109867824984955835057303978898944264989582892758109429457960629730424665619055221659732209923780211016012542899364013555288796130356590529919863909410573058539938582397761973429302217534403696950730312253536639378091763578752144315251872741563155058359914041125027705040105115796751617807737981087294567979043310751837401710035904046861266188827570663486229606135283449547240900372730472797645707982445056773602120675341011358714650135784001650314420508483304175996031813251320700669513304707406337668637059712270056645682412231038845935201164171916034288419738675976055186739878901475228368171411153267963353980800830002989632619373762386580459406996904411486439364075739276347026895926707969340523401393787965779734477434007865223022608424395137594746187830512122661251935751959400722161368031747230788257838422745295062036393847563812110764515412305455304819718216168804736226989508293278060632435113685724563618643520847404476937003534469035511845865297940639851703465385052803483384781180050484885868384490212273486227808512272535461000723650093869985832387400094545216221498746471824216655559374606964795246998941566355058176450457074271186804659750733105224250770547846244921062515904398914071085053555635498106335683490496839637206524243275632739285398911094913009283143883035943143676187976432155449953521328578901284428225554990790440303222628052524930681752723938903131439741641781530677282886331793254199236053366082278333544604365574283052772963229493371019175717007759083561744938648490431523085105901753410487823283259119786176079187018755708523102261708677234316852523445231675535841949227994586414968025483921057498706726095250288906021594069699016460100191853025932049364247898455807945055403208212427799184009300154297234173347042931759786413140354546574893716858017197680357945262512422108319187844282869751007417436338955884165315377709873135125508693386503265815309664921104658777963537249563886205278012319509699159567429985301003518147065387127733665000965531370413939455915794378797998535759797236112113994968293993353819040188748458660496090610220721618706074526428699910495820699551598004502263782532247935857929815461104812080194237223262281219282748589627728587497664202043518464441574106330221728905265418150319794181691023790495076794806410292686994212813108428709000205580895969478647725781888815450020443918201960372812514527986656843256404914442878946499583543490940058402624605766784376372417815098866005665577106126737887067390428087944056381266604096985871879916972598003277076519862500076492397098882869611499207693135892376834294161279033981917858914585619134998558654858600062403269873414933807872369469101912517745197456840100914225037227475801407149060908261322690070106092466108004936925438084700854774818543744703625054817788483484160247513668968162886104504879350219525520744968706047490883306104778739210341670875370261609106463702781987299821215913909184798903984570606066630565832462651896741810571098870357469834720748389172353456898648992608682717411408740254467604433775154298061778997384552043920136554636625697210631129710268995069055737741486087715504360299898567790864328734259575677111020841105561429712519840835380752753303438870421320746051887650958360011007684549986715345324725460994803580762756310210634301245557753333842665759148516736515624017680396029133106829636583444828745587784716001454270023878158947774560966347274966960363395690774136856050250964839294780099637466086314160394022150067675355539043308964615053682553537168258134448379726580254408306707531494293969253746350740439243928769037361903213508165412476290848207511404677624908247694297537016669150478501074805413784164715032570805076991117159994043358275537442701423333110462479251405212393235829104430818212217673237303454933805744437498513447111199747356021976602495724981205594531437434058837116900504805325732395227471563268946789306659829799828099883760532556666991551785084564197183157557630225590139706608056082742584531988951473426475259898103078669448747316010679321703421139315280978403692750282548607423777128543557467252535923789622822974219842590680088367739456970164248411390344159156219426883286763827031799376052078003312949049851262042000322118302072602214364530043946384006387799945969973475522116819719715899143712102305644095606295115766763618296736167723547989397928097977767298166295476097951326923641578826287399929097101219330876096900019981563756146593498449075977289318603323354666644512942177427254084989146843451453721430271747681970051092918673047980264530683276030695294210733171802062545232899944235384073530183276497391931237218849511816649558473585991217692631859810956922199841135943895038282750684801155477010011111949538158694958009269715356247615134766575430285105029168406245380497310531693456309410690255790987628083286017849200850158913495289219478181008036892474226137535856148080586279159353222844835801023084224259417405875614110493758523829225851149116319535777528935395543064332629306246953922233842302605166592976054616296474895480557439946456716474849817593438789864489509967427001903539843262450607614910255850361493141734989490359609271776211012956759651387337657796661892591743405637479944360141207849702814857914583752953989419544715055659381624712436963729507942067377699640153330417636363476610166262549739588888412450912513321276323456233771650454086152969532782783793888348391422604717078455245910048439716183345104495575858419780074835094706629673798891199352882868132396210230564852850558477305622537568592838460474813724133218199395862660846041226855797015135372035543939755457898662241423511753548594811603422650439367971498505597387203328483241162646115263548867632832447875837828772416094706066278518158990196965016497210282363900249232917431502035313572884928470183599655109947447327827268663440546097773805780225742504055633673042812055734789228473629031020987466006489537579182555775431433417496542687551940364362503294399270635524818479488223561454578948781030804100444140860752559218919078940361170826103174735670624642816400878998535963246103576359048193482979467119706234722773190141610108742561174352916209395634010628912180122647615388799945153296794608093729024887227404639954632232916653229079815455538889016774125468628353136615700243373368703453775910186391662476039827169436718748622188294405203288902554242607711554787373483943772064466929259668379804784989329198061162006262609844006754269412556428153744826042347797140493872570724783338647216910830970830205235164690674769639212757664807486943210991717814646474694772907163071568210276372965420302089147624628711124357476167647939323059687678626648577592353024786930047057098049024776320575855691513770367327711601545260354085738495189454976979733616072296686196300644150396354619146529475954151216661295593356576400197458025602570700841035620296058170227949145699358905585864529015899012813883291855046314801435391715452606935456560655060662819999888978808149443815244628544769848328568998744844079528709068837921550149070005182852732384482543631708502747399653694517193157644565799514760582573926304617804726967163636365227207426450843960101569842478920699812684053670319530709359697760967358702625410950947743650753849042341397431234399990737164910812988304820874426495141269482859886529816196182319220736255757731564212192038060168571466637553947130704239388857247528016145451799459929538604840292317752692968056737678842753192556180989951710714089481107505252985001986916082557166883618608923864836150667796103242686924865019055901935997285454125583130868475438997957538198876684536869082999012333111646209756444466676238112579903357194523286461824745042124389989872794589175015474433424734393478767416432953775101160697506559375913315065268382862607616772769783122077593757249160112571788818086131003175858540788614858801216238031790073089081881167654720449042756397502128835729504017023390098489049298468166221035970455856814891215024648924519878359711053388755714069241137516792649177042439791712369509899449793679271080332455018989944013661393696876620753613920974904799979490870581463460775367702781828596898835320549855267605712125814707532043409176114912881541735099209033459142268784119799995036986932545761161661013641181351197632104158377371350099016752468238070748140814713238591086597018930274970068009648811795790336471428912024143055937135094584023575640853105150644289534804646671632490998107841733319680115310554737931367905881811897026136722258159865177257085951739425321982649847284128877740764900533549843648306603914930730098787458718617295831928384842333063332923590775467421811395786968031999973903334028814150583560715055347183105314367258765077641935862302734533143538563122734183109768852604844061346867893074569639707803087754771002495066479251794270789922497075443299097974059098956981153987093029120759088218519920422038913793736469219063488411915797685092638058696438933261362265019782659604248044538384073371702855962525272220141843694845789278473939449291811200906934705318745421725718337666558022428302148694092399376994459798238805368956303165841581195002548862974540464164462404689737586700251609067216231679109296213996229068532182663734476109488510981484185843166558147015246476253875037305130773929745396294627897578485905819721759774484469255634020480124151016916128855290634575797854777656667112564810503781276158085783336118259266421129814030145481727715019946861157193339073583567050740333180864072060055690059247230402074094988968030067296421086120017437480403891069921378124551753211750071880014120875413108134921474666108544723428158097811775460376724724038298200616802412291684904256697062093187936772970801225238061882725143443400460893236218902075331655402401218637542600935314829650800552992221320431717766682377930118356377487416393074103592500412051251836516310040559782615881709615628851259150907412353277550068555332020215287908844545319710983577133702240525877771948783135297407031862582838726986890364650382161016753696889454251537826788510658089582887886722200790709271050985260902590331977365413254841226321497758797870594796704749777738530093660831254128493614551356997464384130229768739422352377808193545972663718083610999532962385729753918461102616610806342582869482380250477715447674158210262775715375917270755342156581508761367826080824132898414796127914561249271162728296005885290578118710430950380164325050599567371728628333777848031162433526975410072706198978128868685600604097333190242587258586540629360035411603963535756838584492242511263476516324052123862485464726648770573454239280081859783846860990768392400374694302521932413431394938602611014492157806507810344702757856123284020489041629579339526327512884831363947283679233141998482279644000852729634224385244704266665242113346594826816204088569174516813872583534249950721051280080473508173597801363919838369075982805862042084764600212677106394616461746334715414278907275832430953328599561355741695722017184188624114615619085891038709095500045207713910869883339585503251226917309445897374014833817513630111583763054216656413937213910038955733605210322918577855315050309202204034582488307423091035932120354248145758990060415156896654449963613830174606075694261273825996339389748371999891216777003510138945418479631228717873763344104935442622435071079025493683845295932281701057551108635988077321639967074688687236015652035979874760218202115729642430615137652958272028820533704222903127507428883559457991909936612930980966559182110058284451360638002810375224186967121552242642640625573838676048131366670343794872527950901843607332667684722783042197373457400046217429167920805602399834302923075026411961115923750270837700790559808502474532693516156316145311324366386839664465585676891601963097196461872329956292583658124066193592384250334996036531924335361945796014957927889213501730747785056799916682770868907054521503828517858222259143862327070606802463779780943372871199707525044133474887968478313028671546340107406221727783970550465216420563596252624174349413149244888190937234391886963193088573606049383889290621650073248815262301991612574102682298739118638120596123348263458953700911872368749021355785724741764634230364565249457097104734768862069057544526759758788413338524732327850569284132709849082404265862224722043886352699390898110554917113308537462233313999967179968827431539350848159363896528703940247737072686678635715630292875420647887557655319716590105505823172798778839632455532444160075832191126754526088898071011141947676526145961980603602447880689050356664493054516012733029531783943317637563494663374400234277574599214858261640637020321762980761097344094815078044693842194337017479269012380739382850418107054819185467265990411681540747163999431804604467790902996253062940163510858450199011906298383421180172250456402252005480309255507347091983301397156225280528192667872717507487984835289242760378176915571305417204626552089234704129708577005281767538727342506295873048785834259335789090570155197782068267303125237370977877912160041818412621158872140110723975301639889022715860753609994248415809312454145698624395076461192217164944578200216086248391878939620943731007230428473587923409153780267543072645946669159653819751230131976044645686375180523405219237652912139339756149262895349490913671571034059854579763042593236524596549013888774226143722317434428758790974197187032440497916961218494096239159663119704290345469635151530134846253338896880068233732804978256056433231812794080327675226548695072058302314297376345530480492270190305856886445821669972204860032960487174003229427387009193951400949888805956528726296130122212991990193637525821314038082015975975162560935866854946879445032769979946468418607268925674947470394348355176474166610695661899918774697450118638876484550775730797936814612325959522792758351868715862444212003092194419753153204412192800496215618798864573512782358021257848260429415433455144707164714212406898219219152355506259690777702406675756297978871286470198927623644209287192098949923505222460385935839152221525181113324244301092800097916271718540624921999661036795977607060598514946883984746073109691380915208541985339250501714855887509574605811474797022598372680307500861292090062622171929359962767327185648851947373397459941183195142972522872883515700697173445479749988425512083997525289787764144347449782543312227726533924863251114928883639194852357956777313078941612677841598187292818636935674752363572608549457442069352787239531201851578561156710842049019533485290874692289831815932424552240420368085787349112638394747164418806208498684813417763249592690811286437677009520959405390041706499655975089416568053435843517848118883913769490061147545343387085890056794158040625020469513370481173202881341130660681452543670377497246699503562363978929272393332377528157105666054346409017826136303817002556327190012766327320210535185636983917893906853310459637828410364788044103672693843487358222403803359426287623792855016601031789090541652859483376044210985797000845992613464099137006744278518749639847729779122472636508568175107804312986072468150519287428424894432510999070883825749965912541140264843878952421606561079672319055891253456758186463027345994750438969763562598079103116815392977990780600836305899325516349619385730440959411284629246203564425771680757007691351321430217045542036125675602498582371098654607559435951127044916723659381829993102289040608990528674979425438650639995467494325568523883360466458811362599025594081685896559212091837846395659448540993077559061378108980664312778314014497345020064599808682986984159135211180598610082835919293689018397226100466873483140496372611586292038312241790128624691056135127288941515828931172980928421904681775329093976818934865709493066715781369136156978129131366157377775248245488765561831725071968625573994344437357543813638198730630871902230793247985264602067849481112972942245465248746465080871741868452223355439831628998167816275738964075677551911396619681549496771609650543767966225119467521213160939767183570684678730756064962845322284064214525897904001894907206805843530752028361112674267874214523329491576615986631166597415482785798976906782932679796001043605909733626343804590148168577306443313238880908853148213783212698657401743581599388800674516298627303630405730594697049624766764374132578320056753867843816398040543773588592368452749105458851786192269350115770730478512022954225163475095580439878255273696935440646229415755802064615429294118988116734248082362023843968939442765253876032980605125324934361610415030892949888916323994401973487134325110541577172082840333412609152344845011800547441421078634004300595146630426281507092184829922089352121920368528180445789690004158262671647060302283302720671179376780347451402842495707958327916334935185249456578394560716600435466230237650269356297786459388470332642468691198513178102055541179070362272593279633136966061983120134951345874646227612204279828243056950220660459459764624649081146422289142739257319683613487862843664183727759479828591630896358755442837910581235817738100989824379936634347863843773323259147371652475781876025809890324417461773020153241185976286456583143437687480781798633145453445698078139412092480654094891393798026696240769060118780203071502941382626331431606777498072857290780312552421456731074865782282262134424143408082843749324877662130351873042022879134255472197422287963095695163147590061777893351301626045692289509730087500210810654379979131353197095408807287853077126754310863502269795123775342079909224229158088568544552232293278265704391392954708863741788207952383138813995962156728884440755410453738559579882955819478610175471908228126675610645046391588146664330543712746169481669046254149475362758779315824390082185914029773234938372047376258131830123333698347582617165134282982872326746415783474193677098575955797745916534532156999049181171495582325650088842276741802630131055631112565076310450846380082731269034646922892340663902789578273738789185675185701761508232036256971159048543197867240645877632716268196084315769957763812463188339541474065573283997605238906336222253335885967145864883711878009807870778880642985033526239243545197548899383438320273676834020347474303336371032668901569737015803638748059451216667218093852692096821610810207390264091406463295080079822472760122470852448571154298950904886736087769273338354890966454496693924130578092509857445611956993846871121548691281068518686749753117954457142054188633643262050053671002063133476405990504079779865819378365764420053902894135521556285518874048893768760808158540285932700412274085746020181813922591936509476387331890405776395711545436777795829743460941603459770801335887040925133411303369433931146100152029125828255701608568299170072861945999132948938540393198231863204156672911793501910906566947289601177020601928235873630427445043146800412473673091451894892891773244116597964951597645048245506822743210977784012225107720310649030725594876150177630978234010422980803690142138304340262424220920841502304210631837961574784953887640698098926736520275234820229697571928364619943987240234783818268161769961876726011450747620711878005932501274695366775370329224715988979410242509975446603254420153008255591924299176191540300432378824002122371198809535323510134319004766919991474300576974986047518737131634129059335692796796803613563215692749259270010294413057027685654918904194244564062683478325738788497724972138530038082017505262648100255645870576556264463507081403629665111462615045899605422826674160611588867235706130511421880513821149658823108023531787956527129529075818459523251470936786301873708143389764509353509119346994970571255603445779755654690067899727243472202535557503743260062236196416137065676382224120061844770606412125639454232434797156213899384458870758520979492055328659419970316627533082431349693397435197051180824422669769333090480853283163586024089715599465030629408572094537800070170369316516282824454713800491250254909899046917532199376721404385967959957949564007589922565806236172495251636822898595037620013282584693434078511512620164846190651253695991342699456707381091617765279971854016564801500168844698883687174783016333728028530117069620813065409336337733947535295946401723622473633201910874524176914846269733847553615270088501961096049501596457344231350119871416670813866101792622983643016378028447237495077021279035152174766518730769028323752122463374609530569425148431619960496893426690003298040196665282392546811154037032852692794574157684443038049547341141452858530009200128372133684524406139544364374915145941103708013151406046866695438252582267972623497163927157948377055139550588773561271289114345763885372603095543365364230818933487525302440047786905715016384146225323574629603900319273011955710816305667042962346929836896026804733999727079495776226807486604886199852271441013043773391523903429478058668859406239231798968803369091752909747113470850534673292980306598259229160321409154624922015506984961180863220061528049816643039454332857474597056252896569862010791506163458919967575387299503984908948430378220974475835251964900602112343918509026663455455849441410993395110057076785425918076422790113877810268310279663121996166826278690493954262089234402012718855609534692550683357255773211217011158266417644098323238659754842677676234618430396338004105428239515385991465327247888426602691783572062629999454980463870969665813008781159594860094359091111110945786626736884700427543376616132656824332724571140803156657523679661726150874364105044019020661220406262218100364237760250988174236844395485798496804233992915279014183888519684960596914998887670244653031087411117276467324344185600202078227688895235727598251612832792053028047627252152160502379486873992227600944103977241178943713357594755483166939842401073525958956211454616959507412370608683543225197303680588218004480536536696834486038598350149194129892764809672498824585589748417814603997910617348297942243171073362584133964800336708977565450492775744286617095034360067472622697998369472212559219911719587886976884710378582944582968438916411997109804676398513881639772833144518356927645151247163623031772506678110287072625717242786481406072575205712357272594901644779419936214833759938147669549383521204562671624793690253477762115720474627908152921851444269463031658595096819274134659353045140081003964511827532000973371808571614540906078951835848517152385749530181096943613783083811256906805304906156922389550883523686870286874408962454867637334294023300328829436128103230845230826738543921243721354390196019062321335177547434731771116161624045524716112528331673431215150637560733871648374725295133764675359470515232847457112321695099333581671591150805222738417189963012036645597404041854958452308246154637402398816593695457443618252478161707228959168987191988341828145459967017885626050840066573971117431988894109920694238044797466093427799260066413031599167587466496076223547848005116081109740162888950817653204495807568800655065769185745687307352008808617274972684488493049966963590804035622896431409871423984285806629192342311652428632563262863497033331932027887307836970505667849734687864503937800747948416819896553602843158396214625607603864229958919768517496013453653097396189999789419796054045887443437272825255917783670220315337722224905119555789718927260461153594223991147243737596480274657240411974776601250485037345525289194725499299683499501308563503407638092744734971928683990557791738626279748623958457394480842729920504796158793187527006597248302513601555720937731241243990172402992601581646750103180871753691408136840874533333302921891258078215615502831738329254637463008989718585720331024974128168646808448914069364548093407507194893896297110319266359879824086824008846768020327721423603453098094257212625671068978158158131065794477141933610033483250359622050464967228785854940331587805519535646048087765532862631791345233314791235812136299601627768535857721683990916542811457629799337410597342304725983737793025936313263187334533985786604046927590899458903954102169693031427921021130317871580944608202916340866442328088585857114548530604889201024435596551120052124879915145410301355302944048239781513920083958684062011979015078596572970111775005144005181520794338995927697436978739692311255408778822554665783022741188663447123745324828959436027321531244560336460658160613473605108453997919410944711878799593747408777485068604018138556884001638170541972008665717276984380256041593219935264817126640747072037793747116670066695015823003249925617885972845017445990918043469083893492795075158825386388581045785251305786411479762523039104991217964581771053942346514495012215374656410466954272285030927354366363768258898378151254367761355477359928863895222101746326638980871875476018388814117407954846599029877588964289357716108191804602643473309236193386248217705771923958673269803243597540718198082017186665509279408857255593993843940294570730911039547473903103490765498294411941469689405740624067175225467958184702840091701331187851682794575007704876044926676339047116522666452987648864213970965099815079170469507338977905204617258401392940205697447835289637496168085920397512619446817106507635763891156435221455042118023540196804297264131571725447952958715509717810050064375949551503202990335745701133543405458237631251225080738941082808017319025105756883301658925449974240823324229926737017605412149674122340406976436074009379705495561619202945656122506848643615114799285026281391726221351060832312811401997682355941477927203558089663078955044702187551303251321623535740692505533974377999486328721099057337754053115262441450874740256818630319768368537222007053879720648339989675896985354858082429789926986143453902737827182870907731606840959082726508179388123039266009091116666614685183824647257948761950186764901079980825642519333631630048826474807529242122222667978502867366923080418300182220136587665387151128369957837791581407103427654403259364085526800594160571640439346899330969810565074189316576067694424415182214170102392243007886438762069482455477873157478731666655140243704220775877140135927759476152754168187777529244506562133376177135103714143866346678790701823910057160076760141557524997542873700555057430448878301370889111430503379686526811003022462046702404175942811058303221485049957886549372567278098323883752014179224813146228020286097165450591741231536314153854013335262289125248113091428328714363120845307661463886878627372594140218613058613247433353381623841497372266233860559819724364085714291482802040926208064029707235072185790021119583956518401572889985821073392522142478854249418274234866993859063505205045305824018584802825009543174031406011545538222379220671519933459630043914844189307608836379028221721984992560221320867731559017308309093007650560447429975459727098903556311559250877398986163816395257348211936155787644536732184931466423592400202026060879765745260248318562859786374479471142902711826970221186762409560823693790740592723445208970809936161160102717333491821484064531556723171635416766844133213159052568839050266815865048329614103164902666757440667567037853309026972517555942963084525811987839753439492108900563270706927570790316310174393241081110640744254737554107829138357225439240168305830531636455563279801379768216140872972906211532848499554876060426327574492014670597237038552897573716684752313025524691664436783696325346450616425496442950513088935879538462887030843176744970656212363581413080160370256381785549678497128154630038342282887833127681306555608142112994957382340833186827070539158705328658389356019959643277827650044678839103753361617331838520955868255250877345735764055420131407407366382718755150377078016562647625106363985146460999452839628954230324061307745830050494597114730217926683356526965704279959637701507640038895869633570705424356123257878867081273730985467583293293479050325218744599565067405797255700552354799561283593992298804507264042807814374436371932958789545468626821892116037037986083294232288183735846388803301617730222736926356118037852402315590845893634299125546377255818874145516988635743732483345598374958451924505845822864178150319973389980625860899682679646814497995043953421903447166021387512158208402288275827733306846747057605495329814267554413964081649555138641504439489657415630889836283114782461279476843442074369375695249941608694931229708147260720542763144014721082756697934382349662778276632075396694659069458003398058851607602956122897337666870933518464726438500048221126375702017595933003922827892578250890809347301285264910022640851385945146142124219303953525982423830148612803468978418270475838935821456459497965857477105217966860749739319814126229982842787655186455253139415360629061183558403524114505344751824067988739721833191003863689254094785740270299184260508714023431318951759138703327154056427329444553190282944570346334481119610471839020350959725185564527238983592574835763961206535220437738499356215137873838150159471378679538368615319609135953260117622845028574442713941056865954151434870193333786231841168717631261895351403562279469727418921680579370244760677320143532685702897140629868123553536349007268304498999917608190846213209706388619496398846013962429332684824925088113557203023291946786243320177417614549845890839084642303720004290298718748322194591361752232529057158728223435415435794431257578224094467250025464932927574372554003858484197177658960384180184891001755618239219484731466934049586259036947788879163947422913321046829696882978533483202067882163107461161383653245422634769345260234978976699382727751514166613569149716304287304433756713629642905244354451696792079697325678551190438335844061822834996540418117852623242115923095424108224358755297442562446628963927083392366175263392791440000401734501069989605010050607417657373013156578295754213706204476209029065603575312462522928965904317548361171780527719274116360192500523942900166486623703013538645720775378534100576633637527691380249015034085190370779638999608550335495827784840934653595157890203393117079312678869417878791027869833352008075118009664666073231677513237061019350370555367115399037189100905292737334303370488466868560391026653275001785301496224521877714970337840599256772212448971268802632093370848618660833683854281726981216739402743426200576206504334745895505370608975597811161590804840951162451741862728430267138465726368253940796733626662705907386879990240457660681260939999302185099487477819921655523447707822573785359071615917617265672981105196753718044962951689225945899200938143444073910033029306536593319031293787889363179746278259751788389972465201291148513499024178036947095545955520929232328081895810206838041177862459092689979368268206579015049859308025932411272889963597781566532918865058217104988153905671294761814648297247010013468193908319530256552821558592674740060606945763817801845674149746453708530908313183906606669974649084661415722264795123758931707169101775518062380319369935097451731106005352174514822167533026529221090847287405017469353103588027687686631675034340468182466428844693448313520693128174492854045552428306995643419656249835350718595926566797385057857600318583492882344637894533474801901651071678406298223638532514076886095120680757691156172898115192536792410925636093606310872077580020347865966779063982565558170178474354297557140599070750908663592684985688314850705480152210570327026291327907069414445892739323746574487324449815787889935109060831126102726893301900262121661368490159990695009606775465218737127901939991242476647873227861168388282490162378677734319126581486611227527157232824452417199061526339436299693300403055666535441203227467509973659111505063484351573407791762063238258489557731048176291615127217246287856388623226204956259003247844169357215993290077068064680178572328319596468197339585297607045365499797026144640539626393568994359274379624376801132082428538857360427986973899563596089817246855717933683771913935498313316932193557433065367963048331012098736583093015104661347720041808390571666935142620242582200669661614245201149034759432537788788372943205496886877962385883823204305909721139769846925686775214036208391184319837723226372164820994918602726449730148583753162112662490926565254694280080803063134238137207737538250269676260806971603353873944588756565587596149190287875586092268148063627392369873742439234854600557036042271134983166698474531869930232397700027941481484713950904932209061842464457434522829763700724871295645858090120241564019162719186529700905277713204305246726977273010787911670809250476891672866204939591538730354010206855464208503229330658538303227607389729188970441923335735155525827518206474781537505388359383469016633866434531159439286167990519716355455542654690995230182616161340519302226543259972686611036639836650439760326240299433381109786887983055954454398345447873885444304909171788096349117372098048907461849116235041449873681246593526823484535261716201032062758899177917061627595422212283944013476810757818499812127963356968825003602006054917430233915779084443287620428395703772100823011428695914025807861982394205975626959919167887773863123702776219863879377650323854329172692041328462817272980157878176152634953319164249099805212169082117730000154071264219420878652752439185402954136962358780766079922931964155976450097334944549847592624938629588364427127536756094269607336054311651467604637391333225957053161898313186637314044277203995286421899498987116892350443380314711960677663427984156998202797901039109647820403088461903742871011393435014905962195641248152775706121833377708395029925208110818804230993540603225306334137217760386511137508057126583769082141710006130487948303930179155350597508602900068769200666844459684779113614876859179812945768461288225135854561959685020128960098891346851974109425845284061632168657735204435554505070431951464237474510676396301781719907814780053118864804943721103956736897045114192160172043816547531701333814343612931303142296293003957544923630381712921277670336677653197623416080381684125057979560699134683462595015614513454875725408492313599724603206864986491080193842022878421905529269933908987245509061663828281066083608906287065609089030321955357468164104075444410713284255462664255480401026369650866979938111517472309413653734745362742181191210780250311134230649398966280888222406280163620033910526193299871470044318882611415642457434457886980400558636454860295610473596035298515978137850928114797469778751804473316410632397175554501161383470318554806397758878688587128902250619269270872115799579646189873568991781721054409817890104134322469965620197654160079414543209959179721581719132516547935972220622670048252981605006919754365158507502438278408275731920855291042023844171174781520886877299821208423827276649579339790770392483229021756151134949803856927198283683422166941566852852038734824780831041758452839407134775095507445865753849244716149117048120960687902302259862505243325374449028965145010800437153847342718357887937796339873883069930194098460000661908231838960195209722917539232904419833140556168599714112439480618329698434989778976007881934387565080850052041203524702924417972051253523676841146794999596724661283026616079523441451335660965248419508586813800034964550207628257114660798368372645576833701510675272621815205233173840558241221849305089481329615542625717335910779968587462569646441244692567875952255057369078621584513227010437665872727890339901298451760176903121063325550984767968457517332591094758209455119461736345082653511544591705725605747926752810500607243219932450209019890944938529951027128292711513058241744060680757065832439720799834114040380328597278211555523009559385614147165185528798411454007286426604565138449162598616153304352115120963525019671483272830621368751221083208515752851939530104365365707224859954256639862469547903675488245136472267748230997758756983281367793221645179463248435559094358448563827097461259926122475462907781377358677425098734180171766042283117363687453374310270341650992457697203310201797278680201070427455674676092016077881265873641157172920545989181747501542538900483511788613355086462084004314806107868758450441629921887600688224263086613377232793394105399412494011904001456245411753157143188451640936584423997172597223022571481123824221111968754791611676897653523286479462035962447946421276269490948521631494672400648544491549756073321786558659084208879087955438740558518530125586937027735793990642378899131770095458746932375237095233102965001081479542611566992473655909071914585890405998222423488022617038170715552126835110341722128167862465650206622839304106042649610199637273613320578797224983735932589785740832473439489656526759650162959597486355879526162113241114703504101608351818511647609701268846492533961655374118786217726370247468781894911906013390155662285784430472065496806419242146691335215661766312496738597703959283814333626826695525396332633444377754765545219487621327363065475313453624884009019337481607264147003384269830861932808144677577448173200877205364883213969623540329318377631011145574141951070226159741106312996187124193695088346320745334711603376939687157588889554548186656770065731003469031154560975597754384008389222241562275506547637715633247376563161644534406794941638677794165253085235188207813562028131169270197099626284149601800781563705219209853930887146884270098083600719754062840640591947256801008526340709615955928981749953924132259472260484913981679377145226854093147576304214010061179060480989367729032214229785879136076696115156002904537290585173031875326421836715595970551649105219872538626556505569368843129339051495249512796515423608599075658379078628539025684695951598816938949381267200067768831699737251195957576613995951706460450467448914392338871372857832398201364703640971039460276241260700146835505129643678479867526493230634385906826936016648367200913521774871653027388983913143602333575926523077813624935065243309297527919679352598409993582990692041852654110781055539016136610691076708783359167611625514324114472770381486893119228471508592306744092229613916951569976725159282821855922769251847055389291222852103174736190742093411548053385240054170307399344388598724261880495822143618395013918334804587639611322432381799120014191067058887493987590384530376377832503430729857512778852585411528920126920085957996569555435866718020666554924858378407892824163384730247266663495918354614117748559539758544911583685637010087367369557590369433729345205484422575521162803067206382391958602463700829612359929572187947972472662265769242764551916683110302998450626481274997382937461565928965678046963216670342108647847909389093116194581747195674475045625278278574433318592289655615221494936742458408222007153320678446071303323326616231251110492179285069800277043462783964317428115717992907569738001935658297688477893080643885561897044656062737703695437272917537765496776709197903882918624994016466262188717017569082238152195521809094368848310914195723056579414219259206649754569777415049172532208487260842164572192285456897490521315876069123524434838036316351109523079698862147845141907087910624864554727961404049761458008556016818232834476894032135089731235395230351720686295442468297463324672819649673423253444041420545898061058156062832237356680976069321408684060693373458934173971177217755324432205793879766291451356424252596512263878470659030332961709046175031494766783795405767680123348609056826794862972466168601024049820771927232719474179710623123957805940582750411358010082745018119648484776404158137761728904188729444502443539605751485036124013990586635563582192731740934904691402219325670709456442093610046041505295512965491348195575054491069332582420222443033599986697015824303534597698139221475752001561500623156826097332286368283708469278076173515234302777571665466668560058574910847837061236802493101639618783907163446948495123272813522945746693267131687076415477808452991221146408116658349007772411616321131522091642891860294214684310641184136445452200996681415764144178912943786515551075688383589445424544306509477041351528090084321317909158645787247400329030907520726462480986900521505267468005252996266976704198838876154526217320646291634205395156262480766488494002921879826418833768718221654229680602739215637177077387043476728040588791886856881572538216614711115301785960165552899142030870950214056149533737611402517120086550184964545998324945013969977228339500389362540670015342465264254425003825052649785444619570378136326532605853233609005890558038756766449847501072736748333733044821487621046266457578163851116963651156579729527213086897934348520474628216331481865330974454577664207978637043307560964656304191923322623629901972482526545907729210963700949457847577836939825217053113639057817460672270010089610505788495012675130272349336919879371927374210758473773656148543849928510403851492337440484009783531915327318347792597722492070931398261135294303553988198818325977424407947000337041607963621354705050999324562545356937072733606148575071318370756375285335420289094302051577943189504998439432828392272544553901714825876856229942293459642158981252808860526899880347733114002532226214271680330797290772086368334631901816923367326453289116863246471123898015001921471616781586737611880088958008193178162967334333761073406835600226387159539427668292913669690426023430748179970563364182414677993914738621609956550398282327456173612473137938985795028147548349061556748758245090439410922983887551287648395192120772175063557404149179221754758694666893387686446135324113407396356775606837651879863689140144624222254864861139779573986217062781261514736114457189804612352287050022406177745739299655512930947135659897258679121337019016021897718218839904604591178569617239671340264545957655566216196376198438485166857772887048959939333474951721166431986005148792649920588182740710197483940434213524267355997770562913485971901566218855708682496813441869708779481740055319409149639169036804965491213933242730009194081579645130155075019053403475933149592770467368872380194620040193953604950600260415480984291261732066708142244555344229861739447933520131944757514569577844848515757826645990767498223303410806169011369559128845165593672643308975595104822949837846349807054685325408364706312913958640409082194306157316187876789814353891944121221106798991674616974778357938472706547499436886856180728808379994870980851158285534206044925570825865684476701248765932217337626412866999373202271141502221311288242304135609679448185372245268802708936828758935781134748476950049062307616201939327308042793435414058103785437407287405455495306929979741027561465840601699948889321817611779871735499737191894037720322044635145797728443350504235511254077244128921606701634798265494053366531648443428219884123329375454294048226029589621259003187133101509526993437416405499247913618123588086133250220381737197025079901138680868183157838726809667267096554141212200205200920321388498541994783293705697036556071300968261542645808126614286600919277017263019644082567640578249066693383165530558578735912027499663155457948042414754698980147894236473840709307692933138506010972994225751975902631564251116254963249243980767711666714061083776309245023208955364904036933985817980347450340887311618592613088118505256075386756940469818318252904682285572066074568526124646029687915466934595744664527294716852472669453419010672031244490561364203402205898081972049636316056802174860223951829495903339468211749996802187980042543709960958233879379456556313150894772121774320925896535618810900181139415889295060572074828029066630997227730688884605096225573802016510696384095807910758003585822082045707684588782995684198170720433577322053091628117267897330878107296381858614555776210954047797295139483199466433972886892883475937348474914627034751221312651120068502998953345202577441314693187122378822207694227421597727814475994137411133813154751177774398875713829737913845717812023504221454875996467567722998994562820574440818607769743590086312104680292989826631734968427015307283224883343168819633465494431404038675671039497357965309836643493341261311748738764619346200255997870653142129839481352786722862669947785407449190638899003867185831192445001546467931003841822255913870634396277593818009215814378050582963637737118900300121952916640784880678383908221324413470521176796211815933242316245595016930258796953321423083337370216044754901137904706350569366618310851404051590484037020532921887770105173600023170482165261360663955753363338086819390279797647714941946757361437603325575446034207225493539796315674434966333509913566059113314093258539148735155208082354553831502257372527054738828619204847365440549883649942293429704942030559424838522156397733299550111448906685161336572922859287897512854304494194337034810179916175872107812080709182090032968596682614180670575110868838794832699993911909203844373561093895375803537380647761757944669587554865513972028937527283674126911099806398180043845208051999308797020190773532255448780392608446053327661953763882703611355988516502324950093718003706669107374550107992813474025153356827887962972596029238628220643295304863889997371235264344535202793758336810516224620203551220483748515270818135463181028198106093684695615209028817235959252817028385796132202050232357431749682841601961663118065478814527679699782723098956710148438969787336396629473027128295931468357284430064510613738213425458275248730307363186341697148167632064497915531771357256372841647899019100024494746226650368374983120163157483962114799669007877363652597975153682516830423732588043102326721811664473895867317133805287674280108886892234202055873594061492780205552374233206828380533331079264620851695010422259783207703633391329257798494722900926700206347249049034281323061738346302752341455485930328627627034402153094872916437211792014237862526186018218639797367627853877599541514439418641130248525907265962189758005386467915670617750924772175578963364007524541252850023981722145367069321929128310242829395179866178395817462293440094163778218811873771873650807826016802522229006603145377399728163840907516086143383055730986217995103495632386082257008335792881583203257527192160158784479002053366499389575280142844103647608926866903688006018786373866576260722178600016131392498019852500603288521607304330485751616793676584613809977114701491870028937109531404874815717002115057587134593723307583544340285519724820055519829422092156908045481743383019702832845245824104084908599449068023869610322756426657565379028858233376968225770291944423801480279501105202836206741624250403906394942519234060110561831705855402015175713087449823237662913310236480743301586859784414018592607058994524481638209363894081318757093656322555942400645030982463230021266117788779468929674167623175684791827737904351096904163277360755174502986029658906436369103344699914100733880800364596307772851749553443565244156218697515526337788749954154806898787020218749101352197548495435248139444563911053906039859023588398226956596251720193174531553948359837026478503059142498848566324476279732787687604755231001201533756643966464312016104586292902544316731387190886893014095372023973285795770565883615646515094514853296930919130794439760107913958072709987182912703881047007758739917980881041697519985228009179228337426712259001242257529381425807838880893262049803136003085518064166354211218514024266850723646833205876200506350838599949550910129588875610386170439210011874192077359203970965232829260008759761751026557092842559134845763724945760443809543221547677333249620132903077440392850177310027212380722186215589814792993567744363610299132837777833427699530542446412709331170018492911662307794252958053742079493269147349162545317428071726065056137023444100556994084255643598127615460526293795551489593728312077321563341349954550570052555107182444537999646264258904672501114928736230768569903671180146324239826846297070757359345197251124270113000382811036379296709247103047950845108061344661969913393175006413804907304077459805002580394469445489630338004045267675735841051888305041012266464037463650453717463040998145022742700952774667127154231573540250246648009634299127333796391607975984707207312720258229556686873329559881276702642839584030530317061949912692805938199299255389651908242534499214789925539885672481295817709515631027347079726371442093533323854297521582276876515722999588408180558547277985491710230903000223709723370338785319011568828110115150041623652925439948264830779890825287119596482758540662028600201145335824801794194582860175335372763921695917993389937854678222663011033958271264669721919227304664966416063263978489782081951921427689387485176679483383029175729496625461255177716965836742263103646526404927079428076844327644025700428039380717751684107034132464321812434534231884585699815829012974372163165559116874895174912915213121586529608985116238037823169520601216240728746357006046578831169511048178798835180711769055767842308588397282645315882307488060146694374323346828392793770332334206320423010753049819138599135104721461817425337895859931210757425692877526738115637575865443129558873512720836381725696377029856580490862789211507775503767589695500291665572530901790402379492801625315684868002189086424850980204630504904649364763171001216745941685419084252142715029490485950144937192444686149212410949873927671819106633896081880521159481888126708400235406523297172990138994371025127812045085123971787685168440356519973446063439631908178641102154346929740142601060614152058624969921652676619189779541050804137988275910189777588526360302075585691418720889371594101761948627252238574920798277055108261016981734570143508300193472781137484035155613434938225557666632212851172898052906704378695068290339669697768312095660089431289919045047859959283361206149222140751695230676792419707651951982480392736145105614847312627920269529498580264342124909005968469734564599142635079364244440299751600958363883039490657331034305020669030255995230183803669187075904901264820328867327725747306006065762101491336261196152479020429464679875136603636055191317310175344641058382532480933550173564369972127387752846538891874080130652002740438739193785017155416271740763660332286911730382187003542301031858674077326614161049185527119057842129873123168419997509549854941001259152592679025900183093586429904418212075983500581588633901470799076628565901317523340655822953877300593174754337413824733365453139796448210392126797425328168573752998969378265894869486522639943485256168515290408720599636840483786425282059174308084947083366872615975929511456797882711417170739160892681108804266166393336567653878585149167609220296760544339480998579506702346465567913980928255702663452240769315225243413213174650007376434493518595240873827825421991806855481218577555450534167076439980167932687254208179598223037887982966818812257446854990993610980390255354044409210645992577471268273342701593053500155195907595033514365268454001490301130522601897264947063487021324502560766655076763321480261179074202293853595209876158698636560581217959913576484833195952758158803561467508556383849890819895798403672920330643890931702395581710871418629794478028417288047750249303688698395623472282111332518365687103043165314799389992382493588157288639625715054189340557157523362457769112914086041589649067814990841696178661466339158465380277221707780683461890828813777114218357074804603126649428448762142726645325556795000639345107719394971480639940006340893734982044501562085746127124961650533924124310172695259590567191047725447378012421294989916643510714884059219942796168935191733190009364271242855265251284698373526414138297590354487712108002708809979382053742360499904857667735023415990558323788015317017294899037614103411913977456642897580514697661333157433578868379546114474410050200115002957979340876803232049660454911166485335294274991434472715377945174706409523115899264080058017234282775999237310068646093495674536958717131688285324265632912344183066984272521078525301037145054148865267583820567253319302881842639664500373778087701226651280288156469563473405329863451080947371590551135820801207729330530848757147307088734706669448508622114393604543471959982015045485743509920759285341848367382710222570250987404899990100554979184946050223332890970340694757378070889508454739329325781931968769102445685721848738204382944951374556108093531880633142247121925957192261148414489755060464084597720629907759602692785315823510602680811788421721612244723596594325337727015997824397230578354050746284885785446783178976915801565585010679877601621496701337833867818435444873057752489213763526403906583808153318566689679020202326442611657808382874807654493733713041567270205309313118505694452738157378555324280404449929778475985340177037587622947889099525061694839382631033495344720833642573400658324996740656407078074248700562053468655888867859566371128122072704275908126216338865977268589750120445321049106158962243430873431308721454876124511049555189482731146372216596285461376454456031239948539108978548642492784405740376453321093962978721267683481745954790727647980909630940370421311256523327218291760971219101861300938262397211851972260185673966566754833549879973769203275599276058169599953266479953477153454834060655278568012118064680292495171124856540887424957536668682315965135713200865435617371144325898175940411974391583538366738614417002346543756115038569375369911415926352271057598950494225639642510694698877326135202844750832947409772293641946803546517016515587226109612879526832914103302136816565866867922426712225042747875400959306812265348750197562499152323277200329923383627238971683117504736122186169246220181825166925255718266816245106573971495215562791994240084209048425056066762376717608621564071377601280901246535492767157919158487593977998482908641174779736312137513971013985095004111215906983631509969501474426187994095657339815923159592833593596276700553888773145855997576900359842245672962722800836975974891858231750170797335990735660617079752911168678960221580889561445624373675352283663449875047256016253472994133980401368530656626064598450096496937166203627465034859863101659088557693152556256236765672802024031127094979743304739492255895321175726906859346284910144490739439991171712515300845008320644714875703593630629678179159149676125290513536263703005236564516952930376634529622480048958549884849332696798334977305417797574455436250326526065767213203801900084502306895851097618688696092155229649328084228839297329900178115582703555730276225178066821533472501364387431188927176717188577785722116079067539928831982398526421841882259667241134907812081144912093933318651503906979123375531723653470441912613549389460554631003561356222364865934591023994088945216368465790447895741845657907910584917001776102604694567294200226761216308554352521475057505395508683795979265584353916182196159681644596822812545451955244978417396172373863782843264666447378835505139929160550123915609892830425075572192815953559193918655586284637061424400159738172340172145223282326016049076572584495397778742524357169464783054761290763001155297971104791435360129726940239151156496707013993105970880971502158759254134072437676075446115665642308576011965429931265397551210542979703639733887578088967066559959120155300601857304783895216004437110581654661828335648667988867680244437278916117671878625721653933212967616607308754684231915594734201025551900719394164143666255128567082158383858698027163047181838544120027452008748457703950879182629077803621126717397036482850466339427116682353433854475404245025366493922673739483980489841170123379977977604920407678351252119179910343954245515088449028810843540813056382463539171153661532335332294511368521523707301964608018690776879437069429887345613422560356794154808383480965066512335714012779790097157355227077782239560526973409900753823326083199669220036038987383828069082858250429074944325842655498068354333012483373599583041733651296820544934296513479891990201783974389908756831967114412588081456570420778135709418956390128042633506620357599075127471975552721105325705057338520719884266501465412040629875772667675740850618659967463026575156892332016855853482752378835316007894276964300503626113738972266421672659883251519795702796925995852189798656536306467930090651146381860498630563489830511719358984841614313965880632377092462111756362021241891338635339422733698119331492040675692635293771980648948446444359945888435218215092013786143305464075675975262508486981624282485535717251067775785917284203604315865739206727931708673349805153201663487343678433927792828037992464468317273515085080675927741933338849046210006655031712281292625965520118947228911076319199740172529620484819515446344956745210804557920344823190849787740106712163722297953059462200194043942844026131283649116890378610793716177096326974523965183569932316216927189439515293327632612336091907309027431751468555381502867433894819944981768431686782615718289077517828926881252114113876221380356928411756074548504963434973332376141814205064902267635935129192401885436742430963506275326326619861119930204812723292952497864784760180913151508545349935813214782938778891111092940296887342411318851153202092105971795697340017245630158286625657280337180728583223393629199729412981192129843702450562114591049543683266476856952505604638837000234084634096574935802212546448489235061257148038464700022267452971172801465522809907852077969128661314236383548545771186013804755301152701100764875831140483478772954197374245904139458631156403887160521375662868348499049038043558226956366701860676397657572670816483868497068982669691093429017922734288044024207712195721317322467531859521313531757746549377618198608856588220364564177069365440826382904361297972823107319524911052656906961037637708881581385994955703984733281815966271004307938037569594610986154008999188995777207877964535831167376784752107287734886974604726270727088496978402457396886752034563264492278381267154374322671489872703215068885447344483611678954876314095624453179870134622489677498894747610180984563833575005172780385374672930659362458067111192929687701238538017201807111663550216351613707357618470231477425032745441735572474027499481057568611199835547523762021354620213142256202169770846402473661264208051155334915787812777960779211725492237838464938948049880090128502534504238756400917010954915302807551386696188722962640819282407429068079660030962892619633225467983328852124558412815607790297655699608068940648677902559772394045246414019137798515524036850169385204425376369343138229744549865382178579581041182414470868023367401399404604683634496216849055092857265668088955353405540591342555689608781805584071779768380580252578437880044592983691030303617787842567559389269228699316876227822394260454139361589455196204067474382686116601752867416959035409869404450122132264722288765812407683293718372518771239054425820832206716562311556371050121831519521665106977417095987481243763234582206882618939212128584803819383669241093223317111998584541805546168221851936419911870551550543384154839537222608900543814370420741517954927053182140618163389157768839526097603788553390748585642288400538780640643515372345747402490914793417851473693455850147729195598454510461848478308610145434159652978488346721186494103507265567026786190751639982517117361590264925037794576262495510002360653525156969434083574948989646455067012643745527734968938810954229595095991016723793176150077030830567238446718186225963926461082041196003010041428162484934169892589647994021931624604883087710279603316670782320079445056290406610759833839880901209161389044637462062292420098486051478154180920984643733010013149426444469694216495273886017293806251481419341076857179100841940592697836439284047433879745845427262747536997553045291034923344503878040501472115750149040670352801273032138807035126896341346013058034966837459289309112232387911620286794447638894728477126828252393500039991060523657160254633793462057146027357933061767374420445478686955715435990678979224223371080008115951730813122529439457708754376215583422763808141078119830204625751600960543294030030559186305354436967876480488567235711381357729003039566855638323673243483840517598707783019197404505728409743643456871556127702517807425659526631098984551348081033462489706452509351481225864162797617386544955346933785006544456879227990410385204477295332880616181097696907783150494426599465041802424265843184024694217535038965285999916662830243028001577030122380165566516085658695558717817955702948407572495777859521730240201965751305367585848372118843349548027108456616525872543171060441395200020447264303971543072573588976858123612823745408863665031571690593013741746831368863670941908794932318466867995537351848238320071274679122095744585943140339016149822555040568433024223445662837927528207816123669355270147584877109932634903348480306674686363635833110976070262203178461542040793157660889109124935727930547124638547877711564697335913554307348998333175526321426608854967300985281636170422536979256320609175139342230489425207808086406946669063524397020926838084270055761541893930708813022869819021403802311911847922494195998206025805867139755705680923825607036405502928722586582605010518752354750602499863643773991871235997432435606447878619615155864202834162669105090986060396571074081235265545564076016756455811172489598522937825288403381300701532257214940630137413258958670851369114933900879108251490181509757909517889741538152156707163806760330594619393534660486490407384625724915396821065737261391809310618195642788949420495256235018268800245890736550890663368706853380352471188927789759554179376326377719363573214771028978564258462512794127484834257863287501413847040102759747263250053706771561496451793020515738407823398964809487297424040370828675329610631633620883860286785053079957977100971953753732914002874181801197098470456958211539705854358308574304625001228217643527397245061980753408081469488959848724522964467859687987372359076223861276387889247549078896169983056459558985976012440149943810944383960657965759000094570137682822119934173377486704208715749429159025010014388855342771622536969161364000287922873875402018960881791387444344072501276684875502277293663237743462621852088229789433727558399026649706130914811964953352969056531507063063838741924287400057438719241373543373075631207255125477138497206564240534210956692110598543728057337432235839887493208872838532120909817259108496055806437443888144889578323629527871283543639770222209187448262453472164184173297931867645807254008128857518518559211497184870247022323301964006880487420521281483466939859876565105435666056494525697742927989110218243012506660577559640302633136238973554354370776610260038223383295955184785100001128078697171204676060810376993243910821757201626625684911756669814039843240808555998887191167951705793494907941119888529224976269719086984771871264295789962561917117917960999827053011360385519654240239146481512055222934666643866812189126120314562063592312678443630317148962512946813894644862164026615606121366824919479910365976881847885318716815315820577080654763201874626571267045015613841398737351692633196791644770538438140134365707273727603902289543873330163215268418882080862602502030896719984370295367948701175572875446613346957540778137594847796395753498151952810935856402560049769155814846248894364948660504583239646716679308784205382446929936601635241366580294070315881217983917171839566963996885880136534520583298832687650374917575915853047650961575491844463651998363598559786478741676341860304105733136394505775624647413153433899112245558695583181182262733990515341409367435716851868153301705171139542522781576433325960622584808380796272127609779293881743187327418908647174885126453101967676920308420723772759514812886655503447083522209633109840626488723099302895703981820595028203534054366733087430184123733082386120080867903615197899945502144625647727405751469360013765259077987181527666128068167939563640512280294069447804071540307315149526219491118026986468382897673865528856958924857842289068646200276927246191176839883052208666612281200190572665481725677556719718204059468886331021897716242733736895972083285406149492155874939793355059437830241157262507309849232270462371670639240099632091953335941657988752605560605566326390426869024066605530155331055271213173610271923099009001940750243710255632294158841023307741054283079545109961677944550865071554334601383013895339206092563747347431035295313305051700939778241905354822342132490149868651544487694791521845869330546825015404577776301660000821963398081308296013507685354544358536657723301188763184591550380269895930203112865510984284006763812085148735139159832287706258161019111351161171724768578785176054269175157451876868669160120068986418009524891138949485731633968506705957960312582908827246248475984649089512099901173498302374762756634035567024737475649829842772846526340449553719038885062208684062582818145749802950549936714648080035157221786177000701779205877076717763799244161217452274088876659695063585104448909836908516682240653529868558357667471620322391278378882375506878386746148715301613805663094400438745604923278879194816609995619065199811959318309021973500704025893917159696615362422959639493628165290839019998351022148958805831065213950023814523626703527521353026409135034990677171384020380419043382709728675432181771849793576781825533017666618413234558176277265138652911224207893236621501623884814039535038475402780239284116376942251004438208280991347930914012614896941283655305794451772552412093064260875043114086779874843383396172940147194580283760199658620982667309760662304130322720620483357873696969286622105933292466358313316834621297629238447421878569647713945874176866662640321370604267045483995750349527074090493639037907823070939585588451055226351993052673671376807318531371980212645423383276331297593458694510701507971015913826657141290833964196640341163024315204904254217608320664795381230630736101271320082711031969245190671337137541156651282210509075949646486636988003850122307852076467962580399029773305400335805812335761623497418470656998292645083156562309430272135011327274746185532114025102880987834529704921131307694393888816664060658517726821130025791703601578181884716841944732880480861631334463033377145064566978923388624951671212686644318846740470483547044134420982432884132833554324422016665769045567554531688690273209604462009434451860677977924884220813370952970826599002767230898345449141170703572936825017773516434001111739178871969093962311206330845145882049268841822772591949401917469210318550053632987044702718322230703807286965242124302999537794157116802227114457036071636171198682436091211688415868437073028079643281972330496016874422135323880658367033200986384303730224080552671338643349868605133666952595622916758808237665213026264685082202093808058057225478282109983088855682652834882273867058667198416895580479997636843693009182524592858879627382616192790478787541418615650246948641743669182622084910037572765193140064668828095535627961676657715481558828426371974436382986556153676516529972628393980506040496120264226730205890685251428709309966673498271087781215478152640376731053087962876663798042614358602966489626040535408515305973475440702247580127249135277169193007700646748440857177237697853477311486832038652421139603906175456930714291913760554536176344498431333084419095531108959177636522508219257158692684223957001490653140250572001831329291732587815872533407736642385615867473072875385530378380210269267796433325008489066292777369782591578374094165372701536960958710245702755530162725359990862371150343081460412370696785126227835375363400536839640041604893485396203364667147383658853066590298365635876750154784148048002402854816484865794833944549687168307963233336498956757219650930822987262593026284729339124737148844743491419409843367050238862433241248796724099474054205731787621604255020493647430649172254579471677889394583391621151552913854488367989896423697040590758721110423082762001734638541152192649473903986208288836768240341122069055089756483436993327854930210797079027374189333223427260794127873030004526833223732309491690273604348670285026907882971900604505326010492266358606712429369689929989533105424731035292884269876459631261619341774701703879909882363650570538803922551623418259057592325044913241528016177728510291754693450299776900748356431290967100159370037926889645169048313466078954001752219118528672031405087078001705423985510483449350770836063358674997427329508228452018010977092130252731409541640412949133420031349657903408122094529372630357064290894449665119505145079403391947889688582770890280225075757029244665677700651926319819208120123650617113764882123125139983646475280234639371975595583217263654570690597907969055143183784904834115720768497499469405877892361971554630070781753506021310002328632912784181907535553287145525418954698047950089743735486139781083641091570699428143856788134540955465987303539515234089269491955160464516448689654843549029745888524310930180916888857081003921993147890103916519266973112429357587590057621214809896289053669216315443789168245386314814523908459790106985662808777106816425069853549234929934299921688727000956569339268231910069401557028083353458877462070032525321471484520565989378989524259068989906731742573068538632662932939664321641684822555391993148927961939184995028825218627682749246495567911439659886988503750490796972509962354975885564689384719936877256332998506248074458507483926736884399823751498513387484996730276758731364614473103753009978602656323875573055324060110135335509486754258973603417073577761724317675228551215510095282386301623569639638337391969161500427168322499114714287133909319852978009690933308118316955806249418218320281785782647589526590971909128012185486375046407928783882258999065044674499353577265186299427612406031217596233340906638801431733811874794948833408986168983509472463606335536776616479926885655055610462084358100437956030056703305643041523522908005120382818782410591795935791053319268420582787822436341645554738761420773641628530913019563643775934411848679000773329793255885554380395979896277630354726965466456322397818967913416058997177357911175695030788612193850875199540835198378590161189280017688846556587328849508564969759041962158429220548938841646625921751953222441512905268023424656773806497190044235547529752460893287240970087007672501621454698879666867651141599509217100410530969851456284069238200111894569678262681233264197768890721907197357909365885113407853906538900738420036160264126288245340365653539684171022747242610453877845552396611769843762866279263801690416047426489919669930388006181212711665057017149708541978772229954336765676263377852317835573196904181344397487022264562890965378766381397755505247710407443036670287880691782446467426472080129957413995428609747951722703143015259249520185500897243785392097068556023549275551130124556864739603451514132749266558245409399573974019872921504439618687134045317035411711621581284686185413597588693928212543899275964117272887081330271733149839449201731710291355399252740540392519152725718406552153451674456198373329059963404317879163005352680923295366601231722526630694164769117674064055156764193094946648744218575079077021812757643790768575127630358473674265205017375561376165038032552014107772351035787848490644354042841277880765937987876435230603526723827673129504387895478205428421446308683788396627477489364506659736651020067758127677528204031476311723195690657849512863003182228156146404181321401887941038422395666256167675469909658035953409167484368957192630538650134176374071800750288281242131304475655117575038141543883686564542002274597590807473374757445379298967611805836965855043809183478813650193783970942478207372926734592777229911382548980911250802728546619292158235206021544765854652558458595865654873091162265134461548984560773989685877965059808976310661663393537828834415158352864155293277089165361350738890203920810167527396017934916218810320512828795225441846345199830662820874301133560184158465688683871590426456993087525624792815749344073320673206725146919573045807444657717481999812476343940976424245721710824102052915523443211603570285824005072349181586409608645265629209676338404038887869625878066941079993944784112809507036004221127208128336463247185800965464427554997164392518978554545156904454277018163918104240616355624191741984360540504328392899276364932962871398645443625471129553198794191343621105893858724130024647722871132231381018505908778722306924253091123014267739388128068668222750857827157573935361119715650840017480179481264692641315511335571735053598376776226460219533467767000969269875756873088067160636767926854087004042504568707342357584964993349937693239867475329945739797640297290613265323951277645680621082698357595400271732305973029573510432123327257209454986654181989357770412667882967292713151306773016684017329441484176086477312261948637779073987051679368826932696431892104738382676048499663225538126612705681391408149973022826587535178352812598558048925807173387138609326009983332682627692465745885454281134611419692825837820081514604096320672877120198728810158114948565339874032182483716882617422290892331636610201245068475255178776729262545683912387906756148500134942048228596571632179815224552758843031186016292030380053875784008664372435395881525890891144751853373152566202927170479242161223377958555903165142451396676118496164414095062863015458033929642387001803918080379974664680312082943440994584754256354750626296447531424471008090633354873448944581636775729373971522199185929505268406609941419090465833598734821364399686583799057050266725480656726291308632994447791712189249573855527053430338251360707637367561386079491984740131536235781884358792695586876370378773897188839693006563401626117869114854863287987040970268024006019884914826119215240816298999234357011063009925193302469069587627146407387839474784138268039081454052033136254447701010974525515405106686538306735849526593028177394301846153002422978568728489220529578808204487485321840862492945077602989714905043126735767430284779930519566261215182779475946913390742454838935254102009481670800411210754163359861841936951870883910803211933262425245944948282394692993421469753786555700727891537054546392570667039881919414275479423420553896279006698268158411892295129034498490054966749817359816138707087626651961614071416696503437951128586039579508941022284382924410265045394405496923628042438189468968498733240642541778729696232048255004762610226055321083293434153796064459161276533914067338279016804416866534995169187704276900180924129345410482436398963716232940480182316391713238451838436902342821752776876252343491894644215477267513133497855366479560831048606128711348003098613278215999933129112852217871061578105288002402512781164428143348586107444711225669696697947563325940613423920691606042913999816991388472887611373726754099206477804436263764730623397270695325183770343278545661770269278006546898733595078499026213452274279017511849068349551665845119090150271038142784318386885571936202623549739676835663779375220950830841745744894165176945929241064056764260891062035684937311950755318547378437403177863709313365971381467991236419580699216262950892826158227735527171130393376092971392914483390258932518065552557358791215952932845126879913071824518103892455530858468380417242219103075225346124271307357915284753565155239646362677141051257819263055889221392620125075826217925406273286304500057111613083365897456490313763099427328573496556197658093489356956629961386144260315254270586556461739686941620887261448164940800813533732433109960430938218047198285101666237819918454394800009267807970010293916357946692906646330652704228997295499016010466378905606866544725163386225081006967526982943133729585068596662423621608810162698333426120997359935406924419508069124690883434516377792526994358503888555708021958083863657178725130050258564565098644074648681549950502158882344564254549988914363516124080303964297907068383154321985816092614683934039627603759612331755473987001430794690817415129988753879783125422340621722986871950119352806327061283737570133924813927587697652481275586200755197954898821867595268387291731503406593680069178000947491280465192266439105173654414655647456518501572536493461358766197091417667702288931552803221498657079152247410277378457666367946353545630401010086260580095329100301244670371222790355305317606593900133597314611911572073687958954759119678386021492658242909172412748098342272223434362324575389700728337854112084654558206139589954121226378654330687550011005772465819492233631211241598043328120672644364457791583871804612235249569164696994905394367792865042485629611228627539961367873197742375609014228850039930424866155445225943167321968546867423288700815512158366678210766483521291974147770138265657525274356581179131421929069115937387553885685308825100227594428035128165842317796930674241874378789001398370543951041688448668982295204349231027138844108217972349820830534335117110638353221252529083081734267080441914017358080871439487000556813311378931872190042047805223294125679528225349773357978377898735059776067507770676765789624123752764550736946419177595701651264069486940822424046679019727802651404040949164188757597607401323474111549048736046242061106590803287866718967100149825190299549066956264104539147806001782406776799641553851260327440510057321602177741135503591105460978834952570393523584605031773179485253254416084610645425505398661634787110873662390913580128217394055251448265297576792553318780081711140586632864287560323267173387573480762643180567673349190591119734131343623441486159290690821780650413557906471946891013756563254678438757171806815682386685373798766528810767405064463341281505596251696052583994041750470924445322602560941937199750607953840095291739939513495721434923654067941186337063661273625347045335767280215000203686696150947597721198087104884991942518020372351150341384055876017525979950639532753207489167977084904859442349809282636564947662547913069203370116401705107943698464409371898879264508680670685007940011717119333874382052524202211664277336299868828872228163297651011426823887806214792304212206870322693090469206080533881193605132541858839292325938237648236788113888797054425114458972206292251546326248986690852967136996762860910914360227636434857560824300639794405338754252337362129082094365658615164575225897155844823321303824449452166807956511662033357490650558642765378380732018712825805911517112457852180331701566108037141176005596753422761327813662911164195330017324753260433398495672366776889443936350260726838024155794536635810633706292289312582896258456327167908018287154016753988807112158758439109123608521916272941485837103770943870149152504058585273422140732172081359726834950879884443496083637219748238168473193879981132639322986053296992174760864984286540394440870303645168923579165793502470500219328390731037348814921752815241457580250787874619137735460216037048662815044765984137583001522588236273795909169352629034390386153160451065027742866014943810766401446533565510060635217383593883457999762225159839135112465640446759877169040374855863149545276014464597784327230001269384546163191226798615212029289252334499438624088297022790194670869523935722630294558310871229130148026063000378256060136036040122987867449830669054448799271135403389699918590703149738534441451189539697630658412601037111881862441399040083420355878386994880167831555308651510394112869904051572933124303582540711912614921465780471428715904012616962600265392190547860156977691244385470877025255344440673334983138046848105935381545540388160103286542516891766172782461005360872843089852629664974962654569011139795266127508808914644893538150697670539613916078900604774671934678310919765717394711216184180614691767620480012584210734776219127944547404164504589336736290077956356156968453868680735824440376812115848206542059733586040752757796815039719321598269164480512883993993392893444356883670579709183291915391845131784877691766968546694114640222830494758557809834220167363269051428275943281674726551889364648201086761663844341170207872686208016398575613929665109979927535496636238019644345316852551650658155143394566674386649069072663385877010362654676865342795245733358112029211624742595745811393785346120344232700050374117992272729655037773044158499767820296516619809710166514095155859927295104651670834754611073480125303708981857638858541948333892072866066319020085367365380297452816867110208935697920574763797820413173667588779446535522592888621629103152892182558908537901924547704167179538529222823520902994453172573404922497300771486412673361410575788565840357430742085055779367432418864746294643838958758292247270670249856902266132860454197507027317867323369887744674948108659552117208763910903788699213242313333921825640991833177093221706092426411885944701519540823751199250949240706904667372577025161704469548693460263984200574195647357273140886567359821940839043954367460651614585644908214609380138427538021592723120033123780981944798263819329122614550776892069427549666268615669478301427617714021819727455656372012990377424144408910267520624410778461423486293325536415496003644846294021294702015016790773287559833862714479089783672600816533218218868145864932994083623672422613525006213208068518857290130023984533766391341106975172771993609474736717443238470317561472496029914071296075634422194426431140465591599262774605913004137822252277582841178499175923333517886730649704853391580714030213668880786429462495878555390875858286231412875032751162642120183917244809441335336162525824656185725379193249957595607505699100951694869390952380578550681569704998483985584302064883553793058025228021576990956241959921808338103940263539688755197489617924015727932370359855545500594861831893457944847760540483015810727034220388006267792697905691571868715248174675009755849292615750407999813950800534988440060458996131721593315208369635360029596396835563853164347556766448666214115956325296896065321971670113169473460675092171713984148808131915041379533679734073864628824852811239405595372005185661536167907015218666922525300332462956572459861525165830745925043664404194986249732393842002206765221860696476019333925429946706802100072798762163411520495128659577119526039522456199799509972221536569379550255321721655344460497811421023076016619674339955436067657207283638094108413452343721336874858597427714179137307929335212999043508981495309826805040966495249885622337224469417117502945462741007236227392159079440194501047770872806788327641309445183771101471099717071820444020941351458278731043813238274006349749527357796410885028135297403990063731974980659273419214813897241309392537673222364514939531352972995985692540159285718834636421757547263617096672279630877272804965826156432245059726651088493821943242692660755611615977348332264480688787229506120593642427718924406966609792601917416823234679633945257179767213029851575499746783244404605375069270835872898765560424069625582268019356960124737965952643999142690259854800804556811528594139847722614811008746995259650529998673481518663754114488216345529919303449806454958342796058271867910188344473453281438604056300810653492904890079404531731241819127583056676940873574188448730190677631717585682976308683043920577290933394524535802858879264032578724941155415543049918553072094034597385840566116944621737944933409272569340313795715491197995809072853350552503085302733319819383442487042411438852925993052489190137046722776171606857534088658856422126000314935335432766602543236527321267181438603728033856416881908258974730910841538868116935056450975669671694736524450202634338724737624844929895643498644138637483337492426337946820069818565344504838952484602182447810362246208366784698707408116797018556229886392126178373409068140929945575111771362490552192815274825431759776543732544108976211979981413095208383117860897538929915401309336469352077220286795702999154176993698254969023470606325484545573235271117881980113550215487845479411227223805669082396463433486452906950372983420897560731206632790486814536751208598130269430965773124188088418028804673601965585952029550001375003551088654054396509375077064596339201723634712149118319190456683367142375880811747127496376909493990286604342714020469739573612660493995707777156459981635269434948706884721849272278298426359476803171424752139107321884383785388738416361391886980736610687576862189571996909434622773004476636837381869230834480433532131648838164350319421480854385621666404235350386249904462136849074141431938956988266672708508182489665068795838993767570997061532833074926113262321592866661321714412855784144146015589332718058866606135798337347959650961354617918070579567248895456149678555781111266671851017496093977303703797584221161898055589894175922094054556383534177513347713589067886972008757303452621562096538286447388776413183552738396814109420941520579816349129377414891420593035463311993715545488242506697235983275719823797228978658800490874046693738581607447848180994498891549872763789268890894146069897898443920608094952405943773840348207881882675172722108939936499770476097548766463409913022355276733867993312885135828332960384677298882816507970850900210798318819081296479393091700993201506039767307219339316847956674007703268337689028967951487730314041410330897001130238692467837269342116520980233027942412829780554711962907078701317445974715529886754403607181473563719006245118075028137525383682067484009340659520120966395041979012530116892629344767664363316707070040115373045566756942405816220164135961628242841265572726797381134660483187712239534348376002537760607209289321780140527297143908965148209206790052750361181552626619797775519350329162368635964691185301222906458283738294441392393465270386255846416798331565688402516258438196609333882462608630055388333891883870947325676733563402628359672109494760108341112825657999868357531247784979214967472527628205501083766062576391887730057259599453011674408554002734419565735671517331870444001659851393037981723205598071119153652743642092181987774970495060165681868182689531557710353626453584244468384593888436103199361735561910125576093742117436523087450260044894740874929579728284962660997110907469823987150658357490865753667219042110522306330021277977160135852552078932449821259410210695450793743703835507254430004529781519051145302279551154979959757180307441428938845180585552033148426744235724682319993638053956417244958154511924896328419647425494823304429223218130330390232133423654840576721936055218791992469807716937321607637735403735368665186584681230923105557822403232341841642243204809961714122277198604721834207763221245083327711947226955865336137187427011964035867130228751495264308312398266617220416144394623122530954587555029065676505739825388233114537367575568762038915812205985483663642107761790967707039748286124269797446145341547273880036267781088297594556884906967154535662463629811042695409285013496741846448697614652598387983837755028404677026053906518664663553508155513784354037278566483740014302588486713117487802331282049143510459273154751597125827252412580950536558959573579220241335429337650826950786705661212931016229292375821098463232462590505744944598568521795061481079180918852337628027277128173908470931276085532295594444714801105800002089549037130192998352362525556025955577311255630713048040941689755988368391346706761811759025904437994171183893337401356049137114257162023293009898165311715718068426050910301417908377141228157555986615460895328500019747069745531733526763938423072743068489913884021023405934113610698863844084691449978539577949012031405941974488826997211220895048678323518050466857831351658104290866110585106871102829050795265471646593417702161876064956782384496280683886833639352843435026080489440124963325621701170463650555807807051590882908466227045639572293143116120286415463081233207282745324099945490739700571284758806129827765291487402066131199317801540334714754457871532973388045962941863951958961018356413652288644949783787889691490622943580678519989471929796592450952095273939389207803133680198492184625128825931616415430685969669343071127996631514806318072069128551847000226189430705444328661847751257428304903744020556619956374176018601237815945413170240564737653928032292264989504991799709723659066492456774994456108908478511422027307279717465260970075859626735883834878804426110669752695905625259345575069498721035036392180402822271132799453354486599623288474815404940441872250295547771066036206401078473183405171787878119571311807689904424169410016567897049144565343224506801679212505764945812288773971685406545870039420010255810425182244467943603099154458166736292419918163095269974023697660520248075460350898313008372795450656521839700838572585318548499914739818598274557866729813346373655242401263106825392258643020948865719606647274352189199611401742415053435231659091861435784070088156094004653451752876935613828768998889746683482062479408234918957383888012604789399180609664550595256099720142080848809063114491709312967673113315308414627280698416058724602923328528369928241269732269317309927242629307944862241684949216225990228281069282051292034383768012994926333809045855626996892402195126231695645363841024855186228976638120524519897861098924339166258743060296887934056302685309009228968038748280944571194918351735622757491683353297209758796535196272514416739690794624684025318983874396377708188156222110576921268668281273283697513931111264066794753627885218806753668817660156342308937294227584334950367103133868762199534912999807337527775097177632281030802149225700551595740905319792725326812480460968980882524808996775895804651617018973476987605718279761144782641723432567775798915752257465028380168343959900736813469933040159236316017808746934912468852865495197416655414700844599984863018783836130764923529720782759955081108285732246846753743615721737256671821695827025330703713312469850544447514611100407802125925378377642000607339888601910270336422271441350677343866758936196049475629626844749698037787070486540643340128976527073554900081649371994351605647707892231960642359737346222088833188613634975851175420899199061362942499970200121801436849609574264125838239852732172345229958752851204185080961438510677674320082792193175057102114934823250640242621405838894716783159837632992304449903708857323687238555507511297141174725760075651362009900328987062921803896005143383450865766091181605497901371128719651031523005587717346984896754436625394186184431223327701749952263663627573362355731877557937020346292082242967445353412476126840625761181012482000502649531054463476948357398482944502057813238662932543748790274442560800448397582316540372621018377110417076817641604495386039585566774228488921941854096205295692157396553228650782882814887127097491982656349093542646397480218384835984909448639431965908861813802028079982796899912545293739186267214648616214877673937063594853768970732101215264871060140468320142946567582584591981184984218693606754249582667530545657746462390540652541005259343714479206161940483257910324981605818581498230905856042047918929775138086514969673316177851562331727269916158785998513278640395090555559997762408117255464804952354552819918782086394973737649485441352003590189653797272380492624840363771252759755317084444312886080504262446495771866031828419468365311855080197666865376897391793708483629630307540538437496594596488378160471935573204526626718012330275305681335883874952907815345875366205625854909392733788766078351063999462738026092597022870661933848556825970653727479182832448847820874156538709143497370514408914061392577540722680972539212787515800574252753836278688372071571159970714401007689974997077303580956194045623182401778580413915895372199459075992959374993628310157993820121057829629565451264170093258546728591014849337409686961900144373008026726785989626847432387935603839766388229918956412175445780522008412151248342439617506687232600517958798378497994218620755354883255959791547212188623392521310591359790970339226507353757014705063490501652767754408456536314909856573477523144859875413509834910646671600651362659196257410904574166000257740126846339738930767516214800150248217195316000377375877459185207041830055876019566844591174315384084494630361636779648706450411169412796164506107865880038516261401025213917550529249674403377449176662415556601560146546385229270020111953337777134632070117433541126894343134483875673831071979289111565191614721371509087340295333194092256396877411409018767938098257132502793271288793337723705752861877394392998764289985392642293150302101997480106480632413157715416279225943907000384558751182743519792319883775130944937921275211931980036055797238308419403399663118680567114347161797394164897995210273673446940761266108351713303447747100018831831494324251117269620852337142014841925459163733793511091636248710417491485788833959688256855661644197686039273621625018837344282076747034870455694239589483842461677183959775710097736104446945836629588818722571705180303244713006994637021921710484418055236366101428329302734781673384269458907295076842510278556407502450543360467135291701877351993958832238861160780171474469799597557049072017029502276866076128798179111427253882623178843772284695552770185363060064432360475364842554578926350403082894892009312733927602867409990767866224584436878144397359947373375601641590059104488778319387466064952131487162721257796196901686209017720084398926638454634600014168068329735218604331942830842664036266096199871922049961537845059929348100196170190674549752110389106934765517219833066155638293654993802174384958285980790799771873147461153093384691974973644120814418715550588680576867004891377510004468899676732408710807093677117458843272905585840191543950144901547373025669777253093402672489483697382662932038118276994602447071950487775012862483298121185546883379950128582397247632004551930817870349147604151571660464998468321750411548880820880401507547010241871221216703036669336608851591436692985591045215320057403997740242248369277722428693638035762420068621898832642193955765497963307402145172447018794484624569995285167838335273672405534287312851743363231349399743537438491763228244023749258019961398843297125734125769986700271828921209413497837477734645927393988700200106161741151522196952047602519793372788032759613469478526569848449532824917498273198040540182502220180664586057413711530317986503346738833897461532471094132448346413865978885792539890961444299604649940714654585937378158904346800400179881743803241970456680490846536274701005150685541522386318742174583092344865852339033099786138111924847823391643551806336175333489468063702670386711272271766039240055303866580219930099062363760069540847080845108422881175726856120144807762434120722309882554968412316198668742668845756214210194031059570747839675011508213091942067822503731433787588094225856652290421885027833660126669262448369258569271612385007960175930581550684449494226783177875650670785638719622325154396655106987818952514093392813167272141037928174893755395427799965517158863497692328188735476673694655561214310160972993803868408402274636740623512360808700824706868488176417228810140878003777919830550231458880180457675846651691213821104085025807109296211632268584437166166898339315211114188753724758885143076313098313895352021055413424419838359264106165423718251006117577657830791544837456788189047160083815856232611984958722620416739316018643345958230753889008796163618541383342832176968942299732087500471256746472689040793224829323971214441873186693871993733062729338341465033942036908482305083782058294886384660283454456002443658876318103015067937641235048291286629271098100516614588549838147374357898562760893102424020818300011953917592501173711107622645167507207693531149658259227823393895785041881574854966725655482714778778473920339127375681235122331632382267898542498975115991176973390006351993776755779328702552853352452133103696306407457082429636512136461108328240565922524674462481043179281931717866618515087764485674008681441963838817480272101360586251473031822372874059500341417684964450609436055154920691665914079305418243962142749264275354826534062145887950909451348123424320550064346896490220193255778527069571520008118354995481673689011201983282640128653700791009677064859579658267937711132693183490805231965052069073971821198436100493464677009523789455757192344135034177632800124309101726302343258752941994960010664493290615231625219574439364866750536670976236360201299560003908663717960892061633842804636529800883967596079056188713529364975650532722154523282636547268462114027241866551465030919353043034839818930750327926676487812002594465342392027210510201078085756373285374618315067615208401225007563358489074941197549523186465539937337789587337705539098907762976618897372564564130895144847232568949478787580228815420910206062247119871190978456733128519049910602207265927638941122283656259126431568421362887122029919182353373087509613911071749946733906560041340610214223376626435382943687825047081338985360769414519994165204767958660299641367706237704274083666273038680879915786249916897774483745425374474931393930522155043353555527557896827397664845873534940493941862862353538246491609032265774670294628079041991456412901902139958791532619190639461235187735141795161427118196769559862603937189772417139787986018221136875749065485115134866192287299399046581106457909458834361932506788687005899110738449441050898937059870307238086030141008740382053941288429990082235655806749056941367813053656866878462110076758856354268448227709997578876849638367671028415072234431937426344441626405880610920453427620513580600726709788606390313130211463637012910363646816011448914379400872413581182050724309378124225951890551725764495710943704793690512898197428112351108509637445466841649999248948510002866384774456097739619250756089057638347644877824667746255044502277262064395631426274430328228795459788713526665541945653984880847333539286441475645793345225160865803927901178551635256510759624265510369450553755583760890335139302531061574864384967424297407218939013868460414871639968850555444500935465350220246382452153292612626120731208868174960178110966925924518346216632130329407922394516594504957951738917677006838792357328047730016989490955126016223594199102831568627321133667428358974693624119068736136714236355454229139638288319039742448097927519469493221922999147856371496169044084321788336036037387371388205577765809841263353238410804111160455401858933724268716906791761570103907897702657501645359675665594292148249986152658947202275425226342390585651735734842946944889726103318694028394506682888714392978670262931605641169089922771061314971954006801636095005933856590627338324670852023727057268331142280768540028443173756678267425907323714080299201958765843995959093386556387542341876643168935750998982693266067616429024725466875259765467221731058475588284736219486339845861330971395880781238545781079305394513965198021094177475291683892859938061919418684766560028810226109043752499195618631604475535811703309119003759509924694863072230391230418917897726900340422104146703576076577846130816887634173627523300702159779671301329981958778395139498821212521179958342887574844870781832822630530390384357046221786958157171638969033033548463353694217411772924788689570228118275657305073577203271493688578894300308360549347441696058143069272390782981201298033178893303880204444706393003724093268410247045292012158149886100459768739044415602054187737856340753396325514307908855463620146253170898292602243538585711421690875865479386259783034868089654408346775945358131986882024607780915237961434502211136964044998440007229679243025408691415091398512592901445523025192592958061326366254841110526337656248883867236704845782107650169738549603940705266897393156623513175268838447060939795298250983081046726067469751880042867351778896110189699836734106765838182769587875923206326738999847517204807626621842436009422318717510627825621207569607177772454806454738914929316459390782175407317681608599656133487971427482890040169684128131239715051893076964853463312749403205029781416173519057065638289118424296648714162044752877148441754758132109584328038682465929644267775074374008250910390767757661986075181421746106044735957641059407998815929047132748588313056944051171187329042892651067369366938523729790408896708635027154752294991378384552719566165449895680493316817990366373138933847145903217970826584112830962658665956111424248503820888945812222879081700265074655011150169510738295868045814618533326142108635931195699241841419030788735223427099407915822706399861362812821099309062094154159296584072383020156453957437972281256291643128049505465756360742865415211702648102960230901559010575556492114412737500167136155024601109550067993509543810481171417186222384944124325808179370302499735276988792806925013612424369432907404177129989125345166042659519166415734991015682525162422582910345306767075882503685350040708939162866940568222484280339531558470958301807054743815958268683656868422131911100390805586109075649017832742673423310228463082885045979361751771723645230215518628632445250252423570562517045077873153846667844777421366195561845047279953304425709974921717465163582568373887863626134985175856078004853372880111326988872572474921533970125696031843285879518597856457605992671994653706809324392526885323258884070119867231136092715877941553744750193480523810193170850012928436509131942238019864984287772071869015147943502278387704852091535980198406758419959268571368482524729380187630267636242598564769018784752068005162151028874809814429933297720437345139977956608192608823373736933287927861679805844376568444306084122674235709150589131803216329934637006741257714512374205274754298737523879800459895434306321352299237104113222508827816866156864972676384468183968685059782657041513029723467561420773082956168972851692765861875951632801664905397854274846142161015725825398855989860583982454270225675706661804533035726783889028919489017744752988462537690020209983462782072578293045068119573732314294852424937873463459210799520326359067455684148045701984679984491384047582160929160605650118867817988967135789418780195969036075532621219888289164745868898245316678724949883131255656868861225029003757312481287623312658807742858475174843895232575782241592289126401319676019078206562710563223498880864524163284047179612152798572854102786748485402421633786810155616250778458353808473857980728629014230444311150699327170256423420001740957992704979032365769603947072512710300531856130701689190726301875167688773444807494372082181428847437052187550511096572869626107422623185098330304075726119850874312882474694380221149263253899747732263460632374906735185241166733886366392179392163229202741663060738032634987776251741897015747457296930382894038959465904050531798274909903754556379463945743362060391816435675701404182693912190903882596418711414716544509981574568671451105054481706420278335108321216776816882032350798833938638188353582730758804336587674811985931019291432946876882547239577027693796356368721367563002913111936049964591914197853477364641469826285592908672353274586022456711161586138774026253609008690928336493556936341960849503958856973882429968391575045162500962399807554236012937394889801008142978212976721567822499044862255683503217329182323666106129855404666912002026386017919266199615636332791721756723193940166051257142027163680122067017986935321391297841364756013552581447146727609978689044055383769249959106291695745483129635500107162661323972740584890572908423851086866475421041164699865369082735119890449445523334584465124473414743442545501756798207980046286115072546411865582416621286104720494309281256174773371699664955672633288331784466737061389879035377285232886047510854441148332475923325012820303610646481324456015930880539082090619564188668853734049016704547959657078841525680142758739047792042022168177954572666665310648521247674752538940932222851106633052382197248615458377294717370945962691568088330260873583362302710251430102133979856276647134265181435857932994701438096307053168824951553794510101087531110295879937637497975488055220522193988155033436686039568167474338264677215459710724598432697480169953400750689337871673364556507461610434144457495464387540076373460281328589077358874127152141278174696934948044903617934829183294113766449235551294136531586134992741617270797413821127929070178861598852741765591316778578132613289102187539276719974985785144686429779722656859362923800652628077446919238911638125902132743843310499098349824496980152268979035627290006454511634981799883457230369868439993469995560691007426662651282430150011622585414180617758257044570779361439533869653438243419103379985479204129365418626512197192519450512112665705769618000639286638457393287704437440127967804511752138459911109222456160087767470291167850942188725790322565501638379479325347753503195074464202407392785081952985555410468207124902059956147369030956349024183082820078293914517479404121436522074566837452806630939292073957307950355854710336741773337701821475557774201450759034972598745539354403187866805625272455018757390970866649728684811764824779894896738216450392705419273261488950486755328481786372933073810912682711804283053080351710909374413463755594444452199801539414943571401888491587624097027068241855883802917473375742788435972302136782778680814586069601698984295195478268241600157511442703096119225813292209579305197146779694009577554301168134370531578042551786101167976646251482364435941891275276094223860583055872053336675194396973939026349450856032795138224348600807523120081920725642244094258174198026161684857093455066388799858411436145099664977060540597893131875583741544870899818378415608853579050550899358049189353951226019078026857490630842809643037529645628433375330414583447976887717491100115273005852861957401987538297335131906264951920391064623859725558960240293783852001824284111159011648665684695081799240650940859147141271787754579784112007733667724363074435068459805945872452393430447977554016103309864105117459682879374319929163735879588692565763939409820188932015884025526017832939760591851432867941619726143019851922931873388121137191335210410768917640253306848221230876765158502633783274250637025391015910972987691453331828194265273760252600312993198479105981799644376456848625390481386893849952785075909414384629534629851561534058127123573547624111359881958874499082862177232023203415279405476432817274654291304425248441836455115751716921337899846265072546820296656466025166953197808485126409335016343111679360303851480314133907124729052601383449055386830523261826319810361103247125695423515883299282826089153234152645490878328133362073657262324908755502839000395953917785368176981219467376340778038508699951488487670044837756318647797539542928749143902665896831959367152214656127929429867459667738762469482308004521917032501270585302186055624081265076360730746410182807360579416485986273109897740964954821072502277845912663631506966773155982981303648381347978196141906736759550441474153771322769407907084129378436069265532443675163572149461164767797981472261629024147043419825142602875683901132037034644832935872930975062295366132200190539694790499344916333810365797122222690689728943910058997102386790275710642186214002981458729955647618283893640057958677318971315572583758189724148511527829654102561084615101456462756621315670856262466424722300848917989976880291734619940434061276652971391212162241789222451697710147865430973131413741046697728238515142209530840765137401086100644183112607609899572704661626732346252142349270404025077698788199666550060478282364132180871716236374667160136594294072788470879511892412346567811819871675235825457445913418451934457921424979248304219257524832319563342529384915554168358708213261889025035079454503220796626167523230811823365972451316276627128553238223748119998312999890203379678335039486331357465269215849525494745923878539137582340461362393445094695909640083732022265951888462109729863759195067337962032010218776315639899086824372396283746316564962754364406816827645107490129659601522789996066792805498263186672255414224813455638796971915146912685000157237653423094659206565388288675900729192900694050648163434552436135116856104023546780690502167993124504835324174064906124755186351624963076630994015823587201479724710679540557526630864363325578961514076139399612621202259941728348724000913088339096382301302357958995979614567207092561071112902976318418666447163959047980137350659888094966063894874354918958069417288698771989454989827249840506872229911404302475027358685509881007415912423668937806385815123088191893673037894003831996081784763507707298806889905511349980684370409753158767684430142798111827316223140740066337630503969510304153324485718440007153255775792443697578786446509030999513145796454704675406381961622103439695489456254770099102717776294949470234224160913846038963547994380729792904899630248074228596512875279385524371052032629556148198394666884195590207416895882365481655100125628623012787855015677923943063408887735797432404642490232608119271700426221331330762319196674230764174842710804484252460335649921794662837976527787638241451405889963313566432357189019083366986302817222653462110560743613565240131209530251516523485913545434877737746789818290216225754461277149328114391053110461835088288681833085420118953333359714968628985106034756221135609580412874083626325368771159928015916723434501748484696727165330290539516845102764204868110209196264186187204841492697292830873469622555358954626675632032977840070255239733743961804975763160330180593937806572827110467493367809850047133767972075147742975936590966264193672972165830007173271186522110896328799766279564827521918164298244543421871929169036745198321735577681059346640498620577317760733746285143389103670733775550856013700178583713696247081298363396712998708511524554454116057039087495115968025915299667635720926450612114411722106653439999819527918819677514809963194062176540665892259620428962067839142470618108764900295154645145703227638501209304452750510341862624438051870972919472641410635202669480750493345262374954019137899829919668804808150161527540472736272459307681324010363179799791673845824419552318784069620877359066908032364604378805015987433791113345375228778758094074357636387961922494632240354835892976628220626165531497255482897292859599684154489974446619147404976890990182186443827150025627890201354971155348233882505051648121539227020136390020490706679457738601782666187560504848870072070405229206912329129117436709558980203890884070853937234791555162945897495166023518838270821703786612307018145334202253716407514303620465846701694570435158867248014195846063436466533058263506886316691090035204231066912758726721792846750737272633360821650460016289302476301457551197644340211403985388406278103475532113871273531235992760404016552283621588410669668918998459639689304116837485366279943861438961858963760301035210205095894301939617653239291331178226341142756120216231246311644266395065680557454079998438209468664155820193837996175102778894407419872998931455843156345763952540040709251801742928658482126292250182157765593200590484282987809318271768649889918243693168390659429777804895902185683187888312798605391715556576901781849224426192721538142986128694393250059301381095129307022666625692815827691640480217820883016075051691648520137092955531848667304896588015515550034977243549167723097112022241174705625269837919659430141530590490859184887004364094750170369663749545762900390078564022553769116013791378784136228145332808676644742863394642772714531994975624713584620649117801316210754598240980953100787887690330931951303437699540568730192654090815667123147734696316277785290875941912266366494791201696778786564517201383059328543943295899685286840097447615083959072057726853654090401372279176745559927262549498964166063991790528529146754631040294931242991896409997566110461504196803059898349559569160667782612954430757719423436290497720737411500463870133399595825789639392572147997321405615819171432413396644048753118160721207408516441028873567410557700100184565956117424297786547546553551455924907054690513745954212726431759403580164924830549685226464417365205419203032939353666816045631477054811670295534929654283921657282740442557698394622975992733436076289100643114971847885213352384372844707254518859513258295926161526263401259936066827668296804218396237404271919017710155856343123662565122826210696109621060517974742700788100646254240440451969817163412679288400228802606785389431040014342726665181262331793855601877176619283733733099493726009343286430987921649871074625602009952303927437942895396517580564555775850655741735641164016948804641951839734243840980855147199784686795648252018376011606428218316844946027607578367350372153794147780470535295787785565036021428759207973219222359169337135974633441432971018116908496384352695470810775272479513375028558959922052934058938245217043461843571637372844478285755872080273617512397164109028060591487988068625557760279111525729846944156681487857717395342583285602694484038392834660069681389070390981967227831962661672195037982418158079280622949707777485767744819562305456857398844033356901930710834089565918767741467098451238907923179797697251302148185617002800624028188175391266212123577785993218152478925179339796599524968985486834050012264141919593188522822939107700110544940132587568826795643261611581258070122657377859168122829413309027151011497934773999863905995911952758729344894846215529245801179009948930228214206867811745039332967634944345033486672749849610741193534423712610851745160353540137199566883397497702738926949789921712956225550160665179265012863183224491018950018208614108447226176279640641536955461330091303366021864318826491736722758319698895316309102803584561017095794944403243896553716393051450394586209711424521718411418322987659333699546973077758322238077881795787008920566204875514951832842147721615033721306971426208323540603773527117903232587903405965666999372908408687021008700219355601997196490031591562301457263857657736488705919159039733494971754399529233664929624686399559610445477019086478163288022923436993867897096573528419455418930579414611493392257538354392151514763020807702032377927476650274668051495280997916836878457443101166132431865126148824986671117778975050796408434763864669124391045644677929342907648960317986791807733827156343562184051722625852846213567445031827758478065125798160354161313308877311664338033357355246712677145198252036598709070450452843303051585411283789586388808329313607496012997821080213805478627690850353625290055111712751494498069598084339224629000927914075756641122576940040409906154315680907070525011172689520939560027524211337175043458074027831039413434164200328988009086770226368300271588890922486847492599959052230232415454308852677196946677260405504039832058257100763898238368954711695074999382330293585209003420282912160467106412238942981259965757825997835138525348471162077524335664247592785133358805944685689750688974386385545789413237932077058428570403015527649282408241649373315988325506321349387142108926459470629832755666857636343306145752206711307413707435436636470171360775511380159915558088175224273098546632822211865110417718041518438588840954153253481531850867589557255674881444125694272118107042029755612569961681065835017021409405251505128278068190170437338087414932656056723724882604692147146642254221865405620855876022204867312578003922678633219791857700289548905618798674596803551943879449803244303237658057499152756117949233476176728183405034378848087736644761568701426505984974936789460050695839927323780267006836454406851267359057425774679274419466672775636456116597813218983042710000121036139278554258887707657359197815898498963946032282433705252789308916668268057568943617453562531324136692116090536493866478358475095398662275892777274945925728803349520494081438066177438619491662683037565332743179202193746637064862213820161001383038155442920520764152631893062314532397622834453791939789853670088144081674785759757111942906415278331758564576996475112379693965110022952800208202311221176819328129613006795799888138279810878830126076338756639297010945123906330889037870345795920900735997958313721349178847422349739796147496417922348115491365240280290562868997654862025573258435552380378213559869325401800521980771995893665287442481575378054844344166495766163761848734206457049380722238147362316722346380409511171233238959776700804267151773684738230241335901571519475169463345763396842870335315646813333883516328923102890778092859982385731266266997036133460833722584569683261612011359370059173935859484744552937672096553912287657534113050091580789983217582428829811620785783564284158992389301682559569476242218220254809332628517568678881712947598535760004449520457048645388345920426076338921416070084165414793192179107856681183011487036333610209805122571679258772357902505283475282070108139388231704701375547534087819154022643341156838757694625908974538994514520194226049689757069397605870908464029989703107527421658154087617058701869354533846973382138979492462846565892100875863736361179023828916512319058322751788507295054082963382319139435262871607974879905143171549429221036055569236913673490987096643295940719983341565010728196398527539510375114674751807010745881701707665664855038491098819691882122497279712037308815941746682691756206287832718068752610615272053073137323106602436561365364608601730170813209289070655570889939624210594766390110520978525779231718753640557471504777664126822227513430880898987502044093110774155305035935324366422712634911198468654563356895333237367154214086717802115490175239259539608110779674599530249558138698800585352157216366329119811466781957641685001231361876167605662459136272182256388285798086449366230834996282431736048350920054280630429022419362421210332786738877516376768650081312464484778572661503547427825802044434302085918123833933976949782817853451645730819718708292450572313955344911302212106008275635823982284428931689419191280641515686350153555258455415272648350586447427487798694782026713465689449715528024004897095232914488822813158274654431874166861506722884502957360031189345499800237075907252755536291780469205117059272585150509796063188502064118254285955345175412591198829918431759704259490616744896885269433504917851978721145627615838528620347767611983940669010503384218124045609254757440673614542903251687110480673643719864477986979338743693466305052395589502678631088119294670336769329893222111909129029313281808285546872530416958056713811627914509682476006636458710264099531978610764156984094003310751120836122201780648914835489873165362651770653379355319701535196294669200096156772010445619106651630195791533693145619598194819331463108200266920912038142911340986602243967021081213704032570249367586236648799123708185587139833496843701049485017387612914997134130596718281470613542283659607218190711493170224595562569903023089335256588572223681718506073962319029513623996066103875662008311274267641906420936258699585539731369632041709136069545646508059787214697124192247042916354396064628551819504904090160351806548500358293555473012285064241867406296267810804925673229817615157174879616859458213530315161142610380927574782432044332326557835937931857055920279600810681632314369031848823209821863335434944788435871302391292813310221874024768579679721897289743738839124663393905156253675860521404721757821178738703923191541860226275566754606104062673360541879155157333227034957930788008696978925547626266639692302143176077325174556817368550453535042266424245941773043465472087349573299616887293852618924275218530532483458798572904395143757473878402318088596756700138335946899743110350145491679668851423636752794849869580766670224021215205425332911671698943926799771680496547199457226238702690551831531245183791010307926004260294818664658249387400233588608724872238681363889830523491583216649479592640305737256731613365920248290468235698427468733464463645905951444201520419179762666639902999666732134755277437903005790651181012223875865289002049490957849647526774126028246805697647790546667844470083246746686449009518239328969597757019643579117030162099333300320710332601688231231441993007354263615245822331493960195509066880412033598506663298583657593374702986969370932164564520380916648730821534140221739029286346888327186524375123537850073873631390638370810381175524359250770906363498646280359718612159458950319156602793419154136482427065950551099756019965213477901299181730346594211154220919015703434985762089159208703206791836527753612795402696563257322399132127342975951473764793157529646964347704942207253812138431059254989074792490809455150950401527008035611041497598747810190018142056099878219807980926771434953823587812702311278638731036940565803080767978405563615302264886167562477909608265209677109753732468991314560387503165961851449634115988557616019405033097947673707065450860905105628964686221319247181577837918226909378541467719849040170975895371135798892076730274155018310376822857950952651669920894059034358991175923790302781379124399373112735003554173728263024916386249088697697771255858357162714932291500228837358035488808018980832716320654182424455624616538868839595122183526189422789351294922573264115638227564463120311274600125487055461618151651875071151393066202745298826369283254564826655248074784529398994216777654208596859430517496805749950806714749983121255257716875223676826882635846087560135613234157763230840022839525605451420972464382354452793325051472831983196214181998768036057177368180120445729328897644599650679134018697883236090936911321342250082294706534261654286382309562607904954099618222714534454211578895705317848229807458470873945613820353892131018166180849015238932762797429584034455462158652012570807093031518219730460564461900039784689124829546447788336412612754804414962083336088700798425843811138251806206737037725164284013440531608833096950564839806390291192646375740063735933384526680374631233505074566201104380635599592846959044710673076451953396573922604077717779702677002402953911642358354722757238858121886095758161466290550438825671353998089175310073763667286140717687548102999152956350626454009422118891044715515443373826496203066728687806159156978104294485199237535162597853886172981386129450941993155308927365166677987348651327424728461239448376203179914811546177225764293602082684231711186616681403704992654927662947853368084894086319414711280402168357666658646003694513610847865135943982093392109629905191118546894812167337235607795828949225515925929713304028481193575538785032402554401727959814373925538861643937143452368464415772441798029311893680621579440531118991299251219525966655395361776770858691549057045319314209583743766483653170066433870235499823615926778756036435985229867590049407378540063376845037757915363754709031312825852926393023832056298454635813419757906540113139209915152131079553806536590075457049537142797694474472937772531030384318300391368359530372865949084118447627924911441510315030986599083774070760246250116514217961462793527329615746231761020816802717129537227261432928121879994990591076294697636362873806426718686301702289059606327654136300514417380298807809682819285824599278293731813501720162363467455598898026144460162963796736832799754422583945767340074139281129120684927151484670578953823207421709842138731243956988768930359517135984761277580220145491566795431649324478201799879016225250763260537651437016148990132209435947259100320495561209502780708010944132469530827994469737988587571833094272808512645014366049646798345324169559788753150824057894370365247136471896438059178548700916695258507628430935089903051725204771875603568529235235592257033159467761962801907447870188326169896363862977921915653630491204121612025356033941996006613304750830904413990234687017724816223122632478490535600813185266760102722962192911727281358797725536414889919815792134320852881030813510098570319359401190276795386715618293861870629150241439410623179311773554532496527556194314184389504847625180598681476009929610151766603333870654527331717953140746394806316132175305871043044908256532544943471506477442357278620418217999635695176603447973983446652220984770682592251195969352698683905638725268819955796571028435096451016016893511018670729479342982506755787346625399716329094122156831425738054897643768997316223192242305985096509612686762645976286334619807971365265351680115390716770119446639916503157276326925140825843835265715453039311318188581835500769691700723888889922287868734738755446573227708843766730151132605897998396587547701164582659966352506996034889243677150017939536591445170482377117022238708523977378707768953949431695914189720451193652947494764790877824652950174884024113288983628010893024823613371289273383788359892716181951444401575378902368631678855410556223940400972511286851679632203925418279902302497105335347042342318771192336741651971345776608802845529332881821242047039704758172298585054587858990577965352237880227105968991559284331703327808534676351995002917248176758865763661660883071601449524657014225587836511863545536605537779898237735883116025053316008545802437458403828451398685234204514919665449611858857049215236339855213951075543529870286705179701888996940496793934749297114749601952026913267931525437954571380423827147831847011621959202352012450404175152218113564555053708350134512771007907277167684057156098110705220023766986652454903129157741780593753544799893224957167312956141450619364530116544446457498965344810298862721984038345186140995726932372995798375090542452839593529332041535777226334331614416669792511495445998202188989992061511277011615751568418069392140024383523939846895965058270409520151325471635572465166422226368415921445104149548380764755017563028343099517245084671228727668295374101221677848325748124177302949288973525950938339464540740483603835497118139798388474729215650172421207521125693102362924137427641538775104387969534184173126749730916104867963712120788822228155787876790988014976294890774846209803366173356708561381986974504918724094109404549059253714809799778097842262947098066983520630837928412858071033858684516451019601937036215817526136800002627584439946427539438389090296756864086710885933089164805019583116331843972690856322110305195068285478751525892807134189950261372361689390170317070690475923634545721461630915371627756103007453459438859908501151654278952350878014476147053489075806617491078734717168317652455685214641268460675009603360102526115904935327448717080331483362194707889347796943563545559518698591468397620944860311424415862429354781403924878575171185770598405837948408091880407620347868675460625785442090726962975211187492872749453255946360204940099182993980701690862679009367474310759334161681271587695561223832429981635017965393509774244731884879156776168442086132995222202410445736199983203437621113435906380270318538024246545381171415603508147218410446726982023401837417114031580038709922583076386535101030296323989836700448119859820634836927545953536832310770456701384893714908175357727284618863181991059527143190179859203458110947112612672216024188002811589684854666874148317449257896074216535498057924159209826557863701814647052769081723832883270950097422847359923829693486578563666197877030995316336027519162364898127129029322546382327390066697731712175178469872379929824435320873204740670885828180351128287702901773700919909386834592201758517497371662139076312705131068955494175652243752524059948975566042873775869646017331468959732537206419670400819732099403493886251873768072382884213339739428930430846897039585562622314464926575392530728642059722839045515015447163311338033661938440586762360931675865035458177652231403412646866484567155297918225192513220291864629202035021876461873500072778568623653460231926779165557191960050609585385141163260639238523473795841190129674616249061136130553486160585409543136809308950439929638247231718654263366745620734065127838975007554294243701029046056084421961964587040595247495362786236115495350051854409649828566597247307434661240202252704924363665623334340094342039227624322538704786499140625066487056017110647357478863329132331298360655338166172715186215849814837308286606785407964680613682872099985615349765968310844574736775737614528922676586500466750786961943845410072116627430608208700400955344440516266885708178055170438789258269598849256719640643648456573406643871942157059065985798048821895299205991221598475145879432593337144164054179970155062715319264645735785087536479402700610744679407430082665202170093647192635137660446737107631523117422452981266256414579065829764942345945496795281930703307943953878410184234404890595288670210569188423274256689601562943282890715266264766805457672219291930247790810040792766628331456345316297823644218418651405979061853096076725555823856108035551116234369808685908574750838114895803644860758280249717263584606572920363596825820416511910706719381914354591083339556745108237998637262575658852171703812248660982211051456549424312956303410032446150605375224233003594036855351279704819558482092504528371861764983114944834427502435129331939029209938372436972794274307028156697162526122912654016423249454706314095330902612631567159526260938198085630061875988753973973382139339209068383445150545870571220131629476499433450045069270072544752985249922084205792872690421325856686494382001673745753640977366097884483636706852087065811925928229097905075466637032356293084867378696332237049930372994531835741398112734432722525632912393518316797708654102464690640030085498057850849951196924724087654077451610286129175684825767719214681133994490588144399676864474699283025209356233783524860420755016582501497404306968937185320146856040033909457335238123467219317179357639839850992085927220453555938158804144320329003592217350574264020233513962796491521730581831585807037754719289383771288627348220647152065431315953331802013199971707842121360570526429955597965928087314085383978587898238672776401739637003953280548087799535886202453321626070313893280111932247042552963810967014894743914141383322401234459955852781852257570434993416936705453660394415776471811092546653034194232133249214739486155637366587306640842629455147879274163218492748677247715935516136951516442578890037676211275012070056557613525404676215659412203423181595139616292760105191540360082315050035693488800492133228014649728243433784590666355714514424309641751585991998980254192894240051365049479441998383918377157278885225777819349727188688530125952192407832294272708543523919828691060645598838351744019188000733088616476799748097677682100086698499475091962264210068081690833948944600585998674977117593909235050319499171194436416390526986659138390706070844622758277638843962094843525133271250749429257716971684921540626220946609721384467411558073065225107448492854072503308158402325389392170717637857187908989622702093572271472529300691652887286268723045252721363682589485132302278717126502637184492088530753413187459860693484595113038112218307196699606558960543335560406182026661985692142406594288852226965540776537875439471924077024954517605413631333471186203815399770036644724739447389857771118086684522111946685831432855520291295056223118768600636520929243366369331365428366873875855273394547318744012114718021159854969011070987406852468838961558840706691276747854416973836334670384069634816694451217456878351864339025447472985463839846758518692392081675424503796034746199161518082313789945198364148351573722611060974827000654120316827419017400620968497535177553365457665829178774463957418958635436686594917780119718116051561650876664505578404605973288831701483956172722914251326923458888489449545091671899844902955419277064543886579807772815993304816666090033197033820159951706591388705958220691125216433807313950931981452851422919060013234700507969602482915609519024534939683984649550505642078524009973115966524524921723861348144640535986566413066694970150235634809142822139807249812999285159108195797431233768406588182709350178158022802889444670961127931351577989391029037664828982398164400730874584194269630644616786718822669380429769931671617992453584363919833460117214453076535837110260614365629825309171038092490978631256900610881006638181770948574604181973616427468560053478889619513882720004010833952418717054742581654209952184211622943757022930750177522235885682178073662357430226778680734350497431266372095009378733903279685989677916597518114125883392201236306984128564661899537409816607886874313901146229614670388970101904844351515979128111183847676400434377895222879635931971414716543767342707995547402600648911485602015633372265863679923731406696210177249221731007388217553201371229629497035977106711028297438535385517308016242713899500274216334430398454925170258223983162787592534040704225224466578251602246681659631629795094807313016469372029310327846122392400166997380510863762327883596118395900141542291358041704533494086790861405332569285377652477464930416313388254380112902621723595560097608261270947265026475448940595524608301520727324582470547177030365787600352283594188329878940038249016303787915225705564712401566468435379201921546646921236392120771681096185535061231802534181864852181880967988207817625810529364097959375513753085063357816033520012591312553055053010651803274342455086355675138367394226500300073205240621259778818920488231812158957771496033611522778434611000699675045534508910927774092615038103819238209841031150808750441106704260268272084153764533444958003013406503249691388076369320950873776395334724578709468067244168881413295249985880128058339286225265101592096516822038000098834038871487889661932758922209967160736124215996663641525117222663130918637249351078235395905267326884633790192338107532843885321949115684309407404670302163662726458148863441156217889456904084328841186712729469786836129637864216700740207635382439330435349056482425236914914495372680517127770791134103124001281883044709691988476170519354789658069193319931055137328037600121308124512697460640699821738996263402515402006475996211018492848193914860184331234611052188878979982111406963136506262733883456197316724639301658785651806025000837608680456338985365366082544615187856756072799292537329550113853490474815986896598100690169279988261541310863310174925018965792082216627633954891211057011293824365846588698250129572009842828079310884280095758932882118094089785393391848337441677619244940243030309652732735786152406991547762667076466820017847460840069573318721259336431243475919873919881009613916366361249028196536378057153438870435806217099389621748113142352176449649752577298696121963096629670428834849256823321260723072896232204129752505843302307691855683924696842579517842585151866300208996561040146513248012689871190973026412423101135621773069066691818812230498727954510932018487308886239495796109746295922417976736992629767824435118761349880870022623828083027139262235553887611219472558255727098075548962108746633335515768480263840582512432270476393396076428010069098767489251128180688239909275081592617983511067724478917539616931859224421263260942997897279291422701861114765267987476628764347840970002785459826880791932224986973864442243281367602527193006165111113189743458209033684070137474175003879999472117960474847422184591517455914118434615965047475168772962884512816757838807098360477891482820049316748691067826815892176178539913459490849200245147568763499397391671226471435520454170934400030699427073648172669692339856260258129141765351272218894160248329730822550344569337691873174478994928532673500122253546748414476402546579234323936821078418560051956753089928563515059966288116712653805662500385298489771627024818203737358362126741242295183255464186144400282475616086683365214892184837114918023490921141147410760425845262161771314688167726435141656982149463227539630949604754904830650384529399937283653826522790664572728835310303370958292168622712696945358790756304752242008276196490632543688737397461743912643528750202734354240297957938930167281002866040592889462851866342971569227590744213131224848718226415501768197722852098535836438090192214854347330036804910142297834914496654288129288583158369332539445911103340911001728086410614711251024710521090090044806938555718966484313963539187114153780201110547016725841104598960853157218172632125979446871747699234038010138626385687645275510991414565042046924603396663698752459775512226318500937755314243029243108546530563487273102490967205708823853620526792645117896566815501980355072639486826471918713147829425477670322582816428151446071706410046966117985081509824413700366309648286738277234636384677078803680691871806887023613648050062620811492743524823979795896148640385559949192445312710180167855059500413274186988345838372440613338430545005498092470211155405640848888893919733611038812216636510180234349839991481762371298203068389815089946897097264746372260714266128537068392774976749426417556138148264735964956737028303429760193405521502538914540737861989601573098667386950409243150056309959717830609931600591160150645444490734078547711666714146451460010680494597203744730034035721910959330035709628035338790384536801454414025059893668567377141983958751926195721684663425122417368833203563005501698745484244635422069524035399260390329189944594403752695647982361669693225487376284957553995516441172394580651960215663593782087760784947855436739655175861321761281352693416526211479578643000468317101765593948243773757142994996628879010368613681092925946126471914365951697312659657548270007936135557765651158033049274380613935015648986801168152573238361139987192860458730039010553676865970088706362160564123459459705282516310996253023470134437976407776144764722773638069651130967909771884753169463529454447896619686611823735541125227063047360997420798131505006953007562324509491519049634503792424688856958659066592187086069845275859565436525814780024162707937521597041531616405101704298404983768853485782296616223148310491070897636216009207046334820763398165581352112649062976002240507927893243238435837686126187181958377717721537684887376217884956213973914248610211886377659161281285229850144755857247286221012349102663291429182130275321657015118823063957560794572641015671447400592689113122454122364375010796567112631166345551707605946403121169878698922397766432477718843733862592842533446323497955047799272234218247586959612419931871464482837362168225352308655737902281390642358921319406323573765541009171326114824784950002099819621566138836836017241150802328834500827974648857681247922108330047262369899217354654508158370572017843496021897950921184729982173322098176986319416305220223634534154882686553551002184606358980906791600877761648192840145429387171657978179563736716629855410780652931783551632276042222192133625430689553181376699789791467654816432738807573857817648787380664727868890044480441193715727256068580668028686993041805225245377273335610375599733450172649067375457791253376341741461175279284105257073053721176315597494266871769453103994596162854673168574219881521242744894418530677403622671409020130277411640628285107511841678374742031020934871524252563042947473810168268322716124841902970769275616625405591366887965399336685932635986355418181669145979125879521209098298005631574316150943011593247011132606105473894652707422202656230284867905664593717739091370438741322176656546169206218918328440333539253201692588859259814346364526486528963079325233584865267460483957255418798365238334695170738729554669700899352257251188368012633848334232653699127214391480431426239186027618792756673557794944766019840708618282332061561192583517567746754081740373632675830162971692932548463928208407087475916646400678426445634038311739741821080783641509367518109356624740083830538722226798686472311367884076252570088214118215719413873493286762894814375300950205606146615329253169518854530383354502267111943943236928090020968729045170663157376717244873981272500940348353056726244508513936309950103792863147253112443532767304250118687862452705056727347517122706777639944958837801763047072755488493605789104062300673763316965310706411619450438554177946833490367809280374487838287392021427909361292199657438494446119042844473165396559593037679293970098698880455769221650823983532271065557679967237553461415293569409506708212281627923518214264607767705406546826410891601635549756212003779436821859134943815555052409065833978419968473134387797957173013483410041128883687674406728705492733175177849367032253324813027636352690547627488191364414801076733289334477250129252091941684962264614178104836703904133861596273608075186322598032598318530437958560057062075883765597545705589005068766818860499694530224506260483330815874844209466378273854984980772663726163326242770841808587329254444750756240066103750494127184282327340906149381811626836427340777111548710894234297410176889354896267476264977898949852080766827856836978389798758235422252999556216793547640891297019056588858925826141238997872841410345610591781357050177941747473785562108964628847348171952348810373968996762642057506945667891137120160417342999269000083968767243021218959409475797410990212986500406158066606562694262763966120152804223725790980610183098283379923106689829996511377753701974051468206402734077629152426413661055823299139957524695218298645846910320334581400562825547466633138585703672962520995729488251580137588908947239863995620933321276683459103088470836122503463995613683116286389443644150802247184850133972211544247627391809418477481217921731203796680401503450064867726202403389409067586552728474246521909108193080848862918246872057215518551417442788148128297232471271119779098089814855636003975490372017276681707504820495325153862437355929867185449968599965297295380192878646996888209542620205090655096949383613151754687921801423015042684078132029849150642695645692498030116708382256912626959208363026744139115511523926038243162561977043933264961757261300229337415031465636022204501464278435479345597611341624200527587828428119192142546848201230817920963104079196040709679284885225747432732799794867072330907454813854575732326620380657053069342417267009743680283423604350774739310205640098398499401807516506748356512598721346303990356909345349341618637696352625063081244866876411586377276374259264099615709395990003619291872566757073568635585042451077486498054172149984618105844181683818982581450925763512895564906102093456518637641558680030494677752823083217421554255074593003309040622536158882178144052806724449032920557549614873505900047704022694861440282105437924982987854809291576976934415572241836322369509282387061416837015724199962430633664444797395044707972520639114713147319201206120713175547153350604416846903700266199786084434786741564375633454980258296076450273601624796128228169495052679874994881306893491221550538729342063310897081144697792689028617041300355555910942258422712194706222449984453923630328731243305609258834178701432181649063928998003828557767333425639408961089773522483095910192391565916847478980532566904870193450439931847732902340862177919976006552532472372559996673430944943852587912088326071157029604821988557476919408260218004464114139169370866178834400034720589959791710876526462480759166407861706775191914274682218042824779409713965898708620321694494696218400918176009898542308023571518592578726616105691573159111444687807532621425449630664859522071720474483028579038854619061680935421018281526604995575965269544823181577068185375571465642329629940148853368650359760548232051950112152631337165520119220112753255218457209871957855155795968955498880720728515533390027208599479455414992045573134179855582919491392562405782526931254403334100215182805933001713974194718692310232530401995533627883305705520112454071967503738086850253082664073888729527279654127971176232196261609675771828683818003234054080184328970678051395390157266908305684553414801621788838327360026355587801121633098377018602531415388684219837613152361499560835955307489408349811292324244377564004637693105204307510728772569967307356049501618097913750232918134318860430749995768868471020657563893943781783314793263905113357569421043395422526587976465594254453391639116809969466999534182015311651943178563125939095389626730535286087857687490125187761879492008846851134785931534615938101375980148167986342421418543824216071656547130563093263559882291902316947256075523639870684558953684791723812355756918525458695777786024111983005685281114263336776193337794803684444554962357625623705273075432766675170000605307282747981429433513630509279778834615967367677226558223355922586880926310769321385074863319325737699108898697003539238411507784839140813746512148913622514240370833322096020324032428885653378788929110508938292945614724155086181778647350921969538643267384062203805882988050592392624003975310809962480077602394667605252940201729985060647825648883323254836701067813127277535675651635485720937900939901738399995665813038751798233009348532020156828896447518748013509718449169145792544242039465266508432794924148316998884629586605852957014881503111272118730300211175165861888035838160890458211770541544690265946605095371217348086128518502308585185930270283602388189368946457625487074165131557473396336209485463010099607080290399904934572594731548316482123602157168345557382143148248323433083784356339948924683150577584638169984456146205015834221273845935544877654549149025891174140941815321418910662231084559123573601182474892112345860044962186438040135884622453715440143457864781189800167239842064901037791705091106477378536809601377757999131966875159891175829938001711815317293518900574486396682682253685625107095490770035232646612597471675441158307093158819281711043906493724580532753233686990797502383781912457451649575856412200488792244676951253718147799912130154418325607531338396326053477036989294369694910311326508303737810047357720383950927179183988939986081918335450122445217325796924776556751311147649972081339841700691922288907913399408495787575615692744514650794647245525023926946714481513003032337348637039928798780707739988112941932490967248888921230733707046248506626549679257712408677075755529380021548541252514263106360172370156082682947999053065092819365896360013810552345941225057865459772246044533266505545471186523702310556472833926780550375448385890402202397065947053697274214880908589043066627864553081618740141705243717323148099603833697558480196558506472182831833040204209224301329622321258311806544218684954910792971851011517413092261073612265372713056358334657940217843935904180814189733361286560031050854507762171040458035958843251514703904703020821273595523906238500778839459826630798569256227748717815710864187168432350288292254680468615893963428488783135632199441839336133130372336000806872436128987219736610933451644059595397185147301374061572410278302542672051181705364051525195402455839577823125376833426217033714556254328843271573138250665812167804493865479475401544070850860859897060547974975391075245509728841278274989316152144322984959468136605842881237438631488139934471342580795854993592600451102784060325522362174789139784768329923905575636047097577278110188315328602968851151783688838386028516636797319980525276690052951976241851722646267535117167504263626383055503086798961666840530503073460326204810212154922801188150890369140112641766319775080552175405041571047552260861547037797158663540145084207681524219151250218716793531313226707051671351422728148154525219066630659719307815608669983614006033252089469958047402183579663487639779739925116239818062206031656098669522438689687353341369792715290477743697813481161930841632843051799699279450918956435390087927742674460073845940837573501026070631257811914810923962683076809009793648366031358628239298155126602376932980893544612207149775104621444368309662961095596318999194316532281194606221057838117323597533685732914007674319576056110931141683419107099949203771477317438373947877340305226664753307878430845061823794224149946944279160568282975840908630386273168333376923892959431677228246478861694008292263019351822734130154558005677264406123469824396841530804202830832069870744871488263222562744902071308035631687164717458811282024051372113497764866255414070011923441628517906079786321395410989528083560934232787481566706543789849616490246441292130800235547356810004847435084813947222456129781648282695465662676910039966565545010881768877925857535862224282766151574089520764489546372254570566355422447520577896933690881488520621004280644386163763222881343543329461369278446820190723316497772472232517859923522614464023102880318575664571061838135000202317984874683837235476113492629472400714335564768220429489257777919433639199132428033716881993892303013889700177886882482912689587784795338226648447163761532245695756833549370088922826558028909301835294111821708291082869989472271010501683800523323910754739110459162016887466501878452396599531406531038170129908335135863848229272261649494482148768051474157629525528041877783515431614674276585558496328288232777319343619396800861183974949497439929990029343078506296210951311653986906324023220548089243343201266432419654743394813856759054179283817865692088607815715864361805969349658646206349257657800447193284006916222309188136325466886346159594016109259322558530840952076941470052141444700911590625328551692025687238732118709738434496315115291628538075776337169310978234223972062075470641087863220542841990703549825487799462328124850900116692979844344995706001226854040967932913532848610484076137170348500194521806118418031305464776351316362174048791464506265082438764906613086092007639992079130848208956523808048108148733864378035666936935953088464485761984486118687545992892202296158517405581607419778468246759916746329415587554957762038793950653626597384780579880492294662292038617722250388278758707146091512590009183470054617063127163789726333469265679228993288684863707071939611128041260610711337616753765121498973505721242977202631827047985711727583039278445914264897422868959290233057083024743976330464358933642560004450856059183730342859980575292166255445027104975678818992171992406022264430517262553040753304863143245013189745643598217344964058658296996769347867795169972245636992588244885149018144536140061287270987530597946496638687876818429891287375464959795252375451306721192526403589401802281354912984319004242793689270818050552421103456637529926396149699616872832948329865607681467338951688447969609714505698469039208355285391382003037700128987834032494117556943202121935438682537444975058817353183067637485518415306161020202865541237097839902818363031803338634695063810196416888996546326364109260773869009070525414316311138162703039277523899042356884825955109575890202535303448551023338271854160996536330582348766628743873768139901247070245526503893857110887860946216688634093159028470485369632062488499150354687003211866743667368458336285727443975974745604958220453453130602663574237514652248556665254041737381851193761350117143213597422258994370127930328267182370493117031922070259457773905330121514350514977142727933049955168709223233821782128681206533694428302935033484738151336701563644243992541717289191345686528988742240420323292200292368960312751512377678414973101659630706760000674862469131125254073766555898395567677437346997510786549907519994553076745164808493719639988350366262562430434786053732550176468050689964892268689891238985517177197511588221388768748371181378217676163189541849575502806348768704167072652181555292234808004949275872230733361225510732218171516484724746008527690877613791879540357406949980206689799212435936608539988868473713689767862503771527293717738355843541616506249411143386435742115105594203554968610003558322473273892855142984428095004940898908198270433812617395493644501729259261161666734474449100445378139188803768722930455856345817187784190546506636394517282054483121173156801940626457932619966645250004248255956200147430634702044634301855014267932244841096076663064540773933107785033181058520350390277700377948031424104852684392691638034649839572392028447583399093385777481095122813525770360026131393681812688970575999317486107002314483608443785689627278988705317047525822840377126005117876830307094851048083472936678921632236314095475889592599580389372455192326836096730333157493334562170974402007096812529308995671727401040266588222220233627261406498771670476782180347470581622479028022777135421475887179254892080266253467033584550245452614428383510663866097662706214560128025268693127904427698686849493741898968642818273452089139586883070378662251843117531464519778472358933174781060625866439971017264003972706307284546894349070647078947077297113552705234103625829460457472717240704509411803510255552212849317686208928851314024223594807953212782741807265545717400236657877919055664420730380816852168970734533537621761222063840777255745607044046249755163149515038774724440675044910263160987634539950627509492574632503695918972705170935886051725606117842188604132034194211590122854064495429631358412284703801401871976664251245551158554151585353019945180987786591425982225913269253022665473725816087545279204288824905117380488208795718696219877877006900736522638264500669411012130158599956126060794227743060499372408712539268411206552949725182021661309140998131322027653252400310688540814545133312452803956386779200463258887660496135357039382375909186125722429683138561888838024690364367909108161437364452026303597619890727550429171471745439115219831419432993166624501511463412769051402946837936392258010572424186294767503628263783178719104576152927071495678870802847776509009785228175341889576907096720625528736707170113155024506016637053620993844366168276433987243451938440797459146838892812040185800954243783589956798439283016036961928843402150798785628927021840693829409518324044045180660065264374172766371018379290443678483872335938173570361892722436778532050285307864541584154795477824843675495405725717844938122449471149793714302634647762464943561433484229347482939061994398934911597004730739257682158569327612377867268972300864791626287279402740680439901467105757767125840038411810410994455803130706723444321026435666573281055064149615612184532494256297068161401085251695081594330205601673658863579468667111747542012649041180653206947554485343885258373571828195669086123925814550176822009189292314097942911479531859688470954725577479837681186429118005550462564370132735320183195877351781477529306616367770615238880912367617069761426850264563838559103399164792424002603077198095071789118099123042195605780070459569196597519240260913429937631012428605483368005770439137573109959003358059316768441525609320123268527451274200975396956909408385502831696108476034240758496318477081362605760336167260065733033139570682613979197463172406669794462096010728820141997267878065389271022218735944460150378738344444928197924578908977695660644463701970598968664030421137036285942753138717954131415468209539945658958877081992652730409155389666987129473778521635495697545916335969919629489011976218565950085263398374799229610691301416886759957774580794169957350760284397105983341351357711849119308233815590769124914639540303897685272028155425373330110152160258929257557829277775711630473967197402799938534442293645805551237352451249885386688744716272256441904983648860975327977816843688702146539433482472859957375572549808521407305043492371879916160474414901465547073205281644163179812026234251081358052044623302263994796820877526043091019929215882197425216234706831156875325051513294417276393560129477416800465352866274114738137635350196076982551780459597123614107342535199674083632802643296868667683985460632965330031925019519844149672045376044752878739855772898508892885044318611145258150146456470991075271587178264401329585757074996310118566565145212697721074546151399637465026348648220333010330260136817990170452349092696404495141678219253536032388423668614745141141887569741473169486219607139853610755733865251870713500140524895595887726276374437275544493360591897150636669110272900075726058395453635161316678107433692384295146791174855103510880894762035161908909518271925274700502543714799280142662065311556086613161267318216707078840533270433585969231955922468176516109291623467785087104921384217535823211094829808542038175741082586483646860860666527553644852058853187924752377558265887353755904353447823369727473757711039664508104382146077885535165031670739839131763808374039402517498601516610331528441212287654724756348277028872345792849839135720887541645031372681387353274396369553342000256900067145685450085368196478719875555487581091195518576207879853565135329264038209363513324425657445032631588350866804988524569983970041919567617045674487845554537081427423937438503860688992396496344445483676637349339502194027189397837856950921567350760958792707330029630025690633185237060272379151779940136418533443042379009905407902281934081396311473139895430565113331709400230040305623764052059712515433849154757904640947213264433511486105934083186341158644356590269857972265194328769329581672174076482086644170096360043642866927992843356674859376241260152408670286238764810036705230603917517981739208416723821650826362469219901104450299971400723849755955511886995449788792581317732897588449167625138096499300366051752781234400104914893521420426794758197231980998407844542174491839125990208131615613185952444486509464964335023774702271738421581149016277430787572452627110575280819657207872087960720077007713036649936646936461525404528818769402775599576641744273493707206786961613692363893300250204061426417663542077108997037299840121025488072922556726887979633043753604527374083743559099543679884098281595386371572929702937156855265227542253223811087399068237668603979797118771570158455533450779213979073080578918922833079007132999287098367732830832030568014794924135120970287293538417842846421003441755287984001614297990596677855482638811882019403035692203910420519480071884031041377072526686493590136618213186671140363844449730877053445216992865511520241083025562066136185524574752998565101870601270540719219313160268150129169853321583227905253279822055037362052579715383182051669657261726754017518899369709355724074526423253367136397775768106687757299450353167018955035884895017755482733121415912481723289203706136107113586301653672308485705240886362984057142518240274587402831984484953851678839253664922988528869845173705568481678305734684262579166181770226484951720977068881850280087451671386840079850413358968056456042111185471840824029568733292654256612434567831846996569969547818871353919317787589490392386689775313745522059158508517160374640135985461675614233840034387379969961654003619393899521199616562118975668399666142780829692970290291286958253014828533846884861351949154682737125136237451500914706494927152609023793427524583505557290910927006026358735978149356419234796873228105062216442261956922733232164503541230478303190917837105162303070190579508512637169728920138115636917459664415648536525734088846432668128380584232268180889170910390538224419970793891867160676484794783663984364342858780660799229476654937371151880573453225409064993942524859950976960641538758342559150017158682442135622201214431830987679918192147122906991412564695795964974868054276409779864414290296199164726180687068014059525907790953874840012154205377332567192403636312620247691672614643825144131239792119827880849932233678488659198408314345311296465395733447459487461748354013906333260347046871253328336959794730599766937190961642503904957404156765394864500466605280528531380858757057350614454024934349647953945424672798394378449552161563761918953126933721092169228730707816939078681554916838579360902185818156620974562840763056243941920298842061141037029453027708479801423214524942458982457806337424112620306416920989886446810215911129094846578969511597777068837537306172209299244221595933554287913383766955532500358332790892665757261415588706607266630963877694915979522205044363805924129213489467564623319138984958577088508406041691166304121540340578016031078409103463791854020546087308877654476570746728720372880591500271998118602846147481129000308061019342083650248816754078080248288455847843139180000285970446922882468008033352536139875968362127254650513788845708881808883669906132306658689445942434421898402684361705572176098277711006912514012855381080789861193855919394262780088160583887846708948293777482959472006350361075204383121696724404000977806051276518886362283230697740538092118150887063917711739079342302453448501663264515304958044717595679009353910307915909605593510280124035846568502739041614617680848263766528264306128792118270133444161525605768043843557572197795554045599383221478893529872553325274445204100971436120693944241700844774827194066831455837053756222764221703920866167249857628552765224653491548233596502820083195494140293209153999763283678187454343876357166403058056064477084628658146674970517014050941234683376833874291895034838065919759672181203748329634495199830455942483499243315769654188010891323380594685409862879016521752367547400024506936033969027859149782985586978463215583242966789499036347871359712298939862582068788613942462559486073289288605633410652849777864659278662535318445749595137499666351945165070914647487949490388753569752196566195464417529234518797095821797885299359453493216264160822361623065636497285870428886325095407748681925094400960707787826159557036845042368615634940166291439839300453706458049667383544625053023877051959863157070914462497771304954387694426846872396959010116323984621661642924184622408396101789845414822991877776749614496880328199779636384971159395755305883264388241162076099524145609001445535413442692028877652415938174694190136282154517462048544455437963678801786700976369704015379715960824011899798277932782561942579110882385869326187713191773106598370356457043900521281548606855391340146311253669999878199559877531891831433099147230723841650154895615603916973075434490104819383972291644930807069896871559357711392064817910769475246420050414941225370065961783195807654409389806617964985263298753128105589046704090706241102592547526064982191160742397319497980963950324382762583077066143793600904337342866526295060423259329806252276295141564456579448316056290078414997935371211931494585552752336476950176931267568213561299127904136312412961320067566961264659728796345957258618976925096963910317750271772445109971768158285438746886029655319415792099583699121979966427835391475024478334330940981222274271453626282794094898345957736520074648438084185456905911794952507684065791034549867625056153046244562501143501308805113292780696679771390319730765672440589184344989047812384974290931935486611812703411174842797974826184416775385406064942364997127908616221780590121460785912131966381280958832481013807922762187839786137709691876380490559999673797855244232557125694567233958095348477684588714934473264498504532426620963099917261382352739454060087827401722473391927702123687441739306002876766714681155204057194057312183224669182246576152244472525089971690319801138954114404738534515425052047782516997087258626342815738859484026613940117276624162045297722783743747522067986338400135713482782801717294398420214348587289619867110210552478014830979082883754520087473140097004743754341191546779795975804990953943879404816896930675531093333024026784212571439905545943617274255093460643188156786702469539763657742522052407088307133533128479064094840970397991660536909336539044613913519147684076703026940632976787815589357224128091792999564223452169216109623458596032984755970206226227066538272207701525338885636707559978163562246214507596208101808791057233263547931648381174163442694240255017765197806553092097275893777527560787427242072710894007603905610551689112652777770426151418602587769364770204442879159322151337315872484475781536220492679732537123240854791148296753596550324328791672352721954437060424374962592863470666289611650271573782500733930027833110325165628287882453692624882249442372678248595795442772592511534685172865496022491215056935719288886515900746802994072930631206427769077256041216906223202626005793892183640637726782116627360895442567049223768808215262710282149672064863899560270659997861669818350496147580401963666337017347267403815972587726821873680173306855727557632572610564637875371580387427567465369678921611084207451035651854448935828509983818349587930921839009108704963354076999690605869830626074639695349709808553809453384990898354579354405455262054038755049362437052605309965862997113683569122114022211039845065328780558008195905163213734726378337538528338741140601461099737081188380338231576958466061023226358908295957048930569086088968018299641180771049062999956375413576953802593636439339200026729173857627981735228347055914253683195082052033477643894309641663967211013893307761465485962985476972103767277801588021014418392413938978784250237698462676878956855848090476270383080753242853654868990466238767588205568273976322730755425889153885450322138924323305604713138563188660290515946689322789561719183559784160921150911217390486995300406400352250681364627407663565686145779658947565233094520710048686831906275747211720085421632822893740773780520865688541601171033864205826463839400115472056954352876058846975909825000313924860936006495337961500018214165762157803329469540434458503085824658424416822083187330612505828995704415035393292648748968848591988371619017470298783613144445950538230701972949502350415673223948908833482529365161605309927295647981221972644595986109872389540415839609045686200908592313412285180224552825069480715137132527286864812226206441073468289448831506951957164896521612967539509876990057159580416501846230434490451416648240373175500707188127741355994855914823352109536960626231362311934267951657985647880818606690093471383392046706794756307108085157002540480276698032216758598344965580100728106147575174309615639927900312693698075699890770221889562253308044088713310278550821370478606809105599251246676360783154053918059872030278884502438129824701824894528019116921750753392305275770130234268394744542330671401939364993356268114345665622410815121249537441863748238219656720362465163521302032574639307774709560471521263131700483877790767173740179924126220723613476946968731472586320449322423798508162441091076237667448977368798998340310790590742734915780190757290266799399114887473333494867464872188859930949145924525578460175403421096741000118899749353623607704546353674650717340256213483077695058384118588237313824599994517946967109339051352010696454195391293294262154391302241376753636139401906173263352302097901464523341540703380551176359560443495631170498509350423568434678607779375467429343987129352273385935675191996712028970110955626988316050418000908533124286118403589636284510333502527741319984018417607879048607016749851815605697684681801169058687317038596390418279035895973577072905058757384632083150485640079492375851619848052664418576308058924010349014148043908442015389355228104579760859820429110420225642403343949845262769319533264685823058615569749870046647554185074273814288027027014468709570519481449101999127152687539921680613369253530919769532705236890848355434298284952995070845741826656853033869678576314307429295216346969623608867847196496176088563670355301532495254554564304925853551075772942769981024971231172764074285146244586475823922310415316066616841562617519495033682868657830375518788243768262331740905785736619122918441214155306434342238483583966231952003185171044688914976836670913035819413534083571404343749158775899532479089917173390364914949840941317570112329673729193050122168236128832881037047898660176552185212456991198800051432076901473910398837326880779652997902444051084144230077726786310288617305853553226950447423515083632015046499178905106527402297359877085358329672562481657347028025395571300751351642893774940978144206533184097488339262132429839105962529640209592587854404833973311383089692212627293239606909361058983424338098145062237299818363437632706640241025859470559097914192132173478117063363403527480218827035617125244198119627462948582583566412546190273736788036706347326758057561879471091704014069916631047003967503262246812933751214850166555236870834748091322036315935985400034127796665421574110987838537510272561429055837565282537851605780778590902855557323189061378374925985689468995351218513360267831440742543278746640001401315068065595113632935639617450559595608921736928155194064474638541986836696286963609260292346304302621510724822538296564654471917294284418888467803933422594309512716364766261876807953607287542782281359158620282070805143976459597886957009181329844371411840930247171122432801689374099562327314393610019237917403229365380067639463024863759534559510208240153788601064018425713382508342751714064557608116263499312364878530111148850611513728070440471252119385868099112439350357563613486087284252379476377132264705008853557925693437888484122455130749019684663464542574285948316878108182037713024963646140840073085095920467997599611284164380554520459768178641465954012450015465145298290892554708954066267474821982425913339069523766128738571060105400750037878566203653496788611552613577970581793559572534319494259653108556655492965539866834484708400946494156820810792301560027785215858019690178932329461354173911412294959275305767236259086827364777814277448720046568578295928202255064691135775966513271433650920595156350313505602884249215236637358278223495660020049426901317257875489964322732868862295037380663792952177501893884177819559092405882734250602682191061423471198187033908762467164938475523739189751045102731823968543548747578589894373331677718408236271240304811839866132504766825189116291790221209239279901055116902577569927299431478537928269890265458276921826702015338505187347323394616894241561040331519664912680687913398157204847193339686509043789729957015494642919044520344371417710934092855892603071369050884529409694867770109557265342012319942863830820560525764195507339947692825135005034343524798974589186870363685596874711471358497051610815261790644284023621480230394196277863260196443697570618929892663205357566537879868734418549883266516059795454517915559633314681528423323612594426534795378816954645913576382048780638826440551615326126638756560985437762984290895622812090057301564607580701904739402824470897367522217576267060145147675287565180485565004222757792935529319310364345055224553356732642048626768202788941966769021039032680280857025561300714565548962520561294496387243324103257709813457556042280885006185108081846501047624865281538450522778306079611074993309767116919233867865851770403886586239152804055057212709643654479967783053951477966891867444226256602978584172768958286510111829829811298206714493110456734996277331792130230052359496510515890973296952375049453103070465810611767677285843238740308970890593101086554269633140795504596488990144683821071618663822154205555045815053423230397263946255098911123313667332301666978603666917130772870328407875056384912952669248537561766062621149813338468604348915085198606479590216880792885986034774122567815669541772155340768451039681773441131228272365086947400476676112874106942507143561972622132004276571733566139175993355021912908055360971128813677095540691378712564914351357160643922638487402907668601868671701811329010865942659946359543737332251876431242403992231999837928108782818850905798707957637171389721376467334795976100545459815794352780443652355260241737540211873576130620064138622139498334781746093831682576555743485545816637767901035013686563433563160167602466418809963407047653990330814071973870809154506227216199573212738889714966426997000310410511626777755182231385754921534323999842796249602594599442372065362292592046097136390329430590897891655029100239520468550256373639862553745636985918648984439116316448647799483611153909926303735082414981309358363387837423715503316683014856386596198990695679056391563222311426741984818529916163167941043471684330344307999281064410387183878351742824439303558901460320848598687468684703516348025680573445950560888380936113090186627329110529901772242524168869627440626778703911485619657875213849191964949562633558743625531588365865658403096304774099457337548405854401552372070385192304443988418864572837198650829203107990273481118866686762476237768197012164228648420441876665041133275660907804108937164583626225836008726169753993624846418049709496831004700317813030119768059280302120031341677890893227586713045614279033762773569229226035341350488556415097029079308561515448237288134981724010951912126036165195926062749208829895673150593839413922400297050149953762001062718257235425233938747416287105749379343309396222177566657173095029248697644533487843376194094847401611411930058127740797033314249120006145523756920681359828155158831282250020477391905245963202980992516922515528430093305121008749077549221780720014591083490276310829548202651671262398916919208795134315781286060549341396435878205415575111531399035303248951894197884301917792727090992949345605386418712454787000179677829380723263068412788646688244829071363118793641892376891218171452365585765047661099786414943096906324612402591288464397371731405461010244492406959007599709983070417464376465552065089443160357329471601957355810478550717754851135858793143691404620523088784474954189638393700191364938564560839030275560780847566021686791718147561230654619838701358467653717978706158425855241190882670302513665511827177932635255579948885121484157721057030091840427996560832514661656482468714392573155652103446131090514536628557607956955965032780518489648564166779390930718792899342116703796359594988189895838103636960507648172175218981539419895284951898950348056021575058851630853417797279983103995578804142548882687853000421494516179383839446384732985917031823476746749158508573622898871151438945240811863382385483229702702088450833894876583398815815636509978231272268997577092479469765849443814857447125847027594848587157756473791932530388362584700615494957112119324257150228358439884759047574512508094348131180002969566582135558541607606958113219960865843432088633252585984685293952295432641979036888839149259189272313322678516230208390092983978959500651947447019266016636880300268742542693072479948853245364907171467395873167456385319208056655872394056326493028011800251499367909507490811452692061436494076145430491412745321155220517657244531439143124574198571963012963449884056424360864353072225660000531453501814300874452295468993932996770680470063432318816887378549148056064672825558639518642828915777194652086324150565533407516492376648618970938167257564252293061433900329382666301103285696873447448131044248206603690337374225927908720860088194410031655619909622672590149742455108093318170805726161243556752427204404104316534398501918493071497601707595068875802467075632357567847989872411245535533834050964822338462428022903733860184858401889773820540932876668901234550525313683931050462770048795661722971865030025359555816647018335306680534742312028501844625436284214709110921343748041826122074690317260491046928596143016678819023230840614656289486138002511497763704510877532772779065377037562267744462255989906004378071636809727330794550637750371247937515724329989874754948658302563365270982437301919681427296782029979260345851069670481616496653045161360737426846947301003885532080341575725096613421025185118134193336517869554772141932608364899523052462692830104844821976502847762474818699605776894053742019884770393705436718352498314868254433887310744847548720303098348653123366247508395166579220653660591162163119676429255494768270083069304035412325175951374588307830705877736557439304377948407655324784349061137423813861357349896084805887517660083669935324726118127263445244679227296730235504851363722725379412911524871062480708306700551053895076729057716906698868878788035035435251414292807260810871326402966289311253496811240609322492116557961388118171640235169678501562477378117714925224818134252576934180071567426806110131223359214302653273714183931936658117553775135433679106255555408537661878438314662120976734423254763359058325861489528136857303393467699799764041723902483519808322269191247770214703878608775964212377209375496510838538340662483905569730403853058334183091796293413494306395111363335407171989774839441793472905204877383733478731563059307276686518189812115492941077557339983471067221010568750371183912480200980135180725368061867057584189746079461072554901496881108347529146675973202149722085511317894428607497418352100639921297865298529428513249953518006837489072762477572386634202432642897023179785764824532105797174348760821370113951679686262285746559437253687056355255388165052254417114517905834482038467775571346432267418210648414237776092966660976724470393476624690313719846336790819404420485891786671696258453242016996361728415754225575517805803600085842340926934691898951541274655448837069005779746506798524964025081995019932420955167894653692800142153502011404898673639170878844851042561701854038956103149137070084601451370993266611527112027901693705365888051447977332238532952893788939598215561102497433801118745231482573422442300347483248161550024859919151785326680819133515088073981527413737303685859261787626852004953197155115705129402073606460784766079229429120170120512892933975306464384760444561044564765527491646201615738823308497501367162281482009371503638458791452247892170194122882832714955827077425439833579326051137108102782665596792707811256869463244926166829224144403087789053981408946442417225553577975981993658734011677439556954889363515600428522005142461428663429481167376727648561809039579668825604636951138015051448291889236794266866633695669251375619433806270257900034406758806954704441597601748482716641517520705555336034679029189042566058474366283188462124901521574305507633209584258465381084046884927414227353711907579913895030826306673978004238100021872359763089227782938664766826915141297173310411308015415347578682843630825787994463093509599472349974436578086111249861359724819063875012998178020925078972584389404039019711568005912730782934731009649094180476778316258286177253385103708938025336664451204108999086510316875378627259250304067555602141762776057636564083449878812927646061820118052460054120998383769428089881637697809960656338842262576112419581974904778434009825729951797162818052171422827105466759589670097150406289984401097130330879598127670437749037384826170522671294991338282222085543874732950038504406190959955276000065815769176255591629804197123304387032944760236692641566495111282125350996858438036549541028659379688470905181312747824255183796880889016914472785634797984467481192243054879784318344023894969003197892319050017068235760815939190396655908068250137230226528717523155378400613238291032891566126862733681803605730882979130545825813187918258084374059601974649688456609260416004391970140588777578297322441396650049868639607960291155445512292541578849296247208284891183166090348641302336789867499394870261382529347222229255669305672810452762874344006825577801036958432409304308986862173873264449075725238815437130391801338296069811382199609494212019349271072445124792560997483638449125034838309408154750200687944309346631087759653273621077280353219064707496786012488592177256840659514823739954422629109043816193450253334259345834532578107407476862540762056810577363631614741895255821465152278187277870195990323722863300046587267510362173756792050839418719965706608147972662220788115381247093979910436815243831290363768040905587189222830800257760409203551508896229755427282184958717021546792262657917168552418337367313788840422867153386076944061302050859085428870212090668979515749123770802877255727298227376360207008182187367117253761494872462690006996954384757075811655890459880234237744179999733972601847069077084300760605526333569686946176511800400928244909636063750643887935679988534414830415750875409591325533174971195579028541829540956458889317606322947994202369377691154660738828294915664154473458598625059769255474164020653767598892327278404576212769167529364654202661164631731203384188827083226517127775244569932040759606782336499592937086710124161464165680419076744335277231337594795443288945219306803441894133919288713598735865308041853003693954054669308136138521141973289084618136145034706808206288548095934802227782425407489152803538294787466129236624925580174069473061167996397863879900695399125167618448801581061519345433745046228363425918838719089987665180329354596937797220825131501370954072230863227526955312796792913473924990286887211789053691404673063017941957375276406474660238602962451479471812431421815384621909308046513550027912141955841766209373269413939634726591956407329979478305505421926870772435676332340152037230309926064819065933874079245987549057272647160490165338525085457382787602284935824350263544615959886927379411841640300146990113436261700810334789626497972287239195874838429851074344218809060001258828831033792906769212005317115378458801911766796595090992194394210816428868788559214290046830011423119600802499359580449422390135525935958388600172059040125508778523009784338416824315438520762020953032671062460097647664101701168832257176263261750254237174906456628890968949044988354257499508892330742381206002893853914756704689057744159822549636050074444105298071863412046932349727951071767355829010895635138484797467597446972957481746554271610273675320931339560424680594609860960527028464896656070165214755876440943936112305553973383106761570432828951314052865535855331992984901078042652720299953113621248228041076748760321974462907334621558843463569260827455863536731503941223642954133570739722063549714974771990086355882968893490850163767836326763047201721433532953342795058199345789016759294511666130863028748956827903429477084705604458038783205727681813640806051563871621473431547702792521544572907448461175914775853354442884589827736350816488274139012696115799996050212916549385879978091283881504429354097318057037675364970064722151168896337706932901468397410362077621088694629942741919596116986329982061602216778826743557128136397389169179765584158781135789129697302968727540955395797065650819232760066165351135069968357175806728751182778144152415353114919270673963417733729838578560573936533342169077208220646267580177305237210428101577303442141821343809372285057841116125413602763288760423608501395938822076511216586056042295036769375260624166407993475726500914723309706485633446313061754360073891586475975918747718341504327233134549308821142190137843179684314270960999309098016550985924168138609996037432696629238222251320442194828640588085833121211157238292521716274050328843416215771828103650760055713307836953769160668846367204392985685986662613811026765511939138110335389827879894384644095270387724552191314674962965442102077502854237724256405933845819068184901885790202692839699205310603107155285253972335844554975969528952725751692703012946535956423120695601048794259956199321543439160883191503156239046636465446103441259079110458785258206978274296684459421051091247853573776448201810753672622941659766669015519123564257920678599079345386260864829917846031161127619166757714168150927276786019823961592831348997234703816524364141923454430395757613270587912674617480432270433244113552655147305697339911114786533756744931005926803782965928400001320286687439183197081875224231407894883102519864045400391766566277382315708597335934921345096956907396119303418712354204272113877628193956066079973766604527778898287985721863384012777444690367783287926318392434058867734062434780579007559696098401989358066717618321956886724292661927853312329083706134823338653321909129981665001254326100177337861476282780126420378245253710589192383779082504575275685696746181183099425582957056918407237076828780774632182147077937595904894030336146445796698003334289525335056844309378624017895886310273243479185544146143623049186028444089435647378388759479232863859461169726851127944886015154889123537366667734113281116376452461882183420674795644948565317974491867608000117236153061840875989848647300626884417438511099439839561984340952407722931311808457436000832983614091464484691442322188263889590003239979957899729934327493713456876327567486666678103285279110002210354135726189611410263476642863473443124938208197658001388195033131037632747013327940024729611628453830378371807733450690546209164036701940153288632904210249828979494643134495395216827840627913013961382375543194200357165051514845520835755547955438735666133984770783771419605501642495937874346762976476818799521800003430074252587030875513394023044472996379612357228154551032231347218127555536583726751542548558636586620263912704764478203746050106386413744792981723557479343397874417695496843900063741787434580890096735724829519697228445065944594037183815978378001232050654827583764420316046154661278205126759103794219251568525287037699578660232189184200183475399610647471035175609309802135817379301438889772190083460737913238206043122528498930467395169585497928664457942063629835498055617574691093154751675389964841991763510425433536425604905150028597850582833724586730013737183522463166692532090882224620702960856000270743953423927716091232680597225071624831331341419330758818936735521032566623875307275154478741312467788388434040404515168190331727822275859880866654785941675256403842621014002774258639453409737111042271038240603414204416540601196044380776249285902353999367372402868278342946911739119964757127044297911655928807068189339488455886273816116824516869822707863182360787002421667586162029039497562600622165226031028520555116893608630092977604929878835631517823337774242039193515194088625680023603349917314894803178481193479567045965687844989690543785061386133811648623121564833307803079122761455072590997994357618410447848717433910911761246775970763562111276160629387210239703358690570418223909116880728195365264863791827917338832839972383140649462873288743789481358229986370216791734690193883296457970975665141413761114935144308237291055378714340140115270898143153998442563713111874406198222337904648031544246471810125723074121779331882851936204367323176243883806346186332877662096665313325330154782811008700603830904953122505983940586193161016306366372919953688397526895466597155077454904234354365633261273043631218360004649077792766331370964537566070996307272342115515202360650267039100278267208906915427097128478154864801451014190556700211918116183987652549984237715712076028127228850605586613126427973734693291467527040270477928275841100088599221316934751397500456605306051101104057203788391340572393988085624481229911537090292154563735920065136933606053984541340734374960158247892202121145715396297606812919289769329645395491025033485343613371120556519642295853365811777922915291777225948456595998925310881653145834782334048516868307693618259968885537644971375195542927581092825496598084286411217464755081668774974334284959599117954595237011275212933763099751893142813364276090655230126494174870782653192460249809129400132654499154545072266626977128647217432558493231512169888612405806385918457627225861285126302783093651440982247922871158525139849492024730633202055599645891814466701970529875042498371527916814697930125860950592987997175517107466078806035992179795149698035614025697443732839413502160594964486446131943507638236780739416937915729050728986222704527226256090530386113090990248007563431674333963140940841252125829567321428005004213243734017914498779598489870746882226455995180223505256307632471045041605806586099980473862781319861339334492547875703219618190863995486532121082928999822583477004587157957345465828678114078520209904527639163628662103907611387424425708500593577905794076042434979759657049238775373793335565770203162410730245408606023701144366663725954902480958928912407956128955840535533424910869606257694208202635894656262122358727501651087029618953675922675362987903172205421836053819622623893728654439701501953189761726332035864881982747818210706535473016186619484845486500486657454125252049621284997928589387011445881253921525929948482726008124861095065082974380108482719985149877700782195203267038637309237538328787783810635759001058955478372616083067095993147195702154844048763298075789147078586159605336781976983102138599696291729188881465754760976943457660036246228662531239044623766291136939145099471612446630255084624636086860487444983806714060677973740137256821946075191107821550356217242796886055312140768720245013083274458753298238663637389339446157510783631434133940957549901152264912687464326534773693762889348858890315675534597093293364537285528355977390673772189240085408620285792310076501384477006734173664322906274216587531176688672552615514653607165243443310275774838630289057984787483068480015856995187456598946815373549038659415464384464283797595629759028048609946972070034271469595650862761650548136441933171114222275695835930127753719478501204405390403993352262590659014865180909413527244198319421632060628000045545620493614777404179299980826416882711941793094894701783851327783906528350349623499811211903241918808529976054749507047305664632572403350639431976679961560349076397974951524123286364652536423681679152789496888773464685809268621333644665055857886112632731637338014285967981528856159289990977945547872795687848957911156135384129944814688043202937627695648405837905326293126885904506730121337888686310798177570052881915020674704721408996775402901199871817985021257767033334085941761621328480804569161932706866973279576120091764201547501379316505232192754814382557521149587463762916289334028943129696223653695274650011731363942584848129947515759541836065606324726951797666335949198592621829770886055821526463486786129342820445301396673608300363796811512815836235826486817602937293102437655901526517658578575908225675240985613359887314111753449657927890644613608539837385464719867349132302774185164009641604021870438447061582517323558299084791971539382397433470291559219289299950214013299901419026979299505143280182930674521340467221616827093102042735394413107429553498847200253672082818036188243304860794468753464347793919432959468484202896078281213752593029779393645467044597145922623203098800787943562141215530275238646172025567510017628480615946809279341817431309726056389877901754482502312484502362556481790254697510124737673982644177742799718162506022683999847454071299562747806459480734137024817862383872535252799451695375349257841379213141219949492705041447187331799386947886555822821949728909033247970632439757202515847163433215046780546195752498022139417496814746993412712856577963985323935149576412087380061423974240314404358558647724902922414389533464041764907206587112840931300866302557781724103213678229308182810300374343747260599880010064087954909476727752671414993712609094978138406872675886388320438433002185925638507511956616048195602898028723804528045262895278642028282727785223261200894996277852386022169224279905068491659694683039964745369265475789774569776117762583028489518114768138380687193612715824415569798198865662436846647551425694674189295831395657157381217900558225914212178449283351366326295771730985671584505188676686307289756380600765909448653439952402721811475125997771107586516473763984475683357503942569837756513749018693351053311596923283631247929702660002349087993847455173050295972792417948815584910890097587121369753252582308780703560404396413483459226271106440591859181132603263337660914101453202537860969380191546577865087249611655646334043431915357176057855981465660430743499441127385959234683362178350501687973583913283635416429379512333925278658734828224799667605367770338689522957641805657617100200101451928997627264873033321752490077099425723225185901944623696460509895907045303389170756362191649431355638679075572618563477508474010635893600362676187681061368490833811439548404357581260235341518039008133447964440915647226798997427535722793984789985123237152891389714943656902223150595794139054862134314252937506121413095657992249609663053436829938179379217583135626773246903466489246308542249398567714375730411928775047637570832577519231374313361399034656669327627682482092273947643819829559637526263629589574081694141194030433379740392913184312628125790527459124589908208313181583039263932209049896734047594850996592584511613141161431761617004238277642895039431925104769280625641290101595821528952808745126445721152464149172928343074851092501269773365590061578859061002698912664874847194323347740515847146590797737820513575509908228861711087046332144812506446803582797325143458473049142131927069473879497095110029396994298504964044314820835308009610715503247157764671001868586337463629611876825783071035617967941948648665927369625850835151887872650796998120133061925292831321395051615684346218003149243873939572877107727160948044023000627606885551274763135424775769709563690179228416363311686990587839025128179277288814733302171915794465980700006092366559287526557879737576194001479821590336039378012955760796664468324707337652409953164722165189847693058489513729457286778334862694312587024634612968598928247689717903532911081386449590701869998680807359282244235317336649103767179542832181785414758444527973383928479868417225805094473282090274906434390729092967432565274280033450757917882703091518611917394333472448268318208575050095414364844197800073203070181116810370167458275979341525864261933022843507320083371107499499251815640646968359290989037257982424868019245366672004354505151585649383912395978813066561385331080081111129243859215156029821500339411499051799258351403144982645640826138495324968804856160679470477315368215316587536067849048573838898726784441041555509574493355376327279765078154299953293339168538410067429358235809808717209061511399807912870732957846319205361232387341766065128773315900835841833919605413923668088439502696264057692006879491933035125145329190721348671131080935440770289300593653676123572534143419785061952628336896512747323559070183505864600309335027507695833941793863137660075014100715757416799027149466489211541134469110818585918106677205811954684647638824506939693104953013035001017861733444677454870772025948406997545641735585560985945189605859066863286044380463297240149747250652656866079553284261493234749698800465166655515405587192736578950327028505449313520146536323087283944698994972328917329521271566503256165994810915084767526914674919002207188065843814564652827965314633869300916375454993721865919279515185923318862143699583053521087099288555935476873587583716459627821222130622149277304694777539269967360151430014771020922755243795595398831001805641719571217134245085464536461197730701677156105234913058216344077624078932150877424665195397331655095987337520960935282328697077573400258255562620917702546853402324606698072935401828221973444648184840323723851880661522454462311198847631518758362739950590147231166826132411957370672886856735021667884245233251166349339179515526294107062429642087753112146925373440818929064353453722465250339181063170363005776349375941677459166350826524910420799628330679265278453065547397669366497000798951754236539944212112466287363767585971333473722835000107767559366747207391591947723113333204043477755162410181822903323890111050615499572265311307576385127633206488966845793724197528228511947591724708477475728972393452605810403522253765134805311278052677223383986405047184023881245302201708191781089430786181288758188838543188947919051696270463303721981857754870683422349033401934093982810373711237270943134270686650001955396437831065377973993442653484473976265253943978719738643370092231450216243990696718193711594772786325924709729249309849572216487438777776993694434174281691670320283917163616906817931273485375258461727736045763244892247150998100113507055841274279851869062991039774806638524939202827157490058203677404363911285306444798773021117255005321202937195984849690436621158976551048964943053862949725857975531511312763477923411015517400803769033084538351974256267597389712196276605343771487683807571932056797684848795764547919917912140246019660275685168067525543168882019155948825198190462975158112518645572447177920127823601034690985398856888306234157753136147902090688147913630462781905349883307455188847583315354359381643147622300583333683606981664363203166119106701629052127621709854792850550231221649236650389266456197692810882018687396046062177950869676987863774552869436495467388132208619498902873490572871766007582736005934332373633858721275846080538496298953854396295933458963120611618155254760626356670548627863359222200115729442842991487095847244688754620609363679482142289061415510896049555144852870645923844553925626198361464384315897348799340463082154690204882562502376569744368753952889491939682102136206631997438240770287535888225474283982406845849721820374988881384268713999802293663663775404663980625616520055444586010914343376086636289760585489402915555993842120611202753726654106537070940832380430642250553932395175907805858059269657190344903835823677567741174192438228537633951119939376252208406957747407740235790803946209379084724412984589662536226104401202591219126244812111813494821182618000537348115966814515668438171080621309729384030493364393586571011664043564991479801632906585180045485703776085303622615970885544938278343839356799876879449984923474176869174084342163022086350748118668072885519703511218298300634880605523219749505571590533981878152491628536988834829998601025666630179755911143475927558863522687624696757783144006480975688158153997611855961726525170872115554838888640026722676649401782334090372712740324130085545135220084406744787435607198833567475422181519727105921683626456886370535597422532997677378353625476543576064726738356499491175143836178368933845958614515786599611785381234895140950779269429499981129846628796200498779845455412804197217918386401066089293375635181599842087338679336347001982388188803792871623817495259300877860921812844806389198409371854433667857953482013224127219036316648656048708207979136975998799829269254339017197110367665536254512923213612619419346014277145590056503810959724224655729911498969186352482516115830352557187250686427012304118469124363314274746980467490663487683749311053656879181473850560230408756186246845778678450753488505095952075401363729958281056600297969929381785242664196728089873108543199427105281846777109591685925502593234724507066379055474642918795460811956714259154728277876949208810526971597858864732380352548066813394333926940314315020964795551941949128029224311666412146865847464842155171088058925195084720282341166003079094995452033861902916769464808300636275019281615334249376737110707658026333962575783779139108177511340368158798051411672485355964754715072837370497741565955708405213413330693051211416247558270417820732887263660050626055082674055417435400955530210293836849459216799453368216611894491199843562343283067780320448350065992673034685044237548428498920471279158944673395608692341310731855688682568213498481520042281099996306111403908871728484688437942672978131620332350092468953277986043992917114528361956662411203998516933401127013177140505046804173545908812144628967876278804134450853149713534473637624289001514691841427181828112433468271546362226814617607837959369567851174377080685917720097182085548949492056184022107383934403501663142259907178100738238762093271025326793589797370245503683746654858038527994698777476416935222839198437732628635235548973919902420105290549389443769398482168903823041929425992681911013665069099301842700204816567448245282186475014190901319867780303280136533335122221511020038042413053409990047358213117858988878746425365501084712395136094538993088178572330654169844333733778160947576597831966943333337292684409816301816661370311478215168741658514933769618537272160488600724527085911549743101439901515480734020929445110816202302478081237649115353726299776825595657423157237738748300382796069347585660752077721851710125756547439049377179641485654602496661599486349750672614753050437116630763817104040027340345592152661033732643325015049714830064804046860477405662013732962857855835914294660076311742378655611763291770319479640173703327893829859544445685769760341528369279220528164434372087505464882346274204416733828813398909376202582641999820403785790362111376756556362465755079664617804433853928870589943265111194454104795535467193165653907652982483689602521829236344678580818075311845656934382419921830833478635899685525513369677880592481101247093876495681243866765024338145190725553878690016540569261768734743225724354055568236556225385018217455599889372882034781452991529889644521445036988648475792205597674546305567660684353053582123141411928455354144198127482468760462614718960876138999849078503414857409676225113273461699035015212206047933484202081347783921381598206567732037109367385429714707599399247636468964415443830868591794437763084214014321153318561077133055512773862290502771311412993851220589155373964607205894862520452173630819501352954017447900983315211023019836119358452919222861445141956522006247013264418388238577610330395521619124229909759530215219690837085722066993067747028334336567563130404321270843797159939353252013949309217312083969158179373020519502173911249692979731406837335484218310159280622720629754164562284266054650472208068776605269448820284114057960786576936257355315769540845192560245698528566210874233114176301550267555798157194152999485333296478975635758399363016818448582062591684533152652335851447264718375221536947276657830415834280204274011028000287937405714735225459843984264171853844641208458615300933689190369588280543927708373919671437122704645946191168873579473799656587056536776302975849787164957792993242703746108731609005226090850170531749680053776648528968280031814985248597479939034173644904363048226822680555298983967724539076009189119042360257897477319259607355162145463003944412025983754138036601198853992357954911804647261573469356437167678013297044947824272121825943072229968121239523343877631479615190524058772355593273059538711348134407809158875264794323157870731248958369243594080738889450625097709010777101472014361901845630328594561040181361480860754257844490507174960014413234440003430874821621899507034254727604790462013276060455906539969337069665862678572701514994858380955479146665397256125975673098645284438396123244251806304195552844101287626683336687835752948083988897591493277165341280997961937643791739966003689835586337926490627438477030811839697808818431080179117781753791201388298599481282635659545096615653438926700262829752781641898689811779957192182698756240081869264648798062966797393472342899095352000756321848554686857891589037016809089972048281298643560641608513935875566851865787191579764457240803968012967880241959215875331037683490653439859367769908801240776278743726181771398223980319030007351449856566312944681047976917712225362556482467728864500307620592920336572389860371011046662913559378617807995886736972315127420786605440475303898714665219813495919553830937133134545295072501603069266314248879872053360838707529788843597827108941971671865977461522267255437967880733728618423635332427129145037126523238818430459852447639518985452214190281453214175462541623217898492331046058667390106120323061375632170871213709041592395707178815012990764087012131674894672527841265657293697750807917736060151530949691613493347236315567035414826688453015917595000544274957899784658263086448599658335582484499794818769845693820804893902408477678544536277921553525488169188886334832009006666466561730721224778160346951850009433726768431904624129484722751689996627710399940759361197951274992205690985700821605571953702621990053644455930768440637560294579267832467123163468277844486170504132795101838853383430919279196175778599106558868232822402680373919575395890679888568692015340946709291827535855415065609117594784247371481681181650373005941872937971830339971139413099843274740278287012815864532216494617629901871907567585811915730707141078593497095705251099310081604399432682879136015202554283334128467210533463831545814479422176158130241718931233939924507440801390404310514617263517111364966969378665507320080945676506320889028028546843986118381963937945755750283571765167905043556178411404795875733857135329151431147085607184743490380306576358967290798347414776473998500240510731266149825975880871317601884361107615439338393135042583165225087321703927748040754738769561693259977835228907196731870805136832100656377580154990574788046481406650599852860511524091962695025046312122824190651870402076128442008038701226719900737343507734202103703198071617535789244881763957862161031080952200494431787107740098783781704326928769488570364358924287266371804868889936546073476349680429732093031852435022663063386058854494445275446208482643634932085538446754042827244020906866556981221412876113468962162110512832296162876868310688710238382761175462378530973257192661058904154076522954960571294819167358524129614815660284343527857624950816882916362008996190629020381812414091912987515080592424932798901565586196465336511227448948251341892555106035421530409430357283870535486575847173392232563454221537604817591485761680494385205940441727656614925562301505861812256660401469339085153297332855816407535334314228225597759840175711573236433920961495179669762267075529167090907871113713722295937750287022827225324500458376983133858589591497280581142036653518824633950411042646481806879037415471248448013114253323875676477189071855479142617387424933453477023693635839087577709855951220555726381602713980646196582313845597741833699185775769252749370675721056770308245160605577149108011131108360133674361976376731170254710425198542278357503802200037482364669798026225973366735964354908482032500046838009911638091108617424850189711628119743901114468474047247282648418779429283713360284151628850900532786711107115581527469225301409504480319570010742058794637640471863270313747279122118771023518877451842720652716174277855130992249997100829911911490277547546965888611947210591694218860449699332078980680676218667944834026711734675033598177140051264538228496727269835360941959793415861426022289061423421721917182484086079027034584361379917765431610424404904673061536095647100136700645840421466745511149558417497829134796169091827731149617183266136208092583869075162858824627225017228004125485038442724607201930156195045866298423793905646373252091259796814522317067249453136222834975441736971567609986254888423645545023047104252716833227372980145660726744705586894206020548186801036142769233013254191323398233024887287477105150814764887623246834902930761073204980743460529592530481984590830920441510568656999433206396840039951787816206112548167610607664752474725219542786590817087810091148461866485812610655032072071725155925724878590330263635013439836334154091242082926379693453815283770778340404585650341067439037427668407179020853088038045118746165163650987099900474919761333379335302165718678223301520627881747914134402599360266423952266431629307675166844979623355997485626762151365217574380022156929476964944869285431499994834597747058393662487398097296802570371318094150311965452053931268067055937068994697438587946525397241153682049224750698387547775981539413867322140195810909654066448132756082527360981794856532012171561412876211860776565517152918054689611789477940207703213557352540980369081743340338203716900346739412361994555488652797959198668224827608658112033232453039068618827391150436821242254136385620351743880078281425887259806282351077819969255052430555432069065845680316522176523984123394375494295589920372045309889927570882635110672227581405731279493480324314471117780270718841818538026182819077738153028537776220490197134296122895333980224153761515099042015443044825714440528539173184149266973583285436490099173548208583326930234493581069790329196912598256454727641138421149575554468209828038154577349918905468961821753971431541564129248658172882684809132242039516160946576429974898824877083144781852561606109581223695765026074429767950538695454726936357382992116934968023306250941585031051815374945986163027291880727233638219653098630638396068575096935145897853017275621550152478387400056503516876004835060466238730045043492238910057246333109607606906529686374395844749942357943613415923551502591945051828837763111506867848902300150158982637259221524567777445493358827557220324190386912229418444569139326445956810838422329495330590129155113493003025703905958069714342372859112326002123957347305055342804861125325547751893050567933956446429253419053807779626117413456335330777462824555361662809060433325338499564646843532942842847774114973513531914978784576946398728083045030148204463956476231200028785425182393955106172713460688812358766863525035928197401867172114193731965549863792563171803211142016702499095531269589106481679341206980666096330873082668674161443762841853455628182958406159204893846640027081659275573422691193293674832735154504765743458291506804911765511847725406693718881563105070278411396095976692722669298912586437559802742211309739255946374111237387280441001131179926944146803888287925071583114563249298097168514304395155512997363326906922653893137496762243936353574632187321994874192020858731927763533324294122492686531153122835398422503798300178419839044081899887871736320392044039008229265198888433561706283176698674700691656629645156098327083054751418076245776243996533572433688168814839119593754958940002070854976823788850162496235350488575344159876902535357387753920225058667342599232197449248406692924908425795304328955713855086192751999352661949871877577490840951593896947869528693914891991763135294924102737926014115170706534185242781103206824756351676291018254851033704996697636314758681768696338769796504603862837007687156947016802920823932996912058552484277816351998165363047712120425386523614157358240560520106319418701804644070697830477633559513202571147082299202364624356507079194624143275347073137630175983245058526033462636139865732455314937665237495792215173042073321286123260388175856297746693900033865442917490688024069853889813838718824456835005205376843564417292692908537580764157300389956669121479058068074540633885904203563477687037969401083618804286128010964923094280185623215640959448196532633743634641824756457261996349967203569323066300694787318449735550646363342422062031417316529687038742292274807573413091170206989746975573385862411608070735804099690911325900864994770415109203068209827184829416776639862271155077515200930411721182861229106747065355816263705761374067695259403994079758963804062502795463991157169699010158892604871439124013701598076569805698439947385720519490732759092831360961503771341188899100860908292712505240960385166748645380177573912757106177787466257771790826076672299526672869709503864627501501247703833306457885770483327618175968509677052110148535840650694679776923887032181064062697499732764325717179381517468980027098410928091428936258197519167126702435004947661809823601590385305792771745033019914927684147153130663081478205523471318708778473380645615092332487765658052539609428227717029475168596233487166823957354764768967534411125439306718556912226667973686943668649257311563761831838764042252169128809828224496753009585765933507566468659192583222620746284599743900835893319933712937372986887337168556230559996504711889652548075580256944168813797301577981050856980447799280668734717045062606710502780725388716825936659514887592136427244648766741102508189756429259279038550323040562438887271921507024069776490052168318879760141422130033487761657552213396075980128691466197835214285212407231019399607359119814068718138056895987955649447318244884522571074506971609530296812502751973146379520742485870048254533952344183394403447569248249041187820571781030850919301974060560193851292545922751547951266380603009190232433048570892746041107952425176359824751544974223219366682936738408074620254933008309811254024979338052747267173516067977990085989746756813375849132437516001055021566167643736258911562854825375247803089944886622604690250114860907189794169166605702349681128287437886127510448334015226183653556889110172259870091688897730009153916216037963828277982847769456041838141501982143194839235578645835123669775424457985320828164341916625462742226705424355384130030962336830280671483513677875776431787432713569420411268379636725382272947389872818987478465511968435529912674656747752862762032458986013263893478522454160057667687441486181816685372443008755937506409691276816364859827635203489870617911926186369981522840273133741249959895013095474234937377733375298295957742979439410023056018893423457209266841164590416586768919477682416488011388695776273866586895889464516217942840225577134484554331720527158161263130942230855826961070506828497701324470724747250599099178660194240069532294473196169193392316617215615610907774554322802031369427231205728417190708296647562031815237985854550384433482504145020740532958005323420825438357893245800869880775793617085179731168150259423013073583151138073874121622899970491584292208709083655312909207194102256668085008550140406644769516913969443654954214535801326090977024184488671031753382201409608865942896057516460720950957980398633232675310624481951579396079749051410149793648675061281528711027554062688964208981242240090851289708071599136640611703171756255794782015828976614463168411302480646466915041257239933181879541118820461916686513291270510715231563365005637274657136191518268000757381888327759058969246819974074954395863020475172442559343346831398459980867202512454078139287142507233453996972758555570334815389285230693789035713696501340781577504934518348652801703247669258958774556759125578169193276029792370793282490644207637627166761665738743042884034094047370788520976758173952530063029025969209826435162376388912601501232266898012550459883461179470043312554770089429392472386927196366042979437104908159201038159857415673987312699427617354705817598419972281182194052772577609124312844320184446570624979897769703286984403197586677152123190193821570575171874788818529414675374055263074995821189979147594386214313309248332983803652207507415041741882560641768242175738556560997386044465534510511699658840422681307472155812874303137286737830600665827155762176345247702071696215462522917158148054450973200916097101901337141923217674427105672203518840773505726147986372372771647739632591934898763006859162636682721657412899350174096832281634345584667568827605170786376214256488570453354068012480746894045601312058532763669776659025154997581473425161070206554520778661818916076136426763018914256305529087716275402832581144565291894816396299877642932760595473491161630851474636958138466340065468226750652657648667099765488106096633585812629295657621044519368603386561398818549490182331477515742404948421147174281669134359806990975874062309384983286164416778579541190807311141350323717191782255579269315357337808940505181859669765728985458676123656792666017874725066426298732907663590971485016186061420426198379036464920820785412002288534863899474921338930292802515645553629033204967203973554175778396622250829399417406400384498506847291566492850430101341512671294467003761362544470326798401283159147815068957559386487015374786220954518011108396414791308996442395981296663938843063710364321951797503893090487489055314227100801170172454523591793914271786600623220258585954053116492987299648700177751961389447648476241897355239470522651097799039217429986473273229139700083873615540486167974874020190756381739506363877871172762912300090263804142708696274173189919890999644967542228473233063217988195946724659707444273435655321026839684571104190461694832301396568418901332134668814119890664836002300759238429359788618352586619787952118851348419171142618123979989566152845712557090971197981321302429528353688976564657100474832432374722083761855007116709279259426331921691940612697092176197845145069321178953987483147223441397071462528722213306457018000276749378160857679995488523788588656967964680987210902377917421423760838703292106497303464704864593866438152755622678338111748929310719425902276880817957918851288521940021044120627084476910210980274300869866928379784064006575552810906390455965688760196487516042782000271970710980067258570746741802737519347445016210672283039761766136806833679567260226785954663153568791198023917705810869998199103185516024827686660468728515197437206597613953407691709944139345736759504340109250979997465144511516642955042181849055699286101021591886517644258456169124302854510347939383630438875189587400902716594234447988617171013721193431189087098826644502891729477415250535251336661911572875861901217380317846463721402254654133870241497260318947428172247638177502492537174970761114092711535106250693466837119319659588909632245765321584087871724374406394185190547968626773955069979787065377387684748940664806524396885317375722447045734051020840037197121505861929760314557572375465722949974187520019685388995046521832108813739474634515796475783296111238923634783895999642665052833444123307337712939314663846951310505744702468774003157951760121594687123289046359983012766145995439309771418576270411438605742202280421419048414818613228468130222847416007693792449319936507428922624268308620105611343975778454364689321186054990913953015822668527183501661298596555305443712361388302160838266089086612068773298678598554367952685342750878256730225208215314213361571573782327191973884979082753951353391862573889956884561912466244804103022238318951810415653109157023851203465597988714590257632631256579943581216152806197048561829442714869721527307503593689427988714249841574245651192954516496652247542944267847952002810317463154038450926137656063760304302726742684205314490790868108215660898032452408085902563414514894414247297058596499971688777722682388601851850448762613642013685326579938571245733042993144338461772081558224656584868682061305411842481409346152370040849071780663764202318884556271737875065304688749658223573493663096285797643262894988663467414520492006233867692445150160578173997276798385229303532216700475770152194548878305234999855028824718314961850505778890662461175109722164439776941437567687587361884892373941161654581101446797892898851164521369721917210861815503010776115588123850873729666572095274629938067618111799123371345968548213621107490646452820891082766791660972763784517122842494127873853975676536319784017976770937848647596504480632894161679624043741054873782664260491204458321564636731914232088651097929116578765786466998536575232103480977316240735196973672723087071756329715234281941448271703853929667818949842227711604115700478917816889370262780481061272978782674009757480093487316496445143751385961118342819471647241307264965154720090480434363208568023008036085142338741121502917233207908667344007192733374538995608920052861521651462532462491359164421635641498424948073899968676205857356118867015615399928308119642254293085650815345652427348420372043221993016244326993810504200313713201834135681691788894944189378274637297999133555236611479827937730092449654240744726901087710712719610054005080451277446350430593088295682889578691871013365064584030758565015343487290704845282259743052897284166849225049303746891644298820731587854811318745813034813815423270506893574363975537940679192133804564171688075881879201506572114261978657537313511444811761519984772732349133086036937919282733643412520622851773253054652750446271794046999776385396305500386256055252591279560887490205913963485874278018179493457212397110182773446423405053464492736468463969950214870542556361791446665092045976574743607253958702746053524076161235212594885699422319643075156776926797177582858479293030184281897467855396264797197336863614172386396017586355723204546997542614729968786547618353514237959466387026512209370707308149299586626141723335524233322623628681942708730770392839542545172579844766980422288016988191947278389868642542646897264552152187298715217872584447984402039033141620860911110950547813521100725147472042441021537126217919654476958204371044171105996410882910869049079970023474198605067005876727368144919761245161403434837834955659982582696540354791147312238431505715204092692219700254622138972647199736800682634853184551926609934055687567401881989011524156261463128663534134501847664058200776231861045966378466339079588029668490581517660889356680234300336946869978348152861211247762530015406735457211775915828083880258941334456944923349384059636865139830418875552684038644703369702064723418373049488130981465951405960880656427009076876485373521479121667039351281637914754637696119203610422471321336121541407859919660481663940404061333802232190918657679437573086307307473268767352736832007026077994222260268643062376556313519952690371422857906384232680630427264691319992611067281951159895164689830871909923872222036434500662232764740196227771770083148413244949883657640441367151590493852897664577537777779829554207440870323197723158341437631486474341244236536461386659014537257646344962537434526379618957563202789263462789327397853638855301784298826454831078842057744029074341302906812723858803360992806901312317117239530979344662487556297669916534109768862962178651875042435321940803027135508256607058823117170266805811170154443655588082926557414741042357545521329000986189569494348749958061471738725851204520873213760563360096432132361466732005202124286050022955951525942247489713005233301916690295514103234859144702600812709991513931278019350995948602018178571801778309531141062752885215777030495083023158271613337292030958103483931595936819086037656449104668657821534126925990948462562519984573806983017372399343343327883064090655429383075164310881930486828742987305349905890290296212073516769469105259099838768635259665839293302801948451795585642919662939552462199055772366447216777976393154052061814410510216230110338390893117864304507074075840154327646215496221457307097471220273597592657587092306072807298049871949644515639094077521001894591779128126964023011043454469623453663911263544508130135314211300750390839410546234496825012580993999615800054410793877936608263374068196794582406399032108045720337764015500324464603533777467787088046133810556867228188501585522044041198387684213322992803365678927973987240857261828714609062496339652624957832230060288713471837909193697990546654548767186035122902126404530946182377527506001882224582350815836198290791783847224553439037087252257360933779261536536965158289397418597275382003583070205313874839266086952801744432777823375659044668585925321238107204924156013208661397557553670592152968417993103821323262629198169627225509297304699514329800940287534268639468805057284942118432077881941307287238536339963940644050242407085223592771651224461250068787538133117962185597677416461026175602671829498012068983872871222066470799472899291414944261915997180706207452960398154770382559968687401784676562695856265953251557753024819641561432115399611738972661896746732369883033144253150984651097204208790570267346022314981587008355106834261929395165104362716033538169628398478457338446191555078818392062719807699884268425583678496607238335620675048402784312175931150076395310568718232575580211318623109186643070567677460550382385265887687618619057144311495146042118179799338782992122459734667519598512738627898555980421687278044428722261794835496847448722362863285459948558585787156008245004693151477162564029909910372799417526876833797450358838525708212484412071710439122627175251515039616101759899908047515989229315939934929095899176121755610528333996121195902102079837655382514591100693261536893373738270886530442627619645412079535900897818322603945851497659675552257469987261515743598578659847922658086067444082652835725364879448955873167414532283647526450763981417015421260248992926360634782159619268418863205247721840269135656207316127669979697577854691673130588492613883724322524832940572103494612867398651892542772120176072602559643506038585232397077360585868211181886129277149570767893969417369526364352121222267475373676759847681319841565162913371756973492744805663300345695440244170893387468850347217553624045560150419459924394009489731367340399764608916213144065357730728614748476830082046738027309661494886135226971340155975402537132235542342912399690015335642721001875755965689016326544062675131149063960006852216476190975897814693518646919723985336571460675899529078538435528836181012673291699919924925784706963816646226848498019157267218534083620159685696033121080940374846540050455495566833787038268965384016530319016541231793426990114161615350081367864644515464471167653641216801204995554247321810297684321475449203627575439554377904695956059371734004119128115883723906539819727753789340551746828823256636771934706845218306406525116636648970380160322384800496026354229094426448188630440949832994277996187140996038078071906004792461616912480289834093422435503840467334454813473224295693309246914721224505584992530313509687224204661254250583332176580064334286660609967639811500950425834405520274408902272160237867660528203640088031432209041007629311354077050931453780950031850074744061976873010261663395661643936418490782481188710417357836758797914335096607059518845565651689015699692250654731705975477745075017662861378356368719567206171889142882378472798982405191613749800890510402239459513943811054253645468002167935053722438469761792996341975277530500033751068467304966578048596097973555136240410873733944715677418782782857704785533841609821983355205574935280535996741458241451246779399388207988169719378528026629267416321373812054473263178360942230983844800038355950493420235525702799248229495004525744873786312030647518042541335658130293551091194660413935200044250767919343360276301564436804256665510500641832940236718640862730654140641287981167092083234153007172910114237029141593053434687301686571469265554782687281039524434954346702747438949649879043064655075130580506802048498852079293037487276599062128267745820813939088856569354722080779346378682024117009648423595170608299693535442609475648096220505527121172617764159232147529562083264897313995791109309577615749506700129971695787882214418007955804229737507628456706466863630583714469265757547422219713755257680589366090497191759716846546213296502000169607636184727650595349688972028620856164655075203437032457319133713217466463352671129281442637997847281801831201456715591625282299197940842747552415255134070796615683135538225394989091356630112185774044824742668804624790147045992373549086151256072497919608759321103335856497136523873277174593900246023093765367891219983694490090181447271428910742668852277707752621332258264725245212509888879348618331148910268433319544240701936029546876207546097176445647699781208450070555925247262717276801956915213756273783269453755479697914666123206029892427898830994651622637289795858730711569584522993299864492644818100976594396516933944891743598057512729432938267791468296751300090763579075481925740076986274078686393337053715893982879669283338167927805294347913756870175780190058914896081270827357041282035440155283533845657260582917836845714680319771739547822912805501009440348384281853499867344938437321425623330738674054823696633521914842405299755753677247476006561027789561272096559224134055248543130265629000787922121350386746864249626450669387685603055057272989739290571822343500831910785976307419099261319836254556834196294456706621667291570974417049372779496428485990398593849526720806809945076788557387576510474596833001059755766728204575850582336813561299655243960826222499995642748961470479191355999690353348017070592911671170816804482416535992474156354159275105828214276321148549139677326622831596510830858397594614494093740287126991862048649940828745789969862822649567247414204754598375340501712637871189141248197062172194360055671605563881946436279231770312841066676173720522629892971660583538363875598360409535819390584056054811547468713398394398467164845336898672965502399473513729990306984167471067959310972124721502550716703278331938793296281630730013252626282529293516695307977377656295926517556838846471525479082574757483072525813608348956722837945658191029098001489307826155706299616894200732107005614897253820330876196403930401393559319069909632006172422578979664492082128848423257520712570946786354831389968265204005782860862011794764134048598853132225725808086015841467662409442687435163202934365503951196810989147539117153220731442879748376873270683471304070868973353194334189806123151141619674272927328599459400815455503930792728735107701685999079896368943962947466315450359824483933148375051279191635397921032068924107662435431434120186307522491276301108921095614256547884654511358785684590934811597925722905126118537836542511907226652030287440885221701121086145816633469667198983628498064344036014536388309033927927868532452467201882358040714915948538876288022272383075778376865340929617368723203724235739169097836573727094908583689279535088365181497897887523267890244705750526652568541297815548055965924554456902582446562845419467769232476511396742448435803681324969027007326784031024968507500845507405943632465312323552330092000378916785634548405244800202554566460416831902549185963919125543065241012327904804151378632844011812765347486769604333810858490556986255410111318524987281666935613477882577889389136162638740484923699726124462456064062388803113868238515726981041132471561972871594579579568149588491777883648765689888766174251243450119744721860853203509250730347850592829158582286358638725849963641418013413456557737605357168096478956279155826116967975860009064763233810388615171005395909737275648146212029542346931359551069019262658953862744924170327575855297277572836186789078277474774133648117347593179110294857759848410544928671354994428302434859216086853470794360999098452817771623255758870340996364373137197589120213875676725323831553831657009086988427095104186892013673393247702907296986212575012191690754178154166478853113718029731215056973925072611163476515536798476242954425378875676429132304075469053686739890224381837994745022764254391021834166720147881557448422225767301287781765228931254167558982848661395233625764636251083594865134590769046233236516668053739281361560762234233985756576709229104685784805083867472204465789877644263362903479963306566970942734068158653197479001429110294081056183933313145502365873001274162112367670296239398176860155039147873296044063528777112837200596181040906620105768376327450977374300304797464442580970002614149605326135039786872797932680635914058263712410759614792217001875559994207738807753652465907801522929942298309183048923622668022164514562592359181798244401875096294065892197121900945788884057766249440480265372874170135042726986375499753488882500748541008355337532701026286629342543095317303788705269936370060051138104008707618274453663142163628176733108405671943419667848459125230486012207994631368453174076094348854654201365304620049245103801298317869306834040809054189020082713904579454703372699482007138711724797168333446079776510462307686552368498534290694755038890643697112187986804129958728046084395484605332413661199968116265558162819872953008430586659954290274685904595717052275927145544729368099167947496431278792518059746222812939340617181378250035657417552784995320814069260850171400422958506769152035757299235829139146227983966560941291001966004813068118666958860525222619976003196018069409203552266288604421832532298087502518352284886263827916898075809545342149992311368101280592170892831082974442923779709736224195971134464071976045788341456249656768121178382272283148761712769841897501903714955385285118666117503783256460827870839470009893218233108405795618938441512442971377220206322306803916810263477536431465235938776602244823934266036760055885804952946531061447099345874461191028086045279082812205161666674105442987868466411537631094183577388941920114317801038575155724410468137940125412434071294679189599480660322271846984187411298895623025564790994294409686776544257248549929775055019069091761431276362009774724367915938208930695739367887300339749082242178619633041191646666135024896285772304272271990846726251877308065145836359603448220577965820511227733465233553354929757181168049379607079633162011328822511328073761588221360222265579480886496812761018766516566260110850516350000276570757144163936611911141990635958235371721210572329013242390944582302800678706822276808275423774193332040122853896600352396524904022126635469372347110805709399167499030450746960697585221195816070590340658172296790515648686807391501146523154199073095590652329066934925519050953617544457273464130271037947108580511840780337929534778813104691486826559032326768833493070950136265270221040277800326069686124167586054670721235577289535215090392927150252695276962068807085734391869285342596772467904489737172477700043100913027504513778019924353103348644079360910041727995806534513330762608183932597693031928430965886282399631917627274312854260589294188914789771043646283506523273837513072312800463114835984434268610818254266197100609604904081761324358142789393046527880668224778325176719696116644139050192703908847605328689235030389147410319822988976888348075300555544399565538049614356151808362656568824524679066841044934223181097443768100802311559142319719691248169954565063498189993174708997722953107480626461162989825575135610819634245171892307395263293753335251547148330058861193708224727736054415291866728705284307454877301675946715954703543971267624893604751468302873078990057063844389181870877685784776477004332275961769922146387547743586080275298421602731904461586182271008889517899931429147470626480384592778192920824035765920747459066093427476673140378350941045358832797246035742395840740728631474074218469874627480507772108415998318517155087716371954741118938013294166488784010215346870095549066522481469622558504461586118667895480621200052184254399227489066682223974581442213258385149797480260037893260180997967098843377546796737291440414073658669768332655804514437934053085648181788926669176081938015714442827423109824242637229421222666682324768003080103850217445770752856308783992089570493177646170341218621269482162790906318799521671797382953165393199303666395645469527518884087068960714631464166687393967908642927379052730629049937048820970392260739773208341608897702022570083148147197500296165966292574083349758975199012695889280903639225531285261291507718303305692826737181317610370781006212588254816725689298781687367472091155163321666563774434815985399765314454347474155344473529402878724481166062952109242030172286196681394991302580744336715333667642007522303795540057273902964148390612530845793656696494123054575141936161987212506262394410606676845761919372406109674188149458727627266472662407845213027107872978486514948093381681738505421586599549262401243841785127229262741199709610641892571253885512185861562024309235091094509153039518535280573742905497377277788424997526962593317599331622348032218640512921583496118329469535401145119959370511664023128453652944634901758008816176844118922036204582362411307764496159492181433104325854455934339081684398299203589175604969618022900689437307287515766730342367183771453796064922075123505784000757935342197130035125147942101731475143460353596812854881081878360393518481155056803710778805723669281119963809454219672075775890973344697096544571362579451396150497143230942632338513420704110072989896200990873004914528043067408068993833668225580136001766498147965908594230667210173761530963329708939316990123307025714914640164263257581318846017737741867738345590804208502395519864846120929756943658817250403802779278035882908275430155137997935702059265826034688409759837270835417233830187049064797526609187485432479016139235684670336769668526921065769047937526930694998008862330954429894841382788421675673871185589036433571183605038552547388410477869796084923668224874217607590923965314150234623080363465947826530863702729814730623327817438878671500209752896332767387238181675668847880335664297313393048171134994726371377428831686118343273368686960138693166440520358125443242255484069352695253860344365452893530739520459873528378740835120676177370122750036609160227769308105278965355277525486894989905314162745527981079591767395625299519488336473346426290508300629711083598967499851715945398034303628671392848924002398468163774681148414749236311138999488861844462975571977268681158280354300868808733521970992983047233672449454558769852930066429116196437469449100170585605434306601679240728597173268932875463708236870421273939158195961878498300343456234942307790545125214211196339218788760101896894366886166338553725261035780747703397806590983815706698589679703761504685971430383313404789763340774796311070233850559177136782668854210190645486340562145502258140591310775618641802694276400716692705210182965334434145350046437628942489711694087391324849461237223373558747048505173844795131842869615617144559093233246413622911225926893909249997395705017358186403953352261844492677674047503928960712006960799575787649818435043127331452401970695555841082230312071707938292134257288364121250000083460439440636058636882998121750916477673686615269757200648005433041441541069332464704016253209549581610811285269278123389501554588208853568170841866390697372116906067360581321760368601065629244791410079404352976813227328291799268401236838043284565813156513467277721771539770753047799194093048087899809660425470079678870945036217060483627199526557257027278879804939928787276132640183738586800260270619938910736467772821423819222069327560199476577393218778994380110745618290321637577239967347293032742660760247982776320450543929229357740887717812907958990553856107393366543494160758483378050481718364158296846664889893016619708495356617673648139734008655111637371562800552254198942418935260508578125740801864132831063066215867017299214927241896473282496234013124190366875012548976651187697149989136628564463860507984477729813220581854975634878965259671890251495432315692545720475377416805482186225839283663358649960830279162651873180279625750326112702125829617223860600729445941704372838621974962961627494043628020293285013886772985542362858908467182578048248347451750390276102394524862909010397656590178198338209387101463080736241527474292555741500576626018291405267245481489969420449642081412609815530739679105079890160357840943251455799793102733424998198356837123477356594493908727113907509953979571246061169728327485936948052594313060020282366615937781288107678685303995445031022457103887457947067279625770060376711052333233028303543160442360896122869140268710711343503649298734416046914477595472669895663222460588244890236652180740447987678561538582977604057301180253561257758085124776532178787474481378094534039793482831704169837094584338649467721614288363451644121952746734142660795954155993511946423266662160449275546859693123906332403740401802229185130301739472671899630866735363243550058117519707878614694131126665481123459267927872003782082376014857586120167279453434394075625797139466210835787052454821831153633386806165078772956100358208223186081473395255171539068067033652077681024399061468912647338360157457031824546608340883609147458712307115582635089603340614265364375372903351954908089455130039925005408088823609409993875776091019731590273425640452487706716715544947487269623377584102603708736837686957929885565120624972016595146028058015288963157979553727522767406187433148324451652188320233946117322327477292555803802306863079545342863130665701366828759118201127296782756238941702088813391861917357731721375035852094873712350402270414915744741936236391437715125699521913685836091496097760715135831383843263290533711929600240995267080623528558623397915579916659068493025463749372462892419301868750835819930346194354549907201242806621030487630664314818418581654210824926809988061480340321386347242678139929300108832081152505429182502684149059948722583999974356079557775193252532325981796831571238941145027284095509965843665879881307984068248055900650845924134355630048169303650081563595011146565456579704487738114623449567745849750058538373455688319423776180218421714822889316798412797340867099187496011882573888864240126691018946326181499629495087732427514563919059087492027752007108679271267768228212626596356786270678987055409675567611048966411469293458386777912549974358235283515800195435427969294458415572157108028923384796187804178509704013379354388967075716282274486126989644095560200083709337050677774152550452554695405920100919164910755551213918571235331856199409319951533563257730739869884612315244974165770827496363404503255678395635033875023121567339357219469373520458207201342846442239152766636595387359914971165366284169670114575703888953091022863436035838513450798386630672306711543660165078658528533471492085573431390949443564110668558548412280845634603906735797209641436789531903484084206937462298798801563546846404134538814538539515860734434562067333946910463895113364056293422275114493843299872500855672150667091473681972593032395729088909565839261197363263913620040514090309066637778350048779834269500988607188650096821107598373761763121603372610014993954592792822400747004780441837234347333972883451819638767032524295972560339811269788718705927304863798903396833422021208406644142546964116354623186913305051727709408448579878079853186809415312194273803129998315924726905502705897147130211331124771613330612819598550955504202718858737583246151203526285004512883283298504057128933748195270132439644540483373398475775663724517616896027257143137407887239083600555410050624477112645796194365915250352289947939500359540016318907916132609416290509642747949881833026847125334763329758196429365282109556852709006218728099038927357334970281170794900230244140570770840012861569767770606981517103474218049001835059014759381352421421636975583098156156509585567192244451988544250280294317126297418061240856867461073366234485694964976414399834187698487331598219449129897798636816481392631522229497540852719396599847684722144246562523488048436047294003484258204345650702966939839042587879628404073903511160979471918316863989540800848359850437147588105370613771688307414048906340186467003851103763488618002616827572900004579730249643296344923062198152691604104573697847750575018767429577360294697188450075818158225384502940246104002557972754539012846478637162148904210985811259996859381891746679722183501930123578560457574279194098049963917300382591571907976653026410648450186845615066281504555260607640316104630018344805176297283390765229358444010446314979438164241697650358474435304296803359900319907138173462839184659448951052846946418118016116871344539575878007910728868973504184726526074680305674546992006978712136606241431024487992396115653883721638291404057228817938326108315710567143717988389924122381808004463872662947814591425115648299864900461573271971942154607651445355062902599320854137636555877814252670304033644017956004593065981694488138033598865296588240954453730249510297231543333249511427003779603867726391174055579685723179600414367660933286463521694322143192528369010336893437627204797175579588671384351382239097427147514344895004171449085875463625307757368221860327308392505612690123800513097907548071559804900753081940627573620390996034020237181966338258667328032438900447858958405991031555356566785306391902476623528393714551733397902431112492471791085611631612087068539815177616422413091419891926116219039197340212989960759804860715574740945204646504044913323170633538955406043619040988286318828610803397290057035204257680353570760803221729301199039409300079687817221940529553809415753517245108707125771229381086806068050745588473070834036537807516261415983662691206569064734246263453139446259872403316377832473602648733101788327720822743906989039241000372766645651203821969431501328547800810438657503687366181169914884483917349561132373746994483639157829718542419595272821469868854646989432395078093437293959912551772785776498952523021796109558628416453367978494440512059477955300963213295462189879650008559419188549458877952195530749357927774053566665545202774014565807900587908451575602554015946027312880345161901782146017398063086459020848669920964055401555416477064205192729124783096968548872841491504420511661921950515345523740948508214027807785602409704248420826149903047379673096767733266715485742529236895777659902999428104618397158913364755343575421865987918767258649645263634897669745579332191144421100340741369126813457288015855692311422263104926131116082857842924400863343733571685847942891868523668155540405550167090539966121488930359533152973371776243538585616844324726027852171838457380413924011462384920739016331358515583863094681721077008595107439245919610700480961788687223995890429123327048077135601386043560535090117800605220763086069252169942411194187836325319594497347019071681603392663642022669326545844306820528968059351318993329991263863531582483998165458457035905902260373435914496267695255995748041926199293190088779811054414664457574930367565729418806955936665201420691356242809168173466951928211011419923412345900268228766554720255859340680764757423849798212177276779101968730137382848074076416465869396117438847034549351045977820598501606121266621317677131204451037355187245535968022664267124872273896506803436170948579044714771005885612681149041647694966810607746017967805178674085168506201950835671506201462091488670976831709933251493802834968552716819567853418659507523378444337562102084836566062128402822336969105350442986855377040256511329473527878932068282936838711853645219628804492964996464765710012987372880913151866356627438871448136492566327861960361171448436614835777275935510621562330994396825684164960596305620564294248568881248666900116526616573915566143586295035243513946482380295900846060677825571498603388528218341894986329999176452884622924435691017908862079862618650046658312740703487193361656166291783460377394206330570845312310600512624780915088321838597892935607557413170164731934165985883092800029377211822726351212427610420412439487884309525116247304669794273774139207060783081111300839587194278660510589499857130217871944815712261027583827129240433863477128713815169054189712516408936282885277061735895646069269660222494191101712863705198088931604932808214287714984938956418514229315894796316802069157815600537839878732863827828873137724325734428755000058971858838672870588788193776664885791364227801068663020336020574166308412354510665142833225311160280444168499775263891291069052928851193115545642742587708925713818848446093337471769676114183403854687460746581555709432373933218105061456338745457851533507920460363333797532887041508258487249492904902711497038843763024427689917721103662801200963795968331658454336530429836773226672955713664875213748858811440656363890012729206766874780865204132884619411455730226759366598112187747865252904636608405089616941441348875306173644672653076585105710729233500170543528010354051845688939401990205350557231875588146835684565499516266718881675972452996117577919918309633455117739604144563416201974752238534365072142712152636211707819609914806515210043515055841522162665771942226287290456947667363148281866124867305260057035945898736917393111801880753326619835144943282254867014509757343793432743052078268277763889987544079291260232215296665026239846184413751374719192907388833657150204970535863264557685049526722982286368020818952934075551527556433810937715863304610665184505429114188240051137369222950842249225316570353411734673040296148164413348945163734961346453389670992941748372610951425170955895248135299784916003267295716012539438704956712636822854251513719104748867193375382922035416477791741887596756042759123456899815040270228886630380152131453716765404012917473859203173417780115823008104599716536935890091674953497864095469144711617804230029339465726074352186985488411212237734605597533135258245531905222906391078285345848491896845476245636890879917089461461651624850878992037908391225702130959860150632103751893451612986934547578782751609766007529571872097150239936454742635043713184171250851535033911902065924236937729000634224559216291588741194996955423605226699461326920327579733493635743153124807803170331583769690002851089345442731003494698263850697308152615582776165470452422593256739254338788292419068571331643409210885061466545951058106596034579057875238789428298360890362202325024628804843147545622111422526199547775249913986910226582139278349467510745721142159190615318563102371546335734244592145742650112845352813514262310866010813313472404600142807476106722136471217691013001773675519223260201179957332579537231901813634646215805867705953701439522317003420985017597925233902149901445572727658242916039314073974595669036848299469735960374058205346116693121639409998819254348011444026332803440750530139052206114934282740725196528072693467603570068129037207235948600065819965630953105584329362708037517608297855168012455452141539388030849570364489420719304457357106967866356317133630925119912755087525305662504074592842646529805325848103049523826862625415595966448645888449745042637222443487166947169281895991217980967214776344905413201972657694550851481536384402323528846084937335764075020944552043214859600677467870269501129056480845573444426075734515028160406838886194004031105715776954653739502835704706792657533177808731837615085380685620712224759061627150598552331727910219697642009626730599970865608392087684880643548371859460090525850088556471172803890658067514181786946375761819298753854472117659701470053887202817383253428136187763492696713613643025988506883902628325244018829511806190956590983562438077013724319208594490165083696585462063042504195012658587573629193962920105854342308535828979354502844892958796744361945965507579731845350815328950508320716043622456383020437827547999029616813502460992386677016042104345004107096566314157104544149391995245310076705867729863719021943257525249030998540618469298959981557414204505285175106527651759727280493311729727616594334971437312159823121841773849084287494989718544161514705522880317808288142735196088635741665445470922336088193170583761265300858321825191281142704637420853306398161883979381719620801332608028271996505265434912329454551342913628114042713762848942229082051144781311757150397454857762759727437726625902625116368651603664329754649115487613645577315128365543280057077193094144403794303715355077004046128572319328426812026140053061667841263927006274432521941301249310460410091154696545558798276061514956965689746635107461022182846351676265404697465694191726142563822219249749937640417463100731676546697682066102742146878228370601417400695049447208081148623496457238071668426067258136892240895107294163719518791520981455432542570460006525934252927302554025679000628948893294001061448866903421083063746602508849099888746980952682581379406511586074558525739205225716751656618196689688752097547316156226647639314702725332718101364629365828608935433557623182113518181788762073396327980689722006049714957571253722363673095785562692049131218563119995524893928249889659267622159357164990295553306519608291530178010635259965536305813220955065881416478308385228693060619053583659518065684079536589790576052870192423617553954682864931335166121422979318501336382447995501354187890055162730111683175721721589173988262388165730123536647853915221357954002808928553050073459595006429666070876554889212126117482345212959154506741743594417393986064829038585622567122908483573808445719533736025122984829585312161628104559788589698290395804764980120556456738165909584503133088797743157722027884253116006865091040349718945467112338453928145392952587527589562651572403334189733521492454561242777051261716877510192849167881024630128912880312233004827452787093370315824776245750360042741791137281602438556955178933470096796323314238444005284118277267612312529688427656832260020987038615628941180102326279062099562415212883937710402921579625407108839133190040725299603894106032047884350318686176832706158182573784821380383549181971234539810148993651717722923489131551915271470804587381189287496579583947097489538954624518359489641555140538553333889214119047454762729028270321698873439562319669422903470623500611598995614197244460691429501080481807329043052712000269580061802753396528419100612783655477137999185918395368659183079130270151430056459884935999062540730361481258552550591058975870849406289054836399231874869841040111684382892492072139830705703267173727025645353781980818927798377373956634435968578926168363727368633254905135502495715999595222298825394047635676811938643378289370788876937384346392725639659305191649244703033513105266158120563858128012781244931354465983247157822159386414556185307360941973248623344541748422037516674536569806150843034606151877494463108185735350148857253241710091570601017169341948392650737500063534159940911644000674431568959317142813918951472488452601286744124806892239683118933439151069641408729868626399549943098552837144833546816896802105412964018149875366261953195136772248537225269194538590020927858873533336074100746826016970053051045535271453298198067054284683118144883781852983054351477824777913381216664794394543603271671248957822401157079953819890857357166476414078389811929567187572949550795828680485860342945042399432959094945763873931564007302966712770563426203628010620651956406039457473260400333701831651354954077196230508524391429111340341273834648934751195478069412905184398034614586249144213370579657026043136743187244236103135338056297467586701730388921854664582851873859497502665426316161503116322639476454426147427866153016716393116309611973882957896272730666726161308154446027102710842539783433213264491571420374801407168608713672781594825431965764121560387451866597629029257744169155648539968504477730889966670386032881364043635469119357008810276824174579501639945000627690927499091050174630927694059920162464983478802216172234533525579547990215288156692132138048636039809830671668639986637099726136761784315334368514169874295347458375889300749286494394679044585978850039492092639976623305331097449449144702387819872405005262989368204083859682790531313916742000541650261534451419456842484256457633264421152937143968541352442355175313256286093670844985975387092382891194147119808233684610453688496736039456826348651492186205095982381132089565440577382349557770467125057341259942250030481818272075709692375669874851897885299738339683634374768411488317159455614407379947362726079827202410123970961474034301717850563520416725221839715388927751689315084964037217089419039816932749169799495153080523504126859352647541228284280748196625880637649891971712130851910051023890638416842193810195725785168717025929408215943097469824018999001556918676685991936897434917881193775939418072823101724112188763822378125721380084789526637070323612871295859233956814860318414557037305184218721760202568634144621021618381936442537732472771782394872118722364904442689793310803301454265039919735941845309918200262884988986438888617597536229042410089271237095839255781232295281321110355756392444841794290183979000110846998265181769792409656085689842199140373190123339490414171580436942470538103312325672683309813157652085427962994248910508521772165346480064597415446631408337631578159698033261750541591291241448234436486550834888399708961874237299200899979997729466407487736514788529377631164149565477782589704114278888943734269519003937501158411195155559274272733209227727541534796812157407809214658696450247443960120806328629521987217348730362326605758555051223797789984417762713165502273691338080559938218614349472147015845744147522911205382334622477652218039245788540750464781271883785054230909347706379229876540818123485705679903045784429142647746534349528722012977452010486366842698731873936130672500302268704141210422913255231201972426063841110390531838296205522740584339164231460703863388623271951772816864720254819786614491314820535712225116098182839556122606204996060459911814367153505687499085634083257917319808049428964711751245445117568685762094166659826990157267242158640216547362940809421488908125449941568961209021076367724679101298210035551347305802512666553972268723802385137252087056900942018944706208837980758610620195215770662845968697625255649594417661231844103991685912678682686610114341483346985931762827075304213921117600236784434407359284150058059272215772089584258613111804159042575148684928706340933715571328706171064687086715280855691031619450237513380497114648794779143166089242786893506774218918465366713124532311887435430959722648476433946045312865735029621502862648662132854785449062102322814380298723073434351064968239924683100273046870744499346020546245324954190561495504559795846878560884452453706557075831940244156783768459702088881969290344676994491227062998264224705725973839535719846456690655771809028900612359108286194470008815663377156354794004683627769041800080971823950214811270772876162682324650357303101425755922731050831655250367621444815666461024289415238912350541111082830056297360451034909362087164300866517356323704093039970682852303914188053257849032651650436178401670918514662376389266351899694509858021929477075455803831176437251778679590641892564595800852580775666671460480720830366462433216321647124990055775798248022524131478137456313466332532858613653681444400143314937592219831424752595872816379125720299611410397582275973083145111951461389316278210427645167369399365384413913759927361796571160893396338658416865749357506164619334345221399938515355146891520910368747828081486872462188917582609521251992330053246616811856640323108687280941284342666555921348936941194561457784201345025777978410919144926199950405683970781200105064263759260647165202242686879279316473664518014895378793429517265011831876223587341462400702654825484435203437715956482104025665367524607215655760417810718592305941994228488550909845872811643720661405541123046830681425055319584515898189219434291783575953567963818033855046911568530094420100892484655300604230820695565119052424019224121899399007177889364660860786385075886247057864937270866023291021969663852085512421657202548436229306406074214759145488039498141898067863852125083959380494424049200663681299132043392297925958406519042947546002824015082392274653846600429976778866854786741989743359597996645468365191980908386520352566593514037103667451375845990694377393017840999187054382523882116369060284619114244128564896687740088518565398314713424491327640033342544231784412363117009058562438246917409803336909458637099699728206486064666073872560634788229871809607181301469003600992013350600876455743316652665766667680453065103040409116027879242266924651504202955528572258607151502270942365864461060337208477261564782435369330491592480533931377728971890328786407915652540866792092032409435065121062017319197723846349966789033375513431880698266807273805267996127098080556278191321912708560219154387815229538147935332219411308237836401006874894073527882192379855044730215113124222843196090396148921310344826609293068418378019833831987081565462147161049528516901936355822182684077107239542809030496333669317014733358562518735752204368798853200483577220412079184890263956970482380314793322051127895487507217143934168367596231876488241769904201256280249104229948397659646821128617704133995494249291291969394738088643413194068907740728683964639503639602211244126608729877282914062454403651259699431740530473779067881202719750960853838067802380091708649779480158758379783529324431947978898032505401819900212574863797177502175975195333712814139619460565403400589206405663368115193936005472532435777519175148757873629686110172424062201672161990085063129494635037131223504238891568281306361843352505263011109823924548099919910576541577296945642526369957680157235307539351912796384401820266463468150050623125786457849978091545691443446119601418053287292954891481677854325352695995200208289476744061372357102289432849904499957086935450409495874248893713735997598078230406251809081272304844846455537715350905910890161458653000144343227956510166059318055659447577561295905607890864090675825775610269744398625769314596604101602617232404414571025586901956696523759114284264728493673919463872281692109044871974030767186579180200495649638916010988600295592579625086051002116766814788882808577766301494980676403521374639295292529007392304553009447200165209063961702039344177800751460711910722492895141816890520821250802517312502138345360121406318310674831609387231371595994468022739337422911117701869521269795591583284081713616433612500041963382768593049363014367976639651546223632708053142448192314468929381004359721990989538341784956186722585078206914473846626163587854099015003840993433741556945602711797758862731802019325978965550811330601256668361958111570002275312777994773458758765112737002684380980139713953239484131469409854837140246814087345023552725619709324282897146764032459478462313187103598821543150217762705448280503387553583271223872053773385168701975431476831128632737406027896484878986775424274010159000058376701802519378356544151673153554431121542308489925465933975063698128957193526391183265070808137773576230863176645335779865819443276526215878455204485711230549757009194043754793145504337932877919118545723309364740383982759552919435009423411768332630099035623868751400882979330617813930196252257174876414689605180102662797592715087240082558664693200664549747695613655943921477853763016339524506509130916311387356072426117330669802148372643182464907866453504212175965462220604709786930735460806606629806576236060126238175211422735719040208321526508729162761701248474632389320374681107731595728640681393820037885981106061163991446043751462830738782235357669350296162622843067174195984288424761931537074746805594911013033474047043921841035691908953891306804720577500795092652770208423904879555829862768031825516204675329242380542926714808920137487441135786931401695569769944242569432578453598991595625855708673816136119854833179399545286455181989771906049596622183168661201922731644024908121617638638033801167129983613054535387445075020230980438454921194274935533175342246109909070257325740275789321319671566049705120584527037524174446272489014171996906856671032759991486633335655864679243736638106314639293198704421262144065743688855905416427566481913392314580978857496822547136950066343702078387289113432784276487869044709676255482121612663825978497953661904821196879203266967755368234355668060103130727549332747072267302964239693731145314926939403023038770309108686033877620533798274066728668208118634268274618944579383796741638952891810369195997252872796856496839219673701129217898879476210514309602657161159055646014143531888715133501020316214859126626177108582968337062770198515864958397864192611895372209215682253143828047739014501703084201621644915941306734382023686214732165008415172254703641726517927795987697113282375124587935893113828473957491262355571253014489696299018622190188523810220651119846442515056199660154919868022071440665617329121568959206453474114455534125720715185996052256130023696691646294088649955691461908497441599892537761269077509966079494487050599148890824084506479496524246313054008139461631528178647333626078049623469964503759614050117626937411157328162612519261882259358213585917418677371033716929833345013754233840359991040394236657223692266459369183609040024589629252652862580873574977984430833911152189679248922344862110385454673883933769728644793662930180440503287819152924703369282937787768213761300649612316098402430785365831734944598496195135372938808611115945675354491646710752993545477512530132717771884122228543487158238297336187625273687435599217894040869249539290646915768105318747398872748141629947872455728140648285474402163223370062869034055656860117352462454343050601821164811550290926338897087182677286828561851661959437531433843876401575044585038063374456211700669943184124785045105381915152011732142711786211280923443829127959700225604090678458067194694900366274562939474702287803649144987419396027504502706916063923189740481766028895491752318619873001572182402209196920638596372760183056155541383219528207593297659446292622624406761081673401178518204622459610263360656312471951354604558464841552332154278805868950997170077271806727386495556786008124214710108771526302795782696976367426288937042033346969637478098998694575489885186041926632755422125661267943512039047266621900165842198494453235800621003321077898227286583078786128010756511338538390878090034001068891962392345696386018296827788632868637912989716805792484557054754250026140342808361610416703703191761188336288017211016569641005169207367359124381220782311658465970813692289268574217445746138646668343949220022722883497857491326296497455534752913217390415892276686898126871895095456796668096779157927009658461161343424147209615015732126413688127939923124733789917000421485564070626986403022240468686959569460085495473436108060506091832624852861746703011789810093213449008962470868010244698290499362697228058445925212192085947287905677429639034052886738507450088484772389997949318073000770086126638620321716229321355810208173122732837814961887636001046371945652668574169524783711615120469933556260512195952963981316915191759151907320755329340411838969413278523289429235685869661523929636801923964732234163714927226995651213560054045272912262900317406390224881819321903981254606787636625808756302825809258419691220073374012176642685390207015390339402455258437109283974672165369106160043758977918092824196237750741291146103172799532793787427761175931920246307882717133461584870043894683450881873357028244670613565519380085003163780019498456496783267673231158054089924799280635381857492167155887403670596340468888200118316882391808847409445885355161428773246795954894357547048520776558463652354583366367254761309092709678369927913765823145564686360183734359184656164806412487916881605557879799033042790263864128055652852970479844101437102866863227078849734663635336003331411263319407583385203577414039534135132231961506317972556379926241442606611358374754339253203692391114591989018222513279101724154559207210446733880406460852695822486713472700941787078021662945731395005054843547020016888624650423217170539046301293695572928663041324363900849903872976872112767327346825234829924072537560389943119740333590186646428187235685406600347638008281366503217415812996788094421298449460295572268140889080345886573035679117575808772617832223971908066175409963668871944432682716493653092039714707671941287401368855237085278455365174120344176716627952713659244884231475891898238861187461523967647083859951742282366323561437177338966802545047781949267155542398675569743567450160970122678420119754251958157575573374227680824643194465824486781658908660904350489541078208043437376305729929727320822568506993591606796323529832910335801699274592941377105011739386411820677917928335504894130383976646424738717242027236268650685589943014409212799878740600828253197882486953118218314348625987661068395692123334001608270371675010225559237813060820515213058874837996853852785645485287580277062856197680929358779528499513162627921065765207888352119245583986884962641562238916756100608486740834113245096989637600066634657594757914367065602981358249683558955600729821528882514396049797332493922233003527502235490483688644054584204472666495108052533585258083561115076262864708851683596389504790702829350337771334197640904002783476243462851038886083759091641487860958322327445718598772309933898940657284064531783854503398415646073997714175655809877639939321108734225551233125403160587814047599510669727547003134952361760405390337153522234825606806506938599423598284878707113825285992813567585656702244499179507492065229548456127359143403877113794021027373775664292926673481160408425832553744063122324068747032390057664513274999458218666947292372963812712702697648414956140557533138897102653129270485945675870048598354069607827432883266795875798056307284797685064904789774698381548617810504237202697096775413979864566454062512649291269588799753137086916846621967756495961338756562125661468295491778136634914127518442235046030154937288866328602483287705682321224550529238434005331151684739991213749825668826523372617880070083127803420687028161927557818787532267170467357586870504543241218242605244725010889642336852011135762532942684274321602915046985679414586508243238790373213118673537728708734861504140477406953519033911253997459829846469509961139056605556408599758139175822086076732364176945871438891965543416983012652294484382916163622965005906164357947859864255230010173711153351916258606929776175647580040793953807381363531934325260494549150002538737319006509596820993238910084917838608666022858902235876812334675127536183324029721647436982199071071957728226679739001926700422224019177618058135331941772598384370770413289046873416133237180956297487253060656831900969697503492580711448444835307196461614605143647745308069222424489977192725174371757019223824325453373497118924321970251509366957735282037860875600334608585809590902913593261299464056094125588502834947440948284541561447876134719845093988742135063792497553369947936235263420810480152987797826783508038366012660831575062726806942574313488695069779837014810347262105662189922633240822855169600746629217129475212127954969238888517165994570196322572120598362859896719748073156478775021989714267948988375332886103625224859666694297317465022459022674041549924422538349831067883950383286385534414670240938171144816268993356565525534876232628315818314422019002297597788322461823390906555810176895663883556614391495781368425972002899757308685164221110288924611096978456236338827876858160270314956507455121409469648259220790239520189653785222692364622196262377930717992805812068770189990422710680689330935802282207950038410971935149457686369047229368001538412938217363729001253105743683363979853960290593107630569596064924967917755418958363986122440484642199265278767032085263065787661537037668324344461107848941292142774915050745757596342002725643394925101420634759013537103217651322479480058546594145322095654282662818903123914665066087771567670803651185235673826441925857764504624097419792664953985858766624730974966887300670599239738139614674196899596644538899178164606667822230155263048734391631093109929583572038074047078596656878530727496532794633700027187644549320953245441719410466987709087128561485910685642765392279082154621213230282842118216468665787853601358926470816435391599273593331499163607404427564699168337118604541794373762083544924695748308480749521791112190883829910443167759616199239302510535117755172044762556637071165746307847473096021881596644027297912913341594330895111346682897281148711225683126701785912616396457265359435683569229567803847227357788294082594192023958374755068932308713986359680520745797550360654547986350120596926909185875115549257843947597468457849676295959326786639712719631902743091858568482415167418417895055844069434334832361594191851299678166949430971041239630175516435044438567582574199873498447211938329507206872876004626257313916350749542655420918920815056360813349866385586409001962738651602444350913901653853160280712037145474461869532659443187015877906431436703774221920152516200154080742790714938050512599795199613161920408249175331285663533355682991539337965950288369702835935330787831768444025787898938328087248233906467114702515988307117957857864914940618447692697945487617397427064478557656608588194498728964412286456510820836601183067776445385115119979355469109194520657340632082299446943017163075679224199561553570323321575503359994383850676917341423231075320094311351925985965200944613482668090990595197449678885187726010975580688735971577859196342959908599758761287615010492760503188893673954573121528877773681881471191005753476203457989221666152640614768870441916608913191625978021612213342643573642690819616166003078250893746005740070434534992979612845194282715226038799066952193486615732078814531934364951653540628176455787538884463303449820703015011509251551370099619049426411557161882201779099120959810811552468295140699358023076181103429406079523908826456695238920955644552097415082949422716743392210300714000503346485497800784591350588383064431635119244957410234434350810515490084094223096234890408815722898604752069360740080429968546454348645454052464378107158350017197685762684779145855423386681512273205387897179213537655626655130518118504775035230769038151897311808573929465968885108151037748590879907475847183559737997370423791707116000068532338081551884656801586258463610919755610936605843188255555809346766192533490241653506582988351000892394340287806142121631784951643771075189327864949751767201799140803509873356115044278835007090369053083607267560518865326214561834516588189967988243582929753633739905385568316344921714634256376959799327850861297190319441869792898439313196978953673605428947691115121272227322373630277685616595202151995982048204023034915327869193207997125085143258539570865293251305229301533101518802136110370947071643328667407976796663473203907741813193304809731148641748037446925456713454365805229848991853112218737857681300600585376633115658766173155572944274287892420693698340086519060040721638816453324589500416596035576625889396242680575241481830112969338252917572132231480302866156083499906425205134647167165280185660857514509767294306451265011853752952993923125396980679857653905799658016427434006263239055426427537187597882722500252058348143357317486674439143572015276742141718411335575049811988674688190638832837020067494939477663907475798423244425981607499795187821475946879499699389189721071234005718274492144064127362108424595327900159279842525358640159477085725153526226074997609108244630258849488632563415805642258909980562879320202353783233799469399373912982787134156080726391091014653559552434059698816577351516880113727248884471385340622407922235844120468176596972418069855255339931363901259837130873209330609978930207533999703546630111374943083357384106634535006048337035753459165665311195753403352316249873258717694248826329478585903145401107373464999639970046703700256235070360014277040306169116758011672188512861841096892769845543550539352881510847096980345641403050375912022270078717791495835704741753926516507646392676179208852269983161530812891640561607925482510809385158248134095936651481955871628483580948703155136615061516174973819794853567167382052496714188636827716330558642653938134462431608052723870234397366894106437619226365741464269982390681600513771373515942178389694993971822600563123920604835591746227225610677636009522488606152611546301259823541801036711182395234908194566045295883014292243711292731194602683198478132220917690330908882093311296665024187266901842225734287648221911634562584408342950879315205650341365376764500383413799658754953372174355390540958256637540089961011267330179786032515340567479169611218536184001954622417596085454626496828392406692448309849053939812175793927580114504397693401912254304829085819870695173462595479658183690783035511879985953847832987241922474585463154467641891907226755288299686413939580871247546319975982586573622692339770552163656923903420241606450107526518779284162502840405136041796099202087619636087802406985313665158470997300298730883735214107215082308360096074894869696437174409461176054463369991158076611965440340541260870528577232469610142166683210106080938402616197816629798394714041254176680656622740429373276076514430894465120980136729352138886309051335014415057745653892845596843431799334448179351889229483203697035874615041175178090561150786797968423780839855519919399265663860253464710319307671501118323953818177364109259060839205581256067542128533844300209636753590679997388263611068447926685647150395415220165069267659845351366915892984413286926607988446084878560151677752705359130738795942061044470423914344061268539463185489478073304598911643670802298593499904331807070428006146518481939526265556701674940661784464296490168614970981569246377654778173421597596541570327624111440017555353740268692739429028311171188490067896389811168868989684636437151189531763851195667166549734651876337342229999855303969686223336793157111997436976964884292479677500067027284096846854819326355493659238995474951716225380776681537156834720315435697285749835622373022482840146570157963245545070902577865437182006455418919244185556886556090482382167939767617262062706037492167038088841188994854921318946273919708431666935454792752440144224950055192122426793905720854491532899359665036556489891245020846351725390124055556335286160210550765313246408587393095986178477706134986924600517578252918513270585486754154523830878613054440123465394902194550689346836988156846584342804258511092414692225971658514834007338691722502193998344778835401356240792537867465729932961303324011004059600369310069478267939713460341069918843021918156873390224150266966016534423171723520296465475680594264380938362772855572330442132768282471763347229051717231456463618167661800737669890938175658615695434983207524224683471050343982007430436967500373299405581767172976335023995617118280959958090518075834969520270152516760981952626706615624103764467604168447777940702754530152974186159301202321848499207291764715134217597003176537309183852092083040930306668566613719853063976139319706817062303883856133535136540594304889881057274536145270113665192337437696109541594942957430600044252061800617578035238366860126877964728544185365341914882507531678817335383108942221163625724347723767085743654517543890047462265412500535006108911023966924260591785589757719805254392407201466532679786824536950212461531168570355276791214602618522853769635571682827295465238514800764841918150624068878360673770800776802932977650057509052874882536705793525953259424375049224502302283377271005135236814529101194327220844158997086414472914166476880915434278838199683502496379691954180321974922518704823265521916705504917721674097180734265829247116545829862851449646480193806687023855558243210296258449267979537731558466761988999106690395383010389276346256035717584516330102445905632693228987258978432979259839505882434486959726535713292235277101930073485442488924515622141515553691474392613670211079444247561438842795921177340457515952427874235801042712965382245065634149926895773751104429690740099976337768598315891096656743149183923960991467833160068244238462464301533111899941137856899064868772898405030371906879057231198016836073770753744893847115914769019085014683986271944712650607780804051808802107357161478858188486408434848623162479289258565550928366872261283454052537815545771141441856198401184564003896050046807919431778053252595322095677834737032063116828227483280065996662238181892929872537680621366544430934846782101110898507058814831579222887993641013066170128407784887606609949585675637262499235847750874403055930670344796267529173099749049533523837610828608120061644343620276862068934465705602574409983450095013910396279520077229199162464943222704074133169760400786489713379852679816615738893922037099775708029726957930885602365599938452845328662289927042324580002621735425809181173993146840128045103081064383512208986022676991678006817438976436025998549910622437573646391131465582777568022026496775728918612901111806958650124534685889603141366694261791594803352496171920695763153261581377259497565809538801899724189259706760313737950099129397766463721612920594589732142094297319781218694780093440652248522788045601670427526456748290260691081531183229015852889088096375009562856495532524018592108598268276759707145248367187426446566734679566997926703206964615209200724010635592579901340957936074835574403786902320913592338924875864172026967663542171631006676156207665754749044195466942458104668212763503725512220155949604872286061824800218214796155808668816883734398402451720383391227663959501546471278091116319839105079065179776200974497153267929768778486121128165763469966024549275522321684474961966279022476140148768699467189338446470711616163977327705431479243730548697927727277391644457347915468373157940423745017034394388977768638050992799916451848699200301155485209539962552696843757985503669095884016139332669568477317693527304532376542231947345696307037203090598152926301976262861304050220300395204007588017323887774933600897780525879049852114379829998943058458304672144722114048885886107941595200269245173708166770790929546241737746821506337130071503816847631447766033444259536904394633069895140016665387479694615983228673615711550243790414638360026373227312932479245063679689291265553166079627621459951905781561676620267270386397272032222316345695221362589191702073394146976369838133137572929760680116256372344844897272712391491009888010181695232883789515140789759035492730216278718636622046410572316132504792083134711473085121167050896782702235272355781012050463973893708733536710758719331467734912903957255623095157504938282453788451790070025312809389601462670005443452447532453014951041448486291393548199951510133192951357504007367468087351405468814636380781112422475766047640241192293074711516109327656437836761436685221299381996282677453724996547475081541968423537241944997598983993321028068973096859609520862236230955856457333984928973666356412259838063546906897052020033808329566815556976616503655503117385693957036782891512841935538523279280824691674596783261998634326446087406004360089703991213800833460078954028707191646758524116882726920505183112122537370525097367774210984515420231384930411446657197473674565768850190642853280202296326785184004187627332484840759938682754007523259681518318287614284229533530492939005359788327253658992978650128624368774024271561835802997230184589204598187978704244055864250565812389485967032684440694754772677949877546924114901848318340142480779881534626142478308720499191914816378893156058019234883033006362426363143386735048830131880116126040671463435904377383241505415416395773044145019131114588882360407581029095378731218984851849146417319288349705677726354925634669343994962652952707262263604337416247086064592969163173615819822743020347000666892855206576263905904962560180335954204049200618095873759506150237655825732439989310416434027231432197833451240896335105437864741837095616822418427489947397052639885493697426642943686151573523104328844740755613393338538176458732650825763594429735008590299403229113132983085873256714470781156453952618016061215394956879351068215831586335172119335875368508231037039872948859682745792811390817129590613630443544341383055179909359759408274766914352073053812433045050177361157185058354590788032557528389494349470351994321690269773908844154418336501332432152390049670541224582559001559823090142057868787550062782600469987178438435802078180697675886203929631738156885635458480542402835855962700879467921049674193505431437267817268021587806781233187615538055790364160867746455928290991922432185538875965983920742699184081653581885039444025936641753326192905877857603544057365404511334008673996211356841062855226610969728802755672068268344032080725936544094365829422856049119472260926377475528708484349687474951316756912516453941831542731164070836108002965490881487760942334110289304721482784726414475641461993372071175182860531874541710930072113070421924328381498639432084206836628676506672565431174314302399609248029736967202444715526991326625441548444541903469097309822818049212378739542119480472456774012598937309262905892694685810612563315104357147791724156679477478842443929328184280879781276613514509277159894209379303203363732126636305781674629112958527273733321405467016218825020349601509812535301311349350535625608436778851309512461617409637463217723652419342060610654581828242491675955424478144113568500769779828088934363902655488549866419403823505831684036690040890969885920704643758686394098303860463487052202770477461637018992278930578654276333622697004182734955666569397512892640213359110517490754116074687878967878393491249792007359334794436953323636318350743195156723402724324252570012395295783462528616010287505135026277253324714516833505280404816736838186483097167015154213490913130004937780963357800558144906441623871215772090408416789050887073376788867580580944439555615225185817093430959686666155477067142649271839199112872791185364549383955545685571817318770698303352236843973821336893371615004495919628483150068243852666925614755247635373811488949174723282091598866552669099049460926823838080196145638294113452810412245389571844700483834382122207248602809563255437206599122638686977270746355550450312918858470377597352968623849705895959392029053312048764658097775529908476025487169155031329686541911682856967743417907300256575839246902464890850442026508983039295938392038145784877694925807902219889119031606021898819640784736284537336997782779260145838564882611321566550223868382736755453618178909806677829931298437603043666864742538553459044574582309996895990801609398983368084093274618135320900765733110088970048229381598799357840066305973641808058421196268140634945124684316726460386737374424142003235210517193222644294560496692820955754960626522647634489530218983781306525446946015763837145759386606864518430463886430564240726518745031788864268032726398111852177325442562385912750445636779284617912857943839881874457841712842244847239588509637372859680780146697699872266321263057879294381256156197723906460839068166329049775512943973907430586371524873250468349583518142950715520606184213172152982375199900749870634403709965811596481377656882019172565723803180265705762066151609775596505521489064986849872214802479398833617179764746419703631301821306175606614619298489053195178072777864463445459269671542782570598456812599700507771979380413094120125562686173408438416553032204480694589482308451115681137076938187579495199509957539462203595181358993346857478824213758915376944278242125123879417697300849190112353679814690205725145794353994957081331095957273631333315238928614313344211374056384446535359652815249075732749447960416924261136807112404852895284557386800103489239574020719107105066631437525483408471660580335669041132449744914720711844689574101651225787527020547636420754262001717832737470880932172476899499286349257178953739243624471045076472073192787358866291867444931542262877347411476672875485054210954717568037937581093861733540907497452317990873182257053746345187033041155002088296926307624219953098432865411363476653306808464819297278821236106090059937906253339549367500203662141886137230309802185191758865285448439853461999618809696933327175082358935799844935556094987303446398873990568664346035303874421261385350431884517770198640349405904331070271257357991527799329072098037721524170577860227220203505174774182556903232579511134067132639054399998270625230971022836146611335444932367996070408227270527018792076329503182182022691105657472260905801758491100675234881404935106207178691515424246847748775799224181030194359783135745916976544870134933259913261473700002568923456934673597608722834889094120400734459513334276608872569729553470885493360056165366519686904428896206171208425982160959351694537541758132567142002882942141105331223700432982459718298175637007566763648534348763509167889081518916228528062477430247878027469562352265692753092971418141627881285690439605663227145675379240450583916220154248204625468748551935634039886050073350191224822261813402462671960356765246613376006077096173535820246186575934269903724007859857085993338576304022870700061155660802212737628902532880056853512686969749053070942417239652996773205765651195537935350001358392420306854977773612299628487664539876942374130125245823676053561544828777145759033404964198168036807479739284058240467625436371525359680825153135635023791574226977457026348957735567376056461708041728095028117043049871131332209783481643174590717774240890950168960191025029767088180454135226138499723239929551348545290222780515297902410979262276881893011176631708781586599189498255025294941857988466034954427870516071584741752541755164216547211791708270898192571710228205164347548215528810405986172420138191071383177460050705236169519207769227522335008992402263700549530221439570093092025526496924274163722695814455416420403000868918280056972028376866768432504219825267750334441993366784793432255864845142670773033626378090081948734542051733956993141546569031794875797820057392185736490076310544801602656018550293037274629562614837537766603299942759775772608910885215482623232436593040682505510827602899814199030456047117219344439758205334365989606144492674801860486065522296018629774333748483670681534794826119870161454309248682182638063590655843024623945245812654589947258834609256840218443287152815940054565408480153097632142476368906133066720562738508534528372260575471712528224562614816952403056083677512660830549393608384693663954874615117656296766188612975992896248699124506391579258961352574295871425363150825326104205024603163039680725048452477789543805689829107726586193196911244119158748147672974101520706012461076974928792697495337987399076652165476486171616206501699794597945756129310472720443731428963181413957347832878813210309838936272365618103973792740185589456966870515210617306447749150334304192130067161288968303001317503714706286032119366873838153436310198140860722752536970110797981564171975946484908762381765098722577145173618263387943227374891103417002290207818425960486247737954088528573436726159901941756340933177837467318289351887421160573715172678234407130428728936426127934870956097128531528016421151740890967409774181381557610045374534858521600991284551871944208046437845615429817980721237743098993680773294921825192295197374526908686036250831670135879436364565548904920979000595808853165589391055880589932750184821668119320623163692949200032478094461749517194955075654926886130398394952875811226111004162183088316179663258674644353964493839819293754007705681321407818312005642597278782151455656499188682982626973218381737646664308615466273492685295338187883546034868258384720634927285993773586670524976914278885677292527776807053702584694056246477555823345042478480775630868404419764367500180198822916257355976271348805928593345185894999141574934093441046330130986787485407802028944558658322512109204767247786329097002898310426323700058705320101368447254768295260568662791724595678602952748858406777884218407367561651060594294198175281819389261186581623256385440121827649828811966564074980912101235208099352894037831074184640594671605967571634694052140618982189578566419270130199292743978360458455589147875470001115930756431694911896574178677205761065489588930728990600882065773818667993640642939219508356933684133845133524516632846468184875589948011096721687151007567759059778450425272883092703022379866648630801352647640460033254293790929836196448540163705962558857182533026422376749113577117813234647727062134759954580635633950247276221578063086360757161809156097270987023572127855826207267738148812710169377338901766872165248666668938382168908497687639839457970892524124213868846117772728577259771606127181477278380610763184683839364708131300433719337328750575063348625382102398567525551334263780750217339867612653281361072965316301718915330528860090110024225121141579083856304907105131189509534402159733225678806772215293862353025611609973507301285363092292376812425354512398356323466094034582522530040207732610806385651288579408837968086685859083379832695915185595664855803432658554768554168305882362045680388967636986953106286016838992516380788915125932666651084712019994870961681395903985715921694040645607794594770274209204498921182920433823836338038848333516507142634328489447389585982352168565228748927584985746687706334174885489761161434902222940004470636427043171855296993912924808704323430579733911827026976061560136909686579199727565610298378904276127402404771985345912458242161550949011860581069217446821249105447957992697504064341802813979537535480159330259042998126494303612046785625839215543356724966633656342569348278827357854487890772877000068342029411315226894634094198209833569240130321797833762250819987683492147469149691632028600153622028217350247733608400100294548615081302913327062682439360463260686038485561125369496915821003688949749436195756712315379691745415423545981067014955187042430192089783149073594718155451820298921537884158442049373721851048220848524260291984535663440917077167058688972174765632958148592769390191461396684473138819844347923789733602252969986424265070748407485886670947858916352810306768098001578191371346799310516644847357552561429962172598943103857825328205236724021550869018698505817889877375935418044717997231697408792650249820343642685286131003169641576792556070898226802623640787001747285086375408031844261268486062840291805025658582679688743140067869586156963565446472823150050069550617324129209660504463209333560395677551318172558084104085457982271205580711157512811546548275502386074295590455901631889618782688915788420514835001043314710250754388033954806662739713868307693350146773524119127681530855452070714294406567181105260026304742011353110374843016466067974136873266368818379711405643841394607858560382923987203958466094563476476506425727054464428005263443623726269326831867994574140198103279638744787131784660206798013605725368661541505571167943005906426910093015099450623328116352608235216824996866403398502609154863189399377190726428042614074384751635263745694595290335883956882252243950208669684589064113846573003591312381595064072562810392676202319967838631071990245632266361770220043721496672690890067726087717858879114842611235383311827137492525077582970013283656078700470176413069906569865077387082088940666851987352887898237049995435455959483863139812838067279229123824380563670748321523150373796856203022118608330200391385838402219306019053866141222073006030985126051994957690118432360716589225057419914693820362624494566429448321000489171780709380114320999179539565269025867334972055900583759890928693717335503496187935386235089263755678912362732638869468630910838327511647823894416596330962438635427338746246055705620318622145625505924619126498621520043886183172241070638065353265504230842038004431344334081718804956256558392043581471914551865570838681025686028489499522478589052581173163606971521499559013007005956343318323278063078839950060298422435368972695360378968913030521110024499736081383737292084291031127556373924452260640694024177676573473401657031779719991153067880001971502423786877531074438231974612951842617935247572199986923389460931182259952831549807050147432049074500807706751709740028991834146078587904913502851391573943164390257224292284377630093953231810549993503309529528189305223615399453520019952150813023235200126819834818418225302485122097444918371015743893595289099526094318530182893891119792984975776110186378446295317221275283733991700125410962868869895409465149812685548126540484259697217278125636803934484129285068277385539625373170190863827150567860097424851419831519062514173610592321840018996623753879242737714031913642301539487535309172832947484720622356180088012520157021942321357418785611688938034458820586639031584515726872367249423382635597914179273933685446236711351008858576848341027114178381240871392526780926553697335080539287368136409959216147644603166180369379455005026366591994826799435983597347698739300678994144412621448281129087698636083539139462827407319674587099760777535643099701947648210955455744605113028386005235221112680377769903194783035649869294671674660645129175400562655156233216032028419074797670520313042613269023792059104149962661698026725347091293783158591952678533174877877241510466316608216064180174351657543020509326405434207363168999793769444287238393742404781283533891772397589745589443476142938713825844409241294826524561443664772800176320794941243980214616908414436634239588840949986924372122228854863055178279892568277379588813554221539352054575676925645688984213839480285564270375620789846211293553268177623121705141684006626216845297942077670333805122082636009830197704361149492116655435113348046032622260562592159400953033355817460553790336932278591609588453579563763053680983226329226745723337554630711489062820590519380733523895076790020468036849988511972201998023740240510591876929021844551165402625605598742101584549475626811686393470749040305288984883345680500979891175024570990553914153165947152177144260928070272968103531966268984531846017767162045454725202303111026823698736361994573490216503018399082521524560208814546667814932009952444245261528713472988799269946807052107860097471430182874933843466256694068040154946709434646578649892742961348046514292339563170228165010065494246434865818959204174476340133613821474281780550890857036440362903315850482316344858479667058963126644379403040683052803336096544658284953273067619524029871111433566880885713194684782204168612457850719468776050738746623584789565585747979349915122639302395204267916312305848062566651407962376114714591756077365980298997015346192876170868237616288949242839657480639052905598316928994038469166537471940719881808759644322853706824657970601474663076919949966093565690214997933583103161262227014894170143142198595210017432554802910324268413606806776215929588628761742241145059575469442892935306103651456090967181421783756434366110785241183468795959346658832092450643424655347800911497000047611655629063409509825645994209961798098007216651139712304017678595210616488833132945119481955215737424378378484848098647884440679332922511731098588405302349242558839431225675297763677711331578857616528153024128236743240377007493504001757023774207031391216638830634219175536496042492778505424030060140817533617855784124280134710113286733928837102118900364456642367892588687286384121156487140833480383417803061521180069931335806514571495554918039939212532406213068260470916316760666772114289070273287267653793417748391508571791980037860964597789649534688645926081102378751469217397578993729141564616122308511904546098123999807921314933328633266185659976354877982090273218655994975259546739519617260669330363208309367327946291262520291996601031482461268075879553450255516731733358682164486889223417763869309873577082782048962430826549141565431216799561534975500371305327764180489715989318412277533381726230843749162859725393117946775993603348820337657057206046209905605332632426234666684347464337149201422101250227921188815420703401071447143665542390251160082598516451346032386746317329061891950000995714002905724589589448749449118872619392544019019425603524803918121097389281306636704119514883012636257729488564061823038801490420490252521138839666776708470382639223998565171321129398683524015578220009538720503945358738803627709092486926116759165031796920446382475096052498409967443566428334739130960418683803786406230164431001860128518102666665267145527402235062401517129025000405947751925141425489610023640719647415613731218766389325098140780165206671182711022775401693904582076686094214740630160512727111303904326231327815406197456299613994277040119175894739451251990838742628600607331466139172287484856575265178282350015447007770668232629592882450869727725038236937662141295427559778465528802200859082871859035039263854601644285716091036252904856265516133540833996089146075970878572290350350744116655035460976930897206837349220427767935323686916839619686861246972484302572194853589517540837520766705435767529666644080728852847079374213506579418045426780462856014121603318152268342165256644056345791600772588448410176827431678108760572453830403889465737144795830768933684315356300679491489211814810550027013569486044677363347158606607164901700152739979368806015213051410515946269292244385681860261554354490705333357277778021335271449763140942880696355149905642204034839430025764933323283048704488855160583067171623057833737199430881769054597811797223505014247967481393843033357462102740276055113486153675756720293854052414728009609181596093969918741003856850305228906736261743079483788500884014084468689420387941924939343843781649359148322874070780334328453348446471245388096021181552539634060591526822210807390722312716527281896412990337759273513750943074148625730129655798531498152345428799915615634800681630898600106160137501904686177780844858505816786489380235039387632861824015614498043531980566896651628725573583865807607774995148306687133838994439364277280270889092921100066572518501415644335599501146745065799583062296608689030120391756007312830308492056334468942724457189169294168297169737486062054433685992173532809369154817567010055245226672500431388650027397970293750086127108672821772322499099999970137026226154258381548376728509118278407117374686676552752768535547666642686568669609610576384990289970118695857169861010371341687502644338157686407293672595217348305070334204792598220319251053331300718674296298333890314162251289853229204307999265984654410245386885251885207181235344132147443283576106635678454964539105931074039069209881618864434382761910239698157945903754745742904799076388362076884598088436859597059942443061365578658428278516183111680330085331831393646268533959847505662253283741117053633214335603635230718817330178469606477739168826649505253837018473326486303563921628871387294009163551902717644428528126214092358594935053371952908225314894106727392383016636142293876479468904562300682807069991434162537751331748598299545931597585330644216159582313970291433439666265912963961913192797633322366688551890948126932366056151265579085229123740730482644960928894323808749665236814790842131356318313237699595831566258966250145050271054091589724067059491387402914219723894011487619954027234826893617401696181045699700760260137192077042755088871324609786645288971347077673821570462565874058748288001770532107750615494008164251355135532579290474315518554367586564978554309969095842589898236946426561838232854814888987213360932448699297489888880702216663232050172462306801560176943114093790336443321854956380803585018932534620507233786368387840778881898609389534519696712310840334450554485738623991156707867491689709911198134240491823406353324125692415085631137144563866023555973175651723088135805014873176303438093000938931274255956168168222825443887542844980187413615797032627382769472574590638672858645769953248308482878445346403000526058800795631002615492627511014240203224699149173823761030245931463455669611511917876882226953003134157472872083804273700127934343386681009008747307948286398690250184452577099006408103221500923629306687639312119983721390116949004997341918710758043371007989182136258004370929012613159202070150888800692043393540319030737785712762345038300647852776722833354392359505513135559599975562108478093173885815590677809684332825314558773162331287036304154045505196648919808908897789166157964971389752792118329007707160387864574385290756792632951160046547847358258319030415360384432897854756895651381128244815868189172687782451105381511760015515943824521888617564039746124015959373437872831048417948976505499104879847374721167053473572270270641678345399157585708831327129013575170381487735878681490890986243912005569118591286039614804750490382844047144153408332649812521960572508460019023816544789881378537334423261858926078899373381320543014976016095536542948424750306568457414479928424037798723001360740412458723075661161060716883943495651387591868901298928269399330548552663202354505530103652968801343822240871581632755872561108595279082646450109044173984281738234914949685596850766917478330623876549927961592170724267381476107927942446718020385468380682424734765116102459356626137812737783747250983431828396399501694575244777048142207076324904523322381388220493871175175913698540662391628296852629973724702035936004028316166283634427458140459084557483847611751385611375679314957214095193327238843303105913589507877566031941326836094253830325160220150092658259639850563768669281336801572430872952805359284938058097335038398401467154164294828312620763823003776883548061648136676059635560295542150088400812532396016540461308523405343243118316737181214785226703717752570523513291567935843889264705066403171030351833959172691878588758720892085122049686499234656977496367444440574960394219060244357531536594967325053451773667645320089447308201450838936780094525412869911226030537718165338674939782820284468123886701923078005307579856494754096436485416411367718248328904912418507570673184875484648698817247998021996798456996630034650371383906306736796788154647621747796151145394720376774879987378907131089606433920893547417979753388578352661411242110516171057628098111153338064379568270611682274384940124165398522997334063873710105730021266857695996125953724189407021284042891878882731829638320384184546244711992751148348038233145550677513218902809161518272252099178664119241044886852749315912368099805589824273069559572636943143343943930325883849747943287415124639287127812075900947156100663717861028601091250023417935977809823370520131904392471913847270097365661132785072100767172128159729327044080524631045158705848344694997583933184274618031702755024395257348744048680973669405626164016056667679858382645212571495959755822562326314129426630183435621091939667901554688143918986183005759438011095045491651572558676172494012698533656570442042626451768804641269605713414238336437319150571291877616964976440824901134401497507436824534681137123820825289873403837580461969347774723873203837686618727121990042141908375198166103750414536045390853521708909234387731105264835579217461533059503800822614030670255499064921568175108816392894654598932286938143586807355970764675898840169307150200357611449736734673221140861513281421128684133415412091715161890818712039281771758643405837423664326274465743326207625920406008255660805495041220987032248799918438383490398659109482691044127689284067287180235684721243149522538687718416674531032207247411439351689764015271633111688681223596826156237506257555862227081442791177648978889822082914029598260924488761216465576647822378988926783144375418544826084909125984733548314522460798670749300793946564397444340528838348474964180415241560848756419734738012109761087065901598587254720980061317253701745433286421397768722534425963049818824435018510962744684132911275147066215595100886016726664552145113059364949574762519330148976238807212658404318449724294478743249344397503543362570579114744899664137161677279126608544687726537701938478529699096847890990109666743715925267191713155045746701722925650999689630011396831518108646524995528570324358897896157341875315939019351481596426911117519338745533999062851615004703311049946254246681728743911125180318918752888886286761867099124516658707267191520331344222055849697646694087735906740483195831517690739854568232497977994653375667213689350129345289387187694966158774117669152278131712285218389202627501241603934579152823723888925112601110829903959293585859966856723749901987232986730882638739057311397582552353449873240591279523503245444079658721386319863085307142515166935014428466488470428258528897716773898247445974737379062149602189985098465739070131564526712607649090189450639059806543672169619112711908373397265172575332012445124387236502126475793624675914283596860221141090039159271082543395650598493292181772107654382250148351481778228281605663396969992563103193561141680090816387818407889310658856587338059149631619636987920425023094941417562332428195052273989112328884177806474607957328039641156431189972820060164686254386315023818466911776061791130001761476871712650465117393534940138326241901051169607414371946646553283225997420093838674928514220276540039003368695397378754324447348490587682014933903195412492990277691261082987450485634421069734117914880814266205085947815568419880740507557603246582149549352638080088864661900485514440663837317470057649846194640566464930666456938555877814816611762806950288997486256901675874307560700625696612537157657605289516962247318750048587847915316566781871204159714092098634613235210891185124741997661826277973785555675459255162159456535626407793464054060347792523639743779330563202080772638318167715696965437983779349245480483309218765711102717990583566903811832349474090360020605472902293859188183260207803752592588358032069134207640426624839462609260822846197321154458928490712754824447363680107839597080749091173185110777145852155660866865766340086817117653946453299841909229436202780940937142491750216080129939946838438825663979072662048098478279884005176389488741414652472868675509877509242475403768521649264601443074038981515679036016753172063327499625591291500548897637357639340177478424873439284273199143422291429839876314177442677039374126174285477810785485060324673310846851444340006968216357413727454045959003496070705175610415518571128338150882013676177570930005265278257040420690888296405659346109587907224857309925789189512347197714237837718260019876372000983175959421830152510029987854520806360052691079719915795537544914720951953529561451859288582034036248958043010808540823393697479684884833822938923297886296462792646146342229019056443774424646855064009420399448169401089511144699327854390633024374920606622592723853045613243115614982214100768852992152555545157715721805916545531877252846218994275907313327126970891684184587122631069497769337423937045618129611543291525350506040967064928017126271417948063072118153484773505856040363862088116143849378706289240430943097289001431756331092565943663125729848899293625013910432295407471928897402276703988487183153594311007912052129329062695235033812260965785104795274066719881255824882867896683482400811416317835544071255567292309756506554990557155916768482567715629792605469240269524063460409776777320230179513869915867913592346914561216260469628711071855061688688616147739582757088817346582176841925009463033080546168321188184593486615757457109559904000293812578200389571088747030080050641786738115816232359920240341075773724784189795289904761224960126461628099270018079735763128577110250700764896829024740657745204894842408497545872727964912576815722023304269807710009997424504578553916087919793414506739408263179138050620704105429656245200635377852093406423039426629783902901373323789507983476714048024842028744852699267295189778982084508691657223163364381300334929638499016722248204597786223614476400907233069852289741370341052512317988402693006897812588860926134298955467491561834412590565210615050468169290195231001843827054298744246175980302633587900582360906007474675086524447764360305854199213579859815410501895492234102203952214402196657933948462350648796039327178155682105533688941565149454298486130762489092704344369659246484734396130305025178567908809092600310830454742901709250471670786955753448357039114366545378814471084625349031414190701261990079663089988521069260039596919498580971819726181228166848831774491619881488832120627019306360695734328452729769933422566664179350392067880621996481426087534584343974979476120437280316107811456171283483552988752378380521704090414275061957987206037485517484251012510041120285829991351405094297478351626444420615755002482726090577549627973882832512671074527717544719792494042183635199512515392308987180646119960426480489242274301974594180105967606122191691666030163339448255732671373628621207040503379047837223899798364211560261406984488784098139988771574758767208638344778085137472760878981267456935428566742632364865521708421197994219809920605247701647944947172184016626237222342168002687215947514736539934940693319233276663165341616433236892654867844705410924149361918741915307419103419089903986423995146653901219502133766398466454635360181921234074588124831821768228587373580848452427283367190756914371083358035600003635720456350386142827014640355997760634503174020057801500896439904807104233063499010349546601423145980858465312855015937870990439202507231030392376498773481427746713561607312131673877839775839378440685998757953441991874695939096599586660726024752176850937133567133534645547159479489798328063853833092742481330373189937511644659297540134382081104699116432237243088676312685225604736103387518418095465820507029735560226564566902646611094145709800281771972194351235727447060503180751351025508745603769863353047471209969785470019666267938163207021968086323120910216983014241051041562487080973829336107084698630278745817061795418936818445507551159715717246545529137348172577905771957960180865484191494796895909941757876255994143970867495769493905886100485712445449708474957972041523683620746536136116288321274141262965028763157929963948075668274562942425879602603400882514439922134153904332308537092917781489303130829607545178000527775995144675050845577726586047018988041889483167499107671201327547773162552905393183336588301917042978510390338578045744104660886972821741295292167172038042394836380720988816254171939775968013339339694631877788280435298614492520671427710273623410047171701612819147562876396007720003363272802148806829626123646671767525090766857597390748017606419757595688393993471211371176523882166957016697052684058684975673947665480062772783323835325895641359695950780750167056159557957292389711239681087723478044754987681454132969300063436756853203585069282659916575245476410812122180018936375642954979621908781938775066801265508637407817038347616740530655067715803953540841491981575068552988699741561356816491380892144475987210582161899498295317662461498467222733079907372649341370276858622559993656670924402836369691863600692907947583026240342474798462047551306649884027989046520000405752406122520269745208487535681072142942009440748644301738508459772186092413512262989139369573750312027812004638856241365878485436910974228787684083268857002344698065185028927060336530498255090725319667315718423453466079764873738951138696972785259605181763014292382669836503996636971210338103269007508585219810128257476255143587857981654879114694104199129845003910055236242162089142599245483012176692857682348341917324182010773508431075604095215202901170473438660398634798352035658062411739291675808539573644466555020526849933052877372673884660303782218303191247644448667043436730216988138245280243850635079738491711167481299357191557301094462976516582285216885293444923677586557934336202415316501473513311205586645120612036808451709771046569006791214351883753086271094536274644936387439248173577262845698714070716836037169501418802822357569275281513099067020381612124393386751997151697425086417008475394262233900611793809716192698922589391445141381775574762233676040169809630878752187896462961976310658819444613847244305239301909381803243904719381508804620569603894705956384376885408764614242786920475970248236381637825090639954241347429563129734303524258574983672448991236532295654507109136968165578418652672883311983788486681011568076196018715227127826715478365512789155352461777951413979034860147704582555411268551248435927236965124435256775617710874737097470263366650067987080572100585952972013744149312224746234728808666560950876661243989442077395262958670463868993134478716376797343672181982078519620078732120058682290369495575248941227068676788464768015237562468628542940956966955386987441947910193028623523350485871357349528093061563705929787294841274630329905707037978222667032739786478908697604516335078746193827978432146686204980390602410696733809796472421107341269761948312311036720038930592879425680044366023319549217898808346417925939356075243916064188335818481354020139955214996381239894042398930669266002593040786269409697698408740147762358675065818497955231918950809560989645952903650417172108974328317170751757051888989923255140341034306354820006280750525041852780116144872851332819943642898636035199194120091201521390406570056120811605518550622386445774293117096351962985174115645766060104994113102857761265442430313761622354343328245797541631879609400925545832129685391543165335503057576107981291433834452390391394311059562972410131327985505066252440441185490261422263584451278078281667637162151125037221934038069216013657247701635951562850993869418727679010256280714049507041508046063834128401351577349490124554830278175333452497775880103298069442693609862542450303083479796941340419589675528715361488352258565771284735131725048406920341904036082035736287197172406684708508032772925281231712050761844747826614360452842562934464707411633362939553410299514549471726509726131585310658025774926477784238108493195173750060600892945297676485172948277781757796802944417607524619277417678506991413481525714406487672371612630484550303632383546123329885757207959898085589537012659392036982978825415772635282112017500650537504112963633454382028077784897769614109253024814838946634292985427198559325447340899536480926676075946696100171774193176279458702053731021275239466681168198420955728754892151046558421897191043209202081881505156330872986259553740430371969257422844716541133888326467951950770521517284299113235091276401990612725471291583123803297254103803839799188799927845893715163504375248520487588662314471165461200661636989310030912329597861328676471646839837487040274022673747822179938035670748521719637780515590785009891167779223495316355655305795439647205530055367743540252058374884397928474068903119685673735619237605504748697740386062863761981942584157729555716996522069280776876921380092530979273929175104158893098947295559480959647256842239602232062972425224196620809016799229822123715769296586271222195866644257038320405767546091646726557965831335892971935530537432832379603947157929219247556188892928632566355588372336296276336021262568564443241439914124402969829217009788276947209996932516614317455450363787165727502626527913033504744417682506169359972705076951935796298379535440498632599800627356366682626180562827178020197377609014780555219449626027162300204334651542269662524625571172612418169807026674181027554869536303463868700704663429835102750653023687248727953061769696116621977764154703767220798116068271123199535962097552551050754065313677033699594740344378140497684678396122789154085082629281745612990698340885372523990408626340433469118786748675782009363822300105589253514389814788008684229976242587017411577422245041332124523214217197334818272444500796865747443097652269459266057524883766717520619438862708788739921608784513492223697253644270592204025996154828205263797139621822639196783529241085961131748866270868524525279682519131620788925409564371988328521945003258537661205034185290019074626216358985656331825447309928548895324525840155645672109807283953584234836482258534245720457939692655628556961598004158985101964204295867688543656193224372952968910571650027502491388889503498570580175094662705359209762161021132634733023972831852237574980348870989128876008154051184440074177134055797661877582885963811739951402035954530111958976110817116438523585822261072621250185791773839638518764187325621371434057663425338612574603095440651425372193957813878905737074616538961198005058115556042983543362132589836739268942029213537784660058767483052325671692986267987874635293587223834496729605171138585564399476149780428056135939090609165275040219384540471337598250690971121404645267522713963743422049159136017212301450391807797268780779947156899464736626546426291201912716433148029481173362019816505003698311645727917670359547884923848402112298155342453242051248289907155712425477626489789491934028981014202074318015825684620780363441796466492643543782451649603448746145220636590220274572106424111933683335534255990577546871378631692541574459805573590182530937147779375413005254780340432075392263778558908914012548687062737198414211386834323382507956329009257899449050838270940396873027935910043563245872609829807098126378555866353527518716879764231220968167643414681484141732892763688458502199664791857703653496309156601031734187395447847840548337062099210765533179929973340455012711885258980644620930384658577042564644891766357134061098819336400675525544477027899070396229997285248067797988473630440753111715251735114638261283493446585432119626282402553897776473306552203153076518303042366638628939026746121015478634387561380357135599473218631793784591757548341315208078176105231307797515713134374197644060731780220211806508893916021019700510090717060866045016243640115240409608582355803314814246666863840249951742496607629842410895625357262512237075219280438481131864377871861835581566355333628771452456208576188056568843943472567120502982628613021738010797527494931755606621719284647967665659341676865722696034435525953231885560626229678705001118669947970773235969347659768001582049193097132370837843152806528876741790373444129455256584085731925221047801797999912943679513489467294481344492948200170101222287235396906521818934058884087900922848507660888245315869596360568384170108399429998944886845346188230018178764967620785878042819319194634015463163354509819342231928912097005176622892219975858316746202320508462054744688956841920758615839907231359767474855086565605721177000511856187971328506032046038088113598802722033982923226085288595903210020630796156026502275387262046019761264718366877989123142538897170258256917997010053675748996277663278757640930068409166850936411673230053371013571831515483817848234207808358850777032917298837932026445714189727010738200875796084203399630406216567036458108797733734339922354255033857222101703595537170732651559224331857982601134090319312608159706271725662399856598709259951436012111641195045459453747540145180859380655992953586648650271309637286773757024420848238089751121860864732646112995089009831364577228907854908690744046573752516644720885348839229610505471475262508621494155972150849806355423837673691764450660074528245303730056193063551049619456144726385287003029210524342886789234994608102781199252287739392751457156311646944331598714181849662352638519269253443639187599979360396282826202419517690815419755616730642817574687046489760715967650656230981483030225911884350906094687921304926225928895736577849152247219479609122607810053284621679967540728336019838541577897867725090167335106870701441069391440568055499090568246342422863077511290548784805540969082819910871667062615775033296506621889686462482393200678546745599844950157532577217115571754636238859642715245031082831922544229883447303939342789422677657918695661614946646465946510491280936576825556776069723378705362792132388306629180537744183829329185400865923177549516022387475644914284561891206682770367403052184866573609760311755003531272063509746278309730777875902866365632936338021869660492400687105366973765922079216386577411859107963841420012803836749329144384026956136746588049205970789392408649195557437695574579510166862907277695512751725825672747881020433244507513149838619742930993911552193205083988234159233386478317661139681676822734143923376947759900027425516015028247241455042043589853608521381252595772540454193895169804524242444032666587586750145814940204292872138911154712243572693471607723938489121688386854902930914881168359182784454554862028294473784324045654326305797790716198225549248509937216266908104012785647841122418572254227386000234527765861837325035935855624413539449370233832639492204915079202989518522811412501367694391335837789513650727792149433443852227835077813884750952383830439389167274003336436612125614171246390529930855502402418662980930918693908361560611794967355665024157993403252583380986979719387807087226920840655899854978371750703765302120958090962004161748773244613979203744009930687847898156388241338036040864134831190450887043883460692068563963869475733351764114248259559762083732929811714676858335069297698751330736678034861237344906699519264389793636956037371496029461491847885414692546935900177698450083455682721398254541802234441887927109514337963011983522097736496175055477994126609562218516125777567860757703638319948773485517894851896524779025479601635821298921732282747214206987545563138078431936866733522272856740350112672547701480364936564115662585082997079416887489862100131117762353830573322817251909253939277315819849473068189450664087730636386651105442980595226620889981452764498413725060622297099645802765388032753596830284781236723685999504079464685100546174914656011707340611425416662010906617997615041921092248649428761329855662041541049066021012207619599230641398676420606028405778180316340456990764121483924887234868443442257039887444031257801290496050898674713291045991210950696700584180451928661439843057090700695445340797802292564425540520345238020134736537604270478582736580728515598244085329815820745547765379893254942111056130532400369871792892524138372744275665448191121821066863754762430795630590757449937263560264844077941944986650579006927335006342971459241225138133760357980840105613144185512829904967777911674882821368034630832795611902701801782578579588851497097033380733188804487943152570048121663576568669009314740751759627378162360565006579851716441105582657650941181834392213170214998258121754757986525518157858026099109880985979381547515076136768012459429825808548412358204641226828564283882867183883725767640321150040287595253191940418845525781110926926069574540591955570691786776280327201920783519682577502185450499629243139235694062708888954411429485639540395963963895523402966053500788098703506067213499683913037584796656034274167949411604684927616378298418733586208822333323425890256792381291275853923343435334901786065730996285455684779688819091598458099130857505393877089759989693915616672105427951108737698190053751391435381075480773883320648296183972371964169235841199992955627590072691974359483252644010310717900356469498810948862847495139570646430896484581228362862218957931013393293110972409648375846345069651564373110807766670845739522510352193120936642328951491853813277672643776036757062354508742461072818274332943265586821871273031723924875073945842863660756760676238047034022642324467742537177945780244127987341596150596675142554705822468145271893951027296403787925794047921648899008357771544712588630173729369143338024369890367265488759163796061652286020439563321272101001949878908805967343010256830265548722503927088045807040497679640669457765892334780995955297462274388401452097914046903115267866042408916794227471311178944581804404190618092945378905484248818203925325107707010906052302432228434273975178422739665873879557237889863660705359489566570772417497161296718841145772595946647950362692734520932458830902213407230070889592634527338075598370131121596729282506153473171080774154391253092040148696965353289830152132687552419512376067363481884914921815508878631468633460881999355239331782281511097626418734261286501044968428369281467284445454502812379726925395367757070018302382212911456772829621813024497568787584359206745215790130661591506506603276364993860278582579728216351280010666329361055922490720247273349541450928244060021638229729605244389824463333891403888704485228760835969357184208204359226371034479694914891238897337757625776719654937585339312995207535716540701370493594926651684798734206391379434692229998904654848959787886689011654554128177542278715854507584938854564455323020304338023443915144458449105838283301763368206889970845722285642572080386216277902005642048226448475448361910326745921266990894949797528362721072150565784873156860471804639158959800857444215883044334479761879323618604675634871002012753112411731672041563048350921588496749622370011277916973426053836941128437455234882936294174116994764624647290117489494445958227109149209927511006989132413309866410364661997684965400085961982653695182905929341605747524414940516062686741095998325953713152615171206777204870701462272455443476376967205742620047426617467874401623201564771585436732362490844531256254087881343940250278376914934965531581993819925789075188872334024312130923182107921708076298122259577435053545562653912207492337550249347724746491044726869105538818085836070134421042763542522270164882464657293401899504220431848003191959307850979801459053595327703605871931427799930859197931528309123239972601112238378260713832691531126678435587683122821281284841709886065204930012263062572806323174684345021849158963063903567053393563284112585408684127324902168378235595873005555766145417473478165340417041083491179088826938152329950794845702346370057561736343366474976407606538889395067793069071010495568586061540426150395939676738879600977225505775720148393761244818344462546597867020812132803446800938968356236605972444509138573273058592122522752245797652695604308954314901769829734092137263834145170946793829065619740744752481530199710818919080780713335983104797567055039450857689309728402794531387665384426945381926346835313659693350609838463654024341378736583914709587616471415647197548646137395252397082731042323740516248629213920008038415750662852957525914789211130771373527407554981935357265454344335297628634501996552573226373835285575388832541204885079052276268897538688687185072122854365240323735551017636100181171282302468243981059109238972979595093297612289114015125914032062602784948525305855294544185909224494911656970055827118060251451713769716605952882026707810001763792489446307785673753507435710765018434179203980355729171029265136985028494074522910957071889867115714255955032050586503641393934836458376456904644762445638854264051825043680294331529070640572598464215502184113992115544860464935263361941490895830295252484704323480210317922885331776716381284321812981855077542396175561735473852665203717480203339542033438335342867346517652658749350286497796716738682211070765216972185190872075989433995838622916641271398038667627779744439398599577550315216339736773105730016745416679722085391954050016186102155085171678063753723055360381571604687846550124971709774223902684800156819562812598776236837297849278829023978830397452174954370645318483900604306533773085103857306205449522446497746247441135754052592281081172876552082164799058151269208366539731372659648931422338596709841617887338393448256883762167681112245860421490131834214326325161032599106054173796752663026900118380733804195208504148746703802141913171583011898179870529744341433335563032158632123712208345551324103073257229277163025326478166965151982141262835026012232565218463510298404957359165418043222237031150114859046045519258980834451763787432559257842417343917195057931326182421106382926461677172268787134048841047833887324414339358560743533198477063926803064820713661758850422248492673658315416717016702029129121521299310867331974736038950356277213985848554416726721770205065120568486761262893155140589247936935565233061933881061981009276703299572245244951676462185373957005654190218353155750129087206714851052284386836312856943075882497964661547986352001995243552218266013390613101335213957684840467043662221728995280702865451414801903242203610100928763540606232252995735132173973796790793061250291618608676565638953991655174928282579976486362103822702053106604569945595989055492632399655559752966190890002713348539554666778305010760330364629278871939898777500859653004270028241243328431333806747215634057268251861601757821330933647817485098851147221130995622040020728266040496957207772428638446907572681431942384097940960491077728156076025501326026397218611470511162946264322255365013360783335515927486447360852786788627349860016750745005659192023200956319150302810431633262375989849634431846176238165382554037592101149972380535538912266107620565097898816792921522304609319226043000303274675120418396062445376168138270183234683927644820395274943480060311656416556060141660428113568136371137029225392000838132019689367669381711944649463045216768209828185100072478733283131279374830275747405781723661302089485851143211530191272188580360759667005779453998919505177209990563506937482003167142599662890281484945006830967397352488097002319563729779750166064195812985990775471589355760357324325481207166852121814616800011033143117347608862801914728143502379769542957771505018702215178717765093603798136359691383325733271027773414026443085749801246562683173897547375204819398635390882717449509994275258450886660614280259949118324129332606414248995232576380430236786231692909487896898756343063882881571188275277981517141554979189655599717841207855417129662029973486809949871579611867059233119155000810705172661473783728109368233927712170205243806045840030992162180086027925028730007741553161223371463664032057766431662780470092864389109812965616188702488968031644618583426865726389913230784131538599655222681687306484917673909974451026878113748554107783257478155151208254994163452216314375188799030703779751581760810919394891449323044659108729497892690318139419876162633461967077363494175674721642663694440751162186569156643945255180012881711187920484057258996961602766473560711291235253443784087711022197463623557165516579171419888101485694371838075086331403873568384950152118066718347447075783593093835506737176450942235864663666302682152966599090317410709910245914914262387347948221366740546612161401510326585589249359017179835439013726296440240105651740900665315166204284961751952921918170527278943907454035793097771855246968371544264703196216099449071138655809884230747687398360032981168644059463788926620742978918497124291454452899653053138201142154238389119394027591822970205213224361047148609972488460991108590998023876063567209075589774715692757450373390777573385216377764740509972740887932254073834123845651550228913139393159015456160022619144381641315242279888123981478864188088198048227560034556240083175506123019012764733115936733378531823040869939934478309620316508936875151716166042252240575362287921289552677453675304081097832145644722004765513952908665471215783098154907120803331143828682411068077028012626326522994974616393147026546899584165837175769019422936611047694572906528071099361369575007869695704210857655654528731046972503109882241183832205453434025197924708865570957048874212813305893851279249299631759412993001991062734871882192573664947631283613790724691700712059741352405489594628278156449061055970089382620684180501599324100788325135935487977353206539250924857129108153630710890528095677667239088301608190973813342678868176543508921140554231880233373746775869230794226984738125412056227778139500647094002001271450218782886252089083898924233863973810779364154379541202913108370743425928573440411950178196158379396998118226043308094247161587698244678129217363712370935665651308797222872651140031712253053536705762551010959778511704235806358347403802712880833485964094396373295992542376531016181240879685143992872245823153038506180876873592360765245501684637451763675727970115616964128812056462135785557953649525773436368161982337569989744142104341135410996879123818144664619721176958137911533440608003412436214458655554020251703488382187183354373869029198301334307901632819818670588770778808128805234015188806409396279149519647039018753734370530262835260518153086158030847192530812018786870242718117231523690256433564865387509256410279543530176944293530511750611689614954064722060549968580583532036023238076309299451427395805677981049251731043790422988986322830211154900944333474363698087944410617241860133025682345898932481313034957118284004912447026070249029815328559356731490588230899929015934992176058777381076808743100252628508681898890973174069920070096894011157719763325313436015772036905243638966008679725822531745896271741328644753512488333954540825386558621127082355312841393883348471009354852295008768070392160973744604475721999776287105262732338230769078341974092619218044430361603249663030701157556576661152021223856521997432162972293576198378417058192613006615434351692908453916994011991145447447311288587203066083348281132526001893324779571329272270807710588895893158916910525196751116004491399393754677399088379716251031348379175884963458339724989715623195331620498002694747767357056373160691042763710913362222316994755838344672410193613753909717329471041229930401263493771556564609634361633360618134831579711942505584185197810278506852040092040628806431387108653696701593701017341676693052250714956862471311622112619973998820007057691150744530176422428719836910173158825160735240129470891023067170728387974446973613653988282374372370809910918164593200992591417167482254666500865636726173726230892962281352094384501675863403466202968895372071041403003962060741047014955232376522924699783691137714266021204845716776509076192681379811681970784162545922792514553636767557465955284964826309003967255642222710222570908257101030171582784737998910331274160149613344298402240612749573571027263465477859997889495905460911068101567024666727870436858564388242746399672786479938193403865367485558668904492926417817168556062049015366348466962734514350081435239388487645830435203234097302538243256708468302603715270932425936398408858826940421871208697100178617408426417662593925154991984446236299278292765640856151725049436730917697529478723855309690709626476585431624835975560610039383382425274400155327872459519427376661045183060153824335134629123072389258701163457210007515283099333573339010637698461069917579259629320796253539946504982863297966717316550286182248150639658629670308891406635509645583941621133074309222472545171106315250662166040342338611212290360132729375913305666394308502210154229973508392841557740207597506748970288486037122863178653551576842092547097029900175643684586843914732047476689314193122803726491981320351438347478044332759929558498421373744451232343627065374705125824058211354304336046461650078032112493547149410850003436428369248116076138342059886642354250208080560130776111722718410288940887284357157683693861224034652093965675202143711220936781160254088653949363383783747879653971179970744376777005929912016288179811971174235754708073943804385072894371111594221712247947606704372164662730091590805789663758211944453510631895334269201870966670976736492063116162556400958513288672433963473095238997295924194045000072601124697876905830264308601459790060609973543611506617630548215478945911983041661897383862918950828432651673642794941894147806792482694093960787292105540033509573773151407729304926616337489165014101215598029411774898548975683443065661122080359199942426400034634387072634121781087883345553905359973576980396322110876281663023162810786761904415731005927848810552162594831718630058793962002949287960683477364797901762582502340400736357629696672022321153281282165997775880687881007777395827148964470746748067547161000773227711675768041992896500372679823624886989093657652465914167531438971591879689720260573431877595610777915030704131577051043539453386738144973774144047028966822846469961636391068974631763489442307475940551155814273223608706819101443516667634827567068094877778144053812627884811771423113025499825548617257544853590583320266608566177705553873447617426500249249060780263015087181979185612194399146723643291364944301889209211017283805944887296401700501673748818976447350770265165853985277134717974522163804290646139990548305427197136763804306997834080602593038861716721944264186208710153524001141712962533498536119515055208521717756190839042351184024941187831613562293913398311024014156443196269636134647532199486047698701655822850703012255833107977147197586432607924279685849514788732726960295361753693753746841418019058713054830165439258812025715327476570108211159406892063657816070208578859196111709969721938956600450149027558725608825391243055248941052424535292274125812854314530177060877476246160401472175399443225720773497577697054966085276200068374399681324111529744052098744429195355651688338288427545684886180707171341008750815659975272216959269262077839159089049584745854239935951212153927076237069466885419167858667040097918189869791414880802818992451327409279455660764217939826164858174475726787748362355205432777265633435101103372921304051620227364456953803605961325271186700080038286823849267100737904560882879668023815854005194564701475967976497321357630565908313377495751602152044756232531925141758315921955662440384517400750906096031478172274887816781061306786080685954223556107638386424694781154181328258406772138347877424759891649861108321361167311231405321624754074795528216879925075477158052419393888972224108074941232562242080448263475821568319870482782557080889823697859370227496183335767558620589914578709104166542048158150796766418103683708170212676539056715522371017003649662665672192831744943422823662628668379242387850972010796585087424553006525488473448765641721094419583384014216554264269132266660801445496275468707652219652011359422164043063621419927177227294392933908211888456386661777937987474341369113519610459679995785261397245600876448867969877346239725790808669992509305541729110328542496692270190448735815848854749032198801801950798220792989299674774572596856585469208616708423849295978832405191826842473294030947748580152296617615160893342089489046759961322223316730419627205582483561501889851430829346110346089035124465447558201498621454436259804468771380693211944192130555626147114230065137091001091991222481497178947585818070018087246976792191764124333950747661146132918520834811499391043192634066806960622525989358946627331044588347894118073357027756161968747273727385019112478291292294090626746195250967918595280948743610398358129343378396034967455767048407693767991025179573928038798162311068830922520692229724805553536961361395498061739169168938873907898574944993034376532819347571473037514248909014682692442845329436154958036759496025339870749217967012728749455480385252555551260436575447437242464784184573005140630379136979050574796529480895759919512557496428856850048155788293320139965817372018219587070569069582644633661494206799244093795558249541596441473052349943535475469965312913576223068090397818125313991619461233394218667532095855199172942672267404102507308519026704541975021352701841566656731673348842707368606028799985623953205682598186723980803246080742735604186946680723313175678865399037348206392041077079436768189432070320151696782484207348733982954159427857159901879395247325019362743440883603642450954697469489638781073466090023317168123584919658709733883549184692000370297312921643350264560868236086077727504461024951883750976057179786055838807686563005628500588260920099195156780558401987011736005067998052352927214465576316813926427718583888037024136835080408141977085028789131281473447199163819654016086557887413997984400445453944050929627626454028879593540565020418902221292612927110187396039569261210008416615978206975974169896592951751941369690003926004060801225172779754825333650804372241338574189448670784220651040952156153294941944694054224596161104295729609087642869600003178760654294670177714509012239975598255204574391170350537790851835750911161967797939225854399855773711071534731216545767688321610906053432127477624044367902854865296392889336155560728428251577151019329545894799687456177976877747525184542179614689292292780771192909020849128255480186184703827365626858805022109482967646360045606478887551250556201402507127870524869512143309822857450154251938405588443430979630365564700012066321991367798859790105558967751742230926785068099737765779438069887341426926548965891936485209485145456011833923740490086608330155655124420597383891099804481291858003819053959723161024084259726209911546865810404331487771155683446526653269304023174078745043724888030494230953157438282215847099368326936615274515623666456302124803790344018637015692456868700308981967362598316505752237689209747772300197821253566344924639920723958849429290601182764310995625573318625430358797600151297911697489929254021663417810940271563957783403336832586093099081057215407658302074517312343230834339936922178132818173153746135867084362300933437280050919135394438557472741613236829047228076413061384655455270833733008342113652148442802901796530220281286094921568345968348923530083618343176033805541661646977290248311504579318631222127863395268217115474444073381044145573328763212537045545334101687322633286198065823861650455019721241611481763370695494295985151058051611616915885583045841949456321557528879681797944259250136501545893733367597619275493164331862059513738606292260148499946433688879561721289417163082640689307110390760713425741565577025448167466282527258956946167163849551047022247285646752914685159900251266843084567292909797404643276683175282871370457536463750895852484476785799578590481840765631082223505295046174267459323188359264042590169769870884263611956670000168500376283328190305368830319342519714583746798305798912572743822126422187775281032867792254386899693945650334627131990209382768244624037627453066258127229705286201823284368757589633611432252828610230872386820749624550213249521650464217128895078736522986591446007743359391434885801067002005191239144196041435769146796611450207466706812452243360982501709042688815265316724703649183017251052091858561966777705425322802261013658908794970196788221048799549032056272960255898010778157203225891332477835424112840927293275215854046174921876496064386012668841601631272737477154352010252198712538347120860714818448699668187016408667296278074206921724803161994689329405270711908046066493880698206326544287013228853867438948573938669219413898275734347938666173906099284892327421090825167836866154557963704573741710864032601166059620188030378253009102652898676347520304206504213981492025075254003632486891102772347977484323359320579625566401688575758145388380306322087878788065479503172034911864579071902842131535405148396839930916316515395303546665489219240255237882291983039739202940951862068493139156177038116882797896318930377230141638685436416024752739553180465169155124067039828304261133888274164730356746726969862711679872453533925303316318409489097629565214070921370758039641799592022615519915952068059344916540317447618925409216180828048425340560933107193578832761456684958143895063997941353569219146684102740196861157240975317545771066484018534512450701812296797853239565950852531708986279314474403557011384243229280718667327244209921324518165439207435591980059822625198828073027694234286984221282510234352730314348247979575230693513979937250985885903889293809146773223199801482584548588662908358472082449155313005127760640026095500211896111854466530727781543532148045831871111192211106062955817822959800074381538191181050159411754386981137953826564300518638281595531165469110830963448571798076101305267984879295441982100035103235509125392241911501999670700150685005457191854668791635961735935077609776365528362119234497505527364113519634008504628006529679302905311331109437805243406046893903849321416461286777387707230176983792337543748529355498848634186277207573166625007630924466100052483599278124891752063878487298275316274381740244487679989078545977657831186999854560349942511802215006149248273702501106405235538179333915633245118199600112528412050103516402469148731582608431107543882611698174927239063313917841033443018034434173657930688646465658502426609228537339293008861942172120172468389773870658895174616307998072284549053038350534395735417004643610453192628337701607649396129435653318817086112445711858457870364962516931778938502576498419876939046411054774686673628914795419031475078322806171268351491790077041701880448849263630866056930240747196375214708059482958743115020512950575708356710124665383282556847166711458577365310215241979810022589929644274711014081746983792936104679310825392323552757587685993306260811579802598926326450189446792923160818904476426693549251246494069726804644784053801399449714107775732627387500509180902896797347195148949116899556306213687057698860205318238470844625135741806834880602437833069820651310008865803190024051895993957741816546982532443586467820574977348770176799579069528110720548762111455150104628087140958165920542522653893553118976020556248237779531326483420896764783526474570659818220876452745858891539412310553383000887095847379512625992400966188115805439579809150325406259852821807533938197060948930805151514396944669759577127891806215485486356846386221976351446605708798571042859634525869599008313093299509783727958139859256657292216562800741498850631772668911875717897540775146708426764232166223346020808155563290536509867917661784009307283711651377383836168281072445744173941362761924744612910135499090581972465095578500290151288216529214335352031627991356476472737281931195894232655964289734889851796960758162759452535485208867408329893745036497099560186069637426961091691882815986714986175406017612777491267130083555656615751805536386079954353767737639176374563709837499975554347856871989044699989721588025643999150451707895735892831055547251270725216762215495717949224569948267050819092603566507929855780973696455407184539547282135704616443259889355324803450206838353325218969119144279567407242284980468196129203727177590701895096711335914216956759641814073610638839578031508969697277102910928610555455732405900209648293748917844363954034776732617017573511388399842070029520380046476905951674012907728748093879664104428541081283258391022704903245017918581495703478569199591600732235282967641122068870299562997743803748637787471112885632875264563700931708170381943627150026554496615664641474736051196964689260072725262667108359097713676631499991267351521021112071159652218159499470610223421749370522850964947619735933379367127430176903768472157217418857784003537051707615241715820357390001248419467910788473335557429047359415349524111200958623978374638631402456094916677009957058538708035942694633819249535727488827330648100765664481812847078272851122334873060232730453614984927337492761162650929077688860614016635833025148723351613856263435837949291430010605208720292757552826148274034930917132632824810460495821349880617502313459975794520805846081158388704901502808377449185632086767520981288896334820022613935313120646912379670431780268653504836717029071746004681232252887501400785610182401086014401965131244933285938101138465374727091631929569652779356507814198786351309163632559196222230116199641028788014876786901096814995243086671019177988920212268737021572265364960611112091056150375343543703704447416185362069878497476113237552269667935661073702493560360155676806255375857046554904250062354341155651135871980460959715783517520137951885192186900852433915313666271621899601499024650152730167918578554688113027261684461329464202502890155537477667507597538186649219493385457660392396895397456705713037194747983023873331643862929050854043367570239225222645467129917799999996519344510069368281418194498468391039485702429134985405090525165486732634245252093176910209256283433883422794579764237212238401459664756923443321776209184102575171188356270167211500313360256716373184298955576770298297188856175362354927479986657890421106737408515517579702447191252701987667568486453268744665902256671518732047414177619818951856022403058157926250602286431889731646010974520079073747918399960705508206870507548533044871581840261245142695228619431332131854502899526334425100720149652317461101758526817622764569563411560009479953913276174683612070124318267152059144674057698156865452418502799585832097625456032613867652299157158789273039498072578401801110155937602234733793277449742956847763726918115565434501781519991074321957810293431619025343048014462994765761707074485150196314022686192607098408956925617575388394824427336409766873293110078551111489899384705922198561781942841222462647429329709907020679085489241404833981456270135446294711154450644181918815842511462585499971215184729072927135868164643379263795381710346185215897789038737449124033928261310481172705339523259991557723779484746328762936181354878652299678894581225499217355203606843529888204697146549900618594230068521269512415411412099687482707741463755413992436189225044506923007046582801967845789642657388126413713356499583789846701177616639785657268579077963590782985400043993683363532278055084554278104233432222936573597810507069272233178126432638587835413618642397980574918802702947516687798420297237509833021566135330734825433360110047125392442693459411557043831186280441324941822320587151430521482562903697050443352933177760453165885761631815103764227453133651617984821781256054740726986329271700588215418364962768858008676333271466003120302917148956223872574357571761939793946338396877787575671126773972029627018308435706593433776497657250339082385701049109095017064065124423689789708293764941165732162599305491487177378313766833778077496448711568626688925314971253767446453482889428842674761772805170905893758841694682195913426497872386726525795794889624072431896381387582362604343663013880514033643063980954856446508230332882170196263700851749051657414637655866722068255472897153543017131361297109661845552820570601319706200547681171124362588509936413392337972954307419594236531547321059025177534375349791714462472769613084391597269471803629037876931329692557816328993631879209972361189368173657136639546172458851707064958701888058489924672789635964747498333949935366435399813257797141054999768720566116188628859548530513578000574774016576021912024476002853934954160193385692142154185555460870297003771174451544802362416005632599322375033264966859413619557021890284194174921902477900412273610495416179537002784708465325466780379904659025468947111355682901954960178655182910529235687506152011826469411981004993237618324887683014824916116562761499055185650286139580797510512203107719605750823152260346742922295406148297698362407504252996433151580695936117775062103740131960312433139622142976424879362468197126285293669137922495240167315611610941668934077784999715409247936617201593189227103760575967255446656345652703675331936295581695932666849492219396229081659681615517906056462911901094233581913251431131372192326653987101801880202074235840139798315116381940956560001661970981615587639777760772159922867341856709933284164047383055851045758601804517400033300673322484163083756274112297938917851502507801599387106040774652998467908231697000366502563371310271713078300377155717590570196069189932916008664119049849714005198063753606255384078941049062686374062309287274805675489723744764044215381319994402694079688580835337132562503234939490692730940436348463022085682887150540791512156936124912099212339421317331451932817749931674752199738201737569405774162774715267958386042166425854868778299896838060105605832768855726297343880675319278433855005526546291995187637506948169736942006380831234657152402516084428511354859756992742416325524135982654417740339846006814774522114655914197257846669419116420791525994588519322191340462932663029810620696600699811779677158730012068935831102524611012329069017117125713835456004238340287169781263930107523558811150547242620367490062070613709147713461331196381877929726956221225281027894239737543665031646537076197411504461912165597264651760126748504444661371245803809986877623817149711324522803878529902026196116562895839083391637191831310130941837590065485010230684497336870056629532036295390181506506470791428764836458727613642122188069565381759202884419499904138251564793978649459462058057992660519243950040367856138627190735331458110154072254078109395638716424462740676930397609697707120904400207745300892096500391032597779826078242931208492367979804383280071492737099224569118133110944627480880788819595488451312396585988291961857789194272030616196647229662907184974260496955551780594178935028015177563842416740658521806838088498508694689291811312276457900928088030442750631510166330296368552479382543573487543955161148905505813398451241450257278095967546100820959970963629146558878011513109528029870769624388650847742214370184880867652161730960851818146042561445171633324415438329180711680949605798637323287889215593077490602614603628109503971134759523773523189260955417683508999295862696164529157998130518618978122374117200975743294738055923266655578788802850700478097801548710065507762245963972100656760333953210536666605456043708594046590250175253118699502252845227427586057922940304356720673538796006391487987978189943306260565536349619398621015306272908215501964844094745274528912905220543944286322953539604151388821296374982500260702152781369686062255745541797904384887618208121280357868223291200319234551246603290452412774784566306121716106184793469513854026988755205746803083773218439994220913900520399000472848234021076852532745562871105661295311147702906105818652884167414555386245713772422159186324825053524236101788423202250577542478371251166529254539655134769533250190775802042325503278915695873478486786101814984374740790401842241880083671010588057090521866742529974136363321860227031146146703496131103209636591554334438568432142881856426583724318399369221278136855322914016639356789929481957476911623524707944449386494279426460630985363940282036241366793673724614855906505560073068847739691379147272485434506079755592223059731054347901544338289049873116282803431227175756097270292025490994459442378383124536664317262510018316472022604789235234144352066541004708633645355098175803492498251155505934286740676892139314825654896680399142711805712707812665785998989719323545336499762297748659086826064459611333323339953994922502781716001617737333375245030731296992833622539427284615103964082112012090986682235406102558547507815871658062415766201419299558810622483041034393082946245849299261146050301699934640894939852157235405841858679867494199430859204829479685372285336278064280862507376873130485833699988628028279877384825554640894424355136865336192340546608723109523056857099530859181026108470524123401715097748332027512476024626628457893858980762881630756576402343857120101929247989182877544224524885446087505616580777003772077254094727090019881949047761349186595586194829163979028856776149741143019351131713290178317771393814077454614801960109166028651255242484239002250759312180494919252461034581759067882493748908942430272536295857236051021982622197104623709188980222745218498690516413555842840867354318739344826206438509197609559326102425330197080461218682945899420979113637902208421489424141966131255262977250860073147363713101879615206245895885803845337934826334382483705280663348739637571045339523206761336814869992227184779380150325610894076385721634663633197551804597691761837028317874727028539307155975268880051138256522903056367345344419187323057912237232316658591553368116144662943145490416097238649103436851287429338048414332410565003526400448506193796734714849202206734916003111355395807063848655091999270612632341097079861707757389538710360265863986719878833900119201407638080755904336379037391035088492056497605359387414371825903300111050584134842753274745439265979084111080879072703378932574640180990886383962956011401490803757689816632255439008187278747166127694350546667379414948998246634017297355124746680388143937028161742897914243528332863996949337805684185899439158259403381727635424056122565564026337096034326173029701478781315879134714951515631818673526845925491636551944245895636711696993231431803205782325565764491958573561387513465581933455122548956689369978993279174010909594739083163032061368038526063581302238388883821615201222376093902220743428506515629406274187803552560275286695238074340510817675847771980421034750399734847947340717745686417386151649320756275184164128029774023241316864727435069683927189281140426615142190563714038927831526651699792319193129543218958162347774499536628334514770004103962615314461496878689629058007790651232540361993724782474587885011605686758804394476093597649999083876439764134066467147813199978338776149682337039801619233743348534210118344765950984162438811274286466211725118374908271493209550752244114277390281632746626915791328312254407970478672169699978246811941903591018962514719502597969442296473932570052813915254595585662300151253045138709954406603094858489442411886814140831089312294196676552337936096612749653872627471101077446192142686439502260797438975561670055985757136720754109626148282607619573736274967105143597254587988134264482274599650405195597860225916036855533301091033794751189680731811741106568702900461650916208812057087511287938402882396236885375771346888995009985961800497654237311430997471917937980338134938169319893552859918622837940475827510075465655564538136404008806069910366203350030319229357105664426098658240227143948656623551413763470971663871198684828286649184096225254105816686347809561721887742824246596532177639207576742826364871200162426219377150850655232158305586941718473921975930947498002552725606837332264985523640407935055464559639475342222796310127599343373610539425445716481499633673000388233665369329031055327297571301882549491853545420331202323493197724332966611378600159244195925322309927082715192709327329695990522601311780506921225471266933818044114305245737096077086524997059306379631856235932374506474397954430083481319049920558244403586715715993452546200655342554835069044907049891303344750764148520796816769648505015346086301902026592803108563533952236974410168928395643004420025275525927276405047414439035748915700414612325560645510329666195108389010926083848356015052570544412722191911850146553255449429362989744705557054780798513870402614523602028470931422641704681873048453877180127511109594884580187118619730573858387022751695107967020743556967193254620437076876766216495508807243952418196676467982593488980336369809731266356007131340131385430333359965220483545537496685836542696784487770852222296111315559881822879076721269710810849608511734995178859634121010966928199014302218278555414446707345092888446122226532076156107430668933416257156325528164946788987224919286455815755551976270199262489483826466021615782857977572089244930194950397210970848940989081702567220273976694508740151998552562934254465574318186036436914690450999734632724788636550506584685725932149659071530487609559299320637614144871968322193387982580418670577365536772568250391503593502449300815140515069864705032844955330558318970871898954139726525911918405568358802794532429479504618851719315818577574817735032674345157241831765450690318844994827252916566824267460854445731353502370791392677024380764780916442942925613958529266467257612079217795162886718623472293934111328544145250820507036939843545243102051806034212199648629682981092521638405834962095225570263296034692713071558662425932867998847268533692178609408190282295485950473756698178812097756830327418676454709085243900922469455934345819753868732150807373208261525870454469531528978582848549349737985188211844196145915438939151101878423091902233164058520382891022577893411283871140060756807430416778265618840071717210097351036992824156570568637472717725278046835832726230547842286362615665079919730055802168941195053775642786296935514844066047797922438314500549846376001715215709213208527692971785214067115180428852023280535875225737216028350198680746584799855774778887652757420939093905897523934331776401977112177218385919975981655458154159707147507179809794234376803371116041886120467795147208933154429629047241137716959392395952888638814569053800103403666616918460952148474246755806621952022012620646103910220644528964458990038937605656786104598836735925294308752572994417282664640353216533898742343275340167559881413909752819536609331279424481608203457426843377927329334191967725684945905599533935147371211905983858456412367056469532646301907930442854692858224681623298303469471119729307097275601248760693613700472070565693241163899912221779028131942085195743978153513684124512074709630075873057228377687949559806645210363646608566997502997849573757990704664672872041946416493484579999598821342485651649224992198952799845077116002953788020849012134534717753662217425574857684605406903897899107432357426630709516070724184769026416995461728514260079903495745655738888659995313908047634609569383938247990949813934877105853782126613746004058895254559994076108320631661031964016952759951646550104915815629674615551109989394599057192588111702849839543041963176286436698569670914534535987024802512914014480743556792325492014618996702006448913826977017142860527968759888525545189439217572854439980168549627600634320499981698203838350067086785518750233357349933054768215810174532345925455264715050723851441338700226486468867052577660375055284534721360854738461767102437000482551981607783703021187721850544741299378985445545403556964955000738064716781714469697003541147717212588475723728861990277599991427556018191482689574677228356723751485808931585507976713894848436912933778708398196886017602323918732643408389452420542346789459493608918880629350913523733072944940665498237738565617759672411738676582687555172030063974256053680853197693765351855340530266228510962806465239538193762217109538240585412962478239588358796517960338108009348874281691383953807502601831808192706852171992921691596391863290001321237312302529244622430835659583146844286366260441026061409552956479257506050222348373442479847867457160074676629937430152876074806056516376087614448094077657898129157719630191627481392448957443134320463475892541951036914331540653008199857484210866399639407343645495487886624748717365707743375304174589227385877420130676367254043199979018192653061632448037300354565211048995096759169315663461179493156662814064078792419360097805940954178859354589937989558417033668354818324044327775167619670474194483556768210114716058902724840362629786643951657084653269708390787380687413019988525263143272609649230239615018102424864004934015758250911062436940690700849720144974221794742631504693851687361895964687956339362821758643681449700202366842944143372951818148484033586044325383911903982593567002630975556549734098158155015809271173340485078365272343804890835998466465983700005572452433027863976707097187232397081359402285224187737459410923910944619300408412431310101508356808142732222663024264025690083632669836754136514620254257297868905444958790281680120390685818272311918405665952624734059721946746485123961833636516814666345340783291440383913174459763526932771314445273829704894733192983108873742092285766030506244355071200187634594498560440727358769032741437545549714468324486145553381362592058574867422892201097349331535797751597993847680004081294956907083343577211502921801385444385533250124500914823203743691250801205479214233547868374051546613645657783586183800186099383317170090171266708942320844009563344347109600205304020820317050511975005696839524875643133995710560536910506802350740812195001049536330483262987962588150300295070646476148940711592325007812036063772290194943647090567270105828420770544753041774625549710686845568019586440720314984849283277541833699021887760422557143270160707971228257862584636413971179196037777334045509444075046915241109787296025922093829214455549689125616862563652410481009652506621632942504961943706768613699569280823855589238490891680135178947254664169300530601804293708659550471284582698470695367435923252005253138856087299569108844960777704406978580259054756998564947973812437991056394645558980311801805542031790937251631727107968739187901734091360113852492389628261119659597043427735936995007900935451513208903510029407521408800091420781704101373198423574713523086894512124346065379808209344938893468231492657306785782469372215256339756691301043644204120883337242389120459503622708254436573186829503313647891539266067552390753720829254648404473476136769365153196006317047131117026249735455554443428511125039660502679907247022077419306400926908784429368723654870925471708887854558330669306373481149479628048311572473296553326974892045091101473158151388792273050234034201221171501014601413680291357173433011657129908624457621901517710456592568008575190884456113248234297429466027675630323470369154521899951181592198699934745043662104844835681714447088557369149611759782441080341858695468372707168784042419067815995218889169226917006809869478962726415909534382390782899594845323646205933699170754388773354869800406523084777826315411940181403526479136612600366896478050961289486575911658639530077784507643684751204247788283145230623441850607722418799145512764694539029917395039078633231275511815396680825993748359039175483832282458945409755447604464286038627142555538983360808375575771676086754475993245501173614797474703561474768434617534103977173201669551213166846549702178587384150052275687869114684961532455054411180296552617149205970483531700609060356126049920373701653880374847194979472329371867504071791661654683264993124338783327130513198793747315283246563809895242961575374881429716579574649830181201343021025644339273492529754688473540145505623858770378449136193022703726909938408907102962083333045275079538117218812067425066965123327896752485833106588527624902656142125785145599295050947874120673539056597362533306263660717123010180202388046837491145372230050750315696505515901946607656366466369615344575648417162964451757615318757219995704228084136083351983477569690589550258445419658627432133072361158999574227649117566988493902203485581244202599647034808714383079695577151697482964368120020767195267819386872083756109654753942910730826348604629053738783745931133001450415440746250385276504939642813754658328856861719490842444474601224131168303723759780970390147113943462867026443270945277385639359053562211149564846826292370332424062446800100496350352682484062017030513011314679365838425839014905107805598053191444460665003498176273494851439123576870307059028928562377897771902507499735576247587576557049130913258615149479182022083201532173342309844914157160005873890483613148235473293498596851231966782333062606308057387097907581406975315708840028586829682710590897340858267841425251560412241129852363820314593869269132136497844604506125902920983336687148746244475021042041009445744768111620758286719105372071796754738936540929294137722629460094290473320464649546494722268039622359117308788049005475511506251215571281630848156019309991425611732881257951635675594614279242884545520532775155717843794059721481316015859101460693294363161116292305114221141499572235176495314187798185511807049289712956160044055225154382239052311051998849609022713788742476901218426676874477722642381178736460727465871951659502308004707233974362349627062889305852728092811968592848160020165636142991637786157766864639177254044372319168012687682819709396366455683386939395925826366907315569513521185383540693559602465878548680950388458300791124023168312075503510227675107265196302115979376440786732550439500085445640372460902551971359524725113364736988497313692375595862592915783580004315548977668692871532369785764128029071536565106591926575233294571217119546381433050618535474397854601767676647593363324057925875145683283739342742974045887437557093098510867425251248310541399955417838130752356438516862604755025019386880046311401394572564697799046036783076930888359561956647232450943352105906451104704565558720478294766195065675360996845273658874364555505692354643261356407368474672348345078909594294763511656370868423502079446481117797892414717701940704310553705971325008176878633775614233898719391199582096814318935033899946451912263071280522212884731665603685394493036401712995384865134819930226141026031322501489627895896825688146256883072836202026954525395540925886893007132661651064391728391251279198901331757527071277983008166136628978361499568371250081665145252721001064818246767191115966110431727473640996839763700022517927442089166160887519606793091834930640897868212771091525164670590357017904731769906193874901153308602758324169441590537405948161892118128165550477878620681577601182515126360012623849725474065213969710468688367351044871787843741776728074394018525502720713629524551984633032055612933191739990209159680666787632703769222375053070086097570059770149416890786427049472994313048341316996921229566288805043993237781364611366852100430419962156443787504210228202999812133753565348203681144346819480710285973586387816556462057061553884880293685260479789591227809734601976371420468794994452524689192534881320480649488612630664447361070726447831927231807181826960473474390790912530500751536468906713146789055613026850045284334037755932082751062697406799326906501915666173131338197738859319722458262271407916035390812614090833854797390790532153827231759638255515725803629683940152195620189681020884753576823658093154939886948974675475865850485630765054186339866791016366479931958709640349686844771883125882809954666799434908419474181671731793318844734648448755028022288876504786079162176736454251502149979449106401896090613277555158738208463961929024428576961229729530120936613355191825630267612496583927547934916285425577029847649430013609132488717788822538513677418664092701113838674919990716750888656377751205786516143656996725071898581740439045488320056293753043830243846670324386457983533634581057289956768338014504157045913678816308315518711104900827384902807720670428364867627366800584564191177336181141480883886238875836408760634688167952343062961532722234938242483016652253696179973291043492898522424913490160357620475852083654130752432447934709075537302401788134389002365143001175581623413160073971002700087879277318587040533808331240660047628194031915591984555289836897425088115841912054342138516369457058461754507911308020487232816082787758493827499147343244451329274754396398114028670247787123984968099077261295881628039939894975486716941670653283542160649281969408314468017029158349405332356415345985686332555783788914489297272494324835811796002497610723576378342828445568970828236129104476004512769208658186810721413121674988151593351615717328443403645246667265877536676661177541278332015458898191058804279559994666604531061741026946060865153168580477506465207472596525395427638066187283341515076597194143995489298655250522770374372457968275336827021757402979794700086334976231159490097525197955230308123257743284276333360347641511539535052871545578335651467186362811032296235274052380509487561297592795982809462919970027490518212996859246618996587000003896082489074186688225695663930000428550003465039362887602602153586113351662897622106827139692556217777019925210943976586112503878693902102474335764785651844961412144328828895444158855038149373792868183235755784588684285411394671297843994716671831491842714788092116245332467964877986990834270198901646935110080472377844254970412527651107390293035378365974615774816282784491990919784571439410584175865759397571213432678097891759191705010042755639243989107364097140582935916885124268471033069693384425727128561827193892194019847330548281926164048792877613892958990505629662398170433650037857167473847905320506858362561518184816719329926936070563179788283787699386111092253157753604651696734733399802371467943514102391980879603900185324609671084228332983639960124664188797855443652558826442210322248660773258555232411592901976461948366272376169991760849706577629556393631980098983702959792613197837271791992959926394252538377043857351061475971371991827652079107539213603834324266805039790809014194204221654187961436948890027289655272330276614864352789696776382429201197633132583937404008994551451109145391171338888237144290287558243509371149404862132159596020491076056864911918294360506313498368528098345508839827708976931889985219794753413309548345285513528692661877727633711114890044560942930575929512778542968344667628939441673677473187388290377250065743864505919245111601870978591857210034178744094811575678962006507750156863060409745190259246619015701032943629798079183398696626653812474177166190396162327660585322215116393234028355286568919195816311165906908793753338303066313577540637450918830197461852778289631514384473896673282299155603798292076243205978390338588001704385591661640325571528997867884042137666413069739559399373913848437236991679253670968849615694791282694949412488335155354505952822149916832067713960850168511472096320347433274458356447988165738347071817641386325890582758425533743391428854028672448447832408592871599384178469863262048241639353972301266050420168349488154013930698743608889524732445919453031326089863165130084069126073977461501340027154825239282270014334892266972761121186818628242926274932955927424877005320156029857728583779873406917832360310520374705358014123388515508626716771483668010807470368684607180740961164589767170044517162514230917583791778236901116700640557023669635490327219430863655936291104732002169829573119905778424736655167600202641984502312486916423901271923868403070169410811106544736021373855460158472326996031202616219390432063503874515840426449631483989261046121407641142872167072207983754580495893893800840526306800951392863623746679135791812357322797255753362494788706665562860435615828011962445516725499411475353746864741822086308585155129154417377799386896622750908021456191664190262347196292528799693244893142201677570274055230948405706472619314939019408884642133723662192990915897043105967809475164658384820998173135957673974890869747464767380613600615750789225041022461507855679158740272238341144953240169300223565152043094185281504183055320238951186833818991416940980232799791530337009449177007857805250459527733154355986096392380477938376230059694412525374107042459987711598255907185291890566269477086586083464727089100996833669091765195182662300610263636511252428199925527946145314039759074057057032854481681501919288100077049107857988218761239516995778479049281756127607465247852950944526254204683290828679877104761567894038578665108965576100012259551937752896057455115277252373290747529514789494149762921525208574121089054344532118236524462613727471551095982780653247770316780045300522965019821618449466459192229433100018665658061410507058972869614818739316425228522690970263845472250801779965857085583931019040508699080439143670332841125068197437257773594006163940798412581384254718149033528775671858444067851247458311461285147314777114204003909688661213438878352046605469036762073548370234032584998647155495514166146001093244070414988777064952654018490239026125529195150194768547093558522330923098804687275556264221587385195167665607171801611300464423217740151874195474607598137323102088672874107277574930861535117232732411493821067685030298255150534137344529866193429571689438142582172753182177194742694397879115896838540260535700967483667694072062051275920890841140602193406434309884287925021068586793002296144428634524365198157000691555559528405946814322544849074884359430017696008353665908812063657041876698406248079404567584749388578957917358141146508156421301539395615914431601127488415723501227200285873658789645042721235652080341336739410532350380245778944963915059040975716770629778375039449387093657150919378461839477315622632496774718826765701040274324134086822671357134705514596394333729217793855497807638930422519169025546646108980181473756558140236063832005986849452595836005753430802891473401178807290327659032604330616737973786289340002233403821137811901555926284209179862775511618954061299427361190945962875900289355847980091660509418137982135216673412774231181232309467733036963881998700799051845354121033968514109640613809524322839317821906446790832596486999011800761664323289831829933228204076330249641831347194970540056995618266107492810043825339866626068761356531615137364298570548871479559812472514138589170701991158089337152430593531870118637798378865575695286578742774433391719898251250201054075163626112281972131311370325687903756300970942789294479289224141087926136644376769241253302889262230840379703851142985109213510086599678591792217235509443742391430976369670923850400614973448576197283826036810438925761230720073145049159348098255708670318290677198648144938445150881080710333661138686205660935928555871162409555477884308057571740455885994208568281668646226107328768997099449147337025914906829301299907501171821507960317821035989442747259682670819273739957487532989156484950585031198621696920130305859680085474405257121958728389610877125639620188692104346107573014204499771684882549933205652001087356207488370059456179957242831093531501802840322975099335771973684180146940251494011296462698824640464517683524639207809382255452881109708162005600878226758068097358156205266711650728880456076407864994497076556543843835473340674546902605868293056966215851777772655368817185467931167187150628173011282058061843665096033813437748123534127098505500660464154927734409113123955619772967208047332418911299301035213976852375902635151924582377913383598941432754805747670623875606601457459349641731168457492527555607531624262093555008917149774247593738013806528675757909962469562856707607909778376649340726811596522761957232816417130323354082914369788764257091244941997374930754234454155768416647700979935238612936830646566882268452817538024172740837353784382368177548375570393498410490100532900571824442139878821643753640599935915653952035045310263267115419018751113231014287796987541680632557249822661395130136528851267232706178584830318225305763673081820255584661473064429885262859183537754802180715513910912342310253909504794160778747212553801966254486984211720282246794151425891186456073036346361914879998932941094419322347731150743765113714671566347567242030474125762699215977898737912608990042391695371525876302372541906140416579340731504165514252366965282432419749788650142697741215714828224685808198766682785220766340823900686445891947587442784321222678997712159179897587471948746858955724902379505877640239947179356998514599875905838342710192565380726796734408888997308002885758370124656632062008858960197181760779916730328050459439066958104777238721949071973629555855438148666742822181980181713681405291071841301150290986273366859966566553544904095965559203453166699731335962581402546852504968787054109306557582657665043727067109207797090075059396348631954454468566229641570204814998455459492600131771607142327031497084937531796380964165611948767130639222756781403560467863098935940363813721340619508053562210122632948967666487995290696694917894680008367215622486559393537335666737888820343378505934338896668713425672162013441894574960165938857655980248218227380647249959880996538512130957686203946336645891791124763032491436506379179030264149706262532634681457458433218391219775664574582894605862410794372889830921230297289741988601750318801507780324198154847896827740579716883873373294831706254948937801505046809647424030531877723480133950121639640440563901750345419914125065549850640246338997072739531916484963215903097560542194525336739040084951391794802222662986133793019040480391983712098082779305304778896922902848239785419182626677306654042796773877370602725316613837289704814457412081744388702736041010045063172327926051944036181645449900030102887176732079965903661251634181035478817318608635176472971338931802986013982722380338730549205364403540098296335972579021523234356701717815941315202141969771213094011955276798798720225756499852490702255851628956642433034462526500245967775271364005486450749051090667423679302953828003642222844291742434534812810666077832824159113181886042752590845103211445549241431093892144492787866383267595665512635669624243056567843956058237151980125232804576814803730511289047592332034103662690943246076462947892227222446083163961699881629917954422949986498671965792682473829891147378751935498786065388590101685157307757610050087921472412229199613533671627131330765220364167451098828427308803536124041195494270886146940516894005934781021664066898724649469516613940304961682768414315502705708668954198927448761085735208788490575677434652639015580889302051871518508093859108162739470732585770403403650381040187049132001361672848916330528112661994009643876425283013807347065706233569791367770795015669627061060062888778328323087245813256285137853106634799317570174223622195892489927736476560951705522314519734758818527781072203958632966101195193751699605546364315373413975565334129565342194300893134020171011782637128308944754131326970863698428151856295332114661309237270382018987566349608958813920032800721043681328659005489308484430412750103501731803615776303101443276602582609210318610664325692519306150356921132761071697741543061351194526290768499548047009852288413603271281492843915698270038367304518834403091855513230090698819786561378235797169492928689135557805957348509883594130859781905100356262903115133937589436196265284262314585579727328002476287892722146767229270640783753477054422764620205696502256417717928220535204235183874767005221970625617148075086555299135417653162364844858728233598120381959363546976116659805861316140431455856442759915290118474963409874242231256560012165311618402129663119769298294694943825590666631073994720842863561648394812265817650257752401442463639682909590345297530910392948768528929732551300729385555422132937296925199169579388168520122639604188670088542249670186313427235196431830138900783196151679234171645598017064112226122988175516321307979764325217620532684405278305380398433374936515709783685888720294836438484253340766736636303505211086222363233019054025057228529172153301642563203176035232716069865209024628663400482896249509440328103697848334543925189501651215059136277449827073854527486492593855251990685859290737454016688146542043928317898803915316142770467075721788503731102392602175803711444923707734562932137746589910238251083323255906252415572207742976464406653172226945233018829287380633739688947528590123239149868165768049302683674250735872835548800044687833033032354238624330783328245938042666144488094341128115851448011818369797142943063063888120904086791046742931524410044875421070993487469608893820676834423294096446114579581208444057104615479729210957170512923100400518898213135011518685299464393774842926327144413793759563475841957956610082796696221546802613904674733395129187534711879442640150621164007248993815515981836111252985079707010713037676727456075750188640047751917022795767476186997561587072710090608783937059134706394752812919391271807740144578401573679648338832323556614578690389276245688265895503797781724811505743632473052156257348700201566225984261345132817105823869059939730354400367903616390448941943956688163983882717495907257246425562347801578567605485125645894491343510129814260971354952634810026663297306358119945748916643740949176870272746738618696108059902134728611561985981893361358449741829397840596257993359464532213780678675644704239770272833492168726374789857520505438805146698916876024286569144657646009562872193950772817273524822753317060632522489860739268757301131391005267019272773019628210735432296658348858109256171319817984896290742640957326922821427921868048839712512926716134949889224433519230793170329769963347412313644503544799659729455749665380217674006474643307420360523311016621143847609290574415370843567310649720814262082889718567699977511437528106386512214876584722803358800257708652958020213436480610962695830580414981980133034489688281783490019570306316631845068200510782940373643798808139162806114071214156610175140507578939923860287878246080813420103075924623468684340896683499956348104493658873241899613575488306112996405419520539781596344950585231309403030123841228557809640434111619482062154263989417054499365079959411246975719391673767589758764417955233029450933045707539176023728842188117644953354095246969994847155456506465663911287281440242429788605762669303540620945262661667745888144243444267879799678323721193487791623581153980891907678927785971920431697956096038048946458145961260271745698544347323556290355007515618907401115818459417699274068294474698589220852026153682034667067791945680795816844831018007445113262450311357392341012955976540965740375887365692635363572101757093102678286130717182743134889936183672692251884085385246802849753710569145472318274691105376262879689657567992754890647668825844582263230073182862182476811448694805629768591096929289328772369757402400995826845146369625255821660256322332831254429350836553958585130391882418641003540434917003618898677302753657652409387943515458548326412758752821664223004613188507137278233097754795310209132041370303737698205269809605601567457255178867164286728298593921693730907448921190734197753864474689768300031505173069447200694476318882943152742950619730418421874556523019447549620492502566235762088991300421312392432796841020868751667200272743047133464711396570935104716180924044440085035408050039218924901895934741561403684911147862673507950129984056238396260460109460182415293421494511758053468954868356926129086174388298138766733896623067620609831461081892385227228420529146126282727775835193281271143322112384992012732583845117493080774945201940893842643879097115668580698518631694108405221634048489565291516327350586920050317624485543782233284062931312904122770494126080796675068801391495027313857868771952631657294715086795399847033899991970526587523063876324297132571578988719091155097872916772266471507911237178070526600915270448504128815051180081435556507439790214138367166209665195555316619008688423156753982093876949680995646194508748239368902881427930714584106123370138219827076215956061183667460581562688780491236197824392187415623417047723136265169728486984970179653270649081304229081239861890274383712553588601450567525245735072518027888389861305672285551171004302225791966934124792011612795715003773121808772734812267101468264354782839134802147386788291862956826322547511300592131368724589341944947212475325433715301064539533299614811045485121426849627234340656679747253755497497550842836920626570063524957314161891064431622977294787926192938926042859504229773758566977476953715754464513911153943856975255775055283504781571680235075064891477232007336037325441325055471124155996508684680586982060621300039101323134544042112669425020476492125406563362846095564726471856443042056229501663625815629659209503056953717587563404555447549030994495415847527457518997445550822616563709909801035635078983645730545777918447251295039940726483227379048493222705085840209799506771777133793861313749279668689861794320556931850700976900991006152148998573412507115983917766088044615853390256920657014643145923159070067041651664852394937953298891112531950227185919189333176928497101615224772083213607816830395829667831914610124448613252970120527278612688250262264726986446218348140334001688009042165117318150452014586777782428084301559713056500518636259071268137977655078452507532343721272045665998664943196198600594337081102361372254223817985676294868784825365951304495288093463281221563706429174268374905409848881423789939048035255573090398854800306377303348876801165947569864406548800682590913429644533036177551562245326851409122003888194217720034267298398448664655771888569949948907716715048864271542413363077978663265084915816514304369259517433263223151742326461365790978668223913435842374610472630537835524666643865284668614029722422468666315145671820467707325045967526130648193994762129096720723890864648165309059543205083931179775972199770778084576368027390422320558951727356395311381296475745721310703841594330724289825957928396832491062015933901261972766245083315471824039080472543082848509297247765314738385960895477549036967877230278087302475785781512849109599359273487169929566750938570196668561822949376710229440770877135308373971844157997796162787261002912240045533764904260853956130559272884864050290001760901054320217237359259657076396243263571730538825393257059182654270814241352851225110480281991347195503031896944557180164963333316038164779144779233663863858597093362861808606955356456251731513135164093267803955110241796401621077444296439163414947826277432802328474766743757657126613504719612849894960935007349951995041988246394740560773625762498393093939048521861168727161838777031221294108282216805035873325799198641378633781466307495570031017166589494972661493836413778668724093452462298220313381218417477659200253880406947262927362666682242081216826328654682840020060928178914407939935924069650195768412204645983862063341179621726501263639410684497420177010853371355804540589890570544334046028096138715530508348481497843296827317769421253530485436500894122151538034211292942737755438443066129169852260636257256931613374475571420597173201097309120158792166100178892042467433143182084866631460038921808891235791484455056098969565716202496949965746606577623236512535771502566363419631211915612887831561240000401261001432212034760158885672722757912097633763558257448582392934382665627254052099477458954223558861526971924466173047129179595785234601060447457680718317836156726434621338241460644648641118237838097130069517602478424756650457952857365490681371879711490286100959280589240726286817087702329882567662409645459334424010319123306324913119172126257428871812749417065939973456676095340250152309273576601840381287917125981640417303907590619486727694426964513872808009850115101451323162614492417787219154087342182879787343258921827824019391446625378345976277413546549682395410656864275882354476874632400642124849972358767491833694219249495852353708464490735195199529197583283140977848462401724369542250964796085912854479888327247635453899491867697626457006586530572967569250273262624928034178326094625634324510971251223406064635972021132249697237368383140039525527306481451102336044644353022097109851911300463672539258889343299644767772626261429152895001434440007579988583422695157556913775577893532062241669152794784517258020073987720013895248769120586060212975003673914600571315648679175759099550487882375858219741610170108382391065436178889231263364385800674018471275325301371130806694599113805710425162276576469645452429941046677317583057204911040779756672112340467424609406168233915127518205804976839505037539383157771269641677326720243696287669750432022323540882486965845822952245931419590808529225263163255115535352226632939316805226145494693743611372521905950113542536354908031972522815974691294074177927486396037721976983227159128201010034725153766334343264535706281819030076823425935800858125797178009693082005267419384457466581086890123010262947136183309728425427749000904497365411372729276611602903434405353875563445495232407134259977806409847791696398133641716419989880191397543320057946384993679010564753156124133813702344403980091290304839637306600563094879760258330965885576923809613554176627820201866002238351448251322201738912913593083401210401567110239257551386493129786164785229819746016265022784100586190220014142075867429112416497732491354393679760643082707647516026063772333224610978810047219048916973354962860076635616428175044669497227309864558074830212746657060442083945096706659607134828992536126268377648160932600020693260900054084371272833571600098489635057016799959250463827227057377874177156998484798447097940099342653835861066110559028396644442555166578342963197117642761651813727515659208710006272025458148918513122013956532613438416121621535021003406897100579700604969589286108773449459854408101876398664055956647973021545101943777669941526942173010456644946422233752238117631663027693383060628391536427489697388529825438229157258863728817746157444674851448282419687931810266187405199219947628675525172342938208695265636831332093785338756378313321082109546039194038260999914954261695516467132801680777574555291232542708651155705806735008623847524269710854510158493084004829319888622768191360680769010428461232675336533843132640408438937931758715963575866573615434958497789380184469461948379054209133904638132879206316393779715091348641657726884914413834002976835950576943981641137898252744869269858406372236391047614629445792489676147930013510044225770208149097802190698567540407433677967140696574125214019988567917001585612680930813335507283204167289690550559690308305300336601372704512821676143594818402320011584327049341000944741504678172547202187464122811900573521855894198583753337346977813861002539575569683190711367416755567305730416895272553332771479034022223889820487280228595215831694097730338506940206271748181449083888223326206133761173227207068723618087949578877132444928602322990343252858059317736206561500560258127415318108578123951544780781318816845352510319446116924146250482241879400025120003424032221086949168614749506791015474597908360699266684502339309133008545746357124225674077520482319436663976281486621455921233488002737159546649656316995861821933114970559797598489629780352398506193398919814109759704666405533120008685951322096597553966218369538538609037485473515430428967775527630193648656133587054302738376379467562211384755981356984442164331718110612346097671051550555658220454668605532095717534016547354926252506763854066230527866498329173608021181733230992131124414098230382953675406310373610697719617306393490320926521825993880261633095243587367474015267333837691788946848221766884838599936923602272198223963444510259272088483607338047652696417047204649475802454062282076644536052054857405677459176117281091472934465871216321547589709928450266672252380973406301397384109456922107764428089289045250223560021298307627672031640998128524674432249807085127909798435713082953259353395748850570794667154157664319920596526470253562666371902610690110751404444460415010284170265103491908215541692991731687427246376654703054766730144823412717066686466257136516614003685890362919321061228092334727278406674784615392717349362312329309002896312896077512588909047557621061959887903214190058176267318697860036187680451743909201305663086525592200569619546676625305173353378144205764528243574759114359840309748480956742718050049653836279371550038119224113747304049376843050209219172568269350263375455285544816915919831735420637408757178700379060929480350147554544098872291604773939949570856135610463759605229689571376584771864554287196884465028329215590807156168101569201527807583403270415777145067182491680560704753048315611341485734294110844329234937924082107364063100198274800009343898713567324143565575188203741408362679507758548613521373935577171062165142985541281429810029773785937839950282377048801930750826932837509815295557713592044353046575840854450840605387285102009352107073618108863393640528572249397422903634380119067509516447531456679867912037936313629188903329789652591188691893569226050142952118899895136147941909263394700597251790511114118459597882482999849153569340544608247254903063043307052911355296415731883096230048447265718216967954425452292643857672016002750298430010406472118938908856269678028922088834337127733115579921273484476214396946463056390322869959303409278791483645541339892960834743221217848126449787065936326301183702769202883334305792891176148379846872849115351344858698527663061806048878951284905744892051260449166430304257602825183309326397801777084518713538936403546566645205846220555381854433357826179729778202075287578048684014649619638764371428250441630751581202610277203577197544456566199169067018472945023567546337814925776092661449380503552195600474668746258471717145194917777227423587420425366995094814267710572950299042312875908354927160475031420940237517746041108119425623787197370573937799303047705380225822571394517460680622534996584045027605755663634081845331821794856725678247993888049967985096739429625423300202864034792447953649946141411159548978999146412264271448033749558397790181697545712739557524854527906141337965731651547746752856931330395317724147487652794586763153508033610217820775244619111773873271893272635044024171443318032089742118420466558721000499375647639019705267035825160453403323673234130331543425919567102343791072578694603637696709978697970285869155681910421172572701973326735909172873273612858391884422047156017138893265592107312612078659701899939362504787480554627667409971867946904497428141483598304343498919449433643642388108716021255091681835783139908901552637835030941757193173248704141114483556251647597056109487883831618402214305887671696034367792095715087568396441055536940953931919104290084227990697026201666289987681799617314468009081277506865037229027329763257348294785416335183335086162293495552609903021582890032924241223660972839839972910899229196238284652550915077249225667669245128592061220424923827643352911763217576938581120688109013451850054390180514092170745770026951228992530031034021043006227947480385313405488201341768418568652135351815859532295073287407415228952683350754210553066593866198048531147761348565720406581813871673525220634257534559152988648162462080799055040889606578132295093478235150055861573788051213815302232770347810586458316282071661110899508441955041889474883120147679939411474876789882831846985105286821534172699592838620068178699480816284365605804522445949197779130698351036653021531567324910334248127649375070510036397014385494998307163399806861418548686045237931255930597062296805287322114680240984478169823975715894506349681868083522174676189744439442434010586761726511970840512659499061152219165149343096149494006425170595026471831944403952634585204342952542682525908528180721735127581562872763757082644391758918000708135596152404484086722435048266870252764579681700845966472081220844241012741429338164338112446647165829212729883982144767926925930667269733986012637051007431658962694712563308634710505108097695683115580429671273127811724839181270601343532896271995869934519057277346621828679649741782870147373975571338033927101541549386086437872859535751308392346419704023901444842853641511709817198776675160840995073589219246455470542505827656041504297298636108153284019030535011112685847088026102314549204561499401522085420125031393313401849758865691857995402881945017422790434527188465734994805074078517306797599076987158940044419229892000815922318293204053723827486194419008092894023578113685349120939316946825010182271566090665340118294197032985170058684383255348905348326082036352167292536484870825851203516822448018663322894927889675959779216866360730057733000053541461816861728941084596801828832105199695345766968828361752461946883443162052631567138874609207213458311873799336627325231216219536931847388641622216086385675989018286913647061085694778806445408113674144118031831877185889056544328271419485856008231913799195029454538047700624293931236383193467036456308441233543098863008116521105388673426906514519374188308182540731825149627922572517982374818166841748967809260507381846518489912799421217126082563034978109756916617784185754176756357218687597646805277740171580144900191546948049011905926249853821531760205248061321652205660622336470525723763162574899978853129411481352745939945560867496200470646429371943384222590135566554129219382814575349047433616110110107064784861430273362920702856564473325633979834105557827129499098714635148303073872642417802747149713774168201563359427160131643065071620386572972210663351436388272022104313402422418886559918750111888744927795568986444900487366052383717629859102203763063375995538334780662910309173287979555271019681698152793350836738685874943099106214427406804601306114337513502726066822249584729274009670585286835656307936420970541605830548813164863261147470773743291465982518454922324195668259920658274753991757460769320258869430927684048142588551435058965795880701893409676221790444505920077452015769278863011601754816359828604366982486343116857932396547336902621949790583943123470183193948076215636180601284692661500833228314592922494607552485887780240903288870778754651457473937090060470469478773897984232932553910197980691655801712882232186259028213304954241573558068504102056942925881794621252176310383918936028234033919395255513343141523247706462432575488048763699889922196410060981273336755102353130336844413546519007862638576224819845461104057437793818779147449899567329737770933732393825384247811969957071620959962689066596822308311785704255729839855808231149151439878116686872146171866315713884577523487258857321986189920230816214978027011545055140972458708562171988153948017726766344981088789052590757488914488864089603491152916728753131075276387745038708841559777308057195748714057772756829054718422973254553506931010263331322123052390401522498426725029922017976765540851917207377889664480370809676190132945227908330275923472313625638157619621408397878879000793906891990321879367371952178970683873451162625151139211275122362981617731171985584744972391377192275482089233401815269326831119460140176973331348483466104903408276528305707973451582684624835071692980188305939135306676100370688467952169571001717907973548591213765180425698344343233072855180326773716037002865071661004148542577252536634892746541731667968631146278532478108737055792746703508313603719600496577993223374092981823525211029657926614741562618872116925492731134887587076758828359198132746480956617016620440688349361437596784101148523706475344651053492439479422171613647597291539875206386260401456501265453695684463462358563000098239722072560855992192042945313601787695118020202082454556519371135597681619312558797642237111328973972778973331267195838227979513218577710094530902510592503822619781773325249514125749552862763435459334549475873244518753436297529568974563399788811147345056845669974894086041364472821555020800474530333438592645395305738515606750953084355357134530338539694961812517541837504705016479721101556321351879501168217661921760028524437944412754054189563103140848506725032251235811871192128700434140784924310314010206990537752545553361292487914149557001857941546119509323619960316719758618076659989316573429235855297920907610526990099412702194454517731917986028075345296038669767468002257589855957441893854295890568056762906184207636097182070899867746483835680981782245511277666763615224172284985524906061041402868410060274859102830042658875122656829967547528367274809970392370177863621280542351945917586340415734762812415514501441037485463989461210281313376278355583944961874446467110539823995230638548840386356424633211675185172653098197072985759487036975845896781508393371538994452123868232011584179703338666852706126808881974762564227715805538891449776415432220382327127726947784054366800060942666980639705779451662913766645792114096251382724224903271036708154280119042345359243097901093048030309936970256303186872652728469576066450629721432439992827952699076796775458247303791595889808091734707923167059799963609994158555979246830076375119956347401953896074459399050623080267753154643031351833122453989851222943526343066870955486036237135889442680369513791173196389694160677853496374072853751239780848596222842220339959654190987938213760875501687390409111971194911393648071736010765899714607973133113696458089474663618545087978861245659997182643437135319493493512508052249498451821675486084554929210592395080319899995918565500132532142441585296664611441622805737729870770813155515503833393155643899928975251540691820170485487383625693683302988428727286533047465764442536930939925702037620546459877760855636600930138137071415816193131652596378399861444671397222949771236373491912919194165802421211537582255479966207764219417172608167759563381670530316221806934407618988596894612423089117389087291316459282027845798809291989346984452175439881782588887258598049654686559421379129101931289818657984750039758446495905171399560482218053233816704182877803840983466007996601985539957791744573602254102805115495211739335748286332866206645514045665901058844587317671012969927305803298247028436998289949301265076910756467435687620879773691208832554614659500205241170101483394595708222788271930209127205158444065637235058474820323112098268366497369665136958872798556067497403455482304852960360912579167218338350613913919110289241247874149911160289506119350344060760790383751003373130744631833248363595477566285330106570315488234544442502998756649797239087039695688398765586093483309967572060045112596434994742104456161596008386344279958680966885475928642084570529775470468831039961294341857638152139115156935516767435042211323924012951732952085999314091097352085855344449402065221677990436750283319019186205880643499052355142116838300641440314616328209301706554157466516312662685329869123473177885537271828029035893639847698529492503057278274048567225603905645458709462646033143535191251968124402405146602949132018049984970851538082778841175507034502034107060567289366081930578209558562748814700681797652385324284653562295570246463769935887453289633054534033806375812250525509698354623833028012820533230975126496949398173848019864578531340401468813921717877927878467317146142504937257824502485920372095290006416486802971196882604544271198727941767160201979955048710703767141348016816147022989832102980736236896314435297974163432258782507193439758288665526035872964379065915383229785461262947360537735631551685457512884946338833361752988512830111775149925929207025732023941640065821135272482289765944779921689501977663505820714571868055238204934192675849217966371278530514220522090406323138788583008486846473579261569684073344058939145980328128020517444245505290154383421159772086024640550815858242731454118720244928551714495206275361627748556402180754399348097107069509915026972245929000269661847745433803648353926219000053889561468534324711033578870689557320803054916891714889162433292918056603376387979787181023173623502504888289377221183824831661844722461344607614015642050894437413318828399856806814431368435425507392229102804019014994514893422961589507632144886535771963270066878909314261380918390876312086113383427423788108707502013569821140616252349962132258020764071860090844935951205299951425567078269005339886824284108988208945645117737073632676844023841440791605798440608185624766828900695768134850048962759098590272471287381552218628523283320157986803635014106156110294581992614332245634801307100706159576667536068042060036301927890345040089788568724935142295791361434729239108219409541416180891989583081300078182554977639353801659151348085367143005280244389549401738133652904893484641871534075422786807375379245037322606913273467757673209019638910293983512865354948705523970426408154513996273699286440222239026054832018611748661698205041791335390162019548318753210158012255859307507420715003486507451589762498371874055218302696868454139942029320544961990882109155782745091224190325051667529199661944785849913830659759618012257185610186219278775645871375982467235792045805699204192275182978831770408813005466215884388364640637109947075948304259495738929501586983820698729571997289224439275510312694511841116003788098488047444382797111808210568513658345458484888914888851183439429213930734404685475327118851346389564201408505738570832016660791308352411364708749350646652440691973855946245929678164714577655026271921231044362428975118033762857246347088893013368176229876270536692410474634281777147889277569988979938202058919770821718594764547212611263411423374065897128115669308302979630609854671718968028036774812156648935411345694457130227078737196283368007055177676168894309009026873235742293688313648762872242780438504923743377716986629458815756167185182441451134251657463908573769095183656628943021069949931914751471486146357118107881479911886424365994143381573405525323437975112490070810548077265484027219750665549368814135272758136882459979776382171425969784195267063020275431380124183968909432638997830288227304415919403028947566472334909602340018241916211611464233299761115029371964098850006157648007469472272344747636683019706237499586071173008488020534656705069983170269796132551109378874590563771699644331804887506714020538541888048662221102851724307995985307719671037950681141773993286067652799265247827534418624415905600446781038176810092552098784163829128273060605660756062483967343097633392016293566583394486173639195112017566875028396474517331027653868905735328263076074921588004661269661431895782735723959909038288679029506241162635883535515323848584578093537822491122583712014604981354392540342596951637021440840676527449576474003263518908405214461281150076105861639906292500059370586286678133389524764537678061164672994201022416893501449524414839569103948054841824635538491376406172168853959798438722402624212489577198753455117665512766012776850007516283466047094900662888194869136308082482716745171248393712033966981650940783649168007636343606750486869458871536136184173281113032830574468841785694729542966628978455015918434001308661831821386797409506858708595999364092354589651166020489192419558856981639113449150206015703975618397752098782810163798302038092734113339063666473762040065927144454999383297083015261303204986497804084904575986401147706318448477573036233416292161223394994839204879016559711134297967205316544872100386426555997827878775796429610206613567698686668441727537203023181019261081578851561081391142261751130226709496551055145796709007057317868249656434161665753795291327015384138264842788074912632568177291272891833138544637852583236924947090008160930922095362535062894389824803593732493037992129388741552983961777253838737473664825626510329456531739118579548617905931325974951357568961520751884865550103100790734380734884606025957949743940862652456856026242000580726896033885274737736002743929119500987743595268820919062676525196253248358315649553310850202217732967348031741696800948977707889917998534580906435942279705147202456399692397243928156890426446418979344338633360291724705268156020512770641838943494485632293629066618397496798182452486566043318156576331189521279071459185470960493566671218296160388527523265174231538106534201985343057479021272142140088085804003396226773828231981738973158742953711766292076097336034891562649526403889231679060724206152458815617795965996328294412971699226096371508202445661975234063702364869419008609099584722063734690468359954657314758096919726301688433438609290261781557646379452847928132887710061963328382400737420180103738311242277727299583076833208223376403189524545607918716754233052208072211644182997274615399207983761118243844190251026895691322855149387562797200291847842738382904507591558914838567803126646507333047497232237454875269444472078405510379059309536058775129239110152063997261221373697298877018018086677829475255373197070698219225894873911585869675192722528075137764462464030757425918549757282392820880500937234231175077607288919183581992790999034399929827758860525682563590716747283237449486013353655426431010229014114015145017683835995993656946412217814801594668179461245924439500399064856306644797258288933447684193920472370197095458864128040732281174751401386565992215475405733203661438363844665229903603215502893186351876482837027920913841513339501739442644381250372922012331250098932051776128371353463717580938148701528961369974991099960840255678938986111433004087825327238444927753245369492697960060657968130797370682031273949077793763221786798428127145174345006228705486296530939465400380555286203218888562060746160968782747032773805448171614657144036349594766873299060505995941675243646830454283910793331980458675087272455446107681038525211119839388435059953371804563928913854820398457226985646813765246146652063474015076805232327606274187261446925459515089834221905001484111684732434680297991139488137423055651898102872059609246573305375857919858621663038692293246960922865643649738999204673878711939668973981082248954874424884281021340357522686040693456623886524766150021763850030287261003595344165847440663410049138488258785199182139994860315664768888574118371790177223436366073340640090155277788201303961062507203258793785685063461600557974731405824276547244144309523848672021544474283629042484744252430210740031771540218559529069833247313342307734610713324059730299961614262257882291070424133891469651491305605896963758865633395133523955534980559975343122963456720213879306490977057417077654492029277019419709394482543473893960541842903858021062121285228818566806385322324894749596796197590187184843873104190826714280677540229417966342596457167389246298135691960800087976685258067476598066182021638018380981512590810078183987795841220335762590525026357924803621206913692816763160575375169872828115106130143341662865374480632875157606144799458059957390019965220461534509261959784095133508376702074542282362394824430245650265614765917640676268812706020207259946580468470225933924315792618594262509288669312001514909900177101721509255366773419742179597507719441114607417107509204447913051774344541955452710840564313122837050073994423414298096984444012095578945368385663897873498282146526499519611601230645681558526626330284232715618981836655776757438547814631978260612477375591392319422831627488416155846742711922985419660445483695319884625181514091216229797069855460153698615891417703943131514147124326325602800645947721925200269898371194183997946416772641948957491709768028821543407950019121888194707513310820347314671348700334161949127659221633361495835784339850959568819375097764876276479271784614892803198806430010581701620472330927583785221247891236273864968005202041880872522226803866441118189580598838243368991153307328194731500301158813185947126053013698857565507862029033219333279936398336172986117433436286435481126779476038708175720994773825271113880353071527792130286850635098890761356912320396595328039747260542417866064049941860495628292668970597354804553236631139040912289500436817635047749854953147455468264714292510955243455898281627544241679975520303575931693602975459045166021673800965933000156740697478270851259943648996999569032760034686074889427021515557396563147868013604332055107834028482885169935099409136439755701449138760161362758619201749502836843538425382575733423024117157738039011043083944910732333271304721812942721188446727925385721024004540427911369533580747163245874829919452610995163343604193444435447434210510974308638843271033283595875774160840398079593422616451375670882706099817271438545794464786460663244691524773589784451822484150020314080704697417508456220083498618488219557772262592110379916540486943922862627582634408842627812922968314249262908724449996450993411392118226380640285256152281250907506206016185110476914680793653595173311640759546761315346150061451213666721726741391056614663582551843213295931859605070429512937621119355410762349756928677105880387789603557640516544443952540330020561816450208851504579328167166109624145782142151407872545548735273323774517414360494916360188198299722351585967779003447829572465410164696249309218140621574149971162946610842740285104581346889334600819226713550894393999914401005354792964670791052383387790162616466846257651692994457969529997593930879407451019398059239116512695585227163192743969829825848953159223294180622639228426760665986232253037017489433428979016360379411840071115837862321857365192278678845694949050387780551703288201692614257844305504928748486866819255948772098617315235402267213661244488329795851363222448667407714848494421030892140756052079905536578919970281217352083437809510424019384877783863363743678958480737592738615783667842720369115940457887865611819321995143141504489035025038841925146575678941346698033167163621011291345436285487281051667770078303987087427953746354341824405207169144201918120069558210118948979267124711275838819873904769513929029659574348457877785330792921059654912751371284761263058348664571649324876160131119109101149489618857424665685967135994417639949879070360221879030171673260898648884037267687545144308950980690200118709651105215333970071480324541467266845052920711114045687370140130339551930337060599982116567280629275172232950386228597284162479450615746145007920281228344538373935344735181958693941694685198809592071045018514717073690706781779689928662748094149979140365365928772513299260689807850241605867330411861361606307441473461429174639430369664762151223251745311762920826116128355142238590554090214970522147921576769996130571246265676678926316025974327890307691285382502457666117813470184215548684075525060510698331510173476080645533312494342257042305246198144525492603396673580571496880540964081019188699596707354307561407446469607582224681570164085498801773593147253832868968631496498773936602761155429201519968835163801115412854153777082437206041168187661104341659807035919556784001528604840478371522155578480356534495216641762344098736429635071044090406068658627711410619546301881419378509083873154108456823917663465606491007535590224778610238623140652423987147298321080247967200375176582712985757602269239485513370831113230301694263081245790622861562734829319920187788497702544856797392873379155667488057787235035473736214619904402281718829668949496699976736220762209142667916076456463872223240459024323573689456339958456020422381158475890699012035676504964437075461176543691614814695235830419950430321650753761052631780048908758795262618929915050163929618938910256955464912086721021012074943201244675140256847981204490742523218513070737643650955927655426523518555105513426969647192781262515089929889900940903373340490896968746663862940053615231043821760983344717830771249243761232941145372089716328798920658331129388420062687065084842058062129278805381508985471524560633042059497962727426708528674150292337939962892457739543461396391471634264738703707271232218155142518350534589907824256567078011579190869414240197715563918529631255768045978722590856086378907406241841377024888461800771966575156362243336017635861899021448844350387028285605133157500312095107388470263375720751068449439020665781717839474708290623335320096091718552850058451328674522816193604704717018119369738454006252585018005761457661473076716053708325252178310569914839587711458941734404476740047091474107486007036127859463141609646021565066578693683969597157805246107609971774652021342842328601606837503162636611393811498869930487739696133287306434515273112412420164320244775766786260797403957457869155831502583189555255120895769618093067391572916189341391546435978264447078587485721296405851218580874829990224016308996902048957818105221977672796924078923891814468658327406778093493474114165581904610452788031869557098219585402352176214036615303661953951073851056192133158428340974574836841015774867347449390862560775628159407828754583976480044918299989755505398871199027771996304742724983473218769220452916495348826374993218356559074724947337973202160891879930013773870858180530100954255767354178439307192178989678706339882956555320693287521722609872809481719210338618522465851400813460004260940197459083113853172785921739282323825889512733675583207818225597860340670632250706717582102314390950126120042906088893125267019672725115098984166819820252477531731708073460742923593308571174351809087273625920110090872002306278432231804556147900354639185342701245466974302265033436143350545838796235568489822886992035190478602679254802809357527736689629585038398386875427094994729124727567719247953088002113535519364206031165052042317078192200284959595905025612515985288201247592133737211365193951446332434213928828164176501642080456112606742269926497150854952368039915575561547963710109404231156190330809031249785572043008110203594282880086455822669098677264898586746227767504988387803050621249068714463456711354316165583933138859332644678527193676332438696719610330759403162010715822400887363929187728657699132366084892455184678408996613162146802907913688379196419015004444410539785422321014976130882484399314933322640310517426065434961229958636940335550691586825315292960743148195308456302636465611635055173650829680819787560413679342993781069945600252735116627260780395685397887429866239262720189189667752142494356089501042045748161116545293017543657442759192045800272418998593909711187656119341579618135015583998693478766391733415784640840972811416726561149625806729268787650660860200156536361083886740144923289104321784051386101258974436546584852208427218109692475186729984463554123861301013496068478905105547219107917574882715220710213367233485453611060651872404482865566417479118235703121272054570644967309521852009290018763726330307401600439753392808512706962445084511391002621906640595419747711321128094986140493658107078164668888971575260382781676310069743908931697830199860171435117515466150674746515197817552378872888319080396424803687261110183754770036731567021003556590071486452076159072170121241763772627287831440208503540279093607625429153317514938305532250968515250148994674042449746512894962271519706705784768963995470407409509738125480574188746028891830565156407617078199525007842085023297734065059573359029061831981306675388611339712707916631411556776616943612251049824432465510498607062226205373013465813794071770608200584598421992575437695904640902449232039715169671315522830317827601166641244700521142871236193849223004801779292533222497992739563004512722129878523639644046211958760888481295767505247922996529936206523879062651635465559505767915689010554794873288445575063667334737375221187457054240454920944187896449516982528060162006072762094519522723598008134092522652590089905864156576052817053758627289541648705976785508689097780233435018933022901600777573616389652817451935310245322181397427625225922377725838289898026630543382108651807585386119841500538484707366241913816719342540673539697972064361631995247331799502345981632010202744755952278422245119537318020737538996845112570618722103862776536927978838336045202544609255040049189803916525141698751059902755270284445396773206123776250187925258931578401453715794115449281167745149492353106902683619989497557700605227180260024254842175826941651579779523762672321363794903573419483702851690562723523533541794369105161902522950735587959576470460347906938228197801066201666469496449766978916872230808916709143114932898275114616393793661543568753285121809780870818035266353709829552015166394411963236815663789815464917406510817920944757063129861197022431966593906561483343720302411934275432223305004995103236901281969420833700225290710097054536384911732230783920005252035920992777265884863848711857294935477836753432912787162417930102981476432199635172120163575586575782699946132097140942662614673906964480284616035355584967282919630270532563766554749618132072533340333047010299040529042877044216912775686236231583845799431704556635643060738549821996405179377507788485421425449421399900852848947278211877589771569967139801310473319151832910075253386076045403771775828257462923815274065330194269433391689131928085105989332110496567851245464511091086104619614231468236575498939223373109733656994850187076828916157824923312114774516508850111532749590911825621763305504659225594837818217928711054924808932844740971491986088849703524152819623965936406438471529590709011685666564008435455510010105016456389521674726781683629117488715687218323510824392813732166107046091024886361604875561418069614990411029406316731153460309627957204282208963442207123517014358025606968785418883677221945773971725170815575914086271030260693742901161705395858806762912025700361267559518274308920798115984542195352375869097886529569256232941621565737518498196351382406419920811788062220096549126669690122319236627760510701079250242177698594772924341908511372654510337143419953433058304845435848549801863395821295503596328475672347386695897625323598679325790329543355073826282768070162260297158943665040266343711924332397973250539045326392829765354986960452264020645530104900049055033547492454600750269765831597957208624225748227867259797409691619132227269139866404696846520215669910626637631088978594099184793818943280678351631159712454286846356675033755489391424431755429944099190016761678640258470150274923869802378891435965624037708292360129779884746265441477205073874331503527688834932488330148909411674523265522622105690536839121447043771077351821381153507858289508404095241645152073069516781424286087933982080878016818956913474647012949080017741595311760168767340865341044035291913710739200343400649482802430996560475839373508191678720639765872800439182212391539844161979480150897924939476891652251985644787897639363277337641061338871021486141263578689599332559048102995685753198622956236189960833805652584163832247414552967001789211601423711670265255736234523077826498729919142022504883910577878097599628313201505001081527017648147158406426900084977240853391068237720628829395826248622143380130068815897277799678822611557938654475636386660444869954851194887524442256098517136265066587119460040967093004818510511939327796212158337094485122916790559546639284412511681403499381309728244006646835335739034206621685465046863703802290874793255663606381690915643772969078004313906419940591892944298876906419262704781177020383806669779804152758683847967727950322943709731285315995682384713469800478566230953012422344372915841656954090597504907304878754404962628049176242517751425484807857948854539661045027162882151475351545658825526089033755982520660851940931361474488720909060440045219313661963565581472323576488250531604751584805393126880753698299068739340095718707482806966486187743793803395401452288226471228079318963668568054796514740124173640634410654441208642228679681214507156897561605237705454403205752962019766086005293272452360222618425394478477194363582389687585768057170519623562959845530213401976937019004247887243907948660144863334496246677281942696175848841233090092560903021111025890841950578363103870622352879723448086003374782655062706110960340516803510277656213511746960053082031166255876658256766759544967268432913728157857235823335918170964497917143689237959277104967481727731204906294597038608163119778831449904375765409996673047350753991384769520961150857465657330269504630063142449256223412745669432062160138332675367704003636988124046340843787372515473492088377706031617893071338282878163297136932525967400282224869897142536393847247254637841557339739196942599421547012916338286974723437974906095109709360024867526917346466261771902676152075625111714622566617996025239213507989016224478866044339181515429387909511923036943291735175021973958186966585605824467474446382129029052951125177944937891198194247182978238622239605513089270326464060595708603882378613595219607637634444961433060136983273962002792272158407823988871598166042670277745427163621766336702692380641796262444542743782766187980226056175281198568364563223684864086440251615639949823356619819814332944557434980122801439088659742093175828490788269848440336442218158860584537710688004454248305117638075586063750587422863440587214018398908078166338457269247834509648893758787828796944795268660937947208298208464546090668127424740822006922812543609692543719766106265540657272369119800933213931245441165298573115203903951725043229488540125400929688950628155455807864539474416882568860201937822365346307618573016349319632839640121074971562985808397347546763705531218472285367211368250653207170186007394860755657603647617929011404371796174783055502344448398127294006636346992600794038062146226127862967994946082281279021250072330551931563613736553478222466156037976838095709112843775041160683147087662615113296890404795360429119997629672605500636099261071087996525052260418148084161877517472774233429351514649497243042645501565554505373847306952081802780262230009547794016569199960869115583904692007987074545331525266675701316318498019656916908862014807760450619263680990470303859727032972285636897376543984834966775361710650939856856403663898786393246754131611180733324927940178112259877685076456808039996838944054091778275003955935083593634898048479334500857148638430215410501128616506191041259553398697665683302502588372544783458581168304559144262652993539155169805614089931827853804285964431675830604758573525130058202836191610696797065489044610583667022548689247095966777579988178682701893432818663438738079208622913336195982102854652171078771445448372448150352651804307426134405245754297274161354614721906993783581022354537425022392363037174522756212400929199829719658965151696671869149324095966344854059401491140804365400785694006971821031499975898102808121756102623623957842564911253449312393658234851877361627566466493650318466176390338388070311553578870189436116282676591309931210970700276815899161842304645937697939403432822137437557641340306159790276079102677218265022960023187247361081718876028753634057328368219802416133892361839753532085681438320097529042158406890877278552487811815704412111245959805025804062999985315337509367761926795156062673632038043731741363775732571963693694122173808954741186532166915057795200662014864892587047766786626227415854841309593447394467008656864230208105730817787245525777419327211539474212483289626936475919308095389533921566684625420106396800140359289171723242394599675640437177448853821351896626196506957236527930281345965946920603198407778317389365962389238538763723399398031109724080142832644163143896370849466663615794085297888461323995379480755591433315384923725259904926021678367603560240440730174863113387847294673280270471961733011894625188213479456826067206031660075677848008887328359928614716605688178039257269228420561737494295302135189709578921121510886198399676502996406596163659756736443614924552409527293916774315993883358159154535338584862806700491412911100661155631228901943788717167333430896141870208770415569937181390488774091504982221242581656062239001239962854188456914841444826175004536660102703415750019229617765136639507167189263173875779919786545007004880024261845793636827334594670861576635881370089828443704846942710877054275676677793491518087149549759416311203442260702197825941844701111716803972697322737127487792659572348837425300823208797190783602519392174912772977054824645051587603568682286202336105543088400510419534541393105927541776091434647608904666825888409134273126204378863034132845664191655119115758707843151204397663688909975988614504027343576277676354873348918499288655306508297330493058848105075701926678336235271606291478784314962702685865310965145177745920237512265754306283742434111658385045887220025633378087033100315179756638248348691099995604499429965699675461744053518004389272220314045278155757426819898210068473805622383693906549113571722955665474318160199264487685436815023595690376039728314804007534847597766769981549795100630715390363283670152840040067634375537644009151115138966872201448925468990308358021210681147003689337683256146769552877286672021942105700179519942620411242449808911542038634777528594522495779105044111594568949422913757326538537229723904041153580679732780232354084510457003682389574123339559539110484313621402146923064604755486544910076777422179152259654684000148949901743268459793417597791406509363240613637889826771620402744003817982151292509996538318619429711557679026583401401279688425759016419243577804072752849564357122461006118593551079649107087709846353574384407024548334837599371406404465022667752086100884540330783875149641121396154908390132871130094938444450902751507614393356658069094937086009051629474109002679702792835338134879153380430778318091012969375710916011873229413058974014571450012449326672522207423330348800876782506580978763187951961239271043587266252567530694932443539138062021063343572128709623203740538751185290200030315700200962754366518854102172484231130600111689706945926481214724012793976620182530166428378029137502567236609482963969313222428062375362155860721842956302473291936442945031697001881140546651423470096238049367274785653105897217075601440263484877358028522210829241558546712097978480540761797864226431541798515313364165585591365364694056721253811004024169604774246989737671783007938867993119317346517900998041598987264606985571816923239632652871030242007907027705151837984149564818285780069025757917439288842444661206598367652492427847440033256557876659761038955369321867793460322294414774834487866687607920750852164261607806064318818560245104611070547352860074256134326665126338513161427112326669943940229856046512764093234838791414565652841748243483840376676751156189497512534770942441046263057756906170004924023291299663662188105560108652414176062620882874845681191320313950512832271799468055011232863931865440723865799209634302033679870402464470493561968786257646470266340242612539091812712187752954681566454350459677410084958220697672504225565692354206332036428760991992083974113352022878282912020884774705318016616252856854322372714519213343467580335493909585586414938082421743578442607578270796485344190790415583063313337273352138747206023095653389872269640132874423727406255808733768676998969527916331487113846929283250918914914081659230683944798141087558626842557431773630081726912506526058590040575332413175950540289561348173876580187520977451689179969246511825657904087168595264892748552768342694750167835390132887043078454639382675348978884326525891480344651603996846915481351345775882582509571686120526474798638624422646276605460585978922621396126369449853932598457195969178139801750597833536305094287585708655345439202743011495894950221088882797928915586015313614090765866133285986689262263729387431069374245942407466940456273378661738655791383981600189297685096665511429645014224869371405413475841818121137128627648134132897565413880419979754167292335662783374502817596678851153611850841386246879186213169310191763528188030195442489807612217789469259062031055179340230532901280297628707232095897552616546244320685942488878677157585115003658920833790040441659257271521488367083527238826491018788968392843071638182616671727104377018827390028790343778727205457268655698530441754312453868415761861019665870847312643706036561224881423127703432203559910476612147008523023099046167077350925255074663915599466457437061089749332270876293381435385193677224511464181099935663854843023248106153093612308684069315718785952169322402546251929350078378363826090103226712953445981138086194793354842152720271244943197518554328862633147808579324224545460232758662463122629051306873115409173775826826437244897243015354276688415801450687216957210394796991444567062382347420505565562511044555729812900009956131354825659745725491219998905387639590105490121928210911850249803430081754999378382974730136192705569222641949657256111272500806115070643108985097335877545191752183928642245584100285560062588852066319792305045005544624418894462481632776028111882822901769802532706073355414111412273508177091750051377065374669102651073924359076428157326862331468049855818693877473625910440338061266613985586872520309002625012030996923944443721952690047751681790423225134667927650186465955420172957478008945257805253428694847074712948027937341715149505604380602912896521639033407877582711313002419441356877692257687279001914608554170852832685062664106370339519039230869290842157422042857353117998542955138910982076830895689807800584276515761018616917428068318348649018098418689142585122106783950795853690262460716926247353901910486892541266434110604174026555300770190152080369516889770128329401802769382971869877865310198250902888914537047280626708952694540625259073860413433349046110090411861753847695860952890554111228735010089575190869186660702592373629754805677920557690272366165921455298083182591421475975571208508840335398380179883532135564532911521514909119254975495355229348541565068830731908038012343024790016275199486037055579963225648676140286364726136614906024471152354317912756731670396224233663339304416370154490657788233705223642624447239199065082039605333535801033619667829151229125804312776796122725211236584220747797011543890882497452913231983953016575824021672625437408731379833265500115138165717714773803022238931462699427100641420780739438667398391173047660235432412031557928426754592591356654614148185833586612649168673658903386406759251765946891538278174593719923511068482520826910531645251389553078372675834808240274111230446032851116353139529928157047362957826928213517972944868613642963207837688047095452434157888278289299128136233946298417330862498831445538259374509524342324072741784929581217221055687986840551761095566622935567450485158848370358378266280160606158887366182868897055826796880123033547901640820176755758909743084207135844801913438736970706948493031270265740746454937472043587044185578564163038185716704824585495298732170093402614440770680694518512758773513476086397173285872646250820269201028732374457755105313846212909503640776585219023057966974825263741453276791982485623361517362558850947375987140540157416982496496643356261157054450111151934321279764294016675588067151599305078902775473106427437199470362724937206137661696832303849786302352071677020536850979756569622053563002228387171694015573167691437928473442470261347913062695766945736094463549730187401734538553940333343968772184678868897301029739044063954261855534785870015349054227432559687801571961080941267847441011367532663157235619067866279350088748135510291508794539505769952437573171998920644804616747678651949267185404155217700419630945631724563976853630882722277531649742582606033215752448920780230871710924210634514664245707121690711180032930073618110345163854954812986697003324555684721480837107496385110413402457747533264614032495111122568095071570724393942215296881748276112120918188932428443462774538385093090337869069350873651227534609971720701217323780193269498603072339324588928739794331016291367396316753827069013643395547055103185762619325897647591903846997586707397376418945673360078322668512814985206807586555855251331350921478396398563015482746953287939511362706312134555688177933975763899537538449562905276223975365287287332607046416384195487837061538260537136690482469326237953699076251616617539104051800948791998853182336028419592025862933378443250581145010578568485810156640819364911283047616756440756622069765639494678789080651564980064146122264216232821227445851178056911766852868084857480488039962361067443917761435394865500912661411902043481281239716772843578006999808861113159273131323698154319863925324861761144617400420558726573059129621130589414744170759629688569093324815804655636335361762461271400342251948281641683705393189523537025662330416082076502768655644805768759566016574036222900096506436565350442509115339824534550065261828261959028971042768747774347790893350496939089639801467522935032729608387645547329116904626626242502927457768986201871422530370428373444525312158607106912100219796814472337677922963697690651665256424500440755324941375866212018189571993970717039386166038647653090443417825409660301027214014291991340097524887714676729460973826286635911594245295037406986230894100229543245002005894757180882073033959359706314650227404801176427726217502646809202617446798708050886179948243659182604336949139066710237895037061740760964099732280442961427072093367779229889233070433043320500714686503576013173690082378170045407734717303910368185223438399844365357356203107557074222685649361477241800678406865736735741550976079662483778917876096555776463120893644638468054049415704679631189801530639594450659009463994612048576995957703492105190729578329597056025842970803881884400361914243105443812323178553502692268127353481076737529021576551523466020552249001124379004967196034099246226308309385023589962942462153505931071427657244442842732256394145056672407433126692382132807783642186765519273877672547688667283626677171621109404979820081869543748897585102223119066892051052997100189334289093141565215033281642736081184481959191483486776894764790639984034860345310378477155981362299084944293276920541389416001303997213319707087173251544866169097018168926721234589052373489226073637059980129382782884698587175361955070320177135067004390433487415783682072409142008348459110584042044983491746964397521534540494413286039043490155729183173841643605236826855712178592489316814165956106097899471837394607051155398535383630660318993308348233447679501441627581365981096979823005570362092877618690477861300143975756127115081429581346819464109733216692841623859077269178794392320888146821205813525621810408632379958094056492808451400609024884705879435458198003214793621782389992656187451278642479007725489634562684069884682928710350811375820635449236546334329732343168763917416651584634215366471713273357145415356460788279813243116317439567851985254116635980201369560595448551794163980076188542173298882329819918063190894942806920694571108575244892023234831780804490170113197718264719904709598617025420157286701741712376199271193192312971372638599372867795717417790360480643781740765351488513568205759450509528773073298544759880456846419783371473495603969726102010807453707059902460866549291209394042594899600551735580107749577087532753522274844066343622941167740839145422858825892653814411288653000802028383677443185884419635226600325744457501942699022931146765007127762159601914670342973005477516258108563205552638881039491357781522994577030725943799316453123832766196168789188744770303412300562312057971342571801046841598939182105975931557586955957569680722915453594363229152868053996831935794014994296959237774704315452037144228585310045142211921558256145118625355214706511155091573817246890449026542606114819733617126861923505158697143405857682053647077407599204922195066147571468994787986127798357170334514041349363734776994781217736367360471201146311674634753703352010128236124320416254706235957158552369151845889351052065203759396307296715073466992110862166170308046938429602814370506232325596697668891063466607041579697518041163003604834451824763662377798064992080122911882852743024433942079914490705159726326488014901987218690685458123111341020610200661029140384621496766291498068887343660495875880418997501653030516932812240429611309983618260516746992040852344533941561900225319405645014814626127740057129040738728663183267353090992662953235877949705329297716239895924475883347001614802126322471768471459674741079786304588582362642141709703459263087644054574830384910839186154997338433183342767510952784392749293007586420416320093441811807308481188782305039292614935961553897544455002847326761912629118972423604488505120160415992193176867013432844917572511645494156106824280523273896473521571435957099684399109395370763462884056270693148599982109311499974702446986587832450068967447153135429264258188542076117870366517578348724586392220181432782434029224941609014092321950108981972664283928009406569906080870901127493562917468964286582820670205501962070992705079623759511209476067283750015705587799930761292597691767835015531112175096544944902084278212888205415982861881035081183264004415174744172088400593992003800990935265738784567760530959651418004006342368517259619344189326620190427528578193490847175564634439805660459988392902182686312805570439711668741164295970219322524979893912497501970326791648547683230651971892443176196956874738730547778729347324258148080553999885435016074089666261851976373512292047661581730110666250826475304674736154935406836538151533135755145297184889061778710667421612482938203649695863566614645361223350523516248247134082488273156530056614866707554238679189301132092013709552973059400239374889072630425297835549668153538155836683211679210507760155340892273748263115946527105414112134199391590049164025181076086600920802766154904959327434460167230879032331949901412121796741339972666734510702472363677527394428493441972835648590293264787264861427579286837618435503058365196775644051376026924822858319318644908912539976041660627301747591636337152590872049101648363043098440440315047795482970922190119966957302783892784644964566159486337904269876242420736215315507543362050839084390263009608800035832781823633052923803734131819239590116269328842086247357867450992486622618634801578021789616718743231794963453587394640226099719631645361118827216394647921688270631430993518256308212299397797251022271523774286417641125584409930982039361259574269162061758583155932481222596810294104365251583186964801456435234927296258167303176975817121929269948725032041974925443529301909414833558428772293947739757375729053696738363363870627962436288994725952391865600649655945986167260527294123137248046317387838565275155554280112627841935549979016703725739989006966859075847819465323342780308759920586142212227299965366028795828511321420570641788330812282592161068019866478048166949025187267355152016538905441835193130773317474535625166210778593701025881783763011178101887240256924661117718593614535762602257346547171676348775412410725768428030605861029517260577371874818180239965355098048142152597674720268901636643265382385027342508579923385372067964078707840591810757670505922983540075156124514863151786709958934949182991533240638426171201754603909231336868066970951121057673758546120322839389328462617730100249638504907740779682081506149833417703051522943370614592288901239964694232647820178203039329828893545092031309744962235781792158408464556611343287701643948187631202401797749805979122388295602982209139223372620805989515914912115345469545122248890947542292704038041291033169966340373795780166729300484803130123512921122946507040062695823199919066232492206338067189588791503088210751925907807129120307651817945036312692200697557294748839170183345530461818204410816208562967047726366372606940064667870817917074503783960328459158584813979431908811253282189646799791548276050857299031744572083236007203164178735418766673972221035434835524683440883799419962293959253540329353142790252492415054602783129373896865020598664291001873295563886644344589839242427264642647240465573530326893046170031643714791908202988317366481334819025699495520110374172603090918820286738507607111544163999562498028164056732602661507910777166256550421545132131595369886839908565547531670165430347898178664999645411760987845793732877259964140291312729025266097905320585658977108542152500697065146334838873504798579567375156014127980818704828317368862893444306273413839974630218912739834102798361388433993136173105319551113179688158040832470726391647070182220221752047014942694206415973293254460347696077396056993385278110567448757254663275650323353019555674780599291220844543521555765984006361814403568779236046231110613667904627174649621638233865016705429947186895097723043412052062807085177377435273279975627228224513943105817306836955950153210075259453296182880479225564163557769568167540157818756985889852413031256539710085003942781282515979956085545452253310370222310473660632905384376578489626265745410556261941559630105182940080094101833880151956196276634571615588863867854886647010144909565079089608589949176049406801711899024129421626566907087671482222943623254759528879222494911439705245865419449737546272406701649456644976144231335723870334088766909987581975303987764491675272387106827288795405834241757146608353281124881770566475477757470258878592725893270478396595409209892648956931799723633394090169611212478992076227457139515982414168314666321693843125656028178865324498751044732915101984900620233909707858070437495377006431371680340145240043950760793046628874252594842144746139484016109975957991199980727312634212315232083292271227676479473330790485472226927669029382072939209810774235642653430064403618410268648913771020818402010223143237240920998375222449182396299708796572451815062237772916982222239691842273641054756701236221389183166276928360189797677961464944289018382973248477284269412347554950968158976867703690910442891530251210964213127942396122591826929864799581932288935199388599798666768488512662896533747051023304753057740074176659955431644340652334610525233337306273354921658759897800697893025085019213666236882485441969058241919238998954776429475236286509812021746226982055537256769295236611914693755955475606235186106548058001065092798774754186842087608462313554819085080651819551770036116402417721153449304094695320280564587213607235150247283702862262099663038298954197592086757520744776665135297750293148755508356136116674494163361523082290552761731232657723944374307211188124780982760279999616065721291483074589607551801046887926262288143131642653209712294028993022837006995351720863160814894851671330419021776510273526903453867113279887843380478064359853446722029441723068322540376239874689952681573846566376511796137412014850382758011333283250638299949612295917563678960017346687564946966143215018002174181109881020357480663561431657410842805518505667078071780522397738252692833826446211162643585830876513055859526700457425593806500734718790616171693969378272611178359263177723736457381986907921637778442184611894076844139060872030779454185852026031203662838270905629755104999387563272531435354211514879540687967968368400553850291414435839351547724335226991391940369680228395304453441521536816310786284497027093650105706998731162535862066163462181289033035834622905604383177465596808449335730136946755878336025571119798583822432030219248504898718983543948416335085455035523758058082318708342196873492058825636032051556567660436128994466376489219957729856420883120676667446602709854694051638805689444937102649215814353787243971108358091211202795496180577791721502328083218367342990248242368642586597942316850514465949196776201787406741641775500777767730558183292516319323029055768035345450949429925043460019883915007387515545875367669237575519866829894820676675762692841659912050847020456261242613289113933478234020606946643506731222392792635304859671767814594146975523303557429717223116201813602051826834119846171424275189480571080537167337753909071639225864876449878304148637966073456971697747467738457170060447602987727561482769903400750250309914039613143516360636510071611493774429126813525749083665801288826400750286572947084115035532654852631639433624330711083822595964582753076968842815422017564632890099234141990538529878416744487188734533610678376709562287126028047530210549266158775231115596318842078748914278009138969360718298403246647314229138503249299225793233408202207297090134962298527651384836524932412047450835166658666389728977825150888914436059829747994814005388346589747588484107793413706466249105719399715037302756599328575369838212648795272441100564556563297207340954573071962631838401210415162732421220931645694825803155762204082872332182704353677701923939568193677492314069094120756175042436921116034823343669877971508664298975780046315292916911332691518279058647656303213425083012088805432472796159150196276285377049206731594360130979295686704742978482004342060779157583616208777352575116657276596942653424124821886654141517329290131483408036240344034718500395201294851256908133575737682517406271028901952649031360417936748266948030371327721599020990284202728134042949754945922061194524971754471178580358477828714388334241008166019520266095001606937042381461954399349828634908694830976974793242097283027850640018555466803264479956535192270840844850143965238968062651619056018725756529933324877558143180341002653564120192412511090235536968930697938086650274244461480555033545007231731870322743866458500518788924713259128068997650686912393843755101368276443620303160510726450893123528140444973387459006826193823714545613754749661872552648418805070458178488010313368305491851184527427826472153050949324808910306422191895959834552924582385128039719623125683062771254354453957982718713148877935220514738110548974296778293045010084997549796518721357780895780960794148387583409519203690658050051173963281879057734707659561608182814936774849265994052208771599188294702012265110391069243894793552983069828376996248396900563266018844869574118078116416929905587771396875214155167843055477424610943578496671117699946506671160134687379522749218123313917251390789988581518898025281613589006147211557685588436995758039332271280875435422890373701447870584127287756900171139363192543945512893548279484960432823935741031227101178809889879430773811054401161885306366071633640567709284894210689600020392240876583943164331847513569650611481321642012111590168798892564689751274230634539161911477830808454587445730754007983914148027659526409435394383824488445574396325465087196544066888800154885148072853794389479074929851393419635887711529048558254908027536733544994153294582660393226665254970913198858525431656001272385424337784203630276434743749671375321001639055426701273745201667692577918691217357665980031285502588678114453247297467491028010956230973446129051553893420729281714307032369284972856939174196131799725531297959649855014975983362285953605627701616646485137590678997433908749225083197799474635811110177327423653526521204759192504871466387811730809401536418753255211985048582092873561335110106015772356843320990458202315769880764360440674766278292885555761784885661633788470315145094212477588891445673881687987045341766949075729766155941542972314228053492972408261529933190280995671669648760649646219032785956309975889040300060183146126739931421999281010161946491341210270651391843296065028207857119588117720728787406938439695987291047779820284069249526236364115709070033872745716928088039873155978315988691420574079265260409161401889743369714144017991132677987316991218634140717984935810663284605039789407502000263076210948982470053127825521328094563669358264988164892063725437242804124119798036540000928095554708683663105703266273349324058094991158799975947093279680298494819757203427115186428680609933146315749673261433100617326514554599517453702905056995810883746853110705273731815466668775252972078197616297010954625625060746078011295269512635773981650879957121947703157343368789344800492481951737395408207795436649384253997449632950281678686754078048772841940498129464716595907160209508195630003794326199843013023055515893305769571425702274783791169967054411911414342828262360365515106134816927346620745500219349156195695361538255148089516760594401818553084652744528903316967959773650713624579447950768180784400355392644364686395531832855274283123105916525308563582270824416133831634862248178989299171878900633936356797681594049085756275873622420472506902685408022609700779025383279992183699837186573388329322215329168245816983282013408367031417806062981666089614014698761817086162833957929601893047722833819441002934975501847827908545919723401588570373879003315143507885383623360303460026573915436218043241456677797551370035817602790745836417812978950654020970851032594442482902523803503424789203227561567877299104295958752350705163858089028115723924326716193768651958482823901654578826009187865627774632269141476041474898815730460419915952545442981180771910502635872060660341328271844156205821078051597192896029273176284570729707186198105174573104356674760247654371667656776706450126790886178291311316550964882725839429488251976473889460071683387027031043060327684074217503605185346474205032314521373598961026470312854690673352071200542430009676802567214795338185178942053294984421066282849397332353385410798921318913206978134745725329124534208558499049974884596411196637121387075748947134898604323768438917354664304368094391738894091534081010615988773230419445360623576245524256436253693673343797470728853156866879071646279630138415515664921128546093958654385041603658397125180075622493371561633620991395831518400159548126436564652125509068670315628089005121751876067048406165376996325006169664834127178116113886705904750452629994384336430021227174023431025228316996923748271352392857548768128938902303208902446330133157978153326417206139179821185273499608423916924730642276920736479765967004418524215556157878368683708305526001310949945630167642805068388006018322298196216066880722674140043203827666061855005394143381867421481177939428923204477139041495402702822183742882995629941597259054946019241804780370075843500915176452875606337182958406880532646196496199342088372528630917467100854319737156825761625029158597095559950598835841849776585220169340460170193200163434156911424775149919259534525327631149702335694028112702360875040553919903901353250316455756788041101459285890225221071441740064988355252343321900725655543968768395372197517467602743159921135772430355966461806342929296041245111983625927311709006330608958148085339907329644380580980793103744259078149665096681324521786285464211129076933673437775795343297367272445131213843409632872073619767480281867060587577826803581032104262624768438054565648321032641881716932371658945889575854119249036379682772463846270236277731125216809293959979740624611922821953359217204464956726459185509491820704732892941955559678626061548620122122389712396382366915229668572168553959170582089282913738900919635916943339586616078457604325378350052043987295456028953560694243099015945924839333102513452460038757762788270885776200515656299166594700113180348771895130157114681433114619956393506013758033819452534472195899307681389385208014022047351430174629119961994486029802806484016438417282162796033933384433528659572276043355538940519303808302237215158492384182909327834436583691567084992830378561544752017628238818356090790662641842231832190683311032261828522743673179039714711882010874619613384310571304163300730436997454326814467869666260798084645963897161206045914004356042898640524512440050621336249507744832435219856608112027585195771368021464974349226954393994711039063341650537848240748094726458887455974728880140389585127043354368688144173547793471100401676755821874577799936424981937341322292798030345168350730758436660660816679874529033890921618730765168374370600481926212136818569549658688525299637052272062360264337243207676876803753397772865242652492342523056563289111584094813879499150065730043571256532952485680951512812863863658281254460681554898152838809487019120801251844435472989077234966243385314119005637911429450475684576192190591816888391220580125742876214332066155931220466218952567374390666397434079299553208066246170906813754693126986052854207675949806071149160760373391158293435957653243057732724370335195999921978126646361118934228919942095343733938993833719721080995601530856862714406526716521495245842746509131967974219933728564701101613667447915101546503453020498007646731037865672916233936538729358378575098263552003256270626734191856184201897765190354711621256542411133314841212757538117089290238968423449282694669840462612345234434523119176909887294478501452115646662121259759238716765741329343392994088504675565280101839919126904007695314982928192382206302686177667082078867382812772533568965557579648668696517059768973331399974266672690669363405924636108821944054633848224614247043979256518739978705636432433482651641039170479655216529971377440713270525804241391988421814202762343354734639319939608855250636002515199693517398578947216845097065086403592016691088038367480247400910564819122881732701977892392640757152446196993651426337704094369624059176702769220959689278084403779167387698896133192755456478303785150214678796630661143644732542134530055195859248417670008137267324494240632925550497687540349534104853156144401770766998607172962547420753557828744226061472629824350447900251205400793502115078577907982052739649050080606398358185451210866267095792219248994160953766386759271599872835413072171337920551220349278337391132384618098264628885494543083215309147801954953668176342547022659308304691995350638248722364702826601736006560520681335950365298981591255232994367127809843173199145008878836194663574122019241326659576534696425929551720595904368861297663202407543054142591628690260831216113550103525080810694835238855625915656711165762420001824873843206651164794877528502815971356697464451042190296825269499150378370182252395859822709739172020209437622915035907740770428304685505990495341786700635717751800421882531719780763405540199159304921172174693936316334032024536400665372482642404221887954269428002622957599942300238584173501955686168289886275087330878003766329469045875070013614557345110517841947888047460364625401873753111923414226824823569753906603262367209007265755157848856546054873508545324114417402580233515681955939273887038830566989834336895579749791968348791308536190285314545477944968185340132620204060967298802570587089322125911302376980721029683181050175096912197906095265111919284352739555470596501194229170310152486821057807962081596459720824911376517593799630736031015148388563027994548099188520873363596993296920752670870808504928674883214303767830210881569140121281234369126695202819854772136140900903083426386740368654381273263060108805657282395589331769610365936338278369467457185169056155776670616863504143058400568444239323738712756141249045222029859374402739702899174872370006928096601099682907335452533848287141986545131609115744982975322002937472115555885724685475258896181107836965738679341428118756911412892952915461198632404201436259676922562732664147876606078291806541930026857895028530125835169423652433923758025797740747064694572968297356094575582542633766838205172583326044406137103437168422823759430210647172236566750658909318520439173127755590799668075524101407391186977304027389028247936542678246033409875314431138491785985490035153249541509535353734176954654099357474733955438630069230850402851721334759245423866777609073595316109607269658357199934779066853337313475891385848335869296704969138276607444773825941814401220552716009817676783612092752874355709236160090048278754798682517091590807483415378526338253738322858686176057394769851536610272561352925208249308352065496955791850092871607802659423002337628455620572194856529005027059397184941440010563231866828746901292668424922501673008234030529566618128331860688022767189168408637251431341283926961108793599443021393406830475483360784135048523709101576802507411901893491558060585640156554781143351996526842774970370459798499598043549887744561851744517028067741912740917345491953986052295600380808934330003234225495483211757573612332547885777211067193566991934753518027656481542255266256744056718228140093210261466013041359270136062747304075970879027747807655408517613800165844139989330010435718378451833550083948005836665962635956624837149175136265936207651688127590255686729654172723521084526980320137245224188735066353796949616210543028303125519646520725514681009829479214778877446576186552682508460830899538151206816558208698893218201888649191875411789280583272603196537765350614549632669684607526866399690882000664144730501527240860357006925016610606331711213372694178708187615713913533844141121070710910181653223042016617220377962911632169612049127513576317457145081864740456972705824140833114916888993359558827516175338996115419327391525371420409352526375547987670207808924869107193692907073758661466231293849468633802168008339601853286259431918952392881631533853661221918120475144929009903737766826065557820432455733559489425259288332421625030462030678509933570283650797159185949047518363840014813667705761598249911066133069070601848671604931944787037503955697322083231909751671846413083520948327101303172063979188116255407112135718283954703633554376024198178192814433955732903796739750572660682844915522457649392522612728664263085749997903863214814618175345244142730325098827874918507902516812942110249474393388405412440793060510547885874681992802326397981463311351049375137940429002008418000692636718317295636715978295292078138154009756285337576059249498718083299722396309827020948932295903372818345966924166103415520150978772616628483920698438398526459278895407523267745611138393296402690731186646815377144168437300421673049617461966234707414669925632029543553554679679437986764466649502778101591994524728605734557004558271635390085198203694082186753086879681271635986986263548117479006579049402371008119113394472749307200234382553269643051244838366866078505686642849068283861453303947079227527220224122461537643894441840511948899512347603300890995323440029669034186493343700269104940023504151920726235441990915863617715550335087195972959214009033495172328598417566897716196875982546420223094763063814360397886428483268699055183436982840894332214565811137635800698659439860571475094771974133748163578279781072288999420293371366584353150899982200183367505088715951981119080121246974263576613468270221287506656516574684444542375154238427632912907393246378988434703179312513408737625679605452061027593831193730237896170430020320566606547743041340120802065589130709962784356745861980988043967556862338071234128011050870322041611174415136930736029778563325823509323325710101120006064431291837914663698784640813571918953281732893040010000049945260251853473917449041971398945782385709267489141321373006011459253612660129653521313633346735449948969491712299950474354647868310176534725276266328195536744312635640139136367109626182013236062708410073552228145152732790757224493880821962343758040859530733882475059278776598374200454324565350306783349880932483550661740663669033255838011325147221209857038422184032910057474078484929706034842382998303614473620070272789781660846761832141973914582785394028603013355502843727024502641603684302833993092450325080298273255133128098344944615900108089910425985140862548133456057730010747370146803940366960178970452832857571780854498574292561606517371290612956436426935318446178780258278853043249761356056971004208965058500053128324111871875631956552128476415195307329820533763516427445459900273854956060381287934267401989410500524105886648670277855912741642637026880486244871523936939220845489392986370151694273596696440074564362288620211615992215941276059806511997865429709496739351449381270090432338604295150439070985291337449992508694670059483021820862957264069770839463041515852571391153140435720823965541518746967675122272731312703647073797347708118736417228866703262503308292350170112848983385446374071231994106998197256724443165313919872928992627082007541643125674107910691848850235363481886014236203489139183883892731110473573433900769704204627500951251866177159931046812527005223392107375524292188615892297062078904993764364162450990326094956993324274710104341815433639961941232648529612209778056784678005603363734670513729862079632455233558457090019215905313920645838429726645993398113045285515992138774566737826822547004272481475589205909857582731003026512829033761690034364837865065818307917639994694462080743032066976492491659393725130048152107067999110734884323911716069002284934463943768208488154010929072172981118401345704502146529434105576742571853630835541969107374717922771696070114662826114688282641433689396105548546572928386146905636231884319843545579640608268505210713389370116726467079699032876646942863714904541115356459250684421233832551821061178750968022004430389919993519551487592499677842761834575569031863273558726150348155581006644992229421270518606934251096128374799093009779946810345418425122828652247327526918263400708302553945261422099103697995575283897120202557328291090461043052828422687506233865646160420226620016057996336726635904858370213648153322049901868278471643204338609098137579088341849408606409728428153924249057013413703520251273206676670281218021694526738535853061493789951564658148505058803286136416852105453535795677845210215029798655941822672543962687677486880581363533327617966215526948272599785272192040329431508840393174251983078494678623881080350339857702752195179571570687680653480723095963993448834526105000650478296560035108443771095077617876944180922375328062669092753936117264100462119319136686557732244692116767291694329295720393692427456448965086257961205754612926400651720590182663850220198233718605341575450411413810863752758095711964125973340624494237169629974570756599545063468793314389747641559282081773872019871987589658517805609466104364708382806230128000265022785044474593844061101777540406855102535000818594484467072115183063834563475928782343376298273516132168595614202611050623877848386212317350480419757998720402231854414146417504003576543020609528950581836370302356878886744087787232837134722006211571388738707945035349826371852007427374287176534366315523392004184636367386030147558791382299760861581611847759065104577925093308954787549841583851146834874434018060207533853717175111641598040567478963733834207440852387883305082360577985492554779726290208648042199235575883419235537911416385244301003181636163897609565663631474185760050958394394939614836107064913942371433217002383080945473399727901825432355973453000708660354382323786839349782619808783178248324943138268459127483927099510571365081010308702773238096771909976631142607333243079162900641402457183224447961829992863665280543463113867062649213504612753114984784518378931154775261960501654655797962882904185522943982724026901064462775990315380538735904486322463384780503488405425336898736793714993288682789389327738782945706261112349058037567469439189503684340997276920721332410476281296070075699643273087485969746445352477089145452399459901086150360809680733896800334885393056201999254690758120411639694729947134200254346696549408512477186068984623012849806777686151360387237019642276481920183961331993490262080655052253208386532509393641602192105690905295627245646628563148646491785873117442117069289607944973033114634826200253723841762414979175628136436469677443360593952858280523733975016872707210162369320289455482611580585727283732907380209111185806939283270146200981181427141563466295201514604297189693336321121759040610252803764690841036994730792390329670754963207007819928661865145918518812975943404981383840027360693624826380745121503960329615541314894103202616062337823536764210593064252598761587490012230801872626614379446928737083936530194607005648720620266713087824139957586459976003402926135990590054142720026085288444752772005762673978191214189584865782621330575415015410518021829982433120477041274141116619689485201951970118476736885256197993270921238306414306105645657163395694361711072679213407505130363108213126349943968433680000603677679405176863807019914442606405139375148396845083819595702298118690315324161357548465300035634564467287264147143846559103690068953999654528231798500105883514553486051622940537881743669461764257594616383512449982803754505566667690970559262752356760293102860813469801576332290034403168465464135790783534709005012072916736557135818673094242703762441850786026964250503308360468733778307312446810491739777170470834547998916990487053396980294697559078113476258966946179817395153758859678476057935460316254329749299920345635360390936336949302932148149067561152016166929728690814419374841411041023657946926750994680057572264975848773441764509446626291800951899917573194290138035663405530566671000610169077627629039800328088568711450084040297922697752828348312870164712389285990368837306416031388417440011741760246614319746313175318931122063262244286823791431703205074490712663441733891169823110903273226229350140336528729987183659384703130232941108705958877518398648497334886713445770226786633721630276478461392058629981664686818070588592504390796793164494118633251302027622181652572071203834382083289203945838453058050261165093787265344770930565927956254439672554395821368735231150826204917863141478661765488931816290055590757893123115158094542444711375286816630252690688537962977568004612095049788709009651157170088551008061792214317211256584614317111047760422223681859935429371286418535358952609418744919296098452832210366183940349552219232529778602036029567780476413050457635647923626228511914694146261401219973773381401656925896405432449682204353010092672453693992812962499498457318717091339146938706019585287730676730845488996735459087746906515218907876447158181175438222990725612547772144355812943979207586944609009508532704699629848272211653709782484651702162588309150177873647339234882042306905241006878580199305865941897349951470969320454079253511408925846124584884093712114711485644723702954438954718583718278166966695349507114583059599251699653148393868575244557413483120332123656242310977007819894844544310281794514473716688912938262548802198318811770409120288368247405596192168442068557979675696365922857054617418096725944852847294765302842684463730354992928832816815115486031130135289817897493484641866654834271269294486403491593458885141567816170177048084611030634806231284095857384418308691538927756790844787060035636456316923522419294676793154584058599365808524230055579058556413671988628050119380087406121386822558881701863405328988241008265894928599735536961312081305768431049199909271036386582691193531137026012138308410533896690805920743678530584686809801312329607787470156448274127181112401203471841856755764689063698414876335998009436962865880113885099647910771841125619504513295548138789988405988288507001752676224208616473404404261161040696952268274400980963730736192931381317241509789318057297146558424947882667608661320670219961306602233004845759958055991142988017839378774264428212492671599320130639040601071910332188337835550441143646437437376513773343659517460011644858861426607929377883675776201818729679967565934043014956575787615599712038008241488777818195386526615164744329153000461538661324724810776862086140296118034608158020494824876044537439396544857506844423124858025469617773352124169590876282643720628083942524940604010503078417446408112043016130477200647131514544037712490211317668510573790934429468993462932586882330589441319876275114645248595679714433934708856659857563000489181069621315271932322780822402043999692511311093947815628539716066686687626419864029265593830982617628579327367488968011393252423517308733362532902213954746671729472597634359829678598770273202062078362432581054849508446572777669186738955339048513375507828639550334798305479745547934986104364137006941275549714901693373049459420595822856641148852219302482386516907912689653196277711900620695580542476805476889496288751101016567595522372256109314216751732527187212226384499016133824245046233399079563666310994940481919710679374446127001744734679871068778030600881038676816625367145525526099612333049611008192984520059095080276437979063780880524245281450100980451769414359389187057139567354927600067670782148910041878869586129827415655473060230205476052779680004958632864769545405901122300826767955980422765594971623788945098241582371156984967402656054674016172471272445429369815099030409582434193942156239819694985052342930572934945060190479865348703975949393395639931512058323018010058922379327234225535503947596815947170497392732366036656910963703302857133677045525202972890789799700008239091285860018495288636372943044232750721123352719412826069822248453356767674789422667324469339543764887981120420227415992941466916748824816399008473952856050949055674244815533731481813625093317746759916411915600556720224735334634491070941126384472551812508699091805710189267534170551194471060532939260133623893503998533391039889940411343387029650965817823053297217310685902052978900198051901959341762000565223938945711927065604695107846980974618853509073517355646215358585581817182880632423742534538556221340964541504666817693564604077377279879788598116135317860560612237026179768428921475762669882346652261349248030704663233119182251831908228033893811404848391561991831166525090842140256775316904358211463798338353717772446097406840205336344963762029280629969311560894078313178297239200004388620100352591017346353040142345536623624225763203621647153885095179001954074229599792625642966649208675734365057317745412190856134930155721778370721679226497379778144617553046135374222375957430406330617117351255007762592090961982264216271047504075434039134181727119340812388139250773766304699370639534298736182314604437065630742672374519087275885715835276133117363592730946345574132399776272782052006800844494737429698287441671873206597219090941766804826137173482869641327534878316734101375933197181411844022096860829619046849631820430841240845245855718115345343940666316881249517435569443908934300886039458668709092931965288001141875925925747207086933528056105519411036972810246798625878723213705579685647050517973071391142289036203353510534703145404291428006390281133619131512656845522773491480423445938368744824203860071870859151808614547484940299382063777630111928831076583848006646420577838501643483920542069478970965759705872422943463029866011228916349103725262535122624443564724647195344004102513153581757569406862704324552558834777369305398816909040832474360854812964622530174878447488010877885346989876243375455792593200965711553254386491332826119573902422045307216497111369804964269743453027787152459437866477677267912001865232155014498682058626459968031805313403630522228611291728917136640712892605433609233616327625349275866911250029328099024644834872401374324182527395828476266902434804807977115809616692141910424059937694802807485083931550497422403772896359779691604594991357976574192657122386887776627975381450158620806697919261531755892156707714920097968650594985572094608305070744214918629998604585609459482795752951469812911226642064414189366287517609091540528889444721598582436370908792428943529351073392838624473162840446355625072154714669362952676470657922260658217600136437738049554844272440502303936450038177939787741841252869898303140692995128062819941250413579656910009763968849027313775003441935445038907747586370459284099828083094367004222236182605782376260587663770418219870199563762109441146233287303495084273484852470794222297557984490750656508321590252629611889005281348588538923108805862401935844384147539019484032707244871140631325548645583087158500843375573179545075734009754875598856152306124645315659487586005956037353728292300080829349639866238952988565429439283412427627284706374356366647094421771387339938294948655287722905705869518225595673876066955522371069617999518963908068397961883661217833684645144967087364429945441130479828942850379107254667599228961817010868073905586928043484234010094679505852529094970846498878518802687280658493990630640666299866653517472630799318291304768119001928749345388538358488742497306035715185962488359621857894898588417869577301383512235229612110068679921713419650283960243069573359784867782125933896608031715313218691887866167905642149948207170846351317565823603226449595098118031686927912238558249976051340931941612424434492088115113713341555612452742903776411174504511403438259260333897361333808881855959868068519687359177704642302996300747797317578329084472896562461929962283920372000778759491515815330872320758041912814743195341311767090302284431518267429541558458055612462164664740184118445872517963304564534856987701259066062353863804399024048811421479821981763281071795314256052444790740087600168498207342540731001619242220563321598968373232631271695260785876861858601054258050814626093289284317029289684315526470558562008347275898992741706992085653334018345032051985015755018830044075461701756678516749927343231097309282671600809824294768760856320164434656253773660111789593235064248757424325770261297972630743707683381199646171361950761478880378029275229437547623788372615900262882689268596169188250160092540066698163180156976247835946133609715682320052372114905382790471817708645340160087806815432004312935734659286782467894204303213445529754075989888541536034808175487288263004834316469029689287730746150002143976720131242724826288750351449810812924214066363129609849585579965167370202579974897248669647129216280426192646975136960766580997051511641532151947391925810098715504107345914382125786404330021046338276808666679876937804603815476510753472158215296343594319602327006474016666194147408529240807400375737375750552675548506229485611648333174449779306805337660590246220802429091829764778050928952809741723630492163378424898472501783303690461706836449628775678667073185061385717006487497427465715484989883722197905441302184033677376236394517365406698961450584874615890853708018928990756195354462871545720143684349068751684161969068297918641384848632531101514501091376248877748647141797054290066357219418134880122466679447609938994885469804242567981904289309354540226469517298094034754752050005998416041501736587750886873340887484480629507484138036836389748271532703487500344967506288775121111255924249322146332869774919348920267940173612559126147621193398815805933107063724983386066114415375012904701213975640314181480136455593068841881594913018551345299449495578656673747454195522350396628661112857379525543295455268316083823623067584132843261930847506661290271673757481888243211202335466595619067347130672767972528821113652544106390671924927128510679622150039651800943014582429160300666616959050095269084689277471438490061387368661099147792159683772826422473269909361501300053792571431762732764394138490642376344099244907979819721377684809880500793878412950531581519381571482351261209020728497442878981311876091927959868725406404717775115908908686975005080850741623178019046963111034633255258787013036328888898481646332989541455207152589109500467312242738212378101359404910403812109063816903598992500260607250502468440870100775164839039806250659949791051619145212089783553299473089244002228146714374313690697859297935979866138929014222510012568910795199620239892607508745680937663918323980873539663619753686509037205589690747905373706868452952897485173982735273197181889804870541772250432282530494920525047806629000487003967377522231542465836604729295174212921330054405003333332819448413065019577952944233847494349864009256978177848658041388202046418921846754899313047683951147421924493802626548642041065371214663424038938809220829043066980382647599788680649609771703728526941792449993580139820066866444291240249185652971248346975239738063405689216322647786564746927251043038759975411113759505839865415153628535751309957214831666687824275040971631129981397212842053878703070757334971324703793690957441461452295468941203384806662082664860276446586068731456225887509462136197421533704881507508865016042966684928399514839473781344154345308572405662251621306249660267254248726146376942647276829782107852753339260941664173715056098265096603673770698728556766273608633782980689476856405747194064733829445991950823340323918915006022623265841901393264369519236319498052735819639541186539381268925442093330102026775022706950638486921315466241585965176155447306004161603451477850326648354303769373713590983445620882985129952610880318753257695426300981987117357415861858342372130506101413191242108535820783205240651251244471842229833423058394531247826358196982235678980086130836508311472757976449492141945854392194931345511613635036706815520899245415697057902271709303893397587834957167055503739153644418701667935566013544263424990466560492336913556372663336965890948554083747237136554575069737646617675889396770973403178220990534544746862170924649551882774279663842877574764491556664384246906328589681873955138477902326707632377371741823068824705513550469823814110913081697618803048210283646442286357240981065575469062072933583300015741087354161562856974436368150236347183117334921324188641571578619576552363557127854108109035320728339562807716222183824174318050940454796340275154769228717741136464766215468872527622779772335619280669347234940378799914305569326414917091887032681111185106925211298882708470944592174576123839635131804776769531028337110121742680546990637628482964914265660306857982401367017984871622943351826859885926585075641825724347298090692094952638029677259156668709269084387910705681383148191500537253100522303035047191486936729732742765546690437565483215003671154936366656825276470034280744340219933933181453921360631390573598820459044821860123731174097904142895205804032984977978119926137235614290087716857901544339019201841244533250109375293750613008242562730515188904278652818983516329798118565190711650350523406242626696186933072784982180302854422622772407807796715361255265940420466907628784259528650864522627662396005075612255794297947112026975826396431210282493102713308814534578424304016274819669510794109306206134159938650554576972112156993146070449208606792922289909168947595786503614253663797102753006603172024906468944028634388330446341095414817795970011343963596332365389497815879865581166293682501635204976969859896219693043391015408263158894084779118963468736992285963504652226822329877031539018293865681051786712312901132156749379764086285027104402887182476688110605389690030823651073481230341811687208661325650998358506161084539060117807422843394690553729918535383988025919824904499007487219968302286604710476176647404756753580748367844181699422654235623727176294096663021251197660778220711960038914291925937818900433582609568455382958259280060764482622235818070525810584745834692703008803891423773651183759641960708695490144777244166220723455122296499796846269766205768339744823646490175995749383695075483454693955594250179813295157917376306769391681335515889654509151437643368915482706213441021094196918754544013548345586672109326005755971658529840080671029436342149425246882339600360354156741005977889059066124432910835563242056211970118958500635168380277078490877967922296822127333506142553440486038856417611827884625959165355461208710392073902056146477383586125450251161982622969756574361038227856092331512283604385839002969789891163107026375548820989573852198617039115872027257890548479062553228111542932176972164877930613574693130323456017339488986694680477735499367744758182018131379643834031454988198255099285719336148474306939214435143304562208112972121683042331399214227189390685695467779794045339268127554561854150827007758496193510068882245040677534080853314471793027968763818659100160618440479180933455905152442265227539155552137190717656242684715140514315382862326719382318804474991312659093735414234427491031965898707823599829153841892663075119355213544506106146836847604489561957049309112338117156191229820859219304831738407065316250893063888194403931038827177995026599648020936699167146909631692686963477186303888227942319390491010470248667531333069716693948663493877860296305811119909596227998911164973260377876906375524925457128283421759988052993523705391597240028775176895139122837340976865600134611020512059139331187398646623238614379390131573371409302210648699906782610874718190125658981304806054769898381523415299879998949034798573200511185035725326125149063743304698758549529086762342964123037717248859503719245583048066162826603167033302651569859683939569279303926673610861284251570974200044007418835368910463596141434934829790930282623183527794410395429883961517912440418295085911117573814421658240471034466231212193876216542903252019172937306146427549922081544609366957349504310414285976442652570987313467683487487700017069616911195075032483262480458501175509605606490177897497000023786472121985404826600526752862311052629052442256760838095680362442768643953683591846784683472983003528460983760766691434000207118318334392836978370262191339368856405567626398705234381257157304378979725797530228761557264963054620177594012373150251622879867205665701850341347973848290920090270454836559482768310273524833974859007509892522642077085843875930473435956684243428399817722365371195856590972979725910392986974678675923200902196200250950450447643290114710737433277306596605857268115680647542724593619254408185439150877244965626686102688884377775689941910345126577466972739890465321232184509464906034135124668046999289813093922651152073372922414972626665545108244466072521603803505277644352547183300497985284019400157785482993720109322434179491356548082013005280188882406318356946381163665900179499901313309078839161359351889292782069666174557380391848292016765962841251329073634708858640595469812332950481864925780684146606661153391179664450629971931354514259905364212701958168189392897650385568988989790073392902160678344785531021848685439008364322889873278483260807854020720277144999795869014263858450018517262885606316501537655666326716615172214990062339334432047755726671110911284851202095143346843075460727569330989943193769107453853764217084836183560022860615874608384975254923053785656846488732570291594024166802462306731822287996651684689423807068317752320207936350161976679140056327882570604802567733571546854201192973573239049169936843648820133451051012776203697192049859080034038246860548239835849321690197025295839356962241762717817382840653327523522095739385905801541317899523100342333995594730285015301950560669818750754291634834023418165447584476272241204806775273871428947605830987537504330186254374662407823548332342947872622851838185378349280057790458168797163885480618554995463546697950735478780383102649610112115782423485592612598466815581244659313671648756899633788393418651524635390280112514400487518094027695414864072465810394571158483791125434490920195411158489254911137539750760186501935914882587432547117527648885969279473332415265313215648024616626527453605373530062253064060964498372937660611433487942721222956807657744070522652318650555033987991530690285962557506893377109389153070213352625094674370016567323240759886863652508785834770109039424148337774609873304864528723117938017284036368171646575180237959015502529126628631512247989039040843616681425110425946009113222729811847968373323551521765619884003731641290927094806151909785448901856183860645335179638169636375502972630987722621840608443341159021436834090364734873756452169023035211798823019067034988439203245632930834667104343493100387390445455881295148866920513842063832442471454840021127696327372613783488392846834142463371890546479863091324598250215224341549910099673434742870788040851949375852057521928688602444197412454414317573006869886978379052461154137607430252439807268380014026894884708731225375751706470214951372681070401628790712063195562950463351725614338598588127426985674605796784623328675677748437641028564375948656236929582233623773578633838274358125035253900459840098736434597877562096972383715208812015134262695452768745801820483960600505202655317188969219404082789826117177902531224461137843359437392249919998247758058240343998225384365869660864114412937386197496262214068672196867356258059177917473816682759081320016578838883553060819014912555108790046013105380938823285920613120836819269404000935220804777334156754828474381856815402918471885454152859587496497988619302233397239794909683176540148962941041983712986324537013416033234447074936422308067501604368112276469414733843989437194828427906158577148480824916527200896342630146727717740630930597166922651910123117698888934134129500114420442581742021522415222371019521491160264849288920496250862599336782563322070187974398398440841250512870366585037287909063228893162966829556981773471560625935640890784755968710463015892042332736446656521685678054948650690622060483344684469992525030085068054648272356604653976805737787791247421600988432950359239739252256051230775163616487774508344827896201501173426452686776731401101091129346711056495786558751996346927810118164754392360657318179885035675989803615456194984310574018486540049442850775462868575913336898337995114449686975762455859257109595004895448425616175613731627712630828199966403535925853391410468409816630400259912607700874673131758561431672234322850801170583171719569661563685822893147729241576806240003709026032639557327715114816602533664536864313358607593154760467844176465816313554810884240474880191878879706202980785528366012993633818230418133596181842606966311643213510538913592078710602077742399504939940476443271603860244398176236456959744616372316312433259189677079946455820607446794149877673435042513876915366354998634992215462295432485579850660038600800713492261424949308584439720936519492076104287374977710921044434395735689371564833553454242562477126022019802985014139876812310959348817208519471038012375843493208341951830042961498747804734877143323301053620905775624365487089214675941736528716446600561412836456524350206776281311480961155880296795777162082689943888909230657302461539203684075634743630845834071409805421226605479841767564524216548899726967060953536509738925635486240365848412506264419815578549658794189243424862471176966309979751328316976097954335305839862540091759550264743510397589238705471647297033939809431133360802584147837273705748886934034088671726062500570181454664736726985941968682636960303572524163412816012442388020868232706889468429713773618936491835876221398797147387785974925394583296698332761395963313460174535932436391546396288101066986383438200792318944745699974475957278148932219109437913268057361112877271840027554291076121192572731555377277775526613867813400606617492706489718414648886211303865140400909451086303682751655527137642543166883452699239357886643917939166620541118509334329652148970354235004944898919041334995443273097436047090775139011663869892857899371474865569252080520241472983397038624619905763312509762666964697293008239204422888372603373688879859312922930893678791212564215895539997981789245698727990904692735783792794702818476340101455262101570843376259086332450800732585866958721596243210506044461974711259386593952177587870577131277208519677030171245550244862414286162849077768635736329490249532228119369745830964107441079900792274384213413051189575513666596527408885044451125631670308085916502837323312754504612351391366687288479784345706554209028311261659324227250400149152242225172239611428466883268167628245051938982143548875859861474776051162263668357043841876864630821335936962698729082849194551626405715099836065252475602493590976712023505136023939980922684371822055999980211042815079106785173947728737828846224225713423987300230503808993571071483449618292929396982570467343889036945867265969149971258096968893226768213605917921344485512287240537064623429367058868811525967778533361407508389878017829183068317892562651298676856509802678168390537551749271518674231701141944415906206576904625734438402072346858961686156366799691493721670102685494890094607319579756118757814835195509991170941837276132167493295281976456157625923945303404806380195456590264878579695034157740081787283261171231964797506226260665225891280361892057105579918962527601305502812538935374256743751516030893914809750868151661280141393055447289081284490928819350113107242432652483355230566642601293932711507902319303744443258311106669729438479028385433232584534111485907299769640050292547526393992421109322402810724623895746512778971717787399912386845534826981685870264823865466142505087962547861151818153574282112924349686634144648760859050645589745700486929493391345841691005995304399209976653359281854280863766292417757980835751055886104047596207923886633745001325607265418719088519011785446595177514101877956962746688372882937152731947573465320094343300662269031952753022170395639665882378216709567270062896867591265675872373468382614648616732053210194158822727108137893385921048504612677749913446117466833173140118791875228902693534924850823703722753776937424517500911028857771656973844063258782798139668979765734033280057848835135578391730167650366490927498490902395121906823781018437793401520572186833854098564444109068322147909475434080391003486105328467502816347340882519675127823297238325387770239255210998460353898844209092422506252877463296969444487157629274116289232755485653800328101050682618936393621348601767670551439071326347799893836649018497252118232877175150161144758951983637983596690708376184125875121340801685770616870397864415491049208597967936048367795875984201086863870195104607412876443679945178982313235012454731192619435917896025113718962636859704664088252407026586388722868681571347668773080992157512146339923223829261331515670525457535451331923924528186098188625016638383594850043283612259675938416694758724412403682930879954534009359834668330112759000314936253628733182765509276841536405833373850092670767644933694705276656394895227505521279794134439027328201455825183486104054607892817265837393353765071347057640058702753848870882022506338503294700402852068857198500559949759723485521326151882621045786596194052282596721505381404132881933111728706956619341887289513467573820217392696533080040707260718679694390280450663738592339576556327159370928621699081771252791661251161249403891016021980513246677584434167101059333420931156494809391571517958904415268116169512663988379939375212124030237844099857902879277461881739939688311002034588882349478221609326943788566210862081438673427194536717445893565168947202194529566926893353353646077239345463446388691584119126399106200847170881232686214392651194529537419812204381453195514067986283008654770958174257954671044092933272678567144336130690977773499056110672776808788486591673816357359928371285106253792273013013047466449634735293982304626927163158195528283840132501045171661943614678757869066626709317305296417082011601075191114185144377759281671602999024401489158560357784460792809073622341410904707875922127281491885221335694141427408591133605739815572326183710985385752156885102637338944617154673849091392819032849171590450321833767311240870540305480341924645847119034064905055490539676041802577473480499948350359471779298267831670901483359277644852649790784929655866037614944715891019044351047852224127883994178148288139826284407825268534993311667796914236627817965091223865920348469968577130983695694278784392086566412036742442119196359909642125650570376744494096257368747576880898254521393463405969406270372850874718069103004364920277904299052704923656115175165313352125862591401036317125526746341376066165019325038358653901956845330375898948463988520282200950655638259684419417538626960690953401394259010738869341931159346789560443525836717397561022757197421462378358838304301106211591541890961707235163958164269158394445732849265833961100601848035487609519623842484277390808752514473017813028464584285838460428048637486669962866468555222023956188758733451592371533224866070915408978187915337245101711436447335857365820026182288019226916114570017834387862000862490449646888430519351350225952875858134245545963520889821842542722331785672901279627966689529649157319324053721077744554678415701869783049583248920389557713490059536554317059169965967325247394726872507225504051701416149324281263027089584840231192467518116928946692439379245959359717669715341618893520973484382286229759100807147485306668370039867040915159204575315845480590774408006742375949937657291658974421692526727615118683525201648825175175297565419098167613815968133539294689620042958574148839829207397239709852927995640540425744069685976102526497813068592880156490251857993356208987550497651483405446355029466896523844479936075213147441126904959429917856286891821360072810227824018176688073141491667080732299026338595642191491790733543758202626579473090928118562792573772271935460085679426633447401742028390569896868071661027951957068642500850872182863271489145800536640758733564661064808849350709352806642486818855554790260580617057413166709995120603428721531869141165828908739194481135972562833751609149215390039258514591205600244327783654233693133500225147262694735257338774537484433740850739835441809811198555812845685712530294359197157962409768572765367961458746589352657566506844943089568534335521423360110297965907368591464388991913226913329351261211825883998162025320068797614861065367684066693170618602179862016231395119890271669018768947327657528724212244473403382166184875371740055397691861830211192644410469048153790131362263683213296961002311061468397783678162888393805692279144974085316408783998662049041822105215535956004984683647851935888285426546205129873409081861445332416738091797880846372398419865886326392896764095232819634193073181164131504315591355743221922852954835933055322093259371424232947070448000797511167256076036625633319790517839039256305672483292673568933344901221047293697434989225320887820051079746958469923031931836900085883259335898480737015417010175248324858423426644529241647354083881259636250389956486428382044746166354878026401326036596299228409696198797528567704309723083884754247805621060400090953236172046125039642665811629109040368898148057199432439713434716137234587298839052458558091923241201026637402784810429918288069122320257489875398993973103151186225463536977265565404626046951043225079868024927116072959176680407039865570749137116429964965128683941034995818357102070351092069962344164199129865360097449109122423013323818755174279505354003921866651849198651253632965801512469595784880711536120073240320167129815900734619155465874540879781017858673865788162493052002473568266065077462821665500549412543716710332348263250355062186718611808708869493811356542580017803806384202219567513407647093084688865656968608648692200409299287650118689754472420753112176902166147035150711036099195244093414850066183354745619333730929508136993711647516812037627597066120437684844667173331562856820082258457710867942133532022652308092991730669365589997559309400142741219795273036807026696266493241333769664122181838158337189835832194051875546122164124303728586293876010746747438595079552095264045653940211314837144437573139265973658542623766026649407809036537338151860264063578947484919983437782889869515670762703629559270363643182344435784816581383367627932113484807545157134984555700303118938821392261101281071723145043406475167895903545849310539173063107547053439788847328339198342634172304928385856402570987643963565972129374356770952420977759959302729432352151739445986947611408092009877281329096243919630872975094340395099575113530427697329323203730741337928125692655876331129800067159612330293801190077064901366969940232473014871175681017330006237484310751437948715578096063001294866884102056595549670504932940496121626737934472124506489947811384900462946347402335645348760827285295277324532183561986149557144454217877840639685909212746350273306184144082306795982260759567992192692251957686113282457429066942297525921358243562387601168920595227175197428309113178569347757711631811993531288491872510766564381641111131408469929422793266594364197495805456042033663719118855686425160717863761308192820060874202506006592914582822380072163675821973787392925828078971578625361550446893890609342487112260418198617479006511937324835414275641994218455597495004340268147143378344531009871499297086754262111915977206445333216704127340652801838175136590593738832290138632625622290884995237190312760997426187719959113920214973339752559474327020912501691162430461638395849917658420264606318800927720232654978164835903133851163817388484660682534993863416354600347206782643196216349049339018797314631978969795898507458155687254942465553968261036290309021847487726952349400953771977593321161439662638553001041643063038875485054144370306716360344772471556588431000501370364809726902170092144257251683217582223556326728893995524509424531673200106683762773093978582846626679416462447332286313913687032711154242175289145261032255017501982402370207181250210506106692856485600005980767758038223732113977998691562921049018672052363744255085418871291508042414885338105147851064219393141874513511252145911512163495655874066773792453746984357275994627511332199759201746959844190524253539793383188242147345609757779757827443133556874679014630534715415173836881391797886368698472361720979436549270937801404615623557949988485102408438845320387723259915508144995001113827017694599308065074461768976502177044915414818605623448162009009093307269535854077998535113011824506803411894898629971762441361991077285271193947287878900207613576745905032295825989603492366092397940481673451719197254809766829254161777573608948938126126965826283215550242165710448319583214500185193850856947965979022419745322410331299782419577134750924526037975719195980387248495397161568778092493986712296879989204464655398253161839991876970330688278432166351002583204133703844109435688286762461019133568122490066233651570991951106663627865489400134181767299264878050067369667993057083944314690033260208532063601018053814931757944045795840277502219265184848811438029219124848202979329521204233215488597805640620294654611716149357747889468573908806435283586000031977842758061570057103277008529151215695421908430177403080800578518099412166805980674745431202777872000089657586910289895965371278816738312213443390240469620380585662887516523754917285863808261999128680355839326043636096983935902557060080346610985480152492040731818954701104784312362931169827949290192995934752660583319888443451025163439623603998971013731473710167595803797765413120838784667319172232755694673237896921001122714119308755579470295358242650038604101584816179539531304567686978792899062988928017679731679005815587699778308802059050624811334826092511228360116817910542981386719317663552731148613648659531594330462425797424805831937605206083812649401963113238555262847414015119836100270575127737213127829712819892371093585861661565654824898454827747591054527689354985077290045739801802639115400905332142930508654188040905878773720970474466615239666141592359371830565486510998428339962317610083738852617457279623480437803765672825691169723878175058153168804698102546253015216526510603246596678807050726363942389300577649910691522618262241576966422992545595702314282034726429920249676779081018357417793415336975498667730583799087237924539913640383229532155345103959719581883243795540248404508893132703109731583384231685345993445884146519059891774100556246008746897886211661642132932500144337943338103421771371427905967284214672034080164975293099929134030579880263307806541450288698824995038842883809995894981663155785406392824263255290803343451135055125129263477055830792172200964193534815280508934921792563443556134015332052974952297616964877589106383742123532791774250219882334818837621530512949864588335971396051298476676233008518777432651376753847977866515977545839892091547443218172003989505078132769181888697112434638373888512255534725379919343128515555340381995307476355550813760306898674507210621396137116071142800429243448152910756028012492462066849984029568456487701167722992283667605619703634916928289751075384703741820250359410687730191821649429746785027727117171348099009107761640377025953347640609421523767757882800813536146908030645281935787126055263087481924039923466240448213106520779611710643208537867985908555733284806293315890056366981507714792649115941195743370110555342440714567694754447992362993557364125673875633907610352370595746427360668614143619524320125428881288256040193365718501207107777348338474712320669313076420016197433010695216215342634864589076651680560757190341225019970773620272404141747447116516368329153083137411308479683623062828678267566341441743183771196897722138242044904782326612907494788525001962627520446323648568902955646796962549465840844100919506452311856401373168744662598002403645534851685511292827851243181018119076915025304184634431575050208316622810017590383949871343489022000068641935231313290068515122058600460996128158851871186124681845106303860239582172260901680583400551689526324113297666183879694298828335884899235713628471651417175269562653942460150777769401242167497738804864491541753171864475170985271415941802304688373222266965379735507533639009268726152774371736648527788482388767143703441425490237916114971493804009227016097597589903527686530077855951043024380516900039287373775042456666354450070523363375340971811307974466837068277690604534347678575185186908589945902498253760763978865427918412502292442694323561662821228590662875539737246982905396788417607573052805716396458631268137951706270286166075127778799582205115796861665861233817742573721763278668250081154002875220594373306270482737157531191638694575293130898412411814962895294742641711306856613301796763294641044041212600272927523864178309853672258555742117259439818306724297000426962324945891522151859835011022308659401623844125672881884925429779153442430306228620323363563782241242682007783850284972356398489672201281740675567709533419074616620076634512392276478739086691895306800194906936868961216367344639194379602452362463377293138711021886336343252616057601533661229871220066455597619349830766950000175961083154218213632132153138496124532461032555025691677996975220025073910468661809966611210393313820895441532526792848266923507367163709599324984285828273312448873421151254688818638298459591333134945504458518629311579380540081642076067002067732363969791084175919752968137491757289388071868333808933998175399953270833280972360070672749770580132600582442797828202115765419346121352810674346914352806965951101511111250298591638741830926106776212017287293025807829060586627879626162019173175931814568691748538896978658673102584729421671853258259289454859103508864581752785418451029803503146180224947414761380143339769081640926665198695414561179266241542329194620782986607552461824187132161943331839247434041011338660673534496689258196982275638090717859784545864447802058472920130461858861187265985445610275602196194484517038523137272474261176905732111589990231414693592112658234214448259783846193905521606739899830752665517821183748348982527070479617444489382624333434446721105247051724672128499832325216700628725760182328642244887084457633199870841544843748265190547887309302098726512497519125699807000605347864029146054763026529713893172229125828399864439029065854247948238151710170386679355246099360961661413957914934580463598628728023502292264942547848537061944866956906992199410060754817101420822212813125348671368466355675688850970247073934344101837661355106863263932981539905839806715448087973793639854456168669376701265568035924131540756467899879298671638649793854453527102557673738490425552856026865702440407582203178227285470559484029159348363858731203606582671197887832436271116930106044935247514827808456030473691209097127661374590434322349712930813763745037974554300815420530336241559837556239728894062948928884946408583575638982914195231180550968476651857406853991138504767645557273024548422160054400038321945148802028137801750953546412989020882605813128474074728065781474658831897877814585773946124567955451285411820578104485774459844111356036968609150901719305608077390837934067270167559541905077861852458454548182978948559162519743207758995403333120144234555920368932700609585761135917642325825138493104307614437059249780463629468701053768282102082026912351890736442456984220200571368505075575669123679039502293115039277623442649406287334724543119855256025250935471648954541140424482055008906767482816616501144751784101754636887959504696398777509193673791596978313651891668791891331423118478384490738293038789281949577747283739846821363591131921486757328468998359143160577386073840378399097149408020216201073694174969175859499854294235913322108293979198294779159236035736344638672211404226770022334207967942279790903981945922024744666135342753335965533990307011001601239546196054550358234562367463313384503665752362733903036148903672250593077920334243735134965623450453355909207238561492119631294835398496090587914802361398591794224309585328848692757058290503665643920307104349322918970466260925873969444108977478441853600657996832489624165574907954090944166917057178255678129870326751157585934507708577757690256106104371830386970674176881084440849200613505468877061571398714613696177071378878330783679993592602133278212388663445952150549507034829830301419635454839571720388539798170725528014832953980512021914989892966513803645261189441298823243155658759176566906365540327044603531273948682405325143090549957902743494069143655600291534743696784561503074568336680449329573989269178357411388936465855913459460113522324968220058071727452658248145903318111107755321459036046901902441011964003515789991146930555062763190464447999119186788729789150733443034234197961370218977137136881865807107872392837396702747710943872519080871199490055574233127328697102685184790642239312609723039850986962899529524861164164327818121214821791916892362390043578639405975956879741348345296883063552020095534159813192356217102365513239490276709441325472039175590650604148787772129985704970882915171108249458342056103994467636161986089298686824308511394275415708305937465825654384786547433777033582103217325043624269180446818563692577554325286367311574036150975945554173565302248816431775212302222757767168439407763230158615824642256335754159136936084780548609041991784490246511252638560875021943581569092536176401861708654713162867134593474061869448448169919414142925319586693246328551750848818643655075614289865981287510711212413457675903861866635219191125858923942756929825122947080571660153150661854894561600472641616155285693765199486498348693109023918665228272893671620303514426497701284468024240247218740467325197162207207983312965925929661994670223345352935804664432525667674580751054202361352246336770085969023825909214442675324119119101332833716430426976968386283994718708886267278563285543220255015062329447700243630818557611410760017832144022427688414724077733433708642152431488179286987205179568780065274464409347804954756579400231695622441671318040543645018451494974312059696717857406625892032853663455703716595650231655429198072118116523605252813926375577493397446695594709979414660525878683619392074966345895023519932840335582793888399568178230302195814822129609336154676679980474054237479930990543732574452892097070581350206991767891952408628175394195432809150653424002257678225398738615056538399252964776084290276042393378447140249794809648787425955001497362592809020702804358693761969651334444995616966527487670748975072940569213565928673236737933860210719352535883176624740366347043863673354303783588152465625993954825774294146683789964072824169899186106160800045012662892710117940371587123145917423573336735410817232834424591322455160812804411798458336458451432583636205479169184514913195232278727611405077000187254430912424514451670865498298613305870267779097840957508681243827288383323867803491133238426827690918259688402442421242153645189761423025922989545461268637719571336730771642308223138878662024805668942384976792392403058858966343226225626762860933678345933995165416567501565725983895718669974696940937097472336035353162347639077420768333228952715591057760246242452890511673937743796805369645889325628227559979976777204409779389590851433592227041681233140246296139805243632968300340044846240008083944419913641616132089572924579749528280806895042232378001518807859882901706503781625116532424901386479419068814370064909744305301603503383964014920970920322383835889456996364842396557523682016249190338908028767676622935640457955925805592202790821487500778190701402626754051212133851918465840055746207958327216028334301308487368603517490162054987148975686579251724290512234405858053738220679571856946594615306614300126040966828187328720053322155216330944879214803843777430276800603638988096656005752987218337052789803945878159480803434528750462670129937273411333601617680771606756817176319082109242079508894373433487400648363296845508033007818348037176340831500565237912430888158522538599163769132308150187908324363399341265319925632009764914144708907386131387918473115656415615782742342483485600244619399303342446905813438530816553443277138207095899416674171923380450551071462421076010319805794640388482847759178988429810941405357577693132010191535754512609472670447676605917797337585566331197226385217308372429764650890771392605714940604114978380440692225322251002875582782511271747012332009533362141286600898190523088819852663433701014961667249921776893743088449201799083304308985324147854329724497718408741092417554370513598028456597258198543912394504280228728592631524651058482589076728301629634737831981928297365079256609053842273637292717945650784338967831821994676975799437418535256837126426885349299589293098997199160000504996889972438613726959819249593118042106975833371798946997376817042622027313659970130943514041721113060003415603224319735544386518757550373152408632935105250869689195746284740510165718814414649922292422101093847554721484250937359767928470513716652219227675863730405588025546331368461719744355716517714106878638214445408569255787130459584442986617419751302341779913975632076004655387044746071477583693801848638019943376052186248584459773464334889485817288277529295789667234370423752357472191492743719104572839462346960042938827551491797713756368640266396305403268475319563176166874049360788372784669235027371692973479082671682537639337199830739922683128744174837301684197586860459959511345109551601861046987778685586682958842436996021453856802092115820116421698181186002754721370512221072962567144678782189127530451049024414464416819508433883098665225190963931235994068714309907229703068439524111876472342057172770101657848504674892722266169982216814014820608344693362878868534377111562256995831369431651400847666562802536635595811431331198791420415462255877131144092348513382679730039665161704845009324322935082206287411672195772264294040588922773405520474971447365799300102528518195815690854325948417860102688621538797199819609506098619916602852288265894093583057321580271093054530578981100874429162711305313740026467175149798208851244349996999903696744109058979507753148047359712630072445435848755172606773766764825208757258117865719876607787023983144089970663131175516863474770057591175329346517374175543048429444142480696771594046940522324505462785836782856049489734320928502802200826941616841454618610035169334804176836032221302394329674721414860287178909989043654659801127426722727929893523580575854236258680589693717161375786352543310622064053720460639705579551253824630813425736955658368114528782866133176696494479244004496848902990661956287189900935824645661634088354504934682941434777030939292356736825482347371686041963702754012078431436976216148694200228911348586314289306630356273704702688052497352386998367075646442279292125120500765763993157511006328818214043864576870686203393464085923517662570914846242072224841693490548327763247214969974480401181163891172965492174901391068014124162872534758515769250257473737419036949534389690919381322829771896247373189350655515820853634971252869830675461251872069164380836251592581226903072530058101525036634536867606383650584465450860541416996332429275106494854362186264783605696968091594925601939211091630851356362141204610863276857623997490013749965320335566076228800904562711429104926209721932775720368996594719564392789774736718592942503577827151227226661772128134482508551737772295868360178615322615178361856380351373789959565462345125505618674258579128371260369004697270194009463554412376051781789042648450298039950719614242633145121440074733475300235343340779993130886893054379305997892852762702395849676385777580203629626011628295238244982082517374415029602183674505677103366631487685404344255562724960621842051084834290186095111895899905220755269776528334067765289382758242750056780364914626126771708549318812294274629778636898217709864437277257021257918552538325158444533696368402766494839546528620915111634684995984671553569816137611630197597465447460355918517444259738672583543522083583175366256330607420930475921955996073765577751167402789094177140674250357498492368513611258520033688077675469905229095156070763440655802659917817495530272976304233402141018178293232112606406932347960603352140716524773479753319438640617060185715085081020710501949661806616083787888700173757593958252892452887494204077249139493010938003659329215677848945076583511301526216174128391975757022953887092851767849130649826199155005239631327554037987538919365554421860946432402571233353766793302681604657853279118104920941969288510530009307483608956748139585588337697881268356054765530594721163567285303420485610615392726438713598613644333706301469556372880224787936972596461196939179342347362749140859229404290342936371082341862158158864366379794146970537951430854880910546541234398105080118964493239155054599590823862303107731894484817312933424864213711674716308823698488625963343501553497402310135572858634224291058093126203939297935299696664559965636570932122635371452612700605494309974479219088375847719097342177093912450996506427048823591837899747068919176071556278930603929833916896929546264864506579588664123535793808235127666107671444432522701116685048837758404408133088204464351614149164764368246820915977281689206312677753288858846641351454818686055626492577767021760066298303974660520207616595344726844143146809447129077932845691521321866541374886971628481477629562652892842625241339797201038890133209098515285585279026154183167016712946987762606974063472813625346530786921827062075234211827442940567162868972289524076204618862843347578248154829469943508384129981349615884553944660029722341644841371410607279352868384762978718382429082507529581400724638170772760871436314615394081914009472206699196417206368164137606589186897218489074800198040295111083984230186577464647504272327441505259062398756249484976183554465673835110792200061990181425724816133012759436656748241810059979762030214910037479387978380186497963609860484010842871615100598011622543292585677696525266003030457756388339460406732359831046329263623009339189303039250729484235477922679564214584315344107436976794037384633729133538834743937217833295670581973027852374220140839744133033556817386190924127940084627660170520051187875995960003518800036659453959040604742547962433420998019093543615852070933067791960484383883136980080360964363273952152282864242308178213781302881385946545573082424759910388967161186236882790820480716397432965915393736906596352013763454815963194990689345795569916538958009232866981856404441775778755421775541794800484896045018504078742069125933324310757266037359820104007444607619038574694305734372896642080049225601417749464218737796061516273386695872449037253606769745071343206791559637467784043402340651386352433375622381462563579294525331006842565061355181982970790719313292522994976510761726338948256878873526297324425704353340922855783998888981575598427549870718027872641083131671540090504706922406180801333724751545167770599033687254618667696837741334436681807018944114617661281121899770583221167844068450311606029731178277087472665493682923523869720947682064019531877048769603972188881640760303329830222389794473600126904298986008940815137649044915567009642355650879504425096448723388472558654662005322021133870309956346982938753195934920883165516351912743878051264021704632517335965224232288610453605040536389693754524037789395628587539820146256722847051451239056666542761659257666585490568867576659962001948041907109284039254339432329388920151980726300089769054492185776994913305103777902939459279649310966448836802294881522174295070621695297754901295339535984488825128126455201899304137606667994423797944055509455515806079881966952697900569353381523855690884989282233840071646076655879327740047630331364536796693692321074544380256930318477276061137625921638666355670272633152360466380079171281813216302868256266495704231880536954257207164316426885033363012152706862495277914572251313108220666821206127327408209142159563379285636767000495959846713668803888607573855155183703955043070679276802641936435472219038969493336672555902618354289503837259504526443307086810635845300098306930204696075448800743128860110689867026021340388279825507091903456996648857704251116983954433968678267059649837687612687185930113997849536018608471307675011750829782611859210323036987824168738118606496696036499643420379021242681488705041278881593780334768988011455769723582393873685695703243579242401622248820693698476829877428709481314149747234359925602747435192053785772719307928396120698739695785580814947283224559981317992479186359225301340699116180574855613181674838868818089813242149568813298417170103048341079873652387975815620032087924800203021229669047146639789684666298357590976211483867356518610925892147319885555905953101615007567798381362125979110345242967268154888899022924220146717625360019973170731639489937102283778880730364166287351605472173723021020656609531734692906579949937506128770728776796991198939101340563866710275970285098730975188860509448862295889177688983675886223008345081950019805488502969749022029350128210496510175870392960009094190536773005566025779493346154205576144076409304871957403249623029504485767444141465397050455394566702716386642409296737955966322133588742620914117547198642870528490715492259870446784382068652679450394592452976838412946153742984477062002353866391256640225712940109757090316778856408894245004424755018265376252351588998785917560988835176775344656476963534023245200818373708748533427851832395479170902065947035263133946864989556422553072407330157872235307589359751698869564408744720829809371235870481540775171937211049051645142350995925437691101675280609734350676540445601199319622895200017965355103818551710293467809849981520675372717306432532299203897108435863349780396420433507098772441256171740144028471439333481961673714502194955693139710635888625164469739678816681554034556188837642247857619566531404857202873148393354798796253920000666058433632618212469256634395915184189572857361465700063603449647688594320122313495865941758724490241576793428435509575272139624245779433752832797882834904950579153678281645461101497949329994715098967295088770526606744621686773962441130280837494741852298269968705922313181089321240032537602916744303844330450685544104936981849625011406530060749975555815203147808365651266941996120667299717729437086193332649025010207425995522043043333928554102672983098703166416634532357628908339451935726269595368849425652869646153932971961094633350610812168370266987634037701680441384064365873435987376791434707463511583182560674774472033124680312768379037264602143397852983848770860842811532933539756563858404164074737760052443983937001913964110421269812550667369530709297056936566140034537889540829949567610936372437929331308283478940521594390454179136846233752776149082529184616728527831770969996190902921968426069219290497185192750067591576479523525040924908998758197151219132266365225991176501487555633980824171851230696697762321189588944745545452364002436605687424663133965266375765435446424600348493952149856563290690781496094174737871536526677269577754344246833752691652444992769503766718046486154048414991624255573409034032539853650734632873747689155344094007037585241649909041041146445793271332154216184879199471451633444736953227736815306722490667025410292116727256167619628845017234210686376492470215916456055079365552123750347718092983296304071065541946412750060033923043096672177417674584007166282325503367625891571863614908585647426881947038262185455978739081126061850234570425505165975296336422737738431104792109447395971076664618059248894432850141117526137425297937230681593983708353216031549473576173553721089513181170388998067640304402601264523933025387789083872339068298397228944731602112647418183382668368334852041352531676141532579414272471535906790455108936660106102250155778111400016419936884393146827281850872854340196817741038592826896423757469911496986606930496307306607460676037899920476060016059803226957524032105242530496593012723015541218312735781910657873101169470831264132926310038344969370038744150849690882011265817567405204825749671845079614298927962924100687844193331081387611465863917632859441718820800197889145373148667666700800039823525273834846840075907408449777834023141964747983332463372279852724911174735582774090485642344711139956942354927699654975721374918279080784188003176222693022595994534856277727525433306116892291304626249970656715292725772890511481610132269668530526141595188128101220112248809988895905279005661055754512945643314695149527076727293180834562051635569934434939088225440321687199471517734032801569483989149553982214632031285428780608565263232962317609589729987570045873798941666447847237672098605901159322103623931261070746034272884532328812017740519678125912727486423634218381735005671406375015718376685933895282919313763060950322166195965220258674422476497212540891787683393630332045991609130955552283499365203508079039028333982267209806852261971428677063272468874175992611742043120932324352927347202803412183224951708910014948732664214690664838315844950546538610170526197127236502196083935538835706967397416097907086972732143874373230972719260947665142818746816092748619816465449825000665101426596719358849617912136192559573701077643610678225344054942863494905287741219186362512075480294471261086892498700950455935373931121037816093047895500353670109234454665083814188323163248373141817396911197233735574254937518508247023312811616535463874222801709976215064918077752609395046156966522067990621274313530906405393932160604619171874996174569210729656178514847811661333312270135234430441496044362475751236667011456047115450847613489834919943058282476874979884002948940291427240601622691582596901299817374087907785381859537696333972393921664265638682206403587290660499832923692867634170788283804430234992509042815527636601101590180007655291371405013008931634825311225176380540644909515383732761702658615163846037232238271022354766125610864051637078825329268063987877764871049392219680159268865091405617858602441920986797836985673406581747775704671209361436995539323202829765360300136162769397192539263937186744833067633459070169656177750891475345674874767200011491727725652295131160119936268635136765226252847853333239205252346137220736608753773009257794266866893763857127795534140666593982422477384662118444743543401662599860259660750676915734352704321384487162580569559204805662142645101997424616981169463899609230077156531829452899718720192569004372196616875514167216765283875177472862906055038048369220961839996824987206788568911997144563416604393803695563102899836354316637657002849885062682346491968467196690642201320192457265451403032479801434362203241063908542391137086439469187319246718900043291384551550186680647670072744203433299319873226105422185603989734933894372498750956015148627395200486083919966885300108046872424670643440171481865959005890289684594281329734287392345454154929078505549507972589520598893350498520842311833509747705164045482239998351839846192306836417429766341830783876311365221109900377232861065357376731147208651061946488342751253150476811484818390839108482713520906808765507887787248160445460320180092921062880183141050852188968419497956426028325377934481664085820984543662585186684624632566295887020307215350422224104351126295126425013690674164756652554101351987777030487998002106915670002630390775010037977085832055321582784902872370163563445175057701372411243973940947800797076658187627227842448864265475701188542512011974112847325230118087582605837750262129754381218191814607033871607815345245679957901863256877824524151401366923042232482710247514629829532949722207489861854768007575185776870424573710518658165882868155002641384477773266075665842897087549688590095951055711167049857320490551328454126688960635167025936629229044727358346517793130328264480389669714034575511801860855080342934388186971580264883105030208470611604724568070444056646524831600176904831167543623256296033223106932639959044391229223570597532214051359149565890230299119483280974165996806248088889414197984148091088708226428209110756909061638758418647834122656064106984125836867761792003887918173829147938173327051379119310525905314321925219974689894869393701405255671385918121517188262451429374775129866899581857711518698980888678003910553828468386971604720098328603637739232900403545387019342670991693748050207676073794494005941304415551627755019799237346370401336039797029376012796801254231222676236830036765721139730995320605216086460691737154989923699632662767059695136860355863707062610150964787216934178774310109585211028656211333168323312785692062219509176758736296236391920059865659258152309042774063439836353710595676745212416797018318926224043456795026744808886912275201843806580164106658226633269782688440997819867906870843044161372388483792560793915182728831479311992857675134523910999728440668400405380152254362254692721335501913827606826758186722435121636213449351250726493629480277762722873148435967308570133335685411636711193981258535098800169286350983941325207201974305208697057415750117405457737049182041399111795748281720220073302163033042378133697180289201500939411573835091653392141440995541718644950738346630408090541233659093785721336853489734542735523231761623602792240613868060452439298299932574513623093890658914539536695416916229220927456579699789489690385441171010223541699039354405407788179451256589368952292259943629850788771799219395842522793720597875569802785189897078314580209824563181068110854371867161459283577290108733248118905497240688442880326662139149075662170009462107593573819070997455576283358774605019937075726003978212317334511663233983894875687119236305761083003006426244308927453666334246361381218408818973599460970162827150490081515788530268632355086135890425365912797941831794349049207978263395798434516787972915115022642453697732252407433270185581365028176758130657021967280017294341953598027551161020656361478976426245168763391166403815956040871547533550603743067684896254934422707555879575708882070387766994307389926485890376796593405103125229928315057162574286542433763044213938779995626362605996860583220567133336716553269108143517518189120126320002473648446483350477785762780285470244769637661963300549563240904964493480639342459275428033959849708515060897280808323918197363842887296668363746259086874496509379049137873957532840467957603103543086500239116903380113009388703135557146405903557663413979064212124193935616173475115504806195727717545180182097397818694260539689307295333320013844092486364038990332244565184288456861526818314589617262667250796956540712769238816170706925181082049681914143700820401878674893415448837293247242694816789773153012615079404539529065823580597240190567494903316228816170496598779415712504198025432938825388849547544461960651422888193391511926472876024005204957881078478554304509506652338172109695599018033908055145918223912860244011249573235509286687915362789803015735857999525263795409213537426991806308724546050644365459618807810087928317829564144170408303481609197012695284896121325119873581710066900289432398422660561671286422433056231328214578226513993090691260207077137330688079278587304699488633752245703039305709987977510610277391142421011173207055743194513604065880065709748561027740496208725511255751374227321381889172170288851889720026233152185469307551190047357429640490744170891915360005346495322557086312976326999292653038144764978412476365535866459093094528650735621136524266523474743516595293851128151514357410664387567550491626766325336900689439463416021469288137990656020380582098327213088040090893953689504601422312252957250707770551081679695571741274780536515740319355440522931018697133935184590232357175686356268740296324910581599583038606173404769400502626620357465571212210850479658104329085463969415651408312710510348418827074204040337847084420556895493406226877005467206116669017622670967307576593105151583749590281805873461974774240154800048662936378034951398788431663699650194844484184407427588481681304863908170251804220297913559231677565068121010465004568404745460294626862676252214366895985916034841661536453847165734284976995919959753520497381878809572227210732787312673476445861052648519254919040293760068626971374193046843746168411161373140400094145166064848599078058285756205129272325718152494367400997930506416367774193987486523655891890646340893705828361281971581093626301277919064676835495625471940655675879748485450606187307185329317889886358866277109147914959737033692540094863846472119737804653053490903172238422516307403539552816950815948714405961032704790821937198819930748749649641336603260454434028023391674438850640330928710298337518779625070959609334368625203615248238225828215690967377852770403486701445610470749922151574520163761852614803777521627673100496017137648708606543782752755824654609195658111500717906972462138533591155807338245842553440808263711696285454305564355141206042019255158309576485064185248493378712050675151321968056953542280325256161449132215835031730671661290350996344894328493115284590235077958855657921691541616425785095722734512901386417074661255374724141032305137322709172382428911074211999692336107154023133955477505831643099302907877365029995897029470176777820956711493533221284861662690679767138897597345575269211091894741351940179415226464357356240222761949202679161161103748198290651524048468465128180794830493985265450007406958420027354640042915014311902336103683598790200047949913514042684373168460984418392895836011028270160994222810838803725160063987423942584023293663088614838795537215819488772122928803583031983533910570011080639580491443951955339918344652247171408265954390672922499342507032801861981580126829429142002257501390947828938155259631501882666570560736111262284953820968888291010764259781064124966545906970913021363130933119145917255655939706297689336529354073173973024974862051991926046951131615875643823951103373463660596875550949139744615375216132127227673890797521154212271326554316834624645143995847358439211042970355351571928102671174626210224320864986046530671069251335284058055468539085008364959952946308208686433613125534236231245394178215109103089457226369010001854128003540586181189626075211241199115581994879185889346435456461266590976620841143439573174264914301583634554338682184626246926079552298222146341872563413632957345119478504277811184930044076258168167589043483870147183437991557656204783873520214886794225673755501756352379846884260031225598709132783823688305990815764717298538467895858645034523234014842544083186151397508643302959728268004722044095978585462206769057141917510504748244714488502095245628081541317974483184404608501110723121163960866996597094553007326086348727052930298071339401425976636021664499812897692930189452495855939985777182795035442054206672372326458779331752641506352492211901774769670996398172079627662440780903499390937666648208413167761222583193707386576869204482852578529956549547071690915022819861967622067315339768019265624353290444503653783442524959743813324045457659461567469176034556994486915915431604097873667702500872577034447049004930225086151383461195306508487660368869367025986044556586814097970523477949272952413103781773671248101423589602382025012636046503731404125368285269106725091958139841403589205875437099242880399593741659833356855192869384795057109309564019726315003447874222616900144220640071053618079882854892599871886091684138940616180693206728511236576721652574765376309087742231516366642637433187694905472142386975220979344283679350554934223003376494331480247526661561129287049427085516481290906602807592169023367932610333941052114494079784130271132352332317694855270666691666282528278181515621970545391716399412352032093270508141032995088756267653417046164292775386242865798054492623697042218182562711832225547905759719199004675215054591493356140509232608871754300196986848471103688227494791272013770527788490163160152967257832340106706827290682611182660688704213441952367628695192767341006018243439017538377430538164025357486401910170426643222940337342695438940340021272016480478042279526835267908703072150878224797517244756395628614540577685835473072232196788326936770090528851667036359855470234728754520843992931501026053018576109987425936058334269021426460354462864919999536295939636508305108641671900261714408935108831684962416330543884572610625492965518134924471661964760471256276111768930367451100781178309008088660831606845923682312423708080348768775415313965666661640914952672976635705362124414757169032297525890681546889643540328858960889802966668163552210766247951262337903446430761328674616663953004616259409509570610941108385701010170717632690573659097237051849580228034181453937552584003615167665051707613329275745835585287716353284732929956229499604627573855794072276678219058642438784308769124992404907843722228483803549743811336451266546924298961619622488221993581237586725330344221289472069454267087456869299371316747583225402760956576255191163478220728371145642373201766932047167430409184911189684061684897448879420941891215720877455156065072782875737047911757691435117094616637285989195265334473453854390132645321897184661656364116715215794963992636703985980815255212560755485601330132296254741381539428454795229429016618206310376493702129827408349042494098122559982527770159994435243357290117226411476182601992973297748192551284951847377446212486061518633921207074740033835921757568076618693316819435782294282018114893328656290742966677777913607603487156332289870160308309429020312396343965155462333402620609367167155796465411147144229860957257498427759668669322097320429316454670256167102795844185704705741868502339563883954569963277919621186534579948975013992829223924400596339505707127549030074092392987527022563446115263618736808147591454535964306469229238069951733144986165982438913514504108507118363424604744191917975533095085725072784406690722251298162264474109214281046384150813529477399979613519352609454004744419157168355507217653428153232589676331113203212420486801367702492362692484320988028234610109647424280662904577534930810099257041586128243865185040740919084251633653283454176760291586721495035753558285604528045122108284602469885039306960567280196588464218065011397366708918137926848888899789640104818223289217696206329332913615408869096077207647671469163630775830979958108179740606089827941113122722184331232218375341684111197345065871584369654211272564250917427890990049460399368572933107463037439333800409417611443758470239309840590752796321857010222557372409395233081369684667044698403846061642524112475804102789162751774080755163836885033109526107902175015649246755063497532241945980069095100047590831442980113580553476577837014723297619754165761425875917238462269252307956260033283721662100945379482040099836488915737559846049479975151679982828799385665841934853302154436764483429178253846795450655765922806489062030467752520578133553208633814248076745389693191351628548563071100492817631354996150847335648047178283222537659537345215940362076506066810030791737462928553028836395944067598153137908749302067683442032327900406591043698889008881096575945809646552426439712355738096154712805897402906537287550223955575673910335002576569246674236062939477075606392574688741007024617327414642538146301469037381190692537577232299335517451310292036464043294789571793064469677711088314480248624738116550958078679230601071465433710802439866831906705128453903126294869501435341307619566894206015649244563908597009754282223947848049715815423512182960019839073653244105950113430855547080566802585388004204137867920215102294235597072619750987975268130384838653131812096290878889660305246760232574831214569295303439726128361925983715707760436463808974348407955659901951296610581881309914419214184791087408687130017056049524592378941878611276750625085989084627798762324413892411777617995556803016636405658364709339572276560618652748510628839890660808147028154292353648839167871993501293574491104437904749155041611254963179489668669656030642552094590490450737002195695815620329503761886757059040449960170429728930290476254814846734811239821851512540785203710806873958595519388568436354462462077959032012121558381216945533418075787805586400412871421046166341858255985788567519996104234785723588760080159069113718381788073840319746070006818284077415686467679239178066033456180475688466465621197362409995241946008810391342021273623834871710560408031687563541339212269148625905191805552533227132214534411792399755795013124606850521640520335577854659719806145107041141756817421452854582311006099707087571113269663358731487321296157550091213685310879036272868360636255989155085589026218351707641143993734978229385455867375542307475305656646979377397426442894358365732332476410171062127031813382079096117326204130396853370839779860687025908358992752193827738173691756124742401716922083501958602048760381538291363903980748985729334602526499694356816236403010374509459667098158249613324007275298978809011490473759524103699178504660291561589321670120218360429750157344392125921198203215593241936139120709150576401115799280185966410355467179315927522629649945603581108881259630477772251947077701886583318655525772645378355436924714893142384553591677564330476082620491983627607258536750916244026920953483819619910126285273497393304344955996774139581749471672435880186781785766186888483227465584719185626976867372746164553779161501576207432934856914130861491517919580816917031235523532817022216999693733964653127925204875254847837443990408217687684480053397985545288063942228874024905427822306563424168595318524781980571326400230315656286601519592387584001432194089498758102068854193978854820743690745475156982716206633910318595393222855637065840849555783797958531885132829488274279621621765299715188284649408182180004540535651484379328471498152648317756407568189457850173963478546458381332897497856220317211897596951606094342040173570339331366735918462555461889718775883460791610721367836771426705711672280189175612322347338952473231921267552279105049312405159014912489011633782962692577466191401041819012213763385646625959034342543624103109245804489707505587554013925455933786570078461657112185477571960776612611475447884951744857792861613421082737035479761704530966816702088823077944783611332789994312400264116409078044995478420044134164652135491378561923965482035625169338536110870507389453726230498886986177659515518111960582801071662309331757926443805930168066772199389024877096766312864126537645469716583276250669056661394884744627112544929810024857602744514384910221341129241841644578715552022646816159120767395422961714881277989348667289575806115187233228029709572372825268127423073996301856031922160944220339395083780445718218497591399470521670391455279754591290035960987951357679948186079915423880279601376450544518509338616607573787425596262211579810286475719076457901081927889825532563421798326512862284281027580439285646881698270530520677933602586350310492855962819893204881027261504420996951748131881545977185092801157862767591704736510056195615814491605201957345116888696443761104777828867211099520542930590187996228510549652503211313906911272572385575898433953825737227084590846365567754743995894286068022425488007508121849272813739252357660395266290076253252975819002018738173263732527360977270874810813044704629551200764900996477805336129558553192762382284416114045392311323716953845102890560669105182997762446269369639288017411289904097789953247952506669345164802338760780775342519959447971237633025909538132981498086168609504324957001112957970029418912429822518785406328755693710236218344401437754600072817995273520410463509370177836306914682367952990857915619919000379466969811800003773260519870738295561490231324594193126733940949323098350704499569180045298897763396423116421678727259620310719702613423571850597978008037504554489574571001914864745785569970619332519087211774708048020522429974875441633591932793502526613724381563648246705960017509614495347578989057110146200952843249658658423601713341231337435197862511517036714221558522666254949733050352402046952745946576987828688115094303238051032835515841686084979492583950063478766979331737528467893285789699236571197327358550888995479405786283555815010514991313639748770076410891410300454204023309393894321152216832993315151932085915238195258171602741007033957561561697231484456736760373407590249010359049821657458113782935278271899352539726865637419399619568704912491940691542983745559438179251062460915953334185255986533930165471535511126307233682195848017487151904014747562556322149277118787245178675402351487655799099351835338671849932673295761017205275507151039997486547762900672682207173447035151851800280752583998856925659350675935493802048622967372558031201956049140615826665489301856409386682266648182594248101285765244642153405098530153657291108644370771258631770777510683972304643435961957733906272382855182812356342791914981032619150554857342431239305689341501527667714664232620076958016832934389633427650073442210840267090268621642293748450971658344905958161690581420819208843810809342721406615807377563273107111964065989958605230328450446507959248902656665363031822158813099996473547139475511591432001772678177152677306283290147102183871270310829341215605881235773648649399335641445748139393935215542038707310817421957289988007962577265291616085072022358484152012334290412011844752796456671738745022503461221999257279373783489055637557724980069466243942565318772192988119321008632101065268934703886379797134712130361457298713392780859541688047522729959413615173458720358729113910521708112563850617532223811458524501006545712139136698720122131842056217245387249927571627213587057979176603867908249244794453929571940907549203864081816739106790293762696345465162934676495063810005449909244461116210752680153836654879148161293889821930588968225810468970395601371210458878553203098789534865854988690719997127657595041234922391047525458611952353013640337059039361080073110278086683989288816297602008621722375284000257919170953399284699461897382897774851559635165487875899082606866233346755648964534234264756037239283156023090135182927910316819168675018110156250872716167544886240993411615887872595370150422062898986297212239712589766488023412557659335718200541449278076053825518697677126217794333250135165922682833247589962311141817520930422830279223658670801843154041985553524608161539767157472338846168572400277064888325573886070484305498016087754616757319798787298298864176119866865902781090489784809353996026203870072399600250340698257287085364223509586635831438515397494243075843737692433462055884315071570427177110902086494034850356086744801102883631610670127111563569102092819165722347175306679677527743688078258869822502820966278582033556250691323728624608454294237212328815959969876584682599167374912794254790543494792691994209162054668171445027280375686224732534775327792359706013079012234931443363610460571252634937054745273188366248956294181860970664091215954029927658112029801985279937578264157061139179628602106017057317742776051767554706997964244729322504599758833129003408550782271402654000043257618084645307378656531298332249902498126024067068839360861972600658266774441409174232541722668246472153742947141638098024987109681750378717091997156853632844337915256277886983389996941399069655148292495245759592826477784595970223068223261470953569937919586123773303588576026264279552609463321710094570930261332102741236998951442781197251854201029189521584507152301669319288319087638967910913605397638503755388790169994812312249044799981900072813828727594043907513825240088257295701341242397998208482326613134038496411524554887728511168218736362670885470002892067774627336112357928195126588144080341423304579465946176892857858942609318559060473798219028881418422643942487347346722088946823226255535920278420794438688990333477560256109168092507799248167130092232445988798683654566039837718180228725435449774712078881097462042521177411240662365955176391880616674278134673657217387685108539460362432190037478861207859776554310544020402871348202856494673810175666033779605668953129634186939908365192914299219664010867106321713984399556855634729974132372828019696190742519989875846554319293942803368834105432791477565590905732693651887260751752707041296239321688140762898613970076753385541677533805910340655525165068612946937651323050606633004031423379752851224637431032039543603700400590713319516151298162779657859762290018895351534404777088847055719937579845789748831000097838773525345902444827891320858613237115174161959017241159309389633508113684329234874612391732011253576972369212622466650362080071608615330538415372829777883366739052104099807514836179599517428009981151092275369497412576298449834115696564121422588492306147509259239947680259687721286494814124067798147002005866219746588065934012065142552962528283646301331854652427403241660591129326372473167818759479940107099711163718061090400036088921222670259836897998260495580300928368050974743523926199815037287568708425090314736469535123211754570062916131182372794439510334300179856087132072292397865181349626644201877508511438576418818784554345187890439403368516391925038147454919627580473713434733388762788242942740489168107028507028881602824014067569818726035748772967486017515122266979886086716518675660899010802521472769060636736525945018458625303302113452594794073326161139410716519123297349341495979650686650276276884328890899273541397290482098986463608474785547987888262569486201574407578444004189412244314035438943825281873877931243918998205766932782008662145611158075188934961439871610165470163064085481534101359327196959889811985364874957186034059633640635180814357177954784726029383130358594300494052968520875117177912684107544429928524403611225081048587971085463545760313254662077194195789112033955122612190881502191307618965263144731744365184398757613184315973433252672073548375498939283174242581774631430236588253868897196270655131736561501913818720527440050642959486025108850856357611802190534795862258072191415964571343691446864108056071587318005530210640614081867333095378872489416595477085815734183781239632545697649297167224913128614250821574309696257079900751111928651810453614349510799106798610923584930966332648405559332111420900463991050526259013616747675991884616701023164480458163719167993941243896773280028375352519445159914856330458073609159201672518411924603796431529005013217843214448607810179486154345320678950434537498181720249244834746516425112264672506190301462055590508275027153328854245612055685072512033347686695822911156021990111933922255865693377375117780139750411948604335343388521180763021568025892063049060939624058440998612986739497323142778524077615032589932015891962811852174280576381623795178849011728842727687308595893394117505023712341368391955940492116303083507319323464633326609522159689862284805919164007639194156796703026065552881271257807157233000695374498222950632530405327909140485928240018363183888054618672372132721901630959283052223671579243039714310488062405385497143603131740229893236229587870201188757209310251879314947062226104686463293673041776440095358906877286527938065242583230172073813977830639115015347519451950973239943167137678478773978639134826773144729988601541498553141039948650904346109239907939913772104586966397283763533579805207440425299711746861734383905435390733119701480353215908975029196417648579516181891629770371872144532801634900932703714950314823659192281434756259725210829963162324371962834702355321479933105603137623708071065810916598549824062976625186350164078773165822117260156574488178026820250040812679361599047796320747336507723693200155406102138705619988513414318895988847039813162605277157647872321293378620119565007124398653595804228794645106815338693227850515805216647189278546954335452631882847355844491932391755931582854727693572972180582582833005258135509727159358514064873426801328466135247495925983807707082291742567978369278758375858975253797309802536771335795498381575296372634686494737763778549044280333476556294857622413595205199234774348594627149774444017156722530978784134098472238937380800821218181000046319229519396398580771372728765748296790841722813232056406884005739688648041305925418067647578947699499912294993073049655372042096366256254771002948621639810991344549520763705021710160004811645018056436982490137610573161568590486641989524618725102953014159112430407230385756111333523581181899125926235873564326714646178385212088814787346548378924820533064101363309142167754761919797279086315605143311813385414750342644084566413226647085611289166836422922072386649551868688982932045644860746056356844562300906153685915719080804938143088394488045327665795161016202836899493509269542567185981280159627924550047186854523608982409278040085152560331830159746262942962544507024895917967831354844232652509710439617745093825313180016223084276285833423842565939618247374237576162175756403262387764288216680634919430722181782661115872494006624362862977517807441594537208898718054925747649198329143784950670641141917593333733632186295664470782196602247775396979291872000950103261580778851351665672372861461914546886346322201769907761925975262748939750769611985805983896738268530174261635338307194591010940620036233535240316648341847558216742094476122066424556593259753398796251876810186159557930290773997849433756552965861617254466150947371915265951960282228586624013882556917477285320122255265650427372157598745094154760785751639214362762019014933070479368650815425960999779614437396201956285049698397812016555337243166905756284282717062544511979050284278330131750775933799400021666416264049219773552123669355400695777025416766378887499628459865206801279120287456571757977957979881510208588252890673638060338929844336275708519178205733875716409395561741670770216161274281855410512806440804136195988605226562767097476400084045015686949787282585954661807558944712862290347675389495351617953401457731376777984245912551556498663325361340626518569901910744818405455546241385204302976105211219920931046863135264446705345305047900877823917713259380444156874337258426597930511263650109234311527519659416873059374563429398849118207474418987954510984983900302783358393211503966458012705565246024263429578637937330446584099657663094485307501758452425534337249273602601556555489539765710982479849745298996106935640604516917632044539185149677007596329164129141741353411192010346251469162962720282894458707146384913354958617934063845460405624120185420656241379452052686324357195379134691589141463741335814771486468690044525591997379546001126921392210140708014346000234552753839190037603959020940064788310811810418466507698314891792488253374934172158672695595995230712728313038155869596388571634210976332761716488481034354062826654933366418405544375101886408126688681270158904937031177404400087034659133512335541015746162120167280692936764340529735797690060359336421094148186472500132382692330642349404221411388506324637572599741610429086952741488108336522330489638407799610868205488273403537004303588543753663878755902160484042491404202348065787432381665364659013687672404267874070115884619238725792395373109970891673825934404007393502792929812957577987747149267877837026627748465560813046948189731897127889332067558539013980873542586705907393530816316157240945620336262835210009843075936566247468257001490278734922910452761029246339116110033298304261449544872721665128224909292398748514907905622939926967796867280354225932734343494994317295097154701625191236509869320404964350248721486863716818107906466536371060691316387879484735711820344886590793434637485135082796653351133605055892872413963661885782179308156689372327493594756177582426960924141848509303360135987312975738935394542808092543500445887656546076467146763492104057796790292440036839195521449345821671974382440624209249188464459598261468149250997390399267673841402532672050736419698950378980496271200836880215406313941321039662658891186420316696039818405286079317250533943616363642641551568237902915760391513865220781374858046993870557929237410601266435534833869515682394065927734579170032867392854704351301853895312806963557008241951941038685518852802986872818862000717197023955414318281335433110520470561503209354439763910391432662660096580424430489823174006921313991663801369332793850961537701484595275234720426917057283275760450600513618702598868371556233555284092842429909516227575130681863655485279774512638196649151711990204274056783003702592670075087207898867739724274310511493666575104688771681530547384588844458737360072376489802068838271107774590636356249934348913535917033168980670812204938470792006623732974613555311623958784807027404330639288019410963497295280634395035292593915381055303203956763981169341786507828234975382779602056997679524015139478020317351766466810852166601229744416599463306965447375469666384739057708649588480646636702825990929523584943200994622228764244497303975904627154045592239791289333324576547869751973146681802255023743982393440726908722073911660506012427895961200523183488726637384720229278169140126886675850471145971041671576169379075352263521118451737429563886601784503741459612967179003238399902628124515427517637795426260511334825368289111665907668676857777949198402024172230471518829857559443296977735104328925494131663206976578575255650792091091013771441785578432883944171988326631603661658218694722324026714427199598435802107099350877765794669457382315529484451725898088340789125265982492571086748287263596476394244772596528468093309772439775130923292051036894429662247423983334435347192511643307114344609822709269750534931578517748807327815850143004992805153931455192897464209783494453983204515082772972466799392634978454129712498917771749383451445975083975347707005367513700039548181022978811625118617604085543678109953277593198591458499682198624255202716797543073094856400800868359388741205323457331150200473893253683672769979160772892382654517665066928271940925678793011969452984338088970688095995738943826292908045174702647343954398341041006283860715270117440623080092535286879156831756326288803306373905757264248358282766168503391982788967528945393804951476230710988963813527860423863558346894496528693272632157064935625597109257748498362959583271589243311445422298021896612869392194478094707270267032576384451092365751420965960621192858521916108460639760475224881677841603992796364668126456222446045224416140158049488098273994786601769702512518434850068504146338133800855215845634637782935801919265606639619165747390399567735798028184323805916197187375009265895292495879817471672897465491738106071895080186685987815328854796907769771868997437519994092749254831448134057409601548628153074578023100352025703917996773855473706450300100324774937839105530415664426512809124463569021170529379130073222418982264919517774217150783476667244143687068754139836604404430757031345676057354048033621240881717666429540810649854306399618493142922420222694554441198314768310490342885903242758884197678372482157763025955653561338391049823637761261494012916614009894619889068218102961989167875876728431265203038679766081665445041759598445381573452982134406649066855608875665673252618773349882700714295602722396777397913815942219348290751255684157229930475780886287902160530047245636566022240480591661350677176950604705919811080199344180438774580760365782293476584064296619181101074549096115374497252668122697213838938245936802971528064966465684877783534428246154482808113559751123617708041665555712728547617367345476818030311136767422498813427662298093417297192080413831796224383919413850821275364046006969450747987661134366461623771948132097266974036747502094511820785994641374703672998551659314072826328135205031410269998259252513425389314428826059545480944334478686566226123699788936487376787318455654762483216106882196618695334678057198818933477440149378338336679790571111995155171962577743315572106356274115242811015233204105960925929866276473419549527065827631489365094863978830047432778826533952998979243292006112693595789868197893725332968132588796744733566139634803151489100248728313473549927253034661508074067333064841951885956597140677565418441151951378643854858823862900185118032832770455593124222453550202913913857626576828266526518354181714300189402831512783638112480959024129476719677214360058639058370850533548203521141122027432454327971169520998644178307660043489084365897738931035000199978791284075696597072250144410822928611270253798617969508417704046833840066689432020288953543994791671601542796049960127683951856788149263370354611271131006322711714085015359896647543169821580012782034324289444736296421518105809550489875688617091986554479365859583549847616521922061546547829273714402878594693334351640838350487169665458860109720054148878701955639688220836627883053524280869857145751621229252012355697124700361061787378635095282807127141561123092649814777054019363189487441455997259976524459098937607554800436057256782883937074706174305024848079227621087714539541116419016601172021782774055675406890742486731145814607403457982464007333959050697169600639414480931549306379759806380982178144442385485911314136288773418749133888447794672794750874872845979492360969297255347999409364687002985487290365522301309339914508346186777974623761254681939194029548434135858508679746776932214821910776799443882941857060959099045928303386444330408689426069044674503212694470081136676839693036442456512936496375105798869642119202879634137587679005687042710620096772913445569406237825644939690700828662592538763109435840332523431949874512454800305578221347134163765120843365274498801214842624791833808281588185055356028856930951875886910689166557305544391145049561769870721966274261522080771220491435344995193313097054113152090899915486838536567586415385177421513164679768450427560960989456531903475077596755087453966998523281334429427232025851218086111189898357594964858695397983197333627031192544613873118803921701758699257820883248101309381980241713276261412050075763053918967441475389297925921680526093852197167186732314613186799253665430371642222398045382295193265526277557668638833348519604619743337935221870557053118023835457187985325484687144268380023392582152097327575729362893805797902336210967289868314484688739282310606422551709671136916437011420883049410522042488300476780011663068149320341113733601278719828332732733279075876847877657091394965445721730144723226727861972517719758430920327547205066667704045157196648286712469130445142803683226428718376319353056902308942597383583961696486659425729278548448497532656387475547927630663224090063747408025590835454407016206495628882830256647490413244687085850025328828147120033111839761540558476728112068506013136422261045455871535195621744793546459290407917397076797211060837211943213054556335718226881236213978535933965880144063587535734184064692474409990433331171299787914272241828153595776001423434288984254465676368974806680995007993114065135575723788317306004087365341712759581765726021049652842607595026526897636755507526373245385355053874065414808634953931706459558269976055938133182063170638625295125773646577993733908717429499388865320613717419561242306910795542551308205319795927156843688270790320634375997086186072004991611754722396079389391025424874622742061438033836527826425021330352717475826699088385798385184612519215436294682619380572764514760304865469680087211834092155255181577055752689194238526325515103061828724168379672490136194332817813879681519227166496579748412223096870829236179511942022928254436363115192870965798020245422922742404169775727163899086802977830607814665476904257551546582936379436494180858242410888903400146308201700850452188675107992501559031994278523839235161514480614674576327184438802938874518386028046335433685025580658875355532973487463235330546045018588104765353451612989002124888226429461551680538063930197667286466377508033900294388160932565767046587430742862684932949959758181630119378048143160364777316657415981292451493329965490588908530625891527876081769832381068545967833841738818974281980267257024957492180734922413063275373874662328913809146633179209828174491112104132625641841481626074762504936054303007619427359889458705755991963347244211892261812345156517414924500382640994624707619171017755248013760078658707155115454195785954430632993463459524686720851236583640627486767982883085095697546559433144660807708759403963063197831458295686368803378318971888109482248261669087786392242775530318978032969310160213278650140728741170920211158349881467693027731377368403045063715545231119778563100401439051916018121050516630077494715815310350481797090068719526267539652903958110728376160840741191601584625198235454945671438890702439259646968111409118656036253384200245951591399326487327200525342500962071595459914394076782419663467251211004231685850197685409372355042416339204672870624882117941517393102132415263170694556797821228421233855242309978790807593432503583467305577559649274282767596616093743581073557032335417168206846717535600701863696553348833532229187342295038716403908071429059799007863376305484743867931125590207714305060677864418222390726065393683936432143137425615251976224528716544212391532656684519185969348285680504580526998302007986080811900700858512947151435250369033529422964773663309965755721016298272376624299442198314206339645704972912759090879329791809130724826930665152468737325434556799993667522336273031772342870775653102244521630120910644932551322687121122012647973658065999769414094681389791101195989739034120498515473958120753434433888414298265519548090259616116178934197057001343830090284209918591410595246782431963621571697043139607101642767752072171475272927299209480403615582409268542030471739188034646427808250083096198342781340086544439773590503481832653816613207970803170279999781196360221307124791870701879033191251984679912987891868289930247875898373270312178595567149714378804222584829908961583849203205934337662834295746541430063505506570650976094822924708365269402562403357964000773469684186712567603881913730224305230933405829863909209496806546734973965989268861604950772407224026357216035179911613997971214714313505179398736576755226683534523216653579654801559750187816075621266606711016731007563068859870653900921475543221295991068918805901621267503266265469609800843739508583052088720829805472181845429219379810134702883628274977057928376378120061484222629032389455124110614450200886105543739674876446117569976865668344126454582713427016107450847170430390647355984635985582664309811548164356811149178192174364735769862034698511614683431485499166402012263794644940626913856040660565971376229279406121579943273963820719572079691272851835024851046291438295172981856295050831792014135231832838055659710361492418060004098150615097217542360081503062461639858342411679041247010114781450783547073561478488320472888329117409010075465634164734571506411662169102575316321466134033868107568942609984820568812916592798844194877521786449699799521281548269917952191900781847351132444634147714044469422069860576650915816773866578666694781291924142379726495031226289874537064707847487064495328241402847459131995629508732523584115280549992271633596603823896726898841656587637960079957966832474614333652924780001386480427841772827932669088917014063597637744735620807531857330874507475225378227756141262244275410806923131236400439334434497795674288610916074629524311745841194138461995954725118845288043024540985647682325532370747267351654945781689858150566741308148885498494865937302428272405730579657688625348779679696117675225539886542769260975561174620492609970877065060500242514690242555019109881473074746787023784991319878050561916307634680863673013122775894239030613716454185514858246585092275952143346399645489152238251953514935040649086701569582151123591529778229113318940581235816174936092374660975069341274305277939377374355981290326219440658865210809534000548682285192168583478695565088321277029186077332528625045100875917590274437351757789160331208567232953768776276482726016062016019274858310682243450133333543809134501883573315908279400364561295474371121125858689478377962518305019889033457221875915103785073640056968858991851653039052804007156693878744216108083788989942650732268679241887487869603792354233530188922200513620847055390777143147464237448092681631867706691693362844692977546272800641317880436206581313128991138311190479733446785858636691127789298886768566354526947176455601648434512714496009037139914244999130084115852713783331295529037547804111966863436930137522322173354983131727376736560072652353670053567334063845311100851431645892225463991796751179637641423309236661782760121834929992000166994727564926025862515778652032638832529087331178442296202676797965614874605802349116439100326009701660433262425516599470951964131977294796188806539877937415856150769213823059947901264247003696191727051865729957075396906247772837048675875423105604769003954886237201197931359169108006341719473625130349697900628737858926028404632279234921316944336410129160040276517805189054971107394940266834367052668929790004321747235128175181942614955381797609646832139000464089022865859152446426857239390238327462999095909511925449998924571861146489508916453935680642643843502540646949841576538905693851863941665022589181529609915432051098459999914992241599779901559305652127998299046881655629329482777042178293518482844844149007934284439702548480164414443846554334879189182970041672241484462221315710684992888497375866053406664270807431034777424814493968081784385066021963031123601247126663271639203347690415077938062887455880546618592572738326374368655676461766034236136070128467752780813382060517159773884116651529589951082910211592097942508095057598810445408618895539279820228766379025405855285400311716356820800101475407533068839162731251138249926953354475188837899523548081368000049345518795213652497283823469855909137048286195395490997688491463636669839838672383293880397404862184550458713941321900331200582014854364697644837626582928326214159477881105619004910966466590999856449265287359785952227861148130445968515425993302422259473238316297599444178919302502123599487115635336941846766434273933011501535566574937259555398224318849131506916173755469596436991033660820462041725288465536084617957840896975107342198853603283333988868200627839731333058111194900267137682435414459439932464657492797775898319948979902598903578619996364291076635406846315455955072966402756630706577551507220016836049780464420019926968765191380374418245157855359885379245005051049174344749004534322677630491308723410991803998308508042506411825397765067208701329783064481442337483563628125371832315048984119655133261963690550627805557948133829132943382848951058772922959025856023564450173030765657379406476939394660700646211718087283821231380089269291086451004453837416979413004778082645631226915728684143603093926744633675120067505339987682852764273383783179758856921833615554224077571216219859275702061576563827229876478855910581878507468544001254887331402284481731030489991538121863011565443905853002981711042254501303710334563756870686279384295251467716337495539877367225863187476823851884615167251418670884197889961028686293376199360175907616054576113740388660475473791531336840640658998943905725877266476986509793531385287538709071837867568397323464085081077272282299684725087484898070959563939570592355428498165712921771227159284319142744863370172136594428353144763223482832120926160065875845486575320096543678747422912798332092878038718527669971444503071672864795041052531948826527864812373846856048400650814711546058086941873836144161588864980060818994994890073843540377688313685933462295169572885518313760197579389890308244757754539737901381391949603454186838649120116120826791030648776895791764470140871603260338860902423750968169536080614107990302754430757063767026700556461724454548052352702521329375385180566254561941216200639733771695203623400379510370280579997466762507402688183087067755945489909819900265658961212744912663703546426990240640679847986496832847295671329839027493996481848181253626297476755423449844851492262267557707404267761200176396878774943301741532106182297782835562413415460954596311186687632315060815149721300549909149056148827226007666003880766071357725021013669756274304904409057937934347194391496760912970429852137582091829772615514024814773992911380595480174137067567814359400207262917892769614241570454508905666017427028936676668172147080973560235668378307194575761682379666941866977073536665480472580419320230941250564751967055411435614190769655521583879921940387904256223043946160586919466941192656179024651555191748921775701188194119787451679960227273638428769958037318445829615494465646198454927606418766049019526744135699776468138786390570989241230260953225237121535820913789641681618851234790337658784623340917751656483039830221775024655445866822747938828074749131174890901279177717621729265289576953490542886601898892087358981359226789526382293223150827346493919198669871843105978286995764253398494491155773538648308429171916626003790720367396866691736402329013600506493455464687270886019268818640009979235595242360302405712263816191494591419328717275416307441733897255534646531725893028803407380351448581872359797004194105400615813329404202166935635939548874814480176804096227878659825275581575711988205843549402040391707942042180368962719752658199887477567935780179151002980637408691601670854478646193382371179022735766154933188829673333608978497013925877988832147640767896846157541847593476790271233755286768881403397193613933080516093097240106023692128729591743239220211342404102812255944881570702369798400908797169815013857229301466338042545873213661342206821920639302106379503167765483819851856676832821608083586748849500433948451448390317383534166820022898663387902212062729181559649545432070527409814583436042163024151998102114981100962921169630070407587305376341443010425995164677801195051231915230202232629312094424773275834126652295322085597851970817640180031737110159227000145814250738719851622245837162196140811160969783233077594676605054942841689369862509277674350590849408429671101059824490335370450820063307259899059567145516891509449995773577991885597021931898203090691120966949544665526849521483599292879354714952399792231245758133312989878819284646645437692198408248950637448533104806196123437494199782379980065617401625000458693326483900375458002803108423611640759268797937350565781640628247790926558772559142965990549274806975926681374186860351586386894350717979013514886350273857883294474236516085798395755739933304179089811477653365486838795280399322079757900865339556140691323451506361156699848070600187922177490088568958903399349214152299409252344755249219644818342634919551836972116353342962645464422241119110605774050221416870807736316534377297050410287318316984644344469134669177591503901124772662844540313612053926964852385402122897733530122297105505420929271758085328451881157702453593258808725340872890202492085219980129939004941819721386953659337926814535802734977660954223411635345751329227519467239556520979727974253148241880101855561302665118915148029233112258701420782355932825420905239099407721220978738510817072246267320720995330437615037905178600697657871703997617561421695867757420886209558765213812898729042576055946099258339240797318913177941794159598400781527185483070886323321048908247324154006985363665333322413374252543763795085871542422805843216955006104288148889249357835243815998659213235080548939332184055525785593682298657291128303334019637757666949008019112827679399761990757761895453101397335204005784111471237897247961194833252148764206449089418461012266308861206783979719966800495688116147403724078641524974652379257161235004293529660638061197796124021032056387046950349471136480931440793141344319275137369036910368575775828473243048321025813802888354548441813209613581339748005945908521993531484868073062044455279687732115870432469191544270286413652321588226844241581144005977434308128953512023456047588536702607667301890910234657981167358588388751998035919163329331052271540090289833144764902063249777895553205907076595269040584583855119601677843126383071653028200973665702779008791909602417574561715416458397172162088678677766616450893806138951831444230773123088250449964311388494720867353058903002477382719307541876491916952360460567989277660451172668453057061946231967884660618220496043762724214933763533079183760992130393206344462101071491806613585619375077669813759773742165080804750921783724179684775320339020379756100904723764455230709048292901608693463651891382421965288520243322315184194823675846076816116765816920136451850796270412357289774621080930592690752388179653654087035847151046323807120048286423589683427072724160081849841707382308525345354989147243303956804108181824404978580237062227785249859099868236758595847858572790312444206839417258939454104672952321414559631744606332852883517302723999765640769010829509300124627399534033370138022545094160488142961348749771965111871705114266547846291220554679327975348269404421342959605880669725628434766790525593724199064754623155924751223677333818478094363583399319090969088382922270551917569860696906666447802960617481575125299057343405492846458651512781185066963208031018265626062176636629837939607017940508470436368985726130937637972182900269952182471755971992413310388271566638450365615978204499573417020550008303197624027384238937985091834329569496986884563868924822825682578174124273153478528616998049229590875406391083019708551512846563472398551758512153032446291873695188374396657090089033092519715677569939688256609309692227446304519688331844057719046067733017657473932486785398450461265795819002888817810318093293385808176708655993440703492889407842379627745565856035223437149186838823509319635774423901338867201408795629445978370245197710786370109330730671517054014582451453061554609403461296777997911261754660649752354484659398745633576474347555785898016863953168112296909608784268587706277076302433960672966319381374307459640851374394677684067850672240018435348301510118813855750969518499023526860435428969593295324128319789080919824031874534173119115190064281595791903731822718208722258970704025427947685398147593872818961792244101903408188153966664592973219929983579452109867414877953519239261941395460859310738027174159533076981484634828852257253054548169631066296267044452199043942681102481915512345618523094041731840758071078887579366612311014120998661430487608491074456291067491647055163826913739908398823545875507510021530837236282131064488169451761637128590184987238933252774679791500401210523609533307956121307788981164977335612842857969254042191194270058159025634776084445725050303610667154706217349709443417856584281709633067543817446584852304195273783044797537167821507809390659452971890482365321173177991554847998178231285176354103978083650945214282152272021926923926510431269496159202872456980094818967473481008150614750403215271029767101971895478819861048464939160133093106194264551832000464714361032823467777738867197158390698141289630437627475544218867522428152789856741441004406379702898658640031937783296929079202397500285939064003844716200889728561079467800623073937722787760216379230286706016035315443072647781691074930044418039918283856787157711417770745652774570857775760023186264890803477365180339933777234863277132964310097094212895842350119215557261260858450828271044437426347550775097666601748683835551089267593052339099961077984041023481120466252095083134418908085346159709816306058638508070628333375751047390843869389981760915704701643022724185726006643688001872366418332626018008555071804349513081270868665004133455104077877330368335558648483024465286925841700022041191551442893191447964952228104126381681860982003570166942905132927801982832774231062498258716079373610318968227466873897944128598932360835552886999164421986111214356821952610544580974629715154174994168026545526072773915124926493386661252472203575381945831277472449732070918167402594938344959457073481809649836434944654099702266338731771973951798771932897720591708074091877298606622770897914975119600220848576778850498199458316646168664647537876899654059724601073260414421609366747807959609705525755522552545275113612625794291287440044869319573935679257936890051985448426010818691261355291431962271098238206884907419696493592502550703997018163357246056326041967321109396884964916432883973581907157787233476539960172753319731782364775257719279304703011384447166840248106767728199194574978092168147559944578458984697465333953423858003939170118137842186632463821443341205421878846592969504019836577538611112841122933675392503779817891333095859161987717294833801061846085632586470127254010519685013251006609015359218155493249105134428523296078863043605384335919051677539410239525489565650510428817296097427730336958783213112488247615723519827928175083339125554146936644947539271023512676250761854450999623434566227780064255983027310556997242638007250113171672899894693571325834784915893863200028847620531986227815873605350023877428803276115478599073294226394236594539379727691225955711395194395324958777044369660679325999017813128780855947873836131857655983819774211991520586443672678083348837251076046614251253760680723055699548962345685224136811192827235664803059505991159356229859696100050529803295192720452517819660114427090556796280130828805568597438742621404266541003309656863570466080585387059623506599744251182340548682241159217646720089726600103554222103413504298795782602453125285999020295574254912217097582347724796144935371485583807748894589760713294225608090016627920101116841427956400219022158519168743515878533974511419038930807020494809721806614723798886426989719956042526537510548518006194022520221163587013593728697380296002989096552344096529253021574436647750115451719601006870817321643963306822261100091648743324411822466354135588317563344141269832367560158435207557041401695659398686349144939334233477426460400232492151253598941535639452365219216440993331634442896856391149827597307934941539252515394763615182954151319706973780067678858743050452292213761261573640900664546161581536276175244646030310206140823668529139247876995920116632882597775367734386920132152271583454928492302382818901719471262937843367271538925727247184501512848395561670033085023198296651592561899945304149971437952301092403169242097010910889571403775818226329665019427927192903450011709600056174174760634109403813192060577200943406236521654428678749334298656339082494413812030102525987255018052296896762632154222873424328313146862541739603565803665570167042371913236284390465029344038155626584798760950270137381107046571294848069511101946096287398960033121049617381740562710979565157108572032808481915601259509059402458720179267674488791443816186466252413678496482616716707203607273144556000144230158903701605846815457302444112211539021512205679553076420619187404684360578472431692987588372656329380696755798289434487454846482136195939771278826064871036719985149418674144741790001663255833904112302896209673748091498774486120908895922511275483102056036281783882307872545204490469718775393185051524259708970428126625386090199041253569520647941833658284671531014649083355691546986303882925546200630749422866960482853734808255559394300723045081084629398814213834939908297430534156144028941613310773330294999423578375711486475317302239678931025495096402568603957165973859660442899633444412323842234755204768113052170302626336483704218720360715559131743372609123786366935556818032843616077761223980061108920602180012483818196190648501819277672156352651543587451773949644358560695239883510145170086797497320144442474756737189928392761954362043156206435609217300240735363398497180399182109667856180895797356218502562841643583852748052450396844221291353014110944495274581566201015426009053014895006434748020777234121680463452236822616981880125029088374493233524222359882156457485543872234500524729014873846131026518350950214954281112374329201986789992711309128388326419714308351327881904888991390638958922354349750525971415603297530573308953335880659487857566082016590526073053678767605416064297941165524661637791769689509045500439380667644070041421514362932341063740964110320714721261728369994923689523741129365151822591921185974747666733589602046527273982751346523132970378162443721395625907668531993327196812669676621432880210502455782884898317301617006699460730371731379920807344110753468746375878056883329142349269116713652385580508351620542294794550586620772028883599583181342731064128001208940785523578702501077261919615554768012852295262066036428871763025413219393058968951067498144819741516103058806678315310268284863456927945354606032509086452551405422181410474510665359982492733553091309978113897094574652745534798546563702280410200884146612296702951525688129777903442175164589951777544453784591835330187057749911356260815744561879589114220642849535859872036430477943764149861765121647645861732350544020335132211932631758058880080292903950205281847303786507347640157195593899992079706445799121089119743040838234120415916536087287312148262512509718520006983582016885385119385311775753671704248246004643261143092510354815484113594508679310032210802550278551010826275411835793226295303038455242759161685236420906093335396349076158640225465629990046370921088169731733955060635997117255494905023607554700397594243499340631746514195721974572046794178151690313942591351897042708873311427710558380715944655735664074064575568060082709959821803685927315935437685175392489543772987040799310599470959196200459403124721852378884029269571434808948540065797485541978268406951054547467540251520326011960497643311551019205209020805332461719901738890315809063764107522610901631500825870371358928676426651103543354978524672053208843988304416561459094744505815883639735403859930746998728707421697751448727093514963310875874103922979448996237249421056491278203229497480200274270518841772121720048764711123878454234993106353755486371434501476596031328156136618902955586679968875564041434460009595001580763080685693077381204320388884007727426301521210650317776964272733815500920650589576726473472087691323356614265140992150582033159472919573077849499639718735558274389967626861978231108399504777426303907038645429604684186241938061496701957920623411167029950047864212563622169389578042937330422426565576412604490089980650621332232907899077334159450047580863551599989086378821437645149874910005208662107857321289141272703581216774041765680426289297091363784144062477850112987849564970596620452794830853425902756583456503718950639443906150297454179078578794000493591106951887487712401788819978088565175892131918565820993228164918628671639498718355602388686803651372090042574309492936550977167178130234251120077541832927567023994586960979670392454884891275069964064482769801623007878352904842807566486649856995278186522747711281416931213756099150024217120042074711125159733087899065271002930110001113518888043880631791071643576048220312287556521428459490812616462894004029243520216449530502769517555030059213397663920477079208453334296583297238027942313583148297300422402335248146671313436135247887072323945641787954518428125180239875561983357408090127672850851910136088162447525977685997340824230331679878163344147090020646496488246656684875879525405406586680316487692730330388892166777093557838060517785405189938132826941266017476953804043419057569230521256589482605308793882620830193150386314994995759012362761464685753209824285115477032287670892517446690458472406694389969829147563788911620611461050180409905912965071846672680356396523747493442229263819390123800537191851658528353128454857032153784544160454460739998210740632912965755204762254775362565748415529409501649688192125059406278367696137833467572613908537621611098934424336039600054090689592618877154873598394394356478893830254690219733349434177486071323975272135523122313970219218649924438972536225591455324020961805252919230383856603675427269695865126534264438770749499306776266429085864716447766809112157778997741579654811366595109452247110503039204679766103255902263039361482332101228062706726049400669079067133261930703791894866008606534718588111545548090638590114390548677680182144467963645117214362738674771186348583719083032194625234906595465142365641691738558101095624292961340579935995503816322178429011429925263503107923367365169139759421059958759582844779199928867534758617822806051144008301710085450227728448760872640209105476387845504180555078817682295886730477198005618568752741499574060194013987966616198730749420840448433469579037695941929316263826478112395548603966815134094159235047213341427789669490076826143964028231433447729558305626880092674935785228489576271048028641903608407132520047123929346338417079154651079266136734953344696041282735717980486562956854783837328215217676934128757827951180057214361459753702367656288545345025110727511193897788936948565246937266531026088292550195341386106878896626241256342747338202682853042203799778077787965004287867942119290639809885837352660742514029783906593731960705813844418654708351891799066779876903182343859891047124883961584592112917577405304777034861521021222640235926595638249909745344600416215637224521285873028436349540653403570371133003962887615419783169438826220471807705067095103034983221320425745953018248127230787235570030681418278756136073634823107772242837848457398205513489402296283209234261841751524450439538886081414194688245024513454640387933771321301094279643965976364014490459938490686590218772683226770288345718083098807610577000007067634629837563253451037620134456810233138285451705976840499970288066705862765028439468396493007935896324909793790302393347882840804022730463014728044166314200216261652567754599532038590032545144565995860899760078966977577329464150137928891612792836478980030183088640909809135604067069812534481928069578545441268710982750559664366786411740665896264411655440685013369297301326970567628960010097933046589380381463964981050309713537682280678619172220650178651957898234567656226326008143835236474269883135093590008451131041328264435397878641592517609478294107153851924777825594939065594775762232754357866636661695812318178900438721604165755442713159432372341783570300949936152210417239488586462990352706239505341133255253416405649859234504718868094545882750471850008625225440261060140424145560225511801342624365005917355861117852807274355028738112738282350467315719865180056409478369980469585746926777298476102873578061350257880078458508713746433126217138132686649285228321194645619230047251067594596930494595762395002396443837579871143160209891925535710875437041241203802169303650763450074468370445027183201813403106234617132733215128972736823278434328697606545551383705176507623228724536838642762948589197356927077751533870739828432868718190650779462639781180671961853238811072816594577041325619508396994413128275328075061211881436665765113855680224526736010233734181130467786661820048208395133015037248328150714627243394946678590182097605003990438755927991599739679425779653236617244384481529862526349648503112224503877687851466003283971496696459304560492816228277488134380474546467131699002255756879478282421234575693005003419015553983390776315875598796130592677283770033068840588117247393252367317218930875949565495456087427264868856766916364802033068107748629467055922548237866444185123537385868351952355626164553825505894603527420998222102799016250057259686241466335966806115133757647281333120036170862195111748471011210170563593455734759582764410991117029883865024188416725277812169826751401758385776837428613738706042233567139739931636805275450302490907403317234683753521216084055498054750530063312382779754239177295291325933124322428179595184959605111623142166077655682139599430373889673728700662420787929277016224173393277825280560529560462620215812681154084691904377181526084441818056093585364574774230508682244407963755474483882736595562016530458961359333438712706895013707086465981741336105249163154273908312981137450365716434483599743411035307222286566581780586839794790082800336762932292851812786173212808082016771900919971589202681080098942316430232698201851641045224344755811053843712566687421157001081856511634701360081035140466227070885947403204017130581375135472932535670595818672597143897905373024937787814952728356661164365875519792911131168636193141367420104384409020195524803960361510068721820494614500485699083265516541102980800667645568403815197011878334917256939839847486048341153894631552620429256066785077727386545391533370061278923760271673787974157142905746662959058989976403517360465979547340268108319852629000305156989451699012449245222685239817331431324734662076196466882138421838641229051494727693717804358096755764122869647125716506308542213526222739682632360058832331922106395615596148282986045445725692910147543269391793956835539968370850434059635171846932339860998016131518196574202027645527732472533951315925810979919319713977607572145511404852073412520314050001615669180760122209980336581378623577926542667105387348216025495640200615775456832210773408712221409918443395442711436951598416722626695844450130346102363441784699736045121549233043322315502783576343968487497516288976496604477897930569639859203801635278332082101795822912269886733597680785946404339993762115545131462465250873295230139928062709642196602775882807844330599121192988691800241356963511950553393282781087408048942450142580829675992909310761477748214246698349119096851397495964128979273091459876843058566722881027384694692332036603042416516129651251858892281554186370140998027971021781543340213560750409553327279806321015618664201482612102596778810639599831629689592665745372888280122486449846506173625370934103642156572518447122175251952075454225324063879619908997212817335951241226542663132918489335603362326604692696766723415171592483105819271474978372372655287603364978084504217508729276833241020199057200990459703844973515368622092997162685510733954838606500010703197501910680519193795735480704815218836282923289190820490652002405447353717445596329283067249285458770392475350855191713296965928797771175146688949952777160395675808732275641127711584508878376749994572424304926368458219516389278763384516604232104820738779069923895728034446429458029603320506033366214595893023153818712221112594806944894667791699599828620857231074986997050908964560898989465813978174316626320963715082584606927529133200663089094297442383554486244363057021087916922881291838825154490352490631148000359220591532399203298001654796976535805105761051088266322030283801315552410652762199268206955783490883834201650999503890295855344825915622173146429401011730266866092523848758287829554237856845235816392145793640168658360175363386229228259763669865606326613680777597119636363461172939931230026535873685836511893161583805244231924044829390784730842065001239013477283335157116767353401362205392669394714231654090075553820537933961702456349146602649554713288884308199305905133783810980576734464593445432019057612215807727964596810064741226785651199286772456601014983910869621752164163403203867675020353866901945257405286251077360779327414051690123169014674135162615003356016989655860350382419459960460252927695398294947278183433984473553703802305496797779767287557537595540858922229824040641596152444598821880656598061147955109864016088960876680024972168821688147369181366034397793308861243570331850300320839353457679092219171990833157615591041757857355801260760634564759783076654714390812999401258731635072132478889179173083008398974093496824175609062105004153941814393059426883640875778709497828812141609170967672565514267001812102278289090912960933275041412569817880341856802412128427857566988123628424258293286633185657361725162424068161925676810622193353938997985709288420885216419550861625733797195909557365117760072454534690244239575280979910331213894343422306167918991797907153410027338101049968408436661431570497055064377656282325322503981810905573828524193966653302110246501899161069583123906254838364740607465216437739671222915328963719702567966850567391351509701542305071501929360060987839084494602180104039156668687251059791209150867838274466718495609808001436136741779707121931968200030924514335848567577966574176077726939927289286761029890605423697518286915812923035332686379550750840895192700655181453189282302457631273401572970000660491640125624008298082838642297351316795674903921191631401410258628598610920862470511784522596285497978201620507193705564567516785911258990332529568409833701454975795441798462480100046829737510745245678630908759051979509953906778411737929794018649071785802669391899243680690981082879010069177629627182571250343000724856661003910096576255936701069167108972892915415187320581405411424194374113860030970839823294139064725036916066538643327023745371707236919052849897487640057613312780515899016958798165065005936762216629392808320974285877268683356289261693406719974715932601679048037557807801719744612809221182687093599756118974785847026477169062634368668644059344419211011010234089873842151891888956073614487368151643005442156571562661871893974950459012424235906849694896163507453357524459201707726643204993080291871070691562040853847647780667310317309195255858982338210575704400577809015559581661843840369018667830135817245373924881557434127586452024202776416161842548698191032606347402941830457927951487459031262791700802309994132086280611103253526451115075401060355452097926444505317105593628049975126525675178062394933031442733776397722945860248471936899083367091309926689725378468644412388337348451865740892074710996756696342157605883648035131995976321469474259706131968772503476440030618444130081626378231652448211936870035012023131386209035718337234935616742734120442833504500659371312458878982755665150627150852878811583449114097470883265976468726877898515535235665115267681148519667292114029805148350688981432734189206837928490541202228486460599045297852193612919548028517188565857614368485899782520964422948826569127498721714487240406957687751033153107410086220633592482840382001503331461751990024377599388764567604086132299394550034436860996426104848732418620440748922015946547674116450319962322881286307285432529827389172999755745429414564168965003200496034674593305877969608624618264335382592100528779123671200007195711717565433941299285835803944709712153665073132188471522662805015867603430232381772630347152466837122898340519528314991955351511564544722680128007108410565483177416056207692729701609182631430290984065581601273218858023627073967858032098069047005916459761248330755579949195092846717371163639637645092016015007519129344577868277185514759313328830782327067524344986678365531746726242596398261471995320282741954214730799875148261355715546532631312751477449608278458695796111363384030563560664687052597309970696778039049439184280378578709695035473487661481636967326404786885519475333151973216260402840491487812417857243210121905406887165673854543237027595680294564925064901436186427235909923453581696102875667957787129543583846777328396241732517754014928400883849326789662100648391541266081335801533582666252623048233818443383396927065033197908170178032554945104899771649320817310252759436906638400721560581118705427697906541313930368471020570543851311432868957144531573030722935877298644516073815296541584774838663112163967583212901075189482886349403758713625466114126400573466309608267045722787148260161781737190748724363002505296550013366113189024360401590103993674051173551601168293907474218307451245912868326471218639038579185072026537789526111103485793887637069623096000093923820317054540918857244687733095875848849993427142183041452151207976927083531703745754476375810276935002628100602260562075026784995989701666169990743408550275123528357661925531642081197821929514854790465870179140812318307267381799567322716954822834283334517707889826147382338705774174804940079514667112164072468677782824406218420941970329762307266511915989302762387704074961694469130315092240452999990600012037290494668082248477303073811368286073668827113849783284401680962997866425110355829406138742168786140605885343212055533016138165295751211627469261259234717495635921520983220900294315255739177284573892664458564276445528517793978399812689032674690000267836766932214062404144606821419889724647684571547878494618565948720728266142217399863752185029757970785280599599631962623809058230813884802447697519274937102398004507766348423301741916136403847801053995502186956036328240726976177763411383446082858543285357624002799291260236526598231647479523584334878524080183629149281801654573460474718205735508822807726836417671346747059567327991057175461850784622767402378137293895035172988400331783871932265092243026981646639985960978372089386220841672781388318399554730537361384435488819472004592278483638206260907164633537339810607950176010202261105268236406407765665925860041310830000761921936036579753996661285015648545042477629935793471110009987229964776921820503837837823126889779334771820432171394913593971180964665325895162326069880462828968039263832662874619531018167426086991056530500718229674319967321515937681789385169836966867493755110042502044775058413553542734196194662372191124725536916064324963276467449253013991616863548918825217873600215754698502645780606175078696260923438973826675982884764029523861123561243199313862091408544746698481895446912462513286169435721522101695833492569448937094112315717410292236045279367113943779539891432792231436565976834567270373729443962793370929130192536848752756805003403035675967165220165653471480271308103750307457359987195011216666349326631670361028072036355614045193258048669966331824227750729311992371893071302710467688832269377949027598420650477409085698510269812620174905407639578823425876957950932352478160920800707550960376104468927310201062272726110289575069788514151226783632469843641734462499137660387596481864736398844437476721599141269490696427823494569456233077268723433365001028730530348508145505255673907097021226460889659687903607882403876804134446434190004918750118065141224116121809647552963071505030274663183814920457567722115925033525231397955539791675433606231503955879930264609551274141436918314423201839571436522283424019000562949556782845852733406601074107323087703935727520519751088492584745766197419832157902993321443627029793124587309026197511819539767732534987905324937766407542103193668363042653455429254230765350309281028166945077388569739411230101759790510134173649455409768074563033469377290603472942841055210424093739303141095963580525148184514145151018552940986992229930024617238983137996050261347121595778241257647506647818617644370400288086375225491633070255455602504399611200606759143336939202274067252585878014888901543575072226791568088933677558519439327180211486919886109967171599146809813912903067276464857823435341747668279775857675661861461819907292562083386903311806123426094624073504317464208529832004122863789601190441821005762612379726260583397727282713589912908512726981025614095213272774454205588608305491023580257911960181009115046146972308088403161237932445895076087429284075511807579044003829200886424046925405329538202815080228534583917721750792920021083754134317041177690139817649386001207401576485898327544333998597110033094511813809327569399194641597571502801109313141502173567088611522862682421752591400657544941621699273952670860633478670686237181979354978835881418951895583120536956940658776104446890612568391203650254061328921070184808810482994243260662499785108650910185207982165222055801776899482216177389762181006538238678609798673828821819095956215290962423608167756165044100258979536493893207263328029924834597331342288039493218402771896825112655505406805276205844206977697443513133462535867085427558414881026639777741546006549620844885434247630946622222609417959497262302729855118859723503039928634747618183063113278600019355977826727919227810220562846916656781846390538577355723641902554239773981752866859628932881248500969449324718368044794360190969772469319676378076710461562559790776982744721852183001625864652238716028363693820395672912506393376841839124362095365049557239994161297729502218371677632566631567641211885027841696020875890065120084075998659122750342707763500171619146880531066078243685840865926337121013516722538992437993125564762259338726275267502558830881302430417007610707885821866112400026248844744693616606504657626455684228330340676162466914049449362978657906722997126115078239705528889594414898011256750030080682708163712544153698644633137572618594733561823174851923276622226919787093724202606146059642063020909063047462454632323917283256158467355184611306452481738297415549292739665119687586632752073178592126208862145101167605338144260315352239218267107847445671471340720101991628670907493014893386024249381006992406098883463599996499091076447198832495162938152858547793613761927736115846905147101090083282133119553418244767135782052325251739091553023333623032153401257647171548448234305264937013831599716312897413224961608386347302590083539012718978285054207081759981719783902716704077768015921126996678633841460756381969416265811658619388053307211455510615477413611874717464339293780293857255566613364355022883057151540460534309651928810623488702017571225182192122173806798067530261035594685668596437536288309062708151702015381046207078756231295293725695239714198569710145791099057368500072010451038472827696729777202858895821770236299426164609543321467154792330738428311664048070571081855399604412609716162975910416332820356784555566702599965932182764408377694832005844240756185552217633413589110607339967206265072056917474171246689628040674423579862282978568129691688772827383080273224190100306853251990935874294686244043967083641514914214781455788131373175244413461060062739085117590847368190188907175026057552458278968942489738209535653150302128838272869317025985375257577771565464510991091409438448805877051148539181856755640700871386273907585397301769963377812403984514416689647092529141450673687805199894085754965677449287057788954709938906998997171616453385934659416674439398145988522191088145357480385072408711490123246398770759420803114728349457674364570266841971702944197896203841402721653442102199432633581723663806608033043121710891766317308628213162181925066750888103627995184550527508619575228361017347575985586666403906584645990364549244601048146363379462506130302775772776695518642075005599376551388157854285546506562654079475595288156523527233429387411898056530671778726764770413166578760357071646724054235350127938737232657916915650296474596830534286029123734314882938481852627903819166176864756989287026314632305693481315559027851291032633021647396768912532268461655778045597543216478007921922044177223866843717552338200490034106539572173575199468888987015985689689713540563935475776014217837429627385283636185487545024694065698657684915612416172976107485885785436078613701256780945483484073595374893496387259206368611161907326609144312531443369187385924958748633841011778647032938037269637687962554529286312632753144555472660658876752026592247086998362872359523054093097297695726668028298707980234436482798889176420705688684081045928844847809960528957511584779112873833642624720871908402475761899534227612512241871929751757173671436875159018365425703205789470185191864547705491012890741035889314844538631665048236824133019549067946463562500082470621251497153021247881745788016071271124253011332161128106158066397324195033291906301533710524948852769352532876246352684956112245088875941888832657695715873098063979326137552384823910200779958524627944083086063907379601863845620094521500226566389514846640233471698961062646459081800316823297996415823914523253911279621581835903288084911393745041688380238595707680137449257838194933118134333207397340897959246592975074392975152340711101433439415546961486312325368847191351989424866121442884940507178954972814422816283182322793910719890512717951686493905113389496125616284013719401620732289039158096854512995783160084528732704342472509236633356679283443373806389442601112696640046455251669507422598329818385560267519877064177407915871170166558894954217367498565735244410736771991761542128009142289027055035386792154983638233009192571114382642765953778859311355725710620556139570018323197575915549623368147974213140703928981985821986575459749465930322748787201029242172016070416062557995716639967864143807716719248167874370434710173493310124995792163602450388856583325936319402949436943817527006782466252982748055208378645333325447171586577047575466762292539104084912306111310458489543597837084764058724241153184260037229914313476256074122766437834036408158950749906917588929973371508087550142868190081426636505245631886803057889400566615824952026663072888763582609039575429074445762005395482317658240578748242946876950104152054384014194078420244573318973803974041448122150394966105034535970675340772448878259425620931306100690810662861516452261260085245078483090550721799563141948009244052106875792569928009559936667417799891673072513272207778762061604525435199502412509452469960668787438107046524940175119816438306550849125340115567317030332094571377640845352480907793081233486791717467841633498346689366822359605305864088000713210908314213873218666255530002198756840137372220932522408788799389451877460476173744161010203425225989048799797959942916583793437901517863016647848172833455307148255308624573005172461629201708715095716079090143021125701005245543445191699667730173592545536162076615611510762826808996428108430046879834422860327441827131192184760064917995051821921841419091607698452293186585955401166085362083224261385147542923876273253620171777088210837984729842734926490689878197766298114250653691140242439465706766353707136312618120178038248731620704440469022562895064523229462943577727642641800530708682762987871470165280326803629594732716978757786939373798203175149466757238437124527837533516897295062383702492759753835289150065198971686264665072790699642012659839430882868404396116115829663181783990360721297574321964818577661399090734120392761492091290957874993530282240953895704391228475193103627085146239094924814485845737932246913819319325402877526024334023185208110150993357556595581983776369360228036120900732766755060955045884944935008439313280671210491863837627509842365232684435591046689426970900768946346541802790665349874305741737800387056712582705607565046696536947666236840173173806924453796378371001553059905627655100409127438105569838113165735135465380595106960473919591806447060936064404323518827819729706957364153791467377396177779417312422141125249688235841290036332093345402951261906574684686383407170803989467113712620497353455002324604137574757483834709362088521760334345629068962270843354405536519895042589238592468768269861929312167238052679177103647489033732196941144912573229357883242492928899833544325267420933574914790462262922676935434994997813860207579884686799833206126356144167865646087111985402139977784305141425454462679538894644412866329904183008718587877020567944717090553963816882423304688915318349437158796201802863735065638561681681885203742489822771253012079541852817306569804874259468045789152592268289091090643225558803701378751449561421538630891467020923604609769841743169387590479833896851725001403712582238128389290289486326296478305330343211548617667625234063894040128438539291674224608432130596637658398406687371029832332254237194136635372026775922887801514090529931168427014556111784683124124534188311865415085757552145041861627400721690649797850963622600660086414123976752600561817792371023539303764050784670310942487585720810167058653147600950899764613958817290617464397213985040784951471954824853995708538270910948794669561218624632402161269497159113979282047086924517593397433504857976414424404517900415940328115690695169650549534640674075772686508238756300734218575157574753929211297426878895688770465968698182316349407570736219124159314963215992688123207640787996316311155444269828088810721105308376674920261831623152462763634797135108973172644157400244270027010869093968880086934079356838067680838178583265789502191250352965534528161414010463122136525381890267337793221801890181164131346390598982992466054421208091862190457329400723751678110149636450497138014646128231732944954768666103665021331658978378062188427554705522386019491334497665145567237772169069964997663778596034715576076161769026855065151092880542057945100429647601879725024022035357672723711939500830620614007486773017539408814331461859305846106852632672583401594531141489096653118906758956057346957087586229138217690719187345199457829964976546869336927062537180977644055141911654329887112975689934586793553225526968427740553619741378449836660392890766258930227926908747278250362559457109327268930160747938320961601984615552146811654955727638592146419222478332156810212760479227248859634278620193601368650312432225074613189446175357822067895730070711399444519883154970404153617287622816979278674922165143606038654977287253489479121517469936363615262429385743737765099747664936274975283512976326958204622060592501233711949618078933610521153054421966521320809297381676630247464881166441510073758715785369470904326677809416705151441469797951401754011905621090235558057182135651074994196952217947058680643844765389733260133380451948267615627660661182331523810470299401201853427861711735196188863248239487894994870450320244250571108695021772474929790453280680607768423696065912691189285605139658774597095328677341542124691191507398813399305511178607629844697752034459752755978218247298908153186737701042195317127385621217247231572770799603663440442278634740114998365442550113026364098010326070268895455186735471047192825359988784519620049480761469096958397349141973115517633759415054406149930589297402714319891546242731409626728780015202322635258596972000112024795051525176811336516503957935913058861830187402027841582041783671785284272496323199013157525509011131525174031009052320004462622311982706700849884442442160002009921841943250545943093747159471040535256405017485418016237086776862306214643231336314851029839273622183666164325368171755127828791968915878459443292980078026084739585793268026982761625939458322245147016549851184132661892350595763231750537175391378184075992594526647848902692803006644175976245712705529753061837758297282948608176250616238540170401048592735183009711016222375030655869736699091533738696059014228381094619176768736431167742295422018431217177311020639681009666205020636260187769281782870485342585282932953335469247585967723989979305737548844916355941267480103214593433711979469450351621942564697962588986172499720811179550536173031613309959332271210816683761304940373202811050487980394086580449293876599001749398398563326670425504941450143109391358349028817811886891514208270986455554951494400417300665160545087041134413424448705296430557674477510401082425131417608914138125633678034365469163165426886852646891392027956219166259269959424512460875547042186264640245227535950764604043342606204565862732801950237123356832199835848788630252601652000956708280157300907445349727813719633745429877007436126936996170047070512777619021601940220875107522433289982375148204135083623142799968638925598277027528170632603070338187666050364721018696869563035999117855667336098138174173347260646409151513463825888741148468641437946006969155111887194565592539940484985550333114345114232066732460382950368960384391036678458021954450361475822863278341619766004139408069237877922117627709719748349135036539289898640931773490925681293083345192393443764192125501581034880300695007744435615465872718755226107211702752463419482536674805776767376892337992630583836507223999015569137565293313480560869397112050556815400286329179815134339862549928567184132896012767103524436792213525643488918903149092870231787235706251819660494993108672081606735475413229467126237611594249751039228406069314211185308298158559203435735476728358505012782273702227415743303277390721917749332591247025664614879277488548485932418044738454736249207990482923663798670668821247298002215995268378794530614217320275292409867400274575538652031815620126616024335393803176873295680549539297323030685427014201621234079285059360242384194726082588230737777565398827432399866023799614610722707755611252345885936691614318924761360382688010545850076137014189661432704977317336887509663744172760918285783551239082874792772832153177179363200490989735637470403984469925269065027429977834351489222918735690921921276308020760945810797446311451769203454835838202059945723226265651310431605705116400669799839310861485719442667294243697604179345069808356366493418191430426331959535353750968049152248486674228469152414397125032503461462079798412716279220810109520926373440817287686255972403200921221614338862185984097701606400839697629829627733876386557300946754071807373218281236063140081821680819955463115695899745518546351638059718849155286646756786795454280641753113342747278598066257410254471643158442499963326980780690282070261280730216240068338130435801757392820595977276026503174754338560809255932341219163157743858428193856859975609859961990492546734830639885188384868519193223207462330898149406752301281046314526971487874135520781874913261547774752464924565701773936033162710906838252208221146396556944569269874046681274913799861022616012941284097408169312489655721573151460749761082035948852525307415957188817151748423950593649612635202604496023666707618326764031958221607205499285362586299736504504114358806389744896830599778227350969373075613061477279817002024230387554784677811586243844551665387411944161847556123254759344471393352149826992805578113936254265199749033577710999474554991600231704678671389545442233065076002082370261275620126501419861547445648245579771743071469919723083579123060134410108352733296893987303785549268064303390154465550924495065516908726809051863950529923282208383924377257505305860834080768511164333429139022628897013748689301276941340708430224807981761628710520102167890832775173058578982676373195935636185265685888798165740524830293514070231999762572529271286611235000727514790581755259074746768270986038347150598390947798425221126256822811103786255762005762801190746126720883777124810707501448468463658249354459211802179587224304067155573983201748479491757880910653338111770613961226685437594218423616569938965035445230624437470977544713394669380794680051999339956795376047104159317882916239130638117589640138041373395252174381899303796321894154697187655431727733795168030688920308162997738286567491025631912685098442507263014563537312769532538172909028806227419361273971272126833813802920537070934777395937567021891826080319078741919627947641984115606746190183482596979728663383170568364806398309706902953552173963209456043448639185287867482255094675856260412432925808569269752392282674196424725661564631850014396285426189557154462988690649826425086217985359934154457767745628136160774936938232207422677565291050603922747842656194736968595694728982456656968275178548304458575253100046456756675352975976115933924131954155221432833253723202008076811153578350778365968522862747362450053301947086188437905542554273244298804980939473862606995934917184118361220823986153367111369089815089588664011551812333931001930014575987838838552800404148035456811340394090712690714871678156503358734715201832369811296112693810286566046600001706823562802566630136830293845177838970850257724822909407613411220001656051975409435073178351610753547491336712689940745051819321593685317207965708560212613007009876166634747416163926885125623880954922161453787268011223940701800912536071168551808892191359338816858868398126366905465632892733684708746672792610163967945726213281118234898543034756222479898559908538224782904556765180287620738682304328759249101132232171702983721949808643085849728276906136625900583948420662300159307653820494419336427040702466569274774232312502040440078936285842242196184575716860195644195777503951440843954056597289538143900296661519004829278180220844271546824775571354080272127903734808174302991615758541011147607453799047797511338509305704894763385404884539959494893336396796350051540497302027098705783715185760580829664060809694123984625394590757206806244707384570449872076404605757816150775721730956118097201933361262943903298674441322202345424646786051164678992228074684355442442587122691702129710015452443398531941159597331340296242705028281842149994959762287045673067494938036029530981683779963537048182152193737102174369791525417139780565229023799607401240878272155917447551939620007982354200027477200386521135331982131097479321325867440142787680142664100234958504801242382778397419059944381546565010094444776684194651274805257755426770427980509197884527338020300546595982923379550375895896124470170703925170094416560988629683921722904642798959864718687577728823765429820990241150218690347059312310585595613733176439864035716233750183811904771441310994237162248641717482735275857000528655019186261083508754382764451956685799449424319181223340380787232980328923685012014335362018416827292642865859374112947750237734717880335103082405893402371258398724861787414935175122958727285485404895707577589800673517301842069707199554732832909828415232927503592898421406716087067274182260679878009022681919766698276356002850493289836622692098217306618275206602360792945848389908773490846211351296835813778429610023163485344990938864708389605661406694735386258689154400650721639662425183750737324391774548603184765613355166426725982045535345426009206499958529226417799888741299133755857865851109203890700730505842907073194875816946513489745383804199781745976650025854092499312664088664824108174985939094149565127426626365952792792004879055922856485194349256318809084390912821385116781365718114487253807157702110866035893241039990421302682033001086404698693641468093644076231352137483577503670202724952077479647098155404581107842620712246084233545456396338580634863368119164141393420050874640982724956678638601372728426088181821480677681510888141178338608774912202995877179330960408482387844219282796950939326922990452913102429376890245771234967282788020707569027896926796949912089855308182066780279205428795842093382930311542932450790482661926530783572472227013154021054043256773576752886151970676513980806180694163291005046900921272683855888137111298979118965376392723545714523609174635536001154535443961782497521331040335660471684207400266520121118302093663047421256452207260190986833542502936742334574986166477688026531768384860347327289549982342427638412808887281399035475067328260512170598629346558882125064785059782701623739592293073928072390702245047556413460497835285512103373900519431357861804067805902225183831032933031905227342013674024075662378276937954073735635252865881914160373621930605649448455060240101126643211789238094233073497290425408044819456759137664037875628796821971667179656243757734427262548515743538456052818212966517949378671126226902895611974905869789950917498657187109700833875124105142191468887832520523954087008435752403025731009487846357685174344530340655021496113001984398670019034421049137405626804968168503025019255926497166861783551987164798207589204133834460585621962621673516663165893560695511104979377148338436195960249527855078883637882811216146114400741972776088185721291667677111797321108149110840875059302611362630707596288006560189532330400661945448012268862994174616298219735078232627517238110269938387480285906111957117081337817599316703826069511835804840872962086325542666181002774538771892984228267737700572651511859944284278933218111942428533002103436306394651044013041623036728915347582733349922540120142423400126672998962858524587370109753464057154783844059503448666840146660364699768354539864435830423562815633061916161559766907457090643010136726315077086978480041008674403390094920575943717377498098412948854646513903726597016418731048548067748144105351118117412863903770201093246408886067241513752766576541463710474294365802847966990903734405032824492724257570074185445646618238336881824010092046664021841009293336247143594291002356986489286034197314780974001741828014398685804682536689630322732882776707305431723653400278604442929020031478976296430069696691258509691161919176847655225153290857446483548362182574649027200200862506471429739379707641665493323156208054162628377885664819707149369422407364358053064997510462609243262251252802694515681142637350658543848832739581357888284223338096273487542053178396358373181815889643107304569269329072654959012875962494155676025811488181100035483907634843921674049539110347507185420060137647452003592249221728807614922212651942995364623214939582703804963282660973313279131285993182632120309412133028016999910310160237647382629457990753268543426692294277178435043603448701095400042537736939790067373502945543865855467776065311341591161269913718042922828426539991317679487239257973241741252210909766155663359330983687316081091482171016697856660960420975918248094994340637718428783296137202256959167618130081765733660617306463292114484317410472185533361417684318689938275945937127610620735671418512400017337245760911239011948235871987522640106967199027478794867136734152806693334192574215931369602447649512097173287616626332839542027944098351012956368050527912392363103952213922153307766088475385323188699706752611922554009683598856938012813685870598026262577820426004906322601471931185568509005417418487290886983009697886111622850560881679183865084795935336780396221409314137594714742958597670414635225558157911849979007608600851570743146023091319449701106748018117263433207397193528239836861706448579369134604846699211120305440945952301644175679805107400566841123501154218750452704859732579992609103156601463735219705094336548659437781582139192808257779089291083828014220831108030685384447983859548353492587280079998881303393367517393269538369902928416580530513811024759352673221918045990240845536659764018446255115534548470581665713009068004268290953868848897112245938902953257240248780254585837937157939864390541547153744537987471822657320951746431218915140584189442042117809847788223011434913330526467307405606785091817099565384429724777389013508603380638297511595656039208494134262338384636309684334114144664862815868192431285131754245857043914996299737911620144331858215532814709545537667511668956623450564267834379783066480427056972436088395938797352143174999535291216291447206923339812891861298037769850422995886721541095314398434113376547999249366500027394867787012867840042969906490645957485270796193230214280603807698983714622075313680879447797785659290636114512236679814042602658705064605752615349429297184179663962428407627121894089015689574222744390320737065871968861524727231874620248621114271819942992173708799879283543831726698817795067195202141681939819744991647082990656645851030205144446058648365208675665887745071297149967169959471650918880823725561870537184643995981801092413003064659203170501493246599533388350954400052487975454347793086259341542642779684402359235858290114242823014266053642876478031067857560935175026800162591120543129984193927274574697506735846049159425106304252099898680958384068977456309939069224676146563241301613068676498616984319910090436112690094210755623908567403341404577761097049203410537891114343794226043009814597984360248865930273048724883739527940486305914117903520125467786535185512365924952646318371885157658474815900500622517775968888026561486156336519026476985064766155558637914441253692957808777412653266500163893315245670028005995300753446908659461855417273310300448476665126257985593902746910804026164451864309284139899192906794458676939529563733090307880644716856800520333006588155689164338527142201731526952705321446757937053378889796556225578144231335709784622022176262929752429072422349397566145496581678559184264557743437187716615131252270179319689232080696852690536919780256705185848999389494127035718898225231973067681105109981939643526954844817298337550662935001845632297499970210769866085140734383851203529514869027791739717343927360497690255247087279625781886706483982498108051853645695172254089381489823428607354659435144412516361731266563738304611989610763619171446666833730716015408798258500562562449592536546771432548255414625368794586201449914669963384106370329705288546214074096752901283446199081483215831580846574426603988586582338801480919668085345520016178150485837491214547761194271899214740618597169362239349385239373525948685543743961360396665073129344329752430971695462847278016203040076789951161238191149260915420964690056063181562879735681547381437986345033634689341717697729849284132247156206373040051129021757288580003287455450594257350864445646677124820358347889075404930172173017491981321994628196125654821047118972394788777626338258523395717830642756435380587580153977693363541638914633443467291175382323371129654707583877008401990726102615267637965687794737449101935787088968817951552804099720813699597229318814257950455690336833363446187323000175811645908548227485706335359139022560671799814063458270025850138669312037884472193500036414316265734335191211624876024240033819572687596241267856649322482947786058033884191623819059636626613970290240592362697640923378234181080220073474774539355666007933174172715141989895505625301937912303389402572527791716157258381962713306237320395497083571102105601310103647084303253768431217550895286722999303288906761731758202646940746470773988598943327856070108527948368729849408563125253638059150961986825543723999227003116315699936795545655740677847962012435662985085517851396959555488974675983938313652554804872216459545955098976563276566736962572135370056640032313693736828958468459928721814215345235522585190154147180110235807344611779534493211718783139697945822203880109427240627464956397045151872974647069837682115122323079811216472390951766727294526733978448305805465557130975410934331428209139019482879719034478971483357786032465979877794460925278263442919373605938922943122244654914459006238572588816527786145586216339740703051676031302152334279826589152364137689286495276423078063109999695348121762649006845549886896819088578042060853894053306404085691257730321566727827804394525829068133044639877258420903538461472857747057375532227516872924205509593294804350683446989315033649924174637942759387241299681821492655605986328451662171760711173843720442031784470993757292709018999081386565435526709652045232672787201627043733297768349098606426786955681498749860824284086179017360706146205203763504129833283623007411051281253338285310758609564603122115598960095164369254470084058414164958788333782893097594768824048392081446004305109031865267827834362161605078390313082054283541837582901741387411179783659758556426196713968369520250940404573156147085029304281577556637034016092868045974849881831652614389968261506239995304937329026165698326176890884593567750984606929852165563012206284480539986924295792539549144138862743748467788858685589023890592019813573501065669704081555364355319424102909098844414471074524578120182306808335225598455313172828548626500189189258236379944258011174070542890328296859966437000012206896355335589010178529308679937888798203277781360302335357849598134910932112932771652600962793866563736583199923400430664042826479923751942858527161781074945634857544407416816804574917469280039008713510394471583131131249316345031608584619468874383186468371413346346179729234850809169213692692881487153253709790941294655123843163131240764888156406495777079880040225665586602455895561827402463637457064878009737776436394564202133833185179447402822837490057031074443328777602196192404585048014753162302587742473980907069868831336037873848458447097217008450717351224335281074620760534297590376971759461125335255988924598762836668691445690568574943074993159521678981782987497014590735053049815012524415552996618903138201381122970287340047417288924304196779689711798076433405460889135108900930286884368052423372509979795413905242086311460768693746230608876431343366167989042715220261651933293426631813947405595713175816376876483896918900366507979868444832100160479888820461922301777026446412769774554787304096560683298664992972848470021419138184600630960799307735181090191600508684039162500546499585953384703825673900345868755734473790108822968589449637923630439731319900968789221071497691783008456577302816022646112349899521795155018824349255643268864627657268860660601374790675805692159671765396555538855983052151531753168195455614457956434191286715359368820630265842389381083378876295937386421355670768612559483272696598182509946823749967194442630805658412232774005418824839212633778001627390522827514592205638304506624154551434903912700918221896278541412856338904824333964437504254645084712717413399296462230574305215129196441896811930100911154940429955614687265179359603303247826524674830734409332571328230574772977438385734854042214157027644926475845313064605034873988663725982078012169107385309579918630041909928653065741211116942844820115106833752414973231457599556541584108690921891453294952581521841964389696609894425311448170134614156590677781978712452802366522105310253492443105588717684102748493277359488967843922208860121194508577092346659442654215055663541307430358842101351521666486741581194649874912124555288779717481360735365240381552011937991917606764126709632713170009545248632893458453243244955169936930209182410217477513050096878491355018961398387301027773055217921364807314525596601465357650117921423962063994522113330741336562978404357284440775917405967416372771027691379839670202507006172741643989010668226330935133275680251911656530022309193820310738220736555989353087727027594006396277414086179811430974343231669935477304760890124603142140359010609981575891561149981363992549674198387599622827835927212417426118069572292374093930991184338982913715064507017968712475329462843378535504786834116275320016200002610055965295219051103078670237468669358330609441816777348847608248899961196661454084436889966740688377617971915628408239888913488322714755394426673274392708182170745663121358917602485514100533032110312538728793040769885855554605309431649657956222015810952879155661470753120067117747175786977464971505893841026834817238777786187208663530376767875952147825220721347097247402664732888669023797898946569527329722991875302232038148195858731617713717244682328710879242543376078902033600607822277673384555835993026363274579896824786149928860576653860442042415623216531639295028514008746656792002477482081900021781357596715794777812876781985627294957623268023281353556656651250338575299047599563413959823095737818333356548943426259814753771943810684344913243292663489331532701163040815726361088752902287201243805526550745406313675266335600257172472542742471586642029831863668642373489262908031896439087318954987054713390060620848724682656637305558959414894353184663611484564529742938814663833204689538856940076055967794034186951116643935883844410447167749825034301829741653631816575522945919805957412061569171354086243939491553432832510012370429295725293289597924752971479504801890123646077625431617263231929016955296789510494815807293836421550742456968128644328423845038640011782713105580349783738459602509947794889668841434745099149058170518076142448222414108368154094225992016742846136509062409145803470427704458247322689864150010356788286825447973370917571023125226462318285965838286310788260433006072600720719109643131871325652023246391013070883714559922546097626055037291854726583625310296417087510761674968835705858018001413956967132259099116490546885460074891253746528403860172352702142009970171282355351557968856834867567922904806635726721562254712238899719370091574109975845904380988329192311521746320039802998856330708671828881085119120619493550988461940709393028181431564896841894111697082177454133087683266659228437981043411212505154844690067081944652305287354233288657039897247998845808138525696840324995591820988550933132974793838587897252460980905590435622029391225273900747870676995181052444127926772968966797260058582548969192135428774910985134703255152007596757124269214340744577103062026270161203127901607516302792182364748100065552866971510703149320060953290762456289355565452545185747729902902644432145542527985240554306535853692784112271416385459594081126670462604714744210363748944541790564084805723687192733209258256711685897904677550068943846577570844680331853059654735182152660677493681117101908007780877526885387493954784378354851978476948723376982674573991026944641051419317078035960968910026436273534249659269107351134489350473121518739579140246704040469450563718872237845924633912595610942386328968196724589045761353022174278843227738936611938476400277902886523876555624913139128250825991347387043065772651787315398012691248142936025457962516045497901682558842345061458087182936070712655589887779213088590425338518421726566073447785810977884604461338153930311966403060884413650850746772617633950381959635946943634515399950553715286654926393140639581898295298277349137956072749841655396576610948150898976924706602575677068826172346766283207853736813066308283921791051780339642838285615223377238540980826846754187653416846492253039124774778574510374134844153194731418105976991764173129297404009975620555768266376907033566059476389658381262917773062069070336661824273236410268318881473952019161341005853046566524448325128915684970368423694966962808557168018133249274705213342360908429613536231884229828785545277184328124001105776690258935220681354306861454111610280066413830711947317632885060228237619662113331451004673044026035694076240551983040886259278537297661304819173892113174762130154605231700234690966798732828436377165439009983581352185471126728124175095908206564101433207194859243911717886948064961655747828924417805208167876244306670787376267971418363872564573491693739693470633714745229878222012645570680462668118348237623727425067329231354396959194051199293109629767037862969962067670507416331630114744793087911535122561088604544709808893710077371510147985701294515117932181042505567659325006485271916127717127080880731329182209850301999452114251824600286276743255374693262942031058186768520855006249957418540923360124864422636931326612177191284196871181146248801950701777358391803646794861529978711253256985681328857700895450431514906031988056840856708029587299158372846131872124277755784899771134420863294904921097560766067063372650989523077504859075211440444496471817812341413387081097371075134430308983722341050334705341336838913135506382544187753471468087009924356730937904440288555184097429251874708152915201478411322372393574915787475966570809719216813675276071512384076893234655669637049660413435027296414534188069880911001422268589217914465511135830851747255977841978494249908108340667221748435538491087454461334707963972785300223020693969539918479126256668551246152800926381029058107119564371858022281725846892553069487146792134695270166375018276638352164903779547242640990879842261332950087737767112715037005880418979034529848154230098355009027667028853826206111440182543223054734893251316922895189693870317835487258457911797094552388739904581836569296785100611317473427634653613685464739049504289658629344588479240708516846129698495014433071068386597583547044066403645050782530981447496474322750252670769716599913762747249148459306731552524649517287976028397475681763537118113834788936409076524774377355609918614224029477913158115778900708903223563770585982103812324602922620485168646383011759989412987963557602426913436561802478221142595731841283799947097196806720107190962187351282288135207515609320099142746281176128133742877786482135961541572708302703356772785715527962906388965790289622828566599671924474229637613330778999676741944303576017662107736955275402125262677665247114228713319688016237553781488906852808295946619594287112164126977371481306992893885378600420345776723696358321764327782332639865322912820642622314447827374375892772517100185904529954957575843274081149076510873452880238619160920366468808758295105677157202797016858857853460151879802718860387354232140518413749765751526471935673553013965917202967074394687121399118317559317999582395268474265937606326718298584317576304019412866593785418478269550447106405820312049535708647214978242452934671528817649962066593512851767178800582227250788655740104535778339267545391415133025455455150530417946769950920216421265475141292021278468715757157161523207543637718734735141736453754254545295455602597578342266122867674676187221645602868057990480216867579347109055933542818539984661354139126167491838145645797961982520211814495331404249496765709386650734276482276470257703130286433751189480716637320852827935527703238960267537973856377055385410476835858543423186302409669682481440512465429716241516763956548741722912423672501113899722643530600762919970551946621875407592116173490318535180335415715828184356818128526765772156229892315442464298367177040997631272915143425666616679982094014089134646182416164787005853589446199608131347855556113758613106912361718176464320254747191852387554457223761307028327192096551794529697035896364790401955466050688799504931022437163019357567094958128468921525267252597030220256683918228567389919153908713103653697947899572274561739172751057062273201239657831692961732090106558390501441013701777313019324573781536935792308405969758424515131190642723832676741786310261311678479061204925856116496329199000157925171757894588543689321839737044620147313022782366404006693626448594605826795565230313583541581067343873862490728955616153167990018058246901754185116068188684126242530147942414504617264590658008299084769021045239597606834838201485815091502448193326368857433028904800524713350477458255460278790109772502303220632631949123160178179294513960126246811492689306137265053308639240423359338266600468921942942799560743556778586879883732998926161095579716449363442736384723385940083547415804565247671214751008210292126861811097697518589658515452244306232026824710366251849601471659151372318119707941079333785083646944692696073702811995314584531772088271079210356198583943679383733187438785837081511357934985851380859662167723408555881440898663615960086604505564807206202358652017208852692597535036633109626101505355897025240806544376836470781618848174694826503525675421316416007516701667987238909129630970534026469743690842849645398968997662363714837292996861212546149495711840984042261194965162326566422280507977738137705513492743707551650151502592321511681243166950861572692479148044392300186865606838373236107018933393915843223676524651503163626579704690731602339126228805528923882788684908434604478586226820608383349972384873469668907844079257704521266866317076366971937605910010232857143756768985173999382793004040045000387922289393088176830284500261544392062532413045639886935444386431397389049784169042501231645884260660573374944875402005135474848230809779739963417026078887800729811275496071166439325604700125647369568414896581387866454770355509710097850540397936043679584793032085584993049871378049219638355544816391597748794159957115084395577754955115868811386489086019499480053853974481471558067947639846907596328439719824675027371773417790585350167893951219075501380860099278870133834084701660284914363830986067029779030993701183813602876810433062526925266699938069063960676101184241040424799472027058767220117752993749773113512469376570276739662497541284997265162909219528369253253363475852645028499814884923359329686793731340603378170736769892623963113111097272322363934094632784515235674352501055067713338487203994891744535478599894039637322248831749353698839751905483881471375307880855173740065746084724423871286213807005069546809353579327468290752290412933954184708089586076472099057413795930732422358351934603690801789768363442887798213635134812705153951725851850392693855373996771270574596275203203494540781243099672931437619416474283916163781320849943833709810989668973597517090674219844108496179367965910414131690997095376597586806369439952519010044222796534603946514272876358402499892285220284102766672995416945867510141864632015637560462746906517518328496333233341805590478146298087994043643099622899807497240933670676282885302484209017076938254793804360782854761565484288135332307664243188050209712802376442499150285043490688875238775569926770397680739309530375345271595958473939830080441681030106840257971170006663641186773886840085324222212598128321970143457499103591194755078085372960897964216685117214658371242192868288711204487762701682980600199281860398919743844337886473075299507390695629597340554639056015079152397811415878345298651292168102240347900647209957007229048755840993243361090590966163056983418513312193292532344561202216155846378694093817605439829004362298411472927119354258057486407445573368569552186572387371004087098015768539628966545493102631590230903797611895535396773301570661817606817727396468994338095532853920978693033527567386439401041255463931799155367288894957628052168622050713268667760284563000985060942969899553913634753039167679460446128897594284223114701577720265848374796129994697550587561369997158435759724965001823863995774666070540524737181693023644630912667151458234077818779677101686575487242066230229627871733201837317760584374105515594332612712223016269251051609932879155189181533477405698286017273326099075940708825484353509849328276459526674617456597940740481611904512561435698289558519201498789031684041609727487420687212872784456179186151280204921583169857388919676175520462970682315336572090251031297447003488614028503246674124594332643816816518936102919079723583296064748250178387544197582941190292883947205386102678570146004733892026455430675719442694704710371093766804882865260480243829571327726488275756218308710092636983471243372612248981013037842671628582827299418648587787965524652374066842846466396719339136460323303109083633858234731436177006389508563880514606486288525803297686442421718648674188350689795698058117401817962321774948719921545744054325727157520128915076231355688161428165681273249707038118795072121210850401288896350199215360054984521849857461558755362467798673028763411054766569180818999765519661371711726120746664423929649509930094159775676463897213585713573723595282236293344255024353974413384559548206554602457644892455970203619224034105288459448708672654047009162311970508107322246243877917745387485939184339903049014353174347042317656152900509937619482008298580350124462800896238275823959507384773166424778253355248050270866951843616153658656321912043515690606894728992675054904694118805185806605591750005539791779963571390732764336805746525859685923589414237059088856332922726975690616469639479173424400242905650277837270901609796297546215222003730088129539207698298787809299270604256720841707884189263528342168863725996829031353238384046539809409421981555147777728993679853972016550850466403302860671367055011362378854954954761518245128174445253842733922485003577665383817481813886171503900365819388080101545937246060473434526260335497450679097779348497111593258447841511836733723500420220485714326713201472594847911220952879551630029075938968132945783447953305909394681698170589522695476297786749677484037358810312084674058296403162047233782094698331718096284214463749048928117355198824574165799877599234561775565425117444525855341566366074731116020545765146792137393766234033323042702738266377424480456410811165508995400795438833006302406992321922286730042736244286508889350940503548540055597088545554866023002947523368587012311126867490403539841927938894108682294664763144445392523919590334732249014609957850596114613189651406926916284302951678650938354478936993501734290995410384776436008259136946255987226012724007069470890549038000173250966512068365886785138462365621453226279649610883596843212652990893766688984100981809366137475503514477004172518686977452212360629499793456012139052151502607670844776442141744515321109118125117719640108154258804594283902862496264590965090884146352901982171494604382961323419068075084195163694461654833947572336702413304303658950728619395686877912616813441422603494434964235563967865351370843170922151612349017665369379923789846157148144484455827988536846029199047781553509283956176133134444819523023674708162173072572550087745242013592670167428940048922347251615124337792192328234283819745890533684789917132039260992045588951626391958809182941053175564423410682213032732748874460276910205616862685578271428970418405881078380562753821466815219864541671479604053404268838509240529658350729976365735648095984452954069224080036441676501003702417005625400355426726860503358515443777121701422325121003997930886248130146708929071676126184196788060078449082540202664003011249262137043323637585720080047837759491205449354552811583827942655458917775871867076329126418381582860036957451700048138931632083844953205725443934009904037611496839901248603058295450128999144282432411882160797809372132312012717408746301131507803511543634889711607916294379692905851877816389801919765581141704610620962132181238140948790875664381800095083052594409844977390984147422672935432227319504710921852185419382153256862743202753308659841494043770979082555774868944571356174546721632054125300293316389907621047204289136337982704127105390186918690801581343486587012726417722445156035384391237794313179049418629450504103018086419048513180684785347590095465100881312789949687230574165599198913316666753623242217638321802625518504257167216720223320907632977867588711957325008981019369509431667190287900704299916905744556576858079860198284127148141191213133424785173696765946037849273698547924818236521114343375164809290843213240247918256175325426794587062349872398231877332923199530819508863604862252417447791098421621024705209623720244992386808849132794519888487092403018652269733689126374797724207498605459286419036867741337902492252657262385901729222756263313264771076385804991259167830522562696705272779230974373321669673211586170091843239378197871388905049231370671127973077832205418783192238841628206791093022390108097038248946132038204348852929258080819992626355929241949149169745029834587626304523045439931297011529933116826411334454498256578682609765145159662363088331375137695310425850404470286529040344813704432846384733168611262340734110416167819008102911077368404314111837053364217715376209476790754882520779210538588478643285951101995405961829127886650241090771933353566653435726510967573240360182158831795693739836015110667240541904716133477523143444576014656474331132674915342226069620252263319590564373140540152042913634486729500101578239947671771342183490005348574147664461795848629081363534458468027302794254020138457802616454559847478288411770141392045210748102867654996410958832639632214237295460448595053518310850962365454804476756584840616282613513766377243399773713766264044409648647391994869827590900062400146352315954072007768345076391870008891013235259457900097279727103600273955224614842348031212027894401689473851028817725427847126173324851110522996717197857963704879211084946395841021691928033741574240210516892549707966171190361982310069519690032437165242907322710651611050837102167505563875354189384761882922730021525677803512660714049626170234998534852128192815777824187238408765969051437058371706123500630538298690962952984813992943955697682442809882603933856952666213083930306659202387594077716241085326064506211366925694511028678339098340543208577496444373830623858672182877268417480247723750785129495403156444442944365935074161623826674320205405124386617822127404384225084913085228884237163922962418775550203484309523883913465626784431156305849558478579952861524517997790795527762859668832449151286407675190160448729702744088267445730676978217163833541527028763935441966469254747609213378274206411655272705381576247262990006179408595801970609321289116005263036284570596923268118175598258494883256055725862166209329207539082120813484684529729968690744919887425274841349326552945111698545746063077979135375971494353254250260734179517767288737674857057875487944980042169230146989584971058163866081802211327182742564674326557258975763540515068736867220523453896792408580689873711015430936705522810004027044131053782792364200192478784511863817804954653845655741300634354444809673445543963749196572672098264837014913563436114207470811028668753506574567246054867025723582422995584007915206184272240332126830330718759111778279852167810919540408361282592405240296560485115065974349865222204358143787055004662803579269169337894499243837509814445095014680739784437884888365141975001853563308573861393657399631644855070833346707733999173612719251132334947742831515202007948401063773556161959590070710634647707933073932409670944587735442355628607572062002712484732039017331413165374826130058771540071558026247232352874336339052566289297331974412979113509614357460609488260853458266424829837621950173018684081581249591332093678446048929745360639945128561744963905645310409016548071897019691679009846177789171844422954458814043172709616394926823680864178496940575922639555827626598890730307583881578664519651318938615547632846122392209868455929999812713862585378378360261427359682182534519862476980817582867881828961567700650137141502730082532231672570003232162127821196883417050132252027219476584416762016318112810699765696493449437786311092728115050696548820299465341321269296998232327682153664861407793320095761308230529616270487642117703095178515756818666192555154959102138388011378505212223802350887487543396827313795225621595118529107775569335544586745032313910667864968576470583265577463495935177405412578577662331583353206437475299071086574783648708158083567749889578132825923961052075639950303824200792668848992434903913962212824562069240305323936763805373048759389587347137613788109979415292032687530285125562255021968917801743046786808978790199444088758423885661013914013616227321448415579691958998427609578043928716962498120741065105463663656390014226121441707954496667238639178940540347426020998065888689694602198089240303481752311385769182286842376324217578748691143416484522588899397749832756074316588970568480322473502325688147827959148719825391312459358626035843265375209515770482534421375485055190179683758191001686352815633813860919572106191006638397409304998250362430130122678670780028736091338940050499463477358712623974565487404441067314760592783464619458105458385341052805919396386943719605457052844947487982917547480087988619651721320386036109721951388055605262104289828572788146460829280230695049947404449491145377209421408976759144654687631846101104574062659846100594585094791474506532259883767144802127403458152698024147441437347381007906012681874581744014503847651929047890352703049569815111861447498533709681900616396758044457666528191770223384841456920846139336111993184079174047986598352925017148035899993983275597956895095401811247450919266069534703762384727293722257506852732905132101792251615575379557068853460725652093042410712839247958951370582504071979220145417548427898183950615406056559212299030968621839766596682952848948395374344308599083350356837055100945852800257534052583114839226554818353838645816097837308341141833629108351110820657829878526304794023115432989141215478350690023615723700492308091577924542041705693069660148636894823044705409998445821966834121899791067678906931424344037412190318580852277809161495959242018452632301762458366619050408711718204051123809768018143586472895286701706560593142277181474648117385898227008190195556494140419381592327138502323414615865789788478363456029986106836208763576388361780619260371043228833875417321562682423771540681597969648547435658099915073458369877090702632109236184578830989193149498989308633497340750979301867849558310009699097633386153361107894171599014558930270094595785969615285110893508423971549224676785642241905912170083774077172362108181560490141473058349779658554256959186836315841230924208495676390279122518453536119889122936291263041620081497370260031656066722616537859622151125685099004040609604552132480204841960103133405937839246130969089833274568837960281484144838843068026734262843196394814463394582462755351861393471672411135643865698357228479250288407067775945025312827414378897287402648839861168485705194835000515702271910113748169719814021025518563582838023539200530394000347614648252891945658403186556558704132464387117950768623076406314882321321629766307379878063533812078572415330397682189112925116610071265079709681070356000152440599521505108968193890474098261285966142033854066677890483024037340170875811979124957988254618489386343634426757613857074407120178247287955315079338926165278831245285643014725625972104923906597171683338495974080511391107852746298855255539322955753714727131234349636742420485944303938510864683163441387065907256976566430098596607337471797445659207984569198532452449727083839692265199919717678761455149191263013377693298525108012209471916320645137382480875274569498223961830242325349978014605096063179083997561488703209807989633919556568053747219362753674029387259410303399747329544438234270427801317541542767096665764507520250527579952778379316923145763761326661851324431627733445050466019111983723796508865024080440747536847680969987614023527309236302566538222311110300378743731163286234963709548686129785318877619813630116090797097910080889351834976014649845684668375848860812265580369633029879689005507986305879458045966368663191111063868472874681695827335658958356738228219507134391108090265605207742209321316525845598730841911265093114094550057643637057231156787126328294578721418453083066111980468638889705678081566891105243295086181524755171603118119626205065216681181652336770474383848091820647977596209971089384129326963346741921247012531615188334135952439638349178758892401424558385337557422068000558982642717869387068970560403524040156780830721389591290875881350009295647803575380882258009511453961195824689919728726716095185594131584895229547141119343287815632214893698570930674083873758005935851430728102052694139801326832766598864999767834175402785055947753697499992812149679117816672844557237422366061269238972346831834763795609533241256469629488797405049962649147645075531707153090246522361164132193966121311170328956113240828960002135090044509966963653060731233889272991561053828261934075575108013759716490542382176890499561579307096739229502214128309352431038747662362585327888326025285899975144775288272662099902087468053446515339093023225063001067284502110660091251463788522827397781242472715754677521977885384483997480289160831075136024878625391230015078477031666987701540739968081245248601689614024263586640384100816248118000873190420442725254832648629443960851451002160827021672330498416004142835901193764738841876546760380499446299953365884578367729785182799740932804305870917583945660932041459111491118508490988567094661845847797392435116801000340956953627417678022662041495685825280329452692437072102399694714940775655855684086401161612236258940288847882851756512751930419696016847391126063520840177685861670470608836151997151675510770762874625472302697072143423477348706161409297275632736409076297405636812828104426394707551405949929550703691416722582995423487976327740255108604492753849765644031368273800446432167758038335530229031597209522240174420486553842339633642180873468307969129090790475034992066050888668473609594002600377048789602514049387039733210011902178404996538015814255814042370826563978884030710690027784743498072166813699952089887316069640408058176458634505274548494124555591490737770745024518610101244974380693399474555516575862531268008930246441982897407249231741492044118823507494103775119989294093670711339893102672374062928071375387339205058678340126199219140254257396773419323996004237933426137370388970792482327369037333528104686248711121302432594931956240960016810174458465619694535949801352957526481809155002120093084795895477397335644627436868259710521367299400400718921158506834290849127591536038675963036686248581666015030157018689847878014503446702419588231008431836353586079790290025418872635462748204571907608479243499670443183514477050561246010283750096465072441465340919299696085116350967064289750712506579643753080283622735420680146650326012181903869216820528893749256281763448189621950577656162548106234501766683908159954481368179632561876745103076728259630699418188251004221896268331564772062171274778961049961160477697154149080785265324621336161453637937778773031710023584209665405110347407841429858600523308057823772259274219654491926354008573775044238100122843303774344840975114708351855340555935226302872997376544166607131859824503191095243029695072592963151581133043730947046150354322552251521981673294292894567118256737418237051518725156622901093551283543349910435376736099574764799135701025760728183795096560380441609717952851051980301001152877768256831062775162405920567863592520536068591812205885134533434283696741149289514455229758909847002909313325554060874821221259677077231750687564514246090185924552905614908370945893310517035446626820337557663391628178046125446447107414295661544085472909191680593543145504930124880317835035075787490469563327999929106082805443491449379361350792694741328916614380182923409668148866533556248445994206659530225014888807917014771321886034992477720565428644396438241996572112823854388235224937282165931568788081907750360047151097539212120476458691192492081800237825275434234840605995397732444771632049725618552683862418106232794051907297948268550987796704344690925710035553401666870544492668689135103513569804360055337897168105264357745008700335516265215743150832814462916744996041382337113085658000236958934805246416615848394749563326713848718962155450341105589318832327593812618844620335742870934518004273708231903275394653611195244647725397662988806308340304251032814388778292235410979410710455171754506142083285207227565222477246560259606272833296000963428876799230522143759461859347070356785827258053592487453566579585676245739703754985407595486701074494776627848782766394555191723683861051375243885252892724450005079455267009087461130885296264744852561324916194754193992164825886528981992288809527404955392746060801029940682931246280461937998114972090072811511631710904056500302086890856543733509234819929259389329866853814887068649530545698244109154313457920972239943717247684805510211632821962555136308949559151634748306565539424801837901682380080291390047244626681173288694615942461369138288419379426013850802753005716640135755535683465568326622896218503144445967006380578072689369814966336449003553896671148920219791859419175060437324546967998895930657968134813969313956893385033198673078205675962100072142228508554519473883679720025916490147177212405171869052523519840287965556095214075123908332662160585523210948736021439450591925458105741487516285024688915866798191003819691269619163208080307841373944172468464228292688099783368373444146975716631746416927808197697333982784111241939596087422426888540445906525367402980797179567654976056956052705651808444264676269207066989934374907689273325886903158177669063275460815624519586929156599922580171477889325477572509628139331143387879124909397236821892505913481468999378744073578253692788102216959327151790877022075954745667819755893341540683551197030191209542794095620403695765690128839110470973112173395593597407351010451676563931333201525166430921568586215430130398345350502183166363834268953813056350830086876589308698618009714205850030144942301252832474145097181631071074581947462068146319541509190396100824852378490952667206002604741788497244415269391223070455428679227859523298553683554767342191917391235322407752384486990930634619817237724387664933945912297490966496979679217753085727121354925149726062127487268425392951892908910458370203606765193258204684368484933407528781822749439994324835394567986408526300879671978964598408280240115561307720829682250427555631848229380782231892718221742048918475640214946637982742820524866391865047151577457944760350317373390724377627257267193770932058136486310972809192417075416786723616531712205814224989955843339573676087288075543219691610952657185713863274063089781082684320425657896463046553033335805829688672264032169211679196832408246626985227432919632939680031540711012927201795473187701244046307803920696461837906020727745748922025039326631364997115455364727999446485302341494640740230089742118931162954318924127603178239077960079292452857462764889403294496822720991706392785769117139849227723028358433289014666344255806758847397801850515347264058351495321199227185821772990183712070049063492156714158028909816484408788381872763450040634727159449802667244422309322174730553161366623254342545268460215921644284489348431091461575980999099389130375739372218197480288449591650481393128647454258180827074402669484826830289280693358008417334888729849843448733846046798750282946997594682296740493915362069483218981096655576317168992645853132072632578828518080899195835102312530718576622999749304117427710865082208837358763322930810611620529441575992670481623244477043821134403484879939421874370712954983437762686727916435257408350653941854661845913287458553659060408711565002752834518867656562548667022964735565798396037097555815188722146489908070784641433432942068788138849591433089080483323642910673435764360821593698015518872084312998687484598513681761950054423225544385688475376194008606889371992009954192926209251106039473552915777568019522295418159820347732478677651007715125416996019106526030115927058276968728671033156121210106061415171129377203797471555535460825267386051824330881493640985448087580627656249371283366057577924745469525235335140454027605452566119812678330401144178776879720350638809355189342668363078886986383463552695999593162600484131284209406450674905624757488310182937293993554124635196750028548347460796936705348973200234613031241868960758012332713267752272693041024977431041498330266795855903580737586271883190523847836065147290633520921993359375372796407282713089108037046268403160448877682316105330621540328770344959486616842640358172717077786760890589204431829437929920955358172903355705741946443538012769729739668074158108543760989550330050640611142345392064281342785371509755888324246945186320745386635151575062894825568542486310372376277068706268776938744161594021515064621103443592250793507039259642489925234180383864994457986221761363599133934074174707518031025046838805224380237598582949417612093531743194969659418616174688315498666570218318378335204879148308095175880908484962886208098882409950481697708041546413320317677697565185464076584081583883958746643428808189104620002371305051915219587888835464421529425570520960151144244346549133206577563433193339819577752770486239303610895429356620713755273013726749050825227003456533062255662483444712222251857701820345986763306693252144177406601212009221609605375241108417138471477005192342127139795415269177999680247884182168223757381406268042055225445092223382165898866103436476964561072304564407456374323181583310367891416335160463116226456580278443061147889291511102706018415634545179149379533829801540711537894008166184248335443436164255900227764829276993430034499455674757792222517919809527777984708745434008235653587145910702638865945118657315422553843263342374028562575623458153508364450663986772386264264973013956476927723483430545752996856010290126222999405478241766112891422298261227555525132589409194267344781031555428856101782154579278351405963187496862343315532310320713096550684300008276835597448056662569115364849277613837543475481711494903786948590736959341396549341951393560072701168883810953475834959407702564365023823427307898797040665336287796928109780790635486759998236478416135836440784476036197823416234771227212849219060284565261658441881719558411171315983362025628586081127596793120007844744608182243537026223783789216427700426904040223531182198238620186572413041942149895590516791112489340323934262070052574145925886750779826680192551796253143057186302978721997480458902012571381655088354789042042256010624040774304492609723717888607318843767541074338367442153952649377073247884086745591941233313338560142698211031544630698350932519695842199441855272596952630853579400016113795828997821165383951961278461028954237684414928977420054325864784124351770240546896661506288120884685110269534580224192544920195580094093209852751753379103290917972972934021752673866324196214180292896378458190587831103025570763407715977242975222270416405971912062507561711819839871200395386233637371005197710016879348302819991041168191964989455745228090891097843081423176668331140780219494091868169588300021617774306784007317006291972301038715824555722502217035066025102457171140512608246023306266798971427690172382245773770699299641039120541570818652850897725479146007372612111052666484973459523992420901726452804077871826740371826671629918784616707800758977215744969344716659253709938182219661304499797866339028063965012565050442056586137572512217083510061779484996144108165722367332528857742106694209225377330265030621008759442780325319430707788410826269910204432555303154166875983158375863679453644346817700380846067530150472730050612550722150636966741000903951006922675000791756463294698272743920522251111578633090100922364319113204537244225616937412225676966067711790684309023629253864755159965765008090991934281931270186184861270040334952627982455499983372982710861386746325893305036905628521402828995169447624962903861326021400683051416008771711737466114155964248882090700110863287513307096907410570380090761053040652930862959713364010849167258842270196448066523407876806988322461701544422471258236972007716367718724125851271852001816109611967624283397078558598041181592432977495842288635693698698529662593810370380502854658538408848753714124420876941136414461631552832831850567854174031464390940360015632674561395475496918160360271351340191063901224762247447766479285956341168101535389040097006983442333686079636322177343979699376441166421241057358920661383346276390965274646642233223391663763307435679007782415349880867998369159308350708651265131494172132252322789230373538035655153948661988909079100755779894964439471717372733228349015601195401997676545814650733108429759498681007936040134217508377525646850609291085528685372925423748766891345692968643132825560700011749593898377643795485551889564174256661442695923128514543384272767531578061032858974927623417690982416373984070174353838174562644389563477786202224459092941600919495642993881044745792738494964998896728347052401950132062232798071561611883416229285044032088513863823933978363451238300086413352683222057863755468230944708994662467679532863951901878083638373012916067962239724088732087117569861870061956166609037666196611383333165261596302894382918627969519623412205901679581573344485267566860969345237278184829233099159891644715319993543062756196519253978136119131612310327404209829364934791807536530636495941138953109796273940730453263859799444817089023539691009557611423340318806839644062584204135036254847652482529538815308761079972448430626083306717526672467124065584767526610597433423993753679970281858633174594837225096809020399056497222133582197145874375320802189599649630739257022159262751612087747945985377539153539304410069674011236370676544023223130017531586035615027659868158731829605572912033926357393387492405154350009134145641288252245530821757157228036835144299276527619193901176187113479933338203959119506532564883388674211252870187176829116541607650605245648685271618691305485473652729507352459478602790906561086411062994142452245229248963078586015181765518197351849117207128164360962163774366964242354141772801539771515959343963301040785312656793940715145432375498771372159762866202236113396132248206309873102724593249231956406857450647679636037674589606496287765288900526125329243667582704334975694956770394928329093214027606829324167133591777403588128418284213340499426601294913120012556772630505702238280232114930452677337581489013251695263972700270212994467534309144826063198971843296903126739315061619422623973895930308144018470954682636412412091900151725397414821060147599627935404112573307595541178918754726796305203170609355663960006103989216280276191300948366491003431851570216877152600437622923309261091729346675568671238514891641846990372704062976863964292964846157244859322723433052232225536024383141176391374801416659556265611900910863411068212497072738442257361555305529147554673920256718045696687236285084088652841044599228834235434850917249413051350807296075696638498330664647135101475003657860904749556118206899878149435535897668884001134099288438633991903399980236442755280614902834102651962481851096645309899973941346982593707368142501532288004331509022020533102685185763010461140279323689851532619882248673668568336697436593724181694325241208685266778160851433402905427926008930859703305995639324517967302288020969898873871783332183970425767445000660717857442525710138485747862746892272714263163815045289786282009880340143817452478623469498735416712161868610067904313231631729141675287353939240258490959539629385194264464180419179154686410755812785809049121233075647382068640802954073190420877401820005587515719330502740177637468522708814902777062635394657609034485777003423619986006100722884836678794605952483464345071825602982182858779112857262247652668940889672701129828921628297465604057418480283729894114068579917671253211106326944665602567605431278521166581676177558007832965609831701694267304095266650487964672411597871855078485265966581460499351001980667419319380054785053653802953995606648044398051875665012633360240691352055327893026835812067364639480298482888569653607752912206633389868693688638762558925809606728262649298298732055160111438765543534416990757279690641437017798237065007402917517365323825178647766263500150865440870294796214003598417619783355027867121640642614149910595797963335476315033656133941802002938687379888473724310055876881659926166719381794158073099192374460388901520934671444693956466371410642178038528192878201119672656412824038392049217283595908511683216466247816178480779142885852493002646530958853600252784628741394397092252346490027649815083674225452292580709212356370165812230206833565073989706981436055322131004506856067159076711366748818711875726427227038444522525029140799765209228148578834177982340853281889780845356750650996852121680115998832460299842226587793204596835438232309487266506530552584613681381028189851169994862645710590283030636155224798573360135458108471672488906044120701211618482308892771721264593115503715739389753494027209551600785610445017834419274040191933106154346605997268498706366511814562627082116445340790087704711332657467402245260606361613480820285379832176620785875780540844059826767690835767745920125664079524155765636006522518880961888186689327026218287747086728360182464796682776816253418906122893857923984655620767542017295359058762821816162260786738183172690001452008557047805174970801372020442338052122850079382930087260580121483119317855636699474259368025511649286058505459227109046236081253011064210452068188509688982666255059947483102785503555530898948428216176260945623182272077538005053774660661366622363315118520898734384048895783050653611683084109738319968292929273160274036823986278873864309222467017180929092770748631525339003478904725247561130788717096010252456424302360868819273548738314902095850877321219541575245794927966669698126301568582463249761173072727128836607400377914075747782002349804351325452317098971640852872393699075459619288007497975905318349036030646968811238951160282932866609965272300423247271879413582721404557469547340022126501414516862301194427385231387122562179790566876640164386115220788845002476543928566033033532732301226523025472282719345487968842134705697327333273921743080569212507611751034439556879395109569117450516152792644791246948181220164044917766869700176685446524997580909014187398036913521682214161817469759120094200872815299515024116648034553035494140377487363451905342683366461751717466573986856399666212553422792066693136493651821880780306100833110655499253725387202051659737948703168016800428097686709894036516391768065898110681269818131113315080991753324181292138451337147416851809027910012997155591189741635247879350879622678218395219739893810647190309557430470010445129300672870435462760992351688675610822333156659208289904455141568454774171273429715939356273170151619192436938643658342361567655777710489404349695537684587854005958824864821340801662878894182099255552349080797592536263608742893472014779285250601297147680040173660528845901821994818158754436863313721947120144057886940427975067689504473923666343083094837732446038201776175347479702213233401109548114819999074797404559724415490227485854359682039362901311354256921605488961291383023265039278660364731014751718967591507288271504903271082034365449126997446388806291838996121465355557004814576932032763006940595364021755685146900826535054619648748137271224477355415509639954162908916298337756283913822680124375779726932378404213802629770785015910453120471853409972397512918565767364597820747374172855964772735766222883014499946477078175051499326698643950600561767593867474366824368328115480095140637060475473812321877713555624679709724025956969360119065458733901820052492353476176885098932623527033287547234275637552283799744586679224954638517594982882973990963312900475931848632580121969333261379260464365266299611220015623897948763421920888533061353930015445788515340923341405577492078310973527336434106407077770180426022617865048027443354195286181792934373785206886203642068003927349316469851873466002810518626205130756646105246087085711515068499129979760453787284349051981039218111550513768590569428251146800998772455329178710722061666269842860720654543288240033780499836367523364989929385088228272045710882589320497001664803382178311238866250064461339066591934136729499458824725327872796880906198580935516428033773305455875514559610640752787005236589448289110603179408244870954600063980525666019187261490689056254325096214764865434647861761438945668370945389550052925750919402019286197058189625072828862054526465804255391673084144508115257475307465347539358420573459665518331535674463755682476671524308817978745286895926786749164274046990225167955769546556424940720926624769353550489346365651080284427034923713225652606545679849298930237011974190703679262185483335531350384436590990064344866878148195787092555564770646622479980095757940220845529504653111431919355272054367343958004274159406467896832320036543644709164916262070708356009020618207833346768856318919200216580436465135954745412958724761610844046044296761254403828283743703852717807583268614744098521255212718929125368243506452291597010153234308224366788158502261027540033263821213234855806548469517446039910545751163126328827194670378498087415333690776911196233118467947225574442578164376569419444447018286268059973145075715803760223302738465120810065019797573229435442572809974554117884560863964557260997340590683685682711875758899688022184006220957743373378637168879118647216749048505074722336268607070467615969575441236223383648440135929843208632178039335680354157575963445121238464361692264556883828286751973541855685792921375538611450147742013595831142667570082765006859653579335868163000184782727954197824796767476028349080572294704592344503162061911234770588497746202905924433976012845612604732888884541443819290473913338567227562698029157626665236683405038975370345734242002547737551447631777730041190481060234237594647669603703608215626256074091828422497389173923130386700198019757459904716497906340427577897450376991569238697574106516960117195185873320215670437762540711788310196219627399670676605432351042283375358669447720309441590804503849970400258706533608853081169428274722471152575802638219660704584497720206920403840521862693834021883599515850066599154429060791814415451201666401597337357909212135417381131145062318911935786100588347145012682833289341370815740903969822332947259148423993604975086772820165422332057467177745285977387784549743814110934500475281366284807566587382510628248633558110432823114605123060644919382991282900359942664939765291034009407865230306240013820171357170250335125301443340176018913391312315336995460526351724424741241002039466914260855359165482555987840575918514074046532919342149455210535667174151132065021070647756107449682484764156394007215361553522846832386354974275878659726318371661589978739897012608051689580606574129211392409501283477663146297414008958836852506790855121553080302331830255306843281700309264044748548741259421527436992798157783105144968828697996028450006004152834345492884642838280153994822742760664793993785605958234438591659495974183712262669351575552480490211041115264285941074573280636796051733743461522698379855457436523795316960755378270582473873103119960970470698268040016414169882144920120392041340376955512292444271243070016872530920153965671553251189388012810357612426170045288595108931732334676997595790049040833442453204646168056166236320954889738059310754044368160378374988769284307268730297540385053993252903071848441466480370554611852892679940436814775004880255723130315597232122243470150737370687057551928188457828592048935140905553889208355024039197446933887530066733026837078060597832378531592726752232066444609473060389229366147026922495818375638390673266276588770251006067188514690301370839324034392503022782834723962266199967086543245454806107149258813916245014893988208194640353002876162365061065998471959851646605330526103204208601798410080884826675129232278846526831904795040463446093437244329561081611407159106065033333070510623922308551765639902979305450421617055032149878192544250001983372722924320743509006124797655213864492110502930079895124345903510645627480829920624630542512789691481058041524847328884765486316992717387038491897673371878025847434649268654071443198996031359297350855773759143463882317295929724250414551426288923081923979800445202759753867933207412116986521990218427612818726602434995379730160367909914618557705742026822403642471459730492374348318819973404047593313155743396634703196955614167928683879376197817136302159253935476910697264865087194875474225544304269483851594557259651454993385414682070648254554046195191076725606665934033140218300181497703300093543161068199103943186666764072716701161171859520427568835790274781530888261344428029292594742664026901107958791898771578798919917485662196549346823325045130071145954677484391089186935319908032828910695366269621701289299119468037406350313577254233825147299587636499966691452050363157290952021266092214471495061144340572874116396532233997293007265140745631076841920360835716112665230350060071021276956062881687927755594186490049666305893661063942870626580089956613268444885151581765338241299208524477609597606808041460325815034479669921892872505464544702799100901993100879192592665455139227554434674166360891216893867829676910741581763939502869570955306607325288908948306686935627515084034584457480042927138285494827120064135787953320205196451384750388810476878272506051270407844097241311706968921518374110721583667073522948530966560467756204693370957234479343732569852687067417353793863612148859745251963428818038352911154682018706631672038643868853809658361223214188253305962187027404346495989374080496178975469817090198947311718195907998280819500474230069528860034274874581876653843681695215799650620661691152972504417893944099237367914916240663822191907506359902141977541517635823521923480296696760137522801038534305113880266649557201520128147239834608952444041472306492461075278316165292740639848318852184072864070655883140888142726354109133891554349076280043697478692946789741939068204240176402359629191385709300680748940211237426110298833332970557410533068116102975240526546024744205906900494082452671029320608445979923163959737495907481811972765713348295674324070850666583925852598241761036141913547375521854482796515155904264834238233315889941549910670033748197362894125444683967041977999442450583552045555388545126401123164371121225759068444367497503907330527216968760549651460039810607401164975779338369891695701962661598135046089465608150618346678581719637947509478543653948994669941945484644377159253421579485882484195611068057497127185242873262444066629871098444560044234353871732595108485021642925386995941266178130332318009065654853277830687572551980163791863572370093642957386131559513009612681269126486646024426125664619995424907878017230601449594529267021296896599202796559441553904450299858901702817716312457404062457691596788967288741922006118877213593850694839940559409050036333980896186465855378623539279673599857726693825928776143833185717968741300857347148708840649819331431423748780851337376192479057722015296181028276798332319549202634026354070839486643479106203116280036850010784695157521326336041830739928425919374369910976813517225452346219993515727140892693992100765907113288684359517651096659399244203878644147144779434167522085731707535242818320615444505946209187177976002109246200753841443285445613910360506885186913380521766115698922329515539217276448305045876760715914115932220072534555098599077326394110244745783486817914664419879783614136712807812635692431532570912261054263945296937349665924351671167383290034612207077314621674135861869213973936054028589193448279202853109403058258660176721393740465204343145436279605360029289199802178367485986913010783207528529429966075893041776125973895482553171089571949432117051537757156255773676623935807598701254164503574131143044484520878228765848352900525535484985691222947198213343535251382108740114178537132562269042448981037253000308991583449370270651419392767176174927858321476205197494281999263684227005390615614956738155542056389843080925572759902989568119165095142066863429781394442917881473531788904013322344658825888655076400251097681548941933507146635589475031702820109967775449303893340339990638857426878007667439041914212972391583749779320357368638954723001619918324703299342199790636858945251359521977993854939843990225305358216147981435564036354430430794703436835649431267044306122897959329661696806155902629030525462710137388688790774988342141222713385752923397132459259182857638874263214332863737104671586683266059969688584335978879640599884138015059142827793665885089703434917077518758625579143678107394856844537933433758777181859900706466554991103190451013699624529086556122210280301636721564133432676242600973284009488821459378155837967717651074650592415211595091802922865141772310260047167577125225856964310891500868119616635564597201379019468171572590554981654379293968935750068665906532871421398004526522291845752375587822932772508903593498133306355603237587927072957461828007599586763198083916763388205808569554120528475518049094914514868455118772070407674881139863116638783941474357185596145144605719272496461994892300112568345432232251929941657657195173016629956985951656947608034125993258089101695889022047585911784589132226367588614052092179410346023241584652523694260348513952916035332113593291975841565147111983233458900887611870492981734215902349085862975102415612905361039137665223269715069928640480648971864615128506296192991555529173383788218075004142525258125984919842414340656668864713360837085789033898894742023563676600285694242680267749032645065129463979148801365759667195987390678484381698427590236049671380512418303758472134350258564247621622146456016052202865794307968509592371713586399704623733808417876985044459873849844557574504926882426172518361875012746712694217274454818792931654043623087723195320916743801541491990529735587682167811259119298524274945363123438115724312731965629670071591311614379624042627889176329014461836192983297097345350910645894078628498426941095368501362248645806400868331185789836198835415736067240512669209260915668345389151697836569933554682879109549479693999930474056396264347264804013545191083982411345406855106456056381374643611880343737733179391074254354858968193166517016525898060502156278798168567321661519758401598843542446936420172805468364790430345612578675561100162020117315402654398669855040031193931561977017234728426906932847013413676931143183904241092961697835481588958491708630102406515063090420879433951749956859833018646292945386806738193484030956073191168668236555722717493576206048866256513430989944193245702880019276427607356135985343175612146351573091262786739352365416580044488773025810688532784397844249334087269652984374066110186735620557133277936400009868354197020904395077577760096437328482536383774802296390543024171001694306457405195049940145718688994453111990333249762083822548263258968723085548150742338383285130875011488991263593318333192130775551764793282079108920053718250806136086191255044743358042565281886802013928946762957260058121029071512803181792793115487521662465228107422480877617603944930923941779196531350813430056333346260940573840904682313935226146948191702302909934379882365150703135805458137220675942426851650479027173273193153030001955229074144788925607209421954388797093007681806746630664919594891939538353255708815728030767345981375530334985355356085228544593407602653485550120924192255532903338025988021256751542885437688033471863251781381254004825300198966073928084119612668202393727923298236714457309506249723561045792015835498162239261881071822497904659059251248549248350355474182851120086135755168485913070991572162982020427325720518868270963992355371685373293724617712533815226994402352895469187739804431290577466581980868768846533877611731988935638932431021820369983962879215419447327657429384128228368274234906654655178727821236386545968885236433429947286765933821201374983495188836746090515666069699058880734354108673306404599287731295777916744546726417583441152341646048884421211324482673090789584009414259917014832494518520920111168022410538109610242150663528210658990165012545644656029276600283431218378453256312286260076979896894439253507791486732549926169585192532922485991099851464044915605180720386447659147703009898045842864868835460820026215476118780743919073040580450316297383009407447536306703195077192021027284119203249994338424267679948687887407398358535108670530191932723143758579558114074081102914647337732508967095561873742722895071029716519510746648158721125681430655923408048419710551349937022779084524350587608367617666970230687150942948849743075362222426447136384480620109288313485616896641930120019440774494949877749948121547240880151545198960888488888313252441480064325567626584315112535106386717353331701237973228192211366582804748346359901512231189241477364166545354267242279189454836636412027199046344365854104801633460783406360748072689868236389695009959922458471200094421249403956158163970871091804620623239294989161406937706580785848043655840941669940726294757669903039384315057393352287725942427023907207586809375881218428509033778261707787789560315524441835314378575976147196257961404981818066431994279183584091006237821806113371924174198037056419365866454547378678308674588901941750448471373857836819650095214989085002740106170541752293285309329138186358611119839741306820043521464203902024223636630208882191477080254488395728157448968026888696696984243634057812238240526899934452870973257774061325508090693270134136335425794538672023915792120381064553690293312175227127344486952052416274550491143162807736786145260149937003373803424097558811640684992788999282133118074046801507462962713005943132138613148715553624222581487197893098751884242068892672207384518062128678788399424731437284473351167531407564481887914824089310476542071364090098558658285546970960223696530886583928009572800745176982354924967121720432698707013291284629815157122550836493722002845456554628410974507523783009655087351355723825697376366935172478992661168769304820416997481756773403604855858867641981012218207532312364672674548796251287331360805742146865220417620733752902697305215272034838062975125771678683941971774526063189029451305013629212659097369195213426956074768625126847893092908216440695852586043660248641980335336911292947369921886486377734485316646496061263012805554305173543949907239793479207971739793391443656310819334077932324480768717305087149325741455334002424756714901713258204898482756465175873199844203271551999315823324816694101922413162641149397456188972535797217272260218208063684330392899425612626413414929415868307313350766548422967192193457347467062290123784295735875201512648678764358413279669837084467001554413168906108349874731904949443353133031853951403985750354323610272990358387037639753681530657221745792865941556546510757707937799476936498378916666693464600670978533442238793296451562848312776115199483340845948414540912176681048550342040338113241187164449503485400958443505178868324881378680769676756867805834935695730079140889613868727237869886344893361636411920358822607164346194651038368901178244654159066680682420357323479768459746365179511555683382047959929730026758624331513563739441521231479032093746344447766836220081523917424793698703611493385418395290688657231678575816873569973080055943338794210355772060708603675117975317091604694191788441384300042533721530121698418452365998330493373262603764806014128837086552847336243370350731529732009908659442551162742946011200327715063457336332748970956386454353426141948486582408004916503577028323587903987910939653369660577246568301627266623805025691641578829162441804985961396589666170277800563995560826489913774494036404771503411251381268174751698393510638132016102184923435346693902598224986148511876467858295556157530325270611905136876254222341175367839274562260676250383353324713532725742020495092581639951702894699843192890581178990276647806327080616942498348795881599109145176209870159609715874361399167759860041421667745012421560229206617314704935590432984785367254016471197716153529630628425778798541472459338746868965430941440407507366694212112710694156780156117922730402969662691858147730553595169170463672202102281010450403096411813488901441283466800733749472052521073142502190801858953404038135872916421285739770687009071522198549187498844701016497409597767849787960990879075097726175595924349777284801520714033298976387667366752336053636340903845936270546376233230996683818080871626806816763449689670358046149047146167365812818118055429540425514841917090383966183463334181223894740293396064896148082135147484580410160897086912532653634332860030534492210836945479970918767996893227753051335670276210170767499782167436166908126638748742713289878511966871805800994998602371973453673616667284149113707137137866359754063349289763677708535083057193517193134169193711939939743430145409294852540396624455150236597895244571687126007064971749275000992941875491073519994585378443878115911200292948087487418271520198038901954487088446673672477243539976820037310131425222166477029768078655082505725756747354515941036835848942156248110240472901280972016720544957392985559935697976918261261722347678328633441579772243149432193658226860070402160869341078347072838673555680606595830449130318532129375247704293225153620552474804568653696402694314114391152019631779451019530898927777792330452432917686068026662914023899063203710133906988177867543342501628005298244051096388488485065701746565642561573633922006338485058539799873128480686636538769388046418193771235719949026206183799214392459991774378590948567128898344625185049313924046233170552988342518427225957072202349358625675068799538941150888392339050575093231352564044161592692074878407452297056338296788816099692711208429358728854491306665555498084337089467578852352304318043844216902761068312536108557734749534496130713659805389074209345726173349833924962303194066675498168399926765997729026238296147649155952414665404117206426886265481292716855642255819876061669148293109488797726358231694932406505448646232644371902634897695171894821574852196607000937305084343792018898186499631173886835957252214597356168822425697720781706514212225097324288204839228746570334763441640312857757748830706796043841288090749424520231184606698303879160024053217681126003952846213532430682184894934388281480700351038758258686708105663112581292745818901511213188719231373693723610412468745995547112326123436698012919608142736236330110030345281018558849878161309368622479770223546585642945680756578164451132894480204466477827357311723914329929477120314222667656164031076666017299833033270054578887413057373082013564411102304950780519341513258566634636676860354859662611964182285904940351833564712377085413179090390261143547504542182996365908735451989089727921126609490001550651894488606471370484809588434043529786553902940284248130621527821699793969492533685524927062333694912191954933841724508723202996696070337700724140639831092877819549075400601309328871159247581671085621030578611489904977105180658014249344309899352127991904730893052329821573835919621909773179675119547528328546154854605830577379771332194934194527414315086693694309192170601151538579491385161613854172445922976017540764248427884277837820276266317657486222675379909297630510837853691739959276329651848662728787701489317399122026824997562260313658023856656126988900103705633907388914638140690811349971443943582093417785871074751972857384575583556443623741164047057037063012804120246694044884482603674005626151394954001409550345551266095924606466321763332729934860399592699378690819781300037618678369953588156801316903415362441394382222556704994330529427455375348271682336676325984502997998682519404728374563252041447986606666883416350497173274669460008491517928933939440176635435125892802715538676838592260397477783666692244835006856942135386580017723542001473596229133516837702624137791271758196743729861211217975331046970121240431985710364792463771492215549333892866436616140868371170178070904790120813044210184459820790160273163758889137399557766641658846891432560049058443123993494773445446466863307231220489811267175706574562962914465640318139276425096784192783982392767366009114329790717803937526202846025107544106199101501152536499673768456755444543937079113716674845408617317600339082312734981265136880597001420394873993913299242615683654235139212536134956072520113058871932486303028611877186560379746549795409739859117342774736588284780887741907604716054793075205637055238374715890649141885779518851816635395168708118497420720245231954123844658367823817742033766204488042625817675345743224794148526426875924399900610095256077309628503807696240399173083915434674132234310554905566004181927126569473699533921766024114835456960346279560212692297508161247841499352191849332944873221046990109640787217919073086266744183847854807742601475212281260282456768577570694718953882764930880516346688868946016530795263348872526629656742444508154252863997023182041021707019224999813540181463172641450233925559094283180295047933838902089521129510643434969586358274969905051075306632411572917285118904682249962898191940723680224448022149417148412169561244373544306049742550078758748205882359414931317521933286294587322099742439858083624014718389914339825969442805521718619256436077179227472644838927422157253482050817609849368360068740163320758104923108026340785192719448028716937256971842193682399463096436381599382098625636467279608444711198356309211255115689474186220643416388220718529944224857146460510447363983658900307858156803526589877402518999920833515650147308588269750699839925859684649046035882244495968748061660633849088322169530262180582163313312242525805122934483692141816392055199292506798551607578616114822437779750325165636512110752012096731027990734357481186620784839447184948601414730539533816945832830025526972452660859420205414871459730878989107390844076970646059726074372524940264387524302350124326786038207852416344050122307654873840854890177561452380470644389929133324391693773509296515223907757660706805824605299495538541830752202820437531242112598651248912383045164607046199827940496356135625155620230714492277418668806919231292952509756270217317178355082646905495240720081783943139520022781230664412850534096470091595542796540163697341487111325881441928605066534259439534298273852575998503834393995827568145678231082949833789146156624371010372335654805810479443578275240902833626553240726483240886692035186262747159755086161248537978173713614307933722508501235909615239633434285514700011255539211175180774046167528687508497923060017153190726074932352339438969615074064803297340915648876024886331024045381701874989597725077406186303653539291313104088603016357838838525515796453853299980062503851425853292831223579320854144379363061306240150475122165720787513583622218480977440634216116408349558310614303861982777875438310046546107792999703863768099876999170580916956936036310591246792731967660991208637831084933255423276699281830705311586374865898206254012982245685669163299040284007060197972139026469360987803620556883570826307502388445220542919963668150020680185905662106084649961416545308194748008035725931300119350438227104985466469840204548277562868515236237171536365004349502679172994435842965702629596457918733980302013601187745907046116252644092997426499257190428721345470018260986060759662523461166838384685311727703482771970178357435729359196146091908804076899463683657811123201639865524091344229457590988921802992611179194107364240470005559212816250240278277216524067816140157737447576597129447788448778774112611868708948539004612985584451875756808025702877867819505915491227226119057061245890823140355730002975019347451110933073802194758699804007357972987303609051700711611913967853489434962195639925939013853905190617599961535515658399511309175074472242641092417889902646970823231744899868822370457550153003089922740399332889905562452927816874723268845851934569605374712005435314240688742346606257552583567660423170886560078966724971952225429142805838864950614131436298930301060501254111369604611422448966867464517805130815207380023502828847759060852399150093155685677783074816645352254095881378983959095818969992563886435894867442453800673398461634420078779351257251070404274849390666245345705940833732535365148655771814350644938079337920397113855012233470577658794824429964468901343816207680844514835559792839892562400442316483399343898054517478872945638075870804116217028077400573400279417916354362839627553570051170151635063348491800445063793536747317949918394151451148550419291227778415898696274590048844133658433741623930222385839496903555032623694991146472972670920952969638666927783069144828319565873134995240621205220794764648000764434535695961181445802476841489628558551163953975505130071598209846309014148191435999002883810734174461350223748953723487840990957614174658143196288258113193719320688234408683273860360944757775041531821607902288990822227520966573683880944282413854466091212258681776110270001037898481664394740413238331933593565269671085423632814938085169631276501576545595741462773248192935467919995960376544906441446189500033207161806292649372479026776738809080888438335688603719721864260820864485417819878371970303564486964414927448430775848583296331228271696112875468732080113043342839526042927446965619223537367666042567877211220115996597339448668302717362765413241141851384076317917208681381619678483771805096853634396313375900658690003546462344180723641326996770377664867185282712653008552240415130229857295683676473647332549575647959542619948182325148220027762947339970366610126938144114108840114094765516637451238410927989583529970677221805086420934111796147351178318847409206903959065126359200290634017138061679624386512800560447872015626059499854715706353275816559158471830779998666810978710965707825853688581325056025707985874686162045603719128080529679342609517410152091666034712542532505814723997468876070286383181763315335389676797544131948626009682412212495805597177311959638878252642108699842809934747853205778934538465925655774861588124527262383747012516965341961454488325168302087815044029935874082910759279649496843065467496235369154755805106714273348075204138366650792583413412963252977334565437657546959217983285760235300586307870275445219004141169092356009883885298426341724049921090148300265050482343835190520321084482668244224397849098507086104965131056317875744299563050304579395104030498916834302244346494274199563437043580354692935023358935396629036732108843288287266051672039627100949324583294898056731502582173393023246318901264181693910141539775058066437805830613398990276073739483213827894426501748782289585480717532686107881720788283123649593086421007980422502599040723703165626032728428975679555436303090364350870801656731818043171060847466891827986343835608731389484769694543131158845175618447862663972556440089957521168826476811781812886941713410516821660335311159953711872207906597727237334534926509975029083454779018580838533223213637261843147513485840478178710730281051418335952328423405355241675773486279017110225907687003784653119282719462681362284659664081002297638277935040644114518120816972204638194771673740405910115054641636120049994335435282766326636847375735526793030236221823407808838907008962948465637312581772671201873301563428279182024669804877345722784666323977492053867673264023949925854451997538152229566774108588825963421211390128941375118900297013886752429051021731827332295243447531196030350800986030689614812660279094634229973080685636261367992008591371676078459001078991249439739890529110275794909235093981050747008522932389521101776325129865567430085757353790768070593422731811637896513316358656880406306512832141969648566789080473816025360520411483703831340438192960333470413416369945921191921787904340551511059340407897160383140836091409132182262346427761998078282354115076668706573439781781721722646762915955147023830152278821158510241977041509849193442680427322070768335694762221857440891522302503647052273192532112789277621231321559486053977938310597711957915312463256847867717923174419554470893418674461564025626468932304328440228068612904888186497243168979006758066452532089677763687215434221882175068025600960920798237225671483176034028718640952589914749927032651231665240923996167125287148715460018414257613044131508102492478749734820729309831333192223583889213951615711917649803495267307414328041169994751699504666354328562022041577904335962008347399266943159660815321441794049147736136412548045836696484169338256827548681374157658034341155444403571609955523336703328743667582919080326497738242882892459028255474589549545833060111716061613245861648518992371601197517784976459353966575739050067345333136854081122150238427869094836345993959604880204459381723412042376410777687077641670502499010724926053564436248763480476007980262015344328620710574619381010477922149321791211475493344964621367409963782846578413527587163780672041849520138061200953189658296843826842536841864095055276967365226572784675133127752047401482187720984517871193438917941411889678240310845538784208769799423132769113826939141646894038568761592844902159200631976711176003658833800775608898106074639985234445285711626891240759023103130341638163299957687798502529332735657306933543482886825774352835332104736735718410427372889669707890747210347993494226081891543424727622918728068199461265176708573709603246479354222732984019605927791878325152887307831313956075300168100868738029403368242268917722134593847554812830693159499799738041903324546702514513911296012741110990473376794756744961968939567365376150259140443725032283062262256901090315646827403456703438449652373532006954748270839985951915683647291785519924244114234896125384674851465691970680668677900581316790497797648266233930655111575150767274256280696688493453658789385247186249099381765179996931221058368003854085633795879730777728770847727448973112225622397114542575579441478432583276269145580006712451025843226021925809953375594859123383768148058855040474506777490852992356265790595769429551341627436737307757499393775496546360691171874268418156288693427597939258166573636828929923408770608785857500373664848412230406031425984639121806305569701830299956464649485436369552565713197016155084507056063009069164717546008176895404727494753301223648629470666478949250355054004410076059820437684183411443489390618525574739705286470381316588916326347777859405430252928222767704963987084247885738742240339284001685428604536980270740383671548027773911508187851409935357024196115002053641277104427209248706542418294377858896579569318879173915701898638748498149389584659094805299612138050386843803277981120117393628599916718046980607189479202415599230192478823495655819967055734767424428646237033193881482365729841480137105598961720301371076483385206854680395517863760022709358130150536991966974983197641806668722743605350516865185584478360669988532948716017959156433933083849383416542322958762707987532401920520324647130763114501730455155806459470463499499640451899447669844362855081162288709428859129929447231916144125461835570173002644087259343443550138373601067695498079867899391910686331155232241030495528671493783706372382529728551832754649602912232163746999280223061463369027881079736680378390271866928206035338346908983514234396966889785403194135144860174593311901489604942397635002515947503787862726527059561189649162261460827069138490105683915224687145976625963288715023770554812898744299932351230715433539288106294687538288652215347244101185676507604500509439935708603488606002285941052253375427800933275734234898834392270137402569297906007748417547482905791233815129898012057718773179732600072322304244099418548277457717494806506010737825094698649358447444845098053809621156272758497891099541489381721779054889600359737748432761812304222158336178847683496766566800715465748348669432576620776340221322523192886757922493065850160895120881685613531145590570836414634099651701237061775688447545777037727185809026018535889322177849364008098620988786399905714516138731608981234494592350230150909534242099596845228430741184978774843841426277514058672870890978002908465003802363086410760047336000282039699073682253092134647211698736136096161683540852143662587594663409713915695650537351729459648150214900727669511380422952882944965136187692541833394960770775256277790254481334719508074598667894488991324727012064272292199385988999754513154728097751250092526374428360192141927528035106451310763500695504350358221154924957673106719491126399162093870060084650278293955166910166889447911533389905557173017618634627446147723202456302778684344161117656718508099586340933785645878682934261044754077475047885347553411723895101025610631747125637710598235772158343765065955310566114010475371558152308400120749714778874655007137098798812565972032164020657366366683803454326751829020729381572058042185163034559717492477579040019424809723229266712549750293557882250917481190118958382662588647233781732294745191476649446125151771110096095717404166323319438830708294408652416997792855498377601647703782967323580854705459782539800937905214088700629537046824181733862037739138727146378832350793292745077380841859621694611527871204449590932984311228910484058603951821071958408765097678937912377315644672437703634265676914583370268583617394141355357507782423462277813660391096424825188383293644725969698365681598938631167298311961990802449021119776090529022651791772893101724443524482311266027748378170135633419306919874249374480431579952662532334674869914035134516842570826691664772287287275227265848549242387038576455515084517057386523301482721791992670495942959907006400268444981447021327403038990831790044397757479484741069977613770259989573274343848495863483844723673142515212201781167731877123837139898872343847264928352485000089335038076887195168076980921701475939613478026115668303465359091227354946670954109030042050218398000283743343032935533765352237954111850879705458423022035297622749867856015140857364484266154430774003994598453371602097987401925918677038411609529134443733365150437913865305365081734488024939191424137287485910491889264113957545927853795864041468325036122713991584417153861715303737311032966375059010535708819731714630691679589832844057376538267159328330621008871840736267396468953796818820774741897307573407917568642608236867448187752701241371465755078864414414528722136871109104060738315552163288174459406892909481247918776738406352210987417603624758823125515403425587882727174317284413950946691145001332663547857873700798448994623071462394272381919241704323212644158144404429453041229380643956381907999096223523485813278022690529527235759308532813015031075182533720522270135248145291824935928721901296827190135917569888461779256946043434898318512827641748043870843339100910341453168078203425448589175291381752712394268619451331164501840277233443183876756702353543802851482185391255669174219125707492589678930930515366091720983697116384074840390005577877187248094410278874157443432210336692735005098786586910076169701297503941204525619009681270750974568567764219166050417625893158680308009084136948775605653390254678787337076413759599478454597288171278648595718463191979817744468854254135930915350489603320898441409812411890865073855426754753309974469316282939206593987750244651783397682350960381678373756149633237096610868259726904513841013422003011006710819977496956768270992091362350395549854080186685764703883231294845289844410701447849198576356674189441635384824436866199010530232681512598544615006052930866902720997937516854983806988311435593188573605284987919356150152780830786676378014618325702452098021664508555324734320210551064342081331078680959565977736413856982464303761076080966752732325092586183608186466760520364028888781948238888255234887450927403034515813976598201956439441198142869241292010639920682259022035621953251036066987675197638920738431651803888337455990860197444304805680101278641087216114526036227947763210733041564796792111439344669925293740660180240700432298366100674497318410971161368069663434406611369269237210135364911784815646261908343380630896576771465622307486039513600564704028315183878695891618399671031210153726137162226790230332029068850538396315005312174881876964755611268152736827000636241500052295353745747235070707013241942550558728144934091163485888820137373662036599667886913423415365198102409809202000790358070580090895828777023270426776033555586286938372553600395705658838993327488121368628095204597336280662894095646855286732677573360108274734173347556246117882357195962507356266359106131972388173104316320867261780563752281486345550498721317364888279448350872696074916328253840202509141725057290034053434129785805779030482979963173394231469810338119619021372183689781425923922921499370791801982302336295329632674055036847563956699801334573010699174516669392104202757860101425812775461938510313159611437336525387596177252097162315586594231488395013737290574657873949101898099905099982002061519193510202962755174967911984778777607591176464396618318825562559522158284840584277197686925438891948107005148954333576056149583487460094078322417926239768883252205149811580594746310722701556689421350167875549126279185458187455561852166337221215816720711577694783571544489254918957925403682954915689417042224451638661780890757130454674823199111345307122546792661272567075303949879763444723243938003174218060320180488063508808441234046048405126390784046723889244201852958345827998329257165359743938825387272698507000801353919984403926488624186828510791427329171821808328172203132426352817133591619169449510764833061645986535150913594732272374997072544015011230750906688525921248714652133074837560040926172763025080788829004117591730140999720367485856088754564527535608111076878528482172289078581025209400061342793820264012369525389069139478924513213230458723682253015291124790520131073624316743743543096564377237466548172921778893548744144142482062004630097593747162738717838413452738442932999891216147032469041146339957853398921772390854230690823042165684013302110149767538510276251043141567786418353656672881797362826335998491817907368896300968995151170883496431457645580106716377405609903722325583301996010564177747909117413531434735103420714332525344672383681879449654797032361630346346737195917148462012063490157915495636034872756764308424854510549595974667965347589341731203645817143086813798850796968529255465596767820982238388661166265755374768490109878144004739760812593975769953988193974856565362066708908592292497431349434520013065251178022390696742201742880001074165727046877398251803647248817236453322460925974692464840154639287266702297542501345795621619431038493894097438845004093215651066064027452537550471099989861256279898169336186397965684140884416145542907347707924119200792048709996063745725223110273079938256315968655555348575835054134176512718214072076623864832101871646966151159139482576119068071355732507286612368138537714895051710723750757856344914058046972377008982694677791870835757966211568822074759449934146362313107624737587100606508239686768090067571304351691066757987211589013766322253798601322664448548636203832853902049512684908406410772015071994478237953829448499852927756359069920999871114627761484575524246173381144202697035283815060571991960075093405882496576388553916920038178167166386466520638618902101904957257706765053322046275837260121102931016832776706427253860815398776712821651474532190428179116179526028361287349401778778386644367821063402972309222329236244871504100655625734794896567501161582078769761872989513692035089190642758007420356557197081339288159132164182166453028452842061728019752730459039606333345498797025789951779133537692231915864394245194553066631446245066900585561839932179431330753666490518670840586828062168049712652893776117118768405554501989681124399764032522707548104124826485887526881197153221626149473658798383447372427934602491195151752411413739402384375729949115432473843052710182696570963696593247633101527544915595842143574453377402496748597378378164177531850773796139911068293341439946045588251439818841586503874790028299611485102181956949890664113970041725056402701663046319673256402200820396940068945198241306917819691211765623907390201338009166203042908270367083194923909878778647042099967613626497780033556643194121188896048277200983355521825953331627825814647254970760002635633069073624179943715004260886854234469632008906052200652511469096056150207870939707782661112858393163786262427526256319372935453000390752066712553408464808625196507182927485397913410398456527280993926011574226365959424376627788773963545280355233900790889689552916386882026833162560776571079546056476247875134736858606894087262626869802921175976917096546170260942237299034020751202290673483619496202705902472144929055032043230991700171881463220205195527290677920122779230969833938552350781457592051373800090913448881571975941392724603993102568699263489730634232732558412994701040088134503705401718271753697766435947455072928575442311037614262554003109593295262526041785895703469769410641964496746872343590292401820043049231093957837132431699553000798370655851394302306797684618502648713917358765713526256873404749715463645124935015936570221634855407515225686169246152199068502800125863888298545115001034785816290636495729959339396149614541101472881713839088901576500033289057418032784222778600372167447816796336557614188226933947121930233262963352378046322845237165440344152010111369060426762926259707234658315608170435492834036324588940975758665512042434729465622909542519224054569791669201256331415498613866562579682151929637583469014130842963205520143049689886259498537140174428403395130175680625288329067393925805828874444122498407154844622071826349073955128084801093362215237894662589182578943801795593484975089936101471799486677768322746627181845912867277857958511744844982911874850768338346598339448433735793085702462009121798274155715232784164506552983171125078207314180383265994356183571659388017396129131903974235937716118823305674696728179726487148301625609544019553720067674920457671671539174797051621586099639114054760019411456493421888889504024638943975431601921058450987987743073429661279731906901088860523212133777438936013298312727584908234248297414390505190109921432425590472000184470060973488487345028001196616545386900723522633584235794764945441951799979595901862712145047030428397498710396679545717594275404068096020672382748098756343060205142516932390329595070093970126727014708726889087914996570474184878251118683264123977190743707982406098191649298776607081640233165271887638446282133251577091306795121159409384992998270203097788172186603257906564686832639268228810782047597774962108149796782085732794941258421020218199541349084955412352584603381298750259856272494747753250880153590001704494806396773204662109002413745503648846417646565687218041900617515145313434102104821766754561136167707034500261938855465658656474395987423095398626009244513961831697131298078720890688537542885147518124421595403417217201453472884968346977146899541652103184658575163075974678983661797576814781495708327083780368438622426309532881542227658377238441474149823719454401176248052580741892070566523824000229775977064200140698623945765623979282457338253611297211736599628605830184747195503204200375152035870551503522669480746292932426428530702641322568127008995587736448057737308108966939884762262077784974512362898196392475218316727337089890284267356456631205048003332084861018223974999210108731399911912708360612741437753302838888438627957514789744927015418772883903527582851523567049838445456033985456706367064616524695733457627794662022933412532163431639301803359884818355263342951288413785983030496107383887640786674528077432414898251745480670536750535263115014062721373797728009161641049973338233116214302159348564536284289279391424986366414235547804304810154211261578793784230724735342617141368085200415836085003906145909531284355257710596851735580193189576901050135204410736191699132267135133308915476190596394115960658704981799792528392652688972194417529684453566951403857924850268222210375670325675287282120686681712304057101375577334539319533463900187158876604218661962935375155861709729859300470918328699915942873355716645164187860886144308628430054295529492859269607390867779108356053025589261307320806718574588144305137279444166660337171554250516661693063544350382411856405580155768326304121369363070405742183556496693714534738178138007163040028279783703065089535898204070331047711506165254546348436627238612852018433493330618058515862511884361404476092942673968506513228728490032329744800594672721250170267421860825289234874945195122930426589030557915031757184691469692924148696912935383063445408602028006297917797413021284288474871478418273096381380185865565747631987405785760180609411140306865336626958861987301585327517950669444313037049461433337245672622630484190722162860054180764415740792566377871213555762924215721913284277802577248312562612931543849165534317129850316126424856390140109231545671928547554721566972937427199306289614709311065743944088962623807512263794480472972144622049025144716501197412790707523608629500290088330107891304462120265759797963807174227212867925209572565380395454260520617790519456529235462368590410293397274172074290266225406919715125369066786268639254788553897318283924067230003937262343300441968862911215858205811940605870801825590240885210671985989188137968786526778409919559946040985537517609726804301231400471667752776689293033055947917275929291975498243486397114342379474142462677738211641529141806773807404022354651375147451691713471275367509741604610470816933373778677127162491032399446442566692538439068534184517959693100047090819915667455093685925242833641641033382151932721088891315164192931081484205492207480677700973290736169387668231723167235843659748358266535655384567006189173442332652400438803050910791778734459793615470801858030105797338401043934212835801228735608759144627483897082204086771033910370265512654173867088004671333805515264987079527463735406761269652409088579670728555183082055298174860434357403317022053718114473858050135184161406356667321956068563189560174428003222512295224556216017453965932325485113839257279164302163234016052074429017867010265426159996581037990938283019018258736855633181355164576896085920051486124474689455263209805231328372389259511466202122451660804980168536634816590300076351740661115016705969877141776604015023586038831248930163987980191574912779987950375666905666585054622380754699762450351253729201802487902422704108456934228884231877633600686578071199698289960423714570032005530387205853856718710344495993116803434161889659320456589039227587777392471259477720937832320962599705580909360980430937778707782017226018895387887909258236375149938089417025224396295872920416794718046903298623326979547096471425126469573086738031970097115060257542304124912359571154044312820544976136600068595831164852962283172092590937878303169596639675182842006339835363493053288128264090282368423003010410227813119969837769765317750972156385823115400122928228725452185856171330997534880732990132522434508270892616231067812060587567817441731873742601309422498536561141833757485782964713578769057134137944036308666548760812573940426073351772639203707978298920761215417400452909446042749568887838497621370741287787302972103122546851650659875089370278484447146144791331938614850544096576181473587702442895672846136255791082994106753316292047731239928481052543616013574312104328649384584026181288525727473832322480082147199132439942067233226370764841755630824091063915732853993581142617337363631072358460082229001461934167501452646586071398548775760425934502583436245096914721451363285148366024875005512589924187684187290055703932774779740692210191662908675229076550198119184590244150470175523128857490565328834244004526837088114276687884979829522495187385419464465303883346113507296392333045293132527055831354986788607520929926844245875183297628997522923717511609550141074588650516932760683036041009187739024067373911649653300225909336942677068283855699012316430394167047297595904431612597632433359027215741159338591071253530651765627890944735067552290324498804953561238573176556473598279153935671640949261738580459593349361682848563847969826598568471594177558116618299702289586270596972016725774891679188775990449642868497777557644294756332809939694974449061622733688239438116168939031100951836260470339396523341199131502934695208503279589165894349944860258593115956260660775261764422221889508550432853511765756269257243654170942691349484044494487185374322793084882387250435676922749944852802566934089569022151761718297301622228130226461976759379990440891171893623980993234684224183434295195078416150832981778035907649043671096862612275395582446419666935159627654940692139402163546015251425252291322687381725248191136354051043330402215735625962218072233525857602877908214701549009306118932045407459095077961427310129147986132442629919553355058303148806100853282923789516746809220863442872893277646297219631568242810434510664669408301606610697159060729340754762885486220635216371591710249605998077155695453396677526292596488014702412640289761982430647868684546283416736864362544867304187910208104418356466757639403673950574467601379004738474738624848850863374832534545411434267843976844382067075906800440505582315195939423324056075833321330977418794773178250607615162846188751912837553194916640310701174320948447613691817894802834371552004187113328247589242368270759520301538160500538181446162997012141843698731022134356876025032901889721783639289677709626353078479699529954539605350083212443003982124159129495932576948284851883552245256267131301585000422926522544641879925161720707700910002371279727816827768112287088566675495636657722853266653881789102638694585638696921464767328267680909681199027122818760639219414278451913916858879713021232831841815967925272806876024952458873304288792206064391911891509608201466109292416315595933081120327346084782494090193591069594387374070799195075995959065012754269621158089265484544084659010757255068465421510940712062683351005376014640858100492568177553403343846776926306686276955519194177327290460278679831429758669259194380586548629796747199951097483292528606472224159727269874460912896526613848471906949724507182136752134527722016410611419929514809398513870928258333400786717880343315287052163162859179451986474880993171894918256906862616951156556364794480893958088961725472976918455541068061262656022674187504613620253204675597900223408019932218486579201435885744752485547534460674282132634048975482089802022337598604788250957672960520194344387473952664827032450330825685587303907614885563038899540240798377069979710678596277645866198026832244822013832997765335784181472402923854803639332644854403821804497284975037571047730325466972170570088227195939144778361237281380312370463336191521132063972637094130539094993380989387611430227401531589221155216814226797037884565759899780230942405824875804943883000517266131171428198253506454029636974959739336366824028506933680431577660993921853002088794027984082759167942600878313684082285699662874486479083078116991490538672454811535254250486763657717638569667842308975285512291295407464780525808107665927235748947976823829761658811995161220881252341412376019914851282643004538516358364467557428727846573393181983063592688026820711135223179382244968161290770814136575553577835188940753246574269746504843710326771126120086434888580075242443978167841300661429378138080941107939456658971475703006245814972567453939475945283587601854913514306391211368535236323852016843397596743486389551090581200015052652405156291088758035024840601324608846866436440004973442747235096444318811288087609058276185614749117927708495339290947371009039734305087580436235885367733650078582056929211433537673086083944485171667199219392441333724059946775160840858097150244864309933969153869833444308277298607643330771149151271007069598633756183373173698697849295159582028997376362720257648166234785925102432430219336339518107365113346294156766121169669485334889718574372999429083451118704439262218784752528816886709642350336661506694780538150288684799386739141618146540749154893772476301145373260481370930479087651096163738973027000675750926012919870604158632854538859208418959818422746730756585458696987009703469132731711847731316821161131500786935439554068304167381787555801716518096113962170050645096726555432900080619323279468013609381402455621966888514853882971757143293418874497424583171356873826249810315222670409919906268044215799871179927028574633502501694412244993174606280459649344867200175329980900072821141868839392739944912327854648422622524619977570224972477918850023084604869403269527356720588995705392502738641023866957213805207284320080167586174580705901635682253772119206451029635841520624728319994683519240483801534241942959580296315548255728194684473727293503156204079829031005378675559405752820906942631021853952104151815387142729657782205838659813688620003438270719715612772796819014261698334837312019564809882065371293471944787757320223970552205832785560742959882519666331632162316259956518849622038723019318164869344607010873477151196448929770222058461274123057067605669795683596091395182663365109539756101863816423404617123627466349741691973393707278725791556214157953493370687844113430730677492571847839970782481723906922515189893704271410014682554381682734306281066917965600012072443803301271260111139835063613260134999695869260396514724611335720907222491863500136575209460822138047926067180978854594518023474569826261172556841635186068045328024087625708587469771960368743794328596894176786907460244470107506761057399522944625153586549363567091867402793469698163787122721336894795217294899850820394550237150433261425937400855904249776978678194188453276770567242915794657680628061921954996203737484736713519917872644710436308181386157415619320256233511635548914525194598595537443878088440928041956671460898137704913146878985462852630436042080603734721947506008155820305093881720176713846424829858933786012631465353347729033350137836415208010775355926301579098161262547941317693272133091294279070275545551085067423834557361971283972863169210761277044952154235692142283681333183490181279074920603568200463289770029226341321566282283100561535570911470848702198432194559360847770409517624840496235036702183304050688738645239852685866123130311772464711904757218079853055515318617330161328515229115385537136387594667828868754322096865267316647237104476842924327236434005326750835815509435457135869303480930410375738355159898831386658596795098469997271694978656055596406657093982156604853176373735360563573728067117805755342148179440012707705362504546220671664084430442094353948324623999220937341250212635004097392754398500105417415444950831017917986137472622366578511544473685380852580606134647382455111067988194983550131677152389103857514894863760814729908137494836331924809096745476157961164053281734121007335073391102698079663665497767412199457312229121041326987918472219814942513675866470050717932135199340712757934610837035274770444383826161369889452040165702405835624401057827147907394506771896821776234281850898221732140285150963461692785683911493006137832046855347779475900947452591517639715311658941700528312069857279614386530259084826588653641767310516105560583762784182582048118692705267129924078010727752629534988328788559275120698718983165065151734329848152560860125350952378478247365167030860867734574541792381147687250967520615559912784574294943412491576767594756529639168978805173963900996251823026525151542303737778540150581480614197138111499178993650736250806189990940495157103419389245850970896208079692161809883456090494572293069285322241525446138085212737048766628713951485216882455490840818356143403716592092398121901183592656042487376299720768684292947720762685796418064822422914986381849328580957358625935820984231773595785215636383791224661130813259736799009286526358587724937972191278598952991371258415192519807971549225479420396385772670676883308566476069090785036322968952415603594168287536863935669624514309114105490900038682204443344118809995075697001517651155672919090995498711649820759460104759014782871799351438088115873296310970776337518340331219684295878848300879374702321592416545419188852423351221335987262250257702930191307452019042917143635536605241017036174116585815099271879743866252091353566023657902441365723919878036674241111006134610682321609891859836372978735175993369913576456297448689411962472855269693865656916923592776585844442101391636078337089409078387109570064620372206526890892252289487968516933603134522462522565770397797211119878259979813748069965409009382052119930654580205012838293327964358753432313192335311192404627234196573953646155586983448532548745490722784577371042334073207909296791691014874705428039418339391853315720981152330865499571171884416161966181748085331500710926697096222473949469972301554765961346159339950155472386662637943084717624886262478883565903189254965586422615762052727785988454700443137503696504192173868101585340861047359346178871162046644330517443683556382924094212992712222702993918482635335719654147602003355203908952003532310797487685809900251388741644109239569936663492609215218309009713555592659028030589511713531605346103084740804066247150628421715355965988676969837324417440659889767171271550356403727070582528495452959072056692232464495016173777448864809733615785857418414284886843893859745751237090178361330588887966307587435542665165376647402194294889729443178286894290411549383438885226594155390675470206799350976268857555312722965842427198520720204067011837002459039518501450828445421144337858183858386970020243512779371874445622678878798786025952470166891222224434684092247291404707170751621815019565806314854786546958500088516356805348096742774406477733528352810339223135842511319844412614794021982328490992120922697017441513701168370315722657205944686331992050344394250622422615798013089106071235318913636884650678205011484826128917706792363640588534224660886078312437191636834612488326627363737960182929341261440550480053275462262800708488274970433036528501718877120593911179699307792451016700460371376216329547304037542058708789527248392271974792548713975358468704770070791531983276639810197948373247707275999636857583433329785221356689659377095302829314027309562918980145682770831122582207584367498523073070301514041002999261056509827294768236936032145266720679576157779059748210555743090294739918671672876381545203409367876973978680294799947064568376636843580561243681905364233805576708252318199909688046749226605137740588645067909295264697165697132276318048305568827629064511234942791812239810747523067458589810282281867060931501449526363680334569709604493017134360567156184865524891456533033839283871938282002112613750309672672362794841978673148409756795762590815518718679103006228292640997268632652737829383338589012712103584145363040519527574437427604857010923507656139704736328898657564360219333256451446106989666606802609589851619717046617966072813149235044210074097806405835200280182534313793513180435803293740715275132767791883689176258585632897123943193830999391850708954448780463026449519139560050827426119845112323040195244561910134727715587132352304405162395147715014220769995513383709739528992014500932494858980389658920027146791148749817169920554962767793294012444717421917909162412454498547010635541724263422326448719618906287586363879132548291174135915092280052065538470123098099421506484361336099406821794189639043019686561451059941834169633087466799700514800526466530047252727496503427001173073449658594713347965618786020666570927397258321471310304138134360694650619549319122133788784377924742760754242331853870083535869452549049146559546004910505587368384514113500648517671733459324587403274161487523599330361738722658249226594429007455592887800592183737626046750636820677298361615192064517367146134214115231804223337765699767661967271387897592364690827427792632872002515298248091409575889158270153049902729841470280337941679879050117754111835741453347371890123483214949676769213525557584249942583296735714831589897966889401182003800932392175493631693573604619248491532367571511713684241987906142596110469564248948024982679356682641811986502000923746980153713084795975996725024512294710486570758881318479599476320992811713461605272616626570797282615741162964658101200191011000221412455171244972042597921461198206188066390378778700249455975512480043167560088822288481153409609344556460394060752007479965292726465919346151892423428024855790538128880593644829240468126061087746577720461277552500225678278161822806353779519048195198471549695945296025390081440017701587241022090962584829160388939960516634131612901945969010835214880962426201180463927651762288297169333289381119402295418081125639865021587672579265948579326153092131587786390724465030563113936909742684406841735128812794939738612390439921803286907167585336225045271663631324186402180934820371678750579975540962186731549458050253048688868759764110604705942493859120812317559677004801291149459090796099958611574485681907649006448406877560371448692613464819568629661602401509293466012690513546808288231952749025851565612128646370240972366724573500755422643191491072304191478995793546680988120484270265504932701393197534579493448696882708040736965173382847282243471712944804068570155418056266413693072188143141565402059038013964600788173631738885768143967219418056563703833919831022358194651270314798039724256439328221159262447059143013526957536031329283033793778824011697633446888552065477384375868361419777651412813447348517653413099699050899278491354958541667227896115540313984460678412554796744665364393728136212839419008432062276660556025630967551603177078426022544049267338283237519212523676548682751244853999981502377021153515368600577296055794718354431324949318154620164818671014541590978922766596777151761066403239135354830287922667002342680785577756169554647144065996432871976734715434000836761108782171690541189595281535644945872168685618322265947425316687357839915780604824463059566449827090858563586114104383521742310927224266302432004602731298147160568780634622076090446629107951973753282548914485961409346687351304295845231969749041632107770496830846203375894823314978205459308221655490446310475929497367685646097256336987494254619753492818314094676071895598014376690112984106623083456298506573539053133813457660920203808044855340574396981095557419711602977723589587886703738514489455965747498837606679505114138064944322678499877003838608725572099436691793896553187690771447399031135162987485655826159299217616644975518096385361759582419561053063263115977649338997120708818200687188452359347828457515967268557120579414763275162041158695419529218643901251672836972454298166106841788140607715324790556191492325415973991770108449346714309252900535385452780333985554093615115219073705860595388131713345534702865984443278511119798849097565862856419890763697229360125316896851221047411284075285542497869253799823517764726019147767812007094537052504502547806198755112082385054338944193936788596019625566493141733287334816596420060851691116864486639581279789169187291328530438530654134808232887817399900291017847441384622058587360805275958520169871490301571913092394781376149929297200398550635702506967897440650028547217617507470321421088350614309317374341072776191160812390710642867623187003148428653119808850397387514977611017516559160489979369182232281616785660646926349436817294693923926606255354465793218979514400912679175516736011825234747574619610973562449630421341013773761661755025541641051385273682199917352753446724331623795402543889883581570557215302881406410929263739256283854210792091587834460067663428270928389464707051643104722137855020442208380200579911409872470932443556456996344670958970683407365275577672798875087793215992291586131916301759748272967144690872215536229125472494417952867874956773799766284923778370878222080596900559966360328669628317521457574733677084399851604329972685507415992449691008373855195445988267639549024491670977542806172910264152677612462730086428895050827995819073548699074211287481419442068984321360915031662010013203845952944230663469439333271599798325409814280724320499379395156364811846661258001744726252458733811712871046531983018468293826868352941247020514486298172630715575633142069046787506587548285021082964452658696256444058404847873996477109801070821784282110523490903103809015040226120328056586840118071912244656183434487987223921195770149669961582584998619359019481487480017303143067811338382512234472927794327773404939097744979812520792806081907871111099040246121225492393086015659499797768151256628117373330939136960606719138421285322667354384580865395760176675195182787275202416608872699375260571741506377109560084118824104847318892337120729029387040260266924736721692385273219557427632290288307081443475859767786613543103971220034939144654053435420991244450478249648007043167067816680254423752469072941035716088195190668739470279000510248691986690651667313603423608645570715409910780985022939968361950212947604710369201784194407355670153807928847282894130008738260216678056782731503466278990889539687691771318747361605638140696010380772082579944225509597755665173928538649598706276209731837072229447584032558921004870925276110314107941604831337399130601944744118022452154693857637190098205911667129748882457448394299413188404023201570066546720725820364921711086480256229686232114694802644455059221038616911462467178412516168581210389011951146568076641969877071563793194278526980622549866965513775369967874673420443872127768296321178223355273875730986894046002596332090966848817978674877178854663156496577153777690050857147853595193877371053880103576044908262619587746193939497883158778518158271028973890606090583575475054741982636860887974479254033100024402886954045751291248860226324638325642986225655249547700296663189879812680677918040209571259108533500472620126719696188483607741912001455523438572797242724658694935173876837813805431476206870747457897869085256799070052460181257962289930094952519781928193863962049425643604002378587963351865015640322502952158663843257323323218373191520633911663573397099263872230084912335789278609343417511161420579629916187906344638489733958410085692926285751517613646672239636997497874064917939447657955004702799427272150603715452979756355813830632677910982549988915108193621814123486530666006809482091889288227596560509118427593007783101772176735779275026230178060174047583987919287707805208150101372470650347717283654062598856587414861803780846762642294836483227024897480372456792404504675996183541246394467347069326241212241026616396659550297878918748614878138259284357487190443114146200928297718593720018110762823785943284111049918789230228123604737879786350343632931582986930363697208545338881839912348260660250479039584053974564465700902883877203749637680683049936750409265639050917860623814695935518862583422162104377684270063391064947997619010609373633200318087002171260900438562945454857021279003710882997313147764188083414386477655577017167509725762400111590227386475480700902549742216712234727657291492330136061713175525737259774468519005493191727780651614805009652489178796046613696137133122623643844327377636517800078842525299648614537627724144204076311183685007532874140532081149152578957241272011716699960179481022906420038901049059083566161630161833917326998026446821532054326552210787061954631609620385599252921583230432090881741634710791096581306330419074338572036063084559356327627960232639614665109045609269678426371383074306709062261593457816931968805400954813895503298279752212347025326974106981267993369166639014059551908990894435725586162516640131302990899838390893215852545370604406259123526404005867541094725609491276645297968765572807368931311588757852495892113875236912637965663378231817646580106342664133697099197393260082693847681272808238543918290501640110418307527280546960398370796777701997986555757679119052755110443327784246577869235648225326423868217888801352867975955320291203342856244211672692782754881218885693517322436905216846359546301175447771757275185233796700436074418176139225238035555948430918288875872067150738303033951900308615909803333462035597499048620140496641439222384046161647659522550384004249000363467519953733171350605487173873279863632459204259551909781284708311692128262897495440426613764956867162410520558466796050121854610648406933451170707280566431287745282793331164581886842188062917499102444806657736872675684724844296958808837701044053101080008463837499189758591544655557339822859270238282377358200820936039742106068434755919254431618006535338959349403236491683973606165505678562755635497272166742439874079028335887303505263556500450905433008413835070549680953892817410056438692541377147265466123967679166512545932737109370562814332114371591634304507496166401734429688262698450152624556063504819785341418493213694160509178801612561538693633011877609542858176875343176644876287504970826159149797927594133137331277590040694200907865058155016543414911082001545265889131288631972079792119977542838566851606830867837087970642459571182455366251693085585115939393367909572486869138195920463477626383173503935601513044551358284968342814561384381165526657854881974227847370276245812928772242713436196704339962777968518397899127517733156417426014484915450476236606994551708105547481307972719467697829044103379374248092329495489066900741591584334666526047952516030788060596461771319770389228967922586040442870249832275178334417567552739937035973360981716875970846791183157193526752590515377750068209048426065346941677839174004562866088530302069845763249729078158495767131492898963220170006793015724696034049434323061289418568026484094998964961016989006035233222147432332300937097820884488678369991929092864213334957296066181324005625850473139913374268180831587819799985215293645433853164519636704892602503653429020181679571633206590585200895953591715632251410423515315254300037052423266189393795512373420167800606723787719178485894616109617484919713090488096864512240428996595403284254005071431964328430781671066220922165807185104088191325496217830353050159220768729065397760939621239845916667230543671018230955657210973203109105922222573724008978491435783567535511018598395396552785997193635203316026921092423438701047082529153676865964601614781974174959851043715631278865270931257005735536649429486985561550239631476244498998653833932652257503258303515624005892060547725477768126701163672178543264434055756045438102076141400045202312900991785575681950330746935311328460231303677596967678951701044837415871012329283470097070905034989065955244584544714297878429303707848759471865179238802429628409944463591974681889406670029286502775038944263168508831127462433317503810422641815372350172209180295158371256926785115649069234033023728006340080610355702929739113694207547849107682334623647833636379469144349811143940121338155531877072234715714465068499638938024561405700721267874567277842859662043226777155687219113410506065006693891385919260521860090374196015610505945717990847893540534461724205334143798357585086692499397735291831501099511547487702960291162364857954763401478871625163300675349788702695716349694465633017606672170956768601120602449682885908626739065802820117034907237354598732762267583813634189066667030128163203159612605806388305645295152393408457971269642084336203427167001207979911587466517029150014937687597288521366455256229067259493307824153777767901963598778703073031343766219652250763070945597748045914972081205088597435780336619539102056921940523088743821613310817578492061015857160351339408310604034471586361817518141168037591205678545045219026369774874862846831250846144432647579022409102182342045973520015172532846435528000830346607464575000343901267974350672301523049750964905099779320212374717876418033850753887810814480254436756984384007674184781283002916684804239060594135068063686068555236017524488511094684120340177472823815436648150320723476385208064397514783318783095974905585530971164038357997914693625613292830474451970474696158329757900595632383436835426974041863412867043230207972373067865396676781919150077711913227571694414682959388706606607425858507676546585065719471257942236824872898906127738384896994340683723422954279322943597482375418961497871437428410906715901163272881027218999194713358865181107358050227940784015644128664743570488150018014330185898703156827555305068740807279276676549153457871730047857976410360088427782887472587148866559186643572687571141673771110480156571472984415119602064153541567000412716380610635895185548927224779880599754889514984581609692559850523399981169152077095197809546410658939651191839854848723472932489330049471504360119129403615939660980028097226995386531775190325553404077246629826000438776556446251037245826769137108139802341881547178728981780762406692262532463812996030081053177341557682872231534448372488237939505330553083212821069282975980938854280614939107307686160761324161847541157518094755304552996026213428226144920756177232230700993479851199322099162482612111104932470573020944230778953478254459452586958372004110038576316640794015551143492404716971400291999715657377401227539612005551231098612035769209278845589458627929598807537842855265310053439027683554511967960746749961330721848892654622818162097255170768857194670764050858704619918227450183283817875452616750313489743738000658748551261639000259089389874643749058608121893982240033968928953453123351925823430548923563192118569363945024584691145319470669781057716205079261197488875195655944293736631379707061034181384801717213957222821367725286731868340260001232045551526635706320355701874427923919223591082471101155252465798150692028461876837734991746093384120864424146055610889359027751562582711041112979418614354485858840545605454059165108563534947332660018063865773191301077357836587975671911674385509144908013515101108537127405848520102373486907935456367498180083318585975413538494852927344661149385503152291978998883674383621988083896384622627672196104142917265776567054211463234985755970261410899914175938537790986121031948759921601725864246392938005208828708926249860005384774299164793234653388499569306052333420866159396364226529030651938702385037895733508395645322695409531222562631233779765821476647895691105662177284150341753361407660567368605067714148593827478900723960944360154443211047379007978012778991699520971128232934861932479937661543900065972582557461109667136138824927973373735380188996296949175688383116742452143672193660713782496936295102952800451732190128111259937620406775742731365451808816227540560474049088839328716766118436265676440927303492498958397891960855570495440973558123854147423841894105609800760700094013145953867686219596779380392383519543915298449363284732541504684455990236436015048250946120764225535531771584561723683445894975486273456510853491544827354666278322248406992441382447736529804048738178899139529048733757647833626234897260959260315835224903893385944745720540922257846089363263524118039907358700637501535276579618563547950948602371585208592407900506387529312051376001405417143423255807420585147737346744902335173914024458969386493970266937390148407796125136467520815886833638543438591337542283054455030226951476819118520209313863006142083245682723252692269959505364605171040091504378532182515912272970463659601032769436156780618701075197151861335532842995641870825994431691043961772420869112374244635963673451018178438752749767722280323394640674589710565203027188578636701325973761302008927664255077772175412523372346873934117411821042268357914763235509839701589060905586669378868920189580932930934182574830622906994374306074124467670773480216879456902311504962266550860101096094226998337752505791885584115585949826315531295033046567368248831265716248615084678910292088511443745178312997660118260746629649248369589007565857102957377991457238200818724223149410176535788334275684910400594029754466659061531805460606839154047645072740215112663586425737595793407803289671994211879242451210680000904668051864907458101326113760670095856541890308934486477393880041953221490199700488227395766096269555780025572981168302046419555138151739581643442962932379646255116412354783296228685321403685607107744135146550794420800909209173927716042834787684659404306808130452141373453970063510709086412133778040380148492528213670312875978903709948289539413675598713279372385014201865828855782811238466421127975846818162804606479573628791401840060575427918983947998435787975246511469846799759281953077254737585882850255236728894226365174946568292066925217545756625290868197337751101238892840025410724307425680857098462594905776014535037740521320839228059038892102661975226084878580591237474359876988307001300058445191130034828166658426942646787368818273226196414652415592663438810172501282048650110287870953908339703292052549625860348586717347274435152800761278414346968964870010790665441108074398911540940624963534196523829879001909344271146767985174166267429182936952791544446614084918506450800485353632189322843086461148810753451083244174598138137366877769072754595917687073005161671139128182502158543642281356109468649485611746589532357951424053973545853132650507478119252230976237361982648006851729576944561981720736306042581147589031200098971070428851055281737816309160498034788056542207867188970189696602510180288039221903868854048141389499932499924332053522910000686142130900194647669647429907943495042832348948649683371520327307158705633082311030484085508267785618575336884773888045853111770171337239038835588467045700617247942269963222804504524865822095577412301939868168006416518383060840885149295413064253078481741406413810647583365675180281623432267851334161975310998334098422039154952756136720030570160192779202591576238926510146014202809171641228083616330773744067651002586264835584189291961734912915067783179139365996822462377215774149718572648086761232351384851508333647101827999075029783524343549700599880761156967855655479576262784471858904404192899531948333289938545894360125424595076712861946801151580739759393238523035980432109282024263436966001766129697272562411136330309961290334125922268610641359661978354444380085770621347887334079467146635600400944329190965953624734729262343920694911240484463040789117967830974743086126605927067107370516573376124515296649273996175442372690949286578490133761853484235951244190424153375884025123898161857530705865324231422222630047477183353047077735587533121475362109626609217483563152908052917955774710070698099676466551981333888760337083704720661543193028935815034064268307441129467999772054233812325899795424750364780406036816947300833384716386183026472806230421853844018411831988989025777769420924714199648498118984740772788345324040919681187608430063778840425359369014380616450158032398995653078018079129967888934687944388986329204244554477340624638048977620027796592150307421508833723118774205131117688830416866027815933843805362418521898307448469957491652695796953028237262467419171576088148111908210855388951000431029571375427205896801663836993441148071195901827103766466613215906137406275004425054498947851446434110924881661099341024432046513909462822443396079150256991267966696201194896307010824984740977416216576185174355643542761109811885025929725874446163185003230671771854743780930423320439827252403995071117582318287320438641735192683934578049463584502890228405193460153829481804510714846914732257699666983841380912347207174472223646668871842952553984235744808465013315778846378167900593358521763585119706016083606460114439565638834077656399102581185394240108068995071475730623922615643012819039682785903438807927899657056307020549468797745420849522954857819057936303916831625326154451740727154503112952438853526154173595211577432316225012976137162233509856659554688804155074473676874672850598586247938154447528758837130373510404448764027480859440481377819503453103277264477052954096886456606243174520084690492516675734722413153006442979637097776388295659937425497424357437135081533156545915827904926043212428642024639589931865235822465981849996303107051277889392552229285089757530462155077177139000114322623096394847753651355842602885271334188751584915166964680936801132479747866093615761482844837866964818132316766233925648267563422246407832599804109024774227049850600915096746359785698418735486955243082439172809238424405096045844502112528127913682266509261787054148804437187078262516566704003636379028493695605949635138550664475115289891953392730443659469479074574772252739538608104113238863491733372072554372270731443889510711648002910829391823941060548624660815691069033329865472673161426167477616720363460846878945456751451147219574224155385933537345159718176661253012819993037756548569282070071206120893888954838074398305990212719246166260379565739424396423581339312428160406065714277742115153966850186256612944039800643564391868019814447882475029171626876823230783413392711763867606431495847163786041692075811534445281717672618144505854203500356383943940204432956458303688323159432228964256514297042313255229976929108096043050028304598777116672451213770824202471848445448926481805348346769720172641799151710385634818158798125223047350571080583636264588721961117608398734842792266562707549153209245144743071461653179060517843336372787544676375550112099289192144755562169528141644020796067301437319824547497727880593577489124631778600297690249072952177165532210978799221878705541581443214774379070475952819317946820841321490803637423052315534475417652035539564671090632574183301783794765551784568450752530742743696394431433272392139014231092914273528110532099708342215539092458087544057573263444621852786040360549853131218793082616540524808610122142679604879483915715151200144955566141796797878127726864456209654780640042659750463913951267513168759168835264459513114173142155094569456727233062928286297118245821223641483943595023689113353366739707726892408801561564241001941789420282513100342739152456432145713831683318907878902212057157639692090357072299832602658967056712355265947198296625370447231866865756536361069405330690564928990823085894737174828149822726060700952095306367545444742169629019081472183528401859616488445080584614337026455728949088837154843415482649363486378148042759304513313871655723490698144345747954293086510430512314927218946189712044235440079834748214999405539372483118913930720806912866941548312428135239973182358366091293782274410594822114720958429053495514190693481608312886993602555347377861695042830286611960087770455187326351525333066628798665123703873511336071219320935749521480878100840734174912279299848983393763683670676028590689700091168334089274851170409536226458149688597946429916271286299105279889262669947388871219488866666739635248625802984360661870474758635723227615689755324364638774937342659882870692771433128719941941237649158880037098025442475857194877163436933949954872653986710489466190099883749062754878704468187061212730034801671994407236065584739174016230749195542847695109837250258838590532455501046112159513449668710924576979252554368153917867676122960011970915639578655879620200200415953698489582564581629419698231360394774346734993413190358500903299098336435116003772561914287939185412670617726628627967262561839973901564435160260054159770204279804362672001191287740552114771794740595130931717443244402355681092986972580824209733130208038539903914811418457254169531936254044984509333562773997306521861756501001376971547178521071002980210746636304820657086643368209492679164460154459292369676135495068439406407470966313375154293856308975397268684090990021783041340534274945827893464905033067191659718836592957816435633933823724726586772682484413321693862196150514169360333351268284796590198004653243244413458648679649701849469379694058264958423508849671135812334483115878959806168275885649151260523713466946436847087819440820109921450487090574922701310272603807735207971888360553809016289882869319736423860159443578645973801039830923691722630564083561650299894146744275144227868118209545653220091755867102454156982710073903741719688972243333190869794658287458006246458266011317235361969734314321110683565683762584103688828124985654434358425708246999833449050713310381588303128314750727472799528113469150451473038659156096874098571001258041091586964876474636586132720853916870370691877148478101975151693873169340818412096699646193857121023952313804261547964347120325531969864326775979113185781489196843873493264047329956431039617637266480902289866037985545657250744231987757209728263608973471423457124975392071395549939969884474009752361191853524520957668596162022085547359319933894245732119125286895829301895350965252052897987743544104553401884387329930772693394717198115889961112210308514371905046325603112275187816666556224069838929706768639049622147335153835670926347515707311333143610515108141199508255145274599852451971155409759175631573063105924694848597208991758644448588765422995289629271240055857266409627432248825048568495187293053872870613602113491196357213231585305176102796164130263932993892713682301224979390513466322284656691305483315303574007093818333990000832674781297754946708086086733258636086477552151180191777304863905790553741811913592228324131325759243499014362539295542034094750789280869583185325097397812188768350982565883399560733912556409096812470763718348422250871922601638211779274414791741701622743499530945741738914616046282525324727464786629896671312554971632909237054712910428875383889389368866776206055794520912660815277329140466762249015334389435566632386951254179439705318354664078597068330490934653924405893436313920555489765851636628752973806920365437940441631753346175767645388134578196363240764901192583375225242366788518679904042312209875117551506351561931627175401230245322403255801069548651839930007631670053991151006405145435152404755942964582762200812739618873926186809525375708579900229392702098420723312299008767094497863205751728728729633748688545589393767355654987656355584481660795915004900801074978996612868933623327656312747270062582604324148993559527396065874790304609342555476637748348414457566048353833087328504177817216870965920777095647641587575150516300281150047236926362164566555877295412381920744163300914762819485786922964461939397668193188685491688110886038356830334563131606820606463764288847317336720940143885044537147380826607916500481487391753746397111581725717435327562999909104125353631842785105420781217774528106743045096655494285121700638827455315529188157829094290387218351698320462465159099636730443925293402301385030660699332738460583515661623114276953684884950489938096024912916071604476789079569623601439859925120943574197177175209166396922728824292797547759584518436117491813699381781889014742542603864382497689138451995794749687014088653262213993958769298907260552148924949820547800442050458480907871901772611203770280633533883501745138074803989181234096501981679889517124261554141199013014437089852027592000673077105188049959179648432150000525930848522776667076903187921620162088721412294134596877394779780895789133974636850399892929887367046920891922036195135732133146103687664058786268128483438737634347018963143161323126790683058989077854407625798836201228339345681929416410169426220771327764695029581668362393468023636512308983539905035577429309660204540859652193835987862596226579161876656089467529429919482415181514986360258650261403104507941554194758484993634076225732911513047785965167069192454910406213648029614233418747791636222501836425533975782080672471115882749925538280483961515551965579466541222685572214641266986086916304690076895204898424494258222431254306540514709577589325518163321558555142159156793923797155683420845423999952417733942444164651871692658309727063640598116758966137823812262965554137927624051676458330341970523585277019980787330712439195483797681206405644370471443261746911111026494344721387434211410041333472145246156211393505803383822466662014372632934648578242598656107299267302891304917131337816381957605665710312566218359076122841328292184420845757245002398240171209803797834229895748520257684682952224994131156364800358336857442796397342470749155049753897404576704962735102310592650400830456302078150260598106336487068313319183259601325106701440690042329162641655693994236225146687086746202444702916937411575202743475479806654530299331892314762394217212857451761987098916511502582703095384587327043058629213815893599618709213970893624478913409632082337329934556379217849613750771716844088594400848393075487618612133096352275181930383356809761735911304163314129097188084700719237422272560798963666867074716463824622056305881213959711683094415934438766494495798068761859886990101281280314939027683056523296281992963966849593365397349004539224258404759183460854548401272455265453582378380624576809589831439681613463394662638476464040401074747792735300614135932789861007028794723553205473399398653422782310047978910466407203041255878065457958615460153364329015048472079569183088094982538686228347053619640568729036868293928931948000155480565537061356113425156796920288436692384671436945006488811865658721907842070367321202318550210653763383610292618041008209876723315240051627988190161763956029396353227132121847406361161438367815341956989864934039014098629079697939157291495227530389880358275393943599237124036493276275401939427559503249709417162428720359246368219173870343018197228802544571158476611281733187478839905401289548415397134878426908568495049169436941773735561164007393915195860504568326298375067281458905607754652677252316278656581937480693626523106340988491210941272632474263894288847649251431024904044161609682715790292393913901073317988022737030139416692612272151858652066253110309857230751436401535406230231151574230912647636779611617348667451498801355569207565662672590608215781149555538776701119820035479922987318481784067256387638395147518017056243659738232038031273785512220360633078108215219905987765759880390548451883937401608627877915286919878782261547298328188299659234852575338851418375620380916886337462230102974038273126944403237488571438526269477558884121519279002679796837541797786438995609642990012016317627658331621694997112744300223058399281193849997101045439662481920707587101624027283216975346414026588903967019140315521286516096723517803246000968457973291263687133153122562729669777790026922861340382661729258775188320492190022112484399105303209309067923480560021387494506632156671183276355449549382240601551049208163260128862483192187402754011805028192970614272716457385526734993700537881807170729554158844083481934348197680495235505697046211281028497837565711350898884223886580899000739231024523527189768605337413869742433276145606211949230714087203847448026522837766509784006084199675493433412015983822646890446021346588957094832997466875311270031495246571664823852740489213915948058868249498486377353115289556299688003523366038695007364802869115230676546187001003099004135614422858657309976942678229062425825764379579371404792717432351439916962654518921148386958021423855991655138136972773703943783330447610738750781060314114796311757615812611340077997375342265454956131115734741895977289873761655227891841901123414878486824815833437705881841620901818288077731038393649625253625032265788684477483114121109007463825700537288733988498511550093298071834010138483775818811358249839876777738466858672410386292500154884343447702491418742573381226742922985254877849664837792548353406405601459892993912900733609168571009371278448128352942116937921227124007101224664132593811648160898835810073184172196125371573396324985703832856492110271601681801721917035382809243897825247425493938651711156785763634216772936191201825839590225989772356896821867000250350119030302672607955180089425451389030457935581662474419183702721469655654005586632334854693211565476684193702823545513021405917065021030828595267123476783843682714436433306376054511052111547458370218926206135411458267510496163754534321089563436655303410479355136395955273171659291123855806276633532030749839537737461975681844227412919254860399238020459056845231489997644405721505357272647924330412528203284274552811704594963829476050052113691559987060209655815954594949727671609931164784601822171459182987112326910048992511185978397414683944966044892409861348147631826189402973786201280462532879722434972979651015797955640192861417853370124229693220377898386970439017787895824621410008367391548575779201201448174016561099980617747715277886628520642867369631087235563182206054737632660984248387137905367190238082724671028830855179528220361637218587814522035131568250904817375427854773150244024980785546858147612598999337265428810034316703525460421760489362715861181514439467835149260177724931652537321470497973232061755676780769084205956846551644298970343165146202471892506078040510697066925952023294347199604373344240375308141421089448661642166462845478365923284032062913607137541297015354477007510096924629678006612095173782770923755822347704647438515604585304875988064295264616778706943175999156103154115946746411317386362492068700537471305175658491225115156283567757596605997162341725995789791849040317941102592118894624455413010984473527070219238318391992408164059149428018918461153243203763609448172870495626882708367586657894449495027117375280948050640871845299836408579881668552154546996720684134156430172196302575879137789839880864344164394774572602922463959171541756019687051084642683550695343711396586741029487611022247800711659013052904140452672012943369751513760968539553692333550602031725373542714906900887377105304381576573229047154665052766716933376287933933877773329270809974958229407833680323640129874272359815974628897439045479586554188949648925299394815513128170636513243359364953001690782988554881548115518895793968351921142757161364918154748238958160492304985134812903161538685261551929804912315528686549299301779188302990056766771367873979497875772571285749497862587442438517362947645409651317357413066281511117548419191553793962664876803597744194032204049075540406958164820144775928403289470993204700385927292517225101622435059155225103058108485726426157372976634867623057619322669253209873096376999406412118126854948455341733757117679183627322284809881008158393546987494429145592930419990746654121437620580943793326902862727482786432884114092110980324248000010206675939590128497811697281258394696971489203354888836228679763327258571183965466342975473303028939630903614171632248983069939317344721351869244520184614972663531412283057573760940218910562394125493464469765086316035048865101139469321893991859209178600396359700820099033430573774470960424153830628871877342325990480605200645095678355032095177721602342915114980056191491134311998954838018509024576248726648282692099337627434179430347677803399537619788566751893970782762654782533380526874824893353939794051017188951734983577962876822196153847163359643139372754122339426256274009751645688103979803197721911956571283767709450184798950116601538317407964866469828419128954715106738609981473809018644783938181340326949462581857005113606925610104188234589328713525126038756316926640794039969929771064496007310226244179770718557368050491466448111679177623544460288470489918753984680151890270407053130347598926650217118517448640398557925652481937968007186033777351341694776846683427818802257138646693495249391411882253706792613821410874404264603382999588062262370685789101823562888616870887363687820888460564917203105604039579109834598999851592833476442309289814927915357885745877444771602767880360248364744477416197601071249176393952240100215949839468863815975079643648321322567511970523105688434034669593902781301511927348288406221426798228850188024397237655135861527798321675256567548349827103032894193617935166270876620486695511975115953770846950609883473881073003840575729117295945132134153699953084661568209186930480825886558130423445258191486846570592450885919860801184655398957363957928275081184864294745759421245404655009841801387423314165900969471430127200443848614307488739729834933515674458524442364042824107870899754603736887733127105842587770529631277113809866842531160911192984067977193460792002829624249522281321381068075595744286813198617056224197446937991365963357781616939742849492753577924526802759618862696974673627265264951159243456823911300343530723022723309659999023918147954026136073779146456650099949912106463221840116204286428317622869839240617862324299265440022217450118344913332291773563245832425267731564885426443483533518560704523010093921523599984440070828482750549774302762852021778066360684763825445744338802070205094329643176392995806117344039102356700685066225350605943442922464126934909821503214659123528714054998446197711159112804469859142665558772397404718836335757125117400951424898399415164767467509253314302816740253493359161023124037276154913757005641232754485908857380265835585036530103520264287475319827364646180765370031600729067822351469339043476719198780492299231900508249323309204082129987295623805173079989462610170889716148081755112153594526714315946798841267437270840271962399587424306311767186690281381751582265035053236301614318288398486699668160753624443816823931070856387082564616801799938616422719804146384384746608952617123358127538001975522470285199545955787612814400447413498927715796652909642029925606363673014381297464398279745252304615403556640216460314573821785368238254016779730983005858064896256808712649867932796846498797600820150338455775744861618835818197360386202276633649248596187918881496359221323503436861441164946915704761821846128961661757037383993539133285945312341178833747701434286178866610684994826623292618494722159535014013701628610902953367215075412945570573717458193743292385314344386155764530995873693903213436688140046617186232320120458171689734137440754999574664068567333947631183370642620614566615628210546523855266687398730907149885710953581170636800464104840820003787037638051972964740381752855109785071203542582290693946684070019702346596372164325744588744841207515616957544226750896092626651742922594139393982645568389583748123491845546646717032791254470136645884060290918438092931406481170791078426425197861443292312230321067436875703462773311936095390292992134924456881408405725456320164920544050300230927282641789408229985384154459701283088282295914679455905522574520665516472964897331311286023309687780521451015307911111931122604203196490304396741615758823044344946844861399727597081719666489434897312461842184262135649468244287229365052081829615049612480085846191108672327906004501856651291810419629393695680900373302038186386018766233120042265556617654815215682536330926079396339216929458800655992757328728628664855566523442629599074232326454729763335123879626360077714163039007799523409467747766226949855438066003510779570849891895531263666192360267693068837501722606631549311989256369395455698752712772488481894814824680396912696739123126613608159106960511291434226757278943900549510440978924745601293199568960028089414466272786864525914629596563724029614525061161644037789479525538643480641258997051700175174505462932354949193180737104185931737324486429512800632823380625955513920157154618312095831860088733515035393207306201757483838278189690304956422333110680465870052912121792333616381840128146940014723464928241129126310884939768008300207230024006550233053303118664262475262677315065248800136189443896295420427531080634335223013347962967145819565190588935552415079840731095941670598187287897961615867718464312078739341671926409060916805532262006828785069960044218205824885118183143107985000139694408071850438624567149126301121074856447299361829133527937270098699791237759057930446287708531864079626661601589361909435378338421201365672715445284528195921974056843850991245395046219698217803037154809718601465871993712559281742006958719493238590826528824120303023985655005514167762084367618959055603270800830934356509207688977616372639077986063594986483793901200589740509847970254533069060033960811571187632617786387523996543758268177422639941674908141269962085499160428383240035246808402047683405323237952317347468926499740151110342128819585715149809371584995817651079311003046594265704633129558355472554717355431003583736686982405465053928658888813707504624431750800527738731088694407052240630089902636943451139820562676718677662251212272502938850969009990399048237775160685944436948395585035658362540391300847628282407851229960336514069174519375530097431223329435828381995191425903009258744951879708521645161303271254291034941894905885881409732843966082187629221683664634020158641150005625225719753643021929991657916149909504511382773205691318775993987977067680707393902688004766082852642135711255063259147141060419547167410396284467101212592607705511680303360080302998604448334047803018801827542131358728527819004788416812242115699439916925393594491949930998250326534430086010296750297050208871749043087033339719834234005007298049180477514333842115858698517966710395174993056373294409329485794801579286666843448971131871012757422977075510845374923244770983687394521412231167988334369466336361352860486533379012507124032599389549928718248522728706285193175463219450430546204681573592742153837625170351112511117882711114595540149960147003555648925851733701712709656362691317219133643420092511297048341858204967567233333437293285792177746856614485948307700887639692393454420684884031991512462182427901997749806104495875413005398288979901951985291963688845944631459397075379173114620115100381221045403170217692712870874145814647696732373814502893011240597516690218378478439306411228804648051811448573644209000537404897561903180407569600374463857788172210716450441335877218211109368049132232630421158201842902942312361375981814713868572854682497710030228676182775271118668743589826019835528931412238742012319751761956144125674660176287686555565317991913685857972711040660563167677918737271825412835201217044870388248228723773778321373693735454406883242821211964828780562624967829799541607074116995126729102622571666531514623874696838372046901731557172759011625270060093700254926845665100989752036755574105611931764013646944364812713991177068537347980128733948925633270965597339353726074897659146346525071503156334456483051224694395125851534998633403601868975327863074087622427706737042568843207867640641006157278142778442218572091211968996878910193367827065314982729369732878275252369675046825107784056198503976904670630462877208967369486702672601504410850514955264063190788780262503288331460728807663584293579392848495690769728372960388099434341071870803712417322735399494398899090317658318265889785489190540074460200565603716157071045440171808949097443042044401208053242914933088591136803189904172762004291089374158728030140696120360423824638430656177403485529948633483313504480383340189017592722002206745331119561827264782003968928075969083182832305992386836507129009119617083000921743705889797262089993346869838609813649141685745521807978174838974927458428957684045529530472278007043447206237610680130103836313897237535845719548733316421138921383291589456040685853207036805838879830910564636047086167880354537008021340974125551036068146886394781642253338436698078215258975954606996576047450406378753211392693199925554502641631654400996435838668521036502619186821889899800972140928914287156660597136192905762144602930891930073960481888081565166991244979532319749491766498153989283991252568966286618933527766881171794812013611530239218890038867107277669213686734460384776264710673019140314254815110954135706092767946454152981800496460550781317152829400124941301606728586726776696778027191104591435350611635263216621255210906537432605753749304033968850666620014664980026348473638499552665414583777890005606804071254029430591196807944008262958750191487967493265247257588217585584555144962503241652685765109965870667335688850969143589396416569740966905867141814752605122170638126412506038828393106007406675893753145968905876286827494706827027782677219179646535103029092548129372666456967235340207026790708413131405991783355912279620286967872760668374718637866127100729898347787791141788424729151692813012719570324894121872273731008524784568385763551152613436617298959281625333244628196872227479486801732873194729109609704981236050911892706180809848052027590544146471220714718580084741952245212873122208295437578560409875434859473071740919617393640018544079386733549951554153481055391435618788830944699984680291829002569960474086255763627365289835711478482469224466905264559314717353913446506081515389210207617531001527895286346424990101459693684016826605040808482963666605257531650914817623015658783990954523390770382275653638943783208646161128063282312406027605779267737442013797720236894049147080623186718605420889803475206390882215282680188790620072946053244577885098473746967068869735715008191623504631501046289614653512648015149129902726652167510050541927985608844812065378750041720229435192480656209209605795420693466138695201870283928568410728041033116883358397153828200500534561171928194646610302164976180702238684130563366681196670985042011502090333026388646719690985118561975568698880826371208209803112853480942178298839450184671082318169072636373199254783290964136838164049609687987148348345752341988322942393015473779839483236937954431914058026108168992628873293925094083847770049418525936338505619632079216680367801234018457761133124868726811329797295665952037989186543183069088904352416404746669411355681246374772588094850403493926528458091020646267430992502757028218110976327882811121071636557456003936777801104025029407775689578234604268271716459321197377925066572259884558359555637572015130199450448246179433646594273288536109997707379532210893185432573607828708075435173101796748937694988514349918182175136595309320404356192868161420735716868496469552573716595862799508438975692890448629693928582027626928838485403703719181378407601206895843255371896206940972989361147860470939130304794480424175120468941693248611990043055413169362212642509099859138505900624401856385440440036933946046955197384410051630928324251656834019199842863318078928959333825871570385560126382566811547976254278226111825241747929126035239736905301022386637841694909462822993266681726045069272153067108926694491968319601133925852365706168583831618906648952182324927180870968914221801463505429286893137513696902167966361769776466339339281275813351603427871107954137387700516688869417536887732162313451530222219835351994863529495548181673952664298521158961835323234201017093116557492111910767787104000585785052386004965852693834872998975585729377754835469421013108545162856113197688795894603066763406869445697837296097187224727165831067373048911980504083268792620858935331971012832328076494135189763092331980135428901911896277963064503774796918102985377418566205827260435240718066856832322263732750972613513219313797684077603215545827221795601070940616717837698065549870226237345772518792475061008764215301481879010123540206884182467981389780193524081931157735790662179938667796379354007589103414903828811875865851669176893582501222436022266965984126399549475361661757382800372103885912339061990665958626473961508288613379010241022820602129268561485710467704899483106833089646210893708473625102100907414847389793814174038444559409712493178525724126122543054022675116969169674803884048388365317472065001748120585873172549409375452793107118726517626989580924627681590755057775267036993656790533463628068816902275601752364268001258557769966038629934176548103298482885675440039015818957275883826037314126879873999136467720747983272744929802960997129067422143275358602679457940561826129555774064445880419570328552166709651237467576733256151634576642792129390752378038937597092966765304760294879206822882028885358968283488280458939514816781758214997823911233160665683978136042693154713763514329364299392266272603362195666059137454522106962646440925546939746922399207731764806999158693646132795871053140718700267915024295507647166545386988487499918348777121631377181735560954568865489687016404137458194867752326855965733325641287336281765381102098942893569992385299045631078453489066984382018474128209225405737991153680422042885438480737370863571071873508290674292658277675988821620439209025542126116359778862282858775986373956379823538301769547808077542160947017676881768944890875225591649956815312297972937724906289319594353020364505476592777663517770124557960101180735390856485163115509379535205818665926894276887997967941937707535915788680483675793632035389015865588850257137815290707032722118932064180177649802272172072013309409191472651406110822640327625477535936165691859121476724043623151223245199324522538751540268406553198048319838751036767438333283162915026036650875168297984562375742792478833650591778338684622637041666860606524592177958499009396325326364080250808868505443600946088558992071564066350581019854541227786896570936974098823180982167173261869432715799612820002344457384433155791764069927788404268340458813185841647389162268109600294863114432959966367550989103844338485950507961614453555245518236861782304154813010706718448408231008618250801490898792744484677279800348711426039438360098300880643618251195311444205973593398823867426362666403129428389896657588629583260089796307623101627211245266400943731844427465855651331547683361731090074076096511655280497138346197171083424603861470661746620010467508340109371711225836370550840346884332197401847547550984586101656673349196746120594586066237186989615238764095568825574054395842500449822167901705828106153246530565681478282968617551142181315586812240524592894517563423344086472319544952318678031427477397707212179200990544238263920511585367968836894749500471680742846228781263248904724354705853218288197719766930627713054435863104752901579297695781751594217876582438962226251629233624741260295623716939889116638121106121653293680545800162758080207830797396390233261802569698508335400333144217411344036640916856469207696565899905696624270528629030930400971180517209595482253294969687511066480851823465805583394568278250447642867657803372917396415255777735945511259426646666558203607582140311205661129843636491219425499421490902960058079228803537842506441830575698746335555361624422934284303755176167164123778864998496552028584265993826947897127682069774659217793069601299179945853437269751748330827560961392502864701760423713958812820484849376361769615344120873891442462506232226121309989089438886685711556585552292862656416357423451195225852966695538943573239907665410042618295425090121369382269639847580226147455279407099975507618547965010237541361681929907899176940445984186479659813204041931456985891531427370863766241629832580493472923533435162928995083511686093161045202457803776381028670279115215361717226525857266644453912476109823313123909460712731988287311369702259435608391955783174652975441482450125719163627900512846820013559674791702213425661788891268867590385935636275522052342731910946639807553190861026422526344839074429931029439476382190889658652672650534554774388301018431622191874341648285261708737519030539753057880984675371844068064663165266676505804844720437025983287111056526909271305582996905169665740816058961619783813358112442930089645514409009114993894208180631867404652990341400494326594461019708963804352450726059825705784854962442000382968366422460139680762814786535656632270081826608735676722566361229577166586783656231330385470421576849693368185581982398827445932934267282079383227698512735248736998144853577341645004829593012593066289194811933650248430530785781507703255004058763659696405815743324358915016573377435517483701907362338407605262623957592617581997344191787353084627582100715291674244810734119704908307093902281463603156747873267693140194649102827641559043060669948605848463813354383587401732665548321231120650685570408226538264780772669015622449310325886571969248345816612153748166686585784041955503287883999397324784493692171420830101623006670732065395154462127977787892322122590525414662859844278255531315723875627800064321296744574715696171146908148604026372091665109168572222969634539428586862595974656724518673678284144270691392681298095214699077074528816110643562515763393003953904690428893565968082468167647302256024514228746405981243279565987983204102618728286784543418280465524268414550078218439554416897003734525285638447308823798218933676399238533468409968311787698459948327303953113716206117562399248824898901355235494634327505786284216870362757430429863868990864906991302086531072231819182109164210488833440300429731236090969045930068385011195818265653274382900529066508917303079672938984067794465646697026653401943463885941129474234747139204380583398809635757532641690347888700324853795533863640731261644354947197163616507296539712090719685163743859709843479021911724407556468876586218248719563030699655542886170862939566547907266130015456858985402772337129676659706923975972653241693054737051095345666698310676816936054826411797740566970066435424506582752745527451881358619188436176205600622052147384508832368445777047519269058622811480448741940151094930546660071707934012751556361410081133072606455893870034292361543500133512937757412244825079401343620000370063466184809482683826719028218160453323489240729573888434780871160543037324053644342903974973778654231151287237583585536942049357905004078761313501834701889502735448804645019308410538625699229949774819162881326169779589186503430987802935058639821316498070836004220340605913241769039445246215840100713705006853934505535345630527324319497071618749979895654208017706006601049872994349474892099257643713144074769938268393898928580857729166535120988720174135950056495743251930691091696371082355103384308552398430542401836899563093014776837296285591258362596511454786425884206988133743254791030661321690461067301206725733154983837253788688752247292308276306401690268389670744435686501817825425065241997067227067359158953612374539398000184376431318947175702723605145796613347405059001957136283124137084115664260855661057440813281542810670824326346232582826133939380811981442517953038376918871359285692616648327909622864788717556431719167921647950791904698264126197349259363879673587769179337622557313489878372718424014282775766667780671203049807306529934406187156116022904082819656023751856646772514591142758967840033274518621602745764285477907668237458381509529521229140178526257733127048475209904124137269128314081934335900632687476234346743743331506317324582336579182537867144696305769485212251626426729903019058141342540261814286017705654218670292595893014106859481235182475732702438243142222191485801829590676794581465719300537446863814015055843334994934682774632469146786556850453304133059562042550350804471021671264759407289910880951361084645257133229997723143862809374486241016993910789425754342268473902431547422555985781501178881466966480567409219479554848231582776977149098579074645446735893252086720723905728191910607953477773712206984856657629697288910079575823043843425741406458271482078699878861811450517853424693294592970943641777592933273523531280864543004134142078465252421762679193723320089326044619485316919174415936004164289154561363313238689168251692181623322687450184073621566054801696366318348697198755106425262292694681454891404864934239574897660611756044935064128303132382393717023963657822474525406314131964638668872067413339437778828685598804916302989031036768242687936208093522683956221084693496527862876216685798008668037726767061386869540735816001327502533194097675160448443282863404705235168778107081935773512220261736308412237652369040302943695715278373757640977594299176626574268235582095600411659968702788845161133868456404513906895886307117234053373636613242251232803044172854184616431563926694828878790345901884426556447536350490164050051977041288488481807145634699901323575421675767924640002613772682759039660005959331515317731181974873702653783331482674437275047722362273563599223036594695963328006669461252725376953252788176809822861010432612040960393102533308026628968179211369786970211606173494229019897437297347337080218580517046828139514673865606250228617235798970245923875537288600070644635778023313306314380044247849023421577068896316123701715578469027256967445340311167902858700943585131438919971043263374238641544549250250855124594109716025908877719209743733273819420355165447672280120561352620437210713808019237139330804158588263941471668685241737452202493893256045668276531913099557045600271214142325532749056660779359803442755206161801396047542585357115934556796584467926372213299968416971169753179955988206073493500715257644182426183407896136938658915390432481526270289925663640337804754657401652245327033751599257323154381465511785687541662478543181691818328184340948624283482423199480698763247631356295137925582421022108527806875222426840631336803903147365533846590160617700416911826667337312786920391010119490782678476040277259621863738369641419741402712507051392358942738759331098537826531387222676081396856938228639992713279440979130781179346001725176431640441609289848954230126174382409112842828618201679045402475347276976475091153802714498757863392948672270935181700291096665386688465682795059092655449516083537533848764197401562189004184341730241812581993937694323698370300033880902394374455139437636628087705269847363755771501859787630680310084363606999570667940339605480287332769785649669012841632089624758797787143731942871174755786180279779047591335884332760711333394772653283175119137529797962470446005944655006555651622708904040773952726995063121604830941197381860649678056720570716634186415739243528880520376453011990295468611856006967923342609318484928508445888274361629500942738984031451687425481743979929374379133507891230703467272618177054934371182829769385083317123100733288231675641472635678936536598367250285840030651508493856622263805995797879817342066061780974624946939952034237790455752787655522934954340235226007930609230477095215923021292687546176025961474814397676281950919532641363339080093148896410794731312413964009732104448872536061557940408162338015595522732691399872379778235037287892390394084935877361126415108309191191913248765263432361130041708641656478778964232708102762899074422531733327598684619053870774988010986318082910698918385547796907988210754064743124525440063298302175896730884575316139785802151334958917647394852855009949194518521724427815958377059467050780912385062680310644325461205643881541327792842924008915151366283158733035587436660930037990205879535845224789862013805779824889859804515928847887426672918415348850249283783937401383570476533823191496128183300625048581011538755065957256586658483040359617123012419110146390441549609855928794412011242506264494909783925266578288451474170772817383174776228041368675574991155672270801451083773530414342075239317979738655736077989863969440530551012921303030558602402589487705292491691332196189218691363551286310553813833759277880948228819570860670966893235936641398730832117974630309800514333339867565109276782116231349023243689966909597691997994214129247829553485319305096779453916929523598338861364194022841672553041002013343571382939743512371651767213860400284490394667635546413663243584437486097314806720756023981286122144925948400014453806754031860205201638290956677649267206127801336677803122148197969188876824948827047676668434369692683460866420196525516640056372784639538288405109278132716511038457928248179914856898698028375117466437353347345196399659820357577700950003476519432153542686817735871221026026651791202271650883128612852585152827739240340224397414843225933916885581578442379873081496145408938069297802812821707056323338525550430800241378378216875611216958282433162102692090123029820205108698398002096471924670284295959447766538998456827692648942344878441890883835768521456378417049485792973351582171976259410254985152929873257549793970049135178813013682305090130576430781567474736271099938781880077890348794572514330733366937933613439511978389266836446050305870649514849303675823824684245312790874602268948541995792190138020502817846725975787931230134158300244814117987224832065157739776930382932926668292982605508787958581347103973923777205908131553903349198680281319083978842998020859655906274111294755585648720754947349231153233042637965469102483578235032542771302140746116689927537117617759126659918082708560133372676288268110999066982509837785954850153084580542085000198348458831742090215450107784938959941293536252337036782738396017894702104959947478697058039678480967174286285326840933542007679875927040886849735156975063235360475974327609773966049327651053280936739235489052977236386635848507657159189072135658282218424264669828273731250114975335368603003019804493009550745963741635048409785539782927616411274247473076521561096155669937577501653377325412177308230074050919358444372873180407335991877926585271490849708155748539153055115488156520779560753876513267052479983159345456964872714785268626014484595983866448815326705940019578768387855905147909224825499633487001901476636898224954816880238341640034583584404495738363330336379387020069628213992901627608045934970391044851460159094415373647339746115890243792778219894082712775536977553470216364342193050080214529121775074573514933380064313067776996579655172058919394235536891263117266641604362927076680606271162186331720944373079753041694448175183052135195099088139271010122954583957647079765978509269755477049444565161999681885865438996106324507218298707101160691060194513355468633057182405283696412013821630830099282797535124774715820787714749764456088425446175329314222851550084087928299024141253366810907069073771214941221016360923282708292064537000703344590366426498523658024124476457493610255343710222186822571661200354539911958612324119336962733985799037385430001882702922775909287128019248520874419168644604090201840538382530687125640330354941269266814614368230274316482198451982767451788243449408809961497131234245841502220445117850520247744793300849212511718990060007162180101696517027370237979283631516386041777676802642993085554512011190976650220176628686857702288079287845443258726457369131537619115418152086677940431836700926690953561274273686668314049355721266636551757592324241268081323516098211264852612211123410382257730923007955401417464165995231081066572518031020921411308315399080742774024121099377734199823996905495121637152114268989457523713698480311848231301910013810054040547625138427112969823528762258327730179743899740508534536749386911588358090065727770416629947240697215515928237566063150229186371808872719864356097046985239595411730737749877485647337152097319878531860051354316997857485173596223191135810908662762238477457028464551778284518032461241571743357754916492821612168264765066189020035188686047790070022810515411705111689026100320771568901059328633388508587273025942795597736843480779927469578537998733402345910886286711100954469351480894552176698402842347354862944382193990166082240072501808019120845461876248524391528984878415241456938065126411177286577150031362834315556836226518270774401613122231212210470062817665295729983706414559235897932818785442615415764465636389583323771261889072656590534714456892042338787700911848838700925629640747592536472952780097538334823205353237438041364757163057210813995848220457289363375033879815720951939398278537178663996158529068438281175673535598453151456301168151753656903500792812741128728865973675131495115136719445152328339420959121205095651602822369171456225068140676491809842956729465480276685858502581403415073116687694033207899826006277419165278873925932161328563289060129355859208101099482310695836065718772255503685139500426600459418741075440715120475303127906678205003509837104775488405536427585996355282691988891139317733002104246174386319745455253404614778266404398223963256016740608209966995705714516280618108963135166374245893706944767926483130943468130350130925297521966506607667891661294297323836500177017832344924332284744936975511672842592728934353256080810204886354338644955396130440792962837255189723840402698829058115546047222641493770534514125005716927505966342081447684236344993671078184751916118197580085874304690784525050633071100239364841730906011969833936996227180854005859546202007157266685422258283462348958787163385136406586497159471311866174949280284444133953256859372821759868453204160727737555388470203865596776059855908383298992669373155105528810965718109057307649567532993139476299594851447576358497222567959473792178655031010520245207268032366100245621921342012996308166542810350864639599864312132572727317193841084821837202666097142902517483762498529863479582760673896589730961402499250680361547915359071284217461719985968770516080746966705032351295979333304968238863452196898972098630320220927374505651337022583106498047861131333431149308702530055907236899496805377998889335356110914777635681978308115455352523418656546479391723544797635148746546877217800805069219295827102875987166867768184574883050802243644495098630251465058563055504399037778928393751030063001502840776860885106956688927846447540681904474430982441305120086501654475224250138565047125621399794054337815787140512877062277980609578273752682137908661909927878375017078662540454974941799390968400438211198715884042789922873219705927454370141154718645620030558773225777693156499008535265742066888194886501095970755509308203078887105097080792106765515081020578137732706430345273304039072867087121877226051825279585682962811528982187339088370805027352222912346761524977865316702694714849218545015310735285536059767848511201718803989422274061949666021994574580827360051399485366506154770138524185017618556299050845897518250596123059263701373507398722590540769749017950191748182883433558084454159498489766724422280406730081532187113990897008114564660238633066775280288875262550900175729544381761926868266387654657030509054589747126499237847791910981462177400065620071958507676223409076057859184632266242212228609312888686173529355413643395763633392168347627621388373145550722744360954271337155664233270383436664341684171364916685528208215077356250029168538044545128394879072464063875908688498344669388094553793885544538590478781844757066912064625337318473257438370687592262225019906214130115889239590853427734523757496052658690784613040406200734491052256641346524654588932131210713029525247239321630467674902509797242693648119672556437188369844056585930530178543898576080204544913308636656983179594754758543708447999408443348984895656467558291683870214301040958398522343588272907623818847413555653333454015611936865402725337685605238819934679961044171677571838476483320624191442382877963660934301647778836381962722278913572408505655472884773377304296856699807750887878127173093333516277294582599811505286494863599639130823825561089207250152624305867837184537617843456588817764554436598392055149175163582229306722384809386958918338066000812882917000684523519746597623877796718304356316934767376537667093053771067630070633784915588159746259806684213696178469929830908166902964382517506500251393061324919746936025987425447163484998586260122691921513876850018362445874512833334721861078671349029333035108317226679821626006989568528401004690045424449287363099340194793624171442750443923283770145507139093174565276934621354677425139539847849723234872484167538559236114712503124763395329122916113608664145812613408983232308115074514902549006988442041310616807870059252857885997809259617485851290568298342215722222174551253246596633641517783311720324578756900690031717444915652122994689602805465034513655393830781837077261935905653537414081445376554485550121368728021682702918625589986172135020461609157415365528103154385928358312699002985110763797746597141226513840237854807294319613830324026274208976242508792222658765535515580505873685298678897702296006590146543457564096514098635297450553811186630346581837708882926317638118242708148525861698125232086478494204905438789057015282048470680489558676656072767989077704163719970268686263142940126853312933489474367960849616351689098732987047889534226392252613479938387510505522763842544870094151578369568198791341996655083595185792855846841438393785369121744874783602275892861978836762209297894069127079301630010125957000776818898270134833525035696709804004233835709183193289894597366267552763057186349846988492049238774944307777664717745474562155978361427031030088150256207092402477313621382960216836924854571824240578075451344576257925838973015202229559938464638435752339641785152098678770554037958002964213492848065427445897522475057734604345241679446994459326319072625881228649962748341345177617146398929389252468940781867931629842541343500569116277571340473018427207469082196424003419652491974397497831988456673957547997669447759357584863869744210789180993799528556654414798361540875765219159137305450280356244266676101931770662254552463431064920743944886736894292772241199523517427512896455032770814879336824705611287880009673782061604077056298994892444196251712139171209800503115329673128706475214533458620374685025852840794752287547427057873744932112971295718918685768774560601127735750416070161287811868156530047130348999581292100310539340010600355578434688094208722823236719114061626115230189189354488211813919932643222739020021926583675482922010300654768786654617948749457401519229476226168048071534874544722551561812859200991630641190054063159930502339037436979102643097548618136990079262288594136360915132576513300922240800244336138474069105122143071783557018281000457659227051260784246835072158451389119431431897885012711324522525138490562375441167572814699956462402078818563073808431653560349204352613292702893762865575512875635445978942587306375481161713107413893402388153777587855605719748579332111431637036629638522741993197343539207315402184061527385930935043257740785679828760205452030993099941266883320145007533693744589193953871647584710142362891473859443225272468982836208538583623867412320587060773646016617089204928708596539529101957720724341559293718786608632221447408865897113032696682037573232564228908748724676183119769378837805081042940971406249714232389804838644058831578867012583488715939845599544888864619838746064090794071165641064523376280601161096580464313403527711546323692182064880132127639601581925088772454659560833025779122980567360286538461758317685985149030410964530505921626380646909357303528678230712745477859640662468984133809786288160321085145711319639082640943057390370187051637007927053778691075686821472457232329957231912129824333997264359142931649705907610872154135670433309432940461303711923605222316247753628536450236591634793291657366125254929150713147093702092615922604549895930390416017229818517491048807105076852294396692826637777006276221384034805868748783196560138837347184116476309090181428155878476115342526207320566580437515480139265780888393965553798418283688707548209816016155253319450765709118038408423457829032345183591339133887216176637533951128746753529751037975807561445969945731948675469389862532519911493547028153745772989064905034518972453170917213404114242310016609613557108682987769903237658487319143568813426805322371642927465792357119927900400265112773147916896064706625926872924206260551524087948802496401195211435229154617119748524279109866918779255156592923597839762082405709836073738772623904584493961650612023970277460743011826345109052064838903463839188414137243015921267437747432152904293106050683108652039991297894411737631917442659217634013411886305887038249095463301358206899667840814553562999609448175068981004979650003381521605331520104042162399220941881996290919696773870439081058547025096965667711627701186193559298946846519663673960147750468130806880653047560555844262463545568002623378364220379606158955708230163052711451555439650049713954905977849517638231050680227445328354265208768005147395493962032490962069137786238631925814191622397475196201531057568047737235300464119822647792621090205659832695813123079025874039667600116399988432269761145381260291202994111131823083169322655524664779406680050069473649717553953752038930759806101508055764269769027819832215296941222816818627961997789924585375852953348711869736695933169210352697925984912211201066011310319665249447743211829879319921205924339801514089825118332963454978640950196872194233594289107392749941353251036164685861480383883528492846818947593040414921479386718542459915538677336963396518883940597529444152936600495453748949149786176648707380184170991704099214171207883054270106687692325927206774460234833081067756071911745573657758383772978276652356726316731505240195866828009183255778000034407113765275283342667852275302744045982031703112582275104608135029863240266877881811232712216887222195637241882380782799317344388324414776505502222087212556764701805552665019129867692157148155592034245255985424772932327833346794391133796768509196687718327828088330692029861903060624661185650521541611322876425482840066872838975859287225201274910538697473741973772359261120988599255507978738498791115826978519041327520772189014005389770181551121436236770567012876246474194912268399879409693460363409082879983221694950339978363263485821073064661306677223345712047649373587964781979756356433237062479196727488885897992698900202529109604128080939264280987713110701111524206319575503175031340462052728829111315541522374285436458759002432386796159943633893797183963417532153316294959108504430583378336973604698058443688117487115411209314380845930779334738645832384733800904164844787835797332930901485645964217236047374311132824338212324113451839354997801498895362638765249425045483512367026362259422074102858215317346480279566716852756449468429131813944874619746668022345937857193786808434331268065939989601952487908256407960400232699650625670821860321776879180535954708791375719571551086540698611261139803293269104017917895146108502372171432948845730298318128798823825144446166199168327154200288845230448689549752070657797318318188707871103990465577539722602113544406821693616580711098823157102915226611101153520482777894272288113878929849755474901506617820094277705229053903875152538322375965502626070731655609106772682808280827060398095957273733758655912864005592004654297427519368669086655838676437550302295758282867935496504833107026101113257775492957885765771286879126285911315926622551154512299885831026477362960902113716260113806188438361577480651194591949935178551855486703874555245975341629274091369292207932652160774664621520368890966969403346218161918860728258213501225980123759605482855209116408145237858129514207438918287081322455634588737583004181593044609917402316570262334305247576329194526844210393727522515578143027605975855360402764964535597586104238978790370953486890726443759835254605356111097241499089836100930777497636425016909893358566888873093975910509998716098828906199665559129500497953294978521252784725526335862115563405559608307556645812535752200822236299256310572919784767240190787424505735057612307800981111517112395932954381788189494069465836306831289008497280535252904607780721604123585995219393259948975142317738913097379985421791257153851791622738584138919227849670949160876782883157485866697440548547611028046824509437179567618294334839130578710114391400779718195615076900169771399808393624894007131601809310032799119815814115077915324951863445958085652832595853274835311711126613543034695776795121374141755806177389505378219773687263775345901220677999722626611857352647872773195757790212643255110822983973957717579262420747062711606622534861920681099551425300556367387816791964368754735692727549187996588643895603339203220796206084223612498349022548906418816664423109855964908240660423783997589707183873953743722635604293411355315666587308780353886708287907318460044209195488689769612958564730404595351500287989334646486949896885152973439937847763388398746586985374299843338322290832816174856729456464471751393268726540977590284142871464189633574520897548295549660201864534521992434658743525545492379167601026322166614972763112726050829256134935154634925320823643987087766372710689694867729592048241845589364780957593119729738671936533210818381598554022861361005201684472862834256849606544669071328715987882963163533629803440765361469127245312277293135621000056270518113454477446290295990509858024482327482335612530239301078339226428236869541131309838791582960292089606155122650505703969065402140472409436979579783545617653266890483664971780513980404891236470267211172734675387139200750987289360052949503524112617640746720410764769547388018504297865682538687565860454169524267930842827042525330980553568748455120201512219537960362763960290244319747432353169203774122953178337726974645371226229827730773435295263509473077941349530176290759172013442357838540490706996098482779980813919429874141614953839595276014886501628621274142713912497054127194009088889257638368788563585317387755828278972808326157919209236894789691301589065160680926395328681076859453133490998256975302200980396635554260693603629927017857471727165380072246392212228376635173672934466632143488030910691536369240867070467483789951573060247226538257656741077531104871298896607671448367409899661142601532871328288812342996422912299135506653931682457089593559049862667826855552824103367873965898783481090815024404600964206059015067634389542210570082224682596489065676970078062615544659465802797226527505675417961061612677544805072209948973328874171747105278473550541811751571580009348831210682902044359557101478158613164514489501544194012699450806298514235084433018617991901504621861267780259035368215367523213948862186276468303657814172801347573848707529550477065539745782291607409088741133764694026179389744320896466007091392925444033197008649706967073205359640696157915151395477791635119274368210739782843733522896126738151706577506369583393584971410932574636374626000403695297037430600014301637919165654810170917670457828633719005613134485619427662918369706897128575886310268520624452546260415719818890209313684678039829171436833299039066692537790887801459235337046411628224474568037356688888330000269263476646556135674916183780217294462168683891469578330595496912702601990986931286781021026089041291735159871426647800331074365643156598169965049598681014331702181450621563104057201727597417111128099129879844493006539332543340494242053231109172888244895056001211310814561556517586300020866957177639728591016345995955147631375359005250589013593943111657737654851756082453573134637578150458954323862181962938395876615908483829265173391405627968281222885495910448231391057570733347461118267490541452280173918059091179743899791951843517565327247492580478707343804985418705987601348237597301625589300297398098150518904096492271680221067496205501154328876949365403894743565500356539672842388144600238542017494221065054870009896384299152358978726010335823149586780046077293672007122663933149215918912095631772887802382061577615955366379010426648813687743880103396541937410186242919959996980644838778305021841775336157400453645955038432935777276591250343435912251339132131693158846217460260030609272542912406277222032645166725313481417865157797022552144744031548775424141430866430369043496532129326807503619531341891089618534425990622577292259572118536673079847075896985268089031776810383231935036418388281631205890931064252016379510893444539690246490442965455690832274902061475612078876522083214933800776175647154681348042342348928172485746794798388104598053183674259298636762516641631630329502250929029211460873197154375919301449701625779190876040256686220589269109484655968213222405889982452395677571379855465562788603739568486171936948321767313170237740078425728115736439681068452462334894210352676224946265267874418065846321867919553683764149847500618926084602837475258361734946391669789547260922237159538920774243113630345962503040316914486238781890609974386115053042541529321568610729383906652998875903024949093466633642492011709052175751110051613376417071009390780755971111305355673807296568540726910891225683866140096482814430829677421425079840823300445588486920787547699112359142888544710244209370518224568519642216847124530054753884282770803532180248094788138320549685333493726299914970551468235891128608225219260559062099337622906996822081144145094834063863809991553731451651155950063421262030410308075169708657782074474047585167516573129333469428429696599909192302911082034809703244187547889222434474396875423247890073583820122677371516075672387809312576317462143389801797635996082782787535874765289474506383884978363926707624676321691080576222069567103730689647197483237892880995956309388551628369268305268816286615449571132062933561475178574766698426189476697880620402673795871144363235275934774003566179214801332014062051094003626273980022658613889902460706967968043465549893051324167987028183063552780767246536702504873585548335955248357229322055350982470502578142035247553870678780767846869299911124171643554947426312077711860460789947715089217098045661110851357198539601783470614433782551361651165026362193590867148230870177056817280517274012693382403059806324109496948964422396996659783474882037783203456463509926130385896092921715471543280132707233285580077111929590008975412772443188977097109187298324913528871928852514306426785322044231545401919245271235274222203190557223927535084122867986776095764302690034741650526087197873065620448404889148070620670618532115600829781804987588590149219996239462831390939390668314091132170493253578633424275897858486015413713530589861382290928082976632942199057165747556847448388826084174713287558819898421740927093246609041231330303686146381617583106659790294847373944719973000168175366780406581900149511077149946829943799916049098849411085727739228168329083569777550027396246807901278058120245623438640014258037654259036288643720073823615925067156686883717070418389183894180842540533555708438678637248936930329548176338388286941936916880176760773920041683860741940598460133504631679448110579942307104956159531585507802511798398905218372523528415240151305074959752764502222841917905223643924131048506652231119278050236157742451932039366452388089712116290482663889368758671890709182678681963560098090915270880383097773050610059715335307249069418662938099096097948793078279117295721733436335934479094521245436515974318015319446068476570404791118666544525030468643112038070148404841314835422220799137334880768325883863429267894583627233503211402858233343931035469508401752988694298519902535731377726771173439060537643578961377117631868773533872976682468545816552155428528004855495955393197936992107572080430576422997582329664340437053779658657729324109075074869011384561034144983509620436134878143705279331849632552390775021280289972992104134179414972911785688123266169140809358572033676950181930547265555983908007438410549719883901029560266318700559907954914533727164143146887393928555258785278728567922137693076162387740514253436364436126278986069790062623454558439070894925497130427019283888146756711350880869939050699311112103864180808123964162896295753609146876346118454950830485927182929623064959061902634274231205235970548137678633087654223127008496929787738029628083773669788822600509428971556213303624612286010933351069942972413532695474128807670936043687666760883534414019800150607717457639107048705452016138726611133843095001004950367076344955167667409216689674909215353201689219735958059981330780726944257326542615992609157732648044392006414843440743574166534196873150716155468979707154729270619856314403633117159848949905526721524355949135666350981924844091064101568282167363453855833389288487793860250960733974463010808859504318326680187851374789727799750467404330520828274356332383785631587805272892079019032120705342098944634608424275715210718787163514776318968161989641320608689155946403704450445763954947475714879314259294999787773763712900285142850617682272056668640388147096245986668310141438615743169784306987560347678175424732463665589083830787452928920546657154102484093401745669808743455905162474604353962739145856117723604859828241304589472650845223204850068906108253101632845179037805663934843414738600662526809559036520883082932213502118048369832759777425363133583118513633829157596854187957758925643621435489097102414192871088673244359448655591559417091473026395823649973000163550530973700549249437466008076799960487837688388017786193470546066459079022302387435091581829295731444434042717022705838452068804926994968985088707922196732318142986345859209396323861325803655934248202656027771498679859724208672031187182664608628668391759150985419859289542800192355521413411892992167865137006315543140599450026176845537597952149052521869166192559946722204400118015849446195366767124184997100297804657089110285286334495184296079290167584356111561014808175221634323721052261903057018479265817792626921360043167694620840783837395010368999242764777909443562575257799430590203408837766062867157144392733325231158554754161959756976276498936161111002865592723078381553826028297597133119090173905476144291954266211965925063378138092793900115113300208671338762379054237699437348137879003503685098020097670508543254204249769982325106657972500392097798852299720493792171612953437046993891363975744190161689344030025859643895947137291782835297444771787499811898876382063307687396740227425405592483618230381756646395639695532515122776792496912534483969523315555887085314294425263453221784913095125934922559071725458701730724426497732066821632502381777401173504161201927787244116676948680796614761015266839761315561168581725618012243882175880680806426249148410630480603597267678250925821795289484002888034472313787646998193435155568479167417129129361002652178968201533778210448821366300866315555689046426871369611142786873500579127370404785708958935096175245623100026905152763990370771374367736116313163950137183384603711500847570378493597681585588782300252274121809101281827135238110990663675021930254620524777556798478698822041202844395948540460526196160288086445332500141856810630999002954364624945768887390700085152775172863671495583037208766079945163099428395473857174842690219148639093481132937990753384782432337003086560268211053025000806659984542537798444807610961420680606999831578811873415651725559728260918228972414015668237632573388016931179810190321869368245319312811899780433140213768174759617460568931909928731258870907345477836403391337905563933420001216551294041492412940393866318588576660049746150919189205135222346664092422263495506589362888589202722048929226205635759743226373256636156055685355516109083678990284260111401796846855660273049602394387514967940547599558310883043879944506515921810951238436380827116726280870022488396663808317121520600419434579552844076908947096221696666399108454753232259045085983695628602747714331589255915068177014038347360674104916132894882701876729458124866575216305255281271093384973512078178846120221151967393317350485411975079888821656752596500018632338918768278259148398054372423615264920640183868688677481514255281405312818672817892752045433766381671292207617224711052542538785641753343639337111870983514451191046112514084863714488115720881603898834018020225603402855286937902147981672547369443045015078232293188829009115894517262559893969990554276332367918535391008839846265215856768597001231153082018481813896611390508214403692392153143253565000053020913249541758918794043233344131389104282943210701446254651423719873070071146562449549456436688341621643960744091427467441720708193706038353053630843135128819256878032505488148644644265068959382416310541438412094169083575350066254937968943364916480617832156611626434681012583561345683237529186301554252091821984069472559341774173035628278026952788985970940074347797717221334625187555612235391487274872762648808775104618025080219202020952839179835027959980231750407204379267197311162921785681339525856894508089033907462298427732508830480791902161758640671913854866629002699182652435762321708668737939856634873352978210610538693844404091717147976598018630525689057371836768424130325806084294053061181959499432494021731045410346281119105780601293183983620602377009573787694241247875234112647941321560134857591382542013902378168068296290810472831718584274360791230256488964382879369158088644164557243029230335880563586651801687083338385313400636499123239911207170956863945624556426423716118238116165047932887106724701700144654926891248768035555151434888508165730762778052605157809403308558968179925318336090787040802253680479921593163315618126378835686152928237364464586258508044413849454194551517290873812715120859087201845204725764517303929743535843874524878945819939985347828822459942375154018443029391821564642062786417213586085074444141411853023675499453034531921816310945742254956156939981468445266683011135804772540647582097463580614997956460787453922842371274936203030350187662537164087588451526722285524624595712195793724361365343657047168531922049793712484819151005447948887560404960564168596843989890661062401320955058464800575661885147212208779448487453851002747473956496771330590576220875453056167101499735775802357044334812966888043767967441325819656726294779541214156842794785162643286327634592396178169511488747138555921516757582675881049000137338697886832261833321672853317040749583912759793448899924866131937550580814777815716635114455656327227231696423274605287411200152075842707834939522529092521556044419654265764465285022757513662711446627710942874652627216976662506867629762184187523350708320763510082239502530383815214585633941942817737236770575257090936470540376105179694202955415494309206435473122664666576881217174146039026946259423564721468236922435014428999942741827223461431388898440808738092874798522662216490214747651138677937171125390126912159765264881074769564750911385091549963969300492130525978708543954243664605769510559760944069460704181332388721784548807074700122069407248335290528590594707975086692609464935471947624883859759353259169444208002251779513511372003552981133898904189802965194866105994596906935697264207367574958937301842600266967373323205094018011095606332418105936198532832591854204942838839794686793535233542465024393645452930918955647585406868614825156644697712463404675859331298402118316677837662159180068680292805585737215770975908970723992379617093154955779044490278180551619136192608823533053895352121625122685078949144452176070576644582693101710938133667039619924030239255809262325257796713068225223287480959338202027512247863407664972261028021645168083951063201541833031768393370627859795162365135022919442798829948984410156260474438332995030715492477526304673702170978494088673541979022067238990317268248464572371524421467981835642753555570853166127620556070467014092037305388046243252227424702098295974262664543723345138272450454263995435999607672001284727645110063823163039853775417994912537289426340237476396582882979484653096743655548044653673598774629597240748335128379349322376182400506773871370890065016896195118937281089248861671508767986243222276215249659006291154896726008333983084958172590198319796279128668039647471012513350246597953379413946005704266810153322456169986207813198618347798908697629390671830645406959130967029240627638973533046273361241853010620330563465099551524598075491376830839416047898840515396200408540452954826793924177914814017445836845198703789335687572090707053468171599147814980325373163677923035342827039328563214230885454631626702889802462766347939272896726428149286478884418614767715571002972324087020712840545746484833935157690826154647049144105694251289718402040802519334501589103701364882254454679683876526508349235009196077217073858417564051061656717381604692113334692699697263550127269654287537166522611709705464028776280789087983084526419469202036476984060866121647130865194337970417365510709206112624916396799452074477519760738222406638835877190002836123906589214857377022047227056291313920516652325541558210180286162122059452312281189309533929206156489424635664623899835174678134676552254476571462615744063228934163355633547445301623888008379238237771036223680898144806773461644849909299874914390781830832683569420409789060641588199682791893498022559965494379478896592627819408613223789272282031731739360924765137862827654740916521403456158032993009426997237781179249699208300067073691792854781612872505586917795547070220594854128490633864218518781600174309236163705284107548255969774577730183443375535868218491144972253043160829554304539253627101519290898459188461583053219328396612040991750664500014132421994332628481674768484103433350821091903294118854588503355438325915939673499456530114259876724883914547240019027774165662360855070253021538503673490168922282574566359758174772241720534943043581622064181219742390120450298448546077297463567870236524601679019505742254036714581272784824889160757321587701038866506743229118667872923600744540631392530606676545743036743049534820039612485271087403927355410095149467301379944973288480009733323274742366911706145012819979120308747435850380269099975018756466100768360306631814596382233866964511029743239751883402977209879107309461880535375372876352811734359964866988628718845033174984640671657302288169991821400367851597245400301309267697335807985649611378762322045948324065699452032407326909217132462037394096161835980632013715470387801472944880316606057611371075028313926533337264237566972947881310820734957443158303868958270571311267163042545655197513142068908610746126244046579079482402253898172442633413275654886002277737126516504399719600151442634765848210555671736908880169555292852179046476492116215606533298517146877564330793784986462192240281750628675578620222048296118995977668311856328791659250504563353787069403781016221519602037348314041089500066712779893966276276335224307195053587618156209856158309572817831293231149628692172493046773409162966842239710062788624434584552048856276066178455699835982650242057768273341804846896664987116674898351624245998360341599327797513963725358554611381710328151692241404496153779973043482656245176605424766947995714140836289461936347946226283798370682188761905137670963699980421317834176226750272205620225720756597180232000066064657236944209409933776485079615164377162139882837576883141709165919725428476884345338057463714435377830956360457336853336476021186959435267136084264533077984408230001798791044084560357252085215706992066523650686154537048698102675103629121692757772374664770144013908623803443335042836817016912188937511269264256393966064741224690696524343132606504859367612632431399459061046817506854424523824938060605206398818335637924268666699558222060409543850889325599886874554431393385877600917984145701983874258931937279233846133627033416821361127880223646971863642723287591421843996735566825815044631169906052718673776685390983860985835478808485273621275253869173256863457460604709309794436279147012043175251579757637912762792420038922195936101865752479634212068956186134985308371186431561857663736208833199867924244744594898072433427234148028139175223111652651775547850546554180144434822782182225711530672490551694389618463329600574636680294268903540733794136284273557124593338312181390954161729000053637789068848071520295734634116583297268068476379280365686236403101761757135051107452785871681195766349778781847275835537800692419252651366018005299579444050497362473938492052225160926656455898905102325205452984205469164756979677320539447293762823829360095680881833193547112366155528171428149885067795355611986276141442612987437124762108625217292024338986276484350426044263224371356493878037301025506616574927668243031824758403498395830106493007029941110972730174658097256429425668283302155797112477345635830261198096421372583196090883086316949235652206877315527834418604711675774984848789847959743092492713252626320125200911206953091671967632093156076855171359253021412503049911985162901296102777279646696704819727360114938145145624485836596202387583296389307899175683778695835995138693042791402378783345936051572586828948116179062445386964065441620739201934448985430214775116598981115074502652018161242736149635462849824306633812579467617767048377537118903159674647792030282244313713888402215677717844239359236507540615773651812642638054170813366396126456947720582114043335412619261701985482350265695494872958203664136355598196335480537955917572241288558966799026342491788367925269528994900561400489541558862395795031490130046390931216847041826299490048521709082537286921157677532312035735228807449053577384498884130856434846054652526079071778609143254434608434259822468783138073915576674860871062559781613852591589523836107612224526735348806062514148405993315791201813150208253672119940806084866258033875061759841797709619615227501308518812812787707747025938312523305201223367139155563797651088194881270232778382234853087369880486100990092997032130428224985843553610179650469334919240312177754513792414555132708070653436564563500337504018488007907041758373499441449838091625458731397015516697447276280962258461639981400222368357203493454453535926005402429295999286609976400291139489271565836093134095759243708161774869484846073676566208566337912237701019926530054041345713397141800799842568080568026470761633345338077411738051120289222275279864354625239202445707565283145297065469300121743206502113120413592589729556521649135424453067169068289120853057263681091381252453327051501127235751021378834956256304267043313167865631655932437906361811177906002218753860205932846245337002773841101814183422659463145781122374987629646822848001853887660486774386868667517894532558259753223938580047904847606984102933693848537423482456695254871956031282999132435385427737657272226282014880948018506202031582617222145332085827585923059229757336520086801603027396172702078074246933797774370342644278530713614275033999240576375739734919320679717382265741980406513415207379176926794368180951680016964769191634211384679470027912393620904376387257497737674915415205232627246759674093890679733569025651370224425188973036545934820574862685679056491458806363062377970621741748968785477434313908115985124331438580866193971790821760388093226970360289347863024942079721080209304095983657823047699280654005806268277518458205867901339757884256813282652223596719113652090853147222787738382506492712111415479874611856605439468464683333514104842436988216328828171208459325266181099271515045934334566953627904477679869712898030355309039957593063944713208856768526240686113861179599292639422843005338191297448908292055129021567568683690182436796613086790477142179565398203306800757167228641439339041180399731852871856821748198016986072822460833307353045590578960720901464493613644177584686942165503114894250912280096390438846607639747575348735920773276336853576467071108968485521240926623531358919108849305257700525023363298973575577830662324915840873147107695305948546074634001075151014324876751192610186898519039850736423069386575800399945800325217157399521685304274582574230353639575794677339963863842758837687304757380765667523404464919147629351904603199250724335790323987469379511772945900296820037118681922691606082370753934631951718018652882061172123828923600000035991264279210798725165382214096367800832700509248978526033497336267108462443676711071818749393885510011028979494737805993923621022262826350389901385685427032988198146818485970822667142833454766796305301640491358749959492424754902272143710244035784610186493879813726463847937393545530793131003405348735553239201195738941229376949644518841111281297335355433213040636305982545345315791254927846827667620326768938876093533446832420397442659540106308075046173239316845117169417585475018662470724495431745020125423893095368354343487306954195919913397987726118888054180247753951268103258156175665330210653359511337651818049373540686086854235909267395874294938993099133693227401155938222029229670976069170784119695860643970785885451736406284122213305049929860292372853297552364866603721199483956880167562133021462620067715918155500763526780375442206169239920911324326879676514764570635172054404222506695101073528743091384549484233372266921957652936569277161661322299329330756218351173589177041128227272268473278989994927245169374037681656305952043506057063786630308088869051942787622473665151371114938212113671920395671899588910533626150626167923650460160576886904919440447955772802440642504432909506728770681175559734010197065718560557325786677258311656532713734643840464336988844871476322084293651844610851167240125481797430019515568018439130633105143367099970904877369579185692231255477862126815039721226872902975229134774710429827114541251023067213138576122994502182127728434527827921632512776287611142534901338787208000332366791516134009482442407060882775356174840913005730309141768242316784479850761610394025275621507481620287848909899758597028531933872166027379987153671391761257385192181078235115606129324693337951630875458512050702679082617874719860976212137768902925197981679139265076200159828341379426266826671183595994569301683404688377181995391141948210822679930652969105019893143803455838336356374710146359014403548806340499196863647627937386842853099287418071769346982482452102729748140784940242126067119911395358516306928795830757909972385116484487483463738398450389100708853276828869676699248397553922475663130388120787833420604950611141923906741281947773926197482636542276641294260558185700550097123532989486355031496625214282296734364483970517790640810139326265349445826276027621095230848194784243016914545097467590302095937814973717445945640491966842972762921933660534012767903139903101564868783974360204902570674602724233530675544588271577673660373553813773310329124375357087083793087493387700679133772748217691388913484316153726937451437213772070685620634828192991843571780069152185895567727090494219284637967598109969828103023147253490888003147804756320923188632541945132989638745915196796662250726401890888403823990616213445037931954495864711755264701279222593535014154807964991146442508129680686627278038652924948682260137892690145973485745879774614589690384443731253873872477824991397211327485020684270821693962247368279863408843043949789090527027113165023139364677050362632304079704034263749546905124859200100822232625820781431825674146550802184538437752133572107196950650940269141378703931619983228330171354191695420189147473797022060133197537083981031169224692575149369900650900802323472190910504625742678944022946616980460975704278462276949572235179766685290533029149850474113926083740556780917889951466156628184251247083008944849101565603369325041700916607845078129470454142130683427901923630298792900021021885111076092203882158351947057306918226235384632229077286405164213349404857659151243289654556133754048544272505313918142327816829873025079264016875117148268486148098408616033226829086758210321005100991564693800837907614392483175402987244412420061247243511042319423871499233286915006276640876499190212182023168501271897342017621600563028107401518104990871070486492683190886495141997797335437095843660100025284932628855019347178114903640340994596411199679295046985450395963837611129316486735486173085046458737666403788756529787911842395171204957017267281731605109758644923806736704007035631479830522461984217493131590273334210922643055565683080800548685598326758121508428965471778138115728853981101484229819806439202651779817814290387146230391656385766677199719201712021192304874765811125769458148816778941045100413326963857925146228716981512343265242417472886817881430922406384554375554264489508769861020247305595805065068848058842795314876099124603201874038878898854334342427992661975635134710821178299225926337224864914705563164151735919218102283214784387413479987040019248880227263256087434148262980536233941448987720192219758282831278758385269252726330725992432505585455374213997212157198551655883246286852102986978362735457809470180766037738962129419952340685844528304415604637893992337053701660570035142796205522982223003612738234362412112698751147760751357132575965330585032040619803960123848707744388150847486514613850959528126019704928891429026699882288591777209372677893839532590373746197953421142678786858388472572919440183842037706171613539911595777588225134948638880506640911231204217253921043438532184890330875161372177350345787711939759925498523916714763605326180483899389221349873261351534224009665749000453694472663606730978003590308062160075722824620966575055390034671900766142572856379645978665481821301382753442378508352346980906504924922081922600207269535414089572085177301533866142595968867784395388969563050216925991064535948685599154640263926520418920896973650105113892594747856936754793638168519926534638608116672637173805955304063388933770379748741267758708479195428813629949736072502601706112670802362035999432456105828002129401830322482294993875032053619071465370966197462944573807670310691359289148149478301023302127067355986674422262498787796323869398023112227214399422686584256390391693748807403228315121728349712943367989808038100895316432428428925969867219225530329087400516443622364737422697664185950085848183568078901931250907641140535925389094244817053941178318818279040206715492414269934190038601084564552101106823540771908341798477983263866085160618100327769728181229173404092575082806066881337841772512440876414122125683689426795655695737997570436095569435675730776675031467130977705966850846075623574730007857958834017858909885240851683391145539688959621324267106353209659320542584861508709030486324789195281183343295136372131712892211724244464700768208443099839095865198444954157277528688758886424689350345058791431275422314120800697321951500904300880072667616183979782024577195191528137666597841315049480683947006348919415251137307530704778172460631030477001329775919428639727566039740463084233061034854039954650893387003964443809805378805951623750266768202555054165812435750902748322299026568628662443281748235484296151814316398754799257420803724941487110324738133376586673150178990054478079478847906974627532425287620719155828461438445334206336922904802708753579400255920488078573646173304213467855628918008765542846527533329389335419005077003157748759220480243331585872821179800261006725924992822097253337406956676093737039750157895568658303238902008652291082501801721774269220074424891478485167468558947836581291316030825678860984277550811309786429211710162183439452452636817692121377796634322333850421095072285046596015038900592908408917596672851383763059298129022316039102161657857321694304090421647712609242460666556151489110815379842403411084804606496139075357266456858688941802530420314929734150426287349230516863520993991397530243563974524372675095194511391829159915802994161411815855464830221246201106371685675018396274536633595596101572327762049992909549092302739059053975960094585616425530909897328256130502955122693585929976644961313283255069786702795802548012853519035234564965537215991726806538957881566087106718049761971796215248572057965918728763301150426617254444108791849893901642994539910228561207446065809948423116395525072686588678576137129842798662483974560587299556959858512453640039292625262293532135735851826652017674776145248712274522334762855972302832858820362386566266627115407073610572520980460451863375740571547776680153041953906664831943535709835382152652426977358975053115492826248861904477741686567408312981717304428761745382889949366743536393010274947827598571360323990514747838897217223844471128836546767509357858528984675759326908220205661704747106149510949143798651199760973577374522845465149807771257917319461256758443883762826976772940735375472739991202555761855381626418921386303301134929233010945851554357514208612710384551727236146438168704605860666822366298540449486537696386454757977958934997352308415115048160129730494471204424831577210042216657492274700236558482369106592068419037397371976304038002261274954293496183814161584591389953807770386130903278122601550394869814115306610558017409808479938382441242750012119802721556829437789256911233982787858710947010900244330944589216244139749152199191972013326222165681569389327746519903232373598510800901023123971392009249993450578435153927450802782485906726288592360295585283092732215526653012917952722248794507577253347453896371470864784584376178010587835146808058881938847522693863640957913013080610356419758245642459142361510923315748950549462048310086127924774420310952559256455631751843254617298139254078313600712888456254094997365030109819051749823640087049708725600341742584955889588186963791027313381824537924730770974173407059753294297812680465048575361836039890051309390258422674820493174583275378890937845070922441270845499435734233092639756015849475677740419727389563723547463104611133565464310241698309851710089128418520228719643134941023981553787739301124910327610141644829194102341344537097378001078738790908549322817221532813077639221965868823218772936994007363865706557160010040072410758473251165219091029730136810812023181032037143744121606112983446910810461739558125606782333975931850213961281400685961506159120131764423853594944661506868124240030305483277710499597958618598847862858486533621530894602022452415953812815042850307539911877155887990706706542739307605765452820007232367982887864700472824190997104341477264707618696259914016050424778461636704012960276381018403679172253032833725905189035136997564512931140625001408634748416811683716723516357444168276952205744233924303530250387012274115412256782250762928083277977828708862609838124548656391156306259099363598335290168909963868150357714806549696625559630283560030468133222886344959539063774268699587740136488989011786869736221091347592592932146545748240691660311769659240094565569674778532839206043622173054070739719911171934196796495133224605513744521202363776874281604046636021059379331582560054110030069964046834166748515680975511120369456577334491635344842781468254320346949228920254030839859186028071497333095762995237980534749555863071814097330338679644011189885140679812806607511432939211854294169086137161614147157084050264462463394157107906633329168379075013574488025938661794680154445079642584441760259558305461478177922884602648168579025928611386491702101500711084829480502563775870308185656344800182341332348871186392610603337989429981760414085066635824920099883577377557695819246915949175548678445241744464817265710698467954798564712849417620391417185539164966020111816750347437768762297211780564776623796417171121207165481876084540707162737027545182182445431807445940405214556763713326934322493875392228579420097210661332988726659169905502390284786623447885341306799848935347162270074553924025780876463675866502085219767007386478407435314051582828305132791885653719921220308299365846883541742732150952493459275566600373289831219531807840940996063962853517071519212945741824659936717939781412900272524040812340215759628460232986343168986211093252420305848301793525607162225859308554323666299576718107608949951684839152371313676143708924106710510894675980466340652247500041495963937444154800584997450669783444362609062938133039326675676854392242363756639282367263503312055106869474402228317916534604445178534661188166454054632852110433848459373593059868641725802489491536323098420481508828357915112787037443149791763822794815787472483614955609227167610216020852225850212674565214893553442372203643115906565102931676938963533256499092649483625745852191996293123362189759316539386799048074494190726093209553992800528403472042991095387151394154926945762118203146019296774466437642213899002648834767225133111087400442035226676946450664096100596486338278603918694306625479192156039224541767901086801171438006040636599706251209484662813136350123834412561667836756515067776109301499882851467317847772425314895932419942025090483496855465426625601782986663622059224906530703636787388970852895824826996459871459483712453168107109361274129105923696805629338065678223549186578226861514502970475106343255393880167467890318685674196855636270046838829343535406450899228927165746771597860855786786758156857290927818087485364065424798137299081980762112229926037669946286018813471321548911647348234043587337670321729579241273675340238473438104064470645027659610906644090320806502715419650217054173467386703674510213654461877401502957584991305192288439391832935666011349489368444899568251052355089941815648930612701780602906085472610811172853024240833221403953689537203045355621915067085504526923875128138858578263176581529949447164458259066456217461049169310495213707733553924474842156632984242981986914464344656014737674277538517477724773286468240734732643830808487832796292019463447707317725596979262502267482258485856375925119885440886731711872143406407054740743311844940783891068302708023257479643105700332413022124749933202494872680611536091017355389118677856517580522623240662294851258520868283318104427062553832252903542930097168163152270785278197680538875332911449155898702718892130797913587615522715618019581152580535208689065991039432677363485560138040838889950249214371581290113873238454078053894302537800967098041446865000054127111701548477310756357933259008087869451098339032872924602729770274419464488743060668660132822985617246428609209745250082729152541364670764578215782262606991333387373972469504588003036068763870096276542820921615675989226780192283728557584544948036668973901932805467722426889106612488147944999026219538175160756799669642938575872949543751149651106919240595093526177232596142210373037679219934350578832010183867222470323281031016530274194323209185181851752829034852684503572724516648629647595097720358147274357604798114399440354208727266328601875324421548927951574731576743303872909032200776697342389887326910981156974812513726229051351405378712214340843757994361777686366469005003448046301578139338456774408979405212579939399817219630755151787653744157205324888063665747179350736391299509804209913197865944942744165559352570702006362364135765837151409425687703957691995663353224606678336974563649336190098645717446375319336890339081792933744099782042186090368971229909837127829657440212916919207615948443989919123496986335107271937955849286571533085856833528631259514722714284943499129118564264498568551942005539658984458288794664290236699993596038565262133634803366455900218269556338028900603836355797409868264554525743465418381259476001112776671516578128532104324273833877080836881814723265935793105422577042235611837205316526270750825617666011992086722257316290197831013127677724153561525188811135527303257490983653787550324995915445941983836016439470749522113257088755893522731499398392147165393916289187834711754033729107042360931542914646207107914957486181901637080499689353231089903235837048938880488921933487730018252780655469117295288519787591455505340001530356654492758545456419516055396484898389420102360742835085551545244137989511330223619825837524651742427048786751846419582923153486395678629598576888601541952693488211495226070441908978063139991682250951176207435233477578695705092160716193714100544489942764426817192489276996316694963742945612823184570717645034455336808648995909961983500758162701294203004161957417154544051876032865852105553718615516947629448681495017811694128429003854444236363688587287758771362083437346748299739568346412402239985482692725861773925518084234845521069790909237920049371220605810141063747079888638808873907938810578891971510929248496093334611702096852501270260674988801296364623428854105457277455215127407878833463200695302166419313933747023512214891088009549674835943578261703861165876433702730262121162454344830730790620132131907115162691546655477578805290666040374444786926469360017668519694262720400921044058079697684058616746826587322140659671438268994136624136261156334497015846473052000106604807963795320176371190068393189719567978937560877830616733189082141091165936607678940333931387282499455354032539802085626412102277745530645011210350279939672758452379419016935888583626680126773036643648063286879766920121618817389369148355028987233133472773180636510103342287308039680100178945889591432367021758202942273359379232470201693286531354286632383550267190191078536227767316156400947041791080739782417432411452016429807875961678715641554497191078181122414318716473392955930811562998866444455106168288441584197958067154336699156749759732542847132560313540901832956465481052019290760648791637582409215484596021830598147433923603514489981272870732031235263651131222324032667775263932629673703990859586919942441254318784132753627360268210518186238819980438293095834092634195903513875093443128253083385679982780636362145579743019380345447104497488924357680613259304072077764728438984948208441452045496930013176640378016951145152267169875171306968007815182063040697402254430925054762529987763348379151231823031131376335959912831185299687831464127824970551896349060284584970388569841529719865239295514178815948579655428810064138797495088236963928580116752985165493190761396162881657464588934559880539839600414297018939303703882039153881049254218319898704315765887776420680772410132158558819341457418867181058163127299888342943900783449372249390116809268257553304720560250044212997599164210537206805436728212470997674471067388394660040944738886888189292090471412659550301977163810831931009710590983830955076109272461893467641450549826034929010704233565340375756931108005281161789864241677732455425235770392052297017587014837835264605513573990058882858745911217436534461732452745190066291617476852600013651939984797414912582703972613955637816184282603377297151095689874278537583410493714982333485460842840753197642979479733493446019450445846690434301009349168206771644841270164227167543799446342743480359710010762178143995803649145443662389410561064906159275099717793412218080440394593239088457703941773532763696618064406747452287346531266198301610174212158111173380224958623148673483095232072772897810143158535338131406140465259385243154712327336304445391321827426293437680564006938370554110275278122631733701247728720402205345019471944994152232484091420016021172696045025978021813214617360586433804148629042636239014991042034387035769305320948655588529839233170353400111150242957627490308772163095921508822929777179181564100314385992450492293248080514220176639515191361527838912901576827895615040386974950632322430206414902041154954663080711996105086108488655300368023653499405679518888412812660131623287036137981095558136862643057842838391764359218764422633372065535557102350159518166017256668000160302182860732749542859810327603611297332955649308145572471331110428227686147942630001134494573675912381278953197277813733049296325082592406740168151605250113996053513735344151740516415207862224422891178294246737804448486528988532757461104752495587142693900465471153412576813784016533273025353991311474214597392076902592035204777253893381551920343990450667464321875821736871522642575124596847420407209807624241300588879859470826538278009891457317931132513503593232202827140433758621538833580960009227831125192033397239749192500294993842612844800689480003983580003799297170331449796475723471440353196515566019633199128733448510454290436645143296906757088676951440158548748928186984909770950875145642951157446258459092093137656138742641423846983966666480815536882330221445072977341100100112009326845778382905393864677632175753412353204524785290625543453333888838216545675028237320563366524037159864818723865678014209479887633621668625960216711428677858540879343831129865195519109641766155360315184119251534156544541305826239024165407263263098170583216951678610935420123071415541614112783440507805218744347574815892916844123310090088717760565288159880603016689279746885374366480546481284090531797510249764107656137178866541147407350379586550604040324598760440582782899576519153309793310781132016438350879666474095643749347084420377179964375138673965153058176642896456457071156255540114030660964597061960325164193866797882004373913802327272966573200439962707745110770550891247019593757282303601819993226458989009745113078215591286405975042950282987747425481684381202267688048999243656334600007879319069698257055532672793187412638276203080628445320518132273000929730344742184637407120741127701336816271364495473653588869237042918966602023227550571913716066616403242779590410497592946739789666565754819603844712471339764115236476497459409572892731142917659873074960937504700703277884373917445386104170375526559177518358633212847674056440636199641547923259115918368932067127767131164835902058457654112023286444514953470168610581518198032152541817280948192735397256388813793439886089814675194505480846183912149174880378948929933847031393078934434878155165527566639764495464242157639837661913307960013362602586653134046203149223354529430796661338296035893965503188325295460176144134903329770222533293750567159346386686313504478265487994385436284702115856336092692990749543758679664270963585850799360612155726398614602897146958501937708805035168357314682025698055195793337206846551327990754905646169653177659931159774749237433040144156211212551555522002187924419338341013455432317919037790053412565476117029242704277787036064481719267585559970046047393117049318018189447516417668135312507472932923502998879114950510840783367333739238762447208517840261762736974639297491532296816932528824240687162263349880839498986860554460671393311124127031854318408720945951352350207348232708089026794528250293348718399229000144532792930989616648783443653966562951207693023851830245915453417949839217754918895943895447197652906711325377326047570835642538426603886166105973813581322630294169857108921481832955178667787272266509782472883310253255412378724105544694795227819984338906331900628835364360260522004491917020964960992113295685778339444605613494472019775064432329149662661298263260739023513784934964764937218873724756411109041207594625199804048305497677959446247561001386807230187203432833898064506083811363651204446498725881649914702942747137110894989800565381342121472783540831587778133208215846486174314706831654969598735310023711670586561603692026333470503521420073850337471533258899534353051224240138291300406989074733092440837584262879422907429380962843110982085261012817510611280335748303593176556999463338736067569735571188584705672956226536638837094497653599620421060487608446235198481272838171142668788901539083626496855661381914588289208785695849284679324480594993241515490629709556080718578441158024549077201136305267613076927184359623107424537817387905847594668400351045343138422366207791288737505314249870498351320890627324594911754646300237409275803374693877516345470423817239338855895717020288938965603942048606331776671345348196012662913201679933478479909148414210468896273557624762496783985187741049954424466330052145803013842094824764439071292973374878480429535824060109217609783428275385369310017421524638879972643517794151278704989198055804517517641758717046257380513654210924475593309453953716005451670547374607713726667766170122129630861536336205599125949905182018132070505065860125862861618181444092720864629055058627720411353118919706505965959065073073084139788589289508689310575412321896720001164122591614882329580448596216083690697169447507864573632724902292292597508911527115837584464035410054021655113682703904810074482129227342267474111213016512707642422849572031852747296144298020183192141379774080164386731038957477531454808670430339156036239805770760227137742799441834804463794352807239387319604441066959656341554137708106620034957327860114502657018624978581085064019963093934602219438793400683469042259352525599003279656919406391660738057696655219516863798378101775393290377901899222374462435831718679775769745841024331372136922126161552407693364356252761101959408900529469681928637581444859048882150672002841407254687376855433337673197564252977301643732731225635157060595363378262960300356228333630330191504176097569299993059069551109293745054603764322889210529318680716658250721442380279492997019849232788317209029558977236504797241308213624258223809370211578771844712658337535250701489855485386789569471119243035412911675865598208483118939583710785574623021936992766746012951657163639820407048411057862363951980474381814785421459087898499702026366646736673291891266445860027133532002331379252323183572269466875874230997848323021526408216468021126993413703320833871156948156573191486952763552179683495620034246114189791863613393997019980682223012614057992816297508261646312663480070243211865788375548730438572948928678124000915362500108935931387936523031182668432019244166727703037360326980907982523615659390862955090267264821240758274112987590763466458090485353096907063013636985726408737366522890766497899402180185822057075065107119291975346845013348883138661589142798260671693306361466557488557648771412626470990554098358029891072979794632500512289021167642782073551734025163247567390996913826691931146726047528601671153831719899032955100593545100706689778797776667636233098994847900729581918186253879409644027519514463122146679575770500369033586250915122423065716793862818017726806836597805977508553723554070819367349393882177005061441277574320686063189479624902161019347075351409491323830558108218366311740953055987886162501297533804629995576505161280293992811173866377759765388416328881331930323589809480006756427830047513953719241113774682084954170848605179194581825396194053663961121685650821640177862477527401357205164528972619621228977926342766806516374283537085086004518360865024417690084037323219246616589154336720584289434191700760835700432663849784119337935209409607647214831771749449807251498749149210481794284204548040222029238738788621808441604433652111028173764741512997061876582212949320575019073467786731266379894354973137324846787029625371984100488120954590806370915319397852536875486157950001264262387360213461896649985244214938270863175647756768678928156677791709237289170075488946120751675474170216820241207052326727888012518326130152297213513720053256795884964559500883434193744632036272409746753401951615263925749093620007487326475985772774781686480277221944904112914085114773873042322154720393832508581301510252564432816817890367596621575260509277278333423589157723804400395549910962193729892752486411150009843077913712160498131187103068864326905650983404303306575701232269250671235562029350053198290707916448430057338378143083154890203626180741221902741614947921389197138869934466111821117486774521193013355344719001235173438708439587548164950033699085506980742305604612427730416214985988469007151756493631038207721564153208552082643880580278742775004538949530703818565147597938078439177572919740135273841253005077405980216846981220304485693998331831317939353282415038709525497519964041912936019135950312829200899613252806207777463640129717810271365210743649498821055663450551601992493097919943298210593518844650261984794296390017557386561083604564039798747351582856306780409237522043887676128871589648184901255967845203544150587526201333469330631271230943071848787394356828831902449470125614858765479256266705766688597095583862553442195453206245557884091116077495427288382834576394731430989484097230949215889857183597524574144137083658019920368095224990398546443662316351618937218554774677928658010027668590956315828891452016515064949858295624702521871301482432279505505644084927064881807284697684734774683940875004873264795859215249834750454297316042823985034872241474813971727905543399358597415902779080804049574090342203140474443896887085159198401404489669493033197668044998780332768490876862742932993175483601168169287388092608962078664131653225628367596261374083719306214903353077411979075372553312147716511351798891435572135736950242656045060857148638000421375718962360474264964354981471864407320602433469633835701188261207846822496913873412839547280519736962762418135833588861816205276901972393497778420049841151496120396522772556937271697825202188795809370127388852403372379886557256349276184150621069635415127243079663108029865991616956625003824350003461816310812896470646244073882230272826768798315530711196547527641034860892678791858839282969934732564201559591621193942419866712402949909218534341320968010360422651315592513790284262742429506866309115713393099470841958817410422152845701152583322988632729366243604553966946096272654489468981068383336885282008511259953278038968631753001485671100229696088232090716950538581271022759220919843813533084697657137787399299084041872477507907225788098887853743531435751089228520338581577912986987940443744803499777974719483219493791790439894119792650608005119795760621484041702495722443337436179017004402819123712602394727726987401995339530696115226036698584853981611186020449502090926975549844337803392100779548581789170783718439530179516942909751530804568020650684793553383351919331262461747654883116471432098284159481623752430267317346309971642475581563284221613116883629452467665260894483260156794842816355531826239502128057844660603773182766952746657964803787649137076519373707064585420991030750988445011731208474261053095381616171873049420438830516714828377553395490341542063989471075541600930037870331078952392956601233324636668970109692212898390912212857920506046292433713352029418282075412339424384759604470000427931540047542199044731885538278734505283886845512904734177827124807941865059039344800268361844270191176560198867681267965926830002392277958547711409953415204315813251736807932140396347871691396525186793597911339980406645926560453985856031422361098759811561790214044440558327167907772522858357973593855791819022737989416796096939448849283692515847526876808387539763783189714314833096094096095938159211101957121962033767633643338102655971038163625882409294833563390437754110853943833468538054866545941421429795773895380501836323175255110725823714965444722555814059374397559427252933141173580212028074572718633467573742505798362814495318480584469508507866296315899804485062051069121210028905744965618891783086271069228632085550524142741493274908743898113946224917903283114128552145496938473759519520833370900894026849654517599159788708785145877376204109868896520519699688818352736246699836066642712760062254431138876125060780283771551936165872473724143761850521679541231252406931290329541204921562292665404863993644496778211864234761967766672789817255863881427522778398084478933537690442872237507726116264264688118429000545600233267164548665272810498053107321311819032723471334540751685168104734824726289661065466994094075483567959645675265923957112510776046344965954990858426927346639722455223018096038899037766607724882318694402346031908140143267348531898744757883930046906830185085076185930341373734451781275280285908433939623529474601101930120770622282596794609136590327052234355160477745819442040418593899196172721999368922098359594933657524834833889878814465404737589633493789697795150329274468285336475364085555022299043047621207331797188669210145299069944474163983035000078798752346380157095746792553600279664650837075907146967831888163773220227858279259939249359415300686228475763137311231541286830967003267682079906763616358292459432320056941840904261607609385826042816078060450739716435085662108548616556473767131665516166005103903453754248747333499544264534024708441254698797188997430984357998621216417530867487289411607356895971008917221384814599671835397710389488647724236497756116627836655286752025112275620992254225735608371976126579568383742302133251544438747758291021153480491804062234648763200491533005394983275208614512996911277418337298007851945509038985456409286029315579209057889975229767595776931685437296171006393676043342482831087592825651780663042063115613391938922951006373583811291378731503038965189438826748180273542143836048469630728621273235850524361976769788225872311806061732086401539789510306715878130547933903141165796215566946797174610198463046117186387672184677641782987142921109533649595618238892792766699887831639625451787032948584041923899994328115196670872422731666866420672851406709640530817813583935161105989235063048138798814009541855949167767346181952702066078879872986589925305568501831514289629064662331183304610254679710877378710427615821731053848355612503538186306038324349241073906809480423570534704732037714912483692324568367319523920528931792994322469879898646349165352937221920606976819228630339062967461098946056492172189323744491616190874523064235739288477092585777061197593251329097076030961106364547874733451154164688874524213750344871105292160868179444531180434790269131829779882610196622122986660453323090994572068441231448510807053631224645376254602337771921960087902873491032692580337089626889694384361654222584349132144687023743698984724116215249601867636487523246036971241099734742664083058064072664871529406379130328174497990195322509632804106098205037582185342658557762747693867758755216257760639703104375030894102790521510040054247824420763265772089826115064228325405221260487340948337480039820705196221334374777048152309496586240992055505041347118906044112351625872863290104441262696404476662935316959024550351891656255901343828543450354511471443350872077186721400760518967989860208547486936733603316704109672925705025674370584720633199319194420933743132356357404811803164423550433219605514386450805446024649479126569793072108007479717204940746368191850597490539501670440016817463917505113650216309483368485382063577752385612670332599664670433425145813930821986148792019219202809525479322826263647384541468600936544874439664899818818904249766892654498001218183005573377068903380324709826594908670855274382905754683378486072278308893573116209676166703671134054025834003774644272192866320379789212664229164768405007312477385545137224480848613785660402285189105264994783641358260732443490426931432296256954371253982253417685664901607979452532514308855620538041535336539069337336804865683953809625135427059124607760781888512300976693608222743694091860608885554315783276706025164599172508550150665195448350083222457283650122988770986696253092054954913608321049166049214637662281097176188573713303478694714660195780265020218768468730182966150145949550611161773871548768064338517683106804151144769100246073865147068121031812922756936023825225049745636778976648545632508278904791153221349724415892707430929375121404819586835978034521760522248802245402208754953052756041210412793816559024150950844855643130843367798926451897739171843848105336820995770467177681721942555135193426718862680366265125868725301927271525973086508384410098733071839208023460108477032648827157644406265435632345471082112888610190617305532051473895903077402779430612405516193110948425734468177623708191035314540011852809774359717249093481990565448635806902294849225814274642930645256113640978259913974444127975265500962091943779126576597065010429597363672195387156251047618721817232252714352939252119700389544968772873147492863465575025524428312768081148442958971294038752732247993859934281681347681353820047195268677831009991700660589863820718981439609789529275038499180701435375056104340615990359954410272259680307624870804051510866147095707429043820272901241621278613509719798287806545802441928120126336676361385131947995794993840801247256774529237774650580450587231512589090265771295558200586709767615458091035089710472674765148018832319674334334239737316145392475607626393824630522651569093428309537790461142084850980035455486257589310031701028394251791755541584011790213974391067707354006172296539795517004129594543004592588349963754059560877184473518313473431086432829328460698227883938092417054668873495438310228177864729597389776547958486331638641341603075628962178341051975796103617236352211871189880278167821278644737741306335310458121089942947492265454042784065044328964961833199960873664033324658865736988068919498012645718378540915051522696573568927767616819193371565651873930616693692389917655040360425013692232200523186449094442045777369243982122294139372557228760321406844587224580887612637086872695049756317768545057275983159728004789763690176429115430821852522255164525147385668623943903773722663298951098968247751195081365359823425449555713159968668285483985571894284438104231635503611064995679463081383648293537258709928198608527994182153608547970642924300298208132373987602689857186869353998114922719819360799195991841762057486225244092361893649541307766522658608689471576425526253538418740847762800584554778586626017567451521478440535574128963707459586687188659997855561565824915739939948841941691523478778556086994242873332477662306042249105808405799276759654372519475576890359765920325254652373830222168103766348690548219368881554337783880106263407029069300008137355258744096575211020041952113586430428879071378870944256097812286395724807108116346955371299350377429358072521847124715959807318690226582521138864240434320923509073471306396693285666582501420038940203446207038601041003377028041730334265651034419343538168152696912045433494244345954709811771957648933830565550440875586909694991143036123991693131914237073081103392003877038967662830622493662299094169088528323438870405193959642771665237650586499841739475902422236911120476460935951834078840164231248264923385788883224311401753123627030058910731951937896711708862713237635901473456875761386949962307918746026530379288949438734896642454038912454231213408757046170327498281807563310811914351471723125965523224724821201386543016601094708554093037493788290837532906715919893350098085558223709099225456768568419082496475629499433812085410230654692961555008713312227805192101529546231416781275964286216404689208792203435122961535317653496002933169083877088735979396582626919846579059041335643088108393369183807198643998460990032013877647097440029843686941324698910372451677825439880490848593961619782165746888570033687612570742099567255948668973123900427796961328448753214078245606461387647297184660091241912800778310182360298506916242256889964587781849337110831369508278108276552332397821441681591475986095999936226730336404755920288619454709182098621629080693663701794514300480067803229308251647506722593953525455887736557561676120306341711798100135868002927017178150075479804233341232712896553517526685709059306464051840696883175497528033385716978682162855255837770514823636379412156523267113368100065050513271481112315599527308997294831761209719970379144568849675242725516096016342431571614301449432815595425234514370359168492680528598182693070797969302585231902122589815520472190111238282508010768664308021080633316767875289420225258692891811843149608502577737734745292290028862297014477300501233226316588089965642496277175215844713826532963252175452048546569894314340341542887833221881985039680563762612667580366952334464816989122439360864081940801776403289173424294112598682183554826439690901802731545241689830150364656905104139043875739204604455734575367612956413104548751697209042030451990628081258173081696823814790171843184921010661794363265184847278670202193332357611426664776122903977445735509948726284140833118792622139416715130168275951812518545811512508683833380457826780329799074436372321042536644986837472757504473122033210128537251995692599357507112173231861925048263711049911725450056170490272818611088702612294096522870667525115102741058461188116670529365100183615677775966602006596707244576921484800592623247723585874859542508168927540336783610531319839755692736038819857049548591881269378845957179001622399932421378261723059532108415777061051917470803674787182239863654101801570261629380433781590844535923243079576510912652349478796927271232343260290430094943797448601592509151172209100436763255814523577919048288266246753880790815878919108295327791864434865996086805419246522610957569907259413462745039086890342560181406254744153011170803774197230744915952994590490208093355029803510988792690774308512127113035760723911598380239042356125285638747826658861633898759158147717745370948316292055527098803340180171756518413763520107862630515418558168975625945958872154292667208158617379613926902957503485989660561565396873832593972738646026869127126614498750596208051673854506825918397506942200106068879816839483201617337744360826884804162905808950195016755219319874469848268395957106240183861087712949010728974867018148750876747000873105630338165060619676554122955841564165481493043999636177955508989343174886004093866722495142786081106399856852813842618775524339256634218203400815424763260379104270400714895202432580732589250282222083651549996092661367946188448276209107120087511132204035198285019415037772823209243710048511168498088313857880101169582575041431655167642588409865060540481239040778736654437543074273956334444670090134598667325167000621040632101122343110223322210341852357143826824586250859409621863928203578726833507018477687292120050446233693568742317568130324672019182724574187164697118360410254501929659209812934900238450706727771057600292137577538310437806794586418322284075783892551263632130732321593714678784664389984961179456530398711179564794310010955241042325424757811821267230592826696645455835530057080362833599638488650687082516685693688920350904437567169473477259113222209513754985755003408198254536611753284985802502327233168833760798240426853852171247259857207499548804374503658295409230781783300143216033694362591969283887913503316640540347442131268218375714551361777632237079972212384645045013532442163759924796617818872414499071124690968936253585228135203991770013324594457143417992589478856966967860857339815176042841594728344298789897296977802334985548845378454159644648266468283657501846643274623930299983796337761126588593803824066317872265381253916114390647389608811005149906459388988141676592688876709140282244063663520488938372795223189298412405377278644965272069306613385435448802716535443329320388819581692341607066002006554135827393968704359592049774920288289143056947109834908916636917878189291900156672108925727575682754229975273587450132033567391632127745404791064079384523628914200175237149166924119519494366721890887862247966005136781796169005827009970000812713622247345050553471219428243503811984173852657806509410518885822906529161778024162414472311252432389867744211654545326153986417955705475658858293693244476623884282560040129070309475251962199346444613086532588111224640836021081068162991862709635108060957734226943672422265777839866649886309120552651502549117193969100237555527593885014819930498168261103538189042389036276828451730896518043541132905253175946155707479290428398374871094321304656745897143051788145375233011856867963621996172566183947424811115166625621713134964513453641223792844806760793117592121543617775377777996663062731965662365997494472976318293258613231172962880530034006543701264677106764135823425909278403473936484243725986963131100064562815351595150759272591193725597886361367112333753782579471751357263464648548052537729051882782393544250026742576957509058912302163357162219068248348720070982724148266712099235850248482386933663905067579896351791774448288794496631965687821988824870453485587915599810469306045779125906117836430357090586132690794693849463536452190143422603032097963258413185559917910879204759117543527172726922806244195947285261819583020820251260475169191368467667604641391265446288942508412988281995171541452095081307600720993728887378627766075176882413351247010630285545315635921413986373608228957720401481481597987963979788719742115108358181961797139441382758598538794585172813468635232769108020120091127132789188550972925752039179659229444969957525656249427825430039577214599485637208956348723078338176805142056114665693374199478326299731600006141421410157715965805773672768781471585815194677738225794852146761419069823965723375084048679349609337769864592916309718682183212382649524599887733338595505916764907097373008694744976093252459793374729742788843083292754538976567396832286524743561463252538244371714624758921579912507974974550344934679429317691621548514825784190371366069075207654605795845225952004395846714463532549995200493131045561188819620973246518176601637219227706895325758249144428834688691309764682971751946987791116359554572592646315091011786640682543376135864570349145602906466498151312783718025621860170863330640551453217291727492319012663190145480152864314728900363375888831951895799719469764233915640107624326984974133085615791435672560234556736149024227819347564165158805445927472768666296428411521708667069419245731745696053618453005434203357798149167954961632946816722476346814085598242729403678829453587979398188924612868692137889922926904870828984288663302451723639592628920636971374849149260146023692285082766400882840918059242136320783771925209767872057408455803464145603542415016537941648238312950898219286475787926503327270266929642038053916000474864135467241493124869483765179935875069867248959880307290016547609315392972573288556005026863230478135442146870045061936888622220829210703393192307970395952465691851887562336020943322481663059947212518200807368529173376792347060100202421712119491280117619757005131880201832040618592276991259723146815556220361710784548825648239057251761410548401781701174561112887192991949607667678380377804282675008148747747578927834624020812174321271087830970831669791352251083326076488630540634360109011835572559832192855891659340613433182910761244139496840793087036681132025105276157648741205984242851841585031103331132085631767635108248923154637206415290408955935468541849291742398718923860413480125475727772983883677648487060437782302213420091938086080733594447547192566659840715008724642649335534799738488500626423492578049562973299711305498598891020872507520056042577804418397501540023820561894334364203495408298583809417475826853918482658789105118581787999413007155316512281777214662055277077023183619936105308499502734203371541609535663185599132107124166465891091657516615391267249922936649505332351721015918279628982340462542831846642143531865531653971603590683924460133312060211378677830503564965728510289197960109393072512828837826300919723181127806173448459945281267281770330935500256097350336038747028210378127238919607241362423246729704850982668821276489602329944006363641311645922039184861792049365444331116249144219064682275267382862158609923458604716740610216010341533667565167515947665536082398060302345162775311172990106352591142785645424329997011234024733618449496722777203307398208503905559861900667525456698497726527853017153194889715658199781044808916365471605091623991414193350789558068291269456622063940770844758417878270913549049864409463625369232628619115262252330901075878386317750320166078392246854573023021271084748717642570361744410642895117768324497708057066818969824617477904643888038324871039558823981271445071807499674557045173862610666149652156889816490520037244005414871286836810623144554865364138243089043215097154465060454321593268397357441214755992596640218467512236530160381311776527507716229311781601614985008222060580689041560249226046456696516575384562083272052176053531792425064708539994160691262422413133316654982161402024545692750734106197185474422891470663453466107557080033518747478792337959079488284218647856242414206829733851515493716921935725854836074193956814997236457049832013062073907043249127180628423763998560248491547333819581435627670676512435925147126349278497774568724872401032242806469087028135424349981938219038446752135115624236097354187694410962733732669922974332775323165366938241465173350515956301128046329010807251529919179675140739066708597860585295886566667687649568542901120179051695204085027048310951378014944051240004175025859940608755073515702124323206108992104730522311794527559563378373233472708461497148152462275350279388906397982685706510829626363288747955752851520643355724645031393326701983686376281913226057094378575871152169854313452934224277234434855987023088236485800255153485367118849051512882170538995665251718725452407778962210823248755819472990888981747090131343074313083477358994516411563172814386270682465838900922385244360549612478252607642550793669536521171685989622119684980902664177816576109025940720437780613780458604543796359116389163770572258655307512070365386953291734782425208088639859416708128461259571139293812517002138400962049332292914270997936277501019738234474446512768466209905605957269561450252066039182580313896486411307183444167852156469835835009993111418837482838979321468953881096762909187144089556592244117659619650257692436258874391126273005319916712092256347790553037091761992178290738717975204720284084938352737085912454931862515995550190262024743822753989751600545803987184785694339898965757849524282646413597243270254645296168273993334917572535517143151526316479584612221034496674823987468259544313663870242731353412903744000946664178720237830288063328099302836402078706139299555105914149513515343551911720705598736124955351413852716413104971754781172475119753238860687053211991941108416078495766576115123656564879372661762066000898744088073700571986812304037454377976138506622032976484233619883367892986414999739554561109129397879523882529658167760924272086873068469604994961818184864207025314494699134674236331358334513868403247604521743076786680586760673359465015764072440628975620836198030542888939246086496177126148292194664730662831749114208556045630478348275790724298543132601034281704901534556500860363143499299402016635300888007188700665573283310958301964636941878573497038952027686978495510622594629563499056487758283123042908216593488318481540113980242911695031812903807648998012536565725862050428108852680809810084718212245998037273785302182079219404590295788323840329797296455363886039344256637779093107754816284246981245717551805205650340245941504722912085957406865242789951593453070888862409999812839266453928213896985547523134295277305615199695404780469800112161026171641900772823362114855069862777052273286172984117335638117888012879770313166624086918922547953458550014092552694438869504606214815584162618112649910936293477678347556843488622887224533813460332660466660970996772981020122806956523364351071072219220139079660471250584969780161537033942546109121400192284394473894877322003799722529750482903669427956875891268115946351195454385174032945310307086354585182187668462947379510620182657342368998258049325661002128631561683077355772369083444101895075261327292662533263145187035910382959821055566470348741119866994030678904015007285676230091451599627379572311943704412790946857313031964056808934455241342900230531697624582905563738388183225558568343861308005312949437397973493678918117751257686422965174902009252137827639467477227415698078132737613050499107898661120865673760076821510310152298687685316168841623383509509643227883916280499420988439350824052219416827785095212387014191160949014915918514478675996826698882697549541617544424342148470253596257452284271612345456754637258727307874100726339974883305326152426792040702152441225506690998054631226420765147717550788589362866694515327321993427150507011499757889812892168273008929617921261166000226951295768512101029504624479424419568725835189881492678327084069074839084333305309503630358199852816759960114485373761082307142516636203663089845381452090625321404515593038933094083798404863006536124522345516484011157258193686857091134029865071916635173230959141658955472502811360141352802166036724483769894964723669580778287904690809513944831535462127799672204819624863046203853920098000476210229072334250766608126873839227110975582577669315181079499012235952596392783197571123600867604992213126707096433046056866577593203832788095880732058624233841738276099520420975622681756729525959790270181852563958263517739558235600297251293868242927912363569379605552941911658629876029970308442173878415052585507428340214007151843397195000994233592984774109910028386305911164207275497182263381786245028492644578800684024220010368046196515156282209535275350361427671826986050894224088408841783749266012020008898259194137230323362656000808378627037720467234237516477755871458956736614053761171170080078928468607546674495175149936110468132631311435758611370203061179796943492443120787504304035578618743547380585132883368712658822034667810868083183551263741803596867567141551314577869772131745483596259060361763041509761813927997739486684399021299384343382617211456658556917465254903787649240150154101589246613804957057129876836331234753975872986348093249543166910485461036999815646058227972286762857584183844658746022675899099707867963927452558912308561807307146058945852780968730823148346485993706391992537929973648663019409360367981709294185387928148497725652065186272984010619217391562004949794917831798357906934612195225919589184176127069262847286808380670559818281804051032606790131707002253767187943173371696389975598080575567070214314451818932747598210817375693407178740223481134337713967760238693764002405643366930621761685616758795788797036824930174641170997583311799371798789055644332846992558077345941706160453799885827966306536113466118876950389431914540556811135123061312486016418116545185168436732245470234428199841867993050842843855023317255013802202862921073785957967984178414443964006547978779854202486178856466127596397356002059793212552395571892917028785357436312135503230921970526852823224591436450275601135679863080624630015634095972081437569534353016372729744533408753645575453332641978981778626993464917100481299562450802186069115663032666874097895575168406889495723809433370927798318897473161072909471516013097432938453062629299153613768005716785429015433645889658241190028384656320367334261291714075337033254244721969715653063829248794584554120508764696871241137267427259335453381937127716923576231432513354105291495299290347134145420568562517802202691468419840631918376462882253099626342727437015089733639615771227678524962586462822613369096929957947959946335196808253617344213007373097191409349294317367282780446410892936245329839102019684330270290400121792360691126346346406295146178701547736443788570331487549776810123740856981749118479394093400367633282989155570313193823053503315368840902335327763425356700225364827189483260341469852836595940240958496069159692127759773589706786301559131351630429440259716825869369777809772356460133846736367088180946462896142512512965239855894378517083239270191967751004297096419572827325151072346606835571138515412546641969001723590596744848596272115342992665158792103011734149873663396496159149830681839096753198063378248975717850219390195335972904723444926152701539575525315566351199490539827209657810117361726728268384429244952490136416971919373686840926060282948063195827845738698598321232139722026500162383600808200914357128531223480477820409547277174914282382175217206577017033466890965846901482947445741290615338235072678076045209965299913567706482771742530851429324055970794276926350003729553803634873019903703243643119570841051409220397563423457393100812326827283137342044472454446773727931097749480309635870975399575184519864160542735151842442490723234084548763490628405130960716526333077530036287218061375572662813604315828365122838155655569458689959145949325452155744747887653660416183888919860324529705646345377825691582768670553872698186624125600144155278587504422674513939360973997283297224380420356600986196918416958456326096583682051911127126998571029354372988586312015508477805477539919205011496962103203286342974855852586964855833099013599810174408581890597529967531823420267184781286197712462322693603389075636493361950340584178217155572250442567291151804380609289011140528582183262972761748655097189872952934101022566540913054673437941735810646915903308965091068168514118624236268433540436547936422627451065165963142699602758146644992914307042454434354369162304096275505294095373911121898613582267078311694792915999240500680276713332910516410073173137822402975582288868683893195960445831391221525792170236081234096470286105409623456231683588996607298367901869623294388705613110280451643254985734267759944715321290530591742234113181625273793326644432897907951206337680371208019191974100651041928381394917772137524404855389610739656879802183901794045302055882628151846944760285824636603871681326367558951765132760898111862624630112033855079562938747871329923298095682252390358143093905627572675388645845492971583340825315207245331013389096956850234208652178378200562241069639415922603237086409341332098833518733201901775497438226240506408686102457863554925879803254179562357143375493330161258952471478134041450690537387616612243263993056386752659288297112675641376588023791701826933250990970946637343845008104170802506064876828884616711854311655059428692435567624738590021250951454311674131414677982744166760077654132914946601051939736647609706992361001086747455425960102967481708754050968745578410659378295026940276338659675711474356859625279914663132824861303821247927465463478329640241347195403965409874497693501711885883957399328048222979783660346578964503325787950996518441977066454999240337281803846694799983760831193132432086526065029134011175118103220386023272730456876426671707135418342157094669515764053175717115520731277643397123212338155234457575992453084295390070495812645027164917062272322368437342017173775009555481276342158347904633070844057244196632166481654215754761570543871994814800603784129807560719379048548335477232510349509228109283191185962671458782707390340654719658592135055166804067950856507241707518206656289132014770480387538523240828176805656590202770662757861594184152022496638674250284404676282276670357806876998853009156081219823327590913855540656914419341908111917851772595271286172735069803884492581644597705272367332615947909659767839756359604304422350898044044338620385497808774317710101839679284758918082278517158972767489607746620854636730514237878561714240997699604761337119211535945941045031476486293491592770682748699262813509398801372350167256472754266559138674376099555075814910517610362080015255585920088437636555837151965778022016002503393264453294656848174839391380514388565527019272220895593735018172264587788309135563900753280408456627509231462513887428380442375460424168740539458993502168724785867507926847864297495375581890704273835445060125007428732806297135292622058065221743650533734412898638236753610342120363813809760736344804171450725063929945743929136550136959759109892867551354093017685680893515357048744646690404345945231315842015136940225286472517228911419491003233162722892221531932091858786816785885483420315373356102894285142632871294089357199704808770652301423469991195515736665838980857457766828890351629305683753393424573389371650491886027003294950896942172495131461797327987146729753398696473357408484573729476685798793960827780115448348774254527707055165841090791158472391919963830990214538349587829893457969685200413716901768885775547367932997052817908909970777770215132100262711140229167377712570717138963415274254219508738591149701142206917489961762885295765984802162853478383262244470347747570776005030491189773612872007934999583322886487782286950143600820004718388167100969942386520295984032094392764835422519132258807263623792294167297507894247646984311875537349105000352223419087826784865967174883079772622880976792083992290943815992523953707688624857050731723739943345559500431127304047004334475834584141856790805503131742946401758420566273480457404396292308615488540065265272351909235168840865769852747133488463698143222896274116760278636021870453458890951916753842716662402134693534449718941347446517998721239698014698531924979743702597516916408636384250855109618972675070199274227185547724158734018218110551624844509952467956398637103107983897874016154586927151616117200947351317835304654385753890302673924060113730632596587882666274551472590213832553921707099518580271261519287887636694290613807605826505728797941998289962234279317385218909856415412536958040831512301193082497181275604462057273211453917804906608803387741113294776279353423571267519839827183473594482917031856507382762034709463688013383367985353668548891925687545567306577301112737950399947246250301350912999431159617293917264720438381182627409738585491911057041112288759835969785573726795993538981136642452453929921802784472934419677128326944608505051247476676550276337652359335297583472335583827342672340843023137016478648317117365464742331268126414501533284169783764950638426474623500351935796172753783941743509369528380157614346922989647594968533848614384780009496145762076909395575364310636000900617747415935055538017669190408810736060088494532656937064759694902282329199652385124440029170542573826776357990996242844019043464047320799965613088188655563399915475001510490502386673319622436753099341920142875204312950295534347751384630287534096496725008642305665866616573499259803460708193756084441965729311127978741914899156785613701250186567293306480901885493847213300280521936508114160353615593243307908525291556171091749107134463823281917580236178715759915703924221218257551935083969118830069487575435228255469836651104708658536263300966319792967693908581152564361437838761227148294654935194980085602774959795113125883107668538042308750062752907063540940763660641676057423947576352989381125072608578182294776577102673382192623272584502105734882404711171284077040112721216692376864392888432616274486763147580008492709316486499876803048841314791375168260345723275265393607157610980559181278196928922635327785649925350231071247605320383000488451431687722334588202357981570477838268898434145162769962220692338622004938216352964503621091484622294283169427349239827659078348912769250677801514896557463237945433640726989806263184475313483518541262755689673786906195126396314281055798906577148802340104750548542147335707118866074510858312273538067655470030231474492374422065182533602342694619186862463328530471483668281071923226035355035335397940214338268585631337461968571860457069409822033706703268454232149722454397520761334814510007720831392015880606279364974420664146175819450200569136704657330417334327151117191756401249737190645999574143683262139233566825473880894050397851452700640699700881841526321294070470518302812402602934912419415173874096054321693871044642413669505146214640090380525577437191962875961897331206033034648911153910579069347599690757222717472005994843685156406870246694624443491480896260240689427366951740112954010460613750201404690147547809695843475647416715448144254517537399357281726113478297501637018789456303033807866574579898467732175228559957520668042815875922662538702112687616757772847579226427391224342330694748460726122475619888761448897532688399953671538729189406762853152531288620970600821244009106349876301385064699577494523380813366799670779425713591668254140084177298215489582054698200223935870819060573352828603907533821004675317305968243900954799373439310494136826587489912679515507566971340776583875451112974534770247159723471361840822957591558325656066148160281356411835555401690539138207032077566849365651387438872006341308636371916490358215071290605039992952023344402449976398569636073474050027358696830507285270417575040515662330352035580107664700808212203784907376316923867086259304822115692081854671265267837530750673833817162325370498220666368997692917083589461106227842372872888526535650263977144715231127211330508795299725000813796115794084007160006218145907487117194421875727479820399093547271386209182071829265814615360585372974575800759804597923422682354036141143303769935980409367476379546417136619818942253785026002759478806028063439504147423310571855008858739630303130620046457448341240215447062083773407598640072684526400975267146086639844893672494832964140471217354453099039601742951875457170352544496277403285406984104382705184093384983867992684720518148354096138558278649080874763878942447763795042905225785294221673456931874580984986551186532511276837115693953152340895607067337085026693931106903579327622640526902970589259774096429757694794987486756910460634444344321155833083745579040603191807572526430114847501791891395487076655979396489542687475795388949380065757153016209687973676076831447480342994243681435356181766857484793047341280077422919908252491446603827277084903186525531271467370086693891444296488769389812001163170144839236953968356167195505571031899351040349059514630640751733203364077452404026409812644456451298203192865769448692562125897186519153384002527714266761826970985245589159724852523176558086250996009218442718021814933350095594480534865435187424312395287296454916371662396647955423310133372232932892067343226463528823095038926678776106648944602039899300596749337985788581183881255202314161126835752724986333901655521127843173662616930851997250982548974689169119377663546699178171577069802753268920568796794647832720688505052273720672987350824005879883622700134716854191843533105836245598975343802279387658117447859688087927728773830513985102542003772219815408619010272918643756265712308764457009487445865705919904904663940510248458373869514054889907882169866218387220108799617577275080721751517673628325796431959172840984130921946769268126105144392439526641233541903909332383621092402457071735376275294160964394961106628075676465362001960100192689449572125533345306279557293280695945181006296956025439630499698731223581825198097673020369319975111409606945298965157198637099018082980063567159667835163041728787650359030518393758636795068985368906770465720590569148222525871426311462920606740491310082217705566260091873602674442573476116294862877160595515739177971624787799106684957211351445910978018849496187407790630911698119941670696033358137548227501659058192035537607019199255280525412807142503373986808308035679807034968939201535211225158611659582199679968405663921267430422483877353363542640717669990752460756717774848480143193655175632178956145027391282075586637906850319411195261620925160454260894896129310029634750505950440677209793072358837109587174930107318270791302948324798682550058719813336700363864746519288711831710587380667777424882014734681160058382208662048427955980379723179106610174337974263392956934119008668699541203880146754200002260989616730665264626398672356455018225126426342943492391219362959946283664923736410017023323070900233198548671004415339295100491424256996915886532396654545158486361030147701107698855904915931407534494493688459359331501523484806162634007068582280720671714638328908005516729671908259867797247077755393503415049603061009443617547064498500431904481208165155188979683302640930327878221913005875973405580989001658597897567734056259010096006524263398986128577994932301245072728669848731241251025499636219506981965901598213154295654197207978364488292605171487204471273050061123825597065170063415239601449041380243197343693242367185460838565834646444853216400225008817609587245214362311344832916869451376429147674258488707355141674275815065499173636552749148026792548505418627663020913926667421687542843654092159219129127926655180326450763235078960783832735691863969014271069725821819924656130151582586978114845665396669760669695256816525183264522474757012973869132359988383966977239446836970398545474218022178362509215943423965608286977875602500265739984531221689572162142853536491448364337406163219073773591258470606778030288637012553281888536303180987061401037277928624744000644592272957294169777407445291450472746951847105983460803313191120783609117913153148322626071099544663625371354142754840697896742758189278010388378107269309346657427697001080745765934359104731398830607935819872681337205313023725444094076967042930073391248865408883282182186798142530397872229809797229366510915933295679498951227787176405891500388792921598365247744003061089806491968392339152032823104275915212209449898326163791771085126041064055844426008217314051572371463190437306512550689624988988393109125208623008917088847882475180984269226038341003118649563073455504129796584164861900086980846068354955755792054298606737646300836873773861572402489532587291361521272348859812841900057141626377978546073074001828483448113795887212586926300540987863196628431943562617424753474211338275500983966006197146943031079698282373410770834700367649074017836577223797006269212096375143765277405017697102396487494636483781988392606968001095483260403866615055575089776907247127110759689093810485095246264503544870738985396119329691095417719060795017270707526645684727217525544399186823435484115188320922763683606530333141532116388560785473429731245935899775640870216548472580061049660506264466951980555601417467224058909615395023450490303589307177770750892164004001423201421112896003493129881900281687877864928306402975495592106810336009133174127390953907710923048611947838491347327570737500462746449126608657755837859150499958762355285280059663327924917125853961226609516443279540367945595291576337794209633713448179628881770956273157341559774026826512779328173339245226424729311502513717462540297128999422242098883619731569034667455056565315001608741323375231901579357752130878363877238175801600298529587361446381086187831514380354771280794710529536350315566299008903939226834146560496956203385441530508323006489706693303328859228490485026771857532187949049676405727255507331230923286107985662930379266404363574877675276470882806643920475675009966895115854546706148635817087555068492076092024085396438762561384953710797598716637458473528391107020124699956579910666597628709670875870040639916118433980604976039180006398474388558613396154910136927729058885811150861690769816851752347482892765465575455438438378452115285805332944248738936191376626357049764800689373863368346634530787654813460988446730398371779347682355813506379023688945851154279191060090348221935526838924556851171065243535732235508509901343433548140365137270403703635162993377068330658719436352977712059785374452667537602820322919545058050864544835750478624983196399722618650666538991867164928875462703502930496862407655064058557260002213459392533264443129965432076250030124230620755066460193567253474846600561546689110254142387528294551989838628953688363751319136382306071216237733953405856705646933512459186476295987495027223277935934337347629287504952386687866399692271768747690715748826347798989784186197578584111973286643753152996610646488831359680170041725669897128711145665800647843985624243171726143945370482947808776834255012582578788406716097645740864359349181927919790334265432564814886684334483518332840784034555424477517947306370181877191186423956398768450160240606600783380840152827928370873161647568759480786331017038938951054387378198515955292996043811465361745418041302374490674737512190062490378553949253521652935009129690606127249269766615431973474829043707586908781465037124236944799318405707381337576131939705257265652845943467109151179587813261672967548996552112583358709413659045164020513851172779429352017010016017319471135478060198942518543447229352007719169859503292916572241860697201390754404648708083392498663451176740275776148038158976042733444292314531272796729663914524289010512509018827922851117017826889036199280751446390361310047543110834801686150042716677214350093282018336087436205382198798729947201986944466165587882583876497929652458771482865140566432087342037656714256853068443629496944474828610516985119837218951218868520607155396132603969716665782761588430941006375978725552611907609989816071751360980956515407065668765059181473387123795056553760310035528354323774546393070887613448281165853222681720205274592296844385082446889005701970453864276753556429341845884712204298511857343845209478067815254555561330633419356773276483520776321279092314698707371315000620850266223503296935953581575875084556518703647820235631558518168108497746601513033292631033973201932845116048946549213126356576880903589526333250232946745974241057838496172510766696389595944088508430257266435318322568181807034270477589022320167500558462982029814740598768340382056509286109431781846170130659562775401695831982480313725331770501464872060278221586395303508888263709793781457159682492536820897298208202706328368520114283006735618672750484747542655950763237159968122996628788394618382599208942749777894560233001247434178807110773737410097532780937859068370886706884714070250584863097315418161148494422729880754652699509360235369680710453987397333177553179947332351204501313552356308768193680863238240335793807649168421278992950515374077685811431608628197174552818891849384579536442460506804597773958052843284619335317341768406364652415802726426328917409765202868083405010450885621015198999063649405962511578024524988617542787494385455134133190346574066519717333728771239329524290697836711137615635904785377992575750505973180288069857451193214715916007154738332907953949509325207166754232945912059089383223815058620506315137596836399606523358126841741916396401787007560663446830121394267711077950825977980454007260739588771148075092179444683454681732522868695563150220762200773397122508159018174180428205490448965803190797582110470619360961039760099292150471725112351147309853019497143346648909853250611871481134365178368213368595654281745926163990327225599712523764233332521358571768679258230539859736255196028026862869698344856919103211385300124802658936239209842008003536452986028534994491337285819682538002857153490939422081313857987581910316741452478864811268482988334320732185664715946795251069382920729235631416524293382338911548177369060183198708954516126459219512916121322908037850392907327991597039744898210514483592508895569825443749960397033348519870197074972101308506227581438707288322186806367472013161412214630967826049805423628099315455483040607718742079818026120580197863227749804693807742136532184340176227440423019638512337566989698845219561171071776898738349505991908965365784713777862505888846077241895218387882757142418535284347660341226706773583835242850396687407734110236057801979276419211525958113872660264652075731000784090768473849670350037379825891041386677627133089886785472758435867224676470439345146235004462765497954524056611505072132558078429833012444490631511607826120106693946576709444154857813607381547536726467333187566006199805234661026165670076584766503026707143053592430010112152395906425241039574765298093676058065548571122377722908005685222859947406726836181831419127837548099969273418855444027011260190598662193523165899690694318354854150187033490628502982570516114753034346216929528668220883346575830743639257682776293774849580067806868717647126865523789604084959546826044890760124496111180082102945204735157824383971443493181940716141440813111374897972080282804119161319087187152798635132451061357386258105331294569126764404274932091917480397987163047546603618074880366546999749286870377839472282581351913787561256375489184940050509048107875942644950360761402134910596882148439858430095738462453436427286657631220994244313545347943540839508870189303391357963272810067880631136108702637673286643473359739426167223499289802624183705859995974060975318469569163536226655629820198905195535708698067634637114939305708555770167477324170821259220372200271477992429039475608824464657122493258722464610754049931188676468611116406526210301100292632910974703393645536288422404623946390813207097183977977670142247729298604032757461189053707377303231170880321960125592989260261451222414953835803221164027501723526636941244625727215996454694659904746467123790753438991257173247215773926845696110146505381243832634298419167759236035718774632745438604460311312438354833342714395492983177499594233077192852330016964559911090855053411212416000073135724642886724229812488608024935980257200779085740512533653439896499673900525549366932403141200565681904488732302654657112310354650066485236343724161923351545207039505827303971875701573005787987440935766145708826008525813723537125958921637499559122265326512593017064412532840368056200957397732090467417813613788296918103615716183601815705120625461763868078735939000115518219254429476149747156127157278181396461678476614846903097987847231384064302198830245400083492294183467069695770758853647347892866243979770555882418504833132993320288451466779567491622590801427064108548344260478171970437806157757358513713064013974860636676170480983368406568352236325029383367650447639757636321274395260876100517644123198417998817475438483682980014040271709461968482289136847901322259520815813335064672125865633370198444309092807088000249710086098575718964720078837778123844429190132713889297866370083854621433961936820362734912009978256078806128094479946663003374112479264470707448222497176535163614789322921904573947908228647735389332415209907231652559323518318993390434365456490898217704489663475278858889437496146534984383020685047017065003892746956089549321328510263163007218159764010285838119137518146995900725905672970631617141575371326770913018814697021121154340655178809133688668560970270583071607647232505870003634647638451803468975239359064791212310613408997437922656901427088841893738518069533592631560325075306698113173014255593720838765750774931507483004766883477366649038315176613676198005599593581614815469489774413571402867499484126280868949712601678118369791533723949036813353469591749019595219102600335489079114724453428634281161642590043630317115965343991890161388160028259618607215450429668345945968472022910581292835822507494244942271270532407406307939875202312760706917063175567674656817681131246332512045868906287582031132418788571717674536313698507428534839156575363266835384765051843834518238410437409484778357260528430854827094823669636544284865813329142301866365830547396457255134093815089924338740957899910430975018334476527907369374025704759490376036450047356795836116691219189642581558269341724533726307852034162285303039237442795539708245694332802631633482861292123353087197199394065158610472554997118888377510712125440855547719011947448378204411337741734387411410692136768626794867920847635627394913975173561278217225915632024480938573494777248914169855229799755541408463256431322401941126076521348279764844628854569460627130673737750338978620371299773972510710490250801162248329922205695561299434943974586643297959227435944665413650301254479494384679905296597326467728563862505046035807074869879215381685759411679124139840431496953631467700918372793944172766022199246610541963270740759723929063345592619378516416724083068978637521267061102155953282639592497947154724214774906238207267911155362834592561339434549271231953094612569302841278857594970890729412674705700853803776352170857984133024115157768373614455839173984537649926537180285195366176686573964682851402173868929497540068048006673750721704705199716701428506465356356148011035706400447574026293333763583452857243948947458085207436881523332391175996574749897087571986214673123697795783317774708013945507216622980947017112651434106884554795052586363352208422194376526957462449135877926138921421765737345624009403040385120609337875615294568176030911350187562604223585573022409777637313318357972524211183489092039066675503567605196058173299129028892552914266592582114186339209425397285878571193007513924537605373093313192339927232223118263658125283463852352424491929748781380480850160680335881947717739765871431170305296733069399475454115571640299036779878708792852513052170283467018366891081653388993645352727458368793515851537547007028739837072934017176771305124760989346605121176826610247277868905568191513527538596416463469408160751608582763016909188018753939800580219655644944742527489682734577627840855567286594288372283437945283589514654483849869754418661616603276187716628403363193148881222732364041180742300393301937041640841622040398238595976437891979696090470464800852743979099484531778283853469663578475301881412173901086829255660155686971766272798925532811673970493888714754848631018290919762847935864477296092949593995806955395102741601719646118606053465761468845488064712908863892006421190490064715189722083646835348258227230595971056283297463123723980637061634244916342751877311238108746673407462605265941055283366125189366841827551272278856604781732393181136009625282433965921601172649143997063332992180929600659215290333673309844589642531451940966301383772160587180942008820753514694321629995693832365489435970127251661249280102703161214596598327918210231930520052589238482286210511900343662028512841900055060233115663234171686502815115817382614665498225937716168999691963311584621556135464072603412370813116236241480928666756088163625143303569622094630063344396170538700887497664917488290215601655080997524350076265150373171983530793172943431538280624153339226335155928464535308293834503218085560522028022172963324757564320564985785476211615240450705610315751834443690637451435423575695108681177121540856758818127649386803529819730724391555260028474661210083105850207808359706892070118590991202359878616209121989019352283330588752350848362380777782000829259779595694223639726179518577972178277891420408508916709452432246402212050579658383325148396079188221415325527943438794707873431356051548976000884205408776170987260424220017185003012996112252505328833481079436764942551107511372404681882133895298482283785192148107427841694983196383875412859756221193889788688097976520272691177698469643220529504629252603717288079555758867805636092966790370648322784462523273388662881744548428013741709347327787198355823325884494112324523726004599975431320012658668418869424443322428130747907503404158858305613199430926624699887420130883693530973375077997266462947750188032435572838141614082775763710252892468422737640642729391885218345154641431961772491358947441382757822319896664998844354996254415577988884128469460075060302182755967207131811983481821473543541792011174750114498728066747283010182198211811933866694761769919435894641590810538424360032043244375847814974197386252377372435641923702862238867337297588967870897071926057502945057416678079662885627387638807960040609362168826612632815362418830493403466643871159592537889271893394154851882261773985311727793409844741736949034228034786048231633726744197292385620353249219938659517936506357374478828484227190055029220528011911423516896923011156475907564811445017118625431354491078102520920795043601876553854607030367565921864183517108438010739526265439315430266702198219647537514038823191064154194045559551680530483535604693290318696879933775163371403080130787110894676000140091268927578047634716889154990634235300545770684565169865890801998749354439046621128893208043196189003316795704079525098524554313600196421399881594643694682267766826858547146577978704391071306612319624819533536770148025866837603142028432417197832835507675795060291728757518382998172816471009471346537144264883689980804959574621337799044141897433865180579506729991925452897060787473165386364909096266999835340063442988029047591217021454437871059523585568792047413488081524922288198906702023537313914427155812393349910969651764157927764286720831169855515261418914035099944765922728503846441668290336788269773038952125112350232840584958910540837741851019952393006148911021471390930479615763626905932008614038002959469316272101743207380803375568436500157026911426035273854055004386070273947078545925153324930412326552572562403542461145105433866972525969185654636817656271476501528773334637174934877711960883025887230446840965983166119911829753391612522152381996250610799726327251784927536075524983243212407437220424145076559065649418904311974484240489953915123050704476639365167137252128046184091185631947444182225702734958524392599948347133817027705773832487322403629083388907807506271820724469054340746327702751821323062339986511594607940662227108909627513917344752448385942982702306025992921579475050324286682873265402335758079613238212775150146709127086807409021115234016559730322473054225043551026159365722041570960928610176642892034322760424817986972353515399871306010123477685711559818641455055438312683139583680415775080442379811438363541350469303781692451057181958655405778771557358154461100283001477516189656246660304196046593043882839784359008037606151653457201259578208149626230882035439839916946447282009051510522789209768774766627972854917344860313850065406544185840479009959083267423015900167429612719587248968249592726886374774773228297372738808576494723779355267590503702948702779644833043178764563377131153010984711263380751893135949905479595764696742804597126769413248649240072233467941384281970279454346524358731606442030965380212600791578833779844133159776283312365417528591302896261197556235486455709970631991768079016377378603933373992350139051402541711877056295860946834472501200578204923438650369020597192734581361275011527284660397285219743549116424537891641177971436932134502957215002001789876400784483986402490209982628051539488696809950155632641986458296233988739533809704586040704145151161234574566812405314394494647603443809232602229819337561900500788865137453675943410376576781089176295051450369307291046465329614110475165837112108445543609893211507017923107305110720048995908953090718238055808055186633525573756433092778455738190269661018098201528221426808749493554693201069342155971752972943597573149473910161843259391224524078076159304254975273433134562948643294210167460105659755792491789087700122550957669958995907163788378332973942630541224372308627300297989203691775574697113849693508452810389262117914759112853493787857785430192300472470324156666086150344111324143932682068454787761513761911160375345744147928170403617132359169841103933507095387049313106059046217662304040959985936516864145727852607673682353792127384124598635219952080264748142053015817385346561402324157339758750620491659661765312270761097387029431398278415383109641952979135653818302684867438752705198429906010427237164475453426396343045166908219440572424582606600044596746676086768329928930285419370295521313752161173096854994971773017254017254918018910318971673079845825582361163739981822191926762875650967109281657288139557397548929737004393723887181885589172003452006414206419838571546693039253739468357218755313905863893712144395375991975318235521394301491245911076387027267637924596603615216345005903023830321993606872461529487917754996388682473723821262340708589143811762466228940153278707231667104466455086696272185754815335451092416176346021308846327077542638815214654493450610420181480286338558809560014820674777342919650227010057904201360867065990901005280858477764918696242290744027879119602570087594409494346980124136287831117220704758219382117665901097727099728758065693797749215606772923139418747439263958682665829996944958738190837470844537626662384361822046328230957519294538514742169401833584084281365758198893691388233036302121834589513437322987803375385816327777904623907372933960624553019235723661300354229949499229424997667640863018501832111368735026087718579589332982093220418238535340515568311618829919589923395344474866765794274089392621001120809565687166827598565158489106060653791525632764142676885143125364990960556184131080002808694838481349433105813873799632913152913702986011451110672924977544362788007780655690946855942871236583302297299604865030409834788297488987041326704736856417150237589551476145558474657173263959813145612874487444297862735641144864617179433996095992900655072541429567786460013431400657327127860202875076232509481736607199854919458324234428813353212810874754329939491890840419678458362682722294924319864973804643667932787205768317598367144643125549091491035287335143091852840520563111592305714729260279836268076406562022958835401299023833830552866506587057180234084778366195321378786296074614010215220967357063354296325532054869483927273372866425122883377347080016307864160949367726929989909510872835061354962969473784120660474895995144211654958753256577262067053065801573187037441284250492109223205574742394110970625074887317452244331385299856620588664060425294938452039570967148606652431555584220644730295952492326538666879729106006432772816254181804389186121674177285940485441259651426086839662797773362936249867721512355514607763726469151272390169932762840329864703284588209476011309490625825686095686642295514873240679424400438308650479194364820421505736330877155720585944399960602490521947785087664415230199260330883382000718083632114472430035988028511540800935264542606115314884453581168070131320393092948241031160660618662816837439938887251706603799985874668664100397344201962016084782468153954321749055622709549937218033429329487282268829293119201496499597086705608860721155823261654416288317858457068042965020209677166309376138630953904942686903493488514635370557305285414131063599148661431236384648031936057657622609490649298144690069374642495713504160083784379943813177830964319821050786268758821250868870848286560378147959985977213449407640645637169593209926441932719974481519480194661531407588704601414149993175412158677360058569964472307429479125153511815622206380075678929627891270467200189671264115671249101415985707904336937875895414485506906927751658599036206452876143513408729041053249733035665426963544793866517672985937647549111120757468863513720953692769821862491785359792854157978428763742946751712115098970011975568532546396504002078738768074718820210319996604877967680885733752511147071669395865235862819783519753956536754074309635696736011227930757881648812330028349999710755086310319406816620122598678699683384676760756275087765369580304339464915814578244973946326224903327550037831632146997997351806186168894754795394212329170453098431789052504551842509127673689025414341801275668042550229419512064335219568174123135833422863903096716132392207189661988735982024120929108979165674876532708653721968275525091393503528849239067592022841325783658916600800060578194468741353814539399090251346237073435561744988627081054861882033141026287974121733241178987035900825988546470823609685118581450247555514930102751110651384057609080290293008755600021178980934796879851078942507567105091170489530426050309032345567483302818105874605841629938244099498150134979131456652135225917924586731741287222003023621965116144904407222904786281246567662479327250348719353425975585734160614853000003708352967020239847397307963613277524737167098649604941432936594445729733849191959282591903724828531326489218181169827027229304128803620431799119439950818898479491782200395349625823581934089894687060685415494417231602585334425735986758091507240069367192534518359360066286131675905804073871766324502958129845077767310673938394138831281957399569847866491235255549652951079783162249077322199367913522838485298881150348665207893994386771239403559860940061504311634359630149730673818981206248373158900367233403913639433252145013884407170784391465691417704974029076416883625674546111656541995191094110182624616092879059318970702266938789889406045216038746039890691168326981135172720364631195758280268334091703408340915155563153790637935036732108238183894124231787094332672185498846826203373172957892952257104652882286105308077617703426582835028413863001754539690288794435662383956334550752941465868120975011094038050515393336070562499943895213420725881018392213208504456344671761199538723874414733143465806847127457925888621826485759264814576017310343618843037646676187238606951399001706411021186385290048464021357864264442092493474114063669262248277109011134117490007275929226250606247774011811275321154094122932218404358924807221841871866382962796825042181213460762177999251892173748748883147988439782732283061208800038010704447938496195908150518820985383716392320375926579112428278160812849280651021444677331992917591736837301481167636491740895978933576773218217864584183257187782104537631083945451515697234113085258998406572641213526858199225180800827038069154885122885723014315405659039809489527807649466342548481587064132159047708270429790708156870895700995674749840578341112925076280873607956480135009944748952180992633421082376324561509617646241584557526967908949726500262733352982508660077086229097355675290066162414196059674714297847320538787765841484418314176048363772422582296962787566099037412638381478017232814897886007096132587153167616944239310556730656906399000784877051943690710331527711324514680209059540822062852971278261293170448546132126135075829828447035558040017919058363472289458556275394093193315743338475844008293589855250185018787676950305348448890541557694449754244709440209455808309939025358057686410658679111312208991978436014275329766003194619627905870926392809496312916712326823605159799755254413214796323141460589189149008974074678563607801279033791676551364267097698755830702736433401293529599900739839373425561184836205416479706868394847172558310666997615490934633340871771150492783043559980323915787609115978197346445049042631387692563436343561023781477903624429476244237208762633583907527137944468001512816800436436186136903020075951749909761053246310928408544046189620928176793776631191800564283951101744125067535530105286909001005787924038717704182587041078643033954457768245507259229410435721801247684005787864380686285519402267183444338199782864616947980641460046331475680830316028214428709447943384204973685389575493588522740844513021167626560995429992019579996073260031548163069644460671593420020410180025523019787079128698104873095570404009697620726386960147518505269212733063172482290734565527979582172679893676355920411511123468301668752100339871034555165168547504833056749463783751840703157926496556463665806712784404024258609298928558495512593493780748470494556719341637279695557468453124081407785360053672930604915546971469480908362440814798105555377720136228833628019039540254124775469413368332323782727644281160216659993682966482260462681477016201850002177827135127382903979802928119189390216843665099611536826217704372823848116679812534625930358042742244065674832346673175513749616293817292374987101803906466706116348950948854901015168261533136893557011956127824324221746299878634333998145286280651865569386081354437297578428109400497887694822840929810607082514634040317194108845141126642049256531865734701367077503484223261405842734172540785441102836620731179076294553904595264694328431344867479401907583728636666755786584886364626049187693484304026190791725009337306370190381092791977180630891623699323787855164803328691584948272803513760900478906208395228525085365374129346051676702907322154372791100591189569359934970256639971736248381063408137624588614982498703602163116908401346965353788850160938006847275617676631364049032812864645621152829447967807275701979841186478126041892533460182262913879728590732682802561868450039861150113275146905873982774426499741328384717028961097096010023109404229684723302321785959134489105613733922013847296297209640182844866810153805073214996042489205036533247575044798754485648177364861054462575501613287384968972967925352664807385976453538923218738245129147360602551851477061632798528778813660520078514517765557949580270690361015339631501524602235303131359004828187032921135360050094296456875886106755414311647453604920665743885444776390450237419948279704899623393457986165664556224015441613955364818237645998707649801005270160046044954296023394859036834729071648780905664231761026107196553447415660997524341997972480928971078817994772252521453074938937692760783850057513882744122414270051305179031507901483343095645390773245789287121850130851992347009779533193894529646678626866583188653150322733813054125169873335135787498451322126368003684205443600154387010182616952328369718772601000999278531381307012570956350879156004996220096714021076805248706331509221718395981446551226336805311171411732321490613281107001211314319405114450491027353156200578900141689163123883166077996559840537749210853540649733454553045063433574360267569601263712933885044296680520765979242483903540674135699455942777020064973635036525945662372881794906669644789199754514408786300393702356391566733717416915865282807760218776022368543296696352136801086779415846360614895157979207631109840268993226880083142350358164296924944861566599096410951856511355136099399513522947266131644141533267566697393797569881440619038771686661353114631888300869971778585428692030120918474668357467694366471559086999755590478333024320614953431584389001431650449535461080786779519914832465114655388930473493045170540885200287752720611895724534303334951256570546737825351663394201019731839926636699909445216372077302995989585272209675630384486570671206280538957285396336744072195818515839745633629650479863721358670499769313473542664499027077673748493160032512456534558123100592091807031198677958007608094775149695317330791496980659881816333722889987036396004115973629352142597469151256318447635443398813708802887521629829300939205379378296316492293108346604240229726245143973022209698096815387118173040292158379483897419215909540748659236489820003508881925741350199365641862071146191747026255628291247639524893422156703286796823608887682576866769254819436108354980234679993857853037108153245539968572887215510320319477788493193839115844523856661485437796377131960338480515222980352663816135218370896577516812518459822293563229928426460839211174230315763596787361953852972227219176413155384347867315156121449521320366548736615816208537629636749541643419430649649047736711228101106915979947855275257794329851145558747455305958058250103015610727249362070532801853435025789869516515808259461176000671281134138129922949700640063217697224857970751303833941312954578348948814668606498772047480760578082116620183293409232950892538308745510968320708553074682246327967955278404164022022349245172175767305436272566347136314112539286531709464746971646175655015732584304149278475882380335664819975091058581070742822680065038752329344069828414679389962329438048296867795981087915128606010594803369134365242627390437961920441765882830280928676121705081662019126464272304615268276517605592709594938833105184244735976593701350843019706309711863423745135765346251261808475456232771960243703298041950889290893509416114305286709270837606808685512535148953924495565680883560904513475252478646309361538888098904748978507731594694025893252752437902485008735394547513774924317158748428779028631036811213271059756910683693241882868276058336159314967280546904821588243157000864567990480164588836578832514836445768697250678333432952080551128211055919770045956152259056902363894126800218972369921014019240165868595224218797915453593734976040207700397623775498820327448521708754226216383536896478995976032516918476753247642395575722859622337151196030021937506624096899478126631392098139110160765685618093906596453095654769905104133257029820137381522154209362796542471189167040101640356088852345201058190865630526298572782738762339678950903340558161482968444339254219777490849111054669665918857102834734303707162887755592867779698552523420162608855818203156101252211807190633619667407776249379077725757476925561071630835695133852314180510700371635119158059780934179589042178710541947766958854675503154331286806112222980166143992346865529351984393791001317889227550317011480830430347352993568110931687411405710926448582863576927062159793286820986938346051483986936275666647284851271193571637945333465605705356231337834198232459494233209095469910902203581375663595010973859839094493169182298175713713021241820360428873678065263422016348866472645597114538434351693801673489739369010569672050378011373471492708800393647052436883865984149880945741201235771856671733817715020360865988962607650102953418459398175663262865035604999801403732557223672203870339855263154834515077572352265053770248119586461898457099879845006265822502487456660517477740220108155521353818595730304832985740937858202531572966254562033224637932707162758300500456873201336922525629394600297457080694037346607922194909407355579909367082570454552919799936409541752940851875842817628654641953049161170850918580266587279389354359593112148319685209771372526346306926691947196827339008890612582938801139954682208813961404359187403739616001432085762880368541196740862926296162151862378850197341011197412862776713948849796925171625501420942922056516149255440391602672771696168576867395652042690411943536064780199336573030800248848418529058993244434857022634682741165283047774944396910901864144366868387636496693393358178265639755087704529749332121674810881855331115177733768801320193105737232868382858437912431578301082609999682330611294125761770587673227796658164031013009266803164419104483373038629583429207545255665359325208292823433611791812823542238497204814333567150096025832047647660534179622036263886449608561118175699774748361915001084667568944987456324045482586697986552343164282960742177727428909684151015847424506871020679213240106901787626831935201246719496267233714126027667274254690950890571081797925955557278595768590748702451351458366232099214396358239121547433696387360037898849191551127891515736933169860287213686592172477065030204293180529028450927001411014157708610682420233746671086283863351738301251204328845223758183440509243575114986733608747121997600275102536770152930543594490732944761620404844614597315719484186502039933290606444874060168134446443380001131630217677439822239820787386049670682179273166201140294669905430572155426243208816373153315636482509010096805292615455868906591877979955032215208105126339692924995270603616351488722549411083185484551647752213868880533296652212332352024175462065587975213367575015423593642933568317916394698618128538465835473204082129690827251013088235429640856212167553700287041235325227946874090060612418361539118863662667392911619243391461579879194064524678974699462212647546981490768663159545039534170805720848629155408759782355269068465291635884799458644518403664748111706715240432184859559381599096054415971630779762500973181413475043314473855817009007186114702674561553114345551407434754607371476548558671049705593738525749526264107297535169840561812995521971237158249834493739977134737258454527846361207095967046553456112895671189549228183283803645674428253212266130178519731139637478023190961888637286207174577603381339973532796947428073664734903083852770992722091812109538262556546617913232856299954020141247340937854874120446746563448108387622742810861738135805313822101955840098414102970795225675251422755110531994205284030343276993764311993441727933006569197593848279450919541183546870423620993240588385621549835586954829628269753656940755993218751548853232656478038735004007403342696641332027200736612624222470238813465503140719585955014824894840169880008905052971554980549116330603678303476167033429948039408458310383288145257175510146678348493688463425353722414998506774454849207421737145308229855620235913262554487884346375365413868322403247011497673522176568170664992721436778035310019510787980437829968263170587559748626144941491281392340434306495415201188988325031634284544788445608131161702090105652890084964154267506251306074136105124918986137097821514199579723540527038525608262834859506523891362420109128365439798241754744311508365060870919976967519025228988319524768962847312923495058430731304876783516338029757698727487692451524970083064253519317611277122680845129650408333340713797311698942115224067136133134999997402831507225632574459069532394746427267764431278614252491836044651372354722864862014094200692600245547265921538639811218969000378132594377680026139889083493251782766466423557035371320784531312354957339558179639580610527172843136967634882879419059965645001822931780011305792490025876426092060868787099805391467306896482565351154924342141121984860806851808849776003751759097169037024714535619289237600922239145947342091744307993420250883136173482849573057314620088989136243375110230000504750328719393045185557235255017508470433598772573395369567029020227898732563087099423623952913584610952951930410061844234630887566754647702622486249947332875029954599936142350276481153579469295997036376156812518953060090909886161035889710580050341802001397446032059612985073029471967636804872527491657215669606829778819139252455805685521436735033364576766752856346015282906509298898450959666209871340429912685515842493786477537198315893873914682296724600167305439928853979672842918479449585514714579317960987162395950308866220444829851695428729104361926669455433408209137253245553985525161600589510598226199255772266300558419352661147990166073275202133247689906263877814263090127641290859478849980613364855722322202559708176432289122274283573383481714411026407594578625156446586769209960024268909948392987387468400595556990167065147493833395806244985371301810420152685988726618738759166219674648659664086351720074105657931855973507197191472651447782815355723064654762085705378529032277584703514258412082489634274798450793602850112862186909482568491257587504194377505388554032016003340820493072023166434045076271673517316624098009811742402907716142561970484028603791288485141973428243922521839941262534024066007078537834827690018682342390632376258044668276304623569281648426184225131506602274031567859678622507033403991735380413392383999382054052280098180752767566439703773072711101729827271726399811064388748005526762780613250526917368489715484862911830060540410471027199987183798859603294123827550031285114274719019073137393100291109800293635668165503736236814443577150339920031732362739133030109458263289131722919671961521526668946262195282760108322347356216894098703714878971554106163247949151643734696947992026875082935755549297962272157161041830513808081667337393295069575538056868157705632236283930849609559198264749236621636939225722190022063420325681326610913848366198450200529820216614132429356067612421231584443276066279622696688230707588302638777082038832623636502988868571447566111582845652816984699363796599154875930649274504787568680547819471903978162733404971076283567262755510834845406829611228484418044856487351147853949404901759300696683756818732723132825960324166018582450701821039296923731131847104040542250131383528723213485163664666652206833553460854187415098266685068592342525810342904439998626066333095111795524754139843158353028730083769599301694235482777581638609736482614206059902093796905101265344323440596472883135089600489611361994494787582195512437716529339942196317098699755643167682725181354369195396821852285007617361556838433196471845418678213131269037189464987390287723273319321416735099736491364517190827703617932084370088062539152061285179438550247778854283046349194154891583044644879926812505055592912328311389575074959793207374903273486108073208900273224275208526522572386051161186132482841935886157743162955007253392079045278890727892768510155278919968754790297779342949533042659684033174464182040771023936119757385826557736802677152209737988601017767655649678391499809883128505497640912585194991300166476772833235921900070638425584471627939989059447398422655235728723475866980986235120609725556439645585947919790162647133388129659905168411172829904251281962285886860804236710236522847783824497074653448878142656405976163611114078153218610449801558049789947642156087469055167165217235500240110466865091805894719812095085996657586241763315819210138452580439784649199809776292680588709883621232700092088511686264744636103486726451973938029513263324915766140676564230883348836451743087364690800771617668603260097448449206849021739353213624532744010096626885016354633146307409583486787670221716818447901749033712440992773325914320505644204243512500716916334714577579889036214726157878368023079288671849416640042509201297405264050334449888879052627069097072158077891283706792639063176451263101986290483591202144104281584431363493141767354804049337158493889368694650899413271684469480984243718450988850284860634602553537706835697826585420580203834143289831887413042550171271729183984355189744225042422203348671301584965157179124861770984274312093287155054417747482368953533832186557694019091619268247940286098608471529677542496459998583077311267515902833126828829704821661953663223914267345216751780217179541118451074787353969093954383166998872355601989203198968341953340080413820946404798371105463240000606812508555600122351165769100856143303374750795977120679654171100470419521551922866518977727961782126015291407610490838889973580533591820573181692946757002216782762865016987645553378068801528884060607915456806862021826290457565448375084115293177877560166448331949232401861514132081043272691188221352545995752870601968358550572502074319899559096498543812189771205591668673593251788070795597076872052918385082226471736429810070736574413177998264487562470586322660728688883083626122844315299884525064399248156322601779852698006415411093162072277680866667167376802713720536977966606609863885072387632293745786187160737745226158880577669340041594182260113755400714181158267013949418080085407963327937763292499762176267389251085538988628606382881923808554992781664429622903849260577272885749130809792046335754285103827631593110593558870949883473287134392416079764781336037581263188499150838267210767793564269372058366208213942610306850499414882388404554731113090743626851533884358266883447673822538557676469757742617905532453148346804160848741074809066059667384615249477201671014055776414487617111089598185163037807457945450639364022240336067572780984559943053052207427024000652513310085765841610432667420618255812001024497089078928837328768057289605304231127850974073322927919534142963718894450800063518619029884267910225405041096758094960277475964685311393889301525620594410186220433586560757090468253282234788444894369729668867942667774610180251972756849832952338515944741185885652632537268567448973090919880131967774760493039440051606991140967981679765158713051125192655207540267538335650806205797325982212271109996358621125296803332574066153194473508563159860394052768744684201369822688550200129970959970320420557904024982267020138500946581196212766971531779315553324573129156245331378546231115063737425931870916066285942416696587530317400973952945483347997846402339451564142363814671028770016208676283695959936287240827355766636549170707974248784420474045891353630607457316097807506463308803471383936332242370541773095911257662326615264837322840474879194111680012369480485639273449869554091057500192159482997126969153344647675402743340701258406726170029690882138433483497382688864695701412706135800080365031056665100264326741221250465754769456007361253970888290771389313859923869306451820032183604048692178735226628070927349321564154594027465953954473292536787374462887220752690428720987034788089544812361899632468818049605186736737804341479648403542928047047848289586951069783852541972644775991318095596148523365928768027348541323524798669639729688721637721042422062478439396683375273427430413682225294559619603179703119585192495304246939971037082477110861465717788847620755815117072018517451815807163835085658921340888587028184615864448968066028311816388545780458801198349345162398304598711977437835723828243825342877971305799082046647486336753864159084060505032053341633796468497044949552157504186227018534823036145071330179471791384673922988827418840832873991235998107791956688112942165472357346753467300711636268040409496464864525602449330738145102015871824723337202998873329443605074189783393277963347412340310079426240549340869919281429758117548059867388859648561700227135970713743987831525980649689838436044696991083454202511370084677920040906830304035354744793707889715330289410570616724348804632784524522633430357501666217414880538154156843784173932497510367340686507843772083035386174751296824197326602513438274031573995683699393299527707931384395523108958188428982161715924676464359721930296308508582547242689242204548355419678428068693088557332238422046568861314643216732744666971789379996732090989249783798691176410879828961793662595735004833656730169408538058039030111856031880887151431541936495325999480837124461541448925478265115487169647272898935710397393703820018569161976259131197581358661999354743835349856108294980054019721706716612734366413939554648970203712314215956233505401273835030856879983902864198931759055604632996917622366417504426717016350652963165324595839189617253385369167969910048770141457669786150695160273493214286037467862108381662286637705032937778318918314988530941460767477676286654268696141404567577485077505850792064531312345288104266543887132827282520550466002743924162303843050164859641131537912838003575411051754163011681328830792841585575375954496882045142216899071646284160619674554253946640693525876905926023120535995225501766767936634356876882687004226772285646629662057268905438945279325127878028664075310408653650838411663318687955225925180751926216003651415855750930668174514317277621088290501905667507197527287683455524706987106204925594047456772727343050468247061768174899827713253632188157952345243653530324930122083396258320559448800217878493202590078424574145569268558967373894012180570363474588431617231394782551060602846761052730092430815284640859321240046230627618280382299099726819838901401748363092673747719847698515691180339445633846157672760413212726937075213940460363613447436897312881337548717692196373352852616065067234292142401736715809337350829140852367753683344557891025510288788892802592890697449431224380642122873734594832162923936244598840861398491110731557041327861825418086465423153102568340507931307266796114197293680826877821520006088096068963093883870300823403007530069472103575832116136610515486004602614713390120643760850982005044909707650313884993047090489524751862492677033237077812167400529515076237055660864078721132132375959183920010707196016067597687525047462335388336195395308833468887439812716376471899621536511144612630649198414061970238361842569371137759651242808110057002055991565797614625972066333754148340964696766163659321494945884277404038980270751956704277072149246857727720379746640139652782903828332037952441983834142072167702144090369694152087601208060816773252536000136518599494632696660612808582871030319020350102305915971251899545283403055903429776176985706881284460067663507298993486755637776894957746506696858507003454519433187500594516141560932387851470865050932072643923134820916383706987109491962806780107613445004285066533687681817819106782918521017010586095436102675074369344557474485429564170150268076132082991595606208339265846841489835037382030607861383644665764984419691866242258052096221610673030572659552943118549899319576343399718425281404969844355743484370820305088034647754154717231840203575462800986435155543925302140771677971681269880538937464233278350299438418511238333683710745208073979000700554275711530853121021017684802309886005512552130036710063374312744421953999901453101405638923274868218759461127908806497309401796661906795238658024476131173199567691283747378643454303196791007706148174627904360648900914843884012656897866847116296325235440797515786788913638228797506844866785062513532472841352042876931198911027455660086269662564325197787621976848101248197767515026038284416596020339598737771503218833666011129932270976271889031154378746514660511973935389569687496540369483861979061361146298785910890806504546180069674057630415883849212061844080320909203372207482326746480885794109722148768851260586485925328279109947545084549902904687110221282807080327343659070479818251511742587110509664459575937528335960847136176120496017223714933685273194164330613799259577563967241651370785536202760064878825928838834347814781440141970677307006863595079487004939070623110383353581270917598467810352062196932465258792135316521587925313140684684643931983866674279158070849251133970001605645675853716634862223675384634669929523707198551844956405719569232170810415300067193826899735451369102021026948117475395928292075100602984284606944928616772892957691978995307093477403004471903698469229294388834604999411155145462972647550573652754853573363336000360961609742296002240711112971257402176485408756169290232732340152820169518677184161361048717113989383668369652571974144233001855031783287920079571527662077288801686601531306432295130070536463642960425967407114393952944305579357098725093272355182688338547623042399290622456379854993385604870931096598372872559530814322141032211973425205584063960792862558825765020712491148868103511612813041992053849386948480246575501307736406930421782285829577427805428501532561623353822136290654486024487340719046301554920787511772218947689976689196163659684078498856701139072248886041818137236373952648416348802212930439992733211781778216999029712266214473061605716960641251225429238536189235750773873058461399533738050595444540679595120926699108773496276964854550105691387523926789068470426266700638415606247285119002847845637808036942139070565090426278150856753719793486583961982111204417165653798530877110933255408849124703132084131930307999747466477569159868958556461293551827322539832218605217651848266457636634060962959804698954211744817730235357543314189297712307360165025848367586856862915105382191270079701642780290520440651213280826523572030038299834328270625986372708898423464207342508589840567679081195735628292432393250789028844972449012251510667553810159923407312917168033469732434302858070032001903740017673087262839436379435145502070277967484119546512472648700155675969109058668670119112817756205760117251253524238308694356865309002973309555503623914087041420994622919354737993000248168783950424424175473969093379205658282106557234957008392907031512772166920016089253727965460271615547066273284512574027089935312919959126393426102749712053508077288012918723766371039579296423128776140327404946056146976317838761392892714029072042664336282376370311622556004704213809359865845526568699249007138847694151009307246777296685533889862287250238462027258634799663700510227217735526224736286820330907498363977720430197819103445108092495155889033460942390248608115201457313700845838002104709484976066170970680378268316571653188817405459111960172140408795037093720458280093745889492807273681077696363621244923870720342748009028712232293735968477202281759926956841568475135559894805964446596858405468536720513398116412506308371254022741665407989463254158878214740568319395386745851255646860500494926449068684744211790498391333866780377651124345474887033018030842420744684460104991665615758087972925905427588651122568327890126302318103999074958561019369417809608503238708199550013206284823980007258606153893224260282520643067539602545816477390769726671502290621123078881507382349611697871186443839176222142758433742606455194686727399656357733277650320133394846391903627843045846657737395796644449591279491620838720883226583419342669211810713896176276599811201973023938204815324150560164096831059767707689650143068268235797714855776380839424194276604789643165311803761410839040980240753623091799148111020771844223126019930962965573732077593711397972433458338414349227060030270573322642256386919123758917874515571354840675353921916926630033841923031967992056690167332281417787000045047537042164309344704343334896827200162486990166914225417801863219597527150629561225316836829313556553443380990998516453444249234264941540937484573460265462825017239276331171513668816565728592711079873871243382600175402132786668904016586369487013408595269554481454973429751359767018290441941134279888221023749370375898805362743079031310865613471137072396812907201178176870532005213134829168267415785587052392162656778202499401367096833060205368627228908824055190738960650653124313771205432211461020778133175202207688039429494216779461070132192341294249168086907969673000714853587084199779987415728615273600505920522047030588504194101091667109895488441939886153078068605854884781888187355006637332031877860229223867301225290877113071869015002641138974597339371550760673855803034662063885012902491017381031667260148436616163635533810819245952326824089630802809829862164371639987291871873368525341109128350453276442749493991360968105662207798990351373815922295040085808612604889485168862998121557036006271243485118721137640525521387624165865330305025147125888173482211565364052017860975155480496877712473752133866557034092854018350264010005015783971497910010053149239739244687443908897853220859285842395684305770718345805785528906703975017967761239333431808294284821520553720879053560710178629774848009190916966534797161398298701957739484101480679632096703806628057384315506005946536707377152467663344981251904267010173431041550494040268919478426679925694595980465648127042903862312550984098413102134982386849120880961980601787283264274519583857182866637622451473987819941662513455127705368416406360249823742172380909617377666657681585312228587875754437469592237400287149711974537168256582596330739442281556379164449328788247206736879400175079012722414693694648523134489556929991717241936650301839703582365560870769379728980638763636627998385955002727431393900942354990904876618008468661327144033770218322511637846990869885720867907668385022984104913238316023966429305870447110295230389901168586845464116768938585191512677433597063797669114359934371765192804844226545674055328774585002979630185035182935909508937442693068428602165241079276807376178736643478235105804658069294791580624899713995001693126698411312757084269762807428591489417705913882215395975802705872622368192119630970972419024065431829789537261820298854409020665505275891646067292295523654079430666762943579548011886310380812648341246736771886424456134253283769426573664392374654583032128314967838838918352472792027326023280381697476634515836745394156094245846099414270511639038940554902374886951064734271311261587052620880863193174645649557605441079002505733551444476836417177069618443704992783850042969573122241585938532680427838255424476903466668365486456063866541507619798608236998304061071761488927567039528709979670445020071575071066372995778207525482327441132764519988264008687384538459624790677242896277484854998433555338540886331802846952804787506333943289634219755488720105612708982720644949838197054685791078429627740421907361626994617296091794438733613424539709091055247121985399213090574976621226243900844963428377677326331141043427130383180853915622511129225676140529180468632233951502033198282697599517228734539163333796409745932044364265853641127462359433393986253250212403869470817440528379424294819382563094840915057088389558477628799242260829635236352728057472667478403240730632403078398526637871698646963517937354431114279247519524894368219633632897733323798940240526405170605792260423997954328572960956424044723479979074498373368337190713535974619710835524596342294301889046140915717654387975337358657562749616500649359244084172699610831968284400134829173121536712181708968810114676061310768728043302471971238836585664479490705936558048562014042682384827673745637310140598983334519854919131323343556045786808846603467566707251561690186498138355388867880031991258692878956977523389298666281135765782973142552438725037456692803441418344032761696809540532187398376207230554697964792556529995568339584854121485879127224200672099254563059432192682320225287928688422757845718286002781975695803412628102616611231201022797479485018611795401521363746809642470033095876039019980822983532969957871601928132728803384245098489060889793466488100977105940783288687437087989432074496462173595298148244393385244477371314425984027996238086504516953974598521699070408144580853605270175020884003294588988963784521129068621673549360636823924538846165773928836735219113322964151812783072078780761890103036423377261755386351132773211835326574379367717198922044840093201313100127360093656661171913665319862773370865659623600455807410213226710207577502501464253739325272514218946895898858363622997087457149569163335741245384171042440679901649552997424664408867173812590174053475880381141780221086525261316085378228572504794656813223853982765545094143953772569688425387031027747192196380886018674272445673005496211069578361566293180633596145460262056093115394593077441204369548850257037860755438541440274261479910243046667635489418350256492810734709879917228933058972993379635765735007081782521074091585517626993084530083661580315457261232235485618556611457256344271612977550329662717188093491743807343633172479683929062111862518085590652508157941737877245426633579011939464647836800171290516234240079174547655238821955369295118409791567059540544737942477595400677807931730963073154518213642963796291896259258299372425721398062723219588481159021604700520993400675991302918486933631068807251441004452228370665918399484426168673279924324853501447238819505527330072006159376669479114867806526370954368064059099291508239966247910489083129547171288523407670508856997246319182407413211337581656412119999068687220923258171304934008726214421243327362313740639991904734752811056696340325897215319376662077883708701686486295708599627057170022479648177242375390525050307249360703105560024890552510285314180098312140273516616946116768004881222549682669276813259400118349011884714320177979690954318437385369894403882240084041530044627675440748292765248156151206546746543959466096444218925688552453117923154487866788586071106039231043195915222973237008450983444333456986724925894739706428285216414569528490310731490107202774358138220034581333508690917697941208579369193390844920178226168731358990846266218174712099268126933531323329577197449224604963017999296649295739036097808154196176593339261515158098934783465155252211227760537259767044320326476350212014232671080788852262333412738620583708269619837367408903468931015195521407411818608047984703792009549184606016113422068991061022197720401661176448234212236670251720285744685028341666206507417834089588916832606108003140166907049891619899100737714952410317325496736770449605879642636642235418864428849746529179086500303739448568696344925342318665373003693256045183237384673648075104679493456176633108109025613620027319932720810004282795333943899913308178289316183937901408688028446194014868636871215595685508086091531151187858964741499102171329504008842962792327423952793226467824479816830631106264484421929240678624167866106147413732277268767569559005651923079632992442937896625972826642179735759392603285435364201312743974668706100154017202636501650178286466643043029142247883070364343747660085030929757651805748540806589160573456484868751706459828404987828733277462376106652405084567449657080406139777726691608732950308364136854297048063066486576204352495667672380844087355831834797931553503273508833537408226656927321544983807225054595664274616212254861635225026972205915186835702987365475892369976733348922576629100137824054770671419203759928647629093120371032637652921390565048982790678161443932172107130441322292892330328549934234207812976797788592625487547765074980439713164576200015338628646512631057067265893913662074203373671040313717219987464179384338642018598845947660989547068026387741937735858567317540838200283876068883227095368230257154916180393039535998698575385541311769113275870195262844039328755813684260304003910488935746371893829618230855007703096619978240061766115214605244139838413898675734276994041515467950774700074034371220482859249851770789041693378752546969242412291981408524833031040573364943434240314184464112375538576154833817859759714259872787377570858401628560714129806291424882662766150367068362775430718918841682806321037302423069201994005267734408712429544834701906174345437321408983867316984609278974784112010547732869739043503820741857112284186575275629723199866537752821352514497349944748622592404841569602155708546634998379043115556535378560242289873552794961802151374941006615533983380262325347092480365183280006570141338678657761209335695428651972835392906919189227245093495622306064049500411709986628247754295562446565977996452043118538198611928631359932952811531606129370938461406396960631116689421030543781593094366117842748354518368615995733625984060318728990182430270071049743156485672706659916426309684619053136713541923336423053539195459925744690753616569619357581437846895446351175911698244536735914704563693972061431651860739275564281701807113489188193472311480603759042666255196601708579867216414938818695716172242574732000506884569734096755114709601822183280467724002828023182826421514880507988799173353390740607118876231009505423069438972892265053898192880727081292176164263165846470399187678445765377254712888077743211578563498031787449310826021702002301291535526079446356261026095703113125870118455015430492481978832982474226063403568204311419630206751831307963526520911415856449909820855110645658549195104269780788006676679087434940909883812278749194227195079901767869964095194409363097572947534762160553537256968528957653217706435088038975646309499893254744611409616501087045807594564907893854523799277376163576045535361303272774248647729646580151156226423184410337156044096309572888391701073509139167944141791925549324760938313489237335524776929370897308884377832349643335236315991350951597729896511050549844899991260259645771750956035063260878652483348382188658545704522224831441438929654569808485055196426153545440694060370287507525336412312929456409909884477162319446762105814508610727888475302975960649429326647370123076532274598564775629555311821691216447223050386562302454934426966159774931992052791007192806920544839015311963759892905933080576639024428570357203835345127799894255121880249435245492301730113021797467156622286705935948184913669793782556559770884454080493154149338145323646717226673328671824430201476841374074629002833432286007727013495861595804293510631542916385527788127129748103631874213099649440735454930705968014537445617236309916897825624802219754528854571729217585699035115004248934965374441268566880217294157328219921375924028781861865947063047424581643264490408636748437599149896010500058307212551357267776743328899989208966015501758651921236118118870889131505539632085687282580583231100658346093856265163042301622023176369182104371410860204958357008224967231016706452732146009908577802113630170022010881386191785509575270662798391700589210256484748375626044396659981419624356426522975508195793169836378970995146479723904757737879781885205312898114486558536651955855307870621636713815427295724108504300962535227832089084837407569104428635609971710707624155475831834717629219863339882125975348798765585756057825229624729411158411382624887232049821810597255073033575647439330668643185244194103806891004814900769044060397322093300879598886972267625449250478548277583512711471127575516802953638282436865441205239768413497365037556053897194100686161172587557202512008937338439635504323294972490961335033959953957349687007845545432611632190188084165233990192194853773755846118490153051020226424940329158326281058980686492968192453711315891145033379291675524916772367595826825794994538796740501918673499939617941139064947755183028038920530084726257900831211074206092782892224888651889421971366970292107609983852648734014942076719759920495949542189342196017732550734149577984542023097779723233916037553921661386840756792633187227806740525755282274492093948032148601635908514073632936056784808026604499546430970740247793680504896936885225034041751334574207204939262369650250701077038842031354304690589723745107818745706343629462051699256533854371229290078596778030600779845091676412014256738032166964042108946871699631128605489253980956124862769610439883588038970163209665501556933883139068307218888914738000289466018422615739144975124458771262255503631828991326992090501847794655092243446881585500317384868196819608511126037833526569257661463930080445985414658923736587300261333772993648606173394395616179496523317591116136806134395683268904294752850864941268270378385845190556923188712900975209289837843802162324891933499350297927091210741854714588033991148477363645432803094477650204176796139471149412029338258313670378170268056981718782857574244810848863370774068637346130263851612272503001092897669340799004021815970224530274144674409681815636714170328679488640653075406233961102226220413852808753836202450910200706246657725468279312936521855419697596485992974389507173944136748442523024441390696222035566863241266809481228890830585901592663295791697099479957613264733163979155591476065408064173906497005884859787524052389551010194802725739221657014462950551032048108011392660238156196293091105807723699338159059444097536013145640449474933850740862737339991168001602297561418707142336793610485885135764601998504871275246797713377589679104730611040512190613177136101231790009226400235798356295473869742927051267061738866187024221309048535506478566466266138189228708483936955089116028662118336166580934208054091000763237088368793336119602846732110412625299986823479425701122573922488942346471568183717594231776489617772304968015239522273856958965920940016100204983943860088485530788238187010819480275046648235453906402281541239494574439917579211070946517064941690839466678419840663409020861220825169760449752698580961465728736403405455961669176872331633768435493695405506937916695391270427496247680892392160818834489778966896978345731177684572286459887679788230845745014553390201376265147477731535108803296347195453234534707232804372039724500510182320847235611424653988970716443550705314741750033856104854554393552158459891487211530390837996957708765115963209787689274661775230254208808584673915903599210304376662653319579960723622851815049985902961692454144459088288704792779930170896354070451744181921515315316052831658329325913726705767087266702887843083768904794833520885488650836001835627536604799210380042729570498341181172133238450459098335137336756247853195045297234149370786730536375370848992787490203951122015935412855515804596836480462879528879548515017067129886061181717458017205214383892762279316758808976227539289746968645592681067353015488473491439514130053765247927579724425312434287606291717428078670842055705531132413407314326393324704661603045525515568178679819656466572120502408392218732530689972217929525397481374728789787670183506181450813621369462221827466422596556697545145520028074398258383526387143740406186904796546765042917334094293874704414489138509552205883299087789783914414828301960379665883964878813891619453436228796566390640223759884928687764566504216392897733649815387916313158080911977698339626503768318988818431483286630558510705935896366067080006045034445630676036687065779582837316890250561274777644131556594531435224906612688946220318581563212660346259245702985199040175970152384889787223283911478993113251016155546006769360898029034000457670535727976331995214888032038221761532994821764699708622308555069517421903944262453749909196828082498323228511661519705707278226102963744431708892966795391905540346838827007902411570225924086321611130762349532580638903229757802319117981294485909885724706376327685106793323768803554792275333431805397925270270521168652697219629278195134935711205878635679418703103792728639337079118205951316919018866898186154087090468990693039052634493536647717769341218719143591113261945786271742283913008726682469482429277380167819413943195898387717847927042560403747339512351073257323290715850257596487479702857661289203965993439557946773173121640006386980810100978037222288505101128891956616887798343117799159690745836799853852223426785641376492698171948366404918445131632716915114391304896718862326275844389108826958276283972655267130022879412996427803266837792811174014026569546004550048533634653377905307922502182653922551741822747692915418301199433567515050072337257240259267978064340707448157688836008018131224985918363966125805143689436847431058107360582898521487046676194257490295976366756774793210789860294740652141427436908426547722192730270892725531164999835629255812076904690094697203848280853854572394736593521340955853970525308355172370060082781367327093547079484252822596109878603118922871490100367072626948513985193170707083935171268731311980756981940087241086778449014091898483380192543069733460838351761010006415057126749077601429420575893318564039369599897813597873094206771094889500269019825018304183868833881767193197874891658364972303874285400546603304923770433211883357826138879098671575870258476036736572949180646665762902401566589024259587475817454170360530976611046702258884238985883925534147084167340242392729933863928006309895688157051813158757271444624504434672075978660891879274117126930184412988089756871527804039786658342843400623448974476214727904904386230832633073512115557321801077069821369697439744639001458749128819454615846795219640912777376195531976185366680098432948755991159086727841829333295994990652840632708915294004904515781109684265460054313900444283364873632974455896251018788826951527145055452934640475909937834806098101155810442514000380554515373322666014190051897004064099296560796686598365512659156561677785680390959399021254378771664859524673897475787753315106428368373347582115899207681838573726404893230569447901934080056811469241386377358205901863489965664975494284559340275381290312821662058856045574226027705176277589185081016761855474135156759818163595730866761201722285989274964924940527382736971482312608377678461083144630704354414383280130663741861896647301031594779941738159994055094182561718709569952393068027783166124895763101411726981736763141691174920608373953803968213249837738415955858677486730307001050083332458956978812485894369858604073624797453564829686110393769090071580621909083000482999596982347130960602593800255671375792851509637223279254133784146708149614657269777366957827683836610492981055232895895490432236759456038488252094583614504556385119166653586646252740784924295442555536794928664878406750101404795726615140564426623349127045022388516175168833623298403363049988796347066144500240881991731868525497970554957810487305621969331157024821483383273367340437991965473727969950521526381770450137496868255990175598302829885014282055265761820396968915549474891739340818758710379990396688301558150727914749978172134379980533015673375796965143731897022678654174281033842289817236206463474393568429067804491991772956703325382696889287571881077968844099282305872008160585670156777413354203456179391317304400788208099136520855813943480302172813886008464582608172107945312699013543591614240273153709443051787823581326498633541904010589194731088554001941653015793527989176419635764023160321914246660226068820740320859934578487977512487473739853764083376864166925024036341193018378478282272325567681807133571287100853689929194239681397705404364126976628845784363244550276537671583372710571015874907371988898424103596713527518223648890767311357419014545927737632712138393365260341600852350249656512812120054644224859015270100647917220868720517013740737090472668607694294014466138232437437748048485348280560558957599421974100632547720449523148238555566472709574347600379948863446604200511047344930951942394014334191643160456304383729228992351004460743522406980167373851378473226584109073419414443236637369009274208184777954583677616753747204922863454550887458578089041663015535927948581743189360342985460697711031108930962049607106797293531695762629772430223795600433799480931468137920257482456991039340554710001924573642727849260679722645808109680954126795091035756415652329643523346933142019370173957633782038108395842016346045092619656552550050448054249416056595092178058851428624670633151291355816874106282392627449759768893882157276476389464280137985011382345705612010554888272143437169173681126679926760713517515033473367865979110012243460875765853610141971079961938963796562551449515735447091640603637411466863814414560373864234681625829108928175099313639290143848332766994141244423537516608672962981141297752221558260735899846405448012932367547867633488761029628997165001842761388907782102007651865198282557769421322666029588984577059286095324081511738389360398215622534747724333539763123093901064569074928211250593586546212170974548696332881261549631102556560843707853010100512009064163915781402536001086335445104414698493267212506884180172380805970911463541400200837314729360905585370429190893109545092488110802111452702563723302631378908257915375053642121456464651428431200680150447128749585401173317539530000615973502620359580829786317659042828214713016074965112794054641394040151905162669883210287174937507333761897049479377972604583043680355002040602895334982515903767282125352665149613161617941821437614848229135796830552718080336849200192626045235514357206688692910809801757286180933606650447663653277561213519777073846073444577019536570146658585664186751650363158031860225071121080413876459635535442568417956865627002454315783835326431961869625160450582655471614529835884212528560497216721260180626653070081388649127733855270906171578770590739460806484145599728862386135590692162029230223358706463234597301223496297519400134393496748582808629940288048655351981579180326605371964619736026805244019228647759300717340743655321104447660341835869348415728955480045781325199066939035272861981108624632863215127599681953789780319978128250897534280272217673365958231901576022379338372514456688724636417997485555314031049352095801999639329146045290594911073943285456185224856455481535214015669377175895720232195585586786049624514502802398497976214932640695219572281438978027425199327621229068788319668811361475732649745793697138397544394425368671461152460318903150570413766205216789103307428122343592260818798750623356796849012352925838732718580313340948404399827737861956866463535205390330980420831543605360287767183179875889719052255844532054026030042965478959640940330738284757124127366237192030705558108562187619577734988363928939175121869767608059402759428649440569323231261117816542243226497084628825673165483125199554113507174718939000149949552303807591981386987065149086087978663481840483241616118724433992983831476117898231416811672086420417842007054077221652543936581735896114773327887403497290714234311008552393636941646235672890842067501868764861810469162979340599905275374585414519334976221203615280213436275101398211405899789535290703780843565480603355042154131509868587478501907768524833278320377324333532342573898910965543560656418147133571038750346880530910422413236271062120705236708787707250352677607276775517253979013651665235120302867845936414295649157917557651464315673900610026742389654613206631893473314037204480355456126486524083864185573614064198489867053094831914943607678865253544424666091794470162869651187242538287694557924945104831643997710699588948165859483575350394786123234994677339224064184871003885374594433192032516034814793935558698402337782633117228537143625306047108799810358610296399673740927857376525456124113253560560681643483605469076691222461863337445694887806098882473701574920354315673783096666717565091688799534645801786295977357232557141583510545808407710255286702417804604780520294716150690839593266353054003360413336278471666501839201409868633352599309382689585515035422589698319715913725617297287876588160444177333419462953765109180172446637793089184503376257944754516020855389719615684507091884523906870758211442574669040142388321112823251701469377192789923161576459222146657881395820157120365207360723373189299851531293240976301673446559352274054800780619534134078450688014500989355346148131095220421459271209926270914678835441165116655040640289055392476608535587670197835512730894385149107107670720712217275680915647024006902826171504198004665944248672150835152141096108790527476680218211730060534252060564732060328270597064117613570215916169417503130373363921009375450903964123772107116702541724586161732595536221785994267869812618385519348578338038135743128133009270216946916232942403358246153582665924075068364504680205475030298956011497286168612468263082907493466645057207126587699815294389899536545420149031997315944933766803492555342417023264085256821434592786736708404880509260830484464903228796050258097159186300223266914571170399582685236543856674798624451680889927407597465775559630987727460892868704025948110762007105238704348780352904119740946237587430825972149208180563464533923811799428052917052548127378353207960889113027643157323392223041069664354926619133857508693002788574940113874171461792501556204672118143243552219617262282891352930083804748798225524307996059743057499392221341462263063851719849321509782711432501563626300735570163327950233198153210124243611903003742553623651725140961353448300080113657365119084376313932535847592446299029409775308587633408313292247628153143296383960934774019899586435371058110988848058324123355905970701251939609423916116408432808390029277883923476045972168428212215245190119642983269211057194685108432170467848996803390298615930265371111955899981587107804569673491408027551302151003791614655680849876044868713861224016385359389906636749123895539341044178787425202339711327754492080961620629132812951323688388138957237704103407262145831711713232742833840214592916716712192919109607518000337737686046820256251373369493910476195531955005287401830082663791856173773732328803945539472955078036295082541035301152120197809130917472863934066631655168979865696875791778342683825966359064641947750555588919131052541654144813482836758906506997105074405459398885381439008451134186437931606604740385856255808144977312393573226885734386945697037827078887406434989508517576545390883475908172895683712474310774721302345226298453562131000581938682586426956188591070455220198552534210834069155193066904893159382508774373173792626826583778188412156189788942796334196083937921853304424787000647336930263061764509024323039365122351771909115743863854006369631559130350076551959126705156872052190648945137187881141818538669470349047413616885910357984173629290145710415070205211200834867943584034367185905356975238189441037828743108006883865881146565092355443540061557572658588475928460192603222525526481306801876749514958828787850126828520100062060373678403794072965181570359271953937839163151201471774541366992283035085589802040659471022582549831169562780636480169498937716718882918826301957403895931138593175464989707286759804496915953685333844676367497455012779419455266100319040941709134272616287717079605803945953290245291909077305781651235299516848527152424843709440238885116106938165284438387479559239496793927043551010969547922925927412322026660324957402723459405890472449437958538087532031795498283852628679842411264941532729362667757441913540019714009652613594066926264632752834708259861564371558450057594957861059283590933842795245802795639558361748289232430799244002477878473923508702943151885587929819492530390418743605944487454381332384505105160260436896727924361862449451017911798654397804632827112421801437041357216214986241563658664663219955072320575447744642289218393973872141591777510653797847315995662536128517061617197246847539378517045777521938828961407821574573497435568541105635440649269424922565823563823644816032377425977447033121818897436697578939141913387678932331762381105389334916173327393054503199792944242837932632005279127025827123809577885607171753404369207682363649901391456258746093927577021097680481669211287606302974578803208867533537533240426518726487257836992428174744656255591449775334560950111483724850097537880376089985001504332402741479782554253633179924489925063111224195688576539260520256759188164117790775057727091620162459839318719277929064070966516431773352418720606809743908473330174170644490864703554266255686649841381610766110787859385701745750044106834328888724309103532535537813755639346902337333413713672539989840046500202905975320440932056644401678123504867669343718667061648072710456742253337772084282257654332250198114529373256016870200361028352065084401755079689846582503908024648935926783763516973527319976565636667559332881915356385349441645705914223758220877530727790237609598382658589369376090554809383963509447110376758090217055883801144888643959732501939382304037742351799168254696577242819978850976967782879060109940657029245633447965507762439672898401276306929722774901403898868641698539219423155161299518637296916855521364299679235859937658684168279162805338171059457630436069940374955119479792307621634433159366528267664159216453239652051220632877291811352284420262076275679119944990052568539528985284893737788340166760997672716240177085704300753940576294832789830105228050964648065681167861730682538704527808856785942714709452298279907815056936243052196866291653826660504253505978386502709452063258709358330142601381850599738081561813051073068455939060654986580534455979918619987378053049408779148981168794091949374490389017765443877483622732045750036315963691603920354125019685781028389556691051880433297782783798387521039041362419307660553016056373358946876728207467423228343578055934599675264141451625766156447010926914881145948004790905842354108654049198704370377955061054235659988018705800092947481357779053319062186105754645888144834358640292341592866359410949869851875717946775342891936593426633305373806326100618992449271983109046171754494516220234906229394123181027043729240902781729003915842994404865661333906870130741698865326411581854185200513876482748765422909818698887578508517753386448115443561947330177136449860383800512682633370265526042838251701722928231506905556543126812988585381740710475010124426776439771944735710052345264887103947631449352130368043031373603756812354999434597201026034382555250085463586238796128443699922792325571768963253617256093676624732658513955317032259116389385232446260265887120114760284547212403613837744790939047350126303053963046953558479891056662113877944185338180632298179845585403892179321899076316726960438848249669175633943436521070857745553997156227961574785473791449308180956837774114524266376596488577162461591408501175476952753424474295424856259764895977555809081002167602787464346620933589871785135290374665112628759987481493428652462885174879802171990870706593579453837492257494066384337274355758177631889263345529366745382804638056925481761376121648729777349789009813095511526937006591352420793755936443091836199262787387820073170787330871920564875164410759542338800491267222394854998157936060014776943469303918743036157313537183372576881434627230035379592058905335768286118163432195541486925616309946230342976564129418300302777490249245532493142148187650396191744274313751522728440619318342170718954608939032785984028650889860470377824513426830125257198722634147638576978415112459936415148336372257728915018511153748507980480817087128658588070670806482258754154177182050394307098674589202916926211195771014993994529236441285281442984407739187680948533215756505507720103485270249906967898753541567584107215257616717040038459804654690559794523829221293194743456422900965667883133865773630210012201705788484937883808205285237110570144039991853182218356805065147911499485893995216252603437741414712221423093025296408668217853664985508052845342238098865314748634761330005668733032746490917810278508090325518220545284130145179433304005236267683725005304564022970729611167445901326654697909985368249206627013347922468800664285073934033986518353655767385204085644509027396559291888507955360839233835199293305912269962585215823400858015909965664765514847106129665009801774530758925172267743700179121783292387247388765134485316092621681074274448653852215137189653608979606373264649363273606677456335560425207520164430664279534600053267000270434655869506263460032504704200319218353374920878505650812991071708030183706091726422195868442301081221195745937457516599154027818141507955166777229072821039860621644831417501827121394825007831219138039924238669074107876504689890057519443401250550772114375149871375876896545342638916969228177659214685033763670422950606305619276174609610785710624278761349483495045577424647270415538001432382106278066222477654616105113077886340330862266690382888524605649073641910745733410892657698159505520458607400075542850954599535634105057936213423901188752741396986435927267855674625457204815861118683272006693111287120744979466247645710611175392828721287000752720247198199910955899049888634192224794609772610850924531933913410320475439784518431311921808733981280016540982525069042264316011655211247232725816384297711440137841246792230050403095348174357590383066369997016350923277398232333977298437518178920302110362522378029185248760745135174058780228864037060924341311571677131328735792916231747385205283584258255849568234668405161307290404761063662376969901090240025260534036182892572568538962563419096919507666281165968392541603838495475540098338089848302708670651278154118571344856399297438959887491446873750392734993136902401718545849960170277742458225475973644763912951056408828702268522755015244688778959888383634198096439538706728044092492599593113066694847769350901937965391418402610679553591451846271191041968841285399978693620235305276869993434547223813316601337052592079298571520358887157450727923388937783252542135032387550468838997397845131855219586046965533991842290403483945390534647251221856484159075773007518071829989961749501138582522456798516929151118815285057507507664629123251835782051197180668742278792727573659716206255552109243365991392800306366782734624294633481965415592452480424588164546034065113107594109073284186644778959198525025556456231405655644339912783583989667787305487539928066431715271044477193671468564793362721010252362828197805453127346751519870242130667288882114928320134500187414315969790923066037246306907292686764969458257613008884791123727127089213280235302334757401844750670926470807972311884342874392510915333430529827959854906879901089780626119462642080307952079460331944080066383055552674859987790939547635420258419271891703746680340091162401076002379120558537208257659540185231306765042105484238562340012747071543743598055696022663266399563725430126957165180741786852002622537529349237298930195447037763711629874330858223688243965527198042236372673121410145041946048203724294125285028960529309171378346274719860563836162976983907489494862922147190110859246936756190087579695628719211089801339805921604767134151157870696970274927542863422353327922575927093192870241228541027082253813654664713527647228977903783326904192663384841708786015062344193300973354986617210844406976629901218136384429981113891828222823909103596163999291262094987881750432300497849021343140924822753183674027033827843442837904432250042674094312255756406871103493042165963529965701412636541274058136505294524032270838765249752099595541408611783602971405415109250628217624738543948799767271171804189354945248331583150423209802850828381838441598842845391299235230039060924791149052809206224368730502960642744737994988890110721753295246426462823348564551928650437186819181569821973203353879943081717480831999080965253692701314508552864973463556156728590661700669691405256168647838102057211697880815053382650607519384277590934215485481467744299100666760458079588640641909532320001997758242576870930712946261736878426906796912495675679056360440700419651076741950517825913469823128604412236536372341734028839898560725520602459795156394602245292252554148110026672867858142571530423107593639472451804056645190347748118806679679075404903405954539587488911056568471787865869652276190273845113189654457175529232775610597085911382765842333215697204079185332539177042639869185737141615327380248078846028664127303626375744319900098668308108311983884851243984622875443105237034785152275398789223903293845601600791197394729904168231107303880855557690641998511773337047860342376965922993249476943273339886386828046063801694340740711715981819805245632613018593320046661479257120050151675295242585990442436076510908238217141930737919241817778898461134331638044119147247088971810921106317884704239793546109378493256021773644310150907426651124428269248415830392948208566242977905782212628799389228746873027627932922897987744800499978200213367643471376703920602073199895056529235003282475178158166192468977399394544098854739030977905912916388977106338490848717174420987364020509476174871897405068495352446795081205281525419451875342918633149747907865074727936272691464993517389574889687456969969756803811146430750319422993939601340639640301481646950873184953054333912727229843404418381071692194882822303807881233811167246903897844660016806926331263694845138319966643844075726286555253196321030556570931337898080419377224010719965662198595200533605157622584856032930482740987433246013087583897001345157368116642996578628900076031827876169513297116719351782161252043074611376902815225999040871471928574833266959774165727213569626717111778163892738627349211081075506591837715559270666644367777096290769387357326516783195939338826490494436107009241864312989116918217087547079436432477007927269631844884960221437377906501077065380195263185040490883178068394908650845799425010285167410225699639807427635884234835522820273099297116622299675670268302956706267731815968863684986993183112971513497852828070010395907370631997323587899036007867951747141337031059449510596719928307182947910222762585478751015662726934427341435362631850802473697995457009159559735799700440386948745648995713964545974919015602234288225779022063160306729527163601361248727739441943633492536186121245490543654513060134798074368914034055873558210557117572403415970827014877138675174779321970712254343725663060974158364596533577533359952202053492557285640424122966590335429374869136419477617117585519952511030880993034729328797858054909964780021237307968827255079719298857884425777520592952084127447721052068183052373319240972098278679747615778076426939470963513348362924632143615307535948736193868363236059828981977260941789365106921317850160461600378748423392418641771334974397892595420563352179386610759729335795621655085450368488838623295034192587595189935020270080408939353565936708598514930123105370666296729123438861706388813985187992057084184904173776732238702752781564456725253952012712709204113429543970533698822447016840622357138938442524961146060755251749055020044135409451380952281843322788207637517514740095145382273866539309299412344909668660373446120607199067061750586295016085046825567269725186226372711642057215846199336138987674867660254862823149390896497283893422727449438203633751640612340438440859311094139980149730145494940166242256152671387958189355770083989652703571603997727955529214170927570183279685505380322783911745317178296387968230036647480438524354356568874125978176562574469767815620329492434664502717031085943943995411207396891442009674368197152047235397936748468308963940320304498128648386814768237391632004872400363451034348409257347250668610237450040559428465975340899680174824770233781680160671785458858001111335196447801141682319630824859631754232913263201181469873606985003294911988102664021053840792648785675217075066980435294995344948575432976377286310942068631607985153463939360369106905551177156241682949894829391454644955980970052843702839537671804886677022963990948507808359634055883362088563528552765428219357618912734871938582705537643403418928791344086810077433120274700732818136659061162912760648829204787058055432713096702462324839257104744155191775674037911804438764440630354863692943643663424831545274566379915695452408850281280608482268806260373911546008152712631560427178908671074839118049989281184633934623123303999105229008487131160489199168537316033732970398161882122012115727229888972092013615712825599259487586042065558099095228853306322160362569113922638436657604207637393346783157000687557047719492958329349338060415363182342725640148859461701187449079579523073031695719039078418041508118971651837587507587002372130978950203683955794200924549242867946384639819025425147900034299618763383994615454823468216579637207802178462415489757748133298315785277213350315246363445641329497582965740200574954505683192608997312322092790606419174277079050143827754642593770116693977875132427499140150983333350670341753696039360267511986943291894074054917675378376509118314030209149699447448355018397125012330225286861719608355534315539763530721280285657834195856713941926418641167760516136056794088997395944804927847649374776429132283287983203553494973246409254480908739395405155736598504493149446892053110477539688021504616584617707892203758573867451164395594536394244138632876567129927205620752478332328089994136833047680092137240945264142053371765045203146098961240563875452988548750866184510408135736842314576228446291695639483401907292369024359555059100549908984074481983192810479848222484870229864425398501859678879320038615233160244020161443465140230181909392941562148190172635498549412234398290420312739519823617730358333892452092420631938716218961314537141902792406015008342639912656423237024115527807589659311163942324202965019392115618908256802079852740365420981837184245990896351192099591291960335503586373511974752212845027549789560103639638851569395122295237514220093171581234201331785023664979720526659627419011496861324482640434532852087964047896435439366332418954278622209696898251368757418514527247690619495197977441448818456890569155748583072188610696241210270611402907191284742095983999218273405203135228617908937073296086018287432471847838427559962784172633195205887374002448831955296409211352524871458875558679100470341054792639132395814903774621809931834357844706174330399330551166143245216734787544181954750598560839635251457721374657273980256004139590676578694000712125544355771894982185273539270895663258489222697626368538468278733591061436908677890359674331189719953468684952372461020997399173914078995742255683519650107372165119184400697327144634472697118268518164579905884961541667047993964766268086251910290279356052769524002148484259755357902356509163109307204838380587550427949198608184938535297589000289222616315532030658085548108484741542632372320246499263700223153992863558210201314537455796929127009600725274389955412905787899780391065694074129814302745915303061958518581171377582951004644929703151204826573195247256827067202524774933635730998143730185198763871603144478465482834138367076251816160521877351751814831808941501788523726490505671509620570915102835382237401480383949446339440585817980922927907170132708047164705026618318738599473988518628274863974108027818948874015037262614245226176413212511782024855438651323995682138281378318711948320882905848145538553547790317031504969147578993864142638509718900154330844290440955777968686612125457964058778124220939286257480914741060571125844821791133216158004299094735205556825317957105381886382406926554860809245338887773530835555105810707056534043682790639618594345122548602735753775072254216526515727698064888332319690798864931390724710399095774067257664227200692177864909466767868808561079273819761944859033769669630758306113396675855842150585659195199015034857573766621247381000086573209402826154660005244255022544096854530359756979953084253246273210286446254345145307162929052092782497934707804014295210856994251423748404552005201385097292784613294802338129659986167665967977146610687527345004931507741802936664743668078186580116504357606436173470954826782740460277679219988671694222969309362916171995837902352421611645753289446310162662104570061736753975227709879797679070496465011831239960283791816724693354543090414036500040760594375852253534642439703441290169668495450929896195819984516833563866307088949032869885320395778040284610610234169597950906350061525251333305332687823556857975164079255431905525166025886373969596761157834649018006271936130130353147723120825030603014826765052231223052094863064201242186539991427384958920467000459147793640523430742946123313204809596985135538759943089947113807184411243398562262750898006969346245388905521285223061274190870324524763595685741649335525074708122278721788501823013460870007674533075035716938644019486031404528861758377810667039426234662669714447602366367136291112712448971563884354206505323848873561463085931361412177792296486148148830767049194588048726729658876020095811211493766108338912926741413094710723406853707153047302420686638846218049488639485147340736443512745994998937130874211741309452768434226593592711280295032999690899906881808639156822731642606676320749159673326630902426372053638884156002807585708630605366386227949941589387518528007632576219552165427352600774324003821339356096586615823125507654085631158616732195982580447118753933346350969250338024095267685192618346418844413620533361249263887678139893693371148649237647080233816122989680378021140179717465348192692099599334816253632998963375747918081026367312583740686992679468659276356643849987674496615399954412055679276461680475073358171783364855895472495494833918222408010941794895627671517500520988908999254701686509933151991358678168538395139677405968011888040268277867648459913503346839688884406673468031153845055048210506511719093694186646703498442998280842258753210839401726401425051920328536048051921303313099410175979344156425360569729608383205145593062255323527260823789660100941912604298160761809516360507672538972249641989952660688256347284295322048377052184087967752004357221824580605506374791074497527331349195979338579212684152989090661080317699836313103143948078295469580447521381842004300546416317153334102508280826346707648985425376828977089915820481093967354976695532278084832266044154112620893846943543629426333264446531646095197048590673597362421204980816391886360029673274029364470862982286620509658466534533960399248736468218347540038759663518226020110827485181510132897942653347866745316629216634378105874865229056325696534061051062416987651460726900558033502637304186913245835509864722423333341656904284485253205869669284234616933930703093330155248172725238051946239659531595720088146973010383410316763728014313670595487784475653126096504885635127240266354739042593455252500203818273170430725692462553477078436699265754125629872399354981421706243566568208869627071353209458582646291144998068823124261115244066304341414669417456456850461143249119993900254640286466755934565378726128278686199724661998744510525701027553720374262513747915819641512172514108551806420791534797796855250160065052679895898872715453643542171834461738907403565431081003058011507691402480520384581019667768880357809819832353182908423533448109488880024928782142907934847636599419298012819188795918110272739472019384854596753939704213878206459328645804033918340965575279330630821443243951594544964348434171265924941498721175538618033935454826225981331044326545403405627774078149904672162878351434764666983340518577687193250897633356077736214470337306264935238286835801905844541180658486201348783316860367239600083106384864421806311857600387371567942694696535782134503542710604310530584193545510372179120724604102684472364270505052755261989309385965634286506085766714564276183322748368145861641899518543333763322070244347167029527734432138001282726159689221339420148085648447970131587935991204408114658362811489735863510865292375415998540100306924052537997333495468655597784883157772523497624931927613797793004228828795619054517482530411456094338957768801661792398172870880228866020246702443968643045319810052352119324731314212785191090001004311958653996022312762350393338011218803624811884377371429752473876327150785716849072357514808740582900808174858184063115252545914070570256899843016408269632487557499409038148068738379139511007347713992947894906851252378683618632745812666633712418401420736478271134817702049693902483906439394704115856817733289666634583203242706315911343752467700048449925903598528587087349656284252383026456934708591021363298760621440274696214022900923347982970742135676023584998263675928892892353918227238102842178864190737296048129457992293994801948654196815358121301909334157909967367862917196640346213874026569548313107188414795320932156531793839041913949117771534964251050823205872816559612272008068912453189087167907943311751701314576719684684073694761504542681736019601312074985389130190671201661232025492153912096349617901318202917220912595352787455851385477885699811149667832300478019120961301484969491243186255567702456413868743630569704847680527226637506195402365816217565777324592481857386018770235023128415997498885643080493339149360483389625936621432763598095447628499535914642369539340349348603216367828029893473816326848444413441873729469734531870863039931964605288762582595850035037444108775896184606476643266477744304714781686924088356845443872962084180750872797202330428378794610523871824789808780929514787367795266925829298309911945483743243021967440061539668707478522944621890061887591016448112312126778289702202345496595768827395615574348359487155373281305587698118561545342083706903630465740979554460599230967876613883153374984680459528857940782481128500710881037424128895972381374647901940501122094098771242100119701759174480574571041096534967017163326893110377615094239034528071830047419648698153312715087241705550741265124126231295051609646427416094568009612394118348911541533773906255349489324776764591788401683519671075181071983803190933107465609665172213279568041427894688172431431235275803708341435703142393048765633693592322838245515950861930946987027936127792251581333520568302089141521926098968467436780825041691115718874529549105331224462443216971064136052647665121224623822454680651325708434515050970505950864930020766343584509846731064944611487771103531317241143893990595351603260462485894572633685290823554660705696656221930342187169256494308405788362751288691194323685156182836444409432128966229261269353608677179360829231529043521508435462833403112157474353842505134639440174955719820811942521759130816311597974867397201296008864638830728569814609243483576338776311951347237165892670188269380573290808872022746423695047617638692017989078355395618043444046690536810244725473803093700428724111729636933138905631626530430583442365717249702191442808724806300091315964186433857788187305871237335288447703621907914016602361593592109251958233261794922152873251932531484309478226944531987004491693333379150005951041733979434700183437858167355434720569425325948941794914097958592062284112016796874599583531078756517808470032788984878165932610577963734325059188599238049233302566989186675899254101889485275402785278707445248208244099185931165317022625562729459495141926869382529444504392817181938966149848915392681605381848158308839409207067251977407235835177183674981662539919621020206007602786550229238509574393466769136890092593891168694341480832732967244147709133527019749318714882393300887556377544499909434761039831333881188053390101378492008382566248329423307857844741188618467491832246809526857811299208497033896004007110477899976996939477024497382514527720950573743504998208286038297895129525978900880709809256191672749667723409331118840939312628284593259959353908596257891395003612781621258485762963706775887394018303597471323801793207923746004202107152725413577790084643552368210547535820003755543207131768588852620345014397821542318442949947699020702337497238885023338710218958776821540836974835884596874142260586704414738186056869899359921757113838045789792347088044714632276761457574342771177801245740915574693200923754620431034133080047648446534374002448619451061376441589141438942995912759627542035581428799258586985856116357277092950654050442713506836319342445670462839216258486384285528320408976701415943382159029125166818481055724938738652421478524911608147004748725510328123179576482490097450286614443693316833959683252653039145009419205216828371080085922082420398326921870894850721794322494753251833686032557676226453747485724284692148794332673599073679847585251423033871280119232131615410401201641148278393775893713150504213777084368522262359677348675478790550098996417361147388079697230353861059043056616324261580287751953557271023642547643006956326180159457755170917756172875086319809227829680530110808535958035892104488393561658414470456397204565478349745726400839126975693092064553446404358566160678431390276869209036412384003436983823035193839355182800588589353096997696499458545831824445719779870921784859724360541579247564687518024217378611059332326077289564417967830792755718349147725835759298987261529859635990165441319255148597897428888557868638491489119096776433326511534941614229640803592108094501676401527672765815218113763218935869339026248299854450125597715516146401680506412031260562617108231723040229585280741669392765309993067211726588089532392091392611583630462983575951250226521315707414781105886154046156866073264895198087824101145732555972639292775392553557128180313760217221224194940412743701712663968427847710006073879137578133204935887572237561624887692262822828252208797679129709320188598350694682093780795382566059907848003010094537588290033549274670559804261365078360155037680142201927615099378616665876292241479047210040373529100072017173577237794488765315547431468728498569548098208399635074489350560973022802309515990435232139247973706320584278712671428674208666906665606593478376443902944540755283413197758802048035802646649655243433196053271109029106970272753036170752260711452165463078633903987697370186765537953851901026747325376979600025223619681957720183220119656689693523925219997931219183936111704664273809312403507441907067030988355602422788113730875830598336971510515253649774930588979501722259784872477522249609925464913281378839627637445328988327474794389321810988100098921583439196685974308036661275490449230529476028800627604309441359353078675610459148721891021978038408253668938204779710600216564558483051843874439352981668647261020027297078329485882061448634512680951933157541132359442034029313737581265726613935860851880427652035355063450623029728767568519276844871260027051479642195376532754737172041280262494638226909897634182255726429571912805962408859644509474996659854103624543677687054544467504680152919945484862787395708926179389330889192029838225787921227191040521959550126208886498485630163206805944942245784987392992400224158410054686667152113276726404006651316030648637807082801475415260994378245795752634004050117332242563282740067737517271231100624384149404098007032871788919129068308386887040720892520381162601248872831420678020084082419258567045990721175353763156155318966885626779388380383144985207940998763710093197366767965850337327112724751460037835191759288355385753620714256401626817316199070948006264842672098158155929578412348832213892651760518512632475109180275732067518740329297651551477835331981060186950958558613528671726282490417317198817879689777120207720236426496182929611220291194841264604629253390498942270977423030131269896673005371975266494005008965190789892234436248668319218600846761024488128370687966669671403985707448247519165971716520813695276643983272398137836443684858331791218872151812051601258305251011438938009004253906111943358524478917724489618839716113219550065704020281150480513048786719842259465700394946143336794393490466032624127569300765007523216278560209840477441537153012772016213680826928121421346889726173540881231252469195417357040998052008296801635146542978101862259734257327039745893847435899186939662265728366035896146064427828998426968907663855657694402719074788748875092551564372459970655232267243691088035942799192251429498371566072065489113293849717821918444485301472909516387427500024218789572677874111534372966353666705698072417264737692201334684806360886855667111635609224503004319016542196701450259470515057409107788139708076789505887309521485239246921700497544351776127516922727476483844646435871853932974207155712409775097012197971430993720826324282422627781218261284370425825910544336669410873861824847479199658495588249207332821628013159571911911526480891741791252164465036638169465437406738810135979407045698779013348402437012136195045915551013186886150947920956877949334907609814700499104279486579846329057862058658832359366147275905741820255655939830517578793901275598584662879226512970083225031972193954618063474179520665789336857220759724994774327898421280480871087560930904962699533688747455932825071697975561727202941465748170231015037537473135267630245849306428578529624753280014775248235318839070580127756262606355847544049774185480110376609184726206673183059078868842662621826295651220328924566742203230757026288281198019182262981225324230041230657975508282616440018883741994037006403899204902027111417492407936242373271322066620698892969607021298044518836791807530657839763846354900454358850752967252810464974055282844405370616863241519244063860539919239255067835837201343882996125164001654058892342475214455328785065097749224658155648152616645215971478794243539681109268093506497615344106713690898763365882103622823258160045193800859184093407381595724508507144893199210120778889143117248279686460867740606910026496947195838033727349845836712906843538656034730958138989638476787900751164216954374342962265312108643748304277325739553365048775917008121908460299578892882733565349467911825719969379745071989941802988925316257352710861403006164945693520669650301711277174396696241436770326378194814563311098642451634891816163100874717125656597707792199547027518943399332177320528851388115113861083313182408045719246480435112617602211724611014190459207734895471590316860456833920542028311002110884248769154703801438037758573005498417532584237520139017320114432278035939813628998074031406895180056773967591560498630940354476059397245378801121898599794361608777309057145593017756106612989406282388241179624309288131388433682865587435435805819684446326537414178600644479070643361797483767486647459789412587603973915042685445762227815893854582399143429741886730142227996500545735153012453907773365312325896487094726065177550770329291188567189127997011046813637422031354476420518567151269160285765631856833558819286169963325035099337472789243450268384693064361424200149965307165663374840348059078474981504463255907568539018377211624451829007592449815892389264279940959491333516997896466520373606146244665254249138768020863142273762512219028157855582430750311618327264900606077195121896984062730014162959967247765071815372820997886137236087262792241049421120666254350909064326848800551922305770618237450956310022777930916696194295612949371237839410184630845946513669015222183302870109283902966176313376267202833740847534089898881099327256823545951542554182565003373834778522613604126001420932530179482836560979028186208355193140616734873743849983353757528339799094184392642854126769172132247130839268438891900947330249852406273297632936191903542792321871468330416634152948973576822202887613998651721071175593243730112102458291722233490191269946518865428877339874201518517788855891766389492381778576018298713620753018296705498558236789579036041040116203176256452861285055975144590911259550721812506241027843913293908220786527853755833998408245719762520989926447489163871052842407326802219286547067770185619322615371709143979684815412749492520310070418010242369393498272376420134562364676377378288700233869791101332087037439292087263667994254032804343524838017045336103860923991164234903923397537407231589660404987437323239946451384766383235173982318089065591188813759683385205854398810861973882898565509117762459351512444694539210008359861859215004548282051832920952060107218202610239590510140597932405376083139076313510307607437098464092975970484503270753186251251614986647828246322817028707159435267757873472458221932164507218416783256209052656227238952862336172038959390560793476361090446144147771146536398571339983647211934829167381390131062301980745965614137492044113451604712224643415991195238441328076718443757292722314156016970682452121451775240652879150330437564416747572229815684950647894031561930766751470090100844987889771543994275335085625877766524229130453010185229525374947699288766073534026703190699968682898897935020604991802020487766657866757424554675991121174651421398475082385656816170768293092869183253237056958200172028514371894420216174053773159965086881309142490415892453320835512891418972189305387002144590655599917956205514657771299959686035975542057001807296632767357182838285466448292072169098064763069104329070562924776806031930981243919508327424267649615436966226527487755845036429982419552359683158972357155331663029008375376173021144101995467956512566501632631846173506802154512931671117055295550696690231126148644667134632968590489783532098124177262676284839823427652507021114897117521539863405489965170033626777314656034928973837419398819677627543300500579419006029083666905661961326467263490843920924053584686488949610898202996846574191839815258361379818307887677959611575553284012517075106445024001419247674600834727223444273643519667091801661747714101679530311020984901056334657058943078118527079856087363083562252115530355245517615185293115085356385651072421848726255201088191510383534665042228739610902456706623760027648167888422714216533719722246777455359512592277742337068479308305327200220761907038603525380996466019141582147943453299210100085680971394547473601643768590572678534957255525717710202427682091501030510399560356519229332740676107496209732769042330975518947077409787968447656210471995115792824482116901310296157208261832501070404976409105370748160902492096660543711054131191097752673048429299787003032892133515706224685430809092155184667860885931277234741943009589261576711416937883974618954348626513761219594855689077532597238861618219802332356562731566994373595826665783398423493600599034520504411888020853045463930556477598593000078201933459380314101663854114864774089598316826550957718938128986671061145517634197485826866502007446059207053285254824456755118447023941130373158135926763847080048898227433791500875149165771892078520042860575548847782858083945868321770722991064081472095668604826395261055275271356987856326287420465360801717500269744220836717204162390811245506108645204116693522706711002085131374276865720640254108800204621365885466799602640542023742482687886124689502275721865038268019724585755661043645877778086542098114969029914509117593052409765157548034379976024836350262787982724767035017943022301082975303655461690422744619814512983726546588980260059890103183842544711512712481180323267824646421092067883106476856713582180731746359784752112467805387351232535358991403167413809161199889393306201050943125417860360110910607510213016516925699587761884812361989253873271029326699189283812771297931162930991637557004824763565604237892167771497548922449082400102847434831169039576888017512344981508315604965951723729893756416656810852086661486107223167121813147438987221641200137009295765802900763421180394699061515720552523782036645081481374587429672179776670864987066036140782411563098392871546745938286305857984157020999471325125052232982527888375840882014000696265925966144010553517261367801640391393140464262140464478595366845339619852256214862111254440675145197922257252687440326420001324474578639584195815263848203007659775907461315802346053800097563102166127912677095376546804325805716356594632395500688633299560336416696198379089386018055195260950194646825048296545564954047625291040542567050834455890175756334021142553928674240651860754670369857604009718538186168723735754708903858408038797139117386576572741373230118074167775760072675965274097125790773767636883806708311154221179561832244117186268096057142035869917139054186797712301497464564031703694051365640619510914002235950278396864933732201114986801879025681310614432875050364229736387579660690756267450967107380305820946320372303388827760463393846340186978530121573033712739605102611977367874805408769361151292693184419906807022672219600757551469519316976489954111146024153065978025290548592790364905487771052683765114366130335399579104519546378148306885303717361738209415344803569769180196997035174063662168224921785449018011516130810562796985600011787504969181914565372253387101011345739707443859759492707904267847803395899972065169772451671394413714233755302925722127394428392319629100455867451176915790303687733685120077994491063071960734853399320050963936737799535509226227356661013092976272195954745578139436102592473357359553130327619278628150046298752274012072973507738707432129728385754858597161274198853874324879352731351145812521056467171295788668539590027083368421343433142036841249068610558293062421649271855120237855828527728260536282719809407227422518159192641269333798716967416512927414819827997833279089705700110566573793048926053068478687889505053544897876974088643148113620257663655767250381490449100045300398097383221296399084729216852035721147076887979545806045350554361060444647224526637382828889071040692674702063562180785851194847212752349937565103569971797062892021724268035372886374076123322538648405390770055478639970907994430029055431127568695795867114052109400741341652218202165620172041298174765355607296706239788416706081127774687139392315142857603450678334507247136493551870760995352333887640876239148526164007486415554020722698170381662169042263239063346949381622781470591797133406497220280247969909078537612074802517892034430425840475047670541763292837857381252978312585991431619839004877264714528309319773191502423089797240241284220159556295393172214229377013631235465669832118914760879827163801473730131303404388204792017647507311688286111689649346730737847384969151010518531534917291873215835125286143878593805416640201281362944857585600109741094542865810356267433310054956637203573230758754449127521495272989970097597064604797562766806453356417792157591766684216481942347092957650559128725669406535140488859937796352087137176632923677017008069179071582552563314582073957564168311690137720701768666633204825742684982249315000204011604630731917434318756816130061013980795205141943959224178517867725145479726151712674679095736110818494023232574920054989633947587015674616490480032921869319999772444560876107660679132395509828688828958458812199736754385968925113825931996988475637124330244911308366638779416863760043723219457521334657977714689831545231252621781599484888274290759550455873249313177915241247196103960576948318621288649193124052303216703063565751096025202343333706016206577662857166348815427337250807605208526795819279772941750567457206155573166496948296977734052408072851900198554975504367251528675885199962676245138819775734143565395609656598223233969057442329885799340157348505995698718686932746264999037514944165660354835677032217201056139723479966913199684016493946974729523753610988952132298775827173481602259742623847775638533327677512609434765480295426475029198383553382279309181087223864853081421132873720616069418025040282891588076734897993602671388759962470387364719691073543389632438617899175368183723148434054314517599375897059887431347831665964758404882182505483136783567608937168357972444659640107014777042236039442089288953355523753523328848961400211263105896395411842622169648940247051630766390146373317736503831291067871333002216550349445057961304080110514430200485545098705656314539687267212420034776628619229991507441001920792975770037605498760044903071099656252444344149827713952799540694306432552292567764148650319108982240232138507956575899238604341872886016769095636159492349442188465839071022696991389508485498931085660775389314313201432926796521696404712285918369845672184458557453358871603017092591705001528733412969701194817860759700737930731827780060210992477716341858918872270220324363435583374175104985171375358744878387534255493806502827439827724431245419136045598406959888804121665528633218910509600171950486716230390634731851275892452416019277250765646189662348343503558993480301973827680403553991667794411856263052760613669917184694885397184497680049942198871332070731213454728921656199974727777081008655796168919793186684873612161776829089876263248818015164232460012818545572998500769708610443321853086009423895318547868872381540460999314511114637846191922430527704276959934538523072430419519379633852216944314515360675732640287676008265365516605679438764449245454631866624635746161252871235331816229450054220245176345315205008448727017855797311080558022485865848748555995834499965004726403342566379152720506048367551748085715958875557345041750686914693042399052248624148897429362437384753105853803898611271269996605134398713973745631735597878372451967000773797423358874663242364547313729774810248231077919550997097498114808855424728371631202118155738332824581773943987071957246474670816098274543236442736072421669030440981337645830871790156299011934352727863022896830396202250111888934320010358980625080920357659256173464639410643729194170415914306206738832832033714573910038146298601010505285625850022641784625247168763889986477141127616065520967272589527749929292385613280187045131706904081850003425978304043427663148447159355095352072723203739414775102458218560836817521668624548461183962765639898194133095783488492241781224287658584661148586293876026189029876148041041122859169754666312739278610116554095869458179432020632528747089780513782102561904787768608791409760891692803980367055117930616364703325936016320907928566014369061636569621906418600268585867910111212531303474750990545064432011062003380711755820858298201677430952389523883949422269708294656927961978166404052430034707239744201925025848817702691987688152262386436461881198960914211399257635371177730366832819346949486424436474911113369304898896648013810347864867862015811091441845223073056955851413217988039975962050496880082559615827086554954907036158686161207359019964216634709995583225603888599561777451541411973030043886859260047909978335050260871095280635955679817742556657121776870280556239196362652527454341830298307489585307569785035529935268366521236280332485864698373408317283241104402024775860913120956302627240549115517043825930856002369555834457210689687771156927127292203340925133220507975305120368266208763685132524572242423029864970179574257916270004894104975206531095108311201799596301458373344996324940478916228279753113582876644529592465709409088472098413113907670737775543958516222445006587240019090333872735151588638314387153177288793558782596054686634256883492515725115440779030027278003992762811734859119367037539839374653558744772096447604544014848513431025416216650884549788377973430363581209901682841794836017763489992744590883064643107748129276866735573418493098311394837386656612926977197987765985970184015521704095097748274343523210326266995541609437114045984038898689262353182449179228634260320368267656490727862836587412109289980995715815190482118024478249645325801622319002787566998219599799966917604042069283638708849761076944156001673104568266855434086551360307322583386860687802107543591609129536007590043761927077004028640715309467543882229157659178224223087919389867898147661657050668836516361434688433861789984122040414867309436982225532228258740650859618534268411841125535925395286948234434973041785248930823241495528587461780840141769853487557343659766989166186024441218661209655800556474206183020749430422224735779577193881715903780569424308698329574510474631187682884620536597964674494211825961085095285943095730630658405890722367989181049268100904556811354790075418905332034639434140029727756049980118034891131694918576895230301340445595495533699902086622442901680131995985847951407584316777585650211662711661077670799330330195517460985311937276633624911694540542707472238490969730331926796663482321995500737167483800281932049065045070444330257829015331038529828604190166264087275993258478344296302639056306715985761652189771814536530817500687794529779461137435168215935846323026179703425968761856430982492460947823991023378856189346434091772890292484050472054739870148243658601510329780123349299772802231690118373981638228816226543473993541289431196105384554664699978792392234047146682912695679574999705458641198437039567279475655890694546535876935042551809134978465051172463256052721352597101741043126215847766760744371607094325468925538018833988779940508139415088547632112133671963798962677829198769937871205796416529813950907140672683046859305698198514124624249022086192428998155215524705240623109611664123498358555026011428101291790965702060236021540005501454454239819297850158701830361345669810848331288858711959192572409943352910264186808955774910811606677267662306503601811493369519209383606375554444550958897914911136646281451871409112875463502749775595458161946304090197571133793132648136337824620641044422613639154930096076442378329129717087656590193277037625224322844138290467970716571718011846664216699054724786368942258091967673380568238806552873100343126946329573384069099195170292964300730804095282750363266592005574770395448441119303846114068760920568454250184182396571406439066093365670211289962292198293658822198128945806494242886369859497285555925488201789683407720646278281697030576062445317294843623195109288902495978355621080248431875844021960257446555704262876183810007791373393558729238004334451041128462007972272884121535392204867355704123966735501439459810123110224906239076740877542016913940713477836733219578137406919557025003063892470418984899751834179347918171055369339452468784636990222597282133064442931688567333353122261421299559780051741465395192738977978773336137175916025368552603456277955632197163621709200579342839480441886449987883393083521280489457839088768721671882803093163759681756867608818311910699186019940405402593708478946936046675956289348689090222025299705767293559960373663516658837896372252838485704086914146609848415671888993884662868634830861104093209009142055607000147420062105321451119936515590639952778502192094448517299845511062831499966047572081668620070505553487131432983853310537866921815220823456408530386583757332424792424914029839735486524669317513094435569604633205474123803340380896161511995689150403416037494438554892302593564858493456976911142590957046395397681237626878229330732282533633439480111402285590262073311155286400126559315744220940221858120590698359282928217353776009933009096580038022437964365369707320593217000020614514431621668770794720424190356383252362470958890701264076268095188955787614620336466176174219651123636026311464401471844398568125846007330060731976572139001183122786917338068595328628122012902234047479092903219723869558943422091098750066739852341849507032728281446745999744064143090119195373767420343877961127767885419302118294251915799258829047680512751363477866316728193340405405679951705682532857462771673162913981287321099606868034403913972949657170708205732197655767016767120710428658195715796806186045848442295446186122438577335896643679608328889281670521340495065912023937941980079123744154682708964720407333905769006251950964586752336424440847830542832209945893413764470029547881847159371046539841886312183195287652870063680584907921845253222194480510482987926600351208030732443091637741258150553367024390659902791671989604767652800016247171423015659229205838904362293479356409531577306575663096235874629400711464753961998084606544720588519590680515573175994517970760613003265553013321772482864209687055490050680341870441878808073665332500227938838569896395404157710134552330295671502195799910122892437386333408150747084971390926847363651593125897829569373959323931202391244748749798222676899912478902744805640795458990181379782427425574912064441517533695956145629938924804167318400799513614571778759789947755179219265333846837631334498591983176882686561338472439789584564218328403479558211036762576194447118933622737796267058863737220422962923997900561929026804029154401680541320268840862239631352888241832458648418220718658326920026293099294224034366180881978124262666975828669643214983371582398347202599573613093469468289366230370569129981007360912825161136286884358048760802094420045004381349454688274152395196483376713843423837799911349006008572392828325133507917474198902593446770510196854760930152790973333890381157560797945007933065218925915271722600425825113146435945630653681754988999925835962151222270832277775900862497436766552750266582387611470948956449666035625655321578683837479304154879200672360483872584585829416538084086811745459070030630242378030263646167447540244870391783400589500683261841041611619435000839749421780077689536268218753531953067628729311138948747735809769775965098834599570552314800378769524273438801289426971412195598418177042712092773926983221713144282286178307704201768096950728334594992174218934527808533011282373076013606781680643206301670903106876606264168194862095907192976617516480726829074045366866810050964398993720581149032307744123046627030735678874379793659419794862303440621634604873609970467480263600155587505844729320689415990370589460870533112131479373855047655140965088879437698577467896850103860345371348497536230158916264193169138258030733960073044561812207421968603920729316581458314120518454311188639985134265920456979575996682704973322010567358453842807069306506687754439946983764944240305836585749372193166384428283643599668588942137117515996079054599780448697745857126310998584494199020474426713494395513319337870942954094567066656704562754858991970827204373750554675792539342746861075641259054182368885323088175235993605264912702591005590822020078586919813484415009279486660640088298467977776991220841542528732395749019886801856737608281152217522116055380709882677655238482381687879037800197240724399728230269750222313934921196677856030706371563553527767198273031772115424880092762961358932379851006340424752468777461871133464667350298642554994841777736603434594530583120601894426561224473713684098260795477611356348682186033006138383797870118412637481330711655855573966271672762509361507256031290420254762023068989771753685398844241220695691081486771390777717532692015169147216553477399167154527899302330434694985060505042129652794556396900669902440226657079862752221413104120419109512104160391992267813059738810727653566874537831835384542357915129683728317168606837915397584414277463859177437091078369348638946827321904052871502225891382179710673713706596426869329709604275128321699997032853231293902166359541392261631239552658162043832872949442112541529809337599496641195361567849412256974132549535030622432646940088036123561615038257598663246459086463224800289456927686390511308027915008205153274023972720697152706066073382702203950338819814827430438689968069879684272175806444258058513638262891939613908962237219318529641313961796932892374532057818102612249500598682481116439251858585166546109499785720355218744326234456622684515539805467310186525648701148401875424588028867929551880733278548772448087546645239993448069998380190247965452027132703489327799009698991598200267744251921897263531609682523611029209206561964064697725449665334070151180095842239371436723662981817012909673911455887837768313630530218396776675017888329583447442872979062533260573267490823868954943586482113723882983442259740994019987541792028039489757341248636583559706940505875252474364040819801226473191565917278725259529238186342280187822485670986217024887881971476146351315320994210348239863461695087300934383020840063398968945545500129523140761931659113607750276009986460567305428254678827520357120709815520877463013784131125313897667301294675730756275390051620998608239112827027494051273845712040471882556275428657304265456099817755135734061124940528838356555701184687389072253804902220755175992123882744699870582901993336321416625257736855644165619177900646884599623773465476092753888656473464105757054026944796453155296543352446066761133815393220561797518200007932326786439425360917072679872002105257539607068274600023298835452789665351645673285025549180003692385491223201182701986148706788758800387575087251386980531409370314601137540481581850630666219479176696741076336875635396854180076708178602999411215375572982277641718911859646727256995339620182151473066520420608868176255377422893789484615141420657816012015796617127753699676496040330393313208735476386536174859169749381037138358200892830226686878974225883548805960793795623717630879639434114097935129058119423457799794596451163958630907812043967108544872261343791794931240342796610818401801235166339307554034270338667110102765806678014354764095722747729900124871645238511758714281357653108160982711255643607090336015518465564351135238580630682129461134625453856731459900732997148046925009619753401379426577361976609516680665223265423496697099348388926949923998474757552486030655340337697825707672247816474504689670827917275784593624564304998688622012536578718933072136496879336424829832874546275732209535888647260860228379460680716849033527435529785050125960794016434104090629816481488376196315117632335391876236900955172754398708081595551795602338842235672843234487979040973827202641112352923062640167026982272112074980766632204925240168117858089793940121160066983370040530649254074078655929403001124146249172787175758079965119108538195677956775437045067121667699174272441341466790786607599691698805392051426884933090687255555002570088234283874004281731614674564319805638241161892074190957795197298702171728972786850544377708740354162570047197582141482964219578352909570101514747982744538899709611458156682685680414111128207818151058503706962468763039299241289420782556863734795640294183481648181971322148334421021762458404972081439044581788078574337451801471982926328850064021936950415878513493863009036529465840846522276936822247593134755758996770898427172904167221874416929375286144977229555771278924791842539094952367282361589396279318263376947644660995887978579107256189490938956807790841857700422613358179293576569149707611963666104573941249391098988287555895078354967926361222330162841003806904244338133917171548008687978374877434206743823516685786100046000726192050810127200114575403970036966051491809067724919142524051802765774690985814052056212532857615862657287103369995951699961339901479441153937164179080179844521493196629794338755098130746122020295448442200509379489484256463519815727923126466864627599494145369172235867179808559879451555452806985756745004957191277758476752910124613155927372629210659329619436530156677701323660348630710244116058363729561605524020015614658614350581125071128899127128569341360788633319627211809776527199546814357295091255146956036221804255175358296435072086753485677852980926211056763139160668668042231527070249194526176414469737255780501697826633419398092375146514388723164921213434028939688859787735014616027630820992250166078886324921761836115800003715552244635183987882876211011408926287333498117186756537063249506352601369359847444479065566167400047602803601564769006779407396461166645183541983303867813303931902434251186456906286376872613943368700152948358095418266494521748812794138326092410005278101706047129686352689712529840635593300478797333133808626382940116448291693718586791355565852848137434446414442855060128274704131334798907599620980973885833150570736905162404865156424024030051808249389156400755002610068532736745392733981547777038984903475042687400247993088223755236483940315560091561029494175850447828886230290236429281607500038602097501793661532190359814443142251197948979721094087962460988765195536012795786383010702596829289335366811359677404013078216773104873523644864862704741866237075170347393013792818075677218666750379744085460389141863099751419868663766316885256038947959833094588369853643413496290767423203135503202517443001652692537470419392501795527929949628053426147327684062051025138143622723242020601264161006762720489979826541795053450642945296905501690417052208752345448383712854903924878465483550489064971380866297710142736968050743452067340255201303097886222680957732129271217994704480003485365915995832139376564932685917952141599102226896349629453305096059988009732376490474947646116480152252010579190938549653407394344897578579466949356243382910847350646109973375661228618983107518670289703749432707087946455911668601120608715153816262696763435417354817966514625615466914147345074285180619410465351405540345625472053547438936561580828958152072920471584086349443263110371314881770671234456808976524441250144022838139246698841756719832953488026169628282230248047794845734589600117125919146911108319776011459343608350358852869658793490940439137125480829987361152364534578220627416391499549270288836849529346514891628307600335250392719331440938584503745877466376097913743870588150850255843500745198489317646487438202861179449734045845272419385359664226058311689683148718455861043944341944640440650908434046899610609221259052045198651056625120842353017483262762443816890562512421628749708697302050065505752953579604930564184791474200601968977638084131616574298118665502759924514390156407205818695292278896730720606836642738439964283774114322631920507130673164024722260906554853392962002317950836804751780376215007530419911634798056650380594999580271325284987492556278010511825519802518867500285486237253089895209344810842628278445796847773626720964909240825107976386675424504822726541327596009305353326047022945984462750534882511985709282725999840398168671032565998339570727631887295648163386842924114991120421794966613909607134281208218244357059142734639789100359541440778560745930540570337106163157239884384805072232042534608497518623775730874290013798846172283315525004193659415987233572534860893610681915539037929977817386294517657758210842299473894605497322733317597081599412217578020272340448033903654910213604004866780554921993232353746979564190642208480028975427382248737219506877698662910349659127260481737116042448238593377977716305557755483914552924097983301182420454111257362623748266441993714354578453240810186453011375695368015421065655538622929929540524583416412281981622564203612601997812531395089575132071489030012031263377879590518524611146937373771683808990167983642928873375677207509405675241214855370133735295491887326837806403524668243214058444854387674877313934780092817000232111023315853528077614618154554474026620695483948822343948323672764593624714555815668303257289159049818242620533150782769831564368798013670666265463629107982899738139924101956994923487279844219925982670801451702347648332065757061617579107273752924934079437051734415719538471800884893695868188350493986530141438161295836414297977687119929093039184062241842141585881078270314820584535676520979528474642822822126819815257723236906321157625849896390164538898415686583825245478110174476037382775788958474460982760638035447311504209714638228265060987565658204830914269689751348302530070595591810368489210022101673505703618313900698483493685262061154936876400433393417491644556643702135661479088535624986328214431744549758517193996542810140963037404879595165938988985281769759045578177787158564221568610154506182912129651992292282836377079609526025748312795774386000402333212107111560881612635269685782694996681285906286276705237665529243617388018509330220641192019200974093590321943059431067999645726004342929251925528250920282946405993990319040896043875422208083780363812920391626569789071616110005144432969766923342348013071475371319362383835057526095437349949239157838510468986834024138505494676239289810244738314800758396039734324014928304827516146930810620603181438593423587319032476465624955907672710643259861179440191446400050999571276891279526508214194900158058641116978456281099739312160258136736682156081920123850113819453486376691893304045622001253728069884198556113773381623754077167073743600433338513584679770377744574983211932484023249947980264798135775792968768405567154363245372260078371397210531059851494418754862048069458617161189207546400062006944326206629790812473120025161726150101879187516943691171629010842591016294495257831044087474750890087867750902903931727251403582015748315402293615108325202480499104461650970920879117434630728325966230934136334839804604589397264428555146866925044488763099901914904236438391363958181003781059654047261045855403810572777903795583240863154537058069153800143112305669409955830590811999333089729098753103808914789408886189088960379010744160537256400351003489647004420618032452694524956206100460911191707030292327071954206844426337901912037943612267458157358014322456296949865740552456355347866576684879336625967064637867556459055589062140613017996215948422436044065150943496113856673579872255950531356299766259134853717493030385229350413642372379951820786457088969871706468374968717062850920298323472605668624802160162322967434564749307101646318939628580341208616074534137892864545337036996460199408515664456098683044634739900550839699867708503133626012419608408864970262508574563385227766776631049775310801438390536215574738912298996752529370496526966473115040757224040740532875336599038032439950178595199057891893102886790376902487549729285626266892722226824349927291613885479485370591769755783814059886593105486282020204832861207093667842748702410747233789812346906676193283234286115762601211275162017871151404559409196106577590075989737016148707712964121485534342809894624113549260340538072414187727672516870786385501346316730600487809378367687851632161310949574471813742545022427542463620288276533810130557893639308080104154843205341383553550297846170999983480602441138802584564486912364223724532286042456921372688996731090875954009009143494379758108245319348627586827784181162103719170341644831759090643775578641468015271368419548688325458215210063169608784263646215169497484337770870618666481225164170083913077898807964703415123138425829929016071356372848810502693663649902144689156958727653677916102743103785181688923818645670078095304953732506472270116853843336304256750461193789870382638623526634625168496987773777783407839925399637777459884267195235537359791108390408442166900431239929941261328489475959077575089692312558339604256006885493648485544943761203175392000479592358652300475347323855200259438551246101394700627439180589877637552190029636171073211007883488965856623551648683699378597410882879133251446051830418810257132766842852520658337938511567899285412938614737011253145388529644585342528541623732534137846362015401557952793634891077399272787372055601599855639832003524018402877914626373387059884637506223743618023684701509734922610507968327370537644863455373411002417112142501028821645635396640097339095755292236308574329179136358220016473911567754339770903660617660330962783217567077642857212608226576679137464324436296956367423419024292568016391844400076889177525727921600863753949971661692680048828606782168676850961154998794797475500998349750124582091921783434105827559590490131727166938370529638822052914912446593375223944291429925572702762656903514841810563379722237457973868344932999184336128929817666235705218869716717331657586379085502458320632458819523783345581221709761101393532696908429818923205104376457985176023373376230451113698931932056431040811599061471629908842017915943718265840380996613654139918200324219808192471330927239567039615602404458643751182961911925969035992717029506993773497887116591905856378016902059791720755913634783492712238251296564914925983630327093488077256442605190774781386252289173168635943128597729995633491214379940141345867715778545876890947782557636107857296712743805977329820856249546550070823715263054255063341918324495042698695111862321852721431304403984543678443302997144696776553604320826360435267514900853870908568958710566945438198691343872630131150139336092267893411358353566036169129333399161063983655165911492032141377994510962598371010431159136112386317281245282266421592064129317053096822358452662437922769938294681735628236163456011985718842419466188001974671362199106750281226088718342514966191475631113414486386553063223587460452438960111976418415598300628666801481341831696725170615293389110961124164072990679089492277128523074299218653034880323312943727441741533440008176268192136076997728957774477272090475080894215553926618966918020434233535068870046066371566081113210201595401080560524008854938686941291762810971335838405043253876700560661274292426154222832766597217851264917266187657625280932446040494104227503884420197502161655953210476454507346343710021087050985440165689694090594716238459248291374770014984560825486651692844748951658956093780466804512382337931080375379891168374070379764675897560009121940392342550212294048727393038763303762946568641368202077727289591051234817786379063941908920165592933789580466974911561523416368486652229486872761912261740391770632928806543066387086294264743174915072637124541878928461058020975678823611143038264703984431656777252297486794594705386192011396434976729031866284853947830697603594702961499879015085777040835028905717563320565823090431021327093195553875580874853211998573782686325964170416891946025371986730021641239116366792175776396825955991107233279421400771361707329213488858033109187064833697757173117274368089053651089110839375428626595373423486836353277127105675478884799238331644610485425737036635719682971770259051111097222687650175902981412338375521473769053417524936513594680243489276930298085701589286539468966117830028345472377365766640807840635036129035328055006257032095826005733100275825318946983898990341449405640205607923182124471172990177689187296295871767480933797759311253213812379485122141197129104476518132422880323678097289192034797762371835238830660565239613607976404118565234206018778760073046341566222553786224589548285564282686724660512837865273983905543938463438210849945119193605907094198261615000194909357138311555351474998622821933807050974923606879830815848822167154185113538661276027033175507137341241019242717269697308618225002350804857249810384110991740261601378162445531950537413381498762262958754567877808595949545617500224509996648352678690995194496198580450745392423459494853515242829565421102896767645352102444443841132034880901215551858483106265926412005346799394731173931103875406898164958840682895715197799384331103954638632200973729309187654488156261849175277456690233862041785577306904149249501472172651666851645675783002493323907266739667217032194325195559393638527357788007922611616939959765465048606467664125786280936252851473660931117340756736450593462707806179387890497789924861982340660175576533443397198530047027534603897116563913552306893586254950579957067934302498296855883803536264521862408129095339274421993081053828631457464772758199425228448780562527653159538038968240335077923236853646748276895942846031632935622567112889666307516058371832490903699334499248887457700367288014208108460828847163300871169597898898741681923668762976977512681978653217904687930974111996360429921492578256228745550277904730111221720380682859798906669498509996059276440439962022339559377006988704516793470734690627521255059535973796282573357140964416892204166645208123572141702117112598604211823198678126937904047409959379155811404903127874313502711793509860635237926198220009306111657381426360631916437407803324485212994174468224981967214241105367214685834982426027315813259945601542783621171268357926096993738777712321597585906076428049283396909186770012217391867772746749166214325115809081608308041636471303121412083418844424920883609238416214237323768258456179121351852127728549046365882565148504385732676594883238922078446882842746480982483236762350740625105921956209406304097996194862761583300573766616213340095545392243421900496311347921531615676544087577557005567213216937204611323154119451898006548985779558632999816483422726420945021952237612755003379574947323791350915550331612338520520560041358113430640933166515407678995568593409258745726066557587089091442789487285849249172671884572153013383091046135047163229350162023765088577107087286336972088919158527205975047371413472878313166995125008696229369856432778180848557401734379825007155747558070918803157605964849495504344702876383870411522975397298631515719910409311684014553990593954723764967449190535560737220889621424325200248228353913146514435048527579561030384097013517112189970483438976172450904306978300613158896768813765678259473732003368020879099984342591801814367736348431232578525068470761883711895007852850503195677692969104912949972515643481069478909546403967388754203761248099086617801725883431434671405463237255875528899647754365155242784198797818527874606304000051152193976146853800072616184449365702746254762689594866198433734818299059667102687687240811270248362193993591969675560059466266550601831033143514881560474184131195486605860456608709533682800327059744490637507293411100702166269077434735460594747760402821590792134256902662620592331684460208412360731230073830045780411644232671315085756028779186523407200117801483868593770828194609521894175332239300317142020566787618949085727592741402628926382248099615767475092957966031847913151901753549076970458631068395598877832022493602021623028228197706625235040469048227102129871705768732648570727199171644357081410337987175735578607581799664142864935467507357007577398659000040943864884618657423920376600196998035257166832338323835354577624902415076869424238502836486738482096626605964856948993932975682922947927760985836738277082810722150735564179002661171106949132319744816604288327804570303831897609188524270600797573039814288978899594643136805205773646909490036631109066374531806362056567134988137165513514593445222636457506116014709947892429125184076245322234970341867983703069280558528234567799025652898013314476165544359302567827679822942357994820261442412930290835696815005560935704262232133722288007754916699474178944329813794130638513876060716732152983498894963503087879188361292887262014710219939138753339020790897589020902303848072762251975134572180751009180160762737573343453338977601848300701598387488204222778940407853365676550123583847713667420896115301514497795778468361823485133019923143128458278088078830909960184052263613442385626856602171240467422898253501721722303659790616634858462947614681692822711672407741584914976643558705335536016985539763123573569986914073984523957889671947627063347225916102970990742493948567326133662665902275969293959440102865362433010469928132305960928137622534458327233656478846572034685084656276816450820679234795816303761156157375710485324918329989412199352168022668480008003704768843388821435015648728821673271984749580912815350138373950455665251098494223087423719448250222698564625337369356468868105823217354793198923853224794288582501732874462407186271247070526609260067118140883433611014624076900617415763083211193469452699667845480729281398219645848024721398212042032287508601779466088243397475939236919156612409132457228268014528412438753105039842778293913950055244144225735056772603104027724103018748221349743157809527460420174980823997152495859967808566426368714542595107337270807293451228614331433228561169521908258758151109001774760748528124373511928210574762817641877371647728329149025333626462370383855562873643770691244890167767384551509567936672731401735434755862400726885710254191214545778594658329456933235025252549231282130380899411723517744720607561361792901222077028702779362489565976741349211903958530383408065943256323435952001912917461660324278928744267102261940435319523285619204729578873306141980368068349492257850229190056370305014275050843131706173754849463705290775001218927125585113769473993653243126783684596384472639850562835222591450219884992971093836676526318107098035188889653792672500113768407419107523844985951461072787773619569597268550491740733364980567736845884175013214723169144283284640876730604086899184796757728840161415364031586587364423089195366306668670758015511397888542952980175961363841490365384849671308489386909904097956294860728247187764914438419197849938314241868618926940217066116069160944547185484828871761953294098678123412956883874101178171390589302038488000652285023994917568805051605604665497489158176822535067890046649677078417594454850326717634644912929147215367582025099249295329387049346627150808042536540401805662559380177537481123066446008308777320265959776385155805087771334548366807404633745701667885738540192375152592755657465734672061558263925870493994302353330416630366583535819653964434021661986524657989435410766555794943651528230825790030301734763372191898974076768115955955568884440446788121319270024929077385438921205231392376159643551047268495339329419523811769789000073273133706182611600815319551816270284656692743059385142960763801335816102116708012035790979051922731738042883314616158787145470685164471234095546312054655863108450760309800153217294648537194027535398893252930541501606538467971592911585472496708742324626620832760142037379687761764734002758940558015809394408762483861677838055638794272478015911824735818135034147545710977356882989152713634462832331198718371360301722202986216850374153729783415525063679115432918367264790742051895360588418861020225854447939752261898164459182541828059052654205205718981845280728476752786921165475356608639876614848778263307084784336416184864331224490652389207484346395271507034760931791704999145831586555127734885164901762977393899490874687576724162637742359493198119436898389432965943938077129698912696834364815087753460143290176242455869402374993679479660112642322816689088537013897940283842818030925900588501578798435452071440340317535121596248693829404441564305528065869009614255834064319045150902812008498992748303877036948362070890049910664582243695662393432623590477689014295134153889395463098187051709074918148620047533426808050984838491218080530707320098063617598982831682565434995879861751298917042029301950243915409917021638159602055653429235755683880062450505356467303512840011170021711105043454989702765258857564498781657690040026077351930242982670248947133456518920158890288941486182875271444895564378044847519576009566651376526538500043825089363715494886598751315701614166855492711500254324269933749063241244794239406532986133801163774833116207341777105347292511092216011307429564463986590148721147552681762101203175551230022909522481648554848895869442703783087954726598342794585303344584512550657045762393438411337813392697641336937154148618781257723788521142300183124503421171251018763910238568511889464568882219522580953872743772917515726974634852494808710012764130286522786121019820356459948523944418882573819690081209206393474410711802352661987131721426710374265779504513765031606180596671912922597079878202497578521777860001163053479593428159572545937733121411286133158104908322464321029221377254606707977921085605230203984904031463027357100318180088138943484987211220408504117647190253239462082107650135024619604876642681705152058499582471948054171475915376567595637517837356198472116210828918560648717782963277402105085857175612708960181300659757796248890770913063465274333433935627976770750553920343917411543487283909571426578497849714683707433681717729569327393257566977498063745165752771644413272105788603512379517812542423782442994765504552832111893736873814807858173069883835633496434638268017094245277668044467766240203210270972024304992243090690504079765677177776690444106054989776681331550359301536310506348976103137017082366582952242198689477334845258635664488775168639254185068966373560722924072248120666723220309653245116810087843494378026991971788218758481549723941189279891458197740569604172684955670065429366516495129298585683929518802532202974290075424258664096912329166056012854826543484034599555443188098553893908921760727822822306787903141758780466006900612243639058762537575369824049063280190675691103933690654057570070841379768210859481684781973652516714598954082376278227589538184186672117227580220063160142161368065323899229519282388611663981550968020047177272712805546121918285611658344724966856325260749918283366173099085075045440414798200506296593260577456861121038665523207663504277003261390859881562983340253519278982978810150972535964756147551595750828757940136790605203644882306407863232749700521819677891856502672009378997618124064771431594608544278679550893993627916744002414274320254516514448104231908151525264742942544692419179808476192440989296878782656165137875742595320722986800729197769681047701941814942286783844597009486437839045440846243760990784908519165014372963850033023632922556123816681299662060994219259973675750743072823066968744594080791313529744731289429241747064017170338465567820229637132694852362443689704638712364282536836938209140190706235207930680428339493179949495918198699168501727630380081334944585478449946866425730512035137212050445122540093667592852438607297771474156209945382351403775481176042335505623060334670465618798673730642482839759283384483362282468907264909067354229049458878991558099675534248584336027882075585751188955430161746768289307453693909111721947412793042541297676784797132175953078733032192571069193767942675464151833127512278739684503315681368816156908089477567979924640728134660938685948964820099729331078141539929118506311381484901437097998231123711470284350716352924902851773042941414141769613306120436613287024110685583247631738057203767298611394626265681240589642072444336658079031485941439783221248730068858564881265745284304525647230758545755646659420575372587499509829959381552524448464969033914897543749046448195847126314764222632667712659944363705163625431495344213625917762774192356192925515786646509057040893556717305690246074833981958850476922895616370948736382508793794149823024735966588624302062787893105364974022214223557237857645658105190551204009256029859060917962575055390213389795521345335037916926626103309134177671964177146155698588216014636388010860894658099719409163289653423131258198191743522400283276519853234863022080807450597896999746912187928000203107486215299865086422376818789440729800272783818625653871925754516798036345486972547574415897482725318416860833046215019446281673366220039523122699287173352984021149051868759979910687502681039776023274009698776156619319755318846117787325847005837677504631545400819929244523653996791900123769357228390642022529792231728844036542369791349997944347364935943582962427103045256334286572229601045177725867844483628171549774782962650935109720377669590087688367519570335964712682765961577293331943103054324401324481363629963133757152041810790927681846570561338164208365294091491073433950660496539397462487325139121061539622522290030109201228678119209931012328046168992335724878639357834695979206786985034210126191097228595451435478862852608275541376900302161601252732702584245589514368777002735983808577362325551549728503980565118853277823808878521912029492585707534377694933452631146936544111203082091118081731619048149190521875119755112709557705916588939160647567051560258411296527663964281275151044025656667872990222506490951710552214920872405037752485488798718778763884119005019902825155532472266044042229983592127181411392520608299450171478880149504837118952688871682322166387139946696241643233921120743910368731608615789638290011073241577694124757217411146808073861935631739151383813043066178967365182304636688886213676046019989227685693600033615287475319522934740887789427696324077683975943520601305075581413820675640485356062258416633957068844870713035635846797066505914607820580984038998196455183558624929600501538594783163912011426149173709497411470150804559441694081111536548657517598987155231936407325660377982321537644058864997795396165987360845858984387904645052106329987564553390267528250691793177994801792880404088273556164488394563140397176880389422890113882537476149694556044250342609664380168395456055500384835212402496797707719764791741720149272599442622829041213800466409262105789869628190317717887353897560053950585844481362471807295724390781553901745396259264198909641747947953208096658282356756379640834923665407194497257526719673643470689868716941648965051850530417957310387840834484250296914226267067964429148068592088577173665357074065946685066434527818245112779030574137758996904722297225247790251624835169186887301734566196927702511522582861366783031085403567038477581645397891964362424524897201326259130309682445885877440404510410348732536860830463025081406564434625987294447316426954273666449808795941661688559029337135439266065662333510375850920349702967042056096036199245103230987060095633639621288890007187935624490882038939570392762593645046976149370319631137804779037944847107826516400708904534075297295690515409716032771763473736497591862427669889215001412345383227561153140803162329522829355644512426176921717008629072476335742079792735105972190471881816602938000140484417591110542154011952705708618961693782587568521993083535595171110942481146784564785361793361425129355322656075871441906882636039320777469159443332253788726988842299635554712647985798831393708954239689780958105343186221495017187749549588667180776300523484366855807582573310459207155501056438634320909446394317246733326382934716090516005681961519255176872313858011853935315313237025460270391464736625152985315470023990443179569858871805759837610487672290118079441548931547901666096213148429319447603375077067937601349701697089822402493066149827979288306116183388140984911982750403188737636602496198702866436647052060455770855389972834649904738236415112193881534663411636537676690422897682550989500381294966124833539417334554628969192492604299202409666660449011289617136292038760831879971107422987484208066840394722821405489304843678175097560600117726293161406236672152067938212996686436585771325440213964448902531348070359124656069880893477139569581643994857584943466243476359884917452423724492373703878999378805334808962088273800308227877002885030707023022536296890260382764076614671575021821695181605121763666638612309248054205198030176209013877137102551952750883112370057726352246177507103365465996259950910822973405234694327210784117368738253281355521211474624119613468697936288029937107064891435589274796307157108220766539855000520581424899257270598076563186202032787518635873559603748382214074461284597149737458077258837753879618055648985703326251503631210710927021535981171769259874670078165371767037881123863847764553217693406109613880311827818116242352231816434182609161754107884196643527693654454711143983431122447477500211292189001002077291942290310802757592803479602967335266668025908438695782743327150828095316248382998806434145844173997360325849375610181127178145700840505710826554449557169231307686939202197051744029549079445412955166300081000316280514742576363909310429808366772706883024077926140917282695046249087502199817070390733269909074941592846662069614517557503292031019483163546159743654210883045201769918521778341193517332166736272789073509510386019435916372632907300875520495361392484703990229292197857331623217936474961787204998085673762988870725753192095367215913285826926491765035835726363061488601729072134774858598793758308267760752824280403027022627362538704230873058664974274886128721137017099710692887848113091530211386907299543810131072029989694856463055819767268321869295105782741939211796388998317988108208209298820940879657045464048077206508899722400813172300190995007789662702304002433316901308505583179756967780333145335918360089642747729379760198531606405171803880774722272350471647266790483608030293800007847446005524728627903334496141292317795768509589913370138776760840838502737619155238434306827182609123771377686245772784308231355041045378804069338896295367386151830016180884605806651296515849225677869548834776736910596709056967917004946966331303824577657244186758894773305757326368985993192278841434072003918798383313958770657335919259999168225267143685747797265831491294815062557863332948354646843960616479033929739492571828436063478103986713985245142338653632208920847244806594643909959240766449996957026120522087892263522101424844050257028651041990312754357730308977635218136147504520031199287678213867826218424695712019985364236649185152471809042419559240966607745796137192665708028739264456073947462261668229340186899631863146724522201511164810229460273832371629304901511207015625689152691281864673369830061444516867654257038078850241191882912770558781436548997147917667834135525124381970955669869803242616253188504192929107246254244779420421538213241799998049036419296170781076925999777078336528180532380642978858425165615231952815486453350351793573227877741963342071639156339647206101305181419831719383600033851383057443982344066024781102228628663663971428225088182228543686805305848083414109024959247522757506868305069656757220754700637959978131721677290225595053368865347438427225410243939561576396568727008365879100619385849063450883877908705204718183232394907889076968127473484906818531514742738383369535275764655455324025840557260564584236657524231792924832554427397086942912606830692191881208598752210236451399591928386602147390041339008609567276538880005827183895772875719792937192035526415134052627913832704986672656609642426526222779232941435794958841260063253422757483464595592275078045047598748328510918760548009452683736986328893049170877526308888169549773347979074762153710998777776570516951174436580432810642392202061076608663010787999470785591581167633459910889486473153589816368189180558419921365671035926017090873925948857896992295326858822384583001806980886650856816533376842562694925992448608498473433129071352578454124153830725155099994232062316138395321660230986416319253449364403563775031854497275106275603948715372078362124439762675489705896801487451037057290859451970847792612942598344447669681965725600378519110937628970269598827252919204989334229565877495551594542373205742553655011955147194056216543424663097129649082856716038111839308425119237073720780515267795114888344562127920460737637606764607147276591779496272525618293211578922632744101806486969993424048605069577391736465503895052862453110304118834426852220913044839669216509564101241883803708958057796850702298454207467403592843360803920162819257801603729663608417425528488312402942313721104390226827913563018797808808880319097571937743322862144206066680268279717883781760868424187030485044040952632291306656618111170031782665513642225869824492152525013104632902976732512315405678272935425913222486662606621587144247055889718509115115173622732964061594344990621673738882064228697603250633767071310352667716766875261158461711807423127109803869005060846768519632338711279203505397960648054189361614379638128813463087549523575168077740719651339866284999130142443200732827177565597918409900778314711754492415242547842273800911422698123660715100981609530119302632333745612850026886321970423460844273036038572745028107661169250302949945808572422892332246776199929856872340276753535453980810790839041985668535367980011568098825074594243112240267688580378658575067119484965246693377954446857576653418092071921365827169779273813021247759322064345950133730396196948078230222300694729840054294826090383544643693971812840885246000711470155467436101032703177209922071449085610475754392782060291266945130668623218662856174660059206694073013443695584756154490561253416481480867273952784043419332994127107912404081727600657121592057883613873403501184966841940018483178703144700681231624870714693112317573793452939685265160663973604285647906697505760871219108410036115821919752446499041839577263245636211750877293740063881809523733951864974927543591441882406991643896343275664254693167111896373094937657832955157204188872402215329116612813536781453852889822765690392875060306302340913497502061001292630848015487441089907817630645346752217672106516096246186455758698223287058585683367311836633939143449321062422348008831058175709593090347565843075035004776153585253309474964038231297388090312591419411345034561729148965764828881340196263684780529172104561062285390643429310378489398810792940691320609666522238607125495419344029969182331714965300348216794446342159926582977374544520401770853545839257061334271536828386896747611295689138098960208600168774410585593917362855659758566004541616380177113340225820524683664252593204510633749485436047053747501655031949261605932163504817860027983682906182395499321082075862635178342055229868442058440825549546683742480500901179674794648943717034804947568582693418859652179405533878230471035291971120675328644417858091412680787242590611478360982532670647165686337197005890414115499008609548927403701988838758821627094462098154210474174754723997708333093935302485655958181574207011866358236193401173429254357812559977256325930229970531982865759638087016116391808008056483035610681753148252927836394829770849700304341501766621305061194526435391653674739419275354134897723048303835135603643860461759342595328143080677436981075851997771191617852623118581305816267775188134714438947222664634669686691201013073817168234052654151909629378065938978670597497516380140082536200521469430198227110374765024427678157754042520209939038131334015533066178823610319962690951061078697503295288948676274613432067978522311970460575671982132483678782753149253252290282468375734353319962838816740956165228375660520952548430605099867305938099136014591678408788513017431694946802716943579128630661204321204056616962205328202872598621390949068748504881854051439079215719686772869376066816655217644145147536071965453205276046404699842233440391905339543647576798873138822462262143482599984229307047987860358810673844014054243733697247354424720089273165932230296724858123366143857263964249536175055619411245910730843024831900744993368511387744787862830439907345768542436789911612471161444929309991743620148998874888282466398644878680684122928690572035887146421812943951538792059413721091488508875593693065688897844214925288960222241180675898567419096653857751215332913944591261083477777208900565187199330049274130826949607279203904129334687569969459135183936423184124266454979856237212033988196611271998266831774020842981355031112152754383264614408060887587755678622493660784114658787806036271975040682743809571894707313142195595554324748149574096199332857579428682279517201603383463526526117355814414484437408426181778794083266220038032286891132400918735379497634318669438306452608515925927956147811656760227768063732966006424757982126223695493485982626474830731054957873897146974550266678854343504919293086216942064251934024246167238099499668565858108341590873215333929701037347136092002672415106251412369822729612033094229657434101684643824994284186720911613908253111788945316143148908946068832875775688670277085063815664220814430928627991455894835599374756736237924618195474102025458096811607695643573085394496331291075625840615207564182130012798719342359182845757664464849451383613099948276712287077405141908291955074202605802692654220869654678945786132629526877556985021073630744800838027780733086528527174307414748245883808377564137569518409971419758946598829138873461589871625048664569854885105477680772832577183144004369480412768258927262420258952761991574257718287055942568025409589125177054428214044602262413468390881602008678873881755253550080549777325237341342710130200594851371969616330725556516812888540668890237794114075654606033070121599910954339968758206007633500698600869219106969549139422943691930250608557300593825579780207186534477625181190556668719748001602358972477207654251103730237821728912920374516013470435246484654345976460441871264933580889441998724551873209387997005622490690112276944201873878629323089187318050115234343329644259651681074851165773755175235633122485494779730717489288539433224902357828470975369476967877665666193494936005396548418916734631013362758563389927509113229075543012207593311353803428773039266405538576229610776638184204276882030902629489665452715823886243051687002058555993109110604422098253400951306018379787762991240646474152307697885123364207259705017247179601217789186379946362966672302488212187884434160243279730346500288401803497158094181239499533580965049717744821995654168570649413669172053387923583987096771425718375933731289917493369248915400944162148118528314605235094803774196913927093661628549876081352243307543435257259628512602237311949088583330551967044713277073388437964504715769513570032474859079491004419613140996074103066646322694373015285098417406124954763183190256919723637180741971018450618928403307060851592463336208970854313196465179138155078654996485055186393229227836447036739488966834366259330512224572065583571823787317063052086382782592353841213695783680501812786109628011451977047482157276264141555933671932814121289426842931188579216722429397405784871371157804502293352835625630973245200521357879699726118162760232045107659403867872564398077673716213818308182098465535128452081536408067699636517990020218108687078058193067202107555992098121985747396014127482125902913982048462752861316612600361725974494211738859237520815963012540611975680145862994444337487506423793815300219461026942775781560887583426226511240666750083386906279885710040539687298557693636844666923406052329237127692783137293552859771077702767761476310327717720600199387332513556724115693930516549753990956483209573567738963641797995229698622271885389596773186346415435685554478247390391599687272951692120556989891911468444266026037991749527009052392876119650483125637050272456843348185971142604224874940688665147137125160636271849367871719874407765287286096439238766936188389892380850516217245218715811290260721433512583334040054112910983592422471206092026015591209107860462630107340792446280988922643312936145868139199531773101932915634758253858050064093173087354326826453820723709380948111926070494847939289416280284201116735283410198119796972651378854702846632750298392765439729229716272287165080237743092433160644948630085026497384710768200923475758207661332857325712390379639455320136613319709374649471815548458161735565557363275938402991260510758979364051014957769003343880087451826054476580323597289028255327451801782168609636132013378488311369691210302759313987080784502923604722515720098901111767137067526689028204785716918984395097896253599503194883855439126137197823144620001241766913814026965746884940070712963191396310317203543326638861275474820353609666323954948774628656221932677931245051734984667713111085290110860787197237953950395399502030353232628565990870431628903114377752594157897408960503305673772219346746124823893573771953588285196491160149377819460557115352298578436685657988322139312502291265264929185589560205554899093860122815823565934881771168851365024713929611584212981215751367718999519428425082815800896775022097854923098070908330168298556788700585207182083642201719245511068867112302707116163991876314667334359778920038883411171685421095945237037639975493570176975267869555653586666172484659325059422211277946737631101872053714647706510541312718251700418610648181632188770598227661679778615351848747923569143325274570254116819802850823839673440935718978617184103319872700882239756594927413986248628364071481046531044090986925220745386721306646622608573774503181929071089886087053030354420074478708865868563844941436709403662731278002751195848647686864589268106684475988710663958089841237289526378614117541905208620824524549754632080758690819348193252615735045522046095906608938964037372441428973538197658234137408675071175454954981655283928011896751066567033813960320811868776437010789095824211159010633656179030734160496138701830704867120021777123193812705996776065414200101840850406088595858956680841060322146668118587551724635193911738312966524788190670365120159811308880177222784602831697841842643367439234744543046918991420402884081484379529776593196989289490636597384343684625134080881191744973796121227195898315522568415348631194650819966446932968490104868930185293789153792488502772100009824715552871203043354875798077706961239451446219098276019307317542147374366156819519598379385181517984077421692752270104571934557641150889809953965306524561814058209732575960925092704580827057711813581281890334886726288573096497358624024227454248796974182685151095352228623773698282715083308865477325137606822524663958764716615647574674633366605290493281897520486371500547041468201182515535453001014011172665074701380594650585773898010113854672176874819269448674475741471963060560281744208319592513112544134080664343955271414638583802109935155557485877106205515795409387715104128629824840331836149511031782158982104467861543951359882834552953292714101859740475532703292525292251704638675929507518333402735542286415240132112384093280059028560123972785600147292087457778652734885697201711494129522277684373785793327603614254499849289657990508896778994128319173006037784944602769987469501404407216678199999498725261805384356276401894776562946782871764802796119483843328055436067032047890891087078660863682382289365556349284663478061661880859062450650598312191478511818634035295127978184809407844216114374990544652668104895352590717268675304534793737053258643532212317389923831741525410044931861736312933709272877162597783126097945959878525025982873094732734962282700583020697355405192384081235655853653079395845207145256799721367891734914197766320121118683076114652442115254223815684088264771190656247380983707974711829554471967600112948115641152007364210804612564621049585695957909843269489599519793427257448230630324036332187410941028291925595020341611006492858629535498503067432606312013125644155066673251912040496765107930257204048572302300481406941549685714118976071875506662800020145325887891784655648874998483872833419697457177462117966353214794814491758867710069287372224420562144097694284302825591473301111996837890884131440968920913470144534112699202463125241805249220613475370553639653569108013648280963834753434514126363991744291855047503973170097071094727431658413448962540767617481780978467604887656454950428800613175749301758350939095078820139914496608736367006561441759843757727760355517360596151334501906726318820568597859995446768134030539837518597797149181559914218112429042560916238655594000892768064868343109487699215818142926650832705738698871252888364968315300445680564811072082038220763485915055157666707344236455728913877365484765086042535265143915990951490424623571999437971140382267902829222169189150448481334361349381535962007859287168922973706890856618506876402293167315319369550341655330359226618257784021198552792145861087149838775531133904578204828955830595870364601773069993050965492738303214434645492090296914632669682145590829387851091340534019137628049988066598395660964068754577021819237225273149134541307359685533169686312881651792848184916329128633472175777613649363232371622853848435661922865452695934230617356586180780594150800572328032752545962241236167471705771667793116938346864380258866742140453329018396075802513099464688167728739020680076653513161259192090210482537613262123981191254177137215592927251884078021844722810453299990730081332528833537199695767512202892743453269240754561956515141792484701964883930191491081973097065120219302160441222306017816292610664171258722071859132877787385281793806014338002005489981309748705264546079989367995747800372218215141686465591809323568287259024373395586913789527202159431769183665456372249763121825968130071178258372825831796117581228733101309324485848445622670436877718904746075079845782542629999080448584942799271372443998205720015774873892300859735809318306480590368512821008824347570239041448283913856306201290713150036778188195831845164822186385508142956570098134466870258845842598706158440509955501007886763538335658209126116587200679526281853790849768588000934099134754474932632494093487524573908497080786093292763009140368495054054413450294449987489656102479290506530424352144357470577068925244581350568715459316231662186403648063517503844020924190399755955178371215627006625653636980325300634503879491385909105494531078270535376011364104323957741852498962623760397115941076485246975696977389345145730480837141105869382618246967134904620550417191413007648247451396716212272084390493040240404698056464660283118180433202758084051226095368841305720454234578981817795966275229481862832303378547027622674552385231591339055266269740986513012316719756406344584316808300606818824284255004147275932706903071200349869740648687792298173836019486471145832372196170669893944774081562195064929244054830806776091981945988141681611317558429740182730990696663804793101174588192997794412605138335999420259498158709746941685006922320535818642010252984222428265515924138340292266371665603950850407237157104277904582154667076688214149379705095905253919341821489866015435448848479477548199309970971320896948615189679713530641609787646247748569017451652199176609860498628135803507299724497111678636998779604895245038561875194139920067242114865892774284182575654810038409205260699629636022838744583702728801655711470875719563533461113907178648760142875333456281179415747001721000582615391722489287075014149239241342662912081945678053844682801187804546740407560994756789656837794990325676625076534634822069716677657660254072641278376486331511762029246991857205501145706347502013589996318862905217749025773294346483386715686788660430285019059408012332462569222166008389818293462248883744818782586871351789424572622463455776347299172472663565972671160974352967357999426888923633277538214761437958426904853481837001860495500928195218565549179224416611145905704047865469778439223419461612148511089539661462109416920288259419662135523661878371089352185593684506856607754143533043852684145407659995967393683076557733254856360484011859012523299380337740919024637662032794282458996962271980427610754495515820078089386822626094036073285046887084195856890482405699318103067245847391006175716334670794043546378058618810037052473851203609563416413405085632995831813614439772749782892818478645511845355659964718142974572842577552946341450976130269153692521663312478791372705857575145584416349004134494890044474196756860594495515927403912152633747680161198603731081965028692484646407440947080185512330984752050698866904828644364201342894865434698557042287798833212963763066947768564960737573608794911668756234133141445943996798641298309047131452598454830754372324575647139676867300062965692390962004507921218603023617607500190238574416723449798379500018161824490941014182540423285372342662595192136407950836679351393449617397756093883114181526660602789529294909163388565347039717099200659714398818758741141171252847235878851024850471741748846536246930596620060775195192009982401111411088826692397399547388628670034098456942724471212323866304596184612799435324910274875104655280315532637102301651105990002619384840803514265543910981866428245864976893937846678440225549514312285857658009369315553675542709398780433223274209004048779742948691203569752841918821816615712469855483118845259786673350893330456111206904725646916753602864457938598172019608256280230378633180539390369918943772608515483951049903679819693300492576018782136217502797335270435698618007312219398606923630102722708704273435005537394193406305674572705451504454701293354103079856568796657951931803932228635074584859626747844106586778666434835218161404747344351061416080052521352921455987206159540929126955160912865708320324415986136362727563161924993321537784443524899656138634131401887788824543951665905359445871981368767830395654778339170928289327236289585313178306127961877170244232917368015919976266796631548534527279724657325817964466987328228132153670894822626545208200529724288441011242391421435057594313353077433613937681915634481331367631056659368808786623778402632874152192824613257010515219651994279318401873606404022653693455887577770919998694867358256384171524750688524430048652552028750663651914018773531862571432709050700992444679724547477469543640548108066344862241539695071636205056045873396062603837057736467139891819579537130407063208446858106460478341666501390157986680223191861117665753699743724093540288256005178678567755239105295625811670318535178266931226982048039091167786180159445955976175132190844740683351628733067830357768911454753849939872320965746658484698854961436449082553572691227050906168735928405117112987250240062206004819062702771710092775352409387574174503458834500834984156885790863239199823402124345879196563849911398608936812450396134387645536482158044042123275602460545901090856610949340606183773823175887531279641002360978000648534463091879358845950449545710985368134307918167285815223417106272053128501222969845066978089167308473864841173776026314892197325147515794529793969030094514572045178479376718822455462031632595481998810367773782371950966698271328234139128856499186956553380412582433702571335524507007889215371676248552165861990577576669037164259864147189586675137883600751779182827658318741676575628463397520231551300417687327016023588247020531114523402674805863107605494668728892996151758254768136206242397963962492453908403104645062362409247510841315611388606755004659203236496705273199072482646923464305057312273722070557630416052559865898161597814232872678292938941868629779007256292249986315139048310805211972521844491439807586568848366605483094568354834687483673477231887805491806042347418321045092971090048678525385832442003619152243197675696833733932754747265555549284123777727847793317011481427768437644231720852127672715847215322451345800279683356002483615769574741211783265769155783929028667441109135597688969384074254390514730259707567557172434796078673075538904564414008024267041373258677832988072581307910067761996691341014631866427376612292480979414442364208805928393518800632722392936185861215459741846531015658337345486987160373595756750228732899839270679884910831183095542112539635455200178757807880653434383374322214472315494854360835214328263504061308157256102980534957577016181733523342197715664946015941965014371646331463547896660891165711715470073412071113088388754581973605377767243148236481185302471080333144710478077113192247329201000328746417060510652601899813567262643293665626385839901414481522876794402030868785875299427416225771823330328917139227351330986988599429832264823220905802607288189031450479606631362638607776184141064249339933519427780691050225881223406186591853622517649095976071330049226932994401014341865250706515045883575641243016555924052134468502779738485293286644316312407664108704028350244613762978405472148992256441038119914013530665788796150038456451337790260067105636439566191544516354425028482810869692732203199524830571572287447468002302875359761016823862840396226017376628867106988243182211791088793195766493794707671678334650206046878583373774484707606441298981960948689265149086071983080300648056583431130786849501309049318864705641178426111554788608720487355871901224472538629097172550172989075850628746469057412957577968881156685155829671840320447566281556582208499156585417383380677559570197001575727941436745831975652597868313595238924737777467014210171597140335529489982267445381172504075834512100217965209038386040120002017426824368112092322906747580462038355808090054911671068156829843400696760461604725395781596991425617565712527607453395294600966210701460271763052572067235414455716709043852141899530280183038564723068225622814497927816826577589311493085139406399844741615851040409932091821396806832665330406099865980096640263573673166443259742853218078853851999959154393957803193290226233235590862859967154295586143839153919378464861358383115513155706552849075098619335656279579817557085024429118747586910338867090167420711755796646477417821698997438577141385277475203466727290266770494995984863849440462072712004935787917686724905767792037498797390205357766687700099675689751557153165412799998840065601248761621070046568624298361174549523525054740276007393808612803729712156178182613589197766697483740557763543918674298518078819401083161174104504639024303742677344846244988489419794426032237441165618925944616558095462805625447128595111299691740535437455532656512825517642132053521915438199234366595997265644935681453116025688554406417681414007207057642966808071782294076478391017828306690799360054748776998524543192810985765025048720660629056318107088149979150752426508515631379889090172729323902041994242811860667128972816412240909867167000650607431721610728488891955424628794710004574659994429499825819498408683938037282127135095637248398219753619793350878187582768710838981859696172112698672972393774801012449948298705671250826755271512317442851581774822708932751604831288056362994713795499118717830176882610608130931207833412411696849404178730718518376382468364012316395590836746349545180989006400938401182411066570093145990266082273563988688013705422231913280308406738951877020074526773450441217672465104158887598217627431167696820656472994724066731692249856240380722119898986125698436603490026941032563313527760492388589208064178560070109759962211181223307350218742887901577242672736956681368255844671899259774778452438389643120068862638725218591174656455279110910759659271007623211986135379665946910427554716776703008291925810890052097648041188468017388566245668361670416401152330013983361228767249669697586739819235783988693758327347069955816499235638268521795521844710795519871468577481703789431694891386224687705229052233465094531275268249780436558897412956183675090156254363287461672234005348131341909491479330312704180323867599886832696286522755500773125739340376366048818673038185425011184042055691099644481519713716950143805354704057047099845529373552254711528170092368471869130160144797552287726813986620120093018872735978490662078380589006952919464575685355324423987924094100921378249124837242834554128486994089214493308778673557833427137445032593500395428573114342225318027467184848954086401121845235258296470996711927436758482112418467159594074978505416691613555380712880968823756008204224732789139537176938868954505365675175749330684810817631016656004365201614072690408440663619674084569359288510985808375117056487610899334311289152904693777509315646232443229924284437076330466633455427213970718991850697438982272145498950626465209112039277910366831958914737175480047359554685535574948734830345102056683960809115233384678411908184556374262585718227822330624941179654087521383379589958283847609144006084783990628383278847859094294104942153571769982658345306598009350659760087955924275341362824653927973395357698834809950215139665399549507970587513504759841462009265200504532717022828694022433373412121611414703268340271482559396337006295523732511851178729842182669994413287162094734073130191873483979395093778063138076509899809311541871865559425403179687008852572458683881410484122046630853397092401464236783321088658715240710761828042683792425687703275035392439455777082643536923268706300414943180229280345190506012731983833586387186604880632640837881773091924651703781143049005174422027319338321794641264624113827360320852422724567633894047226671436387768388655276022175909018581012314098313853716110610504478792652850903512103734066264260198614182744356634776941906648047007438047861637758156087994271496013933521765113507544348388840283634604314324985102873624935056262283346994952732083263373746043810123829850711605271052698331679782554659496589722101744871314770114157630448322309581622415040498898340701684307177022029306116463349766529714580224005391967024311868941377915900167150213425648689483300576152907795437510763316788133312986893038528684156104544271745569866374016619116214145490365091719524680071422995882648370322518911633469797974661172657764417915811540701982464385718417919900491378092896070477965133171448946598104822995223325399577738638784147192299634625272737234871858730049264553086610686525008841466366823531031497036034977911556210604360561703833475364091686476897094738536970468172064357408377641749426812041817764128894936813519610447620467048571625932768832109996389367063920780487155827857905248639884730430401437229858864296494765827155840191112628113734859434032249837638342258532621880173650371711621058114507458070211255795599607189384831268004963932817117399039944359710644388500148775947201280756763052940429354266198993489449526424277148612042658991571289482098722550166292744675537994690992973823218181806897500361637013563961443681204654776551845930208464037311597722329323991411711865758059985769577433821526365098443471894166151996581400153951469218458891150960348129139761181038475099462803221407133852264789215875050410069694008851388762848915393489286619304595595279571122852209423061756838667053456729543554041271610459884550236328178590775899950521306812171092708870177217670683294217901580784085135537221843335733421483421800254665358187507539751773789071783178896416976648956943328054655544270969906292899164641427066585649504672434057704455036750982258059575728803183737673449865617315577487450039514545647834773637647044784678166051019662419201289551847828359252618916107933932864387615901044930341160974578518385763218567480398695469724193460692832059949472530823602830166056814416789646299565639151181561913329026703772859160441407005853973225394044822941458841853878700029149082107354707313014406182085193020892608130472818927238614463347993515522553252054520687327061647631108530446092078270916725011882638556331450070464703614016806675127934233082442253075750595043929256144099547480359963248638612800189027488421819582737585066820449716383090630469486784236194093617839319458110766853952222743785911503469958355473232006758736307544672783084807643598165090793169064689302929965036004383758798990299783707423513894710911103925417470900506230767687980761770944787950332880590834538014834347013812119351204864992291457587123015774008387493238963608106575812853172441732382917981292466045844070648592190494542192941965970301754516853270113468349921800028859490689715181813817946075271331936273549150161877590858361028294755371431578755206306848383026072140358966776424975947173156617489945137651889072069724299509608230742963036245264691081513979441297344616512052471538024449500880344763122694117514864463518067245423184050917858770987434543925511623691949388186374095333041938709695121666512592635580502722808641260343450788418404235537024104652389561609651486513204536777078300525176227177111718494832501741015406080024820415266256197400916975496429599498189649528079957634731169509087458073795599699525870897779687580310928671381460104501775872617250259916483968815709473340127418594316860618138339364910185250419034774901414213196821530586560362775479568814841134374325170268492854485047246489413264833258342034834313153656448333299460842723101160578298494301701983077311581936063781294926792926511605016614950360688333143512989171464653363733592588985551097226601097739716540377917339873728899840800938958606848527716943863129702280886043151065732684258554060590844578223870371786298668418181568779327852942192108712656253584202909203586548519076900718418309343199231483802929953641625198438568427313841378997648524451190878659685087694780474222748392251396954175866430225006469998125782945743555342401922615052285256051342661208091661671887021224777308323153420676834696473759599904581326839408006838826237538288930384335594528778522093733495415108660615770069750846838000102463502020112668637684503556142950908420358340749838793432452042619724136560096553134365126003716942222469369376359476006408003874448281025070974749090635509902443563673454476761785339469701085260329100703838495525492210913379248555551710233964441953671688373620251222873526972959665120158711969268606392804071747256767597832790966023502488844554155901467366933568952846529706067058831817205177951629483392682543602405328208114456672701979565198997466722307431387078897111361400717495031944104549280835118860717267940520655769185135678952363157684182573224493291252762730551571595585485321191441693611835430274161426224201040540867322036836459367224240717102760307024803077775021078765655482446491716770464998505858205982095616283422447208264083439885050534929415336740751677420843483715344873033101976645689484381319041794654579852422016556622999586339391801476432254201197042090937060237830184545897021660494507507370328127747946874902565529800816282317831081940473311172502069535801845255274550213825874455850452748339444019729241000568121300263050651727988202950767228833163453450763186324990879052663838480523236633081044977283467879305852523236939412048959441677909670233719458212829647453161751026311945155234620508458609394053828856524906085850894512084784715148851494217831379217448868597873727827125106383580043538477864649616258149730237648855269522780234781472931180793825314089251659182673192618877547848977590137732872598730562465217171035351335549708977904318122009207435392578157767222816816980079244609424482404973403660338803400318041066241846312589943439090515248895144867230350723379301922125956143865054351907660217871942762548469069246233207590353507240512560715660231238248584638088894310980209697479419618427726781430549887488876620297698927520358923901655797395195457843310724792696229391122698871317959422626802753286488385405627068446880181812495791014041162122407209023237729492666213799940581516455521647748634764218332994262604354250705111295431248741869328099661816883975364934178818020236770962857780331233266474281709890671388426383943799595813891098578245876471738374356768658242174955619214074121722711318239921174311169815114323324701740034904982752795819806985854561981762754500700017672660412085185677204403647010193244034660556221132227986077295855816761211388375427905028503009001051043536610363170362630380391441066147264868117754962325425545383623264083603962272838790728094458887541259492746835506139082239352493328624045048947065318098588505257790057631836690976277287633867776864316849931794229492958964555756474075294217881714965518319223133386169656428622037754983555815033566391669877088878346335503472104144913376448425232737384689470723756525962842758773772097798226242309990582572985647920595560179293808079959945421026108423683557907442886431049279513280503356208302366386600405601361963805802581446812523524124781930589991998963222714070536483506668857722721418227905758088139555472208576378741708939970504226260836620132335147086346156972252851793866134157966885460135509162804979919993833102878150059585070832199379588168332359850032750483483251135261285760404906418974640414427621749488974996601488549719807285647971152806980954021841452372321046440803693828505568010733460850773279054029532805345223007096785660054451577187743451592468405574863165338639050935588612172368739458864517121085634361123577441539644714118061038877943264416475268474940884346506173494161141786197133958233757583266888678706196199332620085951028955848306108247214786581565422380206944620275514893741694738208460130612834357375241449539777054830331505431000173657168134597746744470268472076595070120578438351097527437271538946277965093749663139364344456323268822319377098022128671996965418737673326561789622949542162914073121574771950302663209501686078554725881350966451260959715946990632017822102142669168331741277323453991264173774302317731275347827456294579707364773491690736478134551847803263402013882601939200145697604874667411091150535930673167185266050645588023436544930363398110122499769352838055422096508300343305468625313967790230342598896779620076367646563959664381103318503953166576465505850221387465123540065563145482181792968712820534166769300515659692622535647125794505270667060501672366517036008679987763021621494021826111814160101758167913411132619206697465916936279573470608120661901981082047682257553754214735246939650793128582619359778655296667235461819290993276943151534128478584324038876655521828250314839709437008189408616019526994767420819389041624191427708333078961824583493827538245632730732119616043212328775540579932990170921579867064052438731610996100927565989369919976558736937239941286724056233405914163955288618443733763127330713481295674671766379943862982412498222286235243281543082014661624498137315755804002855583277077013492755454628092477984151242537734214939347948090417348236124142701696730366269643330927701024420546172374640886344519428469219765467279408709251901834482731773315039081845405320504241458971580618804774107363478106888550907915821315142567332840294054371217786821480393513210102817237722077788134393544255393155843864501225463702808474683840313709083128985229629679879036206987006500536374941313438635103190089667151867335245924121846953164813727008833904691623581033944260382634820064340164623557929528087417678393192613601792015032307019512840164091604035352259657248758627964263667202522847915615781253173990568786580524663649285927164090450031738787476651398516151787727985024075319121195619551363452532025324996383131790084118872285614220747365678417840708972303665371137057897882611620032409702355998262108453572947583953838576069454181069631840744329438450987360713646492514870080812421948324795073216856745119669764243977123489801168838816589332127908984502254993873367449136385625578567632593944340238615829026036950735554544041235627799440743957122995868496514482307519227766229718140574857271167431969825034929200778766444357503055328269258112804050130605529705434305463980225147176823972688914694237744657975367334136460718830391753732945891200327921853291197691192726698362304888851651686286627161033623362718499759614871176744812845909450055727557152786482868971095073662332445295739343048182156595594057024412652329438694923575502878921894329279709719801806427634115762783741405381255443443933150787483752881215086023814780041602961055515466767556459396349909888091723501241597178551763885504962676979476701658809229300395611760927872248474182244280539867612012442394125786385379459281873423909055696314884959750823311743463724576159691211986108256866647247451790539973613520098372469845365820699841032958678942762300053845521771930479242757215613378821628894902925918912988450608470049918734643437112249832779124395659932092910110560141350669752019554088941979358488864181545871638608772151381682460813374229290270630621192668764373784100488312165189895243288745417490866335255488671885051441089166056211367159960306371733485335207237432551951761799985057090669545838483743780013469088409697981727380018734180597023595305040949690696731660871277472067403924115203543922446826926289975222994760766214845014059763652550452537935974110699577562325258077436106311287350482280566253542094287718740977584581650556396041379942337323184718923247510334500398639305478208887532026300447851461953990563455270067822479518696895386977974977997056484846748523335103056977604284714452250506248917184455772383991200886567777272748187638884835622279985256234290442435442474758899467569667316941932927158427206835853959003779296173528885946238148228616825608510529051474231215224580080296103616265635495537227549462750971883581338196920347696121927189476949335362739731429621426918678631809622704914054672759578020767873825083744937781761111688285316852350304115376422836245045793424105155895852670604002252158262531352593264537843247090399446558165359326714327611878781904705263565170922512097194329129138809029886269202155807041671024348991574028127683214857141192669042120870207572066080030955294169192830084112916485295707565015097689648329683047168429792630371590609275631984336707970860660222132241681399320498042421277836267444826549750803519147192833494717380330764359411671635016731416250320161973409095164291934057067959597924071650107835230851884583844856355501439842155180506988663663322531019713741691942587749911286493767431414251892733201344842252400021130899735913616320280199432123529442599584151522224337433731333003108239408616351919295751778737784269398862552169080268058031249948176536006514824611529445415472853828786683636335833714291640259337799190909994750616127796984071108924945361264063903524088310109148210544552916128404866780839913484136475044988200692181640664224757080365532679555307485840726604354699671773246254935023813340173351815851576635043569007940065265554570455441476069098962326507603647644958903361453706429916042104907457275123355238989267139794705602429928954915825407031454647279696044848274747745493873114208655101914628480682939698602236234874063176133985146718068531645197545558782890639232962810247889022969564641085145653096606337797320239177556298398424947463140338907785623445427487300290932949800142220943165759642048515020599719374364014385700815868203734349250579592522945134959177865799384080431389787470396877367448210570538103947840529317136481469563429744995531404131030791880419035872749948650211493115448198733926919692908640388467712398119444886352631112983530895284856259068223522654312126098568589182063364457881944899743310591083290945945145581213081540475269736627615077145372561523474350259744519294667492106121579060330131340038593983947076024263671274637557101930683701267221869471777044879834409518752616811348054860086795098723601899058720910259834519690436762577367490344818140667589774522147201175560165479583514942760063991092198683276811029340240086774362541213644987393017407406773283405214200211016484710124628233168650903488127403507202356278532582348681420936724828554072748173221638746418256525970693783517004305039113658674340719207101469172484221605964721470364733229607015241272679012379702904769636283753124606900058309738319521029101701106582878768578136215042751207949491628029355806566546259631305883335271351905908501785598243756609024044386232141611522389566126206404754273451884183128206648302212126463197706675021119817842090786181069656658093659670401940421248780442291261161534156216168077125450389773833228003826771544505041728593447547758188604264440806582232498159690394630922428747063167872843132239806666029784646210136473876965293768272116892845436978079639811221728845280046671858703409792582452925391186592633449602181509138608312605431740026269013751562819648357038411960865991188583697598511211696625045522727381078837703697066833636199709578293159419488604528398048301252548130754513403185822113751376319754939653711563499287784736270651583567014530116048287539425437665954135863924894838669630846165919346942719322921132362549056932671274078022734514481215819365266740531011312143665364093853495151519642634435392412476938809295409426424290859812965511767852420150077846635108380143019188764152104811685750055630564357390294127252919779765089913783207809040889737910898479370682648635583320955207871252328696218648868293552682193048462316997558715268184887396834685763534870528919027482409507122948635946098231764460588255209989345900880899925772993851347200034528434379444740223644428573961009926008896365632305857548993292850116531892978763939326264043267870731041582556814473985659224965949923812402929182060514574158099955907286071385645488241433586099400712049899905945338625528199513544854577950371263205475639816332704883636002181618663019159197162158998842812926825818378719262143193179613247291727463993822380102307441215137916000746411020428546275983230116273571194732245424605282751213122811602497094855165934835688531701865145095950835193477841153896093875666101427990089624572713310009562371197795006535914805578673695305256138882442370242380232926425145283996748453440697779832886135278461801226168069228913021339851182229792790232887187719638883323278607374141074068403914756434203385276527722040590971200254441189916148172800704070922070027841127251329250071374097120867951757978295179021194556629092594706755780404862061928865327920171982821698520507035744649597117727476317933984934451154846264093956602630095340865679708123258227951243879740930715266641109678846647900938120360046028652608722568998210200118190656768962592029968770217714081383601983597554950024813174919659484868198680768920730465087998778380219935853293378965220704030116030167483360928081113283598135240068480997488185572701909502032227985128546645822967238324703644941135052197241519931839267341535852960994519029198547257658597196392334465228611976216286285969020024636440992596351537461124909519980779104646320379649367548749796836574635812976870898689097370875281918391950489754030162706292686539864932411750118039768018099483013852116439509414394126655558164898165324096205721156435100507125022588699637554165177957307881631949622065894203713745960363313584632262569316642663016284273404510508532299375334220355464171811303228884149555383220065960370709181417913638296089407447021087299996667172123418714884380621792917981440176921147093702660080332335206890275230329794134110171257854513151817878669122528319224327434202658560641308604056826150337331312672229133469304165052930217398527376511342551499282825023118225671368978526060721234921849946390429801583697433064862007226639621793911640751463188026041610317910913686080099365905921030527261733331619860602426070522848167857458594310385703987208478512966192151303089475441404079746290493596267329796969593522780931114106065463054365475635635555957579835834599989333020801716479696277795961763806738282005895284456877871241564947203892880052307846398124878941484759847514238869682225811299613903024404373702418918056241797406870980577855191852981498640709268643945568735059842620516621336183573818379417516243607355995471389372849964776558139852942251379277953092360471667018018919553304649360286678655831587626031574964337772648174804499232489758284770498069339788886732890394050851907229489736142103977905899941699838690591053522403541765155911006624968763093674466472007520429768958970403155463751863223542857071250594712227445156741020187844714988810546424528953957185294880779837472414265127653216103358899683051321812881074672935992959991416814615113121872748510911515130248194794119348886494082678404883925401284642248076106784624663324667293369190502258650008906434595524069052543232840090674811371043355206049943962615143703364784084377279505955177743905947850922965101274771822189508710590031970511541804965831037096460500041396931451535163812398274473460775634197390737191405147389681926163881105601824407142449450599759842613955743842445074397546307528543593655940252885021692436091665347382053161926740561496654475956948450193243105775497052590050550289384997125834883873775434368815576284427766886681740306932253103955835616228311815494209723366093077525187181469659899856967391996755731935948811605279174433502733153244280977115519648121635304947493290338738900434386308428273256878763985181908268475044114302277388663388325916994591056191148380177823984076884216726330270205903050721041242748274775577854717195367541459394927173010346289025333658984794627311100725710342811258081888540043352160488451591803887599809066267503889706432438051799618510512709987467529524164483342964562931439213354455354744028873225613205611604563322686367950886972475374039961127536902593897951201222871542978106633263410223848631063307297160917611382714172126874228251746488414937158795314261519225986831272442815131287071381576165002436145638710532790800806869934977391622997486840385738891836696447205275351571448153228334191351938679744775253459408090581726354419444047819212332713876643471518726901040336416922597783038176882130948256057602186448428808006764980465286036393128886582071504716916844780216591804142704267184282148170282974274026660018550643894507351658013724782259760722424233646430893003589035629664409597031734203858682207610326389206473539657714445244543231240041015809166579064266103603011699883487280964459808441559578630972456397606949523749203300137596041986091130712622755232958434921881395431809627505272699814087565191089351961945564999662367365058367169420521477994597413891169517480551880710179774743729966241270106811717002544047010315575796616011309947932090917892136761203733958756725268620243016333812975282224835255398980979214372178931344399947023235330059357066002541760856662942859535740635176733169260863140522417816343940017268905454753374633889176409134772826834519986839307220187149927965169682862503762320368556708711951184303653428315594051037127294187017842863520005184843453569335178422380301863751043689469249810576804731417548007084943088398691109438969827500414699564014631777323706328471967584397788666576667293147053260541627575850848757660035640632242995318137458408753165818746834179311229603773946723647472128363061166847983285781395720867274466586045094365631090815584275556635045489319673680562274350373907957753926446697835903522614396192583788907464846445093860837202953730809211269744046245913091487073742508624137576889697178990402219135105763272282021219194282897142966371192199611820904675659615341484663944811389276087455212801095386865888144402388549949613541865370903150827829041759827696230596542149350006276563211938073310068196801610195614868045385664636275734492835193290685493160582374682073887805138328058672807793366166800769636583240513523340580967602972056451089948917648392821604939691298878893817213294986063042620384707498366484453006956595351197503032746810442975829324465394812490004670863074308068982713196501557957229556512714560226766573609259605385544448903344246649241357002359860177514180277045240391621980106269189504096249950351610692561578087732306952460423916206326321908012449500978498756051213178120338324705957425884326254200157913674547777169533062686964311941208732717047424746155199600777542627678814458962966865852110534838739557032514484583997313857591926523193606609788249591566974263855423892082543960708385535859620005922795760523397695950443958808965776418815621365948295984233599292252519342242505810801216244770580555282227045063268549561264492314592867839465023739676166560557818475898579266914241512717735659104949883547379099954417256635680514582567669056344592123385533669439484619530145924668389032653942193149049596022894791059335371821587070307281549344048607722967806010738389228967839697827985668077247047994428219361376531522444594388039189746757117321367381347718372362191179386663546663253342961070355450498676407702012074499530837020667341864351333227942064255626021331874154878617861268843213545966533464704672292649861132155490089564159636183327037059457224528627756890579944672919881001893967498231838117940963528855224225934310422040900585146756478687190362937488085342249507780709364301963090594022783838437028417777482591882039224909198315109059088918816779676405141625734079969519246990063436311065835770313870386511660696705362656001957633408859972209705557299413171510830118715541495772607224608140079803835478145668744942843311648395243989436912943906736887265100894296110195498382237986364834856210570654685461546800604078143672405254399267335429991473001364308505569002523559109562705089974010844629591939728605376610594895918763090897786246605051016551743470851100867707506374815057462524431787485980252573220300644850616047220015003153702962804093629270153861762133057391721659141084720222663062250287530094242770765404534063599663279421955022841081812351662884365615339297248219043781891758042846255629137949301547940602567586672410055017493627267673363981298517376115463520121461964556197787305246704280320866146315368630691643691085776403730768751510951725817685002352014107717176731325871333390925468271470985090779487985399028689271316205373013799526090413739747805185511803601379974115133022585345828415921254420063853658916069358610203967203267216504580856486310015414753132546819746766079013330605918843712551987865631224617298017616224629612617883025920568484784974787871915869017209635759576531495949663989866238893201286890277037639114203793027640125973345308635469773326804694557731354554176626564858697808415402199070015965815039528343213925434001678346123369341341759230140210044048889469351759265989002017091153280864609650217602158688089080603653317158249902872361487617501629177730861506394251946800032304190191194399673877156162849509139336997281143946442858122333823329973116073271249170214182611444074639565384874563989406204659261795559061361135041474387194814406477413878304585739850527809109324722666668065704472933685328186628802409656465458833332403767273546982504281436679742202619809011024998462897546469609298627239197595872735049207472122013581185785547766144989273217311050062594343561667370280190445838204763745035618062904449292604376357233546966846574064170777413647410390268330488648099856832206102330134641967800153938028415078915386593475069688963447900799266705559962386414975744088596532736200266984217615979425242694406999526742130355609462026253488701931211446948757322603001640254722706110606364330576419897280350725116379775110737605732035413729503166209510584190623260010977257046649691586180914945214065717718988723054530360136576715979249151237454039312864843369919974890518594878936200969917227136337821055910272470712912347149495421452372578369737506636572586084397018988539601481497537375203912860777211567232237822528080111701227490067432833839978777297708751897209313095176785712639032497689593700586767303487100281061656166352289426698593111851792455130904119692531718610971608572018812003235215306026783863517242635710187375500210187808802594137974448993617209034723879958038691938614321663174530797823067162083455997942685805867049997124063619327927775188984177403468674754688456539488754306053103974989689560880580039106004078623339493751063314695872030458408227548737767512501801458062287068302352507429422299903729498205166158482609680690003193813954041437089410732246112737718726186202905691480034365015889708813746861415788448955170510024509571339973464593534319443811103674101287246527633684916759791746677219214525247103893865562343235689282276085901167197751856677580193261078411303514719018830190613659793925203049753164383663648434498293963409906188946248971717840439427482052721189256117168192566733481933214643573890390150462936577504839331709482215954256984236552387099195701956994394794715542619560267060549811435346427043762871072533081925186485049950718518535548192936398779839321085565097599050489665731265784923904980033124260655360109140199115885537258660344479636530195496147016588336573407241185900972295286781242370796704816298254129150441467018153798633738599706667010548701110760782683277121207822922368788193278092453268859549441957891900184804029705181940524251181169038528064807593137688571181655964757188389012862083321427071712208852924153065878335669971849631132168617788829185975518045884795584609437366243618670663267241402518049196267418801866485576287375402186795677884415226448023255703583458188343523913966705824887484710453079757282246554108125290790886363169875238142771728249630984260455982565913738086549528279001606635746472277589206626636087920745381072050099137908058502688581751021168807777837149441416235074889755542586772649588876597554393892018744104600246460557133116315074457079520352271324393482076030256945886724580518671826707207728583176190018161852422439097080531306371586452407334999933367402303281509313326055773058444437473421174249165780305220137117178095816998873687473458133865462922446765586155241244574090608344099038790011542694910510171731461961447382309860578178278708325756670069861101745548791899171077967338691829951850398706744483526398873876156469803337976357847698144316496293954923253686373683448203740122306564695688078221280013491540500203438214774755118392274946518572303585590509223411645115533227504558515778592467859249593140453061692810741931057855518977502600653446605954220121467655608838277880645756614128550092477978316432277985372413760276273754803151572393624383265124306403861400653642098193362716082912300154339637650338362389714025531641818055641015946300093845577665366032629092373491206652395235915973485387092732592717726305194875374838097546336937170732061208023146516763083172517426976359369525766093235826971712493948925800959060842739534360298159915357194794928858738521368284230613424101239177858008063803764999144513444442667368450799790656630138901025183356526355443036520086618123563792253205027513016998339797914686302161622497655175588701047744209418460264438852384233648893129361291004735133445282120182997987100556768631212976471157883455264319932354726936626279317778119287753945623685187474138166877589422134100904265963110043119525695325736112644750228025067875013810659212587834416965026408957556353217012358975542540540162498073352827841842187888791888709557992431223605503635517100078486892670374684474680416111512987707680395641887938405859247261262654271874552828942261315253480313047260786006453204210162985238080253375143674363192278455074671384049659889394378112317653725141006530721993788654446152616952226414173563108145103697848180194554534640177603884110580073755710453796278498527208256464488971606516849587627229469719870229988385083437579354942822803251034036758291964256292925110313726686168892860757481612019002566350580387437129551053526303785181687581808402528649030444939072664938998267995408636371585371772010945262002702318299571883001103838972668068034587158582397090788928801039327537350204832232974278122033242546641565718185708697178038896332802711758518458841096565125694773745241788249011727939301144990349509985708161910523227164690803765939922217059629471654000091981378249804827595975615959914475783288468684395903568277294489485452075546283178531005507557364539665629317621087750399983081645552405036307567906148351831204507332240105034075517108969097683812003697264018709182606122560339075902469325716783730975383739249000385391389361485854423506317242883805448295839632071514156346080867650160669905621696219189569119121698087992334617300369264111118911767920340265716790615132728689577171561058074698396826270628157991078433868369363329969954191476206376595510879452577306985060423475436090046060708285057349423769634405175854813186536672625865561037059089546698681193456601840792241429482942308681375174463948177200129634395519390492661521994793369468442993636943965658727829824081921321554843498437503682582603038586920301813902925487872170040763857797121066119180866234407943616724142244144273251354934041701077429272806672074327155131812036202958774566652059403661465991883451338200224399107981998272371985906235303311383211079556864880281829164038920814808138672631541100250034051988246248971435483179772458923750992652478326510996352107179879811902416557625522854917374183141972299225899171452389600148298616295986297827266764265223308660679547226156552427438874226736784964061093700925717864766198852600091610260725310034359263251025128671182105272999662255090031455230395469625454736407474966144085880012299849763372213308507322962842923595307860780577811912194346569690240813118952162444476075038546037554942663015923607321805272049932670608792606135165118753138206872720571962733231695198619160189248848913932187131644638699445650828663201997043571905862374745330334103813880967215268769468324822502499531958694094359640502379852461248961471329007041036816086801570910506505277713384500062378370742258725021270854601156921549926239206239641193984323775971028599203333924693729616306459874214453677334604970005211748676046537076548610105256679350060279136497654582400337331971751181365983902452204652089186357012432651561867822234836238851776004183301190340923815950259288092228435961446183727796047224046847000893918712222314611960009105632133407784863576070553857442496708333260816011770242976211695367414132068961314824599073901472071689742738694338279602448036446157854175045900404376555943711808755339451291301251004500459813838392993010126416113540678188457788801283489298809402238629321042798856214294729252163943686424531722319585192314001705182837298767308089536124655354139634257010559935653366710191027388376293651842951715388707932106864809387740351076585628816075159646566851103723377156389597254345518879078058335182420998500389733172575418331686080574895524583523323391208971325730247015974801282700524945945936881726591561683249149479598898712958480240626681939626716283185911064268508849573731990731189702016306766785255399975668441974416610161257641447607665188244475698950372819550572983191430354021328796626532982917601421691871632839101401953816759760730118481008465467672494483269791111368396561957372217593234184483561408164807815458487777142650778711066025037052920697766819731577365472271491495922803192428289977967498395191602942452150620113082070024984715359788629568879615662821872314057581774884063801731343661581650050446813156850866969089337212184514975863606267147085205640971423121865925085061729745806160817232974301817874996753983418389616644340034879727546271628410988890049004668723054244327401108673256529061465885809238075726514963453473561533772929105994018441892601554287164064810835671568108393943106101403872080643464771120022096388160983548947564132742035147490706561649626705069021070494583622674792797259943451196281606822558099506409921734679745255084523506931297784511648697108503906140685308021739641200791974893598457838297492315756733348750656378426218777143591567266353288320012645384333042697901324654206100792167216055308674010490034345411678375595341705640038429283312876566623195085848583391582052913507213281622336711695604611627944184756120664939451449517325047611653148098627032147112057725966235779363027207575208652296808999959571816194122727754747890600441674171558797549986506928521713222029432409697483793142186557859710659356657564519324661160684065043637938568666273774906504342391275098585401568898487649479147300504088884710503301862886941995311975479511617942295158317373729114187450971285670535829266731975335097312258746227875233264001832580827646445147090200344921320168133270333117233926311676998582428756667208161369463706304389777975913668455082720713219096081838954243768785714367724495956887526653418602370964314301218233633962131991040943466973952962969682489480753594496201451019457885832521732051466386124585315459466098372074582319771667297618519927954609636044113838436468850264625096118693548189151123337380605720646834044220523994178107639394158485599850979866872305978188744145646874550851823446840839141343072532815171417852324358026195662431495422124810116171327697096268411352779712143043183583672500220101385941607569406024284798456304734531642248260127581697714203325210730040568891824462326183968126273077965699761420837775564176786063376710814081076794432215385028385432827561576702775581418626650038567458757957702499768204729322192944159075640003879034485345447404197412170207351998937399321761321883106048744738181381198100605781115482538305551524271684388784389205306518090472303276803465617528363305862305526426978469430393825696462005102941640142419901656935392633147944737803975208667372694884944808117676339261670458301515620959845560112286464576410775304893502457402299086085555774071404485759614702388087624379939970855426528142072407203765156607502176859704923458974883055319544764648853318391018940897903353577869088625895230807346760083007412666134286829635470645285647389777961931995825277631257517934919251177483737422890524185811912192616378440895986345928159839290700456299477408724780757412544528792553650222697862121398716878691863704269832574770338854642273469432504791294293660655906709614367728539994045417507009424051690509739045413938471717307556726157067117177888119494458592285701058427914012753078667343163771426610983724137426769912855461394290526590529243193692560503510212399952443877971765629200144363799666071837638852919097302823407596292801083337445050210446701140040319266262774622888737183385244364415336777907023881798054938335098677220642688006076824391476012728283447613059045727934573245892025251554624317814210698660651886194484615541682223253891108003767537369008989412538798216804425771943621211778775642759785386653861844691477261436918115305257061182721578170523225265992370218804556274154640471918611558430879202661404939271224977193929300871604156090166744805015986876772853649191671004644151293569396836738933034462786729660720190490682377826919467338844267381595557015787114602882939197757748740765166967597354341912614962703568797520212752222452755645535521226052877127663771825408454321363143555115764117892630767692625014185538548008207392091572944081907483815364221230396893450238617853558126202814605026422217840784689478480396258363562607185019856930143017116084994005058663025497230170263052690477715152821292382330901033700721756705569840579766846687284410262001985008978241921276406904822236553573672743124841150495644157027911195150963945039652707170617956421980293200818292508231208066231371943992983150071454890585316542912400185454138506423787677716369045279462961557063460973394215403342832330757546580848460344693291083173114740711046945190020554454648996949658420330613760862317854838192795143118466141104761394831538097343262691254124940962852475770941504284650118071722401305186592319670309739835651676163528561604050180835696762044145181532897047467996669426871829318554336238596627972113433682039272869170499434478086147806031415211791262535762773385276628713217596299165989919347207120923060562040345402738610456697373751411085219466415695672598192640766884162489099862551838301834947203869365624678909663945693226417789243403472031562890897052748734754129781112068589358296674075790282799920228154092280259368058396092880052711075853947581929375144834199497694216376781514355720249876366452261334554062060544333109234086955474659111935208090576207333791699088922276279819409410362742035133258781959263000968830915398885148320158532439103020575458347029496384811807209044477823454344461253322043445986322055633260067721636763106952967218530420479279872881155126508421429374403604519188312124926512111647885333483228120289965756145018775841744335796565918281237779928046787875948772650858720611717945004170912853381552784916110452861303178706130814136653674676424252769546111489659368821270081761044804266401010508668654411538684135493441896202026717365975046099983442770520672631294997364234059064961801010230320409004476728179201577954567547942920903922642167438843604787367597085128381460472455031984111540654235740099820947941756471657931513016459204129778619849619035285048243977169904914352817883712454821546497001949052476354620273712652484396384264517475914172978259773046744157739468853391512091380018031919122695694710970457378768726812606401333446877596563146701290499859637776397398122290922677733138712796829596000524538188929735967057942018184292233613449169062798532257380578139574824847507577443111410240433159235480723088232414058222735830559551726647452696928818130914974073841834184656058878825728059992015486823085387716465881622106353646305835711679805111207422121352533678583990021358596149839950945669208513358083047020054668651951135467543884861484511063063739804938553910475535184675495886256933511200649784633345196286436799089612939862221955180253921488956598729198677378895189574368062704247119684656663973388270403767188549511667605211632818709505232342113183240136859597378066968734638723600618942922522463470527792975920074580361051489057200923197558959866980636005934548023304632114029623483138697154943873323419208471076607215761712831338138206338347146080983184126058046229605244006596442409562122558884612681945007688607980287952792106332598556441784926245845790016449767284102593949205562260712221553981773658321675111541436374166221121705210640286016918607343513461375461406004074257271710717694674934986512295054873049924007518841015431124617411106896611751699647611175449598394513999205959733172893712785069430409024892979393660976827076770575885268240804470560364128187004419637493320499546109405897934118457882244702645135917651541752666793640307516510668877006376877714693216726415961886505772212650634950715454821174746302417377015246256586423929003755270856477877652152571116396949746261189132903115090693374846759188186835879966771250096864581387113635051060181845449829512077113941783563685905632261103152321771902468682187444586347639108087033762783726220848279869572381994450152620810868106825998930196237033069442493435000161416880977682358563044478688425824340098617445544327660443066975115977915541522767223427175422704157918422560973665978550033083457364350394441350156930864249498445148365012896798719845222696684142669990277820607300840582569016221175277059408300539593057969617485935580964904435021531699911408477100976284851277962003899913972346865025526250656418991608405254619091232493843034658088494210650233405680446491048846919761824104256140301029650922440578615326339996712581935152334569379618208334809910541563765654735588686045475756924098318637901046259594632457373679797439201065750094995100129028979370790386882348662004690071630420437493374968634314049859668589968684910416101244134007966527771948557804830548887799364488352104428719826864289578933562681670132254556594693133896444894055488489836562265594107406592878701935118140393909794322724066084020149323667336693580178882449588927797042079360774284188444134388269272547962131019893320105401489729791841875982205442366226227572718729664534323656227893439752428649893073804934013129505243338747023659666944264716334818955034960224302565421921558926345063314874904800066260351144988401704772710046776761541879743216159761011768953895819899702282476350124785842474245996832402385672652572223424063761204226980312389056401251761659886766344503872423377547540234252538270791197391727683406504002387405306078785057705243036921141737487789986366063637950550774778770684950354553157350005729354273861289567020427993753110235960319451421013876175415924906757810964793895848704492199076997523008066379916612706362058566116383187522429806919863535640302866173564093263713277634406194100195290716479785493640527532403930697845794082712739877182755772970650249599128788403266128553832262308051592604128267105394332024792415915830585564015435297925188909027013099939085945544891970361279841399483298076158505629116574984922164656385483411197666997963402139546835264400218090835510655326117937514817695064546515877378228981765976569764175383515637771706523105757205495553643947484262488994928543373365452934756183855790100892847538309290130254116210914787006225978718927606569467550670099495047781946164582823180587881339909182439096592947203591990140937222586596940765462121152183340372679003618654651459054533641667948792694334918847242164707903466905271667024495232646100514980234145999698375689517932502955765044575488188517942148940211034346918149939150857608919363761904763633110699549100144769679514868997293716713790474153253187061178768480506169164130838154966991461708353339370366552963427801260231925656551317655198398372868331115824448911392721717142640998568989210237933947351398366792164267696840476621964797435696985128032748286358801667769754296527278161651619540115710007102952620355547990203552339925582269549154768541947624639068873315346839377063916795109848384826938992038017685162573543819832655164920510549199038687832311776055831522912003296382399711511011464432750326309356091640469769439017358721386256701696563896821562498425083761646916126394219408734695587147547508407040445039353668480205569982656615698070273053454454139691538293397763595944497326019635668055921065741692416299192953950492790492766449477799574210691292570308052006592570641547284484692987413265931609720549228213782381261750238202699783660407234668948649800539377445940278804882994705104737795811904816301186227686670290324659577844478778407933166926733732179684789684077435969815240646936393934324107437754442940388082969904138293960518947168893312022095704040851917882085860116714461148278701324708895888238938314507027804143321040730422872871359825263363987380753811123649941511547758797743483470713044267851095244528005152724721586372514283964022632950920750417392003381751681904022874888932407829435052036837235563915687138135993986170361157114676449695959299639375266560570048938819310356492553310406464828715749212336517486826765512441469704524735104919211443018113345742864723166728504932372872645009561134833192887751373990684190069541798984000961140719110174196797028568382323334139808073590168930478805047813927992835633444690085873940260046992985137579877734670538624456499300992455335349352156947904913442987798743546915938999105874601843025277755125356894679468149980834032555963343129365185429445737029769869686910883340158584691178376485919758527423963065261197084406176626650352924731070513967460930008967414072143024661346394984474587224538737564078874217378077356580253726073568571200518249770256979415476620036850441784645156902119136927644248455034627693226798364457858921016679021935762316687017080322862593663079713712766645433734535585102127736678253344977723702036205683473187153910867433427631618142873153834144267614566612915604362614024902151488186403988637143926242138168169281124119567943811825615060042699788179807560646700201933223341576561498592059754994358142893707066132710238161634631739500523619063104650511960043358957180446811086397386214902601342135916398866855615519221180470430429256612111001627576780231754448973108584716334006191927444275761158528502004042411585827144484746911476207476025962089331924380534248653351690149966701393995174323440284954851968435611546578593607423671837995523344771354900945636302098587638357055605824376807699992038615953545129743486632166935110618505929429325538364611081808323725161140389379376383471433094556075041830424904610177498286291707634136743173286270262035834635417520619397785994128128996318227056409543580432848280818516033860337694396185179133295766227284207567050026652097111992529381267050263137244216985892042467417995054977062443016169546484725848725307912282897680019218763625396116213929868552576045712756695167249157190617957552747063794295564037664529954937099652387498253308350530195060081716601285162730916308587741568912467577673736311180961059463450215444809586380299849261466511953791223852237796685699909918195564130552515476667536987765536264813326060018793140061186593682081221700808671895773054561683486439074312080971843565756346336981864911468974812102590917416571217305849087227051699195121823069506529910258538336753447806454989850499135708577378464780671948770830145469120519890273030498495523942358297561726133506807048120566806759230455551732440299401986416251387904185259948280028126707068924340464616177604395417502471993297497240428081282760776632872147749481551372366283992271748084314871218438556164829729983969010002545395525327534696326277571341041883930703368780777443060297912061424236085148932021512273767805216838799516421368711230546674666428856311925329021562634758040495738144002806204400113102069412048606306576552493414575416807955883817261830633108694316246732577366922652823131339412585632613687270318922248314830706859720761614322517059530381863553202205014152536882607036473176323047129400902074744187831290683831138021048571704243498315532135732462794777727331362290581520897055154672577788231706384351334233581563852511779305849536727881589115894819783670186280936144195582393250323873405916199503706818236086115103430314000746188333915617783624175846853764024020983071964567408699083034495078864401439511716480853726734551661787558770072194332899815243083734849710818980414771330235960125648508113696355403144204232112851157845687827852556343815976729673753187757267684804246747312370804003613158780143181661932723350222411710381468376819492290017886327992242526483778029762264181870178643160715652603620400718389492686944363026932366198572689048944394522841838516600241312720532922060927369543968032826388406604497642111020742871633348622531853040731964392526303465599554342836368129828562880794678598160625770833079868153716275988281425548731784359686886045801177000619734135444461267403326208407257571880098800799786557804611928960442348502796842545239896098194894175781608357739968188904983937205840870203776097757578076770283547859880515607203166787136159492775992775202602553589489781906197048015938012613500195752346925143376660299040496956407152320117804400847970502623744176500153305917871440459207583553945700468998206589402334014314038147059746378848765364573405868108245637614965329583337721884596485716149426091660656916108590650592600853480839225032235014525909812469004968518672527353761581410066524891831215955824059448468957974129458421078659713171511004401486701628579058330402825204477342762215859382222667808877354713492636279887606235268897761068969667225814424819182006338233805143225258435151817794164418140007272799080030074484934053987439608407912767148698086549002144977119565569862562472414626967285459434256508426951160250737220012708835788175707758556468847482867613883225802425193850748634290037779865524062245576461729133644564076434431239068232261807660245907024113785009298872554490620922179565774358553636893682940668383252205613154523672406949808321647957842840320750889498255961139223149554473385792072977712880316784984025629527531752511314808513102447272834888561139973672763427113514383636024547730079525291051769975315024092981861166006326906977769372047297112841041141150810475303667549666988457919299745338104915106741144122464193446488181029023950912700227067372553217904605638968739434483751149583547421419374830477784045212954297907089657046782538531688146826970385597908721912836853169835200361353018124096997538900666496827514918906714037450484087563786114089550990442791010126983044683832041103689224050720689529830126718605565261164108185584927760413172982927912454075299278107241242918296592303020311220968370569348527168026199753451818905052459682199731640644367180751263276677166065145927308124676548264736888013843601294900373121647225542813517756950822586259722188759750843749257976930291899780630230332802442402688189257951589215010088835205445960130994626988585398635580333723713188612327692189267622968451386469667432193058834410229180667382099020452527368510488242035491543526971649636070731795790335696489852728547114716232946077459968647318090246110053677701087236052725282215927956246241217292172448893725148023173479695862258697947030718988396201543306027185568585420950189973359481177950587168755391018424260066412528143252296305854471323858509819946484735530404575637303853875081275896514820661579695711089464450066456252243624448491162679887679998636282954684965061865694583050263473312920226996252189995238363342007811949230470902014655754890267150222419462987669231932964381026680231374730660695264710015205555466908390525302947590780957156750785986867080881367136209422377893485169736204430439844815325221999908813155970497539471096733359307394640572516840227181850755014307347393286413904199835224111326634182132977051593038118325640621589917871501910244416214441761878787078012439521362157686716717444889764611553004119049796948767334780960137704680378920085985049296815544173928741962380136161297549242458298135265336813610578090432176201203411732058857134552608797864303061748977571726350858591673093724822585075588275294601696473093810659579083101276768590745043110480677879535320950932753111524196035600457462479345183769951117731591610686628411055907723414392348250760839906403345265539390341054628826393334685919746657520757315660216419336061080888686310915087695316307204544998149629867864962159204139140632409225666534861328066105285196947743644864094271043530507596891866434286881347344892076154275331485164472637173466759697394515798846643486231665678106742873972778010222510375364280634594604270786535103970246992159482297390118633787091848452857625006294220598403710728093899431788721024019510628488344098770439201243286603714359992777365394877421734369929835452801141828768987573843482049202729844369452193366941487238641857147314852270914179669702208189345790207371989200173787534351920847903401280698896463623475938916871999559690725415962096915661092468214008528207818561104617014436500320248163355915216160728155138170352474070182195450212164857282197954013622470698329527966344965858804178908761734213793331850685809921354357495944702143348044803952444947117635425195501844693562579206715619811109795658137594740751363440048265857334327378863315057700994605960169906696551098655883068287144321244929703238629475054607330529405280550041555856147911668142187077955109758738063656794210761546863144883683359424991290230266900796356925576127037498892889542366754179364620578159767049576318064657489635292074433906601499835717734637413692181630045561638379278924696090554885383123114344992740205771836273654809790298783663279534688300006098998005414733485518029574223504361053661375714677393076730557378326542122776295718609540518214478098584023983792374420987950914060519694001933461274786010806907170705114510138077813046989109353389186786933078058298159161251485038651091761867048515975434779739369582441867051789407403186361273885682312675404565796269596839143246605681656232709233135267975865891080299871982249683092174894025771239597158778685376044989750330553500381058070356232403715057558554961374794063078775557464408676680101644234645531634128557063716504023115114462805321648576204360617608091774186096738405080027867474041511545186653620251957376452982218510503275847785398084594702298027134503895638499217655791664676419727380555218433873460118364013602563357797385285352012731737667765152082713641785179926448694326075586053712024747945412733293775856623817279543962909484223435767581188810388624363087021704277745542398897128670667716935012170112937198419665014478439850988136396085869989234471838699209982253246426054241538625585560468176713742676530389872839943792732752404903044572919700262116842708827426215369315394914916665233345228797952954952591604416438528836249626480668925476236452240416483580860077302044627995140644225592342035641720401203695322289086515944793302318116207494281676261601901826614915082977793245857995029828775247342005248252770326630862952180895901606808752559840089132422854247135997026037695297203868948584704378841801229351210404408944255478720538411866547009797085941438671373559327180350413722688234186323673092982004541309332756565139182137242696405218596168541039376792438578966110507000508845992108685411347090079205828319918208384458498043785598357683896947155984460591571979522521137062275431926631462973029365532662257452887612944629590945556180279052239056312216780273656298704256153705282197679861501600749457640021238355745294798521246366642528734218541484788256702800746938743223097416242844212608353456035870758847269122865386894550865837329620546237288162787687964848074163713621724105227288943698954018492916327900186874820147888294948998341829455547825702508247219244865734062391179701871019222109626996447455438826512265828149109867841962675481007933981639874746189953796268641384734615625125023167112126122166348482509477488031017343993065631272059282331374189061074114645833516199842421625754991071795252216436438932552494084675648264753465756131264772543623861182062891752032306069045896269411058854870625620406982906431857018299227394868365273824073783908580888474315841938920968947492474353548739764042895196186213896318226976549922176287392483576311895323075898013200181299776815166924499448795866101924265417009148128138754360823915297394698340873164661983295167521480949912030897932169120151622705754725410360382512913322881970418489584179840829782834692303331315895055938907376463919608525255990868109844873576337274117749553590303958499809484941825686079611028893373737062014581592928676286682901052045946436597792108122091196358788708237587077101020827840321642761506378983030039017673916067384988792095493246416460675810730027601891588007020100620522383745361277344771732956155401691462530177012678396464864027214124534026319234641628564551929701533028942808154292698217095872379310961907768115955423423701525400009035924287779693999484528829959785019764111313482368187181083055978334394794059037647879227664876897723644742750088573045842635061680404693959576719644970800216720338845388885868483996442042420617563565211246625684681809363583431426790932062638608526829781370758724435807044816145398847117108575580121487355087982851669781278890950130536334104398161374561919299764593337356020846187564749328712542696017086713179178935367143736317555341193658187337658664287931220926170135037356067653525017445396299976167336132240048105767111140912044663882038026906247042586375858967351055777705397111669476102659934680363485395613255099047278791577349081237926379704669322561284215213038233298403010994439019309565248264724567614157924916075414347042391883029236758577171002202186223367504055117010877492356618700193663585068760924403443366148746328130721470031051568433068356852733330768126634810476448502003006565216420384238772675007298402633371123874353536985386235391591436436975755808665297952895081347111137725251534189918118069791774439106488283866371479365625903733910091920266065265573128262022875883737846985016384196736961104947275439155570081707085224357859270744067298795443315290918550574449989971380178667306889409238538727988530511050428072970621058837630009033532239189847705898648620064380992204219927988272183293640819710321543019454202423504784599681519272966704617970483314765537656643821756778922193765733935572454603306712616203344010957991437884903073091922004998396483297973054140047439989121218422247384012686576494939163944241987993305453108223338830869606882093662496952743984585221694600025102599673898813115363227029495463961346222469479439176853009575841661942491804059855735102010525062683005208492590598458001905898093485887650876903929966128575840880193577970709458644113757958584926233186906760007868617501633442867768015715859868225450033174298454051663842481894175756174563309426211555495895620608396508440675556246353093067002394236900198565694373480986608852424930341705928925721654240947666461244404529133247711916143853819173044387207989322826712625253393238035325854306255060499479416740029075187330805682402413513772148178120558422113405192264975528484511074235982228616925584384596431552873765553976422892517317991928304683477289924144730035631020329382917313618684456699299736261953389367902269456830268378798446528181928321179939442592225012940728176243475327971534670004702507508163992328957863394771347513014676262673145147962470428324983349603727377573501430882896183598706379250168896631336045422267711932299333571023144146719117269892714488958983814337216280769406890095666870264031303999348016356421294947961962013890697874595580268348880013919934875253900930620801187244917226730947297594953929300405171578440711466203010408187212170068674741357327112324695956912306449224080510428654786756726806221941407026720938343569375964399346544931747687296770670197205948000007484101396254912687326089099354097420239497428087654950956986056736711451051441631891675565396849438297725477582251533983970625368857302648932350604614671847982936364267085834564408659392756615414059895121375618160584417239142988183652107317730674011692994880708462603040475101747982591347337050836469398311787559220022814883080238097398865755380428914615081254794523856719142603952409435106216556775123386133512835691729825935496619421706827306525937865640302245379435609626217310669643037356807355066196411833484169581674815541421188418244818987463387644116381353535851274782314252867130128822731980640345858359780167281620160668418015762051289070187325899726376821349261598345741612042917857221120497495854573179903465026914928216196052068657925670942143514018097688916476267350301752602646469720169335030425953144115330023702700276012824082061275260820755831218787858951167777036866384449379175442751649778562224191644626179945289754192242675005852680063874640995392942762196573041579190009631269653570799756162190636968118374703480314717663778076765953350998565419915039152775091753899629795648959272998677050774900507286722715099680641035594927486474711231170611829220755560162341365912112234792397974151294149793016292080232213465957507843770146588939759735047757081998305369771090208675990098194941480495533059431468641644395865366017724442162381445497160752869074387307370360550917201817095629515263803311288961493780040955102594429037506793807676590919160485292344552765587938512664689273950401742962631479947247530994754620703826113523583017145059195680256701298072281328309673259018333395153930978559712903752560355450849386287802833371054931444407709538499589167400773789702337569008669000253126166478309902801322571571608010790650015005742996154465845171516509788663612471555825265818253384592799802876418842837382304832372559929034233409030469536449338862051990252155339026899140141154510738821161667347361258990424988144914487970455154188849831628937559996796721448973053018039600470800635766483702708495771860349909514678056776070232200050405726395754614222300880471250267963715453491264421356446886137504280810928010271353077742260498500801784818798758473410745579025366286975262219461372460920695895218788849667839435036064765114895168720682643368832187333685868270981288992752000737016495193389384893599578099376159699914173612544585560078149320278663500125531795760199560410277783963720559513388929113342104761707486016636706248336716424996227299537302751709225871124701414975288755792242563987701178120783963316055944620665783540789937043838003952788733001888010436404455372758707689498474532331633016465395508623158329200841943458113667503663784919425094606412526396461144558068579220250032529649478095614468358354557109918636236840964462836581316162956701439340586845355197214121497671867717693186119387584212966550904421462310552158145786224535862886553867213846245394981370101914175398930236366667045008995971817096865288990250701086170837350397623218468151710942594900425780706884987569582509716104715208380422542887334533437973844481537842186879745340023794261751061954290887592575108188523069723233234711946600676229141444841583694447658292089092675476545571497328447315732844202520688824754673937124965828627210302934223810039427606107753891144492499402904432032086137199113141378632618425460378876564530869787400011616960258972410695118102746497646821013497743251883611071882058953804831527275235399561534764255180707101887598934535533866468295946959640279108092613505512277076575053979656300961248609840118395248031567440961225792461998628749103638538327156579496489429107273461181927549907280593874666239991653245245298734098814842842074354379045802278033705258908442518908764593068019132420770995867573457570884345060939551155403555926399421954966311708218157398000789644598212705263265644924955009916892819180794549312864520358063401721595322143826916367294860851904722509996464272645811906529419231564941086467892197428298405399685687058342631915581518817196514514675492428660463827962313370547940493529185473062045342286164797855287955038791738513860237113102975256911667764514592137446244903954681675822374177697835412683790943394221397962406912005328952959683734974610730642775830253857544318795295453424049175648030845469881927361240817218590410927645294936345476188250330620752929351427788354684758884408761429461848477168735672386317155089825132410365327977966663894070965229568516490231285683674193716203999513118308744682563947336682032805079278263724328869671132689422564333665296901287515193547700841855392348445375169280117997447599208966829194301179250817037092422467600650876126757397372336327461708129284285041679956159328194686245272417316474919644906062430681242463865098507105059889754935616376871719451331252468103395761613517972067493207953635331358469340727840952363964844852222153662328938469019665310126467106236507790213723846319280652568054208585589907252481018404002717320061803802299248705087096850230114566264228886891259902602378710808909374950741884004184833635020785692763541989771702841412636176020149917344778614008456897739156866022190344311756286922459755159651087411020415839029184886373951486451917977289081136577798698161443652469454360250972754101010500835161553963437290701889827757429415387541189999919472001356517147169413300361046962892156350384841883934015862065981230702862983671939390331166029933388752061905795486790504934611760441920488858051465535462977525705673825597090037664465226907814554468905081407847898849393384164220282779013783877610752118534999469711656051211215001143235424918912729936156193724321326936939300410824177095091216152970006572001049995128608229215284928441062292689213954668391854400578999176861556819361152800738972862158620045361425675795044613925985307501718333699400178704245232551461387784037572649573544670620863452346901247332056514555744921017490381857609391011296627090340199317080169377341749494896076393402451222234572842478388716895299904925455674022352928981451237096938718197177770681841087775956002085842574567956625127864899169788879092729226100987347930519647571549092441146945834171833472483047353725544409787723311919208139852023066056393999204790282706914140927082242762085127553790607016177620608913458433976840609121492890023907380746286638568984343261227705023969347636394843035793987017061411213067482136089171640587069516301478973179029222785105333384010498167801362250492192959730075475488051831776208500862200948000758971032601040378604982518696211503090574591478720676832559695640767563477833582226163154806898722725291328481396767450956741799737443298991811292528159853739076430013892474274809249109752407821979365815416788082429126123370530302000404523949993371993848026917372176983977950270798574146049217235949469632844313035985299821085385176052937288251518853337771655004561148281672683318830242398742047436082702679196850288483575357905153878912491807031643905386856456438633250141527076288124278971575120717999897418546191386315903824784173361819935172445671181546816796561968713784550318415019577434150401636511422230497907601407182404104587501056817940606195100253942612786815755098994475601317189986549029702809243015549658661606914566889906695232598607603436824169093602056639708161954239101942892436347042885380051013381843354263816106311053896373988180487201377043646236743387836962672889573405462979114627186635995249537197326480359556041576126392814906416862830658705803305884504413247787855234722285137373503099258128701182313887122097191233273901481178358007817021557774248204178091494346680641736004948683811153268678693873416814416832135417504875654889961908935349178804067728931742516017882698252860411431650105640000005234702271112439605215763342848635278961833015953767118723521040567475562607000439519421911526114769619521377724924004938756266687967676326410747458206513765900440461092737350731758092965252482071235566849287115824982835384351013038245172868859659494370567084245496573796141452102246115619482805563392940730043675635227209748307309730885419653845585017861843532863119224694868299175581461522784514850105515651458981742566717020690437196410179675001255118823010982898810649450670441953554845440358930058599384300520676948474881312574498784198397482438791600796070336396345153674131900677973772721284875002334842039048353771459877089636953327639643679648007563868893313039382852928542063084231996781924522129918296737660330499346243190847897276995123171003346271320868924738818799905704706859525855829875932862206697120375562711001711955271449125634385753810101360844292926624975077045447969097091656768457711522951230313708120417917987197940572362849213162809063028250384638944404987501686924781464875454179830269319419018895478505977110565640236128094041612389670036758361215384040917101293902667454500846855308220462696580685620851614539677131839429448992414622456721386692732553924792197657329702946379828938538868999129563318697093065689467102700431053127355973132353435064125703162991793639486426111434986638491035966668473450099561071137666732130562729329834544939624675370235776902521215743373669215928488740627276230531869461492409584234128607222660493264802692507974366326599353853589392301181738512020164402117251412553244205185637053120885813016879746218219282258207503273717292058574720639123801402875334668559674104761966813162707774268112292405788318205237826719374293384820806657576140225919099262972675184068915699259321477659440133241481367920609773442247700550312353169231674101960415351530948181122045258132796461368044294901187982471836047255875839035486990108015590160944516652614699059856535154815056021062633245789820826926674151467151426531823621543793419395990687132174686664372038141746809426127027022377152786433679393758299085777956298643977969029865994899298632568169142224961916821110966983342059579333144711228436877095752351389984137941160007247437740199077991415908849208741599933681871024751253881173680581079030019650455684653480771276565542150920395003163882993072447642364159348900650233673778114870369378969723396224431231589616996851554719749135089364854137541212757559771738898639795853413707080643461760753303049002839993183372653425271319969071621105642650622618761990906210334181317387772597622290047080608300146208512930317247026523813895144711045410544948229991358072362836936468780966922989010483817584231095227712532058667442080669488841573535811654774723632403694411292414779127678388706368923915577192966839317602611437308669306796564046099106414720097675945134438592426637242401525242535358877091037492509794327608052064999685243238917582084537201176908737513532209304783192193093287539213286501018191653965181062784494452529194849471603886434745540699492054318071279911470208450693194069812487977972028000433085658217930619953010330552090689493307008402476922450699094519250124670629874359736847638885140941548235398930189582838809880083814954915268370170762615145428452979766456326305837741452093190690390643015320010767395125365679315083628166229651644161933018092104050112446121646622458113835238519263008435757088162347816427256055925178466481993476602055571510539222119442830186350313358428328282698722811060597013753734136606919953102877801756964106881047443893265803966960612572955190024854064420985864501083856997686562098528651545443975612881631803658662404769448915669887592871157894472428969369545951158052881161526965355783389113367040350416875863986847791552363209133205891317032141948142522271142508134923804550159731832592994621229532847488060414810454354130294917485742286943699145534479998959562321720855103688983146029540357991245699461037624723684100814264805808976635014949584000925305615435107728079884635269964376237279596381813713789739688384556316796830295895712463422048763352031529333227219119609097429632067302934645000924435810026075417860532774378722499123814984523208771138163813718032862790999328877719532612941419162333091272847920998818484345125912420695190812896915327598104670839076380359312072484124887897897050783683842220213827835680335775388119525732080193841506864937460810524487951143788189631220489545992253929225721582063544779250479423837032416457333936999096494466677043115002748460286012881249349547255558641597996230464631474548446432079749606490467859803409108803560350333682914405107526256370040415608366704789619577718733193724283453164721045292680567673816436564666619576654887434851940471242963773548402818825207334677347289065874932926232391814195760197008930113054274174822013021350162050795428546449424818773826083664011289962792787548270199301939532618470178976570988147560447769162202991785451737573650538461034115877510996233185371060157707818279444295791099066068842346286280658117107008726122530443881938155338449640152545652177555232858434490615298230647806963785977850927998191016908747698776960955827446092321929296785370849356988641197446439722002320204956132738625007887726795659655277037647954965345292648907606694704318574462079368218876163125929050538286844069539765868594193518714043320192694163586474130153750097346370394673232820144108595370156798253947218275063621689746609832139054106282875687444742738313640518253056074390737992065456113343543484216410701180199208452841821075544436147645533688799522516574957599098737736365759806218080693585609651038423321600782819997850183296886396939790020815654988192912127875411459470681904816755908214476738729368694490661267651407802561833592612237441594815935918076202513081417518127866768883542087605286438359950550019949923721353078115475159013683349589216210582262859849602827896773091481661829483062957644457443829858282754543552744472260426250703204234409687248329963227560920617372449013177568646436172468958016182209566978783962485668372448757416961224097283502086374667720052818024877525659278112166879098468260785775516293153626100709269750994603060029204539084031027692077654504179941984418940786866484230271171214420640899044062430644136513003227687813351905014594331646115017082293976233818641842944486355489507742733329038734724670419524977647931766664581222807119150773278367415958295798618587123937613933336280801990111038364418532475957229589234647992492737207326512054170389126890496953031300835251451276175127969072595999555013576131219439200385152519192622357088046513815555165752049889403091314698366941425222640088135034711419021079469702011957875046379819472281602948903095400789884343895944565524733135233118457355743903424694694288405419525436381839032722106247231534922907088239187171978413669932859124237297854641265962250949761461487550308745753366240585950871938186707511564738329911661149395489884879368140799207055636152699386280348234977012394112910278190219087655269473306052087809713394352432767154988247960468546540667990996028871418943698900262510643090438165340872968831439214675561645767774619192034951282653329580667650575888129930218229485254464165582935371287297316300743485441749089001723337147531392975420361452269919858698838936669731911835909765610010804115128509992682864183487938896896215574922903568415745370837540309568947442027805373679146682451881311478582947425591228365162399519813479787510937413855268674985904402893464801474286376052851450076300163293921666159045446847749962107358920616078017840846266023396156979733177515159263879808481845851930180015018012823275000482784714447544809556326857631086173882331019592832467020912735977988323061721166154415240341403488949318692928587200410443327019578093317975532317551264015599109753371632410842089830146912935571450609062451188961376924812318115473825010222658958261916555261287737809492771021602450068972637307896460836541031149161192032434840104901067583617046508638812199335490765536427738646847572791019644767385419644711240303312726059896874981242907581156238932282545470726604858787628288888551651269575277994955938007500932453529791204135241541793574707557008854119133466135072350253203194368863835660060038113742714637075958295890049218112575078739923224968689345324522071630802323247803829643660288192874652427625499089053220344147930937052498558128994299087270299602363174874644188308055002432572906669011005571194493239629375662283058036518113346045070661303648254260487752920079097186200868356883007338876348823520872406029588104165072779678628367917631609812442701035364888427443677572806049718332465261234001256579350213948775857844325044433902924798735334495167644706655515740931584326663863494187813192148845348260231928795318507678208746519346715158479223156554126925452669142240610649102404549848620105218137095438851745430357014257119880550519694497968592430339958311882399752374423818875884139830479982061074276196332203374204627625205754043319128236977717135799260300347601912210766730423633072949242734261308948492413152095401456722213114775891420072527534358575851277485003714622347805081160313043336703097386194224602487863629565762939645097471492912258073118849802784137840048614057612053953492601934135294655508842340820735140202147792400674560517400498135499814942590031178683780972895011185752148616519087203029353852018691378882196040911718315445243434647234065905119238513012380480720767277401935427888195006612087291148656045020713207560890963709078416033776524537458530921210984421065384304712181339351625094359792844891797306514287456131703556852990687800085466486404270480936692553701997734640521911793801055323566354292116768750381194043454242555172599926283360508528290466394181550248024318275049821207590922651092221298629865029463752901048559330779254943663411457764519515970055925906297046760341644587775383937420371122220727504931132328229354596448591212096484982617888727160669577397124162678059128550617068769020117082791791662703528546171904359455989585310590706565518019218216374464837743218500928677980580789165534253734772714971752004036135714937804208305010376866178858191671014523124311136686982497343081022878237501547120313027400980224964552594821014309942907715464813469750634565482050410201296242878369463471698399499883401449173139696743337075787302348990616832798011674669219290873865599472619808608477984125516132693338041325314276205498882841019322453757635428415500597118678546440171713757361894349722661357366258099108450979428718057580932366848750741243464093655973175884797721494468478232513908075664287731248099104567043371344910098283522209269583484232285467519711701708644712107699564205874720738706879178984785287900293828220999296066640406240651382934195418454946722145359224812500463360880944733768179721341578111188572358077888142059053853981321634727255250689514252409442251726468645973556440021871596363009386762557056958815764910450112119777922418187023779344638143873133186171685081443811961058319075370674541102048958892408661826986418606453556197630272428038605451418132586240806613738260093146563247410307342061138020327793928546657932110479067723375366901944693956053202806664238640363139468439886973004501215901396197294462089892372792737069160610024070129206797984224486258325617223244442012179912044108335680396554391686941506164528038389966549120514502249343746477317581284724227136926328419375892243872569842331593071302746291639030492363531419668271312731200464435039743473375486457309205799717778099342643224618242200916911743554861328943767835050091904706965086434949878197622593899700596548255491494654475625753821959787101186881340615840957737977555540722007258098705284634113708285744669460855513592754671901917541173082573676153408377464920071611198111064779804869776696417913137356997744594775929124837912879187107663554557972765075571111933779774341221873565419849910405918154439021837355820044413893443329606713765123114701370424612991722190373668042701949049241565712667394892793303499134084255053317510025636628270763861654143259856209224554566437192765606013418540342817338509140556407533111260553860067423503203231302147237293301042959068197050136073583068304173617863141235634120236248582336263045244871297679937719404837367798302128673516302453877661251152407285671685315254226777127547422386502323531245470075593936302888862486138832150011111458805145672653036860480024093983290341861564202059587259241080463439679804943584083429924988436945819791831764457703520519665173341073062557983867943585613956555824467880700319780667838698036129296970925831394087737195579613219301002329686533389341811222229647892518913892675937580553855989170299275575606148941648579161731501450344827786540339168146141069908705172536089839829384316823929131039604593426641292019353462257934062454503611656330690471885045446347199198986050743078647490741577730902351314653979493196259517410812470011314035608413591987765287365515473963558628780111320733468857922144039443496414783916069535906807773650149051547675929558681541129562465942316597175971403517565561944854618604780109842619044985242541142485733887744520808091659814368387823183651909660186480768513395149691623948322195694905296222419172068252931944372678363499919198343853758899610788674037267327015542057417076852315854207871195344677938352490636736138072316503074830401885875440518465028388206332762364060424438136835638723356328784169411696955084066490250904612308623276523715132250634919151744792792305654576238971699115391656383707982940708129844754274008464541949383361973850110144316554321211898875910740881085334804930768277550591682884848334003081779425739512555082048125964412694860342876041656011789489617673268306578634124970302232662610740339690907724836553546161224826504164149226812198887539461003011210397571996854744885348570928805129052498235634605787098218527924615086576355957301860569438486417892351354881542104562804739338484147106900145290879237584647924669643270438847960319441849469387895956346212531815357226629803966657873087912698691522228582586556306613031469381189264744178152976871365482384911722540239971181752109150047760445341069413072748478550636085278695055554088727787695899496413863315068869182867894452290462822943108365241842831053835758770952956585611168576863549339109402723389024780997016179470214512705574936545703221363673629936814785538625386065000070252473159502895670987687375042275838796823881879026899236432211361725386924240346444394002281246162944496876389705813945924119885154470044644503445008921444633933560065269261301411558689258580109608124497865773337995008862908026137873262726410077149037387175339343092159091148066645797807428582020164501819919932532386485028225087138902004145130392736102815718620634466294200116246527365753747840557157618471573546074735448299085238748290700245425554568187644544674265392039752433520111459646190809811148438642192658037870270248331214753045697104542114902543419213064706468481782489963128624997612977273223089971444351453152455775118957584042171543940474518456576556061422052462680794332402862501596789592211450862207736340061948857981181362346885490069891498811331578182915589071140361480278795981791076571936371283342562764531918632476240059365638728498494722629830128837100772547017206035739302410562890769908542716360591261197621103597446770722869815059567566836266471840876297227494246446914348490850000378101181478465488656050778119127731852679494460120510999510813573608741441247037937127439794996807472244339236539199478400862873539251229889883840816732483279245016205966632670193076334328383835286523430590196504139538875425907372129066100530135464866605138159600211437251812807590334729418406408826908932277890589774181707813501744003472746959109875215707386808953613153440735057835516175869375736859636360260554602337958086804163691121514561322496591852457011965157017606564441528380999697868450261917678745010405194535319853295349825773358389706390122002668694394329424714021370677787343837703449198469068091414490091212331748078750484186017319753257871931039151954547685825734639532443063310580636251647208773156537765463098866619396807409199294588094902020002717098727089325296872988092360214264196809053893498371665387912661667682670202289027231803326298028203512935977885851456013461172598263632833302276104537345683923092352433605158286386872947843074286728055904958251230738024946649640756684634902686547056763920025200615238193427771002237641263911224191137254482899867080070772659589405216153053420004172319893714146375345987270368795570094701832600167602916172849180468586609376938463308110446417258707913255464456344043329919725124617042589386605926275615485881832018221779201485284868668759092526709234672552121243164672087185411601527593398198915756319818881011721833686572766766315492462422263366988590779744047105409262917283848736209131896293967581538980914301369048687975717780399112455290616554932358134284153177880278217168136095506780098288150862763279093359997052241221688972134379664576832543940763648856718206165911173089675603321817109511705813764231949371453123920599531579561728872823901762600357776150995762153694344786155464896695124266748783332072739777526717616113300094790954761926712446361306988130835149513999609877961724692095584679232296109841081700706585517741563328025942322498249567641387682706760267453153668490090548715624263064408423155383066635691338403458780447614807209397483967326120092228897903434647443721951033621132278386530650703620791227138379441616297238123743690457738813420334463106121265116892957066002910623444075591645007739224662538669684991184934154392587287482912034849223992043509360917211618726372333675140750009961644829909307064836580543959812405264795796295188445512612576187986667097657051823286556802288377728867962582075741998600129293127893962026202175511626141390227952998531997602202098977413711878076476977239786217202849735637307371623868908153071751400936600350040775860112775812160638510191522853547656564973808276207850912089332662938931743209573868071018020295581138169336031902814251068800388617467917760751342681116286967099555635837850156088207378128780668027722939018265687825580805294983082329132452856271164495707993143821682410294744953255926366703562325108343464230075489993272853248447632674637732341776051991217331968239781072049528911737790218316003970295110498307868796301376116148067554814867711585975898522272035973916102140439238499229386886066170687817773903165257057260974664788877655636181884245117078742721485217824625657788485204710466760456830654765153674782513836278090633718770355405849620360070947775838378081023328520720040200822984669573930307935048057850780972305845149552118437249306641878281745574122972040398738644401741154065354681274365624297609071392965411660193474417487067655056445482883425500150433357074193972375270517362444441338309869568444751568589690549718669650015040065236666553816846298718492232411406407981200733789143935797391171279231382250626441556899543213833707341647716142152971609858192972133634284120663542282012139692220045621186008171824179559684807893481823594670761275370316814014000490660615181965481724140817466412435400283411198666054459795414648143398620883386341304287881243654394510086227160212696921933855181612039935204909325382537539648972128559737911911255344601001966115655140016733226634166192336953815419868067753941232719795434481763579926084101789305187911754325628389754978357005101265592826891800237670503200916113929943161436863337199991877284310589111273375376756218378550993763726796218370836254159428125840746909875720546373828607681792908273236157170656791985621914617602902496010060425908147702900288555239591049803734629083466671165377443678661693954758964259627739860660242475416097772505389853208541297802380076310577076334165389119283552293209928822020583769026153222552621186480707448636059026113416035482793053762708236602501854802694882381559126223458275102545218501387216429621358429279733152293872886099384414605891793700798683078461341657646252888589230717750999307010195195316203801481767951463162935755885688994325015630048113535011341113717158442904358525289127304057158337713542597247547549725290527544194044509958401380115218506663947433323753302113025294831459141488361135239080084808698410232335453194693496444124283717327309246247879304122420666862075649801928576403997069265393991423287679217943313789609813174264336715345544063168377481024312810319244437409823378810208253320445717725141484363679209684547424284879373807415363070420379224406500575704673375569153313170163274651892196100908611974602053656190317031914625071761538454014617408298498444165163380538772460496665360880101731748861660230364044865117370624624277825642168111132160656907307080095184514902284027096120698165528713567682829566159186063413104143230823726901293447164320179283888971208429428606004709549560657764275364338133475298815096163272810848793009956253679010429248400669918899455662516757703283772848441773383451509503925104202448091586208436920100474886816070990078438324221073843184217638201699153151645992413930256381466555312418349011914611057230096011507791473873145220997819756539140184742590959502795090812031040810721353032958845676197968534404239203493427471992988545597193362859869348481189775873200451406781156942229401741295799102816403534815866476053737652439180947567480444385344281021227302173750304200999167739686008292032444911009799043463266127069186456710619525178665914413188657481641595999716950863615313663962811713652006111039075151608119599710563352599351968671238042836572941473245681459153444080796923155540684828106306652226398158622194552424624648764746185275030694675104334517165033477279312289661972710455805133879183438930452365687007016988138570983743963760100215466113055310436290004960119672128500430308193734647367189877229106149897026346682332217023209902529653863643766002424198878956306110642296484486892208712256896215171760850171047607953938837319276574393064178342694626939508114601876804365092759052815768879045266714556377574629931185596021979638998366385979830364996935465124646789972509097435149635433539062063733183334420443778282346038615892702777851567192367923250168045735652632117004760181748358675886367563773600931933367105818650780070384753351020857018315450446918475609016473528017869415056752643373608296188233154459047019333873378584491513027801392008604261995310489781206349972447510223729215771463759773523948120887483228406676389739159081328305131862775648414509560695497115297129414875711977698506438177080650300820334291289638357798674495092649130305606634946062752590248652589924216489668678529233959521309192390829721303564488151889892947144459410033938078990879993848522657843680005001579146311618431293090101304667597818013624847525478327804352085530687355180155820859794976227914232819853524363495306855297049520335386749451543723539984992924945656856175384637858913506978421921857309798662522655419670178425159335866090584355494092471079511050567912550140254150105606349511873163194504280272752322497942775282614557463715174011101245985798577692077362283477342242695167205812328319488016234335042392274995635537923211977908592036725093101813350575643003366570645735371477701984896853982578521216117792047879546129904451097555859987851933159203012023788147149143981212103358990201691020356574352683676584131666940603485838395595086891607769523469734800258143610682003246522093967128340354194412241751685205425933839666681247727140527181105114871456153834369542800365020473224642041133634611667524424998404951968680463668251451849853277640035692384516154138789839382997506469312255645434646748448692420100904119864645973604318866958604844910441735935697937008666082125144977285095863576711082535539331852878505156589768428854028803983102874089962956285197935535974009438771366374414593467538645442167390422068781136823792798254308797325245969549633712793059706829841870626778465816772864156011954315783654144824427963130113057832488479485162838691229169342829136840113548682027115486735122127288759414021834296311177197886579598982140827831497692162924336338655294726939362594990795137199889748468153498904156615479036764645715620904655473387759933133386028566768343127130406521711586699592599002736896410776953441506743643282110751036683406849051082940757546080549228851821109285035157273981418841351593722743975854106621231775227652366396231087385119992570710465871934999152044905098504019927410457614133188271167065279729781727914583510883665809732980420677238590670061885431399248296487277970460636720399500739248089921894117548084926712232922143532370384247176290466047662159194439594000575059139679999475460739769084007787074319246614288534023329439268042170623650184755506197721312332273988326987473303508650251469518558515469094436824975750047782060431812994567799197403615103015090998112667110537615319173985711495915453713647466408269228543783910549198325983106100640165672239664755089298117138949006902750345597807844887335110398493055424841359591537629816464006402074201253458513712583754209543196148444541690097057433317138227122863098636896422100351662237664665152700912303220963887154977802330434918710101300382321845584542263692714691460603095574756118619571624585956850628333332468273302138764436222824608384520798254068657102083721554121708190017742060702120872595427587468424861894173011072144864606677158128206237040768455607316928732030150796259773291383092859761451505676530302239027069502607710968737633560168567306764071200462678540177932917996708687135831638125755877205472209189870161002933324615468908186604252099083852049471553915851458521084491074479217513483617492958435152893960572151193362627948076970047393526890073486740108256626223163634340241077724321803011242662100160118563986659227634227238784194814336059000012183756990860379136678714805092884893544859671455291463729107771640376114116518475841268156348452042247870366228650054937120536613048702872639898195263596942503320223800451017589475608483364909453823302377040910161090090726711163289814397195492855828121711619585565849711439813053666739487304044713853017166301636833061351989229886731807218407180337849141135330757740940478716467955409175194480021052228909688668831389632838282326401230204235315523252865118094941589951906182111659500872023180499979615270911724304094669676022137254975923610175732383445506387462881911599939805189802633975408953649202717561641467367298789047303369046229204768429784089750601928711183582830581614303357687281801966007176383992785595743102947164127463866832759915818363343465418496984146163338857572786543383960806708174400766188921020350465239276118682218553448801991977787621272179240645557743379210493861328852679395126517254572449229959034194505817382325942479724435736799171826629326557854246477021512138502800524182269305635647465587175284400422611270807442921661625542208201419979506273600894524916910785185526785272911458603568889116349653125924800265061253456109634045767745191562384763491968189194295690292819363383221688714397164269258124861077279766721920543117005832689725359858705549431015752299499232553544467843736711429787397692438868118618419784499564776842761408893780065671974278425954997654795906280310556237316607200680251114299951451245598129181643009181749367904810213373020704308297812878590209794486002077753150815376020166219062499358099724149000470290293491975691013321268458805273284841109336536789118919513806662446673884175276661096877923018621629139528214042323190447154333734082533956375460889666374288026332259956997248625142247211889352192020550879005066677816128906223265237605463898600759174885638990440260098788193523863717674832655930236706937072831169286943816390938928504027177158739658968820695621574144724946312608565742542869701428496661645125107928036021672751228210243394653700819577163261983819217820043525792198745527499611581805534211667179872727767199216181854160526136413506157590810865500490607176131061686229344840718240027776629183402799009980950605326563556964816813947475655881065612256235306896397361797011699156365689197112545794742868522953765950927005922747813334220404707052387371863994438604432391911855672911389971039222150406152981508338270738690817732189709560735770156639621878081617189645854777824722642341265223907439947717182379758134156276267541687190346158532743917686114721797089272031877779840459340983087370346457612254666944037096383957788880593190185434914280773645149334291953189657198284954459978867323792441434552099960023020966750377093069174519240549877865281419706672166924649262153272867156958344590713682934081597054868781298845384722196205361043847913947263871765236044826048306190879709974747501802104912396822561275991901651814356006788116041328733016959802220754199272128449524856150776419050298986815730930989819521748711107224846097194948392164941629915618890757932146508032251566182299494504144845231384621755936937917818933073805246911684266475554402439150281577272288918750814963242116354989270088011729302236050835263517872235342165145634578316861637398812374836129256457477989082179952195847134894624672033461559840701060918994336911594899253076718443450074658275695768531156411297621256652747107388461406740749792686201336282862077748145617821361239412025545863110259846247813438167540985792733434727196113845885163498026391853664005722634716332132958643514611977440626551858316709491728170062040530563996228633330541583380825363768390347799934647906765673514431948505740502123216448513220978645904402634560657388893000627750848355402753693889881917216999455213253439672183978663283187626618300613440830203843036773533606655633169031175412398297252770351921702946757386984957982034426664706561184625877126872309937473338579682723715393375487524981848819014074714169242654296023125717527422376348494200674692055673719499931818483733827344775774508454136136767104423492009747719581449582329632033834469215557917271337557846985630545785760066327779927707620737065353965508962363238913500534992194801698803151766901759364880117789306198689229537702693371743632614497679878053702524682455572411615135039164203300740190155781988452421209814183308342000594088077078768488431646106758647068219056075905150028585763851722345901968399827908208819065965604059264303533165799840950681645962733637554012831529049892909630321019900364497046679093951220884517156008653475929002820370897542998660106326123193627560247878491721002687109283351412626857129210555377549849808809970764725738193912200375713539306680321534131706382983153901004737255027551649018161276471050708295220951904763614876067694456805864781774980222254948148395399756867736737022494441419618803096852700433068679457362880123380150810973881187342791076574717642203542848279199002861466113571692901714230527027616358287196899075991082875543249101956407822467432537560744526394508846678817265501115140992036417052693097465935733138199712372037492562776036643845728152623986959830349747779569117032412434125376741585803401557101505512938834057430091271504581137368386464603954476687458454422128045206351301258415738322577656755340662229819539646020358500310836041536092425014250804301911231954196335129927207922668683982662227368245431722719073964842461709918931896466130427042529243038042123745677201877141158728737128834382145116975103810125428477918381391973012438205582362056635416691603709611193426828529769314274315984376467812254278400252379861112319975770731023540690157166813084755488068982795014301347878071992973112117231936960020210765746301700518072557843781468285460654439796684728954947323238275742214218809563967024310599544095858020100014316783258406767739024008766702226648839458480514097289789769815739841489154370883434997812973900235830866031167060986960211950679994888181796633448519256995337087822608827257877733188784107547539190631197573980391164682551055052047502128708079498523594546040962102332010955567484801634225501998065709249759514221349505362700529259468625773694447495180717011870144582312940523663615108525157264884988427864710320476446870297880438628733506918627104716969957328784271461860788307546432162011960149997562625148425694927357857425163441846343495400874943431149959259494478415652336921616093464941590807294234397791643015916685267760323409833354581989208385092702947754682690636312814635742173621317903862042752142668243971738396634904964764848155839547623547369630508881081067495489320136404389638105169042286473479938386096360492782818279827647421236252435210644690711637881540907931511569370798632481520968341945619779935473668093129980181331289827275834694171631850807600634050388274320698026399517444293764088239093925248178846754388725638309387743116818442974556188856979641560427778003538316407941252589562947433293658313025415882092555863440674722023168967876280256306843506510569809215660104629917271185317355025818640111970852162393654417283774901534090485507684019474344140831117551853851123073996605011515211471345387527846309731941700401380062705599345779445155804910441726052295237680861193252375178153419872412427620446594786764118665620182973919911457592560607244930609698323703725545142625555622861851271866688992425449131322329330798675505684201410542678512739186258424715750581063319283256966241291895970565996665957573891312181498329372811444643047464465963407664818982073510968938517937440417986425145436726808204917295773373134733480572075246455581760500268718606626925514103916944123610048036146543700761747610810247352397796626588045401829212905823224544960905280430310903332335891457853534650627008874733327439792508092157780011354634701815729266058588724295057898958996235286736415508298001072689640395647906114350743728118928619082538101766635302880938273941349134479085581677558297676831116863012702484706127574043658283490999296545185329997113639934880373131322054605693129779693674937591042862004178693824648055542594551493787707620937492350773644856674553777240584207920053487004922834809428810240289253615613020226277956321348531523453383138733881379154925822224199470819105078990521485420552156307517417011548267124634012483036124369554431323153919240584836277887013800894637133850265016763933643923161653991019431018510568745471418176226574370769058165290866032485789510212619823826030981793909685282572721423560930742107950935963941637961905820349371089059652085659818016724732282671864332042985285552051378209809644792580985369937914355794600240374833469755625970132746645985218916254796604555815853847803110501431374464497396614160380303779133645820587522280015172528178226622484545640688358225569931178767488775712141302810883564277292663191942476816833821067428316655170284031516836466801822379322727594134057810137312907305322471854441014896236993611214229169814005801242692904142482415799964420925175442724097585168051079195562904208339152249062446910252080069779536935252510070331882431341482969973157572696978826853518634650757857071257663263339789762224597710487672243341557049377883860014004092208366721651526720960680946255431259451020207951491417795791834125905963223625371861930447581178998688943638094484903495089689350266875567151201035368500334551817908710285913866139264141457818404124750177067172510811268504034526543515901227920684356111325174693974475198676126997855123162982625035105197339995465299021015539487499617272478902310176048265316961665997070798580823847199422085384472442935649949747906446666114111059776804193840408855265663406355469931536187362063205648116681821780237823730372997218750412685184842327618578518909061359538286547708977074926472572855357185876770945441514479214789049339823718476387748921136061804942791970106929567725017136308117554822377924667600204020484289328433252864447208792036562111001016012383769246298969119269533222574695267586423210628288692566003764949173140416430000632427371997895730836710887130697070856454777454486257769912602052883768978428825054970994085125407407350715151474667451016956386084663106952401479302836702804968042395195670170868614029779595394122487346847236255387028825262324268296730410251520179621983782166603031743943368593433346810994774597066741758410213964921455665110535856920953304184944406074147825068611256637664508600362748068957991276632426563769833193348672095347570333475994335291265482764780771990110050305768144788077335799051156762302377431887142719388117763501035361281703620113665073348159789346717141631632470840844158004855485932380195272361179480616524690743386064924500130497961872953631942655603557674898439298114939840159279086728622042730753239992505726624917258445906161006539081947614499467075790071332342366622439820544633345116090280358277651724931927325059229507847051157332401471951099384910797028709782569790381333119638791268014019603204658304856458232774804847524745956236793823592538372905910080928929682320384036623748840252555524591578383368343253643405473282346795872883972996771142624512538851706838960777567192098089866533176133075403532174242466372624556446383825315562345042277551922954004723824315671242578270210091570901075307361904229479736892297341233527501260415132740878296914907488149155936738514171613091987308197566473084923245641014676701681498579978057099732309689290109281055710848869011233762109644668743156741717995733890956528518771397148860192915730154420433886115347990608066276123780340751829096623699223549561932072667114979941907346486473895220145652670723748239474615907623997575280664234900764761638192472581924094889892380174220814848908388023811815555690807899442902533144118585963593750894122163958695256162022270629990830880408197887178229621638830520683157797879923460571324950884920867041225066051900814265019206068392402806251054946236454649125480188154866350983200980678729154798330727781679560478077846426886926034060520394041275568697372726707385877414460840292849911969399502192763083442825619263916670965265865065916517802038704699295733075051175423833824022906078130104748977211926410999492677514586423966167631689639797723651722377421455270313003137007684759531104207113081888347442783476288808922137088548425186068478247287666058056076939083194489235207998290261306318640700010302358846454161615258079520152159722898290157337150205982380351226552003244996161697970948798542974691891932608330716478443063920424269700643912984804955774897907556710674438119812003233239609442664142325187505672071497096057290467432960619910038045924250569264095919622952141049781484930480428705330377265459641312533941942544313568375302857083369131906192644732384515312092492760903963878677098071539879432211907956637939091177696015634832713399780208878695576879452001788216755663310204470073180670674347668615168521063619357662040167969668669432390558286605753940376092673479433155087202584706149783241711931988718125392042099799750572805128103655141277771571092016736915040282802088039643003891227682207686336002421705363573227278339551392737033701367494909966483909820173665491616579419863974404323487375499269346279342664767149734594624991079744438176557164222354901202690837994965772294851560507180788202355684186492862038331293345746386346030856673600317669199781957086739453202361857476230801129878589410519971952810697814918051564632861806556299645298800407781381972626546984606114822127679814870914499991940767189458396916784862691318666586405583917048343602209169348984131453474510168602972756893242481129577188892634995651728445538392476033058106281739553062873567104889795665068577181903435170624020855968408354920671497160363235932857911787598432758215756627307201992068669990661490737065923898457279424106068860288838446482497527961685392158217996696078917594033701002278968023599588605165723752236970932213781742151742667737421958944537566066553650013153877886278323474423921650492413911358379720731631048425596114750500271648369557142553402673709110522982308309417922464847668263725903573560231989420927910785656293765184940308254306783940745505707135164677479724777422278215803638044823568422363958580673424255359133521155882140420423725612351321231104946394270172484764022603258887982219524117810651394688455457511204795420286248098165181173283217024173324431333434219870566680714155430692361064985336024213315955727060344229829929479303412516031216030380772539490344280477392413365241853017306170141263602277829460126744069490448205041065058983898095643248031631945264490945677248553818872467958559958098365600411551866480356962745278271312636271834039245548966289303353763877028718272367749123248828446828991271246233283420916632449512470291198092031425644334491422355191595489331391008867926587306826550344848955477352695417713308508508804604718249548843434623916957885273133035978986260425136471566697724381903382276413145714183284976369688166366400662570662948975084993378416769335862817026119548827202386810815801436281956936965296566473009915559209494843611182684801418520179841402165325536925181296843306871789128151426864454947471130762485684696889762158239730667074677970057567185951860548468514734425611580772000843076163664873128850267622227041030190335176317076946408490389083638721498452835297414653913867824637151009099233419787643562175583033414543668184808015005549697259345759698589902352895153524882642500686321936492848823972029986395542551235628032957832703362754448042518924352344520660931584639636999361276660327001720369540800798284801037493239069222730060206704199016101627935474595233697750333969347179059442787986584359608319708706751277592671080351844238954281588789896508804276144820316549546278101548102064957824469393360056874418032990057358909673818717890117679191363087313917703752203816304113618894860211228462299031188722336322660716555768279568288765337799552470591887953926435754330778995116308660300268170694430019038273937751616512929650721151255369125059135348561074526603091906215171908533164043240962155610063597941337661746371273664497784076523166922755646767989665479046155149826781567565517532083663275191571665361061971751531584938105189342063848907003819427822127056827253025517567454926108736483309968575267425153413670342014532319677222328021024575161048469388363380376040980066980865751598136884662367311471443742605147463281485215141044019291124575522865661239632614441831378169016583061027825471812812135605011699061789234625431720314911541937763178734461947075627020848422819862438950304429357748818678822611966073965857015468062072337006824724835452953691257729480342072663835038254201223215353081227046617495159409655318611420860943215782238936547077917070371790739024474203642309503640950620599943456734523024568424647003325807476501693258711895597286073566532331019753078074886277240187445902823173911328266173618491227314541878851991738067053002543332630351422062771925877572749353495647634691551166934094729699775364907298083776691762186003008185323490084906204642972108939797828611471012077507678623721464692601464224950406824701991145401606809973764752923886264541267327213404790397626227018046836618389236389448811337341931328741751793205253078881129030519691995581467897260292011782420281883602470045081258767323150877166058887203075566796538360810663058881750756813076416237098347309263784485688888106611971517712088999173545699799421343347670021105598694156119506466978905748180877101506741492166025012465380301110460295641237139366853588763721380914020040336900949313320092346769672458823350802926311597760380969360765235906548706303884720546792332848594495980190925120735989100544504030255797421802617112013803493585299010870648577178665510240583659043069165498796815117668661580109353852090822936049353519439680329542928291186775668985529539552562682681863195185915247008246761593428822950057086228439795636955565298100347235784517831334415939684277174914251248673998529523895943225308482071546912252016967257289182812640022178724844742762057085566829805353041811117255828002282532058008407381006587236393949816455936449707956279133272587508195582783687628815561005711886192755011232318036792883583552936541779762014491322761443229428860781529752982847005951052644254498835578750393962637459884689150833125657223532629992661874956649468911614739776556010622341224745732843166899352243449448935542474035851188958200493862481652426282130771792441627188448162888311009810435792656302012105990470166881393876999756566947683814464499810618342556199842117396663126803455158908470989486760344419673432505080277299478356554522709847238506091866433042713749444721980232115076749781380465890504961004099277116496136190927612278461802344403460486129967849011737513936640521696702719789006294259133389824256599157435551351779355054745380299706160944957898938106277595572932576107239622726070334226399091243912021858826375163804854920413429048299450314422868337598920244690261609715651030525673016923729391415828573434261659819637271141824060975009543585784728372166563553449341350430837982121774437120361023907616830137690370572353422564303822687192428241565175433604476507035547539014997513472251151710343031012504537086387891016119531296130205342638866230176434806743855093029417787320866451093375957254976714356613982551630022094730435015956759873913121063019329272515307841071050680449420164574923665881507851709124988587319938284125083254289273244885374097635387306882565863633512574809729249623002748759439504716879159138825095866311218581262945866812184235006327617218861746777991857310512479892719856162077985239661931332346640164863660647605902356386533093554827266344371411696452963162112789660604706454142922710319101784546810929974229420799103460613969155369224728171283467092592391377828348798404837873684287874400104780742048456752978529949576364171454357238566586124570130484248719835340787807772180902063354530305915911150001615047539966429830630932926926663633203084185399649639967671325491398861940721531992931289636528771035085508526903953831566647665584887520536258585535469750857878120410402328223685197678199008177946088324230821395520488136214032013426352163852355228195196699742369886371681182552380519859676131020522777881702461535842368441188557060678916990133257202493511732009855773354599854014187826027657624359236766434206000405209714620001913766353637986173834493518270330075096825513650746714576969476093664242180144917555521540621346443163073770089723459008058328044981503941360344676784167440311111526225918197500825832359053962824813236905375375457523237014732028583747584728938197309031257964879734747317428295204960588836546927336414709467048121240354486740907132560628819358202362820994869106503775448358288667735407841222876209887712391762679395413914062516458739049577668203147531266820209749205116456746313109052706586562363690676477921605584003973173308726117775859109974530734880710312034731031393449880063326398476294680121510573066237129628892000730416870582624100332622558318247928980039620205236743855909328776740230215645016554429959147155099542669517534223455909768187398534091081165518792760591203335984870231383561217392889746825524200321194953797953965751598623940975881986117951377114378817280562411913887214766392036666935198623336781840189585374555071818821943940238104202766670674821576541473089856917192561405370744314578469108727734523591787172965374149766901923400349093791150852850610891864816614910729673475779378979956248510861521353927574452437917908044620738371066612300198121894826255227783142847683291828748477828621591850854914337176795566566171015032423565699423049391945555897246756504285363799445254603101321318357869601439446719777554993532098527732596471120766986104505521384734538148123911555570125773859593905448486893731044033962131879177778622588598745194027122960014088488198273921584631280319790038236041662167586350041197856083262702737828939004190803973363685316077559416901122099804342075596024706374304123876642710354970229322204085517341052686029533821242831462277635225355193085593922470132945895561215026439464966456232134035297591374123632461972809358944857194787677745537117808294855837309116087401437801142132695260334141442963049025291602762299829006640276868778215090687378604453197458389715238456241491690393928315852553943633553871627288208184684110995541507805337233103747080663690272514078604181400086999642480636242447376529999814739700891777346965266854691710056644860817863803833775003446989963048208883790471383245129057109334891712076298002207622202348999024586270045699764274302033709365666185409973639620960898729026939912108766077801436979542995194345405052394801883205728262106476546011582820291130924996835518408851427381582047599439511571302163856550609176984347754608532740763685590882520008401787758554949179244635167758569030298602007026513796490177641993553602289652777911500566086522823420031470555380890796323164294125245011339641582029981993292361716899758296730222658526950861351322549850730607184475053843696590609601358883135344258110345484509364266073590165198318909055561753452076594030424105271299705591819290156832554285296230351512048795008960307260712763447860147254794996170707444835878641175344698520541399704994912235005291876909883383777282891319780958016369440901429067977155091034218889434881810141530400884792227135142868284039174092899021566268491823041885072507896080451672785102178873785330803032412578809492644692078888781721250152998894805173346919520489849837155230388805449229205842503561339358579387976619421610243647717474809149774472604887282888976764377683720755839582368638932676071211872548732319589790563570126195637952900215167263989797855899366083485020628757392662676176962372166627888254640823891675347953213360931142195155886661022576852789202185669911541847573214837937147472366354117981234827317854245418093497811081427706272709954356302133560329008949988638575431007594323598328980138596084797934566527835717189079602484435366462896942386017573855583254869696878066902932586692070153800374115907077843933326733721790947372121045915690613723731094155602003192739976569491316745635141171500190446756802624740741851805093728762817208783758378898428126172553663860194995467773655376780168516117800012378676795952687866094666588939685257842683181953702948925488767866877692899029111352384753683675067077484528095561652125764323797355319862265271935050570236797403558466578550201814805896050510858201816428458322570478700462594401053986149939637263587784018675352764501585776982925623598586261553530898578591842184180323154991572082050367077760639784997753332885641653593349365992896824454542063082812629687613988938970487815165584086414899365792062601975205604291117759937886253437756170386330631935325408891326263269132516106653609231804978877391434023351837910220711642045261416561434999697721826149348945977341681172743742901393666414584393064404775331612929217326041942027254870098014235232263547341072500339954975843053755529913820472224520749292146048450646050704751157806035741230517579158898399701791923232242620281790810208934066261094295848164372728656499205829644252395151241430697214151857148542657805100837914360740780580898553268959385058993598772716949807627576880382764283661074441047626071536800311388779298099678630208180948669523645310839736101444543343080273223068728979709097919062206327910059458428593400565947739038012703512082900352436272099789959513076335495311725198573915468463709649037911984861905499495662697694077331320192331380032111491864825631203273341067032038402284152765214449435586836152573602766176491253952123888570479917930501816709944322570998302021749158486685554817452431909247164646280497083958752216193242441038104438716082034609179474184302881883756925884695523246279794969555238029734025775381036056407456743806327268176435812202794384108202735585641198999620827438529258315473471023918112999194569345554435440694062515942995241473498034221629725915861579740847029671520437285707651670344240831713569334370824541474707956342048193333609958498573832611512580925913961308787284085061881215657122552910569111951830814715155154764320099747637638275122223568024114846060702102145750746563648981082266597136413900981143106888377159250099900687133904498021581221311130676314641738721233831357601702755922831394578324336097012379279732683876082623747056111097337136841242854119308863698646879834641431511810710542122480639439018812215346408573371429624435666380734885240244509861241764019714928868051824216709453748067398386069481238651659255358066435800424598032169520232582319507319491752685410900568105358831016788380872769431638882888952600468804725855851348624295678307957808616786219646964490467585425204960727253439881825891550012094909528633317418874826961935664656638487869339696664412012524388475981157875993718070677764910170523691010990537002064807807065288101991438251428463024847279828495432240188907075831783256323189488966114177252635992738162155484186726394140953157838234093902170055477778162163438183667166892813457956246792265491348195046907144200984584849485092733694944070991606859878957314887736542468669810848715962686824616232161897783977600698032916011588067103073117882053028877998637499886383331463902816157442692981210243545373304298891537315726357025545102840340049498732655820345178430225345977201543476604874672146292525655639483986883405276061873846882689647209471799576494154087929071168305516763815789762564660243382725513971867775918600794640383399932013720970843845018632389015481408642766763357215267759805364499225635336840254630237935380313463232980742586042932959303263619784344008718611073639038759194812356245969771164481950825083597954839001419314959100742908684037170563220136677222174880209071448552175421250319069380117389465612002678633719156306518607375799250961063515843662974951312469662727706118423130629761476524801312861804525809459062874991072722216272858415923698801929461686408816907699576522926673266077153641662763977429631560922951251420745679955612096970506907160809449602210166079784141455034545913155390870703337912120839745891356866685325512408409379594538612081059824013146091339828915829356623043325379488270407446705606811510003392765293040788979119949851815064577037917034197940729653573358044335024020461562549450010161926590753670187008529422005421253624589316896760453389163041667907545395903965214566070375956881474796542615683446494820253893625685776661202964321643293933031781934545028571171098543921480118935173570900917491949072109815382910639939233289502307794215832338303737785865010137496533409999935902408903622480299802859863664263014548569979296012876960810237374853052388822638928646833885177552608221857946506736736828576192704848050815704422320666213254800867775780339362105697618349838080654790408838246797162927357923524062275342882375379175428423235799375955228135156835315051846062007297101809602753776826164555861323018772457438679696951458237671346925889999468845293758283988325102346221738980706518716881593605564005616471781822707145619909185980550271308871325804285076419705988249137915190054056651692754647303644016000895182401400725021448319438379633267774592939098943126776720440566699412658262906433299861765090658882145838085846948047479762555459927997351373495429184641898336107446898064032306578538585051096286438691209139558983541947912468416196897169557962151542366121582482069356430654047827075138322335317157598214114072867460404403931522657837179507827277226918403636828639086702851516805470916400384610304218728783316211751404022103601506765582380864047685679865346979908984582146322639680403548526642341502642840382142073012718232720032998781574454434303398399423861663141083678420677311347477825372324496279805603907702608276559184140709732363310557595222186114325166854175212194076863496250705167885773664898600705363369729747472697098192296311109197604074089174350421831170107377478682664933971362172874923930528857861703095498210122019509046057982952076299091886588808244361519430954526485609516512894120942987943262673263515478090613232930833341512653981502756754421835475160136679796190635491151173568266003329562031960169014074978119699224805423013811992031545779113303982232820006813275764919670988084419850103286842571113944807594063368659926634932098331950661011490377287853988936209786836240710246103591521402986681543109991724981324934051728168528485686521638765789502269532367822948711474210653449846788267543610092314636273365664116035599438767809814135989143896269237535344316209059939005662688002236275269289205246214009944502615912978867415719023314819518421633826186737749465561835381502516670521411116559960810686954050473280699390636095375632205379558263663415491225386819819047229509046048416786709632335997730062006874819848858910183241427312022611580493328920309264738646503036489848733902353460831003418031952969725068477323924125026585567926157419561635690863537187300337807978067792128209629322735873213760424424760767796473175870677357982007755966781599783347195845746294686718399841453523872602418923809599801766268718892742707667372949054171702988796936165572192456649988195140011445041733336347147816194059565287236011395103372074833415045674034044975060279541511460312590540270517824572129514568199802913805348646637868751267680110636967976490028911120952365745095938470521718055145428436811656034537281074637938500099534633785258869351894751207319393774767822943270584287913258206656938612982827339149110752830250211672212676736733670353189523136830381816042087415043907255255459728007169964838653816180567551623676453492312322115158795824695767511135899658881383074494572605758867679179667166947275926712495503416384616033184641989991240662752877682198246564164876135617994738793620534861532238194603782414855417657594508749825745864810068538486105650923088507534047839802952596908144578416487344103971275011923741246612253042261755570183508189275135968755248510763818547599579277071806192265449216054922344926172699475657661035563171821570916539804706069060865052445695820244933615416226098018387337463368079143084906155556568545980765099594608210863521876840597444862920717189042114639209901128281292224707288881726073744065547786024877448529545000080311754715793594368648853888192401040968213903307525090499698025471875675401903677112381861391207824920483022329720893714766965976385675971023107548238380246434148548095730016039118262336230715195945742145311609921554970047167253147078444769500812485769425087882698759965931329178149153094752422604918526041331498858298305764611877792471291049057569739065070720740822682127225717150716566445487347111485094051664692751487129150498590538450402102721488883514606322833714845283916939169373454641732619737835258107728751713245976312369710011643359553859694959909028047986819520871936803697715029056635581921865122047196713848339702344831408442265112519599628779821792274858777188433374871997353370890375248191393027566461945228425783378276891067326200060178056914276515797145523793420360531652164203979930353826539870857027026086912011523396106834469025405914892115616375589057492512283975429805366225845840963586237155940744870142215286001890959012238814455408798035459647410483570989653296708887701854036089728905843663670132599123992418037650442963300372594855862673636599522944340547473256972942612093316256146258408232908568440623372817858345076019378804300096943372715479567198425348388813995230836626306476791961456206424117648468181069778317194003829217056963066567200103822093413449563653810746121601630180846277501215296029126258697393815180903380573249784627684535241312287650555050939299152558937460164688118441621457684656926429273650071919926224016499609072476922550827663919151900361524759600192048762611954639690375651240461376195057649383835231599656238839917746096381405455101173488657276084881597576992426192756350183937531185785075170730736341076583441108548002508062201615126306400520448619835596904412888393070706193076899136955907739290328014985246345328575459155052622870264343651337021438619190415007944832745689090226135207075562230074789468644544276876474084460932345925326491330589659113480036787510692082152650134504720300384034747162593370360344612039829132204617181742109605893228747186683470691527666843750750628508846305662369273768383665243727325967514053591267354136414958478560522010401193684963895802788702238259644704719505809551167714948988423829026981774697326708922323415823245311111176832421250969150925710997380554776748239535839901115399053106626160101962878120828078474743277442758328324947552855820154136545226627445653129010306220427067676368229904313433187387739149518889258494931071972957561305179478948573193649350972273286000130681103369328972493227438155401133412948799066755163382854238900266090930630639453649443271261459381805193799389298728430492100690659453891531860908430822598576272288469444460400866515790819422457681849218075079420545921626351798139414218535999546984341414368650306987790027811261480775549389882035123712512831966616103620152418052858470042853745296111321042446376341083619746733577989354024794699620191635488215228901788215872991101585700643614383762810569623016265263427689774925917845899200789441847597605219340767083877586751287897942265107436695813919122264266543528838330271643271513829050166136925174569241378745627905390368793715824639376370730201887260671664217441475105020936134085997512172559517560787675250982423335464816106398051197804595584491649123545296220336010724009230010402886217424936143497427531968709961323310270714778602204706594595965730015022083882862782886323261691564070881375646749680093334039319514830847363315802645917834220939998211499132821344798385757977107259724997075235715408465810110012000825614107943066571059750926008518461105458414176583964269353982948598086428915797686431390319507242400827404750146225232541388027356420037399704766786840537363151715325234468732780036306328980334378756356654848126534771353557608873835796039936056051136806191128057291646374633193850905847449363047876206113113951146565867457741346153391417934163721191063078697778781035976615015898296283453632345191659374770503933568214802629748223739407816889522986204899081637400421309526623561393284469717093528228204928186776390306737124977380833058922783275594933691425557005121575482270153873869566547454837580640933471294353405978794029696790101556609052079261875180791208298674298609414955487804420081492336495695774341490734226409431867997303892914046130440627595001787976670326552900610066179531647652971470659062544655670328619077932464849596068813607063604109648532549314508453436231029515874669111989896078318614744642576635351856428426369861184630603744254856763766409057992181161671647684295330486611267241013001180185822011551228267094252525567133046962494331529488984850561744243899042633967045173417553428443116048880165047705922307063885837179575094397651051617000042122886145242952260053091857886371870613353002069732963360844284843578557061740049606119372771271229631905722829399581312127811519309918439349946433144017910564154118234758003944353625279627577012898706651289372390494744636244360368446646028390843816647477426306840250585053541312736344609145093575082525007287662028884607439622932694797376640757983224952633793565682863782896240028781381448972945523278375276990658487717715099174641904344287876840150582477931465062495718770918600347996525622806353036060143928206049521677053147949963289705290022082666564567391313679511836626696406693503434959601124154952551939001204128978752850481002155344022508763087944199006874076687711107750615678602613954880344935947370128414629181882222364302253215575305057193182379424322420117251961854305990648237526705166043663559932367660175189768109823557059184669177181702712164481139369702281360520484513831722380254296598006977451534418164986473261323599631702292789207159234006170612225937656901790860962567262609151924895183019443621424174953729638174837237228783091271860546513261589230418331954254539347813869827620009267070212403828945871914603693013027575799211143023769454344208572776091487727988735261369906574925876049324940399556149230608381887069920768284239258919084863526330574698405537603368759391864401071402768109741440255359013128232208918854100600148376076045107070668287877567097979419566512762967378552636871151384515477978380649635880298799331952788489753125274368420353455553294355428097030821054835437419648800046856191439749362246895756570998421046612073430653565329804724585814968596997272402459129179079664941245283787378889639865358444258215791830097434076785964351815268428740055734701983103616709143562975614437864484241818521132830698008441243607497659504483128451245354847050521252956261129227731429379894194447031273313634976427553180562461200535255045789519056959335107086281520868868890427667611103367189344864585424875186549591891943192563308936318501504403355164984105424906365291455983047428291950095145460491636079194219106822509872373545228882116445939047381486087912182073555292531271993052929236335149062109662529424325078558655467125681781036217906103271268474943226027449648366856676103544025897402958366393274959137704540396249190982709065160616727413257920626934518850255152346026499656021873133581410537565912722438747991588564361324056252593842913212995338199582499292762246182635337351394038034929066741254544524993146667547322142853289005626766090486759041536816694467090814197905709868945653434667070745620195782071977845234284028351064131692216011731984394000245333509641190154201624143449560010392320544998603309842969051750034365864979847793976641051982148180049616312341704859320899658300615009016671674286212739088994081773012501142411399076624784246270724515217300594625521727227981079488085115879818530408258929763805566035643770767777203673420283107378973044031716622578940487921870098201667245501467872541450810538555840159618241455727194143748666364869359729343329296367239010188258844938750735490761487132784923682334139053872773209029829664630857839900301208214017299297699059097838059408751341510555519293997967771913326877496099567456604462008186253087078826809573387870641761038096134015234638152069211040419665203439339462280188329776780186876922964232050162930295370261364831446730113320954685666115202081038719736141288131795076855850982136200219074104257715249446607189627546255587128379354872075329321855528459668840802664339734644260645725506585151040588542827629199211339238781132362848842642111943829230208820640696843040520399678753116621539420079969997110895547609866961333780503241320051850081445495450382611046396875160715340842598414830100886094031108403965987440876507313590692560742918476336030985629218185592857481919544237031613575451770697852497482693417163710304000062016691063240978280846303047369516877225019440781686438353015457220879198462792913795307477825566893029860152212332488396697101012375949940630287850449697535265544710702190417707252208874272656337145000312056573231874690633227401981634903670775788721459528586969862689962791345733268332114136162905321632707996366892524391446030619095585112561170766264580366194428678637314516373783897429859447546867249679291058115078285764671051664114501858312215434867776042209089310176443668902257179020956901080755268253212724677583596505847908119615995784770591377877333610419969405173839995083759189208009323016907205268409585854724921788875125976649752794004194430675262901140510801402465553958450877999761989290197160891655091814210908431706771758235717956690396590478574897372534843843907216819474129160686431041877675242923946288276154028607065916023941770114414963618703395026190552988107961642599566129909829777733760008373308771022380037445727515341645138982523998645081287321199494734310392101040767111808531230457147929686347055550825842367965135563060208100325550017607066719188996325752615981521211805090012945046469243032010613790309902706829109515786961394879641847434601370158087177240066364817589506468527348191275384713309634087396901153581460421197158516466619213980178284694945307538073121645655522263086017300974497008853660233901463528240739693735296612420625142476900899621018109433065179187045925566894887694296519195415712022133623621654954268332269369142004584104121337654611878493797328152437230027167890486924893505827411353556467650766356703113625905536808252299716404122861458993058655107171008737128566725806199852499148988742967290822547813759710389116833470999645920301612220056652051622008999568598560067116177003546773043184043800590771549151701640477183204147318011666097690354169178239900383624388225966884826786536633099430057455649453566804890343043864847559565462755578356501351125587511337314499237293115335741522658642194776775950978878709872440256506920552927045986343333598195236529719339037124290707585819410137964952546545999582547487864369848798583350415529565628009532861124503884494166323300908699606763957469699959886471311272614158344893355915353837765121653793411515434730883196234409045996392914341982362281512582923745446287943872233471089697312091295183165662567601990261466997166849046510839700119192383493972549897914588524643717478058823465051300861798238214370884794359786178209235407121618427610912577124504377627418051790452506874177284615291060120859590889736387879443550383437137998016286955909567476624867367814851017401715376300746058096463667862336458834335406309498983310824362911192706650241348828419400769292573270783062086752226286869255482239915831265241666024307565996970621241014947475111539876954378133942223689245423373597697337297238241137002621290720770510904455919374856825716591330426762355921510194886551493469479534709835000155501900708574542021297493451036755769179304640764020537877987636915245369930430231551813593270763618930649704427730736753635236679223062603050899549577879567755872136915434931793698588558089879871246830840827483283446550897853041176251842748519160202821402382930631459052441378109277366398979820962343816367917245628730768630206302863407769627555620114877641424800526806714929272108406341326858259921002093959835589215365950185560481518715351475084782555973994084300172198094061100894341510043840050350749069784319920981321250759206604805049496706659816009705981908712795105238890704708094790265106928557731329367061561650479195002140860169411878687106666057200195670455414592972266795661450094780704452993799618282880499809916163118390259953374357023349644510846843346880313905165647717127800205996283963914483526451214891287644742261973535821262798892087384770036349273194650295517475808209640905684823829636125289614408293349399431039515704083113953174258241974366476723411075801868535334793004785583570992860224220668110695874237514320184782222862230394635898667212888563600229462384041810507507159941708436918728057487684580687658031990973794572796630063627128855223126778648861811426552945012379134585966351448012972609259523683048760403300220108172119322307104792368388801930741969656567955854653781586629147261422807039708405692444037281670589204568278323934786520395209033582756891200220087235589412805916144473038636709228689271785796695751400762098850065104665554173387080660224035733341458758621324081680898956623526475025496801183925019944197158914687804960907859779115552266717347355585982695285493001319626881645697989401075025187866707544055069205055291702127423713231371366687722379712625973701361641627075877778345820320287302871781339009846737703838167493708910766501131903196075889810139279423551649589372113691880511856296602966165943269684757410316066860372572688939723908925220278775727548672624451392099546639849492229602728165621957881152888290678539639012686041583896422027102541940703268320256233519899745526977789375837551949736932404518153818295880616702690517508204966587245992725083524589379761260810882146469284512543292971082049380967215810715492910342177601109998377798870241061130992590006656576457017145274216948122230349731823649744274614557002137669399177559954546270207681575366056960651662754176898529269470340081691912887195764389274673183999838496486059069493295080974717998335294199575803437919854265760288086292646761685004403022058641807540087980057655360675057765702339260877836744220996862165794919913179612927066270923778674143129412820118954889597170144197794420380080535075520293585686438487397466595884383563836254144486007551976292342864435832362514330222059392851920845837745828853823528686443372156172562709274082738982767707479746043735240352261319422222261940477241965586802158324166862467509528370259278381275434416173610740095490507187513979336962639663198676180356608469097505282877756811224911072043682070334042517811552656232307694481641085416134359462259100557918738027533974843490664896947804040729702592082421201026953561649647811772774318761793484350829857107368039725020635137171761546182094086832466027175432782855723960172765300519547011623394180506852918773312664951612148498063564934834707558683463493383580352873636668203419088200964946413481406249768395084728526911003520394179867463971020559681315457965627993580747484318136745889501750380139817549210292243946407778518648748692104042290873810775134261005417658261903551231759706385305406647009298216650391528817477577857350070391983747113340961853516764282660675856256811197879972314786847566060529678526561521629073427324288659400138955819030376011288777713057050564030422546804412216596055634341845828176939836201481054385787777247349196717556564835895742378246280526897161470604994047287817347389444882280331790551643748658213953607579683770632634257348487484210186817299906437643073861481784800661795961996620679100166786520335538183237235539894043152084168189626084934058278008936822120434994850801586601251971385925887666307214882660708236842434806157949231737004887974535289756893478322707336112729093144451866745348116040210408351586352119415500664364160031285437059072378100999638096891601748418597273199093059936971743733595298109089315847911710720042121865121918591222302048950008361663890689367519499089146071890936575682435325391791825871113906248260618428373820844230599864522232453414139756691833782241912129669704651791750739930197265622294068166840958582223769092498299233911924509923919251092085037672229693165311779168210753194318030650122280533270445990111750631944070514461309228662711547370944443750650216779082958941941338039429337792764975732214946305410077479148972177717476946946514451358475467987192773098302466919990685848271812435805484313216640689154254879442366616759348147031962196272607564341036132706984704987687853251184629605507639515393172570430988404179054900648993931823522535214886205150673214522999172524334450370760202625878019882409432285306418258960310247668721799037018461853781866115215320117875910532959339272479703342681918565994058316446027574013717340524044727154619295813162573368770771168351307003663331916302530038256679060364483752962470281755028138439322182306576323923359283080161405386738872403236240634648982702693524308732876441815978063272342321816448560297249981969113850955554312020125086231899807595830409431142340385078558896340078999962662903030065924617658242523163677297471958087710788104809013068431184727329276138264345486230379052366846663384245898344579007471220041838350896244597827322850386983860867736693113994478577509608166386951662116443072804351491329650127201392673323751210479039179107666209685683620849998073652031812215909167330972834622510508976720147838894641999474665689184899563517229491345629227628529363589549503404280127561277458077792522870418785507376922041680910571997472463857250640045771548668850704349078885443109962551614275415782887351174817517190576463505519502311564755450699153501086580085331596774818744272252949986074619270612521405396820444461780473636138347243806644190147936687052612982484050101419831423057997597269671498408940903876700920910886048548036576692237156365089189606087639970787446911693784922868951062285847068045388526860994361108700586363333504820127455700966827771899062728862356768280638142613426384659490784241887548927669153854258601243576079939759235332313434849487871633319679949761636990376295092167040176254776661657113975329321304914834765833510674511339864512087104981430737015772169033814693087705146427619365875955848932495266574120225414630252873726127107403009695475402844903414694890499943314316449094703334880314122080234071511828396491324410339472719658546615241644919411728114530497968912068591054950919865265825740082622039369035436078723541996439000510699971641665605560749502387756825956041927179402332042686732770379358686519336227447143999485437939440931352533590861605397753830557305770575147125412700064015632077861008434178772382880387256693570362319502813235007344094493297580163176942182236508187241006553313905806714608037808276211464483676668486295765064348911186221831656393061709020679019220437396651180918448243790141730596324892853632729898592404367225741635410009400168731359501563426282772184496424672592701202433934116636533564948302919860802754187715425558876891938936912156203272391381700515170995774316487861611989810334077202379925037616459755864456284557412092233658994873548144128324586497539426051666745953408901879658839716229758565599967973970546309651339331947613526731169460105033012538633687572669411696789330790215446232171504607783311591681542204732772217298477094744759846067864161566411708157648384663575102397039612852088195068572820792180704319456666772775703922454119791588956753324051777184413042599410554967000589368852620363520250007637123137746865574341340219856937499148460974920460052359265158342369339032551904708716516016646016031273353832866713595068353859547837965973166523242465962379662810570871725558475519965183895208742066177571013438889091054358664739934249897804831912548917355944678934381303279167949277530934033743819110281654799470344322602148563146327121545936364360845458035203514387962266785416848639972099558931164768571929301638360540447547778924100749883773142863874531438945028508318956069609223909286225354000437623977708446677644614769806179599415261543358797508144918977976626397404985281705741813289350212501739524856611217265612697337834178548851671570577260269003368790919749956653133009228012913865409998495142111255926710521869313411535182034527524519276448551859111783509515988131005720800414574636543360089449490045024794280025157212259536125381228484899834291347779767258943035025177913560997638714183850995429919030799957467962861227951524870042416468634685271224511337620688381021438087387848944788441817251499993214924589742747863271470137806901955688762453646544840690759446055530189206768451064884364862896427593293795661475477364936547818167400891105864531309811788583299758268746750236102426761460073938157019682199773474372896561846841912465978277265701877571805861639608500244201873207239906286565134006188956009253347120519645462908061847605712413101834398514603706216965535308483790847375519273965776305679930391428983841082578036082544924898085284119939824671924550165866341526905311271399421470399505404873063884591029455254938265225574680160504790505414970219537468172221124410070758471023379843396785460513411021189656057592767281729244276860092428566168653376111514719905364493801271043667732914294796212523884055726416450035708274186272655953754517002943870654823399397514364243917287073528367301782021662512993837159326577524238043421710385083755588448611622449151725583278599783185201833195146730543494477155969691463705951659680353468385063046562387806261915066356247504565320221986937467492821442853841166406241680050977897570393366828339467271076434881595871257841181829725860016201520253233957924533701093506649550228048240162272685980110801956205509762941975649367635151746637073996568613336873469679985130906704235457425337003690325546098234515597489630622627060256190305705241329892723339727847635244242123200007492858133973959496043706789668861473224267103193672995609074658117047365821237639172043044888774396357875111374130422010917872451042014819379501535567601859410219979627091792467987264842710156289334744184098391115596355075171912607417355497241471421914901714698876722926531815789378651353256640049213987396580104908040421680511752064558627529979830646595861348433521149904525464474981292109586690207599636089937245079773361188666002195406973716201055268885073166989086535076046782672552001643930576279553174155716910824817942737740738598264115042284893417769022126659507565529837181003894620283604186889673882885054849851374443689930817138033460288819635943470636063246787836829060696597176985193611718674297433937754398367529889424477981736246841115384555220650244478260626541553250270212408534857523639289443587113589246166741749167456581936194276166680915575770875998879918903129273316775964444198296783302107687131674677219447251787525013880317154217242030438170880351286296595924651129800860895637139394615924753875126440364242047389177385234817443900745913448522245692550048854122155479434563962043952444031143065474670297899851893031911197689244776632971549077585139362536513016784232336540526408582062738590603417366840234174792582270240381111180845252752647250996488789619674846211597373304338290824746402256171320883112740855654550204925744340535207862189922061191340159502614713207244341665850471374780563077187309982632125731884051297277027202426650298147396123129715926575025977926976640330087281273040592211791904319936919106791629181730746328406965106190809720785993123757063769310059207798641444687092014165614611386265902274356473995738855910773020331237197109896860374527712751602022574704792510397169935495626433709978118619828850104254129236748380460529811525385309331473726175605715455908811110919505614378891512772654798674798888678537612857687931355449092095248026165003021141715265967593420047941976537134223145832764129489594115402751265940233803297091956862473016019723417510281154332485381753520577455220970034647348111767881828853066233544604100226425261756732190643817979169081050545877219406777516660206676008939309858609793779358487475866978873869740569161275381635548868700358285028210267656163199590279579952163904307528236343905404675380427014751321034883487957728532707073488148115710919832173400401474831593437753742756910566244957908364332038894371060401009506911340726970060383440490665246205947048389067254515358746885333974442183963359186315297014092871930229961711769015843610036885407716650460372935899114793543079807796173193236872289221323224109466553798742048201799417336995436754373081679542377287717420607224947041245477368747075410060175459916686621656284512284585329429680344186886342711178677026264064018827686937501876691607049226037545830373723101369738266342230803156244673056738013017761966617893057047216071729126283568574372345521077476518383009900439772180226772253680952172719376962196489210208215255248772435305463154206789078192681235312790913207065230109715006738483492744914751999618301304255043747599918093476538183578562674011595311210658122057372691429450513753707076680079618804699393911042539764774697583613535852588534606214216133490527267093558255194558081626105164470567178072214012730055707177724421537345991364964804067203482980111702567638304141653068765964059114295155251731391789128602270885224720211169092772415501208781479038027364666113121730770018823106650858865870601968105119687457805678737665382189508633247976444576608356061462770218476766464888041272079622521609176094052333075765546792916739531965970412563323221596003379233855153992101639086542376746292696083883495478092703410029717063286363061263204243746820239325205756565312728928751645620230605178988981322083212249937923138230330092299421885092928509719434213005025449476206266105816921207534460291606955693344220852307974225570057466212968168102099600415691627198231571247652611802627511672227384866727771730792553941207649703903548896136198744556107354007553620616108146900512982531209134007924779801370524292943725181469493087356234491279621319690074930190094253175456377704496843931390979570975859977061910117288932896163236060129793248598074439700315270570084074937064193348676904736251514853544340527177145141051378776068658680691821616145103539988929454436551980005461086402479085217089192817816894672752436629111119136336106594127940199229992071463250761543376892257936947191335794712362908937310479898651875844214528344168899315124809426864450706448780941705201196494505370913811433606054492097638461353934958996395691117905508521952855993196024143773155528673595959727701869868417519551769401042924044411825399703868040518169778028410546699530360959349698419132108296119482654237101556244240500405743822380334080782935442083320089313907616808548287635576153165646844897368271364259833703964576916254060516942571613789046822192352099254190265220114221418058673811532116964107295319507528877881058203879488732194675555453345246919510605047751910682924990984130337183261168884995256955135189721093781900459847803354605861662540434490231926886275827083157866617097341497159654816687992024786079164401889510862402889660945872010025312124538008618124888937264410664660100556255139176154153169122785693749504266626388366732788645226181036473585397225875421948273503450162221808603192118583291503091538861738397908056034849879757481719863391221902195889881954806305439128064512540316730005219906578941315856821873692139596934405302898154914579078412941331871480913479422984890575916345292266079453107409108596232965578990960937139213974374166150924803810598672852041232693005788718845628048984762929128384487790608094854195105938006940527944344339529472012461809727528108248772388953953112024999425449027896083685410392390459799468406438499405028440361438581579889370185413126022891301528343622906339440205027968742185596877856613047844604312968674400949442568593725418608124662700201280911018655406031512662982042065403677701818328881932504321303001033475780189597654639704860521232778754756176452162991164880982765711297280532471508812528364660263097051242049925568505516009208700745407519780150124657465870977060984658738217364269774582439314161305472747478286310751424404836362539309390121469606957574177571078127045521030711002226210448710058478526012017792849558514437193608937234070609669138484968052194067280754294388030267704090253796215474583690087814345747079653634308895910874931395865101860339884881069148292532263619488163676815336251706210238574202879472759231750282983094505193716993841164490787904954248625754526065470835174928371608452461570178398650282625305772877623455875825783226092412616277497730908966004891425464850661041900061902042469660483654700539090621578612890026439891629772688135167834916866602009933124991133357065004396905539362834932042368441092701752512087382081093614459826948657708334973427226062757131727460728126423354133431763896622818992278931094520556252534760985967659989473211848681278628035970659925636681307809214114038122433035374233764644088842392691126107079487485565632071035565737918448632679817428478718909315619759075097606889503455650536891736856710398501050759593701114034131381387118398024326272183075658637703867053442366744972474506213853326184569715397868645919645311342292953895358899136753304769865087247572666101944494846111406832346231048382438708705113316750984509923171312252490193953330634744035170750008055498953039529788144730195539386440867722781369387587658792203015308827832273710138400306555639600902447092299145719933980681026716631546630143021113451705537158843397709788869934992126669076751973447259307484009258092563592566946201159998372161813316591779316000404726968168891779548867177934331860917275409268757491362976836834126352156951041691961635055892834402448474176864954451780954423305202832963227739099320042079635153320700632750706591829863727420120007587328919890320888262085883878262588758858337388919455962915851997783593379190190205819425610639593353925196947093332863840071312263618094725338646329478973855184621474261368271402125361471339404487944498577588151180019424824378039388339446236311276520143263528791699793855239474346997982718651441618741410340075940277322639574641032135414799685484766406716024661269665700427683210124476504262606827751924521338883224919349212640353293267239185365260704494407832791199617798537125032542954675031090011286671207145231569157430889493091058224041950196707151001907444429075448979948838787265462232098681851365662931765297416742129910524964198928549102437541550575299296182448875193765679875541221815268385102747102233445187203977233562424705699071600978999822899841710525125861048215799287225730024601103199982119294360092858895206480634379573293819494749102050301393683521388592100636724893140824508120674044814536781289906065923797464172536930853679699000859053450062797178640032870319582550930057142388981174083405508659009133003969337658049133751481310771996354220994499621741684928093200851216805422865502360600715533183816617052148386886543712575685054975469474574299241516106998911768473549142927839335672353668653149700892787352892696589295936581048339764446906830425582271247496062687411344043606847658757792504809195359598558006440514923213892457036656457388993616568461324205324486510584011024050321373346834050461192288321538941868836784029671835207954845352761337921324227220273759529280953653945884607396154667023275853827723387225168029420469904395593682223324269866472367365331213904964853055871140075432003461606264231293570686755559116478340146958616438286370446790189174999238217006606237700189069203160015815252488045467896528751931505960392602226692501139442272253343623134217689089067515776790299889961226300351179062707428544942121339044544464330406906437306198926321009330145735434522855376724974187019319411870113623013090828789837901864571826319086826440618273393311255963732943874310503744318629986856342407872078941798084800792763569197298144283933798890857056981739122227440255862581841071175741772099259839060095626308921882925296079677896869295529420567494887249343206667335560692434221635686035241653142957178283074167645489262101203792219162009414117451652138463691160947233475788036648737013376548854220873685557538498781369067245671614218291265937154969993821233371145087992425941156628465179751320733838598487065872059878403015611911939836766431713783831544014422132678603761932554151291427003918640859019757830749115768000258558959249026644201943568421108347420906646672982600032192198410486221339902060793609078296739923583419451660273903922462601659463500569176161588861989263797267435447996686516808315723506951037148622837108626209612681601318210406952649914300760498842945915805008679779116432105835777229336944102923129685135116813985282393860388978552465310684619569145001044203753064192038082682039225016128670516441592739720983371675109694277974239389989644841502115194763595281824273499784485981267448035213267257868026509049927939384126912307530982707100242720101973040749100083566662759170220903272562540171024364466955372075747569706678454071873565232900207556390126075941454001524877168660079907265536344382094562704531858997646265925057942789571320220826400311686446111843160084808948423397887351155939072669559903911818419994750431309682964968224233965848853099940354267504847017506774364664100654574338938040501370068978722487356254671310841535606077125444209491625438368054659967277685882748769785355689098043260139262251365364695653560189048581356882282605148375862493608844589739977439923663582510229879458792309402185364218920338499849891288705208173696092222122340950711372821649606412298881575892346407885903032557565450109255593735041178801858990229884231609628928958068449483739497832005686263350845641782643033307454586979372411418322691461969996632269025466096226078411087216576168530159731491892066298191131626081680938147666491722202032586151054037414632300323944344028465747723537366903288949504105449157560261410235245132931658337595804076569545841607317601473124674540810926541924782765129138737419741197307829749595588294380653478349671404669343713119605603180047020353023380081532774611620585966174450424719808513715092148057513727605603185293430609884770407566953571012300713845583892568349453226986677957142110525618042215027186995268779228716169267809022897209670471906619833873813986859344728844649267342500519335380914581944530155980566957751619365835134221787902505332272422960778281824383942387896458627685137695877408915253282775624500906783667825245134316240537266327659161223253019385967534260621189003765349045197944718483532545456246664781642783722097354318343270929077247227645401745835379646702904414624932558938537094411872237653782265285450764426491954014952263088876171242403754164760081919610811685139374772376415033790122598892008437638414383699197268931226309691133892799305720263878134893441658939742653108283155874841817726085216138212896504357472446397276151533660769976037509353647782619953404118701387920898553129183287784342245022371559959647147658801872672188849290005633767303288099924599752804352235363393729467552678692786915993232879589196751927094656175735576520719570977796964540522598039192822231297040281010619841380958367646724705606162774420931415575200816779758233673542404657755569516020396427704129904026829593975066347932625584546428254674372146126063075248177742596613857845794483038677922098240005168918023053160501457214131249391318599479856636525906172046185715638782455989747597591800099265294637002392054488434732818859116705295685327793004311364878146542703541131389125801945862615235500186818550550216836516154159220519541172881976942073022972098145280781102639975288079424660460120459588642644833032399897855030932716038445491371072624712855690767322568369979805274959378057363308298367177892173554386662414818704369944457072153526170940726253276052697742690772880735396281924287552713280254852354189589098288481830674267137158115243653259961933327911941163758346458810108951017452187858670174943873702386237563997708188209734339067561674868590178591980777200213905329702060715294362291473858742272955290360752711516716286676909816838244665229020315414062412514741155098561851045842498994433888154945846279827639814867716474133983060516243049901889094989962324030573871657144951751340721854326057312063734541728089798188555747525019478163921986241336681354821200441343167570315975476843185567279450953593001096486743273228070508437816774983744447977661159273551826078052758411747113966718029551175485815924622520527250073507518635959699868237822496701975618528775867063642360035233555418114786461382596407125791473454017917225196818636026388515193613632995037570804973196272644146931416007683861323693229739636819800123200592072079828303185087583818644842847823082907118726542512447570205315902641951354174496716747195151814182369865377845778341377543584651251629517405748305193133708394225004722454582304379515038698959506908542190788900110669620799769948650540428202297805588666696639472106212358333879491231355077427907997645090750052405967590724884327609668760671632531471070042286300719360614009067338506746970876765776358836008305057248727969454070409454558655818752933336843109419533733792468777905091225911581408953414150505526358123046745962733359241870984197914232286858674932297131588939704279696368922866945831864279245637407834354141575215441519843819751390722169646869879420218216808163732243686224356134660279708598233328147787475358451520322410749939565225980169737864588175977870939039986192366507068688611741626799713486840877512853794577893118906344549941070074960657943156567081890818974987755604142599552526811478508710096203022045315562073719692217081465796997343919465856310406704872930367488452879032705963428948585837040038868277530444953681461805389908484878986301012109180428163569208781816200541086072172385681338425462917830179197620872524316288704135422913552534826995706891686135257149957551736983075437369428415719962992025285879498963614466598952187510756380383793468416205895507815824915510157825707737074126773533186964513299856349447269601557200489332745211246923875530661162060242823394785447906561278303959729512453960996892583421402988064423410228766769604358367227765001014938270966508339900940973730044203771607431109275487784463615460926618485951244376999443800951309406498545569875632748724038893045212940033133814492131790655803490533022364253867497215422506880321557825920049814483650064119219616280699715025806423263278287868829305951084595398804366366705074161787873699042352747997192767821837616861913822935131710928588114672920847004270981716547106445481867079170310620713846633030641758598552276614638394361063884434919823364951900952451988147149482219844491472254255876323733853258819216080356337770698024156780657711189959624820148547371727995335987891267692008571067046674843235985381964827290841640205230498511679711393648892611706265321413153682838647479891059188564715064744794343474635171608729225274348776998375926967044875169530027925166249905589375491778387781893025781933335024888465219681122388414076639843218354135644951440571184948467088622575827503109695718547189301016637885860778375393106010369538944244495233275122270924433771689607414322914337466129146518823610547797404611205760156496641072060039071038819074578116768799049073773206627737044023722874408962939294308128914417512741213447075518985467575350011300267028216193529913256618662576661958061224018043826788910978560063912059916812590136147470980905322931873279487743310240616991110702431969382504953482523955602324638613205741784507802831660627067938520122050492212609627830484788745529193721265722624787040292227212241510853130129929421161905508840369878819130745739726451420135944508685152825763133466373892481437345027731268193906078744843186861261371872132580599428338246033404493065943873555910832660477474768743961297825813812470834913373973497142026010482475554752860919352714638819855618892172576916196689895858650750674573483210422515913822233468136550329800258444262179503165544064621354169285249324125718134170163321860944813160214740790452870341704089684020258527762403135980456676728406973097860565461910034257462510452194717076846268366474221119558518385556460201376441468986678777218320517838635420447600189885132770092369894241378002445772746631544110776655547100137500954963948304514814008705817314015145976933311146311942483935605656564870706464301291066503951747507060436330174237381394108389488401470837464741703155866300685235851757865847994866505943144045352897004969243701960817911162519545969962703416721842755669973280640567448675284657433766167480724886463189766509421934190933286357081891347067908001713083023740191820063507079688526332349538043607984039478441255983833598318967315078474552723011364696579071122511065505414786098860284150882844702705309247267174255764271824480847375053520684114504524604634965596968738242376954371744311250145209191162325906461068567762295531930013175423922391408006676486624079022103558531411622117799901283196130720502725175936346029558356395795020974948363341141034476117119159895517414864478770481045591119906328020952062185190772381093979168366722619028895460025834791324534575043502357241277681886991053535261723851621939345608573103870748537873245401843033400360009166955621896208046423297399474331835855408158538644954286679217116964584501961901056311963479775241257411327719929235982295389273335961714766835109867840909217492702355884387516360152497862272456247658703876813526374622182726236633390092321398079371465212016059388020587608825501145996922522025711879855748732956118531886796182880946334820437683012666244571500900278482927319754028835527802583409461446594809669547404263351434146407512212084773224233676567637521853269326109592861857836813457343160230998571392825417875156789409975941946795151855087685013824262455311384107582374952268649906213376615974868923019485196999931787846577537649245900287853625420000913240940089734028373701942119138057908110871126273039841812723840820370088910451544092832554554003153331805426378349481562853815981932673927828080202050108518588438073555611707375174363466184602673062234481712780676767240064334428702159468310117691046592399743089245280645565407478699483520554563203748773224011773782695821392480756443352530909711608578020706442512064348999063931741381857453830304325490661489141670636613899543374890285806489482077712044864408811190703342754393008695213764019856961070961865894988772458757924631857569086993131953003301260263933781248515962740228683831550638827767613800451726861048078237766587292563953422432427706192854966368891913361159164999677942504717994530211404728114818413629205875693186790916554627095507083665939992218305587799631770186876843515683766105124409563347772044870683125480342721399510052045109630034392264608116301533217453875157323627919861180928573603415734437278162074126943195944371689882060625711937812225160590550502650572192352738836460339241716755913905646248803736024101592729477537073880880434921668903871892036980469947001309944660835675365240944341329138052065783811502950385057203245132287488165803465593806551999400371811175814825303229137352756364593048164204426586673433725605446312027373788042746329839132890642061697182449303045333736846906281470002788012362187155549173352117564435809008153652361307720878419649630397321163028918739537712489004707654366675259348453831979602836200435187295368404430027734026524003099403913031797874281194437172931652465808529748782859070523572850861535869985051202158386226923920548020667906330693671884549377115814129880605861767770536417187072629604093348129298830709626832971174879925621262694259130973930627920223675470072557557889286593518204903198388379280989345979227422356389312492887670152466013555229271083065352176956283800982881576255463990515929414500950763974925790979364275672732081424991711150521041634095517349711292487099663531929878135181234163102966728032320336940265224291424838253122982509098919246870425768501302251283878590874394248922410383223317445732389474384827654632942371684859449561640245810236372558077663805914914751484602370711500749343607231018715483150869476009425249012902051720132500173416047685512043135905412176664865066567608152437113248865888991613700477251117930927022220676309954967172952440982517099780314349786065014813504623638116509954822597729404970423528969239860576714586357494531117149534951292692785002994073867529792299165859543844868755871055156820570635704058486910542193045378524115207636187472810021244928577114390868697935450830738802883335014459127592055567712603795097826325925022006414484792154794031530889987000380271412141531213877800218952768395438810038184028481728605989786117271215769147433230778757739878186945283590505755303698285176592512634584147907442076193752646713937609087413522393883360231425116049488256875336242727136374658492276062853018410533278897346861240519571787343208175053011171965918762229082506933668162451928118779216524877473294281438930210692428302144431024558416676303660641772058371147273879320262669714010177916003100002265810440475456128711638408795751599700265289768644805413516521726909167236990153834231223932562730924317928323306735524622212791270242051485337703943623287559046239998101996437640972840210102323607454591426317309179026176510585161321226064364548219736062139400752714386091637112278890385079405595858497158496929817361502442991893010280165069909072380196592323166754108484153129939261100457868163203079183215231650344757729658730091095009332420718747844072516109998617823867872974581153188175984941017569764487548730100873857867970437764026654533289316409498232409546225544296098065444371121152467477587512754790111326815895958107596709045887508653360184171025779822896342023707524971798977121168809826314769348800105527970201624161288851626798714866336251887237707543417612556429098323606897746303626224590714768428006845085525232465855551245916032190608057059843545796026323318906857305577312608813755903892477591224228138378757738507100600312467448642670282579090971739762113349948824954225454722888445002586876617487220159839651869130685730353931862151202997290224363096403883446603177660957285561182314131821277171515660034576410521507478745396314874293106953545497431163760631156623395916663616272900742504840405011180778082923008477098083020561459577845981432974867285422143580899559409696644535841615038732147273731179784008276787416542425138204534632478257529662605594434082640608424264038621150358922168897938770279397832052118001290964975785599989236460957654107885051418743869506953483448161288646159019924371261406633903313881688555183870456864212626129802503181494430200890660954490918911282901313887136547032153430607017398900229620157586427960094273049300714802992219691727599848193960450957823246887706718408282251220798465536845611327261121734208190344802279730236342569805981615924185561443465341721291316008181738464930257843702265198967646526386427472097517231469224583242099624712453151734475181733133160722895694092347018608770994125734939235839985232494399534757255291684608252698184611995340076715671292610395117854381074972451751222122929832893707775403925944626867400148213439330782645875029203288937809971040991658897703389649308676210025852532223964653768194388598180529617037735752500703597094500047041232530379656120894597399781449080087993254765582199034933287812188504385625357850179779970272592748716385433055039305824359016551326979643190902890077126309086639921910107759392716378498621070389956107695195101348535124235028422832459031923398988922448153653161021828623082684899485266485739501734402745485415808114675529822689609009861216978993136392466487057251812779598699317993594984214257518357540218999398885913570830791806508584301155837858015538590450772411326510415592612266357500473887909839209081559771914364638712076293174326474473222735533958781385340526360514531930058672474234062073078473754622461344640036811862005005872730413802826093279104897649392812526535227805217675364911485991944680276580395925255027541986397056810191700451169806441457736578491475485148536049858107779970782787064816111012491377430742758877694056914337487428445642174623502105148585585574934919757444867596750081210932493702461053984438386007371513835168892694451502596301716998408727508590097451427150273975858511655043893710463217607450516683324238729342395633609372178533278070900113264022073885795557814424971376170608862963006263593768571801967719917924894589275361638656598680922951363707171079919512236097582405674759634711226997623939429970050977232020806746505048546438764803333864139754579615786598199011600082315817245848218235379392207844711899880492619157480367828224871545463214216666095212501016248274176359434562250211733155783985197874511257672214136856086917662691688436337254505985340998540674136839662297359937553367207948481970913225514944021878671909826516396529825680567035530057632739016081118717718159068216811696095068604005626262646151314418114085089254950612789352742233342975617626006238997190242287871998993046411302319777275379647030431798793894679846912764178830476637256073353968823166940415514975987424103865001139613179578249077215671082603490813575500745458839214799064031960436234214105927229196166375109930670307914476874534320809173853401260365825115078095294009849159768487020605043105709741365826428647013969670148003957658430810231693175071060331494162922401126582615989925232692695534004726258731448839070206716392082643856756828179362851069190527424490768510853665570639803947949441148736560793145335681936993372362323719182524077023311292726221146381568681279140982875973033799600895586307449374846027702718855969300000984019296996725980106771591435673427814905830654702267253645068610374319761344574120904866139065528112039703436601104557587103977713858980064099308379893791681170008104989085207755125843958127589120432115018550652751784025512724031076135264068997902156397050698002497881609161971421648302551729688575335240578710051543886566385392189399065111151250315832464627133056480874743777925806620753082886363117928734236039342345864128388596525667755394317727257104720718528089525342054338394728232146707477657331385959352706682135329659725541984810197381502373374338775670184515111844320768598780129711792574415355618625270029572095410170560395014256380479353878573095418090147550723631303172706513930768091168917053990690842815278665287218243440253678422578629682758041020090080987813012015005310548506799160881053839052191409333956737181779460726827405333647569527843250237811295287108225463701536432082206073959354543216128051811072009630318158921006603650189315981478994455201128970324546280662458396158065131660061059027228422036116230937273050533755387387330742678891747376040289329649249325961113335104060026384767745644046935956029129436197217485497404125344129189491041465188897594403537777991615584439545474796789132638520401437827315164475524672157454966852254848198836005152711447401757357195926764371410935461466181870800047856617549207977295025532248442698168800151292956524047684623939210913199507603191011922602290333343220490345592109995382849204525275605662687310556354967144328384393878554057613964036533282738568764171210754547192040853276794685045337689089159839288355487126772245169552892509808783184195874746563564415579585013073586903303953760394042160033368981134157313102304729208633671776169944531954278854576461662684827341980915960021477667473188014494094706030093136062369796727118773018192861567411375845543425903971788180772260845841589862662947565587954977192797727196933770580934767041937807397294239822300846926517552286229617035472138593574724057206734339737085001958000189022812344625601668657197767796713650920389066673159304320719539405006435634858922129155865475463007856225590069906054666124720868000596418562333118080955527078251443810151124580179282313089235734894050227081411978349583819549805361679510623173538931148755054016268802446296882300021507041758600648025436359200274535872150381893039802116415803477487362791353425475648820117108338906410640999124752931365298056558239777048802905948753965363026711591398548844013408546135628221233754664785020218657194253240269990807486764707287677564768183622962279911765648316348858370565306828510747051964495848520065512433478458383566983467388373321325090306413829985473521026654054994852908552191874022571352017445713388481927677168750893380773147904605703837791447883258357635458925436732471910181489020688715481108591304245159335474785839084266164699086757165239289020536250028048595589856149710762895547813850990729921008095151511800473859475070033690248503015967128544331157044988078257438623966538163780966484867611259662879426260982750224828061650950250836028140236748304171663027417537904553697520274493475173226447269758354457905914521999305273229540793231756291127030811758690994896367483628803054304536084020660962988759181761251774541810498125937140748613218379198333682848691608874895828003578747173682064397749301108184534823154604688132827067100847267106549654829619876660380314838192279005613615563888234220119082767317296915368751119835565983515242734692464756250384193067483581355400169647386728530756729898902462678190899182969801283465290553653679190983303698541352492107196733236772892320196581920378473251241153149616888954779423359828396547472891656638188379843426230014855172045310976468416185328070928563760596937640556336713124131465746766395196226390975402421411005291631994011063549940335301101760373123532954285434882319509346786689592572128153955962093977274058837201779077099008652159495951001705619596829351486465937715070400911911658304518063141964568647847843282360129402183434734240152714526395100861639334269515896476499910430804770686271239874137781203002612756428374719545834743069637183627008408546588741694813131811655244153218837791225212494986436406300343279041772320994958084234236193397728214625630613883466557060852073525993565598724550543286658430339414486424194289052974788687727744758081112471648446127606973220627623458962548171533811760115912761767479063965961700734036989527235849630155762336273863034572725455867874628670330391803814121523802185263938028926650446662263977058659366010727162649476706116396196899399712255132416877425423402718258742760578683121670646335015940300185779739738328571937253646811339122648866443337159393667171361042592531134472919510830283449685155446229345267444544368599407176560477176084947299595752173949650773386684018277387985897897561966315538680559385119614704398185337578286960668955196825687408197682185323932648709557350487751235734671286575443390623992980472508356087760181744681403434203015017515300749354837801987156959681563262817542862404477484579550417578630063446698993148464551553308458935951014725581063267886345639189933571469765191257883174665965102345603030482151607948673230259555512128008999767453993445424629944441379438093873332234344652985434133499017015765657751733133358151777082830111094105649117393912139306034979575818096409525226506977507765579403008539496106613347088700452046855852213383999507161952410431059105777056514372261417128744803565324433996813274666767879987718194160616823491949623193066079518835490017681214389796904772746369484246609622085921499092871888989489806327174317019284199475179051653543548615296901984063791005322757148873516716630783490387267518543353684139284879996596083472859718620333165675941992614858569508726900622986075896586109366244450749301994282381889982815798092579412971690296783078343966858348588326616694409782509557502876557784834995452311353016599578605667896488091754919621653745321007522393031147226009504408808711573856654862316060696718414914996032789643290133286780274138878220544074988489632159120485867198989532312622755993454429747265617038575979787539887706623285821100773278301584579853337313467408597273143211398042134094241419878220556960059554526662460775046751314041845656141853477392305837330216418697029736625486307532352994764433926555642125118994768367617737110964935076981140931100087191705220879493002822597537517282686982297477212331841480916085167910338393037272286501389327130791073516974901050813572071758872957783095909196510313334425481216520478527473536972252379446059328722261613926009651080306271107681237555996713464130208910354285917858458141795307941454167392979558767568490395071390909903512168493400476067541725642547905456019601004732675020062249298880558519961935684173521359698833323228501522417446529595978502390697566663694653567063025720121070795086489740571228137922450465992312751476845705953316894860323041769287616781485094199030625462035751168955782883730587855003131973356090108766508256092459975060503359432527047494235035119473022586630131207493894279374313053147662401158812299877052434023203871004955832861955564141089897614430424669891879046254359197020698681649493771714575534697962435336948682550213431282023939505878060831137513669201661336517475935601126860167184878435883806569210946173952850434184235938579050036631882690429079473996071022623767286623889962264257112120603323727339808174449801613767272808403236280193874560716973288524726617914599203912710070957359263219707532956432437343912336402184092651620408529308316673460357044238654004638716038879071399042684050174398642135147327035077723662911026276619551234920117881769507688394106404344691447030982367960868204475292280203360789117953226733300312809692863888161000299710109546946186056161285982452855630186457930178118797041928730757231812311213542803758697604831784915647245786765923708058882153907573284361318149899389043139388291949071369672665751890682922819977161332900940871688967317079400340134019133677092333917329824106271396381480285661215400387903509390916484092636729968502664831385653050088286210169827607094432959196107290709000669831891071598176135482939129863500413859739812174777618569649386818407258072940042573453173900134060224861918327348025487822152956521553977954604806057572913928067528680447037449798917571456495432546917913058156683283620878255012446793026648925376287499719078326434577585065030795373007366516750408140209434170237443565732743913625505162329235386454839722137079365192134832136995793293134796152364930982039027770525205806844677666293132470294345591546765305254318322710612251764471060821117658030231070565625314328835270213164631020629201631329215769056127601686335296651833239565719839038706951014383311028899676418992810596458618412412283468299555141900754595518289433766866815911314698195815630908809227662557102464904824415403975126083853543342192112349026680889481462275287974458834141907165598472442537064914860518927685770480992452262937502354702725003197640323374652385224999098142745632695338233499335496847807404981054810733125026121508823126435447187529457209542263356785815157927499440930418955154483212238478676105175390119026464792406183292121632055873599602520990602248039619051623058031704685099931907122138444838781306029085507355807348307277501366041328776655604295955376958372115009706874546352067091931629228019007571599364391194051854014204338847516373352941427845913376966648890661107169367882083546917906477051411791795428698563666450723799400401995258447581372966239270648577808967087171955731119122539507623241737592537949131179753269699388458415780260457865288577432648240428141147421267629247240942977271441726978058585625686472610453494528988064188062016265639764982764393880901697950784544456733693087450196954744321193045649687669780639997843002550660230499951351888281502376330285636743249159981003224184503410473351577631693172400821660424778457894510129917775028153678180562098192415403071105530828904847863355483480481222132094993951025356211906902062440158014127591078949857099092199484216117467233397227618010000560774325705382165839078480280461937993606830864076828779668658532655680478392696281735189441334590412629612734586312791784288559767274153486044720587917347823807547322387697222294339429637636706910356619213568725690188046377097080159848593803697704909277535345224593394916448060217515644950615976810493038820923136872153044497879937753526692563510183984131921384432216453857242205162750540947418326487863718774294913785811698292498971639360492845061074050186028863922090795787274358094131757147735222209579059809955680200366860366880159530978659864791095714776916174582591320764039113949775116010692296131687889797508201606364154346207463936831123937824296980656990436790081841107801197575729294545848587121992595449037412556432049033935811548444877324986319252660545113153543836202876029935379034752724018470464106527372077693638960065706691450210328122625835646363043421022353353449367607012155348014779871182196223830270021600147135689293192860234841936996940845798729560614707005291787737514233239112701915708762872715898039862426715656829684792247521677538234353150437258833064510797551748911051720878638341711498903480602651508258735828728756404034960543159928870611640510699180832519073186743434407931578384762100110896198070074252242545231033944015500829146676289111972668986668919424213514819110088559642692008191214414372833171507926381504341412721285644531748567632533241721789768600999447083197311756663443399813964568205259666402039709131918284905673425970810917015664289821143619412725575255177172545181086421649200730955726279984209415554961067710011996996533464531639817602035193898710743985736806053198547094463749879289024552257878695718678098743331147892185928679456996326502470218447934964086447452919941319314235965992281501056062370383656060133769172868680793831383834632512493912415666796088962247109639707035936597466357083855575099221666413918605629882464244852710946435992552360138414867798355316268475313632420376998553125397165428567418321035124938792621976074498646565981178905007268415718827365662373152881174277193730159381218545208803389402033337401020806942929924876405446356139897440510720057493907930386663784397039452269839448133939958871418904903814989610059644702353559712687754356995023634258459857161152518924734161029571917999961040752084056952629166156847342571392303914330551048030843213701029512183843904848114445421236343115637634476516086980925993732268157688199090059656666896743297043342396827370025215966142099003353608269699023449868642118542856011870048981541360785618561829917672287278582789038101509637620571167845926276539049787258662407704785046091915098780611059502189971785228751390586013047045218995336057273488617331699476584243303959166660059786864368627058635676466708551529020130098753468783011242233153896900595927518553903357054349124418853881435407559216338463834517028807805964448162896579304333374425735291055434289151232286768077794645713749144651985760661189067762938778719174111029178367508051764915288183908624088994583536896732820151449183200538866669091683305276914213403766250485619063348664899276861361175985184454250469709931577207917517868010377355179378341808281650404168105290581098576383948803295621835175006923997418244416991808447069504576751247268355481296244596176642451286788893389297085854102335109846875347261939582679642920945364108202996718717173894580628477171183850746722693168882649783009012440087269530060734141745077853713577031933993464637587921687764936399878616544389753391051335811083561377027976035886603711989210769273492429099295048595072064359827460002640961383681752355801329334032103561775775359185468199118833622664026707117910678382102146770344377809614347389424194730296079930495436616908437428774711118194532603652791508356448384014121402039302720854298387281761982590192000771200193841424252598605055172864131605144700080166373869799202914954490589503194020209255515280701424834549939556531362693525393810488481406706065826288134321182148085715127356455940572380825568879134211655299041671129341317011916574634062553153557574362003540526667161702119656720558311429398222770272564820234821554173571774572124081713415417488452636391830470229372533154818540137405563109313384970288100037959613497800079798645292255445003388395712407823622751336377999867730502660543896389988613817467328147803828720108718230025407497735363246004026783080932723315970906367338778303804720726145822829300230291557446116593978119426045783700124490767475785785879636380082278975478875341949008687266684599612627282321193351642948174392792315733764569709681573049430118763595301480116833886959667013035879283934167224563644281632876653574334564877880289377250492908811969203688352340174472116812243630000376902660335878285384479853928753806531836185318844561262602793167278995016283508113684271573198051374403115179911792699990724949114821029072431683943702771780529808813476581426882744562872467028299640860749947159791995613365878388738436620973562490728519490698197707013802967595001469353089344045797723663400723906128744166591127674605378456390708079227974462268532441137110523096461282596606210473856505925886942339456079854756107681222667214095356637100978987952681184766502632037630565025056001785135628592810544588422720930667072350242994812923405954747609961193270936801969712641876789220698795493195993691444073104677198696870479984843444760185656485759519677904406367600113299106355717698992279432108072006786353196968299312223764915758323625140435712870143117790307579703021281379654018634824223942043848172984719887241572602088026091448306536476861854097368490828586571466280699442974876369559239732138709085576887559216288620924929091192016577844600030460903631071434252539148657920359898311811405960366696295766689747784873698860395996862392121567047259047755956861287071618855322705778003469195605239344254181902799693753002871340617694858879521554375010026164419521224457904215802898607895322426673510077576172370744817027390440484658138515774611582791947334874258931497168979980900350649379544655838853835287931798652166713680646915172810171740928725808129534820528833682180705852889967118004404030786378910785135307463159280410339861949269477030917962336394893591790172346673665882815162323032829767383886658894299363593151394515200568906914537723309934132796780418050768034150646383708645317414112959581393260333644456449043297300393608480109915479438561675796004272964090337162234197046909970827954660281377739574181367235631402550169216079686333697722311210274051764140383241062476766044215139325852773609167935539039870140067080490864495153742905208222338931134783405849970376072474532490788429064256664413921891713803087363602470580492641315959961138218802432464195928386346418970406980694838253305322955541923172781394568888278770684125970975540307430944195283283794537048192543523445968785233293050661144762926443405682168828095326115004371571706022438891553379265940701996096945488165490571889830178363135723167294275154021679761216725777415855248535096261044168393920619841108165457850077742508620157051686928502872040538724795735720967691631668532250131698784035536931257985085960921357100127831338318641015128327503429196982726541349498174364325991698963818571169950075400711670310694279859387982124026525414730841709509066487528935565955201879917794017911225136202808466996323336240586835639965867345854264154885412853409715920538504944100603765364538392817514332137350964590180214836310287551660866689326259360803829438562257286033193760523781535029272931505302207439168843275362013548777891816230431382123178584627761497492532006243428225389392681254745650318008138157349099120461364556372435674828858387890500267107920425126328842804022919515665059307586665481439692416927401439971736454591079079702838087011798848811320461860377800560709485032548843722675622381017959769494756472320746122985880274670219046584659096697245519211383620092620825625390079902512726485957320352981298346617763918404198263865428264516089592517516184920359714280309491412131400822255072981607932337641315019217966255000284976012020409127607582354360148009463341459771941392633563265122462773902732616221807157622188277584648418452235237994325265815907762742676893622965993487661441847171424538578359249933525707315189665285739229530599091351025858755198976761075019850195692225733258264558404523338981145288721135842969528176665585876397230559414854534977693146701966200049590765276401861332581951405017560451979875866905795875247235707200696306131223249589887116259403449987589661799168379996489614654907830970903752342921915900997776488924744800346291966669172388025585150429653985303086684140513976648062202060927933703704938322827780879305972559340393298561019897197142215816889372153484397165225301408603163652375188124230341127754149044013130389611112006947014488055378129738888087582706807547695779279274787866463992111046956752089081111773418728842785301843519238742123175049112020256341688677883076641659651080835058503074094033758101012676065756713320486409334467411304860747385252145741509276249015580527379671425523360749397035636023654956491389021040017845856131960363427835085559946045871522169767000723694924833795876158649076484510648364000744301420301884667651487638414947727895997640417477918647256319652615243603863874671303534492931214488828657291503229796486602078381530668247927473350049838632663290596533187626811812814755951393058944744611246567903416390194117566299013071972543234630822073198142439475144593641254390577643280740184225552043794989022660104941085100559064345369287265822831642323294717524404698707756213399575516330655545738571872577563238761161890331319494913478133459071006697205657315604073747818003510879075037230411283046079445205857700914007447877006052615100346103586689229678272160026668386452697182518908615721054102431795228425244045224690835761495083523036013800566351817983833833639902827854760414107246955345499774295686575279196874950025345577973782402169341913795765257506285527152390717537816740817973078887953151718964886520010171420258629755473556217388107088365298307969252655359694071664624038062440130163007463425656971598221010221910141724770457339318785953042659845410443940017919251292385395267325990763540818477945378973655677216533897482508841286673109417318370813881091658808506381774824217891680792144142865612061127283295150076840792466611486562502790293647929374903464986131193462931689447948891239467032156176164203553113315998520255259844583659197585194091389588599984877345629392109920492278095511824158261482815689629807456777862904682425804208498464438643693753978116014562625593019009834604969329877414833186100555399258593399660096319723790202113538840635484440347826545176727417659179196043987889176029672502983253486171904275287517325937887737904435600349741186123587889876697050909318774836199740345975936155234185108250520857415151017654457945664297160589037545334799485224665976939768945887154150136213405351837270784914829233605158964178697096996122979246201383257807438788826483305396994719358601820507519070698484021936461966555618574319764353969573132650278701685121947265056771301993558143528073089158807388172134375894136177104845815013106106295531555640555448908581364669848441869563695815597562127643276892060886241346200154553872192651171663662556135559198380965500843624295667079763449351000900395041445860380224435848403810553000925399763051691524030432274221855467764520726154813527579146834789812227917081299276920275106865014658039269905151790556052273376434199026728754309756714789453051868883387680386063614570314613746722664541998193797475367507702878112154467463903181867169517798866802200429914033328471091657756901234920671946646503469287869614964549292824322811789970449447337701122001407608128530329245509731373371933391025466591188280488038869731510957696578276260662588994040614379526273730810504741671504509959337647942753086962663853883497531582256894424716901025740439109124635083201428818904483580816240516079129215647329182503761608505021853003877831912160276416933958201443116674574203847698768116549753782969142019167197094416278844893811805342475846972470250218253236302981661897614842589452309471800502964962255424576811525043780533540802649926191819001479168392613134737806625446209844482350848453567376614322141869917810917692922979399878755984763614596937895917941023516134228238891756532481830711916727318242902193145568107998052406247843646047661738173159501300512097112273159907338040569811174375215037773879071858731166828308957255942058485511804121019621455023982905658126247383660329508180081800279753626266150840882864531973212365777913112324180790735970446798494593563782637959297636049785940496804244059029035201717323829983532620368532828741491739068213947640806845846577487780758626304669960513743951357409688016050476959549243814081030278775866538285178769304829670422770038284587032350883106569613106222612284710541856650707508116298174317331474022108141150736343854259848139506443937992370558239861593116778002099001560155486936446003883802862819086404903203688817411585417352630296834868249617978999131156404023231563535664258287865466773783336722416311572698231527065111892971187320832352422669558572722152468925354120429092558962857330145073175095771003620603138404364704252336726728039246175005453076666147289693139649322790660464491496260948158580077435441244163307667130163402931099860093441266671225279005741722635324316869092679899733773602663625120676847378847791197300974611226031452310988239434509963363155718970262977884301816150191090294760291714863530866489430173207451262159362031516813532696311301741574733870489458668870517215404693671506828189647647658899031401274823485341874267668031539649060337328280357225092911641918146927442870682184760524043142581966658904620654338796348477763564714260840844831940268817575259980573079883895940195967233337342097214154132081634122382992078201494020739737644806012498325743505055602213255809606168370698617689061340262039503871826815489930076806842022415382782268318298812045445554901866750794562852145292236832022968162371355987133030122298049382248096567779191716049636670113890072708048432831885107426779685303592804618617467726101662610076001100446029219639575210515513883351872660847549386398911969096778356223266246634015144640522492524524071319929831200438670436597059693590413925810544766747657279021138437774006110288526100506534909825271473938970818345403473973407367380947051047818960072400584256304919763809475382409320077863807588360891327628083285924549203988788890637696214507397187821719440977200666641375971114816995271494038452453385076713136521516063695505951224372229532778638860407745828801316055302495520734592138781999821324682146396385811125262445501757473256534807743036707879470410271913825177090790930589139779112871583353560039572293126392254417599375701669970569177429716225822959706354706156968112713394688241095707556059839527791534358584433581549047790917120343016199641333638972570760877174503243146616028357372885063868594713750430460255650070437066614081811140668563454405739476627656613052985833564144731940288092317567587884010931793471916187107646293999352996299097952622665581653202556062372375045002990602303788492628921553109168380888848282192714827610888693363685309100637321790824395388660639830130339898430425014579128120805680944262413580285494155795481782565186577576973096389011510833988381353543490732414130323147986481316156488864701391564731383100433531004042816913754872459718337010762576782449510394247028195822737199965292536519816335573339656250074684698563191536703362124688611197403294680810438093667525834611546308704542460619197246044968848109472259437836119899567592426154969943256446866683500437577030182649841816402814162899906557419450626448428918544616856544002140081109473872482534426432858180906953372237668585094945527891512296470879262225885644490993753068759722041554028293394431974703694599912189095785529573567328087857371217949906337389257892038567863467817795243391806756859494154434862830507037388523428414552422007040882940961942495840935364896328149664233124140004867967506820205583027924067056656166449060420162293116949878057526618874314740172517966206238550520454116860480988957704048601033872847116232251165432590645781818074684796613924156702381119038541705558835219955858823731714092905884716000443817158732812136912709488685317909262085978928493910819924143528764697933596493152298046445515868398854792681936329354708586232277248012716161792067874734585725023779345349849919950193018528056576714403493558704388002911928913698884798466428432251919647332703859250921343717921580953580172868238834581950378320196080217025641119435269636501990590318313532311379810261037424412989932582914366280409949582712043981204703851823430426100642610332114246845221717204048088752852689844072851474873257498647547819162192434850029922922546773670735975430166274143805888078891354288546543373567156085071089522199895178838461443325545223139314488309961633694978907918205979516330129670604422155207441059120608240966817456175304234042162991079760345910581113326328007849575913493326788965432218043917816412083650451516713209131304610999160603735873482626546497065292740980792379103710051801099274023291789691185464027583180706612684003165995015097671302198220790567034726163860206772259823864881914457904478343222961171079656026962683261829573264300528488424104334839068015109042361248692978523589641607404465115999652338090714796853698450721124305766977986727162352015951702409416983801583837966356448002061046658075472497631034278302552727757591220870887179597574791962097295555110070887580819301000048677241997484693896001998320194959534424639409116384189085624493358823168214805592344067480945880805027083554133881208760205869311651567022937770682012410796596397748291889496535534230517495476604748656921657464688171443728750981480503881638197930305702145134413679062299342334772828023352703392381862306984457947008642824509485899300635857205452452661737044102213525569877740545974014386933968776680739174965196267010354448514528882377175992364150604344019297607146667455988793947232711690856655879450076162948117067033655588455274285137527639235773970439146690429583622737011706317551608150539992450114853135348244772445289941522897957650627224405697544519938405831887810101912880858780761540162521390700681655344643104503109351078500688536495418331182690317046928548450500643074014859993167001747156789942105654290953894278556048694351363168658180497014557308499377232533615654246376043665876202819874002899672404627925156550372999780105663233315742294189216183369531843869964533105072347371159830922862195946940476528795439564655618123466196673448307459441626750707473498948986805226392600958034342470681742131749025032228459110578634871955090153462815387182623070690210311210760119690168268764108123206465720816169536950780554763854382105974354357191135850220344554685618776160872749470184258814684766243612050923237910501807318615122688331505553446183151602163833108643024805512646439820463450926414079483587718878700899883340361352156337536196206726978314236264518895559849939867438353525014999879310881154914858402877407939669442093234676998685907498412949274601086640654037779401441089920544580990937820403508577318102344990393246694909978613729100796483449808879268987570539343947426398026984222607431859338032557447449868615836998243645687005839602430904420253976333178831455699370424668911788525198847742898263235455865453893002808561097805794820481081111022135638972153306640017259245010977965729768352743079165769772115535459288200001350423602999437597078125903878010039229143807936655681193521999526892696358571200563514264460537378350743509622267777317054854870939244975236045424914527538858183922667684955229405147179674952248232020382251768873441355378905979231510863126967179946632744000606087346808624962391507808756110431068325822543939459159210445848660052879512903258427478451639285510712849300567834404084618904484996852524622236381901331182633732982499130843736303242894734317487474007682757792810734284406559300841922174895043687013258758066883591368077002866018546734798859262024912948948225153388559003669629582849650003567644166535150746564803978872650137875598300001169269219636436708204579905878223977868026967616647909923879044238737970151072400325160255078660045951495663525956076971357164497486615001796172318738858349410026130214351644313940376494302414852001102685360060607510745536775274112375940262913713890930591315935922984114739856303419692993350877665055621572399411827885203182898369465293427649479369102763766210432352523680359006803744268947956727446399519540682262184313298336115042102150168934394597320967451152193262393574854181155296145064619364340365550759006014463739242894475272207397745916567744123026196522518564759219384349891127963377659569578044163374748668235437222855254727939772234081363283940897713538107009544172485568026136184734146912378863543464169433844944996386107567804867662992908835683892188324391623935774921598288842323232667078316315573549276602674630397410424714614026757681836135378534779385125323700275884074665820288026456888034108475745298912673939657242121850035822519247119611344669722141383478570954644984798137041037096972940636999834546400408656327243405553377002237775596348680500723401175397670766249798681537603228732233522703954736417790866918746245592826169799354878887054019484036541985729869452290323483274411074585346023582096350811021283428058040262615096673005242911808756162377828014088591411592907213004097593034126441779545478578912007726228591129244737392820177386667134030534362137956001023562650064429771147498167191562328017649278241486507184133426894278704134847383505595081124555427177061400669302988286025046741274478256817244040245190546985415421745151732624497584200600280977934830010544516769272860238646390912152678237549575191295734537512326456315858929195191302898665296738732144526608229186449998234939728315755141811684153387033908921512902293855438454344208984125590306039680277993821994757120958536259412781521175011623234186379993821100987550481613493675029928701918990421512849961670622282577183409429257506847336233826275044422909991578870986939826205839335829094303885171372955119520815939748870266285099987207901928772825389837746853372488938471482974984163132547677584334570188547179468306082129012442096063545689833204621255437382286948630272774250273395329712730300097943000957690423161139028800819143601774339851618740643813281871756391010490959660308759736506081537631274644395189489778934524280963141431669722072920622819502006264591433770446311281772575135068710692387146746645282363885835952444174229036692097219599394423774692784994739888955146976685232807015452417273012236384608789090566291752188959231542163769805187108781373512515596175527364390037080221169938029860564402779712450453771867401636149631116268495691717797621709506866934682740638593424460819415508129434026984435585884129056299118981180991077598964387302275382501311940589781339783546750787116113336888196172485998141103405894379741994607092461321555791924322754762529769902887218331426415784624466713196885191767185173160480495553840441609099385327960713042104111727258043080367049548955577458442989457576059709796094470742837137935533289055947122295091854419887376098747366719836527956447696663706813011153349734243773670828550298499468815350914550467286116896892200022489782912201156111561955145339706818594726540030543216498864127005812145093001689717190674564148353467005777604332915843041313506433973148238510617097134859880583275937658963058209115489148243193733934334001498922450656407421859528550808590093393453633207479048981883278720135404723040947486973177546073179956842908037148795937820806541745653663475289766497731658870051013478967012550718906561426259628001282519958966518718645075510971659008785617894027760523488182292029596105691968136553696099456714763309377773773568624488512095701223874530139061538669739087313688185476765454587525015885825169642144960238295642218644773401711065754390300160355781925806279406476346838535203579300876094457870035207715997070483817666326208666976918707041339087651123285820954895243022941276760139492832029941429444636283813560883604610478886509873707154062152323376386036677473055488483883094314717414543832506199381486406734523398975719053548757047342736906299159656445996700507724681373273511868794446169112830824240005659156527920421128169884026885800363098319694561003302936962228569506897771125598036932969149836452437790600773590938235447401340726776979927229061095394091398674213128577239606357419813215757060226297697861366057681068267369185136263317796679622915361128282360003509130495748255781677321953724770116174347540830904479799164165248624092469585942444706330513389090851120421939926927827537300534877922743423101633634183866562406318233416571116100929739118159325942008174162918502826317967527829285547493168423034075809651302950333466911337543926799858282029213852040033700675740019323987133769818028104203606969249725270705018816430012002345542021450608827172215649950047922779601182732835241197718923647892580485836841677781709378073003016289149240238284930100749659435241390712012370215224504875113246629795087098820205455133013830855786829814368108716215331394125531359959004088092454592098096349143757664514383600555190499483939669171493476579956897661962787836587195596079785711939208235291155253999794094509918189338673802540945096308833683190350070386303627586706502825871877711594783678174698813920084918989510429965729634990914659464266055763193930962843397774258640293357981189139690202178404652892208801700352481647262622262838931516669349049964095932614043424735561355500806034246434038199523187928726546501715077562474023745906536212755222556719889834334043436148312422149944061348778205300779921415845935319870833144617350019382699627650669097761501118050393257876011565382282884536489520836258646841852170372994747154673138531885477550890003685916773296316772370303871986482900362507781776226759725891508568620261970017094997772754645353357785175977313111967201829929497069399541371622447793915979847699567866604919740235818255996352533768908913925744713765681366759983728204155898256900320137509938906302633556082937080243143864887243316333785424744806370851885450772680366697147131572889921288069866759229557280435820392993279254939309619121055363552016981524758227283152615017235835631354408972284553508875852552759490489305137612754810498419288823920772170857135336173701933873298688626213190543816526720092906258991229868126338401874191244616920307665890499370774813086730327583846962673915660132649369374935031264007311487086998632707386225137399045336192311900282173072506022597846770038802558117736020322479571923481842836092876701007652425671047831012328892021615239721474844596549604223862970726614623385215122578261527779864718682416099405547784458680732036432374885385881977021401934635380805302978102336368568763402340215620166825224302920081832002180692633674063342361627754611180620491133320291140900374492518362911863986785609796331352232035527913852945464679786776084102158727194554665034264038449675469051322823979891618775716957192675045226488502477252639033840414843263200431065713911319990362024540873893246366715740998077048575480574236101197737749761798047348081783951213910791748341238691407738053197102457939585985011041404402666144926807962312745654092195868551548063253665924898053102873538390879418026341447732503822547773750970376271834732836477817577975194609880971811780157254926686894006803679345402516894262179536157099525094356850433417845022715263288183354873450710474100592618317472417338837499527589238958835665872190347297070285015960788424244303902205004280470934362566000079975140484813683725408263612933230433191324064384696004422162151419688644338908726817227864542644514948791585493548730220423016255066116725278207213609351736468908680302635187338682495998112756703200813469902088378170760907103671578890854131709432188154351451782475958983638973079838089423352710475370174034671937833002180686456640358255354547773278925005324796890594498613572676653610646155115289013868768531952991402568127105232108579152544553703473143653411436101418470005322873031508336980151069141982709415866162807106993142947596070929066639084191111089290072013561375351526865900515208738886809775862019883183622420262488115368819566042362013159974025462751647309182575361883163679892743173199738312385777767975384176956924594592209658016362143205460428191549764312214969682353182997524676049823482697824946447912221985228001611317482725466041681790523242799320514664431577223641872742389254660893959929923838730275978115208523291850945049399249610942443240857817152749700881876057075314937445058508497698334025242985802100395263236800543922451641016330554610103322354932890470780757454268294101212232871189837654249576550977134244403278500534601053304958714334404823485695138824453339516181262869744654222369628046128879356623914583764544902631974974472037567977611229029992383541272344537839791990607732620292831490469029216497417455972982133347812908922056453280011246436863704333503264888730447813671804507767062460596325814823303534139926106096279313083705946683610666048151133193247034960215021640102936775686932267961238728544383748857903820922478174194983421662505730825323318878445000632273161665918499641344858616980022735857714567374673828556295717787106288188555745300572483878331285398720541090942535561299776600344085672838517229109611871941527271937702027332531945192068203452222445461623168888755040118932334709669789807913796608180277920972688824145911857758455593280393192753433676781755485668171229825831852697027769522371397673612197899955526930165056956537393718462094282665941391949159423216569604090118022473883822748590809030343510957204681754382979006179242950432023396988674878668328092943299820858027962456633244117568195683547133417354471706502540910861335378720794551683849111248749308014547034835353936150459490883780415807577894691259463105214708143656365077334578695791067255172106562985837722817760896800105196034794786228370323119244218402210366163003781487929028107262512439481404193999363116100469076134651676596492947240188455254087359105685902395126753065628594192626322785902562169866706684481487278393027932753374725922373667924168436627670081659526571017196213090909385109670018388586306476017057012640468821416787552151717887672248697565459337162257222505711315786779275576405477813390281528530850963254619804640343996380333236398361757471997903334042297366999456179332959739850782459052338351178711125468229684560036411622012093396883212733508734368100753773916618495197579691473722328969977620834761303929905629936121571496317527008372519176226517002362253876972799350425592231107611184841775998350998750144277107821380054113617716058058289998333909777599356205796630114914371773759516681314719420414086975875025636816173755836997738348844798964297587707763138134766933914056896083299512005755715312393046314460380046232374619076358083141111481636610297696960969814349311265200752087023650884379265231508735655368598391910832705943335572445045510908956399432328573117816894325543738462895884713151841406881994856734836780919997535603772002809605005984673031347814520124377480480455698008400965218531423664793247579258725130299762839515771867307293696645762931198952364796949986183642443905776256126902587642917262565479174564108609083103222649331311944498310122453392274597149768335068647955265691227068629244821340627456402811989921950239700331890285997183949720975383878130733810855143101250706950900377168568394628307266926996947381809238867693100065129428091566193291786682206627653322866282241798809538507083567291280575766774621208661887969115082546009819417890892549721834029464477098457210635199348147989924916456265959049040429659521191361872923718976484752560684159044746694660436199113832416715184505681020248732857673087538430721573394125660567546414532080353744336550327965647275964023962172514536827421974889227788430179899421122819089008709457979310114542866551660204029326979881900907194651409933331235844442292195184080147889441132322962549370890165595610132331293192461847553851710404164493737492412493162570468210100721851678402014626527294205118702372804982201655351018759643358740074021434541591501861898806184677188423717136567694910284829291353488089657428027297734107614144503660333161949004956687746394934335563186822069806045638807030811946184332146127208464713159110920308363022311271981077306900924969389453940810079861614668117869611979044773341113707115912753193630955346975111499120981845499012694992341197866592111259061344195020411100799293206881547919596156640752391400338538296647088697750348796761526100354932795793840201227717728132390795238834022555675693032168056750244422107885046363341877120461421444436159927791183784532402048405927142863721896038222764197779914252022047832121569828536986589150063390088620822870138161656061965711228191939444941562827404507787519136734180382946576926532816464769900745590962972286811235819113751460612549927719066023241586687988536981840537558226903214076296539924089946744919092180356400787977113269293537744913531859768634482848121304307119414017490524944026406832494905936229723361071500249858460741866822178848411184473588578516534803623026169998090614234109167640099565617725941601535626078897324752574892112612291710872482515335094576249087753077876174364701211401351319098624326844938007913669497071245795445934983231143707124547057410258795915705382543594979849899895462262579869397842037436378727969508791507871001432601043138214587080302649705311708953119675918775214295196192871519758605212649956290850932103396942162195845677627154427277747058006955552942574187851234810261426653399860308554765292797982593787601917011168685455648499475324530280255135228442698471119790019677816035753934405745195537603514714239453072168057687472472388874616772982093437865243308843532776978239283917266435807489270623497633383566078791097494221762326695259902659657547202599761784154906538418132289083542163494577397104952617246610409423978964419310634496084281499519186065640495915148593030749096318098011874545787607085556083698832504779716553542917479927442792812434911690410523001072769733454439571082472649979047673310374031321952907901078450049236352365716364520383306860214309966789120188532368368508132492903445390788723338429539038659835513038771319926550686626786341131932028980625113461425535700187431451979227969315829713461812736979464754077783972541322629881000041234654007796003601545478837016462115669352483097172205491985880295967110287172399912314393001451888513706733445669853492249492505762063014198841363955093748197844327704779626072643189449835654091358385946583327767333557936100253692305784925841981023723647925988063147578154697078734839471099053121271272938736751717558672518816570590996561457357027395645376072454390175356991814893547745345885571041243593985134023131150736413337398725365796586013230421727118093799687769632626517719470637840032108103788069415959977038908946104919042397800613225771492725514657092261056985243064160305282177552373599500436457129246853612067938600001398738924392930731160688543219203832190781924456948393049322082974194862522851613120462587934772152803897527613072618755900362157302493037674903852995286433674056920583025551646826803676588697750617607601142327093687383797849786049732976163948702505118936606908722365084600831705788055856849735856039356835134491002444777524620778845514512485406012484032793786043017468073993683027599325997196876922040956358455351040924564329263624518952247135903385827145048311594975244127897747611474541169732026944492972541009172688214508715661515764700796280633639259626947429180909792304124871488903065131996686316518034437038196940699309336656632307662397118691376365322721147621335454056705565170488012193406907005817457759580930854346570288088548926543606974440941666292529680087285975274849042310423425723017497601237413596012030086296103680525089217451737510375068712459223385871468048901939152649337221918740147693240279993161801032203619158318205960352151593065950244323764411476883460899206529195528456271963655107159653890298602498524006213867442226548191985703183677569555778462527298719458064988176235043825812097557184230506024605680018013222695641745051090386525016967174650983960113827739598641790832467558607276581028432968413384033358676257579005193985378413755192307576876266282173560222473331835976176717708540787815982363596511304007392713439638165126683054742020569099383931956411809528281175382365573062300330931809907858390177495929411836076855080854309726176449645308187670481972659834092639574131705030685368124907773541077567442612285840250539139727733443444167034127800244602626400924667881460013205854820759029539175379685596408532998062093782864303614205224005150634860878047068535837443134738887430929864426608808627860112305979425939480118619177077288123645751180332119457128562703398662005559056593540614605540103897511179797946488360344073490915173840437074858576644357726173257756763473814368484730471731538634969034604847399989853667872774051222625904383472241265887637772037144509647725382456571790904627858920261347764648855493875350944942927233696832691086335990497196465081845631549452084544029707523227541020004803464076837686698260260081323809842196178607272349796823813223603947781808119611149832955202229793612104043804556485651663759331971187946875750217482440425987772345573721251971659811537699011892707730122362217646363010300479894428362147405027036166369776073279619916230370109578332741125584752762666034177553484513514070371164869683668593503311523977336032752600338812994492559209819884737721375662286695045216221259212084469413942748344549885969777970925986510300234328432442092442806231439720993895447611236228064173646438332049542477534884940491070525085810893176890515409669424811667214075093378216431281846686150539596556272940254877918977921510514804198656794818627502034672197137505370673675255981874330895007779435780476953484120585046769735865855681267753225667481333976166685664319080546291736634325978391955460270902736542849370771258746451424167718123278227728395398761841258211390524447244072230289398399691013484827082007624515737396854686595436352418093009977418994225930811448583186654108503176554786695503179764752769556375687274455597192678033836163513344675833307592746401275088580896093561643235336532139945390076891688677375535904668025554174541807861203162032005145791408511993722445822407309575992547771286745236426045691037413286598898498413163908814521692674416072693421877727914765916497222255079974399152366503711296354838527409172728857457416675045980871380395639992800810740982587805773818043340323743994416865706848540452340015880314462941971119545685675485504826755016865797399207458211731507092459331892217642698389620836270247278153666654786767458978588113615096753381237728775222035414012848182986448562092994239331645819115513283885502306383359781414905658436409053816746762307417303728831112627526563452322730962419837674714287984534294591643450409873498053127864587562906151184134962120425520116623288178145231413051195165430938282337958948797350731149547000589704778039035872944163784836486207365016535997070333703990816589897760319569100706718322049250043397981961830069898258700468132946295777255406025506938162296688853301278230213484396359133500911971834394543701517234657240518277487378133283011585500474850602644022687374177826717510620821932511680262093827282258283942383258263296408846253869521612009805416609037594451734401933333230652804600599217306675656957484210661638521164576811770767467757162728242177863443165079328428528068371679863768632164377217524502813092277490469133264681198817036316939960781501928821684325910136735508476368030845196160754351992902103310422415820036540125500353625340042602481044063900915008273928240657422525173127071690109377022684290462694156801225737322377164133114280004141995804993593755213804552568273630752933574085619300498774674410859549022369646264502595480907072636024290644645003235567267402018173975713345674088856585915307052108119308981102775794120242843721265652252290749777941791841441014727254620915609270708205075609616069409095087340715936383027550630800399121000635871736918014555506627134629699619685606253280764196590427383803940513608620905829335768870711625178259539817531669366311524369797290081290646276951919081270718898018851187530205789919677611562843205938260802041598720947747156213685600001558973618932897030554477073794522636187333104412481696100883884589652549856261226178520247952319362685272264689756546061724058829144977787541554964254335125262851540729311708988988352227484918446402836480514164151401718978020897888777472297811307027906477720543979879751895018263324961657538081080839765092770201364757470799789825546635495100338065163827158557232211979301016189712189689201402224065618794330731253904270006063037915531213598611024866204136139747005632273015291236656665085149028474933936244775952152837088283201340822036920537675533403520143444437390827623706616043625604901231220919853473508056224464774211957866594675313854722977343276888369339234476587178105475577188898385539871735498056138416795658658930889758920199338188010508033004530311480318614791658610642254788016425781610588525365468644053651088534759477735827443693402111413739150054962997037505236007822396802685348518199866956695575268220392762380299353751565392314665475056522397325832809925775490176652383875197205280005766856542009601587242810010952866863653614776111619633088637442870709678137504570947892188579343419301239421201297838752883018070535907921655790285078438097856781089495211944444913179041578135916832932612296202217836172531577416545955178854253111524369928419412898445260773867687797691012603730417183247446716622655693735042265550562225134796230488081254663660251209913982526992164736269996319144813161482662350008303853859057283155463085399659574560673582414057197323936177222143663767864675614225420853706032565933810442250744285165253349542140899772741725716811387002186637601076788538364517783360711978808493235953070089163018800577609163161607622915141213968854149866772877054531730989143162058274241274802462775386752897760840695682588167045521697136768470823177647179417828125999633157798844956346059541128098092392329150342697668798166882338967585784394122765318192445754952114969398483616249738425248531642122208705339740418153918009456838534845295933933370039496131653713047260891548742936645635204795782171586013471670225688898070351200327500237378674895867723340117630161366989049938551658114447669471997812023616742670094069255884141133680972017552047979378774094259545075247621187859317567619618935480868754056704905633506836044330433893941867069149902070590310189375720611972949866588222884932793002770037164728257541114808985946152502060970419240285108259418394977704203357487675279064416903646088794230904617256724505300806456960131596561249647119152366474326921572222512462805223034552615255444512357946898368754702872769725138881015928721933242830996283966716907951729403160365241194943843284789323759341168470725369457169888292344344661284748800196573500838079238837725463642251921264879245373885814379453705473686589123649707965020039866237355259955589221989410227225463147231098559372046467900102510070820610613262105620282688281035854564498337925793525994351324017145027907222777585093934695898035982114381478003154227507507496062087658056960382359983294834392897480741329255623348888323910800729857915995055674313464261663087642811008409323222311406604344042173612336736902087167773960839564972566151901279737393503913473400519922284333988442151871797122368949918151834895454880152627883539143201579534808025565317020837067751202975261036702119957049907262925050099134497989225353851416791742362606103969326006836393402681236490576365780535237129969042329190060020838434458545807306265846207293408003051734664421890375542849503212425961721635310650475399445520602953441767106703365067487552348922620838057890969901715927014411652340717249525862717237841146286871823961932078693876185596310599177763512855396878147024407751144664554501901217062435642117043789144716853479221014383280318644030812894295247719791010439649262427190111081751161893427100771248033507519154837456275767417052741615831762670069074052247076980689282177518292122930999087373942479529039166839842070355161529082821017081922729734978014169829263524129964403861073214597854845269528225071641247552449863265694684217383780396034050465744341397991304887120546623247437275592498054861544462097046998278049350637045004551467736908439900376666270948287030018627123707496365339978665267847473290961200536786716127366057982804960542473205622179523744268207476852471438769821675561683118540190152354594144416453390531929199769997763045882376951882234918633134398333601082604633039342016010017478235675264782768522275029543360109745393687080009867918851861673788289231866581730504930145001864724541530854127123254782373396135227138492714882533798520750514050241444913085549215977007667256829010484000511782138649146016074471967654679911533631983495015610652074444636554590016510492308707293964435175185462302546716876565839597247790929135579301910038274506949506523935928347394559406275554963715848584715978682077500420648788796595301905666728303156961506839253578858858933792330128461887345502833130018720796050613784977758715366130732469913800681510735792584421301501086319402878705755947498399171045058436509204667654447271359605940567386122221543235488399934043986658806479824749885330542388897091673861420287544194525486901554215771023972109732114641783397162359244144724815302041290354878395185780126896204559826787559779182538583300262793986554533047761850403950991976550674892240577251734481335269909821534479872778111700569837474224781808593268350939461617971540639375629800612695536250520452039974180122956621562258087073786904464993813411017017955157891481355956413054636576109917123122494239042253120331303624234961865226642173761101126238682656184288628308724810733397105497622070395453395947756481007165032461788761405081993071993811064062522321425990828822446941425252598134678757888995745171896298221106380972825437211513590717086173053342549129294572323581664544449610508268253799914435604531484101419880351047426086587055357975260663454565049000731812378037995733770461449740500908622611434463435613599090541480687757240916659152114648018505130478546271315867275398084186272939796569960857422838356903543931097361903730527830693536155795749915191755411218570454277807588701267369822213434293628111036800946102503550654392015045799993580267285618567373330723182510938801589165982070007849371371114705088910405017208432932260965373412192140080274603893367952662562574355448541588348281901481298857167444266762043185117010846042454699825855244812817044406717174680312229556204900849225943188927594311611082295055938308466537053442840249105748961455963104819928176836635564785671634839295935365889421518656627572647593764905802095244203806183622373055598422737480009163236483871687405969863990949669742341740359859216297639849982800433451908251624548337344562120409899195475594287423187398489046379513921359713232857329204559126055578515943923190100696302423328749565360306907053881815673381726904414358759560095860762627747379946527009839899101348679969050375054331733255849823403761567843575060220320350334449605380669805161233558799792912162765969893835699976934845687271867041272026334457025067295177089905832004809944812283600583887618753969862126178911045631768779283733083260507290521663971143007390069479458629067139052696889465031615176093130861405006973949094056302012738510222784702054806217698866659757779567340123065573778062616522559985312882922435498510651556190721398123528686940279194257303254487619165590135761550709622868363873215638098193224939967202420066790761352301834233950683738993296045029358201564491827500597561605689267326073137076356086395556398028353136136694175624063097717198099088030354441600517842062143505526238584271855191610647131632938077941772393514242752455310949698354436452758203284881196987876872225834730590961214698616360567020816897458376415975885009076499121765912884382860835387949628114484549161945452804588384789333998560916072572452618574068502926254125347841341113453212816411882499592932612018693947006688127917515926335147518811428889926534308615036955428976849234589487286787698443161231313225716720963050614647195459104207614290252683209627785715205327283805133743592220112025276931271922514299449580432706801915634993224553000909469341073269842335261949368810355900829007823325444474495138251246847424740018519663806264367174360613222645664026227182989097479784803478134841019547569423950575100379569707621337105348776182871956603883631851714597192327692853209368320251539104915545532835431799665496220981381052073652931091069730332482157668276743514749002115884311326816372369539710674618931717081505011127924755715534582263076082222426588998220274623567260743321381997945024814210248285196932900533016205106784519491775645791582297616448550433523663601872675227879767591062169468859251624141208981330328909771873814767919503098005064188514918595258497520726749823973730244324125213208119670632445119372145796406662194267128215413802731490665816769729278696497538767720069888521260164343742466007993004193943581229611540740310977117669530516528560958561152516307701824932021146489670467067811375446144885932074673532677041387182282544429879290294177034702744282128055654418111399528731249666789281963342952764968638699446455304653404145310777412190256622393100829634955871772092852014864451649102925326708366130710959163791603741706060074240618097755417629076633054681114847902039260905113956901101550126024040832014817445330223742562863095183078733152352493469119472991340718782942700913290990016880979484755382153699057210245758567310089060106178778766415180779314274594708647369363362282067234436290833099612620640486979124838792455994689495074406117753803351066524749949176535847601006415439152462865072410936907004888737354199442052590547198232826299234610438629244886804187928507251724497542208700207228862088826037012631763965987275047938125053830579542805119124722925673794633479806314157533515991414729029480128421400120774443994459363252284206476283404070852300261606221024557648614804623436547112171068825147790306829155710219961074806166876148134536832693783400965470355774018855613690192675129774703049634723928713267488711373046330234024949669433057021306055699901107243823378324537878614873793513556772951660402604312869777632119517824584007073746639290886509867052137616636376528778988704937896459482854615595330429091395583905948306891504357772856033491236553755411877663711812523119060958771802139759376399479664600588474445945525984152561825534170582963334065645569786626251065711208302702150957615662536822245981040316002120804045012770442632237734889652274479486809245341426049226129529786395164885436546874153395225714335421220496493479103898095128186093359852875751301424238236678448913364833729229344241715010592424516771076248670248752627056019368032026907003441242685599500708887278036920937626701995154659118429180891035489542831968007058607794218893951303772399151929106264429082201687165890377674297817546156955538233302188415232812272843929081115254815334409547378310036931615545071959043770055731645959262027815287353885910952681815059763329117462134430076517042331778097881079370668224730089913442685441006492637587964069982680461414451804512805141308884617344278222881385025138104626289138632338911011994058093843946209539386574177366462434162948261317864658239757688262791807457932327412452154123313735963425522836238776616297273704657139737277894749391103836573809898959051510610789028783738936604539371739010646436930127705526438355745148132566424035971582026207802675492482542020141762816768497925766101114743956826956363521844355662213363616660589346185585166143537284610541118398613407392646953838848317210291395320293763918826029988013295683286528455726764047259734147129287948460134332115341203538230677696050252268781379810400803470569678001618989470528304987214407167108809995783650113982672317368906976213792605909679546129767118168418049864832657037045917376751340948710725317203458316360055998061408157404097161458921097844022886929720900217658900343302628947925716134759205780522075291570881543783384581459468692741698058912528459322537356707452531851597878474700675085788163877090777818480021477310662330993956837209131594106939371080965945040369116608903012687572616418204413021846916084010530004045470063377530248436379797174262765849474312559858568018402712849721093589236417967650578378631895866793440401739965954737688357600506522853584923277698350202042992855214674219367574163167934826128246430287446601019415502689387261699836497486182246972900853979417979181565961495067991978132332101667043008900153399588849298527679599994002780532161637205758042233089254231230268364030940891275716745971896445346625925733118066703916969465365318689146551567518441864964888092576792426112763209375741125239674429664443271077394142118529524579899697056646795022944426281705841288936500968371714397426203596291555202599432234135631973747056902318439261334643140033445468244525193721883524036705805667118321891031279588003168599082046641846193985124706681149892319820191311673901186536830689586659318144019241334059990982182425556323607092519145991216174827696889468409878800937708625641858344365553332993480429089576801677509085071034225030865622395780102206885939731148998528855729736844343686004096874559205115610049849770241410225334847957315762755612957230414423102764439604568279785545570509373207639727943710846833361465951154052146203140597392189060106641822313512586380731302660672369649177045392297963042572525949850584760072232696796032336841422836403688466182727705264850887896608545773997495282447985777196851564479504262335347280388018823046212814270078950839859522146755796137851087313101300084423315890968548301043273416131670320258589012024438399953970287108036459507118329629937054247648478179326156959799174015626584770976893203698030654488243606617082304946999938576815657538958478519101773744406810189052114400036971597804198325101815661941080661229726718555347842885661486982840810878008467353479326710568499600785592021925018036228663276561480149250153244534621572713767039329509690930304880432384683234494926675219194792525424809035974663949322908155633026109853718676314616969976726024831219133753420728367237310719545735775184174903808067238484590668111244378654158493945791352122285160372803965227502619289894869597019885912378353511256447959574602215347237094905322559978633345257142534100966024786798974197461137207542856211464603743657961465040824221256161777805696598092286125062184868356906817565076107025486495497294764176985773095052991780570678944206810081438577746710485645139644000736353858465163219828994195583419304315230443368628945710904609536250988053028042299550597093368528594107725769846165592539762903525721880674803805333422208519181362129976835096181462904488222767512900746406726967251175871444420718133402906695651667450536229621573773379415208903134121191521391327344664404089707493567640660757030213404071684726712690884964266921551561876251251892233495243757708225004852739544751691424767428235175236051942208781353760500181853588380885436894696190314347195370853354185489630315073288524632686833721986758071741218360124495042555545170530226673428925209293060117511399564252350776733048360054434599262662667996328216102342728113419086304511596414989487877740727199030441441219152772508107339770693687565996567491911503268788766265070909443193880978619680181596627234288009555006455232015325144376221993901291074097542788817421298472418586106104768666428855579047229214479776018714425161011811463745110262965277235135376394588848387064103159365832423061320183257911802550169364486438288471880822479919901490117297218181392935568101645993397338610864695635692902286184090357344571213552023066537415721345029008741068756050874466508615853409567971128676552209768099278328147496249204762478846648801870842548396979850325415852626138391816880524441957581098098566073945619437008485998331964050814406524623024559050076682103137595512698953287274021123190206329620254078602201054188574250320251517056423726021655017631968074020671707445928048718667581502080907765074721572139622648950558120547883297833337201124951911071726586626836864127336516784239081329712425968699120577599518260771548596823333268622636870100201624460746618579093871377551868501213940099840927555178367709041973551096699930408898793656041311695838674055116881709286359019454267301775834899806900162161013215833180558295301206236381216373530359567230314121775733759529216264044163814849565325431881667712009475124497579800457124832681016968197980748032785215443238001769210121684928569876886082751759046643444709116494712993062164762576424355489601019041043041942116968279159527409815675519788358732431823743375644261216312485542614082176926156734290981868473424773854628581056507013142281269108608361805286309044861892360706146840065747625314652058870854875727735235465160586205434861531203708752801400632127103630039806391767742194417051932238533126262426124068240877386851303724914024749873881978330271752119168412713842096438437290301093289327869098393480129276616917117340607438107279748102506594563631418996165225285712566294260323507419506904333707305961074285977914123034720890664574005052901997004261731837367247271914810908360611250621505401288796448300081570889199805233648441384839562203087223857027670502591943258779846835952260959585107702867737904434797748641112454263744384961463329782525337416749197266489743451856263430661851056160028495911447017279582510780867691649872569074077752505191511494512839919638918918325146061390642848119304837552527514808625771936171843611717295356249684303913365641020377796755296187760368949014836594235655689528720661428439765679977360982258184208766918388696232710198123846605872570319110792244915056287007219042490587779828463134868854046637840031481635060722249780648939642864377417530903889207739424729671077007775647832215887596230880162963364064429773530598639476553148216243511329933356105455458249554590886689609926904584574859872416461740849744338099148954419922524311199458936098561376558380452978207203824320605679806442612752928425549721046558920481996803090570019425235298976859984796422791245828013083380482982027557196899190369462415529953049134003898982168389680811308624298960817785014271492673942450199227277907968561461064054144097565357572211529066329313629871682220241454610097610021123643208996999178143359492318644077706146815172816784964002371008567474022633390364452004133778856906937962987571333651543546378919684283386674414046840538076551680954903064651236824557859942323914588918803883149352461098037284703449214841638385537015435712402330391291053482699822989485349244725833200600325555573460863641331248974510580629937106187884187528797928169794024950553420325553005589829682405270384949913536252573308171813605524927352979863852925380108051895490246534306232896212231524415943968532868658903588908737737649862228834775900069552074485145129475927221905149468654871392333581804990101847946795682129002559745883308965979621709360678571250097225511692039334874905147759145491061809517366995991159229968787332516013669767668496069447282135090984034637925810120516317117952891223695222452032645235313071874105063064926479125754908290681138081475792087849963686879701977059708520091705712875713493659596159595950420410036931202332430548093269721973856747340312640965204503129879836820245588088500393865079214632582016439886288041135891155208486943017288578684353026643214508644242658344530049015171625959954089068047061851634008241234504541391980463592669863478623884917399682421780437870992396257376798206664012882685231737551937157633526720712095223763948431263424271718399204765525707894309748941978545648437255403875069602714266480153160043500000459934879509748631980801902810868490023751511699457511521818845781065831088299746912103425978364933248294535561355766605552738532035420981228122038418320288076190559827791004447426882683497131626045449011427158436677227434564973661727608094947321981906879248701910158640459915783650562366804186837780695289514130473835081221089552615292626640994267220957576095131641673164346956487879789740292486921830625623615088222761074430737643585562319536478862550016360120430310126572394400445914180181134473667464021807947175581418893511003413015297534455467846034329461402783219750080823737082765496460491472181468798973313243419750310668458386181949005250650409979865588191508765783053969489643980972925427482901929438514234479916187203537752002466902806369633337275658416883530959001792047220902343411535259293090391416297695342520562694211607510333743510329928560689246536215816509517040230753963199729230585632050850011035301143093197869682410622469128986672054685982158936620016608854735443399883014978881577734268969136663087095797930634590784316807369436074882890455657843657905758709153869853693620281398480124724767555667116076974971661448116657164605349285197529200864225202591310962805361122032258979394646423773098990058818809661918869220364359341236168249481665511134880127092797051388192541645372254020149122307843193420964756609781753088692513294223830515327632900807136388005996961069868792714892094468734271801939818475195244138507602634573250149649518117068280252867217897575687085168645505178031871869557323850111378418119064359212546064893625387493366386219367623887102246241488678863363267540723879733103316664110643285386444135821053242707515778099857763283915318596646162900151298708436806564148791512975205861390266133616336591457404092123218678625336824920788972934817101747135638169059706895291845364732996933824235426179228205285370985623522809350824866968158549144241514379734404657191935609266616932518198230198011194593652083027905395867784918999278895940065542248586730992655138314713713439052578097342321708064387022260894980134381654111210161701732179963670486208125616229511912328133718759709082311853721087801047300237059889057697139222379872319584369076756842155388786348284534642586482854655472267411114233114720053255612860740283398715199311022703153900684324791403537946381448997395678910347567052047607340763002236707464633044455361504446662100147034604615656143218565678294545354697741903266936807106817719792964068603655223218926287889003163551907483258503102951780877512699243843726546138207524448478040241083773834896065550107408502731778613572744330052106540595629974472252062117609768683146955769132656107623353767183642074989089240976032442297162883202922698476137191047135159294076242941977785089677337637463191673411026673583382521337487838630943735334544539450119409965991704768766827006330293952726295248181812511330174702541934737070286026269932989461758480903802870619177640952241717289285229645926397139296200857421868057222895788996336878778686217673019803970876153156718986888986605787684644435103552724717850361897308195604713919724451959982054009771108983855343755522274716902057029655754619154941674446260241437135803384816210404974945167405979212789236668297144999540099530354233692014651595473035951459980120793182737673845003995313295494667289091994801928532325232735901778758921254785350832908413561131039388411142188187713824046362020759441639462294948952381333314399256061945277050226416990472840479403289503505888120118308108147948821799319546553539158649595066302088760085844871211863439435756939460236566856967684975647334590036419345202420434714424110056628192611708919168515672512399095276846789045341917448797830492423296432773201432137778242748905028314017911556474555607585322160065556262478955263394904424758783530250249145244503018541360176165421479724895531684763913144081808429077889953347119632377202979205518011668245990469208046398046927518677042121311068692018861702708202174682588864443942189895633426754823966493009245250774341480008572142798667068071637843270121293238792410673338063418377811062854979555305677242654026994619806504587985467119336394023222097751899648341520811372692387766780478005856320211728972185454501716746008199529371552686730007026472054788116534644210448086817566844399060665228539412724231676322072927732935502443809440888170794068818085113164593408262023931281242066479741161712367330926629586310860196225572769093161455267509833948883614375138444422622067335580180457871172999958473628379668588367455577853966060714376474651958123856708579273035621507468801739277052401697252827462553638813674379289024946720422512358823402020780814311395344304672671064881905127808672066775782570314882403794824012157186107607522007657911526421854356485467131896897568429411484399014409617781974220069780272867669257411910435329955119390187778836277950227236805333481218046887596841508900849627267968530708387568360734617578425145772493093948989128965151399007245170146675545246730956138574889480643460521644966303965571400300323319588958253013049404917033570853334807739459129696407556275384485761587689659882904582452103089906431810131737560371243445598690923228232670448158402332016285032683498690068918037391156636407233197858484726310591783325253744810569658544230842716057404891126943044411323283012079489110842408114660117116728394650361144916954933816856383243834617744695887699653421846611901146573815860723383018973920477707456529058181201557001578277543221048446032167367886949278921109500682742441658041219572592930813688204041056799324903355660151458345813558256663005112648029788259241225146294914821036360401766474192790195490752108761498100820785341835939321494391894776541640603196900430100620356877108214871609800268316004605767538006569624380353866792748554199172217856498527922979847595147271962021660562113741505035172534752294887795545660532511757324101252128873182656681572642900195541572204963417479474701987572998125000602718580197840303723954670192117344143753510023028614374927294075027005652181158426760233999395792523619377657727319805524201256146468929607508776691615919216860289439702356206733490515802528483534288857679881592839305100039645670620796518899855119878506748545213384865752280385034327961310387982984337890095710434637211050362687146748736012599777042322225897676621082901761782682524709633010258991857275880013612152898837574277423880612369787569720716241690399067438129268778423527671363485424594587509998060211305071725604301333568211318039726855854921448608686278901980151849529387731046890939582222756735757286110058025853157601940058610105921537424619552956614051834805261383280498456840338259123912360689234774920871930990329403145712097975631631597841460709515436266329564496678686796028697350113963713240589551760653335607230502198767299805248459172112384966633248116750257270599505146309655904899464771954141873677679521006138941811295174817654173464225507841957209809625573942632777717878290365562117999109713692156971951396934082139497586769453488904991102113097795771527277728649882852094318686020851745321302276462686115103213420348541855056786254547183573507981860957635845555836382410648689923820578168830959660107328968282478302765985435836745352054694712046918158058913815898483167003694012909764293402189751810327534109502123258880171041190455380608779971524269430576223916133763460217530700851553454855266339016964900931367900941271720278036352686847477028320589346626795250234303402229035512025092594034787864670793808482484222136651223443497065053766116046026782139542488306393031266901125839517145364227683029237300598213854509764971539136297724012795981476080587403673202547145450822067881412989145468744057981020643097277247424060906716504344024811471608965810908795806222019085517405534294006357919110719294664817084902476277425725675652580095103247230714654806830575260198755807774054429867845946962193463747779644908636755496587945356698247161814902366483092655107431201779795025893348754345272492288620839948695626554824377163741133151753867305193779874780290327922465848802004464847464844037827063296729352850717993378128954764280069732411702738147046656105816171544708540120253966718776121148744925391573602469627618370199409959379266635220962310924264042270967367059988145356420903730658460297942761346349181772337049468322290354955578045154271230122070926496369977191708809061655165979748621757977497121819690627164375615150547604994167916512752919484260609556118201835009564425068215742474676374856248262451891247857538012683035405759507420137019887351291874301957727356474270066046922442390565016884134127396258377822838812054405470435655829011939126452774787834274993387698096266138796479759639893316259865437621040376054230961264562057694281484072178036743828684781674660722088322433458160810839265242706738986720448246556121683005600156903817497350951367279335616885904014726532355981240491210847660667968681321330232458129986332484234225951369629553005168103283375659665881593886068841523871967978705502013078161006008538257420809523044397222114654411341888588650087025684710546207956099489043465883943111855026855718351036519100910616249330998945443247666487766946945645145153013120304987159349367360234950877116330560732009516544277568583598067990756474286073986467255801078266778502369274175459542704128461619180411731752380984755787550549577380500466928665363310628780496621028339999458205504510259211964008681529586392216541387634679296788050985487051419451627927839965564807632447179876292192238435882884155357846206107460632364563615398222886239562327453147227628742208778637740559980557698370476788085008430818150083363917842488263521724329385884082606554883006872757932946584793802034002970207294428923650549869446690176862162114801241961655562919769919609466038745189603176237743196725958041351193028543465029290259365324365977732016585652990653188368793691948363469215121549715270482561845191096136400220964524466912714398952697266344346946017005067453278081229870028526670925031107422728694771011973235388544887152873826312953604440236411060336437407488759383871975335945794436293230959645172858042528531956526582806785414059921557506304071353442714594625399692785050900740821758772706284146001058590710837118013637817020216099164983138045008502760216315280531168319200354113627304626475105071861354055471049625259828280224056189547605533808920109842402987944560646476062517262643578292297142176238377767989686886295689440861382489101835576765958607221783829499680467612468157218839165789405171846947591913613214638832950678825365366154304250574316705270859747281110286708610892381822851398079585621732054489273538498365364907425647738377816756364583658808595232037536169411140729618650231519783625846384716747376863316907455800680546050333181213098201146826037037159742764941298336893162953788582433225845178764587597389849271673992804545776355695548546796710710829334183284554315636984055278226452977228195840684254187064962784183331182289227052990732575266037251982012007479126447750056468036268985986821086148788945817461247492115330116262769987722945063066645559236955325563877212304664979210626320502878153081233216147304198003119683402827089072953210872197496537897402534045578832226466105301445466985827699698276260297700410183733633681656882057118780881604475563199553105716373085922831464682027994209483482131312420109431441926343571704501607736029667565806120309871486007659952247797866833199387964416757029527825081182644499321278653247269513180230539187489265475449332669031083385708651610334979762707667585311920386765298085190784663619426991421094267673282261540651087887132916361677247347149027052576458083130202416311141497427503400308131270756086954744777349860587232046810622334832774416202534591415591326450400775715293519954206833918347296962887698256789893265193386790981345954548941310628424379045636955267862336249861907600306792251866835066631208617146813315158213873947852509267454233194592779928074011979866079452074354500935949077917073688802593151260719027872705924872731495024198695097152231390787862725228353578373931519250387437893468289910044905355952254404073373752653086134669955353774761659350658632624307149145641416156914468995964205279950174315615201193222855153477601634486334679907116485460264738205034265279420098187362745364209634435608415899564014502121771225535049808284963345195064682062485306142948578558804723175021557799126238844785991591887094883988601758762546601111632801081039916853390558316780777981045914800511333686014210955160351822742463840600548425433105970223795820801621070843952111430930568490225700142905795578276223299207469195616970857351537724835299749549934672476104166054744621776899378062449471402809347924956258260904984101028874030189738615544377629802581597204435421761640674440086391206958495324058155786074832228831496732649687741112261043044457625718410284133389034062606439058396469005179396235629136697828995291371907583457250487052836021758795050728063067409773616812376356460836954901019096866461689330841941564723392267264902321679747932873239360214460812479815760744706605682242367342566609397260434296612455500686115385472469494637981250230085128894007095052414896650253094890556180732950653975933929607024853168062319569251405299007048319183652848018736167713292706260974433251592187902977645281171439552147759039545408347856261638879462793710820961660646861355108677015233953852947132457741337745047016248314754489029242011091862504283376921064710764749807860306331068383929995769263718954496320034399676719859708562603928553830711052282787280987307200664693596317593303849769027169862401283039444176122460214005825620104977946780334481476485417500109071421244956792117178908870761886735625025726570062134250406539084260482557056445822195689255621913504838929161035233136863572152184852285345305577225259676230556090875876525525700103346313197336273452289465272934221293046852661640139691192861764394603587561816981100140599821200453485376378572102387433792923912121560134601658222542246518432574644601989576164928536188628782132684994253230451156519472768328344218644007284116062950582079518409095162843462376842152381648868911757119060673152907885502551584289280769045145712032267380868950732361264236116124611231642000915134468288333826854121221414807525296757306797126140135989617411346721494391565536506833581887908692150161737150057651466600721818090048684390954956098007540363247519197242713992748281370160570775710893881494603073473048489698125463746466595946842582947424757178755052618919610129654202698795817167546879753904159205567651238746276588260712346303079038982473143868034771579670216539101292689811935230391184640723741757358449115442140232152631562185250974810607883882029321420456765619709472676905050277447098835279850522523679362461778126000654772641355411481922856697455229915681982666810318237784205917949909574423582923972642057584933021687729444827723269741158692233275270562670201776947865402123742090028030807498225935334532203657162800214368551521473530807100630194903432580730674937140863709165622807657020520057267957128318362677312570886919079463599143650909384384685741992427515333544205294733878395182763481798307280132745855354370836665887526397413612425956312809542385887604863004401589353006598408537675547561876542110147130192974084517563908853186380400138301605424561183263216179239727615355726894742244548644016897422156349595626048596715537889219800339472652682585045362813561660712588360200758697709634857790805651824027876903406880229211069971271813459534297106669089310949935230756175765297454298280270848917572432118059919445643648836626070932541985688802378733153181775833363130409544787220749698452111314524178145356873172968010809459369635388777439811593459856751143324588188865290248097605935543804830679589451461572714156050344151215635099209192340458192112438313723278489328789058678937250233064371343621421141048807605255206118679507026293787284202250280160203829274684452584984449904894952840196753473699993186350615746097990124840648740669631239075647878594357709446306573923623289569418569772374275276805533782283599324247507526102728287881494363417609531093613399076407477205145408360705684143829987681073165447086363928211027850303825701610168932936921625683976069035611474967797426646852469096950666811200758644086230229664567617029456888076907309451498278067798553902882836164056620185384359676332928728905049883532380228702270535543975310877162071077405986894939587836704585108341581495950936024785808649690984402201460390094604498890861697478128760245770712431920255927407752278983615334019929774318648753000296744588185205853244589482253584947572803038554666470559470542616210477021059984900680343307144369735239358409913090497555553870459347664299043293252190591460032157072555284988023555771927319378564163652601279661095120553855401331045967656063336957316790089774821951291094221198908240499908135832127208740991583024253092309900612415815336794637201979218126389837702581244862220429655172907999353584610968624205426755936939700251862794425617390216742093766590583453044190007731490027158862471546588070012842675578980645790691879238363209758648880906067012177356988241930472482053184726725075383076647622358982938545444810018002461945859720847201490877919070861550590216319245246571543745775785099890686351276414307464075668474627766545603439496492596003855356999101201026778255822069547570042030455149828846731060824626967659398688949442400353529327917841119187502828829081777515789343432390058901207535719059360816995750394898798081808948831084410439201757661568824711388992459233697868099079728477663382878868255517247127799851922474191553402166558744643879288788186641036161303427495352494305898701654427991389991021459300773071033396671201213854593049056456271324692931529434657166091224625893711739510902194450504894312485446534409864696764262817387419322432540730998053550808763039062636330811772564790724786425847112040455179357019641689298115343121024553626650268779404064570788099812158461417616499608962808558006261537820406282939722330488749917904095735074489904498231498089115364686146015921212743381557811430376990817235156525669969893319903520957365161711262242809570020045244787904626344799359172223478999411828989251259823390402871554687288411195966340306791464578319427868857984939916409305810035775586191489018530071631426881383423498548054957758203298481864102728189300747441611270845175120505724673488984856430705581990966855821588636313722272360561203256977881412700327236753966115723408405817261033203611487994283976467670497429207966748206086465327680087715497902397769306226400214061215831178451169097206695976025512718017168279674467671420324048892101763356458372989008294017396918909018521724182008316663661102897914721144937091651694157445100902144618563987082236905759121341979848275188673101885145558408638828650833852975463237405828755256618377269836506555063967684354416477880976040784924500939844229158300935222973562596252239003749413964245789741241244125827603569902537652349547856434343119081988700301919069460981161717266322827546479379537412490578278970378435251361313772444383228611032238441244940989888766911689942686753652729343882890265711470947618001522893531503922097833245429499158915420521806700489187085287566808804044342393732585029988340837703980966664224241718068020595802999847189704901707722987906699941443183263196502748141167341349260689373975410328263172629274611629242062019915245820550945503072902771161676816684124970399669562414166978465370199751401485208165224910279753941213668343577981487109767418100674945544504686856566978736906268837420430936535990658620051966221039734260953035059192970897706511853778036100212083934302461104409212811864543757644740783565465351973442117738492789834566676833228654393150637547146820496534503978981157951276501128816998625360033269058639882251584242705533454166171394421669537030844732558249010837242631256247200995288116120165024699670392928437289667120538840412943434540142498026758578927297219994794735397773502020510453145624419020716697361387758065349111905447092805446772472166044709563575529406919524710342160511787053275884881153946758336239016759298340725121243865184568364277509875559842357131499665238417540487601927174016097054894541099646866836132801466795632487616448262615645166558462242100903377638288864230887576816606847181823069403033515851851045329456557495339155594117895811919607696605942714684951174762929852033113258048390395131585336772642141991862760541954680275814484698341522219843382165891765902759303289398086773664706926334440130760052901521800004986617396943422874934132974418127684802560861470432386090962253264500003543581086074631424648436316470037728798125498440756555886693052047752293402810014008828854434800991851748887554940062161464805846127446565070874706082391027863028073404526762427199116190617498828821600015478049863431493281107125207300823438454177491611057725173668535031866647295750645473132183921004786052531562006677490521445799999642704877723172650265520135978416869865924586156926455271026000267866378310474303978506281869570973274452707451287010177833067181664199470359116224929410820950922783006373292836426909914035507593797820684433306187206980862857528109655184517215476911258351139585604937885377138882758921496383537244509160934917614748423012505849019447995114522211862538987377290504144201812112230911209520244250430057447959131234051356586662845104415295546160528734086066625344968303046742737648618650613535702127280542264918113449607358731167950520766261717874615322683195264031880316349884066445158876672863585550582890689067764018005395706316552337712932531051302906143600041059025255017778451430781717750210118209707421714260096973284833233274654212721694620843732614925870124681098513424905390971083096931102916196645102448349879056238939014008119166050522857805016629181846310232032989310428053685622621247156876535744265145349041143513534350073427429144891000714324641217469889415663689016302772627611488795323831902803570398014770484063077073453385729854627789898054521699411757805948135175758039525129490212021682033397609415968749311737344659074968985349148668291423647184966701801031216691737747444905159363041024923134269841883686813656405991754640267450861232603254641369249898405322021523632064616593365870664485456952142402104885660893356770220010662584279090422281376391022599989779671439661624432551910367135460490983333064303481586549542719895212847410163052388524210816984525739499551655852973601995549092263724153303463341845058073184112518955977328653311643930896711338722203772097933722953464030082392250383754513230410243707646398750541624275659272508584289932478796857877684201099206831644733004541490993395839975077961563494182208207748139406626832933755496138535068414251465893527454849459954273149664741245290662969360140556589944368375523057360808867586616291824425725130723085594474403665889801096848343755489019922376272739349719785898708825323174767508166466967892048802621077130538758344157575959402386439610753189247517226700010191774725569505459754972087358163500470224410053196021647640754447895276660082091507832882905488087859259254538159613149883782150836313222582409981578502607291019483620615682893623100663942693381804613197238192896957993403716047907265039483443357627230154638616447534931144161779366613144670359196799272439933356507669726017642584734700240429607195337665648355564151492675369794683417889084347353557277069180610565859439408878155510222609473968084168297264199530706201039040665456338423711261354622319262074040443202187296092961073298287751304058185692037010343833811831707324982519726013605513774819742104985146012459368771561058498794346890145001366544247104431842342817728771724491719085821403108152554403176749710450769981198432536180889210667743682173629817974290356075176742282072520018401990417526938447606518988558271646630353688605756044656221659574082701441759155809126752773300594890122258515890293775260216413377118220207957065254106989411530142188705707600679847838193344390490280150275711768047576369158029943230394711342550392347324434845339901432353919768673128326718225202104789407395135993033957996999169138770544245543205588372430540080658268343146731482826990541399226280019185552885386998713608628644549908161696412920453083329303727278359271948957425584620785408060486251759881485608455185199365237379979041510861236965339374548262756358121479281709073840086699518679944906566022381100611788338327711105518284493207566920937150308174138211274659737424704879743571489349415090425355244796532286644929576489131651295933809441443041062488355407852333835389319048736091176223571456252518913305631185256325094149680506438326951283427461470136240804871537146579774934340362348521184653156227069926329882787595534482156097244558651042925224808141453973757696588302421067465383691234291938911981911373171814963103528433862870337988364479221045245641517858579332731648881715450682694974462583151651202826442161659172783963766394501557133355372051466602556798488452546437655753234778762194428967484441958671262037288997462443327041110099323170012368255303223505817171529088356562009846011752270586145096223349850465518993866184001552423535784779065561903287646514000465724241847146641708002874268782189619527600012295261033302714871784831313182972703031470255567947521687493746130441274136896767469125298762732064268190095945228036299458946724898208047787951715573906989320870178900232780141872843983930462512458300530469959586049930178696481351311310106159126686515808984667426312281742505198803745616461954507271846828167293137047897660062991938147511035337995232642893646587435254910490067102295770925401568147946747009048161392926404498077160068845832059909822290478603457129580731431213000404630742673592695675282152360297700270448693903588203304154033483636414777280792791913776867405021385919428317593281862759228104827177166905888230264315622674426422144463014616751793903147892937343184124461118019521457400335916876958869538123257027018076079958488731275497823668580276007579263207151107001535712998124256296046039697142123652981022123748929694558781378394438254453956196110926457924341083579030782871570273022400388748932081758229747096786007601747825159461327728061646134218992331289547119492167375160581263065497502590688399601498923716383325451469553784913672154695360179281135820510928196089312474282949555278441494394988133435976656003019770072506810198442283469084896596408482110327839928304883755990700497358677602998332573831882512873657020602990116823345506396222837442277494402104941231027670926270526405815257530729923788247614055885410689791305458823502836315401762733039595503479679208561822171732203499758475587684541434915842342581405259892781999408306651269173798886515116787865472155477870517146403159971636895708951723398413786558410371151787523792100581648502572159234609180796019405727005993741884868647545831605244062645484566657234271386721976062980831532784808636846773485804342472299409363930993682708001036797926769586803758073827749886297282765701309127025789976872572870800645770231003552856095813879263392572254998702443705607582062309012553822089881317903398734274004492823333582289076331642134385061097829770204359813338284982041415070637945915777821583100876744416586866967331135936213858312826686254585717125102147648364632187451233545071661172153192034182162875062820656612671390876703471659304765490810850551090339443187651769419273428882486854090218053860743865212342885759165520053138110514549277287814758414908491946693046502013856159159765910839371703834131556016181144747913313931648928593099849620797093197880648304615155087267615202584743018874958830875592850725653286531020719024610939880800850334960879827869380378292870686255970305438261342958982214626073655780578747926912794754542758745704740633254032639373143321860105311141174702564115473108534968341384685310042272988585398988672976430996236631812829796428473072562467161091297326848660629121602849995033497168743582994534860776056348790515012081673023627629230300069119744427517630302414440752783662621765095067594024756923133104317654574815439015793759821131358225680242129441114561150900884312070545054693142638033982647697591707859628110737810651037975575522450460293406667575760212876719862202460627875136727949611162388997254282690719668312718210307010292022995282151223875494056068093849933443033229273186360110454689285842442206261500560461947752948790417302445281044476703105230959313647213943764766379594857247370944640703435592509137782520942532029740986273046790022291037822150828313055354965400083393740550860730335710716751388035062868711098382609773946747769941789409870350489367939783800689076371092065911288091025716846787699984442835495717193352838854723721868350073271228094657587982979175495629684420314896168050803793270503880200368393561928207206771916907302796274903481972054373739840248969337725076506881822074642056378572405737302234114650720769724126943152911524835826382040619931947927491013712919511037184150566022790638980682776858198263543219780282661922824467851679103013915245852449232265212148537421281496698865652274563653871601704028449250536230648746118309873611266823534962575943379786570368564659571510442731260323849880436686635438311841598191030723796517919962425413870082735965605902973148432202257485603708928164758977750283640308258302413611329580972621689385987251795286286852049033279964195143489123234686810556790352804671531581941430503839102688151069337084956610506723776095099182556987588899052272275284150451893725265054827578243887132310435890590419569843732465397473798656553282029548786931172536519334217800537148628969985843398276858162495607334426157405285537239546979170635366544434713620623936656069585702272019187595740077955303575287309053692088272840100101609380140049780557493075638887127625331139482236721470930714989467979728807638134081343887402347291848356471849063918378548530044069658864841671963625451959445324801821326045651903976215626249779520090382454525893425216344721939431697564937208345312525671596074640529248082848384932514770022459793856184441231066177492440799477760995458023712995671699970501302180628430779210346322157631161274695341538919830591956557890671781420301024486445817400816965665503705971027193860095922175939110029503687165480714026839466003257743518566541202586301890612113523986890663584327045848543282564453845131429224284645203042878223234554962376979892212020201180742060049485495810883539315100709775232156281610158499006747623739041241103557939774548881737270566021088683202667093865433531576468438041309343893531691896577040864362354438345827809818568175816253632507205779445233841412763146824816702199754860363194474317346965532452802225011032625048040561861566676990606953441059081908365979316597097769493000404640717894135228290702374283945693449719165882412098941694178651999523739379937980445145682739583965624191578683374325253705120427810003615790305508280846831633613158736841616875416351070500410603019742342306170864015704764869323837282704793646986339552307896661010653058573422811856035477369202694747021885884449623191759212915365149003672046751901689033644021386780086087995023455620771052079533359455715125078285528078652331286192563418312005645549225803007443469355041619731516599395713202470401744432385776072791319736279083137436227151587467854363780027434345268622451095470327208361147189663819383160858818249967474006065701773685626122136875702534684014587580899537583867384051486146778516492643289429182028388380167778338181522718689030290108056481629130128595497410625538725450868805439846975879693698293464506032445250816279933992706055739634423643553742689034375107711937430957045269158877838392965335228312100524018527689846223361589026035856572734656324017052431463955749216900493655466828701202975072538378593667694415586147753905816315000299395254610869510799573747004241607718420250213252122520923026232904513999115215513037018063171613125056068209831622321066233244236181712426100082833391496827598410936972780627138606916718165229256441391911054431175968018326547210588986894850301955992657239804085006627746772900553339849202575700625030087721134497747076546533315727908704143195814340820404686231731057639388116260873939444422701065855349957947908703760921979305503188561358046411326072903342320118376011936228212945651247070598059726946684032259616751839161826933136530668242802188071830713434355361478191687709074522280051005705512344115510402246315316472131631487368471361207531609265475371537011357999471687903393912601059101175984447635444513962418962156520654064696273953632058235990039782979133915334129349951249326965355241005963916973041501382532282253061372666031005437443250421156374894241330964183149954074224948977743998033902593745529463307190434990192322587121443175547998666731900827989393870490124080856156902073600296232202113492436875826730263275134453428457427564853287017284051548115805483888095757679948640696677822526371020636890423273704007419174100260190976802772193439044387426582282351645765483463123561817984607235043446562998387019913219135242301582663227219579001856036502686256549430241581772981156613739819805422397549603860510184473528045006662254006886737552228274339376402140754591282817549932048889265633924571212387039155750858801769968904781645467386336357223083434718154779930679682557278732553384286393965249519803172083008237520788848547231614436822402323555589042252584977563963090255950971100692356387358781851253400679446953082706901014443787986177497452462768961065550749066140392889175135855065259336552212021244956341285460546840246523371140985142374677770754657769368452636287054950115929697466968189531887962216583178563988361933379135281746011769180127681486256219319060522836004303494974824040950980492044393925188179478967180576635165207285240657517786734690231774254715743355238446982869841065822293306016250651111097444190244102495917363954578083227750869448526453351944860053887615506845528676243821455705907438487952004331500804562075655577850686390256927396324099105076313351485496169936579917563052577969320257063500469538914936520197806456275476065803315180790221593882177221865592725407255173582843653142245149209081203644888501721523560218880916777059662497495559128306675584708629265063777849081416625293706309034398664442767677550119730193668611409203375609668172430381162141817746450899414794638729881010408937890294661188787327795776633916424938487604845428163706269908218292751150736550097698769804876030301157967669480692953447544796069967539272812393421814843584823300440479973216324193917871599176570295958017484420889769541820754406196995359850633964657340935271147119048835556624490269633179246860739908143581922377713443065580651233221300710716945706172494675681202311883653249876564305810052007486178827241179985465328031755415535279635584916631609210694153162328994522617257613345687147854345137138689067998340824212853212255330758711949763200950663326216577719228192101351086661764708763474789964407543961367403045500100631715596972609522646307538075482768121383034472367660840297559809812589152961210872088651077410885307276800243655146983799941795197449827139418617221975592296946449201287743860961393360643807607169077508035032311229540969733663841901307771044718502935308509740391866506929589089578984751063113820458053484575589897797631216116473684380454080224281578398585635738529097562278626652661377589288132053731044156271375827346444765273378653250889798953276166504898486680190703832571844060043894519026269350830523381751742129799003348973661613257594261090770772606551717633485862707846766440983625201379851509659366688562441775626001986527901552362074732888394663173530921163408240369008784067486049855384048049684307845499018897902909984964651834180660197149905870534408865834263544495436035595837710953872173842352750985546224205811346882197578440226241688157378878600797910351325479964467452725981742930270425139088508865716368930930798806517897715386313623066506391346011715687220286593820158043959333942723050878082878644096843645325591867931714575251932730328910091740358983494415769143513807206191337364234831013517352942135770453112094306211049713468697856472239255770648779299870719158226682102732076099686380335806133121216161532264661668877606605437618067452606278997839342663484055042083578354258087646349513048988646036722989928127529591457568470435916122123590200736137170054209428166468559365805658329189030983266365582266184115921742940037490538807971056499486222828198824229028136768115124585974744954686226516601856689880056293932718137104933808655159702215935178035951350805662003288986217848464811568874130526213398930938576649553511116893811996869095674122105782044338996885984752667055135549530551530441602647595196386200380896671804429958792881578921230563108298401073269766224356417282032589119351105031302392627506602499526390217561103530967411583372541731654149115382163153752366458170415771508598261120682607931028319975850452005666427407934518974422054563040980847603425361062212840104425407156199083972348332124147741089354161010386354181751899669089206094294347463230809841685309477084427211704865144205794484753783001997314411477045041801891380890730476267695259800152545794146485897152168968693564924397499812123668485370718332481104074973563055090683362741045375846528163080338020766846338578336973802324495548532495607241973188443217730964466347789704218814457604951356451085523577293581347976682687647165589741351521994845974624299198966272234156593064001114851481848610581704277168724821555651193754171674922780425911978913593738564268118912868416223719613767459815836895465321345785389149198104287039107241059839496858650106935615052310548510062008637283132947307364592108212615228447571425649221029611337023800254967242274032368305440556637033923039983746707332344137937985738049475813554710735984192708041821837322809904751675792634075265431516380722474211561320987150328723005265125741270345007277008965111548703391536313907532202187018464115181981798139074144235554801550089402871767479380565168790945893490324786904769281958210080161318000889680275878458198295373853522891263784747954480726809552203847779627788574521669487038045622611899036259354066377701224266042983022781001875452222113640451758013105517669812046435812264166286690619738294472818181055879534754785818250907472399121968713992541232052694012422517071193574196470510724652844268577455054432847220562965634868236588184797186412872378697803618101251107115287561615249536999678671187930924440839797852215031776469982643427028276961430796979342870721634567422208409614090114386873621743532748362897928263473062877231826934507153521676602581007380740089023645445753888827572336225713963839606791613418078568438366887784150697914383067330920694852417890993530071339263044406982016241684296531094938978747005056216561878394991138000227539217934050829825070062126964615671629166571186116419418282553359515655924845560916987553201583031142363425353870232548570419381047624724827320688348497700277248484365044505183800925642069069627469352555039531292308444649948670866089761128918669297498867385871017006483048351050476503690942201896467677006179642579142942095439756698546983094377173556444676208384196284162141384473844616012212476358557654334622203666374953246338134420949643145948871963628383450271014406721697866138945901241219176694146014855964466158287079605671329069037334936208783980845501733938281709770497738552662839246253015146389936892243439279511588319501298974398338231731499521443538026594721089356366066301229126716336245901572403253084613798194066194136440463025641956728261833630334624435913286758434769357271651501061074543268550328678537620193614830699551192985253481781664401764954430342879722058051950895963273364913433291112128185291478870554433572793749028659447177083220109629755027668883661916182041997559842450990158501288815545338480471512335965895039494728199035034884932260619825906051084168478439278996918471628094537996423450481799098930867613440555704396729852485996625020800193485579417232934537789286019620711036941601947232290497447632149817975178933677443017010779087207968182406145470755096459011969535230932283648449858797435918686282872737524228847935905594501472472344536981221695795142633694438277001102900687009372325448047304449326275287164587058668614687507260318181233779736774332563204677220364884542498294182674297968029002671946347742824737782611497829605230505174914402535506502505779239179318050528764879591944949854902793874227444925122119330480308893459445475878444244893790925064719762665064137340955506380127384009823653362048221851640676475189100312028357294305290758752294828249974391512151763265139286268206112043225052564393925761989862607301909465782551334205874974283657083321401280540862845488036372657643784073862824783795612849584356368005357687288489884317371830329154025468519316619809158296210805032331136177490624961201274929357281675840127713536789561327838771507230043334798250671186838661056571452501696538791219787608800630992175441501328391301450907192620779943143977579092467931604859953473399401755794476012589830986155958760457040500514605535217774336702657253957862302084075788580956089228170824107684851416746147742576577335090080447718097588812516634437289501178860214424442878598431151719794457395425683210351101160377477199544905985589689422972525338464477634467660282591967455048610150317153716470537108895650953662112488577829122597788017888755452929765112389078676268997231451358278720814155389596341711052626556202994256630303006626468998967566315968569558942479506560850328725326067834854203718505882223163335739243553301426317543836766791993975730062189043177912343872487610036347358901720840996242590857108996592851376141796673271201516802616880909091533535627806284305423273141554396273987010556737314336042578367516298259518297145845656612910427403848317258780161388074365478072277030893243654865664085503507968604894261627303357454888483790092425512735534940111573042467964054917811369734888215424772842697789690537354625300953659046006566938649507421750345919277741119761552891279323734905441742229582172076004817361985311562005116786083269340672254582941492077293701153803703702165785623416155501860050123757039449613670401619536381124456619895678403390498838272232311433456226691509454924991357059253927405071257239707360109734429424844428048828585432003116996111387959953639810605452686032343735100844117620581840804772844872155614658864893848565009977709631796577262115104253847726890870909302566759004871920341261273111971815106048267383737949432294758163639434863947461091266048017596691886036685335914148136578962655534353210001539995574398032844005830253535192778176441744625006116353808732310217775720267770226173461129095648470555536898868145779954449201590671980101119784124055431871979238054338699038931470799020981203321868984018028999191971895727853514859096939072305232848704725433527820610204540473214923407253471706086549775863794644731616397641413120267682183131133843923504463920933913139438580555604320645464678831074382496762391143305529715205915107723449268828678172795540706284864840720149582552715267877725588512131711463239226123529110154904327602217787435537502332884379365477347411745200553147376707081739527336326529246447185323009806792042970547990171604143906510429343700609870803215912790959099545516935633492903763761353802912045200846890817258316170366966934500122398379444992550520258898171884403969190800581694512599285982918030884074979214581943741651012814079771894811506038968727609584218014694893990843623699100398886765945762679416980075083810174000630866324436224361660730214322406153972043422579812320727112608042090042600061542838234630076607058404826283297733807715213763087231849379637256474690472713684921206614775482241691092401139928759557526138754083006075523439053581524317213375286038576741806481389307507353048512667343138403684268351508746008097708258734292971466332418488710477145655690309240394237124001495238849972195973798072124932057884472070548349004973216193429982369483485982076300320816816801662576969029946597282637425601359090901853759397239604689155710396786979880347347922987598122552982936976010545043965030652450966203367105160300315421725256279142859186133268479967782448465487910119112582222992354078839849895708102265728420042369629827591224580091120045600643711307231361496760507191386095690992626422095216136478422036471789681335760249732872441120767571854037433119179667983263894211782707553446332238043830125625260087941375961055454050984113711006777000640288309191536026307975016074122464240420758792027886689217665173128532220196962379070519635356500407209173735699147101188728917658493405453330176426505540509157384622525580993370248240765683687205143397344178411940193983179930044887000043556273348121653877572069180706850732525156521651932722663695683620379688622597112268397556064081732348819017806377137668617052190276723502517024613260641906426804297565697673539434011293051936867443315772581730522618676948830325801565762345422758710576957222675886735615321025024505818590794803005479725955950935579148811863459541753646643221416011893069205908613026087625131795269344322432960836040231299131780670526907217849404588989230594968418269535175120333474403870827076265910344113282682875314234801018609475072247954252656134435966748845840861944890742077020552657488783431032562745999669428204774607348911280487714498777001301043869077194395849939684210819425859135139752435416924639126005277842613718935242556293749474235071927472845684010070296473640541505522917501432334538157340964441854814250187746285210886349351207912221234888154487369366724168653339064968405574907073797715371428995189382660046703119278651051032574330924329281818818885253258445078149466195774872530563387410515739576789860794957463160437078748575976272498219727258085444880472119636810065241587159940126600062873529828405900005012470480131870096267966938229201029317221120193559303928351921528744475255590629892919209795224046240070266667763323049637820733264681671580060172685077454980024410678256404865560114300903078451661716283558013917183182481580011452809296259749516490193854206236639945432582323932234675538525907648135063120839525565293347869030682270952271880261106318427341005884146967028091122899921770047921527598748386475997220685747532856684500472570178651746639278329558993471905695828083119213160681666973041206274159925125790437550234352344224495971599638002038285618364658032859329057535718410960350941663144253470768305518579465629731795776753276926869249186749465540971428593214414070232923286771168223291135787299702707350028935895541509291902778290376587783905601167968867589478853750228960806605844095267082177624354295846166802305153398053143548204522469393798099763608814814544871474294472533268006157930524247860806679235140323483506385524819450913313762199333935241870867287372157801814603379087992501578029558516342457557938784007876843624665458910550156153198638827021585657634014071587861419065943152522844152477954364787253975210341298863667700113929271842099524737296422534003219787151034682877355377398073745300434961993443767972384367355507289946592797859692528176859147265694048604804173681786856780174548359076169292263771964012780293719879875471003657115154191333575242933922280938400826252792785120001744824017194329186926104011215247931660423820553099922974570566839206578527911010140496130489962354437763132496028611972274829807653803124564135607953439529668897821990046365558459508716851330815727233607363671699690134383262590509903369703201010935120160609206210974077318690805132530386626140464142407539357688041260025204718456385583389907381990672207929539660684720662951139093421337647910480568104797135227753051499581128836764969899189713390012084591087222948036976734976244064371810376994064083187829327263274332439608258752725828197506453663172444345632836505295317056627790906535191946860917336744366290266626955973951203660827693780286951604426206318368132092623803543203125186718847125284075693385616511975629817394727339302011806802860752304643824300081043973356728505189652287035251462132696169764951267703824657501552699132472697086149651706423362450554343158786191311056179869000032983133590333736528574864387539276338948670685409328646699762171548662073305381515765888731956868065800403516537023076755991213780277422089911607019703623087680740892960902374717684838868006023836819985671054783386730657828152615075108556481347131201171860762280233684126917268450823452794306941122664197998190786614611159492483022394993416328743664950619706073222385491738188914444387900366291154282370950735150356398084350061896255104159444122881507180189410594719655334772975867648420651144056084103515017776321290261059127862918412969997615759700055150067374916907857864439305822817048651081578947956210963350782910735044617978330143579795137362586462451475327261259251635957952876885016443780770045923404979453770937486168757101420913175102931432913815145701530262618064121300781674761984319523386148805610402604788208134788840520498658436499040013358887829159697246729031054324851300606393127414135857628629177610155759692037533388647929112105345891127116938205445724596439849794667177145366664491372601155953982331152975608696192818135693127688175833386141394089484454775372731092850271458989109243507015394593376633172590883795339033406830293509481122698688687729733870978036759303409608108285108719364059770617483736936477497030266604737588282119616961537097057976951227652585590577417585498565134480632361807796511730739848681431250891210944637398074564569423470411895841159161613115927393829550573725310386838893592991619030185499381930905765878363892860120749981444478832426407163951455117521121723868325834322013852838188409720235525697197024795849091317023164720862802391708360762901806347153259020682337989954756690700142002885003214488912004969614484765004664545650338439319097224326649440529805998792244913287154429466440961707315201050148385157540654391075366352049660547079755271244520324146178558841014070362424028408138514942620195217140379576610709027325908555492545819044788697640231125148121742371426537623624741170567773195729885459363512321742380426426567880830180510957094532386394562817499882231932894889984894571125307137890013792126748189771475646254500528692513312784278213395800521609554600005846106924676454946214144876691223136199186165528128174742016414469364852214818683201407458078124000714517118800790922612539720335671530132884399854142023434887105861803877939826955158702538613541019229981387428470996496277708222520460722534867125332471654443301542212075682568350724271401028409977908072064413264566093981706628357941605914520726873269231713501687486389035303823004082778358177274595032760295209104738987288300547366203454542735371757218870595720751011614217596335616379081054706961786850340591486589165673119312340225974813034102704760089858813795054848177852328210840103829252211590491060554983165152018036321883275234630507411173720149922509326602174292042505930840404632553183217388045532159716295836406046704591414065756918759510829620827305807315264613959925509871045886566619411597019525798992803786247373160734036133985564428405919893178649414962390150725506351017150350219708089431304637315520867396385967901517730039168166663913582290099895261356961367889112169098963498969598820626290705208187141852367736307074580746915394131616187316107620129639382947092084942716501144941397434274205196253959342862840968492013703344643143083741757793081691021937512913152329785528274705953752778434253995519108864430761208256592670411608192110810366035424792069527156071704072967304168545269101587889460297614396588194378761364632185351631061789540562726108803301571010341308115705382189078858691324287930978087933639536649970858654410967738874912582579503237413109027739109908772581047760178627778729057550969414164009681983873473424929105769157987181534045681555652777011873711652666535068429727819110464235214332798661909375182334303474412773865722406071748008703516358628294143031311946494765840650733733087728524457861324089688572245479195264352005233936461194725977302520133653115218754084465960704622925007349707385004455463192826325329849103828856959497102853098982522165246357385731487944186232230457909964025460864252815654446183472389087056331636387761183678818544158667004163453126166485784808442560169143923898440408433474282395097387100597030287158488051017486819160734600697014565880320012924338055777393819620812472865479267111646182488266474607143643792486538343701300212373264455480758575012332804261147123154503918034224609954486261231320953982364510468044357527580432261285015845308969581345560811625704348323867029142754180196968698509172926011848789505499507716546284035626867939625305337757537152802724101555845609701858499003613940266450243616511534122866365964254792235707087923570529596723494616072603279463840391682692358863674167710608823087238500554932863460098329224747103426372516557503968520467467018710011958932242608157199782843886414127055825690255568622172277480338042265947366644661796469589763128982866720639278348876444186138139710137791421013285380559253630078909613908738766178055761873089459700172919627828761933498140184152996417121910981017460999097202868737566288480381610754485888503282234587759173650793897710752427553172146947827692211967668754701917942462158889596112187381190021241271156364376916732231455371463191224399078400527283872930769584869668186356698782279841629030508382609906397022102080944150430032092466407528863904059973994327002541623576995177614327640654765457654167533483705089004771567479888670413110400321294979982754503311011384778332170593174917217164131143310202179633636523393015950013890071095044294168638473225353245540110694165594395289026554505737195768814670795511558404751198863113729125900938987052378412507578912023672831340833375787400562433082582474230633976728914592808865952818985939967893060600349847569773561505169980659005579914250468163957632341126256462198241212418752069525778563035508044435445277125050086769050551955097212237069012385564322892232007180755564898276344325435577782419777186163092857213466905726580170576927157759808094726504021331819769432604521049543737713205987577929708430910037043822725081837815005834391423092502487193743363559117749218517509290226085173972738447503008458816929720051910877471821412056894151332463170127923554822871920660838264818086935354860878722912377937404325429817202384334855984148721882838343777807085012599637890095023139491969796137984751282758661645888745436106222375821430437322416802401921204039066096109240389450326393920714307512886789451163293276933280381675587379268981522582980422766208791865466919302763859525214758089619373536005721731946788430164058676255912703655008934034491888749669292553949983601512975913105722664865611388321892941459250246045048383649977880111463104623825339184644624136987782576576787451935200354257766425961439578976551782515592118357547743494724309968795518632007468900141596868153166652117137963293551236732955300835089997338687748328704216936225675910496095637221408442571385824833430643836041489488720092755359816867969822815104533088147540150237370346399242521564551422871626945439345733037773286319798332749152058233435897322827614840529307782658810280846217565464523229704078290054256267788951434840379746079281720818600823118591119823271962259618831589960314292036482115401340716313383337707666510628019462923570221375641483529244419585956557791662466595704674728314896405995566644241208615012820400047867929628011142422288223878596088993964171999201427658425939490136252558162558266101742759308550136271864317548084597158435052893474987871951156225224623073821131537885628246673424011935531692618509208034652712896427294966129249165880699001964198228960525513727317414754714357079436479057977889730756052694245640352655856700119687944181976997851332272706610392905613459524301631605734875193190827552887792897831042027334226547392110034476933768665698354572443315268088560253903784520647860918650380656023835892434419769698457124461096497303400206163524830055695558265997097439383318696747719202863680667772924393273515907407035734072265375867390669668171265316468719259405974004461139805913886490825646051622500164550092223662408641751668224073902163206942461587475256789470317833926068059566085499053467114641311939515588849637538877849224146487427587707129080897038559784612672879615939293247841989455218451006705333093495248847710366236410618466509462815908926475557150881409431410247559563746938657421842220070512627471391653651585130723925005975315221908976929605204418208417436837387552613073652004103714754506206338373945493239030753518524931427556528714228107964795567784940395376368676094279134610553780242306655484856087826969491749124927370593727512615427832321966645127900508628591790567132934152888298116741320096466696787025556521938935451518710986530566622681080848916056881203019645904400784740898032768051036809059759439443740727454807743721032208559607197322301535593631838547692523199348993255981505359256167899803032145347656542625691982950832366725823959886544886703406219868054479088094896881510593001204349138572326203747354114858634442368869500674759772380902240815148719287497966696031448526651086227939979706415855728666975527783019017020420178495957957213148553893110455817458230559558918610505197337949465550019996521714394765368939859901384104152170637529110621579392846359315745374535154273187674950839074037017284718821278093222881187664062854630974819086746440575374741676974387666351972099470555876033175617147104482299185460859007114270947662468088550927604716279877850093229459219441789574088404269349595983747022396628207064005706574017036999895845084999594534080890021423012973471263517751086242381135709264570536366079017123164734438491904537015533660929297899892276776655605079123637877467289798824072186232941407575663133277301929967069213784225802248848738973966353425776142995970311921315156120530850574966156341542893660526098991965251696735174143206444172865263037900715296649797345205226310747790567169910797624258883052765620796627364128366710243466769078631243805096513091887270593609276152857830370829994704048855326805755118327443406218550845751811536574471502858609260435587088276146007688931607568606977009594910428550797509991099642780874651986284798550344591683980515213284705010732864975228616137795348352148191646793445202107147822945159654481573172882952372706296160077748286100078983060277956658416126569189763298754069166440238463218551977117345931455016225079492690241365868772339571740209491646745504976887084450910464495371399316472127216368597257752607387027300526307467684553968747869548948802907324600641498760760952258864382092923001320746873676118995757803858588485825286237237233144245917182667214167132422757137097321305638144747314617164073942273964871212592368300708390169706736085454804899042597843106330564602057489075227542293122526142504655352129645427932413455987925420442073049369875695242722436088248522351363791316535280105549176292890638144106911061057880053029042543868974441317001239431880675256213061150109964598507616316170585523182506506975774651073432983009897172257579963860955945122047092018263544076352433157807964794769071150350206957365094051187473559196757821503404357560656399014271526088051400687620421062281988674513088685610691238984408795306912328861959274302594265868275499114621281439100517162044941496284604919511991492167309355275019930442253833220786984415429425097598672814908310192337723042021447787502499258363361203064035030697641359762757503862979688720254810321254123480413302271368516220858086570830442483610044816804595701400551251665978223200819896098369131065347228461047258398201184246158569828413671375960080352678195034542527572463983020512841504680701289126737523357923698391346872398302246776312164077037064625801488797185399978604097705212568959255465962174937629159588443281509145547854025545528013697584896049501249639492156371204690260205443362062535601279493526364824614117139644431765075855661519756754170561126535322308448390373275325621468773642666125463950583343881441277960262907297235613899714588014496116727960934699650766643715738975131933805452721353210811667018702191948823741005212854339752614545611584641931866664270691667329805378538560627123185436146472932953612371239138471369764075071218590020187272939839617401725851074999337887970676001281353036559397244642730531789065840144551323115093040674470641359945527731845194713628097490527801709271565015203899365083942970643321536951016962638821664923157491339746779160640567218137726489713630133375102919621538047664548278438193912794606578619006441323870581969891984211844989098851025810554054611319797742886881201380862981103417331595914843388527402460930985558597452276760928955609670919233437126314255010911950844644472822426471871947563884238032795418235939796962776037013792102895411118894112410279461101881901234663284630744378790255979407756255098990669105416342029428465293811453659155798834323129557802588237676769353972142087215291669591496948040981031834368954250125093431377179723854403092266563445941385722382229958348261336604439686951921306857561482308238027534583294040402450176655872526908174622539915305920013009145575807889425939524321265753933049009432606470744189050997592088058519159683164686899361808748942868914516038028624698956091305085457291918524068766691159203497237962318078116095841450569408365550515625023079749931962154842648225654804947725482224123213506507664778418831653201927585639116557519722392987006241082244569613994258620462486414246430743885472638751372194435398256286160322585077594347229286392459368107225862696957173612798826422662488147358020149291317882112574238665484643072229104908866561077702036840281361445883827520018322090746700478041709962498822671312139733729556126703226331401497923106654323311432514995072459119424017646416463232870927047317253772649125076234670980877814121283011324681006168773338418897709096945678618657749552482712986106640757676884837064085073501287075066436859819408724779148902701974849437428881315178799767482394422057368262568094596370641895582624680974804863105760044359468596660771279582448441930526088624920265761385776474869404080236134715838340744142517025752338361689112289848892993210881121547835844217231690888322670904457841961251938130442979457073086453965784746953945822463856900571355024113567583996280061018470376148710204395774643746849565659395120125670027416604483115372249513015650708366899304044921087300164705418019190669162697131317799720739270582062985733914145759924090657931715017098823343966043041451130725564717006155201594720159499235185936726377571953602751205273878742954522270552760302182579265938149324404039921330960583885020316935192082455969088789563943906172415713192381477551745624841981650234588098247314769375111502366586819458134615994602774590153282688855832458117178526897980458980398670599174670302915090576931688152140309952071049034645429627925317236066729022249456058003194369188057018364970949729402367642665395613238015043146032290883199265718215948558340935951007991589276389363281015600365602447981728539450343588055992592901128430329774816558175878525513869939200402565961390347479686439274670824970766705780922528850899973550597499986088360218244870603083219432407728262731098120067551806979175428938114930215819987480798949615399371091725776516131954216181690519604608072528655085537748911903748510831676936188932866303002528013849028553161219546908992626931335802143637707461710683111168404565845289508766028501144504759481227851608937966568074673808646584515964851723572003751559133436201875535156280784193990674623618239772915129876292706422030277919702100869543300305771375253184093113633136163294357550231400972568416603194403941399261699624352622882954855166803625724457370573704317188436971618868463574033810179337714211581539957049380624100792855656446233906766874897570583081963586343240587282387318075876723359657397381683111616079067829782848918296380634339601517901818437303336428516683556040327862186402620129257726038750956568416465704236570822635896199280180580302895581698777714727836060376534164029312795415332004017482526805144711845065459382246257578480933396792543711633316099860934583311500368186084973680800665102157129683630276451347730276287855629655982888413124131645885421946565379664540366427361962375510456722000118609226302198913689620773711945544071923214170893261647758541656525185821490989434177368972092602530517817327372404094023315027688709312974384574518985485495431552555739124259003135355280657897497243800788202577080713208515823910642423433465151454839149254118833436166982918366140462889569505275545189425406322646240813954975770996242255203286276728532189678878994698034399768988303220601898982538196761143918964062837245690740433747512093686852641013878815142327014694932041767058310817391766485063210700439393013644980725307645131046704378601976702290483243781127061411974998417215565223093577393124590029333691153426635211834975969418924805715218018359328882171408302274341869249327947261713809840310547146340369975978893331158796609314743251355118635100014057122688932983927850539840476199821412850584170240173294430290137698700937249852206902063788146155039445734322996347211764417746791718483552526773333373965327304470853823049020409831754686535203800776389798647741295684632310753730512775801386506454385638444153034185107856047307888053291038472914182063134511269718671564963567895653607525672426096353024537767377151746836041005441629881622755506263454444241123476186955287508329159173558947395187354190610866749179215771921312215019306382470889529207869352207030955416170292804054507007625546002299840631032093509545060891511111991704449692079033630910341359231485354190334423833495170273930850625032409758223178055687271485460757817781375275234907117171638853966936601510147596872536702634491801028357792161747335883720130197561403900263340595903581741202765796429450936915995794388309897504064103983799780249231787411071451012162575694291671358857103060436045431954766164862810232999546405367689253245133884489156086599386397187021714225544020787232595006566754896349212690849828803857513995615311268064109498125042511923788910664002823888819094028859259807485065557281968445705624975210360537574803585448527949373274913403043577419694903735507438178805036333025055114414167739285636972865354691235795946669224316736338499742507312118647628620251752350699190131308703545651963636285569407459691826855394548370409071534561602434874925524588991531265000682243838126469381414020452251929686756172979366853476603715492530619433182068790941488244439536306558634959402503711558476833638897937812793759332009349912424711395067298906776566465966930677319529962239343907568524076068908949599020662283179954752311718624636716142494749099084772450444049203049724814847267771023933208182801887172570431535585812994801961478404333147381458436120776985971569173310344986197427785252627723551040700351570353389058566655201523743022699643574277504996299185392725532204448959879834070353743780692494198474977323836391992072783694797582998536044396269635198591354689691639476332562154123598699525433090583799183198506293465100221849496168656921781734802158920453495250800836889077413944332351115383597781269319097836760125509368534274271012415757678244454312528251695745520057593216827410413869696888581799160710083916152541502191467922629368125695749819415482748879685081376803450979013223019008651438028536917681914675211192784796077184082277387504531982808769754212193706562001079547456730740838995795089630517239778121250241659475797780343420381125330131830361105457421846345537221673715712147090035787899889575759604365700965249154699382846739080013330860522662702318814270107095594592632436501475511982720546850566528978595569979390760555605937978518716418719297851629366361696509970523053056691057572839932048475666820696463372003349168916444811787753890999038514417316459028750042513564725211603407600833255867109275596235379679345167066321485341152831418672783970617813173577433430163137799390796313049010928623169272821392413668129984340227201602666111734882033856028851396760031519201884816750712921133473214823790609793550580906502761341201233215429566997031296643584464657467552082848828032298620491900184386319504856653272082290280839520881828125363665214485945080108684958889112553629597582951637778455162442302632838753496638488114319376797350998946318766506349466694585957862169868682545473037275306622802425608929699582439357286891730335510295907379472015416839158016872857378182525962408140855261329405328086894012161965921745709592610080787926321996693423780374212624481059222195705435010844734563562210908567001884802022279306234355660982249739406957038723561772325506660636061348440151555708391249051077480441572169547387591282769262438896515311386678315077847091333774052688581984393499967210385947700516299715081767322456830783643081693079088988217732212575419015057514008520427576190849671181313643659515765159152962604396501865630489129375869006083305142909055082903456487109264868036966009861459628378680482880708248661407202441721725733541793918299325453323586981167506904671148664356053574827610012000223553026762855385107347400135645620557556428457354956244170730199146979674378122694913994973871319038748164412287909750311459015140755060443757704571642360076508683775191375090887093479928089630033626054916700378061735589195464885039853826421709243569166190483299318485604597269750231514275118565241850268631652473638801924112753013224595082458461837550631311433258660316780397500400782373931227142042473578967556702265346092457790849395836398773893896158436623492926320855473547889465675144681995905652546759187700461299909435884844593746633031540319077303886545158026562155048517521810016499911418074190414508753311668851406533841354152509369853294646810737875386339728129982262668171458509643855179240413452119030191679615293731855343382138459749369125603595414783935660547972499951687265269839304611738515423474976903369945111490808726418952170295604879028196977777030586789931608013182457424225508164744847564915906172951252594342896682519704334321208937231747547168014945001203855633926022135065910307073617671522233323646972274816607443928437702605634030294632761940273451774247175501583024986478533217738951316591610633378935203120705505037188468174006237924248576292261741237137881035148169219011792490158294528977978063556742905472488889203392987142119576570046178109133281078800660234144288667921693881661845343897227320658052299458536793083952215810317472546296189812940387301671399227014057936917331902825672470149103697344518159567694979890341504155384515935049427242211840064677219147824527453305001310148268048427257298374998324186614274447265458129868086651531344317303508269323470186089457931503391783320825322737826201326529371878004283539714716244912450792772111640048371156802819250969937703951554178578878494026176434686944018300453194980192434862246141447016700679259313489009045266392198416884504823851496561380020510111359541360100444015953285713737864122569906228550130724882781156900762119520041685956685348551512228379080442422941760844937281812216826341916757581405848930863695695953429867399259115185020142873512710733588375437520267941682075101384460739595286890370109258112691745467301545546215608536913337454640624782492434567953995106062309108744869743666080116331507980574813841111273238863983327689072248270775343575876787612717349561083556398509176783274441994427889353246608080779154304451554769641049328753694343741339926972948246163156602005317489863462338661400281137197302206845865455255382854199338178058593349116805984614912612362351906379216601728430231238219915457353942961804782112871309438835014629197939339291167817741211787744541716897050254953928608291687198711345661338473384558925671767794722025733223373877280184739818963118049281526672083538623131255198578500435420971002912497350962915145972937355931741971084174054732790232642304456014798020900974273229877556776375560779554270942604193637371189800510226761617118009752916368601765787194096728525564926369108149417229713656552122569301650002741175199411286020127648094491416489656398070021149147134195756752393528270066141559641424556467525321342620790360531657490756504865468199447587731852282591785348649618237587582744532118268886203327467743343602259772068957265214850826032763288104376082669215671193645879455571448401869265941719519106787859518109847669945406211547999397748647995025059329957763415195496044465098937894220035585530881036504167182235515981581007302509778780838843469102930428569929211339128130647291593698369030635744595500517192751437249268129590769647743320853400334359360913874949323765970546294551570862688275053960518265891076563850004277135337414485504288644441138696262018680633851474571568711254446316741578350976748586631270612631127155466179383327606666836263414485424064413189209586551869250968036482782412869846839941597005412805614875588182739500024956047980548960620289220078315295366408336111361498493059434589253330552554123450862929859082309526101948117891320446299308249140260214599539803575007822316462026699724596186079489304479728051315198174259499171008582052615778758250211718420734610146198360532473057700303444764291956940563100713262621641856319156531582995891396117017093979743959653591521636427292788635812711476434939122988137612528066017891940886480550577785267926468321591001243977994781830514534284777263598014900110600594177313676718008305347398179695492902660914646512450573179953197180501725854552419380891386315535928262879124983782530611236285272603904239510446543843785490736802808516046777241036528070869229841546001985713024415524100403113633762419502317674458321290179295639890793687116478129344611473849018963341143811241843374542645999391461479163969561525921046759565580230086629420131758336029408162618149863183949648519429728423628792511212261785731593789351540577874621504593974320694742575503785277774163959958051986925095849181667155819031275716593571080047631989942112921436277153527782633484326899873325100453970161380611935632743465458997412369143324238995257871018113216849203194862133444282649859031930513493848766443053087966517953793646301079257493807586412816624535348091482954578411948146745854943336144617159374363824649708755583059691889938748145943135625850778584942836606374286038542889699467250692739266100395576693076063798507365214358222510918483661041274517823322850136499926373434587929699006280776286765436526110258592550029474388950718507395070044762681293637178027506675931637468131144180837196682085951411346846007253317937023956295915403414752679896831043233852861032993649320314655301658458061653554724446701975418859370451531579406805012770774066349744199324092067019305547031117051641031993970434233965372492916652478609201206539696699587030097719580268335855193793300186224439003737928200471508207871487799771326219120818483835395859043829044216432134391657910185203848717722912345896284004160600330149039542055629016785549471309176155128870915888570969363421990840107290954117551858895239263710460226834257991975141408553934008742879355594944063491673625837862814869977562783231751546025952664299701421790119917767924973804675132919305631673349166360190630156760583067021483407269480895183834425384588689534015302372890524885018850193206322980775975165985154506215441537351823964002127945178456104394416196461793912428980739077507722811641166767053992514939477080846566101018904159329743074392158271219145533809094881671975372352142275485425144893367150020964230447946552999044855616117462850769811391270871713708158495978150363639150042814384968151258987945516340277736503497431846183249528663550545442893104856613267507008220254237360184774813563152140490745248913162052069951729204969072119640562907965357642772967880672334093209134380944861286985411136064613619037053715330456183214921960918881072548710228918222627015221739528879000685677787175713523243013348206240343918017144098332789726845300932075368123617922858259963954075654347394104095158947773512676252964085275640446490292843389637791212276407417090892465937298251730685556122526546907617387353883519344214945267892077132732756154503292970189097617771261534225788077328251482535699810250114194999603613394655899875348368442336151336203355338389954489080727533782980269979085607861695255074581965151526753817624294645573642357030671146382083870984116259654994323829897176873735950377098360573777703265238244412749968494292911931538515088917869708254744347221348323642336169955105481414035281814891983794757481177193488031584161345873578281203259584389251474542849657104082675165304610776720643690323344857406411602780699809624451149792215096764752860747978966658388912140954729005156478607806420528538977455353127620948640164183526199340056857840936772680492598818189908078362505249862796216821267515446407661915340649408486820105167872528699305637683954889987062599955439295169411408519920777235574815319810487216709583671388867370498060288959104374810024190564623693073985782122653568565676801587918340402738813870281772131391843609933088584852083694700180230122333079360344631551103674601513489270751145370205933557970844101506197456753652109829777122763789120238386666131430619102429675813457479614337551917101200816750372079038145790093361605798751230393261277068275209582271208580714141386491454617028975668300341669956805274268403083024195961774129010053447949232012698828460533436700044323308522736909297144535132153047364709609611183335948218212817242887918806080938523277124817707564368970333805144923478187799785500240047861403260085331622415009281078123295261111313110801134026042085215982778755176608134632800400767400375286729403004708884636731220987882592257303816305413461407468656415542532152218301080315030520841452107402444667075881768072435152216022034689925152140049017331112870751680153880823127073855121473063717283488355514402696002610628646409387481803077590531683072681023148758000990489830751241167941024361757942370670471024504091499620673431449401674950486770918482660352936761899569448788892203480962954439870026593626430335071739079072639033814266254191401291461950294108510227895968931538061657347591896770007704010518658672454039346921860890091391370057304045052720789131495310194693659483929437976283956506312649182641505082082618733402449175664491179328957235295129119581364250657130788994403038476974289588213891362302377663577613490671815380627520909106896354031221613614685645710890026633485271325890912008770077591028221545767904596789364620192150638778408529559928735268387538883658371638148159828464440346020193391880997298021855583436044584891188251097084376443760191591496064215420508979048469420768853282857078144366729806157466527270486300932753416508100875226859238271378337317973628107645112847282460346773189095513644733178882762887474407940081359902268015855107583630798575593068857554159822740344167729004160553767836051315280679882566643253434101526261116452533333865519641211130675557171718719112913055446293315766271319675564315018338964812839462780844779684583690718899178527117885182353826142572657655399198572323157374300274554725415039596286187796218798849550137936656034782393917941427429381388149247897731276767387687792865044019775412144485535012923473603653790130731551033477905906169457844608320524617759676318264787065908217452720465982225404007202123869483098305492846505842245416928522525327743718353026833446879390770162860466020599453276615096408052375755427188326445331307066633254149915003640954113453928834805139129364554800472699536732116557986912007302673590736906236523153471767796336514715864029590214319822980664804050920650873404154450004569192362408334967288972460502110959242969550726820962696394410831632983004214864039943234116631699952265611936423384925422441299216346805573901580416355308169089660053714672945181242318273534704027001544528779671101399145591753134950039321790055626066957267449258013833488800560535157524170382941332783860859546933357097436826953071041910680544776531729531786944120988148555834331442081996233443782810007317935359914679710201777190916691070366207776654510325162510632514997390767325129138986475111908998169853153456766695632854246012700135965969542108464621083491615885671063322362870773147957534501912313648224614261500399483983755343828145680839665386159940634100314967464066864377575809442228634690275850744578663873504390641729035830008344520638561693342025921175315328915419675203250838592261730158161911734353616338573009883830248440837819005996186922237724181825329738218874626920055645131243028004354417720198086941976195944602194596450738411201171778032034781944255182519726052047418156403427836933335261491460329639332684515405309148862621173278564883975810313366097317650292890032459313363688921021012438826519351684748228928833813288741284979388266694055938231238790221650590618440224565410199628237437280452439196572506758032452250607707623034802815021345383931682815413185117052366626819915916128287560010986700022137702318433411124703309580093056243798212285695117548323037642564048752487347535151694544088884145664018689886562778001259326835779455430335728551732223301310257943658784971124873660434897186402567575631230636393491652656336802357995014022173584857663742263133408921779583709946401385588308077791401578343429949577651179694708670117384850512436609654057145682697839996841654681234515191027624695813800123817247236447532052885207690943150152903416811260528640488991680973907653459851619980627058695016954204922851260248309836574965116213288742629234466898968218471696648861560428405886709170444879240731455616909670359751202013768131684206636383755912113213358756016551568234960579656358713032461648410453723988310948013518969419824652045786272122914461445498960016413307776621634881021697998071647809905881514102511436603707495554274574892478587069789401421172685607476886608715013396173488784046524542184840681487512041519846598400038758915658113219340158079238389737991881670237164758259315959241749674734242505037204516190394904633470936442081348194588706448648242803026845240561869161757090528962469374596635839239465790969818993600678014863319241935689180246081132328958286977040128534341746187890273304384832691119406227504877680511722994835798524011032933408448945055556946856880287145133728395631896801179571477179439522348271828560269764646976546318995425768827017172255050203462742297641000380433845803870933238181805489847349799884881906082379772976607405346074043113915051012641625423403386331447761707083425810479708006605293971039396862858294099387058142540268100695061871763828872800613898234510081559236873753906809354991298084172610457886049868338741170466176720096371330659809799211599576733239712805051154057641915953871109811917062827591320590072267746171013046247139738311970378553745432135194502656518105723196491000507802673225537913315834549926839092409690008791901256961343401046713455911244821192022047297776176679921182237581455862014305333239150377667641938675875596830091132717142583396179706980922588990359273592811208443772828954823998880688471038507091330378616986059384475066396207708827345280730004868602100364023179119371188332427428968767304549024945661209816057137111181169164156910417385154377499342276523253488502774010611205858367234619748764754678195969720070423647103125677804852529004230702474079817029733228180211547368991882347697024395881576114548715358597829403852276822146256722314647391731760248154741527154414899923403279591338174594482383368368200656147842500597541361724671433856859467124387591324786899083219559626615873236634080816800057342664072238699240017039861735251588732514078277645503822494158943464498054784537075269224031646460179833470837994193749413311402316646101084925730431105955991932343691064390391250194033389938543236826584503366586157536358568533274680802714579929189823859855646124965258624059893052246262186415832162470336363222452780972933251660907728505121575741589769156435008596781188329015257046299863470832149842125210968717849859115354656246062463288528973761456302969861066092341210080338067837075971048772736731518941787811707255414396101551923035698857746509277927706261230470310003301098787865411416598475030210567968995432963072135677106163748068881131828734017901509881934432433161494813164662995345337743503567752715031614740555839962463156173329797770772947549397175454953610957903497670006227209074059245909711112714891064354704082601445045580064626913663870343890573916863751659429656029484260629992615834294795632090471436694345369723907601669984776774986018783904621230545886987075701587429626043404352035748633796566180376523765456795351517111853937614142699598418182257698794698567057775525415528551044343212955578380170511146378009172949429493018132101719312445527244670890056363957486233992534780588740884957128610915222547233602009029818653981989827613554407911163093459511772858704750785594083690955391679495201643129276182668405686079712173891457847775720117400155694506100576566266626045863406406361679437963175939189549256562740778476917773933109040368181239378622814788855075126701739440505238424962682921288142732960768246006039247135336972575377865944548410085632689788286827124120541429471157005822221952686415366655588214271479124898466953079794119435074522724754702791855260235161050957746769441604274166210896255475509197644876575881123415292193172163459798285337467379736194557287391506615826893882168667389852318636214871880180888234973960079056459417052173998194806672085089626903127715452075527481940348698289871494777171385980874390423984334731911384746421972875757314988459015864680037894948023775350630010311168689478237510401709462546140892184488862022670279736084414695994662756846673396237895027581618508930665377122296859079150012145118064922364889812369912341683895682331883944202924798855969532298837848740241259747706407591684561009564797447086729607903309302166471814182251157738317192373154181226009703561944944895962260516428992174063657817888442573560507253455258131415733292758356661996264952456240702748658533521320430199241441077664626003104939036852579617874838249849461805481961947872372300624403933632974988671645082961751250382673482358123648978229562220060869971496497919385498211133769623742761264944884566817663476776076367716093612338589479830466281872949188824860814883498661040059657305963412273775462687011703784167933092010475921246488788272032890831832291329788432365699878807906449393604366895764714882007904729315984364568548834533338457867329710322910253428955240859847490582617993180983495538880097451412534780021156307068076969040009476715926322812487637241644104520111313364383129905953196788854967184133177708050437081744302508859425756500987096944693236063378699999468252358374774962842414460183945744807117473809396236659268365882379008038082426865862623351312637913118019566339551544168531846412004910595207829238479085753419120911509799497694074198424952421944850481129261561672331925837258373913241041888601658943355913772596354182533518499413347261251920521233334513049687925147037679359107116623888624767893036871072239814456330359128416893847961848471359552733649129864294653799641721914794169758803278146075193532248132072268933708825342563632199569428408137843697473657079318207782174031091081940920636433309682678051879104721213671878410734486378984959918889837629236379735797816901142301233698360539539758366151026865423254234378742170203164915598392936108447608129692720677627185772816946139573415598209124086608963694758538556909093169462339518985088437277644896603466747149718529307058526976663098623665829239861228645616968708234087060165894862480788684453699569414368972735962140532807994029920078162278436367858896243538052759954242873547958154928629788896174605134728391437106859318717162283330326938119430970423451885472889125181208960307049934085718204227501396867600259752573333420482728349723117404229163049678504890034390408112999600881587347881001844331972196167443499151454432252798896818803312883415299770783516020066236467115705451740676953585835751695478310358227071487326392475376300301015987898521500790260623895146156812747490244554421706167664822745131604346602604449154061300957446814159238756891267865257690837991373055316868306008213631612226406650113593584802640742367081554898981341147549913035679275928327544696999084851886844552814686510441487162919722000060785175357495925648373234366780611060128998895896507787097402028301733363016368851707040699295729687345146874525718412141296696763638508729166370050233347447469392578734635155371322915790435805286296242528105457654618216596600134810706871763074429015086687974261852570716916746664443663638035055115698198113695789584125021543646352848307985337635432192512069417664024159468283217012798993715254003486972576915574713397149448658605716800201570273068396337219965769604048681090865374021251944904815642860974697447340661880182910568856292990055008443685427807202812518940313505501247446629637762279856355186727324755927011389903747615259905203310169312830622213345422239231103329758867405274190704639847193205819865697820955927159138051050024600526630203669968434388027219878155741653304849570799853601796950765238839165277378494431304397228258482077830642342161942044408673681178666965709529729845955092476967972382333781806452111333053882379130709488813025362646653477148040851097202705618739207586562025352555825556300420927050886510453555891402193451135600105463452341209339278075912216686129693847506723290004530043408032505864244667726836871687824257950856426691585315936880277538113898888045579219231444785115029018507928144656726327954453797655019723743834320656400241938817443208494585377222137094832530736943375477632966641113277959276157636144879283137025158676623168837840971631815207020514608114214367546948011817523222963505933930249094697896887644378564349374630345496206710946069635815174788365301044768963916319573630434290006758053897643925746016774572036866703537366819764360691206870016956308768987878326835376378767680973372500662554245637378539466490519818446836331480749683028344976155100096532333807541503242261628128023045107548915813093301016514264326791087398691748539904487827073097832929120190756477758472309103455140327147497943149054288458414846836371702684736911966430218986489818616949287934373507331415127049065162595207197584201021548218079805863036403871242843905857546837740515108838211169887437866213287985064865575153801958749239983829627628730066815677305608933773796730302048311656163579028037178988816218109001562287589020282864158966663114282477726542823385029956655382923303362619447850624054786630812554561469559071908991383549568021956812812564019767210722212246120611159031066681024688691971581462954718775694802564133895747564847786879292446520338594178298037002473443034656732960426008256780624931942487607128070970968787591067157707220352897676469048254321897405467663256001489166153261207323859564014972010512232026744143929207832703639792681312344436939227370106598317055921143779543833588438786451670161539896126747525843104746724586005253460726926012445087281899325601711255950284177910797086353804922169813348788791791812553597197529568458298813197867337072926920965249661142135065417374991141254073737049180861818879988520339487156138701043563301135677713157659292211829944530873106939986273642405131750483678134291397752815168169407617160737117134683794167383155258643625233725984454846862330735599422863478684034412446543095745838837681856015420048086489310550953342813413424801955592353990165117899425695165398646145531537215158008355959843404250770328658089060769212005418948710232098495529278395699043394977126497915629009573809397209406146943776856911512151616517094204829236715872174771758936005656994827119337466551134134211664018378126980621636495564793911394160089323705341254776818154706603142485402362654254088053204912693859053781720918000237372309600581089419049385605312608390629388656956405433615541791742617380776128737807608668128171008779759759634723648878610208414071743133025528980923147711447259139342327891103869296131069416868803511249654553407733757036579684975504871622204740772577028964140745743331129255184318253262704349839184557549493823116301566001260177473354190843038244366616127971494741990546644302815967495922594134862229750599806574795473199175118871130417838961598152038412349387958390942054744333200581830927125560581305982296668917137972416576583200722634443682268377382846115032001080835727881891730614741442822058260733714382367746416438188258330806057561615275888234494544378382835193766211795246954712870115674484344690751759302437809244985513829617178337843686398660858777578740132025076976917877265249927545194991596806767645485001245789846764284726389223375199005617101459758808921266640459365733987053344999766717034927559417025269933774969652391497778857188245844669066038959111327834202988885424923643837128884297190994161256334135342081728897769618608799331309500790615507282755584917210636968818007647853626397891763511518448881314991147468102002922212718297079524497763887586266011145675137730509256259239032175457621419229895240119291236086658518001556634303914133632435306911218005903769042008684151719061138337029703162657185313957163443381174884087715717184683540067944602253111469518091222278735022364776169591455030002571692792560121659022164709038305293278240456202605060160779818766792713288708186669810236028276227677044832335729760960789962058279130500164936053763416695319640016536946439472387630602033477025014574949150126856254593543858439907156837115215016255915547304903743337064118200083478361485177893303686071436785653558563630713336877364744443386473717497280089752263780897566177423124109352847830264415388031090416228429477716098927851964551394860497456545444695187875680314825442176286834543436751975304972245197263268043178974830502133790275839865815638521189359575088848096570231753739216323511366319337598590586677066206680900556792347938194490487171173116105682358601110165208668176143816792036474659906879488761411554308100348796125459631610366047537653613257790718870071616397963825128300040074155380992608159959762997686342761607342802895002940620452015808746369736911201247825913454688040375475746388776369196222185706816138663562040113172700574345529553737640396357715710377477438868475045270509174166917410826302299183635465097219105144338505065230102701213241162807010749869142238844321595979740289788030028460259827738728066029331129363834339930931975014797190975833458658530911520794797491970167339864140621057111163886926997597120833965064058977108550373319981329461759377252474294811733702259114766249352916600814040875611127472051856964045648160292643446589502109344419217742011241754608199557964128565334656911196911855188487618197127540839444799379031844107433635921020022232401029480183785958154931840914196812072215974574769988736741679215079043967483578391409961413666730503243652884340193274557406356283255988136350889689310031225721052435896601964818550548952152008225203051042675634685009214814892029038908276630755990785610932616052087056250404479918659106621189173002825541114777129966499147007583905850302450466637376746009347873674679629657243072915463649623668415125124921218140311221179797247810496712821714854510456060238089927633538720337425753442898473945416955414025323263225009888977550826934620451337100468410243113348164356519707415140954416227443030163071729271626782564461469942743364388071788188174209391995915450080825917600241671981418393169906032317829903975475969834438192495719857098875772195460329375828932636626447819801648843985093432645026993041818214872906903513868179734186534267733754090244120412995695214161631398950223534529173080571960861518050985356771504572654856394001958039807097174519581112383965784639020523587135531221948382512734351928999903291389848433993208529121615814976014359374617701559107850047186449333147969639798704782372645848381995237229963912661476285302327456783036661066963434993236129151189091256656789460083952551773004778306556117562343886591515625918039687677977729479396539324785887833030865555285654062419758578665960511962144533441087374627913726260863302860146880216079480929667017640098749876192026586275935103951734338655768768118811518170844608636918720918988316874452967541123244204317498054627872961901874663316742405401483613727446410546313358927700389862180050293878674115897820747465361368814630864896413632655455951449917543134139982133988058440098681004941900369881595186932769720141048336748050356177080509260835440116514373548187561253131299206929134573879323236532441745911913956002556435878395259046572850264763016936580005496834732489713662161570395447511118800118359798944417031357620495659009622449943976467556583591712361416970152442237206252896857923982631899743664054604658161257917097008381211694660622015365659195112292658660136321674231488115766757225529893527402775544310836648523465581356487639690214681196780349502411168867102603446370229845853969645415119304179053064116139909008069226285015812978780035419633097023379525951527999360622124418646540240513628623590663541492012425859337318594335921763283163140829488233089738702467655423133382450544312164094371772718236678966447291089425459655275851588538162265353181154639502893346110884413688767050263163937296705041179205861133928762770073693820692407818939711113662285531588183758435525901265625361244371030965366551932906587800013645073580386203348627812323579465898143114987723850189277765213278635573999879990545712334737779731801888484710819664858194046595980721398013892916226644389693063399016004130651689156782342696482085395371296748510404369865794266656053049935152123664806434672820775741062935801100304328847912156668233807689670328555996382635763149136368641060488782692366956628343620092625133194845735998259446676111084206902415800204903279726168187115374211063892145238366705148638075358176523032377316361709860490259481743201159259781245555404763966642055894540450778938885632158772982342691798288284835946458662413377170678137635273797700389117128165091137467815019828419928621725622135702253257343785879595236130405322937479496180945581928446428369885738492317484544256657036895092125603270658803438270369824807424645977097258450049363371262235633405610060060712929818962473998586889162160743400596737157025959636781813050934321342653531931822959794525642803233834463364767296762726990951866766388468180396133959835560952709036668419111963523072810545931526198766963079784438639998646584879527075190766108422416537507873158680036940322368311932097711812086793335060883999772252955976342903568031870489736932918966843985455132495048858907800755609978451553677805974642642117243116176317111963352737904698383185287417226140797767355180329541918015233330534194948286112534228121609078079175135965217378324781611677293264812866616849573849532613889268929656870361433896623039922094367232259557308673885840513285032916794908939645066452855113053767509298560762715996925437144292805293054532262244793550266980740411128866494155786041531695865277600741700659263225878061552395987724499937318973276870034377649394029898420868692459784071543350149612865580432575113850333889539896442518518597394269424140184126240993086581202348012150822397740193646170671099113237260072757077391635657913792272293965705478965011011490176683939228925207122415121280214263890544621124303536984384119349755259651618682368287037960265467081973740899097238149619126727534486100487478994858798730191733224665043125832509514215295720628397264381897771251854491161985178437624430521659657012272209974304116178830479058929107031499930115853745182212063565548741180808120654815207457226455047046523721906154280123988747293660838543739487158215673962632014389248134784576015357141878931216450011798032172416235509464870451888580853740841823000262870371081290258229829340095664380768351340242545290647287589970980811024259025159173175859417755991674341655344664468576381009114407294851616171502097863182321633790069630988539856930420998103868852042702607706407678558018955800336656214701154907607011175059106675936313497474279847597906042337089691033780927883042441445051048117050514990060869090484872857207315275319431598529223300144140430623744741519908480744751619057418564693502517438930631469734158832265843976445178763027399916192287863678331397035487869469367970771833157626365524919134448327710508818343656705321825425519860894564406671257667317824596210295708632259294568270222540303005575342494566967998814874034397315410809011541213134530393859123229411573117810355005954369715751066022053926771159630268823104020389633886226229654118118855012599430063463621915686063482241086478251927754689220565925512986970081842249968171079655362109941896332956479759064935032983419216253080677440091819350646042540403064603533057573465398227469930367876805436913962997433053469057667581796714576230154238302648464938938035469931318777397364892265754684533736247866943794793224835738971438120273898022458449763661047443792500478091056837177399785966358286410883834713741850711149689323153499384228567669890443645757785909553687811729126993679356828731287902408239256122569467672830839328279169341621257026095250250883435392050621903106588767048156632753553160301960876151663596596272176339961391297094946861916177341970088031947406101893204440734360104771400099068268461820795618337561243982289298834983929464483315712365387004383803977104016437047711541105143802174316941324422372969150577050588925408391142671427698940168378540222036439313899426405141373999892351022143039877225098173856152939895589303817564513680917383153279543091258371875424539147507450585893099876395723163072112290362753488233448886686995222657326830094410703445654631688751963382085920361067518247751589494570427628040512639620250442507682435494476449501925583599819733770905350667857982549086521331245260669969953275821882632698875266708222431815170657967840587570483836943832371022912171224939448418782014548099007495278126733471079504083778394293953811696520088420067985972782196041860480993530014502303508794820801632001826127016792167150858701519679588554901776371268831299021463198630597021741126086513840856779145887145613279333720775958470474186278494576440757501151331492009496526844878796149592564046264132899045905549375394694660122204849101582680311142342934823054641282813515870577375080561217613869769846679392710997162075612882378618072235648854991497656370919050839776027575210823397215600292249550483069796703573644238247267342195318117323277057492386834606355997416386880383205034134566744177193957737050212540571018988114387173616833253463669626198259805628080217477034289025984059230269306089483442461922521222131723774778916853838923594938951132293605632184411036911530520919402836668630643972451909012780577684121013543147956063175111952754550431016204337287009627550429618654697299224424460750417942662892610186694349559726806800114656399622985792119549361663328849926789268549327143319646765832816352069587778304201709298944102154074958337745470127366103332038314673706979675896367154877299081202698111247050902249096558640599280461242634307611573848451629515757675561705372212464490574712684134358495966647494343470116932002312915774359955483944395685990698740336235439248918253893135840667317008738600477824196809423773189603587367303335903723123574910327298086219940387486868226500436768556581562312490173420043318370004901499868090807443778207705572081416066009247678343786290543600225488725200896354830551692615372999087769796669819854251177737230041427231609408644932023969794964588757822453556739436804100774788236884412616780495438154564704951617198691018838105916626429781510237118488882942081364150813258194336703991655694552284476510407149105470486437599002254392755180654501192944643616309359067278952145459000865269243067952128400233176600063566064637161067280245594861367021185182895561632714440671220038608593998216726867192484701718133226165091076150181305769413454431675552896833677245246715759724317624888994536326118910948327990070145677379909330619260997187931158028708259165598438229449769068466815103583882642012321086498470034413153228533026992502999408836391139299306419762227320801688556067099038341323880929871971125025161813012005486442775602156317053399661311032438648186881850892646593751970498487025553496392490203689185036514761787827152716738775435457744550018739249458484547217801361838902869611465224854323034577729009891644532588065128737844496606380399139063431628045834779367777344638948172124386838815387271884950842287018285424549669472241374163663536128214627590380205214968073223413574490917918772370050448000730348282350214856360515787242284010842048644406880031050516129857343350619150827859828891213481858925313146483081691578523500450649556022225124394148282775171133924490828411947595291988458227914038932423108103038017924432784168518680186408909374530268855210857772848136886227515285476319897987672040521716005692985479949053948315152591436962544353049611924979008461174454826453018295182534342269869647040912674093709300716455517882682145586517912905466509577573500777320128828077808957806660957273402502396819054861555142269492675891121273013309767490187679920299233813607088497538867102162287366541287435264091882737966307466272407791322327830632245012792526025078536041671412454632490583697755108096406153404854789929757734606741469695484307477249356843579433297187197461277024321157794110102370668973706577436116572383278969311667237871238307844805202987920968904576775120916150140584433998084763794281093326430870438266720531544241324724810730674560704098346478000325370123292686898652108491338581287788387542112880964905835121046189475858921311085416707775750734802377474525166675727739904308764774505110178631846542712996938479712500659566651342467797368971715693746250179498022353103363172671264053519181255999613720806218541696201708411844425576746864537541751011269920827396928482637990962699991642767396576546272554222109483606373262850142840227873626772892136631583900248762451002016646598956426935175883092058967985402963469239474520657764123911151596483105848126393336544173680194563013002816664781080815722730440493599135068614826098996835007681392104171301175240174138662181687335136697919509357920767174959420323384879134097010157232395255220282184020039915167533806175402111164443485896967115167398047397246895900320844353815881044035256909497486550506113263884210066376601012453930482731101639944665834700783426048945667306881099163480215441241444727714979069550648641470374579667348768950780670501091154583865595819865963759106678448345201878161268596980059523030770120381752640228824565061645478509368400210311901447998269697310044331594341030393481329143441348579278811565387974016976151638037628615859266609253220852930969375477206115328897815993615003862738510742899497905695004705809519333120758512966812854102299922738181786398961984406317757454380103126565014677473500798494872271932843411857723047800436320735318955741769744037518021136626805624060359483704948614863545610225831479842809296262653398680669776163852176362146589622429467242101519453462452898847937546289867405517963689620466378795041929432704591366418934168596308239453438109675426811951434544035385143672291723214004122740272229923325120460188006034359201876782481085634793610327921944020368538570800066894635835702347181927260009469673454666945495230586640356627096599343684783601732652386827857644997130930515203735778983738965054928057205664118480429916369679689113521242039255988402213890762608149680864189846454451886037070500728522004662438733914484064824161979528667133843971748165689325488533085857019288132415557335596010630863801112226371380232480342690015144052275769685180221853585303776975036252789330225084828873348744284777522310086979372793643302855620645259216983800169707495242356457674928961076069517914912720625793141468754315602115138395036294696670944518309081764437112826074178382292946592286022495175717481130108281558726500911472393599827339609504096573039563896073280689005859712994345013233205520586616640469439707616692254155018078024595868845617704676115761972108606744270589820654900241973905673057643870839996015778047200497577529519011708479590853963746606868855991328318173642570478366752380916251901672804670468855546208999704134045693879864893586388800263579929869320430582623776826898560570536412298806008991555320226964392932536164609932861482502706477152173124326612467276505693852307664063004521578056760894769846564566813889834235102603395319507060239348038542282980996257555246374051623271516295407514374617897003775155835900753833655237571478754919630049039047102124195546020041599857857615732997882206679117760450438875023896057634505024803017016860118065093170281788093818146434640479037809141251594708229939002300149446805995481886275159463771978190358004330916671810363374805938108345047205408641049569286046287820273456184154829709788046988152115804055660781621116119864243124845002440538428474633376103772014384608610309127682565338863344622255923846352892793992066831434145038046900565493606997808044910875014673202415771366078240932328227239860210671513032594876079916235235693675981479690846268274809272417760275944288785734520995797529527865351915271788280791804363029231454457496428550718285550467711284277117615938119435751608325298807960060107594648987274941195866708818816220191213306261470905534748126438334417864648272411256649370402746660989021952710599708384543424699931529063872796902682740409577731113616409047689019258504874973284139744671134310858661673309966455943803703576421692796020615418651755783570181348633891428677670264605701091696558957031027636449423540170650874826199066110177210506886859098591534084525206748896689967320614551196914275863712041964454364277210529869813725001719182412977978967932484916252560274159875640935674035165725780688492915479579152504565916412931463670905566294658333484056758230543982963099930211540536612773330993147602606259066355752463777667161001860416561009026184379294700859687443664789625925218705205646885848294021339617157463197856623191824289065472092299394608890732218136352241969880137120904731705405114562235374072060241677095525365492872058834922578394047963066478196094932504985127152492005860032552922828028558502050800236918314193337386189236138398216409123048261086805287436606723183399176521674208670242975268308013097786117909110221372791866162365509210678041386935149448771957386294297795709587260998261406858249919405266822728904221071631174902914373055329668643156024885615565089888745803260443724053182168389610704372073890476411545124184986790326199023117119203492042893450536610290546792486476288408369229640680952721310385988807780547649705488754918959071041976674635496457605786577061355643206549913068309361514212389414484950171037611066400310552754350211721137863871047374876177105774887721749535251482329248211409016651366136381807560181712463281495337605148925673161719433445461526441365727367530584610857050615496226496495826188515514219768814109261944108048776301258332574909249556681913943859509992268290883332362871999651464462930763427649706452543355629887442347659620376291904709726332967554038610456765657609293364097661254728424567046254120244762016208779000386494220632474321868113995357813728092023727555390761987755316963407526551851691296266531478998716858688015013747587259517687556801586371452366760500939727502242900512039753995772647738255057545952602410274325095663768267158577227248958568953729322628271775564017717864133291593387184621443416672876323046744902902073777568529476169206047705719560995833644315209609495642840111690128579105796949912634610703948533131131377527880780028043137354116795418040756757588680945505314633337654193797517791147893796589419891407617358105493169318094477936183327518355914879732664896615936563142063402878253366146293788394015151552825998622400044242698514493450686479976521213719944079869383937221761675527294209772509892908506584838995637604691674409034961970116339925474139732869648089645309528748008658995104146056313092514426662483192940152538317147856991731913176586427051912760830970513933240916601327518105018669495390817042878273409791329287963789245344813322823042746737302804468130764339356730168915021789409161443455512055514771445914814205090030824281014364698694390753551320749670092433181813257512835964664134240940324952095034832748208598582983910339468040858556239034219339474686239120913380560686399809543902845607217924168872271129489647272769641291472166369026832216508868688602189959658102338718220834537054080952136747301059189332256072564892635984952982654567408439916032329059464839852042550661093888803958085022578782957621092059772435259614821392206141111830379956665580313775980077285063638027967659709897944264001202542691234586829645802224644135778079215666187039257745718569737407241767969438893469614636508107929794060567399649366948800039142705434932799359698374275736780773167315342069032574316344878193781991058966686428724776551919751467993968763329030667893371536549987482490150170141998050507435095126123827526978397307074515188349730386767658201188810021099901337048367875467070723682702523605079192380404494371024983097897626328000836725556700846734515991714081178433211317059576526552646767296709306335500803749676526530458654892882955889421164612737569723614324345964211988658400243947606872251639133634544024078345708178873300793225943812904141293975677104690428928598897792709209328508145611012601811761301115608342231713090913628890230874892955644227004566075611057981087966659526179005540315850676571932073074231892041531496791293461175227911388506772740431701492378963104354343043978473591445720618309660844056392264976845170921910681921472796964205599043763125098846198543871983459584790176398230432908034521133977762141387101840794447614620654500391043527956478922569010150812388551433432736670901091024365515266197643684894599233264559339800783887914630658067562571574962067513808338672128567723803485121158607292347943739404506775298300575106869453922186813434830847828047567459457602396589128911763316250601614610712596373359393608449800837203090202332414906061048684377034174074817254731401027374797526318752591723657960102256686387049864580549286648095574778185025992521203066386586966348441825820605412985516750784179294459473234541530200443198121799487230412956544775865055135406986397843999692994949922257698951484591748197521604621202521434095117849491343412510424840118668945924941031237004025084045316897286133689146015051690901267381990878081733728835928239537243218649667710431204994496259856518017638142733304083030951072335285234705961462604806616267385196498360239318948378723956255579074955986390178912308537278187456880261321054412494858403782766501159164600805315570773097983975300025510831727440788196101489718283009692844602010415969996609860983210721732674731789988777881550005498818543531591006573132774236427816711547962562369906420853853330761528671233251010755651249103275329550919462899575332010810827872539989623223646733118331004948446581661390600845160596380363306925889396026289318395455397264739612522861024743084327858278212394181972846018831786676702141766490931989944568197996565130359484496551443342674687928185057637649967385385294443026052359267153922444061471290419782034779127279757000037171869707360443412427311058522279192496612749816316528967808615860175952661778754262346320042047510482938911564837950733868979760832524599762122621225471345949333716614309695555168301995916632487439386691712683837119398740827882539555226148522253450404964968110341329102226628854474045408145847376082332260317580271537868371114867625185087652725129062629666713324422772552448869244007584921088747680592395852089819465941765995178059471566539120575026564914478634934978162329185615401189526877046237725942059608056246045215477868995351068886332694946402160710304365536937599119778571822331773770809144188223622575052631895499707168664030792506894413738328430149095233959047445821144640985950033150979753543056379115238870868652367659079446043879468627199274585388337625635543999358333187799726997530717400351055742817507575697510475335260111627701997561118763901312057475445586753806234720313859432312656676386444614245950390408573399603108188322763844317604693819558271133344503174334199800124934330550298584992821109689925568312480616993879399812755462466380837083932160015937901280953769004359422188902658970960391406505048618411696489860203136823716550697457265867680596471053148234439804881128921418556598347338626778247046039211284542611756231238484585376127970018510807191589924707913914130354701946916407571692408200479021056579072318220153798721045093479675382698298919050762668009608870206194218750779768754284400074846355991802890945849186142468481682611557453721066659968881287210436824689941000017317519250244101530601816066838487291796114054278168020787130310604641366767165681500943682961440246774559360681277850229254132358763183537188319697576893714474245828355260812792908727554713426839364397206301512182880097736136153320092485906831832141537858765685359622885170476403269382469799230571589172054160648563543345554358810607639648222924663992486759336733893749048418738608486600076403572019500324057126914006476415114209956467075577524541909145746252512868699961518870631819263769744473331518068913484913426464890548727525247789324488963894520901302346653244642619695079078320989099810920295842778388413641694594387127203922460434393663299174324807640671736784645530717188489117937756128708568957847880335257033742411663397570428711613898886896669358854498312901311763905800597287255114113590225516069172824586233442748768296329443178900625546302209718806469853892760841893840458027707495413298116182091686928674710210400560025596573202530945314651662409971542540925635435629097505453835327951751311200796863549553322113043892772660977330673063116432374783150151592203888484391231185113869561043812662626814083432999832575067652049866644187839645146943028243583126174524818866713488097853326076215175632767386435079935175495505680213028473251738709382223082885874714978079850072097446458096357385777050004556310686012943600073920430515298884360156664308175266151515717322210126228205561726602962159780213408007533943687755047499867650356325031233254770362858633069197851463390607248455802424913911294104276325942013105043668402751012022521405034711375853367965863027066588866307997288783954602840761174816991032810026937376244996277035148116940683912938568185425619901942027736145271184057908706540945515752132451247218484778215156098436464714539282204805655369022918797563377475636963450219649141269120031821863907555104994417162693132229201157833483123397876998448588391565375125994489856207231599704995123288964647540779562805899700027138746124415109656030787404683700564255801200815177301436437422502110268994246345654181044477622838604660810217225698053124178081029516610764267868572867939092718961112890508103380175835200721823195969985419773137215379627255136795721153494497790993617022594235608057412599345865779062428583339472701035545588228418901357995259211405766848653500851040357507152563088775305286956184316774400121368847424639274296411200474280191963856038866819031360196712593366346713886136601216759999361899480143459009877159592638462567804433280255350161889053135312458014738002788978704820063545913447383639621176119388172559001497026571950874178972957296557428327366049286127120447788059676894396200252369643267357309235741095914138599027330955542431746238295184282529092661640348011757165567570436852320692374935427748514295888050721766057804342554775842046225672284457698664384161911383059925744340759098012573131472210810184933996128541878863513107926075364599929832441157738254539933494945466865581623933611659452278966016408398707471489654504201881830701544497264940383498950920848639121518775583144455325148975081831831636079050345384169262642489759198165105949109121377367395586263550295517159381174723837159754415338642530599959786430513067943327259506482977568009728486772821378565707569267588932648388097067553021522887699530840565193116983663658160200619974082541289555268035958551765548511036414422355343652916669362434737558907057171476244319370475191480461508131085878922872737276923469222210178837340193509543684504826498970027185429789727978924573311778789504587368577011593393123237020482039905939895129060493212884302304606011664535963007247975516959168301667594167769983027380632263527174104355573449780054285814486040567568063566082922555582668304879539514743075941422154554549411233798893695649057062694278594510467938424040137949729611195998323332835723556188373481107832600166405838994592072898282570630315328510433226038657963296379187539864759307304645114510718069785718898856367623448753530628263976019482079834038883746481334041633261235641409448475619120007359642005786682349203017145850313798682226528430033952177879715008233870237686612548738082782818351891163990966773017092498806823773167332006977236152856225080312421424407652984686656357425886619912344195814028031986424297815757685811004927100136110568817081805476142557431005518630777789001849253203817183467763972691636431794497451596274220495172318298053502121488977380587360475180161325311882035314535516162165957175553056480431804193624847039992423402846303160148199895275681485910030614547664860516336592785923670845903716880825045975984564522323632600648888342576530638003911092133765074438577413485678294330908347426524653011160369175427876443487185000605598880304445816158722931064405013257648075041172078434482192035783238045777619451373785473177523376574395360280667833338274422458602309093191643029279437983764826009046690997845442781447406956293499829261373631122405245671857562746865494180023902753129202502263794416664872455401970973598289935148624568254657130324028262696677273163655520929866531453300098051739429244005667909384655010696231180339246193079265422199862136446504895825534706488348402530409136268415876596960561665801959474085549657731977672573537881758924252812460615091633288141071158570606767627444152450253539585755865305998611058051283738608791810698238519208414333696177985235197736602307706034364941072530672279762252474963309892854454709194033672233187201410460465709883969562643389367533581117332980535929395906950333718326669445512482864982775416659701188872820335791769811834762129555691347069126647020867946328486910049879755263750310671093375618348018073947142099327920475302554661305588120068907741018385766257670780987155025840905139828234514932762992391980942562354135215479699075993174661185366852984650466615113679152756654352008185501107387871497040398652580651408035298852950795430320791772311608626404756322889634763406740939681040682224370979657621971868871259884596664770735423296973052637965341434614000068832308282386294286741121472908291412894372441363655225149082361045653757497409821315383700252802170880916545539385716465721573405101522378679806934927479041310035044056854313223988412489749615075761427449210841315088231932104100513908312874688772535042406965587022741378447998200271626589671152766064445203526972938790868466443603417257596388541634185854705159055982342247842762934969873141121089368127629464902644079609752710114827340628365567502094623773971691712557307061718659410932674022346494179932556083794249344870312097895235291885788073605535437085770107572477272382664106601533786130662447293338271231507430599260380205068509608029841727856534138398505472548606240991408190408929997334215703994779815414652631323653819542417878078235227542366243850951785620625053184433976603002785600045688341171644372880432385620304410408615312905466509591224931779366057584423397140019129943210203181702336077709437606397902811385582534338795550390358605175767041364334717491908930638973153983822412277178868713585464638463690055783542854873601381880727232224990746163241291865188884616662732324184038208300646458185546059451517331787455265808295260992597917907748451725277021644515312889417684561793309999126604621063656076293232780155554042452953644259142065060022712539368923964343533793729426412670550654403593082140609910895962620927212707736488091475550844454765432114043043189293568334616967541697327284783735572963455220086733843541490912806001475942451903999096855624164201462257687152041674512157859453022349031176436869616331090203465595657935611502653688854432708698832439797857442218279627160110783000010044296562537703220975233673304813973738407322326481644908272659487214101430793059772630040994918137953153040255637804408544988310811534265711375053985303898356837622323558241950252096719884261294947149814674283494181050946782049546028875024738291977514441583015200189697984551351086116142328198252371191616971582649155793047742180812394863513128062182555049233391003725920476164158466902468372106011762400552552995919508307200954674080221072244497631863111779021476222445480105874062188090581318367122115061237460404852317182681143518339121756217477824866209675784061005321460631974067786404312295161612097818602707766638138697434288712692246736002044613890742118862993674364055477624197437611613919442360908354246346461602898394579336468510505848477398144745697107018355581724923017559393971671428847119536728015355973471353053320389944955060399947210311880485916444437152398240987373418340430955533385924444597970521080838752872756943968209924039621191894895182208670269715890280973194606868911408725530571929836036447308361950260249405441006173197633477213117420849524921960266214342138451312806829089397058694315467216812071935816833773150692976969059718651437523716579593430368680059048937264675564060028272571371617472720590404212261521762020036758905736943671165440999539042252634038150540173113060759136921935779284965167227254896172891936048055722745233529467567323958477398007862551508894480391661530093841915923509554838394356582625634723897364944871863496849527860635357007044933360187234146795285128881248409311191818945974126743073896380060098590381438255364516202476177687581913147126314840188427633827235281211219170373418062906239368058202096015117900385489470246316954740048312105896323119240707333148748524843102404218612443840025937722249561460153934848013887882376480876910587331433822363017978415251100504586445350877660858481468773018570602555905604272409247587841703995657792046603022398693686578958268362507691317055421697093487205971847402462181585317941648530267948643158829183377169901175927251059933156888162636481228694604133757337575491124138894760129517787594524580038221783636254111727215160155168378623130823259636164362756646759087569203059453092153095304354826837197577983135249042225196967595401042385294888443086747003856192491423021996434228931852456171883028482728223096418483630175409831665041934235878991774805082493310483850491173095325386181668411121165362809708206593940717272459839752840117211201721464575334084352225099396210765259895851769769483498629047752213210523767803747623977231878201505338199058375199310017239894481117718394000525342283485510572533664799233226385124106516615989458144246414584854953487310294396839960387542278062470188246491120051304556565923788259338111993420528922176273838561144280793804083368974566155715752781035072740962121678689792438225018012615395714762864122151762534000537836380684950402284834635537504669832951560594532335546423067026493473482482911991241741356020849537937912621593777234326583067697392738107471497445890433225260671303224079075812207269965985240244951381377193487306119547571904518533344757256121747093878462271720342145367075276788287714719284610076829495221961879761895497495067710355604337930098048561654768235168422175713158655733279809005823302008476830901784470401079378358015397219592337647613489006363902719156626044874157996859848719720827908874724725024131763181107287614431215067629582656848133440537665195242957246127442205112589483931073627921866106835841642338628320677039456175182944126413594674613070733679242802999253288284897325984597671362383580296418504223858211433082273833797749212003128883436476620663780401223457269772852472761978842777409988923925781576979163406759436848677400248638073535288682560975821557542771822687697939834931110935202763828741518409425588563031028184303226343805132849854101783411836389737336460082909075096856225563498914910753233366063725407644712080032827214599450893260204233848662282669730037704673617442199875491538529921394899754070764633966922033549621845562495364646505087083568532495562978432291682845378464547051584447959040231591711022289498034709636769550700356945154594961482225054528743083939911552414535009251215834351584379459572941845676894463362395344023602098897508706954897002330517185525124605635055856846078617798385958698799585795249639727667280518103374086475517189336106764420079510146569844212085886469272173305120034751543184324031641579957614288421849022547795552402301618846345686953659447104151304012763133091794387855411837182337010820759859824544503414379753218717929017644719529842268725042930086199669617415157898895065230128140433975667742311754088309371630670200816450250947027647150840608479943253101788365145755294019679518479714830272070967675760119194966699974232233566150492130866410930389726855696678963620410803203162857988987967926518104661129806004842489794551409693193217826210038329842426590203905081859298977584313618229682130698597943282212098573940395421747577710365323304168955210021245931380926895989039181318115827697953227851879189998184576727726165279642734749056488217886702468132384845220703083422892590712030658910407174800307678430240803788836748548121999261695705660375062457788248789441786522687117931481473041425675616841331933091371115512244478649828191122352386700827812522605745093540575155980028142306980796092828404650467501894437212430255451447801522648715996900190432049589731455767625551625127987625967462617850840012543190560613982956936728647660341438443524338827941150677217443195735299016380301187669204381113227668083918719584605130641892529079815857331248174926858616071080086937996949413701516736208699776465631940536452653378001209279916178221093573832486836642922896439231418750569364653498923785173178826451759375893379403581628432737620831736913633705717904658360740257829933886058352441261996913958923713123719184255385121775076154372659497352656404310238537756235902152651777084867367905829011721616874042328894936502224320512674575124568077868708728138683949924720763484037307556982689247637794385257661611817159172842304760643140261130933341177967220079911969952637987609897062875618963390664902785346908360119817085575377259514905313814053687106485641704031376675707631325830646905985882926445167905853591607820212670363681529209124631936811408651311800565424501372771550511354644251211817851566425499511143561033989571065826222224693990967299017255498703458825565621399674010937008656441952015676500152433806037060270403420030949124256234367871209457735152565973460310677832568788261961308073038392978767509354662771983573605878069548575630548781665488102316317924433587953712750871828578138506635989454242554800939207184717751480516811824330536454467004089277306801919515877646143546329756712078825688981171821851718604753025153265617804952254355829355335849799122006645368752121588712431407077207464591148756953662850705419473155309037701704825116965616963726389148030308682641711849421221131163185207522827500367906669783619258183843432043514350741615357687092073163893503073131919590168888855664930342589663187383411173118605282689329557669658663825491249056572178288818179407075498645771247575882709327060225480675298711672128663415446012116946000971643768873562447972488652791682969072312867587478414945201663602093653463059917174901677202267459919919761657134386801462490838040126872728587210751833257471395508036066632323175139683548534003478334556435805018022263551745628947790257024229667323126924134728537919701094215901949419002261047487405622193814515706820753951901477144577045369502345954445341540573516038136815133945118800801513232629544611757870263875376955401932334563621651191419882042005296445137938429309227701655673341770076439183096980004266453315086787924144147572110866981361017020902384214683830768290724151425295843575081600037390453234694426197467792159488897758474135943895888414122494510744855658616526298550644607729513256240549783330318901014220967020436261867044701920386401064480410479561120711728442008358343643571744632967415959811434407880101601381504538345515638490332035471656638278734150836595601361342046432847660038192457196770843236463279857264199326047063782552499456405798576556447106612077293056505206946518923764057499567015814816336104844163061041959078554036758526050926015786962421539820172472221292693213967843412318425133000945133570731168987416081073701072312147367336338806475888214797123171636587770492959731884487335998519919400768769745443754652074095613981804363752407216103626073277604493605462158966190347786741222613758447804658593372407660821305398303776776364653264910823938872469909724710886074278687229552502427593542466875550683701461057425684411366593660775582893639381628717631043812525610107959545420244358424014694485160862955908892768235994975566100230014655005918882852873392759312658265267105220660824180180019920834229952263677764677969236313323864416478602322039208957819139163518533146362940153794526262955317902575973217892506258171754576985318522835121007668759155717650257860078680217031005816158910062170534569859367546572426207350661838196363398609470723758947523685006888246385224906027928342533262758895797850530474757991935181062024559779635762421591110596606532625213598589879749472246835643719358440001648265932356132764279150125043737278745797728120241637551595743095730325028871040003877220699162123496370908710203880613542916636949002803826493124039290047254404632603976656230214857101419534054807656631838907710998531344391171544743209478675214991437131803682509620415268697343341399644175241876618728581256670401485826743813668569331921977554570910990618604263486568517352296732415203738017878940533986926348057006478291153571168372093845372166718534751756715724736279566261924526930637637668428907909184033335881248032115056751075488174626422666031244106726350695575820973922197055386341675182192437567759226906083864578592560897133507637858525901994388415820390709880698903791744762422436165929510349849580581297188853104241393055240772219017962779757345119261821202337874787660081237558821238619677917918187511083692090974762718182896233030439799724933848575108413101944966580744580805751513930075325547599362979571102787934518408239007467323789616884384711997679555905604660626051872852767475555797797929897536599222301611333830289604289902479989776429987834472751157627142615043325012724320672994667366514807275875193383283576019888455487379636806064134574813083675892624662243111902208486145483416663692644911625682244287619240454235715132919480322558845001939963808769606870629276928191704480170202672349678734141598144724274860560423218023256927516396600288081401350464394772995873191348028652274035299527809954777708964102655960663850756553140524333328335534458933272980889748088979769954822928814110181229108385825008252510606045424273977751754560041922103254408944069925214299501478452531023455438400959973896221938926050352194452893057341661325860070187944952394830872992721834887772316615702561415918678303767718718872738661168303569293600505313190658696995878795758102741198567849691501068184981463603692022434813296250272409306216232897301288229668436982506045728506924850441938263767437570474605294859037720359992745676182029787442321583269010376050518526186954409633858749568611219664012618995263238000927828397856638561269348862884409023565941605636326046792236206642915090506910372895985924505672120922460357896620212394587826506149908119831167817693889047361576895688233566022522896895829089907675923923199543208658257040627419460005476581512812939136159312677819758073881109490060325295262586451580206176131792987884277827748329833471396076544805524621975450324835072994388174727136053099751780022139887287278922837638282469291424812547419034658794290300795564360964387520535387692598815701973055511198961863481339473015756240746684570223766492768007391057611317537972445468796900127668271272392090354523584322278427290133646601883549338995568573072076948658202492034788775882117519789961766828591922290951834906837881026774934862133511931886552788126572250183808336292072153889890854514520491067611277501348724099619311223101593220443243416627481115874855764053504971731543222203798321443054413117664879969393509515680731054692642595048625946686422337561064472497468605841152157268104948737837103581214302401649700353110681244212252277212968668864129763785440845899860571716335274162303885383336227151107051091969346105881519077264990501779046656095068276229272089387019863271833462706771670915029811847122981848523964994250923852815295435574368546318263464104495597698330105735107571269120598944768410866796439398382563526581893900959583156844767227427272448181878160910454018244416565306364577381993832516952997681349310215301313820512156601545620982291763548659479438389062691896327862452903189423744860031588658606197992865300352379122223255811949477721316888140012934985910591073202448728604625381823531118985885722122119655309929073493233292060013773528469659660095989664416337680619132581785821376877012190740291734655881826482578785901019449297157817043794121533753395971007222746368979702122803355332670560426741925928561951157118722890021035188712102856114338239102205993472774602517419343586689847646500051027635174936389794897938556032079047625591013336224033721115357460035745681378567953960272841715684021082826319890744142068400958346177222821407238504545976323435788713079129671638580968559085627667675022179465303028350072716909690225982169322282644130846537450296150305627752006019092091082493088292297389963974427962439274293338323657182869862811854333636191177261158889705657040579034654629737106927937355437221720026044059611324234169464914853942764110803609315910923205115134054977198947872925099849148739589229789286000773449114252558251804209495693365995311803973321997806167157634535567658115339175983659372752945658607822020871142679230042489961880313412593901491083132124036655538325080870308245658948865361501026571798429613439796167581840334601854607593355760858891036841822539989925696475948408274167468749361085619559370433445349070107362815374164550150678177288527404127339004623026805703830340925736774729627032038624593100081385699792603041676315889802210554200232913275339395655674523532790999415049177083288114071553633481613369618915440741012837463558381258751264290218988750737832517545083621760769265383171342002278935190037005370341625238355955669286493219948597529239458410087278639004166523497205367909852776055394243853756739712037933508326358355471218876875656060772855977235563578754270205211294230963441109311464819544457403601910534879122705713568507983110295272576478009861455373564066493359067778804539948677370427956798427357610138323851660544294014558109102875337029686599313628920958485138553338708128407510993592443263414127632695661797845878976595378426337683536989160390464434458431607190890742347052893234949327465435486669938143230014461543075429614278433623555972478656600985135551051177029226314913928296448131536170539789650491366060789893199967637824686264789064252862216361871699926684877379979558296371298886704424403232688837873847809698222954899695676213289214322616755223270724342312243926100084841230681221737971119114277694777826396172095215735815506643027625431329153421664501541218502566723015279001775357799060280936346526912551960088035398100414598045289367749836715206610056471925536696957563952045446323675349253043392345627818020071494915481832074338357564653843880839647479872466418612920583660369334305129173933036277193423159826710284378915101462486657234404736282185763992741193191928974542272655273977837559669142557598891204156730001245943583779993173178569810769139196298717794369842962707194927051526953647453092867878890997472270346618908299524701211754909938597847161835518570452033063037845197567504520337409166193311944470666526335577460795692949263450948136221199744213883647240627222626952540208838791880651241129064338264191672709327565685325991153269272783473025189505807395003494683819024443347319539118744859829181230494198290916406043252089867334586278774411480758186153004237122641372341753954990460182062637841359332448926276123975822629943584987354801130655160095212359888314127493817894429218225043335730759363638574427773390046550615106977450499620942221489422321349629494268225151497372184797814688071112939739244619405280313115320486204034760298370944932640323384115132971185261524555371772863513310642425168356225697106830712969140147718753827823951015969410247778585310306404272640536390335308498585001029580949404659297399899022149999056750575096957986798805690173028127766070089942634348777977613941960509086116370556910374272083833546688995972498553714556443405878301876495945701196485657699502599304505741437992972830672022448254830687398418807615718719924517063529948262832109645727169403396097886971845016036277648476509432229861627036477661626289885686658019583083894049197848098626319554569569107122379710722440581631717560731984391606456975252897816954724890703013621167423365725425241958667731510301602552638258734287612781523590903374283375379460903334494076697293629438883730374059005094589199957010050562607001774695605005385352373678415693221785590616593810371967776145594753756575612216257463989436941392334257102340150780864138457723268461191871535937200395264113907764130454090669471889245133134147584496685774828081526737222105849431576758416208014559344965873764448304429669009754528920316353266430566660341406661329909334800012073360895373534990822423875402250722717838257776075062273073941247795893464235307794083112999887719906787960042689490051721261907300516229248623727402810304557991500567552274093309712350007999489863446475501071804276190899850708703516719585158749403314129782907595992118580461677703392405396903541080345874481433103896955476877191987087578344537961738070138590810563458258039319097162188758920885780231399087753191421055970854161704655553172779799099406991110756655322363556947905537967769230863586498647090740692224641791166544330828511043597100967265364318962208509474597930013111283307690197897730826443104271789863735104826536688393350916307228155764788064265698227764526398715484178275910520339178626614598673659106567899051780006590536146906660369573952015254166964057219177922987723859329314506568473672610332697357620738735129492605341579389083587740864010698765757306268905207570060354227884231987836038941582240689953926632839112696514942092865360829876684712555517954267157437289002576217137429789507571463653248964933133478207652238229089463826935814870137207512445122510827926439908859286765024905171242982722313294166271714283394815016853117547037630814820709164494517299103103812695161909267326629941004902589526738239109491430171026839831786656150065015863588959213597221875607532751653461024600824522737809712346431107069135908055628961197869188656908573480073427936511172901295541498256449768563834243503803092179304609256719320993348495138173230496343838175621133413818276255482638205015005377061511526782615235183351528143893371636929295443955320284568485584286437949523388990871854919356685088049274922738031724309151383612578613434125016136788229728301444739150144918770344229828818129017751467855855868242614417538908138580076761572178341666450484188469643934980611375238359613729152919221518960949933559796497439170824725973098870241160733245598152627233977384382534944214464063149869488377186657396655830109525387359409175564011748246665390214593816908071119998389211499439870583246348883932948788188008474300658676426498203432839045444561329672046001272734007824763050030477223795640730008025509217128117331642944448048641281568456480643192095593384040104767118529262562338759186785695553776361769052026083614401558608976072318752822202788845470247287954572879996468049688093382241062525287860669677120756534553177814581865652596320555682360516825269828826458659603999791838689250858335055602272052990927848680178768699501052206277128923386644645619529852557080226550212693578614432309524365116341975903828655038132909148781149517318211967245411874243060400729986905009547801484928582007605107765128606096983855474582818051258900102183667116996651822427094662042062882263479727190189047217202618457386407089228777992979015309582887618943757674509020625377285628428085956913984018498718938249797305050736447553979789722560140284360524415627320795714734636787445446437404978489075557803572374495177430567889719536886815210394964580307070897058012514596447010911670154362852324477589451350465274745554816990999474006176895888767370046203893651529454676667240447791988987919172531975753876062022596515070694317320842887278835742698635696877402368993194282718100496846494942189507485347662043929153206576612247452881481555164049212482268189855218630428175998088584247691399481785475603113893578203836656297923305438405508284120822320703984617948942761036949704869746570962223116065324547006490558570583848942119712231562524847054940152860311030222051574222515880881924410319145534676220002250862170416745188977943122270555088056322898190070003187922982755954120595135973134984654596790306714552850677996652186382873149172749170851380377080746343453459689901700480717327651552265939152101989170396865224665388197006400702677842721576385597936239609254134367495075558886076068300966708055625412594672194632433312792797568338697818493416790070385730102820885344482174261776844616163611461482554147892081124147139207500886143437338035486561847665568536491983976532390399600698274946622546892826060461107440827509594725719214568659078817466998814981654550613605227791542190208679231382642709634599296009402119250057661695018644744467756011970859972560666962133316070826374691033198926527044898865658392691441773269264303255315796375249130633551371130772355307582327245223666793204160059068264906143835957387564139955435860695044002019810164079853406904466234379151127549182068497089024941965504064391060385725035891622322008055341475256742315051395908048383777898301934425800883126854344993591563188856298588583904042823049749923947439295741586195454511319926870962492505663768916346630721453863086361497509435028636290163341904021425231551057676184351900406210587953064572992590053960491408205624271024104863654961707397318762323032206995147802870444472697988333753949929482875394911547468187499573243586034992553276993177183030830802457222202442998426309579403413528643930609787753184770516560147054244466089128595400992511964819154757111473339913327918920003423260265209820815522182336535389324087884213046960854636259945351702254804910208960867916610847065880420809694093820086343343527177033954401768033307570455978581042159846795028399674220890929600544451358289983703484773931839565249280254080464754401164758203167554761148243973797712384120749280691234167670986552822300634847411898952373082675910097385115617759896037485612419700701009554874404968045623361965954150640686832420783937173525601014206237226041861510181223737806431786177532877763872103639454146720910771338918899121148347885482792673432437763462442042583275870899359612670559585906251956762228863183115717502227451835549149588518590238332023022936575899129576848128996033885815169230266102261854548395879014821203712502408151184365357545189971391853185397280416739625796047320074545560382062189850943448164768301709009829683615942740962539305930962008550563962703161457077507880463402082007971903461997782580993642521525661712762236340875738051727093298397045986857791778590127287572246866686084471729138766300395170434489175642282038602040427895289274896268748806008275856028125679164916156913668703240534479880988640080681852221929891954381043458649277768412432908452845616867871256825910836974290038612259148358763966974592162995392718014754766900096222190503317330081554975282012521411179825544854321370009840130604890158257285087676293985692935272684128323395023669296494634186772379526691312363008958278019181432682216921946533641133099343863219106325349921925218917510263105385588999041837768353377477249219050676230731786745021468650287751869795953436861102721053596866904720369988485362184124004478618700920144371443526710829759643900449399467868199536721238029584697204956844457677831876358647820618807903925113763491458020558118846833425944923749533019110531180411193155976378743013405930251569751906472650488812564200819463587378079266468990885299915834966064598073022307482269254543823805367404581998634746646984436223876157147486778140919635355745501536636502074577118967782405271712864412014671803685112695951309415672971033751505529299336455714611030947516999263104984529830110341362068969120799473726405050248242693533160989635642002797581443230350815552583887113134316278068219122518314117549788465021337155237582892597901962958793965803038203111654162413504111960243578258611586482702059923822701274447130694784304977410130255339215785397743780138502578446443249100303236289089975279113861213188863539446080711047086757002185214649575560276541337967851586691469429683535144822002111716911586290135540740919056064969204240717140203712245915427848372844242244154608922057270851242405182789864484073612879498549065980514122329370712515791841713523125977468768737027304376696327013209552472167608672884385060618828518827746191090504560925094595478146832033320819141302412026944484121116225949341688733833986920031028680759690919287987254425092146244531888853681493552747868673764133528758518756561596931079395493749076532372745347812825384546251965294427993471000616560806183790414920946844215605680675139981233105651052261082689444541699791773458718663501529056585861097106583542073490826765172948987784685459737592316964795989887557155426150958535903194835602300837453497412217366225951022533259385762857281133917489451430244031997598265188020543945247160831164382305399814956686521357586071134958304881097822381187539594288377217113608625243170783990420530161539475613283724910462018605657118130117874229707693049066503931586498185191004441041161995799216329905588282157637116879615013725712322363041585101415711658206573391032801203246325097101047168616539865045568797164400708926172513142591708935484186620933910423959430227449844391672873765095130506102794175170430779667023613902656292485777795906385712335556004119861026939947252074267499912107625066080238081816557949317491983175087241119251875079404884859070919628438476945443191075345677125171605680723969704847347545092571747460354915874592717367710691243528361221373458445922047417238395629767314579747900305296656705471795862662519519530834356287197709417507793962616046926434011311941764589914420936828299016981912340055753732586521264476579656118395122465688099404410562629318011340417738328820708363656859048367583732832602295369985329208552867002147044858008227630147348149348627861533629464787834523679145863750795731468527798011411247648609181844237572988287346844341941543814469821492957803346435232123698030325530075430147252538263244325861216120849532720899781541385402065002066217759937600088949030532178642172693096011323101220490948632618782677449592827950495869209796951721196618537085862572623639223702166921086276761547756158655685390069482522820206041308973332060754436884812307830914326963698393367778025068923418201489149952939979664485200708488420659797652464694640781669328981204472835728071898392875871862042655498022769794438305961820550447043983395663661458712972175059402592469783402668728095783968338761396330939948792814574699017712686358291814387830032308973645635926129791968775006228099621942776680865209690284753359378661627376341879944982998869884573918544515310975468816341774742177807635308487355654078480444964193706713406829878955896439739247926157314683094389201879149863199994047592922034692655289043631533192765041807861923303514563152273773219810467490246093872189413641703324745368036534665805301529748487172519752861922380397279968401755322431431370460519574053332088792893359824718341866266844473162215474890997039975712086810272048410262178030623699800829306164541462408567621921435259845360609472879290845007116525404200043034927683009268120611935717305426301078934508256633181901816882030054382933340618680488945732533846931822520664864361176315575075889420932411851984476018089175013347471391502625977406035994162570008749667507227886020557902861404726278949792588796786691907276792193506757622165020419917466432168506683720034544546997430748050512098768107497902891176977857421803103509069920373243287320195302132791832344657166813906717317975256930286751063701381221053217313023804382230110426118656049662882354289083650575635676716151262812887364788983501896641477322046246069316855835823597672945448845092543981825704892309365975589208795764300990258488442158373364223190724087660544037458136740588443752173918255195016037004480340815940380667374257205675178277139682360755421071999220537682387061213326620711278752930476156086634912500240394798389213565577154578205477145515500804737975695816816225194084577395165107697386359240299753133929294145341054135360180885186829540196707367305031087851004520423732211527553323139369719678593923021596385071878557477717527548972848170548629194089837581199051416586452515000041873028939260918278475220951616465237270617132103278834898195861623241552449086674355612617394589960569603014084979654574773116646591703768729128458769901483534171770140447716336219292755566215177490808445637934880560804339743680335566679841395929103436174643146417573679650438847322759904807271743985496582396490660422100413492013423722245723096298585466897193896760683340698315695664949183610868426145197429076207785268057878839148078131092359937318369577635959035922326294513321082570887126985595844213007235241392549440739701888508935076158355352996572486161747636012648917677318184596704686294506876260482118291264802703466051137926747864015022881649526582002426813749944383140308467169709108182158569303037760436458398581398267318097783709028129627250792979241113493134582565605112116884802104238636993212156702058866271262188975608899012034770308152646435809460394026594511172304123473760791283507213431126147089414177350330727988989582067868580342233752975811907721752315602383754048834975258661930710289547632911916514620514470891145956988055965476714764336516760639675732674502013079029404862556827897450085474667643058447804342611051336952428126917133621526839994710949683281060560212371060650325036660838129918746076115195261147363365640572437376326595450775897054135220121886369638884491130665034993136488555459344622527405109088073979773626714474740572841884330554350542506242257944444259646911370999707704242651841927147791519777806452815606515398311903096849355542253507360030849745052206975787763277220954986523969938565409277062025940401222385109011842974545362559965248503977659519384054081861013005343762127313823142081890310089815216370006750232273164978127989395885479638392732132115206658668213264419187673512538846861474866985107516684996555358160588250441142855548358691814504492531995522616683559584386118050657610382230067666636805496002269037681039301965709953777305529476477110382268494743516389884219540608660790274047640423401790422878716825651249280567626442182249803815257149052339115146749482787514879486787042939807421988632157675287718025998638016022504608831159236579772743926074705366983423721099017525554001470563137078814330409627087538199865618362757853096237668407672789268061576000388031924036641349631754911523853031243275860624290696079810601993123673139241361551974925529302991184923166416265507147493748813988543500049042799795645226060089842770150321507452561579233357242574108618558502799141025916656174210681355997279618012028168525606843491333754539432240605252999270187124846317414619803422705801678684924374461575800396030630135811314096434219171941864775313983042013843077473288461784522922064113923173367894421244281843287171732500176275535169125362373032971257125514179256442140210286298665574421351225555857901847400149486903385055718193318886102547459296822355931307001814601832371189932926706739128306297876853756718425226763475034198701409058358494972493335609731050640103698787986046785955164822505244432798818820656017036207097524289994187749645061089052922153163342658652690027281985071693380283800782343752231531806255789385810082941991740971897394917620168595105525046357984439098474057323539711881869146869313021045658759335247139009301396297401908634608886392728206743006192921222655774831718745081669958304448248463074552066265489936556008200071209278354076245906635392807232110898485844162762028033262620716327733372668359242170287158323576557908173374924497769363696276699705424775388526433141419352138478568044848743093962554060558754606210476913766415271883903691281352987297708400188486673739833973524666901483388955157811347540192144294244923138424765350300801504074175215169738738961651363003744661932205836040763735607816713257933459947844343761053428558482205081495117724391252863827019184909012368537630276489537037195507920996614462486531229235744645983925672178032045982622864865898690558430798210886740422127601915281924031068640562018451764571454990658389625162330091241112541744366593613942150053836383799121569528781800352881773188116358509871551764073468670809297215747581204964821790650891883392891331227400888637320210693521691878846911828672283481150867547241895733811151820064998310600738702314099148641379084099220894044779223362042959928281725507466829219523160082655050778360650772286414441002432884568964484352746123938946834476884867989440509604000912893305606151457881058427356361208724064909220401528831266509726442180254121450447058963702913649629441005306527672945968024447372714739925012274328514492354975021190339236177973733327596461321790647042676308041505486744616494413123485473221927347354813584777901579482772177799625209993936277201520083154803491093847426554056461841847080657453779609197538778391323495978513253412851164725103326503364875753414587132565485403890400345039115925092157227480527154525256860187572387316877051088653145044877128536055863617385065368159563318726114867086429219454636202984671881575339240468286518551489034043776461657576075178990512833262821776883592986631861298473466292745856202536885388117758400920058417071912396926633713426007134000056883647681954514299391034533794983201872877245749945222813403074171146255391098185499685573226794166583975346300971197729954860614659135894583667263820687772688312660475811283480394266339309181293213571968026193230074663427841689195727542827135877898119496331916992650155883884180741246476854634648396569351101461613927855283504694755798400192019785538547991423980402650935752567423458943435627520953554298111022457449824587482192043134951657413865399586338266780641312262636522361554307921957492503427778050077955724409348084006334260555895684486404922118669000770699010532488565960594448067956473123877630097824551451574267271948342836167609251096059771728817284459403489518834116870855739588795226853800423364724511202831349124773344041617866616504601524607079704071330339099105416573556497886000919931414527173913287103450991713141483510534242818468212916883451180988872022592508737243528318499423476327648463923834848329733060275404869142448187230945407067429136653559739902701560067749681565955126451497796377420217434252726285847933484062953556921384031671406225619424846484940786351470878476041341933983045323765520348048232826456823060810444765262591395272626271343846440723991399249008737634886493053503303740923430678679727837025336096344306120928457389887790387381311107403767986980025825749529818850747286346513852135917428678206974406666933188284557841541529155013248282512752582689664544162491053940932912350897299852945256483310579960802622089723487339573030889462175282806974138029445036130551794724447957656619509921400498910562339279780944150442450560303032332291800327456839363230745110227271051719059205949811663095813862339029951259424142882316979187759504565914822191942630230768359171380144687780244444186152402516160051409006815233518596366990862676226675028746197972477416987613214707097637843297993786804636468192484628614949554167330791389543910858846181738372030822785262866637368764947169434916626096469027595545464303433918799093929871143161740134802755707464304760572510930690016728823561963505536399439687405792833415294313157637002665296037166899000559822842132258035706781020711907650077043428474543826830973914735225988194693857231858253978432393814711303761264673401316838380608467907590993611391360499957605201458587520117167264352555071668236878433258098782016325339572576767151201476706116684155457709718020926122611536271190375790738656590474161191717634312154513384691527787251380706930882901357200098719095240068073806069056646461207879167366366975263603198293935092732395954162963964419695860162478445069477519215934418916519032847043461849693735848139818024815270988312928375641183294859213002471697376299475092620802226228205403410717778595792392581281024364388986936962278280065944590826583755823641758616486936104374695007206625189870649037140909126228690516005815514971275119400674335375969707942177851733376531721851827712657777573053375351703416377472636967515820122414376240118677323966664877004213917679232100869801114410559420605863123931065576855397311218267633968459306663111049457157302779559771038869374716788790592380930510240140375566463084421558387417484494427332243168845865689499415649384262758886800468003759145839468198514663149353058872897136357706097805457868438224094152170262596638801085247412234490172259222661277788197607202989151924415014232886236446509567639983904302773147374217052354073883153373978345411312519887243151184703430491253255027445451056190017478835267410802629447847522535877445087197164851010027581726273664866962938103739577121888755781632818611456473844554693207255344908712056670080370962296954439576472121506030015981692502170920355437747180562975379311704051975258022185983494605592280791084423382296890753983232789779051049844722362555103422792596017056251097430468086087856954976828682897854297278790271510846301400375879388948676890997538190382046536148167165667055144534287067864443576040763298434815484143621041292955526099281250426888936011721849431808088450822432021797455559588544193166269483232848277002435495464671589475319382000427479463953311754817442419599634048586940011153298945400801671558687261255089461598885705036729880511806008256179819489967122832490343125664343411464572324691509230612186048387758147917389506944618282856142693227327095083106109342319631520177287154977980347992231360039530499443002040680335742200684360302437614146363901847843722631170828695828344531277317268453933972692381814508830874913785431500248102663857773682157318185988921070972125913265020598404116892009035680811026529266343811974515094147043238634181533103699859980151409901720832691878416867413210774227966257061361193877003305008794420353737599775033263448401647856865642648588634779120856775925168483243138002592938972142208361831593078005306312259099986674322196958775177978239814616254861097464946351259613942771312997602518823666477138774440246216345797502529163375775828574854286992602624233963588181268512655593120793990101505696072179419773678609224157069735017013342990784069713580035730941633825211003036673213608535004186754295145803571166804465458743895852015459776137711853233004365719603331549555902180076586349860233482519508875641052688378768515580567792683872824192747906135463196763287130194789646716339280003410830066744284404306345191367251570561930964985266618109585219547136954019048925216416052659741709282313886770627910449092748867441974165398914321083036449080205633264944036726943118326804434283534965555678536787983556135570660532853418585357785135272079827555427620360989690866735429390514274493622673639344051947206265425150542196267580652941044048445856886056956604491607790460553730509793966950682724915381171262696032061677059472703366285015457387217195129729746737141922003762208237853498490666230085784200541754928071957066820322925715770204298992373832655478579730782719452367850755336981246960899987139358804964943670476565362866572415288715041395071235377520317512212804702998123861065038543601563990504176063471955455078557323706465908271677534995388664945194696222113153348497887545769359227675632075666357020825433281587821452858226238298437243734858588235199560297429402822351758730448350948676692264572038925127648854970324702598820536316860785961901306473807614589299720716839188773488319597882212030720280570476644078897700871525530511621782661830098945012560001295138658079051591696457310780345396580007756472539498904473112925024276128006446305444083851875762596658237996152010796440227931106873347286845848258699409770991395868966308410883702772196068018151849815185388983269202606254378768286454284176652423284386183506676251275063069496644415119585001315174335063099901685630430524149167450426529743639686837850956565838077669995623314837853779143770378868393883419795394232557237263347954379595779991272371349324490514710588689291805468466284860545398432606403929507350780879281332635968995831325146459436460199587113974917803867654862175197084008819577873992773258474816064055771257982762172820312040523276931544110420595174693073156996278562959963583967491340811195815953785994746015211090133827091691632495545180154417157922012337508453056750633406101206803858286416555711841431044268121077414324163522572280206463264511102465624030689256904057793053803206989761654706197044789949464039125339498578035954800203846403313442039034944659056877133956563613696654743370008348466563461111621941801491021847015782386507337377550089978745551429633715358955990076708073682785332584283968637251207037469495304094276194716592990895237156144446021901619620299181653371297421558621067213228849731695515609723451599512577164454172030295081505135286383056379368748998399903989657192178648071235518422889886007269588454584751634033673672330741294593802291204346578938514427452348651082996432796376186150092522833121532096574391016490494654190001182479543242486301952589044489323253121364042828803613336497641717120240395092562577848465512485250042480904648549996513007484615609815268240915812683951311790043205708208329426346691955949757096159954738541379876069491285387488605297765454702672280922313754732748281114604393999116989988834884458537129839802282997690928911562047321397130281369528916292900348136365813503894051394849500022068289965323526974956513756870975590641365444677249679403153900850319171958701349227882859505586839191072617486183850475877290275660060885870532494936242459833989370415527806347608741938354508037664517131093899492747874332792984991726882674537265539954628218982039123181128409610273841181860052355743641632168400640038035932481304532622561003223854792703087296427214686156522979275836202689224351937687814043100061641221002010409720412819448028878530011617212758399713163949540179807667820243692860583970841544450837513758231807411724940939583472887817915714647262629687913172753924355554983679786829187435257698138295833122720066136413445350612992818897247637566715989496461623894221261900009539336651637605082647113003741322792423645215131548185041710073229103151729868063992810004800478045857560457144077800821062140964211188595286998122684866365804540573471986554022980007564378515146785880109178609700399711209279848071508727558180838723422597023756135593944866842887301689284232712850230923534482465911413443278628839777171751169858777276423568365762937550739771701257318883453965609305450441026416430308299606326798737243220700256692632306901965608803617800903439496147541884627518924450830825885557139342058509012176310532668743884113586653273327715345996386122319983342588440097880919570880427804899368036121736869430463576390750388102470502390323862121132604385467067125571084931088342341161989742628161823067544027671765915351404348946069207456362204091974708829296333372186984396689729872565995158861133291931021104903805919594346269365819893473895232616459711064298810659807501722238822834505605341983709519415706699965879035852028813312774307686088615665962954079584244646188912743856407040078974534382406173468259229711583125698732851721783845267291693927052777383591745660901811221570056134687736320567707597837383644875290476936315222400362679623984009704617231351538869863202083115451592123647128429395270950466085182300573862475653054064296661311537271610885227933667103463393463232586393149192493947475506455174141014685737624938523784248253670856243399980428024967261505687138951053917436374023655196504908486682199850481142324699455053632844211832696867937876962782117138451273968805885143326636427153502163193243809202894951911254323552153513606760943999799753190439155443260351354936520521317205261962732563084534296333811861742844465261528100695298215779024441515156796398439833830332064299597014993559474712674736465536311310784826190777826844325291613272839250741605353094134263314322482905531633092220137577915038875821584593017170907984644481667181160055927719769875384711611124662780680979621524431484773243061911442030841310863011771242349804495279179973020664255659798112603408917899987602534702375969068235794029952802417355827409422636503535583930206414532982266460868490589700498664763253711232431042976895026210949866784467057425677321531031601439324925438452504558594284832708612471158381874284390728000873309794409642491092324912932494099275796156430856828976842256778169986033401543826325205473993789007676087487765543044117590895157483171771085083186329741982421024352426367030235673555831642964227926690377741389364368186934871053340500291350000620614145662769926561848400278630259972726537830929772356180567665831948320590592342800112290149170394105286649943648837415392358337369532911172547269965948438426381797196495532631251651831013318284114694223001396181988510012248215220823802204107926268990994246039367654935920512979954685340859209687879362222599465514633965331207011454290392955318012739111123313863956955150149860921313474723276980033568370278917710656878405126538522529937661356338207774510901900255148541057703331445278323179784868330296258852493312018989929928135541371714895258912960833725942951084641636172256509471986230579671383656114018547733352728187132683723404160999440698589157508958950681288031152864918534513026560094305378295352881863256825720519871521347710966498072310135032745425390048686461375710798342922378912090756723295322325993329906708392176546250179174077093838780835840786089829552583755585673322305621904810153306970584418014467197915445786422941660711312433762026910329825413435957440913620399705519376784823630563027492583266550560943436053179796281136087019322177822224413167599343887369015203033586347873422293475665563085456402395060707564162098204136447698253722476743897434519109187326721467259847238440590922351956859806150326317082412151978113569096154668265037336087024800060612140081231194659639102456905541608344359752981342860941212739679451915931628753617323517483283496967924480699112799170186863459045218787860078686997365652842322045554965792310509875590647590639491113021503825547273033663617040728709034008290579006580532288515501836067879029665059843550371127999625602257427074433010681713955362067686516309433254474235864933044399413434644828409765501082255165947498488505860231513325113894925304284576902064108258329417898751492454040801316849792411735038678623032238233157021285078547349953574040470528025843828255340765984801502111605013732194724095851749386322235867482538324193565198907795021760002903982581150568259030786901777463649245204323228553627100506632284280344325785370469821372210307781610636950638725312901785886130551813750542339045759284426194245330482819672179252080288989083524061103169036384257642017803216019463190939187252969764308417560177966228287151703591140108773214031992895109830153120570814027124824601449685802934211963594818269010887659353525336039093246596704493795380714579341130214780630725673733305636367018541215399734213481813074496606691039515312942984318283113158057106414886819638266050897100634883250381585534772047578523488385376562867146656638680598445588818999249794063474348309190609201997411814633704922372765572281507716472490066171359570759194767340273038031018357583844914138476704163739095589612634763436986381603214130297661865447450319629151204377520227423268854794073880364940709900095961725322060610910895205835725256204385260177350853031022762429501896285027073193069093993927498900682588245089943687074207311370122334640063942732723035576848812412183827193315880523474755311177778027967937424201341861285153818536210353056690034389562449267678253874876776859225441364783877690169988609612028885155615651322026873675107631553921886340867065006543346185015421397984799474539765743716805066433078645108046820622711155079593535097728398096740634120999951925934255874208553497412776715433478959997642506841680305179935037114081694875248784478581824338078963546226417102456966471954773916138112556460856551088387934980169380170238967237417418962802362336320550310415102788111510530047752104131816971856106063493046442261851233961741720516720134113164703007487470499633533137948292443650051090328144136152471019433571517337367551355072280598226979825997539073822842166089008213049784460752049222046943602534676365893077763464184771865072100326687944274740061898744936135020769247456716992817928166613957056613689719614524352726892596754160660566416445951036772037829699528997673968135556043838211296240562135716764596598350243859651890024485149459680518496621405929787122914191870729926695794338434916279419721105339048028195510971577619693653710866351794801268175600923097907939290291199129315194543497777304392636762239808592841726093226907461024454222374560346716320411257946708369366403861813454968497702538117303805585427873918115291701020023996422280641938694215879659897844992505386962145726901470176344220700901035318092633769662770184434152216165268292695833497143255428789299815869432063233876496460737152040824951206896197958058383075880362509585196428882153269589746597390343529225310587623637651641137053944006215867821576227308813186428711212361974060225840898561049083156895279001241079477346356500405820864283873435784292929387870127299452503026999478805779789293223158852025050294011098859726606487948964246546990092865570578467783549266246708466278286720381376381008808980799342129352526556582433767116484068450237389654130567084248422603667674097522015239397348754767507752842488448230649733368874194651370467054049840966238544870944333989295561491566075294279680393108721581974887190637443992262872454075211306882423723850774433644848492323840759109585416359519794115536936632935166882949897405449444432370421432448392763900863246400614270244525091655413577615084209022805280949718102848435859745913547073841292126673423203844456386082383708595820143198698913929866638532597614334274563729834449860798150549925581125754539010448480670355732602725496576385661613653464911638369867022846811535799822471813237866920086899415014711782749485070318920767859504391920753731531733397679855168071531994787318073225967827101884843685197892214027616676482470819025385686600688796512100229097761010145897101468412299539001783146004244564671153423734079412025374169586084978118317097142897576562236372131836694198040714040623320656568887252437484510359427855282433715398653227894085756464535803640350481567951696666266570921241212210675834800939240170900601783053849046425027021717947169015002409416602590527373506120124619387470655837062348570522165102950928500787020949737442568555971066738162443371284525869507287709798331306804972094830388172686518036466180338034325398145871693865261400595799270814520015261069086519702989717796402242232711674062777323785420915561435006333917069823252718034982763686956964481123235340042765981073510769788087017727213485145733063963541796846053472391366991700707524030981418601743293820469205725969814969259209649233062330898679002768625967656133448834879560989538340060786241894693494460050456970353689420837594360410910537374691708345355794023879735749148611005806287810258098020194755814088631127329203894433918596261540608106800029756900107492119630017073109630020860489860919928187162824293388897823409881876997156538768369791041317279830319453633544415390352997262890627290104797507413699896135758549904506759325773734964706645347008649706770951673710265239238302278369890783324478500292104172225859223137176227242741629833684547303361096317908449990586343982632334206335418675875872475599289204307877172967801990642408992167355679563911193045764259882470547075768727921379637787670822473807741464937263229667323503189909632068678287785116175027249289875573281950747530290240567322013520226369461633550875816373936871043707833050087962292100137039252173745687404697695775646071531211090390974182917623924676751332855855692255425844077942610925734931263835696838584800130455725151076080368802084843604245352127058817573322440492898141278310276393303075869928633170951291708388582129533918993968260831021574309279232060853617210355841420490374654509365483782054583113879887521185617342495773442407845156303339909760984661171214843412191807228812917063642367433275491003126827190385292867496602182116334881711977768346813351615676122403620528253002141010621355873694889425852167352878138673239518418215286949229357720694993562795728674121789128330942150533024520269450491577484747942001586189835763834803991857581876969234768074935565332142601001288818588268432410818377027452644605963560587437279905315689938401379490202075374369232738756992754911970232705944771643412750791606633614599224820205818781751634094610082049282124669739651298256520393455939221281768458992749202019822052711186829251647713292488128116937581622469992687192204188107207800829786592336604915955730530092777698248664091921417207689831747673313026120125909380836413465618747798030004413965298377357823240865363507230023279251977406326300868125661460809732381377614319633513127297971645468803978088780627034949391415441293183515972457624179112057358596557127584401320342885082403630642132481304150771212262449598323821077552045924061365582542815685493237648288652074061478003937761944963772163731797010792469858603487747625393440257713948621787067280995047392902852520619668562413832973738994162326365170343604753597303649394905429062349778598619463028652668789440705722551368493038245741734042684875597891996260955283607336976107019346875932383021176312596262071612836794887781177665600687984550207942725110908350623161016276577658273435745902636615965649450395139221357383675178704793253502226059208553023512457216037964180146814350999919948860624283088667611178275085121596046055834946777595182412330145293390089868959536269169822772159329966897131920028408067618223952080955445831310393733431577055080738486674222450718644651612786905305077821334291478974945015663197876604603532144734162969895652908290646102120661261942323828002073523398104451331419946613403821512649358528660215631332755176916188955153241983968803784072303338949961068346510346794095479042156397041268839629038327338760859386832154630520507594242501840344317622308448154942488417995233160021435917595650363572657832060098763295958597718629128331504013992767568072618744880430717285631348750326038268248557680305524050043644448446534793428068304668250441579532426583762749836113920771790017606126346354110939932467792632433487474934129520155517190772179063148941096791266385405335758942162803825440298703014825606819502777045497671801374078144116950241065917762251424504785963306767203237618458395417350791187393776298759320160197652478297773448975498621959328575953785446433838682021456298598387481720028585140955554130255087306528109307704945422215787322926725277222359187689976797531774563708690911473245276528855678154672384940896247537966500068297827284678459704922313191710774874931219149288456938479774160031856286530208304025133252573609878993181625091555660203534459506775058557030644373205682916661667000675314536693471401056353830713951882716062262328549923305321326783928260787798778784414537321095194626046682689034044561145867186493628053343463888618653895303702603279285952398399663359479718552768667209958881023980841184975819658590335423051828648035328260014480486950885985693686387170712388655120812661579898080969332633751331929505093086667215593062249275318764511665788963718982450222982531150276252947878885751958817405618344283505211012056712012291482223184172978577446243400990020084839646768370255804862050592829615022360113144687659524815771565282954105098722184335300440981465886936947957611909956681202952519594434586639551016910930025621276633802705852013028856266648384474032759546964867867631257071608198160752253184770220888540921206914644618881581343938934280514559393629169473082152564146089088594392784404398935478656545293490423469220469750654473889536093182993973873929034342936130695135138402808192358613638200892211898249036678802319208889250171966432700116285485853515670659859665800615603722586381502689807224678619934025649584559698378659594735651161042459970205206424779479917958972018982447562323997869834347638919703147698036950123417905604183790655094314644816645296735612728928114340967525645837869409536054154444593891680919977247882518709660777527869817011499264464318510515394874340591667019879554349862791004132214235022127101159549513894429904612882003603770599819477687649281485118715201326188750675838595015164324092103963485037329913237917411329972714681990794585535000826188072789375625307608367716973609912941043919967105402146809199748400431944442496347264814231266330904282945344009086974073003451122583855174348014412438489563716872878492042899560738351533188613343650163966059891390463466001867982909477483210854396407599614347080619353368747666788187941065297095165722484195197729122468750675609737575457823257336081024820080637049509485446121803426732162329781160371472992471644514567978384561333629124092393621516893276887823022576707837168946395085436471499213571136009949029663542546686223731959330674548277608438898849221711963507198771553623075089253321475477258809841265581341323518854747410242675988948139188038109044280054158123359612624695160483798399596676401208437256266693821079490466199719875094242586769158511194216823030775915259137454418683681045838115404208382218271493889855973375230650224024169055080545055723020400601531363400901673149301233055603556560638896142413576697022627378537857396994494712521220059248477043933450594597757600799869628504402460999281438043652025637361176382796584475974182093784583202696373769554150715626691154216488478073899513612912966707884624961987598770272880005846961868023355569439949160362082159341764160015328013102061461260799731217270868218412341030060350034373120575009597008132821257764118116179090200736648627987075873767405602804266923698914983412818172835045791567140275723541921638831856498315112881609939799282733605970002734229421978752894023710664331648375782292158117305656056887834464172116643340226693436154168905400183496976793983370171122964897624296068156003714331377525889863600439216572417922773784125734177941872385659246938581461307439238909232336358475144826219041345054902168928174592114023745531668395275689981461651568496803147745081647220929332245132452144506473521236068628892266543838969446407483867717969801940799969552727926154034361495422364756246709995198569300599871001590684228629564189477705934379886418619102934457795198281313009968820425005472330666417062421660791824411087629007229396841635469524717580974052674118881144180816482829027378686242606226270085267588955776863905120098337396991818859402987394517209246563451838764859663791415223699240896369286577851390038720823247954183347813773745757267401144974224294494115251701313304313935357364397307760944636900902307152116843376668105682380371762699791560889993888617378017294011413801951436204597622508199236168152800982911509551709743078639592431800528903249471026313955610828749683283919076144411860772668789534629764398166405446043091316888565987874442253048499418421224222783473762252373839348787508714651799823247291964235353956255787660483713872161183052963406372575937273326262864719621223660859226311631317771916410630201263964653204013029573190253543782635609235754971352279462147448255098851957873863207168488525594283278704491805763318075922164199517530863313360100202498606148046288956501186250630387099472381604124041132189812675964440334231622225952647950105778365843804765266773736060708508885989497350252003366790368457649705602100032759628662781851415074079363073286987341728339564322636268136243693612269095942702063795396210768030486567403924927670779536185717674226849142707375180756208450047199808339432136937000373315210780335557522951652802719752868607396259104805597988781405933515840613798508999663366890353315290823705103248209395737311640060912724405373259209199429118714705720404624856856268697528968410906563705408273276331663682236245959388513624556536107658743667975930340702810024976487087268374244927352472175033352760762535603339968845380524197465905119960078853066889873823731841215891851163723157999316615291108554772733969369602219294243561804621327102172149817800371594102021418619874142177825087518818451135601616089296258467814088204894306428293117095037599128949221148167117890557861499683546665410140244592652564751444669318662946791864714760208995430412680651885822230674114373701325559305459278710498043763869124566836416550343653938797682016411688832035096835402318123155344013314060767988986122938580470652285363193980939046478266674267437841631627751369240339343700953747632466345222317231266614041628825314414784609955955800232594454927984616343680709273399076187765691444684667100991143343705436836991703912023888094090352688385010876996089777721844516803325797675853873822007578207418071926746142874164627012281346632122744652615609469135970028855965563380193010519781427966077992593115240573647168885495764845831523893610940604051119515659844973946605251384961848592186368764104438139200666842354657266876607577734287392801828617715457838273068785832275907315871792932420712856363475406711040105318808790587895445330726878924031579927487715898820710835508688735286029846923437285604998891237499523849908839815871357565595259307906855759863896054443485957116746820811547438631492472848671747211311533347976255875176083482546898895596391553389103898501125749532024516710902795728786823924709508372909672020205888216873916944121953883724140938481545867581459686322145435481738293562225916736416958164331675101002418013162429351904687921865268523173678842756988156047546310090711005095127707621555551273364525173327571129498497744910826052345315269051868431476364772608423687589223513023536190718080894034576794580288237248349065346921967055711176401400633654149182868043099902213657952484535497322283665146104692495171300609714008788582385550840472182409551392885635643545325793089920439703936406381839423199007250167558090004691025467339992420623813352274868842376272470408996915434648111971796523226689570346930721318789437839921743611495349695819567365847053549726981532050067132603114575920503285824913299756137867930701749227939737464789992359117486788283368682186861746318815606525444515372556518449408932392772114600912746584925748861829640415197959118255928444172941903704091641096759795687884984581743873955373764582393448912631026826290251878929184890498836422275073205797627953534867421604165474017924160249660744081139502854903563565414744008460181601171207526670253716011739950396708045584537522434033842350459092090632137501877137514448338121496878897283947793717091615345416322541536703252726055086121098580591852055006803033696890334589411373774124797951835337043181534025603451545341384337181617786218215602608362857693732812830716904208979841031617301860340102061337444378239789462253810629412268783967462975321833310198866992969164049006824713885167119573376147099171423658352546883253527591810400779814823238446964318969792564068159576256506615138082928217956950070030452642783409226634913578163843825944242412933076717351070817825546475181256527917736877996639174639455330184123040391097373979276797596333551578964053738308338094265473245586406873522191888365122903612216057817157918533103016446114021910976112237125848876686705383744837648255869469415401364926308435279503704909973078080715616215856691424542595301559590802575106441984953906997458688479930958751074708333687037607358480243790297717293267572981975131159430732012200578242272356460773717030378638070455694518616374622882065856244748574291698403203146809765785458316544577593804525587170151345121541032172088910126910098065650094001269218040352539970363798807969807603284533749539594044243107709940913775696020998700145817310768838729775137207484765137255080780011868308296786929371287381332539331895857970699460422718799314354482255400481856047366307333559189667145345237861463053115645266530317344185007603368393985398775311787952705328267462668593493093663927984179460740512321927223207259785632047389098003780223509046039438416059113159562743501621770376351851252282554325334689753547464598451702792036928396212185244935812021488183899724139700593666992027070036229430663137013047616254093767122135089810298999441920077217225654560892798766603589426557248223099223541823309008890827252730076222741801165896956554869510377657610875360465667183871166214620092423554172037144426949676252874262611800850752315605793171107503834988076402166949701789924637763228335857074168585106784240611305842075877085072608788277204868054343086677678191040175228345375410033085446606192183760233119012754402473618171373731411214648169856068559542082177037951525243541913277307647425084916700101059568453744126837042040835384989584078023036383591654115983537632129131023280098319159380491400523238607174362555704497286741722598588636877856313339148570773806911762684092250166406538166867787066949163563483540896984393844800397403006011373219288753910368210458513637766954093731200427159987005891535343685845169884480605695669809905247475613406443787057772593870152693828264522096661372722167677805613183188427395387827956184858351030313585897142111998258397575360953448417789459660711446152180246360837229731965868651082240879055213319962794055844015689569362649356331240099832750608971220180121008660148453716293035927671861737824889251371699821616176728235197369186640050604993768856175684797259892185837853914399352155235516238571516141812232958305654001733147079078031109116052651976949450043794004543852236715668625708265845781328443362297387188510108909565077451545611516499801118694742731358591553879324413452234662808851279756595328929398185627783842282845443096697743268569685777030290888082115559849144102273160336062023550730275514226772513549141192034020139668169177527921548508087400262711478845689062373841073454180963230289026605341015046366747137864647053543583195118911637038384725150636649117956800914831055495116613774277818948094592040570372017033345210946079978869284090845749712402214222674892612088647864522758844097006842332059773837708596093406654447257598295392738084911675737436763825223505982560478385040673042051456901841737912442534282790055196670057327528186516736477753988351731621412647072467809374205188615699472927759575400843575592366832829384560274043534715912802951844241443436905027107391604775265429514607424197785491601978845787424022693423114240194029888299229652765771564620820041355348853049841971161456849351401407561333565365924464771304021313579376024981713304240353597093475326966938505812011697293063126923933522051083669801239482313343085681140889873151362358277231653389394788630872459317858316471791591012556198484801950042115111673256982913279932024893686381139161902221077063391733742718898861196107546715887382390845681855414245928687553062707333385811525126824162843873615788105000435367734871090336562374546394960457242838828094967610373840056658452069333230369645015396931242010818990024235434357994405163187135603682255219323191831187524385193846948904487376789887781770154681397522111327207285474650410705782467893736951229581342898149313454906235453039710216340529997400276914738017583338280313853817794067540875968399678294890070177900564417377627858637514013278175916803064705804082237905511372721393095380916122695793493239205890543351529462590677971452355565828132825633294341631211652578042467726477073743453683361844925493017461161584171227544090014150418245977527451489459894698538479075829033407876708890094213443916610854697503767750103766030014651926949639010026231298942979015526764646875726414634846857289185169012158328938705674436338306340167419006734333479540226984014863073005763905749576903235485895575881622719186471980348914363880449429149543386239840794667667335367493471899834130976473212577437039550911016639109732948869461850248704210299266593263257523071151456392295656071504648040228162144438478627070393132301936195613647513592602340708638684624150978792794950065144966732193471686615263277967532999020467845332935539443169887765720555341558544282693400687684529930227222545834855520647069225753099894005252121840381160944016516647202831384639661911299418374917482184164351459198478088698182320760302592142022118203337351152115526564886802095345680058821272555649841833908016022286592922953201368417453952008497524132404764884147430797302321010232921556119977715114086323791275835102774279065995628483037045067573729141186177760004120740373893010942516596450645441817689371708633812002442205844150417850468061932351670293104497984069812089373800867714602513945600024672438824763625186869067595763986758284754845743302269047637137406017990256295888571643659117307591971763194491634505890916429482540107814845431405407994709619340408533512218389051057513116262843417289949896430427472541439093389878238586036999319358881060775140826868458287544943880641602308490758471979846969976262020993134132011919803805817478256300265252635432153797189064933771523706410544674276143966192298200973346873482191544876196526615098838101379327325956642017186315355344145429730030733312778144302742798341580919141054543512427396707057290458703020747724243875950485886548232218619694768843477200102895010793710336920620842289337017085962746453119903631010689998266870923366267230337192218802019324923555756046642764989164863103720490276150356988993478725355192704634023372169415060595652400015485464742261339850982245812977755061430159229920717955350734484142202035050857748405619575531954007577592494500935128942262099168429612129842821596837698836223783537714290364365962373458351705778819580456054618459951558219228979816078708932848648570504675407861579885294744179765271201500261351130876298459944427366315621784817629661216130909411021424374504349047737443326946765264837694393343317438781436500086114070782220551328113898223780342065704442325418582981136807713937822724841863314705049158204929957120627375531119024068052085585876606022977489400637505144941726817652313279680384324963779274614459491890581942531892085723486498605009756303642244536014922141948087379701248400107532776886911944771261037344110477745829360740859543119558207563877372289001703213834706190356725516802441084297602020040529858826408245093254266902184626024503627896074143252457235134708723337791595352854096517258836306240480985007423963254486687883651756028029584093881602317709560294457896307816322238026389021460547142820691860388630132201167742234735803349609361425426177346924181378007019808012745084699443437118622989088610666128511703081821960109186728530593578584278673167991624834461612776796924710804921716058522363468503106646073935416243795621521089055896568192129722905044180474075472529029081862090115323103161891393902193459983561034664477703671873036699272268462162334578194576850692784568354487667822749666597661262780587269108594216697371928275476806695423700213103369471122474753345804562856370495554858831704131614318611798027708077579534240401384415264524076597570805934515969476509764245310620368439538316509902209357716134733622536956794533754812137350874705561829328395805884886906830072472484138891335803324503255880489768240568434806778298596466733107364180351268220163494967029978144250145114384925171135107858497607343940698672398818007145568206430862113510414841607551704251629721059185340452747866410450184283907102221128957908330683199964586852529363966859488270947447014377456546865211991515631902948837142684398718871617549910391730405064210449473358270156628554576242592701176846167818546531922444523288691399467352162289014381853070300874540428426474767593295069784387233014435594645412629811257973376603350583525057553503238079579623756454295453050927941324436597842447094008918239278800768845104737197085117926323172602941570501628336364860764241646521705821974156088758894726545913213342662196770399515366594669353904041907997418977171249114427238645915286995126077536731366042829821401681343015554523805836045581179254440240021524055424379033685075178566073220924271873100065466245177050769369397170526614355906215917386257147455426448347339288056020055654897240660516390354566406665048273891546625304217510263446873650912953919658195748867533616733479904715557347220735461049097203255913579226893542842626011587187454404246092923957597706306583923361492404509057062752486253535685260639814013458386697729120830477327230995816059847234167017748925452793507385043976619472410569455840860389817377522328441788042993987154473767051835357417207076404112746196137982693404425749100542047381787255483909206783886799070602705110619712358535585125648523763088281579008886753903778157179295151174259792790852645064743986292640888873131561439862259965113186447841166184329331074724268950515336256513228819613937285455054591750405086359892815898341981907308710934060043095354964065815505343354774989934665734229446531502014933380607125830993898536949076432647447006094120290686152928034452631912117762631968790229925027990908237933812545827872481375116584962927122279062370249523075752136799347629213421836942956555817693974547908276831176274292829644632434591463729819432813428484935029309331241244130408042643595167983871328507016769370737038223089227196944224883921088593660540863775042683947427896808271884375875831295348982400750745167001588731308653485223358804784897264903415014951019851594238582067549318760039721573475373828711487162491561442094905135855199096032773061241000714732425680951177876921224550473397024764143986360302209685962526603914173947844754256407001828670661535112119409050853608504076037140628863632872731427081914143669324414735790701276125369967191252457523506139310668878221159592222623819819848460712246381863193077833698131067489838569323897173778909991493921788569286999984030908216422992281113722438816638397997960442753677528526310674380642110932191712962274499113203758111678688039769613751314838708086218411407433349132367153332819297434401900217381150478053476486123002796432905984939207458435412696545935518407659960459525537575384408195876776481352476455568492727826177038471109339073790590850658239339227160879134793440939019811860335606758537275917582888134723717383779009468746211550861958697560802573842068252921168077263266966043494628211962864660513873130507775266373179204194751901297430157407997121173165542255117809551902716419846080025016633114580821985594184430204111934425026057076492370157336680688600572624449508059063447707138134289741041798238382762527612399340144870876046579260713471966752608427073373075045135098843641475003212801453291703048816907768499887591096484158933754573316531170204070827183683252697914717257229001273323347977318439819747401568200019299596611871993401448061615448362565392716400683713497022863268431145860689299247259025040511872909460483571202863319956655961973027524583429641996765914586525862596779708028603020617383295041548224603204829902394605675403844793309858115891626604294719855903170678054575856757246882978699333536759934543607547618687536585784570183646379097845192772860613415435482037689481617130783536917871470724962475396452834379425773015558275438347902215236410486393311886854151181063128110926257736838596689221678270304441372730296322602142849712128259478710281048801979555227810528819404408603567270293146040224189813377576453505141135469781111064992305588851195666247614709678723824659342885600070388069567274325747196323714963385089413438346715755615649151437646264203622631535323024371748078403833743810616984001000800936920741196602647564924361620788897886770129937877634581629708949264255808579683781190903217437582726626444635773844227103638327454592929616488062042055083590054804315048718189297382954175605327939617563275361129295990521728441348769014289146940265215924577199460038149338476353640965513398885928103765178915682435025953209610776603909173863519072300473391382883850310475812592522898944932064305383138887839615369703905343178066589468122024054654503619038856864985236216458831021871795752286755002231561248209602205330117394639295014222699715533855121680396902140316787362515394823532789165706502242946654460178199631861133871505132474045944441608860496136308303783090829241399746134594239013678889997349566490214445494906728820461262165238081916586619662747209461684865553525815884554613007923938285822763279441988185737377837131994460743115278131109432442527528586236971467829058736413410291163712544892044457187606909740411174504567911043006121756402058089579479228040999068276912685844127490198839420701313608797523635445251305523852824311891520836212403869470613508841507446169828992712629161215516138260345019150473308910937983533838213943792831281133123060129848719324035023081734298905081711190335535889009516530730356477633180398519691196407068869820661841723482054661854413017042499306507071329851721710581102434730113618360280582624869323500702027599724249338002905278313548812077127294129143225411763780857602727949106033146467467946591494648118058679676583175555199577161931777944088526226968776494530772641938839081531323108138943707142295989135837245456458747737160381671660093030202097903751013568601344064968534543111830183158857814825118912529681918793653039214835186397709095328262555352487088430107764784710183540175942349635170672907515065526586834818499724695971937569639985213825037490673383987830254360935342761283566467764853555080523602209723276732708460676938272955433407689698063160930456680386911801464799212273495484145024953364573645013561212090737590713672635722590055636412792473783283930030706109422087034729458999322856521750405794095629196388837886936864873782400173202272375508142841624495585793560179843536592920928332002735446651633531636056198041484136570731933149101626577142273989422926384419170512669961083186063988024176756680917712077468401324589252651804041133977713543382024316862447255616552229805857656368511773210594658494399283273911134970175710844450359950233234535300396905666709075265090148331687359836716153994984401026846882613600628506605359682131999211460069957652570186304269288060134857457012891479676423833186927750351811855849064595435918556742789641731522015197680080958009062601766051851101140705358428915197884707116089132874142826913892526761471297213125104930973955421600916704713591499956739332695381297981167941050929885277775690270725515273353543040318081897713949007354919784916832654211182833040156688643965340540696735699859213173842523434519438280209575430953198744552266133332927117394283255042394052130478369627994212023831688667180896178089160418084028403276960960985400399595625277351702084297328017668773851798157464770738676917130509529129345103531806658778729531188068238785951237467310308881695716490139949829308081961379709040014919170605500663140407970643820811849252788986893949950163402604404027241726391218987380841928212865016400394826297900076841102981673113353799096192325490489324939609001689779059479299009208247653756415851471883575373172198906071633133362447568478697810573162654907747307983946949309767028397122770976017553891704024295301386835188386814115712962850926546055246455521322869890770953087930495109212250229109741445535918314401110341135977226943234690497726009882794097691537910473673220383010335294091260776594712986344917443692839378021549536944058153200147145741835547155851048470688419674988721789821322204622984629036110759279236147418123722467625650378401144548617545322929207337935795675103015246927842965968429460047350252267304125371145406041446986893408710212146440118432096814505413643618675500897296674640099667575366125677510219842124814443312123937901680873014509092793271303940150971816014734612486545117294064348578023937837337657429964390749278957079943627900785294304347994011223478394634976689698874788784514265852365891579433546997628114780917507431085278281805654452231437884020254211293054261087902402710326678485697161570620236712132786239904997816999835016980795897113117065797720989473516200879046888836521990359800249016799638576749777988923525903754089336265152961705936566995630626651875776111746434373932167579844821684566823132456941572658530371760796519286109590496633352009099931320316551640524452164636340689611070761923405448803794979657503615958424268810652002411122883708784397501614536433630813668776760854089292331357883928821724372817617587429670713158809768989293564944166588948057749061961474964502264710055263870633081924298189094718452458668931398633762980771593880267011465190426902383136721367650819571428306277000145078084064772470600294807878137120950502125222084827522583803031659429318625280858529964939016745450493963492797187452015485154365327722473280287447040666254216538509018407720528472168766055675267606137991150439742052398311424832991819049990530462318544605719050210320459258962724126822093666286792624986567941135809435123852158935701839048425940253343439596404533443610633406423666872806071622210021651353351170729143965665768437450629193839019835751297849462827595045669902094616705391207244231583707780941338854416577860826057104201796481240501806591505889805855811196344552661803940836010136141722564671811011723570339350368997562406712432960674119000620419752886182173061505239310022099855749396088396712878744616548226042673272685804121171713353008840946781518856286443284708183614380671349878891362709541689519175522966100194836057725133822142079546366434169465565034128622838101142921965622037749824598705808447696752820226524312060644492548150730615889255993938319100812353242259192114638593731416742043012362957705102983270420736116811854996192949023670502940414009640917132012133892412782372262997835880056148865215861996422390032144286745062390927603786156375232593027741307846096880754212333567401600269990612693630826938967339687290696855613235629387192118155235014681185866170428938492973662630409738826476993661352150278307526040375203569175641670790315685865142078850546235673626824510414156852994271116200682459802978478086965698664459126300368211096393576607830686165297674117001281854224314945577002103838077996349535747645810171439767972720668143132143731205592050710885695517943201210469642285784707253265353467977730013135101314095670546707067711500903447433150869259249323911803835849053294990679695364198911040333873523874607569622258665619951730437676311155716819911121254019451771134156329156444496937163126849678582476143412293238050326919399679102017149344247517746752556574529437303368274235966878169065397927345558910391914510456061545730136110281422227478369959494421635962150075679313368562729637789909521100108665792681595351528071256853672014277014598672935148788820486050899937267886475786637818348777783679576496463578847211859445403285465111822782329708670382185072745870064458896589755497236562154446015520135193746560740089502117326853034307446905881528056754360274887321112279832172396340302606030562771598603274020196412701125032319837849089331295733753425218649766432678942411050926821502141482133013191422807293264026317587131254611927282663660440308758926798213891501862125916964851113150437912978683118610668863785615880762710979640224946606025697510331919454530222641915256013316417467339222322314863407976514827089545938002325046560762218275015403594474477266369384301388675135781994733582913954705835928244907121036863237525184851751761833992473571016697696331769431327103635220546195257747019779684300008898340233753541918946279233566976155471820451221948562722142640393828706006639202203757926995765200097019638224066270018155567645926166978978496188111148126822739112113616228907431815890841048279933503801694778143878765149887181560335234241403450281046923806565769064068994232546816053746717391655839656947458365219962553956695640092159511036084461987240753420504959368478897078669844920748637302130218152439597933730714713331346740032761913870728303908794394191053849353915272224231959746804982523367156592120928812899632945556102822379634820749816115996122562805017587673420831161308845160551177309338152566507012398366653426462315833718824974021417473799927654995583890566448474311840474015777407512840232511487911798819944877417916311014549724062291421013190166054405478193645761394178343387517394900919120421402383076208718058979961086599611039829763546548681060606805620130222488344213883889290836537679334492255117456070242494674843498675908783353722735383845582964242115352162071083666427209989960434686830985999409041736035179259551211771269255735634905094107422737597734011085887194233490976204731409160269012199293347717729381258495596061894364748761988025975728301906238604253767878672541123423343898140078613350258650044469459557407142630661014690541086160187742391670125631840544638672443650668444010474027502416335793205136714003998983940471209574555295810372099427117758475188205531076529651168386821006710814970022587974769773579582089854249337680006456578713826445688484746068385606526663379854512340321768621782966382318370607810159433227631659754162394342439055835968397874781436480489401227188418462970303767809261814463806369044515558367900120972876693854927451661278208175213067668637243375662509673802498758220939443749091428652389699273645953021151774079389798636711898801043022121347701062409866911858397365501899241949955828227907339324182339288465661293593017532584916760360634423956533926656444399486801383457957940226996335785931161481097380931331031937395443842598742916588924928294321880512849128193964905393214678451537401486983241152739557699101545468117258581442273597081405529516286896033022112483053948596958340383674243081220543420472767117315754883599190845249207221710444395997178984464786683061737211111358834892631924901766429391023680456676615758298951803604751486486710916203084868634150492922474059023687174747271983814770933892564045213424194689827755031669653113696633609533976098820363220719159554878355290970309139770561341204187054725553222597816866556595014801618277675745109827192026105573385820812553981882489442555517516861791742584371328000437867997156671475956918138455648950208675933697451054631566245501790228600886863120571118794010125996957618219431917503327491055937157711820427879053796378662186407005445032600977006546288022926011342627846396298559408713866961906682018838090322675903609250874160342641921864472356542898613708353308978674601052640092728256304619603075648519829178333288802289033973959574603098508071110555734270851289183435150710889788071749319709246779027566433480035056997142533690916032759762379399771636850240519989778483597090127247258312120657542477050355914972256003539846398025288078647862123836629807627991814157238582415431493526680887408911328445644066980110880392607757717947663227987953955677062425364360939619580893134027047593548536162073264936888641844438389252537278308654422599957703491382298681602892409382445398022588708471808730488201374690168538354993526393251838753707831187038103289428282406977014406808573434607090264463614044102915967984571245533416896260749839310331840410114825092046095167106218164470711673954992427331413716983277724019794063899650861457055846180215123953291370180958070571617694308010851048194021564615757761230785275095705629711799327905499263639323853750449138823126842010278429200358324747873043334226255351699428338292136296561334991385903996312948761739653734766608372636002568312038395415810827339311678775085592337062357092440096763638155054746111303758111710371748816356992882517126730084735301343220795286207038610401164934647998617586969662224678202859087972358626377370070433987907787071215019755412906759953728183098146639107590942507822514909052006650722266879360562270592186589240937178776235365185669749420033883609136479624055015158149529365867397418084993057482069307715184313820260476782861957924538989894221676498031031430151160089127316007379186544930472669510973360114519944162363001868499153060209602192556264122111697342655001827756719860294587765161970814522105444570490721335530471482823442309114817853777166636949108007614879609192713054147143613223283386845620802167834147444722153175326017387696772211007328153401414198041984760708841176667512670443950158512208617052136287858567912274101703312049663966340617827886166444028101744924682364426691042421787939918429206561087950495337366519931625616455325341755418704812623152624611542787647289297258198113004971517512462587689344598633448464300245877508276701275732535429827310529279816918125719827063729458236435100065084300945248790025190984773550565751991500922214989560943033786794447251996445405401612399394336795835100132816615893516897396478979566956975209863040806179758079904613238263987521305536328990278085501239170207055884245922881136563732764590085648986028887169692548835487209130454666061646006071829876518276614367329048530029608458179764070795434912478261300398280737372046972303790693890240989473877876201777531122256269130747634398448489489342591049980278279810362611576898973396430562115780037363184103751956734650365870462719262945073799460045818545172868648333488807714782939847169139100621327436024436455968893287787510277972798348016402683498854130035648261562252775597805828494431267085229473469801482633538168297566913535745225289366716970470592269544237319501228689695497449833369473728490224489357631344638774141736328099876784358510967910014741839697423265931335498961513016739828203854998569894169537383648189165461724076657317459977777348365180877872572113621715749189218453861650053155728929106685930278321478881483179598940087751848497465885170352755014624477785589309240682716896536462546373718828155631454919460689384254824590705691875219390616077856685234249854337663274376118619451215716541144886143338316309528451276405517889351689286238755878159883861039293839223232370930673545728569325387940379949428859389874533104166391152479249443147884051008077811410832390712955244234218526129629614280291854354818157320064886522700067684233391106407331708392351487756416832991170381682754392419101970039384949184807222730675947998768308100534251410319869614404379129078513050748050817212075484251896367580254815502335263540753295189125435689158365972593855378731620722752847231407219799016420389079973025872172965467978405108807766053034402194504648372249740040960362442292006651293164854316496668836200581616190907670598457858710652000782618997783485069301004203398455028308136080994103260687684258205219474806329452755903988041557704094623639067493025784092498582109810446824568402842087666085381529817644340013700547815279408830600701806267105191545283082708489474882337336087506612409625794329291151838038290408168447544844295690577255069821181255476416654764518508942306217062866102914156106196745776059841846614363089485045433268346570689488560608278182135003454078580264234351882501193307419454857052076068907757277794754329088730689302759566865576159426783433987191616084893473115954210878996323849669096738073842632508185603012959279690619011418066772312501692375408962776522719274537700329834774438332754351416271649988939102578173903924093368556574951800171262024012381764237757406999889800204546470258031861281556802466134026708387510705244099580164537850248301960582343628904425076769972189270341813176617498825348108429208409787958773415685778299672616021119356970241114810802633197861134167384767173370354483331710846813965723134823942272751202041575134678254722751509281629674238736247140538816001346537251134374983593431292749127989940342342688837972202450376839694962007253879753911261463342189803506607380796726986516976829377171930697991520557255390868620695970383643879168724760242613950102667452454282040752365896258058844144579839875009996781353278442755046267992666359876493987075501843960442128682224783648542106289735148145044115552180538873450098288137825980687503860052337964911457373645682707741435172140176272276688596930852963616415239964535066094445180968672187108005006176308711596805102642473363607712449264781407455893718414687657706546473616906985956572959032287890018058989494294733022553746156012469025224756472234418265328165816868753463295573957403473850550139963943269102762373564714494980366284529853494962249903640313388291573524913556693519565718259816640276231044922682629307322066656098206487898832616668099180984907279581919433098684052475257681065834123347139058136320278671456308844015032926236285919234765163005317065559324665943925508397099597149441959278169041599482869577615235453831647425284123691960120243178859213928899307335986329678511436775947278180667262377625608290013056107183850092352444144002737370053423884449746455995587185031766990167277212079499587533636711104092713627700164821585543997435646291296962325052803021576356962631827623510828129256115626837851024863528936162909864676717537091531763912533091097736580513629024184362862088235091355422235384263138561730976278900742404343889799387345768161292181094748493215693544948252677027991740761686867527225181292496987815795947270477475716619641358830465068140089425492489848176253513700980741997708814560791546542314120458797069402902135163684501874048536342951195666611234934255371497439408779549200757223997592296107899940545989716500902206381342610661804094928049679723495795836073270831607880349755546685306248475482044020391714258490646650161810983040748443104722912301195558194922070083317012379626479757760338322849709500582992868668095924668185750289559529509474795197373404232681831546212970028300839863511419054466242254345485624720603202388869679234280752201863984430442347575593205717572983279886050087524770125648778124391524574327589197291102231952826530036698905642542261102281104608115820199235518579011958327906141985652723572828893989275445841083643495084015819577737745024362197218777649724711639859919367625134943124273783546806179788908894484196934485547057348808272508250477877406719633738974243921775321656787361657113010934834407487011840051127950089360420497540141190034928891868980476868479663262967789303437127202635210244171982231524477638056344372063240619735952737085822816141910808138596539660918344478133709702859077509333722490150270085029858259464148321693231369874525217081215506379325884530015546453414046450011827884034153877888060339679930447671358618338006936209979204835873037702156975139151021870657000931984008823887325406458793770737897642507415021923900311475175432426995571460080538874336123694523792104267598684721307027259957683314822928399130739097784373639254207215746342446347136387944926004537510393130710456248724170006792837941846846676192203718356419343666916962527470308349169413040716449951333077265613644668584748381191246492829154435692182071331346797455789000640993630889758202914819915578845994985385674989716808247323395863324621676322667924625877986736552569595747279464689750988473355985891157586863143582793740732568619831629371756929194838657804019684534306840952684664470761826199752436274241568895521012487022179295070516370454851056916401257168633940703946215028051932899263709835712136066820542245876398716746913950356702749464014521924568545897022493845208416264162435307564853714022542580640385678966466779820597346349990977222011004567435982073402238041074865086678375036883125412062389155034019007922875872201967652746650616083645395914772036498232868414309040834415075073348121743789975931226344670475003694438206602037291299242896855859915905083050143166120585363417899155345279336598101460479102754896673855040303182274979697574375492451164857346627217259806825501314088829958766708474202957889617387867884389535402499565909685091440604191738991441026303596213117077815916082002222158352179646184154514344337400439195304222238290456255904440845737875968698341520414603435622392070997536544429206965553324502239784659340738978873203953312070102645042206806807683361844022966459734763456598199083770796650060668587120326129781586430051338638603764571877798868575110177893589138778624190909033493185378350003589934066144944049625786827952779281166732258783572715895885194264278441561735242625756238931832719686912381104892129640068623263260474670979666189855827745038255274544947777825272335143519109412691278478273907816484404412919713723378395818648299030537477205524110604318778662082917265039994325467865061460327633058604741142744565310628807064426460467651243482074345876195098705809498748517030189798368891124174078282093017992712643453346838856902368307588911501375906911025785360166038212641746845839412573689833538257232336043751064178707832480491246288361272909332374418950497036458928187669826270235744953232361973540685012018499090378990136252744838951806005954120482638663707086141765157315973136856626170276850325921484683994714846743022191673483996757256263816005061299910745548293926867558873091851107948245802848218767981797032991111608057196715654723828335960965710164187776260527193147614587081087075280955048511369043526947549737701800167015366236986812117262265491831519573464824740817357210819820350172503010639642260310425451964894657084945974027936585724732035901044254118220488501333265782601714735613905826132538734258610277327295747168419964106877723298941331090411454087207689760305926682391033507249751372235786351420000272315876399158766493268909633147380576878712099795377348515852575748400027956905540383302328428668920579258806044296949444034374450664585636862220461924837874443760088380619224969702041488863974782498836131295428611962564795866854933780469594826786943986527822557535717479888809010757273211809400475487671781400895026650323317767142926126668374528930654718649399144896099427425915086551054867804108089748178230392893690727594100624113247833495826187990076125735479863357108453345077902423236638875263267892761729503719030993977533407278360151378781078810489582618522909193077992512516121722520047451050538410090052303870084821315898163597814755029899623360481710790238743442221415475501175211885090359133880160025678310505296639025108721393431966636776334673219524702283465191926525412234680390733207167384124809989029014076611510982186170342633196582807301533317488697152713917332152809384782051031805823474585339431090822182061716332766427856766723096074913042201775644549107406551139712807989043772491380885901135480036765144753994069285671106458633515233451641236617939531622204551261977499542147492185535105367634757374784303623555758817462262669732668827357791657872702982922290965614717066674908074510762834535848681062431290003287635046749222071638044867748217956517135404734872081906925627025572838450889794798857633531927758068038823828949933548571528072390147975167679985326083081198211068627149386127205229389735430159385837641032028424858737610588784331220875310952471437441280437317569084858863583165774986888031062805743704416341242470143815470855486939445476794426850134450441969723947785696044412421197733995086260004517068619065883720554302947227168451119737935306500150513977201701656534859660047842493554129795234102460670888945516909140036291193233849560628237285001347656737286082574110818208025228136499334343057194510487695767193103365271119038335585096006918282736646239020184152744858846299402745859837623067884418937609362853241764168449341710625531740316208919030301143021982034942119058446063350489266196746402030339645128690859179279883306096905279015343502828613247970155623563690300861423862910583814404370277382555293877012935525596737063502283028292613739382471281415463258637185268738438340864551962234081862086782950512381208976975718944798721035211956191041650799013569084663386028244544361545557333570009839682693036179307742867053880159945464506216650027733389006315307538965487418552191049978724702331470607398931349204263178507761682411449304301314472762749231562408833633017181287695632179899700974160268240006801736187431494361148494248131203503102406152724262712583319417890495606726136487645097757256886946537821630892258113553381610832503500078298667063659220787002395161310042811983499828509130877081822173139979244065093245728697108344457200793155394324542562983730602764029112313250306592544704700458140629603658738025855963900806882660300442139414255075977040164870718792658821395765491362518240636523632335558881206054415701178862378953888293345168110472411456130905697853500006139171998874699693783882467950860238346811323007247594304985311907975748645984531626838631820592508617485578540001580645953866695865665742822529557863049438039807889136504609461586800524799147115377607359819560039651509566535253739335866010787364153682532759681409408746334894351780048645181960302156423597796031543357616888372290049128674620326159015171911827296365701793739529868752181306026361941881411611499999892910749388172838670848938865780378556743172136504988580171100536598584323143299813775410720190856603143714259924269651001346519423434361823406643908697743908331223605462116977136862331878549958259684511069992203741256501039183073523000419077466183184493138050727006944915866880809390582479854366730903381376200417203593413537157180108076100598663749361627432046752376618645454776321320536540283457312468548810688791573077218702797770035163303884143858087101772809086719659969346174102240268839203790204512919753600511210875897529405318612865348263256628112289778585233729648148118559211501687497116636464014332377775718398105695036438295708519165951370598688909084042029694816308630618826107032646866979470122140878005478545761021242535260915797450735189929042306571136217932818735297102811657812954137433904478892313256827140125631260261326595830731478895340069797215804323698850667216232536359832118237320219371830865092882027499377580579466841056929910711249400846531410866909585321645859183610825525959889659203045184427041059609700989052266654476572011288483374538407553739803985920247246128929547489465979854824011029591276848963523497878374263685781583660930585865048024642691631392398036643667418057337600557482855042383296374498286215695558579458274091155734757125594959589486747144285233723451615621643461626645973332982162793595772596957654528565388685485003797361555639276433813085731558486019554090916814950198876994447968246544683927236174674181561153839858896577985247144033099924939165040554054945052678749427704622843631160393997005723455527803844909975841346112004900492877968450787220294288234051644890791798969571895748636476510897270005390348674551572601550992328189422472282776318964911160227529210824639324163035462303631198939383383134568552630927689080038888178187914570696906355083763355338337597017609471847262223626231971411632856696964244967460551889490423934949788727195859310588135010142021957373605270400295463686095769100002967265249652698497963154396902252746240467735833399767499681955598686034704368643812276986700578286940212407947135708885457399226059988541145289810814048265586879131161794121896773271160190905980364245930040387828575142661359731763418252059173292753957398226138174284313827307105049324037143314815408021369825869486572037962719690645483046015768348175905668029302561745011232564199491070714406767113012155202557838339588015077812861392800736070110033705231775920938110660783453863924718211598003889000740826817151561068132245735118437985789730903600117492469990909027565387363971308900547249096121430260155867446867754103286584044203500399424515809048734420087383516365756402790273586952839225020164734365167732988881822437139681758743011309042551897164655866833260073598604893858293687328472798143701465160736168095193042695460962885858876378565695228475783228491462203199275831432728448867619142376964320799613689384244297426454146768868953600116963951579033561928876346312057713263065451748765459267504126477110003337902285516473979697568491581038823020882751288632090105201451645448459194972609858555000194629290255955887415491459598358984422168786898749227047569940710134157127991639667321773727265801424570941981499995840765904522990802408348037555349236230223493486261037396776472709405325877587822559063779226663236505084035079930876624731116675742295511680614524845779290684647070216596230319919244329449292774004765800781210437518101322245943974422062801157351397794717091885789297354648004497613125538951117274670287361769884956542583793778269930923260246239679126597268048871018569463435957696446355943273399106800680250010898465234226432390498720988258461545778966478553157525695522566267298584441567345047341875815955319534494930222798643070153268341662755996164068330852509253512037349314586338978109838290754356452781615068116418857493130268673581311749055888150027351535631075048587747236164778296393446853387300041125672404526233260922295124155262779688209594789020589049951110581084099631311132682286495831226371089031873575032600772990963360466132106217916430122942650773618438964632833544943581875218241465437863217508451063977492764308439521629607260160603246749212168018522564949921717898032495976487204430355681180540296116236452074358153698517470045327064522933151988699769595881948303190098264465402070357205547089062998538475951284644813243609955357736801111624402837241264857557814184928431463311077704340941337832719102431695892606193697347413160982457122146060215952316910359641216100192285648611485681760410425015605999402056266831967442175677872685677053953316593710996927697781356225462597922796251021918202375992169499279895776097646010630462612282461342364557292942554736369112050691962809635871678101056950259969850276560613888831035332440702936408705442972595280952839315979783783433452213355585035021466020667979422405672549207457941668431847181743882488072253892608234459198581795850955918270088417484589597766215613313788605629446316350737056541767465853725985231018985974329566631408340866582157185570018838848999278034703942797087328834094975973296750051154117047204735803349556988428988857959629364731141701708595400861400196946207571953362578921670471016332614407478886091056218521822179613029840094057500287407027563519278807604680419003027240898591948825325194814068654936241629124325755338684193549167594524646526225767184767375856213577538557422482418951516947135763748313677851651650458067682201829397859115698090060311650338569080720205232427124750741193187808150636255539092118325389187895838144983306299920814154668296186418815018701722969888198420887022518219263189885683801234369768279608497418942062430543515928293641461811111763039268338983647032917697040543599674545955778254704197617050045988329823005201522861953146940943133832664797723746377262436705615267229317842495295359563406385211675509650682053405721860147171748129964114705836623179089202540033944703164032351302626059266052206455816116413026197499613980547212684504864129847054947306981214387151714027440763862575029209091646484514081538792538495022294314995996801193756422641343582855267088516722947065955795230316752708265187003490673075206149722332826251385528551346903989835587460134158524464400156368258993586952714667141499815066820631265904666500735033943342125534693519701600613637847337653685001557004408794104738583742952767469298246252712745426480628430931900823528210985651265780227730034686617090198784656569461881840180842301716389880251671962835547176593039372026957259989032134372699855023955601660733242080041242164776534912058536601117281602063961512690550994958638306851311501368686834118460368081232320199559394328571230209339332116148594740348706696184755900158680967349205753355084432790438228437039950015178636122563060432690267490952800482710266012881083114008863808341520919153860009865227343231726235418039439651697408249461543909854745916644785698285688887957283766354811996772621843927544321036835646653548322964206447469214893890151364712475516485141930143371646960576601893363670415719543990056966288477881741737601924663711853462764496506195802383792548403283024096346569225539583122746543090208534632444913871395435245599223381885303980492409047204374118845549245948058577986494777111953865210307343794100245505280567020038185977975495005985912698058130745442372354234890394276799496657833639926021348664986667786557478991591197349654146688834035845108385388639182507212782952272352283988666115276397530141743844671262065036465948980451747553706502259436637617738267962106285852262594703118400539378999823986106378194740416218437273178735001810396140970004106424119827241450751526649764068844746345882606329184970632892123932912471941675062793229296422073393918723774144048344165493406599489683843181647544192326927719724894570872550349469733484274503462734124481747821059090809229469660945316521599300029506847481556448544282860711262560064318098928329663487343721256355897691444702523729192594476093409387249226897297966813114176739805432371268587286167259970562604184875866086819415346474317525657902341550055755449269022297282762622442827460425836629963275526303834147546362518076754457370289884139915929994578274380358046032811939045432730303597157754268100983337979420822755093784226661004249317137879672281552328651613278949409561651614009670604006734954275022109402792455238237476052945870227395478432696754443651691604961882554087077858886550958328050652882068850294093613777248261577994422154928815521133980491599907192852138451817741181430351993375151304965059561656456158038553260648906888335016330547549091975102306246552389851623619805322004409816314906371368980128448714495699514700280158326289695224583068477034362300443782441238346522618410396955450492990381126798889672183902308055571380408191850189010352674506651717951526216852331517083710647561921540653941636105523456121436169896724433502781107466667389814501552240195730700507709694716424480883108765270890068123562118553637638088286354627218241754469409077038598875577424695469979738041100358347227534304983108552234304243741842558287191789265204555952790141090480531807815639186977686801449245975310586933628571326867125927600680224719827296073872839039972562719443822761655830985906717511973164805757269570113392077203490154047429313498803826869349297085330970623670259749778431916323992675450269640889285943228446560469111206028676564682858294441900328425311895569957818615602409414998452244763155284286205304795846919457263592240698437707771424422731485169388535058869811678046228376505990703666353169568639748365525847597431473764072172563200190588701713699898739808297253986448339808862804888264926836775090191835842389195579049524018024398799198604107686729991859301191845802242714546796322319368912250132968973657249270254231857669533065493544931966290515013052150960872320526344975237593814203244339325899471365655585001286245025262896048352229700524469779128499454630098038876561612422341920323819313475276111473254816708328269124563534264081519797312778244586724124949215895669644080565728209107686515505439523097505461105499018263688932861484047647678003999240877410294539591722570051240957742208913454420226144295262285220969665207269910981379530857515360111865817660595371584129723499637773611995508943729615482060715019716653282095425506043263863476474046529154710243848056250285618993695323957911072162350545270595112632998802405976396180934386282826854965872779530257473315143073228959883128820082854412749175033670379432722419157224231196403659717221086016160255547228634522909606279350875208370174929368414377768660999175980956193457736008705370318677938003435164284419790608020422325267450811706273459822615277967042433890489223447004807149899817172505122339912725043371669862643671071057093262870533325619146016045726055183854292240266884636492434303954639015800805579916232575537522535930344465018044587730310894134820846993755514641494134783000316932819899795504288868670501112564429195522561203735844841649098354268243023735277372992784840870356971541384381891511538384500050209799424132708883775037538429851282690710789727395844365116440962304387374972289404521347082260473448083297995353020354633766521115785051887299388467097382588794712074285049682011180980283165639016771416077384882296192434543940714204504383879963363830423377252156752913275405805751785496971988607924674794102956023117247852212311765774189360924838032269894677974955517442148391668986946526452122155724893693051270502692603572329414266217081138069507988712198387002425428187785325398721645445760587335714902091109015756177664071710979517446623181402000889427651632107610634642676900367154988517466722027650519386060052909716911707091058269660263926547572194371879783463134632820235387539853865912817221916363079163376630859598809106698559339556799675419700714912302450212588517806780894904663592130402247934497188465301356630491974669092999756563245782327606667722102058859272217788469534773619997529077473769828709560495379016719223218511228630341961382608974095105462833587347828101196665079914904605207938610148455820883859936445245168650939245960447979624339825071144727036671200158695925951197707243984523570276043129905106642669037340827074626922200290678429291223590238821931234657862835555281680734766607288929552538020929013552199580271643213204686893968583199470510176862527323803598042090219907882414211353849211855745942924207434688866169902921044154782458909655048021525892802309439461298261934687035986285037476438930005942671815120154961935370257784546489712404989479258776684905602273717994547879740941743207199720205153103479886470206877151396939925547764030400728101102507367236300047797785303998020390389368743144697985850634713576474691514822962646044095298702290551856895118129772620338807528480866570945979436577655575348199109030534787797159085565120350072838063680526881784562107824551073907467668243380325816520227219878217849653259339001869213731609853614755349797879563304600680631023220230536708533978044183996927291940067744612833510565595784502433264014141199131265486308222681336724246442270384564872651964748419998165794763897410031859828252716636529128659351899312373812560449837391103023000433859857017355761918217495317595741810071147132602203938445791967211815077472621276338750967179116463071813400614901601938518071700223300759750359486060469303203853878205733101905583369395929454493592771553605853040169055635201409269459411290686493735573423754834164502862865071068780652082846813161120570530844823274513084560277277813197721600993683756673201995456333606144300539350285410059631435786818301417915738174091994026744528394304681741977326043643523499985157196906157761106932205210718603966191045133501061341535220918589797647675163298244252838541418610966874293782975602276935870364343748289897471472330548459883075473004702479011312042779216275575428817100545523937633252674650340117009836741239144884298135436977160304710898619248154201246282426315503837450551750634708207242948645607829238368984062082663577796106203587515726079171557563579330073120389648677288987665934953227157887548047950304155083145601496034204430902440923435545104137324542767351582483711784675053277884235686836458614741935097191094240749523154335724941975426382416285597844752536294868852276106103763558015506381130127129420937890635441493113021210574651324426491139610467855373797819584583369851344254193753346905691537937570538259684308284138870515861440972330327258340456466371562218448926545334637596689300900083690995501351728832710096821417043816007994787263426450029572259584610145684582916652409782998595161737501634313134690000841195131772701317233026417545231087242297872818581570494014008093781152409375157157986171808569890854264997206704729829929145711649869443708651332986747968916909277315544438194219218016139774256603203596370417532081406777094646528841623995124435909820610409444014788392500932484970197506245940669204578385186163162497108023455917543873907791011049218524264131803113549822038341155228225885677097459349829185968180147228626033449040967464346752770948769000448002912024430947827966164967475568587271502432664227209224010403947239559072147094736903368781453768861598733088315731777862487520860230887556452148951177372322214828644093535695769242670454401135527752835257912549177892623223208948618502422904694797568911434048167150253744012577577110768781620916426393724494947525787835845084279622471933609010777810977455749272602322073953279100534459627372084663878183912674013216829864607069513219417452381662467955116581762186325317082809898470388566198847485963033363291312706583935600169093825265120132545076537452855896782252812063640705055139742103546950653495120730576143655512457619453911940057203505813011907274815619413916101417326523845456505299048605380704775745277755816623956697724733220597457650791024714511102766064594122272003601586223495556580173578705335306757101248934593466260480511699158919358389490708421356495721646569902112755856288057035188146752511664011894650819800251911056069274784333729141254298160786482253561322572285940099401282787961781159063356959092921552887720518507258329037825775007215692424861123333994305594901063311595529356549216979433565125543492464362255544675269903017129740077228210806463572754678493713953358033168521813525139352669115566518879978624905340988254059609548267628119439199249076771111533000353381059507013965933813503614318761417459033559600750122354977891835815722578161215280085461440265844347043851996101387277963201779016686187751862228568146169436810549170290468437211186649479624105595416451320806337988091471058405598828200293065193408498422713381675889307545117263310408710350800224543969237664167434478474419810138022859865230912160711221175843419348834789784009187813054224670067369918413888838890945217097435171711162751986618879579284167308112333439158481980133876117279141511871897765183920092403855755887782357797918607071170013932270219292758732314181162904031934346473345380423729303691092851699019995734902071830297087571979373227331461031237636040695030061815078450087989294077094099772132237886525141374581451703426459265084220920669721256191912424688355020326842899795402316087755274524830096209855989572490017119125897077270375621547088314365877160048456793038209816244609870052755709099937513785869955287454995488554555476917843730918620982202122742701307855631587392083098744713631997805446851634136695760755825446451253000998399406735451690730185078585227427446962987522431124992571783175111562461029100278925660461462784831262712128836737192836781363409939555016222137434841501178820843998749207145210126070739732767080218203196920022866816911002302111039754303606466886822449586640968301039174370812942479428362256000056777066023254646182796332930348017225897256157417437548294368730379325761277113010156281642024939860074609674373147225513741544278494762035558537704012344897289426002408964230369449081688639510845593903008621562907822046678955164381017976138156424279288272593571361002380932097924308467706553002435760275347058583281344238389304380926334936905531407503767502517674561062091730862643879012499997629029787610787604981953973429974562214600200677465570234241347980521103122765775249719834553690776087331843905049408564941549720413350285298766329118502435712258551188703383223887525990822047855887262995702704236191417773851658625284076240846897498332751592295683412799562405726948246586656233415365045916529769466464851073698776079069587914453133728346844294366853988306965271499770565893577692217194051213678481833342656836847336758629596156580394765671443389159830677772794753660837276044515850772141234344517332666255133803257194069830110002062362188942646595216791448484033940867846207244350069868687747795572019976784149021393344336434859461292218264904957748904389597910838653412169361989682212884566389333775247535493914464126016268641218203726465769279466075683614062924248261096352912898809026029977668009029618353012944136768256370649353128019451091376964058815746563172143587370193736138923297930804269626960770983221904997291553525389463042869849303839882116634273209675969067411603888192989328687076592000443448340766555218187589829087644240150664485912441860706118240192112248911534283161603084636517738767116049254003960949390180157195703793743533391330042554003887961356107230711245325266115472037167609609272456715135451107434569263657338213115966922970685460528500178625042874386838654741641752724649803111434126526758252938419589710546141887831785381477115559660131364420583816058582818943270120232340649910910626496905956462979825719695641947761153295224706074236473445511377032574240250226938973327667179559136338655609350231495707642572281221392702881303694643336778671460737188674082692472302768095227039113275915695619916966845314235016875041399315848550851758631320276399814037827210352987945689219829590396386461747503294260452355452383525466400444096061657474856529552677921739747959751210216615638755113923321452804558220957690947452733605237373377790192395032038792902704131185957715253209058489286120473652507221618590632615458096806329076212007790082459868707367415027200021171800045632159511309428729309427550850453437430991321101575994213220162611983595646235353930459630342400860896918121824265954363866985564130639253407380601547002344925429909311592912365555276999580125585780240327968872602656197620772129909477790111915258752788361550646140926599729751581026170194849456846411258772508762050172617360158164480189348906762518974617779038691625180529944981080334341323166982016067302967662330696379544435517104860407498234896977159166702145530356314374363115214966285060405923353877089858633436475151248638386635954418890606921227407766278318909429692628975216051151442330728438967564358249909252333514051994920088256582169157023993933990894062167747136340224885401996977162487883052923904671325413424178780356653487025658166956930063819320038961053661808105539783753925736171379455193741893994800077481281470977122629530296213948071286988061250082299106064692205761660796819633195303477587492295451712426470984637607374475321636582135435441657719654341518025279288155482489605386181260983726863192000749288456124608245014632735976890914290191844435731495028940351236438473377557140678237896498879270373679485041901001706737235433546497388673013020555655587690699061663876185838196212371621001508064424378833892876346346985144979005150107004588164192905343589806144428845959505257784830258812841160197809021768959630348357499522040461753334857008711050846812854962929493592663633869973503052131709769829989251206060145824179093724739582513208773504257954811942985570724654012480992241232337226071602438893596097755856009096097108296363873473973621685429366350592779284272187262510165236933672057752377354296164152929932367578525279391657799676509833626012142816021022701126363878302747930297989289553693787324058467384058815509999593048334595634144962640924103397466984563747565021071193138022646116236176145012712356848963487042914171633356924654059494311196466588068620560963585219018265299498736517439573690997448931994827584425197687194989284021404899783723159592492702500365849623229380114952230172286791753261439155771002571363998093500535373172951064494980275832160761420572714760365551039709167588191909914309652344842985069524411282138524265818672791963626566973213606676743597241996775620364814794190715046539530354653031639894582686342358278499854860986738446186593952752799095056392166838231035663042038477485698219515225710855702854250477800451293117117419538053616202670060767171282476881528157990092335581594708506286564238002214180999202340739227256190161296342532868372116200375479679986837385410878390167830559366118066777740277424239019344946513965239113815540297944696627184988377908065960157835089661127171361041678930777069608530630106200981645054899278779204921247744970591998717934276017444743433251557504267308757522299824174121678039718978923497835773664166107496832605546681429904679247692976973980464856289329785655850002443774398098143301778021227546381524331925687047891291191294057437907360893844754924239424652017648438011204475532197183502150921010640578675350224620556906905540481910180685143361512986536111083961641628199712974802802071841466065835377328350197599392041469042247755037477534677916781392266984619771205066255726585909592882272911431025355007400268040834319030254096220737452652556249397701128341098995191445224233522228712633414061653238752580033337653456712568791643578713983781828091980399140531295584138491885427950752617197613214351599217561385863486816194803943694745922588541183543811194865630488090861450976398235192681209914907295699878371281548511685590064381896706391832478825541760809312903139457600641721811596636084699279713279539335091270393623183831796187120199902535115248604237824785506828220594019956477776244686670118765648969811759953282160004082330092099503072699059015912457789118636731017617057245040400299405594059014315263394524975408268675051253705007012002246416554347489748947210630296956777356851549128864021709658663057374477463138459111440914594760610833634943778886240743452679371007600124504482046090019986889451394949020547588717071294361294004999074890282038084179011164422263780145384575587805636549500948166163951609599863113688321641637131208810469723972765217182080838790408627969542596286819543256134904694127339980619053098556182009455440920819882446872566805925834088713520540255145763017275884197158170981870447865054983372576470545721029895807770157613684362791142448356437162077194503202866860911839010957668209010888534341784662252031978700943850196494301744048847583778600893865672716848868288263624115379762838400454400179702054159656202686934510986901130106728337593551113973438843905911924225072563478179371026395316848776508506922135622218268594658575847431742314999507730225834460775781866205090404864188818501575532922763787460409228012400331975173201423284963368866398315411310296806678330701670931092184411078274045929885744625804644640354006952061015439828912667997550379376843002046134540879680590923123835701917145838760427807252988108115552599511972579587413503670820153041916473083710983238141305927961674172154307667668677736426236449009396168935784576673822004675507457503033999392330897438478890397958713039292404346848913815912624179386173563995111625434921120748859383376347565627821280792517574462483724173933017598401716531916292771471738431348604024926173855688183311971750974444926392003719163975926648149515660177025173817012328836444699704790556074826789552294864565225076928309968972769406142955331001970571855787826312349448343876508041661655457344575708905492724133329792499153301013437345136486958088129386344529451380847015116133774645767644105233160752514000299307740801176711076732583403555348711021064234852590485537901931732049669413456121853975647924265000403797315208668691672553459607920630603136774494949613756331762663840492744081081371928474830916669889237880472611625000078710324930966819520559319244255153420432245256775732274755628537359116473057428103261848261227848511289181893128762558245221573648424013766987953290775294052289556325366966994303525370568188392377175136962082512529910717539065088434619217815796632625750156093319789327530396558540376643100109599750073046819156831419961888737693730854862841952908266590165797412529116237410401551939149739887809605383995572480160710665022002281864471945239600060946488500817027601940676247241570212899977406514413975579690567692683470017743606224161795510677647364615764772811035034031165739321591700227332991606138109665435214945241366362397098703047474742980799562973674259528783849194244254737357782676595228463773221822825244931177636044585590501811421987740506522671104666782884223793660076242905238507991244355420034439264705326410807179290868485122046396277279994068920992199410519081172631483774961028663323566100291757010402424893227597004468260878550791380243860195908297745885255200587620437163772099471252037603851423910582876991813117724513963099869834780267445167560857720808065001586950441549648614096396106609192035214520366964682629579435131888750339747944350817719273212148202174562790995458676262098379757256234738877124927469878429856614731466025036612831063602926613066878661056606318200985945278655045071249877422402603132761635626962276866335025022235556339045420958995944692300571894031743683584385192061265561626545331738511171949359340788952362073847762529502413163362502247515395173972462041099572278841022309878729818322545930384782555726741975699393359762779921814778346390389617852808925103290355912958752657408380194836706218591955073569095927336693373217675176186342356807583296714614772630855906461068919752971547523032084929638361594133735339003074612550135891979580202304980465982837033916700640507115924600586445731618815941588970113550945623957110324135484971184233911853472773710258428684418905911217927742025859662603161903988033028754789537975291819161589446290432046878320962449534542911406057504305809552728648106470220008166808182311424171979219908402365487563500382995257653054088471873189190344505156378154396882402954957426860116255671394688430401280664263156003721535485048278899660926900430126629748947389629602116512376303460037999054079653566386085002081049776820582474844588125559502563953605455219276626747393574044347749275651162481655003426951542374262032165609634486836074625575872332019398218682814720498557840085706039076987817438702212281983652986984847077827579147124732544727794282183373746353004653246145850153393701249094546998377909413688199834956594801410456031561325417112651616944632248865199716274225971349765280577754916296896833859910504205936538672058541097136726923162559376883760230974333477322120411594363671723356451330083465286582416510995150937794550929533620087730797186732153380219017589583130995893236509820140335224195800847815623727177960296773244444572112619521552744796768722940901005301080117085356346606384691827043403975901458667155351369628184494923657376606720580128852780279875274400750048503065400871635624204996631049478834969506061426750490442673173845823784172624278033494560384178833028625205964086865818975276462606058891334847620469768289411905601904550390122103788395389217960466190463746663997249765678500975353191768708563883095826120795860109804757872201299125274995955650740806574783308331354798626017452422817055985726283962696749869353519093295942749926757373504604364185285256959283998618882845470759235375583273089100440005789795312845069797683300080542021915383496309052686795522887224999018370734473932849594755183938661215472713155232554424182178061444986123376610735067886015492252096570710123154435559171213955758362536685490131845391593980762056902969229689093574478074398888044402275843928684023321260312077452334374028805062921919870849625499442970644209858976252815632374458302659705008012418695167521171661752039537493615813160453492883790838635978386532470422848611361632408132551679391838068165540450943816105552269115997950747864330358671031955520190447846445525898336317215307871789992438648239895025101047615454015364017762076538587464486642777863448976007428286587468150835815290161396564668288026158983751035190866079106296508505576575366733925770500270788033367506117608196738214645655446093673513272077598189094574107082575420658136341225629112834992562468088647434462169077881133505617929273532304468911885518286348384430563399563653664650306966358922426178625681499957133182616723199036354417038503338836230616349103532302501075476370261585758621964306001961855916919910434066089279639210038697127766500900885257269647919559038162837128757052304409233208952950629342769944495533735977260114856130610276523253695936366817386738500946203780389473701773594164956025293011901784694479354316410974094538375420497570563542669336831707781037124187424757230560225834766453169721373239780695932228816555981490850377246374395060559924243646306287396963102821241246792673106735948051819834653116984138733632985811895924349808108001325503888164838342854994463795945548627784424492248842625206709125271604240260460085873151740584078331906198699625755025847306399747655671320245016574832965881914575633769757927981014520067436062482159595767605013726392930161770923572711242886929473661781300960668270494931959982360004521751527226617142561406996627708976502396939965932636281754651994976628090118773474948149285823809330905171268415743585032991340230117693574046979518952915422523144428449086106454654811435009854764867049341414903851370606731292152532876666076231479024764422633878586306403712186465990557211573258711452013604148073899744136559634539255491249283960190500709634028896865393681902077523529386627347754294318924455181973181014289719202273404487282827492731268543832857825502319588280128684381392928348382655311867198881021111416818204381629213640799970776798699406805899568964183159123963068076394227881429553812753581092223242382541064105633096992522800339520838508825393946709623177321573568177333636760096097305611638926684513505747249630995685466138329795640052232909259806358017759395971838864627885136452103083734849193134502886819851260733174294218746106754054213722930328290052135904004557916590652755441982460352722574383404056786523682515580302713151066310767180026293551342218749779567535102231028767143226989894091616140192750278018884607093178421574015162969212160396445120437260295368242846898695821084270987938854060031720015023011239186892322459073069986919159247634657144211681929583262105551850997815661038252269349871259420032281106084142485441135490903167053630475566951303632657664529623353914847773800203097758152103723548764610893847616032262136605454998335055844237565314697738570190012299719260251152824654510765573496504148278253568128107099527338123350326015771125553405654101200731112365068191892129129609663405978625795956545219937218838722468778745325313210701647879913837207604697025341888034479013899823192202142293675938242303700123378618755657584104110565857631327336023467047937696131441929318604813200798066307932372162101935980907469559087474315891960234713942462564347056197420695843391965483047703878003794763562978250932231085173614126196137114252199334158706502740501626491804740309546030397694490936903070791290489441217988690837885888608134870985429541709472837079679592819729341174878468776122749694966490451659973916336971295114879597758717266895266577684520985111590981654112885827521117877828341505077948875287602752002390165347691705439488768184327788870546012880957063490424560299000542434647283349043183214923881757404441455834294655079505811056391514328938633012311296837797040945612429487418878524331719644920279823820837174091846481231727161470508264659287417351466409499133580853327919356119211643604306978441961761122921795964291164816389232868625538879112738416696035045373100569742680863847009799242966675782889108443074128250988416984538639425918462091888728326420969396118552209655668116098375847693469380745723260569266309093050284621012362351875235832182448760799183174112571914036250694135280601353524674490372451086174706780939249800832933967964358928436381225397639902193265465418189741994490596998504601899596728973554384706492617371181992414419425952662918317482813302366744629075243545026761175634156580534825404962026391087981895276254030130662130569327433189978521540576173001332309131357487852307816732253908282554756699972672076245028205809941253401766400928211379803447381851465050858108929704307252063347361383150438164322213135474429864505367384624351025173019673893701297626432466183860677101424461587437864266764490624563656385284929969297996545796257117476373638178316476392557118238963378136983383161298235061899285076186045845118606787849709277756799109155692624862043873293167686459476557332704695302628877919800875546072219372856545214364962978703774377538845581191060743399397556538957872296031216964556418349444105906251701929790329546381074243093202079455091833075061594947035324448603497593997769759756322343918059789118944115095482627174450247859339164287657318085445187996735990836910089973272637890215771457624541861521859856299363492717424662807470424967190813142369661327943332024117167446609676570466756826525917606821584732870015848243420786279610564941361683633893266095475686522344482356968735467644768270630899388856501836534608715987372599985561786046003987105400061379188355409736869658402680742274839202937974533363535119088615475256696004570532232568778606125278801336145944110220983446807644599714566743726378219738802144227897560329472786512766331810255444562927984514893813314748201438296811175606045650878034216447384807839111375099610290925060523742267826782539684464221147850029743363818414180707377913272978445434282787231838372040920147194453379088439896546656344348128244138171650020029470954405393980338506650256128687661168503960776637853284858393003218112340947899191308050440083566313007716324527283943827911484825599207693832262931348188087925905252103101821526638558657781969926381060245853747330744949059934590551438097393443737114599083732250639594755579355352770788746927719770161098305626746618315351746528427179183623534718594759797141065963745966032301664518143232095462979829403286502223374967050475148713610534476613874647143977137524862214495531143672107623559259902245807075625384885713808034037162332735046477840733164319177733000522963572510154374739453396625594084912082143498912935575656716683969114548936242464483121362239041888098330142288445554733657585214980462546674118227215831688726589001930072191189632081147737462435072776538393659576337481345054719202369224155665573699253490070169838779348550616429992056031815725767012024078559860750850109709489895332320930166671866164621746412489396649643352446209030427494133419373831495912827304227733529452095672557043669081262203955222651428119126409070007532944042984944112686555514130270186663763163950195986761933168096748592421882402671001951483944432217535701544085653633528200113355117063126653365011200086041166611273834903998620961356691521217581055600781363438117737842269879110052999188755834287130754813564492419522205066004748290456278244902154740846278549095073276220740847621247698541828361787874625497854136108432594270357156989249263895236139300498527783923471937982256968308361797340281349946387805100847719005508877161375205218403133649520390294465749363457975509470847495858161558124418953321580012503041283993133227781648038156221587360492671776079770287862996827555688969131548540843141996910398376381498495896190242142007599834499472501125134760429718580600932130103309252409485975941553123020610747463477338780660877245652891419207081997618682511873824436064404975428786559620653986404121618643731976474900782542942101018386582306772684820816025803708552536679511090592388218913666952529770089735926130415607562429107685727134850007121645650178805870329974236675149570129208465861610584146024518615761933442162342167202387727977468658859240400249472770176688891238452461018233685385760933621745069992157105374280161851351089200512629065777289277475517572907655310742601070367196701987457840264723818968343912947400398479048149131599111062640056459101079897166613864140099337270911115345172525719551949652889734719020639705461104700937525185148157736685563571181977627697852600101873500462361026564593080506975744311393484053043252972019387404413782371286626901193402086265954392552199846227316880161762227869125984777151099164256484082196947225124256541373959314655581174952008791148358274338349191988545774402427424131211004808616860403653655589988267630078180317414606805625121601115209961542280675312286859010135119365232054797611833174359694872420166437918816195945391907326146888394771278520824105477859778880242179039907573170627835986063779309034937889496430381651569043432660164131463837246416955934097065684227895700355441446722982835267306882073459190442269670071988415944590645008193921525754463092119103695521624022794889468869325412959977402134369347920771327107057484140133577942556885877380769240449782628697842932514698794417785694761733299458027862268563136261928485946604289519090274529849982229040140531459506458818892429806313144116362047521805057437382043294199929351230790051531912461390906117249887510376710917865071591773688772513302948897564350406641810327476191504422765466908620471424955880823802766546857339271668245639415854620983950153080204626652897030324069948068366687177665776187027076099418053408077276637886552863974452578570299410528270772276386360895938053449004572774259955091141811282562311254574905085694947413449619356808556709059914426853866354354234743474017339667968676628480740053400155528930992489002503194494197602782315789082462827947107201562682033564735266044467750775917106657234654989223440738107839340168318415253104952678875507054999311931345433195688440062106527750054296970478193511834177425219865495874500998851096687374362569579052469346590178404374847295118536742094879000935499158862399149926898719158498332317068211349214115564498470481943286160921590568234169413081716547494675281241288277503259885791077676285637847203757539790970739775448427175289024743601403874506696832918122064275031172301742391119874048295224701667302938834492291783553341589290053411150196085550066309659663353574732728396165218986696906155467483875251651744872392247595547849052968526715616566878119669861577693195511310658286299649762620226058175795912124888217968082894828771954658711075884611375045258632285422353874696354811823955893526027950620450843755889140237313008306238133979126684155500644859796332661675588220351027877997028807281550115331639935275420535500398469225527099096426395489049498042713410114950183628256822101625316514164443332123501487798030423047036594710388654578093482732188405924178680949095708338264865378727269063743392812119367283151672348671397538576840795603596639125340704985476948771836161410319505484844318916213947013175942413367684952990445791920099534000897483655438726302738255339245950732404590359575002746896588532926387372040163081311403122029978392775115139342877985186161324738867511227182739379461880418002124271837131165996158933966274273750313344272545381616508750934642916207289675444763676988829916243327357496737178402519400330674875521297655514451111459729549368636815273962690956120151847493121162187904853147954218645954346273227811608968877224029409862561085515970332787424591523001354169273185682203699913329204416099105860609148325488555886257276462677439974320182331415501910586553238730806534153606146172322736991464451096010829639276441837309839882403183153381135520005189471786968237455796096025166037779548554422507596731730152531826566233561771291329192482590612466855047286329560748156009440873631402493909539134222289474840532137626569798335463312929808085651317356248855337242383198165674745094661753263037539922597909055197020164345710802538421516945380813607208785264076316030256009049291727539982571423261234099957643154833423747607451576241505643242835532159972875460559156939337433351415841654536873318474624392377791872908291074760844754257738596733294417622301978028722053067557337638733824171662100988320393128391803308987353851078836349777349928195002505569615260145758390635201432938517662166486675151278243022216845207932488381973910587578308907008870858094956062815499151795166397564189973741948324234609089444547553159792392493034883320265092654994542115139884763410773671024042573802831937462434098030162102347466634408750655598435073845974412310469269194690318140393207538240427521117591087654319776655819128317924362604164052689818906270239099703842280914255487532169367032924269894046073387119225455065656213061476934221848701155476822922070328457331002208626044792188260925212668757233705052026031268033042382529472994037072023481557625696522803669968513846966282019780769212174997444324402666994172258443760173329323233324308706169037873738216385062595686732506493749736645360367108245031851264242348806100536525059860114432904581228539073554611073630752713710407095370712472178261601480522838856395549690479794069839988765358700358124882522310758993374733156415540977370099089387570297141061965921871232731056844409032560505486838783925896102158968641339025797240966025383715398273581994788821691850207979000309004321535103790562263119685643495774805570730842225042382269864471250720616863562589814550484676197812918938458695823805150466537493155289441619499809112929833243214528197778794844701721393843839130945453475820626747070616767864031328302752823918465913841961135520973504224050543421163655180410742560105766458481536628257344476179601496809930256846647899863791590670827102561857157398929339175391051180844570680591913466159327491946139660945026226627572820158872178182729364264745307733675095405133312292634146947342250631861709307643392128636035474063158204154411514034403631256365228110834287262563710469230645755812245070897085931635706492419175976031391650976947333645163246971454733614387265803241203383959409775514014490506740953209771041926774843917119076566251921110548141169940633276972202292040521954623383965737710274777810918612497901522981539248287855721598130958612020115519902225103778971231261660031159208021091454433987214365624308704277344444320143468519694138659505784292835496016613046397362078752171269451384728366137189244359896188806336969116340332674669352084939705786729974839435715198642961949539742075102897881312052326247408935613452356502583326511791834866550569649948253854230236879745015852212220733979626007749076491900818771175344958278829830945017537150040589353602974912995084998186026083333149553636998244506952114191598294686168339460040369323352426590465796433946087009566480172888050600829104825407128244177588414130286697324340864426457816647017276779474607124195342138691109674522403897785632970824373390207246834124960606651657443480175168533844042832456018893316867854796962450701260890846086395093347806484666101435620331451265900246717605336814783220923733706519175711509132146259007944268435402826248288578675807296574386352035909094523150886922814861833619614648007893620821790470263213460108912502107474601371671415099486189701668586406969193513028681776815441795317991570935719242739285807142709920879061967053220470748513908111858406868959124777573748463764358202179556394972878453719819925074163023819459760650649313474440954790726542572114226072648243592040866416582934041705676665441205340066879071978170856592106499663352436947005950495214035644238076313490552610941900036108921079485016946821111477577728161529744793734365731689463483965778584269129302851591471091027643347682136707325725127543394901723077637382392114017859543284926430317383472949141706776215791836471397094337522789449705699279349923820929795670925078811866175143783164956349235084997730965622494704170258699983741724648467438033801874727132173337664889272185832915709575058923339440575280509934864239425399788129110609449031872132969149132851012217300208183558279826996190478381726627323064669508468145123429566923574894195539975524773834541481672945849586293053877955592621493876853470277094130234865804798966960735574438957434740034912903773843539453946864210499014297933075925951804534080687147613427325740018707785659067184839437735523268381963133181320179409298657625095813830042581090065878688876066900602002887500340449652740092801700635185404585896314766009622902140447863841324575013386592149885262500165794681363537490344131646480824348929748207807833208320234393761064776583975894173760348281431599152941204137751155256391850911584862546234566856194189092473371379254107372902086219066429042482724441812520314028648888641831743620139547621875182492331985565277964057394366549728370041979394270443614765229423274281147758476630661588173213611223218337297139655566145678677344593371959190045311384703240784057758946806645783192120118609257179503949332844356118664099341304802500258982492421981607893461554890079416861025169507486202586811309729789088902794949802618632744996510802699307955012467764710214097718591878080627664728190341175251368282777476509124336362836874066541562407530779567542373736268208307425593188176700690543065410582295397582312453925525528961373616375833657448391368605633324040939633723048696831290795613493501154671443608815227164055544346839471389084645515213736568138412838486256607434553954063742938867239270911770191218216631966329866521258218451015494003412836291983164169678763711693801810586738574461465424420415918348554087831788874119310517958423145178389998980543402093231230722245926572292046538962407704274995796439267648074824344103252953081390889607563551795954528170404607566629936908828325490524067444226968049889479316649903980368047356322368033125336867358615157853939477043049506783799309233994422743550150125253854942396774290714978536700723557997268673072399869000673624477984267691131126734129747274555415899448651304174546496301193680068344843528867342337444008320596941137282416848892761732282811234969901500794998991839412885313587724107953988118995188249159194244079257954613860962084147966797284567687558786937548240271614760243143234181378023162993322493717865819864585109395140675720974623668335343419499427652385194371153626655031935513136206703825785464231482673695764975321316407964219550316797047231163586013823743036065760774362011137039106160754182157053653165258932897299950982381557375195284692170791555303324850613451513960488208418051681829555556527819889865276023343488057965389818464372882959427063765827046331020780207389832289930633143039658131942162820766332420678689448560274029080900811597652982893514871174159301282724643598494851749896554289670840955709711216399540719824281205100162912162348562806666388099940588946036271791011938887503787256668439534676536882740060730590117872130759252212192017127946801907836615824971038388316687037567456501856605962845324461914611150430439944859687662211402275812234614562076561302671612164579856099948719652090848752478599363616126743808713164889228399373929530722828531361594422227022916255563337642415382124731280458670522173475343934834869792488284219454728558806869475608679969302001230548766573001538871304012851298261011028731114023302620848371828503958461548464421003728728280907469480471046821697723341548639461201687070115656402942288212106315615241847760374681696419839858493338297160946221033191567373374780113248361754207720860085921384744014971291796562849192949957508172635742324374733335857396601220049923125892666607869239545043297059366603157519160099950688997588882748009376801860714353091779844293620323517332046861242363739419548794850097492453918806122643469176679824548101279049263145738360819186476901882316121473787562483322493414757413870673489763817586883664522145102012345298234007416170233875319986932310928479951931090840694245499846845942266576356123228948404241462972370894063628618530317636511635964401558237449651315508358053065811223729370737368444196450923706231240850234713019068532230313424308990952534987948770211174216526749828281601544856074839271084563544202267018715951866281157485919094539232467465035912913024993869571149418764320477497533511984442590225969602847339772806220542671680663055769897688389785159781821068847605319923560377846619658183673106141987030396650295976822465658146295577208584741517235556778079643882815949261384528365298553768828768703833794063805550779931465562868515287261644758218807854592406219086174266388660804385543965468450807462351084148519984689520295669461722110005323607781892397292379586521670145335014697576056980329775870799506056013581243291397913567983409500306150994882814279184743870642710088579645550688774959945802947275163179919180476173648040855714361119638545252817710007580232991244019751723515104944480548345962391467517831408753764919232592335797846404496435226764467050113387708114257123459458054824461562693934065185996689767285744371414366006377996660925802576179002760435312099271762667888710086043432865608779800231514031504178452093686440690041076823410233904528223160507835062582043284340602419880972226644489645635840170313238751977442783278536409963458398360713751989836269422540763418694471395171567883166707744001395935859642256959675069168620368684373686486625509888476203094114003034332979519827094410822808413792446966567115187463378407138182597804853637257071436140718739913857298437951814978991297447403456833895264311589412035559893570815155918332203583370894001705657669332533497765121372829806963089859276709697245529257626955333850672300734379344265957336973969516326161714364068402417008378549247867627255105854852591808391430651361136756349493720529786358754826317317013251130538872750208324959034843264518696222994854659777980644370041045246701400405259684409445155624319911090402549135236739687050582937768136580358862245993746077364220658475707490806196873826743907111969468101387093883435887715602436895225070589931354000264358900522350876561965201764064160198527130341529997183620501130604373905102126008356006431838416394237527288133583174018556216984833581863443474504818644298800202863989339832136526519303703322486265802329486050806724750131627399518305882181181403796994464496560926450307135886683606122717165420050558333652498131456143213498587387589143307711413165953699618670960597015858636634947362799202598202412723440323524285716967106409676823597525498001327605188825115237039423656695031307065657985006699205821557518906093417320513550613862128242886456086481604426426224446004045887676184167247547079116669193369733579748082963748990998443389108612168395982616092350290571820551300776049133291642404136866597338876095256972343023630787075569406194715841995792203350591762553792949360147217166042633709958188773148119487470931407437893086240220761638212571717542977419271602992009289863689482116926944353857287718367042907479595475341268193983834895476578015359005105036471472713526149707043073441378254530962106764399584594306113230813446753138928504071178812368544070611671088651243534164355341776717523233723226909030637614669910514137176473722407261333923925980662816210873128920031890940232773163278912061356209796171482385508700750132879668150259520175307728879522659257632704652206148748518123332732062048772701208742224811165462033972611711465686783151838049933910515372650744716935589993703903732893773753328128078585652113969689778749993699085198261107342554454380294591358605980201326216740110913773337024653682523352559786164461596957120198733138569293877078343706621846826428772374745706128224247134207871120756502527895905875315228837668398326982992770220764554645458487334656981597659599359396307446791594665207745995660712710382328638908013072163598413170944518727727702352176413941838623218419699191446648414608200889414405996995216603733669583870881917211483897322733182098651465194949879900703010684185191765281410811324130890001593879115753277962807980415753051560994037382865182701855185822006826362158121912741612493970433982181451433759381307700701663658279487727267780096073442884302276449219079148029081415668152411056936072406977303263005142624133144192947415261990584257573013424555354181308192748788960935537725640349200340913936591471570264307096861467431184140828347181978626410548585888177101990115126473180956098568278435775485305546708693094725267007496750168002731252765691988327004395154379983415110261309284380162073021647657816608506272094116230931427122362307523087849812473856430156502002870505432317308188179596549503783505355061135554049568761148428328404025585398082686990590602867773792862411397290401990078508950314075641962879443986051394551893905881065551916275245783770688275572046574186153192103909023761645662203251786683603263345997746555945666405626941358920335421698248893064631114767068278595910234844283701199366938981624129937814636275524252610557759774653580627535877839171000787846933102432081794445973795007668415140326784997432567974916649137384134927247960633365754330715691645678032775743076241181251024328163995971107435973186707261095309746151905160419866113767316762329779796952870637264702897894909882745766507900785278697380677830718390119249931153011532289633358150415121076970850621095304262730631197357316786951944353544054563433243257815683248035462646155521229432158183378668439243837208511817380057329765012783703182429326783696404569979912354848002213343635690193022080799305848698103224518792567487166166352402177347365551339343778707709733041429389027969302484623227976003707045365557032907989056369801476351437390975538505637136702064520866663748152600786853410562514429390287563536591789855572786993033828891975471696849409498443058083580278286588124861177539685894815044731019556349343571048228028974420673885774860074759023030451281357213477372922363277256775064200645822675032095955639345372154838265247231846988087940852266664367854632108521491397733324493968053953832447478623552232569165950910368049421896015147196874059963534027432674071498926018034804457989703740115487951047478439999333886023799565842048252867052655381253943556692094188133638464894437140174038499670310690660681701951225695469033292153924252708155094665898419176202845791392668050772522321310097406701694015485140249759860942477117937817055778047093362323773554916568536700998687288193100991137196394245131473700356783915272291729526107708157238411905896844394547706424328758117927451697412473913450340184080402152869573183274548998310737951159153927940929486233319746059007106517674243834323015198035567412212282291833901995599635496606433905051140391189516478159520310597382296444816666017441235627488066644138005574319182428720590502319135287175365432495176563952936759805781850372971617716561323404785185727581884261200616943201900945691127268740030231346969594551938637274302936926289929921965998454055978014215940582908593035324616807545225443709123240923127424988370224489714188399105334647942038646257840745432426421070218605043769753686391003352596808319335729008369115684448622067683829332743660633113382816579521210404340087331056355393451353163484929132231547905550201017441786645582052867095232386877802804901908995471965526904799466091098793449720545488827989946937820047212003114644481260680334914242968744146922603759003874122763871779943946745416941794287872152664992071410398866253100136597349690648770585248858874090658884895524612736606348237304760690640606095758165830227251850611355219077179280506460171981002093426404476911128452325676825146577929836251431264829420281204829005881980793496167049681085051607654187363880368619058291282605652042438639703488176066101024305785259994479935037290245725877873109579625000534313614561092499141096071074718425286434305542003207343630984868568806198394533599831374630734273464036897915355353330078910885934488045694494581894002397804667162001599288378987732431762145749054980459930917954748927918273710313786085641683638538046315297246166115803520308712290932199752538913596553798741155044431240728524273557220500750540055147606672405228289630536226470823099432072068193376073394430693297007956577674134248338838072111932739572069768181002828137384621112857670133656588826769387425109576102771125348760169669668137815812247117498231611764921447037081339976497540316473550694155779411393467869386995105724777184242242176465485438191460043781180023835584590427387465707119943086983909597777512770950896951911157878733771321987349712070348034205796825143895610533636360745275769552633288283823708847391704760112650404751077950264637522651098911684449360461523573600244247396537521265706270887765521484573462598265769539932853886989428681057584538866268841917081957656125431196470933650489419659261921290419191289880404637761928870224943312832624096930098934335292545527432110628247490001729671661616336035943398460620618924286449094342687301332831835126569508222209048203606648708906890181041380343212510627460360881567921118481707839647369718652322360484062738187363356034523052094348607659702115156108735748575732112110013545111887014510871019849550575950667589983138225208849918616751556932572549002713042882629723536958896247523668614476584387565262787956217994440112539401422188305771486761401335792039090903124082920337646641118933828139760940490182842626112209263948352160068413396893005100276604817956579090319917741947483430652213635908197853504580610401129405637010713726364052939232675892787167588502600589056187408162855553757565520206123019620685393820380741982468751331304082009304922332968021348575255961852417139533414245088844122375783104457485397206636885939578520277572059514559180979882755683462553073454184054144319150765056993477200164740162394776119028793759261837478285523373257130960169395796394231199611900462656354802436811605467138613734112033930139855986723093863380492528127094683019279297396343450802655094551120994185506184271328885935079266147561818662857284401351694621698504749484511663788433795622686512588850343775965787498939374778640397326884876011069061637992760421157973641608259542513284092294846409467563888533795511911566488629580851766690708886710110993414212559141559264034222513798838920503693712212571888359548727290801055433791222454986460402438785028299443771427246705823584375645935160377199134929495637372781514055446843610688448094821874940043263983479689585989610699249865875345989860203811524851194157468990223920410015589340013552124601651582403682429371645156385075816333605345493647436036963034976079476625498008870057400884505046392762427560712171951283047964439018635686384730106576777250163396262440244324573797958715606761556486498717535643472822698904578374248630339740054490529148691536025006454742992817603688744223223358000069802721160891713947294352866710579636688229275966581362112423328006836283477045681183854790521085374458496306958225386165922031049733787048825256857158448252859096623571729904021246771317092177265558023868919535345591967733863606370926447651279956936233288560000851861756713519715956816916974044424269422493298338600300335559975170350268770419011117493259548238645943653882755217126535243660212850917220380314180676423272154641828745465913868813879812819280117280347594900148306777652929018275865536618022201301397175550174613016216928920954084686266520740920455891037682146946250333629478837289376204195059705837802680767640006513910318362642590207516557110600568656694146934485049068862071297236275209173766364972771857972602429663301666629181864799192200414744307323853873920020218690237757003137233877852266144085311312022512070765345527481588618840230395525212047461155486059510313841018438719496287956454223020215166901719018285652280300862417830307919701142187829944182787467992929088274295815942694017402575725805365958029226846393138848943573944904311656504379540707307105609845379901332402581855355308582073208699643403607145472649837538501663137932173422748882687274608953388639043611376520886926391712513758851643579220086812742161646418785808115242231058552369381530432219229671984138012259740537192390415922318963918730140476840874125842967693072050570191223698817200486288722709030332441759304336391569488104106647512112804821037228894985973015301832061585514169931580055456503835735544504222446929338009438146927503026608140817215057937683997082273015164539447735886170065411416777095686649369918278674571815044033872965052192019734654334722475203836263962054294732954307047599614398397478378570322744260785306120601990696133820878556269301358236264644674978121566006677522055805152655257667991944280011650493258262659423203234152530010321408039434460399315283481742844163763821348168703431577941825187379536821567768876798149922767464826045291881977549006131330249983855868631974621589664619851681191962231905419856019536912445218051737786340583143019119701932405088541517828483157505709757138752516106255686674104693656620050257234109104286692899838471469143722630030255095826940522687308200192261708141203329290590916290988893383210175890884071631580423572909771767703804830340898896025872629616983673255070427860746595559900372584092739653805807380332932363005711828160003140772159130284220509628113473968041363043069103463651010073126479400085602232019906546759392871348734556642953923679418512064710722289493429728282461841737523580770019998864297198841536889683055111206644153703914288865612254038737222037534127256604310670663159301942412036345698860708576804799765245184093004602254027109520416937205492946622595521842031304132141121631062420451837943521282945861326595220958670364955424834235971953179583116458053109460420987481866699232948021514873719848347679999946338049518835315583868709582585665587180318813117030990411785123175174354128073821084289475182517653211528121725274409173640617657714789428943660297400969459451322053348329152888610466446883958388494731598666878196724692735004794381593006570488311556954860338825804987413578793948828367881271601390328365136024290744253773215532581385889734472510988215504951135703975898468801216642170416262579876082693567679898486742745937167551560623936423726411230677530831284415457902890395003551933057339678521806229563784980050801048729489394954874884373970140664507340025964884039015838627228307899429473041173866479447921165368417216871526196496162724012342566185891184838077530598170808875140995233271003310366136880567351385835692032219174198571905594591323087217795746814030590509001183297335254771762074607479413833977919412671857897420600591120934602943650820419368260412211628726814800419106020281219987421332121156425993262706369316481422980889870187249696610399705522952545357420027405728168969969535486527355060903556952541142822082906129126062474415205103172805308951130372001672262970784521754067368434286169431331940475436496719467176798278323765148511266502833013292438246067493542499919683665302016409631182036801246352626110089415252402828469086335073838135503817429828994007742583601014092178513594482747232330206230770411408723662748168954463355152430091133759213748282646891946339818726571662184015026852815074671134610582185365983719684945612440294070418597926461469123044843340917627227870097871382988217676104090142056412836326168194420481873011166285176955098205262048105334578759442372437850441239019443273973770250343285529279480269150708236298954482661645628677419367767396659180978841372019567665794924687291130948425140127142605392562633050451857190956146198895193733322948217979017981980539485773894467179096084490220786835296750120003887732330710610680977260030943414183566744246431595138721182220026790699958236490460010269803141478279503427204766034483267614847794514206482817450771246137153994096031033310414898310660695058786760194885758506481698533079525072977462801314447708370161502821756032584634718407848559751294482577414138743889314759452916945249912302379214162087098113640307521835701135797153863034875579123434309905227059891510172772246748674460439720372345349508614879720402959335976077573023093165033981198771110385304175614530620050349907892907714260907861905208541940471341974065271033681760995110543638214991731469312451586567538851145653622227411629094204862344555687793597233504512839403822146210488296930022643669594240619250065296942371702896541784461578350943574885107245475608514104419857335576738929624389853050251463182690711212069877464326915239219853116281057685264715665994254612320735313817668181732382037767513932730243193505160688929057344662233896720827505577058735510870846296065393164719966842368976962231444695938111812990120326203556690647045746654608812582085986619156131219431736970110631903592251100252406567868258094115509618490696864573261090663302892292968601880499195108894885993892609706783915452793340878736247659137683136981562404108876392769425247518280294913533506259068099920511084859868530310805254644675271762085326872968582250011415446811192467629477415383645146203314879037649640848012781565454591254880862194349218519954099155966233850157577800945065424133261314414772520301071132579767376898728862957915286989611538828751097388610526842289062862094112348364891067137370929194354200973754777856186626158143268401280963347451823879999257293629055088469771211666921791732706199365571520578576642635810523969767571148537733084530681635913977462290123071106290644208182325259469055359832893751046505170981352258973894872692578477093277255284491452085822699770191210706366896952664626873342463562194347488484575221422690934406847770011342582867460252801969042447703428042904149574218282584533441807620952545791225714091165916428075927882883573492652705845413206598750290515232608603255063054333737548860339435741797550687477767076415922027535533945413105703545525016517964067316632195386372393397708188713028411149457048635027502890963588843442284393364504090477617345942778442249634810844633177719870624217512088602243932980267577399027786118755194040265192800886101958688350509399121973498695898689144591424771686259953652502719395749803631026478994783282383808479774781660137802863326741863499751724374718280309458565868266731289665111696853610072930816393238370984523121667107878815831000760692930407544177715364647308682777245898880741829100403733257939563010212604713591897253470385542179179054374248390960215274992157389197166062728122936092024941653059035091018872595103743968591781231952357221994080002440766079892928910246267327878084873412447395150304856727373623806272911800908961234895126704158576058991089136235717733938150251868433351268663871055596414865788537667453818671343833832213303274354431657861320386250059559186654464173599325226645133068193145680012675037495451904972972596625402549752691016140847299835797887941315286802236745294492855915506533744830360107037355017378621427270835399095620976793660212913609946708451459768739312790333217060940332371306246892579456286709947431236184806710424008446075547970498547955567022289332966123621785539512629710723559517809442314353899460909803352578657762594054939510235094647505217393581995350705763080162837328205947940211115169896337745207909671079801917104596993391516151570280254675354075179050217841806762122739841734880401734659012387021947144797782362062026232963342456557765371558349335171952390340517619591699845175494421360028594051926369335809349520542174539169341939264241562652298576801511798120198521214775336091233137304799446891228339603131785194779585810036850139335350877264728013943502223028028980831701809323874416489495158971448667059033394814221747865390927004182756038172760946678857065498456365537848995840698211455527519241237112564024054636786739917958693104888281217181382600358470250984329710688187966475504711594730505532128125833629179322194286879694157361146001951510567665881657803719923541935385109097069987909780846612547716578586334387447406489248900863115105065203600707710710240574906260106674347415081676577561323996382943933336834101192930456047927041597459509725447694328455551300863580512837004185172037017586695504255563623811869408845298587262941741112844460068089446539221986487426468766532499019217311388320677788971197266518302924424659271138572825196228544147482236887369369830278123686665683845026622090244253597101562923575591163848123299453279262563447370138673377685267736945597746259234110824691380817160155799193018435528779395320923614041369920293722519823112363935553251394697637652502360156302656386465097253929558306524079576960021845706052171742334010918012525514879208747187783027172024156923062945090603903606343542521528928612041411859248334666726204261751174103867742998847797098997779544187723621351192242008563449488756056525049904842063093144004487994911602628778895982243030554099522394674614720403754990236104707357808554372691362914735040801053049835141964337685736666977057005379070741832092816577739494078558776410864150495585837169467748712407615627121606363032194811697191349242389443878846674335428489972286297804906918375020578694651934675913877930934600022390988718949834807553906591287193179898822164661473838714220957446795224486881584752599223464760307659795585195063287124028567150978195076332526429906613633740922597916322156284562125021817205990476966133809806114350937688738702640415116226568755634961373947221764155078916051669707061535241474081216433779892788832886847362588495250058122031197811030728383331605360377070963135911519472876499520687563688306252060013061041848699547366436421179989137662808259708578013944855498709886226288426293904732204771281832493346358677046780806372258995042067910317114552393421898955605816205979213682589973689092104348084448373143179827839317850747109266486303110135056811236616088159793653498972316577524383046443418571426445200265113553308308670289571988290488724917358745522458999362370910509586214206570364899756311569042370156964243535531003863139480147649256147845663799486997765877789891393343538725779259030595569459016678848836040585569858503457952548711503118841491360137129357030730600805060541873645229626968369855441420488693919399261657810902735323144852779712451706039708700871995886596798546862939451161776415840652612194932248167213902717123399388777731436027860603393745507453725506081487124087215132890812426213668959864232601797264401718711736924272648356831483607570702598556221851929542832938848811820977369485357655993363400019250251003977874618485901376996600843569940687540975384954068737035928147839716407553007612696404004296762514668650832103744817053114427172997092395798633887455406082907260844804920455262889299680305131253292110851537100404083943851358442812551275641569861372456472421881438977099007834580594744655909625988529306581188984896267509266251745453396371629630808129167333030675523790970868582152685158795251977147154841079068089893304974188843471282701431052030346850740356222199401189798629871673406267136527858055659349880771825368962899962677568859937394743254365273705657773079537741908401064743271213238405284951184478221907013688675773151195295688295120643287076939188339828532478157165000139222282221983594763298789641179451258525693204700763791332710353334748984423408754448035854716731645822259418707333038368161812226508989398767530407971516358687480803671694469894273555305105940118729010023409316308317074903130233663787187241448883938837235303126339923857823319321002431818013868281444598710224482844097418149281733484705915198255393753335656308558696648105885206013658909907642288667878817944424389960275162972146810430811921898116729313263734637235936414596916530723852454039516189352160820027834273557925689948487906852623107585098576062560611239598119482016069109137443316922147109768891499814973234062477088390426920428663009168116901189621577878376210054683610725976293004063309865138292528741781926457639699155009282382649136584484394969634955351960967374344716889803807943263440769369347387899194242571291067945349332134270593451282876157808467049292468844364239026921536949772980944371270176209619293721688758056575260559012077759551182028421853197731778413951967643835275862468702409262854618496018741632971997671150144188128729775492529888652916411566854573736728958222270172588245860944863439377358363393903651155446254450100818058750844161016166100743649592774671886812862650797488152367527964822053426664142611351681499915499097673435212798672179939754485845552452173685244427982355836282070825679702463805787771922662446620544048233840333520815185201100884119268388074057176222391453153069817774836492769218056896108534001482764258313095608670126369579293247703433032261015524083184489168418072180868815137695672526665142220025422364649635046116947073141007970559739920887941696667593592178644527624596172628646450031337041026499230443455067895216636490501581683571380022358459520346689512085969233599593790383372298236113915966700607302746159316834931551354876566115414309802628318756121401935557113624142553311711625226877964956587818416663312742186583274923138761909073323872054045288247704756693277727847256053788349281238864909728038054259160289722329242424369746320181681042372291183586187305343817293799960863888244850654913219003717205774206085030631778777090206018406546501376860019634715735049941442046315366102483215272986847647452650943596525997175601763794903945011045061980757643264915471074069685980824134516973878330368481269657005290378177866004480532192745443274926560831011256792213393346329147295421457573192248139435779189571753789627387214608066576118617593356767689465219105827738146878263857992071737993789576938932035083725042614885777377422651646854261041699690714788226896179868358018445845480715285091158934547242597438279955491659779446888154203649754320684894127927089402030222877317406976733521823388183956670337825872930096769938290748706988805796903226497558459653190165169470326910459831287862716016876776103480197618462799236244565518448247081658704711917473344142981564997346404976918722848296615010013380318966148774866003017665658303334137992018288669454636794612338102888492356598454628997463492156510752496898246359640789024791340791322104234179835464930872550337118860462443271910262595383377578810634961184733436174528991407638184654605781215693519681308035376162486569185172084356786691484122535423447792604780207527138664755642406926224038036290716410650313665283851936062906519549320962829576804687876611609056302233924010970744732345283377232041824095693340035829558939787741304622803290875273049317715256251904001018396730675822955261706654724820649570805962414379186421228566144914987311557736464046037591649721518881706578206735919319995166305854900228439749455673621685920161998474867145797106924736622807341600447743308588010195965974877541029839622482805185590913838672137483296714735764243542726724092350339055913409357346300846091866384254201314849527095341950579035770862738828383425031794192888627764469146460680231045867194159971405617669538322485775174344102387835381705464604611799475589460785675961693923866313765492452302844641777486446752838646637552429307710958236118857711630796058470785846301182010829149592361960091819239520573684954784207169510643680693151126285199400015549776998598443979989083461987320425594387917121298172180985634636573134139240675257986644861419023313149011282622124778607748107820377797287182238090064210738532722332648829005096376625804574943594385957310779549859912026311337021365412152966099275179350356229442764347902781430031317870132153386688270024465649453003723450929326455995801735406248944349321154460733966596686293397374095713437160856060560411887744978612674237313932402409820173401518957783322621352813147249600700566351538639864418044379682941213237460588281758885529384871578902676725333224526990592265416657884089673644916917799335561625435427117978153491728899888335572176034332290037392507171244731665137938721782423736224552335675930339592800977831861792539229105737899402490091396624158876416155383336093604367804972462227997614406419578642978220187360391377502279515923618134133804359269244850483988505451490256716721727424357660047897849583361848123027736875679339640148228960404469097934553004979706640859079905387968178245482815248425655922210130691682712783413598282806015991909179698472245192010515976014299262755211877135732965982756412955301219154101560417064434716002074688784012990583875242272158882202060528909671405353768581495153176605202504899036650855132119211750490519268655839301030928216190861321243284429671075867879302883552868990525087135819456503015939224430730001460675053720520430471991566123082478585972245870652163372836985669218149701800906390729656326981729271737005877452993101597465836510881007000955093555771427641285097269359625288042657738743878241201563339154623964620820986422511543568359935256739643654037622318527876193536002523170791326595963885890186265819170171522242122754853397198056704024143059318050835123538773989147097819960761996224793005344830572521971218747897811467119219695182689115863004171796449955964008370675908994966999593262088113339991516856362787031264286992131963008342794469847918169161153499657131140669089954718443350338767662650168271604588634957516684204138705025835871386404733813952445672898903318398173335127178364562209898495500260790034437324963875492866159598348896096815921698971748847452248173129075327838842711748575417318679286266536892889114225422776824533257407731367932233374836678599230991307977111802165827303120332193203390300727765800439510242149890412736831156006081548737026130661568876395686327102658982144480148797755691352986341789045454399922718835231164496077770873062134479600812503851559798198939968977193273556927892870750212077740479288162915993126453430658195052052716692970341158479364735562185333189936618038742585382951493362478854204031104361082700242829014185874602609819987950600532838408993989189410611697813779045511988491603125309108445784070037813734954534501973942776236432812420991115963481325637715760746863250376467140076958864729255902287677983585076421942632018346105191110532002196609495558485390082397034175063939156859488682496401870053165923020113598416527821161942466985222942244253694897970976169320267801673274118548630739319924843038798045878446260767663251696290214979166905354792888248900170690536082253313915068036719686765957147998177765641022378880132337766729794067356103069246085108470718881142550039520299508235538887607192882818121372061491934946169228309322137154977012024011611469739668882711773486586593172935975425704400019273680744615765779267012239119761450011504704813972567897446152981110039880500521729140520482130254186510424376360008404676743897387055211619838022904770673767356834363318188140189371981485392856664620914028446701276153661092693262723229998572739124614680417333580271948205837017528576036401741852449656099307886679653068759836076058022874328936172871294441413748457862067747822536721806961242754049347424442896966069939497374046514214364693833200574752228404528987778257792997826137553889388942617058222014107804053573603455195183375805757325441362162114518910360304112878579886113679029983923826775497465343239658320695683638010361747889751837353502527975908432511889960364292312534202759436305599687415381070345534543755826763769083832580359296351649301112024059201162354328791579434244292274758772925238115483909837779615704814423447490462179657814753604431895704804142986076952840623605136338544852332895401224505174762934809707848317900262756913261802322838928112307600738973549789264841464148958020134944881921591727710917302668217190143093861221303779744799660049670224721829524902174098582825334042884430125871522080399016156134547598252365521454081039402123269208966502695598658976857744440144019452892060535009977124749060245533380431850417969602925718374312670933975357647145585985143481564144349511528777172513268732528443096812858669378019605012402563563745527228145785469460076170158499524253921833606758990768278795693830580263647439702597953687788880280737421840813494604188831980385886021922885701376557042926153663216591646946309119999244281328588023108965700066925190457329958992973629020958981651897316200832514295099252507435178091781199406530038386690282201207531131155654696608946361040314475739845688301071565063763630438531966782259887843324359578473357325263576972792702261097579270495188662071808295632734991626743040982399184359082984393781590587493158223275286672334386497484806620167946182896442797264557671776602862690009144840534563520384102499180896870244571036951106674383585783813501032947136610264399899250464712163790407788561730797786122354050784842581453785952363200887846857217082136026071672720816684135555964680635624653764023160262585460060372835016203440354585309136374752554855889291725475818135355506360727237009156261048958749680097062628360760279371444847448376645117381053709174337527374476847865606481882443230068467379364768722151455561559132733356210471367031310693459496682197592795992204726449611044618620689016678861895341576114776785112897320938017525275274774427627475764663633800206678666935359440202519602549983721108888138259207674024632709826664158101914249938025430593486612800269035015295488931765090747643170601212236463377607905668554788038450388996151189249972613836860937106444128766539309159359861329011957360058833061682698588259055390295921192574616295525543800900381409214226290564197582373890940432081292529634416198379632477155554487862552238288649081026728758275185227841531069753823050159524220946736802233069797362605363076331445279155490252347503733039399491292825802757806641825769689169518727037389267001572594414181520567852720276934863071026450149092203981810541574400834995104539847740691153875940854422194125635076129914468385993924498833727653944954836804450438920861758180427157499130349832485369495823758470905683087033826556448348955268442592271408668456289889718053474271623398384894285870625172540338399575547927070380322179527952321176637157610190854658385433537525465791281143803024943941563166119465055728761215685888200634165440508782505702656541421459388783218781928214687902568352294279562785512081617654218288543100876791595309849778517588270232054104398170081315438358726217188606750896004913930295734940862252008829066374070810246151779763036684148341470181247911412536353175268411797264753877106859995585325299419132057926677301413542815201332632454204217658337919606604761945695437743727026440375095470164268629599391202294765591440679360396748761680919327059436364467077089117385777142399944667578768071055753451526817846007248769406475263457456098160660009169517367554940455453045517640893516366182707483265474144119852211125666829008261720954404458747990111744519789052984017845549230168879693177414103202047610795492082595540937278947139040801601780021315094481278453481662155819046181843058153159852955778135175498776372221092869892882136842245489942023037891008571487411509455660300351314396041416807891359685034514981833049243471728502288338675408849839015373094531489418377427951280300793624667600332026109544220752455722283824319892282863750516304927364960176124123110296818554647116980910186455437845687826465638022638977255243993353021235369864417758701968021302078167093825895512950656888408576505885235793272420486703811283835306350103957017487715910607835607541519199694016544341999591791426747994286893432235244621662942803714214842428144686231731053981227284509841874676353936375607523058384140099160792632792071379790788561192677016532158395908175848976121982776869379962298010138568107363234685591892004377634004411489857070555230140374622896447527734421917020147035643202243283107126587318648157093553211290253502319736518232640959340108086112649088889628811125750873960518132222892228690158968169103234881343969531504559975731638251122328067428799246524476568179137798471590870915753410052026892761586396838922311694049178314512580400323496784167054122858822021103332658719528696838096953802477461535170761235166669834437276906789079854043501207568526059777559267641948019121150323677591532323940365744160156455793718825314071547995013890670010328612044071164893581028804514489005991991906427014769759347160704880922952280905458030059555921446775914808376866562824663535740950850810203978777624626229570428617414645728578501160465914068032856660134244739646942586195625465778041077564707718596061504203977663731562614915607010292754078008596740500847113560660087387684105047773989205978559073757187415342911033888989524813249053516280044522321871194907953195587677890862294758087430695843342583580065736892876917069359864783684367457543577385307232266750475890187772613497874523697003123099916806476103946573727725415907582886171332464111010982080390514674007860215378256060169626214532305378969874074108599912015044399258112000383739327989304617382662016440057491349452355486447894500103188079091634471500276965269894456205905642927786252594956964105110061252253064453261128261906386874858021428032252474591160767460294528130378127514132805803384648297493680935172038242965139627664748703475571702642318238283770236352661194411126912027000214621338231160011331164245292822314637718352333654013756745498764819643132181456713194414485055442886542466185776795736445222774971637758169861636267718674700615900813070431498616709974383483171781180902038989163273403159786632270233984702277794761776989650863221875930338900506773650095215082495635506688182661094897123722902519248714552644439730578367657074324991886817594500179321635430376947205647024063926016519654007473753162778913854280237018434063499245838635295232477709840662269188540949894760601130181281990689515518391701219055936533818695892255023518183610919678487064106325228293470950490719132914921320214872252194375747488855116024188765204468719546904232427032509761923896213254351304423625718476206922472875118951007462046072139726435424114438167771779760759056231981734940564085002476879385979376610491931135326913021667803683614266506670602898065570796737768411936665806187612276015847707501178691394884673346615645972133653641880713308358899534320413414424623128562369046312377055394893250451727037714404308230719476222199684704225504052819010733696075572734560069842707207727649921922964168217280345422504829374831628925464816157481765087611412158811244050033358361606896231209869133634673117049890751840011447713837512119278432238665330589545742450749130377349057976143303043728465106472268873061228136177279458589438232927099080152998073198734410368139185351431616784646956587619663400781008810796857414256104117819288598568496088745654514568023495486020816066794907862718676606556847428714684237683609682854979865563845580134328547488251938290096440282127536798616097699471442991561522107969099594273219452815622297374816750419332416372546310895878775851990837347310012600470152267532566604962292865753750728743178936187574384607593034675611826484555615235234892312040790399203437910307402866684447950019299262213423586327535613953735347407717902191756125053218582391654456560576831788346163818245498192273448866814410381293146327145345946880915658240733593912572242554398986110667563900335813328581348175237059581374167130807276843516045691216406188079840585968753884017548554449969290978879462775580840541689131286248319285929063779938338009725828504927126679250133581958264227383181617968420033361623480416080773674418328557183793854478531119917241985749766269578809372978644484776921086529711716996392285067706581953927064470138611932400065254091891849880291699862151101208080963463298778691104699302647701899518326174386937407458513307499660975445030399908680169510945499344352552937533917898089642238915204582403624260748420667677374427398659128230085693602107438214692860817406996252103371176660181696104990774692927750457143820969333302855345095546390959374756522676564062613358526306967440095747034332939430848299981167270837230706227747738143173688070776948352631597438516945552550907156069789352517143295198957677353908623656665818494595324109000726162112224289324676526744840711201839515354832738076489615810673675560459824762351571925214836445233660658879985644842735333919691613693028792975109254226851100310039621517403525595957282252218019608408965465540307414657742175284385113598048873720479810079480974558861901362150948596042824576983102011224684678837779387394952534758553762273834829312942604765259540764617354371822085962947369450056855306320741802497965330046120947753628920878335708308652409358278661347607887238770971598039429038913446064187875274812688016084010577935727576322488733198149796821689506123496654699057446549024163682019152372005789471755019917129116887483898239653704573377436302014479997903754979489615864041169360586247053470919545147743220686729503113123194410717541540742918406594019342137523813011946138669787106424151022053441050485708329461406813805561521010806206828435045422089920347746210118663928626795953100696643787400901099270109314816791147702181229854826124410409388935773868351455845567557125604053560566310825838856145902430180505306482341254430828140425241977788425179450054093256378906530650292302979837500095154006188449588139314960877657262244130434076563783437720099030609234060566097923702501619304547325231836262966213090212023082189673380221625574523123143889565467829707731098108389281395817340582774908781719875973975282527555871893852117566354767363055490575982460410320171396657972898182825725141650575942556509607792167403131210227882840963517617375162725468976171087499552364327495299128988834452340330577704939145333096941548693648973587253486273629447675752194291517353984599815428919110705854128752592704387440176433299190710361692539713976060895146424519413337989246599928834591566059321048174671423033598285815339414603049690600801550545677502912041532581701918392414096957684228967120343680443767281113518242537071271772601772385403803731453982985088966759663817667563764722612365092186659528977429042824585723432068081770610978598056233025540750403274018665822261062846289105829259851295252410589869199003496419170228847398426837202941564859122520470408596942602289771588599732960682050699264660632396672341943248641817794275258320478404482992689128036162264433177417876775486439172933097791376087431418885918514695694430146928426248171650196387226333382212923892691721250413697528760858179524006266745996303008941938869379480609993538068836860835790781663922820464070582491803108914187999412623528126466782691636068763076741527780922207918761248801783984771441359199921521910868062398404216528702220521063305984229673557994589334588192064972050834319919444642346617275892004420504430874687885931197292551254369981973859463672163545781803959721468274664117623615389608388101999596552264932458231019354467991009784721798408543722745107196359407393326458639297787226567697949953188405899214292055529552545293255606080636503996814800225379571344039778646016835399140656741731300558758830627227114207679351488762417702453745791442242136928029464183874839573439975920077944666539441246939828447996823937319318057851721299481964508785018074469190280087034770487179637699664648566025072194884480525982228164959298938366993491234473684806648363335182405412725248367124877455499883510306105825836633214454824659276309433350974027713242190560765080146939373762829000681772424008751956642623118391137399396277974278185070499983869036892071092489776335433233205753454493324109099044992577290228254369543526697924228587786308565890368496016828288617468860888115996698674628488794692886728131883675603896685417867644723701794730292730488011656115480763921852147455999688693550321679490522834266936884003055120986798209964714580441094619833314140589023416759356883968816308068301884008267631420866770431442240574815231423165513129356815232743678441925987164108884230696938783476165769501323082318359020062068371076901673058874308274232512792019303216002119700273109584730341143006310944957387516964768422427190034653798053211392569759725241891423927857552223926763366614827160315209807702920934450169435582950583275491428646202228766936826824390643659470512829726290657935780463700563108810456490200182420382061211487333073728539911178538538058927831785353773525931745033618537583331154282499909220405652803746115471519646121961519559071417545635076323525084542584172657940814302937192927210690104460644714567130039624926194388126521760487390460179015033304617331372350858751437511549344798463427593676361423654695635144611387150246625254525255607431945480406760105587817044408492124687826512668906605596509918745096630861095200265288506566303729207682925845907674245507215464635390654005356320125336705692028971317618366203598041107263968196882250546242704303087447363253448604015987939363568502897133236779320995777453121899818074548620417579753818795368241330932152844250157504351564781720973689579414631401337016159238156861563592726535300645145237427610253855546344449467273502743773118538337151550292847933832414605935310312403090335991723866362743397836696828887553090981103745874703219509955873049378246953303023670598752370543302529717363470091084945722947638890321638424714855299214829027658395803569357277194581158740186131839465165845199033299312655159357549702570660736122625831764862307773183282526220788978083277115788317666141234169043012669669966303564992692185489182516934217473553840696044449505099815273722045435134642688929186405120118110736288629660571954860692517985457299763165506459091313504177663903429007026485230428580132921504709563594755424429620530213735120917300008823679705381754402115831224631718099711908099387866759100780526442045111071024291733533388195331823087000055170750559953058632174601385981326408717373506941009422733332321322584011138635477807774305587007941037325171525029689286785826636865594571952061759071037692242661709669164944538687980285729907087580679019913053333380683782778699256741687015669229904626938494500321924009738721554927918885813624707004148034617774630481544885009853739476248941053166463801927110376883907811295551510368882302216408350643682901554494074758559901467284005009439588306132603702807813847714777644682335432600075334428040328077632498901841242338547837583651582722903348568995897672587598732360081259396367143860506374818642780878478309966050045995093943999977311123987048899418331012711083183739540033672572974610709213336001695677889412081584641455023490121932185939703849749056393139783601618328592799999240296447534737361551118893181712631555233956810571333681367047715052494691708699928895135752758965081527659204289793264944056570398156721001149035408787574732040149126028564358100903108206098943074611914167725049257059026779613795252611560852888021336429132989079523506826420455186424598008884409819885169846526178125282894405079392066628386015485428225899987017652754828518210676728673660043504194078304020706989185975307285570754557233426347232662098912681863730664718677512296903755329838839922553398990856037659787889470545483257774554996497338767896563114909468929159688105124287725494575505028954872132218836035478115436655428315056063097812461508797334632918626913661825208402913900915935635126809531126711164744224304889971970186950454816761645762909686320353271322031328133047346975493036608579208869200458892703928944221671672387129506965473544556188979425618131786934577271659249310316915316965026850909544868409940782851709435135914127586001312600103890352197688036126491205354267443324976746530381061906175797498904280679664989780155764891684672296745834735991532490972777327430579228442612666215987195724338618472986243109597726298383782426528518987210013353964467473305904422838181456495680296224572385821282157517875847191625233777977527363407264452767660664435931002235127119000274843076364655601953646068685378888671395513863101441058921198151328837074645267045370101307978295958323852913287707899408918704926563186444912943924938356336424560275741675049283221562427886983649290869701389970292990934137191300948779978992922167204088120762761620595447941708860189772126436393083967821781585554725451997325993851625786158414636417918653024194202441558042025671152682113240064869393967154346383403125616459561351670882602518479734377361971188543723979803104163546796190771323950298660231499572238944618746260478239052803443306169243011218312009278976528011764011140506306533799289921850441480373505503981611921175251701536225157288588296396423619949382006098257179619164596191729069594400503981363481814707565735702048605950786708504549947939299537016763162610718119212752160422873779517573972379510183164534800803090799193996271033000840254509602036801089140256534836614842985181024570537934913712476567910402052746552747107174620147231558995194836259109481267355553518420052822461416473479554515123519230476279506402529552694154904921166570747752994057110729200200006831804149690320367969888780115180297177282910551221791809928761653634356003617819270178130191545258788080599259051457388707551455460497226846508171335068578051578524468807054246786167793526639119230982466904237161818126271791948103796698958499225615237520691899278599620299751367325414698852510279239940978168104275040289953648945447306042367805006462561849424655082696935927763369107276321397025970577778134028704233050132373620783511033450665227198968404249710708908604052494187337818920973626814158473238194141659767645744497760293364076143435113094226311326405650198634585224488953376384030852550846391310561192449809907624383473278332095973133645043053456937028433641276602814846048838335363511163568041358790589532091795514009522439896985965142327875710642084811880946571248629850424227623799774527128427370806830354070429554958062264767427149382873762839123791571799888678538252962906434877155584660583310465294495609024164794679862728575356159183169379152958600349317952333760853982247125497121915569923360463000155178964345368024275611271315185043702943859630661984138310174962914570935425884747923192673379712154228504974235114736048264050985104365304473312878194371107154521367140980854900933409025303086163360594449615148037413264356900057123523094904036828339159206344133342417822516827330647298490618041481494935704169122629741539198213100297449501145564359834208209337861670032451594942441951822161370191662938137230047882672432863749117491814424598786153188146238694797426709938095691653420816818775780066220311944615784587135151931655798162912667100229163070468700239364375351412381519542255658921284520011231340957148666834695833000864649321502535739394971001821421826213775006293335295008843915507807558107462007535840717496655137818377057725675946519120532564701986923400309459814268101067414996798185719938383468813737325232511747650137002305879465339022267539004847690238639942497417603182364281949211519732861975082248517191106415197593335814473182630121510911751115427133828969635806202393305223332977797954563163443488949078846398330531466791456880190347827564742912100386106737356330055448945697987156989202037944619272419948352060952585030729810804107249614719137524056105307408404882882917106959313952799074727950850808317107775629942288627608397843878877836905608233639064623919491413482632125108690981474901540499758111627398960209473197417361498848297519201168870288713517193510817505991902374087151590360304601987808613013266191474145982620985937073043219040816268530193166089189421221805008116953561824246980065408904401276776357709738106515566548238887361710024197037830445017693415325385379536462785363878528866836474995438561197115399416476754910992886802311565338133273651620485756163847073452165728632867795106967490340058021618345951408018172853603241650875709738766954932184879423385124301402758129876142645076317674139937637151228597023917961015094664505532916469473109680269318521275400139234919349694686426521896466160796644344409968561625219125425818422373875334590711197871533010360386122844963276850332616498977069973869918600400418741561153385418871548341056474256658888493886649856082252367373378456813089407120463645816371841147849310342260850643818848726235328456026996001917960684325464962633393430636999330051615258982666719835126313307296308977367187277557340285761276712854080673196970891058778502684475391239466439031986351544394536424569673084649756821832914462020725615692115174001171739559177063055158697681585384444313008340869923608070239068155572656716457844395317948773380874629119310360676797567582296898897660759320496438457686938798311526485970299279867088724651956490472702889263898788229556887095054392761442426390269126109363794124271860989876853843881374749646050937490748404412484482310842003420489222815600861085585928881735806178765614661242874846023113609503057064589670732355596423326032152892045054370348074957779288443799960208030249567249003560230166811769883882979821827990376105080690730216037085949521955521662460706737229663799904800740927670600516833531622802765810991074612009578324679399962990431699912206446446073283808285482671497764100383335424569986417339437500327792424451678353147953571549567709848211430882476590585718344696803654612583599402260548882841125670815120333310921265770981242735561585121815717246809566219192478421618793667865159985003779028865401205033849041256450453683216272409383328020720583545101176441764983119024971185942990624367353220945628288697481592603158861941099240804584046839667181705738135578582785918597495751516987781288732633161865454261646601489012547427664217981219505996664951110022643520477259646216937981524551843270650659132593818667342046085597711345108064919808153353606577984992439176503452014678091539833601930611350322863660045345245805149525172629588742593341544842461130382209508261742737320995559476745268578994515720450342460323309522587171729481313564342889417781326343649894076376581583806995683290513359797918184030529726501811530765541773407849158413051055728848256978339061044405757358187453974277598504346758656052412973919164358062798897420939664614045815106794529502391245429402636416351794897425073730712135115886702592261282256099381390458321604210513809277187988593777192397826674049177475915812790548953048959054463764138264833457278057653623061336807234420600799742693105859554507175365763365871138031721737253242266645718869901778627999855241284855626949157967091042594265381893515003907410404850127671167179742927186146407610220831051669448432702232570934669358100800338770227331181206274560655310020070588235232783808000992885617355442008737436739939215304856376978071836761352050060072118498253237741642971195389749154003192270938701094363695616730886761081977937592206050782982471931762344580159156514819318445722914260781524114406154290819824806913494735880055790986423855086472955877645079352169098999855495637940147791282813122597075513539882683877882924161903834207121554042748330132699204482136162197846025808309624891593112998899073750335444690009712665494112529745091621349667483289211331854380833106380449151451314489635473370001046675929084889831154488672479360850248744591108216948304421006721292616298347742736432967054695586859836652601241662765442962129052584984270950734083262746801942522587100914368135948794219639538621416903383465993836609209874122141963752346202346611809980686232127878408613629411427656537667695415777811474101551832049694740281900252310329047972940730626129956690261433637592126105186638120666516954388655862495713914585880288021434095070977890364945945639905849072759333233732620420408918460519571565218573850802165874815473009113110015944773031457584799755501131165910549048118933900407071261448411910558022631349655121679714136243256825399442005842118783143348396080376771662022544520891885643439794450310110392125514217743906848420093863719803205615829560140651231720972333511091843961716210392121505067604295477893093032944182350342990334550053545214979530408956990691862789273622160284481707201585234454235589455398623869532733926416674794942978890650767158816845390749170786094065741322388585140571652442105436923632291170509458028613675230785756627203022446231397076436502132423781241502582398720144458088646191515919866209503755575895176480878235565788159788980063303599529459611669992077967167824420647637733298623207259836065366300054533681841377373495072926632748428405486796190074739640635201859785863880612536413008644922366256461681910663301082083824653053881103304134957886104758510060369603611800845622091031110576124230007531794318213186214922131348776444180733472664876581366576858129598036174166743989821002764107001523424574039231098428691855019444199563205873172675222481891766699432016174803252416536208338695181548347872333727784625668729574266799338154990588867184707488143917369559010155501728018023222925761541099369685464695060307854194898736897537941041830132171370110018116177308057958655137177636973771078994920442287408482946432722297083085899998541275622413089722279888329324897057464238420912660077734198785359865636504674031071861366375647141543141988429530722534927825012625761894126912329233551083128680234747411549553860421467111507066172196878137656801945066230418934496113185835404847424876905834894779794372310207848224863553230279360109907810712640640707552074075159092457006136352208218641101954053025943736133270502255069348239426015160740855603906662867220533132353930127877106163705885200362847769213437760036904201866115215808840032058468284266395895286885792177665121504357132420068579325442291995334052806200644919699235722446814800749340696683015846427331950609882579066891661493591636621446931634899038498490619737107482637010998985221387940061537175200339813881960958833035050309784003352511345781415392814405116054848651333410128278401844352136751945980212389649418575438373066843526708136228964360436499509092333554070819411022247886776545087603758780278207912278866046059257481236966156752413782263736072806668203482181226721110155999839388441853509772618562470805812549676639136090848189551690741798608731893187557224675536169889853266826054149421747356888728661741861514925346716341775893514939536125364725025243987531681825010431290395490083828641939826632313962750422513626956355465018746575093167988422059406295273107019332034289000906424848628686449465021040667715376934430476826822886136792733260302521737870261108929429024929115274621479829402263069796475637549518406450039378784357704031240453835034705496605903719544622325354496495988969981547454833642251547540545622348267868271212128221389911105043038212703195526858431633109864136436374350527387873377449971489448389303429980341597943396642481123176657334845790213995759701076481196039273764877261060120383009625489351593254811933172133580957462187561986965626898072127038610339832272640097047341835336082547938362555384772678459654437427946011361355987877532890424568319814093655643375292813854430680287254371009092736987545697172690776684803179778993425313418607128155881097196899836327263371926439350401336067498887582511958449871601508553830078984802807017782357242313938015629353328273336447127419071859067943307559554437850645646976673304993028756282509946866816450208358862933322909776142016764408997081891026410166836872334123594829088368003352898750208297121887432992203474557983918125613029671342871927869638334060955239375821776643425944417485340336811720687036108628429645157959229299706159895349818668760047411364442488660712778478021753351629142545989217691210124850370720827629932520936373418401103896385890008900370270376697143792838701143716355225785175032276062123945263523891675504985504536223348098351735807365388004553682605123401836774015087794512202006005448021090313833858405621924101263791018712188950137202341424248717732175788560749764902019175180356633708038760420647680852133841415837698034944469697670285358884362192613415815522282726565392855548695151071923155018612109599533508434977229685387023574363872987088037617975299574698806813667727466969773090485001094257240709579783819580836890395150064700854304802286478702413230103669068544413857211232524529248682695787269744121559478462606617767940736677570734888406006473538748647378338272516752942071934585348811996655963826775016330041784365329725675353275934391330832655127227680381222895031194107325069630302049020517324689532940326129832963146369810923611308167439399297834909721752701123058834040193554269401279983011635887987378381867268359046016111869405905410387332346751858787019685768953111455177986882328819511231576715913165807879480545803364521501135154235662729851428296075916189331803004570095575664040403001810573253299069250155714678960604856280071665253785402873016973748064384589317781243573251259415629170507224993668403857206014191209253546421569219894496361062474106021950210865733858832089800298124624273328602313263204959905439506835974928331170695497203481425935559792869069121758549637683798073812333878874881546775357638591117270301168076661211234452898865627287397349344652150449984989243894310077705685491977712004890376346274709106639458392911200912813069488165575666905702488775978046955309231985396007057999233487928814870384917605067428711781352220689246680813470664790793158504082060315348797659251425362639866916310034223988361143002170253395858639874513510124997943985789656477040854680616809457517332601420205790283090607894915178984067207917401555710113640217066655360783807701222907549113082660590976144681894442442819476889258184512127280922784567110843623780706566099006877672916532604329189503371654119999131514398948279688981451527230556478207593230676435441151728828142516654968048500148038840220987720647054762509416591406103621860801834763838575452060934099631236120917546301320551735898917023836023123809219786753205106951610820217666918076628143927038901722171622001366194828368379982500927728560529550418944082512696741675116917643289936172738727048685464821681088880317137677751260708965872168071640959038160093723261873668513732978619606930596857609765418219305700635795098768134333264388569102107016469299275259009706917565512652818930044361247972134985236665603002562798103628406122192521209553566710631405565072553584441640109248283836310426186542007691328580714705028527025446876743988921697108682584100833077868543886421100031680165894288638969765961408305319206438734538340686506486985370808014395169651322872557237121138200130042003891105334579253728759219583067161368874948477372035777562945938361423926065247481237634049600348514030652926873289428732525486352384451255851844353617737754872663944205740278958886134434601324089492238614211025932588922534478396170642079629330205098204109285693821082534547265508503598971449730112811677638365100698860428937521821823777143156908886283715780423361101149613004517814296048376454635603036816516348257235422454376247211442164936587684859580486133270592555793530689260908025675524182280059227961193987693381634359882593507114513773629000833715122148491278476484265673638239254779752347302640381167983965620774155613010588772258683986590516391707489654193120898191187362278822649383599408737192164157503610065885502231513938962392928907812188612496436992989863888677641477111321495530736876057051500427407924929648045112046845988901369339308983420078404770147698052295961347308239247515839669684639991594527898255168322904801051232723399584362758378648092875283804468440777930835496227502549741858023379553439087011991055993634940785485608238637719181552361639179927703285512803015106869084924748880731566831261468374479957368395343028262233475123720873463867251055481926768265183045385170500749485158185312853952573427927558379774385858758157355118128274842570143710264841815312272800341311330798509072140569478074006409866684937421982323437576009676066364940920163183112352055522303246534569941611303102214132603199055391311964473121835559163491949604784792978131247652212923248067317068466805203533239391478247671714421056953238484944536344468406607471411871512125339438130343788690113393211260616531273418208205604117913018055604647592854793054113269470282393259025248664587189174001373298850826183514536591726623883725040965441566443328516841029968503970243737781351581402010177682190319487557472205640516842110840228601442694964434290383441071303874520542475956823425126477741114006607569244673055915657242966363644127578739859462606259382066819186243376949905152984252442476342320907175261028377971030326017820425454661368027746200473198206870106638690761611497989280091317143607990140214022091270876091964179725259670766780850537975155833557865127299253091367897966766137495940311764510718508013961598418209950105604973114857419897457159368494272837782960971214679675229775492466484263181918759881384688518310058653438562242874091028959052970954637494721872877646870208446823839180160125350490921639190223109532301403509928055285030331912441656151648023794392968549004703302567796947939587133151047914363046111563150127219393857547945750803188070173699577264504814367359238610741410446822514361668405922601067874501588554374621440337273278738392284436539950629198004855492949440271137059024984403298549561586484125264096943582329519895186942042187812392855086328989256592837689466468786290426560325343063690924822321963028907508713685297889661813830265982566964335401561128670545904667774335751731013441068460062017790732252559833083041046227784824545396035141799768130849904970858264026159451435313630164059678470023737625154083202340851844547071555636324052268128058022052731792279383993011027558253020965587058579711440148303729529101395051984748249280076952638815080135222641543669567936998846857417465662586705165038599496704690334861534782109157325619768692232726724331191621587364153581816992953585961906582768622479753285136134763598285258563515366567118025936023880652751377713014780513558653903841081166252572596110557406806327813996338363557069833468018727483071154966950288238396726428657795039997978919230204764795689589866699272923332720962201969908971783093174220490601667775588811656442331790509931070289710636906660142189490090558817692220942976847595575844681132639979346398947162390069584777810343160415263609040519252895211749471286908678824414220790239986719501772881120234935223871301166935185049760855407416461730108106144581593295579850814954744192567772717036714513078000805427878734737466653977291089705815608405770624245996152821157305602090819192980125815480054679879473068253026666859706659425059987747062453527241173842881372191476613180353393750743738791910154168046666177003840050169462751960022428848410756773850680460598572635916682833416907292542110383487612857328008542941224986235384757991360667852832670921690689115273322120206214539188502897885202660713575259404444682269595536416189271273117747462967363077315181333675482769907346634135984503106122404608158482093782300177727713184749580911234528755334772024509513738700031204948188360855358816609318024404362168416053890717713290580955485743844325997892756844055197741134052252668904167125326180147947337869194461463495514968327763818021350362013670652957346311505383995442924239579009376875461363761332290215733618320396614245061225558414730703149132002629703847509338837042603283947960287796305016266662441473891171888700477362110215405694950713866389185915342834491280805567100759737273621798640367380310281971908706996599271478465780788321251446985454721257464864473190421638603381525511125546571309392726701077581046829895183673891768462893946196270701744051087074694946216724649030384470320185464712793978460740479158803569168539788023160250463074749681903406954320217741283983594610297753780024253427950243880233881737588165799222412348169587179361578269927540186767488738486994033574831903208956500179951352979498101481163587558209599222217241067200864491500759063168516866838405292688167828987400884593630359499377420409512343099391536046190170920339078173042212482799105878367437473046497557457763171531165192010309869928024513152336973524187542667199759848443874824013354088431009474310096293691995272727383890192145295390945455807764769456095954429992648652060211289061769419077571034517502644380925387280988621947631976676997702103077432036799443822571024880273943645659180889111763748819363950222669525385488642715846366887871904579531442886433021016062146940101144508878658165520030065816052910930471263006906058015064943147284398315442547359916769022301060195031458833481957297620425507494469813879165543887871794102238287907644033114420870502211809635686666055115198570011437859715125507207739604478995317995217936164317740069225331585041684576825098544252229567409006807964330648717562558082360391121535014961790125954115486455029717335683040769871969963528069290462542146431081558824932281963647185687716109386524502629889567090722404385328550703022742278623825871993798735900995570841628446894525139659651371412949028755828523359025670516421385934950817854093737846000164377148305037112910129311321994395590804730567106455336130703800256907124917371136639160053942062777264107319879286530616111056953224182007786794782640051573108269688838215873256750301945638660870240420706106648723303528625935681061202322298582794714571887477186285923647003669201752163582348907662731548640661265599795657699582821577216752975303025260533035171032548749459891178922676177333808694092125376954548990718877616975512728475104301609487840645267960423951099289730317632927215746355927278394625948244853132658164788196538783082395323862404126714525781757590020340199708914883537712816747792438658420460592695065203266820969019057042639379340873817876102730046078714931206917864346920750726687222768024888321470803736172573745174178916173478216019583005289805952697938847698600332941307962254438571993868432890385389305520848553292261020989556996602084032547135550829322053929188435053983806622428539838236212594367102627307204986950196461634979428689182471597174651390382791071805794934098793468430707249819100034916788488735428003739062702561914364774011869682369842573365126702008702654828277736817102881595311351199362185994684657341595425698842081715989622676091364031456230830709033211089285102639594225096102807981987737369376569220064943154493764814536918656709439648481764043534596380994264359642859417524009977258754365389337183649055991234042543692203076982906452483636646029640309308600615232758391238136785297519842775373473866803379986806160942781296621190355468954639483015790381830383866717826653647190890214386713226416384482409264010981738054661356365412859861859151212201716209456752494019404676858468109667782533869371024613617589751170067854259803606687247495820040250580423133389818005023804020304321948122101820595167843621501731233113722140588051246023400041861614958047708963512172633815647533521499016892849721749340260592449275437239928200704642880055315364070483510897003606754197478454297153166670321173952557287347293247380346045528001581583514710552675402435821864922674509332013944386948968827640084950976357083580622838072038006266926776314742795740275880184167622757097432294977187387231601860494376460353953873167301997672939846311817524977576155438367833774713496993098246454817328722156439650095988947619831759140871165568661918619189997251296065158824305888968732569700743318778841899390322742500139539573602033846293571782864659167995856757093833162534734099583507523798646593420486635057886961549868430979607764153367285670317016378391305984419494127098217882851217364348852169897769581011215313673063963926903986725666742011926706482065158936691794987147114132872041549138531935659762528838266702238858992078386680586586985614855742657138330009066180582167452228738522235253719070080789897772081137617996469105363541962947160211559316677863025228917076872611077148720447815985365216493649047077668035986397626072808105194656466916311094794469303789466927525663446825356752006539574724878936946469753113287441866594694901421427403803307504626287732885971392005216837976590587710815294404586328380945897273593717862192724269733038182685086385237676718008828748182826612545357233495171048629127978761978434794309237793210129661793005863542635180200216058644835537349548240765363552782784502463328090137226623183442770201160237377063565596291985666846571923285063798230747625567277386484082367014666134854603283486109342031959368618637563206899613395729416990506531190841391718157370316615127665822745355613397080078042108801510415075932073360301596255073368581788020970500991142434044835035464078286723534635834158901109989510543398974239925109526137692558200274978226865333054282474286369089870685037707019858413754184503286650986708090021788719937327751105350863333486346836693040419329055212933849363722640655461698622925798087003069542247404678905531953360383138510174693199702776515241610752865018703650833289811969540665665043300680552218331116675018021883941773358443802118514586955095123235238419017467786300586614050770639974786145330686880591290459300162528830631947292882216564911349558146110021635259768872807551595397528056668998950750555549535030985084701038872771501450130682896060941932539301591031262930853302277225638166297902456054077832926309329317768580487338922728194880473532325892430166512765752847641503090265993572862578294255572724093417846751089717232628666035948290505684163164197702264892394289528899475210683594249735529854635826524620482384262786346081544008771118448793660193874653842056961052312793648804353280665287011815275866735318694011918645209292263303884405067001677775962524357822958576411194334435594220958163975510216676573366293156598887744782298167277368347136344321086333010920533605041154665700828799290398181905517732668477995903441808570346797464014663835672414784933102922249148656284001509865439344085303576041684460130062842631895074525588348920690738048195121204920386107688805956944107199081787085501240024746840900161331283683734930776393154374997275122406507929970447253714956065642457308769272031656307836927788263558831004735981413955808542924402550870207585137223590435636717964301424605767384599402367254967076037238654750797976722454875791750435774784336564921564957820516199673863489434850195861511646230125317377681746212437362924359543685167723918818058574327194505032654010837225954188376228703078784093473771367981909281123406871966373488097782699141170549540609314462038539532085076240994331250420875455031308319007811739415749896860115933920767141373635289762669950411600128122451517184034882374476014064614682233381969111688693215342615763679614999331300489292795315307746909330930342484581266087129860492806903394476600390908413573752533611908625012706631989791228696300903144780800658648665182138981990637553476171980969269321271383434976644357772785325818901190387337776803955541769320975490797872473329390448856930294399917160891174416013512252260411340123778983846081262016403463118656349108459891967352128087447551591870327469260180276802637088052270886473410930795448780674376349238491494140969912317409104450400192457597225072224192542655561552010810054220787656666743298029994809179253109978140871200141519437650931996096632725269722815387940270946754351301809591788274770316405260557978911159062289316715140688073069083735385474833007338257981621414347655445022545645072547634683891758769858050739312674009145301794115113471229376403444880396408084963252660050957769665741480852328020368280165907460459464151000638503148811474920449325411400213525917716129368600910504105328238296748408945802944231364369779308003627135666216568780939912143116294395115554176950960150395305242112083544361490517877035120829196190645332502965907920515904217279497503445438749878385234699408191258808667320920837272480386822162917896969207604826870780352610985483252781584867656904305950928896425807666128439050160571590609686213303691820054839578292463859173964137622325367373677277155489943719288052314327680356834535696893010244962108779514074348572805980471637551122953582165765384765645910225779558807447188881473878929136935604481889687425726238793856970951546198579032584539807698012220295321545231919870685288860009501822580471338733904707624038419621827125077391411350635343282571136347622559918898439311001647944256366296808206929457718708862638527387929712565660616058782106428229853646155007210331231542358704435079978086344529732350849882035492223877613688486153509759534881761214970670678892010671548493084201517537865276360473844062820016532384111816062902514230404122590524894465153517326654604320054981562122315734493850681693958597532568824021288808691321759801920201075145085755699760405686612816013611480418972985912869266139667475049627892530184957769358870857330319340056108906570621836406198667709174015430681787167799886826728970165638986490805133612625938857861087493221366566545474185980049861623145677212691190782769921054948600268691284479811073281013313120810632599698219172107074747935423418768080634847373526828117500955335994731495474282017509831455401109625128231168842360554117295469391628008222464342181076641440589626914189701525563636483518637149626445169300874323288426649979859652424028298030695562135356976235782332032440024767869532070714940407374907132759244702812520065446373792686284215491940693888614646388555477809854941536790845737487394458305816769574463822820016037492988782245996968287193628189107343944493622295735270561931960223683490516672362691074873219818422636951712601990730240390464048373632101928764804699800581139699304364895762778733411357697275537218210790000923285469066824413073644308686012145158377277687488605590218917112095898015892498279852711479248111132556300421138662090606529853640375078632222808211202742441373444692734461804235108232215519989643823302225835323505441191045520335997377927687864239809553899543801740791379466061922882267015108133258217181996132187106236420628656562077023574860863767698162956947197061513695679126426138466829627315516112413153012441771177523629658978157483722234934118817369818020200497021997429598414744423646752571799751780412450885003596170821047094529322781798285148400206179547998698847769343546592838135173587448343922607025529437140455458908848984573869026369204609010953619383842264970033568686984534751034102486687624918815001605238925988470209954885103418713320269709092225794481405863289334742918817596303905173164833862045420640752760060598682525089334869374856425483333102755777819485033018034736248651610348802375392715529815553754625426942268887362970537090448223823370705655174301845821775093908044316683792700053537955866459422611413961711354497358734834719394158496725639761306014187503338274993949268606502583846033711954332016080140039038596082560707264219325350487895013630763135335110324183357717456131240988172246449418134592416494591258804682696070549878505769927413556531371587664113949251442606418524737249388326568193983712055452836538880369344928110590197334585755622799230641157641753306552924145001373469580487097446812863811692566851330647396814892750746869192320517445370197944084540700800499908833546639060661523370293083421997007815560604319387457574261652999556560372756623288561498914067897008275346978660103249244184158786587257827004110521184154793286345564879511869591702733432852643902719530895374895523127613573724001674385559317459947478400163611327664674459075451735918347239768087885619381417186297490555996225778896809386973131181119059386177113828836965426064416650696346026630528947613667241573469381702633085525700431010544046354836100631048648928156550825988383410981930336463608757292885477137117560642353787151688353734523725770173858692881390014572853594029596699395735887504076851175276717259296810096725092538007802752470046423206399915400537979829348245778094207586720756322036284697554814331165252989972256598439059314345120968021245052584148886214354003789071008539978016864041152802067784795116920819611752267619183496571424991184552513963157265880455173129690541324030132214970565869451767630855249364393662242836678883393075721046976625633121776235912206741204814948858203030873896335036696084094778004478119954556053404423972341635716592382337465738837932882159915307677687953449761291503776146597962708204676836301726092776008604061262586595556545296754049386164347168115165992426345635085627584614279237146888371684157346989672851351412844649676964688183087799252005274959182822098179889343735880871815372730232413750292295318991643892025424899360353996143090609665703697590738921542099653413946956917958963859643672771752177816721973158311874369031116740627828747143104941793130445182060344455747105157203878601027993560435866284346596573060627483196359418550848396088519291284470454289648789108166748563862189268404435191627132914634242097314424645636011003692841151666531323487960754361119309728577298144942816663105023087671308893722595625181484734612723637317092586141907216204530351119838425996370919069339537810753245182220150734611415893536302056602747462376530007321585906955566882024282444932525369645587101489808401587299345857298832780096714018888986748525542160717160775340041714295325692234173461932774285091137114589290774572270093196460659101067052206732251855315084854691566898422436916195283485155843948298403203932781291309673346286090197204561785300483958805454992987160707316611238974459043172972415749049705674622850125376620882443928296777261435044020364945198993873222051691568222687053848021402574833435613548075329950326219047757894503629549524745705069258302785169368814955189876212228653917793696683389023322636450975753034536072006545220948378939250595456884540277295974541079414866590932330636101623274044186738675814458863658392080709144410104350617718606546549482995318995154904091244398116396260113813579470345477161983263619907749755458387761226100701448364104590438366802763455763593869078154077333506542337727603956156776799279388399668604916380763805023249843043188259446488233352253878544738809897532708587958026368158522686869250003647587198227510947709616903488459423834850539267210068459760675486271035012583147605353005077033251961446866545730869446080611982356966741462962784123470116951571208671870899866890594885213704611604033715861050923762138230007423969496327139378005797212045835363980732186659604851083096565524488022802599441226038686835805526165782336617322488231924858294203773679688788656183076687244484028087711470715563222002087479312397863280717906493650987113587600536972759037189902759334528698108457263731099430098319703280988630228121052324355361854969707316596535899176191936924266469592603050297379239002281017463256141534579372206494890589022905947651797681471364935302087194082493065793635472700351901469546498507344200355215339370119436428987398587124123097467144708622794686243634222218048800345871011502238921596163988397141603933104636430077631131476866100269291042125068635034803012810425082944504557877058706016574869875904019028284553245753781499838827998680614750709067204798830359459719139683115261305671271644323488234598147283873845514263532997604220774263778199062053006555859863992518270305958482974011189456533152427838039138695706243849643682627006037462542202374120310401658624327084504872183679353685522107895685292002096086662742594574695816803701968197699269834464866330725370118101789098597338790869687611479567296590756165297165351949958216330659564468843394707483348851577017832112480953344638779677512265846284707419216397170500933532997813552021653080901615083109749980861187519882572930761882466648391462291654920389848959304366579928342382038076081941621042827933681589324075580850372640507775774161194005279022908580190424893778779886481688744179243277790200133278571969874720218096266839754667386069580002277075401886934415555226368852210877231979603456219316620769046407167986899011126041276319172670621666403524216713202806144644321736873801889254385542500875848034885967445348887511597841910958513808479053303609603151352934434567390533752789540034387701229612835699817004011725017012314821446014551889321913494408409279511863355381186510788818687409780892670273564851686324563149646370129518035151805959140450925774913860291103132058471139681995995167389888170450075791487152617986168208823293595103956085330618918272277252639949660919121173844241632478680340525024178659821667502863482533408037307907867245578777258993790957420992159084853658138392432413218690186177781238976942196754510927216061715884142786200621341273093117511731657092773791679663654269812223145630320284129050908303215110808372974095636101491472843139811907250807242511486313775762414468045470917130272850163093469837667825344599299168493734071248489874368147997686229761920986423656864904655520284402941750320917763767509620289460385225452743293796908225962395637829644735545795322234897730507742327349955646779312429812324628769750495967200737892733112502889571295438364949918644636515764474749749918259142544210565940670359159150830154094015194514560007948148593060290120806412824095455230061828515019410850537857517871186690527675813213143805335767016138157570490505813575027949630851463299487519478823487941556074908876489494549894053007721331465590696003708400989342397549152736060138095940727302925441700915858053687004176346535401754378068610796233041391449118884322921976404939850729121089077799687368200545160524575713094622040902027099860195978043515605979725817556545856867532198061351130808715749572073612607310034695080648879760864801803462952184387246052817252996821698614663159258912657846929385322332253248898844138850666337684657830148975457077652945335259493457626291866714899908080528765923809469943662115479469091491010131995486040432912544840492255442195197814300156443701842406549079357870785302326664564588352310792423983118573804273178132436362084889592597153644344311281627141546672068613308148269923437656395325518457943479767034886413142545198562896746913011017180305219380168855345160182302023325383531623810968153844543033536815019668245146598415113141157281171347169866155453544997023759487212359500201593624143108778436466495479156911093753122100322445659404783198382189216575895373817357866592422590520758231533996407450981952878019057765913294437863215007320414210618281228202505826509112614290303662892581892791565855775345620079352439517112529627568529660517980318395075773458466577295197687346647012461588917863210621815604871125077176708585883631509152238603859214498902816582831085228715498642146626581284590363908590193796074036443215007806413923286547569892921110164935222397486706913163314248019785913385580853000056573871782635707475489751507144695631570221723938054805832158981006650694626339753133969826089008717058708406687778362438953185450734268179070007135661813825565641962553862991436514221245337805120400932044467856585538254957583825762830966844508018273329649459393527172286268886145334511716122123411475530334993912214602248966999347629313738552239510369380841635083364542961794698709634459904466714260387450043243801838814975180342053369158971565957121311745515208336913098099069018571813124931497225138623795835521995712104177587714809944341592237275929961170395201232498833645526727762618313663955868096544650061213644814571898048214464050206794959029097710902427198548171149013655301559148982414842455561691666130988174733966522928436290824120445785221889251059924187368268578687933217696634531013954298423244672646056497257099123060311728824187049208103500473303647067702769998052841389356550686532277222757928949751073074766615397136811283517907061372366153894412392323778134697342434340831946137076162318795130302817823578998749045363683432587568247136824001350136445630993832761511228851781426494885866929349389148243816910053427803733492198641951818731200027041706690316258438789777697256245388812054316198275458259531140683238018448354178497337133665383486263134601650803724457343977375996632650691681179472000238535605554667111738614573815817343867469580094512837802592932861631004218363563473656595587510346977575894522217800723492344187888351163882461034068264953488210545319644171607126805562498128535327920055651249266064347973993898810424564223926666915631789964711593453568482611261456121257052404170736511896471535174626761846609194236708291829332184946908368400223875739516998407331325427781746368070547440680174842374430707384701862955657088267623878364092517084746328874275681692942006293239060625161059030316610639700164278553999583340697866571003297867921202598760672799043447333963763393171986095150498272970822688982500128806935704271621566326460863886204423107239085568509706745370373691887928929097016653667447303165937304238015768255621860384626973290906409431892954684359096935522084765060464741036565313624076315578879878941645950289315715015442842633474059668222241466442430644636126012453976868010775677218511056955263311014911233329851047496201196092404352574286046237622785133054244248131674995210204333104574240028854598399019680859399798483285524281441633917990247998767218312552183228545441581613056127653044516649721212889382803775309680180803076825610099717931292065351772440068189257169228413282718002843050239008959913990635474287469979679150644411403809979818933565817272020066251996530367017500018176012927131942223116260020376403503463627208206867065629929420747829369642195063661547688228745616011991780279289934617206353385220648553322383747251880378060657833519276333939030450894747042623501443193020211084423485943234089052368096086218497009062071898216436059470845748880048532698910360274402049770280448485845572893302087922874738108259818427174694952519727370238726044240048089776893874840381046787687742703777488971052576317059933819724363443731410159489823530952575269518986756829660936249461957944499829513366000224142144582695118187987015690543579654121902640819594830245244567882864774045695055825588329863279836764081402179604433982940576536599063510930976733858128604965051669074734903575970753541151968867308100097237855444379172434505401788341889590185466714445246688230497275602490226347783538055256664089614022851231699445687017767260757225404669504167902177765822905451623210881513101450881776722111498142109030584306449029778833238870564524024144716348339041388628672586421659205636906223024599643475649124931106953978392461196074818084707500731281634524327697834115934568483978870616672256700512487532960310941579440342042139183701080682968080245686068379780174309736462980544906045964542361511659327032223675001841543664004101095812147902847435698090757164633697965884558043435770267623465837223486333712181425575017225709009781693249554172156117055174389241117660404198004075423663315308709750243059088821104182926261320470819933460894358809205795757725592253294047771994846925421467506112954376146922975176052055897100790394915987371324388546795901507896136155314428885225693019766193447207920099999116789271663378665392734572427434356738160073245814819497642404992950612914060770225807710432082489005935097627837900977649577251969908173978903855982337983521077000618528608684253621142275543360253375489622494133512982986584473188171515557399963714912686285084821575222318291222677645404767946358995592880472288841509827940322498086463209293425677066173011008648598555962665071283801871168288315191937002911211724210328739285969314910419048006472419997348219907213755864227170754596954190787669163212436275560592423954690994297300906444160776102228837235215057925562126058802352490093655006257358937526602464384001386775742149744762378427058727783888599057875812843462941969676650756417079903758025640634621968044283227470091258873437314901514077703010500905546070860412214487952959127547409351789076190826711210254058819090033335193975343445103508758120598163986607272423184977214416104182287639932827051585843476889278566795719582502835759494101296036748982493833465775347901905233718364876248070484915450066951054573030964417960897952852609397930451386984711308357239406991794678072957176801103356838681219171506166902630698031738817119152925406220606785098915630738783112234565918834359718986549538313069214827385580114902885677023629158942959287962252224680560191865844738561743723815946261182627085953655766281285552968860081736995044446097792257661557046365882655757076839731873080214878325012225611767475824741483894366741580124888359086673252258835531031845225930226209714336484501720327966799412521047529910178213753049083172159824145184969419365432848208575069706349724697473136245290220268360640526601215721169016696205851409784458250950613488657047377269017026919520206342504494065258181544750303838272173822653221894568119275770577207732870496260089590784265850757172308947719752593438578675003398918526237959663287288007841566042053832408540574605425120156747514872190148103852441514485990351114940938741796658858026548318391242553546031280525484733753891195291242024433329289343856193496298010290638915908428601614640479377395538045101524015724713968188585889169316371065327176869103374662771843734469129942476038594831826041021332760066891522603549851275373244030055973287396719336082939081677456023775353914767732492217530228360348527183534096047205025020854991241291649209500247338914294492963560835710413823304193164498056107264613141666517041862961740223823888469618544991347983409041984922926196236009875309794526709763808229447663300107307662877067678982805837405907329463879924079619942307135756059126217573114083339558388066721152177222436840132294399681863687689548488594764910045489918389843549167065647251525148696014410341812058752893594511310800133288641148627249853250581684664331077465479293986989898461322846354417473013308082397678273597118755640810051003421876570256088939690830763375170895981846028592565329903959927298061899907636380201886428696830337920498450017429456989909842685256788364681546525166729686062148705636908085799460867042111097982747925683106095484118386746824900045585528834815479070282644098972003306356937187651948076548868122711280482218054344689572692164853582595856364237030323610430849337809441782715551648677482218685569564912413386281889585482935159678436596222517622645269691559731949519022733905531685790039359157667174136034709494255105966595231016064079342042434733871979513407369927294014681019068320629454523059505704550065153417601493224860436728133794821970769448952759212399427689288394739349256757589129881557061925420287191570872438332569343696694322214901434826853166690288754359752942570044848475693462575793130604964421072484198747900357907863920830146468731710026275802338570145534480191657956523380723546899825075879572317866872005086299227954139233712485922653338272955145501235930527720677879664494961386528758467316197404090686035452500676635099352329451072642757095714572239263054235563382676802850917706629078145890704779716402729353291897536754949299728096687958945056519718303839342792432970439153367940411681885234521661613149370366891828795878831882380714615998214039779773410341410607441744793373491080920255855183869620920413322414633496981790418209554208060187113415097779684724087101640209430838485969329021317585291527185726302264224441390140141041688543737961372825578539941517457711693445841957225039954484948717819134606617824301307727271847945921771467800405446649061610736279674370687116669947438850194106862831425473934073686767158904755400087709114025947735031268978893770015192495080116128036185867916684744627195854948861788014077962068295128080563483643255640041998920404979460390901741846172205520848017066343982618180565974503928419647924615567437856733916201366247272354249814922458270801812987323201281150828143234874274165736215573615562050930543604687616589382861537922667100753361656586822661283517218052649330628323418590553898012339404403520452188417086878211259667589260663823828878428781368154945705288313550040105393824903335264254439661031532720092539836514708055528881715061218745020311029345543769072821836400930749380789546938833725088916837479732068204965685110582456438600570109198609741681448677284414605493677904017192273117746059819902012750746626428563332076939707651988497769186934242632465443343014466281925822939717033280083940919237802322886683601237200867803479531276789521884337976881608986134693008643626161772995682953600540114620077714524896844818225118456543779819054872008808902530619667853234681798899841173830319865717156592405747818730159733766978464547653128805416922625233320717618197452387340767084152569511884640207047137956602577612969214620407868654150048477230526320839355995296735395150118268929322266652213773371291946242961552958408109701541906981619695830017720371924389294006197337476672886721348548670251593091431051915111266556302760830404558027575122452922774707114517263800511519872427914382199046218910053717535675804234635684337223849747115485606606355006105414965806915802852195919994351713748298205738093679476677322382766382020020933035602485199902555469583912775654775559334563976196732709290389131611907448981870961298920904944746695406190156834122632292275444792859773544101849891115465222757057427443234721008208868331406175807233476116438986067098979304642354816889531941797678342917396517279259238499377342621248313311963860743354135582571126633262687954449367562174405415905205515813786238611474958262612361380655623755933349725471344870855812458809056725983059167464381580591758601891136343699143187548474076521172309386395926872830768400582365578364899273616525109463328131482361046305722968470989878705503749625552044929731148288296422605114358631354043889314901244766064285465737007161529595512919112804377736948732185354327383415546134536105766303028022758980654671642419433116336801862614813512160546332483787222557822402905523636312446643703107933833838982246228930798190381987528708900050907670734799745671415168847249743285607362724080125534124392205117935790185958723498444921249099794498757516095200896473390869569104369556203666599731317123518485527284965623634062835710372523676484143967851998005544710048526350876438099254292819690328444556190248337574364163128535630481469462879098431871975690528276056657340645753021491269521618929514154859525249307258970583423176177979329782198196307433491398147165609599669180829022427912095107793971380793378591706463244504847943095169599017695042747100669087805468516222817606347253446612802593856574317594110724722788624950965421820869443435367804231382968003985348071075249634171705100750194472972520669621811588146457132280374764959787397465648886888437511852617202999575502658236021521876400307904929275233997102051412228069671255109183497497145115802741454928050227284678406024640201764099721730173314439464938247809955976559823256032322534421285028361197703232003175318909296084010445142880746386816247663801503808270307789545622516110294678623513791492351636090748865591715401158674939627341656613836112596975943226651627372467894175025171806909219935707653220486846640509188091120182377124531616570235529461243692535454243808546810072571892972890689641033914210065282420700243070192522492622775429316527908273638230732154484478236474086312256641179380059855340031200362508108029883327559491220451529518467062640445285821665191167181551764122011012899949430722219714302943940841297972646133640439072082627821302107664133965071700055234444700490501813579812909706159913777020628131146599948624368831330758282273250229226956170560962901437557942150455145066321671697466167411466470739171293711193554006665446514869567126800233349881457266520013161755378877509316616686086112628902161584849484950579567810757443401918575967207975924212897113194921265559006149142686957092059631962275814954771596231999280215343371952968049647595412486482568240641903632222404561246857012411175831684794710036688571589354076245242938926752340564617507456360172928452492743402714224136591320213334174483057114827936556477926564654492970671458204122242867724819901503696104631478486417544476163182968840284325891400584457128993590539442121937584292661765915886646274145684583504770619174199774993251731234001782473322861960961848786878666943173087866026840782752874801851966421305122635142127473053703572061779804961429890492442799800966705482587888654116993670362592158374287721783157183801472289602762167501358667246885810169510575999925182715115954889447749725053005257371839026820617677955025035417834811230251453525351208499455469593761773153302673350608370093829821196212032416803380708710724119821074513385096612150722408790130986880732425192721779475448147411560938787010753612434088050882279725926713524421649095022288367541618050491857870709361141802989042907663704229127466044033548813367829890653327994846744247885152675974904964532205777744702567965510016193401855886612951911995746956903530411173557124498835277590234554077412227608036395994680732219904848121337490268747625820074295553699559081072319484068428795444024969596509353642726091748619784103965379386685168800749886497784353561840539057907338406958230179801959780272418508721326310254270094062892570633125760490035412771474022476476262758734622214831360445201531936623010612869095604716428733819617551644259812873026701580310827102888104447234750657168174045127250046317128236757311294695994808611831277699703608121786169927900934209732317839931663715451433396411351204797095076992585402883021310453104557600086851710052819547380177973900024190930889200434779859593394248225219863758122301462635540744682771977052303649678910246158576967484976559046618011248892932474968265988060906327980841162521190497670644994938748790955089270777762022324454718637453977335077750730605025117422117002639857162852917029486412378326217127893475752420047228059187519977270076195029122619797066012672643360939692661333527272171298360966530894234605345882671910963383408555662209624578913983773892926051719436539421430257824696409672931760818234062492543842623959128107012433772346532301374643406056061342745241493249179122504962065740337006700391249100879125676569922430605409554082133174561061294891918016199630699768993193651555190738542889241132178885652566595081354002758982150855530009705885617163213741543255064684334017619002295517272543318797818906754980807679929866724060716146170408672861957408432289299007131732623205773106467275180154005597790016806522705648619140577023128216955174788780871786888657647577393965384358627775838043783782444754163593705600900816417383109736769181388598395714953793102993734196023104020114174709172809270344962871631735575737088344805203642193245216684980950215306173035632155861837619015058541251920348285779177325343869635274796631890801408811884219324367273961269631923583142375683083748319042929107623750192394659154937737340300376960962583735889685565128638225239718770414726316391190884323606871483819617727734503233900606189868440209226225046950919947451640654022444362717833387857650583902338647130105012102596042501457977129698457743345160122256135434487602756120464265326291222798671065204646901668182406533799448521683481477877336225973965586861397601121839425724603468789523629526524593913835128614093341220690945104872444455529172302195752002404576692438536199830967126379581404349196665313093150955359871783922057784831643578783498339634041523428241932417935924317440064594694875647355628455627785414128213298503322683324774235037383171526748299644366728430906568263565310323943742173862712454443520691942306571867694797421865377914776618756584558789181464663769724012426106788875912002698698566854050797838340529229246897302875826666871479470271045566814312509895716193200528614464318415724584063063830354289315911080005067137121116625643631149958281969220827417442340222783525062274547503878902766298776858916209550617536577905352504366963447414906752005517472765515439691000331533972388879276782553973544231515366157362393802881985836488850935454686433445303326185641710080969642921768000399550716339709383197177780866421272148380478326578734088043110671471132025775843499377380238340835419755698909573564282082710701484238685511364677283130875215867240329328333841420241554945716004736377465665576961028750661285084796165034773192603369683162473050115012647817316815191966397020597734643269108327139667770232583137610926174708146273119508335325119585947439536298649922430536563356184828222276191499385372694779691264845569332889154833760656340866689343469211961785834671115047287689280142919703674344588822132866317429953751589589982246527087096041665125782363262541488168329399764669335745529511570818498830403046954819568210243771416306675462149243307758427626441518344685622022290266845658772549262241265186970099823336392684254462968308862524425895367687865544417780755775152186102702682580901341855716592301790694504730615736174539408728963083925603163045147457761522730130872251090107540413736908467673026862340615837168600443605715457186570991516358376161673553927179158377061052400634745939765182579254473133485927336809630076529892274784175342640724080995789242424413320128203559769821138213488467144554478639977222607932988493232003761934007006109734372370310180797807209891637942297400342777939758708515281421776532824150516499795187502594097318922151266200507064169150814559163990616773708948603769689047188653234690604134165906504948697910557231372885468797130827116912208900682671549752590479438070690296866137971986512532225956470243688899770350981038561299738634575356138505110543543934195918547560609214958496534322937202350786785155949655392887735520916967494935241158304121635576906382969526616842883669804435192323059124368081601810800888794058000177416177615067128060429232581434289211204326910320859752831543274517064324189185969629988947906956464207362690775849187227827460070453130829891829672925864112053993697621162843867552419619886658989614089909251766963153029037213466039361532971867650748477924933172287861634735538600471836520017781120417150430711776828433356671556258215629825750851322381023432206279714203121672406855109851135855684583428899913954636563404318108201917560119839434853855686841453840580141946666751051410630832176832980187243902822869158446447561842265686054534473862389435417432872137567542394564788770537961018875421207116184825651525877531255725230661971271565621870919415016797210929950748899289054553634691765114076352983410494200064606142741258699492507781037590839549650548720137261964583238816182022457608611499688828820602379879457881971907842570514117801906029743169577581399301784181805750179664253970621110564378728751027884452926339019769713548678074748332861982806778697867305894354079762783003445750230774826451113464120808206872838165203559282474567281446214499104967203707127570418361863771659430307110086680574291702660215771121001982956786654825109528569949625444765635256560922503317336240817288663570780811344448293792248903333567835741933057674543701480940088115362240167502314887584148619224880520363241611997554848650146299324127804911881905365397578837032095408419119513168309452222226168488949610132596800441810436881001315473053852919764731775372851764093299147843110056425441755993640322986200552209004288011456881669891405613190805268092880458281796105850583706045412124091835261640777677310468586399792453839651697355849873091214201619668734437909409262815455268587295863189632238574897059416958518767995189928004131429854404865782771995616644469027907599282916312031994854212913460656499546010334595433606466086853841584559602076027636178355591783158961663093469459209461644214474221732529127021668548194580485319630667742885941726099601634228149935079423390424260642197736294119667389281531116554738641400158095706561633858608578374743401435275814160571262370783855432420709157857332441519686817274118447619218719164527091659380455341402365180688824722218511815291056095077422113157659707790810811601802591233146654172212097322213280809743486600219986927389601535757565529921850386674850395965195710257986524680100556240970159547568762938198261061694828511093047141350851782806158455121279677863068524125927363687445834273881770281021320362625272501966023826101074933411932418259325537830711281595349948348068386885844496697096095687485545973693197016168334379859851078492509262635915285857330967603038016693493498643475666683237850967159786820930068955100824858487958119428786502261292119183842277939647477425555191390698234714139459372182148795204499272378656224056023426884018022036628362463983728225452709101191079697150011927604423294542447441324517838206009533043728573078976938110240416057405896011165785977589789149664333053126634156379975166155475114346665660682953112588836994919435171596613962690400121482981836209666238373286336162984771411977518002099418186243617171378522945270073079013912252797452965614922848596433775105221070169359209323688018260677772186711690543467438924904908605638295015261273507804942634346354444887461344275140185527903283348283944117569082910570794143332762325475793264116839408809310976961783426125848932481965325879874849814196303291368279467153293632133829057128818720675478452565413017226593802481999155157796491272140952327111941175378353633979565409072018591166042578398221058360333471403057170309768737434470454032413907633422011841658853994896870047574064887144402798217068191488914264708325105233858870757234729371417054480958670092709346267694653717316848162417766779290903453432760648742718804908030784447048910385975862460487316139601182361374425529410180390323821298791240624908254461374261956504602640934878805687309336476182515836205727984950410124715297075406284176148138979317780467011214340191652760324486507390950483131232444851836282188958559552076886534830907686215550037992850379178666558996932128153030487829409366298061918939012946842996097787733690757415696157599149773439699428563888221818057771473765615734420158251825090349625590060188024505354118797213580465639935383075556199753639001293893493262569185350335868822734313275037073860541121927880521652376720406701863047859079199652525884676185079381040733144087898206854517825979278146685187208830257087693146584847489297755356434366317761213321582341569266332409974167115551147696372152506899067960143092124715722245828776908261473000835261520425785564381472773088222428128148152596476817285566112819471863641581278993146081887964180674622206197088531967520132668597277955502678026471941810276351963440773619093708862065633184281412067500039063624856745450637625478988767316549250369340916559745724953333139740250295070535599127578137077615406246533106992213883759272147776601710562566577848590604143974432362533263649188361951338382731926891621883793963009066813156858245499820043697924605111387348935189859624903300733884783555281089650320863984141902961053561399970883173023197107880104663800359602982757463254780007655199154779956381676184353432840921708107969766110158182367857062080244308298293853415050123018810245867437786432847187155799519362547678701032633438318912288781004441123038827546569941370557149588252034869172554432097061600986222313962122291304955957328911278243747469708260330289734946846374309010733470292239537341380181896846765968871892635322944987728337994952569446162319013867720705006073829101783454180004720181978948068391112167773747146805717749613121120958891999588309877801862076018144778159708558954783369613859238463011254237565286922799214416481240067262877304646874221074214408721134002262802674750919438732505517239825641768130644380725828619564526950743542815689949171447986952159272189143906959602052751508265741483339418788908674918051944061072278860466195538164004239567439689975405808965893585194038388530031979391380855717384966203762930320226358917259495938600389785946254117988384621217068620052358657734719754540268151819174250080467890553276905965512513785917357586303535008214393694567980591048734481834410216175483340993068165070228789398005390227727132449579218960046948817804762592121972895088350530710540575896085695442014292145762934016088862286157408245494505237891479509717975559163127796471385299646346142195834286871467128779863817136388416179929915383479325964030564564249100509197389293584950961978872864992999675202775730907298389274209647901778359505539092079378224665994364383900383027249646778897967389508759461408981337535507174044248630283817222343396743188129595615896125756846448569839720199121666136153408905317515681988533749492662005280975540529432995849436001059259244512046658914095767249623216257457178575211531465915818684594340197381073142098715359040984656324983039937336379571469072287293226764719449367982639563043178852661423065063085908701480182907152958035761562818439593194442438571226318017844516143469283439037081815034810017540149717517968753498489630445715898635330905563964509690304504796079971277205269527810713941101293311592885421876941835983499979613799991828448277539422424289815958569547878821528718347924844237898822807352938641576928223668108795154414411185914895595735758627085322277582436732358434738594924276969781104216688588268540922226971709213355076940023067787773223983195561220203476937649536821116536344697557434073063242474669581978350626676671180974938740232884829546076916073519478586738610949215311859444717086095057268236956013471102843706437549695138720691444804538678017213027432541483859866237202159208304664785525480148532572706032099825039617424771988578185182584320116265771310682286088784428108753537664927068348460429250392034154668605497158216197439219165605932797133424919603514590362874399150790209481510372749988147506312978271454228700809387791906100488753085366586414473563324719795965297982098912958033611169323335047012863491138389153910717580119582941123556882921457063691838617154343729544613425260471877055020491276633643663056324672616090192153001594841213025620584776107380708537644574650198167717043556204283654259810477100269161440733099435832505786173402998954169943585081066870901211771104929459467365927939952289584855539931096137847648819575507227164199713221039800592286184759354938548632071076454424693995133964110771439438512580425547942481371338476614553596668395948637678603857705908276159900992637966703453979388086114425620354647382079560208604800501404862562105386881631744533327507851798156314624611468835765451203632252037774807094389215966011436038669847881828254014221475400743846933405844052857940752112206617207651105735287855104432436874213779009007733125636127486390156217370111454227756332222677589991149093627365044668602701057096184490781431037371720105680914079213870522112387375416708901754135802766332247974671028350216998315705367485987475436506452804273980536112670333362615578753106410627370143163608209195371941778960242765353377699179251195857128005873879729672337831145334268195461608946871580238177613667864940362182338274461734122607667408470606641740901036240561404866587332236136751594294782935159960300768616102594660381107001721796818678476073631965920424195576128545246456859824481329650858118632968284118575565121855580013589183163850298393067175062194833034376433718717785196171895645073961135913834261939345175992156906019292392983203892693230803644904598576441758603861066926881309155536837967500560072681026858688618873586343200003210632431299408063278565518914884472009852753651598493376987568800468487198607651689507412804632507000474544060365244716356630860611834868776221594674823449222929459298574478096881407396178426232603674654342641516871365340465002683391357858937418500376855623382633788486702061114409081648492280251168969123732936862877450266541564074666901590396848907452123066520907767684611012450048330050489180165274573003050430169528995038188661765297081779313713881355610389818806215129442205547949505197218224735387167161623964439101259250951470839938483449556097092364641699926623813618705949372825922120110289436303109150009755334447083000591538792479735552019286428827845918785078432486474411380500089139679271766639855231892981639747738284912302877587801819272793716529402231543718464643533063981305871635887695107225988912022495055879396659775375269774511809355975650172399793958723507160847780727799049222397518553919822216830448529118945132938202964989463675961185392507437037343488509048286695019322522869063551048593369813219791085589089832567828126026406502320857188784766373432368233495381780341503550080836592649619227564294583162874829861378536845116781899896539880773824001445675640647469805430748243061068788316954295731272107430399741459900688560249176563899299259091158193008227839561142954426496029320501641914632566919662172121111940243800160931302124087602456466285248331069141451724892578077765749386102400642710496034065978339479837640096303184318191498098582697813244677827903199991942442355273287191975125930875303670197184840890634294524903745232062443338550403215946517988217847161279983313853600975677022467328909668448782459296853935250155638814193896900205527766200813028126374304528071218459688883095135341708282014574921519536631754098633140674170985496801251326665081283691042870965885446796144004482717170692551123712534387340767337816945129198226017715026790343933418689656389290260994550679529580787136934208980266117360496891716949610720516869933590978681312243142759796479432545031052795783555713500107695104560071135608115485421202888730287501945571778261565394179786062460150701899671833946768002077234206867529707935213246789115383383162721907118222762987753680765811665906072698821735461077042171058405997036516222678412697377903592119201750969590452731051702965094725330403337490031935958245911834239249000427421686410522676305340958187074153864344139881650167664698857347963243275794354053145023037624274345959248783892334242188092985543516352108018269899218372500860084229933295824845847892215430391485045033558993264040509154406861387390954025769469175880855548531511689308161780747809825625889988903773168284103790382015914960362417122373869822976547464847281891230961787144620294167933450199154031552067646192747722421501536125296617163119973261728293623657946749850593092237976632946303820381095770421787203617696115119623503486843310655122477197685216961574694527272107283669426962203683372803170315981229396750550482245612331758734995962175953359885325368847418424227817192238408783621905264042563313918773169804225815709621289334874569693395859201010596861681023595128947771548873573945439991417686402658755759507896166016752345918240420414324812283095675753434645619923041338617615790510831389445817550083184774813648914757918351493610415816649273658420679575418202173424025085093571118297520952210671374458716814029045929805136996318153982652305357223846900317043522164888609092864228954075751402444112074238352254759356233869062049145921206804854186393458224021772005905136374451225724362225861497626329272657879733908639200966992243007167953879623145852534862723868976270271901118614119052404417767460129414720974496893116925952507549204470224408976225565058274566006230647748043895360906945823715999207885386306830020751604666170031745758990179415141846472004657014215208246602090917543318899252568067574227016056873497176261679474671134884115775455858502900442648752885211417208613376826169008367029422100351420275375226067428832164146504169245702347443474183163786291009517921702817673109774295174739824560033160937925186155365814207680714858516427660047121209667151880966551465563880371881818850948604296197042589853998602372685967565551986947059685529764565725015709181355546630893914403017425868203945341328598630204691319026164481966527535140988809518128980433402787280926653425431704387361594151732564800905229854854099154851788429377283184215295637849536969904168156307782232457197611301162808383610243047525594497423112306689282471618957903343981650493796286741088176045533390151600930134521175058754001855807406512953147607254373339087034552486564272372405915671151111671035886740134601377411030090158050079284669827470610306528580326737064941798618131035663598474158007264986315329956715109782995471506619140079886464358181502904934390352614521676054902596942620577145047626608306407041277560170951859556763165894126060650462564288435755335076107009864422831915504482912006278129114632846105065138792583864721194981122020030778957811666110162977429218250699064778432862170422917527262155512041594305398068154871494837703895954397669336693352901398849700928101410330091909419937406656059484304793615732033322995602480581154101953706314804983935340827291860691842480174221772155514230608664889701538404465198942254250904964251004459075243483337595070631686989093605426057728414185289985239715134831789277966257406655885420432793904532292418415632124404329886817867147211013632151869115774657191852883330859744921730665965938267355392438544006780698471020587701818452592668448135169349364992498560064423256880888206725436912168801346806727989159246231974177973316521779806077493606860342557504607312308176811607271787984599639224545762002713624657778742323806823321898165083373545218160952594635080267991580423635904361563117707155984789493982493507687777583104906724758784275669982481899871550393222149916440329541497646069163364641156194256882194073657344141777746445797878607740238167413709190850358004211947336585585874553629115842379296687262606041506703849096099617598110560846226075290201349145676360436466303206153035404872103683276948422463774524176896623841087672950681381832561188501878576975275275854966703485807844320880506854210169227645068115405294814757980468302621956144190931595435573546722761629474200568854444044221041561136891961741033909499265563912925961385258091436604547075320216547444328153581200559441753722686166630673071131148860359211239569713284273113543631316543471419743424196890509759549529057890218315470372610445892073918107139494083035643082770638533319433975982294970745631061476477946200171522536817336377281978741400914788614631594696310336321553138943060654815476647376640569958667957058604354423442613315928759783617174793537833140150595041767649714430634362476007130889249581095759356466423835784348306144942687982175746072957779340714273579597311794122857571815429548118439089396826448911120808605393532968446525344239945481431829267341637476257281055315438139223206411643165576620627511532201338639290888214001889540238339177816725384385671257830525808495147827360167890274769242645841404790539444140220661486979305289320831337311318263007325433990119873701702185991835132648279507915496028012216707499444349898675293142802613640703189019088760570301060602916271999010633955328364674829111939319869141161913278249077757713653467142713732868194671242566534075539509052683460241920236336337420956745825900094082057329564777185039452630651096033327631147298071810630559931770303691378263659855573211834911323821213041473667268218869346359830756346447148331925984026574878373261434826779614582110909406646798949216395764447256934923407877276248467593235985559110211919449726201820017103781189716301765776654433784611564234896845403637889912131198982692134092107949371809042381326568276410622811873524301896678379044342374563821958330673140311977289571461219348891323945199975707832861988228716186141575228550844269933809629489931406655723660246403874713677253468333756533674928066030037653561891868757862219760152691422834550126318204520021615988402386551518699985266531538290692570980561049122017469396300803700493671233002703462465167087285395006571973041958519602670604360605808005146534545653094558661966161282711492712365719378671262943170131048936257825037705844931051236076162746746031421085626032474162293956583506213493986411177722646651945667988248957238058893661188690014207629563778873875026988685515268075270550379723422010939976125035531587431182000853753379305040451925978237467415980715105751209145147738566647304019490177063325796072462260982869407995235716511647837439610728492889943378034630196271996321147313708669114860446049331075526522573274920344664826247893711523715456094464592332282711960644547467810222160720993869999894506901306176673644265322603707829264260537209027946411753748349965713062392880283393730933451298465546587364380702723830710512860092682202661027541426768987473793397153404898242970827010802926081088222172280339933278682126524568900439070280406693497249503307743253151241923897952529811188867937127555041851279295968426232999261608013849911333585685856606378059673922957299714608332227482231835086300752982132250770957722907808314432215152706410280889754843415529359642545858099849449157550602955818439434254494962308835423370259526631724005440349598508015767706534289965470003193711603105524757353328338606999478751735396556125857712741063558443494152943266206501808894999355154115174857790018765375020941613720363491087042168271336528382970356974735793329985012539497430998149875967742498302408066560056487382970556800850175995171617009203523461107965326997209668633621771994948235120847303016728887153760883833152832792275704013201254253968028023554686683877394012098942176146175641419236931919111131846234439735003472652684529382730626348574370024448863234908210288010057669097032362945481365891721010929642110198095648881074454539955876467800102973515113528464482126771765854873161655358904841250795453806398542078273248842989798511422604347947635079794143554232099831112205083340052946876810155636764803084287312969230557783103796829557629627415774247377980089552527949589922903670027254425149302262378988458145457564908796547352982984926023420076215034081175375488894347810515274924256084103841928494321205469416708700251079196689589665359250333002782059205540490392880928947749822524180575708720625979782209870917509469176683743158149227797007680227207847874261564743066365204932232440257597284387291060324808195699083863266493547826812266795043258713271035714400288643146317606829076480309576442984773947681193185969434339126486117098330127755227881098089119495428073731751179479136279319575494444849905555136969090797937204191812788365624065609247882792596940490540365530634104326033091226583176938300563412224140054642152873003143961065500656731278378304349284847470250641872181310648995776800114341656287549348781227557452494147442287147823201930482463979904917563257687660005989161604293289980493861884857310315740879382882674969341298245586881987461303913933886806288337090592396772733031985758858488562964082815941688844548024223718385436140634629080115612414098689540815579354650202584835914948982993634677883523092346603790807977743853238228934536321543165650450663625031206609434963120670152754962495199289198225228552960715619438347931879479319921201001688777624634282531464977290987717266219197877661621408896184988473512865964571608372519749012247943107109930081129999864669808013987373910269249901976847521524736629301199506270579126853429566489211049783205563615895588063793638967741470826645311325895848094385614678940048086877923124348210195792285249510819303555214402140911882789573838035277731585972440363167218645892675073180945197736487896982661757210656780459898454795781966385287007956533637910884705250998715190080495820796734652557237025718080788385232156308690546022939045832253867264127644108333660963441412985456150991314873217387878065975405124438085260359054277735506416271930460628084235003585817270440060996303961499963421034460268042319982372226917421954402977209424413192684243225498018588704110389040716543900283952899587238746967582579757998721598404958009511394069543615270192716871994327424106135949133860210308260575064114641030107778031506989253741658279809474307852014360039369117061437196318895026391029235308347000163297161547967569444453650589177554879359513044774173884333304927469359447251902646990462965513204318276813973689218432730800382496142224836828119712618699323766662264063365549014021147903799688848658346911321572752335737722398244155597316299939850199764005125198756717749916426681637483315639115114741074235383810397737964696922327369570400264461167938408944794839700833518949374821897887574675814658690384634812944610548386803970828282690290045422389972094351989903005846956015020221959238727932509661344817801967124210553824180405193347162448373959247790625483911833266154955444607272918788821989027707544870740448259707075016985887729789632956808037871383929497691962416290698628694579354745817794391151402799572347238749363018503380737673429281127845069168767528213188417907489171928866448688237664619302483771190350024263381952913027572271515392187408466457001787186039997137216749357868582324616644529461595440522581657904988852918494251834962175347443557103382407028134856990370040600362393900241331291741073099121913369705960561906189766466601171802533529723588303032926404846691491573816371645031728686715560608085110430042172709222513035418024652615281937179124703428486063752323033691168197925929868391417055063039122109212265309554420212878288403246952730972456705313625556695198212615800871351158548765710121829550158651488788778630060109889345663642767506093501047222337696054178968268052743582922109419143799900540645471114811531506479581651753451979330491451814450144491328181319386305967008654290783021292615175163137174377319936209763604620248899165093562521104006237387391607822321981017623273477571234146480969794156462063983806695114478308078452481212892223578850520148875211007762169479269704574494889487837610255073097377026497912175972950474587434468788543970049243297427340451461022491289880024941543611820606282120201805832617866512546322841855287864737078682016977577779891117894968279641051169229071912347712374245789522303041944886908087300995465621772634700776608080199720960593931793580618981727899895335434707191777505313606475226873955769759991096706519238807270805384910804018734747166496081263666917385639422833931557580379777183193294390275439897102039535288034342009085709320498489952193147771491365385793389454668901422524947257914415802839900463148255572219516546278207183365218071241219482372417980500183701071766127414725337550126561831478141878982761208400657167826719983091392681264093217294325630279503014564584695757424517491317932771264813351327578489431039326953827324056008247480457504433574393346510223804275492413049543963992357503581666934584085311018152499840645104530825818115569639491638093437563596212184285244189763616896690971747767832123605442851321608838334862641731324239072121023688733731352120658585813657111396501240152488575888447140450224184330171778734196851186778707238616699333336985698079904428745924866415358451176486990532285720915177620092480957807973919260050129037864485345993728437756308189851012352293237995929056721730196573350120848708020058617822321477989175154114013646056514511230846346083868986564427080074540043281177629704248412711769409576901359421291261941398404487755607273521352781334224300759448726661434291665750916719657663347434660259225759423475768616940576103293602229782869919404392637459049858596526487953001279563225786292458925912705720150182712659918455287840475193071460980790129330401553733007052865500299900300562805406046307552156445976466638666157147659845221462003341742742276003749323991984799566427682105605903956469546266550472399631977230444156826573703168975944790529171935886916883498023332518728618469361660068768947644120732863481844041897248496046483790159058057346630186258351812908289993116339845533715871506895226652216159428349097743657321379930945460658007767835158734326037540439836790856501240958773345278934217739581122585256921428047554462384106676362816200475993642008536296258134667817654399123790176187447250605133728847856965488100613097090335695587475560891025635964753202773088475577883095181712048890691411916426634347066363940592698496093329102221297722326754819911988577869082844967196739474187311243344879795884427027944049904240452122414202100483302284567609321008854126529349605393133842011072335894939498702134248140193339963758045325099377928905492599135113528114684601246022594976496627727058118460653015269406983572928237735868320378663735051616842833914460211404770056201617988260168060281394524153171199014964773937525271663953574938909911213895342156507336930268419624114439895306521532589253281274017238406892821719472506956987589092307656989974291763514296304774927625160801036730557112379908249248966135969250080494760499379959093576100633962459703784105421957471400061812549191613637791471572017648715291238609558978659984512011453944904849161297347346620277231940421020114906440126370117752183648775172159084706867754710623999614970582646546324321308094195777138217359179897380753650688571576638602188021296823348182016043203457511489956045295826637448627549595269738850414600970460131692330232005413202391461851588336979777625240777911304343629905381583029729898102234553340415698229038818976138366856043075654108135430149591324279483121233342221881774856123190659700766962224459808268521509714454404676339352850187662811303124528992092925243757686749422851567172622363723717095756816994189162115174536536899167165002261563735331111982761050672705365033196648613995088722557967515670772379138527833218549868001771437758942039970705529786785134196594058843216387689767291232598526289892527051858054978243724645884928837720501195537659101083289476483276193460105689739657134096691530231922271474886717624309053487603145686893821721516775232839939026187032379356886461306122500395580366640991833438873097141769347455160599892757557601334400588449076044778763504008929358941718678514465635095820169233803835957227028754812486466651788322275825245744000728125648132750082905464100947712522920757438676048319538542186621244694903750897011175770315486957684141238107076268562884056045493216909089106921455280417723749070524080010134961996529023520139094339610883464582914596773135423968983919978454772955400661405027103796937287019959276660300635225288879322184624975584641887994860295831815023523175163952247442662841118294524265899061044618549839766401243789802271410568452381485231517553463340906667575244065260061584324862031577397727779463703917377921124751636728842322908934684402323774818360270921707702447770370144512620437147823316220891250478771575912677127789660990156438728123078080438262800816976754823999883377275751733877646875846995203741739626737695651051543230458099025933742649142518226441079742113123698529570404649621125900265132178172532998431167352197074569388560893463534485348744720315878963004036615323420356589319698161663235688180559886325146074595756430088653766405022024039532299613632484517545979525567799972241554862172055738074933961433983904510122058567594878521066652273417397292112784890738323026690442276049560162268933714782594270595637669365733038448171778685241731624768483451409646463558507423329988435652194019119553079393394337971847902015626225645422018382723591435593201549680765348584973039345312610498538077233449470649810338356893907766616804708389091600495255050340225516640269752107157068316042914091738344495743605744675439246569745072532099271876451783311196725347057209584292375045787220367151794957291548807219293122862231629364030868966613635421775639847896340850716899420198963998018961928900891134751160777581421770979847832829472773264596343742275798455858328664465691140954352445585260037795287405332582830211287032690229928678077298033276274229199019640854043189169017305071593895034103617715631937553314850508437931753480637953189805292233246679972550237303671749676820253503271133092747312300226381263424199721925755149658653499579709012778143453442176273345258781513171612244303903221171189249003741173378173941975988491842013367192872235037640632136244574463138653521370151741269135378114280744813618619585792010218765977483511302705529701003420336334309050460363155546318881648124477809546261257933225180966739307362927669119140613580565746426891268876838546203630496999865389354909137463248779963373221835585426966282518948086899315806419534488754824152891697178148922391127521440808782753081691427485283469129289507837435348413260349415218938260643412754059509111041613483202670109786265528109378315576024018779509514957038993690112364495204889923759175327549215014791903473514601080418961433098013337369654337442760189650484675319910390477536336104353970432511457579714723650631301839699731083664043896087264237094477875156319967398673124308542583518671428527393303825581042084852561937738839930671324567998384204899517986948829602737872825385916637206421985333903256470177486262324939449556188912714890980193347534770650753763015245965200042734530602881343255134437635546387404372103626826004468917017931072786144846656671077779462839175642192489443720787128346116909302619383352442595280830887468559687367003923686993156218776195998688053813170497192180481191048174084665280536386924062730536584103375679334405639893076813164163794326703562442377314422747481473231987418063388349171144339175126201347005684644828573239558718027697990987678965791300430994479354473715757079275058196930865053084674843278322604087690158721727352832733673924369739422667392115110255861930365094993359664284355779427354432566238303967637718809461140345966684684527698530809864564144157378995902515633098145482273424153978359383728778646914087569864285119907681354968801360018464140789421996813083576152828939654984677752642410800765268094524885921057837365592022314911580910985389267750309538359465099787064677963307388304620715885152974722511471374338043984622343580044306333094802534910463969463423187299637556126811860880611768249214291055558066759407199390280488946616733405596195769032221002926767085408714036213290244037310990548876056702791912347777948366133121818936937227172780069359840436027738244702382766320395787370023737868919680993573434421318881355926738645345810279492972615118384568333398510870918004087487922370911239113338839272906028320507391132557933675355352649611780005297893914900599126737853751996939803922790420754987330939151508053894743861391887789191720577288295729818171558606063205476287405141101212430581483501912342671104165101743331941092732836553449510972035210810236240198096420988295075355301226919350121588370397270650244457720207191347334859958145377740270234348713614279591456491601049999679893421321609311651631521047757352899411569943753927554601742177151362276380308649739321919048033332203293141150113488263690460757861799195049890074044928347510844438711206183282639735203899608084263912569171107420205250818409055635633207054693108580543982097158404870451918900787226983275504488032264547430678819664557617442709446730575081507240836681745701098410251872143462907207093263493215535894443501528444414322581950121975054205477129549394988023664160396335502021067954989922845293823963843320953115309788013486222711021225571901592880444227680935629772347148887790505406147980785571090816324693743191369544794267545853424847849809684767106609071407497586435943150682497902771347047722578532245043053403544966725858339344399696652694120211557186171607679569747937240191830941778407069839074131258468006772610186356941213444451193226336816848877967944216517440829461728987450542814084260089587823869482516427955161638963711240111659237550103903583113995036673903740468370376746013016060430986946172815384382028412860181514701239098111079110734994792024356436890125301324250838286966557423074501419229007883626083044154405574178095161962975742272192662714574030268233491949299282591508161930397952209928919107861779870981095359326276269143276293045648160984987056094040188266274501329767165259563198455171161615870204163276982713760846401495170880606764912187783514631533138849520843066124517320526124965698460674491936016170125371062662042042482633436901164262024555247074400935931933929713827953336351474460597754127713830231210078561976626667869671889469279984328493891687199058595114367286933972117040431272299484477977709068183063747493295732394349538404679600860619899433423269318932491381967752743656712750090359557152009796219643952661835734876823806807445825116669805196899897213170570542241333636615061948398900145207976657029720732140596553388549360299032941680419564483302037991245237718951199332236268042110625154028238157195511031028503289243217261059879200755979915357011808238792240135188922803694799645483866097254527970380183107947294741851118486889935755040304153772437547894042053604271388871954833935327051072540501480437019196130862234074788094663147335811846263844627174157052932780952495619081496239682305719810010079251708526369086755760723820204050852279064882836610172030564197156843839006633683684536981931960261186961832479772803416790999045447804792922244634205906585912501894593671969020022171521943684293419434607536623111179037960887724663080280503267146632791608217415769486720819309435850605333956089299651174645535431400132682006565045732964358617895984359789543946040449939653729700902677911266746995839115533504740347013723403207565423212235881422389856859700946636005718468872178279806958103202177404012355120027209978281961973390269399241871451022735788397890324333448932395082728643521211932405272787098899097035100003243613149840989787580656893775515712805878892084778150975420222064108153618688131542611768459421410336945775418302052497287311653589581643541600227624463322479519764811996392164456275984321560192382416837719637889681567413459398522358239347652050465087466817775413112951051606123005283347023657138076518564770837914856730956811637598733171283754483208208992679208512467500705218397890404017796489068690953917285844181042567459158715214065879693246666759469894161046314890235455388003764969669767227705519917524460883607335023602083539746910776315431264269946275347635322670377754670882847182213540686310795575214992515900945758841861654450354798141730404666327746997182311018082944969436545551256937909842986025026965979280150884156601720055396636686403790882459889080612653161032820670001901047488010833941736390628500546138514026381137278984170489256552981264162999372559545092689187445079104223244696569069605461281074864762654635578701316467342452345990753483687261219282663550307663551559633847907485761527594763021241045813752560245479539520309636832133234400481517714223680237866069809813900870432978779360128771062431301637305749835330671764274770989745648160390144896209289014615994946434617929964116136106347853374605821772728802340103128766501413790598200436641045870338997353679091463071794277825888733781750469949641920621922369342336398815828059191360610136301708536327947273711908089545026718992466867404396618733651782834796066047153958310558137775698987514039050296698390902052605813177901162871187078312599319873438286772404126744256482543079145118611048060966525071735504510464501081745216362465106215332940378149597031456465891475400044275412097575152510745312639405148302976574740212809658671809803628118071321993954256797132875315704617897943828063745046492507740930248722723334091807491913871221417670376034141784729924356706564517839397608569256976476088039327376701446779674458781906170566103216533596273014174791857572990213333926859324699956357214496820607711424023780490457221095735707803843581661952779650423154374261098379037922319872780051284351727373383347622536074105837526545633815496490778702076804465403685729692357141284045832209514498225993640300722919470020381765123191295354446053890972637884727196764519897040750214252129081395157237825097166695055863381120727247032617615414675755868129094515282848566375663292468229146894864497339351347364166928765850049733944438684422008489989879011243347814470690038559142609581034329332990297872661560381618232681459938376363620496948415963634321232897450170403850395309228306356190015667901866916572689409897801571967054681558449619440094862805241956174077689871843603167581207951876757892389380258288418603858285847967581457031602944414841008667162401998707545297435207324346586796037736381956944979941861860305887868115981530917486000996619337506473362497954148921821453861764556322572211351145538042574251556796638096194653734336493191596183610410564563979936703673969946979156143966085197060304408131856094805934149714007909482180302465253394630985856477908883849905128328538016483402896003820208296312394046397787259831731189604465248173312955904035976203373327776126949924222884905550619259053647330001624674307314921456136497448447058390851635511929605178569380931339086043789058804640203954586897482317936123833172915724050157974660640070116219099085071050917972808892238175275058030632102466048785131407860750342318916618397002507455551371543729503136336462772618393555608057228482778306518322132402036698852651127577208593758920324244844825274649753543453707151013583552240821313547922848590233679694821293007346420976496254438043104623618250281581056181710111164012425531006308732233991384408762978082926548044095691924356071313097619388028715238376008994762592539264310681849077846718350228322644627307504454831099140846074311450672876677005869832345292647474738768678084542207092771938974969043325862629910393636825824314894241388496172306163816420927707265396278778655711372524003116492846922475119670163926679798699408275719474668041020534654548332699215793211391149169090157941897980154555054715426600503718678931757587240838390550470413794839509917811251452720789032173978686720246616653585487451866509616741579772318390641051530637303887841501550756699246190218073074019610650174637337035671612029641647534966839879415331678578698785895294086169307669075623001705030439730447858349066587848246453419002887319762365157754435723958805086894077783310344516188530250319982946549897954626323573043235920904004699656416266461834359299270642638785359460709816365552529482471526628934015116454699740430766189475234367050956116153927543322768083688332458328673715699250153697463906939052622144445781800479971014320577046252311486964343376669904044379300957370621324008040646341698058410858902670426944820650860202434050397994227912366688875892973540343514988023980212041260997410629126014245641320077570747768720073896004031862489987638601617154002233613125610077229466467362075564760643134770590376338298840065628906123326264570430203947354719990952420527756567134956117101095832930678982930416908436244764225189801728235528271016770783999822277072400744019874971506247739396141028067982387184842975836731382339884804777729026314715723813524863999202174758696711730976006337118518451618078827394243894177674538216777837628649529482423081382896419454050739153062130193016819827247834928543761560240963566409893987186037797799313031271658271287932253546460630499846622481938514711246772294193915665953059238826678018760504846779151226991326851881129401161384787759515737103125356092537457059142002001385382721672658841021949972105913931276633293423090902171240891080303854999220117486695205081355736756238907375890731678469146316851554406281408172188728392053320985700687241119475661353183383620505115966824974416325865995316830791928912551741338040985797434906577090639721996329365348072349733253265434086798315078458703793035891142530725720354923498337529901887306918907385386026226133435472741534994752712406520788276444143065028234515815167132304986544843556242361866421608590444004719006680812947454556906438399315688969219368431817008123509764923159305917560887238444634818918215071371907048130981119275454628981720993601655221947872364603631266439194005806191390401680056239408516122804734846827725531616689532341317924258042613170206501672480518716928130315703138575159863539674946878857674783580379925445793799370768064231670418911006344138696639034287960725782563381756036257431724830700112562081929246015136957529571713842358417280693266767379372391934301706322439432465566414950793007919080570345676721493979965135929258847538200169587614097479984389505286617908085073186648451059404354281612726692153640605159678368533338464330328263595665566218724086093956454891662192776480827223035081848354217510118022926207052976989330880253284064418221014019416026211598980994888993396527508725855925417466864332343815622170668598050949245753846385174493206448295676070174450063869509986404580217312987868945430198790345666038310169595304307784580317025096918287373537544631255545920748068424275025859095928377103959900496112277203184370953725848887819155030232745528230645911124580060146556734574118048145956381993136214467407569105123161723667696490336883074479975895466664230647550880999104528490192511369355790357112716918792168517747120618150415247518564528762029638927027446265077259392471612535210865299448995029191339702297624813699991807892888239322160540910497021939035091746640100205621441363035279603694239597165711553613866244692607692711131454813752812273938431938604686486525537728094925904475177741772590760379026174898454181246092450785298782940824655529708406587222870916942449468724872562657923499000652485149021970171103457327476348683398798108096573737261010764570876305556152607918347364451948254491538435610456400872907373539586931628507628261824544278496283508474529520015281918038651836637766510039846231408771578159980126431878318341316847608023265025790569813632731988260005228539361708482665280342285577354896833133099021459048292982145257433459875601632157553504050435640124734466107695581918516073263223143345268858010070728737352525816554005006401071616948412839937752054317271500324945849231308350594470294181979152340552863606563651167398932230659585585479021528981865557580354530173647267744555920095273534675233999269380663902960346680783531156811051550179650346966117802650294282925069559322782181289844378852125588695610901380295290933694940793434661542615318098246615218131904165568168211145997397358171644607482693151593672703621311838914295305692997951207950761638147614741183502595640847290410368601087484917041263053982698709969426445346064721977329915138928805173019409132563752056409119404305615817945809900582748546487348606338500067918861663207794969002769143638198044882064331332776510633347918645889937126185551836967456279881201631390720062818600646850358119194401436974107645905000277771587559518121065513961498912426823767603609394181564451040713722477557458217606361135583441495805039061212632182416189614134040639387406727226072189793391933402957325369300099952535788873646681734455737514097125474500593272958532420814704921499121970094268832311874573181271380225304709865974438476501043103058365849199059783356821562029007819397875365608446306681807192309177537490940839149229572644163449136068051405737655783764095343247193742455843237551987089171857171293333767066825203812315510161084650575975975510006283066027925646413698017893840955507993340387990802494377697301232074164267984768471325929565583021532494412507993939172587235595729175041266421879881024891235193979281820682237164059175649029239926102541349625308661757636799317486754840756527867660795506633938570150270547259381128687485682451547250363627808801186538232103793199026653208281211589474737273884689392877068519506674079679148789300544815208811238283801451921628700062906950327881591678315696210310647456310338650977143937976225959957682319585535526522079222950851310931442124614735982350046387927562814726046840045819962791728588845670521395027493422114112048440691540333854201245334026683957072623196910373196125288157132776210728242376388837289460243748803705745671688024533733780140095621625981273928341715147389296050492229523614794438399453934588597406034907013294634369204508272577784477684808944375744151116075643199674221420366260454194855217027775313678323485984078156377954492086462452044408303332238408772885972865470900963852541586627818082043894514548248490890048914510214420240668455450666344707132809820563268321315789008185205561124767644938524939439921690637798580118168927635346775700444171980963045609330870779798409782931412392960658057559787226217836295733958852950164840225115793638258477476016605673625364174538897183123717641090191742424024534124032361818224827008767665650152664064359909260365705144569040566684940504201948180115979558653163875598093086503687119435811064025272117306852351698318337804396549845673264210122015303898133633180523624920622096039932484846995156970947523244467183626161479473994430008095642890494951389433665809618764063427752703356182297272966821261518837556379286093675386490248773166766185661501676002875765982499666900850679663123217514271831104838946384888569728262585744493618253680633949122444256963240640283487835726029032986437518775715838008791198600180531421614009421358584495836694014071858990756586834681039333952357660640067115794952349105476869617088979574455076944211048606240052716914633098290904656461033517572552976649941100543610795263097117912792505983004695740950143621692391465869842052071554207393101015365850259601795159685438440236695437656280657476273147124718305414732195154242788660838257358199195332565898436517378517088339776719196016076234521883419412235236474573716401336591709001098077730332083238121375733057776293914764255753129586325997280928223091941833093643515037213733992667577583882276132340021797494574906728104730038711556864628700193152194428174397376377759745932132954718476516999885946767598656298229774723126696745936373411581380736970154142036612208831803387526186231162709297325107299080060903205923119374988279197507011373372553598200169037514883418662980995909014395759164675857190277231251538453541544609913352706178240044597973968297034777780461294668865971312097928876546944003323024922918835173658170559117624473519955430852549788895291010124474590991726479749241239464466522643281554062234228602036197163445348415149637707213423478787317091031622588952772120477210409273627380856192071554265773004928958781120480496861827592899928618151895329281388862070632452799953879013094427139077648416927716137180670876206228314904142838039862619157322936107971753977223592276769238326330519441557478121085248209167179858500046635901657790650616048617981590152052031898034695937187848809809268785183305460404402642932123834598089104455423904122983550733792206503248703215606856894338054090042407594444287870272963400976915284822772103322638311628752994616619655058577680679248338998524117161013029150387972791221525244808846167230777112836593759587205327185508696193728897118491922342578751907642742838958043158072587758284797289964396017937747155636684661060746997166306061038080112124020360066571103092439765387567819606926995313383051333100033200480395057064305048397117985624458186787380017586657496899896531446394082487059471118433002160111473840992558293230070389441107532025520386924732350980432481500942196896596795606367852727507693059803498677589712590542974026308586599103762049940141517156361307948082068101543338650219270664901252080570919679433343560139086350123268657648572390869986535043846170911760747562021759275290380269149641247067469333187326278295045116459515600112968078370309277730032432612262381040931594232296039256785246916079714272772069344327520983669591082794731419029897017932107986315928434229221631723462468054489403514182870470580921079282829097916226165997613171945152748530845585927416942380183028276200022653940954645012051394007019288357352226431641872219578506410575042945911563229266463666346573570019378132079862774287147847970650668907792161870380647208136603396153791311451099708861134293646050114339951644826347963728208039583601759968826885648185334804817485900839824225793958808539845138989527604917704114778521297560580684461809502981351619623345352918623295653158009655609691190137938515169798073046023470646425270174737097380871839174316829732833350523597322380512852592890300685339208158889276581682369387603683467846213822078897548691416532057976643834509380225059289925810822379680243865396762450413028674240968348684354068528434452518265379801055994259559621370144788547630808778363746216154936494278284095747378086463387422953371885523301924830262906407943734036673693037101093888336583023349362483583444786660924734783842625083445966017833762036460655510848114947182829318398573093799797102199793175682658220614013494060801171659416020572172739682623146949686990149077396400242090664432406623824062384210046831863325887495883696834159666744065838436102915257497290766180747866452270156609960962365366337117633957735276291227441769642885007692691940747801628190091587796119013226357165371499878607389218380373591988765155547157387749071701223637476302832254347587632341507884672073661417939473613953523726344503857705760152330657156325914658820264700696277924045064278792312528320453932063234085789435563678301894063056997821185565752255415955362781378037623862283683902160146344661754781108184525153938412025632643375340285427839146888951821072976617786751227399089244645784579194025720719087224958024933884080630750705930258803573351947118017191585564956311234451092668260388523029111957823423519052438578869671804835474761063579962085049389851728373413958730302843718857087982398180736165938341815262742642550624408804891349021320394000277688993869689586039563323425106529718280166765109800653250956232319432422001614829348367613334512823631622345635574598822632387775698178651333847730713765473942340089876664616376566030225508257566502478218019643406102189152489378925141492188662466157492545393755539045356156282731584025802332786841090795531487211454701047493192775248068412124107554520501649554692963433521907549516280921021115700254431971393682699560311924660782685947027514866161738635864593172075982073304263698506012494582463837677240486262030645552509649982602039443022227533649360361627711531036476730896033802455590748950570305792140138192881034583671646286501529463326444349725851235157396165242426368975258709216605800342848747831647238533167576490278774401970463452566734631995435888819609044893039564729677862892700806983765010313628660103392775243699414104522195932803066717702140205963650240286026816581546248656305597016586126486503767585817118162801473666482223809312877314250761540477500739814696677104645971489261358723054286494351937162943745767206903807974243900777725224287303605081350443378650022561953770408149408863635078874544667788978208540827376110657713579989252934238886931373130141238863512023317415255320655417309941596222204344691754105542038351746074126811317558680363015215738178493933182902315424378184544154745592151112718448589791932579760460211766042616707960792185108160910255187092908706698913858376487467089994654293454261002457648926363336376653210484084745016768050779553732170624349422088596939827890893334670669103759948601195639025535437611921520323332762321732000432675894713213606739432834843701732422077973670051853752039509735979794172877341592364620135132282242585325930558042533536740524944022714452720192800305699831996693333247752547513794066929862837528913722943447589992022117373261211579984765039481514505278656991162875299712415273440510219945753219683774972906601485099281534474608440001528680099058513313389578146168404205210288179249178044896828271346932806653044945634058202668603089945127220431803671125996478330496158181747515575408549360221690072089907067742864767196831429286758258284030242809910522939653035222870781130823631112031496753971165353902795540887441291062000670712308517485055908652841296534326872332415838017767417966029441341049823002676926775146648419087129123958067974654206245997981684061868264433475409583572404467490884559692347007222051636534725378262523792753995168592516781305017764757388415242342733305488412406079487665081069682903267040396991918919720091027669979118606486621318924332460557006390617394895216837435801698543009947196821598309828914584595347169531292608552222127562208247486809450037410189445243014966577517391763675984663217280349578715076154455665000313474117509350054035312390487187960872837226968294527896395603415020716037841581616484461054311369473129930500053521774541123317303863706305027547845045338236935295860716704195523162189117220540458925608137694793723350486796996304622683890474274240496163510862751674006254890980309774310201207710818200420061534783421955731962126110279423020495389169602294938200424143194546781458013061477564619463897431614482712443748889391972791205265074279741188346312253454293205431377516223110257863194287500350120605916240250402209363345616434684361608359011820297405307641827886012816442306991410167184821261514061576810775996180098885411481864814314242996352302306216562814788929772098671352067760383532850381249145683186329807352138760970275849813305915132210688157720209055669173337344823685793453500427955901027801733471754887724553766290789491743874336886769849510646769890049973225698708209363408771517949342983366288375183949930697733994575884403593824934963402676992890047042113233855913103166939136861012676242332578296182165502080587543392907472454749397936703826105351850440149606859206599505593669882668288329422660375710086896400950450022444507618057975678813871508227631733789068464596161828982621314987514071162074161558307685002315669153254667499397691129396413781531263858498108560333925929923469705806045176581742153788949723378464276417831268676033762178535779457522861082394896462431175914226670948541232221974329056925306993957340431562115546171300470544718302438862299271483101185929732309675821434728673045185374292729851876289113721934776923126002137470150726274861628562041964323621097032282014482432649182407289787832084324831790790642368823957870602483871672455357668683920679653387787354812633076865837771790776142272668818708665075276587918904562814983464314864872652536785628637353519100105079006187249669919789500152860824027016243978117906661815452590748264771655112752863166191521416622352866607674561164157724942493925560769002232862053768510001168579938320378548892375681194611312051458793244329350302681833385297625052574875293644740854956143401678541174583159168330583111852529830232159754709801856516377712414124326352692911018370931567530782585041524639439597989415984852661508189133611912701437442800870008921934641546912596956121482237245830216483261008841063619692301194919079186882955246159058216809619126633936057220610003621179237286720014594935308313969937621604383990440778007831531664606190207159753825285783646498882130139553991726988957654284882977003080121718590117409458521625232388873591063896865927543869175893703912006915042986463899759919358618977092088997796662404011699387687376813875149087394488689218445235263918374955769046441666813249779871718266283145031112154424229261291971718551181695844963948709441739778519696165924801296700631223271475363129404514809118488900547989576795860637491149288378751917350243807436961820920348674576854985846250395739789112599035741033385340109774818521925177087824318840341657077382964552530780897268419421689565374003521862784192919663761477986304984253357342211830418701894302445121324078359821616642018733779870473993163699905620375494339759239327333136064864262411823676515097786160936929803901331268320237314443771729432276610791577820996035308410215061568303364467401262338636376752367807144919267544393329143844636037103876613338161546558403657743726189677717377415841747203366004075674466764003486749258943245941544571747993599831398627256544823957451202248183998990290436837121341524911866816702059101530495799136520024523101488094877781563960997140057842408040895029397737016771927561031801803468812970173598165251654976620688615826392199889783024277543072040745507363414993545123767050867531675171190417895380624576736179044346984936281071478071371667908600161635784988131594547815186879956077208766097959817056499970004189315643690355359919056919237699135775394467902359967245370915815490932121252232470344984128742765506482062571211295484816716938063225162913225438294099483558759463761734426500224496107018514778742496191641086618365793638693335086902153229144735749649031199081097342588929050724151076274966718289872600443582638908090988503658101443097570322414164653713643198814869202335440493008135154544191653997007294337283760070950946740236290428270228583256096070626646972219958796091563871802498834475206943499743934837636160979769730165088051371019081558157641626917208764311620382868891322796448541961346561458315580194826458723136148028521209934080920983064401364517303928986576703765890065714409374469381584606276601601157760764388910103671296025201271093767131096151403659503604310098971229054814071109015643547043409907915564644129823766164040988801862528094569696616863781714334123312077497364925383695178627715327476900340968801116724905115304992105447856081628458752603068294260402357241347487855251501501200813860103135369328949328664279613076741945666700392663560505464644691271578682086069252375407559612937351077452812018705980413882308056041409770215444494327187264422432817056935785298386522654457081711867275393914142891657559148261568569405550773016342025111048177753061572001836493017517787278723485918951620285384923725749262785100231153591757057132905455848526169878519438309690736060028007381607700689855369021955259080896681028033145943267869850708020713630657933215463703319875329680906747114072401040265669595400808116460619815601941128851895109901398289088526320252005024198392321594142286471075818562435273590209478053796865711475058126324690309684403939784284024793142158932745898434015161206261768494073302287795090699594272512634584012480892795993236016233355786309688471985838309411861336624360463565918826902004914399890859128541495659608381976811224018454067271375260402059590121801806043157115625236498096030799368026293403821050598247405316816755034141158422293111867166742168272974880933943464558217595355891461249670922159717875006755536046011513107835950675656469942846035131132679415182084071236926091368863614157323539077269013907245407135036814767474671302023963864338994472405549182982695026300856220528203659056522825002940280407798210654497693649934052998185658791331749052318196313614528108048056441921838879217232237432135884262761509919908985886064860043534723394080144012194733193591948107592238243610521825523368079934798903909763046340604527176502788853701517044447541600830954774602281360364872211933346491427022401939243780143288208837021346047403360330082730163576892416090740144426908961636389538739882039504903616641310569477719206935359627084126212317207619900052294061274463251150034988427803203821509900856876809683709955671860687915121247886134945003565333670827841668851258302155583261740440951993261979850889372896736379240018369417595269146404418392507803563327495425024619380517942892196733084817335478997475720177592967186699073570031769841554334480734557232261576898940354542294364755998795605415026643280811013682574609333864440862883804240469269136484685778967001787181296991642398477839394868510817150909171982107373703257302083090811384213522753210432819611095263410321870647582214684136800513048741412173798868356892703592718810236068846419580969194129649366781024676079187275799329908437019524896025971875243839468245791087925941994073843808882034116815572835231300981943798031755985088003678627126398790829367051255735611152297446264782849061405173028768533417413934150887956616697698972986194294022769138540689918811795352360103854643674871193442534180638739555375941105696200888758813799530063079916207527236454069136849251489716130244306776337951023449383894715707207677151307322023505181890755924569210402704688504655045498555310401181022368010437063661023292877878577553449056426768114578925304460346919459065844197715346489765113633349407562216163407236439691068889146910687842146645198647226304246390428016412886837879512811045240260595753709141667858131780966874379142173861912998945608617031967668174564753094091129241544950641898032591457872133276376468516798194769300466630021771230266643692924719012024491650006225751045313814089834644059010500713435946215522661470283438527724610153339819428344569703269344126788134344665886624017359257549664600201301865836744150331744859980111423849171987374705025647362492895146405711269975600040077536402927961664693687862276729398272325676510721772303168413742334996036596500840045171118148454666114321128836090173890377413274852195620832392239886773068438726448811628832705028847555872965755939078120005572225846036448139901839953121818795170424501633012635831123936592405017259992034296555102020766929584457745353460059602240693741569140751466461322314257409767691200778204050337405303527944354172708855620575334671042381681749518499397597841134136437030379034268952212768497893487252569450308923877343762719953149497651761871185903429397106033337854296549249628405472444571655701591595990019854193875771359809551075640568484184784021841187028717362968631398322251876987417002888556768050666899288877151788077268556541039108959829190896251540077749255763004412320667774630185750576908836739604785127390440780679170994894929692055920853310658911435154311343961600584295063908702944794937299664112799099529208371448058622179242503941421262266140066908278706880603279464055176958657716161811252504827965637948468751465188671094172068896686505298144878748323271396067459506801687397481139512173591554844569290249815535192814527204895614416859662543011397915553852612277447849627738118897390436129662906528412421296833803517344881613221628767225407717359020542791089884594984705727991033590311502035338055591069655489208767421175799229909040469751423624345895290945462948057151267490038094041079731510958084707753333871965385257146093368584318513142583469363274329336364870956969347184119633558114090797895954868174242921209018665908089232339384180560186654176565350469517657870895828031161373699819661543428971082091112718257867369353301624122873722050744335490591763300189599830664275934391771854796474931214165102761209425842599331381379871713298940908921414274113870010096766326760073943089883261387182718987158443573653083770745578426137142734606469080930396163272793176104474667647020245582556349698148877188532510117205271821527040329928447041118662229181019991540856042314522298997526817690164755333241009750418337160633325702596413071340664410419945771569647651558096213062167395090979526660364666080477635611818642398049871751405985871531596576335070207801562683518358159747127061383205323143304859616719136070335032107679081752196029461201661361656679119529441143672553190387281730623905403206593202761055498737926951682794622008185643007934170126311663233733766453927845306809267407609321354804169076905930197859411232637939303205379483367353656090913662447525758081672944295675102532317908445098872721940694940657388315621294781891267633749132373672705545945116942544622842364743551130801808181348498856473117144634725620917651160702926638752293814662000827516693146444731135273755595007948635669906948652360920091015772011491090489610017974145403348181095531039878592834956308853938290051746544089648744758477025858375370996537641593080214353001421038423997849263409345177943608860470065003592592802894557901931069435676534039567696346614712899223341182532540878687102487359640249014597616155775477165741208644474984035675711376232141574499851945924965396293230892243364539871216734892109100285126655839555344831414065387018495874594826627860271867529347771110026476358658133030520679903727022966290896116139572250801065765633079846885550576949194496704051067114755167317288191602899190869122208324139185166680851345198304613899685066592576795006160697400256024281352367942546868384263068814297723026409973090475036429262368580611528723289303828762264309026591536005835080206103597427042355917999145853086739930865437216662089975234154296968165460823151698693179431858599607990881529055756054337646271652888261011005375843248848478508123115413840652626488251494235811681608161293004713509286027237492147204083286348040802223612947144293891241020304005361997856235777733466990536013503828722117234780220216130691617104816866718214848012062206662609668769913554316557295676341311545008105671004260953937125590267465604732763921002672798583132428503673661325757023379720226237756038818083919613063812568330680272281207355003730372579114287364094916843824127146503479239936316707159093178147586831958630880505691495399964212521089665338263442954936726742707159180856507817709021564297671686152694385894212453023996427238869432878492658608588048753892651631806913400136694873000492616616172241596192953102829749580815534016834052703158203130957635190218409739293443957847816466630427854811622954847101546960556168133224616692162277989363329028438194873799285138598666720281948087659012960295347465931296276493624655286976231526282240445535154416226242774642821830978458070119181565320531633786073609379608209965314873248751969290257765062681948022394368446729742849909185101919608554693732906516781726408805363016213645196579339921790731774191152009982070543832782219562156229409274821103610104701550186686212915313530588106658007519663391423844126922528570201788686908847299564298858640619609113011140956809199256412589900193017247463895870789628369530487555978055500621911871294840643050720843479179224124147081533673919372161918123524637702288741052325337750360920130435024429597653313247160475360013620894628345623991817543348114495011343216472247102007386505448948368570753720827783902784627568893370898073192240733322303580998668939822472209009137100257942195997527985217392211677222780091589923771569171370600405384315259205264301216259948481479903754294991949094600805705034359966540486816941735049847278937223157160519054941360318908067956941365414411199085501419187156363857283957107451599517865437154855824282809526481621461171213243883783489404182355694333091370252742866198444837563192202512898551847311768003688542319153082508747698340039792930298372544602245820648553240152976037777738600258212525022794156167996176708669933728092784054411358102187859706321768274680542205019797354335322773640821338599208491482001154462038689084340889266641161254535250739741956518684833546937735732781934669776448190309698645896640951360165118078317283923444658645029885938791116337136856023756212507339910612576528078511466823171670223547316656021943041460913882215721926238430792798949692830835784767157017817240268342470876249091954216169352995741768749513535043931482531292025566695534685253533686836300231834248719434906322409026359396109028297865102353941678381856436837212381077596491662357260606252291564391334237337579652215646916585035981313041442604904540147723390933027458909159373264431080577430494744612090803152348572846761634098053011502029302137331838840958394420363017038271520463240639467745760581637290373324856504952905135050179931580659003493532578170333373063283237248667877730196775458687776504708948004661016824653968185669663913140948078295080701972747426544418146435505309473279416858318474685602635753517194614378609005598007461802761053906983784608844215987298058307651062691102647145843527603665186876511155620119202545219124005141580335303327623571170938739663889284425126602671581657914400804849305361182789966672699436261649817911842303324508568496783975616493828084276217443696946339181067644699610725610981706791794810580857573947794981547018320320201391686786320316830322048836185574434346559476325430412401157406373579479796480519265382606380274204882193430023261605242473638427776155257640179693638900134976040893137235677658063609554438250644973686512932899954103287008827843338003681133360566579376380489450372947951556221591476059710133622901261630212261526130335129892013289627322193252887903437308404552267782574359985844267498987557884606005844537698142141976984582932313356756850521430108136531558391573553746463069245733982535058831431099688361447052272013666790200169715199438117544887892946097962249695896774341818433758350365686594958612376505427653132634018601662107559453952620233849297942575254650785808710091475192975119223621344075894013226372936605554990692604977227668404721107110345208473718452824943926366889757481929550476233727491895143506805838291329497763874164640879353805739106801414809201895023295791667142448020216765458527553491397320757382385493155452254106657769130402668616577360411117438096263043290393010429458868928337779214779647840850897404526329372851061981302134913660440411480968488563238842302596508134466070807748576926830483187868638592353245189860065784826139320487059439758494176843733032685269498317632360528008659966799281881576803029887360672474887603882739351294353859190938413983526990963062255932440270207732078784358374185783202277820397505229046341066739273958518050825189229568646118267130535949954274937907133660701298309287533152067438049514098673293968730673010024480000818718747292848426629306851566311333511554432370438519469647985645887308167070451686094604390749896362124768442540990661406054332437786981510724929080621455814174310206240540576646725492097014788452957471869026414067689566746445275192807306739711184812929992602530149203674071085321616420325937498855958278878432660259261151530122270193411316380283447132954643193289709872506511635201589991906998749607277663703054828689542483069941217356737153978392682426711752914593848229735520140006808032159238730312601687072671872540553928342750760178639729600553320897727763186721260550754463227642466135437538440459244755626337222152497911560994390887632399514843700004209344491883759354012034963980830488143112827169545234107978191592972078748097529315465247250663090886908421888351137587581885630279844888791885050360375721504298110584953968468682086364946679740860173742137992563034355740480562641108930770320828115146602944302846198535661151603866388576943496306559953934043482423932949944156514144895029044275424198631036346648367574338846496862363383776412511143033591988059030988642556569463058599101350671358840430732175312204793958633636963640936919152517686113912482426323651644154498284166197326401216602913127832280833011047193583841651399243759982244199804293961634614382001905725892667338670853965136845433860580079535060995071462422453392044403304432010164751633176134936159549917672314156451044158004729657139419323544528344007197365897905784551826028566652719160751683768395430754548443584742836316978667294964287003508970780763804076153747391300916944649930221955704733335429089874548795434160390091360277302816314969955042129132659551966681322882314062490096863119086331709210009256953153807337660074536419468593050541715616819485732433376366341887029081456556601504551581665241983117397572169584961879715509521951924667434572442022460979280871207830066855167317923654860041307289681121189831999283206614373653022011945306740393400505936390993696788932414688682040178226683764945230772716533959918596623068565545035692726779523101238883047182697293260835542822218567128976988429045278673144385349788756494440416562556257109480998432053473248002229463491826166149637873098750434051901488468094252061925299285130017623219231308857286987388709947372907293291584269600511416273350231908542782267869289780504217668679955048401909898340077028355704714697424974619011084781063900795712760138818962653174440302391138334430315701927609077193392177238875016449758918186045315585782113004182523543816611025266180440012283116084071416294266895694278880337313206240765712173007637552056473997045444271764705595941625837366598986131119061036497070936112932531550850765125078835528905001334583802660611880662775463492602761969718953325942892226786065144340613932501957612960098155431637454179279638147806640221682349551197616608287442923424351460806929865011587026990797695894736103945455341315853736082745431265346153187814595446812279337590162459626742506231225669663218095900164830045470417850880582482536132903499071596026968719022395023632168110371167222850103740773289300233089805798733391117926106139568511145633209539691643393014336746954232853048730981860259809747002824028175275331362616969374090060376691089731876162264291415034686583018926628816430522559031383519572954817978276742322210949277017106237873283222555322039257126907141767720594492539671778536792982842934695498215443869635595882921667542407950143664377747490868095848472537641854519695440778690355143172327396484022786924330731575626279446621929034081036376606833388075999020807239027343436776130758278242942162779196392330421175601808957948718945637047446847789038800477741625674353222965592465410164273905424442444043307533833828138350814046063914163275226396613651587040052554068690134822534138496009085454962732532374208101290114398304151579182181745113972298686456786915793491762055406265217306959405530994465318747870952561491973353733191255932429221250923935234220597932330190958710482376580400063841146672063106155858961726792421878048051703993286445832384333852524121608986490304861166342320591568845626803535356543430599151845628066535416421222990218666387990284197428485925583891139420766530318263865032484787238467192238321626506500253713668186209987049374499348389778989937874624798564105421197399931448482418575321365665780554326574862316447859729967877529255373587238510562894398186762724820056925123269819607900646464182214792107044082106472573609504946562804019628423383786873275959098525157401059327696893293815382376435773227977974350980740843922508848122423936702460646669291223761950849344166295531837598268390802062063758340155201474627277896461489717041255583584795034410695176074479804001655320248775773600476968066145985942066402824327485353495843586609153053431886038550740265338061101293114783846703861576632124923509635582764665727416648037993020777813226907537334046884839232711277293881500623350727884506884182890242572448253038594704392635633045814179292642678450215838599840873658293910635419590067151696221274483805649195372397261059723228676605865361150215144042641619005311158706900765193469545552914851028264317559249724456660039895505017811502178189703225156349637686387352490760738806272730510885169729281855585311016234657160791652071558427834012074079597869844319704990159391765584529937804088206173771327001635758922060002773382524550050614433502516337002798400491681120768465528464470911338155245862530849656993576204370398211123821900257615573538435100310696289027934779553102208718164859794134881511341273275091685448250454321499182603754204018238709954660019186141166475941457834492024235556902482395681317130941061231480017961367807987079558093024265165618517654369170112354285989172616029582966547170570138101404847429900024249133771233697225244354169793989997777048023910809467073306588897913260702236599112233246852575768559175082253088268500943658766466583880338699362917615966124214436406470297238420696514725646465165755310690742858153290025568956392342653220237179113511322123401985918419573506192316125180916102005769932305235214960669922454236330081388673304163677425497881658880932236247285055081333076894151179168452952962819259144842247075899808934713660008180033913644752997899343602496059448126648099007492377495957225251960766733934053709013507165943898516757921587074904591789640639282183200365144131493816523208861730731705506245738796609497744459435540793074008035618738283980749998541369647949863552637479701754364866248256806541244927099574415601031487709673835794643334174577008674354710205448863354427772522945852171574902086280292167846383458263992236627477304491831382613885755212497031058918901773328673239591059349866868704360072646995611335843388887594811173405392140502882389954062863345902966373137881846692287711607118722194367539245393619012494577648305625674174871170813057060214860318695537127169349816391877104341784947212934005714606787606802978945005659610205985713187465707626586293014207568439259053860471759384663640987830411339379935709439675293362192217127466712217016152559602379491049836434803078912362954670376676837178427904137452936766353980642834071515987705027458056348654754809079010952020767484536415886559291897388978460122741061993943480502245085512457006381398195098218518236673801222033752584422255788652757903763582735869299023200050182311950948117195416132363637404954623788317984208688490479406205036175605490573683342409808235844315897029879522342475900421284409103133134171469854131404840837067481776098485495532106444001940690662339354684797427645226920026024493825495620859521438198657493829517303678265030849232994046574694072111946344942918803232622215472409676115987006748782332100962757804653510276641634344369067050979789882421511452049759157128907074481295069570485929920041232698058594601674985646410054848563423845661235598301753928181073547955714329363124051023790100768083039430244458079732739922701149541526981110385977333314854312613333629627036148140273656937217343710666589267470866519080200145469968580464106320675931346325718126402154576099247292374832630449049859936093372588073160838690452183114474503978777764077553534007519133484070193448604670543048191173056136204917972374853683309106376030300103942720486659993978639737453408510945570956316740263443686138928424085214129647992428622722690835978556328842704358253144912931052253743588652238820131118203899102694696889301750591753907298648930225832463245904068231017065629112872336612038440437549855924474400672244514412959054238601226756231394103484519037561173875581621578737480037270261153642148882662192660754122118760341815523448051482638483507348470571732233631528639000627039532945200393109717281995650359888470701904887409010035423107892781383732206742066004676262551250243926871290038069467515716317100940258003365527723082352775830576726386056083674382712554527747332857839805382972463750621070182717142191273560473607818113273220865756946093222027319129624427099216223668877036753747544152545644039743931205796109218243273984073236302620471934945612624758644962200944688871801168073515185932114890148775029877136011677346076888195791183547135771334903496614434402664049594077655541286638854348854039921111010555284673397540511195279239212614749950408930651797609918473753291073707316480221922749340698526281815748455853810376717076790733227591945177112132709615734031086849868178688230233186408644604758466109807447834363588838961003227079271466922801171977135678063784758168430034095385399751304555967838559045387150182335862622069811741070586828193161538379502702573777294147641335237059275433328432045406407963401049507771528044674208025467894873381753777916861627483078801570547049261936359768600118828301591128986856349286955191734338001105010530244878600940134733659029975041383490990300983201630494477827765439613695879807353166309319421326492646993157762656298191848187588779184084509770316361688609588732901525877339455929196863676467887237197774529888552177986824233141840677878137196901288266662009387768626559083088755042846682174704637183761902331264787016916290792453376769706882679901291115657514096998102503553277613600318811970523984454281171168444577109943652748782444949527146896857040422268768249668938316534078248528438026983683350166281253260911671150221424003357565522584868416481788792311876482945138465422570674089796257317684032394422459951294833388241879478643329452481203098312800993740704267261928660476271269148283462217766117206044446788674120882055828513004375140275152413791309565633158793598436734093503429083999351917792301818306635280254445370396573558018514783428415056979035821558186914005081648785646635233110231661014902320524268749064960902476638870236955192512219463103001003635667082748205615009863180853223845921269478346411572226171672400349592072308674182888129738653649304918770011998295074305324495347778584036882084233100307658146420191783351459624201073546844548994537211889490646098015982582587022472492186102246010753752217580710229988338996297098343343922648241082009165074952434851713323448967507390793347128445794857518000809224875575169077505868606564508983088002391054397438063507391298667564042220345778338485030098808754867153330822761106890910612636615366488185014239650714731198070832654837395494193672170275206316643408262576677019228376895382263510525966422791188874116199768194637730931438207950516347757076498097415714635044461283182360438088862516813498753213335526586709907276543034377404562163414313195156444883970970064908559147469734337128479052335175474782340188443547334167919958265887429884190869061108979423098810532795242367744763342581907560556180197525064666306613037897920174811143126741772216742857684366475288082456886663958061727061063419980282969489529256090786333221272396235929941732935144940714283712241815837232190951267203939134503644981455107313537533464227201912980843123288968010289756356830789871378831213351520645124381105697879260546513555759849438241510173915618875383856890800784544847005181426406317637455919423385339910053395957809548069814150253118687097169437573580099936218663819019272999866711233370757511010074912595114762378872380944922050923217745348897080038458434221628505240184710733322295435913026354722934648824703471783373743950011902352794287379807600429404642517674042345634190832565718940279374783288383720272237965702846865821735378844222362956313466577826486819330111999479726155814614167583281681855606602886262200754976163883438782352774292978268904819402767015539596816167441235241522574274250636003288789654407033924213733138797311246621210058204423141119944517074924908055375401701334580853338494945741674562033188549912830893263467792851788355240813612033713706161868333078519633422011848839153770124887720190459766688668441127929743455537026720404659734263682317651060663977000643268359393039153293377769994842015359679264868985309894256313946196074519657736161621957326208949341036929186000522152798166489709341096314642836110126460133209227207709832791550533631920953654357020292331919506148652779364520268249462125805291962879890741097628787507689710237204912832903099752575951394075390605550398595008201048751078246234641536971791159903740146672752529696290956893018185848390464103791673973438722230937162618547530817648851604645813643041518426879759899202691390354895911266398388838602711816472439776520975633782398946394672130985512827979018324584290956790992037327119319982805276998917728042732321984080351930266992573291933473939017822640379506015276121420182178732520762461486214937478011391110676578406604296227228620934785126623912643504635772662117345263913901766803379815394961683632760620917795426069225325240682789834720394030529418980171191806030120404727034622642811493417814657363828251184861490468290455392371961441545596849480435186234373761702840578053671220876490022428745989399814745250534914193005124838367543836757379595641521104492421060329749496279768841361950502555304217114056561385588176996806941949533578658192027873733133061493902040638251184208374047063547197445977576831615301135320825062023565806831094753915869586876904328534276134062268959861388966713102082672503675564266026813413328600709177074536732054222704945064822995851424138173004651713010019304503269152516708462145937993922882302350642003381494521808058728111313509280227148324819870558918827172631059610008985081155520596428242365786100410826964128989317167712621787356340614358845560846044428800094370905975531025829793723042397032519646426838156435753977860222461005052073274567352465881884189577542646538425813452581000297881118462173252251484522428103910256673204856463009921410934827231619926016702612105840314712683665608594529723396749436317040486473157855572296358521314781531592676407577904800790810637903569462869549117732203177914893657118229916180443659598574335056944212898074263289852136201584874950911788680880278738918874110315485797783543487061175666731293906608964711685992923751304113717645766468489377657877406661414354037287355125303275249267870645264689072189349155684063590534849661984880558619626226459434119223124035756106110842900428834690470403733589887871318473936635350835928598642573864664873536183179211094466033506466602993511850070904954539186155835876497172520781928535489836407216827259098160307073301988046679064843639041073538185406690761640367511038128625857828304256148189893590492053879454345326851724005589315990137954332153623363145952602602088810239460325910521411155536835642038028492361605509656926183100012567129108561577885624470039286313476372979769780985631298358032747502529072380888000762510326088400095183691365258424729865083853025819696316171307659820701305247277319705460243513678223264533426386213122141244725668797964754374870702985574851613821306535424327983639462182246396055787251509333876914135531482685579505583707281975547807644665137900511083036310216368177976254863361111027849026563347854466763027488363972537674154013716023788059255412790086241043815446839350589743180536753228499880997591851450001071000635751434083088107145339585406617211424423165846604233300911397769660093304220056149526025806786138685932945303715467416382644694927831271712770285254479075778261146493632677594905226835938434741622260977597474207160674919411602432377019354286626443889519290022596896338027477235435847491527516377489914991174719518953035417791124248946348419730971147630874669696118728134234256521045745491875872983802320413023251754025319287286104915699115022456044723398015048728674456353854397788783644256604972413640769241032484508404295990463924582925256434935109016085391284522771489341365239742026894392120537139633646451020637136428001433755515647308863900105877033805436211316118846595125312097879072168427695204555549776759989414315130241822309505053603973551100459919476746741124220176498764545192514785099212358483912075126985594754448752311613232719532062742039539176669076202405426722217270714711246322600272200594321942557008943738929883498190548783248404608615322374322591914659226730264231345343407546072462906588134412153310842603381855147930896855064694488884204797850214382259010355323608276478869286721866642651199768341869736144104883974258354317225716755706184319058984354208782292354121637177831232832510505992858972698202158044665158464964582498563253820332842732620936713912526605153567748242510841396838928221038004312971061467133955062153509704782948293895298397276362530250131005929700172695955494463680830444474851564006646621004596400409882223694555154583783196316742985166758884582406932344912646918895831550175174559874851782578304514510675322200855321148719897901303858078323386524013418732184457111234857699421061369908206629790608441186905290411318258408075251541205415093064976312091063528431308024072449241752527809165828680750241359500366092844408267371798489236546167268682834436306036291002907203084357480333967649982691663882042913193532023389926740849306323079737664634793349135719145514491173534495414098748234964041957177042573902520046967247953513730620778183272781952593296426578530406425409312791816267199094965231795989911170223616233248327250390554159605164175556141681632087945238709004044674197086877584135494729942593482883156953847261011990940539054714532294451131839505744202904045611368729226627851746914335202228727681125244191837453148877371345192415694911286107450037937843070277648527363904686608475865104604611864399755556628031914039051824396946062065005017447768150328106752229733343137604214557284385586630002554420243824612350962265616765200985301486313309812819470362239253906526622451562456992290324751702627014510259287983176614834029689609680699825174618585525435632718572730140083942975778876650709902674966487106157082128835382160108127986278167846440577576377422904213107378956615163115972274871054675485635389637057507318401278334026552157281792070378778129944044895778587960806252440644001072746688947157388712062164312797333926532708231956000304159525294674322698013601993640337271836936268344512152856306786120671602585034693974023780158400472747900634736511061881727927990853957847501504379007154188749287884265425030026417931481588970255203255227345898982252289645714190323518654250697138762340635105350311103430944523351322629885055437285703943225289504200747518709682626619151234214670636262208755876879501207554671880468402675600741420426718812568774356777562421366512590209412498248673688961085273619768033662766093894704916961095719827051262728166867071478802074374262931098975348610990607598388680838942144846600003446727224001274766772153031788722132282435174350666335086686811416436847250206427320110704168217701636230039362330107976666275212904388778643539168896522550741703010300116133126174963512324610597717378280411054014280407435848482307024834724320784903479025137543104239117668073431787110399182903796182248037202209037119096558080817346396095260802110090302817982385850210344389020184720091306106116397975054546392779115263030365022997692976254372792242682731928541016445273351956514386188381861344820633957174903703420873482846656856663359383045157128993716720640832866214763790290390283681771885427477334838228505028021543550654061962846648295987807961754998583000455806959878124748508583854014205606213033599737218925405138786175101577596074042713238812439751154910213231827216160439464464534631585125444190595664499874176547567885159486264603870763089642764778538187352065622762226979555319781566731073243882028964767519262211083035562887234081911153008927871239632202646285770246003396302303919197520662708804306521982019575984318369727482517289262866368244408031691759622435454184543722549281882679091660559893657438395271613942002859189636253309641339500912425911237337514006117817883154539429181301864572948723496986427871215847423381922841873899369964016217628633439770062316698552325806040745908324132293369087837767433868153767717338064829112499374325576749105082364114598737665479574814068484109703326277138017841875522389739493933241607254649208120412010612458262724454200623195230479775860402691830143123136647891163865810066119664311633821104604496774103223843257205786462116102833511909398562610063233725622747332709487011600830771490981234120482374115994854465472451770472394425112351549048693474857140279033983875882345197202564814700848386632704825676469365657658331836416461054752161603403497321101547538289459776459778543472183912899219479182464448252788361381669266687996045829542628365909295045348279661087985032279098171974795246004157617718870064269167153032985174372639075237342884241781886314743444715939946954676863028790377172097829675530548187486438075045585999414440858177923451627175636281840105526094668524332452867963922461855254970404208148020449897521027111183905116390451653282529440816055417580721924385313684158102939103407270041160077983361676696532008398866916682443474742881551845011709507919327707837756762644418137463364168809808882459839613995875323252584831604358692413151751901895846126566446577650545750802466142103695960120208033499862343867912633809569030965199806740172013520610591580817267917964690520562462934833946662862298539753227463347764528517701873739483661142039740649180802744853739885040832762972335624452199937387124786670719672185707715164025076045136818075924330899715363110549188576286721951403683386279786753734537473364412405242345216847268967655443926936209433551325747555027568003565327407295018116757387113148664622094925921725397366399193276203892517977780458505577182687042221674886526952697292922680884958867050277735264705043886826582266835282212575153814154720315279450262567470547118301815583091051399220054992044783713949356777734069015557189192408102861612343653414930899746622757406336383171845101116791421390004661495298948550390631546379469571887327317810241508834701789173472723377677421546515743213143314832908504074525848642959663616799893419276557577301541988588785232061175240092399612107803229017736707669105253521841266447051114528897163975561118169675921561264808339284305377500633618415505976165740048765241021584501497165019259296710075125345044148186790383732800107925982221196358879856293045884176408697628515021865492869734316952010116884274449760662042912936229086222349617697789061544011632004745020750097218359845053172129893518253055523350184375729223891621785059736819501938068896705828176663140124205224809784851109159186737287031551007677646836782719868960861264526000655765284053042751693119410266334806528626077716593218951483476710051585964703997471321755788270761371061835627262315564272946338820148099645409331387134202843739551172521932543690789769137975312407839736781061301982968168540286157148358128546607112466276983419011799591899984918239174857616599446026330817855415863617864490309544231720445337077684894171610448641067667000617397347462031346880267701352559849182119947791793423485302536113763289527012764640388763559075092680373228415048036237154290070232512782411319081193193964157373377622837219891737677124453670016265167914770100862979244082569894491043462828151437490127404485801683156701375179214908364289262205409398973643824089126422815040015284755522931256620418702782040693727636451669291630937718610351200933911541604303446918937646340542506343547485976713922651291462754620623089288935427901575870371564450102390537129303098932048985412132539270920268116686548730781204643475554555192112179081249480726779422418244981121535048456274797080673778303313479653323820761366001550656205635673562930831472024457006674419041756065649533172249952838854625953777771099951163321066227533735332444713739346033831216879392235104323544541970001322217969138429175836067888716433158566839419426491582414455978674280837572129627092450281806702824967077790447082214127131832444553239296899667373834723129685930558053581371552712425576395137684621064516171187074630803537119519784271708499866099618386539206042276450886952768836504613224001167884471067759255492726377095221124437645112560423480757920781411134232555354211035552208112823804501618612759574615258804530042462294468957904895733636116969634510499977693465335587566930822904087238903019584987414648019682072252077314188350697343775389272644429912702122675141205199452732768569614448961313004465761039132706726868209532761317261464543511099334075110674323265517814277552325003371381375018331330140050109872845540172691215004808627763237507818896370817824175973564112582994131033175464220537951995540461229749638837385743511727607637740896832368138040508755321301771959908508462649595850463103529821031809098780062516070567231046295677585866503671382398243598333267643648188094330623337107109113534624538397281116397993864942333880296034860702080216267243088620150383651671789232912578349013184404410757594620864372543388579543511713578911671937070418677254157687745017646081007212032284625610623317355792487218495320322161794467247441103251584211002883122794984469475343840534683009375315106822886724946126749731795327941584151653709883630204117793007341846052139148185602599988613144359617291827003289022902850169059305818731661693186982891991405668249785504164068494779236470547246963735617429963106591917638134865891198423601721996643110304668562266153700146377354332324105565555449345982714297928929892092083494913214919595976474023726561313177781805219655485704438135882633635840380442734568698039222600019451759733622725927846480995919261665290570040941503641962731055617229397144270042330448577730879240927175173688766109227814118686042857405219175362929690640385708134510028601829851175627904522401097759274389822883077167154371525641411837090882224025776808327623455907165607523161591617813123316815393624332562356917199415989540158546270428829154821201319606091791090129387956123977753249200903290344005030069768636114280363580073277177712591152191583198987669033081257837034616084231692433770867352567737570766240430865013287119094348274906515703923451920086216873799251326452006670435776672899596858518838162972118562986062796041475636716629146125979293317690519658058512849080995226543307964232830134478726466471939300715343349905833087054555245350362314756640895825234706610378631738738690003650277867172152752771217282191639958815270816465029255685740493137092566898826075720148341251327809986806495902911627552996426622659261840505688394539666776147790717365120861173658062907494900788942690493894919040246030733167870967239863792733461965996690519393590428594144539127643985479457920401545366488201897181771021307854489617084782959346722580658908583816313913271749869798999900325220899099184528033312281378690365604371999930407221523781184161657565484788008038388222072336177293215283135908394429926117406290610076832393664648397534860762046578222112204479154254878180575252991131470276482562466857418542261609542452769632213687779494517811594249947726198651662328811281993417146369971670529055618633963914929782215378097233788955610175421190364292695835737440835654232903672182750100444210826717664299713953163834818239240270522129156146862944383871952301281750576803885194216487466404840550398883633424906552399111780621580683042847456789345639531114626253509980375304752193762629126240321704432305394428916296047771956078900808596417747217293876658333266649667034003168701858115149461611548240705239775968003896967747701192579600969293175840497370445822217870837778227208443896965880657375825477756379657580518793482494741390635032153446804447796847107154398702449395921711395203802443492930798746761268842371280223802841894760368258119716309748206170352643758736765924263970191153057127698422920012973063628423574843227445377205425421762947660864712669740507531959786603371461326914374200834704807199504460174151727813608201614416991198965831601451338387139116977635212484844694168946699415958152486527851184756508819075532726015699407079423378348091474012689613758812960979495542051764350665772078477691035197103558849614379091276365351371648992463407535174976710067943404339430553875373381241267893153549259083674393924788053818910931621823626608352788027532887543263817632153746649340105775312834019453105086286024184988580577339590728635732339640233821978197095045281237667484325946236958864999598676584656592927902393095935492064372423103912813070747249160842305035085019768093213469118717660463365440113696027605966394279785350748538483965872207225625193437930808935665364265788362664671086380557346661250709764257905383546126466731834874300034556286595790672811808229761612156712464100067377223288490110298393605696130517912901403386395863665056589306169819945682976988883030450628780454743249632886108956349351299161203690376943022109015296053353660985500847640535293790332900601698308741257979499508396816430454507456263771223870271253781374107237105826151697664844668406766126931054844000617957554333857904040827291737915513183253336074402722785796796009366014902262822620066687058143524113076561947891519970098760318867278258640884945597500045698582683756180661181971145654021426665209600876536661310033984855878143292305134578426357347430351608101780826726857698831578089498868389353095320646856479179136984249011173307284714533765878216408520532165336194646826429330274250584057113338028986380156266847869522596153877569989064254366987801160036270168988340687202616494130370133865748408463219214106145852822699754005299602608185245190627460957314480013231671322328160570902934298169671124118923707772878100477197527753904431626448987116041903616312113410626548451660966512487606918049988817295983572236030373041238685617514579264693344690458348729253059157630633391705516070987683404299117946326681110213184262330871637925064738763769104864717627230129896060517455145957368763542624093903596336890926426195146682917613708374155119385006094578069601452071615421675686785792736012959204047713276885688125896507560447542125368490044667611377431136436080650182506749867417091217975494954209370605787131856331057552466584257491133073693946984083911589409405680902414931588776686627205431442004015361547323478245795395265281077839519810304656325562106620491880397690627200407716959252513847777366988116259209842795498654903108520968191588551186296924100994364313256309866465662590873435507493587610817623127406054120940635340588013558456523176195489064172457645269907125247717296961512778356049804152477837190879834976029955689238384016078991796647009339023482122241256933831815696113857659268078168600270991588786237235400566173267232446064458316709990992978877864397948380208790444991697089811697009038547460592366625423832478518745740573917833724888438748004221026822270535072626366529416838998020494590077482573234824078718085230357185348682844184641944709120593089189337481553937782175970264026980070444300592844935472558802199533550745048767134982926670857358037083070366559417501711711761427744115665372919691347605564275573859449382168168610620133329042976764297004794066589818966884732447578071066046486026489903243244396107387511950418947265802438562807981359833835396218664596681196919925044982142736275602007844725573786158215314583135813022153496635872469125908521769059152502108601061632371889496913887916590298753159200189254838602988273276046963314518209252361837449904054803077041162221613365870743348659949155838634107139623387721999097980286731962969038306274493817233996985899270083693571086327920331676347105477707308051187673036154179344303758901656939695084054468781158837747668687050675664572410342843201360861752933876685108668841114372066923706696442697624145205499525479981261759415731810853252212071458488416898929809097871381753206723213714423368209250765508997589976431823642818487457172484325707029882439313398723207060267568753121191498487952135359567467989824027826594131844771076712607925052769614544425955344708610962888860505590800772381721732662345494473482426563449018196816584243852642845320749746432012095978863447088646154242343908349383641616579538833825539844410181094805017619766278225098929470754562184888667537073285266514751685416890238102777841149725424804192192089368201556010420345379711194394214921118514735001508936451506856285398900012870320052818594973876024217885795521906656758917075203844015808936205641982516047918139384494622537347631035114446181447002910188031489631296766445308808236080329483834866745115670304103320299249866249771062417523089317356374741225543521258880355679481771038253655714052823638549547505824728525856609895146720769887585447727455994744879997148377752210949195154507558543637671087688645636629970466688891636402193272043986904069205566921982407809872566231284261494035832840531911670862865541254412686834782404990565992100580463640334069257592902244476016997671166824698765321076739711626323898609511528924203113892279149320848701156042742900442638299216482051646522897388052997349107361548136519295930617585807058856112474305139075686023110046035040546454578807255483640056966204730998512519870817688360295932630555638387655050706734809552826131270564088798574598591023371427625082381294575512787720593862036642839390493546962950368154161159589317740267998155019619475307857004375370323282315817819851904687880707285108858309880474240997874815623224062477280031373019589167423276038902917401017498118401780534308580323961748884726657357363628095423916894263750560506455972339257811432227619861150779576530972027751176442471394951222436589246967629736698256325568016383505580318314256897229998655234105243650883086023841101037811678804422621934717429178491132870730504639668367356511573147319667116896203315404607524888409336463225764249855004912498312322386255152232935610968029202765747027931656211354105517749852711790495469886267387490587367780119210523648862491896647057088821433666106881406631721970731897325995738940899428911343439096251937117497198868605796745849911644095943822726448877396486541053780979887133691900195258133266229922447559644149318449812799827550345719386058785872705978218139317228716130454776143602588474683947844955100326104530373835011088594827735945406524714782847581374413397065153091736044830870825630840321091958476437352601988316362259074449182538877665612156633746892994004745402802167647278914958316337646293875339218527990031868319068327702689342448492737671047393558987779532187079036130511926944130363194728313662294629527832741426909329732704971852652680086554414014385840254764754880186667417920645406343831756258521005046519642306003414277570436851627150153701840886962869111925860235109173621149544415204048190302925187502204236607288124482500903877313811597884131097471450713838221117823490897167321500400188049329995024983607508684070686344986735318308309074420946076322907798040282699445190283302340654438605861895340164464886378737394322549473096987461680854652342215884806287085706956835694143323640980863523872506470611907064675202368322351203932321926421642031665459297603696007682658251480157506529548602725873495722909358134761557396403036064466372983640813463533673698903624561064776252682628536788137267130548708878715722064887098487633213957770230063953300481794331310596430572531069075317069081723842092532335251430085243874998971800753832634592215944733791969379033114349457054661006185500807150346630111699555976306244092094026108039258700018944898956907302249757707622788276211821585271083022812250908968743567703628589916995908584905463040483513905563406483394562307550116803957585788007408526034324104625733143456361582870429731204679103688633104721087936921138951818154128058475000561019013519797153724380622001800595500569432748290429932581073197054412798730575101813216855107662234961930646834702692087785581035808202382922431916589438840777533113299498825020822771624550205465862917869075859977639994966912190232678470140554860128004882162564662031076816422966389612969342391687603193620817245622438327664587210974992546541637099661818224172236204151766129929062429104563919818156409781987085326195424082605895074144142835880246170850520695312538074067241619770960127628134000208651245914900939666398738176904085222361396616180780807487187279763181396546024083147283658058182119790809675638901221366650794383438097289614725762524745031887324569145070713517370350076275909395872447977148316494944942417227385600809180154590377598957294180558063055404418222937334429038764436710584868264913699017718794673313719981259531411431391338966511690918479348812705855883408337630130866735757363143958616219251354804314361918371983356334954836427435601562487797038771677872031291679553566701125714367566183752826816784485977078984540977926741716883638911104103199777666762521726521670732145165671904040427526902736509999579843018200338810135235896182566975810087020167722549554049548698806338877977628865766236106114243298517244133110903487650723118309599781926475054172841836654123404224876221889152842045710549341219409444199275018308390872642842755242942419037158212644104772916365323282913099135114902031285659405045715970244546095766844421233044409449010541881293865803223887193522625972751769230561858545616054513370250341980254829672812181125614543748580391204364358667678901158979135055137111673407756349669364133416779614833711284631906254774547581953701972923481124367910236338675372945697624724873707247691104931229370034135394774378239347271049465243144272669328577406294888930748425776658892235433107229870990961094453012555743636638865210020117425846355865157071659608835610556626313932898630057968136849982162252726551151160777882018804166390398165720111764328893356422981985862216492803720331444344778956517761003720678811112045606097552720232490223967887794290755804084281905118230479031810993842705009750974715400947413451834988287788939325716018003589391132397729140408831920843199194305560990636494022939131081020096556295343371583464838038926847378096700960791819533031465336788675871516268843834356040999122762747826682683083583985196651238419237258693848154270113999487358674942639321206592138908392163369919529910706181232890147030005180739838681212015725341959265954873918846310851407236621363624280578219271091884580609219185222721273272040141035106815754208399690798299488721309098938894563203782684688107108112192621638560143764536836363124922162718441441150339516550127157824885132937189964801782261861667398953063737671647697520460207155805253342278939881729347276192487507992681869518031469448993130477659914696186003191136617285599696955991051396013377916736478117506708222207904947371633947656903671696343793985717130461309873229008479905424847959561927594462763228830688590063048171872536918765290174999997559850003169452740744324933744801476425036199784872506343379336094752500410893838792980552819529368483403793056147656734564410787795819553988475013396231206428300211737129845653557981559332564233151212609318962583144939352132535737426178642330166099985297726944357443714186207405350611915973947120130235136255327697640466557527172856269811898364454493931328760107933632053615320281512142649908033323679550172801523740940347068860994614865497737300067598573596493138968042740299318230491693756960754657542771720688696571616475605227404362514011560188179811826482330877177421081697184229287860547987212229657478143847741044539413964088175694107049831574194461513145853514381106392439999263429957993818305330851962676269612731763552496835503760753470204287489044465113120508986541033627865198722192345043858542387766739382525870298343824893806613483761493151101214188272878424400966283564913558751204701675473583818676173918204829060975377972354497219171808879111623493572543280207181670679092909140340051798726529900723079746641213200276352561057065587034891081468440848175723946677572470943565029690170888266665222163173033454559945501560788769487806497317400151072850301388462848100199397014376850578334918111214429206287722784141836402424696247483586123393193107835208291975041682053636384209105198665305951406427166196758340945328478226814477133486823550548041879007294372991200286057669403633246914052978337397527152351469785180525110016209819570397451613568402951168591183689470247678495493090933315021352482770185840811246168865684883902231483978338700760178567763455412410584437595390043659649745638495859671798700438088237157474505638738059583172339525773529685206181969962084410767211810033276936290074747419187198221574026168383902139241638329310907673653407068015550885665310196988672894560853880885967385347693815089974624658623045578686037175651962113946510612848072316811368283555996186826662057716102731611214005202720740588330024572808133584218995458393077873398086625363925919198181381641753663738886662201787336568898958277091103944096413464585743958528625776091491491499483471364931950790214138588748018858669264788955027510830796383663560778535817768587444812875668246212541774816882710202918920041514368264552248435553979344961247045198541630515507766021049523431676372234859575115379822631494326569289810186318537962060107339243093019333516384881120483632566176909742091816975086911135626716315765660828961647919401179762324542197775344654426337608093882570964642433343853962728745900540054402943129495102782980076176540777614937858628022378453951964183198192053731749819751721877189916376745603269441444944739016761610785377734243915011468653523912751581720365600027090726986687064797695196086593244890493590462176373383558189209189511826278321960194601745422603307715258580774523367051758880579250892643997705888645674676665613757868111788028745264000136160721771072506572308502621518456909289782584519304639719822628690452052626749078661520730494195690356467924703929125236085439013201985411539813063746343122290428654642361779996048408475521167941667558187516932455287480236812178879443369703199400277217705395755366634896215909117331911720271920550933869486488602323548232101216233320552331592310843801286616117852125149362832268543587268475080208209489659153744234335746704690226156100254205517344346509418587513843058682204958779553854048620732023501513975821801698795554777941468983497938745531369656486130312979011503764303554050143218880731271299957710776455974328511064580675099768115558401034462977043520983288121815855886105423187174074253439892154569220820937108853084636421966516230628994011634041065760009534249129048515818349364855322295805349046529356282130907930826083958592519151856461592044467051615503629915372832323459182566285663751001622722514081319302656960662822949157614006096629893061211437112555150391546420772712856884126960705087345068727295639262234980306190089679176484015405533486905694618037291330459075373808752111128505637764609435509025477875724266787485128856055668318289567416668358157590013875048972226865017923154143956304075445716305224604117193806300380444079108050182695581289422864874804578297881143232830912796879416513515777942722314126850866268306167270391262485566030500549224949018176559933376619272664302513065908402310151169740177359652330613355323026232286974393391737998555416690169623148646930170000533725420352718897475176396271120093233570311258451005929449225841127194272312408112285823705192909849470971420651847290591785850753628667916118260779447287126423192640741494855778870218525187763442182270765600264772001279241776662831561084280060634799694491701993003045718522507461623190092541464767516984049509375329966574203894036858201207141830188291974019326391357381296202920188289809302640240604217925945204107064380262259820337541980468431554852747603203939512483598129746011928758004709111599669377077176641869445266301685555515735925857381330506832023713897107297215566451627257929244610495655022367885466888885190481210089555608058563046373333387699805389593728176072546409029188292787608183165992426815052167582315901247567991537105869755380837100711536219794306505801316692357036777036149519436848354555742771851155526431293022058437208941612034390803726721710357418296855563365000681327285379144322142617073694640984103257914368809964856738484977260726564344669564256676780790854214295008957306190541697784138474409700766936612200632904126094413843969665460037986295591644244458447000686411741042731889825330774023614418997816851945801836435429533657363374270773124891453328319896415783320450384688455811642815660458927743356198743536346517959187230678636967154773440922493630907259859423095363946345396902331662977514112947792625712954342830734020383655669312205252694340877542690422456878860626695876795175088244376408311104044794057371447394766776939539869548386399449172707753174481254033899803873471519717194781198658101445098383171776058003350136424060350635467396656818027320834220205898029848257120211018208406056102118498232575594475491074919317719041385394471044983966590030211128235943437709333268430903559164979577363825972613986995195780401755447225341740092856533199115114993573193645006702953731158338975339297142668997860941989571653194102241611136415045536301854178599632915967113907394254290317965657820826694594661959897184064129358521994340146754761565308562647809158884437248795298003194042740231035039786427649436114140654286334759227679641691971485837491030384243669638366077162607085347366362056238946842421948281791619867058040842433094009905453713609795301218211615912195481514548204142088106530069621129825413889324367725982191098280806441450928445544135474082685936177547441102394992912945426948585253436021716051512246163004088518918820426919068693470226831220015323763157627634410583183996944870544588611072602324275807574718700061762989726691763918605672149037180765734634882141392168320894996217920686781720407726970723149651151501406541546387580786662985557483591357312443990340284734539630719585080054391512221720003611303582200296396418753530837540065881253483293499211622271474802734817297417930144326818743581385628825890776692976944579933937047106743703335543101425876176363213914194826126044107882421018706281135728026167426233531961912451969320387155726078250372238728769386322124921814880797983601198634623983563285483591141457208911043880297845279999033025950431480179991512563751806123501371113129452840410144782996462712528063647850306700864160187297947128776026055125131000726761322718032334218914545186373826241421762491884355451533151905933561059354846181304624672002087884018261120321876024435784676808485513662749411520680208298940662192796590458464219655287993428104585650363273471949572439848990600286901736151890420852745835705155562603760674173882211794223050873414760186249423489082258614091682100700371235380842636470997893203258664488505130567345625715694550936969043791452463459663308649823812489835565959360609105532554782734796777018423212829410450732671460134722013102560997730789966130935132262231122144540830323416520605885027268071756931606636803963732085582220780765846604784625387667688161157975644225768225031768588408838259528430656101895161147495723096980185247806728272072829660877414544301956640140650823267469970962661944776011780883683990558531146837251605858162431162932086732557033017360309007520596936855866015264819930378036276811710215314483582297989743638279377679029853844400324150173115826706460690061599869795871046831576943918808145785967911022714891931823401725669142130679568158071608288272565197176221660412493004255739067809169270294870630438697029516406345188302423206487905388345922117152182667270760578135244992231474354779930153141058135548264243956163025759039552152840951376055663297097128385161781780095333328456591332041775227887759352965204603217293265766147791923280676044785140259513199067814556113783695821603471318165868306070302507281694463599275725006333189918802847005687022505173416464374955014290437510338796163254052101974036315794198573195166166443838724480014131081045606426203071991000645160260882190332136898465514201430314170753496564337298008894882788417139600540103250613002896021697342380175580428488711155229018383919462108706118558097745383624036384285590515207116023381984586492175414402126988307255623287656946291735239384502518611282124752434270852279950183054521983921511045681524905502929702724914611084096035829862846615741043057659551172095634525946779213311299053997665574006110026758909862140618355560754706450006553119172540082980390956540123575768333563184245697522228317820058438291666825177650811472355302127555959245529380614682368670667086531785435015776726178546358339775432658184585515319757273695853068731974242313511607415346891437650659316459121579169201397997605591111418809523774047329559955290108843099423027131781227845282617378530309516256741640792890390125156573786966859703428155021968005696116003377012571402845757949961965884216563841288879907104011116151916025518420716924992774167009082639536220223051111556426940745209917047533239564650196987363491225778279694102305336917309315513441089379074845806487882145460445357956605831802672306055783178212988768967941482658318859391828966806129611790085855499418781526951834063981653748344075290278254113137416532139170568408485401416944886183466000087502083971818878910168838032133387677364870881039847630475923255242843510300119326529041190493193014952418671773063248288641399953059555470286079622512720409665339722818564609381336117958053229589859978771605674558457064823551525837329577510737184819151393205226417881323810905987228260939513881874366781510881136158548730308368342341444601119679871045491806597710822032291542568364219917963612740924756629931014275910664115598727888018526687115780685532758621817960457934781812017275574206792455845197791797761099220041417727808519743016324085376019786777363332326383720244597279787394013477084739343599270966425480122930354974790077740328982319203087255468912126218396123078274411300184905191129499636429049608268753493498966283151505214981823951576173549914370594110252220039482275209384347154133416861629118188547543509633366407610184499409930396122022325158257540215488787961192078307647811234896144796195408431005841452750036513384005159785182828204840679473751853136123803059820746610279485985368473430119313481592827291022413422200114527059128421449823405835585014955311205610330720788055524404838921197994435372732840940737060240961545735890093796660569652027958837782299146840599511309987509247568227700285685299247272113286297360393093433905504602085362680243044240351779048366550628237908256542976589152469340215996736207761740988694959646202188830343587495538234276993364357203173876359679669833777040895814136377330620091850736390716994860338544994915819564094815882873059671915252153396989055570219263935340579786910524808906180995299087769212862462753643176798431301167290062749589219949549016328965926436902571240063305186529321980614723343251786696580529935509478111363457894705183656827127979290803532280842531383029998775200149013203301656411885780269500681823842018863692901995684202020073241004378566876977993893421993148512007545907758545555204837295879402262101000489478144575170179433749402840847397035925941285103615747657639659772180130056128986620181849916486800766052045473662732539461036800017619108632542102736087791006769726982303855353657545117619749354015883077326476576055217700293702382763202293768153809015784819201655090659122303374580818136823238446978692419602170669546410637236253636119348024105689729870170513442899470931219756635570484785535208312386121687454417709282149995129898811808730619185833518107883513439707650149591555770493483583078762396104591816082154979213369533857729371348189506932104258107633076865694592489876690729967439925638607904188606406561182927206074238231187232539909333632862407918340232695297963247133656097259696235657424131803616901524716868480150858580366301410926691981324302465379810915058353557582117276267136249748798203941865402984924986013212648417940039795138915971077272089153773772392345838972290520894506419915864396076246815162060929372814397894558936010705345570191738617656295420426404809199718109889317834446789551537221450424661510969704112549457386783896016982325588094433272722574466741615862132635471587902188852912275320788554507166907070505119866077490936279906891709335355438318648630320675045375347195287690676090392953735976799296146143775182490146817839672824693134362353485288725452349444793095203763182818161328881367481430668232915095882640761278229308767988412408476106872059856976462350264007162779420728643398390367736888908546597056809850112630245795519258298685944725532181288399555958501102140088815380164902536391093046694757562532377179065025862403045298903621853697972973486250265890631257765293024792401348148894510557194628866342953034350087709584677338722747250366823109596891109450903433320686392254271594251184856226751307646764266837208987217024940774960258949716350874078717761716941562205740926248166580809867129046929381087753528954172861875286665926844544406788545923504395367580420418423245301870500943129534144758432114428642693876419612080810320179060782459399881618665049370656485691775706360869375354535137017136530086370542721696174858571157287920104277499304675761477728756097664959854511169342131860247597464095015259175061431208819017581999216653044454513859372112438207145227831835025672535366127259582409945378248357146552260427630860471793838286335799150440739669304586806060887623351183388219443597966186236328129541890466878279332372110292472152502316142897628097166100814139850285994375812461622993238182194103396188808676412651908827516586263986258348194622442801393458691771855628783383598765678787232198575530482165232474008845791760565395299500213247428918118897288110657348815093228503493146309441699574541380122554299863834069772253790331411175114253134790716224479369693349291160705223424151924177135499160480925079214194463346220784254251012462519974353824852542954432062290207569192111856216008858508269220981172924574916069289758385995464508401501222401093663294094846620563603324306727611350601955025008779135340158015368143717104108768995719694798319669288427269205990691493729124106730804382505948328866765511081591311955180207403780578184668156406150341185905526580981538734102423345999640508027895133300362703939329170594983525054478992595402409470521158121022133474423029198919674329340156294443671367667546406732578822521817363475140838094092386087187860914215249322445977762432014708835678437272208549736318000357929121055605943633545782131455972590891138396756457201787538387110505261230240842414361745695740393175271716144938343814065700253067172838082199350021371618222244757687578594956789522221013379975509661759117243320649032208202416507687522401270615675220083548706011621034043740131638510837304519107932936697115062872966917119069010150590499997252666981620593559329945418154200720613043217010973422832649931600383359924061352952197762104813156490698645114016200880758917827986563329803429390277680011142966045486325889339225026665014667178873898935527550515961480418980056198159567268731432169170322547061559564056700125869062022093045186693424782238224574385606617446403951956191431082999180952135877997529598505318797033267372672843835692823344692181713084548670332536987683721710852390604228109208012387526706245983766190778448255232067784032491565887296038401558567702854057633510258233085960871896701189599229181154172950514900369605773441272980278662786665769456595383548753107061825319611184579853497854440624219318768615757038191332339597583795031717268936781863356816676841695091363769341247706129637584558560369380887962433566705178687029952439955925631359790900568354621484574402652451304037310387625726212778113291957861116339598949862402855978807930945052843599464885685304838894272679114297122291288331851856819412756074608020573728704687400122876416950626581555478953899804289430304568623312159404366369416810912010764216841164115556034531172986533207368562944866415259193083091526840334780509067441500823643118933233951679810054065644443133323129601611934373420904511902540920216932240754244913120311771635720481949864107971399464505276034113082126069558891999329320105535426627969662269290584584627832817854300043933666413535647745088126271532780445165523356548435265733543700534264585273124497298533757378178186575444286739619437622740861801488204194981979474260906113970235806507295519078224531083527207956737646112836980558408261026953511609150862294897324595655967337455885161964196691846859568257273783922844088018588296366399609119276823141547859341923169832030169255494548082426118183593278004179473677969662467128651547788158906889635362829621049533957613714468528002840784309616250322606986922172610733431978313871974737690098919516108250800198883933737596352506928692815176313023204644872976306641856481903984888134777968825280203532178725234449851061127330445221159659900815781487721507847577663974547816594306404628535025363862224100302902737968582113286140547512323842673379120969856518271247166701573531650753968578753225771122886794605407933505709534961312954820414225636133055895541713690874677611147286087331548612741110814815968406664351255955799833737766302572891349926013342325278915118916623387182096296119982876722301322765307510309060037459642327753840481388376567199668408729353287926467383560817386601156735864850589010642872590675494742553702774871843712915249490207963808516782466918564725744548630010678552325945035586370107446237741826729182728463919487071466546304690305186187635527553983460352300049806557622950547804588078863397698633364433621296857708283192599749979800867565124806917195498721552849645034710174223351964515951289508781280728903711092986055988995679510273277526507009080077679052749707178210847435056748180495797112949582666022551222633196360846402949115364825834089464243997224372387073914089367461752192975853898412208584580547155656246275567024916878711943946966070605961986025222390285630329253017299618826932098619840083044811475150421610043596923915880286808520256755611997448944585508992032648981460627480128655910066752460222135614284981844440420341467175297000411393396914239083201169463316222030226306050107941197254688581719815547940428664972869425758117128056705012447678928955787088023150928525219766039346410417101395557397518617872596168000084128946882435775506148735185513393768527942425684071936146691554569582817034452641989977530833142744451889559205969659891687968872891453371889580959899047587308016869890363624346553679797729171715248755443183180524609355620799011326166883172587505657546076313463047767478915557069911323712219177354675736383361503914883899314063908590234198568697144927666476736790960827415649374690162700714822101597291264690409191848448269508253385644093580137435833160715948561043445247969764847336709292560415918300848999511670703146117558490129135786642415939475537088312073918802711789364251746793479039587872616546415200119506638141930881254996713697820700540577091154785956500177972239079754102965489817910890243237107027763262929486651516991689177738393722373507361103049576795581959904610539292924187601960273712686883548866319976115804239782004839481513712498400549861309542006683704726256225821416034504631070785035281495247979221830330122766861496395965423157981283169573149714120295449853144289052523200775116267697351342151458132953829895984932942173706745204962385408905136931504582436424785602393356642832748521135724503214142421107633636808736112587988153923948307566262365343350091123370671480921559374747470140900897478760773522317267696324948419203635228819427997946969835499771596863273632023916590520932817392971007007038494045749078304462266928930845565515842806429525651534443318883796639061406976939449750180682462826356261657131706139912906926535653967022704169327524460200404746167286947151726772525270881105858501373928391993337380799449334751162776513734224847158893016826813254837482931623199166082449364368123167310849752294898711430219484348801236274148126103724525916143401696454423652192318372740572829189269646481065534997036118891433164567374002986623109190167787992176946719996376135863652350686054034026986899313619865723496515440679739795419201456051611703637269818830340722804669095954424754382460458104180221438615033922245761086257462852578972894198431083377582206061161831253341686616394412817870583389786886790509124189743008767465044807868579260106524777986980644684592829808717816748418738501939271830310024673395677182195358995832604595020754197865322575772207068490821312732646709659840258230709653893817374796221894545913286277220074678009992249017351199838358683874540408785702693537490442440610259810851199730272449299391526862978245809567424030064889538676710512418062699783838620473926544460499344344930936530808091176500153854733883998269352121216866381441886661646977654371573358961899355475640549558885847840265603893383471695353274482961343672099225783904469108281971207521335134184104329660512107093751360475899551216158794629318616379257372400800128804445324704346949799056003872370583491740801307823062336418486287399147922422044722532335888681718897689427186581991564358175174598019898865064989152716992961233093881238709801574122533721236739226664057684164156363981419953791060275167192292015568007488114049301449590347615795093377181556708854127411913082911747019408129516859323515611377395216712015596189790623125356550848576523999751007468162784048697662920766144746020743256659282274186213918304776404945094692244650617020462027959972176066457145182737621432701898297629074101373735523183565018675849883512198898415832752662059420551280005410851778940325882410969568848304277512009443502230482092781935614272610622072318315551446879026081916063042371972470738048680114932543090669291326719666831856243536921038694123485355062929761586971122481979802303693653589400505695114360134444886747368320915637058844159090191834777410566588845922219403873322758738576334555923066123901860647412024840758293238196247891413855884710209013618684629962844879569025040123470701694541097361521022958136455422070039530720097524416227153640022511789665478593156101876008138834450133605656454558842917821659775049503725282800043190540337716291037220087902775579083084177727393439772591971711539151051458127650384479937189830730349404705921845378259960098055297335017226958818408798657484748521303057883567784908216199788278136233385820091159884342269779228889413229071947860853439857793781491942889488582168916129810790329137883996671179233355266383800620046042332758871580756518180994462184910452808060914873760267608692384877754450815049152713784539457475879536492058200520729913903845889433509973361885554593307635717894227154419854107097786143337094459084832350477417811419135490927080384589110624789289528868592855021555486080744555452765654922201950918542143250932100357220196301312205554928333797801843382869583209147788776268291827482136011045197154128208174153546278972271115424184511062911037682432694034504903054904366342017275612073314804483732157059408149670008414982274749853965635280487845897600438983756071657646827140780903770849961292866325701601735023060942648010277613096308405362133286654511869158606664568666077423278957010143178017189241854606412694285832011472442129164692973481044101153045409809395615399129079475305909731187701847153521424266912616086796738633077742903213722820905925510110057806662448310547021360422677248940950543959567414220386468420615293376976137461370476467784194670602032696811442205547891012017284034551192021476974943741803282611693506156271023388562893310364640393538349846800320965872924236271023179863011797154929543617339511909122936333632664235759334890950915523645652472402899854695773108725481865584914786202477867929620164968323557667750170849853878228834212344424749952219151436514710244625113081383122218852432454222299886302664693325593529730229178382146712261275301799897220676392562601501343743887051779807431341854232660610957334149893211395841533698274237580082080035901827659455807572361704239499526999869793307013503572277285196215670966071295871779708958111692935940494328292154051576072101215420660431112555514523934258217377333130578067496044513199996885545309749605324110464196357071684203627076464735124371965064493726786226634110176589239377680904657823612518003328111542568895677456693107482285583699901691052950215456317440772565581801550843357242321773247869942668309467771415577105849861279453061135247307014285871026921828204369968941851154505349036107579864206213003993040008539940619104719175481946679694318137804946160957971543062644720691798073542857076890385313050821637417890923979244097708514391034457329828720304574281492159798872458147760682693358297096204139465684700342008191563237078852502604851326366454071019445382709123061773057260302706272809014508366427145172727286849316725082294618124713006169495516436495208906602055865194752931108042781445699533454087970157310750979333851127805613125004981230241962950807814779720423968914173864276488308003862283687678874211520312383403377555553105809466734681768557749202875236699888720237416355692458881822858158234663174552522747199697529549882971932343469932335923811519777740172495844897368918504070529700025964883921722885020531343734263083194052898897851278613941645601636416787419251502725590086658363178957583767445437219669469613208467315092515698820350107958722041499704662707797028896638851677719874301889841734042586140275241148186220571680496245774384226270983095948644740378600884414292902390245500680143418004361085807750127158090802072243490393299897437276676720563760294464067496218993987858145901601918304433040247772853185453780666628506817261690135613906879130553501086854110099883334185217880433759925715203011283650261240468457991097199407400060245117865592626965664569043128543468611036765144491822712177205488048302670316253651775817756346680605020464124002277783334743148751945291460398399726202157836804728789833483913284026101112944470437802177944265856951700769563391598645319144287933967710441482860753991647670569068211319665555975193182975299150843408550299540607680240715663716514789535678910525173536254996012943186334564918714778997581446893310914885727544491257728550232001797428339608610000003273100706271758429341817342239212053706420622659477644059276339076488098463548550431810018204357224269233327746505227704632140255917228612883974354737180053115976435579613866534873572550654168429724698175782454806786080599698623435163849836401374897724553353508671894891794460080101422143424894584833730630985057734899229962801967035912157550279289668649775981080921937252125712520342326470129372618460639575502279114256376106024513656456287841206156083807926660128216783234200171215739454800864998043845184229948552357730837465370588013056262189001153148505441077949941481086900050748816614790758669346985959542585343626686133639615087207870491916369520372043369219174870814037467045115027261059351365783277219800451319134635426510923501483352443741096012878175594213239414098756557417674718643001090230848244677935959900176624515143048042740851869557657216270341628673509415963855322630736230550775531561621682946873500882972446798895732450764263072991026043989781354918819600512971938116129091603025910403859937062211760307438631023335755888672226526539846937999489951712745540603388854757953518968953293512756500392068418454628445309183960066291449064224566822955211109568153340151756719989952662700706823600593169695663151929201399450271364571911492880638417274071130566985773856233770150533847099064871928614434425606171013079795263754652869540394778312085014972333952624486465349978057057835126925165270630945720623327162406141047842867347927310479554459668448775563283625549947240428433843104759593363638024813307775643213712680352507020761332060516074906321397484973291884066463088239217689357014559577266007030023131676711472725722762304586885645505554255038169524189454269723197901375272939320744972640048278744900261450181730743523849749531591915236756261216319033025253947330834156644189418688121910289509115979562300343587482797057943866178613525315518844506111990304440218168342526408463455716800431838900145506391084782446226333613790893699060931056480706819509178423002803235913011517641102378291382209602226471343207353517705575612135438947376586826788405396598946048143899987436407658826671234698698238211832010526478297503708688345654197464459157626988627077264139283126409753337278789463534132669748703235566948942328212372731281939879330025811649781496789302170609071514271268465950842905632482519512180094666245556576316076801981724769390729897800949876014766753152757622844500090210969301187632701692521674611906889225776101789186089340392369251564448617829532465725078548828708042339474880604410039436925273626990738535028277565429979220051665015586429573238780744768604869231074736091924700378990445933740869409612581606505967771975307806775196443320882454839475785429347146984065731298473557234919887169184216477521638560268414510212291781071982503017568023726748537569730159728026583538049572830387088240109038246328419671475526932228600823276510010643968377657430520402368879476099689613294492385375263163480061029255020043673882949747054470883667738880539816552001989322191687676237411975362223551564021791960743633652706865106408414298350571053039740058458954585202467400306546668937393033620617286236830739338366465927412454259194678394723530813864426615962948686826642988504006282795935610047239662932916281909416466187219446518557136086794475172097508439596464953162923924499079101519009044056573716770194297620756892490813190018445801028569694474090108380997942379014408889251261262278894048285645581318283370646859407427333226486851004198487149531840641740001524921669984577268939195491148538623997545425931403653330783620735943699888104451921463963703900547994634941565716354910322841758850698432018739917195075657701796457367539153397089558131216739874862114446373275973619844587013077316609317299830116653099838408088757170548468563512604435733659628624300170043618848309785939550250229219672977412571535607259238662485280925688341283652741501983604366119957831144007456058403003954850759596223526380920687252535681146215243105563450560858366974966571266417880751080942383143514899552980429727675472697795274769948000432176808007428507787680836039196408062662631351280969698401556225782293969363867811366529758291301762523147796545601889541678897347050856355232086967937448112020237071854010596882739550656668077551484269328579778247317923137494159413523003016107542641790856850051311242451240890326227624912376807428419223006144434451923643430297147866561421704614590106587189595875965290425612656856419859458150979984341707858623382199843604004273068238696742163641582867481746851617454545173001367110688724194668316096150006488367524888670241364706138315096852237551746040668278107057015103976171495709641567058977915312309658703458705488142891433698917201903183475890076837939116695273707097719355875364515287633456227727395905707140819015163626098688159516168291420133017512873533152975146742308138432738940319891786344611196533625825398925860508158780238715374444794462794050013814632068896987286501230722237361243221912474340005465374603007576253912604524496879521011669919197148038538359655530218644188975171920132794799284249856692426705029998466176037276532534816825157226340038272785259384558430793380345416868924343147761096977261715043507772083735123418576162302187781019543288170113448296286912246871057124845544565181735590676129067568989721969771033280715531500640498532513482934341416247539058013973479799809259057212712625019257846035310133383101815332968785814098816131360373462003642378702247632494070135752183062542171173212708517045247975609706185318150551502614191637485618742739473372861665578566754102755807326855302516578295554021807998931911406958432447294585727438534169089660150690933674764748613948065560241260433538215838389397999758101107282642200979178193632209894644174256018233237816343071168170741023651257074039092022214771461755570418453999203475110685927384308001708968760608521675725367484995436737661886875933623857917462681781061500571159835591274046840847103005692857619782837265086306589390195267336157021908626808766187940460006812940717710786229670709581589551082006027257765519647600497054089856791125155982491101521221597692689664683357073817809248514164226037332357862180614521527366122795619683637262374231748799555570606216526462842856971402318606104917166387970453780641000230281657236487182137761832379321536159281234211844935603973341450309493093509072889963825457440331572478302306485192703624519546398225209333148164396978284964843160480052680853137898452567563533193367665285175436702293796340543602283760128278734204951387725094411043365293442788087579957163427776409968968001917675077620037992777731898620567690134451666431071862225522806419877725499174368858468586310089950961777950145212765447906197097037077642048410591491999726683421641828005396859898398079727812602603351947460990996682773792814682017946975914936017570382578598440081682358354763490573314721884721125770338553982483546647439488169093214942151143133206437038196423232982363773415085420354737357898022596484247362571029005149442990408535535533846068406011538251459354950673513629061212255309799731866118101973529039210621585476454801605353328334727785541529584340531321283660435386728919878495445531964421378978774369069010106053353249775441747599140932713681863619557574174572146507900679239293757034068353116736479191431610518062372053324596601015596934907875896924185371843512947110304435247314847245064197518907532350236659628758221011882968818753854998650676360522239424320109038953537966094325024499937237335438104619377278181962012964828467461366947250229299614278104159074250072206627623443088935166331345125174763159239481867712505845689251173635736236742584028842376069997625535799220300218500879280139677051216328693031685541100990328825406585882347358902334417043912779876566856836413324649602224945264141586471369750803312108274218894366279653425828146870676416576005779754471193013543007557495202166102092946934178698664139589589049145363654023806754697935546967995275561552152834543233311544393277055543764357476069831394652084269555557707139376540569637775133467245818265410556413457482120193352431313647106168463801649460789257920380247614726214076988677589271446357599763094130042995599090040388616349540106958449453759135425075637117895828430654323126847343747349656219373961409750082436557137198817273970047785160200865009461875481055569318475758171434924460537528986052038941104361061497470317145071897644370193949257253785331443010113568928602011045038399975190594538758624915389261039169421942129348312888828203396480185215291650383121609316586279438750523136471254709856734234910852641896290170932297625953093411419907618280776892370032579719466194150057892485877988218092775428803548198263543067561846387548868857001890616295192934711457104222205648625991633157919465066782972222552343949375644430190234839342826392579286313869003329591935521518948170464046247612225840245720848541957782479609808872903271912414702010448429498710727111623594818907291283004045804956997543061740253801436124614544698621892611538684281905625400317966532306090026015803308716796408308905198918993685659478518525000744126378809237367914723547268522283967362148107675580076113800675531037949465023705622882127947053633961814416139341827342508938587466366874503173623801657824749547371838863646094053598539774485348961192543869589100394406579004726695345556560834656227273967353792051278954165641996820577705905036452987191948370135692100520266654530035120477676811802969691596834858240383955310084133079925020752429030943840027470694611622830727540406320703011066623851138514612748920017136730445812366473765156977357112811160368743968961011072719371855492703319456715169323421183731797451053905201555508369185572808648165312324507080168629309245243880781831075532178982871638852243815232346733601332615793323550137021509711296908556799462390424911651577545690687987449391730955606174134952915124323987904263514252386888333931605735188060151112212442017429410503124493995472773258765032446789290280379189802070846652111557454984486466835115144008723102750282638751501226103079395552239558387339681205348198929585453343951174885209768170292040760919899983634426937330968973327661018091533121319254001364916610771244088766783783126013885817765446246358716717931210440320252546116470790862160992979035611605779648716249728792385879551508481563376962967202063775033644122982136419859745162750836888623256359564235854678777196851660205512285790624660483386306996895276832505721710605528316598361138926542904297720689587634442851865776158106202172605401347490214998406686479432569679694588012913724199957474935932938198197317799395626894967296469609096360168884646781168939016228763353204101446307484934466471143827965840698724045403121067276630911095240679872539848611065749313787161338981150985842275601660727146989591047671807032486320454482457264569047268771632658655069459501831114682156223882846027757551198423972886446568034364630882940692934873450363140100420376715808948775057244988346847297799224124266580049507390593094910423237124305329896545105681906033753843868525188112753767551390546684797937304824730666537536477162765108831639037108888555432228190747553434992197937163299420211817444487144516492888174061369338589867883049754283892996659839573065209978810976345085642451483240755707567633622498006788711528114092352026021994841161859598110526476064995764982783853234780936693839576818897758225355537628866489086671406316179246653071010664762771067117888110529756937525373234517066452073610520858234681702647566305480027616922736708158314370975354816718694935088835823275996984625020710455218680147626093939177716029909555810257072628446860424911120404772068957609006364243388886875221439375792714174867514964671363653507625952123606025964588390480834203817233170893560834879578589390916813186739030638826060462413234282852892109384721339260144025336778953616208876099315445998385330970322299508157698018504428756490725575358184344621563303049216062544436157033690868062265601996399038212634912138138512168546299263615376986472069410973378845425540411385416632265744536123280917703267825961517319948923378176253331525707271245584914041372626247315423435512021418410155014978206801241159890500209303002735066164502561991302301262475729683404823223632399019205080169511034360321537265374837060314896148148280960211569934861542097224122309467472316990916590203193195964676782982233553690142257610479212337774887324144185256946141364116380311034515560792440896377575644500091876869911114335816410239981803788557081306940974043661816248269478971262909666400523669675704733993817734648236650236796034556207250178885060530253656494353417120241284009441970086110336245812346390179353900523088553569212528422923924952701441242246264814727176773201002009812658302833751846079253608303416104069960302067063216270286397670797411467767894151352313048026295909320603153293016349045939869043238492047080843111858270275527936251921614422972125130281439114496165289179792542236925241668059915155347393981644465884172629902469981286195205431185355435969826203118694437843998822392065545700441351565628353742355739243141643627822413609835099862090827735183352423220515668750582171421101209977407743666364176370352569705206391187084262803054025736918699675870730859464954769557924146134842206985382895480532899915844739444119470088041174162445607778632401615491567403235378956164557921172535882308168016657988493420386345506507548628100119971041658403713860329896833025673848723806751252795961713938638006748610293494755079282762781330925579722765246505910399574058314282916520553466662051500901944086382113477409738890401316101282534278620218384861485517715102919068995690040223091936014037691905665690425621072517537519970793389564215222575504085361298254635919196475024151644549831774241529271325685166007921161482632706753699917094238589005294902322937166276124445903831788112594091541288946607885059194647859338647425476271710451108444565024892656524359692747801142607166976342461683439776043450476319865222404222082642094131835907348975179992952692096659350915837852014007280737933237983063844756889022562984992179622377606021308875389106194911240902012955362670831595541251241798094443201027456681375054751650540877932335625853208536331747410868629841371026693987771989519412217323892986282695941506150136739462553353384022402833897805383325803062014704841669922625355632178607570505589490664575458328626649055419678997563834255330640960328598656147595539167077226693055627593991032825902004898923534896631776986369025951103054268878834755908877729727727416639344327970557332136901995529159593646843106864317536804582743303514301857088314803140890544310731812843747703652753167435432622056935185115186325347770653729053930541287065277680825942607318908388694598692495799823030673698338448948061008916803422176200490495871565792044211989336436867695784112566107691791627849874004443635449803116964574246919057653863627954248606847156816323348595210022621198563539842710484511706346923012563282554787885464742787494496442421961929257030214087838072276505701625247270364395383421628581411667101940119339546678061301222030054632678142733702920542419451143313819729239843333452951102780716164563451701631249276689592160874343912918649867948255117272095581096692551182936701443034613036425728279712564892376470983067695928627735280186859022257663961908442769914237027946103120939040563485958043142752764388985168602156474385030448257567939111922954023964705184486598378935693704754238793091185359273423104134743147596172267757627163088394858539509558780542518904516017665624251685523136347613226795708048567339712262564302180278388691490958345906986197806495559139972266172553265460039200541347074936640392646956988587936140155239215501234780125055195631480345996074570045278123086577886057622581366309187956201017732999738943561784021631201157339912635086286808544336242417817087275221037906752241279755330011135585798959096237250328004317772138395275262744843984462700482557637244644838594276421762919407350975101003174187867796786486096934005233797111221787632405117961905274232815730778656880270322465980880064361961507039434479760097160169724793199570226177902966369279734086452900701498050916782703220498030279436641880676278247302459537503088739665244841199736834440907889688405021504052495341747370738092722322791332856074798451666693326863694790546886935516980654320722701914462094136239483290305372687915769179932329802888026609804040363598191155761649059858040994570756247461185352725648194565845809031427694700810230009897304231184804031539071489441538689033585801839676718492677507801831572704267289096462341225180196741626108130287064300771096114778837453039241194868273796088130078070326452688459621210703417038581476843769587615785532972071003647716759789540837611655308761525551565092793680899458615706591234236175231267909855373552980935333826990394277229681587490528872307223596953847766979117665370397235846811555437329548760625476860199560727091479701255768968008724284390562235423640750823191404459703931176902148452750833065606369083973860384718375001622955351036896157515554019038951147504082687303083220673270703448644546458711465116943336623968146041516150784819143120316088696580227683778014577072501425973245490523197641190802980208512251413648073706736187817855370509448920356395840946366294807246471821434435369088066508761268777028141332933824779711844668169884015982996232090632278975342353874418148399786721636198511813616914051671951603417345914792529359126191594824394043548604342367342884661191977159342610761839864440849355605650373680405026509271221449677809551529858138767862413935075858285656926016697799481321036448471984923949263984635613342295312480422245619359276931412766050122236415218203408126674389935144349416201363573001978341829139417809871996830814565129514548151779582916857559379709387280643772869036909954694893459702705202799850823713828711814399591868267577454836427919420271514224331255870868612844222899129501402403014270132211709301870858066156107260366789124395387020655875903454857002067240075942505217912571183461732859392928511884494048359175334850795764567312814436436472044291059503849961943799607451919437185021204339879137481512853774317896413826110223955292640117351993444194609994886113859864722932330215554066295193583691765527118499359971362803574335602335700812175680002205164070012140442292481431123244580171155640840626272942296906802901747824323884237644076970698726982569703928593026867547233606649980781390289211600921060866124256513411911880961605164222153024082414996927678884049180335206359692501689055904634885794226312865096940782800382848941139058240607948334141526330442904262755574916054841701211575811953234321263383715494066337026887354470330293843855871446454510916850526502092406252461673106255240772676780776408773501361516533076298250424099886341810586515678002579954663171699205729402976226205033821334396240687081177801204224059655612532315777294686213040985921458759564888174566221937825585696392651551920382300503212013125990153715478227815564629437764883315420461842954862988842604705960791950687358191126281033488822085820783705886784277590471615615386988681636365149895927058166156762463896879308958852865885130625383130848921109278248627528535610561727369358067448105392284009800096233888655551376400828965573835030505645596169790928803946219609687066744976849867828694103682514614160120667302173478706413631504011123895933693407943568384851137646680224683503530441254093952074193840462009213559672189080441869161584060292119008340903169843588376774555102492031082756280518543761715210145444119320751734242112508639128924579323703687150057736535170644079437220276421871745561135080526531533834651911085561124239307217445207518847622241890295077617480200868966034043498658949205542865892899920365313384185347147036033442503524626283548228041783351701595224541290306327578003479536824564573351410956157897958838188403390353226599615477938952344025912765825136294525763516947726997368088690545004484680557685221841027147332081713172856821903049276518603866362699121572764106113155877923236132306140748292240773471482027357620000152421452609094978683250533731051904055092060708818630728328603082240115122546072008328680694634147188156482816281835344099681909116836300994596041092622079627367165157747933632783730880866682270901991348079533668672354059206458007715137693585522074230259612598756201930465146231125338010505912683889746409759209583935083615164261136800861023042152642340131933796486779360741675322354649377343204450286407546826417735136679697189911469191616596250276797028594432610794674728786027078077570341979516452093994563438027986772126150134669005826182087603456715462599805248240256889950954608870352741974127079955622430811342464793008754000697604048829000959462758319615624816241116536166536079239294667946915639857149729190771856852334778971831856187248753599229076796994214982307098031270697458315015815947187295802330537213408647500925611882098786775352888040999934027336551744409311614275719450706088182502622342702775386097247942862585101563821747450279466274966234843206683166255161242584154110050287981152954275341101822987037000876445606917680390119025863500041356106726998632355268916255633326754087108815164147373719109585922997669761288576912881148631086378512920844124507646212123934095759857948057728842084977573782669717323021724658720220560122180815135956805555451033452065265640068412916844627554241730989506470155110003436452595971619561547856607335788759534567897890397369056635337472133595406197930093197733057606467154887174851978545087607064080288447162100889156154840605121967214433157527067254871766178557488180038271894900156001092936392161996453488120603102327082793181655158553925621024735173424022733458947037961019972664782648811106762068631657843665439726543814086683442619122403493386222812561757828261211355473747730495796435903669422063902568273001635660986362360429681721789916481049192437951853091948783515999241534263121853952535168891523822459005226539401800000671631933166299309469731951760352918075448688290708095825725716319525023129739430394594648334760675729790465171478346036678594197893468057573577189572698186566482329303202214301271561483891444329055175857728863213972699832974888994886426932347084445216092383241309087164261598715521648379024842317142793296849834186580817037602917267140977000473249141116852556413262895667745713390096259839962927403507541619181851972644126796662391908425992065076736009449655346654895575054811340746935995266424514681319807626500900919737401349477138477074488191267761006237952095951854506950201810203236402907867522655067853360164248647101352230030299280652917542467108024033955462758652050610909355657778081658426242877741908317722618822010211646811938928686845937805788041537895491279047262033843104572174288470528618113199775692241435257738422059892820293575926506793787077589378369501174110392725355335620614219097853404724732501594780159725767774972571615663956950680318845951453877047604955490517197146565982902000488938289121803927299879166916169504901607294439845770861250829334096200859360281223660112436584019970517825514724023540846300994445022165843572021152439615127467106548488122397018173567732292596186128283472957266492301432612500439868979788872969110886919225765393999896202409839679138520803215798629179986483881493548577999025043828100490776130152565266952848382953493860084559327966198196589195796183536686903442005712048067914245922022965032432414473208965413690913673539560076470597922244228542683339629725753685122069966932713426971381910204292613692513785052370997502760907600712186040374182584055229942048970514588839492452412014915338592267176514222188997780841817602308010051669357576576344936083814932608710503836824706409373162730066116050356743947407136225913406114183886787554639947691131300738457496928548711136912971339928326458220711580568231858021287968973186069096872701232927348568208455278355273097205058469687602428319738087825076298947996346495583536093350191280432209227511273680025097679165703973727258504561853694943532913944255435198436201069796894012631870300860441031109909657940008840799650611226856642419031375943275788796314495825133647783758727593178502174775663112559493899855639432444107433258024455544752160709202196420502626198225964805872110331024604319127619537227866517084927192657075545989383648339376006101415185795632205434540089962989446109854926656021488914635564401566014402357806253338992547550067189887409079302257592569646563085990892199925703664912830193480170580956417980481516281969696878896307528615393726191669658704888013591064950541257135002244439598993565295520497347602684526747943185110736031430932175777148009713061851296075866478287984355535281563328513860668707416759437021935570753623958166900919271765199515388120470251356981083562701467751029578215552132146248265837464878802595162777802874050784464122480238070659771903092685190163713983963092973491103456685245890368813837678868539437354399649731691003956575536770102281196165865351864729976354342444894536442455775588526157354657590145233970188041406571739870407729007152750032671943574896543568042424936474453330231201585920699801401351104971888016369043011715483455423151560093744151132203807287263150402107988881485782477989902827796776026207675658415257369000452709742042630997625488352531893646635919103032072984800820850823134654773971260796482851515748148032058066273528029986324167957435295894011294608146542031735935928795536300368284596366508707476096974213499716086231405786892844521369294709413743670694025791846454907460553638911646667658571134907356840026154117636129008739082929779089682414625836831605055059313780885315781773528132073417219751804322765268813674949760678858192640799116339049692912373261656114463445172705847249717863335892040995206424806414789855839868572905780735563640151908561748472945061081234237280793107882156986523590418315082173033766433776798292440553810158841328053846525463763138354923931488889733427949622378276797666536938603642144450102797237977057636801736089388382057658569200751419351121414428749302977025939091431147855531039391387291155248265842583567692533832782051801488468507209801330623054260149444119394025472484659951696959830683661319141936950918754637436408099964365366647748269284078864053751957323628160408831573288205668683530863197828627535477210256250414009872002249339615386978002659205186084347211234523133027359241434502017872103705488375033835741603239110746229264398728653776636521697674804739741443676933728631746701580060209120480286061117415892317254674903445839116972237479529092252372137832041924858348518685530832870580514926223920015286950305430770322634276786536418089915462459362234286329466084315115592855945490632405508793269517843468000655175152544417090090957169857344974657270853596217378633079542051751312310099967227597372280772685428005429770441730038706915203081050772061705374232650324606089344410659114732756202909330177454963045319897740140659936955120772046346180494468607814598431904406334045441431391661900486774800377458740521263454513797391906568554996830831748706210606084680130412546551147355559868633087616462915275242107363082302329311410233135359329717045702427871829525087140298860082548425921565389741097205768014352839448458035135207777968978774494571913948649152798599232565644804390353395247867445359065114818718373425898609606719582263780527104131861220780177692679796551242813948289778481070215288987938956910281135117700548700544840332658248060082834850512602287447877047117614046734154529329614077306404378271862852279645616350702466295038079442683936155018582663170987873758936522882451120898645869147490929173352993120953944669260684811967832187816775308613055562411513209073274966186240394901574349620120433595555529767525296378777545626950681219791346015955606817476750869709588034347604662289098270473845928834292192363146093710776371198565780558152793701238867603411934794170332463868263033421723775982536324137666913294811109648307356737918683251085114278546519698162370352496175569403208317941909486630937855465781936581007468103894771888204725835148565771101287928977529609762224669072285185620440389046289656992618759099412185847397084261822766753875289794090996630204716036419177956294094799077288869003686633386646421993622756208418278033004278032877392608172115907523212476348524192600095382755313660398881888444310929373213507408902600187645625457576382353035617140257769840367402992082262248781308359743746730882032721613556910163532928252445749591672910147948814403627158667904625843156579909261695270057515809452478189032482957659549314862434544915433175878637905503074299539340470446414256983419159677126874688104892135102996822344533180130899943410039453604544120174857989277768893374234391426144589100569217976704295269683239972179488454216788407947054856208660311220686837378535113748706062188205882369838730413294458381495757716414456664877667972983997605380151041841598253461662295525797996327627237125262543209273250899644551720296155833605732283263782983672040221139208289011508271117018095575223132600308722284822444886430615623770907288924669587516573612333635321814604088332893723361851958443477026320163627155624243864187620423436510167476758842377376189707989498079432750016388783833273109520996011102188286128047897599327447065582432922347532905970784410179541897804062835548788979626359299100668883249846827968951135577847984553197725075372054085228200409553761537415584206513072415688049292280699134449082677774668669773646805004465210691311111636537173808307713361100741561454546632698356747007101591462549105792149614490332909760048487724195641597212031567963047038050485322589969433432422626394252190371922956451019573055293746374083458902013423630351596799261678188913127242254270122756809854155407949232937249679367432613135073006036360317395766874059880587956245041668760699706242700294450467937685414602619827067898654315566659290569126289551908039163137809038650820205838162822607682664146818647588331751482856001359319876152450371365146965419581152879043780992821045632238651916368796752187067039910360596375619675135908917337050265273160503058676482796497437756180339617912034191189333482248797778159031026693644432272591875463886672085431075066064232965365316195890952487628768773012954393797163561270484051132757468278007888276267746969306866901262265044441680834575601202284289422524848310060711317469710136140260576409938275917948540050427317384902139373915609828658984125875099494163305327197270659057468198145966059349938103631867117199394388312693755775188634935018605768955868961243636668851615962482540035372896457698752784464699764538347643700883968199776413368396951786917568930276518790146197940714843931548630182885518490462856827702311101058983420787179819487309912160416486464078937656777336678417655940248532974313488398430229522908359731401254298369115095881924109826162190669417984956917130106355717222819437639299984577382989769189335165154172877444692536769458868127938753631242988573559026086694833034916406126992559893106519569594107784591012879436722661085018215071305904859677486132993213839270317951282646148818579764101050218958990891610809541231729846809127656537074864147429799903875719035039855604858679476796117747552554883998392288928125747404831924401310427864686969880232609928817738283026202533042280050294552326482706322978588789618636809291663923976808401496124209475530987751960910495677390348856216879040692906827442031534434858035921286604016917427344722711648867863429970204386275616117942578264897196727385869839895661368578707887239828575807807759500715549945437389325844056010095113711868621806283520376506851495536175909117063289389593107079381489590049830986525763310340656355493489453535122259913193550430543389201114699422985634184008149363208740589752251909963790627796226058335112712183563055455947431036201395698826709231201161420647705259705276143499370621461248100352344225302862487774379649897891719067133263615016761592590554240057843606959500144892228285911338306752419833014083406646522060462842380870067692509020830604765487558464437806818567663307576991223726646481480311955455508219031122035876703297081232667562966081649922367879414511218731641942470272034090665204753727100555910233305318723988630013228897641910851122773189556575722651154179396011463841499927135664780512127592836781440610766619408570197912526250045752768172557305134965549759887874434654950578250881374749971219489410993464348496965498954803949074168663174630124111476493507156217121686423967632529039978856947191526569466633076767260793251175473127177719340244808074343598010204878529897745572160224933934498124753024576134290793373441379477764555106118122347447913776853419988200995865758365113693538187016913270023043008062982358943981601407039886308644028701814440498481156867058934141951006587456140972050778774773778763031686654874103711563590137893014250159032849364334118645352267242095330033863205229638200316944397983002955823574663021488613642024292953934797252924916018898149711796488205662238868946372029499877082706832028785866329383446354268596432403499538080647181408833962674438624707702939208560500065469085535534849293754916880576808543250382870288743930034561905078914293883887222713788150928165845022464073545047488965227900252823586996312274338234668637591846198232929736466125194474689832399063593465858346564605267388697905285064021137219927620288679070240695034886842506353021111337797943265137051540066902291987678316591977512723342967969967698448621000590998230330488344392524501025918702315730928659462509009412951847004946057627880936865127596307420378754665864544289179967948866453216314870804247100811373135127990486763009336406031884128294073902945672080851567020437730426398859233003200444008202574276484738506369482229714786340706370686286295600977262788405797251505511086591150967505332413945014395799073726151021184662243415942096005691365527088497715281108802692049691928142858796608065175768458437267713055184611671921708293704173539907867197542147351923826761326767987211653163966939775913878487003808876799121968554093635051536729457108364364608718592877821033856698727890800461149908727304951709547267597441026858244687744009501268496330942640935483194649654879892503917000892387730486696349944234505397166088046366764936122827746678102658602702217981407604383824935033190675168476898901647581823134333757440057629021191717388352945181475595147863804019561010549396333318803521649055587113925109227627089738037722851686055861802625569401824131459754263294028009498129509364452885566691430756801605431696675814081423851178000481659924564633857522993123813805134984649104423792713507246395490076054207450300254809624794343960040163903376662286279276521967561855963160754439246395639450035848672372826844261351176745867518672266708993239196335074387095316789074346903622384609157138338911551343043224952737681128279709169896456847182577516618864451667009483531958087821068645062668830854773567515202605791620873209239858021553147354837861576236014107787720197402715012789349272970690377245294771386423501184808790650026090041682852824443016637257013312709968559590386457712348533180454581316660042732724384260759579384685708381607818136309809483727160841916898367927468035123355034193534379154683331006580294304327635375608284369249698304514236454365984337472415048975376531815706964297058088600309739815005605685932031812084084420576181528475006050968420533929674768447036442307389592731844942912941890700813940367258121731955333233872784586691098248552538343668601408556064638927529190630757467708668144248173669710157822951658665767523151053713162600522402427786979522478800940234224457713332037155445381665339654110480996292075486316110648520639528112322269127926071312028850426852335017684890824053461199172687886377895071530787209143862191142823446071310258419704836488977821490759954850338705227861715432297557681383107926365822951587735852879635164839811698930123298556362449446201517173316969181931198100862627183649631219207336794071045191251961974685162908139804616732936561327542893692935285044812311847451170193294519871381850396067098120138962423342032978833358986766174516513314340910027487335894838536521799572866685276673056520814907499432075081541560547614267973331158228813489256796176114029850230042782253684966630240202346385349611240749558544251781345152395493365526249595311101098363588829653237422993442036000467506612881356664365071179703960898897937347427390963633377695433824168604662563859383185480343678517533278457304190577915075957402079243818555172912393200549739698684765015728343038461660695416717742144863041686497515435347350121190817392781820750455846940613829845770991245307117650055690978842805575550475458146630783062674109283796150944703643692133955289583166659337295030083978823694466447689074868817922429497495138458327072819343090602330156925639253517917478431619094456433589397223971575851001962135128036035418232891358153898584423162139683025989442518528129030528533730329015850806699445137957891344904210540017426992787531711367561751313779487368553806461226684575057894383377606135887025037451703296166545488051005531092060187400808030026393768520063048462119657083144004219878045195646858380561518718632194983488026326009223804485173695934090956466126269107573154436949163879154632340383943121347754569274853969640785080799323064168714418669191951179714881881624288899949419570707641238658037567673690287523504050827503348725657371653784256933778617453396955801188889357443371270686473704627801994281119669260494554734283159865016266627429080008227053202312005232139766176051905179152368630233465977909954959321411118759532607149136319704709114526309368131734065771307314698961593627921597611327672004671865935300946202656832392129254063540318476927493211877579766852066205323429595134678142397351437682728788478375093365872446048821837726142085730525793302355891968112864618876808701299792298251274798811725762084250711768446781450527818594365025124249996784331973518896766381511594080399202049963612432118523133694483984654226584894911806830180995797662422837931471636352804373872816913349274123206918308568751440012799458042935766866647044008441286362052801096332978284938216620241770560784584620089336675600044257110822880311842674483228567904242522436438499579572997255087120393352102697081461666638545912495514276254893391166858281886795298616898450925804016289929966475021588156879162883367504145761658835658720440363970021058199392019102727335082851084615687496385429310425695567935807348837025626697995935846193482465676589126183033518847117961860551724070805849985242120029937156784124956892059097078018097710807498909512104183806098817920848535417196919933929370859614211505547336205403813497620641462403228032540912623494300618468716558099021912325669839591418831971150845753935030914558122619707531330019972264515704107942871254131341655504889427535676551876993731232575083751626011188563700438260502428879182528852574467101926022395864628095577600741752324124548278820912518249897560544215157099823402306981653069993607650615163961187296231005772742055953999510497523762673544920433911036944996922285565920021612808756808429186721970075903714188218896401658439659381426904696238246801121445291013516217342406020986908215290532725226486500859045341384829567366808668876616122161576794423668604867784647606117554132848953236499323712793380028130521910796168503309075088005853555911563116422541031481859956687778873218903833160697442852875096355387059242523717796174782968720980954477480875258472433334238597483010499937296331935157258631471353235816889315596306389625728740879781642199152919958425407549714078428041694361043646556175031517150018125959707242747999223684075650868743066065451398247699917733540275141014417952432361858759648214554963779875306316485180239998615175871711404833270056158481319113278952991044157560834562132194129437659199939872176375331113997713921418505129932973576674985116634142800797118421391470875637604294820621030133227414433532506085092140259479070497504855725951527984314724099610765916742484589907885406916023132563904849726314676513138260317105959491105273104468920162148221386950982799530397169119493941648517044256306173140778773002944796216487219641991385546461568674061727499877728146783855581303591908695269256286118490094342197920620411241832961358366464878416463635311093719738403136170522382143146549716491457122376268565110806961426845956452932627255155675974950980164502929383658882275921976562100584057166128089427599641074979335159425509289983454392828639610133175418028418762300201845647513690771850616906927185752095857418101835117304818122315513446240276072633875686073575550878815675604331145613258353514255750056505690009835125554128673284821673792485941119577542366319474183523520127873612862226018270918709895552656781416832691341866408321998251947603727326588526947296058252856976981049135065340759265001923922863194500985451710677141736249905119606357660954045959637686003541706560507997101794348578717990429631700635998871533985277920954685908889707288030176242117832771344262689999304886572567665133811939622240282904503452320849213566020684795636415989228648570709884821117100010797314451109192184819039120182511607989953324678857116816035474795388013094406303371341851725329106527659344214718740659876467746165060499654274179264722701022229993219937014252593787595951761758683640381764253786833436957773168154007817157484023131697653017503719886733576675632027132588815002567701129276764638443634073435040703342608847534727604251965128293636698760515161778376356375994278460495233709309094064723137561894786650599759790032790297916303863890886994166125099530255477317887320835143534170474499942729225354609772458860730460857814323178691091200952026471260522809187901397777157510746414486693670685024716899595639310704941542283707426541435463886861674702600774119905280936517430468822610045096113350271281189499153081462254002715087021224971086659903639686766552763899605530938349416631289823588738261726825649151381547024637548586307353121009025183259787144191249231970609724455675170248522639431104715352285170158538582995968181118965017502000368812017906094283067144480947605395989776490799574533133535677011009584022622029596044552040140824170231506433313626475607080796100397485127845639941929904380092511943167159574404581397055007765548829867725712728719909895511844347262372606126538062595380525994645833419240003549349708521726343438930812986238648985611896962336280033830494563347593318390619085668106161912661345181604208795676634123109827344065757884315051501288084658002667251943215853226536068086807519317134262243032260063420228391222575481504818031637301581468965781879461536752625422795318906755571079227274047253262607150068668393571265722326827441213816894272509611685327439679260388281347011799641689059924741902710367707258045505992244556301436764340748605720440297986356892101079801359388664938674469080644164235316311269631864668069741433545561893300358875419217352231534544591016683032356841340149022695548896117464087177604415045927603131791132206598603191213897074811577716107660045272007785811855906222906809560305345605031032909158823816564237389754883718519538991712052951214077229663538508961932755947327990730499122974317989714852755990469700108751278774730235749192840056649959945517861480696719558885737524383741542479570084670363473784520990968902645673966850810852524711273289573466593886511179819967178926340949413721442288045815415474422947190309101346114206364791644566929902715603332157388074316832506524203724883295049256780323922202465952430404874096564356355000227497867676242866725112858861055083324950785504100493564736043481639769108619814921340440024826719479095919404039584906688112084256849783094240925025328726503630429052982579820017904788535895433761123041184597705094173694597745396018037393807946676416142145696604720659681371616677628133375358567690902908702684917786231281146351092335990076213280228965915596122466915805777033981265966941818117610756359491981121326692931729879187746577517566586355991977997049554942797152727347371693144521055336560144268024808446297019919351731104210832763364285956331059247876787220795134004656449194042072121811935216507673592929666365021536767393545306824406507741592295397561210805818881987245146556373909757402600323262730955544585527928574465795882771802584803472587030463866396252846687645669352692855225061414114425413722590611259121107341784472662239333285615812033651672658571341282899647278218046350301317354685814329517122188332941173370582012891007539586274209321151266048401252312679890610767029551871303082217570316457385429531576048461814178796492540275218466360753037791604252874976875942920502891180768807820041118786918589866670810155797451451810882281118860664248057073066771000442212239355671102020986154798484423280794987095969189447766816381487012697376744884112675501746262151892235516503176454679401264117277966976573904485593200635886812121071595068918362776111167442396477943272708470493236254594884096733759267763279564801495251942269519176697897038603557980265354895442474925030192012431093047177933930165439899733868572251900690813271084504946759558202136264940880837524061747705134557215346750539457786014458377980326191259487326623453145820201332055762478772572917389936027635104628067544543493606803787335019064017033639240160505371081125853201336461256278258680608414785328173349594640017652205675508577903877905115786764678961102885693583803280447370660416845541399110492695560649407148154280755078960599944202002744856191959809822813470174184614237907599853578716127251172658878842586343846929120239161864641133586386052466793036008227542980689565779584359580588572901201086467675784138277183390141474754338777201692731264966517767033634999099386646276600790946473328594446273465737870702103428501874687912123856419246210378072454601917622165633225851949460340895929900730121087769089405937239432163749201155550439685107566361608194985489969611041795476663800119687631834332825092290369368311347654692489808163006254983915102874042178389328661661110306508963546550070288977253349916005991065518519662460845170639988372662050953696790512158681677596141042798220405879368969853014319622865805980682414077346226278182286146267321320021766981909541410702478444909194336295154871239938063861810491191161518373393668298995432820569839415214156349628261927707620345182535533827025185423101210637080753648834905799780724220797999558163624750508375001044074920765262529883233255021100010366858731657526973547864110272918771040360194597421350869885771636188398826894802964116827768963965087399975111474953312220741012572194021013948852628943010066960807248175244667335279093279281311451118803772537522579780543745446704066197541001995199850740471703139018186536007974662722007474487938278652989052122067833100128605989080626043881602755289172836977893227040698915746066449816130927294940966878886962990839178714366685686140022089840648981696980320066504065530628060048536967648351565867933268349042334306999049392024864302715675675997444879232046603066011164605666751241721954777874239505514449917804177975779298074225855055903875008624231998975591926668019730813100793028309593536752600426148100579683173159887818119189553391984419015703032646917703009587780087381937444102952835935843754361311337210730085769187462489790933052510504375505507289866578873985490394772039190988443543815172267505675875159961710495341400936304253108575795188904874890408848802203910514647881032250345677730570664008476576142464969263233950024061663245609854715389762411316156587155188127427449439192288170945040255844783971786597008880271332547697792335936838023757473244590930915883725652752403006160304715890610396889999628103294762228178998529821181373893913968000341111266651684107109507288448395386792353128177421663856300610681391074645534511692736474169387293045647761237585424548619215935884799743099816420554304174763716019254600713760198846301962206993941331358713559207418639269369133294603737778062889247553550477593841778848890386073302501869889571788961347201108191018805663177704639055861024295865592544651959787659106053857761803539185054519245254520180012048346933902352876459266725210655513541492128034809373272879059220338494265442397593134342646679283200702841372267864940573184098245038325126188321791953341545433523725664630569676608978845517271092586187521404077793809946924510300542282982456717231168834476105203550406479562505417797401162665598852359819059745389942315179543096936345496141619989179171207067049433553622518045132732667710598586423823358464145494761422104776368282609117352228043394529988814611811310297754361394012733161649326686813783628104553011068704014388444237318331964408457219951257227248499053693172701672395006877334361390928523141239486950020407905854388047317039505970331096848831621110799442837466621064272766252526362549299817911642437323318713560739315805232561065754496885559545573854975523989522332063613832401066705494799389726478410970693038629121693791642412005042328498039449570931738388274329694377807332263587527205197416325989914633435258286574426331756334979984477240214426028219542414179121400506898183908563743854264274267613519244638270894208580379204192489904169017690910654810681638586845444279114421588267193075912571082855218815200748650937393431347692421225732417904329504271435747364691998264782712969278829459690497561589469021544743873603139516756327359092092902688204519746195419115738431831724547656506173473170236186334862462883719747846024390925846250640813434793403521190484881522943254041271602702779538382989883913667961047400209540566570956750832256776575192882520309926606839077631250068396368952373059333722399764936601777395051619444085496724121806659512476831357490186797976626861928015096213854292501839712880888917188337808049447458145994199834922901922067068109077404908026543414383101885342071484239579598270704587010405188215201651552711368824804064885044327258494803080435896388456272140773261237133368047955527938615129881666508286950028368347315852495703066772581048553888755717650916175454561379969183602327029513117783834575707119302675580925353946406235144907204481547381796028632857869051979217057101306242352177379737479426227443618932661928687694203083515732589294594696380068951925055160082573232823066837480675517996516336676769036348848700858148061652629381613128647963518789305341428273348824197281939277708172319141735116883764059324322847456810416515155805516497243569093547172021629191689978653345290603516287035585999123058310617819283660970965794738730137905452866911245677848036977042509015217888984157631925618530851962836128383290784213968982110598675299330277587164779181075721704962778009277924937900423276236028297698764947256647558147079351464007017220389944288359811281974118977528500350579596570608981220317860639554878869281500573632927334828113139287461501946837433431032516504221327918781702861967747804787404042672025163788904608701330156762428225784796954669586423597025444692988020369278317697435233897765987470551749366617076083758386715902323757483566313025705336147065564175875837179127003097374972824327996224981191184675806776343441811499646031350986863359703396536918200501422501481325062165323529163708325929122137293802119862114307026624521307672077849756868190210676186752685069668722940155679904756482613817915767575448193503002146253071487704875438323573708471213506419533515511613008119513104613530566585348395544948164595632027975666656443134591517303715114074030067671237183973798655881289291901649354314918054799323811900657016587817918810303383334080845731382110265644150857094431593384178706029293798843827557898681551809237380282057539053997956973124462092220953395075721558352467071249854455285579929238528422394873585780334369235933214551592923730285536443375684867672389026392655948817381367962221234877260675382911229581475633115802684452040421697267083861078668715802464495113358342850128259790434061491321342523600455833353797096075336239452706956468727613812563012783368549546637686786212321186254416078438295133805664996224110748751952352228462587683794115981285935578267368970950906785187548225702800157460444584788095337670485827520544733414642680663162313435053138971787312188508877837535972108764042935660134312020636796386400628900759110003550532017593142679553689788069900508659428862657630326312258839694915500084309290120073033663866849224454263860714588906917489747243826002067839340379050192481744917097574807110707256521983442909775887312196210581032164044536372969332179650081689516437913787892763849392779574333682537949425451210138452221760685564733319904706606980600631654179263397770162737879125867858334363423989533067580509248221703611084933966839839657131311366782585519196508736033861478857235829429026838286247387710775612837936159093116399764922992016441725263293861144735608866182561568087659133500925636349662682311295811408483956152867399386833782016265792505620973299811212567398725638630880297990026575127403330108102980007424084411019138078859212604184504246669347247323561487930491212239266486871347623899992054769077726525010573463383452548037948413544503447581085545825780584507311958735306075847334957541600823980497108137347280059786468519822838035750675289276358183806605364068022238247277407186189223278980991058120146142748253968696191889833862195399426775073702289581016103514832352127851282721718702603107888932870306653388170029140904213032421138025253041048617664576983842133944907563804979917692376005332145745262485141925907256554221586226437033057696036796550071119216802527371756330268823769848400821385327232662094222369093232525190011658526919585636541087379154804474897617152810891313568489679534511320762248388158352038923506428870186873141723601258131676607371139866716981454919786146049358254410678157890708196508206739644668977257686132427307424193349806888362154988884594131585123569008679234821378548947495105636468988676995636399643550707778467524280594358525049138484476719079079311562347984356432220578582640472013697443835607500016599821853930378165479860202301134396871613593138451423917227176633970871251485042215614123017894799854524819688629465737033614166329907551828555133010218659000434435711994598015326603833120449991335718600341935187628217906349140557198734952881008409991884273447011515848870091932800093522093175687226322601610545228289498131226934185402182125858049247628177802727064510706633273902922746038288979415039197376809073557366104872383472427445835923485498845979175658211347568751483627714763552508975665368689598126747804209294917100044974735409020967511230864921867221478716327675735635579705637424619164047039774212566227905707555851023575820423719963895509771603675729241391254121059828230356010301345942423682846242117446139237727209224981374630687055380319509788935240754757719000858906144444592029900009704518633631015104619819214614552109914726870181519868429947661440446373463074298216518011005459885794497681013044822401475724816196954868494262531131950684305036503866665079088003102822565024517252284310309976345095831475721570953825270289237077293069234807148369618337754741086322814776664073152217026266520501233570069470323040898022127446975589504018299930722343033939400075855566721918805448634104065048808207878038272018510725507151396897404445604680076277945808551082641418075721563043207029248097901074354934396161565815570016992396616004835627123682073128405899451247176225772397055559514136167643399831481725751228331073509788619741892621203343884164588540781204060987062302853803004417682770206566814688414118822253206705485172275504668302604022894506208520213286810343472219410294117500629146452273922628453706263867024008273024352455953880713318778555063642058426376072104087124772914536287479075645908351363879748375138184774838450720090056307444976845347164765600535792698485768804824469851476349480563345505034860600820559967854485038393548552296568582024788716909680846617244509291731015393256059988344208020154779096849142073435882014887898224204034773856303128768886412658686354173977144090197555383122559913450196062718840440267879365699214704308223822087062903107165516002165019256154053064580998425429931083122723021388522436008749987601632041584030966225217793459407236980573459825163423195167191975540356397689307800814637166573968588626557140752767001766924485353335971291724153703841860374775195280640216325364550818129709918247701499433982554807047912748699419381472229029149031777602944215469244196951885757916833353428248910196975141253822844837875984635229752772768243829537199024882032215372742136060092675059620624293801933554173762310788942735996874661046688084918163436735773404895543583744757258781673094615156599457910744572922937164997046232901495348523472028410475881197873939144262744132461685853725432919411712341653559792062031359896787202986268188626995310932833824322646507066346360386070584048489154607055099642922388197650802600916812412844204812276858361253248600327544083403050988219577644626322333566311865954884852410868396837813925366522165312904798207110195968786225573265495325760994429002834614907258982185714675418329673955874937934301419981803672563288066680794017782857969846486430383599124265130446898576881120287268606213035485064310814233452553899993327603417054275230185769091602379649335731329335440106310716033119835576681671916284834783616672659117894055015898794414338320915980454703801931833065828143600949002188722812304261517332954778579218256569237661680700709545232055101662169534278404518586135784178777197923887570148473180119606615859727691094729456099266746587833931739646973867836484637620381871144537456409208755387838739937777017552271040878005003388271583608693432004199713040353773812964220192561115476805135639931799451617925323529977434709364293340266638567548678768670855148112351573273812156484679981558964371504918771806460809385837689257057912866310645675383085922372691921626052875045841753105794426551475569065112934115289286070173310245935935836733224167362183832140532551336034667610360483579728706514085864511588811147253568979810334256596224181194439697101036774340370674494126652590850077817160744456003332590647381781588675340995976387922086626874920167943596168431655230250650805352674789858452557706063542945903965896640478205379234807721767501946356185741950750055186774095578331283583255661751964059973884533213004101706498553305508880747973718159148947229023570285499433917896208162751786795513532051189418148810218708717530789690542664814174697452200190752875900615435395477496080859283715455508868067984761334572876816721696205749486940675176376391934161495031027482929377704907727153086330538107142121231610380417699882240631612523302741841089406366162663211255975792579128340028958932597770835745046190017161654984351393736813134766525610842073657594181252827191589945065461499617117973856174321239248981802576779616909481386940612735861225439425814829711682917641615368109761386561792075119494765314463926261900287998772545453665690901899165885335572368273446869233428108206622067581113825113395101639099023593975063903902835502611482890532824301599859635139644940484938810904548035157407891266569844984550407014020985349514068194601315336610037031241760103049763918641642753095644574125178428174916360959372024072181141735212647369330888372154326857505565427143927057395598862527898098907580102166034866057758155362607320126133957211943967083626020323819207677918424025144088547880373884420145646472846808628075961218619801388315719806825902775469692963891910622000918622162591805250373684801608369069014875030057046452403778488370908937159346104727420377634149058297494265640236964369985372515874376673648679570402021247499564734557003596372545004549787759856079816870221807570644216743895740799633208506686887466950655534278443200481635970249941669892220733499921737074418474556638740043031784822166906894501521015809091056552432201579944348829671425276392586069252690234257441743268623664186144976733636849009787463932351506820759403669970802969752238330912424947027774938906214692570843850224967663712185493581713325119482641675239495954283272997149887699570347967407120294010047914494057885295396352424888275582127080565554979817890910709894635199261575491821836603308227560496794251590993101899427312428180685878480287938282295006077012809447611198991458801797365089822146060361460738946992185080413609995380027225472272632031577552402642121776063130429602731269263361253561047922910249847417778656779744166606475383709124870076582402169919598226463530390295803677262796040053743090891153603491170344036744952664309996247412964921247269542652409387552636390977243920331250276368019271061782734338711011778959691277405588361077420853528646589500733221522947790339149140424008737456095528998297384916782249277551685928487341358638959307787911865235418559264760789375944475022687981573947541117314118470468935396322133565640200287008941304056893378101309192026118820750169275253844769902421242052739770058585199619391281753304756287803426591554288284599673900867074900816654075168625519545087880112136694260332056404205622729896735963490684768399033092228201473364161515934156678499178073837444014226688792451701444055538032359103273597907660406966448335143087074758232906371924290702930648250573454761294536273428472215885577197140989563267497113764093921821253145654394185902455633910994097592430651067371123602528231576930383045480441784793531717761778213693587444696806023997552223426613200232577519307350639366497868605741293529152223463290165612672556888116733738755671470917458554113677815317972089574675002102707177616499291967280683393788172613929807921357423244866474341933923670892983618340138549097429386865207478934375309121082373368850895274871327513945621540926651540709889768425136657549913723177961817573627840880814660889165509703286165121121524777548424653399965696216031545478835951974734707190712971811454778898713237837066069816332980974106400534221007549033694135566658998217545070502447312097228768517150536774159834388374469597849952408248963297848696338594832551275752939457531365781283168044721327323168272252006241478963604980352932861067164998467445880810155522540757111077864883283441569350896381258153649559328428225291556716867597388779213592301864478919185271894184420619456030082988346204813926788368147238128263201128072488404529721035960656102886862750996155824087825429450006522410876273899589691485147490744949848632297159967175830054591246222259719281140473034703977162172747075026666200917776224158611711221523803884074040572937316385840947386997807812099648326222740318650013577537038560297207523917655801230888579235621428501316848851981595829044110152762079692820925698604895971091629839979246413162578035483594871176772293093177702906742619166485029392745723183481943967703289241519021273364684884852160335661278302369898905382310295252173426660459902491626605568778695399373972446946193397941404136757497164491641747184658473867371975654085388391698464976881829633028050838445396992460733231060402431828026557005265728785928411314685819252121882258494428175398249348589478092977729670643741576525056657987247339110320078497051938496680560682867448880318549452917601038624423987218625240474247197410550404398935728375550934850127027676252150872316494948551389735697678228260265921549956363497257621394024598928612587744881886095924312492401552905669404670218600292669984434018659240061744427650284543971381972801589905730405558548854145498945658058314626503149589665472793084091674018529035085216586342856347425512043661995173008661909006810180594959027237579340310083897523330472775488482113675568393236604312945813499567676796460901855215804012152130209599799855850965754488475642634002446597234704272303893755327267345568450955876714058968215202952283843051949393999840380894892060446609490390051168579317425852135998698364975145214371284419514355914337917559167150065507506179089233092682352448841749701383505347370223751138110652000497324804845008751783008518903778940844161849069640431457888721999564135002216442297962972442175857512320538488375153540504340262413662062754518659386016916591365205523192799398233687694402810594297433700631063793370677474603735527128664041780605983639086673604121809991017493162174051862063993306669121042795188181721818756404513772186932570507312576067387589309337746203576713639375354408458370582063872481368179808696054219613944406091338432061238123369134439939919059223695756236798055114363618418859395721397088222345192989731935423780431567605248908492514103869582091956426429867209326996699695440796783727813621877780635731356568117449544454170965318649166848504532601740240620748257442389710898586648680431256647291455027512521792409172215434089344075897826157669598316025374250026710332329904974436389402220056091173228943180692371379505771074196286598909938502796499703150783414776993772958095349582149826926502407987120903532407519592837080732201410099244694636935349061055797227759896947090790898557707107361712466373482411682648234354296174263004160617013128552387698884187217723862011566956005624566896228830465447514993909340704025244557313933443504321321141190592633549795078869383896909054916612077403757284399327182015351121667027850287098784881435419298557942940174638337133546232406640975719219283691600316816668803165518924473314031793476895868560656823492028262580608090742423503850305068353115702678083319529797725667408833822929133741791853666857448041194908454525122916921506396783248439410644909284450957619742545125607518117353655304706895277432361903728341704338780577939144754939080641232284113205700174783914995096813989588044009327620557566823961549629340239659653998864194274669437035434554967631358183754106163906515895893627739460754887190796680192513358300223149316541412615143071287550090983094196904020853160462354202539468043480771325207862400623394038619070208634881595779261350924229559560514634597838110565366927275368689690546942831855725839693211144605235283345031353751283921749188485466028464737433631914847481126967637744348008549694947482505878018676749014508238201610410056135716343629467090752796968424545622197977698627825001611091156237986023225333302175412694184953066673380325001608093284433440084414785435755793635213665262193185310976729675513417062763892825541308708224503846525717849354320673132126148986876810593019563829235123865326228374982542146398369831210256166811324489714228142633868278961478354677929614210976191829940226894620856205803739250459335268509473781125614380704128464821469033577355332485882124940960592049297537412099527684566914936891375365851738343575263587400744619634412062843739515341138891780318481759355834425198606620139904201723442413651157145983301881850100668494057890877742683043003919887375843188280717189276652060188171552208955690983351344681140174247698878132111519509592696066152494981340488050716300739712073229568383535262586157709733695643581354859015928013587726937993736579419172162628224332223647651947786554590000585787292809148125630491029032349604236474479655762081160371305178668791354082917417715726895336528234079182074298015863630409460188160845237748015993036004044944176242723670037812027413675270983743903106512480163507148299648079154143804659386041205353354022513835877773162049289477898565450567611590182118868280237507962899894993177266478747292237799033257088876176174614756570980746277441739799520245695976855807598756824163700979415533315425879304436510026954557493618957263658624518336224009531095566419530759927065656007259471208134119211953319650118531879315235951198924049809393626885259620823026782717868321056887022051066511442617926336117301485496524505597041563005610536692690034939223656746865428167261908668708317520705267525533128433229320478360036060377890170275007257213377414384507125149729201122573983911975385106133389749289236923492491402122764778481197227549984269162982881619194527797561304160096927439473740803088404711271804793338691425297097595125636449134266726093198863419188497157039204519257606255839710720264472811365750225260773386756751262113019456225007468067458479679715462003050113143539578635816924542285033287852302799934306318594263013663147274098354873850203763743876286581969833262487431961102300346208777507631717195344475275378422891668923612134261565301775253769767403450774308558470440055716116380950618000828701617987156204830605668861979649431586551808153432908496242329910895892412778257828878485010607675330068173605382293093032991259836508103488807043084352405523626058831027455336189918705237765350276783652584456129804044456601222068988894294250474597657386603479758082242792976661545326491859821568685362925421795890232516579608913393037948086861115764961898831067893943604230013290246269117288645230050091916276863132059351007105451095292433337751465955001718117162295233683569284450679334880132794240095946019418746154718235468187852314898943335563828728503600386070074899440589394766871024395313660055661928396043905802470850038636728778250449844727111220504383317746550042491271001483507124927583143027144078017508582429075847620924557045179811454549670553331211904464159797815152132752387068822590881665045228027339424786282849340706971122961970420308839354873264150090962996165163056707510584618465012078029711043876466075370417849507945589594106944954618479011721408983678228598243337339296636076024819957293959432165990861317886783442339832065281401376884541870727763901919705891918988733310846912697553645859475485370999436276572154255870627578460119567121559133441433706006826132493485780244819741815063390024270669967100407334137877173516176213622213264227558716363885932289568936535994544659717767323210880677998603608582685279408874842700609159276112054012943319751030590793944213728244937664284409714387460593764527279367032795527818637309276911376526322526547440236967445077933670832563388471181642803606058364361671643870811053782366657276801701874297822904291508431266917716039613634639924417941749212454159842549661315158194911902270809645049161046786387958291311265015612201986821618400982213299334265256440401615603636580844761429079039848808870364595104299866877738508016476389869372091121269507791166404493778401422338351078358516017723173272589269883025188591164992593996879759465079958957753170163795774178478769805585921562238139707989654852747176216888238353119526696122878264155283115501258576935829621730102460644762186914572840826503050052773749686548654580803815052773927518835963920742391167765834158203097547259662013991427096714241342468980454517475495209776782302450931020610634962497126214358652764149617965189559112547551061771590342508072780239792889325884506266255021932316615507870118333323211658325424556383990030870459317641843336403583834716083489327599236138514732023556354601769188218073419499684388575469097013579848287147376048132337449970103473379796607089053926023230642744937191187662094238074057547982872459514491382633103406169288555249259264819676967528320916455407183795579434207645117313509514634078665325020746846860580955723816698756638365338450369196482161818989969949903286802363104293330740551147686324771252489592678609656370310197094924762452921966091234386803117751191910317616382780918130898078411998546586586074382994433663585623513722678131590883830702530086039540131897173781179705496889815279926380942367416567742712558105613389478924023192308499122424681771944233523309449742827091038111025144303790110391874300153055285148235750064948473615209015442536199371646507717214704506656614763620185356757104308418286850604811071558740824825915891630991071804213240305589654734343562738650000104326807263040918726838290365820754723635710094611945753087100623844280732359563408634426902189902962505603283591783617180373413361783490939931773478901246156841402459572876150182246040241592692193612995675047678113897550303282578707343787749999430596348882072786735182213418710568138956670373511351781418754151848667225542315267813919403055741074719180670532975206427406248374455037204531807891466775038175632191568142319382801976175623836696388816321771974613637972266168056488052521326886667826236157251919890049739119068951790856216974683378237929120708824309812687972796257313005403724817881041999793747470373299262128493378508505977985025220723049107391941590385573959868248782745235637779303529144906263659182195830625629847140247850633109755398588428334551676400178379061981401811381763683036963259724159646012659916417927492089824052767618660041433555594540484631538693441031184631544829302623125488529503241484772876397958655701852241838256127269897036444894857159795520949921792886944015664873622540507399521361830673230556034612461161728970069872327479298720720151789128071481501437957146601225798102886801412277190600129843515646961837339050154627988128352908060729054152186693900085347827766159411858418042191550984030738160465765842020075241012760724069557536783868550162249169931488957947571552271421904699581567513206699483588123068787097645192147290827288727480524368574030209778557241985408310620636305669302764058249972024736914237299971435136933043188186418402314775896475823894684742470424842396275101449041420581861709778286019690254134241738068973008596687881811658376685437175291174576284892451819747695782327484414923113791105562055307696929521620459135324872657436883727552760938543877618449816678106661551555708715164256652990795415627855113478748646823988792118793985780350608115611964253794252058680057233942910679052177389566910348020538212457319470908711469862776384857595928066946366974668849594915938069569600496534175379012434982690854127336017005865994420300724785652708685695130903642731221441562249643907628667014066239003482939311130213713161524710716460590526227924417804743666091498833074663071993959777353259066655837221513557878318937594549476710339447369955598284757634106864295130471461837395703765844287684483058040315397530107570468957590497456752070693225051979360264721998728683704595936391950093609901158592798196535444379500536067510239691205674813629909345472966551171568396495200553888096460712502775638811730676841334589068799823755576703958420417197356981776914069249965188485563323085967683856420495878167316633319486377560057620938418538267915140985174467772727728009028842866655156988272922229912231054156061254628102275091536851291265173970640233975434466001143678604771304697992780812407311329305826821830443951977746615626161886675193402101934923676823175586092981131766842691652563297573488892669338034496898535804620408783349964818286296791565357191928831906699811989398279446596161881154234182439782269631999148121937972409861550409245988189663829077779869025122710697948545758920335743601948894771434496587753433360858015832158034071965041779428786783164668683370576891772459560107700443648912233775798274469021017133060248695919132063275050999049671659589324309455852260856655433448686262230661084437383308966125051015930499608169600619804754338331289812531140134761269643552279923340202732629818783302714482228399303081088500884227094171685639642285557754797429405307277636702279761321546963345462267161846672846629955708107076446219294083293187274571651882652750625971680332409465713424082341973595062376525474570575278470304982907007803059674569128017333559481268353540838616573125231382163626165254980214439272882839380594009248301626919581547958207496287891676883375734269767308167983468488610044384881010518060664583558409141915360028366167574240293570342750186111644002576542005349801274933533494820840811664383510219081072909580674691793349031492125730480886368088036152133839778246363709637229772071896661971423135776059979003364756277210387803782912696048949888208864188243129179966007699343925668510190322911875607337793680175653943938516232058224941882371125498357971858297087669980203803732335579708838626960945465542797423913447526250360398438438541388503858352700221951370092659271730703614545867638416973320791024285708497292035887503583698649551616943005343547490888117569293287319352371442742474839039911372874198977110853008718288383726095596795773845302716824170821256556317215651387491802955918388337937438548866133525656178041212032894672388010571236335144707873703892407861915613311556597329745498478771698191016091135802933810065430435739409684221799128616831699924916667236592823115026168691497938555980452691984449020693884033967752057980062631139190293150135695706190520949222606074293894048058900736055535245093288271976098168473464244946086487069220393185881642431112633300806007952857929893780754934693438991685268363883228089801177472535170753863058036926145886532201001352202481945903455352316695794339095191562599456224348644185783354333597555597558328723673772562735784069614742569922407305684817576201045724374233834021847099117014986839074825998750693313659014214169915477691001963099958788039616794773732762975441588780701673726391293969851452940765219895763148553891089215864707380155185283829645684794257634136377191926407464718725253584522127236576157928990248305030246974908081443367438611598092016550188934920237191490079107425858650060025943906686247109310701696370622992880029291715460339502759282300567686963580059475163655662352273724369197644258313729361779716770125795318988614345910932589055423883821286649788259697891297087012856547308866940933238744874615003735326366488892891033705768343904722965617596174998086683083565661010494044613138924592775577676101610145094810637558752360152497795450109492859459143377869599270943913980666015696028241992338076538439460614973219957821635699364797968724089712929518774747255422538642253074443872871911690010050551253066417153402910229184135629623254426896971413113851650199123855851517751648102887275235166463592443480604200277072724154274552643509671154065723998953752465405929058697384282543826146691789509211214034240827626696085213769755302828915647310406328976570672284234499153870107616074416116952886566790725802544978537924923586795792920107088554217396576603523270560173259883025576492019114858566400344729975213171763941508304851492350298104751018189613356623193100750491138390140415480675049373653808753836739074582943946523792303048096164464652931293368530593360750628255536219767081847622403923891371711218147283763314729196882850226226985561407595215374030479411238904355886070313242660008922437671511084221964655755540981985602157460733917738079985875872073805470905789609488820034049744799783338014695298072441365904358153263493033876536900387014949353618141420012451086479654461330906379181503064751998355390496549680856937992638229513939567497381706351833289270429886492793282635271153629423936728033250338655767919220195416125265351960379313480488517630651814928028317155407485940948102227645278421518510983292678131084849170410266651366411688988864917951620404069795568762250734589016707718016680257217252290479090155276650971670290436737291128441245515983744853363104920246456183653200968099014245787991301330222602901175915721009942766947235362717760042764012174761302895625544073813793652680133350052498442201049573373157766348755884995854604919209693102531894476823565601821654857104692064667897826535274779921235576373987622944019287473400448262898497310764607072431883517107875734649873479772128672912248479404577036123676332989258336860263538676981100072907749076088561878199470568532827273652909217789806144406945908079652118804111250295496217969319588073292363752369235139176709140330743990892398469917676029360287327155027280149320947780262594435224393078033611181944143872487352272147899104805993855851886263907917127849399753245745678008374848385874588642308440105599915875736628345979135670812210907301967337343918224551937676973549684171466648894194338650300643038526893931188239308283794037024029872502229915214688019971245663497437541767199124029553699278170739806709126635126928921277295739095619399331518896728040832516908395556148867619931730261127024784341870458783606683147568442751395008896053817682925139929243414502216112104626648211611358971680154891560409882658176143766063890527799148759391810714486826836983326899315930197025278627636107421677686224592857678788959823978563282802695849915924463364267025354477970248233578372895491365630531858607602697946315429558967707737540225962381531490147754304829935262037203880825944838751039487748910667501286575656342800018768145800975517862528973438481854186937264602901703727396154957063249966619300397806806298006366404985199857909379413203544701146896741280680464736526829243328520982519935024579947862406728790192524344359458792854436542021759700554544653346458979890638128402438335089208597494088437078314309653031912133412105607822496447257750524146722947042498470540118186874665810920713006074670998546483593686980106745410894825062690072444846362909250415437776819175161856571665446265771128588301993740729189454801728195809533352584603218965814282110474053429377347183767871100989428560186796832020005066651002691325013838644282433673344094082984169242626575528921149100376773552637790664554560420810059849253947744882027677733776120771060281475284234583308960886714897913304233456597444210186918335569290937756295004265371561063982122161082835766489581641903074152462107753886766962776256125842514981763064012245919482070308342396303900133861752092837045292487740211033257528575487371627063125304631009507589955716844454457499045433500483042230536157036715917870918708656377650948642857043503612613753553182079756124602183473515753630835335642771480979295816967854506130093023144306262718423106300463913285083394454947208674865227544469458285004510369180621257286565200274709849947141202251404798299786507293349884420302259857716375548479750763941278083871338092939264489355508241050778072901373766492792207440255829585949930022942793911089307289096863044659110687972446817478466973576587408677900332798322733537261764249639784249390487813815476455564832695936310414483432595526231110836467310205453503002852510231230477618716803769619611242359386603354293387038683768893071015764946813204719138674039566589843574547113510882560658669108545011278548540202133224415091964238540279305030112863993107716900935786190134072149318510585638041805174979168012923165141796755419660178597472747513003519818740709295391443894090017513256783206478802595180422882039741150485674924579700582089315998383266732484720611215987991569897822709326355080656010657709866234391762707401655182383706435042646112219259947213781821483489130033847367596394641569744724957370295717517777498484997001838384785832880874366861093471378339692682462589594359455006756052263628264391513479801585379498171303509661242335453474225118127028085826821526211837368577510386546438630393833487566638772704353577196487921370764973720990211159962196879866008984427350124760754758159838240307259002234720360441121550532185153714077710730065472578480120420918104939882141640441561292551945048638294913934025631395160344825547213523744901560091849367878397783695026733394163644563333680386853354619736826891698262591331960165763476974714457957846923022275294882677519796731451786286091856645259640117247381262660495754331198542336973940710804679656719824538162689405856908732099680866470591808344697523492134404421742511065610870805957381386764771317863466108279662323521690418884677991590099443165557906872067349920487909778728812716512099110983738986931333251470475930120977005190147723124911405000758900884751121510835948882316396551595877930076715382502199924848124701702245272872909521727734466384531308100200513791853494067458998336806207459992935485211489300806757288647453817946846532402062925609771990828450698082791924289703730061976007492217449573412556529409479265979896716105696891121746629017689930315091784644355670834860244873387542463917104399743670292228106518717666876695377500174917334119656826300904493022356124758426761552679961367868792375132071969136999558961346268335438015072986529380638103308798089571530608197967863748537887222985802825449669333705072091607005911994132681410751503167311042709704881909704348230322556772841212490628158739613627745221653852369929770343190331188774633532157629855488014348557944864379023943490091666739924350679195239905573403856118777135214921981830027086794069014979330951185974933742073337126159538104076532290373005556894447311074648506657187865972784585270595115746199304828169024238968330773027609524510243066938133900359411714057074213846906477276626544231458038006774546551701184751005890479332562360203857659980641820684286454625623662136344187178484779568912713068984626122813655344654071347363272928901703335686858461515916114641939198793359678834490893989592928567113977003724622791533523038191216570260116560672656512809267436484990399314975705788170819857998834922512857137981360752628171989211132391271251728848089569353712936599586310706443049292105482661359969356497866516006816424379760061239373242748097843980236268984818111665435112520214387537667089943462141421196653223846719123470044551041779340836508176639705420877876793893368361581271871831515371320112006138447526255577449847188404962729232987756087104271153271550586539303984832657272929844358807189390758029803563029362212675818660475565369312921137071040536867443882134855234410796354816511558103570877439859028837292470669695364619872564645800646752071086711524118837720487758446099697654936373603744236853254422933323795852305045952111116405263238596235448909470444612543540222200738306133753975593022437733601147072094812472804690900187317413570289894545428121903991543131701629314016170577555681191413965864397503797312085156700794149101499536078617100529119817568609403362046079213277727103572766589146501569790059511369755626929359393586019458946436484682889456385151296094932752029212501293848443616418189506630784556024018020881356241403985325245667201275716817056401620597587559267177494421850921748657015028012509424178876971158546290927304537614733538306324924390723969161086837244439305742243039592108830805194458922898608711287849123162856242832419037768280477588446527703492185255863060302509468000300907813591274507873868937751495738892116090193116387707991215212129987083174573699725822694153669399875464387398747493548851708768475624773368742256785319152101064703527009909972572153510076472453130091708550420359864088970904972418794500227531640448785806939432890995561619081608046285160394515579519548344771772727423974549303771555499095322901156499091789115081495327600954939744858642746169604601774958397238471914688958862731503862619819037271369909815482044825000788466186696266190899590198232959271920421704785975495309766194782577599881255132842775946767688483944131419541807696089069971571922853810953812378779467190891429703355767665253630258430301349938270560852726908559005384962594171010164517413066683733458973895652410951150523390144065992942731371851894062724531371162651524575380216938947390306786182095885789994047181630203245886947793666308813851286076812307974061020903307319461972101164188944716858344139810962105927548350423454621752749841606107234950349949437405415265256336956854513873099046862775665629315092439308855475945295335606825917045107322241288018396583286637306497990065678176985441821451649524894081131416806602354193907378495025068128104314079519474420931628338258929130597150861750809382592848818673155681900532466526028105030093220160388696823435602917220345316170116029361554271324161118976125261121875502104965801963480154610104299774997774040483112340313912916411141336484619125476327792060851264172575384577528354965052093285669650455861658781019579460838202314746853204177863142283063095721964171891604792292597909715860763572387975544013467090815320465346397717140896637691331244217955984202647726662617792510261621436638491088482719336352732982311457133604129357653608258422294523549726979525525328220506300799955004552573027771943775997453242593736376410190063456719201381534586813464287389039269988873256804627595622139298944356269592918437595677267735495217737394153653572618996416228651754775655092558620039510144365896107928836168235543383529570791282541578619130576310336399919034181309803040869839964384046011904230801591960069766907511853975008077740245909988795634364772272129054232453376163591322534316885364767134278211988558300069339086514829957404333578768511908803354844385829460992413695502435470155559679252441870848366600929451452041978216999824577605050610355569498969710966668578825877615575126132259954975645673644896254414809750369969853783825932849097262619356469492719489221547377989540963369625659299001822235348922625800208832439742680748436803797632898987331861535482282853557240544963948796650601344231414247664430205640303886965595020387115510645366615221387874530642578009330524686239559564010613462267882003026760402729790144748702188091315694641248330692636242176905965442839160883224587759667436869005363755941191746829210829293420846276593437189205437838038035472937372309882648948807286480593492432632696429665718305184259118503708906725992153500223365294057467159865556114441850076147154262989876359076391837315464997831481594292425446133903050903708088813941578861042169029148059583640502769934965070911710163093642489285102959262870612367475940354674229899408200718741620930652552814726399337292946219427123016628184818043552542632067512792068559972031658166243605699823139905573410122577006747902321638690573465558330149586940590457686833822667194814995669214793559794372705875770127829511029975290930559476306446371652555954710301713753364450077517122797068354600232034371507792172685939810431292978626202436424086105452329335085238887243301475200976581384164867710983466891166905391948140165019311426764127080300218153997829687018302827979433907217990035851093060114072122628720791562621979273560068578952460160571988962285398845606402226092686889389881931952418379532461964710694533394263529375355296524947002930906265624715324698729450514473759238485264259851319832914251969577805813025754243308975964644889866487332978233517284328203822428130449808255774970103771897182223050290518660814672033245884481218330358599030237398571665754128748771827397510824653389259951616649313194656294118933293528392872296040660837914052386824231455161011330402618401241563211318666219087095594886537429800527498940706678452531102580968189005743504553755221628204864834612122151604362097061793203220299057895850245065857392860848549244496153269626719036158981872702587755156279960028054671089839620155794794209272300412098967133737417113155644429421757110185089043951246912394653589175375410679622851328584441790802826982976676440421412262427836179120983498793741986851048727392083086413675523666562198777659419440750871335424726380940791710176290303101858518480977391754187781740591633498956374534147430467071238968215752881235909755871282081495511393415786840408672803813792035437936929970241353803304650599293412775555626974347650072018941790204697224643675095774078184681206063772158095855542253643756061638574005185872016360074397920361225943289174425279300190675068738482842052609124465191234307277203849082750296780960501760385575961576633974324369950753895530351607975177325365256711515305528303813401853316701847488280223903597328567275840275310391122347801796442296377206727809593862547523073578415582345508062805127875837667777800770909460286538016490205625585593697950497496876184087323280198350116970370357030169748355984217013224308558539095926326430303288647129015113894243734038240941675361915636885983939832183832784308434008434726815414450364994764343412965576143037758108836638051151754532968651082690214186335941676219254971966107190060295972501761798707311896165964439712714020449323029403216003080917387317999647443695029613133740845626635067397692280782210312498902146804913429293072157110955766231888430039167803354375810758920101703518602441367158392490147248412624130848434099320723965322145462842569859988191189984581078298050578618049987219113335339660623736245668964196359490158053909342946278822315157396671358989151536639862818065847698887273497166763968041034793259428393907392491841993738782788224892476031483455991497981174071962850123286931960031550878685322245612611704435429892544423419030150573563499826628158876195939562330936715469216654723252131601442179394041476833064845887347440886143127425234071916785123429849207037940044043050964320423293327391668197155012183012459120523160460665012561794957944212486350751995210013117747282635449788190287180274355425411217392929280854193770679467138845855697235991717327555331231256725274943754716856351112670688597930308084719883611144107803303646192406152584883320306767351932324124545787166274578678859561886264085507816309013740469049564417193292644740077669505574153969423227885673943395329162276150772849439042672141748081471696192923239349495994501713683116288682321040375266112365028171203375982360155549442349548064109059753429158129531434516225220689038037876353706772535591783776812159599276483492689573041034891305364548165499315273945922115161728684154898760652191058400936282523855328290285172788315379253581961860514340338251045332305014558653711240628434639201378412112667937966101848926567387145137847164003084249188333999387819658770462997782109680991715824804926073980667233971443605278416289465148855861255198318591883590932803652076792411373802189065255431460562628314776413828210996246280219878802118802628670947697668752254725504966101954464228877581864247123083234875209135755165343577938394994225769553726595665945617821785134289158389201344376567036950670035398534712167414082632006865281614421360074425022794213495206030775573812342048948785027052724332164252764453419791031041696623384349327967817285720331396705185620712344228635320022219441231555413138306337594332767578128335005108512283871889012585413452174685918197702276555156400583480970147594624282205255559341912755078314169722154898145169902140673222996011658639732435286840676324511361240765630011439703162312046360672098125771401666593716624099996734447869069018977375616429618797415669053461482194762136756771096747287644365240862788700448941901424173705942647017974131693377132536127931647812564630906827171720863773934980298595462944035529557453203807866903408286912125255961851030207133605326868553920146080130692880525481000416088510151842259011664171131900065253791630714730569624977871518190238266590201805441962523272963621223022111418789400977578891607193679213398430483988369297097586671078955631115169859277978646244569801445267789806288670303031424356063223231878424048329895681044381524996648915766135197181558922858182057107339889127398591480951427727347127848344296851125406151754421705145804661947416148361213462910237607517328310232527434887676803213102051852950006329487538421823039031900743839105048432216160488888856332693108950125043311796539263302026834967167857790531551547335518991319315434806221977278853658003567588428554928411359624914012135840270644299004022260164869652862071606754594135888061436770171673679685152208686915846456875033631137368812816649856064753306253416463976350036473904496071838126283521093100850602112864491404979759618743685531937429785660588844300649595994629619812897063723025830663250485472197898776493094641384887867814347003204645636425032777337428093678634718911997583447699112783561529337821386433794161765125325414231251975447989839071901752212365022019771210631728632678844833659134594203912822214577894901202562870278507162418979074285777624596614054834636527492797964593550368419223074211258383241057484023628810756193214510280833230743626184272204852755870357481613255753528371581466967588328066328170584162609371372036140158348853853196716735113551921709805804248448715589898714315611867872384267250052448163242041495374921665998391194466548489269684600691918392430786930438105156779370849175717303375049055841810413657139229773226988965344668574999721793668893145989972011348026308094463383465668965781330514895533327886285693615349415138457231507759547900029271050677098001835455331955556618626063541559817707562551932128304823027211599697980688749658493742948139118589513247010504608163596225126144023639882429750997581633703256239155340009374631231398969700781071213025160077006240654457693037037254604512756341446833389696572654118686649202000587758785265321699407058707819103757377319301935030814916190833952172047033515372869401471834506642752542279664768832252133658227752041229099553081036698055315295072590152430854102108254197656185986211197643018576495196880632932940047843342916253185600285038036420041431998535450791971161298282143603509635610946689874105060282229001597613747405170277096420536155027456102302396946797655585988296164587240996943641323068081017810232367683758809058750763272665274146171990800333933078991198229593064344745884105959108283660106482335898468760254690186173887893900932818327139026083201002494027906378412217387029557831910629198628984960329174622824950338955128774952548381574047284653781633668501373072685685983301812623061485111434019623479624942213094341591488139307971467464726942433280451637736501617001256715850706169876153620019661902868859701352254709831900578344851952360741366152741878607718655569596934557673786510232012938451565843807225221044708698601284779383392996673311766044998620517799333436222538693267787397431877280997194031605612347467183236796859418486826930115527639755449676502904075071370915430853091359711995751946737596785808865781573701015466773144676381328259049042692554889707980737249924124955628647338635763103273161048399100031324764689909911819004799902166502913860321851538615402616373021319561852057023863063067643639038559700045729578683735073659375058290072074480482620853192223931260926235713949663480600652785961433142063439890609387307066811117510516115261433910286876084057587574106020188800812213392776450137041097427657023647959160931203621587237037671889564579944615906622221956724758629519725734889898698583723174562904308887441616524388983828481127207666950660046649642748004153699777949221854554245795502435455336251162926190289668236151823581903099564211157558140786947745827823233624056063104481649952934566757594185917855823426805689553002763028179521876765519415164359736211009208228474491433724678098268968936365427976260767029820349774212757076438539453647320165297506387132764362849780520527840573720376813741732034588746256671265908295828916238798861789290829981940282822904981739873098795743870306771877763553210624185678071641425035991729418973080556252927750476607442801513626106150244977322054524067877170543772961459486668777044088394108261926428544710372232783924649826679038343399359607745052066051249314184396712063040026945690847818798929769042176597915856117737427014710484050996732537086384343068890104407964167392207708370540950710742809588432925641904342335456926158865166691265348233884734956384169198833167875551438339745114421230170663461482754672397699835995474242795442563172674497318022595467878713251520556533887291718498127417329501390842807037452895760981253160024253842376195121327583374625260984836419443698795559172677180682356589818733215159473127008763594196436342142106012950200008693290094669579197754510264613764858947008989578889792920865347933023070681741014734453462135182880953837589728594538238275452756048268478899173399397965755811771813918576141047097841974046426070370191503593914959481939184769525575917787530034287616617548731827818477733906966940931975548937590791148574802209484378356679814248067875588033700350487108772921968843771287817549473213023280892791856258684331641564817451981838854532262685360813716092358231355092798357381020100800070820541597740019607497027610906238299532544384336578471022041181248813553591533290793463113020052901286283043601164509052035211877193805339578713394477757917299425216614196110011786653885586179271864289451039210685615313412782079612624393828943089244428106715176370887127093886181028497938696940056906801860832792045221715664172856229737854392199824553928127418894109498855831965635434982812593165121918795282268221066374137896909667717470519184339843702515233339399241863172545279152957706834574320582176042033238623541788781294527403865875502230214560686416880970014972998262769387507453440673444170583167134366767099204457165887562534395143882367793778114317316118206702864536213612594038663292457494484816264903720557068689375298394083942015361972437779009429671535866630835923128074877832618635172190712736135646451819479193576720878030117364307537340967170632962139745105283508762794389485247710132433490357698894591683389320975156663066650488627087160572852274533211033714091672779398830350033726155742412530563722544054082063613763357910626602873977266751930860097628241484279976899234751166622434941767682582110307358298938361242454280569997412093606922928522208475357838945105293485593557600630213594550684302465002358876356100077417688713070030446976884745906019818377040386337628970723258329824391741929149775482033040511245830662475267723927503646253697439439107165040050144933871697732815753325439685316546761519385674024150122651073179034174672085043007942163736578277988090296920295473857300244425377230172518884580530982448928316170099576169550238554220076940329090801835237248410845244900874104551996913588584988248502633068181429431294690749027203490171068618186144659015320318532541440439187301507105468002585773555447560228795660769581454681575040021111629739609210209798298837268625075719853108501509935510844425830238753314945914771945861492524356156436856984745468384743792008232979976544425392722192666406395656357613171232105380874684277692845069913036133994602760612580755034012211333041914563569955903249052963008666656021916102741641602541026448035215539619669294843799707909093918628133781792170564106535361648696191044374590344883570960445718982662518061670592559601942016495216184655486698626568232864370463512227920222273899131163078286075399183508502324586286394003011772396597291743257713739802923910232075016205110961992340149559000027928467739239471432277594465994822415320044770266963489073011014389480690067826937789195978122969792320016226826035676546451644825189748611276951115958066320787084775375166835406303926086663552908627786266660942061725887306688127663746407449077281720071830583840971936517682183981100344141870238644683764842494719466009857356108468491754610981169723872067716779611939675405077771543853041562013687593872275000331940666620235067336332265870122466543472934155580890909410292850378504966929676124668261362450622386241756374433841422881403207188712266291027421435361811403722727734289404875351032663095201068125002145689553497371287082073494299283163152081038599781631260134454543631409788321997436733192105860058928004376413010774576658325491230750587322586526709612814790729937592651068924944529607484322898188092937152807042580908173312582131542760538280020161609516697370630662384255751872989070188617195840025892736506820667417592985593882984228710898100299750232832574218545113127739716478546847259064228902622103886784648476878224174568776432322707712519531865569010219113327568957037028085988116196423846281956523357400167919690211659846043485726512756996893721786027386158540848959206929529917218716009181157830036489241083180922305098726398809567116936570678256629884583414885248682555211460973161750905588078416657934926994946646310903738093906679932796986380710569680021655096767194609125498887696094832389920920467234137762056314470321619600566622878680844652434496354167661439196544284250974478296368293498937790561657096556124403085259802042795555872373082827328597100626930184875945410412091991111828270454399080420557795473068857415413374424464677003344373183801986860130417976661821041996342301433850281549726105959243207358085271748749075032154974208148352587828398843127414377646700743741084432558228305304744632651838889739177254084976484016385960001228667217014959832638851991311011953125617650871966534058067865413259871520036054612020555207892794551134334242877063847304570069593409955832276508710507750099095431289433917165466786699265637382410671162822794884187179300458154726120055164452232422671698681443451822151748057304672182212122383735382381473178620165645938883575214043007793784451690943801409376165026907944524664926404615608068794690542906419932685347807855430028197971743639733203947251089602518830732342154203038959436694984651391437209583751649798827978951614177135522852824024703122112613230619544993354732413351510379857625038960371364928278680620425727597078013787293507816943453143131681119173777426228229453975837931379037174719048695259058743815685578278640577707396232916677878405899786528312296973515554260092817819576078736676886867208850081580361745468411969143478549043809799128564107633026015111355642103301824173732031001234484761569040580457336622819737567038700890104130833042254017697641150794948906812192277450537902396663944773254590942190798050442759616043225550346362387379836961237155053725389642806565932745450286827678863169794691030637724996185474898902677421652292315874250372805770972372144726184690979039812667839188679601535532258446956904918029652772753982016769846239706329369595482856177266376853351891166354378727162472613488628528144920231659876991128863866145196509105286912524168556531335278094308099844200474969468512275825902527382863737002279988432781457226514545325269498779107586663740819271231007545074153239482927988395085753642804295125127374490251442978415539110143747917778905913144066807386427972764255227232970927057722643046878335535640877154318868736594069493341313309852009496275370714834975574488265315058825995338252036874907986989504712318865186077752904350071893259894686571624744300816886395997321292343680702449681389174558799316026476929002035100996882590037985627591009991850902470591252180609177821693018893645412413958420079445867802578206812766028671865332809249630629241026996210478572766575210064597554719983757639930222354446161140760994062144297840879510239667812429751857540918822951792313544666747268224173926805435282477975282543491280790901792943108593672355640427963235922297188980438319263181104305681278638829728734048651624451696621468179738561171493733995642023716354522688051681264049091737847572078303742740130321775214145858189075041703383398551154821776590534448757856044853418145980811795922775732771968078986737461921178904595754914617128639850134996769661380580609733719373889975747118110295122477071164902177626759330924962286777607902058531968471783842345062280937105066030053306839836996944701222471279266661258147418793540657403391210460771323532465251284288709469588271840492973082741628256508744112116335068186979098596030912917147198832391770472137724750639367185911230289694350587374819254346861079183007477928861720730316983163190753261424118887173085620776223709481036468683401582070173258692055058353784174999267544619207626258214415986731295621589165633763331380661845589103195845852361588224995409052517154133025760021542965110298158977868979936132247368461191764611373444817825008476920168883974222316682019375053697339551720818456444276086701459467747792681778404452804508060239968571967844885028841373974336068094338492294462384956215205646653113151050818342227633983667611085061864038003955942633882943151758639724615158337889568495207278271936588244134069143973022682467325923401835249238478748594106184738517464127386643728246252024052994919218000243196839372586563104713318528210199456737871291335631273233884846038874674547795604616394456374456299500052096887643145049464441852102794517350729372358489764080197874055719310452490737333546328868244953087224949847666258192712846366747420326915214634199612651565915633924071445850295102292242977975410126088989072533705578610245907195992339348188810196926495092695062773831172102331654066876066007383252219661299142593420540922680506243322979766603307976842656535886524897950440265386924775392637982746193522483745906402177426495241118230584860360422924992022470824874243037671522913045064575660913275430612608349752309103319901506449424300838454127723875948706701552906728368430724600500541810154509462535698620294104264171698357149923917453589489786811542003263566352446871056198266109658925049236834507220602415055883832224751914511100337687723294631610342361782254603081032329390501764746415893399720801170638605330268043403571116434640846204897473410323516273964226646345953495387867987613293918232063453042590645681451411657199479843398362766728161432405591056546566247406408389980654268408837541213881815078009268960072054851344429605524404474219640317933398999073445550189771294087284436963688145776237845219296221021367638739164946561932741067174951985197535407047300988063023593700116981746427340735192315599092187242442236760722331662496905244228486376235635174203665175665346671256821371682882931690031112973437255362267612297374453804057200980153336256186619450867754927939825093437532670036216519800121910792149796241291685401785222768359128445698145463115391506516467638042969454945948766989617788432628556444721682764828274199989399066892748015516681140086988549682009565580779234007990449390782711606029996697875933220000321956915196400885504420342553355026808850200011996418831250173026403970943947549345338836234363998254616196772571075362264477241544039503466893505950091106484698708090510176036702158881951056598485314374177956384324682594332237358478326072091641169363181569372589506969558852224823767895015940564730692713370901783004694839026320477678610641275974415550097850489155281158677876949738979745693686857312912719493385104338063978308130551523189968598620761927414709884018737527765451919255446025778712042854410266499530327481256879319992940279466387155965589351974931796718576889081771417719283201514920282171259573125317428925525907467586617710722730912607609880137990034085725931616386810393389624568845390422760499481183223437324322956374542277916550102404638822136632720793620044095613486425125573783428894952009789794730605228477481274259888439147659071713580054288096198765463046840892614039210083875348399567950059507165862117084766052868282511173685384841262401848849652134084885430567278315770968828422331844942181058075242501366219585867191202418501056335359206471979687826814030073738931166948766944966728144332943415758479429645009411292186600046802681712925374277636115027496807693253817665216708236200682162054556405471940046278970075740351064227692833983339537564007373437245319541692826740102229440625245924173463307634760818832473004744936452417990442633582391911645835534400331946363213831367670464936919454576290567994608966063562726580781453540836617219353399133322190990073862189676251406023645687480236413923668274567354105399129380024850055967523878170697781187620285478689810784007827188972128553121148167966783855482963183647119798237811467221041943337094862800374810284423145105295183710791380523420579717111755436038474893123895298548947780337174135325380965590002261886738347479185642760381944139138046469922460565511451313874061802525228744029954479273450867354742123255700295896401614236725309413223628076251879797635501497815289340428562403018947996318012222591830744201557788516366217918356231467609414180573741441217383153706078267871626516166161085151703845497177952859917892641503010633614864225329436312231469544853995568771527200523095064890341714551589121147841111124290823361583858595707212497867854833302431865513624371547532230111808814008561334825931943491523848730932855098229283082285377865840398821492796243580694485640289073948320349780601505887694147593586283846833061080277422047586314828200448153139323591436999042868736087773006365326290116059944898243508257171904601418403812848267714950090450717628542255456317417365534758440297797537357133979457539739901137543132227927323849456093777647870946285706811368211902046784463187144761968468339280300479391717357844077221422436960202964673420502278611749468594930582123758947569962672946959178919886671940173932359937718330197866813033790970737573028569201627940413825005054432654191696781770766583628841754211022437374002154154185785811585705211534827622075608260264800346504123628301268376095630329255640917229184968634548506008999262543961283346346275629146921017873207907093669125451990842042514106144868174527797554643059068533981746606425153634965908455810214018579319094526054828961281621526568617714694269154779744260243975925253594699386578838976136692303118087817797374525948061836014081182120916596171630284484122916128986607471455845648867445636434584123892981381532814274732838558433427043159675956953333431779181894667634522633354560768209826185886896887968415693124842712974980048394525619199852562001282617797665608993373743195022704168100476855091012730574476603122833164886283643342762875874389939342182134708022145158492992745878369051747444667840858259262126879583444356314368093289103101730978923417691432364205043373309401156526718162098347045030999759406040464084837000676427289828098176714747053036138824442406890022041314621742243672825938630675728305689465833762347607455111623568347885394392434071395991100331219619502953892783754391516605751699686249898790578259700218241800647593928539996072833764671300953841053795810650212048685773196871174498117204505332413554594381187422329462080341023966554720756059321539233974508422806540399277422495886589463239733828028257109931357205390455830175157374630538863487752543115278515834680186221342683909808371037379297222486620199057130954537436396252923351490162541411754247657729431087966146941299722642684971526067293238105023233618208134550687878713673297872262034224306702806267454557699116390688956333005373937426505666278522994886700652083677912238566078753843287925459279662959643664787832230539992907066776240357902414404250748546644650432591649459909032909455445028463372103894642158614189230637739893379015064297492247266905295081086150655261235133764675111743084484558110192991396339522993247777293318446378964631327620058507868621472015420614336087911855133367404079423316704071644858761007615908054361503716770389389881722883532070218083301419811736732479920116224437023793968182724532242966042282857769825278982866397258577048440971513416440145369532822711355489557183308914611394274266192766146466549755221229216866943304906259782016999339696248053523186188955868565184076958641278484223477235502358051588664300187979322932479944498651527908815325531164542567225540800400088397278622250216873178308018110077064769820275302469152722925362267377806282085257721030518590172742533718472847947541695514126651740593674379304726923643579122512342477754521223928279371141736284261960789800500925920610105531076634300814863299730292482540213907194856473408618539819917496714797306080222281098667436734188975076432919835997258783880494692156673978925646588267451701520915629261261494039975440367463940829751523534078311478055058181465508331321353502012099599552294260129993247169985151324783201157400397813000052736163179050476420934702861109038743208075982000948174336016382748474806443922910141742337394831081985361530105285102590545322088121563926755491622399616068238763581087503425275480015879908111383864161840862489396860811564670368995227450149285523594546849642337053046273398531558848397241267332234423785754182049105193913392162988986714486347048611104412674740237552914115378677723695443851235894710877343409092474296865968684211494192796157283453773641581349478384940251812178771102967908231705414093459229592452615974887757624589281328771416712269361795097643270189616738900816964299743099302854703760883419560677805577478558630712458423050961911613799559546549297224307738364424314785124438446268992820097438499559032664368147944445783354896935951741688453680593304678999532630862405647294779029477285472879226298262001131834031820476312658956423269323857192491378924127117900980004099151863614863845132964959460376250005981920186685326065076567617678906616841504155001873616005680282152730144511853901851017751760632025158337282495732615703121363588778691997954658337786331254449844504773607591430115622450549529168691261564403632507025914895941085480332395484641907926122113570607087170863012291017846149448620148786444761561965692999966862753770646984109994799652637559111389518427670578231625593997677467355379267794883801341324639745340711016521010286856584212772342513066128231468855594544248114837925547072967984472921489741550460000292210592692557870870748332394910901516767406072011038869495978015293500517002123951118272670313271986481962116230626387293478578642855365867878942194203643795274216330331620297393634978275386830858196779749642999491447829635583281949816847420199074198821902680160960976370192568650624653246814943727878633039062931478418441662556732234411493882722066359239844133677644809300559073640366561950628303221341238477711308011908106611825733542324217781355734740585060071694082498147701132225494334576284079740144234318044209883875290119508552282099420244986658299314580753996825741894276129894224047471039357381337354786063806664003535789233498386090359080100631399011299228899583076421763246827863987781478667112713819183344633333462246919267925204381005337008491371635973089128003183134799170449655265464749824444487138802726400402218598007774147917297463141352564004699011931235296869785904535459986871366446637898477449481680122403533469534194450221534497457090189927391866005648889587367307218084278345387439873401144774480483658906724598925093887317703809296156339724842441863833160034346956721764872492728148247727994141608239253611429774246790571353360647638090794503192918729381302565359862241838260295134808531836765949335787481202497809570065840997389240045287669266772730797003564967660944644509562184884825497211560104850612741426848011998615223792839683107212365383673327391470766619948918015937922921541362355067692211389566098306077150596648489348229846326809970752901392191287549966200865055444520498679914247142961177915305527067658005076285200103313154631390136475428856524234243337918481469980760806136930576612665870310640840739650408860236676348438751884849477915274778621377069670109096007195177916511166021294983827581743815869368765248331824790685152911232654551366276739315017360294072501329909332427829214707538201968469089180302701021225793832215162990083348367077939930429744091527447293382152391187852233915107335951316570772019906243412250655331394038746194702793226688543445073567073871166984026539600996926742703889530946801836956026537049667417691364394924991356136913769470536552193852642875421468649470376606540965112189757762480373465668126996263972905539537134616880877452395801068194555074113798564916473077985139566785033802333022398996874673123308296931745415697691061219444582508609951269293711920136757592582676174470331180747441674565245511140371529868411304188486632062872800948934148770283979873872435679597050493072608782245335019404363888382987195712028718299894547879545957233491129000565573576790580221161228406451158155218173129565635441113606249864341954101093764565827790470302297000663459698267777143567441609083979239036109318837613674555874728243415147182288675069024267278563476301448919394755465606359241652642458868772667690941472170595813942160127811753711534829437873208713133709807962421785987094251755500434278797445860698836073693983219579001401211228445527925126836254010900291080482572405295538418785817764823631803625102084184980729557933108903817651484594794782335997107160081134256661277213306767908585106737694823145632653432791945516242611658428594828395233127814642198291084744533546649545614846317882611753192537637421570199978190807165063516971377183588065021887542341132221448860471704985198682694367243824650934223450445770953941213877419994052354276026839727437553558683006945374964750736731358151461980638344280510955021295505569330140830355273781440978914023908246463980921524234879549257661518256926414968822388472315556670153510181136613136731180108843681302055699587760434794563832415763857155773663480025214826969888130927825488037190543134422769582591667682139137445996530395861452383974089920146376055556213493308653155004768899364359282930625307916513334411424098328120668031117228339915092742702520274518856777212006391893350804754192975248594813582851921026335103579948751771486846562944691210354174986476794198664847293916436146596946654422041315232041299291951202636226972767240795715752573975649481207582046568182571579703950615080895308765175357874386287525926943657411485949793596417772057288597899191872632422998946271069127812090097761345933837421574086626036723470687259538373340729961587687171987088434577430523630980756443665094564885984961180776955302091969843761189145287886472285304786304203255886060734244285933865701975855701243570269982155808990856799329964945162822851143911547793363654192595044703284499553512722599850577359736840914207330336174717245081705995982061594421498081014373834145887480752778635359403166234541755559848211728064551233709066186470257911540780941659801687119154882007511373007023440396041748210578169779150307368412002933781653827199607771447124720531870755779742619283020624531644280000985521479148007638963158135277502932298233521242846194583832961035706640116192654565783333615098986169420688053955961983163674798660532816135835780867754103794468366298229933610885684572048094905773522893255563176061123540831801137014195125114919514905204645120591287764888652075782723884114510636529620378344320436455272490264762921357129562576801489437007465935739270056446459609392218594958645625998813314589235385201552213390801254416751385819212383618669931160065255731847506861649170933125643934998115916203470472441340475727205979449946610446800594951725688651594722418028051270469237178954409831219778524436863197965453059676978820602224408426855535502158453151046452220739265886502747722603346916951347856989203782473058232538419182007495259787449791344377475118844996351083354333895944668704987143226714887657220761528172871695937736081633811383656031772048791213881877679136472161503459203124608818617659786164430569665395963149451675460779619892059825261439963361022379734528937156114230127362221568721221772505252394531205073427601138923859519340648377296360980000421860795590054629001477970416714839902633900904956073600786657112803184548751293403589064563547708196884923745910925859836773847787684099341622160841173786966048453233635441413905518547141408768135571253178231562880318347310986953413655797475048272887331452766741452961758381796921636481391623354215261208887720343364429863284248143547068210303614416861124464337663255569062603467757940637689332186142164098731857651456163761919351242722407604563934641433554050806105117189131180598524246673438963337007189535214363808685049740889721221808701232512003265349600623617623099860276980881315605871333593376021333752741169196449138233730888538967768456714365878335319525830554608300607301474983570852842220132709016969013119448207462336222780319650484672307654055443388513713335310134007460773255757590674120238969580190147731534027652784021592396041600209054890510078510285242793805181532643218165474036771294200724389604809300879832531061768050823417075306807663026516646813140043458854304783904732585045135726625401373912721702107627549473928535364688778426759263098610540131551492823177847125089861807954266953813309946123353649680869067449867493133926836066372795342138721834819494019506835200090693350968723472383554019736594163880980025625986291519082390464061554282230395884367813756708665988227912729989975000720743666820458055052922881311029911003515404538521567017775828211316090966203284629420520375700621022408362860803090960676878181670505480016529524284259613257885626343879490389701343862707081184566378802901894945515830244402366457816463656031880353778676352623709822928226178074746629303332003894214799377163760623441091025390264813615756831610353067128646218618438670152561302042826910151147623423595295004348503758020841315093192597924584380263474884272370318302125018014409931970486745024996201942801348039694041947130488137887113368500936663896967032390000236503785519232367972123728258068517344182310882797236307132086217263037576169780715090170361262440586779458507523770224775189505685706946493909787384674557204516097471085780703551934858696692873142551675670819209027784369444693221556036320828661753267571154320742621724801526367795613154946395123723132805610181775784917689292836272918291420573058660378338412538047340468885130490533204079950473049652772330930629971952762806989966259999436248902288680666354315150093807767578848873835533068015355554105899465652454689516516221647086729514161542652137753146742996857552432518392631733614640435106688303387800253939985154744114697137396106522324477986140944284830447911043408402827118348419563525392365369364265623186760080640067074278624021523223099812117733808630695434493003375862074031543227081871632816310201212763027709488855841374494332314087974744468403693049051263739409196450478337996932152875106103741322150898826073746605634406996478722897709812824639278588489438174675888810577586800355985608701123274981257157109109148728099070223367973017393359697753968884918512034860034656742449973999927290806053369286047588297976141518768574508612423523003366927580666464915082159705944019904185177618542832613585512991153658797039096627841311178575172647258130433583621948164489464212667104163787286594631655045754160593951000082987051231794626676213128660081383268733603584611072204219495570361879473776906427007625961981094341996688749835089415611256036543437277089897249472807434431416399593254280728064598765057716662028292469650225761515575657171907428987494182662599554375958603712642793597886568030285298358868480652097848844692138955997122390187973250237299168738559999294980291167794260515965469062996104366501423772616331847803430829766451624259092811339989536661626960816288427554353463141721652036157304481937525816701999692753597293126062142585133429121113196466097028957698109932826247124496331443281672365226825711055395685141032719361327069597951605473178069742912933167305649230335976900275617009585890490387982605556500424996694498062249256054965388218018388924447539335738358048676999315996910634002291846174048267891508385838145301481485366150767809724213714949329542358947479970115174115083294139699877094080823888620294028818861737585137079841614407217091722141428778456548679037557141274363574018827095595744986042496751530774827740066194715776593936679248554059912331928992828639847074444328610609599436615040780271672280075238387021366859427397065075862499802685628483245816135978178503448629273532425214351722033529473841732822867109497991214784072072439617294731672133768223721507987992081444122003409803488690781058360166543787764747940452262043129120784625045336793944728069693627271899377030322788091103105678629129834537322877016274507545373738819389150171364803604291262568866374717866049656198792420104704055518666168158720247691043628909341099269823101057806912188172840619863330110479805099802829526657004932495249400570485560689621676277640093820435808671956887606206870482791108567148930065251752084902758670461773629814061982547633057003882227835398052218295191228264848350248853179872062937665096098996924698901139679971294578095942171936713218127266546573565265273511915108773983246336590005544337116437787130431845187638003816691649523113980082796783334889996044756174894055242857029520670495636342792227273872016129240696714304033687782644930729272070021044228523692328496233204895716159494526935624944643167941155848169010845089254105997069918719858011389652681142673001160733740837112411061558323165374666269188234228491569846918413162784173295819700307388209552427923124257348429281204244069352087375282152431704851197628957196188875874032514473709011946270725311080302675207333613703427357101188195644264427627512752957914327289447814809219911037751172021804762999233743097943158467653408455023369543748204985384605584168786936958998337219146443747355881457575853072718026992153903872782317665831827847049148444246679677202692889080557694539836178382881879094863770745081180865220108446327324850931137389085042440799682766236525426067477836950978320553460845857389135528063562609622808266580369403320007623508672763484591379079324001801726960146984703217411234851132454092921068506181854564367616689890050771060843269262316161548160337447110992439919745877698232658064209958590762807963362606241072104400714800185380709109467756287110069906183200377334401481680471115081106860466099369183111343072968539774006614619583806606871307740538918324361013653652939314099694434296458399175031186539165544267340591138334035466731964649292982359360887039001232554788263010739963730340927369767208051510774392635339827249347706433517338798292619848542255707630512528730076805582344529813895971328272515609484898212561041031859070203472116344757316038321543384390429934567784277306330770972059016940388398098216162178097649928863209838782919240773752094254235002855373615020176208637464047455259044610754211227161569078031124743729319378829697835437369274425771463087080231643344452947575668279491188889429817208859448105347212139548371061935808100540133277722847532477171263783384031430611622262458591184076676528934894212938316208797423312558506678860181833573010410851964426003539644348775149586252322906018887622069893956163353451350961330171367085097415398489435365027705974912438803851967176808664929129529839207109059115079788316986105553080124849886269473673681219817756574493026610366641849204431262412494386980288997813461132068270292335957065477009489573718069249744259782215149113742725507769542854690090682816282290050961426251105902968239582756756044924474336383061951584378641047932199505075087760513321017273558556295125085342760619719740747974731908753015962169469147393350612774547751077318440846373212609357502897430664490712060397833507770887567627764738750532039759864089286356083122494539251972518039048573543878479873818207769618983813009871650658973329412206756625701384148110145003224653718890327914298354377259249556439035589777276190754875488984444081855764220814492440629689212626658346595378627526784061073083804386508535288231962818603466387836340556358545137140492246390586646602713480440104450944873215176089533153038713238814591475563417420381718652296860348431094294431780617397783498783532473697875156673524660818120460930376067959726724919373412127008126867499122766122274525095465447826658043694404342230820411973144576760954033217331774000584134439791924326204723319150944382376447965937452896172816497080359253404358314016782547672591719247883795470106968621337575866358724237850101840428608173263495190588103604433445687384738569309945478522684411767031322576492706543306162285237564378157615752987066879818204686773010807720190445670134986135857001186913103602579745544149113251501008272672049865519140471189772026923367367809557724618850018685554905854544211916020783004699060312012730134126157520958892253675414939593085221635000278237432704172982221340992473467404588094949323846619471660429873942259448624081016235023331726089528739297381732200770174819847120277692677088572368592084674038301399062563001702229840103019978500866967146112130038210664043253151666205082704609380200563518323985998640319188133453348463254490802626721097387087920970605927077116111694124596074134693997026681184215554649416308327538695092202544632309216937510082891541033237144346267714708311548727314007016487140833802778459963657022004100425651758190274267539797499917725156474791985077403860827706988417350819190325843203146936852251573629073416039217510767035322332098536386405581127029204988855402325488563538884077105489436443001278637853883954505943575796517179608221765672422465759922509774058507896633193262359961829043692962513204501175333773451178117605580128989255918112924320121462060146717387280944644023906488368566656835358625188910834782265597270596911556896317521708974882949522127671339418822084651363694180109862096935770465632486645201675116793347901606426353532830278864072765790758178105539638544207637765583731241486999050244605489032421044708620178892824819991546331939577742984280016962920968353511220384384747910950380133245844041639194465751044772092931820094817544528053233214749467313856138216996892716808175853264834657774299982437429738955854715290474238707162436446536470904384385104291281930813199279874967875785577918467143592825263569720726760302109176570016267935812063310664424490961231839620540826044978569619756447791358669219987031663350172208403954254827401493997067636785551386839372343633884328131083488113328326389643060948616653757352822969841597073518760766586860612691112051539410560931772971596929313000608870975576340176485168356079376622741504955823327430626373931984115517831469624648331061109752385198925056925964550592073132436220761291223175485578698612577012136869057433490598294415364761890481629924222646750598208731300989244344221764710111084299386889988803600443152848943903843164012404286297719542454609707568405469519204534367950394259352179039518490347209509810635186524013312010584218028083496392146106524061629251497550259389478676970998120250988732382365596669845667638741181669086163007860615474942999759457865510517837563409111077815021996459963387027516278381702565511402630466767052208151706282855942916734983934306247564077303173320808792396174631726750187254451359030453371263774272822454249016462443782423987706464187540538928950906896731747827956120462876260400312045522930175183134007986279153707600682353721044804400321550034964178001978785574434558922647624867770386552193843697193655110879091010269262223569912373117469225354801697180937858692284394416064107686422223277440794706327419964545140053704311670581838753693116231177429476679383725308083766219629496624379299623418304100414458829384055706143931361406634869521290081643215851118851090726313186685228344657664748822342711046115183921611296593393419343068462920193458499715775683543345716750604804046092969308763106239968167255659515599831088114761522661430502092078332576867874410685073264640092446889159894809012876904488782028929455866716396055699900795117776456776270706381802423063878924048161426627678119231067612526857694849549081545930105181403844611350851584998605967366055069588218458851495226757480622734055085615905510179018584051325716797640714513746928561791820555687333641207873142121573098399251227025746803235247888883257785530564603115909969777931292279112405583637267859288388742803813051847356304070178752612741655606438661046411522719433974562016083768910062986085920712336495889257860844376407703526778940462124341017204291173080069013643630769241309808242277220080204652307466730661704496341692635862343568817610220289522266670804988979935934083716203932465483365448024732379242749839935422818151166750370323717054071500610056893277583801968306138958772929761857678601919843754684997863885852280621563486421900558912461018981750112080020668437284581450947723012493390562075939501665429167228184008743227986414900537330045481521877418001616413057571062949718949983715248467141400563395263060057911360694105389378235954925144102086653730360556837872392185615449821402227251113060916303238281938021102109571441043679626504935706562276952667453246904815607668936303818474326079550829526798223693225856600036647314292529779576903609369394386865230291251141277722476086232538686871253966955819020759447674131852698566934114910150603264315906695257549065431610007373162580560540545919137980216432775088012360760395925863028433935428876215987377866792165486036852742671426621438657326013817356557515884833979202086734869172128660997176101434098052326577278744748343440942602599764808671487421560422263061892097821203247718531251041568001095005791438567640598314701491531799024608423670394841248686491061244988821344529207505063895067953654755452776474858576697382860536696571085188866687321559399485475623121566405086604396004155827341940778916048025144946564130187634496560881698293450581326151232926506074394371399763804559023643213971135905160840709083980590051348395821648585439494342492144592663912522101812484485147027815056583772925766673714932261694566957074532104421549702994035717776302969452537246909935498881095655418217686453184939707203440495265718383143834403812703346315436218496850598702072587136826398660320253415947714303915552300255404201453292882722912757278662064867996673175447908981770056770912152552227892498966948100362159815255350653043882555443853088026586204295478532377101386236448962946803837602795000284079239429770847053914191390495660903841697862655667033592242807079320572230413228840250802299959050628297732636822287925284336593172420975919015325787106190077966695403854240682522671669689620514477955394023215093783386005426584022632035065875092557801247901198400918002914448773109686252527275161080384070281128228351439850496299829899610871007755058700134324443000059901882642633275400654747704756168502580688945502183561620141382220015906112286035014402292742018049647735178300911257825107978102759370926684260803539184165998900361772663662182356958777677324784225822478017801699436838829908542684350156296852328237369326711373443488743640408753979753709697458029265008219967925554093973855890327005722710871402629162211998727822516276111306134821499353709484199838644503652072757794440874898477283748441311754075640406580502147557807485540506895177837779046213329425469029860945910269190572028390817296063037699768601627505414223280867174887888781768270995919490700384007000693397320420156114480166634858497365292084509469348665523443472058246648327179551537851980679022367635935337581397815413341838868603032234086360328527989261737335916754278010268295354147433252774413234703069666899900211384377054556198032075909419477172003191107619131225348715902788564146693873993962343493169225428553168206262713185707394281239410247946101775551311938877675416572503788866079727004218684114342515416868626734315002704360615374006212623016722778295833480153327016393643449118646207309836214734834641386442670010069234618196787044780947089923323398913422346777734859943521834082053816268166670572251013485601946711470399456622223825777793496878510071775323298486288196242296620146621669577134270334064238523257389552629229522553057809821472047578851148772699989491283201956531395331066569297087292903576394021412752456512672321638011536470902733815404298285813620114751063474500810288423561945449525933494539653442076429980095746850100082030691428425501437814796096415447892129612277771443181486304931537896805877525771389575209140992219877275767468421768171030746220892937611295110053052204626116747898799085234933662815072503207626865401721845923027773295457503563977814290196415047819302419672525740215775761582879714298403307595399811022036578443759636932573652706397758554888634949482797994976317764824503604920888249331802680520675502691714909039966319724050787037703891602170010627941312314564120730892867654189583327861634264597421141834088995791318442970575008892825226299932863815764922753725467291014197043983116201274760103858280907321717294432488999043530419878742032857053162810213877736410195937726002272670530872286659872598000990932546986407043500031776092557994844183845892125223519290625230119098575990265137395271284009294957912941170568905284593862530910181093132416970722362123226855039222694527879710499295668684183839295628729397101533660195899229316158112342324670685080706035594010308534479334585176116434688647517028755585876115498279523236709963584988218800283174410170667215429022921260629771573683237940010611669233162124751035397435321046093131100689458498227239777128254284929861517480712472713640926390433708098135162422564543948821299808788335382509738093979794719928189624713978189138326794570745880200819076415845512948260822289850112455601715136481703928914491017888157035082395409786138030429274966618572188903583723473544075639802981512510832913126701061585824847630586768636285207296714528911977660878001112965076356985888509193869672950815031706131513747103679711437361988753668670308815599679800061213548568480485805940310556832541070658513400224453088543298275187399112860472442782787084336558722701806583381516344589023264944120484157079070898089456920562324033613895760860148761534962425783078429034661435822328955460015412586343338879154786148417928661821984480230951060960649952516331564130733153305630380630760041478935466322201173662525195602756152969562611537554299687906971991859939382327665680541470440246687214997536850217628966913030898507074803795399440604870427992035591722527833679246397982546893224142224144057240852051945244080068445309364054105406687603158884071264526154535636525198613635004313364766352975800480675512821692422557079333534069812175772458517104249958244883003637351667781096817061956856132836757692704150813656643325217350991093560777671247862498614606954943301707934789161769924495304085729150824299251913376191175635400078663588793376578258372961850045137170541736862043998356190123197840202311135860419808176100952935840278732328239052198322636779343365638826862943117804728536866263420385411542044646652929091565829757542466976572246292842210092488638770170118111788779974618587968266726948411866272430544646436559537156897788796799376961606993958228418497081147992452285279468181363832560496384646888635613377064962324516508797870462870153899007956005467240828056522124086032649396042718677435584366661492963159579977244430636241586207189101626736699124460565648111699525030330383500444443067257214104673620308090629055640392309091468387733356754435733479644893796314695901724810596547557862686394174488347249230043858915994591213699541717002339501004889832316102756344642197631465443638695551129288199777758126338684404370218393476066488643496227803900262101436849148959131727397436507973041667555019975159818145782961136508033498845023084030877988194049725285927097860698066667439626535545027556468278889189988656268177027401210571223858946579165660142415325796155213728171255453429660062963937895631921165811598845455385540944304177682430231115375170532143022681414890566256931504264225758289707012519737022317193549240707586590009850402902508583179279554614230023768552108843591649782396457647828567356598383105775898130375681509443736304280339250154650371937017780266865743035236439183960652976807100378967711178763887889101186228653837048260016920451991243956971634883961289248849130259866183049846358174342342456547142534841024673308165030132164507073887825228215112550154098507095773660146491695347322110808123566038965362263097970255115228280271965512485923739114430711686067677047495611601118493308663543490134177314997450094803882420749758165392620868897122659193154230438181249333222440266911936790267615371360311008092591152332096849577997427625521374587506209637943288541572392631008920479197123505678284863305551039633512890592851098827598093639478242071359624825491070928269877039871846877269502192682851725754276077563446351377990150590537334053330846272815902692392879981028635641677167496566929611653034253466199379619017259264831543417080688666743223282090769465812186672459783003812699982281917699182347040770904502915607653108596876757441435406926600337386414697457796868685042908206625883983439197133328388003535897375571026362746160618602827748831433993487961970765377938072795933715111584479080277253305022665070309893421931527836475265630407064857346903690667985645033635717012297689879921775122731894904055398728141918852990544556479283454876919427174763186797542122000224851412324287731506066290414083613119389254675713637775764264015258518093095824930471597160763207305558487973301984582099467443439282718337402250480819762534697566663916330076766827860909707714804914706582430255433905053394107190914910189543278220835933023440244237225435783474454028645646576824987603994924201887882404707104215089468637202849173154650529766564819050409983376799465555897236131769546794340115726996276742538400571411246866130302356148293231150691008741901642897987773723439591099131688946465151061641553538573132876860295539123526791477415786602360368755423168011419974055967313349342306519280457301291404516016369311669192485857907762054701776175330885049128164865032091528289610146444129966079385236065268262206068444505387012928539809222883882398229998615034344436316378201462505152663750797440666841324014340156203549791392999277264433363663814605656855364724641123955079673933428473714616571050076327016736792689173252463802286641381935442724314416866807335772425230269162433247942040884628944561088127898564164513449140841279917924704739644940632439048514884177016792412072498152905354530861671100762821610186556916934869024266395635859911280416744581465646454003032769087621077849066985599324238536899548465202081299380619487302369975081013645073710539421460998257475648314158860506407393794520892780977146394911102066393681770937562676736150351737011957051589507559958036770308811379071080020807263197905831356367248787187412546063704636206740654317970461622679352652743869504024093387560124004336817174519566953783547812084661169720518979287934801930541804763613872526172787360590215044169939033646295861728775945700144092469147229749186752226337828692166145107737809202628982375975132213920165643296123044727664051941026128109280058492245430529493357619208412533450455267216625160673366489287623119883664806163568929339657030209227308842320046703954800781002917859500084468354571016149535218534150858129755612966534082240094852225519784517553763450199352947096413646091047169230695507783629494290835500922275194091700645739876169464929873015985215805093490412393978620422675650683033095888298566125151094477121654148383221927689889243567351003196264441269719778577297841372169313376776828176274220218539834369442747467669504507511127213918933632574401504840954541796140018260225285509128644369476854855978253273035007365880347028085372495207158005503465312160536652707931733952850305315891787779942235784170660195208994483341387477300273142305507273544252627589823700217516411253206073279571020644572228432563338566640342944051033196516627744186620599479330800775197677540402929969209158256533088894029616911849483305369236811711606123101818803797843566570407037549252036331733392456838568390876177499692817710850867924539942070039726662594445882499311669906633679556628227756813339295822907777041366566442307654025695559155029536488780555022356923422806592258831420899812966572462340828622275686281020302875965626298117152883187759157527533622655418180896165644381879678607479610865363366186354533408031894022611284429532711876996948787580906301546426013953768927473993974103661552772366368222592901295699699737541770981555393133213878208606208465079028380311178295485622064725476102395142787995666270347982042705675321329646891287866163374501569510396609740190674944179175869859766780794246312590418609721287843697767783316192804906549691426465773606208066804567022409185853417425846149470697080763133861439228488441037245754327373170188870277105162989222097290541036341981493341170676920348813046978898365150558982893376585199190336048261097073894618025849257061939711865756434775970391139516406605996405124432382391324923469399726820882767452728376114573756933286355294326151572091015321698931439977411666329731034177110216517690037971275656686507089556599702371446789165746676037463991191402092768817090262664909416956506807075921730169235720028248213637949849776813680763809904456714139024281357969025699806040150809091093263138373968528681679580509046173934583530112719657038907884072811649688475139693823696478894625876925169503698453198192114209253810304132704024102173932951660750843709653473326308495046402586222883322422689749073310450198829465399491992486848450857713168475311633929269403494569483725711355281517704644126818862455861292109745986868427434423558788915672155622583920210487483482331565737589892562071652401966105902706877305756362935246785602773608122926624476328740469094615485574585212589481410244861290902274418916765442736317855990519268081057166293780296552231777757076111461436096363822016302391586068751348604081574006610791112960173667373595663524147916317596625664260775662455678228355062351120383210030113273827348629655781998924345065672755109650314169009818566804149379348829352434423753468106082944233989594889169550863211181979133484561400272472368725976832969959548710937136728090160432729250278654623100733062354887228956219063524012762707410469992059919253231063449333405955830399821273952893509995565709794256760068375081754302908513551234359899694251534762735631488010677976532682776062672393838595167162384291408489839112723662192680263939063504678890638962668818368426910134378626791205486089942543163801559652612384893076671227833518752860957632301302330616061738061648325905343987226266817209696974047984856103228772249898461019729052577888142367073952826918444591539933675029167913987514465803048738257168163685629372801012395494595605569277591457446968867583405879153897652653265548639454241796681668497296775238892952828811134517503584550627809809518736534775150448540641361347046089105065681286459639846714186854297502614707274228483618117006554923271852913148164313124281845658842242836050920981119658972735474301148426933861301833239691533409732515179596876340007809790145337667877449476171621966004762568801768311570471456631014844913353017690987401899284067342015375586595720606810209822756252018261103999550755061941280250336640393969813455659616164083373973743081682861676878617096978116744124221028313877597021231024202511166670032374309550236181060074571196481858777985782745168526479965430313270000672734701738860313984127997634601296853896480434803581386622338118598352932844957666462577130170200090319812429875552337807454053071350381417184096153950466119983704273468022885053610836299856276455309096080902090778311876609361189540352688979895968321077946313157027691971112789734499438295068201097626485438536243239208729387852289849827552726393637623099390666514311188842732755391895175165655684966231316292057755220796334662531865741452308639152405863575988318448457112132744221513327307252054128492357745967312000719501993247553582707414730733365703000360625715988299472889193441110078729198183913454996576552269650444835534397439897982037494678385075550970502520566820966239057691187042368687648689961378989678528985586210482534994143494531989473332559376820051411077581227104152355585161208274568871814127613012694205412990619414189813050956991570854597401882730724769214610456177220604244220236652811200390101278500815380179675750013092032348280939613913284199386693578034585827493403322415281608868590309290858407323939871384559338499774827723082182575593102087213261804583752109001214484869589976437770870742354331296437300559896668439493470377452995860190432780678792440452690371346823007390391553262633949469444699270574334617599235923313715924941285364259313376701822430056129031457848230203020313224863720881927674409732290142237385219570482234864231273456866315858739640596116618073321342271581502322044798411353541780006685687184044148698967252046068156911103729505498347741001415199162584075851925068344717710876110364735796685579810706186615981997144718832783326809087131587644800326711295930065682046894414045453618450269263045124244724011482616397088537945623151032608084080899007928396604306734629919771776603170283594880565242375964958975675924387273544144815840671356947636847019362711303319288105354114129058472748268024334230920476986449052812557181971442599010485827945787707849646116438761718820523570518310946692029037815861590947142403149763864577998027296863896736640652689439729087795168472426818889766978883161396260547292252258165496382522262826922255595339946530983430595907292090245692888570943335426401996879975986860028407178310999863354279734009336619229746101905660729247029556278727882303627908033756875016395257132411206304242350190421873443875747024236219708499057112336715085741845036071239228437068858885777800198906717478033289038051318876251863958172026458696638226948013977962906702545033954188491617873550204564459675663580969427057217163725322673245701412500946847435344743805321655203921586094136879898262873597026853625403732794019777683428288210615361566331583980617137446111409197102862827577962409171977767672358523844439236099604832336839879765975658842770150798029041573356854850992131247936001636132127351544170891369069383622351323440281951114880475063750331124289361511908925245845951080848502740233052342441039744627006192984899461602866032778889182019374011060624100475720941330728624609775933741066344459116856810306717246476278874093552464239589607034097501067759800290880392842278683038798102813207974126826633157287480604663771303773386610935258686732685121307636831066983888067254393279467492350546397071731927266276799811888270617405219580653649755481199862955457619239694013032928342113312639130265413369472190009013066536512048768079294298305704784811423898047360207298459428626077746735934621728040253291561889595753433458261947940462908614680409133617896511584455897179570043340329156085849337409508464516866258590247004125743900762074058728574072676886021844430918107932918843921319857706797007013556719476001907763403216604206865736530500003875144730765264225878274797971802355146881120890868911076007260869513270706082645429709670309171543043021523392193312385058022316880715323249838303925622210256139492142000968567318250189184931912431034874708570942459568609860833888595500553470955503955073709124662407915429383298328081071967818245224638605625771060948654822075703459871945574138366560283663704748343895845086517929957789352866808828333794325226634479468444901555430199546159565922543374374867485914112018488950531748440983792968465018030444744005109864953822444970868433945147159936103114239781185535478027351701702510761510934787421410705735180590877342951715552089561821325328818664246260477086042152175912407905595717740327058947553744825588697593360081936681114307036016252580707519008690251410466883607682145947788142314579521696193025235593444402568378457036651877501327389872578031038651906264980564092887755367064052591224324867147347784054042816912589243591145612937463440190566256238568346113386660996854243065932459264180952932524134279929015869671631201289298458680356002386086256959458249991913760092883971161698275333645467451393378991332592521784453122670612345791339703304104678258611886100799569281767005702855443455525140154926786379361206801909272376970240563434627994097181361793685019424806100784644109112525989419735291056213331771882596993123880808847415856348840394027671257066728648229868622665529865305084466307901334750991085591193532212266991169659473281412407844606372946815831078740048420590963889111406083645205442653701146752708696855621333347233697772324775379571040879857075055955865673529878771422469291251184488771625501670261540617491946994575144213670585825133342979989251358427217851755103463721841841051776843296555768051928343739005266583198081547373840313052060608022276314572260884980938078476883532763470649221110905331510406993029177465575683697172963587887123897430485995358781325200563457503297905995709226162196330313904703293770776224174817277376010862401567431015163894557167174186152097004716501634181285049500531065293609224595684879030078774755628071392919950207749980769046032412725956152656797429354732516916344658578650771540086093964570719400135926497218426681142403627956267796329415105687076325897208328284042935103440121242405414058264828415959004096633456856302540839509515377455559115990165394808754124728124507621839873667760161274755466170207078192921588473975148847007733902188958190584554717510663091560242150135937123426824156730958776684231364439622540591759334046481782301585834614697464891378843740775824284741294992913923216790448628328003484931805644246157842579057505603681447849631613654485044276885923883755155973941068310724514229100165863212887041921990218810774550105681023532239979180219307015708330804202924301115155150329454102554636190140792415661116010183688599306520648212596397311376047162218712079875966754621082192981672051270242830711052065861675769579352044617520613901764786850340360859455487463529734193471012640145655976920747091420726278857864822310331283723491081261121630109799461218143456151918536446555296829564009166795220276048288495668388181954197592312478997747839558985696245138395149142532238113599868484832378203503823197892573270630796958386434336912562099831837897449197956467151262394759002884968560728699130180703162025209290256660489028323745082615303781640561823577781869516381106429831398053105698058293222424675763060870334509641938170445961236797120639481325615195852232016221499684067545758914122631781836792477315480585679869186340292372471886656959649208785509031586364653048086906931869660217799543770107627026731583532224502126171127811772534649169971782662404177464760064907710388442001591590604188873454732151163468716100577450672599192433038007418549660534623406685115344992952008745841606522913621534226172775128804225366521456282780428082247306981768936378333132546932608013653106701179066523183121287597549915696048481216378331323495794917379053001694415703972627288503212410677602491467135298031701028756867184005600302493237282171458379900267848661901273237349892193924380614729423633852168438727843525588469131936116692377713398072596949109353098457921853844447480410915721142721374729196137365868826585078620075820265115400075025816259055676916311780148499463077729392104656899871145994662232834983835404509379961558289776812805325414452003549218737635445387044537799554772664729515793815885144481694411921160869416181301643626527888647855047552303094945169083457248555081694791527154176031422795053911846731331633076735180667450020150763272384545156560997832696300661473843320749474567890015344542896335859294452810253278465974202271333707980026855354520680641310152255831002776987263469109340649165026309054973212185424404284966378898347629673818164324740453517332510541574893094126661299648054111287896498934677429573965280583604694234829217948082551530368394757096862794928838773469475336131995545573744952235161441963749307063947128094104601748480103120204965293306312054327292022374264078184689885139781185554573285680765622380201966922342316511417285713358474234587812119839056510121076385459236947764910291311740623159339403283396114079376886948538081657367056685506269720113888283600456585700781908936238806850807771275793112470225972985877715875637525138529839721462015766564179611365077887390651247068194910709900422580432621404064250609121543509826673135108363296874072934394240256936265037989911852619987063800109299472172835524881669995775783449049807244402113243216055753165164292635442899090219257155976541614159243621796627484474284580045578446615452155969726771909304835711439417793929649871632345052426994991468230183458545366112376499788439328107405659940544899137345215471876799091283029354203748435489303217497252610904499170480242374934413118738694504946397873790133828450621905834422868455717165927630226270565851501434476799040518955598544211525749550155803288492519129034824083099544560280295436514406358574901319115598462233368002420482687033802645427453620061541562293260704742357727888285229326584030654674878978668297164118021572881773886119537323114866005883115029307372741263389376488799534760203060399629963443075837782302771047821560819863941189305884999638203637627919942928458830732342984232102473652473011111682538169588749611814764778946087530702668646534292906705533387381790446121954558363778627150394250517847497727448839120557013135077266583273060507090742017152806084025748690043674169483551349502156167062515069494052889024595893640172673026919618350461484138137174524123300996282337468067594627027800824472135269980410390255598539693013270504299246485978210331017172804012200803475149087596957262519075704573849498445587308904153578473187136091843749712320137907596474549540421591236606432021039157207649773918013794024612074551543294576167871894739649393895327497727768648788294972449181664788800903001646072886672281470041409345555680835360509449867932032667417702432794041201203358613459501368355313034196795245076416359548147951803188811324001909197799507733502823199701343729793730129231184569601199434224922434740423707031926734882353998740925898767177672860900035446407920600531818072144171760372897323582706615246973017766916453587496063947274963629035408953722452050013771222103511831094464110929834027599078130055056131967198098407663938692448386539090832598098841270138843717431604893286202746237899572681240257486236690616933372351696010562258027398490528547280073271289689708528808536225450472965906193194375474975116859754993721374561253011150120535744029913962938507351733001667559514288107231238978960060633659307153571426903346661003979148677067326320041516736191706710735787118797596236270019333943228250411587346482698623610515339249819458209662388484184050548985657476606263577262076368206482004952243948813727272243548859788675557028461129428383158397092680446642358130546778686614046583930896380148990696134363160328668594755390753854031580861863354083345184805161729041168171622795800888424908366400878139939690157474119088045107923622653779384312418371948849435693267916288841685426122324550939255327560286903119354425267004556835801169060925739835163596034839990917555976572121871732352095899235161975497010649108991296168481585531361481466557301798477473292666537621733995009464953838026913438045649641422079172403631135968040854482837121406955096299767071019983509614836261956569829092546142627317044220979761622234460615877053904682555201163634200418721634448785462026747820357849672805297849199113807510104240238164183428623867192162327995653870589539908934458652647274079614082114868633502214730653294652907333287249893367810277521423686129484517441121610964331296271928052001869353204158373659546166200733521098409826791188132062689738952972851609188234990330106268926130417520338596853117501990788166628763968101668825668213054844026344328386991568535648624213785265578933682951798356810153487178978067953832280877490987808346430460651977144172768170126450750788730590413183006225412395746513516941602103672717407939939230435543008971274295904342618729999720650587775917477689247959046076062070999111254235073275816656403580898573423725824991902839810317435503181337363035821165192646355422973259272730613186654229536504585382215869067819905030117133213018468670946504500211996700364059996842942670603444840905282564418712092064304872314692917533603374749999763215183247076747175537675644844884839828778698276760778621048880549573380191679073327408230246717902003252648239372770326653576744936545666725467915151269704911015100371907173379500952183665730622258403644920389866686766219994621077666680112128698152493216465093189135630376198334477118001398993044197980939721641479381549252613977304507115314926399741357578839015020423200180877643656183238102850813729129604249774301310875292767811594576792505027629959938730989783320443193115101233996099468889564209763090941552000094106174996752703271824308798513067012456900254771375722353709622199401988981900346877849667938007773603096502054220960466519829958773873872884707831023778123152840943098054740122020889118478892654170544877989309734491033188026295801963365969529991206418199804345626238078323670225746469196689583206318540707322705892292616057120185493713615819492487026109991961677848987180953661324096938471714131156028657228602457867456716999518435710225979690014073363828220698077149562251348583130357001463073147250875588131805968683202827188569004410486445263292434269156383709814334470288300103232175291420165223485906962766673155195016235963857202595654814879476798413164537921999543896269762234933696885148112297797856602193308452047718846028031505376345628454979985402354441241624570544411841652643869478216194521188470248093476323001102292747542957305896259831806271977576072500031192688024514719221488459432726992960510201746658101674721022670518398472255397824230383469784577952540653622657703713092521727634399436016070036969247609660701784414082571943604673506804087316690818212254977895514837392429709292260092130997877533827130977200188149014850156308908895316620426573794887280990741230785661054752086661943350969620740496804958386178658830821787955716799733225282850750567714912177290388173482078369784228366846450443148786492730486458008513334070928985938375860347656601269996462279589284367310317726360162235503930513771895072945240589347619586311449398015085196572551017349201727079027562296626211185423026511165181128877109042966960639961558718672097714315835468337926752404298788396328825161913292142869043892814396567312354834077443239939711209471329575891862151317549890792601600646304249579916229868088763189167647043767720270807296943762398290979987225423692065590687212219537568492935939942050453086903170307253851401082502183312879811126087275295051647838590281320087166915680411450074269988330700032305987858504783553508046555493889452827927355633186591053128640110830181632191494118651315336873204262577461790072993301344555601571529913284233661594573807081030719286715142401332702588203519186704413442516089994856156073099872547303711275145389846565702389398482042494547227801572883265524615362972706501446957432666965019217927449098435256714674003312204499341119722449242846294859385363095022471318498132654735057610281444992603970102018856361433109728334918556917146641444815262564013319398559301620678378887494321015499379467158753779286895647601151023482139044497068928596540089494723837797041222059481533658318864912079333511426841132948945530965281426231798022999389815869415768629717993702146714531701740913778032211490125976638228962334039152195906832429149577237584934088660873357907912519831568967139915271829336449778584765279165521851640615885509137296057352938388476691410991834566014747412149102183289729618621752460901272586937809759882091371966350025310616145934872101536230019512993017756878483215964399291693326361184578657836286096589390859346747829584699435089653908415256578531086606062135413472175907385633980074544279746635100628150089728708604887631642806663348305153324103778042766881404049614613278547197479953888382922090262662839780164945372830474756041336475782664354179425111665479857891796241423425089164015411659466400698464827866435226914602118377046392399064759815553102337779491707593988348670873041797377654074858008771961141886124753889251275387959436099383975378775129585232702544853110763791527031198158788681575379167998771741029115097772070509600110247653273794728075526753721461256847233722117072838227161859291765037619881933716251735006895530255392352053232572776572963682306287908056487618075744217751600770459405766888764698008083120589236957355742667287499026882142215410293436013569381295349026498857891499453346193051631318674552413186267790111615371755832640854787113783865326940695567587375125560185615065475811520410955003031710052574170623759757092643799705430915817035660760749870053857809063046832942741031782491950365880301749313243311772041665668716031421455440744118775948961382325211894959054048105377560915337377589985452430115957420358361292644418952024085041741497516018326083058662232443391558166053455454354668947893269420704639123017839393934996076589870464703329592671239729072092905759532466523263426185853149381020736712817367805536411064292938275229489498888323394585967126993441387131728434084732199503321602754624150474425188938649797736174139442832248495094764506215813703136680237925786144473994172052907542407857239958869201443976006825868377923303457152332215655320874769891708310535317987034811048461174233905521323321264344976838237678191025623852315195990672642479930829246014590961749421036054694354737603032775538847911512732381186242853137863315033232705494824542502700277509330746634741265656758297284118224577255149402123587301042807863885592851114573000282575419884022955708284791349094175406036443664258261998181013367244355619789290016361370485128515349578410791108752260397614470962779975042269090463642628403282413655803749034812106103678517306050605079239186417248840305539262050076119219418936436884975515605856986872506558741997711079470583609183667157537374663254063250835631003203017208819130508448710814693638715119414474981169620577083255850071178330849178449735891416833473616414509383336799403293583339252879615168205732884122207566110847738247642087980186425987173351166367349251107002063308728599319139109385065707464273752028066936189512319427953434485654282893667538138117174652314569097436046855883091147102341239626573562575217814937298341182880503762923540366364233594433598446550060926664205132003574693296777413859053892547920858750143544842387113546799998125853284523140721236226564803193882888886792415681311586732770662243436479622731642756681989908104994497190335363149912233404575416643772040714370532582224466328896739236344065575018607319775152432273376994194618352035700216419249312730579738194112911368367548610256710437944975827133386604834250939328191659539338458129908406476239384251117744237742475015437709792647648562303938873497882967572054152905051203593345115328645350572530852183425232061212313733292019621260171040901953697946202297909049259007174674141032321270231220360428912973904056111878066712793121825426618554817295438188160777111158139268091401545906237483124232850397175110595199568137956761111378186144193971301308132995218321825333900572204906269707539781374828879654143683184884035779362029602484422034335544154076408234644079171398928690503549722288565403948467766037320381742318864962402553781991742452802975962668643015634221757536349816414590247125442037943618576283076496963235587971724089523844431731773038945602134812612752644781923024548233662716567572984149874627103771941047186116669526344067117311854379841683751020019941213602254877417025141252298725065017557098649742887790424767977972493479860184228230562488043110872955320946763199064246830426361422743883748361376334150154340295083930891528503304271280723388848453007887020788442322515385439396625107952567918291264026499322316450923710705615947464333173339219115529091738662600457731385090244321464677018318293278326050272142179689542290923743342091363346336039122990137985319731497410460428517086772270172676666572583748755151571857243360098690183924591690404838541948980608143064185870523244109163145160763417583582004078580672715645177884810395018893641940742313800809878602283764277509599332723876077197381993717449394519847392879890215942799845911244836817938245904695770035163022005780627237325176439605934501986926321210121613380246938557984526625128174438138491760773328519942691448595236290190312526139653992034089086063086193544634938818351596485440000813345391095061843223992455180936235336631672744609389439449171965553307265229276315866956454314462604250807962940431601802857910680044004782573435490810730659096320212481369781926927836060299495978247824389187822204605222754702245881541639353190874405965224034158669630400024457573171331511685566081356588504247324251322636927101986411317479630074365610308260254768329171102512559265719450586811418856297127785065685120615147293641565168442163453975416110194111960896863525828373858687473910360018330458279208538972044723775654918566438878841108651994627625672859429121322677506084938537664429508501462540304337775055027655689884957388348831569794443246266642836091711742041775936224436565446319041157041810816959163929347661206386408389264683422191425320814638402697542033279511477718184361308647106298453062246232105393021345847270384810653546803893971271649665383714531710429455390966019081044564632866201580492614658321792318569130250982084581207252953136956552919099764215141748661793253203674110215734212932853698987020997226259982576232415081845453099200705643833717493708968488917020032849635905996634672545675250226651457295820405690480267489097886039970505302934506405566866264877338565095798910944940735540513316557749577431560315166907149868822172037559378153727223422670206954685584274843019300214640348376921558241821103829587717893530336813388216955807606016968661555253359935790390979544031021814149220014401450112647226932806801113711469061413358893491266431902054595662327706707569717852468877866415618959964953840342436263757430876964933658539714921589107389090529857716732878266559519551038143429068106571157587584865895262949658282499764936952864598334162758629822786322916656543619926350060447845817220418802940975920880912359875936649728618453103052849131186142815866379814957670743259733479530514933758936216863375098411491463136128921438633111145885973695616415820125999751978838050888539951316811410184548272145022431352372109031248004890954606001818450508497239761757107222571510569330553741188410147914930923981549458144585107102840674704357812297568328027308238697442677122462971845367871685502303238695230401217857643871780892013762308815589878779274466594113442092114453817309600931364138037992777318222697284224042670077826418927143596036177853386231768695109711251661991759238486919602163568688564760466094495243059308287900090063286222523462478675493952615897751388722489431666218222924321249003583144073953084132010211596604973883844267224024247179475972153699272637611322933997132848037226503113526597459335614448983962029936373951243044090040598201517206940304706059297947573300228624260001512730113203794797293825287061106075293782553171732401559329392136617286909467145360945891858012611653161837379743830270445062043957367428481963283271382582668414041335991443487043714789364728871804303930039755503725836883200952562305237072196819701582458470217788189962541661944474382219806291751738108940674130149098955041024635868429336227374242656161628640027464878739225298250073145903181730784789030865882406884092873266173604943900630242991840107990633053380404254949789563606230689826135257128827010580262071407012281663756722803935392448656613699999398759448254136762751865937401224431744202426406258152678622949369074898304922544404590266986654191457361635474568488972180019299617408094299171489034407488675989843936561337007951356416283857625393937945855215432120972098347810832470135793063731210623059112060815665496634476306704333095382821222390634373188560544611829050405626416510045429839246781033842080197218633670834506644054200649617201599940068061631750571752537479135564087639541390098532003481469309168720040914386590232434257359554534369116886488177804024752659222739650494041143480460207078182102304278609544562029670588205074000294417540975513396895700809776270076606226490656594723934501262904552339112964718898998021554979897572558744856017384790039199315713339736866499657035278032686614683426176330048281902114976119122961840818479681298731220592366143244762198849475411944984244943752219304206815381800747388667716795753237970190273619447865758532948530640681823515380052823266453933461180025735901074131372381844242716051926469437868360667482146671307572763306040706092813575981169631713676974573882397276920239216768111318711683433953851953472202427101569334877087452541815761764607322698565504133940021155818333461695805166506263641819334739314280823753416725068473446336543337382649139383443200820345377734719815854857762009898472355444326966795023920446252248393516643381090598466124565156580359396825093168931565000265997177306533141524759937786252082424823584735700280230556485827735199945578379771350848240987221856077995813407264100867543660166372183588169412969973871649202195854668248909322896201219375399231430171782437596432498665740100845291119724245911352330903807641908188086449885409859094816712714136159565352042814846487286841025439490123707934993038229468688966900860115916176927936278848677533294569024358099361621570302552847075372422098262620099127364175617246186397066585451382762663722174139819212396399112630711593057644394209743156789835756804857658990413150462268993437627780976048189438025779070339245597874328952168372996545480354882129869744284529090305279338676115974247612453390272643339073593160512074711572604629931810136854390349475898032122839019451653269268505111060808359286727446858866075412857169791662814277948064136338612292414439730644916781761768274724629970224008692119592254586931400710591127361638910461225899445054523708766339157767566949579613251066304328491026095944645740901240592845376869729022963016934075548980830730317448314736479751823767829106990583988077798903462290453000827193395444532771403364353301801681062896725213159014751775010547893053327341260644750447672867691445036916695191871966391325038914940929575726200294411511417397397817398281424234783946586755345147301304513028088677606803883375610030195805294956836660452985007962648495698341382752926709150053234992158984295207415689924301931564615755545859273936924362288956686209057411497697908835563337495470683174970994203089147172220174927499373759736925178174549220750163798304893703889722705663399673696269612395315255398767352248862646786344098342030960732260245863537841073433352947126348555587982722925117778149895606036971722943503694785890427886657712753915265667324014172913749303249338939243472011102137910368540693804769498525919225047048077017107329385605582432293943148851763468887094909261340383572768610492479258359056948154634509625692178543989827484960868909672498783349543646250308164835405323061446840874431065649785150389329741162337485940272065153166818522392829491115570917100210957675960025393882243298555061484344893515152613575026826679806641103385215882030026868399771386045517324204520505930493813748580019470007320188519589068061980360907170509896496710523314137444922644069349961833929903545916246634706061873800182382153627466841125153333265405231929180127535589761788487485278143311730791741399633945191120828938518156484469220378938684192735681692032875638477594044894062769016941897767887497887751042078634309384386391000022130402205166418382559712277105045576063305240455458135568570959262598826155009997373770665183513264425141077738820677786125076258818399562728673280152038454585678332632294189519586914187945090742474671846463118691722015192915797249526885534851600804905170770265544875629721592625426052553826483645089885312589732878675072245474414561005248669182335999682095393508758003376525375435495887151735001093821613345222492710890690525919909530525929621760970797680339267937918608770639852520921702998560083402869219277879334686804310906374272722080063518913538899973965989669101258608832405045772876173270534174502328950101906204105070677200361923655282500361593967191568723208364302988576280325068635440241525662579040651104987217809359811630203391225969538620585598610659365828997402913678069227011376714809468382235378656987076654370876399222267501318928234950252768350988754984629804830980036227028198677746832604526959090959487469153636195493326706607072373321661534075839475069879759081453544385400009090725527366400354802900213527784589121791121504013854738218768254581228490929976571542391725393474962157448298245337294415811820423741699645202291100076894529873535546167520737438114099671976640145228910724073710129825907229276287036058763157566534492187001947282983308067649671668902950856796068525340334893890201583717682319505962110859584925367480282898755362755776051738082216383114875140826590434397813825110173823208973707393210399289068899794953265789517764263058001999946104268677498851990945891779471145032957563438438064371667934488808653312039326850180009023407369804382223948901269449984339605618315887186213430722283463571824113908515389163281566626144369902375643765550660661645966433020726352160754764506090690233268195913726264219651480293735551745774315677612325694107332802605369419935317732004960887756579509902991542586359283633133943827575122188248712449684630574292678635744612254480186094352286538921679503990856282421608529200289302597863625061392747721013382990405243081564534725473999340543275284189042745271844091602850605745612704557367017033363341346215842636080706890716621062224791216838048591951072102381380586060820153174001168830017130259978872348796435173192374586386509523126777557777550801792035482795131017278384143725033237150357931294534272014857710721535516692118834245020899764714165645222066663639426025558740338895149284568224906600034244118137747091506195901645047937740274217573258645432300024812558648132569809379786257516339470364974956740897286237633086556622316411242195322579033093483743392142858967676357416788567731364230364061728237453721464370860340529304372370963189433266394049420193544654515444642810228055674485295061488229647658233548357198475411215293839387769168785853291003602066033476926767010401678102448873544951465639523632974369398431279027792527004620176250033920766181496642206311110340092282777849317612670157952453665104381515608754446729081504814872310464307806066029093713695166580184860805760549702624676332969601382035929157338435512166891895591051969823267267462115453969332276441115693231035362733938954234334776311730300975381990557114996746839343533377546862372166420790762810923979448261032005000547020359880529888908734127218137037327700956882737450106334744559261742562446970572651664390287551381626809779267581868493501757901776392961050141181191771899617456048682373455885925821209104050586865310253037377162337002092685414832486263437425808547082597819737606691162678560356441902542917963838110218438719869382489211807713604911187983560316223589534502466116848260351774858494496481843904982442905573012255776391216702852485959344695328751650251077743077675610134142968500372508527982500830994200244188100464078826164756845210411994433631678626930641667091321335584890321647286723741593555519074670558808330397517558349649911937646315711878731446261082957732718712445982388292849635983916472903144954011576444431875877368187625404125119469360286260006108596266354717647156189699420503022631469883116053212447661153715755098097485051471245858893905549904042431481955610659351656950697348000695748000801374615842252621343254723992283330933098190273960825862415820348529577303091610025552001664388089587385329161830914151469196384449460988128092442854584922780729580261535878806977993454965408323477498056794742749835066537946008856979579818925036489618985158001439944288397028799906467180014004089676597435918643699523486423677357973033079217234509857991793742803175282129205463389620915167861186562773653600174188416610774211806140129882818195283508611777170077549248230397752951020568613489097449069202526574686299026585979531531448408606137472469300157253267641840523851633824876998354197878117336303357020289365426348350032684824423944243527393013874597155416216004529053287206959134545928101038247636637656084552406821238082806576672222362483049138102329204294450672032094528420319031178705873509890570503329997909574965044941897376778359664694158275194578575272215128979505503416969369219524816374904092644115173415795798047090667324251385336591441005702410749604768275808086116006080069984436800851329590238402972424621701551195397968155932097632912849142834206076440933257137322086523557145206982440390565113093836637154608597813778018074246414459283672968126228299175772506343051317486668245091307231654311927902750445061556862800013666048886501715477104911750643682344213584329711226005260716256631803970171805227342352632827790480137981800850909474889415055957054678500218343053544020121165333007194713944594016001535873410460871010882662844981592863358006816160753928325069880887436736389722117471509369651138535192222732390180456015237828098675769485309948225917184133939312755662156088198237273093613045092859144198917013221444481724164572039654919927494884842362833029133578368018538738430330949498343199199220900104142716614628723042551530470744356225165717761723427381524716656417965259119446274351717602428619810328871900378398344840444711008129120829942403063428488439412215706090640233346855904841535254543851958952831339839454727650738905509786430569115343074294079386014727658571382241345815755242571693241521715632085656238923655337328182488729559285450254778252798101355224803831118055554110174412559015242259892336348160138496494980000720960788112569715158552386610083647554432697081229138529021706766297810408306486287713840199681105260387337596585413729022692158868145703625883138904331845190437463415021448832502885237934705730433070544884755226990044460403801099078769188417685770237013814330396378160656195533301289086892634307855780568058157213871169829252436959912652233858946930787360505446821728531393512349691027644233270051905941505746535303271806261620784627100177712858870206380688504756836807375718883356454150404036970480473911146058394286083971294408332404109300219716011591625765114155835313237297195066971706617480380674763938088574265979726334782336801697623883446854476933872546520198205320304977355463222662803265579272682140138104892305977263035342637881317797381990551336478455762949492881574762354738790878686377195349419395820467779087818633852374750889233614158933244794231558973484391534211588103291805818268527168787041594685790162447587274812256412257406376801027637666476000067926311549727643291001342727632528444678442425106043677809272204110070446911440571047329086797988638045387397852475643167367417520169764232155768823280861444183740192875844238805321672826656164344030777980177541201858250478219238494661920219986396295842875182965483423153096061104923786531473834114740062436498311092315419113175885944992392453683556782722570816949240053106156405105997915040931005061818235714398751814910335814986153119213529083797389586177904552402602007547199654341798443959101732336389064159792896791033166487556742365765906689817779871155757914241711781805605856893237225586656970053848757274618673306223790989222563032984486318528935250251738723565521860410189792263381323444127482394726415805815850109151063695986816298980917495375780224253380019677841311295359444085592197447138996014601219317109098294484321397800803889194891850762846310531537597199422204790166281894460822459201506940496182195681023797869771524457709675016668573515795519720843007391886414758262749608158682577404277809731654720034743976452671612439308754131590103636627632790410945191390963702741755095142465928638507738772327780025525644214566019146049131414045003805246222918533498947263016638488557150887987614260843707792566793863148657818229634115134957966164152934034723295959160003810814191951812243887978405842131352558051652942030711337438876737466007556414556779211221786427988556282218885432945590380218152907375031219546932951709087552021357052955096947024990788237142104251751316293228400427644487492896376751506691599058621969527895477697537660945357418845051434162369459698553421082784213569448061246101203509954251160825919853883794141499755566783072616119263332105862376245346180668553192079578823473777875917249014771393692938376328794737115807203730837277673368786944403353792122102826764678428124631468480838249522052925366703938484658577716213243209689593669940376687203295840579224771994446787722003624398065525253333585667430022307560541375275814869151085848000741829749759903518133960418245314209800271050081119956685240770145684912013978819609916120040686979129199149077671867071858271452457166840003909905921988067354135464631253812868881810218639097475378257693835910075338555042903517647675540989347492482645173095074387799403809887133845792217094955702605236158469959998025827659706233272737954949690247915186884720460842145270394822512931216666200742607731587817566482723383385209399257948093846777046324435863454079030330555468313746689834406370694056294151055988596535068904182867684246434479820422062419751799384619119344820699483361951309090528304314558042000011489532714035141973506163725520931664850925099570622893854059859371291471185091044338053498792185448950979327563137179243407710903650180001754393890911078712991541795618321819502615816634734445410586254282233291619981175672775565962112099206073545855722243062479808584935192074556652244762368491511983416968095324964537815702142289267487865137597544163570144451064662984745692667927336841174031046406508376848279819275910823594515171417387765581975891070998451936453342781763067089723126778061906087594764035888458838622650643586097896969885133529419781880326554617454159501408950411292081115451132688251642957462709445295100880400930030817186437674660515675235491289382622315462353123260565098200174167317969812066773277879023166950564515383040477889970796594601302750680959526162733374972704146500831774283555360333198522807759022840288527030022786186933629241412899741864033405546471459730449317114436076559314799507415086514555260526545410297032663757973423431712920071155139297212023838680063277149785708506221648411161676171642115599556672116743884047466239112900975805871778310151292027352012402769257290062677922030957676108777813687575098752648853518422405874454655093611014731434813210809294986065481317587709217903371525668593800544667548845365809118523795386316693164970513044582424353682268211874193200024543298067275505330810777908250680704579862090793871025145866005809513045437371409296242902640373039444913746978048286910434629677646833346196240226287508853801948674697756980314423935364392401039683548937412409543345179746263155047818955162765004939967061145253099288651829320525483662196083212144608230234563998026685594769503306521585683529738760056949458222360138759652514928533210618182892708843803111134994672407544151805914751027456817630318335148136591321233192030525149900685686303643910942377299315068549758593262718331164842632821060789920968092799755207660297627567653501975136787222284701184887121294848780063788222192614728837152567484792621367048392911181406735524451720225961377835456525872364591598230195872241544411804993233795106947237241116145119701899122890220538818085190925067470992305298049856609528644912939945523659797602966990861258340879441817099658425088739580027382648988225541168066527359350504700383606332962614295440662525857719587579244506107884314332759998346909262751290818268891432261372449263381230380010185896904462864040984429099349916906727709009835956569726111309900550521828706460917467313567641020916318021689145359405618952626839416112786622551734142970019464334472999484461480765053088017159425878437579988208188481109990163565368922872039816870828053402758963200870603018130157876533282379410749905273449341919249320787401440655785975629832669496185912172138210670782835774665886195003563889195672326726963768752233878488985079697853126765364924755801325023805010981750190415597339608163845583656611205677794204033988451808761562065798457490962148522887475039273535905978589155383411755457073205954024153242057644420350265878262663387941760434428785415529668466649704596371029311309098468555292417037158083175894068625850732852960173093944276107490436686318483390386327705812391987654345222000050703196123363068408832448122245368997760986351414607977864435056999933061709915054057592584663932406184408128465146534585513962848591597406728060661691355257561195791950995335993987686390701604032744492500614859241867623376903154121546677409158127836876065501323971247000863648210868752936821845517815886710559969098737062647518501007071548878866224588822921061088122099516241439728101867021883720509599090039575409530823042766588311083773617787086857597501122204219352799086858750023258607296872955278308000399406208634207347441232946493330232076484410009478678930994533938047276474990435950750340148174079870733795031853245214855642031956372542325380204546514501512146544552298802427832102366525579451772518465518004940054750034164513413496923603489235456131155216170270392044219078026792188353637017863378906547900845865747044292011885066281339836575955769867564883291853993770516784654304351025787346952246187493138067577098772044840945563964446796357705173923494593169460181889373716143429488200728057428959617779850634065411400987751596788980842521105760756577806814370022905093980449156306665795303625172674681613133399982174892553895802900299288382986183110734875127512528647836298600435605230828233978880437561491925899533283862006518612502844215633195254290566060527697208408901583777377598145576463609212654558358871360945784308187175361066390130656423860486100968839327325515349829538997138191424714228929349236411241021696732180381664671788833105924810567653559394324658639517502116970764325666399831772657812220513100064867657292278467690364288141433549957825938706078433675431709277577997614849340798857469687704718007848778386127643564347122536867112459793852472324401784941413512713406049300465245690558159827723779651986269471496617351009386006104414479375135921006891370912697913450684855779850472768791409878241803081214982450854363660102351150661578140395526450077259578558580511273750658191180204800608239171806042264886567100500714245049976040364466889502815682164634749449533819659077650981620446541882710425909266624712367167844791692053253735788134984469080212901895738882517685044275022717120931781293497704309745819172605417665456603584038644134953143715351443048828393511552037647722962085728461280086522579439144248745918759885360629365681902966259337413351781426640348214234740934490366655399808096106082772202039364676212565915468601046514013194374425444989104219377926323859809760043923755573103398000068143633567529082156931431134287925466476343991123129449601848093865214564391933407682462133293109484551100792995506656337627407636390684667729167569934636074915310672210360902467327855637379755361581976564640152613325151781232473540192853036395719688881349708988575355565727518420413561245342370608022260762905922661671483908119034464643663282996413970927273405260581047460205721240818187167847038559749456230213404991377714616103627012822226127937089745007151198721261032931141566150814692809485766310390112522477765929216699421786503188948844223597520125731827294233595700545637737847295589530525634343010655001117000313145816569453257537135389003867891020928329140895973657335613954435251476517382673585694853854153796401761833496116991916292914357306679428253530576804778420063655911749119406160922042545372249685159012143245543463227677502424457995231002456012398932094337348720332627102290534146790393035277054126032541456348985062998699307476183017077057561533993698712258088410003159167214546366600380616829249814243268984915915311171869917850325415766709130369162774473151918810768883613870635038494232694207423648882514163864930223915508165108191177101572102601903124186258798427070694149800002714558660323596215198061569008507662624455335757964337058300304540656088984832626769997595413224933912220904025573815175478589613701895382377481357748767064330304767530392561367939784322405554418324018659184000147202372748494365104246067550926763797263894253044090696716099622479697543788698195734141970039062396301266460787155901306165839343839105335987976648292992549259666978844380630221786374904967539032572784104858542257190251979334494898995282530341375813637050999644875149981433107852519286051711553636915892397301191649023161587269801752833987821496130039542791021173256846582703125960833773514840712087427921382857154315003839443784697320704867334840192927533943022622074451060826324654137984950540297809694743113435304442829509900215469241330575338275362883069494996200540504118510938846136521949929743582744141558707271043027895834930155567254081484292033181962346857451342832513549292005040122948394803710283373893299606319647012999741770371157662867999265782878836828868270568042196732812942876515360235333676601223195008265824678199944214041982090978854570579350760585168231172967564548066376589477598227614270486469561624231803318823697297885615633104330168569923297883813337804577190440819065919407980289225945738376539874547300152908953230718164213521258950845139626508702113450881073014315590349568001807023094754975546473512749668231849875070071607089393448159041803762735463515068416800418120512287289162791762661971387246920823551817426378208271686970897136746421209407466214486743521789767286036593780239223491688848000621383860502170448483242504813986307152384236295675411198142420608861027811881049056466921181729533571726137963938377230460456040782396732513153246343706658053140583235009226370043183264143159100860588175419211680252944199241328647358937494920795841784653946055138757301739507068848431369054136831082999419950771508307203544401951130316231395406743505648626134389424020741892734790106606818552361662801193229162119969078859157022849498078121209677536826873478988333154842697831165955411911615569424047307952789830112235132559334045455443461422347158665911525348106622994248012580816028755039229367416638452948877333608512913479763988136710798444060682186734794600204902979322781580108691648560988330486521774095844267182135504047779855726690810644940539646388618870926418728989827102124117041844184734395968285274637511747857067809247227935757269302261689190572040560099421603209048468746070251922496822783286470823267594317426043805627419119148663571866772698009033702731460186538106979480145524754347879415004288962810843145611286766423668489640555585770637063071914321864240370788422591211188593225710077008724408518887070680251804527206803685961717757684341226067812549264588253401633902104364603539679862292036306117451740848135006544078067028984029083895337885338980603349328822861972304294795332517254112336520108071704879742403844131595905451953397320926289055279564598636277675324269173945073302244451074540008258507895121505807970352855736204024931064534790160549401494989184122614563451361389816668813878960598757600406421370396497550696591313308161816177138743375298694683073537640408162014624087283544133010859243593609619261396411797267828583736877242256233510844632812326699018270589367689601324636889539409830589911436153085061510086559860685020028390659707468660809989239102816752349356450890094093453062044553017419242208658944218561642741133231549413861991172043238026743842355307738069037349857162334501920005638597310339192386396015523464806597156110827296215177200698030433136171313929380385208880632437196602011513020840852717577159644605386416949884647841994378305504155566791192383925654892234992291116071447639195253752450028268572029419808215140377041826434344705372362381589268886177578463266422835681200725761678115781173397956094925116845896088166784412656388803529029303753684737786021663762859140521378114431166458812087515840151510092662459856161220384185895098791597576986330736414555211857851435699825838121369877478061086596095957478776957569912513410498995665275496436893701604692903467161677883034529610361972740209870566598321825104470463932271001564507415799874359549656884695068965633621811035517200464990793711567416094056981382612583881594254103830814936427770755345337983136535589073225241513655787381009630792108888482630788420110814199844403326786869594237124297395444381541462912910453650248680061301528350106991902368744808211738869086571534550598539846268503324158341232659226634674686901863439258972117737841677860379333535090062622149585453259263970169775999487210809016229408455487930308339123435405841628675253647758643554828879290160371083798532074585493309301043569595029232859351438967138188288260860387084843183685990779065127663092783012451741016776783065443460136823660856469005308641019593134082002540632807358520397441781849595506675134407713418593195789382329307058853563629555802138134856934026760352721232759271960973284510658487249284555530161503919168387710927690799896723479682715772917576124075155635943000277864140065754420529064385785247722029233537314443716795155841736239144088536502463866951437541344084019541313978028550649722571375168694111573108737779711318927109327970825456973994338677007009984345549099765493552915029917627558902742590742046658380329904922791287331850082253886405239951486523473992629848430641868282500747769013419883717512934122717600299049208934073219580628902370091674314889649119831071076480231559808661692604664074491524728125347644033654689570596072256280279214102601757858051655707625552959090173718269090292718040755322467230786298105580213505066057680484558442871178129088804155676848416869260554884486128286691807110236022769561761835544885913440811022228955470193167617235968825367619998287265812796315796202303647950425180918786900362018704481417731024211171499650830976967116047284494800427698809367101975245557826751211913069983132909068356581724341379225742209890088738842291481763865610609151050011753988518257247248363550981436730828035748491560313684557109639597305207533279366864281885834707640364291109306005890564521462842250996986384866740909486237643544010981616329526300387930320199401944795787876692725167663602575204317917505339570213920771806682206593472816640097680891512936214688263875595640412415521588282595958030886093009647829315987365947718281239067996362483336799132491586771193705962174770378732698174122582491892469844641983620844833437308349286752178153606565017483160690487870713313941202440081930008620283794628479828037501885142033878167949354376555174374599584054735739468036996607888660555590312321676739688195850304123304344540564310600115459028475796059088126817289111637972337464829655386768250360407621044473709821340533518485130815264580187332754584247977441322894658672657484917241392332278597189218847200172572459302751226367993753338852612881677485741807969886443666706212693641845058629632716648445801446077995515123901183857183148402051574329999743178127579848575925174090874721701139177725766899344225639058930647498811265623302732319501240455389753611328302393663058669949628928835318315403529783311747477461336802276894808285281739003433457196119543114347302674326245634183457687391596024322145838877442453019156410826094001325018647027549684332895491458212288200242244515663247206939337567288182484438493144453973475983302565062128805299716837301725622335439553025849895523404057013168691764543912940736121189764668010606718991936463720048229602559262029567655760199156125908226701131239552882669182147325299659497453543555020366747585652793728712039465944362594213906838762736766320459205913052202731262213824457121888452281368202229481788232906121981303296824409824535915458051971285353860382204780788571142543095347890531007081729260377933186559957917013683497260914894203859252042889899504598164386343405137548541936062605025630322314293392923937239501583467914318555301175738739579554803445847143331298266809367370763625902988105197765808043266995868038719646153252976939437371553532817861181928146341188271769283096081337735421014079325538936229141588254993292227087766798404113842945897077297782565171225141302123471820986990750504063861644281198320356186862883837896022963933737461227610778299211132205669474682483610876295878985192095565736965179153935771256998414035226394935568617236513953973616704015399094225138043649598393925205270029471139109942342354895175506883650287889237745532482458801198587621345032243455911996756973841256101773583098996029371681290838120431658040815365572985290361124197423971730857794774874013118047448352971649325785262426632428709448454433086559670539889838594668799846350905540274248713880585523807842990789430889173366678255271376892954898847140781920486001716260181498393063825285066350488784383397200788779548126160210323417441896240367118995162325744983689078659322276208540259389593715529717919254730988957360459531185000372035768585654897164421229257659532512830709458614471306444408881742443862005165249484660720238281043846390301285115487709850171516697252202118725131244319311743645471486122693444121676495605470318647280775037692091102140441039835808299843098735669265319513608750682543425820605928654288060406192616169396681050026641513381188342354214377622575992372608122279479021812504810337647027129800067443786060283413367459543415174573929490485150506067232500861038388867908583300507338020139714062629826748097319054038724023595566586405817878003715807112409147903414802904960025780008069874133176349284959940616647216872044541659170021767006106338228253764887190058786521731227391904600763103337291642362037473154057466465402627885882223650958963085992172589212211120834607156818472132509655335132351724159052397665199465098632947314645139972192439892851336502412461020719120991842414681303889892500049986773361531374359202530542488732702683596601615096935627686976677020307449959038230726896121963629904739734420156355598320600926492465490307235246571487713891340563760711040114443869490899564441906501781675041146683508212902680947921072494454569542186187253279592590843603145054918979630543726008747385902155258932874240277283242727939977194984219775331798762346986508284575793754581305510029717639203793548386418411376089467209690649975572521028447434129563262260340182523963740920208779733330731195248679654985943719733731976898923183614445793995755469772741340063578089163873622383382754182242464637042844409341237232513306091225641787559322720340755293980145841909619047635770084718345879174091924371759773046858938294921419787014839678601945495394177121751102603484041912996539736625598080644976055272844352300538920374942898191402062074136376310399218644121127681676888537624574773761107726097341829617111221627451138493332043858577411144754600889199466379915749762815132467063931718936550197775353726158122539526446160627878184314976485767879506898114749755011687190235137572381963302183723883655302149808424244533234911093766461400933177061854116183000290038897287180830607184747588830086356831980434298021560335321979571276603123628341176713387733358532999688890424337677410290467656262802875148275920767605852040502969344629929663199447582841572932603348668423443499614228412352044243515557917752788939538441082362001458125873628920336681574861945782511249416249670254772721821908242560495382401303605244385339771566552589954914523284989943501737858314514403722841148986100460228506071150857070056040398733866532785269974846601128137333714018281245124022139305348137267025247084890441574315925083665792213105142988307968985129491032601945528495608243556677564838593851490636447350910614748880430115382631779694758781496156252552695566492014927115609125586011419385436261072286668461124446115235782361869357857283770375732504096971140310834125444655034283387395602848754852139049227473166035643682493715556235960401782494511160626473384793830442470297657249994149060285444279439061734652975952125045354698589542423470749104757250700779154392621249202233585651071355836020032177711224624279626999009830693419154660177844207433715353696624824929245943972991186992460902087436872901353476188344006828640750637092019229098115805608005305802247672509035509324181692164593267940422157992145130237581120091978990201545848884412637953056486543422559409938596765151590688475370999915595302032463065081343242009680439432531361185991921731224454419347180932841851330578638166630232047049092987375631120446091794133804909721163522995901650443756487327505216133714011124533768083144122860901987993977313200659590646569879857573368833132855211703096604589356977909032573317274889196384585347438973812540387804756545636638183695271465207149114951910836138912211906431334480051076680275662642869690415012523532262872126866814714447420654379334377689543312681213964033432783990767665006879730802376468049080415839486317145170066172938235925779785015499964646944363706731577586230784238764364380202048034248207384110426119352680944468371890628612417556784519837365084089208538707671850560229701891518140275666349670423242195667156245251030358546708281933226384901992119607709756610027802342395087984833805048333964690677489449928323291920609403866907361823140182986442685355243165062910051004290144370593011612795105170567812917757417547000617344551191768157179763791009812365171713300715924287546157467605140814151493242102618154748372212696048274170987041187611724339085448694585775921121777243942399158307755191345429561975757261781264385770779575390227152478647448763014146230296735258233609337308845167087830057813112213874479834441455898042469799180663667612812785029647665670009553579771264494230060767758602897151413971550884567389101504454820212785186654216299983176544378415017188053970858649675258170164292020638992504176009975798833454685756583461897948777433242524723474878295268132618278003715609772686686065510592024294699622339950218180913721080591222452979570569733148451321645770558487477993504823300994912369517396589377103657581415679620888437780863025339088135778404361276567039910833374755879186264794365739477209433810716370253085958866076319144421707386968438712155552262843118808021351668274958085431753499211860213613232719928538360805315729536093567821298937517925544422301873369545882334216836572996563195195073295575210603431487267505013618536526588588255531261023236166296461836673992318859817674278029798644348707780943811836366703989956350916832475295997582088955292064537701433536739647783001149046177720675666577423648628539404554691189579892337798641742709235687869062317425357534652566976378399539126052791680887720602217235874514531274157902935758749588776642675701572367739609705335062407169982888349967769193467726433252669251340588143139562362671086912083992074463978486365458958655264293226558064235357280177017879768312639699356809064396736655533451262639423322720997413550517852616226930709824021087692096266789784930420024116146831856678937142823685258920492008352034921629503292623766281693913632089266604450855005320449747017192063087785952717267212702203748511003687624648150709364314589317814494352528870603269615585531335872299646095551604125402388470764211353617821709605342003535816876935781359246309994325113057440373516837053453272423001076226645411015322743474539681680069682265067321584683815093285748941975927746995413034113571473385062277690097501469817284045787708055126841893208589092549339002235806918865503868969041898241225879123778072260158111765195386514295811656690470785313366380236704381199874514663121894737293245308559189479001445586146779975972966119703480809778290757676172417500693796556242158765818680208807347296597805671555069195429907832942028215039028583625427518983176313920046905704085617382483180918191110252643185170603354600072353820349801366609365054997976310002981315652920869137863109930285193891357065782333553084736617636497222311656246434560381821516646484782817116219055572914139506916155044266238930973575358793983181689773595581771732683180487053718228056907692097175046501316089085433143942088424218290607403010374372809886682196542968733949932896444426565821900268870229239237628704344789676224712839884317714293872918433849992136701560663739630440222448211309770296923481574853093729880955009229009634558698796149085260624207086247341604353885674822439804539193357301415945907679075403038930455851111505585164478801461531964821555160246181118169126384931257823398787960239585929878982818957628034717445158979459984455833478075125735212499151134991138280402156426525464035470238918960254248486204654743354318236305933265644722128737218225690160548026414194562662511478306144401319915270011174218389360993461972840765093731659609581446057034124305644838611009889994255831719790974367223994328206963397917647290021184848742251856516427708464236288348141230445966512264546800877037643062254754139734239715992639161423230290337779060186183161566628241085922661070529980491779085913998193079264352440832969016645856013447997088466186321588333444803778627721104059234505935571827868743523751647873047860565783532165344716870900412447596345621055823362213084684677158776241519449378968804260476061321208862874228613056605979863878632807446058348745826341865298880506540738882433916033769257001161702437547825200358786408680299926709046431723937715551328376613952994948811007801701119602670748277350138158285435793507481250530092932355863736880868679142525240083291369140691853085174874960825254077998359451224608054211978901383397983397188920559080743626114699330013653519056927957797704156811217390136841254602648145198416296712892775951266430732859228144673570418103255487915484170606462926260310286499710652982280335450178337026062454556466592686615215888792743981102942470871715252661024118079464294479225782322031347163131247817230492722658971297246178297898568621224655402872624843329750633278020551188229388236803871841931382169278751599131295727353175023019040200504544269141473602575032825758791046416160138239399494282827989682287058338166971400025166080777109770309030079225665776773575691275730318374067297850389567084360306120814792028833236510777988042559622346495697077640497848797369334922702276108957369499628692878542890107224016151890265122090039590472616101863427762250617390657010077947929407314436455854423328631108104397169693847601378051600000318602626842990894382166740893246251337473835684652595054719656325854842168378310689648613880971681318019882438626806359042014799001916556558594500288209299780691270324928856789965334651203143627539532323599542362600180979355001769006647366152289546991451248826137214989956010147151510874669697477840155825255610932703029547362892459959762594035604490972394313895558865119562261131144494500169991273167535573158571286783590242355989761147709469078556070862982801545959167404997212632593473891568534769330186475473206223287207421617571436052701442357450019135881736747258513316935198697818041599387930647153627505324915099115822720057520461230408610352631826407308475037140923649565989885536711643075480432490122451007696140469918462017530378188891221046169873165245016188692682562025647507732683340852223914078034018942060460641652352948457782527950428820820635974856557129723778712562130573837183333578411976477478758768959589164683997713374706095132128777664948459554898630302239846164091923899515758492380762789462895546182000974208668676275274960748129488115046269218265982446609669293682398873934533083186699917898243800904393728638717109226216430385854588884560784074622354087761854740777200701001555330786542738980922141555510028091070270564677633760483269282771302501579715258378781352348708010504245898416708919051397063466823663185301372021686723513621325229574675013106666194471859308289442857327775437897167702805541655656552127627811551171628839431162340816024272175063709267373224929340437307382307945698655979285681711914265702945500800077982012661918088971968660751709853324448540932207315546649996795131090596937980878654103298859588775100424306126347825809039887190374640400470765233615219031075662175431277836065638407571508758757638243833322514744210748431179982583007939566440485635308824938336218684753267828585084769535692266135639716887006538078018047601409844143222583515509335697527509397607994752121833002930262106086512985870074208692262110910074753057025830120989388707666017168167346076541655913930976620169212359583312712700590812204539564545192197123662689878162293157889955671778197461265808055947661576912581822705940504430280344815195810604352591922216317067783554752583575612127295211391726874424001973485501521660036616855889164013924933173396814894692891200838218176549002325544314628807000197993925036936136926759058788959467737213955452555025371358920993695947987898914703301827411442287062077319057407336454767077217069658306525579823392402098904683720468664073640883253092050949955049634902138743670597798713291853124373355996245543295212969841234085315348150675126356823178326308797178875426045695209640795314135432536819313118407722083493751803226343376663439745969719967497579399564115124472090709679569035336672252399813532482006872949473961283654356479986736996620213271668541320788932591785761081618646078437679456611387800927693900384033079327214627325137678431100687810283410696890401170054081588514615192967616240930445571405107877095011843601730220154771146707128609344915199563609131562448222549428701142555403303165633134843086812079487178119966777537111583331513614206271060525526759500373852964365121115361392255153289981298838336867951533784213344195055428094723513901346400650587444452532526752026926861090292503449354619269285511244365950482169611026101824120514401426949994159685059379063461595782044768564390735095183549940894286102639746934213002980781399094998391961355710504159444937465943336443758515476781370761733012831631686553515144005036906905260600349451593281694598632192899077717151079350257638237847686683050936659063955904105086666617504602685660207723710259615142019692910708767564162671996459716326226011138708287965588655680188807401293300780471978158824134425517578863766771200230871905267318789001183005494903242824655455238994380408082777268801493455077277483619203284468280292445005557987409353207721940689858612924506737140054962095860686623328473606426616235732397741196321145281209248589112445240264790731410099567045927384874898015294096849736288405426365043290559236738438759804605379672056895274958903410051423358165088827564987414777431737514013377816501743014428748108993559312485318723868032499570989292596619553858230909357430676803424516101092268435751538600058972230826550705843110751250535865403680978075427498035556626751408056705173474087807247029726765160315991285075307734444422265052846593915909678921605081902172995833362418995681211955806200620434745009940300566324706233230601651615798577416074172709325238211384406489831115823693025201627032798166216499163596424188639894466778406762040164612399099059356996200379168754412211846812165112774518563125398357922249688429621497418912214712795112372783914878523792621839496122674726911925989341030394769742081290161723830606553339335325973231961300214655671912953539266296867529111299100221228334747759936009601486859809551890417254628736002100783024318446977210863257494729404033067679200379803804139586160909137950754364971780540086224648606194840689395743881893114355106118738339223351641693029127349533318135592392538245541854026486156840835004187351821278223332037321191154346825253725039271176906298713960147166201389674093661393568634614494815219687019332982259979691184640489035623271914940037067511211329630767443045631985649032237249674377038281490219603694602937656292191519031203713542181044408323944243080077527030220812631527605719830425445898160224467778373422152496257927336147952154082584278638200093543127703848263839612745431856418707730255791213960938625710982761799699786448381275616357822185131193994852323063949107385437633615267950655817133066490645897358850036544910346721083775150419382389644940439113980606576928955531952799532650708670651558580170036142882619640634680221124180461476228580249266176549702937585554034709535073327008858104537942309242952010924394892138600383484884623064006410540913431012041049026399638079144213479649941247236658728940448443904957250410660078859287968382320161985116230774341786393087003954357284478915875266701075129777758646775461472468963259208595697040745296031379875679262152111117727764045834829437129166465720822807973424414648247207541899056177929143713180674873806915656209061352193795641576637296405752180996699959243225048971143249603458872430158900841916914387473820721844643776834991024283922754930022523042853082081430899702424727762462953370625441462783157581203670465927075004979389539755825401901834479721651603418380187293530479079965814990126834525062052770333296253234347905884697196686254815250391875894678098677965767229422123344748971642695051400108992281451433089856320193394054671412805981242699592991193212897711597083936780195041914418273658432913754599919182883913621703257054560243972924264375231189220682145106247265467276382390117536232216745308440029533773436584036615364660189897213398050266673740186848401578793588380969885251848756559304388430904513853833227985944426815895284036869621802126052643865515943265257354074187126049476407308052056490766500852245064240455284684450389858874091552739877521319380967684732731249318101209773978689601084743575670159573379962653445848380817174409749011413973947801191888648941577707144143788570035219683878330162506042105534269323810367997833318088092619874119735097845285547367688221190870794475742404712174566357419419911636309472599480696145283678274254699571444343207830016444470811964926230381457018249719121044722051653469034446936838302261899905029285127149172932839939432241324835795333727486303477935986486593244265432367556168099528045585230507750348705310718761875221974166136154892588984668032182219663550680778798595049454074260984996859169949248423517613461352494018573240309189909648293142860876368480854485691210867768897431371611357977585353554356286234090736878187680356601589133524966629843564237367874246655468805821934275674132214438128742509689920781316746059911109636327168449969210235165866638320447451887036041080961486275940619588984525811303910512828458372582283850380112654467857180200763656414617397901090833664050061539290866631238589017775016687797282656221799588406436484921334314153868922706181441270793323965093478615928831653955302969524098258633821912700543131235995097779092413041540431297152994990193619324070374958406073445171657871229663477701452639416687431410780236644447521912630821920746446243514294549119983228034555314509691329308383815511668266623640856520215578075253503516441780021035526806011384104740502886229709630418322922817407060644773831809600473178707650226455891562112550221577611813297100655882087482708708110039506936573709971332340245606051755744276148285473951206742059568075452185495020684532441637132550481580262777526621010755276951961694169332526311805423225476806157462070344731455563602987394836967417844344666438278392676884533443265406440523775483153779320312121822140939889558376460368269428818756579749898916545361023630779013406372926000546435979403988623718216654553294076368495301726292647985017220471095582312636146688065276468995469546901093043417360236673791858076794816941392018191490855748652565586041708505669679743793139035435804275435255905824414353964623090317477164168404998272750566964374870799759630062069630923476504111600454376148706672106990063165902980104286896140337814912151709059865231198086190063548157162671912308141222646988480806171289927907565728910126779377085691369221788495631528455655467075115210206289525963464751038726886731853821391456935942919015105384911231969581220197215166287486205405278126742383509586177705996782435978844225216721428460390748690059141846788213776555152745807691769471500589493857395244236132181805621076854666049282071505094878948389084158914619142620945752322540310543992554112039896747742910868814482827428321574526481642668138659322365249727460571060648405431485427985605820049364550331506022179235172668387575938141162851986758855360529194889287164755366984668493105279893514326093933385753857591840560583829788405334656637993034172181113352794621236076003244091950356378392204255307502467551239671710422849581422222129714135153371090204066587576448590897031294546675224631559936768370618891143511795145170946392459423283225452477777401537733636158127653065944398228310392384945143347075859539538104612147966604762522741390393227627900510182941063573779742533430803523886761564563347890057966898658165410044113533331782291664447522697372071476275671449058851828330594013835321403249896554202386014013137672960523175970973565046038638534118049123305821035122682070962215240684765685457623158498498324061453623604891858608405112984950738751330178585084664771119192668268294244291544753137644014833627558917325241296338086659461669350983822318692846590880821262983910025873445272708375223753242410937180480085090766467405349853378793261304875312635066631930086013716161066981324212422241395400361042780167846681951967500944845137053236955020950073233832136754747822594369007184246546875175993698375053220170647601010383862446207755475294692646239679778384766031738382199314601989430531719060649844708577199540054267877959144873816589052737100361869566001830195325329524203928836014732549367591171300598136714482698746520269177106543031518062464536611358698593845076857879349943932674263934535477484330157285398458146492230829663523063993885597329895391811790216487885705248385458261649271294703913770980301609627590640510930362211326027427016542590094309550179037296290925361635424831933670251277958929141737608868463199738752463886703204982845352395633467808622290309913844817403845789764273165677397593035533775271492214826211382445932617060206837846838236233454977421147433773269310633095871475338902144317533383996253884813828612733304017488317252531215886310398480401456001253715867841662696841800171304555739567992886118379804233665374054341945438492679119587437366041607993982691717595611961416172267118622884544457350628624686690417620626607042814001443574393594991585469501613129128132291832863066539101828187529279974996966170931553415361208978555198218631202311219529048295075693608619561739163633948525742027423476671967860528690226886068524789087937013222892122363870941098354258468992939246768610200294804729704986970362930842173985668248522480882921879199487848568932572551606453876213634722395349748414475326511410371886380355752098912626177097556665950409576282278360967986856988708482855500550598887347284873644200514237190641211452965919338569497487413376124227834033946617233356235715726296457454454550492731104310118259261343741052521913801346428045882659959829263716091073532541091090503131987798616640751827857336855617859582298999119185166624452248980885646968667559040496430669611075595568130567380652322016179035339562878186526905214447131734260316883775208504343437448533138886656190854115735700823340230252377875018863919307778229076542542911599899261232354920004381503167673878305920145595675616210856471784946767635217043822137079932096455649651358469340853245778599621583478794066051748849116278808250044832416704119055727429427780796886380039298640877457741769577614669818810402164574784352418792054442681482899513154887320148374439371204872715162965216074312526613212669269827752795101199319735707490677120180440236363939307297535692500332002339328960046886747250012954537469790757067670927020267213125603077259106006920673891155737799600943097407294894913790063559004301667779146882248353666399319345828318649552964663562118554085866612391707636824594469560338665016975251503576706400795090924191186820094544175354175007711788420338035677381215707361840192739584066989921403516165171276930744578659347968038553681443200618224932474370266519419548885461653409438462671806965911822798764199260155241714769289110130007896077159122960143479962872726409937978931020578581487851897868641596187793635585703177716521030531005509205903198707646398009290767959143448318814695918361009949621499467051563117257453727220182458409961185541231990127959374236275452002738191122292111818327059485708396564338306830415428749819630724422799334059113110978010797692421837127665933783438580834397390499371682143385675930989257851882154640025737781774593870363784494012109854067540176116569182054685364778493021284706120271924716546313218475225704416381135738958105093026172469077447659135001399692464065326044954647475496763138245222981302393357223047542469900749093188264296632462219789164630217430230068561957054346550519657491717949504162565940208020598101142715510424633468045776564645399174989009664073320975085781522822691641117269372726210798603619076825195361673150298356810184233105766158936753597937620961635484924614947066496819590522768602822841349230000018514182205735602174702335592434754052762171605375434656098056801773305268901073430139730756746350606251843507423002250098016122735531778442277186680959500607870055241244689957875265153085171275675890375011763441941751203809916036843725812804998954582308549401015193833916670685116872973386900653381488704692995809763227438918212242990804729480783230199761256501627611655794472773445792602676805282271087151961107762514803726334603110360687716684718607267228328556101278070648677054804486774002550077240829705247999304932925168896288109575343239206992539839006076253446498350317175625629753064670809262081787234896844713288985142782898271921155111130610211915783351642519882229682352888076818211685069966824736471848382888256481158225749812232952194844107897747869186636284142907741435887522306654980657916944620580545691081841983083540335949127148917121865945598388032856475882198502367881919966316905101846392933480562525057776080086507204619340994242532291079687080155580327684969913218781324387128323319564542185483620250472406218618547028479585557831252297645067571554941604912401594904992924929879046754101616543480713634196531863745397676301330127092063944615287500598887505316812258144479465139657673291809726820851135959421241247886771870115216243983827329082807971138186156243319073935351080662676724964519502029638166611604703247005121309697219473942375931860365258338893880267204629705278117093917422879327712922247871508680861664916848116710519599641847694009587442818990242787266585684497235376520039130328359529834063824013545069913673342633029793935794197339914243562472157916283917931634539645805344424865925263845528608141035969263730576136733588920891584626996052209172837002719579726720225889681112554434725641599558700092326990530173566692508648768885327963835921398478536741512222786015841101677274241018231627503398801309774435905770464509217159320384108709469715653824211463734183601639869625035385106972684590820957315075044411042565586255141290153057528904724099459288435045399409607154661988332353634555862457929138648725509364275151912291793474410189931116824336254368752129345883527778758157229175305235610656588222849126101430381853374679028676885890546249449287313680279789952029363518043747261761068770548238944694540506812399197772377814954681045508556528499504834079136829231308217816631465773015717927900706992747134485428591768476553028561091444706865710343125218918048610110960102701847784760894262766530868225733214453602844841682211160323676123836234782921642421678097277551603078769522883404805836607166013530093978290627387807488065031145880188799886855391331614218002653763277738342995931132214805280932761505769416362935221663756360387039243696507580573785353208646299824349811373503241513100926015386524318719496494304244147359046337663668185548375998466707184245502167785212358196807277272387461305650251401926535012371840678621037485309105397963535101782102939338102877800594015737908694564108068703952568848038991089288378386269668784643487652499850496586181616498267989435365030659544947736445911253976806802299484613466801274165509625232548529605967606491726828426310089726808858362025998300022822384980369868897151098783585800809149398255906622901863695171703615779595648439920279185608641988965769444964069787064172878414133633193898310977169786048119912779042981482039040689706466381426598050030383957333109135936926606725486382307174973199082505693401658830966499561267858000088301622895979384770560582805289989141478375667650759425192247448311399650399168967393441243493712721088022451090345171838222407761847617280533142492592920755003197189280473164290923783783315313360452697583867542510962959106063372658278804334708823629501093954384671462317388526668622488684769324453664347027217626490035029150827073018898655853113733096506108770661611356519093795408676852846050788477223791213123824619991385515836190179210858202419937145692857712077508800705451710143492472553260025561926128324786630493971201558984284403892902436063642177179589463649917962579209417376608215671421405155321992965265183457819394351043369795900194183908692435684079096459085864316708849756848708705145011291894604559265002497129139270005059835091044289393249417923364565059396198979488335570311334731251669222213480820413705662722898189199971057077089368418664847348987310715063717182261013483962914890227114946960081152591115356795232842361625117187058880668528004470183029493974970311836763111269152330525029165517737430467964343511112534714875507065163192490103609610678048580607302403068791403211477009115641828617190658742281442553750897210881186521626743687345625896201053871075864791202954619850880144089968922729447959729123309913549515043728140469445578344071486060883839454644087150537802590856946020188848151167848424540784053354725010677750136666548021423657636825376496500822346055594535304809577731924020926403552868697692128718284255273039875338651035006841574588211321568298915723138705336309920637537456716279475326055880854915284390758375093284088500856018352120352211618939900086058863099466183991172430579101202053522026764504814552263549801534654502639994070518134183980914116006000334905747599519967941106209106966380103277060289634414024112748761114827432028441480333449636491976727195287950629524619532097914708016377701942250505903911221998314873131461343299692259170914080869555835850849555724157848451849684394610743420335016704677658171243076206341587308681157481351552382686753161916713775172461844946536444243138912425307666494203193049873625199522919354288035564581959428351496622295731875165044432913171192156895180702647730811071773264601947438612376624531165586641342897588020028165561882680361667896480679007450986068266482061804669473522683284744427496574849869669295142901310798874108211744584350095837959608989049796189616035693902493933135923324123320895309019650700252033354982973369759742457120123971305351437344439575601855314910946389736605019811422306380262274852356691969126531254743511302784959798031880149547138023588382059636969230358517371014584030088176610241695743673726535462404820246239152913930635866946942712351818098210585743316567361083526368773666774435365677304004834050185884456997945807401064590816088761636897750274950622960787535154236587116692638146332262065764682378708331826107778959549485230726030166670616731011732175970397215967804725302371194237181307608730330696752583863784723631340058461945861746427204848481135727337735686756940495469415426070096411206811263088508315743131116001071655798653721557166161791576237617384492710040226679964489147713169449884679591948309917999305984901286176546396101253516135457021383244542264107521388423614124857187059077598640859638821974021788921662701936626185997283511975506064896054894823658915595391660603774794786197803789834754017960017360270986996343830261878155934064216660960405620023676703801402580266695273138317510002763452021731588165648358020710811124633923444760198630500169289401761788154425209491093242675480414191828312705554367664843386088101824138969962985964465590590519589088948240813358299923502546543473226810328845103818719542788724996988583035466258035383880543632582802457828586002251558495608118222819711599290592463085642205807586750125784535204778555382870455572922111950778292077093709724033110881779091490042462224601698280179511102068420348990466835953007732425978850369113884798499796403600459949523253732995556834798751147820614837084115806437359497363891203796644359819870388337728233734796236302800643695424185259997067316982869709920498372247181105766805922809833467460717052764925916133376931737189837733905255269413792547518563382206268587931013765910841243942705616022736625885987646735194973969613002738146310349663234358388262794082057927784061732907625991005064159023344784309876682490204441292416708269824808366296776027043608240139491615493776758502738185334202698814438095804583146485015936751198103763825061772024811916135072744484557733086496926268588409749422217951561393592777913758784924337984287581079292594544777483920772509649623370827673013263215203387750488196691841380328159151058824346904922300735179578895968549070434715359824942866338361862950642204595139931674512969486966140568877049250281767461356337862833476621654009585399950273081996334278490227639179179745431777806304392988895075009921646569538755189885140374436481428706253999788691179468358719964014969375063530917704717594680047222397533052913897582341087282703674388236915158475443273248890628607135149205796143681587325064221787978011818517997408014058626797813365931851541549823572192052182611693865298455856946203419954265476216182093593711870381125432246883231995504600205890067376356400533773147667036851012220520547189732919766992754908596540439399134581001512129336633297614639460866836624665580405156338041158353530468703505355851361727079167334341708307008874150259003193627654501477635153163066615117252536971142119705097485391799907747772565464795408182578553521435772785556567987199294097042825316661932024732326110254746909651308278171362264369564787088367876761661900939689795647977114514570157124067378070932197306734249184757874582350893458255549827086971158660209546127531660492914190364835169601433334431475066342944550327024216459351781305736894570965980775765750882506820553687202293140727572745572461029773918373251898812582457400460692794617460607299027162609096595366678334646173661995806517871517255019309925742522906719062055922563803403201039749640684526474061076738294173588681034261589888369557866908400839030102964251998904301960889613463745849320169743346232216229746403066759946908486291353964961752054684994559355966821975314669355055234530834913106582037178945764344011674986332394618568742102204748676178773087825452612693379394779456657915945174730702475800286423709365526454723305791366135014265191281031656419005597087927588099998440423308295026169379160034579983009964106531671279469685138967909799569816413605891725804106226381547382614351449976387173233934198876222021443127068268738730598678380885513324093623487666585261976112367949968570638349734914590025664993043631428874123934294733317257437932668478388142951741298484570054068450075700220053216861395763719177646047325270063878962366315684302670961910776058358167441854890519232092274990715063781230057034496414233493153758641568432671624065200931495410341170521722071849302174999538921422222900745310280176750651410587502654125818074556251014836822264669317235157202992536337523762034629445321828059760765631689887764780666725075580958906443607838983548678141761535334087137863811541317831617174274885634697581564662016552670469744727257910792555712491549576939779632179465966315263475504889632540796084099656836009547459185655867736283073694836694808532052976190575012004046271683607255869523141949989740662400920722817133845535111562757195486690693914020594039911257086244028723269896182870659456851804076261987317535027206659467042396530584852206000210636396230589377073182788986197599495304729566340139648783608503084791707403064888904474603234574353634665052225229033995122298358959121600290038836402843631100636275631607602385987715293337514798077169726379926959813585678382798952402097999996850905962899332784719718248298138361590888851503882660112964036946333912197429629068355571925388331883280236841032249982776495628700605878545598546541342801568055609401111802226448127620985325986309223738729916224015705529972017616655554793716418029016682806093979409365004097918020335459200527822605207919747059345284631012057551266957530922636788634055859681007881920361089175862796043819033126113985965289004309778457075836560142076259921898862355263944167187874623104139468760184038238702921683156193081858894751262263412434092704855420719637161448711231136561207874282883097152915952192770596891545107304456352303124585542425286457084634224195281694851462034732896746604714375821912823335830183059922185214557893380428672261587004526127092383778920110419747486043382692563558465156814120348585434162312799174754257723701867351209189330670244587353830629719491301046346820079488551987149266409908443122620433193230749832543398545578046568341884966446512937341013746585912833122200318775046048630190929214957984631036958008993639037558105991218591613758371411340461723216116354739834407864660507524405416704205033431760571307582720948842768942837457929121125924961853943827361873199683519362393795799626255451158079623672684240987388243406123189109179905398173350723664872902689231431168989696345810599958374663067709813574878926953346963913963648053453828534223665576950673625957226186419341233920325873701572516303232833788294423480660945423353152941689624870563315221204822968567323476256422683367660388603972244129723609214058724088122323578220835165194115705346156787169993930711165376589590447210300820255821182280720351062577096887505233531834086323924292316356283190498015793593617341731825696778926275180051165221798898268170733246446771383710211857501497722261099364406231424501196156472612720371163355261581003835981999658425406676295794465114213315347836997202225348988098036512643301456132237270814504942600674134129350364864804191298460493759547182085366301354189376232646066612876750856889903494098731778578088685171786505258150525115960927130283670540138053748270179607371823524189790225466955865005751789228553245574456431175572526021670937580672871550812390575557071006608465609568830508447814461288496485284802430370706198847166985187982699210115288652607628672992001927097477264098238760123931429101610674932471453404912782728213718482238542356251039268431960051260874167766103860092434047657582260251184241204627725851660562797644735134225618285004047357764090667776453165629687078074253560393776608714770267413975032385710732698502486449327188774478795372837307297288628897841281846223966585286948814162727508075207908395888027962155181917074426024469016768517879444217999441043771974784977019353538756383699823895810327417349856060797584319528505477268133207378362129959451221966689904569011051240466940219859584037345576237114530963281593652687754442682272961620615095547963964441240702543136934616624419364631047212068267165971665171872458398492450612244259677818034914002512441490498853378498870382204491156806766793030682982524881188073218588616131130431217481640119980335522305625022869638231727277773175434991474238248978916277679182201283125600285705371894494261657162393877825795443923704690792465298355827016438854090288781873126494179683332526903480018422800845814943084691744018825967681724301297318421569089033877587016611171625763755058829281025940441993554949769728427138660937708593139905294665867356701243363459001325357864541004542288019964057565845778954978159388305174004672934292777799493518401297009176153362101794866225450626599337871924358053554047669328442614250757008657843487821848739634430223746380572525533212256480994767078787540883588034604310220949912336883599211409773312336113633400281549750370956753517586646692088154894671806516798956116451678983936576122954082623429234077343321635338517114244681253006013717419539464111215851528256354749244803850397186686078718669339055064176146977930134867881299295829212176633446046886446239579760772046062520494770675233729441715327294284051358655942653571130851070904136927911274652460682232223572234952941803641900256300763543749119989522608661504016886008644722051388437880111647482690564660616596555126235281776112165758084082597166367903592980261378633839035800544413551179573343645988182308843932380105324987332615350607001820731118519181892262854823432120452127676759188608754565708348960787582788504873743094021244521247171038393786897790690682577174284521341228784867073084674889313664354289816139562193407150805019739153108555376773336880774130112990128833992302659720044086391160469435324980758220146603793736416058751969518121712147039423022244179210363567414741250632763093002724284380953815174351793197594433827087877014056727722448360933658015386705172610676763272652767033664618185681907718750501171453574304693478993660502567980360021787882630651619136172276534214114768591512078889518797194396031050888241847241490884720220221710985963649899401163706168702986548973686294725384975452693718795985671098937928185637822481694299396534197187056702215863444339284059882528172115827673333523820892556615997922435660705449813832829123580404640072611668918128300415139871110425275884246774849540667124922691988903600596089034435305317013099833919213370393889834663528720957255177622804180522263753708660506609992237019527976724083875194523798186995789892403203305948557606162148428570569807184864226167778524292401902602591650198548319159636613919800397488729558725483282793059227613588137886786002590112255791299636908636868591144757656862223677553899359563786343077089935638643165509557462355931325696177444586710509656548268966161160686719562044973139702165554236420663047408936238709861325959191004486915502727543775287598795390041338350633738335240621562629842120673556409418013228089030178483416398463715541812812366159362858380194352250558224721304765099356807678735986336482163797572806795912686197604377442798688276581291056757276689552922589254207639833774414333835114444851785890318902402076067358874902607777973953699998478941061717707744223466857243694269121599337313846622585649200958592059586186900220390505165516759042567589210297416592724990005788205846950776656633950681037097747780698680748072796215108606803547806265284191998833456548849474267535177294960705094587481984173860464315188978171464776939978384934911395606581756535543755854962716096651782821448131334453137982766696772327027949660166758156816214960035196409420476825084309963931403736631600132109486179491880528317826015263498024950318013976272185992895347678531914409026026634502892493578760674374178752432157480364353238857807753081078423190422410887495176863576775180426605188547553736670359545158762482102613103913149224587379995934508496531823025383848273861050190634753870373938030204891337962518796603716583006406526552090844320251285018947141680133165226059582878982520351989733647779839025613495803301306726966611061521727285471192503233132132165679022331065459871759088562669461101082337004575654426271549747645598381045333293343147175072804474360404409769042309405453910024125413530436936695099809981731510657914178421956553368960414120951727709504360848209557536343352660994426840194137106310146678311864820073045831408885416486736078413410444288839258038866307861189539009943307336886962570354735164820075057694668925201523997850915627394056399322881198638141539314387225935785421443251247153249098962900131975733742008850239843629951487972042681408116638645174895482636591742410591541524540633955919138955815736541667217642593752254566364847927441264941293341562163411786719135989561420795066540962653043668319465641654059370455012550918353285716701812781649620948607064961807592318263533062392542854129742748073379788449815991878526869630445575141152320952245290871525938042565423864167281937620196096711010638833199921861466013408289375105947524259724562832941082225836407884357140685095865424030066445785492225791440962143039053532811159457526327846322285319746416911176035212288064259533777181777548147872684927205876508259052985595546744577864324244566569118163824010897175520155692903434111405184862207002156459537291759913758404313041717429455031391857994661044582223977850876472939077789455015145440807055897770047802561811114023411246483897006401088730355896055620210135239797338100909263142024231919646115706851657068010026196056297297334367578241207480472716610010486973733292794840234291803041471750102166669819595984093151760718727293503030878346999090400824199650031660635771489984450330826341943918920491349330102646979275045027585558762317447566469491923851285275275238430075901468745336830526379008621394943982237295556758665649360179541423300188884269182762445506460586793211747882620284390536190375870335065840161224224135769938100841913472396865257950290994096946885622420466699481014518532472430761253458728856552721782674424954127828088360880756597571044289368604787680966626809164003621459389030568626434470306071648908638775568733505271039052207051896946660845825253719757910913959198407145744148929253773426308206380242250431576436708352535688511587767806589726269401354611540247451199951871763116551929084717240584211495869279699830155169456037031357521496597686218446648829349090529719421940601107627669223743837556716348561076153766552099586623698675402111310269089011967929057373197271339530027614685946197259046337740374642169434944167356181751186505975899982956401575151212174664662465948199524118741486478672775824423516035314060828818239878721133903762144210883017291834760415091994156686905055848318814712919787192035518482495194177674120162549593691122203279393717565567354284928396154529751317185185593392959898819569166951270903763823455539840204958911099077242663969969733774346470558675076436489979057251147607741430045523481394448817661999722585620312908324002470845124563735396952145318264070449052960953474335014280255209701239557927880810251225401074396650284629286506418798456662129414336855510272471835866285091902770245590561825614912633879721358916897647388784051392650229835941201817019755348520664412495093795735594911400657170933979349354852429340433954644347812080020612171583339086745527879974709581664729647393658557433608221994505659921781333525250321236779459066022463219403941642718363106670998873381018738229685606263535551902421971255521605523139879853557714125909999232116414621344409319251096318654454283680747631617930243861392320371036454486780259312288573899596325505951274124796777768488926346659858281087022003338906060639935468365585765832456852781585704917287125346388100681429255983502733038461292966303391638009554755518296694424161968543251062267851412408396961572594247767403105258940698889468032100002013523473210566790707993308130241951240810371124835574559913600606122485579366235515057759420395824531749739387501135945691777091319133855676092123955835223460427842130877133841761444257191819400822880429477416484549719365399571920100136962080838434144967234865437529076305662589582832583218780139093802934422336085505484225169209934933745756642680373888966884014839149570652436450257200094604517739672872470886126474951687853876082959968736117047646116280894871849965483477143430223341544399997930975453192110812118462790728778400434702658721505861383789999314064545529819408152264937749483375792762780281806876848790719138367157377985772941252751505757004165707016473598944339993158809482296310071432548054520742548584376798573189578882983483784583137319693865417467974903142106817288072172834308974142244170733829463934804646349669076449703504632476427851793856575129056431090255335101348434224427242135418576874632436134538278559998545424051867268416323958849342920913707887466341887837501466513628116182304380890836284524027404913740133497881601653829205610056889535930377018214570991989169001502848094729230788490957262538648380767482164078730534746156176127520095096288474710405314335728234298610802228632883213938146898503126770208472381028347408285324529813472237468631857854073169308068558798846326070884012037454745550709461392890011056009824348368527519073864834957351256939709623643092178570304501414706351310253392026324968360218896575601317999006833128319677686345668413986967534298357346095327839446225122078687973638180763185152144987500479546761232886830069104272754596858457430761020622505456659407054481477550196018167894305708842493329384833412888015956027394649570765945718446340167382902704182507159620024463500826609457680636939863139128695152213761296402313934372041491579299598148025637727477340643646869171530095676169186813153505604472009613182441847528301827254548094810886698267538586642231061516141904648088519471485354739704761255452979168851942302145152422595622830232481885445137001571095037794164198426015799467274911536676673585278204254255334507546650090165244836161932177819876140637940044123200862679181168645798212841154858911035226519160056543439741609342777704002285022661756915929045354999908796343038108619705681789568844892091870479314509247170519329247821417389543476762432707553339206662435452368246435001492347526190954056309163307989727772048728383393267784910034944440948290944261617895817787953403497399066081423256987025233804168105203671707047674741578949282087060514744111086880444275889295145227716955526141606015356027690120533291804727105757161942989200250428936459884974592261380598582833880622360550544423662929268956548789535630145665518223698047003081450126197844684804820046888684158866601425125650670147584823945396248279546004086590266322798785705663138028416669912392832309201355053133633956123765067023577314421437759366618736257179937978665320823806421236927818146569298459016633295854444639406592113050459094412165619622340424363669964064709468016302520389547452770810058234015799039685347490674221720169987678179116528193587496780015557222310574998157100265994357215067920862905316954606151913437240732650016597564397354808543658310293816873532933683728704207838841906500841638747182360432094196147000403702382496614192906571489910500901140678285726330557296349971609875738113097597427977766716492535688044202960973136336506034035027106385815763894212178432300286595164345042456314754263183499278312515276862518005386895729429713620593713505050206069109021214196987117585061864387386429414553497144021196353855183170290080029907238762784430081448469029182381776333396557844712427084673185094277753931987296564072128306527934794267177859179476512146163705780639086791054984806374631449897352882233030643982645760562353329165246665057894220496058710159840692764382498800748539963178163253733518983906590278960572682938144911696872854605395130343228677622337016839495997029429647655755740276887668256118847150576138707116683297621547141636014491178276280814136969480768159412795289374889686930000557151333081601627588509459719177739902861836705113894707621603060434179091642859270865478926520044005340061705488933669041934426483432647295382900431325933283793299118413388373744486734995408791250143401271233596086712604369482128246410045433848861208343385477592768681978499249829402103283667177598686141185495278459830521695708316566174236729738411306778597762087577270367965078189585855978868042245335489730104063790527311064876965205747683192400511501296581836781277804900023725472389847992384413415258299022895274224881338260652288351236182158660994019296415743360288192425920253045659469852093837921320355532107846135216710451347762400250442079672413021241561734069990316769490476817837447350530918459290740333791430764706255364588881394975665935169724834489063559620635097066007504266424522819741423947281198759134621273536489422774232605533079393766119519316249917488351343721961014016050864514973337222403678523745745900476545127229699038937186411535273807125924318840086496235720217878736434515653649074413412375813558067476941635696320259085437223560139785141883799888743854598786809125924958657724607756538353619264703162557276437205763070751962131707139693402628892115943021580049417694602614672459411915820552433539707412348953103453210483618480161390322298809059172918269585509357358913264320353258105208096424849006204977282428877040596588193866408834139831396600115304947575965725700215701273888935778095281156747996620031593634394401454312673071097050026086288508366155853292650139379706363229009470316691448605818786753794019696591520069641060300711855528370862212995428920127287002784600041672950636358492370460994561189440069322519968266569002625684688334296057226621839662229219649630433251552256886222267076209309169181644100655999576520010230507336378368676037060142856388336060067442147016598890877773339490307443732863403900652458134166168297397298484588956078708663124898296514085471838997756436244581991772015044312684594063074640278089714956192235199448689795866488461133986121706849936262533634528520572875391426734405242332014168283469576097894449745874300585524640462056270602966540250967284190387940963422520269906266494271579779075731078931033378359514649352546267445349496748124828146518365543388366902819031296501832191791812133232969686875301048398258912463259829843727246242830853987805633354383983934840399710106804914173795514935960852387170758956924220937097427056417458864253591091138226892005199562949034421943651856501672424237580513984807825984385742400466317091474031030001481747855479393643640770290754025826011379683714353707061679593609291029404502521685788045513358530590771931532742467123281938620465583735270734627079277898898930565603619904805600248714877774759610634365978553078246940340537394228969126904698069215752585988385497308650309479984254470925895991911687593674723290346286364452757989689900351149315841424617571619804482132913068661805845503530540852070874719278779986654394860108043983313140273970342200794635360976827359465749743463697608967337216478608711999071386380046216519283099084272785966296616034000089439142993740779242869976562450241781766311217584711359744056556224211474719075679853363047904462038279236975831887098254050179470428478859530464053631524905606254091997397545211325375913112582489520825468598513181204285583704586393133999392381209056958614193635667866197440383372612400475307686092033805389870379948125877574785892843467776873412119178811416009399215185531648518143685301315713041382918208241677176568217339506401763836833282752077666278299092124070815017024336924823659272135037925549797526345666800972900299608882361661337730484789115235778521790792320427977188234954647119150517733106363813770614308842865162289304527545081302951461542193618053036840001488988815115880408892071664130040210233163674735338108585747811204654538473000679677235159763606011113009936334737792325454313931107479021585102260352616887432043954773216219590739715892835245367335841352479717673564518526879248743868171278806139818141093013379646574666409471636076806231484875005851148679327220226229933662378573826625357052800262914699045760196978309616835431962089150314967795995841367199333573121264963223701362930038866303854169785283926434494444448718727982672838207939277170949864056286742922512962667179668812542894985680111525872043138803205477022937721341416585597340620567565606348512667166916762316408102483638382424599433582011167569832451630019959840023087453950758789717409752860901943474038700917395720256806502016497038995768159819020377687372205254480548745418082595265901102602948882705361928185439777378225592286136569211621081418000805952887342288354959590244399676427935076800177957266324372738912978534674185303618938082361338629128466353687516991631859690962615629237014022304164584736568149760928949146194462962581249547529196663527860427371831817005093772087474530870799518205233819645392249002851918742550154810433333507911815042502688781707397823524715618286306841299659764113468682782130333211072123579484478010145551770005486277886184791145969783211473864271022539669204782752454992454543330578211271377165393988365723492763189520020603613507840684015340956358669770352734398252041371566470398060066654202016877706145359623580225447546317152359976216795584837484406989428525511517338472005315602252780106129675742772665463290725297137509949662908598672646826338783921661840630961406141089506326984772531748765706487879468929982845648803184304528737410802015555952165351791090288432526890124293395694289635654705897129849123262821113576638102004090572344593714401063463689922388838495797398752716753941495303069589112137715259626795418836910672482899087827953813785657759703111812598901271730491263551327988322568004167445610703814656838817411357630495008467578985672598347318698296304713163719391385241403576353146878331388036941584684017461172313604415606536104097353157803678538115759950283716355713136311160104527552514221233119421749436644802313960767886162164220112374585526333895885931328452155875736571572061972674579733282661409107769823943924740492883485502360048601935591081885961461754468969318924057962599229779272069464869557780208985201339387368269487833166736577133825822943782976223700390242850175317983417055999034351376397673200150766795094422828380798945761761602450757665498069565282981441759196164099528677374383781119772354319789387426420436467223490345434015175335298275667462649378633561256519271562544670405189694739837537566265053938870847057400549612574945237102861251849840434553007133278124374178402820649727300766432238935070594566786026201037095167759909589707963209188687982293858701710852500441492384786950475722751980301498470792640967033607861971762442329075728656002647945623519351166624075237193192507816426388444547432381355507887278155031046321596473565111299272589153277053710003415842322761662341421180209242557874619754706985638092366267294643542465298158131203201807859403005660682644355678306461147273793125758033588815626127995583616011793841016015487002789842764652157029698726203367216933673532840460160199716476457197335146519128246633079974720423715308824729354138264555102334915334512799611424927994243518003566413609728132143970370873152912211114026038924230676156197542554173012517105335285202176653354088354743119307868127583301808066888923777679496597308447543836010834291896592350160638864239374519141802503383539327807963705375335303643604973729107850186968602267545599155958615370715248132150267484597974307245903603685422743904098303350408369487725313019231792299833425683689866391297333924919214664820326173606461729448506249402342057119502216106871091518989109502368198751157126916264938033767592106017451009011432354009627674957547394216818810348395481538020083470581646143385540402319079154378644869176232726661100406563986256339073683769596101712109103850892146048470937411616466184975994506222467984044229754723884721903301478012974460295910229454356103642021612342296967545584940143415043180839629364667372279963908357296838933413713380043560922373955018459029780122465387333408863730706346933465453259534733902188547527758602931171767254958915827060299534554295429795777227136430983571436543295332763741273502420420155624673242710925760074064865775463279316644735002815121970943689940630233660712516708281007187833335534799093202749014194775894052885428866294070951861342078829094071635798237928842084480692228935523581649175605729538407708854684664992655606741794651138949446185505935477426890018881992325847476293772165712033404715310356468876595871359425390625695762978488395066849480839984655142615215487808693653631176473607318565854416541130519184223287874930854854219777314727619547362175724497048546776660766047601920987947921804944514757368385668411638654535645093866641435087768771695632082536522831965718858763837781653538476079431655425559277939395920217072650619861642444104040884086364480780923048063766779062890158899857840425927645792630655868992462551972485969168609921565330415578836802926424919665136043841879514412828111245914364890988806895392019636449161706888121060925013122825427872333745592367184296855770296643224282331432263305430219043290643579919433329543255791123881524905907453873915995137831089553359538272801762672044760825726421958524989489611952076230827585156055372197326450412941071706496136588202304813301417107104129861947193533192576302043541832589749784014811293648942826875299732414601481237431105439089448076625491400564048235478611026063617744795440583265868984546216888172984870249098305476749552466231705839646400152438549041967549901753839135927394609893339901838784561569348269133846560146895917533660619676381151364050144610597721519117887343452564591732372723719967808357512207301072606305926285348639527016698864765780966134506533806316990740575928630382161714354618266131505625270704159930589596589848977759948132421861955875181199056174380127201301692923359269891208456843196971351276320829240761560056746948538053930236616028655257535522074400638566148623462703305510160953939698432420565670261914322299344461705142773102704293306930808993150761111005666341471983676044084733171173533368556655314522682591760109284497670925087054497533623624288440527047550590090799844395552644945100656020885860893233376386803620438720259137427348471845076110273694480581069827076353619846443783256396062677321998873807444343534912472645542164703744038590398325443292358353023990927563296691688509283204021686779616809722398765657115630024933620537934063161697352628875188630083792971990328164019036623267871123377533294334080648387353846612854975496423007268513394822716660365291979734209093524983781338948757392492548201180940505446620984559353891309734578843239011676482609630203402974385914168608710511733832261199593250134499676833704837675426335631506282896735864530259941390809781051865254850512740469893524833015791605837995520083235176764272815682755505473975850432468891624522291505734918832621401769716289745589957092821577822597779820393337721195920805556564164670692384701206070987567969369521010085402435687516034079287518278939313708866987810290253599265277319311428750255991563310736524099031498030529877700095840868035713166496199458756159849014126516314383933369729365092967977150979659978944844425105866908022772463158949010145846639148853612450401695833300439085183498452739358299109325214858210599097871442345402155089168775712428129577772183005014536828476302210213280563003550469587027903865047812005310605447710565277187682275310000068395865144534675096349332489807778932514272184226721843361320568093767111175830589228531777862767385031843379972067747749573910527591370580896574608873047310019080016260807057228763558952891426810942741140994602798477902925951669661472311439613562885764748814820587055800557189806035976666385122342212446762629098234500824934981917390779255455484898489271695662320795841065136069531289199564305861379256861489086577786616676291663702944143462627071619262741681693670492595905504889207350701703647201132286755167465381396666071618189715679065995598707849056464903287548294543577928721640370833682519307946559970390915660311126727172508057742412357012694757436844136127139492754006391922982973511556266171221594052734876246224669400097518392674873199454433347808027882900196925439566665444054415314591862380125211155854542443058953012570703798103546660398292742894346514537288834595121802537877361594816397078967120821898783216692287843227239140475694257079926191785892618867662421370533131772249117306475072574547910061791170405246509859736031243869116203281590743038792771297308518214264105566653080748650078022577802246989044943296958030966877646234166659808390929940355050790274826410078647243077693069655302771096617831041928155630782257516383549351798893791779593312692441353738907411160295053963272339126474243443082307900020288114032585041529218446778707718902755533295515279795093137767195100565631543031763243103016122142002837454561835803470029950009863782945822443091059787011421055811872824072304051783765850927741586773366055651694752474134655271996525392858654301941157737629429965995928746008131962120787861681124212688998265769581823154173654348415101910678881453604516292124186700869094941941639488275384923621357466409431305128681335126074810515503286064843205856280902138624952764619025703770161004102922079605896756645994849080633615881671448241443235081985136613539554998859572416362977856816999969126112324930408416148507745904181753559816183737291547678756826038446766274157667801441960401993522624648607604104121365154919094535333530617533574343031860449734036717018720990020892977949774841612933016312319455434792349662460226263674233852663241678685526541138016308574728665463099106280598700732744331855885766723678579622841891576224082468796855799395764975657941258382937610213910529550852395715338371692086010350414466250020259747217336045571479099931628647352484433371010475732650525941831396352623020688323080407695764695378644498660116126576566498036860104715848377930158355639449858731909949393218358252636639349754717591560852843102586131884405942331635569044172640056224107668784246178497381472991644334627492950740051044279488316003620071322219680991607914747193776615583780379285485207465974804767952989826626322818729285460019729852104840221752733297341262333484876830309122364926063764712789186526556635838419736554808708715012274635393895117732585507738305220352358887471856461410516610576342623984641907374749828876595969405569567481243614262200819108761380017845975275963368858583671600879900931770171561918063253142743195148902408291205510426325311699167378662518403966118411364248812941760418660165298563984231596436220785355698041931023679363276958290383822488430851531422852310399261605984666874570713242943780302055809703929136512300644146400447148461612718773657693227804190677496846049606713568661058455388740073531484854318026800903559781688175552464827861998346868189898405115620662490402731162254288312098562697232906163360876148733977443103417353199476245653895014831189305925735445301644815119830830165247306898806427116485381178285636023947485389967447737424009190523072367195533681054695255571458748401984672308387974549031549376349996846295127725255047652562899217949094797471653494890736810674579892067147985127605768021938109355248973672762759434192183495203116537922140515365801367209325137175742186207406319288822177529940329852904842506973990409680593751735227336561661811030907833921819910488684429628594876423685837353786184098451820698534563540361142865828058729788212362661299647705687553302762933153981903661076457253995978614608950334141759060525899486652345338620275608128040633315838177048830810227608430360923405316628226937588781616169401912025315420660537894761471538953831368560215145978715269510062857773714322568706295001569735817435794448047804591002770533370282898985852256573971878688833989715225895009386877739554309108136295324203883574633258646506651562505391949482491830757996021573713630898607850450808525782207719518064709684093486604637332395237042749702537330160095422057612146654305448352304086592732793679718378793125716753319536918330066708225576730666030334509655611116722654121088463665686171218991584169267654671119505753685456064135948334374952200676469615083133955583404625952299620378293743687165232940774704453028013856702739982225649371570049174079791000067966178995730538906918383073444001820122396251849979551456708982584470145981059204660534532847248416678565071582588129652690961810578896588177115920461127909030791909874582483214687004804405176694447708573775269072979870276913705388560340087909288243840277413276392757233482497197454047400815534749917965984808788909638278632057616741954778577567048678302049791244607804567208808397093969871006321720368014506929311606813544531557908233461741127990222193632258999149567009279034176658173984288245200122020152545673802185517392638593151242181770136517869783972827818302564243487137756151639607423447516340939356723730946964557993154817043938866023437213682671724274858893520970922938115394979575752478139777415712319400986318304744490056686474633572956967921333906106036978892227449743437743208512982553910958400889044719356236698299062103628547665099551555131754430319794065493809644064672809180892280048001178512487058029168182822491414312726242293870564069668658785868500556823970888673652272445753413259861457923337184940326401300315151992147808343760050563673660718963808132537262611214967538487946504168473797951363918760774634211476839593177485067371922857130424922128025760637107897715029687687590564695848444024680281078627988684363134804400274530701626796750002516741497410698453478285248341805563682294666297051504143574193819384235048718011840230865000770273107706080300191377111255354460986600011314030672306225541784002909626043837595888474047973269815484431712889005121877132160828893494400295225839846742942226417847340139997757237517844091015949983922366197079960844693508770153844099234353602358267750119695748140882550721026494169990269913859091760675332521852022052673328968532519181161421101744346258028299702666245766200088849812909761606359512276115010556775920711375591828532817320490490416016967567296478990976176604507203463744978471625189196954873541702830484279204763658614994357492555188797013526133582582047967906883418392004309341831294909126204047979179469873600516254806984901801718311259920910658795572943167778352539430552871427669856765035541469541212406967730422182643738834055184725443089923370516838628602496485895106331600828868221508036100690566981270537248295697880685950327305053044794126376131618776936885294354440915653041158806839093404649789024672837222249550447576809556511302484631334810483593295332997168703870650935526057256429771184030774751509236006832655744010558167286811204690265704408246117713603205562021729709718153384013581614811232904230911679774637835570840174787627182865327569769446765180809977915873695573372370262781926197819267140127926205738971702522847128843847305191292614204998405402712600788532210734488281533568279888581693993186735136417924643563178542479811586494988484479902141997473289642152512209425939321654224715090095137036089747330178163951359350619666202609419692770219111928823268165123638008905789100806830708971452051715706204563954148637737165509302188100009026722082594768783776787231729209254565804633626343974678926284737440585748654195471126016270069028016002325961330923064327084140390374699626378192606028726489556360662350234507025412854156133869106081837197677154236607089252793669577896592692345947606159147561470731048272350475738090777484353515557389821315929481964970340146021850937700272991544554911478422043180447026176744613980253916965536991322199284021843689016196826947681626034785353742124552825773855623186741091511654433876548990621948960438126716018984621740209865024118603330667304338160364092002208238020381967750310340846914811292932087142636984016503552213824126075856219715741956116396756020528478081828216566871189803567243572409952585342162277147541021755175947938448036343016300565225968224551573833424369788801945113658144036653369943347806720485705177044475774769302531919517384949268975376747413106723601734052384044704137106290934103097331902376236216093934585846129933042540449311452907315869320801338508038046648949928118635645007179224232148020018350372264907149960539715129498082368979125920242645074828915833988707478578992358623470096441727768759051508187335202192375540916496875275744872197014898099066621852030064753388588575312989408509873766332163986944977645265169817251026405521687853049250795497369387904065421609176449920430125851641070893511683196562292266859649616785288194602808648295519827480482527262321327677820358266087880822447154366428800519749232668091195643112664367939662119413513375619081123527734645856066662495743273352183519348004625326471837909097289008968717534931605338589897572775825442373724532713105271861862370255778734769492130162763773532424364771558422464846063446471097255447069181618501536451587819782286051229031022716247390628539866225851068019808493465843485837202791218067547635295647907156502508146785008278719552962020737294191771347836056305958163157360549102251379966729159595607953870650504140398327419282281664368622835241341839809195628361516637176951927899536751670706477546163503280798372705575060742383103897443299526909151990887086613898605862121960042610799823098581110276788879369060297300512883966348521029681083676161046422292536105405821472752336355700503567034482948270556174016277174419448717750771729705589864708479313493697376511489853896246878696345102120734210619552535206365410620790265005294452399246552433840233448664488467328959266415476298800519951617386267894073007284873740429435287222390977880139194967105798868665642344057840319506123141236232818064974748590616106443152518677718898321528171193327528549089698236923386121515454284314307722417393711248448091250851947424702680927228316030917515665266741558008977515494928481914359477347391758218645197108604534389997419871396744774317256896702272793399118355694131846945203909704195549691033134825178568548387364013438985874287827730070819090415745374133348690551648643060176606827391464837439171345449343025833906030204249535716149343491083252373891798398270271085590328710982383221784180002945951042121968937682413757333835275898421615791691283354381702076652240159825732348257940894430546716273998556604676931875335597031998249804929862964110674871111880918435376227600452990422712518872217673124882161157320742988197016581297165528053857819145137712514740980846412102985229095680571888114817272147411178494488462909776651932604964096314082263195532810276999506081013086319328523019145448322437238390779086037306276248210516507870114779708995661129567045579599189427625738152428582478118248981068717140792535642266024122317304933659949049520298422559013658738765463354084794586243304447927882903285189163668547542992306505082502831459068739407597014086404700223920104918210032893609777104263715486430108260736504758436894083563505287466861916004409593292835799513704171971711287677643998718922248844425954396227128099216887306170436450838694760729425810400675616312316166992683342434661734315355952342758498452303945046430711893410052246314725658539981061862113551203861154126299598346953917023788805387556365357829788260279344916738874412223910796469696964862125524660054281786207257619071421965215854766924224965229534839514803403976610358352412149719350367882396911077393994294017748414747126915932736058446226524076956678123977704750557518160698672147446749736350758942091964112193821318645314862338371246411513720290110767816952939994664148981563499299004270938846404450426123527032816610361305455994427873758008967984134337564224757861040123160920570456133808269868943505951747288477671087778660604550134333038053258633550083975205316056279359699065018770299453670417957724700692966515884474087127008361795326151063658386943202792362166683258118241468389663586420870384969071602583111737160718130038953509758076762937498028616231235832439936322409264518531236670336994288426288811717680133924483506514087197677398054387472540257305315446167285383021296151157511486613185305505782822055238005362543127263916860876620743922698045698733179142150704057982618066981351616163788328756972435886951934370043979471958235769485138812727531573160181109024418803234038621994358752216352651909564335738369736919010074127039612242940742716776771993077250167283190197857906118303690645735397216282238154039341505303880908389661627048397489303661379959981355711994299897629576913584988251756571246339804824307119995687976758898237107046824335490103533224530194801362378559283297331496067456002157371143473428866869330398812989392510520553998858283181706187971974864503676649159972843198365267793727267812075849623472178775915487092090381777288547076671074633179143703774913388869934387711814685836522220486768573345000547280637888967281673227472150618320498199845097646322906934657407801973586007026769459066063722015093063153393430628138472253574069326110115861636662130427733365929424585016409805384130160840457931861076183661047109734864171211625029442808621647750180758093239453849650996450208790979294989780849134171092078688622915436941309218114043884389920314710602683383560785765162942443573457910650776284051568847810401809522191352865293044528500046395666063223903812051347668746980594378365305749350609368550758766860482098463032898508328230972349469906555830721142849644642563709149388118185575095653077924528909415419247061080194153568524305352834317108387653905140319973062634450047763350611085279712192786251810531402177180494732378308346623626430975248256830358335043189957547552217754062417470909528378585765558114386392117455618212357512584429287418255446826988514622149999410268112232361215598206550634101336370367340832007694271020395391577225429469250743544662032084603923979388646712774711826578949622390700736264434958128570205923617217443464520989786941283145727717082337946248224949100785086777421379853061597602719887059661124253191131425269120216510231916328406470833100455653721551857686043639344060261750953911398396918377775439051785092749269727470055294976695734209463074157226884499542516475428993441032045471223792482100891792232348908008748008824969164970178972480908595023643782431877864425803786470744459662329941630666502821425951411616004039976093664134580081847077422894441434791314341910201009717738731274700318865681536855670990888910009439311772100478880886595756566677298079091141255453724110214160172816350288002376963645243304864346498933258677616323360649470841623427475265235787324524262510351489505488270371470098659344491130255817899816053358290982217123673218907009309541559671419728161785244369947178507941990373268407449015284655177438782874514764836141872764882956957131110278004512433481852313156014404986754779851255331874891218111897078109785669829035657858435817749991955701964731661441079813544294688214878653617209531307969385119947090982548536664011565429824760335401672518386378797479581196733296837411110015098359788385036631290643845376996427405405063826088976901500351394866866094054789932750873777218112911107083735892785526325208543647365578623999431232361235592484354247754240669419959189091142915580003989396678056383459804789211160003026675482246884382666551282351772934336597852900407242258786873070988771436466951379674191660468750834640770906894191952931912886493221027267336969599782873310949677248628410364422536364483295266169155356001564737514347609610820099466213989559367839728200682785459764545750536623928924989897024049364488972876715622380017483859401939010772178003833193805558380370740787233277468927870119744465186007639039569622982854289125243291998996952346360115015528094569676117368263349000211812437842755091489063757586678934351910365803832321249500130412970045666540642027497130252840833108944130339447416136026292737101931013250081977562115187721565609827438656572800312714551863284980850025946657941259072560010441547513534963159108759527586596228104783396727265985098050420397435002094645481689941255251283254212618325660518065322504661424553626473715971418486230207213256244554418746309442104785382241273386364870446373766020883991035508324002984293329560556767128874215006974475458264470179366877748799066860070370371857060863996448010651392433584825820033430526957774913028506747295766286883408127751866706507712894189818061587383621641778966768352784852903659826015518326138000118929858218252126622884362590033882935208684660053102538419030994702139565378728119925705999969523340839996032858705790999768563369006206163815685148797564327017022713556535506647150611618420658870505933457284978862432786920307961582034167847991805490014315431938892740343167671144497283227840338802814345325443443462450418170210096292933139624775779231728110315886763406308202872308867536684059153165597152704646890814403052308632129634353554760528893521587981420995747852676850754836502945002287797971342014686078898360643997463521399626810708299231132733951062864667491767251153820508091220371546955616874478554379615516161236262038869030852803691625921295773948806558627533374316529055993433210750992114461411731247045192641603208548116556133359719104828058881019113463799187829796578957284766177163846303807053096325024594160274357206369840059739778121706420248441606106002422695495077554822516512628496940973868158789055790523656647831573966569001859325152268998652570837209382798054341980013625533200456772859855525017563060223302228419438720481581613840796859247932720544779287743815165883047044476212522348471928717696350109534020823164412968510854116368202376617881936575192502901924023399772457078291317670693070398597586689429298370189648983619253724266885896575898313145276532500884112866250555348489268950253684130015054056383339909773794872000662145843016882669983819014966300201369335094876709152389628242682694496622924504739955002012116630766773722970506334175299146271538993300212368210696250601277932113760946321927117971069970722508860672206795266385333755138045351207771143974502767054083884659768840850555900960106550010740740928599088692449742152976586759720905871886460592745329727231833193095947929232004434309902131519771391182910697127103493854215920804041687456146790148191656534412787392058589627063213200975527814024636509318517132205353384077882612429921493248338874817054040476513555157667023676499598680938582234266197565416553970973132068389504115283512373232955436758645116200242152679759597989866373768429149638708848516260438716664720151136189876824094860279438727070731904929898104138379293171575894003205259411485746878067186307505868052065416618714288360453121678825784424102650867307649397721268947396673996905070938036115148352098149981325735515609129535225610896534146387419143968680316071658169447206351335264122785063405136107272523129527767963085967220675644758736735415966763502108156522491343671125992022210469595904792094120008818797827009183641850134994330551208017827216771016161344054303638141740307624011686601005293509821860326073060317522613821695694307562292803905548172306613283870590866439563217950779580308799515691103807218193802929529827465240545709427010694149518307929976646127755860533605827873124335162545108267150265133135568418122633348614992239749901047331776247470200079738692834149736703309857327882031149807534965396729747544666987831771793366311734281263978212927890303713778151768139499925457501769530396634575667161342048884017708242106385961116846824697713890722257471634720683649532153295205730239917033373193347700854026458727617450514951480455789455033349794132394313767649713930956642216552864259663526032013738534361566708896313841530284027670889613586886461470035557986420808484586046898993286401936403382657494336255630301559600791275064417459714604477061115441034781875489025511644462978437177447980683687302287130645309425681826906720750284053324470092918126133412708887844246655916601268288087683307312970116922291072072999460046353387578974853809502193802518706162192995270416655089143252655380043694066796293914314635908589015043744739848533346427049455886250927773680862254827864969966528442708937662334791660903192415236978781300144416377151621934468255409844622823788070405693119230239694696290933837869017707724419235888818213686388666593803451694266835128588741965303281822228537499695052514818945473728106899498658656570683249251144558875628922046934338005303617189022961884760783587811936060578801144575515081719466204628015004823940145795131663716142344397655376066325186882686869196383579099678408725379867279902755769149200222911931158036074824283172488966551181224810903658109646407450655546054007761691918693863576172543117709067366197020458447649966061652409140066002616382621253152948521892337367449877463445684806962098893329128784898700635259075583105098625868946843649703381115228740948919407847349140938657294114157164534873324773864146065820246775602482899666023998334327853504909018469253315529898051330951886821909327211629340495482674748225232168005934108221810605886240725720036332451380101562868135196588548585562676447159526279784593720376866115861711224580609813903415095055093246157030011798208662866647662995076121367630934531520876835106975712651552931681551174013244284321329525937313651107452480831227735363758068150590214200913464163658027136684155911160919177578754385620685701728462762965037117885523062161923871826611359931837241489002844126940219315979436204953251752287527232945537457957613274825255900114365917833720598843635995860852822803734619960788255240061034104510247344607154342144180238782531726333741498300709170666144748687087189226063005798412741988163523619791006471689564444608578840222290630625978748406701705860135140064612550730376496192490689831939261659363771034509461959296106211452626786984829682312947256313784227551670465637350557884435637127583643443867828755342543751811927536006509970292886469837186115944914931013395195551978554691593934354547999442549916495710926475315670023324872576684034200991877759290126539362442821245206078522561581725367788385631609646248747658888273166410397103912989392232654163063424985034824555663825359152223316567525795457154075151845122779728407126509650560277954892208902353416181064863938201978486860274488737128384419365014327427486024226452731929932064129194892777011692908609276834077499481362878522563200746635242305494161489774833363957691200317509322367241132077368886176855739040308133913417223597082747086930386913427031381778999370433447494942262064443616871551354149726309744512405032302996500398294876854469477980387614933982114317946270991028943217814264483834546463300746457485848592590033082465049159610293011862298066411424702682610368424210893995827762961104129950785659505641236169379296008622458135046010421492162640244634633836665386867958006821963211302638746681120101221768614488511361647177348071325694962758108022475851722525005464651581797720520775253433436904025089445474713140285684254882370888315005872544253579863839372310476174784640956737255255063419091796652913079283062573966586870168723834088325164289376925956651658984795664908153121661158341752944921264201404964612327466606315734658362981766836756327635854640864510324234024899756885663667031267912818757207516650838869102093871211099135216692527310258364068767057911856113611121894252891080796109263689571776706377435678335815117376923764867123704689747623834593404191380051153314334869607729031633441350354524175551718896832060148061734377261816560412899498580203200033929535378687580984191498855142958313604086228594148458031627873607473769310469511507685656557481299204985085355642818902790839642018563223778844728022162539141346790946554647905674060337095972184418577442818066799730562960956167732741593004324770754989901535894839352292210604486919756459865204972039481689152307254397313793135635546593632717473026393109863220787732328970208144554082030911267424183938892995390494717328227336972766822607762618546107321877469800765842055141789248711313654638543116345517425332642924440335328607274671776767992016346260243443698831784406066159842699669473432219025856435323262620088996710746483920243763563183348087450830806277631323623207496961852890635725486805797552411403460691113893494937320032303041869615662257606532601012512956172566229980374488422435384160538225998012686490792726639148795874043408744344181576146030721273538778788029267296444369224021116106404121713552108956943256966298284630702508007520568102669846402555349995790544848219955007107171318555167065137290960981235748035807728909758209230332713763850879833022929732077679684436224723722744996003218516577908528678552516668630306649596224963721439053031763761120521723425363234707898964309210699695744806131523777550200568905783488965590114460102067205315350341028871044662253158956483413136276591511154212259677032689510490466902483711570359157696936074430263484613231599284323898856143870185362826827607956339068879353642352549705783349447690905322605734341986631854080057973348010654736654528150662044617570420249562422625765080236833071417067933493558075508470765244668204652215684770567178821269846577040570175791425944318945395236777702593965479404429540786721070717634500066669402598547479289179870869333982503879661018842804349988081906853011837905899710311468448602654025628669294606175810595090830686396013247208089195448178665056576634342565724193057554604701991746059864734145100599402569548585561563235793615040009134933351230382872579366947281108073985331849999970517885969952830871341512092586362746096144607651046361855848787625788873307093423195982073642369697846194428366277207719222494530912709263963891150657110486859087148928633259948457425656931160949834798376753299884191333414635694319010546755608578764992539966179826783352849885944315477303349048059790668956129459777072962819876855627014464480928844043865093522561269110823234266465036776760683467203531403409540895283517343249833764601275585910881377503843040338357625308408295798418321540224192175700443504540875620159103454044044580187254318076013851145279406390833120680262102661446274189860358198101251280361499854662596596907786770421107242236839237460109298640658870988364484634710614643052680394207290182589879628996538795424555963082836517495082828622535879729480863464608398779886772844148904481783843280915051250073143553398578851967827379036187105252955618033905257976376419886287277764976530270287775310055196265345104314081083417961152906828241715974691769326240184779081025104253362267750116727577962459248660846568810904802167334302361331560006217817565527451626470862665775246804940463299921494571252506020451235144718842801837565418900086805462153741096316500637412021145798435462855141343688701620142811887349620556991290575343752207429668758917638388298199141251758300111843107511454422465479061238093128815816455025417467295114273053818582525619989259803017226551012359240420147021629679625391091205347954450020167264026566251603060653972922684678700890070507863875384787201616499655510380955958737489141074406487132847860220709093875661863609600296739035908767011210237350381490298076924368313456689365947863285135170764893040247634790705436625667800638126203488790397425763088540524513883255794641503321167009262914745056397017236904945157274530243803514182566074912150601354486186175043059149806866377261747176837140816619752460200540649200761076940721176342757222452781699977655392219789130055809785863050517415322954929115401763621544987637879369369795478360122387162312027490839730437233008235018288093016440597346177548511683321675975518825841569206546349681281196957643412743746262121790734419932384924010402295262149973969148888958116087121010957981510512876046442023239224562123353365608261293274371816443577664465674311571776258785259030848353279111262879759162347822512443342707861667857967393997633826999839311333039080605485556816298943363324493198237367886385982269899059605814538604333627210074512862879298008898556095099929868473425285615176534920673027468830984571147441238505576234801810934676274894193078182399092052024641864231476316713077515800801901977948238371988548903117004051691451491490168013205532486039317364873848339894561181014643303952229034422214843003460837157731589598744381459233691539536817433693680462572014151793116532142546651017607106291737362015387014342426166278264923066604495253741619546005913325390862497851473775037301526894875166983129079379536616317506618448424003453810655884536323656029914025160082530251747460107676785611776976055385104381101697541000576927744052741174566222856293456568273445470414865032129745290521470901188788839740245052662105390208901994564863602679406367641131417549168942503141380529974215502047944949949194461445307631444850821652600790508182382859933175507607762769616483451483159227658607735790534221611690395223273259750121476991531741273600467510196055305757451028009209661137383688810512918125342801135005571485714411540256429493808254935409599577482729662899137375286883300308416717983339965035366748559995857253137706880305929661175625820268911840650611940003209658928909547747142151426535689492179073337823422073658879332202530824571091446661693909403159915800694377433923473919284776990684362441698658811774424225875588475023973433886743555140251009930882313825550942496797021147194834520373019143393071146641416217798090937832101347688346706050139204809702762538749933459300454221644108310759751351955865724294191163674327230603929135182815909433492192237028340957686758248155736530898705237386359090854534874005945652459219855165109715481542967779714911575275264377755507038865692677167478461058607755996184085684707547849468835795451004094056825469257115157697514448242174590089836408812743371101299462168138682492631234354680719333434496865027397057125899078689113306197797921437516983992010237782493335581078555809380011857417299786180772136713502023443101880767767173650501273793862454307665594151666187013722564741613096296306493990446081546138116864813190941612589763443891158419581037076901495048361662654655584715890011391596246090308090187096012356494763171775812511921165567698777021519611459077970672042241844296108457429540938848272886933625552328624707270161406673131124152964684921731043022612938108600013456166834831986888874949914575327037103032540769602816263026005028211814054044001949737739188152344277160728621339113490870531005673091793012349731927493741158186761937049520812675415057047347076753449128200940100533164501554587647115859219071861331829166763093526472141090688812636682838739666697332438194605477434218839429057845608119652186272092030541252175179904690684912051365302197413680581036628692289906228316002708161990241189875465461119162965553351092941510014972531753045176506424843028254018405858443488772952901346500076981730732482210636576996031013350603748300943794719474004549364765828694867709528827204946313337423728046729500416018305627123218577927671577964064379606575118657404377839008731893656892527724258983658769009410050594805674528081458165266739967875061596235151600688368112016565409142031095415081170482234016207990116158096158254373227921375007292934868654859492900861694935093331831695698144446191772448687280847095941533910862010903921906482475713211946968793741259428523448453838321688649812466534373856771341600141996463185403548094860171388250790060233110711637219675425614287524536070819321643055866830641201083293588627935069437722863363822016408808061687522716189666382592835413960332542076183348892030614550691628115082358794895982002131421635649982154016710392569911113375757306494275263091786890898534902589758320900818253049890869155747702705217356724910480196991875921218603423616105277736960114141071535232480117387711650382953657928989528007518916981149484290733157128669529140686833710974275086778250397103070029846925864270265028379850541233978473928944099360316446668728698649876728316677256663398675878191550514040175648721309503720159124170934243032911350126553488852989080862807568691998146104167531796995024231218030461334796608341562475129366159198764767990231925853748727755727670885841733585058321887116593436043741140288143228583894511516187972492664048150715370218560887458934380626538073923925764456104662977184019578482711308051087572170819352956488856299064296176327650491331840934363080758604518493780195064034846444580315755574211161103628084344809357172179362251918747236989922445233341860198116664970627810419962449205744339126738616017751384564458384995962750215811021167980182729898362781983497534789399045224547231177442142142035518620895750726156662121314772838969226479822896087769054026022208989690210521747352130476148225161017538867818075783376603543628474130684213992375336951254882195770778056728738088626912083073116432020070099642521352214074336050744430118661847432580984284039279870280417368869409309971863805644725156854395819441099199557880421158810488809938698277188658825721268030970147055801236719320663934306038740659375367469595768323131078697024738977982733595020499894298167500961379388780327693482689964080454127215093648747413117838201162258887690514943517667225981232369954565990809063835945683443276725690221220760702096500423917748304204901335252530720185025532340899425127670071039844406078410340188240998957007007561458415040656060437819971387128697709025686445412449199917821236348564517601235433154663058534010215222347049671916862535666641714880687463610127922800431324006431068698880878268500650246657922957156854312274798277648004239034202319562873376092123029353133715784561327392473370915090071405509950311891323075242956268122693027822999328590774104770516356611233891379202748589741249783832738947569029498593285971604183794571935261821828759867808827776743151942506360834757413076782305012552910955766651974096470815529087167514366247232383150267504469234324601808138628078780113181149655342617106013070083051576486795021597931144206578240303595912077455546906738920403722708304221982232858223668860781187888677449688040327145503724085937731494315893294750321789176560223117203908882043417174022751344628379913146021128262470579334949415270062185179679161662641428105179719725297958994624033540193849573588720506878260592025756839762540999932736370451885748666248592202720480314819648531745598672083809418661001927557573892984112545956730372772741553223042104572614242451758443142353624995805488390814998454354515019615339949015365321664798992702191422906741149163221653720575593224192524138064364588026809086573091176312400795710291091309389183450041559128151582532152740288916304496868555974333583766379100748711782085360101497071015921987390984216703338651293907550172570034998648392130763887982461073683504820705989595633921299670286149813824814735428619072094837026559889459769511381208303908914959726412661066089298711982810320101136070538953051361325941837872733093746517020504354600037686953013011824123449354222672170748408810778359894182839885657583068794099118586998549015243930517969479112298245326378737951525703307566849710568920307218054895449034862815319618587102231759942625709032725524377478092986468929330000091619926516814821653107846626822017918354974845388356344481679814992949810409164906296156034740050675828132347029660285428396056450335401745579838143379961337584580356492264224897846410337403126104381652670029171651332515890507749679943872852711726468454875954288450057012717763787486042359936173037346018474970659497598368454664946132651012307460465399868958729021026786118300806878639825878057568089696056472578777133041581392723816056047193939538732414660549099837283925668529581614452614573598325547829057684262567137777678626061630498515783111682030289640897541137199333119531318447322902696678755423625094001234109669869311108030949227974006693819115231723073854018906236457482551607106836245665858239888820002884579026370715118621950399548635970411434684080820594406549451992624414229311159347066838070428139209638053337348824472654676616822847791563821176985927127894369218671181012674869557165176002107334320926111845633231150124481692017901973069559729709479114797700782772325212381161493276012013926573528530192943927171824584427023672605369082209877114026480459501843118119791633943632856542209204851258407108737971830241012914555100694746816121475046646125875996096399272896009830301502231138005683561277157816583481499881833650935430627969723187556369055582349044601917426643018492287744787718064477903788642390036236220359956467443229614653818128508034441412498641365556997515052034195496097404258242533782233737919207188002473530755313648526773053891978494967699077854113669918030387621254466324830347656925674133425365761281713774724567972801294605132489980168745928860775620567112901086007182323775557067251804059939202254723119305630181520516564181431717655600913766890241230349736515542812535567251149410811857047652846092407556805428576290321015761607369281158007156296115719480742722139851181391460767833081907478750219890289691651356639960916159243643899067110161988548638953296449086656302366832173927398675060843757509179254731925396025181549757212474681068884862755910444369141956136251893698325349847379803315035042322620675526646361097797587225704956723121763153211212850737303042775305636576688062646909662578602128346132129193744145738832174722665298698590616068850331289641282985303768202474604571780069542255879273579918764994921464771741156404029952671189416447568925695876283296809346385919520398025638798453929055548552426248728224725374265059924541093101636913326230695449198183757455446788958030257442913500284888698537131503856211642276412398568704752613014383870926466976682141069615506080198198396874933139907369130663202253827607756564039317997566769544942264850124417913409128004906900267302976323574536899805934432360687483214639680847615514545736429022780096876124683104842377180826137384533450461495715559972038630577649483525617874940296606417409923529050379461912594977912639416374515679807152335656732014813860869698164423075219980119624314891175132728960880406473088794616446878060927086601101548057616083720530859227187026665818267243116573763381532122955901355984137674001199359204820205476991155027401256032997557806106105099052090482095629204672018357357044535137512549802297067756377136048600308208576809891866684090120485348946529006416261343986602737952229990809520050738516212325997447427023459632572676760733711480847968013190505053473368643874268362023512178090588262054193733662391532971351856251777387136185457190481312456842267209309637955189607700457684923734106339017276349356279876208786240556339288285856958043518629701797859661396589008908909241197296532650284183524422345279621049309431930213385870388462046229113534677460208792005210207893230418800072062057961145450454097468181330566892056341098953178253115631827138472956170674445897969796821560899361836366238862827675134917499345582995028418371818042386070734698538116823353824781657024381101445579083427856508029349595096767371272556234038433032423239777515922941001087835937410914726947054275857050605639381910325257659584030021678214226787038881767895740821101138159124951852769422321896327455443701222971711921106185178003820264645542342150828576284798432694035275893276179858815600347886796653145586637294316043697423910473399019949816568553653612668394121866168538716971776446496015968540673552905985430431591552213646077763300361542367290277766379139772792617517190684685338429175433106009048426284558111691644818081899787502512215413891639145257566519672542306719866176620059275110810672211010667594717229378659830129007333351113276055657827610741433721493719560963952806585980253193088335154331414003165747121731099118193680212644698611624797966781330750192973889343658990911933208690709456965724498304771154590837909955408361759836764088780852907862798089408858455007514264219095109672935608122392115350499788456745217953001334429446139038309701305164113514841559977909481722920166398099484711834406369217944551640817988251895667745843960396717592352145447732856531661861546408229963929465352092682793367230708654117548688292172148263642339718709398165235338533551853292505806363737207182871792914136031845358640703214545823607651945229181763845833403196941354002927291522866346281748461003420470461257415393852396968594463552311305790176170041244622725342017390279461550967172868739313072286444959579920058889255899887473900089475280433309878125606163162882181121768289770586384276689010883141786002276870519635438029221263169911534486050037848366997476523735528509749403139747629184865318344739585929052768780459915363381744059693270396637318889741003135739011234829571796779776614834898751107614416474258089738314269136416162560758755268429864328916602130637417512776356480844109266759881969205261753161718393683905674302566319051143368127963469328802270481333429612023702959126941774966428106464791144872715715921919357837194659044371855609076443106669636461365021809980332443860486104015788658087028961341144510601868966316829302170433512546394423471766712554058539092187802124673933056567192388035842631601605102450372370846979026945703842096700504563107421871174584865936260473264846257807331859984114881773705702879788458301252883068088937315247298854801643985747995304247087571047751028567201603011624697672693199950833609562766149138644272508316297430509102184228197409405534076794300761718744531895644212994253631515435419513368446868022014634026043127714314247733739530023074870658171541853254860096846662599442363441333415260477517589516228096317363748944163439178493836878273249202714277696296746402402595731208914449977357497652253947868949947603558148619182730497684318091009358770854704700957197405891870144522716289497067620163196729208947672937778413137983724218930147881113399307179432288907243844486613112098934929598401380396483794896642085103258877664941068141733491058359027288244922043910442573821351136526243053055246507615032910769472083984285507369710786189574655391913403537314119475161221013485340868697813519558923232733064549138304188990353447747960071365355221848463515641812139871073542881260102806481368732538067770566784825021056781276362321145887905605776403759075171934819741856658448180352050889408467962420796107812873835223791384224682233446120285798535217944730983473988530418070184343919895798453434911371682958384577050111925303079135897942278293986127871155960348628937015861972330498385565190044892964975907977303705979041907208631317194715796872536959483275550532512154440011127014160056118705501866942761704519460571816719791742094191672079826405738336706299889927207292191222131210199584826047583225425372599915472875838015195457829233250978924724903450664912188220025267201674254380993024957609236699704022411643693806270963194364529476223130605116831300223458307829746828354662190572576069915074751171711591580495224753338308562624393184243005076149120056298913241151100370344066542559022775344098009520338603086725768835360052599435342788768535613528904548299456188441955954086151332583063591018147151763952141318908199936573289988593325782564857691182596249630624431333496357111460755540760193609205134937305593506326513200542964646970467812468312293518528543981989079255085665502476396789351163804682725741157147115681907189685485221660537849515689438373078649945289195192668147028551445411139046644757299507273083638147370226210179205334925209226454465045337162128828945110538721411677429198170642520813979266746565089351741585615757067061757369360188934728711803214055424293831223024478789864879009622368324417455592593488035350922665640371259052534775128209395985911989862438360109520495964491048676565439237344749584107540361788073906431089361507176871919240867641380225294982077257338561675289390897363250680342468638479630686263282859039040520541102155434825493055970778931731554795874978957100033859132593621689209721585710509202136437197184768662054074683142267275029798062760694359809445552900556355500479279373302386815129290112977101947481803058958110411974852834116075025295724630977425353307662624243633918431300818503255199096757974722140876330616873046983850404001519996375449738318049082358702750651430856517391696218079119136281433536539456091329499238400613021932569286190572963452698008210699922545289916359803489303776670874627111939226941827792022742465122100998268481114542612885439027564553317147096642885679911481322471316148332439818023237089077017966678500139298831094003109924121241145438471980063675437824697893831372120633953484060936398657933677874994019613200763331510631573154061024367066670526711594735054099977331569363520048283368893979549510059725323175059913127442051194913901562697155705762193377679757949012394341818784609795770442351998983840597071709225086786484211535296511225089671909563272255094358110388502820029677867834464445321816908731475921952253920252883661150843549744857046274243249561514387819086668435923900194101389307883276382998878615685253539084338561633346075538831276733017686604680947891475614006805570797947254964505418498730998873331124972950780201073500740235741518808431789587618147639874020852764800145080584794365292681665185798143562901943220862428997398839887911234102085621987959523188140204601071227986729624261534531898414067816354930431062231833759695434723734072895417546401370154181643253712095852350598752055159056197695510176878794792899952390247951888365429141924209992237816904666789859508735883692357830854696900518537334233885182895393631647636336775438785895051095379328852686824078709539005288478599782348476943664466942978744425298582108406407421592262708962656445026296042976629910544281118138264017910517357694365485817511159448180676052525976143218352633877557883057388945945021642967582402465756628832719827547361283837266504252244103253969730145654188347260330978552483933417362513782083065620414167345670261096758615459045321527829656734861030539476431972727989014466897895513935089307723412965748891683916108082832593207155049226127643700168500637456338557006171461906028292663238314984390180037028714943044676210384835596202066184429544239200687862732190767133059503489951172925397263841316599453360592107116082252388559996234599664482178373140589191423614818294158803273521622284373228240432487363112809837478265220468761103600829436080655060492671074757975005001904383717029655168188125756605393403128991397396388881767696827249299876230390510035119985388019162332462944298401482299704891213199408607142218092650578158677688228811128331457079166625570580279625546743850763710873230179536512397637477501999710358555366731004872091066837565551632936334135206756519938528544298531807269054526539929988910436102359042624293071606046388759886361898897956046111573021228941530302410740926084067166137012035667731161869750175509337212458257797666038560920825869863500429926117883198110339417402522513577030446679222867802845029881809981882885752659733605281145526683687858165808238052375263715253204693948490258463588604656987902717465275432938259501620715640992779277552157350704730162441180587872623731681697998877162702150618563595518244111766621140360118568132800998234872668706925749876006046372788125339736159860968740192433860858198114752242327972056838775170599077810187529257156959614174717903961947559945325815274718190008699212779772885680024251422915788192792291177374555692221668743189754075241235369520617209981093037293567731619687095885365937244340386757410051902480951190119235693578272593113072657003681508287282687104427962118556734988730264136005123163695908691077802109942723587948155538134816362963923884118783879927832428835831637341144114041333783339920147861244789823819834341866639261096082922816732707239311643025299467657199825830166842876042262318518859843070564488072401022774498099346664406593113240952635553086611756208281256879573252536236083063570530336897112537465801846308987368471494303493880693004135787601268682159932767304107599827706690654340416411814052983864277946854131798129939458352145348636554733208723894528907345985004715069824464107880021767254347151511070722040721183222396395587543253797871184438240019847316572939615168476573342902911115811471257982705324573988575753999336518295903179982933000823473561872221485458314771778728932065439127201135061677368913210123751760712357156062947352435211927929248434360001380616974848265636353033505897263933989149787940307259264601454001691366025602982753862890306639776454894441546037146985599151123590784527689130516158006614454344638787171820697588876064318506394636292842585602873668177315025690157387731497997058118047080031691253460139061402551142168091918979255529340384554368162301359462085981971943541594548047819648059834275837722785922493459194402726088677012017722389552092879489924860581109963788610586099979295887817597259625258332402229083729604846905490917869890502709341796297252511773252055134457674429585177581324878327201510719659615353714316944689229731026495111287939590828016061192587793660246704851117538928769824839729495128293559791026604165565753678422976105480004660489161165291710197271251501116038480201402972384747046953098249771361321673461244519544709143956414137351423834205824446574696825246789875036951502502043755431267507570651296395391583482228615375147011600589430002162873477618795781876665801059653596117329537746884119393436080343224094012317734876224068977930620593144856508811121232554679912270352350871806899309447962998415150349833263413588237212717808249721960900384521208350248685594681709968366017107673001104753149948906555162895858430117491788831011212095285066735462857897897031376048599099818987978564638109498826756038472096795346738779952475150056057775211011923852176179539392692046337787102692967425211787415360125079560470644542921770183495268704205612543145656703798900167929116305588057939159333996583104004170512724872101006194141552906333368743792160204155419142048391905940991714174583347166037809429580549557180828543795384634640325567681853299100222992444804697947989409961470088079796873739773659828534897443224710428304742474274668503442675638673238317029826126052265099089569947973425086774651973447747628133026871111510934740628197706551656597539806875098458648713757121793294230656255588563762319983549111249636740751142171081143105825668766003837932601347989028452297911812376644767172254162546594646307612808254769873420214719115584262821773420685190018340142190755384077386434146048841251579785255208817854449400012118592322338355775065573951803521007304322953202641054243629807126565395813795220147978357237693550587953811093548561008473526954285410561823280015503914866024267099561695916161702197161105336070434174878004211141639613820351793094247281155933519249754453424815196472751814938545908242945563902040216005227749770607727329098167254498984519858567428477137184149171682440863915150907218642563947000238997935977044114545487917849144497385561970382457330482999682522531648965190632484948949360750682879488754884871208647862282811174516883354727454995042860922542477520771223589100865337614041988568703463125790428517257310357694719556393846012859820069733929656331003008807640984827835624114914944099659918480720760316346880273291965345054919611725210516269014313987478675852102332071107694882647392098697670451219460067536341117671885451547167753257136458120842532015689900041140258829666018613735782646530495707514223342788977135118998731348511284848353275864549665670619998696387269263699832407536982194620351427324203442986499189684152412642931310544568990936858729641513332747635466790959226060986552853139927558491209757529888459666098087740869807129203026578381577657627248477802787018679953153765413407977043015412259866961961913954820210814106914339213015748766483148190249163598080185655827998790082788599156429512996583438273662145045776120256618009231005520057214741430824939342392570528934800300788252596264951374006149074898730091735874768294667834183876075995293623571131273523568953568760013816321499200925518572121048877492457944346290012275787866567044651409895662433638846379094711444662662110011895914519372979672713563717790907181434533648349543904479816080168496315608559262319647044143670287238770052921968167119173439580675603673936771448625213117652657052999926151666440832576897524868302709920737549175812459926001389467469121440687817623814902666694624817549646486212151356389948982438614710768574004690243843262816211556943147337278268615831826958342406211701522816707015586966471022148176134315966046593479908315733895212953383861283548491599774130585295426861388027132689318953802909611607922574410785680265809566172251854391078347829464027092711003413260899582041793845414729009607897838281764343589470921109222528798042520365688526435881949303073726985958830544953678183799186097352735458358663203029417641580611917142411475737092863916593646849639378498876162339382652322213673802656540891939097925740269475537729173564134609710338142716354178774669849388892682917340514535503953993983987958465100322688577507062484384651413117044911806425502338343693283718440843135934655453671395447308351413889820992588809465570629783311799217689399655636455690106402325765971703237416205058673802560678753009914808568436749837981329090622409113165815386835422770353677426817440507483104113728929205627323598103745051518822388193196012721598096249988078963786123656194475863377131606669052812737358252849304663741855227318224092172069338357777725511344022919958397911564226040361116315449328635068729213834980348975884764729991336666319822169874004577976480631626051145011926259845349479574232501289802499165377048998840657152007480503551973626987721587726401031903844445831747926785826673325472811481590599408193992542805760597146176291042364070143695474455942968095026046471390740458816148623429918940293493423725729082025251486036310052260830710643373825144912961240199726358189760939778829412130052988952509531796493537608833135483067798626730940307965614086269220062482084157799628591055681848879771266431634244023870344363941318961992380551797436796067527045424649582870793414107721038897271798955353586989236294901634862803337224309393993052619049234852843410578468886254085180752760910312415070563517567383981995645225991269750500622438580469454022530479043864818222132225549742796534405239239713557549334948306679713426717437212501619854089033047622958339422519355274056764116656284609950746476515200218555293833481007167624695950731221419573464279839019722976294752721842212255101321907626343786444564954338568438572130526103984081712268046033896949155474028307470837042035022548170424399612558925974384910423744007208714447163197066094006462851151741153342124614118371528378885481002692138484267728495181215994472772736374187832735084944097051712725730411873165411884253770551354884934548438266742255699130814580878681248701898857136854827902894499770026093277168632409129188781083981754223196454735517715219948993612154677755242582779008254125752919971626647821232730091080085463195821510917788068041936342292652779568630610691026941807854230733767926373717570414942698328542672043930157494773416206498979033345065384038986551268587125986987484069930831842142447686293202116220612293651753384586448404924493943185647199731284907426760886679352036907046313844057064811020120884026478592938402381050959759850416203396628262323575395518506631346505029475207817835351952800098121551746753555830029871602980916376643485715728577546168904442178838778994992701053522670262578272405796246139448479294117113573929092336721277289842555757693781949204019813728264382258343396578857014710017444242837957088611353753287980959679722759777479315415374156030156455345624855070905944538728962011651635044090642517324826834638495341970306888263037594005806275248025604695206787296611197391923526865545881099926700391056782464438831699045999701025167939385529414196492685712632968135982593295646670453098219994788473887290451782930874961744892984640805341160555713737841774992630675485770775692309328917788295816431021665419033439300656088851534114985737364681028031288451958310350520276421572552205767599680584020209383219095987539045480081364804578896367418228902931876519345135381950353325060748939685254428868769682812028292191744002395768610364180881662446676374954777202584159388213319502354999933371605223791155608408195134215685996552019198996690718117934639097824315545608742811789360703361089791040780985489219405324057488723730125351806136549749029240480862321201915992779298865354634078032804532980236532489091822488372313265692890779805356897628389119930001658868189298405890576475450384016158690740289650935624636577846491068281758273410809977596193930156559227674132100423196617095956252334226583909105129610145637012298705175593676574211669674157544634580880898779526962098071737256820057903428873921807800346859018692309658576266369792900262363336635406751716892477883384553761483559876906255644393181017901166974940216993236108895712935284165080814357311089389319247046436859161117985642231342315404502217936763992597359474768628721537620954574763818332236237449217318785971749328520686361588359502632333216825322180799833135504843772641989573225201360524479717489199784024782559798855660420728160336359023288645505968617580655349217022002246388720479078547193188136369728105274097064555202474242064768395596076602584233144138182302563821073248919015173154281486024433606182076387135767112197784612456603258508068536746709502473605537053475880520015185567426358903168493437323096323234803866624191463260512945554857966633895451247354079184099416512229779962035358770241518354777642785182196387421441919124169392804144247715391089663712128414281986379022006253369354799562474663325207962375295918298345167749024670093144658842637296505092416185589262853336305800032290497902879425871821296401814076540329484732274339262480858654122687919058432685158267093483291122294053050119764885435953623759848109998703406619525246267128332411616665317155977369910710615875443028914336562979365501653929212588880819524360745459854345398414182857599300708655446317404907982332685000159916504336667675441442455852555385051374878276330059292926105867382293008456731746762663178977360378032779750023084311588259430714559639725446671967712339379950851259942104352823656873649285110680536972093500050944532818095125773793052137309822599837960277646312847665415658792481912537722496889493504224022804263432065705915562699802156332385782242517418143198250812437115485740840811317087449692523577393231136971660211255190152118940071719984915398647147519006337339462178983615800177696759463336777385103109730545565922380814623873188024490093021295790790125408820327552691471223794667988605855265761200268472349435431617526607495071038672008022713816821798284793493441945584792120795192776010712431484939311808392891336625333578502750093631775119584090860122153312228816896437754442357061431898355574222162434284032375587180096302380008848742960822773026405027406737246037378082632039940932581858203380415891528671972407478891850014507101910629140468284369827884858758274923812269997198190474391716690487142926789324619203848510345696253689363474439268007396914093679811214875423008111672844898783341089057839005798786453343932125910203158635616783755930297636289209927716060273998624344324285766598713348391264646487833623971296204207778405312010688097045713062383561462213720668486122103743159382392456200184897872565204128359172081295098157763170506384296817812022115371493437975559083405476228362378522884029755493759489174102742242675994526704133706325740915183327973580035836459736270486012864269180503118997362285692849314203063015397972475338320047137586876952343894005302524245647358163954747446653101005091220206265479666468938031931548426959359466817032999856931303414550153502934000012634266577590711121353555441621038311520004149719900035883043622726194374981525244058867957828828159295084331981876663793676463406622488547024561273092670369024153638214485755318676755056457002409498597677948449574385098723324623050775337297418349517100833437031030316395871217881401149327237528483186433301760213326470747600543180194944138896869574176876724199263436224644916556591609104691768386469559371030694443965188831598873238004307688464517793875570842709458332095983127733305629928127171207608134483401079563214786481236943135942919424803544574144592867047668676183931321791479358398200836641529945298471221202328181452677422233867245763484768451584718355314893296757744289430915253194125150134539831237392708694208584233440825425365375406397832956877299505715103408308595729103764766981588181490915064331847806482606078519458651269778280676065606373009997784741507213364147602282106712739064175588805161397427545353341989586145649516147939273990002728510239135474499462007958911809515235892945005386612902014551354829007162864579751004750762522345336982341076881028260284553580068239972817082122507120974687514032953310070341463426288242216932550990085140587122756324278739593503561198025738532430303906137638294883195643836123731408835085489420819104774200277373050953723610623331746632056768174767983295700362336657048351395043661944024859392315171940443268246466734333499294746843131686973201547119366247394038254267116434637217578558009428467561416676159228208042883772303845672850601695076812461526627551769157704898147900574123163031005489880780778754276891387464296734202830937616977786901818126715613601603842943214863349154070210362761633447384150167055725251173234794064761946832602760241357089185219498836568719632495080190823219214162506755022177663937120275397478374512853899236375199279390925631720463365501341695332703652609495311966071137404426413769268383903647090935663325492218939086331307977621499784393794423565315088435501307059729596489807075394405997580211885443358183982562888625893753009650785349889624581908200225102477437595008482974770284146112055251956658384310779054878610761689720535853398209188071992783425872519716992641713692837737817257052009701006733854177814605502156605858560207176342808944320089713418762816922933052777143178826882129651016490373101975089274205686773906899424319663705355230842947735476209175269219827375018265382318348254823116021813369425145235671326832648185476825891424511409660208999019735266090231193198169766369846684193564868382008568987371070229348879460274169546869601361995395981050203291899596043535012786809319095841740692272096464004337289205170546477839063699139710390716811138393175260259116052862536053162286420678762300094927110656744505300663732799658235366207065168970717515643813642028114749267479415620409454577508675407991575821544971670870290365826301679551007324171644521740965285221120352145611937650204758774195397695597885098901202637410418904390828905096736137045530924289940376061909018628410590686533133417510180250671586451723509123495293799142633649629864693342041769511417573576216520672868174209018149912176388677208950991086943359568165626435619119711564843826841852361536854885340891666482566453138497527326877192363832620640160813954203277339726831182347534564848407215236385677410470798243789169966315379501342386844478946888878956692847394954003048280675863621234663145988419224975737430701553746341811410913526249812378509492918142025649383857030375800648496324873625742310018409458483624907467249702815581662273765417134885425797989837911506719043626514585722427574812886492442629993404527095168350231207820366134116449293255027391718893313347815033424351756290329960346822979129804636068140821094078496478082892781149117808273017874623424054839636517625049148316975957118097509298587393595300099969135353787168436992637823017879140773909177833983023904739331224853730663919175922789161783616939387516202983881898878703985129445015119738190083858319030444118290947171187444176855540144207179280305091947654102268889550973448262057981696765092091318461151313277398892441158730053932945362479518421864224934887672646092056328740549783756804076568210412396082746124668192818138968085489469867880506054795976804065703024509908887758568058734878820312180746425509684388460574662737128826446817190445725288682382807108114508932570496150143210393279281340991060136746411246655792988840984277362129107610699665220004577010634714164123076909217451546268087809642372141364233787542954756892449373527351351719952104064725020401038300566337268342628507866034386162002462401886656223792534574990407325859536145111727212532382087096242356315659936512758406817171698805183452656751381736316210557662127129118195258636980469692998195203720177799661408035814788564693206315791857963223088109366179374243030165299645469738318710173898341007638125160707440587355299867903130288255452165953965687155293998950911135843891509130458995644691959979766094767835096250749153599883092428252904971509167577315945976394524526685793543955889869749856776045707751771406257979151437260705304670856084427641818168933635263510870931678792017536568775007245820098873890739595478995647322114777751878160426634664629295384308463596841360098575125375833437565391227499118117260906687315621740656973191062207012144098995005056140623731887087115167348934178589574817858010979561299632827737684619641661421708105482573877421312447520089904313645539462157317867746212161493122854023290367245360543760461637289498653008459683353500897453010315130715702815962931347399940769847910216983973974878131506657208363812674683007516811332047179242863363723141225527383711259623144109242661261921849797262967489914105065433836388700053807126582712764569137168745148696125350321400955669788064616182669857209778978698572027855901354798423847116619202032847476096761388325340179171848881491110567428491953357981968254830431684543558663371003487578702985019016996072889921613248296651172886175488611905414326836727670311801370538117188240103435591314677659121583587305750712122612917158912149228736648490061537538292002210617139054067961137435756594699496443648468925093474222390063865214514564649816999256540354279542394065975987826289416515361913318130346089135578959792910747829185303518864485873172010798576637841921464773396284645813813748481209165190626026777246530671696886029671996909778865621302963669724273412508045123610688149913932622532021491937554721222316257331374691488013874562687473284143887361888115729196788574601329566868431943369530914480416990940600997842026208701239896513184079831410942190676140867388881270071786758348757386524186584228818471905554277767861247154259663438456997366816048080508896514741406202692111251297749431035890201365238294880167230004379942972565564317263770915687297929184161288605264147446259843683723030717111412948491468196449557156498977429917102198018556469767810828478310742235719519722822227264867832320537353839665879869901620684583205668506317215174341038519036869343058951845488750035740895693550786343296466602147066161095755018050433902429542168614487749890180141751198491850168938606221005950725363883916418295941761470060472668662286001075292882728661542906551185853756245449755619714827956370168103563506614020344692748788229520660237576597244910762912989292271885758097303397611250435418049001936733494616005543842475909125224748712763998993297991362076788990677184028945201695063299572229499423864010741366772859351212435523481506796438991932428043081921761793494027394855904297810283753215898930499377590975199425223422138034899895073317086774013460398009052426752175021254040100672734046187611817253433382855171229976650048462498335482990018000537990291020887918102514112708016227327842480234482628986340783783027257553150585377854332118612014422226350761536586155405650858493454751627899308634127429015993256383901247980568850744988394734530395678882142672407148765280044000791519996224188850194778206210314804114051404116069240635544710698468246615166456461567801715327651246574267946538262604172642194228972280364530921984207625706864732311309553862148974158151698454292512954703583751055204848707379282595272754312753050384215645183143446915899327828483628570067763543051525934707004873379736575432456543326124886219299017936044241796582402135203329600292404990063797439712157337376939992299676125885483117276091750039077150227347035688379434748307857630578411571324445438211310527114248638832682989649736380516153289932258786223476840467158068869538565675997910332759997416242385785454455934874048960422308471728358162124246605650154558606551235061939320606322345916850203293704057087768068092100448425850604895504540698823786729731813778394266006322683245192673085196533575784083871913201597814524137178550120534580624850732748625936240770160045089628329438966066747644216865968650659725542865591226667884357551615031006841835724350122420887137910825665256929448177990542276198090598077441910016005598447296302466753847803986723081342293823734330450457023555822619959830881787764193693413982007605367368536055960777542111334719225408297495148982577288952938462928800196710532266014546061512163662528972782365138961365562664631862724113730977136138420850569738441747302696909354337439262489647413060013855703457036805468313109595667174679803317500095889103246924635162089122391300645231455414777621712989311516417836092863197916699210330571037939235146410543520975861531357892675356386723174063196793734585602344752771908129582426085012234399226090311565254409990878937652883160978076112034435769073771899077099664132768218513329962633817023150173669150870008459314829646884524350373791395254438656983509155061770833519261712878826341044585748044858563772451573351589820818589884383139888981182511782703644717061367998909567670732679624214933542223599360483159744905973264389295724158002429045417787940290772917142945113475033233728665786216178002310358241822813275429665932689901677772184056827097737690846425594383716971543595806714940733640520335412429103843862759006256342635054416561797452181268964492684161116296390649921016967330180870470099693577340560672208230442242836505857955337986803047564994890404736357395368704418441482157108454938352302149430567717827640951758958202166564101270133136872118618180842348429005398045763613392411626525702736853568025362214505308102667356561116931060070367456803305969056254058079207882086110738510183077096028753628574613896214565060121302281688205171249920806205561255397192335839526226845881004290170528801643767221718556819395162463428311570876998103328986277928423198723112875660387756793266011330885826701878077813269698878714817722807324471333279288578927713140195590923495199821981438310766312817161167006453785426097467781446488910897486459310477267048207660778762843757280195910130606048975927450478650841270891259663871428418334043074414910739021471856093848472082423826792714734732778599218836552255537306630770519161928424135867843185428908911210170083158734829342296613094599267001518476583863482327974989202910779926420090297713636006329198878568707098727641937796886274792444817666029299616219190085198115470741011452468337621247651241167436810415826084307005715747593380184461635511678940662223794351601474335975070048189177454601514932500882382891219531358130471614415260486046934897619193986772508243494197660334215543464870712974500446550575680325632251921041721890350097148793383960617631763234333512529338895953687305390488781106927521411936464395726921226832322397717377124829448328059350709412684964161631088309753486928325694653474975517452461320928143898276907648401253300717414783149852892144461104931478454822887997517605970437228557026323968740717779181983115870870595452198128989536816039559481505591758576652591267276872262804328856498963127859482586466212424694925019632825738597513411523902854865999828419050934114488495704111345828912988602915240090444799633907344292813820946351617452041710505931339865033873576572876155397005814781936901089481776431900406104219117499077878038950576543343663606466100464598693385745196703247189660369292452829986006273263092316046479111220492274998972356347957067478604221838934041707910880438843233119024739255727846281481235236735902821510891541209682331047316143341692594974652021877096956626803627985900875112159442916694397143890475946269573269745591730267344842921476410589651225161241232257268852217004942450429660700140387414870918572558908968351158287497206568205214944003643796520698205948692319638787531742884940791488765147981587301681985105805745889385399520968997971915443411603972605343734185189690135311620242429591985359956868970743496413596503330693684525607469029814936711836699433508508739144250453687980262615088985548542142994753402792397177499213670181127274819460469076520193880323168426398298295502665642876044157222572101491619851365138472754566428570711536447297580097721973772045390799573695594221777602038655419217959896871239039821496615531486234986246712698189545882119013174641511870655615785583046818434793771206679070464794454413205115893281061302310957495287230213407916562293285177319257579138831775556271415969503241860225888711371658167715185032056338518202073241752625079050684269920109549687396369667958560691961355994495063642571888799389021899346994754458497559241415185916068641234485642457105139635514517909195249472574962698791966201253513793867237270304374206114743064836053853404513776071364912838229716946802285528853017449898753697111998529606781506034568614035401174584542003965021351334241418395614933066215672767915489855291527091792603424205320565080957575180638377635720822097566021265936716683786547514940597683550575345858867455107754480700954871577395443955090085437008396189295963843377973230607177868702202272413836957819484571034051260736158391376187250903582063306439008809692357868072319329099983205669111686386330612020380862129452935236880573801574729035321659121307575987188345350571934478929784350663682118263768947915071861354933687434047328783281539204664324946917397473616795193839010168874064879961915148749487523065205948456444635341121504098130025375025653440468770359852811263285034754153314304553274242200206507440484100681109641089852918768319644652602631580815670335613947342203162756435659811318444770449290255615067518161982257203071442647772125017484604847657666764955194567281313929259071377705771316513482013029350276289322551274192637848877399549415891849148923534172862980179760117267011621334214406205768466529000345831214416426130769915067059464086778320069787815092729633871205497843407024824054717249927619354970314606562070138769461278284663283024736490954391255470636394949185200712255550785616376046661428981493475354228364157033527028342881773471251924860901675898595738229964889501755514253959475781248976851623568459348365561973431274624069181135552757952571162570601429607347692292049835186821404491100565363190217001977142664511177207641678840114801091344251157724446274492484483264851535536918330334054515900785448400549557768247019897346228730201394304631040737528435966936567489703429750767691490976922716547942717999338359307222937659970501436779584863735148167249456955749806277597312649983986437745684900130798067483115392117414003124748325139622163428143940977245140537550235817967584489542317074740121770652847773082872205112987980365034579769990944674412080709827589096770167030131766907848422366082073064861606400345787064381164728990976858724592922687484587513790839805333522413991349445724157524680702952742298096369952813518476265530062717342712260087619085312360218900002886968280941729499532504263255741291603441777829617417979625465507860948771046028144193829439165668796349478011063488049194841998891421833763659273206939255577353330073782015841150541435865023832862797861692635489906813135608795179715603662171497508467334762656901036882870365674796916397615842826713250619383989401250472951458293093785011425309552499891057537193005140568790836799289869808717220097291816108502236655019520473979779873395768351684007536905728744748157236846860590495281474372163187313698549878756888282436786556352625688551128565137386863681730999735984698080450108597950393497785340216359385065490283014494598662686000449955820918453039456333238029766895439766518961593776640993762801468943636695641212455481626286632696076031957016784089399366084052011156670009152474347145119695891072373815777354748900250899229928094362438192522138049674574044715893860842514774094690636685537713880033342856548198330263037774484084758080025374533744640800826140744809895257686393378196438526349272911608615236970666373811362696188668067709171055162893320869420155741901940854638159135067015049710493967101909305383509677677383056661720355701778171485814549865446807039668958776320125052538295629416473927339774967465273153821736935799345664965933073525022354229748212177077459441160130090193810990467348309482681025598401120729738157361779549709327148446506487384559419654841120110417338000274857219913675835524691926297008031423313502795731352076332699366759695459653438764324262580930270473891425404266191586545658321372767831622983443956525296583494655901095770825158132195202197767086303581688739703948249081125888974225373504591577864794994054896346898429780352106622760760902119651846641446693200157334569628555915065282626765343085084669920594160768128573872613030981125838807402314187124880599604462121762363850143766803718249880412846607409560658865757734688186634378919968537897216494266859863088298107316148430730034217572127788062483177975613976105412364126443135089002386422068026644933869507988674248480807906199645327358314712840485692429403837594658438199561513125232087232888105728118390735756139334687152141606223511191984774587398202972731315096884727430487811638959548386645831384295419610718551765650492265629325687272485975043824603076237945911789286948221336523379251183430050521690217851109925943675549572711964074944826281345142354129633657993360850140209879285629947701393351640685131528170121411520077967739881298287717618857006199528638265780551147587721934073489801403754812947318392785937522729492163453843324449988907784375657474856933031955215567165740058667704394611498340543412551485352525451737363471762662122081899338455597356699639184224531345160981219517592548528618529462425181725023337436955480091711259497621800392799384118731237409033556467347769573419338683894188088089457025105088535828087192529372606308232794868914695627064481305569323726661635265788760660696909191595027746714240355659777101757665498856766816739790280200542146282793281957935565873405383821120119286935378996008652954046776726995867551363623692242686283328675331277624475779020599162740907340183453045989898153298245989803778110179869381287696637477520533220257406733242821262083986023779770613652753684618967341655132002823506681905735971496772211368936555214780418760232703137454354941201104519985742190123140248732812995697674176347701402820728923567896872832466979802752894969261393651669388399878533895969356231474777022908548897439149263748220847576468605423462781437617641419786130562252531367241566970352551965742551249184934329615454965997542179769456255243348610082304448285706418925863769913764957839580261698748528044133465347641256708529315908329785643282906343165189750922242802124824017096652142707546573200033903136948408062185535066366028724462307133820904711828370300777363557840252348580824857147897716088321536741415262828632369568117497619238668249213750447463346278228104795922451089129950206641937894278786856373105510985908552853763961710189329851641985263186814453315919830011619883473748889428056949201707523990961107120800755995887822855748778588590533054143330699288517528219747180293334509486637469049666613872595870967970703648673318196511055869148238016179113523385578909880471174525038007745150490191794613002253578140238751524025487839951070227105333918384102250205387870895117792571202465032347268179999446548504206579483322353788625275783171355921037056762252721975308155254215292120681029805463590605395480057371556189314110811734369007590674332361027022681923801312095389038943965684366995409935865404107505722478786279759610680547095419771690356916125666080926583118128951753159738849050690680161446723798963280107979149922311210599203892826090035313976627541100139229014415508119591354639795429759302719572452519011290331059217623750236717429955874743670276221090734699359245710305471657358187309049921886938170271463589271673273104743465638747368521455344038431255061885021373865649521886971801909488202796378540205850871317077262121520945085671647716888315789292909986682233343947712130260208231430328512967514248469751245589041800051542468865137741426491512920414433206467680908488840270461728137560007136185719215830990770217632022116275718999554354030627215014696302282144883923882018639946407267236469687434531099011358714560847719193480635951699713030547228024228001794006563451669662522884683588776176598753630804472462034198504300398047585132174142096299992953532112461334263447768688854234129091529356202236965965298912793270567917864837228272993414561678820148296730324892793039844926876532936358262148747823625247027113964250730474622370451864175514804941760633531518885962653501161743827164371165920698358521388338440122052002138470719474057470159213980007762806201356367746036898683106812206443370777033236766754718689750814145354296449851698957567653700661484878461891676234738057894817177277686455868699402997799716514597429361285984119251279251746897832504365687388721212140457792577135431361742898232475802060798582961205175700872772417410706745683585475897300620178631069802223320069753709151711213594984762028702240052016559652398246761199284379014638263525911325140021719013622176428026036669249234232470864727171564388849154348615705511666520881318948792609879436247174575426696558999497423638563165946570542026314546484528735081656943568044692145649606676214880556695853792678464445486308284167623511378798879009832860332156189191534560541405144929429117540385102452189205705358014816110536299103693496680762293920897840958307925610654982494822737368371843303343025281966157490276615585354176028215205210380248742606543176970152571735694718601865169820148537964981418406576588643589549490743005209487772697556974845918173976926483228180973759003109421418506607614300960072887115716413540516677089194750375341398799585372707743384435289639307042680801733044618134602785225372504196633939668671607561416080136928275432826579438824239269887778159917217081937395753434277319919510045678749085444846812478756625504750368948794029365946274157913415168087378998697201441720807584375925975898464439786699941792299839408842405635096535122475691355171913146677907887933932756282645260298208775259010142108909242474125085794444667493394005900918361515154885461516871173303477214320475600395854839386458744954081689259947095008049579384311504730853859828329202078103214724312479173518610710154249108443553801577211026795110527910736697693748992582019551594547189200486029321457604882417301818949890135932035702983814304255154091309516654749939643548645847877475262253347924385376572605450639257010194441550114677469436922084504677184488496245328137108446794659035402284998232268209518188259003894921301045217652744419360324922924977661715134657284162679879263833562941408789511405180779308578219577159170693450843380737220210866452021653812784251977510874159767768915310080052232581845681422848652360784701853481350968864070661929016873301450654387417804569946508513772484081719707069983047517508906495333330000533833539854324609742222756237278663635594155398912154953540338598014185043893043465556168770338663087013023150061096344777805803449197895368915602105229524731811654897340707644065523469734088846304756906346363723995676253192852165651024736505902684342273097814227769737053572702995295088411698293079045998124850911232625472689059810516448281573229160486663841835183120341202172454327565404229354620374315520266139545269093528427892788155055949159954268944888867285289717664015653579904304193019528986645549748693961854378457995862258670607928735455546355180261440321449555040305587832590366411451865374960288221576682780296616912599025360967703991425772104267309108728077292816701578072733783984752825801608108681838558477309561781922094240756702691229816861159763185995712126267149440296275786303548776560260773066955974478562474198053169538976477283572867443503561629488231840919466771342435288834050206756573246330277733815419189662419041094880259676022547640798031430035345425621604086196039218071951441097517169474924918898965575735423334491798811873905725279775353335869793634435883523709136759590470957876695443616994638219532732964907854729383968204068215891211581349861181157926050228488005149644558805660158549058397501592714033235615051495222440270276625588530131853835244989622297629562140696094782835867810224834979980005698299043080769150278304401585913613855252717317220340572288975560694229748524865967181162695974480684256598311157426144707580869658222292377339913023771348181687573162759964177231607475303692856807299932143408183579507690778729101958824079942834339268505589560755612347880220856108636403469003011486645200621407838706431940203832376315773715831219449642840476759408635207433802190203958351216368871464273339110182243287704314250819702783902700110675890790473808849219730751020945192044802697219605430342383676332821996656088695067877570876763172053947988681820543874546084705150906240688141428315169232390486489667867036288855379543359074802300955833057837378028923088177451143810668772821628614683087329781795249067249311283268211862905573680932764738080533857029537730024351015686306868926504954225269331041983065213909334624112689975878769663205265278095384714103655492561446858809855546910414779012464062992480000430562039323278076816280695151935456240805417993741760104914645231900464047780862609255438048990524422597090483830880586827418809075939089582269848807151191992473168618203289729818717433287130912065043524604834541337749010535009333205448641126982294430604025783190655361506681414523195734231153959119664652822686437891848487839067243546879419337651015865876582735400075474448941484383793179433267743844939825761661392692628633673572968340235971256134414127887119077077658567196173806387917518063076983676658617081479232460107809115370078858470485299485376373395344827282165426989302407950691999552385189832218315435561907282221958015264885357935817940963063229670912609911476196898287431109537970123743723495401452990538864688446591449196357039275362979473756372888893119415241569297965210072919874345473561371175616186823419814980890652958602709888951378115867932582366171163743826001460470850309124106728782454451112279043455274764715010193244959981933856583334876857554083036790267472846606262377054376376068511635356028751116700268594740651866123718003471168462024289883458645854245849034201251740113743924116234239875533081505126441701549457767585846663001534163940267690138279926587097885760304518008296905003006715865088099039456292949106634310077423046104126910668778835040772454559431873347795047605389961741045132670151508755774150146380856495846323213081019852643646477374518122899772067678522973348479210211825116286156426420157392216599491952542599341512387798476200784206989559868845713602638834969731673309283867135229120910050333055355290030702817550540656621682029789188195400104400601449896386655789412269927935525584112672791219320490059007680853796965838306988001323120331475623248358000592707738683851550440065676909382480114548925016266242246231193328365406805721222107113529869898471461043839450912229593185020788884924026251238074584454966512736518159257194234774892951523615024907305336560161381498757359901869116898111204379579416718693748634646122785474376772589419016370259414881905047227336389141498820407981843251081367551227542652624485149864883630403293322260598214861118593648461723736374851752053099758610058434209562331370995299199474251005744177406215628685301396661306743994062552561252779200238114496992694782071598085582104317473885236118639439877904031135191753083398499010796591210106880243219981378932496558895638725792646091632794147777138507596134936334125555849907677629890796064976853225956066274769649467808161813075695837454663161255331847649129862466088762627538063877676147580631693007274511863001945160556138938435009439118636900227859335739202918033687621430593146871581115279684515970900765219048738918846865993966518531110389725325655836559109987622087809788991911617047628874726602680530525929756527644599855172730325557623635749620342893155807450003137912329599162264809198638411304243365749812415948739564653180318568661490877845967642556370744439302002960166522832136605355971617595059277547689188484813494161485953492830717357598479860064040792832880754242757610899837566632814608416526128638566375954567369802525954383292269904330867035584856236450470858779019843963525730237225194117743303561177166594936132160123674324160733877316314439421953314746655544470558927924634198718108734745797332103678578945108907610844796932579282078846315289342127842431316688872102340879370302496824097254907442696682240427798839660149718875486939060463187978382908462818255586647278614672792525659912133868590282267302473959279303365524421976232834089981077922824669908388184029154288858519445293380024050062325370239676523065269442713788397168603767176399314710195551092171251936159254311850389892311679892077249244010696989393545877145066923237438445107358372337438578274330074665089396795906335050017973936718119943632499391229651542784268434232524923308227971150630604365612078300856267769228088059299682765692870110304513034075149384215534298272941070326431408469464871465673074349900662413482823211921316659728811213086358381141023894560115990330701907244248790511734574629699548811587900589866402821065423172503567532988528888440286360054025573655854128438039938244418933957695399754673273466047628993458410456756288776889452397419567986726106359530714994482275198098979287893960296278588612155795821207129298748663101066759776111736645679538197531697278305447796704547547222036481232303542391593683993643993114483155478690140257921748405879315768253232541578178904721924123818710140840644574397503455677869661145513833628477817253551169872664775682752429633473905650723086083467135343863605423628355902931113765297942636069759876114322808721434991841553665782216654017845132263783855403869560652991697879184996862290363766296536705998672448929056136704024145617676425262538630865031960348655116134165428135788921823990493479982239402869154293111852361043835435501008179775127790139811303992203605337638124785771017309626904644955177649868138507952081304268390879093591039006844500066408313221687857770750365686777268230318283468763576653534560237606922685305229902551585231868289551197241751581757749687054663424212678193208519425826771904954820042017155110741983958017995420889596204636617324911375645874777579916996723213485801143110350640675119144180833298333341801408182653382578786150650331320652760558987775673982939118820515677273883919711420302991228068731002943894819795619674355425472145698545231845154005365394565724659475982898299706358608206057593204329193258304757304310101177157210022237018661630262493651956201810924468913003378394838175394455256523896623654820434315892668271331309203899278421714922390413168738813775553033007129846226910063145303320046657452619150600600881676338171170363107322493667678375626791819908487038752822189858937567445284319274652462931582206687065541147219659724744315606705257676466732600897111234193110438097170089083036929490069060131962761974246701508082320248364610201846139550746048924303179682595262769679679314792567396671281483233509774625767867274890975035553461744046874037784229121784408765563783599554922059566124945342531880569674067771219899228312896243815798761649388563173242765120629337020341027754022502461512161607139969794452662850419488916402107143507157960804192889659311399171472842921928417013232190879563335016741060257491023769339280895595676806110373686838341886145318180809155218278346280513500382657891346797297915838168488706997783494110572917258117686930086312223894087847377347151659517700581784434833599817484037643387096304956957575455440269179228403994153819704147133840854222465868484896369019335698943853659226423802927679763335094164157785694484848938251726102321797477947482639351755797683574860281413140700146400110350817869431820357502237563025464789596474264417144638531307141666231410747637983971757852033777889479425415093106617254067072052112770295540953398113957292707899001559016167506586628629804878567517517732251772607135357306855041765753728756980157321891053747833664942814097194552720123446191422615264857795821962366514469084556009535124812561629131364449326812159285639803175100627455216415204664932540796326898320048370681492941619515607941659500733328870841009471067167068957912698974767024693710064560992499854746862525730403998614156439356767851558996512491403274945119207890627570096283506057714836577331341526115449139654141577140647986584764777732137829270129177006273984183822530283564471175208623629138544027617099680715310405197115675865367993123614138470189649834858307194493432006624071585806600774147593213638004316942164863043630554849661630107471043878862667342402717110384870778222218864721955073024273972839322400721569332881063984522044014940990007217481200672633487630892009166238160362836510061793694380619613401759813332099708117013936230909036400770292459732780928409646924731588341870919873743100920437268905669711919909335458729526896440422845873247287210853494046712221072754092015921670870096351339340984893409841175786919082027271826426747005916200261995217707222631674289524537795514460177484205796060682321582320055785847830210981760768541663836446202156620619142376572749811585902158866079014167712403096702064938388881705325777271676869120737147747412849647598333643973391203155128087105056393478941000148514489844474019074809571944634761570603936802703672043472495086053201282482289205722206083375971239501634350983120326232941281468750237883002955449690024599429721011025077525721192663847372074205049743906257074150065969060371392904576068872573657506696299400638764325846248513900447670990266776481414881181145456038351611816699027519113764062940824371804764211177011140388091212950219854161019867282763780186560024683839158659110833443554483245097843909264230564933578578081418330918118555407243702533282660325044990513273130032251537349381013467215069618577414755829047333271689828497682403254263505142994921656181098920158222579608762576352750503628495527260088389956305658533860533708526635786997506636019978123089971651436529367160503753347079825195250487805322804000571087788551902381117220497723819365609795503508227272783409361566908675192025343688810732288690800424051472845889245573148713956084888811938249494284972019249639723808435135842077385498335766326482521550459010373472880764223973457021548691935671334021545614178968386313424872460417696054787352838084440512512656358169750303853183335317646614850753468659781173723303025681488623459888886889987617587664202504504383332462847234562184287030796674741395332347961741521464693101337478689306882462249575586125374462575220940950309345707542883577005071152386264565904014434285007248743784625435819122436996062706035266542055979007799618491034785564669031178439986235781410010032366885151487802515669925524157447209894660171156809933312831129657132298833602071083710713545626317957803147142440263166016426702762137756001721341160293948551021932426725127899805680961382520738518004754674158432468701751452356932608403116757420106344972034641368623317444054375696832033912179759469210775012404488746203446472668248297583698353890694034613518351173660523175003199435985855708743749163257129519932079460866832002407079136519070193677549704339648274808030660390536126031884073076845954980080533930190735057619444376289915937419912656955567182354331820557739830998845784964289451927137486633288759253683206334810228003057217581572256520701425622210722030421988817542882217361801630622978655363923379321227793161244804112056414085441751241832778841630079104902344706558056545871584482087281286705753116646317432472586376636258154856887851119595072660960147917834153709181063966789979749385916118128891083673942743285465673087102610811420587126310779548007783510513774436940248231692448780411947834754170628920323732738595625300904646570398308244224054111790220569067584717831164664188490672106690180914851983613813457247098398142448180484505332053136424332930430234097258651308061787896794908967021578446897002467506728993265249579551064104964801342916931128877464051903521154196904998227817593021337484761966910937840687643064888041951715845530024544834605490815378102172380080890899658185513864558560755889660664474043782950759574523413610168096441954570525573341985992666691675845012889567104114820263563699774596989826499159421869531176304291305195328799554180616373401195333887451046114243241778802315308881386898472822170187605807225085807570566996742550882198664413252669473342201371122733736903826443885447550404636297877176444208318862857418474838407365080231044639915873934817152168286207961338453964832911540565561702394088317267517598216898922255560917659929930768525029282292634787509262673366218965290734709554776937939451163222170877125286789625704171030687781355282398433052684845540844058167513502365214199643510545666159360973282312731728646670187478719660341566629074533539560765634984160524246980661836517294054322076566750321677831050241403538900479216750811771596319198433084596028310644912562001679066894898448372438680303614270659715051976125529151352152076595103817192577333713208668274371857924506580774615143165410579821533966108770964994498206598672135078684792183294074198574788111247890684442886183789643253355984987311012355256614135601823517134371694830495576302098238203572536577178090148468500320030615130210392520253009168865567491654740907827891783258502151469373475904371188500774784072350289720000287091356347315935815415728697015655139964174673887204818604631463748907523273554582060945293135126091014281322325158134933264186739843033163766231910984475975592646339572553492739065106847869684663373039060035209571857358686028545612738601969004367173518916659915195592328267527210845536208891706966879038180043508499158947635853244690113747769970651397779027045815560480791832740219460772929927687695111029643434128276828920781777538903193162147658931895181117868935560627362495014686374282558049774143947788505892558986398222363644203934407832686125720794588337086884166833316810141458184121592234701310569933474597048578289670755603479068097813545543577215045579833375187707561994732730614807265869210709866189987681696459885377357153676990126344382183706044918650096148453363409824190012688874243889941106891155835757996854085020801765401959120045257009865118414482591595338989390834786276647590144391716539556688952876961947003461923968042037164225478130472959928788531887476412208502185269398579166986752659859741601640213774782976476008775033137676218647005083773628638504961642780005960556994572461991844054161934781000907867284544013481272972654919559945610793923035027111566391911776567937008799214091024531512790611365855415444942432658323264047678287535569031773762003067525993559385245249682756087073335875404644855886434801211670729728365484650483155845264474718649198261993475950670008746233507034374315149700198415578147849095432059657976045925849940638188076380853698175291484745963368793652337969671061180358236098810649282525706311852827507544621032255754597961613393591720174950562598082773708941760636067346901378111114761636602631601416877364999355541645239312395555424600974053981053547384861922069072012337666784759906791933472290613609847751425487645226735451118772270108507130025248652900134459701875945764892101793945829415903738091163888816798174490866863640951326431996338642621297605559447898634946317869320278491962390939706514627147707830904392545902785944724896203063827860734904321171023995888047936224755119625391400238134462773517367739831938720046916777741452412608125098054818680470944130962381011900164622803576474097055722647157174430771429187255665014010810291508748471811907678409761236440487297185304173746633895857871728806211546154244199541101731204230983816769462143571023186241764884735562930495542990411832213223134888840209203629895081649814745552778737866680596346658541924870897067988784072778840474523194049177939673252194080512340349519204692241305162144834769765460299247715726167633751083313234775165724458950699893184074501501887925144589162327316464456963908558720105474496546898981156891738545303667419284233411908060114994257189132852250920834850068125742740199745044505260008562618817385516974632562909405893679281560158411721741017832546097183310539912467977645747132164614601053726640862289177513061157572594010999519418396531150437451215185749715533299510079889920569384607715319757475930879164067742653714445195248419989762218590134141473547487551057632940937123640060408492236639455953359985531669830698949615893703909752857721340991889439055065013693785131420275888240048528948914443899517228014767887257316675575834693216559653362043671031842907298149305685229420546824428253835547080271004035944682900638565535566711362052197231543900514663374946032862792084273011108090380734020995283736071840030942026843690518493704465549602669431094860574170644440844877471209593179077626624803371948483154307861151438619450252730370746473415769366443677165537352829519586091656805753532810957456539323412767001267112565956628032539868181408719787890845803421278498342619507344223707638055129836634265207981574953851286620350915796073306689227098904186591834756260274105305233917782052630684885005772746899968423510444116674355141322752625849560874217167676696533829005688880322356904076504677519765740746918456463780014762830972144272716666096144628443651856264951641179564655696002156095685784894657108861249107249178659568224509735212709718301562121142170643208390673815959631780017373614290596450651744179971501683892750228411987569963454415775142415698585117052999607118251270337040265488151456473415091019134476181290521366143716267284739588032228298421174549181101558592861548957140642554654792903049468057360186079741134804404127030046375957552001497042589301002014585893603178305354883112251477591347243727829545850549945294197373981495430763137774055652948358128170654167579972841014364364395301377014058713986886727024504930476239225120070262098037635342118440306248089444296318033364379616726097722361873192313259776163926337572549129901787522212975777628176940538722433813727543572167725936445752232591849793733035252697555144019432039280532147165173319318078918516492812066909662763484548454674649052770811434315433216396879023314676566816690818609264668082859234205578950668437182396000696330351063632963663931819112019006736244705854224244770352012054138862038120812869917628170784840370155226913523891491791897828923535334984776167591385214137933165046199195840624509098545444507471106441247621290786254780137256572169280461915223823278503110317745074850841007395429639389163740916266042559564311941284021278902578618140713669873828159111273875721390178601061499612596017175952030981562474443072842680709206797075810020595610974681051438963968387792652356793156177173764087625424118849681372442661869450912043773351092667317566617854568760334702299313581659944862403088126485073556375702800958064698463627854158939586779414356724814253916958273464704749405344659900366936253238811683507535189499197822019557688726916388719298437619623890969698244182945020878242775712188249289601895967874867785250560094584632008864230464841392081308852846546699147138918059432927186136892994840663329510522951704010462845114593481034604329685927448388100134041874237445419423523791810163336233246135490226932705340878952532542338600572828552917783054604660925820681482766423663946099165179825661156916715428908469172877238800757870220118867592267508876578610920627809502841217122818890159421599728468906212710198825721781873455720880896885767956382973071324328696737968057447198073625655895657380622230454932432888386149640774244782145682637060149142770252058462712901781850278920404930427489376309572607983808304106630182185073887913626774213644886273997845020224287365774337493855265738472051547848487638806891194985490595622903426639399926849784900371281142814021634404866635117460609744419511575463093670491908824884966069279128388335225188131617877302966733433701007385690245903291723352904817084365772344804459245594943401140320988414673665687175583066385430533598305493319944137701669906528530798761237876272710732498084879378435320900978422216372229774239939876714865270691677130275376059349789786003307205390938320037144331047118762462858281266496827174758283928379136210474431739570307198955641125856643447369877028702232107468564672519693194688155413282635935267087410675157056156453808859007003547292788910020889530541346865201628844499420948901554303930793477098034016825772518416291859151713192118699234374599106286072371002905282865360131319077319574898507232503193153743265202320579599384584493641521978608094952919767122897245230992703454494430900887003840286461192997754018017898483460194314075681978419989921448946109547185148884219974574629233934048104915892357936629089112883830361243879955771745089744009890760771274286443028284293179892993117241724411718113355091834486213600623519476647157581921655380688973803159116578846119850969146725036875516026752187254835894323649950320725431073254112694535669067955491333947503781589554995718500566356303232584246151622405300003509762700479709828313433020068147509777539290280244137815093274609786964466842017875992093336598426307855585961238396288803265487037845459062384952603525808697837568570607369224547489507950732975318574737422000404773775987775010913869122875032463628318812894069567012615413629367928405931727238621851189471568296379738851811649921746017575427987549355892669141797223831439687986231930130772217561843884606335656702221940193940372441883044360431544208121064362287003836134740385275051568121577556137468415400121409150394928038559906966957014155270180694231830276039230005748239993618169986390427023778834375149674718336582967305838373037128292662633626006446863561417380928966562180442697015147525877371580060830162419411579632517241369995556220105399020871534274578179957679142306014380128511312767805863727026038841185531747241865705781985816642971421663588111682119907252020063386581550665096918823432515044283949321280013956697804141417027162362041174044166423016011814514909709021881158593092524252080448141425986183307337345923236937604047077750075089555362042707648964965942255866960839256277455767312924927560441588702784078910237598852167836927847954023828713439958746276447043428148405879607817617345709354220607979780732146576638062172254571306243603237774859652334955297962982158729977988567568127516023096777233026900967551031462894875226633722416939357747265205408905956906061899249965742708436203386239073776780315032531746593654586294601516208295974339863010909012392562603692360630832488835038240960444088391549091889957931904757317381469807663345741498588015679875280535145647266788387372010053049489678527392767177987304818902634762505772435288104989605893980501384325275297524340117559887534325176039440809751424152704180175314537943642312032498370124837820018858409768102484700333728155595471043815402115517233004918731347349577395005661470446883051413211141937400047623873293453564558817726929388064086458805063573097644931806890592008191513278364991715346876183932226504383088177262101995868388813721714967299577391389575130641311137158493584135324700942140583149389157088027373041863605797912296256721342656554619799527141340567899168648058604741306066960160794089436585122870804794306616815906466124264378122558817410122645154545736634102789869597262716113661149524364123625724146904552069458740460143719945493715410982815018573510768930462218075802615618745078627110137876735140391042349099934295449592303619985683448531463858214176083345095439675915317149018479808776548763723132947655691332710159897473518425828846390002326611917455196439359985335963137529994343378124286059466620967915345388151777538925877448989454157677767692831487244065368943913989899175391457661454821872635108269930874843573104526455488604327414073241265935852233888488907437478599444545130911487242005922616454507066324192713691438711585325915346700181934893910870651324325930112876216238919678577295245182585145027476978596326751774989440844817894290226611951769910144353905718509837935073543110566583376580143468474349141894268453989329094471908516075523994049175625235317820867891648204548105393401535383889627474246306093813908371385465952023972149977051855126514410224049125737242530079953088275439554992747216113589405775320111223402406600543597337692313392293733657211017013498147111496498149374878401985543609957450228402188355957612968993898032168373737358796971499641330502428539578615437934307633752800718788709961842018082063033631874423461360301179467084475192831774703671031953961259115173094354660888150457074533613705964291199163658640018920838252452268256105822970096643907616009511985028726415734815987217431880649481243839548462757369284155068737255172802672731101220777394056840625025383592912234363667907909391727050206047519296857108728540573627467978649505828408332736577090796274752702016592284086016586013537095398099843284300594358641234150390612948118995773978100064846600001782369423086434420862080188212186921154203249806337905443628719987715905943210544183870257510174494344685629055167243000470446945671153714903810279589405768198149325890246412855104219975130998986362574174499323103353404955809668182031642297430564800325022600847695033030139717187983841746981458182996522306893013305025148814715853369361333292780508818275893040644831418922181766395124094894618407359173715192261236157939248504404396865740969489987610589998330082659830524611080366426989530849478949091745731923388180147726942772448506560715290901613060811381488693743657341133167466240193448997837759884087874788212895695207070668508318570062641770716694814630210019721921082095545416122422512361877421262428345779334596923776029035738235610902909083688411390268079663645106089496730502467669503089347915029248758606059241733535939338107348068951558271105540081342273010846036380601328700114311943470635579291480130012362306490508362075074233694299326553154347775546055015652007620267913889979445341951983423064125137630231170535465189609479997894756280242565184357501536804466910200511064984870396947121933891546602378194199655026922069239943417746928515607344148576252112950053271387437272855651046231431247579426134590996926603710116526775954348568445074525218453340456921573507128404082914270408366123601106319635850832711992490519648657124527411510311090861623967610618601616087379902555408169125003655857637002080052090684257963378414433618691806289894851394181925132562893432323564592441026554295335304239165535433429172798636725863518506205769031412432596561261060914836861650222288635731324733550694638208154726870975135327733581939476791950301272101169760527913853743242756801499864805292872410118731743274341308089147382137178163176191832677114070481529630139763731755468830194190004085594770916708579315381280930476198350649245420228508647379459067105601011519947608969838106881222581998001055337028380681200442680776888527068792370484785189986004479019199167292921558019449129811264801493602963394398934575162710249078496403415350136351717115609419816713953509974129250741496722409950414368752674789600155531698695004910856825683509706707687651544002728748091613789971627525289447183814151324142219230685148522008762486635272279009706144567299528095040896845568178896968201978467326988098266694664110915257337669991021308173108273051006123795795581909965176936221951025522785661491897488259184169721983703123043197240291007694866384027168600992655915824850805105896898357353024779424849145953408881488301197548801591956290445898821628180767407188713770014958020070416449987278470622954289124303229363726512934096589280430793992516825341735398813047034813325341684203003011534412441947156496121513441728425758924321655624698546199606413373989465181340248466925960887994184459295338008414120994615342765563486029107660817950627816588470014901586862257258041045797071713180960721809457260169751735464813521753907074916292545804398779008576687347716994398546433299944119671562414665606244827347006921504180563341763168427330947855899894715369441306686439662216276188728069449505487125520636140088424678728589458634723240828876449989558247882096392172983171420174408430234065151556789607081202326759104059373467538971470220524722877721130495046702895663737992043298234204765970364101003255966377506666231225757111477765406443247921652677156606585874886441306711020061771621782016461390573632935800098597222554226309038860805095765671044147679953674593013407553541440447044614043231455447489706519718874530768310603257203305725531143533337685497012233717254068714601020149142984518183102601974408414012999403741499824514805438332113179608940844204299146281350023528481440680930806346835924614821146953307256774376992468206648617707284956478417485262825662559044523312589793349496064394933372208364448350660714187755097160876079725919409221611242920492142980006960365658350549468169811139099453940378539253445864143331418335274244272211060001598051980164999543658737223833747738861146815105455621786772362481600234668285474621439405477045109242079855994273627947959843973706474086108294566814929031065777473954715804371412285058701041292394790255710876167225965186198825329926075927513432245518007812815407686360418524278998776824336974955259773848582315936684469685408557386158473018188109406564511893127383460804592746350993725620805894384720489819250939875575519857071007149285178439702552130459019481069662809162300660198343068000730785277264474201626525605014592450782305151286511287913727936683713290793770913279424069029225114927314760470526814860244084781476871736148617351208258187128294423449266964574463101391835460608914468935894805065403614570795457445874597063472208862964641561498007762537144418205108029774572717209085940756076410672859975724853918143341260703438965529414739595938847798409406186871542634658253558558174496853336530411530686476743158957638354623774007704083811909933806551569760331981319232719604808907427588021366057647939076657362968113683132641406420580955352523694402718636127383708483378498758862680496620880205250970127913696318121926497269783562460708996673617183365856148522634802992366220824172977762564698734621518598398382723708228283108636444603666260292026473292249451033350654590235540440446735825526054154252785364827948586308509535361523405697727947142428708786453207132801347187900760888587635982146618514759053439388729023463443189915683929598881970235235700916367960981781545263394458339940009099449957192665383346058425186063615187283937363784056856901185497881437175239713915223880239557183764870866041533530496628342794457315158796722028290115835397951942603365353949488101281549889831719941356218842040988534036752503629308853796441721616053504081602846972311378080733604563162871475503191146923632287149065800688990417259764129086429008553461074387091887866240436192124827697409041254109239653074703269656594606989725847277596325681535242294017716170720157370161905004474498338034914139976889526837299555357494042725244223811547985397218664454154988336292049820554651314232792003365139052360119170258194281832225433349043956858629529129044258740485703955788469069717889157108182290871373930975350451301437194468916582309841098342524767728439479503355824414419545976718082121871847122595709406535220120619915816303012210208771670198903322468512318105167572774710361169282634064883199049654665670644988638031517034699997939791342435616690956260246549783711596599555463479447958526989271455660916703783652495411182602617584103146507332353373408343851302545731284843003625368300020337433898921550770817427439618894785420436919632771637045642532275911115873439042634889471366701251378847460441840921041630931445376475642403083884461892792643134020729608952392528292076004366627794972537902909924630646336668788329406634842126403182789054428822986800685183254760315141144478121350339802629039533070029862137557206573529663504111403427560007914562505219581974564897496035417979871091367106215555819334298410067660352260956815694097681579218769985791512054758082567082915525607030830194552219431890521330412371688743870870799936691272061967101324313053868120428766364893504298762880688465794776281797896502116600712790595769644946101873525156696175773128681612341088200149625798424307469861925843001017353169529174715651837467515254452680037456153976119283903058620151981683678719813329533480335766571092906672270352663869721279846656616585560425744628693391031295599249437897138417932644349821466291546171919288509843065581884809803692980502178042110453100997548161959840236066874703021749308030968360000313523881148458712605464746735183320306302287865427168595683182310454835101980823729361132592732608757837262494660307015689795225118464339717802019955476756723816606871375732954105447196807664084336116894233494354300463339779030788220819123388031604752555412719690875985232285592741043750460749708550935707343162738244378345126720617557565705899153369187253340606298040407479465912544710497176281461084038335407194661047467192890594807047052075123227004683699353396470368421383597201045669286134644697253513223621717597573983880088330300041109380754081625841425382263235911406124755623686490252878314221383353989808536936875968725959086077690422246913063442356156485983966735394138313576096135852356763701170165046910847196864963948616673478162583987039356855131289641188342334103915422117294711811507849687948316064152117267168806456741495274959835564844110834945001394063699863252247336650475751814968156666036330772611378267162430244611111538800382310794114137893589768900520080649274640472842547040667952050839145605673518852859259241698146479689318891549517734563633900150535624597470132715705600291922300189536909245770516274402553544544364779453432923458754631708229126442634593352518623258060735372146737789330487799355970111215543449986049365687883470313478194667008821951846696378001136030665151154581859480469903244415891768973652261003115497989864218683779882389642641418330946616866736530645784583152714872396750563905295536593234318767549046624168480387888816669931443409097919781004238620201152505157719577595818729914850734751921010713176047077320847690847752581417711639494075560875735391579585564172935351407148437873163272224464710152699195977762667542895336042221669973153994086439567167293217102466694573950396785700647417232025676011731613799216268568996911831671672911428266748002340872703451393488026394337343301103484051275658043306604523237772007630511650619800950463954036402001329109938065875941546765964423987751759308437308979996606877333053630524838159867543048481353043550837083999418686828131281661158121868803770025628439062286886659772956442862920415661118820587860314284265852338175292148307998114065076018761299306078760766235353198086001015746635139864949981819802792444894954101627674682034446412169279952493189606518380529319430244514144578780474578299273457870251358649827057546633850899177121638337811227780402320757784092668244605134157782051006782676178878468766800242830922972212757398349888686381745493133011702122726900697026423883289549767631104623837524927043485401901481636926234996576911861770160510103673999352203284427954445429060189004158230810656361717124904904659771413100873171531225269053497690904540791467959288177069482269559140387028932682680448116130746725769578355108338045719582745874286558456711390317480818381168749601789470443735315221334873693406932324278866656670346742792615672826537685633652018762229584601620916969575743726773272914954754385228238317134413208184895372678627339245889400976150942947685776331978741185573711463796922033867186751559880767062166324239375656928787212237883411004427588319890614624917222962295814561243637300475134611156702217770858162372434678376772420187882275792515336653324718419751781763807530314440865798621475831697315865861566490699420524726990447456232278230582296655219451494632631208424418416388896950082381454172348404210035094928893616016073336112234847305839182798678154848611253808716953075052896249805168360024002583368751431226233815667838058172925006872431458484138004742597121152321502682750164208403468644121798284265745437906465864216251062656869663410034985903292523958663262947647630705512239072558198296202313728415823043166111192596446878621218095211865423836304760433754210871000574165142023805178459452609561297643704317622702738090025976469705276818241602665755513061916963291590899685393676897673028971133032819657766127082370788978255833712061139198283687739681023286137187134506994374078043414417514888621913510656409070766395459693198921734471062072466000729883146555945985987901826037419054605002043863981276371463194250060364909072074117393773854302060103817805251327153859262385182749101333359184815581387395359903836897105629637062089838835829696066813091647421906248156431397361905475037914215820473224431527278532635806654729276307710659060255334544290733031384862688531509917765393798855801590377505432416589126262048649711207959691345877178500713205827280379709561203586475429287739748239628347845281462591464902906121302176411085880839350864191020879172080844709111538919021714965737356384849191217473288979447997360910441148900816313887831002191893249837160101143860560943148291106636241823233605855094287951192631652006240694990312049351944116949655527145874874108567891509297181890611672112113200889211394792748567295756848939774247652082649903704081376490575721867280447487059630541223992917941086778006179927217844684311640040349227315019391024690907787343157062188560101117099442125215833318862888115049946321494617324971372349934914992433503627351274140308459231446485730212937952952328881341811022681395909781310881233995332438980333815304179113572662270465104960443619007976606838524975039871186535089069501635199274154542829910667320708546479457970849037402073443146504172532481338832411097747771029952895876704548755573111638472272978168481759829132604332062679306892404439735740149937850979262669263432527220488882253044678006685430201679456547008522271108290576468128801633739391843185652192616536497896688772405101211292445728310252934885340781663243559185942038048773367354364544127057741512723800027376264689145641895986569758396939716630491444795160002172829026833826956898754597187601756748696294447820910747370654417299045018667296412692388734949626938004707902113373722802563042413974339221117043304890163443855857145143170491079658920645644580257514747555170707344337673323662168634641854599091206038880996738903441248707459576514048374366925524037941428981783390994220592491792826418821733879959587843870483738033888072817135939333959170893949059372012005122944222705163823126581287035187765415895798004929310521504605827727885197763464089473390103954425467990227839949487977075972504965331533857532194764336811306494262733297818613603164367828598872197924612160609574334266811057806898089059681412615836016764308942915430881697803733109536048800657676408347071339547006299971725115741564862561934638640153975569080714592831915065986193271326667742129388494440699208046626171997765121494153002921432693817103454003793914771187061101269857846146969589354210496909282359446902275404325528085248117178539979075491297762577642536760729936707875362795411595316231914546455363296402913522807399356792680633290207989260528894479182363916727811429912333395295980076972916244316695812653949472610077485932965195823451650158833148540446959873978923195839158811234915108269638221421744565577375738444731336874880294040723019626786746629252979677211954473918267703651117399101079331640797607855378895919470896916183082970063825936323996418790039850114848983981242418303500225262142869444310630131561444268495237955339421838124699760640287490306138722613233234194468657141115130416486494954879026860282231105237962172881878083806594248625556999536896488994248318187445458111007055840635665094552712675170872884183839274687574499171806961214694110518393806103209611790950359314357947658990921796907132060252512943902062977769003781693263124259158385331423739580504783295112908126582545844368263383143025329838896083165538176590559787815453679595645831514571175929041362528152467044066101702310069641950189942969383714856991762165899486479231934538086635334836373132207156792190569529809168821334289683952944645892395424778140807285002335559092719978667688026239648862601311717217812969997572961863593253612522865434899944526800928952167450239716860571198058231554068476980514882989114148854619103785952276535077537648420920123589650200608323137917273369035687107461287303182792509640090964024559276794171154011254311281299376893881364309187295736768065680623399445901373925901811716306565818917547582806424654261378370985096315096047847884441812368193789719356116002872623344570158140612941926832530325295699035665475395497309616134418370086026000659884490161064959435141516906482476796992138791946413076802955915871869717192804538449222533832361046902569549406638193796559732363657916791635791011361825500674254617009909069220751855457482808436352682255458756626949564000908499033658801209163661724374024297448963889923166832603295396144674686490854227029834469260540220452942974801478633142113897552756676264876235160936812462935635716536663543056907409589478396967217297584867541536900884565606675351291168750316918105656511872309185091644941192201652242601938285257685916787317292010826669206316070368194546330057208486023479848879698754345471876774545267414608432250971611654165894883952364162455477842520416364993977640890672783386578308190646955114455804211709253781627662051965702404979516798313321061244704830677449352160005824842069051708980155777608974473224362579642790641342938111664823571362588976304523046822455354161456291443106147938872848987406580106598508101089419511234476804270047095991838594250926461406161215909066065607317359207594087466031343146987167324632511800926987671567525355827605767370993155299458490718892972667295746484032492569304095598202594934507916620990684050234927861700679925969025599804957872051429563951226245318278401185504196972981788556468329963708633165536087379310409823093076620681472722201931117439768032427021006653938135656950528784107635043495698499420633551966005489210547768416788090292537471442335749663391181270008409469409047077547364852280010334060803499814657819644704490117965892581123670950446708947498439591522669539105597750618729559032079880987220802368535706839499910311107455751500894036607216611335289424563101635338062950466619414214381382985832359071244410221717920135653730486659723191547931306743009230369347447982228580728632299320402314113185152723074445748963147002358203835372763310269681070694632871690949621092751862886768870960040987711165284554977560365110288909792388716449761063885401099328247275588163916121219963130852151861122904835682739380794050730462465435247823160918382741001628908335963903109205841791643454816990632342990699085273941369943697072016964260274638273811241575081745785905051540721296414965892523337587296564794248329296017754687661093868278036836951992867748065114369584541306847074208324720099052661252143586322039434558600293040355486436244930129316281435273202815429643947511549757627179717452218447349547268405785571862794528988859123759218202205374897055179770509237714960092577952832088030526607849713855631116349022388651588222241958934268525622052499144890634257242022021820448740678627243860511270670480919287841548861113294042937646054906776504151051093862458679129595803517504488404958653374706138024287637232269025418443192621829474964440987704520531154121909245559719405650389425856885888424124031114983286503059184169906333959912276917261473467887834320410347414946400440519835846605030250916946620682228732568915639500760748383431506901972602172544698979082926027483645495954507953780855049901753538466497165357474647361826515916703132306550948742134501396298581069360432951449955333763308336008327482730042605261638637690519973933412370019991624579237911201975490113829392468362991845753262305977856370515301857702493549793921126046078306151757601263138876842869257748250730470296634371927550864754159933704936130436963440147255186312226833334535957831103427322832413937251223152671445313226260268732436096336461035551738188792931115028870824774719931443377105980773309757672828301794983205389203930904961545239775501264084751882072987935368689441870733088254828349320768438763472096376106607894298770166581806140250172568169509273614472885894076929132141091056692869719827128997247896343449861780311280095752884945843245534101833276416690124583376042775963840905403851988704957202236231389730934016375305609251688834863846212265276353543058127293344040328948369726318713877135567709333823721310387198521174329737374950995488732679013303965543228813945057863368055990382065345082352479390056753429104099302513699242507835952843410984281947960827625160529514542692304222047860226487939619117451792922633410286090596399531257290178631879681673367326702673803582637707965307029420431398986151980011384546127853362656493472840820455171113407322310743084037920393254073651727801106605262570158510882123705449523089431495678946207296017808113100281855779299857830044496032440998819981219404065933454140976004991428174503730993458214439567549286177526841460689664981134747747195220189795555086433500120893694210973430018069923993724413491919668674028007929989880855618380854640992227766203079309248850029744485933373230106020780508794180636540156047727847279508007001147414792021624125820001082314108661408040835338013321050716028472854280661747896621809655602550471037875636647220071155609330132486191273800550991994126939540861421444850111248619435098901490173171708718349303992430938765903140450521088145213610667882829714380992739399209667300225785525177014445579436836713563234720705858413978711426833967316937000703650004633614832248700982396305179288512805158021560216809779355628715714673181003114638252191925512877867613908807790255873723349025317919525803254537154329427397301972253858392560139175763401321558124001830915163045215216794465812450069418010721981950832513555106926379560823421541173221524888192803021329024632065363445108350213918208342566241121269258566640335438137274984756627724521517057331308318356800759808339257875127787519046038170724998448354561582568802249788283094921257818983749633994763199518640872142351262719725628668708236853672166769996542710087643173707443703460881810351742393521291317168964281844285484086685823372507151207819827247815321776163708330036161053440078322851107252441570109615231752852176245006882715630232225588168278908059356622196499003778920793290288522318385709721209066301127195712895938468458436099245153875802564813306967898084022358180973750826331591275392469034779462683288590627961389381241968773989263694594918109501376505225256179574082355225454066499804620286929094627042223180379660922677663740311782412343176015952822153163693009693926591741261572705219946354981753404285828821281518750425218888205142840711759010558999745199576273626780644581171195376461191638177517084851782724381673163462358505232359501192009559951986266319089349199858852746883792097374778098245516291239382384614116222410771551704534496940757481844795617303882393604095414811380772302819810334404681504917412962147259170535622913643710664730174424897062665414889216218786961869682616013188341125488945084404591647227046153818413255912696323776653338188700160339004971602424663729847574617005629145357526134579936482207039202821805095570341474083375814544025692291174920711063866784228473797853455362347621873730703828306604806274370462499510330462321310682327746120559302907807416175369831078806370013901700298088975630562630937641439617497860289468562706255575486736336748907387804697302973026622158611490439913971324694299087444808083231276291989287171162703308388950637256447533061114573592021978558946437543953458968527520409354607383916845190101832520911697603842204422292010740046871025735459125733564164920576364060271026494394520452657784387144601873506505442358155252193224563045625971544033603074515707568002595370958400961057889544836656541245546436978574071264202036501710032294408259222563574346360320918230014450417883536441935168593516525325930170553488008053016753977748409996951666977928734673885703091281932035197920187191561993580986860129923908071135252270496325902284142129666406246193618638780280227674277876534211548548671020765364870564522885221306117192832453374279889814614301757364583448319900459566374346156264871981254551148798675090740652229931670000224977319949736920255169799961721647699315659085753975983696108821548769309197454170790308084958703329971104565895122814244363503095184556193580253421685148729638732832912418394100680513133354623556819847140665927453865567887365323449338293948946355542962639837726604568429200080154192456956452724696378986790644609793021186453206695462167713433643564116278675346504712670045688566464849474748412845613755110426439158361242489032255342832930936399259422699886007819292873410175753529808805384933105716158787434913151192182324714685278274719153350311369852115589084664184237059571285114590151731680623527565233350685091980316094818858904932696498125661901776310788972156161431953251100943047511254409362920007520197370616787537427402638602641242508569625742169883611835594444634546262115936811222425571097942248291728521355283810759585516735804722447655619504479943635754873386455319814422192363978036903335306221384898904567815178334118116825309814410244451135879357764036267779625052739736003014585202651059688569084068602156297073671488411569468117114464820244061838467903819096397614112433558537325642549357300898301784284337946861627536272243608834323992203258853450087685322698912096017276011225490987517897200040650418970071889053573328251732353784330512669129021709728323448259581970619986158171316292504138276976657652384922032456858432898508770698508305089494168384283274506770553462496842412701478609099942291936490634031031833425703964147672806164565266246819408173039942029593994885767006558298647770229105255791976166820637007980013512968193822923280686580542270548275358221454381534558067251098391322067506631805590145528963417521259559644335907072250829815628439192635277813806158079739868965305600345439269192425987741223772666584001196348016987679859649960721858380780707386174703066348328006690441943946035017466111754273138439141417615288377334425588520581067119154934595262596976959588830467222432957473357366805834168990087077633596525838589168433172125880673046106852923971131251136412846212536781429245437230523127362731357047554402358414751208568952876698705908754579206402870212808663243616207069918685471633699925027699365125800543980375084126146083426339319659860253794504000144437811201270708497601347205484410951377791588200555206249406738824774329182644058197859244921434856946830668549494093734327804969046828388789358642767789161276266626870156400439019340986754105931631229218615826319508215514030421486095263036996675221087932578304363504801291904179330545862995274082774256499012288423846492889635538018771606757687595333858501088648602714660409073403157855668560099451532332609669967876275924233425795827621875317224500476975159533251353995436024498461811558376184336166573432415005179356060673167183133319892491801560095229402601580176435114183601637244881973222961228041171381984035588797619634831916844915048145765931725207707421160771853355919504029724689210661477293693862195998340077775796241117295035015326362274980701059703408421298199440714330987316934959422757250283245510330310565779287874300857805053390252225748715230522587378973859632717387421682050856223409526061241499138615865347763544810848691231235472420691379757078944308431506531196843570147887028289844461182970920153891316491561858409389551050273942457035844085601644360279998278296673706550852384732486090881412295455509613019347672299382099101239276593118306752303133147827509285048547584161903773769713527363827162686112354901314477087030266955216427015538516001367155529091086407044912070532146746943315729891522320046893021325030355590231795774088036008592002843212791293166034877563976033410509096377097092167062579164633833615746586663899202613244103144720495623142587941870161009019059960338278775350559979606019461850561608598403409895213220734999113523795651581466003104445913766900413660507619534139993918724057528753467518460261083610196841324845867129861083100381562525016062844712093969562003658498230613727514353967908996160889139162337080668880142623257447382940236543130962673532824824710735030669524839615006006380267823211844704345772302260004608207352791593065217040536207702671519306158745854590972813448884747592876109115734594420289478802037961119650506289249701286094676592435067391374863836600756529895604524923285686492357846250263797855820887146052511980081497932836028973884396474678732094913184737885314036699591911241364309902680834986924682971700895464931638043713033989200838980833755581071426176324273195628225834171388812639209835402745859912953887581729595471209966466134717834954493910850869043203940569496145777326000494271680394909932017666274033388502281081695831265018204426906772747939607860601524914627900695645432452629050629572550789353961733033335261170375327683343085668653897914097731308225667082544286731670597373342131613680052163227873047732587699376558784428620514949757750188026547265411089664916714056905992860832929963473002994787566960589456904881553990217204875201199533815517292212390245533549859644437994745484415269929047699555547741347802338091718242697340896920426163940655342439321857613544506972811076168600079589451563800822198169997459073341464064361393037372495636081418732731532160757733917123170072492615780817896080320065516336092020987279608310267118533205944270447392445454883039846847077826922327595575666654416562544767037424354892107786569755837304251505452307725509023506610159465664525843193422061319097350871422386630042061045960732209046611778490146336051137250583081109443854517812186306787623519929365324762411609445335079862296387932823397240069473424046377292624555532132337874990093836699654224209105898747372561396721106954472163891453440765287104090469030499060411668679003763860122422168629810743993416145863890613553919258229210799870747633669988130445338180193897670143584323942619866394206714647295658476333106537420606169681892908634726167759888394819449556597190675643080251657397954459226162732831256816535603334600069287190572399385656033737996702242889275360722660652109096577330447760394261592589671848245885560906492612620102246661542391906923879230984754968271251421864612879304057132533142279769630484989996930101566324757990648717469162409802267329335401161593319105865183967024789465329844162293297247842765213236983764643989387772311855449951768933123474242207568919819187690867576977475731431707194663563093026265956372211255168252960762256365573743173412073706138857625045712261998644760595388665596216508774206525010572068059399439256076358561476436151236396303590275977440057836740390564095078559618603341456146313932187600746472301098211717418309907660277307726061391292769033976988721514728523287034516352878213894186856660391826771762871889667837180503243512877710686924295618020799590111887138050238087928592359247379312711926045933544027908663893905678835275738321640132196012255314816933104134531819115791829636893514385633315653256140301983096451201757244388079065796064855932558747919890843513480423413855223140543308445890043930876770175608412302661240060462568475363903411902477393233221952377489665957815644585050513371885071316721373354879748632778976437453798652440431203837917479919008128553548804694085742073466987330998480189461902489808170138630086468427120040088762794541967659197836684140435280659532877163037868522107049927186793546508842809705372542263734996410319631313798105616371797132748414628709861928418480333140628836338682574844023562150243741249512112903979185855675072251915243501831392736996514621203062579021954504527083012535888328125771796474059443807564007137455912251066704593676686384070745828522396509155981069281894046181159802315497250041734023662692207872304772816181764049407156071135402722048694027078901544196555376502840849062757387867722743711268258057702263437285193942182010900581622404889331682353728086461699752536443046019689007233319905449824105345353166643106934722164353416119351569205491918099336969575721620284067181181094136968383034214161375942349622260623626327184312426933941936707312452803436588597170280189677577467866544909371564200733635806511676383601494504075418695132405174274280433068469761205771997956419925633039727299097531919528962278914479657551675371787050896867490904763337881997786412437101386143190641114405086614826313064061928308770990161299119299307532591636740030127296746614359838828314521167156937476177837288636306474336320302919101995956045798036777483247315175078646720779020158685428913479564338508768476112797944410255091800810211380483883904720713596570316243659291996131387066697430550499471450377208794089357584927805115080620314006103154193075045444718147706091775849788901737987585992537645241190080458177609006036720613919128019188527379175921884967618560555170120773429854434484430859709792451725710151129301839036044892378402628228669039497799034056307993053142929567014647189233592731113624901255007002304180437887632865950564242642100791644069782555756859716224116342617921750203859935085733635571909565810693140043770898584430526547196036384924664261169606990980286838848486555988582530709874739664300269379083228850250772467482080848433783170243512342535138084968257238168124896307404477950335859827323491465506600093711360219960156122459024180684324565976834021675748256177903563795155048063198805576729707631664033353215264228835361602448668357895595133534895069762025551216039419821780489838142323071144378730522264358113643146327675837930260517830576199557811963243914954168474984586733446235126169874779206015833707622748229187117353299812883556174701565184898366878007854427134941543906079913245267767208002570324054719931989689482496575899564398598584677185785195349821275006179366986743681985421433512390495823600702555808721700574075587143564291422827165159615688815950105629411870869146338541693846082809086532668597091616943240373257536533264548815382428718914266271303435710805693793895085265397236921112545621341503528519459402804665651136834140260006944034794843907952749262349032660440012242049350983848291718232848546037059398524915213991767743508261199586111545779876380196778947729968930440062975650187406854104133406013207037600661885087122042172903923860709373825611036124510858526614791857075630963438999492884175527197714123267693947543214982942101764174596470734218768766138240688860874189637073341497313525865477062019290617929979711934220799645200110957375585464151600187579741156127849334120253551701947644528077304845609162556490824986575667825792278558342625023024994753952690266543131861798091491165672560391466123457756133095056842284923447304407300688102861022932695108032560615223125141243960875117168849004646972272097675289706316716551661469126812023050434940280546586675020419695532280743456776068346104859319497118615223898978482650769409666956410268129056025456296673973753113700853011256314482151657963619094669476660704598271076085624302837234812024338039756545305074478877420055535083827828971807088638073940739360510946006671151799348933881593300296148974679646931461019142040659048544507350167041749409211402342276228714140320283165104346146179656427696362908806985715754091938459850877262908876456193296543002037744399440908188517364028951571534926485666469313845534886220531563183558076792476793540559542863639279904501988968875677711933298455326220932282346562376479902143574838502308124902415481958790487375825021500405669129737240856082430847220656691189042484263204095906859342807359547862364402197601974127502573485834206268006073064131021898342184256269499637730797409515235988253960028594503733970802654546530893382684603977333975758640555877636264304491607340107760759857806332999201754189274352149866129777277620913851746954502149511572493390775125259771653997872375742777488074174332371996378235373367532782495503173770303719214826278704530764097710798149544490653662541808003500222971818689585164513602867686604355123053000701050563752823372290520665997092719769626771047393074352308187300682731271048053564826347518986963308189807755708905870471576871784994724969242205312304679323193678050509318935642178421839768435334147307029147466439266671384320525083668705346276284842563343922196250929909031240131663827668399620403188274775939360349303297753567781422466067443693144480975856162227901655489832310032873723710538658141129112808928072093517974304102597506059309823140643654201041988511805698364380288770098723232859864316536785892449770377437950587654476889062918231209527646597343638166020952707840038993940537593587035008911559603576507144085848812519724551839839027394375651237149422155931931896582734101219745108407958510753906882402725867460163672067297630264211882669977603965423921903126490220967019588973963507856863328015503306538936862269342856894876520844470823660933316945864473543776092603508484751552350821292366640165521183692440175173454863778056942999546886892352367889699562728269785232961780478136353885009638339857816200648316077344462354780101608276849811655998673653410843955671043676958325125881928124744892589071530343317649828026356298672706483255408800806183026304729512699185747054915551081303961562002538596837941055894765303317683327873669504947453916498139479233040452605117047247760627484377244087663182994026255788822848556440696418268192923789928305917441477001705440579297146915516986371291170508055749320655132810651837269412920628110563831446273337151099973963434505331384560363833115527806323771760446292821491291075139714505138595447178168975400587617548037796101778845029382823776884348028539857793295684929562030343550032508665063832144965931740721674384982125250381580509615596443719732690662524721868874831488764636721744148428236617009147759042275125853877254081092849644893991123172160910365903496410162278772621131585691917629162014673814950046087445695413646776613488586486869414014025390608133333591839877169241843928948876779607513050992474678537319818190919922828804563622897396074314781187983887712778570632443051073888083977782724502320494783581413301112299073765261143708438486197741802265167825396436531216233451642321720474120645113262075599201597677679879627704528263799595028360218923940074813916626060187282326130829077889444416071339136715453463361829329938370868343120750917323608466421029450894956344437938782407546103171993604351273124619755773122954753050576244029370189442985627140980011383590205073340423957999855532270247224029730600587524434482243800550931758024655991881777477223248866231726426075941876242966862702767308050921845007404010837315865848090828484459650784104030269145357843628333807279579345792919297598102724343421642871134572718757526705034900329468853604470033048258614899334092741088964555633185357016771566142547308062519254445170895331253272253316565100309263249165980948663786487672580650332799959557230134300291501286045133304305449081533784139243679826523482143263458284825770907440454611811008186835291132584230467442076359498062475110884245085288995985334815959211132055421479181377533107322223664060238734523139590512377690932959807262735268278610391477166541282145247875543234499810407586781638201260829307689807670804106921596884444554107017740100499723973931140380623864702225272622587386216077463159188486280903767954773774833256189187748548301103998023597801136293765274095540242769640147525012410982183711961792202660617161649663457687017094782349081612035488861724964374363741664158735634259723344055533673760241809350637475389753618184170940436995326661844937616138522365782158387204223908320283493581397925706115991575762501425435267089990670065467050651935640472152928433976853734117941520349081496112146684502704525275232883045863630560291324562363909673793050815788403682453705498141654575014969744360383997023425871503255628605931628337427752286997075601508859313357468743018583008066320576225522494481878362077974363982838461166985742927577285093720370002527742059598308026271508266265659447336056015870401907030829142562424848135989026302154393088681460320581016049202171890038700575796010282193186459127534208054871487933719056834081135981846280351585775975882197883171405132202279486909059753997384820526500271125068465889886402909684464676258801642826816487737657390613041796705926558639958787664920675802120567772091923752022230335632653925760556321474184428370314677094875365562263443354192286948572997766372646100743562903813023946319279115303532770753976667504015889567191722496173236867155747471575328521048168159062499560762632772831861745464218588738428981493082083708923105379710718995229823488294743551465177041914190228011607348148172838729858488335392284071852482116482421154289373697131041178207232342906917074061996966986605852742894193741168200956719659482594335614679255931668867574504990523847467510097546970440475937908048310573262887456252154680207299235395877952964832272276484357967025215439756114874426385590823371963554339156402171055455550749504985673355363050095208233889818128947360143772896259828317629741544236252206211038703421517151433890369249771159921434444060759543455251066718510755878407676998269047865616779043410237695783099412974114937649597486107248609283610847807223892635650170138496905499428931137232076824615184648175751912409189550004265418271214656451595721246614836103250910344440868933053281081107434578971093205460976274686651334297785101886996594184354252183368737858109555630169909308258437026210623978669744938505099004078679690753573743620096278441877016084688576985890531577182530280935281260364167705139041093022518898093280401444358175954964654392554217912365862489020998210467836054994030279940161142500760704396435309976773955369086258096914579739696721059000751292571846157743704516609636420621909821982906818543380012109303327026879404649769020703791461712923040757251699232716560674327787370176244847630334610323218024734755587867639474506027993361920593853521594662393747560040903839132368168100742016134011664743689304237542990718442786764769626677987462772235667827634831295473324523248115906331465467211413777310534149967140663429520124267937823560749026309425772535566398183643460170861614566321285719921326289433300340511079111434139230521545448507370588378403771642013811882991705809563664127361595438862590079483169686003353384925060211623066584335823552246433121281220135532178242465690130478036476457309468704525846163418605294047110048234489458086971681195929010259683774314255600339377679954759055908475937196200851514599615059602358700219544660940466934362832979944365918050335355604504197554907651626466959880354568095873549509401745222726429454303018150530208336841252357730370389564047920886299680485122351279291656285899415039345356310460067306737547542758761178677574196303982277398962372080839080757167052609967170543383521850141781214123572805128827962737855569516635381021201830910980833032658108377878724455127783284373711384089622150117940153156194937249503214705232340409472351582894369954215001548972185212543643031260211027847932813967448354887705772003535579244680360264058867117976600350927598295084593971146840897693691682637826173889690433687032564197363887134293723355760069554466040040000699337802472024196693699572121957824936920658393267572696471012677815199895084001596284191443729328579000215967112830516009641810987451073051366597427245772834622475326075411751001081775865392110778268278845376857081865879452893854791244707670545078899320362229487050855700440453594395955247702799940366170485887220346870049056943487282345968728857662898597675483071973113844872061765572358791093345467145554990327396552983017658349203321299710919870828554391558097756403234516396676895249704609666082124335547485439669663939181541755068794997453006380854762565104230792659831816872547458390179296696251328287665283517581379750433624875109129407502805253913976165604301234608099913427660701199187800285839637099455614448642097782021349392904804978544143640178347484709053397560650786239010429808539377998237988669638855615990972651897951527036475893052986450788211038497683916825222287644790990057575220283909983387912682988665061618825275066160938975487152174352380248850294953549292884663325941941509720571397311558626763370773786501470686887791603132500735042907936599653302035704849783392993440753915218491444380376215713506325392113900055562891381729453147797222790908091753538564433573763061939651971105821492408976157167343722199411639958612003849343264636668338838304619832803173571506818711115291401714987364772872574510566676731393221654971280541514918772865518742481493540317526492271201669510916715193871339283346215679627306894677958987505494265335775943740894234834347885590540434893336292967509266425059926805525471681911638154811523639667992371698038479150110437811740441088580966611560793016848446457161799743939323152895499095797544293965507472449294159921148305283940686157736582169506459870471181365011471302137322018881572624356678456990520105825538249303163419768849018586102192358456785817130883241317649803275308224019775684227761834914783721184183037422699325667966859513441028351384014192293206721544105324067700662599651337042348829257089965845865509567933554766442370897064786517875154563349280355833471581185708938720876385291253496035131624608613273895866064297191232807803078300587204894474279172700185447342686818123415719829351555107250183178250745270559713443859263041671205875544535638329019058586527666821562422973586413961063620073618075491533688108551996509007797715193687218160284559744697667336103185090404850451826367530056065307973475804332006803779919945530910503315265303088843835097858338582659411720725609062784065949124990615238342644087360440789770219395942224896504141172618548439915500829738168810606736383487661592560235311343720768944813308278158038277972873044251324809537887401507605072293892431575132382545926352349518157677158094872723568219030275249485832809443606172268394144975740451866664845817762087181325292313901991670041449963716666706888325286263185691960545978207434582430419397209647218210537603713386217746780220276746080367246390208808728749042567431826761922556919483121942462406472945364983995456157161605988046639572220781261561776677535682129971129229343472104225758172856016308803067973800830554710899060708490457476042288796039723045922793676468979864047456312983832460118907407243389997504392854555429869910395686617697341013446335946496979131084034008512531499172296974241580307924262027793746394365097064642541713775744533232108798263340063490999746482189420180299932839474639189735188861761951889165131520095692025745819783032943712293623869583268449226711778000765242881904201427222659142034631240225084337492369637669691368877818552386110982657767503435851389007148283147004344425084575784496433732714148625945443781268635253159712127185336796929859185085491027098000317993846032309697920003597869400307294185432487166966945456802750183939184859434559518857102021668042465473670960076378887996772687592068300908938985706802943707191688867235444639254547551169133914349023550795164544009682970980021569639179046234106799978255691002513718135558451547753247559523803747684822487286657049141087220687136349662059231457365979017696427409088109597186988898985096212320590570552873451793980294125010575398855323311597497072288327198018677723585027199408293269577823008943890593416790266725706596352241513764234453433793920233294757262853795530271484795257920152773299008142656927310019111035390778364020783678317009075287577514844897052646739640286433594629704534324642022657184092330665133644262855105966755542608807923905062930041060044337976292793200217097458199411596704419403831841004518268461769962495969551570138173720106776854515979877653326571524045584785784636953210178673486463247628904742052088117157919413024881072894578503286496834034210469801038931789747405941083872388165097574694036902942906358091315040668040772963127927399733908212024318500953950591860833745470625650643227033787493539231998000510345948693172483243004311726332190746389121472544069484817834160107277783561585609936174548061746645351699998163408365281142140580348112171975782224377119912652709332803326376065553148715381282991141353683578681290860418911042484880752148219587916529150882895906706240084651890951643558990702210858683446313779337054438081486154278931114509267496666804053856573299976040258280350059229042316273621575027303782060930216475099131527371543599265634719235814380568288771689307970728273337930837228874611892231997539838716421198493235385537091546404574719149964172693596332425730854729820744110030453170922648719684198434022434773523740033946573277774759382580678644838569029785031843604747468121205558140418026538019151386376058246453538227670460776816849868599340077532323530521186475342066486932997837722769093100984570346144785626626792553372651975188912523580148845438421372033331088743311407674923216740603444187157064540609553677834460731052967169321112411101857381269555519977435883418276907266725237983201747989953631632637725055260369685136468286944213583849608518680858501419573830197853863028969000957749266147697983241003236797726181896834146992879755207575420313980951894924327808191668414076653173229905462339361722538526819881323751069652610352022775192622012686715721701385245806094113725311845331195266133686712963507742283362844345304857076458330315769694121446274125731027236113436323128556117424640614527336029356730684869308916464458759800996594631179933786806876572594160773077417413563342603398249768486940933047451263451273688265669414744483509444789852112066393251300667721772162386035343939693880977041761999330067614239465144787049058787135193879120360745888681280679754560159981027843455480757285685658531179039084501531772533243408798453395600862540192596555235932987011995080636751493761757135350238334984760356683497550166940473455446077324151545583875642602733564074566771991657346804795665996458402583423421336016305865122702807955787652432500896372739708355150422527600434495607997195488311045655178846441536447530468065600447730730297424529462954344989913739841266348786817806808614951686672244832747581409218104302246594475831827638044710973948823521792341481970481838427258439091037473159050003858524495919969868338045241996963167446650880260525529611891781169701068112935450000280602302516032735703431888022854960845242440064299705111777127408377789221241745136020367418339606172613256689579225809411395704266802016928872958014530014487702856244032230059666332630231869596948948159793189435852909766803385713281675531414991320091229515370104765370093021923438371044082254701521823453472360131945807604573919232543297819779857972265363339056160814314686459447023719094877555503476809985477662025143400537125292412660713466022324845730043373485058603706247725669032375122600676731605229463473742784491778713642323334059825265719100001261224878296826295551121909829265275542634639511890594922868743649197811041525712613883649830501290046621115280398314303036232978658858196535664176121467956357002201020749883455073186938407090174012256496727162247693693342700537896398748087578652821825861938513135311389126882752814414447276008048315607925579681097269514813961906583567979493827761130075695636990734606940066739317245408651502159569948182956358305482294026531946997910961642524058313405456169383371231905799102319695207946282983942423410097083050759766503926544907536064397700654597017367156153141188501353450370392361443261740974959561522386259621759818472044443630625101616492920227597850747889439593452751602761611063184171620503349403582008007084764888761703563412405139157294330763012177641683829506056053750303191389922781887392207966520743966647163067854810286606932196093106040389687953189477642309626427668688698841675807300304156575749829236486985238067306821068467649861199206786946007597463059495842531880198827046878297748833579829556412446644977272014339783644856537116801138184417469597469609665089090593543002112841779233828513307570712931552562423558656104261042480870326761417480134453486583451325578533024124846772068256245836284597125245345542291019110996151478617070166303945083990389391692123022637739366941023503959277298919429406105980602469188121565064687281485067372573526005088632853460401713805828172866315306518339334243555591935520017122926474760502015927466280121531393537004137871034775738415970781847146221079742465355939576207371837449289047669785439157317293429536463448215199072803763831226651012715747215138307816426138229624759677214985554803918156140786116899746698460001409974575561320623684117038867311541402606101555627534000821532151622434209277374881368535600083916606577643724365776055541578920524438832813929041563105477554723344638250884680994906372497898351047016498890377682071769368976175215018808634878702608623520283964276103971390530258896547443612009684366915193489207549959378655065363471328372076546446154053078703531365945246627383314465488077544386482255005247006303639558815321419562474872242537655580880894309597416962932668727352570961422748694342746881499789477802920175280731600607720691774573956128967436146912146326421133004585356472903442030251052358689962328561447425738835049026189503039566441885851404977861399423680411637003068527912611962374956278814307825276148454546140766535387012239836441040302085461492580110414367298855953031628460748717797397726095929746783883253418747662630322783899276649631970879324295070829661337045694162692506750999149664709019757783310853982154906629118852536346520135193039696915277035198066527516513637340417153776095090832716338549843133354476866603450622805602006023039348264029396851263390060432964483500477374816881135983093111749644172152222480467642265958338999182448339777660851712471093445744166852565303614996294921279012295814938760976235802526071151716904077417355543944912733864373198599114092524967645802547077222801716918212653153698145546070525435810432216905800194632332871374009964829673935336888323674010332711313078780920448753913243260388305918093127667577284489015499341898223692073492128091083528083307095391753020703252104191423320457745271527751656154322423522907844815702509301237312515443812988462151002405765769710217389968201013126698893831985754231979594653656825789551222332086420636944554241031644812858134063410971984981426569979769616365357633381721053184500636602404319612170559306957333160010103313673365540734605802529152078261254490881966755246312971803902368509130219570953570480542547522752779457758996696694184353216775130815398499127019709009458038697054601865568093677629390999512401959654934983869935932331605827441584935689671210580096347902098779524104859677575470074440919816369814840928935360934218392133694679821119484196835128497110835817350417512757372942280616001863752553514101912635037001887068274473404926745553027043958649354858730875362840001444676368615823526763727074725982991825624385673878256639457905268307919430268777243380076468965067878598696508621116976786067395395024366851663344415484226774037725539427986855161745404387638746388337045272109237899159739629783915871446723218138386657554304322552766996034350638988556336666630628468575871452348890891845842463006962786939351214003414995553545272033228431151149596437760253595974540154110695818507037772154612127629287900494905760886893899147812906058330125523124661423700576514088173881634008916877894432366661244274995924332490725601535069275011415593625059136886951635443699133225409643291221272649935535416529525418008487814416705729657630120233940947931324169176642186168499786257657524985372637364472267085564709024443985073857978738311943712928697817844380812335556242087392190354255286720634321467804538360918167280402696901911169743311817178299260034292111571651076858777700428679628986201042936127545201355181990800382713286363542467490736895187460559267603811029801895581327204810693969039589659827481218873593338705725256519341089780438390029458757636059218167504987061539564215318700720238290005814065370983926295808650456709214637409285638318554069599890364777859691742998141076493224993578437767697363385078591664521174120814124401904654317535835186294450460817165584123688689256507424127173259816890302949447214631000414271249984402846531405766207893861466987215368290508815758889111973535649074703310293205841237956209578197072439183495068085045717085485021733379947579907705392181072504796431402780783031695795689112496052899599711502142084828857663278303144930026449334828791287308555823957971895345729043291891917372075695398627082622199891107215332318299408294971757007438249635053785634344491676553472273564957939530874571455909157854534826565737941067269420063157260715350731666796584333082502412954444762861366408364618574840560732498548808024690062430431493977380555220352756744541189404047127855573527748174507883507608403370140618575166230650422950280066596176508669821529754299443817693082005017328996014163888036827309717217207264244758507735672053187955305986595933271920427302476988946003707397822538227286866181633007530276911632878769005678192152310045644715127799705495191276727107605824486687657924593986885681439717453262942188000712023715528101723579053684378225271118196644613511338808513827245876150483370135668354878236573175639534255008074602026051291456684367350704487696815734751678570431932142898818686529093090104356526208858968505009756435171755904816649424546117872224553223125700681794872457423105240241408020131599455404064016671369571030205620151234399039020925586042184581755477043332770051147772621518646233858063764407488889201200118145339773511479411836676603827680188125015411889974513717223631205713835786130637893110515334701310654285730206640296642971247720877422397483785104793770569642497563091463570211269944891703365469244426703622335936592967435222739466042347892950234135678337468138630798539051665524347326980282071656420866842458226736207591669667732521936526315069413638085563122587911821882726796768756607246119161207066607661312745688341921913417919239473637345512637349657989719717958624339833836851185862283122132360676241153121267887291035997206162705196224111798054559587797423839127478465483659154989128942529342633851460565336834532520352392288543388109191321563334298804551968678135829326939560422385756163560513480939714337794296346146351140710984393604334260171152309882703932923843368168531574789563881723667269485210911082658690268070025734918353251405047804141618848070496561842668102953726194573229605716042390867050062586240752585603937023440098411780706024241813625711253544876555838579621785538629332233525895861410999785457436151287488456683609345425377674648566401148490055324444723592439366828329010941663544575033268856952021547656860342198525445242940511162024298919623222329466910934974739757433045456045172547562547075058256689296969719476632166823097052073099530209321303816379704728513372337841744417757438870116769224739610291673968534925729896265612277641213973154983016014588632643911363701347915689861056408205262534660318613573883353702649373546105086241384634316531657411113675362781399757389474224193461142063470250818803218962718117823240810573510870734277684259612230521035653965311806759303976150753933447945442150157736713608962160479863846144214823782411965351716694963839065739117042037260555660650391456315204639911714817339689248000392853938552524769825283420412586621920389551088701767004092172755458697434398947971544905201255633961766128107954870847376124765663288413343321729653184156587649786656282103501572426500763510987582259034616222888988092290745026310758553073821546333000397219366569948774312418964147426774277967814055050656713131578779591206924720921534088644028477224001432426385086841844972172138082287135115787708401367937995261363464056576885223164620755133050748645614706610452621617081857388830940564243860146095469312816007905977825031952447181462124308561341858533163340862534240859586291731512950308270486794631502145053396378687976134067284184539527871026679532178160490400466056204625397408921402498907507802272865252105032564588343120619844627684179642816080507545468317649693325700834484538730707234039877661367288510972840733264636517733809760317971357709082343357700026149873599880587960442896043819701885916676448665920234333442083433032542098493209568755450369645760498034199497322612921034225413883016385762309019661009515027419403631074538566400248802282839207083298398061541627016364256245532232095607588251511657284253689387879824051190370102675184994317152390988231442108908928471574392040008748951541548771974715348232529155920272397903215184019570789503027695301747294831780236517175529331727477545982548550201866689066149515948203506909283581227689931335380689276335554642311318311912385105807917625418284218498593449718520048261854249767969374611303278970598416945633372623757170147472965526311740922792241782706146778897839762891216622635439868621662364904540879611882075892694362843211369560521245389574818339524768016449241612546838941195078644118655276810819660173512610473279193106948402284334558174706618106026300812139935180861374359999649447014024516377801574182004064149783939798197779642234288844137131957117630277866343413286872938307274380840728854548721998818163974642826938127994095824701320154490531430551363755549608147129310911575416624059542539645685642450994952984098044925284092167633012871233096318233476526071727715460509507495039112490833573547034896369497033664128030082896476487930235276349839373880167613964406396818066107051515974314470662211718526840470209981126031453902915866701711177518253236229108259148087909997471581433133502042858443061383629374542500542721373486253444638361701578958604934746180964410730819141572426821955413675121021738204526922009062825366269864015670735390635772903262610720087024619142511449598826438392549079053046675589274738908013325651012171484406285342277087728212109082080061767956290489153904351118543055685407902252541148367795602465871144251021335954174811452583420603133957116845435290595221612190847129150100151591042225949319810585529509465021546075118282515615377559719160292758823282121691085074000123581559450093077039577144879053971189773310974414685482631226234144567310328625558306050179710019189780947121775317860994102329936652502552915196031247047146929637910153767692511979673205285066702710522035381976359604557522018153092025529375013144550897034477514612385977547694451568777603008427845261405960850653152274584295154762262043482074812361843234062637950553390258132129460141696856202526602611684115569112692020226327516150169225890634045962210644120509977633784129143982782982886317684060425711127612484094192623245494840901924148023569903966205708607126511928239050826604963970224137744205712422984388257633530762170240430421342230989339279141768643227376028188605634737193647431173080361788885070249877335704201765868042151892718575265973405456854819966772369841418415765928100203517037366455107854167420737601996755918089973158599490257611851582237171639217718154585906854469523631830983341460824527639802459851117759723214967734032724737636538418713943052552345023693097513258668250342127551707231382856822601633248003893409298145992896493974815786251544130052221756943097305113341323705243024791899342452284331639636350387259488685078946622195808587787526539083865206584571812746362192465729453916938849879430150471384074528021301805761613155851665622140205582183163795131523169524239148883318913900184918104674434027217291532815308957583965206719431661486035279221517030609430919092247068928431924821249011828889576935217177550713511459801686197263482053024390293966411996869244161023367008436692895982522664009502365272819784611369003103002453571606290247358750748394623233934805058206745727164184340875444803501931200097357296272755072629065736469450197012195827781681124593749934036076468061096290548222239880648206882737959142753982614160790412418586019561594687902120317950987538728052907982149265940224809817817405660271863565742392020308216895921282781844098486504839324888434492120077678300122587847051625601249035893406609707773486510961411081404183817192132023434115431509740753508412294377506189221303443540348068409152009225430493838196246926439537473402573684210118794749565021453388053766882826294206818552202172165545463462413077323646947198765410049095533797436462747850855093290978085246862641706240800998800683053968537187099901052165834328197664412520719805920130323143971301613879184924149487863161941563052841459533071739600538948913468876915779672846295720790000648394988973011889737431042158846627256243785534284377082259288880040090038744088487361221511305538014016360671828339434927825324907210549403891753066664943368971189868610094685407946827609688028026695286751053819888524788455601368441698428898906910672208752163421893866610848081997330863207015506260696874025327594509927547846500536367349249330264029420885084186557537248816152706683103472536776064695788463069793033862793145594549907424139968753954551229144037422330287836618927600442719334742262400089115300186012938586386191257171807289680123697624624173352209200198597531901393075705601668584457917709976247865876008047514868556659246860823222891784900114363895285330875023284412159036167394942850425649399390659821991175855359661827967172018600472765730345275096703614436545238388552741900745563892626337994105418001182734957792797076538944189648691636934946984098830365571355899888231863163717625918645998320122362871959590315465388709795942302242170580466705514162260878647845955340704910141954491490092796914500730102220041046483822647544710796481247286330909734549801357455984719281523955850708909428562481000311245953580888366815112779853606234223465219502133804791920591306165680979093465937692214242484824499569269642670339692704643198219993879527053956954405604790285846958068509581258878213852881783182246431816500942250872605384622576963896302707780326113619610886883221128988618989527049822284880773184572998619541044618490971567087866438886464364640220742293945197078009011875664415751986264397650906224022837567164073720646146892706964901516476276819749652201256795887525752861509762784387969735896391673541411397739995543596252176476995506653718637902574125932326520787963741540647374021157542280291735564356691489178834244432003278713768617920221394697775526173752400466207251997915135789796975719637044363431869845618094278938405042733981039576367126173434038621523896856579364688611719931103597706068195601862086611392396721471617228238504787298217216426308412863796726699082401245330439327237859119163323507897921163448467255310681310505382524967381048293764259009280596501596774802200624366573633501282696343661397281047983649170256079815735784671209886875425358231881115428963545676014461788912554831879703277747392764691499282155745220664430319579844081945095417661279498423489119085291655119012837894857585392553120758983945351065513225789767779894012187496076455928995494212071944227818148567554698010462697312129784699010991980868748335050164179701836578040225025546191416304766019348414303655778214154146242211567667436382583498346212103109058544050073500387899140136755097304230928392822609332716262378461141327298854279418450581381083241098300242973482470870718207936864647264725747211923036297491810653686210150891592289397967051153515968517449176967362435128246534132092996248985475087370991407810668183619244270164468339509247393456475159422998644428271244525387473940017373050378192710783628956065031681124171478615330664790216756869132813428667428025601827974829582050496839135740016006781119069958321671822660171479650298436865167861957876289120983298669078553595331769094204666918233447787891628819726490837191482944277296290844083095573817792828899308355600030164172747500288886024779474027434789158938346069464163057367949947991326384346725579782561530425098504267121959809761907709840827002587241322242356139321861014273538505097455731139828244967853989886195239652349527557942285101699894797387095531272108726698178796744887091226774586299108993219315057938067298144468532501630260693862229929776509557732204890694656404092214514489245209083647190193602346418689523801764808267389524945546195090734758967030604446735177376438590982864406526841904646004377622977205280720113295021127429288343287199335569337995172417295124784818156834539685781391660319198124040390282377754588474206243837315674753206609702978930896898673363438245190169296651293957106210993197783328653368496606601523135920503808084664055254827454807779824794678577965058280517655525003440777418592241505197511938209071248467108494349106501145865622383865798801468098961194296983960080357994730941575125067023666069366375631709588546384823557451733997058831508640020204374610852219234577140412715576176436475785098976025943074634403096987224993888270758554417151239654641497272205357246538099747815622914476156848023840069275606274559686768118066736384827546127513159871344591920030470605449839855897821081828517040427923972915781560677499963279445855557829647448098390971152266394836945205845682975440539161452030153903081703793348610780008970718916205071183064084048134050839907282101056017144544515721437528880021716025419459385443336422821253644681905990104122174181699335867415525866687134070151444637066541913542759171567108296421358940617415268097835991592091230338573715811753581270272950977807789806750859362607393506581166922845523460818287460808938989165381101517042410275135471133525179486081360445906963428206662261670463581800667276236484409252731532276356812499498696431475096535503671586989510683572206276301923568806063692864819261832326071026120166223507180495187477085428433040278620097218848038177222065377040072858140459163193620417656118724195509549098675745201638044576848224333944597458780052000658035997588603314872404309466142787746710833564821776018433402209014798170624536778094790512601442174322885864720793772864056790496768207547460304932502944084602581167710145791168201148378022864546888599394000817843095338400906685001684734845484239861321572171841536364947484149923610024687176217636037366397405429080493471646583741317866458885944838630675388312066269332672312169311377039587768212218905236723458328189938908607066371788246229958106817917418474655254355443177254571969133600498055253608243783781712476805918919226786676444455966693870890307782739740093769147488868988355581601116853372286915288512840693000130053276375404962943798057521946877050493536750650107985074426076245384849999642162387975671789373107400711657303403820869445208169559908972151365944959004767954868865535630530745801538817084068991822765881156802146417448010805089812396107982667224092485544402570174280537557079279482949466908827568791889274167208922025583723928167826673075297073422899372378921519450746996174865885429799248202131889338220200638708603610935049688148805198936403360596084182840750592373668679605745565096199194866290417874376728546731386478851527920208782266044667034334269683223355815073734619853275787812402054728465345667111727612188443816959022571037382578224787850667481935090048956045708790785621739979504639236093810768449709619422826035917461422075428048027021615096806608635799565057387441351033531683010847638351367842809588863845373220914889607776862083124254306761264751646735149291354070546206740075239983540627206175889352913256084173129029978596816145617829185113363767722156712531917552390495324476689626858930670349241558586066973103796705526743939526857506300729689019475316811730686250043352580199541067440258122993403009554023987547464060816361484493031691827431220219649202451840859631546368124713216514777333219829116980642261481591481304784033130901604386233504134662871418840197861759751273779909996239641941272386186406848462590758777642012971547439551671058623515319588122404698160279075552376496286289598500331622415892782112889279218925534797650145715242017138129841927930102933257599477307270596171502929546237138155027900122705062682738514817607212233466125396552689454979129686403537775378157681098323575024739276898008515303202694874587118627022049652789986765337506672369639176063713601374015502026033985479327682561370408380861245796565631308881712443601433937281642711462871740121191235080834694009086553841528210700157601854510106163036792740863916046758669463017226414872032767161036193362334333847166979165007634128313069651739039365155920363872800701719070911410757204135601964909878388124585424494092209990352643211723918194698113991093917813416021363891903971603018267056897964022332148965726844642111421379063577259731736448659064443470934035764866788631355319406949865162217272776119930356074968114953869427340696617106149250948385443036256838304945319400076683953705531482601180076896801803809672334754927917643729952839128032574174980846470665643907428314881438828901032815995778720384329747969150173303458041719663223653113722349713235001047712358729766907914689344199381974635969999432709762894010518946450152160070202460589545270593556956020253645298757503853283212773851167578565629262324293836394511151513165889461385276660147077686279894966376535109949247066300131471922877890261487633851439731239904856924347509171967604643173375280617625717097580013578865412156243198747717591181131552554459191919509548869436570591454836552165968655302572391606416591164712094326119968002073336174776276147642285413504036766146614698729140347278296965969834155580000649489296256121635121866511002051442585923164711735255784168414110718732808712797285160309920452541724037534526306585324779706706603696707815878550129457200497794520770879281716028418107970339508780254443596522561129109483173972099453677484911456197259832594190543856641680695572649629972211801040003260457220637234998427768987048242476799433402803674625488234104109886488332094040976668496721681973273871587490088659359487914230388717621837277853223921784104160855491938562468483052327345133650042381828701209665467335454307184768671523820297882590027747374151113553475561350858854459321569175086675032430743908800628136524696109113040941746001999432290001961492108873174182972661918287237176422595359656319527023543636051498334537652396058033624331145786199114305692381868652756811714472612441504933176443929069640564736158997583350637808300754309881871960446654855830840947700755950565940218102303150042557544018886549551087757271398249572674347550840128155078498402294661553983642649796445493244693433733063316357535105599999098085325655836428414068330080261737773726684227937006128132146819592125471260208335634620384784005443786394416504887593613763175828869656686197570405645311367297795241540958072692883603217957072308835222639762804879619330334281926428973027400662091904134000542280771513112129648421946055748874103990910109523651403747934868622828085143905533400946143713197331383556645504932812738718057292778699695155538386506196482130551126590726256960851205558578287540650709650127882452885383105447744033591342193723705768693438325924756441363871900230846608034142916469878633657564786210667965997279435256751548739191068117578690199615240759651710789154728928038807912988479925972685918846458426880346238047888752083366297807448178751911385167258505232103547508309616848969808077076414197996341312262807453391192853983228171945646296629505743254350809173474646659164338215683194194067857477934795847562976302776602300420109898191379902655135305859822917090802292010836664156090256768213914995433516583886150304372010850357425540645529091661229791218663619694439843383619200213720976091375194432599349416497162563425065946690873607083340544235988723419017351631213655374550404947584514749300863664636702512137132436853761876605523593822389594186950439972767377417323943972491768394657063821549481012437021975831733159356258265057073256608738935299920567909423711112654527861478159362927497736573616688103534729261615136811826391243737655156590057577108084711938087779747080294444042822020122319577095888913559554617699608251400971991960787684409506591754830738148443430176707147660535384167002107594862597708685724003106249404550502562308723547997675526958161995516933869668978365848601771542028293985000074603855267061186476990215672345821496549039691368880574543916013477630416920391354337678028203210654456532016721933013326158697653473615581849702464000025434455961226043011237077989312605026380178986952620695718195520420523580340221408746966098442311604014040299247464428545781567805619894449491191793973855150351107884615466283332209538440137103542486947968235808359640978501146371766408145994781269840289223334021574038330066470663925555823239310546518712744304555039829869970910618086207649092641304665684584174770385181556150628834779582447614918326859128219788944792008430846670357954182749225321244961425908779537686483704976484218702468745599274121899117188069132490029070646596787772891293652552878818673944976470594843231219718446027162010495024634269772043685477040551410378227903441228092967044742794441816533353759527849110010777319205260103512528152015398652344864427039777060184053705274749615798488594572049689304652731898221896510596350234321160214521163959987301720091317161710777822916077141244259488267513633717120947942264141291878624488131354052416318171623784331733577693832240577727062559201673278749085062545970537387606855763540722068009898739753133565246387478456115781991864640116265656019253947942823545615604516087635436771999278205515396921206675121816029718118927533262411238778933026533081434847145769469674066648313971165595656713043240052163705961427449196035392643908149783804647203127422382429120798579996903993718070933160689420964963808188406919524319040025090193054159945361633619605769672157849248091755047077595096788864597131121975703708126795736558940177676222553909207510278321047313062844110142184928191920674029551276850044357836374528462137747579236626055571134803106896596899686516526034002573443972006868780354915659852531461048695122102333536352498989001506639269963537402413650379514888297281930268988588030390371289817747355766752275369797460569179008308445936671815490688955168022345747667632061174317673854184120636496602150941426110757052171367413291231447757943595321685308787954869719645735357824648415919635278287991581504801826808113015087170038607036056494157072625665141411586974624295247112609028462111525175192824871875891970693690654232950466392853893912501204321316342036928386883759789483953743221755519773645930099590309806959323578946114202824324832589110492735731105265180328463123995983430235295087426735491065814097960710752266149167532055530557180000132090630561077767478980879721535715027096355221578419982744693089539618779290318755532625238766785718073308774246072373947413007547805955864306136830647155981343022315925929515931160244660793533789377149875989615074532175289918051331316821062913083409127148337659691058649716699213172547947935778655074835564281985645798082391490723540374167643866808620286619482687621667496209859031864008783891366244897895955406167301196110315187660031174998466903405306769817354746921804795525524606884628070619573409764545075151485912514222373671765296312744938476858235978935679026845393320674548782943857242357844567145001652517122547271581424313612939473064059462424224614330942413929659544776698002369491209784954686107421654560402972851252907308862766130780397104198164681173320388714094275583196543951780915905002857948412129923285868307218755020555783792032302757642329298045171050206963222924430738394854637312898916132453078313496776781449684723477529283711841604040386325686956723611721484313755048061418673774928439303802677557516126180148212901159453614105867113596884665690318019056293536311056864914530222200481337777113971569184291796584802413634833851577113792783812672262152666686682790599167337155543337150086270160204308022501451493124644383461672532767417794040108742654338638216621734833142568444470926595765359439886733952060974557891610342587441820769086486112814092516899844949063431077024849031423013727242481083189230833202744441732569356855967024077573804624976995572894229437919518017127354220740301890121726238807037425993595065960805223852050042553027766591430338382467791589172198956090737251639943221145393154267968494324669034328518382411843620178522696010624892687829352886609274446505497507204759119394060441116502656457253036216578596919558400514316702071137188389958209882737089728336045975944733818921932035678631816836568185153240066591190087205400971018469925613809588836084746054009601258919587015001627113687530696209882353073632406609102717084171298453405403414195976447063006111038644435671504450142145850004927494429855678844593711471427602842355187362431326360124448940352050656872252277888452782190006702735669612846901001835589395842343984616821577074401915248326285332866581435416413838005458640505176158950993704905695747792967847357027071717558568707834048867200971646909166291758181166615166405286653304889011591066404442394249659729669508648963870550954728592828306147337109422753935555150958127586253746715492109193180036170446347297407030475549829240594505158823024684448716599051196784228340741864602205715271236331366686417655307505674138220626541394320072911105184311336186534834257151528584042401849458324705259036440506995622055009146321253537983408841072249317031863123999845796699124937775122175078115284248162904484053805398809209397544810712531226571794459132081481047883843408290374545617029581892127137354883397651260175967950009741907514028921936086979696746154614509209485875709135504309144487678854378639160852068400899129923373143756956158052744959930912052775687280317143841339541240733496890296453118976747034287448592903811820715140656624582798850242796196685431072940874795410795146048222365257912417444829845386340242476755387231684216311815952545089192721749611641340022977067869434520323215442369146470090833680843753567551252765239713198547958972579674729934841953394061808213366942770216321584596660443457143570344436958991647272812216645561294909637195034338470362630165381508476024572205323757482487265793596882103454694380459344122928285420672696279656144827559297882156392826150718254714725716877182084854492204109682281807831722759926079375989385701549629623153092185792569979688989331468148468633401952893890755155313177595752325728616808923159077789011182955568670905666251863100936055068828490209867628410247736254785451670046825941209806104084309344007454926688859839603334461208572486467746395405818159381093769417353254423719936569578364290923275359884749278982575962453733465905529610306910445200360952921913767904296805741971471355888856744496703823524719241459169268001183435273785133829406780329411086412634239892751003671638293434281125412531431852740765289397663278154100347695322887260742075301174430214306820663690832203852198936362652505303767887604617709363316188996201490692258673664567802340817986986106124738793257505453740550564396834297786790169958670435916977645100192238819902640796180535936758401443572193711055861171405282873979268684872922772507640572539484375450486261306016857056271837401659396034570741485415747718347933044806213982273090446929914064340960724368867334863865258541913391834138741481771420152578544814792520636400389660033314253600100363051920746012639202644466871867957998158434221215616338757085422334547074073337495478268852729657733128349043837163277696841468977613576456254805582810200417481128823577601206624794129962481147857134654970725544864697086739475211650998656022823397360689964072071551246657057193575134038558860973104389587994777074706608279474586427044369666920113887898061669831440155851089142721411344852572699891320112979762118287245545427498001304364017814323660302565429453394716923158602998617263883362373817595070485416877454200608546414255132943052813178189596428405263656974117821401519867841625928322564594426317874911143918232601027898227691848462095370005512279184016799496518222223012638284765586978859548790985060079402701551760457680264404263907926681580153125106770853759266138393092788672713688242361662208552745818961796521695572040954333256778712755843660632735096047500881236352799773691584012668130016446954991819852143066938257450625335362369140363968928897949911361731394102375137226724386775770005721901148186549447744138618955367043017284156797920424639957657544776099630101345652154065292369873665588258759300142473659280726632871754042648045956165250214987752400419431424051904947335296453418518666793361611042731017511106303073066172407523789739995708869864180781279748194602181489539928139116945869918436948801190201772381719788969519478306488451970372677777429206304825790882402047908386068956924114517669646060781665871270322179540795402489656945681642086079191486752356661214625848179235415530737611270879442463484153361283564907537783686964825328654164148896656935080525709664793470335762655201843012008720488690538262324302527220271858663438149598653410924514423787867759791464579873715260241272657270199319230635532906559222163300498008654439166064011534278301976668502913871837983571573964393188166678451640846297139709452816411644606884251942060871931016234170180153067784167432101845422839977781532957770409339778080237988817627420277246637176843063221989179026805929172632103805306462661243640248810538123539712321040552776719106331656313526463904419359255048848149124552627673931778590859709679800594392379830523895440078429781402158988651288756946341180563179739280590664992754556129674378125168730494768021981562156625164685918493220256194889928736292503381895952981714009168470377511108276393744923694354416404031611253425092591130569371479030494696354426933664547207023536836262131072024291114131014923098460156645189936543644602165945856991196541663973118190466091939349783547547023354543741713195678652320721449894592998289173599389992667912527021064208255693778975390768141732592964231819352857288488033196845099763448295191942668470444081294717220642873508431410105600670797962917508261288446229132240687824555443584424990772064836769988517392549987441164034991721164760224258163686984842754779791247920206893405914097589658315003883963766475224311453075516940245248460235251368535782306832702854703249935043670279696065570532140973083424175709654040997747981816693276677221300075903338065775712569768818204556896543687476869292361917460298014584877624259097936528292565982189836964607896288719562444517055430343301918222185902906006985745304098402781122698012182127062675829005606357516742669809962837313592909130496767206667730055887751725215178795768170648884720733193036447639471982255794360102967120446028923631224944898300258512707415838010091591651505652847394282372294332602953357653218764199594069897564723316145055374960491010422494529689621105721874620934670087233732996206240021455641336007905368209679098659853409232200630024775886433493203263787775279898966363724397404177779944611216425402687799101016029263379646425558562776156300028480975171708339159083923337391396558303910551524703402464336547652131571531188360631753470657673128769174913655632505769000679011365242807239115979376608600432698679623653564984257331303512574448561556182326238696319699708276920237321602538775171779294113842567442017193321528881409046879482136202057844148749985604555316952355929160890560714732002828092011984235621892572845396843030569191649375754824064331204727541397530663514774261365557792071984981976984996780487553288587348454512624858895851268246608488453147801579295031213567643915218703931873763726175331904545673264927686051461984119935305555617934186798119530793165985493288434995767622111288570750145526092744651492828577219876653865779944119583007887247222665819757835688813942739853118330845217653778542752873488449733325912232092145866847287922604567932876020108516171172586498419966287481037075288526848913741010899883972315174709608287551607361101850947768469902835448557790177222312230398125230222479118075393362620259943981001069344822021570112573713011919694916016890511184934743820567796966610754792405614206967602828114939497103709052240670068495391715073429039611438281797071499416168464432221159437399246332538707584715484502057159186341159730700167598141110248011466466144917571099895312590803978532679050081712816333416352457877493549982134105746871540343126967852226730155027318714760167313054978700146758951515196170949176785598518527148133764792420206456444893716565188412755369836664634670591824097619599501443663867788486418694517253528322066188477381625489422626660417854868163975774328605022437624623173495622525144053712741025716250271127027157606936853439868168798797386032172728301637061486242622863073367093699576555606940488624948097593720313745787203161354802408953751519460159895898045297328044579023245378138921815452767222281249994118274163878870037873787173665924587029445735198908531874309750725280508786030302167540708474277333815988393410353605764845005976607819624229899861712097016743799624167654602483524541327020812402057763205341400062131961717658748688043534021424950074432727595849062962655199070436230922825231839189388215642750925260991126949051250192568925578818771150450983931077450132210462715364538159016310988023539783785527542233279916137569067610545197504697017071841388214229544914723828263214751316316170300071918429761610743953723208431375917123111316160784700240602879015844930248093288109149832750317554462438320253785701517022360028889792277345654126674746499072139942855534417786960554693655717665068468905865831603610921951794834487820824660093786407267229014352907775499109296410472411287051222029427088312397795852487357684077402625595917913324696571193598976577227423404763507671369048255706635132081611424457426768332019331840925898449882292999731382224557256993471316308047900708562519932880989225274449939555468617163567564583320989729682025694336852906863764972200448807352849122612414969407370346349766488266760528012734296203663223299807011254625787508893202741505667392852750907515117755809842954856251714379739843812264656350659575063541976302686573062866323042155190569400589022725581146977480389370903609335730868384726237272273946026658141821741564650087497158175424058555673539612911262855017727096506931429905785807168122060807951152291416785020659333426868438455080473477773660209139010479856372414671025756030252192243666185442664672628163241543140339670950261525593996926504097333190499297196665508640005316381416691527160183280968728001691717249509503825415529756876135775686650836132946006598456735400428391083970769976470914497211443953352987793919664011603868258616409280469445515185276568267964022698868038774510845882522503954369875568429857124547842030233457650374892230519726971936113870025207610884386705316233926565147304891405681010427614882965117454441050598405841604883163436083123314359752380057555759688285625678319188979953190291096823862525634130073886088887335138194948851968987933153305172989114060490341452655912738041267958919499568895734896495411165318821065049347744715926066672988118363162449807624830507163920135825114050892200265517837581458919914243046124704252435964986286207002669701081838047026387225795185937972742924070554074192280811946840231269256357664721707244205468158385985502966289461524653709601604199487399515740337005521234500765083520602915227728593143714387398876118609836903488701635809039995447496084802748423302154961931180620046690299834529053153653022034696729109955370417906722956911229332166094885513288079904563692520266767743920334693246274744292291362767976025873480380757018380199102743050056353710354001901676077471503134478681410882099630017644622039223254171182898030130600375296645148882673415585064524371307364852039112770463833956770530007487699664663883228096900839284288840718109858802164448034950858727040396523732704900526364088610966503706276424950599032860807013885612466837306245314486733616797483117383249117311775607421862360737259231119481010853794374600071969018962382050970117829377653613434049840741366928487667427850177550111696661779808519960361722849622427648387374936008553285738987381534472770919319473883765238341616505153755295875784386917338567865451684021653427868829805118311906243362488333210743970090920227204178370716056915541921345896521547263058862912279846509031917334588533180348343996340208048653517456338274348292929848685537123850941888123662061741841747252462449945960688050312636239891151622213686377251282277987331075439140528265209874692838951977323874268715143757279360036873271228525162961157474910098025287609412044928518961547142518568547961719306308404265472265426157277271130418220097671149331560044894929414239323250894259655634020938095041201042012695410557182932930192288389387214500857934230121341529095610019314934151239349283545036224536264707100509811807909722169938934604478925918212359975042356629386629824398090508695524172595129728013642796792361075565802785575734604559119378411328208745337091461096473394217976402777587018553394391808090510327715997927003155103068907399574524133425585187203956850470614113118335727773691605505413284187719519508620555727120118666651849779101329777095674746448535227655186880110306451091406799989406916903873096538433314279658447183930422857714046764325703910946394982976663493458595216254976877287608718768847190803869534029353595240285862228790093256070628601336871624139136453183893185569251429786511413476788551999855979263556638407682574407736373495320565415200949900509383139060520374713251489151150178425027940258494687863086809810731576513597313436519601886024167347367420797165668465705049800408971286450493735576513141725011498567164904868808684144726846419368841859684364204588237665232308943605829286696931929569821397871255498384075953739362245332795771278757300536877046773030997958076197547979208875674991502110182987700770012343096451479418979739087544345391951085271886844209012366839429357164869732064365251267056102077422157598935319555513037290733958907118179417832134755504334945343565843522657093391609620330999713705274307084467922806317845089168653849590253241774277451432972915664088105242934143232137025079359275053752189496468963380060948166965652397704958631371286703879443155785104778482940598130703077799887407162419135656423394667923171444167861197919850753323842690552494262480164859421706529248779334235332876482902006771741683756094250715298006333897699894409753183773011834364311189559194982780234488805676205459739383201339073996083947280396661233168366409302056631498876474446848250897099584517288118263294784313086719044825394485914428420380210559205141282105788486704224206672871071615654399935409891466886915784637947163376932161437456481856978198700159903830814362899952392229808604438880214749831072539739664434158955911815918971235687934503545569232823248566675517486813785839106313778889998152749380402189393453326175125022467510754705443331720805862842751034397236188533467305641592303270366980964065291866789705770840723905650843964168039861396940690656888238004355209387986109117936571993079692557243231042358573714230681277660215820239808867994962089443566133418188911341155301514626627144556751064590852620999341055529837105952839707657153857163335023417559575708907287889125036844537820556716146762269539095001288923223036675245329377764240256823935389894979838852571464297446941483284576342462165739506211845902431780200879876921540636096991855373681870086836672539777279522205032718837979128578093517939066434221872497743937504272723529227614000179728662219228429762831761581855301346519519908056515669677977064590622456978635019593545461747310099763264288445951890195381752796495437062272023049709448816415819729409943856233071264254188680316648265660796714590265076452302984543069144585887746010403010477736195073183651750058745544600308897250615245403990088510734839279153287949577567198732707587895076620187045342489073797197588675257325105267002555604298609837704347783772808402514162683646132257378713025446189048455420462206588308489572435926862918367370610988319944855270510273321514481565045783834092359727828284788352764401482868242537754039015438914478724705202351567252528337423969810968884099457189977898863582263919664808634138065626196997864493494333051907226582948881109482292308999150870251911856970123802511934409092289396697177950920188708638073950704222657772855960297486757026678290088113663723479838357027778715247976392140808672435478141345767337553688904135276416153550528369629746305831177185871597402419144237578556630220304661186737366639110643445534854534570834624874363339764474527210131645500028546860693950317255063901101966257718317714682541878744499469501282828474962545786708626997586777422663926099729357543962511079214065808116117549370586437764954256836163889046896088218250745575306836111252315312798243157388895310326420884165401154916308768370954741042911356211390095690796175083957840345767897228662274221224067333102283334768731517447475096511491330244315740235240297201100792613323659165329903177712729876291684073435564861207096034378947921621489037636402439413273015530995369107634697571854044161785516639444133545093842553963051149587247845917424416637798429512498353223409187000296011743981115815382157966648211459483731405330887271068574973605189777260425868689145653268396707730674617695243041300257966908731039927972344681911538663645822658107351616232162854743972208525451195668576164931547203239979974113099503006595405956772674032547891247073128064377820709539355455622680585049274104132203722227814320050684464501329077269013314035869156483013236355329013449951465937683086617385508638691845211923498520437850833127101843645760115663414743690791232489899401888496171291518880400734518335188192874386201268521000996216525944879404491570038725001097061394273188338401106090800809070803620435089477176632192656063261777884730000253021831681936502572262558412075664872110821849436012227901037867325090500190224918664117598463032542515168061428197749950057007402283265135381579448887561709876022414398396952091036591930904101458301541343525459050765521612342931431633077549714173162580928715850779316249739298261575508777090461832647781440500011237915837345374071225793837691265710220983655497676152469240087052358594653563835072976607812785240294565493670917076045909635652206686926170476643285763584283402535456183311512396877970610741751113759774176081127735335579363795979829181573508455260855988252977268133146126457154299007384230450295160997695691633030215708156172851096238133755794287241249409664837650972763650141289762002486523281418475398976941233179230636350732564789848391344713844177531327800307617134766799322300781027525378937553811793383684043636672234332110742578840056745046167404119662049635431001393286752813240716859346803865979729446713126685140014110177788059564828269572693828760514763950409595516858825199732091310378600790763221474915909476355827821247838573160867836683477723304322136733671576216109210262998073884306152782509731765537109730472411905562770458638784777035640802081366927685680245540674750741476185501630831779468895732584388584452087995068195738344778990166639898620677781901944258200063931238400328252776428325515161304752401471480540156480602311021560539588621233925028284644587293729103840801602884205382307168131110064597302814461752334928871253365881161074141475536964623777649945552636104705256802181207887634042733336416277707082612937205630541231519115449404044234367155853541696807843228698285760910442814352558894117664704296640063014319009475943823505392645726758900526838834773917324478747903483866687957806168411540978268320133887533293335142444154765287194672280504360812915188990297278854429979945860314414775241584934691808920044397339628628864541997599086518443077386475116688970427681897493510471871917427737979582025207930466242206060254166893804817505350552023899824624127278914536456473902154851544543537838910392350972520106069996973622212996377909438850795063240028637440930043806643834689650895733777851431484170761307791981393489610712706785640281806082288156987319046604391409965570762419973291668037275550284430751129801191450620381254883627301833918184925096985738945805604386991114145739129379782560727934906830265609647656054469401579761219122143270445321899720403045826077743642264562436641936345780076035605680322289003077653399778752465263886275837028459290151493399053187874376616493244388854096864237952169769695428503034725871833645808550715539035689268328697314316604699503000256925943580763447012431134137400920754765183456905823020611036521586582920869841807176063389835757702806069908338364595595038980966512038264732724199150199332655283802631736001674024768618735330895996342126819062601412076684942871550117451416365051767110504190240077301076413046726111240594403628851662292528695062893170954841163710478485066112730852681567875468929917302125864550757462065344207372787315350552315640195377094244386559458875919887523459447199706395936997442115519650669883860664440284331236562947118811764361236637860582764301197597479149407862347012123619790586639689124235772706091267869186560795726297499034396493858502641152742191906667548431362438769080674333793760814844077373345962022192312064705190822685558099968301681464806234073564766069502851335355426704106895948685357188995418617122548022882335342707548257398793192221338929745858641411204687128955566824201442299479884654909933861548002233482493520891786637884544058165020633303633814101769651397753988958522561825948985441299434555739028095736772643659679767266136926747130232815793724722542478214798648378381880771451084990568445232753506110506850976803176773499996694492332200280813673725612805993290544381190994463990228229097340132484735781819689736435144005682031964280457730623893202382172366936984754420469295764976117927088679799060800810680159336016468506462190816663273716527068654705709416623402874224021647296606880399945505442563546160922669646214240526825313937211643686194674848005020591788008025315771420440842966554559747282466367585308112091257058872015904034143446324231265727954690880286007620882519253785382412474618278228886756599463698237403410055899667578991794294161577982316365214921978073285214688631725000194827077858645585890564069988765107689595849922254887459419675381200343492298013338276409627447268319751593832267182715956578635890046133565839462158491897862045961602878183030700424468421236173116667373456160379175734938759179654241823988283249467186499668405860211104305945571743111306429974025829091609135994720707459517637617922694940663978903357155788748150631207741364290428737109075509218410207428579001029589148007111712706843407418354413417603940589755343875741923829397643227129992361347540184465688769587435388779256050704622863142539299218509519739310725317838876684061278549771432215848603750091817426427256477538593192979230794998056870681267974159994065321295010898924375849329171298795903130911478913800210784726296153763702518186638593115136763668465546724456966641765374831113613365420243763258841354197411472313578414158836427846486117653683728911725902539316963704227680901736181779735002120847179847923447447774052652854912706365406763310293201248365092050289603579039923663982461325524251840507343873656081249187458520312714725520002723985731018546655446290232881782834479011118765937575737215452298220415716447176705714966980480102934388022652778084905612453678890872420416063478724157245397863313231248641307145441589571057185452706402134749918279668249824228678933312231510922565702589582262299694348901682040737971498580164377280621599235166741806653728630964358503515074568282758625623056417324394727285826130270353882820647407803699757680586680237058334971076407071336886643595346135335977843837249340992050991821770612674254242245730238897245450898338927099177458920972673033267829393782504152485301376174344301644256110350272451497270601373164404902606409786153905525384388669810514564553834772611284288002206542986812910201453719947351936453624864418569303930613862300392856321476251564385296923674675700558657529404242860873271397581642568280430684346509945751224873975608749092147682755564520276268805217031477372281352404199628897410093589991657873637763511822051222163472109420810849789146311440723757643837942346655778544347260592429308273018286649519258824490173341008090953303320480763015590255512743116890773593688500411819809805514810731269037311763032598288911969633422191883155208087341731605481461223673168300266959291960772765808365992051330660453911361982401084657082140213944910248510327698131611367302722076701557716739151399623386688518430721816488071769820373428511343021598267427585628054064434304618271817937363547435767819586684950963934299970872202760780320488251606666300844460257797784905084431100309487384690820643829789016698384795574609623728186535049405341510637099394668887151677969465445225399598943383555611532108992269572833969318135988617975286509020568928861323101880053722510740943849326806491731769256275122338839991132230530439009578963341347530441689164221017475843378161049539416227362154808532491788512604084833749941221225437509905008847842970031315067493638423382918174088931702608053029368537150054117646276984487126386687272332407643995463974179949236395537190898131260002789171094580038552607949770513762803216646288242397687057749378622115512734758696835785813779512804347393237140522806892522762843906874944263277175251983628209967284017149111112481463513908819435439001479987082282337043210852447055254770883620407728266025990490250493121076995390714483656356345108767498493758067031684032905726653327515765952977321294947608281313512265120570337040799193569651149045390219053162421310590220992563790124435907779147967689491075092378790607253879813187136636407862166782121653888566205463540333536883923392414646781778159119121451561745225862812247294044188783126324336076196901864020501753481730305748588372877145365196408924992657214255255195193065339494785624326140899074506183791415414827660313671754781211048340293330094658732979643071168402531574765726466812823473478767853579684324492126011629963597215632061938914959684994468483411289340352098909154391151658182296733008303911187326036685156083194236990042404748430157915008000523779099120356595090967724237474921843328208356630128719069069779593509659006513441041526192279485851221297282163835432019706050189633948767437912115025657838098199076001770982760301739488563066661166636449155198172550476653926857439533769111625189704109229739999107941069396424267213909584975283628280269091764890321158497832775891283760484551239232327176897693130887451809787155418141846981940679373835797852149252514121095831151526729660132481520396338289284583035720764580464416848091381175631544399921896276543701294044641501669083514248261895958199293274334663243927525040033878926413421881315701075815164158639990392072067186142849712948081801416425979795677147457518971652346254487077848541142468196887966363727280177224123088237221767442814841144005109096832020415657837832401129080427475144598044151863328388397268622308039975927516920787107276920047727088316847676002798436605560310768875964826244251010170526158617395389774850548317548133275313757383034230579129118344734995667179030433415778105119063804740370012041873709291715703852467618342237511388215164345124246328965646943948673646764691069548394227260904318420321622015574196494917000158840920075609486090319475329073999181958682109260808925837341073553417576615787540814974106709826049261591133357784751248415275496923404940137857669198105927778843645830277408745553930145395441281101825369983659392864484305207248887160031476452743500983633696116602172847963993885376702357639732365903795319886156766797879788988077874244045531231814444460659667749590469974838853882648598441536472594963361618451027023605690144954121977360595209865464631728808138135056423597921612973356712433122319683661726674267730610825714137320385148963372234351427705593259844315256551174448728365980141626968248658578952028742713781049349678514627393627840691040795619719270827329127133930743497781460707068707633904117291692387808405805344895391949556965436129892769670687109759086418944800498285920246889499584073542245114248819589968058097646548402656743661672836750130013119906320260125880806351284602901053804009364416881145253199544892559422292011930916740938460255738719692358673710169782373169387155602430830270820164941160930486758039100366552925187880863686225843089426160242740542747391341041568604570439742466996083534159571279134202539281675314892599306120786379102515590752032303741341989152044292940931521992288499456313441574925422422137428610237788320587318264067581100412018798196631576767547207806917406410295035588307671469679725912966322025422237074972651839462192184435800661576817741990285855447832644762483149081183999721457383768707077215062391360020798150547924781976357026230320302529962318255270673933919169220267977776266276864238218279055178667707099624585717539205525157116058149376948506990709970488588605404235561022343521084968527091519557238328996479869234923950403149465177989044749633807080159489348594562460856008570640882488242408774032085561197708532973792483192342099526761691468859127518398427738897709103972466255510611633746465698236410602581854842183002890725194827408485908181476162624506496812396550712269888250250387733544315249804861961185431930913260707536041214201593565966536999039850221649398366730324796834391125618275767528067885937324483343275266178932407344285622806634736318425589384664667477104418491527953710715190452537773515097866257070356505630591218745588645708655107326894069277035382950217783936626014096077757449284184178087750453197501004489907309222246792971343637040630654975162978162503955039836931317560587219531198503178530879782817801700513733342880222867652064717792190795459137699096166281536820156919842923851851905577151408080724822999009915647074306372284953873381947923994774768129746353071026217883289814589968167115873424954462407045977029415471741896453163444182263242997404848289229108743402904044583238212814688318242846417049505197200160349535238836505246861708342115805557244101784726335914859797925348657815493948499117809606292390445051541787314619794766106131376520973934139650547088490141739121128572685722619154383009596475913267652650580676930182970669929996177431837082900792754782173489064813925154720510984331169247687043964747443286545410148321368437001293464453126899328206434962724705311696143010984816745067042244165990967215923034273024579935362985497838513790066444359051575280461629355616141835866624027864664503135437251830118131993942557776106825571750492202036428880787368794606763494633111837945736701592190558499188661346661044722150089041061890216954100954533688100307504578004821150252269792397136922102478674306571219305999285133470263823382842586813785993644191963887943552780753163703019432636191459674816111442940414153702820575609903341407871317449308324440285811099999757575452669830893435121330920865146039881678613669155029106788856201428171812422511937956035738327786446653858618651965756664234417746479427957211391686998933149014081597015287872297514924797500720707880954223934244406573710727117215772994405079961619436000356505541108330751907451718433593595236250858408646907957082836638168762908054123684099611440059262920717044553662160686792902538546520894577987798331460139369152436601677775353316414403886899085665240823615963958471008880025287806051361277034296426278667053235554360724036184511777569029671995635163701289513046367708013038515464087571285829846182861378269801512843107634552399036067306210594327510824935426850632342266488998028057444814607755496967578613801567714275027075994590214279902598043882861082508121692684978632691894946958332131475182213342448475121243319426119926054216578551172422105916431890566957479280496364131457299673978304637561251698278237234639978683639278450395762085551656705991368484795200896051995752336944903366456308157892665188000237368379919931243050585453383611779123625223473041691168717339542359260730273829052758899181680524869623585499982532176665433457168843924704140722114199516632261864293859978190367552713747266473621548130204236354299156742663167047217850970826225514800075787415167063255253412609568696988988983857729681469011085571014417901328101240952151997751452414336228607293956872927453014214404147953910495887950647368244649159588830489657138661247113944794510350064767355522751129005546181634870098380532198143714657200980122626521896590198015048359342239937044448601029497588415978449874022228896309801425002225203593732192490357192343544661110566766471207368905034624651584437942003172865866713650869545894741382431223220980070414263373675066078188685473851696621030755324880014730340052646778793583502835353648093270640081406200096136654130632212401206295462862054542564689591126958852790876795327720960669233500372659903252869750413412409636883585613538188092624624849453831964805421721501403469359304532821601273686254908447034492149632724686078035930895818480501255826853609291898767722062916684044871266719348847022814965061828953564042515118833455986226230096572876429519539338032044079658812380534825540575284460153524018792540865019620613259164063870502407464201258699191690915418302798586397481844554466958347134046382329566098662334887189308004624267404441217715597070371799035860019071145576637994455766206553030442324915430785967285129349586414690415566546890761138125391656464468992501736142909231442913121093397422248890961894368664561382800920200463491694225012628016732727731851566094960992599414828926069710101557656733565710368447689239328747550910541804764244406231115189987019816972871981103605094899089001268848226403261261878698369270304450745149243640483537770732800823596761829726541011001342573599191310841498964065013418285771947660195750949369053048953983239737333062321911550412980584484545517510671185094152732105979795507755162456564651107315981007220174497577148676673656463862693773447024841944923715096425624572119018640816512254679321054411891534017063431379247641671956196176529440588556607560567037835849647283858293245395277481739857603183091350287059523600757345888517034616258556681149306520349194071186366300252398539073145289384180392155405251763180010560944028297088120022093312988537240930401117517917197103401056143995540762476266377620164110079556723537266041157627239131915628383840686701819185167197896664478275778495429092054638641525639544004552259851996230327103149704261012602201618557266400945278985671590837768259618491194719843787028073686903955594153657384490787457761584749028992477137004735865918994455488005303306986522208161308783467827057256388149267867607478992753049560848861955978919778564814869676903044023119367095907328492430445333313461601411721662173662189323190727422708610644731368845332834580333625761354034519955747142049192274583444287622288667680983780074094205948351764497804670996624899148311954484851895912481108171580118546562332535535696714825669551362331733632536535331366701334841780290906774603313347535633583618512133917634947394181517264912621860707596648877305215507261676038382438995590056739432553599902387104110857546526477152671123646126449806511594801889744049073728565181158552706202697889761899559247784087546722991191054816186356857266639834035852668668464652998249170025713774573428690481529946178432509573185856170059885899270240784408569327522002548985156578432851543342249072186670234823555118640517347511250695871597800154474904045190422234797338480109450186858587013227640858912457562693376455027537996694555224816632713276512073630874075564340638965910690817977805509015129589457391266295698100320053518985781963268505247359909324441575899969784620972344546519671152860901111907764507158396866883153531190208374257593360607384592759541223119390413051733111217869465921523265254421232479999319036273604895543273846531531869737781124832924878154015606685557960040881080932125042960221999329524112125762057655078255864048323181109927312022595891146780463981231014141493627176851675726901992519494614899606648503889535727500027365043972047781793087993066606802965786180285865539906664597548153139846362934282871473613999861430201144995628409243335247419087631089681212268192675238523919593614314173183225821738626547776222091211008480300058513395567180796719882201170205497258064165168760668860191091914271743343622949747643406584519815641766045423976252416720031222933797508955608722197772579185637252158586817832281494448761521729452512262635931532218148118960400506049588014453305277726611447231116795153742909531614937521339839877605521707756064431776521733605484401148163842948042755131321033611229075224428628807040511054254506596748632178714546591699711044636353294648242374896692304598644459420498837044732807124827125705106141848396812073505093797721537917611155393878512951381341740543040917699122252023061308414834554300282329360812401546093307226738921364922516352329266861089590252908176960602193904181754853021330262320103201480614270957454458206572463626700512877307246597298576820170163497241870456273261367379339172056152056286497516189490119580441573474210652964867459326846026547495522225770801090681257812592832797007286889872876162745568837120184984735271518188108236413810582427684146610383586270400607156383503687828872825236933422516818340179254730375218004789281421672091956449307834151283344302298663289462888427077463518906936952906751072018089762491717929927163522848709948697843968402244188933577306749470503997944149986701103744596996930179482950448971741317187838039772107212901049526986998841767953400783205050857910408581552100244336593872294437189637840165141968685260222281323473163184290959630050161280343433498545330447697132746289013755856157554349032157727559714592197782292952447720916187165128714224303419244106778814286921129481791429823973751420236292615698529904910490959167509304134507172129415034780553067722167118173011254151463573179923454663703865476740470399610717021301137204531128589572971478368164316726518585870344456335441959484339125957920162288393885073506470742527536520785911705147391021964959942986734487336759293962369053970220679998943683466175366972275698413423917560763231605480835619505842462044330690827913847554560936723952796420574633912762146737588828883278743700748827951289116922848560514634612500711997300782340186222144890055512666026776658233772355552829816894666078099222024209574953890220181903485509992910175445067231973289427241039343308760790210343931248344339406638742986290872737505312870061915483518941851881181064882256121580513039307304635069419103907376548732631661211002135750930273446439087647178449579895287102370355353121404375303311937675986133025056426986742618805112030863390926434731430034135376518174386603566977114803285666447988830887904790806790333376827942042866809935003408132579062534939783456028154510569195437780503390409319094557335585253119064691732192725809952278978017488424746315429578606674532455786534284431731222688359371502477762729248774163526657164588262357611763051088971714844647197643545910269409366969143014037441504880479478834115131263721705116917933326724593435802037912409780506950324217866438114337850013573146039918046178302014872428773831826678168610818169105462012953513271644443336760000415289348433048094475890719159962552674638608354973370296925023439472192706483855608388099025818029501491880982834162915528346425021253913065096551915546491386231234057607471698641537299930522018224012289685261292041718129966923080932547859584651684200866797332739757317156879564852628824201935088795287024424330891902615591464964470741387363383669662543744009698990815913939904801542146055113448050553852444986950094536782594263216113069368733887416343466882485503792619742331353875058502221791821439848620377631022082897848953928215875480378216680193115105998662220017339668906215657193852720668846722858783178597184614769717759929530449459691147847826131069170776666422486423453007763773905204933749007896248346482466873581491609241269174331179459431476588921430180954907642526886028042168887718187051682660664560117830832944687508002335242575309493235470123252631822644132394139018166926430829402841323391846986265101598024206546597973798165458494242721685833814308093934027558341829812805271396705740724117209630700501288286095652968009025655133647928659447572038022554963983622294511478501026394462111299892771347863869529851449167609601036216332556400636066901099706132389683646495961195958616562881801563752127687338838105997701441999137931530622672917673864847571421302444583122199121569335139870912132854545925095092465905017869540975813781958151656357293517649235857624745546398312078414887898784297007992941759437885002112586556406597851137415405165799523624655189832079511468391406070633627779189703038947253229742644252558134871217067102115868934693227558165434250671902308644053234649296924799807316466241965255672308774533728802155637202694479475444644983032484498424270067253058195821699668841957443793209770257052904787420173221236198832351528621635569045549713448714386352456119332520660530440064650156039778117964634684843217088842044064420416702196096887050941640832784837753073939602800531018368480611388365223751914172116833604931910417808808376159150108509963195072544531644072412832629403312795219818475662133146167140481985841818457071012022786645757957565154976493312048828072445766724519157637312706717885329019924594599375902899354637752281207483695149787497604177834351723932180991938242226887326707796205841170069964746427929140015779813205373077580952364088540137308907548674444982457279406149324020510541843455315329477603713851119252571571971032335496133113809200789044313526000250571616001332947865964699006389386782581790120487943964879909668594553055674518928567386737128716602295249011443817566978831598599057217120271483811345655767650643059758757847612296361032304246012527047828366559150255974775823996784451276644911818953515007305100123981279646624009013769752163774459401060665671177888406423472482744784444629172652299726921356188926636696860929360879406153033377428102543293135561269276478472019826884840621582004113128974169872887370256070141153008882290454837986046821832302038120117812776374115666321561431374575665672060367892440241292023921118651760771544553113760283808705587865270320340705364184581383729782720183564836869742582041045447292075683907958711023984149075697199814562790385187556826056172016489069365648927455258117797876944136990087927230395479919357437823946923426939943532079329916833886644325077330051606117674993892945529038145654153064843676743062759782222510441883176458024184184176416611898353200568034681883254106091792594496647800532972629635158104807611987374809194049246218369349150315075450508149470335505302907255281732288007131265169009841536056682292617039349927555764949617306163255623861732064933199199472497177333002307026472832017708973787313897441479024021522643998172865851487085290524234548905225998841637658928691686917534195669651856022502590446890624977700762843452583279642833503539158144096197797178100628963226953166218469704076276248370997075273696818878579609762236304740098586793002708128421436920154982443586964855398685872969315832508374811499538728620929152977650770056469200431607037303962674934437148131901439987123849630417506557260028144380256814180916881600519578232349604381626560368737533685643749432635861101022082563630520555048327725950802317572661393763811115436058180291862549345846721125969276159287809888216098067903775730291517283637285914125466089031742296398928340360491874585605413794056593394970257531664785106790141951804112819989780751078898462492584256333067909829984708809229813952205433093198161630295542159200689136509122268167192798776712385865159796283002165313750554320288911248131214499736023454379598337769832351962242682118936573960557854392810136994232395575186391072163323815226823376114729410580457765285797703450022545290400057673112648711944827286124870387401232129676056995355830564618304361551410267677706287235807011007377453047154462604753096445327533428642143346910451506886893206428724135258648419989947697525653796394802216990586615309555955042884579557275748593377211120284816477714773115015748078570428837462658175688883294147349715998131690609627638189031052239653741377390173404636558394946883410999800848603471301372030925307427591770026030664929347972816196607125313595223037266554764204342828358424196744263672720263316447597694639418872253213778913109335161661913786713405785032371308484740657621775532098148177766241706805588327911311519322621330200277212102498511698745300181413026808872347545134495644976708911383267967215748673276475144970795191105014772837017085909966811981291965942725587470094567589283878497021596785575516043676709257531515953140817690764359174313479629860799131872856457662520025585241610921019711716052548530756252004427202855360707961836241894650593107248525908269950607657779591340814579403515475587111417579433423846295321063190972121775505150262273744133008650510710772421493614534584558533890974945993295893998768207731444386230503843953976227243870034909754861064081689941016439542247501302397452295562732183181047303096126177234101036930584424632736151785076576763985981023860431487962228375607731455948279847664772981999055367387718352701297270023111208989447033356412738764929297829435871083212586941602161152000654864475248162260898427499008826599315231532340605812961048954891992328927935475208928891362588979239763786491336392356219651402331043220833034892061713952064075429730517183175350876174356461932871505702281708311794197279541547289529951712008416561561999756899762782340056592530735889315909452455099572861005343120149808817215299014429170814034795295351049389795815135376489548417296922942148753653052581334365709640974176031176798124928854035643791420888954031137812969285165256428365378443236432076526537744549181960645791048817689913676988914160840479604557097528945200859555968982991267348388579264878178369731088085431930505477244871426904957969601008267397034777998646518378368221378003175289482933068794849283038210014267445081346367822512769335981585029344713754968359522099248483457800179513832000106968621589255002920196019322646190960067772794719877757541452325019512836199689974782088922114953171545829164107744647563419461077328209049863827348161432840557323687420052475257715680472480278679820235576296910519095406335259369989132954044344190630740706630141943062140230604472905581380620976074803509142476577173165939398091181089126960954871880421879899280158847636268830676154041482298595881555806239342347552328916633568118214377675928871880066142277627328251609159214415843083061588311261273860187348250765467377980473155167601498739407863138469203973110729755508666072289172169530817891711209570800550292117700991240554528056483526911526886782375180776904312162794451340935451116918421838472577275698077635141505068636898532615117579442860792713315224597274046788621653477248187642086847846924350827285751282195721737593782382454471904459945844124645629450160085484084654361737012903847372152581826287741445827182498572084410366201449274858631895531091613302461094234834307176560268674381966866941712385125048881300491620224668035009415210837507362098856166879032132145398611221331785223339473865455228634610394795659484077332804966314423995029236670303085795821679869503715164722242031156401040558444167178919768691612476141450889935765601796115740643797494394587552785161552201851643288627747415445836043216932256113815835728880091237387288372519633936246866818290437747908293284325351013683257725529879315582401021232494155419581823766347023339888346920233686957625602094872735900635430073159264681619310718856800772765182737004737131346770203723463910966053562089621847670082377683294000496073640308222379024455625719519352382339549202202719966111928180458186257132542312677469418034496937323595916889540689063920852223870645958368199551611295382016533435187863923551330641884185201094625411222333252702333426359112913590644322474056957837103452903419309846757884735510939436868045962787523575887515946354484634774244422711254706027318815334653152175162657373672468566182283731504396318428698679079645659525854969581299152322026383608644293982136279122394535062814563767057382756124835612783104134233179319248971010252057362740654100552278051822584733769842974752944592272450319437863550235647436246675280786306717288031119199261306174663761297110945980857772214285065357579904501727676006788882420763790425476505404853171516198285507798990494727886903742551912527951957287468637952752888038333264066033262340285794127568123482241366713100706563108718479257647648474363516472937293150249350595947806462785986284230771016115965109779245570305530441272985154334892936149088982914304715330805939487034117335395546158273422592411131914329878421663387176125476806037675638115612867089607082452305621527441068440996334069600999314112214896278927054355568332102476409954718835367848322056399572759311224460378171270819899116282902004398856771921426150186890394762272080999728065403203740376743877905671140760142216183872601651143097131015265459923863139006282394637834645448843389142431697357581497561093694317840386534356622739102722058765325116278172970300050805049699885111914432703335230636839042710892532014027164732546973874298761878994174503493408491709810512233734424806363855909822261684683506857228512260692565064367018065366406952728248065501405665212675152158357400095990645500882192323097190253853709526662925128014280265485141172588597444826499616287662461462334943752487498330818441738750157174697527346183214596233717329571912424089134001675899572523864285893050153699827487943329176202588433223617661597831156756329623432159881320724463989772149097018726030312626911092253922247827803400998840184073654675292867300876216213437360390678467122821481187448224246485958355429395234404761439070783406327413809110704024364480656556023441729181816909176945384831800081155588549967536954916018677226322983230559836361650230899596504734491265732178349201473064996925771265719649628454099519014433614842648506141626217230465749161600551498007753077646140603149985511721293943870027535103383806890948391560092124260463069194699552339928706827047128136692077797530015600554654849070098682283292330455600829399825990871495780529509322474747398624076869673203254421095146472414765826041479483995287425212392553032830401112669003206884552998848315056782008895904344030671247214733184067761923660187648361046219732310722130068872925876923977422008270533798297493295838843749194498755128355256787839217017918749998541815740874295389749215783147351348193553076989428187127135920489610193151433748806672407746392057125166568452460424795114300262945668466501109122093127952159325536573209336405828223109367493835429294137099767669827387319525696032836892521247660818037977012350674010507866481156229287087726848049529075510906333643623934563690507717943872238210457370508758657793132116575376575127808554445177949768818489580509206129173240990719126767289452686750360674339618391351303429768434169490087235209518227470709651901327097899562371745972464792788313290587119548002670982796984876269087455986161743245614776727219469917346137573075998070726033484659839196317745619496759073841533137691425932739252118058352185035402594056595606688058457075386919687547384160413811273130140120706424752188510928300236793671581686775521345660393056668638267654985281217420043836811931216438145551586578931932141818879486869213237693876476528029404164248528126160483122619628431360592995735783817499809935098529619220690568725076286667750644599203850769430451820809430764087220833416472382346592038959424861559166550406428368008839343728307690765020701340377421089805528895718638882568846958820734926023573279344158171921732699339823777572154743039507944613660406903336680085241625696857468830564809427924160347879307678500622461110578787731535457079653468527052683163607713978665200064249118611007667571765527435544202565255156882269340500380688332095278963962389231284844671168919521940811297486496584942145168855031820073330173036015745137025494052202178478096843557382299610451162165886080098678504933797051419668381925973194016533522375629591656688029405737775651275555854439121269593195696213731569003365344416247952188369157489772332891036864742715796976805609160580866560900216213088255679079595111405472770760551295181672157392006832268498781147943419181994041796428733816726594813946094003051983523571893985459049288820197716571451072373288467626162589421483663598019925755533903235761310116600313522159361275075702422716359301507405655186986357181361688559221756552587500745546488775077206766214683963954621442294675295456566414059466833039536476294313927854604772890339089080948102789234873315193705094968478130487544750605508679867290081448906577785429583878820733725677789887402218526721958744584044650160063000927897122599758324086555493095035344172990761528650236172951049895518963030464230684248667508792515782197385484525171077636521844614279377627594093544997857583161790522238686360665112024726552683326965404293516385653027973459160548393099183807037664802335233076825764887770032294621018586356452940450321982917226926211066821800434168236851059248295312145768496471137139138014717627858078874932092155327129838797396637551816649781228030238457220619296261109018519387442002238080365748751981515560648766977933070548611238208356128758162517990064572455817023906163829223261539193776110655308329521647496942869657352001480854722555275085312028755520026452950426388036331164607718667542807091546592510351975864493229749312947929640946421985442051892287494077141943938478764769299615268436192615647586736403050956408219659646140955774344581772200348705955429857958639371890628032026323009902319725658211551418498785285515085352734103726727045674401867733457864294495755948449098819914041225390690596227588377679304163906913916432549143183866347192380138995422610741136484451991551539221148477631241514278783793129827834032227718160275003558185854275135733534881763280321773278658343563588815853673117114270858499852502416469828499233051951392696636686490725419437195606578100164147932821019094065823396727201439473771044242812450892312552174963514231326062589430957633101121531186964580427875323678046118556771995456377595983830073221866402186636142950811395353157419068841352852881054374368599517344890933801178701664222632615684075826373134737339204569948419311902473435102417481174222539023388418578510372019990490439036508033682683473278970377018442790506431095692541624318750412104363930677260431357803339669651530945096296857139058494560085999141280687339237563035232964967023941708126155855031558947814544824424670142105102205790526374047957139485352347810836270868144641654364811931655788074436940924176748890633788872659910305869294845219292413664951361871097229690666954347913536976038820142599378105132073000560514236249546253248344281433313063144089282193146755987812904474183343551174165840948369046350322518038449813516013172182036765994269879604749063714465672614660972234323725326904622706494260083298844552718905747985874027187543117252711824146420710954779437248135104199064663883576561015510765364757319606503856822317627335734073738151868203852318630297375706522054563031123287337840510068751635659391602576829533616712227198383905122087136728906696260660738233505750733043924003902077036310163662290768044218671924804472745790897207436823719244547515063555778718648802113790961356495774550081141953820887890291461746991222469629687215320588947342094323158619300561092427745328773674357716194604842380089322541463436209818386056765074272813252688099599085808507938833663580286310919062228210966553939207121082062053035764563278471208648362947386055481698014864561821143875236979300977716249207543167139982995435177350651635677245619875180120277312074262505784073407252566252838471744438444073133386366514706776856862911127508425832696737446446507244048498375566548058213044260967920119727724946667673250050023345534903330893793913710892608441648735685404467538533876101137326917950538611884989937150404540474704348017109996386878249692316131288561958408576986917498760720696812072854847865178824784544963037001743379129426033024699424617838611920716530167882930394341894450282696456244849742333960377842848231196559374591865360288161182522243304483168221998580817291294432116841201918481515862758511671293593642583452652051507063136127325453291457257104204085023627295091399571158943979087087037609141109528630708722375897904522055449239178454373662558376648077042374866703790542225187694907324052861411268866563833863464997994506167870134799201321167469781925621716192289811534549605173612180269743089321380260173346503662371609200278999257081446260368759560294509992294357567234313543206065433429354775564388221289229963985575335215536309972481940622854616354573711658593605165407053662344569357898324392673133825217102118487297093402030302609327910309368552053211271723793511847562284565387885878566805380739884083012256448720233359824898723205402708048889385387882852669340165583935094671408216670210667973055436638770694471336038067555599317123157798328890595498907807269883472045084636226472870621389388484636027426115154897350489637087357549051004333499716911357891401310826963639994368270740560841877113093221510036701376232422072631553737802571858362912598603247272784258698109132860868554274651870207674485468755646692115758885161782175422594003606160852468751212383050945313503605490598661827385592094011716262823140060378122057548419079264306596054717761274945918453656177360475343628177803541425865050798396156601307050926690277305443798263563474633336088193418670758838499767640874445146525087549878880225324358378454866303763929010115459326055820578798095577877100211831328137665108086621442596999071301644136411817601830833605288511344175526921336098000222141831236707469292277250479977452509790731552055886708328162413917824420144112059012541510277468426071985451986178182079729896944917675515977474489851329564933687977942611579944665125972977884803298136160347648776382474972163261425794233635645786667991291466513061019012919819490991607287396184429636618293549233877796661958651193257444995217463350321986016062578705929045438296029994068877232037675722629542633052322679740115128290747836691008257293263756117915965786571706007216503937096506909127003689345283225905122426830450026403800049960360215376756133592981487342625830775270825807946977507394222226291615724166397345108280387764250271869785404771898913763783053970733509488257388955166025763486663220165902312060933131608052184495135660358639773294286722834093499634010213337621341652187047736224518619401008471832411014726664270814376158272456454632797836626409086956757309887434649866406333761329379697687590277940708387973840818891174197547981755675697458390815684552091071036667067361962886556381310339815593998820254096220938794008241807708872511699186024390681271112369238133086446950590289764001557243511981359468436813362168915666369305260347204780466271311270489491149508139639751891289745593759488403975575744427647022257250969386642996911707752511506555740618547514085622152219311540574852090760432185812430755681583754553827357230806566585889726004314402168806327748805093240685533617364500427206481452342665368594385111908909951262540159088623823971081485107124087614940048779514113965688691227637806638087856058596268492737399739193545366136841093256343395386419269966881611699407190191885871073477011099493853636622630137322301876760046332223779017685867794365126706982744285803633941840555795514812346755323922611445081754699797194883796807689492323595261956216228027970456393616020420040867500037213705648378658782861075659629017495767069555890258213777579816358958564251852865113584384541484787586974255005134979589788230465638593649045326052644988643605565379107067006096769069076068594813121134790728893671096269430550137576721528929553081122529543183479314903759655221695198632001801743888998199329529942788996255572803975278706046508382456363395776395287987486430490432984805055734131572286962182770287564410940258489074914937734444044656205723592232248591774987446517414066936691432169538538850956826143540684440853759319404336988963732905144729727763334585359665937448491495522845933724065065176140791552363927618879499525141505412923676312733733025845751105645729653974316163846364213177602051424954230835305656993188938088864384050521762661592591760066141742959578284708488088102638754395746241715767460526005855087928874834558741857330624835402403013706524195452380024933829873853076654357773648919233423800432496656108384800576396191260410976634324662532112039197386609274090793771791428097064762170644749983664239497493848474650176290684251547909250328969172311136604037940938703070560148623528014712364450838845468331214484458400775785101726175405999554939499867791722437387685147765296989521021633984733169685424577906372297798990690130934283944193068695625201444252353605362740490009591370362986934035858414828533805956434688980384391108734419049841405541926480281185968804080529760441080115990510234318632041745553156589091660126853212212166108153131979185230118083660978899644499273023952937792784957811821817803165946307040315055724569199658631698580365286187035619523725742860741542758331828722462736729378702205870193948437733044333505783265156765083942777218859938695544417914834652554311333088941088578584783710973251556486854516933436981381122666827160259160773354059007346278898729288259625744069897043212280192504135655961042513226374597431521445256983964776704705152860827091841285602751440680718536928651954188726585272781198310050626419244639703102491246654107520912769513698453326498282331308439236768148198506736475915047465936993826993554089277866485627762799702890240344691011209543177434197511739429569158105019645632965879335159882533733427176320685957234791945964783009069153892608091179199160851177875476489185813845483183055635807239741016929005212493594209134854514543507017612021998193288510123976415746391621960621403934309780316645343927022413691152804019625308437126461114180743111994242834041586404330666667666391152786687958121211746201150732076180379434549678905386185660896755865086140183447232317157752873520580468437584927660933588747408916613995860051938748652292343259364416994465384084098540326484488671393684349419225679761633362644016251308313777512664523282603530376682660691352453257066316178554545852947529044708864977010786180732712775998443041020162399544467426107134776765853365011825065116665380408558380024231073662634527426188398068384777210603570385233769131190816933290448282237767937022033783387220243590764089977535611861680409278733200925292523568194878008759640431521666151879183740572744740499860286226934782115472779055125879826485141967428443171665765722077345768174414990301228172645724919005045250004844569609774651068061189169352365134067347176597940139552131507791021353334435544843205936306629469218281573656206625595533428064794357812899778518201323230451047473584186919827014206768557005182445988414592474950329549855280598929430309847206511850682493147288452225519383614145638499780743414543729999691323938131800661117644314046673277065485839038898533057374633005414723362542051260494988329497342473691872298082715946270314911779994291831371957115097829826991507731313732434418818330744895785035762676054649598448157994792106293314016113665645643724804735084095094252070363247283754245530698342420399823767110627089443146299980572325093031352407551879359805624219453542284685410667033824472690279731147219649134797080435339314894074964288996867390933857316076367868546487506413736171946809738923188844873878115944819657320836127751135681421363396366942022816286311682833135687995314436270171786945867467077033062172821546693388185530408485777798487779270397796669807638262428877816900908225781570870708353896900848995014246321389956223369195674204544253785064318520620602881393007451554946231708376897668996304246890080656578015642533591576199346530524242462840237387211702130956356361054764910839611107391906362382608705565171416762225085653003027920805627647950483326852508102586986947746837599009089620185741865398785778083800144211014792859563563901686313888325621258695334972448595109984523555967821549426227519427591332686516260408225416030268033535922412343754250898965754495173046475745831422497058337479982428064453971691072738954561278534597586533161179889612781511516751604365971434609906201495821383473419822047935720156071302334005711838233807720295225309091189972802098768766127078366132592116140086612121201522654117464929830368699535288604557279591789361469558746561075560784064703356593301868998708273600412622207981914163426022486026710082089631049719601857683789597681956036050854003085294859158568225797749365456663354168217919641955974453547063040784012037788184706596981883223850795755809368678574099364937235587961292401851261388039892244806529576653460324180504381669857952683778077513560202687025517073196639572258731568934177620068078428401640997562683778104159302828564815601926640450069522923782177713294023851666624372480933609842352053969659076428498360329973595132368752919592889675855855390606132847928716608820558475557934416893742784153790529898253775673411283517235514840709963210286814330587447316118539620814805374165540553458509411444403433691957728222455623292644763396425219421054275682559857160807238876747958648912319854882041216958923484974793312808765739251370201785947568348502826237524717880602250517773099026463042862793889466439403068780840456311322225361297664010882977477431574703281564490015696727404412828659059166471058161691305628669780934576462112357225626921086415667072969926042533459902373434577419919352848785585320863015878361583731331313875056167137318800849752970958648881126408262558416170046607213197686784067491292265876071195708683999001114308979261121364455914973420016311285067935476981506155667513787962589307812616413046615429671095654783035210176250972111531929749221584335091232302933056532792340576018397056030334947891311576513691117612549483423854579696732183479294027632768847565595615284205134064734759866870341937925145389102364689172969679235446745717872478049901801189687613261644988830039060553345321832109524156005855533588317212669943152906718722307893863717763797181015831766332780472225285047394089564743641757968572806047504272937435794304973222189078720475663081429613916220123819774527653361268312133748825182714299338056340272438567776908306099243088113260315741931607931610541835628187102198911291109230984085345416365824259665595208601507061812770730283307200341744573084804447549402155131400288788880811099526803527600447383477274548902372682221393473507643413052486231903762485759090163388040707707045366351013041615913117857840409608461761790419337449083485308329270114797434336147885807712048904254375264669645544231733391813923690759106542075829298602348624099589798674941484905360799945456500026301485071227419581853305210726187510623990276586737377152182764772868891599763613578716374693443543342947662530289741414141338025548775519533623021790322978520359107658671453683264041662576074856810605543294426341643291801353300847664249976572685205849499784976229497689945544055413130946104638906326456386696802073665451604634967972799125072477986771103529011836332123460283801809053667362035966882610754417868700762495754933933995063231307774377373065084116629547673770741999743742528546759145869089379712889015285388972677047555421256532008372171458848406776663408254847100146129335269774343720595961325927539882800254526268721764102160958822988240093750859396807178031818853419514029957155494729348888586823820397637310595318227579480332246863439449344639629093795866433369155500180884268260119730186485431168818889537710893348818611805311170956481794494732954264306495695050178019118480576778681207373639910694425063203689888985593411099201564704185728260503131622301092236974048068351671013638985439636069868419529423921242567305002440674559758840626632040915398845054633011763915229775554330904812696397439343009707903631958398446501737610875525566320555242340953541409509768271031649792360217968834800762342594946679697370327063908946926447821119280001379658406105923177895455545208766509815008431526374596465150414454430572060575591590814388326210183861006474026592787850572588060388609779156933440680611923915495309725861883362374103605227910082186147705367766941951059196768717867773078191714240786743181540376295030107957583047333145333577339149530132301747312781444587391071884629796874146269337149926828908519740665493118052099570951134028248214413280076964521446088655658234242355653073239391917553935723037886778655692595814497513783493578083318829226093318822497993775331055076319983737126745920322528416453734152698901163749079840751443804357653858354874760861405961658659716970150739082953176569503933289623324347621922072319531924936998268052369687088842720560051676934090432293479861952507658526778015081961748620644117987049847591152609693943091152948540681563322602694823992871848110623851950888816373898145270276924442090875141576316322411379350255521309064285915387472629674131060421031966407622588296530620072424083788228005829611155838737098187018068057753640229675174164340152121668953785241222507466837899237445177092994033322065821421367199541997000477531396628075674808457726806977615112402891313713842561340984037072221509583707940667976677387870400621339573447489744212603938506285263024876790112507367036315354279361656083505945749342642803431656175576118885927936046563289202507849379030651072193180137957954840891006702161640647081794889427127138879681808037094615564912569350319067191393318974558297185833590096668112719733803924783151328856158056900725847224875442971010430949673775661013742731368305682026962763282146200126760479473677612221051491718233594773297059890487500136664759672777648044199543510013195483926405448500497222079042890726826187481940428913517715741670979143269556599986221820323344497386239885824704483094333940098768455906065675330995513097838972336099862539666119611375766969740688330669227339284000447329480559482451328567143148335943167512658785166092537681331768119113160240653813464112591390161297785098506077135505626879825933003966161850107223724090801168672268595858393643630364350367177158076206001340967184842863733059186107304882227462039912031522370379507073198709028756563900599125245125401847634026451880087851624535301066928978139463070997796230130694743334305730201963747827845860966429257113110005028253664761415292907460276913536483750605371729550974031122805427724778338735316986681982189652001801749169234405930481777510982946553625519707863940971235027386885929878424612052673033172601646524398199911800922301291246809341175022009091347080685375597034916869390198648853402510411204042292823108786824280378782649919120349667542891288060600291154876635996198882173206702024651137850486831207174814383169247096481229544106993515888583542221604359240500059291234809275511290337876967501500800866262898377260728675008375027765996385588990978364831527228618466912766370945723319529989956128971617566652551082222589297348596923507976907845642362102981188972877640122044493276312410356330259139050897790901425420787015534144339697542666125648101182709635847055112060393380076562046392595189377265659589507532950023529236582160164676540883486015317156216569433112817035314542758908964674194635451506453096710278084672292544690341220188663463786057133089872193247348038076485159133423643565777774168085215990478080501542971346924519784904221336689080015036116155628919770143055733204717084478125877618252445656124861888830817208632449437331323412737754003842383637245979899903671867565149218561605376362790930271768052073470802898794747530262775503453567892082463071919899443744683876680409036650065906236426337402075113124267555583534392030540804516262409135004934284846672214770123442965151170911081510005768687957549378403619060449664207419291533171454839753611433234090068316457285460216307701380859987723247929031118616904297157560027214332788135264984495490171416986410122262096448085771546929402240813989655339580421322327674125265299092146423306442262858264593986100360580671704350141408872881435800637887494308591386842825382318393016507179389047414960796180329929318908578949655825708762310637226691563761915775520673228749784683277542221240487409410187663709228969453919534757021232793682986859648340065121319553860570147354666112763220947709517510456020260021146680348231661887790391181274260034071360870212369885847607255362940317015274600428382275084981160334153668205869218314275920220977415986329554668357500904005218460360540765008705638164556690719980487689179946575822947183284976114044476577325349893078617529863333218311267432923828379322628080840523259874068019288738733113540198618896252270347355639874278365786789309827012464100658793483649542345716835731332730705524147633238869884958508896713705221716567363143630325275056814286238733483939874918275007033556396872910285599967047891397036249105397574375648522268057413404069060259326183476947666500506767813879748396382608995317601904626593610674219035479655190075565225873561355988286999941439485527324757462832777060395855024054093200022607943047457559166800917966201101295563578989003731310379841120260426254652761464098415072170579779493205604219909817904194599566118849224212973267648381046453289007010129117234602047577540070936659979195615226978254352388202376685364439292420619455298792228892222914634206223101154194336246819301288607634388447915099984331719712940962666296691006902582817588249789016174802051257129857665755679556475771492579026789120875848798245582573062365540876452011668961216469415631331075322982605471006218572971448549910051968202665904865199348385607716115214405246903827098419480874472017450836787378152581821060710934410598972155830874688932269403422508545973642971853361662282106424819337840061832299319892028238812210829661292554898924226499395652752653673189218798768752859327578502943384512490192623011032082762798541534564472677803390453465147176273988463835498839861923902061507835017009089642263386864186970748717426479741030991170417907700998000386414956351606564167964682722800519960565168252668927981157219139318996396633875575007641270542872218927432138725713323284737840750043439667581404617006321608577102940050402455517141747543561528331887209454606488205479584781247202811887934004225183547886053938908843529600617600489235327476562031477531696509882824171487962064595596683589881785364728291774078562235437816131621526914482801164319848136458109046891409178359302919972122481038186653134741829218557294447326075145477524727847053682967799319918971211419881941105158208702404996588161125253293568401358855998369659056870225477368736722833358516474158956798845016311422537970333450310734904487771065549645330466139848225622607843535115559362092040527271253538270659704387927192518548720405474535064695559571116728818312216376969179908285783489878139804829588446510354198154471921002753634745682588063475226616095423886194264210191590771656168853715517365430345888598686153391111081608739185891386931267432278987270080106825773477494187849647305188916724269669685332039592476484074941893356290296207854085872056822026762678146229840360918864538986489835614793118438223077644843831414593945600871782072955251433035839626006229669353800392211137521617369666302277716164050935958351287269668258374395004310525337390266555570674652716517765808086795510718024450265350164528426355805791959959968862065404461677772776851015783552139351056293532600975752279507849412298732725140423853543937793692752822825306867060008991829205788411829304381747350827110175128637429064462674553757403015591318307243258418837054903274770884346734847006567049512609058688334867772399131462304064958594222331091807455246322163075282962546217597619515240626316713541119548619656154493373944774706903775604295896565345161415056619827180857728597344621867071024090450047827688330204011297711482299385519591078082711371934762657132132042919379354305861718617590406021768021472207816548833517778401729120567270652274591169348512712323675989984946402975568542660219829348951617257533819165214645154765318114276528395509390542557721503542261476982348845582564121995863059204317463917575477482655292410983797132301871764807475348612718226896728485524868817935244993682596776626420232491263623025071604437915095025908040487589594828777754126187581594118569292854820823819967523703263000834379323409026787469356410645373032554138942031015692537148542840947994162076497865426958919195868096036088349827353890946246440564389331717363444371830742913877193060449267873402000343555767020297706208659242273910911791734460671535757386136638143258732151923649747725274301842239655943520319881576614149052676509793178146613828884827177867419323975742309105040228623607954027667795562345655936281108920629935047919258185033036026284447308979870023090521861126626091044568483912236054379540217128983144337169552233645477278535405761283876445670237038311325274113513436208421255024272095114019366199484827859913804276096250168684520188991504967420828219350082760288613700180269114490992973738157092374465757223792372427163221592684906505724749361698392797017764129379613466077862810423562359052074825017923986339493855048247324812892981021321028612435331123981503030206266073725651548122696775853600621889777065993036154534437920988594295501717821788775049329352562577890855346501691410292441540814683438026859975200424272862955011183148116531440280471785487194236186479763119483865881577410039578552102302243933645474673670852343976183876637253053022422506273027877911459668779580876165313425811561370570812570181519328933788769101037160635314256021183255484649282736182186239534579415641812533671517294690145847951496920510702734676514836149201208852672918968906986319462633588828193741640574282571307345239095329597914765883630907585638311012900050599143809398594520124579947061919440264782258659877866042178358859232837215059409148866850956499872488003493428848554242117398734511734340683522543940931665279532016538693840583266689671583780123837413031699923214553639632959702347215486605392394667965105035482427370848094771551888002671402358645451405393830337565928881359376296637875727216916883662809531213291052840789008963731459033064684058323155893858460322680093640511870956937288065377461421900598654497117836143733975901979429034129301885739482722464068843233552733359096457562298519895328233548045633159261985236771864783472338319109507555014582031457852827357363393049806511285715156230599069794963111472804999796539098059493524169105261551981370574298553668098058099094332775400713089244370711301426498199056638300111042440012059382794618164576273265200353287509241951010881654842173762035233314432132505296072399425831672624703208717533096252450488856664001157653490652055664622778778280275574091248659536426997560967819226049707479392977544838576878133272329737772326340728954904413697602534851306467758144333968572679877183953085070976857705494988161373576039487167445699174292822342769097215740838359830544280046734125648151408223881646513829979582977843944480150826646087836286343580762235951664736094949242688283831194226702393840692070963796048922539011950773502905227104068771605734641263547905890940666254880265822274075222227934096959619127346968054083729212706499128279550397990782668044468474742542231814377636134837100095687841318826363760854007566829513509779719403485909316588512817408581722381700857397808366411726615715892132388611833860883785551343923619688585551380765517835019987329984395951184899417615506129831039245228643472357477251032901005512966784101952224038988086872851090384684960350505251396873889209895842811524748760452391505301022677396228410608282944062155845071040610766084152956637617134331758824199386693222330837465205393181808632271797909822823381025150254496316915566557249615892951412238334377974351530973745420869645350933575658271020288096187035114353011270427023914962886987207440898063108596500294329964583634811756607161138257104857520941877617381290681158020940921869723634874050100254743642662773261465052851352945045952726480213347608570698129087125356326787566396664161163544437744968645360118981275609674730438938198683407121076121543801681615495589621386287357331867800546735562246478969791351548121502616253079307565784129869352645628222321624775063114061861079870964307585743074218629043267542930916188569196657326409386351617137731783603487268411360761179421334470557819714628217756931216696801647152302493806327115098596926077735474313340646000130329779416578005662398176295919722370957716921495607745989897155601458666895086959805547807448364604003485601781240434743842131923710921060910599723910988614574381647622697438423269606112033499053114826890909663810629188142180143085539115728580088069414040071910024880608997464366187087888686259859995724411506399975875201711684235290649180745221775038044428074395287970376246324771420396576744009109274229039948254549264912818555844529914227817296580738921301768892841659253970536417345986600789317488977443285913098427960615417776799145663276319274081632949070681939146166518765537945270657100813709455180000482067460798506199106768643095061441067638074066102081956399076806975033192907326226446187544805756075163533157946721362286246783178072167770533899604530932768651856286062800996168979748399998202248799688657605281762150070363130883944206964079052069614590164073990748849284391358047810576088498341318343611729060586786031781995465510342307131681983839890809951016547936563140745810968167361300585237269256910720534105812826154936902150642225112442280319895563594632120418845884902040364089729303506545863154838249139986422913544465080475801594538384286092507349198801987745718290577750683947735237064889051407866323179774522775289558174360675707563680115086670076306421241986898985723079836784144452180428992970997572155619718375812706915858601836116044123889344851002392124368202866308123378725028519099296276630649015564412567845102112462495450434648614982128686774642384796200743905943204890379889605742897973004215368336713184306250578693570120368765189512050406109925236770124844810952090743430113284207062553321471392964982337470227188953553681325778174309492122436954287090897898942507504753948279795446830760254234504886269361710279731326876792917179983732019195891650617781507552744828973515598949862917001273811164529198422982039775620872917000486601551408209905160644944957848165391980279261528121530543303919524082353649636640191910878283681984618495495885696006126188601224355682772754895494171452655945245133488712023153699054722073141147167554620724777525927610617297125653296366804029458680010053246072860968579027770901006520399373275733263803830449493102768564662218633623922367366906553546779367846504696792847352049122529911208431788868857301830121263409151628614002475660689916087623984723279035606067768468695707048697367379195641192203466721894940668230208840129787367988712851182381367258995528367451293380742706407407811309967919954472596918569221656246810899308349239681812529844803047748863299862887443649702004329013042140272027899389105522119020598514453732863469989119114047755420066378397842544883451515815881453152840412765019639031381514894707752645354439787215476768899516230448938587558035561452038316295587501896040720823142190760159652962643388916681614796294797414831138222291855901878854146162871215825198961394638804532000631534208290891642637883407237670950545140976243638446745862623753583815889709567761841453284176752937427038593838923321053690060802120119062589955522430565251201466840294617262598630375269400685556998087019604612958306002739696524792660456194382463321680486005096724246648702867866366671082627916234072396950037794167789371777070512117240440625898594383147510191932706533829855745774167418627670983945766915086445911615150396235845144491865455606696381098202081517107321500564704381510545376394965570603205403072494837957970871160892311052533162657958770503340179043899081190444558075729359834869624995600110227692254177117186135757957937901210986605150488055372810354171105616807553483449039835524947628614339448931082409666366126250967252498005726443270605148121480357084931695250661863055888435832257329514052809318357857421708142992101444164403048072360085614602303150453213670155687250424782487828312875207699749325280672358947881766667326622303664084385298822889014193403017064709378826246573987782077400898225929239050781548929918950418484126906817186492010926804510767072366262878431664004615327051274066017803586358770446216600227353577202295259069338445087606760083950462811295830595079371059923241306506014388153230256617408543168160320785789842108208174175702801676614306372365362206491547961863516981683420193099452151830732579442611784973302633287626053941487699192060042941366229878061012754913990827771501456354253964438861894359142604090695927847808637489597359356989778033883726963921546981406989921786842963927398615157582200325797796062101713519592853226159897677790711026044879607229004648527347971947899216017462492745769438254745320166495805812840998714938741135016379569373252358572078617536067499195667556341351737359635185440944785010938239167010564015664250541118874921439161829539638139340648209355577931122954774639404669839401327396291004114771800994796969997742002833497556358502926707697864760377440510093212335240615881202531699964456636844048874544702018275349946919973944166574987127925172301738052730014584694556842329248649163941532013896849807171450965099268351692338526119812317903402006968885053322928570580055337181276166644140961449330571260419328475927962277335001594225922031276795133462309373029153297918385958497293321049274087703941499979977221858175550142904926157995576963976803874073612286870631482019610307644797715193955175585653417024990137675334859638360337761436813129988016404928981170864204825224566892226534592393446118129550830392242776393931932778946565916922866898843189204820220718067695551015562912433946912972957689946307973801662883429801231120430308185142737324164540616068403657519963180605231638830648918567996246531609784830115390684191603976528075248556364061740404744497727567189748806566262636255618362471556535856444597049484918053651422678939072175356900785037719291368132433415114357775027993050069994375100178144915160839466647478288811952007589429439645765619407728753089263254097618892736585968642009081691966202068645838467199888744046641450873219765283466161077086952131534456037918219305975399225198181855495121362566020144510339344568017905834880634279603550990209009031122871141667380293923928604212349293571618888784822508871392936206528212537853104139819291315009367410813766148414826028503570616536007792673228081384570651008540094568150529260117629773149608210258623145841765463989926820397068986766973386676199431916308987383063528085959151124982399908862533337741495041812341148697809718707376245423544056185242382679707988447879584756565734082332160440283630133741088312784555148436121078830223560387567808071963886427133019433112452856413623807088365351510904274252377973002994131229147928014754840949044710134482501677241432955080360582566123684835153546737440066293673705493336449481248057086706590955048957459513820227052692163739378902858213815893401812290106380446606992462316414842584221247549336834375863121870171243136549954054905203297666976866615842443542871972070197780722088970529070958761500312743775696201564492412083705344772047006511081926449157607752336975377871375397485511573849097919977808624064644672474232223398609935694869588532294013092355677792873536840479601654002250409302366176273968558129841940297498799978797158262197154057042158103312083715436030319770654113733185862310965341651384949089025378520023324711547944762902307056688018034688847149936374210673113536823410572483498321834155733190140421237239906455705093244892859939551992476922158406057431416720434626518774883657617576483814905138419200917275924271920557863784262668225807061751558691433501365371065059285826980348371872460688579625236958328003922876129265907600054738654865631463960711764789078782209149331431369758588498328125483333212493857640341896870537145329295987672592426940393191170109978510896958148377529409418849226956636996891974757886393027856949005238757334959110970865673525918511197264839929194383066314597506261703426037896973394053718538967064624862324887247333159051246461934086379085607537127762509254501473130457169982517193834318356679333999591080895882241928535736907193647320432904233559460850777230434415714387016321872717661787349768190531632070581968702559485759342059686288219124878478923231896678864486870204443962089859759733867778943384349688920101371843997297252989130004265196764660126724825538372604312152306385337685228693818150191213171245579051073091455899138228632752704542242200153260505723269186875038823098456945307556485310222831813173887286242062089861893774869302284022091004122195555090928427013735597602268895871977105346504301413701476773419967489960523700241426361250212826611796921127580940578677697670793760706009788154896628219254914817143533088323759833198328519519598285966152404286943464980536899979454366090225625169644598571747412469860181508885758240904812462297399056528157354639142853840703627590060648339103470396811390630033048227465800030481403484850588019836916229356911705851441797679771501880796947957116152361036260629551493095026280955789299180792333372295893680247380439217279087365242750675984830115570202227387528514921363335913640481389460797597819175019553637654419584085814761218768506683653900380933221056100266547501976346951282036480242418676563623862310169985401216733768679933968870561067719930045333999291118233113742896824906423185668764684156813812273437418584797949039950572216251864423984958507741984831290264177802742303891636044343038508179159260163986674926961231850376593917624590462677451350102648133025999636453788298363385937653774367165827777171162146671403403289721764254016660737571249461517693696344109551366680268306327236023476217449323078141669702417450288272354917014812821597496659403092760510276596486683454468363700703069626357631461977392720935993752833069888600639598300393704701720321559804114308623750173231780036788035109104148555312135332543439247172129350925936733318374105543874393488990150554775669481067911977519891820630209318368892318225801384369260649469870557752023806045617523479722351514778160270639469038737184887939767323308863665460895970833630296546357197572614871209617104762671605918766370183290536463960460734636135132157301632892084665372877585974144337380056861504489438709167643895231088370048862693484648272198379203503792081327529796377810944636125492777771847545353057731189435692600457339523150251142169345771493721411021340088707312785619350543236945412043228176959124150804430098459122292476162748990149158592087753399194229385913722873566309690284475209760783439458554016558035484021327376463470152930024093941803596151954986477999277810391176254893439418655746346256076839197394891562395772049794252456958682210693748708263217738737652110037720323435746523897720213639487560292406292879940877186147938993480124312630434189663608222667461471830953352394802613125721496947521079656854471674881780051513051335554709012065074309854612456096230132388025078403846416421160298822964756045648492552461024717414979646642671625392710660299728647455953368627891211675727633077040669724744392475817513578519852892869941048462615171198650598161394615675874056874191078292273830957572565004146343120310799793642235476353761440532406216236694039748778496846405576575294120488987347984649110154973766453621641968228789848370074130158581540097696145858676651362052074732794356446491149770411621254282209432963551055278672553859051853826029387261737884282228584715160861367309960968292824733018246089526975294494714976629230514499534903262502817846736679361415337196626032713394534655535683181930936224610766836839800536049515929708552083955966462769047978558516255360521475884229216356778745082284160170664379193467103527916318943391552122557322655044708304280286407472187887360643751567385169542664847143874753003724404409396484295351226647654599855149393222361713653938687293040703229577840012638653702813230528401304326873963780261547206268418334025312295875427380572641980421869123946528470383163912091850907821772662218045726931392630208994477694823448473474723150712913386506329831067842883202174508621903925919679064732711129336083126087907775707888861577178228029499068781425532642606058657282002769517058052117373921528718446625817230903576513379257851218935719526807914768178120315707797812917080052391777131601941146255563642902025257482141424615943552280439278515793404189478528113926910295689057059086554409785845067199396130983168990787371583517400100774854664845876985740793667001783702402774372570804735381473558578920610714763749172579801875324224992587523279019979289426247609670549024081715545897718959908999020705381924491000124650481416082325482420314549444349104607842115135281911524587185869645634500375031494726266382116443109332546657761870465357439112825441091601497467009358101719748481295214883803843667384573233090753367383359306296434894556179209816932092684167870325718913099454417040634324052601648356683294948493329337629341884019517310405375413797245770555723732450131947561394414253994622582287709378982896595803457563025736286885833944936984265549051828321689523850493323138171566482918687109756083973007492339459393581060232919580118675883996393227725046555945633734758255151211954053195145936447403105041045632154766339138730714279290005700424650927591592951009987266268913922703019615054856049531006600789051498382619894462563528210454931376717258437166598242259541345135943852057816065177403969542010266074820499778561218606698516112323091612323755838322049199999085605480781264844615728504476405597569466845793161975356739871964681847988363991311479337663811300074514804684115212336504664510014873786451043712148018243417380033874704737814575703400310133796499864547865941912120193245886170492086318299891532261346244277798793102673240780202748028081157680922705899720572125056732267386284777126768549674570858550980962964082770511544305769381213302925112531865768396353357888491951522255519408977380191931910352060366612918546115853247416038924588838821035768442981583801244211176909168273197488412813675334414543908690615377081913784177873357614623622882329784843930146467094656824880764485367656576135569408018839431460130292949993627620268973294829134906605005155047912606963045334749532696334666572927914261176327329186257218593984676376115802840536350931853284051186174112223903445886538769738714413590336881256194323899412084254979019567934254649277356440990023571223159166810791105992583317750996910673315250585555336372113590254637422911543165589726767973507157703880458834153848549534318034217237078944859100892774529081117571797070750681635302350222043626730975523117996305875052236284165291468343523745263747658909578529951657862695156256276860243259579659090236237279982565784841717751188232251883568430437415178892548138239181934350760007462694846724831041772104522369360753208453193098246926035407659060684519135499454214913736145493472847124378226891040575574593954474971422352791298578226337593351577981376578037392639260699760665400731423903080282467941919317659468419352420025316488782661484727704642951863179132488685023526313220967840594425111869429909758170154677790260851356308429471902697567013937500639535917174348468888331206309931926965520081633553131642301237221792573775078961582538617452747294570713894409118072054305251585770184329928765492062502314470072931519312444000234804761068930816565619138270034794821595052467822690643334510768979642680347090458736063773465799603106803625130816167791586552206986465976305776215696876720481769906486094498162102733079656773498994862238855239938564234661334931241334025968583951885905187025761279287145359574229565585443839120488473878546804865073425293171626927492295157234522027756117245834614208152245618490260695923092811948549429799788501176319263998520357157297083787685280043248177428735374591676191669148358692633038540181366010648518602860504591119540770879090643555786126864661721430145141887804667889787131351008139799676224746343550244860115635584207827547832877739262234962282674468288471373856273851088608957315622047242787136100720358747426022729740665118760289381554619413190502644529315740945404548570692811087718490012313490294164935091050101002523097362261856419574844083630205533655642192265943644666479237638652626079540014797815221594283829040065747334050421520215934585389432538804323355130253422221958824105736309520002658580328797987516687619601372668021886250222942270020173452297179667625862483054224934631657572682384966619865779310445596263872619676543535251771496950760511752376639005088353901686560957542303308912656923054400303456332563487969117447968202430596130998318242869147192002820739431370334383944534808590410362558327106526957344033368562332494395437477633495870636185904886108984462188033718164134338370687112878226160143597946770441503603659311253792079926901034714168840649133489768805697388291208727947838519181106995724182273429893068703267091069121572881216286493883387902608465146365433515892465487926105474353489707897719377518065495073523979213658268739204096468013045019634262360194865633623026906176910628213793953247798439635504748382708296144876875695558014445029138649598747819757596641349960582782709815752277705835796494765190845019625644055510159429313510148910415643646016602450969991081185833338234619648276640242979462756043821779874961157640135478968492026831368118064161413428024262608669918842620011208242683193064491021841172058299781544575783061043900526685628179738327540388291672049251606259906738204244625548601826155533177806447031635348535710173885698059387459242757675764810580835810532478663270302025181190761941893526900470596084283491473782222721087006114326066011049951966800264152113299416451667539935929766511481097855720501285012755707536067144088289859186330409891210328630767710945373547966024508222084236066629271126251318260142065668454209273840891664847889508990252506631565709216129001100697237696302014530318460146397664457326660856989622950756629619530595929042353555096356128920765493199445738767991518511543800040294895737455517468355343954195414607575924728850649589523799092101669375055378490653476253081424086502147386319776925194181156683290533054040138690229498926961370672791196095995059993610260446549097603308755709390950581944880745910034009841494022448743504350792450027734489003643993428762297183932360498605974949468624219008904200360831391903720506501077791695644215247455778034934480734933950778369930995591718896516527619431246660335359550971276469548320862125254161292740554593073865649025925664390879626323248817075863816252499283001837567478480327361130240449243813291838673163480736715414969191964391254837255743468049850168032892721911763605881500401236946215690924026143664840376106024233995194093653036693607760771840452506213404198079257223455674168252167561620078002323039434436020741296616413707619097423625946064519682140409018472515848914826985157200039049068840164209295319752265617968643579060239028155600330785328642786205947941970204440601217747153930147830707421283816993744047089545736684553090855240563987926233137096663753415306189363745030157616623513171055047774796328261186748843539178214596826554367257715023624119553150648824572926193464282116745016498373586534018964323586389690276407968255481794783611017277578520340567673914055672774235654495057932713429836838566765178347751683507052692638487836646099004591812658870921051752145322485887610795563263198089124210052251933437501702495657160183093845253199857473862451709834502211280289351516214526197919668196946839339220429080557659992677364189356902842741625327807219015149869940583675082742179043787738030382756607361783867550659795970589803646107280150635100695813387781770647435121113895981106681196830405608240649750620275162660025196367426076227006251793781328188963856008861093034829762016214948468627215136676460295260299651947866632726744750055408776672409536016927281622043486927509169056720364896383269020860965951500654148972672068232583865392284883362990978115570975375079191859447623125237806352098187454911681198827479467211448779921653942611544485676398823929038062112312975607266199576136856101752578384519882251103341642069853631337138441551671794885082077492146315302157368987541058507209889469451151525481899331661621324397680178008071565835436691217251997015090624580064646317491522350456863672100210611685667777971167466657936272881997257763307505864208255744675176744498988724956475985358488449776755915196573372577219542545263884454359603642337922877217057177532590285103426671707992298266502706190367215107271719255416584982603127925946052865084938620632322653889143503875306417250430604048985023761585169090892106158036053382507111171976056752710389567088039186797271012680748599510991990131685143148826227505825616050980368980117814627983828814349876864842727838075520483877085479236234021264205451456298762286030024493764740208657901068901234255403040706916406395907394259934619203378835118772804377155945673195954662840597744160911552109291625926088599277079071883309805334968681752014782767303398580455978656835353252016839446689676537491983729217929159126247939557700716642411797506302953297544117662720693957402007653108297626364956609645885043051223885684100032238274803688107326873175147954057761697096643355756379708022530026193145697575044574148567992814298387501405995885913752524478178312065099741136886609156411656234921944163961422290754607051269976372120567366616634198387647147089101177992414239200929928296931576189346285857355601782342653232785433768726362662364911971553023805087653077805242975556364739668320046390474461494665092725168040720172410026596835648098646482997744400095481050285762582121413269739704568044423668113396694292475585997292575873007713844578758270408510547568946671582474579603028997542485332093546515383205728703235845035145385840236750459188556312261381964275193259458947648646534559102550696304695868948550637017609452381300637263593925905472799078874145141110205753843668480453632434115552554577206364811544059871018073637243322132048730656122106710914294629835989772067469529920337343339007808672260117009607128136259236721674774911468234441409613722753031619028695048208822962055439569054180738843130321039077561707069398777354629839135656212131798112457728356354577335537287234032802891411659888121692389551070781975960706005202122856586479870979631947248210278730504574954364569899479905655876500020171100396229455953818809474700385145485271497241649481609412975987497150238477229340372835851590095612069863284182083560231679581745403857933088479209535401109502002316870789458634307197862645830882197916995341890622938312354974656440982045669379584457578146567449293352269873563902948979039353041870727173992988453828261340960684931184089239056964862668017371371163608271220893630661745223879578537600924172645611315670417966738507224947357171769396801380007206108426637361621520046401631478434511734641231838064599031380158023407592801550082934173623634939487104959468520305845195090015489453121261693748235533559171367604417792330603239701568646213708157239279842366544006982092254016826277676717516081931121582961211370852678577480994929575963039003589584381941684871924629986119449770419877726546882701065046595133034253710192030364310804002385226387325483042179411647580321599529642055098786722818284454980615945765633815616282139882955669385857985847509715332160488783824136305670615214418051379348224115524062644501566969077677533874343019223945875675864278545705726372340119560455045633855754771377194248735683026050632835401963588613564872864850021143130697115061984318774402279849531737867031535865403689660401981255394148491038744974744363189767720967083841272857904144484402990225705596709452548675212606334480739657311046994338993165906473726638014233180572698897577112521151478241943247054710310009353229429952096944869018586482237587975120728376435124556560930770546313696922362278117790350922579856232037583645833126915742422426054997960825019842057535463220505944663615224917493750047899682425303204176888315864451456331743242430461393891716269372378399446664575014951937512353110871440623270708828937621376880768475378231132963841870217763846006408180331991744223943074645315944632649169095636902083575060353158509274205367138024170615260837209583443418883738256297403211349343424639521929200461073063073164477759492921847618144148752594734672415165419653047485074021315748590729902532410883346522446828158202967953511876823242768817015588311844035927248214400453804283299434188174622702899956598195619965435555296101504728305701839518948015772362724713635867496022034214246597925460248872378259572103568425942830526255955169395208231199862638505736666964059631878682163904703820737344667113093290588318762230091821200196283726307855404424774215392275562439023260525509817860133854732762188910857650178303831241175010205308737297868182101627616164094821621863982807340133820967270510861439835965210582832893099857842290223875155242039906413568260273067237629304170885352234886361219467125135639810411219994918403078850734625105254352522721139421655851621057577162659861645298419543210317130837754384236547826600362977863858799135023263131863690070757446794022051897663263583130271934047879431741532657270819243885557394766942416262385826346107065964362865986260133035920605008838522193593447000641797826854439352650205443706823059736088414519334048672598803285110408878154576570388097123769122922154871181454736199470043878420158486350823118408428658688632494524682178635655173920761288761603469908357305706730206791226674256268909961552696895438098388719713885968126316055583664395154543936002484644340039902579278463812476168621479584967966037956969117162919921126231201584853085075205161113586191825460582445422127384220008718958717999394579349200037361767767211718516702539036329562916511966240656903969146461673675062491422803498992504152819421260153725380107637228197853356996079084583710762121590816399537683241366169105086327100850102922681185488790458674643228448187369207111884196931723602459187998110054098851967476481954513138843619815432008781387608949036902473349346642092606811516570455099884602903943648209986615314796482766867365462706211280852618791886308251509351738800186186484487721288316952881866436489950465432953551705958272351069494303020232984331417286582718421717436386599499243207357304606527358720461397058550537711042154110311969998796340782561459181909724526512165799907392564195126531634607860139310186403267196017740538550883390402205866440345277861501254173479132551791202999323497393706451801334641505710486888977996098121150250363934915737019352745847167103288685888522120290542950633830709506663779960035518998011771029116691831249299838111830031449834811179305339733469581292426348635375111293433514256364941322604954133266331500791132141837801528286358468918889750688548660321836105180618657043143979153469685955957487017693127577685818930056957202078382539750437111170075311209595696411825085601534703640110448362001361519303289771949246150789692191138819058416379064902415448944704151020865858544480044471394648723951596816524674278058787082827553766824364702020801074026860978135147267545030823710547151753083965225699720485561654547701374816433026288465297730465338975223151014857137512407651888286589315591680818060382945589843284511002797141222892618943414401032587900733099266445583878656552895939417198442848323612274069142443872747342017379067719107709292649999913954444140401403500289482063968990700053163808108100361147929809916307457467595647772116631194689587552808515200292846437689470477829513121637012167002113958454961075463654581418070558805564908452325455634558831620682198442626873831897751900024611086084619312398209085050185318074247063093967846359945162418512391478952171200194561858028778080980973388574493803681466463972615263053957867421662093365514784694224689226497816208146472601825280537525353660047395062275362805818311030715068404571631458872727095663927707778650740136318972125678819359709018689507530904030391015765220405399812475755078519963415953011242947076281412095349356845685312438987858349890289264981533750423243203286215603681954581001461457205043172343041039741969137275681488666408880719905365283592849156688982737416064786480701205478795636020830712199571811839076913979334644207933990154263455194215105045266436799789135847746748752145384154611664645685242513535859793146698563249841198207230917854952131991576657402395223512656526972876274248202009052537275146450350155996606361264127310511490059673290235295575116081837008649549938424773498578437023195665354211759400913590403453463138981398166526138880067405006435273569638294830903112751992608748539254749551445742623314910270019117933598222598979797561266004187324932931242007318906030820646774747529810511359475190917804185543072641383061241454621253238790023283031237558466378706957238601194075056606038377978529246020686548757443601465027382287960070956927703544366201986676150335984015429095136346136931154206186734964202824007794618095770131926702331696146609674877536548745826701554967817964018106922947538762600680687956108211498911213659737929044699270582837368042267209505280041288444973766777497779478001321459364183519115596608128001044888394541714516867466252440867691044837333583657554990540535630625224950369993940584563278873932439692530218579217800145499532317902836781248487124393216892105973949496095883853904209270637319599980974857989881358784976923118747536889419119232650714269592517094904004889501454303381464105639059611645315577237250299664455146448989440447219195358705862009974813592889719637312024956878638334469137551176478014484805533622810025140973811716547361592319405817680437331826261908128454445369064896884579510235764011896368979292236412485174144297918717051683591510565439730922764838644015590916444431547356084808740041743088127020311427220334760667297018667264694143894931746493006747513439115666016026944548205784631240309700529496703861492656258971181497942475767854109710092328359295166134268112737346769382434688945613025737177092512419804016879452125351143497106687401544582463267277570860225712055403033135511445441543010209638989430963848707347409509587842820409632407359604412767635376103506050951486054309787436696628567498864983209420963907967534260660307774576119338464338759202867757907933499655132667541041084691265189163948890020716149811893593820712550821920084430234483793010608782951900036584251291343516629021269308767530697404108458722156217571533283057398976471315184902648432046338881000124481577442646990078063454528068308000204758910147498838616426507886154328411976145907693186377724843426479611411258297059482192269145247350247570449558331947145553974365339264844977161972541789680446777535760897658146358035875652755505487066964158472125987542106834887588855503840009249484045992587618986489485590501902543824968911243074244206347329849914451707318149902807286276764955810022974927677426676521366301858601196933637885974752205492903470449031272702566336112830002198614420590964158414198878841803148247072074706116667850786755248163184615791539423090549421835599060876036003710911771162108355962492707266405310500923884472647086347947154166939116905120777221270513711284854875196595405496287551920222756284035065404699057328599927747494708996078602398826867601387497708514719993585138144703129675413594115907235786644330060607459303847177278146467229276786449029673534031974331076744570089776944641100812606072595448342381746261827469163841559359937865147221678437839021383079805994227459077867352170856762077757135788498741104170253369362017404829159058208820493578373533157973125627494079201502253817318820494931001051911174799299880104946569033923119836615403611445352619405448943719330687318768959341350096755076163585427357594676687089742343053507243315340184268134850763603611149994458699006598859131321247004210399051232371447708093621702993470168260422976581439443255650809208664115957415751472133242366611798266869437169508672467832154816206672400295375198003964990005040595228868640149222905330324590933061496292120717164580372790386601959849103487762216824997893858755089727509846492700424461314185191553771198488805557639951286991458315724762181083872895709989178869714065371928935741532984803701879869039994304456449099167183022158339772928378410057814380151329828696244133490724288310913244771911169859331618774518152122145329676866565124874569378385852935209621024456691955237288301551976762071611159925966060813003661959533829876234553690623254916017795320882102339606482629398903080722294661413907316037190711578947716746810430539113986061893233444793883647994158150743747946736196002829125561168629486700177534307584581452594002817991492930896638721446182083642275533271940885757072686484019103085483544622880704733780895162124575217910498817011082821239446055567640687109360719341616345637951113892539735330902467666971863949842528675839374863560275225473176127671749813279998290421122626321935383489041171580292755543585544383803522580953598621896348398720400061559636426619725820234230704247565522580204667115278077348123246805672379130901074805061267497464612381784625051839550882663109053462543230442077400083492853221831346035348527800101982256805354887475098424211286886732449390194808921302001703391421682592394921831257791297583780618525953979889256497819772813183200474602538263306340300814622016311155764493371318162734058714442871468764680450511527593668596007349005697552222791727021789546855881316858211218403624441060215536656215316659236329886694790155257371131895404326698122755415796385726388483243565677521835228871615231133521988611128638276200617670622057549471172556773139779404169558447933270800329693825612129461891562113107559337806105036089966509303059416738171485267318282136867025364576902079065149815446573336795015926284401281166377237886576923256359103185360706876547587230266145600543767909832264316709231096231644398474904787073066846833494271729415504160447586542894278100311337320101787781672784797794118513827740410103721466731258376012392954419435076421035742495906034542577036464407847460596383525618334354126420548892313590918292637959924103867410721426728843707161450253093452627821505850217210060956274415645483063013977574213320362480187676012890948357550271544171892103670762613958310332388584573123005467429756656691086214759475960916565701528806607191110032911839124996509008611403978411208862980212449971617789405349900978838673107322574817347814214555571788072311404456706161932025012220261491470142144177956374367417723660789498595270151226978969116459832120441217353026710301992395020904758111295673677269910236267159978615315677198799475643593340897795653848101827727661333397664017996744156277395962196314445541240715510956562086998418159121804749907150777890705263549706045469698552936754555356009421817125963064122093995931674128001193911537570278295708238424862486651277033069534390754534553327373804416977745445661439996441343732936919122120666234478238552077649571638228137926797444409601533440293718428388069574965513218206776146720492759074786399963180717260071162345034047388969042972642870307897055898900728273725670012653961049582856566683265934346369142937217324791652453606018761228475581346218661950842354957593500478310575385298713059297892679685051971952424072885129033355448405249197677877474933202950312615515311214946588909010565433251342708377952585117850300970548068195354465678864387249399033982117368696516747360573209796869254872520270395377101514838752554261029318367788641023296532012764039714518952298369391953833022500048993707307329694674292385275482633211286664516060525708101220685759050612419614348965255113070932601202241789816476714386730556144673544539896867633317225758062735235239363682601629897512394612701348632914030011769394044768224754438985194235721257720770294496961405751679571211493104311476262379899322545410737385499214117470295835109005429400332314092321044531800766317655646235232067516707662287741059661583234671036633929450469472614553160193314887269465181566305358185588348945101062873486163072194836928276142403237637468647920129211331211255275839999664455664932415016793270461659847971465409708828437930782239337700261170062262847221259168270859385092785386703023543808995337497704962626707480115478047148500211170738619897318523647363261830646587069973379840298436460765076984591830781841692655805964386517796526747227189594043201465770586692882024297353183353652057740506951930314544949772319708111834281348175666277542472885411882206065389443970050133112825158115460151934620658694842815263640599785490451122053318936370922197727730497786918446574260805747906137679863488489982005722636010407549030690624151576883190462104493974525618817286358943312946660353809444313105626249565202543255181928186747283002795626373899708851041601565763459689758473189458205014344969323340033447835718411322082021457086655687919825949846041355757959379830191956716750331464044495992737598814859038038871625617882800254153422632239240683750201151344964745320924575259210725269185713745939995901832798551578589607553598232821660672967108557660920100490228417995433411583224517889264555505217020544739528313194714805391206972668640105178448495940959486213968583009972387704247659521072132614311448919831271640462102187150089113700718139597081372480342991613493241808206998089163410973374188187960693715665144073990978551859498489147188807276379536704244289628117836259898598595002182208071219798118650592871714193535183761740285238315904219282324775574542657256816586230091359198094905668115826289798160605051693831232671918320463250327004157445973310393113170825080784802597708033938751294143752630269047606619922060500214838044616204508503942442051733922778058313789647640742189185416616348325902337960418126066412076049983960834195076641462097706523258755898286444341380134108905995315884401737590836046430908311697046851798372752720524592224773010648729051503118303126857658386860219864681563861352817736723581890214794014399158145587195689427941602687540518537187393446024532382253409967824773167850826937047998459751175657548158946459282397421183768010338557865997414459740626896234735173890545658120239495547260112846639576512184356040216276248652834398225986056342585194173463281271547700108418978503551096844966813683398903625013283404396226129781534153900013574315031342519864268255914771878032398516431908433263759917165361196977994176856426378061338374128997196426802516143320389546820515384546787457762093944983683176518240746768608724270540637145958012797940889352822347092837003521220056046892792332318622046092750230517292170940030971943798601992499027213763588924098836985328172477618015310830959663429078492725036240159859900867075445260501729641549888815326906877600722456661637175880398256019358731362820760079960066841041910743385442155480668786643974311614618517798614853077905265609789613844509312610142914869676038757190201967069521769414649924835589995992978835025229282766398642803256432955317186200872651301806459007378825899732753768182973074480088150945469806645793023127673587349883721225743472744103887763138906972568922635490315970290116886514329358551738093140071397782040884860218476329699024255402016239066101536438515769673131606052136413654636873499353142396958832489019148543420663296559757182944521934603009581106908613194423666238278989073022262257628456699080172746627040908015587170437481741351668128364799584147602856901250370046798845624325475568428694482455013172251432017692553772720950206683770763231013481268608078474544453434552221250300404668236985258806830699419528957043395662180503694990231170923890600804188523651410107961610700331871489189771348501811469021177606642094758773808530764595197765158805922419434718045435015742340499936047477993595824005697077608931682249039997306267956716639166440457616571106556930547000564669808451691612334422527565259960137962501793073346833103081611516397509808137189989438323144750784394886541314493670911289071942494786709865854361516634246672772739880439132412967154178275358393666749958725805961656063277060475983514276740781969305184638687798720087075171696226895741004003285231121607350909007497636020572072409193096956435289360140412580263264796320450243696277528563953395704434457262693624116830626209955868889728463025850523739999409221449780555214349654829348341370765850637302164791610648795236631647026244503585828565871517060650615497598109859962685507952207144672562655076972924812849635856832598400830739106219715540808029934449073190341215096891832996965133538960343103594937413006283617826983241384558268101428158153986574970604591539787602397439897278430440485124379305407472498490732915667948729892643778074033380019781296063212848565080722047457813566053486088887864826850780568749547086954492283947683928111604361976208499088501593872568780807535344077952628801334533616726051804445358151598215295876577341773138297764755623002525147392186881982582118081929749520356261445557943242257743345855945507792896847567533371530777705666492875339909494710132104474064005068213956177556692483332051271540614689802437975437532439868906765851906449862582888283743812579197431439117716213252843778449151061243047591036532997307723695407154049708600405351705975336473693434325693827595677796338106116088930665400931838524644756412666943063454334789114370261272637182800501251012731601448660930695382969884388415189285778525830055003270999946250692098524921013141281427775636994643169409601763239388920244797741849670939567668931356970483212792605114289796769975707543909066308797849083381677351130589348047697356397581671145239404068964556928031915408385196286480982360034149506147803096365942280639191365860945905011616293568981651378298458882121162225002868951848301079064803591485101010239907468919586904099912750055733296623035561747973843754588919554145829529681484445452124086238594763068599743927499499877177484270161093844239685383170177969720296496033131566209565088052441899378736728844866780780730060939521496614654890869265955019350436419907567179675581531805766649102003905590196967813234469222937472641051269503940076899880783134811650032436147468200036075502052406391957307070592992258509782626170067243419525997645349715105066349380630357652922094107941660811577313220307133725215700668448604775562361978950741399603808681428581266220472615580207623702415791536660885904484759939840789463962035235216021917562517847687571388584425343960696587505201484329348289736926294139423013300626927901427346351588526268268358324361202611133711667648577890874854912853619512686374373334871404994384586380160079703310639266903589290206145737923529602443204988287622634731972714063318061293077557223371765062453935324430263066061522768672850977170023556625174126278676739088383304670246552181863390942741428767078110570139782371766426079369433248938104419948284251923842535389719990476549241604639060801747668261630645548339728994102273645390276126596622540288714641999348741732591116011980545965128910751298021441137517437058617871879264214269783774776604493253726413967521616860154154228939402632190092136196281220595228002797918691893426517288769618081452489703862487847407860143821001649765397589617479947920944907091876764440672010965488101517440031459798906475063025474984943063142035065404300523732430429847517726520444426974953177667952459168885094639487087517017928304660010876547417162518404001508806545244261619731952935300770267244532427355536965776833361794207505514429329999795910552315026857959102868641457711239332700126086944236182399164232089042955200485770281575326956039291518806581273448154786981045097352754602390307086681333485788551098374239019491671439322947336092137441502505173659112158197327408865140569870997309241823808209662980153664071418419322583926549452214711990684337685232187780884258031032973090062725838654127556166858383423903358874729880368196644485417376829351474402762164645679579089833510157812976373884197790168867809880686738864488734655209006644679495440409106874136187429543517438333056392660343891580462398140984127774749513183622637073198345309077891802894366505362155292608754060933613498528722115386301657014082045096078557496943991505758927785224731949764837191126405785457839552508650496876682824172465020888985525111413864065637093383988349588411928826472768824234695252006398595443550237771407343315846328143750585520627477455980072864464104377955923217521461111526990227857589405977613288451744613162502911951012889174792394576477934326919915557095725263753241172934103227644175289021012023013919531671490294176057508499823099689970591786288254007308638219920576375204167511764269891613788013179855472213977896889825364308124708681347978815991715429307006179685471484965604499536332526256812290607587669900592250618398515721864478342601309668055795077755945752954337027932966119827475783553779792759126211330300860187063659516540837440103474407500449786793372654562492448695478234623627242567351947247578712199920102194529340579106086958064204126949699390498422328314786479834837028180036295907265163631441571990731967069226820772457426565076004207509672860682687029769911266533046282892469956589694279051443996319843672646862798753707016631897153782099479237067911585693580741027562406677460587047318793472103352160251246710407743736977557216597603482127300626797620579491471638731110871351099126770337584115189855791426596529045639646752409141203236824021851633734560920935767174675646527294168369250502040154472410717859668787913160123634303793791938526336303647918760938294748537467876980471322728423128107739858331187026695027740068089688563039982341270932145318829327131348307270308932936891692964449226413491104737854025792696374006624957486444949927347128137476479265170524829131744985286749763683592020812632272249021087202190393517240922457461300277745045600341999963058162658604109483039752432947942370182173233550948307790802219981017150590633513109106861314094169884302933651641403497324008077100795945907133404587368155803908279619804254349168263742991225251434262144737835638318641818434610080153386377868447276300979440098119911516057476362918012714295564886196482476740552592855767246289515802539496761853029144810514664288143322479457082255072512408662342758272593050396629761610075985075281362942517791578053520472192802085655184647455747885608366344092405532089003920874390256139459644610549497762486999214894975291691625769349640817387394090751980882964877946489565861319244691361619428145626293073350447223086157019154562688743495719754075756080410613744316843741931301284343101488630416137807589798451102346541442014453176752374332914993186071930612446165163321079202722247084155613267765787939363632968707716865139024574680143481461308987470319057759418230668086010995730456053828647487864287956809217475324982065877907657675568411962672664298820074968440959881244075669723542014691675918977611919409834707160962228385172122043882365610890453900976273413722663397374561215702352888678948222036125308957455674564960612056424497257434886916972953574831645272766626869984225959318221710917632206109275061161695101887887648315624882539237071573598074675817006281393718323462922878035842690308958207106533581935187140534143882329395442266654301352783387417541655022228537442809809060184581062695865855605525120813482728522777068625636140823947123864772463990169239251974471913287340080426285823583316383761217288500200682450464895062600464462815454889805523904510964232317685042553245549700652872568421900174063359033039731017004956204402674158195092216798365820637439806715526160582773861486215889153359069860504826661549476208170875715823100363640838959053578622253961569883290207352830067339118867695665706172974307387693101390231602968385238146890052485548159626573926479702614346182550944344159352049191318649160628873253183824124519322143878609320703429861334157211682121706733496234830452028704229778313664646530344138481855368859898395692427777121705697271195876279455320941707177203459597533289569379362470942895835277564548703166059893767097539453930146487427579762189784672373648350615440531474311851441401637584430676442177972060938113869634477938777275235208978690839789417147471407612946369868263448001239858957931970567838013451020136128420513231978528039013239672433048294762862182338011159937184531711218857931273055435144298669889095906469834883021562983420970919368044908103606705313851155608957166855037913019769650953427706303327628521951981807388706472555572255051734131807481031480267499076926381079317791208083445701226275505613384785926887384545629343330047050091820235642135672636573289092590764229332764903764109448121076451153988137307078912940702390774633068081434016042192425717925371441859238875930836669243995286484683191141347313214726885916801418507039382856706559044579103004745026193832108174685069077367584147100668103657070058500850259455959836414793485807922756528182580748953020096756536775464810401532509148196564851937758959237971211922683165785893691076868648776631995694538794948819109413744463071829318301680383296413638059052901458113565829710727519646251616193499402343254914345150551747943940264282333048532095610994367517718926642384625297883207273414357779331394633998345144022216404605579872691728182574263155218716918987547790581255801220814081122620718097518862622112879255162932206617256064449750674542749379266011427853813319984240359334266348031674735932833296697284998428860266235799450293023877541131119963462265565915900270070999832465143824621135700086112297116426636669602956948022002322148014264184761133214553936446818944975625910069409827542802881404292778918599406787373516069583066411722040305437683715747468100539921229197895807951927071971868337312197452165333851014175993632016086705893088821036997822956061363847706877872775485922490955101558518111640200776632663611363679296343902821354562945249478960049580900965524309908235380264815581082122611861895684834991352166313285375981623661877528344012596850663845132686768568649213844600110442939157836030943821915343353578475309444022980815532065431707108419160206707989201147487692144986103739297519916941292504342717698762970614604365351751264770051563029692664616630789949475411227778702458837812107375645054760394692343680331393285207113674349087621302079618852852380485015922435960429181574729749891922577298644266269404010659981176852817536435958855760393618309089480122882093612957622272049558334109017370546061250070487189048936763454466676311412736133232443192312484057903121789049846236625646248811188417107493482401887220626335181086019738421813390614651977320872939384350172108571603211545464238629239049900601151491205406442006374729583957953607080176823104624309277237346666930007241881105854003553733263805966574045656557358343757217172830244626645056608253075061665270604742743166139123612148103508404676075067297058681740519388149667455392500751601690126264635252655333818191748434962386966176182627908469603822240792038122416155648391511818802073724275146617127072875782349305929935347831346472350643569571254794710151949831379421050039082680290201162869468655072572240248324254794405402823245467731621455400927174662477725684623779575739391643317078707608479103848177278756809059785395947310935700539596969561915356257886300157776369024945044126515148547104188869259307312874245111004672410081001921750664119119869482533837561338323759859174594043161268130575664106814867046354505981807077596615203652997188526968518307140236834148883555015806990096031206680847221657651602855737543230919209354743510018697219647614216367339035079291518734635354291831757176929120969784748888390783231130106456877812278374326058402919235352203151196025840583458263066013725828263922324815935640150092463985640859893955635979004437523769290861373463330431105974012734636872087187473692822850890031793852935395416743455256672763028914429531385620433734154203098095018755131544916479907488511353140959384734786441857359643027894331959647628138320504466538798694395007932130828520193025732534745164161590876458391357978051083843790800374196189524608187239572726834143509077479728277596080591682936176673544594683825296231648914412772733697169249753510679372855212247348190243006774057767124914170592295661736014521849353282247295492894207425978745600893339069481648511586527292616010548462562493763014318999472894780610919061430337311913079935155354152513559928396751332192888619952570781583563421793849445305901836545180541044506555561328064284226209755017452738502121508811272457243097167624903017528415094820847687069191791358693077628325296346436472737608080618890927285723918831751513608152539175302194663239962693636844061748121286320323303929042383400565233941893768056714197383518534777229400819204580804314564231887425058404849533279232605693387779005134649245238738063984908397740955470444933179255442798896601393464041215377781445966178977095002496851188210020225864272812765972841527256677110041819945084863091408661470988655026293640120261789690239673730146470916672650909914162132156908319419082260841408553193655339053726618106320654738388050033572302450199521333820687716850785232975378029376317379469802924404538678495046327544109133748499758843009620481422301091751373170480084471325211351707567433400473101561173670380414954495147052195435787353420338937067785736144537844966022269127429417339544292000090736633004975297384587185618687411004587845356555309767518648069901458749500331667808214901330021891119654860580951567877793749463878005094787242541232021585398073700614410359182626347339242784513566444575552010188729983345865653958322258594672717128902053428471671705941502877039836040246634903281871466546150671065247206190950227571901677122963711981648803716887190606933027829767813248413940076058728232126885280245650365255224816506129902676610522198319818909382859933024483522267171826267469211664160259514050818458252717775481491967622825772775291780499948864551852550862948044495588511741311139259166112043400203544198784248448902366819710095143069742203019627263993435542600490472539116896670977508921087912890872176173909975630147053442110479831863390259503960022904641168592838159540261375555798005221752156661836918547585345524858884405552592916978860731323620854433110614482028402383609912573733683907088899458559799535335328018931350201489577636321046848159781692144572848386239838006534118132306891902462796988146034855278736237336860947490936407154355156839312662675566272974015274663237173008066494957890224994082577425422245714278999031816057178382218344676108035315436095820381678651380922649090120589197317524731025398848545164682867207036498388377344873452043898473678250754704320027798766631027464499887486887578721952099296262533213950824313210951194067179205416753922893526474708027100513533359107154853392582596922321800692907595515990608398677779663289638261232144210007090339865214957215881817841916776244391823686663020684970652961177074574580619416700353712878034844652244454615795737234202115330075021829312595141332187830909000521978987662454483295749748667193439801511594043292160469753407962745760120549189634970475162937352493721459410168892038153264117795783798489769922385933012102384830305053623760772430687586483885158544722145263312559955797340558385474483885021002708339990484725637481526442987808758922767359556677104508678518297354183421483906217568658313325295081760491048623599415025412652659945063043073248840736844026233845061646984426499308852159433120355860706178766740075655661334763331327318399610066397958108055172566829536515791323125260206369336773677377849151288811557150635684308674399989944165666549490999149762822124800529225258603238604246502969566939046393033275489998356434928574453104169454616990478102556049153426158522228517055154052637962901958084864143322693471942903088053094480621586807373998888743380524646198110767666563656029485884317852918088391894898159918159887001470391858766835969295470306833965634730272121633821305242695271868625988362756904890219485872255891759199291413074421137065198369231015372922578363088963527965326516277544012035156608929549935673580846648027987468249783306981854948081793192688207154006363243887189876057187764367225816165198196683853716817281788963923802253316960775652324009600464799620970504696161811344309930482087506555978432838481946193821661731588423664199408106926496442471264895480461038270731320079474691123992533507227734927107824686410619358640931866006853042544712252370992174123076385172730656321403743248114921012204556477062396412012761596794648281334701344379732554523497190111872210020309648332430072380840274787670023550612390244305950406796571550341587548630056190835700030653416374349026031117317286726979596369240801949377366843859698758030248005487398776866485547974160177988267111837247262577073997366104602596984653558653435871525187539789216034378954243028929763798874581956245056422194013429592389091727036733203077292204633250321837436406088796472280399286797366029843986347615044079749992938171774953347303901388972638600862819321323815824917597599306006751974325634072398534041492749354067603048030678647655240562773545875736862975920074191679741447014980460635360611378429641354698725374289526084929357120591800798480733473247327146195527928140272135236723366856402613476998545022446725960837783021656844963673623092938364943229032862083742902378429312742811929426196173277150718596620254068271273308526762443395089480935678453540018530212778291037960553728056737394609450976639462952803858312049290072669864051697924356664583937780231693789217876478217626879757186326076330104646342878668972477623371337838886199134426555289739243029360769991739813159632087322564090216290482347329648113149958020803951630909151853287481821978832542253717434512863594793345887177376417253770548472654765694605174504130823587825879777212663886890193064819258772763721497840550744951692066683454695340578203059612345609273632363034377386155250632011665948671374488109712916563512535012896244938764860448565298645638422079844208131794452112512311206464339500315241264533862193855456246154408409224291567450596741505946723741557942728140815874482204693239465430688698712832341422698021958238114222598837463459449976592475914729574210204113444967013838743060516220209030091303011777383101019482502160169255287760621243251300761768179319436576525824915968080276050689580320070756398292378057025346076999403490248075375569514680444201512907398082346050948495018715139998025964512264425351820313112598201522635586265442471026636015780281424870449108354740656120202836823643335590132013167555290189225680504552586758706452013457386783879649150434757872221187199318624048339900622678770258836554218307873393888280127436075051431452331374341002562933035608284502898827349501918097375229962095503156674902349631090175336154315480346223492225126368858205286577870411527118876496773002310076328451007323173701185972972573662237824775569714485326337629072919538006266894877087008490760483150027354728665593833624451644130218061352209783835109889714708528437091668747384621950704756382215080918634756128226361739568447072658651233045752105078362034073670597639721797156534031780291543194404278032336623819392068555839249544874249742913995109633641445249707995301729227957780664718706470318462515400911069427063871505889805501047010474245428014857021610957657678877371209805853052783792586924972559612726913659411816138307133650065533817578502439077670704053650508544849003540807432882681447923811581940265842326112509509402981242060117904679361981265045230299976465610146149852408575282049858626347274042587900070260574082604913013359100048268471537102516641724210835688551229059686828815660444826616621329681848866088295411492331055436884020145033136347011448471162936607085697537336544195286171079044341898529657318080135087908276787862502494587667978872583207811138201654414441375672822803547372295931057182811217963723662522645943662066990417080980657479967538740449572034383819138090870869228913801831288041867023288197293704957850829393176790901145940989098643720376655984525122639989070729989756132116610529043358034788900478987545552644412965085084731779666918877471766130423560744082270688940460704102537841509803504119960055981367843347167201343818067011453145681821684484388935899480040780810034768803963027189978046523315133223510715653631893334011140077480695269840914388001919234598583184124067802436093846751500690481593974787181083408664872180732582891043502561701018139089039066405244197288170655215295920198836428079245378090163155497003003086617797486270229597772144942388847824802196991674288923861114825828228965608703289627881062287449360008154882599874915153927389537107096264585350896007627741587306784393362123001432559619823241859448323681961305721806604078114051265043079173722094664572190542127326711740479548260384821667725991149810771044035388410030061974009988849931653645179420454421804730099324554867233690795525003025581662462836148728331205708785032824363205219112195874650840234889272234899588362455150174452770042470364459170967933637386055588465924594063927053676286046139294268417087955466741522164524026778822294217539673235136793492224185309141094661533840225370859809627586564977905749540714859130025978242957083845770649435496756009465893094835014481811433757261440037224962992941958149712701851226725047999036218820944545389828644000854653697474763389800983053290679085036921477618561253850592689833665523617928518567117353313033777225147414720066020017014686814359855539066143629325264023555681851603249193376264809388649589479515046437602915378221827992700377318592458703356478348988612629932096274222527276817929441640059753897468310563838029382152011031489971167099787298725043101355603841003767203023657036587731383703162000695304949332434410212363025828072302524306864771602682323162577478411392115474836224245128304224626791285641273262055365571386548315460503388100845728315586319021418159664868638132311540404161994385094561318538049336264466732581407164022952651183610233593344623297038733514673203449416297009117438410121548654885517442795432538525603107196056758231837584951751586479908666122272106893749209473746090209397292095336853553906193786424269803170911159471446569812059848515112019150371666595608402217097434763400360711034102656090559991845210251897095037480440133006639575603003908990187244278136469837598390541893088009724268375349662126796929892609377494596137597799597751438645912202277686397519182222841489251658799595974860226092904448535330925033679954479160748510956651879952045748543405456277429626817498166930538340819291976386479019128458720920616490603173246119140821815842345821681191173481396958772862978212803741315505431275745532325863868495045593400175642088786083117051551484924741249867787450374423755263131291901681183799179137499083707747259953282388926894278640326350895147570880404026945782747903429260437741060420748502569220812056499463571913926786578008718225649915055494678646309827420219297468908486343912491751518358538982856604953717424274468656760505665164969234396435701090605994247506014056627192972873671192639496156493034018531576035524785756714760981911425695411177835599209451269182551264674677253042073161816047133990968911229883985639443726730830657900856113015450614898820887973362540892445595825051969369802811069118194703247221402119381141028993173909459555743265853482133546993990615201785838021459177328598972175475440515408454357760092035864494170762175208153381414305567698389041718359862643911440341951745242192628653871061193958978680443420126685785732332729793217516250683668481177359484786649101601442053891263581546408512826221391641987687874314280096453202525782494387480508918224530693028842945725428704640541719777954005944997626127014844235827077030252433882126236850732592527120416128878484969264991833061286114761170862240763488778059549347486733271379507730941128164508442906913227930981113515181283379570799158894021829962760382100603416565704086727424725231659568663347319447954196368077095683598746954570624374747727120996781647264237799711533984866095067349730522841907790419661620229855298571360157663161258385853269739396080277862766907183317184898928551931355360813483874871274622360822446326510371758375917457700873236903390110388636223113877674357245693995959868115998565988036951940466159936959462390630897683711673781717801144794619846553766128921956352667332199194968384141715561431871371475830387254208707421989166003624548393435571168689941227008543044587149474469451590373661069785789781381963919272058908674900236392926196793366638704728496948320093961008339164155514153215594046887555093757526937065884708373838615230234041815082759224399567760307425611732138144588592933037160678265285840260836695027163476196816701836467921037007812105540679301163860833044307166970179386575697457410687383639130857565204472021720383339819241642796929822548887181421104896153097247333753460094106828860169068662664666972563448874443893873397551329201605224558244495188847749719501135188420241979376789192836255089519431719953713232560857975346514359586019995670062146747095987878243839979339300201776298408317597287206374540347907011281004357142481327194568139524268728544040170033376055712395438678898989786317891402522288160036811096033546336326222777538025282539932966687574311659097635175592480669549619738437957735890226944233014470584413881563904126456269770882955974636019209847585846273411378440989659181018235916032143855508222119042531894944292350285747353073768856443138689940434229341125500482699379189876822284377497605659543270567721176613173796947221651888678699508963555389712175223983576498687067121072118027344715949971846468301733959187971845765525990079242004232976938543298520302840016305556300519011798407677424647362198814787555921938600919525642068992669284929446033776590254261772672793840950282534964746842637658718393761464511359220978704019158341451513949604708133333587930951256872980653909549583341154746391876789794992060332441012818412052410469621886902912878163095289545611244766491200872073441817665188483958938870554527149103205746906829009155449253852939000211422246871709780315322300140066762932904391670633538799197540237360683805644095434285157636494405717341382736629711049582447701641557943964239241553342221582685583982667603004022893436536070409610240165888982678024883272499860710533772735330794682889040021609462500960224793957714264315206858126606572579665437830638696220527883724602360354844950119797411631218663707778666607342547218772100475324137931964726668091799362425925749656403430522131775487125139873933489157991536309617943534076107535438492614887324775810049195414272831055289226054370956811045656526763014157010698636098525937514167895049523110624915275446708824811109050283079330870284721001198221156572250824767337118290135397697532107429451960279705709881447884841059822776302221809483164333031364127638886621689503883595786022593552411430461417637839371951874190319634913443885504970496244745230211911642583370114191482092544803816928707344932857046556071694789003968373331474737564642088995662466620019468090521394423350821787277525508093667343834755838495348921715759610777978601734005229590829774071142239665298438498324967341460708494237178867063580824926453505348717332395626906721194360648888812133232127849165970844946126360110253074310926782583953942129517448489751609601975866496032873398339216435072150428430466600998753535102108326687036374014915186839421617131839036505079096067392948780845324514651643154238574391632462703836975691698571966584181828765200757393073198385502504336042731308812927333614678053257408051965105899956566846506985783703126680628956070731371858495444746048807357020831938423203642052903282605656798804630050490290576937913725258843319284201115978841657633186416296195248296057280781611530992263716400450298976171582948451846220695158846910296613601526334471372476052284693411929559338780313049308709011837098321347419753151550241680343841959318098027964239682086871158537356339978967710471310256858334160736121453777633954291205138147071416933692815023429452143590408059713057302451040318152133715183986899818230398574105951044566711748516252325413310587730354027889442599124741577783201708607900768603959719791205491745037113284977988171396235993132330553645370025623213073516396631222227929725569161439020153455535105246972979681323492279306044402866996351053377033861602906721464139775165514147685872260005348971388049800704363314890050104928347130835542921615869671284150099957935059481644848819001364524743716759037559996130753520110756348581535540677942968217966979120616821023101522043973908113378967440742912685839602699993260008448953529358307277326482531160773595634844175801511544030293617693398254988329397981809136186947654602072898037646573285317552578814535665274068761817003134391576914614349632745158387555439151273970428999293820457144264917891309443566872123301847810236954461913484739643506985637335827934248901401401845202314792161854133966606161632509656757038290070810887276710674412776863573611249665370686663909673470683418950448949192327337961942053147675876842784305557214870983102793979230209505518210071683108243050639731129954781421963797268240810814850004870191166027327877588821568354420653411388635555596494823579972564136332208279956235371735631748915817596399435043794242575553785955013340106166901892818847156328192714062375968318346259191117167568470737600417127368840768710857953064251346958055857937111709229119654541435288604727149641398231344100129019296193774397215101879904454753769653692685037329417297888351640005131926992472395261031614127911781405790354323324756509010226270661354539732992181223432150837252864359781189228451109560671011060420579953649174674051420237910088425637319038430082293718582319252620198759674978061076967087161353882916623167821319252104932838478243687301217619996078581764007656853518305803802540719723162975486277222146490697803744793292817277576487905458059071922217485306571502830573604203637595066286506742363885971023519575675302495636243834703886675616198321112907198874471980122611633751800146003269649838860113371581552679246313893098212774167203728911036108720952820268742247463785956077218578371253295965078333139809130618820584445058244767159067626312602558119516433870402925236162251300119347503278572720937556150832850085516006904114470830077709128531812202589843742100549875572569972195122195857586341062972025269348813038442311134486223845826464062926257248387587917951074049908975981118238564198461084014314299608258582744556534229683752649766496564369291156065092215981091106105451326090513727106202409498406061975259579275098220749219705249678640134452846344543527080889259226512505276150049408282531950867295699540790045688782841698148790514709764793135431312733200593508805007467609805226619942005435179341868379484212523282941240321432211847487780882011906044812269562050963034380705425733765198571224247088011428062314237767040545519313256471515721818072827483179562085802126819819401985422586632252452830779014342900697415282346581637152480237416812611077766304628635093690153977916789049019017462663791018191482065162402040968423659493260827423017912279467287629791867168489735207610800681947080728116116321197191544885467810338857313161993927463228426315317580389102532034741009696284291796215487212541052543751860314957621952336107117262294774924951495462174830931133210799577295877602675199922877793350814010662574567791434817572337232694344514132160792048674304443999726350745928842923834767860963129222449428209106771917330490807838784838689431923635341964230473076228622643277914915571349031531212189841876281697739355423900733603697271050389673258979857402435264629328671142248800127147156074859277810212951549255084620489423336347630781882278897096190488813978797103532574816217492828251357101899563756588255650991021729529960820390514343965838770585820184196117525069629732326645795719339608898057693578874112444132411902676428135737590918707486542706635887530350017218326596305537341594374825861205924543799331850012436266712612428651855123215513613714973855047489551397029154786683224309342512284573587440134765425488047670426274143526980705297955578218919089399057032970132481783218543815736505688943924661888328986495653162250351736749009360515632351368355891619113699005827117795839896177774767013008625648595337006941874174148553362203718979800102880645150941342656451384601545487063466721110423121637974445047348971409220540934623365852139520761048220412179611495258412260832629971153824973396954813610877241419017179487941743193521371865026337157850281680598049178831590568585700060207034394181458175884427109397446900962286555194872534071247619860047440589066680470654910586469989683258137386053387742614464555611611073711849280897811978206323209470878344276896080257341436209456491464395232288472955485069073526672811785050619448946762788742203682816356761705200984642565447128653266579267635245280689139537969614754396747416151711369884499762397507430544507284773649845109545300832372571478980400865268013559951807665259405292429734873143364178191673782671553162046856182747252862063835083341510683069530807383762295884907420407842594915544616776154345280104870817077604946305349426642995490972541223328661604393093003362966715658215910623944528122073674303618309499919389367766314285510800995311863679470674347069795921828364107592913756610323110205697125056576929803927124126154807944670065433381397219160803752034124138772561488492004246167315615379481639709812178268857297619800320133879548271532699878625179433049997272503352979774416971494696070480772500792791544808358628932103372268697543785596226753591605840691576934828752173934592712603129131493164254091071537235322389036333669737156312942390203344860093311468114234509038623406120280854264560723217098502465481852552838567316568257733927377888214948898170711751958712761281081515650622925355951105193754047337306842780095063706993400677637343341229065986974662770115129623095514660208305497240011881118585233469331723303766249478516332951067793833024621581726291803274039442855649455818658136486454378909058552090340041378055478358746006522657424748828925389696823947587626753916345892427096728041452845698261268435697764407302639508114799802434341932223802666409692021481896931193661072039300592833014428328105354493026934209145914614840388986929480860008907081092219902598472805825175467959907680110976724851584724330125334599357664613229713261204577506177193090785640176461244313661364445769368209419633374057443948626177073755389822520653502374825950009060690184901886169767586313624709473947639713165131392950943996525300170403736980570264098390296682322076547790370052484973650015835334049418103141245219659161480959748606920352612503268879419811838796528404721461670215511676971115746371232213160150084771735896100889537738725529358600663091626205427649676925468108041030915554041078695368666176945534954387922780324377396085023422970097977020889013854165045462552544648456233314522369348937007744435556490548839357838649294202969502400275616460033651834417391902370674790730581568774971707501035789327851580417098913905294551893590675690309569365468043205265238171968111404072968509791804332438208816906718567969862901210545508219555769872283280433051189862438960433569108632245364852487860961514656263171274192614560615637112533422968015504305126731094475427613430363137663129291276660654745259568718462575722958642102353820731679532980874345686173947076487245207227650272669831281528639121135610681066340005398649536003053994085653847168903621912562136259507307926258106915069532963591908138426938709647740457502866827490905454450419209224532323641695922101480225012860722907004452990019251319165041041657552837578737252695911342108630162191132134147797047063774847349994206529546691626800359468373378071814624004861194597940448264117094194329634461756289034090563254864750335050358531482192153683489232667256719466576175663682480736656707079402235724108565487940027142268544828039798504501064161547038243769082502781659434161282990857222133415838648943066361241872752853695466271893009661348476079356304466979440741383621343427798432572454670967764023533384920394383406090920959238769948070306243180257010568829235833035695658878235218821452430137432908168459218844455389383566041259484394877121759899418181651035833697069223182207437888687849633484885436664171179000240877877461584033907579013613861379489170357315452615456704068701870457443855931910869171067652878784531988694392150813423287969505840539734378641346550293403886985177541976919516536127106690448454061297213696463133314170062459597055192894933497138105142397949846857847851968046227025938169981786845685420314322943751770185106397458091941930761001163769737633396455087901527274007313986750085230284868270774088340716915471318745137722240230299387380613527191736520289260072719493092856990930772966324959536861660494292907947673721264079555547294079645581563471919826698380678067828136673478168467830189157387839285747369660645740281164299717504232903817763668547762250988419349610058022170102279180571977544249850863975500761947598153046990137561895864586731865200995783658655339760885791800905125691237382101887781600781434724806801775876608226860184342820116019118676304489307496714578976478898793496150309617596723217855163371852079125247181129393569907568385031671114767733893189359036392176274537052267526427659717761789485737424236049128942863700993744327543877081149130659094907709623804111522719396610357031705726378687278555532765380575069437560278295047718544893524469237151599720361589844541965850505940081153599191142970065727456495078448799328823947960099871934266858426546383128927478942453986301476047752643229185937947361571684465817463671217242528732246533902758475557630155519774775901451776997657687478540979810807586858991814856361268394068380538499369522587023750241465175113096687559876109656376268153696158340705992647223336819278688197108846560231363326102977118142288016684979061115239777311269556874480590507140938398559028732778835369755395897828670096521701694296002057056574191571229047322903617573863999567429823525466704814483575353256159448667152436570778999779886114456033823036355052907925505230019463307545986380236999673715978046262007920868391625530122354955237001835591090424928510614216408492392677280835797161273196075379585154949338648661695281870660382210228556837176506683736801467297930290823021496574501883554198679239220697444188227509473446336261463367213792797541744926309910395948631605934513952549422127200581493335760188402884502332642934688615753051589656298803592066576487121630373137845685748684338487534419134818182338206084738456539689028023319206975401780017783561103198589697934043790108458217913579849984320606106899603463959614216633017289209478674025246754289123382818435672289133279310424604472200543253992488031393041993411943522639054190997538486447991578220078839757907681800131817564042133171404732368776643285417744967140704796037985936766297366819174413115708264764530263606405371107005546436008006681616499197038633336325847474079663878306602952947429711599590734290518057348497884711911302377816960494180579528739971195683065305097846192299931885957657214474785081301023017689975785775390839450384044691213592583915929573812623910828482734226404478455228761365793907863586101497599729645309783149455105264435479757731250707597735784544249388293247008720324416147284445875045378682546775415794155102618920716706920185648011320331587525733939418016013095529236727938673688680196506145117065303278009587005971577764536692879485677272579633792005088734076918062718617056182566329233117676817206291386484839105394762457594890587129106017682592475675313736345657040025579671618089902534233170018182329465106772879537552817892155985981229360757733018028587049821165980577243220403489572564618051687207384006480948744607319085574085795671771964632815202592871164449661645397942039360960833757965255446896530740003642130380718945155237964675520461200882842649584883568341382151307041144783138615189041961402681033857164799066099778775352818119594054074128525734405716916965006629053713413912700323055994159634098804485672131415333564912919353330656191913633716221465705825178639732668654936198637987975215287771876457508331470264186090310686888880332352819346543202341005697663328135339991421755454963678105456087712872299474932431222624829981605533615178121025351729962117628792706758363958845778433212579265130773113678587259710290491363237666158780413964170418970826144665607787791853357318932448625780668995226013771453345806069046500724354676585083441294837998653799474568662304965857671791458777478128771221606072071270710569453327906469539623193546462876536766406453063568030243912203986317100212250999191602815787691778378167306212034356392730738514561309060843418009631618204200744301546430710437748194168144287352103296430789976307295995185182784052729179350533033992356351752503442781989332829047088042314104334833160944631082414155971703459423811508122821123600197728267532449347216633946599395786467284277092627712344691717810606434309222458508069523128762236702722787399843078057098086207380404998661118690327896576566939375303034847660853581730846702515652943763743445208564303103213966858114603794585037792261508193354245716477943762431789350088439503393522987623657189486719461091101756621297579346916003121202995446118538379862412529749091386812483429934243771764723172500177789746730955214511579017798003054496700183980823832330556894620088570479109515865695809108677343511840671605459273156581758735000679800444892676278638068060967722208597529956390338414295552699294097404554390520566075155705729836295393006688670269725413734824438680161990277297460868194096640177323264925868049725051974575715702288005151274384488653315086654011175613818287243597748841431264521893744123351664892868498881041071340632157813728172754454687862391379503545037901592817640509378102564643551166332974767109401233861906102053124171554619546836520445635019248823393519349323208053147053235790777247147149062715504038197064765374489475256170329176819015824880662002218616707067427867532742430849184764481265243587553863499253401697859741800247670206533444443179168581639005235160537640583336607511876119661496192759839490015447166830388315538096493632015104293618991229822540204164088833701098278262024442292266210754550637202403760840344676849443051671575004027806450939322481413459253145998983152159057937348607102922480227846108345655684657970185138270977865085351331216504803263787198225057011848498513121178784463832121297472419290271581021662933652348431452317589650105125175719121279495425468322182331926530808292623778948501437793163960426765166862283866486052270163609232986160671991841302764503388074242130563074290031096793657374219075204759091040046206439161043789700034333697873972923993709935425506956932456822155684419550099866086936438303916061750639819704958387560919122320096495262855420470857269556517630929015222171462362064838864324514973700490018157926978644014281601312849735671523173976367583024494663786813673401582274736327779382717815308945502662021552092324169134363147841756717559313612186983108499089427083722089981720070319860557716635981405395845846312149876366273155582285938056649915668579267706293186972086955035462925959646108299837978719750429794698327804837653318113686134614496204766387025741036834074252979265547458558573620727982676787189905189010758872513904382068041072699125403954901684126530044585375123883835600967472421652791857526364466394223245821307914780687955881398236490187972064431053630427522176401780073990323883628608581070784740779897631441406263968125474402024452514638901026416134795495308830155623550805321830654965239542396966836534941554185669309972899443436813388084259421182162349555805282278110162744462189387236989566705518033403460743465230163580789742944756129712151971072626552282688913074574992878243115568185580065922099444073234651534630056034930415757540657240215412691921745071521295952700548122339771058587803227309382045807017363238004226217900898161520119660106419610656464094134791342629551950529502732581482383429552903695476014757327562043128833431101344705276607973944881126702531126812617202599453890629813501934104399803020525841776218341638651407240850165579699623727730962194827908750838099539407469200675185665423047293132980872010738855467668975416096317500574233943372248567214243266023286401152658714333231922475417193858312230647255165115138471227600411120941880582730450796803621355759253619708413398466394219572877783050791257493410276774253781967946681697111459668253096985423274023444648425359275264424644542742822673019618055748341789528824763753127522219998811452203868025497523258867597945903282788346684559514996111573879572075147522847427599382689513967164439059529935794106307110782134985706334709023435826719821811083525929671478621444372078041328568824849783887091108625298617306211643859993730993063515212979343463236716620083121721777827845792325930385439362648970099096767345774773549107074164933785898826146724960894468354418391103575847134387416671360693358028180114697997343583052149866370786943845481974045389170635031609517669910892435989477386713171995566579848400254142730961154710096541672297145204191433872550121741676897355771015639619505367536044911229999739699175724101006418678240409669131914238120960474016631227987203137257173156561345966496972859501708775663475162716606515480987690754252042963018665217765867416875563346857542840011386367500115914301483956907303237075486562453808082238990370480677045405660414065324397797418628084499286272322817169618798553360810849605412898219370395840820064210412478310556014541835246370403768202806568203314729429726157381803191928341576301790784727687662307216770739647853149017479186487267365526096288367179910675958423790866578652524854573105646665540957132223141041855567920928324158671460157282260500321636008613513592622562861196317873299195727588748270684336318899085517889384290729018328039493520805584833148137784722386480366809776092190332649125021709288137468250268381324071652824822626384243666462755276029509199110302096581457876370608658631736262315429867290798874773486832136358413383315800856738268854854696228515418383709103228951680756230126954877687435155800250622133707091008218452618487818756420974441195378535443088991427342636491289653987123249560043357625435611205213785979659955545225159863371147520753069504896613589124392996343744228554217906721528240547183265914618003054958270746021303456437757851840651186752801442651287602235030571383744577739888312008350153402385848980111589358820300129216096080636635797425237274191872087024725830130628125566777395546657093440781236592435720176149891335901302626055306407673565384437089147167690984971147697578292526557427730057949537786541451776292258910078702921100859026095858141066769396594838395328413383642949295385244332549030531185038870592940675223413353170912195187057498400302972665821642238409195962502011964035790058438995037104727454847767168362370854118739063582624259902388566205341592552968229010716261182667355992383417207462531238096822380891566932731680627078750005883970679440073940646979930759342223745111411332330690144170646097414384391598589533926741328451047408285489770867071152296360713898715120227619837866836084174222885744672094898747585486244901858234850514856906963851425797365613228862295194412712040853191067512797189823497602740650079671626327265933996692420853285877740664090248260024356764036648118741469765797914797353549816673994264385773182873269810354485203414693207371836911690384901479309557289815786835378403294867119727012250203671240220463526381771933511346860474026893786851844820640915460367334647621853586932876322329370878567116098893960194146314999099128282428656878129840147142377429625523216650830669064574724607579200615800297532078587935277920101798389276757886434936527433715525961932840378382712874951143599702912046192452550274449169393995264462198765287549264339397404739313569616330823048856664541750008403104985738222584032245932094740671356949300692336249723992871459984387111311935800259376381053519546381564568881828173432615176090138566074221041162902200970910326184934498755626539672866871466184995552639577646101246426730938131906518059607806373645850562017484386527405154302946759569706982607151178786388411239419860759288492878479060517976531265646617236941267997529870375539908580498496550868677066940639060414786049487995056926054627515047235002481077689798395047195150204687320235516653453444327675833668128137335350406856122681324688358419226242579517237892205354778750334570005359195044161960587111597112094270292424132528155055362276136360207253184312971528724531921329080044442373765058589797778942649826839222473976802210874984104307855081733383906068020871687046505463120440003313256091060295835326459526592495057114399021415107587017303799243613400244865062208585916489785942520935005155049560036924729251990575060857791141184491363714831319209493453991202028181255665445798063975661313538383839619458709046005213629526459990170046705166366861554474762833633272215401515540714674330361881474534681279393007324153876338160390654863633278309358836012741876411519857853189134369933205956930902077342876068066295819553804839464280328198406532277440547586658916646258949632302793979788620441852587951292378303993007312752334290918413951827508738204582550044701143210731144598591524923097237170667178932616582594528514888417006498142809444162832263630264263071541111770477923675795127574766328513348030552505226095963459939455194215057682253812980503453074788875804326106439732398446906710466949545923084642778299256687340672251596400649272398247757539611733489146478150690476051288594951465454368405159614769246942467060741038128949135402765473056956779520250878158555469627298669227693045995665174086651910506218348289959377974965788145750202744189368662791720561714419868087038939227192273366903498071210714798422851287216512609328109614501706971574770842668163177068028433323618022314247752410036662211231033307314601722888662441143116552766237658378557842920380288440335806812030417430551355464601720211519688521078913996660432990219839689411621208276997707447660384912857273615758086603746295148582436546894112239525043228650452384253481319730062263193869861882916747307470006618009365784884470081172250980813229634620116350086619881956894115122265978747151770494555637925714765960103147500194880633024337409539729930971573440845799287222418668256429723423449020704347692771752486618723043580651315619098786467254466623719040143403115167611191212056435481145017534851094039498042016081320519381489468140997479921207482941726632681431332088971230297031024656060813382839504884122413393258665768429818380354970209839352837043628399929764928350024710896137474977933159477050498743862874588389014513826547311326003313512827009413930969235190527331004128750964547502321220782512173879801585526394015488314905824896516634684648625071919078126867840553162956132796833562210837541551650207410259248797125220599406238356239832400464867404651773779736822457583161126750051742968794489774017001299853788041935669825028505812671325525283587962661187688692644499739856538192396400298943631871247953939601920173902014220245476479996118209659794169868932053150106841778517146975424027854640889059969266401018893592853739036925818482186217023880870449918123793615538199265084144059809492050085603520091567150239718551850070636667773554259304250092193905899672933678929523576639365148345117284956331216354324802734925615939164201521434499580701286923435072751483394459680262162494582105441522726519908078970913210077916101856771914784274274764412966045625034886918691785604533433875529444127948120684929882445243529990177434528220323528040761720362649576302195536430453864849974934623634318431484785035087589392520558240963388672729679988764576677573404946924997905556128982045268376752412058878708328145159930340633286140745683808009304580750758141855750177013951682280270102044449099657799033204552658094574507445144682584699950925323936247737498904955380723343672570975649459236266994973849355785851217413169754541383499783366982703554631054505268821712670803788715895203358631655055663015153997723162274596758947754880761324058895568379649472920892542993003274805595146954289745476642744779640598733002890812318199363384203999512489468201134359379309800040426388639108500326129382693553833766063866963981975251953398479911319545183090211337303044850154186012120377139581800522762306237097180372102246834020784480356774441562649068075320475094918130625938573661777799341023418374093136226058634683103534924285870094208110393681356933539922915235644952458328620548122267364640207011755985251632252003731236656535433187549832497778237881706712069636275961328511785523227328883999444576658187010646840451254337885857824079872639134858528950023321954688423974423414013108715475348764368775662942440859499844341633828686236227300372772868980652239331048034473773691876533611632140665146035731123157207114335812990868658209638822587586448330467803477222248902899086600691695864376033277543879375395583091954644575120663244278924493889603262381762443844117458980068946092422467954746795085056086249520260530836266525468918678221564489498705227836251025962315290518571273505714157984831790968328250336950714547254181592271116631140637295117946096924849011423044910232380099644605534454559662621122908111200197905847578668809739836298178479414101630471175806909498068849342368704217184360162754300297024664803554188859931790445781472491050134511206536614823066566007335543086646307900280167262959121986988746248389304326751777117743452125441765036929850916482433555320227158564877721162949281552106731025409940854692955833187772630256062880946145024788435819931432599080452326075433509330412197081922762093387272524526594298502835135663287818788016821672366566530467607878076149538658249028758731762337996349824057598144214583127581563234511501779513402588920910162162940449226661154343138491356420408409106146636457038662190943900517326615113602193404430890155796797466112178693717196632758592535733223118879268939973673182688420476644298336193425583713105859125894970362544429378975230424782479955990045983706260032975214331361748935815395823003590695863230350110092324214379944895536679439480310778673775758119752439943888108579093549304179629069639351816388201445216952918422091772317704449625046309117551224606376143508134853743924177051905634797282296556823457486717564388559121958010177022200801770564600822641172903592085888943885740581265984245575966562043734614718666892474474688027360440169671601300912657844125424902741945741150378975503430245372672393429993023619555049433343673645678304441629756004354801280335835410054408038714571401774157416971194545456661027702409195581262173413781659700572292723659460856998946346648612070456605471451083514782804570952621942195461763886830205673303257437546945281223955158018090124892014601010319871203890734318574011774738836085344165117013055704417215351934619369893398831344102191436399602334517504029347743752001594158008199820734445742446880674062331507173491867881800836620267084618578298296548314292324189231242540985253590525495342468293333861290090832864342732690102382587520892939652098498390265858351551477989727702022610098698745332244224221413737385060074008519737264913895804099923710159016942765370597710248298103845208657363269672427102547021145431465712806737734911285732792317014491900537704158686911563186914079332262647089755168062196545716211426550918075318831753314846239630757298925823106261351761387229845318848597297848049355814207894524612332656830504818982989206908318501859721473228321824338826117906815832637547182714831334898110409177366846159479896252949726929813383861364025687078902570703754120953669937203235085048674261492100737335229873460281942174495967294438985567089148377987881008930608318285835831689165878779850383680368239606694342090270997174828308390972102678883183757678167765506124808426197684759541274518585486035597702595286136373349169287643402111926708655677642179359861776966923045494262117498633798610165631453065765957601003084818383328464751566585287959192830574630795889813505406715433269050754573310452304857151112804296020341825998882932216984948912726940591506626724196842762721772750709886674746319132842566121676143077929266280579680069537992116568011117069044552366302846664415180000999415778675761478601284704763222508915306897090445026497825556279643549352834080417962497027289682775579669163429037981866564907952212435112276056771419179970066103071956354407092850015646568586126360023425300203071013692265510314968478557598699580966569144987048221422961564821813193375981977139573083809088594313348819758899192762377058591202908358804810220085206788442316636886678852314764550900171307243071813736887645526965067362759580631089059471242152511370999896350527734171125914497316808811378198204071187481068547245410185695690799509809956728606981528686829144309886652884721935974769696808830467691555971239999982717638780556221951614336232575468292409201230551588039244830069238566555746487475275715540902439811579843984925746052104703384552790251398842366925192988228813744028721960519061450000445653740576180138455336720777238073701927220714944149461861915217517953203078499602999419620208691449819281423025714084300173290815683161388604315301011119404845198816539352691161338469637220227859891048346213025348579966916221529548462418630468843783325971041308216490313588115470709079115070030261267050993855773440554902930676491902999147538043344233981447794310948158605507404157152839373921413924343286742613422546800610959404043878677211101480038000172807938120997664306769748629271209952256564515171468660702530575183572456599494537545461091035989790476019937791136828928522309912179781779167932959362248581258383856849466682982194784378347827329716398496118143492629635548510123068930603770081530271711058352676873739362503604555501403832436598104902285215083299913344102121496353045812476374363268349569495205383958166382645362066433268273389596635126387450910344618006786698440173079980340565715989970542076983694019950270328544999318998508791685646435837061761081984786906805528213059714548078978854498911432354452402775821677768459542353517665447636273034112113210471494353576511705354206014875751728057031614241471632758561000902700137584167282504175377262906656128972862507161007690928140361892531765452045077528010947762191480439046934569264925786017504673318968380080380702808426913736843157984405604927435964654133045792216507246065066225136648948477948580902184410155890664594384823236278687640302735143222315588489391534632909835352484901440943828187111995108500738187522368154644455928081305529361492258332882175833480009565014829600317657225416737796983706043001885206612251164208444959353212127437622438902964687395384565408802738305848047291866442326063769405018663689799758432583283709822493975632866386527749752065252453590153820935145448497866138918066566176160574125315938029522108363588998964134064925087398373220704357807743439519642110096888867866080192309832033557896340368064931297096208782494724516190904877733521001955318134339063796358753824457670214164712943234292630627857411041271407470225076997036163149828337039923589373687353558869166580852271931009988462712794705736122341581473707009363935947509170590254844697075510992137122982100528404922983717034632410159746065314081653534055866111206650973580161260118680198539135130027611028256997176951544229902663897882112424895637678142577437505855862381161749246376575230100576940812295420467549534526187348945555881456934814182767267223600983091888666286559345950906685498610077351437834554929290822355348551498582903026088299654676560102596459266289196381239448769955449912922172105855897694609037958717638391651436025313076955516620848543604077186421094969986574526479151698766955623635474674597062025134821617688699763678479486495032577654850905835228212423520846050496481004180826494520289656684931411613042255652003599559186816668788103491705047967653852494843051067250098191298909525465875498437956355110091735859555967967442965853457989057451246284359792972943346499902827353204625904731599283892700125202372567528559251666469336275828729487434506490235557937008109500456169016607101427165108808164085270593001574694577365395016428927818326409531090477260594761843700041321682963553750522209585079391164306227793108176701972784181650107898133124771029907116429495424775130543979190182581995427623755274330783526930381154452404126355931266570798763259363635760642992121835193044641295963230917032137121906581876515244815846104875307455959309085031393648934419564062620408684715292646191159536780766417131941085047018964491795128508322616795684544110011947574004475932383999004642231650389970319999795105332764198027811138411690579146364018113968694392518519765194630856438004643603038023233335923808852215747575395970102238725884066089673499736494541466826357115703269488130365091504315662655647229137060907183348427121946704426293978702786241394593896180223005074346031157642866836603162740253900561186515885856812345613359946050412823703565371813809935375978700205098146355480105873492115249384171388902631636813166183242570872034464367584675936005648067795862399320598149455483415510790109565572015488048584157843985503523246194055723898299838886973786491494563163532244127989643271950900339903031733176707995754392819018983309201529839407910060406623337179759215672371692593504663755717093533053336861584622616921070196599891280625309035138164900678544383936386464088924183292040590809205913308336589777172183260314925210483715155927994869737918748781823029667725588975214027677898664351233007535515465807107456708250889635685742992668660131108079803871340860169457107090938912282689213321044962225331868675573496043574670006328678647246884620482019167808727614139601748267559440162316508171670639225810531838838012523790563659067311785309704743880770131248865396035690986510306026610221352898444701714344097489307728169496934173069007205527289546885191831269247596151203409364431705698331202868122000977091406581486247877657886065794198064934301993322611965648662233190508778299096383682870780235784727030739536255967833158808821399472551224638450763170906065581992835688548880095724385301329778677489843684084453606041064776108942393743282410338160772261668355937236401753734792864124005274000691341701067785428926011393231752606980575412349804145854760404062706905766394609885740423482125055813095876161273822428856353891116978904794140549339088458595776329261168328496319714985115002551238493199663829139258294338623758470147190320144003792836060332610715654854815556280781977750244336463278392019868981979019720498301560853955656869924190074809084298896699161367106489340587979190005680034631125607940973078560031328747056800889038709474793629659206018908647510005531136960302862369686298092580907585850256718026607484890242622917872774840139020875631548636790214874019547045295214601082760702714453238280222017543118841488115720326293472268958329341982292214588952901470954567024972668251877100339365361464728612627593168871665945669464213676696123490192026199317725183646776128667833910543252274831706889392878310728298277788534627755647054711921109646087038046257665655531214204264626362428208084224006695197027461962630832364261275567704335558582313594241895948102282471662646092303045436409712554024181788074589843270760531319437647858557982282504958024214652576707878097654296760269655363307082327004041625817259870724088937075772100773648484390695432764661792006985120907303337091194874924144536318946406956268162695194971377149610360265147382635624180551175083674230576008945830097415040757645069532609493331480400247623495903257294516679925651587055738633401562893160037221975074603478109266022640916111489535698444052309625174231510182171660353054785396196465720144711959379385102049595728921733766262607043274501947603025800998522616884265929073253514838148474496371242048352013535084254041998660838332686795396867496737233989423722115799974573215184903903540635614213582061910201627111847141284594044546874721842406326978900250096312096567258111630558372387590116924689459909105797831964911479461452665876346748129402641217524383737416400932480332133142413987941201356738015574808629857095529284049924060123544348471947170642285760960722928852471018287930895376078767828476310586603465061813847709302537102321299435341018428396881592430856827016227935341914154569887789532094636597079853008420649959032213638140056798769782439664305738493648285096006557238400150773962934104204803058870259954639349884929305498171114876737855567941592885123304886988205492434122259142704008994121501779991982593869782542461891877553182705712837481614963387314561188734748741126098601879515116339011284822502473150488507628128878216760167026935274403484565273755997865906375457825742320904673222355739325133000555103389150326435101510783810401306674337624854026723978958504172575098607525756220929829352205705660588074316496167993064024333413098031854744727096377388094568846148562002691480227056076285797709206932272796304086138488435740829951713181240412942643611115909663745607881535431629467005064471833360890471450071784261065984910393441558857325189623103995665398339312367060775638019341411437631713211708609273000212781259079634370010137115404753151206925988849613260273849579500062546741208708081893671376394964135526481668908100512723393387538986611223971440917654156644748488078247754369061836810557339513359120065587266331883486039846897301807463449368106437651680450017919381486018793563396407752079566292228094212914119744769339767806073976326818695563845832354361382307839629130038537783860092615462754515962095587930481954770429775257676107669184387490398477636586292664252127179833530766388194132050379408139741705585777337452614880404571372525535646641577876271285074322476626314736986907248831691631493029238292368741047683544275284230400350376675797358346886176222159832608285776870612169167983386080344432148914844343744658453749185007888002507028963348303233097119310168793617354604241243338183411988767922515455708365713475473651759563256023310596675841278688717243156399623423852955911613013747624354123742460028860073905247227189439788813276325702520589311959492298293795134568158389644340115341761717924449667246192861960215955587168160895189417689117172114516898633189410947622844636831677594633120338540622731364940045484704037909261078931802884459162492161596417704023430756591468427430367485052679768156573125806035604556741997647113007318357105174538836806708223376660776633220204955691367336145510126281283710860964022149429312877811391824258057657464710051157404198368293280858724910410284833575780177188912689500360372803296674383780753646804988558957924729917669950502697235001295440063539946965914538041239923421686228479194329181289305639428577741028318039309196306062107043328540584402619692997828729691391654638211406720022793507786678022682419331110563352440536849510673687922544791108732162699745506776712649453231758283653176124087083460396576524174637255102151618594720339829846927315304851210310598349824493269732844714873182797929151036980893002901427429523234810696420727562665851620639682964864351705606659141665764748079886758898957689589230967970497610647581395872191310225162700180968449531468047096404937695846509555586174658224211884014378183750837597684407563940360844304308920423206127993511031937940105495909758239410113863118766244145409638956456874125794952650977969387935010874152572274900881775931348787997126544257125947993546082105593364294079875612863804273230034491814842035092015702990557458913491930266533971529727301630216729317164270981646851822878359724686158544279162930855828086486253294748763972335251689171337733073875055579537212310941726618832329050804204599911098061519447308374691243377251135187546612943236898617096698465098352822832267927268714058432165613003069755589183343661728769716022462256261976311696024373696486286126565041933575498982871953853034672075069818281180500515041680239184204663324342065163927555173295782338049250751787513030342781930334832309871561684768861393657456738275599857916765309191842164969542974732687016519161779450337420896133250785401584158661034934174035778307136805096332818926542411750565403308053637431424214444487192088901137475844052608238558067127928418002622240038378219902081124144040388563628828659250364605846498853499855793584487747303331105000219986789442902200466945009018312782582802564205214738976268568991427829144538396902540077169144084086571727854664635073240517176754965975655907845262459541054991168844314137152003337938486401675043313581175970162401814826186530741204555688691322294672022056247328581449155104335109737705037623519156611628264884608135874086708594748728110788725433829636446671306461259789319430465035268253555664754416911568135212374846603866196471355259746001319019216661953735468654727017600499498746559773234331832438817392042010096444316915177936449188720577017382068086277852296996350858324647708888812074064223045539783600551646052224014219392028652042333153971912764502359903888399023491581465639273594876740945431423315749341518308821172587730469286444219828677504051186213048510889859358664079136265408025537403417246552400523595425476463007559223302064638530962900351171847844177539771318524010239951360135778896770856332558517223316001792102526299169874074091723960730128215387314186556854980864588439542565777056590493378554700629614204536745287511672332919530350950763753889083527788347704501983765141304232142658413186412491769726707506167276269334776658640772400856013495048113497810842438710596871518738455741285512909875479684461726181909139356240841229203591387933836876073581253259980999246981451533658616773299041115292496194571186775298318079518647557185078598085467671356928622649301730831951985803650925363876090210751915453401694400183996049721984774770865996690230496644774564815414528197397697780801094889035743466881356709623137623190994416047636266195575341123949859910077536242106403780868710546853103623214185614588958708670723410389344687058005665873420120714045767171420514612935022886015905909814813351459542158047733707045933666044023324947150424663265882293763488695063465107367698436245122977085462090073241198242168640902728569114195499585124238477331084569754270103567133268224166401330772810851095176791931273864558036396676926833226706795896334164750748382563074477451961480844228990381194433886439578186353182140540543426898852630830270853592741045443852514165598938542633478405174205515650663844316374892252460594819752467949013138578810814226491058085868696462538658278509993527617539309416284894989503853355235429206762043518010800318113109972337344828641850731424684872735824088982103758493860542244229621139438806721177211099873470309470330594887213628900483086597656772051142053699291993354601938308944969815181645656162064255009930167992194465722304288902791989367926954118795731317676940063304838708837566935898981919437878763351618482756294592115132480103917877236114386915040833238763662656924202057756714683372058969363502752121258774141995382190113105786882535612955869902315475366274171110409515859226959164491891071923013239434977192900115923981876355306496611776162176651482386424912688592458808470083902898829082629973209967425963770238748233726894233910427695737109432015888721086821391559586265488074816428129925051056210190742982544035568286634807916420032926658845314793948053419907242433387502508458970518119861468323700703632972124863477052144721289108821475186044089938510652928733154354948905663729699719804132770550464419495684373455010192499506831264191490788122368661312830852863928970797630424824754747821265727455937080027415464924662031329404646830571357577878342880483660918712814299093678294794416446308039131356977805696352447288934388754906087909755306460232441381202043880439760797763010465026661499767088578809454819424228802207948003819643657001451614477870489670220808992056034258910023763260897836217832606634556461001062443194357479286563474183825071364545091647701929894241119862714135880489082920141588001372925763615902343733715265055458656688959367800484349505527723930392092242611386968652834557353672883861634255217683239248879892675784227047254842473640129278249280712993893388096428451876706780309646835744461170055357145134777237503537246339141892064310309380487242874008764134328302281572852710353761573080288309100982329360824574524081225878725918777795140987843400987122499166385919561009748569831194630143572862067834089701923775805073025600420097128755101233567375370131079715033726055092161252849848281188791309877195465308861435147296029478322323833135739904582759006941242221106268103730217167016729997500168636205346882487799351087019941735184389397760865777570599855655403865420378912830342084831792030555247111564205745754958526344667193134039973038573856115655238086331447637296952218391821960954441309196500408238276284150995293354872175880026723316948582174384752366865643531613394851817299195078693097061425440021336429874202985379834447479228999381614921131652666939020748257936412427601981651480251168515379490588164757251201312194268797402346025236546184338897569031228699608149985835557258545395345748238281979759077588022225028948837818448225358496171596761185283392489090404660406672426103659137564002185279506374122551443019417412218072718002045322875790374890333309865084064629204914656359742620012599629020544812093282645797501823321783561422953722181033143201890871258728204238134988825932922220206327128847568760414200742936603564992007017606192674589931806344356162731694797328172176343387107587276365173500100714736740253418443750777564743075180173119566368848524997607126459951928578157016125980978173273370282018883758729114602542980186128857815614175537861607896008269793742069484873957144657970917891694146578362786958552807811538827437426523982255012889123756558435729121715113698588865366067348278878852624788326122291361427186061169955851840647050589785771893435259441642527464747354548372685992105230770296062074869751839760904759441918561925331551490753471002793663961348886107105664515032117476451452901067217154450879390697453067321409556281577640805138125899727529442806988812661141603824061051668300509986442068938986741298515694995168734923284156129288471220815731514267769553646601706370003304645365368640406494856811910071439858742591765655886630456596270118132540745660326496467691142880533134679023652447990049355963888005396423045623539479766324700582331880018289835029953048565898354444955221286713730061327656320917322275419942737639966012149091330107059236883433263836087384329986243628872336859187796980756830349529633210920918653047966241429975226419937809043606268863388309586480502776026377861224349349386181044540668112017298071655632839212998727419607630791192334893243558155560973150370546152396400108884491917432221651660266603605117546353279914514021276759852950386142480324823133342213401961513268290870034930719520643106886156344627473702806994674415541636608298094130807497827782972542382313043671847803140212255213597866854874260685018485959255970255150899042760914852934669898115535396635651439881117793750724291782060015081057419783168724972239804578159920073028356883414412019906150077376060733894213276761347858382281478335137960797010037929415541944501727229239591589802380708344960152968405372774228125442149596939974184556051839265532175592186556992877994009032888102198664497975390713078018716676318190361698936553806564268198768232793233633555918346840093987893209960350634324141655693778349045210368705033648644820741093005569471686046209089039179347930094648662242089223998630289145017975932175413826764763785212316239577941222875973244619551948466858178512069234576319187150349036671839403100789714554434701325399246018947126690799541415185587014448519032138439460794536820697326858832146122672773396385306529946186290681577980368919332245704219336108409078242168825116956399387737076555892876295018749251952416445323823744468075675166112468221035361059802794705264144983768573880437165561486952243506686478817962325641816227055788074716093930354131792149850995279188862688836594815387571612520266060246335847880650429103448006246642796969383783181119296062964252175105750708234966874841800885309867148222691474528727264070919601909878837767203680737636471609166242836068519692192487145082851079449313214853928708312704654452499875510906322749592468347815229501476378992478438687820939479875892375843413739424792194706451757242251607214616755806765262243851420606422713587362471698505429462805553628482701007641077022889621862303342707895026030665402306121597043230865038598093101641494918931298090261993277689738110827724950681019304095080823826915494758657290283623065421206333364404000954094635103896110754983560458021478837457520059200104597912305605516675401643941299912983375959427840598381404830460084763154704909716385903685934734407780848580103355335393997928624233835956012586189276352084796201713892834968111006605042121062249616762490317848204959559542722610222031151696643968695373576081724732368868279971268539000347821915606771961622176301679368545416668434956770435617377910511058698765603286103775247010912653972092795136296815008107298202592771089239837066260925882030472208441690184396927583630191377412007861633295573900406565798078556789672110315889773018196712944811486591996994646006973934433384413191185523364872836644088324611648577415376952491923942792605531105547881847454076736981580005350816937605303906822642343265066876351314516762165083541235905479574337268514937577976146827303362991726649552527867745642582773511243382806939964906459823748279414758920590433678293287894309128256022700575817383477407305032886540891335920950883561297201447224343489010304701689407632572711562667816262918654265238504838765780132120901917493924531380996436677021969945388684818583703449356873295871901061237423368180453006161761489454696401763209603597974692074543153309570560539821613745468090313431359333799155118151147080646913636724499651957351431984066950005739827380658822170969648625811319895233813985011741739278373608366483061205487215191842714613159797703755694155796083135392092687692362734373357602300543193984880754937882388694771351755516666911162762247966668184695028649754544706326798388521037996920531570871321860040253067787055819322297369199235415326379225490975279655957002934430491899028778060235454979297821713343627156634955191727840544416484304965412698902351545601900355644736838133240482886065133337613471166132039115406695098192250386237285507002057077667696256942029670496529529165895525263683942100226264739751635507599528061693362568657937416085038874619508322358310498029734706463819345376359133618643325749167682470723240492641793354342211433442564931969817270187908303250845250390956364106181478206821172371921471854820820661348692419277316422121632396458106796237129756239125029014610242827349919299245726282044102559755410438535308216941599840666972935254417820170645822592491487497784826899243938489347839805465063967533985902229296674108937402701167933764661369761419077306436791568366468217202112368529625938956624576817484805476816527149658464511707021088272058291437413537327911256309212273277711104212010887258135253321630744922591907485073085170833234947877565150553687890729857768377343464428293975996373042783857735239594825383732400700175864530098698205013765085634155884089052722862957029328441892651852002680126475744333361770315718452627403355090328187141514912236415002318927137317460485353267598851894429820054565042457247694492612681922527461929826739652425792187560187141696216272619680870814246220327826533152155192044018851272725503095385782826431196834040458586564467724551782303093071105912654438284841567694108366014424162412440413312047086504119914446246534460027635596213058076432267605042212941061188274390522422183389174721776293365588608714513257540970248858805161962425490718563817167859911889666763088739934702871926285902838524628824603349678721792704304695352740912697160144767510497813039288657479950186265756168834839673312806445134727667739186987077775662398372001262314426677298895876075885654612943682443569301427299329580468645369859529729899490905722214614602187862717998794053947376540657260555597493551062385072517478531092705147264616616858942008552030741026965991027200963181546169652277136098490890692733098972997842507433703817533649685704402754111691350055950041090300149925845996618395550235468359108747361153952293079574833951399040243007652244363705514836163829457970469154759392250350241321542598961801037255100321274345003594380023233992260249696456579565518372608196122673338652866029374441544824959205811588006827215802288362555367479841227021714476547653824141806737112113437878506660749236831883207837450052214027294334874343875787012051307884035566449699464820295216124810697337886461358816508229073382363887071314728043635813047469005270822716775028124339585114879230101996276537147585134821422421459315498219366339112838947847385146321191907972286925292645309775150124194408706145696890140092741212442952581320309457111137030109172339950106136710990005177224687493461718788619165296270816621223984587070428450953170837608765076827755751669301314457462787549993218489391157522456986465721752358017797105563822954202422383440692575057681547105931123359277693016138630374672788102395250643982230732979954799997237792884173637521852651962501656839797235136812472272434071493754106781092276925821033689244308457156950399117856443847280643187793465355417668833093194896661815295891164234598675703530278531454417404668939784081582668810638147047762865015586736295399280665899670719983023739456198636721684818215478644949381034765416532674801839288033911017348046731538441568496296603871225386925596841687553318000102873654424600143063809885117221067472012610576430657228032343487292653172429092259362215796337841672010523305823232539804706040143435331546428772932029631622833947259039371121140069674991009394985636828294495317494076265956167726486938570474673384546276202135613205307245180895070877041156386996839974229581350964529370513519270490186971805048159731821636669353477097133724941329435068315365519784652028478190972516204525321864788282894289972728508557074918911454842474049061146588401417500533316432866048735844155760639215478156623781247226014365005829247747963197623444592287547221207700424490721101342280775483788614646638745092957112429577986545398453615632555580472922713431507319850877290089861751425123771352928941682428438697076336299490036781618517552297507429175134248610767100929491499564736204919656258926982434846471837448489088820128818269667339223805356875763756773650210969193743290623618786200895228804126193621217754321344952206563989460505212847450339526929399843834743882432573806438680145694786601086194094546149939712146338304082045735604455374929830362898789825242927401460833593769088265403352880401029026890830130345060211608906028047953934742602716701914679619585308000729749392727815173627065111942243399107560529386899423558477297411359689023799933996441856250618141735783008501436375507736038470117263448692938242838053080327653495485521817750045479229557819633513616015991830362909651357503785421287092958832660068869354805643033465115057532003964166035151852516092248932880617084668640369771976410127488796674663889096541957669779647428742012659793108583686561101818261898020377167790522858130397433434729505950331624555184778546971029905401301497225448261284897986407804398554815217037829069646071537661620251903196001704475418515959871101172359606572320526139931104453211927843501935768710631522245986020794656170272443466615139325177848201432849949537291727881674682319912661529870401996641854840567051162386987196885256493944022230426252839221811790415624209409299363991508752467891049819125017244727916885569506280095219579783787617701690409669316991683274208294714699163775076235120034633957712825402574739276974733617236382170036681208107718640232550067468066036261637414399827730299520134042270559621719737610923808113091337254895147303207798533235971813346439740221023394106667438053699657186233571999714455685221268938459978102201690398358678442244236411215451287204310760700114567048269775006697922925968076353612144829812298313887099555332409701839231233537549387999024238297886075486020399787018934071575044123286642151614627392426253356146733315704543015198924154965326455817941368818998054735332033322261742802287544263792181831139961492353509607059246092099987005612220990325665689580508682231709171505321444784197717247730397891673725780847746074709205363122388122038926187953361636622480393662621319940644014883816038260133072940615207244061072471791310286146019961219241981306352729109900801172975458430494582846857475758257601476534924761332362769150706539598013083802181614686371961522702805225556101904090126507121630835850331720245758840265457498598326398115797940296042278768544026291565067743605644949907382494140175372475791570877303841411987730309750471875632511198448411725749803853362550083523537229469631448915773396373755289312760274461664792138083253101812402886903702926559426804536178712401527576178814431695813042824810784691539468484436660471448280163114175330616811360442924241478525308913559964348945395301125519245068650418062583283693932422281674938919731109139970271925967363110933197888399524190543832646604462562159503004005000037269679231476145465142684819949178133021315982950189585097995135170801959128793260953443231043707418813321342129138214768687107688179892594286869769968452376002914397603323224577026296378893216659967308948549685759871513330910893730272226567080638414283156304397630443390757057767477133482407641025490049010071286470990108140643278035634909492300274397139305252037448634595035055144914355562914042694247925885132614030368093335134775130569219057344950022266820277633950648153625744072200829821104878138980542736867292958137388244781943938356324051758200244838031622927793040959806642233225062567387344723656495926550370367043748932138872416304460625950345665766315504836393780427880109902418228502811146883069856693929464701469219808804361536800931973164471425270546250514460903035207087360910570514597128905739342425456115368809603226507789635112009238112311616209012627917406209954398728064837611751182087359314212776336968417434689043498220253886051549438124737010192398278720870586901656188619402213785638462911399824413974156506930864099149887010244972350181804407460217655672865050340525312082128592600990971528215287234340607479227725628661227027567934531675553351085591846859275582185072159637306004225415646696898695350044650959461652210621165195557881429342035933941750285859704787376039384659332572990206009339472895511059147427985417759070753502261298034389315675588536781690957939491607318312497116548083398028129427348768420592494038403103478747287875724764968107332496083030189552800988687010413367250495966989356158427454626187425142008153830061957913740610578194104776364662590351959428236298342979221455404919697904780142589365528827550866731107300408515239046812221586121699444756722172463925988357266250935950064123715886674090899907346996752418060173010049068117808305458092192644267457375324273543237254117920361824932221732041006454888533972105807113206794294834248907222300463264079340235090846858059584824839137923666837962538753179945638865184748076520708066032343190271084576818067310666460484832146494570646787543415681503800423848175655289753855615322574470622931986960674497781425825169482382047136731362079888842450197698080525404822881685221246842001540483735422253366116102737830558512174856735892989371491182609549731021385758277602291102834649122542951074919659924091580014070474450886304102894252572136964932346514243709732688799863564810217232421599029699210575329077374868096839843777854473569066713826606817889246793967657108380081138704823193480564617032558467363717488604770307728088522421292387567827484857511524690103563853176408365958194374552880363007060840392727784670931151631274192302705469477917345529311993413187688867679702573442956032851322287863674892724739071608625289043355092728123548927121821707565667774646726352452032596940808887000897196597087176339583918001032442458405428802948157641985853892856835354956011530599246770586799995916690462382819491635940242626126449576631833046249037257699197904684516099440388876852903995608605883504127253672700243593025861876271966638898571769219411501584945910421642803494753908531924512695176238378869303173306616377885600446993256450012585694968909660060820395102764326665975723578939494292453500547467427941531181514988205357810460669518959279590779211658312109844640878766785635129423333593780355620567824113678280756927013229537273548978012332385122345850648578342319771056131759014092363124551576330546998917327498844484188176760937734549551834480941331730455304836929951454468801641288408532319803977513241980353231004474894146913332981248580460112084627889122313627137953226968297331961027105320177256022373899703165712399092429786576526126980530269966807886655528054573616439413884617729615832941114748576472168451732554308469139382131819289326490794734246943696998413167823630770194974216607648066318085398586070219944567572828435181431549912301796952148370257345724868621118544903102316420362241590553213002048295605370193341108779902765473893497406790988987048595785182999795622385903814702864407669235391122561428835057584732032753585012525095453063512779614837115496644796829942879000099178788960677208381603220693662138450894960285077375649954987810472696673862482578002288068596381931168802644473944126840582846374617163804869922496962884152706413913121070579970264702505957077440364320338449913645700119173616121291150956160008629982180176631802372026375299233092518481447265889876904853553336024757920289519125925409436399006492402713499381451063087290562473490247283133549582081598014940620168948464607082120478091048780292558884941362776949298537103795549411585404668942553605321033668607967360588128095611660706426660601610041035616102497099321736221169681580304833835961575829800471031125834720248551644028484336662925991794013700848024059788840896572374051004699344020189891689430544928977797403580915136800076132442337032352900400904515156417768017678565492265737280108765999533212736229895148291903564320877434681187179396489341180588889356615757297229022945682004950102011465967759702253574557960553554214122550929696168322355993303699269742709105633677973455641498618755550408610802784289844288778609443434700368722286550433173329887913639622682062484028390959729908843678350661296394457817472685781733620640434838917860347017481545781063040739986743760371558755035030065953842378997639036843411329691308991005653014929440824617508225082740576154107233034094503588912008795342884447310121875723506554655110592660656256255609635854918075658569031161442417067016671604790020009100734474659700291193170754078198057393472257394943412497768440245602621208807597927412351942677660200866129118269566605769211219920792576543707541935656704728290757969030581858051535612672175603638837263102815501722943090292656177376009594294309684235467858502291253380424987169457594533576957386347175839657531284324793604922059574191235651789018532722243463910662380072711977127756738451997731583436301208530664687951152353525877409184087826265383227762380962873031536511938775053872583143711951073202559088229479820085102581945040132753823779741904018362259499656259176479165785897239910462455006300456319311410092773567321994445852712274205580240549878780979467174517838550200524009390700800021647755924250289398573707238932638284791107822012460576034657378759333051971114050551896354792229828336575806771834684596817845757715724841656090616279483003438830493322006865978640684068614472048376253984470876328550935273300345956121907076927909834104789420365549372186057546772603103063759826636463650821980558558204548623295370116513620565013328851301612373957503004778792865963857382512136627998849507054018463565392524786358524455419113493455284490578779539113889571739162617806978430137206868778369691219379549056415142230871264256299571495792393751556365249712021832488736647249557044390253956038005376063872104451876579098288773252265969374156989807736641739746986249567506005968933424669153750687907770586627919609878533713157439349594640421073022988217518160333547044210104109674932912106037868276841501291011615320582775142547291183709237371108221252842534433345338138358023864217365246933475108424532187505788267150512555960202985423442794728390655749833647968708026201933431023177792496768412385194239564173547855188956146594119637816798557271676811712832594860636503167468190652421877022283075110467000593874925597270171489960579171318991730600337952089299918649229930903694106945208693671340544883068200900995225892324378601449857969656054611615040680831525726164119086877266493307106505873370939080920792335190254676418579459982828787396521434068451123771279660371800050648761056473990649329274071983108766257550056128882799724684983592148645880668256140245186904030242914952256788815890990083307453907094982404455905693392211557211705530436927136887722605635477320535325054274155333392320005247936122551416555017472790585292250912593949389952866988367226496472079801186390940607690838422077615813958138689782176082184626989245906323996363912021837525847266463645873288747034668049977641663381312868207201467600705232303123606146792361407864909464865632712879282095535220049537118445349468644462056531798210949714147407843565130073570218155426418654931672866994769482304584664129954939473624232929113165927524848906743918630240690448796331984886688058039722754890026666672282575755079808540770375502657096792470188597516840844549219019826370043516033415861554366435794133204837187731970632407033624514138333830411213042751513226038920430172304383004495243940681030560045392164100009155477568168070555281211093239304011974476089726741641996381478037256155871558317721453249956910006154971238018535034128303180532561068095304355525408451592035950918094954161620745810224433472135435369123123779368505373134780663154002916270849705940694778658725677419005221625124933516460833591071745922159590358440791594973368395350495720326501700005466264714116500933430076655345237294048698978094771129409593364145770009223346432862622907043756086916262686626316286058022881785119540283656333979502844680944141932155369067277209191522796867172024449433742700496338409504118901447079898699812830571755976295307837404598995730995950652813508659835834341339298813690574747704930447911194919485700287428047322408062815606800170163684754403967898797006772927002269788336748912537103232940798669595642643105132924283586478211024255891583482635035077465133655727465751648596936497051173432383656487018429204871112182433421861074031055663477217948185554820088526872349162495451295654340807528020907190940710498197485879517147894844726584260908702674313851059713676836824521516994604412877664662514546158412942000763311273506769297099367435893654866668718984090771676350210940853389742790165932215466331825758376907426279354599877648720189431100284911404508550572463085443925380404671352857285936537157836446492409096985235186557681077622664942278200105445849509301117311875275478414805018315604385728234876657356510306171510003361100631932071977669314584670131618015433491577346853037423414522794458628711352329195250858628490062029795781936171334000154987303217358671232225633445684759086938715362899222516813340577132487852645477884545267445418878347117171598432767345697615379042121660020665241254284115783869839316762443587256876008805555391045096388370960221763562060156488810317328216751934685576465174958875286532132821281377596393922236467159867899600599509568807162010293416043851176654214217643573659271215627688443938319450551743886326821585820186159477032336999902619405646375569164357985709835886054767161067419311299866233453225511417737033943281117529502194663915490271986687935132870016985060405147256758062877255508153477327574031442058721436626846807477211664565669994574317601490373898315434011260766171553449855123119588423525224489601491867984122448644263887259679540678080627389433092075529533430627128007540501492526000233296199155590001335322185723653240986729607454889342763672219720186820270068184725560255888746882983772759760546216521604883623877628554538276027573393190923049113633721171959909261990153639267123971206533262959556604261613366633170193616914108021470673100226174755707481670440224198693131931866657142790379496574879932028197364102073575978769136088533989558135133403671408206129139670455216589506660411714557768315633224216692954096697821873857447937984124291502192479752843884823210471307828060141328225602932613938172606449472948536093054745987934256671692998773544184448419687842684880960913973481746200019556366197930152245420093896938539003610545606489115076004696491747310947809699071099226828867983481069562971479764456320036328544362555136372220297333267392070211896276429272842468124527646526366066600939079438177900320855383199456825318232492144424365460826328068210396936254111424272176345624588839821559655159413113012812832342046840091116657844844938392956494204375041940004292650633763851511007844120448829440536045494087355940365167084335279021587038906598168049188948099617972390851194885808797409990887214222301518803259803422326240851512969453633890312154992889713180647263425803046557091722322589337614600028592894720289511087017028443804039735272770276889205979750962887422405185810423117404847326478557747228597668241456342353893715510333783745405462039226159243730625294386408964928852246584751609366253403132524636454237636470727032207221047277642410656399006990938887144468880775224306994826510433411432525316857002999679467582502994559310793768087188518062015048541939933123061507295180852234692950512084501360328824216954141071175394556491825621229336811917077157182597614715291476753661002467423479419316441118840483383547736808759179063894972209633769616380739476412767418631062289153770208320572180628004348787493252289184792501809136708341272227234964858911984864157501253319719273270757925083926642999255224015343526320677463534216912422076268820803558962825900205714601198124618293480712133988269484960299321207970059320020662859888086023748971884584449008585023191975389905111127866749992468093241573531665924361343699711592892859256569168779650220807272941918803689213901983879860219244847857455701933320802488614642056783174499927986769332594864082475951477524503729925657112187332407641005826521003100890213305615901601733134855280352814317371752995614434787333915811604537943076857030000632030069266021036682442694106936608048818007540543706408025368031943342292757026061277616593810410543573621664589849476212878301850107679209742870600572924202154117944231199121027424174318109207765943678045421007718413710825031575741932759687774066860053245569203604965374073571592087768822741949857968814221557998885867856486124739913017159374744393186436066278451705054969710388405986906409318856264017558315289860780959187242766541839317079840882065017437311696497593401942446650514694361763813678371087990953588944351204181422471890076844030294897716598027849557964902060903784851418918281329064635077974008432577616630249591333561218733811260260781827814987955831591712624117683412575592980080066328006570079002232107419680060838383772239100111699341112472208564813440205201837263627240711022173346758903552847005745474170983269036283297775115243990104482323512861276233434504184466946946381207137625486179975876795437427413302622769758975741847684191388193202117787461529433305822583780376955112110726009572669227457518512989561595461106435482321666679372113824517268054192098552494327142142914611752281369601142709463879209881910985270817157326505618139268296668069954790596268570397469459228003346305319391941645232011145368799450788533300809817045054909673776387137014342838012130721398323321542733999263023020065859357796546391606400939329745510198973622752247863788100631334004767242843821886336678864478999170328801612752318160127967479412125239868074590957615368937623098242394362889293574735408780723380489229847836198807206064002916623105379616158818780755867584079253738409105094603640450012351611474764687755127290137358651220280298739380048629128327869520304218145468408325599241057436908154953623263324236968078719753529367426617600021950563040099403655188660194393526329671699444568100764514857623593147680484823117535759811195498152477023032196699556814163096004756547458015134164360105259529465121805549324842608747154814262168358554746359683613198210989590195313804501750004302313375231969046884881657835296631241270791709859297381182771551706976021870271488341833739287923442098023307487202529617711594640496598223108975862145535701992205016284294621163405325637069291724957517526112440785916941117512485093776912401681591420969251804354831675401220104334615574765811381941005020916735912804532716321741733038335831222605117361191976840801427598471458572418265958854153605578120536820940461201302582136173088931937151333140697249754653907601501064401795498138096134052799653180904260750455948723890891219851339284331676918616966374838708443664918897928937271551634703604985661770465123830256197325929838454323637836925638504063631145850182790901828575191117225660617329804704675755873653806454702686030765773394308597434163198027800746749602142007729301957200547983073049063012593450496943556309370497648155680173664634014509038863214208077636999320303991883247259316230340915796166711201460561672730789145993407542597259822582402142972146187062573235778227584655770469697163179592651139962211331609006374488635997053933482162760337127469157698962314448864888022651967655221300808924870878498598662573294518384462619097262244902954169571595487177976103366514827268226499612897254503750517065582196852312069708567835729430116411888642741723431791877101694770331488085378704703857376470195499535480326818549856213266041794357994427294983608571216216528580970225168262441853928457003029809145690414522057902820796004121885596666624176542042279721264674495557189351793214783843475687989309575364109547124154178283474422411342885723778617509083836802861314782303000724899593795401535609427616950366050306093756216485279871543759014359133057388240311096970947312514491704376063430657143751105100902073713090093055052432564509566461982147084489592103493147190293497921591350446224242491788486763140471546205012215469889937670740594943484699002914672223412913839137872712930257272078792166884412591313285296982311541434714842626274831656962460669215637990238424233113138619802587013122621762083815775847936181703048241027680689366127416434139799661123492104774998737332300399264815210219210820328495408306257731817114182841304714499032541979135227352319668039266459233293112770203426198510812572797290403404810032523995992488902511905840722324076489716184105542955470127307287725249376114154724118236292077292031630487076242996523154245863575503790432860368535619311851597113477187076758713871768237789343250503232257386344532338089074286816888138122623400986448812094015911107352384212075397000695159895715473895044194136036752698466713801527173950835466795659585239631427173998418930807211154877142592368173028828284954868929217216323633297424892470393333585567263492576076563884534996135253839676691994959822050647167508029149903304356189271587502820230135665245887742120893284966236976328325495812359149988032675690855609027886004900347413815261895685342763414331934832503745354703246763088724882235183556876465585137916543105355601551754536472323794477025868515675754232713148921158160421245283142667781764943001599098696224324727494002453268572795048305540338100664062201235868361690776879886915998786107748741423179840405532664899876282487043617184619780875110975038251325054168978721165804588108146513227722244077346405139933946175280672237170547579032287762004674418460865154003498162253272713474811181083953219875069759455605827631118080584276645476650750988057950609634985394076491239289521289409981666147180545595415828406463715045382923329047437735274930337720929819468676857626169514061514393121640487049159257718249828630675953671640900820664474611190215044684218002991968675795900455015583278142499936196200580890198329967046981333654742149654015124083332958647498728157724456058986788530067795239839364980190686053358074572355904949467896972877688678051610044556134990681684740684949999515990260646651805350931592448313465237651916417184256396365719528855151474958594133380727957106325677662801462603517859954312787179866518412802520929948133802514336426836675427411643466363490646846480749825005311987540479274882193939998307917785027757526457749519986988665407147440920040694078886125975245248017747686502296904307897554751990139108594222301610349031472741148521821197427631842794197419534235663189409002670324308490639281974941524909283687993542237536179090177233591644973392154317183257883610816977278536099815894238380334927652585285989056949646750299211623330447659904792953882495389766201099814757428800270296227333414580042262756739487276377400069453929673662148596315941065522334180936428279828806752921814064461429984207906727518588820680118313332176176480765331297581103177229216886926824700294641129670332491496782520080888793141951800284958545266349393544052873598056319127603284694448346942401461832474124253030188029695971082726134022347350229297512304692710845321729569294105080405132614643349784359741037168980834393942682679506538116578951146727594152259604567847764944692205580356509560045014760807877782446388048852309176215005974366900544105975432561314891981500872789257150295741926989928696046715954856688743159926480189277481327612210555584504864779026924428566103776265148722346012021745080588784159280198833196050079134252158182458205617389854226261683970827992715108200041106239165896865453215127290027383042986552248573531241078587108588479992203868200126759493049655995537480313489507857738978968675429250363033435362031249560329246418831484677871642967277642109590239947260621195777929310891764922729724298108025098978384404368905871223059733283507957906387957100851627521332583025026757549034354915442938386832723502416345856560352751578166692156612221988688440574397299431056546433605695567701913722150852083011675042961721664580047934751149911688310221179315812379729280911899273517285906498398779571911086873760062492974691602375924889168217534702967758605437218069914752928735425174130198079851534593484871697973690949186194068286583206534519034052840962947178699588382190073789048660956894126827594889474970054009443763951754433445869742864670640631837033515089082208473008577459679845229832589874317523995447377186987791571490760157342478647197390771337521020682219332113978389117676963170607631850066250457814307562728115442529218171879733090910038809277320655655239409064230378574063729768382649517836181978894020283964871896818704483714873075536581553950874981261475088759607747284046075185623559814608121565826829632338990466193548478775926457901993797247036668149869795660503823016188792673155912168215792210463043815181210357619751964632015591676522365139491697948793725784394323553976842613712668332965653398911016592296357574667017879826326824702244775255587736626846891603377613178748366097496740921717752909864592593865855027170834952091366774139015224038940775034169455336408476522167001073733400198120614868624951436252938816964564506483614723030845437942565611631899901659539041890479015598044082975718634589783691827061599997219763702382279681155219863813511793305106246651257745558227137221668236216460087275119131974245960634203758181200696373963814624969069118391698498870744134605852875683867096687681148441128241447702376809473671669350376383962741836733390506531155025187564462520770755165266350617557474241600074378581980861117495503022130004798069398924027067789728577638461757118735669436420586701041665677798178213591437977598730230221207389842823631331760875571988956013855001697531805987374922437907038688206416088800951171446854013273859067686888403393757134858960148609115755262266067377221746566193115199702191717788857681099898957128274123094238894706411232456832377677360120641726948087495682420097647399226543216139810801412772666342289338534828211722979671997885646698096112383101901256832002546883069075807360833601138456204551412167154169916571622766728933559500626041552941293987864327453710712580590461161848590457724293411490802025567029233197302044097716343069331119563714001724031769391677786058086779543068510195452957493515935406568365984411837219543965713173384103538651794574418813067426722300613049513999633576621176665429406892780276675044429456634319665957833546765536142159039297158264364030974479310640470646414337124684493628054220069014658006286778306247853353250310871452998606060909507771830330244939515546288592777355831917844044156966763125660268114007475957385568388380672383359918120491392686143550085853896222779062765428799531021989489786004182519527485623210201484984241132533981805594174369892742122904622756499373870735270016450432621864082614504810511648520982699156513726648355108825618067537282614623896247431198734667803456161902499260297867720005979308460958469563817786524341083781179694876238372038377229105006365705266549092974382352281543079461041876329779254933961854961974415936460812081878266761290678237086203772354811002519010792308545808060298195481514906500171041350390304609489373568162902036351496411213906453284161730065771895571017722784752289016934269348966764804264790008166473430578914497599391879495387957601846137566438735585241515180224834142841332133643712466235389277691115816008258193253814653246846781415712767736505832018626072986085703655518098128991650159995935463070488622407475544744070465340303158735311689150601069303066591141596622352267625177629491041175878541851127317074289118913687293890642464292217341643209117575202166623204550182675929778109403341237639347767936278472218251443159615264612663931236828745780607197715665623095047809598107669857035126912182770799068286551077635269704698418349107707430799257010814992112895467689226346886916714903266795919995525892117191130521917739469703869378864455292800042651548992521842104791416444129183904063428834400542193966235836866707755065239966350887333138167940889376829519519997380907002667019209925451190897672762569433997858205930710876126127974887778078539656590735118839392827967565162452271256525955937689205681438772730899166390334070878525185800541167762170262749709483969222402994091890515459689641846055615321153612339286129732810407946549927366384702572627661929664118516811151280086562608800117259132560324074474738871182129868722224337267934760671152091439572649314873311994613725939383283274808764814398214584566319997095325196588769679122707391068766208024078549114711423142766210933761670612222748606112731376924134840720676389373392854456863472597001519231593628371433411110444407064989335128814816002043424367249377459942186847648887634830761536135011620066662034040905879664353853461612928499817210948377894122303966720282655538765889017317693738190956098966044705411669096240071752169798131388079428250083939647151567220522782690325719925663773754729627332536649556610576775955117583261371587958944518121769202330014458456231523048892311366055304166874944919886377714604338178113563523233692417358738546192051329556262187910078065506394755740879116635132816783577797023515837881544419097112827658285300754015598025920605881037866849308904749896398880014184054211898347682515934254427439590289236368822738476311556517659348054969603096964817055208118038804293929875204577278403601369917446718262520789871158586243028193589172374730374467107044467901012920866263829682511597772864108442822298370001463264787319954816081292714687964626482647987344772000164476326571230565481596727825722335469983442508330066925456733643424049032279683548645953224173397241832315950748309928508780835363854757008986532521758738003886389969145286275201184252937715184828866538310963052389146415414591892204549487061772466418153088959549005753141648201778777854159624794675390173544371602015616979735355708688621511326339636832859198616400916204003964595929892009402662458663776840356686526651338591077623459838147502198262111262587508791688528823093722602240508494862961525549608781602864027791326838525752814522557189336394732924167105206478991638342510181921485712596561708234967128978317895531121625658577040413335672968681376171836026999154710205352427717202738714371593537342843559912582251308231722218329644315862045920194442407821357406358230629485396844276964415442863049578297770278480452105821526627385529203304022308455770171046061314721474483407977076409446842930702885159971272071120261589280943709815639376514432400346732691135452076200823375224110771494145168527230448508449659374856893495535504156286645325648917442209340623607744626285734116784152290532945386577493886971312795563203561908850579817127625375854278368999142192347078533392024039648900432181996688320883779634262557218492702427622159243611153696471822963801314802262920314096948601295324170952280797876960022041165542015657099356805830154258010785856717529848744047412667644180540625526322230264527042826915998916258728855068468997799873229018229395313600660395692283516107111225421618980599653993434382479877188152780987002410780522560541321808460665685360650480615934959047467709350097901617663007052849028826633998554204347508388738654492492598753420366150452795554238180085142820553616123659622037509478649614146520990844107827950582285071736177284388574839626576183479204528316700614316257595432984270571054763974910326428411720174615259272785740460315849979462103770774764265508297656868546887546110764868439497461519418312385600642759559607053282651676444880768405431589302051459162551830749758816738755378112706590974711154652963857005593197869215559612080760218821161363145977027178825693819641183131467888127704556084318559023531536505588433927917391100819395665735724629486925928384279679952723165198291204896273905232264494160142097934675157832100484949741886714446346797462733183799236136418148849609207347028262926475140450829675324702861300301818806052253415910965788878803116993518133733653699238443669410831315842230810126691786224223685896498063408329152292044909409935321321777263584399632462084684569034724053342057432157078987057286387702976481171292649019043379270556648543361262914305000935333515134859039119766877159899716032046507986618824192212155881029938913800087299367450066087340800984705782448276376806853981835987630173439543034170303154405304079274559240329075889741140595157976654114647209896976592144631998824210962889668626191584171332054348349347142951120062566724638331975958371712504652264322518961777466955021867693529155672742946418162198709869255333900173782876265901181791990302085409460241810881626965365678249364965481575286113590115598868720639134235352599791587152902780171330290797509830475898339874176303612771955042759286466712050494806709905325411687523884516812702497144166502013073987165033603369568440795076306717099953788512661795245601047448953477346595582162147516762742591166997867023381414018095654951494595303177789238378964434036328723608102469041277653097112421973113365185595484764426573685472706662135119238961598998047789874666292650276491350590934574482105384140094216987736587955054438471027406253061806617379143953139815028050341322925775269313148796540242518418721783890041866132347454309033941078859911600985128116604494005622582874521894074679642676176349699846105433348300987600928767180606160394155281844700039101395316241306552724669788296741343520094655396207883016220766422956895931361551984114095561681267600519291295408843643125599147498260993084476037762530026797562886921291489102758969591834134498438332309638470422638457444677843764356016350919026252243018709447080362686391834704609886755090122584830374420785876900817228333970824783353956546341857478654091189705415964642513257760533948753752816209874282622054016237428126931609605912771668401218155641025706432907091168935092841625834122979309500214438918926376180207876069883151235584639459403211553857075091912334173226411414973779773382372685787143346188324481954149563463064567673586556537026256907004980077338790651624383082622779394488393428000855401542901932776615412947613776513339304536765274790315931854563507817637635409185126974109658440885374541522341760791565850642171839065508784367283468609786762315628220576984653760015718590070165666811709099084037819942088929648933615155255294043883272634637324498920023853582084658109467256957949729901201478640731796890962432993095848248227699231941757965162211841487865498814314147024132658168885956441861908795215457953176636253828629714386393527976672888211840088499591150862363725550005615162569578387414450411985739468120110812901851240520762773274176644550067741403789870506391404404376490165758391353081369906571236504539198896764257124324611062225132765690410121107600496780882445283883807914171376234947473010315448335657933673341878413357373463384990366876021831097317541376481469540023676024654120448356572224122346893503202645911713422632521156431803516999671353608294110821044142661818981184025138028884603942583502834396270804451665480560346237176430812405472042423697446687639640423652286748540964997380843274853605423874425796619023722483088485129111602644422139736619778806982799537784694757406891930743386361542076306799372648956623502983609514391701821686224463127706329217550707256477461023841532124357425396234287354721336379126606521050856856733413677997786365748205377513476552243042927141749373695042092782575807749304528723408075191565366171593569079572385441629483443310541640991513944067811781358088235899012505055980915467734297068615704814622094949703967964155884399530308079191955425369821031022980704554072001434291699740228491536321004700509263474539478708182842354412533735270806861282875551953419502105994759346485474162212857992445732581461440730975497432472256778868474606132717758868825092557203445966675420917494593508368787988304141981876654907858914173391212390484314285196352663300032585352338815947260426723444093185161832900968665180245248753407617259327484402940456405903958403860073489436884435669042321314598758936724090703894179246821886077278461849609330083350799243624657713430487339303841732262657801203049853333808186635698015312649501195758005991389699232873289763565895566936482860947356680940770496596654852454367475128287014017626162858415302299273632316360332656582108419770148505768467371522103790613040049044344598661399730790737775332108007619669457520369114764087679672939239774634312757175485562957014770183859724097599587558666549364648701622820959525871730443346868420820822460071597056847727896829273319087326195340266491984453467193590460900103956384594346886051196608125347249263265779748526833924098451494460223743325313485026930668040109382489430193435769245798020265363704073534654783198148814026983577111130004668563267066560403847373005678065831444476253673185135844584150175540807160274597797198454920134001269849719108496132847344797558616202432072304190449619205840844351482234529687500537588811668910952173893254421410552700446656947878474142043534813145029593015163043262522049633619265391832713012964301652214149111481144421693643343117536350061185207094482228224676195809000883479928499663560388999342297186594955699876387103749060926872881230866411303461292907942631732232836846359388741081623956888185598583697431381030468722275546106638275089435718924013371714853059979876305064120670533694313920951035221215722814147097611734032685476796747923984472438243792473073771521559062663023632846446175793246350500533033510878329499699316770410304694875366578532423052345692965132212995010690053965925475324781893084483786261101161810178031950777554854334285188590786761113654148710627026038836167525219238933724494096491459327531161222206479162019312174366629707644663857584701408875068262635731412172770977775100603168218066095219802862731307816949443345776599601049679128825873497291163513030206805367052966131667909067068680476835111948829112389359596213108567072703238099249399252780613807740772952075672341044513182141840530391204322516892315963545137643726826586831697454068059472023901799634820660286788845801631688354348857762578027991386878135855683735308963017677893938876840978704024255428121183772122288480856171412167505322835498008692559962074380110936671657451214367765382728090415561623547790531674689982540347858491194063129240529853484073577699095957191598332208860579179818883501965546972273129683559834161988210749150200597241812525152269587386958872162247770579206318454875496790120255836336956406212057699336336188952633896838184727994278981775915303645381124820815522167266159458784824162820361666338107323859329276368382917844993862139007788756117972476144505688345580908925739410557086122381379685145508061302404953303585638090144995028863565766972003751854908397991591635734040918332315765721883464776683140108269509007309899037495315927294844426625514449317904618688895904541804800010013999531179869977498039923762414130709817648446203260387975999369484410205627177612164005864420443657816588580772176685214049624017067095275791812859248651454740640102500662938784070582593879337749306780476984891813291680339657722933553665829762698877922661813786825596800506805950773982677823428478886546373079919340445547802364955903643574522058626703156740833913149260365211084383445037959374718374994900520938422945200752913958759774000955337984576761643545549888822154950880347263665129651344367667000753951897382406226968186369167726656437208332313050575579126289454035755215061392421603057409121332189976443739276059959143044167877154672670978038798015977748002838194615411252376389770701819547160765814223679676332158129623213995719466483072079000503329167150852803672792162766127512932061447471130512658275624449489171641253562187222272163247128904032580376243763713840636299002225139731232533744255231763578343374565704754190344504258795635559260887229783331295391121467385118729886964467907404566169482022143428640796239519857799665303592663751059819332640426582601290528560200161594040695831378786259720289395221946631705884841152732588338950306481332295557914712710799847133933563675138070917066333763588392549275695092955489178367434274897877253357232781016973830823521278277735806397672284240688046804525939930332867588577474950234270216528636089174153963268570543882227241230687954323065744110594570499642399390765838609601526184839096717331158874272314056763311185878199215938023889392076798874509804536607376610693368925041695442522764538571018339247621677620013875317460929803755473596637197638286842147762057227044666356707314057382336429102945688471643173319198969892309093340601116433514199553678937264948791628084685891018044103915066473969069567336357564635798949647695496833427940776016228485730876918541333574295394637646260807083901815620198967239700941650373959035992827763281103296100058320455256762300600835884298801177294301943169773984573245050517326607943649882023178218153973696416452966629587014501346668848497388017631515090493210123341032705952021700462614402695323235718817169255694860423416179641143774966529738226861055453781590456602016254031256854895098585394273752953689138708660533948306642078185636797278683309079563074257592022717741541548488025765515297789297880113441321603762743272093414897054101053615385894311843607822557071741517282890032636788436395912471121699704287410024143350640732438275181859307036072949347042670959378322366424690732259172236969714588179620145537056923632462563472895364222263407803649325313523017260391503692665382699469577764813160127595935404104045194863558083987238586521636770072170093521327516653653401623770059077315710438274647624755913748951583373682900248296368400697245631722596404384577449162794026402580590173884784746287230769300344858097456765230290626786412443032604747662923529538926493303873671961280131182121199764031917874251232226666482792374929749542357090450846456868148541316354152453071268547958958293650836926650001924926989539749004734025422076832310798891142598910265005115362884557515179602970139973534596987284881577439156905609910273026114895236355058593219485695194935730489179692637725431475636629769413558522976284614659923549973296463923963737915315699885890623573087238306928087261566930827045385607130353924790466423593623391921374515174825327189020895106554284648081422287403304569174209791288948429967499524895373412530638419634956524509216506744592256235967739096655874918727697952263452290556341681031367590882885893949783556538871052211041392601396305666970666742105944770439368202806455557171720502275485722213899905239257682318889473445211950689384477500905979568447645251668585953926595489648022206567875949047755890877787186238923868386355667536639073588141392050043176522804899892667302145059034708048417159257371117240954031736765362746347442114138594493503512164887496697323159817866482922590793525329088639619976818865651091132426709261643638560312235565331205878753666432531051222832357755736802670205978489926510848502623335916365863387405929899419273333535422200902232424566527397895723346401933985519340649632539608210717641974670039019839099979668976907871283404687031823313460261422077626306976355188426227906356325312163240106798804773597045778026790395614462085051041863763769517735028108895558355596968719259501919429870653875730588682901730812403073185068688666130949790912427055604865433740973239132105969354737436942199341044600572526512089585021954235023226852271755137694781965266935261689059384240385384400231204109342915755377891819929015482446832366757782397040547255583667803893453808091053609984744535583949398976722947143939761189379061375535403336646418544985391803319825032804135415258903155895737696164028588985727609258041968650248935769278932821300825804046602774920489010429790196488869060254689806074788945336210638736628538320008470199827096095426026328008594469532345697160771682412762514417477798360165198548784119313220373074800204347904098448343803060208837332413557212820026790661899355448323426395019232748107302039342611229439919425259650546026549229462776840565630632935665815520536291779643588151774050569912589174599648727595743949876439209330589271061692799855421641073809062924773656366098947102096989174805070347869067836881180213095209218239525070870680327638499063595399709355114056604278416581732045408351566094406710887603231956170760790959681045264322010550230089661100425636632321658148246067939588036998776442341957021334984883540920168089457450371555515237667177019972026812000240704764700711083081182118851883607592544002208712305235940841858494419627279280287604649975949889891537830166683868503137086516553711354034082375238865096094100907373834799047911882231593708300711766268873634274721018784805095113251505256300249989403857347015075865383278495612801403633429484906770924618577202559176502485768048203900806633371677498501281213251649003043380614112985216392940690351168359148544490517617301838890371308243065419490578806840220194799335876539067758881555512797916297061606486800085694589377933392825158748703715105996132005679539114052131251748790602443175493016363658446268862453610459581718224810156763561562019059188355826791596020653413121771030995112787019135684276587814384777160151199889260075858029461481395941513896927554482298757575124864230822115199342375169978921838169665000381963440364965992479048422014540025163329413106060478365540688628538135197987604530837405693285332910007228457540007723873455005457186780257732931664734821015299120462750164519569283696563146062397109662861876169886137713196910621645840304887908425064700406990200864361704328213036536983778690400533659435831358436685021151795048615534854185695324719173957845870180132195201770304489042845110384979732178934309304380523986425287295275884233405890509517435000344701038967383590773533804377293130767111140900602342691974061207655597968823086740888172444630740784484656975712340535550593201400221807447107736073957783281168160251709824290762515012654942804859772435389718022338864473459517463102322482187453953044507119175428693439110276822978316551853140031352064819793764895896477115618042836861330484738781497254725860121250828017257677432127829978100456832206501100851260839196581597843172062428965894286115336706047496127576697114573226570777606723341211294718172227807446495767191975130838703303595014095432855702678438650222765828784854591926775240106838929217169431268907681547348159583445450003743290634544703206750929004487514159716898397994106095865442428185470297039484949863964850720851132297210893325097239422400557639765882935720598923721056608353652132831164919302621292098309790057514907819439009570671429090128762597330195770101201429770622200568338149202653368531691544640201778230192283361995742867578577984916047100881230236984613904870920862879284754981090483610305501375418233533966475523081732716412873694585316495334640461518778109987873836266745676699653006454953049627721742242619233445174911583201417885455738632863726713265305414370381499080761545438451582722230965715277588340844205489783657938860557826086098215782236411767448918348824517348613067683128203683231184859884928662551667858029435571039312590340796707475401343851230353364505848255728825643397958829636117336456365572126559530095750156841801895139435680780166557314611896777624913146891744732279829283104867411301515357896346725149583441215817150689622263177577102279146161729973421013857854944116089281085611917103338304210734854458567173522747111355941290850926745066442581384046660003868453035808048513891928637652537528398730845767160721359333899680407311062418763031607546883549017342278471626393509882562378336111869134392539449020980725358690039150907061208856664236365485002801261580048204189591229086733672935330141953767854463575910705645982057893465310906062606624324189937875933758930802521033591947329213362395524717455920859002703487204538173127311891688696180536372428035476114698888782435006108701122242615222549100150202862185271963845219487401582140566678613501375839705905305354355170122460279334759620139523825197228413436519388649837683655151603423884544659823865164499943634777513172331901066426823228078893983740385684486503516059382906493724046021737261041035773898502964524470609125130571401002423768638522613386679761923210073975369636019164542462846550112911064938433731810718804154575581457195301564773527206206311893675726783523783327427791394326174115805758601003753410814121545196699472310706840679270463443951080419836579710383536625662309140931335560781990815059736597506692311465134162914402708215861257535766092134253031747981974232033184135510689596558556578049124139648789607192587435926700924248377903280784203276753586113542551556416884902763221396029107006425140166378014987603314281450423365364226286988886317188784574870118726500174503380169347292501255649906642805899764868240154199036288707636490467873165916650012799193860135292836156255266156927156320494387678296886873548453218076172950036211825304175129850695640318993882733870203473037312418615019268998392291810817134713186645028204835863178863295217429353809725356988453580169848533683905476011240768927058619099072509925715648683972119001846259735711167206430935868762525235531182382389104677109014125902230263159207994293984517604758454976681740965565331247259326090489825435892919854643875145583415803585496428588647399610396461982670818703906925594114863831435387628568193671715522901878999863951193610960018258580923731040240412859275416633400268311787162804424416225365991633566312554929632570192791550319093098768382819411851183622918829181817414763787923986619539780892743768526279860824715757507648615584887900291862155597355737418274635916320619255761705308018225698081397312510182365117418116506916593704410661312138663366487112212117100609933171095504247840291325052406865499107383296938637081216629142523887324406404101761921413233888918509595199570469972821774053721999024528634067795445297341674857501840956786233105123211465490824084952528595560962565992949393140676302470372036865690373501809796103254467334783199200177674822703459870966261354123492578211618623580048195672952668889587767639488664500391097280619020837307573699361597891404913069762146016624197816559986865689333966806821747995023303665386755634795026928451030174360797631119412175646051917506265777648851324935893780372730232506345016693475806156601077999170413728111492881113068599357666533629617623089048805633332696534751832809416403941310681671107653998679612109426591401898131194921074268131870436728079038000592470006601550893472166764608231570712793589088381979224813282438052338258978989029068748459399950654252900070794079029839194475395624045816944001327590039031502656289992461057545438204361717839732543371574993192802879963396390366691921965356950435992016912782166863676660041047675167558659909212485713331372198763440253408769566003217540966861990624234411165578339874115969168824673407453475316596322512108149239195490629161344057414101551815731988969897582108891377094748796866851742839615674826275688008314746972334664091996921762009891216976639687233018713477112422163481742692037986329995888224412930956582850581191563944086751353100668885956233108881021033129755403319398567999979643155765849654905820071680809764359356284924368298564877071754952109082145264220137738284114006257650804825974698764874394271179300575941589718872984259274565678669758836086228520936839188291801959939496867596559994931829864127378935748221691192233962407154297471955393308564027038200500330764807092417397071281017682117013615353448276103185785975767871834333298836061605523529255757498225599440928507409480469446822628485263966577809045680798526333721300697022877297975940259747806153603246129559264100797761535263724591707106129647376511898544583389669337008090088876365513588850131239896528315026342127430890228863835760884488428236429662811970095909426072618084292004795343301965838921450555284602554447582976451044186275868411920098041323695910928446982500529138389145682142518587876927948274556581851484090770458084645124026547940775897185217750627743017062039612095111560517254283667434018850699745885731122860400274787064093827867331025092714011568320798088587879557845987835361729244067073209718014955557416002512133134910830448562455938012990947246642241291212535772465629732255134777592534980335563983840378834389568151177646685132972107302245691526397376627233086239673822463200098347107428871408994524374532224765317082036199870813767692965588856917761918032263937204969383413509329356306430487443193539502640695490168240846751308338712512590221681542679175011435047249649310637553927293767045177100802369749293995374903877624647021561394288687844689635976380100065820768992972460528011116921665348077561037873147964863755436386869046460679692949092329448767698031457296424560954477066533262966836542928631431882529422973910202518376365351215194738093960636013867307624804183857615074938009979870772119261344439621808054249680449629741455280658622852824905024029411305118959254842373243702112982194377959672650766908948523377021484554152054531787095739963987302416205915189996853912853863082634119575855069782611303496699176091013658129283597781625423034039685953174529067436747582001321449559347499159891179641961107183853652540811827566915071101596551632523254745286369163942089777571337530316037711194726604816554458852866717374941505394640715942413012821462104853555354742520759602379072929764781726321166747903000424782385801433112712850302070905676312859561440652342308237976634839010415149510349742894298726787960188419757935072152164800008717065728246447919654190583280043498456248281829282965129213842673502227835575297435054224243251189613259817084274467430239347126720626900524475572332975224550897311115307671435005124674115085750881123264205662302948712194406702860882771319143221822380001499314924574393074575811166075643125716734332146525146134227494979400170881122389443838376899584923012147235103557525870762540058003277479068628537130435291141641537633668801465727628964653828367258215543115238810169239535284749639618540632188942833273351829542347823410728049051837776672520123918236971286803625979749115055889670030513741045221478002148626991736010618686325586550344877873481127012191666551252762608606861480638046531265940627840285974177511514563015285764626023682987183924551523370126231302616315237139845684269192845794725562025193669323037823035853447276315031630516691275484007330000148836582766444122000750274589254731199867466836972798891314730219925286349668855567030641688856496291623488728770858968390710310701767000669777696227371159031419095531611682915696630097689732550952001714449356702977949546078872229794496689787302147129833299125098715813888810435760781364684252018564589657100850616284180965426484012067851661201240958779224004006748976848790542421870544241421945400391415042126681569329870305663764441063364437008065333277244897898724680272856518595138564642029638437548007548775996592231698185957809293751821982390629313049312661241237196048561604791083416313071657491159067407644405839281057504098183006202711409762868100863560891106862890723297105446502536176535204255028809695188801050013802711429411047824802462813021959789318683240131476847770872072597714232670982727020315168463477924849948723423385570797874480099511227801395389990582385411551996831548084146542913660212520952040490041787229080512032712507687799696796068724322669980080080331344754319938415003188803649209829666677661844376406311519583844050006002554392511607173391632600011557674720112983843106383238774029556382740840644163738359199005587411260583887948691032747336128087614239197132941234178503404646061049338258567027149367586757959253947075484244847690164074192725502623310653600432119652055307517125838801181335576049264476925271991613193437402704971338831167040952608487610834718219184033503339130925027621221276921768451780756962002940940940584855253313605123226392492413962131886462779280281970664605547400661086615477786530518724965266710071820588694113776930989383337618127496139605062115360455667496893343287280900706088771953336194762977005369827145625696944035690205873711274894562905696497986408398731921988026959435815351951864312123084265098816088200693890939873675374267062383151298345984902058398520579152555228285318752547473649684768368418345260718953906534187629822903201477631491277661135095439262813255337101606461318728580156567093948540875320262664602747311867977789290845181619486492936067926092042392966166139268215965213680041980484431967835922499382223038218946359602095801899491177569544974248557668257620260361592461042266153681712759967701043235050473886487795223242107522008686766892074758704674099324740096056577564882911769063234397240382449003709284787334017605961533151478422771307706202318516741878190540594884699823250227127570193691502453034467507325196615696746017029825947914025218512430826486132573131759409339304225763379344751162699551390947662925251552263350091446785589241697238782008965724030873860825208219432085928056199798240775525057067779588774890502963009523699124568312067496228005618335877402834076215005082548274402459148178974080123238107933129142070607866349028780673327502204196257082831603078400282507859931255259313455810955759523467027180369737818648305936360387197255803128675048727187035708416890373764385481129720529063880034159444754171877091805420327587680037526009158923351317932948865166091458488897170126557035573800632634333307167429288870827798263825090356607395898888723881079537879408141112714442758011869352943449269551926519375860896470459232301319236769633700423655135718800060028111438775652125526701627229724813943800101438749997429936034806907587220954039944313959726416222127510727292513788230976015992625892098063280783485191361141473161044221094180829574326726760271383177969173356807715220469956770747418203712182968839990470922451794276789358761395505868634154973509895350984515978267143586377236953969458698915739360782993758090264730646237396443031872651357956138830282873436062349138086195580127426941904280517780594023818098833572304173375810991198679484635536978676497614087802601584841574503174696665330027641432904550102354069618130934975269612208343650984050288639095373428290889333404317485138256586681218450880895793304957158833937835800963020518851843416205574751513479074638120653135739039688181653395436230601236098571474559534079784018296059133977925623943428094032538479716744460370799373733894702264035745867576614356529052688736533094922251348797748493853552658746794683680527054291612180346528135542257604376321652877018005418715586162263078063756217897575822736338671565317038611736188755324403401435846807889411707573493290205632069399023479367785079966364894631539604018403064896560604276450952304842015828762347396134094958940321670704449015183473481167930636247850454329665114286796421394056912496508764665712483315827808719675616628940295700359095560460822282767688465199758226313131097826064959338107031170545571567667739421216036791969604099784187951909226239931898206041094283177602045757792022756156497539707881734443687318454954411348173992282645734164031175428127989908388040609411611659359400138195873448369347409599109947458156573093112491289297311082454056121004915414841802451643013370812714177912830255754428336261376996633893052552127781979264909268497287556053303505852315480466451852309253778506747110576175184365432850354402876490273317625970966510496333158091295275678444943229308169205640878847395646465537195317712870354830393834383470485056031324542739385510758949262564592830794018423348714440047353377107122659122003373483848012166270607362015688960804651227612358437695410557589689445018159913586736438529421487423132468199586384054222853238402158074672993222141097093872032499829427574660277652854336168790336886366100359961231940887916163809311722140110746851573357619254523016372760239815622549240414859403382432953887122328988027755326833919057604010630654457772225122725775954937254990752818689098115952644744511636672375163282860870112620852619054831770742425104493344600854631562530058292294300559658232386034985195421157089650855915710186808082641400505462893719048512714725558432673431906709198905145545109568457960622911970658839113940309072368698832391160875063119611424462676285863217205886310323685516374512956542669244600596763764619937382512211320651968360619807229457988805992914113654074186063504477412655158347102314662452375063993242981153792287690364586567393467689899200921315082402290006473450074797188600227208812237090242753287332893707215909546488894138530890094097425909313570567026280756434990740313150587904576885972291591287747244185809333647760466804669756794473712438164591616621877006815926813502210687677511217140882509045014445076934704032961023382073720850204875495085901219702623924575572519944543297224195551682835528262525195521612043845110308420710898073787296626904833980492106146905937690331020326760640784689444909101223959158949211002402572111920045437185566666792935058415380917368255970090295554366555537638775665492657246450668193713003206490906457719861669763249316453084615491796301774364911023516377850729932312994815775398521194654746794335668999741196848513456624582461811960209787639147534730624603081195574944992873163792978518167191975542924849943481527142393637916445771403637663340514910883796718181635626567238675731941395508416137676014031126604588131701670687608479866310246732228779459615057246194836815901447829782574086547232232421930353060549649708245894913600285422009760312996740456606409404396702257568151557747816268487732040786677109297024766361656293469991307844384952904634098395763772274204841423400166459821644729511038702496130897398355811150583346376120233849978340870933373389331577954008117377792194143572525544128674380441306646565351604573152583335006946912058229982202930841111633337851328454344883809113439047984727430130072369455298060992754165351444183214737610010778473286858404924917380910235263043370276227205540862111452471623229379336871060832113165306144521065145450325849685930014825667528901873709914533965235506918758284954722630702269591563640805858071905015344892495963719353875909635450017556380726892158274941971443710046600400258421194716547448152094360085155533443720322926792444110778385027297921526335048913525863144808921887536649621322234717241760506715427434042016319906579995332649099088010282719728928689755899570601030426412650272507848190899434153957894778898483924148089010744380248957240721593437675393321397881836998469273093724975465636333227911827973427654754996049323498151335730413963427673719016580920916000714625222188070569042088048736972114966999406727098250663196181892401071576199852332158284154963925650259407671086981712409741413223096868771130031105164937044747852716687885211361226432840029142647600253920911818005595637341463229668410154832640025102194082670411974950127568111244272657482910788772043377137833763025469287480074744812135834978001351268341573767356286786715996216284692609157038618537772356744214384958894728870936158001496495087998385349366235644577999943248435213389999611676624764252212918544599895139601349029949194482391248918495152822946620923472609527242377521040812610337178000286291858346394141485329700539557203265212385729844255460386626950829126882660132595907876234387603052696981900732131759888807639374977472951480663637446902690600715055760220621765430110407098543094081922196184004314978420527434831981652229849427783142241836060801395407962494347669613691779542625048820239667847529448275960955357625998185696915969331908808073694680632799989027459179179078666852598085565969659017933264071263010278112588875725977500657348447832674917925509251510487493564141205187789549672556015795836495218998705305371282695939445557702179955975888140926074350970564232540852806955405482775635557978096885964595460142088768971632724371494658301640589183883464388736762643089512178663097997765202522689088716630201320600550160090623834673859063155451416212671103787611649882889166350318735910451446246983753083579471412332046410543979926255895757077799326606058287597068472214299675601784660611600104983233266942895542772024321028353743453615933803888982626485947702730559532737580813638321882991132291740706167037217196584644932297027116079723279795981304647280053631944222010537329613848630192244007164311668823243001640440052056921870121135444752755175096192026891387217789765458762011961154226755471588698085754363948809170232954969334528533658058662103171380570948691039925824458565915663060284449547653845649571571362264853618914022466090426483181132174210038954657143422947611805364337988901101119175574036426575154281976808401113918368359526444481420039956234482941659939995602153460101534588492798047062748993121823609174008849742436038756257415379087412037317559625066417669544407316585634673359856011707100874191577315892046408832045080393917896747073152490614229220646807065807673591810774103243407943206033383167525919598505143138635897114833228506387013456291713687315119350511718572125222896380138541417568741257548935747227394598136896665614770615553678107870295904715789984989061801009547980168086888125169265077409650981806485236526851818770088947584396401966349706670836873967693081539760518025986790611193827244614809735185183619120579773771557492571466161826889112694204091096649393816700516434779969381237055092473189548223154089681369695748969221426164585654668628430757940524148712385768676549994983762471198233411881802774746817144498236785970203628402988222239833072936605965013532668954769007512260693960417469120657048693029223582430895313317044587809292912166425692311508635765956241949048941199302261119515755538489826496593921571649703677891183597294975439214863649059280839699558608113792237155193258104206592914142434961743019390087779783030961824498495018997414760102566737587836085763730895916953939764675478773466553830364864811161894620784858036445490552882994468940028455581297123723111251747172500201538887675096705663253723906913969940794815655512272402080092760290098518672966489480836790115454773121454793700001099386003964387637806825587015263328913957703596456670885778975412302546574965580245209186119457034117195488242600773735718006621549994152727787915999395726197896021433457486515758131846943726805732466318557306510110738455252347903572494421836269714442901114312433142797377614639206709277614700858974114395018226906931558825787521838514269378885746047987731347504618351331243774485449515809531062211016034718136146257521106233303874310595458184797761969278567210125646166686973372130433890139103197333706172811843621185460507120719749997598131536433833267151872141302194854849141800554023854783416008726113745077351606024621745118496304219533127468524044908420285020224790093687327357697466198277355579002550664368620518956042639227489462071671864629632388606192646485502037883339645328715923251531748658943092792288179954895882757339875050488287492773503817239638700276861730418374375477091332032097412222993000165313187694905818550623710748893299115401176191382665503384836219032953753862409858215017385713173533710785660948581342473767906745633686822159987551930965482985291487598786943617969113140939367466453418145065039240368155720679445891525291385433858711673718874948373045197101643514928376289569614143281308643403580153631841321154614460821190287621987818222173497049058201342387959208256836576766612967867064823967474125669980201484620994898497619650426654075880898753919376535578783286786447682014970314046939021341349877254951953154733368554283582465032444813546002249635444242577092820646001124773506034656719313110672214193881724164013909419439038253006952917289867746398662565252006180575643634509374790393354272555002080405502025887410395609919965798347363197707506097728727275115271070265039916334413039305773375339683876348014907273226792710104293908441242067248444851197260783734476916387365240727847972599685099799971440954424807980255965963632905947420211406589116404321102038238909263552931447957757895141207581992741561197443337401418405414485023121273466230492634108585140944975038612113264126463755157463266063452371496387116494636009973744142093578533194824465122190401805313695688777509423285037328361669933522930830055473216900714881333284281330072574585763717380476011633501556875028115918419999555679181636158463438556018623163103162669856449925397735925968915990476740195497243686457230308789090240547039900295211900952838647668368348782924726610523466816291519440425572166989158501880274583308405812270060632009705497814648949631080765650796886637742876601604719944290723154676376859962672184827321275148736482678956859262593113077896469062753715055477375578664245031277939436425302998401830667632717134138232691758830352101127004283742040033238436579871029262381987096571205023673580161304823290684786685516053579142577401204111092920337610979459105262314895929452450701226783822260421283675586244944670533424663593920512629699287250319795354531417333914895316301294448256287942343135430364797168283420793937299397680322085688960552719372370473409166130655167102622567822758184533410182044298918576294508340216665956053513607617538915916438828174521006209268844484285496302036825325092986070577651175370077160014455804746610909154480357632181867712982448500981860499589344635795979912279460434748021145184792550769504929239316407580822138495288327048211611280702296595508767887922971711099486918118592076211612965907511557691554419417053411422351080267207930960920981239392138291802593635074070594666127659402732442667722832916390322015774656347734905590290257596482401992341595399983813253463974070821113978202994827105663622512406805585093945258031898011844228460046425494285632394906122296565013216319782949531666777956329225486238572644594452138750650228173117983837102284531523087119746334089165401064894737652149475737678106881296589728227794283041799975631529545665708652466802971249233698139616109512750935110179563101566635332689471439912476817128998317421737189044528281223026663547498079018200166753939405806486073123577048913465039886092680158020327669482973961170654163763812774864945353201199977052198197895666180927038185055242866611714494514857527557762023322140866799352807792395611746194582931200139753057742367770330847451668396325060512361938422400755163093437954843699578534838804704120301559960876971750370776796793600411187166374764822488242876170201279271417434752063061953052977599846382619631297114339681699218316382434716272535241815941599468136641214401195750484191944890990723474849518327746522444626375459475884815039098826648610981387946919288026003388333143895965444599685765604734976259344209171666490138683318213897630742970963854826165974889558376038708249819724746369991540486379811382687809234289723378994736286961242373819713110453071059230599586683792981752843406017968281680289588296360258732734602425605341750537201962108987515624228102767972988996269263883848485903544669140444040281156697729659087137942404216497984446344545031867451020910363317934536173094222762564669823906232827526315631822626680259719935872713808194229015584363707248968023270297829805644658033867826710606608286498106604563594735819337068850587580350770565272412665546395725624303095484553093750095431127473414425205658900144349841111092442656493658652072179811868563692548134634190018725621354215512596061131288602370071020064699471896937115156723794289176404245835301046098482848954034285771161980044846908686036939221598190962503640475187047538966478771786770410809658610697003302229347853775895581738252670730940721602816736021975833561870394079718977112011811366135251882017157987468778132325797039788790921882464659851392635685285278030050670767356604610641839984984672524286125993198813652525345336739080249372488483840780207845049467435967843732468913759803127904151667360482880191431674241385263175789385190284935484057973833845910004829439929235762868720491720526088432251848612777176851334036736689454345287254690769759430130014036949169561363169358780858056902892444283936042068430770662312163614261617799070444741877318410065150892565332438567154934962047084452620790594411485169873106406819421896832627732395547929417047714315420506933162468048083508984367423943661866367464934937037890335388795816101982308950581379160108727981304917060108063222061328077061681833967576813598704220863376697806034203601120533527366341984731789547029295843545637182815618795430854566336473525022806422973403573296664498344013659930598486169325737801233919928488611000809088715477665982448635869136075286223026943946768479755501286871900172837887669823210138357868063883523019591320174064311935736416800433609789724970490246404421128137364526144543785267408875740662601106892110717541272624988269779780746127387305932601545912526184443908070891875911704993287483673850522973749040912716082151885549887265760048850508067179731646529051140720917304438112069299933235236472817958258215230040496257524471627205420416335046826498769305591937801014585816111889862718868261937571497970419791114192650225261133219982332194362495191514937562143208725023393838635925381766940028067332221704921918943128807357777382611461863830442377777061151843416102924316413401623732394960985536862673441826642101813092686190501240982446152311313037551745788943716882157473812334346916691315156715431069133504815464462405585057548004718489722669597046140640032093760901138328009227675486860962969874979758114740389466951547523758533748279271751334303287024026852397447761979181782936780484225977771944063173324614891384417975216401464616200754492490121926905477025321439006380894668549587894237601992285631470123319994034742570918617234051081669947343277721653778677591490202127636588907231515712910492966232283175366610269383162222407177025330187290364930138223107153696200923796592698800407453839086711149413053207122744795450259984023231968079425889300093034269676077452560546920136228480784622469013640575142602308944068510148568457803422957705790408130892185665102802994201854071871408493910714186742175679700631640732885062278747434021695009785903118890015981299496126989761707598243758763828064005688998547665703377426889951394298288441207229863063450550579905862686751531871603080275586944520647739606137479331597173534481752016531773904276065279128199577817869932531722499048381843547185241352865663005047341690216165207367226587646386518263226339908307780044335689239421436033748000267537327851945523126558153143118892907170370330166622855977813819925500862547346679848928955275880867122427763678222204927171390079608765762686638446544820415631422865426199039800669425828225188796643227199865177405130107467755543144833063997112983129500168839739988078477136658459496022341880304523002435596167526908697380186542501416778507592167408844791403546869525108077950949176321430620232694365023212961358346790440809587311153919705473329299510766410092486353442357449344979303662052276902788762644468773817278292863926936607343649639880197109906352136504603600456930496210681879045800987149292435884748870190263032502945300561695378563013349583905747453620767060003284997527872986273344485414980201242421671606100325632843726437848231162546711742961828016238597696749339202395987046426711391866463131202302509657969442906989112691377724467580691712533702324698635292983207601123457508737139196693952920441282306551988301535469805530485864015562636290231464888602657476731270728702007145244270313873973160711914336392751699531540342732607427336643957919046107604617224619653284904554571441697569344971346894841861881576189946303584158698300072119742547599152292414490932277247357810372421067378568879645214181758725739426370682992460632970409606583224398653504738176257478532558573661280938508378107696775680637632243612384579662574975882244158694443761351888859881738708410932259371181110230232191623642036958616177009013502071386844588491018602780600917202280216647113116540427460338811046447581024133341029290074227520114392479625372417132731837866855009084343705281688492349468115625350814586142145612280949380407822611756371455503245829857826774976208894985061834586727217720050777911945550296929018388225250365981961507754913372366884942465799028864500463077294941094667351438369795865955178601448905312196146022066517343547459340797532252070967046396717559589647760799108239417943717375817969576068823345391790664533539223539318003429206574545571519042795767919476640780744928286740369611045766488575396598805348660418457981220988225411750411032837714211054032498497409474941306783169351603234978248633718143333872732776567163172286941491745491243099058882694610893145713264895018839515889744002261777244156658863774236161337310093872959797304080889502402313806818474869892586360198529476146639086704717445124854964447573273251055219408155831325918902009740123588771065402813241369967595601506091439878574186881124431539609659446603122983604053722405233963602120420197456028661269634240554669518612648158961738519779565849942991832780410124863042791109257668640348414559695400824628457314585400322302649178740087642746383216278899795683930075947036149418674825536039344641733352630962861867089737462378860573341774910451239595182383247218040775170571209942504773089709408740946427536320066051690549294852024290100732915942180226017158383275356616683082767255143894217428101732605872107164493509143810922038732118767717794009611631492451373418124064689634531306761585527514957426609370476174968085673505149397685277869268206319235004758425664791586566319822894347908116549204258586995178094415865201289466591139268710455090549279827702680255687173715105668781126520868397265365680147928043883890200264377987158587811699347737757142182682908505441474903879607685147256063212260818166574032356040191230928549604755714852615772515917758439644992403943068862116691649182526083843760563197239509038794482674558387865498391440668546524773381845434480939173366648230209023698743830171179501048094225765037696464004126392766789410030214556329728945607491593696108913082402001171271986201341982037139406632100616780455962085235534566260099455342887563160933050396242543893094863742420269740621862274920521428037657330070841206129015265867547502594374257762841298956104381163233006767768263355441384406671301881714306327349493045192725391329459823630980683757656209872272606402895495458081553391056135401884310243818169145484607084774893618913264229849658709183628011416872821188581967442933520110294244862410186707126812162644056972671360028314661572548647627777732743611241743496760828473520365299417516433819252302487375776766328407716427346663942553767053931963172904151338092049944853197382379325152552583741570548922754038450567308936984226547404217298149982056206787911601220017013103944330188437666033145738077162859580346574148852516454342108807257753445429966961407669388615647404285592655819936017038357546170372123524344201659996201287202686380232104124608212895596730450296289825633857854315793813270222564885322094435194361612917770130449658733136862304613350021219487226768853707097939641031949277501094011138929114852880628307986223936217160557667257803736202668845752952551097203886008379475113090151300741247874144340901265001427088627047544157522515182440756403899812408758782481689323280105757587314100360603571964823875550774695537853899712919187134337090902432146166632889768423445779115852592703250123007983900109469890969358665030093564122514645492350004107967076328497133333490062517030403745274994434118089179328787459607190159840146087006474405143721196236881872165524201451238896789018667842417456507634076229686386304557501984727369622956287276095565655017095368893276701955937376884277940219322557296695927891347537275368715202043236489853243757640620373575253564648623299579775407599596447944762693484191530355855129644717104608674926712269287785776949853955435075358509930949907749552087099161419864670767313429072605289540836256176854952615467891928522775334586081216382278593524491132359616784086097518482595494268550883121729300864564237043129348234570511384348782930890138975094513510823911314717345923905967542488153801890351545927624678249425671805360947099954414684589998042402000339037630033450478304630163173533862358156064178610356342889464102470763020854035868777356847527598465470077846986003612094466589064204798886489960099816522060490640439482214801691005981970916580400642807221177413485060983860909986378691154245930054376014527238100555031539901415766659496066522099340797634842504550113249107190318046492911939193131603660357225003099427451196377823121432783110662772523046479721793417141755996459791318134132881300963122297582877256733324490325171446152527095823842221712565972281029115560325257060464916393899987982368359534414456362414581605342452450554723405199938356699393631814583752606662844041328499439735851554813706621166454946959682498633581514454675233051713912075956087901222115723729891587389456632019711043937030617794987156623164962863988516896203902371324057491638618348663581101846964769031050870242514757213741476405786227710415133100208811682462206224767034009330717397571869818908758187988732231127642426364536825189313287970017679867275974430226115849459177609377809612411719488336903666141352607603985133755958106171373470655646641638602319158907273947930147892974431675120526540064351994017747434538755100144033352931461152212779970776930033310043200878628847120704170407259092547989597179619039096335300897213389267017087023762076131460875997641489986496215716372638667257068336868047826483389556285853815288648293583625734632409656206277836062567926474219669631096736310528888023620391062276924181809791682921415552936564528125562216976893268787871459844067042839723052801300594603384292947562024508807105761333952989288771975085754945122686064025814963136518359823371504646864175553058884919918588211507905144877535932627400151166439984212331505275035976089169485566535404451097978585309069050425453710723596879920898732691064123312667944469753312072056611912400190309565278025577881182109921121408419339425315865856641873456210209344322325842417133715796537133634083925290566838328278459219984517426184790873436970181364725585090690147694280536854019417959606490199028365503795728105395668803861105206517569949224342051805846753027918005230106114816004851613427591847567494163171457100317765091103035552099845057868244005721472565463450023117279912511768681137705906382577264489729755851812840918373637106061697254727718516411323202793439407799043627287695407352441654000237296640680259136880087968148915778520919770289650767441897682529077674999563915619773604143982378556253542561322461747407169103467626824170423173736860944157388654829205218877062011239332554335940252024925107599810623945300822885639929377782503754964501305536541767650340211731379761275612980788191750535503288828424771117359848263181825270024992490285308385240573648316055991718193108553882124162615936450271037284313000271715171958961258466409577965687529247086253104188564899400846012607180354524512356261447013743742098305324774145896444613394386432874615167845706457777839560014384850266818990852122167389534190886153994145329652374636802053604926782701604322875267919020320763996065570997647003429274938200236862094848190301388594641778491244698855781753432902383731260819852118160821807185257889247355659358571793754375003010785708996574916421747251849770788788393834893849028131509528734308848101057468283117729816095329042497889264430865924790960889254339743442134716004808849526753279841985534651040473845400872145595007007732536202214398332668511710658484312223968211181517932850826479449493759285562221377881089446657383728609452892998732713028479285670591144283281200077582176833241503380205144027063264207303947087289143625121730107988141975542085877060236923951181818245178347659314776021095183252048830838432332004578256287254047814631289735989294910762609288112200485037968428867974634443384122367362475643742922571594406219141229044859345380597137132998905462233168072300410625349177667469137529710146259157098354812719814994122335816689932364085178863233931477254857677448326961875446930095547819190946543945128617185155848543415824731726243497092666072563680481515200972179301840435419547807608681092762626406096648814506649916886914426997639017938707694347405512269984152577223972341214007539907356771489026401588823080071095184421999660881630469987843096182822858109419924290766505000708521393596296489347347780737380890638304425602336976858989276123255964181141765287463595891116622129919812844341185183587052755085513436644875545128243678826281004998374209738556550312703285981727987559466853375540381513809915219252132858292427773480884330080467715686200434891754324360278715618780081574055604699911190767108152689584408986883034755270189544033916194269367663810258553888093130752120049159376849904705054015662796824020145886966608155443769529540737781088261776780095920738984381132692315348819611431622772773913308404122407062031894255839326771700525323162077027957244817426081808839882128251073077933750183333862241065928234131923825374535426208337311987663791158593285761704286029502503322026154123914507772476858276340724275249748422193280501307767522498346215063586083011614015088826542297279946562256724495877558222568799889239918877515977395306674103041244854774175857664876530770872033584223580459527326932979666285578105362806673224630835229604005578447535646123857894063294565775630203398281562382786002310843382870474201042656758009547875456265679649416296630301317871021437840059725938090795021986772117398314283739135117216969209566431874503181073160372516656069241078468563437693920775576163165624042415059300077095705931976473913023155972859963381273850454529571183240461358066935623642785496739578757326992920950250996060576972827908223979621070814658784575585985050333340164603577219169174130233088970746025162709875919703417485915975988016336037794465709334095683664226615794180120252200732162049809038846553462348965670733176365655575816438026158967513436851572592100566214012368322607202538362985797149565235236249013631648700777652854895565733210479886181417065565782303201349638365436328587176418801669953819939180558645125251780194752644210681580027131590081479800143281178701744633281404478234362754737538224356013165009440904421832249649195362709829815460648833810102891955934411227164554837042237956700587135016111325958221882881708294736869042717778711154955360868951422013090305410737967556808886154419138011193820955485696720948978279645932147030913504143420351839703396132286503179330387501321056024497880963575020509770951795893564567024305159125748896922320108244698500330430701300605971148299781437812912109027467898175371569098037445421754535340940108120669770340201372079825088445916137051729005149005348311588388944054594979357207324031359843524437427825077889119522101601437694532813631271887315701569045741824958537282874733054717659999609663163196497492902871010894282931566399775370631963796078960876635663747725397624657429109125344484786039130956120792718465040443787363981042624297308950129488961354729393548034622526412074462226712664795791843608847159030178603182915495440696581014727247849542664941887146415670298988592163458392347941547311089398930103982479141640105938952418400545910921252104546354126798419889156468452290357156978295429373698594641983748051837561527135994226804479677180900742188689799037978264324566157041077327941428519199717607653651287270391636227623572431285657976351441995888032647092738846859155679420427214868032483092040822383469144517592978445614105952166957162986693005432574154056145923250092301359606070274357863633903420662630618431898161454036932393718067736288621247990532382267393548949532523073207189949024263861603039137113732452064781964762996200353974644191605258314059174335754556449868002247790208077444029015408850844343110982458331885340748820033500571154672438500814616665050238098247796475875149880696312368409092284085280288497045096418032657632000024622318725964991755202620772662899316133341249308444972065789362437762451239999214191210055161040707731130465435036793272275172488188316386115552194043258909660323864258074525567502968379334891842695120785762578622606801912428097870599962244693245717808662643108966240575086788671703494976175312830718644961148497028450408248514345029347464766731804354919470025106938847484678715522382007136207481353909843991635998871484753223583017073623447969407018109810698205334791136975385286182791832846067167257081270312035406432996474345273821543385409875113283383082350666551462227440720130217635972013242372461719447406599823449115046730669179259007003340538916808117479604862114914911571697472813052344296036579831812119717734012785152908758654583388280462499828211125086718745346282445194009533806594761644536841829930147812155926465845594190976472399576698581600568701377488892596305684219673068718524750756837081340698315707901319164252961990305017137900613605856691776610655472708611505123085237003281054655094555999499875147199163100314217352156316981989481169500636296238988152204513940074073698420742632459507727059808930993176647771127642311332617238530415788968378215685197749585530235784240270136568569848816047046017501144426618440956392664451412170888192353171859373978079592387571350360504655538374155640877837938654447291707125047710988804435484655731922148005177344728267904086503261842917448942739247013473144683493496168628623104593612267908255871994737824610542657162907861865675004593221432191302606533670622547545666435628409557756080154039013709514467251472739302780618600855284441261942930450701534454176358901631898393102905142872441826007872924548894039444156419002072298154833813879400589932493967204354702399942304276945424658508649837138608100996955038274928872273020868297938920451697927201820632925697569804627679575670696073440172969490226078721441766418661453098151944021115317333661092637321561422401640334414474466033284022262700247102387428284191594887653905111317800425829577751314636871608426777188009907056309759347288696323744413686874139517477591920918652495046194505846402844085389902554677098739992425214180255182231425776443833731827701419587889918891002045610886582404436612807244441440272489156171375477150307670102113461526064485927502097199946265250969476834537379625559954798035652266113987331351437500990224037815626253327207134106106376568450697447989176146257461787652062037702173583967472708114536082190452512681359390462790376884443676982796688023167067659208714889631626116435710314288988612940559013136770464103267791546793613759554693262733683969518491816957098014313085643494958227778409091335278664320897604666772879306849972773541283748859122557699096099645876704750965753342657344958059263709571656061094532430154060965697356905072590109746137375177432685453586832115595728128387448141781809450320989112430715113862257625342861441332385344298847294220650202678486632403096582110850491273942693023408956624318872251324032546016269005349738255131878502565813380983803681923269382262459168222590687718203444369065237433490587381627521859098657108923431536197646864787301683098106476528979721234045142889319598223651377923317313707558715266257932933101010237745369513771882202245173707979080970450087683723019365646218616652818573312771697389422695969177296067873521757882070067740716411990403614515358782700543870449059379483467075589934967785367468322086926787674408044028385319683019885396805025484238043326727868651127242575685210474079741175475066471151432982413694218935975208604426630349215284612418039608429273294164975391807933060182037461708467413055889172923139805846512246521543517883271438969849828083918118766301409635800423955986160977828880139571269918641539808482206727867336678713728159800219118545165540998359300962319341756267415782847362465542011153569436837786633773407822311630361802046473712569705460414560329127908517825595124860873695115914045369780913997915579983427930639501673874964239524679515272910100711345343724937248741875472578535898775968949691445335529118447611454795584378528282230747252774739511155851332474994090392396003634835299441389534873043034959921384627696968649876752005353821329176879295926006566140294638381675635945539182543005064061887657557205742814628247328334489688164758947929003364503654575314552831558616824190080526658417855365184993142692003409302774526692324714788091463712951159386311657092006569169406491819903608881266397239874621461255607205187699664279393601874300894412916724079883942406881126989917582186342889339539060454255473548005528311424380532676222030805888558189517625696890336266857835609935362657972246011055284530660817102956316034830064071866294129179521339970325673803811185275643829247370319795259564374137615352487046401981630192316936793773154762304996416457925776607292491402968353896183063312196533242063404539568696563771028830634205824431277349217528639520032236963847627022132085561262968617351438782694139508497130191322036836596524253535565337237474101763715916766488859478596885444076474415175820886760766129732404894824782666405005299497058340878259401229232807574857188016067502028263521877208661408809944279837903603893220920993567316896251175555691157451821529581796444032271314270977230056263970917632926931062426284334586964854794652090915811273719276162238203638903312531505702382029804728500657006305064437008136667937946500565678695657884496271124584659195767747434946472037114932034102384671091795032403066678144503615447771620295010886268710670655959235875711532081830369985323611908967188281073176700679956129167943439626606088320464625928694941787847583374822008047486318007052620683891815060178479288949430729273036903805631982782906568976232477077563071287971352481078270272269525629275201455116902737679137387964735602924079750431531432377208123836445428212943516405712554643979265498295921729892197185785638065530510253635202910254848567794049080851616223659698278027968548723166706730261949341462657861536729635421891056666054897397511547685685338191077687328805242156556337893447959028914622979210988572793578507380379029519523193426276540512594351720737291807491153375664852014405542059850366873264642990860086111891520314845977965055587835923653867488289962569039610556228932411881307503883830864141753014220627762111621405045177764671510193968969939165871294529653695658593774677538626721603511675847107513027244507963204506763657755220965678219887283962426560538284425955226501542537511639856813603180680966543614477636549170294277880962008428175705368127520273069189491472465982059731653816976884960335020760424424308813061987289742396037799886035764487270338791731767897437426148882961820540720086630309681267186309605990620863646337761735046534248624861521820300779969814909532011376522467402174736409316348843684096378430475006586569934254166137220611409909309451527707358363007643816340938784389710485492276576180505802105655723867492820851626641631511754991470283818980136093131923154559195181881188204990737948267524092813324503894564028189369920677653119406993600445750642513145545300917209358094475230284979115649659249434690980522116073309887863237995923652009870299697616940536088612223746279059641011497853242065153768728065619858920359436609640877990312263207989216996591309669018487152389548693588556571040367563076097666579958912629096607921766041849396671057009343071445801284520047310258019915403698176045366134259005892005186915694021012818468541183620438844671587572094392862330647632207477779336296786426073222545367634156618328232228773484370967705468955724589188286513394577362095037065831148170363833915108776530542526623429887326406095879495081538567619719910690084130705344927769675053813620684214760420474390693661631376652023841192584786995122205393004114023187906848707924200092490656801555223981485018280514023577212183626838627732234815465055779083150604374470003874841809001758365386494971209339105856539357006607989845230583259096274668822901076250082534769601123991244601023626327419832880394892465733990721497727589940001722358663327558723494289854697875159193426339132034389571899243480170329682620175346991815874126245900283203376575873608439426682179242404327542050548354286925606316131099801684400702281473445458705626020726914288543751442658092941067846264216211058257078844509428627105507922834580502383946808806824209675411399078163540145024496328339020273355192836943998046796540483674885024672069867416781710033077380398259573700820250876983801377171424952836779336871948561591874985914469588942681203360035851376389717989419352022649352692654088958681949679821755481721989509788121024110624940615529595175711424088270758015009402842307560978958400561983389198594546641883308205406764077480949669657406172394890118510698387604015101308937553927147768390001926691406190213199094192789353343482105694448286019857901214024451282483587980410555257395148237087529472186111502773287760538300792749335099823307458291775316228300227970905832745938254811385669050123938106407543620709146767896187038124972853590774171741400598810100450428655118241838802315840376097259761759652614906248252628051201550662066768232635102487006633606544355014409753730770648031167385444307171160096160859593606415469894751772628879548658473571240449364029299526411320856407760251884716809289561584216758279904143599013374459582259191850153903362212594976442487372441887613458852012698727691366607650355547490627200703433892323931167817565489419295976038095261638994974841019499011592736380679754650534198505974891327566126701029178920886266264530074399575799416133606371332166432152462664466521158911233279557967118145380997336315405690477911563481918837257811587125656387487181724915471082453154238822877147514976187455720060884738444098866258892404897658816333377922926292639135592119268249076155668605614237933070773872929459484205090687511156734202134257629221468880031164099556189560223622866822015013178693473119350079154807330472555535174008292928135192071321064316636350497860561549269402285004609346875075438356110322714198485031230399356482327542217256077487269287136403449715121014171034774651242285858504540894999027835971556989299607272369172902743711316663637461682433259246591591260412478939762872880662046566576467660152993287505177277372810833631433746853859603312698098320547302035315408975029443625009965086224318009454094700419984019248944462945146280158516188996489211915478542688069497138097882449816076435363716308350155710782257384712746963361471341740637654562894906278754553249647857080121677707739812679668243000720107586250074536692753765722307192743100579425623693857728718768170549383286736299058227106466103515523652331774879662819118208713755405770719528615562249601163531956445931922981586257374069094179943083234089740883710276937645851629211444042317322082461719283820899645490208261637870053096828982648445433501067235596345628955276835505572061488292727713447603299678140725087221836036133797900052552733239006443874491651887590087670830873636838146606473091256941425081908397231411388539141808498182387747085704696376941008017786635852526907015966410348998278728520965456844521136606404317866621553187081170423650029353241257619849898874329452075457226720151994418883639499677790155675422289347929625280412219927732813193888077086866585527899855918708650820334515250192932620367609037660981442611671093776653607844486499192643813649403333432087414370172881946108110775717480562167300802584352689508571021898349918678757344013476937768004396370953501543513080557940596570968434533452217744866894544048084549563258422229684361430402608537474639869205290607114875131667695831359292384124933063549908243733984638353525420083793156256997450662982945980908660895085748265979883819420576556751257961027250181329667787483438141616934466021962374950195791160246692033692887232489071066778372146521198064043005259478861098745187364760122646158318133755767826502631707401797190789957704956146451833479435889735606055930741007684491912533036406789300457372047408948543904271059450702459893178398753845942647938271964023753094887197209399393967672244494872832838095452736396300352810278878093675080044151263505826722595309528366437238325755947212110630760477120346234476042575853215681693769184083331919221139743136771753012875232646035723647039477009593754210924448269543969458134861120139269241699126603211528812186979307260740283309423728190655925813892337721667546270498192040743821189403414708424272828811431838937088690611634460487116536911330373267797226392761227229621250711440229698438573091087950781169921456440715501051156239623277846172886999567987524708982015624467390447373993790592048333613129434688590500841739183289338802769774625118549267455326146537838104765849189264933493337773693805572063660895293971185401792815917110396151421356261044252646647442042911085112865960036990437703566928972249188233474320032827716769640500362453688170383677351813941970280738529723354400818523619295633452890586122433178820112168190997818085361835656265818134601794725416375491799267642882097763323201138438789752306573742004766095503152401050374912130574623088580984387779987233337405155740017977626457026305336371583765667228145394063284010660654593559315074616194546036457674074453420012397321441900199122735483607387812847460382173187555777081940024999870279914657074975433854893222507199118926438362727803107080232138203851702985069967501422702332119397258229708954672243755813402696017279486495441863495881330890944366332650725916698358990832461512711789046542102832357717934032440890991073410345915373474118044572560767614481654228607362704515910861105455908471636576432777897711344615324052639472319997284007286559313314689101480881908681169399478831447168196987278644263444694893623005972464864323285537402371154214710880736593883836567715067490712802156192952830139184614656894714884620274472532768717393181774925197547383012454066182033261114133680196284377761850493342065967498737274760315172904424007858887781561910939974703732674898533464807669740816241751162130273769733619469059731286439461033400815962992897449330102063922449437595528178821672509452948233118421850612268769902864267530283115355375748585980676953407350966058269069089431626244067176739669629038246632126931415584251016947498032849801992982531613087818632044076230053519287515002637750173855645889531700868647195229348174118537640972381815382947415222284976481227983425796192782173323188021358027945877173484658924490386333166481835168343027932512733202783627078575807693590068586376264523678793976727616822004218202481491160622950766123171612804551901014093517847349643222507937920829533722209812551121045441628800056251914629128863145026897494640829938673841410447597725813877135436853857593689352016524579763568421735714319855183388909439462044503344405728813955464508641533604115172836563852308646007794223772110962712531334647703891597326244141195253507734649723516428538986651697627133312398775422144869088353969202073552125725389998634106235876760526254154096234684913804576162603984483317093875918323959374653254647622691486854725120795166591214121904051670889785696021510463730058167075797871822228230031193902946250893460259801444496860062997756739957397878973198629772730915180497591151991516036335616655716379835602781777132003352818478495695272102682941719208454275460139224016637056225963803408670556137144624161898315278341101768025993577299312180085182904328399545939178819707193656098731698316338126525461693473261584750375088510718689995300778608211918324409808112147867181863992301158218286074026305332873758621251273241291474439304022606651923758238639215591344610582402347484736833621948638779467830227155701309746134958790993806392613162649392451545964644070368718589325684369639869278281378848385149011169527387666280879711144901162281065052014961729404363383446282364688955780363693622913703516471392364908112255674348278722758707869524000180507489615265690107492055754421619575806064910824633963961029419972732233913883207959766000657515085076432234562709660948592744043401531144265455434205931052310945647689733063283550213370218489860997685102963705372492520540381435731332965238348249568926512192815647418060252300854565131310915386248058058510943600626572016289058211687201973788445013478993112063470764337369073914588862753707877236050831482858420955094364211905222229794883354262974574918785884355539814403961993892644866068160505047291313521470735175930104197818095607225814054400397698589304466271031219949773875987720510151600414091297166999997409322684220481228726086598523025394590632002106161612971775691064086501710322211062699650724709486011574981396787547640910548159760473155060209091031985096199826144859517964477465095289698538571231402321094192973795849461494970584121871860988522785298922266466943059880688492962987515915983753095516314665054244642766645005009025885350267290517480150542317734445918818470758635609688303025405297154395084644388859727651426917637484908521314912581681616015283891721582137187519821327939956030858776412348440095052410664876336586714596727302167650683570894256300212710580026446352416777185006606160698623376770827485084566904637415661330299484825650794706402036335506068615735801536443586412615677626229034094069952731658061500586147902859701720246509266757176136372492426507557787926962915711845420603255067311800417769863597280036247589119021559452148953992475317418351674903887449737659621435868967578706690774349021577192647478858944655833916471156373812123046549153762687475058343409245077276643821194683508413854432098988109752395017972525818444409610056494167861522446573644071357950357396253518892134341600198959554843484388007736256446703446678614039898212650544195957776807303471110131458202773683423513496164575417613929708981309390556035061392150798595193504148669647755233527005929095603597890350926735769252602711861330636046933207913953772648847154327143353192806403704680268003116172375443393680122277213933122598382807072337045657808593144972298694506482727995461848712791741025497912399025255236345664203365273514884487260208156247608472555866169918753029630110773189089641733594150685550563420739259092523488654612891329108400474571739390101718540309445200370043492370063125750599928301362284543059228008993048776392635806337985814467998823496601322784769241443834086261580819265579021218374622167478876041442561618354401218150292783871917676143478012853110381062371088241528546068926834724305456092103724115501699371520403859239519672697239543305005277089650154595172514424248110540312506437609722684480927638991388876362411298741364600937531006220234960042979579993973465605722210262517908619774130557727530742144694490670831266320971159108603818333412028524393136841881762697328760798030403323682799491798837524052956584049726490234828547210420904460122796264871281482420843680296990707694974594492393618795074288457091666016424590187757453258150451357060162596964898250593684106676062789916982548670828897044261827247255107070565394616706970416236606323662694923801599984847788502162415939938736115464072625715141674907913634869406746442887311855714955841945756627289523945348458438267707033206439356895913509105595626861941802129067866185670370807154476451433018376710203640920612793542232247956817193709404144402734067912777215008037283807496291386304380956678589787904261015708115695352344979462609084767022206325072097753276313519371719372364348137693462806290293373739728449985679759490626835527891896561554586973418769895544155217258555555906005352714915449336916428644856710074355601499722789073056884661427731370858772537811455186115483492809464428021927823694427552984496122929605274154191627931125498882892112392337249741909529596467998365237681514068753136474328034289535898312153681970470217778713585251045939356466676819671663326206842070999489918417129945785206649653848245719471553075244915556716542540155015544268290064697598838983280015095188825980582498275611104736743989345710792627209605604828676819049817557841582395171046980720240122084157066887747209941700188382879045648736275619237272425305209891960947783708068686810514257582331498264479914088728376933995178606104231051402795967089189127849352075430146437025545242341969995840118406592388120791483432703565967190782644698652628003107839350900355649458072988176997033828911766798755281860406147314904580761471976605835142985831285380779687556077771073755494269224022265080860740717226437164817908598092093983302306454252777855238201335226005458478967417704978205045915841011822629859283415370839931659909219890576107730779588646518830540056562929609713472910406764119589893213273326029204714269276239144867119818875107513372152789020525416874688002594855986143302877861277583815059329723074681243567526618253152699863918339022223439174532267611209732979481225565116420349138806762344983962333939179891532803664041675689353063858737114087944805549904752312308213379698145986619240020831141414696486262467872149976109837849634773295517834746027957813402988389509241187926139786644958832322449353894503297341176952672794635763705348496745922057568158112828844636245841201502482394990629542364409518170419877177376161177717949925599640408413127516813362226496976033182000834133732067655670919743315440882481308718453932813058168510407241418333217728695254555548570430715738080823359749467063301566327252868749198377676317405692234926947717094953136728572620407272423977590716886216889793955651009765437393892495043117970347413974706307680893586174363287298387623426645897095389384152084848993481542840592693686173148779835163742599324001730301695204704442060580150390585267968070107345248157853365787585413300807385444627898350975710153767201238339167333002075668010329654347309291736268341500474216040879262679511721099408809555656748302971431417075642652446988012983198416068661120236260902007277501687202823298938685715287831520258608934198723819525151599214977400465459769556660937165262538972699902690027361769721999484547645430748689758591768931826010035194648884346073464578162842482165566744970790401596992664708089313807411042159718396702416605465769415759581578428026335253283551208640243251977394092546545630024584273584810587116803735924073132807674514009025133748103832589791080776955425974584060305426752693140479607729877088917522389239237033244543271297955604409776139049434787737759922777719490297860247465895747287380307357571812829126376681602638558203324986289228061283531534256947736070356055449995752665196632258952795970259432436594721969278187808002777816707958307300167616403796451591518660026628046208939352745562996805604482705902429097038488208225276128144987124453347837430709515530501327115814965493313795988109935321542707396527098464144778411779238184269007710975888404364118659484862463804427234719702088520320526271004272414716789719364894490921610762740243678007689563923928172915515929646464331785372875241813318995037768386219914993997654281363070436585966562305532110715809290956915457924718130285235534408728308446715033655156494853014533401238601923908084396391303797276682210630295689632622633532422704692901492150368103829726129419574693423119922662474691453592306478681528764998125772891593047422576732965480498333107974606397446980771555476256263792648122625514049973526327846792150517327539522754991893499448157617809233333225424712421795383904254241918845941941469128800012304531960980069293451329884033323456997220502831436641627004164935842277643647657220516417886942476929144670510614802321284142112441629928177482923430646060765416488173203173948819867455569413359374244007575356033523685938404663680389594749884647801425056114461524329395638732606650958601494007053521243915255568220678552041085700785291408211900017483868421558289484701753469263524777387746656644551182475326105489957048156847649452908927579464711238894695289211265252016705199701669042088445294651198049409174502329194598603155277764112761131010521123753746696330201055885793833378395163695111978466909052727392025578448704715345619017433294261093781065240974460325802684506956430411853932619253301395350382872013768399233910515533691442193907798548331085289351959141967025454729118825386487222771227463322503198626225542555672968366855071750416207170061278168300467450689973159846082923216526040932282536288496986559654086101133191644304350592925767644371228194326091053988790219979098301971912580738647348912631502611632594182681443049372293972874944980374491053777462775539425307333968823745446473785768120890246763885864696555429520966069376036463877901673211734021180851538359272977602945339593706969877984040117878212596205083929517825990163057627486762199586704166833276286661345667442887654017932156308421585584625734858625892397421880772766668749656483885968365699425682986112564154825786293758566059899869931473684601740435226142276995875393376210979088159420555486209364720660181470505695525218338797066057293307095248007185481807371416759997361964152270571578969611347677235433828812775220147042622768222609219321422282966769943131131831103762470225463352013627555994575651656955033889890995742477682442662569897490272339099713492134260999235441533393522602269504005203288411461280826703541128547758074147739561695142693238950643816400183684046688213271188476314236843613997472615737088006786568539915245943700078047016811216122082456992816533426947666354940724160124500317999121504894365647187717274104368708159330506893052682629972784980390885822303619367171533367166348171526265388013873396187569461788390938931912596856084214472812052089310414950920817351020270913753120063157980427231712010759634642259160581850229893735927158280333440208345459193012229750279479852798030021606962089457380073118007852166195696463885519357366305355592167766353566371004119173549399631454835897357099820715183596952908874253898888677646954706921275128064518952844496585309666994943397211404150048652274056358755766623155180931238076138403900982066740982783527422793615146106377487095128628210517618821384953589402136999001331851347768974282472798615414585326741915134056925640954203832661874345161976828162195013020370626551582320270835869570410457401462580791503038424066044090646500855087762576064706337941086599867372696124271169286086647979461307565647670002741595880746118185598964229359346489180103121006811636934741334017605379375589419886813423351127949413027701673306041379846231972379832389947129393674167387147606466751129870857080900766798501248137288500833070486088648608360596004241760132055378603010243640309085954308669883116501136315290909901879104188262375030228865025116101019404527248650459349300124701530332166318580431789943370959936089837497239995235334353906687365277557340439165347206983552724751075718188065942419909528896807006289015810818751474689825907247175663168215682653464330016966865377059846590976674374077848279216621139586021633833905408067313670212600395403047021503837586990127686500480227637952601618631372037597334896326488453297247769684592695225183096598295310033942453976811181760922916470008086118009666094153204839812811850939457527670398444375869069735143836189744699776017384497210912508303980817872892157182655008254256982134868581253690499071106444202706413320608246130111560681317311928085407978920241147668499046490394304294342913006146582802070791936648141601889147525198842145950210086939390816126667673525549511859542441184763232186744948231932198816458374851367194067038536075243599632318641635010861971371621849976787360833458911388347033500032530985661067240544058605799538021662086437114508043250962293568980095328255021618332991966432783525548610836739244563054494331706167054760555324929051204800539370541491439002782476804214741703929786421893848304573780443322290445985436147239871501693654307222650769810242897027470960466049571698612345271436964732118605404155423103393939204540311053716519822769514617761822153081136837621860904559476244878314159809858561384699030324403886277266533849804505414646468774518235360743457830416243975167683174098589109068462313616603969508347643677465833132786344901641143803343098238393155296768692556852737162353932159760981632286503306763714410846106691296229417078875096120806514284109775928396203559625953145639077805363769620140067082510891002702083770399530008213219917664570370154705868836197953223756098745844884140657060283097505523171354487067951687887021701207901348110017727481888335613410991875052921354967580500120999053566587825203285615890918786751235967673825177564516254553105009720653170935612162321126111704114832574702124684389836967023949304731359438615084348622179395523880525183137138718445832065318813527621105158587204833369025743097738795200788752576970439142496331749721181457671587098505401822861145272287044087039566190390435717835436282756722033590280449477930112524077656220989586514982793832936050805414100736435543919829073659840548069133764536758722252847340789246396015110273349602127796832546089688088132017881329111299611794993967768987718736665899349652138874045586626436476625564267119521042885072665279449530245126556948213754947266002728170869705330527844212449993239792842974828567150500913262782074301073077510794837803185391600683849579617651592861488308850636771057342965613561555599919787084605970379731070182253170209652190769811336792686179232015850585816887193987092266138993577056484054155789344732738216302915719583493474102586100662668462634377557063196443421067489848946872194700151111067725165628260898031189380801313821044032165802819517424749015943788377584126950020850280937688126026843934898819796069956399499936540867583517573265088466883135422370813383505033638600066036173679844162411192471588833232783787674660267618584920777871223792146233367526990875408566938873001439218372387897585012296551957913348536147090255488501328475175089983995925300799453292937950399066037906449851864694564328665599909735104733475312069412603217876465289216107068619143694612503875826049196398974728561710268492833962297476765449690223302945014303689410789542297117284188139040310411091899843374703715770418776038860594272860219178016971450632826414096601203207840316573388942369461247877402639211398397890061200671494859228008853176159583336422012563100777248462245066406421959560049693052467609835201607974714231479208405116168114051360426830600000215367907915751967139467480588769287158830513944390091804666974949019474660901693577055811103245889375423451564203889220125413504182814315305253697658918547534049106259522169758585236859945627476752668560043882882049856459192858326719281374425582847461921938593947718458544310218004778258169652732863441514339419876508072978593850500878470174611248970964635549344380971652819364218419420224230718411194882132693223836887411128947639471856757649686668175995395080468435018925572854033697018092567801213088786636594892708369237760960343838968652594844901858755135968412757463175541330860669714253201272646222876814800442290134538733388264457095744049687166270447319256897439660236113041236592830539510867209493824869075693576705779391450634779366667796643293209601529426855979065574703100960411748994503871329394870619834291610436133374600636854495884641691889456138203635863759500617344404650442248377906222911707266457964816827472863341211364732732244399626460177982525104261833366498325065100636702171941364433671214095191790489636914852620574555271935626256807063991853168003377400819874913901079993972725252143233413275880680870546106130205264561086853668455169745359271507886713250337984514415385863920309747491993407721450310385573309638092744598791171946632436949433700060877991121224075391791913273998067080910024977135220693797704113281792705234251158953750495579730266528200934028086025419363490348675790012838844088780783464204729444495416062008448677090997959920202506425688493983804205669794441973390743761940745746202767150853633037288380824307311901311591676932454865978176984489156095532601988480907145987427253050057848972923593152252008616187275158884411750263296329816701976410553564279236665340263470844725807369432806181095650243223911568151165062472692920781694465214661900545605696606123778923353258509947772050532975844053659865567181559779635229423342606037589808305413173653310895743062662003645372716567004487252228029301363874692315473183602665676035990621160554725206969899513660724163194879785892526453900619595682598868096049733580527918223693357413469229935545754840373510637736473319355089262097626977798063078343968612152221763267523221821318391752864505003146382355261372406601210836847537579307877195807756205848369417855034528438941482194238431729083457136847433433465828183935237295005000072079017377150474380652207777742083234128298010803184023185320270578479943893461916894660525568126942283693700362643914288442308254070866266827705039197266403871894689185490251779874583348758145507941681811069953612471938579482919010782727211557862445908894367802063879741630491436786973488339487749306004849229920774394047771508660675904833601000854819221153874031364738092398427599126408621138134723838620024861796727299639474856945811284049407751991139214057095544646663133488612604229861148920161108069710223988710243754486997040110610156524937831110693158512324894599820593586440874714118038718542793579291516506836287410759886612131787297407712932156895215760450805769148254160168543022706452504886159675911827542497301329348526354384242699361505112138684664540063331036794552488770986581771465065750662047276128093193617111263076114283918146606861827488210688941067480305657876018536284253018543061172029398023019276486845346691708950876218789386303909059623443900973021828038061091260199220077449525010197829217613950358925508980982275112124586916774015041048334539173865699981651907501344092295298408328168627945687925801953803230949874293990380024330570750910871528158196038804191247371479837863346651625784824846621665694163014866638378708573837484981974252977683156913595578968396493249029111636190009669497705337266924295155649903835837196825033655849845954447524778518251075360480015362852238063499574833907193035497661949373342189774594402898630665971672616096247946514670503959951562277376949333370484187479909732561969305372220442214085104295818636402570292617083266123018150625001538685027352356276557295908739323957635355133840372126530816709469023329159159355904139777017011143860717591022311877138755585006392886158124509444323968167838215424754409939686858155514745019003295903796528734177013677929430345649759082750943711395076328463242818455865752808508915034091230267236051291436279029706074745500828154650133644506043817811920832863618592995406730849279041344450206430021197433526085778636199544543775338199186847040190487226070802626715130312998596347724224145026194193633611037828675766258100311479337948722525812467248603414165862258646864982718775725725673144029827702128889490757988686628657424567684406303180607604830941639917529772345128604592733855185386764021481791352873869288597831440533488848245706343478024885590643969507704765933046749596334037770468586525487842750319376618517780455512434264677576504681212016641189235579725345795820007567700947588865800616808694567557511519630406376113582820703741303104154893372909113131611636198184579226126042022679793892070778503645710189085809018474808537921402798610492129115805435725453685567835187747541008075063704296837746440294010348689953509937766241074272125348928839769232877442791134683555434338773104504802366934661869027491742926323433476998606660635952104176981680432618702471818126203446811754733305982611112136699474509472483646004931989046188060844972228878971271300898218410456776184132000056340347198473026409189903432124210602390309338513279226622975853789757154728603452479967798177712144816035728577710853543887066975855893815449505438134098563716990687451107989098603013600624719905753568200968093439555191125768756387652278737174040830854241547382133977350466150085099660438559282177433096125399097934121524365156877089918329785275032770378413148101531285833398752375534324553750941175209199967886429974070587423863876621246268953036917302739518545976984852570097674784081223158390982323617287428418667164791672615849499490436992427311718101436558958286591844308379614356432467717381156394386818892929607156344433999586816370152414211288685074454030744945036391048208957791073502629020151509041274941928709465478077015320279353161699575027494318781380863808842032365598583807157815323983012151498824404311467754453947264175048512661558208248010151701109418484710853677777953722064434970664468346790208838216712735183421416386463712549129108209223112278919974908721599645930756322626670044689133142047282480462171004486023052936096064653157892196361142086436468322271515920616427708230219563545547360670267700344416578822848295378988175793785681057158245706515983453690726655383047191230075422755837161930684424333805219041025758188676551887851725565036647901943326214274811870763124691387914418462880255136085069829435869368691498435532628697863590397391373217683774989625645800652214789563953679473302339420502842795140077574117384214761769013606974660008474641380621972552879154963813817662233522608699437153215255093392610013644261320582920496321049862126008072484948120909342467755146994088293622217637698791087243381101598851406508726444427335512517537385907748019098065995253779982124432947587603445383217853201825310875774440811072267012524233386180707660641455055420548435253804916404744559929890261956226320646623016432318181715152624189898955483639771227839997890075801901072101414273677266292404307347900770246167682550324268553659891864676150204105142303393285460001410352771422645324128929856236814861447275950577195187019682678248533018684345850283532012618470813881149765680683968104995026887238642571335248783136231382433624182122715312912751774591980091004537676916430175678713676039317223601460700929329904689207373890848115702856924982089940655386358972045272854749412464512909769329297115370843259273432654083045816117043604516380301702129770916691974246375768967002367074423205517039770467396826570699242768250700955087726445162838324557030589637081224165093339836254769558292534355401596578669627551491988585108750423502498566403583511725164383555344586024830113134377042966441101021428184765823658533654924846882462712032947460794622334544355101916724715852716310497508360933514001345054130591780026426447190005303159655300498781986097028676221679386934257938902922330987981206366034093737879697523827361950926755162141773147887934458911320740144966715818610846630464729951406627161005923676081009610194877228436144170326672966178887964466442357912778262960800553970184374265771923791322201165479080466461616132574892064038460616996426378955358909183727963950640604250476682230173800462198899841005231644800836038085296107855591329292408004003811047500944287997228818459925076489713565307657422384192658855135997051027736265148691186095662577696872394392106769839539098847395743120127953621536168789504888737388423029495465106521812716506632205002722744003453807837269502864952579003205549318766452068031612837944246179617922298339994693505112228602746505312329046025230855690872069517998889855139679552383578068755546486866372521477435610876026291357704961291983801322707745956350230157081843245387521548454099749268875316025432720885071435582519712550582761332403199186687818016262726935324640895220821534941901704990365720772061618765846192215074222888797232108172567303326700069149310882895551894794490517841469006023421605687891941332252113928920766967226589335719478150518695303006684496929736289363799194895853474276485130292647741220801638447269947258021030515153331730588092110100748697332823919326219454714367681996450542637128473716010827483323951788078283618097350111466347153212553470688705045486578184074528277625565867531430168787354731484186793140734757044931917178432791463029080032039691410980174207695492421149907001211477985089900999158966369614802808564282760963436542944042506134000972288412183879773037086728971183458070910977879160154725776277394591954721515151658026749085939033069341282472930696671302038137025734741406556390940945097297667335917345587112209146213366400659443550074648717001084132555290968907251879240558550034835848054073646031456212748969659450010827978694646761024341328994474757055119995192019074162948830947070384019593207589105751379967605798878268650841744781911829271710740594068126676593048866393138525290478795450672959400387586006742293137786630345517063219745363552144627064443998896982524224954107447574121184315835547063668511420744656509249522914899297096030598047602333805414176376917219096580780387880162988781364505996692262205039235177784536076895081953893595975507412743654554761612362081100628465467032619484758871683931720332424490955271854266616873456827553744923883185924377952811919619320494246089041464709710937725985470799918128979176197740243434071413401651361885755783139456829848485252405043047115997386532518839767337230334582995414935343465630640173749294833354225003855775194695047499529273049843680648864540035697643298470478653301261903343431252538802939706155168849719308391413556199347858176407525913355304193405691110660669012693048092144960821488918898305625779589514472231214591506333724531374274271950980847700829466598099869418619281443966946429242310519771918261894202317582534903745876208409850058875621853563714577027445763025023167741325443490858224671874766426658387949483737212399586419663176244032240194528245019995623683547844210193722387562473806143705060588936238073211392809036868586778628237515719440070187903895341433678016365229377712564521899160852348396063423319440193781425224395892063652378654473080036044587655900777768195282363097209064797421828660079432899870953059551184203755693711458316763497550858768793327083337119893243278664576580462666872562847493730048676562480566925367706729384711278539366975925315383086036274639781427313896445818965890003841313661776910578531273859568012118648313713062986279176237020744734471901049722572722576030554821931417878871765689431478380271775872201305409186388488829415228410219561113627853792036324242634081684435100840431476466371633360050165272260384406721830852238404746727309225369234328023630862639276245902548945344580068989540411494222765265338341671897978089309969411757613141782175784970800937549012004195046865295909992565268515925220872773589097692595124851932325063103929683338110825805210177614080264143083622272250228155522560161367889523935146749972137506159992071503350776476489626865559897797522773997517357147470016468884030946408917761672320652805119982414433096891654611571121941382264451037599300707547466437987913159513018404596782832806006390482227123706261786542293623274827827902492141217060266993752617761856591599529583565950763517778736068724906044901078544243874180452219792558124615147769949876729948451543453749226874637734604478270831616126407039489032725261017010419869596976553803053816240416556986172016498321349596758613967689319351686682954146370426213742058031666384322997453727310518548688729219078663679385586829095931114727164601014662845251373204334376720276247695646645447185899362160822820824261506305599883441945709544950068747966937830018229284517551065495615265422863635119765274564863620098171002963781613792830262891997921483942147147771810371473132071326820782058058139903241470464276379869705343284373950203158255432467675146162661402099408933630844730328736892447768567264683706781827678215683295459596199563603232183670186060513175153175003171346634668936618366267197423932091883083760932060387246888164901941467015448409687548376318282162895008555837990504249168238693965176655632091981724194893171743982852090951898480425634427701251043483794727057722020090766171248860682379254535069785724754288652603984018628615642330860905005031039355060689025149662565695254252405574166668819527181690602242905697664294706712508780502145890803728773835173359922839604850350288617135845912722197211915544518073087758207526805809913825369936724449573280603830406591296500367554205830340660941495724662382243694548708940176487392382073154070000665896530699158620904219366000763538717650023161542989650155831665387610997832854350378579042659374644169312301419615455034643464054983612971910404496862101288834061235092983633862022953781566060550583364564323473003316790046678879589406820887146506701839295841453736636187091330241870442651599263746337059152684726717937420323913181678774840071113632671156297516493863536241909134927618775355952644577763649128832183792784099032644103481198733189412537442054164650080273557513284542436062602832860607913353148720559473948878487042232119170091743162170675499144777256990168305130872800440026495216757108991827302162107193900692726834955524963251260348104991833018724976081207017642101048978225607820702879554546227572376522993149383661742368835043830339977495003978805807903860427001183317905219806413334188560768393246501111470528458446339321867427504856859557953925387466507942472062057845169196945310262481741642240694875534728057590914603263220567449586442934477706825496944013841532690615663386063641965633330460831641543825046477338182694724327886528420568371895609827646340349188746374452625235880514130504708069056822773477111565732640033237875937944780811348685092531902447320648055005563155784049864976600651788854821078861446738986397770116860849927468898808102659046686070269925580337660077065090917906127280679398723887500432590022232612317670826688734594964916512032588059381112060668909533733210012704989146839389693887410210433992230892602913870867205430318824246709075046594252156322571553927141461945763669664476441296836697694922011297230586452018655393581721539220060365317435267005232331263149162468301863595028798413967290871006520978339208498181862810291797690392774750565842370401359953205333442856744347285406895301370000440085046108568409030282268322325407173376881238555051122112848605113175543241615247278900571016700349981961247390865750320341696275069716599050633215670740389290689775960325967324096017561124782409665513666240934882348980795043580164286738140085121867975623858601180455476545520527712786731552450512035279061003749367850298416971646651117555681139089992075467445685665259435551635652135781896448641574602818412090226538229051618534550195684624468666495169584872616046897794699745973078823368435320622671257275602882496602339765988076344761688469406752140417085347922848077313757152588255844182455033491636460476804768024193940970103849965929217826901800556874042537831234231651090516068743764478313607440622184773224550584307254577031412550353566117942017767104668148163183225176004356019796234282544758546870800915380801887064581085398601441278927321772897568433710107063267622054338720199355973706515706326961057300255697295913289314001058511155554614490219342574889542870744641443577561031912571255478512914064352665236864772332555846174819073693354085152247404269310958510687519758462571141935329999264444795056019350192246133119690382608829752412283317048947358210282163175678122450880169202410260372907039151894243382173676120913964706168018221394320592620101494706811110814369015669253740987540681327853230678125278828404630539253362591293036705350783427941809588865956097456773113452605481274879544380542631239828638172175087646931303173163350398564495132001149659415616599448961105604243003373429652477148390179981977328604403476063442270250137417929045033293773851138233928911258342897073614650830733279475279822928658606565271708600095730337712142424847788300327820717541374297908114857306241001689455968787197283931238017979984762664143165589847124314615085287432703234033648325277149247291788564288125775229220628473761954186487311783522137757446749752346967137413258204496892283750863839981571798845562158084241578056360428262181583025738658743971608122482093563044179992705865026090758474625566571652949334543397855196524706776148170425211716653219912205966015736717516864497050395117018216730293423866799432450997978785048173148267515104379633126795672848094154975186788154121875975770216168743569640170433253970542553050160153409418032044817515080205174712590408921860977716261704235465894174838638823301998348250469498541552636448285790023044341129264001792472752570536618742692373503685475645133292505629380871205113258227992757056993711003424545092339700721690316348591524559250956153648678491310320996406690533692701653473339698986427574308394424135975367498773853205145758536967829921803460978273340433010075729544895481236718916137987857864726339928705664218920704079417413854715471565768060783272484486947619856106132106303355300151397794525442982966048792328637692444837529815675733457596212066509401342907419005264259332806246724794698617951401699657312412916135198942831038135278035482935808021026322686057699689699505315850991539849262658321230875072853184463186884874683247033896397350540888490927491434244315117500505877838415903212337216078974786282568133611149663452691028888941124949000804007611021716297850778493082325761071699820983194775123041610143774146874101157701854614057785392796008412745332184655584593030468334152677526366107488125818439706820318356292475650305463911507565502849997633421312349532785679245887722686668672709981812400361720121306319864385249413279182985887320219125893668552813991036838624143658434193277842347041329258477389486693282863514539793603613670327597251751170002655582094391873029074066271706511842644274009611746929396823098404863131872016574590361775404765598213355255321343538995443771037675563486522416757806786042557767764083847039928986242833716062980353828939931720986365336005675180551121046506964738559932306327188197704735124326102060387447615652775587129309861062071194642230360534798305917712785762651855573707373410076168789192173502023071340294413475794632929620981972733167721682722862995871610001486537162854757589895445020908047170989732398281215515315738632685664555039008828004007456210262941361775806324070068054185804753617095374441780299054534650858378977733589417314311757057406672373078768146511276515038706567511862039376974754594101059808749018010564553094738271965916593769902723667731814082316393810388535891095907085574185252575872976544119463636498455378280364975348917972668250685870299725612142626978848606080222181431099697462280823161611834265938001013090457317208866038062320379766652341542890374499494448278172826472635352320912626558952763700519590851944520865776343443627427451721736949277327352914662567708471909296184321361792323022247663174661658852299151755688159314247342486616300816014791280244067488337334414154947132351630058278500880913565408035358030910257930684309272923574016610873091967995903679447530159501915346168474406329821296109627061069779286675376666366246669783820217738743452793153867279138584199595958537749398250191130809482865944541576992495462186132438123086372943423670387372396428168032490991013434790233169424252838888807831684193334740546044128433464164856429237369138084616197006141099181943560102323009354312000183408277833884991976501230974968938004958027087488252032763553128663128344436170119254962642267798141470163461567547517684908808444301391963295138970929289654441086345337245138438668889403866885526916449177340481439296231169767245898527414768977135176812502042319636698048370764723677633510890762478761456258219830793702788211277758695460281628178759940746471246243431467074093856851430270329265078407793096883021285432964421497826126036233000339711715412136996460773805297781204292329148591905380272662842228494235412688491273839425823064214143718695121949375391384675996564419273384835439633217311819961510116420540760684694009447076382144532487898344567787409628122156122854049839287434030009300310948260454663384515488550702046475804477488857945900459390193532996133329886379877225097815123750321086085869250191193934780540949466206318539028666602202033744419393320785427151153262298761817805885311973290015681059799988139191318951331194223645353422333326266970745709685162739492499651531775789371932016780443519225053732809912449155300017014920228176811995215234873844295748599000120685056028993894836856329349510516650611526874115133659008932249478110662344530700562404071373637107297256418779941410175600045872288052035307483543022033298214202515856091725884489132596038333733058660259884517324965667608614919947529959783711995411500381884353687962332375450905630595713074940691412074934791605245179736349801771251409186480505366755675246757664758106288829819827146858230049567943898369216142579421221499411737129804002752191491005488239299775060773836328234610978074641416900369816723490767147082769677408671194838235727478679570210565009541364806555110748553198358936702542619090972582593759731454974685825477726275205556728340391916728226189481652331817287635642465380497472229519580600170743548809204017265921917198467809451109037974098617119996153864998059344168681743857325982788362529171668576204862143866457119152881761287979712730134535637069403929812550373066185256526426104910718767076488598593476897158767129409256981629575119978393373828934696784687057098851353620747779582804957131146012322429148397406797724869799510731382763829583866842439934430562089266307852591294231440477775601725912338603981484654842789295979344347965463765557458581544069386160613214729447095800897096351721122739975132708722177568410420509513288103372127174013059277890227628037094558865078083865091424004713230505326493977008201475983015872837004699880064699309809941232331895289832597307348414174498972790629522288088709549401675300141172864098319646865996856931310351006428788623723094235849631553428114945297554406392337391943088477567253010701674108773900643400935808208495601208452023473725926211121094856132142354107744189508436354652299969525099142194133018635801920921493135328761926925526255547013879085403858416537789072747631303806736795291352855866186724046185190590579303141755716551190150743118603097080994489158162403030291619831612055852492347504975710790220633355063725799120367436710937529234330299934347599159705928463661430403977565001419038594489893843783566846688028418860236011271501619358312522935042393967703345325618857805070030026836841833667813276186995795271866986580803404172744886743646052670333503675807676025568041278204495923497169084734741297912039685264939802734625106346769224647386694963724971859595794915811221578788036753923961228228472896812183397682410517010932079314074341456596770407384405063515760215363026481508015490110195918829440298074881749321483907135789097564199858716504530218719993141261837370273984799410088095312593304680548437590288610896821055527879018949274815508354722446424528907807422982300648108643623162863668934810473008131683488064523685997236837432585318628513818273931512558412594017091131389336306023924894034894213825592091431170513700631025576836454928315489378688079621817243461533863686952997080867885969278333979293631101428359627401550663240070728533067905484278642018906311178576997481315382653800621853649006871431300591613836851887115547778523503551747471207539266156483887377352255866745239599926730809424710556539457518944850321905957652276169082159700135670314477737053276137896442304630904921391716315158941680025110420835568669435675466937981145034392660087620710302402948485678644712723091272466468958395674485066014981443743721875726059051080032086512440829223388453641528948240093594423517723425122094712578760655189205322793905229318669224142410229917312363651734363657581097483881216114480514855579793127290669141745001060625929960326470942371969582973561755845261210322323753162423132969068927198692669936126018261841239728045773346048371364870885399610111948594949819663417139414641021838510157012861118109389874365788108671953644626127495262811230556971657448902789896069673485057954754135388843104417800524043740130385870939252001591981570570687670214540071027521853241869073566566033328179722800142077100361826514726546172369287538354670731247881380787390753388201714916329158691207979169584599598619665073693064735675985907296673976650467924941717465018895789823246277168772512414333646387074724510671780425347363179766023893746325739430571927838976304971531266909684630272201972913107982441382892241481948459962723670436146807960268700952890429675626798771587940895399888850922547613531272552421839021470787682510221450356465398871748629645857907848315485718445568402464651767440505206309126421439347637923173711767366769752719121215947679364864626157648257052657414364393356521347493230537796154640908813119735574750141698084837922400349790003075455039375566540746783546579434568559774054413115797589340763309396411038921318639150330952258734959784220819727480169848411489029088570799474537619848375808152744185427438407915689327585752084377830023352812178025357397803496178864200717962867693430439999567559316557759974974093732082881282533408910378299147185109044761018657191361767341930166683425829467528117850749635590278779083284987444900940394968392798888994273168871093828179191130188105217021724743873080929977983976263932913853630007155346798176324923005490895436199154929111067050989123037257919308970730340656628645135488294138153367237713022011928217560819783472479446389498969337232009309994218220761907890663245921846107562513762281448030006375865354126889714632755425929159597022509217111331486820127203623117812348303184451772762023291121476157935188506109507577548279059868632244234399444838538903822569720797558758926359130596651649288891795238413407790593279526486820688006723608058110082665501453351367919825087874332423096129540516407886579512871599473772142188845894384150264979651863620476395623248796778664300131021753913704960467819819425275196299495264830390152482548846960565830823942409338942424070996140727118429468866361289856888507963308817330545176363529201704971406935231252500192808629714462604742181163056699242854185313717051250245926690506549149231822309424247927638445093716121229898067465758717386055854687097006531921887972082537057203511476873841688553952586729155903455301952448094996224561249003011477304932478479173885423352697859373673744316056989922569277071977344299725835198185751191084710952871253688348293281493364022883076769047171531382189426190068179524388468880570946326513889844790345865816186873021469949520614300519970578603215304412942988573622179169563736977361589230815154164417517907896177130953774990282313257397302556555238891192146248666807136727557364494163534878756145221716059407850237342605476359623093162394160802997846971677989808796540633928858215089064749886308805138297018504245095241739158745904801493025203127541693611529113127472631064265791385180980309691238191199126672873773628909995064947518550227409309497182687223589028627702001721739745243960283453353313168698575656512445995920075841407368161217758346777749456020021069171434723645072675165690446982741548272932057621853025398710496807689276425975751001773202257760710101140072423724416605851061930896862456622345100773015257830446558965138513426040070233314486783122193053161735670121300169720531484134245389239493239877956444253694473254282022016904109998727388631089596453110590025365771037507811604674402087793519724806059618845748417378516108741635248369208952842421616023056542726561081077806067713814719940858805835725490534168078246158765238520231292398312486442446418283462346177981803203293470167554748444256730074861246687742809856450587083066522520619766679805274822031538038315511398564054058985660483632241386618980592718159565612844159854451565471072618531138714167778687275207716358866131922180452057483665093580215535896168597621966507146980554527932549295563978849270984198786329647176732229549415753515164491527608536836305952781612044542282072869513534187501188039196514097382376410905967241478050305319574204858126487433216654852914879115102799993347043301744547728908123540044015656478601113818745332422340419018419486686984792991823051919994986303849146165608840312205962177354148514708182216024663784796109975438893359709635486609642467388260369564340674353621390437080916724090786449867934061535028299089211574214015891828258757608851769142587108433923718545404178426409471692147901834217230180809907933328351529835592936587570883886857172710313773756409027945093881665987790117329655337122454063544513379861092572427574063174677380734710445268292307598302606606099726025348970494911403534946503642132959915126605728581903186147442740451548515661965496804551085707537999347076540990618845644272335338371284958187293971799524385370222984005686992905558030472788988547274159387120438451788926195513645422167508872164645063516278374004900372754462622413238975576198624443202632377934058954844966483986060421179701092633499243253510813053232962428869699612281134318702532091303630185363612087303493151977078793733725814096634215023766771565022470586481578355707986762962446938010155312343025374015082568311693270000422184070401304433042084332222717054839418762905735779141883229307549484181947799751362156463266102881322180766358138224340801161925834103494175069457505465642795598542245470373862905324903624045082677871617593056303258726643444475676968001528217031618515720950705958764470100733148653112808501725505685761377792498423092875814015939634250934069029012722444715511924920722449181238340670896709341807679640858376406884713528985446113394652378343192339013926344831572674477624720354880128156503434901497315226407721375956894601782579617759861223828071313553434433102892279093403006771938953966582962650332544155391243532231385654720606754329819245787424136319062876364256537851300474033931618476724588293122393460108502258978578993580974416093216364252247723736619987224754409087853772613202747914213186590984549979918784635742801996597985315284054785433939114003669633512618961478753549988472675033833497981837933762320219572235171026689229064817448223597890201582572080551719227643907710736918836512880989984903032850307241858108357960083813827433265677906587932561802196687786337300636514565534832030685538491403913141310914978718439252338707725724360340912354922561113327398346015952825297530190415338179514229862461493561208103185878829238697626548049224697241404661447703584400923814046216729756670014631040936446583998295772117386888981308338412217328420704521333058851196168005684291281397907530801968907101695962417775334923244894166375868287832971769722969958497562092037967855505770099822089451039337263847252811158310780513386460718097054671640022416095400184585854917609581599146068949143276587556684509515765531614017737549202063361766366863356855204635242852912424435908349444866587351014432837655023447460319449997471352945093887257032567453924940708852592812795261969619229533689090860658704739267260889858697175958826846471889116640435339328726531141744253370783528343142105977014787265478329376180883468245662149368972914429546494186431874080268656669966798336877194481580947250879002970585898503732745840425985954460193418286492215956249301271364444199483600491123404813910847352789310065969662470276224976406895512113069981181542111018783269373799594896283937027203751040347974110176890433568523723542623957385417725340976133905795270435411136692396022796278471905171669325233780097179263519421423174085997606472358079000136356794220658971819806882633906259507265252477509167273128995192214981316098623445383011000730179758100829245117945465643635681464310486824357020918870104866231366385885269732669700899134698594835666912521317181588258237021017059985934935769168041457658159153578168492412507372451157996420597228641280473404815496323188914057012444026262513832128485682130425183441046020045623131673846218240375584048207592039403822495519941753150070396174584851689252199063193347054807284354020398380853748218305205000019001217205558201689591806130306639381921706788302243209709660022150564632399045665146263809336610224002820936252098428854007360977314980514303501560866564615178560475978126886237249099791846986153451924914779484209950854475612672459733579634948452527284807951950731928700193102727597439714344228161036444310706561827075745756281066815716010624023444098842110646236313470779868142201579237187443109894943473629015103176037309020777653130244208485805221072130821278993193238947971046000776360991336495732966781548619631893635286388360864114382708810343527795160732301620071639861093669590571862339962117100685505893028085523329182848188388582822565906556630911784770205127583078536995331956872121396218125388729296973245135478315997473062881082635021052602736097199444155110764639847743879902313723462788611227934449218460163917902797265806774498294424935405483673365772541047240989189672615752798919460026760534732787237046186638876911090779173525518221530375291947184210727121940080218605580910232930833902142004370974716515227849713965215308072790503624838652360099091589903178141714818945786018784844184709129688114203617432059074513688343120350277126761530670986110443721206941346362563493547163889225974719516489395431291522303832565695259069840800509257224021333706854471180722805994296548313213059612341042262146931528120105396214110659796908872002841534542261559435953695938108738105393894775789152821300088685864982773101734212676074678022957724833943519568515165176515560471373681722633528204336367427712509208445480168509478537829320189963446952024869155723447928558453186818315231594862504042498475462132566164410034273636622805848727262168617721140159775851986917915460635624378197877610504796566234289182779431812656692097651836170103009522399676717293393751415175375983108101690971504021262606181606342647825987198530156541424934140907124642171125997319871379254895831896591984772139439145035031805975294628845668264869195705160455486089417206698063726929076705612784195374072958408341043512174116063533927668431234060297431340386576167930375718491150785849056165362556257810641315667063070986171980767503371332930068036144830583223452628563039904463151586361845815975066377267299587822031993887537605899446716489265746160690173912309301296285650244805383751173166038080430755128291118487198595015021449035457575789772553623006735219200828963279839045550116585150239474819865299732485470030249729966639933148869256624419238536089713386989017513464648628031255996331977250547377264535257379396211349116486798356583149644587633704372936527349032399764452982649997079328237766075689566690583094171906780950436021404313661575467752868993353123208359470389378332095867912100358508924205574746594121580872875618246360213052034678043998905154500414465302900779121675406965464440237965364797607409718469084010842625394503241564891499260185252016694963306714439161451061132758766468901685590007941643231652588198148692090321015026735460124917569010497349980965360817591380575581394026667237448731941863745710026729454056571761854961697566857874443951028288509676211902680203951779590381056068941559185839515404099237770649909002465108860428734371510557551340672756008897174468650189169129706663641891451219769973681150875938199338341765202400676503340474048635974937136797662127431296820303125631338187260275306724669468847533926031211150950241195279498683569313015098121436264450045424671084136855658499507240877555300465343123538297638138128744314401946005519972602020476750602693234005678433337730945060107751176501368623897872031158960620206898581831415465613147658378097750930063868152010215449996170297482404458579002446690213476415276081327490437967012133758045470570395804217015631430764708440501958832992308415481233614634841785268909995542466432698475110714322336483041073762240983402600599256268571885681753329007947490900313340104524030531851284037131418376436126603389148676198176600394341004486052260040320775855994868027151256163037049923028432873196471762627467069210765367230811613615481755977521742062593453624489209178959786744917549094667865969081849148751639736053139255694599894136431232859598296807825691169779760977509010305796278777529402361561369615495621612587795630951576003565836518573377422674701616791349259340471972740503813583798823041239937342628252214617475723603090510324108087475780340708617280615096274737779830424344351614475117351748426368348445043119258933044822358518849669534266607987379998150353928787023484221333770628002775629004599928492026079880656158543233141828855463999014716031870418260021898484575242216863568123989410601483568476099869403420813477412874194583577110902325171900452447188435297202007321585384063499856986200346979018299666849344374794148526609369283670016227785487856614729985507200238653715819260679538709223188267333699282707446545799718445745130548612231666389540380463209734359370053764758781392449578364816080567216097921867228035681099158072342346455581490792746832257753822207311235735442119542929193506167553703985900080275594446046684829800241980889913013962837805957567299954760253866039908810843357770484418872462277916340949716622382298999761873270192883585440721982189840936894082875265652876797052935418842283538013990230619075741358100646204696940761076204480730598316478123562021871045132829707855541854150090304776354937938986207314384759248586664117480800530685588749541266269522632449076255245779974413746379561410756634273117907450265863628354131618620341005058637611868103070169116624153639461684135062340947959432967384617812215522570245536467512071092368501843577139974653085018337747998279041664950404410995921440106486706445199880650313925837945935392262123126288089743391262570193571105364340209358078351482573016914295196603572347533926387829745530582875636414160784867274767619723212408821631011227578668648121513149627278678854827534443146046071892422531253607635026192464661998653337870138389635688417206573282644046560211269691295544991131447792518673218059290841086135489433177512969435767582136217055068348450763506682818243068356131304862444733818465174637055490448538621673051062337213106461037085530257193081936748771268996943129536741549353214654437765932130123754574023999063540658821807333133536697246497396676517761479349726284702710825450201086642134476156551215362280455634035995433928065196200526084064250444048860464515870652824754924694435008327441917017057467022585849868008612015068590784255662838028697348534081556743728313714151185747470608660973227119198796498560451418834922333502240445708199000922313559256503753766614412095790971790679708101890770011223926214237967461157860944187967230406449408380788269125612956918652046514776568864810378042621343472479334244946330179495077201737088919497335435216348421231193838223716954792538624927350760164164838955961318980105463942568504519788644831758128589979544830988911729952735518069928587533570376012157214598341043952603983915414521707724211116702912474805411670040821157293940233447502367494293539673609517792161648095093773648000867842522909370266032765687491708960628920955122706984808531618297823380256644154261692180512913885551064026909454459509312003219753240557727138525243098771787763876719549607126602761455879583806110801450652069489130815263205981889232285927171689294525686133716442013711701755852019344772538583562252217728865840813119953701725196946148200073969819364569865397336307721625448858824460839017400224082664451130991609731468496967137519483144205444104691178283793763056593309974886281719067621694065230985205640208416125744695244853625921713687299441725917173712766602522165706298567004478033549782416079438708797867433476969493255430942330258699894668229633541213241618243873176895939252747514366689452378051797147672394389504431411272141879932786982145666509203700967282393143428573918398969141439379037572110542047632840780511391978269100593232292121107051308518423559517173921844159620776698681864866625694764780416843917398218111864342281077900844856773738689999283774040446416740626490785579925611601339569537593480246870458635188175454359516756774516383483654845346171058741798751614288628307543755630482311978632103981378059472366846797772109550074155564305983650834353578895931717892859045575697988486383557003996199830200614558490398044417281279848591408650058675649942657137583746179677478151041958166934267762025055270572436365980385611068157546735011597523631538670790278349430299331269399521118157664679062298286495929046897888904233915481134828944426133103671485876673778122098146454913431666714147946946012478858625046830092556652989525459776724912133713919368269044498982928966254391997814449772530887605274823488517923092805788948224692756752582922145882262262714323385591203730463098677958765670722642873107302707453413791271493418282524224454545372896040399909127523642540072744860379642629865410186665097019093536458593974540625413871725337182256458023036880145306578518396245810395228845264867198902411149034243357839890397135157801777445045730128526748113090411966164525600211447517296619306725306455229917520339580102236388581784850304602112878097971759773570410695908352714554967487016417893336117872268523839658175709155196003620930178352090708904189732709280781602891725395098124849801798408216392859754232051419144103098713635247913592060299630686898460764050383559906314254534081644708780116720005911345669087025377506720292962156558926649574529842157630852690762034506238259549434476806915705789210522620500619453887757135828198046902894482476408332813493504640809747871812891148075665466421549708258200383245644901893021905447662568693835942043837099444864469681976690472331064881887142766037079901961252791208139216295510807105683949354695283642311200855418672634090655467392948674598135227486914013973205041857966167776121306877625785374722581941952549748196469570916338594944581846674151405630474316858695019680338815771649423667955337376226745521429987413577901746326567863087545349900994075379164223362598185342178743724812550836990400997408671881845786356506597355632298242375481338526866828260188697568103977870029859808197078657261666435327862821428707761163359821315733917518921347542887058075530540846980629795395618865708811344298437207733332910973893558797147375586955955839827008595802675583595891475336895534954969699393375626673756505401063990305891478398469547843557594936755379909297186932118684701891626445628015167276653926839262275312193195313294666561882026506620508913691917707681976317332202616877786205769257113692707449728553023724326659328864000409532692634794903003057468048530891841318248100928541713788277868416315052436977885529460685608226311242060256147301395259092082586319158953171216901249908858337913854516913324542646659826984611267382786672718440472245342672729765992372830494124417425845748886983974586031132696951201751809458587572494440685990343509864077392145481370352556714339283928159851051140100510143522786247819655121044090645115651645249520994117110310887406966321916634135495139435302284802122783439224562106656301488779799188438765113811823752173041044133714534568919737072565510135088305252332680520000849523676544281684080251094595591610761212375951592232534909442966537697882548899329022975858380220925490000450209005293469804810027311491966855063064414337545355391689717039349220261512149635456797816835843840132351929452233503894653044768334384520352952601886324270457270266215386253602575111526560877325778880031120964042025243262252261907379991920920762876489150864981251550901758014119919050210687268524290901394476592468710629397311531751138913991110344584865330219059629490014246553602062582721053140253969032586131880243378921383931281275297309347686666590737138876925910680859696147445584021879506883933382894372569382831220006931378423771518796337042848842034298609137588590501586906991026344229821285149888380321324830362632284158868730413844893385566611569822299612374565547622758081803529980898455594199226670514603797282397770068666955788275535266618763792628465129803729100487164323189379637159643788942349465040284811765784983607413257659978624421204514495898690724672029699992121595029191829657211847800582916588272545971078286258062864632050548528463637591631982716332812169468545452625248533041460361684698346220109503789960261521951164597674826208244621293442658979123587499856360854873393838695850132991513416060327431751678532690084954062032691975634265463302489537397206347570622821598433622435444844520410925720870305095324276888485547610729548414307443479006639302925003116308129447926489368031275977995645360328095903671179999734946863667527953611236298328718740488930401392863174048814686105197413368817507936560899809924979361533743451031966041843360928541500784328093647621913317452369492023053676812983382221864746756929514616799789247904824643084821395028462948161763500221033570069934022849346237635729118016225833707925501795584115394076861442962624699825580366243106807926948621832322656030405530315058227796654165450553147019417532630753748337931342366006031642238055799593540224175222348269413601047936202180095522369083237566989664002352416519964328485466536810497374394359016095982313865832723616499245637270670821382956483329962893258700441586046819394688244308910091486828282483206425059852976889870143418377385213329315092061088110991726359703657362306736754223372868458174709114733536870536654872467124148596579830874437964165499119884919606491017242340734683476762169934885817436766200178271682240352227456768136760834161708827344512510278860214599123936736806754751908358132824538465419783190988304475513473291397948088242808793738155201995820445469807053009190719685971608570409356353872057748272030524759038602688955342285490031301125189225923570776431756528237687631634169382312399445128365794953865490163785396386232556421332665484507123574267174916764317480279766151357893522604034345358262175771149724125911637238185851084275100559448849662134388509023378271316481277758260358762661850637741547736390307428798037816164192465409611207008243778727787478606464421017517467617712960567291133389709933277549042540743118550630161182072486131684761584039812084354363478423721073687101126588030988970794136953632618467872772146899818253301699362986868146983303354027154904205699571121443184032345225787625120400427189532320256058550398598596118189799872510308430274347833385809844522054075634247744887645654916721159024083413016313966494973292364467946774823343679885444358579278404767125966790148801753808434920216047216608023938294257597331036170012966611879704108872108272402773700194938533564498988366569862361903846643837023382671218582104334743414061655613728821004965739621831930271989898250270216624762297923451325093087217993757240594523345965309880435163593340657693867854865199899510599029104437086440572078200543878209992232100850393667084282255890279823560089306764364686414839272044765379299465215817825620512765316944077540967383606615638809450386428223210393223780190531046440691255686386345022697465157794380574253320674382210233574888736685604286660183560759830485662554637113103141530766829480423410450552712536353934728313871876801314811542811304326328500358447809929067567526867649389736198236668519882761249189044398533861612701112952281358608151728232259424567821439329170088009157834998470664463696082044196211675581155757836119898363438215537102352000118906732409386970462524799807414972408486457763459072218934026881683361294830650356652517550910560781172829008288832296492976678796365688622140158636098192177913904128323506092890339280065096386597479687688126159184091856348559527719733986467398955804327236184781418212178626175242730696975930534758719868565575139569489630053047796665959572739332443650589028871927315689025916365589126623460255484161727824625301605614096059934001363609133258435396094712127654832132853917740065822144805389756335377823252626300212512016918482348170249321658803468827737788039314323808891388973703686903856744887380641067010922145677243346493568867240924908087179679543501830107521068362341823536105164360651128552753490692979095166337713924310076525897406476084606959079142726403930059822708989963237304051078267308567711723244155609761201238251807251982765071794793122093907385687522720738547796523709523107775941554065850272531232504730036189608533451019944674571443159212223694190124666606414617815257823276095093837376392437414707528681466323062407403393667096962630029889889393044360861224641191559233499227724513574873474438079966232867107437363251415271592204989128385877506832557996913192276169805425678083215988268469266397729549283099965435950703814058719138884579758012857133361912329759208864540287118079318796686139433156023654985240369012735707987823475696630760424755220914238166445816192903946037340929932164326324559317817667636240031497942338688176695962156649670180607966137699051999105749120581482977707469553320006106704132971189989057530912763613882208850162446068793292312090878536200799427893504636287301741167309757493555091562717991170314121167832495992131287604484533961533701640358145109382155058262401777153389377315565971642571336755326063624057550336434096564930259301460807918631863254881386781232658575869172197851196072319808604634298961764262612309984407556967175048073333006958814985765360620648844514755541339757634504532205402278081550242558423888659314985025536050964413304113325984884918571826771513980814054802422173090010405618258489491031246614209898879866148392270666443366368644319282455487190713624786499555694122658392959571443847767124396648853498698241722917621083547477592954170518337455512149594385666458624482626256232637077871404088477669889907510505715981823017316289878669804711273218456473602464219936208840687626526669421981088366000219783225567761978856245617401711872323586437106334385296996210263296714495833939702462781639894737517007661070216821688673722347352256387359774122896921450018889801997169980201590045945322039177451159101661885414884348466710229346261187575604928020139586521320756418211795159567089896406745868792853615193671997933334458436530718610434242140695117559740441412476540009135639183917143029069396471771189445887844034724808661453278426956419806541069015537324518982842932290206948780796534436040312569258465140844010131803464243784881223718766527246772172575660625317458628959349745322912723958357288857150946200374857395461499686309452230134501868528207064925123543245544422493546971137293567372963780623344981712316485318538647769491528928772461123586651715383650280049250901054277352804429581446460678723569142242654174721536695998620525516344224948301695240078399364701863907855487414231751675726529941526607461581286498925768415968568392995216602940079993858585151792486055091369418721575632866081219390017935666124627276134461136057348023026150544353438591282937163073530291218457653229315139627867567569929409512017773605464775707054744698357129265542737413338806594800555480833308067334195884939336900378289668065604536766522761294794457528875457838997325893313978941452962930373473926277217596248017881769971673375766230759947515513799054500762866170586950478222747360745397800976880324168626702967148274241308355296490891666573369145899527113009319913754887530835202744397269934561184748332217517787826107682869727018457682834893508678703891556367540656472734128494374134159902982198832503369764672199027531547780027424346663910131240182065491886634542604019144794610391492389338551341514061870425193769746953691941064085656972338599001896762586075502263264880120182288464762824526981811572103534127716196210320021132894279799040278026054181097249449671251258505022468989847993661764624800177128262581038292245035927710194582359205575274363407797040060787653882195301026381905653219801972236769848064108393985485269346744796579635277187897968298296867365393906928959956555295840891984664749003869154543276011767495607061688928636068421885717967195778978120142576617541725169443802480062227160240916923956031214029394791129230519519432618306085890890806808059752577160328728418904052124694329931182569567510729137939155080619683802103262720322468823401117079656961411995278151155557912043891775893254061831730882108667133324590817801681001966419890681663850236984156024154045612964151861261243917695647188297290894751864723657525671122007428114771217189605387573042890794079674442744622017478823253877864462725942965436425039084475364056716716058686910931375380703000194284777076371867815156386839310720909987946453803122029706858818878196250923265961882093393879266869586563591708465005414877155168540064489328184853517419589105946255751360671660136634338512277945850877939353860421329380530614293023098888228491323710310539013916611234902120369395987056726384120215118994016037652106881552556283580450198628765357416633997652483551537550992283327703618738929291004116972724032578714111140750068779839054169881513428806782826312063949430093943488679497633351269144967409181207382882823007267870534512308740305633279823134804842217693549441397248085572370478700063636466923048016733787534344250050903878601663792757591756764672569706587527136798140094522071166877597002839265696809935286180521369334532378586253874424199611702063796845720913070923610692769555947916917036199882701803701166103672638499492702675115329878928134752085070461357088056672424276876666606307999285698753948403895519347785648707187242028648353326888074510330729673302958539584018685303612154864813968624215657975502067850720652751978210747654560734296440616284001320755557158805666103017317435084334850719155802012686454401466154830596107465449016871185327542029225329044981858219922577237775597679014363288193359863752310980681553570132287883941567421988738409019011136641771258587804237448449945067804344045088671182190855253178060934352523833747642125856504881054155729275567752850602677431363814854748148906187317580608311344748074092848165292470072130030195909798030582340400422993907325872545772526348249081221365104596802135032594152510952848042741615055978785576591699549274917784425718536527462230916576146631089530998507862569772771750974618300317006451435043003070800644538828713411769300963767666250646045108177579449210274177454440361750855247779168324818356952507258187931140158334475861608360817360955198716241197481278696163675116575782652083804542596387608351574501672063180473967883139314010694876539336281315751797233522577543382386923054831686834546100607636902575312446738006891151126783928845631996834902388734643441322416410568255654859967288897659321927740986931082507650931994548462445127382627166279044749985319316236834191858206531066723636887903644908797639514174544548126684571868422033681896419219973042253217265838800260997583698374666963103174330133996386174262473258644556879241054947729924486326378788359672634041325709927829882717494777948766320499559099207644180373251736957404336140248780469279267230290757312375370495428467800603823455427259099479204665548089878195996816334003442411826831172074021552190162740370718611699287123261532225920810670272706616210652550711670135245722723373189738296150213366107603155775205638909421671369229861241917784026516823740039184600999159901311125292448321063744814482214189788799428299873652699919826648474269606066943583517452501255320816875825956055111108285988240231451314365605401909082224784203348509978840495986292779566819515542846979800478621872253660958743211494058582192085002932876863983048423409404825857090394040474472202303198633980918984980261521788895969828418420069737450161329140464984023898592174430181095482838739434436134854184472729112958356310163945736296181726175614753465604284924486502540213850726958262758523322696181985110084938435699909559961212348825223844366979789052616248323652607571368300439960970293954483862884186200483880940894457565412790998562725836442571061758238391612288791495186283010207622356985738284806636577160292931288963868233392152043839433663544415978595583509367738314372618359561574402188296771012969301905563505635440927849941421684470776594168236497861140635914220490827235492911712756165692954923879938619803809920613267655324502207544436083055405944609018136662757680630596862094969340014861259926510657883504923054745340738189977683970909954810838608883249880366629850195697130671202483692272170491318942735462368336113468651771471114792740197715630544348376127703715362980744266584766677201877334380145722442299737080279783359596664932241691179131898749536141735306449273242896095492281914005297737330841707893575168579467059432194944183860711638173488748166177242085717911329626008879051064854098863061009134198734435852739393295447257379205238361339582075630488594313218167767520258033348751116484861483298256049372445133875170431050859517988670098118980755910829043513789092132587913200798316959905085128027776432356409882291226787871071714476628477541995946370713022600548690804396530781463949460031274360472270081384219408069066096222213998496156022618213135070295496319517518714363266819892886682713455121177567474499397223294643565034911043757680739440300467939989870508193975096814698997407280483754222415688446616973724104328948956797489217366280279104306705104404983340990560710773847926134122555500112329415721298096020296345402090078675972365586998824353500083890463648838050402662604100946591455157348710629028163944466760414693658754344015825848585398056124763584725622319007728915400754983786535455758993519666991059361848515222974819588295712626176099600169228223591541743874541065151143670552883985248922345123121833675592473591337308429480267372830520129892289049918332895540296637612372909749062013439434409950677816367189865789551182833201546677281827794683455149655331998331595351179247662091014931962936090776088276241714993349577376188324398414760042303544019338746219619087935711532487476233521025758520435370317099115224257044599472821986980830865228165096844295723203996779990863223935473960537292652583283023962321369200760254096620056584797110310558689366808025880304968785559707624969952266832993912805771917927328580149559480428778335623021979340195747399962851129845783720916837304319106845785521451908061045804630241152824574423017345821309193170673912701695423049118736549860098403160258694299586139728756955651678995029994526676561508923794038765726311073071498444026835987495579611207298457734736155330649169305049897540686409865411294138538245681071570670599882476611373623414596683207370072997308880650196098548015423693456699517867949486632628329575111024946888206286874423801103428489526303274711006410890834121075968981662223095899281211780643196058817041765474775345570386489649334588380066693113860875272394242567376078951035835312530536414872484377146211208611032158592472436713547466815035411087011245650264723545635278121050220177137499888367707524026152738899024999179457653735009282384396136131452867228855276314106593960473814628288819996428627939901817380528335861926377957670553960740966589046290565166877133459349465155694514498711919946044447692156497905279727778280976711170834185528755904619394369642200998000571795524841776516525133500600303549446356188324762277967758099011183929175271574068576877511060439928686509432880708647290985689865527310825203569100185753191837677203374270597457205113989168376283019678657308069509043007587437059655124553308217796106357968283097832807507648126210209240582488060973412355416623844526163175424443945722332624032964762460704316690465380091156362677942570078876073987476062681108988660939445728471487542881942519211238278459441182012409289960548595200123331014952553558981052916984631495236873243782903666413814971893225302421625264483651904931324613801524792918744541405662378953343620004470516240201273938276921965851268828309266724678635147285328071901579210323875045311723628424498223329040494664112674938511846124407088499465002579898152697162785546723779499969797635612500311087040598735358013330598729219114080603038547273258632250567150980719161953731235061180032533693482012120707747528729676747852287956398883473337590848732140678871580520874013230545134378792015856702483928286014032569341130693976955608645781539017538441281451141710404997013790150679359401977597002604117471055426453253465425375897087812567877574555636510158319694231078948008676861955465825200940793180223836284762497719903759014236702938198383887929225340665948392224239346974457817999264699469829291747200175833959799606041952080421352003909031753525363953133593779884143630077339160803327921455652782227179536025038706466815292248219808737321302339339366230352667210434919588671664030881386212007557321947544381647404349903239854684628182147359341542833376873874767078088280685900103723321475209504342492707325454800898177098221090087346826162155474986508530863462195360630798557616986185782754003470716799549189138714026867504429569900493712503503059868220007769519911319185963862105645166965648462735720208154901809071796413726239797068481267822675119824876716711342124358451860690643347499921367190441350792927023598601191443398938862498362205530338865203551199814240809825609982982706119408959183889120878903089160299810440897904547027999630954912925486372174141780338045765975291762234492468818433779738887506698953451160857759038069956283193801169578302358533371388892698623525056245180809380643524984963240766102445642580748870831729874898548495501332293848116609884928948868805898616694718156407254629940898086358134003947014072726894006710829512575070754294696011295613992404802285713706782155773868299577893154482895670266980197179416609567725378130496510969467191315335980086191621162325960361136414509618884233363780898637682003928154227890078908577174936296493070354554896733885254661888251333417190550866282563810903783246229265566540814557465887045511020127154315569265261584128464154150032097324413066322343201132821529739562012926166765409837252290864082719412415873123596820342078363684514651021939683250348709326697983871162395817639410417130648329476342724688380031662571518145700140408222901079391585062390179866824025160971653641634494524339873720856622611443520480137926311486874324976073153750543297404615000624964509351482640090889783190015828617994824756986012891022909807712780794574369642186959417925978010845581223860177254256444229143123720028479796416172165939589802073322846577915031614757918876053279817548606499132134872654323637856886707407666869723374962173091730541893039046809366140897029828478546144576779327112158147460374428431567331610051402894390106370741256472784136036356102812380747552060297339668153364224373617826817544608919417819324451013043615452090118378522894257780872529625488600560827083369333944250288989125895640354233803362029148787031798389133920126429252629871983636120132373399007339817353468809455848194128266031073619214678457688747520610290927293676426619387108152476173123757943737640954789507345644904737841688943205992426931738336756298030354904326446185835947528432258436628248856766919474916156968068423273457781610468906006933975372855701335757642444512298651017608424831035267438173054202042832403395136873011905552685052962396924279661252394184113126245605455470147115342281214990347053657194604963794874592517171203155042973538804808721998982991023785541243513387728614942517093794522948395137687624191423324593220360302144554480810192378809224647630469183460482027657908989663428816202334686132082392101070602162859920172372891618049152859903674186829091995934655862895628703273037200002662258637429509289598521752629083022903050626938893697109132519293255542829171634191449342617111329468273928131394660236245948510406304104028868075481521377674049880894001181218123260464201531238015217896999815454970281421206449699844326472127545956092928571965712762899360796259604956577769007668387349245408339731166627842323405489049723227634352452249658369614878417044343177898957125263644693661850404320366045302993984629932428262323824282624738821003325812357658217315680528901411272580851988550161858791975027172200148793727131410539143318547744989813360088976037051170938835303151699154582094087059078462621150926482604232292084772346305930602733268177924855141098063613189625029511024347629033885082341913800043704147345262393406876057736797765829047599530418541318084314922586222027081722845511322186585855314258045466892754020603283823511473817855043975960875339460009513524644360891287468037882174306339644028123435699885941932930780356047857605513673481424816230223643301142759505279273362598346252635359060454782382260641500223027410430900690516931692126486534155305995109304505564268873750337313656519479263229946020434227948912209943222568489621739884189300984293964974026311031859164156114608705575243108256534416247222115831302341251372938947104930296258814595718171174395854825127303601899781110384695447628880525693507573885888673081493930030419153260906062337783140031486098583243317831168668659339929451922151336586409147186246627042250633513564706640776367513734627809323100085102133997565458962550552399178869042551793775424453679375268850968435292486353295752396717187538939632223470069458650312407415299422231444076050461113881189056315541029421377201942608679136587663415737242333526389169723927601515369275334016466254286627999720369498328140361641831849399479858691514140609539676108319608106698173072990572768148913900486033023654786243610257969867416531193960620074439899553332671758532134136980963920907756203236162420706429429202431859485445664848068748762295233047293248943176628805391932036411684311730596556907405816639760966374335574315694903308314508341937429138155502736145751475484598405092726087546938873298476912342052871142085727041028643719376506583169355747874299384363393186863637468963864099733836551037444993922331729743731373877093311446092860811487354732865880355224649988951848009535031777255672991404674381170175109640307503220089327691037190865895856158384386498645701361370685473094782086018503173006793502095463032276814273095608621907479645153688697028811038221178450464557453946231388010503017260586651467215849452387864559451219667512518400277439458662613104028784902464150188283932743504405339183211680804009703824885753416959575019643620073349000290226877738314439434913315429313521966439580599599155276375492618755754516151591270921905550788970266134912964167880912175144193088664555065085257182477056579225982863733172053102688006505212534928441236786386493229580044661652027774490383998781528354433550405991255884370571816341012011949934863552727455533694573274888563090759288727891214855297698172546567900559778702746535516527914263141226561525750176355649606728817551140624305100029588432911448199589513333778115010785132474563745139144439935826152465516898159188108104182321566837215411919342955318068341145182877930446017175339411861719950568425253177240068714900274091873614502724675617326657019395844925981234352277113202924114582605099332329804724027901188618822681471618794575754562864989824755783308838616150910547646843619327422273543217794407156835332628007453161862949070086446089242019747450423652114028414685617221117524129356587648852922496444300716127379486228900899736911421136293841165021165012600642545111243036409590226273738563781659542415436725779226422441895854114606419380899593796586913579441777355047906193575078874773781412204111859845789472140046979724430771904418320538685817444725341436980691940795870884187091066717335816337101954648689573765827996694935115818045908640158951721453260779600931170445660336752917117490717251739374546326491987379637240714992561638450703316024464877816045375609545202584441204653454795074389451531014631486020425451503603954708226543408622194021563510274711849616197286961618571270915960431333722669102107953002675123651206433194650239962098433870728571098111374661407482411001813469383104074814887804213826775291769966125095366062135839228959428566420795344085404999916149095686307848009891194210470606627875692131500324395103202730673294977096128818728016737440899327706148138304134897126927813245885430402655834805706367551703171621339287693557912222892800624629642606959071030311496025861202115119820154949529850289338947486499406014079269081539121999266050148383069087924027358310950185020841146742846140026164500585554269269970358728898507147736964818430053143064520381787287396017114878024070917639943317214041814428086524157384738487193636723959125218439672259929029963918909884338895851010710343514760970743658699365677516529940495034292163914532408213966328481479703336455977057754876593668762321425250770463131320240143717666763096604906911521508689662294278358326755667916062538256632634580262528928406844674384255712223038803056235253778766153298880675584839733693141729935437904679838989037642104352429210776047952105685161395226487979299862753547351941194475534442042156110061907941106741477502103161952089991724680904808876313190238255573691883874605817099185167329125109660603331321763526244502293954713219801944070921876761940352743556709890910948864728983839338657394991402554477396386777209315568748982647196414090779772937064648417662600699312682232341295278305284245545202992560643181500535549258729206228417165893233087578804399777531219790064739557760025170901360065077813863540441789241389342390906605351254103162050313594868237340440008748815501601409605586208850610898818839573181188139309113803154157525966933599212524216942117476392503073349868715048021349349130741023912568889054622809661198730600685426303853998753475779507158339342348809704643852380939948421746574771009686244040759548338530177752063462923606688158456773836237236494835904979818719687113509399031140429293595293462478631934530384478655925794936812559893128653534459530254152452612733960190357276579329919893056206638565519324703602362132520298969451516271905633343903414199723000968022815371618234293933395241004451425613318773109222605208742739204047803803335538432988813100347503887147127274195192106796037188703964692436220177098351393582176258203291915155887908656470225121241831328665462896208429888541092956916700164103886616265549895621836839598745949898291530309754258866420680442924786661807182388669938660895061898609976971065755316591888735906239850348597165382410155366868571042262745672361445248335780288398395072011615137874685441872909475384952034069546929736030111460849679363463540256360003911004104705338125343487293102560736583045699481769137716469778858578290245531087421259842952684911372612782841476091523772595202082020703578860052575895853068559761863762425022517121500373565745997242381491040733436979882389997194034569129775672442810665112908714424741419494676330712649728330479074933004990370536472870932406800503962071884506464766242450406231537871491759483929576455180809559306826800784025899335318597852529273191774410153388719666919135065193968072783929328075224450817479599841170952241824795534355680890204636806249574122829485577398710728822409598767158872863773398282711886981275360554340603640245950424522011303817820954485345602037299032905979590731145991366276912451088500907289423125916656601805704346746982258671099096891656063974845303301572526844944210515227100277077385469142218980735261753485551941939299552134590539097619847585559958008081980005156844396525347113994954983076832063542892830183638705348592833159258326008724740539773742636116737249560473096185218245276896343674904549934242522027431641623168852001826518131350694943472442494749040040997279773997686285820063150035425886257192547162962939999811397361419043521689821215520612583439022205346420211312164290529901615195181387297673373895949898051104620766231338549671741972146792329392413284690432369752894149696044607784707468388990862252516848433120799634645277585473589346612588513900742596552973674046857319150446468512763965004151749947008455655572346703618136119394560754967930109990842771213686602974455286960188291105861953429072563941511892616404029001953061472509757011257304168230140672514002953400394324284257885160036637003084016989810621603070356620837585806037995048263159049462022886991361252294313898249397274613230054253587118359868199827694699458711588717134338645148114309748946978214287219547316887948768102941883907754216108972849190006323263986319212602588298997537670243501033960160662179806826850812117349823295899496342510344634331284581774103045815339455092001895901973345545241854940979930977599144930311669736884608709663837606994825677792490490195659771489049059657168998651324258924477151605651349752917918681770177573030156927121594302489526116457438791026736606844006709333476207383252634736946603569726131375037226085979555752969091516558716660121377310548004428869920294449462935362888414425636590167437090937466941996880070493852679094629400698772160370629716088562591310113103467450139645555088450880036977925393371181236225842925564106800975174017851379439182119849262572533874417535811105914703128883538153463468542738946603718189448991292912853107205064845859151213732808394931645760918994248370082177238728659215132914033004195483814958481786945705523626260631582661387955720013388006458424828854397036538858568244385318562227408511692213610474306828431576612661434307937060182819008090767165409839105224178073594268080266879960707294513940835958593619011150081812886782332833890382821495295752853684767909006679200270484061095480460536127966611009837044495339081594946268886668434501957261158611175824710866983951461666744922982319273684666892674122898533127488123811236783121011300917491602287338974454474148451672678183043133626828016180854897954131247554682988104489380003143943272720761581633736439197284129990183247217411912686998721293551172704007588945765434971311563672990598446291777503191713214827387536292965862746407458898127206320244733748204830239055636466801911311763407402920581442096685039585571692545779380098298386679845413518343199909474876469464602710982415211313414735823936457503576768863286783610779637499734956865623108746533188619190797475940137926763204020181796707524919527808556947182078308352469332389053387505193133273791255895961590576963084346485217896757426346910783755016418698983037133536560632245588396665298623751240496851017684402971382897479900632543412053403948322053216312939599832881708337464248430978430072095192145391535307044773658710517253392041918383783069502843135936095659434935454211129890365588772158226591457775215327401356313001388175336705040134847088747182204240786920296270210804349223278570766576051163125024162292026857073369313937615362542196450821087489682692018173295878728647983379419862412660491337545036549901215578362795473139114940512934095122151822306039974114624329068533322210661981648379542038184201904114073759469081889545736870243927340070588233600556358935049870024333721540416446828840256096124996975190352937437718035487502542321735195181763063689098453108245064149365267977571408266761075055219445145777693984282334060318998205363736893778915829904030168147963974198316473114842038487251241625032653150922137859343350903846543983730630672650730929451389662500210135151838680448429706527085986969172770243031218411118926271190837156934245213907816797282551254490546053300320991711476941944403250766549881500331615396382825751617492193139494127153013543570094680463709617630210180352526411327654286613659762757468862592127626615967603361683666226411871457565270503631861771351971755485490130256955169080152922933293148606727794189829180404767295749432208391715091674839929863839548279310797029414133516303916666005900223577119097702520122976003975002973594299685956981745312178135812525487048254285074020558766113410437596548760455428658338707053721142011489269224217255399259245534990690631109128382256342801350782236304174970202569798937200896555124292402570114026704820942591417207928073751641263855365264201643431778558220315528944299415033818614349325272906435967702716500920163722800746105498827840083170200211430752439727296195658455522088797130812279896041741508183251369500594968649851508865305261943577494777105144737436982153499173547314092535738582029889893834295978343156303141266475350635874790486876946369120060273900749382710122048664667602722226843961349932818924747069942042174434493398334906136180595168283467963629721565830135349463336076988945265651662940411599470681078501722008890720418195254074542665958416421654067136148689129715879638580162401103511736976715906418883429405039198079228722108954513137116592796023212686126363767702422162627374603592049898109384884598434417193142296992033708371334194988833128996110526625188148133451288895744459571898617099140818140653738911982362603947147751153307973770768773848263814534528615454527570442213038991135274152666264517310662288878917658031709423429871705862066884688614994526942748717689192758799587064140760377869506094217482191318651054299510766117473374350774769581923540002268002861882455707577705789383470500556518844369178679324266805775987321905337850020567998749031774239865431732814037733201368484263150992793644296166177159112911792605390279337309647474905894332816567919902370747109596048289888151891906466393199712955715642074866177162115569485177056277232542263997683280275952266233585694375306119147649147830208046829489257948333834408586106175321035869526239596703664279428384543004653889951335533321943203394479771121477292057165242259616075346185968175293881861296554690008893053428535807010027544173832366544862929715565761994068644746724527869532518805133414378316752813083593944877962438408927408869267568695863996216824723416519575613250965766821243594645892004460625053760469843629754881605009922698004003822238569187402214498640680087731978641534825214016716198253743409820127800015522265527205741960485556702653115217139046781340704653220070698432563860651188193269505481161059979958087364838795001675502804303607926754627429759087486423252343420099795815088366125273547535309431799481212147225102444885757092095530904318366023304610948890419743931458963019381647394731551715969457013978189472655349848408501981736299556988589028752420579013236661539824663258316891945455592694248762472742421174802376547903048630508083372865534355902635283065497817107706591265794748272852046542795438764649492166043161151328665396220009956095937502345907891879976126049232486749394232856684808250235107093814934670696822762835217406486638524310794781562832027990334019020417604856855135372874539359108496814953560311104671888638571454138507980737556151688922160959778681903304603009807244175705601966725636350532934316592694664398103243264215571143964027667609197206812050707127812843176002202551949623848951620997689165758450338950326179558599784214331734979011400490011004854091889614704926992561348870660401462798279555801055394359653954591354043258516503611827486802417235306576758501543120579121524885270019288775384722109516856197843360487255031051900960647716799827230871421769631677500944952237877762630215489917852896194004505515610345734756160765409571215853113223382741794584912629411767367407643222246871449657091693725455641666112802249935927873789245878860248004692409548926170325866849373790105621120163207054977358657064817643457582291754279180836387522091899046430877830869101606113640759713303235158351148395332347264745995008309903998655781779450908213455942451368783305571664304420058508224277843938948239559066907974280539190306670997646745813052355186839702671451295860462551214060820907591819160156195360894164156309314987322770352148694124835171975107926144410113183606804079459545075918761020363443823099457532773289715194932918591657255910301659766946894717658987002718330206204981245813693762332354010325328310418704980099969298208862603102158585059390123246387024825472661154837257503216322291968414494980346697926330510051489708396493778584634959067600093111435994385296896832672174603417912477963106637987238702921238338312721059773304972790334861961653202987185301626936848850533080092526700196208296407227708117336910408129887323209508597942357741450784274536391403430381935088034090063641745586310471074406900763613964746136035389938547595898060766794311050368937634545527319882756538042818032305810803768989812908041769231948422506184882877042916539068394777004993074631747824631089052272384067349249734880347050032115750158990765970443267111737694471672959241673069230675607587439166648179466755829624756836266965515088249837123840339818442328369957751107754157780770131382007798452075024136295033274147055742528603422187124372163008485848394172005300102304807606663002377710789316850391680056861176400349563994767786279978079430017145101722741360229491311634358688556344302300506159247496577016397101921371265890385392557414737033034016291606138292469283169497318690918536921050883480582746051332864403612624834448182927147763287720561587796980121027605810524264346680329083652009293495043806111238780915938783411266218955681670661694658502341224944982041997938067676669562042521293519296818372000854573794405324674885366273818540602994593245089381519189526512026653363121684666097485396587777763490633188120986981500863243310507699247835070456586377833816987807209190285220036240244460537012563121152712518848586521938140333604320493333410245675385558291745493352572258583503441959297219411138158483015958083821447837290581001413075190179824990894496596106101711060322700655156217074633022641896664170103699249366899770262252371648632027640514095662117531487111513692493171899205767542806304486013471082530018021037443872520571718658931461974134220913180553493261275351532681992880072506725886918293134378460428872640756162876308558794111215046873068640097210736622544246709268024909374780366276867888980521625691068385712784079512049866966861828558625918313323664388354382831554799215380245815370086573520035954213648249590043820649735969492927376232417636659220219165178079170658145621082094458082667119223523038585054406125885648574121620711863754457830759847617794632894880529052194345879756342919160777302243783464448736675465383226801929477156005257675094488476407991549590546941005845870206403989658115498406000690284356065050021843640341358580674643446940842282258314102006885590316798115861082012242464983754911928574724853608525137707041029137936012811563577817222572166237085016412677674013692346178665573608311052183674758563860577968960741057493761165858120252029668414665189760888466480636824845740627398432436950126721371189707907824006553114204975525089695747763049941898440778928954392412277604287650715465282683698687587674186058595584792499889179386196521954494009121351558240086652218010737533258467514158850412591475136361907263902540677788415269137359973368394291537087331252939805930815974459042698689303361336252482918956622832611796791488778832717700131709086133499802643998959421583220535077555648586752943941535556695709333220508788353429973795624990365370639679103376012110125468718585721860920619138907620429301308012755611427474991205416999401980235338454633202997422482390578862636274899490002108076209671566251658067810030492396943161045290304757472319083343910069668715670932455106729446513293309398286887224459073168129142682490578180786198568024739430814551176110580181022171308871355410184137004685256266291011577652933991270486408562763580587494864064430128797446533255347338161293102799997322127232947614586583755698631816306414278198605963668587742154439920893436077927926655246200735036848697123169711922775663492426093295921509751782232007765794004531036741338651699901697128798757329984972102871206595685676000583259700231926622889764177227837988588030524387398295551801595695377008562589586229332468396532386663053397102487849975004177794606828052359224102408778719713182970270942718151421481357243675132033813059106772345911320783391937652715209352138754275549160937883196855214071486906691493939557158972390093202156148986563901255933388263275785204531254898248829796623108848623574512554640538046886661202416512608750464577769092901135452076255365097464503926718263922470148618207268621262653818688442238833952425134786056372298291170647985010447192984532388106446093899841339206467085160382445001240386965641014475687755532011822610699390792692961905517223565002315650595914461172497822476108389066976771060032904046676064381419841033337983573310881239411671329114737662968397969801877725648708477414640905481200933697826702748320551401211614030808893552399908922669415507736780288297017772484328673407335314198586553252877224216738825796123406221833886922038239694311548132761291421649923247951803264854931459593218976257743154290419919759406802361780267285365138366148597022400120131706075094346850747887905684302734337044143451620304304475380211537223548849899830001946566133164477026900098077682974167318455522472465891159384803850185522254911237959708269544711835379302095725603608286802020146398512924358249700906020907247165636668518817128198002640759036151755702791888343229871021187891795374702642574998167453760053045822025618032642660935430299292411667687897732170361864402224724965616387306924897061577227464024848091020807354374415475819861665420583231585871372446085361891417328578753720386824571963356836022966448912630484015154493078136752173301109781453969522889342260200928856172367455400457556731659679648469587404864881057405191067520254136769939467970321019796901663988013852359982202553925476236109543200291103552698273539498835453806606887631411765249070727106906880539768754866092061891884376913132926886038330014968790381648371300630287239613199474093486331683813712100501788695176746241608238091579679116726443920679472117327790631098840247050373278534341382091869416979171302499091053002824736039900639497692483400502652451844879833548565832250124686242978920747268336860832760423545557146441400704661468552126485675037863776904053842948758606272488064592268241862723101681392485565326198690216798066824470233867552941329448015848576347325254559759519215180884265229449324647333588222756125739065254132126916231763903043037293735356960850714945217466449614702714920807407628396674717176506537120820545690572447802481611037871482439595409561907577569901551320254661082802033425490675951981552483753943326888617536630418946042172430061158374527509329007091036217292661656173533411753474021926208797037565829010924629453462978369975737689199225403996347263415943802583304188010788348941836938067687685888475704909222310079665877208506243479002506312228806837342862932653626714927138845124601218689244317560777420536586078580458070572021891129985838348914640193327863447159599844797949640449753717861856017199153373179622837049076890906050022686686480246877782534739089036118966850804409726869440022985343394918766434815982536980737282388540291193884355751880583461505626055741853948641757878842124352750981367565855450016443536145790038664366130642560782946492488281066394751922115386743479066180665241687905152559247645391937749770057067124734999537534700088732640732836223163302310249703704387773369709526904758828334969228900601965990209290285779359791261073265247372112091163286527441595996260414702324558983015582553116174913571806946535898644875229211559409025841906390027475081771668254508373607654671479198869424104729183343123337027632807248993476025948363810376051868632901450535747308029235730078144168299236748666428509020874940432913752550183862606937376869134017329016960324809788661730667786148312653104897074578947970010698321894471157559521332174203899384315828393261332626100331084125562368791106003972688401173053886491889384009020378551910385240797014580804380852438399341695612290906264810589655300281475477377168120346575128297275479615779616623959604433723562768735979443740230997066907413923338000538517246441361558626804105619106403950716052893723184536241261302975475203934168737079305068367408942447533560607474568765094172780251807353492884033651090481151449355902016991014242419654727351865468709911756815195660303225840915694099762458103697257749846625625921451313429835388911571746380307414520312176199595635333119853060010708789934280730988394707060113726138105209262269497234828541228329365735694328468089127615577394279180732657645347133400859144891723776174234598045830203130528885899925941928502410933860707359618832921622328074577600268953541165974140568413472232569355981812836554374507404820799328389451357823008340014007697118138100071554632215597913633034659166192311843667086284419170194224068830194334901179356402610281302240960599535241063559689449419460094819628772369478935153073907216557019712731099930653666600788094138987875320043761342319444779241582272397707131803559310140686445556047266741457381559583808638066059806726576544862017612710577144050789428988390259609656665017187929939297339600022661092424883154379245382225949998455134349815409971255066340431258855576987449291645278881980373070344269990236009771776068035362728064083953612453728519838922158378195233242157827580864441941074987664240889898799199988774932053721878207291033145546476766259175664684546846815152163506300497165741355560462843723443551783551312014084839976920694654828604307609508476323569237147103014688081328710993326333827084586859810924181337386310470508865737805194637699052244956264354925394689823661757531324926964825747571302787646366206063324651890520419243714035948808982680379922829404997459119295466851081582960965357894919802574621144252869155857459372131274711695038949830316778719525144408535170566915646898316749572225145659990276173136334143436447854792546311953282372347426815348961790476795973184631453278038231248404657827160264115882093577539712782841461318619015023415637155091015906488272618659858715005623593027799602113453853279781161200498823624486005423784979872493252330335006996039040981624366697826494966397882081249224993096686000307120608374725771504039895202828554088729520034606613353778261624370670869826342864737130912209823121279844698790176170542773081067120455499717024121916398474783343669462412151982975142714657772759177500549706613246873879807126442287210829450517357701515712451724646212047414413429600163530804511579547393018048602258587834054416090157953349909601351836844779143325518284325641953424253236977620370093825785035336546910420507168495955237750849302732617810256187603235906396195271854400134711234172583171993854915476254979959149223758354145383672806990925183224863020795004117880400343924720640653523328174976555310132918096775337780973174722667093353407174098893747404496611742103684881074359348012308340327591344060796434460507314769847465898528466666384029672360615996977255434998782639676874832879348410003184129905347582644974521032610624455824341379117221638439732947005497738401216752590500298397799129503856224540721776816466464128705187002115391493719767224557618157146692202658454563544189987093371770240203412022578680476078502106063186453117185317527672025888538234613851468230654514275565541939460761157008057438932497947397964983776313901003808275204003845893658893237981955553428454405856115507059215753267479996056330411174268242216114029355290261799210251483953902724296496094490175666063146079862363824705029428596316451566569986667677367559432139249614088760001077888787446245935570111037309989927362603968626577381100331534230093560919716217294452686726580802290205431265110745972708797436851690155550887740396749713000247790113685766799198964575477403741328194807658548493749963301194025376657701421520285788925153377695157374597431565258503335643776331415390417868655276160614181854934511486731478441177369105415512476840692182666019893007139448692907538598984334576142236221391261150305420595014463814161135807259716200384422711283135250093540112971056816678223435763735820727840290167067442198322623479238303426936208836872492342065675981294931229644548786599078009728213876584391059256551099494892550035051451693386695592922931350267551800055212866917173764650898726053586275185286003706096303848637925299291739519937817548476263070281064720026404267197521216166922863962389584022747671262390260519244814185484189910079883152692084375612596778624493270512649170411651192643975013938320154010002466305446786711118092476286518709832315792053740815269105099244048404254664313725418151870954498540546650356962132337962871214071375480041618610500066783054442632646274324359718837289832158640992209309043253951668382256285584656490450792190245792567871478477102983757317039484592496649020837733044843247741108662030810531383457273950067289748882624153997283986709429955829479189917582615322975369628828928100157410395573178926790079591342783889666790814801515489156637500380935351256311230907597543478485943659793931689005362381812274494969247630502684686123550394229220152982999839054536239432777162246828760112399545732810656877747330991415262331576480606139951947662370753030886425873012185139144396896709561661938584307535324620852066843868679098201760857040166211600875669766895395875438414546675434224223794074703277648893982682541683929474449147968060474502536722939540214910666769161837734280555011065847733379424472730614817074044544975865158265913516894563367313671277589605301769703068791232997696539335375268058255234205897816902792088606734267615936204026305773560534635597260048976050906516766776072961417124149302397056031325737442020909278579518760635479778084689980200175639027413726558400337353085656715852631764440853351425036391360940349376667833266806646149596894371703989690824921068802071292531610248267102063144618150599912461955288591824339159006568434043740119639172596588534865341288473047586189999347425678247807919847626822730680992168213282003085343909532668130763885759202150830042790727708664838711327216181469407566442754261247687888663180436402785403621476039226686979245026549442582459196442352315631915819692453884847746692376635581921570553295221191755545396031074470733138048030460430658452771854045557519304973432275913771631010882788994772879970936959092114450271767536975876746123234113999394549887199682512154752892269296336176189271243414828314547988363515280837026258528203122207323379155716377359413427381910164492950441269132412795115865960765223885012647937287039901467706365795887935830653868285026202184119695380879344847130248519530437838049295296753409872721714036037613549879964696944930167601810090489551905596497615727719743644066610932372421972102107826336454678661289607606785621241455550680241216765427693039067691548975153051119720978673282722715714851628491369178894037760258050107801911798023198955094409949932096608372832253146821937178854506762629974139780671131635859058518039440521709163846890347400553513700928546286748103584659040060752036736385480893906877116095623660213905396766607060571485222043240471100652711187728417062883040402268412624706546884421772737174143606461391396519290800727195626852391069561621004892163968692770027934290804887638084631262292042671140199088725990195102913785377042529292584377676540247876502511880815660877836837487066404537855951339465164349891081125978736861814663872057881685443821948614574832835990486034621574753190023311285455512335785262366789506968178779753117204058105399656131824994906418976072940155743871523190891506713215360824533463872795891662717985557873110155396151064691872924158137171481768819012289744204989007291126525552935729661847207040271935105562083988208034883808917338823028459128214895650164627719953811432436978426149262026763624042167442454666467906340113605134356002216132136506640586139973925184744254517467563695528853615581796236612957898563334182027535152376055842662516336593403553092343992927496501827641902070373738571310614621395410799174449268586508889463255020156082661465521479427135550387264426151168965322116915642257917356967817344403444153264607150280583811709897140285692303621185015498655552574374416976370370634920877691378681301238205667580233786473906126336632894087808151499408791906731753476924640588499868913832057425324103947443069187162845851705620920850130167324457887293673896845366100163838504393427050846333379725910419464527508905323282901169073594258939285285585566044068176812892484805819300764450336781810031054427613839064218249763073926636741975004183850749680970332515545562295400414919585641717551716430161864384103744553162012404218057964134175163258433910727538348363154166104150825394234871698394994985707783183600669400998110566655401224992382652785714080195573633774188653766575314847902905449273836291484450915442081333202993830291149986254438751730837514583350506757430760370577917378698344606481198273403655166521152669965917332610880589771275149855204002846994160674031824868617359184302417057791131173330295314538803874887765422774752315976938278377815290980710010258905339037060894212121034725990877133171254385367620604532770701729865092065058484295591661817617700124322157354402214709062892005466742307243903056482247956644151053147827487511831292853129614138166315705218168693653695781806431647851760033243679097122337637894352728619478044077706403350931367180666706424636310197343904786023096886313767886231545650398351849996603194730176424243525195675442240307754648318367486234020459741007272089305863906731421370213367969037755932651714978048855527055763043330308678591262298211197984246527788639313911278122404064572061122079812722504432413094503619322722361405219127234956381321314212505068776203734650428942903113507654733049817769620740892229248327564482865935864232089437086299962827771504419170556218562541277825612554880173635339045392947380764184457684155031773212025155172221633172522568445885360795181721818459516187317952933331686095868122952340030642386398414715949653796376768455082405054164328318555253862585552254434839178914860308279161929196923903772097281600593468353443643131332126366648315607805556851876558261667855539745010489503182069462694065127571322221949467421987632462947328916244239808733339644923027675980102801218831825664633483922933072102405678751184775331480303580106018012372120506637855027818673246908264010745828454777158909273151315182720830701199910956834543509264414930683478108339764946157212731857082303454346289886910661915494702300740113052766930085103041818739956675419922426604844246705820503246411165794461928164804537570634470868585847058451625195875896244210254251658647172538773294908545161030443169926302574832243824387420590868367585597022556032909266020250026359083669154134855976954372702323446747363461241112027855642183139450749927993530656054067913672994837130009316720873869208031279945277656883213652572853258428508779052330251724196633071736916557445189390999521999705780052419077981600933176189530006924638852976405651035156994033074907295252540223095991465839485987814651585069435057396549050604850049710171034385646731227593556053793371353595604561789164603080214096969573622975365744989451518186055865582860306280326623746559677355490941854242903816761165492589352353281708358492866971334725387730515683163725239906770904825743204427792718312056890246633051206963222425205392263296231798905562353132464454013538238124900503173115276030008085665145192143729206097132141550410927748589424627655870494457930237389441294012163812880339299325625880429583231908920611682218524287920225505311344152947739011784206713886581153620846106849086492713432396083301167857438711217997148491287994330315041324611940015463088607801601436250097232180617598345573146584803890903468120434485719382697874312410278368074974574977514533493010106469190446718781047808155040864296743890359969371079758443384371251260264859316908545741138700707090578467117468382995080237565909607111854696840529637693759273019661209138368332490281053933104500654632811884813912931932700488211286764561968296403194073836128313644562962738208445985231629603369031222182338472513683987823406553762511687568509061158023222601778740418145649679835983189891416335320178069073351206801898117120257311515339863256530012698213274461593087771296694155012219914566196379728709360897217736960521304585446177579701551842817728480069713814099250753783860472597272686184738563593327414810116968023791194517555957046545431639388556174532531682227856699637607393035287550267134600766711374245433155933210070988545459332450851568482838915983794012293174313399707904046406663440435007585482760064467800382523064351075135747882052151218342686456304433690062957989884848581501943236272421099266309577919513905905920155576355128298780967452476896382585930868635876536714730376218800855725605354138179623337706859953599011444029258232507416658924507167185590628424020574298245986132288128472612078730667181320428945762921130020571063593335870634254923231268478901214125991101825430892243923512404087253599146113090446266744773882689746552116869835331646611599564952500707398773753770391416862624072464702522891554417736809877856473887491758238524575657818897107879117171428529097970522076888019566226986535287261321377316574604863256303546825442613178880199982693422900637813771638078680493516986109026423596399170182060334965730108756754809148946690212606061770234091689855055893943040419940919778564523311758356523848321289954718743572985113704383447765726137863933255169784131774262762569003291303453028882532984618852002177574805395296976343819925221003869880665836394210606372286741291237567996325227445354576786448037972661545395697104733911285089405822401182322199840991965097490625148319595805348440721437465718182046727742336006520634031603095725642897970377681312381083984375240785820426650539955194719034686199865135258029805621848222088654138683312472722876744917196906214238421490379606572743008020841444723524692732342644410823728109212415710419124199425419853836338052678760373824286825022764312862253111162979823465612186037157187601155317510215675724734681019221265081171349607775081490815205010312510717420725467897687847353292176696135411165094975039700784185105404079303881304603944373874479877354717470477515084808850220469657276435812242309337514329567446705914220344774781238337083636456518001657366042154473983844257418835477248972964480640558908049042564227783739188708766373889948017071082463822530217895178730751325117640429003700393688789126282841281920362255110816986490654120998778766030054637621343767986667689476275649049797539725915776714759213131873876542439138714996186485674165488463722597676982905319012109569282216340449379379896899114339126883480086381321839433449725483296516021805882284491541504406632413752741375019629622593682891179614086395395738967904148151887579316206962917574270570834175987164250134243995725259777458132023878651585955364459222605950994074768303365006231846067693812714055846880061524776452899152048783035511362684041241712402839397553841887310206409093982994107173612285732868924456540893071972324214540602918152630125298615341826451638858095650273512831320195483946759818711766222775966737081470982427306698115643921033249976883084710589668130853981511340348532073504631480121517825750465067352483295260062982876140903312147475436845935344033692891697682588905662480474467149504337818456438839573010096273547725816321459672214249328415050718837210070913498183614963770735184687255370202911691099205056485164897859846195188510758002487141775097041710614128644684548383071335092265277962489995163953551109806168366833898939160905151781760369827134808736790517270225110007300676472878997933817725539876785904828571379117075625962060879173816109991207584307539047297680878875336697787956708329259876731487558946598650899292747625863297651016248116078148720676214823442048856318596924610952502255857362402995965544108103286241766312192118680439664522467433072216155781115001617253069981385638640834848326604218734575194773755731407595531065132099393819183493107864473230324855681209809447020259121681123628161453073024665866732764415833858099035533800429039268437559276756943989456687742855328722958459652804208802704511286038799648112726302410815832818924601504742243139912426257999096437515650821565708349225843243212564022876723640178994481471836393432702550317601589837485175395292241708112181325366484793252371195459123422696603640959528456269623496495801310948596218463871050012536191303167996395902899975449319650357866796547181647215177349942534480511339100055985867518519194354917830300840764947195177455965631807191488849203708157514602257831009688948172753140837038760000800109438077572606547107511316263166070586885267110909458630538352676292944005629022983137265156962112928517175224977687697070047561736369743058803471751950015757324179109221640552611684051112432035161910542517669005504105008606987814053820039610928423662147240673916731617729445809308286923915750561747511819954159076612971366492142353788498422304989537614570886713106208701410330524880490809240024881409746442892836703832432426885300023611291577426703001780371323177375006872295463795116277902412461899616006148338835367445687374696953099304129071730537020584512254180636687347744445536084511414292706730221193513899011436830102030767947959451187765546365115870643243759692211752312008013511753904448482806686506902320084448343757033673093391062450540394110054611044619997973597870354858072292531368706962400141835136211271684534510356513387016243891030523365497868641825940373052426277753215329299252142461198124478084095822296806041068368006638247694668398875940501914797733837904807786647384710995230466773093991929582972388814811021806560297514837369469788239821110689344360847207017713079668767696526392087458367092201976881133415505107181191437954090353698641127107914715459852065881055969454736556022472193149902780196243342082623525397934822826471093816855119897661170226263750939963432551023382454990515078759918907380117804247262444689272081185713276675083805465302327059812502256353079590709120394933467346415420916449708187407904696921209590295235215030101295690674766464157115097807138918665109399078234849175555089466033366002950636430508940433218542672796916630326725412378684350578947696986774920311632152890459997315112587191182575574681417389267941393671921534162764847910738109153111018541443329284436360748508742503326410950274121641577372500428563570922725090601137861293917905072459638228505790962078381953255341865320862856492838935453154957732699415154525065433945497096791098289379062200217268453230315874024691741263694036734355793639504546683116858572291246265087603913377378640727801730725104072411175729729348881842399651890205925961120757603410738570817176189465359110625432707417670289128964000026498014180350937094904773692315477169879760383699504797674837460678567694741260563713568144211246117438046514270120958893065649709831275983632513400683828145581937015425207288284645685697650849482570836748059363314550643738973317426293506411498411057614360651170932708622295132202116793657762015256771627273377006279955092278871164217058236650906505933265264201543014961080225410367520847444576735870804903163171063483904029974507769011491086473488260140522898706095568404241728677644362050192125355921581893553361856924552253280901419054672311620645185720704177541776030453795800551554672617996531645356427338255168508912968506011134352635845199439281965453012835113308789295212882243292943199680655634844136851828232223732497660148842204751399895392448513008174558593761808443531133314930214799849023923804356107042623686624593588793858884618421061648627921897221738830432441103320480634656520582153730956860410285671576189251015029327281872118203952900694788212488657967083919578053432841868578562498396424442071351072693416567140707589133407299993045852670077337248547553907266627984018854275703082042839621695070817871637345493057099943799011325153067351226986522766644956032635622506777263322174832199441242017668837167304869169162758140198943626222702342058622108579583794711818370637619981770347608042146075974556313128089743231524639765515767899227226406682790777877574072568483306144295535924287418641593386498530176160902646878170325388253236496515890571988147406475553317614325057963071143473552283666239458007220965443565254207985141313637634125867530661432728445608882324850005259031680971737630281921262252461564946558379562236827753618014867476299902303505776586686613537232734493696280584875276454513240559795066674290500300738557288086720492071077449448941352353077029917370771033363449407825674075597204088654328255098802235253005825647176146691675215136965589851903902201418413349014952691469351319337022603741657121404436285902973719160098794413426697463558188198750388900699445132146998717628672080443192219384975076521660414043329960130234247178396673270201531185602785031468764068042276327707153257478404196909760912582362599200727265667272358563552862586225780144875605974971373281976133713401839023696853804831490624364264627854019036172874818484324607809078625215400283891526359605276562291231847936639071783508314364746876858801414167830234161690424228153383185924351472951535013965834456593782696464076754207539470340946682397485375980908209550922053035375799629087033223761038238278918427969977604543070563293023537685431509183344054916623458153778341196464245346954128456199199096146053373317115325573826718725625466079319405432905411056339905988203558447871999137095884985059148899326441624904104794921646654595751198831606764442676515068747067971516682659646977527092639168197817582431675691663522861887578805364430357283415090392018879584962748969649410421960475631357708290702930754946792009221105827669789703455648359343708925263360531178106820407880153490651909640910962785787727382503546021750815199213883953732481863644388532992706655911958897579635625126982131462256992369746348417368173840069695480945525966902094964353032068539111378936759567284802097918734353819214544182152660021338125809061038719886310036318827992458219450134098175031455541872975168592718554076647567179980698298065546188413890063512598608581031545426936895810613667841194467477409233618755757264383983392533504561288659458326702355830028114002476337230782256526367270377766116494489760200054585516914680559779456772927503159320041729200441735458682608056894958863752070440939642216861864843270396524728898316971880304408367190997044151290733971951270371845259108276606266231236059674224774042555454916176722159362246138321004824375444650741951982868419265709526882620714283382117848625586228603285604502206250071916169087817937180448343233329656632208288567055401074456138135038653938831552015483027415672493260174150680975896023935668833017063961339244673160051290763859592335153946133193993258938526314474985458984873469292845720113070913914257018244414913884002801433867090269944297042258307639499171612719806198838101580129698926185487110133581744137311988370555952841883103476330181205669115362586491347013272099783557442944800282517724466738430422890862476642213623761469864041276512407701594401163616991698036401756989587930632197965141265447531232448949850155717078493025422116902943002260863106270150472553101412400188073374956000769755868051505664996548070998762839802000401605115464359094910398654547452924928558819295475960085294235543231580007492086394295987668791471191497621678753174863273573793840878740699192110820415852255672012899533205137671188397973313513891567103363080178445021122036995702748286655519224391746449687591746381587371460738471844602148345071525852870027181487195670408866449390406898382550085065154461562963974221226271463751524077717205826269951806052130975859186304171717176880676037420486933559978158649067212795603847500578589135043809849426765099769443010232565617724924488965916322218028717660958538553847480035310224843849081784272304198339450177679827906808181388720719145973162493862931818041352899860857165173864174602694300462675078461033516026273748310513802640122704179322002693006082604959317606639506828658717629045871269404395144244420601585199958684755860413066104038050406946500673135009525132841409101756978932625700173459174278570462496181621948197017352364150633966908761333572360182694376693289471827334638962874015292715368985406039618915370049900406334210093516264393628166962693442099025292191777688886730903863143317324010055125533199467660592300644309953464554178369079183098135893086464550810634316320409382609774580448959079234235062514537567725889986513472125966227064577608277986980020040743141666632332910149842107951362915640797464186318202211359556561694530900655443993913925917207436620404401029411021247005635247497262298209948286467421820387769805482777473642300171060852795989742666204753112299618841631679295983701280591023976276489268711497940094885737462894357955524505126776477232514371952813334679868201033088360286171541839939815256447586400925051464938754967794208986947579998583127767446224660572331592387516515160734981263451630952733408590237730019753714187666866746757835730756819446002074618939386551240141353361432481100884630569020780233566716793235650549337086124274959496398959856224669904114974522334879118257121865204704252522469041849967493325775849112432605226725065618306341673480646601323280654788111109970193887321098142517366135507449566545434017211575789630982497919012801631681822283123631793670185467911664336595622598297000711621018733591859990302021822563253988382529009761594296343753035842602745008144489414973539884345356678587259129437486345213413065958245221072144855194614112557853586537739190220913320665033835633880834645773582106108564094742112625602022852419644544534955946160473683831658235193976539012441283792606162734073015898878713611712141550284841036251414986770186388714635538091450467683271040363767016695501125848443461542172937859289770868873741557156101912933732899728039681488392212389975020584121070479483351670969359053057935199060041884132525983016197962704822973141467472666346489429025816056788548590771681182457079236926070274164709489679240400623990752637640172263324977988465377307187243347742933883408618386804581558804463955466796803520606115897351754373486951502147705349452231581848391303372267664092182606386835988890330013749030703328837870020348323763644222475384199458614971315984879213326119095878304556246921220209168544459060120689939731348418325055005328234137484337780196421086687974660230079742385844100267288281609108040501188599617696260385354571998510644978135529425223276528469866397767065824683662606440648427687296193975005506069359049789662672056714595224408676359260767448311616978016587577267108942108979589861739756452100171443104350492324489555515346855760097048908143425483476274397609755888678323641191528446463822987323486207283604166117052712133946185136324644375509063391896809849566033871267070941268525121909850712469841309254149087182691780403903745162427964328697895995688459384841668007210901535700712091099292853516777962382059242636577154140942798389839671309247806743296169129234500481016641982930999109191311951205189220395631905519097552592905630280704501164221866583436319786388981218644703727737469914424038046053874416350052795395134559375208655819657183905935497846088545545577341082821969074990975774487959562376037516888507786268793875857483555513226381244883273326673371420282717671927967068836334549921892530838957398795491788156895572114470330658250367842807143294604356642870062630131341157062950675053185283974791425905773005858538418080754274526823916335337842947789577485672711573089108271993220511337907955790624684141785326490343167200514807443275963516716619059189240015168775272561241115308759962758641235859622490543106351276162110317521373894826954929382748303734369122761379090974881596799962891181186220006229284130478741879542096648909597098331831674812953125739562651541933444810211703844780943005275078041435231680814676174047015703242423277676509652829055740042092567888791486726696278916555256975053265530020391608016426269087728897442755446175807495987028565682641080269135166800316044411461882353135994461114796261756339528138142148780540056456228163111621692455406967960060391633397266802779239904768141069504215885810948228044932191063507650481000575597196804861571334694643511620735252397117194321415077403665636144292612013124042272844606304552710693669978180095546469612111083460304788918163976574846506916802960698062083206764073029410365207699585202424553498757878583839387051944162531404935486130819518650822076389812765346796872472727308910902283680741105747048520950945581932918071898477598249761672345895989907210709906408347022613709741996124655225337821559558138792211100406705740002525010460166899026287457981361887388688066744550302444895524589681182411217673835027811656119576907801748085525309214185576614500028839017164341447857049917561879602834252119621160901455605501915017057855955422354464234925737779031866890286089631619636284756171422293709098623443435705133557429999218185021497683617158341042721820584600857950098386196498183939531866708814493961934192660623855607748493911411689869699864782763319577276170646470898211108217998098075487780903609312826221581504446613430137722697197674820376363497856941969309609797581346257788242305872971112590725662616060378303501652367998972805716121700408057493357811383127232914634023128145760709861339032690427985846613820078190829195791550740354413004177868357816800684600208730248096891808519546158474747367314003077206994005681631768944289534817700116222030543893965686359589561155912472791343987522414530528176824113720897641641312008608615043613809922122354623367816018464054313856659675440275630872472539707397395449961257135275803913462176690839497142890740671847872202396639498026992996351145567563687552064781883433005513028254307609838797665533373750143609503188700266322061603706431016429812131219881499257073447523107500227161740112859832206081864452050176847553200115139637674944516071587209520293645133770197886509365494020882485786505168418701450774516382965588843304780047045715709921908208245392800409735691047115440429051706935960124913216491791773785303769032236480799841038832010502047719813402681467109257720532444259158314077191258122948392645405376263530398028133643011948441635168291801517993554292685749281394982414574259723248436074001390839048475288462099557043705541611231151652093767943781400850572084180125732590938050476143788248123217021293479862472021340470201672584994459610926853861152525347455578376521999695995611924983628118397122219635964890585284887766507520843098459941562301697489775137915921750181219565968223702392471746912433903689603232180768318365566403690479279462540967460424234036318108415709334588203144081173025882876711952353038245334430853277386344713609237348959679181003114266120876547903690023239489492239659059289881288109111897832574142691862828104931974081603102027805004048578468648005034121550059562429455216381887617318242581990379046839146451404399191049962010562420609929111635799601632035915288318737079628274495131725044334419420011047633183118623179571481214714587170211142632673446900065418912340600826713493928788776713419404185832699290155322860541569480819768053222347856380859619838918936237216892234089112751305421115931518707831867468555815987913450187026592552813742806384303140806283683458785633092345009802107967545634375482431135253171537418311136254971278958622687167992257548573700852066319373804834312705427399240769524005280792675079777549591615606066838549263410436366889284230558272320468155284520185644928847844563580212221280957819272932547291167416115786646557160188630964254643892454266697048362800796679781334197232639688174838914848977536240726564068430685785167506683131340332208113992887111090400490455596988900903172034011693019062470994077857137064116535226263214220470212512599533308894028086420534943781315376656623075708014247523569681051288326958759369267815510549801067728295177383056901935928802034736509878757673449513821077207920789945916607871882647126892168846629222154260968040606234803966788354576057788222731052226528886800359222555423647670725559382901438583491792391309221624549018414536993829210831229916604420753210133606696626240998155935987687031612064768354840267098424772874369045839593999856053075499494100217983731504842678387398517639224460553514378046329551229462766768775559243089926602063456705873177808041767677120524417461677237907123893632427005643894548103441198654166252997045019858114821190728484911213794802060093488415467162422052535020589217983819744453945414467826696670924072844001116498904170232741261074596192081963249705675726550931891990738599716849745771717698766558372960892726095395210878237033697294035681802943952788691538151938007657521518577548796381545459512009205780438984252472731187689108931649699949165032451354163937508034472476109670235452514490355044943051489530407836445499553562567852971054791018206387816321538029325851129717252523560919177939231328281396247462108907345696732483416432572523828526688446644938111995502743714515469843131786955106828048340470833594140960746220187636868456337553508425685861023876130720108974476117110522010409443814102741431843273128866184601755671955832672569240229898256672760100115353219614063414390270225339851898193911491111929628533765540586973256737744081735484867098810154221377266547146446977467704646636797854183136174516610329441622576624691316303618858091469831858695714939281310429028995762365777843057923757620978106827114563063925995638883117212221654598635586704712949964060845786286539140832908027375540688135778708759423969078352130874307585007690383153241518442429891624355241655282885457170692870378429154077923252400064699420612382520696150761572503354398665330442874352211619035492719824577061986288015573796248604505168816183914432840109550999991167333793369026520644458453711744925414948577119290908406932774410934504923102283897509663551672180299379275974603216829715087771215405675126417176762273144891375481180074316933504671425436952856461057182195068510663024114585719478464890123474222454521333127179595565696798780000245337354548769831080832678082497286015614112156215800197788615600193502087409737134171423978892597759445364373135712649795940830069771141999670161808654909537474129594470248616038011786879475384413576101277116157321155846345964436301931043201576379817825606922819435177078544694908887783277990521548563000656901227219196686046408764776883614940717919850625846408907111973893241585099668802474265717496333101417502125301205318994537056462378230666146823864038107530353129132297878317376759459083340877344962816177074960141259142569396980329337392520262800012858571479184551093062950639220472578748192645425722847729377465850626520360553477914834697573386188662726983439350153265188935804000275597285845151017996440202369582344456846387833860374454719345909687509411757661746228040060420734769212089851859500258558093087291859176732637427165431704382665507293909483479337795381627040516205743361646560368608476402393604465996382455475540822179277361760680773360034106385416214049303589175555261928300563967806468303916811487717475734157981287381700035905950702644337493065026491128319119762967826907035920262183245902730491686945304499854851424729767097478624826172016895756780032537649937579085125283108546243159838983390506293566979269528895822968830390130017332796237475012000743717497198614191524117617860085025088615567374120991119675338905300869965437986607751149709064889784095481211000184688325770095197926170092171343828245512002755505246071894308761996274140352915097912436826249633217639748295973549126444675844160050317101170309262447606109460934721209567739951970884770955616397190923183930254552217594177842273353391534368371133021306075117899216749475762919219763178934705757870283018242332231741610069200972526910288130420947692472835416394826468760433060821687059626508484059869992334819871291941111726260906597710819653343288569866005317735401320057234252639475832902257750174626543589288794197344333680725565677723405611323824046802730334262801077229276064264300836929774162750524652129658188397330061731060740556129832343947630518733006618004549734446985675078354614266291027663324231328065193279954037804938016391383692592212812253579732108378489095958634065201992864512949260283062895663491218354656149233575706457256918625965008384126294723767707304684016253642082631198870904687734991208671529232623582701723180682495939766802744588381978154925524546895870502740728100939454666658615283132420351055467721955236356622903373143825550397328746914634186517409511463475899808705733112447413452434392983451270380778650206812367373426096769164675706452360953372242026552023273595610188499431364028181306666060123621541932716875317661771122875236426939743581421898059126047797736056235871427732601386338454817937993768101629698430319121683928514484632397780404714483325292127185235373061562162066120409981143838644545756492667073337935309729405039786700585232868289405581399200122302784859974867612565475688653951854984131454177455402752649872906724042460952473131712678441794679185064428249124268957702618759818366780797531577315353006489883667152171745529350355008310754983759271768358376906704921598870977069300502088995124260728625528650569724317915925183716270638935465218634918656906518673743579381737219654543710755485908125516365260398638176445607280323166536570651136511448322229633924149006458193584909620036607827070859186613199262876481793204143023796092526067006689748914412026428288239410946212710191296202065007221798309612071746784939543920591586228506983224889468624750832042154499237455259532753477689880036963774596995923615601768022078963195868761968513371606250446985939172993493268672855962140531593618807016298305261587621761066542922584679326395133016301937957006972094992675623977977718529963028345492144489820798015600387658811818881447393430360593795365804790816427505734249446012040160734726371900364753343876867619865419310953257681902457397501836136600446164395072262519323151869319770430022450941272594343677239581280856507449893516384102512615076010532807213264416603969964589351959762605330207272414904918001738252361578016044179308329318950864955313058701731507026887311620889638060822186327961627175184420285979538576625277329776459904749788585423470676159062711821348919688947896988808968569620192882767211858139272432379919577040590008404184981279824267575507534674983067800516141794847399080381709123103806764566528343908873725286515866791730154841818611913128481222263166050687861573492231646593769584285659087671694412713593506664957060197535159175772579486515383902689545694082415260106421879235346411755047418235176681353356117206668149606225857174455391276813429895045601981281377573054868017799416700012711410605877567181829449329451950371516076725932470454913497595471004583205835121254242254721905481869684203557823152887439476434029527799857232337577927656379297932221804544360138784477323050903251100944670548386857809581007606778749562510386524981273163244039527699543084848679021172831764703020790722064231009068071541080460878636625376915585827276990841502915704028100261216274194951870707215217463017687397094461595873698923112222293747060925336228859226808156834384234135373138671747073623148766382527907088642993583563505961322733696730905323094437034011970677956419602070180615061499754417079461339011390512563078106458406234746445219186724183042680177368858915242451622211321472545318321336371422232693695179391467508315742011400214979047191081710968763326563375756446444577373656558165580313921899501414752140437018822179896136551265289491171151726695137143246203573574060770001519134777924242928148136873169845762537638854448081798846663610160053933330356827528216186374020778232557589418664299310425874145424340985915848830662799840576263117331249479648834658203093224657859927278612337829938090111926581978220185141649450663639909882198531967853351265250904485257556097482135777411087978899653554069728888303137126925762057333229256593607029719853998445749558285637777755134299338040435140530219252152385683331471955661303676464759144730164259212062912533331780284924637869406201428625711212370610118362343652810703288108065740706550340439118350320193785867531182164025862212767925089202483752872347273054941394340897835986517821317984087578928163006813310864091821140649105045274355204245365087754650655430317004839275596938780524803262269840089312847773975749106001498560794470732881437886589161876381480594684913805120290671403555357655072758385139904158379063341111893569025241165612975311167857072718112105866074360504721655156610905357122835174086326522222715101483818174556057699455088081512056912918453379565174200248177590595216763218473340857105277799567477216642977420957641610770447330307914432520702535537120651640874522998724084317927161817855016171785451836340785611381536586702929242474123390439283763079529199562558846341114005853764371203397810705430208123649584478182694187397461289469339454714269224994335490060258917287518671928785766701897772193619699979671552809222919171643668998471568734828178456534642539520691888573648282169444386525798140481805978262352671434294252401687655348048019646396574534201437773407713420366705074122262787824567539462213478633220726630190810383816436385975832615642505729929162499925731275352567847833738484859787293738703314350101976112392299464092420405307128339896565254367521833984389587093750149017341375897473970897199357607910387142069532458827227805387617116180395160081183726746506653136042131030941296863160681150205001824884170228626009757741367956299098685634621520459898889120319241436237627894685950593509407185976845937044526121041064324274507686393134969977170907018590149747114099303348110853552963127558148188584545428411319446114857850001585219361823931381981993701226251806853963469362961260277743427021523671938039716339603583894186740398230980584773706103461268724548648286213305280918607242080374431459584890925652196158501990545156160004120889653245576114395353766709784061304352093146444919677191599678928583446973355081079122426670518577277436823075800708241301634914813318969642313620211070066130558338060702512039020838717406760188278472476046496875374805069337855109902513889564898787367205917812845211916495493443005918254917192163327331986055893980758848386478832678967243666042607418828060380014588428276289269574541874364576766156250369950644287481911012506480106559781278960822569007378164392386047523382470412101813306582907535853522207525044849729636163950324236993728846124413813476989281824819021713274897883298443789695314980219627134774100051874945468209302873160959189319988495579941356217570463352224695023551113561242917171579395416488286948618213320975018354728404133498167564014549584112850004298827500286737686309243537733000689396700750025152107253389051968667326143298481686845529844873363937477564140467294362699611355069169496304978279391199617725714455770688054197279245944969051417075260264573223187660468594432384681211880852382739910971435465746636575550136699909079940950197281971046238349288075172432549077845563270355599021024015518120315422305065657772007972451617586793450182603275716820549380771954362709862614938111265211078949429684542503778822843626173349252569030663968526378930628294630551435370357850615990329881376211944504229933721518353052996113846031982043521966660225743381949743637963544270917972950154467421712271408460408290050638927408619509253862859073888870723057272979359440772680655229606996526968093329836041646806054720866490885696475517210823831558049789030308315116614562193481610290706484995628552550628792937929986184275532744986025947940751280630414061660741347908407482624215795241373685599298438048300164065783038498972741090735472808057713546982947101568338468394190562575770065863132528509496609110942699685638864924495373581540837245604050979558655986708059121171242850746616926399013095820741191738745843543222463440546116998220494748802543370308703143710624321496339935148818809295241232363253359085899764370919185733277675893579067791814054664269690070238388022356258152225886863554279825087688603227291665193055023262363411857285419700228252990959099790685139836458558684664975913886086095026847006292621090040288300366613219270526991079867912297796546542247186365498116069054744228269615047543550738548103928000870216708460350615325488161755171333587907481040294429764892841572363432624885252144300151607674655711638538854062835451943168762548464504353102885833187570566288466663665304167094050419868791626488928994962668267890642464696927581393962664026091747979616427474706411694869438194508559135966140086735846019112034904012104133101039289151420169572216015281259174826105694250751340765302186188359434160007443856275839593918452932774953327138536756703361521394143813892867429601134534332229196035981502198799613112976042663181521956353609048858213544752969548199452446515686807814847572832480119278415466294612778475094098072765133974171712101548290625477833867758390703548047902110928276607876371210673150903327384397702859409168681325443402919730218519370421383861843437456102310198021981548758294826637972987595226177362164681449026993835423692390223894722991669091616973158861711811429288865634555925284661765360339188239338546318425933939461108049448313211069987387161425472641023806537575917116994541282896830483099355500148091066383947568589512929695295148967094432436344582174969258079063918865914041570636341104696448546393449346070470334830728334233707456744455951753705957330170172396170879175934250204885540740869816025101408141648998723511918098074120413710133583438819900140198275305052304304102150970223936920741718430458180102923585916678421724075150180328332889484751447974331080681394126561291441471216719471128294768352330392021640837385917767898909619120725847419976181841552056062892708427561766121616669392777780616803954963447581314946851313135858559146419784470226163510486804557769075835532631050581445873525346654252537874241948219683884427869122653722373724301492481047600749181218297162666820314082858847730949631300998773450532981319541620213752036802171655254558187164644793894767531335950611080711578795939000771391330631253847915246977451269065398135442332985307750061942815032797658434411275661363543626498194307184969973128188584585709860351841098960149404306189882410363662013446754666133607198366572439629076014653997540987461181280236318634249571973999515594598256919899119438985228957999192709744831220625379246018116005473528659089441187372285936583407940651030066371207830959682090018001198334035539651963675068955331615834520688751511872186401997941418656334368257837774799594365798081324038360264963855221913981186311873390890738323395588606527169983093162260720766983209354819030237902124792445904222034665033086431092760250446112076897700793907762586729766211593224323805684048402905174831630792533110125913526842276701617506997632592059158043825245921539951234138790063333396093709003426115116545389623131139423041030842466944195105430466698893491052383706983350984506539554140730288438509717063729532200744979666582089182005054220000150320022361196737682546250956195529278817234952988587385744344187120940583000150580157339537528715848553716375255353505035119790902921898138452039869233615255753358477596969507933650753645038224361162200727106707576522470896221355133377935986083803765308000865219490694257250845917416765958433029298647823317869504101919444637530117057120367253780866186554827448278761757342814433430028488828097059110847121261423066966977802325013565394226494861929348434503347522909917851851140108115238531692495988373079497881219656605338833109668707651303002128402731416984231564087995984805815927176956720877099059724276223248835421517704874987568786504529619533953888975408011063113691566896889073103015734763403438473207347447503901152002389192974814022691278778789865495393216390587947193297796228052746071760310033702594854822213971184844164515781368636593707116543945593782981668264412431573107345614243582750099952324558058903148391428378252259685164254410793532213773369541525289119825379393699942821482908716135495140110694838630746808774435746503940345595609756317267569630284561929363472753178073035977439825333894414373268519816356945092487943147105646775307669454983369525540598058831133437949719877797286540963663973234240573571024822565920690734943034102331415163090937390825826495954768814646501461100002013288278218500621618365263730825327797595791823366540017752047001856136378687543107996373040391583560507341289144839974786067754925936267631336711636903885672395821978204751728798372036236225654956780069693157509023309951214569888032070036337984168756746730489026272529749675770516819722355580020153672616950069486973878121931417084534568952923748004431825870454121534301134847143920201733114587469324598162472074860090865420197668667194546318258972613768039149827745510410921371604966292834104910760259455307516824250078793218586257333097548272479247080723594621012869481044528357023720877734183102609337803178301349312210936388705166151454446628491925481494863043234151918951187687769518643702932549277465656759487148595333701735760045225261956227643920164840419307060762851625352173534357880460409550526632450966283636212066771432797092232286465607858847141774918224395853907089812455082009870401632303658435059838151195021311446052102090924387977867046858814626346783990672351789070505010064328529250737976825083127617312097098956643928980215520334125563266686209911153901016451564886478672064870165486632889422747411720479832412029980762734219074122977353508670473931034238715526670376611371916077362594384722929361001912755806983409970877006976121922098093850263511366485849352703141787248605735666281432569569832727106763980014749131040601109019223656424678125748731015960653814367004524775304728507878947592231901193300890480126195937666726574241310747555967676020521430478977654799112625286834841622921596705715558914541549530250964987696395631162317112439301654647731863630971858499792293283794678649476297519891662484156922394256530967123762100568322625217738814541795759069186319689292450853631718050031728748198741487682864641642422298561308409425176828724965662677137584112097754339000104923285111058927761128735708736392845236584431030483908290129642702629825043372178278665065770123323754977081252622554499116041622912168484463456757890357541234162986654628138627048689506724648210256217919296597264723858663952372274767829562077681567984070882301293349417063592836263928523894271275124112103645596334631707568502960157454355108284203201061614639431011228228097824341900299480409323266054830662805128311891783189824602092101208418608919423387989458925718531345539187684984542022323688553150407997877935994320062814856875175656576616129951678824414202447585924308987333254450938584179630045881251675392691812772607159061441773004859538670462709211353520709180537022087453369104398236313086954230079215284204506969408337893770948416913541307924810283508865820853949588122440058820971925773732961511479889647133764575009422262319618843358731459261601263119275639634990473726235379514720557352204409728987160270587470206107484758104295496318681722136447739473857209738220280206821886854159963662839522435351874759105072181104557922718925915973202823203732613556217013355127593228441185859414316973682927918622793023649020438149310301511882769860315058314138919327412626101335749683299165253566949113809389704275263787396969343317151725902491080818093872258784343969207244300447837158535889591959548635983459507759107051646813431884320947542426933230290187162103807864283149279880420340768369616408700574182868634227181402715322024265165654764343688201016723011758814114373060660097611327360236932957184637473490534337782279947891270460400487331376565926197289200669451641840060691766844367305825065824277693118665062457653342189092401907765618288386294374487589082284593159054984913394085601965511361884249881853434083890629189852561109865245472305600964126229349281771259517346401794391926901715082651316713316031519755703130675172528233992241755692173439998715596220093311565530028225428209538577237413856773009823856295136254015043180837363645970752723274604713153532066645095762405024980169735552269971076423176157893563604620644868299206601375781973518590021526652994253072044162649755876378442777439826970223618381697067359788451402074336334551508409084190256739237162773508964589354484925589512260275227415890575706500176622734154294250736564498654002262185646171409778215854316934016146154626805617187704463221015432685670998390668910669945231278789043028720092242292459562525801189264850108118535611209860100149916013666015329072971065061443546494651618461161123809720696093667415540539116982632949351099312694692418053339336321707377293352821993520953776733246687515904453139970697722546344990336537960045513518302849675646702497957825539048732610487432596575540407921706943077962180953844254672553107309935340673897350457495699872963889367718060850878979361745288016478509239560579310693012869124267742392333705415687566685793502313404578502118085238093529081211671195559484985339721233991471821583260247527681416564329344860279715033152279478654747554111982704361966596920173065797698142424947912958558377267412725692281094883533218807331698077786639552026335163536019557954967878041427933381946816518451451703673532591115260196917070320268033049251454033432094879102444384543566763087477078931337433591466017237291431733035906341659101432861036787819024791567633847038810714906043043543215391158316743176929647506801125900504848557599387525138721941447807386178224670266910821607157231632024715226417154461258961560694782823919939612583091376843066457484646942039438808882555275260711698872665075345147864417564039673294927183433812978502049663843693148580045814596212920827396100520436728519616559378468119635313672277804364249002334277936123596842305584569097613112174774750869683816947432714839794150163288437403019663391370323244187317607523247629512976299173615275599495312986500820652830604048475131053170659236242677703583758342825881171292509650656489415965198530957995700982178026349946461244354560434237233018600257337094650293587546546872934860135277704058289748400291798162373083250256297767039783788478246745384817113209521645140455589281594770664989003818287510532161019698537745927566917270789948438120128299186348149759774026380458254917393123281447835673963443713505360350067780468760543628345171792922086103907092832999514221484750281356256469981356895958336744294729775835547655057317872730630104510784910801694906208521085325463966229670371262308992595669053609814292407505372116760527325942649067785750412332822088688019102315655359235817997401312323133905385897462292430958543816020781740140454315284127230340204435839614116905298140819070342633084297884375585229301933078696737167569626105084491763231774234020072094784248030145228929331717179860086974689031063613540443602593265618332362243735661789413919492128947353504131713062178980716717315577977486964152142377434893093992523135274244810483253846538053211016397975522954366597930148833283418621894315012398273820453555811418187383348266928098885417149206157525623956657511595233447992444938165045156416872119986836457841197359928505863817800639618764879695030116181902979867465506478387700068867346363241746866932443952076573757723362120097872004498166061806594738261860576029381575052132007257003655153473997786287762375564476927565308194641983970992722381227105629010565857691740876836389594212348639188924604262400688717409393194923615701992172316563173624073705653262546003965630269120085182653570573614730923873617969163358234274973920589423627693361161049233790710531761445794400341428624957827555917741330172360342603666117817339847312651412038889103302801797377214247438061154161272021896076346560355699922300934139835024549925259412672858349555049156718366543676865156568206479762303245587821058550919045478284393465488473425201265505826756078132981997902447112007028803853327222273495006701427929664449905598366902654128165640872233712034239953416760601543474208550071767871383380661819363811528870995752097559499224412957301236881496831627317933306229300626921453192559854058114396724871169358811628682921920928438273704415970575771977210280055804743288348091370913075565743889630001555054057744078807512058204351521732998951994016443548530031105600466319378554651801246015634314283582385955841938701405601638825682848692435790094945432489386028726874586597980038032950434677354922422532152654069518220780981687097159686081733620240418000004219808553237498182176136654085529931175593677783058258705814266871866847380974024585689813842740337128612625027875143119308297630662160095465408253994295186561501006054942793316171000503842227948702726910174236289924802098300307757090830160004099491561603761704677413611609112542481253300156698863308989046288839209915311319558157975277538795776972006832721894248209656230132083873917026241611853453369216351093301829649871807261306297633216739431248605544530592824250958023800551168211753816200379831719271026064460217145992647926640738668407565917082625706177731012327201112534960231211902161209217995666315314179753547026229762754262295794724902227585370336294210031027581969942143897930672950346317302527078167262266263580958252780320722995375408429218648471650197579872643249938437210150053247434438500233906313959585552594048604403357722585353865057385291936400581245481563089715431164615383262560808292149410770304501790836864959239231715737844571388309516221885592413628220803207414051161288073706763833470642288214954839399309339032262292846559724958722577698272626379494347304051045729779394682656805481047096615354434707725657097854774870622161129822898518181074719695782897542956703528935888869712842543055192911720524338164282960185859179808030328557336685012485532578669929384659249831012621852727451125977847705375208941159324221771384262847933026571438378407357858373343952466356028393580124904122392589057062701001706149861966810993073772719391246176594646618125527161582794498875165379220801964445514959024561470713016127243345872576487841595493996171720541356907620820994409938115924574597746395346529949337333109422728537982492420185188427886824954139864346237508764450964420015042796807987279835492393753091523805491653492948170332861242768743116270356960444508097161901240357723315405306760090009569056757206763048832193708913666825689451900751375456154110296337060995769913083409733805120804136794757116503237487574499463554894087863448172830851030104772236032515678788149964948414602566515512698446465546958457541139657410815408093935950407556117495269168800562273856141340870299132417550820323341324621780467083332077834632003152741194532481899113300854846955595254068823298667955291873067998480082878238386314872961351907954739913329817085163355582047790521418672686101199508464539892519427866967972456724222559362303992381296775572121918258910897867614493906726803877721231960790285820476914871127547272622659357943943954355908648067930134082681887672475112766878584892110349400937681370307730942673280997338086678017638450653029201883698693270171497121370504112632302505997409658569758324465653339817330221073081077187256900469539244554108511127693672687740417750388070896327112957048749593419714792963101922282970114795401124898295343620361328403801581884297280627949622609409487677754112005671469901157027944587372205749465777302759674137816815557204207243862260794538352041784680926787673800520398433570794148394218133545461129309802047372029968559461276815517536290472445779750808388653225301913302785038200232218539013106861553508410387626071370826378343047908071525983588957222892617033272595210425205448258073541420492687411615393178552679733637553051207615232127952063471609822580245505783922748151743120703510238756696822308366987799023482238473187032763075839382252333936639218718349116009238262926231489259178254696607169041699585122871778502826125617998548716084606529769997482835699798073303105943698686086057219332869017577119469282302696113901039380478070230290521489034709717697560590091186854656680827063109407647331823242227242297524086369425124596369595829668300620488483758280471362785623473725310453520630047004184266764352841805026310655545527687845816621756885677284762819119654770697659041755818783850825597922402811055091039341391636499587925702578145528907777809150188029267402842808582267468294656630954575961457569431429870423406736112366513916074543834150823835868824113147849451295043241797350418638322494850461106318209706244418837885675685248189765099417291572828975451446588949373032715330705968564438745107567818490734457845326627954496846734862632380136974345258566679702457181274126024542917942825983500026297075042869790950515828993409644423303651637193067106038708358488863330431936451376511786760164982134017022189632912857068154144213212616719921944466198395381081014969586222818384117584146926233325452592689737617110821203758936008207486620750764613044071895850835309359642086293963207178485523034472732400931071629371561900418941618401690617394191149315712449892165351817427573664261254141624406251239544476702024331253465917900588971304304682867020300526249285523935216375261186513639522414347141797212879251346086911539882634111297947064734075105068950523068534340310170909647505159978700244510334224437675076993656985239659081818437094123928344407109776342453091304039866837576456626080745054227962883410413495763291030746591471709538836796613333518038568151597116753590314150101528632424148887261754820665430826362760221855899930185112490960999303362385813734698685894787700872528441449788774555901904528804245116013212314516944444481771277827503609056071542737647451784154917562797249502068361879486761916993381291767408505487947511263181829975696272884684524102836393405275078076380950989402024715885595911636698775375518553999673337084458302074587327691386270140875805054071815783768999530248047469430645324886868970748031557640984910020749989581455996322823383739009492275101423003502416766071744232391464315688804625251893922388571057481216472874282167233310466257542736467514902499188375973917058602667743798493043743787816900199008188717441849274370416804306292289515278030556522702135458703371417394514980728916067180978527556361886127736987315021109108905779598548580825174177444179525628148784659883659567708061900398192562593700296103913043740747301003504533180918943191308020901583509174570575054666465881060572315279028095985085376844855887534691935681670299901401619307164213412531351778027929226638998057596576105526624313691434833498140378720124981582558689924750908998361544978445408527083404537234440897506929875830533320395729334116684661715559182172928922943634665883765662070433442539109952062386298741449170743448118068048554537057079612948115842840822177643791664680829107127661491270620345046488948499985642641904767104165515151065303633985288000098713261829899932907484367476620994715957689504022289938814836686539860040170886503286700233470306724291376851229900036198800859210928071277224994686232126932751512755538348414640891318355633978829749329219132291451217511433685623048550248672916883438017520223932198522814776296449733139733803079436955253562048715448700990740367647736869160538018808696197988879637102223132559451020553775601154605055890472529772307241567176246875106391220014842584612494100889566320829792900294806796205681345938766631644332975472504046815355773892645399025436395751212088739730331987218287724284222000893470962193233101843562850327262292560304080800763098354421662848865619758549833858450924056725247201434463861581271929815639199773712753892304110655465257446752691203132784322731204826677776846557827050722447432407762127258717084765233168052367771526933892478849612764408999889473095830208264538515999445016673336644208490493668035499420729034795279524230256585822331201702248023117736630872583463577005548202128126368208361961512157470715597294845805929033430409544389788954104698993705089496005264485877126643185663741821766661859056488350064120510220525793195203493158679657612348748305394001367091513491541499615922866690322226919635242941964935563966010109840742236323110390829694051653940519103083239278943943432780410505678917728041778464623834534147562042051433651104164813906967946323808543910893740603635595133988413820606821602052899219162075937478421381186084911548175707272669501950411424076413997378518718621200076765312244633657170644512642685543558777869756592118012504155902513818099910042895369055637320316648126324839284461397614800060695310202320729265045831947208625011009973361998305584344778700232599656513787680452365524028223844943641924409030756656916899828291831326797724449998802578344944004474987452900589141389831770325455974948297061370512459701798007060932859000317736655338948028292412547946878648356878836684381976208733379153168125545729229973392689437081542964335603909767291122063300998124347798758422773226502292142628505483105955858001983921803313639302092792130154128218725729024504585885968945582078190451923941976668699853722327294104082148249986186858832131340481998313163631070636708831950219160150762658045419175116020285357920915869415353120893598668905424441707152593360592923457533631002944672368730887028830487728472018577219059627210154874970448837385722098596968233559531785763696644691439626372852563323462048669072343577706263119828567520128039360799954176730218130387897370040308221385079041352194524406316640474805429454882864108370842867320175886291548431465560382590749978987217640843871028861746818785900151153870387518695020231194502077264079152184005256763666696095551801263302646452646849239338966083088513608582968412999563992532041951677489523148725261622593940113839778414532477131407126163986354767796608268109372837565776903937851241307259009830112831528286506611719255108102058489178311815144957632079741729622170803123922443662256491881555112553860650477674432001644851348516253944045881184249554116641250417812408094309426676077641890733139151151421271021275004202380103786442243464618573937773163664225830245785856780128998950593389080928493536556392845367081836086746177026778150493113263394923192292268115208924025430912514557477915339025567378833280191158170098416711589351176386813177411732038977276768157730519435793298395177783398118218526098369922792784683047412872307503824983410873965739039758533004538020357806203733020178072890346585016707661616408159923759114359781140976408865031565941764842438116496844516653781597311211386072931364462249061029309694019642487846792357462501992662271371696247661654197911334999596775202010202221660127745578760733916354581880307108934003167038133111057476179170812460692922456554442189447893954841374647328038447956387614704732147584900856167718968903120650888638956141572844442760041216953220445232136165942818951460005649739325669190713717457752332438581994758552244782338799136049068092618491042824511323329356615594390721137486302066288465265079876574308802018396290549438912973565910645412229572932862397472587038592995141010538613947338298585596916495869416436510707670506962445517463299758784433468386941893086381061218604554499850200695536573002153812147572344093796403589349733721947707992762344934893160591400114101696127604425345601115964388419653186555334627574861817021918145870918042464877356465222671531977059552019135996834564582232833793491851128840799572280182872665234808761324039518166316460504122294073636841101225892367804254283160843591323790800723855446498786457139203036186253160565185665244084319385450563135282625530141262345100495066050211688809919976209533607949234830001458334717934755186138529908457089492996757477594837104095362077729669871620779960853097726162414323124333935488677467637224256142742418359761940099408659440675283955485947994164164859725099489965904954150867026567153754102602498956817548865101300520931800588028591701450871377944736574890978374904881663165393215022151426431880863836800167989614076019634707419695335101242468436943827219347935546553431364540644832427182550512584438273859779358404178187385819324378851152158979698852154538331506455328446464779594187889102408654185295108072588614054177083152914097374982261479847525857087532929970856527742709581216500938211143419262939147648035315569005462615889578275654546823747975899288733280847828341027276263501605130979361615546308510216181760791591137027966653645280558931175491632471126857163818345339753323873993223731100718722010136022387201014113384884289814662511941536278973407632482593529802489628702412993788596743222928253019038401558451808408108121702283964562916765560581398447918621990701163461855927753355159091349839273812398610884602724409488908642166084543012110715851349126299503242410215949199285589565776538454339796051130991560394029814357288433838049213442572350940886776589988243572377843228778257418846462870195945897454438318486110190378672419466488066390903506773402858574661702822675355073281457496348341205798951605990935601700584274663595455381493297794079440894739242015124601778225723719508242418545461954931956918958100506732914451264522318689511692482440157160039193452338741593412121976144857664844838780874316702729964653998131397483611791645157990742429830055727751900874771413044611431021742949739690203590716362043131620947169924700311219707867837306532005565855611205467379821538945216917932709829877413058166799169448674822790346922260285399455284290869891898727973002616853595000099559275347524171836039925328016201215354711391790891121954567839729172084146611175004599989615869835847041681409062900241573208219379932063948983876369022879623968475492383394149979859446384874078820377266638879306158123449312528725770951713121109559085999923929790506924420747899938407888693904181241411057276886619430169705700624925349017531474337422083838840279549791885833715020660851980051330356625409063145069793523130553927158403224465642586023963929854052337407805639132807431475272539561039386578149983370226918028106891481111442077298674251162217456682579738810265686923040596988394226404872851969841679721792558437522647509538393121262079011700402361561024522049984833182402359046761690356414358671132655325524095846716551692847924023506328204375233943084368429991697389734124538313206478253365967148668009964454257183103839667251767068569655552238579005168127820484185135541384586673015634714957751275524364104323096841132168052352698739007159051817252024235204883721654156787451309068966576341623306439980068328811497120620448494381435767013689669669115766024457226714163753263718606939183884755641294392484751235580548509211518964790060747014698027373072190206443375328729724861494738871949117659132344396312226865562720712670583968905357605315602391261208556002871528538159282855672234223736054951798107396571460292900854759922169328532003918089221111926088247620496658942775036100336762118392314789569238706152513339744351797964892847687286983900183816746896830400081298251653554735110122289445299478491119013440377835884698762130399541855631283494896489153293202575386451129968748933888012332768828868053811941321953782004888737103752683724824184594622730399218606292307704567487757406465470381702144514598433103872777201740439450561662880952765380903618919475608790434298015931347568995514141890710013286050655319012591049927765668984476325828170524421998820357042443544636753721067484749897201666435157483651099899691621216814917161332399938016715249952529840804732165550477263951435136121999080732666847238672955559947647955544223886384508573872660294802165036091485191901911589413541932466538116105263833636498474346136538711178330914747054110404559435372764012304987491219651792220586974661054992277524218124199193687679609664553027186912183198672558483047943327364826336686752596995874352883938083304361932175403239547973691151076492472548733284576971988945340669472224880614514985462671956173016123569244414352807252729185846784399918216347415134687518684581494626023113994721027877336012015529236025109581798894595629936076415552415277234952858184777535518641518605842192321372050804730684537781668734856692057395852831214447999240708453019456876104580122555683715247510130039028692887271992421635343975473911458771130074575500223010397670517509421561126174594205472237249511295747890560383989950852528788596378777953333960126617533153633473488688224649712629567280399531307466303245553309038767156966089644913343041248979856276614617949921623069260598334153565824486474183122927993574636632534275867893664128736730165336112597446181709290296633056329651760527143525853630069927350058228804774631928515592508981534319103674328946578014284988790480690471261542944658316217125307477282348056119319187277076578401782201697030183849590914490698525771774263855139117400461495862569374872663620879126292299536078756217479419434437184289801608804695367287255077428169194597092440768066624235479100141535676683927636003568769396812761318837721998705038505717891756205313465418654309211936469312846196499260273439722187401888221601605136256784821555952160490560258773868733525854255165554322429114884887808738740125963664454248674885118621315252546272249165894946983453855159737958247495469635077303835690785799982213732793153887693854255906579141274217287640539831453272812557174142725204418911658108100622838010578040263777325173964788758410125888698749676388505622295121759148857026856961081242528298993744867356746182454622804039167603969312508188883565312440859330143408512291437507750441655771304111227699731333886779538158446489245349942454888582402799574778917742430657114796450668395183035819938784651519082772951113231015674279280567765431891024191317888609694366310611350798372268914306194605986402736109487861074246068274245259685812071506149107797068853378933390937856066994871170772673955771747235667268324886283178325622123930731543440830013652286184721354311723678440614123709667240607746601736005829132521963745549828282462448062535732866924206654109150313885010447538991504239239146385168990744798050505196876635255085867477046238790286391801164058428588886694262731297580478164576334757982910524654882177066806071374402013444670929590296021179756786041349506060159973591353723090413857464208606058551940557695401351492171275774838356357155272452973766196124144384002066920904487971349244174426785599486132644747765942411789698072215099470249612518568957608291018917156240672668899839962853969934969910463074541588902399177730304931303777684493446601567847839387812381660372145768447781770641635596262243462847249763863688058351781293190451611444355321503057096903108835244651535614087762309834441500364334952763337889103551116100492702156330323660003621261008478918249011858101325357028279329607982739607704597033335309180867421643303224284312888603671520593818747456618250378557293721452218205232056867257858036638029474867599823227691893588844506047477933644173771574787874825667823093822785179789471965652449099811302972845819563671046410924521428615788015760526496469146975775335608931331190253071537582793053756245295143648360626155579795689758303267503026257356909660892685614582115825260683796188222846847844016737416095098992205103191812698922686392304991556038925107118805160953433483165142877352261788301823934915686562598645525552344514482044458471959116422338111941215249635859844268402858352845761499656625381611308712065554530333777592696095460428090389887369539285189593238441026566503755540230027630124196966345551622015159893843522307773817112344689305749257256486866973751652600812190517984119882652665464332099688451599841518773658319380787620397691677659571746117602783641187416983223928875995666323652583959616475432379423007725754516276341995062623686222295968419709125532838131591323349946111965133253891150724641371599619412236807389452565734440649364518397710090365840091815777433776162314404871597286962878211912455324362236183993973718256789851423874864949798663259788029381354579078223127295011722387623262971328685266869581602383872955395723581103797611608669629793107752036526364636231106886115887718387917547616158417235189112865745742373267386913789400410067340786660457803317853385461565040532821050231002355717337070994710786995003482667554351919489021806585259067887637887760333216951162074981398846755940421363867626067213738603621250070685041405508533112039334135542781704093764013646623143093265874867266862506152074711614505269576862061270188783896509303279889024175274448900182415449387585485041333586880316033871702393250228934167853782142209288735112791735799346838481466111998460279464562136646044888538814057696332795400026409400232938542149232114760427777410881430450633874635594723131225541797273484193861259250842965243144242393703145048556384144843851761473367086971958105857659834006610169751525865202566651614993346219327800162180259045628975837859571187079586814721687834509301117121041503205110260487537283752230672869442173635010536528245943173406720578808342162935397156691470223590736539481639015526290063678997157137209675616249909152086251982777773898010645741598848322924856418351044127056959564333951603501126253473629949586606190360058090741450978473607022702924467738507234301008191873908555210707620511440662562321900090287691039651526441358547251009517470258941423147101924398026965680193333982854599736854544457276066970647580420977901732700329603972535680922506567069316787330091488486336383153172780073328749956271950658104357229719301808418449090609221862503749479906562509189383099305504497989218512856163573295742059591790893819252562629943861545669757760584300660791618381861485775609499767606081510041536235803010835337739795033366194599913771448900757156220121036515343300896814604711125842382833662042065285803481088480337244537492723077288492036634665102858055650678834256606731912890564474788375416804362412997047248717429451603244308371398394161053655542319836931474205863310321675928400191371364207477203658852966992217021327552791380705939598439793041387662199763951818432948039149343220558321789512417840534936367250231413198873573967200714361808667572691179102181810933276971416466120872780272829931801162800875902492054484659689721284787675087310375371668750189857619821489408978534515912418866340870685516875205557762132819389059713358686086940863347751002566003192181414374573048051112448410300391031577233598430341813847039241110707268453231301961865854204440209164414703815158942565461705348722052004646238495692845791311632722678198426177232713413167043424266171092296114830635796210374788185779347401106099965469570283117242435606012987167129024885337503683833362899232153788060339220257981521452142560971566603845054903513085914330913295879995858246809747724281879565649561884047753957162890741106694552587805326423316822235113483394502123929790851565486147177506344750616400799571682569989589594753305481473012313013215902948805829526691875195371106799071429039396032414012060780505674564971386556485052628953449316526517416038142301099026689117444190818913463991146588599144886192625328231743389578044619677380778067974833780213209306531636945377378540214504229152430860824634768506380384179137707341083832947291873287237168988124002607421375619759584376886464103721016477894191861017022192146978552437833357007626054863591266856467273510830211854100705189892109573837289262568171593361990965712337529751160851991204114412978293400679570120364388841256675175101614461204804287502383480280552536867258214615794214189872757565512390207788918108628664345931614859549775852630488593362884317014060354791973582046665557150788865139611712245082866468436379700762462579184201461028647412777567486460583427302911123985328453143349629095086307345241688716976914369681242308817490900896849277622106093703034752119966276988447789919243486534818769779502979837947648652830610917094389426115735064447771858980102081274716499839647947880429824495562767509963508316165849809315509603662011309668200247035180531028379142198397923724734188204271182519235932378933943736112865547272359236204663429549692256409764150429652582849082929391034611311150000633777508363094846259548528810486812147848037718920392844209895042388708435460641038872173606356129327127686067900624332812244025534433624931060266951990709610870266903105826843394587907750138177084139626480147462202237809161430833870497282680268929576735812016514764735813594986412698376835242873990771020600794353791628553415206582158986243439398284618750153344556426745839645953628689417569288041262544074294518456411410598000346510205199263935372391730756009753501954504243728985784054950966148517647396904345552487020302591026484664712739146370595522843956773213388516178679859206915172740200694517721735225496214961211144607325400975094361753911113749177757004579710611416579457743956323971879096518712330617048240110172811594042005682810115147536856466408705007636917565284964698894972209775640979789896902315864174080403704191667912723074844059696571182781364147220073155976212787514285232513869639850933019280974380564668408253286600361202455218578254149165375565877073257827594790630248822427759329541120027228630344864298645118866039283380366633186166264194800331348141025807047061703937554735512102210569420287523971887366547432844926460527576260916868097581466647021920189790497890027802394593707155673403736446628008488852334451759883256013726518931003412584839272266536848898484490745403152876936824922864406802747074924521163019100978460193150166474977278456280300096471944298940467025624420882328674989317519876218402434130845796433369148689681307856468178071826842035912740806917904622080612393587940103650177060839712594761542280771661813632262682319502070935773474278942027785651866151319323338569094089382349389978687677119320821240161857035223102716773602623083773291596393117654405434742344312094579802653887611274230241625075654798351645625245472844156253010386180031409315225752654452343047219893364904823940739381148081738767921323878303940480553421732934621140149144960384738803870652268540027445243109151579858100788843738325021875542951610286994319705021693830078227542968058153011478007432519950679067809613355963538414197864597341146184148319408108228203679006315504419803550784048225114278620338104159782897583738715054627913859076840568563150885300821251987322893126048047722960658399071356840270685263548331339254515778775748164742562834131848677816058334579423184190391728295882969500806438804576469983691903402420941662861217026276950772045647460748041377713953783956826132314276035214918922534086907191241763364951740147349449601205880938643008709181098024774718076231906124691668827653286324319975656526561793286550720148329206128623943033806874670614508889719811074382158560247924640519647072977295381639764410033911518444125034239638358503177200781767646849414361876045473592314308425530894156179426912808942667061959329217154402905126306375040804484411601927211984777286389800419909909046308362320074139618614720564281557709318983781358436378361815647045153469157240256624421712590496738707305645783974000246967793389218578438144608478989477499536304445517281380671372408026895685894435678753191545976795329423450294522723375960472557040624576725073262509136639396840645564729284943677347803512684633429294486303910619760784499113024914958134786109353798082385776493864900016876438064728245213568557570581309560634574562746598468532482854237536454052962578338732778757178921662880104699749803726018753431059679297125261096717208819424866421656987315369860994156225460084020470851145353973775119994928834635878106576406300426139576691156853535440777812843470327772330410980783578847413616234070012602645902398482564207332724206441253620134260150071276199802154456434230404439684758157357756778368845146364629020135831778637942798603232463506757314299878137349840486763812274585449335036373242600669769646711003057901367659692484878907402766746162656270332200473136678815761166344336845566111581796319578034851085529684203419638748614584010811318185740928465726851431638659716628605096367411620849569463546497744991595726702221180710121902681725829444573238897157767823869964835363331727295319316241293397193858312763100769887112776769185280008172814513699726499784135249641850568810300066129026708312537087458557584035498673806611481103319116819490375138887431338791457943701893544835740991646731974021938960171295300838633721238692769961622386325144266802671918626874166769294370415666534093414482868318730244103166535541075834590528841529104195562792910091283363752797881615821878854713606302993221277066970634579848172634021193540799832452157364582583187502129721208023526097176485757310365772317536480005854333995737385859845178274433152783305812571383956861522534848569223148018863613093557584504681792036162734438409695087081777006698741572668163757755955520440234858864953716673274534769749199616360467942111969839708030576180956784637205322485277692136277427459359238429217365455106689753211237054596896592720565709304487483814634636977871609454233675238362905038632785350007547355834529909268088574550602369831512456853305051064179848214078915613236811709622924876856148702323313827924119958136982540272203987281497591341616886622525110307461008224304341508351138013564747339082817883364176683415463001354991362670103154361341969276192208056942879309347859541978340541010585182172497829557879608163554947145619893778209954056695421852733660678467666945530140964881679521957592566933904919368369340040359903722153106665404719676400572999161960245867381968953555146208593349117752709882239671852638481127651603383750679376084555864507055794575884380155969634145445127197864594956980086964224109077660807998779393666186696741393826159432872995428940140628434586444437678591335910572580228231580558005257046711894861278589383751596484767203311401366884221088462927081183681464415808770593798141710042273439214804437195900699940845511845689364477497382520800398840232043806262423007404034505008886310030693053936949803859087104359250871896240166900672935846946760489374174696402970810335297954024404370854919522105333459741498034812562561722029331543762391435018317729207354576333332923003637243302245833866715787076873949053907212443744016811632003696105450288053881194369363767001647440547194451863293067189903011560603789552103788601131900226368097844479065628919677679623820360567962433459313914591401115828937566199392991635527927445304840168812262758673720568354662232729767468584311448405924359532346774828465723010335816018625883652219486033431128946086416397852471871370316455172014624780686559583496721369738179638021191265190843308481446511722014570471352963911582596333110204571051371732810258968020687491642343745477812256511685558041159912935570290184191894430155239143485442723715266879106740416407424508425174743132510822496148415873015127891594665458364925147728772753626165070744330107719499836006261745895543963668955832412281616646165204042179432750534710505351833895134757686115066326595942318341014621272997497495578776439447979078143825098275062529902732573538537712360597612023626666518748555777491012593828764562123342667580493495635056258213451354091075241189123464583374829972721693250581391148728024141466955785325738233729142427125381886179090172861722154832791590375878639217991255149496987829929966722349955122473973634262397216438518315038959569708284324673860959162244794826510451958939800355643353874838084933272296423079398371331988797543655406652204172096458589629474055266889599484686846236979281370848714842945954988279951431699676739735106891104628196796220480817862398420924738417086653843073225189196984097957388281733993671167156364355165100958430278515478974068922504021438928664828327161738953188595020675383983314200466447016859005776368966180504960967777247420561152941190152213863896602747287096572123145822934855950396596232167165317132226889297552838827633919765729120954890514470953423738335149144249882040568070901959185408861197330930859798713100017864090625470777268913896487715160989619448931223928402913392309340237786115611600555900016833517229022440528517290923010562267144437642822446285295296191738073874229420886772005936185548727311348673136288659433435070332534348559267462591782096496228087425177565973625492575869921077103916460709422352462614977925487563703688594631907802404938425166524235629082446472044857734357373313759572295694818374056351460003474841279482512607928866736068658010494253009849398698602683044047642016139036098729629381177893484635312304390493572194050796752338451072169606936966244727373955887299107668965751078171769555087369842348853902983093430722679310226004549988465779503463367000460974043814413511283808094834909330511911726400089996581463723222148392336979132360597542750600451318099599549867585134292111217489283268650733146929072316774768609431939713951098142037729058056639649245750078045319150652663989962165199068112190139653376993227617291394369874325807301746778180210581711359010110146389001086386339980245375976729353297015958740434038412174647234097972747788435883128789762188919361382424089729020389166009151157955741998743754944581494955088424975460306017367487643892133676733782069707252820982040089523411886302734679831608932652175578854066091096335047082433406625704663449781129611135488506856720295605502477802333363662683249573388943009942492420883015487666801806494043703518699356271116923999592201303159649306681969195545051689294677372930969010284070745631015460870479981366332653624267353156447359340503966395651230414604367850617874816210110820848152539635918699094007386128505233096890511542327465107807201535050411586748536245726268457904170513310299238899653571613953556258872662231803400418036100654880394547187115625369669900209412093600235966173005122972873602925647507640741947521878195379943616472263037139821692710702074638558500367231424021139865480438803182973471891736712047669713523306704400733486319253524386785305137255340941206500946780654225071382854560547677867916668213401831628113566672654605102533123569260900083673350056306154781926050321505746065759720101134138231191180617217423295357110765167535789662504794904444241255824679862695483400824250418939535235221779997116964714612556003018869201842677395939990859070924428599354786093760788459578359855629728373092432838963962488431053255273355721114976373077722475650161318581076675093287938524121692727796651153780396300805200104176151177181919401020828824197235455623595537065988251671852042663928626408806757630851742006754458034230178626776320545427985196140927318060389461181752823098099436463436952423205737157802476427843462362605006534209745760868920714919653222403400785068048153938852226073499489379578551693019624128182745934995748476644737190361422817726728435441917908406896803300288487543410770391782796129823699314619770266642485174261663806088781341427941432278486490245829717893991417433776488424877320423369501982056231903209689647876907684530175671733701838870420862153970211620127795500385660368823754546190652764323506357215543159955100464667184975168372339783691406560156878219027666241404499903247616841140255834074357774430504027863328908122249122911895492516976575039114642769050984622084279028243938876239788007210476857954773256169020619153413847880127467097961832149441130871649397276573775175067273113287574811505600286706751196680656239293404837287287289271234644142732505699974498200464489873833305746980179630809768362912162787031306345398191219420280645479541509221155136007995653764282631825933047001486096528555898160994655444714495963849914548079292000411337415879466205749947241219561933693449455866231920951561447527281141769727534250089019556501767307880526005686742816007788798360200765723479740295542373342226120504537629255368303055164257906247871952532247415092071610356997326255068106329794319630626194715693118775949606627096595593874699356258782273542861190724561605148450595781934299129066242085572647204636200200838835537039803108054897778085643231213977191360395136845125581046964698519365935943215683105095920599874689629853155357174616230491986518822001404955320672321223043282853160652521120757541208301454027227791080829128791762255693964718123720123117826798535029586697473109000101409565371835698453038677940617011617508956864627041245595543911674798375735017970204410808827114009878514768447148632709941212589811524363910983488796933720644628194221220743405151848505749997968671095782305358531250883114587236763773379627169569056812944480985907354743087603598312424073821766119783828000326249077595464570458346109776148403963009489326637312871081668869547657148052507651361143272522955502250984491523437916137114046355084116685589525250227214568844435488821273803669509546719020644164930002152044619859806292334350489172494974877045857625045731720248565779252600738730766538031111120269464083345861020841757949696913223547041390195733713646333452428306902840624716527388873198034799666836135194096927588068897825668156778119124916986709347271478075544559605755611725887967961060817372749412208761336970249220054146924612529900815543779290523107949760055406157067236618623885789607621179601971338653598012636650436325453997650327968235149811336867805273895796820333422270338690032648637419489335947071097301655281052080836954452790738128536352882906831585447404308598136163396910490667393719927642035492565078291926441647032336975499846972282516179986655046801491346775940601143989127004130765120872253137926797943839191215503010371135266814566293736542079141782905245260085443449941177537887426859202056081095862870299647500200858810312911996351842168140109409113594291901034486888522542142008706925412266175721953992995415975929117923113660624417814201618607222891058419471902986132938871704853001981116673794459956246468259465784963100134489617459985627316451853172717298934976987893008401265245077380259587742205858359273470872588163742903708155466944043582739170510560486462181265330548304345687296926080425813724902893485053190157218329699978984878333345075963764032972520288696178948274414541346163662342847203693247663297307644955839818677787072455084044549183604314574766938139905283525825994826648594655896183420791686951327834049700238187192630505748087745723082094009534031255683419936069800646837371783656119177669033807331651519020330885590849641027804293684771930954869247630081200283670276643857471481417188530599326647705576213150515575059021843118627443587118633766030003183235887672672330780767038542907230933486450674686266279650300099311067660146667003846788556599803969014381891081070841322234291235773350753431371871720091925278503863822166191822296495442481936892254089714145976707030386783050274433007696552860277765442171190971496621128031687050560943484772957066146351885224930175344431011939353323287374413831493198915552278952061109415564652424679154025100090142829254802705092804842331214216834754278956458373756921120174663626277530640974598637038474814583645067665100105727489347985172338473337700382279203775519294840118330010274905921781590845687230910361921086338349253442792143333928284764958975922606587643297355618000101739257945831620523295078479045660440137866610051515379899794280926610408648320344675269406042789547844506027694359105232546056822372438457986968052525168706419245525981948012458276550120119577916769589476907900430469147007225005593021317236850599323959352848092358855884116483506177709043035436294494255879943772067936178453116231255627307635816754611098376852428154988097272649104249038977106090431359981002421721791576102131481021788720307193684203646612846326869538952728338788447895170446492554541708648038108141187681983409590768199837429671098671010185423570742304054022375844868629230968854477547103622940481848088186742137499767397870460292273060732188500883709344064706231435189971394446842148619991248650298874770232073870505175125695864846640842969670138373944450099669209371642467667647495871481231877379412875853031322125334952264318078985370004486039706152631467776708534108393465485525728434599143717039325173097392741708311334989924626813415105946547440142095335192238813260859007497401902720627594380534679031714815684013150554139346919664436013390951415449093407533842468827556906898078473373920931876018864978331012504134087877275944249374601375240305797354339188205083679873759319898444377617058658253256374066035117483464587002560016432554887376642857343850237289034011663339270034772332688998100088827971925985718232144884918939123100932283314615465000910202612734524894286007027123609269524091033066678492343116611038239415838482564487809552051917967602151042449728334503539910099501697598439756137921674525510026048987775814502024945237522454716956307791314393947575239695828297233910291910497141767673819127672482469086425493331588509430857220648350367135826559243156679694724442068122467898584713271036894433052531047156895401601063466922917207328361042131110543406137690037171540026654367570777953317004224952461873926474455654860515891183154280124266887559917939771325888391749660622669161725353533538519619515725240425377917477175599901395638037300629801306237610767990441019161947626036745204551292353891123477970223424462647910169619965343595391998008592952313895676296504104036883008307568478295950391773908698396034290650121331082612717477475513034183852160741548507482063451734495302151483839825078736885850783380239891403708310269562230673795169563559044650968962149343001977963610239333172200063090552248772081036928189154405672957000951149609152857431399522290841543945278800034772654885965628666323355738692297929035035179174235299392970071417863147127340707114134966537422418292310671105447952478379550189454099728554271500445508835186440233190580902899121797234716992532843145846920554143683031598416607951098438330095362268199866456889194073976973183950071810310563650653471126345042583802691514309476671155921423464253165960727509400563484259743339603921609600430506334498445764434281138947853884879823510527064156370686723637109495381955272967445665528209817227422911937809813064775773623930155322086742554416597387615540724190545145844867337045730614718814784860054294868332564884770332397314495457953464170969430901220512538555191992748071759402774132375260661582943007708697653686772544688209133044846374192998049456626705828322311779142745591704425298801422914325777595849935743836222935562620522820935288796742733184651685385827729708032853623039517385111657693006708694333065302957158779180623486395998236699003648320936504379919031798588995667494164360027098913099364024255007664148786998430290870683001669704186286845686232353593857927515707433116282932445677594352952340259497882432898989721791601609709909005725927479158352689534731962496708833126176521559620629635314290819033179294580570870299736693059452728021923370999859085901506552290281569590802146167305891860653376670492908297973484321070611698171087399225245905033130697600369199709756745897647367489143905026235544780647031079563516640925124564737961242329618365719989780041389174408550111184764203135638085298128898013784954081909694446037484499761080883531510200227360178052748662315796013199820537077624521094698721607922906837061245395420125381481505253363110734932925625248266539370429390848256864210898102610757813255552985226805622091988389796851663809959196060354112523136121381940694605941484299015269707526514088360885197126364451595775323930610845614085485643360975952979136769271255292088646556450167930504897010688647930538948014602133461442257684497217400593575623691573587992726027315749328340595780488694248480636948207624653978011142504179085111082607377760873752239847270544316194675135669523531234357350994580615447170203983183250561377888087915906081363368283170279697278157142471213743410367879598208299524140951631306729499819895609244191880894328873490436266205888215534909504039144602039680754543756643966578248640084670292629715622029443112250634624929505616590814492968961118124304349129417244410144832610067458828104840308524556699488749276850318346132770070812984915850454546401035409957406718656827257770870361329663113653434554006001498904889688194538275935876386542900562719237283070573641184095057310856715241342253853263163486688899087939343627923777460306962139775544931048397246525351112391757550052372704037881417770788332017229837928026307508438272258444493810291416820585542138701198796748237550737945641160785230899096396793276485252899245084765263268542599573466563274777262992226860664583816710703059480668383075263634488127013440733063931810784022535390111891241144115945508139507399016015306830350310589254977832809005799894372120507517964081706257239678187262350961505689888789170109023253558453025656664101568131432898898252152430211996816434980649608656427434964367818011607650525056825888622480662111537738404086685642502751422458534621508656903896862798687483031190918753135225355942837538456580956429193410705517010907510450756386165526469661079206344361312293856232030402129047464521804382416377830304069836026369773810249424053645504727123555895481092022352523496961271128281987592862332919473572790553673003013208484521814456839037275652466466363639219124315937958635353383216390933303356452796100661911672943652163398825887635617449585070635065761494405477931079095564609781220799829420865845367550632102389680212152445789124916493495730279304580997070908817965050735369148137003163219930906825179723397618929487324864026478095154527678476993261200464071698228938003765084323347307494597244664767295065250067669593019000363252844065245811782795168456933693382011235858190011567308717145279506627394824410266454602318891753285161526944653449613377114613011706625422681961333697611460994355710803129325949992571982580559666116751072011232763420393517510651833159557115338002677121136203488058484885527511454792785453915064529461706302035161372305902325104481423113123233396529397074661530177680739108310060607885783941638652040709900928651623936066655625713904450938209569903282262907088907660828713571657769479240073975892031182927571648722365696821246839187626456290094137829268565454451960874570526407700534640389697688380316237235114972561721829009346339044027640687457405578413618047697508383605647495675604066446492278609392323820979693393733471505223224816899651691435730198280245594491697185036092645696282899983353001286329540969339395795257162215459339096490234996267024229906304374633095357296240077519196342217064130101501267890399372416182752790663274666222843862501483278504207628267124095761834375024701525960674430060108907772496724589351172860597415850264949789265355258660269132141829037102031546298966085820320083027645584093276935447916529751018763339714642167598151128458667705056730014372287285172338873629590691641516914166686944276007131396289961025781355767226499124716639751241052212245958331208716666841627771174564570822458937399156542654306209809406697225313499436291445039580362436174606637875041503813518722784687168845405724660853560818195821522384643227917277214341935202127303913081393933564765984580218854193516327758851004994559543505251112827747529972261928358661277593084973827097966713371294495622271413803205445458446230922527126090093560003520476953658025512326906468430571575342600937699224301674439770263280608461355596396350512118891903260551021437995571068454056285011673625252543454698204078178428677044627147284452328075119893268747455911497426353984404458152251678613107498956195759160135227886310151055765922306078243529164018609182488449064281525955307366980991314921071059311904733109233239481248409372483655675878673781589562656721007549329158062824915668417205091673434567099219265350517419818257459728348048586661613358873028462533510855068151840527647908050934037597606754517767509928208413628427752917488248418268150022568961716816473037393203490726155670958041545590591019048530275462419758930368547089777122939721242695136761128608130624961886444056508589494104807303749949134419836422381068313151482163339047276792871209459637871481737285575755188894625426535114787715062298938020008680615723144184905932220527424809294290917842124992588478827677023694814027574464479239493524440862925643170705565249644573489220073812845225040554481663272321914700809550051385448272971590429024324042348458610275502436856106494717949853884374234441467006197155326918565366434574991793857291698030890014007418058758516229962083173081904824500669082490359514226458249312660215257126015867225264212476277632898339973372623912511411161349828668232801569863365758924677901075830205320094697196828563289041620631280093642011302293684204446218382813800880016284733136108849360566221042791077361595792754913591327805738530978016024112540780525354502977600301197003549660942138062910912879027567503777670385796367241629360746099112908139588052691188710096986487299701672090084492869912815547032134296490055464235204333557890393643688603758847068680287368431854422764715145067424615848004012497496049128405265947638408622526692871006763490993759029812115017687762180961598456997752873964104211367832672698239333459682409619885047320013758597502157224832136793920126850376554802621874729292767346467346116717633351943878078452808776527468005058539617004564022414914208418056159614096741992726586595143207123623513713633987995136924776930790067104810448805921032913924473946032131152221828672202944141101209798753443522140019958359118999661770360050861730847427849210133496130642288445833736522748971541750522874507467182963120378569033250607517334703865132180209474843921931553110893893847076742480718925178530106369115040009230914633777131234818047130040523170764086292873971259934198381223343887699872716418514263529808309943620139972500397557332018034091731269332082744443489225144344159108117753425585199356720896725628072559161868678161659830928990894062167969982402272910143600316579978277454104647166896877435611816595922372324966694634250466857673685502365097269129306327794405918739391875239447789403136137193228170630284455376260291409771453785580326562873675250571136484781435411487382159560262848734420542293284742373462145078164218936930885066192930186582998741806953092954548711579001385900453125969217079271914547157821429670229174999452904736905412518894660136920427180298600484798378383397174086870144216385235746152907493586749448937053812846376526974702436063230806924279873032411880144184303458111749296262178935509258435862579873484762905559225425670007370751040863678298135060119456579074263650672176635563975770175995349818489670425564964587016740259490208370969949594212692483981116169718356618154747524642144109699811778595851607547533812204155822825778428567738306314114689057251007074235008813360914017168957066267570466630404118358883546699058492571809183231345932412695277448459785628439066132476601168058581137186688235233820278384003389161334930249866169367203645450102789578081565784778217555915810024685335430949705808356132074075215895651489021996538792267551148503929481736975737789765179797774239862530137158451980200938162935642093750176276067017730721124609768920355103965577768972295639709980741503258369596750101804328170396130663743555417993281378436027731149803650697282360431962023993703979347743810968530538222085250358800491176490241678807491640120194480874147960269561866331458092528078816511176270742131965411028571892883469125683433890633328989696609891011552587918943214127895593704521623083625937695291157146784386027750225201952619316393918991030950745842969678395178077872828510054408183545764408613235710363905049483342540745623171387121827569412521872394547602737419206635095073635108532912658489188924997381732889301942649726592499627710885667258880357081165978115683160481991724967318042369561322299399602365938712392161315793363066443812207719241840458536813979554080388287451830013342209022210704952441443746545775540596848246585563558476547021739293072631717586621331945013845494221614234344074108845010574923059971100161618849514768214122160462592229790732688558426008835925332060542166138909998057027067685452800169852229357586642374993131348128717157676099806696513618384813907723567884029509470400592771620804152754196437005396477449314791203012941119201758624391249899129193743951648787995182817911285972677284711615835192635830524640001782007081046971919457939906052554102668046750557644933519804653209030937418069768611263009274782015215286924440489804940785555265401244808899738284920751536066120836549710204292440456458310146904579967022323566273696579139800361978817532511530978185094941214128889938870407654909300087082773333387710256963698169306042333993256761365185200440273879463859013825681158787644065210936496165067950536904082875657360959316388958795281924770678331395760124107194683587117009282973302546481334790736898677701542030789596819956739649967367690787982340468964260685559774590657933532670050574817911720266652712944122280133130837641338680168137744301840167873881821969307479931042845473825992787799031390981353393087759774165195529969745865789204402549535820018850443714334220730044748365707486346510607828788794433154074086267725407989354669064024278614683183313197965981637893871281567789754628374768687230854894967060513316486183943034277249452396135848423025271827544145897269155712255352553203020162134753991142270209618752902322023409170478706845696341171735463946350216372477981619692364877686540576458602900295033141180818536598584956131914459493190432081008375945635752479426504093263379001423474840405980965550317326465173956153574013037302467391549544611700943888851814535225569302492236733945972434524906421102112180166622086673706626445961770423227276867562407554910291080825660759780885156638651516894480193106523293705237302742718122602642910937221499959128017984848965820180610190422576990034023291348651404846486388198385045027046027931073606844745553150544361476965888127857214198604970746183847261941461104244534828053724590833227255187901040198353791593239328510491390356782068935324103129251814975798692881680078845971531529707031714816609528594923688655653263581943284699336004934236406768742482573180605750442506026513155728931872107030192474511349357860663581197728326434611039553019253016907889718369179021358904170458973903446451181080715049058987941683578628707861763640480326461833979591275049873211038376097472125757723357477036421519028309720556068680895019893777672617262202103357903816793654621052890472217250764280088914343803491677072118249270750688600407834617204779390462634645740165088897025931931278407673770782036716638064460081503396516659272514164536855181595797049903055527610547219862963544216976666013786263704312043981126673576526351160410339454812320481983812133441663532797044709615083820158662787010499143034750815727028086733443696985013530129017539701545767910898678909177541412339984247215271579960286525604760940106195326366690933919062086800187201435600998560449640495402694274052805433506475616338195974693209142026286037625731732435291709595320617570265713105824277673381378373817094946598398665138314178650145388704704216640848898794481857571102973677700659466932840740460508221212245383048004237035563539885617493609332348875531534964968453634297413782833043079751246280633828640321760717578296726517448404015493387207851555432452265036571139983699973942963077337770305712938842412553134446156368858048696653199973168652913897430616074712724833056932315664766684668274801122736700716028099428829036929563873049782515877705859304719217252147997134337611148694163636996368092796218827236772328566610603622106426623555573326347323270883789708439070158449044990069928103995114694514987689013498135354283001299871057021521206567634737704092004859536885871126875229773482697839212298293086371682387656350751424487511298175121935965845929876535152622239811366883300698864559415706526929195727835345299233252716923583794515404175612145571837389990909162793078420079648452337442216159867794632741582403622280912829785121844017708008494976188969743397514234927352613747773034182493405730025391530761455510508366864326517985543391624363095598029578674190260039907752501577523048709671278478588633527785960475521921732190929163335082835395938934501592573253572126177686331092622611727436035061123822052596839346722379022316619070506272811797763613001865673806261563687331114355950501562409237464455000773071838651123901980553789106361127208202652288371849262391951583644938307018854245304257994803017955655170254733143562631046927615188858270459131266569999413784586188213907459592919919874966311086364572820592000735177604512913503932079533246839120514896113745039779605694298157615346914769170562743349604966796860984370598842849391608554626383704538695268619619037408749248495224026995316268841258587858038067273602139826793229455409829841660033883315861050960708202328261631914198918002961847804601454970793865723068629782902242175954498899197591461698813985402872966250603480388172188312737083206523469082891385927305488807579450600085626010254364761555346391310095001187811827246438926906731500274703558748331509595942329216092226423367571306241579725810749716369758141542812232084545037839365562870701852620779003147259662520791802865516865323727083496769936895104468270644641221394000703564597272499364779831702730694202070087715299515068457022950146797323665414171831516007696396641285754843003745575652895877069943157491279720453485289138257676490149302436351582892005091247577654882935422017040307553714420920328726428795953987120267526511478219057355214493399948113436200303404338423909213728304161600785295835110906452030440906329496906319748405524351753232370622486003746139089252919140757522936393658054096258647904590517584246843073543376955735805591581608461478461241087299407104155145538806310894559341619951833076018383092331693710886498159710740676289544318859717935129083682669854149272707098965460083429458589354287038161318423010127985312747336152018447597563084816739846604105489824214373859413001969404415826804980955346880313318168401935631976918226704452839466924472143216668308993464246052176455786373332701659786090775844667508186764870302305002349265499221272316800106808249047356516737641476976711093216500162405781671936016986041850181050260368581036259511294376192777282590903504273129871990109481209393262835890568726234658442624584350561683871502435672106451878856798117015410649361824260303595607857668159019278613644129967747741927528605119852836817620502253041107607028394851780918231174610426380104752784371097816779780616720450379514009491154240546392314232484140657506669854751231560608548708451628942278728644293610166850071876991602587720170371585816989618560696164488714045251802683859896228708346898317725003929294609791337066859105937716493254647873112645386586920171070012662542179754487661887367694129173068462092619231751543359520083304068011098685156509599878195511021700090832405074372436707689330293567521205985600248815380934315132787131772275537091292560737317988090368986167679947675944685982183030644967815005076787271734935592972914876400912419892298670860655358188013934118244998673690061591003865914888112049125014537441591336984055434162042722684368645301738992349462069369700386251169361604042542528211351212968926014903584257878432836351533181830657393747777034642391726795637655852695807995503099457336993501622581520983226924613406135033787594049903126406066038077722460018847838987722795321816631977956999806688266297023627427647454831172563778876866539603176066923791728945410791108486918190223795340259754579512916708690659549905791147897830532237049544421653719419104352795842150791363032611180909307124297472064463916807355364644970091502023633078996772321411572382130433469104229239738519312338402656091641901850777224252516971379116666798015491424230972293017483734855734592470276638058938607852610372685116727354133132436034214316665105910945989763480707859139714863379264714946000810378236046070563108321911585841170052637650122113103635140778051234463601421479392317139745599759064840588915886042354229285328579748580728770776266858514348165222436747715544003642301038826934729129318316104561395392459358806481971277055827109324030793398758944027878578517392578365140584223640388897646567383085479770082058477673459351305215661398149562421078323009847593049913448079745069758968085403201299157454180606059315352780068860172210621040752327743464668061339809559452163634936131916030870451036807103745076340971345514646890310692294441641723825297386879745905100972228337094996873671121104371297248682136576851345612786944802751325481685595597750766670513646378779847327321986875965928582134403675932087496882400061008322870257039265806277365044703363311795490807529372754901387278641621425541807679100100987068289874554804322856401943261920312173410468586989724739135443295319204070209966450190455912984249664845904465936348989112352977579746312932882062628203855779119547743195921932522972409241041334273880944662668854024673051430672663893376267069208725181434095124958009547700930337746684870948734234582090454915114499541665173462403100319604343013940042548820710630797850731793552516581660923474263478414694363148338962099739233827132915941426109039013387048525074351004186723724571517505359144846693172443169492378796913943105984138804228213590874570166849137876663668525438339547668239540813128537104328408474735787267437174347892458211815849365951395274129456719212972053127381291318605438361406809216655030602792417687707062952535820437221677313777886033117986795995939514284382453433019074198748698936499793222377085998867415771131225086742167150096031845567347853859755556612873056037701924081933932436796673402896209549432836150414333301353327173561471419227392016820451671140049959212919308240901998789656579549473240576380278828937034134151316548493829038039940700889288604770654035996987537597548956510503231015744395312657269255309903565808335859554450870425783289680463381098769935925022703866077862823215896509301662173261523538105544530249956138765899622312293823989000399970328008927587027244839028098705701750276818021551473672158637776527922202908301677621804209196212331068072169636582777226923645585772200053716912763658577230614235827556439108113378350083750919686052298018748470439100642888669311647060498211328700067932395643126460029895676471554722858414081500504533640685159138382736315512494763491701616895330934335607783581112929000913170153491911183548397519410016668413876475404523913965602143797374786970023306012483571411295521438045938262506277009362567553841873923513386378458052552401141269849368010862303589350449012977557909497245779752412981826076834875848305333381530696760342896375248834924786916088222664345017261830032496719025725579539058224692046632888924718423459125382021594673528372848951977919768689906488460129966194031615714851382526386406533901100158030882468184829982738394984685312002080151737749531078876018453079717298659857055298227782350017694175036478475390033675286233206679001976437821995007290670273049399212290872656103476475868955616875389654255467797830334377723206285671978961157464612776384178212475560511454335393092735651236490080693884584956040873661616436567133337473887981396803625248621815369073317205950944162211233808712276455508569171437151086249284455388059784250678499372004256790262016192433694100833314773324374172478198367634523622954386625544714573255886674504935441476467878318787294396715528844155091559956078786282111260574321823527363903429414128408034607827017958690040069119161688357735769327575424943567746918644784184059979108333838099698588204098696156807811450671140603606983345849746030679457498954830038858188573523163578017394505090130002410947103948056939029808370885252719430223149209113572844058309450347516632987940430614664108659710108601239989117504890384436489065292396451308546254261164793551730577291472732980997824220432058352784703777481495325518738280375872540333426164042830454685656246616191995496449879708608557988166405758039980056287006365546804764806209883565024450773217118888882791266538561291656783480924202460200361876316530031708936328456856608389214239429268935935176319658236178042060380122355929583935507567181235712869593056158196574570099177201158872966130527609472268347542870018986382020055709639035167565407904204798697512896292865061909601215861783649424740752991189652703851352264514914733694519077756250489299786381735599595984954873437407759690246924419836173816316064534258901820933159738189265067379326255291575272423188847420721082937360429911544951438142768165111087762047077216976109813721180906090332401118229367315917622843640505984317059159060812558132260658299278246929323084090708202055686389688031626886914355444881755837019986496441384914506937591801516371345903941001114416188058082674482349231071316351966950216923166351397998441683057345255312859326173212020839071531225770025323102918384924327534747016188289787866556435092192494934159884905655999713818974176308454318259226350959806591774769467064042958433194239112542439455076976477598605316424824907607273917838626074299718626412280039644175338631568530716108587814487236472740423240345062481873872893747929517931766012197992722376599887036499937393532642416189232892125389214425356097758412119849426906114032085121853059034595229340236586734529258589228343785580120377132020707272444190105101019235235332992031509278722196486844707897134917757803358778790173138498376013923822802788416220583797997849210523210758858536909832471487780221234054910802538875943645269450847387846919771826831142524022968583069172325196836651818601430281273913078647194507547889065627172287566584400497287447749475934622194886242242265123584890421624241611917885215408773095364569068344697900337872467261829872738575610741729972053866076048988531338303645128617295797900367291032446191494848846997502549100386380078994242635151765640315733003349868710863040301874665228635723931924165017724381082042372963023608819038524020434462843464964371849925832423429248731390304982748152439817766389312018032920544142993716545966364273301049218178420089142227369708362039125603838634502883506786104080125837588517302825150827962808062522511499602314898044156801433488783431784401345142547554344224655285915144306584827402005592014879369477133021830137710829862199889643310297320933652091772627053444237947381521616699694066148895511083220537218236901972622537777893729444324936047148683548532547798246245522216567121788575454320360953918265279149389871651839912798520988933955147190868098830263653053229766548714825481840916382814894470764796993181298863476265827065914020496263381523724644185736313739200039500676114719990551570630860104616652780089926069110101998640817282231720103990335726033299928292508560116428038469897595398244106307194559323065954531048725893429192067606801282521480796220045313847958724667049422713886770634700291234613203771092154891738548771583107764430343597511646804331777936012084340985154492582460183359090496830824881969912362308776662263737843057488208440876505505552947627541921145266716234006296028132798667585568376038875133700176883128089087053257318460186039986121990305596076796062954805607983296243343099362262479804016017851451293633625944942854024584891139515564453383557069089458508084821371399996991451951384519456549989339961978308557286345131845438131861505664416412760813040059189414378987605867040145413151165638211891180629227003884355543287243188707595929078761182980958812975929682492474695706295036956387860330044577475753950252453681165277240976733867576793902240958584700678522256569409903330473140119681377892910054654540720274503042282069339159498560895452169102425193737396887823667620580412798549886319402515381536324178193726772072580014332294132505315358783080632053830744938907746936219626958505327857846173081111100219983980427053130749517023895665695248768024155745816161715251058383488045394068070967368081263367026738522170114365387862466482388254450680600283773477454645596749918583563915958568799929386297090929785209713897186227111449499885443744628901362875012630901308554039409854560532979982577628523505549725266897881862226093057758615614898119547410353877829063852342964362617304847423720509226040567617708130972389549781452746920034755026013589288536420161934417373379475425767793488028347365988643454060261552414819956690725440553231423759880429597833453652061403332731472376254767835753850288008682365731237539582347897056024717202786705715599633473696413679860394183596658549427654913001645327266838699689549762308854025624591788698941894149884445611724136518324410458058875200918690247561821805879191908596527559776274407493551769713637491925472894475090138788121327099654268962169359985825763970104583857389770325689404009041305364244217422841993353371974356554590335894169308043161722350705575486274529712808492061931965289531996546895687212844871595690947678240717308879416734146110266313500047771388443464129510253384432373906462493634987924440229852206614984329138311617051228703372286787583138413302868710487896134770886868098900569968300189081229568649343783693961041552689811422454236187872719630963455248568222123321940618197727668550659124158845223781201285394686794403296577309280111099482954866944033212729558708273316859372655095017596995416774151550978681901195415290409371398760788599326475850232591237855509654545249798846566714036220226728738781421672532078083395773122806377093224680050638799060210783491314244344092235031814332269752822603414814080478665673591986048351275614714492735600090950303829481256807868669399359553438465782928898019210362754577592764370952675425552083498615139207349815022181464771085224454133463861660470033823940815831442692810029750714949053975497012409600713942483068168751465446115639704347355502945383582917022819185433463082731268013994972805597091765764606074442873091528916195553585815691896839695734543234278669536460545536289116542916788561120986334367451971602392308212970472745280834448456306011516365832383076548880422094839892673664396576219401852769773237113951843243160524111957253532046822316751304877017389204443201815074310132407880541982492255438736154430921782931216789211676580937428774121613050282907100130542769851955736376261034294358111937487635407653287857928355119489528240747219105910471579230838417031110561982518206562044206088559406926427574848824810958135476379942796872858550744365463652062759036287254122518255131124853924558102077994225451879562520855026574905005350277422755110480476256568644119524049657964739607038732837120121285072724678272866706972031763558012959090509010545362181563086664371205868731943030447897945913245532729781381895735715442301545102174516737696353981171910538639243936317991882652637328829910283588267087357046265823510424062324429549719601661209332681324331911768964023745121854669073065686492388756892991085620498102971584033213891788646706148176488051690992166802458798648151659322506214475684750724117770962753094922071044538078349211851842484595548296544900162829680439277017877263762956031747855412109726711907570164504583829403005456652912859665334697796589283510588817147440230770618473972614661778180498576005082838269329537936620384506984946869876720282579790685897511262824324194581152035453281554342512426656588315972327878053897442604760862743993680835114645553946115155797072598761802692584508902544595036557863144396240280343735860430689461109109501152970213080628377472779505304534923343357208747989443956054220850177980278925150006890340494195169429547595837875481336089715493370401353807414573988242733252996816690336525992290916760223356165148011504722391342458485558930276483817705377254742938131343233761525947633158688009663924906937235287241471885969702443088554476960031243155550442461887790364421953637514828767148208493424255929104545733099118801017455512844775441398807426580511058684476844303526885025913266101657672584705925831711504486697676642925540295451873195951366078288651432462487799028248408199120349921706767821838549454065856502613331829992238103848809753408754770743279984601079271811679927894914810454529363062622844539585674120971848949366764457826362944224973177988461980110175144673152492944361366781757056464858593714670371137597670870465358710688405188631980270818796009277374633244625641281170199416259900396421115429690994538151048962123727096762433628888752394405474300168558035446415575224947200227940467525038094279320019138466418360541015050816456053294947034734530449250712298530344763815392413704599033794315883250136072556922633717834089029630036210438160840344071233258514073199914352390435643995916961122390155054784956772301264568902233010838524052478457006019945406980393695958283127496280226356133673026918961414241295834377107247993319778483723549912081265875008639066400340114763834419184014661803822321817548029438844757804227343564436051922435135781185390178677415453623324144164144658687922862788434785166275242609225832479873088417208241384197586830174297797627335543325767780829275071643671030461756336803410304916349762885220768595445698594631391259550834576811508128902515661933894726832047017187504144106520822631626120253148710541072638323840290224620304839359705558634999562974463276319218250681840429820020722549682706521965134886930098151789993275617852343004007014379223984716660026288121282429610818632897548489737649756999126236691977655735944068360494330619721455614239435565306129530704060737328898655979843698937329677458277640498914725708844367541729600551671685539098314741220557429151208699914400998639409228767220768055471419018577110450993871520706010516948531168396414534619088464934420802011891651782840876722520419279936659320522413811452754776797049729305381449850700742411099005846808859353584865589119895898748488978702896766113106101024200102004322983501831700604616471752306866627061873723581305646800970865427218044883006230821151638876641777296064995708409297981605404038836868680042017055364772508198004122223876128494136038960542487855966642290506940694469133218047951258125239045886677419897678887677194387670830568712848887911245240302358099080947965816499969686969791846461671513362156111113637890190245976856931552723619078815951436822250934835267516507554625353533944701150566712066900886881770914671131370415797290034683838377803693534877809440660438356329806992185576032982704440318023819690116514959111172164069023808640643428428275505417006980360014369405754501456205585022078739328327376581888030494317572850354379919570713749108423326191337681163311352687890102592076083958907123388263577519825247446584614123484411197304507291962947834009139191354285336346801658419514861107758322336523948504420721838585001855605299095766430544883295805372262112599800891620816356297581438466923127522743316815574451217628514771342921556828109766349453337400743949983125876103565591547065939753998208100340194211844631648687438065511327868719449012028070451869096394283863593588543032705341004100111133483637026485908849652265084977153206276447022417153615382720414541192563089809428584430730416038663315296582588038702752638724316596974625874042712469579346764110919279818732945813943740712136163344222286631432190314495666949310416724839140101529005325949368898256343972018787564179766942540668086175949070128962673464084999839249581627905393024232185419590565184479220397165648115085507513306206103703851413067490799312015909691395507727483170272523456239032422699470050920801154133597092055586284344573009372478006256872595882040683512080819069364859644573855447728243060028648717474436111852865218125022087870769284603433669904359167099922515606367168496784605792453858164452374868479180165748058379274654462798010717482445184040243629371229428653020936888174419219470985663786163180252795717591318813524020289126699747720509900663851140628040079207290060839862772290771269241207113938305817841019136388130866556894136468980367899900354358946554338748635553526386087220744505232114069121090516540634667600924122648746227337991547576978194228787479375125400738556389673893418667764242773908243313268945352551760056318342128769075950857398826747832467418452097185470226826847750574053647797509131890526991483212518212945850616217637760677017029393190600376358815700771957153715375444857630579983124978914100787264205674554131308370879234947420726351977672594310701238654224212335233160564200920398491615786277662783421503413294766467413838105268356206110426374887341874491582257874226168941775506938946929477988972987361841305412077840174185766384921626201168066694964931973336581587362386769084707920661441050600956975692245514288313343226418496087953656143901239080593257598841699713097560544642518851166646051650790946917424121294075021213490875086743710609140921925175834688732549017597476982820843424064143136875018527983140651609826489390479652839945106482744301403830946453726139548093582254733700799346521591034141822935490281004201441724746506781698019499451440448275854879076933163520733815568029466862152155642327085075754621133424501210135267814248333548515786138471689556743282721970293964440015917050955787081276804425570572686044324336957792822739456011710670799211231592644358179297089086454479998941376176424650028652326304700029766799934628356489010665245667869724778377373684430482215043679020752068747781006015553864661545647467216742723319952571739090622602564681936128150152831396662478737963002333717296491862958990879828192088136026274778129370151013173216586488576953386739405815916193301110867213062978752393562029635089376372728982143924990876896682728091746945552179069274544570090647251022767645340055301520600283629714067639918774881783472519694075149093527384998093726443479246493868151517068774161293057322135850160245951156180215170242791287078466385373563914253678186148799458180190257322019408400335185852655183563532744922824260003378700612858282048007907769350618527222570409097355329263047332716199098974113366131145942263887022661190561052604380987053355499367504817040666169351836772107753691283734488643136563332734496260223364876687720496258398924609533806834867635751195897103158221066340785860669957285195549438052532095387744075731543589669096893624419278376835360609035173303183284708055918653991771289867946562703469266222208745474506451941893557355197993377539377499500591905316430929845863787848384425457289233371934233195115369832130298350105958325469987424633611073648586543097632813151925882674518509721987832874731729704669442770546432974082805790236682941164046251745799569143074442710740617131436416075545337947409264266158039889724613107223652570151576276800609674542287885029108445917019589531235589984495460186962971598341515838012818541618390732638348742216122299938042950592002898977360757158481218588941609883359105539166829835762215979514142062168288554409846116797645228692699562673931220982000794485202862201616465439384991791264868449411956853272597598824808322517749616964129427568585908202734573612235302324935888673375820315694217147496294488601852329417830464953734271570825761935227309377218517374103552307434185532055773232617752633313806914955293405745997625102663951376063972716659003285450953233157072484708222320145844221220764254022533108688579254968576812252181319480683167857776507083950473756604725379307079454411560211614555578278413162641091677760283899055370618302406830903294442157489350655810307728254493287310854827104943710029548690591814210076017405112545617789130657877766407211435874459927135028608681991238922782297573542174641519555449081280596078159027182647316637139451195722392449336072165220000520577985770771599020694416799814944859737963916810231243993633372109121692826958562702628581840453375772493078131840561390216004057291280697668606966080614936809408041977164501066561370609172863821978793849635841675280612226847740106814724328614319332862624126530246272854948478574429117294917910705161837025227814648736971762507840187408360461660461262755955578570466663522868582188327067636761072695767310335465512119363527703628124809929310410478089617221182055378191336539677205170579584056599322228633184732613880414060106726800882460737937897036795241144863785890940198727217549989143034601389494064802820222336427415084340371557119529448715901147178664937249500026171342918686745260919962644741409516695178748890494190957720739929536338194477006211316455102834053660209345327909551251573652340369542166515028388918174577894132727820866200447336705846440726855271449116112199230637446428393359622578465308689012081778585830850028263248496554791600334205236999771541876781268090112017614420558502553294309769657911831859389693707640154863527681430759215195087365319253336259799720069809991530438638504878215204877586057892294060889619911637391196506718602241789840118744441474385002497902248252287607468840669948293698465470071844929850302533581989683375815821048358438751670047797711902101130331189566072922163766645502403145256691778377546183832362538389757222580482448436477240650962779488821358011174486520698598814838765671949063191563878724917290280397576258104283605475606958885814448126686540901466435679565774476004586057644217504926479162767208299494916343411282622820213082925026782780019648503035358955105368797258170076179853234068702330236812519699667625079362064034042172555833151949259061505600521606237922648522014331186404470387809445992421812784928115388575537931466390489960264698194307951228950715344136951117248920416052020457326523028477919796577659755099673343474112336340621111083511117992704472560713090185729887161922950372206041100504037660685654135627230059265815974504879216762025530745203471218972345185595918063591494470053449329389528512705408028066955813451807742554300113326989458159066565684258681707647938108489183429653448340529695826672648949684737494202619578238726168755884474998081999245992210018034475977819184404508865922958617517177564154611355233309978463602046559520657048582258146837059729199093884136932762424516552924077756043939598294795537610086094738368726471462074977940773803077965653515224706362028531995193161081667269668357159055365583590854034854462146354821351340621846635340724914875272269509758471247165937848703295323109485674039925292341494523410141592230920803600202095018370236570449661362715937460879800376292872258828139499461627228465152119529823428317433903209519781743888383724205390247013769816029160940587053244809333500187894010291205962708111257773722186312254683311302546768384753906996511574250854020339524008520467708727298955894563800267525680688085641582497101874111285811402934398411312384756133463204244222928247142002281426920374644774111184035323921165326979948946146911624266675509785449082370497717376448278529496701139554921248429850379215581658064860138607412738094609186597176351835583437286901453041260931958335303030205366262621209339642084771592235528086000822807573005503755999858741328670867648751159970477334730164734255301384043648380263404128446464960777376922299775080589702446044697565444934503881278353533449541039687689592543093036808624982037643343359997512421446320281894269094028120240820943723810776473057537745731460645923983268882171616352527889966579304783732582963785097533158896467215843342982849290666521326308551321533502880583880209899285481762310819165164880009473486046128210172809772820833524636981634980011257660337623354312219680768784107539479001107570124588303767015462230588385003103341204496669375689073180417205443083751925227286721976292064363599000651003962708603846376013510225395738768019530564545659599483950601838034093817904962975590760072646319475921423735589336151115446835176567553276323023896568692932698210164337885028025898770102638849250258282442209565753548476123328754705246532920740681365293310406398464143120996706499084866323067527565397261476352974036415273579143935461502871155419221930952640022097655209830154153530702179640770247815147031391559566087825792381554076078658415964913452280206372676634636742384827894439708467466610989502569743527386320829459852314268800922195114897729214522227165989744708022880061219088960965401756303517661862143118074373127176946435823164956126013390759906920451833801895165901055110606053430680935053810369883416516339415456442870454087698480194314488312999030357308217558849904285243766015329450654185118285090665576483854770862361419113809149544072632279157008575731319705493254349883655900438979881939727103440191066884640657654122830652425032568481225951242019461451224287080803201600273613428598390061543593721774407559138923725622285106726172713931006422786139870342965941530414241768860194387163668928605811347093318676609856572415282633558866595817153062735307845599691957629259821575827769943247006583859841516786646072831387120130934504759856797953500385268339791835997152342175600342152880331487432979950821368302036083745048988182741163171654419933808393394978708030334888025351533031278608351605138318102296750588540245499236829517757561058956734484959467372496222281224755189236988857171956842494099167801811901274163525551808267427894907430970571831694121816214614845585958509528907547216596938137843544474761424799570536578845006808854901016069115729895176602782900719115759504503857853007820222265890661156380801417230133393852576101865682909910328965211865842484291171859261140526829741634463087547098816954322578198963096919914451076046422773041535514855604924018589166907741707696475388687115117972461603651523327448308083159929894418942774268540123191376889505544441284603481494642377808442945047714208693107132930138446962166834566614932095224031129581831146667197817983048214460064015706001594599552773696845256145406341311976320096909440116997899352790759537271738374136464717423375881445375097935210062506800037736976838613909744450545743063597323732428054249651279183595940028207001948608597257323407954165350653173473083107900925886780855888226815304568901466346199383989398319694006122208301826697007625670860021840213734864781064551850392567305614978592751257965567091511035075086750081178311965353990785799448953612144833207576494889524911161116564718845943521051111008055968591392527049812655989977100166013749189681712061305710614348994246975413607403000536065514350981407185798888808424231756633074453642684175569086878144798125744331256510090956871063768382957075966401723408738374267727711151751175028514709141511221298779783111685807248823663492594096572509178269124712756239619304810415805928511926718664872825930600762557030564462570951480916740757182079904442709845488959045837936582416246651974925700752819172663489011291496821061403903322522960500663706383900767500952407080229947932342546587382901172989598921284610289218524007479255894580322023269676248977365883890392938935740655545238823839009417062015123057964585324204316509832906490369977510206204164480949396059168227636630201323769379496715709317768547678855889323234956486611899198134569717602631553431844475944267488413460494218950598117725011394045621491944801099134169629227842944469110154866418780911314651341027170457910205186532715785501493234229192813152454741080168029810068314927052369497047656163775717685632207701316627912988546898537931268291065822753100340271245611637906859569470237646508997081198264075902628453377533726166325998425829466658114693885284395808991739453268678033058960120593191449490788158564858945059564127504567518619115692398378117476204491039294929479822865984011026097695281609958957729316848088563817335355896354345024780780734461734360940479167725247395003506269608908088665836363048439172809399659028562634432619345844171974691325542075042801625201632524134046326969083706490285106417420188997604958837608520827812347168886902227447579563232195122491254209506788371224976214311922560392275061838841124753523210360334783402651381845134496577664298584343312171678751106384881538733446696991194352821701238557378874375568978435865134319093798774412953770018918484740930019186130235575415048515881491416406299796332554377694726229668616904794601545717821793926174918036369022987573917153968965713988785359460354032621348232802990067339463407408305394428317005941295271380325896343213117974484007509299841163128463315060968153232266021799414637681800921275219899199397900610578512360564300356183862107633747350515776377428571117137830976806589161455558103394559958770954389167104754486834150488495573231972597482130698030369508883080670646277741192655164052781773392878454107226668244176321471023368642130703218291767963962176508565694018048250467412920900265445828679381598439418758346952863900256947035385304815731586186890434709873982344964531040632318624737898249491507845424348920916241736138656244213957181202143702798350083212267165729078787827824821230806842641215452828685644546780771198031342485953707073328840534312647660141227420985469418031253639678450147696726111794976431703848220675577650077537732550905655415609608036216250793363750004712837014145576919181978744215789243868764144742092151204020247185328055072500889533688346358539197589225504276044130124900589586552546664932251026218559834382011511275651160980402984286129650786657771282566694364637662743210051881653903150669740188392630178815634876383310277216002676722145518986633256924287282475795006278438725808953737767155589783729041047196021707363588437730088103149241465426684118845256964655747799676481178094664320379608955272679772461560512105243244475582185908792256912438915334464909858948329464489508757204232604918868379776020706607445515095835691234231051936412728869041201348172580738994915122630733143980916073573932093372039763188429245281548655322676282921932377966129241130053846998413431460046179204174586119822392007435363830140513016821804441453370610026305401635465081639434995490602634639889915499751176687498797342021319317920244722042085164903803788832013335698653496856480028869485122449612523675196541884007338660026851043882470738227315096645750846409773299699024018026748318369871004475428031406900319714861746696148142629871782289756839069383588197755940639058549564965105564271207691466132524357915951802905995119632913795247785951411107211247060777963949955344983720186296450089718909912451381218369337500116975720785098031199349796323949784593176141769136526131810867861523215470777338218950736879011001911247528645428465236179046504428064363438837655192384077377501317040914299403760920245807399021562316423633409880638246343654449874345123223661838409572563696150752758749672631412699663485550486596342138862038053139669227654691578903546365896548562311170301488038945127588515799632031850980198533633990559073095488051698371112736115984365264527925095614124481314056994971215012842596636754834129974160292579622162865632138015799448643441996886658018990517225295912794211054125088165440587275419245272390224636542372218388820773312038326024946406405100453443875532992996206314813776702965966667735452072600708641627516028353373588985471913084319684865018689008080100838755459134257519020280754926009224561873837824104496291485065529862278299708442719600122572847385641259589911741794034344863048296971523581417928887215727221940300619926981177144938827805586732929116553085558916535676888121681442835418496796432922106139687949502686101960278993561325825456895491378666974540280711703546955469279040597737144078926854763071321383676776362932455254840077509909710268746083200806154446549821588845450135457188634263599029727916202132360524812532849717625510741023096114700730854103083749274903208825326420642757447267314376947876203756312498715555832527543059459484078064172813458030860807280424151721511899245453820305315825360540595028200491531721498505244548668540330294383201644616265127368425773564828154144077126598443158843599259436750114499377805106122707600977126734037480260497500820448129733336681518698485692473035421421155296278917084593396684478345728854067831200258396534899305416160129691050110792227383824711434528897017816434440189143114335288824185603058170195678608950826653757227030199391373851855636243742528687397375015622404655276593439343149915153804291199368303888529112556815513317691413621832061481340267240332445714303124225144987579603004855939362212546450127996379377977736077147349417479227155323580444850334896652597846787601087724582969063740385604657062527782692941986098817980209970638818864966732861420175406834190961133513717464386010906262458843472786393754524041006756689738672534978884597654202836397286331519034400861261223960619439239373538971350456500101621511401947026390541125625409384482601218044425083388833546244796431912933712239085338804038937769198174676662960949178081849441331706212021173647668408082285996555013611978568372161014117419601311614930606159982013609705450032540834597390063488078333612649434735459676653946347297634308756501616866660927135985132078377644720759948728802002647621710070934049368446895782266271262566408364951167529240541766707964560474299999435738828551885646430783577582672795419325745885939992900775322636942270317994956175574162122184661608961376610139044486063554300644011563745007537224568658219850728838421777655286241731608873397240536207299758259413772751783827541297972321967194667501545086964675757174039482675339264101226265486099268223151633071799956817129180406004152802291184180593551995892394089577973084179803651585927331583258774016795710029924792532639873858210426517679489008335623323791499128768422019865339677587922827162033182176729384852988957481847419714058570773328957879233310520368276621782606609660105055738709499863055044745675244128013288447512868705915450800158472858004571440868077392627467250752605796527538261848604969467043495868114118923871970758979203934657635130249152006049664708458848232358442487118596082570341124725096273248888669760675854575743918303275937476804730524030289231378765456792513770763468025298326883159976737771851199481978974383982836224825649246096013928319354302822048405659038846114012211366432657982120422668390128177452591126970298926013657419586710912640982536569473021014257791681591228853143417276635757249426122763995880191291308768799121933333735858620515970642494972512695406891034438614742926141477467447090928420430572545457375800423939123824016409466053883924825692857731416691750885780700431082731503289472994604749375149249746825737497142982340458881206531390999031796238330083487669878939091555705456862555962385482553263175866289303904021877625391845383520948292883651430352247522414544025310023017671043566733405183370370882343373075363952276782635953610228974712072807920626033991867776881694374703058788956509268726189535910940120396909919932669179971251391601880746342986611291829747143688858514157995086829598934621895387340813119787967586046361957485903485825530561520014994621616657907234592064954094141349361698658374268151673181794210873069588179911113427598093313049667667147752080932986437143891362594839284966953450384840395829359417085915810687324673442936820396224082242553722828320238439713673717904375950919616717588096994853232666697214707960960142731648799371587090614112959912861478052670920372142115786335016111764081636621641629076363106786299070337333753396583567426332659902825971353460290193397792450522913847221338412162586465267152715484105581336508411849862179301524168261498864426106116898657996926758129638673693344817143055097467527772630660496040979600048837102809245380067389400645631525747477047587215602523387693257409578294133880163823129234681201492395990339431767862430846040894785625942050848093912652827732266735255615648897742065658034668799085252813261368074106053749067725810230150077361898017954668230625958353464922906709229998021841708362673024518829872365675361763208113870755874334709614814696247396604526313142218064710539550031455813730392174036770879679911573135148045938887905684831003593800052552340009517738050670923087756950379731828867181390488747242312635686324602778618589358927425358553491436535652126075755764665594188253200582846352042406481966338164480595239678107168575277659094315126655673731305163065565184762129438357910338786118572392213459008569758097274603164297582083020885118743181566849843939430969526445466808578090105922988225041158994674777775859939855444048876553261008134545210817938706803528654802966639992485807793219165367033414503599502583002899702076237035054511677231524199833200873333519549473692933942215087425762985006994973329319929252394484170576910384196211917816862630019255306303904185144526284774426220094982882091393688303692839377542803339625976860271376385541143411881551312918170733316042124439479049089975498610420084544899509964279490423526054000483030334042202736087830152369210675935894821185501254889944966439535552552378468375086028634799791417169582127813700323435857231470336093239699621160856021059764321242638696435882279489332589333261925417792356490577886559386620595919632607982027334113140228017749395925986234665943555906974786671060410590861520509407705333921663744363801513646590542130344320194100766607962174205354249434862561104858104432664847090648224747232575674244407032745396674674298279149463573801065005047864831777843584863906423699429549243878096285978039941047817725233593314989722464836477890128336251326907440416934137759274846570615022689470087908639606504804946614368315687479239682665522045160724688285390404642920086089805677539415302811673844408724783655768959678492568608001610124365876916790306490114006393713067962882212658653223195354701222702127701699544919050166823029601530019984526062575514125909909059333333275740600738401090968414406697248338754964172487154279741535785703279656734081406700495882954142569326027726880923652002603149914615433727990880833655399872971413719696921408094286507020223682265494639771221481069276934278261735151382722470780893073235789140549475604395749692800720232709945446485946155200443772725023154386072132714316857356889856308149445411402894726932662848507708433556633645058046219557521631154849730234632898393874784996196571413441553925114448630703346730008328648425262387591775293842068163310151114975726005931148709943882394009635233017493840185680876935185425494218261567522397852597116639202387923000786651740154092434077135043407664281470545653860964222611367617213632508351704314453132844908085295429673594503313424236271784572855160460398130515815679158638952602599401273933448898085062939956426837252941082682604957805154216540913123283914974978657218012497810354822810954418841357661592405463549006109661521886754988774998580340724813243882035296028777677661447960903719921997806110454140346820341927225934380594899220114136499169727017164695072402659540268838374488074615855914137372838483735001240506478431336892956728081764449196136089643823243840246372870398395137412867495032846676394369973139785892300340258963132213342702724384317339421147449503796852912106988443155089332473229042839687120564074923361799501099185696907617639521617484844890814844002962207756167342898146269391540593299953313354419239178922453415666010549119458551737578477215445279578814870744563980154190821348360467263417276683633741727153804913348489467126271180203914626169608694362016783366474384526516490347614261582330495946079548383746462276876727623152277255852900535570219404745583399503041035000788081597221694681585606616289375976913641064560692750714248374091550175168473509889808332931647020683232254083851718221920153019829361167076405771697937407305743534873037002687026433540395020763906160056745181345685978604405012314698281679302774230826478971956034599529449805819839709936091543538174648377894652766333344620100842136948865109555918015874142637612569349325638771890463806397937104438659230114016787583105475932803384832433862200734775881048797853056724564245828641430516571572149879191022659141841514932294104440570727486782671819629452714628712901171950894150757291796762569281717389597627776667601118250724858017878330174731251947834335006282122310722531220629477034836366411260742856890208140727338244315179040822920662238171780606700517620751797134824176791097441602725406379016867290074091320138497376569105490101364205144007812912377045873005640779128000567010933100171935160555281099241671447721853522777014273067610543518036581666189686899785922499916181771191289687730001286964569842053298167769777713325302002542135524096355694658401919553804900955171001577727346415601982641652154000634754038684471499148866589026035817999351972793577640034896968882034390241254047778532464353325553320879676813467241660676734837175463097782038998298009081268868093061319613259735207277817264466700931193916591736771611139222687168446693377038356220117891382980235891635334211290458577915423149974933165137009799272502752919016800264001857375532832941526662245898836121339123557585373258860202800423595345277518613952733153346428155320063374120152227991789520491382869620480291800214453607623831325382768580539590277303398026314975279438435503831454454213345977348930482165878929701543149200041372376276588549149787402864787090439210571393319533115806181599047139525216296869452693753769401988245785888925838629209247759145882675915522586131403837115061798211247968599833311635430054901280142453493023643335416559512678344665205124027389306035866434448152911936257156971468486220594404875445933079994075708218344554435758048966925456774984025816629498091824780104795211897825691359504754551291312633957637550760397501725838696138895386379490502577789331000993740359847778552214576413252384711561048739846986830924156736787961495303737906176215590782609544544694262437747640348114244977536913548715636909797645316462924515529409752539605280647891569054367834626344297466453709282950248539999651407481215978602067737761373486145880691731813371438770414258942079541620709246845649825721582813809121907142493878315635205711411602574303930432966994839324507508333351196550605029530507120455436792820431363319439257675861082274143403725847762714743390204284467082566210416678803472315213928586500866944452227376616409562340111168650944304509314065213439196888513977317221008261309103081613440943192329766806838887571069287778716229592055223359595809148342430699696355004942626607485813408871176711831695752716026909712092643446774413691165709008507766074813316272125135697792310853610043495399723502344226163284669062342309156795110730738154381447015118668275616770601009266140278404756787095307677027202731352749187373804520256302742754954104743205250830586635834962398780200816652239206962130951389707615093214853761261170628886056122644278744652814920782305317342086984438659269231874207847303003393216907711354047603627595741448523946771020473370945606768396986640862838849252652861730113500486203063276895177831176198088675947458240708709861137836773076926527349030108533901628958842078320848726596925746309609888204478579252830509753932289037846282752095909503078800165478861604226002724026987871873355532350554990757872680483891360103059181163100301949691283315283626019858417503406950655498268712900770122837836446859967167375944677581991911697043788153352560283988036249409025367898577597155004431616010677308097787974874446097779225971506372338602545249482994621402882450465753316054246872386159188059557300484231534711434606165096729298815455312120977382910259243496141221695353049663319564034949805190271655344581769772459533539358800692085313914043912745960613247387634211652962898495410531481233644578944266110961358025210226338830388693582948606293085217530995561894359643222129110871361437614794528387141022959394692331398751461611461555777864689776048635755655006986148262844327787375881614030890624906771462597946204323954437915724188493838223403928110403861720311314417057965706425556146355294330405300509571078424479408092268536243337941890898202293728451852654238670658374695847605363200427099729013914242291692212061375117639468448175670887485153451801923102215788130227379597825284425556516474303135310626417761765124896476045364016244261751148365990534848523204479028655936304134016235473169913787696226325469882752442518218633926978811195323738713601231992459413867437231221610750870735489082593441394807251077727902092962693966111056854254349383848351717393503975127382706681438598732350664780653450265440992546852553044410975282083565084514773120767279397547775482826300745296365169664865049347494881628151066117201963872953189096706798519421189196698541818433859893380604276214330570325474922424131394984420929206745446791329377653768692510675059478915306798853961990305057091982417215693362952124066323723941349791801460910838874604457973717349229777591250578817605271029352601250479109727184359082710535707557672707453449221859656127678199465934760587648775706799380080166072283088494293006869573124839991251532018233565098627540337769288181618839459198984010917463329055754124161218420635302589811853341610450080466021871798809009130343787944613871796962167090762688829300593946163489680189158081657578479833964475478264332153335362191108553957322108343273901826176612601991093830871784969493438773253730135960430385036364342779120783216164444081548851833762618913481211088406050340778157455415986803004051610288043867871055933432577672427593710635083387665810564434945236142275527972356890701580630080170591998643170966356323738943025486087999742501982536748291006617691280815710908787207554364782852427119421177666813202771999606099548631170863373944620857128042088577167464586501201449163400602369142833213910640942428122900395588981521742873615867813309770712784004158922239920341128852098031361949829114644594486755137124401093380477403818235644276739926839944176956486028081898394738537872472240664059225702956864683389477551224924921687341267501801848171507517365872774960323296539190101450734002612055795067062093130991963474849676175791100629313834725730646547340717398923885448626937309420831798403540739672539108738447078422819480117580069551756766795975222550888914320149788936721098711893234276993063339248202398146721742084044751597339015021292705795103502371429470260080671398504339158584111081153906478679196884976729129351349019744212030525922478726363598527242082182192547819940115366789471318109655318284953337820692437351349699098784059145943531183826025500632278715773500758579817031494209797706403759276988476794883904616615466454782713289821424246571744403159860126474564636761860321405279447020351879700121803461430138414373981162257454071951879646417474313741345523000413974190994602771334492235906194120578113699152583594043365053318564848078305280470873001738503608172669865400268775195556448353915725548533966298036915384586912662492682190351619302458237963539420918931117135146889642264092406695977477878420706171577518669192583066126988215240577422291497835672963211643151932717259135084752774312033074308695986758989741921597064555351166627684849391407286191344638414396410445256510692063774959999599110054204875176512856451101014413596811150203483013502206617991367827886778738873378709244955662285613805036634172518703610778233244312955298499502938978010443315877781949867962900961668022241504364931040603486796387069038062739475262296633092288476548425099252734661307394864497597203255538283177482384398028541515121424223525346453279463845091778719379619110482675236652667219740278478159971897701775720264514572786553514227096727574136415817336520264221928395370193408397924577156518217071453644473983301791190515528850298681780267325547588155311855692558652752502962536105784970990290715245593385369143138010312849493294730078030029065919983210126958608977855225702916501656849034161557186305489137175468071300345559342219928882736965851362079132246731918460124223336149430204540910766931109103792476698730386782088066156468578567443738460875289625405928361777139164079731471984808125301411550703451517432555216404652715152490022013115052996824472572644775088649650805318596742360971762153286532482542301536607677284925945137716428278290677457979972818767279079608982170529279668754822590882115803703869729554314068693229998462177993512599304513673365956692579413531309733623219151696005537165170053601355923515913571382974065547843882195689242727945444694845015480183008076867547624124262456703449018108755272562840062417238982043973671085411137111314793949948532871284404032604226865861729846291566264609063097340567643525502534761862502278184250881877538792184335017703216196144258179224929582577629257462502361569755819182548529528738028808768920300262525784815133767787197825684131531448783867644176926010720558742172772624156005735838088805834953769912227995908048402855391576862901846362408093933970894178899396250141571899417801600322211012056201686575964507436330182901885266626222726320559847501825024445856972777919753649178070298060302764457071241460433485600130623382340998954931087043446450927028306584381519646055891638114723682082093164905483940734178251986305543031777219847635431674005700467215761611502033357438606042920264489143875124670865280374085789080991675708634326597666367899065687543548307022812070263158265823538845244366113526045359252823009295765264308638501439642089513350031555138152081370907996197622238002367334145435821559153234667496997700424886960437282608739164888412859576304584278713319053294184522739022870577076404709282197159423241415877220083125466382621357058434583934606733179176205233471622095298215489614390881743305169741515494199365069218658674352560738995027413460527617482915937835555859969610501630084758500720483941997919121792505894200882541233795146496622038427205514917929182968601938373682924019630751971414882255076614452963369050169454739287301868660276468172020850545154632144181592757482915935706068536144661184037417787660128500701297446463345355855026548457347577024740375685583658598964919935230585660580171844086252325767097574550506206751188399502264223299833951285912281839077868882908556942312269101821795344737961687409545000007308271083707053533246036695319830647635567090459833103666638430438689572480865743547530393604967328450543501540219924031212479408628837541838882189620189201021704527622298146084686621319503202833180966566977521017059431735724975604029084998148328462060223384769661357217568355468708510191542874830302885074741988258980478936307555926422453764269368718859039838525877064666980267053585066890897795008444714746329337865816801128385823350426244643695673320405480034352119576062168575712237351126768798210734564264061865989274017739863700163389242986264866416111264929940892081494174474953189635464709388691249837267398682464082878427087484126780782546689839465516654441926391047237347623966188063021450355446556346986604301650290704727050256013615462308176397911377409232922476770430207917845103340447738169361795240132237607755486270373645699834875722993638907345078595416494536060049555482757724461203156578472545953234241862606470171528323616287852813414377693169335445173562308037786453674658393285496257420690872049791593560009408737955792478821720155223688943270626062928350491607375851413322849393098046785989933309875529998583337730181376903120932472852816090223619032210872761372410888447570534854424363201235039051917528796600641631177730973404613360574988670031461668871320214304829703142916066187352674362118708301219974131173168700183166489798560120560954037874814839332484241157441500711504007322043884451129077396861351225496241376114449480971194754199302266569433440338604150581585056666083801971651268786347330951070683545477401627824152816889575007934982766480563552526110306073280797554266387691004811896240458333909366729467955163668743456618884426125620565367317053768653681840555584009397290921179128685603367762967458163089078024729365692310676223324222585614604373868426424942655313317037465390582700161228725191501886103384646325543563029499944878888414991970675111281101456441974715020952686521336848778513429382451999399798303296497044580422503216801728046690490720637463842482990252213030910443658408539282874967553085387884538559330084372955167692634364022913056448960294442504736616259791678172750390782579603505930486139539945674576675537321786751211238433062598811959918337432605535916647996077025052515036523879594337123645894076276221757208582064105885306180862469276122250433993597869842394349544831608662873379493948690059371348227631684562589056211843752164550726040872478214545382885254787498131270671420851117920513223914124283558033389099979249753836548853096533462529482975670367618842714564353256179510165813468318854913210702854348206219071210214154585971257836122154049157034473198355064175361670917772369965627531019623639540061351258321844362992558579570328121573179933890598668775555076027088924059653287317882763125555777405180317150491368177381569756459106308130836897227826453982976035267385229517981389374871667809533287217003041297244614175675021890793420938636161388892721066726040811349877421873238936697336347026018962885477668838132657043307320443358043469636536390449318208221855166673735304008725194499573151354995026325439091137823562029296769492911063491121982612354038164537865036624264262442498726724647942968264788333660057373151674934677770464519387265483521274038363969834819513010486059245724175725668243515225241514983123719936885438926114771285484680064970317589949464470137144797487358722847273310600618418366530382016618805751737973909456566248520487071774547415388988317316710024622759794043882597524147934397001739070912043091961205128515342817497832431994951343133998091079689055762484448745128738120356981038596955998619337082268201190367238576116811882030469074013502004296716752599535135408607449202120848710710042580021905455196207894939970255610077805434011672753102945292752918433753372863340556051220805001384070468775209755149278079665738535795888551106952753019268809641240047441043634679141042642095435968518028597558420799690777548065529209866761305079717454506419663085489894369290090145483448765724908084327886221567816669546425761688711636093843520396822158515414474627280669246502565689098625166205772572546764471055401415509225539143563783158711356091527505064851266695903292739118228855499286010875743620171484529745209825384844764070430173548006543981539195130850508474495885877631479152121406662391432830197883255358731937716805226339800192749922931938767755090857988178686335480720830670413267057863529813883081938857732679951996999281957638984473869612715190244934391219969230201816380739652230031832968517696139120392072201348949438218902758887388049668082036063045531688191384500261924289793367973607683758181672076110214678767224264382292510535387178045725226833470798973580586912810166795356811686199079877119126276473185695740415460222864973750183474563264073074345195548299976327779582659433817628126838776712474269749499027791909931521599829215476552867792779608502377762187839287784623588730470411372019141353946935427978541941871582699240213746347881349318739043979029137935375712580154159017163619072567064587998086963658995006088095920681845334216232409268761654167190165172032551762000986542039895309610338326981459970309659968002062103198641914043618691047434884842515650562543197982405710031126554039415482463592463983572805830724383078649195606835540296862850447763075408357984900221889871731861700210462314453932275556262502356908421335625836862421885821155391364220668838964987618108292584386268252151502795145974726175440422365779500326678951238215776918954474441943976405547591712230546875123819416086581167255652353431399369928882306406898448074909022673584396196576620152859352366948198488535458729817369886348758190331755954058010112414740785639811216493556185509803275525299195169155051893489340275095743796980115225920680306089992471389680063724843898604146125783105385811057888180385734438482053568103143223979993697510305546158017577983479900603777279613386311446086728315723324740686940863148911740188110888328270221589069744412598722422545667070261460002079656260797011370383364629446662423676542052957468559522594558333298289768239585619045432517812259864810685513990220138633978948549920027659839790578432319427217451954101273107248823423598575282838180817867547507159610926748139315591841265177655135748516965565138781066068292954257694596855009864029948216799862315812289707619692990288836271417788459025762711681242794702475499495709471360893515009824005341166208490595585516601902296867494598866442243197083054762427714492673929355849356220074714524715444651480785089245565413199735846514226332405828383354254823902237007811025344251236090564378587291280284576813997375597847320105593943253660544314776995750545426072031605986010529857735542819600893801649974023692828555660321446987831108020851909257586851070696550208220949470624581257058407769022399840013953242886688559105489651956964784027163794329955807304869659202767852081571939644538306281263170564238285022262810933647587666814883168532355165455841073250915271951851254548330945094622981669965653335239313458794581787571396541249433586877897981728605676703818586926662154260587596242376593696294004000766355860326979535532979351059227623086692592601595554248341335810483388389694349277797405590979292502425656608377552620804841955787983773380920421769309621913633309101239124006745916421994205317627954838069864801946007000064167512928140481061476229844188526869073846643370587318462272286541049436646652500233503178237764176401074193188797785393233400437304863284868868840801383691626399017183110748728923557965225137958467068273681263957033863380098786066531388659053456947940958985822518787525333207165807968039964096653379579427455617560181237708559418008299432798145562129757210643461058193615861932601128292667858593788608726631613139109691607105154782660656106995258535972529400175685638486076555319920977468750449522863119001615400675182856795867990462088410048945983285836429973327275661336606438240257179633257952033411641113003588940715265724371602525072215488164217250888203601393377711143443356712610267204492209521307286293540485677295231907268287358229291532604757027369949285344600917043913762303522152536955580300838537210480638130296973120788866239138386782120172542844442845147119023291913952620664422649932774053769199397924776673889277101049068475003375818628876972020762641274564550934945165568678095786472591105897403779825955225839684868585352031350873111199141035333373401862555688594921225733568179266395132538228990575931592379009534277138353017168353157335777357462268886060665305510168908117533626375093041454584598752103357940077898780000131313939107976130335868090669154449742238806735451544949582370336884583448334729080593520252022654284900563896767425912808108898686295459791054758621232573945971702463064640655376450049694230747223674670045982750481562999372342277950545015898592538272032240561977556599505259279959745036175049970342390991519341614376515402069326733253236718916674912098496368563436319547389976296663218280988650247478258853505366675800176677232589448297998922512181573456921632801996486982243409808901136288569856169684727354821934754509856985296057647473172320939599792855851137961127117703465697468253134550314987531702328044716232076044548152826554827428337255358344346036169377034289370751252224495603191388794369198041762932599183656079459535876799645479339920898048845208872196198668000998046988211956426330019409883356893205805498255078889256471233245800847827703555698155328185235808984431759978314501666527459524429256868489131924024726839387978007018584073168310577720500244502188673593884535675810487462682634873901124801361918244838247401005638314574594011430085553502433284189390634857155822870089069913887957526259298583148527869135150898467106968887039376642596392753304014085369871334041776619132733505983559232811738844078792048554184021998260243950010792329371008792711679835173356620627190677154032294597533288057234070552583542510601734523990041016983095225933014726551153977252109313246944006359761718861190208674366478703348510720001847468121842405799665795528005064671175259810840318254765376538328672262772061081227632467247408558443218481633990801509682942505312618596369628279023363781991884145545969766328518263598643875159403957495029362397613388964629078188104497627548575399360974144385108604105766632233249077284313003737888797456865876817903681344320162868957967405912549295426135180178889818615796665790344772502143875920322421748418714974372472364390332205736012416586223480461923196138280963005662815289055828140255120650280677357917352609257722617828208794585106953086634756022548753802140404550008614331867363083434826946959781223316632922349384659360658266260002420565327586814022724598048809038973418837746854295804673091145935044049648496559409312029467917717147259670807290784882647559241822281454713857289470811475526956890306278034752826899238734115628744453925754643883085447719413335142928610668190379679252848434378164759542572276163123560448066585964171855878277024261599445245861838545740595922607090543310300780068106898641386970286856099369809258748609653306052843748596785274061959334858085849338208397692368695302468903337064760982523863823239560039850690182332377400693267981143341329216802019588864426785548762699916349501831217947226945658324350128191623452240696232061117524775836902764590103886254013924263041915533882608671879294032044222946928359845235925058440417657492455032436726754037907254971598226608501940594847217248450946793301770395894530102977195734072423882869876041251509240887871704374154387588620933316452080341302158156319695143695768686687421299603930611420549687365626977836125211563998501772852713897944667745723551794203274364413546974140198632041670438185976479414529536824690209561664497276184318806807775555969159102861800273588790381299512898554703773092381925700988265226269875123814811338904887954114468592033865635750387944418354799949114874676250094541297615077820522815445471177693032556374004250139002821489071676223314329239679384756417939571379281797397314633444116875787737133705142587554392550815089896286295816827183430472193833828628732633553205885479543983855189340642684377693745601035986742299043845217823806313431647365105084194847493041628644115905300633413683477811116376472353941944434413478962277738404063010180823072743199210415071646033272250254691137262219052683830939246444273499745569780785955770690484822660439686186293138888867542281250466552153563219823520682960999741246246058060344335295081441673949495195096310687256559591576465952285514748379295809340394447318043464350179756839371674630260016032116949386107466612978943659365233253636623282638268634973834503494016974790196125092608831135188376052966708932678373059318636341878572362025388000862466826961015406322739239189390813794243008151227684381102240477043067754279483265105521955939759304462925683544919397135143856683890887219678116555241743278096673862546840833984076361869861389923196352032278559783849077978186482812026982797019878220733608198831147067878253975534398012438474605211728719590396999066858773393226158189558296835618676652020660000986966609093978477558303914221599375245138500722250353397278774608033238091777162908683444647751907710849923605180843715430216644383562924500327681403162833250141697245290207253335102859813711271313653566322079400427679315186826428881619591200631800556002472772316760502223210709199900556947477452240839363735233370926151752854691839692323803058323480591059686163512104337310778250172142868949078153254121069226138895402528357752331031792893964431355928492228929987302539492041719302875808984534186175158676685839418432570098413232049789952317416445651764026747973312321052383245208633540457228126111996161696135447890347203536535635492785494357954436420441680706320419272750990321150877659603674467750979309278992502826454240383884384772101487047858033392501704437735621134495726622730019839851606958961718817758866940410001203144748309317102441295244660750088743698704172991650128026160626657308506521431043347582867115106508357976465119196319458465271058920366645791388471774530378704898996595306952611419192979109614321553860351506696534584597597553917411220741894342714537582914278786360186410738675752655700313191258164223871738281764862957172314865442979171136984237333540615188927879171032100273280941954171920026297770092736299034279363753579255753747074451202660025820157660804780423588693587133095121455989414055656137285344512309130822053899245483970233910807466640948375794437836264732674935207881676384766146046877794255646781993213338565394898844536759771250917365657418726651972094705751398853842938370135770691745109657923543539474834940068759416399580394706802966373134094528069079079525447265923690767769003734415555346451449778387225239468801840398979348891499277718073394841961071001548717746427590140958975388323054851583033210147770084884761215890452244350547088126945767468452512196832250571515452342751391477187718015595409406410437350015921456909100959115573197305343063496291467468743151121932310322069419855996446151121262900569275014812957825881574336642090765579232271643463775207511376916770085482051241449184296887279288354218014700225421421599833414832659020275115293452730501546608139798776799023749969830278703008237766814645839790385675105232216291743021828676456323689222294236576238888951658790203353963926556408484961307475522798411978392804447309299159183729181002403799457371786802640208565682935455078888996215588027390596348062770027406691014786790211540392775394861139674206483047441091165436064677783782541766639958289560726920808484728890829745342649125197992711670246640390520484409320842768043812523745522293107707210641015435472664829868501678747001406666060507716138813674918960250901378417659040911965915701401294916985039300694953401585442170171995988481088679893627287969428091685575686901295053944108688154287310817902530584144790936099529630023778620445658709590412954971433337848032477066988928422008388816301647578781874771416501038781549274285586825941035426158459753480057778589118621303682981695666663960077779528546036569717113708740917580868236910388824360623017523356996289547434433769276311910100856732967542447046361181870991581092589867362578466388696291675907329520669529952629702791872233078678989239473112488000124810886927728015585006345330678738968585546570436514616725557351597114016857991110322151250920873873978924817437095025559216942577342247643944815071492605837697601419032973172359263251872927866018978186214513074018917942376753915133332289811695530475312835773000540888335806048093825987570372934063879910061275281268087730978532652610143029350480997301905004779991320167190887386145541543526222315386779133304210477327656771538084508061063657027598509682238848804850347615800560864346518582777398697776311864320022323230984629376985362818812606097810986014085884019784896523646621348407195015121806148663941960406095462400491233784681076884172130953942225474766687920692125215394046519362877731220668791218085703689602041619212066675975319838319028572095171990965248474046572266454578165418162637632010571333682510884924415658682331494569583397373474382016940089847761735009381349683297627158980363078504200616221622796279942870248989122193636492075557043992345758235869808661330753773528203539969723310892365780600869404084798149581813474185220506535268086480606634644867397964028845918172410294294036588995595609502888288910508346392711000095133283261584449806108234441693069378800054077405004965830554296796169923581189112164363237362741200046930364267214586037731230642401072820376893286294757625558589004690077841661447064431716395102848135733596919338203954850682340800613351260673741175943304204394107901810770540158632938123439167946978619969184036480214172147752134344033623089934387421792965632636977857390620478641936778930598469449580939211264767689588708431490537945826976763002542329829360174872882285435301585640179399185012293111406236698078637690631041050469376296727017238454042095212214563759579087976045551364747605593798241985993369997168204771189732137806813317849887710177769439383591206872771078304535796674154745531781106904474153306698101234745124888132113372032540094636084535803401259835860129856987665736969706103154736623447546163376536912794213053504640986551966865863606510251518356243286826580545598115022521370165498143156645873125305441489411071445312554137945343285992941737393062443927619451245984826550283232733083425377822618822892587888986627148606394859993237698249088011328439819981747190859558770115063098881952747541682903506849226185187986979025902467209495037176846783875004216808710289600858530567190432444068246372225296424009963549558908454080670027815559524640316314993465955271578963154824944724777810565237912047205811149435953328613881973830942789429141851497706839044624082938034537424512313881645109174310898765791528080565258624258705805224554229677413320946756008821339216284814546423614434261619246986346434538738257949896471050512237529708761751770647541539280031546699488966527144230798307027786072257103172713222484185369807034710728160383401899183913230890391640843108593688855253319260219549275890830037620577370824374098269079911971655500942194328771486573715693167755150161370851524623432514209486770898949456581329994224781580825808528044157405356116845153728108072337075407466373123673900931178205019718914049015328096922240857066657521688784321247218661428127778688159215815591559054956526913658650269770088541284545921197116133088743156515212952340266241495348791377743669222490981826859846710601091932918706875571811121696553034062615562601491363250716597790837788748491448698318646562655808103831585440403951015591042404205442730649225861027865188904385116030577320937981569174094249596463678144284599182886889303111889122558383560889585608608393733702277498740973801318689192476200161695759013238757202371330766802923760157708443662156697322496684140629977785473102751985136099962813943414675842917484482926279604037062296579309164219847450408299984047180910007358518975317982618825119486232649265709852054587451634113486475924741634746556084305096246590292708747800084399034244638446426921901908548187387821674436576317959062516116317425893270956931440962358191802985691865045544206343537040029901669760198525898288413510095446718923897634866152961984050992957606066466965832070752662872095810645108031491138947654075597200545778924420092175244800488268948475707819504384777420003780783011461152805177036194859337932435876270340721861039011962588088725978673329350818940925919719141785775074721193801522611642815793302875561963187666114019507730070400783883995622877919799083728772087875804675091747651489056432194194498366951551631252247513507758182248215965971659324354820591693802104677805423125327875581300289463377287172452519763503574136525148344140429922753348864348675599234973783947700164715501519399962688211290470714673585548428916528723663275421034876765910357553317689152984692121909729105497978269698256206666944606994494563245020781621747760931108811551567751987133102526525371481583907966192662137990124699749639393495649653680410236106930770163934589927732382179708648514947743033287926408039693452708133897939529770665456018937796855671909048544381634936588871557690078033261123178825043825962325431290377733606139712839611052357926963431277701998945889010840444017195398816698130660188681126024274995959474565151072948802648097687913389202229947740345370857035906882607536116524378219588698319618869369382709549837045961123887916098705646158746485664125871164990251955192091635059018022790437001254901355387729674733996462820864814791006227816695618795230862300777607589499607119232412161356071942768476520709507900831167420687767442654447488943750443565968446847195110777749368519756302798009357472916955194254751260372254547477785781745836479453977654571536531807520602634457725916971641633481502792110930917747281309307263939814630707124477092731426947120974624677147991401346595974367838385680910971328138837342269098090192697890586777188985724259017081503069143167734634537726351800742626361789236836534959207410945772567862706481813989208931621861929229323000058692341027723593184045675587327758268560462596002781587520348728168511598542286300878440709384513089671345011661362090401293536446840321396255951113693723689942951866350201626843412302694657422992886226769934871033519626328652853075458671311074432708757487281407485107190301792475701943928096070502465995574427454664813351705680210099182129330600365553497718887207445683094026388559928918627150064599085726174566826378369837148281171754695626461166925492544674214206084113124210442455285411747274868166559247666616421128085540413637991406893550320752517545729516279619979025953499866704428606520609013390126947288104840339621907445366604699558246808697442700616716078307723701683477299739770939816485955188703526624096218104043228067870678708326350862256644110639728103685042529776668645806842564841700983604507251364196197932310132125717794294342841181602484608909351260705731638398612254468628583062706956928503312319225734762849364176787534051223091237061508502320001317724557206316287267543470737117478688145736749080187590302842054010838183305573247456425321478479111298127166337434943851832064668039844815849269570132885735970101584249711941947505396138260375317109991567546466534968992292857714369113440135548650219776174938121567599500603313167163090790223842909529771372012847457794394727166018376172777506663263455191378863996498512615621890693233982196647327528907823562608694497346377765256708326591113019598069640660685680802729405929311222334794192614103118147567448159711862789218090711214312701541218275019694734051109697523330225606782445345547447045099069941175522553067552950135787449469648499741666035807777594519416167022123834663792737191671163521097290323801680741196822490268727892409297161261183751816095206365238892583940089104815468816261564931027960523765618558706859541174817075774886028431722355232278890718837165938261586039244136655231760887368096009323189399735527401745575119348821156921693608176816526196376873179812441055469417593340086845168475977412540502843782657975825784321463927508985578653949512694435120139660140878451157194556773792311090822560122378816093555538725932722755778572340874631985659396881180079024012728953031657223848887834163455043451697365838143566355870246193749667235054679348688715111925309539090724006995311179474230850398139320804608996142820963331791625026311665682736628928707141155053634876892079222149888645075180223292330635703507982634854392764554766182580108902089217556746053253995217368094053468596161410404192370852685031047170375993803391598952012486714595283675280473675899198229313865444576423411998376797772656507773788716959756175371938541662982732427811351742938101451862928147097511956728572543972802314762444602268376855509264703749290878026121948067883615891620505899144489809586380022155393885263536383997971492559998740781606978304736309284337390262611566489033246477453117589837970876538997948030219341825152743537783009151852309497413383974022189114000462198205658683541453592351515695558340213460761995247509378966628977896621789144808624514539724756734788262434096971245207658864379192191994619509440288935834221148652016751885015876349050988477685451694555488401563240623156877798915475913861168757883307589632776818787828975633574122266337091017716729401862603409976195775763751927027433969867106828527934122713264482777907685961322017103316611207401292907966906428381945363854076836318121267822053361405376219153026096195533775521030965046432798470355076177832306191479928062891214961444269324410326484948977956411005840038701654381167627650010128323896797820793480753019939158070377523671763017280500319655503489525786232010477016036646036915015518298807071268130411054283856888874870501953798857967151783026706500404950460375079299781046144278343868031621804531430270621117001831825797027531816743920060244864157250365215906528040242058398537421830814527533597993651251379678007927926710897666505253605606326937327174801551658084118914200645516809150382800001494700129954180136156271989242260415202207424063471958855882657600402982178799320029398425330536811578415479548330765342885190259641123374766387653656095988568307524765938696828894393054287556256775289174035517408972215728039531312923938017521460550843700274274466334678607275716523580338414770286615216386071007799255268728744353507916001136771828899514320095228891770939051654523202932783109277384052943539428773126641226125431807255280633209460991894415217226131918921858447638442136994844546925709721791864800179148610169913874808349034012498863317016676743284671442549284557567822125706236474517252532424029969502327257625263871184830589755831476153429802285855116123520303637514515142955261409201679093761932053380486251437168611701816927071756814468215634537915428254877862811575734696437748537063696370475298387308775769500320898057414954259137133252466858185568222268419801888890055559337913288993368899651149491625112749304281754444121158926248684927512936562696913251772007560009150178359293694943266576837135278511851777307518694754319051825206027702876279812093507151016923597415975124575123097199917336944019317566551138047699751561632836006698939625361308436820041942636990556032884292497267900769895160656565227002662644656791335226408279189714218428439928754239331225570153840502457298954444635685697035194331763999775614502047105394075556733771253291304148884294945135168424758814411679434055462480273033209375329164437478990399768504832296522317891124301080527010988547689622066582431167122880176216499274530998632905728408447124367116686688316000603555866564982113157058797980187537980205793032901237693485533847228727835400694239554053776700068490175091511781702380988598509942874406460023631627931163600054961977358440368174633206639618159725899066826276725719650126806008604782637483165906286515087695482412110474885462429221344108779597597905643573047245915844220696445853213468654898543403742748857487785833027234846509129533340220568156262940775994521350256878468912564205402132775126021291717571670757513525235787141558944609184222577847930306535908253464876601778874583845484816042025505874379662577124179012398722156558225056397164880448227139125894172309466543877086320572760868711348816879079610078122582850907835188792590594681618743829856831301690742466524320396551698702840611471634895651364661043392583579898746680523026490939874556962130403042777378122591369795624498319597186864960992320216305988854169097864428590497894431235935846046851186622196160167986364714496194770409057436536870220717226509709684609771581268489569987250478266688690621514319561114208886715758318502533162267889334396248922800282419399848715856868896255554086070873828310154190237214863638435810369048230371950673137598740073558248988310609348082976343861738165260477695358771293688058690877169060956737674157223997773298891671854142027647492375359036268018516634327666736453702643799264703578703841752245069213067758788888427622049719579800612960513345726428896553705601907501727455945608047024776632434672749785788922337404732751647507663922826521668394675875781209407912568843919724352246808585054124048798559976327986032349284603262423735377041611029350020746063190923359201602213615301599217976382441681103178897825839146478151685830621138489383731997675527026842379866748052295623185398543128681136727487568429869021919766674828872998590049380696554258502793155787039111271767631161305359876482939210795150057827264187476324002559038281552461584961709591954976205851307660217208658072908587266063442556361237566988993508083550925922638940233041028415969496801533336070046341155809094405873700561388719786740804320622808144188171205534698634539885060939329011272528859424989071325469155185983599202664626642243993995979589208496204113379440634034626453191172688158882591276835825155947705896030156615207822363635177126756882610883430056468831426207019186110322721944558637644933445244039577951831479946453804673656131349467335779921580966245961583232370795157712050828717705940227939569067201108827285502758453290127093129728457778129582011069389376213400056718954094639746335385710187276218299460212104402991989622021686981978574493916927039960763372041567956211825289039275027217428770529642785934883717953042429633806134739131704641627731938086344176033490297612017331750878617781778646402867013985796410994775351098443107570786816861443147517421170353505167985360153370682777847260663432478492642206112861423478808838828532800577417177588581491434057563410200620042829052239316720781616194234628204439760083373039118556687526125752118362555789388763910863639370157092945693984752646214975476031044568018314441340712414657968099574849957249402122514107155589478401002843892416740752464987575580531026676490321094453269037929861710332868019181052161244177789748440317724502470004257125964404156498746102697093929598307816715301097723864835557642331782040411017703417462292393941790039492298610520454232382520260433704667875934143161749708804406342146518441547682255058132758579084046174761217541884733426126170326190394470477734710759880271217904514794096381044095779333008222759463479592023924314662572500902080807685991990458318061702734269077463976073046941292188668827995176688270721010082359914065064311984617659983573815351421058536465305353888133667388074864588320632128659824231388195780394362647028815493936497936266391547340404812800016743663459922371233515164374102940627326225502619732835306016309074685327857862071709922483830828023293053444935946184622162301036412327085492485424376180552504501153704675279754435496488635158454477380676170317935875554619778329455103678533558228184431162431797431546693666340097621702152609764518740045298303248466080082576100220498222918316713211423907414993255533951355433583216406201453584246271064642393006949890865909084688167401514402721010874653472923473335971713521060481590772067414198589441403661056635446170480777685776318580245464757216833943235416298948807305840917090344711449295808954725198669954163294120095157585646584626301675966935820647288208748646151320882708055506143770700698000165780944513565178911276035318425878168996646166671608587576539050642119850220233404393349206539995926401286932253657376036590877914562219396986384809169956310996144044349915110795715604001864677639725028167901001973846902867392794779494260274095663680796600001396047137641365963646643918672185236796499073639615921302187472467617334126725159945268586267901443706743284669495291214046502319988643108661514083304859062498821177187390282382173727064060111854330038063489829129231286355201914614795616045027486006858627572453588176349904321978452524384550703696160980149996242336915325032288031153796911709840343064897250573233875987145339649931017874141685381400204927614397705490035296559104297202942649300713195045833486205556009595906918027376938517259235244908028813805268529511481949048729641579381273885765245830991852352280160996234072042237704148855888504801821541299406265038135488869348866831204081730065463543075132441777725145147776172407304529167693267691093072408950167352690692724050487633548776656036273835432447931809468893920587046836633654765545591086146405569339721046475711791824356719505542892992515936792769928093174065526180321541489412871516890665075566027195707228654488529802041478660512429231407686806877589152490291680378355068229027613913161117285630272427634736833718860738158189082477276266278073775534993361863041236576386096461025003873712868979493913847455148295744579423676831310335886386794483663921737048577440091640077656406295655820990733345994999284079465440042979519547260424120730260193983961712141793652884615640129323631819736154770730209504466179592121119716249952498749268583717103459556970065675863261763064304361048474388077379194485239797330487985912766432314091960062280002807055186305114636205726975317268201703318091411049540494037008180000997853130229411617546738273468839809579628790564856191232558711287922757087022957927278343092329017422874807524641651876762636516939724813208430445031303625424061564772817206944442865468316415477404441201396373062193023013637238419177159489752117657897951926991347239117229236693598473345621740296621480018869779378229836922108645423750059593997398240552942311484025103549345719743536659670740797274539926392250796523887947016761288969460448873914034087635911444266502840879675958935262769401176455392641643488593661154638356023441776518826064333491698579732514945062690943588831764541268941675292611667339540800990612865297864289593302153018498488214324025151222551362355193289096129151345793848168578773770854234980873263492558035178697928318653210045907227374718021216282811507277615269563195423534673959225722139182632311361541199093763187003263464237672218738724584349564408101797404072551462742959511981424847571242934232406834674161526817887122298164325774198815392045734042265985753467591993177444958052472841129142762524261977458604874816727651510512051049060557801566771735460600791886974282348300044591590337119668489738366001949494741073910206598878223062392988548172200655700385094327939261005589051720431976226707817209299429171170655151406078646948045498998564346121133465170431934189432565322648821884249426874785387045014495838243999189166626953627641369609861816851884691066443772835737496880186381972720818329468954097240103626974241463305094250650376297897227886593475196113796240185098634148292576705864890655985624522088131440229991823881461099012041333729071196483541891252560102699353411584511611698129111151476584363636730933444122510080549860307638903861993738513523647769078284175073882386262250501780716590256209179386714847674997685942166884443423331943139158097190673455332077920320312219830534072343346606250459825461246132492881110745706246649043700253909519994004384394803317423625033117762579413394405509514518675133932397423483791553276370910281797417086002112715783160441482382593081375348856693597482635900297993360216313589035625110169930875320897066083754197333691306830325162393944434725387117337544774106817270718625821175317133519092458408581883273169130711671049471800384417379874212829100315749530045926934098334775343657884321683936131070446696214780085997391189510663532146643488862658133554919463375117889827484300594903902892953358349093619545787535103989220133368045028090582439535001386125759308816508421407304048645763763159559721855986152440291851086047275364244087632008676727920955684576965988341164800272955408483046885563711489661358647024245974076979004114877756084243947043712275696113119785584603045367886404499514672362887899161234153482990317614995188784831297353292124325801405196785928053759341371999453396270010623679907621493286878437476990140611508600216586459718503829425219769755434774030035318696923224120675634254102678258080338956832747789046497034601854609283058898754468305123306409974261465926413341758858699824151992864327474012577591033198991307002524442971941899069754062781286038318956733332547718658681724319462349530693507505048957005814888171327007850844714466327357779758708044874109926032912901098529729133748118301744906341494802475313758820606060708923427722544096698025655955805416302439688560374010774215971507835563463874896483648325115778327336255213552936069613600601950231762311222553855068012723592758720897754722789514053181498867885799391235453351836560280619254134388472743466019150433145188247740918026685804755279240635738123743559907319210303758596268237978706857569452766187669154362023004439789738526950450732648500360254775834189840935259547812782318168570242291837734373805385967424604674604077420669558186808752592865650565846428241988046629521399946146767975811471019298429182204503471648628372137116670788435277880711988424344948161844999847689674323385804579631474482225747288043340107761248936376416656181719077728133559502397622580734776507428227306711632013630072802248172823328241571425324316024003075168788311501090691161313589274688726906685365823776621600756319674618908375271590826502538154820469175635928769908642451834351593176867069277147575486066724589833914390175067523878674554497616023772337054233599330438507813832509382408920439200426159148252186595013973215537826989318343583563982573486411934294873279371837887478810323808788497436377571320118029985232820799621490520168612813630827949976059609047448809054758330753334401123181371607551737110303978165216647631254509077882196337437728497832080448128034262415846164960934738612230416864365716281684888182789980924034596066091831781259738341013002283591166883457373690873465296393163064588325924242778561247791860956658553650493032873931897233112535625944674954171991823599679965945915041352486675967479277427442595536668217588167740602198738954156446524146337503248764960697463462497206435838562803830258762095701113107257001962281172827171305345905109666349685372582823308939444073084237528792369782221590301337610297788930589331856285432440067266870252409638663056169952468557044289503587641767523817005734681541356445189845346862778207500996274054266519858045435091874070018764103575183722556652777406262583905225011880947890434093529083848000436709455031436631395599269665411217199032845299956272573840983164396030648005677898893573545477353041831881344503312018139980468748366397973417757360970551275235607552545912380248781452408975351305774122116483734651707707114464297246352313430140910137694790152902749968737923587329681131413865384781106261549327108472640785994229592590125271059119851550301111993929840790701101207857778734202341489877656595556856123569964570196957602600015648658615112801444634727300493799073447588659799954876753791860205546451714317515693784938583933688416948169286063078616202901141771790850095142567419270399616509053375618110678732765946502882749940493957579494849643866342308357902536885376800224808632878719722727653027783474957464333681473079702533772110018603405631042878260069258487675479165683844543113796288605452878297295363756797990902616514502795141588651536431758774316514035949923189669137916018228744286693034632941273293536434871190219626607964295796882517949622999002203646626467544569123438346824713124549454940620977607736446572906422203095944447405180430380298086588131148090586151673059482109203807621759290545324952728361691153302404714679550916424669891021156921241826669242402694610133151271856190947499317209233502963978520090323694735219853256774450532852605177505200174944045590082550724134235293531680799444837291907771125296626128779254485847429894172452523728074763863767267296322195744946262916435005382444475030222756320280364561492789711181875557178175474860740005098778869061470234727127069657703646281768597090057474575923617806828693648390584454018704688679671572637079012249230643624107837751334090611368300490985453203423568828100892540868990085674217319440630414320371890875823253829447675087764775419483221712329677778322273197110710042762792896603923099230016679397366358363188148359731850581489229226194600519882790230270780991020993268529928977330455895259807788106689504169187015904546837281880221389871627887485094684070500778681861710487332786032915162893984580629909079440111597452528979266425735895006607103830941968811942682498512514283452478580536513982717953371644042449332397665778373137874569672947594937867668153148162411230249714616456828550250887494097066366637233542940637170317782872864059263658309578407177041674918527967179880603663122075608398917803468671075696462243016209301298678211710058157598347166914087453127424636533100879262057797484527217929706926470898190695639421217091442047233818367976740462937221967945694582155034474575247465802451073255934987555440961061104882005056095163867732223952670137273943465257522246661453095463443616610033014899630001955707067868138556048757470336306620896508441609589277260794322001608176234617217378892093905384176616026339553474250685343027404734679382931278850139091194960949770830886637522540411263266156948587464922597812224816355034190458459461467514561971062918444867520219325323654923134525646860062099403366823593948057595380464897572913858124224538278425261444343153371428422623244997979309216262359489024053320807974625503349911510966624691672531297207446971411793876775655349978734641932851813358008420231130172593556054478709810631385156391951202380199615172799474115679296183884969347954219581427664810027071951307797919912257346447389601534696233689175030441731461344078025443492636933724509320682476875784960921134912882867874427466636284566506143277393795836032678435418060584144044593308436867896992141354365225442541631867226586043657432697240104809856059635009108849682238973176868628059251720251080865702965018384139900023153757582028477047471448992039170955463131871280512992394451900860087328814194307278483963716868296705065124727045522300315118025809461168968747096928279641708778150205177390257763175181085164602241152546602034260809118233586175997887339504509371757191933099177322470239247537792900185346215104076320809377535676055550186415350699711416479817251166790286981889979113239177663883726266546832522818133432817861703843958513480864720398305184178067923746316706873978785583901776614396285704592246807322506316245062232932547717340933622279901597859715499535257049218757670468206275316113775771676508705345620751172128087244962590402038247305053300438010198767306701977725695360775967089062816622242953709276310964776647124663584482094636738560771874886131395932288325009902196413948629710953315853882843803546896497286071095124386503664766796025043224354155424185102130976451309600146765898942134076859576581978504166874295749323272554540232822762484021655850929172868947445180457475390731211814042411984899401996681732548104184769958502717755380850032795973966029717421465662570748561745901317617132217238291790867110723193268730188563334225046116268735473106539379020616243422826092256920040649583476344144362441305237032316499480040280443608837749271106782172841447905546495381928262593747617752199247056143975476231832864179082887491167479060727592523205577877310972749645895600263473343930073604734081237243333906416789915879472773271082609752759215964976712401444410547828086865085180565242562419336252333339246771639670893352205395880813715191667868368740560330017453590642842295815622050521747903050704187690697938035315377871499686622309346789538923315625958865368456652854224352172927760926489241882059984962661227494785929945258594208956200183995625349995357541399403567909904373723777918371755922411914528882119775980694751040176054618922249510712608350071798453912244692077304600773868622230042340183184274679320447423846887635516052576559812201598588037169671405106723742061083368068546148061359185877698573102877445066018659637715703980422550249891431525680536029932893627495652330708327331164626281791466410464667584638371157855887085346480940366705161088537370727278299039718241356846726131822133581944044873554645183595517993126082374782519632284189033174315934577307869659797567365648267948866683591826970285866891816548884041805919866541605651032514609128372053594637044162743295207429813801984427141522984467325102815260103476443252965937932800134276444050693098263516788017245043578333997433325021068477362921404860707662185572839746625802673190155510734315008775993512868181205465456775794788923775475482947897686369616936387975769363771509857616741649648113345760704051865363399946138345418353837096856659437621879129350152425682845565337701854933812135096250236043504034035012285090432214455306870508356910582425442433013773412994200309935285946412374450314206799991587721093606751663220718584672666434944050577841161254138609062710066190757019108629746577243796526817979855921313384559248659165214060750635088298831839405246862247707284695459616307599650562527229358225948342831000236538525609412384774429785211120941900086298186959831035810888242748198411535014930270038815934379884981232240137083363856148136498277441074450351460726156932716942352424554724356067821802893684136556544618805668986572838605127211242257011955180099742101232010581092075439183363086065656542210106002038557763727469440533072966246474384374352125853961108985198329405696457149923168857491207133043509845272594064622603208893689588771464792342620938118190550960311807386372750800830849799144595194350311970713409080369768563965829479514369641348725929989796319731434770501520260512367091349987652036300379521818017309122202633094038956252517052242132162376605778954541127998886645056419277081628369554164616341503319854402926754803064673891345559950095390403032590523390632703714155873548558271785750476292342939861648163935586145140006792467118675970860277493509070666198675651165273463847938740959288642047310478142651299240155474301454186756943605506169057248376734092770942279015401492508111913189676197895477934335159563533559166295093404446991511165177429282659811203188394612322011497241736635701710840732558926796078931347879337345099443282223092148731335504281410045835369872673461164053647167117272911908022955192267401634453563891112077180961304771522309724385223636361379039448358636845120433006502178223122008924254497324982333136587202045925242434248165859137443172171990039121808703341187164834304936590721253423267912576331420549033594283739986897925095993135260875051218592162776105969357725249260363197779070551485226591951312545953826233243620262105801503953779423476301359946255671131343734229338251224689396644004736470324993645648560980748908109680305906240703709020303210412251630171504992835221809255186715913633034147004188281735428692179652520073303508701617064301992776518800435533798084690696886280575061767469362607678220577254844256336369127322942448079941139756638602112109259489741796950758100094645793100131556280936307239691183208271363743343900947864737424054285206807888530753356613700001717115866623106995459078756954297193002926726903150531255405877105963999927998240223351952971400772753716671191150981832595030269082128470612223165561539729851530644074803855609222645942396109497606047853627581364188165226422478141752681373759745127849695877026571834676484840170699294102297438310890756957555579508712375934977519634460494622807690690086507679511902640172330859342258734135444763140798224654313387305333289624672105116212079686078616590381052445842267235444010235471898359466998136260810690610193082170881072117444900288848123762436594707347468030687301120329800522908082679640716553785658895439467178976772234324753987606827883294501317269096817631068895057314472244531103490293720527161194395554162128467641948621530883551439462690495396947112575876868215129173515280883419084554918622316509731518940504605713660831809364982657209500600698964515727014995976939881757394618150934894664890733205181861789240781998817523799961192844075726708859189180838437445890996794336016115563845469806312655710044315256474257365419477140659507930574163709915408886393142041197373914080991113843663941778047205190681486096981897340523901674056293630987406373577379995809085713578285248700854391032935421438167716694723330723989779003986950419541345126785920987436626879454889930919986166989086940005318177104974131265996681517856820120218602421659280041967345594036974210605827033661312108799940232232773289043220517196863117910906990442292656606486021729799942062628701113655155180021451496176760153595690847985815344445556800717853942975686255356773826842745596596086565744503912189196552658479069710559814589999569740025278591045186381752998601813902483115696610575567436799014616563112087994401684183978911578112744005054692199787611127059994611130801313056729592257867057114565047202564952107764002202233439189562854618881701748383358213438308150410557804236368668074566824831184727753304250893634516754266292442719768240838225005932553421714006524965843575504266357954110629307856845942688991325430106623197512956960888358242583380923942454241950295930005716155970171955033099643099433553560827067600476174466934928769001977135415029249653081710677530006834400615174900939698544347643798706616939712383901775685565849799168401381739461687411926916564103783457475011785934617798034196738853873066817518432354761564036332915800924494931876544607123483913670795152852411990330279670362463611891561778047388711521135713827580373825222492777955109588037384508142195472205170976133638357495497247993031024293560404363149253813717453147670202305029054887586969259443526353433599882303658704830733572419932685461064781426081789062901304627658062129814339373258724975702621587319057379396034017462990051845202249193094004320072384817809437391617732507999666617432002404819529081520171193993492358804646474228471181625262409782091068678846661220567866762506960689898945702927023939208084672161770916984454227755238012923071881607116893494252790753858843769493398585760388969545734208066524888990118817592832413851412325233008544357508459193211351869717897392623750102426248598888789526861044863083898223956448798136100629578908210627901491998943869458766320767596593120678538001355905047441752275943936158398064891566114739102143139397128255736064770177659912293358870699548278207383313096951573109021334970194650980816094118725132238723925671250943872486418471680810455820581895653668022569705042986767295267396883308462070210958589745060408552700901295273882689309727897829490230563905693681867188623783038858336454095212973460917011620685233196918018914833042950301453993881036062416203865744969000840147176910531087063732251744762984851083992725315564672291293186453853299400758726244329346208352242952385544421479578285265771519150866644158797621046517587209131966220221150602259569945515793297209312271887544619820864618385279884509066503325003659324026671077771302648260487742113196057611805710998975346862551710885562888646312859885233398787085912356443710197914516060747747729734678038432927107711969038451083086726236984648782692518479727757581421187003481741005134630655829694969664374046199359107854548592461500384419211625385550435719675314387668867735237498511733543432799848855722576315463298911833827784503993035120538037358738756855013510004668253496670578551743048526466009131663851779451953456318594945296421115480199227695182539613968387328908075316578925233780732837304507268315280557725574798138793919307811370039006456783724921517788635066093567244704655052050704867037650690026472389755227530188595229774133177673038871573756346975564879146612105994037138373499834422433143021182594040229296497474216423266960213526326418195000107351247883765779846308583557666897078407708741847823317842256921694638524408189689505909295152928424057141372369229475818760250755995593334297321855251552759547695514362230755744734595204599387543546978386326763193611554222040167302174750636715197420845381459883392194585415489252467888076340843456396320827861754617361282400600341020774295057125376196139840673693101115639328683764498470575414963431739981912175875558605088622520595386829965911055369151796918022205313404857685952763029126012894256090607251601918382225887831057617667204034271063225706016623041650192696224187085838840088866879006115221417469102426928436338086949837097481677133933341436628414651717643884601433905016534461666982426125366421627803797378483669686486453396862477650763194176900774245615206683655678896755638067733839596483601576964000488141996274264548059451534421204677383230337018749663082449662834213322630488674071089946258456698480900023682466717507326909330344144303962181532128769564406626728883226369191167504428187790093018656374411113978005390601333547676737851981233786731377559951974437256627915333438365774721988563603796767752253044860046418533334357800548029763321673982902197596445594271213808620783521701594800125047072048150850328500479956364279050446851593910970584221029119595668774521161901478581938693569605429751923673101479676116946994202832668701825179154466522262902464827454024581003553171106984742130932227456037618031002207072845867950699010444392841163803043693957694799947786650070845204409710612510159920122438626477065296834959047305055918887430563727205791279728398974158852057549718318252789525662485818315549377332490463091018464030533593004322944138163990381516859368435345405464247139795398129845818941127751944866143436904178698331941133843478606268362600629713348050626588376247028391213944325495723861708998534160154679263295327817153532276788312128151013468178357631118804180301086443407647528267099214636827669314512632493530994958044857183557952033052102183395774586273295756421461253705967171745461286108973541531856051305188860716537708756861604156807413615381354606879551091673178664061348887971611137284294493497275870684919799782225342352040109807143136230025354628790897206034637141746672641474129178068022850096377436336733323516906024196268216642262908923651539324510054298024552761988648228894794275463342760106656798606830689489992217940864529560530614011372780484861160408753206464329018012271500961860742295533690439550152594175283822087188747814044691413538626032324327702816019666872951240803183381607876487593734911401950884634679148872368515267592345224857959171191721348740401732679536939034771949842443265900553679346413542023512712764763875550148243089810377633578161721454268824428907758186119194035560778924774573794069279195030140094837855307474498312922163759798973319345476038513005261099563028855725370038883898907485105817326526959150084630379780421416072397535247415017147752863796150139049982476163046941429696873880264864500852174342649636446223012538639136056400894852089218029405407147388736197932764808157190851705843623259305999191664549466222746500645565937644811636393571328795353316769558644913108112530770315644151159514359995652673029199746289117821787084117977207770363544180985524088401404990142310159630216612740211054188143160398637046633349332137670931554334732846252663276890117367859179179540065768673199014134726216104442878278126736026684273367658609759092954335199267392003795967445992036840948460545032569222223957680232461514361122787688322833556498916065800693683064214691055377204928499120997329114462631684200015736635581054276298048323684883725599464290573728840267317453544948681281110453000909311593911960593363577513321046068034862726028751479838920441941168367682596553553929897661066439465395112752177095238481393712729032412274456549404214328360912315711704943370651047306045812708688201437443180168408983553270273440226654706490941623613609032964751592961852073340827455098426733134241840901825206891118112834573436590962674011640011006118696207240712220803018045133746755246871322673242800025240306528597150217245226671307947625646038462216414543559661233529005058791557801668378815928701580336535744350838404118725113802239946534364265967882445190624853309333944068727693235925485405004657908076778110370917185919445116726964599722493972716873497630297746279679002736814433484438924166217836393332720443128633902642301244251856853063232829152936773712372114766551021173350807344776111317768690484684459035225600864198220702682121048331915026239273541430745058185800666082803067777005332419000771262375295929740420460192501610090590126592103016492823685016266853704572400433178612826042862304393889085498994128564167281992080042847178909584900207092154024110617993479660073197683177544798453932534433513334240058738986725562395910178706729510710536850443171576827487619329112744604435546843740502982739218207997753189228376976722313020089455332054535444300197759979924151689732161626387097367076778442649749551319214849076828312486076281661178154563524303841119573239843623005741885797728692461070003362964987103741981029420667469829520902788002661411233778033440856358920776177999233683286055315175436074496494177988746281094360063965282039376361524286090394329182948716047479143989503389515200225310859424396161417599281505368401446055306565956045492349084372785443361909607151368221040043167720639379063315322972006274319565390385848811978885236343848725170019960449344515365178385113868572768799922622598924631285181321632946231022816246596039741430763531052212000146133147566992801326112068758429269305495821521981712904237679862834626528678699854736574557989358102090430447725898231123849607233026761866458643324642802841680468165825738468484980060912877674158246789706273047417723108696244921940444879370832180189473518258586062925972172125548154618945066239047237865974296894079090092427635742541518730102080611037830979406952988783226497370476769143345796347617040593528102576761453458015221909065050974833956194778741845621973303974825886621351430756515668120616701403179881793695479375827292085031445191886481076246252375422192040444501832981658837618350717711214272642870195058867656993931586248221596713478134680949872734750312447066889070533543083632167806561248569435158413457840886875882648305989753760448150511858936290824118750319178426864329748282999424768240223830449071284679035453763605228952771246625059076385898571173211288338648214664730983391653465681111523075832768386367926707718066156855201756838233940150351616108473300193952837961836274635644841035935856102512290912896383877497374504288554777198284743364314873650046888435217194587054709748700115241533905575251283067788153862428870222213985931398185918714384806688594492092055969861972342231373528255485670200506746795051440123228872211385203910889036421316115856137849917290199453789952589504452016812856061606979590037372458215502667677721410350251839455350114148608812590774065006515069867397960267230937816749637187478946348939050098768957222851803518801673242818527219705659307131580505130327954966818312488135106943042128662746351979364962428234653527408154645576509927562469064445516300515303187321155057639522499909108714439712801116134622543057168170585189182518182124608817414697812210151073751530603874005298357598299928972620832237520588317196351836222671026671337854178728641829044024388790702665602284837151218007829351649599946498139658493803294684957136602228581047672084385908146094324453618722592110351472198696613321620426956652731034800362238066571291099694149210784731593057789140885450455101229460178316001019316064575865388101337049896619165023566338128357270453406462933826204331765377926915028070076815628255048348219986832088513972716644199431487613799647495272488095472232496579001626522494085933974398873065340331767207730504938460775002122263327527523254421041209236830467743531537471847362964564961338800283494441571418708166430093479768767277329631407174811901776228973228422539633496459090392096698339932179733503827042570556419808496603412070584572193874469497372461119522401549633774131920273535517680558504603665922472705065186666080286193924245794848042501691439807176924109947744996024659468163196968122487581311199880438047682030348455215420186583404251230689360679207741844493141052538575762435236117745729363824183550508961193183458703825289569619698067056587803491606197377587405255611065843382625243034109463545286726623265130180236847727920325683977187564352924959104291234556847560502489219801196270854157184765106402359822523476407358168486645560317334723927102164640033026254083238039492449317190160110344170141125652220364467312823721219047690811628680277748575777337424019791661074212354569439536257863906656898927771765523416981438046567530534777808524587793144932383874698234250750031090513857703797331365263845002117488691836600870785525069893095770781882505241151144450700151786641281371015365824957798080795314312564593500406788015210849864310932419833009739278235274185419794999852359296280193612662858243728242976213082139211111728238384484969048264409860034425661846657486125524160542699503483947861156332602480179488135554782967979466922554100745698354233551671257964520528712230249787797585532916967996407443960508395883475165058263511318734536877864683948596903329485371670532575568099110216190321347674270164946603141652068908949977307338854098295862540284224342391111710230505964161197087139489997276624145905663497845744238553364014698681574384518421109607583333209117501448520035028367617330972623742409204015784325302491185443745458971547602665799096733035324561208206072601814773152040726021270128446161751607112769383961157316717548674709780196977396130680615049196617622809861174184292153808193573066069861627242655362919820223592235919174405235914246908694989561138109153788318606743769717990277017480042687869234938796477530092572598302745803292497325614026708078871289147008128070132636443362711429516420579028100903170444588575078784289234242618293823365338530183701414200617263326595313599440228748417250258847125366555419983328142944310028412174299772495994085866304200946327009928577512651448898383190786546829302287307198696412923066073498687740230796412896549479517646391050740002822490180749978911896734678411946487976850079191356453430667930649504668996923678749263150189328892050283226750210535546745578900851291871258281479711617963956355103433333064020055150461351612789128150862836861395834751470526708413729808228650262832805992923341742146080563316495238725365855693615398585320528076345964300990871795154431058690909792384160352400426877356680117290182737887028692678924792221246174123158211765159017285778303271066091876107065265004458978067953336261558884141033127568442602596289393246006226721647548813411308528303640593474489454495573448205157072836288430660722762945446133115601775811688100266128410179716001111580892814316345421070422384006706017070392595882623216537086638954359199689784748340231496077766109925863966605373721584854871803035250704888512563059289812260196854830623051961738968812086792304823122218628439668179610006752190385096938299866005026987869115065462716296735570722698785796642488640626455296649164382716839333081294183993725837588637444716578759369127134173450980381350330514970845223111618070415214773109857814702643889836805122301720350674486245523417383479565899806324040059543597381356106920085767561869540201081138973290292051804153960100173224880762683069169926036348558962108254941083010379362869607401042909898866337679476308979436950845162310024962801793867733599654470795858461183898249839940399909478798732365775635696030754890675919207649116297497316919109292617399266922164210308140997884318087906356671119176237064362828206459559837887764673384709475269584164162756799640527862098526742406615313505025249127059501980629129091159487034810454308689238412405471522268238787299371461181747154312338256751596724021057452977485498154601846166631975961791646404483615091097713817012119526508272307974662437750458207995288866156129033963742667274518705032883832388468502353875239313014900047567837707274790120727196589742905808987885495042558460911999568298846616255806805431609586908882989541018109623203306038781407217611326770578184460982049877349394391221863075334675765297419006484961264882140419600062489519674571737578709520523030225973382982653389371622594904674297912587328450655557177425169669956136124506550922288259721583490848309704568352153056554855005261444101808057366242892805784912593059458297778334687977832785242319840527470694815054339773114370737906703875247736896757752972752607163807722848253336145983738363630629635693838785183936968968807053247701772474405136390976225310072490101277900716801850148461768138321486984302875009390081883848200814848706370309955649678348234580673357572711927873486631357856636576379071373274371087140611406276923299866221738441036317494653698042016803304205667525696621418034049388083872740322673560272871748971507107078683046912542991327485827463774974903057453901512813452584519089697700353424762873966618204228761742916140426191010043216384358063110757933503674155697087328347854418776200653257034392736820404111014466894017373916241771085403801394757771833598806619027791235620800448281797307729272117256000243435218775869909488871974149561385443668595494461101711109136950092969292461692672089297250354628950134938615541253661070659623121557738042420355038365736088463934503296764833527393972858263696136187736656891649275055365087797897831402947102395802945765553845765419910368887019699331377999761238953349932300396669474356142051997729009481134404997088811176878418507365537762902548263062636292819252193956233001944509522336167181441693350477560380626551176237892241564041010293301678463976577387112270539957041515045408070422204722081461970235615403859564145811660974694369060739131773018400489623956765765087675534386614129509733778403108284467164087026734507721977981436245400357374521461272521710950849252693736897783974967558406382939482662304770444196753822042810580626037779522592231273294001220975651813544633935535468436064749738861221328698639797540699443157327539819312205542349649202903682116833723387370184627646258600421069818258058499610926220477442770639902428133743231717723435136512920552736480590573974478899526370172184983032709061483055921177688062032366693476950622702236380531438196268018447968563670901661921549258342278404035812641441162777041372407999597053052717695835119348864814174756120107343711204740339848507537381545262813771504962331187901111307934542553960083495902471421358597612702514667613834912157025193458489887978859777586011826038999026321152308359157706124458452951950160470895151017712560596900450222647987292683403367995284291059075988935364483787422246706680320027566895318160142985587367476960072159840102310218993093512408623405151534116021647598429579506897471215540609343255698564287659446259160114706057049427335455378933609463339523906575390390345273253383463739995081446828945819060402103600257361164662129452587002954132871179760862561925950318474473828841130118611634627525135189104730225983809165883804420759091460250272731749765662832658735368261939672049564122356353830346480877929196549415168178194481190942530760940488256979584158617039377384016488311297335953076855688898676328693098800068313542518921343462321587756882771534899850470833059280189669357749483420538755941386761095933693170323726324256326606774234178847424419050461086104665842349023110516121580407984497727643357136633051438596065439158717570030682512555648815174409998554470130194643557143611462194779922596510875884541056553050190619577356755355997336903320357695503566354122286384518175038928258356524407949756342533269073689243528708446140409831273212081332025547779864057439739081860066960219159234144100599367950509840081992357294673509549837842418295392857424700119386833992921783473155061566225223691391370920549679589058533407963095048258199022264886250902526726677103471598430203274433896235826240896369652022623046517375141567706440833802030842075291547252269223656816558674600302779185967568133488407425313367258289440807804841886032769660262187136318336799953478418230315162899364724208393940146121094259766783707525910415184261248315084900668954250524170349058877397367144159354155824815305461563013727677585620254267678819251058618211652620444571558506928459102483367603516948347634867806313832227093571386231329670281696313738026419779147207018150815439315175058052365592033086375840105233937628458354158867743793797818166981591255018077801464390549070830461136589309504061835364507824100972824342703252898642599242092096117546125012530211495366539036523459459038130291241430265041788860031514674814753600037493694701411263526678008217850572303063559159908904813396923185770277904273339652877071889535595507841033747933256062739822047891260695024830029258900288780679151085871381634524872290636174200876306396401926519273730843358585359328002143775747676757627999648998231383110500472836388320780088099752026879803171101876041533862565955495970312317671282126847919453733452961627451923495132261602527751164196975204871794559237133993857700445298477463505735813288846536317311718011051271915083265386024232845576075731434992374473420411643325054919528223520429537693726580078764501273199286682618251722476832096239369363768910367702994169768901362291739514177842222832028543173289715615615607263700317005062909419666877262866445612346567367292935354382298769158162032870707083533996631737352548889043499919960829179126030758452080521262349354600033310157829140970857587672125091903137070418065066368154855342527178238190817568877991843647882888333400304669860355471417573570135404576339942962569730080922439227416504249374202419370681949909308720668496083213570476036676794540455344621220454644164996940585580581902449425769405646317331151690080081245830611143445225370383856723856306640284364182050866125194959508599592569939389061111032889705187616520735600333628792298823632075542602279326459559734939620320683096542571853604814495544681500591249616416730022910526617772718036846101721023671254409804821773923076394967492163756416318675850191575824415534143134001124461342429607066837564503298943714233679920420100518294774082125002627253729507021887539276797033969151166706649856340125743348164384676737720296403703564535462002949110073391058915437483391257905551597667215796122473016326777248181799944359590357800483685803102862993842472880731154146652443938099847023123154367296320665170179214171423603556225009648740946680381815618053029244235740629017786009809561629722662735306698028348846307725895339040772282228883947528663732291015138127548483692852462085016899863843512164046296585803798365840125332439031472960320044454174541154705270603681226253615780167888675394133619014138564122901041764346020979692031896624259959526460683253007309943297282909074044230284384849896431919264865651008380883752796083483505223934090077172358194663434754493319991231994066790196430705068289365283285203012727105489385631148265772050153946845708540485597296069963090660095743289845295987279018947392542065526439774171514506088881446190462231128462916613302383493260206794362846570080350489265621997300225915315306274133222926882329130518182369725052725460438753262824298439025060524322383899398177297034430164926130804730354909130148654530031040176020748601464694537760792423234762811357130376814940163060155962382491108878966717960277978537851460199942372575145178059308229156021962898449499720698592360003628350835438711941258063311303839516899920104109947188907682250541913735062576126346579061391130815189875447073343232124169139055204459699866065554656336515416982898252956599281899682920838588296727759555189726695540148904960498286431691642766895489640906664500003782905851155337136224383938748697320384907017617718112414688752880213860249074965813354070151230221715347768278994974812973775106247307206174095374875758282053150728857347737584933368234553404603864253797937142571684445044882834411679932648584117682188721488068795997572295056806089133880350423071363631656525025022435245859004474667211201226764317306146804926951431462657894957842127845794224412669251436397707245450274370874366539959977544354964466998893952170816412944742517248067527793176708009497318634894258215599775374334240294950572470960785740050318966098463885948850667000075307369174481153874909798897861660519798987918586323340354593546742104330637956693791142413494675917684562622926245729909558780087748988799755693608245042036283853351183256039344229353876986208788749490469719353881030651471681373452849202697832942644334847671845449573185616659586031943599881758552256044032983059296919314531786857977060067747699000422970679319482777455398438335492156374198205008698882110845518777300698185550734814765305968749035674848788844601213105211624348797684562487037759022685612060148232064182413857600208298001771456406105192909696140716802626216596953582002206711936175229138594041005898741326974616111375060370497565750152751496246004357628517620180874235438582392679690547811174687644839125822697629153526155579729996715021820061921472973324627500508168161039507635867831772103542417412823967131815215524455435008764348507510458711562121671061913943530652139974490518331883555360647462651682525043219040443052877871490366782963065739096105320589249453665701548043167053993318234296085432379082033709222135602516047480160564365203574542183170932946097097753231246096820296522670773924416455693501939478928960226751897763148216561228158492023865964823586007555659737371163706962363898237244200430797074170902418817614869691498187447018115996633921952586198761589308709014842835424255015734016464045203576749437776724537829156744995368749143981002142159979069238905956567340290721757405806781186330081216459433955201885343328619335800202323046332049712113040010482944956035797980033824864284692777473045407555165253064841589992424789684442140777461471358437060080309622142712789073449946476154943962461076864483727798389186278131718169862125824088959700743716627102482346173417313915334578136725151177499561084178588298895366140856479765424875712932583402346968644857095108381826047208864220781154475761983080632051622033468581147912736422930087135101437143809760754299598568169250557725335567303663713840618565555423558290780600242068535679284504734501112804513851721426108726368707134456987457341062570768608382055101359202355435368239890497985885794479496947644242846292527473571009050131236193362559754545824583876337689521087757807974128927229792349810321999943506548203069083642556270802140754915373312970806240966728958082061289649309825904718205520084100132162167569587064355786517166703273882551161709616789759132766961774041070486887780264105593945854626646476849803095294560481538046745152329482301794504648554932142138340274356835513459265899094946352902885647952294991283770699675312076978893346734408708617828600569091797278626719178579585765892037323905521825494416730319187381935342172731213450063677121035889001174649348998034502389450838147472358881473540690772446770060052564087142061908167000187406909509059972939011951203582003006681336201319617059718060891412759656558310991672557838114892419494958954356968906794813614355685058978196291935786582081395512570255569763230577067224858558151009177773235352472699772450817106632613130484774423398813739739841767155395298561447909948868276890219883461202366335567566189184113206252986483802364045040392077378348565669815861452589551511665468255982662308611726357025072719444659067272175655199072237059553761645078141192197137973262613610106846092488280021049545124249026699940901399366328933806222111775688839411959803956082268588260641494604321234775334314126196919119772817841796416747630564377807819351918039860506976307468585481762523737841939461832297343490222150761715756841938245301068384944019620967909323540319917247643373435406600935711064156179082299215328061840962798678146240339790305149913738496002126876471966667174462208239834221946767085961590253993482549483197830001884855220446033709270614215983641358490488286689166612848913340317419682569775000774769145136025064724159687772090175983219556200512774387439528416044455066028103710312145905080145546804381367713787952498340917890580019270369941829411331571676239609652258597051523451330280000413242674517126042051770118757669642822262019566424562417365350348597387384024751561354303750643436403247153154372992642191542988103740024310308081283263214689222652387956433649203462689362175643769797559744686766133952832055879471870891140272226168006416623732342075659870739680724147514124444798637486941298446918060923746260129037699244443603780524160804060898200149450528208865484245574796921053765276730783900476354044969898036551453319473934503535936273400799829621731929093994967629111093484457693218867891347223778343938368910549899557577935918976537260198366201807602002415529515012608505168746283207169077429923047745558413843802912609707773953309712657050617509115711877112556680706067442254829831812974007477431841317412521101861697105426456331592967410144844188473397425366715713155168088793466979768643446798355575382862874262337217378534633428265847014341377295590960045694659721274908300677018371419969824314044633882693111859154898218095781032462866950367290475364812621758714103665822239494333364404409331670179746340841888777155208208854037361711756095402119316651997837081216388875908386369074961108683658786576358102335259944429861514601980012404867092614772692403961197183849891235947154359538819994234735233661511659157505901869195698818930439704971367692688530803536260056632806928087408021061131827598454915786264762969911020442061124066026899609785042509902983189241056256768134264914600097940436698735248602229327429523650003853676391014675647329910105120263661064127091131471555911059192616272454476921775426549897966403552025354678886472106691804585688633110794466244355861208949563385640886870533222510569977909261842251089183916029914034777841032891203714078685415880030080972988313462143509054843015900983088364465520165577507030947125995109428652102689437093124987146803448918631725007387970515381955303349622844512438095619986481593250977569995163181782933595173929416249036596134091381953703523660016613102155443694977531624079138425930079855653061635449667588979059740129752225012303175652722893890141610874002721964030551871641319177431506018585207876737154565678055394177600571940315522315860452991367515900022515264158133959660333509749515488528374174695634206376347700855267757743338857900069809773476268087115155582349693840039321716610921972682704691154975435331224641956412548370105068935558905934310222385675842647123189543189559332704939672889816657598185572672524340476315004693763318321101419726079552275676532565170459951952118996802300000396168881290224963240625000780817214907322107521843711689985808905829010160019698842932681761174360706095213405201296312677621147724510987408408220112465617041273246083585953445956582767150137464568649390424038718683144183862070051406476650923518158919959422640690208221755365648298003098712444430405447049359842504261393924571616475228387574551320989123328553753443248223573494927253141953947434707607281565846801708829105917368415055397184316562941014812742652733943469251768595641033777309005207511384292954388190352705589093073577663615633448951154267317549146990006192627726257793064447963256964276883248871733389450438213111154056588006989711143888070346340125477596054698063885312551373584139362863334086050469084941054078050625572604368709727457924219644103765093720362604379380214196752913371791869856097541443931588405325305013296674507128428354974055683804534402719829786289739923295643325958021555626924385064803693914438768758515590173787734801296871237579389498155628104668206625419621107324207456509911661850868735802425159193092139869672225128890580080762139346595086659847834545591584133002438410277117171140578958988654699818603236587844706923878666247331584946540378969625723640142661202294403214156581985749130093729280862980722482672213708269303054003227767589151330544273537924365777988020829638236833345052142852505713865212094077093768926319939277456845376123015223809540779628429709549454728235711001785533301649037672602696831128452978561886261529700060408207703391822310314023321912017822750021280958718827618065238893532010348884660086919058754990289036509422557750057404550171175713537263404863758451252132010678778803525263866969378497233976057135391943732742423807187855844060167831136756471349856775731510640339504070124000709699442919998502114415331086093185309338743082855220608619521958024383601029304817246702449651219918466042902905900188733681780602492044109256596184993917679085586431425361768718697877629423795564924775771075746977856819552358300069396638862450780495359328331944672639121790212307114437975990549763803953317466638019888262257363864448353244294247216407528275046279814593567746031709322135977008270544966603010662355909842446698220486292791206961162678931491818718208790281434002315259671494453769311621734693471834407079352243263320251684638946244156425163173949816331404311454362127170603481466441558805757087132634301152169754926024024680221737161984303430612930550730510240832198326661277623813829292895310885620805894174703144498458981287832094918613737554631199284461887158361944978405921119096880354959511951236281994258202712081414529619817837141010903298313171574740631373910091622138210027759351373085116098676503657889407180634640884273760589094847115005243935550812601805312674672357771261072766206853738611277831976635596914165884632406702162541239591516071611248605421688746238030514825540274251194214103340970589005596703254162959429997190034844179383036809462956312668266155433160134224003929834550617536680907691083258433082049835729898928607646733128556807976994874852809593851640640437040578420715759080897707463280818037477635569832131870473134104936554678456872604304234577363016093484198874783196130327404824983163912352527972782242273297338243889162583298667870034878600124546131246923846810458525638337284257222165444319772786979036089328981076630596308985280121493953885047727968256979253760077814837220217652680298635706350612292521479467424433789137880944491399729688195581428620819855571071689833377352128326529745788070963698602296410085495160301542227815099222492883988259922084152866717192779622886614608474791947874576841004786900165338404132447233018332845248126203988100365200618972999252611879961570249880839250255923405584595118439871736512133617828369697451960252783080554193652118148151754211184601838141501367180277014505309424989132398178448701784495921120590967727193499826753915328560301952534250343008378680309919562163852058144016878900951564780762964488821943914644213820183342098772331705164147394975646347497118907438525758360816670126419566724230745591577168622813474425140196529640497431375468454192810828717602940712194705457545692398880050389513475204009092219641586804617711310329986409839204758680140144558972929171957041233657746919265802137553131637093984664931152025539915469583960251495219557231925894527542007664710861942285216888288885022260369059663768538829398076961932658351346669343564643246525285756711066398061126039222410532691249666266947406068078880154517376430279316017696235131540277330190692635460169663294729963091402070649300160660862450560404918676642401981931723198885065033073464630084603210892666072849623986721471860477582302037204364245563317908226225065275675785076610688697564750311077746590542845359173225395835647888897746251004414746933177729161851359608961835218881325322899112755497636727288067907194889068686246711837073201431353706207767870055123192696728740087256901488432868312597894637248425402837021049513241753418906206186229739343955912374847852406611549694746240294885065961980022887886548009213225079367851036495463339526454500554859291361190554540719951013753743905893324127352850202568781435616672850532089627077551702423478419381250165417540591534921692338861384878064510213643339350389520084495003163404375568778235726471205007976316077539490086826752393898242909586046671867190185678418123035449995055023849047957551502723074042807253769139037419539979183661697927006246399169603033203115564396403029171351554279981206771841272687536770159850151776728229102892723987607025302559416747955666849576188889510861694112051979459645153242400963593332889899514575228119237345169936518821130313077014395014945872255188400122393273217078773829876933262225053776233215179968275103466827556626181367119635330565916031871679880559724646089820016347321707082303279131671234973723938755438562983937542533411066377529057108285628742246729583632735014952289979627398908367800402509572773885358675886041395155778705092157395012939623459493451320940188145629164642894501953213986937203666048517414791429013734838098345827262092102084154073766999381888168833350197744442212570492072017478827965474203372841861221384405379036074822625608671729837148121513697235765029612793064900150994644534139293024175219488995862639413146842389612426052377560863504753995434124934648510552985425051944386924352833878985624737103337503489282264320482979702927899036649794095172407887853935234549152526313584564505487243343860273487081605197091244883238993402388549150125226230154277024685717345699581747623637199440066618005911972088119590610903392994544790398249783295137438839378911637276704855375776794420951481527175178435028593795321924131964884363852763747784456932958081633770970395078486858248553430157793088561963945309595603491707231203858672361328561173941979361397808173029216386876435955141945891866502915225992744837440594939176739859764869422722949669842930832912546417381643066567301258434365579230221516868060478529992966670787379090564946043080363699100313941702680958328259274724245196811088859694119582828746127314994584106721620828419666344252443737819727330528411335414070649867474513559340771390965674645409522697907545761164603654290627159897575940814851275360590503769796344345654733997980317872320672952904014965323321152411503677453271636589503972271391292485106227284161997800331610678550651386273184824053621771473753880628109500325701916705794209355542385460093542012811279910274033815258290784344513645046623373572662686788620735915674274510729652376690794405573185958744380096899195526133519586680005309380098216027551043078837525456672715117630753450861273597674437608517647870198794532720814437630030475497436584945753921215033989239277841705684114826025333449170568113456665153831867573664485008001137609849037369858020479350103779870386211110291582424177513424547504781591198542816958440316677180682021544381037575765984332264831143687342921303337299225239947942793194647113968292396004559286050796777021423388947457793145982527692679317293414050960353567589722400898039305041612699365288012604884796329577553103337695386316334065865852254136903527793374539076687556699981921995623052155144418209980628313725385541911270939102277298086998908368360168405665205116351593490871392634557851620460766304198456054551830808494920377496874196709888569203754988833026682406858547149791127548051284712230625514268963641895794235026374360640010666527623624687551371960601164924084716814481705864765065210881406594485359186444771308446159411267592743382520321672003109368026173798043409488552525706708156559806077923620629693707280875918650114611579582295793554518785230833450406805422210886910728848057110746592093090934461369389490685668569316608815772464202139007718148498547392778320567953692986889375129974333351333746224393922643728198059713268771711342009516783153144551153942438978941381761957272191560376832381095752655009950805618870544936473921461059448262441627756804073245022057435167570527768973041601776178187481641137160240799849135209863073560161602027486320583630399680074976870070846902623462292629533717378010156157970207794848972512310994540385340989205972108074837125602101309417217244530050122172766437077625399425911312272057218845219763237236062767070363166861191036944872601404961023153324728640409163438081187474220683079997721950764574100539970598675643409982864048091069785734921150557095172473844997038778939597785938462519236548210561178237044594363351071362692604199614523803032322739320028724440374621448833605893588430016664705164246783146915324258379002736622640835983981114527846540537663414114538024914607567864897156150517048808995699717308539396328086082797489388636629251483460700989631196711542854877182817734671334662721382016306358175276865575094840480705900877391460264093918286717171832554378046403650960814074806116303309597112512199984371352301577853796272151480929936425015671793717026930922636343305668737330814076759369448376375897888035719068490771928847218312940581474532802096420870585825635151102569876835418399262669360350988194021942091899161628558376784571574042197013335785200579876254325848407851277006063898331671675445428421294537060061753791570737122221076688975683676060712423230615928428967213061523012100472803024969456776523307133616379071777806926346833399518005820477442972172413294850481823186218670300237304120114201706412415322619308942524030340243021125045207447337220585564618510755622915955818756091232261991459804892150943258434761572677221013314534160253056468044534515723754110367548842024886767714414627058221465265037662372638251017378971245480186133434669000171342922043380697601716054674010536379781892515170124094951655607296787191516865062293797368709604779712391846527116115535375215171343091447371801614341424044063451016609733446110444101378350369210201875628461501623956253837367307652327128516256376135681427254244598423001204514749895313416538148150543106608382865999167633248110481001766661732721988600257429610622634705837118335514076569361653859313069695774150007836769161192118539923971932319474697800591879974584852951460377500814699846338667426672331181940084752800915510439796127774179530538816724159502201695159062245061728062478719211096834806482113412017352977612228418718315861206579320192883239559342713023327366998603883172356407318900656473954434170146907258379978641743003847257595255642084665510924905358193112415328828867783113838698045750013998838730262314593070705346375581994239111989503591989604158732770681813041410131665957172892526403347847611972885134679470903041226057374411073479228912760596591953422155198460175799259548221455686915734759191123916787748485764540794168900986137941424474155166777930363298605932603133963090255519913457843369898991828211566390439568538858597049565524916876986919846536923074623032055855869866958757925145334059257328763367395161644203527449922368970041724309637504900587777323584723701343445251704385844521886161293981765557028745049218343677433233302656178946360929598500366622058479252923809344794990140516157380357071567072510072128638760213473786868103761519937554130907392678313669134996842139005661684417042108489008344956945514833125451203052112841356129803070998353400098194858861180549307863565162417262547741572198852630373343614914464883145499474908242654320406285266044316203010886505094413849744964735369330648850475600780287962961861484061508410755300081977273784618407730990349054556632610990103956658806716384059367242658548728242760162814820782539560264865559748641427648311305660833334375427031630464129041073687015230984699684497869331314565660348433424424032446919028299352113930895521715798967460729600847158524157509552478410771198136718721096666234351128253047872337844514002866800460535931367327691056630013335077256717390574678188697721011391949207408938561065406455946799270049957707918536208935399860080595557203065573245365050408845315439244180591143031697902278838843082445808669064885650841816075861091126403911226948467359803146949953462462573641169153071719348202179692153214809603300914908636903767122251371333883986343281378372416063011367728705346644064794589658572701650682928751275626375854262926943296963567933497163871612846760443096151025384201058679167318165572202180504390976996418115883215267334313480717874943183237938481981407083915655810353002807953909793414059943556779761024241053127645292617054815494243592416851093670507977719657119108689756186242314455408685200603119203604227171226128082165443771807196875050439444925092688886734543507309394032714551422591701509195009309445351801483790010339585454564152911033480359707093585158077614523135510402482350958245845406553912264991558064075026477909037577803362804278812530196190718790849917452580950140324503397977904393856406392164628132150093505338828682604301785922941365891814756726270210876872767027365439323270719979859270434592638144131840721426764599842946209433154127636288696873890164080887011157567801526338162180741457237954437317540476099892683051738908026365182465098600952301484067724612095427986236965357002733353770659885813998957232935135477355819038045675122084951165697476267760307773297429529109304598422086419265993797291029361898739616069323322833569730831357111188476642303733515301951350850771543381466659081335037874106648996828273523813529150898241280140519507647292656625336869276043326856283307711062165591206648580060573110488979591012237888552951030091938309857952751317252579402980316807917607763111063776728664133765854194999702757194105779391426104732937256222091034781800045046345405474310883307703132918817055755493322374061204679959531546690814905233257560695620361228141406512606680316968880701203090272102730419009250162051639124418464334751800802055300515393103011668392696906841136162758293950909200910610146607736405247053349977441905933053591164248715993676108183572397378872666184643124460091921257081131069491221181760488658898627628721423446255659853848393095564568589747550403323760545622166735385532447920586209961695107109363527032186128465829988889883304383054149837612175968722838274891373333596215748759779569073745837234618897010207124123739980049211512603069716867987583991570712716767152563229252830606878087924548480008324022732800888284875350769836501465748418651479376199170566094401322334181122420935501267672294930936166308233495041564818071931264093106204458599560445146757224142918331507080131085696069409456436928615243256167379588003450780775177165755637804795453956555179463265145622286587518084535871357651485967977287713919056967871407380280594532788699288831311322122364020270564469673719184248456491010986475566718228296860433074644198456084600985330361302109812098330335666980726123411507957118019694270118419137472448145951339251209043333253683159484111296381417679394614323217794704589989418959614115907104784719871615845089680443779211836491985250234976422555576069124392721433697616434401592182062417181883117409163690811112464300412979262555053513799667307737598096545148409352030480008086102110065920573204938931594807208068370402580061836870638331538753553276017156277391535733539394886057273641499022441527868970059554785690850002884699014308950503522678189467899262395918672499189867593512680335700629273261813504209998411507506842039207213133917727924488782342583363396473703672918766090155610952119972776393290646669383627868022273544943569060916469591342649264164868928928239532489750241407218856821238061556238827811175780281520236119643201717046522447487317890182941875035136497800802697614081674257059532435048479253561065808068418141810822445762185647082131103991566609417647189952690904670499806399239644530000749217231941970540425027746512946020271895376229889555753499679135742157955539584773074229569278226350973781866135528628831148016884788053130373963400658445438428067149814699799280845162959992861737588031327460626275786774195656321345278427892820342773252290280783289038879838125182514143232765843434074545103792410221482637780326324596543655322836627967602017308547685274476415542585913243652432234514738526818509512944942808873906334364690817225515383365560432841327445902778442331700214580481949165714438880407041253034175128517177596144518660463658890730131381488812555652560368893977755676280230568973020379141725051299538219101706652567704561052188007202229684539045033048241307085472667529816615538273831689968501643092420696436821464942601230044345813408557520224425521212777585256074692220725437338805842597066943383166740132545035647635726243841453165168554871804633525942440999320814833191520669082958616497671650829866368392693411088532187422678560378827600219401541368050436239506543189086380163396851174467316547742467001657752806022054093346942360821439985066475486691204927274859917325604549975469881792686044540795855504037462466694422806353866345235630874916815909013724667336569055712027261091827572885560762442047240296371211038017373733760667747328853384080466849558970115433272815577756816619381396947384347210634345234281756471112313832769787264666175650529274438546545702103549006914181923650156197734464647828891738039118336423297309085228560212790709291119834670659381513630776050389921379744606858770672733087561395342790690933602514285956031936698799523096721340480098823774390563577228714157572906922121840002133522445814440535913179092498631031839140084141914661935262354472831396462033602491976233564093797764672308793573692161814821708224404515262478006951547443717194094779837966722984331082084887123294332296100630015793002081869666440421323134843192887932280381395090763291617704038412961580682645375009972664829972026609409255628759384616741638713188587995634075956416954196990645810657460245653331937180013466096212875826905026139339348530894024620208101731424730572975205983325538365119604206947254373849156789071499307253882831395295674887638943760219356457448772353218795509583575361947363610551590367536871300480544110641568735576136124861408740105468312619595459413602441898509689776700442429731586372868384055647307966116430562675370397256775900830288248393511862739112196684736034791982248830412955354148974195274297927411792631675005272413211259493487627450201368926828532282229922554650533558919648243438459801961552436824090726736480267870480395722506462529356974826848017486025597229418376730002480925661830266403843273444851502833630660546887304105726694120704649315075166188698218024782212146623774792576803690383326639610512105574302220128101161658000082707969106997543564494516761511425144013080959712566066414867866697738532204672186701545477942024325638460123390620310883034562362683810186834299895712099725495819700571320836945924210649409810827263394841112375320443378128588122547177699068078058027729152935878782701250429633525325257273724487783747944724357654757189647843153266739178985839372726066235250861679089508993335913314040553946204318736715294757000894190062021937774176425637520570592299259542631915940779576970230416281882152493896596930271057494494801953425969267791441278971503160022838464300336865327896833069331743354589573893896085166514883761549150745711728913242212770461236036375808477610011457950803830528271059915876881538796971546977921964059313615712938046517792785624704317756049726228433530925386754692189130130953089606210045049182908575004842316537490323742054553472195175526260978384191506863543601196475014585523227324460550480747356173716171953213962234629047381712552246907772491995480274042198029275494589426829611374614642904632153617221182671728903849985213689882929322924202756568984499746716994217496935249975579207402243300280030678218690651336033879036796336196230908756499750890523312787678807995505719326424084462232602209115514811137481817721331362588156931754520919689899460866259057140768779393762942207997654813139026572178234326353667870044483829018443021824341475468871902356195008113880317094902441499062797686064780007642124546181248202438477452645012406719592224003891599653217145701823741762693005347106903148763136381793051085005266912367980467288343612777415117563230393500566751107605450460550653391441700139330246663210569248339020930190144966725690277832660981422378418957304755834403791072068477771975256162890016639284554535082671538090829700958635703498836613108543924672643557598956892139691868798293787040784369101751174679980481336758727909841232074309364257789877668437330219849271689616587629981880230118321831877961921170368545894144734081608199386800030537104029309415577162106992592735488930813211143115097068302787358787432320486839793057172943227407932298176648944085859100337902059591514027087775917919238712647844795495915324191825318792370687651675492215787578145130486191215481803668781160635366307813374555199211257184940741274166203488519478814407856963866039015921380632208735339091267897383466541482947866240801224186112325883918851830846983278938810927836999921926772418546568854176765914287060008113987713753524484157179367380185749799892216956746293930547442842098648267028356956391965211853502010802619967665390559211973273150883348510533780360851187249175080243744954809886575419445324103800358393940068307392903071561544805783255779661068718944910419357246223589845240443973617380135520744334796122661753217429273768580125205526957850359313463627656999396243024944175055605886464895200622928758542150091161158429503738271520704065637273805722963935367060349426831609957165752501796369345254252612570730780582979636689559468152325704178402866503060504683212995286192393180568600820551622425256708771195450107540980184822372097111790863758651672414882749170504418782050421197909235552121244565175266699874048483803503557046556661475622632132369287906234943697766813611902489644038312667947217758930578835811015210638859971481053059198660149179007445800203548863709392358268434179040898417696476994325540393821409670532363435252762076890139208108631313083938122321286273495211112686514374019879722213066168418402985812182239401122631420380434143700790050620372579372662726428107820712889882710058159923300731109854165807110483327301768908338870764497679491058095469488090109041394421801948401414793586070216482050902506441337243665697760904506972659575020988561636949701372113765917488830483296275376113898250023323415639793921249308062873618022310898463765938993868289536606973257148556914377377869946942411369309742559823647794805875718730139732026328645389953424694535933228575834716110078543698822217511803824981758427686894289940159076549856966501247326904353600812432426682648486603050884346838988062122400540335547675501661563874231849332690265555629714119664320586808959768180543391298139618002648293042328963749606691215079816301624149595214563044029604589253184674157456166814398367733524978839322981329442695560778354932934322126475066137699509464100496333828686116307267898267639335115768481566997012143002576739883266154551464263703244723179851663754089233296268374677625163602488351394433318064037219533474422380960880598757071031242780799122948562911439761661108846446632365584633948207326879290748123710997069361930342022732114212629703371288042094133974669878183790276528103082865470273302426705636439475875416277488754426974413153207357728416534267458584067723616178345111538587325885623421499227917572041547681973131360686341207460425205237299577470051540601903898707636115181528127410833456538148522778223294591645426685325275914418952412720286855445238523698371486796984157237658976201342620035553495649067645645003197918324093466700064576370839941880772117707292399792306861727178725548387649984044671016248670471179187962917733879573236613602827185015903161721035878886648102752058655721191189602344059854755897701095481674363922917721078618481317361216619046004305318967957542736708158927007741067407704536500957269551294274637485511996578706328212719917920503635324061259953218274075299978889850303017001649136584372964569263971625861084422294659539741843197162733093757172270300065080866063109949496995827858202373975920788300985114907819192895162116388795935222911125908681110422531642786560053480016485477920843004421634553310215505811001521040671519326344108222127631208000519117293959429223680550313569592967147527613137759365052645270252167729465095825022585404701888598271096104808290614451078835628241587228558790122469555946401033905396133609676841883900074478557084673402243386639570819724008020765803551885066728648670191137168594564922025751043778278041289219651042410643849651684863649329129343430746686395155487951934517653080464753381551533605779471152074805120634686422749987717653902725658922382514676312096581432173845839790822417306994331115169629397457298205431778174106584915958884671853838364790022218552919298788793597398723534443697078371921881444285871625431288132521218943869188990571478693869048691151906708727727990566054283383848813892806282027998061641301750528042155043589504762329863466311209228908687070170543968445387261298201743906272706101190780070088917376860977880379008294762294768024028259129143632599614044261164285080281953173108831919649615683887262071222960798496242328759640363781237141876326597858460153831829416820235508938220536683111547686085544437830613060073657547917805017923609047723188892120898156354399309433242837940227619666852144630476083477748443563860207121905478704899024002529385530744746971738552014404717772239912099811503875631983794600621005778733239287314571442021311872564765745305261282038893330104118893458336969836012638941933278582318011278486258404008898198431393529331352254595203936021939842195002301456470145764749630476116566467865251236182150890420174874262862360163614396099243676757655083109206490700216254839758295427914307706875796348200600193193597238885736655671500585684769005010133020534283192271764544301378658024504733571780270449875066960192042617968252302745440534820286708453133075047638914805822700853614261257579755939751815991629673702137172417671698638071969265248574688412065298712289452728007063361430238639345240256249542704333089775163261008103359078105041422723701287537167215302356135717694940704484545497031999920273199581042757944414128116361634320618423060995650359135842560690845380410118498674937520108827754639167905668893784602442713765732576824211310407426445881101070048782598144960769888383133089223373277423183466767597436985255401541361702981150355664599208950225326356969084030302952380893469855440861778442954319523235190907635308125116273113843353405752899008628997654862197806475080739648473274311251622411770809954377591047589272373614825260002486138834335781532685084725842580847964555263857693491759056970007547927674594577238826884669580877294704194597680699729024710762893185096676508111195819866867486772029502580933364624114264116482024860289672020897875647617146966042415503150469364459978101612457362850993257635379992566466759946427118482895652940700782114651454127995347622518727939225681856861541205660384805345978712342955250641984778556710268536174752483929086121026247789369055584483076933739630530922824967535709548628330564101845356532965188093985370140062450203456119071644894258697252641497530662205369203226095148611547543386718039954221113059394659448318806351785890236870731403957172150121076037524341895193876771260126687042910769090190849948769655001148553431939299671196140059019296800433058001662855745484755511735171424013477907187311474997725560290269540000663987923613694750006215416933932757597770786682021057577053578356575534695732253824691590374735966848390882134453056879020160659840573725203772182509595769362266592724854364404730629769267695358292181400411771988593497070917509115313829881264230039695373584251227979340741218309311364430472782952874987102953253953744273091164305586642226927484440361380642920174632730914100990258177185361026760304915623611990254271374586905504996300529802283294208099071522491719930634157303157518741902718419245174285566226832419946634271953176603767831972344570788725518677869637060495496366479646981975195649456364211025404397890442798968819071883835602266164133132374128784259876558298893948022091049683775737578400459074636221943409585545645422496426360635045437418499090117658208818978419472493293134925394827196102893951024257409150417908462905040859153345631614222300282874252882732687628014692700450287858396314624392106456457547272732958258423638291748776709386258766443914765678494889258933585940277075249050144906371860014703614531822918486764487163261655438574341216290671727003666295376921703331651076670799418404612220400911933829326532328272840355280371818272243711446263845512919547438147131543975036848049856289814545348595055967486343897525613565990223162275979317872799814444065195873066192660929231936882732996923082738329769794072276948382771433802420390787781272544837649610413449270324464377019551549571398385774643395260019779101247992742313525447797550332482125851299509342048582065491335069862232489913839065765083266469138135673240265272622572357611904589286225850517874520661818535983379235142138004840632201618230316204707041913343674411502868902653622760326942927027338826682188233106194480308758715619227775582936930493376200468500042668340567608448983315643781075507265764550790464688646890404041192190831373365954906733973275757167896257126384447640328871295452634447364565554596651956348314376811988619502586465061845768796447243847130231053851760248929442858284793621213326830160003375729301941973373823705244119518113427034681516401526099987638883099360622167070659416170779543436585334669282232618938525661711570382865835094290611278763714404504786906486064019738075460550363934255879966586389547372724322177225009753857187158660096696060759459594404425393853142181148752368515547456204164840761391688903222056511717364138396349412438455473303725974710377601751677368059381406396506763102846149235652601239460380744779040516328457962328767701809144971090300954074623841032154814001127049785664480753379905039572473446459342406092970903645609260472347406573846113765634135207395501060637353835678937533437379757773446294238233956104054198472757628486466849787427214649273444893274149001539031199952063249808466733690282666584620902196681659972998029106346925332415542008625624376200759198875448054433982876821322616192930258659324468164445734765154486515589542376371800445767099325180172487993446007867055610074043129461172217835883558479936000608481416181778620610628808632127526845726041592707190767286155853004263399657771083501436956152347178304423905473090945867682861419478467028997416030823147765688918757896695221131720860627552845313648085275320652051669370400002494676656045993392372241287399674066142999203569876767809913695346739934817067886275717297500587444707549166591761648198985120021176463227248645306602955236152078565146255946436678051087366445888287395198496241543897652175456460235478557545034614884128541402000169933517542347831014773363147261127427583464158206741720853844672077197458510865063173896646270794721624193563933705236356267459051586629055630007730247272938025152569180951341804608676271596511527275440543100745444219434319084447676474853089349357824076894426481739714871383294974674446265129434695528733473938423531800839036545948187221268067527899289461642277649974647188968944812522991688068150144459272485503067020893410112866477270656096483981904863885852102362713260252250547149616570145577285141372301471063971988756000291421143000192688816586280765538537910893139570753589082957883064271574375258726412782167788206190480010519479165399488195146037211276112380527402389083101243961603880225234240967811629604316786229884019087460587476410257333881685195959953449482034422537792731542920738460343126089949206428698737750405763034015326883351595157636332118879192127897367904402456090604206859092443948152716790494653746511518092102271170278811555691677661296834758125613079424533346067753144304742863158078100391190011231506604455895620053385598827990246953286679804062579848870101834042518166776257980461644537572159342421866664036534430041278826913964103755973151800977598016516718733789009616601785374670381745909979653734542624740199565431887040795673218250154124791521911485257024431840690514946677585613224563477646408084419050905711486807028447006116555957650896004304636366788243739666525668127865414326051916076696101394667723003028734856128270564543067737219462139182214900522685854063947674045626824249495810031510580829879222021995359263665676075128354822754132015828642855148900024849282833830679991681876883433932073941697377532826375290614715630535674984355242183817759207031505373311003938055840077517732265463535736344230816987603132510443666668984690775436798247542721899360450243215915893081810680974384986045537996807631754697840218270596488858145644660568636785317045764026927253379790508151832304171299311970666303146299958093811632116299200955257472208273770881144445223949223337930914507810512876627648351068564844019222087666451695519260035703422183437295149967454954186732549459582876465895617895974232427160056481095544102989424346064345093580368656201320222542204959885155864725580248530698447229148935140302530544859822895610867069111980547789484522614617008118629479507269572478909806832934618730762204166016299925125220517428939467759345542285111850882987689196391582239997129921014124822563378682476540958387791934538306529902076505989458663302424118348102247900322829269613706621954778613767573576257986362660588133022884075778659549011142952081844461558571160716445073947358547994526989698864635360104803176857027315725627629467706219021893998501374868517872588105158427307941801813728234318529341415548131142885529465457464526071072277380630637884211794867115146197955197255051905515809578988971837093493829217554879584211883219879102303816597442173572949446001296087717957932172517701018724602659301460767395462403819599298526217193711393476938968595683527353845152029492823614967821898659624606831785541101006282876505528613579166729058193026255841855942915204187722500455450223337546025114970546868085676425961346814465713574629335446570382301268398811875891655742767372454024773192864716639260034156543227164651087247480608078021759893807931190882080579009072499716087626975261344294135706796169678055356843745534330937467914062862251171116619399621250115408068760205315950870576303856478714482646329348431802380376920624808647570786086293108042901225912432694621941808208522578151899550440147414123025081265929196049822317670872412782428403463825844827977720719629653127689593414131345097435822683107878633670143944961413497621958136788175985393689816015025348615927356168879161169984077984749993585881997258689410456530131203499513179420404032552952069153950920277888307932524693230224287556511662496268796486216767572503354239194769016434685346871690800234536509824397005989466799657685798658458450257863062207961231783038515457751940584488524919669066156174723538707205390483108093268388995838522084845566639160485757080787562937210010519268464390166185866057812652542171976400315719854500737846331786771910053918363137288328408182588429666464043205502290337424009465730224008373744738424011353907693797738128005710115170097197948398361790746719968669804469784350960695726230984974979343930433224893353805325653589751526208273262492712433664703350503785616122561442227149353012447716132827048835980573645446112472269563356575981492938059917047646797203344589460666949547282009596594719768401491253168021530324553674135898075378322909857218164829785377900764366964088017769290205109013861739901903437246065089833247026116322617892102657009484742291450168088095996090713128899733165861479893544128147060756025918416223626367816308226291545146997272746875873197861129815305505913022144468351434695731800872959327501685398990817732397034860900479005370255139361599360732091341607055062616701379772434033791835465980850421990799499234543706420747464875171879576623775370710520021109517610289150866332639765612193251139838179947917960461707206306854317373651262278282285868147486012270926029765297251553827007194427454043547797200184995170913312736382004444393951126101582476839236505888575019054172769583874182690378127090728321113848002698499618978700951186211531759219676155337815680248273981749208174377831227077386027024614978073240082942319495592584049642145815375149769395154979473730222644601936075547731588750248056625900444183134670592963062661012003334938000817045047435400952683317091795543143667945733628658366480833358092911683320947616004865195092189183653420156988236439252976875744070759119806891046788449550419337727408260865487182384415741890369343829685296871178599935901129669304722663220490096055089691884246832810157832310555231800355183572401122321150675372252090658066936353210241783611813155276249037043807849320448714875690022962888955626038651505799262494865079381796017572981982132800741045633736067271135367237836277670050903097089182708162231324184973681266478861428050977820045822025093519702089600144465642967645283410399274762395827556617457997687334477771588283776851340945593389473311121743165411865144326691514521225418503365775151441399322159461491503071011083549028851454340623903840172999983855333620529093856961943944654383289757778678894024382973140045664155372934565488910833194706521484542886292047548272414561778453917053908879621834986139050689357312144122676449189137423374472925306572274847165712957545730420643504401717567124682136394023975599928661091338318152996616807852922604492463690286412542457360728393660129981473829899549694550072617443018888809963694895481493147223540258938543916420123212210789999606820835481673552115883349285178535275677349591154742842634531617160655401121134875743815806972893121629858369359469789367754370595616681759914258423965682447532929672131214188806126120394481629804892794925250406068428230265712270690768648849810503724832002441709734886387461481404729455002083027135005305840971465480995591902812896511998245886414842046424017080122239440506364565708197718606730679023905228047978232778897300102023123163316348947669646494460574718608831323042083247708040253533768055412609344478059086682971477267245168476448338679958730436678703811955747935118521772160914121411652744028952853429398364129021509547303501892339727950107060128751896580187992430745637063663184483972866956622478668204521524593375725627593630354746950518089432187737994648647629046053726713982331225897997094896550920622765377288499395520745415292170658980446511108005336867779705630896270360354385258364375495647279377897951636239742135504727023204188961924833855230043942721524091486243334315193994089060176584085923647506198073461794270105645369098727747856919190164456513729210066632130177222806410626210815086112219302307641184384307462736172362030756424733704892206583846641255031687955043968768481903389749891329102522381825934483453992349363632484498500792492332154349163736719190871795709947663688792014442829568543682123035732396424535648315851662989251869410414322430248964867277622570087586380468827850554657718207526680526918405501789111681687109250728129610917930630959584154265611751777783075994954724778564524399633175784629211170978919258296713792139683724916097095643068338710935168363291431607379223997005007375719329746240346733943431720828881028278748316135937819533811825955641443941174017847913921275774988359748029663617293506913969500075955327052903052087854951350937450870800163277211946170536463512103602230412566648282262425749463636818377808661316677455961239203546519841300829700372067782742922974465406803810096260847922974794288984162327178869358181868802615613951079982298809163859748648053416130852529279328553169278896008657978358385703998681426809783193669156788802532731153539104990888347431371941597118947599600841287725264329026804161427156738885479101549817804654766988409701912629054228521314402895904994688704656419623442015336170245915657176715338530524338513598500528745689481768457767466038286647934681329308161769513915248819939696022742468718344760705777534399872849844089224573696589903458699248102214382659052262773566902270894464740021633521894613443827501177240737008174007328840750450225577636856851154009902179472977861630185804185178966053224560828685304994751557095472805653739425276512275930301837576210227237144116571370592598951401206408967512621127638337626155555863730642664281918509211634571180101140796741222235828010319109116867161346144195530998998399982236002311099655700617567992372596065027586066425986517306849453756975047360073034097396689713666362393628670941535299585549852916891719588142641117489135286363037922530002372405676805898386465397622367609529394689583718987169045108408831210877436661611492921377069410684882946758170190989560646102553553830498672883827443056968018260402246203211735042641785078767427134311178637418413789017972180125887745787580680889017241362743652429935640377841130945975259623111275751227332019308592939444630472979257196034369571735836220371080119464389948377267290676023431012007885374850927716376449687508000292141332525128232507069715168435679475184790640069030504878808945059019459258353921645820360583045910165987922226006597641100034863508571806340830314852156322825537772142246726608673268724946424617866298708201181734213535711034459182377446527009465809456263421044569755676012869492032505411042348304166039495315845850574193442050819279678992033503624103632339532688548641020857710836363633422114499542241417644045926435667515802274528670434742685786918716043322666085477790843660895222398996969086021728536303784859876288257803244843208290099806946450822493732629908191029573612959150214823237019195867490141895800667856695741672300436099416867814990680790402483825541219992744541786887188484006694669745007720642484543427445110667176842232548057902860057546201193489040287414786533230707664264262430869053493184008221844678451455393952948453523146782179580429902701053647669901981725839819090726763787801013279159150639543559538053634674570952515027907498058682629678337576546987061660350889298365941234051817707304494195133748184939437184658077725104943630522228331495708878780922468252138108137220109275592709971391371968536712204826906515398831654089717628311946230289304773243616454077017383959006075565381012057801405351326985133624488701479678689942822487535589009868669238632206197212478979396757923595100884938149902285868077184268541201435475764106218446157948363861454921657025019638334804779053565557151062467242404054242129811438384046262646914030325349304784011260065873170038999504334383396833568000605537345306349163267545665237626668916726099538793699523566698490615720551831077547297092065379828495329878141270561069487246593169643850000176033842352310374594012376061864979896431949955696766376147621244775538790143358959482081963569278016692292374281297481284167346342402190844352192864367181556013978186926600159939198994586428610317798431524203474570108967396751582478631819790470780246279746468752137357457592864171934561564700807937093840396480013620236603720228127627028852825009058696032878115281580330184652696330739519630521538565591733740024217993028045587165797155150283687635737442693110682408084690970367193556557858812229591957166572901792148423129925222330500008784248891092115829246737205198354632000186663993307051433412105844582414545613276015109998572217432272363167980139545223573254637421938516758063138249761529763053025301933842469717194768433332510920464692507746029649157432147803599852285193193229423927895660157478428796828396077794954106021064286444591361616900800105870039013983473258627390341151423308503172110340436467862488698027394377339182153284326659653230240624937932652848763158218664391805686558451012413145981482420229552114365629287992311253310484399333150486835123804270419350572163786768370666653463144633471866425774003954933180225223740730266357513289127446122388743156709877374519449143284398406163071006162509707000196152530488247847069677814818173880986654018840253995789441045235688131143556707243568239549896415615009129869512879331612707079264229711530321445434559699965296121157186847394727903314014333330831838752696569329005804636524872183533102392114453453492558144810701522069510973885577257661413397804854691748504282460449710712948762821778069713051876476040025068323525581724373010406974251373666638913707322521259810722949156202269902060898539341547615716932783885290383560763982804531860609612413070409552416612159577408158963618227250445482184347492018155338872819378646352471074225878979824125610215522525463498294411079999849995002872143149869014234957995290633395716931260212373719444760420631724892126344642741203738213207215007519349525120578078699558520860130275488131382840412438032482808969539996403023786206117304209508663811934179805041059932816819215050496113930779698603787906619529671346470983890318084121446203853232430009558933136004364163269678329829111423075858309249876826269820068212218087127531025596475483758551885437218634929592528092445193994258191377786620787309397212710711729071578358415603598488962422828880677660127269256727499264745430962099233369196507106014510764995754713498969110558908845255921059778299858835235685376422969631894843107625171993426416156526180118370824130013953807850686761391702665302714202972862752109264342064017684167086927215089545062675069439827814074044674728735373243127132062281543139138653039969066719077931057957923565826652562234428498624843566774941373251529359147157783661154427261428814437740222839670047271148740000510226663025227406200588311219460283608416854355274213953446131822006118288373246000723572045715873459069703053114977238403700041592885957440891557401119101416938887938013881464096419669248775642135679144692996500472303938375849130421234504094596181158711417913631536816132508240654244106121607554502638645757100398584871042633496884860994405807238611910008918923476681205407534076724090656551876236123530201624449909479318940745147682545285407502170583234263559977708633577156020447768823713315066589438207524094311635030556592116052734061569352181596589424432929707917494907860829951262891834735121901540245186612119987433753468474858519845914450188186926862012722266385367000039961476083903998876080892213333435710639158145647456698561201642047042961688418187982001078157804988411301397874661611170500858978163595412235466132066339061838108235373011030455051303539943265331355697205390813851656162875254399052784444496776009559529595504865633366354992283335997081822010736415051358699170157498650779765641954630635600597054447073674698268837977232603819617607687870601314526619987336823546886807886131795652526064775776682869045879653862226296701492057739862875640211624421453555057513939481747124324463404177685948464549974611427648186213800128141382057895686002095744995138674845765991827958139896591782243299115982779411843189487580332901472233280254842557731703070695532630221951593690414645163350600226249980590623297232263393813621186998410190817569222312275258919256978701784619115273711868603817091239804507406906374812962579613859171535913243462835764308045149689161341941647600625458785879073937245987246204288344528337573882023992176473888602552786617488758673928983368351207344355989844762189128602520310493724602664030664197384676286830749041685539062595202831520193611261924030457498250594672382236629141773336981139325450844506480899292950297655339603437613381625883514818844957899356666652823290664017209938900405760278918744259145232407363790941989055083844200616186258867265438536863535926535811701485282866782803751653529416632854335434527173894466796025060691774437411634363726191818269599912051106201827483804115662787451754205912734110309698203573863711783076182071782220560872111206657737305873934090322225418795845071573648712009177675147652058539764958417707711772811165653191980275983081925552708628314952064254890302938864657271028029992377593705994583634701019195186238790623386555332695197895524891320736926570209197310058484234954949678290430259619522576974443155081259236797455449971634470815764616674818718817112629016402267518185437172380450014189393920643082944110796057858516179994095416432557847538336079260718443494921708030436756810190073015343457099007004059784962710289106223041115807949990849814369193680960484461606086414091273555393208884822452213588842091216899979892838645108323703923273597624269946974703002282035457307545105220468838207727285292724790397883450208241826495944281509658289938942592124819739700552387749001073366994321135281030904645848735572102385608480986429446022356284111309484964912850370056282996559350980528740404198586192121652979640718267546221815279412937637630155023903390978812266216464166814506567454898100112327524710279929111930884071271127405261105286634607708743786261310106737996551266909108483266810733521491668342109369976106620650302625662197028104962214588875105584870348874016054987102167298653905553881911202968766644401378299003899143241491002533282704790572778239926838920044172137810355437424473505201900493312306527977261903307032452153475981600315562090219932467680436461193437756570118971751244606696836572887035181466570544317521539437903470190323346278670628479689167533759564399144484946569606888745275136413430206879387539927184453917735943709797709925627954387436675923011233963542574762432230782118085212822616864668543386620829227298312488604978911061797959827650351386227200788280259328014289868163031557451822734436230698515321962544208776351322536377299039562516477966122320813619193063384721760312882832334601929573987568379658271064920612684274691567962603591499992851934239218469935465826204328729929297473143014274698754177540712703744310280324132376703102593169989557818529414826920386977766332342524280542178962442999339906468828926980557181922719088329458910782362021701446757764608298176018163782825021190973487553462010284526454576676666782137627613916449368567677940417928810905738292642817519751929431215580657194227177658260594260255827508059033795123963347847245168897382820399903319829484317636497298058367584495818773967657442667642504576160619441865471154513828488051458414751954414353059618589126233454354225084638958413081136121091407990947540331869945631646189584000720762755465102460317591223610199516212087229839204912039956969747752392128001936918850078526403351863056949374462381925726544268713200468338815738607817798169255220166443972270362179574344861051718808383237880598814217456776249275333406811363001390528633139348639868052571273721094135475089684870434247358145686903969502566092580256690491553932998441203004662513949805155699896048133512082425165614465350614040417849695703173653005692927588169916036331145311715306595102705240389296818827607008466250877989468706625787922958875238575319764484270762212830816923732509758992995855590135787726886372869314838466777284224869225738552838927522718396056309834141705138828524848313742730603392917850930481811702848815693762897150051321342506287851921664411120175961689375719237522542956286225955564188284090226783278606004934279859979924258777598053980413067941569812546214221906105448861970172449489039959634431006440554108949071085354663948551339681825760588479393179863215374904531679097497811458199578524473155990758398686969013665424773570229375510062076400984509763745842088679006319881356934834276071959437603500985784391472442676429048163224762360321452925490567880564346112286015582204107490766893943612181780773702531849402630481839822075599092571841367551722213185386355293112015255382740613031500995721015166330784755731298427564927083230028096122879035229108198693838972477843597178974422468312806830062585345076515106572675759902817531902721755459756343408269132940337858874395864747023058301988615855037035854073747247086026910504251740248781095681727874432453297389797210007197365381347560554439664536327760599266329296186617212759646890540399540967499492084753081477506486202145485238669848109399692654161479880671296795319778265236567265119012068262364956222224061953176411797223431970245720393298405567360321064821870016690776214057612247797576204605180987419246385576165236880416313632192867406269551475067475539852509606804606996481049601966277191562509053888201120101610717104428443299027965275988714146845193984283075750146422186440270949387153786431527788232331734383839699773939648935432134920707470861028638789641641543863049760706786936825090736156589068880572986762529881659686851650792519825543629026974658743957134016259058478119136657948642644490599084128489159298978094717824923905201272837193109433441837810557662434651791250266196258179601412158843032488167621733432652114387951066346824452017469598322872707956255632780805571805583776776227350197262679061638344712996775771849672630439857806595335249701375736312744584290920264439563235189462867373952555774613819347062133011201483801092276756801888879470290060543881232262473780054518302641445808901936710911376868649852166534704871580132592438903405003954353395591182944762155553164346792149068410368142676760980716388138063463146986573695347309555630949841266062879798507769418872557093651712437294097907047075093481431281106759294091422416666822871614940982195900177894905919331800778178251739760611530004673273813647773628451350162638278036004563030515629810158931714397637377242555819452942294472439098799149266750150830845610613870716680284709952624045414641441144702700679649891204711317060778370974726130558782161124790375909986240175195437422417208842379845613007144170149736204730566705753868314275439451276806294150602921210739994618704149435002915721897760929945611943602163314116763456793782618431188830698200896121122581657092582610844653741099218984914563501183380682811089738032546010601131026430359263752301674437076435457759626271835302461919975492013422207033945643966676869554810939960738177378864607020218063158359396390887243881605432214043409090522685666258219219170003052486956851074905009707221202503165917962571113525022607432027413081084130759094593383496911927729694083232677825736057691345120175110598813061329552809265275072689653278871117350202282797060179804795670905032785666672577519332235384225848490014931822816187471032401871009289817237269135198092413322169360127352388612531247859706484681416735883318883437037622575984855871543959502896279561684778790155635650208668653798675654731801965832812793981540837569555862627844806079055548889553779092651095754989967615761379933562325090876509325727876036922264669606665724114068477163826859463460741071448082902547564540345494857606380899352394435060264741994881704075824957002986383809712792976523168321913717438114232516882132691210429764988407474302476213228561690471190736051074504243822944509160124591482745959854232040979188323061777229313392390907299924862455277715504370769505135814763434054853233353380511898447204256663532973613776531917265077291066534492413294834755909082779139860309099143000355299684665242255229688045736066936045228471758181080945776178770996658347309496770338674775880638966219056523944879965018614875037714343634062993638325531908125182129168118483404528593722378317100298360409287640828315838560801588050039830234181039401320274046241731909531148056141399908278955138210635526860021109748956072352119255765946720846497542949290532259062276018787832695052828004750128087748112323616854552842079255240132533216220758703606609573379463699849265583033783538567372428097004363494085187311146302292657158366547369192283170071759732990882619200500295321741916550060356892714652637942629343542297654233710012569599842462423306843145237617492441565532486465961693033982212520913186669895758426236977446404681216184971356465413895761138024721732524670977933229908143451601487320876989995615184979331030757091942863223153274316325165326753143377360239703714401355095382221443993304406014977173246290658439486770691915735955575924956702981670501595121643980599752919897595539360231020535808944846884278300188381705773647787157187238398896779503555810101926875152865749278429389077936832182472116186411024210491479645196214405409399806957955945589107671424730430801825769327580413456886474038604746196847622450552246876265241195941954353038814262479032415733049629216374897877811191632345298083758727763236573526689563946243233351072741610811991389724752775626532088110100147732816714515287534241186534072836425508606105560897964670932524220664247488968483704399449785887478303144540253020985382929022760970966996712911823906737645241485177006222971625588388433471001955599131794436680113152445776146446953817453803751742198305423690882343703826381189131908995650057021344916613363651120124430832358160995414460402363969334133225282770290132384606193124203360150361105512866988094013268172734350824124616211956284451244749517947641797255761366941732929264220299883908755787716319819440515438777731923697650583681256665494866331705627778083913270507553681636478647822666237644637334605384580507749421430935197620803272351202235815960399519559381417272674680097664335704550674637433034241110892637911223008898062159606679943440345508756324708733352744993674167598712666517824495610697733288591222880226734052404561746011547941807991657064313880263238911905823964031921992447065973453597685188914298663534414421836895554322640281643842794656809117144099947491337278609408422005977158180104452968057293992256371595852091832061686144551555945640806694524706198838228669343711576241535188166554257325059493083174660197627567777362428535685313925541274711271260549679403260273295836717230280720335976634865130467539287799395388496894617652842472704407965256685721503603939608783599745529946372143793662989557454294823574237980406139110714462042251522219951607699920800187918216875161792645692111415010086431645640260646988980662836333308537136104073180514809454096407461267850723492266494754779497176654241875649134782144633282145158939179469181455799160713298186990667892564297605292393872450364667940749622016850680809664235547428173382207816392615891131112792425335697437128454159529261817509299935679153869646981953266308866636691883075988591384493699833395224408351440464672514920478262206066944399900272940263196273954680513203331900564528395845653098326717104523011330196536734162028183975353626161759460271127152058274902547530929829880573196270717862057065973521000906603646695476043717968720005509065554137810448602868826153923562834119290460834002638245562032395491511513033494618373494150088085520941148495361367936162703211594247024825817753780862662684938545104527554802157310309216500009115848762235378656324414792944559484749706532451152890871746118320699716498040860229811349586295069516283274401133842630871947620266661987947787715592745178181277181568774640930838605949331770607189697088037919182799809435457139357268781230634509354756809403956211149240628250759565687370194474262466475758993596131278952538855466439660389776355328646118229277742808294944255392042921973610078103405208529158350171542316447086749190474281868336581377176826835594155271974395108482186093381543304103656057512182395901979672088663489689813788346562807994265548381251942559543304428750057993216843281848160205839858317172232258721557501508985833974923688755825800681102967109233875733345746507920651739036995570839572502800176448980533374808484456716539027479405253939657458584902931409091718538383177611783379740749051723705016225924224707834480344724168558326621802718784582902062042647065465115239288557929968383135958597782424331527775569600118746122343359202494874220327519832219708390618449531309292665656031225966442813407818186233329021068887637873211691601579296234772653939056997471816585177413928048174850188676138623330046186527520069180728227469210205827612285516587132007927780340674383671154558811160160809899572198763784854471099420266337977030944002881605551875822557884382823779448569328389735683569398682972276589335784430274141936989634002330048974036801897255069125085192299317060846213913937181756374825028939475966138991171412688212109326210944799975729028663121848428162715943422663668932108742563393085940939718376301480388065360212824132078644555025404322206179281730857064193712211140669003203987833841873640401205931895506114812563897425812076784285305413815036011930360857339577833198701723915158887735422088714886862731974737362911979216419956232398346278791681029410889268873252547976007688852535639286260538330218850624168456559323461113753861721848547153241527151207640456098461490255211603228198724682164609457652885698668426964941606721482520932705932720197171836129684554911697706469870320771074522191918426408431264804751238835792869274701443342645009929492341098829233687458456800758443549408221520792969562075333749924162398798424164167698622265539684189343118540944204475457849019409159762534759520581922783291551588203226257612366032419808263054838391206046930375982167751008530108122353899541341673542359627971012482912564657517480021802789451979538450806197009286124050230988518307538480494300671470072369837549798890425226043984629162441128177631802833180210723800892741158530750785076132031380212698470892622665190941210797339476040506400532826557294101885443932611530539912209691206490364140320220674306219808427137064247175102012561702319556032250626420215993469817455824337696478450530822631171840545643820516665266832228157511964862767979501063575546488924613051853392157902084427387991524164219374097303632577376635371308709412644653478643587586009340488805432499633001651203841263091958890187488015671669459387325393179692369077376510268681043610385266620961025818959158965616418969258093289381403051357878777096723040078407805849914503486994372554742164023764344233818370231751700840761487856759857692647123585345269851881764256343017242815046647982490673378802277470421226766550489123678626236638765203960461078268936951470841786135663922069208333726997754015635768151621813848541875336516409994867727757978934625035029231115563495154179971202839962097292571068164454386162513497501961745368097510470527503106817890270220980455055536129158913996671648446377465765330888708766009052005220551986168805439048387516704141995516222365014093630656734481087567162858223039116212053302882892930216543525401975139939318583406631557303075242247837121603442961786780152882416807948839794465724724586644652411796224990529174934813903395264452909908874713601939745289669479879297142511416779890538723733622834987200208230299381978424122837393348760622088785119071507626646136521562006341850965605021350644795087751366235163815006189877917318599240874251875254760064988371284999079413121878339665019299738364278067162932449777531969726741507695800547763861578038991972367621632302435902233967361716198579112764196485099756124548957360931136542757622422166026422455135506881040832644691805724884960191165312478067798695633256009739270709744860647852854853042691021093521123014922755632706042993529733408206805906339755236350052584667192733225007628476839523531187604302296784024118027263901110563097489031930713759035620371540387049094714600158382435966073929377877779190582042316919983788595280224093707248844829378393273644807312427946663123917444535098898353087859007488229281702664266643117264693668569114481092758969303507106907231841684851277756158554444054127265866586956558416125536013954891261984503032607452520165938418996854747559625332089935104718342362434636797572103208257640916387418907526003367706733709316719131125735075563600269468768885188927229796086967617979903373264735403231939570705814790932461826354841055342009541635155752677614032872330945670549542329083242213809057815659735001426163553978159457125948469270944895510077081532735801767939627558573944830693287623896076956701819561103694819755932695233030860179523636791683911094332978140720745042803631695750790784462202973910759280388742546556955443497260060662967186481403055736305373941905594119278299706583099598197538701943206902765040678029705739740922137121473185692688339542858593338522568319440310460563588893393574491875290290580067475024019427153277974953464882528587688661116376820292481439403782137739240033404680833494867614020187397875922770122456549251609802840748359716006643055241026178229262425735035474220444470497354346590128050297950068681017885319928191796655922128251259533955622264650090876242799310807196121203592218200688771072856005900797874967705292064445103005060261407302170595061584914888721802344272284839445919305077534360910480721667550679385044136090161613686743430774692893126771300336882771506505744052741588760930361661562589475316121129755076898637644340465364152784468684872251871684808296671520741818644873767904230132877106831095671259061638584972660884875558430335013320015947209359881020935496661089454124291929627749607695316775134331160333907791813922059311411177916876519910505296962905114122758827836120756747246344997139214802605852004363682714904525810371607556615340128572155128905198550899034416269573863219001117929877350483251584570111197972389527460889737230473335630846332650871867918936543128408109945835288766834454279204318059409993343021618452210322582208460431967905404169875800358916841254052903569618578493044039942576187870711073172113045075645528946907770629294877978905050054449812825588345464633750354786951087259209866075056935077412757763678010328532345541574504232896917699711663689094753482024257544979853905458353917080300950138431740450971255981580535234486175940861466689603588398619841513365768179518147715143667640232112718246715095668258156197691898785327745004848598139530413832893875751856344920406148261094274702505298298396914104287098142381591617164987641427147625273165748040853968174850283983854617211233319251644160993831501060788857455707152901891099092552226671680733568349901240548000119331686504094195946318556465584846428176603872140942721462986101423760088380741800350381359180287107819248745063824808705851549862386179135833556471412467017443587657562512758175073501508334603384928364797736969806705424520612275970421525064956101948128366621163849394769994924298378546796469734798842122333370934567244698213890953254597704615871379575991145759099593741108982679935238550453541605266777085664565386415573958739091962351954936921159760417913526409414136438570844908374739787671779707868986912136939344712042228611428931349271562436060274655278066270164740367945047043916246570496378672623264264223120361967648253374870149849245936727638760784829893688990703418495603652299812525378687648949081683314148840288534008558982642064827969882535303247944231462294463713811640785434106018448483750821290093087818672420947813933135533045257275810692916891772986819698195122729169598941780070314021913063151822284693063638006727991670890210485089051101527222734965302281915648969606627564817744019916820470363873599107090235484563067863183169899925293309451349440153682359377427146954954753829536118064705392450329869984864099326088978365611499621026837927254973886433000757829371349670682300045921374744524104963611914259364486337582419615154098061805491257238836909973289893783529034603753981896320513711310810185512209661586778678358216103026916355635265501989955402868319840231946239221823915631699986141439322372665813978091230601320444222542171283841287226332683811727728748883911245839747506686550963658029195334683783999317382561280793952778908940131359954761621699229415687497844777113659300918369328792594851125666233163528542593597715290084177242466646654453138743811615644246712955198496513551977727171993131889801944362147864270659892362204790364386967521760220403561583521772482771562631878713529573885893201363963593236646796699103314962322335069916455921097661376201363151957921914436103431402373953312582563751792798512771111296620433829129230075454674943756116547188498225519526621837696932378078523139877299579663814549578792343181872212857223170784242265241523181512567443993386340449469132439510203540251440256495061353805963748167577120753850444086606615378055270231440239895471025133654819125280943495135592787122116028360808730917204737478223584468018742662867730036067290575027838971631040706761547847846007492814507202349080372844310165707356636911334846644949040078023298452849612171840595684636541618847673892094455380971935142233880527289178464664799577017868478958010526540256105236022857125977471479218476330191625025478970739025603761537100029129244017712506205821678467323771783287148951010816493577929123157514111243058354589164936640736489481905354539404264109005476555904233421221630693733405137611384309019050661410613837054497205660564197336201664922013254263571328071401963566178017869042949259012304093287116259440559000592748881398031928805540486253900707428362494573878690498852406644394591792099661028257426647322937882082310913371931033394686401047745456629412952987344744392038060806169878650573481666747480169645545947862980358826510111295672072241000022950425273870151411309654677121854628304834591379250252134203364902298500954060573584741738659644880056539578618994093571680758367156493953751568667818759044866456178713848975914984189802667987179350549975281374230337390766121135018988294822103409714208726943052588403039493912034080852049471463609643513946953446237604855522103785207751670867275860663844743136493076037709549860069350680831757923745801449125248228662038367635785688761706150214000125669082898723947468537023131486368534242773896442816988848949599782451117767508496130616965335497808892103325715745333659569837441467816770730879451350900378199109968588175002940127691482897459714370143822190564058355198041862894074686788422119335561461479562063285202438825008134885552754661584404641129070974608564162024608146807624644340544582645669638400195343687880257295178951064442224642882849110195207663830106082299648600623298153030547820673509112005790837188063860233576401550668591673635030693370294489149590464513856834003976026643738119553439521180182632322469448712484748523852263668897704190192738258144505161888198944403051857420629598858333570784868223378656120766454118072901615517186927814073138294987090005994429000986198433950400148939396866518350373504419343963257288353746324942464619427003860862261988449065427374476380699965201175715378510272143276238605699845658316489396324401242342542411322722358505143341919497426088336330206430501824112852141915236985225263742034347803713171159503798652265247002921937226683760898022633139632727395349522379170197651343887988455233026006688900108162633983541303749642932349180774707191856719165384751504132666918208245294005699736896360073611563877983626619882750250393163533942971438023081256383828359974347349628006962235973119678191235698755797634900364381628469285179751179112167560026091591275842112585359947547195668021059152504413941729040912137214585713806135274123351668924953668979949098299249293449970142470808473073674616984387186684678666851365619864435093625606438598352183691589300835899579142874579406034902165000678384040731301334405226514078278706683366014414696718193244013124494222939025119066986249363570276858502664838616560661472644297920943577269878286152447920952894101363752928456303631398787088035411969445436785842484804519791650846369012749003783685729301534133249323113126024609724203448186613964397870685687886124493130324868374021880996360320518959505865111490178552052503474155582525870708725828661986408663250306315947311633142266332408042567567434525247006603416956647676177327522386595505841279431929754260758727569295544192030982534753162146303690769755073270465508382112011352149513031960318294389430997523840980784592588202810286766467898980765198958202649002080907611304474397311539136138969435557739493977243125895396974171607162527753906445005219193275006890050672419076595591590532054949672309640559616582614002934394565365395038918136749269174592260931438919858724401022638091629624552611507145329380714048199304968674129275448152802987685062856531739347383514265604025327038421802713138985905762803936535144333096141528969352105318392951089419112652095067824139724377039950456027956661017878384325036921139577182306088891820589118094224176505721360339554301716891958517240110342915273368173323653655479167949537815618165521408335781891232010087692895151082252315538605997305594734449897312498489601982361375986384233493631099172386958377615287516364047898284824228146136861885531435376303449270537338586573480083110370390705911990922451604749406942619549055100439649539597450031370722708195484264533029307611773768073962844483935416011714076175711776769629684286767476506209898738878513926456629960598488993334725222908305758744910714951682963580419266432212494916392026096588323700139527767290862345814371922138312086533624592123646899260766757424059916381052877317963278848553614066276343038680933415146592113682921583200359674855638978517073329100242981399000075095807540490275560442841107855029208505073507511478870341561695095658480784381170642649131174995717755044438100733146961977712313114854939384872262424495337438679287870182238624246375686781735706405268381660293824338626011010643810009158412116956708472549052836842029983881026693297259144178844532016661838212664960005181655171189807504722647861353212637812494915424111338164216930279697501311370394277596511559134471536502570421428978532209357732739918797096522427647056994660418071609731578640205061420438389532702322873204431510939907085606793757755320956583625821137360977852638650413982589317878738256115768889968075190038002525254767073626678545463802950204654047247280113665630859337736642626830071377281370907212796982398060133114923663810782488672778031934011280938799989499305604496066763108407379172535112579561843177306375704241183794008321068619157795654484595269759136090151135789627359390074858704017741029592499883448587182887943647648200247852254606831753623976192425575573397058328604032984715457733036006835673559048714150723254582898039144386108169931789751265262962571110902390593297502813303059579263165386471058043687485924505074069366979393709149030948871496363010211372294145619936040485293015067709199895665556066682868012853092920468294216167864018500810656941168199011784637268084295435379563597026805623896898872965381982913400856265903825635898038651303983945446841226184674788210547269168237784587191300714248407402317644178233739448746637954455390565879745780257336214143499681912087646996540247243104267146333145302518526427183308890225667314571041826644237876689594877705805549029298004928163625401162474860742569569666592753956665622905005313346085741318194081336165678476158180133514313826027173231576502926783385436283430027079737198779924800231060345843221277727553612538795070289845913705218605036538348042550714240246733822735908008919961779066874563678105420383510796079213812818194188363001618287386635541678310086967531120502898563857450511322925117029104448908737656949905804247938909279954543542754367847790245151666618037327440402099728821777713364073443803731448975007309489551672991078148474765897761893402759155554254972101485287354328736684207285229466300112973689252243233932948677013856388765787544489330091900613130988857561012446705663903032155576148411021556358356555902724527005613238349179138058509921577310377811627636999858055857131597364147262669347630187801541360496726791941030722549879071560400930583239457003720607892690532510149546681958618247085367557485372502368329117177207631672010123149340340047818272734900400301584162249791525695005018304807485869663591796358097028665698340189567704348353571098162510795908097710122008329416774247852664810199590304248480341776720052177452677467756521710661969251917292681846099820190163121279143638608001225714157238254557116969135779215328198052932431046843023681334313635570219263234394664122403907232036821635513308479840955320674956928847392044305992356017772685310555390950070132566462478449306964029170778484012985008389650028808349433309657228456588110620778333382238668099628563771303951084731889272312116234063460131340553335432329706307329999583609778929099665049077944894902478347509331198627357162807377568327954422605615352462319898518206793716882991555612794168052509902594974096219105360804129780020478277379838908188543980015362734994626862942221205978479256058467293545853103253085073205151026053306102227113821263041267210046156766182147430644779174324872550735990535879210958864053747319904609549447219763030032347461246409549393861083828685649088158116689748379931087551401615445170316279302284955168703758468640710057254431339836394226625030793270830062214265418402899929212245433730244867273095691869404268591301516792905567864748401917319107347215297809108452682213092443368553861388327150440882472499998227347200270074350257239326915193029940298898060204388943669506811208849439146176350139815330610823170999614306588117417984641559997620188003200632265454598489372172153618581538559969300528532920803666274330297092213431341368713944902006964060562503545690234501375401054496761569497608936732158944009288340799730933984112161546316817023716194999124473496681525469723470570544952161171343148206623898612548802122772955302650336134302037104917940228591843596247335800081491829452104722207981907376062516070080165930095893765374800535243102925589670479950136548822471306887071928430256188606605192053095291057666076509263489844802071595389252905970392679527640594918524002834708668923902775850991534824618552053730823325786718799032243277915165355459285336447016815006331035102524983593793477977477541511157931800982607052462712746209928814398412014312926642554300630690895166072990453925524728551574908375811130780721833261617808777711871917783948047117609258582324925534716477380151706303591085470946923942977840359563135422825800226161820769361542059448754798135331818623481322482705668087620705753426049277075215014714734050307758199667809174807966673878239193773674427562609018838905117751299898719875287904273240577999642113803107410518583647079547700837066360000199622807364232783216857000600523830842362675304346679368438926846781440887701246204912372756069251018333572917767567788527760437026136661115929208419209458182810949532149855588955742722957758621394861756405046686049394780068572362235492054510480215997672870888273057816596660194776517074161386965304500662344334015935699028544417856853188334734543526458947892173263622831490687212304102707359540077232620008153071550689585042039238074049072867397236742608145312978636667550452853471933034073843292963534546094573325589345838800645671989724016315841173406758784882895261960914321298432833646134098535253877894717821644157765700114628837346549859905917001012764939771855629436284499492732557164567716815248054045902281742546619300146945522900955180691885527907974187355094832681583665224717250497835455754839215019728641166961958087544809619301186584452217218985519497669962370911772643713981515014979003043315620850441435354772108350705387646141594282111848637388423503190511459569953291784142293070969283949387821745742827898858076772183032401853741653117472536742945330581224939583036426579840298624951773546254031584929695488717591027282745474860346543892575565050002702376928392020251029464695494593313262034808729889402927303112902670779266504629314943406478930700350733122590992084401334992389852893489379470028243909857872192199161418805249737871761976110196118533539076616020126163401758507090888221056945069088702094260083482861272363610919356697105393143722624259272003045508450743205048749766406954005313128432303301529464606582645014137272439388052882741209545798207144700120879704043669677745298597297782911869510330922179762261701618838115298910789691911648616033493267402655414766809444750178363619913803666696565896350328414212800095490914389997893105365198589009071212422440421254867700906441974922979481160465377588139719291989527564821473043115899654038968369971250319908540524244563606783741120002614284711717491705264226054446880203936761344642495038054440392406065390612433451821140124369088409978767063797942214766599144474419999736165448702235260231513379184838252441019361819483085707285538180510587920229364910807823115347720112640164846862659739301522589328205627212562235535795981448495570812967217425852597870631089840589520301073399589391574382481826368798480133879945792178495849223917343482268804609697062845866092409546103640425162614119703897588026085590628538691453680569384619800676775492163479951021702266144718388057874887397796744910218911361900957780254494470655417146147010653682623365786011812001818773921150695905325533443841659848479189381440377891397202375719873274466780890193752347561469184053187331374739721754975370907684650814039593814364780879261588260191859963926772877868811487935572279390451768921652156271030354525289104474638293328067467064087298790548679668549488523327421916870417274584077597719683941975549341992805668996497755924560364473512519581861220341023904107171424694043395904848062030542427141459472806688046702592992588686623033654773447623838780664515713807169249621779356459081370924043296778926426574647195216024370636721482212022464781047293939128064362714582279064042218300221607944233242995881613382825610324851786046250013527337963398524227314959482556638632705009759646028075539255439637381599809026518398340366107032599138335765229191852694834857938622288515743237919081236996080129143771126764481580099928513123400562141508252354411324567278406844075422462146866747517643010439728949343185753164319440563636719583191801719161533245928554903251616378693297670908700223184441774843793787143952081138921635722881713203724671912315740076530081993360344779254377640461040202545708427264920410789486412107561837108066701501045140428889472026105512060038418793900543654282619412470567941547622757491285161599523061943400165851207974716427242748794312185820782567172771840649692920385683831296321005690047595448480677269343804455326457551390093505274009014220457438744573149427318346233529137973471101355400401978824607786185592841708955178188438436134985760257060580147178730286411729085338193207686066884853610544258402405153529760147676228422982582407877985255557249236608577238436697118274933872872145394538525848566570047053045602240704221762129440836377476391210930663815400988808057827111871329315400938871162739173117720459073169171327996540564555470156256738384810218122849478931639095670870589140975472239831120522126912798217411332162505811349656856301594765446459786345620544777797861909474244811020110076203530425331853816502162296827219904022387842436679241381732247429567909714480894785869750397804398724340091470402199248314046964379547404803875203815083688748288415691783224924158566114429354861836207102758941300360129448368112423749865878088828300949034768486634601667067632438156784530900303097761385109700123705827131777249794291950566885989348731024930389475463022578114090036013529714021965686299904825418310530361864849500253050552415462791250513122147486061437571074896395568567532513059970605050583388937341115748111716715068200790316582835822141446364341657957440011093618135131468504800157749785805411023107194969656789987144626312733289071389822530487686705798208827917480755739749110216562073112633810891248516792899669001501702157080878916223659347999182982115152507500622819528019514870981872174745170907793526578126421671012721553248752339747688198967375416155433182931360903351362180561550148786853654264724714606255289348948045664044643899304332786840047278410721340097376968445611258974525124129387471672654822806034069247312965966912761226188511134404612190958016234304738360467162560577373664982725746418297675615742775474311106011656520430109018819402834251925848877827936659515672085365296190422422199491884023729403173767061514494582446392771166520977615901184703036281602618266801151912311327464360366305269715421845559244591163570435003071635739082509312504396874874269161567869189034226116877887531410471661228401938941262015195391057689249791358846392819541718253433356227404956359444666245857267706994543848617724538374840363220748483949505857374710659672427295215800735178257310839634641083225450798048277082355160621703080316343350846768257277542712785638261666218401306585708494093012061843400884989866527471099422195413458671445622270094230967169305578182906338775272628081243380229982211662650701203826966494537053687754359464975607940722328971700818512576008848743658692472163691334283525681448387625512218711735320537145417433913279728603853288755035343657400560429180264615854926236537428006247173784162821375100297958839853891184584449526759478787851760720927130094388324088657395555982294173357839667445484080586904089449258552769758207293571828649218747908193052734918507596123752558945982069191048787704535765672528100908314589714871588407782747075759191036060447296721143112648456273404949524955402456904958598686218325998408374734333698884348486908169013701566651635301856085627500745859664416145767044628239364954512673972935504182771308684623602622226561294224403270664596651691427819790259026410131578653953929701105410946141441251954985177655905860793035764128049966371889277573895265621766545376813073967380892473935714158923320705605801355032060560075389928704250956865553560147035029324257836619536351561825205353736379810202122253732682263908244609347615693111816060597304151529935308845009091562018334881966749223241849361729566710957637264180775264454961268700354774362912312677058548752845434942990631132169200644741308036349029704477991590330703154163867130921626043642284854776880488434005067341010706321268465316472582206625876956973321864957623911521920302797559994202522439809339809608926772334102304405037805581726280844764387689934518018408154454589061045113620260569535392316726644342137603373223794166283149930814899512989951295981050836815222248104695162455511688557182877071630875981927003404089916145279533832727791785994212240495104170637955428058803756048122040143752521981422752152347364680801992301569260914747390054752143550530798660410299072004631563257636007111114555036379991700202174084137324869447884161168059548038598801828740957688843188116969983174270924308485001366431660291580200808636621403445045581424993727462411330223471741249085737908461718121813001193498896781844517056412616618548893916720806050677380189860533184940402595532432361230576970316009200773972413194498098736687860426115839523963545704504151474216892321959128312688084350880199116458965433859902122091102220610850475124359149089731321282996796225157085682700612275578628775164252067421128296453727738787009345744253917623522317918218211162772971394004933029186657846336496054090048615091541832282231779796842541673084176681820020357294728555634109069684403811662416606712504290997295960505732733160872833861093904783447771812804067759302133192999883132559899694097829802484535556973884057688028419829256140425196099412813745198286588522122293590448973322827191960191634374555031280719366614800518456520417574919614727656433738137016796677650122613849592098516739437979338970167284914800227506439786359598756936177633223465345443802021129035358932255140331536338357003322940787744096078629867955542941714169640851231579073058319463843340443648810631538277054168168182027818971713324335288878526059055601780961047947000716244604525024578093822758527314235106909238439820198880728976766792322846919939592634785506411200310649758702990780973955532951358038051609556397446142410908280075507350734719867160058161096547172024219548494165363290551735800162383950007110090651855711535927947303912877251021861101580400111983151998921098743580598950474846388699717327631394171917042881320764678342670723320053690863284660784077047459610296302581991506784511301340627612306751933947712925542802508085344520210571332953928357866125481443585914004123356992358870697096757746087153998857754061747689603523112533538648315108823747250200314522292819637710167378123822357383492235591751985357000308717648711569361841086359993884596252280038645550265060004997993658859446707414837135277019420077952393324081487728496028056371342865547460629201471256377500183382416895638345529919768337291543276760698892378698011201338840187762864125410653731333753882589845863069668703104666446626371970078137590381780634474514005015840384880276403635444514015278655059029341751180933664920029476728073450286048102326175062452636803829957703774635088867170811709712182506133929137713341324686886100620254600768151667441802303882141589512532782835612130007942773503898336595051153662016009833134252752575987313079214052929059081151240015548438808710097008867281653053729817493463364447430762862626859717020835701147436802510554412728137520894453681159809066421967086635408869758901278792188693930674427672589928546950150494900456845283052324286079518067984141699903644498005876571817764509746807819517355348422199226583722874344060227297660562000701522002260685855680105689741866486795374851419496666273526441461716819529725572110812351603834005420215063315756915916051114772427295171385796794893390116400943397264657143805314761071870070710596004199468301763140002485533407085403826950957845841884646839046207874943711775028369214434318882453888648876749907097943237579959316164576679531904550300150200522637631419854751544750134000008856772383132732561471813276329877726418777903868408110849902912666998720360382151391893095616502431613903561214647174090607581328346711412598826259523103640303373223490841072051066030403571973294243764545329900683785261213915541915324817435869544059030180086445395112244941945765129225406145547894693314681968866980059989910281364130288872506509628236359699057414818013860028960456965523362359586763492242397155569164358300005840754428776129744225373153328197801646544334087234324574812532337980871975053018988873510313259685649262536106402096863267303994951729161309205330963065879829669888623108562986818258929858915860651096137709805972012663617063333875274791580579054904316961433465863260804838444545684021895186516055030920427461591529235510034814511402662549799038691419964977420552647491889595650394485659679965919423249020982356422750166828130372611174044892704625912135985164735957081582227279512282116286009530167509806754538403401503856003656773825659988367451629210470096333756233035304471423148164858492585569148393756829617971250234872203258719063171626418355452278699797645652291092478386548998379071477075492675188095296913339107203644352664058632824631122678531436767111179905997278745986211687015613208055117442663003888256921081020226217552894560250634705148892781009844003095104266295723343024330242468284622955969308488431448989605704255531096164331711700322001332533431409809252651825910514079357030173447293689183574497768811902463666668414055944914235599592962390493610642218404588597353242338573871730310218676153238994257843404191457130299582578546903284801657369414974226681234224094114321278833772076613328239178623236730762031105425200203810420171900025950224818050351838287475957549040023367288839406819740276101010419246331238133141846078792906307357707254764606149546507632467843335189257809553561077655995786274311501855611170155417643394096450387461344979481864753674361080300099387389987319669206625581258833020619698626250665401247078521085130702035415514189227454619371060641058740379853698771136535098251461706037666461109493792400829957555284032986416422048689233632902293941743468946308537603005131973592792745596474308083766978623749416970223710758515185061616192788108495913433030010006621311475187183505891755559602154955873655432752094690449291871220883519056694174951198513870960432428067534119597160434837028808644392377229988751182168422377061997593359297844642700878374199812278758480764198237796013399339637185227007675136528652169502078707425744143081718251081207184754232895765606740189461749052561635756217768991840137912115631743607683299306479595234785446837149072450083638794209554040161744282722215807389512716843026889043819756724244750435778648842946070393663628503570912090136887382827148303974591957883317085845265445013441440852963222126634341322188847270341209744463515251532725766673094549255783223891328640952613151623675110366755420858468174067589199270403457515502699350827427998315331944818853747062034600388087746584351279953902819747641021477610653521799874088449317930565227629705678812835007188117719963085043395492723634500874272211678465556766708818511365878822107353351407359229811685732361939744573904727259120397838788665601318433630934944910312195008827268759290378657008486664660846027121805841391730605157771993082775770615296380166352287292228965355900605192377605895283823316687918167575296629446691800240049554380757199800100839371610761314131277726797318321961484822185656295366282315863820199659737691368869671284674996537350583369467503759675120972989082183225216259888446699812970845608918189905728087207025375401470823678633607154707190694255118737252299198682440905225972787298673088843680283083720416037232186479072842198402238358720136780622928674400934692948976961597514958246084687864837609733632160846323576299973639118324673466352310392530990458452191774445034831672944049863279550358681986091926543293992776216024342109311065645758608793785946639306777321401566271959464765196389844259521807331160019438440365727099098510754839115655795287587100415538525551170481561576527182283806015949271744061090283676417784642023385403715626675810606583753415628449980101011623167984050951614816319334098272952954188467770073117687397434470790215045293889930988484181095804923598617493425177644634580585169764691965573175209073599028104327555087206697221906460414696388874183963143751030082018578786384183076728728335694561164672368172038851119304237167377086431593512500290594716147414863296839261261707861739119650068578347374847412656442434491786369750367952560327872199778132405496237706631736537776023791894026103615270631923978285319842951629177344386286801319176303041145070351277374680990713037852776628219387568021750862852694354877503639018280202982030669314237318297449867279509511414986968566079748280405627146663503890933754243811629712274174430888053324457278341916699599420072477788417352713364480528048855034092407640034317043978822453476134376124617317784252187461808742920499900021256970197117247112352942680019515521920857939251677192418775060863167508783941155923510457793738306605760980270782239807506849745233807792234452332934376104160676300831711731734588742370965794752324424095434637910247924977361752921731645203830508799097245131989987168767525603249181972138130212823492934612911823609650931798445210026547003971825610764313941523994210905490819757463479572778614909834021445164429324981581861225011265497098474407828012091695114497594048294324014139334890594238646930715017953741227303503345220410128318223799981472923679876789283097680343251534338078836702776437234713061598898682280451507362466163835232665137338915295773941714981821915225956226546594643496338728004585069302473977131966349748607969568821796681116241949748584609013484700055514950641720560031841236705500753865665371205246066431317970327738262269792831238701271440775890237774814906868792905138143366167456307629861799939898106404425988355550027735003725911995228035140612640616152870412655335783182546865618509845153702530074990753831108751634429756202452967262237939533635493749968041135901746471720721537517136253112935382545836400750196690534665551229636773015121121360699884849486869096216767183863678354349471495885277262862076746610247400664547350963758631633006870550810470765507631706607244545457197135083631141444458079542197731295354286370166249645844540700382335692835382372715907065905145067918682638133269277837445709981516480264890558010331969422133447710428980381240476350135224266512562990067251132328841995483576807800486484887808204267310145367935495980259194836355732878564158076226239160704291515736567409719598625446721148186125713283762968689545591469147426402237422250086436764737167537306192959371101828216984851234147224726242762127752281465094655934997424045589281637473126961298350714507440827553107281108419801378566441051931369950199752969757391042917874477673498796172817149705602797802667210694527028884110015796035650378745272139996654046323038942818998607716982728563032599307048694420143645597552048213123942248922911945768067312682556782314939258396253890436045311335538869953589386956597393258398348488614532781895918476017763881921092265969619447461828727774163955618767102758736946782178908238515689792298715990810542395439020621496860000703035282589078714916726518069086859074174650576534461806205093434176227988802620094069148813847189495330551872468356669907948819519179061785527487394092916146976172611284748792805788866250322785715770270822585711071799399788819938827577909659202495394797774100888342634652707594800002002739169470676246041237532256652107751846536735324140138456349147250467759030977862020441188955354803988083132524502317465221218623534350558737765079409347615368396399797272919573976332718721890046508889382329903483109495059856597209448463327403502806884547380809192545905773651583713420977028946767979854098723683656444798633372567894875087266928110190727631174938012082382348368615660638559349869921129417283480167061208648980168182141953778059025400413744484027486684405767593388505960667136456779796377208116992315308336829594677491256975521295794611778295894622297381854824430504582332734613985539174128260394780851639923322574651107658533569862501208505751576123812620037105709846659502199212163751456945708181922169759408651189315228279402615672652464820611656157505153765861999879314677212054530352894232481091026734183714498131121936383466167429348850359679067797494726310601270390129377975883158123231573267901391565653425969943204128206053833967830751713511456265451815014696793281068726855111994595043545586926617439359389603000850311790524464556842206910777114383085653389670592860708124712726613410076034718961556508540385953157873815212211556286904944534653564443835773707457040760510191456574486563806406168833241950010639398498001162769094634856087370348813995441825834992865059063855158422601444576543969145375888698886633211181371140148940798998613118477263543035006869796231498958746360108486785744722594221203046350746195567963433721817228552838870192392731967503875480585410942539933843746199650570868109669186905539509822719448536093151640512516472435241280415375363172817453476093322052823277764820450750453342583755993127506330169410550678746856001810525974452023977854271692057412632983294861053515130002477273800817343148506039046260354883949998119400078637345020607561357421601009579786687697258243660072974225595837721280675313153380813196218378666980569080113930414974601905893337573069446876147070378963828338198077282229691871086374653119857343359823501934135076255097166994340899148446093180486458610338358981738798620616626929033210962769243848541752013686503323392231511451752740197491620043458415946081237009902206063939705563948722095206983904826261825251614152372384745347711157844698376362456243625675777360591372483636632214453541072489650088072893287098915138554884544596381471591074492889932847250310768561654129056700658106044106202465055813164631915250011954640605980961189681418099130142306429797355875876382874041778923833505242854512421022039685091057298415915327151869654064179767919948782597363607311682061263942092288519529925401881486904823322167145059880924806789554213580755759457737899680461449211377429157737783519372820442512941924709376987878319912234198303696607655846863931297698126208032595708231995375379219639284200083318645149709056434591653958306277336344920172598928168522524940128543747372954906292406520347673926521336098373975031897807152623637988765027125451630034434999792505058778470079017699207064069246026302633728445580892879886108509870549131960664335172191689178168072478267941930046080211227093607092423292185068449149962880813008515521950264342328452967926688788514972339926413646070840719953743847053010218629518681057115645017628994998986455424041266833065889585504234184816170329269087904696674561561367519575476391863044038804291808253114604874241531649867141724573859247927253947938483702528565732399754430970189720239286732968025499831472678298855378042812479946650631751416642157244562741251834055600738469150065711730592128263743421582351795666069592389983820628087087674595661524568085258157811988020846307970469005855408269233112967326362030413730802611152853198924530896155534807209649144983980202444475279545251657678587933628686420341574315420659232889504413173079099898971907945685546187378240182239353480176647831993344012166466286169840870052824805361235412879053174691698774037527966112181825038392314294223264588332425361914548283822749599240931949241767762850051677063285341502160864842299040092530052199570067900390580563950478876427780483546996136371615515197327235660685048069285024688166816027220031211898568763286982691721152664460083081114837311393525470717172954596561040954893116349291912983725533684980847092751506304690913737386636914112380706552216514088115437820526234901355400217444215926578585283054915995163305840064207339595091966423511183306774403746854229964135476196044823910576448769361370703431807656884451049318974664100316413768270003681275365097775476851965661608095710693331060047634674679014580694698810478589219094096277515762767259458781508718057224147814030370358084448479205593742722485096404136267184476866484160584769879000549288351922765546988188599446593541061485714587348102375368662352509069444829081263802921339703049357792580371471734472551128273124070341298006470461915203405100268278538556815195255611923631749767980544270507158577943722867241915084386489129837438471860172477995005496396079082217652768006785814150219026384659273509637007458751734979217886922209602475589908017704584165442915136185959444261162509754183631670023884708583209382200570034697939857572417246952825336590926767206456023265812426154122675661464661565277406629457178371627413915927815346817036617978482539813558286898689298717225385985419974981287931594016425537973420158798095655964417724534653155950305239451154851228833407229360988453071374890405912366487252534225534049936118757573385921741496503225895596569886935743985465674482218573551406298348293001499748538893599943145854287990698156997427068871897134983857988786336626384004878638569722511808891539595760599849369923330187033194060663482175220823407651687782394749828829331429412819392871791556580351073403835350284455562430582577425031710159639991045362570524220694415990313920118268064792200238130949921884671742397649923801549236079322248939398405224052952073728904724242552664851183385249138159158229037753749530694647957262856427873449574429532700000832994949215620952767067719037189876191893599267174896546571190599392896564863358616837203247005160136843643766505900078798429076030128855964522322326262201787179239891567730514910899910071241091089202126147351426993921648689432739496349396898770953381042281685705647924588977645827368066042753577612050408912274909235281192051719333164270347739315905239299922207980981435015334123101057991131519532112544731630565833167737974228874569830772775290709865222010592996695713672811969982207828916219692654858541172222902065231127403706163640223322572604297175644860663714939092431109750126052340805675426654874108481427285542595704334549505751619397523398991284595298393327919231983350472455204689378507200374326347040081150463862171585623766914390507515836782853095515621023014092826854439827500634866143902233158444424112349850919038706112111950275266964391095158250453281000547216070726231675750312753749286997042032821780040008276978351148156454695717489216873355868424529539261426113402752172549129607650595000700221137078426905314642294065585879314689407420649864311432908582288028837159068108711283997614821728869116450681004197134231302359632293801936246918272034492684158952501387208907382215901931081135127415825549982413398596653807892747656566717789893496598007380181279547236460754956614927446854001639432615101318876659219885694281376772125615737874273357245788950200873274641469680641524394922278741118103343934379541143052478120968827877156300048749305686756192379818047963247769592118035758842914123802546569592982611292952989070885436249158447158406313714327599518824011684133904794053964556395585219413009024962118900616156243912978419640616366272714358900312847303701810149267853804134731866108560534498790951286007376472344521146458075320811447569049509861512421072691179338991612261902724114702216873247514305640762302741590883045287719713360964795607493202909550633356238509319325192625256227114153571033300646167461049624959108241315896659955478517809116837421601095150761672795631250924632721292866592443258690854106297366023942665804185234782748016256465538749112871023454382232659362762530235518847773966407700495789842853446360662247788177426917499217599463986921194957476422041006353701367754906180235257749729066416656648386131167121893217911669941751167593661596625347653348817377441368218155895600821392918756069752456061427910726642086308199002837563195179006431709393593774659133533010141189523822942904593998785906390761390044033743314176784582427472265648252260557635789933848874736206351204840528464420970758036449792363152998989696651089350051802900447441854228424633518563101039763725401877638024391892751214726417292883031936995524581007972346977466303188956886867962578443225574338105320222154438625143374564300026552874123687324093107272206170344909518793497476431820265893601313080919795208798957295460602917394936477472338131812540978840087893546134432735094992709411174188625725906057576544168006465264604777299058301770366921450721550328433068286347563810356220416203724570587495051922690485211210163107350410952635910040066932577624212659883770697710103970758648584624109509511622319750454476199283945401915922979330167284454547410437761767986695733373702375236716641310404374400035143432257062357508949394181751438854752149813348094088707250689282310044750620583198850235650686412218009732092488151715125236651785847465180594378048162876577548783736815996573491257704256266999797319105259664087070215024903710425286874667873354181652821525250870111159156942830122161946272086120558978753980719194312025680110427240400297249278320553910775991196312992570671126118654227066724196523571391414514778662732122426944565296563029336914498349596586746903007224084461739480704872412006309303673646175425875201022380104451123017645784315191181062140787514842711128041381929116055960855999279044447365735022981813448424482650753645728855756288161471378321546542691293213496016563284750405860566743438047970201926967896076949477451816556265296855585809880686656277250040201622377804637998298192408942363732205813895885660592995822970394536857493586730072885576645828107203948580550188024282862074106476002291863986429124737340249496855535040060935797381451135395612356255962256233371382365948544172984723135233993697012246949370960975553657003383061532946434472016868920918142442576750536058670027913304741888796255683901126542362926741679664872757628848256305730343662002378136591390436100465374923586348693877014651694163643074778526901483610130502131142325227087143077076933771948604488092065510365214094379488556424667766694449933841956380169960227432551008794946645282295715802678615385411336047472801302660206951751494229740740940736143786734024278013293426774468573460021574345688371612388630135931082256748798669822213574873065403679659843398042455872640718199017303817245672644266018211595711596850275621408386779423169309393589424056544908402328693613370375598820573282749516459820950230011294036599618210818850469760504027182327599327587136157601216266713993229338869813529419869774139906725989424842249366920677368199785814833426839755176046791345191432993428594688184267438675849674100804814803684192218303853269344339298602812499965910505291661722089815848033158826786885320045387564192071991272898800573450174019924285779740624390708143828736250355218984340810684552207165293584011055067990828426682135489662236100771669201655380371445770228567188843543455574962018792011222086430983867027618563584274896799572866035548438021905669296134930050885128605849743058514508282635846325309711521180608971636570346601118873282771400547204517732782403025378723296971815446095779122921170348640513227506265229813668519342718340818356044631002428262814802105322624885311274524152797455172320527195670738468998288456985524373542307022863104252380826390377595721186114942539317059839223105721719944016726156479775802120364897098898523286022615319162274254278604336411011450625268199343749129734675675948934685194307712452644615106872078667284045792768811532139868005164430985838496526569192024084649576897791178076245439304118448952036236171843699451811615224599446917472002432747569286229770656568529203814326062456629375381067469723151771006318417663886075275385113120443269597727132112009445629979644484105024743513347708967105623748196240205314968805770584558640144399831823597024941190284130132402227186833399125903995963583205687479948998221221191749153714578184644626484228582171453508699487214445547600662992183783559070276855178042785807375574139756673380378993706870118146636887791671397510655961417723956984082697902644290707530891713553185237101758324184072923320004065395449083007806496797183130563236968195317419152095528691888477890762436629380645540783916068705188143885010476744243358422261227239214317193902914278486683421845672900724885261954768901293167014755820078621570680088261266367958815425113044476289819507691674108124279429271873044285404708754399355244888226491724631903379874673089793055880824357733816829424545516146790145154855633021685371745087929988306712039947248666261020653418518555896001320397658086793498778036464800573592466567513794295600846458879548518213814115230913910356968476433222058206154267345398519471121891935463061355107762053130293505216976721532526530126785310900151563172529917326058234837776964937697847248451206963745214697914877380167853953503356203539489104570830061783550846589835499547595288883800221860632073093030394305486103561150888640596118509437171142212387934999006854635164032571857687172184975357300939554893006853768349978531501122522677864647406426595766799969135056508548073573544473781973802100591835964632282288673533465656383951281665022113025912497363548650874114195426287327718345876784507351831704330966550028169770079826708971848997402538440515977323760476176316161442200711789968746586607926696628674682555947796765592763372123693788076040574732414910779456459007318683718764762574409479053426314212222728039300917144962681365330463860097914740661915628143550014644723855005178263715950859665106911663878907882204938205345093052911968034850083892937858444901772604580458335358860784632256290297584929930220356188774350174888523006976077667574181154679127043967557392257878791967164788695545311000355285718705374331116070792493199983904921845300986079950728335518661982646436358502628297958189674521808792385678702043301601271048022289103582849656470009714077776923190259784676428575826791765070146362771987380051174145820564794272008603548654118435499333219626303917841880297494063537407106686694405653497296636708396691179959324593057120139693172185920894735812091061079307809826553548722844463831461163678459661783418079633093997908815938976562976917121974922863848039110259402631725175414719480003259904063651835466350698587596409052810715083531312835616977434515275035095969779832030352731822462185458283689934905620296208266072717848679249457431282058243959102458180068022299359813726911836885082474738173540934043816576641752421097421675659271106355021141129569191490882847867334659984341760382541713393311331109299425992066004623482616448504557690307088838602893578760679524504103961293828386952062285513090037580607097734455295792862335012399767163058818386977068943151562233065235549863864082056659902895827443957142293538343471126083246837855476355230646943469264830727903049688739993405160563707334010178708190360899075940589154543338613626541095510569411828696039758431589297284803825617136568256319545236998780644894261329222769521654505469918681498955720824008767232164933876718100999679144395629916811203475543504773866169121769816196031010671950372738214582045159640729771352934048230123569229485768461871634763393084944893036510563804336749384354164546229869215588558281364183002483458178837129951516264378538514600874206112742197854095470624576847115169984448417486395359510133684491748449263662949662086584427294549894864407774852255599667580515074994069151074615921139822302684153853737676055895581023707202136035475612074736367840130407028179754332446978183171283275581241901750920672385638542132379341090094563117939034096148925912989480127512430828966298804037551580383406716202548251002728748121114771796114133844217176211219591302987892941676050342203044578236106015908495399022820031366408035529276737058618540971693861507043710514029230926325839233058792599913519873855626789497241700885517785536410898967474814234458571425372667231385003380810158209794373347708413235459871500445602847171895469443945744084204753089576131678174985269328150517749898139043683245225062623850532175855162301002372558713943094238873230660093579764603840647907645013868215442419128180349440904099160310811781757596255780393480788431283547784405149040970404031545151583218108498216197042992015845918410571011439277481693383666614046637923831306098978774057268977671534135177271260471642591484136402535643760623489065166030797476439806075905185724082480996514699519073859368190645062459353399665767342518683700714178162077244677757132452834129808368743711679560269799736696981690942216365192047295892947035631409990476192772946594504446742008371300123586300783840131998903418723600536593217026616693780686268067729898709425828606797683280591692082657078600639762964706449486478631631984879355800283717359433577786110769845070198842709369886750247702502968023341083784049407065950703315500397049442147479790441081332246832645559822492619799689653023560208115721943993707138541902077239525616658620570269277176375862859045506458885833281464134944203988658874803995743782973801823005117909591296826535547622786116747610045883424461160351734629200029348824205271973769046932987500474542890715782939674068912282850396454820266452158824367613998233575847942873823033684201343474644821529974080245974704885510596053058272752320593021125045008396246234557085266901912319692633400546650099122901019290632182218691098928573463548213607794189028585377043433363434795678621051820663511608555916528605542942847544478101893380535427786985766597556726614579077538723789289149459828769073657200930638049833392500994221150676528718819040196269383658141803638322515702557689982905002048442773180156029093282082649964229952342431749749809075451202396072147000782699427495182739311487345206496658412975857640939842113756523272213931488749986065042878148964639607740708174904138664325389878282480621543842671897351517792491776945071059546781265506585649209976413568244825022964486985019694806600259663098675079662076770404530770179159572112666892484537459443358295341235165307653506405708166346730450964224588348316309590500847126946888944715261101708517654587837548439130624068721470417798120945933021306055465924482003663552791583868924205566374886267765754013898919661261150272702088869962723592887070324626362384989605224297524212448085902742185905199000075473005706043573369607381170202236688195399598193582569620466388717637243591971759798860995382149000276289317709555115048032259647971921163333467461514624013470163839413607790044735794374198409824017606832232015170288437607486835534527279122066405106961127458747830148609616751308014302280633428818552759938937473277999691190188794268524572616652377925372273832200734700109532397874338971802728849542484331111275867532045236724164469802750001880511014516722991062627039246160596952848971276763658117617946962036156729559761559871744470403517066286155090653630708629179935382844082346522558914131301476680978541125488107025365346832235883545875737267562070484341390355744343705250651656703328806462583902320559251894194435339718909820850214958636141451381405316173026543662047445963332226938050027029448540926129163629333781718633602593411515942924798607186685009540478466165521229335743702734938989614985473509350148151919465843259478177524206824566578478598413817954052397611395807307726068259994625971064456851729243817587174538181757144007127980191600360313024574336437100725876050195295316325929049540298885193215210292288350409359863373194120559381089956530840013754717987258216902713185742871643162586297291424020418403410527632816165217950184025847763493324253727942269396460271154512402251369025248029190167686864490260057331022291368439037353624723225460878540261608092128547763473608524180909845735951736327005246506892496263533493754454105216992996396777539028143517766720896115282025511245302765240959692327485249050641166168763827252194789256297270430027600293521921330833094961496871009812120136291532127997107566956801833741166258987245590007618957692577775773337423141944333374945496085768717813618442193014547781223453707731581942276313055037050308349123080258151067517322294089633624611973159256374924240470072084593229328705812178054569026829025717397263165864108349782217708282792526177817965811619612794011527925484305343145841367170585888305377106645599073436714567545452666235071042615189274602156890894275201838604890239060782540207496303935144425090045442663092083134303255282339746419146845257087223867748157793140368547147069316448024162197093399742510224344245652228503255955637838149977036291497448082930952000171075693647312591325104479666603494880393678635155968526382858564940528821057935333599015188195431835091350326149638428150323617775692772795265158432120080051543477634647088047903224235216056077076975266893364400720717759923725163886532304899111667157650036771878926815987210770124222205789699523849130799336156403661870554817110486574545699735732050029621926246172205092087975521766636127590949812655514809997788459565017143185319702123677437427614459513472913199869593325806658741464315537406227312799776077638234389842116031382959684461917649436053105333252454835378705789326504270913066126004075437494112462988808014675501980410986012701046594600240501826103003932053967768919214544585688895729853608469370847366351111141799463652034283337118762475915763870770410331465688355466429540093651362202256226895601696194779543701461980566746963125419151344401726646189515552921215661052427660547739638236438383860479223091848009235400186262048847116855646355869828908039213863520522241155722140876019291514105649431915373193586072939680463366739617163301463027195256042579708808875891220619862019223578159030599045753001985997379758895016535417471519747971821017472898868427691316864240247331348267262474923176911539535723909345009442693394759336529333351547896707535642151346089657122908251591620400532088970579409338046565563089632265647118544229343924414895839316231416337960207499788726448220848726255137914552443656959378679695036484979937888835521449056058552176854134834345151655351494316904485704343518430022916483865064682225253114923299736369703957663223268463340286026519612113138015607434588147014697795438416273000583828869748173435933904984577963713392443288726492112651088573327982232660941833872127538722488055629768658364057316489544277432918438809141429953132390234420754261149075162803847810227465623599838365325912012848577117470662634169419311894340351756854417109141515412823933540960855508393063769429212694534836100220518571726647968572095298711146331580146751949855903435166961351891153270929850101953383010070300684276522648048073808549251995692351136730188553617806083811264499986270495805358399085474363067939639851469230927786270041232734481299273186792126462935428278226070827453188919745720218040996888553765755900970286742783490908430900569927016443578434211832355029537455160434472044583229758487959637551338907559683983134168980362422514380648548971647038441228331776199918305469194721820845662057903416886026768116583314819720497396044622120944274985706796189789779698476658899176042349075867015323142035938221734509269590428123815117278861199550809323035585844017758147929871830525322330524451393035899110953060618826152985466516059190751371907784695745854112844499673601016652035133968925348788193517347465820727024215373421269391452265708635844037225876039201004452765873691979872791803179310614205017756512507180074186236291318772517499090738223892320476396169121782213601604366548271690162628761251882733910957410648796330122301082036252255831254082801227744736215802229853658426967221912579689779654773821806606931463861724059357002768085458620980534973154698130761540780439284688188163939550439577972285224219263913339456609755181875375026462409997045091161237671346134533023793268610882306717324767108865251306557351300601131702824306435064241203932890194228902201503528280813248543584055997513254670885615420592159091584405977676859557849471185560908048540688729522993059167376763506997131085080353853356817250461924217728776094753358118577769317236034627940798704350503410419063871081317540409060249671743872402203200052946415245973050309413069685340305834672264041803930650147976576995155526695793743666998478064766926855453995357000679175974126600213709608336285082434464552179581656859175416246210417869852153502475608606547370066654394203939505434858299059444152974005493461159542681853345135167634744832555716072252855960747319716832227410769870732697532418014998028135850001673945083447948343049025188066723157453336013029530146342462350853871962096532950984203961844249016770253184868544087226420119416902557126362524011102817825643149508548821552748807654458796161800808091969274491125508663557018964632467523586134805978298244761894318077228296964716451005255959543898604002028675061870676783473477516722783262521545034619151869664206153202193205360208547691141050347463342943565866319755004210121162089139902847377539831090400852102829432846425068494079057562954646766301364330590836296984413857813104106943398290962882794636072964501478676689547492948254871204288277578388118476667918758221376585858257983028175425981991786624339305686686549806551759216409598668232113292748815245149183834127047157748946686304577157032928464800912097308042067095949027685527674764595346263708806736920592464975120492620900502887503044581955500018205268262656024001395346941541905003579835496394995161513545825070821489549589520438724332056821418198179153395993295756189339481202784899356904763096593428324117810866098885042036300882947990660504781891426039012867835660006736710579897228117078689758108893272543211062462661963862987909611877036134937896749182018454630088413820963577090234080247558230101417856313221516994312823998363084618568560982236352327788230844568483793181292274630300225132227157764598143898192346585967140236114135214778144922131759017807680246288027318471701094613498394887197387000320842253347389305299780186553127837088295221097638095369645936471905573509833046681811524011043652070307314858917028706034534007564101296086560339743710807860477288017873026233410034075217386601107381007636450395506629784049307257286628308006803219680476874926294082271339660938322156707625414009348168495080058967748569199383258304011364097665122630458627818355582663502211008880941998125408469309638875035292117559187626787900836630278361354300616191163700975310352937713648867012427178370149650893410402961089751178781186140892978524991237991949693382781739973041874340667725362572374668625349792446153064663603786503172211953807683002319300953947549732601264773719721561273848575138411127491294059222958176268344412905832701444555115973652457880310281768128658484329356242521039498950767927410167894905214917770496754781457712877494710123787873312249937777312176485537955573023015080152828900184413048003417956862665884146818551597142062108167013165220088811831359251260942345501727801829123858939645890197032428512950562565415510157038954921307081203755086552916635828822234831802689093599600477015142566609828438857157691420486851704520258495019379138215959016089742538090352589592455384965115502261360217560227943857833254631048828133911351585909024222483276729849276578507532305081355584568297153702537130487865532480526047212773677063070674280264000015248249599635462077811905219283756104611603203183736264045034183108302704745046018094007608074806585702593879299113730745867287037543695246427272765271321502957929066968674175085445705185163439224330249742967953139751396067214043039773318825249741441049220358204906971106524967157000718102034885323856511844963749551595176176385053437851526394386225968130389555900583117395722212863219265877888353373538267811345045083512761375301912164636142786748314948446540748297575990525531848748635219858561952289785002488571690427019079484295464733901846260163072183702144653089585616033741831886659603356906039549017435543292828356437375615565661712368873329294991223320426080128752626456318452083517963653940368239180640480106467013054322275912063972785982553118723827193851390172705913599936963517459112636026905206800473256076879994774564357612770973288869320685556290085529277884557355269696133498579543516545182915365522965005047469731085993331365550899464990262811020475597290997932735063161377042564987798036421416385867159176528459093001883616816738817581158684871181679125268707351319211265435952117886314241053392431465630652192351978311330631382198225187032448288439657723450915241869271970409483718475776089981826487383764086320249132999565328641806709772093010277187941349469739455604807699944162880207198847597210306964159317246557632834727493794007543911407919140400548847916113319980445121760524344724821377869291677503944166266693267943574304103110546656198275512249377109295034671415385522631305183476752050790130722835039417721407475684406010993146207696737300500886582704072486489887874565453520914782561155995500494911881093050257058636377920212089743946788922188704742647646567030380461988873338365512510227142496344036076675689888536024296052487925054150229507208267454286092736701000735892540784359556833358244981187093423901103267254399638065825806133765471988539653814177348600559647891684703178797280604648522675112837393109260554919366092051998987302363619284019892233793789056329651102284395186152570486359652461160455459226971784174567652723873942840357727351255415268569264980005136309331563944574069721352990969987023553389382059050078849488451049169859203794473140398769065682490644219230892133089014750922483917136530396419841355625762562400090795141686427046770274711135910189773751082490319866715399777946165898078809977679290471371826532855781479696765434075936652696977108397953523944497424815154578007995665843105424060415321905738602141847565931622116988377335341372637002713074920560363704228918384314773260631004861133289796830341035720122191758626172896071414144153926140086589313591112031358658478174943910284000009523798426998189223188681725933981802769291031114108931384870884501137473501383763936320086831018695282314396997095029007008130399872092121433322094048382417824099327973816686115784247401403604501061607487629067106523071699886921973105819620083871505439281559459940749538215810232373543446026314973962061688801020009489318513941857543887428127739151629941214658098319939812440675459863622094744402961808401429003700625667055197211991571276467361368263909729751487552291136698805030793608707438555404631028686135692763421621222593069512653078199523241789754224967007703802750750550536200077109944623601389321375913556266622001709628124193591560317597586360810972605670088119284064277649835500167410635576017812942514028116698607337429188258366949185187072375660005390213314753326933258083677559817886903562971790820457507900141789093396984095267952951507568210946639476558282090343894244177464050141098683782856008697314728583970660261605628268092281326188397940196568740492038867823772640296471873066529944243093042610028001991353064329640421515898199552142459305679585422941201804137674475990784440934100591804880881192950147996969484779967231363680674294667608675601659196414171030177976646471977549250161824055829394520194530928685751370993508303798641658075463558654363400705519749322064576484387667262009583136577828719296413416879328164208602355854615659501830539476734559426157415628353986852425134595657246710306076470927078024939447875349669081827088426341178452200748242695430218566507207596566185242075055735773184389179727300090972508480930512748405509262113553900341278585758144983759444449826895663833727592801283091215131934330664782057831392087173824252339708510452217762573698293525744700204618088433409181937343821606716078506004687897227964460875680414398251751277995769226522650914468723325970698160052440059082313113664899596759819264153235918522980651871748586368246098197533838582660056670610426556287612734460313913532809714384891522586450850373948462169710683412567065165884835332531700321322673094178433145225257673303320848399450239667508281826074318339665165511922689409400867686615593732958404515013254895179201991728441452295535596943593752093114013387405523797840235708559067913465228025987682527642312515135146737370740535308962889568732993008814598400921067465175883877834001901700532038675759515923979454380993157562952512142268945570079317896900276947597785207372959991316831207877686058376531352717555297178682416378309608195879194207729019865257530601189263481411826581239282258272919392099615830995229813434695667106690807199668680479047263845434803274213574330216816023584193699107194817052026321370557752773732717113413044731870091153859028898780689355300819505181464203225906398462697368873707971558511298125747125895889042537661190727793918865533584720648859683285587540596346230147638867483654752733156344942926041801975121635010561697472083524096228520987044044196129094203945747430935805963662610464756707117210120497835528030054545441109252797142661660960065781073799105765490775778333431236051464713816396797758714353134645109607387219193750040906718596181359161100041964163566069985386872965963533081978341829257169172926561107841381865262561372007964435096958413154297082479743892177591401854487126620484326023706362228450757751355102515011761601686848055947281773819615755559533295090388745006617587903287201364159332126574706755987135202942535382454184154572601012522506452310086649355261531958189451109257652166232490341946343227709102471209949111433819938314877415145382147049979902367170215069194642969080372453523160588920380183424308175165989654884789983340378112632532541529753273835922079576666770899622735801723973016231331079186021825683123879834579045876940692535392525294813060938863109702649452270498286557968917194834528381048584151055136791311957934322131414993999710291354275190955238915252292503206285620668376158109997737579271714843569082981144138615323657696889822248309871167732150713915957805144975658333445192494852500553911260058203391446338621800585407172285700313505013068561589048029803267169128652408969837449011150829286738009808266561659403927079919949031021951586197822807083352102015165298882182599165778058716258087669577710933902805154517557126658630316992686258673134509177270174965439853863262612821423134937215365106761871865726367674809899027872109669618877911861611060345781247927808584320999503369479792038543542848332427102459936456771219658884258994108537831575024980664073546706593131293148771480132756298252783440022877421177903937733292920482594166149072257691065022923163617472269149813671217232113287561260962331169514472737363936742385700807269065109804354344878914856899880543622502116158703651672087527449305916137398941681191971327987970932552739405162580473140832466736089259413018218948334732411925217865332962642258488728225278180111047215125103649011339681485573684058290789894063944178047976660158891259129793452313112988357779458830682160084896900290809714526771605661657866127326795213550135986863242988389510457541667443051655663855992993151504360754164798656552903301037072985477528378887267631038555055855212543949120826094005265632382492919524348928502077589555438402122356736904293927005816946684705799461141383332893008752336822310500615105085154546470279605501957488371137840577880092369879691906893256745223462465890990284452489538177468941952868168178975015539049075867970437560892972248771980102452692905538765766873022163178759454202280295246656983928774280732268511940398955266932380423966670612500640431446367533174428706707992133285587176221320036484363775480282522992161061016128952418307043876714506056329096057302714854819030109619120050722030806708281703134566211672333603485761933016627925028441218555190934918881316692282184788189327613763226908719139701513002392448758217528943875912807283656983776712554962332259043325645532889026448213567084446655174632619722430732324165693351223766013760776862847238543136511959160190641200842855736726215621026120833790734381770569132819123253958798918902612486899700455307143847097525229877520359540715151961073227041901279049950349171452397465143694991923601713717123022806138881391258063944218628900721446660324107019699811145281426726666977113310776274024431880313876783068326534769638992655523925674010489447214745520428329230630766659838678884399362467220961555161980978933968871904037810453536126992744771507668222274729415008234614103733119745782315497480664471414708521202399988071082260547544613495367452994512218070615323764206399447910860635985448342307888460332184305602270537470312503288578165832268368751123067204043078294705727492290822313155532660031472913774108083393964252922624833701426477532539004356573273950493838597068644141156128646903475269541852003235109529521708836460516753726059881944679249466627772509275638504357632793879317563323049151228826361518671746810185480040880185573134514952741458992041729919677411662304945894158062199106357465052644462686827594426734181766166582021076119245068017099903466107321102314466931843368197289710383359947328999109754307327977727484967688090521236822319922949276837986272522488701858127855730018506389501407303496815601054439792299856208629466447159107657575848836904886203463253966106508983253120538075170391959179537480590036377058688917056683933631206839606221068118437824610766469431927705793782018596316745583398727876830593901470502910974008352195596326568881633128894580216580927204291948611228506019724140134887063203889093915205334845890580034359962396424002516832857636769502205233781372614027035327174276873516531876556775508569940245634808488429962898878475655656912758839883245797103788631181398279244897483587063460522274210302410502530707559472609281138482218473952722768744698698788713549153417105756560951106858773940190394832967680870966869197631382397842022937588591737525053498917263462295148208869462432622357214993734479631992732459367964039344084114957860316247911837396009091067735447149540276211519475809706459727667268380614483154507069087556301817453697646809464982084967072304741223122407357104081341571999808341834428841903892065959203319021629060662978473878118066897501053401684776905351488878226694368218987607637818260005213166235326868336803508550293387693986920360290239675385081517307253576414820148975555731956516446802465039563249442041599252177189613677670702457821284543428929010414850668882462854883899717235617541249505906113321358335085471349966235094482741939269431543241007238531685566764589781534236626698431522533393610466470051675528377304713399455109751310975383672444240694590476428160333492619711177261891818593107365453668514476085215894557300919982125635941892424291633559818079023894803131200818178732015656666603289858861732969398321030945970345276613381353002248869467381874651458786720261075858235019919303573391721975247072781640940242117844224834025845354682838722194284075463918105891160209440181689826465004982962082216180667308466754691126832789030626170169704080958271631919732556617033902367461824187061502163786201367515265458407122731602188946453359364538992486288680263780182283596507781637011271010584553384220556448262611627076487843328226781242851971014443844113623490727275395735434662422914834847044595185057528896497322319653839935944320205808577410273044640746849903691674494198281220297249255642341015701500821901793853569791901313056849993478737221918622250941049141487189804462978511190304452495473889727821390351728679200333753220154662324076035302985757121975759031696059579501620112231960432062813077878457767508862821396459861786905973591658219791408952172601093968054147979848690707154614821139361656488393057847328340000400128022599128117209226514924089855441005326557571538097619356137773135735932223062539458912894804295719403868513313135904870629453692844707511613036926421835307608051380736465869812598640946054514026421545116170862394972239756089146144252918928160106024743554222939174005180284114346587724760392774095471603556990268770588907224432348885858225934297091372194375444369736151274089675441039680653289830292891504985355442459505586662347663853795493946789667046719006346758459020721898243085606182228443940226381790916555941861677506990818600712428640065613741699850606327141054421341998633464004874846496896458738245670994634961013701697908759523481553462334348291027419998483898577447483120717295376188520852898412640875231731635637715455725252495805890210758740352521863604308930535210206970976520145825027846796370294111232834413682938822606683035624359805938323449616738421938245558593257356435255544683695542552054200035425789710244401815916492920947770371539585184638708152883669666811913529353074757484130380352158116875943504943849844251621666653538281341742290638162116168655196955813277966460150537756809910602272851407004998526562853993325814571317909610603182598215915210604684700514910933864671125630472820532944041611553083177681082247667345470460685593871604730743079092170966755297233822583720814780374796384160351251846047538721500284165323226780690840588976217567562979967337218693541512540410017851081600766252160278720937672007813794832663403815060358982158466006517171843615459095606410459820564173260915789214478294122014244751465369446125983495226689805230845311915121225143891881868909435739206710934437431505684918789672653621807676572246374613896205929448687352690317550473371385744621872704454654951892247136492735106956668868832373329656452187984991590622336227871170693758857917744604011569853379235775163869029546184107617830310214928263726930856736651909941630249697771644099879632715376513290773299957109608042655219592779802745673780219301109727610963626213721307000387869815633596882722513363287221655533752383793430919504580931064572764515081128324976582168752390835808251872506161437948788244922169726490679884342936604995268814968317516646139272230487915041846046466654954375564788931066953506043152622745319270387875322200465278820756150832336258339140985345798701384301010200346826468709903027807261683192441306921990705173402932137341276031829630334885377412672447647010828686110793921239167605463670518089720804490619003025099945315128587012372973469656274569479867192222780199413692903839263558265757826596772872065590018567061676576018217315258884061914727436937801463606359964841497621609781346748257492596574528537271528888034723389101618614361525065317386593873963903034818463295738233535429947033659829153417225857026455410642760584395231181489714791182786573876653032245212242734417739721145997110183753200817159536042194650467077595053544472353407655163590885051324315635436031521305943257078217948942149377632224060625822919777100529812515918056166490689900344510975338217804685518205465986594730038119432502864363312001496744133662631038372297447856502730713798327469650367080037576613059360663177264066148875705641120740304113560992886411863206286893151719551173002642794830187046001017951595434408481737576540877227036190684989811445125633730475827328878915503041988675196026113981165672455828294942722765513142607530901830908851791781306324541307355577509205691641496645852057004221142229067348439781213701466020977712487248513800110765761296324640495814277087262083848460741737913499633131716918945692853843931023327629446138817664634454892489691478003144886859160926127307022065958910940539532294738457995173716952597455667644972661531047781777885067129707551291088186103701833536886272763438301726523835976306224070300134411772886535752005363179647702404593884795281238940856137735773122816640614232701525804699572233831994105273538250876447549988997934198863934243396561002846297475657515878843021068896015753468043120746775000205570953607260114913433489143199884593278942480770759140797841947617866590762479790362636050760557799641415736744165360070759181545210821289960799730304105634717742606486298289417189064580625232577320251603649428665320904732373509858597782687312236795979924454139138770232726487433203918377927090982768345884215299637032990403011608731877189754183521633083120559979439647416159370756456993128640329148222977492990448793146910612837752011276097554743625052502117423499091121631023414372477283832961015877040352662215931181606612666166491710462962736599042513424718367295764138694063317158582929176183472606655952970932302951795719067588548772652186803929224315184858467086590174110372947400145777400173661134296524426259195054809475570171193196176209050486284011482515230810499417037954013293350585989416368664841919899385632905127834582066074244788014308427631383312506662468747426701363493868496909726818307326112988654243925018558975981827388167781594336006621958614491821511581277039025310648268894304651683783688141115020694637454569291128151316815723606685686884647028343535867086966900160126733838613163591691351064618539380567044331093556239379685726241204231246721085146071563645657648793044821650174114828947356095866244015925825416810005553739160784049502951490723058049750728896613271246232330384723548560927097971368787182881014614182735051950035712685956671072042105959726015039893189697430001686836279146310146928014163200586931638230380017064385896877878015543064683731069147029965849403973639337857963260455122459823863900187341910760310436224732651145046291584728989321659694087178670027654423362500454663967205036727481136282527780845782495479211051343808380125261105214730926722512410488844517616215372190548583364123759318364821585805199894213532641079541697621393187871807848488688682310301436681713319188151326388372085090754735700426485043099508022968509353409687400605954705684726117212276378895012208277190208713001457621325564898632456795122678522620606977038306170544837143714874005963647023561533006209527507596037303889749303523030258397342239146233324673521498933074468770321098864652402865740610685103343650173950984120657063860677607807880972109055153329319346354826301068466976184051997639208873440620795103070434401629817302103172496097321255585663317674874673409262188843939990035465421088794702154633813736171867921088742519102603737214226517311777389349363387464592477765799537878849748775039931144533016293211495440828323383380304540931796399935635494445686041117645103677155477773602465974139373435808801810454495084394531354594642933094008152716461422005771827966347835979066420324508288102841526166886325627362264496745133062035316252913861969645358983072265118954869279415925773138805439654883746680827649663437974973540254906336850612286200425620498735803321182406431306598020147897527233159938610562372823604745029092521192592275784824088490512878821257133972989154447283784196946637427123352930608225423715445866325877952122196215877458365341859999315361571961432975428177027139945428508984554624559232391869062825373885113130845786253175362407174403993958340221385234484883227148937639403444578030611135501807657982136618512158179430833754849107586223151464606245699703389316737918628089411093776155306296816718725875599028876500359839495487502391875473471094971258139263029065485428976538995290960140610988482608094250911693090808786950885392686934438885333951146865113337375206590103274190692767614667221657257529929461807648504501491163794114908900613330447515408313002499174905326766074426219200752136034693159066771696772958535935379573187312130993036196111492588399118975615644242474266286099277745128531936003545375682893810851168684273119271661185854694159517574698838321841263507726338453338638282319271146206337982884450073818851891349712447276800306317252962660785170517637040456942062040125340613087996744365638176351687444188516368806210253361462488205880428641684136942382775004209056961348730815756352504893813370386014936342261483798526742881956544990554191229465533219798943417156431799256059699537746447556631980808257273907240310671235034505369631489226512969658765791071314115182503019140209699015960712077863468799295306431001723457441819164311358435800451805611947491623562071405465546161112564421262623922820569170399775041444133794093413281041881184535775896441407234400999602071345399359711191825762621441939328270115603597829650654822300315413944854354958496822724876449789785512147037773931811728316559495835331454611693605187351060644505176278399360041571919123105360692436734541933295337749416041707380354700964220449814658223925880550503272269690763334275943202552078829124526401508473554377477014069520024988018147430630824803648833011231405758141744812567510079925038717882870423422676114394377157673296216040777242427910392531553092059441900960616487085205731410444827078946371430068966891517714847346652218288632405205111798205285055032448918946530094064749726773692722393867721678789111146080218789698299064975970011509093752175252301143577284830987758051282522748815150285158843300427042008763002183364291806572856033411266207079387213813763735804768876831598780426668219455683921928134457198839787095488147635929035503852930222153437795010280679093142761335756025690732868365046317346765584456597091935004808213216698514825593053425481929096798212074882776809085733562412064438608884422337757069028906802413058214851371758464020059860478106988646348582040370900638967029082931425255759302051564676438703829651193920013389024522569193722082100337704924208220910494152490413790019740743879740526244175827170300826459967038977415945062603414478545985221862166966482966862262813565645726755894968012247878027831981713306300449897878569971888368171068696506491947078883003842864486768251594079929278954748216369366017303864922035785442777492565789741688483172169893143018574981379904793769958573913163318926900479250264199977537903507285235652689855291329715796016663216512711593004845331588941014446684402005190537110802850272871770611283199159102469301057828819763401884216307613117875464507150085226115276842025152284218906428139522108422337576471912419951837356643402991277477086107664735559507872715245797226767742809212675577675611858808055042938474650219118258742209315041797933303328620681056229099999931177875177565202922017589654652956272680578428781799352774275598586209559867236662157781783382248649901721891967512128019449378677467239817449847369209044848315595842475135281554395238644470009062003039745555459647314314874486187453714262612221810600130756187704247937772648093306162169547554055049048853924731443516954017728883713427961970751102895741584969228819528441589304522034973076378322838381122027209724540619757056493051641651775819807929015748563556675316062916980667298029359864436701899539905214481381498913087884464361034069566139907275761077167776172086203137451521229141440629775576224381993313661798375151680198058696102059522481875051512106603679313494399181178841136960244864523958891730808994572566144999292203955294592438786677860507779105631756161793525243823188141579844655360318223270955165744379855273879768641699750177548558681779091113678311889551631762089927511326786648151412073358567829410814034522784152979661263459643056210956513444367474598501677989575346161202344206745065476347590298610765335793452375344898632109502843821077903457182492059301837504292720820209954660281774676490896216805101989861842349941841772495914402072472937184913072427858866822026255439298300943806023989477235591748499433346396011039256982124959133139634337295029396244723953586420533860118821844942811064672876801035989650570046106238148853958513772455097240565214926777688976768652694356352302783575366912452981960660451322769407250508716700332448062288347555285044422573763211954711032353876282317526820546252852676329686255785289201614876638015671073232373038022146845605478445157775691382455777948448974141665802330301959542820795319027666462278047905059952028642222685851797180577472738905478377950156842315650638983287065225166505097396997530568604797579910404602285944981492892725515618276007831541077260158434320916632414575112966872763510320060825497843396557797345048928272157442680690586093332129217523541188449332821513417520520323890872896075903673893388950384359606665739967142800017075318753078965400810932721274390335616103610535800523958646266920156732535093440816961022421882025996946596255601272058718121233163755131755558114619413301760636152530484190493545221883657427911790020212661843858398660219678919070265651428017851251939059313127601986406612267792518916132109980175488693505735508215688381506154843092721502579302007063772185194821099777347843406679972301372159762748298001948692768663712145546874310473294527419655250109516993110624024832630604703541815260588858104365604602083113142363776757105116765207881913092864764519487516201109331746804579814980381195149936449823049394110759220538358853675363551743421368532405447257356208421131471292310806290406303557067265744954218229443074220350691446332474437503683695779437986438305163659877932441620472595088829360510756067332049097816111681309125021709010522657547633806629100542994590977907021973459233918752740124947051749457921200301414842365577822396968581132109102603447363813443285404538665405703620309741870331068570517978070730261402848923972297660009091288617869652279840511757390934491217311384728492826078544552096302945334940132831115746060327256167318398693497329292935827032696162457336388136126785536931427013168633154443041825376761538034272737185974931438409559073405542886465055443224322067008493594087324372440022321536086026948347047632366196934058653009824185625584552181329557359427432233947984137592914046836779971705691336237329180431709036848738450289575888324992637745761024221596598314067578846670142208618666988679854725123652143093421009312545731736488078710418277622665730104243234881244835742908623070866651379479326773936657209288096815655277255795442736669707235788761992573116509608785127737462601018423619846935585689849659085114046086378472485475468492900324054702992283074854472509155095775057162528224736082032044728201157767878743963347487446004598522056966397700612527213798901454968832961675120342338200425470075730869146309510398160215399288638694241070362381124985877815410832700573914844824732605575672493576657217429666274215375801339793412699271544159414124690436811413083063237919751173841439661104433664437275868491870518343628156075497257013011642541499938200989397024394002351832553881617364847261011877576141113218129056556075775274043339109631506252224046075224166364738060587123983728209284080853751710045777929502617048157943774531884134813027143207635687567817300596969077532160681656755874870121908748871797856309204979744446089912121347356678071360172658244485148547404448330065947556432079529828676480089759277334273248909750968902830649100222723982693748277654571295479488136420689621346794098284337452244057496017401764301183279127491588159640551819295216906486122271321588453670379357083239020896452890379248587918787714267655080801968788884548603914118844134223978870071974881128106917011611559241195751947612885618494522089257325388728407256224971821573766846540323761902101291778548397272648382256126862981844683742340058700221974674656095862358870039426708539236867094063552236050213925174847485766915591093131212994131250585288601415124593704354727411081000155529775311330140481327292549313308593964067190331683674879939616850347918944666904575708571089745061141527732203534700204066257021640259994876190822543256767308507737450201852144772011091639023399002218232998295745103924566593475910209430106379847454064181812217457457484175781736230763069391742861477659961781852418781492850019218418290672138129789497069738011477574553536289427391051685949776870561753246104870069284665590793660104025712127870106705966986436682005796205646545116952131023425943059886565395740424382163446591233843655874899127792547155015012147192170234252484737123228720859266011504611196089629304994673750858729508208677839969222236205199662581371838959284438927496562559741938167457361818471874767629208386477858654256358390410398279445283556139805117880130399570696293684750603710314317484317923311179113125039011635052212981785737163646247381981966070654914489554012028048040243068406781390006009093907716953600763256893864006875558770622022049821513879257213831966145605738009986605297193674906950891744697289821334914312391228094289800841651836921379235330099316421715481254627875975106851053711630504925565102953934144806394138900922696894314419622746401031563221096567023625456616074360998429825421505847650684619170846811794209612968047017512701946322016521941059935114526822481208246668169555203184055261583960470923736912322745816796432732293754562482264958610973860577901930245409520002315818944341448780924004240465756891264458426879390767959844866318677412898838063784913444400909096624365897233864817259384528318444152165480694037324343909617059302818430480944814369597869828227019175478486807360307705309147094151497395234491301057143422217622958511323517792309834997694944761995687073467028239675683556128273842644680656019906268955558766443831240945919597419620829999444766015494210965091247402161049753565521186254011904366433540260513991160164849932022753217178409484548372977890573150494537607956851894476700533416561864046983072959523703147327455399981829136532435457959085014566532873298193762162555256486157366902187070567964666410189272310461604660331340599395274698924655443072259841888435421633674875523268498380428483106058010373394935920402707480940365855919027107322377174458859751499180107916866141737442707350560919216606631223964323032230568326657600005393901423066591786380727207501714304150884512867527432466993140624643911858181507675080418493066346355522117103446272103288582526610496754957390329822824263647877093753747175156363628618422412060125533872155216871321313312292858522013353925769801090426416809384129232283555419388898530469814187619414031085976332103456561617715840809518102627507511821641863420694136931107756026580347537074182279115568984560404253410185839907602738024421882519081199441136604350118375940570031692534430894460915046129146376153398334471078023430574868106879395412641768319021321210139674914079599293147673400840368578448550936534940426862004660319879335906874258128643631589647570879545070616534861348250478796850957080601100931498132754433557254546857465149814275854315243396215087259887801432786344046012826999687451648472141299090548330709286993735665978636351260887611794743362787719548783159806207085846634879749338002447321626789760575769696309223568989998726764717969323295377149329724884202088292826579958881589780953798156493443052595949997582357146174895506675608787813748416675364507169971199573260843988839973240755618800984303871293085848610529200516188119074687001828136497775387179232862244550969877738281209922956215863402843957957563423186266812842147964518640915593443045500762604484503858626180220374315166101161520883659763636960198427673487928813113046356082529570310120198041783240643412615107452346621005548182528894769503113000577685822882356126876303776352435487206705179893185861772329862282344147697740472281188354354238230731982004050091775599649220196492245461607115584195124768241874674710064254776807106085578515354390192936023854873221179351916304867894746848184744368699524187175840689470528790325075577098143965071483773662064400732959664052922107741327593059252217718587235311369572108307397501277758350515047528065923727930132674526597070756421128170872088759937199327702747295090736426200186660166885125407662616288680602046895891454870582717540334591143817494255183886234294899490101665541786882243248530231596369675026320973078659315764417516849512345542198432082903968997872062323347475856529493702759938808988301308850943246077368114288401704855217161743549652332941962154121546315072886819425541805089375843430857941117038261074800277824575399866949262952605672840289127433266959205368316674396005962690707708416470459787101280934496921036247112633677167512584715719003026244998175261692992700231374544393151757761990140549962842498085329095515634985021244142687213604846213435004015624857831502536453008920372070290309559051957144099230454662899526519894518329944291482482691337199950191659898414385798603955785168054315041646314911786855804951403478468671910214357879907366013973181862249010018487344497834396723926238745733219130202168648701738554182846264283440798984378216087985915945782105855668674148698343911044572533544232920762874563686753980905090686379281143700767884402624572721395946823519235614192739294942861835599432213297832679945302557728915325400485175004901478956190832424317201045252967880190859517398511668826611412282183442881854831976536749847335467230103092084202053089383269225799456432886077087410509323924051605428672754042358461591215779947886419068374261127329255953704683781205963843705536538230142228077395395089121768778116822958915415633867188327566308183455833166786717216433015738569879411168171256912460034816089349712876652847940111079284780878200213857137603329213776205957226695912326286420791122478350978186959325845648250250718904255920778428360876769218720644207932649294967868154564357057394066872681690384559720722414127298434543941072587323508532011248936776005683574690982379352605883165862348969654969528389613414417511174611382148975863577316724570374075628461213507946457259925737297917866165186856272000953386602994594866678617464861429488068838496425414601003484151765263229009210630158067836330471286116537297865942117980005731050719504188986384509505727112011424502962139819405563565350612242211686427255052384327106158288121907279384192200096072155923909200303946566827387553420552222733942252241432292203547879885975672624188393458841427144424522036284925210165007097741662060110094802255354940825202904191294696050244258228048866972435709429268460268384165912540554970412297435288569177798507795479597351237393474750721996767792054112199868487940652531786335774922411721979598818305266681444672789660215874487511853306424116331191854940812129182326807630818118594326584181149815358677870221982996714933739704140222949950226551571108783579523228959580458011334777518707755775779648498091325268965837654492080434404786297612271575593485660882158808952061656227907065431675682180635250364149413688417690469549727048174331060599155643214836801298986928614234761999683390338183269667558196069319163821152592367712780248132386744247233237359923252444829793392054233545743578104206690734575625561086256005002021212960700857160944310956706118761284149858535350409692136168518295030604916047140642388148515083232087461299896668398115124413175385147424512325787439862438334096529843395280155092689211277465763036310358078476697695339530366002948257220265363957457570145588386317011233325759514929447294434080214851118021494085229538078413280276551555702808786430081712357985874223707827074813351092407485886226629836382760037661881295964407517320143265585719220879971248571037260426384757126957580851863397485827684245123022788515192798516591429021581181370094064165373252765556637601416310512766097606128764249441039936787235832240949535018145274779704498333023873995242298160818677554301943824095606835400622337357973449158397008684417857696363786567667165431366558241814405447710075773161525066709853144793737922626293357608062347137705393909961805973313658741279820803499466657317753564097272109537827276234066453393292521785390289464192269229729516284235831005498133351270463563669022946357225357723696511520763700537459574025155823835927601620197941625722064255355583698489987307290008969110350901945807227013120608637228214072065848603276525758451862604306631467621669046005172433918870385140101741122779774994825653681829545679454400618922366895932166847831054474071627452835451671824283896432427635050499600162511854984338122701907615252834699631641393745354376581975263385951611850627888931814438937970086212080248008905997824783433474702931433077895847178589332495014938876062816683482496703233433822200295566617228369885459075036611717006333764618120080791994061686741936100432536486437108867925669643425401846066559943515665021991764505214921900631960100278121876164604732364207163657265779519155943631808504299223918107049003673185062054829034613668453642381229493199612310833610741521644401423232821570326315363865655788150790106361571786804933917918752293628816053222242269886064982093642091356636756479785027405167470566161122742121721431787936141322382178575199841899731994602530936538389153708329930607560871813538943089830851845515812701661868256829004172947992483650279357244483491103881126448269888832586325942996935672767378353918933954540855793767254533756667990656503365648132195780534025287936911202757349465074980878165432651928369655787697236047308550296903050636568080934313971658586164911364448733070754832716843893431710665517621788737125122628929268354358365815211268573944319413347629384819655744431776450859874155240925662778236267584939954419055792429670029163765397616891872992475332385106479756437576940572469044482289690577564544670772720852414404978200822054341031151190908737582252930067264264209508482322300173195658464628940154921246536154980669358452745865183339445181354275022166518283894302319324111386688009803778845210951517808537441763084421362323260927329527711644269306654451255868223267393197940254448619339926440072259051758456296252195130955846976525413036032394746573448492800800432886303878027836916813927788546017322143011510346935587009357524486577767328925178587428504684625280679260471535318601837674950185863958846121742149626594837935102782441650676585352080654819466887014092268940483723500543772631863695344201240646482521214988695301295554964332772579266184422915084825182854132805719788543862381890684687038866145440455185193053266036356573517899846100228829826446876903195216152481156577308909077199170318468682726678333919310190444647477147921693099651553522800778889532175565432112675983324253418374615623717344697352802666267850660595779266472112824148378522819273997213891596778956981157496202305980281558848198216222680421672321710017101069157323417788384768393586467145154535398544020974165304002071656361150566647142763740225877073032996531847852991414415011163216310634188952216653520237366182961854902307713890324466141287960976917260537769093298412250291019070238197510539734882947413131750432514462615344177269471828551248522642361503277277800575686616249510782741658717778349182608709820499925514375761236611743636787460957544838494532106005050418851222542193608083473918354695558044375797351041313753050516447900187128164130111597917933239130267366114391796242845035862555228666485409108230270976881802325450370179340073168753801059387731437855092870117887978160711561254896922876906341771219367156603023447874068695894580588048602299753933479545988385467175540326349503501735335481397766907198830793479405211119093441625563845938729541264527846494378882841565857892716389769861979018467680370411039454982354089018346651679956976645547505152234679668777754574856560855870624738655519202339087104246920225807621909684539598395402725699109153651313711970662907250914582963810361459932721809939601884865654284517468497365713161505831503344356068259672763300869350029859548622316033020138771875627844504886806220250917713273753219950370541542304463147603045799325535859677896055408208664173409700757694373634263977467876173878302092783178433430815862002830209053492188014642853056384012211164947504061417687419250013885847959328577904400928033739930886867653575627233266449032461886417935075097931941821855926980313943940235186138321471621905615128432402228104784443555304642176853757553249693518609486264456947698338827332433843052075549417036256765173649326505898621601868406207443843512478762969785649495280151800900898054675811732389840395332068084049710469088231236386881488965972445395887553420985181348278856873104255370551534755194370178767343293256724363266395248231034330586328822439524978488055432975984462842909712676811340000618840128821689985468100645658423861240197657424787705093513765758218225552621118187878410501186625534580730378004225044755641901129349958062248548383830368045901144051694511132226237275983211161253397329893663777156192903516685459501284891691740876835049429759061656842425617772485877529838855377645020120961332504207589300525144675073967401401708047793016689612604722008036401181660628004439669088803746508788537876039348701731896721318610915403756223771436010020418877938684602834359398538404409466129400410185122008610192413733871895523792147111063519456446527543093496449542110777892765742284114602732908116240950155828759731873296967010752017821274681708136196386649378652483908282634510909334303215264592586860341127538796833757738945642656553672292281867691078022427147479917949645522904495903537156527591385294991496154767301168109550259039335068226595346011497780984383661838126018246285873578791827942183281973998678392829380775743599491438751974958361766952641483334284599342430906166365448743725940443359305133204847505580387955418645730212264030933489685637992816890653253041676706208935693062314516764040773209367643417831518988572713794899002522448338051483162710967215586323114551221743646737094101789656840644663688957504478431754880189729406278598275598335239525228592188667532288680279006892784242490472874727576536864458743093132325518721736458232752764757134305987545290162028377451366726867025446376265258164916675715993206118491546142749136712887869618520912999580737729253090769042982350721596021178553697450614713064836130669099726872802539016926927551613389712251156213550156425237290974235084054931691762369910446591087449157235366958526641530158551906530514174779064211839779267827468000777858969082003209090044168072938060012297629182704793845425828796554873008980792769979497706035826225602770708632972944697845974301533749704868710875470353481760775197806089832748315167573816600795328328088638237000622096336379883158050681628960751747243660576136781785229458034004718581151499531202576929740440961250932237272014788836800009210957355002481140481108309481915396884733930493097219241704410599767286648265755203125827174727101892871084925198804501226059850533749340689346249777912512590731783031262661622285157690391266224898072573376995276961263924016034405366122700905324433707059726603897577234587708556447536705665479354820307873931407414436568275201053065019546787422764694398779552260107570743863163139238279276105972052279887076331351509743092603163265883783736332071175579424595371734242922901645816773079914897300804909090540793723503354235939536229772499371691353102377533469073341443290316551371158264371078164558978290054664886654969752275202607604197426792016109595324408497640745164130955541663929986083984321027594137284915570943999729501711267799569514731116233622629432503480019962073113796626609395308400218805757572536871633563557183512400015758174441144055088053354846269951835209783204495541129775262176341470257008038817909322307592445082084613280632575683902344048429595464510013553382156096211892639525331947462415326857684561519836622921495611126642792773252151462519264092969439533005602848952738745812324906333001182631598154917725962318309911872684143804964759885721888123652024154662751464444864588595127737679864415840933869265258594551866955969461198581355326977396394318620249149602680711267675712014847027126824385418912907594828536897175009358875092303863354901343583479254395235781132617420074867328576093198819435905975739462522334525802037566100720423138656608751971724065052275917736515112886032232308268464809177622942622973080924341207715760051223626192338999898852454931533686447309992981468730979929292755819702592436788402015993642362000001241408419317021875837630152804140193774572648717919800579136052510741082228254611673275292072571940739207265675000365071719553409498443799855511362600407416443153765296039704045554525449458450427627317052290140930589657429480125396346373259417567676785252183093187861414024819468875143554630705532994290175701593206103235940263548194406282501511156959390998755248784644032582671868067415273377554121898377048662571818154990962797834256772728577411176807637169340560811748251362361417550761606749475739983560774965242986939101563206793655359668647907863152572313173476019812048284693429991439544706285736653017137334751056686045223308921133547224760375935910483921069746714309044598378671919655055964177981941576414214354102431552961798563226025144655017318534830253203956361962744310001779606535907291987045264181428764921246024933727206887661346321726197770155655734629855918996005423922917558755295840890472128387844982834431274239452371238325886936855100504482940771387519883974245491205621067107412945700913803069664940045200431965936119148422318019774997608383339739109737213929612529037648559960036515601800994562722646827563910644853995843925188984803459625263565151968307166409503022226709343750322769610830798982095991332547651667152940945855691526178439110083558082409385809702150628388693676092525096507371669214674449537031096760207414414785374003955537821764577416757055211665801249610272351672560716401850738434644314664037465342002847173302917671091845218277664174857541694145791757716005778103795647004005725538577632008241478105692699646742415568590743194156986268730183334817475864444610196408628443040803811654579784201844515871323730814870373702808958633691184451379676890401563966730259073438500816970066489429432721766489574387393350497132687629555213748638024419962887846649378156439038591655361395071440915826747518314844875190337330056448749246166475199497418377973355172287401383347804029272789692482453695060554743042549655868638104013841580028244062549858172057487717796931481942931582088937727947652674982366224524964930821148402861325893923880898980491279085202946139673273973646987402369323558884740635241476231899212028869968153704818768696110009041192329224351593632685376478754131685135169429352329982850054143493243755900837381653764335428332405818674802160043315024914418818555305435424785276705688381624026203582764388488451267011928794581296128396531128461651838593698864812953187496572023134499761516544923116613826946741817970120779126643760733929153566776489669264701143016425821059560762649494112670004624039902356204008097682867869220907479648586354923817321116503021821485079240011323264024478581143174399661461437458689590612672040503253262398701516474014356190812807295350343042379613525328743054043278070820831026773310345828470773753695397503983879169199503505106147115039210692859636091099136612971108493650447299684774271475226376876100071698208484258473587371231021998225060590706622512385485827352071891469171403768993342533480976117732986350826008533309634152577159927711058751280038998961303893159010038972887198120192029580393475919310606617537514597330459120568181102374033127187040630402784001390549732932411485617710731784157856693244562704586675833953256480397309784434569129334037986279662029328646371706804854116220963176002898600319431557163007254194098612989283959235907022761984351254757274413110358416525878164689993334626270780353530200864448591393677340063049001128639772002493651517497102635972892939140692658285202447141683603943898337580784613263160458628432998290748694614614469643623733343160207133170272650034853301121229439428096590879690828530149503011942508936737266325293583253011453368312127441190159186092533210016657693748318956475322055277046365666609535772429157047680276335822810241971043772369024813038724074559787289244713997758146873654256780762141324267829542667206185332526096166491619876315357921737456325392677029302794142304853676498528485065004992673863411731606783813786857808489142272408028195826516440389968676420903608613274795811879146744988701658485245698054337085379537044047487285394265880913907354327623118330279527670036777492265437685849794729603570052189246857311572971733704386690162315211251774449459434565603373578826197478999293830058252494618348331783018382958948956363676232081440576760231632025936599338519790492006792164652559601900592258067822042048631639345342889432790395199326030314077489859524894254656023078521731383478196280823980084353155012301076090970623656745124540392907016899662368046199618653474597061282861226109272925101673956147475193578089931313459080402976563592812858459080613765894376972392217053095946077280606617530253133678396498766156805287250897670769732198786579749071435386384661826701429365481257708471490055315799802533156880384450708867668766840024055689812597906540991236555081418576410178106407840223989257804669621230437366191444547507872646778768370918389075790132291930796110012789552400934479579209004001043244080563507874410425139596494065382970663353384498395384823789480569182957438512298212842178941161062188899875601584104866411841262897065112116706750629106325827713261177642196222138710019111211701811059539475516147370967292738199811191582273117358770530125089427584508768473429084589186021325888675395465870543049044804791554569788775363539898680349935017730054975211168145002880004107424510863623044306583744664680715721568372180390363759763714674414196202830918353294644987495884574423118197173105700559417536708880898165053906050892898816683033335501068758356642148581444053753578589734899998986775649372814089773444802028991427783908771217664722313218155113666050128140842489701392955148026560757497633965761362744949435480918989612940896316403463613778193106443496770868501594587989081609007146642397103419032783091001264628824772495590810490973372835606174902928779836101172820659700234829204748416526623226689865456440193004856754394300039560826472513756336331419597490731448008260378961950230103811304504973608147894772609939693150913429040830512091470159714447014958397376445316349172163090963433571817290203265845761458933425017693998241252870612468845338117736558714986467395658093983548634558056865899875504450878546053481409415722092758941190528847674907316664259747154869065100148378819458673428212063368502471219634573095251584695128538603861921275668020262116456689437785218110147773001812817903680239330584007723291659223801804662299146422389245651345926412229480023001429519143914139389389814075015955940092165453934236704863138494569183266953686834410213714994217943473262168864700524131508950281554656167670283928254987547085654252144932931889744830601079534328141387997407623981578236761652198384510676868759430849949368329583774667089108844236743497320877624932020050041266730743677100739253129508528310349721405227216634918790407833630135112124303155924076059519894080850723467793616477290028177640247155679233898249961960614891541534933430217618519604276539519882425514633934565955864133747376587160257975976835438416677232714505987891847838703113720884791614799261482458539473319967179898580648035574084673461816276398915853387377482809247418938364208542728795821589037674584063406959754254260048830014521658248078823558067187056293520589087907643606314723119838811091041156785614910232830498917726855455883120940792064581411221616874929419325986569108434874362083451042380412820390910962982983792116957772956979026245543627384636325295937586730169478579232732927566324306915060338340071596306320444317538668228687656276173033958091105826998189304024902633874465294196079645127605442671236709407935761899374853015559809607979317687120866721664878435667134228673585703507394499246715968810436120391065180403788832935603884316863627590736445714470804809530225441486448267520968023366096022930443421260378589031836328351061992333449431396935977116524755183482463186221254275669722891380177670237952280974361313538824534755648352399936847377284561456114310204298586354656430931258728202575874217766502274383165230846162753697314723133180013574794125671332771971438964131462065147939602161138367990090756751935681960916958512777203234688722233582078586202791429722844930017140014030746311368106210850343100742249175478746763004010106397261715131120467681870551486179497266108759812135301534316019931211291523782196855639208319811282803883216943605773784074626584396117342475847003995971586478641657002873550788593982609889183618997756581137053982016000129480006567144392425359069848310361260007642208961972269737554692374766918984967161973756974568206092244061567142514975156179566721644056886652901948949639868893780016103053774822140839689006444466839358820038890144437433312083243225292248376280329169858890330285219588768708014444784935197887052005842496304643647223025187204298050740147841002893815049109581400100619881690856877427176067357359242295232771323027604912494618281128726827099940960359168012461659555762480888831241391959641711110768070812111787422045200643213993571319732251841185158175893451097921921459434893335523921654773034005822733573067866440260827294207161756213434177756098040120742544751672366218355003773187163418620416444671815900429346027657597094718198537754370658728064806022476022981589196623662953772625591791762446349950351166226453001015589785686954341172533983767705692498392632147717269245552062388130358691585836848251301115325681574031807613038810094380445288529660553774914943153431255995300708294304977722462352637324795949265427213984662853458721788940450425288256953174500777971518777708975872897002801183411036348166933879500568039448112633514298694615213917061413027933815317551059017207980793160380900640649555123246449633618611529800144019309786821021437201875677490715156715310393675231161797088834334390755668629339141386585874310345559458278666206963135503457507334364734940939559432063455862570410321253204735969128805181319530308534123528386957613064285770501322636606580190688949889040069887106363161522108858151625306417948896312871001298777547293295175620958735801348496172356218186111782894889519467837243728573662784857206185484430961875633375061166169275679363432996366404676756938429709653985421321032387272962821080105463824574656959481453330927286243312504926639928351066436550345482356989884938950675229321576031411758227429837450356521023969930464182846653160689048114622758101859453908445370984827460124786505603001640832428374139001567346537432904066516060805121038695093362571145502072343882546283981273868962686992830555428955662520267216773078889450943198947492234429367686815593389692306461926336071685599479615118647891647327863778980793773113385273990219943167132241765949134861623337322171030962630838649257581062630740983663134430854377784951214565235215179251184477220259045523278381751375070918732332087754729722604956172910133978532202186122430697127723766584561246650626438238370477675952563696766950318499644654280644375808961027070908526552649309290134244835976556895354975722684934788839469898018481637820369287579667057449194150820162320815086487810750151739863221218421984694031954736570553308922459881101271870239370170293253691316807041387721439788914422520721943057660515916439094736316866816669241588512623353942065469311423296284186580815353372010859368898943918171719261720125035228994112248030407258949379639155813921162767338903402539131421964694745125810719195176422257892008461840755534730571844390635858477060942091091900934891623635734184131296800759284621781635552687845946768426416420698175842391749472984902780971377096029635086081870874878074758273325219302758100412183095145360922152059835074862329731921820814985945965453865584405038822924779881972729197258283155307177578462682831122301722753836391310039634541715908251737819893942136143198713181803702057605917215998675413330798275939932503432219448639539774711265556345058666640045224994590048025959951584304955020234856936388049307126968890191738704972579152805602098353596289507472749489503095157805360948192230953183592308478648583869818065089957407940140150341866631698890332081782050504088888309841558364649924866878217061478458616586023241722719033009839618957926866650408637828416060386156534642850344823288559778269185336468448674805797361134961990672094789318520956343654270092323786223652650036191049839728374513787526726103795558335422085710373879883214456064185632323901453047153945186893999229668953922603384147215030649895132729184226094314485822499350253570315698956440659958392162106967839428277633252893581786719192769431553477240992521002674029053273462609331205106856185590442641562091439045822489211809785635983771113093317149054727429426436512317733093606054329932987097873622632933161737846640867435574690897204540743568636532620918976533050100444228395146890215083485808762006224200711359979300162923441303365915667750543809522095468479112712863889679856202365728781491765750237118253615155538117996002264950631620234091947766526368333308737621754077172929574217255833828529281608804244574793967304912902570358700486451245836613929658634112604624702692575874124781754119545413505100844461156437466190371420377559675895489518525406225052635686210190674978741493724815162808407882323445134537515408536886370049609891484818181997296644516092801879139834693225959910327846314732259922521737368416721364475465664226314632758286174460190714574588258283200842880082464980117198882165962322309360855537581876094332460527805469657607303686310585912413272132526042737588452604144199636246206867213171632898992019237827365358224848427418256788517626060082846678632361556781010428130447494770989524255017728476214689803379943390217780869548051216077548741366530036161796816117111583154251286504488570624768484018473417095960474485847913644010511283358482892062874173832551686687197063583108295569280124180375284406353808631183064796774168473475314482387208779839969175874788978123006433368064978382962170691415340723541364213066837023690407281290068581598855080718226287435495412818005744132618590300176488649010997919842086121812254528050697101256158509294558642489551534020542278727819124452195834144157035630973885800065959810085794234286683686885590000443742119435718398252554555867517501416379070316437295593564130148608723241970717985614165723809029013590516520426722762761888424847981192471564196056039040598387907035493737252997071089004716223390808727422900540829932038682347611213537117013661005098581833493873477112774784935068978650912409529591087385193445015983214986903006138058745080582270379647214930420830501395271997330561011189047275406939586395583050000833377909478692478934525742713221149992553100969911507907968926317158536933749715989953545885174337040726662988495666837180934657285753835535418341903213561681331883868664318069197886987819837558627851982665195487586987692277791418578635685678073892001043091152402706211082358725197123910319865480176397151178551090871252916333337412929712164074498309617122745610776057818226121356183347575727969370389608133717057490719190250202897496571500125011866411076835870107904745142352176380001518274032599941069920255376612896780904140978736031798167879070552870276418459736166753219721881936831405951470668380506264571420521211127989816874115073555735278973656322799540140689491498161550303525353749635933121835843372024265331568080658686363214648130344049139560951373617429730401013197039171591044731527023953680844544723699695159617836470667233301338292334443726396849555409850023036513965188722777566677695462139997324126346797416356095198914451496438713964756561837240534295523099094464806407607086192900279542064837199109272465052718356010461679021029350806439161988330835840765219236527580821211209701246225096835316734678697314844099438507194176561739516923521012933255618681159922024830955748392498578574072330268394665741021357426626769643181010693824557592109560930072998962844406816336621735402009873672415388161416745505827345051144878041516775999826173723598698999457843504012091978905722448126321587322875274938583342691982924280947790005630460923322770818083132832160505291435784853064271632464019280127103193042155463107434384706246947670073969757193711913795553377352065008544502474997997796767627883234880830058903536223953201397399994106816799201552591925831803962995008686757362316228685542088229314647000389895819247511648724671678085316582548799121658537666567417079723104596900468095724520819931002348815227033290912011703652769961908211725916232769786259775148588583510892014670184359606404640804457454569307707824623682404874547016349993734229011899142240113088814293023775877415977782934066079379023231417561947929912501191121133472863897750374545418508172166513528241118604156224569133360389820062894153850418341758231039046440726233679018505672850892155137081971592918763663125345999811537677102319305966101606566398959267102358509586082719956198124225230210301941145114489241180623159526422400324280182551859283436130034653179101744763563946751017910839691988126907766611707926433009041806671664701423505821469443757319000546593015241853424005187772503058218977274410375291959869366091966655823600793650930621734217193272804843052818858838178012333548953406679719563744513744019954753020457491722264742149333949198729741491343041162409012681611243337452238227453794747222131016594819108041830317428912174285736748465271785547287017789355651534216187517734166684916235594754492157031182173317840769167319142739360926728036307904780082240541852581289182656101927752867011915671925925573677033800533112506539968777652607352239868707534252854142891944398729565666381905898422292700613101988081160393246915173255518188376395968966084521502661452314144085332417651268794061141978029922014246896799261617349700858912698910599816772279502329553332603127571357312765009269605204713385438862410352609458063992348807958963366969174808293413064711671428685183353750224195245502525513742977982211633420790507856673670150848967635437154798976830390680707512224970575071151072280301226697985236307082001943080103316031281096842364213333601163002851615719649736692040538102016604707537354751905109145192401258458851957287371310346762041165053358054563915804373505535498709746026978070717436626243194203545874289903374663886963329574575058280260664711241778193327464313528188554772652830776906793230584672831051859916313233459441792623929724023098718791940264021503342001686565760651565930178681170986316333153265059887370915767377431401964184903491077297752623471358446128184385324783008971016100718149991461256458155005833785115122398940326917550283991885376205838825534853114945560360666234307881048575546578945973032462750205607671868664551992538408522526513767802257459455885027316980400650352812255002475615532625047291404894445492328183209729032324181804265718723988926639954697772582261547280295939443293508274474626957732955605300454476042604726786225947526074909621659932589666663985520429010600898605861600095522040776140268134340020151173014251615124050176572641624575549546171726637994385318744866323526263149093129381773310628003533193749250341875198508409557155709538193661139127718239224066699448599888964114461771862222921699534546307694277812262647648843529592139036913055875398060487562473548320326024504083789498663497289879798876767291136986186212046452567760018972871295413723171472515367245553390252660483878337876143416331859323396763221366542608466139850642668601646935719396569875484374160556977128383305201147281400952150965152382663034231862169644283869741041506868645045384935810422928657727310522038669150279211260095178144105800825246365636136870846705850166433746975573593970618775179751164063843153130889175008145112573897375466445634412285869677846075868320266191502268816360561633556094912081703984417270255340688416844466082772369668428078234508681700741358288397790386962533829288184827122599371755296408984725675868616020508141943808854721071677819632032890835243540417082454821767313720020198641599379325776214288964003018037455377517275067692475881470345416174073172454745109335233955314413293204537169249611063115317941429766528422266313599708505054881232537534307103943063956129151262317130694059817367400023447800073571146015736033256461159775057202903082787073984264352344509501224451955434532554742315791914870460691074627463229396993212228963611926351925593742772855526957242584086987744267214059383144345306509256493371409602346038815677707557961979616811059275880292236023272025590370926677209001434699122368469624814810961611090057117695629745840113897065202415880159056534526080594307128902675409346313856889393434362136558398906942110727996166150011127698389572198183130548922213836885883021932429909550491974952560755176782383476529118028131345181859175242251410085808890662739352778992809323330042248196404632976012845644734733878411276561086568259803145464505387817500995267241807251004795767727311298911855223473678506026471823988289489396368870200758577016077048216567640742832583499944197372064165226569479004807407941336020938553482866935724639292570862715305402101117881057608052660412462998861752522240424813991289241581688980512485338370483005544875998155029262609270009063324381230265879530090942562875887404180535894028769703754137878292289169016744814452200355045544410440941175820463950813850146151858858689929183141260620779771083054399739253813246758291209602983414176714684944622776978973522640179885372045569854555216339923181832418064784451261338747374007567903878175987046358550428759442237286044749138290135985252523850216776298896784285862850565518399282681721470785901788823194936019386549807356585148806304789480626188833919647355939627608283697321711312518920551526237303258294707626351418525991484361321575283041862915884305090070896614284116951699149642660098382463269748862691257471440639698486471119369305480881801122523727837620737729672859851016251851612477284078979881712485322392235973823708240263084379073935541561703582466658999795573320876700684772786287361701027785479963519393317798837621813701395996445284727114505974581092688449200795726760104095484895295284361527282058653904741196488287965333518120504176053941434205361983862370838795957383587077890550358628326759040473542913570761050893550526870302101230263946558396758703194973749964543834564680860760349117086002218023120941316808408563493718441619858367236767279983347848421384444328073242404035075260341029355319378614241236983144588287129982467843598944992965738513878459478649971790655479442100093910441257727265419880069400016135432064296809904184888985354895916536636855802584767434954917896660202443740924822187586336939647774500745710881467616729493225948579977834835596738985532453253224737352790026669621756844308630201589663832017453878826446267859662672546971607197101914534889977614306325287069077133984846028546590723090963762100788178681487782407127856129479826669460708181386086179261810491717002101360139864759931119822850153610918882281063554357590649994184572303770049367269751424575116584503066253270046857456154257716107827354120972930480348740821533275178534798794785331081821756606155586973534604439169492119858705600459920404127100752345421935462952229986824117691691985874775729967937528571901508604944079867339572542029365261601734301302333159902784780656491696067287853891915297061333449414491481153380549689787282012550815431159510383331272750947458556255505949168944937763988945392429816646114629307855680939221324058709711058246584431110411716445628525809721153617065009797830067660645860242728384432162327166279789060778941453534000113305484807427233866739018118867596930227703958551505156011934971198479577531725529058551945214319682589473719482384605539088451307466533872069651351696221200540135331960153814617783489535279148886770074194496989746064264139431937397326202000627024105756254439389868418110917321298714888854208825375207299852236659148072541694044688826553717981609949083281178997678190281442954520353143421305973808675505792594365470060228456623465452794685725529926736369783182404225951480227853263841000102106213951324536563172758636673911612720278125457807144510094950620908322250621809291392733468683729117129238023416091788696593417269533411817938885599286617203566697511001318605353098334893960679919638584402086017839759995183085028755471160403611804369985394360433813078795165515250467374661345857243281274119003216566263245519587667708745790251711212852620988085480511261161381591270837273606180960759318567816358144973366290743404630260516699374742074943340514553301307352769205760417292872351772534687181596388642902394113398994184553308381848045082846164265177784305408545513817176574279370204308138884270531307972912627823943992851990381686744949756376855607758309538994067733507054110188084391753944213943202686477014345918039153497157731177809195243310958693124478548739629324106980777046888633482480032624457211253546941662328566874089316910105652365895410297892982067348570025128566832899376630221973922339267522134149629297789747769000406908787787807148007301237354967236616648426765911398142971623658018697105520050199993477832211837731294586856770560293461559396742908061907301093210206166866903441605006659982710511483367385600082929151559526930772717043882625884335834886899653304811305683748466731792272943135698135258082708867863855466824729103101243592432703535079156861382742548125886879449023242522893966538795967700049216331894309691258883584413186947035708057105930007649898560719459568609831805051952404135934159784093357507973026954595803530873878325933338041091309903687391826967186365473135965738698313383929350980173541642897340025612405843140195053283666488852537490620846975352085022336581308891455049298802268938092107275150691816104669899847926348427595755111644701550697064714513137249220867646646058375382886304513447947918778131870590965384633819438640790031244733256747871743144405152360059369690290168359046134048115583499455460315734561964216423239902294215968734705214145562631617690935705027206714159868601782616982704133996042074472163787670452887605875371628620704576509109547475434560346564714658281920516729964768728622358612846974463061625379017822459561844550983328222848798561735699274378394947066264401880299733760608682876300523365369312057782043896431257063478018053019250927717432522724486868458781131053600210901720608567047563923605092244288298525436865291521190280308866239280394130112952212851582831223080519740416970998785084833723461466146495939290198946872134190513529556979300044080056500927758596655009623340324787212299012682920479245172731005796799491405009742790634658418627864372905841235625838584034501643127577434067676611189420557318945225939230107667911955766946361686646912752555255419735199944077000018750804496088766222673857747037330524711001124208863375606378774732247107763207478075384383365564301588119514685490483333616111758655565978331037969180495232079111002296737466140401031394690231181397238873469377325613005465053630377994035097529122178396183158943640204930083501771262368967442741672666289201979170478281119305750300933928849091136346088513265526282124820266731765015314477665830173898595443685002147741925424001650280519056803837593639685810170968333272500736311946678090340935754983705206418913386747146601663801421683236793783253449082907593953173877858783874659527084772881318900159474761105445289630302797737980351017588227831255089650783297165108268400468690015120551383749586887790091317290358557731801328670706690014029516832759507588914530719764113032555128074166473300624928845392181890941310763865896349356598295416266409908459777870317893070692408829814518195338843314865365863050027273937768378560203925778278433496085842259620254437340613657586660284612729361945829749696429392396830249707572140928769186348164005292414204283843991996999686018232127286035918289259557991360114200791529274676186162540738914632127806600102861298222804651016405258861141548222869476545723590249378914232826772618657078530372629639660935293792008613040134690767060608393937934266736948591464938185353860219022755126014598186550983560058364452435372511251953009343303778290139678087336613515476015327454660143757448051368885300077914542778317158472736073061712787574786836316613373405732327158145392173206515234604474516794643116248727502876369695303874926558054227419648223455380836325926473051604061064951997067660230534543877470721725779568123902086827673549067295832556601735670809800721119294495835922122044063139522443106867149349610080562301915065803523693308233666126263119926233374950491786033473859835584952243083300038574715330779649122094467358199643828545966390363819647201240831770377700871772694749442065159458310556786369816527636589821854484485788606938392036486118009932760812494734692316939825629168751573581648792776038027627566482079196185664405828400333055878552455168835991592812414224407567796573506678545432543945326405454502459398739832022607518294456752903060044426149592665569486362248264798246064717527133619497000082248654921559697993103988071699800331086984588768527921688013292844092103444504683152820480086053281433975698522316125623478286618325312494518682651985354383272926629820847181456231857978775952485400232609947135564913200534110808706987886031080067212204039263041162867706767120308184702665931112361109814145765453214599278062164142623971280290766513636732193548867632799506787929030428806890273253682943978356700553635362846150026670020958398039895244599615094462237087304828745750459527014371005784658038593238505300099058453934544010291975132455683822597554610149737473565887728502268977695116339506092018305580069398407900357243983373445913179824011038483543985684995035930326662124605674364811352894018850962485794103873318722764004568381446133000041305153635995750233887306234157430153650877851189097107964653102181366591069155287425821340212206010580351411966627114247966956155497364307242298223984197053798144270299932000013304399844387008648846468928035784513472522881212732173201430492900430112295507998987257457639551164111092291152968678637503017286374482815019067927869836611479063477524229436467467522964128920815403798597610063826957041808820897749513386578256310255473243576203544401994461195757621168553562972158363089785447453346540092902149327269474087515144900506842914927349032044756397433189407765714859520830031506788556483310860904804687284892354760729948360222256777053812801561750207458335940428959555191023126565557100683853750680731770456574584949488870402471866112423934810294080405546441237779101391303155547772527727957014066481146709759838646431805358294713965273343506194134204560284278039276846135047094829106926531510243878026884582813502548080836959312700561060431041987218691286582049059460406069313609911031066214301378571224861286043864429635288509978490001953664086872972249471006761570585207648138450310730816070891454143115036404063368584366210235551023383042720637148665850806340560704099552998080511874056989199565244200511076663192773547093047066755740850194806798054551990211685464461570143711577683128123126912746575379335553627219324099047339029352766869250281516111545454078508851006135808447347078743485227469612505928880699677647880690840898010978189542797375352146729644711569669530801693272133185419099080244969147941563338851528950251769440061238845550629572312761861361516800278591851228563530596986276947971848564045981354324435782772430986831839172137536862429334466267810126548323387123578205057520615213606848492728227343514190276326475657394253248677690504072358144504068788486323088787011872323209345231139281193784988517169223321966243204158364841568003302897050445562214278010613002807936162170818961059732888130016826517283223541818817716104063710848839684449663716823424026610702659617420557520963340679471079088465876854441187420944321922356075678463327197729713605628415218509286429826369686099045270354343133587965535160402155158768626140357413959166099016855297432963528865994446761383624998938395885916609206992424073895087825148118567823000069228134610441402025459740177183390618340460059350807437955104418603191856647954899353792758789522815028140823061198249084380003253553333423684237669913441158633358261823792614619327070898233862018547617295311690373056881424685989758727966358177666836884209407396278768028439978746317121697580487821284942923114517886563879684006768289499134919344718602939281861280367133869069220378363724725168904588331423433840605428197592984625511725310856718026683543531984811985558407022114811183467823858981439966327137492289753178263759378989822489253604031568113220933774169761492973407211692117316397442235349073867765353227667604681820419043110560562601177564234674967767908598930719920932048311073048482751648033200957129016542886676125460843117550487942035319873146530636156819585985348036390786544961056388853947018876367531049388580948553573321679496750959571893138146178089107855335792404944548065410511741889790960070185680196911937767570534647925433003902359500268036265853269602001979799980312494417343838025107010224764604397117931069663095991025667845480861762944083882744818226221666845047109338771975417592233663765448849963739662551732351159965562349069594297805363044938104917546588087726329133752523120837887283902600648326334626636469060221913897994751966584500038723344646919052220903218197499756196236986928696500232502813651409203234844382878918794171174642569873126271207688990849665319883342066236144442625213358168135100287913199108223745240606623983844890684302253175162676623733215627686225258730554801719783454393183545101530888013930299650530220666423954584244083799427031873262003537525413744631609315515701251732013500323328221384629425022835882188895065767572698373091721541198396915681632978535836942017391296410089111018058261299766715856975941632408506037329691550177609988215879133706896926600172370470792335979048559703362376638727436924884150240559332532094634095259256300220409966927443671644169791435815983221997528355601872622517215928602670541737072016479448147064188860724084435984152426575682765488611348762633407185999388271800796626540430952952192618955970709350168398756321279984295767079253872233320161663550034651252816115308646528005672195242061118734836880025268539427555029632416874374612968577116757436883896364294654487257590239715163521187744223254243268770861344527978269032225946166281420746471571928174846417723555179318655250185785695700453398239301940681655969621782384619704760622986579594602634555701190253532543007441730465329272348021093358667522550850621465625751828037806261754056489979046505780926828817192854686787674946853813296289737760935787285956497901889359537940186932233289423764789689298149097659767420428897357318788090949069701155440770290988928542160979394462529524207611248120827925230489547164109689809889585117637376212041953464821781555988228028227448578480546562941175341955623939248904496207590193692619454452041169418642154406992694003323075171018618970040856420820651138668600293025935862581003851221336279688403941971503269575232077948153131538606648258512801303644037644605008671437000530189998853045469581346540853517496990251613778737230715777765426382951646571135203124887404785119866338866881311994023129441876427587967115701617635727744107660301696152978408982394424871172305136297893581767636756593384454059072559327289673511226443561501829333937316741208988925975527177708027474158343814576410801311977446505186210939049861802031034107281456946921237271434495249586643996475666040013560915699333636877211855116294225984839212516740659619435987597784437294293449917951761600276759405983797841219058628288739185060220467308107294305485494236527876941458004775567368346534975596235923894392439718905918400764489257780784747104470408512823930278325514386333150661278729948348151063517244430616404111422644407996274609640388879892251980926247845663727391509920812917293802801949200502194679619062432081604297801108027071534611093266717826131907790570038647990045487753707372334261037947222922348665183020515378678791493363876633619789928926983607017013980569639304812328372966283919629390599202235113470948334812129198082692333296811754415065391029153122586422408180187269949073880986247216257379817586245439175829570035233104537595147436873436132646460482152145454965663668622050559459563239106263619523597868123287282125708852954486962447468025197533578213511027428024393400661292389111011792745995080289798006256405953755276912162341058340063557491885576515351468580001250092076740122748793062821665682720507964525846706962103373323812660016432444472676653815988057355483526018659889302303970263454862754525967222188730921913413187032274920726119729328949788449615097828899664334228559198713147063706008847813210619790842136815625203902700694148727279210982822835279818009000149090406414217638336323439060310222402959959112030597840743052825980639439506724720121627599277924971173147407367333333672184238947296296141481961206437900055392304142743871086515056762497213925936155799038004333018112366801972716660738483062073118209971474870553327397850572890938932074956362374231753055934970413101515211609340496545213253174719164526812484055446357193032344228420928656867996812743753126277300135769091561856754830580201640108590946271028898580756239011888593043072324232179323038591424687460426777658991939590494544057245489478879732907764216630807742662967350655479348968806178629330885515063579390857655737291096575290782771893374813610481623625621415084424289022462568802733421016591627706938761223481406494278644432297291917448092381360376136748140505382233814170760122569648692204434396732632752648455551850429872387762270183977674495703646615413110747729679742491980099586473001079729534336345424708887380254642724576829752861562337184127054945771987011643487802991474741803097106981624970611933447517521208049249575018290871746907342361950934191013537069876259174922865039527381552751403266331984069322075234400548038762273822182753784540687279848033486197935998573242161300283929877438482652737454670219046383927927534601991979754388813369726234820449899734137198652200804161538738433496207444804197005380994897736542406807791148464627396274550713392534616802483112277959404860803719257154831208344855133070918432248896067877593263194119586075850408894216499210113159738406306908975570702793505206299789150639962448713785378440888925464069200237959730752748312262636782386466622669898446601856312879811581987814272220850331850465499770170678675202023379083727787414119732014388115429146477137302269994146342632604441476337298103360362864536441852648876192601787270354236991653767514860661170668868044098950145808597354255486648226353019390814225605745650829466020998264778610829927409193691720243531615926940385948961060823185771491657136863145005363044902985967466545693711827688054957231501004349183233691453502303911231785192529465705573390783796205806709749001498458048648294865511615154695903737332871733030751934605696412908579004491315117832319351038127862647179024623620946454008075328511855934360961016647069664444631503223554169320989546589696153576137964727268820078363105656053869483964198191358466016780519319346599318597668870837430026335952648969328927977467936928907872322215037576950606764559788626685853095742174684526931815259327209364401688472622337652914015690446547301478477745762925188119699392424156548258796176646752533349838774740598447684328688717166038953658543329868208912270602566758181519638227427144891040319324835335601325822580555737920001412877690281669594171497960005316092997667693844774040235808334458194901813411370852290794262854780387062139215831249109150822531589995622239559575444848288840935343701739173277402057064182117602203876478113637102077235955929794145026217760766217124744300277729589206689488961227221618512047746958505306230604689742193491520414617829721852964040485678106826164208478807480962327866405305347704040718011677601023944595355037047863268785706745714455278452031357290531651470456246447613851055584351886454506436988204294817045478047113898012941724444532950767679261861964396026195338617529429846777183704178969761751233384502207449162824459416458848311089978227125157283727180512461886338350296516047556674439521832751820889652985373728369828906125298735857632678623522676415510609113473263093975907994627702647624434678973341528120373883319613875130127140759225965326705513578205149316058469078218563520776230142959429364417682176737515871957028726264722591639209970167155749943652283299781472897829551753052756471296350914219767426429355298306921807548596624475639073338011508459540175670946521244688055620797567306193885408206235248331112401373856534973361940639163329849535246544717115486472249372023279542411545136940098988212268184464331748294765911124051772830478943799335411217786786968023972769668484667585435299882081652105074848783626527053031355446930519314716553855600171706400201183448405073410510073708678983365272738792363606217534631392425920431178415692484738724968027679085005701242567240177446318243103777743726290547009607826475684942900436151788820831446437247729063953635684480313728056370565882547843217374597300906035349040947361629238447101677182509960800236422372589194694045541914992625730975022542087216868418619139215669765284131372128804800489916157554351803114357408604912235038445123663779145377898535681275757391754886240669920804650956555519203007668758517260791651885930993601423219407303700245477850929462072813058328101292253013071670662556674874751640995262687452081315462099959422286270293892854246024165205832628601200638871155082193353926682756092348350131585701583377903893595323211774033093895223502337885237361175406809403197758759239304263924636589380390943677800829384343015350013084734459550536723034869835584541772234922515415130354141955382485261026423251159477453126109773614328666780482187593680823783646996979014759539770678028139051110882863770460522597774392944230070537799906643039076665679674489279502355448691065572476824560201265654408798898623845431318203507645822895424845357862225756645407637358287742447448738196038290485432558144135650341153241908767227702611808634456631426292039247423274966815451419428462517453938622990909155760994864618413051678815001920459581270739207845357219853055351253396648369407060499804970374366917378083527762064116953902395646104962613149970992321813836563942195197499024128065996095644240398956167182751693127080481151825071737097588928798860471146559303894306596547914997873331558658299625145405225142182264081748993967875614111517504944070845893902177253702578620037483829394335989068193608336165546916644388431966644437710982826362884540752477436222915667344058585625833557654543997556713114901203801487161263780329420449270538817989456633195326952526042997425409968260282083365342805798465215547750335173736090124661494522445720527200786569779588643175000809616321509135596116797861751487823155849204068118472009412383356849734496890756709786909737211750681382719286777261312405807698271646854320651455568771244871710646506436209639275199100195597185861079621638476504395470580754540152413572390294310663574099178307949332647548564658082800440969364157182881618929872470151969044908744978092189403567235893933215012831909871312990130208147706995136767599881794244229743570849196665642515239482411248273011559564028580019561433277496432438714672799938239842185078150212649329510568782178679288359870542743715388857448530198289591915499626476134658588490865288399877230767379458718853854558826664583820780787297994749930092475051719163786071507123912365491273829907619474523331645876741340066227890378648898030112392406330412144379516547379996084319803882170493947949039462465232755871011453180377014058594095628103381336115772922751161125543419113352390146103027126754702668982450675341780299258949473258272128837005827618691174272069072634555579631207576146024556461401255608011420806892293133960560590324590250507191221639766489628071202033768103609977212151191031344761973950933042619755739500469580146904740654100188821540484258903124706389580013788012806491505427173951193518431919185621132110853481336218092295108247006282262036475077187883666726076349041271362304600721565645696771650270989324351085671735123066934533406443930949469233232821924952478934143464199990240054455853552295459549974422799854149652036397979579249084995561425408434027111426743007938858592301892443298741635972997896311536584085658345498056108148921628604978985719940396144443015172011743325773421095566280053958456603247529485980206910856028507910906400825509235718654370258747668071295314287227761099735691914613640451514710476901487777527965141766545047738068153045683318505489972778440735998364846116164377658883334511731019371293499531595850059722569965639565966200101336758518330328168177573316589124514213512187068195347197350845681329370157680146395137999430294457274381344153873352971166133455852283058887028110172756965229171624487534092161428040145556175520683171361607874958503988016083433981361822338171945613856375326987630974210095141180247273600939189675599398401798016534765845355858966618618248158401461910024882360337275461301821211419736633088061349316099569350616190621272699915180998361570497904707377540448056681142968970358622752341995620492722062977783726128770700937840313830593514370543923671935002165778774031296535423272809224675957724871866429271332286001940867736689794989910903899963299364522459184716934111940759561846167639905122699580266949586332842615036600202230376202017928088403822725500191957720415246500975188858861529607539745044713828002320725024253760898552602910351652176391770925286818978496533365212086388947835229868031489102620699882669378961766557621491342810897598584121569481536268824930030010399641822460489150712875123613940962931039086078408878285680083959677327420693102717810842126718394141236794135466868252696455751674878152767138885667662188109864101796954490829647670801327714274956915317740058678027253263346483678014122415393117384701493037246148060477592291597115117661558082579774215799393760633229812429111361904924041719660038918140643663028320702116156702962350206367237715121120422545235656865339503172437013690703462878206918456490247814758038798634885501590913494296335457732527401485277135982693821944412583704762969220841739296500132711423414198934663146048046840455111937099452209448535113457791975408775706393564541277209364061531484145895488173876689496022454587277178748196767012973719044917613507775654979031405572515093141033464880756299558787692836413405990506133871678160402130355243958911145329013783522898178633975725358923528197415728625393065044142273906095595874283675093508348132807433572421323292103292176945915809183496294155208796718955781619847474177854820639380810455557036281304758599834585187120579940976145852759409983559826168647899797814564051544825652141400183037416408409407898148588141287661453629044816751203100301030620699051783887717905850833341564895308414404732218992667436888126146317681816480253653868007442462007707453391026277309603623265270160613078983002761976204827173839046685866811688875610268092738156629787159040736697323951060682693256413096124149280586373467810718754022707848789534451298375338709062856876683951985739767979278957926178693828931401753529417666235908328589193687185462314086654704239235750179596248002314319608524898278250327223297627014940093649635214203578475441253344070970978932268351391200032926569883872727038189157366449746155189706364803358957690909546351701860092631803788035558783308155541514257614146513757775141009261758958780519287472749336553652543917697407719975072126453940834816939193970737150771992108647656838249533030171595513358502756817954614669877747777595239222673412677028147605311358545426370488624869309915408606851620219360599714604318662764077756393239521619352348645812532573042108666732784868221517117519318751154479783395370971933107496538517733937150506422271891636106104241613756377166593220186622461155475377604158160295985780949390053315058610124873794987193248719011185355957224609250447827848040346308459482262627886528934827375114188348987197934402238159116630324904780797184856691179171783040257654354083389635823085589119053655889300248832056983885957506322904968378060381194186962428475708960560890689684737043815225985158587085968031671768925813377147296930473144535956254288572473230926743672850427018921528557156144440668228060298630839719795221233246777401165140874085418825021524977404156674014151673485441502796071809428290763676800620578998727836644261062887966565897627066263976804650055365037932845208038196021998926998905329028455307855182121941991227495895651139285141795508758995979385689337917198652525618876107382426433562277295742173099068260699998476615785711735056275350782867696946634390289648820144797215732924326830946631455652695330509376595787256482893700293782549934015310160508095899831332298234525720216526450967729033432015501194166471550404407202008122647180733498618450146879428176410818064239189690961562708682862588406563351313988826033174403140628924413739934914480973477226372181230333598405810464033861910798571768139299441263948924720603907405557144724127321683597695927194138809374610059279504399100023545365201623998310755232566667248107879755205591848753374549696548763254818500314121984670511358381448116743187689556399424477798615635871411216130020586432295188628887578650984634219062001079419441219533596579320677207356071183005044634957554443881078952260061746334210854963858915647619281763145019562826632646984423934031319500212652391050495691948481067298564608279075768977729546344961990748380284948742799591385296593721028202444258349853647691877338135411966982881516523925600210480047678065759178611888824829155108971624727839534312461263214856307293623393457256638292071669202593202848408764497856776911585731901157042985059293097391919460623292036388137890664694660649816149447283981847791342808039627343539123020794567506425331306987162006270774392231298455040300580399203594550002075177765337451177206727034843279541868943910218354863082768347851931513216209478792596733352110575474785378285880817528956907691065817979889353389039824744601061830891203659304529100020344534373571614593854577161723880189621560339836901290489070863041725881324311440840358050210138022338302978309287001069636296771620681483282459540024973139616737079072102245425018084518859536784062163495418421532394348172690668369319686605420427271310190634961446516296775457136544697832328525210262654785263293279046741413585320335729447411045881854953834308365275493505597321970965678192782684422578262201213506073939432975924034629652698625422528014902167950003960652553883309093269088971103862903620121201911519536732232261719763175399921398627779955668989112787050950296351140120549650005031426411676943169367722617374488276788831134250134913733249000806315113132572430093912458565943941020290340151535414728764489928857000027377780173977238441344797222421916852261134824108218583618011798065872715308357117472367318676837896660853283988702093753379382861329977557556357537305950033308956410312119412845359264391552197566764805070237927706527924900125813863485025758784502484615791310183719530070397684281621277433332463884606123679982110405962435339658067783176493593623334481238105900755231024831498858347896664586042179241456644180937571504365742146694862058562934667849314494596638075033519555135233962735688837357113275822689557433788097159305709315263376830590262135074927662691323959936018828449286089446276799418191704023979072640273578733742030592813956428145396245529493635311904694578220099299922510357385179537763062488812179311978561068732520700552446347395252851643602130117270219731398320869001827500426239928020573947341244693002336750344589122629965353161958823780091276523065821051883332559845679092534810794870199135139376848475517832799192976397195120112276277344747417440698946435370053336604376842601894105761665196945742608143115710798822039223013067726567782572960339263223168909633947629398737068532855281504951653314619179308150533109015111989379351660608955217740640464915848252285104640340555606700159208913146896956630976010771815184627682729709473210524108618035574977741396972808995144331931941655695688521364524713765980721746721403894671825974244026482107417777387379240679403625181540816813244126081065142100424272700963121933403826305518769910870944768852719765148197998535336110781664562652196719320621285372047621102613022027210673206645558772670937723282881376907548124128941948753092487003257593010767106446060495869939699309383604210167678807248322506876272194083453903585686603293107577116830689640864986356031426952811456076675858283943190611306553155602909791290971866248735534581385606104371468400818922834040178797536005130644023977429433889040337427893077656053752086165520578143194031978448083964823351748575058886190416461528995048373765037388053262003400397058955031368554051865555719605872130976365288861075796020139445897031765139372749065815053610175024116507610889195435383378811107685576823294165296550560072674481989993232347287428719399871871141681084318519379678728028593903010639945861004220533820207246328798526159627609524139935587478290185805834526201585447947018270045276230059113938110240986132985106214666644068656635417172719310166273540721897627171338349787321281897246261324741795475513324378404722548239731579904861642954307935637381024788906803213889140980226696293588149572387143471634525678892478693166547744227573435292644746685212528211819738110697789558290527692538903225290673686393267896250225715400517284906167814335956889598102611901776902540520188795578913607982570636544837635813863433219161897219235478092184664086943373420011167400008676289196908040516944148886511661712393548987849201774791914419492306585602149032838562414858263641617592313851838478498344697897609300881159853317681250123286107811893307845489430030825275934976886656037258473602000982558240391542662596739689587900035009634359983320675346768418725585230375100512346276729935924491351253697172701237532454525610445139178434358723119458796883787687978967042431954219496216846478719588969574842273435925044204640155782940770008760895218729227958388063702049568379948787525708279794372509131533078111245530718990257290924252908485898515360297412955125619465528011575240717778082522690797597709013355752446115700865812680410435258596351775579774246182007421735237262267050342395035983465700809044061554809785818501569558171243958779155300370970709929329848444377121071460173016785100279279470577223744541512997810700123400329420481530439329187362822338563065035956611906638765533299905196370576098861019345939629991041302682618937920072181114824614222001912149353194243482336615150167496347321737246873985597112074649129576307476798338253486144813578926914298527723118108438490147055772745694208757214716193083052030958596047101718199132005670428415032907071480699054164326605182402758907147775606828391217209606411339967877982610315002345406087382528853953874789768521175167910510989066960588348797939157409644723806816884837380347996595174127995845102922578902820564223725393473332831479456197687218507240074779205256406594052811555831667015606370840181204061578773955478217743719209980342416639878327782574615213140574615113476092618980684802163531321255602235252857833650779732755989798804962236221261590655698815519365351801587697549568953350911608569086333055699245357996061161901984633375862221552797528792974920439861446497378313482767134811920122520968488140171145902683660501616814867007338641663878115502366148117451415807353259675059133000225487732460601142518661235114678801832642730846715347877054464170085577815645931075601781422005430501553786200305070087279676454525793881900666283131137401772217600869133661320944516592333610380309486404032458000849415477604622944893414732084543068739390467597736962922832168910832157936989719464699969652538974658780248945176135799988867209393727238254915443231246134999801142143564083719015155922013438254479716005677140165304052759813717670814924242742003370433119352002145470103392861325670553721041096084916278562621350731197093875774416571303795049728560736448673081598401506876952920366332744045353477059562151740807905142880344450497898086807940893793417960525927259379060948358729177209134502961646973620278362047801312017478434283630970639752132078281598380517576810542002224588182749312348339677290619777635863368489261659610699303662836849990366585227258318740547979060187491315572467179159830527938260629804870359378749591219964086314496770968016598973631369943272467772874068111044040045307415589754383892584764305762065186171899878682582908596874136099745453737001980013777041426393383646931220906870491569046509555287189538221699197983650051752592480799764664211938898456818679912666401863309624664670311056525047015531797832419331449874259411254259122038224002213805573910610089044468429786330809846544400814720726125159499760192375325670268696515154413089348323489008529592297013939647809098375280728735067357641443614359003004424045928074395497123556328079025475846926744076816607241624216097200523325935152316407747103965463919706180235928673016822863514944781694671064434171943405059740888598165920831275231873749360165304110403090406386353441826387032626157782467768521336824930866617288744699735686659510196927190589943108042378820345920709616209790261560400826574916095704203088683526033641711864008584722464196884263774866513007374248193062271195035804091603295233846442055620996361729745968701444309364195133360890960798524628990908829707967583595983407550645401627434067810966639605664223573929479541718427785653172065432493768780887608472212931198199169880842902900202921464945175196825267669910333393006512618690124718712074238367067593010836428266437676253393901546684239656696120891552534059845618699150545946716368408318844129094025570369812857928371129326962070439601011989208372195057849449055244747702659836629934634727835710467085554418247928578383752742446005216088612477157549424124385304034068813086366821821738040699447708527613460855872875303527146438337136586062802863365169202960669218780817847815069611142982642237872908638596900215336983794627083597465885022323877898438344689239039642963391659388494234863218332333979852390504305150751735303497791596691741172785330865451724025484806999133078279410374454120478615205334776603084714378279826653228512780520013336657067253554537912488354245112501467709982477953362683830648432099244819758953194503390923020353023134731124012558688639049378666422335777333748099082277104190570306352641078771533543248636429491133615359504437659673099592560522833341747602031298010020967957861579892229569557776069745093413305946205129797852210006850099488778156593193998244766962082748191087881302595298019724400285952503499812621301981452021285613161757317573322428650905640423695907625446080910453667956205263445711904274549609443986841979091963465331789224853627785020618195845422486565691315680148991559110630437245427677295484846088145639788748248610117699269824339826387502531860017782335975289081546771348469279103543285579306345630747331677303234117293705767087924411730515910305913243215189648185999486111046081444010594223668907854989968067155726130392557604746964594887475610314184944820831988195718029103324254947245053212253818019455612866856284061973482072187476515303452890796160928707138318704312324934102753727249520105879407956639884070204590442793081114916582454177415276293761634057659083670001266840737702915180210427167490358216099409844970468324809414826748351362683924015180656690218278009010410103178139127033005230245206984453401705716455137054051830219714729247326351357422093415040600308624933520223988028506862929039119147464081730669371335965296675434541378380791451892484437308990455040974607913683354600650240609602009613275433553668740375348682117664252173039664655241325433411632477183293835203162472294368027381467364977838210447492356139542869066739188180244802302975102728502738170715661723181414072952728692980729308740304182767894038767012905824915569901073098247041087979622534758434931125874546481868560828979416758016605147384320397695592807975994812875268360323260770114778561886222429926511298464067765372247658309362643207905810878253633209522019772948965600523185840436304735198384762641469886943287708550522496411808370368636311682187461830931327986105814732459253675788064055582114372973922135377063761460719925069651663847892199060898149873249470956065892290654780762660436427858571870010966270412133112066304354761120831217255492717133628103337627626090120066438754762630796560896575787968433523376359113475586443068582707712222887702250419962938209063609942219731693814472080178820987966615402090958999731557505913737608423112416616274356476091340357211531936732638950603646682610611332294771875878658075621044908875472482242441394936054245114513236708321130609335672556716024395303247336753012237070219521516794781841011868464528190386107263776731926924407051033305810924478861857326819497384478376289456432628678000058065247213536695823267328275829855463125681289003367328406944501205707158506141084089040178856683750483145773785599366246208513657029348113646046806755863965796571797367485319169100021740202108498065072155011172583612153129623906154407329650730837000165133010295782791046435604555971167982162287463273150098210490433319800338294928282208163586337469689273483674599722966215423059068375010324672973954828578845986921945869580438060124205677870617385065290151169269998882658957137617228536985666057809717619831109922560459508852909851688095359696920877336009197702722394752810253195468358615866409246762752740288245159265168151125864303263253614089836715100678720636745649251386694303321114509747778019901560866842344210902168956177606962507244397994111360287259672465009047000510345007956020488549163275494863953683482801002076855494759033494275453226447752745116351479240589302373929146838510501001957071188758583579443404516897248117749351947908355547908741134765598627733320910917790618808308044244436956298459020985605133476261271442124700265624337983403368905719259507894901372941514860865993689180205058423922113129129529067919556869691151710902556265191322352250193141952267903594068703696528520599342646894271406800760192321398085986247836910096469713074284578674878892624956631298697237660191462290644572513830016561132689394272404857716541579615491903087723090834779565441095069638876920166209176646697427725383275387040352807238750095702164312881037539423439768910391935513930637382305139483499113148451712837276167704329706656924964452655515472890934025663202680664666202745707631158806397347320430054923743974908151421699615145282357624039017736617817880661389629555146971859031831596389173129418837868261319996243992473331074641129342766801757750812630830226727501982558096382847695420924809987263841282194085503432493091678522171595152885296098334170985569570511663252703554611942059751707242517594595228725372270502350482431508731343144861244404772283313734196505028548375371578607434001501020597357349571855302083783370473455629981517904457665928908908190621112449018174586352786455396695575880848485740740104638448244967492468348890625353931370881274110163238786080473144655943972765309066984818900956515374208715884463146684726161285861899615022140861240763090685673788323934376176453029094597324672622400526762524423957621920336730133329371983352609317852768904104596098625062096597149433161577804398826846568039324314264561439246090992227562943666259841857140034015145640200002609957589766148205248549404831145360209208841343677016082895889867731109447743980596087885199661386942749973019423438520581370590480917381233312429932106341981510861981738329155239951799653706092819499141866436870384323903993178057977709013370752604362628763315000454880280923598538595116672725420311145322509247345972304920896406876819032552751998237166631781855381816710846042359428295644316303178937030877504445919660391716080081143805814674623789638908209942477630065608659490252594799698050740100553825768495540031590341652074387884755854292533787688680229011348006363604844066924851056785167663724703210084555387408061277412126890113717747950539146235200563498505877510717615022899054905166066646834431216107066495586134426628390499194630122265068126838796787438964558966565959283161213213422604308180992398431547726764953443671465984146892419707758017160121291229120205328056851670336212896767059874957653812469129913559324399391536714930117225540686013056694463897351069383834283860191380131791000508593959874361530389593639369786029413650660195015693879646339523088099794627060193704387849022562408855651701440902309827849134486963556542584505515133788964193592697103341138438403808553557861153642290828353508704148120327272219085312612149032802857575634569171734495245593063577938084397535627940087797007490263909594168816837879399376210201838098546742963023836534480771887242610785243314717958168510528268871914773560402648690323703345480833229650537056950602650533969780410952078206801725456081046104231229499567621513269186904292739652751044318076221753706805765120068955735392035614103670543538652686482921162766178777946705123032199368555041531439806486745300066217396389837603851574388916132785698934497406499977692234638682759513774127223364474259152884449722254458414280357747853772306625415573509471227562699795920847351152202367707802977476827817653797396195839633494678013882717445569946028818790477427002959976379896119127442983734548833463151379165424649136941219294943121744953566231674661840997909800064921158628452716254629018346299334565471000723132930337201666682002041601440328565327964997811927854525099191905124412046935579598845298632680037822619084510726722365901288239539928419148285568925996622052468434425001396501489270550787635917480753873494916648109584364664075273973633183572589953134361987292321449447478691147005665384172644526716256128689721126913641411985855359697559843486789921455999337309007992474910085108442291711888052219660215382644170361679320121261953394229815244856937308759814184263736403988869976515368172288853055221665889134667604606068749114598793394305902528201277817520657007285649231157883270362271143262837630094230281273592771444495278759667685917746647438868237629569182520120150367759639907475955991194783995480503806874508669029366159223324407771873632675607044181280088387714991259509021540905803800098772361435083407735174026038896367112690944639890095755038833239342386621653658608317119765060681051776536641864154656837040105477175332663382156490890679917846037999668091727651769590809804244468260961635386507656816349842856685540702378747949021507171467852951680620765954088813204508729415459571910655729286825779178442212526595264539303079270874623275883568453525263634707464840418362752080390810143515123854324161766566729526076186674304986283771084367908551514172012662011034845339727017506704944716947747709717361331880228204589303404635964451056337895507991462657132692439200858829334951677426231115736510134924269809223659331148800673368933207945660596263151247397821977848223146988666898530442218012563614013222623183462542575806496031432994932600584010314848589616004238610255202095446684688807858263795979434552288106026730798328705641744289445853219975935847933394904711512039303525586490923931057997140342230537140128896449866000726825944774914809735602470933746604063199902610387559632422345832343926578258134909792363949217361468590239787255169725563552328763715295478636013835391733778901155858849337054735217877071573988811125771011018074859817746833819033753992427945178832113859987425496829126093787666989199562958584701053179577178595047039551692382956461103713055792836689141538008135839886601458086253966631975785258096554208600553684328227420599870765219716614088502026906067742640152667310997655824144877849602968758621661752154493636734169476748188881145181085357996743075498088037219470591732088885445506601963400030121452076814377986135486520658915131021690862232374077965281060019174627387183421474756502847981643307306874985600555912814551729836959355134621516752979188876699657350828552816916930612484105386114350297280595168590520112555387246502438614450645417753017997797337638879639892477408574816196705665085941349116360024027902748492124492120639844667521302882509030883980894604146239950722585874622776708370934074102733674851909828579627397821023300440993015739646161053951082223609002203307621246219668009510349626292002563209614442792819813151600816702034750157624728210861902981989172492214922646486064751524484891323168593882110925005683678756014155513906250971810007661096638013818849778056931260364079087267090351761021875326022706638229332763337360730939651849471177827913973257274851875836468539626121095983977365568012114529405106722888403777142716495865346087955016011145720070428609075396322864340018469935304582973568525717520138935266616915777877713909805116461576605724341001660877745520207866218379244330962231448912937888875466796675236914309168394508834016663879171618861108890351489549049493028010284691196937989707517845910061863383232769937371071025707412816574699028280431904368827305166250758278817431835016005755222365350134438499956054218250822199191958802381837216937490902181063526834739168928085950824070919704230679995524675315558437533561324520072561894444982760977989672840934598067137698424375815928870246818051280442077981947620413232738561679856846812178075798529813992466122032733195387462255508237121072996208381415438990383030529961425017615192045477267475164611999850529822599236337279164536855292010805947683198975106163142603849009126402770148697995385491326736655480633874789956362781263864882066692761772756484577390804562835204814422256600783556570791985097563960311777962374023044106612336756619720832028152874178712974909676946590243173786672842619503886219768857723941473859607451798953791873830297441561634356263239327931213991887932702397798074598117367408257823366030864863330186196917120018438027975629559173693983108547623044116986579243313961008161014151611808405860775622095967386013331783064880612182064393020278332517809093323442827075845615639636706473180995253580039897782368173038896757951029683933658598167771608049070861170528516953018894077291115528941531182236174718147429945162989282298446529603131444172708929427741377260115504092102024987621511875428712100218966382769611582092863532855235429274562557562951383444900140397334918546899021583325826249471541421043701283048485979024388829168477435700841581460657086040892550293466898474920638155387202752206938323992457374836435822682654696285235720241016567319348988519699884258881482706122757088298808310380272144548180473303009506996153345726031802901220877187995281701224668381362387844952232325045693930991512742526851470608019227427474393686648526552400978631233533180318479918897612346980610938653262258338939722774165955748130231123982465813944801304781276126639575977559183369131813655780777945722015952695365357081998647321759213586733113789201702420196958756042616981100933371788527648916498784695560702301954963036708937518421782329842034617709532629776127094437781752070464646310306359645697173153019417103501356455586203870890035857514895222682005248964345128551995423197498229759585113436311879739788700411915876128540725178537657138401332410511765250437586389771165377601917640319167922215800313703526657120943723253212784808289633672935089077298797703895522278264779054302600766647392588180570456372978628911670265987362670217248930577234707499939017850930182884870761475806428541952583516049819781430398029755973501707047513575301639994533496305628533726992436180963975230860191001930657738536159180388498902830149820705740059627830477611022466756940328003401253747100754174835399078789345340415087831988747399725438892222536632195219600335983354892761257913569070968215821149683087570064693645158584717711107622488024340130770435068085066705078131884682260814696242839467567159808248592101050304785092757488700934152465642655664966489291584503324868537567709664479897048120632996965938870650155526577141631644154529367920585076764736784510044962528491531088862363420787742848156518257388497345153509500521405484381576976507722792593120481280173088770143881425249841650936325191151452031589052802226957669866685656169696123880007362052993053188226114105670466860087287280558245711767316668626178624879770924736445924579383599998406141040251595650462254392703751972011457640465483632008506723283152790529047797939854507954541916710117545738630963669866409973110327600175370461552752341796000331186272976705325660858363148566770300260289884263163506876623661220409337872957491824287326613898514465625797198903655631014399678240947103296467202744828597525147674319538214288418237808769085582356737016087966460012538244283433542044718947414425715117119190010105849498832296675612950309246684634233809399183298308172062461008608572976200773025680194463241729594050881522716839546816595945027822756032980351631307472879741594705705756332692807582214898297793253189350445743834289979438234917347018147003444728621968570268502558977405415531690063937148471159176470507054607429986673064784687817470549665168245667246051087925976965083396728971401278400403722295929342832631933368704285128333203291731600087571509568208189804245862077582192191559751822979438092435340164120684251689365681700942464167780589452098681675758854607087181760026011577887019225815703809025500464537612989979826657543944857570160190710258333219132373081910795386113788171632040432508239445782684977444230023068808472090364271977053602881927076876915110095237221054666615428469490328181938489792199808623431174905509069857483541801111859948963210352046004550840018406034367664134642353070961979615867760499496019871157929336313688190107403024248751957483212598757112255857469814216403077671206820397166718469482473565760080697372828065275947196013057113894831275609584971960123635390205217788487989494832766901794177510190463640366684539828234848777958352093845040668450834348830136595290216723135398549578091676255833928332848776817556625136025605260356995405003562104314183031294389219392419988829036790878011059575428903746819940273430977236600574926036284542312797085311682592572756400508344795664701094714702724790043748159750956276438202389392602132307350574372833884224846353955706993419601086093800414216156935282668778425114223672193266477495590102551980840431245832668510368822179362223302610224786050705000926438700821295573801096929546438534655915080609008569443449675844190985396483959573509052953017003308459050132344640884296777731299847974824943260381121812372066562047013349193952481867588986125298361647242464894152527745234314556412603247250087462970180932902311815260264196955199937032248479335982585960925611208461687534256368848116637190853371090450863985747051290127933186069528735888707563296971118780640478319419073160901775468307587849934261516724178161164358323599722690948493375513847727819446003016193933880472128577631846740121775352550849493100265066839721581917641397867772323386637639642672258058310961818177598320475300543877448073581037052315214927665319754281304129989170525259418644846419816601757761578629319857761455880446032868431126019670732667256249637806322273695588625101078708828211917829590383549830983815604156746264939134726097909079337182109568588459001827755725324904997016060048078250353406396275826571948256586828498849242105479855221954660147765247770358296314817804560234936906543700501029654609954930014493081129453544775697864870521274752623371198753164747014534221953776499858254161723277792957683685728641306973540109102176340475737629066877967671667036350788261840214480189386110719511368134821304649106623669181177490008446410082281401565583975623068364502847248757838700206143380982690586139457818094875726982208074557315122941602175696237862454271883916713107707032906138055397358179523461249358268399652031631594984064194585770610448560509519993986101364154101813930341419247968795641399359409335024868432395295640366212391889456408702326630516539941518150375055267259896588331885025237528099186870211961477384626660799354963153854763406282322377918952046519212105474753194286901824224923773359119763957376575742733343829809275825573998038638695404842918963573978764415702603047910686701424513793145557409094631016517419284313841160442079867591129748134105678857111354344421043290192359832101388219616280856571489053448301603613718810861986344886447129709614997024228548506018283615043932692848717660560580564696280360736864331416783504917300053177633242220354555785957889802371405009705279025453901119141324468478820815814268960123730306745089513340539764941046799155339861072312322388659098613119168685165015512234423388491576985357941192167521214826782947993990949811668086775917170581327546431627321146070914087912706848208210816176501636269155630756236611958601650859995243078657180478617259643295293421611141078181552380966247061293347609384075998520900976030250983600033426397002245050280687958746577048508658598737407564376505197628585439190142277382616487118708036530379341025127943748136557292134941572758330799484902086400152036284222201390021628545251890014682348323198351808076259332674474727551836200072076492167470020643689817793102619899489220503429411676874356308732007610495297286272578944656256848624678242461168478239965006072288516159390216395736912366646682826427942516425016859745201172502410586932526072568295949881626676485673213208358548302971520162933391462593802086113649198183844071537624938370164350478470352251395069016532523782646250874486049357444109464752506279488371675055869862311673282947527054240881415328807404142870756285004192568682622700664904407746967095328331309917613512160746638357096317444672758698702355412364523761373213553436715987190736274998891924773983311943264809386690488070354078992111291952846478761500466909910793923415193386906653560748799929581001995519832429138891454739170267156524285753981745695794698069206696285251747956546503088257462112782826437259307132146073883107839817646576478856937399815527975973091985786711222735644098277339830841596602347195729976298513233014316541873547090862576519069041242751823274137549793164216365049872054099173278296871502037899731895313585227697384341830312936494782409800432707174455334715587786096079772852082417793760939737923101562904129731463484533007785918045857736804298746751793849580866990630102216747589429947952511917990670287756022711614874530518146397941195332394854154967438632630837242885590254035799413528821092202132890924063659821486045883998413090651593750376766972715145936700197635558144231761482196947710636634210303576776952644375930731935843034643897282068657259994206288958749769270718888467022400020005795910329580691135253495793901367468918754114596231249074894756441666663484348460048278120497470066971753002075059633720417619752676034618453797314202699251781248322151118851498568682837994962423947396025491062281864748689754892311977793204187618579811371567028882872589151838042881748887812514500807837559261207052977415643711505253901741156330486974953226530376938618495784335831505286261420615715580908736773889792951161327259274682017227281376780450022627399723493721941811426940370812262911562175211269502558366472132021741600389143388082707282256283847900649072444864553829830759410347091851118154957774504741631140271687440421256764829234795916794235021225604818692560209351811076535970198329766976152012278017787402239410293379956604759697015603390267194324153311800000726273544279621545646111559522954141581390778519852130836662120590158068165176472032486300180460685425568515373589072454336700361527846172702512663411671292549225785189860205838831577602765707997366898054293545835124585960642740992437632351766898348367646078779661970422867418681206741126898339075985007663660599355926146504473653535944853654183985763738381504941786588969675382405705062774615620194001344622369682164610859795410895831932327605847009226107208034774760321605307395460108271022275666489621891115030331040768484581796042592665118482875937128966737786333977361363175045251491981196306831255737506303766504685956838486260855032429575728797122588612787475548940650436512781005249524058216472668583880785774657728479012271508517510613044547815197974867844900807527677800583870799383756380287192285562040712451230678343258817724568978475746135617917426189092963936645357300337134927779773981235971224136629981071112218261154136219818633814741704021512631175149143621744715457755655561525896314371325141708088633452477035889892223330275351399894910993705279196817862972600525043449505677380781680215597030551403856026542226499648899876383484621340449159047501041821842109816256024201246282373029527633246357674681311008064256402712374743318642505440575348931167773910939754988147418000345200520849242647909497337433778806042566730860861029162403807934761637253399157347737650347950137172574603345838302997641402802283882106048046693905402027474539188359476724918740992899317954418774013831778263553146947031575625898613861405709441398194073857277850918310210907767098553530738475872301339166737368944243249064048398382002411288756133428815412978269322271194061122179961750903087900860672769231344358184007127761809180917331012366219935453035474827849879137239830064422930614685376056075697860926304481983970267711770434806535974605541331823004608118380761251134844277038658669949981845323798714305636394465907263917691367482524370632597821525786721889382328789146229049421599243029996701744586386025031964536291359939809676885099785854229903658163860613597037173158781077177664911861093071269510761647076205844642265293151294032671411295573552755291021649207522170162516906845387854194808127946731819397831241394715970180865739601392736361719543157077275264030021642093258264504852689016230048410086493731854053428308657143466774900123554180595669278752487824528447983516999723145956209103572142950306573962429720340515757780384592296353064391058874583403888423968352852344781593788302686806437153906896805880011650571383293324391110917995181484396614319119169051429445052599751603879007453731244434202134815773064974734839598451578468763388332765447502305378726014739929762781662024423530933053414122388553901264668114865171054562909633170016930846067239468380738146538360462305828353799224383190520480425479411983339574952772812941609785430563689168978583672633284785282255397881104778950694729988938944562358622145315454945804642031243899169794025205622528321963639351267275251387079269594377834282176361009729422661678008313818641507466985083934270400816053571732628524123078601095052505680684498493664344660021374728005677113600528021598820665959148602014495710382410532870920128790114683475727891223061930991541704358797760237587071890036399573878987252246481214959978939399543835457648028963295737288237917903647126093163986760405191468295759900033263409774680477572588541135930506709300024556633850645279694979689660196193551845609652232294238403418534904029457637121792415628143597644220534348684229349622644535926640751592398067944812931641281930094832447704409873930127303393430497069667712342771254985940061288784469627058740953716717901162716646821711001956177405724337648934430060237495166164293173463173545921964060277880810994512912897760566511881494234719327663567764449206290403921755072003463147243010720867442547742944999116343456474958783772223671603521204055613573131811145908907931610311665141015908807399650135329579483638796713506427882688245516167811491192074023722398013365125097859512209052481848141456863252610761943512415765993070557922970265708562007091061888687867597780702957338427418457449739500113397275334525694590251951444686441844531181390129058111282507341751961026393545712101132315006115439448677312510347945343951647755877395529951564385663700394827390749976202143970305558275996390541679301427216390723700616283396956099354793341345636005666945271707811964904145772466404090575601243484126168873995715611981969224457798851550525874810074250381322788653856918479137329829716558396889435173458141693356087225677701470481684628487819470182737531807285359413115780422653116505810444312907230700138282241136532649295293629780043990348079174257438926276415842294748869902890445626958105341329702781949305724594076577770390859099847183099650811281884719758531870428864993892760751587724566721712193683108404618307557789210625857456921397473083654844774395857123749702905629054315867223105170520334633449188124138031161141855787211924817483996471229209109758023134395417091415238835192903288586592432906715909339945769356968383798437724308062307762476735793132846559251059093356698652391343190165756167442843944493877162895653343730917033955132330187199667220029214979040843646560708744969696705367841667937081620856451858859020102636676882887670868544831111762650842602487994987083978236463152709117539440524681458258889792874119342100961058776944567466658971609586988243777516303030916878871138324063841863787388274837372776985085221657470560787923587030799289677052402579568272636622958774911182675306793821248148085153493802106254653551033495842140314607462617531112163436204654929879751232397097034880121898426905645558051245445261042342820778060383129329432208872715058152128504659436035747229166701317910904018085476514140161973847539638580031411523627650618981323210447169056149052917945562358307022454486991555488802516897587698959047264019446797613944146507019903155774939728164845276260132662843895622313740755745295340047195805606427031264262432366214838554235544735698480405864158345084109914498500296948574908838500102788534267468155840158974038095942275132985322903973920960974677434674222945519990031831771616115080235670548339245275488976123642020313434879888937189939360442706830814375824296188495541913197350983438247628961248862320266202281147515863029488976634175889661145624089270684628900619553745514037224417989490540472565936965109544565209127817085674078173541216906237144718786890607366923076222409326721873870192383461464083297623159256810057688875209455288592450903680190316960495229706524890211799152642899015145456093387119227413771399180632108635304758182756583527288739524598188351855464126279144375597001262085320932543670885975275527052010677406726020861502936910911559969930129768591903942874829466554594484127439603782384782011398452854689549168135432808950686337623235733912722570892267674551076296245894170654025955662137562089197984182808426821524843794920275521676619094323307607983493229137024142926784285121784957746935882536043677293628173412336306494792994285515389641197935282868367285168619268557007586590795355832607418817831924005744577559769837352836956048976576032959535670612963434530329508409874378476274135011343996258427129739918918396299760824186951126440500554886726868547637872388226579142732776491397570457867169752654749548300206063565028333921444055726005855858961052134752334266314320092004454738166793520715282466541573898238245579145746462122249944039671977062044929366847322809770958989105008564485169467322046674182375437837809208471634613503538231552469312559535036098023456333806153283390977832994127611855103128121620403239071102357170394169018105134232391829583139430650970491843614818029791906568907025356859182494473145704542468924125002987684944290981134495918820905709186099764696247443729989477038412174327694155773592940435920099076451343009498875430195331719628980202402915076554376140263166441018474904686108068886692544252200347681139624867220080926359068138520783942604878899991151730170300593773907581086871508228826743319521621127735567644178027662079087952036238866004788999520388198325003345416690241624871023567563654497536091511497690286050603713651707059894728451322490900937189230372636325303273436943532683478623014722272567703774090442086037817399102986457216539601241588580246720949012118947851637793724406179787134677194822774329659722465729373960618149346273668578527663546709250217928561859981344296115527577598347957210438479645720069694928789820497980484833138269700768744474291789252722269231577597290622600684450897493504235482685111106087081840235481964465505064330117050281050194232211033961729007674550614704072017642526903371951727450387926890261509476215889204931337570974543381468450070112569675626936109201127713915070908911288760790369753290421792165440807749564709289414142667638820410457581948562352480426737824162379141334380315262438368113333661334758063701252720679893700845254416181145942822829089416378515209495318916965085591216251793588956881152462971752073256752552644354315209429122299998142163064614320353771735322436643301553482755828669531809730891304207979807617586329356465680892416540074689495370168071919252690446596462732409490541901537156665333677266821371660816624739923803384071069384979224220427443137130733219353582915475855680048244951276256094241419900923327471294392503583522399154583045942901855522758457340731305346529239005036098399191271468013012399005622584943715430890552678879528123474069366123780030355795844327567219446452561027342599548885983981231738158043785688800281118371710457394410625507985597188912301812222369549143956472077222820575412016265603617890356426795113662162048392501715702316712663162152806973907679250970965658015217895732739774029687002410584257069638232451939627170636082546120984660732735652121448074582983931571698946696708419753601559873866602063703967896169965335213518264343258638950725951279991709722148175122361471859740206229375594497962884816845254105939475842078341335164837122428082617945468379134539184946124971399933562094463145994268245789750064135941976617690237063500756587852773945777976780885308223730709765558596717467842869356318018020651558985473240834793765873241395499368266438880441730440318330360433932506711817203212598565955884168390468754782350338768277882557780112969268753499368878459901533163091816215706783139810566963358831973093312562456856681889066972922108773705577341441083670512623204828366466977379340658149708602429956003937275116533012386262012516134778288606072202021899485801813074532270487252715944367688524598110246917654645209852818070371161769993508352488709620876056928044680992465078250401312486134812027777484812736500683708854640636408286075094742430021091917779188283101253676374965002200585278529725499573976781140796984557622855932521410975617023979928927823407156501714618932750145010201477119497593313779874626270080464732958225528669366781162638375627218391720299234192696923861841772943386205859733017315623106684860547135683371186834212089703025563497764658977789800423266858947507299934814631768776044545909923137012698926436694782695456148627207268233540631101414880995422921302820969132516417984498117593169652323108801387400009473555595009442940014055037756195652287680715850847938078218646640578553636636793217565658647309887309338799749294759314797538139109820670793226985313626350386654777986207692813663961170492150757533923324814542653792787490132996567322751032371975666502806822349976880087635121906634084319438029022852471549296983106388642301090393958271722002660763183796628357979198712428240410820623697023151614529618159547336444079118921483160290178037461765567270257471284990210881539377177421016293337751126744574604131258282215910994553795459746731599010156279068064488705176821030485757470070183000833607013498189032319445953018397729251394291166969309825075167795690492405937373125599815396145417167991280145332380876429421170367267950538562519060919417600023587261602219334127548487233889484416369038047001980417678843349258911509559653202736881067035738343376349912626872692392239182899374651402364610097887675095167315868589712849045342400100618191309902819580612890183472448046227255321596269462345611030995059110419401098483500793312595460352933218917542323206313872192805921008099572106606156983184498563816181734653280513584891632013385560471946435722276496077074980000907137274144773972369593739917888189111304141642666982523275268200698077942916686068239716200037960954210042098979944317102545212079992257207461032974541015838449394545320391445941649679612336404346651067347830614806712533708448024129661957171556161906776437185026279412733876033428032406204026551475980745827327198991012382783937216593225576307105273157144405288148015583773776589523468105586124687782735683013161012375574869905524294813327256890870000394276794060750563582224535840832061501127253887995016753367065897826690085298644448276338123081179936644766952823843073708167454843085459045045536927005714184995789283227827346512323569634847533420770219390158006623463063934655227674256863930383026410980879625958487681252630368568797352944306454869175680747822699746101462115977068474865898125542029575715569342225163041036290677254645707130770638605899113382192804588806418981611854064757617078205841474144640017269266149702454189915290957838983297363808464373275978249203196127255779249843602873900746799636361170943262291233150923556046713592343337168029433001160720780508791380019809259154401775210764571675594051792002691024241163311967343643704970120825683429037677580663133101283576777940454707311792937813673825135938428254893462151177001111219113066625886694702385826529511361368494423240001604982953207201306405534160595959625444554200888106095071460949597170467893729802249791740545902722903467340599582634357434228224488372108580946275007625849818354446867910566584001376012363940847315433930139480860458930316172678741033059007233562330333695157369014820196409474325164510786892782534915155618407770418679306596270619772354537640397220364289464545361266918387776517925059152322546520899646520168590222515414399362947466945725504472158583154834624380156791734316594383053007434926633547514120014826559370796507955203420631571570179706655233787683519009259201670677701033503435706523651482244470385681095322551548632589704991532766067647464152740491685241972620975795506112515873813925065199434749257724118730528938684207903586227670152748675421440844526603589631883731624429410573821661640009564593082515194842426206188539485045490923490736988926158960020250395195133930055860353688775577986900544803568234222880173652837389048836086846404788869590040964553223613336576328983644477513434901229799808042027011535601486374713325937643179986544791803549502564241378784063334014389330694962032612362623176441098726010489453330226663165044127524744641979407825894208709409381202852397934306047083027797018867750867489694648406212336967107247915780535802883409187091655626888673322714775320039632978193043768537615770554965919753038741853385334983491546398588664491268032111119115091680431250106518454710251183481797483858220823983681490458224408835463418719465233765973506256120579249898788627056592288650542353577927483526094972876389749307011881274047484878782507314477127747673808936904313250583575623863060541708208838001427306823488850080975274017517554887541905014479617549553834861645771660502309828634718694651498418559462520312377936082690404338379676168669548297834008306189164178390714803841444937997108233204792877773711992008066133666592352741886610434169219989617590680160992986021893189523829573915038243077755100800180059881975597595974482352832766192619064886844762617720689059011972684413958618171232009821882054780086297055709878274044974428747022237352662899087170406722533135942004497769984436809103003744525016918072640905156509599919312929237258607069999996243486880359643181613980160835165873336087702383711138504699854146648906400522416877509793364864387659326749558703497796340841746586686753494397004517502983084881683944046282571673052022643484817758463163161518137737632200767578299706589178431371661881673961699743885488792697397987834580308427043377681784037155025774170527987781888465797403438486982638032154303447656015591379843942477548226603645138172959269047965744170548116271046993030049782468734183627632520233537533721474838250690020858307013625454306854367303778230905582583072286515403978625838153371469494130099455508673206810961691732079169068337652365260880798391503231293218199490200511863193636681224935638650787372885697936973116886374561732369511944110262986134552692523991801399878314172264434735935860609108870218994772670312507702253087566885684205427250222741576935727402773408876570634165736477495243681732044209706049797406955272429627965863123975600978972612218899928405075897601591188729183261663162634596684997762091831406205181817755336940233801983907609014142615077732419871705714470900361045486665502603933841890794380883544032277175048569403384061397826920787197547612847507488001139982040217355805870339081477117230868511459564756022033485868602613297411605012732912694470110460159869362393095211570418232363542928225722538782433080489384228038484641334298422533667481044354690828835245576126774391228303968561932301210557539097081350701832467301038378146718548139336927187867929070238568849599870616000351689725752638910907860885376051364411227466291222880065891929821165386512953400036386596325003441947580414933960335684607595950144855085464421419707657695909031478980473647125635419567693124304889875394859880948651529249561249176574829892321631644853000465592367639202771698362405245598687969222224103577030593497990561505900958455934364158425406650363083669438607066004328877465057394853704255608453402704313353743150246633434527922455947907756021576718233150898065290637409005178469902721528076118687836141244720195864882031861880327727237206662236383373599340084582701595001238679704453812588899831736040178605586717586173683171965164215243273776064112848097997331148852780720354038626055014253438854697123531547147865068585806677554365388345078680619672396362275251041410974180931453181504069011645470821410247601509511764397646080922269760017464162987598428663576590508087580845468413277141539374510015543572510338500027127730276539856764711264825181674167059748660951628909059323922673301230536452862815641642480169589621525270756652659503924946916444377433241478597297524865445168468973974048988229695648935250306815326304969938913140955997248140135009193686330391452752291176586822480525219060255675546998223231813578903768346604660853436048968392043837346686000136123674139475023206995877591429508503522973443701459701105940750132861109857684827618684370058448300488089757951084697284547204995749029921089372507823301903017629435668971560685562440798597094051103550087053325820244671548932825403002796244490683616376427882637399841117306740773286563196224138947282319060882999843386758677411319327620712930087793008800506634499238603769278165391443842610012690452586608523406108558730446088948470159643650213176861951328083653975043154195070593668503583709297837515847107320482967179624999905456631979879947130179063204762703966063337308058280568623796528569235777107039953751166276059715558733312455018602479539567704377050877522486432001052659496270738764691070194581656507479790670755848968407788150313463433888730530020147382790389512704074980004192623925972870051233243720648099281673309646019264401882587884787116609619205183825511156814448882325608064249919644164466414146696943377867794500600093416301299300064091803332593105611858865116280051087918649553758465399025179885421983787243032731799603044867110050228904630915496667259812431517959740966418320355063815838589463418111849987138503542551284104232927198644669775427082245184799308171188434533286419467461718846736846801561556841137771206281190568025340978388248913055240877790430226617906944630470643614595861325255055528148530487312876041585885389567427346933619006481038962095074395576345150467459471472754922546709955293059425004117936611949407480769614287897098314471037972876678121553511523369184662501665618697012493653180319709830401055426800058237472054933585354344455532621247940738375566461546488636805517789777357333562755850196579975353856699199123929590373089222046092183655309633312081014541500851948494304441744707443294047458821871469345150518498360903407532027440733545769826165526985398319292660239924500136997329351664279487441433847207139134950445492656990445644710237355134213025913771618442070425474531267872307836185178562268156296225878463446670015360189449499741790575095548042872379886736849813888776047802980430874650884227581350972704835340827686895339070856793416935142289001291811171476177578427095817034487558702287032727065598536250206925913648430776468285283109496557996750919186843727052673636725363478235985930123922861737371266262238838888855157030863076040905873332281188371545487746366505758437320639328978970514459573523779912077774809133063584805175771777304501927283624247644029179806969143295989116604258073837052502482649745333632836431659749899196393479546166830583604071224816780807688565599892552327893171263566222638555060069275309761638426814345813117884998685244785171564981843506003891975290538333986170436511149011103373239168097045402868663126636150824674774026885186720608131682960836940721448956886314705497633133720391173750517052355801583427019300215530363546439277933526734080323804089788720116290139254765285169270530239269913561784168463006761841860598686529290911675143233070243279487812247341887533986920011662686849213859641777802811499949627863991330005273659020332766961708775886759257432727934490012652129829464977577962697231145922964654172133587115793910966284373153694933960720084523769551416262020868526199314860305483840230550520986325467676114777969001532328091025327982169597056525143263943742671071210870104162181982469975198306645244672006231469487793608465008170461128896580579479734763827380958050087503560712522622037006441872830865805789146541923741774818571619026345135032830047369687319782555050854245137003176871042585737282577290521292842652370854011649571820760506862074898984828791540149361968464701347891520399700245931889881873164437624037266158588526251067509748571327276405510252033007020599579026020184726676480647316781802873570765372340462907865705360125482582106058373449186013084128923744569554716769925466620428388486876171953732889094269129745654643241249006030511678679040877637718450013850951780442905205354109763105836616376425476286397268245267070828817785072769068501643719730782417627061337476922180428097524046538023487940325293934984539736342454821617025445603275211923342928536086864100181955752398239027694405290373244322636774363123433159625236954258786086152113538985124554642603049001358506207835750299118780121313759490350408761773433890575362263006181896097454707601344355846637405834134210201486237793239451144522851131062391624793956998845420897221315302236301306926787647752169017301719330262450152209282040168797103998119268793985121701670595697277592742209073885911355539810640879952217295773395112020733716215102533294656997608143521772367494328815778214886524452133371723171061346114098321839022122798746532675024767302281404522846934915091190277104416648479818376276388675551338112875273269529129646694610592864396628440694082611411684671244981808963273544255419378443320101390548582635395673588110564226381814230859411007201768564764708193524139619733685177328785321686416764778447538541033729883895065243107834996870360933412124034627531379536989014445803776529336809609102836958977511130536855022573539457795143925596276657430174681131474336349289119309187457856038777490289130913446254027218680978556659667012671755445863164223780819553079157001168071601717966617400037687965978498231177960666230902151609371464802841784610810306780834032833431083247374139826619538918827534976668581366973502128448184233163972692237209446778874051815871092794381145435850238163365679809322851676052594910716590778552652386977203758217234359080767269705649868721121619376452987930779375884219982416633892642097142529545141523058070601513133640552993547735744039959728609745613745085545770472421799384627005736331588900119072420338104281223054113018294497717479387825777017119081017729147004533225057442858855525336713913303744533786829956725584708519700192248861084243745200672859394219796936752942804191303373984101511001308035210302205063957289568910607533300190770325021215640705793794032449654890743811127960684437665309493760913304841078421995907181584395281086847447535417480401935022033598655180811442946235433292552996187809405388825583847774545398035628516175194140658370479948532879510590094049821622912446103376342474571525175734526550428915365966442361206605089354057433577063594408931578852246738817979505528540120218406937896807823095590481228366823542814465577599723659706544220015877598983744889924664866832264204776674572801416286100122333881133190033716301492928821931798191925849562886927184527267444400323630647057425328051839936932678879508888049382266886619627471677325766397739953889438812519824961806481017006181482937706441462751132280795550678703198975450379924782732327885128299671230869515113504653657845327323485275594803315235394009543997857946479091487720063656205215726191418615693352028587452847884221154141516943069294374667731956797942461400223683624608015364614536124681111559589358922672667922499169661081463817364951606300338274241503292690595942174555170604153159697445219542048325391869625342961861017511170202658777025262593631399208853814576145503127902960488473802478510585254217926385171578665137872981471053516123218970558748709132102351816194886203042094031642367241793313196509489889680695572938337021521513702292735720411477111945452223856539939912521434595169437101868055718387020322782539396323611231680936749095810733367505861922988129322068785593299827809071947023380096387015550530523595972826059376567677885770253924631123043131570056829578072527767967552910654333481377680646757889350176068473082900606328908588962722743990045759660203124316382156433312072129432367561424756070704098387848031823269480360971128406544431168277634719127225233306347583164415215861265468609478525874893955009090940059206290312439704935853216289571219145880404220580907244510121546275307390077675561174438766115495584780662196743992142693894148308000015845576762568113333028065454601639355500292360089841610628482603506121338457124591186530086009380925386432380038171198550100236692093856624258823903996413685316505629926921037325547158372063766560076346795129493719964848649990872616969706181671899312006990373295798933812685808631309013277508625417319970273144833547414567802150550705567564659784613107088427354897210928922499445296162769260345730315088933328503111914378070111901471487926882024485339572546778966685641295612654816591809876219623573140643578699833557944875560635533143976537695779497478953689780963198317715150304299367698362310218913951963412727142585169407845005463437713197271964738507037695211845245921569354506391747981879836802123128833463770137826704642268471054440077376478135843438343372412582953880751371548208456377510961552547149102860672446661198326140096977526981280198505981110874616718570879000420219960325356158953259217396121835584975962874123204584487403553280671252319153894726644023338941471078630300627916972762135311345040556056570579546772934306919093425943333048180204564886467340476059712712137730205722048301688276432609473333789177320396444706207511556491759380175550558611801996209569539587073066552054107307878999098754656627172166441383537231375246733314140484009383282149958564414726312398316966757559117004137780951894197450982595014025893443515748474923910303562111051181454843659002367534349741224153883633722448761091185428035458229949210073482036274949614334463768345742093884105644144901682715843160098663896099508974988002033690823771941900596918509983946146918261483746389270874303243836044652667930430591707986817644231400980411095107730427176283860257050621489220339433615153562122905439151911166515497939393254253678019955938326479848919608196528301311907366237540752778099789852337633714206674534860142986069427641907381894768722877498540242541616237881671249974953310169761280409039644466964211288851252118356058329415164644321809634715680550471390615614925380850247876924252925600924527444397336857820548039457440571829396481072381808333460648739309412408999715533294212825493014692641650145795739881550552709785631355417094609023163197615176481081821442007270286891158595938859887931093462878206996516560932573695292227108711793285544500645758488638399186722621899262249988220700196963003648763958253220016116672503951163984725140030976773200780206673287799328993127337586236869319389505493103551097828774857130589175808058319627794325364014928792975072903954853062257214279889919561816041740039898790670135147429565731507005191538116805164904548878178839666923869237785722243591983327232956893428444887473435521485284273231957828276953824669705283781589139252646667954882881944983553279772275961687551444047731409035253730395928516095331164907330579062179031455673483475806777342202794003958128392655704796658858283863156996163157529378126304374598182033139658509856850851354489598788882239152416329846313678286105685543720836216025302827747269198910893407076095000043005354237538623647236152258951552280804166707023026255380966318526516863228485014811122857615439133154838047818538694100269808991846472189376649122812575257076769097340028203725762579084424529429467470026625190688023545647054645008915961740802008788463002240419695727303034964205443437524833732587740469866854953579201205907552755866428450838496703013083797037877552513760668698240662115320735821386523134427539830274055992681932600943712938437419779378482543543229917576641311539490228053871152070896335738098478065548561694768495838906918424357292470368417110368673971028623259823036348929244388539663553230934445668962579943105243640148597395445537215192547076327559860067918260799930696424994073255551729782541179022416623328003325445097949429891131549325694340953813817451835958030824985102212361597433432184694539447313078308448699088687870698781715700329914991609818883153422863018435087638715380023496815200004386169304744178192494540226829165388878790810667804360295958143054477819457205649321382137453376052042381340486857551503909714810643457194898658500295964783145607835394246202713170030761867521171422936495593342495800442757158368158703004276595702294377346724794125487500987394739569677755459558799723815611332494695562934530138416246926284913163755729889672126196063561995847699713882752728887418991404660705945733449163899053557188917197725694872957090106897811071507236178902090233161562554554005421249617676884895286536652112740491650536925709749124358925789245998050455257163777368527941691687632550269517299015081073167351172069978178470758805352774653541911142601658353622897644989847046589189507152187297191753724368795386771333600441198054420579756816897516379057709806638275327268241231309319886553758225731640851332007870561732345187678905715511899862070448127771985764534486256966230643793295875659187223841442407208534333980235530125180944344072717329745960716939725728052032983674622003995070079995924660758993064470158244959348104942036702810568401806696650433919313040880053705145638043950845141107735508343168496680580496408238288745197790990084547360029322932101904067707787586541399751588217283634626352776992418552699612574535044807788364078741672053770103218320887647817090848912342237383905876537641077144276717219690917492647201877666230443865756580621349685786559076438900236636803801631292756482730522673926288955739757155818238003586399168733408216219475904168060326722346646401765483813042126188300931178891978796124781307343975758050565693925501501589518787176331562244626918282058896087095181320732256716317121436581342014372125736367502592585889335274806364458894030035327620473947466698279722288687191634494925515198523676964281767445801641415475993290051766955717888005278888637770465576915051857347107029356449615880752657606639366518111086191657933195831146519800575203742247325300385929093667772069586609456604569495078983377335429408820970683700277778742136845170127722402744561845392401452854171296702519108788490598513015316315451260287645128100991776661364906423174066314996769114200686567058622891894495703697243181879632010966372896167990679206151700135981491794032982390848398425362600660279273304246472975876301460178941529096151130305256942738820287431500946015829946302836193428298714370583690645109270725866051690722503678013215592989344498450405890929405847819348466494740939603898930023830667145244992815064436458449869496269218469230530229285187771194399435447393758557272783891945172793612737046927453596328093328588799996907687400388929559885771351620031258736245897419471644217749513443199481071847359806377847319128306237391739615294036320539147344870610394684937301324432381889878314774257039416352373557537459737513969569573922454138782340813439416698757370090140857025106183030866194107024411768820649514846351570929298880355514302925778217551042129132768698848454455188700563958264816803699469942488500588646816401295479683965115928024275283159032186565825062181488886125415839796392902579666144476886702072844456904933519139771263297727858068516246653158938491473954401704164871489040474709125611138991850187666649487567232287228096071286027044061516011277981849708510789213588029600780352908891562789451481052719269808440847921937387120419304987254917760480057333733669922422716347944445563845315148928432303996841531195449125837811410572527766964539117423291238108169556042603478545635164681924510549741930150914400712372235660502891519549732668323025026828401461362542928103110779712360326019600126998392943539362984272458422908110879660077517930953480010421436807066815150075496069159043584785879533800661183945194503751841597243354922813133748088489689446288295637198502659973224859970828587158485544112414662677765144936803901851404397152355385000694074019978389890913227919708284068886830314156146208260927189496596819337929143630668750011557527171667371928065328879566665544952486709871069299880678434304167643488918325767761021748178758339602411263533320817257145169846832421822081558576559565437112331366720620910263823211169522784481327611550085426468386616833326806499813847716119363490291128767831875179031741920354061049918089059776324698546936816183352566461753776567504327837376211444481452876309087022011457808023175128867769145026253550030248951603733101025637447573029873979458161281719002957922949798664655971768090886451059988585447918691801303360333834787200647573233504860666226304183310948023366018914931317304050896077332218284584241847396008181243637584556292252423476932627845295653875211438138099996456371868386438213251460441480136306169783704249317764324101678173354815122292714967825741596006513810715296003145290914301853123349195913620859778696839995292993829254543888337169607362140758384717860350930684333306610528033767501401955968235169193371156292127002160116469871930099353341997497045659778946927820705482366435758195184582861212439217746968380023559910437914774229365841129791337121985009017067898094200510703388244095867695589296939748959595372045021978307286973215167466846841829354394049735528297802267765762008717185643466054801385777030172799666100345736930571269505252986112310015746459689976239275275339858037716290987631378494104431072410458880261544996096591147057078047759678606165826636971974181487911256753898178883511002480942934889690611412837863009766919224447923517982477769226813159326017949232473203501458958875068285498680156077267535798644116518380424630654026184335499610615900156797807820085980944863473761704957520699718729500321228970883036350309858494067622625366857591097410908707056150530960880207259708670801501299829037912049323687145887906645375391153651170253830954696883768322246289303491171000640204961591914185301834072232688910838019345342578379081970866038391539154848980786707829298618733800997434822961152022838511662111002065593456852389490589067390280433428351264274663265318394111406170124487157085917198028194031092789853044582960500348574530903865967964517279434890120989451949631644208428858956576988985739033032254727549236532863735081428023467450072472297430344805843552644969548492054462558393941368719843813791893977782499138088178492601149446814652618692815617450074289939445711283645375535390978832820229854056987981536828757792288227421789688464214200906088934161529169580973752902476817230808336794370659576055468460262929846350891687818379884978710810433589587909868076981030929161579393735433510727981695208388202609032368173580783740323747715244630686421411247807450895799585491853236884385309036742220111382868049218277983199621670942948097076515916266011646538508261309547804392309247479632035205049465353517164831591311003819422646606610482529076463013678286565144770897780779215426747988571668000628373131978240666436162762106235538789660525964148767363572672834391491161072221403406839999733521352766699031225886100065817898605475179920244305617340910931599543486774972912068976340386413101236482225005175328139319008070782296414990850257883657847662704002149628661276818610208096474602921364643036303422409593540053476770364419806618123467112074683122764161060145713338620429843151962555191728458189078251554870035481376325884531549478361462960031005023299971666711411380506919543070654553886641614740581950172878839443987371038523890112703057838048309649535606104630951659515210758585041809023834756510897737534489118474882373681927304795451042500061289195996430919083172364994952086278968628768086267650420934903364603987580448982634866244982399871170584199353198964792878553501045327678962008335968692204851005145652478717591422622214132751271807737878341274966504775976424080844483841145870378707940552547932204165370312761656586493344052153938644605091784754438464063417854651085644405241842824175941748364180719776304665998401959043404756876694313948085097515407510376847337515554802857290250991574782935502492910542907775958910340215264356603298036236774445860392104725479160023155649995444347131728739540330039680442562656657841100602229500411348078555813189622903764073955583285597927508910524507928838712692958147675412978218592791026224855632714263748272009859895759041850162586125776365871023241164514886334239324741761522897716837610548194064715479053720552247555345882117450605724262528305295130640311370622895320639451780995128512713729715668508484223861169947219602877738434154084181193473200951344094920825523600027432712165081716570933327830325566244019661219023344866401610251827098924351580331119168903709916774123284444451557355250925926597004613713952157442907445436728623646597923079647017899128657700650566970721729413310232692461029909112877660063705173977031450356983114351475000885138895356430937051550456525475364957842767005496264159861767570790838645414588771893022709566733943300861451486077322344719689297923425076114355231351992233648299781856499112287299457152268206176324639119540717516882770456459045492880991779511734101778122259176699258344330057460433281946560746183506637161629119429722558316292702402893768532255087004760212962292956243062374206860625351465615603696454340368482775286193988970900466317600338629312006125060609481241416365969808883462287227553871100826756311366201003119672442014514378022213239851171698829690706095932403737367272958657062574167263449750267151586043445969487277167438112110521207800944674108092069792043303667129664373663017628708167200407099347399905546461414665170797674470300935028465470493765910729862991642895704912938225895515514035093757961545936346574449978019709430475335420732763359663560072107545711586701399073828640440340388397045878161476610165032353684789431993209631181846428676757790059278963377486021592658343461740009349016769439496520615287985099401058457427312719499063883728098484852861449878046096110919753942391152118438109677829976187118853989125679220872758518510073405531481769610288552726783074456435044480241088981215031157451276667873037106939943256626506774007759419277965042193801949031709826229863563131833430162639471518935388485532485748328751601455067528878723630573242091737688513382007002612556649235429980483509992484220407675466434245950009070639470664298157292825668842658319101745259739952356710983686063254103562260007527690716682266681859606661141834066656946635274411650989029353205415105164375988154005195970618170505944253981382589838899688298197060739775266980845833008937104579731036237519773340466699164310626618583536217758061196513365385802135273216572675799577352178010699148377861700714859080447487876511916173055091197444112169802350047648541821140359336944402851424965399386656591995641390915953521668925277310165961226847276706265699352871625704487053442471630314704847945213100517410608091674115366625260213086633444261327036844673012880838385122820599050682928621536304942558240157815554245607584295877129529437531791027426248130190949145900949825309895101680575603824782844081816780595913320712338912946655835463848791921561043419736214064199060286033502978491757892503079142808530486661195045254276414295191478873583825328190022650268677761903457966000095483992513048185716922299537442460092407591866709413342727449877499053565389648316894295533373440802806922782073113072551323352101292971614573399899740719736583635124628625622194393769291773619681186899920424849908910326916542057877408105341267668179185751080412068470293132382536995804626361912241850641439582780366521535048745260747333459134413335724555520131630734181664112342209959939525301702029680246688818887205664252342579337171843311466671618586527593602152480123056801664821333921601984683542115216820775717972104007873227927303634461030324373406574758860975821766880389172326462125508676200209354209499718312898921756964666687276072422977071873202010883571011480373181790498149886711445218186658033527458510603731499998399725685207412463282910694825494333049130310538492374669068934418096437262113898732313483907181533021653465956260767308131736177469319146203211770947928039578673808624610033422628993411511406185537905292402220287900983055012062549998446146082853770660009946959136524119184375851164570389417821351831894348998207192511188792097929036142783508092235592778934141816276011692630359312768437962588884108036346939349483821530330379384361948295425728189175338798062955640918168060006234234142311461172758814294075305859890064381894976363221113274546325905185203984675345698496108614568070134649896748831675951809321592691175925880349711938657509149165244200997015759381749905841651573754395361176760705383990821476935102894321648452907784277603070770408116886278293104651880368407440415663475040195864127895674540460379908455205609555408984460433888778648140743896050150540701115292093586844975387857110863940612484318972303967213724154126484178462944504220591519323704010582604001662235932251111519022250728682824360355534095950204646610186443455933596225544963474796462112121649471482328709850971294363525867251050103259725865512730964305315764483431650436861825329090040434562745710984055031765761656800256336901596856987183160756523965838753260053039907216509351900828488929927841305740251819389179835890029937231608852097464372686162941670425939100070142553836036498175870632972129615431619129423497224154490402818920415365113068462601063546067010506391544652046027142531283792160589033553256766934655542009804088872963484138545784870560397518770823948364317726192237690507311994509378072692930056919400011351581950184490066878698140381889013562676361048149791726327421367172195575597282935698205652931228778970170307505256514164969779762903135801720324890780646883703934444427412021915578114005368669541848369456587219548447698402618489460902092255419750686842315623438672738538006664474639652749189488508082200213094120661665361156145238269422047588107418011766956962781927285940350676680791018431593956567987553091816198766827022455455056849585391386608812579100419657778405334448898277305733800308103752408848963180795843582903020835206079106069125886495893889624753438671680220943680157091347225719804413318314248894810274912784085841846146646179220075695282919328520818318229837801599785327893653605915521340687901974108776102002123347446287356133282693821505069303308392152539428356295771164097325877509507478078615441296087495729731254321873590137502220037616099328022630421971165133613026221499451643179226491522719414293047742911941571537400577481871107125659641776628109684953333068124498301406336895746318567866504559907504041399075790857396939171448355766774525513835236238701883516740009426329015503105952210029307789564311006645678569460836817843804710214172049664747268656038345023420106161978720346169510749867776359888839344745762565488098992084676345955111945610178303718869960808254782231893199141905188857772427145576111202684210027006893272960110589750081747265271960294348278715505907697989676698662660385495852009837278841425255546714630574063830398888337144244478483076567029083101333138348319655569396289953188228929187030356442974912159006814444316572214811790513378224183439449999107677486570724019425917794352649886411004933826288088759319301692275551207403008587050529732745025156669040469136516311389435774844730639593602520007536508832809748570354338451202882403972263049236661821706173959830045444633284777804085641389670858142880530779508369848034800341320254095602861965928833921650368378244557274745829398446558276800574663140183155232537825571570099323954605314656008386631573871081603860221633207212839947302836564170313472513619218223953544511040651636329616659234940949200536837843189861545864255250512891540958371127626011799175585679607764629827476920387213537204907395693437644741811183121934916883972949034270516827922284097103051844217996828729263949680652384473492448562827781893483042904636769072456859158704066880299671934436471744427579825701427209254304731374033898899890813408020466852360108380907417240942639580636725871452204421301553972990352595524701293493423612319741179179336867163644863064050080398872076201311541975119883635079676742679295539202306684115355047497171480504167556214397862850133779757984243432593135461268165120004123128021371888283922076525142750220778540038164454657110212441761005575883806884288032481977847215733160537289067753406458522803120109441708590658985962723794299238210947567132407842868030610971502286898914271060632564095359695832932462680674107101651038217874282093316682655196566452028305530969596398486330742644901535578160207030304151650064255081408971044722050988753984141588873214864905815201421779965573689100201380367324282468202277622473314897014179041830989520491555302713178803595728126980279348250909022441389980698128590352845119403086347724851672442039289195418738738023236619165670804921270286522706059265127164805350089832486583870435464564273139174451499340674336380635538276653364444647724496073805549928857845752769632792410330945640341707555287196353678015347284583190107409563071073646814271121922617998611617353173523249184461893286704525608323603716465428811751513001810692583215385397533913133291379696006813860372678591610387146911263887473959704626509807433084208920498204690453706242798682299682419678803572205802077741173667013408877318095553340502728234372292629826059013253018013609298300965136844176738072603706408279715287777420411189326641534875993072667603015441927511975387023839488230361152914176230026262722412407058492984717896522127376033223420029802657319227195459841086975194186715590507898777532837344865572144393416239080586504636578374725633442558796013344303450124547326623634099103886136247954010290735172429898089012953948358810152169490161136883192398030424273171917465625772370099164008212395349041316699943278944636789564653293681131059472030365139571311603569220038855325065942222252566070879856603986889385131641966721867288114998799688394385623827018304278278973506938637293140520944465198075863274191101244842768041488537388809176630228023215787120462028839782024149741325781868197294737223495593644451903830905071473724981823443827750915833501523128559303918294052763277174043414472860967011300484419118451569573433170387262117469161612020145010217269413946368447926402338377804396462356112250465459641522798250892350523759264167315870856251139943678098997384241823989771938334394559267968278378532450592843871205510463284350000661110370042910184621271422718654034504070613956110063613770358047691727226891717230642021955256882105786181291749149730918060644385622613268497483017616517221231851593422713877803962580419737829569642496370219744570988567472786632826781850864691287024544312113664930224342787755946218779617399400290757560455124328462616274227714783402918896117574100725737253903415028641689528418578022037024267986962711103736366904089463333814518365183456964888065507772035464883007151994182123459887978772430722888173560448508355203354785102054725262202258774505157111247246951857103371968189587446889262945316803330210005006204285675017705825144099100979607967118942982378013094744135145394438928774613912239350636386908771677971260316223924857248789242224096636344931289533653185596980815993025415152942363043093474953717037268288422755442481112743126495627161385723135352045420903761208345278680975750899444454856749726500788354405465115120152537457585179209780358692316888474387224391130142211083153536217027451170083826988398725188030038005731538779721300371867619904663283969911003005140992716369975274940789816469646435381825995848687741869571866452355674375556565573357294915877444722637245648799274250095741173777235179078930841810332766997810457309928662653886364124663102442160104977902362914829203552901604401907917056518102670767490887703364518048707062415064652409157715593069490062772147702441489220682797779943360256817005886919639715946232389946549704667786891718246294429432595974941896531494856274435685953302362408126080383527559818194502590307093592534343480628729516317750913456851794106947238660635729654986676820423747921005132359332853778756536151897897374271220998405612770020755504301798165460851058186446685715631996449269638518421594940860377264588967891010669835874175651033439900728393589242284643683234118075819138087203653198531194864991000017712812569364275036053074042726473303378547978137428616737655289546978746128740203170656408273761747906709017610733515823071867670365558023135369542808725449015852228911387340438572822920969589046361500010414969964667921677419621412141856143113451230549403912538886974934925165546815043993933205025776410383990094325370121509585678195336432116236962199583921843439461764020233875223622984465399100156041170751565464737363479051351076043371193964375074931575913804133094800952838086211275688211320973062763414006047633398835009649971624356928082648398094993370193712395056656090408659359323766634149174112508699083132048853300394997551408333934467491928238255005879803977611140861328491082604231666900659485833399389876591951194348093247278218399611306494786494169401838985779060851659256421881874514008476845654928056190898014133591531830140066142692916745293887170395141779873123924924778016828810967028990961009922045064968205129868800982026098090349907548087701904801249825382362988411221492945239127934864770289963185841820603944577166705100700992150532542528760853275037631315609092656117035854792505766218334370918037489501835014436960718951050461984497513598013852707959887252329155143059122569509770064854469067931498656748089707324939715491682495141199773929388258393520042087193634435969143719361612088782270945543449625827542611759190153878884182193385423626243559642020034727696439007066764639643338479288776204738683045141317311972958404943808972713515680395212858105726327219465302012277698646148397182766342610847078322264378469551939687431206736531217412182291886722176004900823876102354288608872804502341431261381428752143039258064344930545663396104335432014935413447800666853917640395528859633139453874528272265564014199420942111424151096785728350554592539057636471426420287148853980262942355026530842577195601956539829271719547873794043705132654113927137166888606657151911294333336286134074434200807183336574978802960907721095853472918290548774236861228879700698991934199353485136025780758831177929086615428871290332010606607583010151776931385021332898231095370640763630031312823521426979921055601447632536333013502905155402384338407473646681621846499711075399680268050465895503136455821946610638342949391592039011177886682093706313492212840182813183928439940532201203619416880190522538539148802631999085793367923393690312744342308606576815004476375781191153045408490737972285378387899302252809670991101755407665343532454802093642124962438683643037687709308732517268619467089457156372451226647401052437674690968747120006409978470332711756565201035298582769887372428414648843278325768102871071880244459845165764738779499145867582570472478030879453126736962308058118383183637939606315721120012758675235245506166515627666689757240314235249563714573026529761308848131698337133312995633125329066002284587098874091655912111883895997180013162695565461069746210460108603092105043553453560305126010181510567624463549914022653850221249676605408876498031265083920472366690945498085081746109176239123923920773975336418689099241544842543940694492114622267837710446289389660321960297753099634625491588122944811798863694756443145014485145201146519751031040116232280422985216861208143698399817555563860444281814200696958002468260963951227706310987917271367022898457661338213683556565366216787371352449985419234871124035243205565019006956600039313541408099472067695569230574042231418503538208272896360946441171115231763602040741944581801222982795919758742447272927747693072592189870383035175220935051493503065531174926100645301125823920354410459417113128385906466077336799815573867235787681465273117001944077072499348267047790888839510780008362915935256648477038812630424540429138699668290535389817373169254075577909907867815561296464206524213003803245198543128235770752649940175734892516490019357829696123157116496872872933284795294115879561287216845736167485687824667503024511783273618811105667910313478949490906865411131187722107239734054784369003487053591224810138093822182528122942681635417485883914087036813429635459266383947000750628186416006114459806453864486136070350941669054210037913249513428286481347651423629775998355247723111778073552606538857021407368622989312578256247240058107038422030225992026157414065851709831247122328742023978021072717145027237047976886984297369320805098154441029267541136255361795172263997217073808256384405674901114599718622494675197532655252838574726968260443650205641553411218163586761514903938047258232133415845001709215946109395675202437504048239145690026563623553957531468374059440827146345722983213044384560799098541482675040413449827324831821326517971515284509189730220047138297979830927194996265826260029461108010516404178216431122913067016637126408382732516070877337681284723129521861273187214534942222575415520989238506997122825020839739720284247253483624278262923405657418178811936032928037457326324866372644731106126197484078434537725484058040835409889649552976644435024284712640025480170863188061986594297671325865645645101922659181158244144979681716293034000682056322029958320765943105836660724031104385822560058693654549924489489294970472461270314179165008578377752156874918583178631123603671519073432921753192311974430611944903648261010504269998994725469631306883618073869455860057434737006700061305679842584099142312833974138396384833555217245684324361724103830664886631096907758645343656723536341310019136777278798353350523779771796699000508009759317109170440896152046596008234605904752989069599933630795979644937793601084306546370322208788058552645546976935720605611202406460559993753173789679816716300059555167805016431116420204401343467672840938842211404760007352433856656853686197850555427309912920654493506826387906886894643642373689442593622481110999629288802460795911734166983098359752217298963878428691063579172171669680292345643124129585499071614956382076802544154837966028604436693968003921742217438065179735336646733686091185813766791054303514675739778794030685054420280621874863880980135330287197938486715170753758284412033260567435140840924601135482398317227490101932759083194521613917569154184854585179335684673239852905740873346765842386527794177328368833151320284312587844284397353677312158751164035477697421210413434179102151247795343136992423063049028321197001388205700179188722785944408284054668476488948418277151628009299822020693721082939127792806090506882991432514383689597224329851592920195353615971155520460510354951800881004096094142742984234533003053065587388585691118660616129428681863080257957675856205209519957772037604088882084706953651783500650572890774440384215215622160533585378379949952538444801973928957301296739430660707364091981448442243786872605072227013636849993728701263309418677058566004230156292855174874305615193858059414798602155985709047736464923228396035245662478250705897660588864832549444031751896329408117430473327769903850105879086997258382486190352744702679039491224159195035378417565969802774732402711776969583875245452098730707025184930267075563540478423970316903495045354478065326326876755689111785296325907327490864380492580737454561514050043184814232129746630213053642951935494447074950592107058785459251011781005535696465101641373522176114426499036191979388760267399814628816023411906895401669311121277409944170137369619479465888090527553472247892007678780922296990809843323267708585595476423107303434665646598687344833177741148720227759899128267427270122826460411348157306146852974329290043728164558740418719396807886976626403170267468636533604415555899573701201392711225297100841662722421440925198467219498060940501452173310996461202334320517837525274448498391191101103521111105393898823804233751221917183024356467628548614423755210911088248460799610710219763407567269526184424673265324185651924504824717493724084092337924004161352698001589129838183080288043358481483238203468386112981071826973580285400652339740751907697080909233289231391442640325221272785895481667296889311764321380454269149532581552691968646800133141713612298547593285168902895535571985525660169045629100927597725005936417849273931869585666174505976952744951104032475530994279527867834975559931110663234704687716204023610641840128495476826788959927077108359263850689250239062803774128558528034913092545045098914984925238727004454526044989270911648705357386084758487363319026123529375302448007185012195644427216934599628802824481683248305200666079647282983631943477923906182860943343284521692984448994579957784880396958132968926402183786273079970790291441285504938574971744607953239785252099457521886065446359417674320647148252932682838020378254053656582966324398962429380853629576403968872657049461290607781034786249186009769051810693731688702981206489747585173180436295466824129618965075742189379056691069961369757074557598986039823105445243637260404113617582303483179666938320725201566540865897246244916042959896051332723598699085823472600915841193625387798487614205227190346489406154274363547451041176300186798641095660901484394437739227118450642196884934344584285920571654344243322431739857601196526447349161490794819465237016388776269600332692516280453553162179917066546355684576516612450064653732469148949656217599117999791805679349317414543224695592988404494073403652666639671327501357411338637260592997200065131330659144372456415516588003543554183654727232354631061063518924040482786017854430443260581858818699296902562326540847190813331064488516770414146898562399174544664980765984567919339100000302289504051443696225090852179160381729868617902017261618693756914025774070559475675869509137127626385434328730048465685020422889531047052353648515751474775931816405891633666017658480506475562076022877722544448476752198019043161864970100358644897280407763427851191228903403252193081440082062144167614854490827453880887415806941281272064358068941024384378590286989686289920447895614446422813886874521457161404477695938596330634780113063175058102602995185376501377960269522154179668616416567801181874007933894449273688620758760733549922437397557973018480187287769341255200874221519976402343992113500687828427501296146511888721565290024235033842126630986692593452460115208012721601955115572226382228579554676953427660593916301609808549760325016447490241679860990402104590724480304092754938530613875873425914875370277596444407286344537589946067522772843837180326812641687449771274377276832796182208306180603930182250101167947650842326049331070777831254030314272817964322373594155937195846724366719795537173395397866033691451342105790128364865774003000577164367850434487106919322237374827256891426291777808124938964541745152773132051485473715390315129763061414666184457920792748361082999839952215147976864524751230780530288019995065782846949125009305159527110574429986436393343314303865734837059502850477606043531335025485671899814217578484964649492618991553227291842863071965805128180108139310018432089364301700273903386564460718128877471633961779734030111766632536049791641561691278870573512530982144776534877163134044172705269575846630446444081133835669805335215816689034673545980430977199943755943055113127691216433258915876144229037848106870088099394657847437099124898765354186019862962130541253514425015160903726715472211348076449084569973496907257977439997820477172237422875041313254674251435532333508354502299699591780599409315159708476041246332650421858861197633850313113473516345781135435607751671575698580833764872453266811951365043154566187098371237293644321333923936146079417720010234392254299080326195626754516907046522618007799833977143693443963106679401699481594520169081010274733131012409899155481520818183835482882551478422574524941043056605309802343034064202825271049941290110946441675828641115339270620696761856105952577603164775906861771943457922256244806965187231610886467672236466214242910596094359151228008073525722376297914982908928720209781240868125489322890806697506306488579789488529399048047018145559664892014183191039329613901063489648028589290953914465310217600017514708840428659156356784064065822555611547135588998157209316498904035616979640030957833983895395884904096307359460895566306923779849757151733765857708515854174625679985696794692633539324726289141552307269272664962891081857588115302427312317549471871901717899918024007748898832480773389133710203731426244664765263650554215894157616658284071045662217000617626306932621066975635121577915381549344805247300689809175016852614611211433659218604711319075904094998611370503616146573217804515530721086076241208759150726146839915047286450428987935406666833918883073077782533416183528307669809639514468202041928851606040924497064446022703300674272970950104995951247902492575563844255304564193864019690884661289092970090647875987768808607344078452658759624657264759424312023871533443885038491664716001113848499758779684597499739392095104577369183495646222403743769744004281828331495866732445667997373043243326061837553059033287788255924692429335801549973469875392429851452528763636528741525950196029198723530596700727401506168104024387011630669875261073920892777787276050105291141370129810693089219587478964653468522977977540142908449835558079128055702700996203156667906611839933238230249947518638525327996214177585215785518081837164412950189488735020927098008938280616606246248542458169499857658993634911125016765647528865827785680544388830472480603102026739619924536714646872814829201640081429488280152027159008291254736897939509088571907637314833611249547440877651350473900994405910332069563154587499349997717563804583565055350392971542186634936063549658573007065528708927626668018185060473921906888607755804698294728265928995648965491318243291788874112185496415461206000600596708052107181235881996916884089395466546117265835146466507851828585225003575675015940843450177702379675045623621320491575855967766942277806747837619837602087154583915617824054242449111075486220754455013781281655387262783882542060923741701000382659638238532991387749486473235096905496592941531335555636538710762908905309525816492616692036687885055804055910861344980024011273210814029292571315639874362614507137921680935406403715156014577185133863567705552809381109579205395779221497675094128165637522326975675038625418734796533264634298564614624791329055079355641901104480291925430465532537645196605943773100110979618604036487533996437900602311044521639593414453136927628631899890124772256941635380805106929764915550523620422420710245626063616788927373055300313184949496398959769740425191914920445835375100255321649522821440742976195247702474262825349811325299997696086191368920223467279944576179004322435794349164467588739902579003974043129939109597240701165601178425793592963694646696933102968050607758666641071159813197317532496390231054580744341067898542164947181653257219470405048878039853224148455707081185809784114431216896447480915846251239400506275858904490625667348028951201532958740504313464840417157856079437664055731258126940608409180107254925171315519033934775660813302410210622585092113878096965289125103280359568364794152788741478638163681270743628764736548703767001237195388335363628174116669089995623007073680571457674134326035856615186685267499593741919281715288592294994305065199507796863787454407678280605642805882293449885137799278991087316070679360033236384637500544297837022083400912744638737291105973322154227698225017218469892944351944415710854022942303176277167306522738371322921766502188810054597547110871036292128972296121476509755178441879742329474114640834091423983251227401394391126034832353186589319968507571588595463825632749146783299284979912598027014722295987613455468794392710860986302347718678267181504063640683081733245625395393504820373624600618761568763261083537950665538927796324819690138763187392385957124310558164961215983255846559205419371867384106015054107948330518442311114112810575764827692729817633087324637361237509907490085891830596783959693994260829433701922775404064903654764812060890613861150757589964443757836292132001349628590834406863030298895522427327766281562082337051216755687434160148518810054357973725336555112796980583282623117386889719220540721189493001591148309095078962726755198699644994438976676670712548174517389813673868962051588936835168494455797055542289273986531354720366146683130766336762807052874895396053652812262786963338383963858814882420583150236874836127740922843305287787216002826280338209760994011965112156107696186710844150355888280710756080114058660005476572304930123831017765860879532849360809484508352835600026966802837264416340714368419865706491655195089677554758074619106441257746121542415812860310605911048592917111006341575964048547650017376835534854392613261769571564005242676520660687206825208085088990028951329538385567561534798427127817363502564977024805729590526120649418441147322858971362876593705606284110522852561359505458785028731554166417866851722059482776736743423417537314861568262650989204189229464656996607029541714209661172900031850943132471528109471726761486122616102876917622282744798968121309117026126841128505528960367394030421829118457031488723545834222100341463505925602697991633320418007146140195225087045094540905641513976357281932759216416797693688865910539420174420859159757195278017476055947611175972143814837864262134724542567731996510161227951408185613350335770813027761902977760788890242380180111009000183671233348478917007201596232870101552338119645917773726707808510141189788665794730319067930897857249236770500151619515935662198466650763776490159713076563822089104964109443942425064427651286510616655954597905800358502125592662442908214959956476045055839508373141259912893967533746697437447443215740325716626941563814662748799794285320784529097169281030196829652575194779663149395059060331721891371753308046696050047097473317246302132891308559594900269647748889123044526284605512914942018182285885249113685404137091127423033372313299236915885316150160046520380322821047310850860927668470631262318795176662108083518589537642927659961731739141047408871441288314418057983062652919861121224388623730371447265870899161869297090544861203587395890054264121353326762978411408176146886527074838109084687386673274651450465892196849700761605530681416748425895561907246636033406880518014351020371045148080005192426678225820097099976933656418222018022348667784505108447190544634079341588979494126803454597910237597778131853060940934335892725549243609751134421337937657293813749540422663475328045635170619826396871119750369598906666372443436550810499203211524777298279093762727666840269367736534911936632582756498187928543946306620687068980355553072763525861299804376331936961038750083626054190075819641671260153517827737791263460864682079028412259494698437983723634250070286918348483530496397410624362010153767159870528090536847334105252943511865229471349012319124443720095491975071769194918490410576280051848191256468324364185378542615366845985230562346567749525214369828075509178833465007020155649136247573949870354621468695855491014438211042642351151340968689169073732108523567747978406772545472685886991451268758129735430680102312521569272408394336810973947249274181097795264691140815207122070140666155013142415231286578472928421677567282053577591690159097044190311766215862422059200522653607925530385214114394767962826900845641287281026843194593289766905472654490781107468762165804367745502068450192853991399329968712970237002411298767798239800056062354116464303649892680913244405712204456546597172626351960831992910089011267270121225274809995751310913967970468106219334491698328274659806134205845657806162729817313946913944530190921022189987493592260361362592985252053288563683296080856023257670128378037293069674522382698056058400644024016634049788474108650617851676001988191958657460700549799870255934503009036694386715151491190457816579697789440167218386286099794784102688242631535749246590145030685740921462652674302713474756312576600999537418787358801151009510060032463879174690457465042168921302387454366273212099723004482372568474565578367736093594333900198057513767618804816439666903761056928593932064926710363805015720562499701432917104435697191757792455166870240989664267167632701942462571019563615838922067626066423199703848509593826977966662197595514230984309803395967501618514358626833662294835171238998040197842568472797968696619253422474757395673541284034502616266284681845673152046815582029481389715102851978083602240124511100131449368337991521840889745799483044694469975627357347213903863069747553094861101174238451603872120473561681623686290436174012877407837602068941158780722239186982569314466057617806822314419808093716685593556687489268045809207153353405390219721887394094034662707643809227329714750462682358468127598808476725831806203580215089703250167309287860384363562878822319089421420513194908442025198814881559240798113362722032798342314035181479104665652172350916247261924458844705412516451223054711462056578795762366642909110842941643998293455411158311007120817730514227177726931965016872800286845985506350794160305885182736249192841475679059990203422918013831631216200747917085691374227513322699401390486088488943445315394327164318356760169249308637384561076138429715082101332088132788701706929868189686022684082227299159427772245258631536073226682486335501066222456951582174142367812283877923151125028069192829520224989314110391555363609608216082884709433647848855906471118636685959497943760104580664371445118239794524191977622266981277611694650162058267852077546138462010486966184152707521034383192530633227743077937787232711447708081839985599693686011745873818032968881993490902397279847868265470126040735707831290912819488640859379458505160518336444887530927494710431092122664928469587509393789119170411243402245987782328997196012439008971935107070589414129639438464332699362384904365662546752013981339778278673004629006525582429710110854050700154140863465506542039458105701976861121731609717973739965693492879332810183220350342561132020422321978315960222598602850080195106215287921260337623562170193978684438691168976032918002745629324972258698403092181213513435017514160086019699898365102721203866849023892079632348429134283515112884688750744776136014981852125444804896440878909567996260118630258538398987032242027654343249889123066703196992047540796107538034351978448670068129311659682885404403303309807173084732362325749490452996556613125848632394525370483564374742883142014467635967522619673602859833678840436675964095943823347067788852259985233460378425898906897928992907390851874551008350445913525254174685843698137236921211440130816478880299844200084756990795550362728450575857670985502720689313612885105526688770364279340636629854348231927357935447432134647062789422850103668599642590061681003765643874842411047839119422948315333388786627316064615272524312116250503553031337061594387126208113476397344126618102735898381657073351530405899354377740480230856507347052493287021728107983974097337627345500221756223423625982363472723155807841224947394949351148051971748426164193711949183078377867161021639338902795025776420447132628258038075492385858706663053614873939402530950172952052055868122703906329324176857114815975670039603390003451687079778782987574986101619340807869787472744514206296884179420022448934362268844146886627577457517522372256121595354352130171323522955940468675636906168758078990532998288082898677486691922249974038957996126369721372624945073763069312476260687112262002712754021481093351615760077359600522286696657912752024761404873133768902268445032145081858066683024849079438726758365369901266845714942249455158871402393953557683953244469973474583005146650631450560219121873871485959885747706065207963713363572393841250043513954795984296297405505028810712989950380463579551449911923025269273285599529840613050021001772248933684019706793566575810045783289949883220642973422338747227991473891711601590057764275542228483326106197351981498551079320296828613839827434455693319510534882292580499298486487164291980387865205993297893639839354950756477125661737231246758676526303693786258241810055258870090691332014072530981684094995840618677750638563400592378309797942828969561651634365580369586918992512981425458816853451409331702888555204363444065591591095105620492265359706226832081215272136075670201522500643067952635636838088230322136677206884842986233273657165267790766189469384617441321120765513048824779912601797114288983310602526420477022079804480055269047050352613049063554633622718838167580184644732109655982780354450926054562857988023967426823872469315423509368416405580432357004107885706807445177945912036653058332988168558654220730869778102135655607619554298238664409743094693269122435483109387550811594895828389042777875315030415436876868772090077527997928661908862700505426743269069353004291409466737994097828163385048845664262428349276784202009271789915286521572449797041368681678898974660627468418901435114599149076930262042639272257913370996412254226513037665126534370053801981226615863719869051829598364762101038422571542893991183884753422541942419063639969388958925180469073229990014666382079552798449503735031111061351831674157040560606887669465937981510175580076350235870704367140540418189659197776058272012155151942463228871378089641227096101456001674469634414694612896715392874543430702436390559155881125171083576858524079500954940783883927921102771018549669960945378213306412356861922115714034528624981996087669673968256467500940575605884076084255270820445388172043661824320620745952259119944211897948778670523497725660322826261645742530280567863487210471620969943912340181843231202038474768501030187990922050002441448429729806416752996227344021783110372489926383226231225361937605761904342483446086056959606360190345693284701142887172267996366475713037158206303120103652260254963539822896228807717565086073670843950464131175834548031379570529724399558148118436687833862818462013323755556680878003473111164142881007890177367815633367283919163580528460956247051567163211185438827194454419843978418103002602267716370014085287515161465787995971679199385879818788191416898976937226865352238003225351146941273190995589591338099403327532738654197906014016082186820403833035446691402899597042289231233348876803244778487476871892923749530613852184890796047209077083838660633311516917071815879477810858375731608291990373975425836666541993284225990437686587032133182131812579164178871323393495403895747445929275807800343931505438107228336848387487973461398506663302745067781585007551562551608484766361714920961361930165223418566827643403975452368033037729373478797528712334522222640282412629584286019371603082280850385847361977089858239492444291331903815834322134472057540428929164496012586895560644046309132723283760744434646574659956348651929462245444413035814827932572267239746257302757362564673139174074073293200654233981685256762256772722715712674349982329119503820728487330143145559933750757915941263642570348452638945455055733407793036108633424047298095961438700619281162886596507539550034250716496308760807391898611979791766415277844026572517154475735072464841873846232645808775528334876437660292982273626581800841322007086963092491353885490130582647147907536601706880053302729223149710374322621633282651288281891500259547971528716968215068895451559198083106934991985870500424586266850324856227264212370399745472647423158463497990157763021321162379913659450764464794430800804703124186912311724256916920022204123030049372693704769459021557538904295720532234593468461269111631881607583500351672260283311952735342259305180987599616261907273332577433824967015929840057696984195881689500910397520656141371802207058250068234216037668793541994692042732684625943285316922460096382260114052342093548000507010732218506502978710881520482124629139191884820492366133366260585954751546780129807998999452875183855735205016083058999790703690347059755254399081600938334233919827083910478356039998420565445172190177660886998645985893607300203909618178840886840715411593964075132662898410633640932716030070208194258469122255319465482928463746976857677161339177411069948638487474714488247658991208654542316542465084141536973508844703565191833694590148203409514656741335960041423466366828317765890012173340180161323016570173816622999987087806338033951809498476899816926758752702164061324399597299461515390886184104233317051544512121727618701526574603573340138078341387830573488130123098297288518192442305505903483582947411643338869013866779074957867675017938538258707476589479286838459732078021251098480455665358354675658850979044165794976351762721947100447061933707683536301619637788988395349069271133373481827805825178919117513826850982398953349638200638297647351829096289724712930067299025913588641425282656504608103744870261479742350689050429834031277107663376574602746843862485892970732672946167905515563446065235243828187908415339283759618232898129687727000975685344640783720282101786248074759746815061867662848407938802993330842192853416651305305139183175372014807678627057599246353830965636760624330632313132088229135270029559917895029578488719931460635389739323116916326290559346667129543666152408836401231031725433141074677691845814202182442020342981988120634217559589368864509182101195949627006710993690879217507077121918387996247092705374454102798377609973209784653583107546056706102857207247974760149621192295529213747546917265675938362298287236219420184503850596023161655706269552665061939663762505998511313388531812536142534836797717462867823788385909282254541709169699048610382035492802864879563576945466418243709170951902679190797286445149227011740326126619823250119344558143472232743121462517341614583799038525288230494532727487220914093269432124640568873829496861457252272469986845429934357206715902649794572370336684083113040037515719985586983895410780174291921043172815867885427526434967226606479725887215476549061488743682769997657393176034329397954228937027697410403900940861407484128202743270734369225282679320717449461854923960565588284249997363537744665052157504795998404907560940196854161525004762133797411221417504990095256939132630732799423960275353136795076801626022341971728443900382647854348805798854940567941086550242702603595811486829403648925843881988887869582865428328860005911680826920404923056468267549517350956601420494456318556417327031375606468038873922259440912074009424429119159327565501657554438374373693194569465510580767812648584566810922495605505972863195483882427706321179962637759045137989671664044007281625231358117019659879501447404135874579823554761358985485485091953153759923937651076079005299909875791409859123245195852307466067976353487314393280756378124478142350900906986255606874508020242377840117446485662991824973405070284071117065232200010050350624276809493371816934556496255284783696731456423656942361379067473053950735006102817446899051141889748780600846288044047757939836292098344204349668420831553768359110831047141428241440229893017813451855467322644978600662064475362352252450873852743307830977228821915845187770948386116700162839940999741390803934913257603119473679369483014575639311697242957779319547115079253357544660973701977484221234214409745584701806706731888072241042583908211043725179426967164504573547669062941050610217146149201013225363914437282826067879339300952172567818778694594284900777290416817880922738952585477508413738195830396786265935250949445419518121372413163621326968954645363885409408622692350987151369315690236584612492011804708636743907373490722647609413261559958955665055351918464492074199228366126480462136814527162699327569168337864002458067161232581485431116276399912434975820916817904317650621742387818100494628406597739970609958008385520983574413012832224225645998932784400913184221817220997376437834318818615406519188798373895402753676462331412869732950584381203978746414067553184936596062689622364389039884067536952158837788627767121136548260898937782103802734027590420088803473963418771936824126219774333814207663666540106873625472200341371121227296743885862435110619428459157917562709977468939180077984727954008950033057936556836627453064210970424857751150225985530040845024012670624443668912753316226357146336166138963088163954788124475356328788145377840649909935101110873539783724122666810982449621690358729190318885288857502485788121995496031977508005979801967272129588233938589059842573197279262580802198768831432267488099174505372628077115388569620443437593091858678828432110554514236180981675617552474522206580955140683910276781979953780663761857469982561825202627143868601290857628780558847211859666120692376287862967896647383489365728930302018208893311966595508363116520830191200969098636751501561227337973761678479383585843089091613047941326713937478598365989586012212507744457939693016414521112728425567752360457548509477117738072194228227917416142772472153420074841133188254906934538378599950337402296974075200084014191894433431840538161438974671323352545758534236576061196211614636127644668528889252804567283360262987213646892635719967759824134600929033730685475518129403098664933825733777575130440488047519177259645200259530389745490024416902449078837312286795803975771880598472600823956142440075171777459787695986092049116190577675797913211390765506524306791235052127841277798800813701313803651661717570087433610889207513193091696765585846570187632398645516707658533824398474215660693272720498254079581145187464748720665652848577836481665740180945058213695210370725387633270892633102369453159500773916903818070713580724608329461279471821744861697907048878793684343697134945702639860311860466229199194808169801872012858797636954785701545834814773077559571487535623458170259836838775296196477504234865918723481971390774108272304086352738323192708963943435072555749348985271720707728937272902397131062803474562596427977295407709574868248121990946720826078161612628670412601838546065689134013834621057574440944006664174247910025795233735382958533587875001853724359173274018913022207328476946859986314693837967626526538947707825483199895821586965254540227771842335807667938599659451894163481015633009545031606113589841471928391282157293509700924162398692812260133901724811031697676612085012038248321550480462104596677326123263765926388483072692968356518439155712222338443466715566784691616331208309346165166931528428283101922730567049885889521848958535231952774134387024033951308719127471049877136128737757815538796914660869913055906258329456968444902994906262274693171055095854323720034481341291601783721525368879642335689309504558118002902755340527677331151043787776245137543761287423342192678853585013081068962159105885845111482086488694107098685046695318653637445833886887371513360264975467647638015191245585918303370716063603844831832692827542150542895333256034095448452060169073162562549042826546146053140870167324616120373861124038475151291274860146282285092089038017785800690037342307565368586974027051386893281295994671387102300030861486781734427573556160412509395932273860494217409045309728646329704293433492287593773481647998527214445035789230523244625860873755836080602753561299922889869004372684179813363681993988890556529742844162561881848039464730260903507175173673915980119309089202887655682644140543480226079286917035755308202231320698934237467797065309445276937429364670485413325152592430087831025097239534259174588127266741913795992147698715142401691175865131575372669940852287390191108121775291114800841679109719152093470818975531169596262424176123333128439511255673957246844051614017907351343893623055984002143975994886461064269653450125149491635491881779463151628008231566343395243091584753225271921011256226221747107160168914339132246048168970894648311863636887852559098678251383535087851164079448482009624011156585556654741019440667531156206769328349482584639443254724679846762949547189941446934235768674892676804319238190609301467061859201677933425210860017298723264443243649476734469608599579497759138247623920740654575078401441825988808347969396299431866245357873384707667577161576858092105012615169525082478710234206506709837365228551476318990384576532342081628234524303901420885464426969989475681434817688470316889517002558241227115383216964558840718553273571039785786421936649669992421986869281818640799583714835870184691118343499210976331881858289403246701641535871865176167875063152366052796225892730621793309121600992049813089336202428442524008072024120472506339097139618043660086866028712208269513261177236870851871911897092897458937191781832162780408957051637291941495304895876115349084504681288966394741340367793937894982885806993105896808734618210800968606851093207315759545856709054990469529565291944908096447682956696693799311088532983768162211015894051138121975334759226050883356665001034032950577402911047299074664506918595743869433838120090756598567342713583600129824043195501412932019649540468108630307759677501999650798617650305325307336164837348206872247516365857894780700590044152249502603495192731782650200681107197311480945400776424000714995031546853542810540000197262975919568815836437100496846421680315657842738756570038568969430390737546541804357648204990071130703193731651723067032645660316771335682536183511632223214796615895984690130373753001623020348674520898786516116742957905434206701880180990780077207408369519653144508773253912035585789930430925450022642004842038037767726303345066358343972551231754341188548065970001392655888140049946061125468769441335635439812383444338714204968025182536963590711101307992226151654533877475316867394359738944190460163958561692725375602086276187298307956764773855307818762054110865099279932032448721336988907646141927864571862809238592831944896681358900428178514514936372530781487769846821556124308227907649283004430022127470631939192888689447448134192984071994261568157229683202985017775494641709412680408755164319441407247757230025348454672179090848363098383282772910344790696957760662771063890804772636067520045464926749774244963029110993839046915574767749363239353005741877877540539998561051282849448585758486839801346121929250557070060226184687612302247260259945304147527598376270241365533460248350573624564319731645096337834929203137747813726580599059076198195649158737972782252824796705359553479294922885463036833045461991202585555348140449773247135021846033256149934375491912644286457211129981173920525207784189343022488829068382460667161611656652077934745846220148703014894595078506194157256726731645528280670286214372473948655456568481779547822758555416288159779251329937403542265736601117212260868945738091833451516855078954672438381710915015583155132121570283790701471141771522370985551546773682580384404030698825705615179503306068811051527180353877263234498967339667737662490624885573746011022108790744171827099603596238853206277268785907727109493420382248853580596420230065865648860343342821652879617721957084199626312161521120326385199179879119526120902693682354505486699500781795405740335936389088325456525875152624334790351636256516021232618049362068239237684595326780298956071685835919178372663094864720506786109102123072655753398588477770862517632845228451050759704348890810207084594242245470455486354373628151607888043369649843413732396762247109564642281263765835528915672351115260334276287554270976239603497294008587581921294643763992969211883114279104201884800203526352912867195220537425533620234524479660905404242966958516473413570762221024474722991273992396665899389167909952929905510019518400557112096099833839553259653219487582777439118883694401543603196174412196674555713991820022569069842374773443148096481194182024350088038954219830255321807965866239093799885630459500431734818415474897548378037716838953712766801861717224472240270647665274600915734565878190708903650742642328729905116418924279748953157423389616023907047644167000685250485843525142416396301939294901390316262488372583413037087296141705811267093327919432403833059452716886479552290029596325197232303947895594407412372225180377602885404275574182021063359040693551955023841031710588380485223831032319659937086409233029401885816633601159478885196633371303700879645050785951059201989981924495840060103574294600832818455442892413327227570197797359542492392714105428079894240706295381953321497200780337280910004902226909817300303887446951998318432181428670527487848902207007098717744213260094796154878492702362431353703420337678303798780761166717297085057457570605709236332858912729225447446176226829367866320138283506882405285539854188504652730064996087843379247057984270053724307113880430252651611495354497066665140458208265395351253055351009156961491925270623257693177381307817611818144554002612057473995671539795697135292757348852518116082115940758175639039775218883739741959873309378594689971569634618616607229711914898682141148934647752169190230822314472529783069446144063862613133759572146050102955484542542963671589785926102257565370380812214779960151368072896700598779617786973846126829978309611739951933423284876376129682158253688014218690096457402495406988933371198941638087303467139434050495964018008075548625876857366065302008792529489416279631700908457657430501654858869960903997862333006436709150559720294444814674211024759732604416655583407397290621177644547301958122109324205442440537713838067741734734210414098094279872680597832077216858654687229227436337169696000786328607652911161878274868387039498401958946289889236639008976537847093848849941499385864961415955797382656963643069366459318824304406237797445682033179339992417464046356217407046023940533859492585970990047039741646395591065426640893379629780325430962219907136801250771465919524095187241383482054749859216209226817319394210097089894636886102846738900073479980153709454802089434351088923109716237629050448546085903408097534371127324453677922241754260842201106658945990440283949681680500653483132161113387904468387272869923864695019466014003769682044908574875502105906740306097505351777135834272327434642798435882441481442542460398312229554838339990819342454687655159014702764644503870414485874880979026881761389511335790526525148829549996602515004715151205900248345427867955711153061758376051499321358979557551545575936462937112623026376086825212521183230691288987435251073109591531839020006047833013749694880117128830607817801559313892665234085702318670269888687958669364556238046061143807746943662497872154202130797045287396037334000384304540340023577835300560590939297033249468204498866303329524848607013587305212441188573063692218272136104269256075949223056292831088196517768246045177143430039543210821549122093228515710863963272590207425282395214206447439964952526219827779858061055065590619189115070554562080169708457801515129834128016437205853970496827299118723585113214599535624730811976707399733917026708616555013909357729554838614326563032633827572549901115831555081558721525974443644951763760038638556516958111466453185973269457792806164796828226600880133208074798510505649730969841782911262693307262028223010367931225014165848301550850469388068506684250689466789987339607879749975944827049216889263150729792765344739073296943911159509936516258726174117475653645354518098336557083525092735326776524139571952730169246809328334350111819441192166860916959260911460853994877813821349416622328145115993143548600175968945258691092884151783909454325555203669172439028794467741482702863631171183391887839462126517338892011538929359668366795535694788717669012012262117048278593836164768071562052945005495426189857267708926868233093962373387113708704951443889259540279738432272373291522993981809010329527246917119596561825177954111410608287552124328423244026737832455936846573038194751953552819705029906250710391926446482682255468406519871795494165312494438518608397984859756565960528930197946056735418050062978904499786429477725204206935003118598347211218868158898230933156088031813268051021659185496140554045908505702048206365807222780656705328545412152272516201910123097618534160619331631425958313470384939510295441952769740723029063227015631462546771606251918970781145023168417661859493430124119925081024865583830118216461234870554472701882076075971678433841286128735788132309691163882037021361404052419636699177824483382112206748535687692516619294027022842932314579893566673221286542368150274750025977267066002814677716776118727599405620515867947887036183559163841829290051240902903284126469689029520544020936215761499372330030773903574807971696031516736793438015373016574931238409054418434450437090340588372339262195113338026500845467401032959350043411136072048628407627976550857873350131702152154235419944271686547395822134377939546961233779732341524384805163118064867711843959314206106573530281923822449350095596972908183713043282373614075758017339476967689452403631400968615984613134459168897805343203267333458676038598212160908290897274814961062443696530434365831481397307488691558231925981388789032047759912039438993520296910251780581340751076229507267596784726640163211388511825860011207798850099537837333829689879235530692966966879695761686980786111431964478384149627935167568168460533626190305504093214300304059718424780719778377721052337029928506237298796048925243380260040096835837997797182110787989009656681538270535159782497028492985731827391374614788790632313245494839087930280791780768589156711407416093583315980494273765565299854312763241280167859440246400154405678823645655754380610949773017236595517388176207789103443003717887266902337365580251251849261387997507386994527176203528993479029558518836537766526167359503037072281198851013105930880020601687740930506284970049871915748466591322504393846701068973146559224699376684173236888943637426257215264061117302908848060820831320901612897191178065829516770341267137859868491557166630153355302503475156300808589534529892313429224161301130311876088384207352158830931645479575780206786054743207043533923316532432958796911991102735868925282358507730556103189214848549250056355001608290160356815003632406156646573907791425489536258743516054369745223904396021548478810190999891391558278178557545040495868949779412682687796810085359105528470278531302917162546009134886831061310595579509144880819219283565529134467252112436131203364352327573708272606504993696832536029263825532692627685575418767788736547370941588155289883081690482063186798453627665966681745678677522845854578312300948603694182016636239875593138556497661967649149613789687516287246616557194286940763389337052449697790340866696992475403459386909987099771590943135338798221921203237498489252736458515930810297871979751804379078932083567839709473372143368333725163735012541178422967959541355319937274709840135162399302146777259364140404136207456823774022685884651631929243455056653944995267984280265306201685461262048935539281916994513542634014529677990404029785412873275789704678518119409374118786189382262137793053109151340653445780263861109084105334982913690920884533158763976046463423700734284366973050254048585355312808795609351632351269040925175583827263602319992048749742134261761746367224321587996313967517333591656222997960569772269723735107679097537961554777788647273098439311662790499663562071170203512507204402129539057801239102748472662286160555068677820322456574096019518945417029701412420125377640304731351704296173815175496046365264243082242848129873624366635755387567337487398409852834119647584107764054858325358882056988592554290150063853760400450613792546243038608194450724232994753517826850754858562262196353639234507039223149217022207318897249366825077203572357078675317717467952218023338388420108109455581901064491122269902188269371088765868800200596840695429683742010949511961194507779674422101033247353779355830889918427645187563164200397122544167378964992251421390184910314570999356694876588441790448646218794403484584934392707094163344664372490038609147134655460267207254980694732408495662539531966696735742925693942744460056701885984655751920325183202802420997696884716996481406855729245874135947855066744798842510799276011995207917592048157647627093140724626964564250075322024070612145286479153477273368720698882264352886658324062577887375973654610771289135065996118025568900948682276447082733879797399729043341251096918152218844351483068136075557569047104164845672606353894653261599757366327178346051249547684353689270514080008461581703845524673643715969613050269681247903272635885857499706950718368792226142987343821261122281340064507008707177053076438928609196053906323227615821201335487932936763562478773903228230617424486986878178813428773051123690395202959902804544043643011573286024967458132546675539773873322400861107316003278321804748821355062846776808009296506395228649887920661247302576787247821540663189498594983434729131748478852142140287390394764269522970978949665799834782740445990045546556609870769759461311126945586792302295564529124061875885488842214388998202985948484200247787438509226971648162228442173146857093128891389592276587476610134269171450099037482992274054376049059406219791484595607192501233684830142324495383168886677843360138423238625181158333939854873708229540966601514306290869241486698166600669051451539179108093065480428018637214100867729946536873150229496727743921462093286382729233817474962522344920582420042049631101860140012953280691522597553231804949373386202690161740122908622275585562577275020097284056891029279046029406738638133736710073506065393335542102435010290055750143313735052351160050987027374364672364534210797135303959372809501118856170482902267061184724418121286246009632658230592023926757809191922431502748263325864760834897183128442085927216794923698266356470076297627265969822018993205778234147853302332298178846408577357553658608128893342937564518000486973322332674568892579542849630999690217263387186401596300232412272159160931147510182880868003368728895102400113941423405558218436701995196096365758825250849722503261463414759192178637024628030603105838695153744400075183081141714617959802678616838339439357569817426339541296956103875273564188392124422950486878543752932370198253878191270893963180485161751470051141451441510767619722265308758376502823437225332450194592783328390093000806749692838431279585352377420002956394504957852133268117215074409708119048676380825953881497865597172978839616554430201820039850595881283284845021760097419181031213153198577834744774517344252839330539384772804145606856577422309024356520402913980006756939313318608820257999506685272038513010136581436268082669870763808114111220111454607075152837783205366492415756628946303371547348278553773924991026296341490924354238691494974898002000206003178451969016928253063137331441220427614646059081342622965404648638172058294835272556731308994629100405993975064595238063343415810562320207512765476713532575491981305716993116943502500679718673893126163231901230701243816046649483526510776958327063567557619115396995644968898177467141804290337386720495480352288705676758865163322575780893819756395584342972108301871507995078141450380464640334494849187961780481600880307379036928685935951438499987278162678966874389846252936890559604172651252263616558286061938644991640475291563583092126161732990273458742409907936454779564380709796016622413689682960905608175477373742572772400119010229635519626152017483429359963622883747343368917524495199114693499828169022248571737718529040816388994523706311294896256845977653623317073700743100075836956502673385020298694113829075348329968529312019301361234305123331870855781702436998329476833374486988225278185868820780788852612420534661708544533447793911075350548612560110880783844682996662032257974031499725325499674682841989429537429404050056409579250572034609856625673291284132507516906046353690517174226187270906874928739588100800410257748781935525712592967491599299309573115582747309920226700427551398636424243793821566556360055351877973117592398520265145715434894915857514037375641516003968169928761892801799910774581898131901731039967608248683903164807805127270209921352022356597707126984704148632905943432934415658004573929091188323540711105522534460765705232016675976268504098601945154243270048121680151130426362502428069166199493949195604256035765974465596106118564110402594228051223615427148257991441557955436249459815423236830234060819901577788294546701583963965542816344955737912862950410489987896182187999875932998567733412502619614262282596114284464428090108385098827096945511669164002242191577160537840334051317239765760622942821051816712997815152901001413132990768452457406446740070937676362317237247766520920323869354463773651204841332650676922718153692109595422556279976229211703670880036885649754934331641992519514961307562541576718100587790906754693181748521502140514000821988697238133634204612926155158515660648895985938890959811296601137125305070705284771468597995740047317618654845837646412000851616957088754250667427810583587290839262010700482270829684685763068078867427524124736315841814073582616714092467221112719288415682609805130721984146768200860057907468558221702147433402924647123124077173756454140217310498911164916422546702961183209409159824590258562248937700808201572817727527429540873072190523648925197528214822173767010292644950116440192770538333071064517054540336760822024187242219942944289881592148366761157895576174670204104840966290595617479393126191752468557873509262294149048814342757472751108017591449846273463103453608432879373766656286126193352067271245995847813182843659424403900814998259072248938659037868403247843702167309345278119967883667875211796081531683876089686239418263468201980730479444934997415199463579216654756243575848631480451075365788927582053042375605345627377161726088785455789307356687386278552630002388864838361329045082107981500072233266847357341149515891613829435166377430043903432397044637741925135903250057952168679341654402468668891904820472315221792779738859014681191370976059857912759949202596989494650506444441667998251987987651714857326831345608372338096171089480010655098397204263725980459299999627831789342369522109722107411029127299910918506131230109126785113636307700619757394778664683908097652766065204060464100880988396090379094041098472322815863399499939132032443812994180841459942643451581488767022569734235694849942710722229160242253311817840700795284059237847138653197049915285905561828207389989682134915802982814896376826437996992923619305522316716695572947941901307009145364383595814368099612611889202274707839248749739775749827018074653646242361868099047210149707098638981283715377696449148370112663917843540101381279112796006514563112553461891394503009434316484670815315658433625449684328797800534163586307684293683110633279362592716094836058563611487002464536885475372313986905692937567354548914862846318745734335099902818263357572716704008397950437429293528409661731555597216860039357782351883523246766246828467771529868473946995308761320363825568811733148310360198746594989977744506671165231040013519951828230043462262712726645426791017621940216332204084071769455862693877156850575529176286298365829864680209478961056040458207539614638654827194402234342833345562751651552088148721791755307925700139985684769748571169455648074263754577582166820385302453142980655693628720485290116846901205917373315587145498466532763275684685741071964037355329627425201083553151400173856875042592411398528935497880492996238731537334198022189090641367929367901599495015820431086365477472064083223488968844842566115633132809567112745714126573067167352162033466720434535493908164700941721968821271682685213602513665082645963868829577126497776704136347773405205427116434691201078935399744804806801566178420528274645258347855040593865841103419384676182196204576459730985728007468457972428231207398258484521369015585718130564992102934381355066188229641208349724690426765406595114680873423669991081050488623611406098018485733568406394035079694221001439951566440204560404926788190071151105701953539212457451191661507782407961133765977912306413244162538714752352973702984593482924725563790247579122182789700521179867592946847567884250025279539877060789840346142821930363161364451768325462723704993133416974200245141602276105353904884739424735349100515264872060026803281167865522716389504098108926178896082935944356958478861012780268381454165152248548106188260421594367586211325562688352348225206298513771909381950488191845198412304835087117218005172964506083230674927983971816037937345599471798227080749806136422021496646877909285970761947160319916708080640432221726578698033814264261150630262312846555871954958017693862482553471299287341376456799158510499944181743800580271619990671259152314680865241173908379617852648328549734898607846422805759028237683346291291155482895399894825027403030801844663430750776168362398203773030199329392286424004370784793619594859976043263036293727508464926893486074653684692669076612470549353833708820947145557831405140173053508371896586076090039916704467760732017857026197073537551071831951394784306877664392485041973313144118191724146224791712960696692092293581701889673195781319946694276807090313898519162920940421882494363605704959995623139387438863706998767154848024861409767136238818529980603850633333679418491737407053985802609828791872371255192720764832866456590433372971668037845959653706031079165261150057415000297848811170874981843626756221329152576523397431858137593522987697471065871408267347830456568410585342354490173843635610431605779214358657058771475699818220176022597565214259500058397550059722763153260439319373123920886047881979783523954794281350766680851896697533842092349381966080514752028088225215179583204525201162851276162310574210921277318723302439623297404951797198671843435565905589574079356443107875690909035943940053153671331606763451168572940781364141953596853985488062929198231446705207866477593552509112701005978968185012803577189346593856748770539285115768862298933950253091768059791878625955497640669785538650630160864017173516559230516873350566234562546207457888449098989711870495029487923245677613739199157614638167299236078201967646126130340394595265574795159624874101861960006426809894573612926213260702169623238601336697147403034768799414332120753921130173052126977115282048286973467175000117884151258923003693691530420384670087385509951594604624623672321329204168691227975586689251611613110839624935951310402659635216859915694751678559436679183464105763122058265523665292032970254370801701760687301685954263455459781181757680418917184325299817798501626505414915171317252054196083040257803568181606308242146232312189565512020144626238940060702836953749481437169442308301463460631102014777578550761764374793149076813520391267656515996354650331200828844464018137174558022483518842471001097416858654477617639508572915391499814492457322164750580778139815785521283121081745760969698148129716568177998060400981297961612514378011398059836331210473647944652059004747447279832321166606579055119752629084939712437051263363765734621955057162780777434485692912679282289177680316823026043202801478759596453004347500322786180999365157880144823752133082269829362264201877786820467132527571845648718481837675626806094064076046935582058840991389905683437766378311614224113785609704904661335055779310365304037834788472660751867306959601109355112567082712282986970679837457784442361897077083800291660829733042937044440250445469748325481683825005202041171726340636742221330231232879969122774310446838392364720705850121842265314317796173030831664707726620166293556646234874870225617024064778601136166698288438098975724780823380157887603424668542693355509847799773003978969392388693700204167368751151700200888591870754561560767308950843493713812681869929239482488035273997327448135598640422514442560549539557397144867474509285876970546264240938528008273846443552553994609735783824278766192882654756280201279850276545621433709738257107715135204888461809146127662642659919809309086821402029532677183547949259726932856576047469325832080614507566751586538213432998093625481938464928508511932253577205788488910038216930641467568096615237285857585805651005176019425849992491025359684975774678085947865639618326369008192999571293870553320043203974631975459450516343662780766080563501810559928026639538806150921016947770132186998755113579187484493581997620570673197038689292148481653648810474696114099173278007768959113226858900374666437411815770553775923001721963134596375278576524080291496837431867461388417265091620289807392388601005950729812953258254818681812959665984533890374284324502731460670531963670752405188599475314858867548138924547658313860160497099689677178700161968059320308336240634056219480060148585915487040241784398315517945390781053109697851682916330178079234156698984380628007281746658795711735081207630606717702290283309477370444208468067749277910994343899847406353757391575253453080009271750724537962616544919899233689888210619924675842458499343108493104586403317938787741762752579701421235893751135522792018868192570121512907024355632763260228089561729051139298843233433262491379127148245065778514295223876106996512841492184427426948981802408326515987874938986361189213178483384827610917815836724136716208224923178722687242868921212468906769805099822483700791674740299438442483058385841006394303267698496372473800576630806945655572606744062041010854820727347839905293872478244880426680608262131857393400525095424804065321704035976151908774693239195341790481170713522642304632219646392129198545729218498981854736541018540963829257774231794265347883693797285299217101417038687579543290805770928937774638123216004566800694322598825376466444177035338145171077877062366861409868458950611436669066065247436778907052171834805308664831144463068976370481845474161049074036724879779112030056243168284433756154122463127413519498826539776269118602330054193149889533894772350933565973414939440710266467128104902141645714092337811723300140326079443293410700711048967217085421818561354597288007137840089735473091772431957164643742641839993891715701000423316168253076549098723128620869536357388922002969936050625240089081787218276919253597722929043048261132473753538715508553268537193798863959936218408793204292557068748620365015555609521359746460057874011545520131739387658225712162413537430539739134847764812207905387590135509304076716434633660454252643535693305576167812028318962984544803781018458501191880195476901745256084182432324817907409993519336175647626996465138299493834101400894870941248103885967797305785195068423215524470865705998476999981968432218929545965717171769860987278503808077504264433299266610533766903557714128346965940822785202275979825971057114133128591042077863765413998560109055189401355178403455188395850493196680537377451132831688823020334007198615009037017717265407015647491318249453513801042602698884606953969186137946380237565717613858072498050565936807187845394025771219518273085761673209774788545179328473143431964340870682993324473198915211472836476252366558018053136413405201255941356180404681431136470110799776354540731280112409374344447623410196834842328108384054871806784174240577570797096834864978883982480404342939585097182799510145284234748492713507308970560893172860786003826791158045886835831689756004054408236993369180904257419646727107242818404660020740611907397329445309497515179105841185770454274334342784343365188924776587606456534025325028920404696801203113178573258134765841323208420794653378495035403810357135562984150141034277232755392686292398508590699011685997271959220400405941999448964295409847817850042306268190203202054970764455610039123851656718402848832597922031703451867475135405828571288657605244144264650576833633871822099825649403014465159314053006210033717906760885840850598944969588923931674342794700433810396069229355908421334251243158099159080917895450481432856799847681162773531358900354166597235058854502325448746701627201771421760340209270802942427878582261738105562635714267664604867631601913011141323816931798776067825723380425719935983072472300617440236296560945812583000039964638320809143061860059247149539133129924469589703431931736050873869214517775656284595256743224369677253695739508138314168662521138444945709766971090561217733191205355992342903413009127420896227231813584801620956492235065911337299108664844842321172272521471879853382255268922945222269412843417091082653488872634084170150717620863366084902297674411991773352797015096013118584169706719320402451022097705074323314994369738209997209200913824699692502407987838176320589651936404706065103364565558114700317227572742388128787605089748939948160439081509481082161618147834893928522913504693397715408185959526516093415984919420793207880551132730519239460079765258867117921842154012292822333710810308325647605835607317294957438535096924648349961858898427856104512379407176632546489710193527340128693946016181234023041446828998822826355819650592924657967629169411043399299228753298896319786494693109748544208896172965291462033758995914596138925100873973635360501463421857014030175595086577480937381017340641827633369919783736856342157861605729476061802902809967957274912804724861610072884295587181460233928789720420688174428715570781209181469178846551173376178835581985740801713962751966189284672650244273799014888364601963716951502389007180254746847838546058087373020406361691118404836775338818859779512560720855531249942691746724897915066226605791755977959372854302259128049948879611974796469179834577920876826387630262265209105717967420115284364288630393658492839439958919055319144250220339799267892301802588166855817486048254214049634562231477590332790583610809046463666212299107441324387720896234146847255708103368382306053700137715176175747331066580286251425271307076381710322017837043677094017130385016115751017309438528361138321677434593161957270924261268336458300160692366043746621061548798376674613946799006537145428616050563356877076412838433880181599204148974696133965082275744933838947190599251272716359274877187817434726183289888964383109560714358736103362890886438912213778163571018464448669429052703617277769238095750426076146155183910234533670831003663019747770136154231639902283898480681846815909093790937675783770796479220281213052779245094276439405869637537501945982929144860919771475368669171037109515455217496047884910355048918832446599665734348111933729253631559078352750424569130909273977986330709326657462895085626919860327478516587921002904180848738477000016803332398444290559533786088172087644564791506792466712735097279044616591319668564595349017246741279585016428320863066770553208976607882252060150848053431451780653454795719626321206825179680498366845120497679059572945841549649098977888581667039486025949011440921271285732249452742841350840786251189143226893871146421270083243589899747706535224622456204846705712371788728785646913829756509032723391703229901153127428102847043322969576358827789117189954421413137432599869482333852224608670320008303202699943724557536104127738709342643779344572938363562865687204001239990304998819820497353069653032449510571880735106015129374573175467755701828828650484999130637787435829655758846029184416007348980885444711849881596031044281981249501591144408851751141197104129361225634292737883573580454682009106745856227756696548961151543660986140093557121654126722349007264435145692265996279644117593519434357642109242396862970673470550582882192510762980293679755741758832982335909825650139558437640021282161806148488931108982068515651821817873946221243739501636700338791573240354532116310960230870836139589446731813362362801051955575025068335700052859493651349246797608123371230332409366760701952844875891404676197215757559974893944521821732610245994411696074582296263001754393582465231616560705228385592181783318448482521673699455483628911556013436895977513419683993594883985766271846616937892507184105632980904360481955571748713126987859164205078758739192654192132391203524079045560495612142889328685678408193285514701317417553323960304263649188067002875000398484987482990016084230636273951666542295319598344269125049897067698212428158773752334773407380959643532284226790110240416436531156049525965356570666762337153636990372029752073512897680601090741691487850855963763023509579829776732727560410977626499406096781163659667013861435185171619896727181712481367320742446477348736445582815720020986511359838431672874462151174643638778532719163226206983469516549647585901976090264093055473556139418978834684326467495119092469296310113691612520174203553333869708071582866666627109804413899311249180425713908142431434485913048653593034020821655970160726697487521479692270775199170206713602607184947791777482083044371211984236853723467557316960118533236782421007093403864206517319259045464503706801960514691999274061863227678945080346903854497609375031501422876851484803040483091026668278804869827933071580874017751581276188361313349616848176019438409523895235490343100543795318586309025581042443005441670810785122070597770751830286861204793650844168846731865220373640553308543169212046169135834087455926260318987632209139377165539895953692858460987994285464272432890504500391860891659908161330614785341541127474612442364743885164199614704900664023142587716805364494179089654697439188066383172572434911624900929852839446272735392089076051024831423164068208930213100466089892776027223004187590040215989319049543292900235647530163126310753685677949222206278394392839013323333972267410668146399402925365856685161764114969727954150901538889107462496430901772475511277252770356169211182243588063043798397898080056577266915206154602575253105893486322006134794655930023776943197060070139107062797007047768340633945677861100570864560463494897359528209543825247052517827686697042630393711990644135755804166527625518786750379369856077605405389659480482901167577449977405734569653571991834838136715200137981810821608382540334060877150375312581016108941492353413695666480381429930329595711304341753580849542097566915169545919115236172138668955689456509968728153375902864733985958722258217349823245871982145824794347032399937678790909507690985360465215512540898344023915262027149502954629446228452538853355161150555380411697695719586844251765277798840251889234410668290554012903418710816718204853387155359625789536299368431397680780157524113124648145175123507081186251282136718047407426153925866311256632497571918627902656508676643606760468193563210716851870301856054504974962915838159536577378873892969333945988778137973355329916219044117345350122770827403594290447465904148116792136873979207163238449954226933812945545215494135453476901852415391599230639004391076472367965280607556731066470692697270115028062126290401913782436213200243483004655040396079132005154193681902336710385172730261628459749230307287160699549134896680641643680932652663257968198583852335992995596448243269991241345366831358610108571992194707007404391096876367502312078825127204759263112703099803282192202932543293174054120575765009570667824892781007877622679614803624233491499709112537696893742526701109816558101804925325301263544359945447455503883581835460393020631718406949211644012659964512747436138684657253832900989000052223473354775219328481654243150918984146140314392641442826244551025687051718445195845310378859503564081336064098644794218674687918958477652166396196362789433064154890289320061620571180657978418399399749292480706657151906915307102758627435438269045668230594741948746935717067537121893371271088651441884790555243711899727628397253309977580684880246325662243876714939031073381558578337497436696717524754150782612527643179052987889306078617368653100243825560706600015435540646013166729025786306390928771259822705827941923285564370559871062849294790544017697481938044537449246490365585291547097118534534048472615242202908474507206549934764175334364046144483332575924351006105218762046747424819899393163625285520120837662236675317380180629156488967321806822615554375057055794437351283418597993277863397211783601214415066468907914447635166377872598381662854877393618989834145053404628891490925650872669837178530942301453125775036749291043508830533499007673202218443550333615980083927029364936277595096534658273539684705343931947372818634466418991412504796419862304795383730382732785366282648059578293034819738271867853529253671439548186664446866238706578463362415148462428034718092040967296729332547254090230604463325213364846480001021354946958670432398748072119782466467941209788043873787526596315330471163806202904126437286135314901342345823609166514740537748284232701330590741667384404481418710206251789699752497914763828966931846499392074943517445262155947796031016151607229817230284700014547687688772957814306235068739205083726734486584118934549814702578570434822440869347040546995010829885234225579084347412778440189904327239310973614499367735731960604854785546570636034139637245885067165192294188918517676525467466793953477518550281726531468823587878132280477825143352910878205431889039038754426743903344598552154515069300498186205115160998726633986617775985941695982760691084804112600260768835116212926471960414192768875708371102973838000620454744947201297376318561939310396998335067964084814686254180029838866538609539378921983692565059359719499433643720788785225715268248848297157076128906652644039620545045207645819500188185862834031190678456408819754163886519996124407808437953253082757167586956642362339720032801831141117556957729456782759785638633339257257819811581350922881894828345701616206807382562816956287712708047030066830991770821792211835801263470172830081785905635634871391365459424787463525747477168548406122370541608896353719923836216550981760367414975092848739017477230100475398763953979626766874418094060424273082280198003148278799671992550231997414330794475349776899800977657772314084613358481202753444324509012709364560657129794299685623193123963195166184566561328931291239881993789852605340856513264529798098021789249574069523579763240961492446310428364358779549164019312929226842391005065141694245621038857738923165267604089005475233974557152512743014051834798707156511833419467736702385248456191647961710758769127125440422376203590335745370764679932717405924472460025129762184373569909879948384966727591373825122927052822898581195470023386736575150707970136294929432931924833756027925601718750819038552374727508759284453787854421424771189302887512046222927525235572361339001288570629640731924760473081614380414334794126391371301083225984030080966603387280630076313653144774493341443122361141187781763959732719882707231555592995192758888152421870313874184201731054127570700156670147429806023355002834321337910448882318423415882647410195981138685094718413434653293522579115858701239776710755768648780944875125600029924287425027241890942314327803243789141790791393898158479353090062443543487055071870389187419609320306306446282929412831695419498941814278721435869276290328615464604538974935665168038176196332210903084657018599809716044691800031199919245456913620207065356071584380777719954413858652613877789616814230669657459103806001905754096263261086033919681267332572194386490315146983072229184065643058881199302423588743161179342715616833464160871836128957601891237928326237031356511517115079263848390493625765387967249351131547366713210660123106241938106343070847891294151585560585561461444064042598149215477640054771400077127171230601480516963039238284445916309613759624598542099108447783870197119411408518642751117077458370675923942285832017374759308034556188609354288763773586296508448641643858964929887494183510011601620897374359398413355610582912659716977261320202359881878401104514302805111194879773773638429078582047926437307912255666736890494296899694653867089322714306753374753476160740744332438452444763981801411708382972795543752725148995007303526868323346040975720244458024681399234821603366468735449362325674326256513764499827514646719478161165884960055456247322189483198314762107616827258216461386166752968589659561968710418188296602902090158499134064365963690883347558848508825686179557433571475466439407019767668689594282780749157245230896381759598761845071775765241221136486447088990855972032368593705079342805234381024940957681904030383472278543689872827078145428337812810106605008904976551577090439494738068003897540786347311871955055315633995644270058458738120528085310530996742415574921805303711661588354346216216937145642014201562338510714472730074988057068292294173039993603309356152205370747518215127486719878993696572874439032278610729175235037996091509475613144807263912896532794266567549840323385308577748108442555816760655525834688800292545106773305969818646063662561990883908562614859634277649566123596159206148514468836003146028710685498743917785923081341998025318526083627854762360155137222990374956017047247976933633781981095259057763828872222702836194323464827721061927481146588544214729087195355093548646853614460101896012486780690151022554320471551107152337450635007291693359243462532396033761806122065080361574188233730604911165472524229801356958276762419749328701399916530398222882724726744096932045053132819182076036216078811841728988634991179157999767437432048040359893734504597042211961090623284708742658067479544712328010593110244213443764704808124460758898110697377599326036538767489833250208190817128436483425863307007959584691284247212171940122315206928575802447487928878706893360401553157872054673345706974600578169479684956569847121300309823077622410947044919105830198100753425508535469370210610443191226212531773118232403693355366874603716750500251279192755049681553769344892482536121114726144294514622972404915622188305660481512127527415188921288592565050567764874114617414301720939680733288983419124045848751260562164787937792401583425813455281957134143711047039946019903712686097233622175738912112462264783287820703395576245337096984423905859594228246672866147947470951706660039882465266950307046539507512209634542437641868997464543724195621206122075378089365574954437591055491015953898695559674201432036657295010352873098156394867515730141609729873534667923463934701027016321376712794379802902834215247827232917660319346490687492558359842717053219170777111765985963959424700720840811075256337631796122661977195951505760869127970643897748065675904188207147296272701240935532852580494451595575523659795200558134521312596154994061737685597911495952706073734111801100517441894408492547163048583746874543275044796179609395244209265833570473965156837809110331467936015534654201462234678300922241654551718689170188098731952454907663838036288762595125619218963722849190956201821028790487053041809226263572020148222944173794199926508022889101117115475004215008373943601635996370346340194167348371408723334666147788261965563378888973972492143947025942739820757935055861094571372366431733296840475006594523085899379104809697709483076596243449811279787888022004244675736618482875916202192932081522368812211652225657664743738448612036384029472877269688437181836877451363921554880139618280359919161360746881190261157581906832317668861189654070741287960308479703197342572387244471675011440660241899602368588363213662343100463716797030947221296139587136207913877423173123988391577546651327670765768317562544909843363673994679264867345981852311061959805369394335413273213184236050676543118530978541628371050159002020367435999485629461815697374689016005931067134273987678648510887635567666227424571027583692143391608830928046389220476805734134202359974044387076886164777241766632156584607400404848884649977128755741365580617098819126258565675123225648453633570131542704842518181759940443936425115286033732074136567043635865198321632542772049448387041179356136907335238251338110099534044721449532764483549601740155819869788290322537091929385403858992137790506068206738810946840495768325697322197582981780437292261988660802923553693098396632364680098443798213444358850940715314730887860755804192894595920696927577161230579704821390669566330516206621871192419439629661754141135613746103337574119205728703693024115497187911384258879224378269428031977041650037405637989459401197785792003890909971831544565381707818350300203962576619733771532276989256058877020733569552308003251774237162152107263021905009814164930606182340371294159744231953271813543795233782578583860067253612251014114006778201905676784782706721216678401283824741962424409355886036699636066020581362420385271401013301163004132297285053015820824136207935319637414601477237624695972907000755420957889961794260900850584428851952774315354024635135139554186263193840889179976772700614957139995207622190269693724770980251335691122347108860062610170432517616663081139968914438072090697626198194775693198008211016961211465666209035793268351059289159431835797527138477049485417731812877285104352025799177029271207579751062211074029388543246119311184719828874279139745725766311174544605771846889349103438165420785771373282495035721204856647220896331503013433962546951812923990916890670041040737769159834944474766661405705915869603974439270531901098592539274930341226272708801209335656007154604383341233661486447547443895042224439578209917341629843821521059262869954803532687729741873515637862893254682836930668043220352509050719038449121619826011298600802811101003017509175178226936473399899557870168740440693982402370496554828002240736547283525561527287695726045877310124731551813625347350670203849432850587799491770594118129553559660872021472593858957058030497197569992968547157596880463483701445789598312916559921863783393711579326686513328839374356041367266015128549157579212594507498195945294477024639742009191690335402236485097634034508953527056550409709410621585968445167772285370256528075413401152810509236787569241113244533232111672545860724952694184154879567082586121800800638647044827296234938582735098756090335405035442671862201242300963649048496885393591962925576393429346877438270940292324963614067053212320977777048366515304460181769221460302939702145645224357946961483867024593124827117305942723517402537028609143681360305491690405463063385469804606667069734035126088335166044506875971785966463421793973681745932383899987351889050065542623761797488198031903055085892610492260833460418019553313953681761104802834228974586977482524133726738126556337984134489483151389119870480971247606040719395768790316980370619533040170767827283545611865998358299523003699377085560418561988329193699587883720754392691156704562237632846853857424269900496830424747760786824690906574318628640173533144004185308938637195073376020398811815716190721660574973041347812463975797823017985998378152900073528980147618200238546848758658791649256448974688675452666418333948025716846766659272440732523984159586280760356500789466828279320898496704899706360834090983714350712606353631291620956291888287199352891624101233025747456740593768326615423227623193179791119720990350456274587968569312439499498812384201490984024971187771052979667231879754812040641015354565651337089143612336344052809892714501467818366024974823854504121748560882326274805959761445556240646793023354658271241010850345069289034414941935174302110771607575718204615784986825019319637773944832406367564934709511212355416516389087203926475734011005167475785503063832504689971118190027704267323950614658817545924306241972355418961411736236433189215669402296240336075523833094327441636013906759460687173110813350899933218456596540184534339002499126524553920922938563106812390161008453630282570135433946374134368596863286112269616126268446585727177247980496814743036151268826195763740207243260186457449509047088654036242694923900092190012184032130660950727271536736955819863737170468196820072635149797261836350300947514600063936811910424981493734434561844450169658181676750937526893576026131498345874795488689841874181332964735519085035381389634531328727488979290337886354226643639479425609602916249000790039302699234905873977019393764004172360205632701203696579169364713395640116609129497352465714846350293793453919196644585382495822608638435271264985470198862120276615050836015256681980820611973603448748326217320369124518608169630954585320275534681496304772748251009422510829640371864739284949542832970430733655854246083380221487124344859472200466738473848419228247465460766025051557754869886375305744602791389130725796078567018865452230861151680516422174079546498742853359753330753477662326904490081840508540333099685389083062495265978216882758982361270125660147370724935869814990224822303313463078109440015073490954728841264773035175171828190568961885909395663939766907707549114416917834999539633327097107876056430060286610562803405507084210604412419260808757823533181489666841706186203132794145811467386316932515975239932274009268204516183907538072187220673577797467949185416728165708238421872231742285274077703767025088917727875753357413590038298978303588683181804389277338634313735761898723129737735636237182997639881667654898234690583964841422063165025595192174359664089884993137092159353596652105470937907706786449360134996606712863743446356665507654913294169858915189293986219890516490107181163221144849728888064877928866523113058672276732884219108285510490079199537715125946691156987287686277025637206564827279426665782135793785573277807610559664884576343497803976765675949499915775175256940252309629935444891906778208841856480221976470745336248206060058580407823128896478598852745999103499242431831064883039564899871235907169449140974340197406673045430647320994714305036985924734872766421963013951365459170326518604362120689670128380885679180244091801613710805869652313148932830207023545513949062882999681770680013429698520472700262578163997518823291837829609051080630276938708243289540866613945801941547549073583684094548562471715931660518907442072638208535188147115662682237766001960111443861447020914067549712103430109978847861609871157855746599899624399507077209376846320117421957914401788007656413164325721791519611176631717442606997557200810370714978551268302516662008814233523066461392276734616798116701070461570403985926055022860476654983655852026122589707487288513766283408428013425760109705498263102131922367343333870130288016421989952475545073455871700461289168486339492985201412760019372387703049232437277107400397400941510447181209684039242576910322276168664985683483415228085106678756894834555485865606155981584227051352600717559458750031302739481737571844513243179417513777228928882864168333485694818303120378701460252684627788839544881399708128974317089064493981079025314092776852222180730688794793514302695539535209102175256278955674292609368182218861268009350028525641491872736695857260855508906477429235644307294235033520803481890771985690956128226086677813115795165093956218705255967807974984312156470096421798265146924185772638218709000793239610666574395071397190311460044932257893817308994338415855662744252911026868909498731230010639367619087929689759763346111603253202556517826584688474385186737063324276894060862568021920546907350227181097571562267638417970182000490991815375132733481331139468052175366420770443442560718402002416621633607938807982416887579109035393252386671033007227695914853849871662603964247408201483509712066092499736212569812741554506464870424662283925637662352989319049176073908279536961869943141491355956376947200818503450892632078120772639851339984614084481999227344450288800716412087025770375796233010924249529610303072799533016467628597655193585231283675345765004397131353335911740169514911448482737847924404468285346053194726399885760618716352872268345209098468806863855704232941526630253147114689084524178179722882387716590538959957263201072948111719818671814921886798627549622048530197434364084927072740412078181517154408151894042348045180816959380519138523232993241032411138428206761367590384300952675351876676881353555230935839501079236129005538371340983248535613594760855772506207536390957566664546530344774206925717906726573756607937354564592649051925456558876633420144616675168604555052146930786838439136967326287069454550722641236263031790427472977116763966445931843259826956130287858385279432829129133360070634306318063264703950520404972909959566729684933461090913857990139070967460486691096985108157185037502815838800086768237953083929098169328819429805636806141853734264034469979688934562871756205648959092256386594359041836350401914594599334836936844614854217387058464126361839705798728888934980511206546807587287192278525522143173752106100132927032298518025871697729196017597645457091609142757161731778047746684140578622320455338094710803545614638665099909467382744398242316420444635793855974054772980006963656077985544870887335649066466623175535629842915384552849816198214249047619155755429090794660854900151750900128865288977427317932313452367717674852689058987798628899985588207410519683639317008655501581160016591964328977746231304767946597625485205416766773354312359874423953847051147168701410070131233647587930189402418862910680542937100321498386456246873660934845117104739810071554232625071305549557151712477379443641365834712183159488132684237878327723887924373076335300050971523716598825160648419741732631945220722508030150675095456537843584337897399228370074852373664885928163917728710089637689172324271205919576313318913266194048252666622422784186676715282669872536900046242471960743180330231242983994431208099133041801808441782825817156272501067182007190848254536925793606725312065547438683781629994159931775000777131743899109871734320183067556663081598821547383894213020133504534837353035608166169013552874063660711269157361734128156000208525751517965356636703607650329041071244818047877153499964499432894392881070160927506601988390848875714730423181379180739416863430657093255198683330511035644100975041903887373767389178015695992281637574925757203764706590207024127908309981709346735405150838053140752646317986331306545801860734623590780106229954605081258930069869800334618723891249652658408586739545197788148373789811897429508105329325115476475345503816992385969413484824631496031899699540589379411471911409681362956804312275522195567009988758120448573250159633785213902030049342131282785104047289104929102937679022984743676932154597544772362625255736697077372659656843361952703125624407279417703382296940700349584234812935993138301959028635037445654512159870757738250841317417102285886682703104420283257876710489694419331383325612312853906308965352454631593558372190628252092679794784097525717680287785677874422869725987482108158983712645584668918648700612832623590715826836025318356184492599536521014653059270501534784569182361652460728201232450509493267931019506387594360890308330691851132502958585580637387363676862862438260695673059883305634533239041524045481071640939404667267891062399650709948085884732562725260689815310464027442239966548662978411217122091755695345402729833923130106683946787966457211601132584831546710320669572290532564709197795608898380937125474880140409378389932801417552419842392683466013837765706664731104050002854559586323601220176232971514447132307264642590091269647760061163465255052539463113066525698991989519945707321202574785460692311087817344432328180992303606238355088326059317142332158755156781410296035907740694645747185370039361290933131927849683442778361122261239273505199211809249488862000990238985539733892454827836040174204022547636088780639866830263320260185717275317388597538369617129490721484056754014048343493854800779842333168903994089218743269802821925015219862839417329253906506569539212669948516334952959708269706130190080007920971883365766328190754527857985853987793904039144995158218295579559694196690436141205363488900900535638971423974232320874246938397379520709488299287767767152630161175257442015657150353823668124615427244671908403240169985905051268932794616150850183411530884969226003724466534602799284736689074940872917877029305410830824577458320615101051396634236471016581853036801976561814222457664950039921208581470126643225004568790473911990397643001563641579112956152060388728666440177717501477621845100421012719259990846104698831912799965853554356027165564292539341433179609869782602701023316761481066998896966899088822453754712146246387936900024481374719245535158699581322378088384084549534658668159044798894490670660288783809932965143578536861074014096470915351742356684463502786812567576152384787151635075016117661980055787526558407048610564436541432168021279500913704682170722256920353081246893600140940497410437446744505283043269898163972660619451862235782642537803968841260050937237156269836848252740616932541898371738044577973402611235846581048688612188345076809278760723016585682809320777783139261296756846715418653733617486169926549314145592326423757313395229764906459684667502847101506847911036607496959067293526595746460073795512569938781920720193593089798849090033957917939973679627754956283546490060252438111224115382612728287756302195434593656333971525641130681380189581099518733290431738591377641489547653636940275803852836056122568839712930841749254440143308999340649061186649307219477457566266673908669334733301355736101351442667670499082725450830685340103555599272744793696919428249268294259181256894590388249200478207987515207167347233777768629736687065031219167518466118268367422279023895421631190032595452748906021204206350466440660169140114380770060569920385633309599736519884410285122100983125022926005856887969958752982546202460334021162867504504208641856595388070240628888643698560664156889554267137954595483818653961977297033190095260446680796254310534480385881693819855578162303214456387935024775067706688779780694402713684225945663613946999099054736780318596324246082881436417232402408680210873305625692447768088730635337830700741106558303937131432661036983893628762822298664689662804812696763066526819186742987104082012063664770545264377405452385962073619501059902979239152822495984061704247343968810936752069523094991670675904696806982144363421696453619995756521497802983332980376519686817893030028198598541922682610282018600914676711123927617952473352741860808252463486427276035477885224771231896979196588438340676019012528347487900446166634765847071794010122765518824021470683969515561251807023562812054069847386092474578422336720980175086753107901598900064464740228032680988673693660627134329837275541171315064224526941840361051154680380188648789904894094937780436097624469373613843079909020130384573547790408422075673709475795404953413140037503132800700140814252324653243649902394726222647908428847267453755949874306223254140948864172690141640973118514595782729864705012866357881635039113817628621099950501752196493952967371195845744824050042244409573635733886354922690560719058299570148243689597916235609937809409405396839990430559830524745846996469692546641357118715743631784973710003983319565539731986459341109609311808390874415925686250225534308576937785124008133112194931559335464394460154742836330299939640575652506077237060204459058826947849786027253520856283994547057146973018871671209038102669070869372695903973201103452360473881917706080245518790657772052997303878663643823427584400156538594028065608042811137949455808369873596249685958531339999467151718919334389646765951435685831608643974660538180567543109487921773446990318977122739443163299185718663503035518548660451123652868850743850356189172495292752053463903503979533702863120535435254669384143722751216330340742665382285994695009848956424369787844094616535462252365043386742473347919869553978642535549344435683473621490118526267555024419506823607193193376127784975320050297889383734959280652387027605229738615687997502128114303406556400279655509279383852276559186681401505170922940536005844625823012116399808645135867808226178901372874367634205392759161157619663582336734252532199830258101671011696847705218599493613608845991264462863023598225000522215132039793759609792025630460414995966582801914704203693121879953367958513597270462746528744458208131705353726609121536169348691277736711046190638006975947858190408733573976937192327123061335624364280965489307434080999663849988775558408766451889749438291567525478308990366003535616477503960133757994092183879729339378740769858413281938704350338406453236401772574239961077636195574191016119574266911295320878286574903765869168843358697505398356881889200931333377162392382307759226916213317383230124350900473757033477487576667354618326883121052205750013057970452153892848803434132558426804740015671775169800143154768358606073576931162613145049809308212271546046283653257588180520626658746233752498576271119950094161011481203513971251608629533720478905395708387421632843861886891980380337565810490437663628248871330561633196945053867731094222589300656094659879661965965065042893963730570774478805337271958318929626301267881344149267225046867498072071198157306341775192736780193521024530987601769974627571281213322962863695612848927593693743245524741320459013043036683975833745939969217162879946963634128231566427541959051897637442294390925596651291740354415325602378869692428784394583210705677972494755911167286376031580534871484840201315218867331476019061214328459794715390655820080352321182700064115368018232162410397374304206192889908216629851146941136556865996734680849873843381428662264166076863674708248419505345107155842122644632391043060285551206016595682254816884572103200732764367469596368138487992482888114242458144577690932747107535616649688394152510016293105854589466773831201385805007130933718788400181858281656973241611142427213863825402357126502612098368937407735861577163054274167016994189208079236491152683971662410647527109535820298261089492081644522712811364058314789140922343861807669583271428198119812414855525631745320949745808362240335368024737768228122115272281845400032335993223110137649182605387814895485622697236971729555123514893645009322189705504075549342340394961158588661331897650122846061305847866634927369648773152372246930995733808977916700558699301285776878185315820519198133924324026210996402814192784403916329386036031425200217170680643304128011773077196580340050792874468761321104000645801710367765328300463331087933673946692904778401324348412586964274326110864820860555641955945094833832622204958714124519342399988473158486730081458300073725724250462594594742242213303986090834511997434946274631768283377535019340011979355645925968345006843097678677352888414787126069438801087964219344154569330356667273986981892647433449355594474980247392395342462051690402236294907025111002963004779037475365170096799434936989366068526278360950951386764156049496547993989348505612303526297569793037819900807140713296092671795012171447274515027815270926237820473830118324266764227085709167182850737164072904442251773923448566718226809914725471732719818380983222278385744660381942752363970087683254951945312561517426597993901305346454524466587592479446124921257504719824011736512882709512677012199955644776662694783573580708366336032856784305710864078177125047184566964672405422197194871587438447980571029079536928836397818110390533475246158574306659104846619386453034894065122097069616608071534872878655113217417283088495908997624251493887430831656980108582836759478097936527717615420458984534614920920347436962721715855585405040212517136456183968961135735423227950045157866277545072813186097833284695162916620089401845438639290899714339866291334904116064153525126571935104532346804330185532657084503137240233210975455487291531030561397274193075638477106470425913009152652517462939308012409138321129040410557196697873525857067270869726913247961324973364308571712573986408609312791701052612271316328947044755965340766320142458130322087013295216163235981354504513381652147610312598771051345295369998115544136382364612280228930691723094175323682774284786370112289257873459960551684237983789519965406303042010276570931418810483849734777723758213989741073235124164628645368970650739414525272588638173181792374553649434916032175713066468186372310744534988621292620809353393112555811349964618044338866987713506323332565479622824702615868733815300541820036640105406656263306785809643153153623613942215817880483020730071147964965973028098056675849534300250506852998873774420484691088388360211168946462592301526230874747348229307518443891986883796490923830126493958148401665278226886948899751760476739785562714706155617102378019295855574567830148678642953782672064867936684593646019514552455995904133463460299955886984016266904383566917645333431590196859305487936381730909267446740078005789753459820445389206021512711382590237919304398390812096112075519776301801703184134805090208505561087597777899208943039246969121961493341649730378929717089962574070349334582315944843348572991701385323030180368076922249884672220462479316238106753043327173036596018143983631014726527257336143017289735583081919612617324619937904277340976788531575681596481504143521956753897539375464932385865763505878881551587195766243034829437391328989398024341637218081620937143533005310992011848486855549124497688007246778004201370012455195523874873486837350406705445626708287200438866230458456577004401745664827844253031212154917004131070501550695918084674492644010201735209778262290041545391007420718728674276478391673112581846978101635550696316832731884513547137195965749367602892665696247374786465379312495315629456854288482476178859553347271272680313981756143614964089849969017501831671426985565284954590509203308935434318251461491025670442177844961181840998919084014426716823706048652724635499628223359857715991328747963062674449308806543742509518197453669649963352368938706698462849520252114950309966527191778245108787403110020195876750016102408010001288404874584918311865592279490593376003916345533135591583832100185517099017986883174740541434303444314155986820883105201000121704129960207526291929236997490261468196992857336247716124159052777660539881744041735665196063553072825500381702124659992361739082458965926386457023299128951081228404620896673487091313660675959936225725132451068166186311112536583265506119280263849683699369548668785785143354424455444753020002797933381272580300220075361876276654195391739820579300021766632293953165005637185694478338782043249882023638899472327149159025767152157816209294617869307249751995136135029294068281166272967596121666738507875224441548142365609602168306613072701850516446592351491859295888857572853341088566825972470307263898411349029546280913444659021896377700697299164601003824731254480139303567040983510731874614607251592669194694583907233304770407743660643923460993347494722180820813250487573807457144782280101749722377458447259831238625727346774610274294423588444950230756122971006565398324007053786097650047545269899275214486672167006901839065812093771941669630265053316434427691091326229430894454782700208993670766350092155973438371901958275746730731099494138244105390456942657178714801103881768026436003105817550377598807048254523653640375545326879303416701325657914599792893474591407797383949586479840291006720924343065843259149993275292353092087288521745547657950114545857958208750259059700640753039542843504023424645245373266815705416673462523781654914924807596005670382358647694836809243256618734595150335882694157467344322127402931957519675562951231131861014390372520255212185094462313539428750113658679307187551077604044881770357262728289970843613796559736227965324301136375813600240925616610792848744202030341909667034490088935806246777449000855120905435697989890335884513668599865696314835484286935878264456120758858379138289509773998364019776101194576800704455514896514568273570738748264549468109253915830191172223468268693422635566874905345219370288596589152261740655755690880404499060659759028922267008647019190070104176686507199185303690498368184818579094663007359855575669900225903562942398441285342739436900007516429913485651670852006755445568145459236839539785355288302480567185001761877580390753759514404428757849120586994621663305912017814095392839835876095963572849916936019539056650310487092640309554056536729858191697502299534061681945575201682699783075436970655422187075059398471968971269699033474698091546831609102322355533957668578966087960514858841734820647212527461312782946946597971296809546616353852970481529940698830970416535269913780264361896125843042304341259136501020922136180776397224958049995039583490543949084184169865509589375766775528660663132267474122174521029049679410562470151520455917059741706899435165011376380503058377436299565169313611426836907117386680809361629591406095259775842649712840451274211654922646122466639036040748608276404290186243339339438630062000676169564924402021393375852189510138930903397426576898167949732367279494196732586248069977439986807078976848990567322046769945275788033972640310488879196815253161681512396438432450763616760978207301833059744075576205795693387905442759230370558194503582576911782213194088271323601877402879707454093197928435748300363327205040044777789444263308482630111824094566177275756324745397048473510862213396997377573393920256715839293300410144981748251831907694104079530771357970843675674327743572237229523445160434807142316925840296689717796345045436938954262038120587781569219471184618103539408453924571229817713426083906912211172551780325381409785139512164996609095200715262340204748540478366271021610570767597647950261588577089587271434621832780294159385589854114282690709837822720418345793385129329386652619225725164451750212814144569265978540719786048734144756063717133297739726985522758893507903594600933963467453915391038944468952815136038950336331399249648520326780112460026835629850065630457642409613210435063046214994483585841290481988162355460888070128858189916568968146637414607196237030782119380671136815894818382705693488444230996715075260488696491105481475846314328344311246541833818163173899887387711079148319337891418439308868857035923014380943980363900555254515204854644646831173953915610958787958011396213149984164810104123553391688880856162682559923136137240018282438359354900861969845335641511387928338496167012450981944721395831197681380513840782810442027512019435720547631572126259932691438655625195423486725599197863128557178445057143957596808200965272154542304581735597398333361128239918933126423482530598596981478719812351811252198474060292440250278135392702703528165487170054238670572922478746834042841653781041523378372897745492761419920390570014015758038107151713535742566456173240719052788461689225334623000614691126364253738923240941964369575323812560774753457033433804653139146295820306060967203179915561547122780111901352750874801319084319509667634214551816115568117175821978372918037948142868640233070374617918622194145500562129182366198150674645482813975651090708363312144936037622981226327038007179194273672560800066577520830810310746862224783307644145297130853734612403714474026488311702532695261002840394836923518860479558343290076276945949011481922090744310243525419540098201680584691158054151826611766131317013322843212540077501692369027837308742347373925078172804927723930213702678732551464229014174090823769742729747010099179422214419531989963097673442815670539832458646182647859945657936741267456878800265098580033170740961463848103675756957531128010851419341317437682835509299217653086298571078599073540054618625568845942867861602764712930996726369136487254558303753378021020094954299641999905407113471661449417723020072546642783400083386591500335700892562989583366746023037721597286581570293011201529740338160167537646255907878563915924843092085368431082918690062391370791164611088811088821381409808198078502224009912129095687204789114381570400782325229644719023957117317116423777981088020584513057956217810019964843073230700571956404244924317327565692972073454014517603833538637781710723183510399495327104111856283535689864640720620645880019804303236029226908097796758600631183675815167728921698850450567412622251360955197511801503096951710117176339918122363037483588403152699834387577162007754598993019722379737551306357115913382665606196608244915451388476280846227350632343108908713447946200035164568509798564141905784009216003679694673375069853925044228537873959471337754431109145444580574743318992790911039108478383410745372499274632726316136212606175939671902244799984121413832937124309310695046573781594687855609222481583434402065437359481577928139761152718721338558203581815484949548097908170140247988699306448577149182699162784728315951617577875454419739690890143994355402717538005305204991199592328348246275275829645069672395118225493552491950615074001350602335613427515353221043490948762560314020950439497881395100184299742234203116067548947589082675739585736057685901967411957287890672944273536389189752492406129222857515150097894091749159518138291657064660293930960939486038343956181000155172061466077531448591015774346830527731962725792837272858332091360251734228816025805103389618437956335835516542623250403164839434263619929174978498507365714511032975506055333667683371206657264794265897073566696622620320813101129516421135426569026417831206022582764128273867627152886947212263067546559962239409694027181506122922229683184878367316531735177078454563577361086726354330770508346166935177248364929177728210400906426524181291844989598207251730004849846975597000265983284911937291522068689222576634682891773170186763383515488899628948746190806010720398862140417824168126534741435065423687924542298469228247395077177639544824756509104849977199323789865839237815463217936866314813215441580573246344308497659520186458267624903856032694952555311057567243746891249507501284317754195305916474526954328642007489487291805663602204271422594472752182127516033162303796591154206868389791257771976320804093614289523080213259742811674095092858178358925517479090789325466716221590358241362717856640740490765591288459511369019265645573420455917160120123984679493815351997268761341680639870331189211685533185122459184881162363408856579756709060184389220191793989668780167298263894180601372852357183978830683746596311708852635471327670526244200195259895788574993905775736041503164120382862968268468772764767730714012795310612355012430199042795397607241459410993085898938209838835297413527516556456013404196770197834965025088444041036097509036984014485086629247863265785086240377796781969693030018025884075079445067027986070630500288827614728615101911909969213551939937234349218759348446370888359864875751196230753684750356075192575178656736162723772008476872127389449838686797555205340625336479127679842110651611066329857890401762877771055239509966274724782018861018466627786478906047337387373447128133178813923443791953951590583676265823176966611199723918085301310099001020785925816426196279381018761845431592787403024334658448506960567437740070686065057071871176367897189044768723180408856831886208234879255979266740534224648370509814076518469372722729471219751285337317529212079827996326465822636666421114882006803825840302394780941012434452590549522058264618021674976289694054906678129573832796987617227253132189017659540076061205467489037042920965534669062616659902901348681396913168784960155603746610129503465713214187711124168788970746190969159912466445209204181314593648096911286257184480630694048958830398678742120124213510278229543290107055966058333893733250229416950637434239003302886876614058601464944439112793243913766415361220500204611691051888937074370491707281940772698079085625049563484889736733781015344247965120457498655927749264212432437852596154296758792230724377105737796274635453928734355188868598304684704640115872365581906660499551732040692743597239018850732976647863324517642111975111599822602323483100127583928474327231393033012827495357149022077094219040510527538627431258480486484280581382415923089509887706470935925486312407025875423857731874077666380723802105134794322563069558911317932561034455860810023002517116107013850805087367260800870839176786190229641443654225122217291036556966631321420752183099805108917793449272645268578995133080863116587744212839139536636474220764617843387576203783626599023123552851003741879129249235653479548911135846631861298959877880794160800788512086269726349612034267714350567137471551633882352018381131572836104213116000869618565095668106848623991096647811321154127464339598620529861247859732147161227373986254718867006238655415208807133356997651166353196418236634510958885318431823440979720377527751528044343650851685908839296118898348555353707502286268470000602111423638837997286637260698869077161237919128909193284002867273476431024236253762106560714924432841238351681111031795540935388170456760183403573128372726715616207409319323744924360546231792815114807741946678439070702076684322792208962637432741552425703765650078744451723773456801146567461621727927732983491183596976761462398627927550818986087314318524304330527413223168623934634623403770111536035155884213519377716567365515276669516562639055491986934049257356488810301279512026282434849304994374973897897436702338715610305385110352483688248965138854569138136907584590527094496822563181652496817950932493499378737959911540206996681510096980853447174629054991896573920618802187695593041821934602227526160744327970334127488622238154747102832056424804573057941599837310150333250042372719194765112761611616261077292922685329165940908221880745646897350467079937050185765954392253752703751599753205486678048006643688093384598977046705705175752897036999441347752370384528338142042765219102515407814929674924280564014064045665160979115934325004929035355586245843885818910768104416336023743659066041409173870022083438813058241563075654216636154797203352054262905273451740819335089584788441717824891756323785325390080160052198989502444248937863964400662458586508282600995365037884000459607599232896997692715741952766926750155676639477907385751916505623424058105270462607339384749503325810019187832622157123735667620808531015948514390427052456083552973220061754923842946602960617816360774960236768277034249388153214548594489572304536176899271515066250543708361080588851969789852458707500265294322040435912099626946831718348523242725188088251401835235631667421888027867223938539271861497210684305778331902197087932622224038686034627921465720863054798187381111762224391163154587302919016469690317114212727395637710984995369243775708746806576057778673235120840074633908106499995252343587326794621930923403946164269609926168987047053485628382196240681583171766159059098317043115018303402663594548604019110554070137623491353630830707415359330395098874895170995351307306065588570618147408892258615139276933940269077005836520549990063786770974194654668507241178397834783239974226861370420140758603745505999196031419566858602868160999121434147776897932618943445482908277625369122035986587036129568623291175186618950207722256250526202452182575127515333231437224248417333350320493284292768782766648617237132216380778405377168060381825379149793688729877432652786507302440570643175986522826276542301196716411641558809789704937388333021113407562226838962267256157505352817732345331683571155524581832910941686148784055927386011825686546927267073788664860007872270527447328751482767853760592412594229235098494962706479247213001848772887712474422045573176831253473449334420485139937461357403477261960098566482904719631147977953792012570125680006522836864307463746888141405765168728799405462785191716990912497858604887300162107902171075502708004426440043693062341452737763127082124161627921349476272817890961289075600434635771447985179024325083951368792787162568295891939038954370542509080839464172224566471403949980807918272847354491759755025438988071946330908418919852020393631092770171151852601841821862592216453767012358838766819309860874854704131500641586989026122957384402686728379258698111217569044837159222827026145825507544456230032932835926695846607566498960947637985239787219559640413394188044946553268670274761428302457549050241944160641365436920210929165619058451876622548162432884718094200138124825614580209980796013246989494412257004630786332202324545658973544430641314416104749206069721083979500218126929513941134768011749567911534235266276183993352771228840981800134949637303048924428426535617584644313948839885676322314989641237373518063157271829430377191677256650965095613558369109328400229101145182810688045034287034131030677598800010813107810519643028970763063676600177064950536079596261926978702166240940949580141679179695494718703539353791379165224072981254122897391009897008400418734900271340878997165368450296574144516508020197097229424498642318529296617960423849902352667999322383671460497204135367150643756758708652026925439989786207623474473757402877936209719336082879029901541526052216609878883823676972636200366119293478850783519078778033532889662505840989671726763492487487369442408900656761692195702469632325992715948888440704733000847735391368665115603796392167814922587613934771709007397789194415991656007405720084054311819468410878291959053129451167328996541998051739757154551756079060304260510814355252601420236235150170869077340866030313260023297960540660099133479833876885180706160035726806706778558283714540236693271438145642179059227724807061270085412687676567425643749560500985329261101626350133235594279441167114466514683427787434824987988692657603133716834300607067963922996900830735461817437439544413113408311409702292756000948272239252192253552189657524923963114200032901477078478618004158773857483447683442601565342240080800872453316378443192699892860702173725291805214794755069716828813889377321731879638496536489213959687516318397314477370471341734387553198936856228143342381474994813776356769478647312655379759786623680342067642438746898597237660956412033274221900502624929527066838783976666702807336182076623110026746612054168612488709992832273938456691135195227955999546978306995882385483341115104054179385947197614137144626793730099021302613576711064849500276546854899097273732167635476099370172360513351322576010062804864648215754810594547734417606693446622829742468824864778428158948505873335843822665682715087386730209470630237159119347300980590981780220641209542874560148072136382836150290069678950717580225809424704455079571236026536897086568921256393706030476386499168992033673751865560013467382462609302714766457102683916202909535077839422184446373149388827221022094405942718878643903693885636157715119969313467783156076539055295699972965093097405174837790383685001422953765841656074718251287243551209635694681508918771187621878703217809673432606921066470383320251861125900354933030571292703283482502510326415681937168916513555112907593937079826701528596126493193776078983170242996361334473244754843483825019782789635083479304881800883075023727908831647222003006010349740448668594862949456795332652585403822681425577245376897596167411729980841698979983081986272261526728988815749606982410624045307974442564025768481853262806398001413362928138774847500611675539359905469869123630149742293643852707215486444222811042333756015086552166764599358056575538085707256901940061203248195077541378803462159609055584378829291575598729729033123923398458575043068799215294737849968333140460518925454099150808197190877753428371352997305479563469306206579264195632351226596884210265515618061740018416633149039382966836380405833027198105639177855584754661504978846626271590924539317766315720974058539704582743337377267191402060195770649203381169031536279054432136229300388654398566974050953295497446493964291912881377254184648531503390090395762655879150870846356101551679981829106674008736560964415446581194300057598517662383433495474794034592229555688562047304644086194437976725162003786334703517489003822491325578456892667901324270533575070243162323431196743787354093696674687103382552190417957743017328638008413207408338629266835277365255594971462727185485105504676203426703312340023168534240655089831728290471408874784178692115129943391797397552640194781527858617982015759614172538219754934049834668237136940066505750857797766682870073006353923909315547139800296622575746067524056259611640113696669409309237376929811758361425104038453166102672886267655552538393983023469502253401727142849101457834487792974140783992634721197893190382956532482293846208580970468681919569102253991130167005490783640242183496326772116611657583630928154516965211663385605938958483401977534746326991693857404767737710179784050947047041802470083624984019130318849357329033182658471302560076504016148266336933251536191769180491028712913782471266423445722273428781133000586588209497539744312109968555399749629978257715377048368502134929813499386213090361424875339432175741844074875257952706188772150474357988189719778589026549207817882332670013422344684741709083372532684267659066004413068635762105883257474772471003888161826403736028003910440581488680437333649386405497965583429896502108039365305666468619157942715458250818036083020136846152920144852510168342071654312606709958969145844443980033549829665690032984737379679961170524493964588782677653045128704135635445369818827506454694914857319084695048021989899623639602745940419902580204120891184004806131532685021761350555561114658687873222595877971683729197675825987952647821780238378625314275382425370882975331225957575861958347945903755067242626944445583987367680184402091925531653439530327783796234927521331353626305145570010341474933734910835578731976758979377377363235290517445040786191261993591007368919512926935223670650372628626341425374395947458063724588780458337802161338781989927422327175554283095343443586376651434995641940995915319462831974347780919056278892995169095881637115854151919562271294305726234866171574583683172905750425730684235688058811186358449484560815122226036005424190926212794122258150851516119927260408332787863542587496607304794825562774402848340813956442196318012346282594358996569965256823240337701201783931269379999983488635351662930189882665870986399790338241211475154558474194171846843528692779195965081904699390068121724164617389885426873838809150345393289751178541068547587034729171597078495158578102600722930100318680848803235393226361864402468405259993912066760768060006152631885977959368680080894992091620546356466570963553305200451602658313919084076241713525745035591003998784705184317008694742107147354706772506135036106246496006301053368836174175744103076193332812157774157917339062676593690059363220904416294463214301851042137517635781471519020876329819363238825403084250437194415407476552206177467135480177288348117021125335255626546772741667023635399261530482007977421088536173812090072459333982695964442835270852771150436689797536075129403033654012634902916219146730546575732289267676028745639669527517083387525806638607902579545466189660799769523715732856953923467013898804117238893078207069482181767208677148287459148816820524607555560069157485539630527751507740643909119069094872321338265268255627992166430632954327680072716322795733219749320077821145231112225695290231994352644034889318050733192738930067380116506194464390894522340728874746895519670085583079316562283917428765126492562969810168340189838013743400048262845442370383544037065350393062408758260938991832317629423175400778961204392469481795381262985442521575179556576221456494955494674860562429248509099416599274970482706875916315232792234607433782720996176863772049660585418813973917674084033860030032427814427338272537680514412090740372424630083908687697685677503199615377947473466407708163274660479777831399121531951917454341663951732747218552002028192181025973504747821204852313346779070368433792658859192366743915217071419702769362301812640514878663878503204014453052437124553888698501539896066927445051255193918089868695180654275181906316400536123542270283750564438771054978375819730198731190105038991672506096553779962001111111971412525021890009070512060031545062088385385595694922543109827763498823860036864075723454999453661807968498269485296171368928411577139019366318925321784666621235710800248052604852124560035805271239396559437784259373852291756958023701875600898969128311436717138031928053105551044055965704955644888922954991835629911337345798879237529535308190413529709045500770910772841290716587546288313270959227814197092637686535013890106954836475465474609988323135635874951252252684810448207506596751093792904243494254194510018211796647594760258506692316945273707788172336127987136997554208615896908567085253066803074666136449255362950930889406706414335589009889118851593727829215373043850169720933931766314473971047885396707416988060129191488810725627991234790992705689451735205813916582340720494653695228871537397384441074028068429538829825809410042949769586038469791477912533867574001868561186231221515511048776271759715262605954320789967165879045235074722329168615091544711624872170632187976914191425555519147975226016546158078237610648215365404805171325911084333447380873359020458273492190375303129044318743810780193270379787597015242638314254356161721187086625646176688746070044525736525194256412949411646092060701947142012355259045012657018937704947660124274152568024715464944639008493221702902335229131080953962852971769932966440241322976459570299781379849678226194761744176980275864169864963947545944907539334089752456088200604354069218080765882224820399217352801591611900534731737587948771514437001239152187798720215182698988719571381321214044698230469869366291976196022329848039235535705867106988032894929965636063918101867557745171943905877629063903712284764667828381994793078459139133795114207378112144610289355108720628437140656543706509338395245046787430192495922989761417768491844764012963121568305104720758825457631200594164546624983678583914255428810791906500697091544673375600112295324038466029900713901690319109963602071359284826133528661854723118367006596628832050264404313916578308896194799335153343318609771487382686560565310408790842041745274747390186124559305480553248937188470856730088578153304644157259396209208878316730777376856528369050641966599128570019978579455195097261224013744343142273747730616933240356027499908961224922459233953503710967239371569666678090179693182829711300597258894621657703017515870159245877441556108820800869748903413259946857097663493271326301070336358412890998973914437224042302827056967936373388087942872099071828370328330449443048769394555418247845340780445807772724629567345411814282512054385062389669265253306333425039891386426810537386663392375940672781454045979581881657006538663502371801755932144261324544361830647359667833312043446448121237275547839337004319128045502417468833544272538315603155524412811339788010910326446462318668789521023059631342517614392250897621690333266452736622166339333271519632717581374945075483077969557683954046523319169452927320494028627048478899617826433722323994625407086776460024292332842329575624942233510035254576627236574066333912046435775030719173888722890877974797058882822630741193567667010685328975719109532190601864816920295732340433160992227755386547931930524603114037862327397898744289849142654631345995701118873271248180004783585259476474062543824600797744577872698449606110260266352010682378664061169430839499944755674273325102439805295607732131256942859382278492533067261984846399719636660348295541875650715442584163964183272651118421307921954843889504677941112540152477687178314680153591927756361561556874486755501962738081625589801479251337410435301662841088041342550835177139903978480869057197281785950075538776274376656492246664886033071279346663273912541829270027601451141457352141962064752668575748130815882786107450232387098178667730825792998995344106778053658639746925767260356879876553793073216044140592477045581779230882526329833093761626142878316557803364553013190148284415697157714237434633727097222553358440798711110316540886714310716041462955815171651693211131233999157636945423010366475409743679936134761486467260775257965792153915441706644680156746031613857389489495777794136123165454350641656523280447490003757314460332752257715366816932993123658106585900235753304348540553922599326800730518980533916784261604774891682237028815009613041058455084837681578651106713799450574189203416072736001981195201847651506800104370021073545152033656643454994561624246812258345363195646081558351260341873114471162493073522177923846731572075252499483309110559580175068176521075792117533569208495839028172133190479815427940873044606181750846079639733162276027720990037584173736946536296220029557176445215235567307887120061963164791118959837977976278840475681853150883380979556262268986032971093423043878391627549621401788282140409443672716060842364756532419008005640316216750293724423523437400408477470266575931431540969109824667488173624032665020004910816849924537067629676671816358184067819292450360462723823618713378096236963093518769462549329245400253814692907595962001146702273112465372545444841540123126084622539176497838323125049710042072529400019853210528175585482473530911835655629407532391942942664244368843804647944321030517133575625062546064400907665564320079628721645583707015681272893076230786420927436370774667285054304130846495992033911200831925252651815278577560515925693209888847089190406628550868189845358737063358254711750154173281719555178848741504136940849600326892732341459385395210165251475441968260704264633181974751347653070251987243931202601086714320606054725999758763043458238247180886604314634696553717854519518138276383987696469574793934539966827853749478958467568800104001778108031845574876065872250137013724513412845792073482453855910848902864720082536164075757340812492933876358395801942041755365551193179717441281051529565232303861680262042043334482569199114439256187712190386551819506162665341374890365749938928149121294605504137237059836359356131870094860656786247508142603228986251784218881501382792937814468555523772578699222826369389928142477098267681963616670799065330586542872500329786762019455140540624646115714606949083003642087150076631448479385789184267242286770975697702998980893152419338227352235925877015347319977141736996707775361166577537444867924865578569910434174714526311135749678447303976689907024060196546677803422393702568804036508930838019064389954481588964938961962305999803074845862709012700189924351616140986466646274541947727819600224365470673781307467244048791064586612316548920585195211878546474250593417949308164576049224714177198526878836875131835563255574349424191536112971106514321727883808560204380538439684934983405335916580207580428705686182740305385362324548025809490392163370992808909562356817150268940346029068423698782441303948616277631170494892567664741159790254537067165391107515708382904500444750047388118992779905242958137946601661957384570185011243129474833814590698673306547583498011091408096893279944606350213431343677149749541962741697276078272966032768517898104627184798411612615465029701783885847307403754745568914253255653138392942087373174677202942245790711610341574165935203040400821617422455933261249304932949962645444028869924942081446254815673952003516737536818467183484974624449025808462152143706862962308131421088552793230227116460934415623725095917668270319310918159380804900203400372732159965946439826664268206356636063215748167078061667430555356995091018675543986553812395686394333694973127878951797498625818299088650654020170463930628006978549334933087267882678980041313778751639569971185492017487586150433095954335349014393740402345581398888420697634759174288022566836539270534671679110859655354474416043402510340970637066694055667864091286557312498600130628443638500581951673925925202521717865785595950179632612352995652839931019581989872280328160562030209470506709584994473115127451660806474388789609871071975944310620933411952095753523097369975867690452592257465271317103048832255470115942308230937239784413672110985576826880497975842678340042210852712769227142141009895291099408988396413395819305101859847587978032439297028126278641289962512350964594999150329474077115447245418069597242663277472278620776203654419213614655678340634449314031114906164600969390640193624322445631859512450224406389936328831805792844716943055713727777958163768042434331730437137453457481482081967296788876632134967699394041947940732416735229441314110782873530587441380222310178090346055168525047548296698761080601259133952846984884625458436442769722104834726078409655953348264931942052389116425714124717789106443037654488563621958200200113339921440165393278927097615500833200641758156737689234550764709510611890673563204375233283921888892439693537172927946564067599433261215223399685234576929511176642920028404377053984144685724995250503301191251080729432810700075253725488383876827916413562042570190839544285265282677791042363813779674362032898389468374354002408841417835162415486596297279304017854344706521689082533566647670073547081904961104771954045159906406097245562191845996399933567352293778349750032970107357114191286508898673972539448237954902590882971397310250491380508406380892918491410544419792555001919486519945135163058186685086780840187184879339244467420639393579818422367233393728494080508008086612121459919704295547888312118799279973433870782281473696102454049074159904935650155262440968517998271022486774135104349573934818622300077619781631959451943116687605298889916906499635269561956842168335531504423037893738938444932940794827199631141526760647524097049368346418921319486470221855259398999605095535906479126931662564042805529773905962745442484776468110933761012738086182818095909733456147164378197936183309227842824239975821568828703389090692542624586445124882440914644671573373368107230701321886955982693934457126158559435226673240512033695007666280183348020510095706603794693964442379173921506571939260157849496757149990628147606005988005365369783612727149167331917786869506845440692379792809922637322688717243234523515634866716651955131718219197088685091193302006587261100477465593445006025944425509816012761231443433676971913071906692572301761633348215659805877217848322323646746921549798505548307491252834417741938223197204402274675859844440682660883805091480772459672023082705675605361103909991682346001355882979882698317059792956178237054166518948706710470083279594746125422803953444081941007969684808069070646271597545584196173469085037415932462972976036525616677792250311689462235856655419077838523425380545507736500453041067215605994408666452214839566000593291183754307037365345388903255084363117783874575843377975223614488212156897469559488338776573790973831187085017604830018879731959430647221126596994701338228312122632449829472754296224075747168372122302326508486800248102320081959454988734296231200267003471624365496459462382449209360921126894656182157583176653969263175527098891448545108995895930636880403734076731464356899994709567550529862211071145983445966000141801010956683711216443411447969851960360564478976594389516845699527337985318040286473478052692536641775755129881782194507707588084575728119507775562183501860233966533330766217908760148142792112979373636592093839212301394395101877885917556988225901713043366430978623551581657298630190191087071745391841032067118759887871323512695651338904756144487487143636534919095506965850648714677668890533081118203475369462297713731977884073164538469401023247371582785914299385833847173483687833134381204634497676882922182411819746786019249097830478532914327651477694098012305545245383178069541046859935748965364032661488735401077556524699516231913523508790251670172458688813870447422242298488281493771103764887204189210974266174934163501214678338776887110850443556938359576658974560872734214081054437960117405656694373716145110478588127019727565082819771868310802733584249124220576190658189898101521440840772206820025866073662485609812605139685201333524385136594104110824988223886633941596617879208162923844571431723527414330573381792334013256027492621811287958999900384314069329092912880334980026817029099039974317036099595962546797786459158090363498896406243931860027049474371988490390837114512903872878056173821230012409764040250776964688645811823056057782704572796259591977330972749847717228965676561300435200766194895431635596561550576273299680010985131166899298045682024342618772650025582528045919875463606811462479282487976403889027563800014185729761095181037322111348474788124399634070853528878501439567691544531863683672669037481177056281532055975470720758584280704809284090299826194708433486129683671688054311717360845897351097375550271918239258580581329699897659036225285407708361732364547017370561218824551392861802022431154168987851057650402437101581226077284425739367555766632699662080628175731926674793572131598139619316297728557709553139609870497251799528278839819582151647709482277182179364614088326425937811856426250608514927074682723702205046273236248902877336029871943214488639823860093011170938607085447803379965711935561194621587764665325703101799763113825674980267911120057501315075466991228358316186747783922887973051647875297455055903703448005079118533994574716376167065567474033425100892800601554526681038347370820354257645400648376108571574551061560068320576717756659596011893870009456319447891547785762242674140107822432531695350668611053843975546742096953538711911117692738848669988775283018374103527602983239605036194388279983337660377805214197316132073037526307963210885008194727601585477479953770577069385229419934020232284613140421395013769022731312705110975612397994172084096318030678406277793022989753170468788774220944488381008614710691884630420030553731354037912567981584442467366592577585287978095813299335485009797647431317932614641656915100319630025797315275513007325695228031643264801963457392367609477749800543446270901657641687976734955264106734799320316112382057136783424470597342607633318702803117746734894036847197216611729721289027112941353599825181929552390505796164522882308776287152025134750579187481464894568892582590741339257117917082224642183196859699437356367713804373143149802001255351042011257747446819558185170538652598559159576159061202140797327380350428036383264827248419155396489134199044534198612492931430612036853418860542745559404034845279519544463864411515928911814390237214523108494946536800026082813736129162013735654652629020897861681613092750335059099897695638831917287975274640529812862025957331656045645416999089465289156298304793663197972198494466190152210010396722885925676159598839502704543713003739826484648595697485886873887247234124587335388006445004431072687172629174577398925165868009775564126397549320376051014292006673901493154294288553340111416481264671498445421414899330313668997594523768095949777995136188393326495266612428151651265442255418389065196940764091622625086185445283251097247639276390179150425722196292022773050407364271771396473206577763683670772762501928071609505877607204383029721129508465333810460689210159176391100682418024364680196439173568579768205268137185547098735771304971414183557638061507447450601384093464673319130021067433497399037305742197360879605118241133758998723699444439773018950191945181917292519885435469009352600850132236835379915899037912007066505222919836888707811354703108677703524685340486303196636167064610628448885109712969946807010105107500178612153746501178381979005440591219569186071534821974090935167566404926427696531188773080409818601467135265350514900555635636556075441169516972365051851539781298748297131133915626827543168305324407492106591035175757151708801350220543534443041479798373574852689100375279686270909680761459343566500091151588403171623760708634286881551034510274532757511040474388480559302729903206088405395652547153264993630002573879768802046978487606924171935056737657083710925966031228844276191066819703559160141058730981256819735917724623089633892664896862001773688260775069691632989368567704969467449406058431373458111765889787522712869703436271100884871439211753668424466527542101875961310453730171292556003436458195175264256390219787655298763083182438030662160801699981116250402598755236791078255270937753799809121585693020788799960026125657941051641939314445567924283587776396188527979979134456079956956303416491032769825297909377068272107197175217580212466494085537629701309136235376173382192857760664847939868033693052460497512468346944776663898481200442512909372301220614624950595691005203751385185152060778009733253038974481517573060640831423628751723617780739182856183818011954584901000914701880813781442078147222253408273021981830131103984519729725291149497604988736636694699346081473455391209088252028800194528402057326277055086492581870789178913952862189356602415771053855807664125468148917890239210752707632748646696411281795240306051220559211503014176974566016648725376768942304655328774535984047053809931219979395137093338008151602127062738458892683757487447373523275998968442871423089878308870643119080813885772088123094897835700730370726152251775492795571095233714693241705762303119804334200434792158237913537393238234782091947403436375783714536940760174586338775003185007877872103991549666772434665062029603394280630875644280869247148650536271156428498502368797837360929625167357278122713885056818557551440858662569865718971470260390820358066741891615607916847315733967580380421691621334252740577917780165470484391154150686144445063102561200696510645880240451169118186772643365135825108281713552709327561898306645252933234756600389778616561845599881471758832855322662534884077578031900239816386199471101189335187620686008883567973808096093568445707277097009815751627914637732451072414966422382419583024845272433071252893471634455400260983849334406924852155469500430904654468468592072755581732434048739839508103522431481961020584139272496766559218962075997138595593432974825082515263877524377597698543132392001644030269703428474680976527892856583570603058573665527435731386338218401586295163337506499106777830102775268879422567690079705612377185283365582741810774776118613296657175813468385461022874100400753620125890270160182213345167699527688485423667141438914341644636365286081430226939768098678053259716464398516691210449496388470283729190329323929781177735057793304218234446354498004015066910494545601674089737743976605562075648286114113699051132228616461748249131045410476603614620467654318338270662107209130048907328860573192263765463506967261305149933670892029737837513486949930779946722508752375322857026360338224678282950227452277611514179614920326839149419516823032999074135201573927617676419092463272661749493205768622580913408822973922496212410013667018929705627116969296510224318052847178563857783804484437796622606977797804406611491680698023717760381114025181447805324079588490353258349741304497395948459782291841447390141771346632461018284393873498395664793906890482444051446255000796490104711878870254248439229661588962477087597364906266205471845821844289809108872263643630744698694601707627077887476976270474086488551398828741183265018709241777494130065863931483107501121401414297585346618670505008766504303232727615564189833972653440702633074951949364721597538708903051931899279277603480337749772545585912531862673468929499999667667046795579736345734548085919025017166198950361172486145990025448768320692392574148778539845219115021734460181729054521466859954570138224741290039676991417831104586126679418914899319799685266319242953533155382151257028139378886993619309924117615995186496898663365647244420704118700177019835132010421607562709237136836862457254751550770663845027807134227083639237996425424313707885770586189831448516956563883652505470938574639711199181194168023561549044025737606062635703309890616537613218845520559537098833248650764911937073125265891260959589758513206179585472061670615658544314953366523878410246512755356038481174965441101310852508744069408292088720072380278851174243168078064913023366420174554220290874639808291652024107772199331474447420297125029944088162406950125524558758778066308320270605780066813712087353736009004745627767926876923882537982545334054373240514925065544019442510280887516756045961577597846406556895775174180582426061393390951589934850194316576866887042202302349238075627162678622973879042499836830962883178714600803821191614787697857811145688341052564884290851008794717874999133132861933571143902986569036979670571197291185853355257912708027200648954286331610531440568153742552537407933219285630375364169054905935791272701061766644191661289990720466160040721887257114002876862768029922715703395773515192189750151519032506271067223299073819994912481229828579203451227393039327859714690687957857671561467563436637490072094106965241523747685781478190263237864143861728825412619772991222298223595673406230318345266397399424839171880975881177151896224419125198457527877072093421777024703099957386134661005920903115827746267756781158903816972068129240145539009878438722489413107584816432386079546664114813109354069240720250449812634473388629682852893234997623544181029656783428141712668298573604221023254713615527899374407537528252114572263711891036391199267095565801672002686314691474327477376955141104612606670901826741938354207928228045010273975010445259862500677597332687131491406440508629201912112495633552591374997666173467421326094079580226328175420304669433254767301870898245519188651891975084162634554175544843157035824567990378950163544105726934965275372833033831462328809516133826451287655288389269081437755466934204473611143853951181941007610085396808975264359810466210768218559299554621847634101932265284401274683638607991331705224223675169820550081582147382176444324375195073797418114848551493274447959012608623426530086924910910286953477819223907769020276508234405857816458081358140886038586867780711450294357402689294322615025578596281583043482276365620461959217555510476719306278297424069143841840058286275508914275239147908029339319466315821939645242806633120203463286083589267955479354004362357178658273719173334405469559225058205260386850764558008215342529461790016659040543258167840637465725509623098333936008077003883238644240096515632836162075835252133994392681428812295729906167855280751904013493527919037201524684053197169110823156799926855763671931088364317751517957030403247634570221918933946495156748778972509158963562093598210217935308034906006317572892661756719103243746805982400164671696532353167005886128303549862081586775098106061511570018663790720323521223419372420726019557637825228751693018498045027547097784736244921506773906914231242078115528972260788193972191200473750471661612358515286234724193702214135671830855960662392839832323511293550405488738207626498019806476996320979192275111816859608938111067448652607737845649194746440087964358212632080792764274644272842844238578492239418949782081887558676496090383736890467814731143685865634254901930055072856806891429727049103491053860000716843624783178117482947181218946215578798992647241429800417129826731768073178775919700977363803710264471085669480262821423688662537581134796473124418522704189965172412052154215701987290769565372352462151457779680824997459900714077069085443801826516260248838177584873227197195333946281736101710209817498715686822736041073969038517155118544779531840611945018970854994744772156070766465081656318879907871182613928555313697970861166331164617192607215115755546307203571809759098987351357949908045034300385493400693262124634763777154578535152880995470189106543541846066977865345044973215641156263736650701954817013381798471915830485425749603255894246847311827061518253599116314433791114239641074434226486861735749292350993982588249754079011211032364542704910687515494271075206468241338822235437255515313933586467874483455033115855559127114300159061746951585974622747042069527254213954575737179389069857805146210391350806384403695125294902413451921387072817043561548857373580017704899165759676599081234918620756890303747524283127608278616965362001025242976197787229465319492584997347586996420842028980827262605594641763148855111509886399261171092646323571800508375972851236765147029410363954186181207244437829497685059137280772222834343493400126016028980044309576793637288647247292099868580277145435049254403388109279710772920725170472631670143973472729919337656856039131545205270477601139409128693166877257394484055159784210281162886262974791165828003564923337634079311387401286276681461003175969411159674925604049522849280067035064045168511559202977489581478035080666168802826243127927209358403147837102373042752781927794184062266873916161991096024124709249765306646789486826396743905015118195656571159415554028984547012771915318302464770764492770783898329066590918679464327526904874607571386017019266836649437487872623462092672229032170472003164844918931935055544536230716303504950607342353159972145018963897368104574929745310446725466020915706212720735137619984802795393147418103701736868646855330097166682453670856562724735030106086468772309274207226247901711126312177697489947828534989545411334025608984740717958839425576388335022847582290757445859438820417460603442034108620467892985736146772257986747673370728103623766841723052117289677704384581694921747083263686141951860778169012669235665890760432421802984260910859747106733169217754638346165849475163956736826032259678570335238207885734585168942662764687358294969899416200553493410975373480494262448877958333754875129567679900982711913005267173049563453042088620182855375521218779420082402391046270394639061525869275519780036987226902075354368544422891044817133103407225556519192736841608957082367933160092059860951505891581779087538237404499605615057022085979827397355338261494452386345419468869042299637580472230638472185284395384930968984420152295398220159523741278885972031219433415608538300065041456203736868556858226370391307539843799464004691580941322369807722428998861352668699924544874284176858990155841913199479038419251567509164193948396100971704846515903715704497377485979316681714805916659390519654943252941806738648269750494254612199144316489026834443257667483893859092538551994407104044990089808425899582946330128437284693957582465230212864625634504121901795937789783989314551776844004617189275024637316021108674246874120453435696645805246365380466792956471830135952955309934404844902328625665569579804816921652370106738007936182349571114626811287466681106484621115712843858901696050495768555542779440985323903524787544707753087642049265806309932445861677412509605019700395546465934978942038942372861762605538357020622865767439152318289686881669273569821558241504048179713982481593775432484401220468746098149351170341091020791288910172970031715770551479846879010332012281805682187267950090332226487668558784107838382626443530638566137340606872094726659793383411264472593409592072624748711048820767270799407534838291824459571005001388465364814793658855710264160278329736460494885524350764829330633630565486820784964589563029242241778793800857573495025550642880877800370838030166461510741532498316706981152772176139414110226880473001618704359641868656233913807670625331495506317125521054814202202550988248871041646265143447675778593002883937765579643382564104361719962916856694918466111340602934239891653378821984777334093017601367819314052328918412573116232800320196622045880719729837647586874696051099659265900696366364457745224276461774359429222505402545422566485516873668470501471081956548830530247517953453387857440507434690527956502534768166196631733901970658701510332658638271612192840823599481513474742515603370344779653334526986367512578954408951079217053734596170885789325889278589692522906148016976452727144337104835418310626043491567150387913423658081885883094725239397665201246618484591369468791422684015170348911853489592420608563710231540829352496291700973229992389002366211551823251746973731903668507753061298260282422409329423685731610808565612703762022937388755836322754193950463221617469355996048394251486610271137010971723183262344566837916827918870197776296447074752418468760901351649307022188925826871946065471563950140336764799576230676573884516272107381067640263364637850373778624676452492883058737679715629159592088131273510905866607493950571659096946924778421638970663644768121085225840985817083635152420424106818743141933539585082429141293004316204231534695068304283363860873700295488698606557885349900881477116198435138814480910614534686068873495429601286159394014951861967414868983838094208175950345999488307280346342282291160642671308616663174191401314007113054306003460608526704394329703327210290478605036358605920526610534136250221385322834908932150376564539140741002859812016998448614970071978572573169381833402846132488438959636101195547798750710990737880262640110851558315876294536919020595104685229439391891198421610107540778173225435389398871515325601658748236204434872703544962839335886948527398050925986638651654227579525005828134521582559335360376470446807455276047655717207230186513681207109882151431727188665992793542333328513340195891539639934371450488032279164146797028688128887779370304828988476736425104675207679780656081732085953201089776636256411743369333012508157671658170846308765406218793097392005991920943279016775033788987526726752365624889533175041315023455557903997208507176561107979414692635683414858863640389259120638949050976536281729029237259323296163167129872077063763634534698518741155658550792206961921122681636511045377942007275739332710037567867272624586696806221103771639130467312348811371670116419893098852496646360204710049490074439637984439865381852545140837842867567482872936219470922651496894464837048946929787673810870183684525437727726246580898118339784261958106843828531136851075434740929577453415636124324662360072820786547432221808917004228443606390714445588145386582796326865731540087468579645908359174572125992415318243460554426121832328320760988601837916296514419329623237485701408739065249317234201727767892803973991593856810240058519940347946881666786214351881988436122263539549124425058954171233368368700061832900048752768295334721287875421687530772994090367699224033333338511805239065259029188086245869831810033013193610513749084387564270025263358914006686030697617691596679339515389794155812614039419217069799653204405417041096469153373262729652518324423852929609310664577021573309611676958294619082540928917811993344710496487076471143398394592136034385119845319477180828744628034310259771801455001189260528840410160389311485688043356966066924791211789857998269567575006049875890170678638117083103246868288459649067575497015268491381542735145214058428050802739175764561231094411372180162916490155169483990906845842488062941893774734004185366467982525806069383025707826499974465987211565131842119872195959398139744882314249133488823535901169516873686118451045517229702826932813499163568207910481458600247483860587661060411842579948661352695888123069522687182507374279530804201714830904495878902197431048393311191669137269287536376719228679201644007969631373494375301618813805801841547130318110801439402339788722857546941350676367871198230039935222407482493272427944776174755733596591088255409086409549582696047157281789628832269863533522470712006166837211682419798490274142585797233932739075071740344228649345020065964646992346636912465351460106394227630722882556468042267438858128877537386458250933421687242453106724534706991923559573265984037839050805265176111105876715384293848825937088607971452361682027565385437548609914212433615925705457296450025598443875674490564991525174831885860256960165394989830960407122190200922926558999757046374225903903154889578233028277670070316037164495529612006086450542840495720207829731820276427445879698663206797253123025141998949305417487286249137505521229299933576235325970281903843529452814085752794321102451704635912194630082370392878539012534833945317045859678984407770192666039671102139218143155848548700863824725554342297712845702672744098845295713117000297077109685155577431324663692015010292047589133389187434718532942732536071280845906496115205915211447864201946258839045164941913583720317631711568017698575858632066716012224198627016157371539881014786798795392338060469631814195636396244675034332739322310981649169916817040893686116668389310661075031407319553651172317842177006740302245999778528837623514586259150909849452161004372726407312540261367885827482067121258540989235918710859055455507541967941017276272219195288378375759048370934322593042671120061341292104873498717370589865433100323946049600380665327695545091638022074100967197759860405607267247784974299973098174225005215645468537387640998680427139600762050842240513458770836033812576283115017365308814187791668327029405935513149600975844178687663258308837094343035818325746684460840680225866244002653238632064457577345546468860668307212752908700063510334685290584159918050109669812962727984216173205783436471429644459427548454120125787865727043488272294347763124503343822930822174424632396129376563785126285237971542611305388345231108692514845929293581807541577233558519103725895766035716508937739556675023747584158717050564497401366251908405467862898469547545940154300966275828746245893599916231427238707028422021046506084270719167376182741602593547667595952224819465115258715859811701890875022374103731071084521447265027229041583745378149879840936396043986739063648994202843733432199126694505709853170230501755669859803772033983307732536911453223527914860032773265848064837079744194062563009839088992260886988126895965289791475041264770488090033050233300401200776720797503341743566155376885877718220057256231075935023313237215115095074663760869926254591691539322069737849742642065899571389711199732355742943232600580507683965232340500409664388504108141035653022278361584108651603318271957030554232924318474067072092274653114696290279768289968849868946407152176163186101598387708038452521504779072143073160833781608765155709017329625883657965542486465855811563457529607646655059157306767904773523039161794508510133854555910537314422598393436134629089544567907901761213556691081500332760964404307361133577887865571860828999764572283542334966467199823532457882189424666145973473798449961102147724097099856699300187863404454995958751814279940383780889108282121220286510030398524894280316968956584353653971074122329735667262450095721345787234841694913044872316090179059445656950451177202856350520507141391814598795876318560292320597702052537588035777789406269600917670653521328465038420049261911351374264625907468470756796551072989923140494690933199665233175062681159361581957910770152482269652777195323368604260208707221223738190011734136296074577177600965898308302957822986271357018482425366391708225930334587133059909182937643586910564382101795459314200995718533771898079252168484574710204167902565608971761628865910887609567388141415423965174617319238658489314211055305524851053548087975227350910847095684573447820494321961437797689489634756639582896590289680358911576099039763251910189996527503336097645574496745057241174886723197538282251772775762961943168712634089904274186754607395120214656984386010222582434204241109507798572152735101162764013774175278160642278584037068355104602500599271062022633998936584556299202261067009489491328594572747494390719285093928335769380103850363735826362798038535265161278447355526812501413354634058566913488106941513394611330356611697524251035922096857861066138825294842988044544490726850064844817000169064590092887004944848231858444066659908861007000709282249666570710162260406618434017621424411837466523441764013815680814962236786340943113691033811870719601246572361340193922423300008892420352600290377022430049075740552060561525297385242495390838516052532316579459947201307907079121658937636938800160162594899102229895590553242332800850524778809452402121416110450349985989791244091011044780853692828990435119432215694164661676006831323426291509600679574499638634969058395728288068098574085166775119725304201061287577136665209390043407024708196310685593863715296638940920801648586736396727153733856918071912779706679370339330277080060244904227668111072350894862448250463707321299690398137264132519729785760359261728725794071438815261609609844423484510558822920534191408898342742719947598310976928855219488958507349883316805017686196638353716282127002732167809563945555015606863246055138936189611770564648654807407017138865802384871354236001872394432949444980978010901460339081296318218209768537574728692702952337640046918622390881697894700056357341984307564126048145953803841112673557069787490072477835300523493273289083261097014017142919921465024611345682678226892925498748698514292046537660982841452892303731788706638873929882464710902761115221034125811991169015227200082465870999123011749528895346484360622699857749967000106700357850036267757805224368421468737709133358801561366866021083506304667737369288363911028669275952631619683190878709415704756782162484079656259537665848953719682483547313580786017650062206159370097304236689066948400778616044709637608918282569541281192666683824881874109947417323919137777695369974871202967570183882075863783705221837137297003341268726972834634736136595202482740127099131030181001351572070002781496598174630179884587038304405385305352781109714822927881403513157981856975886788982763071802538302767479178558465968469231515306235197439592140988612353376192559444999506201980420534685345518106401897437367658713736290798482999908417385160055849955884944846891862734443297598639599400442362621315770489168256769248269169167588985682811397684483887757870369410090917357488623688698380564366801444844225025644821108879991013571769513864803646217726217501620935418622164957071866724533742942209674368975070588694057045283201559357414347759097621244124370877350536575610753687335060614738885170707515333284747582922773659131040614099904707412058061119858425563551000929969069979380984538474633568640802014073954237870274253133656604631005818805515127667551313511242293754620010939480132195547544737411714642612100556160805276003089537465948069428639704934914979373941857360261994211785571298439945769807144557004838348246447090138461845057484114852300551671355565448718904845012412668690201795824859159733451243958102433501386625480738569402566398154542973597601975409752530388012748415775933611114268769008718372457156246945315235984077234559192094617932864799451073528599065608430864450590716073755571203776348442887108615552486702019536842198964049111064281088291804299112218666244229281172685673696851009978957467469004363061578438241272152257950983256302888619566886064916101844670293476070169191590474458676353274465469045337434833989714670928972110457607795705881803171454493671620068878713509939608268164984094201462625647240348901419337852017182264898474549063724990660934884772775986116617097642330792391694733858666916060028422915321825503820664713341962532227447159001034408197854486546620357534457374378917113007251665871313338939124446811778267466141341062394471834682432351763064180579637018486749743780538215956306270052667743130243418294519220119769605158796115507770470220988110264072926084587235071509733538621001525080318419672624235978718708441379383642799844588684193994615815933695643424899757764378752102256636404905337700727462220275727411670007861495313738779768249416515645253802519013920932143690046309544301884274040931111393058379765019451392259090628930810564463960360358169360735518486587134167901339093233788333148469186675663562206159590127599865766725782371738591972619545265069420229325610365992971012208941272704317351842619301005702722504553290394051162439075553968710139623412873232272224190849565661552919246716234109415165294053124607079020415457338351701832601836205297702043444682623291573091971471458457535754924522942233111429132409613968350592456315934757121136289176897411439513421593471626064381029398202968716105989197868191486820839460789677674381527931392965296821250241625151642775459909479075962733292157554139533931545326825128449200367687929415140451893482261828603505027957170398679283917826070832509967621845303958237671976917809964460472830592134167498462060200339959913294296478224036173737608997876155361823182073452231579199177986292781113857759623035348609632615377408932309471296075175758328223872881358352930258419693523671529448260067443638338056362560411901728285223293554539316083804056630515556344845164711680394319921622930068901362754730449785759390112164602850666837354613557811507925344576970991856198376771610867411214156659092993000208107720105459314344635432169957429960669378378854075301626182786347647256359234327627033551115923035341377271277091050646855278761858472155133765821023493897039885500425410038184842745142280064327527227855877336738557303721185093539770894400653565966711786005484983386230078783555273621749409345643638071826955357977151496445611551533171128247544251054545650868651890208663509294043615773702540478046305596960436023303752178521218331194263975541804233558200214551459534584610359420790782690484405726314664884816872061154921652753215924889601834044141341282968012852241540403282376678422398598550920753231792473401915816379066856496503592477751408354043351162119934939718721325302968668746855527494936790045374951276770634930323222927461961007469201891785710292741456446993307829858149682075203946650613584481522529149275799398794456041693324254058463464074855885376609159875517890455517603773708675486299270114093573950047746811669980615777894471019668053328966311561956528239502099170195680342986137363514172715359692320887917814737486391268868309367429739266542860518072084934966476268671040021285327616483491164502676155295869105116254551879674368455753516801352360306838906259004703458268866818788115791035286508061527103640691190583044199734306416152519293982251537460447493356342599935765701062136697198473728113551416067371332781564722355270526759455306388134310853789237749353044329570852811818860682041893774112684303044862706208216457616640145085801853247177326278620955529786705998208138239898757869414192952706936775318823491531163733511410946200492575805927275911158262536706035609053483610318082549932800567645772386548939688831206295069214004862600608161017664967541382309769754641997470996676938034934596721588519223817455061151687787830527328350757823087714350968259101254054269168950623038377043698795675205766251645162346613437137182349552798921252753967844956039087737823530895986203655697613623005320325523359143272491327811656268658729073544385457762747219882979312043420678204535366610865699621701612616109764581998125709168609309355396961203536050129877912605601895343190499546098996032240639715308392762116896513584900432236967312916648823206372693296059137308756604693155663976558765340054951447572920831877328399615200812276067508942420044606199187322762058429196247463301982285875590224318192529784512388081769470372308678712834177369502371236730466204497907973844944204112942195487129454650610287829805245716089493091171506205994797295419406379752524109285196404648853692568262053749145351938268535307952136475065574079039623703286307065729124563536799779354873246381365550193981352132332074152153976336711298049298412652893164262752669560560731463109641321827712203075217940076941491804160474466344077209176961459268424033575946472680800720126635663886415696920173655078624653535310744393823456327166466287119194759470226742433845816183377528355104484084840373908072840011744651955530485323398801592983775629562182897975013638544490875845510023422648169883091604147357484064455177667797706855928374167595346814010030698395408972917880993934912308241521396786194954698210678739844072289329364958291586312414077995049690295040837401829826921476232467126635935951074811013837251924688195757589937016838318999156854368762595070307498781801287464234171783940019612061888259643930079773550718319972914850673929908038812731976332513960204205813609203286659860269713325431764183495569338389634756375458646517595428746768611053173788707184334936811255386746298726597070217123494625555314825251823242143523333315417747291905070813055997446092830065203234348203678394705354986532533810328208911762531885968666014017643828655324706310684415522669469327101017904479453627092120668568971642571780038171260905590272597453913131212772921824254645217178181431732625689664665646311153233092726152016141245628479601844629823106868861238098672456639144995122863395625650372250946267376913448288378640312124720196821637875523032302805625300378114741786689315379971082985862452334870720901195780946509315285560783740305617332169327905339786946477099887045683041741515070518630714913338546489795182684060989359289375659423533870791048362622246745883754456374159130052623030221054810929731446971990487483115134228087327419909720071552817358809904310938348872026904960521094683080515054195873903832903799834615158693601225754629334965671046235967653058003463344170254201897112072515888474333890856048049842517822687413463601918767422301284763778068996770051755882469867592478373674624811974666594441230793070859554348559309391688547713467989196796507469415913185982867784726467290584876525414466758307768334518000982199728317127269962506514611216091196381865150827189925066683688673910478799728062532373598803745049649263981867203374364639132669202987356555116956243927317244820329824578236434991079765680564333927924008048878737483386255517996725002918663146528102618146613156277972800245952489531018308194816132390428480543724673503928378793165517757801183505731947502205301753087812212856676377245453862911099238687214021911179466371258718715250736992657428825682386347717430402322344096611730027170088686406346282847947273961454101764526439498851112983908339070552920884304072076950587983353887209875693990863759602976150268480529834876780179888605067290353144225950230634163522687652140197068054770700395528817073202154868330019783833414018618937565040085927017755882712793310039378300722878203484041539743867595058661671312173933161729295179508893743324421373210831340801803983295425126192433661753027028249070942627856546441466928865564872452709023311770044767776139213580905449409586747574167139002804039209211422185822973995332791232538958368502244086404060306924967572073847962748013375840614869115435732965160303751496186986588460690268294678181488797435799294878861787221208959736555223400282165081117049117769808069807329762511450936769878513172745794758896952090193703402219132382462890062838205597258820924144076797078034362366204055372052693268835384141390891199282947016313396944673973057867004284507907965593380712200258871987651158844241936194962049342621145578717571235565817740648432655313454291552504327739189769446363529953431079879247608673519722506490715108617523416424076165782077049032317270292657084075582869162949282763210273209107690490124134544208016656542320564020105253529916635929170804886956491072827527829043341635099583470599385737468946127571474462760103341223813110015909089764972528857185395994937507730497270741650709142674360567224859232610811024718215569909001430253752393219204389400812725046628138743273615064118676479305221677386636629005247729656844780349726172053543957485577244112489176364886372566487709827309310141580923534549390332751472443642230046545104263078764105643012991909631533060043783714799485713115787003575834272674139385069886009372863138081569509658396568831349779834864999103714977337692490813491651985360878561736056147089602611316624809582689537364043579115181595769217311154822449767316036845569841982549379163255001476747277104319620042317349480330311602883596574463375353038182394885065028345063962481491001239082114629210701184452081650861017384658199439667183799686701834351464441555267427530970647017972003602965186385599398865474564141226954958956464196978367767535695216283516917536212723224435497308827349915507757875381695561790955083118584601645760796617610995021486348745140814077644937758051579152894745333962554205367504322585122117565657456483461566940820843766316078993822931434692290090998743164708952408314817301254963845032534519628123797251176279052693577099706119936867206353034997336176124033034594653989542749100641489009459754866673761972002558265029632792803386630852689267172590586424952378239231823162727597545357739515555557372298311714664906355571161799769626940923603797555974001630295420272598078261656917834340829955280315793576400898840410815332514824761665763288821280865996923262273855175000885647846069114044055144656763759003018752450135351332720194049984979380558946717834705209571510988907231672960108798138546193260663823507467650578392246747655668725104199159686101320901120582412701004273695987413984396335328138476304403139877009371094777567517711612864258391765564190881415580150291831628698937924482317477637210076778371902024942924759690570777796100415720257184295974273437859030722515669171463139438482015371378455382438021321909563936126330068494947190633291478415523120820948500362362752735431272231253047444163808618857670219509289038164883706674966407575063473903075648314037837638431399082392579667657488615492171021078372138330045103606196910944971734118792979356246717545794539777755593732365472021931499428869658385481802179297763040463103182510457264294931939225355792607711423862001352876373751459459147265181042743322855167139021647533161927241635581006214746239559757788654439251921528109188693681170032750923725145566046625791207124919940013893163478651221390206128479042513687331505162742915442132502752305025148194045185753038508349045529374105844390254702932661974712962610959996812405980304482520806692472831956203208777570518527987965204465480851700341324924848079328725763690638377574186660639508335779978927046595406993567422835821153485385222929284963370073904765996344514321835401499132167544695670146776595188795165697893146799137515982067690148111243856615834493319593124397816985502726671362086747083254403023674395961472492463605720398874281680549315049094112032931380773481382157720169832352459268783287210147036737147475215511384145491312746609534622139731007020828858666959430433737475979915216717659379131057678502062578029187113638622191522311578856097456418919141475604344154629694678876242132502572019969955653141721299879573625729845217123826880504407366637093337249633718563898537072122198345340017080170829064472115509575683035417955696430965535724621661391528089763214930064173070953084981537354061373849092499333690441394487715998859941839067908049013034798042165258422141604603616541014810340564424566829748685734135787809298428787058431079274854129730368872093777785209047842538352891881417479453421185912673548106223883729552718654563955027987002781818974616758554082371914778972847670704005855687780171642171518387937399917974728549496179546578587345730216835388190099510782824662509023894260040958881999729598397730515931681174916972620550461831787537942517533510892983437737960155602544846094260791898549819036243786551854817630974536084188497068641743877620225272446374899695222703156657911663075629908722849835851619164578255831259807680336758832996830685499254559994857718521369183934322030979553373093053659327880877998103931936927203481121296203281068722589246557186214444376398151197233024495652277729333189825897575201123700668215053047956880711447284241975741225193091741863539886719122381782810588118753108089718808669235965962985073225483518700238500813422952390787540521499158543947064877473353221586194525271587611740713391052963820655157901025039609323147879026190077134587101594113392692239417138289443256913148350083344492346502033471765046606237194261046449448407098297517919052341904434875571554542785116282789008019973478117094230372987436309836840044342912598011855789735962825738580759807996739372205127753250973455664438335237666825796218116756517928532061165735067043457310308892940006327163576706825135136297741886078862447317736813355182032220903157413399304924767181600463556937833976255958323246812520801335112582978112109634476804554309051865384551149290831716044588551905459128540364789079469612055873519790061359561820263472001033400301838643138179689157053316801765903961384775218606364621472396462771568253875699893168796369154531732032063558850136937987767216548127822720769210262373328021395256654812667364289248540374520303549081919119596722937327102069886017610478729126054015865515383036425403839035721061262875524970968509525527489578208998876633363693519610152959773821636369475614054769670063239698472652588864945882617774455665545197922193683841203311401870440541038746242654017779692485131587451831773331912224373379880122387352950087405221634922027452144237997394178677952037580367663101672664168702010375085369297782659408326638511609298298233830264323970080148078099200797010489690433057190195884990247648682690548970234077977347472177978445805341435588998804800930412852514600227470273387898378908214515611880118740335436828358736417409722988272628396162593259855109735295593896612999975038336153430272221147363871741615048606837583764261461085675810768972027719649336812056785442079600450154305697567177190859853439255275397837625825476044399781184046843585259711890344518529498592964164170231424078198090110061643773637674901272739278006520191222040946753642061444364436882425647459485626617942381959884955867563055746135736041702228160702539185395884169821438743244769760114356122911201846286851712207441259456320129726376894049028605690519350457513918827377671702211313254033931396136073401946148080616522433762455355544388538029955835786692419397605684683502332323293318036446011448723292908988744034033293223237972233981485409925718245051956739022850008656154911224316893599407382978739815252148784940935455637197825891528185357941563734043041642825194231655370611857237808265861043386857900152652780413180720311939679286704376451859195375558825883096266398896421801388017185854160319613826950687812434457400559254837894856747440912945031563111631286525768090480198212463189182221790882076181652243743260722721356840730415275917320249831286915039373301684627493041240446952069702483629088680403982392311658444302656404556989427709522994454182787815569182692069392784515260313160632901113442057568147100365255374837182394239577856547552529974918212656851737432325550679140492263937072843219706172364118700868400303487405392849200143822165326085462008753509312704461212978883203031792352363738888886171229688301811125386440341648218793535683023477159251692510137899649512988532164352596089489791411170503156526146071188682679864133829816210918012125605172677261267629978113013981416227420039509830594957181752533350028804613192818638536646060445425959651675905416014566383330601491723888359761038588622483034379403293160052016416305172121113518663079854310152820422047949325058812836098742035120658205647530208326567727119734979944393905880008070187838559259147985906558741904589713272162624269517927725129495404968018960318874568233710173742023046803457865815635014314418125180480734193742507556636806370205465257785029152282922390829356654714285912533995386660321385449524490673452843108604768049193756777441782323671067806589512946934198563861791029815581216926757512259277641765603799623661121195406033055252467643264488825550396715298986530004160655038430281827216055812239213449410217758111754872779330323386787554218688104253117542418037871911492852327286924429774752191665063682554998404842514534804928231381933925975500344474358184138996154537575893448188649547199715652185526279595819591420667527066735081190901716541861105264709183109784825023960485423803671497699153278870122918781284624440160343343907755435198546237965639537254066241094500273915353771188801519814470493686084401837047105214819775106890660320620941456803372778998586091445503064186401209798198237448353520418584876583412474449132691259215525169074832474992493593059467232024972783450618468648929666508866424018174465262293330900836589046078507038230776554921809721745397451932898359240836803021471301201255630026783563849749638882491562469045673810182987630717317435834825175560314596380357688819283543230233957881296985203497206685268960331761624651795830035341350312128541845447351197329890505118332591076754345277200319881856767383075891419308986255670684490592543797059038821841595148804612987453309988570001154844615384014260807261340834316915265207609605394011192824405594618376345992713877848187020845992346812645136149274351565142252422444691588441058065509228734867228352783694378636005425951620201035129717136946967705192600606445364664077226971288241980753662922409558017891129786686185711176056845473410814774731013016466535339896878396489520894696127863043753507721811612185778985100047421884670861780381613746613194626806245164073306723913923662579628149520947876649349952849256802657905062640046308922502381307754042882062362067377548692402020713411644615476845388765230772582984408008087007112460769822546325284384887466179419765164531014829536633298030146033696415821135763540645029834205633887907667200082948129899369133577402677108177280046097688379089321375814505115460392584935306679616359884565565552428048802493092134605772751216653859962231382552614723033193148493399312718540138381411240076369577504349691989156322011996550315662058626153859530234410834127800169099704806000203602969087029392089427160580625857521962431422357807600111254949776052937772088382258140999135445938670312819403269985804855563250910311944350520527201307169132397607519865085358780121961189600769977242114619488267962202407468076737797464373624797009849266335915045252140793596857336478025543517361848342675901225423741523711767873210949646269893358802426190843541346523682020962783378588039042168677390413480587479894459530466165375296803221924144046223241048740946108370758545208155596599723394082045550254092510963358484057533198718903772979778532259888057565753481490392165734969788869009520336425046593662325819474875608644203115295635178107825948659273630580786372243216289224025656131004137252979627827077084789853341324468499990956691043130872098922793994964684158300346348028388945465425203690971231814577846504010275243935638299886889834586806481830187773354388174887355710753988193148992972456064852134095809267816290437098654094931460906820708483187292451934037626785710751418572355223873126811078344532489877682235250852563030479665605169670983355955133195938763508055431657508031541861542029513718128535136446274498180516119909334763006728399653760302811458736271161700050744991940294577174917895027028080041240142531949945474724492176598877836672542952729603318287922604893256748922760490709814733000229844558352545816892693782168273145621953814226537611062811260169086195213143435505019865474295044737035677572481989752591736571224133596555033078525477200942657175887803533470522678853908715235300787897952030221607640219566425876374013663512388920748738710442215019534459093112529404747936417827657139294078648494231821899181436211889684015226189917240907539819508849950945206875805298705620818319114121415748262879192255554042832242626118328070835571381601383455229151848959938510807365634987663301524130996162640243343418023178732168489432050382876850679740351900665336245197377017897948810281791784361223388832892830804694976343173124677458807416578203516972110610311571187569991315133426107537917567590542261285040705506806189292050781356941374737745790009041566367648667993395266655696938323581028827984905044995670032614418558599358244025204135811349718783978720559197808550392025274647623646488797558906701881339870495346650098882815808622037301531930639590520047136355119260336184379628576346223600144874213916081690068427506177751032892538529847714663060508277671501344382787284604296631641336429454462193733173448169256261135297775353403959135754986185261610058700862957185539252128567233067735977047351078467176942076610609535753427976766949354104151035371125101108501710291852528316559059890247875792367035172695832982463857752294027575158145404444501383518286578075140891067178768518175133764045369831940691854728512968540958655980909295703362590121932032230282180679529800207932714283514820671604511699543610866558959426457426324958290218502969421763821587473615579481376525580386981129280055947473642588539507815551266211875481748601508907649737775346421349204164853068223061814190327947985056351373034002756578639198131094461928742303150003654382015280454464774117834419766392554898117843670496822290128997909143548280575185375479305616557686983743293428401306435998224185905992645826493599436981840879896658795516388145322437179819561735776941243653938715977332234206948122831380564713399593771508953166521262322261240590953441770240674687351107214276291878777936485476968178104813021987298494277607332474211903010102921329883309478049815386891476569565278510413169079206405099757577777700370693995666688739106949820929959273701716653656933122506325240583885371689986617534538654192708518172804853518866035123992300355921887905584714934119795384809263505103067942307080389941321785400619407753577130101970799574904957635126252862248287588974851531875149188478127064715263171428933002342115261286504807701037530305564005532075592700603768017467794020250630807075661484370411840824915388155573213351733590491395584774872720936441366756389619639426269650444287003845045520313621290230193880799000280633190643848088528222423779846953939985857725823044690322669151395716363716535508722058386156093483812486104490150190933500836507097298941642997675555888064428550932859582947064766728874096527223674507625735378667747334248114571536913524694763582549811957749274083588064951984199435625731797362569125522415030190369691712097188661522368674953772535869434026676475471740983032029145391561423054757532004412271090990319875415661600781175554694536732539396867040849287014576333766461971840743612953992506968864794444821811826969104189336188171208714802707192593687744714273197136202532517282210332659314564411565250475701474909381678560847713259974941951914555929592855168120872784549302904022614622247196293549334364891406225941095571779742192115261932631755367511968525843155209859301865683130044721318495746501810500467709184579743682205402867957476645357910909179483505199078118943574951447970954501855531768506322917979601873865120686566632746258125695660775564254903222887199335531941580967080413041553620263632447848797047562351637025012490808924806380309864996886773092274539191096846836427161476113912461735250059876547718869533543775122376136832587629770898670570608226060201311393140189024610925061547290859020503378940661894183719655100428488676895135878289087057117229790141315171410222772736654948828641323677732120692379036877930774253934329206940194975298388158706361357929014834011951146787725998691501841998761032364206366866327774162015674806831749692887796274217051417291807440845280827055392007950611174348586648736884542021745299703385212635365222494514193904983008737062102815945365780518390779282839229551627717680337464044890629243860779259602435104952003157586688396771828651160570726257654571823781490058570236122960632297321268170711391800903771765239319283968543753741830480897336823768123371347606054266767479374283702210528442952502867307078017420649556862853937124613610850890819770480132788818457753059767788645789828436229375158383336902514614746190687121771415113265988306479751421530054343764006030183033114814797598419617630418121840423513445726272018996605430610443050520277530199917187472933997657835761415928366665850625463500935303613972679495098127701075851741298780711540455616972509607173083657740302676506801679857556437153424379692849233053867491298840083471385677061047989052030203496296343145526336427794938845538486826361361111692176051851087805987726381216984122625296398832037925511641596799048791827539456544429716388703054563573036226723596311636517950277460942743256184449705162599324113334676815250139583447692834018185460194839286889152388092034456852276567932251257738588842039270834920561756367187340270655072995397288748632056141812400019761123981343546951183518037074895326217515343370094069836218272808922727231136711104780215002585058841168858206965039096615363769166501155468088209631191025940986811763430237794983788912050990040832100444199588074933460148283804400033075170403501623680365844009105582955194185174846505386331620853882933849473631121854578031271780671696227643915632999478757099642340286034645085332489817163119941355307340348516331524802350271544738978629563555880306525130600483248386838829731583961146380621098101775977995880232463129095959864542574751674465308971354337901613483820537947726253387954842651256881977906930565580011283752708084927303822576478882024213822487075913322425748113295135198658535037649465853848244860949273418869438982724605886635905084310403726042407437194845664614264486160241184255569567086563128542333539685072294616021060269012924593554287240788111244574558388602474091543496006951744340992224775628405344183366144234862110242192392310723552381410935407174508663351279928589881979539856898424096418555033033879264464110972764053633750756583104440333348876662726464652329900676105768825446153109259207927871048692605307336842038207217716114886192421012146424914502652129141108542147906228201664781457569450448295683632257776598009990517094407340613752837127953042222854633902005390387446712125683279056786551779383948662358633517512864178646265734995797594301646443435319462921516147122339178144873674063704034953238617802782840822558536447658172820530082776974997347548364776891820815768527532776496216928032115400278708270584474368425478247394273430328956333952814528111154134795228652427114335235440717318522575526903627477189897200601799567795233330845430095460584879585740617756512172168056679451424736780146378824281416398745641492241795040659864571034834026985063594112271244312004126947098056107618037786275003981301446135160142290816187369722312924489932515692359972020279249878439423705484482115796154301498724542287268934312907423258145182430741527893950507707307319931378553350962685707116742695267640120066178289820174791249007733219748451230546948590113230702586525851729764443716499677152343470823500047794554003912348010794950407281690730822705695435410234834795178326382652778053211198857785318951208142820017643143214203509816339231520984417065740242333264387271857220585607360590203975632724948919085511629011796712056376923720813549270602761163807187961886270322104358793096702516631819349709520836245075167229622036251225171794117119840420028632324364093606664457798865561950186749957158522161779582403988489191234668059881540544704098209480294222263949569424246989819670457447742928271897123724454660458573972369380284655896302169947906852048895792520492822872678303663638139406204736649669975969847227683323569940427683578915935743025704304364826071908436923902901369555926801756846047586368974995609827637340001107744998115106420742323921315393247153472453002004924692196515470014892260029186940029312726331316509041726211228877060401122828398488278049868745840267652643554740885961590790022563530166652570015793926563889205376629332830213057358576146513420242584904237957791153688750151883883004680702846242869834911514661985989331375159071589451823864846641722753928229940106956861066362448208387089752157676184639403528721812453392274028439044334538327870236925958107638605436552742841606393485380974809213363289907523884219560976823285021440095972690867322852774915708035941579453057625271984283370110033496205834316406834839949759637583607080608802340055912814054644593268796733118802409025738814796761510942160294015161527682725534743609462211070341242160182101414838577952053311642025696515558689979307448781550662679347491258120769029338385121879076175868234465242294973538377658569794922723879771147134533068417789911294341183526060940032741267079141687588899079703679248128233026777713965023390746816045728915539895275816451021183600339408216349784195013988831425785986439843194536520799057217869046714502150195039603104628811694004023814490493542258617701900062752913923604236583403391697965718412285666549827927232926747734232717979723738565419315295601405464966077032387331721355479898359165288257966905219996714927666022931167739693785750533723479878738838644571332577450286950459961198071585590600697021270276791257660795362733896837707195784626367199756078885635454459773228192923954266182271401582731500622172011474205931888053779482573126267628381248147613392010697184933402108926003495837394913230647949486875347369459618803046895539395362074091583663270093052465037565054173753506016329793972965411209507947146826942436361229320837182254498178183220453432546779646682795082986320259428273818064804001732014638868416676626775786176435233655805595504866907865519333757484775663779441164906830957436897973676864471700929870432347169400030631317296940054370464704193632618520708210453935866101471880752365271625806179136060331998810795483134626719540328554689647851532429156328118166241815731744805937029061901227781263247956154572235965449433285265364990370744318189279887770727190344322759598971064522575755329990305406794319153058483703192041783983544993764967672611624259170139822187505917424305168614318456778475672564780372967541015340072543955902807490656238756654857809041556292005969172954857459348350475904243447847894811115084316060263141337488238579245022169403388720982409369739360007081593468154740020397799446966982222103057876180107580019478217469538684658309776218868307205161876019852263178014331600265989665406383509258322157162096766474204905699125916190311384606766105511757451618173316029035973405859458351343895474881758934065715788438047832429830510025285215918791571852134028245406754790741737853059786479545746431420564425547285647309587485832720798402087549277873375053564948557174296879258423151731490203886768869618617808851950005880545734105585175106626820620415766038273169557273512407622331375712054479323132940287143625840286689724781323606281785498388545605464601032328987647998684143466941182197841376951271713579149856380371742699454292969704657855296382231481415113239134028153084303337415352192750531178234521420687526287997392990544933236023121074099744676566732261596322732079742389304040681395015573898326741762994963842769062349705950224447633907551662892225827441329936555139775197799317666124416951765132581256394630704289711810539260376813098441463765741560971786263469077838026756918417252196764897170092477678772522360585620601044316341287700029705303503781694427646993378096458969925441842872260493542376354867587134452639733036772806537770240118852749017216370148875293431047616062644915329165048045945800263813549744244287556182500511965298541861762890890006817220292788268028510148948159704585983500710830190963311545337631713711696832578800571170964690226026275991120421135482524677171668705081333363811266461290695984911737996578484631271751910349345158391252435555384071269243430620014071447623287512342417940680848980354130605609241608845682214288081601357116362948022632317805549597336369596824428791379902838152046780302945870984478614712759712095722993885770340607144412777545926624797275439096794206123949160510466402793635625127033653336049839771617086988012363617864287214117386938913973174585113017311437841771773545354421002884872203110256913634577752849892933106840984154358737375224287732075382766749096103754394162508360981780676279983233545670774204686840217501988755262385686061203979822403996677656062982180479875321883512506833559804992697692550451976893754992919664093601242815970312664247597913993595430333111539423520021069028259563384287147573001228468486216654338613002718424628938602259309810832398916926020374282463775916286757148690063480767409621147149428952727771778504047383113341055040842459799718619662450372052997514756339812417238258419612675790739328585415291464424281761402302353611933277218003752492328788693395714643778940724740694419536789866038314356964070368894814951010295411079557041896201719085658886933280592618752293651853052573172179174748988027817405682651640984005604766580140792222397976916038483705536103006121419549398405364339052837208450405488528995896772043727910384950516966966309463791314185437057203961676920017206441210875238895603668619817249167798385927562146188062206162248930879554196090894187566387603008485423471172972346882640597314135408781223321979772429447390372424557244449404153061301484629136964989388800963268401342094679804610194657901567838178662435966331084897400973705151544962490978993567219739839306896009749553163197837019820594467691612832668358783746535961934415392496574346906140577801823983184592609734811110890151167760845994782576795410577521892819309220038358854702326720245902885602515111167122329754144405740181768564382638972804352688615720358270429137631127764885727637733876300918001274750214525334244280426401147004238874109429008482116246364700670565803413170813014279039294296428410381395491627469746708641478456428931594988821898095259549114797770192446662582800142470508838173619389707875079552763785526044177533401065598136383160376201385716662382168134845790080555607807112464828468538926115492745425827298326452227869948557116852158911284244461285329368967303107902010169153495291021417589517910456102758127025750401172108010287629864509665879574901866958908280830819192819275112906183320839152105542147526700027417817330903934542911452561159894396329581928538891907543406257185714924892510044575207629654515470715519607702009860180635024035628479391575686955249071597524220924013239777521419110523239869342048607014048906888996549705957745313819712004869655064187778480551676682015344270520449783716183327452016664624903090271558865985471701508558010114247712088796045435908553962525744483964784578426003677381806860337426461122258665561031551403179867510935152510016440532114867010218594576164391379766939348255099164659488773769085473722621183469022019534066917174252221437582821613783757785149877343034520105441574691691820834438600145001982732357717195209418928494432335277498812923933924394691830472820492985979025918590817189190691592618812406406147314879500525486880592350101356296216319472154144685095745854015371159236749537953311755171842838847332732374684988940052346575740465317562597064459289965856615690446429569687067980854221309652365056055301171905275366428512247591959507610376836059553946642476269854028852548564208048516224158724072442492550615073243347554646288272619085955991888680847911592944753386328220295612645053682181788362079763868423968068941415127670858776907414362289497102019608760758392653840008990035489207117924513825528950465462793924351255373483344916101072266055406222265320731617625185058528878779982440265924950537593236075018900940143472270547302381079999243447372535650474016761933370627874878242439620351160451046953452103492856738688741462538948996533365093193480277140774554628049203886648261096214551389128988645024172733848252269432487619876888051020878848776113041176193517755503857239108787798907697797064161738696116164325280834468775265771473025014207384513997669614593063199931669089094337178731342000485582725655785459310370583000720232837368758597379993722714483163094914866668288954493627431150696573897719789613785982108599563181619781814490860421918043139771407962241187848753809280639113196228543452949058026128106313370321303097834840696843778729070713291486211254363803004718455422407547200744991883933833747829645013289652661511102100987899093625177999127989194399823260589717873825951589180291827396552775311914484609166646914432711258648394797858912503953327048925746418069254746561435431415126228754019504936292479315429705672863833217025413309024705347955733073870673451060729050501894131084303413045780965794690913679196719127354345978491093157167890035334056370738399733409837970383891146588330507672236555751626639409939132486895393244555098884434995708032448061353988208051760063250451169822645878097773444495564859612430406478043102958790119448847982989384472103260728884881880675560716935854762185298247171327147674290149663831937386614125302046221333240183130404238181597976297212579422925732058753996946827499372544188319283205648535294164998218055947915463354455977814696186636778279909175410454664281476984973330800241164092899680179243116246858313599632269939092953372428220426341174584081558571515633291384585969768517779535059785643391533044463273908369110842459630181372121032928513809811935662164587500322355918895292135336308028354700910375830378372420992205181255944465343622938091496470891597782487084469545460950857742560081943414162945070290084639566524498021867347492734045963307771083773458937189773802730276173261738959127276172341783412777525367999026607923866131879854333331170677774624972580223548371494587747412339349823489636116745327721614267945897300877698618813702272534037619321832167748648286428061587898722483069711874139103702844807936524400506272007270625285445356023599581659286009020568073048616316922998292551365361465361516644518551202200030262926313381072087717905698366547806805574350460652066762333832944982254672917979670169734933870354061445010094318331443807488328405744187636007220331909221955394179229307479416759376776024566346717421530807487171532599509132930209546709214342882038682550558348347854491680133232888966051891491704905208552693324301978427106400595815210655670897891646475696747942661902996337402322506789854074064430397456911657826683301157657984646999230163288390123953357107066712366947201175642723371364924861723846410536857390286933780640927754401970601673302634872669953600903571498907136355864290877865424778913714074942875391978624891568037672905070564733065943185383926697275006679393926474543303654448325375935581710834349649870764594463634061659016234947498333386436254693191999909175204800190350712389403135927120559389431641216686857185330763875911038929924238804672829014971038935515445229938883692567248780925019332682352255454893553627836373957645491038524550140257418703604509432638194932785687228158688545991505182611159313869966127815510067439405770383887231961148019351027212255733408543013253928741660311237018005799820294654860078040657306129696875513221278240787932783278796930510902966967785197270172205731174647186091111140261438257816543222997791124887212724855356515961959046543246904695361688928788499078979489281267671026875442160832257181658052035810185457902896608932961583837628008058640489932971378936989235502096629311032323108183011547961941512965171973377538159198581684819204128581256249927526155914069078036497052833348839626399118410157030212291174319838508792262011867288060046328500729648526622612473793160261168376293020105318989987677417304061810036714858247335145910080084628675513363762583718755891676843626709864632925114989177646542553417484885341370778882183090102951919079646201223072444283081843268746752778296384826321656495762155336143923496926556761125200775397417505613656619910190117496625755303775055476432022475095777456787265695596462175735025931352910932578435039613602404541262562225675903266270967455564161515605732867532095018319558169355454671803337908061582159276717651308970297743664009723881437955208351684475486676716340602334574438815656982244832534118991117316444417020618467024252283548065533440967077094837630233671027927283963201845593913001656874056424500346876128403115523167628575475653385976115074793269031914911879728825182453773747624698463580599109509604544163401102056733677544008896169653558367009834063700119921574163314564493246559579787350187616616669305420537580299357729782299077439004490437484893098343017063768996078120292225847829504128321293049138759044829870048254854000049104350103020659286664153635912605644641996570593012597321610933039672752209297688764689368009926529808290676352120835556214711066305670427310987217105806820970073552206359113977392813770512486811029530053875053883630070879697766772701887019730383259383978343365185668245720508274048373305069240523896694265067257210913158411703891491766313999169219240240157333054488380711249834173995753661426071157252368303124722681430134441815304316300265977807065959271134752564260868516885765473083602884842717949076425322561503814824846747984952718542665909650154179736296495350127076913301300467663553991266603172635887272994937870995423413419908404551357027577685690574450782807164195170344022814221851731868842056430040524044510564648659760074763928775107091223464908289977492620307220850103318777420818508646405084544950233937239010704871011479655345123913564150888705010818988872045161257438765770555285255291628404339799045231277081361997290065777643914414742858908296081084211852370414798866598546503193422382748217463678127051205043590549879103741708136760790475367829139162459036883237563774419042964148316512354714005534075600185298447262637889751920778143661706963892524304182646403590016046209190510189782936536664607254163742850747976198157186032822046339279182027146521985878865666892235280302757471181483047942549462422470685191261964235785125151805844384517991589073595403389594526650423476164668228261143440723645389072585805350922119318927290235347308580265811437206513668651605313734055259194867144858550779565000644436629931654048058801498102882362143872741113389446192017148528996601856965919214093147073270238408546403012452355123315281197755573829743412360177106511547902504895030187556211352682287072712505459924744040170023140998186844541774579594686434412386933253148688843823508672048657888751019764171612691826624793643537611068415324167651698325272892654732913614700332083677853844170789733641758364439237607786339979659457032062078228695409753094092483019834461904018284509648635355409765896054817769660343411801139534935364560543372013062398426937665470603737091722612929229168842094027194092161942759833504018099937902366104511883245268309933905890165699823235405321029352137687053186079094055606663162331671381895808086775511721112701184632419935558402471879041814198222614842778927394189412812041547265794484217527328594218470372222273286458044786590662850699839558735804749016560858363569551357846794238761511234233276743319839610281483697515744690481437355724610275221813401696194953879182747935419437051713834018523451364536492363703384777249069273847515522468158470069139758518420685948851623132022933780872571115948167668355730371442123579393701562626519375988489765000589811518589537361762420137255978538328044841115734749707453996608077768592472416148301806290783971961205255468439275295248544473001742766268044317946753214212041875725535913046421586749567718322811961022944020728561869130858863047144483269378022008732767328064411681447974002455204676636460651223127472340713301328489489366239979123131946414739337654944220996368658360514779043313562322227419164596970754644095203750705602277817951096070085430424465800254156269875978902372672904007586780611986583057742021952984720138626381571647192329285188059236099310204646488681927696408225913126429650787817022963194632211014362914013258445426295100929483755447293448022326009441745561377464678599619272593847970013448569543044917643551248759657984833250888322225150841522705696221562594086494640208275083499200469905412118108292717602931155498236355756884693554846537725807791549613671824208464258782987099842996583587599401341499734423807329715079450140945001732874922302780837306382650622779131112908731294639752747650711333653705214183893513395498084573289311496581998226708610515351163378432177380527378107058649454100336882601875690872552236323974292022929959245317950793197281549363567781853069083818333956448824612077696052609512463876933277403196322532466402164311376876736777310810544067559222191834113843936425782089526061446480400441075899951065685723578173881852474918854719135478800127468130428707968744815528022588386087657011967610918597561655433155189864388847696758794354278390997767901880187945830783347716816627915057254334347439499364500984111725128696698140355846431429569158643588711922166972649112944311453157527148974946272445061342149750812693595646904340301830084926352949221203317553955095253130406242506425835619737372290216957632963047557795900709074802722091858434625068488814371703755850299436327682274399848880648939320182592496178326159944543636029808735330687896808081997109284537827645714174621014614555893903829392972121565532541796062615514194267054756761098568229128013399841168481528606506662698846708359075038864517560196975155369375899333570726194681027418466847101715582348375354657552971913922489187050721698157271801033636742055182390033839970539444571952905927520539803273769438169705264982490247602869205091368943712219226753724670768256740722242654415172526975635966847606822478321572480797475296974156490879267761882719545780283865935753680762783266906129749657111577438839942889139654002842745373914563042106689837525935038931841673608640669523169069002391768831607338951961227342394671808411671650560772327933586634664925461390133134106289020150684154396802430170803572274669670117565390011462364163660228131621264008773802716446514841366251151475250321396094467358386426970201370179920876755942997180229645088224350562817112910504401766869466841811556947677215571889818387144865328248717653559135115526969918328737874916156915632044125523787522719952154275630335864257397249099223890219377443741344576737026085068191289292037975588844484781522237645121564227221625303837421855942448654107195082774322034076042129568335554448223985374631490241011249862246214627500145884891408856182516690143630329708640137564007767712162260260906945095600952133156827061644841408972198216849435508064188563266417129310821236930941413184395851838189665191286596978683216795324447742078259977160833019447181161180930758789644089306250690527109098191078889948379086466753681747035624490724344391475622417571482719327466756935754943161455399913177219474720535051454660348905789798367346724765281745062549088726352561535625758875222154842543258508818612267817983557988912274008348091982959168349594589173615330709758716528744861253416218676965121220682635868536851986281613086182448406807344241772652401871674852391053197867877612268888481618491133304194504055792097493924009765275443070841808204594747127839819747717338152857116444817969095905516831514121549269251091068651699860280512129373220313496818342078064397483742105019301251507152280013351566492346198443707536823924906430333981732996937172962159694756404854765652108814633307945128923463038662601018276919399731786501075583255025985838164423497393188923175933634199167077113266281818106127644682982216855559038610429128507938479624528290369135755982476165390303650508684706835745685718299442800839500807322918402992854159500078377490630002669816833185180557155858850417872810937632357643979873910556443915977148143995494353272944280233734119560451781667557414634402104589471147382907002136987455264089990583950698687968302967504893353186452548889049621649216277023840176709154843928955754068892378208690414920568428858945090077549707915743516114591109686770588752717007151053165038329632856414258675945724843479500974158093248976197023468615376818398294552419129061341508886938780341075792080884614117811826669178096640580838434393761182713989276681960593582987925566853545970813449336951899176461438082224430609497044947558485980101876089183151081576280385005138845240112557576869464517663219941113561616405129006830311806398246571415406006338998855823004320587959887574920244336603096994910337351292304718989740546261810654660493509212538310963525784989459789636369083173086200896846776755961458675076475330345651973222785726677811108220576331645075366942476652525268711002599428507840366998902367989386416575012945637804753118620529001088938255120194335286842513687955559857309200996407830160534912411354026440711900724758810781118057083154116429369702078710728389849841001051595986046945168600832951467103361437651455371627501685561372597035800496136738860045007814037328228810869619932790522183759916115697494961351889320622487581700288520146323174700035808223028284184249119038817841660444229451787534695458115514798408802005095853391877737545743616659016647085580036567098718016081008782805944637325176969822771602883053721714161625844363480157226542240512579093097985115398773841206701308617158688955835398496982392645194908229337163810682121011760384584916379361550808246423932166691545271939027763097585490537916886797905186336707750338727003280306017185677223101647505501232311337821456600645575550096561265312076634806029723211944841329441350358941520943403741262726091728284943801033843660322960757355744051533764482366959449493071933596538216484930461491975393494480925192947192686119578657914777651513829305096938025016537686739882279797507144428810135222953537409361350955529593255042828043286311979515250817911709914307578506325885568902761240008804653227696043724625854304631641395230216397475832772922498437411449671136723217003000165876348101494847873785913938565060085705161438219206918521652295813072563490231965852905253123291984828372234064732564584179629076841954551462864557911136931936145534357281776155266069629256884880069771881002930236770939225430446628936881318139134792856947265513414619586596433573971943289653962342853046509955005454242113871573466620230927170317664081099137443038973654493624419995365334700222068030171047327298420007665461410228278419303957964975766438226795705614352495533530789399507187922299114405546869707425214554699494645896888462601258762003151803575694578665268389942924420240548384304437726073934484624310318259552081694926724208892227862243019052101338412495218510443343382732122431100621959670761047964858472992681469408104515984695487093365423649498344653402353630667134949521785823303467509656183146167752870535775766005662097287567534119362643737987945444946398675958145542927868408490837238646866514273387243202851576083309969903573334967614263157031024982550127342840080036912200302272614423691215652784410098810549624027369926750552798803356479207452607113542496512281435528463223517450863039340893967518115741587467621800213905925705453010138146097024946401633971344120591607238471188637911903364808442943855104570394617802478663095504206692116837648915743504907941094165429012578534253469842049809621931867381362269432517077429729902727398071848191916519523513111781075682885835952156936008465813906626920691433673605057775602272286979842387977673930012726538181491242716924009223162109787371079743512247399077929234771831871073343905197081133605258352609837703343453060420989091016379263034693913970029787430193140861630090885327702332136615875157461435680281571884622383783244540884904801329435030509995184124928309843994432357686028521752279189182409315336225695903150566219552434515324483856416114524681320867860407960890528259297421537644449506480299500635638488510434879559882916551717313258258994989208286187602107323942575547256112438155941788137304091499831417481169777428629925280460595050147617000438416487637108341698899611873736454414705864080262664439284366394776693189818939678233282465069657881182017083174915487904693877413836073536416666974270081802326211079277888896105209495724968021248282122000705530660294815203614536018221591698618453627168061631652914752788502982066687332135448158582358107822370527186207172573677063040982321825036442177570892066247793522739357796930401462408230048412882110295578904823462753412320153746924301671099546197752913602536627510282516785458112171502167854018642241915742035505226047186107447040617822011879262059676189315963921882413971505176729154964493830225598253111991551798914439480864327733424981346502886738149496629636240943018602340213108163895248160939259401483317891324472568063621550705810899950504542392098393806598421490507887676426938727234416147611514317850333109328706682503084454246625082717384132798440586712158332208451005197897810159633259173091598612873991662511556045724654744403912623126649895322873631964590683515652200971788932465173530247206737115935985531304919212951089420546048006561113679521840071440305081723618428779306721616179609416948662708130556262006786570089710079007047108374548848555837366443220004354970710300033208325540730216177554753778666828745640080567040415708664644204582997095105015225785112479560714969952729892838264476539524007366972900633383203708579819410840867886827301793046427438418183118877722001440013390408097814097810150827595628725823391722198432214147309986389573850138924603099326157256336527137448743439230536047083801398472065680952640864974832003888851731249965350148268453546249780200011100751556686829137059847831376693336398115952162361519982202944621082210209218263582252584149953992928095899935508505448415961055767826325867357504111563939435513137151968419336458023566881278385181842859197293435719599571129776569818592672692778994033206429757784007844488218899090979109050832345443638750850959552117517572866624667429356671042722856653697054607558799244847826440134622074883533621465934716422208299054694905793423870066339519334700138699227097254672921323943929023820053239017086116079514856508544155331524092020900268008369071503947707132257507811196128295183861337397090366483255338802865101862241418105551215298722964291035728069396978146239008728661219362094592599042184546907971194527162751087695575908787424815755924362507452379150343997717983041106102821036445772004290067983574968455484223968068871437120996307888578079730907526348248879286121717746482638323076594129082158333393780163645741890515338598376899680001217682660659425551358364217376967411983299925667187973859399798032223585769348935637104961010007875899633540713399526853383403181645698691186237515227755242246308532232192893492427753374612177715050558388011209308318375937366005731841891348038815734355699223475206014184507474150216002390462212996408125629021562416520373625984388811944513307124696792301733378497372192103258253471489099774785671275113257171091128296253184037974751783119053899340668795638342724746111187499710245784885048120183284227454517726660882821322891242236602895501554950645163914053252020505908237151194560776875645562183630317913525798420484428278573721024557490916738851880784367850549042882404548381298395614854470900814056733950694098034634544824600851437070352037407526222450605853258281345696457156485444079045617138986243651043645932578030510367471714213764472020647489427831527803258730679737413972221800032053975303166609196852469310480338476654017953516036197968786444599318681846099411735127966314663912984312859781701783568712264735468449191011934660780272713465898578240578687577113227513000236655797153663975295234416149335563046063532690419168410139210696388950153323265624255144608599631934438394670281496521269612112605678885256545618218442654709172932181220688591608666728528294445254251539195343735116323131549139489927995427577862415576949593284272835661004029879213941156103355381757693289912405629631783104755663615126106708931478467119020045432251676063969674338145465632049645636101012315397440181692467074822968404426013128885978527401358162689756973395375179317848697250698711735341662953168647453561597474322211758985015880911094462979099604268509593256269351606505642056250949779846387361606007705236953962182454091377393515432246010935699611336656737857648446004383899767633076001994985826604242227267120831527284012443821060709124531675578751826192023867614895188947394402810565320050866939358988926442447871682517578877682150664653460772836860132001466630941388341345204170961972140853727391369083878421190689956653978637629075922821955963270696861026640771137515686972148859768731462574460953791764562923808191042978778198217063348209368509726706198633691083148877310029337889186132649314474981169191537161888150702703998246827181760560363898578177145661375609925576567223730939656778722644385742579795306600827496880547454058981002342776169509660241638337421302017777937654440576521859824305496271991839348382114364793685305421285034969566618956294696700687199917312079208464191605061443575989214556356283317172168182374392468691368685188602917928887827098089978513253446362251326949363557627570581962414782465356298937332659270913328678932689503968569381726684715377771687766238601487391044545081149751325020813158834392272441795494481146846045594250422197139756034453854668303261792800136913748134741899378360788960383353991339719436480910839267773645265298483382147074565802385218620479844768142735915088393045746163579868649340025481073397978616596814856332234226168879659551217966579834271665931627442568019744606259474110163905593795484934403511029303889229584951463477681814719564675589417560554079930411869109439864075723426783984661126090288973526322259442520840140126368102766631285390025293734032796504865249752242799617495456186428063701539037309108188347772117849401604855636810699471527959577726335457038855811406482299388580117192812031343084370235260566340014158217616161694655901594698915386473255275616338865989014223221376657225688594958383657624615022833682643503385478708372089687596514082540196657747452582991199084896120634523514187796242457440864999197232977587381209449383917705577187498513495019717248609407681682210406551983229037046621760482806679542103034000654534314879077716075058447233642630460246882682108577468860404071529054377196766191620390177081790605996778997025808241652647122192969903428528783006274925431629583824153487569280845869153076661570678339721241106049743781573235889520438710621776641326759160486274755289637996831510518276139100359097256622819170628911751160507714175025771721902128452143833729035312800255635513107373544592616657626050037190798456395696258325196390683093196559438691382767694959253780206210537860284948219507056888543706344573749549306447117371322615226858079930352410375664540714801555605760923694521209041500638062155412150554630248463468436507781995017107221894919286765709349833641941806598217413641923521301158318050372163111973490473679125359424027364189216075986015507747416844209875566232673848735859990983187989703832970842415488655263076360991468939328221150916257069112994620624234056435105392320991388037306507063506734754539610290065946174577375838367576018077754903749249341314180401290532651505630563317732137443707442788362760491655332568372722131569395227901050769244450769662332410809914795521878814231988321101661408144559641743218338626963269085181937487514035589143407837728301870248870213606025717108029864701746144561875923804445112919687454655679335608915275488394810880821766804884466805655590495564954766348382863775612457596484355041455483510110372423107870270514618023535084436980083441365916701957594537629753772124090488324333777279056691844522589783761131603723310785554979926146238941359930188894450307463828131784941479151953259991327115001118232603892936824745443669689523214515145227310111378683162016230505008856029308482144633619443237407183589702539414353680994418513642193424415489474561988566502197344672994187814332628160544648333206647004130023460607608458655765247401026328504156450510781052563885157795381405897696769961331437923390483615838493683487136006419644840604485762845831282546300643055854871814746532001652698799116732598282310517694217950331786034340487261864680257307892769137796369353739334595795051458818579045177004921483029167958978134413669703115093660137286129011296288461516771042742682518250250823556180269860034430013527974252689168411909065744795809454526197654404025956454799053889984232384628483044122375465341097986795355621983973602194276757538932636885499432860510090147003903635526987259257418040004072062010942432194693650731573123558316977483147920711743605156780175020340641494413264874117484421492497543393097360968826855510089946517855672223713185301383570370760970968182092608933847557862707299150147189853977449330952123168330659746229138320371094069225858984274165184177223193789048504696164847208295443198378909615168758910827292776830884310591413442940350416901281077137559353001140552895738988068924986912546304296842910346562672832359759147598968845792988508885005747857859088831334798724917173746823464602115158701467530167149825310899369161260252594941109367818273688010672354329559915748952056647305466752957710417378617091475849135858948725409610190398315007833254397101869094136333227683650097442575874807074045710694803452545041355614638049937098319355238098600896775319134814308604153646758418481184828434611884313417275841955133358262670116729987703538648720208035582713657914232603521418024269957318604652584352774481744737320428931140883307703860941281297481992700054057528449845168225729877260296383295656045389319860900610913047705499707198365094279219235476568105199104000985279584816544557934077912423711908529225760735639694638983855308744542132017689033843056399577714126916234544296258922514027148461081809868284413363777283927473144404231047455091504705094260385284271529017980534023613367136716841214727183013649165961623303590656248829296531689880871437630426932220050999614672724711177288242952869254156025648124230513712337267082416277488543230240663598542014098343306657676287723638366262455364160080503021204050599122680448497872026339486383627262167758477937794256320460592868687707976413919810754114620588668226478428701403677382233848524952080140437147112190372855112034252704332511355168174465667302947450800118711640090621128283195803577987449037155333458710340012240039473103315729671386838373870476977304272930556716955564128172350333763267353625310968479311900570677506279567997818145259926649998160986797034061331830673161608071654887342301191115998330040309620020868750628367135798569094324713570754839735301333856648406872577077987658198616974440021126926792434740604341139407018863863239691178224149907586494051014826597953008666468806284064768687280519572343657118844822030590879249820414708305828433457916604532737316824208002582451836406304582231899684032857528237189029165662022587079324139203480135607155943601264836980017507973577289596090943360923960989708156382572723503969653548119362008995097843096738090830547832659786899364504169913354136147153218459316529353570830056946020440393343185511368040289250543608935559417771032902701399481938633164996567252515288577990435078283065375542959826141360679210054300125279482793030992851383019245262593431279340350503835492088563253131299444675389575156168380733411863448251835848669901521858483777244000642008040192094712454553079300466432655334811553626307563642648656328910024279247274107575787574061132960262360768916426721496319883288655884497542059065270113396999373796876913378951135457487601160823165749912751977995534890819091602270509196508845681856745667934069197735700587493517252964009387222746950564284925283197069413733382254369430223312316727588619662420352179970698422473398259057773168127610260881201754045125002042049863654922748429106171142238181474831406070645300954366989207272942841490448728789437830767525548952225010032892456241965060229040652790686428760795196645413507757788040322499248066579541737296381032686595591218341463542601529139166103922571277507432175922649533304425078620908388231006153909517888309726716005497471799033574917502230561080689036433211204439544247173790592180964155802278909313710703076208200912851068823257618918869886758704128427834975008254413903284673449392102565073654205051205555090473867831566147483229103991060346207156529690924220483198179924675375807789092532361715323617939515593390185913686588538193649665263164562490299106863577937602427177578986372934382197999797365708767720226331508682291425346382690442246467335780643834099807803141696615575107887999678581728977018746474440033942704616395611285556090406338317712420276266750881245093568780968181714331148653347087973124227597410906680482918682262303152172989176895229518401220848570714665301039506757239160522663209979895804757555488431160317613107916397877789260965170807069362704896099548836983471177782320623109109264954659334039506858289846115426025047981366585619093700159678364935440009892259104674898125531317071017607080474805071836261630201723873035840691759597468607380289998709948009736664124741315676825858844312267637634766688343192069851366612553155250033128408625878608810238135886959460597825194344289752638477374157365506261304212919446951067607903369615809125979863244991266648678312294414612420287726428870472963750060715570845827371006632235499513707762895107174505764156843512056548097427393246859308388843851920607500723376472492493601008668253882548831039200530115553965585182564595078175846919083749818888663249712224994916253532280531056287000893937518961428872375904088172932835961534114128555855862538972616865932615293860155363838103645396564822771354327233768234007759042080283237914133686374342722567818063991831475351884267884412028292359004246148011745857853459042554555601851274270322060436768506279538264982946139355233843102781206183533579520264780869519125497650652589326804201607928218590244021609721356698690506228491805192345931130291175637687357644172880794052468718122644924249222369409168587298524962359022787183429627710227137193504217339703868709493114194842454841475116762431620259258540753597012923090366176006576393149570112275176139218855396688967361608656256276329600974650356281571863936574190680313940454690681988572787824362792560393108314861590993690866724440358285951306115566266294989699939122842956741791476982345006458154119310999232672139654340155613527917181665113137959867652684407569954326954453873181494352453491555224265076689262304300952606273964952641286919189934039496212166382520909576201349486022166222457354836825157938147347833980366449956794176354065894547028131620678304081360295842049912572377524869969410532925161685028843952891489921518717341747648060090372560377453389999125455950682986727007544398080795522499844463395175477904007204147829527218749875393306549535676858872341532146505487819126709968910355928236236250113080511693279837119779808083887919799541642855209379977451687328433136455548823376431816614015477115477978450030914795098579497687636051126290204594585829108967648279716019669149770787535896398508762938353528393071186387931718251543416758049406742752957371475096312680925809597854755287014077726948924306480092557170146122801311426000960643987537080961661103402574696201105985897428255414954373666140974837789224435086669177399568848345951727747226799490352585744686365995447354920817289292052547349110954445700530413008612584368722203643137984287845844826680379709225549756798058453854577174936212592961542512169971589327223208490773467554829097061672840115766107460435402896181877295013895835742865925891172531293650942627417139953142809308821279015228507730685664824646322368105733646372660300131928274409426074906691029113715365552984899778907061447655359625586465739190635866912976876619422135272425767223680983394196452314921064962932331861869949952019315201987670715702027714123457279794328544689515964768770992218728762002569205376217990405647579663534797451971585879124985384399772447808214929852782501847382329161194480896780086060619227337628566626980552030019719630391258493698284117704997246606929771651944985848819419672583188275029323423314189708312809912199342634728173651826639131711799120609876313970089114015715919353857689519690336881971897192326746580108812801022091141875814027019400885193256129790932201758393025405729741881960192360213661944762242718770994364102914614806400637293574330860259847294726875624434534920496625636344066971181301264724854933840958217282661671025106366472234100825747211078043996559658687758380166430713865609478028423175133834462785722146676252678455444766715354653819386093390722238708258512540120656051219423777211840591657391294290187839577677343876066356913467636676923083522606857330170446918765436193076350509668003237310704776387417680338392103270212829093096143085828690095954109337912578089544067155244558206964671912325804063954858433374442497553988007082068696145205865722542788499550820309862684217973089095172794173718308012208880738500606275241205524388927249314868685959776263253871353819707887434282684350789203836540381848532333163741853448601923642213151452603763365920174367104462810518172660241113133104917753813751460942000079047477012240931977602931704357465550318790596911246967525115316911589773650970567464188773204263853289650878579570126761594533053716751575638714482981588760629382337794380139206746257324601006781858831965323550024301402999234080342163528599791880563809063690530859563874582637983941790057706512536234193119821406041211023076387565453410876177131319078467091784993683972898222332890474518121772944568235724602139043045344979086535699936638794533648848303430081838163075525348128458600287150040767891040837604438785149731282786965472624429392065930056293563746141461094065336887798365987403623859102932679812122257548115793311741982642267508444064948635289205961649008922624185303290091040251585490133656978916795081670460928701753892833955389003521922880809876166852367379340727270252054338403618282760903434876777288531605061927209515923423820226041189717465369844905093915741000877883787077919840551098842445197070135422730880691374220627575285720626422624360404232022275921237300276571735953041644324300096867080636099027588696500979039595985388706967446956383702802992231558247696117733530825679005731059533447779191059323269097037644751268791605046236195568497399845915276728304003246818952539880154950607757806208296712207978356935558988673504757088875044456057164641785235495269212253948696653433357881054264388325153164775353325329703542432790840547484924797802355665770446298855855304925676371929716440150556139763031739355135247391521889046340574706307425394342902611134551646318828678169739876072604309100065932561569496295610880881042029756962001681126080156451845551849942306924563959560412356713619918657874766254297192944412075587769063837458818253760428557482041344714548544728487799057201970210896677693420427084335267848303081548563009461648688233682404574884569656919692274376649543348485341657939579253865408113626795455765615003902057722087460760426112027076343606494989019028779152144625432798008487459556333798056955264617181197459682513741272496154727134839786912469280610743491141466161549050774455619186607341250063446669310918667486655020766728290000611187371762698677565944275835935936470704029398831763847320117721484410650799605909096015442724524991505225877673344770254348110868846828971404436183598798872727815462064593792340852856608846471003765856513438727691037297607764334012966443912561537376571717650361160114335651411409025736137133550231334876163554952524843680171330219000590694076468720886019690516104618267168249363652702444249411966368241895656482132460259623707858438260255893370971846495361770688063800190732894807279029666048785296326284244003273614858806569076771534989130269387906094452211261130145069712094882848159550421738318836320977271861070548732736093943408025836740108987457446497794804709333048309002938437061497452787978299907305943404227641122148753925799846743099299805934120182815799567935579653835445929535176541429192181134103939936007093297330908872659755534756779378785204879168777113422850682703928851626327103371763412744039155177822700930486317131051167281849423294095969823149981181470619762062742828899136160668637947412125504275787975103368697166124776066261754145767421216448602188137044388771814972374215424208989312944896475021912038185810347509323807224993963282597912681706914997813048726487329681448810632642352388304475524256803493959918241453511621449235944564978964601267463934977013202455126761347094624174893373278380710943540902293715872967330629546240578468333309548356132882722856644227946796858112646591514194960488821238150906409417535830667434445873058040700436099214400953975542508569251461339844892126138015947458711821618046288550244317342802351234464651086618793324257422606152619038392025715821807562679531362761551718392100945934539764295742902850955702249511363528983759642969017410506795449078456273568703275140214131460476044456508486191900883932734801202865669693586140520401344935980077181698889848011840545312552879541322755622783125180143303781021281717266989050068598933787864640040510455595812304275596965581349622074844133516936986015298459411327288829143105765583451953265939581419836540991975175140033717556881217794160244385669836291419158021084858550209308542329161190855433054865546400205412075134060562913338155816578596659169036154195830900986934335457120511433808728494977594456439912409732488576512415512486589828308986597355467359421101242185045350576419555252147035631780169924842882446204886038086411707956254266435991525912104143548006080825962259196875683681997355538816637292434095238953015233248474328872210461439749371597551184337481330012458637995504941528798246034934231285238667469012333326141802436787371922185343150896463925000388137503871306189366156301422069931425610419437727165497219353621955672894838366246659119553757360621081291563105372946299502143616852292241010674462357437249877725963414882479800458980591553981065765693931473006449229720524882564524659164066912363402777792477802391366340049103261860014727864930687439105470485259685657890801334239714503846755160846901067750951182661443197890484148769968287480888793695490701821179034218390875652214513390133101522493830102120105587071753364430561488099751013380757848779221196379003900948509253172292510805733523970766738882537642032937109098609252548943446136280448896258959104466670301865911476557131416584613654413665782170594610507685408913815969486062609275207477597467241095929259370502536126863998929333266803259423834488043464205693889230678521778104480312050006940914803866494042261899669877195296080258959470074627343682658260245302422764325760910984639976098001688759447895070838914335693964161747201153127877493551433880461746251715356138385883568855437438366877340475822962925189319559729131247389099739547269230994382838030723203180504096654498466523619928681881811423530803562101324082301721000197919098080696038526090297680172471998766709445077841873321277799689025484700856521879766808345346660196384510920128834608574683470757462144465059903790383213120033988636046895298724234433558407689660330769236491487269912967726707931403150821415969177016669177405238354451619807784095236909362612083099445436891635898805186672035701782633766030937537828150605248336337767032941061345237337633900909713643637697760469548251507218807004520843959343650715512982632989392061947092300226763292279051834680818256714695363654871434943246044088810497036054978113587600176269203102507217733364539410689637528680766378756808277689366180147127656912607137393545798967301744611018513197953693790095049336646050212259075498014530468978488317107599532338194723764404065461448265115512725441534961539248294131171527933246205813874510142315633805767308448152836998319611409234338725708654563257044582006731266687151408545120885693476394494594077501768111706192459179630474646218953680948735434954835805187349261885583163898478145493782693351571045129015103763284994729763557151220377745113588097554657051857059359418180406636468128323188521094970919701035670954892828342175604729662698011530284373972738700027461874508907363938130089050909194392616749221782031082198736238279206894424150001251681010378828127306242922558966890231920359302758788066278509222470061560106098991076649109890172112405360845326290980237669710950460609792512871581923155053987526763097999422478558965848026381438459093843923598687670769903537226375448585979984167419947786739520782469700127631076431471641647353355189781828615188970040280052179917038261039430806479916678840988673733857678990524708540030414952674773151493670047134715915903497981613859405241821027587002740801796086840877608422432044413020008260179716831662397852942309290889192505899853075506261250856951607952067872504889379139718482961422641255600117940326626120207007291624899715789563386787525880645475198015689110267373518520131280799732002699853584753622475490091432691724277320286059328705713964845853072079879796573557027598588874446793965465058715844035940092121892750185749859516893158389834140353260596994259390073871829522787039059882195638324964016076361086068279085206203630448536654996625463329973092192072267548676065537020243233841890698649322912656926078341138861400822957932348833504038546527027179402856470824820133899406806376581950266777757018340948789843854702035327132280938886361722993678572771204499299914894744049890960430243096106334637308042168490014991674307749749626179143848159017254155662290632319655741864156996716492783368807178186540865419346330402820950560929974199080733472242664744690738591691176798640807891393322265277956660273754445688780162290316392046369364551952405920116731552978295192921602810570537045798155597431160981112798401855652582584014738114138385896386468057934887923069905331732438519840660068306253793405703404328013008183228477912731114055968339274229449843869361518522980780325524065985661909208723516257434848197699368143518919842621708448957284014222554830106007336334098310481261879297686755586684753685844407499375076367789656920073737465077236053696901661483690824297725244604107358925310638879919253122746221683811283782297441647437776231185160050877129547458646806394405177787627076817416062216251422709213821582178298239228807884288264973470993690859034296733982312384736031024715780675199458584984384015556129505245271301828372366543758225111558951030746059830747228496030036899248509987624974061485132250360474075171861954935715376799129473733184621117590336467832665300183835750256616843635851803724692666152855670400876541209915915145388964362095184551618806217138006261128192453517208619256185267485001048180618384079975654345112682302187888543993165969036826874491209043914562957529732486701585290303020431783431823864311165345809027242023215220863751226125130662726177188089653996409270159834492291854212842923921980540169154149115554531698565497299478183795150885258970718022569541684731413742434230838416256253716541577160086771893844409201002765378180198242236151088933431078423695215915893931101219583132187627293939355170771653326491536234583169182546154674398129369129869718457021929824138295299122730951917979630997148726629216170940289196612339511931356692591762069140701956271683981715246773461323803339896031081270098296631885656106983404648837558386464738870845633789340779721510951213799799916114058579271420448983301667256950134015296253634927833495137460015584712419527552049020821727257630495467612553511642443839760196096373553927379288752609211936375114888679519995350985366628454444170698884243154016289288817651064786858247456396403144567291546565055584476330020933761303242760258624970032667933884176455290151909774212580811455865863785404882370393250888998792447169158689820640848670465549726352840073289486139841188350601063057113778324863850814590691541871133936390118457195781920849593130113574121532124573379720877668469978873046921522315946848198483040923092605148971027097415302347852488473747224229282485047330997909729724011891666941847586911343928326913126934880637703975597426372261138714903353755491737706463522700977747644557453093861469904627745357765083362427907032463374913677298130063768037276317101313170332206308247676259595381282875389756205606566905810832973989463159767880505013144504111322668859296618855678166183095239605877423122360847034606613900545122901862062869840969990160270929984961533805319356482536808023073059278165864654598470932622502391449740386240348519121014631202983696148239628691951992368942453845317164239619351809479982255416039489525310606264268985121057754031689158272967056563851814334220554996361437749752035170456336557849051481960208099478780920200474479986983006623487205480222328979511379305184040513660133726261541863752211427797090336650242235669140021617204591660196199136735689544508535056190770536247410247569021651434963663603716098141017906085426614251567712906352146919226728062625369018701570844797747464840800857422735468698481280665056075129530475743432603699456031594053057886909162801078257897829331963745531129851156686482205665362077600483809052708775339383725461503955428587786012174704873345211950306540149808705234594924327324827510830636819891294197078347506561400369983186952170577629306788649758060425352035482686815257741357239070780525115769178820408979039953213377749913830790039068330898134807024508401850233224179838017344276534509427068641076019192341854458787974011992606527891759703613380047343639358335898166455657532708632320364010209956890304326157713894066217374010435597806429764151892095803914557034501268652589314246635686172495190507964859931376840323825338953744473157511414301392896517180627256120028447263822277897963589477711620933472314958547672892974428590440114260318391695542895294846783133889662208387667306598371132296336352084737185673765701112559556207420130734178576642357404482688102418348334153755526166851529750493095104159927419477688485903140976812754301225684884264733368744233063177323894837835062133271007882252593700315807430035582856728131385572543800715660338975312213907066474047401157269265236230847180986400679938678743945079909744728158144981287221043936315503897072035196135001418136978691832714269643727110489827046961525844936730754177810927221150117791872787161570837319733646443203682615499147687617520673455501877527386228200438892063223117253593835080648137662916838179878967900851534325875834941593367254968052582371429573364739148837793217678513057985448842329058839149694291032171925021219675006841166705262338195599164124118396338315456348836247413272528427670497127763531713897797814832419021698899869882735865330518312055831376441202176936450337774009632324968999114520111145142962132160389856122894878262517704821019729800216971657770519028604230178123593635696779087403542564987762305029527069733287679642542291431711720998805268237419668071998170905143660518021786354156472877606972037733200605269892986767121066340556755514464914092786302447212957264177732254629973281439288989933568123701668651978392428078485087419738930971231019408420937670412816841899496067564932348798059601007412650549237786140215538466601540166449540043730134611752994919019888300814955199092611083601975175260187991773768703418925072293922791130797856106038692311028021528137802279639582712791984050103483004482425659056461370168840637081261467375636431027626180131970121814299440013101050190945002325944136138921458494204657639625083531127040813131935380107518522148188384954797044779301035270956438314433813731855108036802065086540906658865174133847718875219251737891458171680823499480125811759056840175363947630873239503725821446337643472066822158750032219081817988869875377650700462946245430080489003536716028208936929275824218665435254921315829204459005004406362669266367612021333579093230006943314440788425204416563594343246255227886777507540477493458001270115398156040603984124840144904820994814071578814497664759650973551261987708327754685526376454953449916860629578458247085170968575032174464264122470460338387337621111004220175593131593278962448001974846892644015776304768990436417652050667434307896820611452246182568282482025446317341003317620224254435350752502448428579978999217557635483014153830261282213078237296959986230624829855549024054622304017463423175752237736147362372217280922893952256850770672072336763969230699754655341651486470794669724078334956952126669273555009352925671070247443402077010551749067265184442441135000442026529889565898749280277783885494390095363280380843170561174661776888758591568071429890850550186471253881494030827670857241821214756441925326245871407074121182017385888800635095427900646502102950755158136866548570830958591193002629882530317642678839876314245193355753293210265811241230558599906061851309637528239670735113465348001718584141421863079011811018755938576339524431244315015207579771790369957189808129298999693325046446926678006475417454341239435154934467965370691299247106858396707075876078112719635081391041803553396224085586689474843058700567934669341981512130027770088070016222362934419521017794996108949565802573762205038694846215008404600015098813425501311224206264535357595308877494466371504229223329534294361117086631324276196562000600840937994072700087999867978136421802418400941998412404013687014699836203475131402497445830557840112874735851421795017724320581340801621822494756119191042370568101875327147921233360355969059102061892276867068669406414335207376210027626806866065705729393930008859064622169356967068133704701037194381921923242307038361288515693584430610050057881806084278807413525715817577572921065324793215448521247851069764257075036696849345577664552691287665624004438765156758354598909672773559335066628948377754154906566784895310975467187871454578297572523082221081478711436335778115991128400946592919034020132328686327973298782243410500286646180418600057636655082485553629804119220282469381394405315261003479418305233966694753454681467076954627038595825475712785091410395270667990274302212422132898196126059254668636324789753721956978507098044801490317619898268832943560197909983544761367377627761670327001413606438039423611441979826302053520646159895327707915427582954006312197523041020635100715668918562342695562851337566382634294810129394063798680095847047796764865873598554220988559186218269585412683286208247987854867800428380525262961757321520882943777367878777421093285050755885797549831382794681200333322897202839686395000244760581745806846500470186087694248604972530837812573181649059003286651746551395296116211677918734833259059886411738093070401463415931893252548130378938052392567407290099880152429519699174565913600077131894555054989632743935411421196920685921614111074561367033496524935314774676394477714965656025591667235136569327770831384180561814372680378424618965139914748946130267045357600587259212625029276859649308307111617060557103250056254195797229177343354420955819164751378658600894337773856129592291009530468899582211413979745932336882519990014539437352516036566239571014174218414877290091067367797900048999385649125073407918910560346153155966932742880574318850700191038036741028302888116912151537349180695483273715207002448743586272473396680380751428395782372438143256255036945821018404560268746037740486841500835214383592600353204190120340118247583014114213954476137651247703004876651242805872386750774189500103410614550772483183923198636543501230151609020024178335059570438280215485165474800920320284902901660620365877133062208721541414926704768230086520456854233342179176933907137552840995910893666726802681735566830446451097937413096058002145979272871492835319794199281598045649651142780365420315618169383051376748360552516284043039384540605576061741625389285335566514918066650187504164743066632627651389143419137458085351037002092920861666902879384464082492899879560633364435483868088979918647758822795489100967805525340153875387541215104768766802487088296622732781690895294968803867424492171230329172369694204106279941038375831866068662596034667707106194751630107483003867147213879564486614902810861210161857847623603858909091577185596309411622059035983048054153264635903017845540521389853027821370995603471602685720783457664979846333586879635427911101614655890180624999210363104679359651218365795037417938927554648594735212011993001391225528761487393125911583741498437276735766457890939961722310506873052778428221396287798962989913945646510936021163016010303790611422240879054232227979615085744628196031968699963031025610714229963579687664969204475279211961551371457195817437201205734340748086870383275953615989047945329198197086698504053750656034177851101361541063095843718584244871105207743516201744330947430773900981753881839297576641349119258495618535102336289617490497318767276158288000644223151196995075493141171131386447785487606418886780286818405769210374432100441982766296583003639083121955568165387747288435991042757849165822825547407438357337553861551437595469497135354616492901932927541752838273800534160156320962393538173156603930497718527590974746230689559438378607912853813234385245517924120986343361759050999934270400764813524248716590600233805559011984203480479366717970043598756769652741602838369442781720100210599978616690567810423646745263194394942129933583788496109714587778036537397033493472537375660649403952079974811373956813770432936431212987391639885177578000580513837697747236588179031090718919450849367923995679488942744262889975722201360118445149911518762332090459302662434353000110023491688631693661455453653385706578246866914212353914021260869013623590822380974817597696787984731258465987405418235474043802479775165148294935102750743645517775548506165800475722975226359740706120839795650095998911570143946164746593403449333672297501412513251645958344081164699793989442167410974838806274716545556394836338969372313373585698809360976392679209152219664900492599791132456354515327531525995500797613478302862611050797333051505560008540999519534504518715887537586414370593401563776907983028347456386276518305315982546386832242580957622197550316952814230224629545688819776440580313734921985074765056836478464086339638266070485696855736935857178810795048528901151587858483454848473827181715980465305503945348487688209596562045852611129512600758337989272057043961764763643563577594016419611372604118605994626534376645192196002087133665307968239604549846676010342422154845499440592517197973007087184304179719380850705288616438340170030598201875854614287409801895511414041552265943399204414980840682280778187875056416011646607167663844797370227688052095700403163081353697351397359322831791067397415287560605517281723378282403473615346891504935906010647829073305879815775069184700211018705990830471410210549219924470003893664778773126853216675587313597624830846270300317600322312601460291338872046016322090757118158582128052043452269104079401063460006620568167040069850213088380567732030604216571877766664630094896717370681415554238494079511156154188872343725743359598927284165152240652272355816119244387265610214499899364236841001695319265646565983438277051013851057511236677367770817664009389721396534837015367536484480069647668738222371219174976685455786833797083622427259838967858751163769248449604454939165900482322126579398095190849616443344605559868210005251070282022312146944301998965574957721997147430489570088954452286884046087502385598180944566811226625979579192507069648717659699863926627702608258710880940038910089998575712004207882639035102051132014137429546692591166106217206756317309052485852446961103464007438261207825008228789063581095911722487886879329412877445722597710561388896443911714646629133082056355578309036681912709129616001865675740136551071760615568092751163684362734693582112227539124314491560627005415030829577455632087056308947511309314591837598505371488095232585525673064207428295925438552242449783693286743374273367739127991982304212692666729609257149295365742996526850767334250878694936427368697853782574061220889719468248329011237420972410881885511700094272232573000391756070793597687680049544972468481978779338038179311171016681422573486238729449387958361320090826537793466890530457163954514655752910991225342207351519932525669683280556349576927242849555092281147195753101951478460879829543601320131690131998571274350334779620999616690052919308182182799106213485707366644132601654395271719943594629867709450127133652252663950969515977724254434465612080693082688553282502430838230361889174061271457530961634658242581444203686503611476614769860317575410702729204378218586685754393837234628654877112953255366010261108114731993547720101983697577172532813678540915493654198318878073308268408256128324128115957660461870870663672439831609911696089692956139162652599078160613577469897032325012793950557908441920687854633534111664870704765517082232415206370510788650901040956601065017256406718961741845091143894426123051970743293615917219928196174346297413981282639478122727561787050131477143754236283432262158798011106829829968867184606394110458807926936602076006418831911960171770956001797539333432950935165945241923934070721910171282770166785103952009723042622043256111754980917800001228062048649267904309911144027350635690193387882919329397182690886323573262139995205681787689273869897132233274255956925744411919098121272101063189290467581203493913005502058987840519328512894811984763047457881120564441992898319959482978215326233692795954769439586761240553212811306501959950440835372666023496384293226345039396201043520047040274954675860810337347222727082577202838533401193336969247322612364576749368899086329023902696615873541173529886757043072623897468139825789511770269045492413552618495080256653153675705527459167006318522592972037070566677804121534193455482571047120822424028776646223131417660327038633779490714915852869709776370739384809787327294832000284297121120929334772903521849391337447019160464818219207213268226655588499289633449079928915770842640246825849793019402477821095877932188699668546952700615257132355104032833485622869381439910890476947736289414507557429306718410365623472318423329053478195986719515019888048472710429779772603479510568910222814041683788637885670155206890928971213750994215776601517249533899859051604469555015464321850125592189517733620059696478778252970467532095008953569445780307155595381874146567787148494729015785954334046843864623843917748250294432802139461023445275930893787513400065413270274701722648820272462088887520377192616116217117463503559532595779135439303027165295931819166869008544693563079659690294697692973505113363841097664236904772976211141179382097529910186352361859922418104588756204051871653346703828404951707540613067800592924187236309252896128380470687850041346251128348166265286793180590609826035003601788753722286006054105330885848156340814795833985540970877078376114161665225649517315900145468088863666882218587742133849656534428660842345425408630578505159425094828494411009610263316285176626699972682393372829979897796791437792764031292868296720646020898190662682453418999972659810295995582122447063305068069616485246011874598573727846815239790388731203764599633899494051339002231043016517146777157114606824702747248813582584358693580940013779723685218184112562656674683210823257555388848729180953596743185070995575298439471398548493416363185035746976535563628077721947150587926468630536345501123943621889906428296645697118453963294373268962171823439594486369122236129584311996379057455676070386315805780722121284590240540113526744279009467033260975098450446574192442625841832826846519897541232699182010935166586204332302438655813970424278895216450098351445906001321774563880345337640054112594242098966685014604052130540816858788803696492242494804713492247052478957672633926759035936495950314652207852491352082340465993201050961445886041433310299060836633807209026927227596982040884229815244483716532273391133048534816035728245443355484530275076643817201594338614210512272919999998636156079435336197448793229731029479955202550131450702268144667567235560076837230576823138131929308037429441740709029976646091005852348750553097976616205685748232053269194647662329813091976565236061588317268904134322980531907227736159297780903069561218854526163099361805801569887474699598856833411522872165473580612478410868584519348254346681337928588624565659221613351026089739836891087741686822482078618760214091435323848781046234466740480174907994014293355014046186242307337861130302767518173195729607475461731762082022332897337054293152923849176887570795229418089684576780226497207876194259600055487979104187235922426016557497023845894556023799947328459754049535917502542605330169005765649382202334763762446446348197877382672993651744790355329159072640306830355635087002963869850493299583680072844403516325737797372541110614104739902832286440168284794464597156671958630206473018269373569520915780034215932316414280874763862043571805342034806406737479239942088336190095407113622498994469181513032779029414354381372352957082663827190061018617418669664289444559964782036363756231642727857175398398645734439253631969503699517767195665121306030824095433771300410793408965803279146222897769370246341471507312691428268949662013430822801007741054931935440161778653984301010218025092804817350794751176481229412353776772451084460628442899174190200003863133251400747842293558856077650767704868835053233969727394161743653451582518844550851542371203200196490033593670511928704846846348994789135224656078974072160119459851908871132065920251981523435757434875222764984795567917590731663372145692458598801001646396753467337800065085133569298984292794677127203032619874187841593463260114384175523152868882974088794831780663017143913913719269272931699539168679127676256446923668834402095258089683553386447159935322701503320970712434805899315272034467954257438600867844075172478026082953552558426608320417334164611131236960815957693236818830338887787782681757039455113237921841762594065431595411276418420433421987159139777530093061887933463709853223187209051201372633330053537840887311129780070683515013248828302498886348637014209963103212519151009954916736897441528463138077680524016962372111925676391706633956497718304450594737156262725034536011391188408684934500052488722175584370097137983755223663969894867890063876885180132468309006398924845205338085136553405618443967914285174989599852627089188997345504241779827234084697401033178081946227202350679540970099812303595523923252664844384733461294165359916700539508684295302354392304341967255982584873258481336385663334313287953771523150871214524936187393126987344165841890166874127782869736639196598272314060053950692670474095620900524949857943613153494747267678427475217236371023900343131406935776637601517219169468863106582774168832242179246541764594898120554639472256475713136493940504375017382521111677585889965615845998400579111050595427586459773515834550744559791837096006647470064369038452718429374097463795335938422327419548656127709202300642308730353571609713614446030823511593804968298419149374155354660136006675641081070313882208785845453850029114957819164658204874691339026913821612669163661395960652246327885779534991653992277162637218859553960201374477086464961361869449591822960601549639732357129209647021644439364896964756510480100598901893455359975756297872114980165959738978496156134190613765891066204953248762945573610255565830697402451891604770830707330264124968030713252831450427548520711047042768335564617108728152890201299472728908700662377221941153261650013106300202092311222363546572154623594175103165078636164340245742806064712102954537311134314137882121431414984270498347740706992154779750079875549569428942249981075752718271177064438324523897550778113175481582226360959744245628552598212224199507628348157818094128353794165714128809601574514137914037317609306090424338037630450551042443982051025778674513107231336932420389087864901213745948732357050078498403779781896835059583636781278687455281080526723703079720303218810457928453968793022826347804189812911290687764526120898559583680632591454971688078458638447218173615604035282638161819918276546423645812760371172265722310645944400879112720217748134583164880740724627241767736175353395623545445143443304092059222135202397759201673267565365309138726576348277512853834324321662174948187303995852596691382513357682572199877317163406722341703108321258536991229330657449627307897312835384256253087748309634050646800915790717074394243464185535957596267363796463526596155412652625354916119994597393583502249537940838908167981569469058686856282806607428335690387664398755689344606591898301148851067036993493651545605384039460568434458470598883573355316245450284204148804392592596429944903997562952919395064673209943071096369028952148806171545206925717001106075317350243870344776725874879155699827709391094437300336927523978501727014204350164750900280347895284503866276670793759722542015353341571285591097416713271745662647429445723185089332893167576273388001118194334179927223957838991105518088531036391121185001514625088645149093219773386883387751188001042959310234992342945610974362504320454424890193224786446825772707808543654587694620996782429728972792112492399475559111924545541119817182518056250314121043112704968152814610350903773421022102807438974749605799346576397203761843948009235222833766273276125817350344339373319602654692953838077336634976573405847193061940211613392353548617680652860120007403198493693374870717100121416806198810719309908883315547068553463661657043053460695382568241942963339033643368288712483800300618121131932322543588346183026750731218160278318593122368494677906684751037622599273453380979020521065333120462267606352979841931437640426354333883393489953072366100271967702577089944885966213100194194922370921411785503669451824417885500670271160601599046589543547904595330542508370264166248005421970006391929699342262007317215669329288823686709503178621933833392387562543932343461572993136408911207406543459469831168683413250989202902399290470169016095463314013108106857003385732986241819890987735844978274361381280379756867041178421507781514861799443765210142909630421431622250177637474769966347945938246751053144137807190357478359456718431243148315910061216704626278900640963441948205092549345934964389848114397069017238526684373039731338168153628970039331489207802196384695350437169308839946316033977171814965025045997839437071820060813501197929609023315217170391435453945996733422197265921528005373121296066630939215830061112580210876494579763818573285250343160415287636833192992396091228148646718447335063863285346069323954589538805179961402342829668917827475617998466008500960301573364679764772317927237925820050654237134456496323889921047136461376202235890175314373980399512892081567574281643694470762589664665063652342537705684685174062368215720366725332608885226100505176484117908646567913513091271934891619444071053307683989810503136929229762696664407287498168537425946605946658760684882330691450855698300946703536729854199633109894725191109499975632588300945617723002654421251502438992823951086981059915223999939831961751574532491007620611588165309148593891515779434649499861561472363458287049739194647775513776698925246396206041913747837998992007322849310344822290090383941282467336428323395967360365971832206375910392838545270057934269591615220066945041065690289616777945846238617347547491996388384089860638856595882398874384237568030918964311187512495092664505151198219608974772813027822583314606816095596239255281874328696720702551606240450553176799400238565947643338682915441640462994049502280880373838686970887965035991559846788568719909147143571546512651766712179568232437107130552208050569249219232771009272360286696076399397412198926359798812714208561588769020751460899416617507163163550315515851478894144754551148331334687870721028500551480894024164691062202249299665950983588015009197442600965656255732379236417222907108605434221420663376379550724825707712829823402896396511258048680665564901866161408766707380369425361630102197338950981730632455876567651188016247877183251465317485647501891700423947844572486321483012770538824994381128956032185095924779295301203667983435007186367760481776337300506762277987109145501621536390271409922753330705594245571894258150035263649924371648723560053304342474845530895282892026808103305467839817658606589519236943158726043339122501534554766123755532165571872122678818525595598112519126604024412239457245814985750853719616061189112529018903292869508645080179244583497906563001233728308139830172039483034716472253565069467347539304080518849879065948225733160924394301902215680591810117168756416904004058657286511306559521858561153904302292347759202001465920168131701010608376075233632569566847966980097049781527457007368810543742255564350598314278453547124282700094816591597198304393370752212863520068457296240590208583077697237510486588532388979200829958373299695988948809366476112525416556582500638316512530636640640366105757462383906198540303923302055874183163470637166459380003654476593242503998076775882356474648859697687426258046290661371468857298489203745892964460532719977850014348374096398006775532198669320596216558756590834392478047149601641499656491850061714526648930798857992842349799221019789811517682410276676831343797982994533660867243496468892156344264534679844080069375821225260552003048550760492012044885020660010999917364210009246466222585076197979611847051029200726951035366828707130171495643133389746363749708401077185349018512558584561385209809049175126059399409869902767715287434558226195367107497652964132085049899986283800191307582763093009577046576838251538790206509130672736978925994913942663301357968360784453600156342950744244038619792385625340431038716629800498510972766887046744846951598210662583936011463424624433157953024864791541691443345230000201448239615998932954207601278776245331275833199134320640316218600241110456272536088184940924064002438489869873666101101550692873965353224465944245425064144293211545663387749092698130976714229891369274300083129662451395828370441964932431571392073625462585421576406278835853376190277893565570578026487177568224091713361641015277563498253668313228836654886248923133869794775809741062327753657696257358322801683703704725334757820203688108780039586895481368048279538624165004148176627837839265910605904113838253996696528825619222093480909236130944517863898532316614762726895338530477751808055863557559723837280697870626659233063552738797957769407488884760869994128792554090064525353605113197210580119881699354961829386202202044408778901392261311893098066592496663972133519198033397447518858611062680440075563946963478101466299627986832774400117117925753490628890859160109570182148687398224112266870337464658615694203993448272399100902538030348738423066348924467089765095312885864112406825284069937473352063128108738666790779960361378543499593434888303325006748519500709478479778166171137147800720922654052673363017846272820108768931790521584300660365170536458285673245434927574827555211394220781013846123895767860381106311244579712750613218190057187094945326643246170412549486921294826581792434064494769075994833090386185687666454143464173088354202667950146558344016657336631758702289856082772188787404302856613617539925444646835539532394716521586604303641761017571961499597271986644867494519756783905434762669916051174243701728175385661939149723096647298189373023907121753887153718252624250133027176677874913927592473891251109001901326916690866061687310623931508910383754302908916128139133925562178188878772186755503446084267674931465822404472375923219494915422642822278619129902756818515289296282737313554023787498188380608391760302298388931619197798658723661237598875003507527949323038830831617963408980368784801656759385523397896148654889228797206058084768294219642819277070396094549515716005314188185890130214746577937707285594041156833525733602456632981553607635844125811258656157003497506237070586625625573817979265853166311649264438366737873293639682417889120487562924028255198082837505772593080112625673434194100396751198584981645944840293164220319406830515303123893281820988065414760900206463699232418561756856912980016507853064412360936217352250608433731429526257972334193893501845766230054591736498454926398567153297900067647462510520698292200812661208609073424803452787231483878961671745860858925324508843754384881569446054245178403346328527954931872622232847015535416861488230125353408239758228969061299489585294208009806319627927208703525718316829553518436008678114419242724062321168841180943468054252006654733508698843307504516562457049815720698676839777337814316970508941555572094554638841094529764955087147470468360539380315346533816526594634917989233097977316064204175162411624685337165603787981092294961958975511843423687386966492291238935879828980968453704459170862492355035801390741469845207943689021108227350194900481577606579012465549231162870121516025368983205689795835182644221810806208002226694885455144224433302062244865519733938663822247061565325719526307347744225059893485810110315549990086942668221044994502884918551885299541469342797222073407210664913801765970116273795484914373793474329819493793112233289514327266579074344280177446592907285375850987875004342225781779094377100058759969746166479528495442809531382411874474347697870229987045522438887740837184014132672096795125867347409930682548328687782563905796108686083724587897730461895240398845692112005502109926755724877793728889335454530137879582367154815151103724411337384933755178048840791829904610416869629102720844733145440779911106185712431894718680044480519175351687310109430969982928018710637210650500534628724012066187109278143215186495990323838158090524526325912777185220197533612937991411877902224773950264287076012502045978353581769013685581070935996630431473317737980721464574958548622497004152026143411816176390267825854586137434976271679133404642393899095479120315907976497531338170385824818114365981161209745109065591172711182888535731178518862045155382852612292735262765997693386359664857071476349730287068792241210986085630277491673217681318744226135852625200374804027885346872376010703206839992894087176171226474084385935016593738354532272558411794548810167941261411723503487020886989195272614676706582555366441736874305738722356115708634253871419237644161099263466620777901524208162801469363526793281716669628492857728536102740910499313866585011106819327074677358674153795187369126069177616075768730402056961278707608378633174931094155323592902966296903949060645245559223041127976944861168525673680996253523231245996652337221584286962242587121440815695559219948173585128293663919776954015084219726263202614347970897885701617556891192877328003038537070977867858051374874651923621577488051882094452686476550010907389105560756221666986585245705355567875733882895261946937238709478995760222811176742219506692530102776778018619699181887963494431276948979656964792956168369703445214120039139140837155394376950843097435271205489379851543156338171571669310836265428450414675148200497195233316833420607399940945214963348269057323945559499661059091584109807371735508697355966279428815137434324846378035925218124485077361169827190804818525058945931877948933626895499760443857639074509130102927459606285873057816665792718018611040105720230083780403141219796909658405600914395113120690254622094019727821142535224950803901640001645264291414207020236405135882056678108559671768547452071643606043745491297567983920909976023807418701551845163778703392730948350175271976347910284799007504422080641685755670592727790019501982935636839075142733143708165975663852218954549325717775991123031156801214116817874130285410470036345659260170673184479919153834510906835993276051727365990673513811758904006937002808798100639388778204697620266044732421316460114396649007202760972948511019434423470457179350971325690706830186241466740297076820128084164633139436914554530998598416016249010032046732152602996058060155670674303322649401760850382418532539218944277661019658867569191317545910619565117694200032161642912065113850693359466393565345011272600982802194476291357861540194632067086141352661466475909143674416857421950318235279210124021409787863364685049027642748096126199315958559470522256671042749209842280523431013311915584785625166392532418437234565153436125901425089096675126933265436775047476180502337981831469651673198363358118559328619621417046249530333383638739522177049061071517427362745531135454534880080543568392573775435280981785553318706318939086160159372468642531934808188229031412617831257733903863391931137721611693104203905772625306251090081498701479255125671675685236211692244783950702535054515112946843588542661321239800863486233430625948193062588082399018656709297500558986508898568825092054766208715517801649870787217258789634531708722169793400317842886942682528422841383284482641202361598176736993017969434557136594303552236541668557069094157033749114592038545077012721613799743118101755061041268435408446442182923368093971981502755406360990189011856483501394630674345912487572439060897710703876925990010477224921946749866678074450881682339302855310521478552456590431344874360675093090338672900066999780193792325243112182192596752066549197013617101522255073139010979255512980972934583491834643779763885486532325792709793136470454261965154499384336587375150761312278405530482255148243470797166279062333261193399294826113849528967445299574698595724276822902671384393761575300374146579375845254753799651700260373382531439286255117003490643518955472671784319852951371733580305563466365361200456024783871321655958442476133267452479395077941101745604605785930725229031816096403154945027224018665054169997239710121691451165765396384028584404968043312297800544562631629573315017960269250495940218673313106416800977318283864137016859341515271673596387875630882780088504018956492690165703283388812258993213519263973430292128501658748948550941991217169617926485840804519109026577089045361386872167548530352204481050058537186056428636065472330492946307903096066535001555625599540456706129835815542347988220698245340867984356501718489575942893039879331437507244901165452114125501012210998818968206242451522337439038708365113893567341961228656196414869465440473194795238493116139608461687366617981837401463378593394914721430812991875327378096712907904512245574118514828302222330826595599418026156767116334796075992710765328111173513515611102314643128658763603384289908413989456674922832561664099346071448931737651470327525093035088983827386041435918596843660514392116807467800558637242607594146093123104131532631581335047257790104915223815578274169395246522222011750140412586921751651684185909340539975211026317293410045037980558022507216505286811526835893626004882519940131233555686331255535444109907298698801281530856848596943941329421187126981450351416271573481490939449609693703637437378265858873341271485099909475088125255004740489849472773668315988257770344052533159990229257899919212947844392807238464951208168020561547098560461701608898955158619493976204392459920623722168667829023570372763884553655732366353200362715133820646598233783192593204456210884179789874939674028732414560418388781043812875871420656377886154717829202608708649940471923654742503053828708195163233039729646553949999203093227049345471744465642868077468949000165979186992378202205250909619289755815469611181270273539756257227633818307335386651403385647767495511202201503675172496148406525556537282320395009257139233672312993425737840549321958102298187504480436658379334835268107468419272581655997348737180508627439182763330919203220788411789029496095505942706655451169651378842030185211438004538454373861088769106470055675817118158733885027800348423952918306542708007347948708020923029523708135444830362676988762861346993481799481521562649137964640396600089167405445540920426661465334580236554525807890601436961280234434277978639503547322720922891739218818608920724337321399362054587149385782686204047039910513508656771998315622466743551925501038007726005716020223046170083091141248287791176667130906912935494660025757365747106834452443006498636958792989301407134496096246163743055707933945863432773112859926138851951551229727558074159540744143738149022196817289447900111107163694194920664785444960233240548995280364968944277816967900417499395596657086528549115137443695653179841591146641827582184972017581763167097121556372501554176521588150819801689564949754296518647193544190487830201292677069992314601896554493159626960939715651350176649571338126033236577598201400122694428262868154608632018708247907772707092672799248026150505867945468610563970915623857474671758874926160161560568449874449638150221517997957837020404528464094201757691904464214358703030896684220131036007121985089708773494038192978689314437599945704938531355501255919944758396530946481611003412815965703112586964902729590015579610490126154182090594962945155849008194789473214419039488440999035146884560715400290108789614678279767190072314976102699617681627112057417200797255071063828908330734543250404757950091102260367091676320742301829723705922337409879737144466747936841701946745192385920390211225164195908361097124941899064428390450023612597009431539894303139726792627673880910556012278564285011271309885817323624419083482876206645541518718956704614075441837034149232784588894645636305927396040614919644498390125320741054191734073124429659842155747254243188051695526533969616117604168664392880109212084068033836635597450362837107715129192065446750085961039295009127329677953196970705340073909577237662947953604445201378591360407205168358305507351251588499981293383054661284283687174888640302323555549134612019033152102717237019533451677918151362439277822359958694659604498285456699392954542729448688107194028923780209131895061116294183492482094692036237066241126396251448346864233297175770481394266405324576830776530171621287668838590672059861012156424963687249274468906201044648557240362082649481946153933768899928430573456662738554578850121552778879315160183775826605623381352996272659456286701749945275026203921994673939947337845789607515603506027119363984295044184037917137603374162845352051021369864237340163756581622443480603400541196155745308117560568797793159240213706125642300684011675086296711386723843624416471101515455753018721362933295803625498514250202906360862288919366966235139751338924591069460757850707541751467911406620150817978574786466157270539043607514907376797349201448724631087315807155764110525547282612438958684920834905977547900088669559281650076282484138119558781935736423267498780064152610868118459214820747373696255837355219494728865009402919810772131932296734899172057414667387788161394883904965159260474798594201145068358599524699956922702975650632249645562417033611710192689251869473609205389261671897601009269833594529865427427650794386404202713159436684378775916863153187825004634314938544212949655700455981304964899620577864856035926795982594078410101059940934264655744950881488536461948515957743337075217734718600370688604108477500007456422546047055283931963619053564457438685032860390040872117731893632858742641820552714672586913284211662269837998586517201711808650722102796642667119953477642395477350414797022995319233938692868952056451618817284535886074590145711100191205394951655310834534057529399233319164675787084460589714555721365243511998279802078494736996602399173178469077133801799492772741839952073390363864420600113024937099872511034032711800115416896089363574935414355739349374300385031953017708257531041396085747121670088861328026469156921450904144473058836180650742215234300780779718315837101626749760165808249812158033475789264389609745518101619639144742402340034179117481995658633013577545470905648025542270187040359287474713554078553279312928048122380367346904022536135363324172811420000816459667603298834114275872169177842518326546837522982876206674740751728660740317811900961626749850469589820176231478517778614888184471018888573712249718442416568538256668153551086594538708210236376224890831624922973474478883670996134600474810498669550482394642251636002319352504859030474715326059542234945507628651420875442983014491214168314480629898322309560295568852394410356980723756556831090187161522598761092674886663179632641405750413861647650453833080313435523540286532249578526309473907208294913819868609532735782928323974660337570917374358458130472227989603736245004668881171586187310944015103812449964285879453094964443370271190329956845340951467542008094198261169650663688632751054019647123133841136080716033532385323909534313262353040011986798265569157603361799691314327768767030649555391098530176371560308103410847455360674453818668914426462087471148114323689218004381832982932095158261955489109996719291573369985580858941445369823305488532740428153183632066237363244655609379058953886065898144048708228545923161289462658071523659365608432372877883075651678344620105490311608632954602289829657019795241045671149126253406903745273574378113652482472816459837440321858864055555332142325420808144576143205111205112140597337572239346003428477078792279957800891791978536186538491783802142082540082298974847612086382776451776379446335380771179470818249515020694516811343344577582151193552753286518020443720643850913878836514361493840953182669688996726480686235338421100012836105870499890050630528864306977396789875367794982896699318936520158126476588728346066877025695689579169446114140962294016105581676535161968366576891220980209244542253013245425942579851670867301501820507112656398373204422088472551628764652061332275100466094148678079264344183734306235774197205261017608922355640663536507072160608591028810735806977693206176009678720164766787580700175501379796909981680491308958325553124452007679682371855758898407016227108678171198665390603584692052448853044631917757273075614491587909991004590589359182071707823144522610632454504404698880749549088723575587425352394482289987725172754589632485092425521342929281507187568088168834526989217521493305169422747239955743946383323131871702753971212977778549542271721816398999888717468616971173747157357043459945489354353018364274686946999217337744846676189041992339838090058266719226135117404676578126700674871893711604513664372927671021802286575059059799253506223083426952176255395229037852548506448778389069291159783715876385797768254692077322604677019667970437244286969046839423928820891647031418692399724982346709891033712505062856204486726901860458413329804102723862464804778237708988232739678890184204616195865282605153110598073109580485238635920686707072616474082847930148584237428871517232157994118832977601630662299791270417718658268931739123495144303803371563636619536596302925728878354714842578274438860955605030326363332817076738956888169097497659388251759413422010878749304035343704788124227554805319229947084886739341384427128807480570408811118784392668002903816842806717337307537709453593689444866074612847967820536140604543328408965375914912254283628569254189042718407743271569546233279088455925709792946966694964631036331185203205086916301809833407521373006158967864866764141407065008650366163727938795908204787325849654199983237532290990514344199414865950195260566803977945376566313517972908102844420833493511373614534241861967964548782811443626158811498125173944193723025372259456605558433681955115201550148399379002472121272100023720381602725150490280184682256538652970793219554471406497454389900773903644559471427846966728994189706955077849075052264863627165737405025448189302560797512668221699595624850296401749188720379018790234113764359207395389897911147275934876688429112293698656863641973008118576839881267782525758330504941699908068415854648161124307244916466261779034219705780282502245289208953429704512539585859013050803348003496829401441225939091013738826162106044021761479919519645207203022531142165045726834819486274216323018956543132158753721705971033121519200818799039228516511120027098071591709175376524596846213701058475021908338104197024591017386077714585917526444790472803439595554403209645615939439801893629061899094571777245701149705626037549825006947058520983619617302998495111312977407953536358567293401610176824079868409535966313236513035095022037957795617143293759338414363285794910362823066595748721381575745292795213160143219949965788599169250040062503111262421837593273225542179361497715911532093508344153419258188599354981906245937609421904670913889485657166366371153462691353288404766719014533242768293702657496352800551606781187747470506886781670065002915367985709737685991696061830221044436830771407856534989290849212048735888253227172838170192732292214183180071164681296946832584194181334415039625710819051914968332042586851147115481914007245829260403492417023306160488619316577461692045914528540519508334807052293488827764654605457249623516817442931319288103876534136276128859604304394923490957296383563387770200036697164030856393607329112027779317575429015695677810294088804035992670759604351881189358659072109943442574952629453395008638865427443954413826446047101118633699254919615391602535327769677801690633279866357359716593216440713766464521175239462280310631404639238973951790907533384471950449111927923387381272563668560736168686197284967071915312084167348166997847740273046252211376381526413673861332620564669117803169679015589130780628319598197932693468841283885939929546566471252427339413395772186170423524746382579186857156625134802599803720960030758736663883272075559796234859745168918950217990505914932852012992329891742933559986436433903839901805344299703571547014601160184209802257025180203310034482723960988571306468134700913405716977064184563640287753152988705231637359735601576014783960728177623766856671258049816688869805033747347580723802644899228978292530873423387326436368502890228396696834169632644804665809634654395739752912433919684568360855538160981828499118125191609453849991997752249798932388658265644528463645737693049491269937993432395627557845731021814790545466014484155465031282843767314580568686157958345850281844974243931027668218506081155936635255072460079110160315761843872387420489806595984170755413722976981850837900846768291535683560397251285651797562291052449826483761174053181511367613743324319418190044864937901211568046742010584928134746838630686963311689142663577509686794511210874741931564362151711211043511648084762788556611067129155166892547982956072758797968583268658379246976978933695632911176837937259426949196491634054321573422571538915429385145773071828542591409443406680501768007726507709583475026603107104395169960034099069411316724179394889287477282917883972594358082124027482189700641382914453159497727598472960621745611532691524321608554274041501722989066384368137513209997468936558534934059528903991995636384218147497914276521939428718709533795838065987771844283074546277546951894574043618240980264875860166374732272506593412542320964161538479343871943198174539454600280041242807061681691644012480452044632022922105608782547692768202190048225395263436159993155682186733277650717051066093468893513717815040727726910977141784036019738328121474509578542499977809350758626958458317911019317244456299412180195433016866798302432983155250128465299549180937509406081484570667040744899362281340830804946738860762260621876701478240099428232081711842439810203986307462797370270425881346215929478861403673719958056615581114302995165275566967823168821022741644484864361892138552577757691826211096334654608308145773957900883086543541984400312442152922281048793853364547427456452772551475673682946110928928507265740242532186056439348528061292990459480228844756280526767059919017435950602534834107286508884218255265212835738243554828346043560117921871565442569977974812428177831894804422262094000959612400759330816591493409429045052793448734456320476340127398037524491282896934067093239267226241691450285055903610743532942758864355281237144896094441197759635557475479197633409806070954460904238927163708495818002160177471902991659751418530906188027316956267083429796400315122898054482349285642562389800020174496415713623802229439465515700061138333518158184218411916433264361073548804617947368298825781920077219312171941384687283918179046037911361005231064066784026767001803086730679906033808324458701236609693293603386576154400245841968262448772155021424083890714580400876679985850233683953279691881290293060197654716977527214985650730517926169754111164344429353248756605601144563419970704106397348704506430780638100103682236919599540709796527601891778320501751554016248615265980679190814907944689402010952339576966796808310336346397997167394682981642703335959110346372194697050210624251572429706564506515075366231456024195306250014378633310405433101519843130051192777895314071418589105469748427520105690891243202930550659811904519589868524379946727373581547813533585163186034327889715128325996532463447695556230435648342170390611611588757262106620971922858056789512068208080684381373366470148438850946733386584950021805099126137830772977771194294269402038064683392607381531127328882179737569084129128032588115567074886620965741760064093191437559480592623732570582121047431680464771499247974260821305653376793819792957056782376287169370067835112486364209250728835474670853282684143976239695465666031213844676841291019777571674318902956295593628858581737700246810166802129635288972576123422614314055632821609400097720120227440301699508793718056230958780822642457512219739059854014003279439073621130533277600508759514479433075195186734483800631254322102047005476501618911791401659541966773897438313028627382665984822915321220476458042890443092514902674728593700672348983870347016131014723647696009302050613926586291272119741603350931774160926428741938366420087505532551705267129539074474637193351097696717883414329752770620660917402175495954698839054726054920091852805009088595589460569108221527445979530098024596474694377443167219083766394241460964249487471863945103585026512638704135693888036743293338124089805621732694676083253533885475460213995661149013770181608033396862275791100767337190554744439769829730782311954866186463230287072485059250425648258682311306821301204048028026709523261049019524035223132724388912958291029424402118524257698175175797253451260106096705328043600490986916255523824204515423203935841145912677850224396202249460492536163259210535777808192502890984090537193330183575870523937084661368032128764755181700550740775808376774764649774382397266623792226849016143452864173667436660019575025954664490294420926482942330714536122231088845540520671324232963046449665498967050107914313814540072462117613448373991780266454707307466859954302628200839943291489468990844901480943602061768419403141236507674563055648579322411313951822303093960628967896618048055538815224493537207445389088586862510838475199361757198519643702501920502677567227958500906618275384301600105763631914845314098208994227120084934178551493762218457901425779041403968781090230744808658789325949330254243618349531379033594990195079084244644040915838707083489323909816952039661480816459984323363401939527365178702975740551194681908744573385179929743471019769537251713093338393174772639278982996420654399914665831713501245167151640127436779617285747420578918385160418306684108614982067371437745552438158353445645137092288700026857619958596300121352281544463801980341587277054700958228490651118779025465483273334429923140777275102735162151357543534917067051692672030683388558681116501799275022652094979652618076456040267151563675379079592029872786516009550414062543180724061335865661268596906089175120915911974716727771455228796222954295221676186857153021994495395719172123417804615029985446170768862029038544816861561203425355628493082209694191192961553022770557629170320912916738657549786615162819911549812677499352737175741519363021378109064497060269894904977487963274521880462591992393445053027651222237152026731817148476177980790745465971778391739227248158823269711440483819989101043797341198262812911674879813276849965088198892271631790163870620085389425139730383067982477502671454183526154242441959923277216437451980304413180609447486907681383274701633626627143493242226628817044325702530625375830830636370159087580300504246957487121129889543122685530377233752461734680499035317380157258347692587488559649661988178516506627035357474139368255245686461845102680505898779523871531648175643251480053751463428014966912353300404236793327325444567847457602704923025515711938011610961175335724119417926131952633071005103414685650608013582641505401164858012368005216904967051601023624353880297364977205194346224665806818888833104909989487515847261581952029081103925736927297634236249371628053212050538698882650113720440505646654169230398240217163060275860201172154266350511180428482536184974643563213932026893810374273079573010249250196227705961775801127994694789449406882184616565180508927086552395426509323753355746783048512798111614417109915126273753200906399037307344103126875684761433181271021428323473725807164134835977698595804518520022712762908019855210996152073815778267525665153621899006419208580572234624493326562483885304920048006420956929222558797753885395530111930773975603658034870697206719785724056330505191505954204997137700551513030498785997538338839176200347401285854630506054839842156258971628494115326612656872079618021449823432493023029456480570764322467007983941040332782383364241094135166581878799993061407796818804841704306401368737388987160334901973819629052382727353676993677792598093026363827765956204167545108484527004210277971001081206780137801412973442727859537192773198440806997956403117657074859751751620181162168501451892242857878903167406219467794408757840629552744209283727509972562638387795598695092357812665530080910332592166425236159379674849809041597207716497288199626109493706932343464810335013177411618695863546958665875174132465249886343169080460274173764916830021198024981281011316872749210261960270427902828824639269302626148220044397855791540412810989142964077456881598593327322607701089662110081887357600413085025306697552077807460506664423386809797084306267850045748519877863468980433914606544383408293645793994789878185624074900529513282538287319214604443007075065353203577073458191556342876946186289466473364904047924365743982282416000827409253022778965742441840541900838880948592278361127467477915699405701809770144099809759966912355837167062202927809275418995646827968080090755257252413788142833209466685245575987557731311421295506587374719571176025932341977977131231902023854147926545471138867117467246359182208682518886738178138083620032900016018797745554901400537733306408022811179330032090885825509468600744108068255360196632851780815737306692191596869965974716693140835990398428143513430508982414684187494840009122608110766909472837925524402990692780289261695299024712012527069124244545814920787206872830926967554322588820715556849641868096897372872696554849124475806470971909043564049684236840451509394823237054177195550689970719790080582101770716548385209094486221143107467498717914160731123433953650055924185506748208074108595125054333990724501246681089941318915416957863883831607622686554421933140112216380903491336697355154870200385379057746938098333939063450147291576469544005847751753300179592536898163128448762369163252372862364376786499338622084681231463219271013689040194406511422670678513794585234491501461206722324819334675161615889200925619792679227471102459115006098863336568702277896584790534927399547170806825851885234878682965673341078234850664146952658280337336291796228527407654986954554227191636048542602235254440820218628729962050643007556975227268618160534456739007831277488341052296222127407007358014622584858285856181633768814018965060840399325414286722920538711716770199585763416092521357417521325213210125161911061691982849340852225931137326033735945929721552954699695586690286802048770465876815479772054868618403788453876152008720818854861242292372327436173710323271308827450443064510267578496988853046718493508698018465867016144517671360008994410849063437854807995727722883640517316087451571186016954009111902954770153849387757472176796259681441802086106256699300000908711900011853804221645143370392795322791760852041293014575124160448914797976551133042511925476912195396246164149900567527120024314050854911738272276726019554639093504151420662589902603482228445291903942695377667807883881304618585627610721624392549612991734370942908257934923241720995222456251625360938795189844381701091527697838602401274081282416829460071593357293443240273612065655506637575770778467098988662838911377335434203927179540258519151583489399066466833642541741055579943223619528813789004789731598117952263307615556735936735308852237077164583536474845377313885007646128396759096124012149719190157019396619854460211002365979866782692536855966657069060706701113366215119019466492591406046925984285941515376014834741289210093845874605791271385671044458442851163884586707172134778010869037854248034315685929198396982075778805011688576208782029098796690120384096910666934540475472456505850578121602617919254204199431153721016482412865096153536998796394367102364875631249325620062296851066454291929706499205202624973729546289041225237686432831577253670505635766237663695178303229648416157128152271565947033953772810840025270137076947819011733725430592117625304258038905370332631051390687947530368157759856896695059408655064119211218817444320847648052400548258573274993798659004309072593079216116520555686620436443712104442745135151928943882467826909637460528723794397840057602958398346237150325812077748473364587590984679266302739868087559080722421644870094264403155016111420331545879269564370589061577283813406456628245523506843747310959087857070178198594254066206788986006141507098624847803908715993685324052116548313025108579242107455181048596830525097585294425644598265241415921831215293631628384032974596165799966339839143830270423245644798697011857234448317688654029772384666467870128390799468018684837370828583599281015813691940152177205695837883900748575410233885928130221691433705357789722845571307626690115493936875542308424742530475506414839885846136502182116463076319383289270612031360739874022027977038833091095516829724159543896354694997545746230182673719139733297776988740194599598363641153631431281824661421641503514377772079623747144164194936801586576393988224637714974444503844482798569747882466100681195707943058688483872256208849792515262447548186408547023152652437886868385475242039427948389147276643480025899493199995982871112978058716532312827118082293515954525081985635369994819728290255110003202460186759612759560264905481104678383224620716631610762993343086241471411397961364478137895277412960889596464754741178832324909718161025523060716793360800171317816601812544090155093835640881777835381982553199167277475706228049397200029886783686589569462157982930651267609840901829927521380506399065163853176532561718874742205196338511084564179341795986239074094070918590380598469951254162974564641573532697026490744874089056456735359655088277949421292177563064770344299362739335750673035954299220209448881792546973406358591648042811018268105054372166551071012870135344749056799926520491718848527756450267583528864107953583777646929780917601983622748862341247025639557968412325266936984697047258867005345070924015651128000905091871147221069960847060152765030666970007008260370302235362223233846166498385515011572246136632285093634563428497699590495472938830969493439231799654792554293159879611957804441729332691008015830900626243822983562848882786131056017742268018293531187606291783890010560623557393822604343727565409958832995895060593087301157933436481329949392239107174179544147464845727210014976335481851064725228824564856272631561830759665790841841717215091801450582191574861227752971454351775527765897630994080417336133409775228111403834245846412785707615846756083529265665955541189209425600725761287381551384926430072769123525111440061637480040411348967783059342609880677702411631741987815967039317511543484305042821982590180624734872014896440352384598063016404120993362504011091377847267714132892450096355851250807532602211723906987604999690204019238485625962530020596529416153298833595881094181402293604498418162591630475506210750998371119152895344461815936829302383034763453781611709479290222346413793911472148742357108911063273649347615032133390942895993032073702822899680122199228627376594152146111911976953849873660241787284172068779373001940190155759923314750768451758727261096121945515051643635382307771238964638312598520632652477361205987316574547951152533748787603240364447371613675222975804964967193237341640803090548576966430234073340495241374596156985889149988116401007698622643636898387186598011680861009356459320086051656714015818711222193466280553636926302201768762339938211752233003053637066781798749879935317401391899043069692480953790360187349897354073352592506483039697414381036528300646132207392919793145864146136341724924416173505022586193642176665514928535496909679364811599984659090238212313237639358374964268722708105888983121094921256849114221396422252064375858147460263445227620783391754355327621390267072438692833839713698023286424895879068268203900567598788741841820411812754501578623950117383387629859333024697785019976449407488696871793067729219442494557755626510152964604300991103304029757849051326270546553543514913661870869913644210143673937273801914767913638568403773926355563641579744361823023942949694389743768704293533932159884786597287505204307067177964568268346897016634254597803114236929768956079962130600529463635950578027671656870837364770199190874610991280166543619391901000665002666375003985023872786477308778181983441941751000689070097307142227470305060513966432003041449471728829981947536611234233569181854842525959818867757917711678147607678086589532053210332744013900961005476333634842737682907061719750306714343079280524581513770646039381184515959919025450277144065912644767549153603278941698069569812638043966543667810895169291819512271565821308847015640694416676847315566434738479905556581305639557675093451963808196456420444399292082318163628777423541003603770835773612165878898928399044786436333579027301908903757746494845215112122200591262245305318698061964182155112807129561470576753622217227734193258476070693244910451562479145525310820624793067190151180929635815433472625151245031082927849370869900599137615423878947481114262958642267178718115529656340391614106201695151617681642161101786014249150423443269952807254656259378858207375076315469578477286249310649866627660836158517699696422403343329650544540368185210206922324587028743715699266852335843230493825054907312899834533907983128442133063555364859341582442536281031958330920712222712574830374098516813318847758328060447471581871164838751502199423437470711131036473443926116229288315317370566790499023853305008388128176327407854006611861503172980028361595415089810570170204711579944646345027406079124956032300874381427302702879550241943750110035347850130783148775555775800537454845857916271903722045606891449858452898226620800849981680524192929058279842219142067998505688365537273411690211595584734673250934176176996978687431600812770153133342420171313430690881959387824989622979243521351234941075533746443264735245946103975628292779475895813315117094148834364354058354825801460201070710103897932909829068841352864671917311462441322964089700286163739111114969232624507052389744607890896673156524243026063918114527226246039462078683890877939106343557506826534678102426857268701790548196383583141844096941744010747147482286835938910089011200338369721050004406359324928361781423196386521488713634772672350311016321585124706838795931969740208040115586412743589360442204396587078373257581036165678578221791172586829031219523947721197227696666718230749875529371756547477867992842591984934107848560821060255344985175637519509808393143189128614256200012042674949132080350360843941896458131475961858118397359869097347745451626643084138335125799927431604128500641169574051964084268725958872049339054607499082687358255210520173289561842230078188723555451963337407792137265050625746811474213012682786184161847079871509875685554137765415723551684974360594538410193594652281730228902250040711825847259870389624045818618542975346714684003013901433669550348190077233677132414617376591647117408374086365517887041623679967180924763410482761285990658940695888085756099404564743135358625405025810807830327489916807189761577189603501778771426332093689507520963685906237482215306929844801457624488941493512688791214676551571743043802519147286178193679540669632856926980895259045410667321764189565253828829555366117134729561385476022892592504745871055402332027679386827967616047227311770472727606999383143481398982687884541079414269028765265227086864973372801378692036144929223973066033615694466275422508317137774289350660688668288230855013521966266710326304774286150918215229562995343506826564071134562698287889052927611843461330411502021198558285366797000154864496170688544951647039302543854283337458834485675548839778823158368054327337290891895207495097976372677054042701644250333784690968604685390754077231760932620866794054610205826268860510575055242446596914010215636782739086885671987803023798768327643015648490877576810986217392549001478487989530696999338267843512897002625273646026570258138549019044867522259145187095513806155095531670452716052295614886900886219717674191261469294713302856216475538330043988273773837416920105871710342762918849569695917137571424256299087807901514027263033775797314204349957050766215651041249552384305638318471547830340774449062085405594632068930969436650498993778219626073684944959199104542475317957325689567248561541599997548591161258683573202233386442040959077006735873283975240773509804872495993831968871464912231546491708249791963357624214340532365835038964115143036755037820311379297087274937807014554959004989047575580249470282357249798414964244887096275654781948028578508846240306744153999415898351788202770084077164608009367675823562790611855384714695388683932780532151180240155916723914909295592632823985998709839549023329547412916964773603337821231241160922987396349139885298857848464398640634967753541209391853836678560038209959663681704319104186285709533763181473385103202882660336069362590200453811706443358340095531737634052470129801005174643330267202956894686579174130869716469065855041519493504674506465048300907119281338608233245381294404950993796605304834805329397496785244260447212570026580325812738782382620013526401025214632127036008779604975502306297019195430120249329561278905653688904302618038183403942083452166696983564228728706564544177189626096490309946328123272080612832068794177211160518666709279965966021696640749912745336680815549233930895393856053959143440632402392388522392746081093311668875049506910458649730255078015686193116000131578951401780465337105811312671594695754684717633294156965336646357012181264714110748229157206064275498845854460006566548053392545310820497387975746231947905699187848919025136575110242441141994283750695281148595668428856913587845961631952709910105180537283036473402649819285884481175914442668781263794829459473739922256383401445537195219419365869743545042842213535581609538138120487839284694801940572609633866717499362294804960026737655407559266672848467897710682162897366195070131151673833711833423361927994642185568733024764202303456180897432774648852771081294278997641794081373094641475656649507672084518334024068903924267813437308265534933904730299030572767412044580006739866049842326979212575875489767076782235031014473300148558099734662735272704674731076537409841689481124505900179372295371396851355967295624089505132238449869177293853101206582402493928967792593466326058851142618357671076298890545548359029266881535077020407857775866335983205664424495006368168026108432731001023381319409252775701932288166910204850770500019310687995818332472323616619920561789208183600732034950466896877574045726055558052433212960765780499083045838961807215455239587965410211364839673327839135874574481556759895265422315336516864200249513593049669632772342837350399317700039399785254329567240904178968271096415499370683597805835713352538977782097656811190828917221949119859716196759822206677117368817629499204342809941549432852234747565513625469987359083231062218588361077227258079758479002633966430263052945745378875214766259398196795139434047779828562442730488115208332100603334141134184810939697661555778193530850174188211896557263472638556870472857406623132952844719835986457187030405750600880166302659274578096012791665455170482871626898610892869569918373228252685237501415485967957569561186784592573763918613239850178579533793769476839214004295330145081717477176893788132070367774694256506662711857326247790911235953279579898170148429919708607560000883911585050671619610671233106468717099855172655481771209390767737140773684755408630646237980848150917413444054411729528229699068750736507104451976122986656132104285895177978680810059088081440060385127019325937605728326212416435973475943729636116514846118192844806221430649491788799104648686330825122749206097242500964977506423901159115125370083411090224633431875055838972951599278536446686726815318178364587931525566211460181995917298903497787985065959685132838791448313287659755052268445177712270564122804200140939528552996773925071542876580953196908164704260092862307237039046755567696535854830299012254318285651891253788370571991231344637640797045046801706440979709952748994130122898049452490395209810606641001810932941334535794406972033961764345621121878193111321256192200200219349808519616333916714524104099951432312473907290273665751482560612033304681642948310367540172229582549710668300297444542431892901389746649805594335929718378819591010210067591782848495845164809210068963753612904445327627999282765708280859066460558273870167834114030750570605566318058349285360427563666448971912487191801301372207652142802701681021092585762664666832703953219957361143527296625151744468778470589290593089867055267984823390377459470371281348717139347100259833464599613391398878631225035488263833668001554455201385886325947841365994448848815637162474720298746608849737362451568883011303482379189455371964302746949165163287299780928598248090639196780427086707902381048037971798970965938982060871318916440683524394995440705638445848223673768833849521870746159698794276793782423900259674460153440588588878677064161853432164059483167890313732486912593514808817648629496933317327538347124894768513166245226613026202193575441371663766397930912883003930621209244302472869808293277313644420418878884681161913052047156337523207676928307467401630332700754378156043842035569562554170393324080927422377919555955071873812106662980265963861084478263256460629730842496224486465803813610025459411677739465216649309793221945482307800000330872438634593448828625529887683138201385059836049286501119972531276065974684469549117520446793776609130132604309409623770882259033452055272486222134194657806050594865689977134022242417384815449735409087451380099492868821641854525311886834010045577759035113206762183205503103515972753892035907396261722062686717884993245576885935578080859125357965357002266298963166724497836167773417352191166369530664282609851459574600704717618624633104033825769903891940588250310978447997853884090552186671032854993973072881565097589361942265179177854796293805021634726639118503642338195561516266641803618055173546377833883483901062469864707068002115509218027458518287087186581818565442945166376292489782067686323780941228594311992367313172874604868127557992278405711203826135890195615485415892112010784816636628702317690771133885069947479011294555019155429440337750828923188734744932395334993761089752673083275736396428812792605286094023055861894691750543972857843945141737156865984574540933214777820731974870839320771505850813475932150454190283223997317037211795189745671326072213494094092170717581015754549853192976359914541961351849254610868097429408741594001704745267061111546216198555442984591742544465706097784750212493078500681898808771492158571499194308697864707928986454441144476971621286042055768073920606913651172271926556272084327466148671512909595453755846033142687367903142137330839480247451441745393180551931943185568561481034173678947706144467346261933445119485461206445813594860614740619127765275523661063139519823084736515535134785099666341148342234873297623443774982950298573420741191075428534452959754833878666107170783166916875748060571075511310609616264285239666828785926414226999042702178675394800345960294721228425400725238451564819340935302447018497621085056784539781559591845102401212257818832021416022874883816873619423922648292473020742070660120253492831393254243420895385650238940546135815337326680072952641899379781186407394723333721118428999543139641989103699097018200274278902129462714511943001603784261025655428162917379703176345071164807985534681080288050898754308815831327828893400239382471668257574245747573849508337313632917524144872988448801350399097997036761165527806227292054883030266489951806076856905146543275772250166038850142170022089562410747661301355073509949116474518212828962489837270643244450466661520626986981046736611205875268582355930211615616614451838821210946537380215629328965307596930417964137749875212964646882747836116981187473379304820897690723699691822171649213302909029098758993443960426348792420730735706290966037486989320261154463506446845986462290135359213856207435674249435817056577255442789306540636559039048149332192343340388257039558692111758452399826131717641538992849985881889012602667113312300963791761285082482537297194876386011736694122530500483297574944718303825833417562048681522923546933994834944135180795837514973748600978139874846883723342872598127296847975296961200241622758563557910266497060741758223152072990836486728802953166594198205898345429539019165131473913429037103187497018861563987942658843821003502223712098273326591989425464233722180247785939900402608617402560003234282339925783058137110541437180497890645542986138242387832367184476488179013860497055752798171842764450170812662068177813371515479639824618674284589150964090342660552926343425485555845889297419633187230366654321774930137347445233969465334977847930117572443968938078804452120622560285413436513856149695894262813802312320414193056492845299682273015892515047628942984383300095849434276355743893964258313324893592314346369794514904622534746976757914469673859684111154475052094596668592211832037040172570390003661817270656804084998205987921137723678705306938072631791952947357249455830442647665085167499892096380218184048686076662169899750182221378936602589870579271304818284622994228785628827915798541136167896691478321341564251751905783043435930301793756625136980296905570381365967236868800038995162927413808106050534373407225649330791356976454079995200719754125031722855558440731179200267903226439002925784401271831938016827911240646600915219842691026805531744218267533297821594497455215020727874722318442419910828521454845837713002775960868810628681702884952764806848091616063498567731245391692913250368608592847269118295985260108527104457634386687178789929284946192303928993947440836599200107209107337470040025747599598076794582320167529322809032113870107739907075431812690996914027255897587841648149039901511626456639218620342140876910168846335199849349040112884885468514706263570525458405037090910796995203552560947523904912467227200673769742666931314265192436165407496157145464573246784219222605726992173870293867245259784946902396246133667268203032656365891852828503580142928253378221009571103195166099962704420329759967130612851122044833805527681423500876849278153007567149770848431629691195303458567986162713980599804567660861422667108675637909649091603734479247163009155722769226095664156617307247600998734616876677344857635553554193376724884670221840988131505189949656773642487561888239994169202653168292878289717778410191890865355546231761630246194897876836384596019710196648661226316250197796855711305902148274885984797747659697446044521546412055742818226466268214111459384914379566228420423627992783535262129685382503396787980329772362222291766989326482623105938561477463776814047364043041774409626883666112609870418109311312408994021671800123345240495573301772974009418116492128224223710416201286819994506480608451077432444516340689989774738098811728855986043241429454531065680157078733996601194369465384924172310642658791459970097922289182885016474771443303224138297087731536063559440510404377945197975228815067597793785860020345246963280674451372051244363423391186845647611180278989671062609767082408992018919532019258210722905613646784927922662595810130101129233500163992776583121892304937624618611344053415891323779745002903854406625779064614337613841515424624522571700899427330661973143633337091640520490255007083924227111821749595319193549118995544983363036921830159521619750591899418920092704257886251753791867729661634178376141482611593292523432306437320617166114534952227953303802889851943765559514222832902916318649352189669558051128037867041588427721922814568522604869167221366159313204261171510052156845700717772420642921252347557049548540044108674991628915874718292889649434630425976837656664648556026495543893532063606263231143139610893991911530045170716001409155320061389411533699897740015259387292644942630355572082854915015310719178157766492678272713927830293951756452216460296013070420956710944637588456907620932215057603823190377082876606655524441576397603966758239588123166199028263269034136443879233022880727590644057438918779002447238656718591903260739905530761720928339315828416941457030256383694284455249952494664301110104329218639420693113953163167487344145439503490164250991917678181769640486303436090830176116584019318380559485868473754196509836878893931061281342622820196254440534609966807132063992072509005233997113557149741699949535941310784572700021529381181474621052793844231536652883000611316056089295537371761344184431223016124792840142482653421082281688849935263566024737724747989536099425039389455416567628580981034703154064646823194022093193460798578063628511725734031608764920167347795624338813273634471727969103024157552895272717875276291391830233795947256548608333974847434529602137674120789158848944653362524940617451319170111485663805927458088146346467990294424873336003150115410961233705183569320999659490981608753716915879864935158023076091185576526694699375171131797363199380713500244061950422366891371820220404625157817026467440410209647151307124647860199253112992161262295978058777410928225586000044133225283044264675524996734052118267958954862416037388192924711493127720250418942210481153969979189213416350532251512892649944198726430223993647012678700637623077677050298838581032204156305212661510503951402630276240019114359209086675465182026543848422488148633714545359153113649502043052692380761844879959232383930724058760746437681621151001309737831660856936259946819385947838647693225892447793043169496206851444115793379434040442831569090144509987424712896742839831161112376291979810509695861218835921933787619782450435388801940487056691450240821153200790026426434148716723042346649896418587089987535333699034303179993969350523708009899384338435255610969413277320275926084934861912766912708618382308145489111577309825696220844870125171663265573517810991771906739048503493501285204200754418649295651199764658750854488360726465022581215813832930206194733903387833223980712638791391067135419932848911414745227804970642161132077675998110043209402061532484702845255651457053374446024312755947342670651935236158710644751709394870675664069087908414215673372816332055769561607537044280265500482265804247411759116399141501412784232057918930657956418344345722845932941151489798748662354270691517583058484350730577310442586432356141973692191344255967393710553470265568489227283956964843179066872761095487942759796495642455285045551445976888286596872038814541693295081750074855044383860011907379708170262013486604842768157251244853296073301694889765547817592677314975411643402659874603877050008803578910585124946583054207879827707205389743816987487296170598965013692462778435349568811067458051102177827738582960205347248792314677649907301949702580208964811020644486270562241684011090090909487334983372824969829923695283961303873613372966176050632163578896984068918645138187649418706378899979593328798047088519898637009536159457411899515882632142210328385886861113443388010520632013206693482276087421632990278942652440949810155810464369917080165281605745387478368411408435972781901721577072047031097835455803150988630942120375703629269838938103896222663046283947689421483693212138331261027983174605239355329552311381282624622525767178205591797488799849578786777458079696550901876563285800371081781139570019306423797023386935954779852218284332716046540151915989894849833311914817450644036086320514871359826493219766851876183437174977610272800778237237556903917035734963232008367087135005958660673431236244397928508595968459666331812931169921560219943391531931772387395159083513162596501461443049044989114012487526239092006924880585116334125778816312191405266368816314729861599027388999370308764019408662867274834003739874707525672733290518231280988668156121356072324704547032485016865490776846862080001630966720923826226393015966063021265520385899972652071343353787527125795339836336805638209124241850062127887446684764232871232414093766246102142801898388145732741392695450912543414482812139830907270995948945588601357107853127785537709222674224378233674344760193176808668370667632093632746002415116850778459867390357559897573348916526860820438356189606891188222062879875737381532917654495231612216160456712328277986060113050725833811564550731291428730894164220328921622943321501511495374463846421928904261205247920679848555494895390625041905479141612000063671298371357491847661442762227142082100571205485468914238370603443324038557534990261626273614746444434384914941363001460946692786985586529687955273044399326377886558548929097865853272630257527449656255851522883755817697483048175836537797465644150312249114084257201059786214768689468795298316805022106361211390217016314085815968916632038172602909694248063502436496142618062224804067534129707452910525861728978866767378214813517899333719339553638259792434940800575073129721189403751106124334861743189426878328597809765034075954387830641586958553626419204523656921257671293319510928527005855023451879186702750200888505376390041579085272517449037520870672415485719287280181617633864061766321927422756317714530608921869796258863707956292485661410571774784803501698386508492304313163651758402402663323631846410067857463046415868486959691931575845074159555536950284394096569937953735330432390573471748205163387210406043676829115798737364276556066343228374379592733102244055396424180059266821451193997120949944001110655315985386003932836569583273186300581791300285001531860089318599443477050491367215306525363149317701398281282992080666291334077676273176732680192135898088526745998485050390848471379777725051889928607231952836764590098080310326512395188628108094169087476290073223040720967867410137755164018935849605608804909118650820278263688507808084922813119428501706729272789541515308641570021200664972789205090965376975673170360978148933251537056456474348013057473371535135572862091594117868080932952030290262875068372387628447643092468349873205243672456111494958013367849230936942879493797857293863587234657136827176395669985441157140564681324804288363351844593726195618459486156400189836709450912302209681322196850408689015450873359327265073609788746382802894012849954412448467577311358457644454576697026026712236500865416039403196961603803252957035992691438957623055150275628893901697850347713046125189218491484287965733526169413464942993110507952664692692851387373936345568511446893881497646562354256496657995251884172907850464054805043240495579685815448789318563030870653470637842601732428704343595067017675946272341347885629070971553903156875526716259392851063641743602042926409885674757721369556721941405719845137224418440972814503544745775010496332384455052664939511574642930475032791893700234755085322419004136082627165392980236060636750749103255731699037507669685081409101025818583038897393564477126482814171834074680579955031212347543890989142144303973952191115269440094533257036309080141054152049077414347653847311630644125412614394216591367226337716304345733971784609121692205088138994110769374882287483968101883787823904988961765067262958478040781884351451556733530189831331251092995941817277572514279529238187303729147604874621812816165488393131843920169665146788401303071359992714219709526607747986553753723299947110123865583843251551476009531261379009510525256884995083065272602416084824901725366138462577618379187166647792347785630511961297393007038891734829202728018809351583545351809947514034125924762504708082459279182541897054470331232191818355518831390297931083913129303535843411757942609689463951560412972322959917923614998786867646288093801811325703485118313591128396381341337809151143122672746347483136520841740909336132823580897432188207595228933754116327885734903815852534365019805092036320919876606325451121346290375802272638000497205029361252868395559897617204793255586559674348805983642298484201531596745444598508765367255340079425124721246554628009314836311802339646385768670780831162905854032700544322535117959612588048062190058928273140925043395309475938570892195049133827649026426720039970003551501172952001521544097557350025458813710893720166738846547852974898387363536927619907049216673005213908700453309261369334340764495569947682775385368604075108983364613507243168460689995025351069131904987057220377444372529955750003274464625491875235411600324633783964542554321912645687218747663778527878294593211414762284993115497178600284696526223001935960492712294063010422727065230692698970416279555319169910807562276860653874371916399569015965089873488280823784597395185357701837973692186378057152273982602138613063986934807726472851266956899390132134941124211456274597278408198264853907252825259191879870465870711527499033037925490569185570065282449177237485125263247807629007500335059444191712850671737643923956829287990044033883885433474039067070648981862712467811582129167088815569610479287746684469537579070859232254701448494971292815057312570161256187952647301640460051147755533892703827800898014457580687496164309567906155768569693422347408239637507385089476637666135431793892048878434457736509896185108405624025649675206947705146918669441874368148547366789158949357515031441998984770741061745729011393901694419292368447431894493399165869822830420824531560906968538611109641113216574954049148761920987336860058751895310214060867086691953186667597916521683814469534406273715879706574901248503728150583370947323551516604090758912332558857639741696476563189828887574067249493932750534632229778092807288794516148117425088421100082014429382915799808927052049419024118142429570787061133405518881383030092710675289883271142898529619115362385612999688436837276067190168820716006774435926086278865079243221052938469277310860448417440773925830860108503838487458829798548123481259244982992759196514089089403681987635269719499370807116847219500836916000683039291012110120881051650251067792617047278088197862784000712478105341298274657635601098040004366253567441196233298407778616682551485627974087240538230777467568581148748829516202815806762527424323551256518088739043260019771081509244839197444650620517744662382661914013767076399701779581412249638459692926760325184134371221103642196517336963843816012488078299992341544519375548355387724012286886440833851942309413792363775593922549118908703776979985241819981210237619466396443450176945742171206346586901638817693796032865676230415216606177652216939321241581838841314196687960788623173600785116969800726468231516768915538160685508205664206559367421033674131902004734131697871090738782317488023311733516214165337613728920523685151656361044243486486119752150307328451449117679278180573319313114380785639307149081896101853222642846233501022937517290959930468472778360586875786335864256396570790195237732634859922471419438958592902768016610024462763931131734053345335675821540283080767882521125287881507895616232706334061094481167452129845203340644740715720301400854569861572898434571801617502583553380201837128834202967099936286041938130675454515136000213991191177889806957327040445093149043890516532266377202162263219067829963592258601762625392271288734395359368841774392676438620440322471903051826673545192016067464162960140907845021247359155602405522041580738199896585251837381768944289248230991473296554497201615135454378199535364954567966726635489890159621794187709722809412668307372451721937768139323191916348980874189402345682524426254791180468334413163300911936770302957387928355674402422033981933251041109778987355773189706251360967776571397799592343792740061097410191711826619742990153692797849485514204158953152905922861201763423911024092099936485216205657795927695889614881066194426741345095038053003431728260585132038459043942489711536717519823502659959760075878417718604777370824691026315243316635205075408911665484278408230071220478850412245707070441988920297671301004253981512555246767118693369312938852801114993779428232516737874460932200566855271137269856973642260953128997866350335113081806105252859042750582755262693372346427276457519968701748888025292925219821724243843569097283500267737479361780888315865671985111757574696334231497301734177682815842306001825540714292531328453909606605328743675342462162366091201480534914288253642795972951501145021355872240945275551166052368641260995918200712234415974611294689057156643792084311258696518924375150520702002004824642561125278559856164937399698906981691237815420505473207588015718896510163068583414159947520673074038097623552734999609830563290483399962883659417904735781662303745965734585816809744362535530547040911995128184970897730557390804417345554359871431065729253899793698961458787857340599454800747391512032098703331210607900667640044889401918652080931385003418524200677885729405677925133035519350596128660499847716571667264795772254462725430637835773563054438207158284847804593187145936701803665543890860759899654064612691801500710905402366777331485429431101988225876813670857155339462951159578440761461449571203194103172986945105041656855303471956816707372325221015464586840637104234774400012222502072974483971368149635156437929595529645745849324733035965517916148295962321783601502717692084894983799504491498497770880068707656836749029385450202688149274987643083440696847451475603826769499562014185446152387653153411390996815235791572865163688685057180655496074016727698907887648369285271950131846645118054434283645153131902078723697595659895949419761213120562238527131327775860411929860873767528721081562973485431550090714172923913753402736279295677487787719261837246516250555014517419237856948613961347662849840720409397803296037661496971126935540235002473761411982317086465713212058718787591726463350326959380490143422038756677034317895086882424937886138447756011229854194646875166803018393378333509704102427659706615503447888391925152094138320032761405834634380355647417381383115518095513306147848071363405757873019195516689694403472360180803002269616416189142928389696395041202887065393356275136781953972542309689284544716849535754139672906701514697857446278373528920739587154925869884502046008961819347149261865382608448635060760948623747539457109552788840289763722115822163561389493395296440608052276411298870820690206079025726713088752936340216593576070574775674225034416266858333201307218661228740100908017753822864115021211809766762278007788381206222090330359137921037886101140927315421039615953073857247895793771458480240349898734233815736131174219427639515462250686194584819358395467380454774276529912722998873509527416507600077646935524552811034047780546217468982467882864435179142313291499905557641141725739443904000701360002875268784759189237513379233782598620369412985261244225059306601688814546327033814371642742563981600851820353271793363145848151198660899508507575698108840953900499923434214306760955917680081955754442723263389619593534424483530017083644149847169122393360136238095748833973991469637992953241426617546145938518368225730028898947736319636298596931281951924047011196696694076519638043286347967436308028179292704665411931829005236441392017491271040428177996582672417700348261028592962473177331142964952603852513724182741716453539459416554269632527608766969200061436452788588624284597202678332603795443605292480146233314697614237082868876919455355820536972554552839371758708671600315780463432815141591356132508563355718123864109384898806811710578805345941354308674351349929624306444410874959710262963763669654915253667544651847813016428145965045123985292823617519013243544327194058219920371823676754918952014762432255845311768621703302914840329562710591028593503977204424781639431281998961752708281549877286551022196358266950150384579667051774381191682448493600910623765487092580769316568035107723473165100280440661713987654176603982014216099532103722645567891263782258258171942592281399835990411653943939051085844740361866703297821051117707663370729734824653017249715847755738619663805092370542918080084816040712391354360460125467337999477592668271994071765809495112757293883065652118188605695988693940405121103741075157050549927705800429185677241278655305445189227582887941242176645010464194449608672412634310260882641702455386541319414047446822512183069622862300017097142567579507509167798356580529255923934756628339929621876009086068935540872206026586112127174000838944008361128162640430620383871927706919050897868351401664612184216298770607349115338435326371809631693653110534662078095443388608752135627400081159439254749254616432207041425747820742046911545432033688378505005265204471635246925422241893710219627984813426218558644380537495147465243466381180077395573503760011713385034062734566164624092822962301248044587552516283223155940756702583200871344312935553438503800040965316048536190186635208515922148835656199498337605217730088368760715490663750867549407346584439760890047500383028104469537553097348356973680021897614670529486711037183837081650426839953284380486409220054650239781512408875878161653337381954052833482326676010945858279427409858446619709739387381417590343592073337699679664165089219502512571573712934683942587378724737713553578333735536873690144998001323260626188191089357296603120669003666964249295007759239003717088406591587604949700854440916145981328962775947637287682310992251813670781260688761013818597857066841852953872128216258828539248396918570810950335058583718544682605154626283255419843171666658680086453640007785165586318275784164303000015591845053664042057690291787980090794044371123787754793871528309682750573446492992302857189433593864733534874600444938433936856527264870520143147447607202323255811407965634927437576977880569204637118677785461988481317987734513131979909459268648377380098994399925806753653670590433127786224633015113269977392095869112737361663881258079841650606129517098295091444572955434142448586643329422856448669985585314085183520655209940262598722270107208255762342469663576505719504686883133611406783016548632146300110259122013306315434248091826175973389404039116661180550035240145643020803725513115572372098203941568066187173857998041507753524172213963662918167866335978727129178811699440800069564803190828988572132054267759243880167909640950643037836252760141658365470501776869613240882770326033501445091454513528331940003453619384337817717447242521002376197405352319064418278612236568476821702425754772367733650616420009212751816989051657640421138656949652921178914430352176443922443114599717848893673738660709663715258925244359854417933548228407674208573909060703347885494899180472958866689929102737234339895570955405304155020998366546713037130081975943356709497099139838362128386896866720932462486753141068008175019762287183778512750645199170621020422713534465714068823464275154392990742983293395677779443056497131202429744776664403024524372155003569584189966473129012177169517953890212158666625431144811639947005563415987111468007350733594107398948331169226993265571821084112907363346217378386544833672093157842555248515444948688312639617623369189370241325600329818028133079453323806770842168861285591302228163908834962181678131619711366009740734337783493062984654087029252919843698007406155457936074479137350748565858633367328814964532229579402672450808292184559022447722587711800281225794280400935837192013390080898301208186406647858325191879746368701046698954010081388176436211812171901808104038132424275137584042293473892219527742489779170113323699605738225829933487089565261793232974505499140628256825011535075352238142167322376928873140897427178377910632418239230045489866329261858888745793869686671567743626024167091026294969589460352873303920800232087524881378945252518703467677409006979237959158078934797584647836204590711329309589238596648589158632936155574077546400861636197483216292175784764674835056490232861322635438633978229020168300439626461750902092439136910828176673777729365871270130116685988741780503048237342236214030486062675445796961950940408805483904327042665321964583190726551223418110672815149867707115291738296452946010739943587067005107666448976244135168819697667955820842598783874583877377696488474101131047049029889552319323542765723760404241523227809190035058051537010388481847121219272224459377701201471167631985625711827924606596265972181281328377000886111061201785681294552020589622895148025935597054892707614614818061800183118107089829117807963618708593439231844901660565505752183330146501997649920525053132288272494162894796186450593913013878780634457952480744053956181206014736478308171812520043569789114288488888841269350806421593310842531930224447575503111796651822622987034654118792850052695670819747946425059822090524913833487323797366033467809037029543810809058086807336027859191964755324993357997768506473479068431330373980935256659654214695639448216562231590764300286106918622806942713042367388343193846815678280946769420021429746694999221112682123399327810475295744414973160050258707858697898031507882506923407953684037176118470074917236545536996192722650056007368436213275019835046601420330440980704982204783856273753203020378855340916529376103655685892508438802975776867658857655296258195244953455389033260614375544737270015500470030786446394704655933028491671504020897137987448737629251751301069569737270210438880835659405340210316225887814447998985081645964018559147049605801018465245912048906671266087564353246603162247181968701783396561853974437331499851393647968386518529009033855169772877735009248958411881485482292355971489318420891341241691492408228033697088211935913125302927366367077208432725768650388593832742236195491817699753177149435682940982209769438612103580308331416866081601985293539618195018314100461792314219033054515566879502161859126712495964776774010995224519683396702550452203555814101656522617391125389552237548805647302765295050690860825901746818654253363043433810251079746972088532674072308007072510851283886231855424937061167413511538101420879881488489292684841958434604396592718693198513230654700923945402805193667994512211823493146125065683473919175158360343912545053935940492432975278810567750365667978814864078825555939440841551293173061984632498480032705135719019391413927271335051022248820887794179457309128323928476485661475860758846899670573178924262965201582000001757995135718687740078897669279993948229246653517413188488216851432448338546291742732606790533018465621583759957641946435871490944376615597687204800663955781928778525083085675394087263426886399254439066352743461066841870943442284359166454068679790342728648678990745478026261064467007033262383972102633398000103762214868968265322654451210951037796498283671807871904283505700141667329678016255649147588163619796648663539584128255143986369021660430140745367628919051981222811461585394058057204288942457139702980834570298150852885950975993345325748427807195051916173235126205226625521766015192165711077545296327310966941956795655118502242138722946474757532612760670649744410030217265653628069451079395254515497586139682298052427915769366868164933022721856966605668746610385768730277976479455697389201692561934830562881192379876094737834626622503231462644930538068219557250587451653693172634697525873102118438931148136915237678546643248661059380764647026354738535990631665520796159848967635750994085228559954420370966382312102551266424725881093297729729156638020117024639251367440005978838532233259440744609504523203642674472911179029015442985989929236316235483741216430507771543484691279320794161964409836964217808440623026150491217243287367060584879529211222211228934036480991862947425592884581500377159661901144447159963585629396077939733292240472701256465653652961014165729153539695003643322755683161261118541120062394325162106162464987585540848651175441535748827473767589582977252545848033921837076341934245455309776629845463984792206312829161016829536033796181079376415682294296886041896125947600559938724372562623720607018196768887651787631476729131408962742808553359356348693544537867955277847033850572907630380608443738019581878255006885099854770086019985389919435807522189834480594850369690209507816953085128715583945447925096438888691381414521911831608723863864559451634452180151343042870144537111614136072547548437146130157461014963050792520247769138033575881299566036800815393824766550963492620920928603960939916688908908160234383572000268926218809231333738900070286266396564005606115259291081607497352237775106735190034638094654813584110748034063055484233895735316545952188612634791318824788062859218299510310804529638962195205015077619706550632220107035554457819672624430368862178716830854438314064077477234908454029406424547786283622981297479881150601066001995791902460879805048347841381139121411370856643046933456146187592722865229887156800370358988563303597558194798633361946241199905588709129837529814951609621810604551310229451260781733262063206422980266186431762348104791762379462334462332228936215814178986424448647655818198121531734343348654210208417657789434829716274706167217936451152089274259986058058454924463827704117231024198919557079481374260681157210270620318880898697774083281226508309969864309499013931674890361001942927725239456881129033432814849608498735194993205376665841344723302015503155556208436014135594117861695588060039630320697266048995496355857770704181920282997412350401297175381560331262881438056903040863844562761739541696179254293969447072416541615742193392753740475794779372342021640815174364125383004746229142898212013293210749484477567444394517216583784566843222451379644865113073509213660686624275032326260555578894755243301410337936173632436796443166361346390835554676786844395448092379424534404748131015097614170048675076371854763368279144864284481478309747439331965579553632738529148216012664596172318344397083578502764297518826226828769127539191197258020262734330560423140503101768297134990977845530184711445505915862562014846924282094064234761650810879083629911852027675432851175305424545645148138615788784228563729138652316405246485600717412585038712475177603046515137222741681669241210377147722182310889367583196092439583304903450190880984709160584383794301223788707411140047323924591429074978971594586175082669402235943753616975592931034816280451431631450534034500750731365171629664096218671250049022060378564449006413344807341350725021190949389277011862643138688700897684188077806014721942777957417183814700109435926416570016992629669050317773111828765000158562811115082846487145805297939616317080868910431522902576656981741338124898302531646213549562969102645302015338554288004871883311254238670483431050304081651593960537241818747653786958619137553436455806787109505873826669844758458344301078039393491885686880328474962106624918351322280774875385295862049071465933620205542274591123962743334060692074961365986622990311734775605662748651211091888686012428156431820912255589395138200490375666526491208206771022501654717450820747090828975652754767505638651113118841302137139226934112132895755822853563966992260514305121405109224136576288107066087411023434832355253515198451234654314569209862962375277523925425098009639354658313260212053380571359903092509924227801807202927345237472664576595279138862978949977571129188475598666131624942650441675330895764731090881819764094740316058051646822359998680745994872877104440128064736792416019370890074773748361425005787616838215099109225356293443594816561381330921109536932681405817605565653789023111608832535780559395327855803330229076768822238297349995428304018283669851900906342276149381100736429409539691208255363504060185932607447286841937232949018970438512761516226439912244829340881846731003494323963854001296033425208822973186292404727934941714283863595994246702515336490068212505984765018833052343774514873640811022613113297681772768702588251780490436096555099912038566218554181285803581940708227683831924431374920628716027779444686764227104768032239725398312878711376169767979335895568812308103946858298047179348355097292002064374322228449337071703338366128648102330507617230159800639445410051555351649797026218922199310681318823003486275594413530767659743363757168769196838424065881196619788829825013092707919817046364480804743821631337388687346390039590776511451692492225247507279707690372723755064177075301714612654511099476341278292009935185804224392813455649193524530595818925776503624861152942851077093486421198027878788663798034364392568654190749157433796806815272345889865250073301420821569000929343453886855422671696364384533106677807871244146412705965905372138029980103541637143383665280859959123687126317104388805303882184737416290374946851410867853410691252549483152183002306178608846515625377008626039279384553574247788339782246115784111818804893114836581361283643587336347651684347010431031797648030258500048776527266331864599050895478755869210217900290780949447104839876058779277049945531958617732375310728587828221650666145339700470288137889798849662703927485628643993261451896225850957464189015644708785078436488536867491453172736576403920440852523206900182918548685923839740131630618170115334113916830688881224887206801432107612632336362376301339823756257661310888798424664519818075117450309215161991921312190607625485095257367435324651317462569523907088423965481272653138550741315932361859194263001784606178009351182527034540481291653740526574781640125551751161218274887627358001735488697366900309920340643042037969043426858554436630784696913806893254015373136270241562199942413718547173344863401905636887761215949302541187679831663033821064067555175787678078299039083977541104315503903970548974345468698831878366233314390901792090401108173918124928831543860467880370772423427527692436175540401019966371919173543654376871950317793798526901552717213706812927635543074213010572525195254044458004795325567003273529743742379085297844848360311233168162412086839946997654212714909710940277788386909677898590282153633985380079295860946815726550798436729661609070763198364853367134424714557448792326520652247002591528140642349757362705036493930245628442404356216473741475450244837904159734934852987582488516224094224345576697669987014531506937778583988573281872428195128889470407107350110065503117219481023081249563105890131747230323385063920024005832258724062948610242550266405398063010897757589929409776990185198476427055135139243993746436426335746435092500433492332438384491261467469577547432215597590552157358552301448810710874918377364637877082772107271503204258173310265551821788834384136748906356432300408643840920709508627032961834782589659387920061641773559879520483549544627375924005052874747852054264829485074858909574993387182633840728950236964193206520827354980917485077835819671951661732676489510339367275140290454171936735873035146319780328885533159091958072498486304435344199201790465230577300643438833297107009760146330385516077760223013915116546483827655911647008166488058434237550820650258901336880836248297174918883984943183886107363128200840558934050553530934768681958989338413421600290728140491809305784455512718309139164281767501359241428085822361084635407547281014701823099927998949996894365098078225865180437130243927657900060632865366991558939224392527836219947027389239754251441400385297758264689144757938765145655366941464718400588027653501824869370596375580827631611835791142940371277728477297254619750776618990675754928689133904482189744277968297340468834857723979398185635565201925392825701294403227448509761636932244540795665208520262599166756939763916772757482572431436477868288268459812487153892456885315595043890138033206366870108760029487849366767885036981717459815056807485556035507886654254819851140527898984643943452630668100646766102105341414443238296538348486093774436017154585223516016414345263166704796502141544082942873201800748310401008693423819438657061285336821791967272594071894782301841874288587739249127428235156974375316119435754025168940972179961720445249509615019435180713196436788779673519302031750580303758255968468547361026917586077622417658312704352169986687506065239936718960884183839676396197938969634490244571321465483317379466992950345635621490675351363984173435715114907826915783787474399952675713475738717027741345491953401973110593656860292417669443741242631358810780299820467372826126311110303945217198967404716113593580528791757573386922138292055564620643294881229815483988293804946192374657859676780304027179081552696932828018884842575297724805104379564355659275033822827136530206989125609635580488039068092885911933179461147311421512766834144626906721382089712814934185300893712302032894788883038147564216607457168152638953480827713059726578100466325134264876961758317533613215924961188700797356858784586549145402498485893334781629999492224459491171127816584515439219566555625229966890898077785766727916007196263478439929527037982255333968084659739326121985522933452822636135337486019621362642748877665879944149270771690945762746885855254219948296505769715480986604262265088734528470205611405418155766210513845940066656642177473002524617747130612578741803298372078769330096326838068687307824811929549882919137161075891240168535950097615060327883155651384205330511158916674647269379557216117936533779365532262174230327371481817265770598878734311826196199513583181506745859945101373880402831119466258847838498005411699432622069375094309421684995859957717211940857761857517639780253432276383458936304883161724035985052933662707097793553612415411719839104005359094494607572843517311538616739190547675476435746641487288030834366268269778372377814577371604827744476452846998506542333606978564404237767701492173409054391275383382428436796762167659901258598404919757955846497818989416282169950734016772084811501194914155688252255220916148316542366217882088211149609700298640438016772466164146959777589649899583356368073963871014565629131545289431488627294659619008766976105807018752052058823720940942155883539287840457586769613983576260428578485991620276012493164313090451213292188705891324024138236888554751634532082444552344718536435251294869921651697352047280530189145878254945247603581942896649421956385418671247632654735721606881627012978987677787819303455643886014705637936727886030186646536476399426998997043568902162304839172356354804546570892835825271318442786135629481165217461574718417445726352232123532685893284416554022321893137712700834696818607489686967866141489281061276940363976373872605361863821626420640729585575164866340935349705222053789308706678593141948873065153036366251727697044849208309503447663406407042455694958864581063224029790964052813528648550229384313123436526316782040234668419812084284302276083876027024962210754849130156760183332185897418531589552707486471015166642229417137386774409132546936468185673804290496914253267837203131679751549653860155786898499073103140504037206210062156450739596680654837670130291791516125061715857864067671990038216867660908549319664170245308277525851888559749078971525489463920357642565668771506704444815465645425669713744365337248185038458111613533713582961696933934923016300486817371316159959119901450155501100472131283792921517955747811122059104817673174753029854157317461833426015769423491556249365468941380431748161106800703426569150927988308704457944014759966950440077176973997656970946376884871407363674259062597584206821070907239020413868940988670992411891846672714917855953111937209013110240685265256752530676792262708854734391788468314457247797324977353385929499575668072780607641311492302865883731561127174748523106056134495676079249059203730357498966481617813694488364870715611579088720013525526513723961104758880107258933595345070714115781400583390890593252445740627620990884990511630191269652633325227884767295952358825059187817471428602044920980396122960981640163678847621235130351666912492771912988684905834162063785101584551115189551929365468401857246304273948193530371433808618981014738902423794205837798275061628138575888096941189785275549787164067272135665772441357378123487201896958544885283179676230450371147857806557707604824342870550872705993237866116575281671679440526330558018590073400094004454889134400346475897032568085610366928931607750705689984581165893566528916002390929962590119452760278714327113196394515300732436385902668961895098899879223615991306503440084514443330059115093448287554990905814412744000435754328889876939686890404611741130959707958399438784851135308784868308546827889042683154499983109488919878697124164384383466061943531483626376104278911610886263022225369742438509894393888592923130847299378533273505980679580735121440692615403320265570724228583760995803268933746394787072274475879835791058048632931548766668412426890367092305849399715945513379641450546438548983148945717160793898346624946947925489978337928275931917586402486084193140017035312963041046109211991585218846008481055925353942515914921142301296654554559050179781036879549343578284620986396763453697111333099034380261326829522760578283503858160315598790937845057946246841778030086123539049390385598312913920685868721561916970882861612792817492979458780055275788559065516631391263493587876473525709240167027567418134922906323019457977792853171352879581257482527116525998255041418910436697143435749162334169459467212672051615811889076191080621082702560976697979396603007239008279063192648876852390548586509455924143353780197520476109531295153471273902792464671396693056315754455156840873651399225076366179634707006819833010014115386292759584552440774129269623569880879362139312090978906240220176344180082644911139487702993678298102426972429723719047080897325869990177144696017913977773088102254414418808722119903369845182364586243140514374611769181166590922410529470941515064963680044661451566592999446451707747344764824975640647447721540496094507113446389471148243326956245803714637383181562180775785607776517776233051921069532426133632809010027957553446569856751835515823703249295939150715136702618176267406926813576365772851941136798840998671966482724579962858053967935690787386578596357177429446259684509943200670234076563199219066531026701046033305459431687539898281665464417991768721514215385586660225256959793396850281197607627219636731807501852910471142294887058501845938117917286649548286670953152060482899891335868252860462951999328723247271356595299659096507972278728872343888841292620977163119540797518183883998631735662759449802836946227175039118617563633282117559473089957166573964302072307919398592975365071942031991380556143636228645606470609783219242792856537142612827534086156190339085319204456946085638333607799947089938741861347939655721720213523882011377540436077899477698243534132717948313035859111862173888853133643043655065819139663213511112234461288928723275165464055042953873856138944210602346892847144305594164025905747053578025378435813517968275718707170397537607246276446254448994552769542949704158435302506705636075340365154699491155202577339868710789589845128090843170358939168929797163663791720196922421934137447954695405800392495442768954837200773320505784092096443889669486864434501808053621466345397871006483450740186409358699425181137663297329241227054545026660694117381811105319058471794209266743928161902241502873348791955160775499897934784951083385721850936112591887891643654155124221385325318619731209620440504856962811485966376509955956919764425727910177539518862046620591135792940574817498504850620375385819388866497935900351225308682295100153734558402406766857233423293362279062380999055916618378316004264545675512350964072200258746962744317964353922551637732213961729690365712990945314019963922831595512623253917116903371926598658616568908912755854338626723149836642437435734624354905017899543624167754759650588099400660570434571967911533724491481445034449067804186006084627187304513775625613592196193018275990553997821942550863908328928904946152121480252998393245998069812684029441575154403220400476960223485658941928421284174661385039129872090952546358017150542866147529073152010807216447682244998800452627158862547608346908110358014286593371648984741757630899676271602526502550294862776664671831864750464395376502735258353306172897451709086525312367134339298729800631673469274505063983511156578862565777591203889701837420622231101583548460553343317536178848062274854828687893219097472440443837200885480034219163009451555784300803418211980975877489151170828650193002154404811796773046331138149452046727952711761416731343224332204205661324683012543489817038583440266985752654785109372675051494087864179690052145557569732858265556058865010562601584022085559981266887133068121621815820279948549060274408424152914727131949984133738364519219588202430692683541724828253573100534040779216973775810447719028340705156205474810653634233771153784496606397531467308703180776580680280627881400792527216469839321807651405944918606912230102133314813296442248828426606773238575774308769518082797779862290865887922976173033120499369253150288981743127786428131933833764882119280774920329752304416092712619913292757629354982085221415422657337931552945400464038464695443007529143575383135267710407864685427729292327207863191628916306877155361177845750719630636595986138913197244986126891127754456671142940398432438485732668005220525268026845026990200861932285246144559718637828999316341616532580951327083353194507387696325739986216290476618419687165059520867385576293856633041178117354955096185269287208032772428526722984684252565730998687131009755143738822390709902710931446275640133450581329122051131196654563212025992458082537854158530213130543760202043625715174331228313840492174599938252008674777295213884212271315352148674577936308230829112728352057738264270844387297437407982816927019678965854840235145365990791951989075109998848174637942779290097540054945963188587083429836894495665902428669687173695871856697501638215871460553532685982003927475329141346206446602846404349470248581372253954569629997624961409095838783288751171700199085269507171719266499566372692842352103864609016554332088359401119355548926379244235118780331500241989666298900765836080339837241684973900089050707073730541688350021253563960377277387323535065701791652405877030240739059031405807799969718930940585901462737504619190027781552541789119601240840833276154594563942038157843274181145520913469058372633203791258802849911810149030448610803589254518648521925347437108812276972831444508138131480165276260106711598691360628177703917004280265260714665702429391060527513634101313459217627043360816656251708696484521286884430195519497035644127439678459642447413294049455216502961283621386128828328017533617031593312129688037033352813019642155964011457715900204797904071769476133843064251562982214788239032874761401383828852775916712902868853928834250668364531811110156479267393707217606261992401185208018911028222683412476966949007403471996972021788591730934196242399842727700110071671272125512089249238994081319375178631608168593139363062963877608340915436909533610757063729308856615938585863875305469988104110246235730229049023483216757205120553298302284019314813279492007392588486545665229769768853383662608841776619942922823696111611296681116179122848012625737660976216097686323140874378590396216360819498851668959276799963206478716738057171524381659028635808194987585838982951084917270713557278662810837510409074063953349666308428647470749367540175080153384717005687442509210433647055955089167886508867340746464231070481103654125210664172694357273233809961611648695767367850587359767662500675450911829262644107965106077460965164636682113681836709782715381967224232479516745063795569260623164902077398866366649117773079129966972362997540017172925304603346339747337018010392460760404649066032358996581600943375857180467776375217406416058819760716001687183763410794080057920935431490179292991101715090905067857526806085173615828212698038775740421374829680765400130289709459229582139454719767679661916850309360756582539534349508258539634474683801758819070257326552533064454500814227926905222888588571999714909206021335300240902030923780031354194848443079640947793032397715051814669807164762368273341564516700462415256647243334025657733903166069962454351691174921290854630770279863898164170482218889347037110148823457397217974127714888953485472568523928028791333827846453467122934050664020007083800567497156801816578717417989925335984862936561863246430371001855137844925310664143127883097367018554324441484966086776123587062087506405083080898346341661959397973192743441764201020685193165235810936311639517121727220150054165162060975515863673804236615982448949092941572418737301705474507447075342701220809466344701597070963538190705828844650383455030009661379365103820377158687469589804144445596448025419539089299304709247963733352879975009013715634286651475874548285930383724902532126650324840819088900978345923813779950714205148289676754855093957968896429766151026805521791934311020772529693061408080028926614752466009175266555237300554584231662599811593720624004946427744537092836562651768892479955613464553094369479093719952914604661265713346256736142914319154089432579260980167302812440145866491295113286934464013309031162231190045685314549726763364142192985232553833841656251766445807325116507042882351425299952890959724587733717064520687443433350476472423262295301167316823439429521830217182768415495373144635798867246898918215329425994782438384881773984168539930737453182246875553215936924543550750169196630460135883357965118857049215460230677070202308365412075525814644220376268764534412994346468832153160913155396998711501241239004529625096276551047908200920356549453882693501962672442737918148995522677259666208779908609102176979142247200716475922109272227935825583824757123379511617697515778395213117959420772317981684678524822033606863995015005351617913111965857057570314116534755890410165935476246266413271243260186743877897204892004332900419518501267765857760865086357512983637458396862871336609619653152038044283094259582765752988217363315905663599443328835275383357417488898048824383545848991454064830954734362632263921274597263752268113755314479992123903517899609632472129912485969196571482747211470267668245939049371649795857949872876040665866727115233698667639070218705293531306672183260916439022139846395147509862670156145845934235519286753401900967637753901648085829251938839741325617597674806707228957995691971773363612197101698521551108499476558127962716058720808890775444981609135611707023237968113348854333695469989384266839311596630081624768590113015940501518639670050094770940182928878999313555888313574681806862788014490714270160867925329321305491334480059846782907482702331661647352114260224511054875742921785367748860200596788295043304665616032489668732205643924453114655521990382737614622453479033498759360839427306236374995577712144301791260984339159154899557630969303534537475741320984881865724781845045437292513202203416215921315874459764004083265906813128928926050566517457429915474201884322259078236739520319585689508152144521299892239731969972334615309544426830351504700866006680852926819852809483130696428482293591935004005011206963215621120061542533294612958443721963123735357276932404693976382364458066336320052288874203632633551193392273803838830528864040051395006388972495017357954866881270854025613597346993666285616675753145403400441844505989995286046203805158013215923846432116544221926624513896015329011067374928991427506114976250541579464536765663798414568669708251601779965881981556128126075864507201548750987556341698718558973483574437980873354356385284991234529476385637066439255863329577211564718611527152830284181599254751241118236041416062778881939198042475633976741618977182783956815674999528102411290502442339102841854218790419870586793042769694186344448765257752106728964959373858168882928203316829585379824331458956050495131322062792951715037710296562417585476151376793675991001638233803718328053279625030769424305424216560414434622086142175586519864548650838170996213051275908472084187637000664494644380895902201297453029816700727849153617755607356860716102434570602590035278407973023993012359203280164431096012319597822453838519227506422011487062226282111434262277704590985481376167357120211207800023036599633437894953027316359711112523508825520200107722282467015285546255607057824303608952078129127449124014990331496349947497711610443741030157491205337289989872504515008219511368590354052173132967836717034029845462854002549011899947247658812641307886969985052311985459700655955112583314915510008805608119781302458479570246449544449324361253559694866693684543980324730007837105098394317419100761793349172507927922898868608721812798426006477868149208511561314645257218240981610222084111352435756493694010485681521924006900090364021539724011213338013784158494900795715436454461530351822640767248901979266968307666727306805593548367458813366661743810007664318009231322166428874133680486471878098015438532629823578244935036521101083700819188204016463000635400362470795504064078705740869081755303506594792327014524571931177681093241253710652313554294128768175181855255899572488788968104331278106177580667453274597436607580863638238793093044773560192337912514740885362404390486439364440711498523853213346294338289555136733955731100659197333571569355645155292213413492125362376290506138009974965231453047032394814310935238528459369907753121374540932575668349275437363213917644849380891906647410644730319901773302307095272544199925761288549321975277618380401814445262273609125646740644736428274879492134497195791297135969084900074592380426310771378458101325075794701088015339227031860771376444279927655989023012759103772654156047775633592855526059140172372428428424694179577294148292833166295496659445991482392138831640560148511440608240805658246427993571373387447174638770367253885440926243361421978588365025244292430823036651947582105985639230542606153905742627225791811728296859729821867829478877368695384393075878052645474348037145181067154126483343920514055631605103817928297322718466074740984144599517263361158333117784310965523986553954476162112924199795706109844089802653020314765569654200948532779631505517879120871859472227329013074133710300178168330910121106018813842976813114516826129576119756976789325583763717373045696377278070030754854728717400208477198851935476145745494299333961789661989590301566034590676665518501428881133963984487471228060391766964034514783389886550953412429910271117273788042944340716885967876694577584455640436192855358924752807692283673223725005861653116667621288695557441253313085614766973672182445208891905767047805760604426892405581370018820987788281898850634382073614707109799132159495853816353867706262122963280011204981840469162236396971500910425112451618492549915197267283519832121148658219720008394809888626585810687276788661532830459897668478926490843483748672207488682567331131125681846204245774472512907564027242459788640769558971233248317767157427966974314983880499066218791632666914133705858581093927613155050491584476783319050047097527265519986690085190503764077388823455194225949020322186028053803385783968722518226114508911180188667237257126144182762702246215791249338534858106484754896891725286454582254540352193380928963372689925175938806073674667423909749012281491839790581890328514059542939019022781246504335413771753811699465944147913571527997647450500939745986364592627182788745037619362685940637360645543591126177546662927047252125742051204420333371950402797624206177945910485242526043774001595592508147254905135011437395628732347513228711665548642075841259863729222010896903436861808742324869423030262026623115933655484120674141072364712591221049896603514267210568861850781017492788646692485573854793638029404956312832369664646098932226816460070884037448297114986502962582526845874567148159038209851643466937024222252421911199994720785791651290207971028784853877807435732714937552331930274296325811713534199005894099682307853241809310401736160916294803131393993372545676977005069665606352954517065503405457532002980847060523785736648835565150477501493495684775134443589025774059989085049644332098969987418797534497892861513443130783605238302976816563868882055089852939116468590509150848949357204015934423488020330118719684590237492378181583832410847089529678553118238917379026846298011782965579311969097538811149186462934970483349919345163329862995771296035925297088130484586246767565993951080979999380531152388966618576267780317359089263073550987068406168770659445663932000203506165934664995258253052900553991981018513907073548803214560278029373419805151455449081754995150940200069860338856978333557880404718315667653130710259039790238822717459264272433867596964182982894484922730713280933399657267072770874984953717982434006355202475842553524149556059931009111175247760763208746130160239631252311869630792506074339726305747959420478919003539974928196265536056954104213031116623919262761766172565887960230394022501493441236987620948291019099912820215549387398843061884978671852724579940385296764292782665404026613208722266819446277824100990274807906097562824560149340682577770562708131825465079540176812432523865549787178596869085114688237884587752657605877746201747631390239954519603582899344976330030109465799535551064581039563587919367560173656555343456308454448550241633194427073851263538896558091795139584742519022797585302948602924946128644005926438867756603829726885865042216732841047780692475106614507851316980494789524498304433539244736061308817072896925751829215138047725348763735340741791439439698022275966762767137089884949023114965803337127857503652479068004876217776701521422665034177573294680788935284467976745991128905360953690338167514861003052375546515843465117801321716463029325907276860990001782215734027085456808894662803227171572159244902792973836262683794128235722434332501199335173443455787690298793112542629348497508640871925323134118362885555623949760487945426079333058053381368189567393883435786553846130545108855412893952989812106468846895147932251141789346471540834232154779177380167647118696081769009930694232710283427215406002432692555304326336343379068724799939098017171475189150317266143682657149461852069439198552767342846993579825929621095450747814733471471593862877672233820365685340649395556006025700908972594073854034248359027501976353940627231105016683370385528819471245298035819690512252082903476338485491209242522866112174975284026825002270606536692963367890015839617164485066456968964709928078081703785131677246978394326899059833287953195258822454731387519511432893514832877219277717485560617534784572013841012983492679284753451076035367613955778298288221798966746424302669800614742304907207762616592003065161868233480333345007585849482395074587168102396201939574706709712387566163039509891048619998656346832872324062695373171009488549434075284395537582058620892454457378511530638765035701845187747187155750315799301057799756051227150684379534954645582906639435625749450068159138231921244244443071342914058644784688381462837038595532319513391298520879962144513869664051376160542793783862827488807126828349678279301918054813133134564389151893529160940149528793607106924075780671222028758541850450080293744857812475356812965735574346462506218033764127087783030310359038855624667417711951168937761971546177663683441318864143801219994858500921808702053710037450627562917277554904544647812272348942172206884260587086822421289292333092745762145284522321694120390770967563118693439223177800702695815085072329985697178451536736032566124870239199657828562056899790660947239949986636060985912787542635997693467345959774284611526289968724721086386226133817267212357850478104129903963871915081149377374722581689254444271943837769588956598505448349281409925414519670062511734036645916692980199061936761298686824510710397353029565387693588959185540057026111142045454791337982683556255253474803980181386826644086709206911517563665587449142410372657643637832878384747079497983840434585300352531534937250896356885894909662524906453636235723547780828780070458410548875591483049814815874610238065734797742307418530551513346699282421158773595355918971596907757784247718819954959855362157284822360662950236070775980576307636406846621522285289752459758967012864436094707187091518979130173653444437270995705731393558114453693661870924349274482600377576789216776663633549275082563819930146718020330385838775886835625995568594127094670644037428778105226743370483646259838631292762419877246453282267429918289521397983530172239592343911591132530648864611509168704524239674849918104348944780508516951066804107113964146365952323652320947323750824275825346077963683969897812571664109649615200719897418465857912873140884228414786857045807520884953707681048734046059657321787248086008627588596044490186921633684505039724367990822588638632014770057284086533711383584383409989248551982821289926508819944971860546070669001479147175449044893285859164293814389119841931428953876687303410061309834027020100950522685643139612622996100332819381526366381466468005650672340453550123226501235166928777410628031394725329584029730282664024631534791877445126305883885563192845687677435039478964623848211598093071470056011021269885840118827020639438117416588476795530128600092252574097226157803560805205262298544280333935943634463440365605429136777849736789154849246371458791383191032520340851204651425598473313530549125550659796815034247960483033426363621960858530190135208714470585923550288610754661202377791761136421137478668424154246729213552711498135898036710297751753176285833740830642546648363653778989972161268413195627765131080482592339531847856497765776325749975141914369205791988962548449919246900966948916815307289286254119636113941737736764750296847032640927767542699924576985474696302297525499385800455282265095320423117945222629555725703570056518407383278746218966693345419733852507676830684387037275818963302747662992132169637185374519007094908877564181382934064885430515213178710862300609215279729792296269789373241354062311828206448115425934962944812904353340979206415911190652654952059644901104673835489384989839040567023290097750844305613122832797138573637624308388275455177361701305666927734572728083750614137145793534833833434118914376357048776617667964953645359393910013456988521152160900548716751308790306184680155816216109867778936390834177199871785785521120896896368739751718034828766519269007389563996986973119131390836439265476147057524423252452500643629173740383230583066173211754432492068136306410724814411953714428169966992228826964515074538628563615181841781000267704703115636202203040215174618792201855672619904320831617684459193418487160599656229245565175174797708911604272138753115316597219681778834026839614506344334633438518411129156021017702289910524771504479666140996330981086740527103065969617351434033207320779824287358502475315123829543990671794576001214793315510209013871207380736715711626510109038785927982344157703944360367771298778387501075352420089689372918491563784400242910694840861489971495015991267546513096309342036302910668217190294928396512008638245683504656419484675781482958585328153090107740069972258521811608534864436114331812653970962154049346548175416706574720625930122869792493335472101951747947837028676689828876229724915895887592270315354959575901526899475928247094554114408623877228523329587194611441260432945354920112035953696009610939119832951481644644158846228345719215406232985627671634790964856887807710181343221557847232139561227348737902953675244048179434125180776451903583137605308831072558626466472423397013279504628126046053971116673442425679463421725379866224149333100031200320782943856358950460270098083211140105851876369347013057776848858646133126159485113511645758548251076450280818676300871704861680805487726926581211755442245916140622383594816274371882282282301455432393256070062461979009320743417435294455191035953746393317309219737650376440060202000421902967239327069028300378156463883242666723623562609798676957115873641743943179900602144669095623167230024029538461502847214337520217230455043771019805700268455668294189137566413044531921417780891860719114614173748019081962631960355971370431861948822125562957175107501415632535960764581448498479940432122373037126587901917101821384273115143588242363057505438335864255698302267251662193039845738498526723884240679697064101036019416325362834133054013599351295409896048773259082046708173147082909822833168386946940675508363295469351229891776051914077849700809411067773258162156191578407811056857388171769458046263049893200261004441750511111811801976459348424236263440229568757095742758501518960053432394836515308082993841069477948919248288207526818119394870507931363286886065161136901692988392852273407992958263452322021938894266345569777248604699161786998467658129981645329048867370674037939466983714790011212770122650132744973396342941596679510535556425613229873375832598328126478756366104806176461002144010645504171077959342378783043680276247213418714555866955400241083075843739153256604496269632599187687318984070977121918845099896899627749573585979739988518807926489678960202268192166673558990023902187826286773145179357045581772854776360941469207480743215519386910646251662076174801552529952783077265441291853944481771989535815193909910458776776831139679861541997287310164374850723816455179063403200330132943105940124381789274026940440042395653035238740137930945605066702741516059068077618807057575719900519037627354906712977150541467837418057261027612761249247964818885518046310899856029101301992823368043234229219448907075217883922342105094414369442352184033821281433625710616864776571259131218465901197886504337234210657899131719588861556669478589115900169776312003894744544960500617802867647259599639739807674622355294171175348092242128167992070693470004295539163601845431162712792102973372483999609295803157349922507977319167920449354145526373485269923877827816303551786959374403709766092531768593124904683104696080773642441328457932165322688938706347211098788450864032939216797175604339594481101192605719596760184312486761285830799931450418945421335021417162870906616951362370648413299750576219562743469556432648768916934065165497715165777657147384738367978430447746925555096136165507642734191412147941336574190972190632180767936416334468137665539347939966320365827699516321252698560020880386187339178660465133202302294527918801639629247302599567556515854190702480640969331772790890319851726299537975830016484913626063631955640057056158034499689482292729207673595925101374026347268664732703570340899992647594826641557970509520251212606811875149217796910756551703451315031133360134480213232203352477987766465551403105140725359798348440256817155453800334050675644543227380079242874837516619528256192826351233067679463506352396632160748474062268493913732441348975696475866966030860235420627142522042697185944970226565206608298762482585966785633317533796929745168762386798028860427932525379267691081204714713636085908767726110332983440058611956089667469998633939665768301907120585819213018899210704938904753785669431119565173571106379447685744630378731025236769578580741466057107580442321096455021499779650960835348412221499322400852348710144699600285352067120136527420777908576148340833302434376123319239579142381184259266196507837646187485782079012155659384914451961539220119205819199462663801759802093575678423247386495165597978182521398716938140429805543062327455834026615445229761936382778172960259149569326242480155038372825249330598060730296761855581830008766441596686029798719848470128727386219281713418474161490130302047926185524400855799413461522540066228561073162687077631942542558623966605481713046221554262569576072732701695340128075387184365630003456996247221120719834676153666061170772699026167328890153932392538220914704380522208384798122489483419426117629615237130095186358163437795099505133760082440147215793576398051155377286381432139590446885442638026881199109365726413377977300295272133518967181104079738430002058004757149099618834599054529274084106620524127693105898064807230324609582406858310870161303470127175480765367282374094341408299896815372820488188843329098239758105816140838152249969623753282242628321556716806940365978485186158545730208018877282578325676929736445343795906653316149849303784334213839898837925575619025411369502906329128948197036621609104996807420903129297376140340935959479960764203616786740080728832920802041069726704916303419356002573882067321919884479096770174826140806333460550415404754350367521396983830871287578355238415700158439245579778575256238661616007737404135418946692116996230099546988841955050605397360256482460145337956972995333697212026174493603118384999263523769964055919791571157496645480013154463348415003764788541079523751397600692683054778386677388015787276797692332165279052713756748619035181707844789046529632595449918710376549441937489693056166247519558786751180911236777228281399552875809850775070781419574584084571340918019223419472073620087785371300043615011838004019684882359211111147635867882618661092312046224892522105424865806099239805054594194115902485448261125884804827082577528043273249915686575275667674856518210656417511104704862891166366087609612556029070253538807187069068768685736176193681335141064458841293763016304531838101248019783256447672511591872304369245083109726868614637005998712200181692359885341498271432250920065181059375379570606319029465255277364210643871188428085108125070199519019636087042562892408470540804622901218172834383684631428503860170156251627286113189620863672609896839634436944362556712059734464635404736381894861217925567544056393776879850066243376447048689727476890559843399902511593521275313271120699047053925441903186588604089523745340300911958672402761452980989907564951767300329503075150456644772363262845818736357914369479099658779755768520204562799785669625031943487751050291366073525226218025713794879286420757114344439635633132928552308362124786233242222608078621296721176141977648556027346005349405136030174540592425544057899975119274593853883853297826579074117438183944675442082919167922493085993186340550949733321023004504840957909725673301425243097099589251206957369814386885754279941951716981535978887206678857762573432231554575339402156481718421051668301056721567091825243568557113468815108962303852719028366343346625198253380362873998159116751330597397356920054680000072233273181099885596060036499775791641236965436375579082181268884309664212146802761704441392619055325343334752694638017211973512324422877347938298394218080693989898914775609048964673063659942729985546232236375724137148190954030962552279521101081820055205432312384367704008456192638820214026696576914028134360192426070185114713969776294182000868950156720033922311177803776933182868307773267871387799928837122392288801260454679266513437325904370978410995465190134500441843053552851707775915924976576398310973290796332421344122795692035408524048586932342798628634830771782869085988234800047637969037627306297198132270443278556590135595180143437452852016924367638804438935760565541396939464106465462852074312973848247686577108204658609010149997536368525709716961793658168850812672042527206978313097413585631426728003138784021095287943164673849941533668048310195105917892423814323462251793904821692437298255502754122466949051949600954732042881042885368512327535528246722299767485213681611813075244846766079890398902167157461779836238406079957156472245243894115356563088902636655923708051480966967989422709943898114309813905074625253515805409945250595698606508659553471250447254985891683798718490654488933190516856238561538219892844021456582864633373080090100325500608696000276773812812031759301631793263849447296824459277412181872804508940451326783862191651064026351762483459967325949927230117911952432730535990862684517941981359791516335472266530171409857755673348592542140631820490802807019039133836167296724423512156097897538611910477275589484574320173561634340070931357950664094963268574628969876208334511694537268819929926514235726446199474124673857470961504504615937833402559424792158370570210956730443499376702079501325834754926393702638319636435022833428434401148149475690302972536296591949539376638397991314717911877467756971746088094840949946486750472679936233819775356768940959856508914000097260363606197148541391986426617055261928950404002355433890331634843772269492895101155002553918254607682606435054607204449012019896680509674378750916942335101048920368953178306281929316860160776148155175574502015252530860611369017166113342559003917115230746451102182864924227043574919636156111419706083426568268045074395459334063193014574904852257932602199335973328231995032211193706331987385471733850451804495107566024823471272762657690573696631534351533986661572681336783904887449337670762787457962193460986380547115554781466581540678654060883932150521152811734022218090107784551123704204144379544566496851242341462470046019390823894424012311156633743221624815359063417479782130204311056504308043017629790889796184911594186581713189096131330914359316969538852170864910387854497924055563508421437945027916383707053123664928643366320663764487899200736576864704141552109295266220769513033474409696836105168662835481965600515353700412076402985055352226060698293979737794793433398386072111404511783547788614249318291996574130615361529678832094717969387201543990674352356949396861353456852663344615571900069100902862728745467141269469141985051871397234698463164486050420416936317083566342222205080080451859301489077183885609962798239829498801330234786355374268441429170970489995863715726915867837193776659523851361094629962896814193783567878126807193306800886116381800011595809944306520857038063279867430243988555812247740351877225469939092313551751118627090970673923910204661721243573746030516682896224830917836080229341487460083884340444833484953450551934054301661987687761260757600052650792102829750421745916160249541785742077328528609385450051836577029766225569627402313927051222696075960200434501492694440908200270523185170540118418114078735977294432533617484691225660581039267104458805318333201242792230073076339909858057477301505231332482509434077953770095768372441205523308153182495817669995436665307307144031073770759790917479566828008427641141548405456562000577281305007880193691142971995065858319485128702241243991732906545862919132782346515003700905418573240118053755442906981143864593854151000207217963075913462833266175427756751266376458972767384070319903423975415382919991070521353322581785246314885666613449482061160604497874733270635430263572322216922055678878712016803969242674956255275113864454347024652252536269981907463747890087888035463155302124471963950019320647168805094078802855927424297314075781864972948935740063155788113687942491587939132180942460671501972793688058669792495042813352151408876233902725692191220786892155933080375787838904867733210031583152489265334003791299032802103260353969778025494909624443018669900310786950916078737652786205732641141173718865452240848943009962835914291991965598883156911002531124199171585890895306080945162694816117402793013620004272583533245347679359590878429522654312931198731257947730997318962293315410817087275924101403705719397711899431583352763915121381309829287374506210883490605369396459461103218948683183386589905243110139843434698171225001218800862270013754345789773272576086968090965766817007697989861081671312014027421540648272477375016852154356679659574507143529451974506743564691792168149655652806416392822125548604143087025443617040206849364327751740817369682325236665888630224151374013743972803688039481249452952063428280522448714114124147766479729318811351328981948073778784569506819422498113318625090177580338158103002261625887361439628171102768164769333680758447067853952305091449261933557372427206688503236036299009833554614969261929062488433402502963184069228632053709890991836500015062259574146951865923348975359350316743186746367235881301480328507213222840676923417653949077181051585583599822585643918424547702431556390209595159638863297543562279278164912382855777033353356511359746622261124435997704721474782434243162717992054896252487920203177436868600107518527267385932302174804835839551236419211668879782892908449788503320871713009060015861935328458633664607903099045367520634233906532344135153468555256260185227720179121330134797991543488122699892143721278314922812173751741431902142024937788866885007319962877741432530411737143298687643431136208635836085984255263342150017013166281034113048800802830930823887365390960323178719964473199697690820779358600780627751598597979830219160858622527274589619192216266789711368241750790217237419182820935562070213070663878410592854068921541515502772960631218897355092265917930627838043167688809683759454899645650044771291703252796440664928271645422686202816995695265420909012812969247429159822272141265941861596936768736036745665353181199353688122345432466382895710673994251524468269530161179152097364002462631448025513128023052603055210949608093350373584610601366700956295610557805319577328522055206199060351292061793361600451563911287890358504667339755295873249838101219894453216505237764609309012009545357259081694716300224705767101301723319664137601491191637214673792761005108944153907174013448502410675419025703903611976873626249673420728631868131715813981211403607025408288948592497431741738707028504103388091533748703799145658799374987497236376592714111810961480556736299227397873440948951172979526217735343635038094835086544881971548654386047384312095665502991848866719099082619146123710945483603804412642651552558937777155092698197249583273941001584921386581171038571426746579552632755114918976814420563563504671972912912396051027412078290393901245912532523266802660562207764526324209222044354977865197499718510740784242766671701820566464193071016188859161903302370468694588027731258526714973088536633478912228447891731683845323345179100253204243040329614717342320974194826505956831543057515061139318858161902299069301842416901326417015986436926005914228111239475411154069423459721387388587916601523820757933757098906250719068912557804107010294655270105727816295320265151011569086443024085727079820075364913742482544394296151937330467320006959499078855997604768674935507676797160173257337936105283266109090015006559947289552111761805873659909476609036139794595178216672416132552991013996997347316379134317073579176465959880836140821820437344755564650417070546939075933602655240934812136300435140246105703123887580920049396057128837105870966130706475433717452836640918220187671869870446170179682316693420114350547535136666556935711368666908366793873798765724469199191160618544630598828389217393746585071736739810100336452775043747496298813707674592402619564946096117429484919059384170630414153197264188617520148752295138001948058205426090766194045110526705219732746938322352412628797243119037631112729540057782389240386787155239251448543724712752434583749206029012882299281787882290396812114290043176137837106808881977568967812186543360997551406495793858100185648332789489216774136999248079723799469163592546883739586965923049054510009199287745883377809164341092522552674521802094340840716167815640852176177571594738022649771983420783018284115326980163000247852117757403551795544980582975263144935774499082446172899183064841778164092224958882268880993178976925826936424027101942340293641630814517687844344690151380076684485436373380864919475150659222803080113689381282108084156896919171253830664121164444729521600421170664162460993230330037057851648493618074907277557475707930402833475524116871767513990282634345475053412197964008333470116576986491242219426394070087419460751108698909781117737581655153981444931788224699943315844423536848140703970200190302685815654224269255384590761493741985808385925713765723706072510033645942601888073149729372614283703168945384857026523547272143329141170393898768247086347962807419997649212596904180993254809483561074469526332710306409891082813209659463355955376067317870616578636517246775465678371613594705121969428918558660049564556641739854694789865435482499101097393368505618379383385004280590126072762979557780451381839324952695442453548565028698784565617660431077614756151125965572821980741780783046159698908077845070135215442884854671849402708392237267994790566319619784999046134794445052302272390360294953416051631982601185230171213958738239161639342490636468869625737283569232716620057620910356370852842694347541461267085853856358246302359653708647196199258518807417680729659456366666823317242910479523013052702146487783700820675603730062554520538876467439917864318400570828197660073578211183650934401228659019572106358248877155464468546032239287084476908235973809038428883944618936089076038210144644769773205271774398928833189096511456512160592576513368610901634339922999222590112669164740077655219260319139665980742339963513118302327351959685267638407881845791788076963720868048140253720803296752330534087432762068669434166070198691279767112936023912818095555209560554700856861991652623905247458803055008448521804002178860564895449389266002930072198984210601761791098290354771119224414309241022208319815394230398545835814973984945156069080094435530155672147355091540103483181282325114576040065233665164192679546052596949949161005897987140912383383577715281500428442676857952238451109931227415588720711144606284290835892108511589923392452628728512517000421514147753795893336223900316290386259375126393046785899450788838027749710006877097693759346063163286641626236948402224682774736314610771298798318686821000798561045219128627006445148484933669764357605585153858474914294033420179379171476160811660797056467611407631801151489424683590188779391020142939470343483678973396264356492010657675140329154130367742483100307412411817987990542996526852044370182536730526305280161002614070343554161359239332953780784260225332194112977938958954249922895758874313880469397395171115498592565755732259739912802878846080820503387089524948168689214757647882418283911262626150179878792750527349403191432817371813240826757404608229497779270746163572604067698490329047808815521495450136951879689473370593111406896874598324786649679190366993177623395088124530488459730809736295605590340255091916898742219346218418658803231694385036284598981324775217079307461484966053158362795306184897853888636966499148564046092604280930264896143409295988554900794487426841766685658818468750790192188892802524610076072702273125317988797804886172428392210676017342893570606929503738352774958681471350025127065889879393906194968909483203797248247673957814919408113653920869572268098233552329810997054844237342634444713181532348376389925706053893421024581526904100176191645278979449848382255532772060232561826128245785762821388799135020349128626448399200313461689423625329665000563456832508976549670935502250022437721050761397714689112426114158041765506560240186227228450977703357909081226244958567037076399084823759034343620921338583993762918658793640175039856606995735696110907541504832478009446024430733725694683381103210682207564554714763276858909698715033536049398587227166927877305545997828258428700519392025549869174071164517622027856656355219886099444342329324025759754360294066988392565240326446906219147522255354528769659930785542078544672448485254099339009644668801686124588781588477789402967973008141931236856455808549249091099908404332822239845058128698224200951137245283205408094200706907563693181127446612972602752202778995803633868712091099576065490674314465840921292750104827159161577018081326896112832095647402020547927780867812990510074797229381975669899151576065220412515944778046788037900556677847096229572771021745573581540272372712977516153746825239193139661325982563995999064681717698003027070048889982873138739564062507688543789993768798165853590508384928448858034919933009889291946509341628528941479866896324537723910048557795553558510449334429214817236172622403802524539967314261306482006264358819482089963409589976236088926297827261014470675604100740990452036929499731970857064069585806263874740199456989898141624744511332652385706343517349218647505120428044036378664615871353581375159607194471178763464902240064629975022244147065446221539999622066762446062442091546550045803481130149407163210972624015372095193195919826298799678106032741666182619996807164649435748337943881984720947338536443901819181229787971876170804501914512441595334999095467385072431897688852082531592173380155795053868231036532446109469269015430324375217335671912880546701621665365211880260059303362040018921440347217949923048185053995693508755571680053859325391184570844343392236806478343206955293239906344273060434409632711963997853754516649978907372334619986795303289025660263136768255543471683569721233617414411289815112714397759009020800916922054123795523098817754218791916769450978446914295945027492204431465381172188253599687111880713808246029541278674906059278448578153915588708832789289290489472191733436267965847248360251064387982512662396030643038922360259623796632302057187005529694413928580996304238278507631361326596611238353101909561185620210104210245944280741169842861159940975921540269792982747790652029628474348464677813311989969302428006905517365805658292206048963178001059476035254725371012122248394779669207779717283037963716902818981090544346307347918174901438340767124927024808137208033192187792270973905900111156952914555837751227695793455609678009187245361912317175225222690703473489162930352779539005476641212118308708067553146592255118574460419058953792794371532000943078614906986975643218422153964462689786875623954868443759827937437228921414013038905396108706172526397160333329349667803456099748434860952373825768688892958592841521414702236320720286467634313406766065339693207538629517736159454450064582875738014988693461459472323116383224793308379399962522900707445584315017799146552208758512655042147978361785155681726695978803410805587072409277880907053861681446443014779627219047241243577891553547554463479783108781062640067818981210446665093695309701941579242399816147115251588384568302112364944919547063099894870343510471065997964925845043837893681222952569608006157977051246184437459557222104827973958239700899081746618077447478282913094655519605450683409732637179638601266911472319511551362337288236705946842317330614496482648607607643547151230800212296467151081491058139491631236989828648202785825601687101689065917875577113338184141300930641901784744726249285503647551922170357432045616665694964571151686524650244462732103319789522663184882610092844123622634166145728034440339395366662141487588485505726627863057897418228293077456318444755026842055245545950818628012050817519428420945230702525962089512267113387744487734495112975735303287649233182689535916181972791357791477501353292431947553830193863203727935917849456791984383414884469746384751844743873250286590168197458127208843476590764510525902487393024705994648345952134551458894944683617522339373515747092007882193866479051353467773484270854775048707983378997152220843204965554645004329232767750878190270668712061583001270189186453212449014894439248466283048040038457067687527490861548961606494926296061050609480949287615680739809148924551677437316186557496336621506349757512021541969339099757401005276189628134645533089591021618948621817094935117774326978568593914869469302904775674741684633167430104404375995995626995653727772197075702554248799910000754966676717258198717452484436575821913045653782950566612320030080273138991599594709023614027672247494021147463363633288937936685518054299890205221373693327618809370798140269934091659343125925107736141774831771820473802181583706265343937967514583681567191302776686742982205192823585238180369555774160083838184538398319788349605637643208696633466129616871734876094504660914655944004180872764687621307909380008422061754060439010033354260328247083824786630244863425578491580920246139378791681412693213379826742253543796690223371879092080676937258391295851555355346068003297790854958735868392498998280513272327634826175119490132666520920694029648274235794020270827129782932215630888675098154977738405047866276054542571006928397143898460078003160819700758350037349786068612689161059850422011496077083357491365209109223017556607615806855029784803069521731138546266793823028652754109549333977687566859983052522917143497047245495009796253185337513840811356159333380895578636632175594572263333458662777437278959404389761189269133107300227410039546572035724891395923519911813940546982746415983928781613321939158473591409262740269165535772219417214944409018031096463177014713977566878677216849731342935642022814348093730785479174601639949946131843555409645454002725001175707117313686484312556300586951332452513835428733618109717252638250821816746639927164530977745418709728092667481110431692208213713266932301222718943070393712129571365194516294960655191131876646182007821628203685206995542776313672951854605726243214802180274186993004767773417735205758288980483515486201450874441239029213167103186868301009822852148060907531172913810545119700837968691256143065536919909280141825918203043659708385776646299931809209790279965136840583333002244043912633274835197956319903314402569884730555023777033558983718842184844776389914245796660217918054005385777740995698750178469369393335070393213544797480287238155306303782810613988656245321980250930278181304003431947299418133051697197265332490688760901547186986372972844960491365723586807252174190662824809145355610853289489313158398634162157753810527620330681035372573078681144806195851143921592119176683900903191222289508470155705420735332963570285698576366116451271406918975600489047904164935462331804986408362118468815321887566834526157200528759114155457350302684598811231686308969698275489335638308518706662623205555313537388343699825414763967949202052782390233301233122988724074305084011095709616183073107853130543451529674899273069954899402545430818562012075514655456394652761958021235412999729614776833297374792727172817144854036629137376053268355988350958249834061343798509572909998904308597504393321191704410929213730946947045650104946735357425908849303093979220582490974602010009384680543092685834643345785409177918142132944497050230424557400369877967542795566999768814880409427034072735823993660677181108313391024201501183229833103232938606771430426749900144260062639806291059493289821297121443968339880569946388922890554601843105968909302559674814334333801521538616134538366304527898615453900230708593570253536098360152897615826567105017985176419878451557785865402494030050723118514400433530681343006026715545427680244875350524984102847813340017188004116199522091083056126367962376192489074803355669559347279095538911157295792777866367170951001770973009794538968946368960716481578840427938230722990840383082310302076219809701781934598761610915792824439227499000511112481337844514488390270563612793512881580954050483611298313680124357054735759634026166711111310146345887092795192722166092109225650897862870780372678871354986136611327604211505524692430524844050849671433158198616279364595151025768581495471860283532816460708742184859798231000086715174491788776805373332225907404816621593678880846833724255344168581409822573300275670835256993741029091571825910976596607090298254744552365241290902903917377077727423218619320029540405786772368624623148187313480313017445769329776375767350835543537794996160240713950959000326443141020081186991536248823749493564043479164269495897325637203725855901204918740090419719633028982043880965758710218893981207513876482417375841165502502399558864938465865601041138337176473440027167582570511261959246016585167831835787751198356602940391749300416248965121736917449781618186776211478648140338614348711333307799027389038477760072549969755823590796680768304683383555393008813543524631161903688891019144470648381120698142039763006136761382326649971303756720093967634909939874482117589683980840783359737102102266234136299914892956655327030932224808066648290933181925393154110537082783872895753152466509813277202708444151029608715474588450242643195660509452632974533474572271538515394200192841937840220731707734204471650992674344316031866679555685935755840828184793986271833633904265768260491319113085867625589156609095198007484862403667030250356863578551851465283151946667014733112955901694097915091697894341207514132794086698551346223434182841023156427672541439204125092949823490594845478538659563749238383227356173397693127398329172493341665251020232925543474638490642953267178378302354411417454198876847601066151323933259321115692076205175147903178593254301985280596966388158762736085742129049352718653654304870913257334592130412846077977223008822392474986946635332889987639093579033190477988702898869917692670637863248095413297513508147701268302935064861505501676992570351734689396690027427201105549040305580725685284114309620161442567842125221129056778160993555025045552309765819520312953777190493872747076146126098615628985720985487403567440741669349897883506833530379833579355480388506451653601600065462237742104676765578051158640015126069236086750358524525800955692945631794862929036840617082816432891313835091870220390995893441587819648250485607073690027080004977370787279702250860495703470850842326104545954402921349713054216000932676888101751563066941834017409690591221144702717490221946677903193091039857251937723074196853116592131961404233073400788315616131184498610329167484383105152594925946771937222382545816623294231973381176578440923712354411596902505887776275592290132938183344053307150548697482195404921719041869012469388422792355123681894825920754471649047857629099111684424568956214387320209060919562652327281990866792908718816207077152946394800318398057286518537106612200514544084512493052141058339931282279230092559913233026617216229726272761961264831702740010792720415824581583003353667790840927333860392704379327149437388535906917129956556247051196956962058956601258131162250066299670586422269624592848715002613915584396209316525296542990740975459431158864963295946943081930981368153401852599993094945894927630884191510388039978142979929335255446984140594682528227908878952232573724851325588851352167591827370236584995159172666233952663082217760446912304337172207090266762339403931915381653623892408525136759511448650551688663864826872045099211069484754820269069549263005999216440308178253919507329934270187365559419102127786750539059072363683869819842423822669430966132688157741469095951437782256696300857208878525002227709644009629106790343461673651473916028855800153348510090051736987900189899450025270753836629627506619375967861256035087477429906617087118957994984222631153368476063683481719498370741691272393985497206444404291891306791690834334836119404856598062600339362389054896630357741290208823846174492596885347076334185244140318414829503705480043442863469901576813367275426272340067829908252173458370509715377785325367442254570174927808344443199157898841345058990117124542108964105613487190754935228535835653502237617575333711661212416885201703791010623632638821390138107080884435344999204316024655104567504039293662726144320647260725804050118588733713846027397418917506022105771250387191850007279187948266529555453416246027512085937293022879730499795416656261881311606734652891122446815971467963453033324679937159751944056206168942427761134662688892714000875245652237505092496971734850652743405928930386431309829159941945353929363406618044253263883373098197985277743849887637772119486161942199223126274594348836012638291732428903167567694172219348980074092445493173704685752125415431846675302950160373215861208944397127382733032211778999457093687861609454509574121934654880467907402072143854252899241720964096955763269364868374792061703370214745545395673954397443353924986173815932740080111369755974476087535864281893563812395834158051755067519605470752464273606977233504352787129985049468650460927484469184924021444513185555464075233259743561371963152410541017626031178341673033709668353131179689916262141176271341746197708930317297283059959790913556878215152960762880359741219431422967235319334760072482977459720660047985519765783546888475367312034031525433405243894715485480680352147132842150513375557960458627984089251713373282387195533749253735413355800182238388682380845734509975589394722767886071540558074723569286848178681468360770602124434717254048368032729700271958982312483097239652085492081006738554727635946596397134086741183334162299595862987370317999094346297349315969521404844431348517672395833275734980737491508393173279596337096239226458869155450137894146880632771137903465447890865226066928712649908528246526806452602843727055064398015565037182240065629310836847031526848752936621131364635984450036158046824038014805018234575264351215580316216988063693688747310072903772389435467482961617505821971873306102973756243311782575274560542017339155121952848121240259699206722906256790358896364607227016058556706496912574517911415792023967210403540517678610685148404647320994402470084075559772841360316675872306814949721392945850410441809933385349263554365765276947402382661611245665965452312747944684501260761229617528243372538287102349239717022383438468136418068548607982912452401776924452177356226749192498326895702031209006769335298945156928847665523450953650387358075430982317054642156660252077330356939589808793425033591980043073488235672737237933543396107532205943535524463572277093269083871242246948569827506087901062706260621950823129308257592184255926337627821093665927625671383235593918728848833446398061359644227924478730877559145092694244334588210681028391568459951133940403355154307094728339879829097151072135176774071781577733708137738463728168963570000334076224717614021347164502490795291066716451549906380372906894705849223223201801546746136943197997470140462472252562874572789624620587700695129648044947285098893846839346055189539338143828200026598269004653584508707430121936281816367023421084036123938733523813788446408900124148503195432971359591476719336591876321611492417534661794807280482586207153751596459099386831543730774161404174730755308075885685476289478965841563666271355962573783487746819885964623214638451511583621410408407113515886901483558026235532163694455622273353953201125766095538698968640876022992744871449768832454581115876078270296214114408170470321555851097107229981240089081929162487377116015166596633454772587377369233458646615393202487850298549759859220994911578340318866658910999805517621463375523748683169459688945539610747099182177207343878975827644335741358458447891136017096057439886873006983828336531564978474964242060202179137847431808823620689344482266618434489814155580045164820923007671621627730338103753663325262249020240767647383265151862520119405181228411785596042018851694742702043218147675797326435013315874203413906035968720717388855680995511861094154938008584368326441959303926057119609576690162299919050488872642845674763513900635638674820807234008425472349061405170531915630217426253557243337144889692886521239547134613131613980092826032343415026749042733442081024100247530348490412754476699587695679679111053393586812871556351845861072528163013795316309842678411228797724021879214396032041620461869423009345517013722306980290014198743212697483568211149838786900435944075771297467079777917962940085646458169417070181391139501843915074177110057115346717763067287760862452867929908252676424669892108242976931931205738894218081663230800696151744829349616427274623249197994845984745574045978811651081612597774823746281469415107594559909014823780741306046054443421001731377086099051359814190496547552854356348461144040768077091488658494160358142744638990096661830681444363114675617178949452083758330517342499938527874527841273544453717630195432102899604652232562001041539317551676644554022601573870008293004795693612931212741026058689296007181411516937248660146912315946115742083420522100157198374343299083491246829786805552935930729008537553699753488006068739498686860430332109875458716041713903985800425863266061671592184995235774973626324010932979380253794429056854655180629219271273512179442176620366936210625709182368811800525190424036126109058767176324137086270977034614440897631372336875161458389426561432508055691454646930162465327461751087607893150906371294827861983874914101807053623409507525174639484082236085741921830070538318778580599315602291768308632321698693956396628490798160400003338725820200112683223522475331812740313477874268241563867320523456934331541382684499240727710856461908632251109838910714165505210294223556725011111773150041446796488875847611168841531055162462507487314081158903837719919846978801350851183267149664754081163295326488151689366305485456336911014917008270830087030014139805538963161339494724848737313500743052585246498999249984361107176991378289390537577341882568257845790908000858030602213706234837022477588191515183147015030099512579255877613647097530044411506029058481844253198249395059853458497890343619552006760283227811890817303803691068751124620948601282393641600830402177884430422020656067617282256957864299697126265113509406938862633081343942752060418486658012912415984816642485962972369548714938751750828343747467252128768201182206422976762841222903833641257404390213563243036156266579713747416751177334734192903213472705676983407292758237504272290444377987494397942284170419556686354346368899604600945165995756665481923208090541938890657470512690237378104578176705720580383795837925466536056298110745034329531907594562400665887608136998697345396246692273877432081785487868009926730766446443179262027366286212268777301843446734777818385989423238873651411156915668385732687924788417020236914646255796908438352260303732640831924430722141167418282459055242129745794656203970616279453181758842753935055951306674340125167544701311833302089175624431404327301005882845306359714814306539620558272423221278602912236912879287460743910092844537691923002558610981924880676304316914991410725377370596992414056268125583333554437356287682265926954315348142563503178399073657205914734060680625085094296350518055374344906743139426426740413775754033703044402416238143052450200966523132700735795906615625249264206611819695031149231845861520829442031678049823984295228362485368692210129487645953578690475537125010034824734356508831277481912155602901535444958324592022875602274207231825391656310625587787100779407944659746759249503757383743562304852197758970393551077737387564598221335467674344353666243041213239756166690886131352467385954052576063949358131776234895860652831649327816090133617662069500806426654798391462480930512891037100456111204462232168064586156605084374534363338617138245550163755689358883422265371297034144910674154756595590493563201212796336391966029166132982956961333694986350744952638458519145238171897339774088090178932417163045013601166856960159048159022678830311568081246865328944154083858332981514165429430494505112355275706251043538121661111071102849093503109671346396070165023201468918923750949418686637346117948602626078240211907807544086623390923778595021722237664055603378666634622788275977595553275244538353051699998910780610214941676294907355565537064570857449690598456213805751336570845604414086253032370607292924095853531247851633804144342789547022191534468231246852519729023028083466652931351389534372081589382659009745341984842593254649777932998453997824645948743312668131258819633500165583717957657141659294154238938334981688312105318179423087438062824322607284674787444591850947739733044940920263242522821317381327952102981279647173757913994571927781352685541753828817238085824863900371996058072846706257152617468571792317566357790581202958255037590700250532428270541379785070838589304559429225157351373355695696072990146611554228586166021940124608893285520454298184356213956352407554109908976232928312172387608368326140501867992088662958638182301034049387476870014852482847685699341141343559049895294209599510125243519405417580750513744020087396181680849019033082420561441311256438740316162154852610734073006503218025797050213883852179582349262078325619966307698456960910413611058502897809406967235694823670372861556991203581976084382716518734447431681860566715312712996702006966348388351997853941497434751455616105049389431809790205512853857609079502352854024828858566146652904355911132165823774059518646584123261639542985638069410070165020886634524670839807444268768471980829049666176590109901994777950712110166352992839286401936202895608622289271511675701190221075284896811730789062324226910230616971311796866703438289541828884857875823348734323821968747427316876314617799290981426031710335241940347673395352873746769263728971669084473571438028939490274897840973525419512970012688589301711351021504353619064474950571142128359348955136747221254066139946915888694358438618288616483885533721535652949755811723539150371871617649687669579074777977928576270260234494200914928077751736408057492192653729218490971913173655642863374794551847927884791646339974412370589724187477879413128185920083980187569496246704912138425291868937396064707857311707642000258201071673883638469664796659613541241800704689770188265390750816152427962535995729677082819544988485891993141436721352504590549514084516098581966397447748894761944134240522222384689699413399103896650448332638277201279766664588382222214615926447766509907066104802191957745257788930021081809190929893340371272498775739389226578008401597592677649659969097581402933030554672533889146676842020246986205821188194668256384553507041254079608058589354278636472795317168629227943682136063530348665820183964291124255116416310645361703031304258979798531550102422787626885464794421415461051839256769688173243656945234565253316619792472393928751497101072184657341282832222257299312677719449080088961198529680608526131555283035220758498287678673298106959934763026047677096664662000633572603948158150279621619712199363138320668895453770712009554670647751090791972067727872241638725729654592643177937401033527651201487247129690184831781113069849880256556059689157648877808384022981567058624623183792489771008025069626699409140794334325529681192772191860879766345920824449213563161737852117684807173894921563053062724830440615595819889091165581127021299973029574937159864947799127037825226899174429082835956681626810761012885061738397187852842636081675715212271847150065287348150142593512378577254886279108157959813207714642864411026747448005537104103791733983708518970316442671510880147539450128822302861691043604037772820857617271827256948984175182107938506268955499313178411396168922074537252934630868238845887445288949448641257704565383087460361770897153495066679110000432446221845416404234228002046666656401679014053977769086643085116054311309544784272526074731837668929415813584501934829023274016425207274539698858197954032738565151683464997525347429188497390607843958097203369969799973569036533924845937724482783396837984939341390916548749904314277276839291643868679381292625999857274631889663185000343682100372187762480363871473788075448613715476642083552643784289387488959160536870919759961097654042527410172343962386248840811669184091011803883170324490085622049492211021757724335767883172728176021644827955410942105714346170844546537722549834757870994317680399840908052001111073903353256574446934888252133518785705827704822981965383985956910449652539085914745181613240926027043816129176454539319027686669024501998791882859322337447537148709935307533400587476992091430942209955267450332600296130195692529656595704029249402213363822385642068469691170108073701388213997280539472623131779531268239054584948827561660279874233603149080610941518789999987636594084601879789861204684139042872120500656244014452653683840054921538604744439164526426681871109529367671067474563588103992689810283448056782016545754857380792194892412003054589866671150188131911564041788433236536877559354789775304826486205354950529617628492969911737560557862922652211757744414830011749840428728333812247946800328531671490688814486418944547557125381615910022737432984478223705210737047027668780603615982476188848859587941502002345285321531114811145592358968085820234234252157063012375288031039348759354657494573620242864740551192676996958223607608626744057977385299947287894396561181390832203126138839731477916470336757096757854217872778132018166391159843030420128430298729659495346580389330456440695866671345020836784212406019595866961434816094685583191979342632937629090557417497530728481277396409793405183778318905078886836447440665014443587096713007982852639229163167415765355020675882751799077768868324657917952625171701781856693899696164006273072019001187642553754165647725313532870159915929787795266459959378722494309783031007221821278762381960440293371988875095941483779021884270898255760449654871884886160621978289913545469252440240066823391741220691910699038591892599312132722397222654783908698249471720971300700496057612946082625208320797860767288130530597817096195954133685436960422346609520656651081450122934189592904443140408526571945317692583102591209384508958513648501237111908194895726854474685446101056431599360802485743775775202325338352867722497878994263727579221221477007540757914328888815792949484250095899742012627348900499063480121691235310812070487671538952240597909230078327042886634213409715234797126555916473445676617403285205646530036244499770116928048323864785867322059788545717139636270194993811279288022649801272531857167793587742050146702371166481227542268398836433607794269938942529180736231434558657899284140387011876644857479954346135341167901761021678852032713543400947082780789557653233041884857760043280869982697904479250280812642411918881859343369956280198208104981807067089993835442559160937987992738019085595769092184453507982365086126667565877310247912260906471687958245404134144541806049508449980028287243413510633728451697027748551657701751871791034255651476132533486288511348211968247491270107486772095782223900540397642322517203559509319641824091783674163434872845754191395564500059857599402881646601104823459747359414429380614020552533905430167837639815074174543756578799363909886769376432568625137986397438362619263346402031416302076140276459215462428283344348577219888229141561228690897294456473893664429571351533074782986481964261973706268772697474588900850275257232516121348734325818686214409401201376621072498678407388146179474618074096571388972785736492998939121247115391028900702068749843879956340607611625280071148898107350265500586180867521872879795117452040371056074022401027586208797622569205046678664611733961961289115754483826703898963297750996474748222341211560949830371563206960219564532676598346519206927972116007077859577465439609367036791490568583603260277078291735268843100710485192119757384125557987871077136196584541440833629000601394070021890035697860478539639053739823644919240169605321672915517217556387079050817715420097339864803194659160964805754357851690264307993654789799619407384010585454476595407534957938477959516875207511753272514562260197236159828636108179680515112672805299579252227876411127285305800803532314032849152954134760582751515820328440700932682537624092406887828902949055661672091059675784168813785686334956449636460957399779837956593022018398262011307831739912753622040536421351367803097372580990976300770989234036643535776571007853757659815505959452095494936216743076149750359862197517909871273473328515824355554291855763880807334568472672183762862871128523393478889307901290368059999506598442835557250183146795599109310728286270602525696232149435048552620841891038816095844779695405859100561073888136944139135974576698128779119878551502500389823662940321357562409880198757128958570694579860508138572515355903511294282935129198678532023680922737518053863181975221815629627225201907360589707548436846927378342093683758934299217766087633317600857870809729673115785399363744791199545397345515011703923651818721237988200832341385939299415693639800889915083852808640595178937205617023392685299451792821273890594412839381119195350812706586465103803074976369961580196679223906346417748151469282119448087945142874785733165509825774868391368671981591426995164124674803472812304591560700847907110399939047403068075890150438877198959810012714465021499610327383085876167052932042518479695667027698917114887533403598221925857380377171475672568775518875498980901605666662390717354327365626893989371137222667765096051729290766404242521823757520299542605802849188748146359083851481498543056754958059769205157224420965777468842756848322848304514818195962695418188224900543154337111958443968168490945780168080666362129974192589025572160872472087886285870854101594541182386468033706470621149253876101861804413700217290866248123701590093341861192607812664112292613204868882151263317864119673716188713085197526776542269471709330109112190845608847132720590416214074489187792682236501496359526716815346742308069814534293518823045138982747840053418933178782168685762968659678665993964619584109725426160696808136761055294304577063422148914709667451271674978437364811781657175839106553540875673728797184889209810275850976505422281630890495626386680661374351380008196772303655384568801546796214690747616812506391221142106311254031247021357871792275206313704905324950461366745072603926775948147453487078512070531803586835541314372380447460507741332109330174581546524860426526467317211523476268467009624754602902419270443777337557876313240696837347211752896207216967748148038158291981289299266435829430987165789716058716619221050866611392784995697657868255258494975969234120199677267166767503545993265335865839806130998474294362908387661846015552450688925045492749670038704949557841432147035724515137651997296039120533313478711689132675728659021449542166812836080444910805518625008111792327679686623164599202565866200224954510095512178703937187069045882948319247812068880486960054833271156802748913206634356825961836220140773069217714722729040914087591831398194053386734666318567547362245958006247638186054066992686586178928764828107583469629871873984381968857468516406850626511884737103388289426984983578517444770669275756417860944407179268063228822039561562479812359461488432470563425151291120026183473798839009599484688200280996107174047862174034465368066049612663516673667225580754403678407157486223648138364802376654533765450186207083321041143742669486717931621889083357373409854697910269548897073788433340442841450037690696235222249469593589044646227552684239276857329199251484199282014263602378596965646202451803521114235033279572894352536524403777577807856953439412339300114187980579539522794331697754945561590472397202056482515916639220304755587513941008397771534362527574418352965533467610767925326809143497601447510764199058135715816483694920385251400131476993340301966304223954773441255469853985610795586780222724904689178627788631484905008915028690074917215507709976056961076188635864977347472031070117992664867280960253032848102469271119199532437921612665341519159719818524735487634804483832741293890939647772082436206207609659970917544886967499245754907001731294965288747901542635442382210842139114003928065525324839750094656769770181052366584167393230292442637717024697185216839198395607789368724177746982827294975013166987363776277106028165616599281197721577006273828275468450601380856648906804799493434389993039224777777500467596195028489088987864031629029174041378188383815635569007959959444502030594892115101335507764294719790304316766876868538430982601162645992310176588997747648805201683563109770653007792648400745278534736109463865386170368047344346804777629974219030196620399160582069990897163087022427068881290967872015725369301643804315816941332731951200911069173025239535748697289108816148959388098132485728770166571606330078454526829543258466084109844738659247337757834494372457903502992407259008364916352920879963776177984053134186470525721547595068152192782090854834596961143271125811252819133190513367516676397826543915338420952843227519925111715752447906592668241184037000707990976389609078331295145688241648442510403355706099672433998228537784098438947453044502771700677113233011536132058575931073681702430804608779730802126671068054140805779903937530914199298216669010928379818725281116793986015354523351851745018841535305432561509181106817705947091688915398055696913829336424279378185740996610442909436348220116310848021388958400194870011243551461087150430618782615648144228502097060173610343833468433394811445281452362704537687400928638561990073564776861192757390036520992142056134401149737461299564097599636698171049613195644172337626216064666333480303342611699755579789851162087996537293420074715787776780458966562235982728476969784433170535343020807958544208401171783102606445710719001934985606874798887274211704949529721302818058265837114599108720750850338677908612620366848916265610960799168050946103094671493292707398540551122830610692042235128077955537803997337972185771510346675044006929845346316311965656216099087451119924834683480320138972332147202114360371830942647700653661263653117485567961835745537343981247723042599468334289141312969896034313750744489127162355603896427685235342397470922783851474923977302490141041720118794974342368164301536506920641788936386550057803206522666311091260648067229980637171661798195817452418877795816602439579948507188529884459520569690037658772861224451318753275008955137366434993187418532043244282175176122940411731743465545296964439108007757055830512519437514670378127261388953187075514429148611770960686113219294758043330434765695469322288185795948345505793598303098388667576882470353971605378069254720978836548664620538894511595868808263589761544529692930688213394503965081442044947578756198435418324291735756208419872244257460017196690020862133613835533766388096136484823761583619998129506142196969662753813712135108100608066506272563536926015775583973890270291644672592890035822074139001208425862378177903366521768614975635003193583270011797741187132064227260747496780503721563813003472456104685099167817874650895378590881274456840484526076743831435994332624964851804120995432301957700263359826874915290216487350681079572578710495818566000345490357245316417224253093206644065343455853103503767054038718746419326707552240370406516046797494482958127015469745622915281298960844254566113632191522582745907214597684120378494129510188946705277492821451453970397373490678750412527760382836358274872126372070860453828216366363434587136737555190600885032859143263569836128860820244634751709337954822421453999206841239901029384418157652958812365558808556009870987069852311179190263392363846125766885809016707219197512730088835521267840835866526862968238274138183583383652270468469322294858790418258109891512359028247857071020909967334665130218094694818063952038640630706110132301322216350978464271476367696265691655996376447994276179331583829006360010906460344812758915026088002366329533861729059528926599631996290239179545772234610027172077293531572292185056262103397108746590949898418255362579347050274289150090660015448049902821770960499394497041847701501458211768019100288964692638114468464284647390268564242628238266440344493486330849971465538464210684342433764253634609339606287052512644240875415674506001618954885708947934797711351680598527567531248660528987481126175664915368943312699598955544984365773071663053412542148463747091970711003685874093058454208821699425904761874082742285256826314691604040228545859007233034443580751805181448000947256047027986580814159220484144989297024749856582541538777203883917466613406756764125705547339768512452580866592246082086564756810748637026874527505683889706437926900813550669464708369668067932278954987877325503414995347497744380854927617839650003231542252137886794384980134408820697060120371182876396943559793055127975303588700707189322979338798908235524795302871860510969710123321596757749080941105267255763269654270550586804949445265327004365802236681360075002300624882773100085116812910248509488463440528689135234081004103202310007163548825786873754192338498263370959688344911935801521119653832258023296281443964918576093407091607899232262436685672081158527744707893531296052259527969112245992284486573337384577105523522383827531727511326984313254807376723779209339505484421203035626021060233223916205309021716464859699909775034492817397717251555228138202435998911324831979237922935588994917341902196895750801451080510792603092042788127904820407375207260903571607259725624217278216668558165632417063774244463536640240876968681593265658684467174890518679842811744574518845755860808544337966053476919098740759823310997432549598522198246234633425453487350196059689450513714774540878760217980610143510571957424698280905221211059566235351971033218106513497924603978962317557436939314763061005535883488325535702173524151070310066389200545929368199899361609654120818532591327609015897083408912647841336836106926034287674257373671099702093338525424134683084698177499465034376532524252623788896883161854418446192899734426964168806984936356825600929882926866927862240177227727455578790201298716191361687906633524954320602527911941650790663890671936233983307412279853160541908379379304387834894717841596345777231511616472838018812259358604621627859609257124996866795613959547185232810135689074047442727901662848669080454721338141993201538908922214959495442686764659140802378811698425347287702710246653540574787332261046920675592919571965104602719987146057683945811884832938866167660980267420911918786277692858277469279569999769537845055182064186814670657192899900068944920850193542724788686627177148756981297519420515845386693446637817359258522332818840380105033973073798651630692183285394930924598021113680346591803640374665017522067851967826135749489946758239004616630405522363554078061977672572589038320946120695944620566491000902320068353282600812267153637317493119087762646432812039955838215435499122118261290706408772387410981408615742267281572951148258527558596190845262054797605921018436719161998024092142190455618380220638038704844355506844442549644842112611510482543847563905419043667379240820491539897745209732653940936415589561704297225044553601670039978293674435615247571200423155710167188019931655739547833431661516107254265515162946696229592500158711873900105509088003996319611604250366185281847027134944656774759997041093564116632094199745146204458391052878746918722466532288962559391078967342941211061151542398458856596615048850952925241580258069476847169999476312240865367099439049256206507667900039013004202568099646132682691971049087977577347205427223547754378257671058149686357037033754962003795838792633103189825641485041015581284764057371475786253833741525125895056245624104306010560196979783659007866170775363197928145439052647939512858575946935304891241226606599698124361624659396906114090824134257995832208609701255258756236793692320080665810464900580402171561602119826699484516802576846633571191633427132653778744809930843800873878104876008385209018509934694383780644607760608294170631644487732361580372250238524145483463901873909955076488802994321820491955435834421808802961799954023818084866998153431956956862306884967326068116646187452132945292497385111943689346069139340793152792579334675915743510067370765649586117171719970234767738102434033661078773190480780731969935719117503398307645292782237050365483378231404182865258538293355365749443578621114282295670427479866985849150704617080302149503974483275868916057510006247638173523617421595343491469980461340922597612707205094325921721115376780928745028028947749470325814868747135940809169582955104922380304566116248908982654904660861215059034764069128773283122692212728789925214037802314965095359501690620391731764337730843389410442674915962727201809999581995859135432685673412909253066663420968737889250471357453147785185753194431834849443408111323645237493588532357374297284449888574639583697959650893691339562561608307304625782796802744466471154167693847605216565513745200132368889364558597718979641069488805425015090352224477894351989375433131023023604388223075872651959649663327870047244579541060817977903995517579207568829751785661652119861415310200302318160624591686876774049451142621590650419743722559804169544664489845736288507543950486153920976219924688767197832212447396577404453644317600681764151301651469226932708092400964181710980919061782845691006220898446834824189194552599954243996233197952209058281484626047165579748150953280404136768066548097220847515305112132836408938340876805687844028616473408956367182374548764066436703558581717921524437194872968053049341307824901312747680486056307110453195624744989835904188915955935478410660811340467032036678880929156213523379501760220169399256707264836463295109506814355973920084764508516168324499033912709342761438201966811679033240406175991511553159994073024846282611014472172334293764178888697448466178797270820251237800493846287691302158747851426352853910709135086532758545754574311312332304006741183841047346584773673992848137102752486454231828686514084957796176383392310009495141176364569833861639030154533201096918866240302591188903492447747867996772771197433148673971482322762514127162965462803476229313344975251044544164849735862961300794879911547473197796143879973039243811977380637894112662347539010350089312803383322237311676782630025009094799272643653341911090165119880968707771829782852915171487739126300755677098165761447599843101633848722238267561729019125262600053308966655969325673136016061897238939038875984323680071766196801714733075403002871641686646969270986677929634341305696847689256303088157524859685564767730596828848303299864192589160098622032716880273450894789689790878606857889431547546629583979980054133404197348820505487092798218516005265919558022276925656623310057266615108246970931864679364995025449675016326969356571454596789182685378706768235128076461559715197093895278020204874203186995202184237391966500042007498895991608734897794698558177271708151986026395914415716833810933650723967679669842237298165598950725260146312535102479948010163363559030526617504083967011573124402378086725204347379110170996994678927993360446247213179216187143352617935849050674758857730740748453168162994322060466322095132710991515063102738747699015512515015655251204117455530145254557008162500899217589727651377593814648421082153551746330202394486459143998770866264869494350026627483774132104605596981890029651711558688713743932839608571574218876041096364280960138863264292518313458073939014321315434921834624641262723899826204518439204177716394613292778438380246573371385670283039696598228037432034564583927397034634249722287989761630849889479122436691934908684137700486497684984229425781173248888577945177795527686266201275680735765140243777589026104708663892152860059715571377757754923884576170622860617154802849381109818669651831281240606420305081642620888632414671735367263199284950028135508103976961264414221272311691510958209602730516840193526844345672549218181126506215967921862509565919877487138359163940851725369700562123019256745261982326082318709711941469641269576351484951555449703058756548044370620014776622687753096443025825256435342360135099997633973219690157616342118088724671746109646654165073026391313333396458600154516901548680233477537393862180856131792921735352714835059237162508947000232519586798251378533164312374037118641044155449999250851438282296556343928533879075624944480386749536141281979440569676741405035360172674869392807070721913037464226067487358501241142048930315039542400724984197980080127767066002821487242426299286105575575273475193546449451868817737148460193735748340019021715135277950032931877835882913384712945985233392773905950010636993993245802048035214777799375263248446552075944264086893291507566987680460337548557251341404883327482634652610332784337899804669816318221537029599479455035338364222064790107172271874589291053977769320155387720734512984342525996912168515873914919073447454315464130530682373795035666945761587053727473622234778118552378357834740209485529038896916894293816140785633723944061901182588584991717600780449675060610541856408690997497478923322324665721250705779980513883300014931738272628619493884995462511096137050989967135371374772908898749420329078871918471816416000557479955999201399983934347396619042377338246575937583402538063400321571013516751688148672220964457104028845305960993888470299991329528191819087665091227894312136595648350350398264706740955296525874170013437596271870117860764254277824446290735331337817969398547612948535606472426542380989135138109194854747667760626162554525099412829624291232915281641427469534346620209585941911036702679886397590850457648687028679501000157673644588149089895829040673534389138721564425346506967853836960023072085944286017965546722867026786902546327897169129868443762054845439382975567696666024163184639304481627923625556099627077979485906040243290150098024066845449465401019056361847140878405965155003737042875248094960029986289090184154706402063487149122414967841513599388084551985089707445233456462492862704919458491224428572117871349110538195318050575935119343563712975318452137508741054783088848455378098395252715035394856022375785762740368146891423110563705336962104597057334739686955221216443418147768876124558872275737739861098271234062423466417966163716487000821244955753310515093171935642148072667827666774653361956549521328020574157346529286552215222278852349403734059239063803893526288911737785805876936354600084186963391601086060172175765421654108931957003358360759488598483841450754131224142771347789112255698950242827432472440099299244309870027887367824187809910400873754787436155815291831572832496763600410746082320873309743038945724198110818969712091360005259310084994825537174242668917627007891852761012341442565776900377181554332690709139272562469999978131675135835743585230677553235625556534470373850090385414076650706238533903459715397262640699961960325001235128505522111769471631491741113470413350259728927195848829195473745354223129722736459036984071554106422015629094929128457265956991708311637823513841331851404233551349107337408746167220252550086935504133498613248651297831679404187854919374574418219570389155862042451269035212287223784312211151134057101550691989221471976453575518032385229275173745525101012378039143628364456619610043650740658046554016629772373910783824443106800804703605223918836880122914533146748776209767574608687305399557791631911403977526985539140335635847411033271411235746777236746867845729443890088781650813161413864397871370748258832181006832515179819348153180007101555050344231803585627000907153719457536991034243494017866105647612385154221103224393827795157745831303544205025099604916712771389532072522872923664408634334454052979764898272824025458201207165275576774710609202361294026702611999964237029650310961721511575716358319678931518444656775433940983465966437017170917809124106117303994348686424469813266162447466183700621560684526196127129863708349439569124404278610361818889633264326788093282031387398009628506727126526659824450993259096154767677780692441031244516946567074716165056155608518670964190722946231233276095606903799875029942683320911837660146967440846892307901026776437846201687619034908272256782990256949769617651764500117382386734868991917293173109244571690856509894648061176343944110013086523311882660947937969090979842925497728792036019551937528062462215522962086374205404983932619242110650700511698241916439696723336670734156208137011827175103169468017880468409570845976623384905056544628580521328050905285352390236436093572142717785512144654384049917347092038655211609493039073704144930630669630134622792645140371305241691772010425235842343162059891938572565327513171596585615451841366688253982161599603009426871633656716471855104093812549933481092838594056921098866142355486428403684173168978783824885323372444302604852261340422888889031564214707932635776339541515633340554963898645692672825408271365051660623207500471700534950021150808373846714910696672004716722203583984949455528099583396879980165944814502461896292419625662871499931032847864477829432078882653505491631191660544188797712066122552337248433224628466718069573957826609920337182583411520939202611175755023155892504335743875223192221138158526876336538980701691279278041063174699162833725374667667122682447079935594400569203628368088176775643646811989860592332853742355009479667002001983196993181959136684086587820604901667784691620614689937064840881504488081969495955055707117126440659570232641781598965138671505548512393707876302160333555118415401898396206866479567998805972022892991974222740080842432898790270447095859223827801214184500663703142955366949999891930311470407800966062361960747528162787069974232689678635956206141917706975113165221818746428790512653712275859904355182242771559979114523962079400187912196559540454698148678789249222041723417953797233994990447945264400659463860799732559515486110018327613281148685306965642092628041586464127824025007293179540487652799195417450542227601803748526137605846197505590561427822991757372400149878986829998037247106672623335404146093023124259432133697031521148901773917536265874251551754656269577900504938959957082835505252390943321950497616923486521668503511646641560097546540610565257407531000827677913143746606779964730844257641747133374915337361424786413271758498439236466481938038228308612739039043573945632715089053669130797018281212042832163647535097735848410971711668437376684414327574000628942125263196655651724866659020665270390336533256100022651557056577727695993451744238222794068539481634915499464078011097952277095997098264236995425613117860344579037855887528156869061877122702754553086315341707691547751759802017914697715058381695741597491742049195620554762182802141828083145102774654123326246031837951233256704607950248208579360873220937271812018796311098028928968554951907175057246251279054009306430284604733780007643885249279024547165152369047239109321831370277959859500066512390531887683306819307255035545543684310062827367093562653181488135421715491437746262297862998716704485800100886998602078252190834533448950995545378221472144875561699647353494221451808217488810095064969594740655522711498234132726674636064602086819669779175602940711817987265533604182762869170367228369514194492969259309630848064283870212596228854603819912011334050970534232752100922877440453170520809891616770326220368092635408424979489933064450521611093403389698358335538592212892841688397382248232686459280825633097113678854664690768902892173762815908246372330427985596218005658560210459038741537765012520231398374211478350305394979484932183341808784614411275601326941960312460226203255215851493262013149495833007581402875340721644705619364732055731804390897567803086169247490951434015566774480601962402780584564595203471997499412582598580585546123981234468477104572777331021418694693600166270218843858144085002729015933382450534649681829765423145069690278018258280597272814362813029333851509182229351303116280465925433840932074791394192618459301658735930429098211301947477198892311752501096739748988215931564286604551390464456419970133547011673636242236216857614539949770506322190507913959240244164146037212190088726733654076816013044255001045214313702917151976795827232188410662523291653688548310173784911030039228228710323559996065970149074064372480336825182624571263362318687652909086431997815417932393668146793671172642676995184659645910345013284723492357391276388144437813419218189521122772539760348809014338918538836912358257390705393107526230337452848665108561631276388845438320061591981363485865911088549749456817311887344392610957802978018536465783313737384560778001645184593324136680522218892807732859802752266569396944617230639704459175116040154380480561039079827599659005097969540427034263296118963280578471509395943380872861907304570939495288934298995887242788111608498070652477193590312402177560491806566593741491040685942874072830122992250322434101614017303377007029294602247079351869677838580859972237815871357391485307930058052549146900663844626543409141926026045226028465468323221493382598604198532667355301605962667822998988127739400629979553563876971415858017190596922746137136504394826959858118364688349754825551376880291584123980361972160276975069052722260902032105898829650937960857105525914359828559875943308049083728244432410133988292015428362504887994505576050698244918006587902641457802318694471737054227235609429051082205173495266050858294430280248838570979867641916359305209076714777178598212473561770226851470000190067710190621535456544306707627003489281504068256261585212990101265144052780801261189809054429423664837880240577974410651039816740835081763080329594817774232909118280912807274645542552831886287892734461040630524486806399811352933202371344150659001517174734911651702225325693641232087777039237309864473326566499080056707304125407674682068607753234409322126926337836995590853195038452724557940725266987010884653296609727774185699490695168657608755660523405235689496059889959558787015347135609065232314652571572857034422027829368064074574474002862096461748982028943301124147862572715155946853848439772776546494739077384014379826785183772197475329675191215293822453824235597564238494742801835622484721442175710006267308612663678582229409837965182625115116833874545329569764416421119415686231524066425070991386370790859212143453201054973131455160705370354512137328424139938166724572240937739891218713284701666480366498708332652241436301175661537045838636412777771848889304739793680477317470229446209499363222384847774804454603765312645104662435117866816328046689688427583689439034205352266272565274822242385679310131021464964930334568078311495158100850577497563410383347244660877674019525439361502385930130549768563883040343132223874717365185303781540202901770317123786767622933324451455193090270680240892385432942354801144081203333995590913943464838045303797926299965970219899618204360162971957331151725012189683273768509979889038905121208040064816528944500126054840803930231918791494211812840808927129355995582665084671386973974893477127079061603432632646504948057371830994811973736561031293830414423398616327435759274192557142358443096463642117597899744602606197619481277078435193223853964844739658447826582878682578180351412114868323905591692745405846958584015923211160564051777909000139436341374986552767601676725981971439099317376016685220760180431375774221414072533196829601199341763106495796713772992090509303695429621193446643321856730720013357421949151210723156108628305008769087721535795808926185660688055776483790080063675530682552892449653966149535772591680980887937737895627003584846255710815259011160446951481981310913806509291031311563987840212249457944124762699567573679403714926369757583578634683095670412463982784094398123742778807458543641059430536969264630534818590252356451815406406238124349848186390736068177440886855397691659507448422308277982782354123607560537745540645073620941974541145029962257221503896251624156148197569903314005960611495544285000102277614857089158753305259607143478310793049351205456948817829936112937933958318570299822049349704915280211898512320460887711460776741247996640963592848486462720853478123356051859129316394301937503761897795214033746511927738091771859403339924780727871144270097003677390592138417678548345398688542778963677510943362863639419920167196471389798888150161048551259894358261442418120347378158707942611046185231177173845346693741137603293524138296520495145418301334970977967420092278933635997333888138856993959326320736107345873597628835911568591135170364106579406857276401538407232716393790252704701660797702461742396369052066803949927228803926751584498759596816282933514978462569297505070637430669973408613384251437835868285121372143019821349560266313861677330218837103289530576654637826760657932512400220973761072429699407849886756604703550094992324412420616566665564273446896808150634764034082026906720853497541140666989620022653554587281503271725138241098551378155519769633779738048389665533588252425104493566493496161459658490568622666152757753968342364328738185580726362818067473400401421017095884258195812655274070946674210736341090477410168775214151660855829490611416573516020883379513216433758950272004046352784461884334380895351467819230232288492056179598905275470045353878852575494819828526499459363286523394337615451941022404899034530847809034589679270574160785475269051839882183369415144241622783886457491233858308635260567906448332725772920658611739709052984468272245163552315926292405208992532792571525192667639660786790670703065061865138894881002307016475171766659808653300421151465949735272190254012619156734852023751640481274157071079274376187158956226199970299597564117200719607925101280645186406837702444267020133895860729577705572684461059485959584823343018259358688356365704145940145687632185166197476065006572453339756832251137836509160294131630990667687673593497396143535639269939103704736572227203233006594118400460505238644606743527919640770542472418147557883681459845019526134381372130839152277992932184519189989394958030389235750819276656638485576926595164492197958686360082386762683179633936205105581503843669142400018041470951525694002221141457397344517183679568544113318108894388746706242769480273323620931841469040780437881414485478971613441379155778267903882007226199570808006567390967229785456894761221026786799264176172220802103069380058084327187823160489243430393745341249539236068838112784540819626653639044298528980988256589310958244662435719268064906822656652495593701901765250502715765327722761566219346282672658917736139141003287443144312925347105457913183426093694137704721508132749492941230933986700577387075950010752823850738159365824659226460819212603625433133606181533748725009539560078467626212193241450216447240068854988848450947996343717979362187099603869360755294322608843468880641904210962832038274517560282023461879004108575320701639879525055480678575704353289725925310111931636265464960496338111508941246671712841216991596367053856211702858847281320082958599141086887186094273456142015257923559109692133242763653478632197743851023768364076255777021895716139046986209457882156122365218476082778680013645110293758422656740648032265589838813497470218558886182881318090549317990379892372055412170008831770052702497817106685642078480638524292226554925049650436714532659633075903614609828277321925889918895562769491434938949271715328881133993087580939061274781034866587138809048776609597059468020615353920900680764531575041953731052945585634235999179817204813343612717702917921563305322229052555053947018858751254325462494169561049706209973028291865249871126306034672218429271193281238043005031950561880013237942235254837013925187955264597309114879383223569930251502580283836072163979196310567204837048010892785159500847941166054495369545449505943463741669533922654936063536027970082445194487960947526953300500788256885160193900173954179640312640312374611433939700641191117045129894382878282599599918735100098670240340599815362031576059857359901510815535878827926563389007482559045058615091185621546552859495009517478409208255306385994515797360751440279791247286580859421125857807548810378010156928056915891043204299144676645191783553982208643703970641782435486563976651362005324678141336308390163366784182904025489906891109963288427925656952000199338856106918382221671539384112348249230087043627914869003975742742006002441868088243785512240659400719034576987248632981332125897669739437610702742217248936370169275034779445414714181909371191460270331538297036539665721079538641211848328112759042855533841456078746558338729853100972573933555759850477993250206178005687891278144564239004135642520333700882632919218208948342785837227726602233958751377928950576292497321917331449594028985870140760950474937617500123860251326783656912154538471079404177203428254446837007169416672262947841558412236963027355595595799896394753448475498171656406292265602828085807117011901984262400993466784896432042055685407130602295643923625114996626327871741111510345856122997725141343455331445809386322758219354252038408281984457666369768056931501413577204708590659384556402349006334844489645066345619111671324303284579682106789714665470135260148996572186052501576045505667778435575830122265000200602351721761396340556820396584697074392897595723692789323330155811405768357717254472551316771143115952401530820067761685543237793812390314185266664644411451583471882187221535777496736031892871221925374240867693359542276385768050756805594230952075317964502765768669781742251408154085877318676657671722884004509432127623945561244340891146011331108622990302823910917760555072574561498863620901504190763973739470436941183231994572060978009296157293322052494846475674851584012200726571502011184215641363989332268291610425683845692432084556714780585696111916746507686373736506165379850532118639560829610272049691768717210706773670390484933701254194910648793039151510355375062611752558777059327700671016272183146985044823414638971632634096507559492313418437549102685891583293189708496860431820709060805356628756243163178465499537238390592432808458672522649203475742960152535169608501044401364025909980356496306687366755713342051764379891879458512625967065789978487285835414292320739997247716989044013894438304638067756207714428338150838981499081800706334833485243098356863598498055729482185642132674973248860616152456637251304433399369886201129076232381263221088955068474430435896914568293935025343047697859165125607337219087707377669316197800808190736872928873140742739035693534352873600717502045389703778005072115911406613864807231926800968260681986751992365370064837952668476280422826498304971036024195547234867609016978188903373716614465170693197906496216731267494710889328672857327007513586294484606018744365178889565444513274218947461906962702593211395797230187512473901443298653319839035873515863646704984880216500732593103047223041322189690132515835646145249351427386560289908274440227171005515508878826920561775977365552684333899461004079943347476681612463442004807379040512851517393605411700985915360209429498592769782428092261471950284304999086526057668347678808397080297360031153869443151345980045149826445676586174286923673613950917815501769120035999892355876449810979510561803339064440224893498918051657347550911079571703409300423293832890533090793772503803780736619882583332979882892960773685173338315066990858717724638950715611945608886915489731371601473153102641539307743698748496842702866093717221893446447960755919862344228570475884876536862089284144352202343368971951646034219541678437021370593226974491129612065127714238220739988338072490318101231554921327307303729800936160041113487157119284288973948743037818778015286098368130746302451085103694573477824792502522812337951639522365327618745495022015971024171499130601055850840144122837868767137870835600825887358445253087795796962267707167511208324887090705470248574486379453284588120001297483440334954352726180117652402098120155741508666945774797710328982804351844250122008513412191166656991123715884188627933774629939107549519826734654322366954960916828969856377103615244829842692534226382403516052054809029714035678899652048211081476591819917362979284797356034349298653155266189035287164237014358175896477242208545407976686231351864329029825425907756245180559586493829214661803732635503175357111947606832164997606320579125507197465050551335106388775107590275670913127591040918471869490351300581497019107461351035280367788096674814223321540526368804218046598787744840312516672555267531024899516897931007159434786523616291042018325589928329364041596102785772307840001679117821551486333188252227760130234584661608249008209933845380855461968443086356973934492124884841738909105005973212299265851004369663248049974434553218201097439818551036190592754264059503522062860110996812579772080578054428312373545541390894160954796713336971110573416409276630443414396590250768902954527599464608887838823132106817619757673875248504890257936412941057977992940984259888981090677086850497137294507707384247849935727709422267419403710086775911943022810872467210526973784546025496206859911816520033732017377012360795466473246251614889048783478555540422243363055886952280485472943644512876801143472849946090247263757443745202042334373435572284727054087123644378966675228086374050679799028436251426724325449221283891425671253569077807848463612264270001103142985373020273759584180208816139224866824877335800653116843397532278264470451574856365318379659213019798365985007141089316935761378865461152955725404497599794117225875031748271685089191649515587334632588467711886545490673887262286616748861664139990629513206651733288336742719260047084753263064744029885288277081176656785294851603377248621639745642557617645936052713161765530613428184215653744243978666349285992312658254243773656131197786534137765463415826987613995259543815186993215185460718390954960504978644995079414779585966445188882263323451847726003701118092363796850384699698800893074352034639789245636156949448992984637189442314178555763972699153407537152776882860702647073217113668049651564239848621787413590667685630955880016347886085942853315549545832029487141167326835365511770293197535144164481433980201218021516950350834873306794174498397082195548710718303308845981840565271380896725099676669791040821582066898396530681433539342988023977760368614684573087401267410268868574314906468428075463773092684387445471507257942172273108872854784301774043554400051037282408199176831936693975085894587701095529011797747814642776708013858839293610842732754195250637936779752722456496371896880805238984252974424645363861084419140323462652983234815576385916646440435746919313182882932566633895174486477444185011904319039158419884170426286997268598130158655606588211348580756527331995695320589799330132337923457772361688542344626102422296425294428373553075262960732395593253910903688015644064154745222408328635923570707146935632222982172967608467510829220186318576042540262759718355939092193357535266654111022628623353575557631372635860195597432934941041876158200962798578152068082368512516786565975799221791364764567208452202053085677636995048414616473593464562366798700767188041575641971723668025816217492658817784969840434815317699102473540627936438667653386649773459332570372024723955356254206823346074044851493165785233991241116081444196100738233766040552931782510276460132915703492515457453726127847970735725501991712946394627464231664140878718872036045525186894419401193609990104205614510773772521322425464376643982188320596702201860868774462338814503280164670837775774313414669268133422679025717460893335803827221144516465599407573294446054585580767323700409643132592656196939721541112869007542703106018440619395717131559158370191222550280140737618562183798173732488434301404810803979492051760758912973325028383648792777028266608143590449930502008861443454533848590418599158692267224961694908940333034538037622869262084362616177011779748197832574829836337212942289327209651484377669754897906779792024358996991540706590216708356257652615945537491231760024157373050271647251789188869472643268737984912167519990168690558882039612902362544149549278224164094305634152277787846521295596406351137909570373690975610377132925882726779028656170707283955954196695617846065564138968938079238469948295627939231212831715546426743184516183566963252591694906698193530629379169081648065771857090433662812511691313709334674173013572467206236493675285299772483392463210614983010854569220394028392207314773645182687118773919907523744368248331586016188469679713133228571163032678075160078565925522944216167542354912596606798642952853971008168807655121209722633910849763281828493618020370732851764337257596982413763214226615727687315258544974914638657883636691090529936598858211621815269834966447695338131962085711256289292479507771206831552537319743613230483870742901195526318610320605394351636875785918794506694935018392252849559057230078641372392689810004323967617791613308313676690785649093935003175647582239466299419524770450542121299217536165001522752741602995568027409554564670998996475878322867018280116488861628438204122562803176842153853498551458498625883856405309737250588265998228379206302812280428499379038776450550329063797051679130194341533779726703663872104831551476798388916579876770661315435413101033757513667530990086513061088184080209593248180411743593891861074752444099123588081349950063917176494039460102097497382356277019344644366189458921110827153541834414437454056142684977507783438305381247430576488328164940097023004486750596856383913154548502360439095222413116477440104816437037662040848500658979505667607538387691909632593783237735516290940431078409209936903755809401684061612810428089861179254811562944962160160767744117187635795062615892241091932171667365402751870236288467651228775778122141682407179618164649022426285087348653265731534474154391310503951732634582449131540417304996900636728920283756037867854239096086254770389070713464646985345204932692879539397079887984461315925779553937092080213654632680093169499297297120311083231572317940818698666416750713503025899424170709148918969242566128779369583264093296073341499055782820120500865251345617928721604113837191951639827534563544554157719390510279079305257373504771178286727881732177154280056189146329700333430738763597127248659960391086652249748103182685045106621366238786186419400687817990205561293391619065814694049394980971358771002141942020508513310020026902433604924654972444786632018468510575195690141228880899214926172753052558704929569119230844893389116795630865244097591980370212853362172409722343979914622893734837988269174301140600602842407380932266723709227585836760837025853174745220730438848982882820487681198723910363808263513431339214875976503168683802569186322659956263047909382555260706843736887638569438946307556273314423857101259449241295259312298065290206647379679595177174151201717565715596032468030322999006483687238445940918843084076207481107257709132047832418651256142211310787470866768174685543178708749320214082958768000474394916433419521377287732014720029053541542109811242244589588676896068077059140179939785271790126329089202233878555990229892936407309716018551523580310688037141873126304432610407882907339681694226567884720931153236751525925522058755199675726076085246265611626209123986407253223665609825484706038803115327703567644876116191337229081203545858552849244599853206054872397769416530547519528649906052250774786560961223288298476598800586681215495769485480901304918818222319145838295112123212897127908895717587603576993922816328291460148466664651089885333271137738896262688913845936744696158774490848026138417642214991069840833108805884544985289126523348031053362225723778161577956374074953865400457623769577473274916556665532241890171240347876580749841273763354485506502984419114252326986132764766167818835968418168261684692395940518789443551593367733772905541731585404119464902080383945061563845461334577072887316829585056554958598467636970775408833880898728973889725338998557264484721961542320700878372190835936529186778332479089924911258212703322485759332861547686873876349244209796420358220497490765850232683873506476910855028187277956136429185978994861858915177395046913269243865678333795720469957849058097186330081128670251067409079107398932739770371167027627388441056494062782790531697069767365738054335934401014096611074648754577208686395308574387387233580818669353040747210781424367962733357881430780337079849698331772889122517421781611929479933123048182684234721620330132584126167241195527093598759168033835056064169829748734526809159069288427546307829149831714160191706211159293988234824963030315797667170972875583162240674485260812172599475713886090611298274493509737590986635712237148692553401751823920800149247045537907487980172558976873315667898135445800634468078169767035914368412760619020960909150815526347857166017559788838657751355230904025840617480733503142410562903492867229759390169823514620692339234742761291427726457596733486239558020640668499008743290760317056370595586097564295963495129730334202156688538289419492039676505954969975295957009512985830741353216796967829994427195012966195625379706117737200985129173361411578163283046288735042051097244543392581027193210685576951002016066768461269562084146332796050163940849067922983269698582238312845190631433021778340831304326566259760567266759550750526795427050096598547482015778640293571416333743506865077947681623512519266072603960800672947691595112125827676753206903202539845293445235060788507968264313247971201920608007956270196052966281391803138051054657229637227869498409812350930261220263547641757272384719152434077016650305721494967762390050364059861672505616645474999459431599406159231547760618317977668466406762514835460295184379530760959129942969174639621248614430037180739564662934512000295759059026910264621317824541432808647811192758345252176613990901397284967974987936465793670710937824328394681762769253014376925933851862159486532468414849675708507053224650232161748073789700515462477701777504342128469373197810650099637292773759289511310577997561622357546939664356063833790461832217659234657069925158736793867688244554422036190876082013923292233129648060793854978027544691401238088951308988320783575109742618226279317568818018764124959063054697449589319199709955147679361865877314331048737254347427399325435523806580419636489618702095529930257257042049723838192468548545710763109471029813722600171114799464869185968405016894617108455392424206549939784771294890747890320739252830218651354283840340996442377149091324672449382332159477423808385096536044487385032116496515520479754372596906980661592698521163485896888994457958483897921234452490593119548009800016403798515804082398507915866709389538642226376710801409787501935500536849166403380552712624224741858995833097994734919021699551768431076193519830862482818450927793933222411794733238775421898550187600015226024400264018489800262121509875366889815076474711194109466742033394414704500426795904900234080557178686852565367543578451981696763109782855023716951483281341693971952183742412816972859183898112466387935642104419356151212889063985444320148513637105889599909346945468709735727940939780091021990893337128245560168425466388644337778040255206866169697590267653339418282913964123168917745971727974283687535552259678779468114820265542912949879612809265775765877084333454842094950431603907534221950119273078398554788946323099645943467040297102521458663932070882379139353757729714553370479031539069854866570717551615000938778546483376528780900495991614807205444441271899897296315078856698533747280599625027488203503439595288905280500689115347807289311981675736885732119419037615168405559601696015966698994884967088403890136824340901043740175131971875125878206383791372708094819472442663411984530061743065255309701151289841527007817035060324639983406818173958863981863898854158174879152465832894471431854924515475513886452524694668168634907927726325597487851545986034438658462610050413511891272951661539565426503631832551434737943272529980293045295620859687968486976810884534582034301314169599010777214633283374576959763924494275983504282403749776472591862296448955981250555556226034437447186960211122633094845629651167039266376266357471766095736635781521461901803663678380856089756789069619773576927416413633733094029487053683171475942952569178539947724649422460921856899119472468613035466143839969563864948871711366102877197147592351457500408166146513646069680936944537629234753904566640584519210219264794350609896894229413349367944851202541892647452414221397091112300053308931118286623359480622706668971333982624004296435325050307300647424361357477472089291591016958652862740208291794672244850632881269356682813413858530530352245716255494981158516591527745043389562288236308742011122354436377952370380820869414833804568612614583760620654663688123977379733987827487296201313799230056056337446561602450240610955963914758845610396735045443812871598247840566172991673623072284865061659809826340425661152850709934608005963812313251257752388909125932301256428367632269768229849713899068140330734377229650009883723719611113321066951535931773471843114384605014580081523312977653195885157073543499538501065711517579568966142608878528601819297305828175346473455639694524822321070881382092663538838376438930010635586116015910092423073671800596636400559954180343158401022768190346538448322673021902866642576205251940640835794568947373151613625741285264964915204504496587042606784788893200787628528273194545479536414864309464328152206538952153067464963515333336856286357868851488773293750365181955370926381349910573752119481355556334892352907758376827949392386380847818153421532610068055229282813757214145933618564073042484058212826290139637971582251860678725292895767910083976579844843320763488147209068166663719044856217522806242712009952174505086827090788474150188747666064518160576893452564410137770495507017010979279966275831660373634804654504747532257636109031963207238774407820276715522045693156499756256321299064507691021924841806831725461911077021053813038493535487170752733604473129685382640406547528591722226092925367641319717460873464148563493459588279756698314859111829541144091021398987248712364799107332521429008185919289707373663519576883013211091405067686205531562030237065317741034196446692758668175852905906125073412832380380249005006357179664734794832071879470519433787145769876157229641227973790374386174479355806396854574418437666311645951968132025735787085483039844480980098865215955367197925061077208323060763121839138497867787643021398381885991971412699757668230358975380714319688947260865805397581759140917589638761314374969403204514700688712785908480831511546890706651309779083480736114968813009423330119194896021893277828949953858970851087176971729435257815280359910468031257134005166274951145019476359316037637649780240926707024716955964301271452773117841252930261016318531765397505092207878961171056256414741113109644984233208304012207404989382489064998430711224366340319860724315415664206056028502726183678219607007791708171944008499630663010457587031308071809012709553737637074577393695431317782565552107127568242279336611738720302427939804096165976202349965675900286701044040979053738870357208922589434368108662438698331276934926879753919896974602919755439117505624206528263763979924013223587062430592893970322481203456541330656418844725845826083346375658006522533824360008063654646220073954488095466741547368340513638158467478949537681743785759732772355076612404925800793595612255411977543421371067019296414529780473079090964012775414619848192724877712156480262477429350438362360831775274741845249549087880504931999371931783475792154111375976501971312379106168118141734158056910177802151936234288729923566384585174859464480719213449686586624724524070496073969701218207712837608117877162666768012038781957207334923915936570574126220379251685264636447488126581889281589007461835826980164278111436163605084837227396493475710573178237850399146153449449875975792544046757721482822496977707112153188165566333554023515243490983953977447993887554102789431713513192456049941903653830689444497884296455316126292675663118606838368346025105995286177183365760996905508850546594994578507866034422813381700597562988629080117346829281940567364437723862175757553949431284090300682426973603521885827224149120075217800143237133814212398179309125592232973185533779797474023631487522228410252695699125895683804452815907721083006715594998382075673943933575224414422297931804355750382803994668139579359075383746289946358415322100525428512746546631612106660695471374181686035419260497098107833341476743100747459009881705753996397692522750871772589827940002136908803434151405636708775996092188803243121346194322899539387949299215369180671932688115744315181702683256627286939815322471038204407658747630247420498077256277983840621174320483336249346235001276837541145112387831800657293274864052006525252772574782165912767752257654554051366725294076805000200989071635578571075456800355577573913232489284270607253481637700502882778540367085015805303521582690588699587406314461363829247982625714671124861318468096654085693823165923412285510613367911144846672580396710706825025127283309939659732825878575209755247120576198204960675162920427136534404426232430513638300340612981539245375127132341854098924565942565600989661408470217096493341553452914380204407244749373555244417466102137193982662505118833256411320049120452330880732826676606154600794707588264180613696024896433273974406436193366946544802778732635795865830913313657116225671404081361037092355339449143840329550215312636371395285188112363327946070243146981691492485912367652738805667759370161919566285639518226348211443954862205982684678470620062583423582759279677494910849374495153075450330221864526920907083905279206634733916133925515687842838860630369155797329314699948641454909780927088367097699838760026127747273704236477692951808063763609515609799710457121936063684786734393082449379089854374377121701469092276148159659445242181597285652282221469199769898241838497483626781399627710397292574076857832365220442343781396891513074305635222561336143174974094754758322178099236033715676593790098133755650959849774909890842855717022632417690887816391905590150177009500922610791371911973134442222817062959702127943208756377255415191149792221413651745593909116996793501436411796125867955009640183411895544822233638700197209690301686256657109092905524345660192539501284428583775165081377304830248416757242592226018069763436001305358949939866182527483059068391327939524809814734051163759670070508658018591733988292387685178865574605236309630443729629910840137003513531785231657384774474390808188632207570468078557330756278616369636020594189259171845129511213900873444819993423535697462600065443506681590413724039078186944561194898070194851038487455963595256500139191999530301844526671454607238256265274127581428448396344034172849741186126401234983560129803250797712824635937798716091107898469223808963035905337386883654561656721257859762235613344251634056226459431255237519477507781721958739747454114808084833242118839468301799625574096306210875878430552284009417158657996938753602383470986455099930096187315172923982801442811587867535066405419577485983877495057846885753329370049284583495448627499200025898777608908910520966042893378907869123245626933363847819930176244566267589512182201954184983917938505530994321229922786149702231811852497940757949043840985128809597731198101514820537307755777871056243109865951819253987833305413546697354718417074520332717071949945689281701263744967596983873314131821512329157771567883421780736713728372097120126953619325136072041786739798465778056122382330723700722214364035057249458501024924723526072620799636191421374329191808603015297879749564430423552956492750378420924316586374491968871377427942451631001353477384028519698609182981326040908416553915286845214520437715192195268760357935246518625562055122216745959528472658884119769475310375246219697246310082046724621682866843890554084593549553205961379275892422247629940561554745625485062514932702281804793224855003741357009969551593874414824260090454274395586633395211334957476042514251340026476883927550368088963274733715081463660598790735003192009032280400797309313561660988149029352833411848797337457795951832021935132309254420232097976607154590241416272838376770292327882608113000811078059238482747574031168676754264161508953102475796522600384959275645950645907820979858864320434620634942644180229495132807059410813864710828104142180114411617588448525649466700030303736234319280863208775992278759272982247578626881594902429890825769360706786356437659209717871107751145261490263837290307333530611551527908468351696985540863674185300999613160484854326715078277520495997111678195898038599799610990976705299086101120430992185141096888238579582054308240109826515573780734942071951254831389818977486838956942764248855969856318072772745673215995742003520730791003132933174772300882306535990480823701770714057396092430351403324013969665503066419546393053942297498879862803383531669210342034451187022403367734459802681578625818703513544581417510800301996634816199361616702600475322981700753316705057329914569670295967885448984816117854106447951464044703662996232353487045128718391982573734871814179234594444890593529483053255720116440203997998535297941587951389143060010777751127064459505903090831179242521982792398327659422623849559944381330483219842104452835873558240353593983342714225026540972632652062789381967920724110261387155950228227840572584425206257027394288353410552346868933691172656116908825711072945007795272962281751077045087400373536879572410453889835748545875480758203174860824579675547301158202549858041045208073399503989600825326998954884612772959522392719763653960118898569249644665029137124607087421119669994204444270460679386772461359170136063264477380111680345364256077818913510266898571621386713365576472557874738271695113945816884547127595883233574080540191118484149421480440436057596961214167741493562176043561421267303504657609328204413642772196745441039594192495459064237616995354519299953087834823887070472660393499560321452096731139529591308170049010901077899774770366512047670780941996783126393133601980777330161068524541262775710091664401447515382435198526735544056201523596542906239801539893768371738974505270068551537981220572805630949581659992247730530365894933668702921842765697769932325831368759161428000816731551455346806146403370495258594203314959654974525724119095726554597743677280104363744366856026944707698210289498147924866158259304945632820837336487476237048091639550984560690152517235514945741949813938541934279711723312805261661822948654415686266108213678043783243663375769332679375127343157547638597695542704618002552492678241808845394778638892706761099573264668303654176510475799640697023022192833412427059661247568949931978647566113909065434221499478314430841101275673615473177403779221610883204901977542320905888521062991191623249029434243519877140164861963647463153750078419392182012875911018189373219835014327777387197548487334737011193541678904906769786194595772742619196944817376280046726588803716770623704940551720148484818468867809685530382170923347957401111101918577215790750748696597933614344812173694042289296590090362362035842064966954524280985188419815497360548711976523494645607147024632891953798701814026005201001023376628834611803143032756931664935057946210402624782568291592631388913949154803712972066737955404076068418745588135647291483702143801391866990370117163674518106641589622989951022472449524219250344433269092343319939158258770160041924215658149491148735100678170111070440465921063324664217456178384592667653260831499059059010315805774461541473731650895419919551323616994575306775163030295067721795629646536161595693162104934408644633686101345167000840488580879395701080458906753504985130887893937551989687399965224195347568367400568873614736635352224897942037727703855509673745861016507202604385981655465574400416047426378493189641661513243814363034449658247410141659271276353138424659562938587359782915361419155006022077247314393353481193187944304901410703399257790260791927334593469867418367262910807081607513283347824875198640727408562066743784527938633231328442321643735450525953350778153700698829983219664845106111199583267733774434227529106511425086338759636616694044392188764025262402649834484185252278353042624978246669116496719633767364495484084067528218894665737157892030352684227197899180491744967999353744511818692691054285332323351624885092107979497226736433065427434829653647873242653827415396542354619584749717120418472724812796479494763369776302576020253269806909169663299957060415348716387431611518612104227794821155037960015871236924135647775424589622195849659318427053772308401333124073370535258251420875473664477772887445379194236330187412451828704713036755055580334824390997889644012053467619106167424119663309967321638900696570087557775706184281180403606108791913648403181441422022797312166817477003647070642139260726069923456346614719238154150974043570919852543701858423667717051858359471500895904371429779573140449032801938386888873025135191018493287322637415937856554389497904993085997157857161707782068230462094130271765045196251260191293723000834360960921006153741448239393074334596083252748388560457978602170634267130609236370880118112103345825588811856910258430116541971953399803477095829431930629132431469449343262302580859803255711367445539253835337659513019172096270190843219341969489310917324928687520909590931733585687829257480886797511963939715860177573617274614409461469260618679614030525440076182103067691922105650171878142715361903302738437996599159372776556209577332531421312934763466021096828666493259477499806018171203470230580646961592987246782506576582521059551296842062462401440240936812400079022600239750805117450540063927684239477271716353373913058331408514533459426687350542062783729136113575554560816240172484101979191362170062564787542441277346274203970656711112932575220816340500611355128010741223791283920661727585802368438711834573209033094101405892576411642284737359316544948004213284218274693709516342493114153278631800339906959224862589702216783559166138538348588828390682245538105356051852431471085022130379453864881524238078222634035538583950851772575437896035437717558233520215179287007672368580835854719135215995941655130921748611345501648980631531286132732156222313800928287550216737359758183483742664298583119383674891317120669206185329252934693413119232394134661396324930528640249931477730012442730012466687997467037614303222191228122544310886003614245060849344759160121177001824374312987296292574974005563841744197289793902460133490912668445520103533261312739290769620706494308959947376412283002730341318165704106870079704118885588059159294174076635148466031459284917312932908856836323347138135097524592954492266957047169562362681116570199598045112608498335300354473455147570019415135529201018102468345501377973759727747415304373272051723968581174930114457926877271764354194248811505735550092937983940820152561545097395154353014478597304317862202721251010564509267115313642807736924568493240547638032201038402639464239889796520180056036814913087171983881545623123240988976844406600373436483863734016260889937368301840536093443772726789258446242488146861277027285192903664700899878044832806735624901385508977784661447818476869650507738422804216910745897021513514857331340542378425641531024204071106852149739967800003131316579046438933795502517308003521163928393028602392187960475276904168505153905047180644398744255042625982768903202489078205942253145738049476216611144463760023189066816415165862864888318547384545317612269848273997387995089481972112015136251140801246433586090342386020713154155974139485915142502646160366747143955341362273594306576955949435917959136355692477212843402412712326036376004847811183503012979838153846142732778204220561339688960272223793586126357288520940769509797395982579410937933097808069104833742949227857933261694712726909924192176799955632692740261475552434786491366232131445685807099400087339736950059751392163460460907332839466714510976242003180393719110499287351449555979474174773333883320593002490266754491474288685808418359512328706556770464892727337838131274664900054652282450558768171717612721412758052261378424909160303669714358975238203182054672530550656192895105528840880464735046137046351602964112655207188571938254290898504140296648741086083352256732890544374121178639071823358751832548923477446787157776195005764483490840157424122776317645006965244066876400092252205035064233469261611991256029675401302424459582972470144480785427082419323961001588427551835703030652077667386482597803111808145546525877862798227053780586372985401981102479356734191177910286647751300448030534045831852521433263149865255188269155568273451480183182514526332954163358936730032935625527403922308992043031286036564777183681081254343232158419905345010309307410170658916202852094538362179747113878992367414135287064399789580246662851822640237693093532596492614858518294631254219352738874354803542309306379540623360409085694029886468112407014302377434542507060575098043192413168146104013491755883367666462676231969387661451479938887894799269012580308947363231444275463331393676768371746269781383865235181852229519985940356801248261074859750599320014130444262502985814710169787649528445769546111635681425670356783606622543087710417983241813237581622080269389549536407829756317636616972667148319422095123014975899268167513109627490752521304503351254527369321441046344140783988585426522020768858486326093500342387393857731940551052192924350959899563415953660670275154492480964318801464537844857064386253463307688059742202400913493994834963949886078098138561190957014380027207942473041289884685268330973674634888053034063183603985586977247497995582064636080158276881609944751095017265299072054816264832454120119861004459604987327591602211785195364802258622286424471997478239870369459605254342351028827747173826027039850149019115881039434369567125385261435458476555828015249921435221929981535070367128229534271344757093817275291449763116547583097479314851218927501399750678641842820914318760561046169295526867538856246035533183753721374521657147068251767397128460335638603308760669620468006480186895218312896474377788043276576689475748544014179404257817060224520062753666910851579770341262812289660668653621141745173675478824919920076237634976536200523774462214350361152053793269481689623591907555854527494753605113403539346276639490930969579556913875502157588311339423240738039044012951699100749232697307891819885830615063464391676845908880787796534972342619253505692533998227712711535475191064841179194829633836963760915948060223920100266095439586603526815436695401260663127859509107074598166368558893232473660254081431230017079015294575240836300316728141864283935773344765002035772473117081841643091115051578972504275502085659356147350622522405194632494723351533335294739376686994650141676281555582089632037287257640258124979961188828536533700259605386614289111828484664910280726912645724097853978632257158612945974271067275978512298715370603274135248717300321902818454948809115438836071351224325916244977104639473221110237311450356171497578438177139810372711831573277339550175395882509772590722573351381525782378461689497712010018985538225826119427323219943828876805792229818920627414917950250501290048649559127527721729905343082789869465171155348581657935354211037013386372839430138369458607097716428855673236782478272000051206214313354312755202701987813310157342422666552809350833786351875304564902345323830146619700126999809421525476724327333944835437618762276789108115566566985171995796511970325889313551354762249557240205390550407526815883069574609400111561729681854280099086605979841474587114359510826868848323102535326830151777041572690041902081745510065196589773074492687432033984066115479210924353775760754132185167048237875313297614725879748024043029896024388198749539103260594425438586053933487420854098348447851108104904894532240422796303595847511213531758443207285882990874987444549512333211020529054740134364312117276263733436990514568429433832189795340781441791895843231226485454245405206070258661773501015995870171662225340346410696062458392502039119427952770681960456963995349506950340816310472490492913466680376738577942369075615702338188361981833341193723734020937451296191714355258622765493998702037129546538744306466636372150885461152925737979278077804090169555181744992983641167168909611248080069181263044716979870611167985709631314930383221669043238605896901902840005030163989251803184630615950202189227543466377160286390044858052121925719118277967595771924031294190187717636052848342058623347661022931829775036586185080180912036961836913651607996129896864772061529169167175215807294916578618087641170518882649885128566380544089477968606068667315288153872932861774905426183234033217723000203125656316124009348746624537959371110136540852322641187972468983026966580275268168487347653020283199791720816282079988599855928873818011382103880549895451782669023717685854518165659475397885136306387124166586784059219039172372511279631295545582874127691467185059183434879205947060428895950813332537166034200481941716912834440658081121245457149325491679004190864330232011415088886286237548795384286328386769387819827798460701265785349025396039571388239558318465533035686023732231978174775178126045434838717614410991530239680395233375932180733247662023351853439894808976198754496995813440051060189148750729970429879854906608108155176632166380761695574367532017194245910998322886736274052886361772418066762743951759995270318684169966944612052303852993203324472809762123993512874591326804266055919754660137320474168283434190634737768343786448163037296725358957885640973744315905440703842623647191416603214636990628673440676230318435062316552755264172271903981417732819328715584644801083296918071362424725467043769244358011412589431858453098475565958881476952434598374504466078911567357977681793986438482310429783342697160082024293228848480544525818408796970310195943589162036336239146252824573195478551757181057883394272240684418688962533792003828587542129953868467617523349491140534908957749997017206832717555263708574610423574219055389890068532908090439828586554414051369876111210263288796518346671037496118072442240945018042241413304025095473842281970596348685599581071080530899746170516455797348749415431166044474349508775476314227158589789184315287804074623793000643185836480182372337416019369526239022107344227855811515431397717346846674356196899726372020954383067649065315170666579217065688152907721603884523276403081542768017015346945734042357604469596934384667430122476119457798458071122485026611084089095522384829259245586985851489070695425190307540622308592468617924297981507411262500016068251211522373872404254455912973249188043293015266145461146356974299652902793326057688865482357257418625686780693356716108212691743874600132415917225747321123464364494980443852081166958986177117794067314865270579551463743996395500990625743818018456573627510684903298154272103343934044291970798922823164074198438714732378107967124439009197911772286432977826133874448979110309839487669325021674179706370542062693211975824976500104493597035631449556692884471627664954877868277960692225885160105023948926083571373955082347604905507408597183660608947748627846243908176910452928411657066463994852518605271057090773660056089517033839683216284795947241342455467895599177621688316126544891634896785739341295615083659124839515423270358239132583207478700981810377804878537859449610361854297324197931501200986217785424027177295829831388406910033957511859614585609161019821450681546052231044252980280586002433490763864697966599841751293049810460964761225898455045326016175310587798115963281639185365478314741415752330828598238688489204288530266940672119136304942199824453428989168275222187263202488016583898531467319178850484638691327438748514414760545110581577552376816867057293660932043958670867679103116706834574459871579894011763602182787974843579694508843906249640824849413420686233019280986813655898624509703001499746863656188199724655381638735766925798570358964332635439174914130504617045194900987552703318013950465661242330264646320862159668949958963240973516628405771412511098199558562531596396459129491904453465589321625371357441039867266429436037426441387679757299173625507382988700513044142943385925142557634020297256123926452449165090268799402770345389353727596072466553752328544240680361192556328632374285821914610060138510595851874020620136574425860107200711619122143486186578972954627521759836441361739708887728102828169765664729400971770768062456236019707568561789087110410607513832608625094370452012745559769188151608405063042291500793969437649109780679601821323410887296906734640855501948749368422244115879398340485589845640667301202729707625442175818043304831364354908021955931657706270049950735982808681575570535116052664253357931891964179988591204048087370022183243356380217812390407545374357854249964371375014904735091271864151268007831805782746091626631430494900816635458438137301836988189195741493118571083877412096412102241929948490556291768343738235046370675931059764080634310676510165414582095363592298127687254910735743600871804848201596646725460316858156227241527731264899297278518652641459127643235039376072437445541884332049265800131047456171820395179706498969838087575606489718758834376833943796250167181676252837295873144838101043530198571051616063051774618997104526026304636452667005376637874544640328034623484211398894166276912709652770528324057669193351005067310546148453422079933973415085168139996912713601276898513673400604032556020495123072554655294752403021467035002118972358123594594327894417445666230354554707243777371659847405583617830485791910547638245330637766576003907541009451437679180975997566681651724305043804287759433253736340342817799118342943860054504975752511872577494027270096867150132523509866506677047988266406131697588635861612051931584559021504741577544391115244955816573217913916804763582896489954568850201614351412715877599944512249995364398797406245587333335753098607219410451714814685670517177948636318814955503948542430904182384165775282195834158418282173437382316268184700093847541986453463641814375717732575719517812820029523196046728800115930909940784925702002246721058751748296961871236570642694613606111352348996766636326759412696219489593879698851385101688051377756212376733638998200614950169741427018780994833660400526330416494676435412870831909153897891642660502717878589677684698612172842425773200211778176557748782045539267786517127237755425038215829836514795890693532377360484757552335981712051837819828968706824439868574480132097386835445535109818766515060440149798484013269376087163232532331236923978544681705804854565791745674725533158607194996622626651053384560923392448385307910333684161216007566977612815137175223604033728466135987932376259770258402290787136322603817510984059815443705382464862752399914447710654908937175194852351002286141436002105928888538244700912133042505603431259530847436587482547132464818693715664252351829681300054310170732775040239220124531869514927390943444131355594512166161657884543233048578421522364447081475845416297329126816870398960761838580130630073807194066440925744444818251333195404104774090947073904133374841138691051543223009178295073036725430268358271792490359094694665399581362675809701982137724055244268448239326108184158414256587439160662415989955658662924675320788979016767146728071582248630048675880276556759428277959728944808459985342425140796930959816443507341213164077400549534528474099627981845673652689783208176077698171421070369105438866436430464425563481735902391176626615159003996515760673627715559014113278367141427678361703447221440087038258116182350267051337930422305560211899619261805409882829944033294033103503004262663820584035220105615603263686504976644812616333865708089604522939664965350550199004531388210777254719034228336513634865469491115872642621977772874468360851038737587587978997435155608458935730047060014854238416482449585230157670515642020439769950739063493988250772512819946570914606984043808267124274761946826586835778938126144098805937271851512408698205861052702369110810277475917125405034777526461596428234422248226874896381315084649414728087303553509060881843381668963175717167711081478730669733274398996254501907463684935834977298293658782476300108441322352692976957476134576887827402001028599232100894748789876192359267721520027200710840162463563120426343105541009964977672125596029464285434501831200582067896847504101466265195732389243596385880906471971698811814556664858513219048291033030185511471931308317394504426848500698132643863406309820475991013923276154856176846175654740941015149606551913082798433098866269872690916394450021797165819250285201754339246698482620615407019480037657146668730587133631203090141231288661488452944161589574767725105099742060920820201739848689763136583806402862115696087737671256344467834435252372673342288197845237472709858231253074044251323150385160727623548071882046053646452356686398319306280120072636349324269912309004960165776419038730681944543039109993362872782538170694097248291103983233540628409082942876034754007033156083236611804423430537488945435708220785779932178735667769233395398780579421240399119953714123985048692876767710834154879918128082117505531238503468667062053429565080878326120897732153579714207324497265143608148196053010919922852845729756725241405578330727611123451090667385742115720106877706067144370603240024216883787121634085603777721646512674858728557946622172965759927533504549560103804892047696485337047614463143475588269693506910487985621017680216029351594885827536760271025318591256573085550297605918619474484309280837960952562452707355463390074918120745106017727184527938478562801815691137295169600250312856400988220843425020570776947768985536162530703523800995245998754472763924822882279219919114931204702678416472422588023770781814324112159740952826122220500483433376200675764964694835574514385257706853899771054785081341791722210957330919576917418137027527381130255281606591023214806479640816953969465133526196653054046267636973362145757287555018912244107898953690210520381280409567286674522297201793093714025348647648976407186560965935355879485166696579379987101587334438190794172038650155172581015632262643731516132204879596282622724046370855665825980235923391317473593323905094907164058544303677707977895399361818169475297791174160812192485742167960569447003970681342337590562901397766176200224960196085603355058179004808167453980755648120481072442496840972489424940983321753396526152352573200591868370693693854388673210249235491218499995711853489054787105822629912912737444800318798716332072714856616261825452424471076750128086719127924316428294567480608947340745841256165247261945600508784913588896612650471119180100198333473156558510139258441143279311118699573790302889898396686162505423167244496082012164910144496637835973618844981096172875620306348614871168651417400410532820542236792570744461675376455160113291542876087427877757544852114087486624888776945828590045976767606503898651846859741799034613911100252569660042618091285493419667870965820049958444863580769343494078670083463429348848959236209851023153570252575392744192626689172916859625063103177541486748393243850935826808097644892376566085864473110164226747873557177560688834645938468769239775502180322929475688941899422710186226756439795427789267998785353883254565203356257749311027856783490433248701297940611973413325339696975608312309428163665544198325419608014961948621585395001739331217455839309121260690780051918493600211542488954929071729402822186895697086193860639774448781618161728963104275140617754217462043765109213358760322414722819657266712479259577728688697390826858656985193854390003200310708881887327722476016096939970035282574984876588327209801215512569272606398592862926463431981519532929885699307570693884859643228395816448138350354338088652504486652437159373832279261173586684442080077885271549305281247192357047836938852457488168501984654976551617583645205365011396915061120337898395761128258312404122949179642821914368945532487233643472118762951436732579958699730592128263588135598243153574287828356753376287786718983438916013299990587928334454323393693024473282301417853186448217021590605450733419369466675818190171017819086724098422550211407475747740103469577039001998664294599701037390268999025088554302027619043269400996933318415387076000707722270317647777251373736107526738983522778088990596612239532186782460658558338384157839755294455719711441785002570754811692166698276176471623995504204168681120211337732352199350621075837571885044019571710475637204934678466362181168890251595725330198814462043675406206023530031130015752158691673325327166024973458639094148576236253469313031991025525150237977325293456524118738301753129179965792112002743971291453270180689326855452486221065276118221389548271921376547053779514198829072095669282004377005918971296205227157016470982578976363266663231952806260424256919611184544441764578679022144557554154875794413417949444610249259175505543028211376589209183316928998667386231312081594359670110239143600728993091316591746093222101153720716766892575026636481759438531511777213711617102285538924550066481870917454788496661478527139239575045053156459562417831529107275125600177493046985366140531376296645895357651050651178151529459078465525391351139490326433422197321830379770452988500392317471937877520143792720675634481842402282712031220210112148946741024198697650783337782092584949870375483207302687762939935594889551254553478277049608921269974824212624101944624008472030428998028263069137772366168977356954411927470906167534910561191781633712261907506765143471433985217765810355082849660910050785050909381449539878520211290642828907973900231159409539657074355547631735577278410832224832635338900584243816435120325941187342296075117404814716136546964266906148492741088540327192914621215496663606339368409547638938112056971223787681787894672487846755654339656741753619995545399028306811930823167885314540978786650793525641973918774970387760940249525477653182721823398586625466049862739264129537331301170751887504241651209744924663670451408853225081416419850620842982597317356315513477635551780408558864770593318562804835467871370823181298724883758952567277369607357303338812144747394690724350765285089293454436507463381290423459329878620907123367518889145295373699917963736496397634673028731448859896443039748394553699271588712517814913965895732774686593527586558318199156386928804189907803411432382855836047958239207060738801821674435907494045173732071352758376410953913782769001309460316336969791671728800396459551315972767974291358993011379256496905352930982604032426125735116372553477016763980720709241493172550508163906159701229222407840422701674206230796174707678743895823825500215620903507588061024692594191197682836062012279842674836220284875491481929630798077754903136934997877644583406724615426628607561352784729808876840782049020875139642200930989234643772733913916362342627616097172525901425849814617910852870796335659912659766344443383112454130101490028063156108212362907220956492892036301838202673695985827268957485293737668754077798600132454263678810150366746788057744414289087423440214691977460495532978727026118661170921449780975284304080140115141335852955693221002622898889125986699020540374425989661359922711994365703824508749264489236934107985757470419079103791630582530865671567855861366214338600783716788944071998138590339501887691972993775159084622982187644734556848049662095530043926295858521637739113564679472538497907057838414081488943589868101907112496019227798771978283018143152676882763236214299283798964993380515384085051954511852363231245940168821312160912197617697258108459455237578626535023489275293071422540661860990056558874025153472236275901554741398824487792217686437332364891809607223548936209374613566060875308361111928246572695646012691036294450322190513223875012517998748854987058217535581411134495810549676001333623442001257704839797603890642831794977398454128721983253001582728800810782841785193439107501622540992960767017626642300857912726775931254313702838721200948453050174309411310233213694704964806649757194220667944878602897591492011884306208056691443119838853710743435130514841042026364448840344048389643147157191929008425396765951342365247322013625096765247211036047235270049866598831939688515958107796029001598213515300719194930919498279374316999754598610047933500016949624424995740281502744734687389063959902571891365133905748622194165040369614203740611174584276418399992051646242727387265262668549387365747333307045769050740538566688040699643616877680376093574624875015737616882989318139820882598965150439758399280625422309868183890947986807074575301171686826284565729040547543279508138390358043950360632608303307958747889108536357911749008357808173486933134407803299231169577382397605313154209923420160066474002097905874097794636141517058138411404862324038869663577187315490565045670807170229370968964898392566546614199533548377706212742931154478939240921791569425875340542827261012447483223023333547336849131635682838672933914932681479868163630748634557815552282233257394604508137114134506471173794499917243384612700367948995401053308955473198836532819593419320349504716271358752166158599529777685705511565814080029424310216216671195634061890695424948783522252653792245144022351403496887163911625232886664667965479468978290968111833445547439854068363917405119261582195844645615802009003641243774264937016010654820120435392259486687372434267980486844989496278098319575142545440643346737704104279999658290264491849905830020754170263989768510685033174499349344642287338007413587625053181082662319589155222351470607035121654967197155686592893190629115523015516171877843218599841172429788299685730865838698366633925450499522735233004073287253278207061305894729751587339002950513552866740332650513819240053915333078260316620344141183569101863442821557153245676909870330385785857605878415538246738853098129224312153605510256487367558035368931475860186701096775982745074702885433672882332003174305252898892432859788971903415638869159880517712994979696677899675932088287118702225217689306791966569369939348567265640835698370538201622955100669583919668017898476778144036479791806532925968145795865474828673985968763688479247493453455874012912170902190783718774946357393806772400174508364244915055333906490731033924503190464371263996204689935468830996235891447769360471714978132528158092635585262164535502069498064213195353250491183184177953962244066210807818983998342604251825228633280032131392929640511309301612231123180599497039319028642031357543804962487272281281109383776919330131906634614377761140993651193256554889040159392345241159607699577506162194819372742568055001529125280931248571477143962884278081735821492117083763082816310586796018219591281803411505913036153491772699817395861214381105521692050132353934212914821337993353600345227567577272915644528602630971020308655948521354045225728795119543739527665974089913782973286230319664733315036469696765148115461492815549550101727463536596406755151228159171705889970670739596881622250405536110778529745045847007012717861724078943865398536019386032093731722554902764898982984605236790485345373314093509227501221535235574853373868856892623893917342374585010387779766802221450982217921508631983528070452801453274916324456482159660944263755848171117991696743006700159186668222247513222480457894201024954041702778117600222379911429259913537532488745344563622016449952192426018062318044011379865570923941965880807732121417820151802366315547367032611291571876635922126320063050701896319044449601667867156761488443220693197516342361967444057052146029693403579826539157301582017592900618813922891807099501170711435311450000376672374933584265840983612170757229268777113085201457204488202808638010233642589463303389170713619532244522171922700688667680508394354581582847601475307206525571034465813963155877412615108687630025404582058482083791994254249574513867959502907098679311705094020506927019167087323634400132571768677719099860974919562098109423863652821082074883999960398293687738109005083226715142450888755401856692266666121176320950783297334627222912843751420778910031471778275477835085260336673018006027945894896910878900404068724404536405267142558077917649299820416926029105140944615438815927321991410244419857286233692133743240322643862441774928451359517475972446554857900244334525105160065293252303061247721180984826823986523526560654687225530487121541636916024227878965526722240595003422210743405773355107446689561293563116042770092954625062542743336440850160787279741829880987356684019837814965455611670509595035648142243988308289069730846636712573461762123482994425805705498028590619569580657045657392630927207111151721057477304831251800600296875386320509843058145240723309614593006378951345412859196407681365036092374231079972271105583476367788118894629973002943819505207063848942138343898416491794209673044664594823379349922829595579400517622902182750883174408661112634481836193776525344402103325324691840643264519722565590784538933618159733184947161725503008069397591391531304061830593450864780264375139080494718068500058332171139478789734433238279908954566104358881449354833227772774992512731721849570354747150614608684079933117676767035731111068038868430248918515458444043663996682815890267253853047583793984466000555083345447565416043433069235008761536692235320146966370262131407834618281799085264268734345057453522473367411095968806063311960522086291769024835198896986585258686019695311925623177046763180677856931026924862910360136680498392525944873681051664900316696698330915050295263756206288693115481066951754679482278112636936827115599137183599383403400792686804580224053926537715682361245487408318663842542274843942512058727225117196120432780321682465265361486219871266273735420729681243225529278390377476275560766545706045645869588727769474933780759977319346672516764973779623411613619762488662304464087721549367191836078822330717360302835919041353452497487888644163881344050290789874351641474055411159665817196548781976869416478531791485192054985712428221915218229674475491820812998282923640434540984479253450892750921382782330663228445186113634133223592040465052720632622170582215904833247123050025068205300144522487030848321633860344618171187951968457087249656721660085541655286451818849005783026153243914850539735518134828373772785264592530120959125585577252704896218707302359984175793799254994964917544978091843409684494726441762428046496543944203511256497996736440653324661815655172990150876434084952527681331471605424673478675389855584462875710177309001227106558320162856078795499535484575085834393326490532722724373378168581761754371255162079634597922332958958976492882219068828195364494249126312652201041033598349757119572384761325797065607358592512754545163988962340563479518002562068337181837269303948073625301396804829719981986131183326776642488734261913500762060021661318496762382330352419898478371599105570431868044776212345446821046335926827186595232910865050341378850872003638140647888095484690242891269299991303785155941291843209037472447006729644582006831132468925652582108866947996382938285083909132008378356855884453813601111859123636898029743485833532305760600336288984524315307946467244195943439012892031605136467649001586383891915103089487043428540663791187009326910600530010618043548310684311306121792388870196563673542080843061506208799382995988714075637246189957362632921462147750229457904069060079371725211471903324379045703004647196399697721966724281102796077412820113619772954332973080184379612977013890708766738109288954070146143666472444315662242764540777095098094422812074243131533569827591558115956070032027292429422372263314732043492294690203296950699585670757321706397594936577978031770890619347597514211376702737193174844679561204633795071806875858681147632988913627226477524904125931055569484859804410242156637409739654871117706022061020140785130654088746322729790142421000102267770206617044634135911782499237440958310992823695683393298638201400943539904942768828286892851744504219059091246396690201508223821258938481891467517003237073365956947175065609607978012802727709657785561519594099596653339174420594872955714087792876383975362514189988189024711278025760293874274221544172259750032901640917418086782466982888846631391077134539265718621810850801200129163657940001541915513486035670228593021314229877421050337833874190520301652059408449921392454690111520478883203204847439139450975810466592461672724116946458162615283005565822053563956090026951315002709519555590793351412095627017927314680043919018870965986825671646257086307084321136158142208207448864061714579607263470106348907890851992741277272919798688307750195277673380710895876200515040082684842778934588826501069100010721312799930364952265026362897094697015760277081725163011249184624826964526218085051702809701734354971214116695170287545458819446848371130271189708226783278592885387199661969887223595224247155639252255581415452827235173141949864910242967791799165712286491170771546129449265005617945928638433019849477943850443720572757584013056884530217003495453544723819621819221761462448223900935175382702964398349630934912874853996640686358901493535215281387299623305022942333821406795117506329836149858759570346159286604098954393334576654369022152269728773054130218889379579628145454816089707899991652964991058212291541286036869947460882321689685320232351886670411147293924764941033058363537685616220365142599913422378140761059259860746229835946943172457138497412317776934036804218538922728793233829064419547487207217333759499925313381002452104668978354919669119196719970538301007248617330768399843909292821217302880507889366113947088101751502968414391587755413494148894300156148611423097779976688835693898551136884967116083626495812924427342250841370592039758567585049858428544567901975933860094417670430022058039913844803556756774608869086112896018282285155378395632185876171843446590559540031484010870584550448875746244700813246600801458932721394959284094175283063912474079518401717058286332717959962398802041319400957503488332788557999933483108688067058093438059860612640754836455170872563547999211711100097733858115507616619159853529253603067315188003541680451903240821719195897955083536566131392504712052614884841311332435746742384759256971398990088096128836832467980135983802773211828966745147649800943046918502316511122291950142412794485620459272547488410434058425656777372656873444551068183661182962306211814584786043941708740631070879603090442098865433414592869346865905256189553025979039849194469808277670372311869228491143062950680016069718031542830568297644104913761460830666497668966448968058357514923778981686357944794803694720869578581122344702850714371122656816490154119107245733409246377405168983776300674833939438397836129095691225216474720744795660666227131348073975584306867410153245088157046542178740701043458861894445066624173889050975363614011950037787983086923066620865102273724863601611583504710832485698352331793562268192051733496406014845969408296115832897571874886496743052787316252850200982662338062498265685930966990542163440773325543101904255564860566883442919296208835009740401377835779566551378084319844791904825430477485415420793860094500652138489928221893158559996516895854396683407821810593905613705342885050711815696534125792780147618517980477182758682309745758435094212473585702519852469594443063557700549453865764404630508664773079134388479470244010152770211090560410390844920844684271950058139749735988071871518680232043922019149559156962762770735289717733112679602544119726380740766794477383976002427143737737174666560090975584125736730209625299603637761683461340703221078745659908891465839482301177403085590373695036158977004120660446146714614208543489865350092421214658114464897610257114459375168825412489716996683975045321501105951928613036905268395612818692286998969737767703181635936562219278678404160825302821105030702821326826540645024863756888284850184330127945547296700088918498494491322244873253785140916245947109505722044732219303471054716487701707375006707131193072172039453393835041978750376569267020448060516951135730176221650515453417731427858717445037349314097187043485005420584142512688170899121104765379493964541000538021162748633527084960568213213750366825814027390978948535993195129655576479099520132139272851004615123944125205387187451841501125687117621941477620642646201490216111828102990203805109170484046314554757621169565181654928785511026195080251184266113595940948065110407104751157174965284502108934217315763581726520766551755026434391727175130986996638786801519782538406988058059862723736996610756329948508326329013798395476981983070712314864101578507460431966817853497649522391336661063343878109658400359024098803360640656910716509941030850894843748187268185286137295923460229743641020140936314079200098443293407986863472849190231311157163420718056305028864883572059607701111943458217184954330378636652658177846446475763493350024704769669619837634781656005984562190683555615872111278534132594806786527107318521704597411973018738265511740931046355303262217304345952025380360495879385192860424311406936980841423351961527469374025801479571225529690867580820155221653217364120305696355367518210235233096654458580083701608500671744258161608216720454265253045807553284272827627719020309076541895330333247723764331570895431087136262307700477718798380308770479913590617127907097890910650321641647466288378349539882660836449343491397299828434501378688022364130716312232081711978225008461944010228728306978924884387735367454018816801272331925287643171332661604990342145867318439338155137082893162085147540224178939939184481863630640074425928019833689702650076149498176212139845480457444656331978284286390037607286757079741082890343163528487045189657112235920293775644041253113958180534038063404552566343506828605556157367190137550478063865002284398871330030731071400377288035107608992481198235455745287328548918833074449379067256906771741345687465041459133827019547242618295979831562333181238474654968431694443155277599194864298798559100116289682898727171498772570040716660894238442547145018314648740978555140514078401230504885494365563195139233525734307396198917090747024414653863385114339610776420055838100513671143614138879554849243934607488535222276272827741594452570245061789917957812022237809600191227582700795292141668232224746125093519402416939133336309478463035109788214562529918330837841593081004442617457387804047963793319723569985033722536923043857477774455501781303433489827080738200154002942641863673091885674347484165849633962634910784335719546814517679913563292965904646662419575275829810025479417996711883711152341546618636671255039471112596969405246572624607544223422244995494135464429568640292672866110929639784282989375019904548376889860370296767352100134457781188660733922007391986511784871930528828767251575209754961446904961547866871958992528142423814032253204326606316987472370704505608450459795867493605391265440095050103937960493434758243410283173138261998983871340617522615064711287692401044316339093150026578975764648015632271487889889605497337127898343892384813162078305626538254548975880437369197941183850075337139730432844128382724184417237182776065000594189060628283928099038800089838481668085340411293127979777605546237620136834389592217932286566696300338418080475302609822043301628319008784239096306531074624678145532936025057493716298898710926023597434148519140424874987770989289314308444272125921478205360011770552907404261897730715442015590616070776210092032651574569152319002642270178238164788136281495891527433238267038083532821566650313813832993885030219569229209037797985300516524112436940345522451493200046894356989063152082372298864638269816225073309878728192844848748625966845785677661579559532035579333139876178316104104722636600911374816271334562183036028521714421833058003863512681745996165109052342660909432733374619737823012918732447040583041656534763598869628305561422248692692414374744409948207329222485077614684019681889314085245464680683244852197673871037702251797812365006637646549137111732242044208417908775987122843104692290819620399853283009442189301515898511831713829105520572406120990507098458832911007360715737111788302960482648013877441359820825066991708366649174271739200531994244842535382325299880134790608607968234771188082669020705029803726164923020401910611378227328850449523111253409941020595264580918004902276891303280267192894316481037552085602061362013181624632929962064787361962102588920855983106241046905492469574091049452354001292893083368074706624191442871977019437478438212027754009380018471060400490605859811853900184603063734372299681600427667594721132899863378820787170981896591962961114240461990469188498159708650454857948623315489550261777546728818434842586882634729177999838592696877646329972994932367497602993694105162501151993445835917708802145533627323464551754377504453851601686329648783630869193166087587467754252894292907356049281367764667248092161797173620466822965749329102807671304216117479303715630124433206384382008559036792801754458266554932024802339095096818058629810060563098058800713520256775626174252703013606419943774771878744427236045468068541727379361694364074882543816358266220631507226376498629442096730625125799911490222887068928137313214628891734331921117053119550346381352833748936052929141200759388038155502027259372882603036180105214270830683669321355075725787476256939183801271940730319025054382021234109553886434672813342181062479188377703123214792808017622192498498136630104487008565098227707078980382693300638371014108053131410785368542092904967335728934755995633958090825782899394844498170376831938161456794021170648160851136328066735513990266336197444867130989349544410437199750077208419815436286124125072256088203155563743517200002031198565709000859055131921558575894723519162233168681613209517868232861112184355632396058786730476760930710102699314813275197171942369743075704984000127922758677328540323382645191756271637734346936262822447214202566734499960267857915837051472724612840622814442457114094588777020824017737873994392429915725758517209183759359031157882710252783867153245727143318484086591490320885427789239695253889465044537486746469566759348826561051466075946175312369013477001331350498049039363033713246755614850489187500347023706115994163255615816856747639646078459046547710785440042048752308188244092706785140353437782688809032531124709077749532825491642260174182345662559155464035170369510941759319879430856880045617942608758800649534344663270722543556929268950154911208930764223496031735917452356254497463869112782190388675867210416729062769070238578606144649854545805471850316552124330818391149202244968921543102060125967392946319443739361491803442094908495966532611542910123617858376457397771315668242671106227636965421177326463458490852879460950446311542168411778106916494241862998532429191247360317641308299836322908283062813552601771038633894627149287890063720446155955971500056782820246159109297994525094733450448767403242102020801530722306931302866599108848831256887254815241899885104925024288136914735511346295111940330626584964730497128831213904795391156712590482253731849621967849108991587286748716352257675277282113941438545285815522424793494945319790277928934906989475294948228512335346166294247621594328240140537123467750062441411396869477097987472054853003652423012320544981397851605282250754604272951015696993736177013291045561155921512815327584103028986288119304200651594871210576801659615412460016289688736015170554122061821003231775352007461864446349959330801239912413866651204895776914036253300757006490851697832733968839302193211817211745509935779787506778966728358147549310409148730321437746641438411704480229312798096846934340497728041580041924222347281933259182429201247799226323858487081199569412263289322079752169541244994716346718821984056758291006945575532742309073466133719865748985839497173095282645995907997856514198709956327967332365277857582672333493385504279991853868824622082837894726261154156201261943670041985635993211447403780759535030423458375543053200878727338282198172387366685604530183552855606280132526104388516139755464750311644545667668269100748644363233904337262912736561580342938463757525022773432104247615251193933794763250863093464829094653664950798102721406142825724700621583249221705874689057406955470016653379900564385848716175290941508006038128540476778722082284015964617935739960841782783760342248143047418438472527202848333371842365040248338848534186070336692742704449890766666458190993706714935990275100779098985888638404404285481756838139118401313210333720968258011871395679396452914301867999053622648031055166478660741797756029121635242741150175164316812593507896821508374997431576511863628281713788743723692149076168164511223287987708245959805895364813777784699015698818686694801978655843715651950783258036101340447233971541455546850280165683644865871460959514208774492828331109580806051149160920319314062825793757044133188790901660713543448430465795436428249581251881022396671649358943765171521390661286266041946010042962246853857420907888204135840101951028128745332364261373684166982610118757943775429253608435374146146887860269983556062895798130137934211243672977832984497929911491874506725602898484049010929505482700691709079011899139816502435422979576492119593820285063004893145444137106770581924161095332739572836845481281003256246916504793078953735768885285270937432144965483919903829973946495154373645315858573522452818247627470293103804393783707140897020037324900857015380639742119257045814424662987818271298518881500820557866712091199138506613979138035650289142396542693081479500033869664748955474974994680722198649814580331933668765840870329650140647151732110106308678698697834900331542245126743332749963227445262191572951725624778835277017489072590529802727846592387925936227000284483029923031276458415629044336353134600364199978514156082027383956653348562311511939717358254596784273674623196994309034072518517466965487392324345144521179411747169768724733438723858864316345628168359406888834460004723473796860056948220649841366532812344744399194928429522785551329629032398361314567701313917112470517190000264864980763867473564822567960761460979511102938269686771078251580438521742197772176790647310202487595922215507534822140505441311586258462057193923043620621280104907302101107717254632847233253008025789884053460766909263814463234468198632979857251240009084787825761422801216311266656328866629899014663058362875549737222596370189873858150347656236201516937512481961221171163899537199334226813678733983976740038423929570796511229089584208440423374283783553798269955810094965132505038992334241985666867644794741149851201538484850439241493495433195435516279983171956363400901216698525417253193590423014127870273876326272197137592568960548362969828396237625282950936368593613778868312571162246053312230830458324041180815867166865460867304752783205771247528745692612190840148145288146669016873196815183927839990138874111866297209572211740191289371888313284611331182172377630639557495222729213460518510317300294271626388550735335495593673974539917595203077172005269553181339537409788334914569572189460785550771077628264117573483491574826126202976218362303517615926704168673617338973656233203803469086284697183167425315853229818431000732696222818477026597871421463354197279304270159491752958518793220327378755485577594481467397527682703903202364818156485585885747517648311767298324231784565177080715304715946896543909920539864639965862908698297585726932395558971184653152614920112885467940495077903680169995816081817826558264762143717535548930134247095939579870663581985685784207939922806295459162773242291302967365960200035278181558849101841854341911352837094483500666407865184059703198969597817401620145192986658392743883630415207400873803183097031023638786652327712881782445246271651131682908272153945030017945427554908881121889238349302379521123468210192939057839558003861942508641206215607563223117759797303463792587651632559340329792983593341432578575975782628226867007601854165980497795555751484629076631802818698198310429072213538621506541016463199154091344256891404012396201223312458794360829236411362794050279709042459452690162930573906163891579326103068826178444322617934825459425455138198819541464578820961973854684679953486218566890207415912532789296237990298523101193171533331220176653013428560312725282348362798138113320690076229264123706126333057067197967008996650164531533597142962215500584470992489022675860793722167779296590584170405624595596701319566787692261453934311024541867586555674816571784438967410427940145788553287601238352560241009136489771993819449012551839589959031366850714711231062546555476630143826113219913279127434012631503263746861547015566198550335216768511323849478106766810086624656933896880125772257218181798665204616447945183179257844643073661292123176398564399592859587649029713561181884718833897021580763476788029195640804195593333101188161758863322576575675352525183060419734404983314471030304864915260083054807262407411970484613857531813787816081571972310607463385935867728834513405805203641534676355968455624569550179997133926928048998737291635391621714790579450606936315113510407240766551926141706451551244893670584178681281317887728850129599860529445475431694981786199526806862312721470886346313067298868934734504803382647674979161632531176052727067610966086326249273654170128010944491239927797359794933915399278404648093629253116956888392180275748577161909503675167092959366571132710543647558924149790212949074928952832123241123758169734082593797370716633806897058334937985328354899562727407559660074877125871798326298981507341795014887294499307527652064780129306603956537011051027641294327711680431970581187992259355443697229708146936800364486968489202611555538973665834384380892322604824413127328809372090057707487060563709074234051479934509888099242333136107325860764796411238267133349241023541619538077909671904627081810590241197421914810887827081296966674044477301957791443783328303467881007513583094444870029842278598080049085298098495435343563835837584378653801963011415318381661213931121433756534425598057108615264902817301560724351261960099873912692512615873833367438122042313781035197440846205675356544088240690048460717855390194572277694043665023847934100008896425475048059797251286137500406883925825494136853778813534575172831221117202221321940534168154384154312451506691822052951475964621017177418647816609160800350465457299290106576889446923530546196622332258983881817904631968294954441676893619318608626426248574361433826636958550346131803245798664238491319286237836483249196599567232558162746480189528260748264574260332955588616900387240163026662219705269144752293029619633496159608624382245980708777561572989005644310064941641817170842846443811903263527656410053457943728905885747965007954545218354885813438708085319151506184599145330722214661961408988635107524509159934089546053076939878666966625405963056808447957021797304946091965231303330017091295993477058268129424064712218828893229119596739805896095705318603447971047274799425782448364325797969755216246475407749839054190317141372298225630008836085930898138931533775726166787858521077741802426385778125740976866728790834381501567921726098245114455360449608812462285159258315835439908881899308121121214738752604404914806779875704533891200267485063298735316377404782962841561985760646840813346673740974659439695155921998740871956412402613675630803736685942123924762663002551730794164212079063398180089270262927281502146449116548804560911192651827243235246724578551973329081047852019801959448853490493328145765538324966690954776599495228199104237243474485057669065704329783471443078648239799891189015477680340404350535379508455323868769671455508143937582220491872111519035236382709806602032925278433256398270148239070969976943266792769421985341925211266574381597554696901801244495205092613429479467161409660003300914669916936167973962164419070331859122906264102755189440780451528233527399989783692929566381378397970158055211360497228065979601762765691093247435623630269555283350694906740000694146625574306626546168584682477348967573000850999914706022933019451601328759545612083504251851243857310267873602682545788674881430221671407502954536135993986182217757536323268721891611719084978455103361445582229232186521136461739787983010818648023017233144978776313375096522802269217029294044149100698557450369920001785337300959184620059850644672569350582556832403520852859548096934571811602376283293407117239558410673358368282426003425334279944238704651023723643291971294737408129831450668545707730019648119368341785163567678294693567698221157135371441358253044498620856744588030492078943277789198672601084549451315725425496580231603450196374360582787824422393009524255481999744095094907779411860846077382100742379818430833986501275913942842880360564003333117127866538705237859971577092784373158072557692580413145216633935632894049989550000942374409867107608166719805122564121104132344883653820281579720340526756088411902317238984528943289061084055905422342851539256902613575823191997280716369894465686280428749872835223062247235856269927161105017383867837283162049625323669614404106891888186298480960415337532569283779743885692762664896887079584743778456847029169685708600608639162357697492159800208568525577795514852902300752177303176833933687676242999282467544835325958116969947771343335701185808682384948448095237895202572555365809379472714718175781664933781611842266382873874126450993693904646051465866267490980406044789082941189745989464799905939746034832633498428135046216379851170356495580229717751957470713078981808108477698155657089267104350882259112868277068953656480483777072545463321828112629884718136225562234729721413371131090006242484924689191353588392835511180108388070963023865843373547252562024549592107614624615069018227568577413996409292269846733919230746190709304973535141492879514970954428201471535116186056002531369348206344915924765701478336906490421220942820883041544031022741056301705632664404440777517630354833898124137954205088115913085600632638615825031717749595706584017226983506757283067717004982771968058345095981514937301900872577256202649145510960362401555590672482964901466530640903007361514391650312688264882971364513007614682268618788234051910399811421495587387868260387559261492572738193551948424730004753814648017049996478466599176486258600180496133184777348201320080076968409938081639324347813247242560339507770308963410676565262259241128193729025053587750746139152353519309085408463599893168234465924823972064974391642825761157870160121968436479591353452338244180501860679663918144574572651330645195576018285269382087258887439094828485286678785776302253094239005941680108304321135198064764023440333454366760505638397966789677613943666822562321347943625847395221540876753374109430562881138895644861496066238212303953071480374267628342138679497949087886644085569435405233963619617670308338681568809000138462072431261622911239945284486358180974010807935213069977811317187532194066741242586327895434414262541755843588735418547489878295425238737947342009813348985769260310710318960378116413967745936240338877869436171737909002596277244421728656376932120035788714880425565224363956438828017556677359852875074649223186002576591910644459088279915476090118714671392097436125962928563363650020423654429796878248862314178136368837566641468627182429789930723475854453049964255654394573992848868623285574890638775137983238470520508350617006498429080824508642045818472064411967674772007943793953229696135338405795621122310410448158023199926705649393439200103429479262530555025956382696139082383301745397418536583824539171763996169524004020582889596109393138150726400919109779018021956094761590624211194883973399783379213614382581226459973733975605376899244342832421450601172721143037318261466713336445426592644392928976414699542584858329191281306905719481591770821087702932103919726743338521619214011523139123487656836319916650282519820066603047234358037079480113843652273185542553037191799719503048382847105999129883246803529421870893632308735716677442009836847629217340648101178317883738998290547068907491189679720230611278009850953682228360915550377025596062478456848473499258688211681605825331355443506680464123017103253126650597784472847821779572427785367054035113365086151345000752923806844995802815990629384270677560879960504672571604783882546796551243214741552620427467179476452010185080487712974092305840312977169298170295229702281248868305320827487656106825389452757342962850465293738020715317896260154505089877766577898035968275227005189073808243738054650096886299078319508393763723512493885273841486584823716795816335785979110495634850590107901835387495203844565322540911032850206614437125180634204458111681661241854422617268628976850322846545147621055710093223176740210844409427363737380191138075100910845388002664246732567371304911206000689020587092303954902714337492400289414974176449867687634144337993254080421519344896591477039208243675223645522406590569124280350898703839631106167936063640735272383775550036660289172059064597587172262603235287840412462389802434914213528557002542298013604589882214353061367995638904661224242406079036849273123538993183046144580542091211519241921043595580897588814115595654055795120685075521037513967574339276647101505942356526470059116625222854656922794462484951870090246834278433141641614125339244498542664303342945639313346871618592804495160837302724437211812932416657560018320228736816849772139647737559033498392517315191013351247155023588098489578185053239582966589002992077107941131168929348313762190138212742473853173194550299536721627934239680711071396278195358034883041671501602110537434341699420751827173357420958346258131253175662797723979230216787269919884530310389258579921242412215519176794328106227183927387273690779396774926113691195295618263564651811488024070405524547894686391091406339403727405757910118248379947591530991003205288462055720459123955971259822486388556934483433851999224073617237016311613578341891872410759092342409658975016701777929070845232984061608002715952451780911705467004036170890285872371506456843212983422074039270512204484374462643438911922707351879311135911311749818272359614537222714073381534869859062268009832431595646204794927543599157988424268408209062950107022787849476538399165107637751559271145707199087518020949403242299304282730632389662633661069022933127540367875347934735489352402559015237700072981470700199798910174679057961066335928851675160775654886382009093680185130504228340235010678033931199019316059037076155253997011593080991088111845242456259384775749367822582225055775241968150439511907039101424299949569228714714227782950606974123369911189784037435714467132817712204136181309968293272510762378755438176460883636278341349605913805502377584853354436480902502284132513142109435543093021290723944017855540072288734067671008820951019942401444728689512084196049085368591966109060585551230113671300056821325139176101693570876285834168330253633197688641091828294013869424302918827872795369783420411953099451551029029839125351291065343614926767383456342144016191021050769892579187974795784809568572510454497932494446838329699179120718677084213992292757667936591128647032059411220994883863945410117677687764275566525998538047356669994195500449449583864190169660269721954047798889549634414298730955080129219896418077299178001892028365940820968533807194377002353431635442510817857960680847507520111965945705082607043935133424725635352625776146840106432465121377289642241635973195794292391335336245954806159296459848069467006043182284292286282217585060436350128406928228134945152849264618396657739644521313739790389123377323376414031056950965591022154704675850166090026957368053859434513292460822437193107308042534986317506417068130899468058216506319913126827518818977357113849768185454216197717858250412878464399440755163836529620917581992023674829173507668741681708182106522445592031811080920116614221154266735247281083956501598839319756573282864824955578807745533416588735348154088229884101330512131740548092568823931600616794132578269740521814201733088228875445417168658324398706487617141363090351123967851651277054811958517077371692318332235042276795983668206035066691403839316647051308772037840017998469787240762071211616026863722557002699062463377515490777071503272143119113953636891388067067734058191886745393766003563345543332676657078389668707161748808466881981343229634049884681923744454793782950541025064543750757082348802697112184127329535945927154002856949903882697211666321213934186078172221502109727190959977110676730516257219838287889469187584495986041079402695352560813054400766258756859402221245078474183725520932769255307564084006686621399726231497108841902982594936729223120451527552878462862851109835863965808072007105302426599387463410978874003074765895390060894639691528085808638043901213628294833432906655475278352841787174188766183865412848856980174819693469687804149023346354426870461832468378819460102176965811586052494721353004999116788219082656100313852438642874453780927021437673157010789262759658051746807885284041590189437211041884939922371380725122584943328119932272679757864414921005256806908040318449066757098877365760155132190771624148124081723737178904059955259107523668155963245587801887044029332921324078391419695566770812804824845992923641479449058028102963400703859062725365206077740045183431573379751194358295246158203251382756564762257358178343115514947819365010940989582777075252598785280069693862066275365214216623734156700223562638311104357421380135825479135987423276161078185511031800748419995315831272594443395546553810770224929630850641549822330145749580022403109710432670993335192419507582497783363236232921662681020461710825912688827133919613246912851867480184970146125572615367129201416314846291878286741297041583503544921538779027989726124186581339798556254667772633076360525390563909087750754107681524794098355952024614778900191130188959176317076382701511158556212498879780036984978770026392435465476808498269450829287748296214939913656120652507201033428695462916023631399163916589190497759612426161283277300139621974162291373138157302858742517821043378334586328023335056999851659486914974667965657147666747120918880146433972815739803262571233324649091638976869235330038534228091141855396109852512838758018274291325252068372283182368068122098037909639236250607950782268716466016294307580615950158002048224837579465880556218428455306673765608948383530380194746251318919356684143368389987444277644376983004699015270981836892491829401244144757432973517898613680830833156949482595688976517075187278296914960127341051065567087566546534030159801627886041973880587009650265625426011475615303937762000632399625237204813243327062391005397121094754656769368857653209205366423797441813334856985774082062614959249309391758524642961039781075122579187890167278597814079026201142257441750282436707740434360889575327429592441872917787347809147139360208336852695911126431916413768231063508684970656944934068757066632684631681294151089701238868100668821209798629582730818677726741579212387449680551473808291761982566091216187289644024793623092981580299778869010672739045850631584172680327897761952894710269127614294565913726971963340342046526026397822137958312087855742898497744794114997853790908418996725810186494114350149406967785258336541023236197604675546901460694926309592796348853155564078453458514275596328244561602346090939408526469236968358740729713921995123489375569498815673551173717801335463660977030315939872253532297723749675620567920152962261915763518229166286481156074447737060225674646881529082332371835458225499928650426167457365140164595116151332192438677153445972634500260275994414435864372495886916834736741679695071885647085602272360359319660369922100338720809497355511102606607269034744716518563827497817975623584064144211357866300070781121865262130798329337971275900708597520334563720297972613635040495608912566208927454608028839108371161688752669699739442321298627712002204722290235539604553375228564527339905724950074015939867738423965356677930099268151106867937113600554949567667661909041752957893066791849405064603355306593059356648547045939786915656277462778007022708073275815127708406700407209310709370470925613143146561584881381001241980167594553898845058345177134155562777993239512837211628052174157653753971228634023600729237387560501606106015280152179441851088754026376458081172940370774391115662492391232862005623302519737998216422006786931171112175591516138488842842927562488708807364335183815470613235958925053263496788273536636818494641908622224380389918239527534674109073365668379065151071522186130916035609336425635267298442662280486974275426771233236271223751793692348118272417472432937263260690322158731744245134565781205730588630166839563134084153579129308149217413594786859370277935248473464127464523729534020807177224560920284069183716334895539119526475161939615615396158694933011103761190975798079621913860430467836090696690789314361186683841355661604276397249691799960859602987667757201043198487685714223446396806988355202994207275063415950830477162489839665418624797880227859624694101115284568378292774061627048145904001514644273670036267094999379604285572064249954856254327878839146400256729703264878273874413753432358973167079219001109057319384727517961641388826072668014507893197059190745344470680092784735510131012585828684037811216461260168265217744701030107511124205894418963149250156278595019397341402478221043231269377274909401675294958056735610427306719451441625085642719368342469833840028532007200782406958813735688354430180659155781496798617509578327967002786388058469579213915187680476071218593430823754047116337405883711586905084085511961987991818296716267306049564992101157572952020798444978549560018186765241760714677748286461254453540729716085645058926865793840098748874443817411103192957269808173506167538431980847314773310159338187395532758662862157952894460751617593838488320317063608710575270818019213260085129250470141423821044276594040947911487476251024556872327742653572060349665311459304704715180748525775384765439235021842059578676942821121998454983155179784914820712447991217460978976694948920448017108878530127552526118504319734567286957145779032762597749414654518900226396175156672623079962760835092479716436539430075555212403712340124087953996062707351128358590687212151704012267638003343003395311923631169417344025553717097887360479008191503582016998495744038122286379177949830699226300428693521456268950181280914218837999317178139792569426816298411071311049325547509117998462849262533845726826958652643527863157977423249636106464458358472901619082532590439145772334497272647136533002667244518337186422067416666383396344671947630296148810975968189760091312698531161894421051733081637939022089684938589227903696123272171034000513215002367244070416121836928409754048939007412257841507515107477670605348662601778515076583938671357996577160050123801817323374337858997587690030158086531857110414587698196466241959524996565919478228504078402772615454257622729468617493828918695981578756043769735650165229949885523851284549243532672660491608392397337537015200570489658541438122904951766247151559950516018710677215274677372497398581537841872227629623087893490579894659093141266545065496109159549147321979394237829948452315398885531515109704156921351827247993218752708076509464957040568326343787677643990911027365504729620234464954437016869204510962271693863919951920813702407320784413052862818679777971011140492928514909603639226064252611465427212989057130109028358550721710728885442372313991494885096412885786979489103220945633519414854481981094968356239654499694260532849363913533118398710928195967972980246261477632808160478554593802377052994926598880018061545464687005352617850118363967837160352519695385397113378676444077994414788647303334168114901670499981679585176469924622772143278032034524585763888172695094823629445258986607975332414583283387332986902890120362780559129571284182657155231373216554035448699396758571961121415196507958839004016635395431447449056987800930890287175317515978407852735334673343010682391555040833447394020546216752094413692241348018428279941791593707115949454201167286414183774169958848685701190878985374103907970645460706184774582736313249031312448607656040838782972936762712565742792765540168408598215650153886602657728393404830396770842589636457636640242617842368278289071823573888713777214536522971722109949269758499643273759815515133753787923263971785603771544463826888431323709304678113719023995366299429255906212445665815908922614819757281608730152595857354899064872900882394033151080572606035016566005088657135734164416920358627154065610834112232086114156573433643143227544940802170776975798425202538019388094293243839826251824907223101072355983296726982481992941237205225681547607801427880458226486446696140515154354578031288320251359764601816733044613931795411828974192227615106734505718346842915519551893304288949007507665925678277682931734936596960980894759889410144760444386219043363320802137845787892822896183714795083214902272682853798578062236778235934638262164663911476907299913924168824733825979269972274524713946279595739147901675175699436565817299422975999685849819433539603737634839827842436984585904710691557075520962567282157521875281862155178973265226389573379721138824908252829201092565898516679991183263769509533362354202035329569447533437502208497317551248936936575815909539157981176620356877655491777697275596803652065010264831616523955060040252028480640888033328594759139870075760639600114722437499587582471252154406673202553361901072882760172016396307724361977543654853202141363017964090436019493972217123680854428427588835374928280180323750562959989713567017272076566219408332648162449709324471462996048938958464960458794673926486957567878249819609680620591093518497973978270037047829900770279591717248805322571655368268749190208664149698120015546405315361316224152767150824272591031145552481409778127306649106110745374639396592735255165800438849316856628616494177935176084493061483957885105868959862946186365656755927290144853611562434623823100612577955915592192038377772439529140848926533215192638375726808162894076619887226240651256218721249722585780808497011220661601102050209553792178694966309339175030894024307085044002616748226813939085993590950787014296319666441977468001745829049177753713844745621557191957905124228622824771311345636972175128172413349729183014374538276878870273498311835882057113491945090157947496721244278718370245510188696621886664664523711335747708513448074904216407680417436777115981630606707090526315942462830104010738082401084660381539358818873519861093275850329989269351201604047571895435994886829057638933287456603921225974969612695195116136624783850551281615973519992880638920685807347604050249709675125569111891507245859753314043606100746627670447675904109809814463641352885503039554821565596191644677196711358777158848746220251553800013910591264058189325530613193417615156231498769340928199197587582163737284241610798426274956690053745277563782322262504458701227505890756845721413341010916519028932496207502595390453779975450201106925010417790142216656818921490420156511732199815949983539680015105736659485143418859896644932186062769573669858470571917895997260095896995288970345991536809012390464987806277527817477168722288955225641328893883711342692248050891419093793207528295884048914938312906254572236232338999158339214306173305132254713823475623765415591410765948737731681640259332049568381686968101499704287329137216403259378928040405219856185909802902009097671174467024082630240293911789268012634099214835336289282343808720566085879169607309034493580229453423873961807222087425363974871526828629080267958388111528599742552471090184278194306411209961463685943974706659587296470407716256141325946616934715628693741644659445167039194321603062529422608857565888458451453162430122287982750010506571843579469862332747824917559017045124759103668799049483811146546631979512269096823042066162840636769618176668152295830097128338698078924755472535168015728392793999921604531714492398355117182904436129280753840535983896861652322941488659536054235730160304811772690504631613849231375369707561630049064904840232049199932181463606525145561366415142810493682071960243004961658094707056106279829242876696798791062959391773912547402380314831741229277610773383062140541031509410125571941400832399576188004899163168135930949154385300422713576257700096207662966936645050642129352629993491394854445166906244991492278721986372143767989504234344816585194855298415532389180275657615588763429517265043801580652657833740414571597619989401297025239731208656595591374714349301354728404149399032997774390197647507142698229951881112902980999887344921990731830625519204970403575199568712695288430693027842306370437419051810521135792194929614099585723405524262257702070067456569390167128446075796244518906560239193171573975295175517719904476716651503281782984047671973765641874384731849704939082995126260922093135786306618677187227443145859612723656318665093260590492041383065410885347561760303094607594519059316396121160918856861186888730767397048579176246059040823112671548598038726747630798592053191826873160502182412503662686320600438859940236385271459848786438090371637889648975899638455922762924500931837845275648350590332873792383611152740648077296727323624607422291925491564947497898762121150118092705349875387757578968988123583587633878728795524743509840412694115414121514035062802751753249446873138902616741664302438186709667351751288877493565546596310367478992102513985641046468397672314558500302903399027409844641180651165134016703824504044566592008044105526854889372593763959541446123157661011551250296639326413298714555705393013048759878298086084907191839167731327228993215791454863239123234818972208084901968213195823456088700113842369104751624535870606704102737598442352711320818005926004234757278684292830217110775338757631060436890970357816968846909241506374728507098530148066631249720961306816421662275232682006354278426605855087509227772948480173193307075975159267599812800239541972078302390448392379843087285809857937509082041854871245726740871860070223467072530244009490310148052210673795106992887728422267127303225625693034272636670521781808410122579880573726114115812980015554115737223028951813772828679886987917524185563078107227428110371044093034179283906564762647101333243245549335653291588218602440239125182312940461546263879684957353899084283893081207141206233764442834655355603717740280099626087788853876531876923592338500550451599361716891881807142846521054033502119228887566293355074177918680308255668376478961754090832586152755070290342250696080328486105339094299934869754572321893080253841157219384534266928843396586763433636763796733365086236676655164408343198117515197312277567712834474633396066401430591594281439160072332770108651767344921013174891931737458588925607181507105912711559284711220511102625267275541304228701929095847581448489764270329662464487260666334310261704711036371180101098610130803013625110252660119791916381601984531282096142602248184048725152879896673894970789356060302674129655899514422419435343714383204425618989681901233273619224783880426751714661914551879407131193463697583587388153167590451735121643299516369179109313492616637801715262616170080882917482718960180007131525031414498000769856180329484677308555606822642552188226878876351078853427695236572688002333114104208335511159795887017979637321850632323170640106794433566189279654427845756546288824291172971500341507515091134002929996368986047364640397312503554160909860908082908856120424062601897592243516789016341843272570147808267438081032436097730533645220202518459804657007949059883160782946985029962548331881678795396820643089850554929779400245941736435806213023300785289293375318595220671285000187397673683857763828439002536573616340414909329941425766152491391453718220164654112701359639832589092843905046059313554735250583922610836858826932812199705510695603138462477447385998181638310411464196812804906255936770895294959683307580703059519466364182457214609648646806969412368742310551832304992071301852701995833932771454875737009639662656309485957137927016966828514537979975850480472337474783444004171919431207249611469095378071833245026224875124889500603410253569589366437651246754866895729519312922929982022809171104096117903677018562996428750516866683478437077545418750278195405112822812121080087841476309085102992843405074583300334653766555924808096115962972866489257372416450683484688503619197449743292485666460028600782820468425078405799084279153024055071815119376851996445433857188943887938434052672105201322649342211646280672197868335257638751706807016835263531136223732719059372378165418697707569821496110796664309391115757306389092835050663784765522197950168392982811408653216824468964036502278655850993140898805318285615884953565163211355303365331873314375127517299830864558879484029234562556912546722997894209259797797662783706698367230368473625924787320409871321964165628411459494831189760519266057747724191072267605913069648534380925877713307897072142963637272961362625401288631668490781889552671723079763341769926818819281989553541734671469838212551508031634241090928339092155731540942167356508529017662053424490142195333015078953230435037824349925122603057715470023386410341862593733954242325558309391280237274114960017828638416101091833315806254565157369170746358272431062627345805763008306100249338446557510152671902041482874168790101509036275617686804307163311083222590264554941704834475574903056964449545432788096062365628905045465319878005582537293148205416062926738026369017085746982804981326622365165993405992672502762905238920905244377307168366812684019639916432393249607362772170960466427330581238806526140085803629498934914751380508501835199536382484857502600188298605018920816164958739629144707210119976794710380733612139742718840856466575217318737234805928973702600955304259295676745898564383011801970577298374802516718383633771537592742296337062398038663434929681670270946079094460334744951380986180843167412512351859872761113113854244503663115096106456117785458978981528290073132783544737525829814651698556414729708352529398848197533091850696076362564005920972427842064503637410535433499248914178353080328840223938540369080098390121963085805121681491910437471961013140340404689226073038301831267376340536432885841248385593334358155903042246233195857449749819090020701124179575052287679563861382401652137196356003014703191103083652639995873384662113715844246191055550449058548264056231160502162470610804813655143008063024372338180007378713352417506295513484875900854881378679694869616392545172084775251993352213296730826597553423134942237062077013109775442200798880055751863612232596031439851343568869475539351476862138139857337489285711007127584247663261355756130129072833121955365954417280567442312012451209471166714047687874606453514752034623921540541161143390925816431689056983601027705166408090383622287019168654576021087828752118804197707767272608241393928256284631971659854645412221434952214612267941258476222477661414176152811729757234924217918732219585473323938372295836094715423765114109702633653506761808111424504889191711498267607185412124352366710457730063385692003006280393528576782984494480338191615513756970519333963560592483959972963012436629606507482050427823167108021623341583540410243573996534773868910345911527572669233721295524215528191579797607076724748830094097421375596744296818185811952709254178873709959168647758843435416177956099162693091611489181583401397533345983838935911699977201562310243650362703109185547051650636863325567544854265841771068774107756827738661558648279025881881243170236478867160499100536421679360626018614913251125031826714026450407817526378673492258324288998862558664414421937674865572846591297639045315271371990815511341269625243530531641805397869411059713547836338460787099271803244418879638397177843286992900397392074141314040288199596320387764009914279414398051734660251686844706170987862562865157570066520685352082770463151632085731801807476212604095347652801021149349121569638424287974867325263492985796897643264478603284372337782384837132859282235102383279401084870891736435617733151789376727828924717034235628630198512426787205063677100701469958038479890926564358995669866748921749544941525504504674523249905239956327283014245505979698807208225688423373117203884108548280075654652005959704369751917286488748239723547192497502399295472420613149135857611724846530230594294718689439915122899834931259206142872797360209785274142721204764424162524957213332311222500179918379058989559804537412787373188766579242669928761113098540612293273286716608548339802615283270207083945768918876337358909308465649892574845661100099710385373471251382040845199964012367497743909692479766027141629838040628682859090770807693650917305679319074208317069781919126605206303945292192127927081896245422442604288621294869036015246957334765467169763723256858380560366845212796010690706222581894664209370375428695363966421755310722253582450952161435935804634213036514344775074016773998211412075513350872967983909262997376063282735701012700433140084524677043671382282907434323740498421097474926768383086125509052022875149555476551500830723767895433662914766757222101693938145784269086580668145367415328698983186835424770003993110933967320735211781934668155358851368552038014947087687912370474071790673997136686206581906329937841824823421374175600933112291927634277448926615870827483175888649283731875997982625096160065101522731733345767251743639166938418422527357613162316428504285928302372290498765254224475713030615677873255882565710790361544565035705935693129786289257942078327667911300572864138341262972481156956161486790632536449013909064641293805700744685255391600909252827514229968797887014556823030962828099783160620775830571217950527424109357598188053307013029502027608406430476985136355907091478052974814188438375939774735870278959944173703777354108738272982574541404598916376176816675197497186820888631135257518113012670385067059910244951152168974301006885522335059806925768116594291334648494242322219858839612583493395768566532309828628189797550262443416022678804916681935807946628705628016126377632176704136230295538500760243648901833465725366954001336887030253642180757903485602301867053635851731149348196874629156529222650907669902084508927404999859692360229330778728304538709720921191627397244774640918176547933592240893974185151698184469647691888672046805707881412279818482897567881511845533040535415166449675709755053772066374127573454510798481994078581511295690628532043547248677729351213968913956116548430792251246356451066860800909993521675732513484324798999414843843760319419277001290730918034760744098403716984594287889028125429197610935592012473483409912702548979381913578100098431277783752992521624678254681536171319873434089148080620803265185419539531930801924606476059374024862010538298601192778920502718405758515901264713894700678110930733740201030253680589582794037201671669752735500481786428924431629234825427292806878000666866084397926167558788851028675977243307056539591771945362180065858081933275070477376878208590824624088890909046969857897742393905810565858889805339912622402336246641518787573941614935331581556380121226197361957294274547784523269410889752705633819623496384873535826761776392291232101368041350182301310847666484676298955762362422563488311182065713354788572329150241160023289989681413285306411500746350458647745543957951035261484688253142784199327533143648933621088704261218419073938537455449628646432950544841386883048241822252661325931057777380061271601815515035379754799583923887597427991580861582531191424451267657873387633318369129288690662572950821992341560305167855887966913450746826036610588231877867980598948629903402342049545999394794986006470896823199085036905801485878162087646299136238479319999983666202009689557126752805910385671766965127023973231193267691628901203107797181923238656405120918430218979283901308521496615704981958095553576867570586171464082067455330680825601529261737909324186439361198299512791274127139349711161045718676732323417286573935056270881201260314557207927723892218708694513521612760737576576683332505684421237568256659323082976922981607000309545736011492930256499752720099250112360452818631751548352246078739569127429049495573160981892946365754519869212460391632896934579868767070268190012683187907005313173570558213902214361853340142565634697593775345289471752092017313770082400803094363628017222763572199881182108163072756855836679160825184075583693923973692186644013296802478307681760002835131953820020269856199792976945267077552356419787906199964456086344241893266114894835589122414786168631537635237213735494832946498017477637236466161747937575727075881319677208169811832253492378582325594773893012345790646865897774084246272776212999787968413346251047395685161226104625107408260098567615385644955320924315165343502756186220614674429209611423928325557875085810587617392164713514617773025642275962804950600840240179325784343156883897153393592523739043283900747436186171976171507613242056712793542392713377217807406462575997057909920456543783742443783527897189347659305301369592048803281349677221794172309518473514798847507471519563839852498406063225401901255654988053403022441041798065632568543641911620459584954721934648806630933505507629661734628937538741356766323926865430329268981000017612147550460389790108813478470603655586038548775308656573665839214601835341324265208212409813115141327239973932859819471650718435639115048765866025687098975582236639920507472009340190602287130848417060036350934259261352801643332698566057635438750547534154101173232718259965820576512789415996745442053275428244746795418077395530776090390629712768421503985225270230212014570493915766572284649039442239646247680740011680067241845231421184754582138841600771052210244756599342834853995510291480677468676750197131421675301329692233502295488072306028707556454460755086794929613294860969424217638601555246446822879450381902375186523960398271265228251636015747741574743033878759860242328411616752642247559836335910934457510747584824092137664216925329519600368443019041614149505501892306784439387431403319038753756477516774318427493249720757946473013123881198390292767400723043622719752769662161255087025500178685665501513437014711820984233622321627722928224209310072127004604887132602601965711784145046320745518607059860512042613372503375147512286582802570685895431456614374079581126367915208037613026454178199607361163942305858899762535942692383796864212837451300385934200945444668358305346877743685850953273889641050250005912667619126545748814339326923206272787444482298637724813968865427426504473709477442468923388355971413496829294000647536295722766565129486590657510699233598498086827333980709487702302525902081165635144154670395854271357715462008140453534339432535822714759804587606594052686943049171429634599809401469676190441360729176948563558855864458760114764443396850330865110030709854779736101651771859788653765930859529317878508469021899548181444382525535711928345322544105924007098006212616801324223514680759185250755295333068356762554918318368353362569987611776474034971329366909431281057788441208373831960093957253582572749929802301201980092403003098084867895670624258368540455484662536297181775218665553952530462361993016981294418614078151280722181284074977184287345937126548023904587232597413945907970970206652815173901968709828234318931739492284757743827289956957646120269696516281633916272524259599005236328818397440774728774912906831073210611737962447669290989329928584289377793697466242169110637818384008300262645361356693683116302405120472340664431290051469160348955322954231384151229415455515807471249870409661098077439959265298889017752454689439920212257389933894546816502559539347894383494793133565254341349910227009157632066853039342031031494134364658730265333472008328997353707346807818790776428302242913718716472114345855066740767881358023879812684027250939856191035997755086226232170479865885643636459386569823464261672324283920542100927398800309948956773980614233135902476858677033163364272299427103505849939159601874669210991268507100698836956775468225303568550930686621797570790604487436710887320604851173789028849346470612184731612202741475644293281515640504997620778614014446611569136842445369811051971753949590114770412798394196891689549895029036497888297912832977833759001875773181795286701325043356524520794260100484697786069044070072538384763234517484553298765587256502027135968683512487415806518371410255924625107336757620636721183079092994427387110840037700208811443842897453970129206384243254989224110958220334535506878282257850500338269357448109537636755435839442883986163670748118948977775177665831535747185669723547828869667442891891699937659185803589328088834783067437735552012975872736656222473437456540470131633575013614087825233619882642313314807227155876396173176791180634666203327661121708128623855155797053845704834849530516963966873588681734085191706855487993806155544722815782862618726152577201394775554614275013295213887588840287423612516139850600950603838690448129330779695724374295546543306856846705205974440289617723724024514994042658404474206705835364392501605438367728345694088386977757759269641536431985778684698469296513652681087674813695661698933151988563192537669533431462760323087147991207665860705813365225980810434523005278702827741368926841915874849296742847178199529154084160140483003321170971950286917818735138430098463808955838342300992429699633828459385172379168327574984555910574552128429385485676973717172761239817452645115799607296769810648615785252188308579672813891875311277123257096209325508197500369964424699267681315620488722496632715624411394193897451122471054811645486387597247749218003195294225898189840785346539679437106951141969478169193568742222429047092232147346397154090559736146308179493238092610677060584645812624675464789863502439107246129772113151864957806923039187065454240472025072586424964049320995072409262916445503518886418182693964837356903145604544155995758023966979720703064399483832921401812198893507778171644476882432620936233510743726451444457524877508212801556324662177568313830592652453660699653100007440541163746071913371277012867190419729689794600946618039849600318639222384264926444353738396771026042915036747841485234706989638650335025632959584839495798089498846947698796071691819234659948824208441494579742903676236512474423899730006238740786352940588665861118315659986359579712517363191749658207666257049660416560350281294710233159087915189718050483223980451466202715678338444639204573808741443655174650925594851375430763215504525651493999201798227354972067685448036506164885308245795325301873535398901106220955847331284986517169386641548783526236130646100064210280483628846033193859366480000453272819739509250746764655484051143745043526945289592211724471191817042396093925691770321236776876517753014354698707252185078069606234600336745228405872371122080636216795104560373530485410677232402837848198200388191673649547821538267303224781015647512439976622983223606729106493690075800743243031581574962965598916838568173526497398723439045152633458129733837887116479372634302595929897972117005194805409015790729260678941313011020679772148870288709847171267122013708364479303520849617532929232878748544818646158999471630523596657766110715127966301325077263744136769337391784799099690677303720127785133408612753826822093928710500387007061430908240967422866520691999880922682817665920017531786537265425112309718853350726368983699898889691149956163673200000981189274605863465789050596840574617579800084368183785393149082547628048012308403702283957777715849400357216755999966256443198134585814487624576859691474051763765360668374837898334086067545028218446035963335059812152008775780889012094747680725485990642066877906488898234418560925056610458528425400871842568927149323639619143667885482624369869884393165477227012432749784005458700780598518572575566322193226119606012872996024389311421529183847236333311404188081203297029690410778803077464946122041021983617535354096993305719152871091824984009208019712179382155279939071740392976833281706482623554846083305566500064177107318560288400206649911581680247912720698508790838313406518935625484331084158702890486987082910772570357221503346102938576250702687740258351757429447377137654213434641707571278963919026892345843932657579130486096759912093126245020788655356491178520710401718083030341896495489086340471307749888049084780283062957315028376119570719678965774117827131324769628006235635012742334300925258626037698025255742753733330796647241948299193095064217554352331896716000557433944748146915031242510486878823791377241823737138840356983869464400379737726952770819239058451864001008196294872961801150422298707136150206859565168219031584677868598935887670972164474104008787233094567467088719572546317013420427526229938939307946536716549938627638072168452862005282253568744743721153908262769523875726455259834796174546788179898703513446486120572515608505132412639634165390622803116751612432581505159521980435324917116143037205253581138853598907546322257228034301916188625867675273940878601404122599795585248575095765487183679482379373650825394904474678909565701931870939252857738161289998490830273141853334499052432918946350021673059281076971291727821279455333701320566734874875626528508491744907660551529146847606832099862290750519208989196128143197286406089169964409562830299554674619220464859366222433628101196240209415462641697941699523034986346432573366455676652218128236217054750185911550224037737971126838061241494741159716731703935038817782745540800814440470957533195244071274999997362762952233701274168729939561260094619728412306332603239294695945383279289981564780144685368420119857743891266095950568625450108560641922996062532952093811124358593844237119654281353237215290285430865527352656679415227147650976214637278547849307474385217190003656680584421654831702117629484014353007158552049963528708015987294222522877329616125105289576343069831632065445543062538072835314326438596977178023536298868385271788277378317476169095326039511257382349064691079535861407280760972113966730728418851529097094911959244750080404965726697393812556063043880463994767613084323427786066069355548180454414605512194874811154300731973670582732841171710855166601881525497950002913439479391625575875474344345362264195153297797021831946133021253484466640140395430445845152771419138177611547771346149570168963487591509570269367444140726573340148653443616352690338545360379167963336306395360165121980336020742236603047770087027760646207717211563772375599536901515044438442085837899789076773935283667265611034933705126326845406629148244193469053915077389403347891660675697088372037847042006388425408840550939426029916414799974878450191769875203654934148879937290061236500854041152455051745164548370372127532549988644877009273002837118401970159926022050956243944168787922245099499685292573200244902580595153267601530003075511564486491043857801212659035999135387398926434017753410465953884716852766026108092662125236479726962759275948795870417556681804667153438419717220391438993166168706788489700050785490458725154607489220088243390157486831498009292086460235366682760024286126118372497617883855641048649860604025214023359746143376337922981997745740781999136855400165566278347956947405561487409477940034037157243079908419058997084203523289641056419266045741390941414310482018598943464851849283520013132576042788043279000441720103217835724887016331899598675276393449425535138359099367876017100145258249254073600363372184773550830063190223262133254541982882597181737666838310204560687132273318148351754544975051988823768986194750178264409684205808133196441177752535704855238189455239072670077442646841926152900348177425388856357169787541868382485681446258449738173283398105359476737181143835599875812093741536208104080185775141966971157391112825741445023079346874201780903488828722977861386958237651478860907881917297994717479620915179235293872172295665230870147988719411122078369168098195794541791179718715655932199034152774472624394364564682612429327246777500789969451604438948090649458240339895767217932441012460066301453650482050685141523651592196350532810709877159848632238239706049106658564787276746427220108280068482375266117328967612488854990136909542724497885744490333550962691047618820293894256651796853633435753946360700438682395690141417225431767457835088482825035979940459491191814973750164161715869494327003822057785195963244668207722732204254727307216867935163077556180296489932254209918111193183741711567723130320897242176762667391473559521280869462406421179576219715885076509361256952678166802979363763139848390560253839063804729743139806474121730610234490631210965966171415502328985132175504005090938276081737691160300058425719992549502997449160573901642089485019112412948975830118347480560299813339940001808913717446553321685758966772289489843960947712825552648154340541489251339375665938472177282048141098163584842072203896224426380616052539973386734939225985648343882515743626870785948478353041671957519043248794550439642896836023463989501067161584017678372677748484800267453289817485462101355864189547847922225132610160209850703517012555998752184032369126052553233609117652019402050364278976644963284816787109628036291017660291128123037161473908589979639571337832288222129763919025377921372845752240213919509569916311450982906380862429124370594673075497874094461938551251501787969579710396446957302629371472440080308339983967587003771025957241331702566849100275317845665035078097052210184926663598713648274123139249419320402741087564188518518634586377968341564931446624531230056832341992257479330570362073339886840987830723580162908342040979883464734973388818191163538695899165951589031997707102223775602897421134695644527664501700809206529396797873378520322457704709337433986972577119360244070283306245942779738342639091269791084673647955029568866253728354891923998038173006241678129577846166167623264566377414410056228486440440754241000594564640659943924273791733454049347769709046315541203097144054572352049693039789089195811094382510172614829912266607820976834171804054091172870815677632090357405440479263922068449152598826042304764778205407983086279286377655685874773718776337021880431978472133377210135472483816820948849206761805926360328762788169355574199817000267480555064138650570493606419283447088856688437472724506892077319708584372094748779962775368830369771256490643027263549440837793404668765742066845671122014785766954049890018008199655873642397290688443617102516399026765281887569674751451788130974521913821299779150760649138310346207815915247356687617387377176098076335454403252022333389407220043771634833360537471596076032341423864558060239011920595734076406529518409760496343631967796206139523063471888934946596446108613472567191957678003703244810315502149735876601407188448034724103238822074294458028557396736330486807028397196246838637923779515622712378295819223670417596221828324827450551675376870883216168322671390704853446185478926181592855927894454498297232820349714775639571289775545985858800245257032152920669443139559560786313349100772425848518243856635881396886510109462934059641609092770398065852315724603594399802091867752903301198684498065550048699091407510945119394776377351573410680734172748158958632794785678076986218384003039697171768093127348317015052891305612275452222411718155861372469602415494409414073515429272354018222514173572803406847342809631432325638756139749890777533563326912213459160039188984581215020869870828317179016087336600178565030887771593140022102758486047813410215808632954268815974836452541851983275642840689962707742435439425802948467250756532182096331297122828356061696603661072058533885733483937870808063857742498803931735924965762825882764759007963166917188589642168802808686796744807896538400924414406627019875610972508845107905374359481523149328224368901602663462922957456204760823374387160722147404454485856585368046888651743164547884649073458240860321015589322346523347749227726554798789459484628803170132189553956935501726913090811917450658140031093828642654836773948692951686880728913283267393402991902641528362465575312083618842275986667337829953458454745857532906800070345427764667582037986515899155771753732542420603180680893009485744619032357629551923411254513226456201343925574438067108441421902241835457403768278847235273482886103910247564983189768532119852210060330428285931122396100889348404650457864114064142157505798275641951904275597503087382509468488408328305519752304365924366045069912044555476876713377282379872378604039726550931635938633398908515561687450430351467047522019801022579405401244447520446767523488792629018678703249398609054371470826263436839889408226788678726030447385886941432834393722062790555758568494811477567252014579455235685715385687539699176760541156019862656105419504146390622477283972321488645670307859658745451788062603519252294581153182750790004001833110240191552109044382913581671387844612340716266261821220182858604559318187929000373630574744652630459501147937800361047255476631132586050273600253957403353861990154075080970892020362471825909941361888918601707022465970311305171928224239028169852441767869081400028345058257975730718642024530916025168134169881719404965293643223964713512201750433901512570652001207222629588331540419681533468751268214788127928664702156155083097080999719172676113712466208312954836773596223521351708696005675561030939269051210788620109392056083331864256235900389514124912636365056492410530688640176503809738937609084520455980432540148581611515761547717539566299283062818085450690195199992391482258372699864847996142560848606521463269238997572451489058389973162890330070705878969126137554291637837487798361068125201940642477544735323361126778456318206209993031818821695021847358325172587297757512120284214233673337485530379822044096634971820411248638662428371017921145508146620540385220443902747251135943299763950508433383773128772339300156056900607896986723193341266964552595997318109489527185492380459764839914353657936956702752321281363863026306753610066839837566953535736915794521020556191190932726675444867927301388089449251701386964693202030247792849260714021831133607297140166159123499570626756611380002400305195139766324901177640384375162635277997768542980715874385355654927161073852265047489699624478211419196864205009958644532079152261721152654063007023333494724317202166082801632987751282943458147139841967016009396076482275194261197336468511552285031416827432411429775337294426511388998824775942661318323982552966335192411327425053590198707711870368141346069437764559483136845317167647178155228520586792488338415493828355626930700468183226057449327812850750393585390002729819462110218710865363320766671994912005664629999510386672772029770385633467290811112954229027047116286304561593914039792685811095381661180182374144612558390472370298825912471486695925353176306701227676950857136054783277005461186599351910534412760760376538049254257526239030100366775981630377503381991173066720133260578481857873951335895391454271038839642636550093075465539615856469325593403823540489320716607614132270637584090674194122271772038362009921178801305749445133728895201040212574508290204014590449480890424462074724602666357664722070866404547358246957152601100424053347693484104728988204452188479155383938648139953920522103268465331809642979964017135969504616558213572331058832862212966349663642067449550192087617818798206560697897164958660432363044335477615614840174144634390512525363233046195131135297637700486873824544491875386935822108942885932772408339316373337921188885869450742524353209217627063526862625443582351941247024309432175950130971387378694873444007237659263780147436947231062455661687013283118084515197761532382948927014005064482247424189618268200828541617353302370094450866020253507334141676718058921062863596770418502516184965292248595043170406704495655070448650834061293917608974254196531494996953015084467409180682068285327372662423624011136855327862403637919639356368059110837270094302530308780165968456840699258323039905192809513995137664454306403398060234366055898365061069532420338725281815275315782457157358124426751897801382730747862829818735965423454005685723915875986393452291829954612946414585012724821484676774058615906413373970484972853366901444571304812198430589601456640598199271395220876983756311962225356956269786334519049516584833337533713618026586573200649631333948429337551659881279637379314846747737197033828272789984210173924172366591482859497753718952264124987837095853127180088329406315062032931659815317337144095268837935042036540085518379791274430052293016750017641924765880031084264846570611110037043622364287922000215985449901092620937163056873726811074258749670996665513351803245121357791180763109320616237858250120380683536017871420653411803580819080013909646773912591001568173602197356420439280837240136521578971417554531328521413059180702876471547954586130990569436159195200806685640405298940390608786085040222626856775423073643863399996902470015224383733650181407316738853145582617619189262466727258120280793497637659019966700699145520997358242859479289279470107103783007542311039698394398279045212145432882486341500236206858732787480253085707869612273962811489133986965312145908318244346503948119497418541236022110354153415138574501180768317918526130233195310354744678819745218491146600749624979609751985294549098577311352150097146608667413114863643381813462844875508906673544914213516832474527081050050925661302715971453517492911318977124440791490528751652299464623952340190123906062292355957533053821888325187853629458874890561465624533349302506618475621097476013767177473172875895624470804659499481897926090905360142535616660905927036251809372792472689197292554792537280050941867339218219330481794702132415891351309520409304469695538638956601389320980723568222085451238329731717275929313402312330644134311157070162250903880203045866077503410790770840874756776170473353699232178430516640054279646349782894783964708605709369082245763229569178628381226047157643948071342775451283618867557235812722930277391482992691195003571834476262011820924956345915732327560956956774448299894334771812044184441081673863528113870603490707548800247582163867716022543853516236604467507226255947253026892097119611165498163319508460805919330728367786973913079330305477371999732373720476022458641137270037297506510428226157500915937695672376362063046887094519866193848284829778031956048832325296269597619175423819872094006078938089861314231081263489872447799149757995253439747042385452032491716922004119324137061502157850122820880694215855291927636202811201787359371790373638040370442053292140199830991691905551105552975939095939447243630625393488753462618815596908526977125566136120265761962729020950608198167339446463746398043777816339479584076357421047060957095113544984373536802562949678939748872110493695063466941861315840164529515275782639686406974945908508102935161407024877673008868240587909791801965598190179677792900250651245708408815623486999463470655102619853438043019067405552717278883602167301111799094157885294488765497251820859431099044764178513875104373733587228387079730710557898332086922904650033259346425422691280312420508638051528392937076801775248181507746457483227473919666533189493045004642143024274585992596871097468273772283882821740367645377648710535326301293822091476424846162067104350996918942774307466868669921396370246492123565686171524654051905498540359561544097111819834605618471836348481752073560334884934320517709646352049085213632677461399503277514032382732372030461046668141204560468261264970606321617610722591501646226129143733054445665190685270615318280741743956020554904751290174520472418625955350942636451864074749020689788313810462423222797885073416843665924693236931064644261406879741833200965585583421217671308798490297384605617077005425544187152742909306339778926973516960432825629971757607577766250048155847777299988279645017436878882808047071719555644918284786567934075649974798478147174184699830279369499163334346241692726416532669573634727026102973321784735642638600304148753647182305826098505078986758933664297928374122363314951261580987354224821052532464092473503432970284673827945137772166161840310718530793797702222007950077861821241692529151255309178034166751983031442108483784729636277299595712249840451369733033267162149956451105176427334165030078547374737457539168117285751370067925220291239831283839821094087618543510876610418772922736113592035996390771044192565633414087471583887299487925104138588562846336003639059637841514740438517854195588916394375891638567007076805083572158047249940215829239906849201978402074248080170569767486250824429273778816349904389301585242019699909679821775737323830103190767107325858568967973701938670420157751199267339838810184012887316553007507982814651556673709602359464943428200591039308525788277092428956860199074989003127606114506029407561146831210195841506675472381077952117199272974640568345032651887467445150512134210149599992820930029511824131923719553174731286712355377772062836065501128110874242529906001049421745676461667636066665458023661271330969125928601990550413310758473299624527890465517765077352202706961346696199712215310745998675760249036629919289513080744778588058403498978585510502695120835134159143175869587423478785709748359582272195194226486411975202413923190468352904043009203811668056430361393798123724126371640025217938956669302533985246317646431980142015778763739732572362341793923614279638727608007724681742825594918489676572491168624277751251485998149705341154405531497681764580722161375218536587400034743193765586678570552924254772411588747534517923400619342389010689620114156463883337918525093124110090259736261725576048905558437474520825339786533940669113935544996597073792174301566688112363340887057656514023471114501658987329962535737253595984940958765914934151175761698941445815228608854823254585752858286177133036911054452501420079565807696738437507681908128002779322393416378327561959565288846717728786615649173756825299903602906859730636425359431309126925792471800400100477570735443699910253055323334844136889139135377074542389964544695982653478425430101128778717508137065765923050858421566333542536035400559663051877847381623434021467523134641602291357320902454699662997766903853020140816851536244953949045155512219605245809271981108543549802638884610429958760596633418087236459038233912234319889512452498226063505908369173409147287677389652493724722953511704827997860483233245971890981227853341670418082397601827811776307385155604501639468149775717849443201490067951891472124726489873213122014133163488506629396699424986294398507524219006649899294900918324440094882585520361356883025521901421823041718869282131160901419948635946899288639011170662493147655414633585165477562155041111868121477128308881052801083148020980336795448141229216625524790398943733895606811172370804075136471154391255672790305196089928786205451300448038927289431318646416956152995907795694965733962129380473332933487174380976437121759482847845860531813814772884879964368576371252376779652994538451486016211941847663672702199271125306059698474603837993618872815081675600992720121298832689637616838820646264654236922813919746729914351761779313578406346862963531377595219047301512436967978369045001280363960283176850453334902246508777473627448962444989046070431044511882033284127294682459604617526232158251141653129701757273848255642886556813496933970662356454146052403370518571658999453499295824305595190842642836772362091273865281727791352675826192765260030525439097505351625950013141818618343351315214779686547731795327819653927521807437413434152057808003116593722443606162364517294810461090174217563430855432543693921045077971030115264106478378191435792429104444187802883340799290842795747308912406092045806710429841342611346835069269773183349453435685967550128359883564604908466779051645219628731458160576765677790559747276742372504640829820390442551489491563563905972415479620351191011904946806039262017375983973087743139646054486356005024028829002251238108578180878833137288892574498072156934694506281100223743081560673742410399477592433400071343894445522262376503733398154756546082474481769575025313149439201708375955961852485058410078209536873566360247159916249111515158072955053394360607007558600438391827804794772367847342755602973258281327162219638250059118263104293342708068748173000379464488220276147253924816247482601475032994950467782751708120661741446729771679292309037514413985914870778601312272825301617867410748095477931449609940390429704742408577307720873966839599688270938811720518957448208593406549170766839014970833095043834101297720536550921315832157306993854315178904003854566084216822337525617948695785398449633531022127592150229247101395884847797779546049816360178158697394673939880165476602524813378944583606129676166680037955173624678437283227362954026756479741727042016498909498134350429649277045865197874270637380854605701906440951731859227989277815636664519743503825760522596158815641757026342135816748036362379383385044751773032412108439964407237091842724418233071085499929996742826139278571995345410021363257114645462664915410519870174718227200800641641775121445629617250695813255896930233962736262289703744868623166225740789841509006532176916166265705644608373320760255883206052922330252284766611589048427978436677687565693941130918563843018382671793450498501780543444507665094245880967498468787938717887056618493510019034008650774419117156950991845399904784226750547414130352364618946127166713814553046114120612994096742935373427909003309541490399592789635235686296616721460927480465004455595325854781134820834505698621334972686568205371758033777339411598056014977612158861426704640855209379606112771825243033603062479194427255807637436281086754589841674017307434972112689383932989582476177891746592948678794016617969981365647602500100956032599761965759482375877530849402593305038525853809961620063601626403661203905331610022535780831753451594909329389544433257024463975387441000648069474429936749246638677859198836657569942595965744345409729806362135879935680378987396237895899754041674073513944433998297558625213447727828234595497865356480887387277069478050865529869472266218653354691548002939259228587977121783838501463941299806077774974913518779260995619852722145926016458605531593213386234160748203668140617329006026771576803301665895530454787182155130932864119416938254256371808107962731069390149514799132524362368326060604579344919467624320894709316897957952990943685480797109389843805522658297114219281658621051196411663463733037666660733045437046763573704262319758961630863107637291522813938082413213140922387978626792562629716755917328687169278400637939093045016538924424990505432970260920187858495731855010188240641278088707780640410875230071061001506157293982625849303436206409813402982695869657195909105625561310808656496781905268664535298964413138012797070492490134142312832416582565370513142478101250141966120289209821460177333716445960631862624627710680926455893663164457185526871210826180962946724930295378785635277404539258510957371644474660965306097841555347535453353455793765933485395791483762428470127055062896171853296749690434574749454552662581804699516677375790515861956646108185805497653048646316456437711090494215493104204473443320119592102291114653144290626481752136409311635592207244773586009087501036748482846565217315817498748313605200332932366884878786938050381615392905185124596394354344344520762517976694040393871036937126390977229719822322579138067483688007394553503281560065144520696483248873210373505639466482777496743379791483985722993560034477479107341942575103736325231686402295190741379242001371098442875576591856246252260245556081501778124895026047714471657626040486006918272640226613002190419721159816071955087728997348188293163045228842007749380549211245116973994903801662552470198588147627507819353440037032281482180009291772405473033277605046670215326299440071039180224643377736634084276033465117020291931515844517942713326522847723390944155726550092627917732296350235149009106885107492234830892220293480842985031210288614821604670995401765991431332167717324478076342341030567101326633643689024821435134884732895262125747776801933897382455629269976186205322423873991586197235814548751418762570012077534611511736082253289704435451600485902370971232312450628779285828178662798894947058019322588075702642224944403669215468405143316980956083629080858770277457306001063837528798423459136758586050740462246945496359884376935689257428245181572395420739488898110134186885640106843910943026494051991024392327221625888551575256516761089344723144492442779618180597719964175250597075465523207304414667276435622647769010927682782928321789752099433214629976804183111950450381361926897345596467834531463064229942411753296105020978898972366700798444551953527154536381357174263185399483498757746099426065887721558456534234465299121088405693778843805349627794673471041198362378215691501350950478835956919847670816041684247836020741982847252922466842051216801392082401289339895714720634619264107343129617683326287302537831635705777730610805705373311479317257798088681028066592067898548896467634812037436526594426966974667164269131272775449127995772439709300384320115409786811393463522907447862383185676692216105897041757931746073962351710484031113164015837107039008976237133909148553349641653232634461352437242533641270386675983193966616286185838221156952497229727650969972736976367748923898376354595539679187729400566295648840075702675331642650003303216538773918440174671157692536964368139847081562650521705240137947880043692217029438185522896309637265491751560578987221395932763755709982252454555879328588814642505650652212763882443045191309458656557914733904829776098335345890143345672195445466567253111413726558833563416315278767158867791213540701481378670614942416573646154980983898111807141219732425678493589007415880792818400451202793369356654782101005810646452811845584046580166426532903301314007658901845436672700940455778994544288156728147142807153602241230829547196761553051728728103104158086770240714653729203672082755421403808363783350910405682690584059763725310772285364437369828235533209934275131587491286899878628574804375783021059767818340336468914934738109930534327336250504611304738044335492402859354670073466650917803884219807899724972609235721901551792895276133630381767541251838696920953937386895951880222428441601305869157271689309173577066343364158643011738147716811052132882564924581115034245019921328024477515191702473336481049968318143999742114595794464491604956016604394073756393240405509854494400328451826884960040337339451816291016360377973636260408703398198059135834255378729666630261759406755720327511995102353022754463052483598353906284514255786769932583847746689236941319126372934566478878983341914509873720043711809435042912961788731846253643602698756143839872337851873950194268856952154581736844056098477243840125075130809411144179550613489116008071832687309273096185841951260285098501700508239237808695565917474765335627955801646013966675240366537610062332208097881607687189324986331362927077934442247685073372912500024536366545675485344125411214767546347811035327699547766581732760857370729944978865490673763237573288733281605083079612317535318233337480165899749126342911460476139572275137783506420827310186725512403732837228101240810106701209546612005245461775750925294162057130556611536235405988312311568483048371162990207641336012396351275850672055837898993698331752211654496616835324614160313706475569099381191862866641359540236514830633012348031797662642903785550919934538290097623573095606216096560248927979446255481813795933019860174619560952149027286362717698621072355201192180928578127225495632995762145626318726524890321289260487641627409490543466634407696656381000326209172603137335116576159366097608551429486880851312450644161502208922239620057412580239139025009731465128035694770457571981299819681403578891854678677251864689856654386467372615719603504708102928820966300964161012601764938095560585473366319700518326334292633750558953863518056066684620672156830957504089301609662770245283706795775682066261213536379396021303396243252855716104923606083326796407473121102507716506132430645198233302034633175994850246045935231229550923525118742841347917932135709451082834268875517907829325738513676783321881144120380815859052864666769427790756001318696519039526779637499108808802486427619426497685770096825264126888511399050416607312392064130830490563751039511288039074821345228013827115167121126364950882503478521970553621188712381431967140456208655505034282191720826785298332168576107697034397323157387983535433858239233908444586497078082790074600660456942124306325438093572972936087829310609748604398203936193872209375691069948483014760747751849855829770885823802965381904762404090597979293392125604851307432449659646042887220069811894477892399226849109224186872618663313338729269901417036454925129486635033205969488125440378683441843605113897598796917453965373556113881426570427894534608727411459816613183856696250499878289776543178396979048248224423367445046022429266995581328287564007876706486246214298207546223119640384519565820814466221175349901734563379953920756986462160815114460585975282485349288901966439040185191943634702505816357740609485750739916991054206891119759045987672561441040113811737798011811707340927881996248716678243361144164253780000895287233097470851996010274340855687832893403543938941436354000232161056363860052399445615225059643498381384931292118841933893020592777460984329803319209910233416130180837724729466275721502549836836586035354268026322764803880686334986232098369556042026533232521063579664686194039329977848429764792452102016460654223563341357559444077178509366206037373164038191724807157589805947307510349032723229321139865622183657373865266474140739255260243822970793461702915327903729806808404992279949408398215077057735698520672869840350934260610947678457665011246221993210393178079795077634653108669138236306124163613474292238946069542199371439935499760260639473138637929387832206060415160846556705321651948563948463640952591719161779462843908806584142281433957483095242888548842931360958092319671746230739583762402769662535505386273548010880828409094099296523607199036891688386034499499338215504974630211776181700630479106837072620720200111992431115244370027480542703379347761508821327551097222456198376919821388844172775083163508905068718593278755050908883401947595749805675976706850012663690776318005330423574126066314170889795477695537373984274354831961481741818157845445727100795574923811111518445057796415212105803652636052044040855491458636451159434963796900156574864748959012856305510316652965038776015356622864576334524754630060843574410837822826316783012497712551234676084392063196487631288397345733026960282027310601875367487310206265339829995834026588163558004067724703641601690973114604244367979217615274432032840309071518867969660823734233592921072440217232847534661139158745507892595839163379125855176629852335434357385413761330981604954039801105931806985606821687661219782854637845153080607680972988568775013296352569268219517401573707654373163194547436034634444126437036421721544768235095561854031765829587505480307996936174702576326221097527794051184890064952539602891748265354416640791191654129686192353827771940104532537475554123967894581824310469592302415969250102151455393592961984781844861415998193528343631729837781343980696007736782171509988675304179256916364304199702180669027310545511445545338815041112316698145214323112304963512166986943809102970372461977541458284080371923016390680381021504185931749677507662436371909657806074420699383862907931607794951983724286565995220465481200966524746312982783169932775375560209009203633980238654018272648542747047601761626813278496745278744422449250699254149368265547661411200954239065191140081171918177447758368837514683342177667889567063764236693259870611270083928842486144883698667835181262363180490518744117846441940840755030269571510001800915647932982249595602965680991763152046721135906567697123091906570256211570410304510908616509332736113211406574072391628543517815033282897029539890616333588723851579138577771410010842537033209976208902956944975258494829844075126879859680538178378094390025891854377197807945148449460984312513881122671210637069922709448850286583943293946546584912452381795792495270855604347808785084365996022105174021455422849701701517953167301465084883779178887587337787544584300522450857242973255962107661860771900593071832306541611550446155523456139027098292057256606887173291616520011565482388030976339349539647147514038161005829190814607309470971672520197775942828729262489393301369480368873366151413074404541997349337887402914850122886803619490552344264063340229720811997048811249005306339825255547364624121061262698909725845164005304105185090686220726241514343801303929866563609190623723327005751114709802500019059690929963152531418398850241310677182618936482585785939585971507609118689189030038420736275888049263528012376850842200771579504834398635720104527677434927390188214515068851121252064559327213579876237243411519343440135909869904743096355328489435638775556743122383396100016701848266727897148066756226158275505023782219288052096667171859245945750614737109660275655559782200607479579845962144633067604293105475605495474346209598522630117746006004768179500625214784457272476278715217258524290141862096254185551707664923051162478002574051714764758317237800162148900000401087238370988377277117881900496800783206343920822088809984162816890152164043459869954447018123305309547687078329264667651548491184924317808420637666379533452936435186812527881812916408140091392778581240687198818230212008870483508294197748286949680251241368954792807839925693445531826890134096338327768299660862044013538229942736940990997495791963015787152218429508172609952916823563711207091970969284422578239550532155683224940943998805423861920861466624084019064018394839926857032942079950266650202185852935443997588241789768533421641492313791956510904927909818777687195391112809628247997436835976090118464306835783056968364782060395051284039740374722217194298189485321325617928752572531866855710306761645251916874513155647759161106124065651467142479075963925230339828992487645350042688992079107511599747235126369872002968406621708649538975679450922164973370978811050257731041613378722058857499052534043796975632120815977512140193080657830542369798167183543187309765082627804000703909019421325171525890106077883839026279220416974005446802031173080872401544342711311167395430146131471460287675256804261631103053653480605769376536816894003903747752438002504279367016534358920130436620749741050153593204763702309787501015861254110066473438407208456288837797238903805524977526555917421776699490876028787250742226215199389603337368002890611994749046439196077156343425587743228928669733519116015318153844193925906839712488243231700071701936020457546818105104321756885171078742624517322920506399109534377548641577669808292240969883806478522558004369267554497185877838320599361178349043641619036139762004351674597399175002596378111569050333051749318605458975127268365103253870664580967501516238381047191849554770282288424017505961245196825105569480238211873493754040025435991427504152104316059883711829405098214691317950911735515892816384968899151036323225223281013555844254620504567468332995130387843339318352820002114554623756661811697196775353059469245720835205207729640023334758601535056640014429980347372910912860256185076160055567790537549329905817356098448467633122832465661477421922234186742631408067875062404785056927760240123816338978300168236374627281469116012971050829457208703190675325046991286527425525438296129690436934744616831520941361915539828044138916970377088696324350188702663462024034550126876244557605148309560498960113780846830088435815676921549981423219621803913207555056102625468226669854584176257176692066817894644940094200831467581509323113186691462587763544544222246460829183461689732464435811125550660136479058894277275043809582907696161163945042042932258849664730048358457232649053451049399140086073876130166634956732937736765553467078172359725933443078775524763208734166179581110764930977348152654910902845538704281422424366071369922350519397884271607554718543578153286910219417427368758019831111760599505255324430733259749346031949401054823267998381058605484936839317705995375952284148586269097541270307348827819905543109031454247916330790001020079393779926539880475192242107792623072565609286138419038149514618732580235020472058044136906052848586104938595318712635529099688721370437559970579697475557137035280206061084823077884612908639539788139939793137327833475166434671202214712120066764538393253862954345161497128690935990329154023748045445299363613256158906283425127508337098872547117963598369299427850681534030723074444822100328034183839602552932841748116384542753190802085449655717754720615468504437687255828784017820348173862144804542788710157955789356228640221900000454984775227214144232978014795225626315183007568438573734424763318293889120136428267019333235383071086339087765669177433797429619099140690753509846349895332189576450390619426401328398603413455456576889916693498594385398001034887457622267445117443099179574587324320403444332895714754149859552814941830671442991153059658459373874153780611580315356867252626472982319091715174392694370296759558946916325006552414262393522763916143492931909031387456198832341130454790890396765060589271763638179891616877619217137677207118766341627550780409724603547995895702062904257519979515935817289817477409744408324496259304314791369005063795848833522528511222120678028811911928227752464579512315687291530830532922707546008448679171560403241560985999121118379209495744800261161013383095040709016193665513039433067944064232033462439661554485664745124545861114208197694260592211051993085545387266995608864773779354626466125581526118789933792798452183760842161861487338303731492887899177570491183130950517383838336722682455469463613719016159862355157606279838240473760686070955851608974209783962066076256967301133078918121621138695862021354601680037129478290726182587821633492171286961507498816544386361592872563261556791346687333819574297930718870128388224772122522708264891270410112019748239295115198047294287273527175524503241978104459320612824508614478072010897647815070966507245378240743156750102345746443060818545224738615017347051191674634303236406156080223235215511774077562915368828399008354963123476147083842656850517459088169461397174702687902193871877343381942479236203692006674829152852057507051640869970967742656274974181616005083942611973202339920442459744432306895162876504126761207043576579092981685665207047554209421696331128099524692926014627054977662892060054835103443016392325071533855565257406101929668900575966608858892368653371355164149052953065725085868167330564600474975528615258469348068069016557527910312783570772212161997606308395812584419240472445381716942291901971041397257141430946788800781693696139712963078292855302604034652692982778112528326076377925614083836153270619040899469694285400923392140654262537458196296881176822848168486956067216880193845548719271377639006698450844528842568512831214539502252595042097313490094777763906646113079657848476365132025171920823178876113010127582517283336561225761917078594729950642417357085790501101438975212460227741779029750220224487051827097842924151736300501901287487688013452667115098551930809360109450767867914493475776538775634163086682710285918110094233335299242653851432605045897196047126883469661739775601501858035749621581462951961489817935950660703058848342913425213589046306637815011634793739532761916621957414014536489768030461120048463606223064876850687416708520833952372757066516942642517137874032996185401921350323073861797468648533305263436978882891660243517738889394245943020181612280872873794157436057584005487534696674723972719954952331768083268327497077469272342380333645946468755708561441233846304174017138477171950973667527900693266086847762275649632136179468838602012306455115016631792621214066989593074371080156100023653333233015017227126794367403856214333559556317022762646290395268001186439647055567857029144258921520891976781872537467994601360806587767241542904387559016475602696686950827021610235570030706303648918392622396375019268280794200996448815225694811598774585290605901135079244991127888331148781200642806840686386930187455036403028124641423989696272073432873421821579575329792531324650355382684695040302737452948487017821878555221157268249790836092872141369809014964506080284284901299943851328652279470437842540918865301354997241548754415284764651935030868427467575588733506894960847278688688253300449965668895496267371177848927402770330444743831665929687267720904509013354733975192788793573131775099206117934778329179360003054965795570732124943271632420310189978943501340323601003534728269428554889447907561241420871766781769723719748778133899558915495696006603414383892971098029055868226647847959498413546793603473440428296631708199220375389025435857185795972899000409027110576432821255229899251368101499895124848402102141036178765331836314859609287107183252384061904964358101234527258181922287601683600363171116294425135474219308245589136203657488603258138309420454001880526000144144463404215986588927591896439611827973068096851097235057001391716015319379062550095854118483993453609650723564527597346145750817104303362371351464641795854502705184750184142534201955612457692613341252850707151904546266140552866612474296619290857198997436442420584156449049103645181876154840639081950934103931636892831651727960260920482551894125752878791014327227928482559399212752176941479108484953882076102527279529150097967359375873962438507235204478355343340413128765766750939100639881560314655973858020312292284590966076337457628809044810492466156591281805235508225275767069070930756020177687521266129301217398210820980106394124579020254224607365633061201644982477194775551162438293450556650120935505201598991786755779777755737203237951570930913151000616612894051325103297365523056930582544260590145482367787325065790453804026397809417997746377049075380443195346427624842000673474233011862442757579443343262145921529453489129497840430119798710889029129459798627499937846749157752770854901745540758595349037469638960152532708363926181173811955091612986050902369235265477794380891911663253218638660424542606850093476248574974575581601390466303105352017715558536604255433620570640349791360724427645439706316299641653139763377383639474348145007762519544351541350032447378820428675735551771954465158461008393495210074624434192357793399771338786064225625982596950864516408442279693826681002426816922807449245287130762957310064816695846670131017295677985561963929705186210927689156361301725122849171327954620700412150351846494099397066353732294075731316150768623878042720755843354142152141393106458077500362787407851071486613741725447318736522309134480149546545413310810276153100392383673402027805830288385181662597502796293360222600191723598870273033882109457529778960354576263023885947446685088250200218294572884368775885826978091904237733995700667082415117616978957438003211740800549747072471894192170997054532316119905767860497515412485650772040871499802218755477707406857722794833505230132534777956149630782135694442842479939811558123616863330739902391268299581519097666542215108329615650909587387325550297167074037403521580240490054978240846687213839513468166310230326323342350320569397825422020904377382246981269390979865313485440348739470308601352781235101434190809531408493474295848039385054335474573678724352734523977277213030001158925962630504797102191773673504204865835344104055936677760600228407966043347609707109448470443808707982311189734725293385451964966561954729309830160521040094830828637133138330141218413574066257906041158500122063985732772880237090489679329715259688349439699484019681948832263624027026049376464349441749371494882569421536097817462627574067250473261325834010190586193968769272807249408773877420904173828614338984387939358330464428204057739100767468688552901456153229768206889927913436615140108901809658783700876250575546096756183805151786304352956348286002813821815711790996556630050307804480881272331942555772194749810190023508716949112726582028206199752187569685735977633912643748670108353081787959391294560624605578011430734666204866349658666459244656618206372298361300109010655960821789566865919353584995390086040359589135245877248181728250828780277766584135644583931414782603443508418233407913872910464046666662584713299152134523402820710774568609912948105581540767721854549526705192489223977328270622656976888734188259193312365100071323389357478146037193885707103614341312563196289087357527788941458903299391736585794686537749062073410681524408254864076143991902128948627650968889839689914989441619112446031615334139153998379376514187853093315362882981575992465232906134298263955792580846637079410798629707058437686597349486018008932798700617536162960530971523625104340344766141226595509860206494334910052925517589248647789422647032496195732240975827517592909602275453850171211445136557662674088774361441661803721006661028247869433986191238741604104279947760045853118942606235410403818021297153144303830324552403926243882081411207858895221578693741149473160774251154035624702588648835881834119319773189062436495285209074633469481881321960403161429436928890787059177984762477287571488793824010404172424589611528966270344132843857837368865280083776953287037675657646219942848497247904015793367248107075818050980690190926985198716857809728000211772102831075471011215073305182731242488730796523405005831976445921280325544310799562049153547210041400920779350965468360409169641572572085713008451228957031402279100671495839944641942403683025787005064871224445248308932684717991283426679170506947153203434677935096457225132046555596029403820478605887178085693356496522676979892508240183438185512741781835530340222871982704486043632743990704154766430717866563166701773245178749867265473583982389011270815165904985144366430189537997985482273496861569058841334239839327780845320240553263805437833417808709942008386401270168525784070064108427337483024755578947294881205643808006607677559434363558428092883394852106950794419198501605369418822805407901190186570630727550212583031684037405190846971017731219938906398155952090634277282081957886913332210562900948441113192590680580057496415733315291789058035125476526680328942298224198242468937809499939722758024556558126585916512804316379516624658138261661564361805001121191886022392531058682744053497478816438114971810299514852115257647082850214663022358039204662306372930610865603902477083916346590775392932403923281569167717530104022838544366719573900889557451723388783867578579635197608037875246421560579335317754849577694180600458257741734581364926463583228857743649311990312150002787341423219564936460064228085110992518248404093511287882984134203930210305410273369638990567124538554261257067035666636373295246127335374222805776139166006132520046369236733800123220243237843930616870799139196650816015716823576502878726039694464499301861015756343584084864916759455285477623229344249044696497998902958618521905305057003459935809683645809682446614026830088707396805224454281438339727586949146138047677359455152820256117377407802988926214130150908789013043361005949674499945285553835342906755561242676222168396470047649507619314308426808034656190221893173454908165746265296443698098708428213979207846817778155011748329577441343113600184959052959605044005961719606120163846252470028884306330935559006399249577520654212860503336518502488936215784241248051053237054311628014462151332824599456506269027222216998251275488283578372215069335581662080328222979782283188770776400125663517035279693352786596282698888781926094387883096002864602909735949367005683635364237609427110333694666256320469239544859253210825068967660865878766198396676846807713304880765044751840059417294856744613459586593911737622676917312059382839309723616010582682217442275827586382223787895552015399722291063317855181495862999198804534544728840460523527796049687829818583347886129646449209215988560789112409857535359228818199981869929295562338955992131795080815746949127253631057642496450431379321334401436416638954131884416947561736917366261202967787975189630640339545282987505715890345605982440893495553137415680770340573587169538538678989678883947613216398553894810986755490057810673797303735736743135743185684372263609480310541484992757889067687077705245366738913456223164991675478571236020122224796096515967322750651936200610479263730839047342368695063534343534058170314286223492674372239382135415331259265538439097019612426327612552521132880086004343683504962557928972439267597233704914969966550852251241641490198701722350515328059590474462388706648128961616354941403572167349515359619016231796422460850276850640740298448964898188028670081676205899665767391082929605936475875649577904500882086141724963560360969260600896193106935033993893410446155446918420837511301867776594740867149087063490885331203280657112691801509048923014510540120371997309947995975773388757321503165486108918337507647691082920721385815804830010231670030905057565205851975860692064801066866177705577483418808255630267104270731984466565056356407240136610633394434658340261333985067852252524271582742623907861102908065716234477067650653398592445393298738270258945009039004157496137175092256299915643608265627486025984501234085702051453062715028704333935010120399506975692932133862552340402467849255889802184416348968418554157211334068798135835582561948732343300809007303081598182201547021552344395315689473059626289072150318324569359043555669775368362734301918718108675602289554361738031639824509335911217866420712051242756040327696641826075838717561548786728543457649912971016124032408586081342888293184162057094316813380028188954846912910903594273029046455176830636460945589386985983025763728529830293001830519215203758105746921912080481345557810571595957604123843511451068787246650033488547920429464316367908261733378259893662229995619365251527295775382535138389765814740541286138508771806191231981812313269672640395244899007285030082321366211696273469515005821048914091858435879262146151725537797187253423432705667439269964917499191463958726420920977516915930902971946938232360502802613276918960281217479832527386494835966423677772823287417447986589403297268363514619431040055611476514119318109300459711158611487837967045538610814969713721878631272304823052443622918491168743783482760533793722140037000547003774182158813580218640459572626247225308053574371356537482399254785989528790321530769152501120233986657992149938083685149627317828844742912712248110305444967751031993976836721606137858595425309874450403640416904843935310155662366474650655079772736836047688857555172676294436729887302661668467931345611177929440267091036836532720681562341009542545051915290019090547778348180132241330341483670433755469526469230278244590703953287261138286603215897165738860092871744226718627321014622986684228162938023737910472612624967800992474627045840601381147113654925308663616323193381617879889230776350197095706114139790988678417499347896384126316355196106000845515602969423075325531068841477723481313918296950226545804255622090217931282766238611597478229231957209746596505352858753250747989115840950027086564521663551609697212989645991823909774934134681048767706891181752253005889454333805225989174586062565677837766620470606520327490920347959968223552837392135771855954733346069867092543002119270636802133138642850731742463652678318279983515436714493268674609204815819569185444710917968760941172587564845772692503942539910492247751457883015411973056691618878988087971917272987832698360649900741841939810969590701865623167711908065858688593446276996013289024409722381401226458821807872393430319297816436312877637914797979259387255786656506827320430729562723925816157874235242664233321870732480512188171440810009734531676005675494768690705375249931759410600295840454380227981135974159343064551969342092047055523760274398169225970459881551782617568651021404339441490209023275834751702577900736014258214816273408527020777294936474920841780973580338529340489947264244560842457467426466505972681638245022675890580483171211378297444642466083683224945603538981180460076738767443915329216152458717473009566004632492390466467335884220520340983256918831374255651625067741977884772760000942993838370027425780923207321078188000258057387087220787348039401977131971659564300279886790922834505975417128345656215125723860108920219731055691941254417851186216272554898090564942559641116421636396781847361191597142268116462466621742441729592352465395275106495830114669890076630015260704946589727871680735581792747246578732544918767408961113360456069628425672407783393197207727271873573220473775709244914626210725822819957874302468034543378405883972011873330061277578617347828056043530046134492460419855747284277952590477603431699835121163872476264480662376327089544888270364634731065780790896734370400210985361521833511005264267141753079518223913824649443628183960629901061597376200256170234897275000801693395436481991488173236274747722984370486808297725337968319785059477036456496837298169945831048256667705044988398461542340731774427282957671439719744106511436424955497543291998578303886570002615146184849919480211421326610398600670560189864216007344883025249176729261005443318722929660128917252829928042508460147807141207224790707848684838471916110586769605857578717523634889253041866669473158123289086569522181197794760279434734900641141386668731891862346093782657511643467266496398443681304675963307076001222402711886905863321503288106815921762428776060913634809456629758206105395596762128345149224427131543000081161578731380923621597969104964844630410720739394383078612103241472684732340706074601824804038129543604982085562687186961805268889937456622347278891974163383915089283351105118992302691146951298923530892154784715722731764240922296631840988460313533518088589235468148117633850338077556424995373512672443619284457689532592505148125048198931011905279937414561884684051200516157178043246156430216138188842231678420941753614458439036936627695324858788833356111945335694157337631695685653183291812037944662394140745987625629488554084185159046938233032076748563001281885062384580336236966212502871044312518344448034927689027548343274049896111955056402422176221448407990870535265024609687529141619189220916701232912831573382562668353619076756090114886243016972433489827592438867889416429444289211911560880324805098175956335032231237525669361946735731442627160370883852065661623220413408625528761370832816385548114626211921240971085911089298657156321722701387148469357621653994739488930448366687151835948538479664397022012304352975983748489123497923641830800504564463031768968555902090180832792504999232111629209810869950391838400538021233755629494483469735259113157513511114048673836394997822619636109880584586615810750108578678734723361942862166279227926174981527019581588038565429105151219291293479985961590882412258086315755454053653215415106651412875401921256432535897685025476161490805817142580630922373988868925339545867455172385139756767392690475395236646602429989502791931310174762087688811767320739807723880735324447354855765892857926160115509004205316982831002958412332066308085344076417154852477986047403180709237059592741017222702220421176356485979306803022037553491748018585232295691882743545840736032290209171784409000939912314006196215160389733768233634767854423299170597579573332894584962559738419411771229228832261921277090487394693240384970431115178505078632101410503121030585343150922649359353778605393521802298741915929591037064688508119107054797659572618236603224727800799540615390502698852869974933507486592758839621416686755550241074190762659503696465322054760839925880836506249658732555320502513849509044662493011496631607950761179278882887380006312028204611680067897175719922460026077094965742899611311604595636572876386557580627528214396910984351475624563903527964031614002900278162655904668761343715155358497551432621604531828777080384428688356567480155179779966556207647829817896779976280580717579958568195280039925741163345290968066542439028615419935213185888033310078075381161837825019323069066133170046462232100435373033350299321803493062134939117663764492287272398556321043801813716735893666597660591721684861893676870746042661737233326698359249535144398272896606323440104276654690766746947332877186924155678618765557629500127488026028211708906717406892408312093470466982048834862862543080409530711949912513461499340160567267910090416481163975066824495485044896518418075259492233044639231003990432763263102018324240373542153547952667948393022897746755637834178640818347465363189006300430117381950276516112345438208146766141481423118149049218809968709050623204624661547668588326545655713909180052603068144074246404972927831745879332622436093975922825807253176871202596446802792353896895037359129039952135447796791604958221930878290902927950467847181040303830968893491627779886918639481044992489364237337201603578343609626425318846145395024203306037319888064704412371953610057282837442843173415452811570777661885001638838986647739090035847043702433845070204844225223876328548628944315045903257669278967229676945426915395466566054937427765701137951603103630347304964141775323484729404434810957947246880167271317879610973943590172891699118267286026049748963909894388275009561809568375099122877347726191268412473974817971025863370868530392903229852204570018390330634038969934403435495702480668811158236093558351227431676612929237747183646965670373421886150135818836347731559006885086616174878059714296592655816496333239377785599706317282331203536725466143426468980239700848236200775030957637139764441787913584825254896756388899996278197314886917839712814207663587687363587365980178240591274413379254743988429630143783605410667856710758972213473716833414806133126301076738574112565951028381484016410496843855119285663549463611973891366415021168554083956371681924327105593485377122808187915260370550327843086048315195324838230395261384709341670258583310966620946350386414006939849183462472201633127180772434285633548893719456434769427205055576398944476761626580211226211595968681407166244124047206993366173184322141734859216375715854809484772818188581302683204647904722637883137630423615680708907895062807632524864678638191577536411064653468643762642575280614592208988801767750736697589898088219337469670898360008690367797331018960018759746925839948528516574104935953249050261263678799800914729787425968802902242851320389004328697864198817706683025439331595111329119053941998170497227130897676444067307514531891428025181047166532784198182823066388307263574179917078756697012325206929943687016856620878540341880383742702210897586081405422347483252035891862728224306876645459853687152994289633194998238549836086360883269034892385668140360062623749595198014910032432884081433490436794469038556867481131112174720221883323959652987198075560604258844203747605612448467233871003294229604349715611290604471849325273285042947330751992665059019724008552730631343587849493247298603521758210113205480357448596016230852325378616764693066944286873287945209523566269698504433471586805512683440084201459720835509483741647555612803418646579093908036579586918424862571954801489321620845005551871360943167545151744504727761084985319987919895642429606267403694626107107687921218890460087945065103143231563199247776120020311812240332913635308078306617919041901185632584439028294614835277879275638151722570172699916396859770348885125239427215952263414403964026000172450486696451684413921938165862039716261645593244826504361304121933566391902662780345261658911149784825843773266645740398983224186107396681632271387243467923259654574148934522897869111458443818805601998571204402513411534367415444748379721710817161923798142328494775601154911258134721630450629554058813814893245925866092560739707102812292287338137147914262592479676586161424160803034495528614792861573368078438909526558738783053550065351952015311826081210264523440913226093819710800431775326502102506041753978514924679104907253282679305905949906018159270869642005127093121265518360088312178474243139302369745378340420448968740031140891603892857691268074541047975377979299042568040860229440607595411411751485658752203368681272836732000582947318109948163315241393045073846405128793663666406092781679369964040551768368477099017795029207403423493213804290391577704819252331418983760470627471250000122352098414062757297241713394331087539141930489709978930521475237413437781632975460069539784048506443760970759904288919659305119590299128777330618894590557772214770255910761297425270668654407191511386182944810214893436434935784828906907973556235121508238364436026430900176520053695507699567940343147192762671040259741681727392472420384890068915049135615225565043819262656881998637827665133977423208550601916475143174174404294137852599244816691135940854617786731388542733889361751187917361337268624852354646257192231822656903620322383127952964224665399452961441680434464241420444956018484179750290452700746362797682165360900543583850902669657328806687631881417981405209286313729895631211751814528252326717057210618513366331495228941194346072285538374296741306331254208083373706020042181021227871106329433346685563681717701386116068328573812422600517985846534272887949078839998015177665203735904387170119903383278998621407963828660005579120458450592926289933548182076979298345940156113067442368830980704813521039516429224717255756139944647750895093483391947361420354437346469868479344804166388713263077444503144926581525710432352565775587435953460935478210351208450778154526398446393077258798751763728702465033174965174699734261422017480180951876081428172593557633723991613565949968618340585297327105907546564034050304759766682194994235047424546292537287370639348284418597187427992977282442646865317797821850415559549328890845460951203820487490224319673172499620010660493040271633102903148380987787025953978229179602534476713064244916245118933800034013487745279283424785832027384636808701547496404573676897753619684369001516232665618330286349019347418289118246762692955199552559608513392085949870027162060295119082653777762766599960938562041227071723045111099886583023941896919744475068297560339727883782172802405823263711117881288328372007701306549266640467619411513081482372190078699373685176596916689553992950328378640747891805624724877913753658952987297438994739424928940991142203498533701013550047155914112705747700657716095332129056869103207319847018053498909136055233804579116538405064052063669269065051604510492260537839251905543595267858934432487171068920980239688517069633120641023082239114007166119948348161345522702877253014002684179605573451569049387389663709446675407912011073310169230567920892736489037775908883331471225999016619650462467437097320155524286950033883738597689841369828896936185332010277669595416996010345935242961698035327904565770445303031724918771075622039909799058465988400581817064962175304148843083732882388195164250616648027405393606251766907062838188884924501211803538919814681489910092103034015367320546397075638237955248345945491693596667610410326239029917958041501485452986071243430085962367392528143749525078786945957653152731995810204358727830506631382257665075934091046002458727054764372016495039479871114992316230622424335496634814789047961157668907473899091668678220812427207207387208255491860298473435225163195490194464349292171206082300679531105302429672700909232392587231265838087893715713708477166751923180915692713332680575697728830962647919592566403726641277292071658795866997928423084962657682900802926552658367056390584600165114844843978371594801326861834562746749249948591993358588775938423407255713790698391543941904378755725824907684936141909419083166377565472451927485896927634085775559370741980920143355507034049651682132581863007608824277707581251309760198289071172910759164787726577759484725793587659061326650970194161102097366680342761573349144078094342526608766384600790457995165166295128346155957184825799100921196486847423365112956629343266228145852153608548650594171051191848971152935575558627548533365691818534708708910117646686289496678459526703431608778902621210772892676905521093297541068379693960886259997557045428896312049045252385431253068474666480296197590187937846967029099470612960325743074177735261682115124014770085867896807764720124186926301669500103944348301298723297446370710028668353809592957864284133075113944063011343209218873212919143837187888066461032515511620066338389711441355980220083967635394231533417794544975166521828097477785496922205098665873480261574160755996849774303936961022104337138986881232692132081647228717867360429455647689045965884886918359411486347101894220073902012632459011759431737313739234081247496791916591334480665522986623980176406369552738004578639758669853325319037089185207159265305071210686188674403876935277586993295212570584401960009065552998797291767041553294291580849429269103595376004749677936749542147110260346632661810404018086919921426147676741853892542385371389312176007512391930515923236082944299319399447022058798895993054164635122803994006625975033941295404769220073771101484697482048814089385205695390219391961662184393232453997016578599806770704319262813125560800675862062115949073199537969174668042656361256009422722309228864569477754281421682500530442426575548837722496576858381994497137583296930855230561601249580254522485853194122821305420794711236588244006710765820189655732336320733235702086125932350187801910443102811941098539533242597108977957732967767509294655768066919558906530934853789467992582250522289979119567100832430476267383931471201413556258339104750215642187814627947143503431130344883758098465324964755889062883230223882455955108776779771444967615716954711392115653769266995432470594984635998882178317709943443588687419170619628541204092665908076339002718783292344354577970941826890619344016950784455498408699954779564558082389214754905672745167130748345161168831637787334949942391089563874688337996211435026906292845761843149888057701378467744565462763870127032609328650173858454314014974510207542768304484451082152985707164253123195607896977280812617797421501806473315919250827209218524583084547359854765498904611938980552168370975503629887282861645022384810820383573635150978869536312523525359772095568819216405268674437682726516065762067993078097403517134396850749742317529495848956539860257446367207723452585727348642966179072170787090054557146342533775220540011048196361757357743858132397082531222292223061945010540360818596838945830525930644440317298018603899495321120757717248076384157875811367072977550797356129911586605060554728018083120642665634134871148304915039864151564189762729698670553771520203137348392668598665653285994475689134341017844074556896097304350746653249284409233360493186165439840554421265062464066444638460719571984875174016243407253524235167633731939711813126977959837268430387643185853310516191718237975666275644803084772974374181207135626993494685741713644298593855711386332375515138930106317803235225801183625715718131677368880782491769139683230559475491212481747409910960802116567095072983865349820021010816626145732528746758357578350452897926403288169768817249093661804483051515558378185749681244619602900497114210249067810176706778104116042408771757976145616847338434337660498817611215587335632797949699912498507434732069631997734734080251739075360283970817758046838308140864943892930262432086782497271689668546832928726846669423473520433872961203454464207483119218901127488548451967926903914000398539718344879512103729133092518852631958699214823564548066317921391465053179619067716285302927607405690645062289568883651122465509256506318336131351224364837226789206513622446498012674970172244552229288138845211141070022754729488506054277541244148468086296057424967041226987090346158010687190820361892316167291842611533631457860453685116171217878218604984913105029753131236270540990875932179186839592932678901342824289155092436647329801936469139271638136958334235193682649736131832183643895928385606016248353432029723990961310135436516569721751939342177442509660749471025697781926451215700471946338223772711501251725984878188029517452611925082972432817065195879219710323234334919226521418978596154599196686498169422643568874793452262303113643599635820921447932672989079829521621245474216752754223643206095604178162260088296571259646300757599830162024931331868910863027456731081201799516522058654610279474517687249020893415618616566187547817844666737321593215613488108085412113522173514092820629039738286107510277754016020857795956789732008971131052016408933350077164368102127313119693950152649146563528208910576339719852206626344474349982786270005396375010768094665202302912326096574970731841897295071535984963868702523769093262237027489562707864813535527083796812618092984003784764015424083450318841285512911007068543259370469888944883317437488139900151664384467052073538286925880262640349049830435970077572185444594236764413509654493815392218574831288235276088602818402040883024559161623399928008654999917706012305225847085008681581443963741417434010689834449069544878403923840611362456208586948315562993360736933746035551669267962825975547641377355353807549595329275048950246842338895027944488754850678192202659624076749948361267002600237004726685277324084905110683502223912438161839881141230794017377966844699921009633765071722722875277390899792048969161927850652771647161773671365032997548539553532621679985015818750383497822310572180647530742967010889597848326768625272755708441043998235716373605275927978590246584953206524479359666704250740108613793866324462799595098593849067327588010508393146732265908605107121950752714707432401276587295736871998235837965618281087909118167628877322565564962782207902201438358745661156330604674786981783234783551108969116207327756262751947962697553949857542739978741893753501885286849763734047787166245746663630114955173782997152278592184838812526274265313363143981800215720535133352642956997032726074683764386749019008103475424208469389492375834901875579538461122749544427720252922580340372096431799918830045391364437230120932190994380116709248009817834924243245654581722345893419139661117251346524717590438132308087007070504169973617625389668161986940656961279125632192222608987714283605076395415309728715165253579156777121587814720653819945593310012682835338082604350948091734780735500890490116799759056356634663510363625170530618431654020728770552096325941296162648514570719678310736819914600084332843906419399980872425762783694261493832155369730467439759504909287160151995701984352628013146742930874842263245253043669594389137996099123589479220891300360816878392972813146613809699018527827296411405184159843085534965540816550991260817962444884950025548563343320888605261187922448552219358362727246687005840084644709883592290176535267910063531202498565834934794668946188630465219306474841832645445665352409966909508657728867830578650476240009752609134935768341093959916435485398387499661359590540575867418478100547323414622897464183367992774248648064526180508505089169423802407222176346460649261444565887109001058709376170666900982153687549965502103455527066787862056152546177403738694149929650939441294360546677419828060894304380847212158130141079147300600760935516591373544500729364473321194654355134565382361032412315113803307053690618520943308480278722839183222405798316713964512217349220876663048753492433782040195403135293472486349905372539152778095867341934573672361133101638183495042728850175471690259321275505292418031850502853508197192023093502072310870554567377408200387473292565703271359798893840740918931384028193979161204182259720090138815541775675247829726375523757049761158908334676333612327347110776211416065415409314638147663932496430142508631936290064849311321065591694181210279815394893113355219547293571080251702722982662531753587174143302226147210021457808074880308911177309495651476543993668793704714657470692492757144502818062532608285817415359242330621789851689107968532995067764922323228660505030257206285309448610176334879921133464461245168691349036525958315579110686532094688193812932887378226920560700127946727918114004315133511795786732963161023112290187775096108642288175053529157388978601933406784699768497377225079589471656397330802726547387142341597195784936070148181223006232757332655209947906884837573132746675377449332686775518515269369261061264147467355720279761652147639526567746763093177110468886241378196607725888130227799890591441709887521435265031538638622115765589391699361060295989467835116085660481167766744020755225795666587374520847461076255979443907881447452782093190357362017416939700162366514039565814353681210734175414118168870158636011300322011914440642069576769165823167228849501194436066912525117351417831760070693847724890302727704417278395673804307418418096170502502067234112547882318803902522846258173425811055181274151170632602869050286932777370375091873644808436481394492261211112331517818194726385309867959485889162140543017751768639389630351550984327440315332423258995300578501111207221803385048192552403571789596957213608594242084690761142907250290812241205241667098490396735200548011942164538520147993117991289132119049234758794846495113758870847715411152313512328490943861260728243406449092946082727581431151270657677818745444386325149281343260714241853803844435913083416999758010974106779692849551293219951700545394041954922144561151778982306132500581411980317429779848117530725519669885577116057232225088303572636603866601575818164365146731285780003330765785511135493187959644652779069952630388117973662196838356798452945187964868607115137016299536506014293826505176578240408752865354962692715117565611931434650088222897263844888369064108141232954477134688110483529773906093456983289312064568813288990702872389937258465224251970019226449424064617935812625730333447800062887330190799217344578605062714665748314939781384195794457696684152575630877460888186631007692110700492697422575482391309748930257346695451763330537028871920289854525651331833658371500934812689695278204312664559530356987006997130874822847326398371300869090694530139528274770773493084935556313137315964095291007014218610816777817173716800336937251819769586313499913499602784552056550641639064611673084179542106900065639025952017325135435320400680134133185064773727775771065407744846163700413923504783211365827061430835880829669092929053117547521443778919773585862397239547667303712562035719594246359837869437562194518424945019065378871213027134383229921072595391646304969812808202335553919219145693240995880628357888709262518101033955774451405898640801392685377072663287610609722459362782387334780378694398941234710162914929323934014694735276941398161202858182112839808790145106565784637167491952676608397203176537014814007769860112605227978927639964771931792350299482429092097561586233484849552926858202269458396186874917424456479826204758509357042619248772868995191683211110358447493842614716084854419148184960249458240657594421193728156637935402703219576583513219583937137542700764623623699304977474918500805205335383727521103013756736976468303168270980968287351595993857289077970934318175573759943336871162569626417871554026535098945065677075267253506618326922596682048413295418149416890758239843809498510247993291410484537486223820345713362367149945216097830167150397907105391694139785270020493641770768822810605409380191805671807878418452817497341498802078143999891189408168305748129605542365190502056144130801930468072357636792429815795276448021897828045118036014041800019019256323855244248117317929757464070956094899659460590245272014176415290498468784395286008843288247030491863810294521400125181664955592525475740230170831021580703794856990402714745561262255082697994218232929922659755073822046450531514729270798600639527515609236123632875302862613610040414253182855461611788429155672851693256005132981852000896823897333958907449844441699296390641657747474777668604981310475451690748977952745096442340586483633124963010343337694181409122393169691278735663350942272762530754126193597398440643635683869047304773570797736618594432969614862645473857849969363120158291430658886308176278362027902673430561226183152328484752069802702158698853850193914489971214461936410302989024611004362669077517920843489789286902510387008816064332270318909200933409126893789141190456703635196401249609555416284610482567241605558376322879001705421806501829596856488152119428264134849053201575507068242936235891717854600689846032892102164272072157097395422300603643625766206891571652539192063326765780622059139336942283393328752207792112221421093413536878477695995969315604782255564688502014413371558047428925981823385431074641168456160849792396554413144248985374442112878445867897156179614842141410177848758815531853660076665964652647516057652346216819450538423064770807130860792305494285610479945667203986657035448043184538606385079417342051640053512179105678726782614310849151803031135583372772268524204110904743235254889226116523670280967501906226149226301939798495178522498700728520896369834171397217152387802844117586169346067268143109306983229954473806566677309752016234304250615597414013483762186091971058518180321652580783524224701294878579210835490659842334818283746589497369849778577246419697836660225088010937737411463414361446497189820798677565684255060551479497765185791398244062939726651597141993978522456482402040488646866034663671647431845722457930061970748579190239835895886918867601917147994269682003542121362248366983084825823488775054718350016501105439034442514102075212359788044822736602559071666089116381661211474141376745578057551632257759634727358767215713371936065671780353301512634349272975998123663740310902520603659356813719839723598649416629816984835929689998110519394285588404233516081375686045169767153368837475654702541423540062098293612573001352903794590844922966110586176510566938016087347373786762717671423156625509182531530398886436095527393022321933614670635243309010180117424102786217997156487961574267908388999502859017811143667420345018016970824597493963036506928396726988121668957746812029161153687212328701828070554026286199393970457440139310444030633874756717878058480785722457428561880313231352249190011262362572312174988261656331339475572439268127848849863811840506459297468254696114149866037381901143235616893196425818649508214863609248741594249719287476417040894581113158774639705189759306921129597282037602620101865801190480081399784746474127406291498594017797262353018678090004994658457368021215539718668068988554578461878090491864161964467759912612335151675168005597031084788906008951290491989148901512554056306171225681929356121592138135473829465815183949289876660571117331434234954082003450880887368812138646618305151880241751425771166470128974349317754204434987547536902612538102391035995038438472090699961766301770546000984309550826092232991446501435446522006203266514217110976784377666044616319192085262953296227730293865853863435045840533967339123914711097082795745437309571448540556876593232207922073460554160737546958586187244990726672607824449936589875592001417792714917408876011358475846734945453602993389586513565859106738246402617918448228685658489543104426174424914444208919992571472187951344217211701003681524202758810551048806807093168828220275179326863554626276612824619183772351512997725464067352621531248211248217741998147317062554017003961098222348857874064169428333355059814545260572099245613142599306799324639219151936099714018750590500009425985015485723434095596213544506750857640034487224475245091834806876937628259615240650262075592309296625383256343385818114326534017411681992491077490527607658645295077823559335228448807737833339917639664706336102480307775102646873228520422441092931951148401092476045125860463878243063959632552157387548529309901937883519923586383638378551531211128584273230868625415480192211953222493928456479008570829268897385707021893759895292599890123662604850515260274665940087851671085621338576087777161878270407542179992392618956072444150520496696307389185818190533416137706744470251970206005082939015049436891661909462637673711049651225384669935339760838506274533077004098027477362991645729955939276831892201947649534628974871989702862873819545828599953977264349679241443683611293100855238549307637570438765695370194675030543391369594127758606965852614469126969889976477898540757356812124083970036945707596487744369204414183605950051056135121643853280918572663217549104853624515881837524152848155989942703331681954449598769956960764325011850389553461185056169065027764919931310139851762579669908257909899375668919743798472698360206535598008127201930240617105496847859926570896696351717669700703333431374242639961662509310562411286499754045930015053595854525957220219025967769420235806905485271919919596689750192209331288708231261774477507994075884597605300451912662381470751841267557548904522967818019676639522136844970859567593203909138099862374814672002716985108609123691270819394185322259785362901573349137414607992858599517832052246386419536172161721657039617732970818963769202428819117679691224989271985717431199899034805126742547066696202736421917638720225635201638993063806107623293454875910860684376357276733063063781065467682509989825953294310307337969904798331645421798207154803780461847176501982073296671521671112214471415512008956214308976932747170310964768986732817890202121935248729555683097052641221856912351075914254394747534465049602157107771494554218785596256800901117601264448348338072868376976473098973133296789687234665562485903857913020665376145454711034921799463562953106921962496085382583042875711271698429661588549089864560340300108767150037709573304609272096503783327988675757492398019924619427477761680439348634926793435567761867687758001677651548578318699518192977901589174815811999556700748835183455574240103556741817829568918043276994316653228881878902609091145102962173701779811489199295299358244139356655234617629830165776461245330039791183628094635119153140605406665089303180492606195263523136521522970050580892369466687676258515110900396537025852262290827425435801453150216107531898789218231659318880150270059243497031241058657040907964204862526736251531827783037015735712948927405116402572547172207819532794345065753857614700364422669713834191437584368810081431153420975293897197823114943136013937579452220688351765258672205197813074935348339929630081039568865202081051329087448610153117010062685217666875748229066329284201467284706236773767690686256525354991625131451664801460104133140276080338765283958414545220761237254733195973219429336645938110154145606089141608023516436379046070804390593298032966292812378102792585944786813759583442817423223254393467924826414219192114799213808382314104299456996219344259374397336326523989234037740888543613111898984038848993240799974553489629435411006473713019252297966969714388317264391091346360454219401635724041328215151987692896754868642252048768370137435978500496833729070398231804923947771969751693128292142145508524275939005782006937625117083728735277694670650302891268062745676174171475371359689669653679713509141171588897611686070995599127590690612405748207566667663581771820543672294339099343034771696444416409170083630590317197527762828421969740975590255921530072382713515817702460124691702943385333648120419895745429048318157855646659206828327495712264425708608989845800262624406218121489967625442389540341044434725190024640391637203424385171418361362503170517616298236377124150512758748519427429580006164971889524636176372020876420751545525088623623729420324981259094971907979012247103811619268849196436208845064201098411244172177655396976401814821418820414819372634115304006037076580411305861833247561513664141527710546675545330360735749646075277425339531510907716576395028538621173205772338582052115530962031366837096159353396929376538137514732624871490476233377519460002661183289903262083611187805998189806536753943080616066536050015968171362020966853038505317474155341500166161320732557969196888325636388032572828441902347120710931991478850544610262372434934631272464217074498060574523447508311129295196710362968452923177170799757122777092544209192321929801914325815662300640157565262042061082723049266864928887853339281881624740695975468674743638450057055775586860525717581619581773936893729614454901882892135408502402055309103982816437242311152586376392132418396752626310913702552249339074384911098340492333871078333240834765416592570977504840593075823838809293312739024936550952898561711264489583788576744785967823438431474328090991410364618293174445819127388959148374444319231172458610730939616909972470353080080324113825420492011844363241344268796342712537096288807375373472861835595700965481417375635624999409721016821369558132399078289242666777377934177323696583233386877304019444053210353699180738923840891601778837172093401991978811781034689223791958876533593754478569080624496480632934076333495966350041605502070672769303142676976663389445640847335928975490433286164891589806599856171529382359667008795177962223375375956038965548137016779810005183285146569888151959987646240489806279128394479904972224605113300837400834549747655733782557616586131150868962633070522671674156984538293729116914362344925581260261263761840535204684684122853980280424436544623231426661040748296256997942109086227405135183680913571408271411061460634982234558974240404638310822991269158254298874754177539337219101576668104672939629940503618111132605322412702069278959151771025026089888033989298516874854683431730644935951344479299334013856172255743854450823067730670338587975114602600362763606496120572826341813236818093661140409317178579840798998382341371774592609003233913083255350029004327835502386388082424314045308446961362543100989580491466412888035096105336649244106603792850657917724232773957062289456309247715029912810491422668600333524565370135138042864398868309005441698526845245963046921918136988404072523865995929635586969011699013020792018761922452418549238549066573396038857340711457873868168373763449438744431420786527925970163906692653094645748411369961282415136027374472985431316158763650595295388276789628437064222887133198232560754528002985554067103671078576532365447359707739192733539996029724560289241602774104831307433165943576545810737941935219492176397888529807215290794600156880978728723362752007005951399815191150452620492407912245511000568486818931702222770604207509905456694534501223757665410872601616321889439990139270021687192779878600528407951672220417123301621224850558158368390646054779789399511797056804742694005697423990876025001355259764808744924912527658912650021998258043009372982542074716586636483296816845522347501131487624073470289291272117460875553431926940997196582289462027171812301232728485133440319053307632221189244922841659084121438503315427650792021505053506022345105782680285456222841007009053350582588969536830525182909800465691470683122139979746282262696918657673382522739752232453517542738730075698256874726948750596340652977151363766341039112766652662119656248791348721181624877956221714556398736952981274120228795900066778851313938364098046620911617134584026113872846257264818149524269010334931883449233024136444815145321911454628722408833258483758198815823464249674310024164458118802252798245443165566568966879923746446516166645110071922305091294239781672576046554544853812292025477578182987476582535723888915325418333160907011753430275482221303951419187281159834571548536989483844780397440647073068056600519011350701744890143120908616561058468380717444793619499219574971919137072047779728206731229603231018692529615521268139717095931301239005086294930498652880866055969409906747449615897125354624893516546153682141255000499142174596911672941592777036963882190758466191590048537613357190100963008360856017966752461714190673198387477614602769648125424159213396395926379402494693078806156025097121725129328770922954608058871752502312770867072813071722217536305420370189260007681578703521441650276945571621469172008122675451760455705173288518403569291489355307927722714007372274888571029986365713351052741579996204885876918594214049502444615516103925155208908828985162168449239692674643135399378146346547006127931940950087465705570626661963606912398186358670870417441390969280026013391870862586559518620468885012076729845776074252833928914991117249664928727119026569606551428471123587329484187056968062701851092701109073049104613958779207420749515931951255789860922340812443061296350221696418267264864525265198303754308887242260169960394792662526091738512059763690063608565442288474042761112903672036568930924522341437989163419375833850665044799457636058034266032627846944959566491091455603942831027198598585633348887018972152636408340093573808911048405257316612534620790732601784771591974068512781968656693618193210302101769242994067419155609516353872030560144917920597218675143397865922818785900265439865736077004456942442368397291160903621065519573995615912563295682275257546926139037407388751949571742008762703053540433195065945342603951261942645158655923856121974195455244872427221904892665030627900549475434636103845919683724829550597443656796697217272263059679151155673297306082051810210581804600776011027839718447085814426935846699912176819460846035777858679675733239633989544912502434042731081925325723161088525462918716321721462564234538726990554890835105952819244168908124884482146989776908006456255723474239664354426984021828338071013391101202535442143017627204428405608580694338716686959122685664148330607089378063438899398805683662333602719655774889806109927863117193938204899767495772569117567348356911970444011892294217924666726517515482613258056594368893730682300590515285470730491025596607382514569157177832141928082225578419673300539152616538497637655108473340622800355823863081831837950987748829387613471622580275182453367966955163355207498249580315595632379220926352504546954681969997148595514753448808356205404785110060565825924765447642915665883880142828171409683814868983555457138892282292223882770459373793502766276132627128075701693865328964772130033391613852835653043119811764911177684578256532333450070708977763582627952315148666649024653772740246707000502489529792354572621883573132848463377134281965261951612367569580387482318956349027365640995877800647746466685096906804968039118470375269924777978914062315976352256041271590025412080661743295594828762562836087322179433770312396289273807161142777235453801153008299898873192707046538481797181848653264557800790390480474103007557600706856015497238260024301838988828555312328814537966337354277380638544985542741952932343673780838541756977788483924757682150777787002053928308419985800980354076799833003138698691377654876451593145665893676078117523022284424450978831698505739511353033890459362679257075660013964593091454785618951350839709369899217258553302824893287915463228007584706185002254843167942973139486208573180169825699517046407062350442149481668344049148445709750316760754780198136857026740213042089037219872375758346161513742560541712155290457320065271831252835413508353593958329122727971226645831702777632211272615720546856935139849045597319010930832991457449103052933559948729583996118796061472840255251836504873499052552431213579689512647674747317664306776967141566726416697597813345047346907359647434976862404225402661217423599889440191948387464926132315325646245738112259573004540704228526111773981477092616403321196763017842465751522504641266130303262004583706348082560649459113942651001619523975231601414770439328170444983115268980408295190547084754604289579649926361739564550086763274341245275993512161295499051703653539096134180216340541242845609520028881614325763434254347265162110605889455860044345650704581868257784927951488154372105986954829537918574662902559594490113206608221726206685395301495380225528970838755420134624911857194988706083348230230880711409812080743458760435199210405945782618820603333788449213613013395720471602904588259431772173700406474405135660992686907489702713542508785440037444832687895417968508210071125360751045857495161040188488120636372682155960149277389601004467264619469886350835960809896987925120185358282582902276514029829201838341194828335442448341235652063742467577201137645225005840870862709208961844114814734289879351473582289641125703967800200071572748619281162124291617064480094461641646279265293046446385118249967078596712633334771605351554385100486735465803202194452708573035670641382372129916277021734932390055045372595270719414026762858354926132658338674788682291648301816488556074457262832989065189667912814909569174594069981704810361905016940812725501180023786559217375525380663508422597805770870258669814088685471722637716406641131301504070305837587314262121586026640825228813534461916659454479168108073804493317668890300911459497548841465265388765368704040333597853378339123146027814311548097087567523784021892266847761062828375325065776433712907258186200351921180868499171413782005021945025926795118728756765266099681051787418242737251916537949318448535948222403495827964660675935966559737164494462147676146265057180223134714489433904987048430372090564119157382552599218605759702291179801660640696808035111803683696938020768598794912580413840817236884537884456437430682183989605179034389857407043847379342069949886073257792907506743825644266896915372877343248481367485265921005877857614237341217690660937283186365301007616712530606239333229402536456604939409151469347117822014813112894326468013334422366131745584475338985489929120463194004062185112767919798299296425276564715722463501984899626317338249394643504825024636437783826681792174713889147204393404872565991735580163489165461701434481296887453919222598454005992494698370346513270024905328640816145685506429526029692591134529430824964216272517336521810777578879591870249088462629462111266715922655751832880930881559874002644164604135580199906029851775478092666660167512507409132786185627407571564243514628471684169610147224822934707722195772063467326480469044489044660181694483786444531196256769755089376214197794908239156245571714928021306824776421552375204464943878010177519360196029361732388482118483446942213648310250004847898518934845064159722638664441305587895853558362044021437806744068719313077523291498097003602585797134476702710862779208843220588258325322917195402820071422329802617544419785630423307021472665485914987279026866965956067269295143702930346113525488700994750081470067693698355613855100485576489360837390440599542866735514476343666405413017450119926751424369798225544855020317689441876985077130958017750094417731923926224087417797086416477381109822295623707550873907712683069225981705480690516672463578079657039412488041641359639163086063350643947614590846694396731394515752257689847857914187925472794262520148381567954663301057088397448020492740444247573299597812162223454639788863974854197965943218790661541657180381022501268684813298070480364762298230928555640286252136614650534884504195807235269123811514577498732990881138698223827962318760863570134981425563402078462260168874610015019966937333750339002771188222247190173669216861576488571667522074231301841877851201541328855275327823042404149044269894785282534532523912705531971039794451159578750677605220373814289293431899298947452476122388801181377952139533471165465640668541094887329907124590995085588670717039914211909961897707190341593516011902322372469242373678513825166157303306598261427084489317287435147778004422026459461263113190420938726205742470381557797558874323186895760686085009946912373659217670649475607938759133283848746826449895858504671670664144820337445529447727280391486421742232888755435793040900301910454117015868465684040557518069821081376131901326164390985681377435264859713676006632062466046620463997560443364300945650569659023846896097138672850428974234410316782256833337375418873205495582546778787933058883045272423196643339324484232252525143931223462868730462613082123035859286476684228779126010667979729584849144974135830807350728318149943500402212076908722874221624138303693791557299980845141816884587169500135419752776776174739112845725322124420847098445186750464783305557885071861575058247299186610059290866155955843117150704587919015425165595514693395840178088605004264249014721199701332448992351646635490676663214005742421990588424051075836447560834883366516479527317517076963113800755979274337195332454506299392694114724508266360816957024790657392631011924963733122888507774538230930976554599218250653073870651501788525953926000233339942150847846250587540326234121758540289435120250860709219249462731252466689469997433129455099088569050231808305572622507785648960015853155127408971236180261884868145193978485394483219186236392196963687304235347222112136870780666346224597126472966797545348761361505876664649780445370148380536758061915004188969397502551123653824468875417102086188021789019897913295206680144959634083949335708537743986559074560052589501690691075737085504295807054678287900377889673476416996028609910004095738139991155095285671919301382734247647038253037285522476013615993534782895441767973282649274929877464147084835730855452718109943784097336714068299139846770914757545709788626861616194928706843751145462885133912282413257294551619323840108225918678382290399869650684093798249105609597108002491426604052530025560101009819642471419859034007863329196329793698447770182011436286877468578120914494964840624876378482798478820839294290290515346062839204896474567475670772133362276613583354066290428981335032953160713540067561766611003332414186934522125702511844240522802641186150350711062602162019094725985152824441405692347650734404795093180459232145015303397624487463613690360223113463752612713000208672276399834386460404804513662541864884797699989474591458200565121326358164313155531502106377611756651642003567386198314448924369088491863875823920984295063747444323255541063363370310418950109320132338330579766185633559934808073351808702549828626779349487303147514332996216677752570414908139680707900370432990553496691270658167154009520083977868830667277804119336645018802970566758394419849602218782982950648633331525931892951130772271379576376749560587199169493419613439241044286789796782861687413638275822334844124798317806447296477589517682543390740142117820361424915817895415327012027332801177911447012264223533105990724679100440908760420167531549625398354578317972156597775760639582427965970359156934737046341590438242062047754413463048902538972688274158727129854737442568359198663420113492546974545595753150253801769468665571181795423170750895754097921079426302032153754541915922067952138108390727349861139702006920653469491901180508291335944643724643534131540427535587255317752874607743777835323248450259380030163120762530783872820820684332438400733959912670098690790400180826507596133214989221582045890464027910947313615013026161781411173814937445820199048062198467126479211327956040597777309074016757125824945395114583531610162420854042733983622313400678700252077047927834239826357212720448894980251227513619596165917296042534152829729475080851109175532664567241182870862284091925843343983743512073080281733735310980180475801504415425771928847628106126044447719795015432064626916659596264145664513169226747787339991064637990776781860726540487531784772441710029528168535605144189937041926388874222814827235523655173139070926711471832545889963367686926051103088821946432917789808772047550601877423646898184810929363305378754647752478868003330204632658155514935764109211849837287898061641149052915063358621834621565475257667937831149236710416388351479762897137630218000678923143530955141123860091585323208449676291815734840552655194892106080329816698742869381037787976070659147083609270162069323009046018471492491721956323362860583616716381073041245620977180492264404298105201560506129698917357702214347057103843117258119307304812691651611712033435498770133271121739120157960491506475535747668569720995348065264620504141486928100015204555691539594830973137511154242358272600859593015750427220133958468162571282024309580449962309209929329883079116928371762454259386868652763205523205601513300102877314891337686196780252050625723895063541926700802741571147498549413207170554626810222492757341543875489398699282594619054439755246940072537944703275407022921384535704241827005149574988663105026571903099583714854737481698409101281119062508552909378093971618875202633709765634882739574095923168067130700141168976396070521474387178155638613724703924635403885134392255908448974286468786869779797580059451110902708357069165275070303737817764303926467636200633085927712641245842209532421010284391996393460542430741095741673297050954287095601325541378549858391046673496603677134506140171480404025864253706713025598813441482811870703367199241340675802305053657988088557896288098455466051901442726357224454130175735834766748237443422131891557378974160200525636853165734617251037694735979006930826130026439351246512300587676392869992350836355759117961920872943930860588409589318322976925742577623973966804436703599803053965778025554209736455931235610011533846056530062684336634662933830459965373600984038637306650406065203238779561092462693086276568925149755172115206012787797489035734685139261854999501375826534750224224488019359825101975961909203807485287232504179589069488788548988532843406671833687929747882748542219195850010973632526280338814145441514123689951904588002678756170453462316228950968322003561874313871786675527372281991491778605369559425289391133815731204833310404344856884105787335488334973761852949884383833183284923040480297783410756607757792323708402854994431180378876351179269470512774313089729482787954963955324320397325339726604644736462250576133283926713793892776583824355113123453263769091725045904236611465049227120402488003925859003277923754884543185220326499266828775113788926239164316023669302422869883323849718237543364868672063416719145641317298720837168907775545418405015419065532777944881500134214580773807582875232605910010891894225656595811318685597107667570852234887537060229514882802199328173520161923433749591247142113795946596633946866316978315627276057217626068272686916870440877197136601439836684290926876524427420987940224649539478488833730901932601755882626274971601253288342899100171467791018104803598223523524809598533909221485343008807232684724484416975849564810493767934211730431480487246141313697780113886253259156931630086966077257248250121429764864625396623811225157692871879618826632645802982277245826119760718713108759691084163463219373458660039097747620042490412166225453371688755406981185795050409760179795203836173658701673406559468380947645483944178821910472394054353980380845884585845205212662131036262557836093462397430055127297272680166385549778628100893321537557242768276687137398610885390716605083666641401144993641430615122614710641741109483350664815835575963034188294739800294236020887262023768868191618246203023350249584625645222531897691268404245171676781170870980893299384699609666034568578954918537472660530659307826516110911639335421895582547423177402071719512975516433328703554706625825073504038358953664841647675921045022162697662891335002057696475942677404082480576735070614486949780676924391349115648509239665180760204680905180636871895473441273002370662833196131682325416359590787983527428227197494833156861874010916561284666710136181737472250279843504921681493646141235347191455198222875557507343160937304416049879155908018564871793193689323105856047331190891095457636828776077129484520091926090660194161839577031676782869544636435945285088381079549147192185849829422999156003357084685507240727688429440117326105315301067196853955191334835738734359916866139720524963121477235056526605941608965511762457708128137785000191855148862656698582755127287630635925691303185735035657912544184230288589327963718065329811233762388053404244637083145047268458751201937751381723876267691654932626752437030846550828861589423704003699392176910335324282023314186160925808740311080695792436536602094409243533120251851949875537922597853342005000786080190737722046689480929004234942144909649241560907981065532970288913262750723149137978682990352867636667459928697487504717756042056200247410508113428204401262531883063431371235728793696744765766096968763606584940028714659248453928783580132927555513604834620193252991190168513709048499953523946779417829374629018984918136923979548447488614214973078845078510403676243745134220619531737955967659408397844239537096009566281730500465039537427632503355454655592283008440723890203903657954888393583695367895962217692017583657453907555310774411289660520369306048510156048005480611794972945683803369168247661962157161782898639105402499816315986320834955921508581216183155345234959698955935886508279423411659660810346560374228269949609369615021616787845279071258534770163015898732093582560750136334077284065973995960300690066320501948974562499606475168405104764876560867499484556531392685917028910973076569081909332180816658073092240903095883550859736884715444908626278452683922331715574223779984099650719797725378559998239373350045444991277233338185565285978703456199783013968491605971052210824250761353233358010055323365427014921167911308017290855509928382156586936807566306543703926044123653665220297448763990313667766373233915423889051146071879329213736041227194128210701746329489573122493100298862504479522135753540142580035683200366495735144967265603809320424036871196171987329446813583514087069501712465244636863449754666476806854096211101854987123809575793984448975872042938147125286763063683618364134880498570241174885933534699622559744841307117759968522448001179288462860047827371910944192904990468433464647390571005166654156893402647880159675097990116402759785415857978332863856355477094303298073057923475004604274031103159455518747674022848981339935319410639960642295150075717171877311983353736005857323904474705065273382841569726177316639181508807805499589020591857416476723647145312448227921750028258777822953470274934629171015787731630118423748167746507145131808390675974425890250376408284487721341987486980942366173773856504300671304854643682281467230405419143823706787221806710240641372657221694227593901006944882022087317975916250079924374484774353783359773305473815637997431247156689363577482870295208968757574236407037264657713315033463968936808589055867287833520536068790240558680257589717151627277247216040651439100409142172429778662157892407280940900085340195670897131632076749902661459889938176620283002482091590623884514827263591105108995793930317239176187916810656002872008669357345538097160349637862864064969539581232416378907705269725701424951032154196629791808573436721563208960237172714565922282724000679246485261923365821808316715310162480113636999648476153309040907313255836073892853743910131733536007279317797348214784869797661262044697113344507627014492208567568204215775925716601793527587041214082331486940710073199643396608184786963912575830635341995347645972657757796754293258688772237219023431540699546203913896892763138243411383878778569103217805094724403553618862675492384823042879796478992454374308227524814982649012218389367155988754367379827832127891057049638922336884968556605755208200436677137234488503359323127040523820818854980314261206896750409662177663029006497651141985590889577195438637929066955852153322219613743130678622243498888704451432298818739421156616542408274709694339900212487706440435645301792361696968192063368272040154138791068718430676464473893413519801242308059360920741463107085010262691454913663671612890060253781463619553708597815821535807854971266261988402228317649534025773606573698033610477300679589856447299619068122483122429583100235711335433356980540073602096340075897051748981129204295134910083734942736405691732518629191978369256240045305786928511841837208077396510332192307503372609202496059140598693618071727767812222244443407852136404169908433448493758483583060997915359758144934845525268099339298753151569183290428270915433231967093646907124746757090270983733796952539515353695188081316749193095254438519618794939523652388770699826783980589757876411256617695999677474216859318389644514696351203919258902002078666553379178150292176717728463211646764450220445156475090086005189418184903069017604059485256911151169399470945345817050299989351300063820500487127376542355320969554512610823905238730769297386081147697401730792365937373641382583538143504127950826590215049633015549754963112628151366933564857113907861295339140071231880675283559675579877272872488866918404691222597073896517515629916896479231097403407719764297954634858341337977619273292044085155845008512071906447737565072360587021345992581989335038926220264859115602960240275536980338376682601159246936557600868053753654487971063991219389402410949299955953515465894838799500603749767650185043533368015017258806593803902448225271751317866690916912147242169954309451435147264155707779420865269077436227987652346132668326429132919026531353694645931028069314696530407166014958790578808140799337032323182503490108684662986724305256884818819025073505412541606352175642187751952684709415383220615262065420092310695436322096700693633467571568978783538897418397290309669183533613019859213578596775030450406312162418225212307991586151525991992574427641946458631308302349473907810874945184224998702063182725096381233917941591577555598910918043212343772163079878182596535046339412342000508271547495007632576043613155398422592084424978084756275685580951672763913207299978682349668109080623251438981182397956474323281165862630923563878039975445728714374531596216866733683714830425837743708294044056867636639252311554503981455898605070676526862035051800585545620353145365943549894455510589496215240706306892961950291203265324960729147577442500434737540511200751536156891697626717093709647596730168612255344291504278231915009863014921137263690128645163429198972607974691431371330518463166655372765303649709625713003919834689495322369246418384421941838209649123524546156107840109442036110600527335530016866405553935153606912243988325075789945019783041757224332222138031834529225322841982249705304965711195447453541961072904402804433532246461723489024728672522928985584796035161726044813792476378009630979687951850362766331744843344169895835571799109181025411317601751649908153691659173546148197111486290251059226465951210259213535749364353799624990443132567910347529873044905303275854747938064066578323897530714802855499672540472496650997499068607874274216706093705461669532397298543212851576225743516899227621283764828974377057389320577345431197357940629866065530570932344287063096638547056827115546885439657227536186994786572629707576974461337129933445635406547549750944357902076111925053145855420126701089730246832717798356833214107304510154971966094085394399648596787286521218693002222149281591059099543596911507045015610617329583648603619006069301106162561762081417346864299086248595385467000738744597172302697616918191008815163772889081057490292969142516294996352459719140958060591573468793701500617298837659435608249409363733155180051972513213765596976063369400112857057246794086698027843396611762084219071844250560625725421190711895170200760942813263119825354978846889589331207289362384794470834617179611014692529262827413529527056904979840698365342969860008817714630929212498784032538126848731126722287416115269621502328680252749648662686269547616318294705469910157509387355745195662449637055159293667392192377816465453411925049954978804961987040805876946001822266326606264534635077231762733850168187969368808356977016650351732055998528714736820644049991176044550703229483586332866015593979837666185841529392129742322356260173707978272186460620745393718087788587432380073341305128590174176455217040194349962246697099058779389987269355421946392295370951472340010827436352207906131619966311963103454374203990242087674259712721239594095544404013102015745110250280577351258100447880888865611180677165418314055343015778767360523536649017933238290942231755142023439601894820656769469753031425301844854658686514854756257669088254400466094490436295650998972234989152459390959740608462459996710989302699401416187041961061335211345096088093458478401378361312052788155737989434638404008518929632824904204902946390798054814862172199656988810590924248556970219536551230520237548612144940156424958033396753857428804005677245530549808477756385758671602441645726267619120562546818519931548709463960808216019081473875123566046637583175513559103447779969857631786167817438853843046671901094851170397524851430294812840244657961009858251660032883947306854535361966277495688463631359065005834202157611245828022937391456274784075150671459707115988352135770298934004234195339680286212338097741095140243373908991003520305526628052029419563680876211976823158440648432314212285697215386056187684543979943166726358165557033725841723133566938494887559189048929569075517198827251000242920652303625467743962816880662397843019459156563509927766343816734225724775391829800641183860971519817255140779683697647711671440008283550430396297923475974212997927371630595600973779633361956072577218760934485757675328397493396276891049120040318881733496961584147524982622001882644483701290547557389692337008169168351450973025907486266079687263977708974393503933176613020674001848838626530686061356190362276439609058448791781631361421758882384039821636565590250036749428003172901048487463339345869697655821403266272071721821595295340072910986872784319271393471293757360235752071877502609644217000296663087025408706932173650086813576459214669578628700738039487870640809995564686389811868186341684760329219721801136428245610682822191707532414274320220756791851983030801696271800758606565336578403155599683769776387732405564146408643681475703964995234417376786953913156409738631543081175533466882799063844484589023323164477870007356881114954562391866434740792876875412428239731383853249204119768411618877770020485672806982941319022802173019739648562913944771662294979694690534310483077042061656451476794801195806442552362991048666426385290827163031783628084454891923684679624395111789213379656933209223196573360914851450497128473071490191931365968305948454202304441099288821335380064562762499551656196729872850494843959024063675047439917353529408228301946586434444525569799117722453145610228993060250028316466107009102521732843879914176924994571762156491027460218622374271361268186936251409298355323856826041178305204909022287405930482195861448443954638940442043057889761182077713517990436010041747478337727993254200543928728679485771483976967301371560638135520244996812166882143544514475142583915509849329039858187317349122729893964798827376042093180255343256247066237953152599591474425403923280309763610627074171715829598783573370631477138927136909271734435713728460979175647917539130315080130102444804016639015961161371644619255346882430570238382400280567756718815154525757663488838413622959546113249077477078877240698906273898845870196512981606025487585642033557602342082059683147862386686547164602636893271991234080931361390910913293005153873603651873441360168456274483088472071091930217909891945337878004262330891847349283186599306669445208096764353602380347018171525756513448227000261301994909176485424921913028704572112703351456911892607366096186803294744894751673004587475072538074691303526296219688228350169540538255303049444615950121572123286952646368522714107589685422839026649364417637984258507827023086721144478310471422932911396552827605896462954074733879767902246112551716194956318448165134391655535347847382004348653574717832628422640444149880168821403997020463010558490812471852499703544992055575008174430629109084915175148733325533096273921689979376860110939578190117914609126329037428081185292125914773760209604686776976279683459675316443056414208312068993142081465668024470027540705632248748570082973479857506946669693803901438000056452464672922712985963524558884374735134935177678414869677184418504333892758435630549168011454168157985255598180672160743503675778452214912485197352358619711555200022681428641533216646602225381741061509753007525360540394494939592930176855484657632847062252956094776055094339809517653727077452189113048515600935368630054345725785473506078925591996378621170116229919937076315311355206740663282200485755167033592087666644007703647794036573623692060086889804803513103379370523669497198842602298758974846327005433091238896089093471402628575521722902340902996471119257173142271726629797263413547345686625348478299914102870679848757348051280696305582890438604775713891160523397938153702180342414443534983399292874960889055139617708762436110880698790023063482372686246693351562583696293534422013877287304083105829328898083295788703525786187822888910905938949517898210686572318337568918799843628706546733711954084201407746865868980608983165280028473091664862797817860955743981957818958453401037736619338627369555358763740970911136246412456931603758976186769840583231097180046285415836125244766148422462833691462128946916050409916568257601759315271764472120209075679601252813028838769620523697366475000271859060489010339354109312064739086680964932750965642661405192426178396503323703930666843444756144777791465727184417375661399663146638678721803877858113564450356779971724238994090058118949689187457736935026610902042905714681225980462312632797054083423138308727935910529382571400456049628964297319191574860851416139851975249182683105635955921053192660681359243251023329866558954218552260872251914586490928995492951595516844145116603483261995367084760103702821961733796345785745935494115234638187759944723727482097873782353891701046352310036471795903065596005286987178487404140724706433373097560381776934429943621623809206750405016089281404940961872272449387682093495410327673225254016131627288489365329795816676919286043095762927134576448487536675395144572830049545467687789817759951465346833467103489288254705742679837408863046478522089548516622885911457294024972793691146721739166936336118573599901307593246109052779254884630070401467080064039364815683786338181368896956023322311880446688933961254439899710133684658890994943700446846772802605750821897289869140104960739066728993021145594945522205828070819150427317879719576612344284990980254828591897281797242982104494507282235307979254331272529961190802402307810088105104946826403290237669295368412783794765666545134651551324640994391400435591782193358432509167221639900786005429970115453672632195609196373360520136729597603735653619604427169023204334816559380673472012153953000828787794607310665709927156914250675218163893904550647209662323481353532046396829971098192509269920406159560831655207968613480830328157772093461397792629775921840882438629170349005006071530109710725663233030644978882355834416706596361799315343248724736564189149623757566582274817583175208249956408890298523638735106314168713774813838158850549258546527890068840418429315794687633909716263247096007542607380170378678392804050078755354058708084802549147690244311543557058309445951285197105646185305602484273654396966151347791445494231296959706919531263910048371563020319107240366770790473266690498420614307486103205656426331851040081158482669810877770939194703032969225333543668065203650948373192039678197053930834118724403500910723495917917686392367578288866328165003562016388319369105777476495592613707825325993208434740989851086683644968489563774190442140952636145693376223774550489674972485013421407872873715299515455686618104926372276055325857383402892947355638018697353763233491581979863474011613477619061921000769924937918254188227113717195673598812143447761635919711628481254997063179286866306646401757234711541823016597465764245359592251932605131105843903500484869537022600036466359531063647451846898031266756603303345894855287376947165121102741239384042434019978990184995645770756531200520563902899868267342551721823042611474825017250261438070211195156250736431293150939452070901115232839977444474828064108347758688716113234791479271581461090030023942567861303584980895421494486423504866521566979040887662605491725857707901027545135118196299567850929530390669803642940752470321011126989233662310720891644205354631437338333035365198244279480369859241521790374873575852296691645247474067574869065589449113104462752035299122509717757720399153753443435495015159940873095165615181544602843366326452713425133257483790967862890413629694651952619358811715824601509485786955999298337230669446761845648339432371264754097760457206892896213185444052904005364719444017035162786841383366862290330446574616008072266213289533967096714516306905763611375379857860484231380242782947409117247762501831807910200459603687386039465508238253240988833094551034740395624578517067507184052303959784014701420674578885911253487008723603225589535154146332162345764497044341956126463629786002595082571249124000838598494765070164934116126574949328954815193811061678467248121963798188702362344591394275675694246460888666323201739539564028812301989142233408999028104402320382821130863130155187148166127886735164295627856234166583050112151071233455375045992932924992428567333296611475692653598684303901916563931982173866942181160278431849642801417228123144786442265732661474847019335769531812495005375550651473301209015189437449626229813808188875747622460196786103537279354252788520884039093398776565706394505184574493051808176036500381224458218537142775650269800437812875236442209230118087861081332864908379071341149846079152279526846219303312646266831071430385233226987969399407361660791025780300709529147581227239947141984864387902046303353326032389668534230280823693877211193100633903163322500271589984979254811455904119152356580087598254186227752043228469957846650025012202484960441495976899819380430391156993994067931170835797654655227103229084376650851155756231678881689417831250599118449035150340809137310802419891477625301633777651706540714543555227258314889024778333028222994524602083054744828864911346081772014766727658775359540866518974703363210676600084357659085851447642403049735317557166288604564048039128784111414610686425625159814411675871030874684127284466840874569805073322813308513547771434891392593333300021052511887790448352139096514491630618890564586241734005151981626124985037970679528154269610008143320589829316539099186176299762775048479143339527756778056408751547677195381187164711067561528734302504552037188555702972589884100925228977409152595389985211795605017232639783566641838266171287839362411552093529569551500602712832849377407710165204035833257804104562360932755080255577320596467511192940781207402076448099680117417898268308558135973680607404360145863692793031868338045321708317969561020013438660296377409944841507467990892766922578306824196038139737032284838589837189033498154532261883395714316824788164383398159260549306297005385735848927994454341236731316612513215413202989660470333548532214396525509569469937372364165780045442370112441372413731758398215988281090266402776598798889842979551664189254065378145294374185520338709638376339912873399967579103241128569927894451060793458959527856324801872254179127971871374168922869191541662779618761632816474877613933120938561620773412297483942991712726335366790036259516199707980726146325309229638125329341603976521643104095911767172323009012376080169152484775739035066269608496461162476377003294850674788138100944399124865392459014694592798505972353488422364552532752280776299680469835430881596850187367335181688458030044957829858552819441422075167243611000385436799169411180843814884669894511575935232662342170803492580762779916717903059519647689407018469024404029682561000247860520083487468977811233431052959111722535408857353098221264993175695901436896739875776087550066118163801587071218783037396483257378447890987431409230983280166777285963876373662638965573484344714304593650348456704540964809124059314688312228633953218898640178143343595786356040701580970190644649243380582233817121103384493480703837047469522810817479863544584184096435992271132371837974511212844013368911018526231169729684907433696614098737667098849839548567066000769830747784023167738908425262109558942844604055086613508086573460666116056541831430600751728534186826592184949808929528882544385130397424269925642900722208597366333902715638397175574858202797435689480101355696828029284227276383560588419502452328594029436873247315935808404999888570689457235683385579172777204536330840919882804779690092067188628422323757262793827557510555730217629040843922542309014444578085547573747776152869428599543063785255934454771229958618655329676446777139594307558068424951324817583743237348996355715839229711054775651696191724473210820678469799120316129582006181573861943857936637331643127510578879662421877206230678667635414522050846535582787186016812110702546555833355143648737712120810863973815037172302701735205218420898312406060229474360233056222215284104677635415855433735031420069825253745787705370278759229670088877933529452590698342769143299874363966003640358650636335457106310214429432640627035774853576303740276821584484016447704260957141615458174767092715568824793616785814760576370958760015689917974478474424997015477068456100525835894659158500021193891013131511836872083311288632567687003131595268240332824539800570669977651613040448705005074096038947415618644018838763998688597652895673017585878769212186125020433452234854296033049657471389680185140289625450190447909436671202487856950001151502514546611891995775787181162515187814863387237072998911480380855203231499476473180718549441176189734613337830887497794082195320781002416310992794928614322408275166879654860978798103406108252133723617680016924403844283512577121618961324067797028155405050378905149719128007364579345030531602486279070447455180365182874214934087875139110212974867290989932696680151694323918557110705015308440432671017052984035218994348383047646337464255504200178481147939420730092690034443669519032317843993679043527338485230442499873493057426912652358093878924273333932918419327198999650633914378625312889287081938807304748963773715648969296621678220611460936808730890831397789030949262488735750580270331507363141579558480190116357513062604326451247948672121268078601710201640195852178634753146165500863780497438044544831582431434226555167127368792936405306665593842513871657552968042806086233657865961729669110380420828614505076576866930535495336011042534548285197347716130730790503923235169488074496962637599340430393454315239707122083620563654489334532960344429114892738821354486209874334093385292970165240325826669059722284422312107398606638592695777018722292476314546132825696190447828128132659881611782328727855006438806070932900444821132616160171060998579989137490690784954988822184368313373289347931004118315245127907463750062848114941110859660627440537678826089612276163746779629382157986866941999155052386822774697914785550040630230043818765875544412468290002818497209603347855677482434417643702361348213947019535846749608949786857718468256194816284584426737686492591113423379924999926587307219665652642582884272321868318806035339475643076666559510735621324274478627802263680408600034195967872348052523798091351196881747373342217515013707965172560486436370091093548280708182889067705957921848187599456512935690721621570831213876026170693592157545036968158034763433064026210015654557666559048002167070756516439810671413114644882365637361976180588098497769784339511450128323958056119863503541358589910266688567611089117289118168418922695721681060403101593721016905776500209885188644194626669843319835280016833286548421147838899111382260626055164057313876411026546150364832833249478448362610195090971439253747690515696959756639867001211022434533921183462208376432710731283581148428210966433034785821053127063435241015093495348029413281728240005792152883013583610943911779370070875188390279348458664090900183820805232453700563307718861819768945933747619401895278059140793278821314161699892637764047850450497307874005195269630212982899993086849976881947777908268227241928866813959335029066582572187947298056469945428452752511104495571659374919911882766535111421245169838992487952053261091491482665773910953177269307990876806039628194029901615068087135272816291284560735815721746717722244313771265988990350120067891771043563283814462604611598474128911823332944481905591545742183828583733839691133840455400134077670753851603520537845967706548668074886397937888916106409196887269185214376257175364637111819990094348408318156588136057884341978107171029055969037993560011034632410051528984280570123107610903023281607077390464326655963553739260809801984613559186455004159890760656859961772213012320269982014716077400688461915687183862364967062910273837711540272297269779129514884142179772611216333314257494158641124716134092841389803268239960342509552436631489004868869551614611095641748359612674670222808880351513559806713804319521357404851094242705478652558263419161316371765134232772470223558421395255245608215541367533709084964773737210196317360274971801450632921943000056182255220546354385419236873848664682512486693191111020106491509301674229818608759092763475098061416053317460380067759905432677460147796313738928296668274129789649243049428727479734412074580709397343831298607514491806652403122452624601469181560748119487566336788716839422598495624880416522712270195650549943459403095305518355802147712357613068796990248348463669866893684021675081660468597588775614588497506496153398285190945866391770860073478704402495886671044596041672850969707684323511286788579065663451509686756272761160402984195795667442322036015306343541247983179014142728975969430874627700107198049415382617118377849268693452498015903017633260534680747618176470076325314934527286002461215413427053024923506288059784820420374787797409842448780881830083404255191402429586080997584328079243822989495446304327123998112637884328953889597425260138967601674116559370443859459252533096814337456620066514515472940480297462640974445311080921195348656724715010007586659918789281250134132963361453958227102289987388442852017951578230283607264689745905506333353553461524927812068924313651206480318598155494917924408803971094609889519426077390121068307727060928729018953243362315794700017969344331377939721646411152162693947101849712660905016160206379784009456248396525397020465607609516072117869304454033147643714409071092665585616987790901098255107526757937599316965882209793936839173957083964046958510883102585446506559583877964079621471446255710009997850373466126445520361386940922412279847493785673105586176952580656004750616919391741290360861046194209880949902786604918540178837110210125356277528001223271329763375509483575172410673643999204013027223994224765706692210907708684727489651799787021610835763000708755650264820670063769975745830261611495475184250853336678195706591020731377497637199993926684717050292273547186992859302022350883364893538504168131301475209404926177160259378213677917943614563279094256006967459585109781407240274614882392017982835883571175810448827509798984137150538109725823979295974945138371579006064379760568500297477171011209129160428041588930849354793329958382349323759779630491711333099815023066262511221255656895317191897443546169507268269114265798022730331256510880337775419059000618987637052848315439046293240123780552427221797599175867289829130490944671103316122142024956424918713734363521916330359111233491180846346323066466301491301324566785264703640316097783186167097560577829440501904602679973269181498932272855227398990314051093528899530628517958335889416703911021428084469179344489280599112628026126071759819731931693287178262547318533508336544233940628606613344047873857725497970986677527622298432759736350881171131904678124606827492601492466190479484380156611900845702976748593007845581507359111142938150878369285808980228574403349904332824899452749889678932196185547093344021051938411631282195332746558288481641760920785503087343036329186760789925839035665834517898501249913719389789107506962649531201822017181560447795106472914459834534020115305212632789628127401725568918954432263676519955297919140395178724544384837327507085527486980784209993180363759603714128958978599688644178446835125876783831200074862086032987760034529598615635288685283039793921336671204520679736712152055556066028174906640442093704960053949276734573606176979795215786374933409578867985484247023002867404549734763618783263172826935287909010663425545505431777248791728545596952791522726316369153432894069497517090757750469632382990329245488594215378202118468166739111888586209356946738633108175145884153668786382838375935648643641145639228178899898097523706774634146072084048279436919875388654469694666859972915854456685768862640121535694977079981200667724722644169716943224223872378564689706053043691701835488123517089879415864846648869379383711888122930569269050218187284414900859349827977791916591708163292666948984846437099855010479428716431286618606673484997638011345112676521770096146850154447166354523086499014299774405301823187488039052999632052478777665096875936093994542908782045250397819151680136504984654580255697047644796875567675259066830800417611540665289179616552724890206221609558237370899165785404149547049629666649000898250800095898100859771378899093535495414455373529221771409211340669973840542135361313504351681902823031991467547736648643879428758640902902242477761510342757945716529031179879022679959643086601560938696338679445327967578193163811861622879010265364713932155065319195660094841236157062041538676232740388381492032769045089199447483727169609751005446116730488154487797412517673580628587904321894631562151026820519086906088092245680803953541300010454549641613723545046824655783016855114596698516567330481966667383451785173458985892144400425268648654313675387051262749489120801346341697600316175029495723071794794267813991783384276804565916620659994584917852050121621448597042919993291025594378929899235656207398203049676955443370203471763397341949392331598975631868263557895492337028579497904050282265911089060419656820289470359804092465585251411548473740001740576260765830712468468254177522179643897863578934889258541443938586870739831067919044728742903355917123640372035501353285752063165155134226203887146389972412352853256318896398789304327461001839216741492565587441566814891026443350380990628030122247355722342083076742618780850857349147557774538283836850977481958162373264945509839855522242706749592228408865658985940398785816708165580131262997193424510233099468237343748464555629331657293776415796737668141994094109307695931469811220850417976934078354823048295896759326064788327503929576764039121659944367668353421396724573950462971035930101414716902314172247055279178852719526778899895295398715509807510531381996739788769384988531343582119801549298371542759293420889600874151476015142165209942799406654204399480854037934298805981875434228290238445648907173594308051153166731376176625351451880655156240691679206344983849150593963923915396356639999637377006027259614144847134283852731467881004187477224600680473356178976321365372095953166149896271734491817082976396538598593829340136441391250129702927929266295585713849661179674021980776971596711243206629650626665826239262090124345533716205273628979877302147109449969813500944461709497604577774725696907984125976176843333511764191491019230683374309774255903455546216384471515265520576220133644064724453260215975129024195916933875840726736095119922576032150447728320848486333289931177536680801668440860839894565825360436335965091241495203801578731256933039523772350665043006509271849191093567372871014887069689927770875110317090416783532383667937094766722249887537491652835641749127655771484549809020515097207928678521139671389578502094650871075869387803429318923128635579165801833389515626866198755077390147200746861257282284478560352638362598842971377034873186350772071197040224914053370954851369733844015421335140253605567756419961982752257411165354169079445448976001724504598325117917521126521046571524581962557183114642875857790798031276598574862202449064145217868960053468414838227291964736157165589279875798820611633062231783825850826917393686294853126340074366233707542892042106864667304639873168226217923587650267535520991159307337507743802223444576655632020633591563132526101479646643584291847257036578487320925442590995092200090841567211258202170050870979245494604542450075326226105018190784264405515687865046905092515118157012325720130265813076749987753087469209070011842468275128637629823402285655469917078951927276114173567310828205184830522626726229943112038571793569658012924761199799024261717441879687833350921343304681533056234827958844538484387285399936966648029965407343764791902663483871543679947561248812773207310805126215295451097526384348623395668911491673244221149070788814209417716924577103482354159651484879410838585214470417074402799630396042877315466470620386850357162657290122984318405389954273375415076030064708798657000156583913640772110040301392551378964014282921572748362851131858537534638109892390752205319038984607787601021901760376677947462762039171104518831611246148299910831781597505908846474990179858257326600238549134982807738756189103589607569506403979600344655313275393823640122046927835124310818649043614456674434882944091863466936669973135780159503913543978266173268406368767916242774222006524252711383975086873262153547451478679025551207419527825714831382084839093494721860232315604012090433254211901763989527623250907801199022476917483367687389361528039131786677184300463112048313275915766433718847956569359376457494987885759722883901746521178472989997482154500942936044849130192303092319755186434355114293948512125853230464430500982812254297181655260085696091281352008029716363019828106651704656599367806617381407309067546964757065431838419281821047925326166187386836951941772238693769656831729602165141200498900727270267342555139519381069393146414130720185751462761974577446396281951284939634753166048685433162320543737256025880830265787134593972890009549523402948034681953516096071031176953284500725523894664664664468887227025172986814156183895322710730999520625362724541404035561634966101177311916590816869903845612285340158204414474971800325986595327147027759900099345916327790849137880835874203571284674651760101506739155274086048410046024955446151323334294425944445494352112511940597015814396838608933277388040240667566903042269345903261809098121802116480779411475559343793372754785166885466522915230964588440742375717813956381815063690878582791747405492784867779326325001568386530521245866628763250749014325401079349615097146753192281655363435410629515362203621092859049517088345461173504197234183749790912296928346077301830855717255653735033254890588230291094202327179992875749440628142454764835854744512948826948830041823153512613381443651338040969576892570872070575906084640141812596912593187302028705135687981348572287456425334724850426793411193367865778152223136373188273638493681324487074090118489974535359866075975265085540449407985823124028069839855645175392684425590632418595713797934795340014192871728456209345106211377833026397882287767559826344196700129186755471497407350692713929096897174722048910826058808002719023896262839271582337144066363523043854407929260182062764778357801381827674406959235468729619115758305042038172885889638745579488190397226337755220709547105323161149786369980227261379328561328035359957806332193440954264155338163856378599078404875960247204121391923969667513054439165573122859654003473776535618121436746090297348794322901110340096032194114852423735142362338943958541790505838872478271385200028091818306196635907029374521685541190111815638598494817656134589133140354495582649357820634012254786483891263963124124808132231617312759718160505991788830567544181754843286003434294690067087237820179910679868183745131403640842887822217612620963180775654822778496573100817843344784602391918193156335317696712075789194438008882805180313224926261982120441588520176296284693110532056492865068737045170223643887421830673984048969743739662173960684963600666975362119561083970049874668840701253053958284665205589227999736158292003383868698837007582272854225517071195859283919034460837519696061933125450721331701830142290396424714502086424279626979800184594578517533351174847196537392627434577780087445349554339927279477068503691681908050043495732918552721870049419068606072014340516688752437317693605368338797170211682457758880351725629802661189413374916052905491236623144000194620706398286456414191950583930260973569295443635016789592711371747981006129202566498619855771875977849128009517717184123932178333029661242942989246274255909629893890270125035253886686760573913860899164370249944516321003586237974231068943833863402704956162532997348165563215165572320194473914569105460521625955408542334298467274206326746398191806634758744253089748664188105729854245537146461690922618133257957751479106940223604935414013896996886432502450803548535625891540114898793525084304825724789737874373332469301252600698476409581517690302149183064085002953349361885884808783743808355836968166372005215249630134639050823734970939356124223965915126260578567634767816622031091207384687335525625656869688607150911085132442022143421345951489359569912111549292277565800065996154456381810281903507066930408451853854288448441312944773707451607058834046382521149095075460580922532958812702769142406114889412951071525162819609140280218342131435591473685181989050055969594046910032907759138075826488753856740698899384428505800033793574540618731881136029751046889182176567003330535143650668448057585608795147981943042724357968480083836727199973003547252862138873865346756734710899118437476387308970997600183522680615917847890803828700057174254947971980753056308392721254544681654180636865472951355887979446943420835005250989812677451176251889929218894031315355875516278704234778068655090595417642919044828095510787290284559935361449184420452868557585595086538449619777593942570796968582369007141318628677618415759677808465402392129999632656336604236203861497971239279139687980236311360661787050232695253365459004998479687918798374725309244311994036462740035347370836090716388529334215147975983731657030730810346128812730572962880481641853248418800610462416565978118697618939318998275137175652066312259347152060631632515892621701795814768451371922528585964500075923446174670053889810694812906311517106290796288081698194620163048268096868819821721233759947696378228763596844835218235054281205087241532361159133756775410891908957524556281909699981288114251507881122601734451022213567206351883251464729231500012635885853405165639992037148623361043496914427338512690065879362952577619486165418894422631129723588969993705405351994805800961909684421150705625140904433920171235258270910898622680059565270023835054167463794889604506126228124155597342253575560096141804144485686819177521666772304865365640782700054013471574285435542863476429643306619306294878162201759820645541060574962866500906123450335104580784394980843756306045548143063251299658059994291881297384466682772582613277801339601362560808876489032580663589941440668612213416065740456143816861014935302436561803490183937881407099147065260583269367593021069486017986049358245626174292056864778033114206232759141565976739081872227565527478526570380721402573398483829243226601892197529970566997757950232903396294455838418409795694479990005130010540465590855159702323497795127753276712593042176655057039814280849680345748803196450939714757722070798450332227048522484736763109383943572539070514749907717447767673620375225468304604560185302407252859130877901775359550869827476623168191800891675819872884816946011396943222261674948599256884512060509531052317180124708301524662465128377452911111744438795550113814212703429505506530039697389194315371725427888938538303536584806214982992399568199816389522110280610357358475300127790498734937019861396660801170995909476099235656095683732054418484378952159903121597628087685605624185460554768723927321250190461610555473744381930636286795581428186690010391993851631822779754997631399528056550225572593812391050657167483219872309569065890103787642886677805970046427719150078642389606857378183294052287200856097801674601772431609948329195531297660868319707379015509459850024459149474781766463953235024184203942295125652365414624977342807252568106145492505735688656968826239024415324626453315990985032110863123930488974330183094126098766729763128078599591129063878493479271441777837815207695154536704300266795319224189436663759499160525240563266450968475314825493775337367716860480386921460082000976095962426381255818518895527353648718080214173595530339487535058197933137452014500415219684540766456232859607713160606768234735374105208988754656563681879665924583273159483015739158324232550934861609792723909777548145877342337438708845538740672717256159237185033964731092895769706025961979457560633773028814041960545524231382724247220098790290952800551134715539239815969671642367550226886434053787684925040837132667792805422461646146638379222515558009109385136629535657576300895251287585696042548623861777287811448305984833003371088306288756859334229176013266829782991431339747811233670756005957236501899290749343400772867922393068214164685894427783742076063596029804401051517339931309700863187376647363625593390353059049221265548836721216102811079394042881144572584288648045773009110847028443360934563546318912342007822267278307915689671645640736553178622912325644941381272774415505712778268052691409170572285062063398653590921889195903013273417901757550504831847172187052479118702875519706244497964419200984228572251827833883760558730417469198603287940485661116360444861163766643668409813359313045355590769306703030933591809982965190593110077898963201721192330004473394043218717892377800358296167419630758156926958165835412381762796471610786889478905283650058129444879296367092959714206225260170264121677951078391200919023748377282784579933439667602193039981188517947149045207664588626140526569127621848785295460295349293901127633510359053803381564150835230913381148262186979596223415604984990712830629653855536372876643073950029250728726207868538584349969812181268975602902515532993496188769313462382916086729615380155960726727458589223370755252232329700314610317607962817650625111147054140889598544739179255243937767366376555182712660215115412285499762680085895676256344798283421359767693209415149038656056992676775108088263383442944974066273113953164498529711982471392135449679687976722231078975908195113550351677891258756117429299389242296021575575438782495253474198563924201007097330746843426619474858734061854427360227027939027495993027056496056005610881166487830051526718121426524826348994324280637172552927857744201916289474975262665295906211324379070294579776245335318243134791647299366408991042065088006223479251244651204023779895318365510902644693582092348295949890011534841624224772445224664355069758324942115749814402745243813598707190396447285183796989892880323780310842828102981774689843003589465333694173895967385569665494648454087183403345472495402245954472768953497887158680642148959272147964965832918722651821285676520147627224030546405735190180266718928335197368530479543852667802351077260001817461801521940948809495721019229539095959671238897036120884002362113263057935655341917247509978951021462060579317191749610269169668428241077937997666291386839114763471736890801681785147823336523923178958141156866760072138041544036606576917530968826614084474758777131408235659964422639343975029083902194616765169505257634184984325853403705778702865391737591600653614324422542176591072892869144236233496903391360648553948657219121626399203602539551203843934425008680321565355926189489273462365890150226598416785771571467225535043191125712735820407788844386749668097565154375147392098757095066701764005129994784952598147042673395413008699818738818962032206473716732124807031330953830887897889539317511669574334527742360425388607240762161193415475478833412947382661045489489741823042982918249110767338612785053573503414401957549313582389454212624671834767151678531911902784463513289801918050180528505330728822094534928644671192694972004647681661497894241664424612779258716760248185361264128279585702712346087375190872697148059064895824123133799215755800086432422804101627633178412660070023288020402620428035362718706875723215479263944329886208642154383195607960694523404145312800955457336386305306996181981074434665552130685231004572949746775359984323515400612909575624631805006927873031192351283204791822190470545930144619348485984144611598415155249004316739848433570957656985480645306839601050357502700926686218135249327682092851763005061720054187841860500648182302287957440044126895171009999274096917132838011155442856302858162872667069520071281487236982720288334397798538995126629057530862939932351139663050962454598129732023475181735608259811672382909096761161321590167828691775721799824156584479441169305179734979610747813755531803542215267718565681198472976177217201282697105260112509757166484406613946971635668125860166954617382246513878261390022678585739147087570964960809239654244570552272222080876085343058747561177091391928617151233081595564303609445291186048033535278319968535890410016529069230073907970676891562496294590343934160445063314891151302923236552513991455773038743969287839989721441793019512715232581024091915420626657280836414944630389623154212197888642249265296989952458827769253641443933720514257801549725316369466698338279779476816650519252267854837402951553399864090497498755272525221180307888148083586873511845675212855030506056475229286346051990184144745228629102027966527457439006012478297554960324689551594020779208850396077889252382600511528737635554800106443749252229639038466613045722483368950943811822377584633762268670234243630347341126543440335331085567850379488959453928509501940245058582582287369652176640311145269099045904169457960332104387832416699191810480855122772946259165857283981327567843439573382088885858129711046620654903308949413556600772986879334450820650547159307502217932466743315373608906006213885204068676889886571411665675412951292263161243187083510240891068867079527299482310379118761322365438188270915535405850667575435047908964720027197373629426743318360558764219745775596179580470766913797613293749564298076946286534256912038688063112163711472852614468464404439245095055027869338198757759071950203260862071743721048892490286782386343980724910810931700394934644268065015190902321776201160962837683193524023867863742919516911590060582488184445376100308073746110437644208503180407987768924851856130732145913009473215516532210866698372082496721787994692783289568686371228963451815023745582029237649177139394594591580255993771345834492188699265122095461074507777355020145435930724377215479649489017223751063582649098557544531148128675483513221273986313041654645483946044995941467710077308062004464164811443032114642607905888306904799833420993812203637200656382479436320175521064814949411011891303005192809982836736224532803803868312412391178070544178388752056282509753582588714125352616985872372856502239134956544922293310342028058917148242588283063917311326031580802379547213768367693319125453146362326743679401727299989633842701598200675010569978604885707216912619590496070605701053549551580107278169991821181891836018176363438440852989407192665236743583717520143530599473865990305974014531045574764177220980355232715744717123056432135732700508017037126449525794408881442246851553214668317628816303125670226762544900027850168836452455895469946926553353857843016399113142339925438775835425821832461279917355979131482868505038796731232625860168996216745407995735098505243200171103648751341753373436802707698760566060136074480842112949809810933639753156397981135536638631285393768603788897762857408783315514007662681345137643906432356039143839721098727901495340654079909256352880283374008563962151426163118388142458135549961832395436842270519700075297418577919401179020795718097544923945465727955380338996143774957575437522932545378880113773237263333442810287174758758520661778284960703753914018556658731762000670769367267077424525874242913100530776297806956497521236101124564211742601300211100009891062383893868860101784435993469367795943246857465160517736437200850970342071146275692993597855888645021451636721026905722922662800678677659270889710920655613356254708679814289779850931937383248989468069153581564747943491916851714455866336088690783972279708688991759118006035584298868101504402390758984440187789115053006148176866851622186120139214533863726665529193489759253082269406692633571086387160947796288493575282083092382271554987102714049572894862146233944237793301588077311859979823471277418399615892209346502473239608815681152085531311928998419681891439023599775516474655699199276064186800450729518316434389881669771032127663611885865008228070444188346580100793013160013608279261355597031072192807946323342611302052815619678262280658918525866481268805496222106273245348877369034830653030284063075477200296624283927353576989354502135876756322077118024229328647026770473053172309151443004874830839441836625719987674389132874551093313681101650446670500758767217541406502957433566206349123514716351594350302747797867268488717046270826975570698093126773411852383332124204217752486452040416781783492979419417668759064036483294283237863625359802143582945115119747173067439654804197006330126217819430648839760730692166800714545513123183248441331545121159243870955852759922705583061161318994945550096113302588400158746142700744517491553930002040640689619840585552137513839353519387675426526945278305473482926144731510169560760704624737742775081438243084361889303725770550156728883646497839378946889448480234788560833959735957054182778091105752261760962032551771440256948200532661156121185413629616572607562527116765272251100663623669309955207576754839637340477103788447349594264003900312943053994346861059577242869666789458111005458280667146574774997512742837423639294112505597958861648586149304402911080427732817123445690311166757251479767934075569132615903090852176645108281677391692257395840419845427452735724592046352808853868978242452877636469688688227531293935900208977793749982869373706773199979932029755739721513043048864181338659898874861928798696434984247787321466561182389160535826914531873109467185566359461186922659647755355020415908009136128657206705925966423458307437212310447073634834621167667130622292799681408755331440430834733723620905109334557098596144100831131866002997437579801533107524024228512592100753905896335683259598374262792300870491103975438980142607750770060261733843443885460913599036258636292019100811766725338155517101967856248704184133244979477954423901970499684042863078868584131099314193322863129275895085979613757041203660047601782530039712389294489559224300718880661237784519226200480730028130535436164206176208398737254571387216599948407243238806209342674625549168980267783087850337170701005530043577421843363071847851923614479796220426405516797281423381303721943119967163894753363080934379397811656748321953985989498526365073436731948671969959132618403167122799491436055899769462009495551770167902678908862401240666942686250785990639791379912566778803508670599195143709634020972468342016666254434787596210419162617930720872907821386239074087298636040191650742529011254805197518032452174797903114275026721371199747800700800874444915806997602909977313685123128107858811838513385791049713821883540716929557860087876248872732771206029699650941023862200439852538621215096722531958865329918267537033357470826232935600117536435838937308582276425840736572745173708477105914436785063319780506186112882739981295004474453580037237613840225566771676976272862994632117030123991625943445051138490824511944026893040260523545855580859682518151134464808092963494538715905917275406946968608158019769017933303036079456694868686314589806892597911813325016800886667559233144788952748615179822779760128517766307500146499300455909668708682986819569674482584975936095547945956264826284411086741643910549344014891279366034198731206889764080424093621611375554792705384595907646031443930214988261846500102103244687655770775665530767411741189837245107099283871293568267354390558652535560339014695813867987282173948396296484952890406071320314772867278125982642393040652650293116852060070575497298869120539940551795967099963684972618115613888749398789319039746699930617141010742138560657482048029005911618794331987740865577263418935221787828819435787699798468518896115304608835848028447980306193091447573523470253562158359121197974878820077834649552082398629713027576285723098628960358255416215415708823706115540264101415361825030152990358117169979675974393559302925217127870265705513319910055000514311971567071263475858030655242318781770618501276795438514440840981088597260616162679136266881725007698968632611206803771746071105199176011652799561050789611895034962162592042405022583472200417188078398619907851714947807012254640257901833892141953255250566044142112349842503731252522822640395986882797274519635897032242288818505028904264883529474767632915938836131614977141334746924682851398926495464477953140589428801808205100851639006618109202135084523212000939942047736596060542210530171263327446198660317709155089886263092889777146446094432033888862490086889455460251688474679199471991468881084249595951021510426904718932268475800715204653354189924925824316352307102565471554971704839628793839430362229162745002884695622903924355432182540897086257173505449409311486727829804558196523234156201596219166100104943818089398602683338212161414601368299268327442827878668139341219969443269409878746236984537054772907182822679174877771767091791837175020353274965886603625791838203434133263612395337674612048018431545042461273383982358212513474567185166478281590721682958761111507455378130149878963308448039826353952498202062851138314943431410369498387557213734583408560086005528829926701166815647266811731987014710119149848212930843637604050563380336036039558411270894934470080531193918234997440769523604124130154399038757654704251354763016492410203254325932806945396312659608672153860146159558416981128129087256114721963613272938528983294008973279261557666690297588798650832848236087262291268218510620663221561979044383839986943363465435096722170566258891348681457642461796702623260395175353222521251032908418594439143510721605469997255172674691510869638368882213277456547732402160964323181187940330725829909079569204921500621602032441776952981695334281473461041383114557570578135968649100066083448793944762264006600589993160048703691998636388848037056763751109020845591769642072550308931400084008474344523985456958837896455363750656519823661970950067236140782044922940353792482692353279071695165168979112821874299005481565155504079915980686807371151931525568219777219161751902601758018610663736538867999918404352771926565969409733564440131619715192489889062570803526904367835767495048510900081668146252053643580301301353444311643993716604880866960970721172508882356984370356486760313641225833735981156353649890006265500776116089150511337238109029586684520446996442831218691224908588625000318989725155800105790047623677461155813058531696306169920209003905655764171034839326772447879393568696385467541719906652480707357953516038346665940825539986335970495953640227498123283732972869355411681081234968018877164353731289797359716698151542713637360205060837777651919717044818057918845702527607285744811713276548543277604889567968579499810153820284045826545884116299068430874617978175632690458708004259232292482167119960845446424868259487483232751970080051237340076534701753044828240632712807467734657561484356319407920483670684303348428529643551090239710913796859473432937259067320000299546648652961830071432398949834266581617997275441561917179725329045238215140181837724534192570829539149951830410700932351716431365236662480646955423121516481648627097546994662214331549974560801743979989449034234087129791564801676169176781042989325624014500804703073481922967318683895859718768316851910230534121251099217194862481494275224778403795027542651732976449617495714394498275849490608278859171774758276657450511521886041695620457896274663092421589373795407757610120591913805902683681182376100756611402595228452204283965133234561990037822865777142327855948398517514261335222572294922458739837992907407004239113320524976252577731614145419047069314947294472826801614800966154919186785680313350847836096973460505826138103829273928677325620154401918796929786599724756945472793477228701795721791847448396425846230106450579882644655062373000798245606595387120788448362436881162159249819548727025133274085615997286150738017666460926034420275911357784612073145118819380910178795308517215763873660861189972176727791967241252033536014137636396192663720416216940563596942556974838911966481774295842266683053509688670091137841310207928130007327573503598797773961539602520378108291997216650775244962948303644933026608167406576208265228959721853612330428833580494613022699239254350756585868232393406885149835573462062438766566101756824285357652256954159992606323804433255107140618559847249715848841853431835338081858575701987294652730040373579656690407594792992138146894399073259298722885318260159085976756057999865689027426776084547740440243186928390825062409639239814911861654189097352742196902324255452167790871181288107526446064501022939601636041704352255349730199991374221785115068070570924773049500321988466859539990344653609548472356891128531764491714703645415914570488898311867101850203507402293035978600846735758572391405515708415100506763888423227778933029490303313176853811338793857033598987353450562117660693840805620914275702456733830482883827357582118648613951635642811865932371907894004967673880367824495088569129207530913240374016478931432301863464257665532653754550313057459451027624461558117757315918020351188207126690400945056542927034395920990475836484011001596681500856581152049899174791104427128852389950294607659782451076877384500809344612277482536741220286395582830984694666503558187789349874746048376330841748614056352338162212228753509486706444122200730365904043649196426632700952100579596563131655248799870188758986133288308154316130042183190876934088602280854346118285696223858155689851201271929321536649271109898333374255235589285432949940268373603260535904355491321362556491727779771112316523272460037247230513079211768536893361853066906977021480126732477836042361485114737320900041544059718583549043165547863146392268660373068253756333447232371135222388086198657948667918866830196508173210851635303911349268497336930261222311862395005007828914617382143702789095534105825778243287151222461106432651015301884587216313615732693461971044966953608129771998140512548664028422525392772312402979818047638887309833163707895235042164646251254480307933790447608812584134817211739223365208424617606252493561136526649513656081400331388540702475788824183213120527640719352772348049275887800325825252681705360111816423230469584208226296316185813809118305177500844265738822569588356687854374789354038988438612009449425773739180098311889072067775792832330323719328103144200463091353075704825079187971219584179654935936259866930493937782512002502722469342828113069587979451931774269531595057584087522835455793647601912959093241654550785545057829531300228857250983577144245712115160651612340783387424374123064599806524005492697676939214245163518881099791989214737368149714703725434943498050394513717736878103779036701871157106030903345801599677650609730458320047491888850792857150871854141417848378850672349513413737729177710326409321647050385258417746078145092990216692121056637786441702373246684413626936160062757987998738260233868122232812861399833649234733308494939943448400476590031646123502287362073486287638376886452595659416831968958666302819202680792266671639890302789465758145357247647447475832392412785295387691763951724918936125864017959485543450592379287672781809376414758929525768263549303991972783433981274281814090202042532545476529245954276843737085278305547531710517035876073966662495206223130889243907001860429728171582623684042305736621438087390261938380158353041520877474655465539260848691921062444017627531743151469288734656868424793657067186152121856829233123295199891021296590722056787919656251032205585395055637443128419240559393550289612620210468286399985352722271547938156808139133386487877751674931054643935486906385871457000528244004125179028846386641123350525099306538664162476315166156451732843370723625135758285657406038110943251850481191961321730038389448159627653273422704158861071188130577639049734893720800840690851004611056755138133080373389803298793363515107627993771535070862848453547738295811510364454965826863946029563598699533946706994704384820394468886308582634553954780803304263769324308636336866622595793726616088364149789833196105437272870910225741638778017473512957251332243118710450763767313588407419203754771105113638495902819317458686407623912499344419044856582674327842915920391868818578434024815419893242746847644620854199363608448616707196299936115993674496602934184446982064931699584037557352613222535735552177594948118434328526019837743056170892827690890570643874464059035944531978943991465526303413022785686572641396559317867357321991530257896925636023333449634004252830955036602002574740393013810118315202998600778052175421414947402728748719546020207013786712459597916891873422804088305718893947119893497543438713480443919397978254887746282304842391779738220501192170275948977749617324515149638121628627750714309754938763050417786159194933585313890018118274480930812520757988141419036623756889154691036476135198114982635960790845050153330456759895052185349001698248260097216283325995559706315076817698522817043120645482396485278788076665442538379064337135776566561623577804830322872542594097351018133837745241291281738807644261755631857612396482441756274523354457228018495370569711585251697280022872046374548792824284136800975796258787014216358548035949968381284041061246123537539129654849377555573421575360586737048427124650783851498792793769893119475339408672968746188611077688921767943168392863682189267930227348558807581193430607001947783695720263757792313078539107955446915765991376727034388543757347530216456673017622538536625255516855140505737472998527175502213676692941914369878448718310372863634361134322144675233192318423603223134951562922351919969338026258754878433257314733492388530883306228540623065246174740017696581296565791604124251492805226758792999798097097464963042271496167867728310247410846134954754568489084783522254712318663154076727779457812907925951360050960418911965164426109839769416227535704307115804639584813111460732095942042345446938402460688489805687002610226571828431953251622970162399620318369341188653287417332391681560059225034892313173386676647474042373082682286282054510963324706040300049651452294827124495843150442612223865390439420250435119513818738028912050008794451974966414937695820173368020898886651182069663920688724426399552769572825412838169554344494848415109030159161387119298415732159016678498219836202415468760492770797400519711681418561171070728627455922511501530017571449779616795470663223860487685906031028113708656224397134981208805000726362950637190710342614393329318099738992921928160362590696297479691174481447722387327162856081304508942530944245707674053190435688674038779347190143500150307637576465220469538051623568799791598978621927358759962017422896491433493754230979665785367465209218339347142180792914597818895973637855999847290544111982806228610980877929083278259774913110250713197941806433324593139909041434226944550557144914664106206718002400405983373311029070693868346262933763453497924109197584687954097523200035348419740569607460401440855754548224647823474756066702562604719344572065678582014534953314602844214223038128165673856254004252881179708411343941773676186893873085399668964776941685219676194463896215102383452122159065305466707672323292194483469847216490521000207046781947649387594067934775344491445257765011600949542298441065756077496361718767501186196928929679073945907781843902351804614927571065546852974690582057060284984844907898003483512252624153134749637678001384855192201610080518783864905596972278441430428104313050304386069301484219457174635980535115023109944840785165777304241926080869594834995939202450604758756654558069092995650102680873026476681948631797402490474993352648583520559345542592751287020146725642502233168338319025161114618787391905682611459936836956917914592427800666984940528705967564939164157273607029911609663691245575457532452651196868224218726041968317592985232001644813866007451611317159193794616490097269193355671925268546849561774615441172786175589387076472057645108542977484909889690100785654960349841061225305023400995511233844700683151785950871760624081577108026633187052995454045508808369195379013143436713869504055190401570112886643960779031881116580601770558534298335654850796827336577202925708416192482927836009761524991570228787234588776971040110890848605969708344738948502862040172554006923649154410376105211543891487836377167251986755682439728423949469343835104056880806518796238421441754960662673935079375554478840501838409479604697548970439416141425602830326141172091802424695022293015650512632958295462346912475539939845009402933860041193869731270655414210777786810060914070624619204118128511866384585876143501446606695610898849757724539152654471142467953201333584973130311828796664040142447837155146886551250146626115861161406100498381250506108848134195998901289292013399913432391956535632297798607381486536813704760593128702999576303947154888166963297551532823420915411769884658230673547047582282070189559164862035077436110197174994507563178077205935042564746633464714675555387611307398008592778246453914414853008286651502375918799938609244044921349166265911711506262350507509492936055591592825650136717013350801493497964400378884207084360658842904045240779196192741062959671506891130313188969722509545125591527263421654504062527902705357198486026988374286414423208631212668716559230209344603922233121749614971815871170566706048246306986557598563220230521463347920530386775867796191943016669611892076756126601574117369573293860482817428748038874204467157711861504005158446639304595847854337612100474521162447526421964059414957747626934377607453782289554657126866507839541961856747103948364401885081220511070470108733603013126944636387553576666338962424337902875942200267351255602413011299734025314248002787188792974422115154003064373731198621694885858309375850060441495701423362262062624851342379431542247164114070685078091313523355008062335801678610096849224428907843787572491107992932495768182415315909108171441393338429999374279319639988916856679065372709842967360585976293530471643501427714681659322761588386796723411415022125286369459551334673617053498667476981915396500958035741479423493271327149146723387073443378688165138861113060367587797968820122527642870580409230095080931111163053148922489573691875664157039181480900287719776858395593179019503015852128026971018852582273061909126403334217674022493656858441058959679402806968549096790249261195204134213847916920595957988201860952612620389599154938619364951156366138443178334026024008815839737232646005788895384876983630890870166190954342161148396872343432508502880824306252145684243060025049231601721725316419531412763268150913583555489694134015919745077794947844866622675357320243192440402821041945838658637279395762574445692796800002937160783110474526470307895370543853266143475147100248441043308298775134492208054379514584878395244864921780862663458368444215432347604108656703420980854242065730343838501661833569649091499589919487162068858554244469519345353747421387750374484421038080094670429974914492524267181257093020438689302774381995239169196555183831626475074094411482123629330479182946258158582805877155416942022169979091186005483708367145740202147550237889670171616531271841825730021832125301242402411674726768991923695939475308411918562922048609318817427723576617589583396995428474129773861446312243178246855681940350244600912840158715192029234859966185691604920705971378222063349434804399146899204377718120495019278785923067297168891296261103237577774016783271166593298383803643167600127672558392324856057532996813688941465700435537499379321205133508822596793002804109440057559242586865633092580477480271378908388800727386318899678655371866592158740533230129344774871802230999661641018664246302728049430186577104534557133632909889701116718748116019519372398618206878487268533763872685965763307181372439223698587039343151157317769691659442032279174359361710848912738347956716208571463485456870119883742312246323133669680808436261668187812256894004670286132360244470544970413210406834279340167099577167665810848646622692569718581415193459259000092146107960336759332741206167778531967911092726192242761154548098477959817536279292635986512292539391103539814803918551181667844595897068701426893265950329064854636880875428878642677418568541996675837452589764332036945808687583863820126552658469386483983140827121273354324036722394431726315919126957902412066225111946114040239221576523110161984547060270052982207952180892067419065616531730054674711500260592008182995012939411761113723051964317018245342086204795535104610104491088456206462694828017773050839907135737818083491442343769200020778174781881446648445684658578056512063528425716701250686804563108635488403724815198113220773113667547608414901451356988134179617485115028304694411207773204097013733211395748192212975372498204410516061410748442940195482561266815250683270419486297348112093972753779144072218158566917619516627838030592125503378670719657315727924165529795484660646796892989764942636487084251900075789944224369492435435861643538778635468207704840624710167196355880524668147309633813902911443047565756126690958467894347149031214911596682530814962407798479247973512866031213292513877620152719978118171213246237657093182257783688965145065319833079486836410591718726520247293893103038111910136136044141186178712548292447970723153259586417387963312111505664066355066626838545223667825323849624681893991331234930299827753809339883473854462186129977665069385091709992984255526363076250306777422286338851237938622972295031564474887474329607228579915647963044731294614861977816518692401549464505986178708850940416771541002654048175717127869199436124704472569494025356108066494957389051109607983840078937361316751801838060702311130870712929172536400673759017996190626155035449095643000651320254314615328076914208541091283196813683287395010442101403954698594120143483967653312020649446611567848652770367920725642000614865044868442688499154579455645096398632754324151249602773276659328126876170942063851190308153902689186107568133750973642503510548343036033197906098602767213909906574419574979341314705126353560178119827215992154611679290882332335562639821820316904580235250181530566795559478831780058353029935555177277664717489727092223143318817665479450025800638833754216310865223351263450534107047243519138119477965365339337943284009381389946502542092024109020926335221246741042104045300992052583807639512584202999994121446277457492216322517558808393919720619583261007342122202788321753304793822799881909493552277164378447653267919339659703277018314476277512204171193569895737018403004647576450771290946591398154877831935550204544848524903415295997978970261533578633009424797813745879649581851824514614373067419254016769150272538667062107131385823763589489647023592247373909023518342015411499959962932281012866366091224609660648623359707264999323081522829640862545509666840184034124293343695237352157484063656825719802851316056466052718859335368277426492146921795364738127015482144826154825109039883791037584543752954024370502898739392904290398385126061884098489592741233630874992543791226739206865075472821467519065006799606483179903950881585875158048426775891601602134459012316272672415877126743631365246828763819648050592269125754365652904081285098125634394903766610750246821590872080426502342243764928354330820611377680171566675048324384006612948439435141851942583534236748736187973860940094576841784753082945697517187411053588308435574522593140211576311882992242362701989180507098149428566229449963261346192841004212620342939614711909972722639996541863856854426267202927381910427306281200012595480419384117541745750938407498121320547457651633873819167892750887026099994428057836329911252405974548647826937764815519207972597635890348829114462867736393820399963553420886932287445293260251979541297744858503733261116649104240216469619527151154723826212465921986031453013490709363436032114865552404442852262074939992392759102407357656842323743832047417840363201549506977419429120283513329430663142453229890364939934390072477245351728144696614624976162858340411956779182728559849798686347142372949063604152073096053926380102407410936583864160494575662644262509326790230926909606732008405553238057002122478176755325204941110637176327353345022574513487424488874232062189755526139347513978568745352509670302706956624675255601914940197870027344053797015288804401152730307522530987356190631128013137915555711302211250310378753708721433027193701282413862176322146347118921349739497038497163069691874376879489287896696819835313282936874228690928590941128590705779543246136550633882543599459341400465553662567052637008203766020568890935931683320369080392752846510919944119599820202440526419299922597514920095921411736695809495499678548630964771197442220521673234112232259927209341163872633326215013661304587109494998501505242337615659857754242077296560473297091925118529656801663790109137159387288912955742800536897713401008807510020576701972700429988044256399958486023093833183370197359126868995710767671468963296568526908387100099432148656913517849580823921244854050595769863737799705552365404595049246215823039784980901162880786526518310463022224100940939132265909685276765091145570818458279398035094852702646760367477505327440465854985534607643442867354512767568745047135854236644148573104917582825704405170295046571363013182104448308848359095269090560376579124453430613378362543198957432171448983755310671981319992358793697236127859019218792253433980181219297559685662082325413054787285340003893371727499285389931516548193830531489413718635372325074223756152422159084139388557669863564304769607542226129855222756464301153800908289257804473162397466604088921773455170865852271813013842119970723032453898362226325521247983729759657946785955063117464831905877002515911432726551636650374836764801624531328678513807931047407245710992052268933580602807431844811456771440164322196591103810111944278555019130829801023298350725710683166385258235256127457237767581565746704186446776402049414059256537417286541637147042944921874233056597472564644506294257373106793387487158224432953495290337043478103222804550244080626069015136027426135332113605588884898249871004160736451594735256957535122830960533212708476625402889424287557882117950960382774812054207466623998241188811949955140250072225379656067727261348649724450788658352138988849127668171713312615216264637815291327613415508665259230757168350115751329944824943745195758978613746114335685118831595028851325532382801951285713442917648970678648833317621945686819593082232216180724698335507536306215359409509838984309403695409094537604408643218860907074493062567423033168032751352866551169527534093642979128446734344277013334559826638712249717190205072537814927743044110343726154956416619011397044725630439825534126103625511766892125842378736702125030880139691976219673127571338063286672789882304611500097548657387737319548019965017122832328352610936130111537379986959947433205109172582754780535680210088278017804637237757862571517547155632570219709548412610360020753734298431020015755268311877001123498884898615540169230520669440291384588318048695114885285766472260061086228506125837639279322273612141907950445664503738391999559268994924374556869815357220589475263449409050330909096518435058620053812417924627182271064551696875954530736246290126875406519874161922296438712252585612954398989061409253532640020016235115033143721873153876811046237976380533617411891194205318868948328487427241388790541654646038886963039755988248030670054887340664054684217726757469114112054108086514754792910866904831915110644628889878093430331413422917620656198969721417047581434727606558058137074684122791403522797023521687036416530048008888349996464282975697692820620698249800734886366583110039643544508275548540353713317830538463660264947938343305022301471995323993325259545374758484888090173925401848115067154117303328212654022187065812014478593059201653953748350199919850660560585641025485892367930886222202149369814772213760688077798199241974725500568033009602693731701275342424468579679740093765314901216486813536886983406721914382267661329004707669266614876417478999180382414079988446242317625208670051288651094240380203454473148725407757671662595468461681945324319220735924802098064807478718316962639788534079777201482576851559475616475402083136508049635778846222614699757301583723715450789784184201290527604001084555705376575781265623947317360907081765493005616076197405380666928820534211153922391393400183326826079512051808786213682898159016507294982942602796608987012183688053814730526987329312440901834793827574329097001117924718116778224641526067377109912410518555180568360730019522769487069151288001116774130357496806813648202293901528219498468538025742568818895760526232925681697703029667185282929300554834029380758910294938499011525110935516157741562530835708225445469556169931114823066823337134795382068192758996859337670025016027711262293149625512525886179572488510627120723664399458918363939392176934912531708780375001045641353088272932767338481166888226795623784992736007667474143691213995377959110193532357071449589170820020630172438622042911898212490603013823848284853441096969560277435460992673502095527076137879231983318577585473646425573348266603885016868384638749812477842871440668249222981215681998807018072580062769823941733222091690947599013711771761414477992098347438916241579920597163912158910755805956966362081602376358824178235378517280297294806293318299646875738078301421067841326174252300116923240525915366691922584937962671280094426045929466894631346723093864744253704952667710750183763397612670752237636780088820964760955511768429577017937307287006071369906350896100147957331519358976469175968429744062371664992354944369481070981342853234938852530797456058527357007601104836430456922051194826023551215651462436093331406213109544236071222009809514292303941887177609570118853003027718871157735463947689585556421032682382679076283865994729920415961726507198524765047333765861621140740039780439053211422961712918347802592157303363888909421561302716344812140717509621959926686738638115663789238327250431330269881886487016598346414115006619572048265622264371291608214323789151527428637467483346630667502608725341809914138722462342918927012980216556673911085527063769048819427550533159915242006543166576411330582695583008176573995561148353636744203125525741890363949788099687800942853373681011351907477090072519765206542558727629491209831869336448558760444913303597563105019202280999498042360869979758333974843888547959639999744925993242715655627042897976313294412776118261869196413482134993763400430927843533967589613122660169439139817384349348019351321317005133404239493486351182645032806388280499941913381167524125993763985467245587424163796680453817114037342119088499224508131932386315679746532418810937810585231831702438522383803999410281272754759306294076668536221773175620304471215113791830458566384240679789112973007118168611302231622321987845931351516420795553402676758265002128911413138408531431294058392525844936698058171063303033844969273662717317295792960144425008431056042586730589515026371453105300837672848436903111941286067274617668629507780692578026031299995018345708092055828859505831878946190015078950569997866186014150171120495089056335754757791280336956796723115599552211922394335394774544064808532143186592153407656196696860303391280667205041826575856739834931268925833970840540614266443963443267440941384913249245433354746688888182574300718286455887128285801500799967280973783280560579546361863969926094828742230005412823366796378956150423640052209057975681607016751792063979038664087067137429291850657028920286902131079434052969548370612081800837455761099212370991973870037340776223702171119231265293809015066682181475940891967566095827828723183254449512711704187917510471524954311907927521228416013375488583444795468782004177930756589116983288163101138081461975675007491066168353552139601478909945709435810784416311424861820206836993040510921608590864153755645971256079626273999930313988599164461893782758501562462836240346220449055157323595106585605593505570225529578035231488645051368708101537713040237387580145763796982902726925132621084069016885301666614346179871055903312500656438386097729319863884366647336828819703169830740846899367235628140937800905811457326690658321581548155533683760430130364066594671307010562111181292044922342222812288731678063615977631608906351884227502091135274852969644352721023301451143229974664822603867272393696585460269950111163643255295192092228480330521045987900159943049506283613724926567027485002539031253929200537778217864347704551030702047066068199593954526295912266043212834534897500458515625838896741024921155888477949111583029324934529255954103964211026461531204474887407485265670354614934928876391567255869513667091604124634695286093846707054098936588117292326817450003814859431108159309113965251581311313241489353343006708318828479839925729863815394668738414776283899649066071661102890105007825474924462166136899248810657902772532271282384811365368670100563483401540597288241718243455994874299358921390495697495540014840510403980342528137091225382145614461970014202388609767426876941703223844156282040935895370362602012941737834377083025538160373380141099667796483059938189602336749029735419984599979045367531991149184698025085234020870700777006132861758315814784444206621754534058201846915618797751698075916212547125975720502324329052043575403151694259851063700578018372465121941307783320255756383256865278492882769742942588637781237152693572136710942722379901229455858065071947876990580095774455149616822544778662318422597442741212832754559829386481262807783891460286893819763805412475270081044747015441230156796282306303217836672640319779078186110775773843477075553057697897490284180832851488531158530222512405843090172495562964624165936784548018743745265351879840876036701258727339247563010868685521251908637156786799578689928531542128413188880698776687304573703888730953239878112362109756149281537472303335375880633686405492908829094595390168846212456323742871256477021240563807805323158413792486467212910945544992501650922640966121966427312218257215648261284317030958675112031947391798807585721459873695365208932818611600046171227355274604260358564827671508661788230994327715363979434899627993940644196637493226579571693246854219804478275080252189618864842759198930401817117847266074591548285816238259307521627903838916791398504726767266051589196650276639515228042627218646351954345095178895366098584448567662713153834964241896518834055308073172249600680960302389427104435939940722221269555598083502273031217753006699947897155774449599594161699497789140188693642162977273705717811724570701559194993810482899167385492114899144532304709925176927902331500330346370121530368220320877470931933190867207342158471367792704555662314510840831197295192726648526639645639443979198471958880342282164452449874729340764653611362778129993889406453265909077806710438509307180060130758587409208872333881800458457376386453101389941173919665869101081310341445298860422646069405884423126322703086275277453191920824760488386347968225634469436722732291000525067401536532641278449284338722273587504862245127773966581430133054758102813580219345966931148351405797426854682123519600501305089266688641654457367561578829167117286782350354400432360272768338642432887651912381859387129588879491148037744161540252937354952788307324095240384587631359525603630833004527078631791598819749992482816208953417047331604838807152124519639880775650330912932793042064123678944039419035610774654802047963895410548401432630605001124649310816645782714073991348344401692731490656680023125057330346562404218502436789971158598677088343272489336659664222103700840579122887813051581025487882474413902910266827320419905250437284818482843706914820638982358775223840756892167635716397569599036420219006164327735642475801328414241158462458799676895793464650604406306329256616206941718436304760476382114521457476006771944741796855765526738969193717007928887105634988829769059564874386793989801994305259905234183359011492535424408648658425506671211176655639570900992080550079033119525555901737758860819067663089275235444495463830561505887144388705708401979465650775928153475970629819360015957047802631710565864710315732615816292961273054773121610614006844983266813936809730380064813925451741208472499522934530975564847321405603417117784189574329846204371603388323805531217358936501230925888206318234785723033588704886506767736787583069580225954959967457844378574137590429724178128152546716582992985764646447269789205121581081143688129564398742050082216695238849215827194202201916900453769071007730116246805754916607407944325890601531320076738009752515160690406997244504313013834617185359439536435213903733131979547401080023408672278154768944235006517375087620475064444607757845467925867553355590920199917278072597532826879743244935980767407125563825077408847612148577875372458481872964369037423815273908659749832446333409038170334095842593251101762437891273399742443349004891656576796622740490346075246039749348124445716594144664954075198080077763171631802135524378340958184761764083644004306379265542498398245281772956465250945638466922450498160711531147705241516723109615237306116482907115885332722332662781030112602753242714064605292275344798330576816427290286139872883120704639623796010741981925031255377005347273551296940433341748889586129417788389967701176967630497779560194263204864186397605772270559797864743759070832218655511934461011838552182695917457194272715060905728805193978843827326421615696770273028440317480410137059234591850027974055534676322039301960918481151120264496764464231957801692488620704261524367143403977064345174847110826843393506726050620360286643980424514761657879420925387876866273618419717449368950822226739525765343837175678435811056736874474820423497607014215048837181892084779552057352710890031164966955786596343439209202001598903796286529268370596182899578984877351669654036784113794812905473291261652146727867863909089095675812831085001686840744625735100121133860618860582994139759917045105755463137932560956456282104005246125572076328088914421681269560741283574474423710748805494749040582047692846552634303908569877310914588883431341847754077182178515257598487647520368273984200611189718070516655521683159140238244195047675478357917954199768853367404822472589866747561974460821354335425367448459226398330092817532801524588444032855924850961517355928560269450864934111926515369946744966185411030161302650709940801657217590365992306819258813937032702323035979406433235138173153756647063450000835174827297617609354423481426349924919108244810409124852279679524322155405502384875180595914558716242690626653838906962316880027626472086167203291338174051126015170723055862615907354804128484897397084965610867888391101235543804865311956507354753958833251975498927154426664986717930085071174143672254697756724959228550184897084017412310199734354058472997406314120788116440935143790410292719650994133068497460388423469735487579036766673663352855986191211367104653399463706693038574665600391683832687249170657231885204119284182206437764985644672447093934722331896041674240402724911716560041286163206835827085638682717171843944871926605536147433481964600019321980664842893166745864816296397522862117291636570432117010167653947481279372389029958258619703018034446630536772366682083308919847841909035153420198486021386862263095576188403076083150597919836254241347737353223821051558708082797707131437741121993591110975982539889125226175027824004438721173270701187833606834432756451894406045661663207469576577821059134564733581269687598278372669518183903999978185060916700200563686414105311497828387596811042290594643441261794262595715592299741375349561773026410653668778756834808171478405404091545652506389640617233250375670724676378706582209237394510496319143431885306566537747621878319285860388481784534864357892166441139533680311227944591670133600913724100682486104527991171831498214537079849460665023160860520961285570272284598072580433735797723864028417531041764833447139949670559421013855529944227417335612133312910332485733804179482421683756925475875746980437481812592500666722997286558983928262454131532048860286702894848593497909709027835828036197449417511534815724920883269714221652562913582512583047288713623606513890286990397936971353920718385600533295596414166852212311349047011716065013157605487057135572397772438649053894975671908838102800975858542870517537469213990214895095898258891578966164979173309570813539201991772106553398865053203628894135416531814334424335443035579342194387465055291135974849761943428735039692256327241332040881382106006440920480780783236957155681824521591158043200985698114210654189761377663081047269171403989056415063685773414980529168646005871607503957638106362088754127724594409371949869356538271167959788434948145890181399338407116958862658859441153617130988688828223727014167729711823665719388263861741047964492398122469581304397043681997224206859393703639355924121283860936427416596278283586382712545606109738054458053008532509027794564869643065531025764691501736302269201058313754795674288906343101385180708114736323388452283788669669513042252666740496070021783875553583295943640621438717706884524086387810123803124025162559171544518779623530239658775519337973732752238673218109711267974312725151659224451669861596576065232794417629792168761068639053241440041585679388518107851114255190441350066295938525815666412039332772250563761539240259952055015525574679868544068933530004444536325989723806986041612175109714764418153853973916354486612667396449479504013371782028592173659624916778970641609358599525516170524974105419224944584817403293521021411537289287844498377922039470894610668011332923914256481958756272007331409929179201695053163634685160017470222112453538492339925624600648288151143995241390764181290669600574557509879324841362273840875437112730818173611870050265576216798947585825243995636194628538429463986075747976565188630021726089945630242991413422852157406086006526025054076011492501821087845932571711693700058085441286248758620952679593714248559991392786200881824092907862818215490066713874231257595431023558103258344954423840468854179319909469280089530575803912808712101975971893040038311108326451693791555337852214265653358364712749631016781672122789740001747414126063692673951464140521281293076275763609092264119582343631999500250708154679563430480018117117469080935299245128893608646359931335595434309612213645575359859550888477584833595785700898198373420143791385758441266410465111388516837333110032091202346402804996287133260261490083309554299779336314195753465596770827180977759194669456969757855134765938140179572961958860477266611020181472533485194621457291494669781067355912452730776237295827945697001342544909193134321706566322257280731519501528008528130313582903291835438864058061932908295229415373841612114535243578886286549765572381108410652683001637362584897873446330306883938036944783031837450189412578168740473837282036786252016330822264342404580509510266565391118868847519882456328925211625964477833297705431314365934041284190133599947161401182200037010052378782762949704916101848081115897162205547826552743117525246879223612631695746172049768739328311977674754257751100885487610340915576113957085577901847709972890370610133726714110791986816622520107619388287896725165427501489312874041636877858679211246518663492098401205326137007178069083314993452950447135841852367919618732252205058193564943253374215075540609630089265322181491527964795818968738839883431828786932840485285337610397403641994263110473108428984828719139284004569339558142462499079420364467355632369371696829295328451026782238475024447737418417736673158707534104498181864146786586351400946359643843545300200801841799846525695049800206125323197260235905690206752681535253534587736010074167570646789108277621459450719423812547273724178798946046143429436855412320184840183374661111232797943943539916211273316890015886347868955459443806276526254497121318267905304022929765192975685866181640321439097996534082717049724037864111259787741879927291424792686466136592319208025533790452977892027215179947519435475729375862382167622700427846393246504029926357328486384300262611775379242366979358076969285624808783628925451627405930511499993656875332065885648076278799973437466675634536601718395805423078955021147141859348575561602266917876409901482113097056544733615531935245726253721831433360224275613411386175598502481871970617014943696385224028140058235932600555685293436706773774103702098908369674924259223606515415192679008824540060663815770794899166981655516865921467598479968375820615803224367587048375756385073138118718475454719323057463258745522987631546597844575915049664089137253870177916505231923588563756796533602454422781448810131614991628707983828093493932532635083120706480682352764074858294207748177288063498572242130604274724639230204475350658515190615107987425171413974953245304898078694144202275933193007892596755399974721911478719180175704527460428316706527167412236533283283909606376325542216168599393247987671426988832074604046528245812421176808072081038320385279610275786505725988337228471360967520598369040234170543737579906584231526268826847800586597330199698933780376151285395492791442262320181848206957694765132892487837297110229621502308695600538971954709075447229617220414380097104502779166252531475349606515762626294934666812942205510062250134949036181620308197274918412402495645227067124560173939863170000681203365645210003432592099920572810556552617892418306182347015608849091153474877744960957560192665066472539421259446748985159941296406005052159238613265322934329221379819043366700856964146892707644057214229364108212699825436179716017120541145263260701705218641774475984957365746557568099366072191019124357890976268780304403045191625650449568130257420212645530839451066916030660211460323577167962523082716277298449880511458949462638266854411472849156584333240884599380371504408197941414438276462498087981226398379579219396626347425579279791120833400138876696064472286444321475826607373812213917579702172816973765066999981753318698658422727676146512038438798831160527813102300800098130804296998992774288215706176181148222572435680216519673687226465659234697115141213014786918402211879348652843565315211286244739390489503452382336634846605192476060662805930581375722862851149394139966106230073348656359277261658655806733215117366891772368626870176289872581162136138160309673520305154333960885189080023083137791866254431748759512796642531200146145853758205193775103761957876986847044095927974407453636993568838392812042767273117506262064301281150110663418885981360377410995363268334182066223254611829473038461934881852611533178606226051062815593397798841412688726124096032680834295820042497819399934798150088054561327167186227860434508052283343860771652534369990556884984563325523153077891959911935167550556084113239162855677483887740421402465635277828351478689955551178689849797621362252934094716821870105479341068277747755914928135161011931498475943347636034061918752678880678228161892356522282720465071255586782665893892343460150360484030227363187309464442087869103352160025220474585459377872297398675545897882952606850157101547649595740670811327520996344888395666535200814420306521487109527307480305547383981400969084688158764991806667054906354170389086746676694111741297484946166110270691023391948798373300717465315540544822497252285614318004287716085969937648645741192598280636988295700522497321578070855263771799215306588692661406377945545099797431140401159451722848649167009176978076279746887838625335178931774087614216845896295197498409352452242031005816873430482610431588225265653453261450144181957583997787172860904315800499573100256183790302947037551270382270418255068361237538300617237283069000440966244300799836786500351597412651733400116537538839624756041746301799435507085803016048678520653350290117949733283004758974744083957153754456632268048314099746295997561571324924468900308007150753419372874631185895810199466320481093938329056432324457998128332760476666198213753140021386701884263779048253204031207304677097720853544103519528018708911153080115762513012783310642518708396866249961800819257049867637453515537107619364657823399322142239362210033173729456013124830456216163611204686801384032767395238696612736400166210786591831696474504601921289317409827061703297240256344622271589917954993291446194257571444301760849967018587185017342185864451985808199724289162164817978929236302097511790194185428897299982137837669658144287728373029423298595588755985855284923009317810858060124413708453817099138111985111999709168974529186648545434745883892495432702961005968120089670310743264853959201764502409511106611485519279924470185606959210275206647793344873276271579861112957982960231582653221769555163266357663254196278556008371908228460222928751026291924846660677979826517233607038016940869629373485550799869455424005177450675817493646081531818169604040489639567144008522458146173865560402747569817591794110932705913782975234016822593413183681800757412570468740431506310153381111649553091912436217523272336926161221939229141539299716022669526181783210650461614219661881312519072201509299528480652057329128035468087176729076096686893406227048304142900603165554285323929313839308087235286552990211614484832408068193656824097250315257892816782669038696766314137709045478056197602302771127786632448844911525490545664573951030788608305320276576660309084506556659244386978841817568984837383056392527266090614991896561495475154725333660320280205789252696251566149188318779914892707087684638087748596375837689565895258951509655186660421049643680964418012609361871290175161732894805995622851382029631944157810730202716308716652740015045142581039259452269869048912063873123162694170109829587195095870910000407638148555842534548524059578299347055836398069731815988220791569074681632244219253477889351721362698164743210071750846387207586988490794546059458949322579663828942354958693503502870512429369104721439797526193259487057989909836882914403011913958428495449166003279464969577159496128699268911785301906036483499658600745373275950190094651632606204323407254442500466266490426447204737073957023399729960623616085333885409864951304207005461485828653469638652984978692783399705139929885002845502631451915316663049763056602327432819916212004859298941950901078065722908956433937748154790717808512355219044241596168745390752140291715212402541518262109965451093574233216017012106325688508289616485720846152570463711414678089312507918277479801090956446627478515964420500731876595185735773153893914269108356604780163997717367898491959332252656722283711020866007163603096263561099160128025061573441890288218280124638886538963829319996899790948816872716531559869288550797503526342467626622163481318056974140557777637362215442617078241213020012867938133293369033423401674450272700364740827391281464662857520167544253693882795370601346389388548271040052002632445766347773810788089771039365573230270912307540500645949234132094297670516902729863415440490844419660913381327163356559241593675330814903474327767260975470728414214871657728334531989063180067923191529742799291098640237457597917063899812483954384276602510984163343357624711776229822567269036708655667026616209489085612486654053712093011359414790334564541742574183271267279481987561006591296731646596052765385772779503859569087566582113602392583337629837118810408370379208071080252544424579006148538365803989745022075365469464976141424288564879775565736050334820903920507053645721311101826174273705411537599552164418884135754412055108352514581600570113918596499377866762816150410341510769484634028820084150704258304287975280595753936256995457812376120539823899750970662421263277758005037988854601126421956984984100872023422529605004997694199587220283550206575672124001383357877750516009951422704203825289328891061184999700538935297281687293690334397532548797114845780954661145823300729458425443153434175744800804789485610383455179164392942897898642983269763992237451195994511016930574800299363899992888103681103123220870801214822025118216991216769136704000250689846217217024661663645378426733831676653514002499562043256655794135444768121999981534267837405823325863351783887818099715258262350539793681340573201059244419506903610660230850222455644389959697792735225887881422263108537942165630800800906977996438230022227916924391060885651424393271607459240691124804781172703519880744958277647087808052354696728028312528650168813565796493565470740355448871280336885060143658412909692937346463852973136869980546748680699881131337536860861323521935173711189912954080360539778695636191732963679170689486681072615355896920217339691927094808394660427328558561801418873574943700918757390711784566239488872976743846695065910070931098708549309081175321767384107770761248558556788973778539064565272312905944086969306464259461374511210116627610707162656314228796154472068956181031962055589182920703356532673961615138388574110713620174110240641832766929720063538866507854837492881365068837012703417311449846156045430286280139019301187938467160405132430635421427610715907512471863154131742582083375145378782492919272660075329195087726856809905401336453997387819033453360793436057447612901346919333433889496312075030148003724160340422626735869827331080576250915966537475643022408636886294513633139578297449666535140817137463042688217101502970972678779108100161832220445209902596800938229053095898395759868737826759433089666162958098199479577062166982728809650589565586891674953829985731151073195251578869960844305550609950554447686971461744119971462039796626727394759986648549325208220903756442816104534209323401862192865314441589708797898755572284898867657778690218722420580409647296781200327026392933906887462611715749694168267145432468959226683696132055485378915342445988253400212018730798454488275609554537661461087967943503623900438571242213837367395291797733003245001365488930984308773630163533038730143164461049314831335379293325725026108189566040133202654237988806869605030015300761260005526359011418471235745416388504899933953736980510179178848907167008492266463650981400169654096135547485719038839021527716782289592029298148239458672068146952396315375520592688617928728162327265674492284166809816294060384125276622526110780653546855194010937583726447403681387038888698221470618062282814713524899437458078977465564959081651959869311164770554636138062772375875052950214367546601725709032743883142909601689307825303058312197848742120895863362034835746638996122273758505219134189755610157731797631943084523249117967572210492427094157264754534250459110709983088559035513534054728504645234347912117201072469104211381852528642446515162595146494374693009534859749853492256247463643632693945462782783503965132836292768219531337827119670015102429544892176781043871501244044113387912330661002570153123129203225704019077437706207343693408273389674993347950248869574240299520442103906763048385948373029220321502101524592034885370363043230701540514028907650082617834259027674702921479611893621544794166950135663418986323310422187765244967503589891644200693105881514505025702226502822347038577770771540346688415002482803273902800035747974634469023245485342678294875544780685448529646625093212779388522578095296923223645135453175243296499323148742455635368179243418074952585983159590403576095697707984286081601763388076896917540669051873496060963158184610622898039373016533536922773101344979397480952415360723051894430314340090849366556448744708511730590253625813392398060275342048668404707946966417802177416392816396436510513429457832028150500606060339401423348346209965623969004533939099457225039247217197866882343722325519811157240050169057629775869489985821077545467492176197976470731034521896388972748365310544938145166723618309419050919288529235401963450131001870739129135619715056592302952201015283026889582855981398688645999493777501325568854315399200522020034437640636287238579188900767590337523255618677462796315839981014746298824595789341495501906454574837773774651664956892320748167455229387828391736626711020748141034052370441322978225794448218172718445394672256816074752782058703834672771838475204342183857848827059530734712261226003413651001139445494906474053189401383657487388247229167273234045731059822276282132824355689769910872181122033646580397791346985999649324868933476049382758864866609094341792061409271127529610066551693645352278270520430803915801464879212280707615040965660104189264451515216201790985574456629053530969852616480472606819117805585101860317879337919022850713136694115545279799276238126611010668239948969654424167865553912908728729709900846121417113643718693056121218681525735787560445993782111613425375408422968252601579025796798134997076536500224325643182646103035534425073765498404146511577945095208959311118046946114006414528579661970239291892604553674014178042976783247311479810854357218674925046152010833049106264731996189102374690407593301773599538658088252104639981806547608874620587154097712463448699774201661856912767393936750398278874950227957013334851064878874091096822583055292736055056618387232988379946580471174928122298739410881737647251602789596465191143461655171824279676014191686851333379077966198842975614614472037218694634603314853118627396014865893554211997893346631468246868673797457004802016515051422098353157065342289752295173142473986918962537270182572080712482341620093560820910225655240387141276051253995942959628922616957451737400780955260492892513273566639748309485616076672706457510027311320899842110280760572212013877640549950923558327915414026090624974755033748377785028119180238895712299335986380986959125807847062266940072350366290805017447886771284095080810793477203442540647050303897706976212012850008673224457171443488352749751741712453421913681975798066345162401468853043401066480631983431046847368679843022595230459665141955648993479237822299699857054043039088836538609707446631898173454032133673874221432000688676671459100156144348053135683954556604117607300149580055294933501199136878446730151301933107511967364134411879779742278937278809501713565154215121127053023668752056489355687563703826071013043265351186282039276005280297037049128642217190585874081654170889452216744269336693011129239576556759216435911760033475614598668909999797279755424525001257668823363697130889075734659108210227802122282550583848848170047303663632059424853026270048701601808842237781858652519258752854507052616702666816696840508278534588487400356118366224942617344556486899904438754968518775671108727832273510775281438610872157204458076587713684638663006075633235167092944103343833139106228494981906830351377878957844871696607394520265299084038649654695310981796997825067992216029561679774509609183577786073518872096716612076468077715774624069993487377075986437094342143053521211182602334197350839356709202407848612281663264055121799683575792203658572043552805235361071262156363602055526866809057078519459602578880912255758508340318306955243937581781741399002230009942921646079625589455105150694316509971347261506025540735258082568827594337520660188264170282350876209434263166292500432757369295783990849873212656194419590381742331417312217773311106485855468667208553426412628151631423339523009627528110209557823974298652308836438505521111942657655996048405754010621968658956367162996597616700531822695026984367183614023581380648874920784841296734054432758390991879092736290412737517953307232146336241616388596563133315397608756924629241796717686240195352721285850785233287399126716758015833073996744937209075679209924112380163174699042982190451493687605929096011657518725106579344271070814548874254710042749563211231720613160743278047874138857315081861721839884695849559102137872312533433792146480625434941963473913487616406554361038691081146837410626259971751529104967032457500747107735438157316471966173274764744321224457217901335337781481805922353989577875672890666364213182456175233215864407304238308648711046034522019407763205777801266599224875721502818310013255899819185077303042849166441607807207328025287317385969349769470437766797960089020834326254293025070474297426057611840658717726344110672327205594942573224540290247043646431262239659794025211117214129074409290525440262288466856955533228823826720752902661245748747660042013879427680003929439238200665581561534149782544733881247028604888233623115813503848568054003532222779757694962488997100404119909553008928882754887030299491624733648394477032395180513271066937284042894771650663429835734261558084923373228099003357160802819639748474578567837382602056877810929633955001236390870293921590075586246021840767471918295736588226142806743086991991538467776265503684016207837484081571068191868134620484120594190508643625509906445759432647426135741734062415386074663085149319814318525985924477084730107888239868554553729069044450029097078905056134515480073998506358877440574261802554633586129158794153525423046022108407468180685878575019468597649699218890986751041672136741090762892798263900065653686126774878749866789997807579782090465485339191138100075535981940633288231996270124735123786433414849187712022886352327888513349726001896771116821964584806401817983610183057373071462257734648951086871378754043562668322642104318737988755799102062679743636639041214974401314030602605530734636919225852028443902451484013494946398064875873059239010830729789425299771072739129729900474889587181163140967241200743188317589099492550947304896928723927868630584317120618895426698621633755749904732640165162140715276869688805934022880224304268061365981441933986604828174242295346458280187371802098699322229360143718631910829825154770658330564042136808378472614387569496404821260327711929957923525227972875473550179748065134541413718520242059149806095508436074302531591463924478081388075686208156632144389757449384836215922469543461607592337786056212211365365945063263803143272454315292942903079501445019687067672815113391443191211451457862116767422000518900573838010988791047065307272833900043517083014382153458925295473893539389731678068083403724878646451143477392238518422600848235052001873599471462865073119187133148512545391316594819229061431302977712529510029076816977706895349157336341689969655981107968400834708866799273046951264253400803608092133274967490297597377741908833416697932759303420213975228765097766851090031451266873352515473582873999370890652595859651851820681166952645512435070684388948880150370706341072507537000038040078599658716002244633345093706082123002858729913660349203600582375685626718100121277037971768450295186687484432238378421629389452716783570840382722366952333104592282986247931307020973425932688210364155251592182758283699265975631331263432897388480760890171394397138755882521861035224409545150918321773357188969301643984738308145335349444446807832878806085390282479753577564596966518394269463833721565760631311605981519087166696111263565796053394551377436035979794869835550504824096190622737352904838988898796530669315175311991826178085651463388531344368487108948934626738560234597161075000686504876571708456714756573541995488836991941781460669040804230109710009297079616784441872837194236643357360391438946306531739181819606301515653442354351502197756861941626585034076148466658350278495407564429378861817652065283386759058759310655549067630715167986506133495012939514190588690742540985246407416774463081057210331601639018195907981779094683233956717818238523201416708317498422048821754366242450334072081384508675134031663533054200182776424232125830916023781248638121433937995538483890164769660773504935932875884038552355571563443255787607923361445955391597205586186878719103457224103355651725981557347422189618380568922154468779673737899310235327912122090946640950083726192093566456838799894631083877123812739713971930656634363580299703529355205335219029788044653842929029170803314620739619254162911839387617221984071038159729029644256067228877222222016504357633206520606245526482769669623585279577387675499686964730765623033746394865810319254058712157427513398806192284972161197236297308435261861251478065619466664697991808587942276538996971419625868403167516446724554385406087248231427517438958203099034185652863492337476332348487294766290879699923726476277451199885728854403868735722980877765642294177980783638368669810435670062894078776725344208215574184619168573933927578502338473018359049013627554408828117103582119177160145180028973995181450514099215841461883255152262747459831445883883628165082787033570369003418054089477329930189902614489651175375256585409444839355186024959780281088101435934340437822153042372770973287611567711793665452039157753280211383957359013245085951619752372394098602946901758939136930426618147228035744384240896529075497696173748838648928302047268081733518095457710184890876938951523484117316445352659912550273163353607435241679798000379144219239994903451620677228762115830550358078170451147544087902482270618378497350434375233396587005682994963803982676385261436002597371769451911823843937529855500025478673408763667647011463546249307386517613817174326988431256775191406716782520288804570117931914401243420380414706088547714913225449647572310417382907463251494561898182296066776144006184124232728115235348312301674225091576754295555133045934090284442858161503371624470575331710263429387954283165341266034528093919209351527396525619918032689199736714027484873358780123334559031914741363930198811519126950788643935189981010196441351839030432991031191473506137378506035829810073650693276042171032866167585677085383668318671206257745432832988944328516731057652459476515917438877993888210994873078988925278582461500592593361221397207051326046622603830235903186680297880331102344950169333723660638501677554149929426345898415551417379986882009225365207362086962027187293777068601125396708111477041932508045626308191438804228522556795221214095582953440335725572167364299550905308128344127528753103905852713229187691262485022579193364920871647667076494516863656211013840219582410175316215095868462885317232285966753767781691035102913163643180001561019718576159712015482340396063399099954912447749453194115855716455791538676156383576674904319149970822689792950494458272574239166223072099644123676879196870977017361008084710100211743961598971403637561366404379543267726179399744898264595991775750206876519754233218421382563162483038110584706936109377696578603485345595976084899486693262483975344969828436918355735481726715696289626728160622034106227607318874832033854308708997164464117317182247965679706918627409730549030613026103648900617200685999442813007140808294232252316555054773635959608428554730019286835149454951893773555968452774212088511667201592388927795246174023069761931831397416844996238498157104605681183515872401971117920798754631802492371349498615816456729472688427450784512802537389701306615511401915281427799799974739445877708183386641565590393638823691309888972114470340150035490027038427949710451626989062785080372472699217380139717590869729637133620771794730362499681557858014596951241201738593413753326929605661538482423051889842944292533242468150073416594904182511515027182586644391579293387426679746240351124224984128479775441596977778200779657859405513323087048443062622124133400146730347139779462827090668166259327030175475360214135241566721192000671758084103233909247221402882998184249978628448294236946965289933055108890058192041694027090316387091963217409983758114400942919507011948643757723599773253548571851613144866845322239764896014721257934971410630203642743022558686725280643819498671412424040436277370228184517662607427836600272276746446259899219482186347552858686383507540142005005955663697498693074174901925644164025423138339352660821741271544962522662485626455843999001722481609993216118070120821050838671002163483452514910395107041267742520635461399812640309769088662495074323847662076243976173509461014135461898620853062771921769083909784603970323325728681510572930765245871392186148130433293515586495210236023105729144414013820023221729519884101927756550496460163707754632057157045762173284501665546981830833775778216268935084944729019245570197699055236790032852676973139408356717533298469812762162321050868669885713799580899512387512035637355232928062647099230453282299824964094253606457095070608144043479508545215337221975615669941639941257407915768872291244621279073582705774707494457014849062555250790944932484285347917409814425656460903701854249508886114465224693982254378761315925314918740279047631544084766439000077139815544958934351591082251258151870342089487441604144122342819535438789901952617076760680836404685151730213964850730699613509395758775383427671603895562128166645516308116342989398102673957031236117630629579555666042997137738096574852382153507246511107869490790083984594034064324877708512349034106469632106589120812106891937555804052737280953697487536037228386973738093908700715729690213936633465819529864528482053650506300958268345456242785049709060996653986789765497125186710831962731441747001420462873774048331443281547366989222985003789769117227234193301859360591366521412796030641761404101223631838789387963974244262860240617887850762811740481010649964270847027895844598511930620910557351879592512156909364469266090713883078468773639286898482631567968548271641621672718255409153473688501918025497191737602950458196396796046309640694986111065560568796724323987572466916129071966821711646426805975696237109152445487595240643404386742286800811777933224060140259594160581664565432974187971840449954242672410219995970643214443616912513281249178126978969098158735512115640078983277455800454945444501485164724867930026932208559935317184153571175092157085819478286253423987575365525117757574106718429276020039476363191367749376882306825160547793305432112228779220517162531929771016618423257747546995480404526907887006995823259725733774130892666402516839701530512308823849860805233489702923946223671195128085196747301205747750726475416294064240524876120222337833673511651325295646628454777484070794428934943940999708832410300912212093388626110154972773660623175780210797760771125375042708349293263898341718490342991342322149980976871646592560911823333568041310296183962793711008788362661511126237731254769757509343597923561422041431130750715111090796308848833139159201990540150212158474692222395417236521211866107736996058146572664782405321888636683138066103393060080929839878386305184321082321973258934691089201341523001413338733743044555410173254324740979984471548214057516706681431010898248237361386596580559261758129011632703228138925585487233747279179681288393772351067279755529614333038064615120637939335038415094996737002716482526986065098262960559145281410391481403368307702915620081637667262513888435990309353780797981501462865867793791027766151449411188863128599453464273386882741516413046635043062928999579069649086283692806356441105136681895854949373643046292351244122358373435476878998771181151125017068194041819499920468246774138447813908835436786598829815041744163786334169986144890243327771976093046616519908966090076451330861727342408588350828348203994785187892620467210276442252842989505946083023947933666138788641810862180661963196698651710999507679994124037628957507765123286628032175592287809119329044938005386894863646382551545469284746917351667889990031604534906862656124887356565131524956681442483735560129046352421975092720710002785694809784622268382532898194390314231028987296800085174712921506467301826764917046299420156911909668160948110986476390445314158475067886884565142988127592152150379364982374720176613133351927248091095455534932275752338080319455129109072030942814933125130905314286515048256349295703301315329900303627969996029746262239862457536005539347947646789632655853041934770978931155625373033244578416733582708784819164978865650574986190631876055150152093497516164783039076730147356325233288129839868942176266712730533972441267539526270022186792474775659556100688365434998598529048435121429494968106657848281821625759888820492273361965336676370917960044926105862746427873970276915937472703570775291575204552576923426661607747909140739691001630118232732531005867975693485402419760726917669736012371627200498425447959850681573331912052620612103344807757349431617473630176939987561233067030043555823648523403390485781356086504643506811118620225749551745619951305402996216263818916827441497605253923704452080048621290138197411800536761992992856166446881705408774622919295801502615474708445501149597015350588340958057847027417744670410467801000297264292510455990776419946259341851647074178437350660577611792311311668076966740460964928131922042450530088473241119389084836952021268544065075703979825096686554334686953628231265818082718897867329862605746085073344854494537575476225489601162919120858789141413411471210022544350168759762798805558094715918002310998268666511910044386438176261766588929369239308458828800174027260986384715276243489682135955047224921435365888040781091722853970463398964508818568630429229643408414087581317944432311471136748613758948433457035445953314058390219162700480246530874222601785433893278510501404170418260500185956685153863863663344617231833724004806292482468942240352061816623998527860120994507084813077106331687763235717152259067333759138874787959166847806116540716617296740190651959951352337958285897481130310326516879203061785468644603106096645560298589025664346469516728826828751848668668939014108063284343786183092163854413585096910412876477608550345727295592022257846755253902613144527695675015568168786757285436915284168767760977018807652357271936376491351871150663086267020167556731978275624543045796659442842401658681002382703606026270659063001243241197762346095199795376680928607734913246656787438719260914422928901007129916973389056330573715280558830235449342189718482550011477963033758579659831182481273001130388293757635836033018151391171373593253859846785918917333845675893769917472126822998779378897124879151197401181025214986292836389385908196378964040992918325577715554487713816956908248802232151762814202371502491676621992535755850879263553352302078844390977523116503915485338448742094537108357782989666688495341606339660797335954305761268553038992282449085810630103641901279808751714400986205459660605011888449613133876603924675245409722236284394732324106033109883993796129944310992246220434329119629174086895614901166403244381912516182512207784562384733414209923480212957084229713655672424807733515189113966607341502616048921041754805925100454428670173132575495797172860144528663702604716579369430811342504547662315342578055216835827685756979712197303267127081734320186821120254902553746931336569294493158274476533442056936918117086164812508941029567818327701348362270014899114595001857460640614298413231942305000615429524155328181828480437222798295110497941919020514934452715783011832617306242042331746827200548162700798745650669609007022803231157321643287508759025626638850059587006995449105885328577212266448116763884711031721569600942851731928241761307745394472603545169216120709483359231884935035032312762419230515725902042602022416795084108317722560050194931708875540346190947286053095738887174530014877347130042459561879010081099769197634572399346011832880040844912891938407408530660263322142049194555380927209035478000104067402232464168689947685868368921380365044418720380434779439098626664386515303605905852968726846841619938336283553312637754991653275197175036150672061459098087650994608943370679606631391639033146789515994113277934572876796418571190108654976674537339733481466764616580558840472852066954189546685305385887088754186221525168724542250141570170668610540941393750150588259615870592296981515986363063087206623673589711880226903674603901252705471799683488191749271502921965630328687307092047628618580880889430153994855995047817877551692308076471415562377571489519565957654095865168809623732461003829722842168082565722730441331692023065274078428426592501973359603300916970062943970997701584422904461093239684957937708224838055528689456445789107121640304083968838309044188204572004890158961580664107545895537738301516945119658690900322101561102656362284828013724210605241379126727838081173359883891707050603019574229468120463233606239292513585887254835060861229876134250088893021427981841959314416256044721529909150706637009786777558950962051951447695363882891613508077024563002954394134659389869350050087380068946068712534904469911771905543344378730591483791438502895467094695184713523312727836728651420623053684966574092573259313258481206356300835190940478558772959859422496214233252419039442981184799391793691878347140555897157791240232361048203438329823931111147912988717941265295143945124526432131546480190570958866433488189981961690507965653352678934116216689748203159715477196651801227204445740743649169991328306122732565510766092463790669820190216147893616074218081005533368512138013011088773217176173598099800939288058540210077877132874019081192449947650870328430941237980619023988342485751166434604797261714952742181471742519500460957824751635738525349003729944277231290097835367499912336620533131112125581087888285624287162925876208296421452538732837385308279489083391826183629611741735194944033437718470472725018862362245748621412887399972508999130932689423697744036389311355755217744806894873896030026972363037571639113422413002424538526782368976015480348491671939112575224341523773896037829862948911192973460160517044282072207712805883347370413772908446613012300559748589563673844982850883188888489814591679454421071704273813478183774706349881254499809451490127398839596272889461128397933830673136751733578135168359504865166363503777772499457727280353906982006517917078687042426134518888089644174215803542735595960105923500845800912853464638040831009487756775338841815001179335107513717920751026231592166411042182994016973263537583084688999021918439323828392707345227044652144473395686661610658823408933392062305661075475484460284418104102687604105020787859616591246210050288285437347990442233533027999716008722702437399805765359845357483629519025010451915976143445153226342514473387136891889923422393365929521728935689736150153767831539800179366699229325049880200045369819142114180862486858641006995372592177498306735892002746794385787142804284603838536636205031238699201097255082805861899091567542506403394744502958010971402780586406111573716566612670832316921072131140566464721778288263708244124788606245386873250409941782079561697108160999152916312357854810161205522784862926809981110330341809509567229899355224723790962674547093514168414200527192339883801169219100213890647122881013496588049203979336975673345724208621093607916425835010934436611886772671399414387482671570093893430383726446967584182803856764453683940322119703287000404865107067960644376347629544332557170775701179463691192531782795734988310379132717433013325793732460992524126125499475033314970484825541932345976669958562193528822215666094531982656520851766399070055064530772627416977413227941252638430017867409855774195443075701382666861828984472982407980847864941869549164109222658663509385979980762809995345150991008215240717650851579035677524222942999389493396483811073664140603496973290254725822739635542536815889314339251521580466809805943138589133529664962311751147775668387796769079653909978348090030529665022728159504968658509234542910443146366455289429585838427239494871327588854760679556122845875822853637016073795366771763744296586383176794124094508499377806526663228405827556504893787093510185860192127701167459005156628044014910079468060280726128469162105164938202221039767713056461270046623544220006126058307262169565625531735828285175745002403077592897487872940290202565633448903383245980448341502202076678249784104170691738922421165505452443591450240433405888219943501294784502557041518156022182700540721774993595731134917373753717785419840225996410944925326205854056429272115938763778766074581465676741346207722409670476151778015214265765576677358180832909303585663234764204289030392730215711491748312639333970167519126315141516350354089044551155404094113972317558333075076294171693086141051141737032261424029024508399090691050106024538161542350304049535958053887122549536900239059329564429660826380464926090564056661089241813800830885286040538963108239406996768161087579295240257495763449320361097071262200662152185281568451433702467032676027764876965808151445265715598309011122787846416090375646074201264810500954676806039988845113709223198556920870565981744032508817483093575476674472574768439795737704060097379634362057621474858844266792864331640412127943406551612337204637236187125081109021193494315998420863625378345556093432367198667691473796604968946482291801693117668723593557740577607268444574927146914166177236100077855202293152035131271772765502045758023578220510096464107736285432673295008745588945278339581391008753447770757531014722533925712481087679906485170412894929541432017621166618990323563270893757875107400191111021290728154028274971675980069902100715934919973767516125364540949448589859032090225087890931202508097409644876220497332839517347237172199953212739771157182485800008417628088697748689060741909144926424372540641504578911422168292084195646099511167131278460828567832062271748156829149675315482775769683575246412238435079115828949696301454419864759044028670604142264133280006322037492165451944988721261284792692367071367272564276579498553483086891297646053253476143408857905101099889318679086172997158646624832658189350005111864895102951319368954957552573313340962632864267686023588756721425744742403757595303415356377600222181548621806240779762337323354986802863973839587003131539918330955564757227054443993936453772491541879372908132359636887862424166021319684214759861539846704984600414280659400723044954603275828754654464992913148312738356966009652954399944797070703251434926451353764059017765962354985169384919217864598709902851370878528366664616536805090049768528347656836086766056965120339745056356436446883709118655931699983797457229056002298415343750963539986134825390463507167634426257090249639206032286887666297543273341043440165582736162877201167561901366204192934884423232433761268835637244463449751720939797593703215791714071660842311735112706097941111728968587524768903014165080516607597894147892238612041574841844007984624782172122870379083208519134855821443981288441711026171445231813254413202689968623622804066482715898895030126410877052728961761801513723066468508533164556809182077105628483755078139240025974122453850588472174744471436668285015835520296418469593041913157347085048170052278496025250142203677452066313902734458192814661609911988423124336250412627819980835153190166217457842022148808460043627303138173549415783177341027820765181711166264586182723230602123928462492204319633213273698181363961609924260447376875279164450129856652577050097707348239016194570308165345509648349409789062896966698325978076040019468816127069114799842146263330096596480677199900048114851507038080951140828910752557137666528997001099075475863462051785615820106364011987600570929785091493248439003936764896245985340956916735282820051465006689491729459970650743457391785354396504525498965341369699689042525338282196405094695836652046118192640117600692153134270011089735044180244595998444463705148942065792572458603333852925137224514468008979496075718743159865190597286284792663369645113150135878268841994023365896321004244382863443986619374571794437861538429702449449584199235994322583927655870313111308852845813999983586266424675941666574076723989957860178940817571416360200390093767846557734963051945375683523021751544859320247312799229652546089552097498046762949871076910978966002868592030530560154777115977379103003287428016266288679044879254924685238912495540919382833806926313235814870968917057669431527931864124298452915010474056393351235889281305242335089802080343210278963195821518475925076367350595605930516665891656222805603658255616183270694742854217773594290778723652266605915624154654573073484751222269391262908270910023077405167346563983806943869903186811135532912036850092687853221658714805049640196716498762649185232263965792466440460762605057818381808006659026607924384504254778680866545185952153327524216855785300725353302021474262217882615522969384175465480805618026046415641364294797177720301613488309385212597743243688909207848908612372470164558340224898824344086842759814160670047777257628646861584356865404478354598275654495521842405042670468091735929239431980464918856148383052459228800919153400471648628569613894427180904677706803010411237303083921026630612414508258310751719863655870435657610067520421915594592604983843998608487048395251462491370597762031779519046629508914301206382370595691770427857622181360232476400635363681286896428267572768460983375250496935334796525844978612703788539145072073485900169030343497538742285465968890297310214554733257434099771454827504798644652716323552578260833078716102748437702381013663708779412670854146127365175365075208417390452226912068656347276580133119615212020208775128919665595552944112848599945974786439539024622755108160642619007401046016788779289983766545562995115113591220443978430506401011242994151466644412435723201250851178383076459039728824925721634228836562779774138363794787299163016568984107433565917081180162633778102334110243857317417713105205310978339153827405390492301943756872062841261910076110271578994698804319238711331280640503939038792353198846485413981606056226793737156183325373630278525307205039022080723645632185831505998243796002667704896469069608993449531287155043736623821337778579222436619395979105596305168768338370917103537282309239734600285156744589662581625448776286065905754373060988837898881325826272882977618206786500261067328118541275974037700537197186753725184949468503080711389007162317139431046321049629297641379489082854905459162993635817582623052525142102753110370456044531037493694320226164227087642852634770113398004647693513377397266863688254484483892830711199715669904654030166786360960941094725515996216844147532270387459057449930321138122070124648801188156332639949775178227365526414579779131590448130254750693295384854150028968495552756148317086235613613162279648628523364103084710781842921775492222513702920972163180030817729554496079552138794800571679550199154458998239999147089133382518577087650742157891659084373139211138122639446098484475272749125288522044561526727903876808712066334754893805876643413384105539824376691453741858495439663035129291031521971452887296978313216991269569440838191010418051917802212320685178218196357069882146441178421941253762516381469298563825995316822077147017563416031436830547540489120074658643217086656383920667934244303887904110880573946106007235088994700190036762820690218923123297340671435207283175154317774184179263172294435774770203361300591486089926095701891535050724649373558703843796269136324312899467392591890236216866289516201188007464527665837208162836714418659126453398693398053921939960391175141542866156733835434909819147404249257823346542395428242592142411918267113175681821646465885739811436480581241684194696896725240014768659263080969652362728656112123355024003117499517275651434935692130855475742281294373965400881942699062075937548988605570229961210333885519061241295200647992012125222108807614889917733996252298628312846531508560664088073252214221423885552627064273539817725140577754085247539066249553272259795253301342910124657559325382928186268052187318146996302154564635808450026724778483198088974396642229348860520778937641150651702259871117237692881261769249255041716528203477356606647729573241943205570683367286585318611385271836702762922362482847053841816246076970536649869298782549265854166604884958744064815477071874664923344976047005732262212729807570520154113723031664816982668673180615448114593791744845927642107243912915643431814821232184491784321025584131923618492397102897767862581608393879539051535975969522991480503319090086078459226346392977437291619699520461476961095400066327782338003622513084234025253405541467599054737199358705182016521500593701837520310618173894245825379787223051289231790811813142574447580483568111745492349139529081714584890235166995312892625769345150019104745216996718341867296418002990349556578117619388773776749054156309653036010134449095128957104284361143778301665351422561913619933231921781788747563582334225201496346130498696682500000793490903400975545201033122166589291186237077592577570355089547596686736937791749125002693770065132570012329160493612855693980770289776776978798030958115823027224445280472539299059941061468743312520924815168437512631492073722917425605243603681120779912768765452040251559731545105439931252444587966825062599980809886727449959379983093402279004693335820306459142811553781856117669336912073280640483020377617928723724922124349232796391076352992857164893069594751186620097741136506424304808839230234168834950541243792845905196363173392975770218752245605390020366707091138887556158440361365961184167674765714284349710785389629749895459788871790620726681601888675280359478219896185769910544527508596353905315456121759144310525773926767629439209839016178498682984924340475192700901018757488876782038413364674296425121353495322157179603707380084611930908826892007339841083416980676019802120199523958586415700208109347549099297364468044793117308853229329745816127534366421575157349197752233298928051510444315556940327911254061577921097340745344989465896924367991958575287024128634223232094652494703879673377146768328259166551451106967267276624820274122629614275959391644838038000556360933657904434978323475481507087074017436147945428172694224077880726068784768621144005588169748311254918265431932100067259281352034876379009710056991244076741496076672813851407335473609043238982513541162372755902176446197293463751750641687294528129406367824352818332174624877378402714361551158083188808251632290178004362709409889949867186503537486621756580239675218978709818872847451500594475813486217119916831999314765222522411318566638714999816196646965212757694290368279952951729643384961406243629157360483976273294413095744145332299736455931764235663641971416266508389810321979752515756871523013009437326983881084977508511150919809666302410170965044919846972400962163129242149249803601988683978455928783597127762061866284882597212510706596594752232302479451540820294989704809954627836544602693563573712828874746720462080853855255126567534280901125703957838238878809049697248424602809879375287344121830966073989608823734580757309156729312077469679837459679767197445765494539061403541291416374703136472041795217743365262457324738470114768086990305239248832072750323089275723889999489318008774691064159025006036635839068146180438370026773034259788705432868697207193144467693069654561338416844456360434600980061211879716176001899377630050698686713630022812547512318519957855199028310832766229285945064528627328146752220543996303361327885675037186218607538872231588441747597076884806181838523798069562887574845008747191611408813188440846643931461842385065592529040764422359773657443696739857570248816918159824808892373966719586173033515387379027600673659492496978991768407778427283211893327135058494629085236352815060262059355245506465355799848997816507102146456838366972441392282735405303790011221078210665245434817898790981842459088489747230252463863999859918496176874504881353658831788700683969218652433089145623267174317250924601007317133737151963767755682015588314117288569808714702758314622435523624627035754136217185176776262954161997577809150242223337681993160621755584175166668398252792581301032175561909402271514823148187369073223524328505022425164460197199825739800840958196003971613909549364752147841235310820239262301391837189998496663522113014083065643948939375331763955734897058769482699798823870081889577296453633785938741913670345567437503523609646482946917050365473256279245751645117865755097885546263040915089794157235160037337295000375935589887126421900149172460713404504495495884539942332067400373221257231030085432346284542492118882360517055823592088286214776563134068854767025853462525742948493393788545983217934616885930735488318930031703961908023357292992753659091960731398706127962374867300940011218477143462203822492995781582590127019423459520148688704066902595630248567908314451115691199584254074372874999253081779612902358450834398752625830955992851814439341358538944682553414561141373696585659204308166722898956561413737052516244820560612503723905444863370672871193736798427685426815904083967061028153447093335505422365888620968761496714053621871542503050421844593754221403077487443612711332579266568740440732718714353791144524405462767784223522966676222797743887262557668518712033569974702245008758100529429699962499974808282293623555964977301773697403898857844150348462144672677311659939002050660461244733394715613746715124442704910797160058382451406904973042132223829175275673195922769786068029430105308829776075388174726683163597103074821422686172925351253698402798530994134133170154572185625553033101612010152613368923643777027072217236684801368465290715124668867394837138745739269664872898332112079471277064390435403510537500670349336417859564356782610660815221007601399012293984755094596890428991383163433679562225006632825282857202619355162494748327304065223474234987789919042652168876146619745102245586353935652849142218768036634704292314938287107632407815398163810180210323475523637087833991822596956096278313617052544534525999862871062473754657648270499414036187482897982081426116766282413167142302763678340289603576823351191726001315071755386050677267794750245903830970854794551917916239555428174315402500513935579064058138951949108140631621396057230381804123087505790252038051739593022532032093513175287925342848660737546002451313018708113944217197381822644917871340032387848952194583517057114028206342955628917831658788600481290016941481707894767820074227375940471991676544891602963098618400205361507739188852460728113481098314768454286462500451539807292744838456366324851313791676986424403494700438736547416582756387513786940642712369258714091341654996850462596996796822287440708960351019308463003935285292885820753981142266306849809141994318261856891883482560317810324432955525593038901406505474426984593340251074996807796921231646534091750948002044272169291929192294431283297448292373118674815656611834865493776055993231985807828098638922861456156321085847622245864637560316622233409593267733275409236202642170818030777696972152877078910061104664850102595535466533581441415584655083811727700444394946049589124385877277329220738401183523462170147655825695423137393071988316991569156950881697858368196598459907868251261479823000900864844663948451520015805207249856626114129036490752480049215919651266389852069346117634392091504319764256012470593967957162444345835113071471111485141569483181076165713475875358785331963892659914350699380413160360918831837622621605487765755009436203790232063601126818118490961530349135857382767320882288857014054360345642304778147847728924404662865340690108648812986617403982240661503786457991935463152389192853941899524319230733168612335880432480048874568052785146029349363134044074556132724555780077730922369038503925176224530349114930288182644225157155027134632578078939691038738070338496339841098259659114129524238544334704758704374588172195169509745582624978163625104857353471609698650834599911237209931500196892430391758217920030777783176596449842559024694429122193261987687302001817360250875709329098495785612106843492542643140021566225702413982255424840654994044334161332124488402784975184061230420586549867754653767893665258997416093755190708139741217427674755710039237233518844918054755229826814420741198918000597590984641965865351023633256972700665437216809318680216988486593207147818992458010808134934550588928894093906367635453946959697369287469165114741127395199344302441557439441985186586923018671127302080546259384874664643702611502316606514803616947817237883562986677173092066421963418053633155644497287950158210475844543838499748609498098054877526266207003012514095481223465581143332129419984619735555615752830156407298723133891529567871329811574606232941141199585474466537532381449321353014045325470856752564060185013297341299363476250320505931890869495081590575998424202422247109097959208610450189260066915200807969625517732528385216549078042370379787907641166630546957423998122424122088527043238888339377848870050378183984796242994955849178270062086145933386536714992502106439092811570051890450538429339198661889033613469112644068303723213057162572879610175804688795020044044342409798320634491154288516538763455949357304348693706463947055016931957707147375165659447404528131414076108865376208204044796375051934894321763545910113763241359900403720337623514134252348005175371323069587610658989104781258202664582584205545785158382626526803320728528457028772511580253622892311583459822533358941145421384646929355835571074165472092886523712738152929832653174933886495416879498050887368203108921917736589317607267336101611508683835489525828805200328093227962233635136654847682440324323073350896686500125818421810012490874773651517169412368584054419521639846902137236141608236770257177384316537933814981669666747370282890233800975959489916309649289652053789524698851276329570118748025354866980409201645723369415447014058386625176606033518296213497895716008310874431435462421335090510495549112508857820101583983378428105594177691055637266901878617774021310019695826371667010340940904066673767024549206432144994187077181278439415524848834036013001724051400013260204894087286965769137411607419312331318779632594620052618892511283214471551797940989414719026178359886127904020139802459392963773483261197054271000966851675238148834902197657956465268008842581808933743024582476882353751053419460937794381124287275217847493823007077426855634430488669225235851822292904109905653335763107492030830816029651921080041677924999724514077267897751546882312013657509565075563440853017036664136845275509289404440020088529082594645109453604670834340475301924421155091143533390146022018962601517436662729305938347998903561441513130750315933642663252258529082323251330552328957882014093075636409047832777545231942604963684391118173185813719436359578536087261269964355252615045634225265690284818237127157419088432491774287948910380439950641109286742789284351856888161161369003173282229006594911375397154254001655856254253863338059145961155280494191803986487611252768459061519632196017538691097777019465009502158378031799442118643837984207169213178692502987069608907203056855394970040471314540400900779835447386406001315847700547672088778490625041996729315209154850448150448578817002296508265464311511104463540003954368354110489468630140466266465460089009179457171966927400915366147534996680643683565447731716909163439418115383433271690722050950464791209081052352200672701215278864785402237734838818882191941062330106302963427596340848562908353470500187167457997382736084032176744013132713785926366119767306565189548592159831651439216626478955157544342559664058462156448766915429657882868121422734823796553020934344241362841629121439088756596561297494333181134566392992812409589199658884307419270792852662958690627824877583667510545556329468856844083935674340541260189275342274537739469753858331086737931779698528756240427047796922490601461092810968164214837231547196208876306803534501863035674166886590409932120836969539537031674638542484230092386914455591836514503177193133312864757698098294977428504960952666641891163234463804169548467202352987391884871753420587236050977816171769769643357709288108607674437232462172934193114743120926309760141087457847743367648992998032684797055362734180342828410437989324086010108791130245471472016437514296065395975561734389664296932508114337884371004235342194315700657889494107849739099395906071560619104564984211083163562752837494006172488240798998573718474413329155985944658390001858712127819742960853867743053674087997251055058902667035152364677138888079137413817298653173561903987577416578134312250240579272354198956323105581812870902981920011456303861802777527884384699501940074785446497065302681364558379617666087885157140438932642501896469857464318863835520400079111494258225926545797589230784347248716428314416620367022343475917062961393043605828756808921484510194040262011526117544577965040383879778309617402608374557716307620436488662196834933263764403608973917174475485885975460054989729817574784924392766783460430613825176630519044339450976941171227123211201556801325801781272363231128021974511718337346438749711875207827334350661910606161771189573607227781990493677131745577428062739172169559518706973785194268279471443238288538199213565438026783243067103822987345208652013882775455954966120174743003269394896225129710222576908193368180366956677103871034970782112894680694805651516350900229194060650221417734472382163288168058815016257483151466529080124005506482058949501880716537531298173875838061442575583943950189803068455657365243236579008602546803386956533937196989726022349953600398534416831795059274060822006283294283613047072310658908235911428919472771856681795425383734720702908186845762539657086240092205720138913930553295839617729625013443139658950485785615192200009658146333319658373636881502016892710825101257264666766180691666017395011329035418797838515600437395192261671103302016705338277971884273506853649069297776761163326452268246902640107470489023409585293317006668623251111813206082301679916959960781087342048445525132533458377546556973627294060317728490784873192014941289962796369939964571739745029483415565655976637772818331297143684359932180897571744379610590865885816253681960007279681347390474360010686021426649718914264662218294475950269538913105339232845600662916541209704851928314286950092866699467355219283029173612736973965254394753425870393202286250703695237945954362033643050236237689202516645352021472196867390978429509788986895651015623399453001601793906598569784127999547372674160572762120748866754935829882118335672227483054610798540445781839009059283578035620489116530846301940880910258006590665521164592975442400309173777433561054466867269857867102636322834314627780578042120398935618401604303261978773561625289598898625153346204495898515065489952254348675258786014091071522093375594427229125341797193520085084074595360350696881260731402269995696516361158120384489022719927945502161395738799063625855011061457793201638350686887592672093492757163052650132379345238444996237438076655903367408419616821855275420214898539423271041423055507000059857808287061367823353907120048273902605981533436980406496070686422183897654827980406914842507557453271668362232708256635975393892124685099930470192216340764643222565097247703140315300946337278987068087830886467005254445937836527400238765146177375627482812355046821474622575710797744079394411987597241949009258592524284204978388556258524123792636554240819233575737343028009452601486662122334228401246395111675200871111305257791471494891621911486111752136745169080871376043113520949696699894775527316842936616584219037860172218395144416022714724058419670502663229378253758779249170156292885251575673780320007545430504581144076793278459995136110168705729121718559194318247262914847211829272612757285269792853502757226323451145212557974673291964698392576138638487081739742340133601523656139318535046554613330937376185499078627851852324908667314287749047127330225161779054090152223698636688370416731544890631209973813885678610773986294554217308053256602620886056883636053173430072590677782142783853961605223239598079760317469064115679754344764569508132507079740027254645174426550933769500976346084394447430583122765829923394157616547851723828092481365654841414632302891560843982166871937214523638493386045278258889810826361468088212215003727565317603524166001827955539342540332884547510801779017136982579024340977446342876383578716987651968876108246547365171712550647135719178424569347823599306064414990243924484685580146622654003707306572995524376273635101318756539347888025911346951026674237357868055075817817046043162427229679034898829059634067195685862104062981935262568265453850377376791897226516037363129012646839712538000542660304649706903297327687360670317694421645031738818416690597795223628472432693354867423053977524148893772974459233207380282349791453048966739494757237702792606044579385087255917511898746998255150896608674647416494609832955683387631337185012908088352305132314393000567427780948542933141243401896384969223250092728001334566655265800972583794148182252038695256328942775148979708483443356947508777329353724568778425035862264896529470656038408275264740113553828619512284749923565346971082426939151829609393601820428507670778535926068772626261615510874473722520493229104215079072566739692629774911434240600196724191138406573491186015241011374865660163836445121041585218315980780602595138938266795847406968177992958800569187497111357655678743792321140494340542223623922854753569821797630879879336176706143638544320658836439227310326838091967293654294687716408461942073891521160019344255984846549147314431727262923328429877968451969430981644379128565414941272032856749345284813360156393129631746813625390028071645432802812492778971118526346978101338525414304884267291057028960933624263518434600677076973486802553802933328299557853243395781280599533463721784995807053559465984606953479581425072151354590629083504647122664247888549016326826508151537192208091456185351931477751752973790382373579535026000276259722302607088042728413200472811520974208950213557108510564226186483328184615794278703546456163094916918652562112915067704026231407943253772900886666368983572100073424740510184358112660904218446598674918755001326297094801134901962455397560652348274053758684875068588819344972337839924500867680863166910467139592619910398459390424020816903787562088831937212983645520128459184109736544689541837325019465400409000005639670025677766798860493773369802094757588968580073465416903970364324910253720438804704632971331441179318621740725714651016024968710425105685477716717570196394059130654803393095345765685475649905699386757277954887437898712386891970265191918038980295222681626143995685377810046664379962431555149013788032616602972433270322914039105840786055562552675759175669236592453355414471465208256872718390402471153244157621782426439948567765465954587677833460179039280956583747252359275327513646502974459861844890659160323321823476626341955660260281401880893594475285763864588268250413180347208044382622347759698183456497038546940339342382435511716444306021341429187545914588391114681335820799666946560838613623905249749620476308474953003959807893608713452682393589711829826365906071948239055874101117327557530502365882330456830620729700959158362924365112267298852693134612844015939048631828946287418770661367445932931098709822014527357364234837215254618923863824629986609578386005186023626800535834366641759876271350234682625838837495285101183942022016913842150703136962487052549206736306328732825374030690832543976658314113595372322184077892717697876458899151969415629520713707511073566966506558307690717824872408630791469544636444687034715702930987830151343487782392772284919319650661515076852375497453593953648595042015264006938330538305812302216283268406567256508791418429720901561743974710038240151349083712362543345158344643684981383012844751047365550072503615979907872056605973211568458467081078243151055167455544647039005585860747676357714721337268873263707746993204548820577674125618130522206877028794348840296004105218765378395817553684210132891987992295365755598690436029206312983540108838211692255743281779263259193197698678933084509550525418897848899248227008714838407708518547260348121365110903810643613495091649735719734715916039943433186356944429594188734004268784383647404703825053223454963670426341975348347139567024156050868906236937691038559608983550167041848461493170186713579598372404467786122363863449480711833135492139358151878863191267011940459948469183790566303096910941914274983384312115458150618152391437734868384565141953328282334838107517091615835490991919597571789696817831753187112253900945888919904817166577101415511901055133220347306733168965777413086806925950220253338305545562772250173716722291165381667002889683482206756628299784305061449613329373804287415464811455203299440280002235259797012674236269609190843997116873478456378873077324775441023877295921943889091895827965389600046787221630069038292919459268546029523597375753080060221887786380098770462850466567790275940595484897062852907791430483060813843279785690082997977204937159116659423884156694192589895639771879817330293066272033143432140627952785519379880363318066118166991725389646292140877068979050169983558562791034938283937484052456994485318192958523458369620133813717116567224504931054827465636793345230872277561794162037631628910441527024347372196955369512282859439082361534390135159262741772794153433483853846976244848231306773719125576959095034722447583248320040653167245624259934373360140198205091269294268661825278261670778621271574971501027835886922424180803909129217929063569106537793872079648768476359928846745876175696307706713844223174288550948271930101864822934911635918226044835780799098994245451045588907595955625265309586814843638499477353054732274100994859613299318696557409449707744313192438112092632257330600678540516477621019515632845293587601383908027460621897213808789410929212795337830821696399782721069884082602814828399574481561958290882379883388585187537994302090658409943555636601705206675183570788128550542531200776786406531929918130590195080643439642811816541583735793952678361764564270065110867813632175425338362798529042767030812150403389981753047241542247373217098514320827727778330452223709843022877743446776086911737765453938538086684646720058484952228906340414626528535549740910911640956185330562512903088369181250922547190920243670101926630063628196562541560168123346352033303725741482914903611996772812517906479010875259037560861459437235112518736609765169098595566043351269177223177161659348633372566668431152636943305919710807962958288961472133195466311145122765509691243176011273298251607318480714642909696186052503379523047650864270791876267913874181386269495187090371244424731977805219947936414238673273325652396454841774741942988863966030864982690481829362983186632868093987875503639506089789167743201831971703067319472092976840179169343873159059101888766255503951188622763978179768425935701958301070256764140464600344883616645824627155367395462575458038916545142185467146272506715220252572451381136944129334929503735934763823403577575253565906997530426994957752769949244463748378933466245071734835751305897027882082212702591597330319183780684666452330103667318170816417036765399330521521901139046127439977581351872080324109096384064211932959186227207575487407342937228281228648435516838392419062986517242801224599036704668400024926152944744886862690728180635494423392493619489535810318160917185187840677681858626382508949777663842332886570598641793879464025821572617389828755382471196881684621725072630897399560429074127223514944636704516158869655725552960618198421947180411570488467771045844607474493196379215210090800647419839410500667430459764969856205049862392957055751092005839846016755180859961316357746782737779115566532995504625435336351530082328815068127671764956165065843210567567645777100962169353615726663486063882638366944025736741826386181101693994824767876833168759088926351865057684855514973487803403092803517303159166406224329273909790301321377688424409485952806308872625986448367994412700595993141628301818839622538914787600053528333236209321106324498630087468267696791120754209118583934839556012534008964505906522599860202146076262161391537632110054752977310035224320943312847727359706092539068806747022903125943305498210992311090712833882489733496359706618016799404592174066721535003906009542967819229410770742817056892955795808419622731668884998943585372526626180898181010046897291080101487416271192789494893933750311728820807228226062861917586900677164644060403742897396399764556509017816762033720416429368704525243577914492232402031538291899019075146267063398614913391678130339215717192228793711415118339340303923754696790930164195622891173770971140990944321285969028750365160002372164920095214773549096125382091185950804808612511223463976282905251426450497607978261869196057100101816792278335240678250915220818327556155875986334005559350185407048655877439019057709972792034985875484299914873755306844430777551405985721973941942738487742464339720711770289140777475775885518078759823271561174762472463687426390132061894650986916332429246428458230400714113822405920652742533445325646355181163186460144852043325914331826804185730692340341412068891220066574097869093438518942832182964139749446170831000900112519811728262699750549260916898943500080919888768900835571655317762414566579583091335318930347138062154796657097754824406340795195614397797064017858930871471401819532351333121570755699825458731007991877700900558925539930618194159924315163783750257560981579882744492085600614224139950910364764395976873348104724446406288768188782663307884492775365041241444766485088109773690332659265160536952028697468566411891731818744718944587560774840182533806110534020303701245423425278571846728538101164721519133355229951374939544941577835259992379959156727565741662521325562525799345980091710167734416061498240228177475261502845321090555732007078496297677465513951258872606701408803444778602599294446293517936687268509274163034668337405500271757434724896466586876390497447691318008674025207706148070974533983377981583315704202447866713595979627693532284128449806956393062090741589980607286719554583194894316542862528498903906593144926330308069008932070825207287711829746145984015840017813749735355927864771296055326876188604319468638280103351657088663729140788557067276260637243439179654433596787617269521054057005761494665596073979216603688054176348409064291277637543493802667107982076501603499978641429452599161813531090341893630119754401469337293201426179596743424554227597187042976713455783343215541277115040637922501763159508928206250080921795268668511974751758231021090801373029868800490327072356002719758777702553349182622864887109150648648942330511841639099063585766051681654605092553958555131450255548517942000639515325726334851397886762518929804867849760502876133035661028862622463185493791667501788010644261256535209285719078665915219051860064438418542695393063456377454066369325988213247822965426228208781327054544429208569250132494719597660342870724791471232726875431478061059590040635422114019706932390732902924783844328731667454042823746237054611062055636324014330689587842116042029272673999948243987296725054071667323355024275534134546164816998656462035415185902545813228516226011401308308456592244928552317774479028753343739985624617370043359175299992499824664616460859191680981396320946488389650179879745630615537789214712299944035700226989895215597635743945804012652091488039586796845586964150667314408401098968195898260415310415663256469829030831955918613733915610743479945212898246499446067158714097806749793941728600344801817725729555189495563458925737255189360342634832695938289350267986642270670501625551326519131154801909347196572136577981181558616321765490605249885051032733718724743311477381589196936599857420696315181665583782793759923082799020645486296369914478480912668857766653455251322702662153093225877448403888959977355126922640068270460960347554409040134951819625839150277431166791244837889463456271353887221463817584122597475190700101152137748107263720844146693709128627041819368808024726300416450686978736971615725704162836846378228524631903543403963947526583883182627861657165742914776428663017237195803402627628524079599465145698699248046912276914487448390123515845912726763316126156754490676824786599818092253533449889074250942895791475062614835521330659992301821603169682699010467267211309321208611567766893491206971715073293001782090168824959735560405309475814648259664848831022289103836527263114262900578998408700916152371211386941636438534179285902872243892771662483959773560558306713242481462266472851847387164903171768636440710034170455266059067427042656979259369908353092174979634058458420830312155078361315621669184272636207304543074017980061374789649046264996460308443563218889744304282445547122405867551001911867777632554544985963515201094421284998487533850503025603052751727641227498540083016640609166285177161979981690276543865504019995873914390902311379937148041132344948862353189344759593330773314310814194160301382676123763551870768489296209502510922709425147395518453066103102657535261479316619749135351516436155064558590485091217566492042249445070425899818850008898653548243015294412565146820838636458796911861489974074384613534658688170806604207632545707323622907878794685340807071725977361758119703726414837819738637760390791543088396154105876709717964815290492607858662047790577500151467077531796266087681813601769379121195245069970354830090497906991233763300366399551132977958434481127726232102104694625884930943923477875951333342732345426870734434829453947266676381754233068901127735553497474796953271400637798976308525217832044366275805172045507978167504101585538741281007841175632648714242609354095904635806216862886461445792714203458518191311108100929988628571349933725778098222658941626631598663022032113942580044329899938498761911885067263918501378432739210947845963765719183625666536535998719092119323257806445229051704396416030153014531448350130788689624624616697284164706627126764651045852061571670776822634556727667559361764768165469002436055138591145598456732718078888628273041496761713819054266924558574170304006604434883991886700833109453729694453137622619392838369163291070775602334243925779787842184739888138302412748275577093483339476476447846244576566695699271305569028073124727004247624646350717983206344456791950504778539511931338121162548747975354464099933126913504383454119212301352784528780894361700639031382658045946023136316875768007455411247094634338614392331150034947870133264084160718230644920576595124605743824215010392212352717965411967215865643265599084499418200969229177829331580497367333962999735578901154335312706212391695958605875931716968037331609333896680583016518509511337970433775030622887738735178449513461846385350058522759305324025002363967933835787582347856036127544146948312919402322682888567281861377635384316098338670896115509033795763277314732967120416506025160597886110590636388982087214084804973105537264144169968516488151472342441030171229436332151568581115384254444080049948965294839579050781390942187813449238572242450204093215444878252279850161664909341908026133087662910532589974244362354230184059339095255274452656835232673030660512630059108128934475562590130673686429382196036801722141431931252998947525541321722620226101449187970236809272827703311936758153023849120819585094918097214842579457796656938475151663231941049693265933175321663762552632563371702059900163143002128028202445678017333274332235795068169980429045195416625400137154469171123048782062261604931101709146357001932939275892062022706802656641917792038566128900193049062025268737846209309594769235085563487483410715298203759968915425888853068379280771131756643257215587369727107313094976064389976077917954342879363456173786506561248905192624282469527706852557431803329746151223766593199641767765135298675799791399650082937793783621844154277834351172798033881151303665750192875283213926387105357956796590489250211338476046156461071627780975481171950694564439314533077386951033349962423183555309033715654277103110358181023283817400944077712925726870396451410831326755129352419738948788426873604338762068301163056594195552043205456245202084247221289284696294930865748654829007327604759192488121096255850725874447415675360920983610371247224148786714656325432550081537299146958404373007759730602948325751824543944623914522353379378946275706612182059473219378104002400956789042188889701864842199284704260469547214048734008967260677538885586091559624325332204225382402468537367258067482166933631782987949819734339653807488259271018471464492860826133121251290991609962728033971055101160655079011531336924556363779151854378882656837802579284706461529483288887843916683494064668974314919299499817934110372292179457463991243035486100667439481638707696868162785871663892928937422381572838406199985156424836333533917204137402525618531174735913850258859895565675003639595101179330448320632197093692021156317652225323214437530375696177077970422570884770667681871559851108719163567062983293392570435599674322679802419233162069506753408694788877769453847173110792232701370123558389562982118113282827913666339668216996193856975316866500333389158430424560345839198853195482378063015978298722763586439446489966961276697687992216488361599804919029715969790229967420440630781880263123152784343717350217203902600736036762310619849966842112149588984108338945852834797276253848280140207007510196935143916205206614378270518296486815265517378522959142128407840632255879349859953383700357560486353567112893474869710436821293650831226002779616191291939656586915882690149519609899453448140306189299166631427088921124013542884201673067022328700857392839760174896095604268509821214321672907615548784020122949530596525809128948405195866217855174986201436291732961168602267236210128030281954954096628004801354869983564457879060553207931787391350059162345541215353139216709553841886487889397122827832577480785917124131032078361081468100013506598762393598004686793736970014432374627783812535774451635660013783731945854415082135208612064420910133652592728440589833634036572934525362282691758640758261974764525474024238310621396976563753185040243011437281643096947983108992685642516227533520031727539103722492381414239722216211096657629444451431476619515948703580838845104770733463405296421555981471543121347740812531830122329893628133073611749303371938896510441489483253475514793484712819063589127690604487116993696219585853065781643083110393258974188369929357259009272427814013604732915297245511143176689319046186313250355528511309385453952748310204206241042049755692127272329014143645574347315026377549454173179033871378325352362075396210911518471585717517093907185618053313997918195183150091903171301729169022986092253353333407172635498810157934271964326583872177276092974719153729138104681222248040474907415927994567020519358588979340093727492310242516902728409666094335796221795751639749233681519197385463842495862899261044850864097815483336246405090641029112787938010473217168965087670009241186130128372726454068939449645929183601647048827461817336475664402221714796603279462415858357164219634554533839420621008497042066005456617869417190829885238124857279001515022281619386406383113582374745981470232815548679093110390617840400638338953971988942098585259537857843404039314564831775836153187797538624313758286989674428078641832193168293296948227520417207253109407223167809621822153267773812202036462033890456195555137045020661949811666668215335374496966616178233088306527152451761043444263048166939848090067554832326456140703179054273209708007700629835503788993136407644680892774243698038144529028918820935382652345193843012439865857885930758232233725966887524396047240578259693853129515722104961044352307668711789428518196345789680088995177138702903640100154076429033612012735407665856488821219161959815928994321645372296131151892271270244181260999853421435451363256815151533389063556112424431749051271731424607029367867247001321886637652708804373185418920574062126631967841064078113278673222419896505975098498153569898787439088060026094918407861288352250988817100305225158407330925905376008867310341346650027086882453571631617009436552869260118685973614005458809938614848419479770660488274189858601963634744347512288139278436794118725633148056857565070562864094421847562149121813404839332512026992946988171491914154128886792353210243875498267415777551389126774094204446026357613651686962229299113711389218232015549979862638304673934132692460791614204590893651649990536316544774468627788155881738231570839104750437857214280067569528614751927329946358126496266912413538876004154265541769008395796227334216505352174048681474055453867557622239652373863943008443442600790052642770345247611070527931873772715142688518967208276227874428926336934827673821572432386904921391305099435304443485613289523435967758632985941395768599813855501766786271705085987614624406957562765988795900405504273319769958260734493122873687789334517362920525345943976085193641455034161918769343283600421344251873284296723832779770247263811603540654346804801617935009744869364212877881957991530793341336664853211841687530766676305157381290920718052331255631105735719174609876851614299662198222519687536038327464162150224632361792790009471983504923483339639235762710283540555989576283734875574264555224896759576639216121332321721089959344294140994496275537052656048782273838307176198086088138243432351564813179814407827410185946675692848544743624269804717678598547827370620195308226096368128445250907064753152628089375502431187030105193328186055603805033617108039452597968904919600674641683458570901828910787863521009203784614600973921570696038865096639324776649216767634262717437622773795304621208259299765030447701567679942459721126912300422989336743741064726607136431093445575235741826449515873560930186344004320550444109738247471271741521729442010954526031753583916787666029004093911409095579362374712550567699162970040960051724824329208291210278433456372831278188005210756041731070191414122571950572618823021643802387726726517350549465717846558902986869570323200689473136268149355411202276463441218815973960766889927899720823071665111897914005887375394041094164808417271946191254853462066374061962949417563504023473270131585207551124651245410203980258644567540807117206387227374518739940323861336171821455483614934587577700418702464862939312224618738853753602422792785458420872106954679161518941998613030763573257813673816212329788059627413714625263225107817021764630241165422497598362312730581892160967601268189017636081828917441904749462757420116381675403080843680409881502359551891140921573929311941580619678708046607740140149003550011593794655971715339293322147470198095210930855054368944933932867299456756568005651766811663756174514224930365468688656529938643571736648432623532778107645222710803881219451741240664034855038834185586716995697592314741438128156816822684299088330541440362338977024140923325338165591239086477221282131734426592303200024942808070621478555687704590430077427812014928298391678613144610669870030959833090043026051807255172309300695461647094974187001806528577129055666480629988300778977711691610293048478268378571793426223904446798626817572357293097330300680677497214940890840324729011661486493806165236632402750457497672412281790757974890700393646540567621238570378928353066454543262734699290988809893447357152031852534935240696697578642099170720632311888110145566173008526189354958797829770413052698514831996406689285440586953683899916878089293348020001686017955841870945158783040775515175845907908373557051683973986489149040235361373880140640584414686280215431803490956967481134681537622678583355544182813488400710992292472050778553923437515967719077722049111843326366526877041086667161695604268118169050697284989525085357034774655112236027007493669869560355172079274956367175242705515871602179619193254545501293547642365866000525900963036375445199609427517901629349743176606751395275854495562431249796365610746847655278338450978565758313174350087775818490677202101380499841261090928019488345318239948656405560094809699772555238640563225189458215865499421055015925446473680718194985657862726570085654818599255543463061942326156918288134013829298355803718966931275265265060692753761191380267535984223662130726655354036674981343517742659230058268636295796517078651550920426989151439945481715795746089086367122874237570676271646366904248425309413533260613901330006390039478489500971244684825611260145750214752396399683823469827053716448289492414683478533505043686095295802641011325333946851550885124677174752621052839442689076224541100675265222585287772078709643971308244930824467241049496583775850572457443800896291769767388020184495178474683990753035592264145405043268474122437791986974350160326136628991528420598595679181160189821924720749043074683699666326905543216418669601725261340930867768293617681671593539726936637796003048805667591003598491021493494104801008035528618322781582791030071179812579316507992350657231018987710119315144906154876450739329021146064666978420811484917223670764838797920218181521543149044800252788425625468494404833635435550387177614436733753879376643107945485728175082867185401353915137477273141633569255356444330552038631004030883748235925506912621739575584535260650232145880085480569184946752813384157165799283736836333233793120638076490765650131795643062796776900983354730830443494095426842458965336172772925923919588759456136641122339600872158759542391974202130967991375907811092545168752079005013392934999040969793296925276958473443665193465842986180536161341633611868408026050117421623517501665464991556462933248710430372643181476728652810948697383816555875308745386458486735000955573934922148215323009775411441777240487076306333186163814128901623672207122741853475025893755167063816183453729388363068160914572093330576712761575035474590096126877958422798044055445603069660207505587818381080202692492234218685911054169132810275145458622189139984185887213970742531176221578523391955820430401204353534306677156103295522313450100280122658774204290353020851922415479149142799330483052432344506330707780550192340190440938582410271870799757725217650505563568187302612578606022349336121103010459002435508596503069398502593725676989148874656568932658284007376083443023969095433778091879874098689371868753652114707501632943215101712896129433622298076895483701918999787634590352191534516079139446867791345753377362016053566129892185882743514202872782110899285488615892652604237317804820109272065513907235279701660949261165836006330217400403314016125953720134203690112897322272713464693931641324418261997815574092065777588248505411314496856975994861326207458012403942696622737707183683129625684478791564852317472358895100359587982835036723910609962136913683005137846618031605421410638543075260685094619575190338948114552302613849961262348451204688748374187148087481172654433983939604175622283992472882719262615871400440384159689152453037630233358064684307014490589050792840765843778057749851839305087966281487405845630891513464234071839416674839543657820535102774960559445271794449436865372409692473830455394854481193212566911523347301388494046905921841246091667292710459095241992285175675380466132357946404696151778236151448723034959113666365873687708518461896581768773128466409335525436538165196622583052804016618445400889865908146919345232991185274521921959641397366311061660485429941309119808665565724821462178311447771229166431668684952347776637325006979312195915920850384829663221079400814335240228580933898215148279331107622816641115977954453757881221749492524481732824911177553740456431324259722123474019987510194495001147998052621568618966106454987349457054348755669037764612009085959384707892486919933389840320737830985756051624204512145471731174749778763602589417961937050996260854896957640294359011545807051719688292270662927160983036480102559664845673038442682179586925454401656731134885333387634355751438064731680630997892025585347995542649704879595690899625205949458398260380852116174612720524061069910548355698575419386946316340891400563000171214186383640722646222192259497019400902799117824194538429704053809020388851672773416416097272627129198343327469288673354518855645686285600272550876438558433885376810417937681420525715506246436976518711318096871916631577581741843494419866133188266616135530224126975832640825124531230859885564913443455176215844230107510294642838238089306036569934916972693395774520713248001971141937044290829272623274183501681013970554039550574525658779299364892386271558577019364550907926564266278319008348188107344160340538058745900694837403426330165310283791033229951733922586226533952572703865822238923102659714895952965540497187564471053369225691765720688698492038395657173503498546407728667341159280179583508791471864438868909748959043759181397617007403825369956399300884112231865364846880456708544485881886315844885550796517062034463175538263139954520404808671567053657597689929182865552568419921575180733897456894267686852572256471616668906783704789650119597945813684810378130044622911845327444025767236368982457368446282662650418393408516633268300559566630289983377352971850276804751809884805434859248330724158822193926351957535614346379084131895761068611649347612572032748236559106285108806849291651393040970241995799526765137457745597439366037735706113563938630364446383150356060933841750452047740843817975262611167630463465212620623728968663941455052233430926268492679064561462705695392642150502826201595927381260594267067735716235760342148201588944044768116641124987118042835457821728299978527362992986187413414218931021366929646179182990204003705036630724980337497043645248097513213756812166868685642281581764185342646767752094759322293785339945606991721964052626866364123948240915958568500300632154937350325413319377133321519095449838390194700632159228158964982466058612393239282513686256314638048407878497799290236357635965124111271663735021972678031348570439895586966655141153456863107485557746945693304801406854613286708596435895263140625180211267658369116281228589666681371290145287024678003770782132537313656743464986249990814488291813588926546239857097918069822680934857399438336574476703301950178843089483831210853640158764129895459790653025789994402307365109566112773395723857143561518608814320891196286549850178097358539469696015175263594893731934851183077600163847279675298217483581992749914257932681291774551770376756406448201104601249183305675368070245375263273182656487193247933442849768672398185800137671640956683167673397792200146477027598996302221597340461793718669815348234740981868535769807239165493088155053542356796133979511755933285479937230638713176813901604306724414535382345003759508805494407449879719565708352904567721028921186280319168759411223874536797171287824468323100748422282306620849099571502203324632616105941708599900609143178133352117303726347085568204387966906421768649895491793437301346387341889741969676360265293102173864323886731185258468667073749182299136557082516868189549709201431934077856469051639952940934347656042808163022922899812663941150285882097573679772955664303961437671917986762739566129794860350057899168032235152483130784944755295782744460712748282575275175216542476034252964971738032625365097916314661956440497617948593641734150779005773097173019625631471623301032532159858201878870898208183622346034523622133407643034861212258291405801549154374235295062114243931418042377458098445521674370322267709969042519063456519366374655495796784999887202932551801159948552061859591269735253356687492098336652026139954062753432178223747614086118851532492936122294596913250547322351775404962689140812487316269670494302453003192010378988923777803070658147864633768318154753349188941513156382244565317638542841865419235351176783939134845955869365331066791957294632074432332487258485659848109955201508479175242145218385871717739987821432180314698364907247000422657666419773440208648172786990746077759599958839192163308237054708095346088961504059013925408772345804354768420740970149365978413917033042030378717944694055748729992774981964869839934212426782106268509715487730450673677074841168082033328755530872574903725998859312286685583871873539039505185329700345864552520451271605053093890014768044889937860953900824025274306976679523531200411461715700936172092184194722353721135895337386385879855478097211506573098876019032703633094724887982813775389299290572370423052022525533773411784837235055527590187925747083968919274277407694378877404383820699207696988421754003152422059245783687207487735882375062405987327199768978230743059005581460226161356001764810841581986715974910696303071904046228097882427881548906215394831357277320320514785936107495721660639486361863104382296725589761065444183237440208866628200338416524832043994897052519884594307981095033716843750440143611441690318968840544709977525165183214167580835664604560040910513646802450083439062239981816509576956970741872540328654833176029956493120735551256096326803555653403196264855612843379719358741723959547038445337140491798232319691361651358708777436418280025739833030706098575466652921779309322961392820617917308772750649331330284059399267274825455001751538126637862976839964005826122977263054212027768766420454412176325147022290601060332498126203523183713666238269142562413386555809690365290756074314791820910584520519739614516610716762952823120221200303911332446648675885963237093007370618671275383432328886415542522442416618067594872643705994682221477246984696789976511857627125608016326675468383808153256050476561973385300377798017247785567016642259445814839132799083115635591640791598013264750865063672720161769133867038361894891824988792815928277999862731826600234430634891689682770257153776550879508457599443459273830329696990104599328316265678343882724792585773478354014062353390813292596630745233135952654541390916350286147114687326861221281881711437807361496575506363904877370660686097796007985370537388217899942663468893225823299249249756390720607464557892990246952843446773586176232123604944012807756015606897347178623293462034528535933072673381297842533948319386921261737670422738523515296764886421261817930615060462919029815800249127192148501007817254778221517160149227010978446821625149992751213389471122476355280781809837756187721537218612959102143481235733006005205003571537097331648893347224446854280824579374586817392571516729684715022373279408933864743229448908331808663807734948930282192982099412620456011484357807684692320126425063059678361383991311769838839328283571129774656372318046368658061394841529203705951802700484515871496776272589458019191490623158243679861335781592011937740302621794391230277149392155086416507264508520605927633767422895115162950512241411854382562991753609810865532129325229450033342883236159643487253443164518179692331568656706734601215999772634265791928210992294017400024969035419464623792703300031451985125265986938004746152489932510314964701516993748585024943147634692209745837448913408553918652084524389239055684070719982662568876230067124011225121175063277903239908304049189362167615120103584792382203736402620846683410435156441974456315235781549475252620993203965793349913118018684191849265668882440491195748935573213335101341514724112246257376398288252748505704822709646061298044726735098522886545595732593242727920507199796472430502610116287650065357884637330576431711109259710935572405762893017968205046134499524012549133361068389490810152021095481319574405898132168346576700415896251696217866495511742200238420629612245725845089409775741895824999630516483151881891496861495858970617530927029695276496399103295529088983460586548270058685557762669208913888920919626140122890199309145796677616770516431678131543126258409312058408212654265237919567014438108599228859649225165184016389916059888342067651851278995338322153844816541691718431885896132698153442843282855184331944030492614158034948352930440731707352755951488921582852052056484996332850181076790846422763946230546812040805929169428702378672142582046851718687268247935471335707315386910425083335212856145923358572701092854279962140715326747061891802072821019859482607826864384290916315865733040995005794603571242080956914735540183294138931813959841810025193771909899189862088954289472849247625938520917638849925456351723012895829393402356158273482506864109405111233996811735249663321741703270207509245731709301423414012056481654388305650408489443545406735908948937795764830323852694484703874845313164697628006058206513902818653245171275205311656486942911916762245082360187335150815403944946817356434887461881325065043530778254205302978252127512875635702005283313987005630919701939996385810688402455545940871472042970219717216944034185639805395304108957603046599538042576718596656525129873446209003783783283712235461147612776697992935713997496127601848305773615047559928554551753224489650688910993837336944752574076096305474084258578252032793019019941057913566224549504264998232424242223572404801697842198647124839264100519411745570259009989107356844753362818991162358284385224879834662215639913608229570638498140931938682823997931399671524134996907627719219581513942273750908629566991509065315447948074980935400729200955075048226799513256033139785815548060562968523603337155710463383255044562943356480548027101202109770233975097976913428082121413903193635108051635552637291102867626533323465715779511520300523466303000551623233447139485556620420415420545218324743532138969194208125075524884560441706064948762349355965289876012902666158566031912929369759521976628387105016716162424583040024061218547613230270888315294769245280473872889804924664551256371507704431799252120688342665098647460022344715332292320424179488327249488150767051382880720381954301641875201287817853438905004011757911173460286846695533575985414348836797473884649514337474031054525881867253646209184545789753073010458152848792594418595404197773458765888938543929384376609457251903301637764878219268749208554854233021269360086307832315713030759320665838663332774072007687950846539003134858286064773956971590069387095051721176929656288212830403043753333277191612368940239142783847178315737655836788469393985799816043601842161233725072189448917328009529744032823964454576272290930606098556813585305785922527050944256345635150109868379948852396582070652941320728975405371823456017492359363392028333508053477846296136881076953563078417477460867566566898279495508848048003009503476375273985771823875253835399915314052985234367963843792933437018714828806438770485133762115172469341741289179222326316179991394669909104761234852141102217668306779150641592023612314902704294511301138233038779019921463392566365079440484064885912938352065032028361490698045616224662108284822734609540162179280367013065231890492503925451900722599011666798771527382933313261652508568692513755579412258633885116329642552649791681097710924038651069708577668294082685565837028492959605971609372747328042831081767009413614644794891481343806820711006370627910551001940380385192649975298604159564455487562401215978628271115346060325538608469839641700161031352413769883597557063682903381948784486705659857163756916488500084105743965026618470592188347264082874825876919713762266150456879107399926152031473906762346810541638256053110244966512756601840995095201355283732470228015735835613957636380390351218448562719132051676560048316111054799206600491824410548572035213452029989874891705052965058998712511142231350509410722295890035850443407017271848336878729150218025794391731138539088531353467696793544589414744626142289120510070402056497311453625839980978575048897960844964547984287690533137003948863009183131808120174289850231639070202789828771390378671036997394497996268490806198481951814620939103287655288013655954672991075693299782265067365897135318635745124776180653884554123861363499569475623138652575910484114077580614007712794665217552576414431305998936042791752533052074649859045642139786415284003242933260916118728191913308774245471486195249203753179295559073339765771142248952817715449409204546103867279419680238467415487440518669761134678491132414094903657884506902672226070894910856562807783722198415930761017186320192664168624711662417943611696619633017524147621475593933764414842334440129946417820096989745243898135473946560355025375405449208838439975126914480250050844799545692842244061620410766102068746142416618504023914471557286764567845690225986055165688949361951476894389801859818531201323197324076328775738278281706897190671396832141306960323368785979898388812686037179146686555254559519464265046254755463868767815232209996232376659727506229756924583394477636126814134709492923316265221425284701916309074812251570154996755918595740468237842567860184166303323228935148245228850476430044902919628919394971238321357394982653940484125248811913482942845787815007042881152890240086051355672861014797752569146298045370076013062313370520072254976556263259619526789434992444581627548587265951607758544417255246496154476604204045785566924161489886084613253129003995754736483022856622565668812358336083558082713904658589563255480684008403922177989048326765564074761760019024943966783696715587663882559512493868180756142966983112478084144964255897117890548704017649526474850646893914883328862359498384899057200800820155447949252679270840448267748993446847457139573110883436907530894238111419782455055446541936954679650289003308092389863098819836025053752018822108082794685971934604646120329704836629194837201929864575516413408928100617111539791063037478828176410226478037096188346588441216419553442059326509433929989254399265490828051533739289237327511647271913416091323235967711734375459121642849487235558137663788022022877840827197014485738649509187503987676273586391660317901585239425111098371013534294075557039289206114982023334601912513790011002658309186691992240686201323709695164396613340104426117385342051599042270544965775552846988415265629207568291893305990589282099511402902707055765512345789469947139271837193727123069579363452617118985897797207238013289731129402615309574846427873470248155489596866323015646698525108944816899027375887595239702709654862082018925633868954536695667078275984068458126274661249678183142074730719453840880554198518132850556404293086907900465438753895667022831124168397463909578514138070611530131469845665523184508476233454453183025926575460039834426612061764952869785160496108965808727883211053148716518122864139514987352527761021886281522423946394747882895006057690054412624880863885944517298921911393299356006840637406516196757220121869780972725954454671395125014678874428594529798392490722639634959246312973939937293130459113918282111287379372491442862030382459721407129716249837319706547983188871931485907085308943302744072355273854873142093145124828062650927699441271731835858563351532685132142766025133220344336665278113496881183332325240342231582752095402073423095036375944816915052402030029179636584862622036555700164875419818069660322222030360054058910915751438239537155091373114293196468041726430639478741777802814561427448666547183202048060624852547001856530633688347631823863827315518719599992786661320572029721239981014612484009898759835566717810720869270373733195181433882277598857654968628139099470490426100358972714279226755283765999453852231856956111130530664841903949935734593693959547012952055881764415404511855707920275342540218108211249803110678942835522588045240564490753094849246251427511519383708122285437640086017819428688826382323292162812531117500097173065953645510284214540167016063699564060401882481819517952837035441236959443798320337469081397184145976267360076957186832367688946318237746090319571242992974157950581302119411124785559914694756365447460503977913753650952601824624073735130451587034612963803746619501387989316846432082505657224281301014073962667788601215004053957452929177706764215035337497984266279183526099177112746916694376185706865283384392554151349472251373610942420222393039043494764140992465133950595170110842104725041087152237255869941003598849283011654036997463669998474830896070121185482080749608873891255907148806652809437984562380616932592504577760290754561876092671591025983772661772276563104598092612663884114798151335235437082050837518931365477818975497334711451187975449452824865528746639585769593450016529654340084934808102301484767345990034309612822198389486379428808648671427032150192640470368917366238389151710178887211271282120423003750489739834029822039874663724119870944274782632197566394589147872095114685028537591544992232678576768496665248990300247747715552493403200012439232882964364398934247104055056587428530067696600617423581844543382045661695132376771267281720672028008809474473771685640698135227256446782485335345477565891609573556536291011247062274486994914004263313221580401945162383580261161141450253934084627346552685501636890326741739826534108517154595336615464722792147469305371897380256069573302694093712104832638533981082533885204402065256465359918008989130829879102399125171248913829272513662169530926832401776051386051702034383223577762561539856212018578479079406671748430929426254342887233674523075395362363777068033635668291479076694888293813099429976319421597664600873359881422015620381675248937885810698907746168328107788847467283851701027368687057548209796135759457846090199660922194870120578815658436255436693318593750459757252448736674479472066399763849311345718433621936915198053473052948566104310672320064296856175337026699970893901419166279337387614293793769648827387843223631578238448538885417497097400139421913364473697191293197957060289298492768242065947066776157162600336759308597257103744829708185980986991566611289953155355357539328538667156968202068251948325425853197088193305175062181112446109216282675807390250767366982820200532938857995771151007482514619751292342407454737267372827435210821311922575776457343416403607713548160255239084510415428347056235800772291250673676299632790049548411674155067027481163595500154410439691163267007272418749908324161136143845050885696343098896478871659669013811229501867348855282961378124558731577634848292683600023578245635856683284434099184744676388511154832395629869775769194771762444913971591591104026753393778134565140285916647050818439668323550870486346661727705894366075208657895124258192677929699586185315926246372944074050736009039158103495652551400077078450379992089147847315975270834925361642647706143821286717152285630559556310035149538490932098899795253981992924555532651900276837842244269194340468874436644102364761740604731527558811497975676090394677208249823288996054553699878666739357864904558621010696771872404343121418878224765241524395330581126152862985418727278046851429973253628732875881799989765392051585470030941188913206517356433324309738112553858514635345787071939975915425073018274768796472605352708759314416831027176873306163143302212052802765072224727573197370078091648277845609192594999046994582842762364227148808079683635443572108271835327973983681054659593442882905682046627549189373750478635749184991040297556912131071573629452403520721002785034204848563595902885739290243157927436508251889404718035901867354319905873601281138931721549212597504061607234585670188422445575681753633567946299885520171679024370560095705629540842686406008764617491619324772731016720071434805675957030772218225806474311690925152803347561923274918235254153591089069614031813058913175571312987654873339796429837437101382347109234890506811220496513388397868868411166464027668509987720846167196659762154997468311476830341720914940807944512808895111961027942599634359603255383636364943535505288254436970896415947322415702612621736330297049621291318672549181299580997033457678166032023231870081028599774005979828494266739890065103566963041493998583341600762022778755200244685986663023386644964922386793524598522189955758570127317442292576389227541992313121949194196583095706412981560822810730121856028342380106722077334782155069262912710535444145282266357762068471764042109167092078537769001959683285362130387942874296521575081193218021739125288518386572915560381581615169902872736809603164369541628332960969980932110264791591957396754040447708517930029179991781598009916626432419733378340696959140380224068294553540085087551718045618445279878141539439857406570289855121186562388595261441744754389115439457832054023062050746628370246779718291939408995093365250598758961856017869347295405390736102642866444161712990882645097394140706956170394720974688617675734522217709762777934075742436098778430167801454743545921703640459510103204559459967600796745368045190611470745264061613518345995000868964440285858165390775359855837221785028728277750090513393080775418199645514742966031788853726543732628836997921964452581736563452503028546088009334772445133024589670722427438809017649579927179929754173978373329824541124104328221717474211609520329568956245914596339472927653809959853072117309863801778610382289873594776299478433345856777993402656266799660330339856676316183346455955047733854143220608733434062511328500699693411778578363545525263482761146215532200187539128089014833399775667236921615444121824704199990882827213475044492559114297036578547373293008134925542462435823168107640925720226231668713358468817259807468295792311837149863706141408241041842213788990873027432703903822491641569756639088240436483302282472837453461471900552517479219825020144993022919550179001914060934875653833560147675469310353015565693539178403136200011052379431742653733701925173268615823862179661836453603743741400096030802987719912773211865944750709229428663370872844986960440212012772438600448822752387595656104518392409071004141837694207556687398962694471085374715517793436703379740203190704409598835370271759911755555135695423803703528320379125071126670271982271839783664565677057666714984722279356754247396877767880466494789099895633789455160921672658377337123887087218901131205739680598940860172951143198210664858579616059155311611417819814224214695876394183785121601313543595749316250209321704708386093223760340926264870429020761589172982012365195192755238784654009591097063625605557387300560670607005219656901155632792338033017355415313983658110856371531448946961452112785212091624514594230375494246259253455731739559799917544276431287039050398968390785837063585292445547076958572315054872117933407276322580999989477598315795272536746795603077907449149460759382811196122245143796750780193770462732985623104746007437170275819718695626938549953767520107616119228224449356626619375608496412628060524246443322360964453385893207631393813737827759636517260867329877642511426459060163765702201893125841915289369400871446980780319895139637480545309452093262792507989727559470919415793260555441316322767373097571937163178396190616462457494192156170127861164792320212037983798019612761754103839269738958184475419374277697012509090251377096926089420946272269507992190686511526407334579115970768662743755364723968731224522531834435110253878976391346033734895879237188780541858852996598421757337519621930089158674567708206899368672743977478003801910285923005353005435005724252669855203503973396641171628223458806144134895609766540874907433245931982304104003686715674415131885503137675497508283652671164216391153508493601470280994254084843595948805491087182561395640564419827433642406055626106000559371447094873973230812847512808463218658718648623262978602232502511932585231777367282558081333204077390364575448678070981075566559664278462971908192823325097473470383920996893556686759665544680573218159352051207331139594647561657850418251389764709341006204120457948384830444501092906798573296097926815408493327113933406199960654610780372748989943540570054446020379491176423570032810789325307454989372869214907822828427408243547210416883712090589979344245275318586445717302746512854935104049331349408791953413713454616298380066931064421524522301073836047515781991798172704280790481676740199486694946432378222276254648037887589853525986504374566641793544164415790300252979277968993211440012483163529657315747281964453676727425146321951183385065133770277032405583394325482183614132304269758461606100735315005042108194180937452313225388262949753202682050950510582764920570300815608907342532726811460962342384454172796699023450393319520641179177617178732271870456511630780417945314839482828778567530548198617238769016072592756422831208599683929336210709119357000442272945308023692049051055877116648283597420785794857631693885155081212388472683995603178970576591133441195575436461544924892458405515694683473113638400148646683035089260825898757204752749584845616224885308176938844730204931355363907234863683019444238939993599018579916725723760096730106161195801658231076397523991669101071697171114535786159079141294422441245542052955686975397354522950392169249693426186880370084627616010276668000225834868885974670225725268724395093983473593142457694000494254031707355020974476684482973700600498028594995628777652563348826835221875397644997529173240491118121690725480504320602036957712959703986299687796617557144377343396541446152386067565981761075192910963137364339145391179634221783528902679210360528535707017803785168061490366926516397842404003684785609205939979561144706382473396514322314431171977393963194013093087139739370051695594333881905191603057958629533397327004064594468856874909812559812750013688019938306529507368838467393710109197968277595916786065329308587882706708530143732993895506396100832844468617623641832673919561778934102669095218785530274621807369289255814811028529569758043498567685313584078574026788594386518679789384500554800948853582184195433042806426436487670113323876162406196126872011782660053257554860679322315003656056563902598512665467339690499567249480723908598464983075870776369345518636159937781498518143192033234304720557780682214232208626459495427358334872970139827684613372737216101677777009755503317995632603792937656244100709399749961833062268153884931378419936709569032843163612350733800994729199408564621090268464863034215401230701464145332525574994836892363803726639515386223155658952132143899759599453849700488843883094935976714332171323293935595473750241020283401596466784943120584620147603396386685359024988909323067992115881798979286538170084597678030837632188484384927766133353387416733449812669938554473619777454431508621382171892484952811398865340740701706593080365896553550848084100196656655826503720829481001397452832685626580187824527511589815657577017126189981326150140524496404047570948807149304632653811556834388907049325025856852767139146308758797139908295526316144173276968774732752548921166443957339086394549098975253359491896242355132935644482270060831265623777530003019106498430370020404947022816881946038428272621824233807689298628896378035635601658120573798917183550832664354402874064771948653525082220087252878371738973508188147465572208750117878329022342087025369923756555697418313848921450437491996971778630515729361000447971295055189879837334073579238765941595133384415878473253848050029711265343273659563502885592775938661580161475058047925377631303580289464575899565474827624027887743266683649472579587057673335367845344784518907123056704844038712010090608269598840363082110451727402196864232081955388946128047530206707367338232795220175582363275437584756360128693850592966467157960186685013041215961250889770549438267406667944436688462553460553707170199265652136934521666276417936342391965597673935037917740895609398027881484739441897653000095027481752753038686736814057166153224352861480417090340881387837276864539098040549831976746067067495248106761847070358523837308985933823445478148108725653636601156458871334486152493043934294947630025151312155997309302043716443017753211816697712582549513298691740496000096512896854487042217281938070168474090044814576836346357551025484319739211617094034355386211736517415371164452647518562065866598950754772290115795397458646126558653814367419902324254411645282898393135563873304411128760113959864942373715853336018123039290963513539132624384180790739089168850904651772042397516532752082953680425182933385848415427253566474829231807775399606377218934000427398252160683105778343649200769761845564107447423434661434592342696811023872763792695961354117395272665527771388131314195608166231066454561617917717331706151724029330502788975895548903846145226842861194037843219136726949843289192866629782596868351930160892566644279187558543495853031297339367774720944511520867820310779871225655959757969747667140464147684541032379843947168299337301950957914822040812642597906326699573945312858534852192300431275037099204775008463636817618919604244132239114761043224840360952327597371844007556008824440404491921183951766173513907067859210899655744440310877303547261183356657840004454814872849017709498171494065776889218936960568218459880748010111306086993917868467022002053495007419888120443851584025433764446487519320593273165182519712533264206634208294236483150628874894827763681262263544127563501088085551638347846213987128458519655631413764785578124718289145348297966354946926135864210998210465015523539338223966776100249881802309951822714232037697172462595794185866264707947651215629710787986349756331937336536348931855076674917582338337606477906624019559098352939496290181936190705312644533203173459243225107871770278955531623856787922239230586751486415139701543550237922044337173574901051723333393474214385208896656478622561155958306140544132581040346143113271247081443676245740269468208689740440713205619850980206515097709540425830013550459882401620385194059256942201548705005126600635245891817451087830700194954101581630872133413074600257105266497636940859154562282736225071820395439528279145102517507642240132278986727675890012433342367914795192265648611978035799528342273842476881162029107972448401391672597205752499956707771894136859213265563455848144885999699654802789824648095576175030461637434589420195956553289002622662990333689798028302909925932840437172567815420673209954726269672810217519928273251954953888517069343273489670821318021990784472150473454500350327482029751214523653167564085963179459061733661789174222818475846393317398030699094026595613556309980783719938383071167919124351360248290193532474904828238958435251821286476830563035695009451331649935425218305775288296279617904700925477043047120330169501732504494289887790859618889796920623296529522040267085708233347946524254806262798649209850739227723066284938923054786300686762112601501609724700627752882365628256785387386994522469406946386805161974398940360075467817533072292525169147954493890153844201112879850715491817574387248552144286974641473294559618376737951790762585782235219520012718715677925929853678864739381491318412330509001127504591257017693005767175764834177598492121244346266474996025324433155582636720134068010548976192831747317251905404116789193606731825725486574989495358349644129113613027774317107428494836930192771779560364287544746472957650891766836672509724735681361715383189619884477641638401518002328920358603874468086063599661891761249750978105878712534995074862667447924349925213808140417785660200254627545286575723530786966443112351481123988277634514900557920733691294173060543238662434065998237639240617854603277546253844221865615799326936448136854719690702488533288099694057722517713912088918154184740412662267694516048565428585278996625569559914974201310614098957598968478430963730773421789811106500473474289144117369488203618084738082812279851853596354376797076381123765016781280274362709806418627928283818528780683749892652496999495091941905498373793204551595149898459831435434886323653784945913062142133094419009069051933398589488397303444926225316588794460815169482347594370762399958962588263703371751691589383221675365613768760815446264609615022714086210759655810510029473303359049236674322866496508744490686577508598907298759016782569927218688753957704045061301877705163617352295671218741277082921118138321446023907302637997907117500323661857038548333544113838352008294712253182002793051877985358978154074564402892983029397300175344844586290082296758669754885352996220244257855313335787513774366098171155946690196035878226037287468894070236280726492218467463834307498877697922272169876772665168312353107327874182249456435334601734524030249546104874600940106769247794894315104302746135167278296561233303624985240346641815823999792621424178816429609155211295131604003949966545100531446370952192888365608664456520908822554135648019032607478022272942677060335098989530074452676567823740050322253040026787184623259728172309040091012109490015225469974361860840799654979344289510280985412560503885920877570700871572541150067585391223418525698957389033439566756167729178694741018838146496118393719975252236623181020712281528041695612129935423592726199311860041046583326053955418983995618493933173147667026101840596040171915645188905705442618663493350624976454518209221289257380586223284086490562280169065799770365097156152435850792658247267343637675776125424143102873650879783503048698069385397667612150342705738030148830666588301057599536022027665415267881533587879739215675699321208079932330855921612926973269671190442609635632850729674290188772479501779775213976824917929528955532373890589780027196737719609140307259834085850144918990549961167491059959371443514337445211718087628304063387213053399302417777702001246183408500587476191296006703849748470945138975828179054814081439768067788947988118679415394768682635719366713876951692834980825968230010898938531405448065325124996509298950668652667270827541282068732669980915083629364699062606816408397534867930707500231091532141189267026377124959723583199450980654853261030475495353199467899370041802421371980545340885641109548250854362459435807937831895752759927882092935371154911507926018181190005069231914834600087895956161330822471241720331399584669822245123685828026088751345050442609142588208360084923204795331227316639239396963004909606661062895623899973559027409174768368047630448136874366996217854293279638929943891497453269317261840913877954821914444817917749079118513610051114872603713978428744449745881495384749435106132381960329949720079481552760594212793458364524443920646921852358479201941836450184128582629833823239959429046160903964129623941559701546174480496265203065675753540579177383884487900706512342643711906214352285669530498124722136835654538508849525238283469445160376127752165947919506188961389832319568219436967423487348735811207630654240948912361710181977164324890103570220318874031943079084613756024865674373384662542491574432750246144788776221130713239520574886777896826626409226023367488353661935850678520434599393464320879616403882930349297024603683894964818744500048942969526357499205677533957233348867337916790840789130715630511997616275696912710246958575026158505574116222655957613067031639608325532795875433004824673624996089985911782753446465755450632891053276665959428136546789297970520879927373415442286780935791416196751402980853051842387092861393520323376111487304224385945824354682099346260950873727418881831690749744904494341633158318755062324113650658186267310792460057164759646562357052189359847806928275971938086958116417449977384788624913191466112825720665409482043515117837422863828849477538189658150469906429253645768504174457651664717351739941818284146994216309949345689815535178512316650425808845611121783321668108755716194205064409305460394544949975765146596136095079194407843406301952897268851020025047326695870219552784817388473986882820414837927016623672280733054782685509089428001424202998926156768229528154225092634247732254899856313251638375892019909143370883866215925027411815233079860050315360182693852978968161994277913901497396383231382453371994409276380543877985113597882016477780024874220482957767786998077949559462622836423020700187843754089668205663986092933479140204531986849741839365692501555126947319444930376421914701351668333009861765843656746556161113638089819617475763001367242316671250020589767979372083037566843784430425588065126615286107337578943092764871115838349908005280729189955975602718254453500701597492604235051639938938253750523201227973959374768561948650644716108413670702788939439630157704048110156820662208954309794034499239699208624791477821442992012972416311266566519794513581442131434745648497258139672563695119453550389335470327232079813505797846370097098262468056554896807552146513294180166658909295664462309693108341586212825466046190161467940844708568173843722404530156281682581188503840935455623077156669948238073046327583109952963129262015256562859958508409731559340862780150172566484519230475241347939218619342454470000773543992382650626913624286567599404749701197917937715850791594161999254596073549778658856661887279813174316705119992837657272934433171627903313688497642532477521158810489598512928797018460487240341632668833700295276928789618258243220392887010048156148420867986505958184017878419844071659113439053025828496190427565206121530409102679629348092521970377820668991895561404379752934783123189399898088387489342085306002734159127274793699088313363068557730249065003880512161400458781261984020297337925953181518917509630345855925843054120242835854124197805954638389703425367845662537565283997447081073580666371341146540260397400346251511291410176120565810983031490381220074294577781634202686593222558359960720787583868762746269616106088839353665351499951541642978138437486297435914450788766723150159668934752080553590274918983195875872334979445623603639412616923996079837331077860588011106495876273532521792060493848786065741909960398947465851236980826496665570202396372148889382976892913162438038113863620281619390308632308654139597203199173958940730298534725428153581036800510884265582815986528598358592782141959285050659537512463023380781609345300051536480051955375121606332327061889267572640677909514431431926041581634257254076557117549614276480811439726893460672649700179216754614061916804426306451574756252921593506888481309434382408343806588783580811628766277893368253969854261930175116937967125163808298508177733498458025626439114434090118395713490573831717492922415781600111690982701740532611704735429908559621016797941721767224351925650353691225514897560776893227839237646285529515002426835487830549065328243730535767365301541787326300550003540546760155025871509591934353967038737528168132817532741481676710930683987354891876039063565055567184125182542414906677561850063884485018105581976289661074062028621858255196347520407855835952439804556457759199893429034832886055834364041529307770992339942943156927852337741248773926117454338386296243680002955629561872240497426749519285389004663287846295701958620080174670827266940630945020848018277096875172324743884003872326227985221154067055105719853074317899011101349599647150951307645440660367353218675463288366494378680697958321203858091196496781869995993291651826226231073805832304866168988561640528359601870278502898692907770108546591222168426527066633908568066500723608004319530626751266341804317450151413458176653520502062144907090867584100585114457098733408313818832116800577339956989882568484199345147701414550591274889061010589184538314370841957568912592224835971392273272276356341391020092852683043271108308610762511323466968335313154006840068789781392928708241524400244365017315038397407597655942739951813397215685929351839716434887771698039176485331542096797333181157219507811772172417213131473032445605476762388983054502209494195038452026861871364942962191894415835161190651354709931952015629789907597916039218400488095752409332236865001557373731325774780045898577512053703312017632905306364179124538141861105621595338833682051881846570334197802057792982739924183869674431121785597994757491940880367580644017585369696477365373873215034324454443570886108991698209066291975329311692604703816621146364357817909580855211707216906156273675965167403992396780889361323625327560111969203579601321537023782916871338484609349855564000403200108242438181245656718657230047076060483924311760447890890340409877680973422112918945441151820850716931905534071495701894848676124888042084769192568998106192623458341001696675555606000524221844374112494054058106298367875611985979341279788205945812974471756850842684618950894664835701280860054191634362147242313310079426003156477444980702019477207744088297562176166749649824944383047223214909782316314851324840789535541319713454576582798422272185613140966847518653209326840491383663112742527756663570067670906542666843225811083316767255319837211891852543396978432788163562147042079853901253901728734022183673238531619665378931134202499238852672422885508398490564196208177400746779784215469608850532614158183792680339421796465762071332472486836098046932383097558744384194141436193738723991507818179186126466267529765850261217815056095367081371001874308884614715212425773861096137787292559667361360931328385504364634840443944824433723133742119383244947747320170708808231678351738673415569806417196525994695520072556380671509016036225158697071466014988625066948935548757127670325495157954350632181472336301033401519666476439733327361331761016487731508650537389303811035246520081633968774887839572825076423289527348394421210825288681388975945637196619752977303816729462777647338227302723003823943304375584970633083884292674738650210224551431771435491713771851549036624747518611516508258639567981290571787660360138237491953640154171063600892829440993754126171056979015893747339535571798146675262391819479811073181037527728227783087817413550152675531590391448646608355747047754973947661393380371025936033565162436235125895882738206938108374666735091875046690432553933103945308468773953820929827315652621513034985450259563910874405645672409005109111670361990068744687407872470304595963725488131957140466281359989935866973722175220630984436315210440915775345341330073618303167879458317711085688736506950792059471008734573524763160600282086953557819853496353849248112108074817371009539788523998365631594963991723627877836370613860359593963112686409818793140351607905051659745257380584718515792313759870863759991883949564379102136972191026201046364530959047545772934622380322917263556968779135549216664829520201639858392781333835936513557279817956865195462154069486459913794833527297008043054737153792485205527221485092484588665124735834334825489940710677588781851768793514747378125418227696006390768582040557012572431243687167177273120039038163263723038485975622361497317782924295936385753017723987191719477133007520344274266254484273843386513959237949490789824276202344896462987309542725017255083512436910597566753429216342560414383223957477470696941203123742097894939867786040782267050370591603783779236080604953865590317581455955144064818069941011284263302004285021025952567522395347523051740652369813470704388657154129876337780850397895026339916309503912965882206290123588459537391152565402260763804620420994138735675559575761824440598280027725694628712621216884745816387097158098288694919165994553318719513920720422331052841247027976248649391229942356624847841234981000891024206608456116121454980009026965135909970220849124341569793014242252670508238647930008664327198844000376716591233040790512922745742345300906505632141233622148354393169913208469917225188941735870961056355375351189685570685776158904342588354922894096006135047676949674175657292547328210615464519022607838069674759563964422736921932017102039600835367451289504586136126220096874193303677511290349343037645548934783733101523784866336263053544202232455709463614344251767512091449527550060077707994408075326791243443811037078187267613096333323183659083992492776273168999500409305088668334424627503602959843206372856009464271969255881226691927343868634912758735986841875089847110770541226761497083324856945327684616785401293751180562589242928687356369185134297325871902207868572710982605283586414118834665586447105156699891921690607605653800778187952771213239194773814305071701666092999625387150095225563387890838234343833488940481138130893351178219179414868556090688648379831042516614206706184878139408064698194186871547832040747959731958341115393052655269460151503636579543309383443460918105995175160053712917874298895121691412658630614060420187819515759572925956491187266507892994368001871501860357575567614606465841361642802226325314943506863588900809432316008287773584231765690693198679089990952377121453300438734068391714812920374666806468436062762447152865706714582906862519589199939863332423719835520926391509568764852439491612987226379521655157890314156803266786471584260978312690438145498809776091504421767924711713909227334547517081323800894989638329263827944848866726790286625208274542046877042442407505505102095877940063089568518338079151910595375541796938683632471678819368481742675650342222027624986845139973470686376511747035426771697999447056331859413546373780434782576226245611131381901965236621597474388355110651930839961889802897611441065022908747982433835303543972636511777138184045439958347652598615222584673556013705492919287341356282340873187401029454132008978695738365229336922367858796195793929510687468911630903663994336536022125792299967686459984905644926126145463467451034760982202013399049504946593838143226532374851309356900749305759213127539592523847315138183263996336983825250500429653279686063339230546415777066403621982779135699827433757118807884366397953027897685659427152056452687920479822750283768850846021795382112031188854472010419462828165632905151208744991277743764834947553718263341392756251628516084835844570877257941767355569519609947104639618880930524491501056433271687607274614911745593302417550416478122932063985248423217413131565785806444996345759357651068261729751049358926750142407908570085245403930098512270851741205512026722819221461303368809884506306147213191030217161322815598379733699895092381858532042390386370957769843973025223570867562918058426066976724494554271938842801897852430716041238655116845204477651597476988689164854658002595991352120725782492162498048883594655046154698042301953944987997261685124337845625931340558026128641188514301985189930255217575433941923582742103861022195508387787236622125683437834076990060282904724496458160918508440129697086483618775693916387077073311088209701260455964377203877084459344807747167297992424071645847972625527849560136844585756374362518530152728499381611825384319615885056263783656594273611267705156673914932449804018479589867978131880714501833520369401081564453616987622942376727642187890302726968794450053686562465640903965751221475090783868402374856369067353540221906623542246989598320344455931753990911806260321198363004072096136747995711350480915816264798837786625398411344630842050154675230318118259713698033205906003532667797315400992619619354855157837640532606458854682998432033874483602115991705682392130626172527487348435104506472688120844946427582801771439267104120066824068356163869958291966153826110985608190132869392866064274050811756434739604833347660392963858741210545243717145665270562150143768474256694170918348282769866996531728729987414788534819319629398278016824844038961464606006573228367998273417421573234123001531464201086041492910212258522114829501268812512267455264241972060032023541000442316403783542048053052243125315284897631368561494025126914580320211929717396281184721878420289442599149865897162482247409775239572771836706231611050897025728708965249272252185113285465825910308164377464176637976772900803845788289325757024206281127910429548912686948880471542794186911172833452956058888457289638483811849058053113633634979252337394638522911659091886526928482338701188075993027254227676578420784842762724702986922197146136370669611094924848811941584694276341392772897240480997050877901269122365677751820632737499703347679665801925037272153727205343532480851635194971159229018509444300084749960756222671889369909350707042999095305490587188492777719962563845788115804827624621553467384183961684420664693549845831144150353039674971273015945333401146728534137999972963343686712494741557949134094128966920128752230861434414791529021910218997124881678422287692796951849290744145245388149596099893403252023542993928239281948678352402171124564074370326037216758169960033421479229452425885290537547977443783803041074019204010276911358069841911296183249463284082675155022425011851963884980003339695224924731216535156836134707980291233360427067381168137805882196546595382614429161883641979378662985629627080999478371482986539030581322489770664238524710279654888979366341755128340988474956934311151006704877160394381544444796187606317662099623243788438421826511788808907157615831812600713941349955046219617747704759175092743509860329892700031357234494630438646090543576308994757715560798143616003424331574569459654358733997292769970266239783875902173379298148316882866449006785134157254046440059522942545267520542667709277287400382940114308036029944816092520836012299543053508603160591084032717905087095119458753125621435990543947841736144560843767103390102336110625514743913996738288656147526417456075821952848822302399951948195442670787550528721303837013128147472609938637538831774905583581340207305071410643352282501524431296266736976249110072960994836276024946026113822218909945138287926328849467012048073812897551978673953807101526035161064083580095416795133903510474195407322517050206677771532692644245440677931149964285109598367804650191344204393975744562574301783415345751615861839387242477662004160835777542128907051144503525050840268757309876196898901378393003103468401088299000496852547853359362233799568603755795422856589761628806127604218313002859347745611268878828712015246588148453786073338340957999736737491936195113369265223400899768286116712730712941891135484047421369019882525381801328282746592183064307334481008630713710756719417855597865736815214907458302883600519181414672076247442197103287747017748374430464580708431586513714214534923491917539347773465145918828668713244637423259474344452456534673793579183296309617099767434707607985121263066133945843869264010825960059755914008542142724068894211487915434811346024060681855090577395858184564848944820686564499855375360143220169535020140113050139865151201262950227238351969201434704749606868060154343417591464713177395028228038537910914161476399795817559893668523885851308179986008793330647816842334252598451469390193958048948928379778472290941982964402196236115398405034037407055385339092920389999467894582965719058009332224709670442272731376571229991821083691495589198672201647918617128495838405846043705790782661718633710121749223437430892015916560492591213819216382200800369432043632639961888389045609233435025155068298274722635616045400307110455861607249137088399825663020646594816105812967500544155243289042710629267443119246226087525167505586094637288349234320585542818252559286172941942939262854322920032721161327781531284741826390091829533493848171457380788499035908317656281412543564071758043603902651337806591942163178564931542306708386534043614843279061176847196242362272481370318214539910784238854411551155916246492240457504381935496200330853060354715513093575532963035782154887418124129085938845768527823735443466621187049486800558054344966994875143709535618697716730642789920808008045096723538795545610598079821379484580782181054114081276362520917924632213962781827837218850842932711642005848574368078798730264509395089754436701750152402884133882715214595772774255091482869004012024933370317439565623193634495207356434599266681069318706312512661755274363375366391556119629356221238174418675897977238369297645837949840056128417710363163510377189050016280594025399416398268243749236613787788825277777828508910664359888250293630084625336298789901665686072559918100557312712297391757070078828831540316735998419084469646349811387403021779728902107724938475106187436805746499722942269245449734763337253470305442457363401127095235270545291874896279679146260834854495917527982447599632322104145396399574780314654620916162954502382004967253048429598230328609046575923117495049103162419042568208903240579690602197508946795402380980041895062180552093201274344519355694629932004398787432599221714324085485518266937608533344809156462855522026212130904194752816586374541798040379760683613024256125408333515349245793962573019697625394877877608056213375851935770816517747470142947472803703422494019511383304635620986851400522709356015286464520382834712554091842631076541777622480742745198465576659037735769269081439901584039517231109689736724624991283002683638363062551128553704276040325672993664313159878759502568176769382699241825309822258618616377609173060209202047237697284138594564016813150099761065028576667018898757812376335422257920865189836573405083280310180514428014809638923350966265081187533735667374987619755994101987322499585770589422651572561041749069453583369056746203174225192783831288288955208574580119083380147223742022356354919738815990842772716557526566706233694290421332205658328342548586578527007225150184644481625612632279846300859817629207519497959196248713668996926703617357046849744064853995082951250534529847805049802564228797800176355621556739337665942646933731436118846239905251393072105780170680780989476052279473551179843224695547262061268914549145112628485821626449847473254271834527360891768901702120346997488305659597293249165969461143243693702182116739617573814282195135386173240786471014781462136420486477424817872950464829375273834979437868399177658827610776348232771134680832650803215084942956515769794340842698058976353057701546176438084923772183821806499748331598315407090212310131455258317817633505357345424133570002522827843504372075576285820848047955382923972617336511955691801568624878868906767374724660584759270967499316665072915926949683853291197648746713401640189856460580258065530024812440338484703516224190147077394418885397268955591606330568022127080808345645658246490858406386658002418789820923780847811768846033235585987907455221271714283260788652795368255515543623913367621569931105027103213045731976734502074155694016155610004681099857579960475912492182862018346496409100441261352509362530851433577959306637838290029655542742088677177849296591694212160039553784553058661718360715005914329865126598487745983361916963658155616363630076200781099567505876546134132798967358376751230789333910991093052155007653113747670222673559063110087871855927113565739164292588224107544741960039976084780706034194995271391909009133761688109400465636659953992322305926895643758286394202268208704587120949731062684602839310629825399068957792188736818614310939566571790593199895590427396637959421987432566515320271383600918871099232926231280458310870765947425667644439675423231291075577989792993203695854150164084221818416006335974536709308097519102108431151460241379653039282414711897439536192413288412029217117989409297768478104563083282112011592446472650955890750693884611168730234297724881504478344770431040039177104808110071035787089622675907263289971181587793204347108904339898035632036841185954569170615128862939302344222501507170241087130118372931890592074831221434422501096867189504778701948249789272556798515082667696118994787493446664034115361654754820818990029134489450283247568276796080004035854329564065317380353980727530365373163665661677258013733826919735192512040998778323760894385813728325036214171370701361779112741660839403482047564096275797185266419511153473920280384700733768837371278302224206285240385450833503879904321434443155465983116165933926178452138804780430275599369043780956368696368608174704465868614852405649404170826749395281986745283228334411201170073444440197681644966103662028955991346149514991187319468696512037631735087686164415002900754945855624546482344150287822200627105578247554669011845300285670779878722766677395938738311535102810144312351353082353314352867628202106888780435862215910163372122440746385336873292745913297158478293368840987005149379819286478941296194452190134583069973730700422355699743192716507397273860821483414670360633976281474441989115776353377367089034370210056700034055778685118134611433920006298234527870539218364696327647667774093309944166809568138175228765257781392980362678116341984403111246487602148261292997833134267493388993456426131616449663566023742025409652578847171242235990973360905870474139123111592648744410362156862986298748082575258080935215419273271974577214741589183175527361130098894691111880564664999756496761291798386532964404393926578218805928361435394519413912667062554287577879805187266905764624852199684771696209301976513021594870080331728360539632597768611507399814415383618985647898675862869491476859418568936336098494844078789027978813698588418227655495159768207189950470286645629459138207499923442758829216090059650611672840646756182829880873351032229721409845008232093169227360237557697628582117236060148281525738379656792180191342263222672037139608862808957868053801914540621947399122552149808629465978499082085593622328725897719385588626873632170037812888254579697377595585109773144513731731629524718095499715057456553594989254912642598877106726990241868781753705186165135427318677192536988785968588949199975292684804222114483210009435418202227199768873209160030090887285085759518194984606434224361281064973093461240076987957323716350826177033924562608060156315270104761186273543001861154647837918462227982412789164388827203528817063873407542496245206218183388381762002198077384173589695196623140653157794861981749722017612439920284133850297806846755372588866155018930265046379890832987778443100872974390792547381399417366324527323911299071476370467472135044502921646047219831479696364384891799846357845865088167300300376008407511925676052174530921492397152661424474671125102350759334192976297500002464196133674479124178862228292760827673754841480549248948023687583498944996643676084062989645063608580223783054173740869493083581058526434156255037710525137282142083081604511929876602577035913997224338409311476888301951778660955614714421777702081803334135594773254185549126109856141737012704138628603354101258281895487117717840939155969766968783787629087454042647122359957716307079706971431477939251729178683792522254273515857101464547030033791820448826877297445633312510802351177489080926356946545570237758177809915039504909960659914798110703767726222887493034330991474452052085652205467788051580663053596638229410540777227463098450681564150257662705790205441786771705774671197355826912945748648841612865915996201012454565838614897615659899498166930256487152253492337542925174939677765469936498661010813511116390479817263863963140878781723201065044131247659229138959498358836383689679417617331515936853683732604383661738012467867456189716644925460667505152054290320308212734630663122860058830964530092537984199198530800213950009508629237130603544370368505159051905562764736013499399992764011689896947494752243196440243639033747212691981376867184505993341762769048634577688824620597955238821043919122157216291332787926632149935749223630828411900489425033833051133351983340640651904906989510151339086773988108825446248115886957151120325915854552115207766960185043099904964487949258491511410696348624942824073214700942421917709765615879583007120086758483967285564991154336854380688108719996686732834805141867031028934363533957778316379359658062492778871088689353992063745236372677419382731446492435860746181519630575053292869411299239176297196265526591653699488294566896069703627115341413393198733689259129155665492576474271533609712586631424565621993417357994636669841595270949496529126342370560463112173864271966849444973681140285146667541664593534194686480506065144378576693623293424851434154453349584860233112990340149073853739357934916180997349135731811313305542499337087222868271725293754607014979562414667241087763445723906451690720549229656572708375852421458616810102833054189919328640637459965736434589348887259889455159990687115152664692437274070567568639818121054260299373177323802354736024446858444243960287717839356695607857798374612588873000310578478810995053085677069716656751811742585855111552748391216269620368155224780354390260354017338555369504027231976214189013332343367289901023384750649549129212242036027746779633451896442439333172108109878040107317120166939396903283733407433740976530626367407005967705051064682494573725204178049715987503074880814318092191098727553695158071527338738697876167041791491185343801758070314229286724656815868058148690849598499183926689626475281813553388754910494434185593036421812690580063008604852201363459864188040251050043873975934322273256395578541289713239028888355437907713112710170445021768911536990259641832239452581805235317729317359391022221068986067970080982935510633809002685883888836396472329638273751400262150580940451229935539779001742882687470573515838194937269849192715048663341190744308079560889625656489726925278720334321479818578337561679164306828501945877955231820452876511612653893455294682674196384783882538532086258925683110832180755489981681233640618801633281194200916736876286425363755000744527435803813118838788861292267616477889978023408503463265090328090422077380111829824269680402061055320651247943099008011496569898170391959374620088625770026607427799982150361942680151172922945748101132667305359245812140507439719255527982659188157210744085863046197911652233123013047530546130731689833009704885852921592056777390243870884037749275701931426588117100287178719418043551983594561202199578837534079087932525359506553247884538346005863434844822624828072525733530681899332847160824201427412819208283950552120421578885377155552756983495655194976938946898433721921980293513674358241991722103195021595009407656624050667077744959859954824155876358617614649398924731447755558874662801347252265639252226395723885166670438919891444605530687889233503002826535848886503732048584860377150524192691793642751685396966807795575392501831212966408225439042486831523892781003180881992547432748137520667992277100107725751811088960445789135257897723711925135868725867767459891588688100881925689654033710335343581707154174400857204591421708581776089563117240944230254294975489472076634503421044262979844290735112966321260841596669480452607782961679965858821455247984027933667732066152704990004375497512233433866346234756327194835773862008619722134791477278052949315234620710490995602150415574799421967290783041329575640133866414627653145534977155866615554467250592315077096621673010681729438198890296934925470200819210785417480003634334285469570617730937147105094457077909227336494045572360646589950586284202701950084903139858397142789792448560228681639930299473638268957308557856535493590125688890209773198782529859738482448178040894866026287554872627940540041833530409109199021031666067024865148922638497949837732478639566482968999531047374313731979311746812477830181374446170364211321942617506045721982570394788424391852751115000420602656000775164280728548681548903298277721629795322538741103638731841659816124473582487923604166905670505983695682324800792438375307052532359247249658049232331782205282630204864700064785247090898507510962610321898332425979930077683974270727870940902390577089110740694103310748316206321906273190266198576100514721372499763517327960241280690964023428342010610084290703909344652931980172060052234558783117990664577055703406747751747288535020723323429391571955292421055635019056299701238279313773984061348347326416364616073327864804134504768929768721876977060697498586880321389532656439367806567394248779502694653533343867499751523175804883374602587396896112686186535480762438477910266434088900486891520098712693005355896915746002442392145618210966066938519102429945843690043577911160933482470541618086507634370227760749358655414532610089987932185490362837690266219769354041121175756681206640188034899499595168347311141157653081720538186817001057219524103672104067929712944160261443818428949244118707164109348051345011405101573891650622911077501331986028874163536758137074329105207125633248053768355556702759351509672915128194121445124224583336484916403280477090993576220076252175061724979724445832426608981387699944197140154051259633365565215128789359420444239354360338745268914768705208528099594733024259846476951360876340572685754514155697514447317742092644186757964558800669933399692046695030099890163081698433750935013508792723043704663922336570555134694090707862990023359188799552375690685856214023765116568545182485201835598365011546378560996552018282232209163293455905463884598962093703695504607349394699395625632361636224563640718425681188722998517111068795424950325278725377525872896159037350022704329007062997693171492926104902053926097146653100673630078291092727772389268222198763347466410207603400736059621493670313872020214284358317525053311469073674735219149532964075167450400557421682582269038098375563683054833412947993612775206117600647549800907232025888858681128119528735869666106366777901603010244832925974719046382796427499113797923924790618015064976601791824136327578489550549175413089910279516643128846678525712339038209817232098552972737827722556315591730705933733529877601825562698861814140979701583423978958466823104413400841864110079605820110065495556217265438362294537540334678201796008601602552528432061769125559149651160164652475130014925095191725869511043957820559779772665964725692271917904373866815845417309660170845900694376714930534694484970991016976487589246712526275495995563729283185397263705557123496435219857716887598165816103065026702007297639631313907864716164666612597812228874535753347338911828872022862744469510137374782436843708835968728962502648007907772666912322973874113102209504340586946997277995511817172114728637470958528050486835091032431685474017359291575642854810016484793621986816694182245451252307759564124487778230007758831436001975350839506868514371730322760148201633368123499841922471983977806129278757702282765880036641635614593179037038880436258423054450365043212543761505516326558950927355821582487844893561343007048401254930066418137180708621066550146932954881909567523039604558929759491439757116989596224409100422103563518079193885770719067934456239297066608111653693358580044041129303024415750545273960205682503129944625786127641276937810851007099012588803753344075975135530347428288276798845190892023877912341674345201536941553803522448911712772571134195017890387826655607878672153856742415996811276856395383703960740496703699939398947805364206652990900606706008029026575554459772026018051464782062913147338796164505121183687887393448985502146266821227112746897004311100541606830776821822431587743855586420793489911654339594703801058964938228695786148474339885350143988434430591676370745861758853315497922185319067712758435230329919227248623577349299048157836818274059850881392701714497967074349004161805232616184525877797888793148931749081852518301475125912271332584500828312138858930370733111811564196049242209213518033595872178601224786997255397316322654810435855433332251599845700846190718046008503741934326656620030353526102361174018427980060600481334117249838437884061096840421806800937744379326694696515076833770215798729085798651471942117418308379452754151278329165277188108737059663673471594782836764261457407827206721375433049325081447899949510281278486998238302363471863205370138332408323839619729088048560056453006402254230087748137434990092825826338241495310618792105370278348068500509716519606723902498962600426582495707926137759819850463230588422928404074550341046779141143605771212919594129196502646330068964845128885251964662339845127969755653555519442300367982587768735098572304419753404104865146961972550831898528907630080812256370953521007976101417562419543133620921104408820263944044358971789288777706054864945088144035347899869882991192185640893031600589547991796941587355817678117764971120502824484125587352386316697376605887887349081951129266023293073538643248826548077212173315815635971119470909011920405165273629238515919200544117785673422515760162692846709729509674100922555837799601980711497084512011825779776038251710530793227680761363253315414541853600706522598032876521209921853987535060217554164173171069818785480996619435440168624564251354097319012439744792857839876000606738015610192037965994098381496530099973704612260028817887256623468788559405701333278385646658660788155290871206019747910256569063111722679510982052883893302256454387891362704637133354286624577155861504089693652762521214526626479433207573573696339569480970109461953313432555882188682830471300669564009122172684362216495490421772938821303502826795971675451389355745534704769217753512719820059807603320146356626649241773536772312102136633973507194483255339682524874947225846467503461126094016245436162853104135113297989023589387096213206724645489686917248991746868205493817769323703621774688251217254139247726279482033979639373457124619612098581548518848995444420204381226624294355015133479045419987396075224167706241816226563522222253899260305516040876609476747770085100843294389966621202552844161814747082280099872590625709462285290686807071152023499197053086229711826452081652363568840758878179915597344830464386671665875666486790471972728156326542902868902209610031657783109655426660231134086239919650051151977814585271753733443240988561664871594610117863551784402978343769214444796199377294773613240974345688906476315097638607884914086616924462762750526797655296485071812164692352779800150372910068036409793898980763329751819023195875520038493144795517694678301399969788852114120786972279740785795941934631529351404625411628245762198233942083909851852153726487565895959579001374753482109726427591283682037904865604230090816069847039144854695663845175303475690801823939013855747960501827961111190299184309742326007696713485474831056216284188405920123274211810240936539571308110382643184003624263967091656994554816155608459360404190764371561715220970741192986367606578454233284348469625636914652691531203227697455642556884181673063281710519231044280022465604751735150188808527610423752680580713569724309055717709609694724587334901186535045964483517509284602774927844581500150951468275291860139732052919140286833545379975015425859312601993901268445436742660036173013476189622426337319198842688085802470230098445401591916452722798619772206658927417799095435724504096822250965488136115529228917945296794280830651020620772228665928431252241570336586776758440747693042541527027847535392525834857100971647471410445371455363575323663122508756699455539765415634365693166062851057634064219117803885090725091527255590593281053457689876400907732546939137784660902439999493719134707020109450828021885946301896878489992095272933097047317316357064002414013464355439486211281747469591364535785129417282378906575981244622281928974978575416480721703427037907486294363985550609599815315039840094321567751666408565872703535833230022958783666685691497201763938387605660748814113151968050057168223815574231964083439028333849829898450156715382391656785158285264231582713864156482395146253439705706500244389203289302605886493358349561801215642272029067438603528803189642850578876305605581867758421527442864555548436409634710360335914597524001374619360415069557356353420461318040223238806169824879346096751630481069555863740538245337596601371186537404348141821048028846186530683536933499859884913751855303280701263720638941917902685723308917765623016168828748255854392747382212837974626240318130228856974924940127504299415405524537455659755461337099146114386034833246377317407668180638248384166605413736130110424424176152146505920277027881564620018212959842813622732479786950809581992129515947946750583156477623188894023210718068121947284242713421950730048429675324800339346360494910806695325230318365084484142750008613903752917608666966457362731897767788317481229616714426811067738387937268676644106830419816924437645664517611586555526728333314371356968295876429381588527423526290916702434015994558539866376992089423488762281399682226277416460675180613895394767593375347118924177928882409949921289424710071766868423106652175081037295449828577818740335420148662468887605847248125351064387702910860201266376472865442986588749600484776285750997856194162213717628210845223133705907058256384192569426894980629072379950048860712806929137939350972864185837717060012897991140491732935391975947164020830424522167043893244052949500438046073213207230197537721957121050330870803115546346149749118420333826886815256275655317192080459950867952807470898224730334276426000063226243388323485581107406505490878300777548402452472249360316165905385104955414226314679964615816648177600088777634268550189198697663844986531036032814082134673716909757328334774169991259165561975168278086355194775578852540186711687649216732332995959312940586871869917112340894498366799765803056499082202898715916976762672267470591210494082297568293043782067461962363990797468721898027578336514519527307261585929372705572369477301987962184261462292067742089061867913126422794238274991976130159375903031426586183405392954659166331291761957572704533527655484870380862287246731704848102011227585511435427244543062359090355750853366253697087897906556865991575113272449958144297623725090075734426642344714674597184181379735215599134839839907280022423072383847063134583386245536547855477211308089490540733948053807033194201528131304098546945170157996995258529524453389313326464061357234681149351886802904647468744836999594152809897272220117964477522563419179131152806933594304475540832861635717348478388390638997311381537790179197493575747822938317042102260573839395222360442289271801131045865231313630379230338835646289525673255152891336614908238178016295099898197021222203794847809813114680560492006095147328483031010008151755416164156398467909600450494802346204637119903996596861092235953353972736056156788782872617418938542321056277958388132874901729200491821934677637714942770054041338532859340412425440285327853447985926254611619135514459581712305947115365897329085373559500337632980727220814530142457145589426192812462248756484200529765372856828812655785608861034719806079408050397029155022350629003862156790128152993380621386607864702400564206200283192962350872787279772786295503097841548026998850561106172312643825845174973795856001645544260180038602626875084319978373161506462994841740615682761828825894175680248410059868478277396902800834429290372454642502463136597000269408904987095097580509081132092952661247729083749888077908620942941763210973492751493459417039681057663133778903852898495818681877173357571407540094605056574033771124073648931185582384843771252841740017292664627011854203795584049118325543521092292219335605785278344876938395710529738183583533378934856005941789406343516092463003656368389135199378976714301852899947820929892166010835552491166837948219702976206678729371401465540411713082654286487951205168751298498756589525010428367767688625990467577249541734302895138249971483698639587852482811066484638723968786960824174765467582327260528958545002237444149500781938430528862783033582077103568659368092571826456494610515979527329276605766750000491411790489601737270247954708960758360981104141018290116706166173788036997911409009509477161110777310190278488403822537193348309539335482642747060623401760869490544629533569310303885872967504818185721829191671662634916212003924120081856730239755784502408142288605377661551174718061623562075065026283696873654297229298228969972738775270239113660372745974637905778803710059114538691354401535135275261348429204807990400861602801727581879821707485269447154223307567232085359627537384349518417908303215374175376645397855246130158542045376696013909848388061191990692073524468173323512339981117463830846232305850458494760766218185455971118392328386588004878106471855713072385064992581875618671950331004849489076881149781986595465075251586195156652949844967692619955317338112065500868031421527404433695667456927721661994748750295057396967856840275630860674072075184304072737322680811670619725136966309622957527941203521429585614052142350274656193127164354595143322498569979886235133106423356969356184653130418581557727435140623755664745289561572894543595320276262565643215548041877470833606467752131822207072989379277411618686699786712297433707281049614184180213217610822999267735900397057886292216633196063339588851039459222770407494188414431099207045473294263558269832692874807903310452810469352803883008030221345432146939331705552205919758507442219708745661909417615399691495463045350084797730695779092852145392358919430537462302396633192690140812198397508106963969466670612274048464111345678814229809709226463198848822607691901812189405039775593843964451702010666052990280144091921314881000714461052066486972660633378725287140240716889388325616204789621663194527781773985370346929007409455466495152363397987379269902354462050808992657235960014031143300103381767869689548335788248094860078907553394668799719253028245719485137548518491823859647884210886067744582941398652144118053738294196637271971385434674452627205582539093351267239751670442628403923240418898468763137029769921887322434836391386773718324588923323921173570588694130290225530398092754451356043943161625061841933824960016996977651775135431947584399866131037338321950967808627959489232168187571776296780587839309652107885706046892945089760548636907326929735740685185433426138852567182409472314957260365758171616992380560287480379838977439171248960880306212723355550964969492885968744010623177659743236001968126127018198543366550295263658986080205270486853282432937848975626871408330380738008928220034583417013251042413200102242808661251244310670654894267727806590213539012112596731849795502856894897373563992535269755497143129471341780862382520112216392363827193453302160047455222726089289036331234268247224551170469671672898825411649021828769301050595294353320537512726178148347710117486456624302223367471546935203788548195233637147031457212769379781461762617954215678157703404454796876772767700253900564341396260611597810134868958289911196618501442823131478748522916863081013213326127954693268221383316360845575404307936893129128323063318843338151664830167073974426565656823542943774238111741544551926239952730175887037390731055818092877251273579698261144144775012633480960312996301143653912206151928160624305132882058326356543762601635064230365697522947639040923129836656202466166676016879938887031032114930488451509286203989850990221473504521998027011594920507820441228168017556156680627374737099724827860570533698615819445620878566167389475348676431566022250706782062066765217978362645190813580114934039096959828837356869643605258650577057344393318843885099204699940346138993963389957583855228800019841071496681804471638078324952322502857229207549314253745280946780061803863351779293690976665782895357398856955320847131122902981614197590246038935698379873592986778366239492665173987300245058081712158276600148127025383497352823811071872162431819056359261534463355467752254839951090366683989174302018605359271428035051603889417093145741088530367969620473536639008132866851709382813679693706604756579955807105077613436723675129471138263162277008611535981532661194524957675934844244721840154749435810031923650197727464656282340321694404045707636859064105964768146764336237615195413566154373304917454901047495003949055666574692621426087027117277397102572725502613247444609198448342585578283715883426544779653647925797052812093061454687581827156058691380901845921606129704272092935840416140183379580233304911929373856138896141988460357205932513895541349481410893658030996977428887182360587878310996468021984721151284188212080858480057975453069419766081627081898202836494057415778666607371193077015536839964900184303406496756229914550715195278215502737214642963687489199692963421350113138596574343365206083907867345309546198477413781490195597466914081591215593888417877529626726507181188584027871318593618869115344236207113857585291048659569227883696310402320656620267099554349009606588677200628450622808401888331769583683203010208788209328020270962204571404808686261611391181791684543611477978136170219005410076577508444208783540360255615647823982359536646327339447883482839339868506990345182712537776125470035948273839834836443220244211781359622808752530154730576121296692872790346597097230307748828601566313276621183920798194046609975002502069712777816988445016159554238106315520780482548151800586135332813990759850604260114300982938202056511462065992793805385938828543036110236137909217753457685153262193659619198797827417988624194274487259946615304849223780840603981571531575680529378787996595367742454171739355692001934181746505174914304635581565610665084025052217043598301871936088229256018214680949843600155186852573607724486163108235729131300688503551391365225998167846986445897824101638439242404614418264134379974088630844639567870306357142374298089735163101906981494992486762491522208658157013891515877641596762220808112955960981439126685748754906164904213531128001483329588578131429047778308324341379581516595597141414746147786377205099190937489620663439494982108340405982264927200483170868041447022524602508474926244185044385787887050972253675138217651286385509587806401072315892129286608507214010468031926138308982820114347598319300325272322056155134400312932309145465702389227601123137505264293993805918513709326133057769352524870024982053141165560122943236730128918733854147018316557689561641211409808510151503937299273543640885378459254501257480036317739700005046232750851691411420814180004575466521598355753704794580063796925078479344040946293064594616387999232915964850370875911123025677171589754827444874401182962644570273099238970723278335670193905434619844966127140736159741549542748875626504841594911537615588057748696965942030390623696382694498350078317465292383681589763821655965925753491881234021719226056878494335431261497941141314773644534131204331012846734779441774132988773328354029262951443133284079604758509483541673289345624784996937138885424705647273630309587285461349108939167787516515084655081347766077898600166951790199145802262550483429916128529416459717650958948492374989546894260601527054812335768609554973346168727397236341389791125399236919787591912317052086453290848379289939427761841854937353330203868304204574872697314502855776055371741517942516634738614125579509526171035103682437844353604929973827001465556817286045727160310657143605904031642953282042857789716806217920129949041912781976605805489500719643486982530302010889682667472662831326488289091605157654388893444736872948983862996986761411812859155792745878761286645824455892784602148356607238142127361142569740685874369476466741267477748480557190449711497514474467198478806846652454546062458061273672851906842594858086431703091885638903375269965375365302295807669487372154108645422346081999628559292778349215358906915334272070911966124631881352753686257182968783126372313404326434611582108922094775213020765140134821746258917283212078986556553526880160167612403610736710522913919140768937760597696771053116725642963868195843658764263650890341942103805476047079390324956217235732162932513708273666142832066996627916335342801819893232381345856888035384081732341672631236886499147679970084739570745217353060125115374105409892886728463097387557851156958146305805971843586569450431286896942062575981816522902450934800182005512775638302019554335186140417316028407964560254108292262515100699542025483964709115840261558523964938227081720031464942770677368229281486571035862939676662863400527602615127494203761936869958297295550767695805729699468967202240895748471340663332870641235792090988775763085453657569744913803674137475186520183641702003754242677587322974273810122168301976861463835870445550251189135444247585943884347668449998292133381509555257236657384053665645884744011778517447861385291317992187944909542774848978213172316260469422207301994378876324254749005303632458745551980794139574317277000313034615149524516450256263081831481594223290191168080075694739813954705651531407582232568426556590778271262990400674671290974162928291484286477730627712064380211914855042501030251620570127738358497574574129538765267557953411865089004766144488320283816827661295029831131846849915059982993707210478729156148466354900543985298375483597286987484758067377969302459457977775042288286533198279701035364930049877230863506826296582175492143481293248779311533760833624139561145065051262587471157815965302251681897282722728110689427295567188821031040241853693267050213562551333905679524723284504708008787620800464528099280820729786838061694558137003946731350685607372197238821576043467838808087299959829301337434900115791241957591103919009184485745073961103132924735732959855836909293345590876075677634265866958048281949856570322990886486949216954690055102098668219008752342131749341935879176189999990548241513827875086126031652790952075845584396572705181994582574231188055744337683619118204043024913498463902081946250222720589847030879195337917569087482658959747437960556895859326055431383517851282646740039925971631433454691101463452926950744086345795628305797995703236865019128023441824193000132627120912652563040527343121012793477958147937057100217635970662555012603030620461002499747441316964815083799543487061800921243681530852699997874677554028198105465572972826079972067387026233660445377014742726020357132334427321184079060469744242530677381475894401790243613030253641111502301984881288634199634047368870652228503494943884077038857628006418422852865031017474696683711018710665033117551623503632892152676218066513581133841339067240977121314181002916350682881491049163343753041342802361801148626404511965507171164926437206811014887300546162836994444835441093901326686556103850112915084360510028917728231048960313611974212087537289268811032313748811111501454647872741737880641152624989565275421301504766289067648508724280032643797967533520819968669058721598900447698729903959150319336990094934523902411453502305225977487590173149120555208773956946577155167598525062333375333352519264028930851430803613120530575068581231657184320039486045420630829936003461099167971278927349238770996083247575925360371422929267640108566368035771761135390444531805846987504454962470938494117426810282461673156615003301700093094893547814313559244891749207499919353128565295606805555987833803663744883971222562450674025955299355499718148750530126422521384218808709630768890283937941590019609341980495209862322656570013057137660352677235455763183213034324283959112000404585406877534753509980813647614807551362441463371254173181311374087823748438179838975938482906793252199433005085031548394930645824352925700638767592865510916475509361572241564837437212981531563230301612695077280213507619516879490125510269055841648890562133511067483830801547455277109272307880103363273439215136701168090555636490606102893291782864164665547509213034218904237583095347723665976494606194528423694462535383702319905344982016566360218679619969210018567515554817834595616730092717778171562314748453733817792268775021673573790629806622840960452568490419555308307579415302025847524248973305224907218758196348442034140055007352329189025364017340519880149042576054780485888205611599069021472751656514083741401546034046928988332486004068151865963267144952495185966888080817280641291591329031110419655106368656256122220686556179511076380177569548750929703955228440072782026567241443376129943950627099959251853131014976954177032326590192316290275770983046593390688610045460025149184175096357424743856545965503014902790356566804613542796655715476812012852583733385800861532764839540666190838078899705267669582831645533016623067959443348304076003500378756274199875358040535633126953881453897522742062399648150677221370980339442417100936656820992193877236897931124461668419073365263277837628431875794374503995553312081760428903080507134069425254907078294235347039162400766285607776718284067402017378601180009877049463139033336979173958481464106730184739553516518479306784033093501468601345195895116639918435868778961860309319705801814288288131837321036530258264279039671818342726567151502924069097956697099113707326482157143781423215882308057430365832546401138547836241521178721586051949747983406732997996355622430055101587931119384011914634286843792357524538575138316808653007799112528996641891888855244185195668065266143781234045717361986102953589798369769590845347830778652242996010342899846495631567838048332693301662245611870225450916752834782702374254057098952873229038683201806007373383694023607647546924990288033139990001140714908861126204437688427011338669714895887370583391443484450038676175302201659830107077264988428485012548695681949479617531654929826689869143766148299432317970042568727361064216784676068044812114397885663845798588077803194098918931571479378701779917436868787827667050290512238057474849590033578192258187545540550716806471305045736180512771282118887522883187225140939234341973063938929939419058706119258878290296336018353459753714134660683893840157432714284572878514931472581761667285046236309827543481555933063012597345609000742466280723125122790200707303397858140101420660628115700019285537454506563220764931105469948752995846124790032014912293836814131593542147902604524730138445443524746022119403674490880816475621629827637774749543976014113757675309003718973396385542589210127364002896433931082048173211214381276739395985903031576952552634568665024478999278137688667293359579389501823297412349748902376791858427776036745329392310387008414737593877999237371575255251015239422896821188336604090567924803910646136384310747389168949921107071192635697031915645827312012996158344110744033285735899770807174209584451534580941227600228307574970859325701498298956048012537009840515262285918391348006170676368675775917473440832454407779058872958447096998974087876718982531513063973492299030411518973023566889851518160622143005081398210173658150091747355405116653845691827511955258634967292070566500699220701597252662379630028026338642268432095052755043307775223850233079840377079786051869317727036354874503111570992735173337519343792821181964675436398922248244061887610432726088369517208944770157657418393828283121746117009405964469301706390954786408381132276635680957996901815258564131254885606787438482433302459750624710701092123680080345542769679653654448733364523241192790237499302804089525270894521516576814361979549503205245126673360675189778300988802114106316592918417766799273696272679159574512516028522901442940915168018897829279895658318957061753358655485424594279455936946204806827375872585066765546260850076901564107147596887840342670096822897353089681433113583632567539128856678989919913458486918696551169364732079888245250859021388741208454180805120491608463429120505175325888488283914600564480110999208686573848816265902144333071192692526259519168416336290502296347352475385022724042890311699238426872806079240645834006544980619044823814276325122246781930519747151921862564863787074749147641102611392909762326781629293283431955456999695617061417207931893985594234568991366021270567981926609309216273736092206784872296055805807895481604991703196090562891989851047045033241182170540825533541065276278850868141462683526300486070046005345052334392459349116323471174287481741951638018899660386668769747949208975725029185117905694595144179366344629881285259251797294183214839100142023462366814388130231525460058260691950496737891222624607983598264984530596338845881403078221644029934149470210143372389282749043693282799409971866941785000175749937918557052319954399953750560268201421491464906936759192159434136053548047673747903603244703560833727084621974702872775202125000005998390139989354103378167479511200422629573995183060213813908566144320070993156373162826451665737982427875725554437767703735891127060678140426671305785679155216172158181794509067467510226607514355562271914624239506174861736754687371049093992326632704999225166032634220828476745593403155187813746462094407745639948970079947688952741581996489361484858905908345256147268124138806253406333367785421353022852892835420580581778805344581374555502618863805628344034825762851975782406468759475728275901589137467810327951570908975539098901173089913538801364792640100194921609065813953772020085260977662640742056840854936806006860036432184797899124565290577388876239327978541481808743090539364832075004168764143204777731091323192226727265168089950156462215694846365620761324687067035178367761080165370010502702074085507142709823403831060667106336160812021055762370223404871765790031922688933231239639123620377622786630674457830981039725280906384489314089784323815810026862562285702501904714604345779316189181103420545329232018883664223908504760337606242078107266367881192955423714316781450431115216082236472592349570399241492250451988193903752413377326206431222986748593792033718482284817343357239527514666640560532613272876570169402365985276269085310745042412903706954519735469230630152518053380553455429785386149666110114408087793908768783565853122076096872163638972245499959601320051834340330848598264240802224955463959050425645283244150304372519717409827278126478528117142775984879107740516568954131096074021997261572540660991486091686105809987231697329689547030994016887847518242440970897007203269062872576146593473135257000460532475918869124645131341256916332947004468804806233457280310757990375150008554412557122626834540681257083334045538782201889303915947565031784624862394246582291071391022184528216944561414762940161108456192916671619448616110347638090381168641447742098426641699219521724321486257737994351693509033438429159724071514455623234964990691061652173403204080691042087889883315584316914556963353769197109381479419518172219408003215053324743306523808134566285182094647267521116493619217972320789295535352284764194727619561619579441748111300520014307305702447052969026939657319039062554900821223319478928133422778314925262238554288389160276834491748887904039796089814915687265982093006263567912987725594826039985670324345106762053469535407122522555584320716786845504604559488347010678644355819572240292331283018704660279748267544254366860580681508209492406652177941986964161600002974668993372734156543787750937106929231548174808113674943614441126002867496025130422706763703603113250029699301459633861257602544191203835775936869112438410100541870448560849365446568604469589629461406983714283512483577054375581662784576986475592527732008084019339989887302192365152555867908256181445874471680692127519445244686023153782558854550229340994996560047892090109046183718046014027483674698421629583912910736623361696500113614393860803815893877793212240816680565441008608486143325036831672678515540089418157452645627172504361352819867977819211867996248000099738933517657380200366678623140609243692506735989796365002686690362402676282386915052592876474840922826936471718051206438767249756295413868834830900541275882558776229894960593731624404066914048744441766082474840389817759560545641963400203631680084041262771120346762592407466862700372038578563447308661493111210422200752250052145971219074142819884045318273388062447801973891142751382222860147459557228909563560639847915047608551624503234343733057947911422409802625563096304586402823833032134839493219913795596925305720348063119800049189428324386710540986102220969856360157242658297270776844606408304127122985131638267826132488604512149145352910803804028972985868451470684775158006642356734334116709432176517963837658516616014162113561352383518522831057172981323192665875626151895938348948569224317179353552510250409550924921107157350153587873878703714570167764486995647877103260536457302794689331529466777772067558917181639567242805987872480622503755177923298574855875669574632982486273606653738246970942704509883719228799692556063261999384855595116391489815655051214877995297622242915171781029659413286882157035774633547848535481041064126046016476217211348152646563431586486054135721830676923293513581237687103446906264349089337286136761524603022070846903760555447147737486201811775766328027561411812618903987143489173993527702734869399643095065591403586800155811709942752002275769692702615107672058144018734343249154589135448104644727067915590546445569296191787971038452732220427254555390364370615618696705752762643869605869179300278006087295656778009524431736206204510681735831626394396489451812027779350050755647631050317356194555306488347806486463952932539633807351184779168477518703076981752472430297306434140386063708609339009780842952095201943086020395652035167216473863162151584992921377299292277802252756612263327573892303304452163530190036929724398245134922970951737103468089344200635552962003699375734452613779150486365985491588751010132896588427945123820671268874867945368213002890825080458617822087676363169066008084001503175070796496239111230603741029965658351420798061268197581658468972126374458481585135199671156767060967070115973242205993070455863147098726583263385513177753725464385951460631615811394843564896044390560643570131473229437376945836881910962922058252436783095952492338528862685200413538090232601587104419440879345686570408107660631810032457526258781316437867308092878513311492675634243940444610337595908594544307397226589936555516349287740520211807030542048793398306952020460905710845512270114347466400589338332351700353429033716967868367683008791922074820282887505506342260862867945648253354575296855942556564933942113217435080713461078630071942164353688021910142749907472570758976471644606129876777138124334658363637952086120828182782429190900598982658987488607080065988384300969304973681937240833147030301298212620005334449182053533279530576646557077990132612126519629717236631586859541292708444345339627904869577620269642535483683552074871264912279016571863506460837471951476436459942525056130219003607408106393980136146468960020760400215689453037305466906306597634354314842292558977988100045129484515052530480268736125323174007488364454209119205247331538775722567158908753263435071298196331815165996001387060701989421471599975920327122738123073320507884529030956659483298149492489407942503277674456447171696713664516791199362966730349022268248277336173247523412011428175985600181708030588871116670124822563885838751806459112098858188964800515313683090291553301315809256918180542308159808649269147314864485345460886148019987098795989314163261707985041059136232931512816862561101532599613332987242181355923374419332416448887805071375006746952827452996386179299758432557873414346647002639902580817835440143724629748585825953151515417298149171413425966623866271431646832206757351188918487079088178266552755152932675659513404557614832627399577608009036414832698913066662775464514728088914175554644804128191836806700191669570277994693386662399665401025864584487741269839967633865679010423148453697341861594904909037038688059728934781326679669673658655351982252757465423369896903042498954632213883239252022086736765412737151074831285629564065561983489575526412573037915400875943765902037941798875831245447180233418798101158338994929256619595561264226521001147082164560597223823106277413660150668205075930993175928855097826478145995632774433862946196036450358294195859128526744751046447098413302593324077499624033749265632495194681252486698976774524758147443106376071403418396446985407758342298343029966706360436672563553822418733463278323029068890269662574638357713223294680580446190134636431847511997487414976034589518007277667381564415453407120681836213319448747180538968096915732127715679055096025561593915048350273722648883140680716947690502245951639514657176255157219933841356551863014859135231149844124755352938519880979477871471692560275837004547657372546112296306934777847670232470111925543106175494309879169080264626353848755546332995837455277988231010996903136188236966993341609180390701504702042689803976490719460799000964211253737238282960648249859330454836965151169878269297078780662120193845409253333776078665515133606358380671517761155737547475222873646563130322175585064095645826984020963248455245335158557148399737220086231372732983193935361633966996456268557310901929123284231770843947187744045653619417905709906766395379817922922461151962810016724525104816040680311045911702566192122735200339860148076643993216487750448311945331078170826577559799385707264131585527282599373270624727525028284462444653799460740359105342654231887603166239063075950858538413949808044524522986539148916193635115115144234455926729308888924530599754784532279172206042717332883101830729939914622973548274749913161593250796526142637562901869624478118179645427923400559970925913174360313730613173792053507744579318002510751221551332784495148562232528571914972088873413162141213064920557048319285696496292840548793798800280603444701557615983936703160845416016002738925301605627070987392356560303961016584057561427102036033789276680584982632533935189314459341801811950187383789730053579380156988154887200187917286088638727345293136000474359361051331458767935345725330703409055725901168800631455507936164050857173936991698597745622061845444560322755145499392900815469247636371849540767627860577927683418642130367283061792516658869313320779272429837917973333830510347228367420086552532118346597110295801666018880595862025129128851358082162404330037341514956110286813732923645819375700483981430842904830918622242804636990598173821523873627357339210043931591829179305860924789342527951007939362279050127485484950502896032551000664304303693916773482973307144710473559900610049540131836784926298099246400289823295397488466162561417588357376067722684892617281403093335623813308727240736189073956153888595828898142420419323019648453533040389577481596803778444483250628041569004802613004713708084729345616500912883255243669323207581536400402691725081970505714756507880423060148725492609215531468463596604371260048308284940115202025673125724767933463444698228693733438662318664072904551596828656369372032331778930392773626267303249980263755431193996807888086549001836816725600123114529481938533147563631735937254616323581484912744403630385099189251839887633880822680222412989589245026355429392417567035289397639844892121518521790236049783557768723432455036480215754206907720750935653124709653326073366437134400068247842566192720910989741800562950562291709107571348768438286494907994818311858915062194920657602740919377154494994113490880002291272291872265820011471388812152608898502633264168267584942433401630234472929297482630077547158315631844213895025084370892842109762784169837768769751756315842984635736253551087065536287645879307474000770452213056382866505227221742016047928383341038089337601496659342807056742334740401414739239832433918369163099683953809944394357426971363983824118657536441563144084307692915076956228240830294947622712958987932379206640480643717716073617213248104181612879640112425311444720519946859726936351302114578604727843132071938792727180028219050206131486630405557916896353272276377747537873231553551598052287530155170957108675782584091003811040268548423594170236641184640722157666069808700527592468908465787594005026948004564379587015344391183423630175875976057562748818476258498656503902113814788998574790798297367550136943771233513294808938769601671440034594509781455719870947617860222952240744156281181525392682918274340381523896616045439132317479118921449887831485929633270969454015281287888178553327769706913648675830378486947714997816577972587468215292133768744217398398097820940675228164245261776371419329202740412825796818993467356438258349093545692476005002711632158039131853034831306459365066486957934823172565034561026904113737784826439244797816248402311555850949075207516343959751762607943189767020309539371082027540962394278723803106313480006177300372596179168225544476400261251380153439830421058358731050987671741423408248655883300620105034360484181432387974835648920021271361753120419550653143884807341519246454677813283037606795399217539116113048405912815377117750697030687355161395196204115311306961526663859421519598958103530763812231389370603663046146305599304000257730289032808724271250260468095862109947055949134820670140331195141679477608029722316388369748781340725165289020120364386654188291843209166868892799980054274595020029770254587052290551566573836479658007179700327890779508341573935568584933222138932988562122643572501135538206564315432585502004179149859514599914093790218796380359153570739042701255047375674477159616857904342626669470773760036236502268849724076763654598093483347946596106156869283409771006366948778802422016789325519300285736929185696221502042106283946046043499525834074521917914294096907113597362810531560381560655451659906440940058219437987595200740340951220842610287310188885459863625482921211917471121031753812876338911451310045206142813330264506506013614796118322153557333660990406664943902515496557760952104857823231389162275458529521579204512518068939162997069963256752351382070041354653467674629458731925285108578601467102974232056659355946416547479121339617085592004127758346237041427132658627329512414134896268271013259994878476416717302775170014858007599658311626367223799889777005037069371981296486649050509352629961243729904866708563474458988922427989877830663948047078197559396952353183509618756677741690177429880492438535321848551385571290137868217740195792160150752515584945546549951055829332615186537439669299221887571642380131083846912775976491507043023040816013386289792607404910248643314915595657753966508464798492145603033423526184186246051360971797117411056033793199991780693858419616384981248202332790921417005930486319466189798312773491892743975386072635539413381269677029554517105433406615545661979464749926758267084724397028306293874153292590898161964688990362809575684221167887645614689565517707322277255593850235650867311206143337745449936106779985318422579828688275721888363446872765363211680172980833158154074968661690113526256862925166475278927084576454648959119615919650970143207747224040868662252828076212803802396629480158853603470541321469320551846303696449403243433856895295770650371847649971821067357214211216804866502348896157114663320590402677402631696296430781686941609318341373881385316448362475102121383182071273472084035129670805185697008411454328434510049879585710231680489956348906884892003365928262160038669936501751711973070975826511629807238706267369405867343881033253814168286900884391713490849493145366362175319537743619671585897781449576330750547462395464885781794569655974581024217253952075175820567366874351914100310255819357234535996071474660675387633525844503640048790197759952701585901042776253915576904671076820224958540501920434141215230862259809243022882341300437499176264935170939233931696310662037521590760004784041491259214958585071194286316992363217257154777120524064438603587282361062219920284311502011190851644625048644484459083990306953654989732999249385559008229900019568266171697631686766054538130443533846223996929215520098097099475417821176314908438265262770526206443810328370876245575512709098813100042156800173267821634992361594865463275546496320735271343427575352227644668671475754625059592530399350468782015574668101078616872241146693975049392856585839161505068988262138975023983189962184100696239099020035869658384279827114679715154523451782333658871505893149525157418525591396943768206130329623377801229394661428703163456250596337965233623847729145201219906654375902820863960883491093272021009711957109296367661212980988213640354368648915780340801406299696675243247184993332143071596751604177605979658790617286720313865105548432016448181636739570830572895875828559044864701114505592197409368098563670569846928439592750424929658793486917355644831414746438481037840581594363293014401021962375630816520443535031258714888443513501296538262533174654694768036956586374434057003021914989467618184605477847457339656767498660622163246859446369778995239689614635539073067559731501760431240785779609774635595054053583099965216210348940165587287288183770180864776689811809411964961171981532053368621466783974778610256944337058346237176624664908174357848141866764890175689466364254883241272074517662916526925396737602085664875155784036198481781678355220845856942385677367957835121929649960226196730613034384713947595798503628246898436564773816911920930070454733675182858793597995925434940971203740107112162368658285790064089621658691920483507468337915838500671191310734966018356047772987996700560436518097949736054439442081162752647498535874643458237157940630596070413058353248069638850212514996498582890261103034430872842978143268876443867797690694328226802721314113943398116662506408255724026195552651672264612853113601204769737103989419164898245213356601636806717011168604048721883950749609740911320486973183404252893706081876289736426460259316315609923815398672521524570573783210170943989906435377179691757090319552340061856413863820708953828403674296551798191662426835698807037054337039845319458319988046971276057559964511094612827587932059998494217535153682868965538128971601858540493853461543232334328872685681227811725063528777638389010873227451346934323391647926282465666021324029811874309209761823709257190263600582465346010694808097764368657178650840604916280097865161948405416442725450741526315670531444619969301946223136390359581452413991985642830126900618989542609315885136375538105547882279140106324797892257464674841484526278994246361159251752126344285264482176613478486944534654363771588328251704790532225086853566616527482890773279825988974789272815470970310902906377203992395317674241632291491355775778911772401131355942845871882234532242438448255046981627193405998928385699603783917076241229897960806013853517401002857534161949217564362478589449573371730308760726299050839885247818954392901613589915780527386596643633790934312706301508064079140735539633958089146706919227247939656054668177934994234647048302461509178348102729713759400828206470339905331522684921803587725020929225922454015386269624263194506291568571469998849762455924417807664788977918496415287827657319689226421233996656765880196424733549221285640720985946185338634354620049929807870749594109305027769144998260877454857921853418590867186267947618059761791265736533809416335139629030544422688007122928196924586706449201160195502257009443877785250316702630226551709454556456696728018450674397069439857431335316110531345599193755871385845326813069825781676535982828926202099351384831075605015621551290112600579079679853311829982308294872718567212787477748408691254840305042049329752278269541804829113568883603393406378159190114207776223818861062641627995410732370570519397993666131962109999888978384872773416126201661655945558131020913212241878605520221737341318120774176300242862160118306664576749526616979440241678274786017178823593539986449011102281547232449755752839406153505340011943171352511447095063013616411460742047204479646612603037200220292416385062128535006338679019922751937313775087224688735612089103399888618330672511548663605176340017584010500821054504351043365660392310549164637932991283753722974039922657268087034515559158540802675280437656861060626242863354824717915841449457766824578278541704043525426425914909664257076107299606268947700870357953547970378079299141360885837171073432138133860201214605888935740081189299608829789139068564929174015888444930120170990319605297895586801147483922336796688180504650086090696768497157468136234435919315108614377846750684843918357423253734075931497129325850725440682669168302708165702219571173864518401040094869231989674782553990918074848067138318497116656461395046969197999152949220048611490394055734468097407368338703692919242366980859732945668046839847536087219253225694881006638625331366289763865425478037168370607470168163751671425835807344936918792912970582060009034494776463639345792704789562799540051312014969510627079042699379391965585280934816378837357943761076150568696384758453403221405941386416840423503987045748641298839428958394229641831947040957851599077475893467417959900620726831670352669351000516812498887499810950130427593489526990396627933355334171061431678850601210550140059807583567793872798565983412364468317920421392807671750422449645520619025013037745671329448176090775017998719467628190739724939762367048163966933798290475961144630855167052906780683598796354094288289857216581336046564858072163306188022192740163975772823361179137916407888490133189101892409025041723889935708765523229026112638310071860125656810599251292021190965500971562808675610783243478358156903414299346946835206219187358978644630495501438740132170811849773309348297809478614239746597494773835344606983850508241419018416965596366449318534297891521534113471212434450661602237932230908163199007628606050597506559971845871027002613328808421313510516230149900886000871016951569101207593063384298108260440095141290400162562313411792524817695908463283676683993906367647888655988382534430602626737922067618695544564703667391488174335327717961047081089791827615104193675536435641765778428009042858854370777109179650187257327411242331147142810023224457250280944798569091541553874214631651560252062516422698414811303644334621411265193225113271050189937334312807149377620273418171564207964360748762052691526483400160970943629639800558134360074219482173716165415521306691290827898136433273079835224386419190861564272173867804447966853536373976144219717495752072205432985344748072306888094300044735398077042047949397074675680709078891653497492829082777242634011053029283708356539902700128906326048876003033933998678761485407007123231062194866686253137852982781687148387621756650063505752462301178752828889601431925358614118074067606336386559783469831066977420634005178852808192563676312754761113649410840120295759394387240829829856818142309149288154762571768233426591608357316478370102941860970227108539239293502438366834620173651514712374301572866072229573401114246653057387028039521541353016446482574067201394423504588531963758408525641570941922593446373413704464985066297185021999060237647408383610328676339312977439516446144550547634532281262978791328953218642330529787820300289621664325999457875668325991195018861821697765238030379254207832229509495941235409776024741264551885402154221404140664567296341071068634166419731201790913406116041518363165455234557478900568553327273769562111218414508435892193052735741632691458921122786450386773496998028184154572183809894269893626381525893943337882136985167213185392560962073536455169010361361970687111733413520088990246681401503161263406341654630262586375787358999350853529043626631923419111968172965332706896969076658313799796931733975662969199330724523097158476452474874950258193548719348563862966330494577618189835701489279281681001762605272584370006210871541929849134970945987444713314279075390394741692090554843324574708206492707227480364005171354593141642895838654608413785191875317015769065810163553230276697271688544952297007140963826493641394050345621268483094227490808591357554936111509442606229663122837451183926300784837933853523434066135281891402351473698101517457571043191203734365300962744292678890908486568943777786648108225307537956438012540949719531071880747928195487883630981985421466409194041223112285299344090647945175838373667178643879933727063172668293680941746845932332751953550949473039236486291632394269398790697377711377248346190716377983377312428792854598695893273836213433555627702033241342065542286577340023335665671522933560961928953316290799248714150556022067223664400512727857300224697207938963677264674432873514212794002224724257625117748515811794494911488955405755376271533180072768380922319906555879071555488664920631663152945785826175822581056270968532336874300021095385333566443369478292643768038896335182093442248146417921777084142545267287241869863039280241712352491828018067663785349846604979372284405972179052610149795982720136951044183446379515722639545555822128273078814667938783245459941111576939798812260972544936174878960553454954246669642631841890403548762289189508976504197217405480078985144761643838581062458032107965429952712835504420832671798192015662956257659801177784778524317551811800410317392044735162056625965153148082513362398859270830175930119590636285024932133097336067192587510531672726867308443951982298134581514444206373707806789816920027625658259257832540840794487634428609306568058866331376927114944547268632724475887132444215445191469149673890057271126274358133709690168152153431801176883571721860223192303590975356043351629827896638234856323203634989637975707738009068033482544427338878447324685329778329373482229703672001783531439727624269639044119026624321605260737331162947898320605961031155829397491536739048319727497605370261191313869154787371651115820397337260824026318564170279754619480318237844808928976985419182531050988176671977256532534036794207135194879139526422863927604285351347753294144331520059003678136868030500312195110196366660459186139223056294541869906750773318656900589396726270431123140938831583760537533161078368761935619260545827064403516836683204591569634211032401150452211651886164227345481201361100966758496079857897683172668783194038541635534127068794989992054766481378444741988623542909114091947951727727353440606014952421995699850636072462834645202319320170788782982519817484537117561994462297299271940000566829057885597088690235623303313129363002514503810669685779597013388197494413156441035344977853671925591913536218645489839319401114905748962623624798625211448579081817985929700373443750436956286265268000756221804010263841398080782892279108698058013531396062885477200322849154372706181011348909119122971304597396759303132982009224832533293596044014105725919941471702354182403450277471092105986741880205975485192170203585538799540879487191896762073169771543555264451013933667136451701172245694405429038638750957765174182569291346212316051864296359580339433401257752367247343805884471859504966457804362119928494865222856993283791675687917324018388843994268805661523084564680294889899629941944916491485743909606197827192572020351583731591538625099706760382041476237908057271932884411807324497818483061351630366578545936919278162915943000101710767274832090889119780167958674457687838785716220600799807728319007043072671229608992126279000444828946234968701662311609021973788615409366238041787529562759647636242938920193716532830438130131426958551339158795686171491920459656330338994720183762505779700323266301097423587328916678571014502558957748561621302029731762438472366545008310994624624622731724948127396159851434886157715869287227272344527126798067022644631915259923891914299973359278857552178340601265741433367934329760814075991867216162631969590021559377224245237603546714365086735321357717757887249969253506850916639487298187784934835814709932114684391791834868261649980218582119857653010774351912666712244171005082888010031750608318703883244571860180799169420474998729221719444884982748198600868786894943914440248667704563290425196730341673100572377211483069617103328443714425424708638972382712544891711054997456211264967599512960184757929190845654562912075792838715310942620407138311581463303565616935623377321139755191490552398611567263501567363252512166926489303093244518341332502671536776266205686327180352371036414392570486918481348223091996508573188632828355443312527552264019701939935939550997209671653760487873086532316498446724636325268377478829234822382494351388243120676211691468678889437339037127220599840010794793179559220053664959989460834798285303106831674860995757489212168833908108049306285799391718617415635183908044127311929113759707365286588184332034019043077068353326576554498518674048410621164506048476282510027678191671901949072281928064716669608237945132032592387570522383406781884306787713647526123011808928398672886108672239502523580595274370979798068485176692155431552607120958490465662041435087756048464111084007247378703825111969036655425460113559258197861252045256673412093079585890681397556478573411175809872029983299647017308237842376574093484167763748768764318269204469070600175580318582079677521000471446499096586336127717896854371914125036027196561815262448573822067992995041806745626210271922554496988792813610455006297830110190699572891660348703436148531579719021816743641380518933254172227667972372159730357693963056910185713350915686347970254153944482600121534030103087751223515967380120303987765226190165399062686538951588182799402601174187871000297668594421768233520153182333118391960580356909822773635827745274012398302885454350340396803568118588328931282708040201161942549248920246408965927636889151897495507868180398570141137120440274732607586775536782769455626577572615962547972053080743436531704517690889401687516078432010827628430397957572837777810874194783405579051022276403357088389352446081804049255673546734613794073594046184802041730684613914282094173531706615301543103949837032278760496690901416205936394173691065048008275856209404463900515455016429660282534398309636681563423075389081626693905823600995478908345339621525416161921826577436733494216412709712839110889218297460013926595555526499529271964870817016969213361180870467633074480881662438499498456763692416894390728103668611775505121705085294319504776891685617610174740522582321010253474246759141372804262240315038097122619461319445972636310012786638467674651575012951416042451357082725331690173216506502101645168428693276376370616957758288072224162791184394699623794591787974620172292583511693809970476375202466982363222996721659171845676343139487217364884166751005325754559565265041865298739717462118942992619862018562410396101219792100836048777765171230195655834339085095008786043511585353460105295617322131134469130186689325969203564388228601661162814588650595264671875251525225110150429123370137005655354290073251571783539884523248135108454721657728684329538689733766905960675667470829209479210351114969152023296763525833046449360385767533577132687829924670057296727985686985673101112037672071094355021988791436359244971390082447188920595267819865978561047995944728682327905467850518482252552157703425802707987008670457252847379734984329914757767324436197466589627555369713604619227664883704487846683184205349955827645047513729073151752843518137571130191782082326715054949898415249118207076212361715296003733522125903950359627545665849625044622065582557971145722548856540396112319543577240865684001799180159051810388951383744906197268423179802380635623690049483535644093162767161265377650121105821251308152159688857393879499144957078031698719068297918361808071719679447930836236913812671297990634618635683300119789706686854378756220477685062445678116410494752471156247641607500005274390607291356242055857634826082125307681767569997956991814554030311137091653400551839514138892565492194888644123108946622904071593480920281913977427819678220808918074834326640354626282651009306503299688178147622706172491277472616426243292587720519082549767513315033569146327566268592220656318340153045523861032126811677404516673272717949628331117656593580978472283809881373752124037925156531627637305880362331242933403357937143370241787641886642803809402603606705381695038925335047119304214909742402474617209149091783751374641897066599327158573945205851722251892465642890938436251398184797852459595884324898120096074960205132211103740245751886553777722309511236285531554518348867137156570240106631273062272167225507470356275373048290333158882179877412440410786414570314997784156332470516432991423462990875666918372051388557253920851279522376729923101614036342658274855302930964993468509414623728395448176498846258724648240902813037103275780074428386338324059440929217150789254717470809429525492982587769985201855062362277684656778580970675857154185688427404083976740041479001287302793206150242682373650185581388907771538402079920642831817751007686821027696634137580364845337600342178022468416114590703249436421515136954376722026447345234884930324007562903511124203602504543630801795220736168205411733563657764832724141264442955649476702596090639705750149074654965788052711842433270852676405628571893467508572702019673663105785597810110626874033303551755647289473761443862874127713932859329877030723102426213030854649140562812389912858479620642438587217095180415320668314006674858596835217205016840795463339870262005532544081857019458740515120010228222030301379272392994169948129028392955671134055291599383273427607720795533636608710466281812982793803014018337453141115399274385397798222307693061236158723289517163552973044911502583707188402585217258737403857104125791283993724346319698188237862619950175343483045558181176977847977601539314488175321617817114356308464334751370579175605047379439022127183879086779836408232578385396741956754222027919371972798902857853292552031496767017802703299184911873426658839964371364791131349867396690404575205952733636638264557993086568367518978108942357446852935786017381096004798380114172465268068296075809764116520325237471978173893415173823968486902717554724872278652320067041216276175858659812684296716939197763934505429435964051393060527589643991472413181517199181984053015779172402988581327856737826053292254537392434618871696901665700852123239172315129815372086572653940929209163444307442591407212847916259501018261986643272537672227919153480719722637874883435584781855050358729773845109068321847387799286313940738683845068549310002193811222341036609742799992346458090035862393738558040464399024926199324815634635013168219970377779211933416704832819154279363052920187252575924690966061395259295263927594829156727323636189715431067809640170990241503595965422200509370017787540553630173023898904103327542088409931200533461874171843902783299506891113346982553063208072487064704367222671706016698464317269490220286699721652190426122906712864071512253786472853092378097616586022382835641781423420029888508875788477967054691029584555281083902535931222064632849555833803628900041473402894363858119509686381801578748792591728768608726950791053855242651592846936019284537396840661726371336555177817144288548090013921622351239438773420899872699691900679511687639744188521080764709023625441320856352514179928351308078962726119945291562346167218663797544465264047881584508531730456762484576127454129851149334390995227914381379896591577440800404599215631047009237429559083425900869603105424338626445861135233581777512694535601574742041335551233415412891145757096505584480972247017337871890845433887080813879386991475931726627611742760861848529886894116660972822704560559581045262424226306227918797163576149130115613155541476307997547163021031250178769744300561922203237936924113860780557538835780172093632996948484330220378983965153047883740928429375467816239268317388542629593372367805342766172300396436132989046954983816164547303886436564926806769019936631800129001668562568719326748971849249338029013363746601578457071721437625513785130124181178528717358716086665485339470973982582445593958346526339985578374817709167734467586262891073174908909403072930472826204709166933563120553674495598717826199274095049965144213479522508646262832828471539895063912881000428531875210018741650987641817773180492480092790977690220831891664342459701708736373017004172507224965723255082757721777662288352124164944034849876894131996985525125832683775149036373203489869018675543401672233330473720286586009650200838582563008349844154968077595268561221415002797035783956788225911236107434773654089005425559132976587529468968034868267574389305121059502889346442583804134718985118524877593574566363092678246055467540081744584332819636087791566698024311108298983795297484466589457162732194501274075923997978636854909040387684612836897801884017512074454020039561008291292134944566717643480820892205536658812449714240185176778467060403392569875218969328181406824567896724536128914193011927326642906198917975701380850374592524956989394129579025316143595969451593759865647138266726787354967643022790376525477747503378268229596856715394577055999757101193036235215707677877671249667967347034844430768187396134243010964768940114264505358135584960079410589489863365040208161004357888829352055121257870603350115473143882017702019228435551864877863327828641905513259622923515606975879570023066789896083286688305507653628063882116281517415471110590470800498418478723606378443794054970969148379851796604292584061963586754114315882042676108265615093778457542409509993245044815657230713030580337635833083495121037025608326497556638831842623758238362437845489232996163852713634136574527427567493239329882603350418565779494395300831426387524163055136987020713341658652079704394945808856272356813095669563417631978691659628794274300631739769504608832422585456010465925625588740650242577688208038195091362042218224673584466152456578342338901378579231502919590392180134498313945793895332473157720045810912379464310521692460303885158889086002057189224782100286330578596681499818288665098229216320723502582251426567714486057091400963170042193309447831229115841767589701642732712833164697912323894168303366605796958171865665100884067327013538377471317650396357010601589294455970107693261870126459696509602267129324298653922841265088825178039352331406801671600565451281151332654808832796252352891746557983090750143861539026815209597977839826464840928062183036196240172916794435255107019838670807005698011964921182900228405505106990708744137700650544352598119643865848808378000118355708468438375296711834358144272912772253585051026845365146482894178166289529736199388997492960086661948175953708845304798798971576749899102378587422571483983348023451809738421284379032756738200158626163038583850845293459805402604722483553075712846952730916004394601496980736360137895710513999090905166669944931783087577512360578838107897976830499450851364397697430747335042810377389506971917635633321450159087635844998925254831118677889496110477250734559767406400307632504510298921207189108601670501877967404886948901101849142602900092116099026599116939777454611937734948898021222937929488980439327577277277534526060329847292040985694832759890656962253153667152244191639441364296035329818340321474711015382786939918235017522133457132921712661345648680852589818445110820394334679674451742869938525058018193010180448467714983362450632204117532957527013612970249722093415147801317485876372712852976244089259232298915988864148882117863562181170979264431860992266778310321602080601183376535027328462055311450185833855372866544263596104946719222811798345565229143314477347786279543768656402124177780407107948254645645540220965240650318717556997796894851721033924046136419996118884795116020076917849985627322773961609300466290736121617932325239111571006570997685981969941942887143044327582597586252499013928073430305748670513117792992147107504620905633053448657223187974053733222649160549191143425483593781549694767523121176920338049247479573931947380667745367128348673453222757617333969650167508138363211338511624946511438489340882836514102529294180288018562695570702516145013642767641809974212965308661209119875061956206874308315269614290662628241154293503578627955093116270895258643770428631305983234359548911845754251797633300976172834580923833332643410193768175325765606509180349007909439592050819091638263377146750787188583625411253766350347121357185300014123800060417205442723112659554258901975454875440156869701236939317115141147992636937956520428512285018629977406039370833645483823411689903286000419193273255193280090191864756307893310713750804377875189510887488197396696120074598947799894418741519196242320449553447524535104249164946863520862444496496342418174201528971864858891480365662450033990891775694985523798616323288974481008361501240322199758773381690693937489172404060483611638958480645936391885495788696561945521935813181540423133481660654462650501978652222470158995275463808798595893831637651118462527454740996227672708732303646920813245758551014238963059942415038724457589922001062500267670249983800590368423452493774037527010763985437931178933522184976796080934375950281249720254243356881399999304708608526709987801723584973097696226791814926766915457370415255090038395179227286286141594435293480489868820997215054453288928039762995388648804307258965130646701521099361873181916691395671053874507961564157113929670779104777189338302780245268381250499328169109472868402390486675461444791392003088588560307901237730151627259714413893687463763366041430502331697217384781483821437685584728317107725180410865472170473202750514679903800947225744805354021025327698939263794498506901460324427774586732896638273292362061633168527393831828408519365162976771341497559386294344243486049739135327319554564338925549579710419114739170089227821947531452712443521642822860145923940544742456468716986546447202226976542096700108695846054607243613976224026009344886263376537192000267261012237007886742156945324099235444851156011077949856593279761316543974694917350274105032186652094803300882146728177879930622650406555350232765845458635989458484486934748999546444053607619455070485498111205198774492865341449917743900315753070410672056405669754894750993480430555307580161845690292130953797913746984464467945000840353234108045932793829539457087516059157514147065006721624039116576488357424035105187550731144387252905074454839471446970531831748617306621358552108480595142358067491715121246549592757168321376307331516506290223178829532438641739757725412301461092204087525445362692728606048910777898953085576728545103814121528665986911775664926450441161780464219846420501256623294402971775451212924753321177992273957072787918966176089012880210173053732530126797249463829781508450517038498545955863229465946406122299569299615520043293171253928514569521743885100319289422631069511156732592144907388146477687144886436335023483560057300580127263003802579118080224901850229658179314990228272542728020717256908466865692304067774743683005247692516278416628180353208795814146617932664499273634267992613984569165935537736678323760626997763510926420041249540871179094253027860649727363367024498080565688829418845500066414247812690997539071447786716992558008521279454438463810448069154215755728577528385552614010600033948857064714664134313285858994448176319430028614042545636091954015101016463223448783028542824797325111453908252195921704170621842397406307078418675410857962507612442002056705772267047199659913097193452645302951698929165367656448863142535429128580586302532635119619424266689291926621379642181509643074783260554114343682091528961849871522790088493235129518052938714533203878421670447249793812862324303213116685116509962061451121116646208704427910874148801344637843084281120348060237168851241140236920336591907824968437098141006900664987328731895372619821404806176950306942857255284214037106198643561245423651853348693916029051755398430236767345323897447494144789460893717334996687126523094540445954548219614115464008264648898004531231629763731716751055060783074422635296054811220899079222194227949808077321873754485822055231242218478803820273966522620690932825363359835259428846458720364159088792975599370929472073656315386712559410750375105766348817631254875825541207510078384025640202460379596879254795170407044290765906006163006163434570781404060114414034978672075402742799281626944151744435507045237422023294165996250989479929684428098822869132131131547014586216865161741423094108152018233514163824198114079651689653565760355524395363071587856857048661158400778505893129012957832022225539190364468852197485594712257131259825764209921899812711460631613386785730733082018526447184819967319913929658522839451522270676600082461793891869410702459567653449495895490811999161115210170480797914170405757713084376980376517254270606512471948994898142102734541784375206819700896996784801327243513112719813451585790759716088792215130616086535652256404034497512710707204206290219411855801407924774053734471831769241653880572604708481823631242208666690751270317759323270507607694180524226269123013820650293404659546879589204517314615779919563908511229789099695948306806248398536038162087381121136925114865007801993435492787705280080788142099789792245049334577940672661707828402539593354006136654641377649613638574557036936839658729022876417923781463381545379973687572900883627701235148047525170295751739527912345094699630957440351410121778940726537337780974802411290854664672132156392776468706196587256365268935181871480135523807573176004400887881954707471958355085395775845250240440883920463208689789021407631142149125650712301246251520449667310754744103289178686101347205006059347756728006316141921281616098139266431115268493271426843061471416067423066114559722649471142852219435033567094576975848743191891117642330397983987813750355207185913876606525295932818355934640491063481215998774528321112223810110798601886994554661734122857591397396007980325862077272799182456302093715410350285523720667742156980421958001607172308157287110990506666389416016994110836737360890547684561239678864723215797136039995454602903987521676638384441292676585074093022915284163029426255479228235334635536393789786727919067666416006771933567962748103379725308367882837370173476746491578369857749952635662701495435220186773796110217113085911847446158616024155259914373877982931655857734451975304796879904939638007664294230092858176663953552753524118795293283274723650143242829663872514319915067221674955419941484947715129153854226665850687431068453555407485513566391936472101267999337701790802203843785586718210427988487513558257082203237639147060703895117685168306540982003839214923364080504125556260595196815367139838527797547174972915935424745287094997395207987246721006951654395629772979406928771242949410725581051392569121462204648704284126091631771551484928606538753255740384723891516581723859817815435167729134465547910911496395278457112295725110298917926898227013502228169938095984915244452195246073833330617443277067632156459832768829192551893602040889745982126678018809370034069696299144433540111709318117161557426149204380399286161240970344518676420150911494482247595881941966942624234268428094764880551738195177496643055364911287905584290184922805378576119018293471303169066869759974728805900561639218555451086448883495988462068737310479566884971790038648008831228517258570935343030675450462244862659101909744063047841391744431121475357196522320161256006739533071106649460090217563039983679154741416703442514017257921907929888053518169321610338863245867586379427854621807449084428889365815769064617811906834287131295556815253985378984570281787660145424047924630885389673975827996211963403916396473388921241893452377402669427256816608968451697147649627541722907215032171411405598392348927836948882579934522532681757949148617244764143061583888092639433942718212723631444630540442971576390527798283999575558173060656418655068338929072470109009990601766867632439458939246426810714131926857300693007520164175729079048390179038436411542132044539870092766639144921244358369558344842676095544328668027337946599811037832372785636932253680693559653604273060194610255464952695750867634854866145922769760677147122757173038772470906207213196114232872838104456749632254586282372776048163748599083575283755199903077659641330979448335319278237253136682677899900179568430295212253849492283758090096807929112380934483944528346383339973343805026514213466755193826275397838241988602802170380304014111782759218569483704828570521270196790815196320050240285625166163612429753146143529564536428124464236459834244207380609863143039372518007752332358644751452653242488366759770670787565675572031958338253128959232681171455828120691843949435330281653351934443998816118630248987264694148847105144483719689827466411041493479732310482907307837246505621058096536065351706966684627786932560809962573785866612380702104872666366524280084643340434142832691227776005125524710816761829069653266195025533291547702257029778173892760629751846124883671010953310111648906442842442412869729809762382639254748642179713037381334660708947077096590752513585357789200936183301384477258529567134703378808623436909329598734729429688128541948261012585321869477590442934018935797211963895050210129590462888193393571552916627443733978325706476300755491201781969101840009415920784894282040322788059306846673206871398708858538456727575798878450835844196703957555465384893048868953977890311745587378786535593705772370766137607321275334893768650804886846587883022048204477338066238070586536589552367539253305222489338609945783074016757714186867283346655805064746758727198319492161061021288050254116893982207355894169397997575320402387336832504002310832372514802295648369046131421403450267174764628664766493680896360429291237300856818167723684795779975900412054416859395216584434147345924407866098561301498403748944160859734241037822000933687855248724968877599601629509096238736174387658792316201010591475189355204059569247383539138056139895863479800655251649847216569258136037139755907062050052085692586617568468886217710241307178316280629645283784713015140779213415328044734849688777142058850228870657253995030325285625292769211178912975633729143137819033473169562350472438773844497523173988450969455343180374330152392955567581709564246900487660522061008041815102202639155938737217767736136484338671669777504339429526995203826937769616461466250943566754350078994636220952998163508773390252606406444874914007252326553488553809218512336701806079118527957180197651725631590592444298584703750006866649994400959450458841148214621134370318904689496589889750967035928353437255772391973890181598104028898399777819076858646930228616452374717257862535133362005432113823995956682835823835831683366921605323114360481388867450817419127174414630058853064866661324794708759002902140675050413193720424678348199872608994058158474211546917821818010440375278442707211760356037229125815236210981821718057017076333817459789526699800348832824731923562122530049377698413731201532122694367224715505724762241371366102050588187284101102857749639723847937689778421241213728165304424601967407642419519384095928053202144509345655051335748437358876568064108218669824877225585144525127942808753649536282630888670714642207371657808321213770368829531242510930112387438257311299039799124260320716874526606683415096527798686534273182121165301680134692618046816354200633042825755019163458484556589206347079284910915391544629989948751796402946763183071136067232248289590852633311227608546358719521514749032815238550703746382088115805294061874198954035370804292218489799944509347179460543425015909075100241435068477340247387205445434383348443755220246232670298174318598690174874237875577620472196407213868147992053511356054644658889841531997461822326814954314457685337440837254852455241726818522330453940099201927516762578563819140326940160341074280454790608964017304916748090161997247603888085709945954306507370940228182015868859772237003306399697322994110497717955499842729559219216618879830841472167504634040076071004218485671486495928983130667173526424253909896411003627478648390960724539464196031649378900693804632146888274563238440007623497490936026593717205715851018263611326791593187818439762429297431213694388641976067982881194584778531528153526951585401851880506439365548860258722778406294199355466386274882739329848389602411133387069392271572443848680793412543177083902347644421637203082035288920847910732899777642212219581717567960355372322645761826750948766338721730472980290335919754632022774822303209394088553351533600461393147550423364292321746166555959078122938647854964670963860770215218465746224667763535043738310577422763503948241055026035020469251548049930619445492397009934916303799842818294264018393277531872816928388777809328723304738878579592076534420208689197302877705249484077742907704461641067781073728630850092147914484575054890443451010421859446253191044140683373358528908177132567829376777520941901503342954760457647594036454147200874651258714198033257538436051184862848085137633075789121413417317195380533171164033533271545218534916257979009337607614141542145473903219053062159977200022627877038695186323655475275608440460173125568004622103567374551103352081317411830081862124261110885848531550129128997004087368064781962127149267793691721778496877555692143251074271552589067870049597469103033725773660487715609413679400875515371957067548949325848777217034181131926028632831907151850543716271464589774916807305130007067153188087462661508284409002989993958488470842694957633543923707435501519276501742902100113433348672975808275724807295087284684498541507372179707873334975303384770285762972580038958164068957914375136831929483658417386300680232982587588918534958251069519509053667796240285558945929838961900584900901861532145768752242053174089534409045717722759886922354483425026548501533353748529821499314711977208589023567122164251006644987585116589051548564950265499513059853829642000625867281358943463450482539223773609446081180375056394701631659439691272092132924856743952978019242036274059352776857246522274343280011910690938720653033794515386102408123580753305360886088846079708165661028898144183422857971427311307584684626160868284848560829638309284766379401919138298704197964170997626049136410851658323049827852536277053634828316442016168922554654928280179014968651832436817890180138694369808860705714263856251904585749585383869857584827873696035224074569446594739624277767064339847512085079458350887853866045633811090211377262554219980513518924239132906996421782662851389313299493027773912717479931521976029231264262275249408580580938671442780959860119864212706703519816617349602715200372328331427777433010252060238527557549963991906829748801055659693285854442252386117441144796862798511423120794266847202190444199100355001953892506395001173924638172337616330029158934902359995483455460568980434377022320766020867360414337532402789744340085201153350692221339195761126361709897438813397551299104052004865667221601124281625073053895623438466174589381340756592005694984498346580508165571045441868683230573519165366161991990144848812925662965698209902372836753113588411662379077647672838365093190658125113370448658110461409654558963038302886356240506482492903869231089962063750862642226679164407318996779801284022186511040226749409054402599687993849922471578123332968911499781583908193111367613115426284065323801654207795940632721279596964227884994728020309013912430739528514164700821845983353776782298693020821849947686208039062499487438802050150726292073174480760145281995189223192187402828841245791312158045795572148204202108740479598359249957353359967317737803787047618876388761879716073285686014466904527128207123400945298683292772878449212641370566897701653426349791600937267981196752455858014587750408155366591179406473117763794643071617906232980851213717412804297929162137002376090542468530520706706581403779052578981840560557169338061281348026359327336547303175958952748997164303801904679438612602586770927711936347153854742283432374890880095083713674677791291176026453879367965953517010316737768385493805427111080729492171213740894955292360203425425924558595131426566547456504799906767989469407110944442981376118366900940048276728385655049050752854195965240619295441150993188548999627738244200599606380688025177479053869789973423436085413448568493686249119559322203246763529199150567955378258436997818799221778241826250162465434933799567549259816668072409630299082999088545154499382306055484586785379630084776608112561908423244838911060601248171517634848750086396542026332575815246329569255822343666230429100654280409990211392240045167430126552510486553253335009859247135801775026400499989818813573513832248154495071546620976454137180096017740813139628780135308019690680571036129270033372189053134450746113100971080463985219315249531570418901929860832029764512061296499526108800751770326849114587717725783786083513500581202881109926350044784623999959272681837409582217223628322504537382867478742340555143515171306239560246361752196802957545155404104528086648928852083637096038258247190471721591844552638186919029658659400237122871292085296201856690413260733126851831030978555605379878724043001738135364372716381142758533096390749348667494384895490648566885256312338051981031132170553501640642932855308015368324630845259162897777464496638683396479794065046498037528674102469229182088516829856698753354534512774844967605728382722456996259272458182025050026163153732232698751634867430267746239247777766170679004518202256033211074472045768021035410194449258564259422228697781073506648813965572670729660504339264017009447283458905343340757712100747371200897837987140198039090617492670839527988472348127184545114735889372839292784042655901123391434234513519716464023965679863738732599903369553007576406343508357824565241464253368133120760003816780289010937941796202905047284117557733608979325819076191687459919218077430747872314019748029500806299728051753217207208820152272367750001086251066754759490617236274120068259362959122665188268438676692038119246955603545869651994203921639569393951095764036003049375510333377115849002011345522999108002848645229505980629148613132295334239523646846426198405135403623399769562820788410874567857678598681196809623666793213042856320812562474043188005505514176548935130796807292036110013390269935433387841511198548318308961782690308965312528028136040356127118888695169441077455092673497707268068831565064499841891095908088063012221409520382865700230013714754628655000350432561800679722445897393106353663799207359511131514444379401715309726477233862937706856082262378215935605889778171489069700748119731917148228990436487939358154051237971929612705048751576028638711110215993129876694441166647352660178949102854030682819114595767784401553809126970975424922692630473998799026028345251189786869063320094957388709012670621300824223603339242722864312874577772971931155801477678614452331830473421437741028400806075380224335308608570065599940733163284867184523418536258371954706503860548937546864680122180157705484015568274468279248065067756315245462164147720556949254150296869332089342267490875282942038568807606125371778536041795203125692852625987219312137965837068764991598948071904184038381108082037326719558598838599738627532103479456379012823324218107834606158814405290572950153037953029420966987180019201227464190048086642529627086381691504238820093684027620337541698155491379646910042048587102133362141815761489022855073013983654557635432117377402771220205695326250338339580814303820634319402037788710525624367345619448421636316108682530739968948135832084000975852857243985801270098986121868099083409560981895630546773763435414471433090303726212914061481757184815695879159885812395450321097427237076774504596971388434633424794653165480047696872264066439661512809918849156168555702339526017709388976840467898269954248083795088699611245400215365036762757751216585409440128300461353442611052495657961733541928545911484123495936959366470169738514150323928942966071157584719141186044569979395892273396919152133158381589703961298418245750907566754350431512782375504564141924686982025741584387849708558611586703819401183707375445132463583931462078951586634559753836707775463753826670737713168059964282156440296584599483723104418446948231868856448808679047592302494035139288593350049417768039203586757565054901821534082201571822870704296938821850336803904032825261192165967171913254411865440336841914909863404139504039332213591792460573739031801295481277204657329722923816071011675776566621584398745605088258712061331744418485922161989244481681916361942005978081814979817284527840557991243767194296455437068859636990556076980487065720362862109333735634992623641816539895681818756210957835251681690734884927237171941385676084020763247398059530676324506673545500526814344112954733917375527356464563137278747172624400850841515979761378728080891962434550585032505699274103529465070077920632277397502265622092749431289230830776033750008496559480595864626220212896391521035150366091905978500468291948248707519476631580479311396841679910012071179831613778295748344728433946896134169819226436660919140999887675859765860602543680103889327494598646614864716740163787806973868194073315381510262307358456142850077874082982292382519689138425753407533000309143719127692044684789967692152189957515757631536374066888550485115405873414375231869687293216612252485321026165334827766610269005347983723633578849178584148368984182556327112381077912604800016463554227553009246727662830153380076121039253587331705756163139554035183282416109665973534412056758112104132312445717821994548060274474873819618471072914481450860413017697503078147990666248506803314656982836672549103438314148462291326756329921548023385553789557790991388503296006758721523346153760903628544362291900563734264730411495639206378890020560016686795553571762096051424582025353041476699308383171969718240203834751076055467444803266270605517766141518467436086516762318881934492387898572002828257034621908615741857045842493332576266865524323236773764535222667389551203827978474957380223645999492940047310191837505057100305770730540388763087593961549095085281007854430588411219520612019963823522304793950587088769868199178394450949962774874731511422017773778961047319654539247007803151410430223759656944694073084293814071261043284286993595277656260065523555006018261189954011940614977802259238490688186731315368277524501494004667560429255309459481969758065606302673385157546340238718639505548229338936991647172842681572711324546096346332701497635362915252296851691869432306106830988694993350525902203992102824051917120368024510376030954844336910694697524291838458395947221875971877160893178980670977894303496869331614901793931045612995071819269382532927855236214231413188960210079086326487558899900127740766972630400812045861024250488359052954188159166433837295332723997692806120642464637893780785387913769487689086256992999253012260755678194722685666638208728874833162004413196852590876335074168434831596890282304962660422910216573640756703017245748642940065865608889343837396833610114190999561401575422952420291035476138080092028957008089749270760385336642411613371801203219676651322683417313296380638850332793498573896643330021885871731088434592696389600860973625995768720377240691555267795991794384279073552341468381481991847164416875101120699194935844947457069353860187711975714990915747261799074579106875876646025280529770962478986157659670428734649115889074130146206988811036688135223432400738961365872489795827924604965805389673980516806754732916786921027196240383159842908662731257519962268613064933581104972090787995713576053702030880710905242000914676238306620605586982712154590808817165091082989226674112033061702081295298539639172235859687682675969653275033271659385031873314578319303555548434759164766874179943050430873241296972465466257050294706735017101570560269508278088046633132068201243998351824619666080705153112078453761224540710131209705150081276991454701926811668312929447138334306162431962581486022472023477471506991511761390840245281051728712766236237650557428209429452194607418097918331874564299627475887428581614395084696908071902443759071901013265673898841306869952734511293428308061609398587501880503848283505009722339808931393284069100155793549816544430795958870949036947672174909311033759180557833956780698925604023506198025594479934939714380660608050043333114247131956796748544743112456279184220334812336564550540157874041883452285431398293321267269379119247001287543991045161901310328703091995435317756194269301243537956241778241574127801477365111372392348188935209560213996312354455592124099678653685021030096478347025733235391005502906014098938668215122319917551686201248993377979536339821707595130968866108202334169577056822628727067887450254610961316748816199574164738125017995778104704868654151866643764433060968307639654021142890700650024657465889468611507477418069437971464734726063929976948060632275658523837303138296942503230897679091039496282857881128525122628565844355766792080640704926241600117590398266983135438286976631107995684843467602493212224850763252899752689788968129746838286586994495102760423469946794618088428931621654121799099350111891335402414024003397940889107049834569762627742713263211790164668472965715788197236838836663308613153856527672195232509507037199829566952998224310041876748145995120565839844049316670652707092772406363184768107191254450360226150447606712252786780401217914243293112085136580571880599534293493445131472962349930225435481261071674224731968098140868916697900342476138766954377217679572095415187570671554384968092633569100364697992686855112204159784765075115697717060379357402057464788770512812669988901992686946788154948528017301809506769624114691471896462854450990360972794377556998218195363447853944133440455158770141916708950930931376863474016450776387535285787883938803514632287501515315686240826360243071233342896318454649894961948422501544421712890578939262180045922090679804456265068988552517413745056136814928580332835783482021001850619214102003228810937861964907332214381350948209809101591154397668456987639398741476290513830923645733960141035335279317290761669095853965049527553949260222151913291708671623374779413202214684032275966447299600703581366775380362741271911595525023421937314907020611327786343391004206341928100587394253439160040521752266839019809922430119797594949820895018975666144766505683847771699978401264350509926133537684329338452817899928076616104065298108046122244557294588812670428353991654451326384778281016835153216461444280267203613308899105113566532224488017624840472347589177608414929975255185895930471927800035609562094632961280953479897954209721952824236290468537333188301273893102312458652646477255280077291205772520143112290401609192511665704413358320361706737456864761822555158115930814235144211723578198366746667463173483814632968889532760470666130857106263746256751317586996225207014240550863682472179055084902073228935539387767703259245295084981088180945317798276928987270456095972268981758605324360826807929418926712861305114081933097645200029823759715925315490736163112260578542845155654866001834272907996810316260700546415821283761655992200367264030138540758065742214355853431601430349784666928816261462901031562880813494883597008000824405126348631372302049989638395372664569497139919048482217631806944176339440428962345484617171843813747438634496958967677691895492244473993966802439066963804833014496334890828430346170860016021856432402176203443142580119097866184256166238105180584768212170575752197460782410065937363819468608769246699034458671212929657407104555338262543772995166726989548869049829187958425570189317909185160388377433663858330282120182804897832197742848694166955754617233935867921876167573758650716363450423347228736047417281706181652857885610781480918264884525543384428519676252544327090733003729962849465292790690637407673169693259941654745148289283578251121374141970547292715174031596264652684953567841561980074555243872462800773885822870864595449659860050228549830199291356253534097896246092232470155339919571532324621673579088130088732828032041848505474444921660025148145974671042236352769228810175721580770801536511890576441808811393038286231599846340235382110326665702033517027511276653398461948547542427957043135095474788837251539076373980439659606150220167125112853637211046967927913141393332240732727179027329536264361036095417307707602827456420033313210373103286931920632263704793675091603724975071891005567518407235401868124902289110723011988870128813107767636093023777751833912038854412222050146692180991333457326770817403134484040681185781267124759480785964099902356900393035940291430313741155358030914824014160143260278956562060094345888589662170988082334495326755077468839594049574323647022692057919275030673501861653577827686414618855308951463806552612797225175885009764768519289127377532490494409180300628601892513869831631023427281471411368607949485670768771743618730264699659765920690242071324658961655448095443389541229902627707109837073770054792832078256210697443931045221718558701006366888677097409994086217033964231915021070910887787501897405774996961936955732499337953758485218013732544850750296464895431186557172772848790848597773326003449236128892265324893088694542297532078299254749770313539855738166505240418933887135604552616160266624094857514117144953271124179664025397727560013288096332444811947661350132184070424395985891566581974078251289403601282004374913851856591859931212907436730905603294858137823057085454757722786681621865403465342273698754520137542751373474200899761658037090462006198830177830889410485899150200476803571593095934071141403470537463908120938412197967973137715180367462015381663690678491602170321880573009295884364261385362437033789518197511371231748969158543344232067316153354224692366420186301909673121569680241380180709744771944693733860508439008452671603898149468301231056031842005823340944594366656028175865018572626293305704676035923612573885622889009799361022434694217230313621156691367390636143945486495109918361113836359099439684210742906946309220047171450766037905345639217693484313516776923494965682915731984405202939038640401372995217141061441946389996264204751348076206867318864083208112980540804317843382570548851121293359780702102677341812756148699360854309131319094997624572776900336161140823986194400272814860210078456864121551304987749088065972125995163367248800722460007151105504364061141072192516018954743138466616418352088152703217719017303222274681051554321896360008181015398740305379035654608691505131396651619632572994637873950911435890686387538509500106204681413764092723016967781861880114368526488612581828832612438532721604909529987947845068465192852641776417373194048164217980078533063606239092391493987342344171033579878726666801927296883609724932500303027724717998992612951839339775648467454798590295241424532893908423622967894944017285112752032819872123797210832750859090428497862215891146724243344534222521901660990861473264868927692055071617669925343002558306233279099312220575426542808366057332418102686070488820550617057802251471506555838359043949675566911646922090726079854454653216107499824802735973096443265999528183769803708026981528893121905749351249141020073682635122391772249222161700994137618660613101175935735347631604164992474381359677225503109367795505889070139322284956677200479488692761644263496985922584035062895641602477623717082928978331207161914441077890962330719798965205220414374901928067519845918873384761920202064234492952768827613659651778530515566132021914427792398956968131559857634092592653006994530089897273301858772241137038824143728266271832616151908492459619932331271465183528193457706802799682794679631269671506950136330335112806967150357341603555718558379046443939752644470797960545265269195818624431670107390657428634908506210102914171828429682315658521640968141785827493701265048016581401519370576484575629781546974333512468257861512686980458976665667121935308005968490484352080416581975928786113990896678637581148840710412537094546592059944032551234682137031044434434915759779047953329385380560983157469136485325695984271906810831853388391821114009277494156154239977462948122784558622449517863669111034695008573058061710894625121519340307143719425457882174025540992945194579308443596830749657118486359465734515875114708969120071547649805207394879768437952878790437019288082804845250666438203782173755463924794911676187954827964063607760221067521433800386582428856580279531098568024855029624635481986950901416023091011764848879885050942476398906231646878520142332905992137051480216045903740825664787623949574980549567035263996365731707457322725473777750180064428562120945837653213636775658931895288408281744146956877975283197629506600254220372094229239311070930849369785794555752573382576284450431519946614153779794861321233739692524049410740166331040515030123291103296619340675522248983576305074538375344420715229257349097531711117725693311065809387577726882712355771819113967357753561808919375638128856721974550433519395031022387295124433242099196652803489488833455057623372646695552886147470349793513726635752606214423822044527732423113161322441750887138018106015803861589996376051015638471838021798138572872478440129177696744634268369404591935839560476585475864342986269463169088340328983049059357062633858136980122079139094166221171896870037325189106260643646910485874348302796013948445422409466866348262605986417835230645207471667199710786867898167160921483828078628215095559629861626863187446259657889109439597107898836040260411082585980698314249895571072567109103972240317928111023379744806187883685903241541259095483545596642735637752358685355937408623502817773518530753734871585241621140926941195261771755855626567221917710796990428184311575901108416326214625626492955164171299207569547268374856580920488740656306867646504665249583165848215485335801158556395281062709631444722505816025168787658217593672162285339432310506783133146675049190325641691058270465810541772346207463035223368449837628828708019127517475470090582640411313952771669489962711692584187060917417818179170448942980206621865322049277472520631672888486490957660355129679777591163673088735896410440231188833393161711843480040976718098197828020044529481482444282901959386210831481404004549186472839036417206613345131945779863225602136171890996150640274437082659241264038653175454132265388023572177608701694173730562989346515234291441753050954461091429773227369626471139661187395906482101678603571885881552732438434688871027135233928816711596275596547961999216720406944964603586141263753375060049766505746745029930266468001557695606306194379326662584704216750187582105830170431833839688387510627184477791720943550484703529288852831597835989535536453829569410514318002368442208769091494330992427192861841094150199574033624571584194648576816097035073153910279855226433534145661559744231068184469951613002959236453738586180480308546995484401552837541232832426424217364732907570773442915802549660434340456900738981989441731138522647957683443108675625516145832691874482122253660405869868608576041924510351377126716897126256181306089923429861763334177404540227627819157055478772049417392616141086537376266737283122132354218166320806987283258030100451568035229204256594058633987718535044692571951712790291753019726287875614820943542028903397051248294224496933933332785784119103869155442812353054190627787334750179212729986840879391416291447494708536384825386904013531449819428701605636002456881338102577807518140920397348220532780337876840260686798931912149142912008502653241563931464269320993632752676408812116972423601611671238410320681373394619830680169296156950960413622402455351887896649004616707851413398637317507450501374892804737521187957074521703743443550961526727661317748778385209102277043349462484931922768285104047458374910594947658489664848841706017723002730528293856712198447986692327129167186317763140499561810521227631224795358397746587137765114850717375262801944073325323134546033619697346952259108101256679386586590720671854792756609883730633210884025858887940767869995262060557690080574405745413529827421604544472241263245935338852051327996302700255085138567146045769113469591462979256208800173786485218009466250017940645130128487440729966749433006938036209288575700510478169603404747322351960646602987672635991573818783948343462268219583389786479347170007964936460026861723375154366742750851921073464939255453014902587136650173126887471506682108684665336239756311834453568598667146326068913698804164722133897076502811278149851912095844044403298361034282490667546210648484919115640768569552394372855684802165412911861690391928683860036557406065184965656816089669620771737991226577246458917837789240355130345106207565920686796201621865841085561278732063474773626381944019097300126091753497424097285435612226980067901777020326718848363523280352249144166078458897401972410634368603303104530712235661276497070284068881474679717844320301003041691505587422763341806875189139936977657827378585830102093975553073162201445238744479657675951067784893830961283794186402516466264513464459009373832015274481925805311320449177245863223257126287184370349814391232068669260766813100054240305946158985693630372253252457999472590998485855156514291518786047053069354600246000541853580147326690162446753603932239996635450340762154279518306798932925640216113118407000437148130346935025374945646255685339665191403099695447289685780688138533271334293124655075743328762586831498337551237200915760162470296929188869108190742747010209067934586853702270393377528834233473352795507283085029599352395915671290308083587640680212211098859904337391203123095051584795066581184981799021167029844977765430083749322351663272687240367175446636994552648519475626466427870044024131394378763518519124186269250730759361672071299791252555654052555312631145929584918217879987868416746364172463254659894525740795493986599880865656281860894011270265960676983845184951269977655342491802792741548945932830009340562758943255173787746812748206369080261163728675060628379359672247235335075436505785306808780456055095609907555294436736038170404843459877036999865453933078211862601227062691666490512205732855977213901361658085311388780699643723485544517493173539603072423995591573547346821598811412356790740071384815122014815661433653925078231686785472542243919704546620506474209608116255507378804855277596531726984817044213960594492115005280441168486647243147495646290794137250257718747645577323925228175169497074530797993503508280162869759528183465917471081277398607836470173945047425539588911834057852119338313280474990292973567837623456137842092074879205202879584460868440327089452678244591166542757551268335876238744997782940236532627571954319240261470321231099834433032332425292478130587457931927463851208483279985027309868663405779700936982309268549682345535168652132780638996438380031063656523145224223451543936412803338198463590448762722220447901823188633918503543538732595848627441879048729722025780666826496028279153803589617223195805346015616206023023705183500457331599350901553155521534612050148472367220246602979417230962287099819740687547190859848547685023069396794881368668933793693998009231918935431973038562109692981572764800410163775093175034255441457899955895736832847143256570922214781575213138116397876063926530330310653514512699432022350926602978782235603149087973379663613821373860235663285456569506437296353301472379842014482728213273277000160715117488919591804218149712150924202345122809998761780526455747140558768507016243209798089265526203231090209460181008421300220213264663999329494971222627690535969724943125352536684008935085162154514563246607848737836682222441229285146813016869282708080470913002593056320475235057152562884466110089478018938469139647460139206975444475264742086368164090996997461093248950852544520037785338414647497155093522845886695633853121233783599582504745210691713610623312083627027179176240392039786380451086469372086474868039723236394650376670729304549754081789714661748728945161857135981596794959972422027983902610190861245234469839660834516194268671304957875739120936154906477326107540091523885041262907544672438749493628100291952189338205200683840189969553672034698311449287773119128363144442837438893065288759922100911359631401025661587728814180977574932099528828281350576441857171065259039935361055149930511200556472507083481560264437437168450386896772643514215503943313508443629377657271238937418113146215879449613916760947012719545366902375187831967583852582863217984699791899331518520985810649286206026163012191502904408820614479565778885358769180639737627026322084875651901538607753739641857674736544751308257153195196111700705449715721958500853246537918566009242768819421820913993588977777438793065199018119846789175000420568891960409096244458923800546680033873213918729435769861905451565969162363276806754637138829703864412778217716270810331074980767869765164426669515236784088335153112018492692182045542758690221314517763694574246821147614272401967789667517745394234226883090224472832314067283161274312693221604685757324542443634219655830230236768919676752003188940721726719907440472783858619901407336237553564946215251728748513992432404397469971051851205150986174271217318106768162090591805367284955832137205864558959316266383826117974892512720504047953417835897242366531659732157861920877198756048534184562391046689447669761399021574605665915598321251147736455368610800205885702630502616822720553677116239749657942909348766182630050510301483219627241533535992238738666778914960777716969855567375123089942528177598399235554131022086284392228971105560334179535163305713361881794373566323028818356869067334706272657844793611325531547742882298917439784113291768578339837995836484748419230192632689678204595616834576775029236100847747988943688425240418239310644403354625771319427476525090505941194571794241538157569024210571368379397249676724912931262185096538040444990419884313904099175826942778854792473338871752898464953336548878483360686999616252251061609689770125521196387513759519450635704915636432408884797438824005017050379232984425700468438964058882602438198985517679110955826793535788954545216848386156230333461459425016077998489744581979215237683380483896867823792988096746897972758208218517357746507077119419278882425296121648562613435043155206128397024483830274203776290945222931214484209339505397501408877051088793339951677888788230927327943959991398370651276502037695283117619113700391616353378070361067873373370315316441982219850740223281449929959196062371521518801875676553952453597293995769466664035613199057231510498471153607693774213874433015734638877580949511651937872992754082448628128545235809303720599081298885803907096419201305871500828764346550548235238178858017478469775807828471454778898081641368801758602368921573567687031843392256390424203140131410759877878322199808808417534774447888665775925472878101627427968114894271798968572564171590468703421625618303378413773933154779424598743069858320151193398815269269711835852257133580622369124894266920533472707874833408426773567035376341549387949410477109220430811016415194708458670325916627834849469985331452839592324769296060309255217311071420862395923326018321090801694729372712496872812546835729614277224054184929609483021957571014794058178868975697732262423308253983237718852056632914179174184090347898410621843998387810801043192144112720992308864306117242791925343019376643437859375435622763622889919026560936090608454665452125474135898592046204512364168519219511188802810084542512291467392180010111200661660998247356578209842518191251187000575379539326687600687773009095925579825695360259950371783854059201243156945821628047518659324079836198253652488970564531958208489512413033260730482065099091899701510258115090563260367682280220106908570781665653001369913725087301537852891822030422888417448987673857748713262523463630829696424421116596704184281020929626835567715818427417430104556024373561943287640355267300506485160508680373463811368706691711747073903742567775432159703248394075466645613297535711871732964204968989219775412862074569797544046012439255567400347669793123248027032993278846273095948921916785902179296398092524603846042117358829040068932059065838358308874792629845201507126280594087865904727175506917226881999561811706539047105837795694710128392391177656218251083826122827054209722219105731310137230424647217879416627206148910516110793259380707497831358948743544694244594481269616013346298818915428407421192995409328011165686281804074041507569902722906199710850548198650180485487636356086273709715173994907908402113647394831873134746660015241118323279673092611760711475953824920833172225475757251139150967258312006545430428531411891460507634927351315014179815160487100537275279651091890269324361696201150347717699136007785435535580556226449612498801984321127794508894487524280506134276714308998010737029980858073894425218076553969671438931513402943738483898739995426893196368787648685047736263867944647400685133575118108685497188995791389338085740507448849609512225098827995020798869519549819029265583572774322957743376367905201069150828744080707592611403705653580313940509364335200167317065275707486210678059464074056596016621826041960336900205292547600804348852598489122857401449379433983693235995290262474931251559347428205908058333387071756744776274389695440793724860681064497471575193023212035174427809197677469489311158832061139187569408567164691337958027811600610748106667746180762720645197154011074266303728610665091308226850946776404894685994088845201307672696011251814465953368267970399948297354368830419648320953025061814023713502652308285767479367248250826566393013472185020381006444801470639133670518180585186198213308704802661575509422886872040016038166247372762478913455890940093872517154148356786425073079247896623936350359620921746523754885096557293731064470618031334028571776521461884284127998622902201567398067226847401423379176759354931058682196335694891181781757771392964740820494990182439915815643462552617197316573692029307487483449267459407693088147202545076629150011402087324371742244643494761103209591255797305285843028039319678610720897600179134193688589715256074993683922503504597690114630737044246827677266882452483972376281084820764185393156529543304501985298028066004068887224567880332733662991092934876128391106551392790248277735902420219976160905618357447970219236701022788274516509837030972311673391902355960371027434395271049340442629092495524745028449070577499282914507476357237279298860506347572255536165082608337902567120925265204091798566204026743687564503932439898719765843319058035699838025072275219106917146514367122153650642793797259955228641142738062161851971902790140018001583939670363080954948048172359400194112155745520315329313030950049131946323678241207869613315044912166877251912652721949488002975404520202300326354954342064646731013129344867168129633703079773967616885024747288120646496330954906617142323063819830245087362368631470510286276699493042640084967514513519392160082365261459439405365733716658329543261007352344520077534838097947653202111368130406310898700148008851788054884226744141143718152259075773348836393940668100091952757050661243117924216585886435963727346890013314314196919082570325112556467921340619964525264300392699891980514257079670239009351426456405213300438497088516266819329265861512367485034573737875298200839475761712692636797859556274525696759101323605232060157142190793637060129920970378692689529403225008767889897707502431358206259161822150832654266243432940459413916757531103438182943359010142729894281146243796614980192061003720523763278702389400758383079064034695826839795885341536165511450162365974139771593639656848702911705107696434076348506092109997092981653588436408891467281462568856927760781695134853070149693551078082226813824410457429848606609524121141322192181456686366814377383400770050628501246140645255380134287135046862795379172412044721566935457330387318340901747598409775503998644844368746168604335101156774135987425503788027794918493890276026193243412707423227975133813586097373335526019960486451448889077984215375536753424934670517647701285435916964827938445641638172927496009909299286468106579612459831377327779976654472041284524769743296673838639762940115627408919743012267180400479818961611522888801481914391964040277196148102803859089165891582630665873324475162188115628182554680505870004402987612556297787242893612571732820175161578306841428989085595066680199547531457323746437498619434922151394937836707000337665611711775314187640982265377791273555169086888769985340544321133447359653112712025514877663271485739314258455248443517205999567358195165700087352445014600058583741280834565982884406214934661192874523689779571066800742587304778023628776451787853895680733607651348563738350973732084684477124121509770566933962146912313174647012680049761998997456238234114324491145355363013915622140178574011072568117289252501589229238009517646504540027581269638536070404888647776443117347499068848755700190088425662098615720484338829553432712291857704182535499939161416965207228350870459070249402251246070148518181163160528800871647474337038985464396641642235972929331729810272881671494126140330915338899105006824878321332553502961262296666715346019066378722670736513463952696276800613808264032238835079081561756409151608180951938229583974768440129301859586139467601273575982089525451050123544223201921274922903613519596005151019885567610836049924145882457945772731482100108524972671758067197424042235998488059096823716799486497952078911228224129331017274587707078618146529703312729483670730289503332871376559678857984735043504024312402419460707587024088813818520475325509395689427558655112189759127976724689416089414433903235752166061956526622307719152323513700510647293368910896428503772720542850253404717916178327842407601982123498776917574975593187108003655664664080222952543222719937830614131321447428426505585553487687311475200288830134534525223202854314701958386116072130420584484796800946782706369705035334042838167646357531058785921322435142210197404814063455566856210338177487713288069248556972003588225475950289958315759125966061543760449705786455802486852712405595819529951792389499382068743330202404010838937451770009527301365059896234557294609787097170120877424026825236328812272306217332491820304788735876405306027208374580890660215544098712415612004554053347679269652024464744780421795898601415576397642477178040341587997037760180656711987596228287138318314769397365095298800990511385440676178244682143532747677879632637283432517732397861514805442875678295056911325603518579623114408921352384533718916003463744461143494897662758921994352120679353095299202659299977027532824784293314618834776106605459327533761682725519233673799027416801637363321867960068341878785773117430868117549051429010397198777897853691464631119860109090535173951882154210128906262530330825776342165340981718613154737194135998593627249673416603809508955885736843648707680460871349112831172383732941716281042303178353408196187083474153732306621167197729089058184507559889239734342720927558466411507555761083368289782829095551051085950375771475412871046917504652245536999947841483612308724760313802340562633630867111008769594743135128461938781386402122147389755865227693879738410226817167018068357109076571645808056405984246490031332116566146429200976782731841175862357069783655875368243420330519765783810327341511768344406473271352693537467825793947234667322899391428267469556609638754677325075861656227378222553185578096398200441376912848134505515576005213248133526087439949828710379426984985691983456818022427919396217581660722173259940006451479240105865938161633784333040884036894566747515426059353978838199923099148025610625360762789375446139463348320574200901057213167319127433267985548290115619429489501921060866774273541879753543693972175925925821828900043020348382285304284400561634297989552772986713458114309948846849461744920468692718114525377684516667916018518402931629179403628539819631007168497554890650194535912980665923946175311912797027548158669488334250480733239832202455825628338286315568919357039249819671863592526337845059694031675718592219901373365366781155892200554830397132236791427509198817240274441366747047354829816809671656076576112500317386412957004087630763485583796976365162891314604319411626064017580087876689482784603167492249840491885657069762651454926260417862905168607200954943487107889773279101153594232154746328004580335514544761021296360928219864711694280415897372313307772988846643840928562304475190980099034368930245209783043384080065933380575752704773314293240398357864585414544103981186597507685751644472632796619355604098941469181044591932777615388891933205212702225417382577511474586362289200443613381786476027902438658650988381734066061956447856314074219375183567525688892066561753798150084811886382188980472004234342966454843440038038893993943720592985991044707702102029713123880858760508827236358145886179217585569945855769886103807691498869713599973280770149105534865997139744218269200567298411810380592982112135980203660587094868993640450605788798898056082249037391160468287761630561127669438011482414919601967995830336648945790678407244257141908146990829044548316819694260888911136635582439385096854865442755638315410404377683642224311936346948346197506345527847936379204562840357612868777119654073677495112980178926672866342458791086525441764665442562922255970978745111480721686105470231231847738873290646303656500195984934598902639081484619090446545463106035820105343046816987251259190100053752281201714592990005996102227932627136607373356938614856011612097247699304075068625389288273639300244831635077782167615969238195802490391130804995276458374866845471434885448627139359741808928643307797546113476709023437081538667191751102973093535661848761493402660361566565490688270852182190177494070743403520697702859717151462954888754352934241052678400550546583195770806603037931999941924261142156770259808431989718729851183731314153807948418530090775390898071566498233304939623767154988430069242029753004627697220893487126286272973268845818861175871557078056157031909605416151280866632713951532649051234643299686320363535131865932903236188080314707903226690735463573331750078832947938387495604447791651440330773551104791481931060574082253354382089740762281789447353624661018746832774250906536932260756005568724068154826572115532404083376412021579385666000836910092123383982994903670809829742395707545346118449602999903038587956664464580070803939678345564054336780710090400632728438807764325779469444148528161658845968139761654280992803504341591707453408698747411228316322183586688642576352737134543436745536767041918186780108550652227715681273294216323568880551963525718180989512262210408835564321742371993157104934268719336046790415223420773782710987753734904563186945167257930005703487385791167405437697270313846118476863068978424602588375453315805636492596919988249956830056826365967521137328673464134453473897315438585583067528476968976319006216957793056607590264734787898006723841110530497649591036166004257955599146922729616241970739094833346434172115454369759374689893244810922816350728728511853703515444600463168930242145351995662456150765483461558055718082202192172357189147679235509550394138083969555918944569577432559005416511638934158351071777630274602219921382783193051722279106250622274448586563765499731366743669654076376965239869808639162190327781028497525740566976937151983085234583750181209980977413859135003096723965672250082018901049258560329192002292637718119428252639741136827751856817063349542298391665403810399179299158652172724297204061288943421915781646479138599935578997454578845009558446736082524123756409481784974636323693681553533872478005706859507898605103335819364718261283787440500622598214746523576158606381257171317537764534490894176779731430586858634828644893979657478603783573474508627827852708145099009414944843938984298366903708441542258028122602873586669000585777392725689397701996357486765449290802303432582438249129635847905781793024922148187298315956718680391602377483692512425983594331104326601699574129019235967616642851601250960679559273786582905231424369058436930404270435102819696055489902648664711735245824141606667600368716463861464907810117233296735472310058238295031990131152024048598171122610379928153612290926526464805263953633916936410916763191764125308346578070095032080766532367978390998991189989411268312258268011433041203057408167033455158075049328768945652303383117408839967766900111809434305391838516576588421280308049376344931187560972547725268509080735776553730773000265518786534217068694460885001127991949175562668846071066738813787121459172073240720643398033608555969958801469200328248409545779423781857510195886240568629290531332809794954125814321057926804981945622628119010667179117459172589972309513103559990613422056877358075802520513462755034024803424814959396706689490756286140389819131693663713053320283642023721529901555577413231294003601205822090132488971625910049666055986601913109111066482973106558064985579240939184202866106856235272743981508823784030827394529346942402134997536413505385957163247835123589762927516951120977514417193507034047118234258545982945197797069273667722077133987287783762676295631428871920046162499476799095638206263404768237950438038153475756283464931905259605459089081339898431611569698689900104948160092264495877513545398885900577098999197489102349420762089862809893651666108686768199627177168497151202684268553802611841325816881975696970307510452155025894486065563687518723525257716936779271164272004953893989214966912943063503823487931184050206945021679265392062398194869105178574213365051889231597764618434155974448655872398665819313691493843911120109245283918744241926307669374369274509899376654246480941306713539341618207497836219911606172689828646176393676961934565603901089123735996221993064928190190499151584632575608231702633577910235873179570019692766779257705210387772609695765007021357792561142582882643940309083211075311568439275755001859743282233091138325549534700344545331737590254738221707608761287882610387140027193221072506812946057380638788255157428532141661908020056333443901656301414229935804027221956773911038075590543774320069796013838558716608102626720732340909369305210967118777984112605840229452678977089464247597859711947563596924947004236612309291541375454558204573151779991272766614269516767685980845971358560325851933600897838705311616060562336826109150889475798293977737744028445463800323544175070753694820681931081953549500003881817919394235757407955656338874686650979830818329900891910498304009510709562760537980890265907196590252470536675933556972017063825870871523235034304630750510524843339097963241312692838287949928773596849197117791040029433311660104133815061379366671308546317740757255184051725524054560907557110312804293172822683083660024329969357478146902074543726950041894639571039576967653723222813894263584013618759156048553043652324485235300054962882969854352567961769064917562710868415259744187600647590118265812621627662296212115573371517880933853327617851118869641460281996137211239394265545141259870508762835104014624571065387857520960198416468463803881475308927603038122924292897668609528929604069965434285749667077074315040704992098167404093721200178417247161675002548113506858467877715182592609775295198562773463815433064432547966051811201219478705993838750123640501215628769545193725151707472707838088497073643869252782971026179072295458244042557408449507563794453566299609398188341892837727251185657764100155262848037131525797810167509783962113860968265419074852170194523521638362114627700128631845210011041210228982136788525963595612121576383721605669098054123767644207006857230553283514946453418520226772918133579444699728251965648688457358899780742537360158695558638891596955703424267093822974892056508667590572838226598978350762674839359846471637476967374296890838553028950949281156829772829554367251784886181467048205637227565331108120331588674647057242385562627193083912242885490814208420673411249355122267801542922484074418072968175868553591617000215452544415102850253503148372628600655262657699513158651963731441968258774527800174777804669522298630571825890371090035469473061845220924637891518850024171484792659606018360657044740717376746187085114027711211163072312076510523701195009244289238570613006985514859405330275412864468409203114769085108860230695620222125421215454145939761900610315728519490315383803369277619101810998218759059629147258031866047021463315070785660295907807892729587289646401970153152546375841577366391573651248279882028312932459933178403614769723785421404503829232148570787274167930670121069367794226240020321088862362110698999291962196994602631949880141327021980160229937757886077796273826440923981990477847697335364081547851531334314303399912667520170631442001165758758929537616698012273453315806934754072820802734069755514016324269815110901560149492586851698807852618656401560677801375043825146395633520480074427219723063525563334590536395544869623414394072354628223095503975839618692986451204472632539311132588501685120606348652789410983532163283481697440591380586162238595784717201447689372325772746408288785275275183351768827496106507052745441822205689246875392945011492383936031831400775049911758372366801119015724256819377363302251319898716142523056361800821025463610199793586081442563661675944468871850481984579604676388507671427543688714513429727864330294577199722892591510362116896284463593058009896407930060642902755858128722741139055663492134480321549783624474123024873527443706892963187412812535873941936616841509909783806221331345843435707958032471694493309084672897744195134578810595271098298480500235220585655837389069793549130772511387571829074136036112772852596530600076492181522813642563879016954073129210783174416781477277138622585301448067832829172464961045058039648560114597597848955266040780201611739251023494077932556268534130226544798162430875209407696172009118086023802392460062648364966097880124153223743002641800492467007186448768645066589920197481449640782977586382117003944922149737846518756475565274283573571872908811918051332723792030628997726690859387151729344850873666768910807357574948944343038169365420036935473246429577490826893508219699581131788629434496195915070230620317690790507496168508022297020453920915449551874653312852651509174060528736004782399836000581828729988553559071182444565347713268761028713532156026930920780932888647897408096997263945012664970978712707106613965062210311540327245506611768287096606272877727122382014111114339065179549436299856362499009811908660770542549780233965852496971325523392224568981886504437154563028952130065952474455411571724480872705892091870592307512696449438085359733792043936406413680471226048522882458101331506626005545702137029726479232771650979586520760093696648930377477331510016176175748912698518240884385286013513278789932415151869231538962008894932945312522636934817634406299910183757401694434436513332440256832099987316556896788041679048267668456302833024993614479790829882360125838320587622191506263280467509305802928238258566239250451133457047840636499681411500184090259513137872515655025924768030071078915870545494039859049182460962816310014880235905372671884832747227777047843431189459519600820662385255614975808982288906969554287299079577877458142105920601016011593571875761292873535666590847579867221671449158246228552403192574051069165899526300642756239027848734812174443835445346523976408688241294736817311088546425367257324743122115418747803695834609428193691896710169650216752235637335751395486251807852987019278600600116973897795187046624977786427230654859178981443432970423161283208831527519441210779382199454129200642551839350893167598781609107947587442516269613433034365360503924739509556782563709970382051424576448704381792770087392361562508174249569354163003514346951966467275945426884891273611884372167839188691294514223866447924920696494915426475422498548419322248952954298270860229323139634364510128058171839683190731555437762732662594439464264899085698578377666213179693564165001204519858271461960656521968720358663893659951400119629591394161399647113147202019563744462455784379899153460613503856470504026241192067021717653818576042512402777383428759463285171010877336805362515024508729884516198101940061786443508024076859056110127262930806832351448018059305361378229192510916783126273570901999158434260426996865929619169002290280840723482685541020132205357122935637633113806016848885944982037072495107128020894887167808789735983707413192881691649696516118319325860240347932933281503109666241948586419089360474880465082391882041776251281044943170860249772113382993274561784952966073142824975302969624528602359967811066731889224301480578660255215036682321750363165888880234847209345708259460072259725885193595817910937175027496153443330146498380300873638170537348656028638238305018520310573582758244125422933305685459196707766768719870385095990315445913751995189947231597089014668589429740740399919354272669756298710821755252285664977036089259081843862742753854594890210383782675424725681185248548409922983866603859854659819055803948938671547273168422962399932266787942480012127009746984592506498564400582857951043433022457457673405111653891355608688030487279889455211456212414983232354787701492997403234023555359933309398539792570767272448722006612293105188746432646758960721700748384247034803044874036009912310369259404627291201179280797257734720285085010950708288077301250283857542118711906331820197584699359292274671702300076994185484168358474401293095384305652158875070026732204672586295647109004977988844183619468891810785696740915310854813350710281298185315059324672606845420307980638184835746285053089470259213537147755604899120175039016205892036620313012681915234304767947508742792409928965868573586527669319201303073540789077006571691780501362786857636875251773717644916482776178275867798005575915292456619246044132933081388885422695645493053416892611172233606643225066809571910595513428324476943656194133845774049225070724835015232374336762470463954035083725019163121950193593523131249867087759162189635090415439950528948849584816376540793968044266501494527253848655446452296703381803483199587718518510678189061956967383161642831158822994503796036896051837665106333330999530053684818058224498519536719487979556901460120656137411006421841340469083420402274471233168038844152407772861867590117035585313283713846278874992726367789652009108075482890980871353149210924619593867953248093126765829371561568911104622847878442016234336479981918716520934663846597832101346328645757439622619779447311898745398083312742138066969340235975555174822448984638826500199752998848733653397625180079306819981296042483601429777778321920392468376595817505244602220822135326836156929898672752634506287764335206047664874399187336944209153537905989043861670217413526604937077768061003829322887480792639899397422882004848114531370301323262470147084471838281150357878334957373518898349851699762810353799283010026994343892864474618567171267322868534466552484048113171024755968410821376854027969610902191499440267879720597454999882115391199887703714827345887574786740621774103724656368113201199669890389232376765055021330677378959101624296914769737208632558713564251072281875382858806620444102174661897945635111065579664922539209510467845795003524632044284603030871027964646013704449708203132913132143418680987258400128547105119141049549873930614233480327647859965311031635107244287373460907201938545912613285394319185895383792420295111442932803808512207227666063379672094047677279633400420879609646731176229806050043531439351572848033351462441584351125861819714677381763407228784891453598942267140863143573919914037014954293022843100449036674375378760553920332780322590374589051024728415308312237501742498976865132275968980380968785641989089889259296912928076545645347409662481713414632873050201339173245795553604065793690942620355562885906179106683709194239621252377086238762166962735279715983693020546916038884727461054259100585920609535644546374624916849135170139044802341845806117874152679721005128943998965702597619746598777411810801620021281068750446646750547722325988461892655224619449387269379752232942318341127116264214535821373149237775198531019124727750205688054448984330312078970606295958241235748372273860229714800968781414916972812137713213049686549290728524879199741432853573495735894275575081115542509999994253334168381687359419249151586891589635002864671623105587435762576442986132350517792444537543397924182773295709968363996081373742322106479874153231260188102023433215234255649837394992366543575853091042803389133155900128000133312288017090428993043537637686433008688904717701973511321079200494072393087274148058823263693655311432169270780913501248591808801204022572620168468368041900674448659012984673838900424786992988671591599765872928092560946459601121954950613981804729414794197163124776317059181744300182589316586336656759339690074399709549309156371112419299993200475343279454451459793343463102417243199341940862300901902713147555612257888665792250011122665121141874924498389480739699545366965505377502704119417738934433533908218242371485557596769098549522029551378853538865432896463180676548270858716827735834968029666409985111101774267147041547850808837377528644074759530360315887734394754038789625623348718598507908803486846867923293538619236432818191974261722677659577936685708821688383772556077939102128082525376336498921049330498252237993841261241722003760705396234705978372708653451565294520050836623094938098383538061942369283963408975086094618895120027365186545684459877296382895628086817112324860245913104046844437175971700161867070555629239815095872597656430423292041921382486941497035350417217207482905810647293225534521362253102299352578116573955280440795942064110686412448776547316761391050323248287729943423451401664314849621223850617539183288071047411206177550463482336788065244579013817118306606991996413293116478186779931038225937051305018495362973857281630564847148271137577524752173590504200295717977819326847904864260569560272920064500615868620684206909962877544467298770828379592679025800852174581231827367488343976407799927023605821545246624573214956648381034491352668950060727767787592810765873330946681980636672032353952938841594490760180328355761707932290977145490673309002761765528187185684768688392830548995405897381993695870216303889026582151254775224175224867254820964307399879892013814076684979795609779176580386821681297709052851121045236253849682236615549556560770104105767956772150159383567490281971656856367813427239107086160742726906127669142153218983902096609005595711028030200990092495995725687175582732476583675727933924125158674682585070985772225740427872452217741331105472751450954067025953603000959531605872580674625106080484839706918169756876475763298159848209129215473942506293612441177578675067760324272306497973798015473344471086428941271401499595673522087563472300171198201196125498722459268860907616490801449039871660561081146361489273538588458312878854798764111205362373618109386556088772571388666008082744991130915668171734975508013634612923706751388338310166408225695052678449723780454835042933509364179845905900851780779152552873786408150211361232485712225142963234362314873128153071713021333927406192601556652911907314468172219161578968373481591190806576417509382491659925630746168797700033340657359582093944678234917634119413738173739012558732907578915476980475866788160824839248085656152747807220173694651871872882787401399700251522751916457406687454712381032369809048781697540500543600784044792127311625060518348763189984784542971534226927297654600023113147445742063201489929018450849281643525461443180100034521271894803566347316747201513630224344810921078264923457611755266731242079231115136872882789931955480583816577207160074566229572038790383712691868942378303487535498303924564140556991917953863314614910862341939478640378869836149351523440451295478422773353552454724634583313556130754104715453995851703632487231305980266728722082315496857807146124768552225789430038492529724859214428381243158530793794439025378643572233337733744911907590552659226021535004287786277179103040962958000419798140664150790135252309880925682307604629114292290232342837615209308624208684875240025506787535074206144129521452042795530996747757394618146451080732248337778660518129363503064949412297082656990936031547400650248617152400482221356997298400290317576656351638992517332598435809267970929334003038625872825168215430776661124827853117863680131289049061252148056054837822069584909565275783869430895875264424021621045527816779625828402923757748062730094335088701769158983176647096391110313092960338565030506418927133149974884181690949105859312976519238862129591841400826491336610800134850936253973740801823509369411606306152974584270049296386273424831405562832638334469781443217389203235652053632222644429984864154931216122663721315080840469129094961462062925117776481349680138197398737154544031892661808659394700167667346075015893957084880476903284412797652386221468250753780127186291432336961465220834870098378274559225141479383421716541340908769898813256525457682889789025103642861610595221216873217119904454147081636537012284257886256174488365831324935587492879250810944005369236618505123825905901771924203633496689389649947060135684843185495188094477018457014258011424722213371400843486602677855571353800151400837249512459375801561505336835061142775194193871097159258466465717494871162670399103124722440034906639490273938688505550564915229390244259570172775249068533713410767755911796828949731459841058344920454768176570249992365327140994400271233223087151432027554642963516013698709388851888797728967404500259079540202921908922160243014010595878356928741037286179899190894315812747706773958060142309107262040861591766106680077190666302119258040484232569329007635668810803547597675068821383812826647499108355307797612943850189623396787602328689382901241497398400525416491389744387182953152859266617602091167677645367397191860278364572827879756686134984741029334449079411257431616265892787532042961004576104256679081034454345728425831284465206173280795772416002340767131900108846621664717889091898358232287048057359466402985521132868689436481382777685368468205803922992655566822684245469094553757811465463646769190906705051282884976982293429857174730373507466555467634580648856649527769999492275262932873562115027023791932903533363987615871836164348507781956659715355195911146054219030847337128183060751950372634070248757028523761177870652103693806785029156446777305849206403254611222317556460979549048641484060145286165341040610778208225110696748263830579733952262986452086801181038701149540951879341509341263423424193898971311107025183589058312292842928534092373237714170972985825261026855298513554128354012941497632133844876902456061146660291028664676362330516945293749169465791257491503349345814962445740488299883272382000980988393125789707225971954059291430910883314495741129252282988439656575519608338429125371431729055915519156060213562153962891018844391329014161808485142563681222077952529465446589146596695959835714542540782032744152366817083889928773163063326674595199617427895770234474332933715521749617695745424803379564007897042427356930659568916485057776409062790559484519750534290451275956335375939625380941151418970100216877706324731873292149687732630874412557261698732407078776358548883084807729696348014777484270666859461450360491305466089603447027773059197664109917804629832645506435808417278646341259522209750205651749375678375549853711437518997833128184117153407821797205707536230114315335141881477497415963282583183101311028444512274364419194121194903230104322236372607461180679804844448259997806498687819222664109193381313193029626870436372224987622460055546513768570340923317824090519527778489103661763272816410070376643323359414193836529310969635695973244671008836505148012405204400528049552450466291640001651955769068056755280118083531539908548148167184042374888063046626691760554775724403363500249550817493238381529571706243278738126858229270665230123699180566481785661763704944670888637455198964700914409290984715145523104898256898826611465608609486080314274271697953346643654887706039027222780128513038309015001444061002960621960125568339090788022628523503993447045607339412364283388905360570719972166760293853894071921492725499798832714053326566451834091926463658982530537857991265147993342386562793489848462535344573553444103244165440835315464781104691601609317551940045349241540514670607744936211977293899918575987659540062537954844876139609641195687003467845900445384260548805781015000470040776611765815039010571779465704969239199360859130117687812198797387456861289272332052040633013812258712175754294186948320133059786214933615986398360177148064868834605201516957567512612925352069867503478221171973668361819120271874463112768572380055919415065402319147382734526315062395067192343620659484051957495298702737707987457533626949977341724098221596485348909697447926937664216059506106576690211499560373447353941503939522488526172380586472353384936246378828761391113001255603168022227717061284542726607589371137273086529184170034703828758768322121664023793653943632520721852962675323398460919668422502497653521570236300751162291908308620956966067932049153789453091094604248427571005840196123317124364013790787257791864271636734664984231341324836561280920322207540638041982962494939485763171998051446378535270313431424901872357281549297671925038445399173931686580370375845511441616166013980984149141598992007974371094442867278652999986634488736595167762741990581803627532215160084546152007748699055756464346039836739304124897736001895029837910657681341189974802631473012337168308116605949098000236891068591306164649617610481165179144170951449323975140031640462843372966375656527798299745375011614958450610238780993351845083519625320005707337907175092057758104389532980656938489854063466290011648052461753920135665648685386020183801886931735281079983073028144349767928949377180114664284411992662380645482915039167178831518443546732698751675797681894247228816562161989214894263042248421396692548685216703001542522377010096300571311095290097390297835465043389989204124492156248377880012944045217846694798504877014081038487664218269130689571232410851493975255784530336699530378234810667670877739804151617381109882072187646831800051944780276805753965266369407901287653925077954186727688141437490510252829587348339158707751633424919894853269174745482821843106445644343627290493148830929742168762407491298486108571180479721429768929211791817374974096025609346290344775002261600236328508026620734439115548185589555083602864334273376464529493851896014790581973290879564929110382944122374014972902604033489710041034954541820020542933257898513880717063005625984461303452593967711150629676662481741989804033413302528701612349390061492193379219371404236071875144497760862925876363545149871267759488466590090143695888416430393093301774999393583147002479602583875948682143519033489981225488377237426075188276598764899859089042380094193019659813449499212335040366824332759189709014000166972251063292948090346493228913328036324448344741322655233860789171743244371842949294076207351007395465064277587108980771897517172337976756171076706547515989964097546464499260693856770933192279329422676272441618639625172505948564254487609031010740898663577009503423672989767898412420445594643301609029285444308425417131075565646022535659633612077550352470341808951959519879428897653639565033867712251953712697830957816671726282577652103351496206930956007580859424499312789335046614390142461265605817991205801739243541823766276881646141251889846079868690291128377214672917854367394163862062106131749535479714175399113331668014664171122737948058927147913704695432214312860813370320331408244983372901247580562817649804716770098728688291442117336612575968785583258743961654814432106628288134064845370000874855166741521640535740181403447085297711539814299977679409878921371841613314087830314717368626916457795873463297211674377308282674873075503508763400624370765916754432799196380994216749835534233306872894358527218828617138007748539896784420719763360731632891102600253929250506650224589568849536168467795503011524635673213615753558539779642320656071293679325713768420257125560083370936959170801047251170353783886837125541581129408929180796943940643025912975426877178654934881808897939674264999906018857750370869903885232793912970550613905992268190346781537777297004187758030978876232756546835740110495444696440948315492284377643334686848304602586191032252790233633351096404310483904930997092173931631356209149845945070169853692921510661830262021158737213525997894454277677156671758725917127558991319785777202319013980392503998685849897394537598181686283558479554268983071428027282407117504594961566054030244808494343063770755254486506665050633271578773998403304949285037679867905658641831855636122378675199872272327727306352559157265072022655456265103467341601097664278732425564150398111503907405049150240978803064866700448771486824311227448692386472834939359989243449135728325123430846515158283799184877858582669633679748455218105443757580193051768547753788215474912785356386778850575190332579590488952448905863590813088948131806504101606505820394803311788785934999535485188132828607062482946548940370852327853068009769486952296504897743407429739324268838629856822565398933539603786705889966347092428122058799094164655933281085194475182198504589860604181981880475684514811176933994772728359282838542055133527353109352998568974480819484055747335255517618768493543270422881377161760386016694612075481280367960580565153843740051733733312990250312577862951558444451866407404500922669422291219927566628647912723113742873043520270242772929484118278551691767627956120888741155859109619610942345494861455129653529402782900811966225428295867732597418522790845126447832532255571075977401631852723916353034615112052066969265666719945063447365368671191416954650002209861597279632011453557696806550565070861270336028429407401951509030727948574359577442022425827074280972271546078005842365740837516893002245501367189883256721036987812465316064647821169096628879976347025346158135302827833151564273362761147646608524941746107814236254807870871047305544137945630334931790256281595114650151282043710629405259953355269819927369801352514016480105013949337236000993445249567687171612886828330271989930814681904886204880830752773061865996425625004712500221646954404317960064898584400373715833324104922739722255960265274136232870520320769324450451203284511283106186476890885284170370227347443365140320747668701243541191824337195370760236138681077147200904565409749905625419078685942286113876886339642606388078700805156285646444102489096841141963568648405432354204581995857798512590229304996053839486338710444824747433423127537978385794891983000753708436871486616260448434493762964285661373114545182151023279545137149313212394572429461492167895211825279056221784387635541760138629950394836117877939131537096816698717906139466010646579949610485661848288014129440422202478038114694528673454605056295702819788607617367051751437245541913336757457214814812975504850500694547498074224054492622678141024175884536809968905172376255966342630204840765868410087483493511907018609496580653454843533727860536764142510411914710253915044299496503503552937397402483552856348749439365674687417759550454642926555967487141716428843637929184806094204251124306064786575577570357277169135560056311439142514181296829175509121523481205593283052281585221026904881541611563168499724297664648404807060103495443192410614580265927876569174205908315633841000158850470339213781562758259851900378634090247470515182359741007088560607667455800454288005434330899400397485582400303447360586582501669343889663423093020102276580339620666411110573473163663843505198889121382233018190659733845715710075609954977196977689387379607830047001358072768024321069303790675875817059424747318424394255752477301671817481697651312388661487045793583153017242310089014149238468189374627434537612975952165899442929569672000907188329724235785477890812192380508282460604753863478466442229172762859445666885392371460476532818454244496476451990956477678482553483696130909082541150541422932716019196958965632277801338197744927868754759915024938241345918443881990396200067451379525351724118660680756808902475374754819785688524469449012201833803962883044867702581327877142251008915568130441443227553561311563458144848481034477868124087679647601524389994527840543225468442838322412787147717303665789914821437704749609773306034233800704840126550056669209604619556021719406229009914239490342468726766165433009224294924137751798745794157136272192879722693460811435660294903268209314638862693386781007788001854873814831630335864005419266837322743395093172417807069219602740443990667719106099998819602139089302691346597931007067455073655570409641503095236212322842726042428397459631831092021523153991127656747997543909306585195072379906919630915186739385405026970938935220103703841231578285669275685510982672635858649875494003581612650674169728911580279850020001205014953009513588586152422990455099683874041607949910258636490183308172119882105841389225758991427473352300226180053583314001387085517915328237980763295350886017222215884893045127511167976330951269433973241579607344619915894305389665061043386390956406917421798757652392979854990407474134924720440360425529172656844175963290301457639894566547446514350031583057272154608026774529411794619047477861294264801440597675855392747680659670499578285270130850510412467078382506747629688009745591106973355229983013623958118959327335907458145312661204725887557661205642734774995843984746317936158280960251020708499917978260206185556801820633592469522712891367410244489891093801324004408387379830159495533224572425908085524677353660506143982489609302718370145372959957060392639265443995363306403313199509000990059955297449732834846880337596356904717638609843632165000085597079865538651033100686394788512350345005871055887306932291665442710023102795021195374435578379297531439189292007260106296401556659306744730525243458501244610402902134371073648531275097643990868499023773729807564448400412892801446041138867077353893930203806581352591010689162704656500838573046673626570908521034447151799314405853293004073499540523069155867263258874895791240115577620537451488073411158738483461217717283961238299113516836438559025299432145792617826620878491275906901043296693475290237628730748862499112483522561873785787315430786045211082796458717502254493112126595671992066907712032003227119915388926599258129826720548334965513527426942449233532661077713252151844934236549514714670012406032091824580697206178569575621815721749514986266803551609684194697544949396133833986889703711255657582538656144449965440133950810577346226784392184379284588398438813665812388720065827378073945902936446791443738440728520075658899906665479559337665483012574779109603926454811726855837600888711171878271041265705435461725508687297007776200163661895728866717428998911099653460861204844225492801359252090949324073402883753671883737457349395118882283695594857378292557745083245185325668736358118317635658391968208489622524807160699780570367227606228449311296504322585272900219555328543982039619718008776747866055493808986292066049493349836716064363311325598316260344321570231122577823893306451557676048901874114530812614934297612001824655282351043203328684355656760721763543458248945614148110143634487854633037546676420956159706456933622270147505923970490974997854513991905602230053780366957116058902040111685677699040660985693313639245969474924809973863583419553409546552917784563503827576569151221661704320505304978410362332885578716564864550497871081626297822648907237975410032760285849648845236846817373048731342092642872913333286421150743103527639015492512184535043891464437845945005264113314882433938433465447946077114129924486055095649986413504693824780387670603922994553390097366914310989971006903707823421568635552309344918248882591912790304661159393195340529001980005030868512002743811045776629835904187722057317484972925494445795753553640225081063019458271571092393997043232040552961311077087345954541218842899255445359843600815964830008689085073215042704458471409545984971326169824725125123421381965348870888933991455446898751718633196202527666007386261062431984816261359367041307029690833458812946316475187027591201437564949287385014427378988560026394663580196330748289817824022690647602844439983156693783237659164948601706273894618985909650325677862947592598225683663971917167496571222241889038401714299899917553542409393415409846358307189465805171029872130380021797896008316806659227075974017479685549638573081947428414271643014708341046031282990940052182240411598164220151238877188089481168429981419106809461033371510461512171540382841271022536443334346976548537315141658121784000877780365189163256919451386783578949762060801167007647077522444264617343606531866589346101671446002926324180534348409755877853124060414516555621096123623336954757995788069075591685311520194880311394998037400939683715519107562294233197657678262253244240459229006420254695117777449310491667419992610279785519271628100261839192306089220252683177885261811045452144046329966843315142238009055511179498517934359303717657630536906670442887752306909655944462791024395441616618894759408654612803740097819452718399463102153824581558485393803765387308628145621318242822559710449202995250637810079484590229117659089251036323283269679645098837114710284242611933898444157309384828598355579912501762936694226883921819531076313376598896760891359771721317811513416479932379246033555788081721773186742002803482524038783659436942663280338354844812323383235857015045159296559307929152161666407759503270848053341290993368383408056228691217559657566056595493979379107507544908628876043452758926126382344888233066189879524636367513102693111226605165740405656026236475243125338002200227182714099903350235085858053808475979375708538785757740241000907646160333236133946963130847579601182112830016108075941356397617942109124961595753784061781930224271983568675068782556275934276862032216449460907919384717917223274361596859438732432900127836608879852772157217556576003447898513279072163643007333557913300405551423474370245732097075341016720667305198363714892603355537256999035077692393767129102904162986865657473408311071681064070297709764106953461642716997800798032942342990841174184261043583614969740375649627646879443143214676978858544356878962500659292151054714906419131936280766033270036750381279852331875544128852861347616476351664274191522441845367614670046573068770005226732493847344728738424439341134123434767217707703877808103607607281128269047406754856230486570977579178543644612875690220242606605267753315269969870187221298686371264965277947827662944976025010463678345575929049514845177151054750880940172550099873539129255774971286807646303797628262910455837012312342039314464965874216897367317886759651473577825261749795046880283046929814918330914828401633954183015294881319053043979388802681141381238039092768778642727960343332122258697979895507506102794675093475381994732878390288821215601346738766186210694546960850002316232500447741127607844452064321368466635180286816978966657837094064018373756856800051951285402230916556608466848488188632961537673002995805871787677918277389256838329548038179905945878900172993978403458696942197150591002303450337618171495350429238293843501400635802147255477182769133818755919375556380967973910713996827958653527390822325928162433696766244710315600634937065835902361404070863115033852882948898270398144638849929149404241743634510837449368929508149094090134661742561543195207318322407687143643988766876462501086437713047116566662418439436755327631955514775104493703824307679474535247628502293542484045229775022168927641633767776118207577858738025332053089929691698449754212639562556492658510103186948915727003286088369128187068918781696252134437871121660427507648909737386623764263556478708228578074936620960243270492301995627982178088748095809188059297676093564616592613219223587948417122311329353198688180366298915307914496620922384530545741371470093885214646702790994997832716979572806027219935903074333466885433170481590376961359615746376474164017346700298361619946483498077115550314198166375579791904937737199738131967149373242095455644395906787564506908954189204074103915048092933188581515246974932599091992594483603066222288970538976666493398470725646681016677129261079886740833288904946143590540890678369024436051012718782477113171721469101419246895713900911501272384909625889771021253738848620336899381432012428374246011776513549811299354566697879775711309841355003116914141662811033911706680603976015642640881048395578171145963670705984608899434921174552244223576719255551266163154772757343936267108859081193050734585502531876842069588359924294280617352765531363851142244452071617635917348730282219744069098189666017425720455775698075313460198553192753500631976548616883058851884129592442082748276776828191998980017241771767743129444785500888702097502458864215795499159539640169341596251663827438811982931583092150492136101486079651371068115908694427909946254670865723987291651258779430501270386114829071366137190980003418117510022862977329058123073917064690474228270354470401005923171808688163764447695431661147609501585580248068210174333442901593222948428921529033466095481625538932152301529987329794998550381506315022457517191473303121701012627674047643800408994363889011061833902530267333284109846524860464727049544220321793301634573203651144471021621887241556055208975557090483599665624112219357046544552667734348545296380815718751712842962909723385519124997978856849242721108480583346020419709779212014711588567553657908963892347574670375557030983691783673571549838429210987488255713204459797681941105542900938834714842632181565076107868701002400682434930848268386840210998127001037054454958768269429796526202411246378117610069748461232761549667024059061139328356200837386098998614772348745366852342432954868792488871547794767326202608665915824621012104568922237246964277332281629983801640897551371236625029807222689845958209251551160630463787725608077068890666887229215543314784170961010489072276093251343502108181498382709683887952293756976097350847027237592454355491157534745641302979210162886805632403953427078561083241087888915557935183818943691812417085651295807521286964268126134336684071421306340945283542666650276703557310541889653401121663243279700111243652901357102639345089409128240963126374562131450333874116021471622194783120738711193094332722102211035589833994691426587145809838543800500643470677647647060002685177949454265430214851376997841241798071224357517896849396250230401877248740728004359227201041491166071374392842463541970137182275018070431431947917315440686726939595889890914484004564234292440954883662612099085626396538627079634182672884407735783663269946738293673616515159167061359695491302155224740848891484386888862582481620229813339245717923647614441414709702633807445270063157119803318151494120204063789553831442086268087264277249851734142627878359851277279335589559914994880066298802411460936013473250750401663235414145650259273688898629345376797990035441291465779552825835335099539951794154075376072555891749893738226145618031351245875761305424408109899688928392829628789058000954233215454404595268159303113701117322822470163494572756593139998494811568995350844390702896628328617363331883264491127002208885668434983916704155625444416582775404357423872622398101428341108039197280990084224512459462025370195055336515833640395518165458417757248623198186690787032855794784403862771148043775935334745794191380112500698545318772080486463658649817471704369197699169196020080372174939556398026508387608652687889717104658963042642243497841394138616395090965682170539835538397520113086651563247928053921203852000584347345710953895481319901137087128994727294631482190980382984176967472820488695770592828575607013557041457428300252023082261375664668390901516938784509640397289878750840743429616087297511101416958115274087961448815751585933336872395413543514364277342958393350082523118355381230953047564479501372541700266081154962152904384183353435418073599725215543790739368296103951254654970934663329785685110682645865435066880747089313196803016306068228478682205479738809703651777018664226199120986874874612522453772875664127065521889862656320746261100493599503308705800584194148484387270703602677179152965421101031088414104725842783559487513566518348645867008252558924907562217711306094392474901895299961931788597312725238791988352369774675492344630784770332191844229593309332314410583958232480512827438194075055568565055223355659201083112272239715146683194508055644745841210812649032692004795935197165642014516213512730835837633740795877259973521701970501619673145282338107864767832041619906197912561690291524282408977252328121796234524265568595622771763111179170489077177388623052596785158252465626810927337725685830232433410472750893368870789469290171283545655837038206871485919063017844889914950248730659763044447041076153687418905198288934511247458920092045647042910530636773151547043576625565331582256633092105854041349964164257609845629000471236208516685712938094275521723282288162125416581656338005956149789529326021223696872503442112872090077857990931100245990545885271662119015730634505881079758061771504223251843703363960089617926312496394438705275691791670650020052918647989302142183112722862236391681096263096707282608093928157339298234199182928611870193468319726126093566784515436142239736521902709153635029625753430281585997917507805320210833240359008744098236166969077960278069464185503553647377302820421608057612590730985997449754979539008647317505069816876013181621380967535650633439018980592852818257682520487251621763220179515718283859747415786276621585974450024745117060169179300361516797723874178337780490340052205666245179950862320890114114267971247565464946758862547169406525554981531737862463122019336494588309105367397563581602414988379315362433334522247352117084938118503086331262942891461789972934314348440144219902834280804937611752690917658718282900476193050505881416694122041139447049256093433972942734864058337905885202914395313426583508072501122900813120138255633964088648807135980580404079300530067774765077906217969470993049739764663907169093881803150318731378199322586336150029510628960576337099744162628967139406612819206153520578425922202942567190309736776734839069499345189663136242923840812161258240449896035136485146736901153326510482742480166118596677810815084022370678152255439400828513452443357806085059099454713272102115475764798061605381690190960166624260987708349627690071221033060522111783932431039472146967949593318663459105850928939136120933128006886599919052054324979059024428667455918332411115643126084490571495995850117537537156592778345051107158936601379408417846884357147831873071066477271799747922784947595847875577247607463648283057126458599264462436813392027697483137333303067952763536533618999053097550895389730974312635137185173475561274498917646968195129553262328546111439985018338575192369237785528201110537435030076446717698801021154575283971151620474419928328003093263120796053491592993004930523773041883852738763381572449946825462334015140158824568754399500845205856190109386600211053020254079243774775677258925514668358438704331162618109489360959359561163991550856504577809625952577088464890879577984965712658230103586349591580029234896178504900002862935108737765884798087423902170027273595564403700662499098525885092848303695253922442282470216117313265611636267941659626425416544872002343164334565173529351539010953896958517426914732160443087042866037691445103970033278726721529039816423476975362159390080123815201273255641330818767379403553039809305139929277910312732076520874425708476268810256046890820912788410784212553211556706270360485850518271177464366400673948279061767097407844661832756322963435898870009489780565502387570212053946394512867549286783891289369921719385866782759303577838913451908259653299143723851654203687446528122774025378821272505538216054100362119276400676569151882065547308887133530999465329257271969231718066357720091547275486751405149010869768274456336606286441914878760482097089276825366285768214249231295175049287963891207811292209657175602586544329800779338716909544651614816815408528033507862869416627784793504556470720360403771598116195007292870083788318238592769295273599413417886010699360586569488431712464744790800394270524790585619003296390120637635331402673565258062546974334123849176070254434869166623887574184804078636589321526001841420098460116790433714108208443552015334149714953147161184215153867851150812003742551487870163568659717753507409456837861059046185120236249789684002895503351579033499743324874742648926559607940851478442501672632179730356208586070501632861952522268587587692000496344891746707018590604513548169992940457527279913677465239112389138973311653804316496143772623458922694808754635856329228705753015828573919437533340008252797012263081794348653951755004969894082170604215919980710833891306356467179303091381516401372469963339088478010417519225413598768737185996930825537832619331111469252495418640039693686494914959347964884618745727074457660923758097105834255636129021922838545816441294877960080530170516640106874215428724213038743497450614850607832262685181604224204864138980647706313169377853560808382440008063738069223982614996461682418949121927742250435107447379425332407844496624149080743325855501624310927451253211648087449166584471887399475911195055373847509366980897956049268153483442275413266837172201511868047675299424867361673403010167597137178382968197671033597538324049365987291755117595213991983158571983251634256021880744831150052551931717887021213555761998044092003913609157439251132585737272263170801700943137234971009518641681365480222889463944932065244350601575869383705199489629158423359743603853193211905486805656764876815741540005808286739604022161991371889579305719443413360417296327717412115857962789472596131169902279372213715363232718923122945641207691749690091071098758841070595091190386257218071267095633859423578826573647194632434983005588996546323325598607085748536116841762602390798495358861735452484440388420567572674732655277504840769056998984465511303861073983902231988261330183985894841561550503205677887239899449388208173585183710816841244799812934474211086851146571183120055113365703909831990974980479524343826512473027797260863990222907416121622307919969250387014279862580736799283785762700580752355051207044052510733039598150528032141981006096803386862288599897346867092518056792619270458450153312671153319084605847121077508579843183428080496540619312248847810716317488941314953297177819222705230995453628939233946218862781363946813534100314341363325770457845283762056032891285583855539679133411089397799976307575122980595105963723549595058948456567461699632877018842094763199372308895194449299838380685259873358529830837403166171217855210231982478684635995933587898758050107346046288184267556222832007449728105602836519836978628861320953949400980057014547534549054358863208656572216933749729136599756900299446314364266494827343668993757860792964982047028030199246141788779195931748837070847888289748383921116718879901921214178828946040206647933881898606335733289883157065568430983563293509269212553982415359168290521478101967981948163936355501828121868222815120813958822621848012751824082700786478646160243654774836407425671373825985721502821908401822226731268351594598588150586341366413077920261930678973034394190297607889770235918866618699253036591332250655123572023205320290602520725574698182179372749125333086181754222585726803619915832899896224335960482697215013329260888828229224971630733672487263591540414580608260004570171046497682658392534879663461217649010307134866550665903940535546593843460191242772899332355078289883620677545133227583417497234367835113731250799078794521482628688773172764582994749674751111436421393133582635898972451603021784905225690817504673556530092038388380201173995348285805108111615723550407605660557732946097183631994154797992585033865846378834348690701490535448310750459605292438979304919772988170275960417473003042047798028887771294520952611986098256523196948538288682269603635690212161670494769650767332582712073454104124975614993329795127044712064309041228858477624196208591321429291308865959272960853001363644526904721568653924965860475555601869030611859023478174861885616710201123166167280009828431325490105610037231449987692322158552463807798487159356454760982831867357438054680908077934878786194595401149644052701755038796795162009096293635331168337103439700912469391550186716617930975051778346208254573519635394899089733644086528041771117324213238518279656865841053521020268076646250560310965698405188667034609089072600532582704994912592735155773645894896187908533906197888000915419355056075987442195257746239570678914339779667968009453159450308541316509402186505659332686003879499363581352620408464078739308106742765051455506024976238608055500637444522547211086617030278036307095737106024166433395614820594426893255682287469153501544556442600753081553338987313279200598142392532810515510879639738562843120356693675004772010259728925516202561251479322638880892262043749210969864433522786641225532104678589503995059467556222261598815692577613416783943618154268579307335772198899411112652001684653934985192071320281719621484699990337496963710896317333353670516757285953580257156640194923199663719016282807542211309413191465343826881692003151180496310589017739850045375062804645055490962284314161902237889256085275773298336215760219722023254869278041622405789076899017638439143340181168702124637311476127994797957049308423564996668929444302692644226471313541123651099316743452783489703595400407564839019658750062261198544885324980527641037839469313564377751429032120178357844807041941798433548153345906289777437372273812675455345027025858368585600192080898423557186407975015494922589167643488149959830834153711756015383680711777539419049686454831223810681507179445793522376666496420438265898017141081572185223197149746900305917969117770037652025648342259459136548048359010903495308241868750235539845985727866597683068757395438348088957191379027172475562149495817223164733831947213221883535858541437188436510773262512955545357797532219307282561087133622330544992253020830196836873989673270186901287104052437773634065975266402513451277371900696790486778479466629578323809313548886382705558479411451388095800249694415453962394238376481206131145955368750460229442673199778661596215165039374538816499030956579604049838892218326653095664816455053278373631777963440189880937440345839180119650833424752655148013244735804286019616284165844350048326283299382680810381428181506953101779172736591700553823419539768804808786201278012435484118893932304982694861944189185156295653289422452671504727159930357866010795462797110946737096601960154754021994519381373559197557189477546877841085858624778570632528367626856324217465279134200022186227655530992010066104936676517642943254486048717680290756224781667562373325374516367985318104311696236666099076803610823078380231716476876058896032091114629270823303745917219922646584547945423391142657478177264713099674396419871126722169388055494982396997269313148980891508267487767258175279607844498387795104139433193969186850330452876494682106034308608514233524404711558003700527598768614686921572380515946769715645164003037427508712061124132367649355303109493674158884457619209910247286719457111076023835104835877183947871971855323130483148132466714097831409048311901851168254294444945347027853491803317375160772859800159480505934634747631931720635879974424244357612817187550847956375907679648176792153929241060319974734774823062099485842474037692254805522068122225155783979899844156398560228234565679998039308206730841767158047635081148727318771276595119595564849504827192922238766221915024297015766393029103610126135891572342321845945155611797411918945459602922287463053425742722114527765866225951158500539891975172547434637998976029695519914417962792277806887479878789420958445039098179109834352887665218225724798661018684380004248869440824220003645083929940952798959873345404748942256323449040918058097571993292738173595726901641788589384543757363383772543293906566080805344394477039975548404268868917247990239473803525915771676138436687991162778888682986609941686566043589180680637996565636528070964728371530704790846730888744085407990856547493972765783532034653043446085196790930351426543644212094219810527528770551130943007981730614383800361043897175549088203224658676483779290071652818625664319950053100459570916277771063380739243355855054248545551005336007635977023535927075158626253674290429983189149473733402230688613135282930167866055324192210754771527797704178528572499549071471597889897097134627635934681900251064504185186425600162797631794300452556073624059006509061291343629160488537100294772596771679356692143053010614804567772400001133052408317753944540850708852349821256002987613395852568590235136200643812256512652781056059389599836183127783437738182901715934510443188366667818179332084403066626110983523737286103248524394345950457666323148918447681746685057293648424274018303833591326462708156277414188094725511678233040968661641951439760201589854883413085503331286769668975037283559448458324887416680686768708501952887692236963342065679674807363278327558292043283951357729657311333856434954253113996854777571109447027885059744839840506817753291733580296387992407902827162898676052637682258023626881445045121560856405358085642044637038390444551451619007817740928653838870699840301911571617913348031697337164750093294736682831242743595857178998754279487756452592531850621320414039580562415922430910454359022177201339519627884515171389748736493815201465088517852288565796834310135570553838451174248154431237995688161211133287951310037490230052622041758038709690184748810469421389487942394001450528207740867247856819541382648773088205879201363369623016840636876820302936329230752167477736407330910909390516619580016378471508529396543135038964296675028752855025182522427642536643804456095487522361642641978075860128215403094067777423178981434942064536394740543653544595757134901069360450229603717748638512747533424827015051829910116553762825060251413911142055655570200113497253872029133504165390564682615312445321973689725387643451655230489783251726829673440623313796088325738430851503667525076977130723554324305908085914643343378675360865880764500901825529854365148056941328099357639935184392062604046353848774692519465468950282184640429285369356234946006958051213466809770208657656686983397205036991174777524548832806543684233058208285263618314417325432952744252001603984086774712644981419087003118640640392212132251785082688685881690043425340008339986003457094882995218413450868237751303332379294873630487444908925093734688535262946759153124727412558055455700758174439791863540404332352187647930204086428715543570576203076007880636812309066990819899953317622117875578442656116259730761947670812290771397626430186582872267018417231618497606035323420486302283078685468679453755448941033849619886880023017623812407917714510480760251130838372627822157149759016836667208417103909869542633680723945081418278515251919871620777350685741270810157221446144133562638821924554395070938868563382973202775410118570470578279098199340921019867397009195340187385050706080923006391505122638084699290174418488688692931189334693608105813169188441948316765048718856605440789675329093337343710947500948410848076152047537759076732644164265227123133595760921963573075196368462416062495916692838801623089463283304641698753727502184890440844668664560798762401527359694507146208526941401510575313632769997860554722610128216999029880865601896799832318930281018323501414246421713674136193701691303458454223603183956231745757714842442671565240140451854034522981815029367746570891024698527454972124788382469344780599915665401458754809336954005904986006227036851705829093674143941845751935839010233082421347898691543737878837983453038091626218169404930095562316705283170754968160882762061845422679710609114680962604991750903639728624993266615097210291035385524065333510562650170750305394659928830467012099161987285847012036451980668395188425552025246788216307413697920200181619352797638095880651694531552291714529558366144833636657285173309361421199984749220761654975008600453788676273496680182332519732294130275378857331709198845697283914726495273617209841372459792999040557459856016560641321122308556139722793817288902296545347421860592903195682848497906601209933329413967777590206816485334536863863896669736281595900409295146477482539685864832232933676634530064850608683559217729354859507601759141815999422637373325652573837843884960811595185171921671397900591956688969125639942353823212330681443073191409514519452954380800079289179070991910406529094769240436900142617464913580316144568515708788832458457902616893767644608936009522939872904879457986562638761952443727802946853765540047784602943556888844566565527278098627575755067887349349751246382761989692336591799661794914680651875628942078801317221937997541576526505815717898990604075797201050548627014185352822971201402997998061097459380363853753800121221798818061569619846864051069379820654244933495031849384956909507740851787398175040493015628747619770423754929855448181576238076596413831861161496943440724937067716882714619854232404511340863310225138718097756608884969047418436605816595822991311450865533863524428121019608495843794780989552772021735442783534905899550170293611603517138401543146191933122170850697183728570732111956635771930551605407686003815329744572546877998269138636472908087668153024409537019944666627148728839916810479559832967344619858458829222184812833750899733486378088897580627780462560418521983332344325521411898020217805308122576238058230128495304918108927754525750676649487802856246687766632564771667748116853722331722913745143560723846758521662344109704382080670381711672272708571364173278791296462492765662950838002802765893081147313181420516451833923939145908061524353621467119784822877673034603792485519206803524560823681032461766126520078188595103055621210095162671947069466512303386367708436521352904504157050570784993106737850410537248562589922045567513395613180978592076868288556717064117506783980463166437752134652268488658898477646181517215513661404304438014597473606894575272168995167385091049660321101805938986451790507234086674139092035740826623928373440229037291022227723964222817074886854948286213042206809234705970218181770308729704334783680060085003978341173453103396252934403862418279587229216247087644094066337689046945009549986374625579455369180786988714679780324363973718092264358222698238116726856850430265869093973595952030450135793833255232558950444931639197263192081129002507403094221312930486584701408890380721044843483687961790512029801723983427129843426460282085244916337168828464110455499061676058888488516320336952861706193690644786554495763863577705216703460459245767312313853905876238696007579830513115442255302890359854031819570079991668226777615085088364246667105152817712103696275626167726124355509055277819562689909981517786077041200013040777919932639801960712962403624762606520701997691788806117109602703352422576102250962807314009608463777701898027698554542119950234533192787271104693331480829253725709133143018009323932918888326643163042839766466518566034679086640772648199120216585851716934649088676903764092790897037720657392344992908389423597491741792437071663538554240003133941780582223742824912949276030814828309188449702374213660390341708868656265898027164800487237153834474051259702021981705855990189996549717712086171398959789480393222060504553991543277263432184416321182191378641156225072131685734722811284809095889311196204753247928589902889048575880844042957330904582204110903153597045603765215533627560319120592272011725518080046528586017463852203722307777642895167102450281093103147137009967248108730128518042646715730839910238759661108230112226561586748528940525719738902008888271838259695723785717184777757074897496653579344028181677655843785317892799509043094886655743932598658475671084611749720841999790669433845906949789553691197546830882331355473916961005344810847911128048161374568765315649414502715935381231033082167514288475148583408135137037038339539246937465776726119934681076011696702142921308083571337670810909044192284902660712721663267970653018039772643413490488977442922346245113073413036048029283652786215440681102265261310852267693956595063747671078855567263896821308718424697345650893504697554899647557764840287739739438557910767311123732266301817439082760999695250804234520446141017361223687587129959020406589434980926296642590359681619825017914584363393377356652378850076036021528946089885262748895015969346195564176490805878946154160051386414990298459657003427106815350827585757295230446061855776822537561003546510548782149983025794868426666509773556852764573336975634780089516473148485729623227356485064884617933710306221568106617473888987425234486872610571438118241770499237739309730840873370029702710394231504008384300222295685599942725932414583085074334358614592566344057147969122434988600632005197229327390255965517803157843504047716250625800052055369234484358569081845503175680458694824996289327030276644390564515832490248497269290109239625312837385303425816588642615624414008491783284575363250894329095193995085460325881924506206958407006442425026297011287935856236016327253394258022430970280954125060178056014526766522666549861033750799118492630197237072372221348784516543464898654768994807352289002861193307001144376062771577724706049118016236646421116900940444429055409322483470123473950909604137247436022460788719954493107362117171953185093190688998572686015512857739365299085254128248663179608204287874790647256034638167375741306280912394328664076838283326763732874328417807342459218879653859618043992900053096139113245315156723255583792919675963734548733270706731445687976238802545882295686495926035781054933042195151115297635132575193143258388308634660298521688963286862077359291700942350604756407296975962353584628618587976538697827472525989310348040686651467884117054893626351503712138836966305281508651832418618816818054583181159157928460715156375450060191481723916800208520542849496054455434174191203629323468614426609813304436254240075972986617897922600208812423076408720684234865416856741922311284596599194438902847110803958926752102698981945177653394337202130912953825150118421772405870277921802453494749308391619485973301536306819775971544620572745389782423554798527997555067339264925291302818218242497990946290294769998918017014806441810128512283488905621809306479209062219181975984847239866444257821434872968909494827306771559064353015533337019303550846875001085155625801928147001977901258185543470634895050777823298382151410144688212504373274269248833609663406263659958360070739137311286453622333550545662778893980965759593810673239874840010864601946321565855062565386898750084162863067092473731592716080387466077249155874731846922889731214483587556902169273093385485584730160200477965603585682362702107721581783709088190662604841629415481984727987600955070998500281147414286126733935951695677757042085945703005629838543140902377715567640853797760208101484115072815624251006788770481607997320423323526900805117428257318012990250189543509878566348767036148336401744720869772250746046584865573614830036785750836731211219499114231194234289875858768870855893121606168373889205898229063726366571309180778388442079938891051858089669271324909496495652746341873181299187908571395707737964356621062984367361170437940811055227507548247586325051947929427154518033300740657813176376645635445001650831911370980499489549778607197361541708284707886627548502691937300626061207365873933187397288714442747653688828413803293644947807384510389498535174705211769580376462902029341998096133842423245385192616986241728864393338100504255657190547349608084194069205002102945519631687149196676417222636776914569972484012660715729486428401362316029700322373760535163347467530893244875693717013888346005602819784956664102139202223265855267711878493618590966068553846696448594842263360803611500285113406825170140945258151039481353045523010415089730048534729944027784969789768775254499906933403345687846365048848794783228927825981090097137884980370462363556479425690925696888697257135694537141222505177435605450864430746531523693775030601367684867152643128419139776449241210063693400239830164275817367021571068930548790926004625990278633261908300404644140695132877282831818144237059693295332057584275086859171089270549177191132002192806263999939836101574132266647009504032297223846024818009066684763796681753148022601520572221096432223144508202494103377732486107844123929441673671775681648093651682126749403732014827401611828078949538673571883122283721262526807315916454810238178443203945300693284708175622035928711364028490181296575798482344146172465121101799697960139593349136212613283471753100230594027462590776628897652050657368300381372325225321961919003203493715220158756794644640837168581896068240227731669106287723854668771468951572180908759457668778045593862483749736051700853494632840760354293308843914309936488378471796906021685815230132622093237794155862725665840001824836105319312975974670765290111909509256887296555535248719118087470346771193833744572177381205134070477501957213384546593864967082935064511649603747205066260746428925597711157646528566400571977576348289595510897787737266095616650054960112562932090682854549691728500567812838577727118548268300308370066569852458143296161824819435343602151839100982390693538757679886229071115910048792558998563173068864497625630038629378758665603003593073009727521362322321504915512875517503068314065228676234924575959802067680194615641406161041047806587678367824205501874216782778228814983356379136710408391675735925174047042557627257510915617841966073482420681265420333635445264546395273350113427178477462852486358317830078605153054067002260462183039016529081753507797889949675115632531677941166479568180872016644462756960565233174683154766695175736502201875460895332000240601292874116234666713083502312767447332517174528823704637979002602586468844429266280111635636834315100437887146781560720844658268937555187356475575030175637988664401314596363844968612147029995006588944580316209428197441574898508718304432689237647049242619117009343332297389186879893516283497765296129669220352434180984710076966605795768770470268157400589542143561197010556921126182179060729206633651758358845713823471824753487085493050717994977246805895999967992462904377962207498823741795198237702381677742599123871502452784899315939102440480713594615447520121992095985684763460585460351942523187573689895584973088615764480884681359092418899367475149134883634508625630954664017503397636423511257870224227476771631252458918890475772834383851056136017545827344171347521070497970856318136914953941731834505443676837571050887374369548722037781506449608611613785815322556751708894056073210762906566620056092583541883612454211100882364590557660511859486036254795375339206481635655326884018020796426955699194405900487241434375739164426426017587173896532940517908374953461317886728624998738946121089953478760530031310243736896779732435926681972108054355351762312954122319491321869005606896384959757036562981516569707850776561672517053109161698854314895905693009840818955173692819320549765437942012429108336414228810141539260707596205983541844107333955635681433270556378425405592692738534224951497856304200882950422297114868270105422192165572576882331737971241243980819287541910427320756312636130869844941289510248670365476425303643106899218010942790209553598948331017300955564069748799121140530516285172035152012262321538575267343184299847837378621970578367559577395228248469695069215768989155458143853867537206514944160042521444717027436292955616505986882123420433382635948001575217127382186900587862695014812033516006403856082492190565157111485974618180534296086650161414097611996621220770925662778361979173953743375306250757833796831288620311415131517086058780959906708558868528505251102169925446819364306702838501639592294523577326291927722512674842228629310045998518193306076985543909293776748063260135764499241438558966290544010753037446825160135072787466377985966592691794084900129563747762157292390081159869268530173699825185075339229203781873786166898211150732112150862211149933014234956519602144181072029174449676464961143096352221973027729067800921649150924286515968203459912703051394031582849574341342026337644832546440167095590454853196139900189333241062752739529133393813786918605937630458960635047905858447473363604209596714428419675485445518175736555714195341564906711704533189211403097668929159105458853633992143973810282730191472855097740992566578458031327089334807670515316272891704558660055532020058876945245796886202183509011488165123447958771001840432566854880240775892309383483785163889337854688030591915770633834948941177345013867782684643142908464757887401633331210047776513436300669171841658986980757556792508507826458784192493624573194090207219872192410177050726063594653713386464301719351014487703976439278404638125391924791560694131081548175195721579033826742385264317854106553408164792357771242058518790894652892227908296083857603582626241708819919469604082408737177970027663956312188587127779718430683028602360458649080460253061263117941615864244507152586131884396633289898765315988481355012925205409992642413806794116185897641380742068107068728382310772014309818980843483289986269907154570078094433417843575756018099083185528450098832092526074236844353302921306999090160954427526332954150802105831806811669267798893777219113958554556028275258543622945247312892697837491068413454552921796080304399599072981508435639576699820398346912312399914424548917083133027248912793433194081409591197113933685253819966045752733900092484847696610354439589812510634969852591841744822879538241286869709434761646531845760466716242407855184980454318186448517096394511030684710213677508182609742493003200617372825387333027668248389460822365693945877628031618670592879892492919761662454125617649588770987843914710334192468516245628064548537147261636717049281960879920687044378726797137856806158364465238973495335607515331407765653253408433438104920081263445218966776516368894769813120273137696981665823334964415974175382917648427867371272801587392372223681305159759595942869050062000695171000670191802568561223417149482171297115826558959941298490970403687967221359195599762560672712571324742739120598963120680015334929464579698519615019196816294091034955458726141691997918891922192033572487275458433769539381098560310039418114107589299343953193407960325735745358572271546038347247697620787244134973779658141204848892226163858424816947928802117436402914114004597830996757763329278752066217438228266156771814221390078825391521119020664993153279849425163234676225366155095390787160977466671646351605730510973344267626685933906363410355947500842768746003896767679131120452145756223671300841670433732329147623099797418271154454904976237106125315187586126141053726568430329656361088393846255235193559764664101696165370280418059916971321218438272475245753747970242676480952432335876735790538050956386857224385847825266864356805891332979511621588655760563323833998168650450633985610432591784481766077189005784295596569054775497790633260866941204056770176135259201034147479325776240556413055103205192785822894044625704560561525783182933870302535755991118523737115462817066265135077338781249349426342272883878780696451771222559620843520915870917727872634281709169736571842645131082797289893321175872105710372841219096733409669201771071599289286682873985542912267531457407151374630115202569247446580541904444566204159015215266467413668580747494334837400671761791903868085498717995956202902482433063600989347903642379418020120549114911473977129617702527573231897719190373289289592690169906653910861273448026197865901440035698300137155521262597389325107007105932153942035958252544945045091577674539313542825772942317435782152596278260801546046483282353917892486677379728627945061575067268896452879399244918393700398334150521316382833670040713347236369338982850557631839796280796208497445873081747412446775821521330028694610799432166275467427992492557592470790697265462778620663147332600191903159034415191447475881386178094657134146864187935292129948347756449630903825371745420841519374908057718589961443959065277364505428522235125065392507701058252211484899163614710564606919665874593623982221914544525376950812279273377233286662829519677611027265904895424586799094989941769220133502707885500095578215887657023552849903473402681387328280952442652643042671655775590390760787786858328343503747157177604339271315212362158685924049179319760294530142980263380934789610215054451877352525655177020898761006335794653576145854492039139815710151653509055871092810506699461858737735439730533934309303232816821730553934605478221696677090390059430387625871585727652915973607509880684592492126688452644180850256240966994254996371635138654892858105810442403087622656074563126595911520794659764468803858032667964709139624613701275407646437980815496514824376435409677188603014771614225503594199103090063017643407992832646605776936815717243375918477064760642785330931447562425068632847971570312678199160780308912659197060090534036323312907520776642681264368788911323226344698533453846696263821582228101621439863074032928561933380480656596883586497388024098001441351153687290990837228276047142855264011406743147272413791721375234304574085989035006572428413056880291522169083426949459361132302794065201723205676904827397568523881588468657826487908624616557336812042864910740250631561114022203504964597477396738852528465793837983930165061731849942785005142199748466314743327533425924296833914485901669392742829813058710305866388078749709498093543780305309719964479225114490663353448990037663137546091340171315207047684155925469911142076324585584434982056807347439101105891338283749399932308435756549084828465463303779281463173848500028159955937697426463079566780984175756238807882187672917735853320391226473213235666174242644994580641074420755177662297483022529314476453491727479910184798019920053137182505128828395168790646026098194922528426249310039104339955079734552672347756813708635327830434074251697672512481890079048931964197142839438841564347614442022377611034226105226435690481155852417234207836314729109544362531323010677436272549664824429956159392525478101974969479106666094854223466581512501926970637821535686478758380572598187010901666669636185808578036278612096828131053656410479063046169901154417526480424180512803728567774593766737659515023427065761727870287182050299611792446037145946287601992203168786397141589586892803385945276412664308199371032890389904658049937600476681931107950684198787300841639957966952363080388095183251371356116165840274698590211340523878353447596324388345876665730487494695658794659606271410764966427975197513123914286114706048301379878486333978138240144345539712296526707865975154959111020171759156120961261701476208902623021476011997132545171340076592436712379746477668551192468044303192342993994975620713994481635979429173514542664511941543897296667396588719394217815598540392178859278225116604576215612533080088899521204816755933336592563414294599336901944009641515971016108540720859946771969147206297825232705197209359074431236635918766871082129924819673643974591866937974743873836609869542814305901721214295454960193790991628511739506053973992766779649201178432100728694718330042391198439836738343389019249116805445434974965023924311668113322638910591489044207018903578806889143950379653734776872226929149483833379250248564244192951513791943779322873190287520676037494365490010147102507801702583832800694209124179331698342124012810944541028486042501898273631807814569723063469689368177688115041022864747773606813566012232256973974192425916454714486007780171358665683092318345916099286648979981939928617373564658676247811397635030422899965542167088950766697686266029195313912272416102970420035806155315634498506122255545746726090701063093525000642704585165970759209666801038738599334146666850573599903437769509390265512402902017060650451948486262343138008428835333772316230545715613068635600037846341136558375974828488389780586565691323247697869217870779958918568778898930272195161688131083208801973930811413252036633956854448042173338941128509213689936317851469926706021532812263597036064231523635973432480933123232533735075774003096049244580064337030742254884794042867331827626690113658182017394732960353374291235601431557440024074378658493808283104081097132048388268295011224849880770810675845069207385544180837198524986710600616941264344205266531177572252867055331646878136858972777959387693123998961487373356395720990466599537487814966481655727967458135863684258449128861343319219516191524819998963957623300608858229925559072114039442051934827045031050595395071890679211510075463833468026856780356478391207626609366869285582777807401290369837318427830216999716407777564941230123482240359057525480255187539367773716445228539503332131909878157387566577436166137680193463414349559435678177059075756330513606284048918570508763305948390762221767496058540663714428804177890813593984477984663125921371004032041590023480136271831547818944957551349861473584831597558926721542369831253837117775889905891935440418563106928391878585402257640001590138204579908320865038534672846342256742533398882713125736920966611770884210427485563223589693802407294410652656670924967151611020076410650093455136864319842266834658267736264781107022124964255828113666590721209414290020938860241053284646609828976797831775916730042166972406727908914004361935445605015544880817538061720997925959181079689587250452567374779695661084738571915173557193809569766859657811689403867932974944377557677940648703193778647135827112219105897750718032463082452845993259072157061702139929644149034112816262060389282747283745287646202974655858366870329540636953791481513895866915345942422849217690361805195480878001075632631554854253728332654506970519064117521678848066412412276250004385700354873635649969814160533106650348737823146687861365668650314371471903701127355601799515891636892871432238525167898599731754161319792830657015093149264809517985502718083026579596868710397328926143688858226854613570829066811165803082239154656898329048513134376681048913098348838812631678191672160833390416666455091890579442513003254092218139262349358416980436781000651766886610621277631915969576381072443368591222198243045045170922828904301512450292913938968011077370461192910473581110795380541530544323067605174892939406078188172686257124500083443001781374445165676591719027385281127548985888633381064422102854083064370470925827321029748868158443082128238970329646666596026710117715458322665227372686295087784962313879272394367269459063190333650164277605833902682887451881135265635290899350082020916795816717704872779601940600004379415336825249947965462253609187286422341741996801356953604408802340523745464350129849769556167168891292207136358797219570559669049636575348938648832473669761402231196267308737836887631610071014556498008436220824956930858875795347680292704831694850986917289501865275281691599779921529857032960735783095189368671743145219669506589418559382096634595332873362258334151340927873322659567799010270948216463636701878807256830445045710596088216745581051666164994055457044874473998266133070913417183447543069271046546879856664850539549041853522088705613257767168632677543896598394770633905082486219367228619721243045150680300926522333552888391110437653920015255862469985962901292695680182201545511330200390072095566942861210803081880884440326439571844528289335679338714726823230043763543278346685533435417329327406278765241818880389379299808372905387929737631383947906980799925731909651568989161325109036045075278452909423457896557821723853819841318658015837003297043518051744636225183975683059493659774918186159201481132258266143912866821347078265419833823352898071270095189453538125861894164092034595709561522217793471949729724651840713489892082751178248991327552371916786661852003429214492247467826650000054089104056357808295300871471294108885602353242646845721760967221655499351628574313733108935626731851013487975084436873487131785098450501186173347059591383707170981147152198882722483804864944219769387517508355021777116100925003277111946234104492194666302597975756884780001537355914117187312673091426567369916220753393520462044607031486496149010501911634268081639266190362889897630479113672728775577664656788479601842036807523661707586168887734913061989627656772917504599303345869854089554101032178970048085971875574944741585760029172900504753715179564969917350436965501896930390385059081536347232613392265902877426693191568751685250066922345640869037193393198783116589302107080550367168730321389918031214921336738751093414404884821154334259359039316720424606542320127493187631686025879857278937012588842754702344912839141258594588574318395316627162832861328630200911944332650140084733291565861140874655136413231165301819648788773280938525271758047130020543590847669527793723530145883398436644404536241537238216211082983135667909054728991280759906413304097770562100447547545142356075245210065802621787372618764990648612107185519088120467520540603450619671887587719049342964779270192678024309092317144596950689871087773500766555325801462200371359630631806987056544444752735182072355039195012901767816645741497372795865049907009115345539093145784630784192018657138947658281539976715879843419889651091948700291006735959168524882559302474565591452359633961416876933815908324777528142895034495795439534896728640902749442559282176340414880630666045581461841651630853714134910408123330057689008069455162771844184484487546531986610983221326092821989351876355806437845939461365611225869479319460689999884567327427070499977289800267852388164279008441794179523872661598164758633467876903378345086983241252154387650684443769060348262422350654569317074628872688710760042594118774976048237487642056703457895328547080047499464976597775368643002777733538503975178182542153899855589844072983670759069063417444593355567351540266407543896896784741954511202547712463320946235033553710913120223081311823544330530152234731298841495354872332916601557683061701832423855900840984989456513285248472897141488462527746792660488944685919661976010071540358608359409738413808568083036362387161469091102271557920938384663549282326492954812131908932661370009830735234888926824710113539649621594897888970019176805612552641210165419234090353617628576211957339630061844391331661170651365411217334441320468678478812172988009833375170175192792599930109789672196220976620624121213743275621720023243753275273982938411315070727691847568078136572662637340484348868921125834058790555624885583091944357643997462000522637778803263647903033715707185716966359570853279503790371824831300547352034707739472320049607142847533198100952924922684147028565597633451029396419603086141176482625509399907797960048473490692616223814228567244501022103989758218895279968511571037533145686630942172460785636914213086226200098964662658257493715089682076392259136676156045805665102957523012522388253733208811800455612706507078575814198708164290387116153644457490257411403023945314272418682013053374122352377841540198300175049747028332839125689963983202818575963615913940402770973285933351239881706407045217325865791698345239580310858024783371442215092595781324837938428577289367477530001603089654494189581829431806579653202995526455684608101887175529238389231586243985703677138827563751475781907860523394999088508372586551589127268333122289462739401957551339984567991351529827877337482694841268847169915587303207429034219338653686094094168509585332228701904472819039091753393785684237805298001960567767025545686390259990852898697945326434228867846404152833572527853804249748733932467659882212552080427068408902782482609811689334876180606449496988514713150873676951369638586648154879249440700422178895933689053969476357817092271797328906785007027977528278029543423272318035200811363489816025089364623586905052459175804782153462107299451996123993814696740182208986734728313398127827953917440760541232356746527919197089380410344229744452088729820219823075256351702974640115585603337250665226787039485136071927233439973912848258941191137353648647333823736972958304295227309230763075149095480431898926887836301026626225517685757867611662264032033048254860857034974803365475594559779633987191489181318805792511873517229140190726827279790761385047910480861734578154411353472738661495208205691198336197848753629516872146046245799523161777264585675265845108564962971633849022024309350883318262106061191409094048055383548327176454351207984098892892773500439581766346400857014193552364267468892879849795579177318834637381174193286870365013492492572682825186066899088979121936412540126457063379041931228741880673040668927026440865492211076909217732278654517068059457627341043296264485466571577064866406056551211298630046968568323552087006059038362324769889581614799068154630116303092777381003803252474983087512344493164012982039283813191376323353254392317554701252509114317508583057662972712485597685161459885287117649555801070014377128874550848462018512615138827716410989406067464797019208520986206477674629084685865026351680019183406137798676094104816919419316137706764265735005541497325999281131340174788960217355571274445795038388980477646252303636178515414548211855636431093338112992802455593742723341157582588169317769858495878195264631271792901269912902549296181521707538949754853215167598457968166043424863260459139336437091937869838612892645599458944414394466395990810893767445632025553288749979192440214156832201903284962641054322764368809989465724959237462397164872708054475046212662826039612788488600273077566954862480908840354793486933573512466827568349941704583818958788352985476429268872331006465581153818651504381620647630812022636653944981331215901779178531069933781693160944787130612643801698862666160024939903678450538226411823356408417287723071322723844186980497540363507819628990221614779892159000801245438022668976718106894697415701295150403264895176471541368850410597701941855088028918310039685292996840808512622372700371822260584392194520044431047774403187363309537774928338075776819787619616987856149423641708492929679763584165982496483042192840858081804065669126122357156845498013345670413903359903883271422446063731300089015345218308596980599420635382646910943944474444684192718215269653967157990323082868747951548417680361621866418333113929297773391388125434835734061707051414462413062826010242811972723664380958366950020965049764025320347130342299185935472091924848774535019680480601366719178817824821795783314983948686819053501088358878827091392036544038586704709139362166709360167247271855089448733109524936303934679719086958210721430966620420147883842089715161412571790684886684851402121793682098880963250580405528388198952402838743070450501881654838894898499971249984841864038203904540563458812918239480927025434206607461282920397478310110492187740453987101347981840277546780025051560713750604803167099215179747351684370944667144250579740191782734646032992253671199718119274708125056133161976491221315705481115391213660464693295678971609784988425255559553209461578884818923670089171115111952682137645320519042565124148055839697230987607093486682792684326237147877053674503341840173278684641772750414244646156705842355078778512430134997847822697535523425218377098079679611706100664199810270656166841994673319778200664241471834047624139532671466990691127722634718197482908609554318599818049260823576593856037904072796624370778194100607998081235327857684811525835546813917363654852931984107193351872934964524815352014130458720088374207572076894176459617696300090336320957575866475178617547931881855664275474285836924015218433842281938364561822434815743520267371023399238786744661983269643894816345356035131124351620794389208784399627641744958473137386699805001395493319772417695418702241941520712989337758603010910539157585561080347618993824400865831016190809192123348763670785850848073325374393907533992504701139063064083677636470516542571031300490730005421340828674194587592517767604323604238968404296409237450986835404863805967097870676833140283425224119344283625611454562301693646563379334402311553620851286211588290951933538433882132592432482630804869350820526750691702469951280076222067544906272878616906508379295751478125683575676791656194322649911778724621627694490047657493157261820020393061810429338606027907185425348330801972925967937124340657981945917488031145423276670132347774326948634850159715780617075666980778460962153461443307089292868714212613776512559207324905872591025845871356369493428628827270313101044366969028702206863947562579821346361011089783657288534351865082554789962641457152611269145348251785441442391485274599740227990431298258501097263960288354677598334674047544873831796367996708710500526603453819036118391453077229788857847974708006979409845912350251488708979661753526463727103581584244054808744882346831217981489013956090581733466800588038575454392430812910844593381846000563875935663670622727580906434739721694590484253608408144780103098992749683044355311449350582120768069363242864395239121158595199885346479695147424433337583937462211023078972611450197085830665509238031096402089332404319977545416970358361070397745481611661670591684615902522619673326370127401479806930389288576721865760266653790139480386329039897963260228953577467970876176481311966125259771761804484446559725015287182946169373558323137191012456548185291016548494492498455566752255302288158457070376268935582856670830651231977480043015968700195806968463643036531226302664322248468145104584111349359179597077350184815904498384221194657109773822579462799074172577897404597363891708678841942186790682373647856864731899135595428566983010910287484459268383186376952787663039999303771339083561458847805789117959763583757627088203318828064612855379860797092505539875777401298419605457280812230448013102200380308725801189346437219040312311816677959510434117162063554640765674507609215433170666282573162727814002970340610515482078766036137206021642292754204518011526559244169666947726398811225557311003484326168631398964695902150874649856618194314971064858775253080960001352139155713862657926089115953892054195024787978920024577125780864429720064014889402272708241757551377730210776754659195605546553661720897520374397527459628219989592281475639230657140275733478873687535193573420256497050696116309486495540373342892251860720663162518425421981042104152649066917954993439526230414587476378184149004951889862256986579026395183828097165887125983679068996543494859486106707677744235261786607499940818610697778419046866647351006824061289583870883365161912542978664870274310075910294902891553463477618167080260159062923971218957065465034684916721146080848140240035426745084639317202747911320294510475930478499417688805639315692700249405289049371795548102177933185100900671462921562416741315940698629825554172392422422117092801118869919818833797324572694421428084391103782607448815948333931873462786357131773322939127870269723728676778513152886579518909564629019001952866198907078215642463108242055022692425344492420054582318920259802593075044382222458351787257226625073557702896294513646042587494471230896374593775463849786240318979344296925491051897278210374610571049639414236719735517897626708180667554493546799299885874107060011872899881530782077470626646145431294789113603943468201109427443742027989186489299802503663485611300044485164697585862690094540020640937035940864325733375554656632799603594875235574938177537993406458660188972016837736155951497369137027041601926879852071955607844389139940779881658036285822250261719556800507606171516980318141315179874341961228872236889437182863153879156301868286668256351588804696812591808164697857975720628936466469514506549649200000479624633279403963252119918380435034710206404273871756409105901038425398595194480516656148395194026547539813924351519583827627647364237092328969867043144492023706045574442769025927835801585095304883533811015067625423759428641681292910768202560101880636639139582463506423012505429610894538071786472408308740569600501994074273696817896033311463585376503017102648033964111789334188068941903040481680303361708744761562630100395037006741686818154152659506414592170918454084020848098616784517649557795040539367608387689551741652688019866592837315116447522172370788634093714252933362384545268882549908121643692084714686253997549793339179053175739281804663880991427477283603613745376953283126391364961267477014482155822834967262743049959477882693203851113969622316600727841901154659285499544471317513882690659433022807947447103052134211529036502388127533325145097297782544560415059462486429830991451234928737524961507396995999817070466586665053249254757243704424006931000639154193261709448949954471807121890146680551204662643700415249760161127536344077388295205743119393391898331222323895788315058054544386703398065988437909418627495959200075186279172667733599172579019917675349621791635113666031034817910004365407559290763337580083352210601475942799000605253667674692311534889446780283006867669057473720992157095867085873294116418972621162670344442684668626705444045823044394502057930571813625158497205832114152683070810787953838952082673431655021512547339090904809523679093382430564226028066983646098203562231496965848424871698086088784759313811928363853436559255403826629162199250143706005763998884728059289733109258797502034354575730716117803047469202491179911718562922614401263754384987441495403294614584285565461603253173567117818748980278702527003604239903898731598236936656410823706738428288406988255154651084058456916877354360544280990021176799615658347938296102992123556628119059427851699860071791691878209521278717708265251997621735805486781761531852165787266193476959234840769372551282302096580394319030922147834436636724233661040691587094586449062814992034613672626797801875951977573482183699202741743492804538052542834896883550738831589836652555989282083581766739841329279529529434918407281911162868441252879431062081871464348590784944069537161229062756879733439025070244517066197437262859085706118404696542441606073937939164369547940236513671766634804166861273123756731655334435684111069288033367273322055448505183909061919322653081376993441151105506188762287452710867805103713695673486688785703867010968531918364233575530573047023320888233132229885008204914129461905799629606629158612223491102118237030099829524666220777363353935839189086284428615580795687921623940682653227322892604966583940974770923067986821071191453200563220967440471215667039421480090105857949805272339500801593847698364769470347329680857349179314989526041468355881907551505939426599697254520083611359383815095416002200546082479889191319356076867044183268277862246163172873679472997807804813990806920691712652213450336557117784614088183609417893720219311914126087269831589311649675906468426180722862709734389276301691373546956189231478905513342701672789633844075415322934503260931877944436859474224163176662581193840541429305840348618295945842497617030140294709167437123797681568296854490642644214636068192559111215103666283051150504596611320355871052345143826504891555549562542134050164858345365733148874929677399127281826386820205548649353329881221964629229888534319393016579046850362872396209133351827689077285411548799213573431657234192154952764146724565400880764567438193928179200386040975901504627094964620040416450909203009049414333834072940472666226816660928863530758346040788353852860207667947259227176336091311573469334519031191319539068916805931252133418862223162947175934369243497124691130054508163639277947661630801178751068072645363352517928463399240715837196922660772295885129918562975641431207113328114837993999981707648539041193736044013655306223409870911140603339400234986839896290696590017481487495713110827430243513749099366096832149131802496004157175673840280469972236778179763944999966664927186202664679524549932095146184062562301514051692323257386606664215241018688086834900852919343557948337533884623155312129296526884094372020668995762072712390566252671090906783528254652683299618134806885772996932837584952525203473300009546445249857635589481910767234448545630810436280406956530435390996283092216321828972805162192697090268075419894962203927708869485952114546091882679702626179562894047031141903989542436822689992470371314972854644315460769048243479639989305563956366369947766713345022621335241048151749739768096101345659126672164290374774469874532122351780035889212059363486584549441822766604284372918679329824335101810564795935749141425703753725546347643812156304303777188684753616590478671257939424357527663161830869204333404764101150165305587966622532599542506726000650631469204642967621417742993481198445613470474781933406459057506026644745721477683252759452386067475370862437375171808297634207404078815465246351883602014568361163918905954755142946738732787797411797055129903716280523693315836121253912520840766931540815218687099694065142629686398337986476560549477734480229155122517200203852591849252991553593096807749590125838592747495521752339482498580351900874952917618437114029997520314816706325861682710354399360645393540645780582964794615658990408410795957962794356065259747142825047509492326244594082662431798116896526508350189529405558651574867389674491321676151365798999502083881197585346498286196716484281411266740005180872459886464182609126346348398308404470832707665292022078867815713688821067017866323106930468635638367309934034733859917230701279515424669556096098639500350742969995246964006612609100425617619956712949057684414312903825954942868031682794919253202336453564074996692472192737534420369716527254535635505695038169028023052701756366612055064326046284019518147123767297555843189203285625642717919696537087952878301217423396537670199173644070209380867728074595781096812146872358575268703667078751087524549997659306145120494705570514575360731049761050943278110428814921589164401892224963175962625074523913025680605553594627421903290412840776884371361743055155042344365434336781259924400598630223803703152269708597795548889986921891839373141074811382721891956815028962765741618253574749702839148875637693355729482488775470518505226758869460161638480766366913781017678630192821029228225363811895130951092327998419067532471522483397313892314278880043447483595477347225868301235159996247457657559245428088841367976066645042532533392090189919394112387441474498243722804303362713676970588844470673379358053985550665893460724719604721863150600093726269184769516251555439152258037630956544602446361885989703876268253297259841728476601446514532675713019890309280608415711955390083561956571077556877768700719777986203285621311361040393358787346317071359628804242194849446934299121242773491338987782659299567627003968545196023319583335493367253101126535355166326124762459189539716360603347618842440046722296565434528752565409740441746133619800458704846855876770416450750555704898420286756577461664679087814692374341174010205613066278457740208240568453969169386225905698823338329915243757462098085390787403273919087996820394223253902823473922108194031371220791677193661105182322309049843805267219785362663360941409092807899599357136073408428439566859821821843975062158765983336753379773117357313819101279175233239074152340931474522773402710853974144012248742186963856110981429036426689089510201376239167993857859654900683740930572299010862386112253528042402790297720094131259586276152707179907672160727274426595330149286216214480222861553590832409636896620108463083849692796852170640209739462002118203728206157704493906879791981922816061621693951333620777945736369931981305975496028364057840236878883662795611797508056824762793891551708789798724608660104685445519154310059589705081277463923354839475875381240979488725820903954158068978882729934073027390946151194812646666355641998068893086073613893682583905569559731286134138800285933559682821776937710376225362431977817736258204498522381774209745586941803441519493678035620484814634802777527375645674527528642220883460458273237824562386777717910340821936177207528141052112033996287978630562077601037298528547148408166333289392146445794782226617947569001354293482388912946916939436847445642606773954455717073248414724535053555155527807048804335611697640199057889814698264701765900221274831401699852827504608221802770093908698127157761659727777240797884170199051015062208903742879562094078803493639790762830390693971753358852910056389830119624064669304775380606696431592769384036629930864728184190171600377507592069625898945250868704442874702766701643108823399085775132900203155290609634648356492856330003818020392031337942692724551247699219438204928697411953004685741559535918362825421326437541960143578813110372305949788216643477386592942930727938097003671412834497593435032647566177476209273294816554958696748762394488959901970158134442607785104870412673069079025853736148470828720446001745971951892181806640279622633320621002675906606747436525519265603562883242685604529445766952286153911334848127847515510698113345168494216690913656326021462439657578698709248514756235381221622487288268547063580208667505414919168117199192903954270465726566273131514146330289570494487394865105594492929696073015261437761832107798429942168144023731197934863381489183613063215329410416094999992302964639974678226539892607567435688535367059178214774993873721051247778215459274784998202566549117607331994218029652522621418707540258334897081943251351726742303885908196126046850353282685035570431673716962061453547039336070781573013694958405871460118681045176610282670535505082959506323063806153250549255803362271422534311087754722551343185117071867821461857961117396610569715886142102734303981164614310931286223278903738674675559781159476425607682470008067356382805418184895154128366542921014210856982652520270122295165140218492259846306543319347190563163576358142417827050873732626558419463114877290881994721675417807253570387979274025127372220407510986521109110221561980483299264587893989072904898770945505277405807943728596770390826966220785735895857742458592388533656262987539802432959305362573437426689309783762686566990554525822002554754811843093450641521797763048272306391406851062810907411718328019441264774659775515989764268436677308621581649392631058140351702159156356413104671809935944714310303201181962576956743607057291544075043224052251948534620067916163209601865242173856551077989506382623329976848266313149000995008073463427271346064389041520623528397478304937323379302868661115915063482907833108538627971013279224437782757615607087273531683866489327223913706871613160378112806424305186198974084878351503329136543819399093222212397667143570116143628914506228687249326136741863170561098731521272036048542954002093675177055325220747943536362641844184660443668934183089493814727262279528680249544137085810485310106846584524028434282136084173622763146018906317601984442804091826405301518955024690990142832657323671633215955493214868199153868924275410945787310606801507787385958153899005446409615752125358301544030932740010673996319561962955891881280552663633955117884601912161294823196239079092138281233914805691275594977954930521991069300616641713286094934923036855771816410897797781665540526853817781605503969281975986359721830701028634196362238417432282122150965559593887574539876601972302307235712123924631961157598823817456089864710527293982090685167601436956925801349435453854991775077433071373636080659611138281281635784431982649145727960886669106203673453292343514927651281206220419973600983697777366054296690901854664743575754652704778697081467691169503881754909966985399671523673815029091025630232600580386103016081854399681652078080020929951413476187892462768032655041105146377318646643825379071763515135710256267201625360891925818645476397876892936097404549910308763663067803283768617384349461752742579783601628792474059801292181630520491657136428799298600093891055085740325578706354628293609609826487475962518415466452466572697069358204815467133057518494666656117928697611744711776519082754519885363068753645695410195320012249659437959948705858211228936403695106397229199243090998216886157610203025609005849994857021096764026731980613899011469337672125128133631212572750349229278626453140030788293897141223913385368713464598649453752722344468583245557637897865032458585518845746065128423617623757357028955799211554598432828564696206895805979119643026886834689669600356281795799335037070664059914575399664104004923401754718466880398399809003577605199043469317678620632718573674637353072293354675556156472124254669176659531726350723140560184529676658916290858586071634167598610200259286904751361690075033693451322673600742525052079642110209936907183435942685986518566335352372598080105967352132413256294900131907917913555566441034478310991528638966233593972490289167929317220554241616033460171848810796717368188674456861369546645546249574967347031801918335486083151274966095306541136470809229564569622913204990004536077140432915434687947994795833982569187368332356640026235036083116381353272486159626034796515164815142350945652589062456213148344104380512878116379901827069636690280197999845958558076341800050881314724719184589799543749901030965066803747570845246956770260527770951275942239014607569251540812322843057862694204199644308775865956082196242917954573578888693556613141579740878243853694619629031192856554080865506098751778452289531078019376875058977558175704144696088917000494361483115614298446225751263047321284467284391817689560499911697525611023841976519937532122467517918454636492420993645520404303916069763402377703795848214849062854007809774089046912808195699921409328247866460130026016755375064371327109190436117513972247661213722615649438538854608972521841207980402593772406747882269646779821366293884139086552237524689640238326511592690450590466385799032875130681005717699773358201929854122705590994319507290038399538984609764791941284054341593883828826658975036685116694074179412259945454655346938532041004733914071085134567107885421267936745050357304173546307578496456503802723602220177601374768986047933011974180793703571056206587903079840506677096093706025651177218448884499373998827925079035362556152121361505364713357690946339015619011844290948068816995300834177212491814193142835168287889451660259235762753179141046865088059142775047283183061506407871970911945262945771329500033170040575112321865104521021369722498841249362594169593834724811046050498964205953328448301408079591527187874960373420735420320768792575569301494501455099414421892977344929528008205577644569182702849998402369568683310590165685639489574100415907304411906689155063024029598957515615256306962628171759828219033167391744974921829713116702922226363455266106877176000276666953794186345398919179471305122561504927989017245009128590079058287202851674400094638891243884555710439785110078009234764430650738696788799616227782072643246926924258835878279035170568319998699905710571647665317690672763798528145800428273638912359466896479463268078800232830269725048153170427321234687421212857827670385222293206894457029625168546399238344483428933732018722128440308030832092061548630178345416475184900264966748959281513138814196677339688288270334194190259628578679440073443109189207234229245868578224282184925246558149986458872601746303990477043780607792997905890048449824806733747584641175731570141586517378623659735681790386963561653967592476905531657565173683681500558854354358566182339849636569884176403797669976267772638123381905101859250657766839419697764815681587945094052340248052220848409740344895463583391082229418299298777607529045207148101499505887560256751898131914927090201919543066374660784115422775462149720200463116947307657976752936780405915480760695295233520665155858535047646073846471355145562443191242958860103635771633250270238297189635488830992157908957715422687949596786906312067791749186745942706806948104614552875585162570692889708852545781722470898374214162407019745579861627810445735364169437896508306638317101776125691929328513455868133389809341040278683278074784850655597389003781957989346847168752732542348974248180789999815183761494884606969581111433544064696109981786250282835795217792840584921246003696789750117652539626877664721179385423768645522684293652031543932656897410305520184914835367761766758728322218101875086161510676872410236994428361708249624031335324109041570735774799157131977938107875182709681456227394333693902289526988614681950406432918784279164774497608097716741778791900254203654501039942901029501293493190883576295459310281041352739337629616778104770491414283127799764645607310413362642738138747794259366007503432852397419594926271382202843145942599076207058390702182957184760795297036462174497629202229683546250578525877927196168264146749371627903686588289949710048660390055889656179223624908786699733667892506540606318602980426675949309658421843927879186031566436229482916100532045588558355706553505138589708039686692625788907111732212041468171420459141562423550702974077509677552559443505394732084634606309296916078951540065897259221116820011438190612693157081561109714086373865557993882488530174911902426907699486533315157082755854721828665532822118495182480732573657351667000726421408870748759930392266812965838295373418506256418419680414837248298271779593660052017043663529092785851618734352339679104104209285908830441458576082511830345801650785533254721619798086812366295011060490847495664914380547897382546721389206668444565713922073051209541547833413805369018494953006440221799107442465195691661091171051871384762259919364357814568835624023116789860590325947549014388972062274483482572444730774775284346250389418357360185880333954227811394517314056532357146533847996343142547650275239512743473653432227697040629913088091554398727657233360204633756736710473631941162192087145901912257864055387643175260757424739811963225192427573594843908565599268788862673042036241393646532456560223011531925046353285768596363422459906052085334423187236754622073218450303632274805464364358847549527895738306756846259098154423927683777965580881272462524627476588437373736430293891361736037234625152219350273651115629672916553234733404211917223285453613063655831442529950898862203852792972360379453702110503689933041215197827108137334953737031629176511436833000044741576878499703308968685730910010623199793647435576836838318634443305125684522552211132086202926573653259254789245003965188560217220415235762700187383971372501313150518832951704488420868155494871451741037683452721302086010213001579503591492317108114767355592627705871701519510591321378242731582653521142952945129083771073329515530472390657115059600066901954742675004534861333471291763760826634996366861206245739947404810847846306958489544443221366053136490732092671085603209988703556563788603245137156009602646912545602234502655073314635724848519410811133674481891828737502003462095875307436662505229991391517250059210997229556095233369353962122379468601981190653505316779461118675848279536421693359652059936428157247052098994578447559441781248245792299494092611419832815619764807196064299535354522759113741326149688531855104913484604443343111849740041832134842787671833510042308543299831773288677480576852890737391840522414582353858950989204104223048015505372284230781012115830124578350091461922135075378945998942262282227258047638169966605630173569687021411554395081289630785358581547539837504554625047377085299281184657209941483139150507091684324153828883563093830891134981352018743760835686526737464645776215864025686262387141685969186534306678750620000000951637075834173146938552259749603243391148551895324537502255385604110947123854850964963010247094538862597254115996763137530363700507123113359018560791353112420330305090005468511938871202439587856003671355925946030147975083184257073541362843553674989359536116873173282595483364315371518703199471575832648965270651148552811325345695595570089610896403489655354079650834811630482759370584228026914266196374560468127800109344972052338475463488857777264239079148942025861931601290479898894151661771850652360771711681489176554027694203166825875434832041685904428397016747486862689730636814901155618847978110087420988882865747771484701227788505899581752283107675085775306815044735296677790615911687414658922213379909723121182961516886939412672255650278904331228240558675014481937719604503174806627159992263925768332540575731030634274827696377247296526271390776490376232042576541013927359201178418824809072243134317310946604914081352853879762702400433900932971083530991490679934561382706576386119568686358048152393056262790445257764999294836395889173358834068467544184546579944770548478743865410221306348032613567773668856258449616308767062849073091480908077634379618688400864679874676616269247077190910814394404432242273791547714290419133829100375966490190567871506770706014139167713832592803814194903904523380462360721751597893692340775797011458296032815976878094685709377999761156273021169446829823219510801882225666049609170274507373020955489462546053534432730743134620796393245024942699586951957702367969930874126817672650511523489705682533557505762422362250140848411821181370282305677939673589062620648559657260997879926845591957926313726791612468087215697339671752780926674904481981497923198191734272949322062445135141666344858478003947849680800604056883833179208858008548758962825314712809490147082343018695889781393671845014513629633934374369643038246213348553043890234473244570039291528693183471757067547459740403423670533141588641962596489374456526016315406463330183959823255273873147523716058497269513601076053065033033171684750073259535613692077098260350268227910239859744209210824744915768996453962769003036006928171012604935137650427225830829339773786545973218153531277318664004926648187077217968758946307169352152099991637442391091260568640035055732498294870698578361547317471004322842626807659583119773188618864429504862604983995799798098466153514526928489308541310246940196960755010376483208342067629062274505628608119919116975102828165444549196642696204119066928062970356555059177031326028396075252988175267931947284869295876614511361221388969672428958504517445876604485358282628370169014572531667040237189415338268824116908757085470628915790238787218078126262645652017831988559885293241264256132224363066499183155702325359408170171454196447592930102633657584736318349820241156018719359640875491952442426582380113377367379741016362034865377713249697705629674487098216418130835038030025076434607224470820257957479680202813379114784333255115390877904640826501268822730921238240687921093345129971649687017376421146231720708088161905044259749004650359283293646807956502875155374135994882648298369382262231173071916231784126957728660899224264924149744921652509901437137355806005527605780804063377435035262375022157590620472617175335390042140057470768120118637033935447951693174641116480488972845768990796815665787667055716356961096971148792931716380726962141861972673521968544192223741460868731466616738410009826730107987384117668879958748838910129055233982799356119914746402155996766646122746218751119314036777964221017008224089859470062734897239903272188786937492253924705306591840487376124586672288348574797897630504776448421752959325663839254318982878241670890147120600378366743518740248032657928996677480227102918904476697406419320155416468471445743199959096845015448598468380477701088212497834713446404850369976245353226778328261675653084970482936080074658261251403713914679299112492589286168738171986996859880541028129570883503749558391194747735399067600799610957436032463611703597905850534412323192139753351990279903347889703213115176019745172940198267227162343903065579862931239431433465530851744830137034975884656215281013301790116006387214673480425157884541792717550644629212929241009977841093960677613496643466985500486725828545420103775882424823014379729330938492632035651263331253017673023037961378946052724590569270775525556602919241593011798051789809389563660555439183181432310866442499466783473107308760798879804659226415547714215214971683514545319801625134506009250312265346965986979360791047230570347811807351853364218569855382794836452004508788067419601220620038578627102938218480831921741895405611043733008763123073740484841367851901225644937255963622371167769089089976811948407767636619398009745548776935464162161657312607253124987287939980310153282749903830015512866314531850959391004226771927818129167181165486865133988909631903663170050232920704558457952862836747932046127950181608621873036958901060827400131697674353858460233446602785818056953893270971393820716501235487487350137348598050398755092892070475647139816236721366621275109851675835350952695506049611762812617186721103345667830823742531369574748587414963927800127875708535722417977364148530696301392848108252766154708639984839203757402021850960210108044918371565887197953520248269659260450715478478839687673488670564007247070008591166969214066493838218613025596399324013299454979400660265324833969338797349214772231127884396758180109567675477493368303881708181218541764804712988349834419156739941473437613163196551132333448452875674280879944417003169599130992843010814783704985214859837517829803990678220033818327554485309607993104779671704853012652856086427487029946698345791966895575242159212632325120110029892362153421581641396394601685366920369536925942455255497020074664178680087073177922780600551124159704184353354257741842113782899867231646216339091274371619562162881930439906604344741105644021674778948388975760154935622396000121978353883412429014270199254802902170059685822014614176040191965380494966835463147846718538690680296279643555950305585583589356202656183989524545844528187408277228950203332971750290102023733954399946951195629199552008963464031033002810298604851626176846897793941695061929118874014911655415512701268302226578846267286302812983852834301416490833806673788682021506348814394536133687719581779698402689434573618653380002700796324844513627765999055315994152213805213509760025449581115778842425476883569989877614087829505229792673603165984952748115309296106440380882386487876323845645303011645110998839731832312527662599642719762650867907584137329772800756676544883029291583631767967158698796610817613986151788066503586249827425857737405904360853477527969439636481091364225506205764289858024159641940145624373941617579361513187916266476727392270431612134515880729279974171109205155302704160938756511076183778523893606966969235059735689185832367125655705321771263239520729501985573527267101701851366020228064538386690570158282929425236718011683214733570485645109504401394058001910241992195006073743378620644912802036252688553406752062637770447259599105866402119538242811691841603000182718956711092474019585334839576273387859459374695057578022606740458805809916916922118881485031238544709587429124363133982652053880025532449361143184304744142041282600151066183854360517437078346883070806586335756283831929392312756198768778771644395841528957790594055556234334313046773638315136600982621639054447401664446529959598796047714439625540925289431314114430429180459656179899522864799229613098381932930936150700866478256703503283357294923128372993160478093445389832484958736489671958540365047654917651670152014212336930655998184628312573538408057367122126436865437501265927272454161596641245071620474182996617662169083753488531317000216817440471335389408829448031124524475849268828409516597160901126286666832756277983097852234283751154208907922297169850834152181790485911822772803596287741455343164136242151268297506788859843411952788708954433516430923760076606368371587053290071313749152368042467866623268766451331273505512753019422444464709638935290976395336627106933509073195720348199962386546802489842031858083206538491626212279029653447682912491990968733994673444769779307452040333960146338958409323351708507657511092097245138590352035558705098566753911908589851369236130683467755029923064079467591792385896188037847833296650867622973307852524005092186602727547455364783694751943338335438569606092010129212056036061986292800090655991201523361657565925623709560236285791316392865824412040762434076904638788678827665536491913463093525122470212041144403423518065127802198659611397126513397316726288502597908063223871247556011948787517849495171152694885812564634824977421971003892202486653396774418261719044017878001671576446495196663969218325962103647115333597025211628748872001254109177144482230227105103360353188266091273235488317708457069653596652133506630547936711134355417322754302205348018092497895473225631066773473804017703227829161666541717557936452012495594450402929305177974496758968628088261949750945236549589523328037605959161649365256557212925041079565717188783664666984822400751716171876562698464724843972786544261669840844947837340029520792347196227230406030272443786951192037928498709099418792999677254609591889341308568193059168055934376481749248275384438291292888022482783518067723109886301421501002509124328373556248110267461967418136745945229574169437721687243666857325464766171124228761387100594653951535928101146893342806089688945846171840547644567143481682187137798870908468617450918591881080139097513253663027836125390985218757484722142194192686532664875668283672297063370253271672496316045849349747722604357662430666601113023346576968306863592628206700533925014601120948935383790994801321949007633823492884847002062957996633531244857425187811196590241260742709882134050723285989092738736893869957668355817963855002545925986764249757731874518114203793479032515211209631704121743152321482374215638279108348843547292204714120788627221677144630974647224577867456568126017181744574115248445834746160676718768159049111385710862755934323133591844564446694391914921451195392188577862605453004953456792152510877152151207942768951973798770215087132755221143857847683720937830685898375076930466623608388614468881907586697010260443075643734325015224825645652367082806889001854389066981672062470355273771187657501221881086964889727139238720850088443388720487140174946553815185711986183448507205475614487800167500026860140585838468177520687808604300188674257885863346044433744358070274031050510032735025377163945233149127611254746995730511118282598728367329785751177518078538827844014117291379309301972225908150365602276742470415246679539669635107284576522450605055425654313523730887569558049876898678461006405081827658632073565923341315118393098213213634009675840325295461793590603628775201179863631776921103577933573263116625032826033893865959506227223435736351291014729065927084972421377545177710356043414218231473049121163724602821193180994570849178485925771088502881927114777265462269870777728340173620543354920072305264855186481891818118538920640196618989628575993980904816540112470023729889853095382917096342947327712748557614434627489334729072643663636681185246713914842351621873957892582922603846118147275967116184315992300921680149588959342725738568742288889618260865561970445189096505344393473366695371306927138818294115324876013575209130467087945589601137694432853153594473162012724634655617834647273648807063724696739206707035354483844515106092269988538157671436053075981556397907313490506145891423549779823611226245614633594149584827939711560794068204274576332140237505964266620761359768107937040309925131064995531620308060425564080634548368590595455785780719771288834594925100637669119674238545433155867493786298418277452726871603240975466256125884109134100568618052968752666639154792218260969841215238100708541344320351655336022598011141327582685547679868356204587935060042854268469819241768683080260186192773370247113108239103202383073012390464635183971550692298732113470376894131693277745228330489507852336503956618732084581032161130802201475914142957611752736993318612341151401360881213365787150001742343324212211451845533153476864949181610850912454557211422204126701955347139798568036848590563366832402803302161821725454825423724781889593407741732193836380246299561508834089804926080192964104075405864532820331593425103646450363182879358130722225316776795104779360392263064257242131954241643675946593478658768705262106191425441437844130976572586484107522801499438357945246232320206746482843348738367776468496990792325023302166322805806940645118546904154410787781616933471996095159371645137012570220859455728596131376364726203079250060270457670478470919439620162031181632001482081451779773097759385637665135345263591170045478869362997229952128987036096549459428523730651031123230934649492924623617565929346881436165719568073242225644886311770680222709424192477521917428042916741373212305804170831984719294630166830373365359028181927936720659073193096917569436722455168365897734978346087743666588723562350895366895632207216191996961546870830249569849231179933974721134551238847315419518143929884276961403826981707473742894118878744717802300949509440984639048155428157288705245015308591182888329961038378578211365213618938223828431374916777825539781260174641068845184207347715164905542309147107317429038192419280397443374381108609178190597472871219340825246348084564275251065951936901172943983265267324320166590153824782051778564384684666885914882018378686213826947323523889592632008338051143801970918001255678344091861698714343270779969007073394560986338337644441988976808422016870494431164832806415462246668777110186312720629860534330064219081064057780998246199319998136458823780735252135866272441364191139104855055814283968262664829802017773605930261215988712954670157636955512087815919782604444934914696839641626946355942627018442212191071090631753959719307678990548168916891024178028829307758207396323671734344059887500849787107893064277195228512648431375985735264750478932392579617687317750493249248991286327883409377978706278228745855059039093140794081620619773377980447824576879432586549916017754462593942330823129060576242848083349816079723611024880802178928220444684849001321515866484103299575171769536192047092728958713337503390584386088533860819899315241423858499137147314119703256133551961361614592003580909903311421481556479172529472219882219558896821656433240555756323771065305727879722776622118786070824696963728486307511551521760515858685074991258222168932190786844185035376035748552829652196500923500503636104676399719090632065308266150613694221138481015918479857676739308270557202617560920917622827688457820775221795545599923703622824729710977830377854148311412212647741673347664555849089699908653295544020833660395706529013201496506297925339174188602570638822003699852826905821489867104472740645073072722327582858423450895505154575484447379564682241323849623423191221665239522952697329145050046338264636855568371200753563158519614814353961302954358665539390824990367085877544702568310210511382450309751138746853038611568607752828646983083152894219480686858858512276514092049402944225289694640276017465077764324915236270864886152382218712210466704353400160857590422757433122343114639831251096091833777484465902403723393295721823169182560206966613324468616688057256590650496315169931120825486811670566620662104513873846121485445250334366298756467434494550601961467767944832384375765105245617710347732591121568518719448354491483099211059097954647550199034045206182547508374580594358679023165235114513631257706272816521904117569965339632820455344101981955032525250993856439591017139394808809058743550971522082247455173962822732007110486865309766361684770148293793682915496980543870914093156996535331747637623538865266751227960946545385311856332117674727553744546623551126482952039732325099763808124709746730392195750637441016735003358728396402335016578570213062609005280059839166182004797457484400756260833441812154578712141444295315170915325629416799085985994582664853711811492697480523069137796190306364870573018536154149456272104605927870493260430468309689976152749954807275249944410318462528829083155821052917890729298207627011047541070674188065314474665261059879797439844819459189455175736538218781791836206804551029579631951659226614659946602845507532662398962720648757913031620982521541797170333949138172675425487798153187211357823975741960754462694455408595842721593178651008560328464589834264471232975791075948353124481637220031741838166339644744858876429111586912670874466668157375482200134019432960861018764002555247447153648843901897267813306948846556621603266906983922937288236123567456317959227487276967317503912841548395839663205508693168856741651410095318361192220966600212032747450102772505626172617195394077526204650430580874786708208703311734748309228324418698992654433623625272368061079955628018986326939061525292571380343452439796443872433136121659781499976522933756389174539248657345665516378958513173029301960615290323810304751161324327480442302671280494334975165786320565591949870956776315696728655137051815068644392793777317465164371191532749688640110218327615337202223173697328460823399090775676621941719950222598779426142612312486471021466823513407826863205686335135284027214298479297599272040184442355531972213302497927547473703609646119543300479360850674599217561778898743377048394006063041146212451591807919492690002172187657754416897188341038951832096004026240212888487694633661482676550205326872892319241022521259864897906259006683517514705260108078061811541491627850978969234877624828694656043912577478377395823984369424606554271735301074780293133196257070616285360817391167723678906844948405724457356686469504637795516495010906427737739096897582326424915862604750439109927088365000924703138884370132784041633363513727556605563560557561326033658086819485257819916165020270979328464865337535320820650147900713216717097548312942194217470550283143763244134908382833335273556684239161906823454577342391574906274049969456559419385684099836379230254240518344103988967031143302592317120373510537274783113863552547563818799526202740667638730394001512816378007530045352962035272432281081572175382297743598991414911483986710199532753165752038346214176098051025257492262724129810960199111377878140411680254993510446954966249130776378575657290551516680468128402472409758156165728549360578120194692943977085264449463849017873933146032081605484557457976891524929176411437514777274255410406289067451336456828318463849243333074258327465577370291164094681788252084974435794309006022245091252764631616936198725388488411761125900593544638034591198756931500451053643180125724321690360527593652610221169843302363655398131829616641876845434736722677029629500957778084457288497859187900328248208023252353634927084783947809992068073308756340926504668930209754027549546995671054890288981916073900264070898489391265085486767375886301547441384788753133695651953204312686674204113998946289897898945845986036907779847539885396099905240235160824427649056220584475905036179328381316548364530249285208418898608028713472577190098488479001438523025452883007048262312201392859748953309317861996548481362488801759161154520693941624423303474335493626326968100412298895713878946199970851126457552131079294604356419514418280819495212025291796571937683382608533648506486975469347646345961633755678765261060838420838887820866599479600783068812543421671113031612224221484795297515937442220552647636347002624222262261594844846580331512800793305859220758148329516493327924641177151197243249003633767331459753295594646511857969991619722445965476682649607803767607377290565106564728202122109751777346293315074972734081383951371692305999596024849808912256887759753205978428457010275171927723778413724769323542014885181489044490748781786841759806102540695116582393701238440986229235376821079678822702853955827901451139151573354698429528936497381489352582499963131375801670236190190806269899560053667516807435896617258028182129511234839578120607775172351660189279175876347197233090306734660581609916638129571136124396496500481023035090314067158360031513554822144337485451681546698153087060171933754880146582236916760523447008346976533965223596430329616243271631802205311227159463574454292574470767078450977349369526329127282401399512597012731658880989151241297871391085475851199321296911433487848375463741151858147868484785485870149528201885978872789496915385704677476787277107740633344279376682838313184982991033550543136872491297242170848665348107509338943094419700215970272654006746125904635787543213319103626162597086924445438351706140504917152338195786614145005956828874278872728390288715375006665887141674922809948665121283636296550191005093261032377875690790445488500228716804010452722115975008908385250459830630482999649225096898383370875799092996901570131510846288273477288582008364957351951514885381111747364078753986192090027259468801940137912259171834314026737142736900164145269126701436922325906148732353580806284690546784135991631662389998162786182443807040672059085454854173946432708682115892479329746089898677447756924196550835974901879911557800212003010950575221903127461549933719790605129640506882811417664872304742861413806351635006375405749807739241457957334800862341456436852330770156450278720910590415820095942081629397358133277740038889514244752361720667797381697083032149965007877386316131089583619420834139341678733481898098098033651364800021120667450538944979855286988428716893080877771899250504223839672856225722740188379866850840053517144024854023240936906336252532919603198324063166149140907858026756017606293464043617430775016757734338136444428433935439887157765915841181030203583841214635419657462538506603610776244594538922355970409104522365472148514386489751028701481043339693874886003237265643780244805901536538730925427302448053578957446026072746020058819076333505182011948811521596847507740023119075864237997693881098754664430047308466612341265128470526900861238663398716390555958313557352208334239865745060502729064541598829151271838227793304924317583725129682692695669477004773703678510021052011878176325633884519644027676850610420366921945231441996230252296846632891738712751165804549405126370533810842262304043649463541155624616846593555564623477268689918021058668934902855183871309068257377140634693178797365362557053734164271486960941262567850577994738415228257209415764629262817603421545910032573315224235326948375753747607873497962954443808740387389787675446423018705831289964658436644726118200453683236140464027629185673771164185982159150954728557937122214603209774577385343534603791730278849338086358902193658132365472763151219807083258490749990759902972592980896228464971745943719889461070578750314977531265924553405097290931198257388604901891452911609892463112973458778128712351262933130342277536296355952326266307628347123160680948651884025331404305799504052362745903780395754772546213884031275881426327333749827701549658796375734641901677737216131234413050632625146347502378759993953229984510459779432783092996491860661189058177255254234363695247826766084055732433633103039155009250745265518222079918824256542722447696801737918398091700027743167361382058010609523672288340543857137125399385011773997106349016601788173179101569238598531370492191799151860049755039107873909884875260075886382795390889117972826129229241173421931447635115481975536907387052426931902710230755766838664933370920810555918431128770902478446225459794297626884323109028110155462213971507980651943201906742074911366915523458743803591250039040712227337638618453723114254123293378997053930315256668455863380023057885860756712161274295983031271141965725237359026700422821388297492098279885502017285119601341999817918852877960532373559781166055450003550218869348257942105551242684459858193730315257472178125094696686049337532017215078732116839630328280614307951122933319819439924825897552428677500444166990511360985102826605739122496303365524179233954750082503730674487527415862517306411586905603694369010116913572048524821811698259374343132158623501579558917913296517354391153590975121817791929336932368086098560560477357740641861833204613617869017961003481457535555739998534049658112226717040581494009867423079388517587972008739960980853156584406538173990636626027958266966937351728940932544600036651867954762668618097569460956563938503079099745830016751748860352149044905081079204379038547910309990869791256830868553679427207034095558621168700344629084074405545055761147273971909153401740427933086399087835463162126331491176748071459954528851188207859413933516135876674647997582006594362854223469034140742350451683603557431119960799241939631050505715022323613056122172477118205075464901182239984970791554894799757440686650658397597265847286735066095190426593759623540058581607406230031615598937937114848251336381401136800568085845534009355248769767673904509621722270616978033899366594909002277997789163942908700822372943223293754000772022564887742859144518857012925114310033660686368037363083540494395109147019147298710419170776025597367773609473274237202833651688984144001679635171953281176003406304635797397398914982046937959324120547569261251769753221768101572836026019989310086419258398576851677792957359644058307109990153826122040875723640777270138081311709277690991909528616238492425186053665121111950493430783926544978022845793317937696831022948399300598847316395630351295706457214113502389075910814755891974706249644531897720835792741541127883302400373936894808910135570170660887616393531529288944667683593606626096700136921909954154250517188469977298805297232164437797622109190248935591917479568988041444903539469154950304191946595689001496326978918149112384952488601089088317395425466200888829104367659859419004752673897086992717543152343384854378643067493494327739855938003601543940536018977492249467586494974869971502388942559627019218714334474524543609464295542457462384870239020438838340454626191921904035594342019501575345649645111809378438120956519938428807710154107909486210338422677360763623044613367078581982259279234764095738844186891205953308979865575500510509168980867960770149026220968491495693400920845674077461999278087165201095767794605802465728567097795485930470131196521315893580884292121060587197580592085692151875883086220654342102127828638419558007682213642421856597302193803999942340372960289955543178703137424442072452611314190762260883968356761264785952827164288906986445915366173856775210227611250504089698920641092501697508204020094185095395715323114931660132621047566667435117617037102875278410625797593409071868197706939757207164766312862827468429504080694326135736318491855905863319463923039995545050363215061895316954583780934655848519455022484883288627833232538178757349285761121118737800671848726397683789726932291811065881348635093255853857550027547870859991584940594107006221284825070887337364457052278525377811232428541728937055527401555364286365353021895260011038148809432190551590013371933203300945197723098225217267498909348316181843531567146639967666671455649078583751249705580734401654388615683392428331308840136853839115150445341001096613433171555568236819841000052738113799173907493931818120751639905010816366026893869188979238062741768612088385101097922708851443955130986875088304710174007182068161335974380495986331387981494843890356757284894824941135747876861368091436886381128169683696865328527578816655036590871888333884723642406727951399905220263991240059475276958603937534080276687596555135565366691770146808283541083381332018917069271930791451327759514290760409185456126604526394137340352242801093842738567590937998198212774048366701298019462857376314720230117996595821354704739310350665628398898811683852433702616496960796505208890725443856598109880818507306893116646723387415503177961579840697321853495135601239254578418820865969896630350183480917407623155439248699440788615221755255669449585695356557595198842626345845856093102333358213467557602937530644103927118942003877605037197242446610154903537214910359357385237561586732509595259247851804529763391045269501846507128403954331657647580404640742439599668953058600933904178692466030428104620056773886643920743300468956158140205341023823889459747446935467890235442138793908548995211251133608809792503000823005962139245627930731175118293369808595693005749567323186745368821820599734920125375028575396754787002722365299213406014687722582683108347333768743467739956313841372515987949938700649762815654409517219369826150211453239603269017289114787292343406149653055496090879559128050278305088771024267603196058338867068586730626432567000736754870504384131862496660623770308113316885581387865832432382482940499909298141508400534180441221381544641631773200607584695229130759531193289227245813097300178563172602073364252484450657068366619411529976958427574964130779980111135283730460867057246496471922584205687822446223315157848048600151045407524169355366582301403594155525423650545950979439493156096747777132680597621609605216031673873652755055086075228074118166978383784362800230787915916943011921927768937339545374130144826701985136091058848083558772541348774373203858303690539641659175642477223566055427649441230462341828961381498039948546510002621117442432250808447318105524010434068118262817058985338867501726315508513159943383256456526988261240754332135995208427442761590647529033866399971789003729327733398289911470587706051977647612724863971455714494515040876238097734606976904751935665902156800388970163765158014414692082022137233437137537098130774481507603270862784973280333141112272885374951248255843371806232818605527524314785505094784290082950431255624949484892313427444115536923043438547550681084892876800603574144746868425524105705778083290286273105635333231434956916995637154291049134131790258091739777962239894527730317928728753452559930561334243298923523261799669029317955489353401378625788991586574994695690097462314976452632713238404231097876999837098100887637297480141208788845647016627543037770855860293885735260983120084807105281167112493742485031898840132293632990772217122842692512169394241659641540415236182993889469334203716903186897330706192493632936228656703509927156411944511620731931253285771769233863186321205954386177952144654204131390720132740779396272702146012049355182378146877822623443522775104325481317562583637547194275005651512831303970694369629075372993255243067179060213777846851929800605543624983463162363762107758284111795277036938939927214751565329094893612483047241909778293726747699332546125823110612812930021303292604867414228549311289528290991332597531066727869203744158445989287744989610589873678689601713975017039232054666808653984905318750239956438286830932666994413647898066831988560729242899871126702303927003524414244265082677847999187010110455401554856513222354306476388384374665468372947360499633092363950857710068770940322560156065202583180304115768675468731940135133251461181989307903023228927109667922269105860499583350918337045631117686119965104262188913206600567075145744177503597386750540936689806827334292675355623768640943225191592081822856980262326804425178201164084421103449897722497829377745782120143434503216714596014909044486193454432246657864383744741223613570457523179185363953334000511673689668989639437558221761713401231000773248276151316510932032283136863436801993060520340334339378370523606762752195009575907044863470096301863467599569097381705221552834057136213931285533196790989988549604401049735640914300550309787288885672506403481250414860124174010085625658312122307906395824568076683501878999352765570552971325462529135430862369178685497160730840529105295291975554610290668396423950692042950990461872318892063200667843094270880683655115956197917646243893767623219449070857179737763676030581816895679895406600441106475592414279081168901991345456788728842539086079935246548983088625289560647657385316611153791964692106336291294443513467801127737884196384283756424856896897264189719271772174080059017893174628366761719740354183485323295321579592466720828085140738396073448551404861936707788096574109639255910690892119516671120163820667174020804856840415427666212033604272275269337936021560361005655043868224578348447645930296411002509944913469311563562119699117673372714501447800109770498007782190104301287256905707363404256238777711719045698040981264608065629510741501463882428882295087736939086701224576572727706218224530953484322907650642005349502022106689419659458968046560291554498835298389591372562740923666468058210474516072310597966402240936305262883356313809038655745756849446576926490839682882170837470206773343443199707553900270192579459482035373723784296611407155134031079166012197366192615422694544667708324823167490669986028325731711389214898537264573209061168586335834213202816476897496347864193872870770331566056514124276239579165388736289155032440595465119127493895328279936031929085369108270770513703319288714040553261212181737779239721678835498515507724921927343226754590486089550955193328742152731008757310084137761680279493472953368107360036356103574883898339851414902588949793003980717448975429206958574928807686786184577712921832617502214006097499179735224627185658682897212811631711746164886460605252599693991083218210776315473820310556490664141841806031792958237179215809741272757283703662213763592162618654109091603787844087032107030141926529032087644238943740722629305417263507671451079348664875798007024578057505258921285792051905980874458502636705388239427769186983980010485757361642470072635919321140297396146872144422891848609037792756074282063387403552762012525390524448818122441926840475840753505138372714727090205316376224916441884505063554250871248347997820404150215597110163846870587329968853996741447785234962909388127118700477297792481124569415670846174029825135156179534290057404419703507534182869835575051010975651905149776084478297228339982761391984532223698984237989934763938947318689679631387043871075274709174045004128489085476542294038982246913569257303370878536800328109336007274107787063213001956634154909325379352459500441239036950594901512477120047637485226323427397913435532776238684074455737538665870802986617152894547736898753226216051914789345419880622642919793642460590599188543821108525680192286547870911552196986474969293024907050288878320428709416998950607565831514359012407158868944906358976454680249293569638030817998887749177885847295080121463292974839135474424741955191464047945907949425416296383802883530484182279228474968745324758307013819506591032615176649986148910028954031164690718681294810346817737908773536647248263571657627248017902487074638158616035926942476117272015806191868240890843096054391686941387559364774763846628401677994831675539715745069466400910618820461350016403748879722875544050203754114126992190939878372361088194835174633533220939714678903761743109311422849086002815771557370298034881378159073827285376380426506704092403196461055078846187772131692726125816166593232079124083624798462489539431439277081085043424617453866248816614585740919952806689359684490094858777627496476338708825057323766501896607456857123251848265936007697325953092460878755342246869892941901450986007241105070688381904784958347896866442230586338613739345381153890480441776248587999756136519264503981825886603882586088931862393257389566741016716043385738618427214362480101207376241265452473518057716492544617718718932329679233572608940619010219697010700572332619365068053675934376999153866959013272790395407277450016310571038030618793470567799856788470363677483979814368747583466258714799557961795967986294492122458863883281451263323613633440861611950352713924030060724200490177091781088367783147143046314361493080902730503165694716438253780605017761040564578683544836092904861353745742976601792150270890973375529065054404005804788238573466314544098494786971558118680586273765772142322146899750458910686556704452430106282771262098889981639959172412459433189188591110975388391409242025456294515912036531071305001762570784881174009801772216622644764197168093362947403135762637699164499587930092009698884976285776968667439189070412957143078676983091044047020026938228665451073537409666454988932704307819017278508269051811266010711835048527990878235138512203290401191404797717959846707000201655168966277569389303285661897850740581309617601882863051973495902861964267821731813160461976397331222530469344751088939485390748426294165094760914870867312740432876293761653567879106381267837465821382037875041321576991422144432522091697057821521681061017348241737772475445087246341542880868032653037815554897561402629143030234371960790778233941260206893967190800418246523647478403681283828770135456746996571754386491780991142458997988578727701258021622090091037345707201216245290608241743630716272189323892388721621243785413082878131090327017386299306127255501997989447760197428775187118314183772974244075609914629976477074150399645186281721464324295032568947696423256859561713300946201272917507646539401530227214267235015163053816467840120185556611636219749136527639277307899978175750772078525530071284064387944608730399698919744235280580836243529570630305163720900639508024277841036572131135440097426310399364808654931333071702606965611597772834041402746745809143478815361150187254682232479508513380695832626852428434436802017482633418045226182144571797032774731854609158163026951763683418097387942001391387202447305326677024038474706558507527441968554795792400439466183577273327068469082587024248636686637277593471183373464678814891408099189230309846923435542876719076093585196090860836778701189819795052920687286694500031065937335032520861638047030192645578398613660238716789751502488360406659760971078703161662089960916210013341128376729511532793369823887026141374143404059992376573946194383964464806692546781082258093522868837845072587674963270184578679817884230958194791311458426885701552196157366174402636024467109540870851341967318196195230698927686396686709735477272351813634059580754020855591383449036082044939536336285521382774785932751843019773372124936730745237861221922223230423105756075165731065996817146130316144005653526437011023244276781722488366207344222096906923756281130649444788736622541849702215046625457487741678488754952638521473005043092784616617358052347791077050500022979824572961229953550546280614202843026312076053748925312430535659059425520035766181812819953479003018969788249013577737008461991541431227617047661920332013307605225069382440960733627929262903563810977244277562954862992329642649760224518643566448499631661014205789455652662683549427061104448772126214142385778074747204835538397653894472975873344388798595831654191211416149187849874909789805664576340645573319371899635935202987063134289046131740938705815869553072211842962693505646017420185259167560819527088602058264860620126636109242134225144700708765970863007496024189117064728539311765597857467115379043610428508531256921174751033062082777624532136053813169730942008274247334312907826113404573695340425754303248478349189994035176699386466107318059327390157621400931100093439061463612653323737010222859983324863803947930438911922722126954128039585110178484677797738144102433784860750388540689153238622604658697797716930689255731978799574292983681725298174734979723477781215021976996616952739451098507667952064676010605853514520797561867930694633023536914719070714525955334851722527859234807881039853391811435737633066708278687688058439705713683621719007150297415429580686451441323026500658313875917036069932412318577591768025908692341527727641834064669517860785056309412576945811325428188886338970699954785590115937211085753282196959201741248612377807079544310987142911236921868440168143494624306267038185600062177524107771367730746760903600634162431947402999707231887933599323497296694041144967834341943970982366311667940260104772990741545338757246084851558416801931462528299991890134378676914432343196014515059489725802156791547729839667747930361717068179194385205595738709494416714692371311114593862220973553755235941815278961894798926243761707266020557467719614563240586916743979050875588533475283550238822503263968091461027806546430162505467524649175573491099695796515728787591552732728650141848342914994954681085421776672256364380679077830432294240510516847011929144862777384247862261553176481928439868505530764863465063333382541527140312736166993820716474867653548684026518909397279214440139277440393632147189350990678930369817248883589953300966879132667670665741115630365790719777382814906618707855580523100329829247240200855016550657086729590282889868046710464022153388516269528474237872967169574816734723579628334714572896709296430771441236510538070360199237540173623069727754280968164443607342514953442531306898403926555958078346389778251126355175411970812411192465087105244530564363029395655819500325726311509202902992648248819925000108286801529597226926462971628337378603229636717379902709817638755185640154824333938266819713449348973518743731867197987156205261574844972892864911691165638732222215516268292551480067373357365192930834588948056991949326667427499034699454551431087526875680935397395916600490719248824262319805752370179561970065213455062756056810377585223156114402088354888389913125683425774831339533674010540284942227247052797821417898514115487402075941038470625178329609789674461564734363417146501897854193360937012729731382522061378941782465748310800962243646000104201175375228957785384580719719252725741985977393723876969725601754448479554953870674558442234457844320873625212829859574848954434781246998740248654693555302452212414141812273182178437603944478539366972362000210500995984319476569656452616537051544866840465884119192558056669688946812273717477081795724905824147105392788996359074684915600259077048866121977947442021345658829937760032003162252402369122970062934672138980424796243944865708164362891603163190965167744244930078032885290493491914502665539930239446738297076694579980447274599675603651549551593439575318887343117162541038649445919036031701817345624233890508022217169828614327853249365520656365671857380706765838733742382739000863098095516360422033848238154999831653794594410154501142708757447421011496267689518087152443704342095024331502279582317879819118614195125973360514957940675946371428057350415683806594607048097861207557413617408355077844762678935089390734969853356694734028694472408892822378426399763375369251824952374160666451253783042911962243521884004430949015482334879457479045253758820316428408050941578909472832972463547123013281287185316126422566419148148704240008754757922461430713004873268008829331439102902092273371580049365101561802320894766971390742100435986536899006137897901050584565982195535130355733506972640824802456549852681525661989175883948581478639706762110045490222309311597731502135525629616976970432009507493901543075371048425677115379600416126092764927108668589903920204654443182831119319310930188166107935168816789876588939276594016979597567968403949836322258996021009761938060990037400365803845797188400490615784999183217741696422695848076753300098591073763681175943028762407567262865138721706050929147131658857161456784981552012103904539535984159938049595766502926574344958525083602319793444660118871692971618907049114862244701518840110269557060366654025162996168092305679784291962901611994611606160069054804595258886786313791827945608404093112572860292861833996069970645242266689000829778408142516635996790312134605739431223114106529408822462760270563936686351656497167289318399717752020909452879820441616574275224703710856639501981785471432193894045126874480800250285693657103606602161904117416808399409350841665174490959351679431761992157669415145570217790818595024339168613489212976055478158688997792348856469334738264887059392409472487066642820919026228586929015474006397956894178115527875321111225234740685169723673721254575972945647042281827726008053903964776710676214194283320279143221409932015275927729908889958999563751298105649198337713960874337235369682028520787158966208164979569883812311874448011106696734629699553644755397519766524134293140692935865466305378821252602816870832982034467292838916015635108974508724616147518721161141420243036112395244217380400814041653915424766528801645338351875567129610853034534320313112564486522275339322954347385914093012063492430009869996908757168377667720519120974153496880720314801199071882322084929572036895886729280693383625708097739051948716039579097714958296382731822218503613522674135623015371646441973188464497590923203876653361169031963299863701714967315612993600299018544264076105555809891152394906210365793159698269035005018921015623444024005797278563791102456540584279072279144713725366073904642102246700637079385497976418013455799387820651023170009996404966060345191361540693632053406751472673203278074604000730641417937902895950145721737577399190497235918458334461938406060460275543979546853076322483939092387487284081407424951216139438710130771009079352728818312271728201201731002269871092963226445916796212776710074791521551369538830942443188851964336269270190542965659139393245370271187864403437776785473635292806374410862906396992617620486340353802673382176763868211368667027951718807221934936832221100108359265667970062343127226003108519462837288974120192309726980945561411797496386614858023933769424298273145705770133346012176650678153720817830646489359764623363327560286931107960198365614945476214195666908662398904178860795536577696748840655666458979233473253527550127607223287083932298221434001055135325143476197767138672544004200242446707006326769939050821744226938870126687832224802628574355876682014715929201901861976350896645586283840301047758801170987114509718097042345354018452993852079950639492713830294258274022625846000406390364764170164550091744488478403093098095851302720985435919280843851260466058720722711745268134563340191974764555817552383120816882392065102349911067486523992517595302136371217055919600322460854954421968293831872048936760045247163407435800328913085098563979167195040573479717177264471491998243412893018793751824689230110822033146687627641122366719458436909003309665475780347429428932313010845363529907470953480538600983092501748285308616823307334156966937868063236725050342479625920027237254033413083651343693612593845245922024211997991905554081313426822154995017085411551183043933096324917338792967317424903969173408836321965588643473517496047407257253453424718229692154677930003576909947183643383446995388375133815419471251049610466410000642007508659902469522101610328940448940069597294477173300303534634002738842665019769702477014848187770962333022705906434568559217748340827248401973644727217593957579788184014778020339754691784543284606295738785564974868533086215912506970486971868922171063311788677435369888060620159634918699990845602956965433318494925732031129861102807693043285352685519516470782832436555621583488322178957368176223165971458660156388450934556345870570361657560766716945440956980267667035005947591300386145209709056254444343723010072961950424361336211488137597623691746520488519836363849531185056851699885479438785003028023874248171362782490418815625961883763796367311155430646938529380372111994049095333150966247835807505341771657921912060178958609891766955137985381472942015823093125700170596861897680917544787533562949776175552013855156619855817321909815566859080231143662481950425062363476179786227109287275190988645167350943961080438806947012096088723704605733602001510680934333782140733566132609234205592791084088764404144009574562968701578113770458610710356910803950748783465463666250102928452014754809380628917771653173692353614617128599913902628874452102367310243392450470858064086498980818162720530650245398054541334529018954360231291384936088926746624803610634064014628712725735215655670031147388826029903153454599015978572606548077755346822181144162488548260707620417007582071268629026921428172657079471624058617998169683472993656138718666882141145542061931033206814405630360811251332274624790841099608714841885138837962094172579998736486419587921417696282225411098969044848179887329956823678433972110357544214655575288144432568749762027051068301531045845682202589803899801044440845193792213838028393286600665301646568505567868516198250883642631114782098638732242933055136462165279677634469702271677289479863152581015934784252214345261916049834540390651851269939996299956885942013453145836709383886011459058638691295527884520689586773382612979374506688275020978320144051385917405345189968529866603832783427673628729910406451144375602250595573448160541734480866936312825962378661979537201967529774161283611580841546313787236114447093969706539172704903625356814473807747778400638693126987947365524117717125443013251102681279249325110079627918300914887453441954013494014743098715069207104923272776297311892913095751776399138603826273284584575146661621414560204614869491445221572419527977000977862995486873348923202320357445156199933914191434165499202091543041165723552769865048804254650986105073900766550451156604097413333246328535475595724314765041043673727907748496708803341320514700492331490859238511414392771881967084288007759084604187132768868033587079498417183978500072483906748308762324739514854184401433346501282828973404744547193929887636182681262286731518354546015732841619312123348276333652467773699457035331980328883058710537711312160293527193421139720135869248926797581355963704261975910874107746500790459182573090125484657139274831923086815974050123637029538777806854365551497210997686723207620398073550535018084347956503661441776958886729618359334067480566647734426679328543068653619165274847616886137150408986794332533510793654046184797257891065473221446239937155952839044053280533855193135936936812099768178458199659745759727794738786420481226822431810509029303729797407186255017583499187778591568186815512467216434448187156977720721870882751285984000711888612041270740372426801296899250794576994307633761543394501128189085951896955726825121704431902270748512106319632094351822431109240115726592541800598505543312620951526388671828335627411158621795432655440461547170198501060956421141552558722443317503306201773664316543058807135876033835129521870024055387345529275979092679966561384930079062564331753774188869798879308923080924227484834799758447733886046691125006634931525176785202277436809547824968344318069324636556793715386222639818989357633352621993100905864753362246432061906006309094915805201085584886763040399696100505944976903062846177389011014372080699951140228701594863119375194471184132304579439196749816487843314282405177190615289018122356916499693420460758667695740550590182628173523435025770489452645541019651765358553776490409814504920807124733428767287907231291184269477874761905046404981298485616677840169291098333115298949158940671066178497557026507244302648139852847455144313226258194206470075111275466333941753716682732209957773398313085832353794279321699079939893862738777802022454452885717557937770147848338414371626571932741526135183595441220521188483910572303250988363906533265870466842411089438358476738590226140744940331331223365066842704489861925750671166692085071958049531030971363011900730833495393437997668294851643248677969139837868854398597364909006629366247743493029446339186193152970827212576715113804914740406881721327344820487479781417837609687087202163235894840823712940016672762745424548114461472729839951699560094302274154593513792477295721266339964497941583570007264651958326585584901054846862042811718238562630187521320399779696217949462902452085852272829655592054493326644373506914528836172117161164785957998524134816209295972524754967979579273466061466432785388820151043970059261201709132512278655205075413865743560386227988244371485232252378783688887137729669434796446430940126575957755875314926246479610697518025794391085250567165641702960154552300200081243537688483056558890221485734826576418267051400955301806483158598352290160300668043607778887441753640692067771994640119047858910183949549701312413680291185385927342842932979105312363468229831889450981586041900140347031254177761992999763409036337018099891111857219029459307954365660856205757522239135654903854750412398787406897243716067550974961885302361302384306558308404330044659665665816182201496249423606413669653381557578269955902854358195946585752538741084074622678730017881348713133221447969795331780739611018226836242801010233393680405497661531217787878037811440026932387652584785405829574400835112589247974235395287805474561182273453884163951460155135441566251479313201694043897844693874367372056574027808250922662840989211318257629683575358474225096981787736204680969193446803256664215016903975019442415851940470727089799361154091912274798634787131927089269870932403443440487123940621844846837379243502993984057793625789432185330839390584510429724847062402742147460176222406816181182136975024390772736529492953120270613841805356606250911315987386750245814454002344668485061165220690173554104223622616796550069889840801863600926965779118684272282306066112812279413459010094662135669252302562883296775998877505047262413871628958874115226378529585813320944852680676014649949176628070040752253049308415895049012222962779321512250327446331986649818574777476662949919419616371050623619775892671503015461859813235276848394573280461598710632630157309690706598539809823258888579173284255720811072985504404468617804342986460650309082408937737069014581835352537249741662199367875165889987396383469096293475288807047253781224585086673687946828665098690759706650982434927552266360769536199276231230594907384658827139327047670186263476179347358355913990573664139525491351219990777459476962534867295765840992840544495346020925504054488166283564774210211105392484477201976002171146329370049819360363717629611862418207844577561516616988362943223850119917964623034020434596378673871566572867813422902154866712622851878568353430551031197867664709430519520328817796284101178989582021420141189581366125214752349820638421407803334127143349521492389767217058704021010317505699175445281281923876591781060149093574533308677873001419423957152569488912358667133408320898175426683490786790930833649574125782182230123247445278765654810128098069207663132521248708344537320215723299296250599779048579347892814204031274518783146390901235982828685735944891640141896988029232215257049755088917638406260266463738812103175443503213752816489696826096374081426784215072999282142634004894335726709015907143008944225304570709999890790674641982012615279509133011979516890094511929930903390728778506070362067714620233439809951825296020699447036211159633831340391249488507108892781088580598817179147016509829293994520423480264005368977583188811560252032183685203217801108608782430647049927459820580834800100340880484750316259816541106567436703833195793587442320207207625329034489961223073028646167903373492535386792012002066450343431382255569404601734390014306866662181571148861685267522424667960460056683997553286673445109817664431561445549271696942684365440424555758184312275593418280180641992150151685275394453740022738399184436865836361469164177317641304068620043034355853303187739935279194426223551108089050309215271701936617338914023059132803317391113963833467522639057437224427965558927166603467323971327978915630325830191258433268825155691080864660930351679752665723108406502109550701910755963578809289422731384640359157124523785291079274173236182520360766722496728901845086577851947252550751603906624508527414907816182169545070972361372802550914124639166426593649402465871976848864920220877895757353132566082074902838087925368418005233605349317695795865156237738120431515469655371580624796297066675725937719239545376912284789587659436038429099660320495993002181283819917725776928352339182990878374746567095541857257162725018544528906989301772509195298132708653054509949236707963527015835014376357083955053326030772265752564585999715963860551408614914962454142039904979468108092242961676678078496333418613373718903928762816155187350596590083152121733108665721880852895882267879717724039290235864993051311900955562937542485872778193744930287943066887407668174214530032245282843582333571421284139367691267108967856278639225373363301869022704052744829730707411695408691825357181236424265220421370377662688114949034346894401181539405041538974068779898951764640475343284302448337417801810858974292121762189098599701957039058806122256556433171084531520661257145040398110271175704055589240740542598509176292990597813221044771028743663318350945238706489878275092057123634056047808749867290119612657943368952639983844260985377792174168894973419594778318746680594972588347586869112738044795462053640032481891509985812400902058023545369095860031636452392825533867210390292206547962764929746658281132321792804056318348445736303648941119307843046762626055771264514486984095307896965704497096896594253599879427554869635640679859564807036146990428693181653811961241254211759515498942697331409398018041358625255532606359379248256239086552471828749891900213743459563094270106362827204321426858076828876916909404864850937872861791531560000217969114214175848873149954424563738752738604665368721580536592631359238533617933523976999341432264697302072639487554055988231787956767863782209089363386179416882022228250987702133338750763601298630404617188499402652864879057738827550092665442626719713525659466910995081523424358263168155928115031637734278401623118386855671885872874390522889859894489121684351933489418178910732088307422163609251509319789013630478616001694691325053773175861711768528007320237420404208416793804235219743290485387858951904883072108143423670115264948764738399064624580436144459784101591270695958507505699713369931727179444421827659517951527234457882147785814223783280065895231900592377243237501267422946507067949425400334181965427169182122053834612408303289323924359941153851993933600013201260528726451773961160199310408416446006986886268637123389369136530363044518106650523958365302447966298443555311581676557725701137264451493821560521681114383942518179702123870643948434971446631922940335124960292761954614317077299388146272490336296914838288726834347795188193943799100497246402154554226855832729771973953505409908197789762982388561915671037504147116117380249429766475428583196497608434252928473594647711951613404724294358846810881881364458317265932199909391735770831492631368470302654712002699881068278863631753782981959128125181902267518537669541039835280131873953554043489989753017758291653562339622629590659097450478521230107157711513529293740073126002329769914825776127534913312744853023755186277432421307795129371781003833668141381383055272054887140893918362868557272254062373126220663999079003246176337831359397898524639233688642303817693955528880751842543453220289562183167240153017463945083775093501359935522172401635826599686354784342096095353944363049639847162376415110588673135195435885705522173008533142630455712865470483092150837240108836132912823525936873376145745241486291023210435789953799568405105326540326807103277202674195212072249535086589640748872220912350975468828948642370635096827109284847931235111257457028558991497534197587496246870209494898878850728482852138650343627888650867778098798969152725473091350054089587610531643024665800613623420997986180055530328653759782607512295070486315711440063899282247854112799035799010802198703008173166723144513961227169889256218277073998806471721445053587452335420458787979282195719181272721402264504831417409516425411768411560826422510419352317391163455574307952928687261102066877430675651160057036167858262136839167874737672400703199476384205347853218668967004298745293017707053549690147256876967749481543418995453803831427025742820451706487120151647218318826793919973293693295604569703361288048456840350466539912851186161379022525654334599405472706077277577437780620791734592557468754773649344145659838549008753541577020763561873894755187977763015040472066320013240948284362690612972746515960706595380085533795163321360789254563165084023531890948176057068538588358804876988720185636800235133623029267690828786221718150054028445678728143299254091637231766956017448628830974240361970614635047650555801765515280379103130954195586342130414353929736507923102294248385913841713099038445890876729071381496278603075430289970994490198739502000517994452548385426634361973859551594762218195260435650342780102114106238459542378891045068488409790038340121447614844702711930666505888914812370609613112260123709388099097103257755762820127293993541809829853263228599426056415761960487944884833638023943490167899853275723545456914867453200463305519322120464954011708415336644752206696815381159776345738264211919035411812354263269137309257366207410730004817107190269387384543333378103949649412236786381222466825224944097216627781341230419751635052690608065505622058123888505689750448612315856783209670687357263147629891604749889593713837975666448611448374978549468044570358861103206957940152360458632637530270669387869445346705934285239187938289916650268772297082055030878457120802405286550562614738046351908732785805253264713111167912874849977045758504727474369690445301170013722299997146522583781287448785433256563496542904440457328665703082658129159246150801552059710435856696023504435306336173203902041182639353553983794806411685430496561491166513800473525197664533853887100611423488256329617332877881308094680142119511329069524003704274623476697451198375044488473573639028877855711933545070670761284710240701166448925034178081790344687241572914949325269614170734170263893123865793870201430346536302844267818852532874515148299915129730171934211037015899851420089340702622832167966509336005189541641926547549627531633389472202871511783268584246729163486503566554959907139216171750767641812236513509356589840479742268153159775492997156341251434633160064956353584617436075617870334316032037692958025500168262300609338099127950372972800897196787496826707918445072523345205436149259357625478264747273082772787706465440752973822940869757741660938495259105958479712128564412648036760463244796452194475910714299375461582636850941346233413813214042899139472113856253032809639799510167138643313257576982387705873194355718556133544697620647727194317133342438184945376704498942492263983129645349190561507144172859812182971647440353668349295711822097028063709612594702763250476166527349269644793592860709979932940463029070547906125120265107549747463421778221673795100217033564385956944531998253418621489126941684519327434737622493748361642964247356413045448657378982928488147840728774348164656381243671233192894740023039114199097426945248227699558944843543309639635866703783920495583942156775988486537565500548135599672530062886595717492596337286871314743149928668060433055260759847437443529329975735180911393234487200334995723052986645981035412819646939636580727523556158720316855290159172087252701276468362957573103101197302434811629180276898975493791736365686485193704338343292480425461832016178626408889108042935661068308729983604305685831447817625543433250609234369076467497829979072189510560401393581367421798686019333853827872183285860169133090552994373416118776909022945761269867080897179622948723292344033107803492435952325185651395556683682287998316465104539179816839715772785799582956655794827856938062733016265747840735388458037452898498718431418517586588115644573803282485638236935822302424765810832597891199984203803507574029568101865601627913172410939853443008190603027854877302030688932893773625781323504703815079532894881536962230449704742993978972704238205161469883207084771621535320519217114757479444733590357073232933421320425984070008941366581222639046539871058220465633450505353810562912939123781480998048532478329657007151884447759139152647308920387975089462735448986413093831424367685662708865455264351495960738953634135082685702030992272586729564031692417966327976182473299820827150869530593620814790235990086590481594228784278709564250404130575629737408109662875507745302861530643218872244691231646317731013566638900040991243104197332863480358983780213034376858183169338662547050555652109403580605494575381872531875755950555902956570754252994111555370804123370269684061128690026678198651494066271638557070485058429850139300928120474743659207368025060402064219777271479907318747983866228219804177694913149302080984806276915393302818139450105029224544146191305644684112741591658319621082141878538977149845842534453673445538696681160168986202077759714372778452309913034203573183074370141493927151441077070525611244858696186358279667024700798996099892085853030560415675951878829354739228953732895891561872781732896444227181543418445814264143651978353961491420335314675768096098204603514073031726310980698582029751909914060033585648832524261621706906880217831502486799826741004211976016457319773308931503598465080218281114967990738589115526335328145548659694121854670008922838763906119332148046874715205312126273799041098273811548274254522946719827105121271391761867017568039887785250019114549847377437500390926636935870245225141620451837747957396420979785612004767793669034898391115093262916709798086526190753931322635861159032584963449663399654393264360547966816777812818772482084843447037046668987863099774130777130999729230280320301640603688680812927685699621084084785761921127517335171851336735052574441278778409821400100362653233812897298893775369323530048722451811296723397329775622775446055488864187144739937519318831512434500928684719572392329682678599505385966217837270484073167959492992860869588363118147298692623080606455169478198868625950464751641476491650229779400968033724414601583918006363948679251708243357247838348973887334679724003045283950817944903187784618653105356910056061006106275058225492154310141203457192903638853677951971174493914713731573694527252909066001224735812258495046742871710807949181951176442189262867991695032435603937491162044617256128653358214750379224644294536038986911797793926990782289833612978714603053424126799791246199801976917542595983642154256967090275342300990103532072267954974745797490149244780965877092653280352739531582082310902553761072669310423518644956510078163224172404350560201086367141596280300934713802213929406603004000940482499356057692726143339400996598708990043866266205221103781074833802699568126568322143301693632340926418114971045675044521293064598947513846935954345657198701940278268798836557585955316230316811785463136456428890905142705732460918093367334396814840652423732309673647429074544732111756210426133495907523330381713587813252868291386127507029383067758372673500589807511831189021373272258586104250722520366672949019723988910274930078402452714812252883985320928298761444826423626943432752319595886724765229246443456321493316886385736195008890376064624077170439255779571448379811261638344389181053007972146113361555314780907724307417372874260248161757491321340269167869209961799809614494228585738109263514301219230807595012299788108680081508490025793654646933788555616168480158241605222777256488966602235548998240787875669672158176682139396386286466743592177304841810795221740581939304982810230680614881898766256923181666224314182741215584404239122301982931568830752447921446665248878346860206281888762549421270797812243168391488093259091095347752668876683239525670918317746748102244424561350357563155175399606815162984228698531975112425285259368211968456033355397449543920286315672555209258902278576671916785182000325047608858475947792432466080847354250343929876314681073707239298667080881727286745354266080699745501283138746103634951902966318035440654898501662591250927849899873057908208848707300493753249720853062866657032024215411266465465897862328293455446972106273902016924949449860846914479334229261374474572133354859743156026850355218113336865480180808066522919268926916510375822564238135712047420629395521662785520318568423786622282663528499818414003112641700336306103230485637427548483511257773591929784261762687693282827583515452762556044289555015894614388547073885954119029791805286535749808578820679726140231947843242772752534104889279442799057646297169564784150346680932191964786230185167504705615104431507995628203666150221369043484432145529469089170388253169534061657626537110267932188835246245619984854398258171288041744030526371694564665556835375859246301785348985224514422536733111587080589794145589188995008498436975564006888652424859874004328309854887243145774589796315155569771217440503246245529749936882222585231542448370555667888781074055233680355604405017645272412326641606708180027884937834546948589720555091684760971488741499519634819760857473625671787229368584878120864324739089986189911935746627744131611657905415538125047183689432180354172983818006598820338614833392622482178650698359378322320427494203133339497362980170148777724122028172440686590321553112314411620505901157198496783893528407981215226532164553716346230948663801674917341680570400339394713298460983474207415760155275426293901055826420066262389628925958973450294103674212464481750760755307851224197307041100543286434053864782089056848075801162434644955801942578033279870253078566264568064738376345672598148879971046634558939257751739923115716547835080377886047234062628414113429153726989621686810896731383048359322249491382019900740760052566484500087425083226585669716382697609877337943633188681514280965482443520162206928883080320293553031467156835191775000596959135429403720252578119087296073880994202054335508108047465403910919359689319104094885620242058583833360315255472351840317958649586016414374744119387136757082150183719942848289919316081254250688000847910545152189084629224645730901335692237003216861725933178739461808860214714080678657002825703842475100996277209418861416799525805249190104572654865658724265370101960353499568056717617480784537845279536936449716775661163302811161583862849951139759540956103484846480591477719212740757653823403310003951182344600950253580717603011725802154867685448135513243013619277633708509183678582406901019611403562089421463576724039635177059158856422252569859414989700356277068109791621755443652618164263427619787808310707965057078829904825558879504789993173035657851223118404132847728677879062158896398372190973593942450253849508126329264684127143435616497617238916408639694096651029279476308521373923146047324574232031201253447937887872328773199492146872005723161507875998518948354287315751214780315014953707814734726259121509977570155589750661065396863665335199429134748564334154052724744033722019664625394795357950216829361913880645163887697067881321587501175090750126968001697113048671756591150262357998987678794478245968929156874877756385691631565114809796584157278892541919944762903443548587760973156964702587959498003659023240904716779752447780794397571199101031902033610278466407860260376578724922728854953381830742712347940209705843817020257150556916378734978103605349149713999342234164006436905709502855930206176744085436032459003318081691400876132812867954726406334254175188399503692257376877783165743182485063282941421003509688462711410371458208877327323850846655164826443189432499292791006287611019622152677744018657984977431029382146087173688068877398635492049560874226534422890307150055366784452604783866515860013818640832228781233168745242971460910933698821141337609229861216713520879303010968617280358620613952223624569928795847248750040367607526989584937038425460232358562351883836886580987913858417487534016498665844490340962982189739839400081819863106342164559327559534714470717611107128970710316222631120513885921012178815682053374650092059728190625783251919437821263229305210807962701485048725316171029535714725061677750547671685747878193431809232323261595915462041750257146604011878213744033646356212304666378646235758516297069174325112605753105968544115298421187710918831492248877868459763360661992246244719187135428938506804936959003330736855572779937043883984931923862913374283078078935909621496320972167164526747116536451031169623089260010598315625732583851033752508096930891987000614593978940324937740112758381574196347504737091328931561078444575038516411920158674020524448004670671228905454131470118292781347847043370338933914464250946511564719974098285367825146279990000827209396434302983456696081703053140294699381765568077244416943854665300991191214755125554581774158457661178742124882437685231961963789564713771285082893385888532609148440297795817949413814456399777479273158011600348041496376147876818561769167899090611053020033855248144082538618207388393949448982865430631978406312118537129845213264554526570164920062820755432665669700307042831063881138780696273564369549992704442969931384330170056916978092004320508141714585435181793788320409271225221531573611575589737396517875584222248825036652105704083778058836231445970393892911860646958589371889477695891264003124835026181135329775646597800157420659733935330881690240551875006610033264857554460776960231646443864923601329003349641987673970447372376425503462932077944505109966891723871628039184304116679950758330917477034918954036836052070747617210048946371194247159144600395713608130745957051922577741057641028505559635684697002541088840930353881325041064258794938711681188261353673349962645291780413755334615639135784466222838791777843244447928738696298450556357949849098861940217060480102325395148406874425932688314897029934417403226626562650717961205461655295020198483978048890540521643798395636954219291705869664409108277223644209416441497352072153856618007461353986758493006752157341228618550981511611857385169570526835885798668488273852828915892820135708446130230755231992612735347528033402449441726689109631206210748990482806012010165881740070514960589629353678936272123593658357986778259306740230636333436777759029143622017480818050349630028294358707225184819464554333149901275131704395938714498531739180964045961515081898074716630953921691888824268762166450340116622479664346926976250822259198035321679401848111085037269320834103749262721865514499385794958140718301066334880895321264798788151645418818632356098670299903613982378857198490147610843505732452383252563292820213968403492691297452365829580073820677903654133466142765748124015403220311454708336074015148322562347333610182853744996618019987195850289432245933093082159161202888232005992667584934209066423284130995625122472547332665248146834558718379480493039565975231417368303526689863735190273904034323752649521670283287863029924040479720512413198691564412443030494550262180829238504305747677298084829951501418411325059019716505215614020842712798322628349525294473018908601472300443512841246947646571018258802376488946572096840065741104283722194421521909328818088545172118779836618796745523194044389367912925346123881960159907075797451879781944428943361929449310561918532668904363434420846650705860303323475889612860362748043584163568262101684719085548036331162411743109224754131455662624788286804338717020190701596022598456959281157486878201812930683788187152128260891149191400560129442934194151133411347508620589957568775105117347915486591385492152554066070991464320955166986627348509199665806185349963884343879099725320725270412491762209303011807388208419117420469623669629811563481521333468620543966336418011773142309437733918523095057125494480845425966456434771640656388315249398410899517139119279698255714526643980940607117800989248893920973223876494072536175191947722001680010370039851722797970601124902445060177845540684509720354472071052770024034620704225096555808542044873146089515197278455723743087689655353842629019820460162575023235580573781906370379649040099785256917770024883024871332111971331482672976755731507647433209727671846869631915712141414913376433463776043635822166323304206121398161808109800967225538963450832655284808645714804029004524817649076736939990406794963524741793953141081101044028743322285559147939613482923123964748808442876190254838236712434982820351136150342809996200345540168603327744694458353646276099684276675584108505228375857043114317500204176329204959813434156914334586019373054373194519318846120973324882940163538074445348777302184175044156729127410126016633509609203072863589409560200396256377662330251217207761187014913599235901136732777419553491366359135595208477415732767012397411352168640071367900066850258234768701768199069783315710521200182981132739184451865791406024700150637295664881478455487764280674393268151677748896860016137031820712670227143384295958439799873767106920912459414466403729309445862460122594341116116641171762240259810586695788787020794976822904280810289401734763662519850005802272105405360327756545307008308366256870134415796421538532464663326669284117931741374214444486302984671180582359946429888137290613030852966225190210326252884481072244886984886418277121118004242232530507240444913017106934672296738033304606847025285840500410070311575403507789743855212222489542206390571397555859942327933545045828004070457304803035257883505335735746774245978247165948544325065211914224738958319005453051359431628523787281770702523300292728023946420452633999705737373269526073668746209556715171900127609602748846238424895985974813045921100451382146370432669634561435174398515053034122479697556409587226386500517765548104923124697017245057105496816078091634444443661921338510281241388961529907930372035570049193142210194117004868985116064518337282530050799364392941930170745986446986262918825584111131422071161874949115010094776992828634589370845252837831921658547771301534791516222496278420327646817100915298872120816829514429791163815816046581896376256736136315475091941979005513581060685371035135089910085841582212774408926031266740855939098333985201720129916485226546149816697717401507310508265020746047655117791400360950640982484355975764209826714406315838097722734497709452492477201347415174203275830013790220103949580550037056748234806760796544062611335368045854394063853200552975546320165408390496971007286897696841740597874086396890650562970871010735150622931780219876719860330200622413106327456951605549470083458545279488881661161077717817369334088011819910177764163417081993636574544781403135945447390295260370533571088942678530521537653727914747628022256039663757563512249654279431793000598346180017955486562418781158425047404849994460817631878532030899879017054178564341223083918681474249535902272855312236661068570938204280908959265809412673056528831340222343440831516421552704062956641505853048987714354104989342343148986110458376804457969755095038247135027521089722026832426555682585883608531210738539675144567470476385863529742110511932350454842219398554599453759813433476796050431281134617768178657059230898472371098462465214874775568313230509057552419819437224600102900214297031338764382571706128296593800474640379052498646216212397331025051019690769169928297925734271225268947527740011942149660398178670069767185629374769012815683674339761339854051119518888160923150495094223133576069462096704227017816332600580413407496875966657765195454923317930653636286156549693838235040932785234949755591881834007144347449824852013210802931908208352175729423642106368509971356791458659864650745237889477146908309799096415605234328100030848566028846165454474804558423968858339472324642734677887014453714709492769520128321559725238930331678480469908931914041495194733762726332398933890297747231299462726783497872878740306548504865220491214620992872789451640186102666087884035429125049299985032353468947791708432490809145064538489413142122639743200827463611726624116158861033442387558579007951143572833590313557478567430979751272948250372744877608720659465577845449004299399074474372118976427265165769048529001001875525343425942824984035500353460245646921454787365927493218680417829872565757926557540280567371408610691848961059182440861710956741165023790219471761756330471356227875063749883238206547655294001074189061820540247078760044863512638652461076130834244549257022949769294984084464255545037408384661995066664446304889407138762130258828511402917456987500831239919704227953726170276849283022079501828776342813521524624646775683604153968297220772911918026516936063765131994540168273545532871508871604735304500798238184179422821421110571754565934843678540632667404025742419102755011569342057531002593100652148567064175176397407107216697948851563023422869539259489449101916920112090315923912772090849476726155633678201653559599668894514041553803092117688009924803183171005022360145808557597075050898268267989235895693091354169819023107215696945741745635276755103755640725860326413138059177640274255859020166645149358978443500690114040849763818091658106415652311136842846939593613932044934919067209188533433612945567471585422767704667922094749955883339357853309802109440939483073705078004998103487695310240773668603408260762386938873630975490127253540341421760567703708726915287964065877361674213471135035584012970781159393395480927753899237367630241636339351231124740417470983343576132615276470057424449792782635059952656292386185632221901577960292746407787159414227126757102853263412984305382111496168023225045591380007719734277381832874622928020416178285461542161684236681320082693927884548903791796370698681754025533046833764370998446300766851181721510276175990138697827593923751443760993523871215690644210070077081410506479071666348748849751811232299264116032504575500758185963529245077842090706824693821322260619542080858120081145394890258620990355780084299045309923020461550977271067769593949140316938216147394910030990394554216060026386567005727014747483080325880131225572144588451141917223865063876151832212105360635930420159800679924675078062808956571826288154372193616862824599419632922687805913127873835854655604913166443590236670937279262962232393358852280234851213942740486208729202962983161311385207670337706549060302769973521238112830287012128053034325862071847045449490226717332817447995652995706064288866298514716237501877974818275277960720107222988506425592233047895485819842141145128018248001066706679784710044672234340096786980541186908302803772292757850114952882079392347520496720660127823365859987519693844455608858948190956795078820830158109982144420597762449630435224699251207098112205236486464704889225868586477032813640616450511977196253088446919582736169675229140762926485361394134050132642768230542108286843662574066065833667055798995429254760281287021827552769384944132772054397707983357422882669232934657309900290026759914029174353187747682277658990683787940407180323223762291642403466684245367875060513429247736185454346703750809060257319020183698206946608766621775321041807493708111158766162137039127971755873604803271657563650868164977660493177066529736077827584998746775590623929491406771150714959395892351197068156058559618497256753491774574670955850550368415673128268016305459019631755097630944180322695685677356759048762602769873721436784472200799531498555826850554448649200873440250497808435986656512849926472565773889587323755888629665988995914290835756611091107275130785635669984040249190075809783800570221666018249725121710540112176511719844169103406822804820020948940837526189628341125044607623901765781964630684571058481246648288891864483733159287557676968073575562426877185222275579471014817768389640227414529446836557256128410973309059068397757529655049113911271123909059534487058779638020697977692538261420109789243199247427744517497760022177146097963694992224922767818425546608088947554510486572510252725621853555603804592985789319507753865398859504823812439078463684888877935042007860995392563509606392101715543492991511806306403612199563374707071346947942943645255972178063874536577382954441279277130286422154221091177031905827230980035881005485178069762996334713229562110433188369661748797011161493227198824475780528694954201244270456628747668238744973133863769623735889256587939786500456793755866314160071887998996623390734847215914329845646509870303584055119695433450641162959995494070806386843645168700354201914656078697330957719776470915535559171943923796066920448695479282282735776389094015861646414464141807714868902186447514015478562707592490500978150579244533576296057089359267418626604924913940093220123971543671949090003540389486257560957498206671277931486517391703403947207659039666887649190400916102321384843164132292586050340675927308700413334588399150567867260199129955822362970388380028525693051434774204977607464932231468768902337727399359931974883288980581082615773308586780189068274706119972016369151786377561073197933367318740005323831055984529443996563147101291630534392857121450440986235073644465694990762720240481305313735511682809857548640929966078456876520601563286866155972410903878039025682926350669574492569601697964472810387620910657042433695063184286871167665263685742070433697598846286547190102220801472773089497227256746416060873573869712079040730704086295607563721005155911483301989252806707714718064980163763230511116010087695026230757447576664271134751633094037147085686584253909868174081321993785098554857756285372771572519648353247226795387195069431027972802312067356967016529197235090471574661973209999070813796855960468524443695703387024392260048552541940956429647349497604143580350722091528333705701444239027389764025446508011183675293476297920331321847355053776213100074653545130085145029651049597452713856872953814164846849415663899835129728204699682478973690848890233462139910154585528376843512177051452989137647496620703416216968603388931953803050588867141028633156152830740793748831441633109896991228220723405650887693468628075047869447444903504229634894261448150750689772862931820924774662976878535241809978065527580093652300655612707395824353559760447288189815984826466994550062486792361747138053131774553973906147028010399204246505662833522747792050634821919735264441450467212735671196131329960195271763091369936320978993640343169426949360992753749444549554548776355073907901057448003431062931301231124336394023425966229616087350886426084888127657569610933532142096064147762532787444971944993579539337332317089754412798318768721439410608371010221499327976641471493582854336571983730627508267414823418048110197104607613686169197155955705369970894782159238399244892684405017238939521196110867193565363297327958397654355532823049807090945820732434876657813932271395403371487027880917654678080397329792097255791372843767712920590602908747712722661645392106175913744693260860470196706276585040200938545946407311301464045337738152923583700499221290007701711852937148847031510763234145116120101884635341331628707474656295704291892007077082830205325155340033396737904919546566364876158428590759225897326386874380449583107972186025002945443634904598657777880266802875927433626727390233885102251706405779956107982165939326822814054418616033701403104468466395303111157641069652052792573042391362326333705474346111850278838244581940188918106805235715478788109361294079791028481691099615771733449096512933010385367989455104838575989946764070808442629790963185742837950654881598002544928540766100749277560221213424643602670426777912874062627080939001921679413107139391093091402174998530439769345257999644235733860808770465333675111128425999248052488677670025285497284726733808914944808552351380627269260845707855217496523702989289422518558241469064541237322147230484533875220103045045155152407277391344979596271394512465598319461873827362884441899817622729967726519253595458826697384671464233876122595035320329225814577016576656756982793809359487622330063995639337996919041096654750935084931185429710820581713505346654533027539505600838483453366145479497727098569316984334661342048735563931765763384842288281026437569186566615392778137779922628805034860721093567249295946265039759276742590958019303313235900404491239982505986479308880401101431073836089104741508937003967487672044557633721497170824386389915621652579893706640475741090302089399499088719326746603912188635936505503087435366746310387692517951968940289718726550341388909911375002491771842571452178417583591780057628464748724661002995227697143819671135183837288264814283359834751130270291469175860690382000901122726489831274993346341726710990250139811769428157685774755282037487362438433513026471581601349357926849105757598281188267712935662719264991290778858314670794593592307390477262277503935648336720044546552825954517759606547493867415873143076272276652050016355398946883350093479614400682343152527149220216476439046312275935431936715741846008782668011480441643423160912321054720382947173586240781571240222445279246231936425986940072887352709757943506278756029157148551734766859721709181513609225167803226740475021259083639606643846533518607870914025313834674526678195155529777573057489080995939290771765792115538452442309964800676624374346571086545823504227043100804615895653771830955235366921715674103491153889609561333921903229485282245612749144590740178125917398752971958740188279678511044775023348428332167757167573598502556367634198852379234077094833289597042138407707296130899320226695148699786040932342355712794897352884879264388134708900786215503718382780797979534461578022024503701364613975534450922249986862029357832641193658961217143508673960709275713979355001005285389071214754971595185062510518571176350491927367587228750966538650678271699735751816770356352557867791500738385827362290450613089152184595044330697500381730091144290452625934159816419913693139155143108222226069779165446128305575344637637463630083622011921543242679995970117558667365936917943937718749787807149918153425309444565888885528689676159951131396263834531243081277366152595424582546012233002606968613497403454203538988186624382122053397358908657413485443608909566979764324193541210902283884632138446440282199940893186928495485394367473229500758277497578963516398892247666234149112661657304608296249555542880356565743031159941054523662738869777734109173367170209724280905451146011751508155101244159507995619379507893567665749155414120292576811749806934862168755201165947996582023869485363417305488712232375817692686924817558686131922530847296201295587790822033334499624644759960496071939611609155950753805754793365175622354665435950056538785521633622205287223657342410499330609700623978013663810572031596385070907048046108398359241985136356477912646649486301914497039563610848888843948415456816705108997916582592414901998182533690301191148040622163710001614173038718034707417543345004287315578527416974281765789773798812565293786006522079903668180516587514454010691168824038139463191753766977410833839729513337251743185557797430566826651147996515567216013590342979456514375133137031218916809597690108000076639233346623943162129098929268491312872817890121911435162534499073999825850445929800568073335936004961188639827095344312847568179520317879279881447585364430380970562650476521757644749731547839544991291647690236925523780946463173353039900987541493739894584785646498543016273047041068353862773528374644826036356403982314618440512992011888126865804996204410400021341787729081419503081324247567176490453702222629068593020257430452190836730348959718235890661357387712275191239838086925308967906590246241467737203446205174005519993438688031092402511812677638845695606177225235590962363569814433835310303954722620540520981942665764126379402099169220549800851129112614778801759108160090572719337319837771622288913527405250676288913481846445889769790909075814183736483868584301076154562118389418235780576771830052059366946028441217067572806547636840254846154823064138349415935656128091245168719862273993372435183823367238227683928023671179499364855214798397866582554927758906412954071252020031136218670260608308905180891250120589573064038236365136171465582114638717895652806052145980090658561726253633193587741355009355678434723202923864883204547603795981106443000623448581365765123987339675471171178455001694855652775114336294529401778098290952799750933673925470031660602075287151483271745555358178004504042746657311755135486063437483130639591876270337490242103454827352359785287255945062411908419607540832068279573860342655281283056037211541131691055379048420597064008104444281744070884508662945169861935398651461938371697533130281316612871789876302624859645971531978422547465679179369730702612801410985493418042494768135899144416816630988686641664541963111702762772200228516473920810518512431927424426510401101142852428840769142120537894889006210032960326956887145681585437219892597044285652075658612304204990110304972433178334528692903021526651605682447473548274944066523847395560443544418913990398662066390988610266202145803676489722514344749920188121908218636301837832698494392685568640317412756042785860838867141666563054599767687989850158045482311789390870973960618848499109970376710550522581894364102445023261113739436554092579879321334636307503238935784310269808229115138042089028770329618502221711782588620300568644732643066885745621445878882843130395618131523500882276638783701630768622690567957598464968111548034668648069089624618307049839618251919486760465801310635757440612439680100885826949018027037487803009405910991621235444933256461002811978674431028953484804553402404559033913702870414807885296483260656949087860794980565938422961360006207930830554401988092438597574591803784805971880582813020588803702100212962607840653525927178669102246095073356541800840605454377927682334242741037513480946519649281077763993861064245648305496099415600944596382838358193304526505628032404266512718308893111865451847084137581000628714882316542656091690159110412072215322978549291327198517864958004917760950525722168581500638439026656960013931023806761570955179516977503976204154461093443118253265159962003800448304906452008118600814828347323291027052056910702972363640072791691316353180032158698351565580810023699492310209492428199061064407975222983726726607224897375356539906714878069663994517609424356976212206604665123189542948549968726708518004285572330308172316446294085833286386989335438462392374665212754398442793523770219390478717260363809766765846183838015175091502657858280466635439748603572785186622574811539145518185278910872647037286397442900037092748294934512206681598863634438901599306926130375988044344923134004181434261289872698314483552416782330722183707033589512944043145717684425971508585417700141044020024643175251628443669212984640605038139274270739524260435058550866398360245549906883380127143779991957990024263829312628683702668524075358526425779025609530840289292703882660616193949710010495880858411863507754856599504927446482109822356279605781052333212548547555760368005792307501467578668305586599154984583441881656413363793339028459403408361345907591406160175405395530833745671724456740577461967401797519594989972877846821351887669383537407329632912074728148813199626944533693469458926902947938367293009707584363171601414007148502254282605298507321239663762088542666074723187925852219463913309074756681145522607173225179390039444107250317470718159626834864319945342171690243748907439210801679343995048928355064661338667888957979034298354010994855022068590730101022485539590449775695573816717222827736471175864590525371526073205630212946588269865340396641431199614469710624200890995157532567090345314497091797950736295881930038470407606119051298245313030761534821455157332527328202183068790530747069395660094058515293775568450485221986139154966891889600989103014814133967461072082614763558224088796463161194557680722701560361756266502516201092773193930420468543740536489737234412777660472521918260543199423739221725653563361546299587111181387437756660244549868345775453000863340565263964435125295256040653050868722209694175217972318695175024596984052526533049001936193342030127907158339621145059513234774880394769131473099364923187544921548548003099832756308047511656107132224341598228144757782941417769988938925547065198754637457050131973740303398022837387759734682904409903298847406658548038515039414335618070971724517420245805125200628371744569831717487416912936966545073479160698324301010449023341290361809614251731420646081161981916520808631081459059001204530402230926271485282671049848122034223479731884529532874980800100665695411423261796330122307218733317747061654440576855167978396952323275810947340271224948801111104231850393374720547349343091194478103516559478196173565024113065732581011174593970141978663981645157206912521813007995290042185630981099639703569470073536021558617087292468726896775714560149450520992339660843989159212359839127742575330928370452491976611442302835059214627166297039992790544614801927562815450696669730223013685781268941766685128126996334221590352709794025316093869998374399201085343418744768619007626445290742715831354567379490478899080254462658192561902894137689749550635691933277867599221596016054151710697886853557713156725215698135755785692064246158705210272901532026599836758130205134012458145900938160011691065734273999245719173996657212232375187695044815192271933405401061795346809416479607941211420941639351529058219113930234336061968879576540014876456170376590089485652796449443487482039521174297734262238787287662083506971383882987347319373067436425468674518170269492411155902392937831638232839502744519547943082027466701027722811678411943394987200625742704057830486608493920897509149254323827324754993395526539937696974583509656353424705604112727002879680309272920741701412788800071560338200830093893056839681045628717296967303067032515967246840655804474578292542003447134778574139415505532604845178995328465740213878678447911180512345571154851672856503049461007309656574969328697860216211508240844103219860754374274064382917086954257433821433262846625896905135004666845128203395976907510683424255784313936291999437970462360500932864448071113344559332566943148800300117790648480473503847500340495315800724013382069021178045290936788423166412384439649356060702872047971552643715667783540859306824631643634836036594651238139050155964752131377591048199407268228253118125742937163237053607484314031581864718034935445827785514662691715606373004964888671151234147002191145433585331536891113536102074650890012140772615974289814196409973441115972007285870977218548403938027309972033576056271790174731216294690435960128038807988586907531550889035869545115439970636325135730674232879589957511091830737104586395391646042079697618651640188902683660427340929201533066978183384217572348497936133693182876880243211348493244453287061945953078574757874095110251461840860012795459317642166011861912628295202786825634818263801489465962849980665031150679978010137432798390127673836921215889867489544861973227378236076530622983551821552949548393254501729814793868571367262864505489266150697354097662462176535955841665270917920344353008689654475018091554868046186787689728043499069542749943059818646440166408300382876639819439858834496624785015065025951568557178494123096340982095275556713938019304863967530465002153151176653800114804160036086533857598842070584149309673529135676182979771605852626076518648657919442141754211236024119508589722056171769210678850556264331238694185035964530446390151667066172134660671681632441419071676787149109132086097982008660183424526869317231757193011069549454556360725483402310414050992031660444629492228069289542266379427344209949382356065276566165927407946994626003744128961241155542261201529566803321536655001117357623372760501617965414802907928946750358966561475890619121321329609274212563484193495430440036083358966869791897613512677152515277525095946236890335755570802496611512031230707078402372228866845968247325618195038884104689183856909590989340341764107151746248281586807937543936171414914696330769638506168907544275362007011375818616481393344423795615120577620584132143094661289877621998816655164864037937107152122857108490947231924832210221508591191047484360777722323072174711043179710072205667374698629467587582738127299371690987824123444935909277973253594010834482985698104647811173483534956047298512684589435127410945630259080903560328300971726935222433639349992781021669161621672563990184458541573914118387542571426570686622305995197733933815957486195298687072951280865572433115038808071497026830565623900753504799839471935938245279248106609128468696229348646438377124706026735012866343717483730818171940824991122188251720968724407479731283077841347162397828965866066852844827240147096458369851378007200093305797731763404926042366408872033012896310127087343681526811061081126775917813784166937420061513873471240176144419576460702043687217467433697088284077974513967159063627279157917931724236789649076061202480277962275164398155443096205535045497106072359420505710761981886397093751320284220707534039988412267356704741837567167278911808972037933984300483999975476045548245537322669419062951253918988077748075474421579134623505143518082539252374872244139405510757683484872589922735213225636341180498990483157213665454765468797190523578628047175170936263487942591851050266376638785960994136397817645194846911738632822002694694572613454557905145503675776309504650332970691469659898285672204267070118107416575617622496977040495907135373330747776722652872031443082397214914908671104097552415933295287455708558237374837112023628975646185299667895716582567804051130914967282358879479683176129949505192201794541543063001651096874668424048950139492407503616377105184249357759391487888261680050630959209953809489375018358666646316925587710916444514129702033167496938994360098575003619242243022994536832771169532250533907140313308213622949277330265514342252872837750732614457553546154463721014287779048732954848235521156893800847088080549394136778836050963055762529155864964344651885179116379560789064070273819443607704712998447529912754118093545119585172892137393753946205739578857744766384956844049575264966598722729729606558935889126765205349091146526043927581068723043145896875967291998180383542332812065840659879833765510299804404210880811664091235490034811556990273824214303276583001352990997772366823748868767788502194599864350003544209922205989237953427222148150949884079076061754380165724145614188251796870509986049197055273431188988442037786001479064046920963618052670640141783848468430576154656045637679924815124845917327224354850069681466651586659915182131008344599242173020892757147348788662404081645397410460550223616841827218493837208918823741389116056890057105826673437713690677878307563807938880179319991222204499962501549430188326002259243641382656366411136162590327918353595203576740969701660794712448587624943649493265546884238032589471283629218551791442742997264130453594908090361927221868389062638905357005334255078287565288677912309213687255522438171611868279041441320389065290183382971005918175558788423942260349246875137628088968525535782530024153831516463335222171893459716048539288423244250958006665860285985492187724690887932908427783993234418339973206376152240776518884067032675301777188137360310050360253322416625370464418598729847844609684318172441823950288381564209105507748717362603870049594000899196942806581318589704844240012227352261127445157838869187424060908517257651672162434415703061141845526310617752361224776936473348801647404111007245455644936427799526150768096754126431227923018346461001195007310685954237739799309855989341742088652869620241716771671502779985419383539464289615807304178115273762449513145638778075389915384896831511404513504406720303640441229111067889743309928031754663883421759087674315906534101657194658878551806891443755448177680738406921714460012321514295877970751355119998102213462815742565420801042685406378306290120663108039731383870004420678412348900634648051553124730196282083654324096048501887862183582996248999553289531791455064115870029583460668634072005755281742022558079661965893818743940014812699592340613165527931304430346342975438020846781908780027735830547236776423465396504325900623873859950482082100695960617996951149484526909198586668327604112052019828847251774331097078755144195561297851809964783687835933204569496176437658971354608400662448514658917695745687457589676889322750173289482502163223047205525070865444496870688870196222997969986727461876625357208499819927180234019031947580198156062569033647364906809495258688028624139092553909363534089097538792158398523934631970541707018859530953794435935431768593374138908926960349376800024563728174737161301343044916136253554589215265249947854985651896369829364256693356748165532344014011229758334131050757796395835614555472723316924389369477143353461357507150468973114527287044237354190427907801746371188494151067744434451883031033229984569004435986093255801325757643654288259333277193191563474900117794969191408243986190339252556433386264127543604711870940462329028153840072579388808206141162326953949899227262881766337576905141183031255961642990668544198550141181079996207325093914613678913402223455909606623923919450293037215824386003095225215409501294202783683718822777644904533591896032914939197081604725387200937974229968817163628305614316893178631140596560140227274338052846726268379668650994608275775789224476178062838760683964031012228213567497620266782289228914367152800587238641821851229394067667802855030807208768803372247294426903993272403969448726798241928177764808091789702940562300690657484594876672104798093800357899449264507771009759844951921441837406838555925245862087176560441977912217131043819276882011896281838727074378940752622770601873448145191804963096247251300665718357835957151458228568982384880715751466530834428287808909360147099369052002144985558298655095562328009602038424580927189589601616417555125913367850399909880099177414818391886504143819445488127642456617592298130849116425660136658262619902995325614581128397841212897359833634847068084205138458117262642542301918329991894973369803284302163453358858141466328201700268354623651640162700038145792157240352422803977816438951052596055171610848298558293832082622599617120573192370825818093761434656218979293111838251420588252710535608068983143609432032315458706533367412895665450564791805165860846197896505121520954424826056530161157503642940224966344718523263928907524361679767023528510648555637909045777612759914187316602869047546305814008194669602733290688833449389091114718959494522688966131953419984931117137927988762048429080951906505168193364619946725742471264980071850854455362309119899146053360818234781936145495483495448569923816232515041949868019805823560031302350632354141110154470791076168271142492335076287685841727293665742598011826522965110045093778587397779532770965033763916262211699251825510383228168538151636945184949019886678374138639601885182992614065368997816997351258679287803341487235421259130392222840788223436790862116322770880244957088562451869363141481030411766874000848270315830333419321123107502923693954912234320804175674369163935149637484126197077234437675746123718881019413508828008575422695345515578628320625367265170175177787132535325159402639275211218249086794238918383511855927153226556600408382967118585043887638890776867857743112356008110305264025762628106793528329080871314794275367940499795797600894734231387048518559417378650036486767767283721492610248706653761795994427672439060997532538737420898391750647368769922580197682261621258332082851937278642219629579008799662801476233457946837052317321490488498222565553072843018563799421563008314372223358313399818149326559173695191173959352335662882792262253688185531153314300438175981779761612833414706934762211285731421768228722761648188965852564426866349621748235758163996203008141604078798412344060274011208059482499182555932721026711113309180535028641733951251904287743304193548274464324991545246319201918891196280518999287383170637266745414449642965862726943162263756584920157506614306414365554647560913993757177779760723851860235323275131506921279461105121296188182830575494104341417345616222805102283238735257530807279123598795022644715184166423568755524456882635888050719164883897842436039343767804070817457141510684800497913883560444140075296621768330644789280450626621699688930121210628555267019811017907002385864895501739358054087876828235436841671435952783392744459337921980219803428660917345152187530430968386557251627202524636290902923416999912089476336513693477543254436606129249665520234878807416352481170153453889963187171383142765080616873433671774584145396134460556023089957742658121131134674008402065293369347735315703392924861078698382109381365484502267929106514065996197510183796849228068155026485161960406856137338006878984463991425380298583575008197716378434296605605177127233904286238271795180318394690311096336809430641925839932418254350526604512061521805106259740656195934960043735693226190706556375833459056281578129948091382300588131058418685754839548918748315738987506569476466921381935374097752637396818965792952071566865921761380485996651901142725753820112271471185791789128650937862826575742424103815190388250521111113527388989793647406320278000323935543867048491510393278188301190296439765208131379694262290164561813189420608720732422723437766839916794495875692266604759865921038349910262626275299195681328635555256644476636944214284575741770088056328209128614963094208786816230712368435923935353502681540739199713086701357248461497934003260325466298613852161040791145752921812301058738218987492689821434266927046702364230090166977679242095559374786666272253315366153242461864901187334572192374523639171619732566864036676668039283755036687874033987866394642200796449572402713031395185181025712332648603708373000258279453733852434441604730312776688503228855721130380246797918909801864110891763001147442675479078888158835993576277930517919518599617109384613006056782528893265484030195625819771170481369779319096192366352013271723568474987235360257884630492323264397997634987788484547731755694778077391473923058630269781783168558790296488719110007220419763701219123123415906547697417684856001095746048661274204571304680763032603809994808425099816756153560716627256216821375740072461027395741957451709108031156531222323265851301606403353975119676232911233443263705564480484729584358924936449086917399927214092081923110568982002605781991179353953737118538293194119560118112528833158743860497849448207834927284937236500138005879872202400127324065333548131883332252015163501743396699534927156350223150164480386498403100131669097566119989403519244065190260517974848265011540458384818171476858169633454034575363003233496765219851941850886353220330662679546487806326404551095064182630405424370887995061303345901329194614083535653737861883765825047859437251566732220200411491359313040196856127106126809188717176364906383535291984783628319725080207250783940184542120641148908573918476862512093980073601680869343984797933640939001531381140750876075389698082445659436842943726493675278162862284624172971819194365269550641261764772918229593767247341717850713692038028828196515700230699000005146696960930052275834322996451454959643409501686623805322801093454046006406857734697067382235264300293286486061055700181773904293254564347878920419990304813310903470037472223086203574891462343706348141315709439290242611051530706516098564136454174351591139989028728437312492144387382990441223026105823442239876844302542144321067003675569781954236669270355863279248778877327778214124923530470379896716256522406039123697278727516190852468327123212921673906292640992890363382835552831183535260652467030897302757945007909644062205142137366168896237089969463357011113633682776974782470927227254777991718347294234919132795118058416385234380275604765623536126947648876460894054389670043762438260719856548122195721974035126867212859236141148379404912497054484822408319935369432260597047114864466603125342284394705715374234326415236747463051357202610519689621125905135080843385359240912523116664763473742983897096829986501380783644330895044531850316596316952288485174776047252026450101057883061463491806339131647903508015124568023179223381173099544588203262896631430240096891615286719658547100024327644399225750407833355846900640906902971114662330475783768042804946902278171106285671512194508225557582631816936361582410877099520429913668887111597203286706207026831719043504178867645273166293059380242750864800248291977994369652951287280638988716546923990428731937009090695688871912011210448192281723026806658744101011797274683107487338491506983818983036496108045121181969404315787277634784786785860945943200610378834172073552823793419567623480354009106959208042942957646591980503113526614772680052642734983403368771416630201413736477869894527366432593542876995454907799076955932359599672784263019902055798702881220750066898475322208234526457166705661287676965490649245391527389763128997812912188458545106839028034174769384980212208389879035979892693300471017314078994853417004821013890741078300207090642758122227609948351069308273721444357721112299875501889277872932251414443768070782300383076337589198413672095484792588198191449110881630454892720530400165532234917906499912811061594592155481339683924118363264405140800309215117251774872284324139707805563846459903536213150076728876044582439930100907282663989155881429797175231726964195200953937969912606609140517282179732711476592326285709805986629531942802399415355129923530399421099421300664751741380868970628571199772589771799681220536964779086495455345475267281762979591389206181652359751850160009824530672410810562511525370897819887210722160524613909976184129476274974073195426905282070297999863650181203317097748829096600885338267936370698199495597009880197255944637476676556311940591513897771136588688790137991654601346082073676226911425533093914959805535609804262649061528050403959930082226784626085568106634452457666097948725890730341902507797461846899502205563633733646302324402222878513009598520431538695175838138591743750476036155040422735969340021659370915116823241619703875492649411203939521477618491878401792155720080828997468197794993963893609164003466620349141027180773756126282740901867517578293204004281889119394036836538214210973616949114781735149363588041643938375923146517727033017619193331036694274757199209495000591475486958094349628767092708812737992314336437313410797748325315852513213907383273260699157378160350986341164021353771146096804698953306314628771441511675924313789127436075695538946252293499658634062728509704322878852133961919665987394846262190698118091816284298136980242250725188140251542802212883438116820201889688348241712411378733464745417992210110456161401633814308683495775217835803707617140287970786767375442602493201279104513254415290844505937169352982479580933720455337098506374402356622672414963314707761497125251821696504880078730371820573793836984765656907606061558763119979895058107361520267493808588647064734887259743186408086722700675909579105630760823068921297597782165750699295404260235536788573473975221319944089236618690609207776555917799319778502244351814547201891664529690282555609229949509201827807909840302915066339786246384885493350598723209307600793281163098717739952346535309135173599107111945191485058901251960567956510063301884529496155103277374596772694391991752064785480075142314911871786755861376645555002042671578234518868810564280854582626857118273667308019630586638446628484121251111939522632397388055169819728879129622051032619740082157995409488342196155692410068318026934460194774654066025971422730139169809275285650171087232372305687310296059393686232141193250132318483255998011102111036888738647706401708812233157313827558199364241785769541065247892673094146000335234975006203340466783704586190018601713035818353809313439794345521634365174398712917580655453327007627840592402708541364130292569320973482540729791410162003265863840048681904558270081478155946199212904860292233712568738805415588042540920515888747101698342598019325117356387814223479986592588773321012034804526316545751135566020891376112448602203247739404507749353138564478919784142437177321077365158572737531669284204300937788482237115582102905960971787905436667704104220998777157935607176698593712248020338207142113869365730480515706584894586610041700377852616813933068757411115766273007225386788345073236629588074558424145279122526662240302719636990289127782041270862713351643584074101208852900786949182620986864885513600058400672412193918339903146855268383162116783310916134176978398136129415747038617490033563895319356913973952520639761120082468429067991961131858353505561968112093286302414979058734653429470603060317846485001644492105345812155243800727146520174607336409977967010209699399763682383935110843894826747375842335566788017758183056267673823252106022301375657699071708245769328229033688070275345566091339778381391451290186737934183741473010243619279776113975824430643472684596549256549579383268523433955666121501003003942284429664071608860491327731846998410494703860344316419661387952732991579215992345083641388095897235133726871031835698514668614709189564504125420730012564568199797894319038327160614150930486739431770571348772987640478419358741195944023364624833542228583600755611081415504328917045115581996881420700134344150231395739360732418517613158887260293097386453530934136526472604741305953726959010486666238866182576244434404408146178186168891924663504912744994395608119981039971793836911038132061699309797657035176328572411635527176453451891942492536369061363941568181298094916932733182560332246241437914225733352672694678240177817929973064171949771032891999971805711837247004525392076937179756185177481684915294418243187977405704023162942333640290454194803716362113826875485788251332084677531537147477708102219856821691094809206318058729421764550518396164784753013498701802146764731090371902436968256176223885414245741839504724458229823448208179253113830363692666682179888969879299448021366939671368954731917716339716850211905127282183751200241230559210955745121643167305275593824649399701936687626815624357213711924800725939227479746331562547283920578890869173003082562820603042608266508368219044826891009270016192326811152499947040729718841424719924060501106540629089824440617195044232543875300045943165929080947800475374262190160736472836046568371837180650370983424625165744285386984129506225788397997538456118531298525947471209911339351601629529025419127125527771350458239027487170780755313470206356142569469445463404604715112828483348064175097330644345313083271283213175863765975241942059071631280653253783326417749444211003140432068053989289420910446374791916210157766879484917337625313873121750432119214053821529525149309401292288569547280085349569553369171442963986605994197640921056256486279843646925941240374601604649656182288694377700441186434452194942303180859345074274764249539292112499168634484318005472203485130377191828129089179655063422932867856866008111786430571177028929073248545675718789319562339730076117320427746685304874254413821787306635549276313633101135701792237910428340700169661475525306590177693177471105584175302275630256893145513641875814103294853210704200224213288523658739053052722160878706177093325239222542535828647843286162390813103756820266464800574254806991592193096962455245365055605586572924428562112609196473652228202114933171854725025734791048530444969410647621086386034314672498092957645240937295464786019601605834379645940285974600538945445481229786450318993480773031078024373475845241941427876820698884784169744826782411365256653463456932630244920552862697295085680335280595698880618807513673089816966498538279066398102554779098404301281646932522471954864126428039992033400370766010188674223903358752009851351330556159391992736072867735628054969304777251248182233789076002978989851138363608308891656187116570252381513222381310345676234196699143613199684224518510339093368381295323503245316295335808139868121377843179297316406375037884465675308535237253389549522134332050902617055400027386163004946727904551255600086484668041887005396352012174474640044753800020367826780921508235175574857762260330327677040056143123639256185638562591084455760878271686518565281943144059521437977384304583468098239031732739316848949048726813617036594986773163837436921767813113891554922394854670878158681594255847000615124825711110054646286409766969563187662783796620740532057874399646691688687243940242770044354114797162311049801729763727757850057828912689365908044072163187569896672261434464931216454716403197454827762149955604274154700152008935526313328480706149002904377295410882239783605405031138986470204261375954001093087552892927561931042203869677200359055820834728308742442351648622424736458819926374035152455478017991860515970445572065847159974576618959745237137954859405801466964032910951568027532022563160322075534725333561612586596308922518397837930317907701348245420925356544612832982714202431231015790153602698182916844438372178496828011854899686026690742047330804486772187421567451528655258450394707860118613373905959584078233532456245479693947646527194324249212836105063836565168160026837265511343889248162168661326540792182713964464729058717900677756637147354001024739374310343406245682263675666359268376995332282899780631354370282983073723395896493751903554818007207343830976792478346284987249072584298720979609480630899651318007683394901746739802429741465092365310160255688876155183989710806931725909324865459936657172395263639055617110671308533761409739011232969586491244231058766583114061807355119831723507258183476248165541002623653837845482279196543189193305803167690734613277241441055985414023185987224842131531926624371947584703113636997197247916972120763162551415197738454442198844772825816503933591112116387639836289166086809163398816142013175970876273843744952760275184442230321183542081857018380914326387975179478293714732254907081567642290818007382980819302672248072596588496461897465684077580593980273738356043346755112345625089816221264414295994017199950600411532626502264865746117262156778201658448858696485173388290306541310458798323635171318898123804937777461936914163672079490359467601928432444269346144083678499135172523230450464008613512993912448034752390893987641350005345182966010647425373320389688437136316096750253925804334802879302588737103204609181438730695714609830822044282389271164421975154740017128162260270123969053273394014323506826679154065313164136442087609343559805230693263907534724442145570976928559406818963687887898079248480227742521194198696596425184336412662350531818169171160026609902809664324570600639177994638862267913305017965219520349597016727193010435729139244206639550775979490477144037737236543873445188256770224698278963812921760440112646996072512665748252050387533464925544285429314824342877321322089724102225142651935510566526881543746631935255695379719840265987057511905227844061054751749996692387333480259394824066610146312337073640042821314397187121914091034541780293060131401140248393824741674658208799092727389234087862187158715339073564511198457179927977361417300907985839729625015353389393104972303496378007968841402187280321121888692939591939833914024359475281308557015716020590593219468794916242780058988891450961817987238455492216777556306501479948155697525142877340482200030354044537777237249059980685954404222275611398855816314098148342858255094291783961301044302844064165979130599618032423581168365820573797956933896357512711232867940429602126322927877642237425849466025363567231480180830306366231942970266006379490868693361545591747046872923782204508555933287927015671041536436181241147556021177884551127814508679966798332792680720931339623089335270943630381298635446312204640291721374362205515606729497782988504944642191238772843026855522881181496351557991970776683312976470004425772964474526347766137936751948424267640919035342501490115334150909345448637114353339969038070813983064611835183275176991432088030416970193673159993671786045454963581975549987647543321849451543243408910851257325964341213495496820483617978089065709557843013798799739664022887598569807460458721323733347672754435495177330400704795741381082474069562516492495867615062854476930208563182492950491671358411291996147766208817009545458631965178480206118947599548512063792878906732708355557362143273563265138734543424369322301356533553739911981227557080450757770084521761953105548321003986513208963588537393994093522674614610577458489278543387335519169680255950384102674979202717566604091374835913780343445527349897443299577127692256265858417926000030421720544410306312878667719208406787765418857563920604135512150676721491648984028511328114373334646508076657747173816085917600627130154051553504123838303288668899514427779675913909517257576201731608517878284837064940210518534861931476307081410875494580311386322827862983149549439259487388689607228256879209210122368710547508621325835533545316280055409316138262998692772628019064195906461884403216490496381919192307465737570090840523995545618717934949768402077851403504251671741157477188196765015906455311330575535841769516266959079591343361554708988903332840615013128397000007839640062635673233758924669308568475744938666275367972998875045328564233929816578279531041984965841782017881508912137961489196829954276956793578607422796352631819381256170626758136442445804597212764382423796997886245304374089580156104539962375775672896194607029479741525067847100945850655520651544314157767905858581523775369150380241435186279003072527027699062022011980620850277735956114243953635054595498868949576004576089220373532814176527680406274200486022678018147876348695580235166549678344570679601874581161461837313420692416877267446679401467960289123581903789738802437757713715901260968739255545216369971905626392200898294068863951909448891195803712754287544723865025395136343073540943789002267789345324427929193347291620464593989025107059501623372671921115396996900826277867745894807038440758008567339280623019893143029978103526293890099037771824524167890515946455413635428408665188604819062282765526928864212438886032338539038916091951053644643467697161085293076812502663716032801791369973978252354193001875329593863177830506481185798821168334315693578307199587063596960612613844648310364883237662701973292661103495279319718372365162499148891169611183511924169361544778051794223912217566064464002832089171313075648584839736095713901431253777744352860598595195351795957541934851825854403506159062839145663681016633468937110394615375159301514349739963424108661630875999838611486409627091392619447709438044226252834486133629690871970349078469443376448650048937992953664087428552485935319432955815148265250485200521317895128906115576290198799906322470296128240131648982049032080254517082599814295954057329485968886934548838820708283955053746901968573611372774080701471190655030845345133738670271775355700111164107584800807644414422843100487213014358782358168476975566311268421444924284291378999347036998790494137367581957638049306851928265352264410995725723006234420380431913967065374115313266597085233073304825275432641529947149119741027889033318061405792118830327886538611765452372453509977058399737018833973516426368062919327347204115693973517876819151581809869696153176697017453289919681746956558468531088668937510353981419451667955650719847092621652488329120216385265065101753445774857992760204735624873563396185915732092993900293852568710226923692450002284052833824693294503771540464523388247536779585980287442301146075276549649098274796512053558916997809820767111889297828844512349435220818513757213598099881927360530228704243118595973715518744198713358528669316164921920225465274766575527770638555106212145554309448881222410555724070254623625523016694165523498633386093427375400116446338256646411506425288999450912543494315138326476009025346781559940915991523202648259326488757271699459235291832702236256646026680233559608679652893642130540171019079514513888222120241957636053714375687236195000405510898561139239289725627628791420896889185721714303161162682441515109370059358805937865459098419097351249019325925671473082814205507409291933233178058342734289167450973337222167877407170393955484360078237788399734701716325008170300559037307250322826158153948162192355298471323540085175647277885558229234907971468038055550577404759602679048905767873630809323402921793043380483826971267677332686141689476833117455149093765308164420178785313012864126627459112827296780640866231615415834072074051765199936030764322336584498123242372414512800375304395401966392762422159885180440625026509471443744314986565960582623252967629090670030444150422783988630023800005802349467246095963885942545284795438285283457903752660104835537368131963809907863474755692310175043512333152928372924334098334702367039134416135519193768474999831081130730365737863146031792230342734877627598795385077584410708140910263224631372536063490025334962499980939281613569648697432965206204192612510999647969810998639809482922008365326387826020575507526225373399062396487956846399844817831011980161397896072435309644906192612996205469092670087429451339985137034150021322592567386126884328129667424906805337734294995888255606146861881881319449276878871404111096388894184218697658075187072420538901888574817343082141483195888807762972331884317053489473254317630843542177792738179578988917057180304788269605599299730610017066200759715475844999534755960969164003625840873779974439984725748384079481025310564626083461110956790995811692949109013015976089844216138196484312610697724194402496287345512749498326594910039827607075163735513090501948162579490884895491918313948460038698821036112991798942976381237460079882256210763414822199803162723791885774617768028580019510876102283285368784864627348771128915875247234269503597378494617134634974484234172276465570736653245115469230392274998339808058762505711891968693689180881569812131110300943252208257845062090897498059200182291474140152357683916044556040003395416094404439174951996951231549975215953354439743597475805639961662849539670728535416143836031020622508091968048731944383151205235954390479502154447384938373395876948208624169331886205718565844313520787069118133034345319210332848205005163489013140943928826814276975161681891932089562856866092381615362434275659117469459210176067482739352124938485217169414172531138947277465064888140554470409732072387474972446300956473786766673760497223847614827568442691867055175650398787353397395162321738013616350443585344414918180611454652278538825553574814661674158135628437914658045884934654268539725049255108555190916188132970304808205361908257707395094347611654802858547992126802183972300791637634744137616852832767615059273014140820609988406773987363525358853317689022243418843386982478879981507232680505062680220360712247355658619378844332258029318917788213658553458847627637415684957710310554468694924555421788876232908784410806602682252889230662912033291852201234214178456768343935367620829628977672312330403749721928161251330822336816037371040916587304078697899684062367252481620034260050726770286913957451428236446350638177864855899079420691159685317016944920612784227063262799582882891913767508378817924200744923437964036930611937215567194959935394664252517503514624589891433630303157313582343566337869127693942040604455258080936779440805560988565526087689401994388996455021871607897297238386881498168677985204173498842671931837356996555192059993406657904104970099089288730691446829375031846710156630684868247651597073078259683337124343821174114324118023061607518828437026071569250549078307044775045468655217703425178650990997941312907307280343575576150687739104345157608166242539296834757332587612091451516529793685089369135848037699282056915007477731503683541587364184247147724017184012981478121954375440798865583317475619477628142089936763206841332297251751083244215456120576292736830921138642529184890000689694883465256783465452720609256082643715187643305142388120470165711017955481453262243639001520388150975565252519426209233016853672047422793982983377622246792907474546038226282925476358852262941562299175707014583678660814884127598751021087082530774388878071769169548677667550036968645375789166879885398769703360971281448066966385589935636919256940411068519250388131947375323052500642506429199112252533606961644811219410715071668924482112370933078862685842989862666678589900286080696736556821699897503491798361759589761985932347244672129113566727990506402681259997137251031357071178169864301869667285284692354652225268410092721669266229107790115514118391103670429322524516510278824245222494812559019549615580160305969139322330719277024002317802626440430214779099168962027459123609453229287750603542401683716696892532449841914916717121304891925508987669682779085463821393225775517113733365555116286706730766590075463863524660486760083011046662537960516151456640670410575333123368569044805132377223288341313133036423874778322362596626884803632368410128460226426866893259088968544684435092900674073913632202997296180328489939629036126908856869704828747304179605813466540509928329241729810483212494608415498756289861952713974714321360365448357559309997677936546894256231589238778758274791866868208719257016222858783630867170557218292899312146245874096101422026383156199012060406141826781956396356830362024759399414306409138029373653929108933748752585271290005034174693604253875237389304717037917849463770250585632775201791963607374561508557311369486905738773400124985242013413388512682205734618877856554544718055231919374165458337282414401928253923570112185676218347239695478547611591177362012315002201115322126128116678447130701652039129346220348047806764501888939800593131319065563422435793936108943263439939553674882664512298573606679309016775054066847067816836099977616211169251208417280087271693712036994565360468791065698599113311007991153316781289558775328971491245542363554190676207949129194162996710335957390291261790373960904938819321213226429891287802837764766724567196500097893771673013033314111864022539834397825463435105927457406671933382269646584499635381557744950520829727561342815114690944036936626653407044397866414445333442365522864566147555479230594054790957436220088913859859376760671291088001593557357804746088250235993441666691150165276154945389638220148449392004468100687745417549715881266165073391977131047865914353886825135410605695893340427003430063400118407366821876984618344961613510549826100438355345496717666857063770077686586121415857542878820763584121546750885774730333404255223191061535485428686892493881253587354128419945861692489390936251384382445924542462983949720429913610134532375260956196457022457364441102992382072417855423114948065881033233895005424240422425350085922507645814039684442532551258408495651075193529114338429202960411528220235822074106997802811120064799865456716278720496265061484893294128023076236116248146409879601530228227394830793167681330334393914480562689749812930945826233603465828652625464570306243803201479181709578741525524560497357871505208578675337347916174440923347695888111590416873966267694931657140273300143874082562590750856952200767190158877678190186910397343828673158386245080420996205659034538971968116356244729012556121920935348239041748244901094936325516813333603191493436591337616011022199870824416575379530871204318946358306605747323952990297753578655008348194059133748478097621090085351531460662490824513235317583764253492926800535600145788469358702980603620140618385834238734308566994313516831502172112257142103302897756509690860394107149953592192605105035385006600070586645031143322613098388013622784510056062121155363769837661727142778445515596678461625070949896466138483355185265760047292555462083425744968631468864518087458644152796082989101511421789364973984572117317856328476958657352311823423217406466209025161220941602000489688801639995923620100390430526720792852934544425041017519857085152491682931846827026977442112667600545706637915588514244453726452859019177819427847548044123848157192869720008287452872690714828222053360777305901157023116040993036198320538758599823121838932889386013832438215131963332026085766590771601882892095928641848022879056991389974868376485670409899693491158878332781180183177416671936522992942958458179422403166604559360894515439183205513926948187401087757340687718087729408879411972955080759863774520488683467188689135028161154156405951570623339954909201552007965487581489417995736223018025837127615128244417413770925403650488086103408592760317315182489316060606070425929037281249362280179710972730137444912845288860680448635968356856521128100317234804781510972648671559541635341960480719434299369342997981429481521856481466299573941610661031157955601554170079511718244146871170747927844593991933018896973853032637870217844340335301435758092885953319997910893467905758284292588275337040683938617941118492355491003583256622080540036350198458050852137477694728237455942099570422625340500067163583292358644954055763542305139225346692023964629860624486013723189779392179152400478145043700282112945332348477512698340591099780584088768377379086561069472123713928756915196074097092349712694755486570890860537547585108065696393229552483884122774319198320083463683109859784372705176866646001562535870329227163640531665764963817908201941159388013549677734173692931695303757611361134957782583186487212545768232326682608014477891497512958953496467152471589261904395612160190257761676832004274523409436385446136085518960323924432618562599642978346607668381838533193068837185136328128702151686325804859002998888162398125197655174285680815893027533933048705546169124506788168858040731733807949056427646505153696097130127748167556343342496973905637573662991336849316516565500411639912911343541281965013417077223038905768763364066722164305083683004451994274399956127255929391655715967806414780968545678947567479768074848781783609409596110335160357493926030641178368285516629854310065867815899527750724808568336216419781530722081882918340430017754967301003250363774623240805132980204312406632330606680505252614588284276714441745804396508236053558859687187676457959419023561203542813755644008025164579268418676691930532943564430815913644502028016842137376016326191896952892743278706596272908341539831719986200576758128077696837818433343306545421793300198654099050354434591035998919986463210374476459790758888549105103621111868661815367895395021030360535136854889317199151171584486768916703567134632235905160155862822082685894640457147999878363653541816137453455554401728472275003491114990273226105238033155740461784806053374675088691520937557609584719005755996867077036146543945375891810963045980122576893578642210561123594202032188045987591401902326563536507605810316713656939098170378476393012059894760371362157800037603270511078554899857225720306731170727167106046968279931041948415130829281725783379143226721702968969386859568155309042870880942901429674104056693680410249177413745421496958150522816586614629303997014933111281657119429020228900773727287230461687676038276728631001597643391514820738167343901110922926517941042779113643603546487609228942855228538404804634363567355663496616592347754379980622303304597197917141401649706680761922074199415591909693757388874651812799590040058985786531958211803637343400404530654080910103232072553325832184873146003788530863575103865267932853970480914201359685890325288167183082309160824542919039137489514548663708127873174640566559190251489351809955284381001364037124303696666806160196002262835003840866277228198911673664476498366002973583963462410512333768388191359894965281511430488516770536418312564476102729364751739824508349003378638356805604288288537843263671527921329639865373778722639966647992318218656505996449529932676045434019008114164350353110409984392146861584643939948679159147393740019492037153371148273414774177118198657988719251787476939263398506053790616766630653125883171621808734083811650778602998391415373267908970417323300728163887095614659117878753373336550785343473973791466722449175202874144959822023626935656723634496734987472639372789936468488255648321246086123427000159269181530241376017238498295510301981739981666408698681478411091092367025993184086559970846247613699280951805660277011545199397096178832110427761672036833665682408548196207549318568466645606733909342719976713008274933653246415072931157124978156865934037426328526319183092537084620723357329473321749032972515080565187280313731658672310234985142587765795154433637603412883586464420971638347860282753883102653118005262270284112681677066254980456100122560366849346770249575341208685396512648745594434493711218901129522148456943516754465054775617355823059108826601868047361361241798634207013982628221083893885652556613125624049748818297813352399262750604063983419799511679851710287103742837174470462781450424096275153100677095646670299510264134458298889465141748715699456527188387845298096347096547125835786121314327098507175240674403509651426510721962508540458516216109078229208080318810301574657214960822760297878397217979828642221864403165008275612384452103735999799736776045667191040875546429427568442435287003793055728884667243581714915192863772921526392513224479310224413758723435432537412747460042357342291470683419206347667406374418180534237698314219233488107674314317454962927196490614480625081420849970023276210660680911102707810053783108191112123992868238385910616772771226347837169879311509818791399634884023972421154011847519479597589238583825979481018074270525873642988181685002232090350209162072994143359061311834554830052506382612064342878547567743404599404884729447543767240470312543310226352765905003355338177685571323560850184993065603942536576982855962396641097851685561393565527998061969093442787841977559978747651089503943896049771770838300589020492425987503175797821418419896392377211878634080137793410406859406954060760140014667166630090898647433079677895214753625575931860488347859017853175143691486023482207224375416873908548610959467807719666836508992062165105803077523146661833278511692814431278289679458882535295296989595835768823592842085670770304272381235535995708446549124475256360924162547994910876284705805563274918052810649661840117431108878188729681209061068652448850322380968096153925664329053178477492307826727155421355510801998422566027489364575634931095998911261701524317849221020812311879566746424087149956434978161885218914403379714831374615797019350747575575554036331075596508618372516601364982725734995997126527369123571471110275035210686096492029182352566998925790631398467337753029048955973989747458737067211891994896503159557276079435702960903942838689956237458760748916063230627026728242171735354083998719722994871619907768966912812677430573642098677987820280188413592106839124388204942383573777244124718330154838728042049156902292157993723183083182961974803835325868521221210505547463275471490421491278754792307383134711956310071497493295477409618269651764470970680666912809879564274434253379246044760963121341877923434110103085859801890001151687611185679181935502328790373022990115761166758553431342821459783613301983835301383263514938568925448788463315106838939636897301609495037523118304991017171657638633174623341435297852109873564059099188172013166581193710252555253754712745322455509801980107067698470058114436685894460977809248157624195814583684879675651279277568351335928020359778390642077741753255970914510519932433162373354648651015690165951764007309335262960264885495026568493377497848557597877839443640826441554000738019338560593685997311071486989225354603365845867184538555846868868037871348560335681926222739263797677831971272935623291616007460522006657015952207352663133182985111216822079691607167234430504305183076451457647616419673683841321655856202997317360723292100656391104923397248315238417132183273175850577700530345942062854176886340015004685554404090598342109329869077928379437320445082624814183356116488712242344414172840157544202706603507372542321618607679504099922204393843154907582531533483639927005748321748651488209945275888483240796136064589894171820250446911748769820040176741504654580216288123984412962355790648356163666560529435648141632673278837321030581698695134415994962976525387290457977378642594561389724152323647921299465584689894165334128391975136498545020560006184770310656332071669379948003791317259386651490120738146730109813060723962905445362192470547742182810372494277661393914324563275699838556231298775382504527466709343481281884366056075599140860371251552549572869581358512234112423606935724808984204919083215463282086251077670113197244508683666964931595108451840830965016188451716908464209027447402802000174079875775121765533885602580952508571100262669239481466618658859353477329656400917218880461433473019537451116976685392334001185919184997856186445107324631493822866402670159805710089272285289154154193241209138991293305721527982726304689768351605182833785305839141723724148377641873425336919883791858236387621103562677193224638822495887558139986945327347549889194544570752599186483603351218550270042376614315203333254417368120609879327323965564314857866580883105701368195504053978436861642019206542397884526064762547411708628378332068737847467367716025949615964024552648723670887096285620455876836194796100828748569561878654422073244201928003949420757447245922799208418322198628845885320269613249361887888063248676078442708596529634882886030720169640587615287367631429943652840373293588833888791567044590624556219693044970911103055765392780034103722880571935828434404745402714842835798547356024367440974546216871452966254452089741536832835004293068479041998966991283094026064886131574918907245290149277476275816347862502098139390054808280221917952628924483225766482500611165592228767921065537052194277479280492520829808229648194188841986749621688326775539974803984562209463422137470455955417005515162372063819799715561282014317781573127552622369344349229751403805605908838028728534564304466766678088988199123941573122705251176582442873115291161915382679451528627212263601336374614637667031551174614897819002272024448393970722333783653726906236968445466863120296601719666421534102548600263128255284772208833372363718472321452194118432350913877684336157994326876476104632491856469603661504242661821479401895370691348155556201058532183053750605454883693939349111431036431602494001381981608410907367636942103918888577227223870575716396479452840590237852589495899658693894153795989456508951552833233818779362105813511527269551877383696358801757646180830309680227104129576232014805928958650594857835380758567426621104291817887008560637975841482094941808354918103072579686518307159389236901554315332636908500936566554585621339813200847275888089533620361286527272646466146574830187739730517931449987718899184336773139525729200065493171953314532006568439824593978008775703820144972635525525336611948227185495604978895820814417512850115440252496033674311274044198100827149021181312574657198242116544101998601701911535768196082815353570686516533789592277088850073299819590404204246669467877354120931558152781600961594814970699313092468476425127163703299804918256410738726448538473298664327900591810535656935205649087916318674832465213965606393932807111376878972192829827624033824851878228988175585573206983392103510658405700770581906353458625483452488040328889469375206324757883974593022642650539059123009770054196900070294705232257860288915145134117808687956118716945439617932647688504409487056532739567408085177454926317150455661036721638243011572750009800099479056478970842065256677536829399365313484885378306750528365578031189210482911044392194579078909285039959126543536104816815255141135138814860040289009774882652906089454861690302617503499009024741556101714338340124321809893654608834308534419906136642586705994362013100029377363689153110671435600299544983054561871736974132867450211703497715506862158015232560906101176388819833071781370190904265216163404785412173153496968984970628245590919559130673453228645930993672610985865610700698333642401129041648741753187346079572702427277246920777814596404637682304048465552854739570029443780657177659149249286381847020917822567371739269534559909678068111583206896068517985116799862359777325281375737927003329585307339136459066208628052622188548901346966697847521926437503046782374861763546442311923958468937326538991602054718573948474530185764022226351657329231355898647200412516193312103340581769626592128878767188337885874890927151805702342531394169100993231311569235435429586837152263975411073198955899964090940561330571462312488402335505529529290650025059973001859096388945189704870266571983980593346268227123154108377837520072942508136653796541088945685825736414002310698813378447646910328722594870630716100597616169527276945241635594618356772225474694199218308356883830228925439958876146520558420082708635780475414863543899516255356240347950362056686067074776155044114884508900820683556500959519383163195280299541286181121040025628016674348523737847705731292476099022846436462334145754321036867337752776117783046540595258370158997378103429824724500353315302620610016208137849506818611094339809236963885759206719434137578989687736833248591104215609384748418855406980232140987765471806209002039114119271231683388620124584494238171224133713914199581043252063864825464591299460149234149045635412213602337711026003623153716505971304650445087279498100268319551582276537508997426415088933711529104550401838474732555447293632963227013426505896032252471577083424581912834604450333663370463606742610767981306421177808523256572675131161204209131693766441206910919242721151340937016987168223634454859322169583780344741517554107375425281785603407874943642999536509580286876627577318652481970792861917760598252443127659845412878876775673890764317177925109492822627994566024632509556086318180377333732244117956423658622249156918515045791483627383453077080980499825745322541302826757262751014377627968961837671562490623728809719875410241163464746849201179086531149299280178789659458681958447564600383052900128283016748408709238789951258983257583427476793360855406970284120553342505830810495759862499800364509779182655625998984058046911877093468023977656870674712498752008186367727090295216721604746412566298447948596390148081534861035038038880553329207510911849278000191219753803570960167731447350982900886571731654974161939315375084514944646096339990932488809073179861869801319761156403126442410019932037760627930619323034044631602580849914609809930697290124833968904944637782484953626425897787748122093001296489287979205097649590969559019106554405247952964212724927369527402939941556822435742840705073189631106105113089861923614714225673935879959221251453492750383801722097657025276835860157288267327684252145296756525066623746329424652208268003906394338865002346905086678658835138472452283686564928292775109371118465257905019157766576441276073856144357901505642162881752793132204506819700792792279708269523801714558759328623094648874221105170265091741382877093797045899356343503203233405513356200154161690506375386035057994696394789128676152863608473716001363847687664681113579845390085295036361331077435807934629511748678272515876353863784016513068558995911548420747098092029406563636174624420471983828232282471419256252733557108157750080337949500060411922192017268293372010437522256969877720125947968188458336838111538100164806151140750455819020215600857096370702294904944707915782549392078970197332417261687127719208189058736361128969996151886420809227895445531177206078491169722720951483089463709149593556975948462080319631543345511995775513976937605690510062331133333664238806406484755037502190671569997805349111124959586979688477715560336206617832526103650048576367828289962858135014959245666653501287546355858016902074960019910556734014586896530997506802337150619128817967377579261826408759625237473597426969702805158613686422006700247652224518602556962437265131142182726666445030850439964897420482772327139629327942470424303309165365900577678102933917869369883418622757094284155270314669626671735024092810644685617692828710228083876576282869999073220046172711745787708682759532307331758747099259408027502102459226079528667383474050311229242626477821295596545798780248886686470420966789817138745872338873533553143387690741319420920106452350640176813879987432194028336799580711652173704308083096098268844614028215544594952684306349230962098121529741108705249143701605685318514410734110860286207317633384597668550957741120357035871885587946443693754196243253320374271321461042832814898498414789349107866030032190332661395173471962131251530240408423723608433361686005147373699334591138427183214206275954681673418576494644717552252340367264915731823033064731330757646651928216510731336302206006215791685346344501145610987256197399264437121125755038771597874925323580658407941905433685379328728252473768137914961067346429163323496290656170036350515200866786771001809781052675821277280437939352483441332467629072619677544174332429153169254990420312740437988192230155295449346485892232474095985101386683812896137117939285904295742840907225987304924701142268681529217858735105353390400664455178270577291014287931254742253359463102890935159751700858849739957722358521515626624350048333832962075472396213825329895673691594478004992642323183955142008036901037218552482443552358627957199163513886221088516722726198810885731804528479020439834440553306690649873360602815164865681548211293527677402180379534137702920750602513686151147692702091800126358576443525400744462654166160044682347809545381592389299434960181186188787229417427607845482978155935493656255709969102392327565115205264695509785171702824140235095388277756980808609197881497100243577333712015296106254544368458282402230628061116894646145769508826133372525470886332672462669963554846901695440217739891569855986323390766177631167637394415879399874280325187279599933591734908678924789123087307670073767693612203793691716834215651413187909237172485177384106257874295938401852169763975951513603602859698271225813909019417055993950510775163846794654480108199062314935352538649091908193752817918099225792652651596666347721012855858138563333421417777778752475716802862101870189608628124683075820165517092701966099957814126307801547581142295242452594617308231614517187116539453992531640424020353353506543107372136443387911132174366111322104135970670616051278030665192229827936851959480396455609247414912229379646700192394133519360611123480963470200134593378524971928332890168351907946427217605010418036909929692917582070445092857776362701968275290075655933514396443287519422480544328855112368728372043788866789002793991844709757886069321645346306039567379082594070641191547777113862166127133905122627329688686133959962798306893013317472426804820058066962101242292769640409115004190586120759133124582593269764579957612770116701674104614449558386668690191938609353336206157214185906521536085907394670741027296055924236889236751569274643869569074638436294506186586422509719216667000894536632015840030038163107635900037470384861168692118810066008013058706060329969795287366229119777136788501061868851850478332700063947785503360924418090154182814467423106861663853565615393288412252113733362134949720472071921069585716188234527924641252809778050832951809164461715528548826085457626608483432843038450806031134522930188355540167780137129163727777697902174331486843507735193552637697891726909223165948465382512636384157344132657471534569863328124840765190599861502178100862115676755782555416265215133799582138606569900583841755029948253306691376660223608158163850137721206518958321138428845343705401480277338306811037542663305398285951657452916475862269866935271568198530196854144563355213340343680760612527189135840243779767406717105998320675124037307230359600811508735639876830629479002944913114268501921502212785357760899213675341128355843102212256070315645418893504741797523669305160936383964939902191481481343284510527742683600188486181980867936627745088998244551025505897742603194087484289064614699870752749551573102609329895353330464288674845831372794560234430487326162339160202221110657009214953472097878538802440419355592652235259085131397298744225270298619058315308377032091185452630437405925045528135232346117287217938135989913171840190481463522916166115414365400704916711483972210892664549537364691148941079254123939162863572289975367497140408861031815737677912922575880066506639734084088065216169798721663620880231452115881364389341293352068399230394151044553011380788022935417795725717510649656421488944671743202495708413302750110725582039329848812832261781736441168906492880387917485277143292635978198599519202687778720786292370346222635734518064759882251507917696550603853031617480689449062485038262588418337381700322425400704823368474086260913489974741092155901030205865681117122767774187841685219408032196828990134749050542754263941869753203156146898328742145710616660204294779208889860671980564792617346622862898899084100686860990730697068407678634254809813985138981937645078630379541807617106362380432658888670686969838106070397890655006713027087980031915475872445854264431012171222076844540875904534658727809182665664197799035689746415597210552193024351097543447746154767504712375981973657678492942026960831010441277419114992714990663491185896515815137871093604594263044379817282492329974410973776601216110735235009561952309820064220985019256031050525082507298385920871510497637919531888452253177121541084681467709407643218353741841868360054442151258131929502585186292358137935675797969217234916090257285867897744184722581921092143876538982200395859011818608161758857038994866467135074413277168447904513325826238491125356467733236378856155217853486670106848035828754919625050001089315283375512576162550093928131716942667210134687979887067738064460860152262720416724973336291425624737840089250632475978884713557737983308552050805296553012682595205165167747796309642590322266663514759696402965155353516807449678255471177624529381310634663802310802965883297344700724636704315858491257284166588011003248830003842165603753750184774925050073892725903409515956881350784397351809259911322614637710458203233467171806572517783142074825672052364975784438578482660293665692141835038357736738907793727463213411335820650518793682102144289364568273521319404934216820733510341279660175306658248162100520014529197561041095093707568168515471277275607853605888490181424623162435578075052094109090081186481610335416887640230256746009735483540002474063181511741710322444153800239784032355310903955060260332284064917750571721148291428312131240257125407601084725601213467114560153369775256775633714622696474180898655049280843449232146797362765635395443617722553814143987583125425605780249461382913890866059489858803144064276684635807930370631239262543090284238342023054756636021898610918228114168371793751513844852022406826761062748602531869209418986343207384416800840313318582644411131422475600062321385262367742120303964101412175492431766317641547327104523303025113175422273333259195492584899990321347265769066923282541015910934685728121267562484893934457411398793131516857401100202256917503365691870001534757052204813461935912241946066584898485868710295634207273624111316784538227824221319964473735256401458881831882006630628339921469072119081298166857091303876720314109960574162275768973089304566860139960745282421117699403167653264192575898462442244781041756274363832104443648625804182914614579834840934515954254692732026006515287559732058838712622697252277314109907234217254465719388994902895617704059675077487163698077160854769925249969718446326920952222718288070899455706754362001244185222269700786228107168758154306260114603278543880621522612318565156507691095969170828264873627362060127792773306944724991380778960600164686452675004803825537648593693107722176166006413284351497550449479509759705680004027905794252574748271189230928647967248695741083283490268539493887270866993360364828029827622596829403201327729961578931607084165077091642164676428006210510342153966011336979800236206329618246666079609493181853681128233115815888892765003567203274911803120107835664305648171548250180967377840336667400862864764440991147413425332445491074982919897434162903912754745887017415810407947190694795461529522066478594180839036302197752107642794795467621294537965052551397558401931581757206035855811441908385723559370791519927934816301455236950964895854613550740910694675219887582967264774076568195730414202720144531423845197236476133144459563721011486344878805473609897584141548712206281626615403864788284840715215813311426323582640194952311439295210206806691861657898345112820588323059533748001039630851479823251457443017499750485615108764012004033607214651002306122695144938453825990732776552968332715198456032708285930342929587806337942152827674195280488831237006270593468771997416955357482997235296661989938627474579919543349002666070606673846092231731423898270528334171299592612635302534822170308779988456540909123313340085348404548325517725048407830448560872308438170736842041302243350509278777774343831564281767128880874535558814958795697447911013566694632638081161460949680259034787823783673701229761175165401623932153990443205575627743513857647526056538791035253488993499515842014368711468711148244496958005202193820146967978325186082697468755240244656897651616404639535716415058596567473191419010039819903240296812933211230514638470257333535596471702667161725355930975582721120352132711529678170695525459667449970320071118558347564697650141061865879415267520472362936974973245451154064121556969377582972940024488732801243234897073399195389820629900700041642744062056996626006042735895171187997487208725139350497020047299347466137013582853892142112933303238120868254984356779833621004453441534505591718268283108785830450133693882848758620886878644402353155685204513013931256164727570554305384003169092408438459733833908345694127303649730820523746071606323334582935126786185427779613195623491295237221316133051884208148732029625833135122139264912602620798145283474016158171794616368072724923207211247138862649019374226119282810247513690878732580724409843593006110575078331307543429769133710377807856571783617148623193529688973336744871776844761461990080872742077235375549479667207492625115331417272856360469063181562072340887842147164860514443705822665531765839454691149060276032029099412151102354202010993637883695716805684097369926390109123172500640464788677706612571625877103674213826925155401750702392942807212390404582656223702599360666483099799191512047877427015412476465062685644812384308212284606104188038241520706998038675554742562638694319603096162924367219807102824999290365778839654317187047918846405509803533121033886592969402003893338985150262171672967121622002924975179625529770957483663184697478670620063458344058255537043442163383584552446338576404193505182521603100878150505452197267595697854889378717946208919828205639787221948182953111949544487880176174970202579642859586179782034680587085844902602112702210034688796441585902472576603656245900870231508245824238918132015958330672621895369707114319568395744902045840580701247826696607795184146775051230491542218346956324394004087641982178672355577805543309768654471587290480763923414170707323522605812723849520419808815692547471431950749510663938435578747080242802505386683493144126182474931792302769260777471427608314977843951094140078498569124799002638771551718568892850785177241116571510936767805805576798864839122116759522047664562008138257746858183895888074003727123339593872007772045207468570365627675485226456991027199200928299961760090109000579551180781569877004684157016467766348902089354785297072476500838636348756378555163459348536318484202746006076487448867308063737616523393690074664444690736364645778081312308797626003693875277950305725211034017109203083890026758277793769918765384582232890572670660605371037159391106639920746557747826601051482593287489091980573435217772504321645481535038546571987393553324807209785417422720648712881222710690542068921030787866058325573941671315492103214233141826621800577914918680763283798278090001951718226809728950681897043016510312123023320311712690591729225454637069725946899899174897977633328461899300657266163829146149043181399352133695698146090300769305631568432982434342012731731304131972820155818037608044532755391078150622482124241695979101504712608923470445527313387951445253777058829683931681850799825374486093323581081730583903704708925023026758877907976757382855569737077891947835258891999183378788553588866646895917020402585320016842082391454970996209018977966623917114182347812931605890093447652282731690782872951919817107382566763276505695395022977595196370157885085351796358385715928179696796278555474595247918878510025029649126650227552219603318001147490749982577765700073360763286010760239095379750519769935705380276676892706432350154268326928987703216646281293130183324705265489157350551803515982237768901718981903617356367178340891129659314178483031044575841660301304262807284570312311943435351161733890710910944910678192815182476292530929520963765328073907617999377217047153650257384435563570067589836614522753331676389267155299469635410662365362864248361250872568156737321389014035231085805424440132381158531793073429879256497240124701474676922221229230678066251101453370646365797450758226011865423203932855452472654473250869077935660725593637413687114780830101649589571385212746696898424081289749500400278242800276596611704616888560138275288414734043803977116407007294495496962440413495033626990327831239834176736634965135178336346270134172516251887688822429858320998644850290643607867146835132992192323135736081859507117310674624349929428650371820796589153528803040146725767580180246904742807080396164220907159230577817530815865219842097676251793812704274379615048287420318235913173688435209210482447535950405484270952667057425937415903017424378301634056645565674576902978605385271887765921088871822547321549630020894104737516770262502274600515870931704346279677437708415404183756433255482385496862115180659048113638495118759132850075386603567718173698485162647212301760354875122699780650273844763669392461990588451850192713316599806684619701513111318967107920497436051635011848214909877995112110449075591297735457594265564636596142354798422304585058875634221462776638749865908940343642660768339807951903253169089178461733350864709687881849859220723175126736941352961855724114659887041438186272928230965414880243972416640453852505785545811627764743402961678343950153101584409552691789863456257482779973644705007006181256407005979465252546196832472398443980442739965763321047164228746851833527121933212512879768960297654947027550024075197559210936537117431819813635461267965220595914421241928353759874461789998711879144141671810039538154919604840753185558517436234974875646609935265155691741645018353880379904811067923610514259482913470414741761780831804837018636906977979134215129264250418867462645823939050363720732187844461697161211228148436280287576044813137204584130887888252332449333136956072805946705214998028323509534403800295049994752228868148595437475930817191326244066400463345937122139595231823923347577176212270985804176692855130703801190113378685844482910692886435842495187177335823610537971645907879356676571040455130813221097567306052275554263500030755732882791713883106077423367613806178252210613106268543469007774221651310082083075807945666533700089555544623595310676097880512920824712673838306165633086776491753806618352229901231912628945396240316972371204024658557293214838810650405531604333297858328690676434488889013225934758176255052054047399066356920550686503875295074436915977600649337233716581575138610031941592335176310518907563116452269031002358957681175319506076916949169019717330929356466729711188927951861906542100828263577591784997972170844132550047672647584238233940276193385143162007548450973081090860651777460921110881919773221568099822898498504051338485563967042944345534292377681858422250502327210304764087616393041298850097093673389288510706115952778681087780688105830490394717936129176681128132351535401350987643353720012592518674375512405204510914711257252466921309440040260740029204369087428427755971227610051723756786897625383264106867948766882942512016306208989346939658967004717425514311117908159571129139534859855431957580986256505432829943720616095941648562694360738580878163526287022311941678351487595946855120468469635077546829071677450300903636958525813149075169413026250626100494076677788838182484808851184107015111622002325719817059527047194600346239067499232301641702710114691023816790188448265673137361841315696701332691620242474018787328565745328491593842850281163174813542660539194424251495648583934522205901670451706263060168846464145465992466693125982537374751300506211895142186533819165435913838634347077873143191704507582771844682492435005371752852743812870251818764413998835590888254005347499660747352268307195088197898061338952205481838829278445222522061930652702260350415700371273857344885832999255170410372327501071239292677805931497868465703801850699005281967395565938945111520757176268695325255153250584305717059398727361330740934681945217165999377071054210833660500036532153174303563897615550530229913921015992436543497474253917376396357228078427057320415340591805622341266338736320956381688418029453613856497450243067912631448443951703357878505627158372654875263966032274059364587811775118383382354537277778798602258222141610662566183072944751462599746884952984813690337251547282189841294641987975564535629343442146783365567526971670171414004891330323339383189228093410054492711625990549438482698951861294557670067199897525590286016722975538729734116242256709933941782409779076852554245528337177597366030209935509158394633700667314510151919817815755013241499818046202056250325286259628265031680981892708640947325383034728714369528382460433189605696066499144727967383953685228139191054811784111073154101810805382930712611464594114164778927503971812615813538901368318698829918847722527324652955364862816051053426692008382174019264331408909642483866338927313198100281723634373092974917189910568711024852710546108657880336546723068617961836961722789034651660020999247478520310565778037556395958300216492985359579444685175641499722498745280227756005815784977125433385246432362065876037016592170553072086776486694670298467997443594348153939814407438298703741492445428260402552298337063392040738219081278039721009472559285588651636533491769873780123567278258277172223162596157178464901213602511821037988079859722126383365827224674986162608335280824505493512896634113157260972557906976588576363855407355905757292673967099940706570651005603554852939990631758911381399146549889597418485913490464782676175428149684784462213556667817685287172884223934814987748037467236614904013329440015308438266713944870408492467819016595596332272199038399752187649552289894051827820406648982693946130985620995989094507825815303411558817933902456379262148885914718392587505376272122709056316936793240866621121884944422436126251992574728991317457989620486338513302689576034995307126360175946225777971975709916156834571673397685997365676262824297565877743995373728477544580529083874435094817046511343832561496065035394918133929854007448562791398619748369935212467564099318784397734629977218531529736224942829742396372108492117214868237581173215826492406970626939806700485997554111932755977406272116815431886404342872355931793099475200303019767473935498540040466895787160491411334786686715150358944208194610436662636480254585252272963356984947003587808601970812370436913105746139436713501418366048897906138333910836851704486409193946134895062096071215901027978640943360315218140060369377768602501652321583577493625199022716007569915067296458584473641365163634858816807635322534872264162441090878722424799811717109139893069260019119529508329136067532793843460930787389342194022306893563284958210190026535516290657178030248989247789673467063235654148199060024904740315200189336205121067292006192129318493917334022973074228498662527922909955335688586717803230432801241992412924657643504877177754723846429646875426787194147187093256961097994222258698671800078172293312203101770276143323714450531600829478745008639779493708057824784632139415715261941860206403841003157825025065846992895700320807613132438098132334397400214821166921583566345216637747934925716012755488645229775326841698365048106104617928647299296266199054009951917818442952251268545119343621344147568270881129588384021584402476111486826194116109286214362290273380852509458721292709464666379524335870007591057206531391873523143103464847462940952682619443846991957255157415488212618687449767702541136317094353804925345278866958800435670401286788084811560123493404164095388533901965215044961103733763636104022947682165504589076470131866058376515767839434449018229257052082833032047645383610531453973392860654226305751777275323370137740951923574827165733616509594093386851120699438121055232061762327806868426341662081472603608165139899948201133701072462744424892756202055724929217005778973374898668136165126201953216568229573917938539899229513535596608212177399318780030574567791619074218723834430187664749182827080167816742749978146966922529575565288714845078246835451475322890292977918591385566710343468116154814694866955511984670212177490701849447407950072536398500181233698969481277168571240061584817521643418279374621352008601754506084920082594816486913293675243033194664696162605510560297282803590987672787010307393640284517062862385907553985220459752656741502192624730637495035285106317642778097517226952322895343609295837538503782562616914984734574582923637989043578648815798445324065245306277763790841281234634249558224860664081971497029540854560228176649859568103430869574096386965081719557691539900086889570659641362846761841084341317375474537192708037521432120559225092051743930778293801718601577708066214398014105236549950137942619089199785435403278781762794994896812901737961954178336684539711171559041429289407641483301223395575448409593542701056645364379991869803036246690301713513103307302751742783709979395936849380826735377511641282116777116263946326332520494933825939318551620067688873555495280015866458586636032879675669765374552305481926484262853695441224826565067525904310922603034134864641415618754312536617909772393949695460878256086933587595049948930051148174677815105445840347089946245033566774681099064488758490064683339217941376115289396913603596271575371368118067014386103732103305788194401484172685210007329973452520928349008866458392414249362495644200328523928452582457037515717217702514420277004983857554165106957866210264556556218760029188147964842939279137002188716481633702391669454406137748468961174975717281167208036308182533262199757805843094969501616377508178518128271721989693320533194441687108208216987482555300259033283048239232540858177519185799701450860714342803721250035537143922432959572078571301417358948337605783506986868604381979487108452948463268352429027306134329379849779117938919289301154821418394033458284881441924706863832979003048338139740023040158924755119949926667881614577222415351515564380110476381956310000313077212556855786892268633739155346494229459749752038334379718385914466007223230276279746735947429577668531283363524389935661078685893746513561068310628390972525521181161850875788505333986405027054996797787267447958655043415412382339431135638204847747193156638925309601192979926261902825393310083101252170562289825038630203024975894250621396016246841423583371798086344988851307458890842375773844081429557050124101511982007969802922550295091907182723264604796080070365643617957904803348929155054303927088916927748392277932202401902105554348236478696608276784787180315802344953636692832503484788656974526286955607709083061368433009970883637833529471893544158487838343085837860164657751285827763227428650904253412692471135738464692553517464097081894054899614816254671072812792927562023963350520039709479331772570391985263325790124026958544863182772925262331038010417951645181806970713766172712197877125642557192656937550695227877037587520350261322566128423990622718378765502184498898868574522877895606825831862776884603634248586403492949999269311392970370025976170779411619950759717014425265457861238819240558335908934976820925330903395004638444364462576278826157021294410637777639113342767288066523968263893786866117441998090422931641477044430714392361351899522703864213951094614804193829024641492456294185806780830852361498485136452681094281532844173926051987707286567986341902622262708161977744347058653119112559596156780068980757161998945849921062719963610958063488715242575073687165684766202325612486895697599607725487216461074897268518189831681075424204082286902660400699977314592168371191849212727498939582331913723983048324675966214314547161326254094510090951194613086229117090406238947632301791550415724810976150769413302353795489579390439504359341745003421020270304711624351152875151694001316930658649793028075845818423084332090950954555496251766235187309157185338479799346776522553245544826733171959271601668598249915189112552219173723929506195587778175558242299504455705261659016067609406190817821109092117640303619348877069080569662196006011168675186325077337781625129551430960109482103483676603508086376398116554634215869842343220595079011357313317137353249995901904303922854423865060455570072958722286974051149081146393532725261039629855678826317478811818664292836979970823062429043232279232173690891807750108744270527327164200172046125557316295267331679184416198914145466714777755209527838356796005338790604323035250185324535298340898379779932305970553340040014423161095438117623625582031709861695518886105287242880432661586244045122505357804685871758642576512197737544632586076236829479532101500003129412873457809780800165410534500601417642304847016080407005560762281408393505113743817162754222761562498949775131876716094410042089602995545334526952384672751496638259339876864369977620255485865444830614023560195118483112636544565513122436491231256045757387261256290733368274091228982772021294936268316562183434225284006010506178033869553287302973254628553163236246538933647328076153991033688106652206300494073139775948246169811773392253642798463025100481581832845248157315952112075941900605697762101065946109915072905941796874754508494737176090573063782477942325177009191531884269366629329682189434333617223204767086995279486827184599163847986469080161377700455057552355959254266613672034756315595434481099868939936191135005135590186061229497079218130416777754613533424320604664214666134596841044085245332000703565340751835277596555605788631297405035664589539719103722078970790714554970838808454301356251534095166623226174957489610273296115835825541689530743446780271375512521273264580199184844180828337244729476724305336211921920088453920899760587321085018283500673820498505484050236626383868269820896945562061355881459068773953933428807314187602366456853735205171359024835967485937819376818404039172887993807142178808431192647605010822858698397785916804700140461596007512865035395433879216362501872952680502602466032103108627162203926257548189885258557288257113179897934424688563195673219719910237302462177655867640655995863490718957258813465422887801266879709438142843384573864021500639402041433689609604496352916754239892515839544151036923351393725425719113450175259233749698580129877129359757668941169988083637342055112081880846617057182910625074525866611303864710339778570401057454567402502802928321915277881921994201646856978406411553393450066168541477737851445304578008413558866519726955485736744348871108784277542382380305462653757309628514354877739626145822536414497957759568419859911010555900737219992831961679029983559103447259092032432516265505272526105016560381051135351279028461031923955436688661789567911047539942810093196989115716899270504596828736244140208185542405037184620665174052647299998080122342994638176064957030500332203143705202785388534498712114652653022232921055167018770695658956314551497181982669265086974003372408521904162280490296938299762652079023225340073923038282477882999690061273195322714302671247198241633622909299677579421750656346061892486610508398853311408660302932359547085433215572560071495640336066466672420407084578248650271901355352645962134302389836681168233307421994018495417381826595947643916398697313397949070138753367901210213120079554623147375696949282722910956015843788364385988038548066108577060817576650876127906418434648287100315518878058581848614053099883186237625374974447658943698600952961334245319246971045218896313336127341496404798108766153758916996217645223498067334634963121458372859276634297973378057225715047485517518373565154926837519644398558889125940201517644161892791722941102833209117440538984386535934552093329106048988588952099504188776792827885850870821295227691353979967209117993135576060773429038735721170791863269412067267956063296092200878479947031295943980039229651390536347311058081665233219470126527364210670220369897785809599472818772876352278717337289787857175063519797476202800956913974368304361096523284302390480762889757301761681357398808324974806129996382450388870268885068611516634269074045869864257506981960409203341857484607936106886843371172602526074822955044772458286679963942988031202303609776000730886426282393860425285660969940084109197498316761067062403202716862095461788817343504435574497038264085392640753119328885217324991127941472928304043649933415290116516083904623021677676901245581286812659996864388736043907321814939369560378539656858502749778086826510052211003980686137631267661526017381924047939033735652912557397373950109232842307122636120509939287943467674151381668138252303659289627022204771695155308309766565290306203765692076021300953443884113664803633652926650846522050271047925469604646461316184341051578325279679328946984631078449361551108017051522650326475803769142423418261297129651170212066080649699422942454579852263237976105932996297586948636393099205306327019597987413892152065916863255092617646287284149880665988002419116103181913531424858580003727120554575657421795012700067044225346154111308706168177136358706544875771146617533530973143426654481212441019538515374538499595902990043983123727562008337490957480000660025244993562255195637917075435203320904044380902680723258370938123298625715019495093707828864812346507244283284741794278434824431157427153466671739621707221864416253369022310161994055886450001175805429375177503426601823792132376385917018344899384723972254237125149654021542716945003098986997432400199269260003019197095436165480941998888097989405337249069504686676631137434183502110092744251192319443503410830467904695796157362434308919269610944778741354324022616430748704382876041893524806741589427009109895290530163037723357265384123876232697928439137876040912321102446314656257905599442348201225061472703648060426393226384559969945403329322291437729790042995490963743379329631124943853767692679057318101660930007556192312497539479000829278639570179304862119816885492273793953996916408757373571736652294827816334846362817541195588295850164677907052078489653462217318208398738888397696818630869434215538524906251051286736953469144269687206149018546656128177818817335961976313531642247117596190923714978542977463811099918057318655174421433917760382546269232890880100758358140634764842870546132183670418389598310643357613035998213687856007959193962654863598549181562616230015484744601133854400294968421184763562696254922265971622483060581393386495484864704446388499739090387819650998567410721032966999652512146040022170728810261478918619995193119086585491320295084295055142002238599294618649071391169700565137496766504789577181833845994153904195563801176340186167388454065116032368613498806559594742871650291895294579942621023753542544754950513939247331288718248053976988594713318905535982020097104057635886472585089621303773393482463532166377052251511855447879376415488369323474323830145450973015341560679093277464914669791995638119506366059627852436390365443170419776971628862630760381136358194096822126531596310211450065848255809279830764109398409310667126430074261678447844936245128751298920249350235930347058519316727318323349056564815018665687346976834321074159832554123679567695043875632885812449036183001000703012461148921210120633667447900162508568433683049561281466526052901055436960291727919774899765147616279426676004890410920900546328977015990755799520543384776526522008413167274172761328373192560614045919514513417779120682201948970243602828373500395171678045003028002212071351326534819472839726842275752582547326893940759076405619349177555596800532714109353454501229391061902440650566542108836360043717938618683141199126171697255823517854375059791827800404483710976169523368776602555936886095831078748906757014146349354011996825326827183099083401502440117449746520670524780306838227803946461861127384891139460781701997753512963116182076659836167335377317151347758223759865023596915459397772503920849138209081670374825653075934844136258096472401479038368918907432058709734314866892922918482331627747784316073614502732372932430641631168878876792278133410638269858225399264164620204445958252653745469173371877645047653932608589940584720209432536940379651004177826459573404623247054848181509502646453502738628865088283479161914355496596358932252258220556963265980642729602908637397155014605124599198801840843768289023331653683240822829068419023906457953324694970896086569048682158178223392136867964027780594512951557115126255472757825777738434813190829378458757599397933178077451362995082774200164557546128149613987975473556102834564701260958037942048042241868958071178508834637379685627716631521217872289848163729958691558646449003089274018120933654830659597540316343821736725748148255032414395447065511804143952414945147421763720765628789658915806373698097775530106220744329345995616837973925895983734931674669772831517137798946725077443589083717848500182955375702375077338696264584885637075313756364694087980497490189002695571135053080811820951764936408762954214913045782562812269679403080122462047582300762414837946209492114144307899356366276535166754781215456588651412686328737453482839715922244417551763627141681810158503858639611319294401375042610694570785387162704600177574227906037993322320827903359242569500305101807206782224529768349044206767515611218546271000444976715006666608133902896751378508361353328141257071363581093146353932082312914324600829683187352987440250975417243829058693428018628218027263300263918858223732032171605452251445009062374622695562323683456043506020760868095685668031822294084955959941420996457395389741253660413217614852142449767361190627798529839107207962222688180576807881283441598178970391606188051729488815994177635455536810690710950102457007434831250509098843814608638287151271684459972491055460599033931639173334247858931281820828647687320942864786132437847595899984608376856612666817132130183172722514263787964757625457429830263572829267464202591868669793597062725814419240466817156480830128065823177418933274029360009210475254589088976088239114079580640614133418874102154197372317352406693919258723348481742354528043830430586283273334675818208956965374508019746713173351951558392811354129720341195517113919408335690832213042704062188764885617540390267544352338922873941189260718896643414086796412432460614913251285113851984790561163395096973531672229630686610019560011097180088538610510404214041899247981653127447376474736583144296210458363690287389248307058922442518737693497373737198760224585516239183309233775312599320741651099457807445285494466937526031611943313677397519961451733610537752057490257151849789296782431118200197912904238895239354819029750278931517868599480551030226972728053982669994041426134768075056407688421293512349130804679709504437360155122331357632846430899426551716100771835087183220665985804617403499409939145790320970200134422479102552267127450201768482004755351039054531126471893924389412524008616100720769541787758808873643417297691388329268710405806227651125293103974289396860501140826225402466554561714919585342745600669230619784490595885609521523774533021745763631790498840575529283949520717946538091718939586457912229710340180326605447030507273322514928112374660612764135322029963219045722909351869473558822214536470037887324413028247152747601702402226840537010930752841693692943113050125026599464578460830549578213080957553184837251597218233399133891650983623300529482666164664897934419282269978448849434486349827147072329360439978239732295232110426733774308864039994566564260749696287983020531764834399635069679721697440793505867900927722842076354826931206685038183829628981583090061222256390445301622294922538864729640987099374791014649589077986886438199374808860943018304082671770877683418527860023102605920744090648169996732005230841106349880987131768938739989104068761239164996930451254316656096948319215062880372597957559618359984070300516859346362201254095826783538246500915273760544336570146745750965844028902062527620821362661104758517739060214152535212477912357474562913897940623285008435497262829192556794043823837291440014197717457205370656862421004374558653645532389487477464944832163544818532145498584998830403216235460812295889500918060863952091182471550218051965486290331999066651903817149566351280674722357662099546902043265675477468079527380838213784464470006867331651640774279419859672975171579906578609524172719686915848743404415824242329034408100994351096946877803305505088362850912755173770191590746865073132105459459394712869323780199484188218621718865207491921402885180752055042956706758440289023386699404882700700958989703009671938735011353609056222950161778743353833843387146761196321761396356816930788834040883657036283116836826120437567667621142623515886500668081618143868275731805704215940261866680540085643406061778661174428393971627783527308330842922538529785322701967403105936416770255662366129351551882048620327554059589256765024094294327339919787611948077933648917179125584602444825224055385553021315204146531955102448201625409629794172089214764199338882317908700554090138560503281517995912462570171959584337452478769009577610490664161549340631461365274466074142612749321694078361868953476750765345762114246695876494624127892175724348022995586079771534000023633470539921743416449037559443159720032369587720095707170262973655980140021170987141250284539771319234874730876309463732485802612891419856258638483352129274042987789927723052943680691597327903990299890402566276693708760766381182771446627073948277410532940340525139802033932073955904217506536450610245432814203589322825526909173118233869261336503355536580201702154961894144461079099915421933846254005585035580822169253994584739904009634374478074829418020914017243688820056133544198409891065337703644848303499471685010669835467558276924402742126607373074224857972062054309587481150848516222064662149182042153140881117537542040108451156431922857065166549989536361127330900594273348444312251123132330653841088623697694200851402968006884382750948367497180311146268541956289688737021178828134358418109127201521801009404592148080042003371251195087966039683508069639274177317794671529090269952762079635225525772706972221050947060377252637773285209677795915076825120907106613033084537418758409268174498812568506540349350363453568506136769021014246752725747444548006883528637164608441356817163252525439212904907182785152967288727709998647641896182293845115906059200705576436470548221829982742121529469319522850022455834543785641900858839916098570961938670638499362253549595025650496065075201372065034560788906887454566215694569552366737107426635345811086142129969801807712844368911121352093975675069720099664891101788212165576366121324719539647533576385532976334370589691031309239658247618430976544212592837750437878450982833615995440672072277031133269516234622227422803861400584743000120484630741515408317098737180180829899030681862966841534391628515338210755628768873134235861030589276390896259518844870596277613670032341154090359283874863245552271262198617500506539794738145554574187210341937050079434757015976636603841274698661207992229562201250630991534608896479853029539283560315110579369772128593928410538490529586526827712220707872698304811561943641351350199154260235836971998842219263407696769842667737097546421360093029167364435922600829933579714844217585064515771033789700788734624841880182652446322544097547623548231763449702866561432932648890080992497091841304835799085958648714427806787258089077842894831861802486180726635889702836796444010786404556904397137822198618019623564699601419775188388480738178344966589172563309841599010913487617313249543765788494239043949454912757985328509582280277149873886392756126852218112239765526577644463801428080987568616762587279858905948768721321549111162534959751555248115422636915495113096606519763128002078111908912143913615031153100973155545453589503039379885415436453327415109491975071818321952778518129977356154856533228251083564687354929096315375473571130337338039710212249240733760631895538486513889665678263873821169737779019550112402855066437764756269656248857341628119506636646740428489242297374786027455818413319788301545270142400937494374293037136806506824067772044913196458825879232079764261612807953710699655496278731941596287044450051246908893608243090554435855431017199655439671836718961674787589998081045277135323443400757581176593955430652041925844403956223368810034939720534950628501473383210032618795095381597666277389943253258403329006195716768241744554122212103330855845757075135744067292893794972336898163279476905604827401919105995363926225284664956600730984049801146339203575559942127147482532318874330670944833467584258719923075430692447207836437681153276236105983547227590533708641615501842249921536916978022711184415033221139510631166537629082852202875691853200805719197321079875685883223706329311590293651886650727236984363855000611144987866994652404130994293222733789440772482583806423583752773416657137743590762999721956458216932054442115829991775631215761446185240672347194112782215802381560822473048866397761166091081707515633393518749990344794441167566095435671523474898390474937038885534855456757856832854301804725602619209793898844558954209644813847213073045246646443489797994270322313023779045460276164022208883137193897717302269528645495703352093578044467464691947679964871174068296670558726562964572400553046775879347833816328428900764303451980306739883747374313647654311805586126480995014038032267857667599606007395694104737772980959126204481744824525468093135730625295142996396612052425233338913441955858504486384516661760099166947464117867815483242973188460685290654124375520230496330433163903196876830017420339279387677589053800183451585888888366505701019893474055494916229308895462735303691096777519489138497802307753592297945653569615313581357740131786422839492545457777132049929884045778040431980792306306208478845069011524921002460890800653502807997682832789915626193855683251659497467900465801046687180698922566388427739889509199653282308472409933522952966184997242444365875243329088595262576823753876897326652640616882068044628926227676258565059469850866159054775436790245558936811754864506850171503896590957393870542036572604565404281380683692303076894917685806115425766459195426557391682370370481031316861281635876686560046140778550711210508024835211052610856891562880836380640296604773583832289842009174131838926382607720093169194226496632422651561705275875830978779904551626377508758352779335467814632835537239743257984299859868755889159111666492886293385893874527733573849161987313044922840365205500550711435953747354104158408463567812563253282315860443371300166057185089536794786624709211176218298891005329415694219584447222574095565392416765005172288979612643296031154693880535959930022737975702037644908343316191371307355797702640745164723061240657272718098682782578830157351663418122414135949390514763979685532900508719547830760509577046653682313917210801224219983530663321329243799450314824925979709706603785847641641123925805942463532780741747531181767508215562126275245984994419383302978917288598824366806022862946313677479973220739373463916593590161878696918320028084530794852623101421806265591381732520406624135416731282720930659089497209045435021225925058722413785334968388520556791594465071685836912450319761475512569846866202130526034171612358175602828037967335887715800272311646010225381640054096817511817503046920814939913200037131444335590554364238770052528182871442186545846890294766742163731426552734437791773893714685010085621779254041949719936718137447087036179606081297807896347216252638693991568022821686617766809104871843069355099087803109534396913090212636995567692673358990103782722892130882670958240446097793796683768209613752115636360387247087296970967311987217583580169554823773707692071975631623806348450425015428446955659686877387805582890268657507672876318787615698822630599405403616695196769475796838971887790370349194078080792228090540831282093659186314948428465063574014928113524098114142300846602842668186406203640512323271195338928791261302322181852153584768236580170528696815059421582950331811379881899624041982337317583885832289438011103051335162411526293258044319398314969765754284571695149758955478804953814477594636448538390339148476573448080645373017895517079129426175136623376427877564114004959295775155144576108961970585422067859593371613393528621422853513717341952014771811259077194299355672652690945675740542058542257661020510345618081560630456363854481766989059237923460356342282345528221277096799762167647420377668621650074942199372925731279300401326036651796120755469571104142924667077674094980264619055382007754155473050583856024341256723903729473016709034817574088039761453853753079206882345317767971255437006131911893003621885445469985551433608770425549557417775931557710279099222910620438919718492357445606126700486506766952049517120960578330362800916188865925625457511385150924003260460654159486487192493976922763328488673939006737643422069534060224785873988922742561860684668240611123297202640385310530690158405660405390228648915216726810960841394264674091451984946902118089277273353213231408699267953235437917033528581657371239040401092157907714035285542296964733935302891749726443131544384273636703983703116548895049995340670599454083989757398595600869055251835501724511478812322204489395592352870729998113663806415261779489254676347698222882403092527267347812471067459738911955407960172745579001405735244350615666580500378547832742581244942700776156149507142868479238249806388235546961995389128219869963191012435157993328423927746019631952993609383669164073319684274996333408861519101548899602397872336931381276462329720111221076361179477481469052722517845510959618555539955140010884083162016113864202663951050315911578084538308059014947924107346767723185105315127852015504498637682745602268060019162976991992698750847508268915293372795933813145985975264759911474573536662342403293227096282804969650371118502532962170607941451020559819262679027010409712825190114300493731061003762618816583990366660188443103268094493551951349162957509455136378818691505569496096520068961594475706800533472441761984884177379916878217546372683162698039626203493766336927622690604320812934214804104681350238324735820988042668889754171733999037078948538163972846842862939133811237820965365638506444484626163317755217090485050516771290875654201716733243769342370108106478620119131802835133551107056948387700149164291790555816213061901513812429926771153867515257568855640849940888516456496447262714397450896404852285858485363650018413024222751460049054352761676255847240954268498565729667868927601832645246153557286330770282525550908079817667666134784625697820374874067674847631041110216998528166519921816983628536363661618673146384895327931359292348321932014296825478431924649629225387021214952232204170130495005446431193102966646314218204173186841496082148085420111522906006936953171133656834256817861913286681283988904994568476281680756320369957868064675719135939421941553104985439213853101329194311388502198545365858003159275941443683450153998895683748046548118373670420928529133327203822317971866142030988648757074943499467495871980512772062463181246945205735115098994120755657410713187174240239881644368010416486279557361806811342042038328538774913192461115763827130157447105309017704571961194523746632832121715156515950918166227957917527758941928656575671410166581785364798180982378016481105917296799584121703410365213966172602670333789381663998623660123969063474603938495985747196262362947782284872108113679621139282513844130682101226678774113652656037343512937868437131140951279858604713121946859347974040402623898011433469407321210086891376226039416184938794735833263609645649404293599083538698792989464009816193576024720732977455541224438772792789052473176859211220803531213316548722099499016999453372548462874648199298581516963541054601239732859220384144966855637107972247906976116914471776732662913860303571843603399839075837856811534740512923172560223916003461910214119916176960367504301361187225904761417153457661516931586183525244513671167740789813791310896855837613387985127221621207753843398345927200939979289279639291292932208576714142782966145096366020139156414249685036240405149011503132028986926195153624718386937318012423465418295033255785748853670561475153546006221429090347299167170437946494884206491057449772996741298764820616900045818524167166919933449538458732413792987800307993038215491260533397283090885832044096853253410855510919629234692559832982326077796330261662755640586605258087724219055272430117831174404272942509249211252339744480664974080010934275838671907135756747465437871202271339242205689404638136987498506334873593968371759700382260935591629894838175911680840027273744286600154197158149372421571837694854153454980824242870459395621338519281292945960191518076319596198064153409045324362018037784227970473143801507829894844851819469881376929151021385791745167547375788313867981077782068698385201896971537451216441530026268368868721878950074674955779239339834121389530795559443855867924975373270396628213659390965242605926661063256958480547047106753516391458981974454389690573053923203573545940407739298314345729896030375599312602577033438593650194925874380671512959614488307092194795497906319482822820701165095691537247509298333650967036730499523549825215588171156628145060336407410942088370008678222997663899199703994741571237619193281343959171297477672405879920227486770084347237923729510421031527720166502335891835960185043768092470825322612245894831620406999438296506226260661225868350534709112917881292415587491445522025475746128006796975041137511890992506925971154834395738389065965643311932326398493951259714208953319166024354728387043009127900242694464332639937770011033018432030443819553427564399199868078482359371169417987940916699292735879186003154426168453704461392035919780872994148546402509900291386503101360053379744653951429365353063555835339375901691124818952057125351252624052964410883837581389142144631227525125013525494398852400577033991690616892883677321759612076649735766633694815418480879761338592855102430368579832860606438819723648284640077286916994057422619225448844635362862314014582576035180580431036171549885842773970980685050073566311233225637638097853148680194801563128401709620592086894149780810098600715947996129510673459217724862826707641047211788083158993603346311975737965872037612015069276359598208189868498088363599886931490579795097633519008465384366321188371728454956758967318053220686423030379693291689507318409566819902449173482162888061625048264634031998966100699123259956205902839974974952171126556609664741885650454163739614946090501212032264876246801561570101091192454038158606986151235523377650388318777855542044336337615594098812082671569327317118296904461770169916240284264453695976265288765173180429441742852458656280181778564152466239941274770062299811587514347379640388503494553667643988967407889728264733287278482552452702494608448035758931975848769042876703357732399863904055960113821963792775477031758797506826347826143443541953000915557347953629335898453860374955090694210282671556809940413349883060757818003844172165892365957863903443589759414101176073096034358505807701767411888927303189058834707960111764731230635370797909516995791525521820608298023922745106406904482859832734783026185033007687305045115050999898467493041277858151235799747235714337411217418342746905801592262184848627578037325846418615523576699563653284175631959564096074590647573856791643167698438535494236583028549522778711356353659022710317188388638506627090981410504594965661881721455758644345957302448950041369625743567373261494124398142591267315512835899913663622811204556167399052128363435951724705937018746756497156563628623558776503892107645042477029785455056975937230806987684737339912491544681946083284867999192214756446504021285278021373883622220025546360866167979307755698039866866430373680949152634408830341475842268002269740550216331792281565114479172397659817212352642172282324884217220335723879893212689695506260412627960344148746507755664805591144147096573471576664930087372414741928927211586520710408888612911687273964735061242284572969120824255901605246881081386350535454517316208100118829224117791665950282429835562408479945468589681404786979426617196502809614579088740667229730070262376161397663330837821473273268209994406415085134333887377554201834693703790329387599299664593867339130828570847573844347259140575609494662799012795588598006836153252013425131474896805706998889380068984580453016998582653554934257345727534390803442404161014719385101658862627928052218706987624685078078199966786930699889332695190133174873475669717834911897138687326411807627034973371241222881942860438964279704746783439810114769622217569821786999589816644967214511953949100957998907593362691378217109889127218765412875870903569918588357250305773627264964293120173870617814430781488382462717165656672855623119727262355076269480584093072766877407098933124581494280106127927269999991058483180643952432412285124532855621747458226219907205227603376066806891259880885717868501343719863789366679304972448805659550361675300851951466709518798973349258484892080658211961631114567004113054662942371270546277565440169129382979347920549451540464443603513475968083877195932000217031779852935180700194248858387234855502319495979460665659275322301207793100823938288656762302014819576893375983920621337434076170205609423569389709961524853709860117945018341144707779422911028187153938872889425756819588720265191612796145521221752702374641385460953192529617763458822686209659003721771788378502899891958017848607525984496941998206382731335636391760933336791187781639416810580486405926079405784218758893757184155123855685147799443160061724387943219126010478039020746185045301532212765416656677779459515039244511571365496141395120370527819135481558330172966802578199442302671260121351607635648391925426473452889500115500077579117659593473092025550863833617412002572363470559606831480593764707160100197916654554652247448841808566700958529851225489224134338193433131394412531628887970442675853043835020666732665783437642412707227102795733537053976280450147925949137545366237103521610139586169370504416740319308892132543700748253523997060592407692787752354638866714265078077792501241025808315388324512182558313281370765572379562175419246368210509781265117827009527537133147597845116886097053932563525848312181733451874419332336733138043637908203309655317803933868017198864782542917661330947936882968819066327428410000351404418107157651275584980117211619566757446372299836907443765039640771231541376689124139803873470287030316366482871389030685740009387092411706685180241662806604045185931524071594173352981809538453156542813536535178396430905322481643135295858932733588108706185915751661713346498558561236290058899888965436572773913506538222645806664753996991170527490545654647404803100144990730888743340838984089413297339538465493178748413582911057637924854593401583632128992576159571604402080632479396833113147269325836191835053459620758114810664014603659513733306199352624808432723407017181413410676465541546784673727544516366684774279966109278121515589584651561439069108891399592405731174039447515546013623335219241715914175441672392318407169449080643321957545367268089527546348323825322627789316966218730146416308749035639535060562422088460783403744340270533999244047451793192060197385092370984370841571968311434165550449032530797695756560521038194524144225581422939852510788509898488608893840473979030638445682734483420344744645874741258306096257315718005221150543517350233015036077120029396864538623474167407690565680830690935275371438529768134757078374965060879775819387351065771811853010848911849295353649782531142251282708502223260581958297274799147461500925234612230106139484914237600956779259435993978099022387888637143261437617472724971258385641358118627386462461041012910632114604343794316116084052040623761121880226032639248974993064721046787078216743673367215847493450405466739400795616470409676770344164952520447710608599858639958436038992478971716804483212731704129786073253111203171179960568411547772341200150321594920080140817631950481300233897359745523458220091892481091840607879281380285752463451297108035080885156282351388908079862311444277901183853219023345199077311537495359678890772532876225402269721592730558410190226368087434948823760408561279741669558755954669908593696770152281886536241832508071982379614427497433060893843452060007333723515776654790622367874954186124168126844859812897061862365188381724999068827147904510381254296207871741035610223207930793547432722735531028197970382285210977340952546487850677091015684293585209304163846179979528854399017223298691914014118900222876216977505755324360325711587627966098962399143000139417022311576563813174138623972998061432225404746741308793490153242226607083681965762567546472540477517673764335335202174974150326907028612989678018409771636012034060082742425547146985381890460773859666179908429402459256786546275976066908107262312726171447718755888488381042323715760541285320844145012759697775799184902892231890750567450650373555993163125722529876885558107386936497024655044435722948965694317262456979575418798373774391111475242511422891098601107732613278668075370670862398498042669713143589572956413358975859802054215204213611425109361497807839962792532672509020476577166048064205084267373983564510680212453015663713367281114801007521975096825992666078484725648242175688598954913589121703171667401652671276396737664046107339042037763735983113018517835092045513723178871279135616103109065168805724136848448301056931961737080854768559683648245349029694751264193643676303520104834386349224090965470896193268386826921107879244939401493110383179338168217626391814778432823539108060173355933168657293281629234761855569325865033676865899012665434444784363971650771707083307533192104576576065172385455337393432663463873486221924923326790882518607095945903030197228196826396998219141179413754675343588792594486369830978117980353680653886523000437038885084583238350709483809824747132558827862192693166136064397375987753124459792731150526008047664949053738629266015454968144310876526775151801933904910654592181185374541251668170285029950371969727028836588798236620486244640864972966590250074578186791697861984796587523252577338408995030214515580844430252866947104591589482264231223946517451462237580695679220795549906958263574450417068804541516253136919707765860399199627411353470793044335171031964005292570929619425650809705269464046356117654076150365262032002476405266939592490575590056177200097701558796167699863980662145765994054203418525033139816958170126689222327733931475239736480765071909689427783255087126147527723365273341307530332762303173159088578555728196803666227150270724061392694501240354077615273194205430128169773747256574838485778172284495832138941309904396377571397940933878310819255769655518678098558584171904525142350782344522350255303570847668071782789466409516781580692046971979806982872913961456564244942674996880066724625878253275256083809496889395636176449754119803581559966518800689802067983201568768096182979667964273545111925920673099848615500828097367805240112789238305051675400620327323238867320655496134715643088111060543109669892785094412503799227896275094037943168587456225641415864895294902295581169970720501178561541427369326609521616601508031161404857249274117632497864453853857105993590278517866185771403705996299948553975666911978212811285206197258040400663537959640588901491856229126684077222452860585719920604350545254145155625315491981121039737187570013346252462245946879676098105759124545547060360878068446649241685192241291314090423010949164177234132927891364894139694129529960002858239528719693273572421278636439262099245506956229637314244266554622324518640766510642632954270851721897009515280457401008651556897137612522293687600619135795566623426274052526632914031458888049092173913569207836294360174792190674208547811748525664451351391141089903792689658293214793412993731479695249284785083385819549230210236503349067242226207488064479730229290826389569306499712456674447484703538980695178286042871623518060104507912503870300133753186885571393551034796863889673281020122848124638833994003262914381918647754259557356754144343500530580175269605337146618049989488861197906158290885121599472732265968386274297073434341389213178322394781357320159937887531498425172164602489877325143580980445430881718832624791568007185419942507257023881531373486209051370980653405369390504581792993776192108951372233609379554497211200283927273055878894508419980071163327263894636740909528013164425885907040250804250949807557441358283733999374685430968386873779046749187010859026986611055432909051860339039050612667885138057215453949347002264075495786999901156661140099824229848345532072565957375455805816400561532797808692364817433022139954166276339624193853535994624508956340974087366998231800883233834526580914324193437408749907003597898075654055232188401463141840787303818659541390134741333446937644285306921004232243357016618877324082863692288021203828257869798310691076602103826501116030613538271353007257332530052685716437744533361971803726698001797729513585735584038819564908189690785871708966744722231985279504470992357613027015745795662486788329656527648919914167254298447029765074660467457640692923578999343775632430300344124049557650267772300476913187116184417758805213758981103058535331952366456662951208815129094046713909612537150951858124801411324933193768631799834938521253679492815412389771731980532166889512473103723318508724797920639356784691042663038786983529738617377939646056690556796947389250304797367211412703667169497591448019044750262640164989157965053430087221084732670802876024317552030661634960786091958543096879021695553325312473802769261129399531533420242029693765774175825665375379284625400062670526383146494998716102652930950843380513834713902189714563980462766790585729401833262363860576594797609354346407196784752832430510051020456959974890608151421641172958918843424985337572992745216805930687608760304826154252253648544912848796961948330759212089855164749502194880469590613995257409850379537004079945773373973687446687780886836005508051560244947965745306346039141858117743550944363186889951792851827557256276854247755804142732315780626914421473806796688591792711185211953567985487196838718494877851348817900299251426752862320554685638756429499636287773755242982976635572109876803508557826716967053870486674918846730699233698077042160128432573864607074186792740545049525312854705188085375399205028293245198292652473565375394306633230563324087961819446800606203196034073567109562938458349653973087505667581267788081501941093586996209741907798134409145458254659700221901743137729271054420209178374167977390064390472705710923628401227635878917625129907203398203145218326919308340821000223198393131216483118849274207210530077937162573006458230609848646027073087121810392703956960528371527642673949530695933670643326108299620903966951455899781880795493527981008097327979772459918169697413466135467282611632489571921592502712885912803902281633117388222728532039376245890448942302666483967654087360296560369505740686205020283123535459731292506858577372865329944062142876626119377385985386995295519216332499886255555802131420767049625196203771296642440928786313844969203698217450811023224130016606547143825065817996299462665373622695753959814781383018357639648943898790838817551612091402441729143681497464592951444282514083928813816313648586576152222524543030286276765036525364938782954737458763165554962351394509422030328804611629677798001759041373746266043722806932239245915912335297847710424957349241643850000369867044417071496830163199055010196185981160733734228570156892591582331445759289232809874303472136036537161133729971527278116061617878253037232996802112174492385821704070364118245178233483096598480342072068481122313342892922091570424498376044212172826270810338745891757533663350941240034024318268568101518811148894837558990552630688809779759847346687349296332334843888727082641715747179785281484648580175142287803943737418217545193564222568061430729389002760344329741969678797851187006502935559462568912406012699082912752732622622159173647317617415394593245291281046150419154087648080279135454680238961691116038907656283522115650982597576144603004102013331598632418087332202624412999736188007708129867909344870787499461364705204597160146022519292604967910632469014030460006704703212787608692691051776468873237790325573605262494955435927635998899230789243434427404425343809634666924767312785493031881955344893610848535265149587811463617127914270581145730222822407377553643468825344607993626391097050897828218033083476168014059232249967980654206745158778901778632866698957481390223714334843477254088677278947507560396708769744669726683263929387914665455343238957513789935126174647937800015975789034004578893618367896615525218620127475506820425188279117586879014127319717813572850015444869865853285367481284922155087917759263160182778342590875733951774965252296324274856257269890765870156980471429750631454182722848012030628303781782818755301332913885624361340021844598345271643250889360706439994765476237055123571052554655646122216951247154153492850054687185542002032575346474236141044533292594267830306482729549694793019035636780842375732491200628553908531686954812979552404799597335231482404606896051899943507205901592847104063246983199605677298529762893786587756743242835931462005317849089385131779009436325687225562771913002842644730248193939710315479871536234467923618314175332241791798116050675486917933361056367890252873159001237289177613769558108418257600530893721615858209531439438355110349494639629026768177262124212462188157707965409216674674137316386311810076075714894314626338124141465470370412486619475582804314937021002520378208425165923253409080891976114298020273159082632042991666445437455196303104585606097317412653821575266117737663774956483421193565984294672758313497150101305027076134517977506455019378411078809859042865027700904268716822499163068484776466719760381320885050412006222961531233682886398690847364841092119080552961464062779735460593612189135862684505341235061194565701674244782325872435227155281952748666443713774467067557978145293408131485336841091415845195912798996105608667582166636978654130045908081082599924345585417010607109734861372784695798392207719220148403922451469371857274246604067249878347007581913312439420894814888401148074748421665600876632656197053261866768186513369875215567534718020486796899844827859364010372801523962172900144265241613727567647506633170486074516638743372896822868966699364320530576641344848042889052308676004329228020424254741433264496369929985503404052184995665409112796745149680988643957729982558349854756861963298815333576206434322501447522114561708064447510957954663946522015881209822236579561913471997512341597426550599617822784198923079694990776886074762952956676919702744555678869556117347713138859428376377016476618664712499855508030992201350622509223498880333966851165490691357967800882624297156418590074045120701925465619628331419764149675417542838332277441629072200798662852473093729241955179455243090013624733272212989426771839192950844913644477059114742633672852212591954229001288086618459882646354254199662960832261654469597061765686979269400434835507771849228445355302720656132821021937134180724091387536177998605361659741855209401434691291705522323755989335638251915979684470927219557290376773543378358702621557572212525388532592681756963917635920742763371428506381256775955839802583648679333648868476223315569244625580346413275368044790601138633908320344869989307845299277200557268252000391303008042464156643132097980709063964200343270200108382055131663564917718733038800801248108284809002070676050556857322687424138979185224916792320189899957725104050114924154445582396238724732838439654341982975532460150785355681232077043049014316710071272426537738168206818699054356152104961470538204494421147258698886861345018023784928566605035364536572233677304670308925579002243716167586747076428174658658724019628045936201549886388121428037841254018871850639779148458609309843190129172779339944993340637784393719641602738446948644644421496523308185177319846093870415074074950057282423762762481349402273762787009808409158878301902146223324819746166743214897380241489356643554196368175676303002579423158036693535722572223032459837345867489760432647661757455826824451576970944213320948091721854171422999706702101832574422853338983502292027105769424642634525304871272456129417509524130435216150866326265704189641761971424198052342857930419881535985371577003014742038483134348313795129838060922043231137564845715377738621708516553718881674956202138019139275987216546797366558466648029003778366444251629255446816942976415047910904856102858995260859266343288309229028294781150822714902919986132203271724622294208383845100262596902984782403087477615749363797406713439951113743349802637722785399479786154935044670505753321214798589337152198755041297950109335799800044015930139647465256278479059804144338784677900005241322143521206079467573441304387219411041935722233950723161452231935043787527635936375871937651823953027437270145463701189432462486739030029624229770554407685403204144172316405409654537490383783975832632261339156351340693760255238614947941276634549585060403901131924727726621144082767653446563908384606176107930002032629907406991118942669984612622036209866070936737608903756351391322326223960062161778236478326766119320796025957472727727410248895942420664217321873657721082134800077493693300425851522785515083390187885073195808969140321808023789042349961363269442087750828085260110378472822017045273316972262174169991386570020780398361430403403727870832626281033190203841715301638902004396305317391579162558583174446858310061818465932762097484893257567381875119234479896934570934591250485714892804176181017889077774623809572434648718851185953612051906508298319090063356102420857917423597122580678483151581230502093947196060941551113516199306607250917081660379583905546926340872277170109565314315219823754783351243607893344626621264753193288676160970578726814479981759028174667280143967553412465903864872957560404917671449134619250428182763028449662344133518918461696223054051989243707359547673886825832429561393413831730983838551590058597716404558306534152295079598408158397780416250242584961455544684881617139110231674015074069947963602288961074805194688453394743389174169237519484607799024461681607263949572294358254166243124275171524116358596088570829208745306488983830488397223735622080892469688765205366178603163448611877597618851842674256664006452392534976272237780570313801750957145110171553347106257015137575095315215486882734854890888537696154001899179558732510513060109271613653677447491938238393352337201160932128335367325715947892597991733946512786114394184305586829385905749225889878532387926991166532683715136832598132393896758375452296659388656738945171323208575056239744900206225331897085791121033967334573736120970452416110807269233200780393345403889587634507646541561566523722754821061826099745005666012262999230309013359271762351245449409718603893725380041943633438818920035210826712711779022198227386363855140805636549610004598178777922641190377646694126306809248488007457863526829040643884071347041783351156234738591899303463272609085179576297010393318600696514303111140154797002627575131469805549233716419842386073028819456985065957605605016100918971834430237561489598220287512510639582386101309156679557493865842447981979261204560380308630946303690771684403963546301383013279767985043130275047763758456736607566816626875810787139619989791378801617888407157566502696667557419797037563859484065964783395608648808317257534486472577364578032785942585397481915842217986664589351870851639459229535123134401318186886790910334594304668323872677292378293229685974801138756777767760900967430161074201518242115082339897715229184049892339907589907627775479234186742066129529728902371372932534644584535910925428671985812247593589839101896222082633816222926586664550978644968835814751565051651505599125722726638062574186367237772786661990344005785391663515638313660569770487116412065984298195997661377895986448851778936735639824787801553245701042583874858248946458194902220517721087149919410784888010443921252876280457742677230104975326701474133656732184578532576946642580878854392424944285155262186764327232705978541408621367940742074787723372011942567389690717367555439414769845284715674057221600112006010681690560911947615199727342715846980606097072586612900124973672899517228910910637100378235005274049340760442703423344957791596689969476820415960070983126497035398050438391108373487753149467761016180619728873942528995652646170165933369421506910762144144857696984978416430129584860201768595565364501208839216048099641563562830155908768369927235431619524408902166203736525913726006295070549455447820513318875227410285752691237425836744018559018196778230976038521016043017614787253327850697422974910818424125940562314784282716391725736801487798502582334832266153604242068217822258875310279480169130280313699820390115908789158247322779705763852525962450721588260875661453645750074796628150402078475914587059579502912420340512048157696571970220894899173975802668039928568633489717771111546869258834618337345000989887181516039334434956335850630672096187250736273908785900909021239371848172958035167090231069699909664906940326231556430330616172918020011024945345937976360010978489792486236699519231473524514014022190546705116461622776986652372222394764826947398713452563478033098579590122683762260289163464065685265537992883577653545779713651866038654512885889389618752554873602984313669026517845895950077780362821638790348534518892988488365085694111424368453006834294430969325098079742818953533009399857791067897312241839664806723888121884559265196041737101347614681053392661766154389417549936431939722598402681725946761744118387579553291228079961714806439653347952242601734286079241600921055888578233295008527912437224924094086614881821366977202659457290439092954756174309563138531858087467180008276431875155005280927553049242858014462485027789030888694598837986659299646934869376830630663397890272564553405694259833660931104501417275818263805521121600905082427438309206413849779685970088128189500927118611822605981112702757040402857996390753063713314517369983283913216870365911493350731999750027161956148544287875849721266834357785259988147245156484548026257248181129458921256933343670346091164260507141209548171962959337776562889855273018720013563252141785943385695010945173574332699898185372689812543007544442083661319621226921386410046531775181635422911892422587454744407249859639892876254176214400285108699170362702870452458429558599285615640013481935864247776818201248908112787290815690155647309704869919615491930019462834763093370142069995166608487679004850173965860340175445545721089472731061180990337491495225719965590396455656988541086387236635478393722640371053492431794616494490990390335662168831779041303575307793369064057343796950293592637452751957891999015304993784029494451371415636733845207164277449114658977131133398661202752374182979427506300761491874688205207269359459102771605276019132406280695812681115591104789649365329833676379438171157750154606820176561377733031573325980107533541444146179796351844401503176248035316345060400581754241720194005544480057835495040142075666617379572061640056744767901006154127157401331640486401737789329104532589360087646915101530615190979717299897968701511234462025188658697228504020133308136703844793350584419810019022293424896970367660603168268284231855065475601770966094787897656285916235633536334334020291279667776899052944773724181009503365528217622060708365964960706838035182841234782845049461781357682294311306411230558649746168530197383040673840992712242321046647296785823025203079380268359667034310270114897319413929593882376804371492627664290859320474942635302436101120499248866829504888643266634134521708021506098054374663587667054125616272921705310571950230495989784506625290080465822890082644038397173031037949315325264930590866001961021208036823158648186766049644289888151499191367325973577932448750382984859911594325144873952058644129309466315842550449790587137751175372378201005354311799253094760109831971061167598591749831616034895515386852805266832382655777856660223518597585366123531768017621595829614429380855555109714135979733934889043761268827004065579457915286576361411141380157880404541393100468684991748247542458667454790651406915311177902743992037800140982796111579378372732478065483439745686199938626718414789175685727747480606351154364498350576996033940508827225647116640333798498681042875395989394354876723107516652263851886309067467920459149200230973558786174631440405948626226313757072212175954067537325887928884813702814106410754748800345576330819831493883497125874411279370718387866868561588975241001469334936756963538243972000639443142944138186777487781844724184533835751533139737674537509505753556085752567398584939389288495400778717831661162916411052460393608003325252058955155147447036438456900384390235816539822552205996915794014212028090022299156177901200634240051094834098117622915388126758591405477160636060523871327494297798785539517681583525334335937175326358442656913679805096618294727465721416608322759511218073465194422548071502033904745802651165320196737433174669801137989584648725382789109174027383027558675282482396998768307228576200583157257768390420245512142915928758258478702240983311764129040360617877759309183436716888979313416249019991941130439088412317107164810091377916720065285925818649482210380707880879614275623483101773271837807839829820802984812968323339810196264437224006743797429537199819593775416762834044055244284050195024763132277532373297449101114117932370784777950110482978283153221824041713090268984883320079092701313441917336944716398250959400227845925223072865270666921640605843434748635284650182876739035068804633816993767611642994937551590630013042052220141071847282192723028248520465087732130955990384887240339504432411313311633958718961388127548670689811392033284586136730549382191588553770619308281374350252998082946156829268357219653890868234408651613986853155841379136146344736263389607985819099115602292167256300098548372062585856956180317673706528685322583287880478619498007624276104193732126954768994538381229417344992465923222409749703309412067834129112143456957122750941369917051564833812221606808029492116587182479769414842293717386434771604617250919528245964389264559032279913515063009499777050047108360141954762107831011723325789407969855219508095559729760386251544328077740592980390214472428437650916006180082699520832481982238989524768593498173379956841692407055044316119953055061690806718074069381482201785088425336246944724053202581766468220970672117533739945784094569408882102597596164337278766650483205503319551137457726794609634614519513133147772441555500102363503814758761180163990535307246668862992659885546428530969158816514646532614194061986549041049825706691182917172891622599401527946348793016213039166584683206936589977905085094976603608380273847862467355554999383404463570034531402178118211257045486542514680198493068409774571737729661232542698613974276792584229804231975064517376223679708136901375675993636439737685037797476462363636255613156548472528170744352639048805630042457016181210588435081797958655510303919968663312233511389463511393209632632597432203804880563325711873408697423046764992322559384012734338054656164520383293545985409318478576295614998929377386553969182422557175956218466790517203351574492649310042165433248618478352496333822173604624006073317589981994588385226451321805558370756506629025155601596939722345914857630576790741723332421845190950655451826435078790716772342950900033317111174069204463258365826814221573619542659507666406330237007634019565526084052539223706578192289780005500304784037567596029259896174299996545123581005395308487089904823383581995397403862360763122523721570657698220312611346923754072850193112636905576281784327934620542319939832584702933323954623580301844445835669932314515176525261539221603033549050473983044975767442719556263402356866648899976941858030356563603537738609719689592886419441792995503090357830250330213118307356604792441350725910860225525639626734931524815082722116504644930563542587675072231254388753211557962516656546115192241169284656690676414944406962293491617644754396411610564499674829033202071054225551844077476154217486768937618892290412807182586814838642971065958161790153231598802359440908877519480471831390037438980770892774720841187275147742952482351919755437727082024804235551929423771381077212116112890917025369495355305755494674081723196498105349929409910275192241287992931924270178085045856365042712560460226466063900839127708274527745233954041505939966052910871037087190054866719215985609106513278050835643719053210254526546229500606860437651645435489918348863845469113621779036435288820375780886923473267074776153809825115807072615709881939548484521033161982706451739389137665543699761565527498759854287318216096547863685087641929986940344606775224708021338177236947740584930641196311704212963783113277189413614982667647891439121919071250689316467029063331113744639874511826481715934381560901681717448398108975902861911827857407378655449294781321629338872065336996111985131918388661548359311064233165461868577643691820745094145193290453475688684212308888536436870033833266258394344648362360077524851566477797191244410827095304723747796616120382251623724996966782653483128411436033945851292565962181681548135957665754434215327495351398786668812988873763422416973898804477403115008070787735610857362276004942797709042305378548427775419073605538583688468136068861316122543785763691807415095097563476560398380568600319204007548826116894810541470770711912820638615827814892260278538926487835488194083481181020528349860374566405072440896784327385697907753367149327084667738830479811846879606175449799961705651347312222261473288425485468974485895053651939139848940371274608912679823176084696528436417028133637266065911570790273910720368542058628550042926929768779431086110602999762602360200250355326770039342189961290640588618319131022506768479416126527657862149461901756198353273173994637469795128607044959957863767500304095601721507305915000508473525902889454645121425017686243444984484975088567756426107994984281014796201661244077534664348487205783986095029273389301030026562910101063416114712075386201327314143999902768110885172062147123232568136977054283297971553514004092056295238242795247590180072265832152136072299228330073971184262096189931238826288596269985246529496440779217343816017939032703596255668548648575487650338323252862647007863782549427439273294785790498928421919771516953507305134072529551004851988328875182490010858210297648714685005670059908623630545477750319132693129947983997176706573326435014437691899205847896602342382263286506334306843667192847440051009202267444205010997304402226624579351294809169640125531417592519234311856643521146839955679737485715349972714421004530788258873540560419146491323684363646419137514485776388685617207473961738027947611050648632701538353505735163417890097989650130081972108204048159250924761290386244622604566776274338930842131592157635947365439001666537531180683788754102232664364837217736257653425619961571197550398741908725449074663471989250172298234744942346004038924316051328578173958248045338227630928614517022140450140504496898579505100663659216838197842275638467291054252892295141608460528348835810414776824588626262636039223398170518808987105040238587685966731063913304488355898398758953798744909404006531604541960140762942770798551132735965639307110996809636026241780889528877362621405703030898057878597308268232750945276690141549286851259743183184364377514089196238106688119496583540298822722380360100125794123983863750922406482243993591596627555163288491956912533295990597217548117395404171678171324843615755131063517297816620148943134450857594586585510760389584021216452035745922268073481830574460974549783420024837094867576501521401963491992957497113360104155515820270703189150447778967024413403140905658457397912642834722665534184347763962342511717226940813967792898710817976547808521580997228415522480728931736646837035331645051610566818231942684469614572012449544485123021256208291703932519156665234599407730708240696812823577290247709124607721329539485137979246471332370069113337189846701660055272538893856492007785710666614481401512287421538816374256203439497333774268638827832218089245354662796445362634133896593676588015940488929308138038598795592620265555484396618745399670721303027363044143456058108921415772317076942094574990840802265597604061795308226695816919438752645578208926763392707788994424131584250623552701086670015487872557584320467151754033871428970907999833446370176620503209709161358980393515032811108382632312420764675044084394281984547828491673147640342042921601916537219225192242442302665059412033728976463444706346679444030127930813469053656992430669046998541198695139871294887399101130545033250185940137562833334118965500337020407484834598679475896760553428933647701861026089231894778709229054470663856567602636625715577579927858862309620612457865181047436836737640314915193629348071999732961950421752517190229990216906203004335574890382581692362060500122419730726088852911719332523833786252110456976638230090367927416313977045328340820134060292813100940793996241038294284660825439767889072639163176790132793843984158280391429635702721621137579727825647897876886708569561757936799517194077066381675387183560219623515845094477879995938218391401348739521595150932207734785038656537888959221860090502988812352960359258498692887197368589032656147018230680013659193740147619802687909713952730518702752857560580554661325772173840222063241529651790713533717539020250331593012336775028307251869275915078203534862433580353330781084379266824973582860335262331128977537646872502941342907873132526520330873848416020411822787365243367027942022960340970285487356193625384907948341354880395597391309510682357177649266361876923868600093336530158796448855762520275694708254013994627488339933800144929323664722963513285712860714937288206085740596230573120371018713547701150296421306063187221023399095491601750291084309922829588102707545017734973643571451653868652973236883071004941040849571313433733097095436952707663666121057658523887205496202618360149275308933615481188050500709016109932530589919544485192268786015679567345996931501391245027942352526243949603585125027724820877604488227402501615584345074732352177257669028694188677222482953030817460658565372828562890867625782947167893417240272588848732320813397162593422833259948575422305077660859397996890156716346531716824863275903612148151695541833112674377154401502970483751043979531706665344555482814570703011628315395972245718840815958552763316187782688393962145654794231606078320719400934169014360385403000660750552028628734844179611977201337335930606065675389665434937688143097954106063083122611941732246578054468616674651899885057975565434797658216419811607648215562950084262630550605786984315904887093336612289282611406103267932916736148220238936397086701376998599818346811477035333033352382759822049641475788115926329656300951225956819856579728474860971334894190537432319269876723062819142594942005192928574853142963061344796554186626321096252617457367365151741027079356156057483092470297786203524277534887386154054742073435360602670022187686615070865743375034130897928736965747208371985482946915840351063407596734115465031086900394071131956817791059345168127211843111443408949716363943430467527433871332285822764740007383351991090607367855189986439153634131295635694788311548407712464097973379643441535511208327571424865492354067810644408999625714934614824867665023138697600044260036505211424960259449837179008205490268035994490199644839780719561269819588802609809310735770755640213823220268354878628728701819651096142454391303350055981409459412214480505406538230069303696833418697814460197967129947886697072362993631776567602802508795224693867943508573910809516608439197402902732680255529297621730693417066095016457944013149496034652564543201759175422081007614225602266128931932957464647019634721497179562645821626459746715485149924106531730469246060034703029900283410475632273934639485971923195868626309912774189370717382459676054507905947675548801506525365437726782534265420712477609822793315109259668447921952888330816974793409249476244524501977962404582063647265035406760267229064235545208232978424634205888799164981792919121298348567558044118358590798185715136361541722281251712122244335802205915960165835529889970958035699376990352627147734493361519325374018060671471653228502892793408622102204183470855508203514515362558870813341994727689293882157272490463507311366775892670915342802655622641862463264221716151594544498104291620237485429247970194621538031266167656305300074207051036170568592235547382456888862014791748422796584808287521007899601544232866228690576885231563256342714792130404761645633998000617439438841263279352909648359920030837863755905594636763968070539044884020302244004400605719462356433412614630506913039395461236161728514369741004212486417612632648485834387771517841363875708167496803144117833111705834759654006340039921391357505893085208229596190412088243187913660952749714595646399207435319083060960087859505051771975833428403045149270447346547786740161151059047532876014189546097218710137461215013994850776306080170755911835793638574965655002071059213434257158551212877978480291784410069118047920143406925538646749802724710666780391196962308801065242215691848255242398232601594002290876616067081193592255535761217425962738836503661772987509762325389794772849953686907657228121536950441843063419551651572940109082447422855731991583398084590022500515348009319641070331888561154728569452717614827237260300945237149310301013492522787422315512861563945861211567910069112741341203724709735782680855619493952766431017210956262293625137716537109766971406643366113122973293678696779018871292943287333776013303582294711193116844193948731962683929871691088697811906852274266971217424936197717019756230551192967191124174437812175492747116425947978148698559210712106644114490242041256550347835369760825851199883371182681062461371398529549913021978787609731800056800910708691702473122751448270612247178617334233745911988200579264787245049752694037523568698423231983723706230958040047048779007123240054542385312707556579708110093681732107705374140628432834522771208101997126830132025049145834703921881251174978636235231489117513690463418724914225836794211560334635713008412881004065799050712751351340250562259614633873856729662123268388870588191096901450906415575070750162241242843417073299274869412333368297047472602152521002781971539451662153400988373440134458109848996864205901408231092640550411517542183855868822087157195748496373687136868903160348166829247344941983218851261348759570578836637980913325013520561346856994455567296546644449886518756263633114971966549277794987064869490975187504804195162660509560293942759102923793643761632068455354973121177875773043494914548490444228880593342358634116802019558929223751456094437015012956872185161274161907156907740227823851903862733553831941182128197107764935476257276482337772119070046115025735342906106081189400503427256071549664787765844463039542478038573736355564929536410327323357894998258483103683845994290789279603506543278377417479520793111251461108960364652619328075474209202965719353832145994502145783729641895064686719918702305136597951645387865679076651891867518936540752664851342621083597771342212445485847406875701151813022543894096350028348169209171924413540374041689115235176559992381015121532989149050876760044821645711899977702384463319435647924288841172238865672110269810878460062941646638423151183414588863488676039642881343214216954218509557548938902102650777774590741621749603836362587995029293364187460338441403789917223497128645203912045201756815027626549060912744180539646141371833705583979353712221080763109972464887665371771645591068832313061822635579732408736253644193753514758791968566968890309334764346882150605105747754014770422870357886283669559530462477989187330696869024180085422177771689474288187740880211878386802387393227370362731320269997324940351562378232735161299482313913332191365010006082886819325501969779013478856778931662288706706969202123843841111193897302539648784221847332019507505873496847049388647089062039323084111114492459050241614301200509229198614200643440663188184128479774718349945603413425049891259998722575598139317912009787406218362806799116888812994636835261221824570691663971157969903193370129293945379995182266739879437936115739157472752686497829769417887069220019501602704971994282378733894186884303709104539548246139053036951791159416308754879543590116936355452153634508185076328621599076687948186725064466751545641219794377718307144583209227591357606547561269134520005341582166570126977550392180103393833811208668781465074516747932449632102229217921211388732394215635275335703466715077965236628423720868356717259734060666309137191573141584856002665010838684412155152772423218351820212427330581635199531723333922180841696092292960093414388028797051704056933123723485257590882133226500456866285506282142986669802117488542340981388449572583939466447685533575125054283318770217264547707167083421362206194194587600946575950780187792128355495186796458884971832770595317380785062407521445365256296434678624074444294103056198226554136599207459678975700730645173733692132230214524237816986432984072434749666583610036719347195043312683513016074532599049056347641511356153935218660039971400507620244959430660959039093875279655107444852662921528309030329457718884030994112690083124633732681888734352464246303255102788394581157751752594741410194941070693423645761183900987612132086188696771201640652065928003708891705507415668870587682928648331913241077579363905667917127530077911818798698265523901478172615353356869943887938919679763526401707634858221205694730930318942135351510684066783876937351901784879529634948126964758877903756133888668088616731285041169839367496856699174941329409703243277033914377270830109182165985714858062037525638763490040646962495421119653108370560436703600104455826281353347407340560237553636396761906493809681461106270718086200506493207849701115022585335209505177591463267979036194641172227325447729841096724611371102002914438998298139533964388788891235012891340152796313144882619043565214590743232723410844950801589400466476246407625704644454798341314338301521835805425191460349091372360873893362846524379560455244548655381157490032980352483317098676969743648759132038043226461807649538816396883508179170892020701778424937412927991559131208188273184456147232350983339430903921148883304379454822457051903055613330942267238892516842162990637900821822326600882558427246290668001511295157164883994034977518423302379528549946571263517437717825633572223616622484976057649038797723717509510145250182916593420088880684342701900247557381021552981724149924221927414835994736538136127319416828246045094722899716271477927211426387351842715415116392353771912259030564613720987667416425111615768123847253366193892970576793214862070365052787171534381578886906513168068172166588663857597830870656938156006094482001298500367543872217125213394691820140303543809447405632749442340245902585220867736843441286540062794194258042299728010275037462141605217267430959566071973518914340748743729223961355669312040852296017387777046873336809264895896124274370209344321955533138256791768878765906294708628607546022457209602314680231805758333390559281924933166648018207864490133711884039700840418171029560978524490237301453149521333538892592192415328787503865162992314549078737922497472203223383883742579568768476029329440011974943314047383483037906112616643312198144178929068824878005142390823269927944648211480240310528214509696384265295670624584640280962174758726893303226906126626789672905495012674029874552302238880998946635409951124616925112544291923467332467506224301694554425906296743852930876785615535761626645072871491231039262209086735594885740222927908054291723762057823668659345316118386338431563507510394339566022708671485627309809178088247099222871337401249500955992927552970111816163263972670859574611685885482089290047073950870952038428073961284347647022094856198416738027529233287187819509375394313714723594272441020487272455092982749227570122891693962207843396469515889446849511495467489586905495123419805499973607894545330287501562735606189571206323527420108168209070975135346506939524140209321507740790307316458251496183981795181039021147834282964521150911579772250658007268758143796652081645680066521063427862250895852276861501638832328128247098862587087931941271266311903621585267096060967406799489323497434006496951455652370084828468468731269392529815661717363238208239722688774776025538979428259427285424981553880304966452297158381426581080672178020568007397183175014293070092983762817309222384352096159509954874354052361344943177582950985528219006743098224484147797224599226165857186296536264404688809535589677830007209378092242648891632609542728073597306899979873195169163602088489208541121588736545048459110406019446102587870393725760226965977630698789786959040572375293876431112401181927157653366588106190465010468681556233373100408518572645660877368670440008832301377928535694226650110732826866613204447361474643517442210235990880243640781583302785242329932435760408503448456202071120802142526684323655053953228235177502610563111991058165916557350311514674858433684678176382209354977118121706432074284641891975596894363199647227930288660244452396064369914062765722920389722912913131160975701810004320255402436447565533344098360967275002579113860299679572135662180258760939574707203570359184713151603104275522798275134419899871150337650631630163407550492403901862144748647138879591026255011372686377571103525591954795237097652913231415868474000797965644764747574985564973326312468988644321726802331433961425326380664990797407626587656711268831058431924547821902146670001020980705006232931918226939528873379367158536138151597954495187336231431503553347888218108736882430079088506861758219295503535970550849253870436507842476762304070078546546568839738275410865563686603541116846537695833258721158873609001557019334064880505553938235736621107810763146826068203574469285507254661401794556378689911182478595248315783900084414872061037075296181848761396820272383153883233624813066567157182991552924999364012682215563273659299666102783534071043551089733866884755950076909723800523748555424522831767241693337847315503138919552584604959240086133550792824303544234693439970357777950195849735816857413034785156420225141550631822047377016977657670529973898577228248769163493008088839022125067237721660040268961973002215878025464289448173299387458341379433178092987522448004442927566845947719899218234361815074114946458460821622411939935063200866346040098421659616148651531234910778371879011847919310442013186682127284293636274966841216646769154446959702235225105406372656722523513308410245391496508450994935461034307649501649213466669604696841291941096045330711571393670804267717106403939610075846469285396923144708787110927403774787788716971256220262082951343815661432286552113432439824775973146324852195321648565066092032956778285823382187801708506869370826520299177003421435575458942065385312358066723448917340360405227379513540008548862732535471059561541192010010517154323882353617467394962344727453728203064745897946969643194123708076359831404960433464479112968021688776755047859703756878485593274990986401274214452089655315950872183441514071223903003633375394492287105004921957315465880337865059758305922908561206420444546989580013986566039923331611475778524242154192280779474028930643646816639622560723927297425275591687089127525379762890594996426253825382329533442145718235395585053564864672698126628195002508711182960032032549126222349453740321802103385146234993245567815022236896660937665985354441930315380591420034373977978422484091539548219133341275811924983376366547193528030187611461915670645008225527865297487099992587657589757391819726667249937451530244027669609881985083262329393045589830033516861485725175529414815115447622077483641486090080755885805111322807123916048340666492582756103761056340553883166650921293001943418846938129594606010859877018063373342255157244641215081453102317406244351191517810561598400583795740616058781548675657276498743416929500688720841692715668550683795699461576377374806767035592731542781683051642301394360416607506706776315344706275504297412807439494901490738342333476844045354501455196046244340240608585053615469870633777449044683971957496328120911868739314379818614474927731179796424281375394316702731305698170949559027802282392670501129946614329343985778922069952824447044626382314124669947546512074416695624148209612358770181053368918242391809611687301408830497684165232975621855972147953156562215341229505407415704082508557173899252427199567568093615951018403472855724479625752507329175496142557149805946810878973692501762649893455913775708176321563712182837202390986637379641733466462386501967847022721617567939967874547763254879786720439600142408019148220606873963910037816031777150838254748135016697027700494074470659984111255128426828285796023120004964254923620954161616934155053782851061711927339042684375615009461307499200020254121681272219578553993162034005951889617136239099557711694951530553493080807499113910337557177060659622384318443462678981023115130232942740218975897427900629749990498958532395732042693867790352575173072209703950485977866046661824167739025196761851681064361803324472726333976619944489684997268437678995111759637940112047466166584699521800182694128093636624115123727492678137024795788759681821550316337700865386609483359520706136071593932946874045427500852923340858162145990767729498890548459895236353370250719527499751832430616609421158938985481093691887619495244882658317615883695041804896349856817735191992598673916867198538569963884258359087925754384928498281746403433961918650974467865475585637162424635781764328201057191122936203062776299660667678655417183324227050693330743561942193057749309503876607852677335840626204786740546298925208519111671360083425218013308450276272553396215281749005400775045243389897807953109267058239989599886738331970638366778816426137678649746488566364025644871559696816954554900910948312182346830530056264319363561023993996947310762527522279173240298879570531491492586015995371997461356739217940199274324670703565895863848783340837747049640108928756615967314641426296845146644911018280355861298876682812280723523039490172436541554821567333155143922350109417835552612893287053650858448066574188653311549668420568463595324424825749723077714111183879883927222592535130784171094049181934903808981155554590747463766251248846153836930510546638766189005208216441140730390328954287127150731990337988262063459058276030062422735618190657772947018936732667028300542819118009029411160630315443447114320900153489608947871551519285193812371565367969414203262882804165146987373849311087619706685723238924054805117278765739915251871704505942663483193340890169629776417550212890268028890321076252430540013852301343746913937467119292924555298820387902854839910500493645347058271179997698994125122088508317959594495987777777561708486457441970201515926399472186966393731883455304909864322691078315423505971053863606470857059130431383530425915848837242588504840867880467993423438443524222256709593477914415549758909541582979710774122613401654039054267059660635118389054393100036648268236042935188347047990989820591665727707153250846330956297816090447834055215576791717631953998795787472570573943943752316486141432653431087003283029830827916628647333400306397547293757362268374739060847688180765098378978498180386931727011382607860407178926159840200722853639420583082965456414980122004923099778827220701819673301443581856089885754965193006691247694878719233289239758965426053486843083483905712749760079956255062316262463040618235421301095636717541608510435469851096069754115049349414696602023636697213510641536534778914709777286497525224498931371892273782498631443007451517991765227706905618756674525091408246544285565716862429354558276884794329387956114141945758406058551676152726014770259357717871302557684051279244806499103115758608874689115214060914122537240840731966024432708255504775895588101641770461033958390614709650450614173424097041770990489743462696333633243658621054383501371766496419997821350452998872100311575381529390394997542769092095047625145354358234714036633311258374205277487697453101458780583489336264057606604765497929075691167805355287837764411123226797593926912017237784815540609836361909303020100397719391624414241253816961338958736417296499919050643974589930218054118483783212488129068819704126402350804598326488508422196649697651390591418856898444461155507730226174711416160545968031874896269708774146384475502745665262570654117348007783698251086888311246968262114271559685946554517864707221693119923184217007369076307150150014604241845141591951618835368361469512561385102164548977912121247553395451915457992974663993870619187393376157879082950225338266378133155934215460102247020950394763640671859024937337916611223457037632481866732019444105907519323183777044195466890375195541647080635088427366687569074314300739694674243997558442260342570496388528520613628126714690214343930270221584282648662012406215046160284091673723768093873703713198975870219103892874308026923685575523390328846395488292138820479332622649881796022553995325213534557000514181514276508601518044730282476227829178601491770439562283108406564260147093181394536157990430555562355192384298163193139141684093771460015479699243703319865473478945174411627623314830473785778117644419215145275648084645046249301555006137677054453073096693870922886877982208444145595321348864481923536134264066258069025688753313838582501417054602031203288284836334703867477336438472571206933786080844310882389897907918770528588639497166391871180447130446871324150541347307035369184789386488621166503515836547417804286063398022327596713973168196130113674015445351602885506888175784778494828547008227709622757421720323163283529892395782301812252487022344909480479924261329773189282015097926979793309483531284587215790308257155753940853706310054747849283525193402002029528665762512098232494293608312727978033279255258889578392840655326298310861159128995087763174642237439679949648984459672045508922125265645948382893357399863901614788833018124577624575007590490142938745045134755061335494884102795480663646741321337087262728480235514828184006504511203909048182635098506776681736959507143129381347805550992742621426794453335231534398979931135807206007806461991928428967762380417826046346699694959630580759320651375919888314391710707552795189537704034471175418343517535275620250552771501692430832763028564608049273207130931062759224374858858608913790934861840453620773955180585624310321389377367658837774172956852045517959075912544313229218762299009021502469742484186128079933793269636836228274261622121228920214225244992048653930557564211980400430428133953655182903202800657031403967394930590633488481741564485524822559636260283418026027554261882060759781738882796537855156787720877722862211976579566675004608128377507316468633739504239999153617081635054665457566404182536576988282868110302453602429386309924845227605228209715189313298777667219658468273897481362276169959238629245484586345552218694785684595048668664771372956897685230472197292241771056338610721173900421015470895861883168786241853412836292158805792412908365055645592006789627530582145493003302001455496899511157841213727335042367276835934880638821156416618078118515688508995236872082879243421011129527933149866652550107259454472354885001286713128165103269294191245114933104833682646174560816628883062907531168216924923278347350846102947070641543932320876953178982197812119390927639049492524612833018176918847186479273032949415685926000351733641907836542846689721426753486677477596844497659338526795503062416247403107202603694485017172143949324841603785437343203748495327339218399903149210501495057677502703769986998317587191314973896869111002851268222583604334569580630585525114596177877954542004844485899140491068265396370130244540829592560798669922028649342339060140499914854489863848993452738624721773470353295787757434021199546755556213501270150418547574313750358573720375908772351250395974307170795217075801076464249081247474888220244381428839715261400105143761255831133515476557713643389825827118911747657884882127674106137099266089899423619938646060971716227720838284359316161389492519692775371758339823696883492506647821777009902921927910789465363244711699119165691529021648437663026365120109821277425465431237297138515939741628983590994508212563373945120442880099722861035305749025089418097648773489925136033268970471650209090147820732894335980492402288317525569312421878689776712578503396817807820220548155739679840677605370017796015605303534096677895142307098503640671451386434342772462416028480653942839048741840304960157198493633332785682653417246835578301526952893052067147354416657927214445380013108352217405054658556032227165865780110385075001450768433733663425253985845652190140110782162365678146886642711619167283111839501525595863077971282377858955969686959443899781961910977580970613097410503012326086194729661261885648180992859522821303793612815548274934185551116103917545016700550560482200998805415723587352206980001423381978925551459782950838786052153393883102684657890999937441041620723583265403610225516785156787257784319001535758175679582916887279388218688133409944286292171219264627591267645431244124995815506295122415523580424149724994844462608423731845129916883288316258443743719554471369902749646908604410724268038157915467499539660121890120226123075231916643790314687902122489616208373264061971279766195923514968374837080391109630430695227085110961625872397228195043490350697656819720268706260280301993248433198923651808112011602225829138723363962445572182703316591803151485153450956563584063906737333881336091231792876692093694754236037616683776623233017074693639147889182073661838156873743733294921735607009131226676044961913271640632557613209765566048477636428113713106388988971312094418916475632131321399411201127121139895971824681508331633835938296279944324142448816746260540492496243569082176484721989228394271497698137254623799562857847520285778412521739399541742173452842083759036862019822968182985893886961686622968639555190072350897688883908840751364483153878023074143600287890826676514729482051615439888567755258433103410601934633412059897876918745507538887401625746823528004061498192991312899262639591885642616323132260674379833823113667385619564548375126889178457795738422526113284466634023332089031003184775265755426459882871330001392922540948331779011499746664834997011323620944165410044327202571133457862310397269880718345503819049018500475968491807030670681420975720313396043352508588052808336541330908363860762966929938887481402422732782523758727274823365067227410739793756572661263994170901638138009615706294623611174592928897447298780225700916986795731663340734769808456809237887729944238559586199154948737537217332636257862809576307689042043306172945623485511481079941525918679817075318000767545340104809355755640520354787712242576954757475501816242569300375155883125541544022055825382851983550910305311096945547999198328021033223179705540652659137357608765870973888950375650986089473666538955664228532587625288865160371860369651626125859192214181454761485321011758445473687620747055359252336704008397381254357940608233073671120859079269457559967242036020379903698004698826026675015382139989169132725733028987135301520597996797245204027558350546515514592205593131251296615522865371976344206348889861436558583602197386769227376336259860655867398840438284029759500076723554654176204793422609914228205450909576749832104707344637760622439155203011877369989897827735871412464108450654451529264008841415822582949031946851305780925212659355273673775367088053678031075918954845707137588625692746951796267632450359231301873058817770082611838570257762281052563661559567044821371209889328268036466070019716898774494922136186907035994793706719930528282139575837468944799168408971565489582140456144077713672419976959526256223907646252404668025506532411080165246574188338735995039375302291347066540143790005882353702079497313110055457718393537627353935062889536065929558231928795702706593037057392582433409177578166176331336984068375236390801923170953074141449569623293673442698008365665451101273891093287918471002793262216231927332174775899717276426339169812091774937063888833863672329593411307978658974260068465315472715657633702688854522181144825845088963411151386206749338720479359836603006304883329609149703239530941165781895755009763091838095531043990095783801419405570414177025147413761705167209190541660681549238173996685399492063665295179070003944423777423691051874331195834571039144331265630965918689192014140798371557370580534859861394166211932990120646578948101976317350170754099052397401814246626011683231246073411394991376040696671864587053275569217626869446901895130235619345443720942815256372711258080975699123545091104891330017017928156154818914384419932002615446838626350097036002984303805042427929127064212019765597949455299652857728020627001625846202904620453681721765309216095844963951987960921247738507233076169487467783797242547154151515714736276914863181715140248120912711824649022561615961008139506047470840962153510090495932468250985462034092001562320430641795479239270093720986857076997486444209043406242454786870417366991235985411038990663211926653689004023534053403192529307918230805299091252329897934564492649585560088375996123251264314057908988489703071545363601088681639713519146556090861343091356672488022929683896086356152139430506126729086686979602107415858163956507564002908523438602818309550716767570130396326068998235670606847759545388773694605096398127590159306932626940181796576301980626176495453232888264856137690891908353359253666397157684091702231716225949634504811898358500509149363982616976362638086144250931564430109933154821796429059982766813554021441343819381486041190002580214790691686776623369944975494094809560067085157001325601180563400971705191837276497034836230191278034093622107695171509411788396923746608123588126621695935511519896493797183852905915371474611304579011018192198929071334161930323935482642302297043942238968107113733403627832296670278924610466727272009094026668260040603286776179142258673049908668601049639469011409563398816296787879043542618877747509840449752570339442703266446302367513075862685448074932736723757618042796448134708812208604219047444042415542528966169621405824275631158726575521976683361788273791925783944148134001532961490389338867870076808495263113461062722305707567728780763932592932539563681222555015400247988685459939464781408827936499910817921511451082771058668444766464586433170243731226579395949766730455352520039652660826832362436842760308009076140017535887521184659217796484353349670487312647253560323807553981128527926290496608521385798517014506518486038769399748201198056119375410601256946524416825604402859712697857141379647150664977517655273715149643777014589610591280439831094104704001102588710676462844678092237125996102128174238128639036162411677475652143608726554908575186709403443907841804527052096377479984066720641898715693158068221651458060710338527502105846210905646470000693537329123175866096166838560403711928223611510574873696172568468491162786746252011076722857798262008127869334906670510425393629909138011752729182936470103082429421167142457104359454839383113625590015092812236502934137555200855255014166284241559967372159919542529360050898103243375310565765513969615969582148431630118785993527863181126365532549177274390011134261303409829418777205089801404341177009704731676480428984092353321051424478493576083336749847315338141559724061255808885956291859921489074029501423856737014583749343456502888913233701599619473494201396613171412800043005812301450434727277954645863396532508006227000030971532220338816440799639056064802064734192754652873925081377415996574315580319343090141138317697747145874768214146787133408108133589735779827778110748003468727001102382965950203921162082473543009924769545968184236905072442896588768082207104289338114977813165877061479091720923156394018007920130246135747690316805467193832582453566651074377120353508462173369648649823172341757370411413803174930884488462762595295839412375534897255596308554413523082082062323255768500071058602753593574175134049416639189094289824758476383131942171221475032846871249522689652862327500942808424899078246260799822769808261799020378394431999205922800130666040215642018744061272658425524228711418167553851610039496246133146723438457873385095487334984289841809459879079866967742174918543069854271603992919018395178275780242502945341446944306293047808945324577992161969977617180644952910519849252601622707705143139833164906818566641269076032151976327432106826983857593932454839682293904153847593979032695774763988420139000755747593472614352917598776806258076975509269712820801127365757410300431278819489846048887402328415934295308945678577636760377763604810346953761444174912503443601834202936098915342229730506253120400331371661904431511387170080292964775146951590073892788923626144880971792691883328353825775145236364187793916579701283999930069377319353481916275989252914655345292498180253890326769328187629992066414989345534990867436788364686652702107300402761850550849407063961192440810574812717042756567088914150969831036154616998124519848969099164257027418429828264080373590786332907687508726867955936161389776099457723870967408579966185218215253463433898272372910044176159094195758831339790537785586452675314620846967920919408166862863016065262119429863889514200136337007258409264598313125304524003131101840069831380659409995653405428857136947642994838708046270685210160577805674698114446480428380200563988291148471858412796736922837712969585493398450177444240934676104206802889339349945508735134376725003596845310785247607244846692246417199359637693762539104007547846374420553412745297854445174195472178637476943622621638132724800622211693354230399527256957104679918976423846597485802572874219834367089261185692027781063567883738229590375758089732445033241398337788172861062589235712124940849795076277589636313833603142056887248709719060916940861411497708614900345604919209005974174660018020082943271612878125123721864841746176790538756291807596240653991124574926100477452980302113567776646909510467137764457949166073133147579318162294901935135293446829773858292745014967395868530008953311698702928811759881529523614179559700626900845625349455866004967367480165054936362560459466854406270090954546059903666698205173217771726269046526295978511557507147510745074679694062347751816171141710898671786203553136513221562590149901701959496248523154084931124194824760275586701181476600547765922464501764450957242241465541541356350118679764817343485359103943263473764451795236746618712400536534842487545775704609091097241924561209547578768076110696072880782888519037479502527507715422601838875998760844947841785868680103119261023033045619691732716996617436701146821107674315114548028565360951202827690208210177125358929368691565973085436755589314757339788487202878196850917696093367651913799959579279561095423949817926864405964498929319660428314594804029460484621298498780571697167049157819171758742319694654480912418247997485593915799280257283724053424756533465111167363219895453397667346612083026389740146390725044996095276666573065907128178664515231653791686269667455490040690768774470152494778668811582586266986262962593642370761269276874457160213125448346772595063360387191614722953102561974589008630644736666049884278876075961588076833895865885609925932065898607132724692621382442034923596581571478721402242870378298475943710503077626335176528534137032946057418718756502647799061596193575256539542865515789985918742067071600746838066056989442478696821925088931060637254893562686533225531649172791080715702882451784229555063502735169977290614969481581716363336332156515555473327392372182301514568480987058513503735222688408077875389517725160635580452595883281133198114241439575796944102375578989600501976513657465841110515321461983272944666754872788335362829206225059396571425125839427384046711707354585628559969623939794238270182523639205266102695153328459123375542162146343692336777336575015380984149764389430703103641809241424952714657420961694535378318099416171744579606797405854126502647147731527780034808645414115366505157706804680306875398580423124064712419388015833944010381414305163137569359595772917605377147436716474822923624074570358472651059619372377955750528805605894113552342263668708164372846296042532803589595642706954733892411450675913480615409401815440288499904140245790335590539269621562646407940039495856793161344187015373007912102087106384074559206501737785856439155675730447644169906037815218214927881513623023413199798551755096306364245481198231112327815707702213800566656335252513431874227436850617685241476047150035027819732229773388405133084222601662336952365867895281528894840723095239847100300462450577081300103195855147584678822735733435601946269322608615280568317031159055866875318723271294482739283747989438220355632334853936645785921118758817578400578534981644638545566886735853710763861080602922609369246223904760815107724324472781131230085240032118124515318397193451906442786513442813612148039394939169914892501965329772428651785876729989998974336467530668390782178280737301611732102086964980652561980242249971001133727303948971420132493502723324875869395468953235060566802717676786656960302432603451438145499938882142875831051826459538276664768246602514398605122057212606534374615592298416686008148105217501938236083929115077424651386685425792264080077856917996273969156323183663032942798651165618942544160820783416896218290265423985858240159376821640521304257102474402908948217951033684859782662897705004314826245147124035151351338488682536247682167069113030848147615487862145803243927996951665869414557869560598719057271073986079725808276002263275403063167412669451188360521390293190130816233847731021189564860169859724578388233076551324739149611975957352216491509254225654823885946637441827497544343398081813100723246633248451574066084258895996369523372525819795906788468823700279213066665357752297262338359321418408260085571756264648081923704976278913737529279745089767945522813623504002288434796025933322316816244674684303889041457361418575301241948568457110848263661814715760790711677804458546401872359829980196195439441534076927665987963350318834588315261907332266113850511143736004866314530110503977288017041908764286819625388971534696144217157979584044124909549263714128995594258114924010171522150814052750688466646835185665194317630365729384867267466183032966841855204537730789066931091586946231335908173724386541024689954811633291483108367477107273831112142840219800308951057631894761846039845537586046398942001119345560826764591114815081007972251821782561321730546945542180110909039113045262396117477700405994606236011880483313093478654399082566194597959960241793833226736008195436595277134382629287916087253118693353407920386810381077864085119915121711459742428516145301851186697002006029115994413190816666890454049695839435363556648901301033522397158040027728289913648678847041606713846533705499770967392432107421959455010787750825775068353208000237080692495943481738116290708417291571165504242046358246305855246834691165057660255789012467022498123621017132165821772222675170517473379476457397047138169346824945489719169750237696374755812769427821668682746827825794418561993639414632274959051517625654045785847567705804921594779892580670420117522279436387589315263558018774559235883442674559699245940934077380814864648257067919176185802112108890081664448065964224845826673760526156742578462961850450954276391539996399721231808706477037376437813027764133823089627881494369579272026549277425091287196781276976451649601793025008023943441373915601282664983308244797257350580763944760727632116822313202218111797618769452130884309937488246037330395652688426765885832400442640865306079352507860773997280454801875852091570318191489312036120042613903778408450341457072216635863688388291252179687537114890132092010313524693888854802470815344666321513716823501162167845689641214008467580108436053799443833772828252942869280779862038728882787629254611968186952717623728201394995534156523508323375800123919204318532875721841117974713767398506648890261262726717138114410607482724360855554369671000759572365477348592065316632890053187445045390202126954109057199667291993985326217210755002745175605849937732460052883714901802793874007123888556984324316001620052654937884725534861103974213758144711802018324767270888692418860089239260020551210050154352482602915639396107750064807099681595819799791830805495547765046554713370071435922604801727410006150850321959754989356372586250656377791910590667730773376816017410537389683616839850558254600136317740803402024369376659159314751395976044173611879116404742096110998449576073424301054179999706510300562558346287870027045900289736717621955899589140975269917395807551025489731455589122953794974444933940806692912704467669154344420799287774651067903503139373022003324846901741125937650074592128869036938967008551275062756282960647379721823175325121937830598642982457359787894569741539556226491893893081097487577412624306641712036741305214370727245544792404205281627657451358057931411247971249834028735920466900865907737781327654671934879975339375817454831249501778098964450028531177753940836862811237947776137949250668865366462144648730716914189288921794345264894911489812590510861483935810037847181683984914786213773797520949159349652536356610900459765686837272272442062516702345828596609837690731459546055556965041132874865491003324096072107185115069220573615118771169229389587543840555180764033009665969393847861604936142744644844582780968148213616628994434538561856584286828667819342989250201100316124326739544176985972386424094441612640969898532917729568176334891398800198225950583596626321756135458011667266252036874790253352457744775086389486784890530552771982477565364056359232598061326973374236741853684762846811269330557440041739839175425919361918898380101611189490601242368841414651475632743241353736453714758709509595803233504705888995490966043523091516065517113826645864753306350519038903329274367497712983910132447991025174739806679414386501393245030574238174896970673911083882402112463703501016908643995468727223255323150064424904584326889944498945977289238947145228282178552202291045116227090082196968702155436629120557923294897058458471133297139861225407732428464542616404358570813203867765087154895990246252713088579504747498470157145148800051943547038878003832839672496152839052282126626544581264203830583228182960418633176644156815901967712878027405047673788037173372074503385871316727730698943778703956104237763025764456865028580444193253843647380553165216523019237691546461036649182197188152546618453067329647946015084827172294030383139773175210307674441963641008203353455001892602291204477963703118669671222706852036033106935063339980857740468064607992779415025841270511261326745331612066148830141689193757163212638087093694793417332466054880677078693910544768568205980001915949869027382775220899346477693499177154631690675321986260312861204053534035849078675197043907928096618606951449517943262227136325824421561745724352210661913373312350077632220773628649524043559316508165571580958865607413175598804182517187316861991416835484997985413880218202625641139203567932185023518723429453221160371240848301891395287704207971649339685567224120144792808658067563117106526395118659131948256624787138568862625150420279991799359169562011781657360054695954834056640928302027518269440650970597810732566078981541230716176335193074725316854893589751752227301228342850711734225000868339659486010922057263656865179406306434172634222877970304707528339928148722842603110904709804209854097595423840523912351612221608310439958104068542518640196252649027052911279572080390723669948244071779665293899681175936523281099148835108216624446280555683479801820586465491566797828650341128261078305919747269430454973100338326041428165208360879530493043266610649380095918794299614960853698408183014062333264792281482892281534889820396212786538752302941065049754032442272206583316967476371731898185340888387535193255632934311712946635759101363460436441856652854211791382675125386420269488722124939312106489700764907363917151203809498759412333022579099110151008036842966010310879924028378477560479967300935470110566252166440072666425434213447831190117549331067799739042048335394393303739637003512916867490184851924769185273848024534243881260044570957117566196647588475227623552063059978254393043657699876859395945066672279791887269199801166606566978668529138498050353462994736228494790124865302489281340972060200066187405803402269151522120079352574876641182586456585595312693389964696528193469935823747746549968944020340187223419811520119389137268014950941907955649823581591600614914169677284296077533982914950684834691018924176967962471748751321086190760299143244444897507377957562252904650551899618662827175173716225991423645670091315153462025581069945832607995073686624615085142209152614934242114260316877698652702150979775040437899541379626191219845815919095279871465609077741046973723104258285767344003165840171389992088965842685298883066620134664136576170866465360684793280301338754659243981922223236456482135372122012727174011274428907909642619672485828229094243123935213610826087785317446836019075620204195864719759700463114574276917199458445766742592778873529462184125385622837587504574593159425815200264495209768295802837825556092871272621883583695660720085881032246998401793561233282067903722983123830060092867356867949302925772454797945875655324744592297246579654060737770827632312678441334947082573208718066876585430811519434544428595647319305526903996536800664285017096937803080765053342580934252139267300193234931736616362860048516406265334561006892003671380017071116245071420417089403169923860493801926106929724817565641033486798978259233854727606332096548463373408837670789954727808231620707564819624263300280505111033212467047478628642884921231438703044445861931510883321655283649528280688326427184974084102247316470991852009973664118731055369976864702408628742443012032865487901354464449859047285783486862477222765621846980106993102862699334559270503841657423368986752555052182332789084792236683681715351809962466684769876172356709510441366680822001808704168763144806657845953394881304154620587418166299548320491711305194753512572018199673777927268015472065189078835960246732310111039476575055468230850544933786963178650245391890667350599180560092602605407077552643679445502664740020911131724492168041249273343294449560459403799552856946754340737572737174558118628526630239270894562488441929194727912836300796029267161092334835496193242517464870427216177094486909179827745731672414388537860361424486563853565697444237703559092200815209745358361554311525155167738841777985953078276453149662977944989130919074818914360212981637972292628235844008214219428323330497887824191514593793107694531924402996083012118289324764083820065553682915067854372951262528475388116862666503721885591467034710384849344175125464983027356180857612224801241471445101735460937019679524171135786981916617076251660230342114753989387176515214968114162794727743038163925593031973627462061471897963948935801088527139548467361140787929791604039627183738797371768685954713114486371085396448583271868412855496017260942391229171031364421002729525978479678871557970267705725782429941853638489386699306559010826613860434987883824642183561706564061877243055933265093335294997385689511017140169379761478750800822735037534804682790110675195801488903305022226017058098381412827067929135534671060436671830391560837510059982875565911494331400961637908921486047899068719133370497677901459180580840757181180523944777447847112591061319109380639695377029338264821265492748325342305641769443873678800285680159785408845174937603352332384535864653793928252307919341985554100288470171845357870917278121409388985610394420207516845394099494716415292358560170629571143156279579456556815947328834066139875944342526980513197534319851978587912049254030160789271757177501846100351920430051257585487785748989510366700513984020343079169453779473948035838871026145356347858154076370947931372081673280280433687433553559528260055468891529451629982229162896328213018071721827376623553284846300397947837020709635647564880580816951628439515382584658733878446765446135645752380523838461322222529611001431580751306066346003128022688974560155580543528839727185895650447916029334935558326051704351663136270272812814737685302347552424300144363810465434139700683706793936823984795699806094677577080440897867073705503952363999000778661364067960818681323405111249044554661554157761791387557714418922248959401361047454212213267118059436713501680004262378030579244370164665955305141553200627899002205312315033612947917446569741873040597540217239445015531285190945776820375136779766378948267065321641073376234543218765193187696070111961688615180864427560424961007500981454284884901406766194083349792696661907788287149031013600914032954253986215651775130587717257592686359886068937056743442355120631367875617026801816152715928733336115900385809668850202099640461493198308439967905462400047726241178351983211961106912228821596251747579159044164868585685098808232021191958796903278686893788158135632918722610285255944331732568231778010733643224181123147496819415540038217392788011954978900766372315678881232183668206791320590318112341504773280252025051396743474314129834165008757019798486303469024889941255323996743373196705475223216448867373321232575364716869306912967365312618309521284629404193202755342044677486437550955911027993539448142226494171196344592577013791159173320452274318503612075454170699227411901294019071702136316052515521431600351887989708231950401008699887911367056729417925853257198968382388298601467813887364594221266596605175279629099378547133498395141825886095006274142405366357251797948696492301037546210903314119621020646685640161678678279075627187972494492545789453700662739317001992555712555051619802411696116199551617788544697224669345859116273531505111523003538823431184187509628983851943061218731557949879144196834235549135093596026480572138374356011410930661139774819107384689772863167655501767320239983975868909354421574342269741169300843697548103664314867693929825780962088132450136126212151122770752980308143565731719429158404488867461151268333494729061228069420664841385258690315363835404647772516734074059486924176041258944326236219779198080490067857038816672692040730010344686153518622441678489448474951580362769297648703950169048338994764078201036988300396353755553758592743940325435887768741650981009250595999953045596112300306187933424433306285819554594578773001052622056669136421521678623002797779671674901635417262485111097625559214043194784582956546524338030141736158089990400455769843751576864975802383525602265847968549112525746155492229697192135273692010259491825111595437644843640092147692417181428551291819420417895830747025607745087060009368041152361430337672135646746490512135217967437490330011368248903495637189456927227057555222489193481456093135961985464926875357439577849539601414539912362055449150935740776275195289381938240753265625806245120115518126972159373978758244191784028136399975850725436141331234340936637004261927072635323519650704314092931464971209938709228758863769508964124845640196523121392434850738971621717552992810441002118140329184495241580747653823454388478068926382837488930793852240454116315853050919419650703607940151758037958082727700303382985751450677345674855039152505037488476387081271966378654546436289174100103568709391303196053366166925656629740991368477856981361733398689410041599305816441977991101514590772913408144197822360591871876390146411953044253782532250334512070308718236407406875615759877778796617805269665940192524246140996198901050564053719616232329558067889730560422240105240910787726661269870571134088766920900806279097454677894460685965374982089146651635754134665815186974788562259139465051456361317941719842270081583044251380913887670238881056109611612526185327176266994144499406280586837183012280555598341941579132520573160356364652387772273050663556018611578777690064259459932399499894158856031364401776094651663439424459970381693771775722413449554127279234121768151690774177894569704118505123911656074191901838792099542737438257931386201763949230250318922714859327808194180893268783709899913749029490469406561741239148450038314000920981446780715262710766135705432194490850186091890697108333103491471375609967305108713849806187381504240342783549411103074638844209739995103871808244094699860357394579143384837885727638123505142472745647049085503452132347946134982496919694306042416724599175206842910670353072485921913292419512466436466972146347542064626551684088671042081088307698546299490966868340115616517837118929110615949153337941777444186969436651252399232167718935318156312998127036402639954207886836697715241992929492219300779091162812381082658580439227254990882849750870694855516047608560803378287112002754513232801071045642575436073882248635761109404678988865796889044187689742311459254183640374439229987971511681932428907167926692095664575085885339323602214306267729942730458813506927051080314579636326080736790112283999572864448865690658432174040017689192018163834566792359323168618701356197241180945149956890667361402587462936525889944892179238199234240595386805568484921716636134879422069589865091163070707792733499699558432196209432521734980552654936150364444743259514090062150889577578205115766916556245622407793643738962711298640697467175188668689597307649787305657429083610484947543124471685693647918514794669656353460365294377896846322544232496878839106375445527336531586458817090139574641696744007211707247684368716673727781349635298671050261909426888068417721882592494317722028703063580648247038017602054550679584275422398565942287411330972362798904177204604571166313587852478393027304454263223072923398824261806510124797616401988334133660387991429139487224699866776040734617407650158755966111046454968872280013277692320329311327329721500417474111334183461045382583693387724344766614172712657362323191598112249350595519374038359123220199575430957912289600810259295047135734723548455321381638940971584431449051629418247849398166799882649959507070104501577374833183514260909842974703368269374002548953855607944238927900312979343970210995377073185836566975838098251506144267634514358324331786891578772320159554173477820345946162111562266090632499764581486367603998916818382769162479537772595836838931511265055883612704832444662235840606037769868870899612229944585797619560763405508340289009511170362710685414476972425561194597200902438545678709256526306675981284604711931091105785085361755264929842169279119388325022667435131804618583182697011815418014971561440761919210739246007952415580863037422481678158060069345477751926702685936792598883334624462327948908699742512088454204294752075332239424607827286551650689807879736948827167090872603424915772346573422638550009712374137358837325179392201761881042557333797601177063509584738047142237796361784554104891602221779035278531001050330468111898806892971349559172627439834160148349201937691354298917514732798786248081967829007683037736935591378013401806945568088656762846735773246909301333324688898917735416468851741659826379371132010073220546390374751352733505904653869222206298573811791581726273463843021592511090447108473331787829576168756325910092974265149636100150345516860970964851332329470329386174449784324223367956404987396767192935832966032100597963404087367667058745549077115313164296317822848933498856826841728639445286097469804871993862118290596923351948965002653690182995666875801584579093392666759123142392422121476866075198589664297662354547403917413762601579921036854268005707361892092981137378439315644894210210020696888777866058759651475966837555797044800310590582896132998720830330855227051826156493674237097471966058019576971275491551703603106881772790816488309415088976763279680370618611728856077747967812474963656242578861983992904066293655287121594130239630313879681150120026020021035766379337401587344474760133893628624108333028525092036753892883172797378004773300322789046404649443586844055912499176236379232475876466667571015516945520030504009628392947571128105179402815645379487216454973407558958404073636017958806431732399911920540090129206847998027528656400849577361423009343228282745651023888738032098251940348037827126035389683601438853708578788012465098960269519925985663462027359485436626981369763358924299079730974158053897553483314874761382490419854297353380030365153686613958261391609197022834610497731151174646391555435995430653252343187486894830213872604559078190290067924178471372567545602347781339722168800605843635657201824938244955268692140359356279992982213224164534193406497689686249378485746265518559866118013773316736159057323867184344329750210991852996644794264727085785988929799613809423706430049225476644839157551143117254311136530146111728434091579448852195479060953227777588961627742788840766096802650762629718821888004607551317013355011758698394439051172883212623371860044450261767367049059226748423916467733296669691075502894092617560921462629414657348351243632176673205148220996023747425072989853193428134455669065243488103907651604179678114017809538221032636566915797934815686059071274149663074665498444065935537466958990529558459484462562665114383083955506627810840221969111783823997889583294636189298723950636938840072585211614833516943026945727558732384559753569517947189318999984442571947053446090685432084446658277834435358192942867941219719450104702839028559984098100240700965752590532869922776357736083232672022231816626067596869880156514193509590824442097847910143818879275986737186921542020727472517351913520808240936160894236947275528635870602019048268751366965616309201280243002826422612578649915170373017890867539233113072256176505263386846656072201847354173316325659264156169294346871326767186671891038887031078973914486528788089858524765690026494994406689484943938799628623677255487183803548955178347687473731841328458353399798310606682865322330344588376576032934144622993836627119261810224598759188411526524025573170823079847384219443715688333647099032094220976975023807961788608446430659597303827195707033628554016746272580625893742428233180328948648036135302446106790058662107552006301027733727613659469148714043482644631669102483884730598457950146739450948983054722201833079940610276880516572195694475207009712066050714443042585216100869748946831479483289046645537507068449101110949718913180864449946398868872064174433991321772225035479297999330690505120975285464078817810376918310492020872616958231967502880070034980047894559309378330845023324754884878915097506932725618443932028350247944859732645519271359484876051687577670058640854049410798895035041830216000694055677182728951706018971604652442763178514847784758589097328647066262743436062534110420262746292778643860842409671485226291351463340519439853049260893028642411195878119443977636521396565596701214046246961796975889106148196347431124171657636439123905168414010491421050885914761706594102895803300499059469078227069151275084858785289101142568731667703572348759556163279205683725343294455459175536956079932564988037727682645978495190198314984208052238749293956279338711271350596671330141567472692437946037780908500781324421707152686731172818530285101926056402428882536071042502858857772618380351273839381392154666305418066771874677219774405932554151883613430758292376927192022918240042373573370177798734675691165792499768864169109964493256320265882572490167339421378040499053671874791252087516871109693927038255784605312267737130621338838829492566585851396368798798564208320704018893435143987908965516955950552500298961528616858141227682298683805639437290729119954551508202075496756773015245733079146513635842937479940738417922539507328102898851350254442505736353769723055354583179135728205786583697489573090284336485490732028478425527958546783735947003214288243053710975683196528653365376922430531550972960763845012559076378168166420514225010356613214327795701761673573790824898234923404839390435292146709027650722173512560830748379238311685605007068873548385793613440390195098498879120016334560168048414848870585721195106574669607583023546486111209905310803171368285024948989268775972338136088558027061348620114469339190130851517090074600150073360977294584730482280834392985148254171868892385365883385254166133619485848017159651859923671203648935927035106285013229913167937763740226995543260720931842716429050393139218413243997966042123144386674990573249165595400230765308865272594320278592475493693430658128431795123038944021718815424233592211001494850952092496175219080085516452988668729068141526514283813507215326126596860400706032039064921661540402104724744292049664098278167479997797034349474795529521624892769701699946370032367516962519731567512108502245474668633894746912647012799822319283427398064424958739511807904307801225733153864548966716644692573903762754922145273917792262626506809248989521971828794146732048813402037228301565329319800748663722577086511065934430311723316097909268021838823972522693978509650018227069192180289480843295290906021296493595809476363597732782957521428851795664402972347135914112613749267445144825086172688534225778737132374536570380050483557991106652751754628443077929056322627266746755778826460922448224566487478561047563846819737132520504829294091346460700324383436761916473362549849914306333107980797985965443322124520266090133651352987753893406497361002814853561798831587881574119988687248911952844437174710061033155521918530023247265409797245011943671428596744997310915751183740514068925082715803462432893472520829616233534040454140261817419777041799708908805625550842030325611986391032327696596994912932827614025431073192938132238863380192607854881664869807683301026433394963583721517640897497638505762858048413227862766234666057760436578552123406670357490664306645934894290009188161557053144302018593533644463361765348999798229983442806384369249755599160599827012966131859897338523552979842570749969539436619622583410922306257927410251891832600952372633568599381546635875081889987880628573898817374466881733307810761467206017198203817986447974349346623682666026327532751331038550087115735081196179287308394755979058830282996170751894579596749341394738867996426515719953699072045816502579882610435237102720391082618504227478012569662491235662580713003415790088609203499596773024306413471922496049179169081216761618278220624716560514234314249670392612951608424195288993058895335856223571563917643222396598513941609292463302967322040358285990438761758805169797304876032571226502792357949215479269611410890537778150323660423416837419842195196072291126829619248878142435446608099778952982519888397453335354454575159964070850694598258948859517239399022105158981664356883663936642982984139041370845785454787776912433563917637979619308183968957837404023130398310854041339923433115289256991040095238235427618752656744257389625165079436710704092398985534957815538858090181975923304075624206862070823101689011044558688733668469082254096217399941328358031626130433509385093692158619313391355323196255360971309046863924135466995153859229791344133247999675119465003775153405472010667081578959342602947748775866924687452764219670383393090295132539498987170497839604096170714078380139514940704467623975791623769362625845371634660129844258492283842865569096663621190581413334104621303076440881645241679477193896997502454146601529175183901056490478808218067272517178439960423178438576248940285113974434646133991925843549859975461126095360633806545103654156513392106703687664515426552208769351342709702686900640568315079139414580110149267883339906498311283158517612693863008512711683462654121042234251010333384955852148978857709379874394292750480243882287675014880730835386136368717151251382919041315868239408190766527312869630667872371305379949277813030285243049944489211509321485920785204663946702086700047468301286463349188856690371771304297340427951333311444129568487437742969369106649478928111993979709968173166430310547801997379267914725417174830367149351063020914769707480581194937451091334510265138031795673081571457643689205165901842893004314941280960170334195777385890781573736006533412860592399936961895402315950889343837546453166861475029627728633014895320817955962212648928738250710629133781449909632586203318761984657284456057228008120702524696491506619800165077411084632639133385682991082065718588207748220832501792496690569787021082333793651271140682251846867253418086824443265058016196594125254568001863894485796561591166100262661165720365481356301232641652259593352415017227214204165310288186864945195773365294228409723855845203745967879693669717301072164678236627994357791857885825671954491091532324428136052965882935318650962053642411551369429058590463013645712381185233098941711996827806700656260190332095794363276009774050898595368410024942879333699375662610874611435034926178746475284163604250954835240755976684089882159685752795518277123130046840891828685899194661409014237625958845822174819141451748477514744565943450690269469058622618323329059398350222059496396255207214083537133389799679346233348560145947768092898477473551988701032689177882811774441675423366069703010249903256199956082365572661195354074764255147255592355798538426904644904058831043188196007038653270897857665467246447024130701428327829370596105789833027223837735544884733288203167360971817668581589150350977325713994561651222440595765816172816011663809290623604825129175997020624673467981230952347601648123382004623026591557715970637475246617051436587444771902749309564230172897055396093734754864591164936088226965224236597141036698573318642669089933965156614565312783759873682138460739126823102729817216745538174520531975606811145047945797254370480942337292256103543766420647404560751376703764151504533682382525495549864701393996745815930746774521265403360794293765558611643247785487702717241123127895211809262785682799880027481999905267643994905403326859790420704836831622801564240185879571078052800836275929084501999816592943327151721388301841863857397430001912928654019348091561516408515269366203552653231824543609757093079931925872997180015520690042780322862588661380486206171083082224786960374937343344401195167593399029085992986987800647476498191306565525872050599745739709670342717641237060355123276266844316997817216695358031259541518168705050201991116288088112727056764965391744586401689098925766742822162467414993434890764966975270203136477423754537638678089581445714008251451916341765125163981450362267930479978015812616270757470399904841052304187063679136800667069901644475630081290421402276240033983360123009710936582192314699113502958718832541332331397871734093271415539966054785883786201478213364235867850169475045426943569727002820630718994643986602615910113229407863797790754191357887155652009643571927825742903207346721626450266694258316161715439779751084742981304627034516140089611997498928199975992015969283616184501806132904809127498583398267984055653989622664221794605991484920411650578003804446305992810662133479159573106558816330544239902724264437899309888856802083016024437097154241136695937135724351701935565004336689748543174459866830439818211375212202767054636649126673440483590575550173477449592169378652632298384337394950253084481516541880576706829667139734091058746293010580453900637657457959209762048792887603825542498321931915503352701027290225259807565458643623868796840502683977700647722125052746109147702911013821221330095204421698834224498856468987969353573012480935871507795855248277307263650617407449392561952078492705458576737827035228974456001530911417974768297312767097412648645731350984647334166280430550098595470026840603747678859714399627223927389744679093152986846847111656522670758113659991069695497687836475391503235307051541532510028923641499965091133538220119252674533560826995643803380205401160486920578878180608561842553296885848248595696905986058796635523121057761082744775766899514627564886578893328007955651451851870389730038843918611389527985332661786879529450402951218087203765145630090651504438659012766899318103334225415489685034025523952143802868866032908593217004998249283370463225318477026347455761746021184287951264328258310589979900710596346556586246311408528484397718397143065702907422141028735962025599598152074212925905501993122542295808231282978029277048302256149961578485487266299015523893262992975950867479800070157331658162940323055346010415786695806730700263942622472076875502232215542824900116631782218354414854889351679667393774489731759517765697840534573260261427384094672869382457949018907234200404096496179289011232170296108224044455273803119998837787949671414042754472743104258407187320915157215631159134006846234519961138864193472329324735035900814284493941515226336642329491499310688007809897048927763691466099321641431552226494747797710623687281116161933543226084903788139328817210628643757553342364553897186896268720693391327763169870084705973837719676190998971610047342647800739602789432441977930498269318750479691897799568206248448699252232263845404220860343529386387140169320811002456480521514682204126228412939039091209972764233052186323114571941511179326936011104583774881226031052627498186625630536304323620906445863817739715986608562039460042918238572558043583715560748171680813278613975911210571483774564717655496778336733859257194593839131738290766885502805053705273825292655755967482206141289718743004453899527359206806102228194596254341028671606564168499337916981978370221501710131928614282307440072065820408181504068029386388298359248982772690487007977802704746828167322584917979725992443552664875979455459861332716073036197972596417387529968557821423999716082847359802735817774525425042743725935041902624059097353188039250132335390173621254603137782804279094947699103449463970015023258598234190497940033196774912920654671833372775351154141604428852175544621041618632506976156447316715263685456544745258698557471303450536850160878086104585163221169897851740986592979670127642889723676783525845861063388430826970261099383843267331364940882686451454364346092011664153477341347861466513065964893199467290652636782782042448397438908804055261525764882316339433596940406244436166075953788158761055951088469181893790942018326798740541466171535234475682957609388840573228675391439504456362818609196329453059522131080570649202162399870330874433487960056046844130677197324117257601810383424192959105523740714319211770275514934199040143198865009378802213220893210983387389994361504607908944045947335594625817294663206685503514059763151164755081601216537093914739021593182721214916878711088375008935467075423924749255679448779735396223324046330619853558491675403986537178408309580904625874176740070827716774221869869021496650849657550719592097276509070336756868562513899570572790237447641206550688354662570529516193349518036742264186133013115427650768214572684155390852811804201897379521183655157672734548915338665664627490446285082549625110495590392538491263414962203015912885211065800527938978672972174526712742547048028475982341706382099885711737908554447731425581581005591859858010308308363374253188213306526334072060819022461223644248877119368102145948330375837915450101214023075457673694456255207949130013443334110365147033952062747677089676316232327699115682024735496487333923850061594845969867924112624862462431637853858281728646416168628939838973024133188560576827054174079410360690565802208343869015562287374108898708176641431134311717902098739532633731086276206986252054043049893803907960071440041000691530794370377521052069934895041170019396596355904623110363908917577472615309214139866192296470909637922787483242156961478273794173031030333742790372225292675688268487169756215589869053705666165953849252283146306722405798062705183170774415353184422679768080197137086140931644027359126952926763497708628962702063213719420132427206684208138221314944870448534707482727625843030327735909185197968734561901521708916094193760241633897682814069894675973374419448747034010329505874941184990268445706269011775265877927794858012262927389147594424613646325722590797905788433774713199235347675572884491551801277447656150108511494922173504532971959206666421639575615945891769353661389690730857896954894070108547623233176530774466798755097175940349856530543400075554177180100722222664893896947948049940842127632694069543289307835662642551169610668523906141136065418791527986823514720695843192711081886575135371074316469224813680624598858713272062922169898278875679787677478273353711919051066459831161804847377365425349143952311286851528447619615875026531806712252491893922820110215372289062045697473961316813323250833077504250036342623010324353526562031035298043439272312381443113933743820373413809822674944734408064211063227477131855104207152395922639600904339671363074946974679674506078854573388748244378642988866815096695666709481408236822575806933594251398149456607591780462593555526395849914967381054480886025012620499642924133763636025363894626960984064523425166704781367226809960482836216014531403053180478951630692532339938522758654752197854819987118174617994533626929089410975057376660976485056200832713013139689168806770319572712215257909817090741230280302322163561545667476402433932804135229464987386744074920406405875271132813746683792448395330952731725921423904025922326762496456107791496511511427634530782564637716239422311539711385693298471040767751980650191767594077684904050204350987795620133016077609620673894856588429438434349482865573280232639022118429532181446400129170049041854811888733318351517241746856011821479815468480254534079800415462371156769320389627046840210359845859113639982655569001334178886783903728732390969277825041813027150056608677534201793556983864563922572379252870762549321972498241608806692647659434318494921601541048071380454441919560509266694128967637200362940973615107807565186543928107452774551788205370451206474983309354571142312783080962637513475051045926233098222677668244329479421301031267063863222481371305722627300317382900097486461202981626184614945300520027142077204361699716711121365563514714891800566491600074102877440341224902947416160296092005928739949209759602526771367467703034068385479802468365843232913769544449657368300213357020818134306454749757511073726487452308445644913582985883819100964459793712606595046288447074583929794103533333868008106325596602189324303530296991691107221821422202290287603676067872365415279914944523563078087026410006521724696352462275482942095814901202265794305123960233113429396971798715526175126039955525958753685218149932041254638099988610157375074793954814238541015549260505403961283605581243344205430799623397516476553869769790074719572639407828651780784312114417623448689435048993604782343307929863501847842754925891586550007627243791163346470702893919308247363626586640779525626843354279173308595197798490649644141502819291114206558385784928737830124292278780287259644559456205197110798211887849509561150770972716068620312030196210046537100732118780585789835717027116772047707835062177426261676968708447351756410267623233846036394419437761441737475472610076471334864870876087081093973818390476144863242928879242380447530248814030721822895617849268250158914800518120444111054279175788255820765796597111990408273459791299584792395998927294598935791766205491675531767793919302280339575891763106747761795458277751500351817002128081063979942192999535317110284038681725337524406703710290422485785754479366074993642707450875167603162421144058264650414720617748031731319465459844191125952542059073815030976540136504434659327173028595361899321575573806767070058850140764005729486020346945470868493577484609301999697652335019791890653267255096376367963289430146320491684476959774017963569234397165245561984958926179725217871737934348725523862289554122656311710221944868950526192234565073981726736472047002987868302556824258432367139318890183094240365232881741353515679811575423156699835333897043180996796072113131392340801658373309704069569931322876105734807922417032541578609664283382870705995689534970039757204204384364519764401422163526188907998973225785220096067584108701303544493601459363454906449019321465975236283668050321890424786700414328282189409015781808974768329302299128007334569678351931207912120268363229038420046606896668761728307819208529790131088986461285972677755193929893933454320289690012766827976282631539912744998148435335495489518475911262783317984880793752971805509630136329765388342230977263315093676199436394778114797147665999552411415779886996551363047673546312140230618325930203449638028732961966859982523030399596106093286987201205943720231965561153397610261545261604613109135064724227275885897829114693471067976809031065836424806112439968274708807405889015586336795162175830661516222468730810148954583911019402822048098502974030908181411918311894469932903521204610702364091094687674377464764645458738361338391726385822651025303503137472916699133111790565669446749364741429365139527150289219551973261769474029750627397094738331467383259834778151013955148108367613118362255733166268647958257599244507923264921082582497553496523485572275863429322661410189781917319062793046491279698188758130714192868028945185017766134153795356987761013662942410763785839500276865569396022311048033288783944302627193902746015549964526151117595274599789058951289453589844643421650251115647794233303045249901098737021445751470096225355148585495061170876817100088289756095897374050876977082854815225652117155996132057559307942638221366469110192299684877847739012464776480520834660454397494187822230894627371030693923993129185613235405907861363240620702229397579203708245104850513261946335006582328997811052051893084233121994501774398325415526596730455637879248489112449028351186117456557740425204137669168279601904478058386492267869349854676745792761185871636511258352552233736376531532955104946936197256996263084056512315828221726422871809852179950264144484564822706738809723357595949214569161122837353823406524826175398036305758034874586943800596236497356189944244270517860457064188865992445654694907656847062539801744278729733054276842104485563079464436488235646179632115532372165059314469177197029172093423044573914430972923283811457225320677039318309257437342156739930445875124455538474407960508246385677559886783220628465677607948664666737996765553569241170852294440690142572877006194997813799388348195937432104937728699097696305315177261337901337875663860278008112889696973151090024494988378811259863020177835704162735106501625002317877866651193852412747642571610782727746475837046493436032503119955496331612149993346120954379896273968465945878896727386052992259773601602514299293176564987378198226385258145570935349010568637662870432100591363337056254992272083171302437478945885400540434053234350172163689184304338032015941240241706344511555244597923201330759606421676231172002010211368534955138284493543775321773327645084802661065590571224885398984853936121530281461144329306793457690055927695461636765912167561880370529404142918426081471190145188511251556557902059885182054062901162191896241605920039255763116313561386907538195349896592699909113073806029954092261060999859967549448668571583630518761157847007633981885965432454313162597865221274015112584636642145379770933419670302788086162121854823945281827603295064839477733135491577610545832129051432056490343333075706121568873191725564582781718066541034865648223059316664577778480404999381765436061630967936031344869907799753805727784049869104911037881203403324615652948564789719501682150497044442720528152126596561129031987585012712177268836896434553794925733417722655567745199531835268138713434905058882117070357907486358804150242849428524262836368733360834965956106787255397717984871589358883486109856470969349960413843837202008775075482649381859778411188688152872833290004493412428452019366624335839735782391146802626356698965596227084758800507474236782412621474161959193321903584628245892369750434194799386169176516156888627547382115860549244720554341975250172538702520595034044634051277113433886789940313621035306091791433037534768823582213293404715015920853695965428680514526630650204528886999591169525326457905043605600804900098806757587910570885314864697459173327901922911156824835347348141006074583900174715653105342314325538942828558491683700938283025850672072722167715342011365242275925363196045581613708839899619061612308189919065905035925775457297542714383843352929321299371277645126622622593872094341253028232606650083103441030516393623534692814919487824181909356158348300798447929695629452923814367433602253270418696121321990876832757490755243179179741957426326640956267302173449254605982756600443455375366433623622907337009124796945453631672094489449897039343137272996041390694672152730181638414876199061474910044676551533817326793361739205443600964525777433901245721386680565052544484279118164727015654086698005116789774212458963120880366471762491478791099242364444919104137042719146690799394225548520871238014843362109819356172756451354588591281782708453778836975475801821394184735423087667114763956181512289329733636032706795185768464588900176752932317059559100887798684904261708899878908500716567315273437552108005575307938601810938013536390319007939321338564415269190211138803677071202799214887588690870792767688632964344423674174457253610459455674221299669412427863536406295668063108935449707974824021038201567706438753560612858247278466238658614188405553981336070021621321042797294828269125069479395683955062723999009976930357442404334563952682649073081674129274922250511669402844419547023614422739149638979194489112129857592537785368061100347370464915849005737302726220097938582299166178693650064917391113026514182687200100181342012508388068050001456545005921770138962291219764287236834143958454270959737119675336182278743192372391933179037902664263753764979889570608924498224642570510329850377235196977144818493580987900831929716290928491559745892732384899484939615068361291962238774973763609336826880157273908561416562983123380858202066318262920910136973876330651212692518200403009178091897214156513739851389337273579987019793497012010918981164678499793337992058375033225317580485564268343326818965788361168379069848269338291680803998272218661122542178418022689990814106131961288354167678788796404430421966267460410337078012981963077537342389053187073476134689252226114419962845070574846368138807446813960379362251129127343913313556525283003133660432954744157334696189262142181769102107936642665390555984140008340385526257671709857222228071383916728916192692118724952606583890432086582071736838629200404963168167984038739682254520186057526963044199409483548560767726670028423797375089063076088561544791219646431456730584890135756826716149049559162782130490881791237341643799976217559709205786770090901317414085038820679975594951408081879089979241505436833184540739430941034219848297977195405797473988730248124251165406510525712138896770275117368180777365228326209941764421357344394784405964481648648941782457678942552554088407981421015889854772926870184970597724995958459147445058279619602680515702629219362913440998657361204198931011705757862756493512934726753553208806378058279270404271416903224196251493228503985617082228218668013727409639939376601600922215599220102327202231552327530510513077412738189220409769651538423993660265896107104936905350829343257604144189779224439251169144693888125804734927388964144551550591941421001560185042916332259344481266233998618045004164219055105574273143471336827315905887239910424216423516838585160724991449758130821662603827043964302557262746534863374911636217334017977800532933930622914260575104291475594058145361118355099328982487975884494648511993693415655361334550369821837383957599563967889607996227070630610947665693156980853280609906909877510654683282112475143542756947736976906475485347645690906425444949022366744442898144250875010357023365398459360156644150337004109362943843929168280595357637467406248038724087967461909231836553356236145301551322951145051398189712726971233487001761536879176828643071084344651341580353620071623750692275434502058469690269579303871015370761331380657766210882636921794747011932330098843661905156894637896778252815867844489771468448597644539111998969895083804890102528577251421787119390795319311092632788517519716821935419466496244489799281965551018602453258427500341491315803621798363975365500875416797296143957273353366121424972507960243735316862002502008603037063437230581804754777790039117605080508319073156248233838230095649378426821750583909984360092075429499228941453370443341758163806788361711448691470914535273580517494312994205921274287970592643201794098989281078490338325707692939809373981612775708302227436250159034592938951785448797229346858889105783083937948678942722064499411125154141044501926350530711325422108553969084784891590967126984055314056829247347069776180210578639929200924600843703763424776920603929055631572496560078012777015522191138790986089370551184207987091901422296655059910549112136119980532142818385535688159123991484398176782391237670228476026145491705537064334148181009988210493221956108931589461335012247221501258347815302711187180482052439761794401054287890050470475800413488376447695951370147381314650479724847747846411555479569692232213630225267598901637905238163692054616517659845742145997390142844324772355910130761064012736641510167403385351542381868428853544549711954783536955508203662546991324214619110661263260313648555557065078337175717783231374959969927595550144415201326432739745921530685820043728718198385964638971748941827418294050453926366872994019013481841049994485178034940859641546656990536536426570583275030528711124197015404214901493357837164768618539034284258459348471471441804359663286296219137232976623792411476849978278814888932395004029878688922015585229823693274974173800917216978836265934738348618962445491435599249673504797203235605441951125244981874894283395999188862970273335607456356329961072061359998968675154032714250862408397661327772242976439368229505361491026176967845399543944489457360593896877175860861700019593587427059486176243786028031779811439077599487713150962637397985237941355707798041154511291898565745601243718222801849918369994544388956658883975109414082547281156009957938762418807971114128752484749996282119282962848141644943419487044865485166173121186857967704808598181799036213422951159462367049722475792887864488816172597255348324901711744763359493838239906137189081802180159024881322402764829752020048674954300670649866946734499830033047544351803851118220087569312719607591839894551895222056283313557246727888905751590397190203694784367588909399536468060405850709573043232435821322756917730757102373914640702321692295748463525323653748146549939736733815894211112733587577098333025911719512775715764350592619059256204471513424963839483291371130980007263662877935011975352758758229074698134356305652342918844122814420583246903495827927968689434440537947074098787669936106654188875283813681979353093786798275621463402027680182491018695670194731597871556830371327116520163172728451588506613399197899404154906668998842547367907200935081242604988603262205545670013253198909020280092309128958333841776212013201928689080640767635531228114544469640109684863032977400769526935734077437175373187445452444866750329454220469228803372364976219188401137505161053620220905146801411795142209920366883708540478197182923299613382996102948866787503523114074242954924813685457559802513473179594168403405396769682293827156905603981631874833278374324688412432667453203450201916021027890563299023842323067409957429829787917530718192031100127443195488545848160535894449830926012554649455905475438522209474385440210332237846911404648208957738960659878820509849488992509115494127162389223050785008970326883936890258913461546440035595214580092025925625686828028603202865410866954902308620086902823726582533212744336182318385715827330999653011761879459442395875845527790113478465779451673254684026887903535324932597488777818945955898519356054118547811409992476300230232201297546449857480617467364423282422533887280597097088225527748523942965800771432040867044048869575547546498341334963442273200839170043333637623664981881809817554124386649855369365661586957430386572336506869529904487186156260468929814275903504295905726023496045987750527131586997605098705766410087673598178905433260522331879253499664375367641428409016182871359172657763638699243217042279764471575478350047903048493150468741901128225201531925113603566527757331682180015360920977295397845789958572008410981905994462742809223821649921909050549005325384581308932205896042798557867713849634135489139224320688396472886412863524343109316965584555428634521451472662242179000316306681440999517575127797776346740515797443067753063203292639239283545795974686345121037164727039619773513034110661384198882409809312461964495128906685968695329961252506723416404063984851024019592025722631473076601486833797891859995698871713256122410893601764899513597056400342203899456366366552171608266196226230961561263749329957144624413120819048145317750380048318270285387074304422056814675307273876417814313073371364641063327014971744143105554387089756502066351895351977480226619011731271434676810884238645068954716429331024158823070218314009901687566905016872294759954228595875543575714876850032311398059809843519519577473127828158189323924600908876625202739982397427792363223389787270138408530576840824361274802173295703252759595461561037876538103685778728878086993548915223218759011226272250618191476933543540759314601378394338622563291554081800246516798991224383346665998220416623663515292924834597303200159168545082095246246897380287826441516747736101100581658893971579395418959546905007031801342918076387612967432067411796094604627096899091523796162078254176866347838322968746730976251987899567887594027745177628302606752314646476029680052208018766098450242617439557774911110124022162964700415723980512206338458418347075060727279789930932594529436624157784952374356997904244386220004170836161783121849291837289886905807385007967950249303246847102227893875597514990781030516107422683522202348707080046700345749398989516044034553052699448621690048605734554271705177474286127500332654171486496497534722883361738479047166056995652429014834699795632247420949788500188921696071004010995578960909595760407870116900979722895817438561606597432412359656912706831661018810665884332579134148523622237558933597307833559016224326498572110857200953904230583566479738794422763895368895643554237526772568553044172680742325004397497183795673360853535245974366827316815108141329074010946545545875922364794833087561262380011148805407746215966547978950896381447549208571472150239576463472066880147314938299525366300487158481455546284017683660267716630400887208035134120014783757942183082172375977921554899777278259203632018485629906088878927124487589198072190771198692114799481908530754622743306532356955140100724424307497739547237167556661162858888029269409473443941672736240172805567833743161902025165279859900680658567582698269235468593857234604815931158772480442147454973213597678329919930621719837228932020909121693948755937370913463832378738721304014661705598493627073880635760196109533644720119049105180930781796049393670893657321227172334086430495483322222918216002286937910434220644934578140400617354287487689266108063898689872700931821078605482928121186040262014759860172156274981767264065822912964975606471110295559312890121239265912506189862999984423869591535442384610946801138881345778389067723266343409407530158107625154660389381337536623616826906850924827982653862762838276454869706771235399788027846725792579053072507125284294241740130013937551336239846991275765939283645588988643059725054988174780110835676520864748086395815434073756187392988090557910431075666834401479049989852702486327385549802241839278557800554651394228047609837664915658182577788470086563713546028011833146520181509790046871342708151487690013318092862321277790327550838577550492801807327235366268997238795873362220117522390619945891050171212868964611728495726799709954398884534814465841877649919425983786221579683103820103972603463991854296183412228340619672813773565110758190474776239648534652149863931012825131642909005393416862071899391121820922839517830018985183603439036459605384054686970943678220913100948783313816309622896798219468970047705658666214866500829695088567229864756969049131630285955030007853124886173979271942440005572384929951182506201730876988560897432787229542910277102791483389789172496288565783932918115919296378996860052621819071630818969748570479473396509648604454521976552264370006272067681945743294743526917625379742214420015159165876046932358340070393621986860371296464293979409055964787626828606861991635864265844850178946897224287122450128469792039730669303407238969145514665669367730530418904027972722062563410357533012593883017108766675701251808693246356703407697218491304704163757450437193423416703296734242121017461393327859719381758508998465901364704765292427248455640441425868651823586297121937225758262018920171211657150241897515586253381589976591716010615639747434227364102881586719619834173718510180826044868247163308133715422617041911615146535855741132006694267559405233969079892477464648275854993921756478864875342151071030473551525865788156664902355903932757700269075611137618626963870970014827997187534273467091616049516595796889014191236419782098355455972439350977217064761635680716732482684760532014268458620394821378243617819708465915999435596008678795567990671083994659776186902984062457783514637990838312306828687428579958863739648193761556765027288759242410486728321779503352240701864948139429136300254195121305802159546823018781809811812795535990297201999015371379444574905721047206274647698752577837021000441452211839935236782357366538023913933159695059568120128392866269755973168918141974630857146684950150328602103728263568149724007479931488721639181111275869287555103861379255951365885468749969244024050790899123382042904102187807267408733402829165792007827955340410912868642264950044271717265085084070529428810692061982218036195154740638793480401328416745491496606783873770828669694432647864812076816471070642988421783524411383911667134368260188679078608611726422304099711414313754653088717610178216620912398252490163389878282858150300657111951172844416937659627815480154866284347549374026190499379140780605129266359259728623185291719017567336758807684040163976961156458853046503094776643147065268505241550037039562532176786831515422852097823721955125378733159450983138148313312381848554472968667204190069992391349951789541987615768742883121805818132414407889471468302849332252869816010944827102933012593965993823814476160582063078817779458912125672588145239371521473270789450980150551783886459435921414323180811269423545569608131583469661702813821810524111003637370320462821973276831793626923714557903892941086209226084957543778394643622184973667078116528352569744627627932461369084556290335974635973825596085766959851577162013730326644803745881831434750569175896543251971251890019994906523546019212178035371236542093536140259507627013900942844055888629221303192076937280635671170274733811869915675377449773559146120146773380711082019996964601772453370113143094037844789386905306020000302924445627342892883599480298528506529962814952833408894849017481226157108700192988688970678019684209711306674373296719628820453439547811871368649418005749627795744652111423039432908927007264233350658198458622073294325685813906041910923601894776325397742043373153985371647957459839173230274533457714937511199700452513895625940504781224413822887104898800902575881859888018534224819765885601599002721005351771831497142852107007107292975964482181460528378135513575986374203533711647874025649506586803325995009151066443229197464942581486687366308518281832225242331903677976606427107358649232133022792105876911439271907639709630216193617796906000746835412429714547082824978149372117715681720984332298282814692560967513842953845527780288132620170637251087727461016983146442015884670514194846153956057524035038229074358653643650420280282699988030367759000464137798742183267287136322915627243048483340778099946221013698345454846938444076577686785625922976599650355478249128020734667402132171293261504286515502736432023123029433261168952277058972277883614384575961604273485559023595478718519591113068966819380165349687339857888133286220164825993551101741040482858518009514614598793639386520696620502051055301178604822442513194420619715259003191765081297214630672607046168032091556568215597562088167389828281479782340045436829295532680698755718431170112913572461804725627426128685596938574560742558488886610390249791814730865755955451582080477965417995187454400465323721426697893225493870728343801522939115504934836758354918881268796226803001259728621379072721571610713123004983100317536843794737986974158270462929925834996855402612336840043827282183451720318713750507279890174552857597895344012637066546609308106629215169072139721383703468648744396575955621952354617271836717438932746060274450960638495669249991850362059671256084385550826992218632630286730621178742617601151430053372986297986440946736166216388925697041968864547406074594540083918809949241759759469305845411287504032712791606244706092196178010190776710918645969237444521508335256293595318689504736118386179623198337610867612216048902031532361428624898923143511820889360379463612999343049465735353015443969385165838899759101751383067052634733212823149398716871492698243362054296943418806314182906574448363595617706794294468162410318083292165358449442415933933036654634123683200768244258046871390702710461749544574784656465370417844624410919366880912590875000856628456907190579304600884528671651112958720022777749118742423072138178733986455307502054091787185111971679895594824078575072699642637977847463559387217225566325017390351353136057672279743698116444054166639646965989229888163770252058693734803787877310780063769964976053055495587754119668999007131040206140885467458737250393235991506130648568208093307183402748594299931622543758618688924546834478554950337769598183231452668543075412538037711295283689603758652832734667399927313710097239221203821516679208886699212489207337783895920894929995986346262541188346995861670615379040116092333133510469070475641364576415285655298650654607878997182243815431803363397440445798031327354048197582249928163667300200412134921570369646853318556582538009847359649631301463649376428194783476094987407238254185971073267427279990294005313837712450406658410240076469488651252758090305731999289035837844264916987781628466281796492561289809212019081407862544783882088080056066392060636032257870546341099387247278095257108750731801333397072758123695449014563712153502530919782844588823338064900094886619431783136903977308442018641045910185108633092455525166822796973450603333445512525621057341293567034057190465375516312440087590353154651178119102312220269225709371795623585275959412428013742332523777688930029212001959187320431819233762686639272330848864851059267129056853451446262848105554534645773711886587811127057978967064047784882932356045286223057202754617609339531112822151288693612154163269850452820532447156350223583780954733644892378753654578845383092962569775163364492017901860052952878945871748080696560774211037347390160296952673812177110129482013540561821337827709067248109808775090362542269723057548487989092818733071423006042748967749350322761448888667200311054732207142212237852073327746746628255997913077054769326047507284910028171484624601740188540720514121862754073188481105923852101494573376781822690977586016433848999035633563593772915986732120589030541899040105025255607396181097118661366061334681398469734673547132860837348057446557509189092151439744760605518229258254762187697964209743676126818184688336256316582714052801228276618366703469731304804367272458350980336276529751265128752360564628093086501427184825322115078935159522726693219019297388964161826124281022585516676765767973044456162533766412109551526699783820765817031236989467403234263448632890463471304605029369098505780289133706660355097867616927560616153075357680138153375641428796685581259890486547423373897830826444898439332448258185450149681539269793236967817903597884659975443623707262518569335872349408214371030575370894509909407696155229403090331917053291645069978459788999730230073190587431953783548919306079133798880964489072204223785307901826616610628062754213095101940917477075903512100496417147742223070888625007676966002653169855328533000595188461626318166249688697645227150283077366492870480113222570252659159473138935366467660886520935628126141946975859556792154159343454536165711215473821398377257484483340899783288768502761274220769621773150655389411667325442503909904289973544734695570571065545729558949447182488877134722260963209629117249976138244689434660120443997194356925736904363019719149375856590246135507666845768381915373101429836529225359861417044027369749642311918415148588145331883354844262735759273697976794810212319674645369834261118836678332327272641105816072590348541095494268675407086629086053745507393060412879972676036522083778672672883943919553195892701225063118391479772695354747591132865772163168776095043531295945898976119088775293602436343001489655493160635104257856795123149726452632564012566446790543974133694897600381606970325001687351793825286106343236333628594956644147757465020453027387750796257289329875264607855299571552012494699484708396242213905228398739297871798610544649314934909829463034707127172872830479944422934790345710677603799799085880342569061826174314206276005346218570018823258707923071618043644593401808856606107812771572428225756260560098429004268974754853614648637651796860399888057276047506830117864618468766934207268105594653013659539455395574905836720711074239601854589593330803009203814113531144152951427662655191905122129821961645432458454898220046711200848741871057179080206709102660888127707607763490075709671570564347344511754365869686499259545030758262317814113684743711617830014034147200423230735842078397127191056062393822872950780021973930840815036455284784576356542537136991399031983482113488143205779656057716786416266344140044254055931658102148476628515650150526427476283906245084087775827120595087457557872618870407968089925867867594119307155150988969713567834903772648801026271656709636313545731109954780306740170661716208946411874738840431031544516396338290314471501464803824676744697632107385726442025477923357203548425913110336969976004788102246582912785973754807519062311377089382947177813868575943896570339247795277107415686110555374978390500481873172437537775312022146584655173868298148559236205560233039912399773695090990308823581871622547705371205158516134286018538001005826655720454830968153305655233557957231827764110649421703124925626203452556986071419334498337455328312407365563304872406864649580094829980437941797662809368249468055391346616287978640777735379969854750780057824549950239660205676713430892863275172555191624562322873887691951657074325162409485337388385500342465115163952150097672596493175059904723502435938355909452322160319051663507226412375578325380539207382806310789831141334078286407342786440513803724912947438642565334738873614603392509718632073370311035973668587735216552671309076433161699280667627459451035723334529364766428380233002243176740450883668823964650926159177559167146869824416733436365944706970397778432064942320957512176508676066454067468856382708331401705148501961781975943763608433902366361578830079795220919709894184300221245240318177680060251053315059404328136935853023740699604119315636471774865147767268611409250521343162147988435355686977452054016534870012205511933034252307775978046845685378255845932300727338094296990859394959495301698101861054277069847429521614080681128511948691828079598061024876258318408524214329018108170169930401832131024363084007038310190876319364877324792219268783304410508065616183809787588084816072456680359476516454261152036359880507632490277951553451883159407924315043730019348448546311178286027973499071940526710266271570338884421637998515115408676756156885278179672923256936759537683905680417411111162826992085093388945022690269542848252195656213876423802115858670886269930752276266313741473190586311564934826993322839763989137044403040983974571861441526451503287331522741600701938807305388603806539724463500640016360419976164163678859082573617729409015798149219355931738222086218060170120465010758845446657587472274870295905762952655372312205115929440045153118750216929696282421082313650025717142832206415025403997400318438808893651781405114444228854548302382853852881655726729231159878957814578794752711232176540762972174077789964548801413407872321420730517204842212110857639190252695353755883830601463319461193546484583529050357047769950718430312156774707180056039063124593488651553620606844915181915370289272522969386515002795286717535710801574376039516930972395767578934799809446144007830444673048233943592119187920657193617603494089123181981000963714169340518400074534982694595142907260706259078349798606277459303120294917716473215147224832382523137798935371302521479898891444149392851743053915150013897795614527282589291437074769084123259280528744160913496584584377629844028159787728368514564737351518757722803822811596360861902480378001535620378654580087322896395156968225962102903634991577970290285698817045750836897625015839036880821008191752591212928168591539072585629637954498575960122457196985822932452253594362293741247806208933050686774110121283750023968843924363159841873031463047103374354116315071215185098483154170146491553106153329783494391003644163334191826981011784535886957235735055340745082718253207179992829640331937565393276909283710460456510887455405638030788633715499935833864959386055564950379990726060543717657738407693850941334748125096968386043596431985200404597532708541112090207829164587912721314790508956827773668010971792304033173629829035720942069201890331919842638764536871996465512125486800443766689792691381317119765163724231418642293442127148169887784683270119364667747203278998887123854287891473013985340260572095416850659635893105872879328627496046279228734586849765382293234974030156123125640466348798413079102637870631242413573867896636906317511063879732402932513399201163595310963652316163027842678481967841922377957080907816046473703414578724571223201456526985766673978962247171877682739715488459598092648763296963567352477761432346231687404144418095996299991163254543987224246635851260782226189301473320905761106465656277319730342974294594197312822567495269024245674280592009079483748274026087164113467940786351235015750153002479532457821404027353630425868090797133514703932617728285416002425989780710752624751162022501370145586520687688737115011083020941356745462725975133545824607161144792651457187672860386913161545118781964591871326547364319502063427379682438500021690904126163043318723040943553960644658730937745859994648423584171207196119755697618030771398881879811537487067924601147311539242465142435151277135061999423928767403152060104642146972916618021987593246321048522203566496656001641346524058861023247327397916056236965323642906066308971944153485297062103415689219556286851450774768821905787198674496824401219180705753486744184907158932810623767392849908301370629742864483732849233443981212184185524352370654165654856227487884673678775324496499049564495137670405362178353279284241603925077855707817272677966042349112070308166597563305468724077992963798670895718136461380724324299229903018087595238478580565375228548239453046331328975017556426969146643959989919817014405973867704128766320226915315554427383895833930082552432736304161010613217621655147065585612056421274941067485399712223274128138259063495578021439959405111177774845323451138288941030696220546816845945233645062003198909325298440943551043311441843930182265702008673802315634556642122744822334017225650253804872034522252940360041785060375278249354515705865550588394289963611980399704285576527981623042494682830736558394550839623317916789873521247515708926814208815773167984783048301625422850220216871776457331407172133257582428969921764244324523332720789671250926368304017021152411483012086324158146350866439638611142211393832402462889870952969286432758368046561877577374678428028078622052256704330373163584456398444544982940778833730789740237209963727180908564627199753952595616043961040183306220415444678670325077197259318851139212306656385493779049686579624912903120224229816596008635165328704198312920367718056333848240200074976020434110421916247431295505807683047004153114277829905311852707991662314308291119142911192317127725072051246583779119538441830727769478985643913446283510272612447599674899478582486123909919765210048924374323860447450133553814059752573021975476515088519608970627228103998538247664552282931113727197175233828091518127411407257415861189696774124700645688157880757413849749738749967632203319049613132435329257076171190890584006426515766821184591778696756407558938293651112190168470773700195846934238122405634934579074357720059631012348019530940458837874273291110572128088178707943005548195016216706707583249330172947195692475108539846176620804173951598670421183275183590283842676591668307342230986810453432658497289704597153350785870245641758478784012707632546609371932995044471160307768080852597854794764334729421765916519547446974626860282407308004686580294772208965195164592731064964912970878703990510772503530170524156556631397165023280765138328311010847798391480176292027014308936437701127026803068463091492488495364539942391373785407962929205673909432308199126599353539444829357526045135673947115005086240606753445361112660517670651906706805924467045101275627621436784612477738350423061250436098147348597060684629523004371951305365708707739655038399247773284835248662461535901989196413162141272358993249113463047749715231855549545599593424210866750187712915535034903195718181594293050608314300885714373973666620322782207015741422868235207804117504318092572650825025981020216738234394843452349453067360054470437926631583526088579749225543753585254848724816348781963435428797343273701848260179208946934195640557564793959577567733340084541514024607247170988970181170267341939893326774366891045214605351431523924837104866829276702188541955928223180565212582277671655760452163048683009948440445915472810028620409033091653986841705789781906139663392899362808490804680022081073388960755473309687775514237933716802811262557725341016559229593807333023046202456307401658821323393643728165157016012970803060720366908123961592075808007288685226040840615574120113826065460520203239209316379125340411397472633756733609713118236632609088606099053987100091329333262282407889914663151142613749672956631090892352356251877984108198984527984250516723223292268465604773941717376216306670446225072217596811924200334664714855699640543604149846038953275474429551635518522231224227549080368615548299907292103916910042289591749408155348289178552176772783175389014945899420907699914449177029790980360847321702168899057495439552652177832504142413034312470868047156310861868137631477082878604131208362050840126853706930113887681071799975379089443305075807802782152029282876810732366796927085683973860947862095953968496506843460923802512757421823784280249417493979669050255671737983978246951389599329887698615534544877327241747613599502160566564002022484375440264524825179958479132953622676819807237500299286823435360896755958329099262575846181407649511112511461821978275366444733937648432145224885239453851494655904793923382260015686318239615262004858847561577159031985566456476770880322852827798089901589525471902035075258472076627763816134371493539523501805762473725456863644785259220861399283246475825713445155090734224291612240631480632991830978306574887716460570637320310591471488113792884547168533338693356916600635639096760134482362125917602595469635751712032569133874532806529787791179333948592562960794305869409244188241484762236305641879209620115737192432462733092406181761089648426045147629673434718882655995190758264981752765292546184205332914230360613306818071633209899639284978728404189293935853091392879984062993778691996173136207958659541757851602301895991153887909519925589958862580830392783567237369470262893765293854003138227370575621857857156530078628813545418325721332274825948952458023793386451817238141946757802416179608932257975849269448996924155208468210989080857332466906844903817952017316090774722881292597009881865710543595237754990151261984920009756939592739940701583577933660402252010515247727435119844639621534117388078381267846010371153352243632790060127109603090373581102012890517928660043806385486674083104680604754964124182534190814188538477554003471615187942331847399935282835048818631100892330189409239350042471491140095792472394410073022433091667503376131374641923274438657890872997362655185531274384682868817318642997180452626706464900604421392247200582202256432450303416771243364030167105114771877177793709642353128091849709228196895793063951611724622033713721858572557963188564300577229975514731102731348438619480122519466808706957588592625454213268093974004159678892860282209236111693590206500852934658217169116666448430486271004056200794075111028827298960764264804643990052149357441387777792349311055816319724063258872398101077058093844875931248364255717130501946411619782548886531277433205193757349008260247249613375040409479977438705125163180059484810606630548535377056012784151133721661923559929330451526162561830195445405813679615594990522594053049786043176984847103850976872980216847021780452395214978453226220783610951305049137008301536122841495106864789730118495166868037817566185603246997216787106188207587393187274447254703572593234529913071378856629865374473973452901239999087717762791466593339545610407616480052354801655198038713805323989325462439578880418874531621465995870484221278466673705362662390037871518333887542137932810279896329294243435616703448447161689653530056690978924145226282662779530990782956592638812636472428931312402164321038895018719698519344174587116488652683627808392277570771511867003849625293912579276939639016597940197481452526139122020529761452290395554654231151761587724398313227922053633855994495266101419821457239859171045557148292895264869587965031888091174813670850053871861937855925127408644118994761072906749464372765669217742239782123934250795172103022749233712325169244236304722348769486765654051371937424445552562718254499469407227356242807598189174558860391189928477206343955722432768705923589774416086993124969430576877512697616840271833774801843634057187656963867466398838860824267491795789112218738323843889936199476221268895798921193667438783752367758735237727490756825702948426165652279073774825005786627996083523227960669170513687777077051719418556181570779691707326836973691742416949500693477014954077030771092950663579167706260511887410097025289628402365498333161548214984324783126416863486410319995945858519566932946222228626458338652702205114853298013584923952764467974000500851870337644696371052811582515931414917149221213632156887842467406591062163117618386894842539852604915973375372657319100629129614841520982373541403473310742518231814514057211883381967266422185058660093858033248038300778483540955107334896469935372482293929943528129833643528342060088242195321344355993828582021905583409451419881700937941247082170655758964965477984008090414260832546990755447625376100397399308357240524003453777934883887720122243394336770132848784375993281411087572868522397549042174595015999910802583106369832567674715724531342494381350295585926093313506730179508600500040498927316732025568971008310458748612557068686066917531630892351389710755513472668863335779250576769373933015343010599931000073446214010479503356346204446573296295304622509953736052203343640245097985203662673357300618287479677637500307527863241920250089771681959365099294962517479228217344976941822432107045370151614959785527077408187847418735299798003884095648813374617907553508581564968956355665204461207522118921240531014668713710051993726683903565186962719043872781158907185680244911017225444018009601416339425544133812617196447921139233273852758602055654142462454971806704977542959226292800729633503270051175514572741644647497272487869148309477684298954212484252513062635420676985605393658712555645554868594325905086977630008321261736231788074061976988104712000227443995085225398643614232172496787853296732261845189718121948946909737403529159238961811227737300189817170171335626075794046688382328612199513869206319057476229828112045894664656921315574191732850413704813475133001317760767562208418183814313853879915652399474712593976827007563818217879100908606333712882817751764545972944071700557636448006988563745416583847386345393177421163844544784135807720189445676830932495106252720169809533262485997073883768978736337280134942233214271663068622660167114735789009769903017990766094781183895215527858887135829625020848235320343073785643497226746787317919718916575866918160253695187463976450105736686203659035401684270854133449972246348681344702699065517655404891287273403856037018167768389458697178429579070872679331860541769404524559352445083326323090724981572575294106916493168698254946749851802816010089802725280930369263427466287689585229637328950151297021487579795839078225040715458277775504047670685692919896348335390428940526751956940336237896164547598760045258057017298448864646379242959003200893780686134721112322128822204202420461851664553996497681305950758614428676889980500133221967399081323527547628536258315904478171472505988501030267001187275864638538570430938802325080934869792086896308447824379944699338017922894656985510132542532572994854222739111958528308544933820129118691104980106252762037386626374639206370305890712621696763394639539644722602053946770678596846392952841843216288183307902911104721024810288975207473142413959888518804050367183898228488789868597861837038460538661664482608867107010432780324593138718926166544069404936808977876366868289841763192236349021806649847080697856576140842832181333652781109099982561144031518498026974142127445895627889760270894582631399414424644219045191903918395149932171313739030451698877670561704721465457334015419550499743577849636353977851671395983317429038674867993047277944436760416641563482574280862222532172512512561298113463279044994336261564153092717946070621256486149119297286563220363838300422708770320172279089139853731004227427257956975775311778230671707632382952010980836050352143277674718225517990494995817102357678931324482428431749050007119649933712981460403569115235120245569730579647980094218319919917682857989838859862527139480191387055985124891282343596468633272595133333538364689564643901643079363220616482956589298754047586453558709575152454048436749505878995025195343071680378423326747439462506179173237710993559905400810752640889310892995920282098751360791500359014344351723166532246360117286181238827703836474878439907909672381547418820636115947613763258750755528224243028104038447540213494511992269477485759419979750261788993582462160884045358780060219798867042085853633512420469845423774077696496962732801861637108952993755126737884293755340516117338997927396951895024759929769808134934144250195809896577161027440439145074613116963005340837040526304469666192304499847802984752423318263491727124482564177996250881142819183569414902198433317119769699955484764416294458928480715421269827925484817104547197394814979776661297218336146441610587454741241825442844903839194836412049033578225660794366278580064027292383416345942045213299343095154671427987234465805487487982149496783840333655328042646687849916205635812669466094082776647367327519231909657183825661035095683855701217574436172223602902811786023280230894752409832063956744877274092120590420193088833813149268980109792499749802996330632882820491753678399138694353904556647902893161897766725878905903179469969515682804401070998082674547704574089114093560646077904205877723446291173488628031690912878073626211325603513871537926871577188470471463080790585438084173003303114216936994046465267415936722218792228399967430816127738299630539237348442558367209613748784650128569782006965158173425355008916375111379431314715222057493328799568978109649954468236493740963244154430341339550023805605145902037275922621725759155984742403759076939519458119241633777736845646109693425995012062481451394521310291810107198622406987046226361038855592760185771527682891737018732344528409324347457868034548655574112076737017079804980168484504554810369644031921796845665337269005284188921658714829146923502636345659473519484550202337311200666262698981749783077144302610361002359746142812910615142837083032467039768111766417432087658771587051019724163085049542655284909633943973036746155072488571721679256718901755836070473408659144093009151433939246780314304320228223925794193114256520535804155424057769945108469203667460039536238562689464393360194645122749513329530316173971530792984241123884749704928917801814414311857101564181999133061857247038700287947399900549243627243447247035798739796758063851813948631057454183644923580540866534463272324945065144899394277295394082512399997348512889907727386139257637587870085715238511849944036212656848161445989268525161335949874491644494842544662315502534051151505749332291970211901741361424733512007861071758052373686038811239719975953697145529741941019589051568368184896883446289685708618074501416818231745852429270097042290264182244146537148211857968176026518304069476390488171967394992403996714043149690984813929995454315804359341191353693891485745348129066620818584297255350841719463261895965970645269217534414376691669820097629908366198387876655473322925930341224608081844739053512428375134795240635319568607081210909513255441577475766286048340463018529099090834284358096105765875591521941475226143866104569564793717399304304688480270564882140245679115919570168102539809252741328209028916882768676769499897775726902895125178890639155975281477594084168281669192734354885610277615719412906049378973458276268166143124381339352330338091793071251779404336166725835091391307771816336741988679066167054978172610046889881910172844096463648599554758205396188180062547640288606690591992687271231982577520662478464902982693030745208936160544034005602609506052297518230924645940403044463731339177126475821857821812650932523418958007871658921373864280160114680815035392734738360809013724075587853640719496598723096497501207611636720013415400472256670588468665114027364597742769939215482551686945704958143972950917094898362707021960962179194252813171483480229640743932808442025819936057344139147863000676578433941598176594503247764181611961843891540687440330514270554686784479873682707539982274822608834775766921978332175652403310795544022963203213471705245631725028754458943960323908131075052223155143056157798385260180903063754657949805877521667147366142785060397791313672952749512640608965426081571663330668523581725062299224985583227510948145807822849130945330705107250514335911408615531547875275521973175328956920543828537771580983870976392657362277108526181203479754738079090999281156225170864150577144786036042142471897729012396319046555978460160902256565218574152061460017485748093759528011947200273253193178784913888449535651086784265835192521456121331193644811109092996528133832852797713187689005122619956006650196125392923100473649665517924497309023886428088025562934078826020981106588186094401042741154061755918071753542475370048898710865566286540601174610454889858101097401400840442224441703714873221676339518367494089304619703386535685883794709495585294012172647334398087490620874755096911584955733118948027814312389747332715642886173828204055357233335054321607112824268388180281716978296058341556604301188019446103708757480167243889362810559807017641861524434709818111974138997101724615602839472965528700321427347674155326860449165339400905151275294199155349762131328547863556217859170862703620968955131747052657313148559876236680982626430095761684096243688457847745970488826626601523570421307592484521479151674556970096684622689935004759687333355605194186277478398993877532280921383911865530189075623754178561673776874399737459902104490723204759658147883313589039513975426651990943548685195359426875414957235584827603543824477579090348755948543326585810860449416146074229812133304324716862763290875269153125588116563140238385305750306042437432850725108142049603025257136450678869924240785885143683186977983723545017273172420969980278849797884414527809720702967715847198520854119810945714265549244831122293173569682701321619430320666651957061854384684057402227229999675040692270722209377266913419026583437484267667023852263526751073739109313585772498474913109841669296379625197757922375919202956460838433890317119430393065743290296717269864755379611293820929730323685701170678221469649868125611625480463057954787442768219686585828032925561485801821072846121245495317101765297435007746997157169859314306336384549566656005790251872741736244667934977097239932317444962435022553509911711678710910980869670885424320886438400633373071320881088721908171649142637034625642591023008194866629886275147474788938357244570859491672362611700702216397698776025884683504902449999017737886622346097212311048941911136734744455177470160006171441711474892134293853521804638045784770716298365305661081782677814582645982951988434721584277199085843875971110952539896486599747109646425638112171904730492791036806974280921210726526379187909058540075139306028376338159272898906517876395477885095258132964403845100300546755367408956629883640167033354387893068538236843549377723609550349170038706846866943652856327796413421269577708084665076204123814449304943389620516349329735239049051291703410165822599961149200206586717941497694493446240396805532550729487668698648679825241273938679398751706569228785699508171342929713989024072047584798840998532793532561766088051066608197964435983106782516676798012610236173561992541733113352124556223022327230373454590247605249015791320013052243852853339939122606866827583760472320767653550254843756746779037329237422488218424624295211983552677890304035518295431758269686129090347467605213364711794038757253087740104843290968135334434917836898530536630205156583101300880566463586636534820865970326002433289725537972285627248199731299856063468501438675404607919106452305529606809593569522267599091929676318175062997687843048290890671447675062868668348803688082380368364050657152089445150568978967944770290541907262806391203211663646142806492468263522864843951975301428693758169983347497989562587665302452024852407912687138021115481156826532866491817862547013130754595230558310767307353227905081498257010931057617124206643061680241954433563850253009982567277284382690997963650375924464846320393806267820049497547253039188642836544038211672606477838539976051308082513309111074931423684941532824042496176056671835581135517434385582586800082995908110782197322042973240659866496393458379087954980355540598951536508322241850249653139824942484599876908575027970339143183040848682303443582279280363280768586885400621813516975780842371924411530063466549181214399961156767480435773511510370977217722399633859249710388359815041287667217575697998818102958638400199235256691671051698156841718575788770746122340381024160408550656254899884760406445081866039156724013554654489422501465455686725304720574329317234895535211521133420736089065970186691210826924445031969995965983591842085106072480796499786024907357010119227292382482789277642987007247930824156379469850905978679900668095741382955193207959145599345516355396715334411227693408480612929094618439951317150771055493710304167806351351693879868181142220011054695002678702350847746838288705536902461657952698455343818925881623991940069084481891161665832835315783033245000402353645027726258694216950190889542742838939436380033603205120128505567662810105013451801706411122101895482278743444095049642125071592168729997766195959829105002489049932355569676335811861583681581253978034070855829322559662379055618367580376502563916863837780370168487946134959516743638696943766133179703709075919091852225353567015904353355622416158854529745435718729448258841020774349230070424647077056178537050795286031574021404595055129437549368599780870688725690094680147961807353451753650253188215975258482166894155370209406133403244334929815199016031928990259303225339151806041946518529854112672789808468618952567853658871609573139149620208885557952143952869881287674101399576208557339034509554362075705921321395112635180825016539869996924853121339967084371860007719226626366026708684358621033530979107112541275030725499148177450692783768937276384755122256399225260274442700208611579919278309274760177216911933805972504211364442959249052782085617624625165492016296977847772688849511416092878128100956272264485253437500664848357937152034601311965611472468713778914386667416330031332925079548596171839832415209728281530539843231281117913534761643761501472635183774339731743396672653278841976543163759921507336069367734212192589455597756223197851440654262833112767306810005729793564259099555335139512943381819935100751045769433888251295399547653405757787966759322921788185035619645745236178486131457887586376649941351071538897137746723806916230482891064452590564280285836682333093953782238874379126436526558523328915995778694852835999317197768300299666223723833827881955812705159521814711074348058590331512761230005968528466806043423439649760295656902521952290637958874778725174427259477598731004716384778622837493840435424836435939417968352800127294944549098701266249439794464452608057814090312593102864409366160438611685123072302749763871632760516148295679016892772634616885998560972017172699035672782053976261918252136501146869527143555890596550383880087781421980287330309295155846635525594949617614020417805496365802104807809189781929530105863984645470470848352343090874315935185375949753708879813808943097600414677274293978416654893827593749374685109369965643493772196232758216774043015348875977815111771462529707313362090055453160035319555112036872215971794475114200485970763813095284792307387432826323980896173798719149312851282683066442485630700251163653384175952861571789398671119817585959710844752009015275843714822112951982242329452175830819244873204839021153014714231967114562583295505503212031111174007789602519879703656002986999260439624283962515925970222333750590118505933287157434564335667100484965411018403410427593862600365578534546386205770308854077484956045340154185034361080607960362708027161934887365938969944698198199283437896272645113517137226620995506087035778866527072890309069284466117379772089489175623397007631900129029228770833562521017452870775920245313213722711441922006059534086747184006285531051120301709647770088420627224329702203863601319930696981201208071666884252635533825404514085465644283784945122515899640282372757972501997361819412361246915797178420790452085287983298275884940890355327615896695264574394223328901978941590371594666330377319164282017203986678518032742947595833849751637193668278941126080797772453886826678605440168607609279979300174140360782766696330098402168899953768664279594435928948761552159810005723029737409900675999078230549000996646125628199120153037206150078229665729943819663183912590382919734819367224018585988237431528833166658376031746779523194260341088323330928324241303417811361344969714755279811435278155437707579903275250458829516709080307327642010227010471001781460926891370369233004763512233658908145797247416475851676846715442177419145667896477244433449873166337369478328908878209896751128066835348466092470571241325325142344654403485664706907389536090597965231387831685125758422791779843450410444114379669703563522614886994924595469942084976091174448994346700869967797310311148437929681617467094558002331701930858657171177305451724523632350459305903253208166096892805264650552270292155660461777239592576841456771196752409988710191512210440475562112800205675128159271660876429763640277111091297868303161553632099644496915524108288147018296488960103431778522842950987396326889491033894769624086086617460076195058241266398424612561414668821816826101244709783676461140523551032498058128220712949797001746797591171785720936900352619987117059235622603139402190655204065505983151030290153949045519509961038988738469813396885003016507666241965299371447605050306149453236870692566000865978014669654119544772562761063563454855396541519462623044375159546949164662573282831004948471817158223535050911152195021910258672907211126618597108900463287753262099534987361346739386087555017492773770554386679318474692718313523453435685109294937237125668609095804836718457755207155501691424554589461768940144020074484001285628480914626192538415661704109183608363812412120700392189416055356520590763606801940364516959507602969465483961733357886747651602577355715783181953470315708180691074582717296859785924632760381869759358719913134227709281268344894166010577361858255367609453801481185985183639128711870162115185607969915904120714397020714998695089113718036077378376209778961389013810911030309757806982509301262984696737924084242004603818789549955224890600570589874439829157701107986415559342566312684064860085372087280594998586110320932003370981582781725125374129101721579388621644497927505261378415513084033892527808109352890379523373851435299516170678463063257597532433599464551675025947610954272778940348533022340367460210366149226296922200430303152054622920927986056191726679465018769826927772601422311175033079360949444237829383087573642223261350664966860384379846477524046196656280467228727082918410646663442064683755809631258628799637943492198859222073885411569446667738532082219139736028906692024197256609416547402032291225978967582252174002064611852576240434689599569163884930921405841849980108438635447856003072622666086521093765690804586622139530046144746484639965528735159330693535118935882728679272644371174272409296063395764224262150414504759801899335784176031214324535930093397618687736848527299312161709619687380866838360597469168777675973644065790669326958698406788975148530562779459876146765489342798518657677359480257998710315027730262935205825141672758860846792460299902422871192792327068917513956440470394786343852374623281106110482356194156848776610922288910828795790193254355964904965364848697959477723601443535671075630478102154805986090234009408871581937372261944072244096094104961856257120593409809427040900278920588804693021994746130090680117917966316267110773925966557695245916881164335379256759516600228551634738112024960172347195723754694595877523030117516034822338970664234133217338339097120817809759778122083192962583131100200390088254854083251941034243050702404783057059508149440946177723473605013498964715056690182162450345550048086906083959565464882345048323072292847574559568310272682782587420935968350293549115848822161202529202582673338094620895431129108757382374569366902183085905202997240126484818849730437734238052006481650012695558117365559731056882982440844792517884543330994981967581942386216308093211274197420734077589635718156884989775981982360791273611219214618510200224843441779138675630769951041038070861439173444146120558453172044174646395167161810943286705241449198797277473610680861350810266258999638817575154552115404821284000059442279430239652998962620930590706917560464502630221803886116509392249073289747228278704192240672254882706983078491188051038841375466409526138825869384070046665808165252877263912770702721965516509109685841178028830332584801705994919365994905173844718032471338510198241590406589567318339620983462992826260690449145504945613129098025766830175906057873224377568196496361854501756037516099493961545789577168366168441273676584529294796095288235323777900362818904061504330842689088383469977274216140118314483212179408677961046131006735744645582508789942675264136014341198778717922212881479696247047531003865771771640640202007710241648880641836316256150180324617728301173981809120416781974670541072593227079674019540297518365625731933146635348778678730013265683575379481276615259622589042330295398186696558087043284497239438109640645952180223537398723534177541923085290490171706801391266886364601320448626935835730311999565689619815999501818374777616556726061478792790671831489966379773986023300717948861537908586770261033459841479705108298306141416234359260142644233500519322643920632562596798081455296162903199913684433074270935616177376031368007232751571419230014675624825095474079907754940644128613671332034692066067606273502260652430475791826152853983841617167294962863964153426395515458675677503351231783151140750088196674121296872142033998689504235326971649766317731046444426175285149974908692578864875193886526646860927927878192453997796357010066014477408322843777800265826386363381277112110036452327882657683231731056083665673498073297237945289737333037193330489619682490500665174328581263667304507965751580981055347761986881834783860950144954542389343275204278993447919484093066198611252416184415841182503906525337892640256365410531230075417836092934571930240525423368114298087528282023963359855934077986203056839892869564420885064064810226197019654338131744809042940855279267929881029666745275276725695914665273284916164866050810001441148326554285339520079808242536373783904264287491779951622579660115268033239476651687103540757209641521462253796233466863337962187254695212105124947917769084681017667380315853347245513438411152014297132510989235575508262147423174210803556855923465107418263762254502237063042956195559286487866044822204075114801130560624378600549844462633144841601500237271061742986817974200253143005947181546696034815310523250133881375991144378531437150999765128958433578617801929849131351896508008645475489810292957007697632123592939273631728147170454864954144409978332742282435590658391992498630315548556452710788008437161263240192734086726370867951168173303086256106338472569544060540538621520477118614363914469946990201209219436744859160673446583108018284040741186826558434521400295697333610740313315793971219324753925682866748070548013023687205283198031502973254544079225837482748169307170856743563145463744140665241506128102342021068622379604132188378474121295277057334805919098114942222536727206660028443031273237990927433815603430346491082573965137636238470944173615772257252850216646302605367931630996473804088569547584324162588123685769504208766583281942977446536625283503385952162982115041079082487568186429460840577802174025995795035726326583215361497076686732326964124285457044079833119442004426191522568627765086756811240006296099077679819244827059507234831838431271660535486348079932782758960976829395736170027891419294594886121332415817869888826321106439946934666785051413774110078082327603726424664722247198033571360380059840246565563880758179086270677102047588049312488019351373765032902302998169061327894828839816480549287058522906371801568630592624240215659311939946787101460857556824930668270186243632386234244668707321885727785318845604019139450649937976067331992744310222788917034991271069782261916190269337766536158140375700355308167359020268442903252246279033518937447160342179259870546846691871055954142949900389555470059809599736061770927071380777065893430513094593856228307383149959972372017525200979110386357693793066506563765037699789123559638776150372995152514152613198880352675443130542860195567856285088803901519710815834895363317927641786710254174232996213044194359346704635904556738812173622601087919846569311934346140560379034252751969331964478943973214677696273619466279674318812338517176110617022683228004512363061912779914981096381892732729296330938244841685867979917721138815778239468016621424877864697585656587431430413232853912185936524533433359692813622773406385399671532604868974347384600693861274813600098510338007574814021453607776589315290212537296060063286596503153196841965849366359610102762530062029958359281295363504335301503727558054955268128467207518935921074055349122181683302747515393098813937648415900681576044621555011401856186115012056388134957436032197119474148280058976030862529726774656220474606919642173792541705314247797671845277656734863639133334253929000682870715658613183713098299395226154955697600959198069872566054896270657843240219474064553327185564698606316502008431954799620107505554594039073563189695116135687224746068675361642605691224621974995274749316557520875736948142410528778927766815578471809810594019240420489731331646096663261267086061499991264941138398580434511976948115591814636937384948279461277916077838255027498830325692614615061848454758876107137944161936236448059870774923910453924098141597833295564446263892884273788848560380662066589427335810068535375799014304360751647252782558469780756732609567443007414771845976533435573549477519529819954621626285628534048411258180532399997444560879424623941440996613424630668653574668673939786627135930920541262395218089714408913448033127189513825638273504673206862287553746044872823462674731491007288162499552250605812776898563452972268732960559122775277216482971608655777517691792366443966302939125593947709139674853633240362868345486724790234940944385712789126925209405220732436106991110647079797570017539041754470211386486977150146147186239283704038933218480043424892225776795886175250907305259396626581199254731502181277710216940492206594432806289232757760857099736806182963097793963765409933410868045423226251434379499197825371238677983629336857678913628098148543520772610609409932252258408899040593708830609411586176349913777431602715519314222363332745036270172505702425135807165467214709574731478736206347045925177242206203163688294719032804872508913896190647266183473170497023167434995704790502238053679678573362171824662116367646952017970771720798583225057850467137510677358674774139036593702975341088327822886424456766948328335678993493320797569728761724440368760072056429416968292295933192822084591040171378412352812471320532813231213414728064359673034438101438768337151434458975472946536887072490886602739675030027848445035918657326415398885070743546878415692452648814011327138166808422242889878173566114257674664161677708754051424054533022932335846372292280584002096034889963137582284073551159791164220461300686996214005366281793120065457499374542859929802800593065033448448165908037181490385737957953153582523777967531322816029042897651186337343050423831133719136508347866028485947639514075673780197224770197678516809730355465502692552907252727287143353691868592157301121141914350203926316667968393484020172028509514257372156239343928882087300620538617409257587209694940622605454192329253191685239097881522498349920182501094525965585860532383853700463518217850303574010386379225999296354441833856318346368058556421188377551849183645071651414554352902401730097961931219421384733286041317959230046644077563439907662319926163485807605323228656244591297679670751067740723614293859749525824506373595687795966359901490505593026991005815042198187764944870075857393711985210210271999353795637453226954661272980039370022144090821439785868562587881184858700392432441684736704723675559377293303046193063480862693346185772272519173986048377373221921272061429140149734703787333807196202671444313036528732092178913228659436955555766464208349146488685330513182443367631219104171139814700353784706129349944766297277343572103525317759612711594523138459865094123300200103187570548134658633576886694787295432407233125521749707333758922624392006329632051765768283919182499550708204229973670877245621314832609108636952126829704074607278108478634652224534674021589972945569214038072490467393345048892531749631906653956739702891981133864983777461044914667875671727486563801227087491132113130939891462696355144152693213674201175595105640958150774712692637974284690437957452156394558082429588156442463827382829872006464848104435797917858058621306055966581331519517999358669935288062616624998975607342209648681184680264084045537185906420544290932199213844520271212729255375507732493576227337198455837260710188196070770490096525375350880482930533835561537745896980947089172230640366307354498927815280824192442292918495015151372026292280449984320561226767549883017052555348696910755557908756054383838813629771919922054452940073564876361509162765002664055453180734947779750328630227265399306125298703537916408720093382290434408335920249023928080271898577362739173596254407942122536613388177724402426904027663134714103165791067781730283754510535466327685893245745273088900756181656998559871502368278647802477152337825561070899486913520308494244376909660804254160571795724677138071749046967651003487756941270920853183500059703265058125347330158029353854620949213604578553884931866802737422847350561058935791913417565832590908595228738189483012502622873324962781145069140667709331115336074983040130100671154962879862660458949562354489939707237031673482201323782215285430227023732724398386394629425340824476933792722804387368802821119474840489937177205312753177250459984139242720677766225987673664339273187710648821570056777492864088068630712701199623270255217738949077817121003263844767918100233845715575604975726281793491992431920399061710652424027497896017000280555427170197450341356577197612945560210975903830900088801344008630560804816671138727100640516386101843084000648697495455918048567972087813797841785973510188397149667381842394145693068066515305364767887741223958601667601311004036512192169510763729593409970075655537083509415705859490202986332135054548566556192134982417607407809652289595546772978828869158111075758369602348696545479603263428113050009318889089227284268703326636610048600394511660414730123090046321828000439235092096704696635554506622499784684084190224786572615981272113981316200540701025303416119950706647611793558021715423647934824879346621985063730938443819881691080720578365278771577546023209604236915843970113010866752147601142598667594272712976306797263634698850255531322490876031982003187212774136700191778263083550077670727610086402026210423965363552628165591322336593996592541700829008844909260026731370226198923435767428268573536824070804013456985075176120610034566905870270525436799543172948033393144078202666309760889410061637133332502040344142318698977629213328886868447313624950369633757057779030119642591176316514423880841930049645094303821427005537689961665871159629943896391964972156286000235508630637665940319541284204841433909788454979382319325671920118758380012169844255790344487653454598806089645438380759726378421373460430154979347065101563419436035201340457123833756417055387193479393485065957103504773089104843186206925494295704281765624545626965111060415336395209856984092808888678866238928447490966289473113168769168080739253600390340145911959081088709534298704332702703518002933662905285600733465312800226770172818820054356162215560595521364852909467350261930169682936538193328355442742839500384738083259619837363377799848541339770995284631719470019088664197023403061916099149911815714180234837447900193209607310471509004031302149267522822914428413145809827449954951995620804404955494740627845456871679355381724040188705443645089723031629005096689370066902037485647456172700942034967761079817336599501702858152385163774421574796359732462755407349365588941354516277566274368208278850952224383067529560303892538210350696902585726395460605912625993621671343025469028957533798457380219525933926479336388373693433244795375365398013697549231306435610206660167741653377583756843548519243965402253604747205269277748962274883715502314427813344637732806131263107723878958332264121215282452146741602993642742725395367109012944616617580705538273403345555017456668114617669972458996944439553120433135674679492218081053197799706627238401436492346758147711398370827987072046668504611253959984842184217786110064738836276191037945634102406625940409480234086187157910385588858416731467066647623812379692128687825137059604822043744235900784217082658706739739968976752225236472411484359453312126160695639777867509363012352089616604718112993098257714094715419587976593841367647495391224271752439024784773000894389042161091606937343216044814186847268945172435439113414448927433292589687637629019003012983967804418704260608936937484974350219996430233169673306347287832195672358268271847145171996493924186807353409510555509799746031845250670205338225551132127678627773857166606120618247000397042714305703248164406107416395306023952947974780047922941099213642761759689567690171320801502159508252371266884784784776851021795557363569522567401123110082780621403760528994754702530323293138149817303931006324880041536012852629711846153567853250126554687484256550336858067021955766722488804477708701256702272266920838526475734725939563343491863735053282241582530499205932006650254039509889575432843741457974996118787687918143248085596266637436527984199498427070340887825761531162323827151557903935525791753003403200948083344672803396923053296885248851019544907892722398094949397170407571475339836135384306951912459936655858723415439948073809327003698319510116310500270606663708203136620742098682210428652795244443932324883392684947304667934733468150562628210087134726730106437953738522482595023788459884828340655996275687347898325884115651635061417809776214091648755382964769197254697785041143790822433478409214771574553688810429909676887519373727470087872871653711926365733294061147833558739817999240333517695779222361337634507006683151198842380650271256570108074406093981605458853151585748873694267928154412246032830779210188613409636934002104976668084399159551709274867230255733853561169188086651351510589928624549576709331418347686003936163920924641174752856482063767373292405014662849061813713302863141665491850343696290053359171533530735707694006824093274303381942137701418710266507990306233441812791303202091054591717710274139981935702322898150594315851739917880456293218587578740331858783569668711366428254161569051362827332139697158125261754070460926851709496260945568211884255573143712177524093236215634254733533403493401828213769701232247167827858860335678810917435178244317310140503936906907106575541782593664885720940507046904783495379030038936144792886603622256746912280557693617195685057913861665074106758005794980640456980215797053783991067529036928283856150273283025164231486990411641710292948453896394058141689167641468011579603010800181911154995263947129857611717384903932090937342178910529483505734452958697198474732281289904518453833250349486004094309511315352458501307031617088112363358438095108959831064176614610548032110401743598056149169835103666778597701509357726552467217807806835096112452074101251147192850631546347129486619014003824902847471386377250498580519276337172882655520326735302992934986248856445589980784849449714899773296346721878916356847258418070852527782317174713958508586562151322902079660507955121333538145184606002054144903947062282567280127681469812729538304863801236950903503498167924648309067795426020667818702823108754393315548497817743292718803029021389507740930200648083257676210641112468229892933297108397596369632624963978007010913046181755689764377478486321431312710045146820080176391840930760420333827778320967161951296510696618003006148647417308138657485426088217151428183081114477506009393336236194400779221875020041204840984626456304710893368997656949992304991441554364930124675059342038234928161591533600234241526190118653720361008945767342154446801842400859081618267225467768540152981125656114107452817378930387917855270199288098248299299705157215802484890868034847289671405462371119736125294295543125438071661133120760581177583592592504327842937059951192074766041628478410459697318658443451490447197617146219905432573239741022114296229616281143272883635083890221078805140614559889096151976967009440295871786858924872936898532953245470390011458116125384251642156217941742394993282706959278441180041995068344145801036664468171717902954241887585016487236383150570776769545604257338288151671712091527231396058259501113241780810768173148086245347408148452150195863944259875787219704384316941484527304319863464059143467726169239043750472673939893245006685882299714894681190015848761330887700102010773246486455785150192820872976869131276791223043215840886935892631220871216070962550518979006509667225625922084803164708976798168667337899535873320310640866404723481765263209188070038911169980143689189662071399352693862553787650735539428478394135049515056508475919045493545226705342384001905154342401139328156698599483866460509241741518709931974395406602609381648055848494268911207593310282098370728439884028059441187477489978257193304021171628106211629272318674755438774382917852017131434879917624068392319781237291725750068513361359694709189650604790325102911121580443535528701277083848948693009337701225172231818887807118970259892041134636465165498146683863562082631431124287161035294563522390582142414217110568689933790498105803134794930754752200374312049640122746624790748943243907835541018960234656620855125823587642470029294864390868260205043031041915101951730769655445542182110744057488800890863492932635837654479462152785189691212274987880223527588008024640969955105458265190662897194657569637571273912308128644247972738986968407667069112219094366205412055787016648221216982419419222761371094085107753536844860275140298494501516499762715968560438274927068587208626717678230008498901542719937895025452073350092620210444896740066166899107037728832674825523043183850868881175837926131861839825796502100257620233784491974156737529257210047997983246978899394032598597114814486365418567408208639949683189287217648815140429146294205477730448314475814105337190240494631147565088406615607844335482937457169164514621034850423705119510650998417444065574578288267015958255997462507747944929761595426236024070702095141485237725285890434951198052556974154699894661433463463226211037365570766879077789422078075158653541020592315433553931882787860441568365372420658847545478773668539860690096518596918939217976089524334926818714306733228832804293078947542545211319237133059431108257660373737956046189450384324397519646344587033557564092544887626280016581596437022951936594037945673886577489367431626185828242668828459659111387812639561072000748845545090038888649337433370237058282990288959856691561895618777500123082067566661374931408615951860597309039082138422872511891996463458499561881516781635203634338445382132026869655531907665560771021857679190961704078247543254151886194512925840278562182862658082985158850910399420913665374028117923435139706645288053211688925615229076460304594960229384567201459747755116750528248926350812429815468160436459428377127508602417537472412883581291926034672975090811598491925835573576219870895431495115403740765369141794181005818525305773840220900423936402428381676004653931861635029597303103937656644193411897702446565626092994096321416732374686833440436872533118976909808813951150643379857098160795675552457527582659033292171465562030229101360112111601652185145268986592903665033187270451010797485928641777366164372863797753843466419852735055697386310685318000507679443044525775597094975720922943176207640761777123821137805023426254035312793050606542243093271599318684334200094098639262284424381484599198624937059890126065627352654886835120476485865190136170931571224478216579253128750170075195845545575946504002700302160568698145405002647814340843282554419545703905731043630494990543850200587584570097406741321689332618114872860217394617094243374995012292698903400899006062463205469005486505844702383678296495101613984258896439274016892971251721204475239289420120577869193826642499785255000738170566725093731649143230658489556784835270871247392242504363778039131894668729585406569174723006801261080433430583833109649635707292621049411301187014381956266986277120491320274685421283262702832795995355467435704488255194591437673165081677601956352224261467587916077012511335247511285799738694376454323454540509485158269970745783164629576310435168730378576619022472692569579407139583968251311263608524772456851558579491378271825864024222350966370585917561305732408216234379497808196033640399914597313029489600281840446116864335536630396793827804780702902909038571800339979990753314165035656004092851994899960338881400588909223747894464451563064121875091845602798218290851584467226381109753487102004869661986257062865846357783438741565295018702860513724844366137208837546101437867504408678976998696971226676108350124829580311224110008856591371108957943376206297622707309351919725272746602799536478429556311791740315273350416571415547247704625945061681368550157716629716785360423142779407475977238397268152009008827614564848356140749789285577530811153848203972785767103393568035378696170052016034371753761367518546369948391351549616294329593366406505390663424500503585629028979961914540100511800620633207341513080798844975486814152754261459266704235284690846452609229899492462073519866773343023400119521850876463454795986917891954118182628775542413543084348354312078562093336899864867276612675959280620413628960947702996375600766067722878596635803080457188230211428604079937694384338399553514759138679019437807871008741661637504590323599117470569216691321690330315116522208591670469524295137953161962634568912094658007141085555202812994392459520308087942579214586559280683132617943391666058094799311458793682150140682271334023223127797851680705484239329676983545560370214692179908716486417025376529959376299509811876482177775277435551624808684807083703865493683441197608689613079478418906272880045422487523497749213670108342687502786403540243089303811500610744608374468835452512512338103398262414489770087563655259495406578719557766661043983713227227750221197220387517351504863509967772403299136210285195855053191221273298208093325693476010546353013053370276337212209240412428572156744194562027945948868401166783518447270747212179297883310770088977795328948937078265558722240654436474383848992366746064774196996628718362597895879388598566301723829476360000820009379636234560227171053224108807006211546696695399630142617368020792953774934103565419719644747154140824020850730115518968145387494460241323902787990687924975770129579824592219361035645938249800522655213773831446992151495875277158027006426618165206876511743565529567579315444986404299725512599089164853141487438031427472589841049895335573178276880298978179271595614820135100830806630699191110761354371240018270144698974005162610375022525239091340854923078770519944558494186348411906057715435390697105243498210233514021595685699360532152860061418386878262051186291417839804809387033213211576719912052589371103775864719878687191757143716316980459047966665990570785133187975284348527831581624126549814895335854411908956331901683222550594140203653513269617882965357305705911876850776732228454806999648266491952625073821383012891135586077923207825237193178666113189645529218470072470050049367948566469156874919305336896338367715003613153704331906079153430369585667648411095016983987488646012806634607862037419155802704480830488049814537771513908013466912458904662141215280676988248092204774351706631453999609083483785644852450696071747589995499360502012041848954370966013373237417236284953293426404291281127608276722388772463027155801418004546280787698762363500276508252362584587700896605665472189094203951795657829091257387940155116544139960171493120836731153517493040142975573349200461490280675824558473522772619241394742643044000334976429390853429365701016771093660128185299358894383897520542664504772664071181595076236378948768332876803840838396710327096151022782748542859631856624528060310309430926672068087214543899930614566094301616841948457873341965820151183007746655317609094759352786535129261439597748866856469415283999360259016506342284869498585456581807011787683846567744004110848843978867491883591497588093412622765023532831387799907279974410104721334307983134090633463073130280329011134734797354018825682389868171798793186195627982931498994382052384721632542433706520833311152467688831543217964540371952177021906548087163251186693340535102296060446239041217076403468775697776419430013034335622521381282842741599540488799651141721155266497083682579389346047068772756152819579972204740216508157016441958585531842880250900942440064138935387944757999881577612768173209708569779034814613530054654656477472296438833177857397737515194260301935806964090741459869781280823635919273393847513087022311325412854941648208948368420752183094222681210111567348425606944234149478257807769364344339855759447666960392511374825452212926046846014663732672107787054226191874420093221761919620733715139118028952958811559357387199800547966549624644018605384394604918220311824668794621424900465783529732428951874342315586318991252310451590185878063031115485696767439130804778904415419449314192910372712413951385696220576877474373549436562748075651585017233269787302644364722066573818754419117148651675156443694965000918756570279329515900532430628802919950955936761396011862016835105646138239291368529191256102485064650476012801183489574725636607821704226982357472942554390942371509845915925986449000766606137680406903100815814970488901078370237065202771814337873894343487612233629366190630466683088276865026111053360933158442635017938807429803870799080939218818267482446393740688601191994191120395636901813319047606215767210811437052692184241960286535746735767336687450158884402510074278353149196822950976058095805459336867776726263848629931575501535368694409896680227307441204163365139938460186304862361094470020281407150133668664839237825135072454206733489883581505987048228347969965653614459107923333968089129702849033537963460258101003507052373030460518271293422570248506713960516428936512260243519132166694387697888373724124208450386538240412002019893110302937359880980954201497474231055428970781323413229107218839091274173607767872039793422129893480140843238070473292217334647575028219858691539483057714505948106772783673719942766331958275143627238067091735034394689627371941744878712003707374354974459444054750080810377487768305653890721920250990081138040339574384098304673704452548830634854678608425497556405055037602709828247320883186020808154031424033188204920307525489670752803469510879817592720465002018023662317772304811150225939013408505126716872921665394433271789222936208236860981691014222209788163440107785257519893423464130061731156709126778036453154040008153922264697613100297641983212671827348225476246916764532231714880008998839270199403354089155800082006760292859742443994700690760972090564023243690770915373466024002252000407276371549096803495548031663133834137230931160756647898423802963726223646541085378647008097716322187901652388602130428528986762323232903014392114024893132078512136223616765823078902750248301172576113953671274974290606478701247597159196630961569729214352005501214610773017834118690308745322733307653538647509643455802164499128665141238605385117727993246701655121671974097462981075585595060331612635505155569408174957134744107407348715811597898878236705577044121365992599189148682847092275913862851503990508169015869228970499098110992595222548528278321092149571189914636816983640318778081888826232534859212087624341094628745916349450031899236737541434915832973986014865474484687503668992763930862021557439859965874021321484482175620793358976795096050053246658705289573030183314888315187386660793666430511121543926622584798026295142951743531346057986659262215566035220715592382861654013074733126105836767250830754097094695221918044109128518052609942726422662365902239482238204231544037206481654947653005199382509729731129623686756026728491125611896588415898400741928095720287130616356304871367346341798826700696403462137737677019478160593940571857786195570080262705478901347138180378937179176603218427774811746043063938958610897998601154458229692799029266866996209921467254831589834142938791944966524982002007793926993325472298034546443688596581901986040254060011524800698223480359677101702145680454602164540065207583565046190919331076912752056394010275443874483952879986064578772593326544275412943516562174027223094231991526423300577443036869360431056140002001507245916668389889931272534539109728768002970062268302158819902856843281688190148330938978350726903068269133409116275748669341995501853978440950764722688097037753407650850840821196715851137757013441554147882981564211838127671202247523249782563327120689343669807674677148727849181686150154556887065123123339354364372024244423621111808516887102056744805307764090777685528822050175948708780340337154416912484360484410931255005232447645512428373870040397305229829424158951445152887598202980201407359999720250200681541438634775015850933969977132506358140634402834760672093418584907257125581770864686294130917094111555321322694150463712672550399569574300185626075130880711918868651379438584733049644325309039326269245105103608480363109099250541956621221176706541291008085593448381081688977345394683544248761277998343964768416720156483697062219567565794232333276495602765375884055152738365417404857058028522957742713553844033162069125958789196234168534265113905123843715194408447184265153631881734860508243112881502030440649271781968468814344866989833510473473915209209677545573438926218714612587249052567557156802277498225656953090305044397229147260505763890917295340273229848706349176434801602972427379220356737944937010802284999311617742350897555720667714276118933737658817838124591485248205663502858684097564446282549418750720379705520182411416980505863068069418185353532871871877661580416909822757015847446083623583709101768271710703788729100614812878912326616412071214139175541031981663535872338285769286796702359861138635693056255038897773574515524622596635006428851676777542162593483818141325031288315707032272698087710752083068073093433867408246532547362795899314801993261890738723315291791038188405031130374291627308164821343255402300254103111386256838074996017034184508711393103787847680072462010121378630753691189288811135024341592069153753535244254574188194791746522000829062455381959956602425474073178536115204204259365994696005958255006784813531250656260416567410898274984017037411159904069722209062269885320384748507508426197311758797106793082985981587232007912327389633689479333845952407509363049150230527386473918041819713362131559234603591599104076752000940181522388103925249021476590435043670760801530121633945911313061791803734783117216977005388566159734069063404690747073976823457598380443044741658629999036152341676693703168013158038899245588385966610197047161473880522433478234592445114728346800205431997909084963659434329758107972290637991580880184343271058198601013091565984032245036954758332150112979458348606548726638004025836133408394664229797296957964952272677254088718995727656061168930907251489774396118024056488338047673271127927454826784384556589572958262921781456769687137126371135923885010812556325290566465768233178950901396684337296214749402893531948270111796848223630236492000623845690253935907525984033248981026496136878589496823731728852022938926704583599846630146187743515323017193781234623601043884460987759692569568735237218505278416544250336883217323972616271565616995329401351997839009811526911015921368358279103450509175091154743193060699919347330044399480709265013815854360464781374022673977612675565010870570458115864559019235807762082526667259078114319361474490712028417316071597974606725703197665603064726734945060017754236621673244257157863843299771230464342738779255878736268953806530046657043496738173980527631630512493272516829715418967978679166270706499184305086682842268756127537141998533327292919658509824973477361590808783322498852507590331782194934467672272122538771445674305708881060255481089153514547338722106188061838898791889211275172891677382950972149088252586981321953421346146662543121833498864699015028211838052023317268026234382048724282882442123880336791868547877936141513655555712821416155887183490104730777585123441807305667768335112613458942244725775216436191121707231234352100622245597319817020924623941268969963758445853145302264873078596018951604642377521567554133119372404919051862179678688429997035983685225710313502305523489233704372971777161014727160371578915279841622310966985619179793018502149645728325985609659133384277302533510661741426151436983355103931426461967243003153186270447770190591767956919546213680692523975709190420888866809355532941009175119730100134940541862550897603290423779018368497050955737866067953383788080221018228354725455656582164778093913503819330288902974715686846870137128855379582771946396527245242141526446638883621563790250819295566005033172196492949364806330828488574879399834058575621908252405774519272369791968077023640126184241829587356876300825901660607768003131031928556723119019237991830898194061069467573465948962808952067174546371843681366297398392548049694983889599226733691088627018240433259299818414931059000269028381426131245469753659981630125112864744934080921438679372248389187175978197303984855487136103813036702240938008359588395307594809802683251720932361192120444914882980505032449963773928855983002500464790823387424035761169924436079343980437413130524930983071063026141513285102830639594506291401120418447485041116917869793363359069832675326852905855383962239179447332559418017835854200829674703380763334243548911504029939146771658543615010691461083862760629576146297482875621364440720666684347689533125076505627522192244208739361179645739788941806767266293993436864228741368418171982232599557145367553009561674628572031530542549345260057635834612427041878411282814500709057861946349645117781846278882979123142140587221126184170808745023825483719949334782160624494354690350712843696032490746583492886074252832521520380807041605351248186644251113505165119677852009800474350391336967018635835067531333164262141413217666829768962542591454127698266131973557830387192182376637626801672836268066430315371336729671907939245407645105955248567914568201311713530627487433368830026016276514791123387024991611565754895258723839977078468628202393534564925494255873850737313058622759972996718401692996787879165233027122654846256331308772761364967750995224370805670913964318933623901265760801069122776480113287585368752667756923160320468946785330315745734766353939838179458931354127466479459395804530198449938154982540461119814568436189892763224269334470407676742653133140421617316078378667332031254622583880492181567801217064277803485019564440631536557723490130463305941434141750922406080854354973557212606572032874443488439361483651635077252433231164187874335212526400801440405825222952429105262094763072049265346921096850851892718312678098853568364377544971613028939481749601177109830427852018098704307166393364148453081521737692530524948570900128245873640520663920190342773309671144090914437085016535669722638696684510610688867986458731797547673389431841889294668179175323192568179205305015808312588529995029016569514197162263115558642874565440647846059369442560018406142503428746543277693198135929336183131425175789883687560029208996297811515502561781929402440444453003920043733295966362498583429258152799275241248708294823554040565850961015208829956404326471694239945155057519109086727341738564738280781298104838463840886996676773520897268872284904972418885840062438595403574929307760882472228645533665513060546346905269831039506769779490633406006790182763309288518561437538587640380572419824289235126646491682306199612246536394199903842643265452561641220508279477879038783448821007920360160196151228361859064344311019849078933472140574248554745091105524493652168327137479238832198288234229924669074077019508131716442655509674469091800332012597467805353114140007316485885671082213186056238127316777967331136183093042496248122299162853973311270629396253214272966255226195783607251743033269454209650494800555626210400511742353884102212601216876816868595293327086962763516595357617334554976734499376038597708673514098279391886521657992829330458330153648313989439461777762651320507913908448503970337519075950266536107900426768545277067820634822503816696274423761810651861326563845996055579547100240683199408361590004301379434940735173771856428177683534100829637285039575630957070184423166471335615130379507557609307080107752670186866109822505977638110108317135653040653425309351259338868791590443916138889443205733856119603547579475502010860780541953115729412537033914407953755740896974830289150274395476834449803004007036750924992105890727212330860151067282943855882323398421830040768601285616475504669860651334240564801319206485230025753583600368331200664552002959490805109677359165556570634708393704064422946268044611090321682918004552165807351895216577760029456431853218107166301244759068297552245052508050235834456795547759921104423587737425237972676560517921548369301991316282472436474839877800333949873146877460910429626344807639534773329612398439616081843554045715398452533294525921689118877195367111733278112371062178030974422736162017856623555446582629419428717579490294726448506036413021028888937869506799686545986873737743498399571389038330739054516823636926565666643766223642873049391567642173242648805112190796953825729231740508103314875008705882976967489015171970850547309008484793841003834910946191068725254193310608282846538981330139556000290548380056550253004641298203910094111931560539943336715118269775840553660471455094346958987720111176577053724072894832006552054318572354065025774631395481141055690136900003250167743195211229441360248817806697851738985396922151785117092023785272911374428873930649043574931866156642866331122976650233602433919467725756953026104466974110719385580045512427137981461710946402326897539299228117727139759427947014207317274540231443186035810721012674202346683167865580164236401951730318785041523626052520177959396937575238937480988510449907064119488032545795782242091809698538132404632897822364866377761340807462717799460071975178399181172694964612589932135305855033856272243055944294764738413923465597580548592857738811364144110308823538361934154330945298685717122281631940831476465721117836048278922503092840728783928210303875597811290045838252468649222170823712769873205302985645053497618752973227384794268921524641615399550221172576155193833806335818364582188537053620880503154121370289948421729496424499618721966442873490805208522324279390212359298430500082511709065297449039637561859514482288457920344195074217479312910294263897065731178123032506370924302896915039492265199733952487100274773584250461316590132098523513246606813736613593236758639999504862131955207597233853526985468482082492425887993553040829867480845396148156182854518111461653903764696320612148976407373335258929041153091085793608472894384608817211623625782771661897522587942189926737938726573127102755709612599445079021880485230414019791647220333286669916229295145586738816373657530879473526132427192516418440325802038094706646608985026580145441119535902662791115763877450728602163971729152723968630969364220210392210247368625722200075943961698443762377828189637011971744086517286559845639537023515250389069527937257349892944999167823973993986424565831664562843333777334989025140236696297692854120740680627073793450490458112793525361632862884383505413473256772304075098951697604246857507862994107410053880413111791470039367534643535783230265523457280114572904277411694866234052698633615538097619184965253407093948058429964891420962051184110477181722468950393187940578523949874188866203235752143646400478023097226200506701110695459398587665697514172248628430685379666374092590439384656271897373276459655199811281063781252263972144110513109249697748099923084312798531105188326839907779182780122386659590705807774717261070343804939981230999877156988920839700846550791729788674273967837443270663055384135748557473387069292031553497008512276719020115580181734773498667253502660041242461661632761856383832361038252665952796743823773574474455168300767533411080881146218489284988330505390778239714483773882379868408890720817941777162519912374624290959201770369890055420628915757609501779275283281146056738622750055455612337138536490888866472342003867094158242927062236832735425040846084047801948512078708364810595340669399483315335407401099759234045267993057557415298285922624528748305421339987304596312510878656713818469822259892550104046458505540968069013849562465687613495664206269128720479732406454989743823157101941480871323463691817953904646083350409267357877981992308017291386638012403585664893183708484721728418929657816383597015346361458067380786888528658783453237120795212335945391426845559381179897065094541955802848322533344128365461515333793094995378127678711810799640881622907538831603050501014688501583656499847192644333027687030321207366518039955718012459092623512500797496832575850515832387946712964255709964660548671548377921573147900554387668168488984068581222821799989765157172957924442747366220640031194222464474455894320750179492737389063361840490668477816407796840218192913794828871532582238240117142438593547291194128904099416841281076998187737959682162477991719320544009312466622601573266064378908864928692336328967226354412940065147554708390058007806988679327125212158904318895274361706636649742853129111882030063464747506186955670721828400610735343879151310509962534549880658180332044579748282894733453188296421307605605956949077364574770521946536925657081834139981021633045379677514172510053222074725949140638158322406825648969745684892455348966081815456406686997964057851377088023162166063814639309334441917198925579332464708707738656050691940576860721520245623190274232706826323179989405847446109248947481787429689397540055862930080067522610625833394308185626870507631151872982849269559457887314000798304848952631529254008528603156504144288386639431991092162151779375127953028692198773732879450308113246827970084442657200172483273206136272426440116337785894643377857818410769910649427058019512062128186073662330274940083944519328320393727716281118714296538903625825293728445612869077290099817821156465062213820298918943035522266840967156196960195718446780377619285699585765092991559007743286845662121375056442326320724845791829746074737374703184232431854930539719048912008107719842586861198285146727896007170637392303967613628306441692248425356452617484421739107398779852502621168037901335732725196326077160938624718332454972386328181477719581447740398512482934219342428925190368796696616761394691691857233282286802179303626978471230827725799103334190516934234989511149546394999750807712900101806508059648410575413235779417731511638176266766646733718222838183252960741993935464726274482583422927735631112801604332018267374863751237204586448435549410246314225583708884852954530533227956237810402063126788626062517358946736373114023044270334699317460810515168806154862331802467099802335642097403593814339065560548811817941591135104470367765926339776400968368851760925308900946780405301614929625742599026802854176777720190519941228057072197847165541545505562629141494858532126252056455653322022763163487365381042031423764361883807405505770610681867308272180426178286971837409747608177379301276326561808399676759221644736911310321832724977658320838851843793106303737804935476013231709546878569131317895832765964462144699588941851628265005199264260406014491744378094289683430569602047351558511879057726864851492403468627755312893518666596642463820762570070496661708142364555119074652325234060828396816732285213963994813319499469658885982566666850664887355455173065750681810055442873628719476894145589004048591195452155343777177684291841143140270698470808209801009289874391557053032643529689819875233647718266470044155253249371245228620576454574726401693909148428171261387590744171280746924303482923739117256837493746690914773552993517511758835210894375245932541939084164247732376046482201974348810310770447321465984537218604615065419774507309322367472716045901114564606163708060876139913098601240138015914574286606009746171260272191297953833538548582843247680948787336161421318860766756191454665665315933060699372802230450501800295716646203520916328606621950426656764896277474179466735903086023615954737494414007046779700609956949454494335917928895664363796739557783657232595574521908224947561653619698868799988202803600737063291954964972512792486801685604892628094356711296406220080333128936508876546328116736744756876524683849491338422545574849843189065069833294574661974565415578133348168560077264488942272766486383810017255518997915237889916827760734547559659401563031918927709975969745407153410698402855235977687466691133853202142047163023147714940566442395933087546125825362045810997921302173412404453552855123355418589647353852106102239836115057662926903818783908606111698855297347214668534034438728102773369448438544982550810112464979151836891675954628123889710288327417197495355242727454786930916190030234957691651090640775496497057340381868680688520994905770280874976058700067804617393130000046147292108654695075519780557325253041273305950244185001196930909805436346276371007627873885521631895698113488106752139384347108358285853909132090027378625045015163362471728419776127160924283286397824067802413627833448776075471983352589989814814571570538379119320921443722768744458308626144835573390618104999284330123942968324724954199469172886445700692400397400741483553322007744523276891203589132904217206286021337102130352954590950477797953907522656386774322087433272105310742478932165871280501604071319455574864391649500077267086789701548353302755333251999952091885864781072467973978550296466405385292278515822808627052563293347784307472617487782921075483708056700466612235914307524886167268794691375090974089102800420588892859178427536439028009621011669685277838988784244698777475521409460566888061736890710246135669577296834409929627159997380770969302823132712045501406377143961076126757131164689723719732598804244216818903748369690619232104431262549267989659474409137075748183066667088717011762506237547217194142492005563453749144945218148252235000350780718750887717410325816416175060606617032334972729160999134392452297371517638779970337672611153925749697465275238410245525464686966759104372544279798225151829700736458383878619514424589709000024188943182528923693233720557701365643902655275254120500887823430153735236545109518349828575028333031353676026305123517643847382758425124784554465298165413794707134270785571183605079293027179080368736422929165748398394211540835654319895700215776215202153519036659396021087029663680761925520294089734900120034651470410870449319176028489007516759811661957881905088672496529641881823469210858961767946682582764762092505206369438420060137981611240945588234976823727656712159047334059696389964728514238711405795140936757042000118284788002611851463510840105127814381446202429171239233728801144133552127659315743658941581716570073590354297737082411900278947987759279300692073928602129543675869971615235104339662137900926812405233113216579211386555299644627572719453780162153520243989034526194113216885949363247399227488311039362123351506128679837292178073294611794484252550454931463653563869499916878426056074632364541007247356559397938376641632393562436451089062113774819439809309541997415520812136999682073555728630996216290693882782539477667314954701607120346604733163412686888537680571596677401096628718738206472176575195302282269733184938101773133420232067808133392158644865783202272236409516095808174872896093308917416966859039432561566425965266067774928844836878795918320211520307225133214691385500121033943050215125945199721015495752904794930713642926217379429919772146343862941166388677047434650711454031368793379950575390810787179266053855373871577235583269140619921264373027521023190125508623456863760290540705472740697438065078364477269710288606742791168777175751801529812798307772854623685781380635226272810597924437566509681301035230863082224042261112184322207070678396937854140417828361113463411709546113871378696813564798740411207312745440347830322317937707778695877035921577185333027247694964825018702355495282630818401446999003876686803621275679419456922224545957892865418198693504590242426246049718297729084605010049541396708334987670228346618893244864998115114893970516343363035970965497514263955833897691581744433923989352892652930184815198030185451041159013256680839369442606132901114787924410164981254489483877812787701890675514367287227874326720279093767538840551111289903966563788004607198639159840749743886099666844933797740625207244078746755970494147073733930061338722954291799804409366700623422280735749593268195477509370900675133545608490766523924209200937294621314008802241187616207021862101600846038302769328051327615078729816514701219970558821011033415645005777819870469345833284743035803131395428227791854304750463002667387088229228449614607767855373556437855546856031669649994213351293536969095493967692972364271167118971273391280277004593201301068228464223333187366480408387150640362191179640923322324665493440193943346271898262255831891622337809300659003479427666117436226234143604400949188077908926884100209965312275945934242676039925632847483582106275201661009855686840525599383436676552586106732471831109016083398691698739578108717162623587344032108221793010062111253009487578851381088200892777816198456020127430897257489198420764506090611221044948291985403641724567786270015817970082768690807836713021105095961781804925996881082289144810399518033249093153887925967982286931553015914695320429373735730034107449854199854494117823876203255149709042173095418487246950841336222179689949664335779013917431875021007422543009620101566675762541579739266842988420923722191181855140752345479425337472656795534117816092929661389541624108620234229440491416909270775488854051203718775456321737822280195637721789765548720616833466223952025255998970602698168491404859900405578272793361388387894500231019203586455280882775550952452809664695082067858768047548660412760005202869978921100956835513713699807445018029867198378212473545915475695127224567495987674700593507024350682407980967447490617966024862644298476306478796317711229820289903666600775418259179624693367158816298069112793816970340852299696309695266224163232969337902948821936263515563384509989445828718182259116326703260937439628843288622283931194686523896670146574371163070197825715574028502220128355650976657563451999056334603631095013043752601667037242347933360361719541866328375647931094985606823148556289637722101760945322547946104734572912401316788190847036237255496126909017032710705690265377894578761201077705057641708899056223261796012453354038356123796375479099173329411781867446969182884444841334853664194376665941509640414791847502935327314794976449108149790077677900742394783894831051716740934924068942793155293471307391473532418781107148396449547632301656725219534810715929204396048582625447432915901657391384605148173106795584089215363008351751330321665892671817382665167918029645994001204374156321915761057479814315093999509264366490687732383259733495366831239934594737543812734243397051226437810038291071793939674614735428339236139457222458644249709972639543788730206250440793861800728504576088793392928807414138205952471650884185123014640917058549771412718880817393545901618313078867382848178184107404049791561216675923527207990090929117899158949739874879896543374801715041199067229499250245033459439742760841100793899919077778852975112242517682741718728901717646268186887344395372709459878883856825704568954717692746039182870791807024320137474696953962174289773692424809030584853460430441078385229961485183139621346853434040844559404565798076457362400191530760249708533844082394566663902835312385269112870711869961037241189295488111539860939001734843645009812523779849754016385216656894680412229116525496186329898220339728173114165935803125268415317006410355759199578756100627718537726569444572567071722097512792800345522865846136921921923386924138341848008770010073404250562163575231223790539198899053090592813895216165873956438495689064973395687608459407631867172815947698061698294632244882339283289682305216236567851885252148945900163611968980497722991154070283191887382311152039190752448850239934150321843477521476604883950984738263888378969126434301394814188747458396997692194229445854675892638055160952694432992104615195027752469870780292322102234764752313048772801733289694643235335476829193236560898163436183607881033769454645761580543373107587142580054172905094924665179213097014714468036180875223051557009468095953251001563167953192045648981343203353776838616764818288698166924100508075156207286448730261549534717659361673615045868583282591447923678811337284614288746435132951948079355239128046551592525606767654288038971014094494060603030791658367296435414416466897467617817885683928572347087474736166072536810268409883013044518931200902873379821558668228030544650712476083782115611836340143679966419830239369619149209021855205272757291381245771060313355592355523108498755934585942465825949605293309636963662216759789011569953110584731481138277919733436758636653774180480218504877330758524873024046317241826814160108713832870101444863382109918112578478557089739707706457722005355152617598712454429972993590548970115387678120880228516080429436570231232633755939231671235169255055556333784817805231403403309161822494778229025028091435130383493622441468187084655009931965142861757021508065863417182434855419457768744278314526471534848990545206772977748770732241592455156917377663848473345647005216242371117291903448118976598291524691912872587307288317964120613066761066752364910510147445740159053586429009348646740293210162835421406619985114482848099396968058927258194782722696981739491870040250835012576667556710908005912335573282091969599902395287332142811941149570863105266739471179477757342110140678282829835134350211782095338788208588430947806915356400289804505469467306441573441318988587781727335041747747018402552740010235796205153461770961192497795316994641429710847916532104634788748028131374055887770010742435554894219931135253699289274178260360492136854896781877804379792086963148529881696766139841812606340842171111289956800022289903363107969926264899975328149889091491094199548499456749919391446694345457551066405845768362893358303992969106175443425799303495443698561325755046032674766330268839997040574655128660459023926112479094751895499661006356504755585160837146986350454441782140518500248340008698499634777212121580801461552146414017281651782303779392348699275431329126094271374069481651064525882333159652604330320621917380525495097072581017882783245280737417302680598160966029164034035275295548824281104811016050643762562241904073903623433929031810611242726874752338707422696634819689531274989093869532168540754787779062952757110229068149697194638198750538939786969651798579669339183059615346474390176183870736167835645447581448615920987684272702138446833579903075641235657213821348635035244810899047309610816295995440700535437549957616096501006800881000236744453401549554232162912322061293304551488516125871350771850707435994571246784214762427875104573311313817181997855935087133671749694755832136032164888386395644846367039697753965857222925385716286121667768309179674713554605817231775630497176946322192249214360217465325531284160747889969968820870287346364946648661589022244571556614206047138525604792819102930017187870876494730718804238642644597074834969388867267195676265710199321003532033292434868043858690449606164535626342922133017005974086707375979093886039788146261754713549686283518230564835929305064683580855874205969375575693097416375855498958312984804869504415776484796980409851803959275029614125529488697736539668564643942944212695411149002909005775233610122053058803255812811729761974206475054371966512021560923791629935712293297275745837012923489538021752941622353854096934632969228112114561864671713351953672977108199732570896427968929194743357289123533001668790083773232160836183320971951420130984800735728327879662627362300925824340537150759044520767404300857981985567190029454633525299238578871425725681732615438537897164464151927270071919426366169999498948422765021519408111999271514620853269900437031498467373691038256136122408497567861209323550349627388930197688040432473533755355130492423971004520067839442498048619764412972501345740309948951562844136218809954830745337387701247571016201596949049876592996807255201707081200340663755473821578177086251406269020635458221485619055933189826869974591049513682326344884072245385765653027542186352729607567882239698499361440188915646565099344462537068072673661879994004899983770798833914515319356424567947789766232017219622274105027174199580665340983911422375760200236392167317728790591323997589797873749001852589404715541767277282646777198100012039017038493301829285110950132549300073167057103779131937748550546471093520102172622648575437216449918898014245130242735156046817906416787292399116383404349158848827335032043714774187415137331956749670947069179322819597324511805988461224503002955431238436566409729381947831833891810367002953693344781548754437872882972891481590031324477896480389334896514324685137407730772072617567904570292966267045884528396017582319048040481626657159497749351455961390831823964677839095969706423771505502438781224599822435270545384496523626587688987265426238282297934043790671122843918634268040408127125791473287915994490351508715638473705504423406697571039098408341444822208397713009766920093279489957741936608068153234200908244697987811345755369998331295478419706272299823667618030364374464431115010235915984017294265740411893848425869479824457237826663292343884386867010203318522988027092917947166653034577650905083832709209472404233982665714430921068648958683278496833217609771518946731559961487931404363853552461405877173358158638235644385675844575902129167602225762209123112003954021124407597991650925880206916232723831100556706192966340859418380407044014980062963440277617308175065351272447618290777323840239313033909981064257912526005404343737764141429295798297450342581094186268612200115060837416087169790077303731715567324936701862974214005207694630919999542470249883111857304445996355620962146256254292431344070144784858629731351550263016857059882931466497645263684662225325738181656160752816271933387772368547796043906024856956431598984516896615134963007066798616460853089678990386440059391900420071257632712370685453384451267294012626658829759076858960833440793960225442439988407107442040722591390954906965903271022378432696705719553873843130124486009260418254884882711751978744788135241472143827256870055484840844495271924483440442954818109298910954416848979281598104455692767107380650163544122564542626250889389963440320286180544886405860232143199852357050890111833764540714103147973431551315688867328421766974536970925766468241496534121454392603205265722528428939188157488854843027950507264486791670712174485242999680366958526151261344357698307809692058694454714362417154578455709211268811870179396684573797526335254392806922470772401701515022239012665761512155756344960314279448744105455742670879005281997557299294259868507097811858632904879453547836286280721718341029422588210410198366919659926591318778328582997416682281042350535335547465185423965492831901657725046877501629456110600041307910447602668699678023600441951045408123957159152397809351028751661477151299410168424731569247245325453788786201009430663282845314920323509733008121058886980371969206368922323701257285757424355140696656104227250029253051216549453133776974674580051459640186179915527461097406926114732317769277082962310230887216829821464277022877051454600222686712583674049786536977178053244104558840651404994197825152631635054055958970780973381685318757662921483585696732688976042013754211899075971914110357139289349860220843441472952370948297117019888736140009003052708518670475517517292551635580905581127628091922492230861214300003230015639908333477534398744018589582318781365714826034472916895223766530888628803508852942181291602034590069000019522623348832863185814454963197936554223303509474992554526413680765616781381771531781377177493273919745255709569453093844099218068010075963569269113852370551559045517716999440905069232407656460458195951956501081421010788157658987080022711938216519272349952156650644808835814861571446223201177746853830777030381752702648227913198869614515663313319129494818300788822392180707667863412168069144063441063675150291682584353036136680252523472237830453679622482971910266930738249657718777477208365392873961450608550551995820759416384971076608598571920981128857238342981151519175507406658317403350364924057009295044863217779868488765246209598573016216199938752926332322010436139726548990475147271478106468871157435661647530475808475758291721977962177331615230791034764538359389573536133559997616723456634706740753326292752847506879027739931436570903672277013981674916680881862129335849855601275983341977818676379905870216777395738645873135043033961460238474018094219557916281106342785774362563147541502323241340673655118704160503634811667895280970727065177160935206362893457428540474737462341272403214496238729317386443599409748062132966552805310875768116806059678071141751595868053311702121816512700353077001618135060049576511674744304312436991223186439501524801577954527151274577889583161143530895800808992282265759339075164797255287409043722186162921903220186775743280566497790395815880069614813655191425593446280082855209504963919113815774829604948874588954859537568166750399388749072669110056183499469455395379294762000688646541091407606484827217518679416651406024277476338256286279455895455974436061320862656213531273934228377397590973797160755146563594043392488276359610963600589947790366063648723025914377494131330750370022151834029374714286923162969364961152608581868624333900402664386572062623297689054250194881516255805168094754224296894990585759525270713471435984747582365400964217387265581782734558589917967422825911187625403303214205170679639348940734481168195366988687586349927724253952420473001301845001623785832180268182776350794064155363260887836178079260088219377586872198096722759430911700972432467564474357925982051839698949841304295094057271184863661579224833436421071763809267208636891230433507054458083774731654590891023657202713665034312844919729513505910057420807318087328254885738098924304982502053645098857865687028058070900297273529186418805652724369167142596154451687168207544832034351029766188514556576977576933625884227316360023046688822725065775273900274260758134438770291370886857653968576236207812886375913048462695195124803407567835741944917983587480591795361428386171666146425484196987087394154052299455260566047843815413994831434767688025606374006381158883631445258039835409491180375579537820584961313580386401627167845197160674618645415797328302999383458282595278452400201662362562245300962610079814737936370855026695679714793797788640589882511608432608452900316793332025507601882034018778086417540641706245211980675981958816225287819318310642442054304512096333573808096615487723846023720853123504383043324844177562350024783402967427007999493216797334835285835805952300166141893321070236084639922286786043145856377565013768559352848533592526631930455958631046611004194341880197881357147609340416175715073143890621515238513282995379822072179106332671525362554178564129980077643270403362024200034388278591929291856334758992439190640294291892064488678592676019162227153430428089130920250978864102650243240751021296505165697510988867395982146314287000967775802514189354010690582034918205242533087047349342741109293490980935254228376035138593115773467927076320220214892968508207378553894030747736460819244784823523098386170749798372742975212483849117010640520575925979682628016130964712346876437734069688880976072345541377162380192194672215910026431870387481436694974330834677290724365130417148995300709542366750750027081765207420629371858810907089371431190472257623622990406541129464414029127596184708034987170154048326708066269747399337561643874668289820868860231415147325754725704364560567912595506660446974885491512070263584834932842655492237706828113619243994380416921570847584436483851433863779422631849437742570076045156795739976264854437123179699843702803654903115249427132587985974253041763440478303573310319609082329502300333603543020376960816469368053780737126820683093164273154034216571971328912743310632593178928131394790869810499921605988242682665497978519221823933490562367600325147115006214852162634757052771090631308442305122749192312589680479255752582040880978844729219337777919791156485430310034574035862415804081815652756922853324981686233725956775928973782201245489182138947045776912073032108016825163589701819471698671555517134394495533553161345297231684753462393627699155800415646035479711690124935441468437131574885225343266310145012899593616482928980987133177706839977998317436418646878490929075386059403038862185038831760159130448706471287496459032516115617821162481348938002544688266797769700999097643319040675567794323902954202328688077637546626321096242075960452983292886791237047302438728600290031805905315391320697126481950117318169370498409343828933400208898661416827832564853535569804545593847964300009290468848418120367121166704720913313267258151200939629431046712960405902969749982564112319423643432611176028345469270850028917375224163753449336360523615540381485924460495984708909607626538927922626455483872929788314937296688200304178078803031720754696558287309950234250239229651675169103688527514379403463796340675138084054530879716524736211084499491611429140393865801668627673294461428727930225980241633421843935490382090243647639368911999080196859536309141142093072517907452765808727430594701729624015076522469335330552971516797542015798299462771516114399153556348038549439031354129572672065935140437056133503132554059414689932119806534448817201652177908645932925526466914767878748154272457667081993820179594932039307919157561325472483813191529805618995336586807716396959288545948706575197446022966420513124078403012454802558170202282559056424193903616253920369249562517070114443222154059591896493557363458686720572355848734958017786411943746535459481478894911724429927019525619719363033457719582201911139729130310892580042445985097240147406016742421406472838005940886013743887073787083984904514489175784967152303971031738998762327710231956283658697343909319979351417919704791466255682130710050716140670133307059383548970122753706795072416549847664203761929084176918080405363976797888901155652534708875763516028998161322982435713703196163811281970104757461561810113048863483219553517299927537932162086090989892687454269463139880397516410990062216636067592473892687956801626121840668373515495981253586300961882988168988474782738901647636551865835492761880360910946509112925002513341998562217323251200818809143897565917453175782453283283712959815674291530869672338339518453714180564160764556357583106572226368294671086079329733618872680752813612493143034696058820702260567892900810548044043408523230386725209486128547821515442411448573721279074260473883604717245574355534204004663215877667179813412710702898571256723739995479466707995559484921606323260684790941648415608850848860030856645186935382346456821804260141852404451002210005525515895254530759332094862081502548037540520002306122975720997502611173514520920613364982853159144517427806252052669703583591386011003778316381033098715232669026656545795639526088967011548863566256787080470520769129806248683641176641110346237025744591070033215055151548198073146250568682719982810264004363595264382501484954111126447621203833392954164689027178559121725340193983191721454069374342975850422239915878493120476289073736470244710843746698031419819937714484652287213677007567083454246121001468846069454752183503871009107163374046563608954003359207783556099210428088959291010399537949535456782406503483790283452650519826546068239441446379347152849515671539084253477229901213755081298573986959406485044870046565796296117295939282167813265905582054546445554548944431098983459147865988671937240105274995326795306068843472716203090548550538190140366473521209885144679843242620280399516836332718107375200675591876138968082763588033303428812263934994680665519514826621974961761295291281675275195662290445516139961848904959979253249510236354441042130341618052239468145362822280442123447029379342164719109049992881507363985412497361185378178919499688653485511694389656004899548683223274737875291292375839508847113688359515403244430339350101709846103287160313551392642522636021035997441014941106762554517308389743276967656113622912386117526645643602617413496383301368122289867729834061723300985350803198513886957664749901104627733783425245752017606103796880014729900175776883233599391513560847108952125819893753002681194173305790607477399097080442179410868542035315706450109985818379742053032120314414454995243492668287823437216581490185461420715418990382237145535116553061924559449257104864915104303225669845323288093434994061166670274466897671923893659933201864130172359870408366130250518366217962471524571022513121030190156886745789687501623275336571384566320490569445078181406443619452470805273980997530667146248830068821076880596402105068226607342979156988524913901937871266341403300324084017411374630033246194846522460324448773013744737749284470277755168978362064090139510986288344438599426768333957299747958056902070674671708095179590298899382566483839820408793114851693385138833112983120451216341647847222947586509629519221183760214423420138683336730989057147727816719431394526046420601949294176936067028120590026098663918000793522326952244899938693715111296559847230786292240433375210638450350925447213885118884185515790524824054565167858878473342852124824791112027869771370596264148958498172836787789971069801597299693844944071630877274384338721491687961408211495766018523241164643876520768677280650568094210194315648934646857000306385325305727078643189439777102272464744293634734079445541561530301019497409399421862440547473935466945480903311710494042986184143428964800791831864260793592024304091300801134376916163884377991446119328910161574817100332110039527822019569635240829088003896164263092018984172458636624170076411567731949569808372268977242239947475717376813991919314252326552391758661831689911223590353578770907310570477158131836128242360501154671945572110351966313266325087281947228984483692785087746402029742466492789010741336786362571624950714176003087297679718441823623723235717496310624799320773685903657283447623800448445048777888494385172231613933841428490512403570296600336286877229612493796080014358080437702899996871725836321307297366003266241328407138347582620487744016691753588535777202586199958089488880310503260987940198050026150067534294957077747136840299134590658580373244842553539158982086825947956498558058608713406932317988153250618826256579423911842200600835118305541839386217892004645048237422356369823378006327455095121183953289652581821936949182890211846291541032453775139907435765885512181421138029034784066272142799190836892428394258502238963520732866573533872772582327773429063658714075197529260631779965877254178992606356552068502106081031570984580938400345701593878312700852378968384441543743896424613207723709779730270582691507236941056769574718665466896756604971990374990584740115202318687697581388230286343926041959052888806287151658601634361261320513010147010086703708564070523773704669940778978558393612598213340875155664390147519741175676766149535635464943110015022391152992873877622297044762034160529778084149216405039665537392616863671538810665301989864385956973573650401777136575817686173107347780504191965211011826096596038114734073264034704473309154676432566170040315832278296432987187688728970237354120094137278250438954370694299803648168353655357668144307469418152902538633080484261390278121113406183529042429035665374893911699361985187763370806769600784136597361168188344426195571459211622379737148974768055087735757117437425310578875307826026050254784907196357959888899868485435923235885645290761738255352057543266029312595962076940824071946818734413578759811828936871572864613161483115234124145256308561499339210085039216082723982731885425560571093746216947530132038606536135216999356075931846743993315289190820275338163862394833736327103781461328148286819797617707870550520538399352020400897533120349970841705959606690129366450851939344227614530677375579126116495620180247008256224215754256753574024441170808917188804697510941688326395834755169789291027863259637805326993845775051424507155503421969219563791680042185954182221615537234309277353004894309460611050696225999290591394677705736759059077414296899741622512567180547887959171308797465706219625259230329813991128228003930750962291066833157028961092497985891993960476142039307876298700625054905544585628316302666922958528538936846414215357982714742327157870353934352058527266053437112316822588514498284550128217288875778137698742675236884284332604918517107060507857522219059563177985653080119855801571752389383783021826998679143792268500315085775457343673094350288528712216711743342239814239246340145769679414830251128915954637888069333605454285556684078877682028541216649897958894052027719342769044741001509966321285881418941028275385301978090563304817351792999411704442508045659740632907614863246351653891377744327471779807152225486948844947204676036356878519600233894486307833063750359210956002245520317191057441706093687908588186583266202530627643068773172230547036357351289598912685092727763352744465625193224486648679481206637816860047401742655919523802127835266935475236881496545276940569409880986604965057820886913818388426636865694741567369767556397246339179978704325718934612909443016657323257128404790179248253933337811880867414070468659593387731793664786036292874098118117520046307990005840420063967607598160574442325082766300137054962683976521961391237724605956556943989131987606883845666788440608058880784253772750015516097597899161812475145005776624671314306612766785056357621076626052815209814913779024157296642192626186907299840466301997671822528223020481663957466312927390481551837130088455708900185911482269606418858420925353912962164856363958803247737695770565631195212985371252601317670222817986169474629893745329726812208880547322854101422994468791654771835997021313032539483135225350549909644688546989030992009345291123410634803816466391924153956103893263185762432408191039565684711486554815758588879303737635718598789230866829203889104637730163442905272527769529982453687150669205292807162682459129500406854065759613996038905759202017399076759637520581094074433741678689633606393520821958438525323440204246381589405991775534997156133480076957791411162085162988567712060462076473586478069789917672846297387426454372910457984216068358454651362788074260061090328783358708171847081153128745379072598928661669164072903598805194621845120135933990640741558190549775655503812597212923615548805491968343684818590829037712590596009261241513908394049245581766139065389988829481819162640963430117055478305392164410509671741173676303433717704164320144339463451452177107036463123178628584766469113476723628366970561387145478229012270613029806638002689576110113314690985095194326231448526788013270592372005350446219080522297988726232637728814627934611209077771273909628363082819364166942253698059083259704668657185793862795015972656604738167635938829736177501199165253201942873901663917831891081237374663044283625724909462642317921027983020770574148833224965729018312450943606612074732841690604390458288613636086462673226672873125519459113682894212440186038209527111011195241764565693711474201962704846714137407775588940076337301541338907382275123662869467935696214810418188090456388724418658571504490811838930761576033599042425622537969361004197983960707552001840626261355335514875808509309337262590502129629179910594699258781717011114437548801906676831377442813488276436516290797782451331739938349875770243541398528923651208254463793909999957094078654612107884331864044619726002646384454467498846598251781199099773087155812845182417213277223899799690810265352771208919962892825406058959657514039660895054780848343382390869708370743124983604947079822764765347955742414695476726138642417277544294104042236781002556927897240969674571657627404075224981511203741344300169874174033810647582601909497949721178160539973675805797704151362652865333045485990256609241694606431570317799917591518124087843408567680221889205353655056127875825190797009783652926135000374549842402525926204070906002748691821395918116612444704254582029510780205380756919127212345582104492783694765282519463109864664970666301567469977158488993063879934228790626675594208381018793066395734736809931096316323267677537534014798341993308215142359023970442320917463888994240032985021633729646132460156902992914884392824701200333812069823274651532315385773555126122076939283849819743401649359474257664541378335780982495552695353292609416376536317755374138754854998455137213926376099156009326635715286260676778739161041219365526532194550036758525298634099151356119707665949496389796979655026385291302917637379680824579980959725554839222529092015549490280603385067185157542945699847414163088201786942910000088094773268825638863359745306396522284749661128487504064247598429920666417979356549102329632076158516537818149769153268261355273738364897093836480490726535689502804817482389699158292008190879887278541350896390951272059708341149580636928334125757267273808949140007688895279876507894117511553223017515089066261913394843055012770071510750552778514827269845087696348705189502659465841978085501791957842172930348809413521780178537667266861375824331800112362947717011619541320040939013016327619382933219061836235504710222704629446778655559889424383305158552859276454582153671875605936308736793346222048757756071295235566087225174859228730911525327356049369979221605633949372260757218159832415768744163072797567120935380765108675571692209887648830000291965308260336787781041921807444112692876270344717813824354041527817990816234773446044421410159432947492313777550463055684176821013358479060370980611665797094800807993769210412872124546715595135673171998089967822036498297839309267213781744460464568705236977209446487901771869622975855606789183951436705271779236697753961883541554119759838175081472315465637612451122345399964252071526146153375723201363463749612716228231775992044398083239116642722849324183571935438582911622867311817744435830851580181166369072678991103439453896635356423701629888965119297769472770035762322304404719706723655954128699940436751509935293218534207994005448574426887618169638545941939234571094578197617743640777404155326350913489167388561046055345928089544446114564174182824682763371596581260574547441487447254635646090458985579817771783613122777622313151310648027346782362502722760269005277093300649824364888149293773553800971845265902869131064534760585092227510289866789630342690803819198286894916780806678259726664818838703303258388556415932531999457656481306388898880773398001123489942191283107084034444734025048940552012955435225281684504820559270287430924678798861896043145677027915571358411386894191019483011408755123278539617378696504185799233860640269639225469270087536746785091925570519248510438950920339333368856273325196539418342156888730501589332860229866414628305430794654454449947835223249314496099197527001660307897563434832885095279577686985488008337411097983384136234585854850922479279953583030315941200486058257071282863889932499484305929519410841874040123320378186464709410573499974577907949024459959828084838617756226975860734689972270901313765563267555119269734673707551441361109178107565516480149888667038558346946199754889605162756062870702007058901193928339627934825094791141321833810411437193219804179489746980099901592602833867868891414924538101435354717325512507510505557125293771737847446014304530388832958617856539256178558368865945747195809260525055547538443786498152344432276627586646911729863478174203904608226484476415661325060478946916386414286330027729591006172827898619247471481415810860485272062502380324921911742330520458155669248837182626114759897225763199389546327722342064044240531767279821888957826334154291535513337433503713783985757459392836929018846465122322281755836375436295197247177025366848600929694579614062016098495340932469214233285883625783022826652739795668296463150490529798507496507711936744938765150796459202134409132887195775600140724426867986208642460898529347887773623841936157144423125949145656931868831685161838663498680890425644400317122482613501842725304062501593043957802449856717360657773117649677777594469180668906153052865332649988337957351510563262916727426397158404208469716543430994561935856157490814704456939075085328141703797705166328645927194389422264215503901984662588025600993303305159654327913513269226470497904180236662767650098217125128653132545684836075615410981803809623308583678307548966190188236252261300576378801638065341159714549951960182848737407957105869261322127076740783901104082189745537168095255775460716988061641474046772229092674049883484766206884499702866839225259802194417584516962700915937903420809963421967029079905301571836377446411176868188794069570883891022248518600094557648892624777646640113134744627951187953232571407931101682698842882850881016076665363291202645590315202601158937715356243046503424648382495073955002891838091404581896393673053354038318712256232387681219810461774348906585940935930843503491198078133078040104766727443847348174787310268036406716738227233741587272861909522443394968463993539374199884362202080422848088036463495883623312189974961054139235099771180361206594090407273986377120104384662239472784301767668670973171588875239709116987488286335018912581779253506977310030380527487493610699587311549654954584347611806415268962371272266285531085037226897912838889902151775884985340368800404872264649189958849827829590335597985877755889675412364445192980116741953905173681808766601075437189580107811308218496859772394425600703773830379109810213301072731293743833954311062187450347649342718716996380100595848465143205340117372713170471251643378802030883599216530286483753975955307364173345888004245923747967603959293313469273595090597096222992257079772321390857541367509667056996800232375052197254063053857807805934955318780661389374772262744208731020682801355129513729178132014426558775055512156670525590780481353154807584055125693019503063871414353634137617214321617016904411163707103357942733815274635268941571449098636282659659303315275570973164274184537336523486815322841100422366413865873355115236307698950135505086548494721749591403247384247949165867926998030472661850965304425893207222792457724217607254347819108288675159394865731017947897937623477315036606381777920057233270518852564975391786206304590520179936581877997078687001518041707971599936171468354957280924217456677234193525727808753805919783228338692758434404147682427478487489228320420550823305882239364068497411535233926462175849535150094264174557849409040890322689551858879407592455267273498412542735558008596984974619496366055740266110268072125162072851915113220704948672685739516983608027429088487351802441297425163146109724813082316667743548898053863516626723841850176115130048730547678918718491998754987194567840142988768338547888026674761516593575198009653283983545837209753047780809650494716820598757194052239843340229181794094854870037676929122123248132030854672424349500942797212902364421360453264244476537421073650159996813911891341210895668995671005722455415562144071619949970164286369279854095024941945245898633767200408515994792216709007137253146808519203832615393600901956700394193027478786637835953481910972491702868295715978859087097330675277503924932612240379604381220115965364336404043592376303181547778623631159884669753909338495730164710346761456496078253852340040587373612472473212546156948542294112664151306645553420708542967003631730009680718506633872862719263956784175644501339452996306826579497531366136035437409622476156435056770455216382708068830054920778896781154613394970970103614375269984123848841648333113720026230231761152103204478143011831252043057218866409585590255925883919364592883187605356357376487480149643384022869889146909567493919134370483559502347681119113012736082042993071739384568506773365423299314372344435311299601381586769027305926123673519109982487780878624901851599297423920673704308868342525614484809293792178302002375153191370209137568421985432718250109133129218793651577018342826206878099574771816603743020577988150677797149285950685311643970068320999820036302468262323973985191204055719933618730691056262390370964524951253883242526788496517086915967187980220990513489912332955004261886424332767692699280837375721978201491981323800628897174352778502254088515768515259888935580018703571376324186810857689887024776755589269075687687114018516459619383438321048554147933069541073876335108503085670527749777031386269409681494533331874101586522025579447958263488908721275732453763766209563265013477855939800785111924111901137342980113579156169029091090893149806218081899179009383645690264704189088966282016874431181682701085682729632248757199104152943427851420103662462597349978506920990814096029345260546920753542612689381391189328392526318731241015943531543964024605174299619235576441346587237758826931458142971726752421951603797137814570389993783691655265588943988740874716791316395293103919152193777517717435265805989776893902248056290097920655387931565428190080643075759113632100795990445929601234151537002995791827937638623699750651058642650421493071405721781914374472886891203855071114922892264489916816035276180856028470568627428968154947682696586124763251961714508815211085623115421255489422939263554875080747042123817839036598506156243185496095792015143574586459807376734914898035876562465575294612432849686801771544496134194316716203319919616086586548069797971295498437571420629558973802728130932208585630248220392716537042942844748647492142943074524064718003457539857161661253734416260427362695709766593354580978086999970913988374095898043766927920240020672814692347543297439966265611399122797978166856527971197673807509941275954421236758248420435153106209490473314080974573568639662119104273776575696900769175951803125970379108442803975732366851251432012654092379696272365883853711814558376175666183108180531884602882218249727821676152000987713985004560059769589645134720642688079819029408423125574811671929438820388673182303149395167531251939681249992018916772078214672022354980748925346682272362179960851232508289698211673405798126246964277384039035302594023352450750381035848558504001243417050779910375030333832052825498673739835855639085034713502202573817719589408739983214554615084501238361501007513236276269380532793071680299422663078845537489063630585094904416371384952533195415551348312488160452545438463217183562987733656520817675877712005867775302833166032432513946130429018185244975316554603294794941776135747524302314214061269384542690299254305406549614306232496791305846710218184333984249749710260868534249513295127368611756968093992377012977715968393392299835135293433840783471503174007929803652477348255222715650750524121969678897176608582201563402594681454351343573840321365314657385725770984293294893169658017195344679501046790655392078223659263354927806829746797428363669997359453262960876626048675277120254285189575159689998850908501008491866116673532955276176032487387164425564985889238862916322260676940692237700768446099070353165880776638062251039354959290053535799502795226381732268348210272387842009755145148154841693296937864150550149951670680881072043006662689757831821156668751717024526614634866808024580559866182456747062213945020988717810752869237964157899163922687051029201372854474249318527849088575012868482709037763035230268597898936538589918738678836379666116094490420160399215420138278084923546695312442874083165423687766971044565670434108748419471430126381098800497143852837655117901663968623544091267420204378670923727823006794091038219521543265281265234866279136423685726985896679805187048958115958511263653043951439516455537312008450880640224500038004815612824897824283717732768938947233316421507465958075526508127782928180668349253602978379691773435665265212202340846127481222845694572602709478835053820215705167992054199568518405962822307923377751802083315299663958708057078999144557728910418738079220721858432254817857540802611804420699112161865812565131114864296638995824993412036704642027045173407406353070029245105010708272104017924645811384807822856180369543135816350680062196491261478015573584625751891435618675111755707555486219034641184218395378248870223013588237900136882597085918845663240076427444795132522888548403017111744938655063718483869983441813198799677631097507407157019875550268931872027025646116990637992033160176092430224987471737674901836657782805377373068769202100733099553369838939645854069128474520480573446467943942147856856954348382071243736963369697688283080840705029975374389342512452442186351025910579885206876193483836180213501385002715281772460297524959364319961532823555423435494359885104258432823383144063773851718597175970754808741839601239637500033094262093439079629095209820784183565054673268167931070473381384876425926258499840349690614240252035143031001749534894009561874269070714448186001670619933867850638384525794802839678315030123765307424048162985706003194907677689247973498127212703044000309945469147824905322328382822591265062229938936395954707179681884347293208747948182356618799308779283656494573488301260406585343272208573793167643880697691552545958193297890463970704368069811486523789744302615863416138913023758009815321534673983810246001534957494608122961884896623314221157009577385922995051175726214476538463371334903423426416869128365208753835010505121271742044564354819241917301908022186488962430985758124013020015828366998902090646885371082351323176544315995019544634685543138510913369822444302534245335813735283726180547777419651579754427977368163475908799089020213611862317010281205775371726529397550027748582856560160471776159182380019838418142947840400001633901479248470062601597113346958351876539727567220098317795628653019959196225129089023427549182959898141801231606050629941675929738082171941698808444552475132771766303337811175364128606181382877961423345791992621806550932748434361049722622067876416653249488834875323667482738968887417784135085442413870951463045795052910022049874125782431900387585536101300480111906308032538739668017752859712909002174760725767687026049693080294455985377516406626318355263857988290756877400440612668763056655447113929070747712354380681211974391827863424004672295102968381595373526286830211297327979875206750685043936505032089445067632774118970571543809467331670929723930176166040166762114534446655653271637931340505037634966208171757893406146296121157488755105707020151754684540926417658717174913595052916180958232170919420804512572235145413984968003957552455845684805839575089810581361821481248495363440291305839668246870882843494606307033670278380503870144057773000752353036491552766171733112987180156574752383535341009437449143390509232872964028832256453075400501831957230514506013685940221621384144228065532189553060522982494896546697641341478450394957911656695574137191244058820067752724918157021475639604481764959358849985248638085981709526734021960498579599912687790731167312746265525836084773043510167485079303922780992829497029238258829651511956251992339353307100497853907976591082117252986895475865717118835473164680452753401467682472351635726529491694846354240943061905286059271141951479833418855479037539270188216169952832998184118003240451405248793789092379150755295592456590445035897307721582037127968860834786461443055913163366617501485988157511526494656862589452017871362431501735570940976880974983006587073642398994788347174272472517897846505768806694935268996870492978736802061311896585850737803167765717848519276256747021071323073032755839951320402177071240824495863997430091305279164143585082448490159346865532875281592777680628111742084244120541285461231557392668846254903005279998771752024175444120042067412268289588130487367663819275354675869865452428770743208804511615158032023097798119990556739215474672324975316721819723355972516007679999991724480781214367839326290521621654745978446997512958591719379620638389033256275023510888642197605255814025867541859886356863982609775638195117423946736551834225841673558533730161606626520556864597970369613643934321724003933603342843634684846365806442181836317850820603038013091406348779044604768731297992603680540906500608774547986707150146389777986355213735825636904213829236502024309994436886439576666179171463775600463463604265525138834227466751378487393517210222767454710526633138377634411235643832085365028429355795708353266775714580829515855487858649543542664098676555558773286305018053395246208154985432337594157248681252471301667509901286302670486982997455160182733780490470085599785361857305098504114327211380225326233709781443395554453782113135245525879337115850564512951307611505381747714522283303484925890028340815553722137736123842645998738779935633391175355865098639630629402919326613937403929884716372164078995675432763373834513029997004063882448601554802393464475688854401628392853751800890875281798030191882252179170233234522128462107201115513032266120621102210889373455505214681455455111272896104349446900628789951710946144804213156137508303978615021440369091134980082471290716496497063443678391273957480890644340006280215092075455048904256178516014976339868782061350103377992721638550418041509494345755381492591584838787532352292475202488669386349232661479624718536370028515654972031828621714721277880814785380658732421708292079426064761368543136636592035877295637884417199573707343478308541408665108595437970668516055265300498964787204130616849504891060125043532759043800540720173839995928611820318031649648204500244723460612344804277976733103052346176642085889042915831796661961550815236851913181722995127591442084201125215804024383595826648754745744835118272047869485546856941113247706626496248598355327991030100260006818071806148144161992249274756220678314666976030964760084985293540595386974090420458386498311779717058469208641313896489913557939296718191604779503906648204311326482136496999651781918111460301341342150482440971109368896405076881668150826572043879386483310541163618260112435578591445969147196898235118522714401029116436268246923781401203876509621339336564501796898504877528231096915537989854811313228550926710226264509185831331185334898637159032916877090113606965324052006446369930090402594587467533791996465250470740768155102451865586301630559799066112175822146111177686989545101618344131861618857128062413865276469915963226973637720365594382888288316973292920699996312952556289373490431129064425758164404368464207103506523732359461254419101688015366569634223357834872537258029302780260864009711943231390984888258594112074511672808916689614914189663145274442306631590618044705877787039414279171403917073608151538943483364705165390419663820750328270162292513831620503213695890950782832543032995553850175891632011945752075214273335133820682510789119895903369276723095256723879786560592991250081699654075184585374658477017998151698042697168264699120367951145570175676323357782358052434969485754880042466949379588457036296051890060693820845100247432848627142762156158410056733416491282728000872043320686423894524559583063697205229510323310930064409137487908772441820360333414402304314428082041617907524441666818408244101173890321661109032941961735705782141731781749523843304651117649241310058203610176568598611495522089435384234514083563781375991549962678221913984418262402036038868990545138103758409471337433576237434773890970892477463362369140367482898855776258218152225566681074342774816661905191085839543264346665983656303065391041960227901402178733153867664546596883805188139547451457052862468771106238026304514408149625791229686945066839487166934014624797813233099608509993088112007291404518414650573240116746880213863695258119374039910391298118094075649530601971511110547844241154999581304082253179233901031327391656583084215962760487495916574836288625668075546831247141217289451727015400660673700137580048682086138692075141516136301153562585130852927046320224477139761546162204068464210071488705503829645915917040045564136158106888875826393966882458309962642816321681917703848141148514126002526252876676183163878324090680200478198677671503691610794098884807193236982427195036841656675421421930523962811253322171785853307136307361999046021832711574087697129032829355368874457172586482588562815617160175561859222752618743654378345245411037351374727295454848821733746239846991515250818934571289222493373433600771977572299810522479262223248142677971473823191722564771043984593641523821698982434660659180653337100521229065031356874926505361723978141770491827306591842157898209202175319749124705031887937976118774820573500803297135016379615756200530354972274965957962164836169295980888469249679028470251175833199434621612472555519804660843574210333627321525282925393703355985525390137905755755254460647616639618712056250180673455069379191481408572273904325946015277591039968992173470630875571346564084527394520201153437306579373914831185884271722273117771038059386575117600403925988200689758885358434878538134474054383688063323686314472639285256003885109744513970539817284143153724632035133281361583808843293372610090233988680973383504129755080443790789460939379085032706724306503257064956800735303786840707002069901797623489259093723984765596976515404430028458402681583647147820592269212571323841146517357576325622098326352842855482210349950551838872156675289286080962913660862108569267419530843725663897660281958331548720337626187499832333307629821451073173497259284193040726614109833892243030547070370320624785965239068338669555505557432689072706407658030370212373706861076720723492898636410653749538344774092371782993260321583522186118186908155714330209829291067698588994543786488860264974400424709123929315389785111328047214160528389085357497643352147731931384467219245627434887454824445207395157794045695838384380272202715401343889392486655170236351728475341753136269436811490562198139988236333859643537955674394490334136422569979683978939856077820257838910520373110276661577509196646116095270233907777404648669136936187762133373657124576014330798375436366946409030713586470068785573110575713731332621459591270721783604045145682223585483990535189711838929951205270448358182081445539352580968899614586606648520919365414723389650327088197190493814410082090532655848738259464139211998230049101715133313786652399584458795400580258693012593924830710188998773013170152267444691230418655801453732183336053158261245158594010904172930885755244387588293966791117340161718797321458055338741479582024365136187013834034146289925132683098638737150124443611118066786354134134453907988242930912252487188908345409004082749025135924545383088790326746631124263035614490642061500618949108681975860388187192697236917809075198454664129558997231184765661825843850130409794255789064600199528548631881050437117023322880593906881802692895889006213843549882112712789723511765941176841508977319253032073316482079869707034936839857155904109541339306504277139813939840270803347153321107394984712366298175764740714888537896624050668244772647093467618470329762519345994603535069376536309699437119869697261431561297229441541085965337976375734680997070145991676832009136645633992675627949963292601024957667171680735862664079993057479515436490229512265325238695792035027418564645672279943714389118031512562530258513954911174291495583270926003325245339783888567713601531850795530826645431337242225265423832452559227520557540924659798081384133729731099215713502437965962599167796037888651253278202800064625005195531377330581972968392913247692239444592050914694100170253070125491549098242108774938851858563286259399508539194876745366667306400114915911755576262297508661292123560452108313452141823584923737958903527660296248883068165007701003590814634448494396429131520703716724825265039145439482903137617499057100231589274379453083704229241620550789046000307073792679985492888237787807625573549625838307750704264031682845820410486479021376718060604069142821432927319671981108821927449961046347395794478431535843792833886158182687558068266093844507590846775587388428914958622295188032334404300119095108906657959160848680023399898148866484959803660341556392112557069327212579625908875125311836646502981909399522645111171916340891201372970033858275242126772972377537207775341303662883467460952049515775276566097605519279846480009624213833643110741183018593035358952684081434222710806664936589935533087793410038988073724357852345336853757769373959524869492361887424723365231642352336401280806425051739840521647629573434717288660522145011320396799328520983887680334213048517284285077609853033021876619389366407269877226476130154474155961218576312926239290458869578393406247085505475913209576432387665179105372552736278501795924690203066100022765871503529341708378022486484431706695351163080803548379963271926578852082418855719454754358115404497748265828007440347508914862053305889154408028752003461682520268157640729796198122713339725316189018782318879326313167653474900165762940680851530224536563149290164256827575417410881116766710624778215288155913661154753966553309789791284076707960142201089068143435625014186110148873428051129502181354348243824433633288826184674237201344295158524787951375769362960181587098085091544604114717486807398730555073199143479084530132193251900389798788055555078456069902686873141081207967749780990474951591055865213048850370118289818480020222223380768545038367293368441715713498964272832896694108443600973301717314397845896267139046926994297499706601711504753242527115320162484398506612457788846548074249159963199937568792371653608919088234877889344833017337352030705138602981249614098913840397365436053746647852520815501120793128825638555883255305555752722090581293490420719831228106970096034317571623644386836929712904572151198537832204776528155490986298540638968368143748551815854129598091160714224909518703202518419806024414292922367229307662549245603679426961841795887141698891313416312644694301559730383403942740194402782938179099427518851755876739798424255283646891414727853493495317653222811884281056759365774652771431657179704766379967860428290342400828849113923621576928811087239424522221760139473458570514432442242563409066072492271440351874296905419432680591877188306164794697491249528646824050394213054814338209126047689244314145866577556427690495357114268466989827853299909448666993877383650415278376743475419192515976875508185664489598827450802557029254687091442512903893522651036858751108103009352745941415859579427351448509732797920852050029588702702975936270117896948919614171257531611464386444312584426277310305767459258667510758377827911909659758849007722040388463072132812794864093557249519610566203980376894302649846824695210735127207910652058298302917940740922903933056592628939374782881175086482819660991687533357262974318792410321593549482368408780381783875154412231604195199772025316641491727094320594200083724827745647362582217806066366187689181543829026535334090868734676200226788690969854880575246764171727630233211556125374742894233733348314282628139531900359084827556679434790016610758177015374431849786951293046554427199962123515126535594036490621284279829397952349321185573500537050935001153449641667354119209183337087487793518767965742103762937711219391330051663817426882513856884934126367017646045298093126630698707068424228009348583058782175203194617582300291154094167818323022610228297293573070762809373761012321533559306357250185508117584346971052104741211106268150325495010464029286489515327685234151647840592178676241037546757957468614947361366731576946974044963245780074334407062407934337557035144483475465855059462114875662723064649475378489445423345479706846641104203595887966768271208984866933141978350716430277898418877895798375415667016989231201870523397721076584803123890053115751449921489437484271118415481926508699677237502365325297523753637750823069720634722957528976190526138518708835820827141428703455159977688226603562886032130745988078986050810630839383085663344417348358475478666738775043526460393346299317002733606096012618869334850975542573775378278890673683643160695727526993219556073506503747821865299340022832002851415049090820474281139236059575693274399557365138369018569338958490793945647683851029370475370883956555981015631212852517138180620416878907241084534744740252964070868917746364367283949868134874048081642957687380970297418119829867492644191276467232279191251073608340727185998664322541606911566124716273028422422562776208844805491826595606531555502535430799194701262915241134898188321263259483916564368999906505222294002510381831337764440288649322633382492519034656182851029587784246371525177455681842560551089941450974739705404886789113745341274523713531573503111807924386362932062965468800000650987055701913885964475666074813967880708776779485914206812303043399842312740134264696755130145561582990781173593023879416443250091342601750979417154990201616731340316253803142732104196921936676584798759246060108794597222160874663924791472521434195367955168742868217106946046211066922713483918677117345238335027232059570995406281424633381012361244476506778753994989262942634104368020557646949200235246725896277257292186239486643386197530181691157239968846439273957630400747389258316865803370052887441222235568505483245953814349459105224974720728486286183277855045726430084711363839343170013138913474135977021703557529435267940258982231271674044285387004848610077701993382978818559560172127282934334466225453577227970262632525150847426599452877544244777618170138026757778763380135481997665467217353815642604576295415423888493036510187033570272280138987280405949389816398202645424836137753490317124532628017935555877499943018422940286861134202295957289415630050850462705780060925936535402778196740061690089496910439830371562651880450403463531734503371007578874433236967327136839559197271271968314079962587440143308812817636560882433062370427042236262716889223838866188475170356294482910758528802161764361889622987417445087077517009502480361528570666854557750682929058769212641975010424865289976490320853079233846308617148482048845503276883368068187343424135624713533080656193390259854345944025699761331882297701874545775727357011577844869913637620875968113876021875655721195210112856574284654969522352665777235033256722665208916839864652401156984135436431319964283388356532433873902919307407019125447674329459771540479745501404481875417295837014451294589485794833659331036157943429414315109437418643072261418192650013565146970942305165316657798969804595646994686603805360556173625596851719694210747812700459780015219342638432734124673450253369746698761252999795947879293403582000421729526451449176294325768211096938903702323711793100717277554237554438545701596038148063345175148119249063946492197640375884796060506388555793875777904988662018992250321218370895775095903543885492865985839802166071112121750191285090317098307467433857392682418788896662423263058350682693665091194148659135086507905023669134762006734251958701370929392964883871146480777260313480389504213524824162815044722607659357329660368093177979445615715353897030099659528662826725904900399951879849752688308001952861682679481114540808788239075352839963461380330124044595139092516504848704827554060516404178580651790706264516827072543906054719666730284794192500411287681656970286465927564979227674175641344659205253264677612766047466541670155234665634587081398032123045581806698412452687758690110625090781457831357160042315762552631344175512776855657151399173936296591181822556371071325687631238456160121486646920475057281290587258960853909117265126064908692521923814581015935288798349022153868666931018795521357583671605545083708157570724887907663709148794918093027505177516250837348831215481418332865432814653673825013609750108915750991463180774250069676185649414197433192568019612151664523699693050887410360283819604086478184747248041988331465759408387308776302795602325859067238336654300237332345338824444316610597703071919728548123446727053009731463897022307369157661838090561288408470564835737891031110202811438838478904542582371011864183260518268041660756643305967418903243670420927962818893358831049961573593286588425028255732048585058643769495439090154473427363136894452300871821837852304246722776234774660917291903958705902435978074397836359922663771707138844804528968386563621246292542497057815898665268619804014029860222591499161597989782094836941106461742552495940562387420767893638766851745737551929188574721358611328514986680550852118862501380142606489380839052714017399951027572905624533815191086633160138971063905061113075166177746216991090963146585103990203988189650827540925553770386436975942933258090596583892311067944707819771414480074789893115953364104764691634737241279882611901510203052314633627633165057330560512226949492687488850833154802371206272979633946657203854482444730582651871133538284976326057949813450518785814034083208791131177724335049415336450065697184901161969690519204412364222584088643909189348354639886270561905710409767595129823031720172168649360130958282333751645071409917887987784297272643484668202454129380383727272874464179838493196027710614408247039045056167115030738921152850735123623591041566499303776845026262475664356654876779050021997006589898554242287401785537192478297098768082224554981435929468684367427150707351403960497808744779040333339129440246625297394136259500781784695448589980486153695953200785056602204922136744644011111065786823482373334728013291160029197447733230169232152069934838913230482320960430881218362571040794534193356976742023578878507215414359857837813901549060095273816308325212424570137442937798888201986655091407436763739768277717576859865114263037891766550345969415513785832255827441939465723652701606428421390014270002505347416900461247526916902528056326305289845932307653202638241269266354488293476107540292348269738060632854555905693472465144335801932958707991414903880364044117265378839046173609533125846028146551272317450895853866451345528636373804986030460090297997314502748423352929362974036561259581095744242948501364995740685161476361872273090410346003575038947032517571555450933325303764716313299829201195067406628939763906150119698667284539979129497852010674686613954744976944966749563919396545339204874931241329920649629186039381984271665689149048610352185107835305230833922019444537735340043705971060054976807319240185402700363546497468074188184384033424307932340170312251349391938932623038014014304359157510154986067758832114691925366646460841780314886039690812717337621299165783704335825507742320956246807628039920826114869805418850291004791313304123632817242194940530820335193392423833467997548508058223856646637073328882660034200496685456221113833484071728748864000818368934681965829027691783456735162539478333311867096337094178653425005299673825429739528578110039460965328814694594441226043350111656112800084115072673947183602380645250045923084216056128517474820086879727589241041713522037475248540155045334588322116863748943679621520253660002836424408349233921900761198622100764353836375012002169531889770751119884644324134966109858183256810295407875305550278341924025263566818109982326891707596620375156758178856242800904776726239447820085996422324986285089170392035385126351911869646143475006927781203257721246902815585403996055127199199080497760971151711663650776413458447663142282180298095824321488743840644033321558114964708732581010112903538736627384410216148758395566063527883088438370802588310795241264606615173656867308380715588153793208566440592697257441825957435048973690237687058946351966352028810305701920007621828510857133051233663060330737607826448164706779951739734777685035013597009415190882302820623029165171591123343230033938692455748313633722496691204258151200696969031803155234473502456264161980564477986817855013594427150156918229421640763197380346260944696549125635652121386140204039695505024975534440799361833436165285176385429462612393589036921899386240677747480084458171990344893818237985718112885176359116844147153109238975451786496704648602722889629973480467762682767526356647295637442482976355512262018343174894271561997319377719300843467609840779311962810507554323363413778467739360135599336244363880507377699191097466607871267099507516812936048840474798538545442857828877063496446354408932145408032554180497475515665827461410638192085972424528115072640708394593925901301996452236236217276436777441000908165955915551811340736921087335171185734212905450826059331735038851336575089096604562808672904680753276006221015939473850240294647630249213154630770015789748355104773601480907728934744102919641537660630584334440225796916834319346776262659015371247038384902990789147136362961032141368730983978280015541495198696284056845011750979650229771040673285869635142765413543394312623462396498452848088890523740156996499137553294945110500328471480027697468608926824890976393378124798406745916007496202054928136344027541122124749711216491043883231874643282856518934643604199143124962970262413364850062974137037525527487615752593320687271810351277913743317813945179002466879873691857270894699851996059720017982607222305914129819080746977213944514126258941091214031047475169600183293595720868352989814861272656952538224362495507871783298371835834139143187579953936449901702605664908126307878858323573300006524308545311294187100880309639009710607841166064015610418118945829394977753189582560758329674841666643461877139355060112693549247895816440491273254255672749191953550536326337956819366519817156023892838701186524931757415339884388946532068566131240666450531510777863225574514893966620147059053525018186401541214298388292682933107635011456940291051034451704376774081859043581215258357036245589597136748897824099440045698564448068078728268358493585138796929298455592175791844723881621393437729976964867164303477966142641765706716937943709347003300051109624670917838522307986547931700538528096080124300761974347995838991168283372348707732181778001602087400823234655995910719245218089430284321733160856177352659447198160941550890458414484065587052571203085762529441448477416730912435544260232865746634366765843404813346201385848326651248531767550212590099373519552136936554188371954689367162122133136137521845501281470228372633639649005073848144335945989769447681590876024605141064683020143698750695381460754379516613029441926625417179983044402989184560120004442608559700992509418694067755157670791189073060158023762891648396685933710025937119570297519852634674357964595385166054679490058181713831833871193150939279686428059653425024101624721750919783345144593752292782197337369027558683148535683264731528583390849589909104450046772079479221655120069389623383697944720599281993444422188144099242866629158993319084793417559412959883611281619724811211556457312040094996254610929193906358330360959904392610383674193026130696194148651548231897912179099802344580644381138637497020349417000099702846029010177521774256576474925386456549996501480629755539491507230380632362155237319911984093836802504607692414759479364768781949208472448289299983643214522829654698004798942913725151329888645166951658279724871856997551511696974129383079600457088633740312650380131798246861353613886430279623826544824985998484985582368125494408445402743868200599503176739542614733782734212131331410657820453477583952836056423534425850885673601861352496458100112114787642532451349355926004426943789751079390487466820600458742308118712176846268844780117294006719318816557990205061470851054756068793875944569446069492122789090992147183783025474213174862409568779779874663566543294084541352514901360848294103323077178389952541132197061698797847758975010972687977294070016060771363221249492846038112684838148427487841442073763965134773132242097673115223426108475183944209591722765403476638059748631584626194935057032820417423672337007329271758133690659841125851079375748722054977964737772721444627367248307635727572993158138753620460422350802196525515416348789148637432152905574352518742396767335994756310076131690806089234712426526854780077986578041185263374525003396839224325815288796262366309890199005740952253383773641037130139304661838636504903906126860345575886116196728556126009913266567846234636875625489303336260273012378026683125695583910142120868043658499228681920103433181177756900585455609697830383792546506748215535521596899903322857914357658420649899988063692254573483084550784377621575815907456465271507299326602567845146798677637699993224971623598980300442498722596821246403739700352699789217260321837657113029946169095131856092894506226557794864061643196453680050064272565019271871811272947262092918330494276963031452908138249686212969015932298167943328604540794113354311836264574887054925853531561087000733512039384382055208577597574618269251602515151588448729515373307890671330174402132763451405326747480227562912218146870461824227112166011490812473142342224965032363293834132045573222801886343287261904491530536744380421554527375399233017828358276709425990206145673291791864972096245368376069304376601508356653408555761758447470166007670418493577177496110328910038844958975971315565910102424055330662838069320398867319027746260800322614095256659458506252845934309556243473902573934894405162405282320367848570741509335470911191012819532673688067468307966995448456355445401865989910238322842347953396201502148940502116886498683616024482729899268115156922095688325230630279916848525851610141973993214139718913545028923675892239899291643709680787408928049958840823270349231755084155756227876629593920604603484013883204159293383863452085530327685726380546470508788183487098072171613162737257964202250160145572024660377928489515985284843219264919657200380805957242432469496455225182288565731878244206359271661279952616759685452730384412526787383640197847309926801597652713080726273736628151893473092981607007553349854395679130041812068335332359826938344066281452293803636590419163960702583915982823223649375436893775256196851531768376755970005695559745494498574871196580493449013784330834043999485115573681279974792385093070336235644380847747998558383544360435910595150582415928491448812023039917724241619740458817629753692648280213694279167308416771261354867594673874986059046337851881067548907911594745844011665374412419955901886329259233268445881221105264424915863421244581844342506709150332169712993913361043814138180610556143050888937892766959374972603107432660725382903526145061020589207784351201136241669874681631909187812212229027457997936648600245206874629511925301625285977281740743346408033866126927090950921688226119899087707602371096042591021771002187399273916754870599047450471381477519895508955817676548743140629171643118072163543109759228761069838418963937316425724953627785245618919334840753053205616419685162770605903525956064231801073667159080231537053085623659622617491377919023070223605472057431897439486522016399891266055973756819511884333253899166951469561799336368364855785642669338196650962767987348438658499059873651795185111260647511183414958673458942626748659240151246198444714853894247878419069877984375437987519112772920652166652203562061763953444795663911533720314597048901027055733560658670197482117794804741073814124631490677596688771923014547265450554075764506032066816471476427415371644628618168338020168754580636993882024619055831638579264527378250645398055770533331747004569874797501296183896520059182532047812437466658432791559754876910016155828802440931625512389091949281100753241315021169345261186700719746475091137995957638272696466945727490059445631738373781125051561079697072361480643632500522853802686851938894017173526889291185260704255239387933015821566276344845102472355883670342963761725486119496466025891654004093004257947816844464276167628442949576248690876295405600077207924536453709784346109237404476358922678793377617545048828331001505527105272125689905672039857068518753817858133440780289966016753602232228792380911985754861176769766052407644829950598506270374078272718010592052637539293781699438057700527554256628356994339111496191059410124091255940917409107259413198843147230090567702829447106535052303151633511233571953983694016304603569432446733109675897344278732432341773201357245783507867059345215210817777425103459341850410119026345213486650732506337591694088780471256074317959615215511773926907361473800961465819860074891985434678696328619712266161595163046999161024629726363157873531153848746808392559944798281346314937387470742270570367665073214096147460950862967219897686641376952539364401867948766813404689979298820639435003453524702205209510336336903203778973764832410418139540963348937590198657171257602850394463635568448149761273678018778875381144224412095427056540116608476136375253471247601599268863213310713745809655323477140095468771697686051409521822622137796295062997858859566102458928722092205644190714750665796796853105939806422635841655848754087951785836113626638948265478739588803740620449659859711894279906631899260356469141082928104462210649366300882483120585798146154439950717905379262225303339175652208118414624352657570529462401866866421769840399871597651782646763376023426264559441193368389297172366277487863595374046887092624995636374195923025320381332790460774037359520865815359002475526313069478965941795254197990768119594867700449479969312872893018016695084678538858751026731795506444288132441437181896618108497976185869292610328593300233988534391630616115028271986120868279332256449551386656858308969769289611994217967824766662006077250359405355814102084758632265369385362569942005452306424705798989025011745760164638113869694152987804437903543164780506016332807310636324601788852474716919071265641136629789070990038203419640082264545041764139488675960677693224813024404006885274276676648141683269545346870078322496995281532024983374856276097070054127276701069523255897863747517656887902175939440159614623325902395288092724806822389436909656503108880255701956717494199783639644146728459909740267370813688281451254644666222511507014385295043101841261727284417344785510265232424795831976078107483680121545831394178025485614891300584215202611831868592533980716624611854351206904806707870175758661234350609628451106799468940494623033527098042921247440854111373297124699503742158482659631803992735039761958169584618451652503002038331355943032946138092731047494071690026586462341541006238681199368958869761654987040046801211929193257423133661407663211973407075239981460432991050223874369034613890178791650320178729181821456737863498683799833863116015559923293103716427255960475858179118621949599558685117099195595973460115357845671564847534059500706673583060449459426416474998460102188103679951958009383650584479075749783491947524069578811318619093960605609885011123957984475724845629113240910773690667090074733420844178043882379794442913607551289094118737197620589245887950294756696581335622659498045710545694900488576538589671671682365474835898703829537883847251536582066512456904367057978613980820021872206462332697143565259028026121014662409641160669091382199588645718735833866590133923462141818572657454298008301884645260056167188344504370001912284984597905111979211478722571907016747236331951759490719856242254846283192474712115052512237323240366191443020803450559099920592791011385203148546313192061513219085407518578445938339659102042996049387959129463296704484263740464338627656979275829509786880192480483567535549261584359222122772769746177546191500858147960885869580455089529687749730966893727774827941120668418176552249042669353870900281421327320750729165779858340081989141201377279786965679690968580586826953370259872737686058395906992373082643807875867082705462775513285638112595458883313229503679266564162386926371444497899488192972428199898873771362070270986190991066671070372297461764670781337472253166079568276826357689598540400618830155696896424962860334170342222565524782134507300615249776288135347258114523752542788466741842196825945165647941306679641284771373092535647824776110806051199570900673481755299931048552242393488539004741014789192512542643894190621353029002244568234946885748524372924610495084401593063369306561157675685886234106005061543973709842581639159170306457380408785032442855184751344660834072775212192832785161910783135387577332092417958338933247030331209514638512539993916624203801612356319453115469563412474962868504085893776831833685249828217953367972235260200670150250454177414471395366903385432721183738914256518477382606186880695773065253949693130363471350411858726908507394729210841015463052046014641843631542068679636920085928277357563275442173863114557635794157391645137169909608743910630984602764158910045553770945388110786607482592964052831622806491726917345336249036164697970313150978561589332168241471011339258047576372700646708681788691366482678432261347511085842618792690698033912687413843503964567806053330366953991516141180779532688388802220065405382246624418602020388022954776054068285409395421989989772606917295630210261506044920370961139646423041818087743779595650300914018666265780818389749081699970703925463634033622118419551482071207591156495912090564501098939802056927571575057511561906058610159462860504337596493092208189181467527989338403597418752240571666232031723849313358576781265759524626621880902960213163327933055304983762545880699314066873926146977539285685328675585824936829437012226778325801706877068995017331118675340486723672755454772204151532633117249023803295176754441892107152990959874591152332955338767174986679833404653658996465448200042816336301778011291262046649102874368939114500922428877658900701820683457780974262522116038166979144355898613515357981039402928799895469299367796822898978492065875398707119549849256844907444517499911481103021434767071142528484377038275833027282355763144894102498325592529528595823052305157316879126144288969821243385221982931383170219817548741794335459055308437762041681377351506252039481478447071152765542224515366506330573181005894964942311692087587232502590708605649021853904218704574719902821256550861179388768857282520481449306890258059589488729650918937675950930089051810210976883343207970117970166678602710320185298914326767410358787069748713972881596057566591961349119509431703833689677785695771388959818569722333432766905395520735803510043031422202266060612255124711315416605666594517008546479616305937331247332468566591398406463605422113269753787351357344292850882950530134310820169109403244700952191937171286799176415745020814894282315078578167848714441285399407870432629342880722470676442023457136415483917064016280072276847809373976452746860804376809605230712266431563223428009775677353061668491031402019585078879527986390684946417162179236359771269218343317504563906377828100261030642276636344052946758077482929684649466771253928217874058286566454006330086040212221515582542588021250931276044492914661431757507409180117048556610001428581370530307739028300577373431508268825904335025691886720832768094603295079536701497248843226230140594754790897439900902967705908250364343156237169315587855408852256998886470205517834450364211522324022102889337294794514650394179895513825851550638857372135546179916319890473204337944090477245848616907501695384514931714026849349141558074285107580370207921003338113382416795585020539826401428934643145915421801668243446584784551082875482341889049501171622487694727561824234307082016115047836418452107496713378877121661356030572975387445377044070750158873508104518242884180859660871486582076395527767844425208327277639254640077640231588466781173082414909865970970799013779320997943057955821656525552309991330086625919350559343760461002041331484908504173707314299850038114339628229020913697337403455947681127023045268372064783284845586791165205160086933606617736871622344756305554358108497085327345885448521418930910404217371555967604794896874380693500013271348517562143338462274520345641419720685377892689409869652705637978702337697935695717891021970450364352103457957400924444500357344057210314881613625214096989611912346695565659423635921227655523613178867224505796918152475759776954930505947299477341777940703423038526463990399573611708959422863891239223550899340687028811785815659611659206450934273148918127688423168139867158665484512761605387632509797874822753539216805118386952708508738992536619875810508619993899987750651501276123867884436906302452993855807692508675531913678925122491088600507210145447331484001389525704873081312416243778186166841838639721105979468804271531868969743684598221146605252413408011448498763256085563309151744237769572646304711987934897327238744489787581647289532207708595442604090339392521850304042121416135940912499007050132730530741837134959961999685566571791611128235434880456515578886662712652508884215556985944189115358031141295849949737460251540612653958737223077747243762403741058004354027747670613756795033196271989027238630107667840796027126686232895848546775235094582832850442362917251376973752214089178613804375542005632550484608188691292556043453600392166405471741514885084756760059752437569581245839865385342091424988010876621016906388649715637897281105313315494102227709449464142615698995404671298640778757039168634754304233645407722431422598233588711973521924906422474274270456362031881883743998242150659366502260851832055748037490780042038616143916742397487727272303744802161818701723320517269571613282791735602540842193899132341938781104666242332505643430567730956169024874707862251087071257275381610198627897679306282015332305519084401918232540244223593849372837215409608592322137707245741471278698021153848890719493262697919204655404749403807649962739442285918820192746724571386266295763772357857171875202886053512037306432220481198443092486675738834858481966406448078782441536744353321287213407303928095457904115924412439472400829306615864215712568060520341821641607075177389817136070441565774196499568788804567104151722366104509565322763447121922697400676959579638096603185593256083071617512374061537803944137715526613428549283936095030716474475629610772446658868499292782443115955766154096156967083362976040775328089269799494201353761782218841410363671126907664880748669935857952407847092345405971222697263116933910468588819902815140000643637246356452403804422636701192419106284062133700739249705954706931223483946287687391483901115081513227170742606004329625270458004354626084610249206142594079263648685895620461278767055229314907444676064763682422166737429934736715475391874805672897401578034162719737486402700506777671010085255367705462893865895858719831647867729057086854884904792354939570148810298825782437745255390183028248584458098472541689156399196102520157631723196113358299410659477988178515497070145508308783485998817303744024506269178176423740241249656661438935177615225421443435559533004489547201925673960154217342801889340640402491039329609668810619623252515626667456361941659002355758982628425749814481208922917838495370898081799067467975308048181117698880458310644713133419934153878013409779942440556583074716476285663041803304188774564962892544865518226842293747410756492765766861908573801210300689909544254284114830413575270869523929592155129180521688914535836720840196357224200210148984429283130136440591212524220063665675638045254527855952879377689004809056604965528908575195943245377036146103390389555408454539471269595416080369389056145497222846266734489180264819023822085973501689225872546730237889735415812976561763109440078285825750739723693527316918778205260089027164696726618431719644781014063966633435476692910610278058034593931156671026213528000792205273262414658315596995008930811389175870820294348289294453961732045651321841162941566917816864386515466610962161685587122379595850383413921664958308649073763652804108050935965166188796483233173680376663402525713885758472216796111115840805534880383790827182601142657785195836708420793507068038619253378195192781175005912242037088988214370993288950590871909935619123217879343112651222830193066435605391380577757151059111014700030628654593818310615565112847064332165659886161077200361469131756728609071297769386274096047668477835714405459189089786209312374784763643730375304139041320668281995216598709443818368622910433597126131223956615566166047217278230436973620654263149064934087181261794069408990550803494964877158288984290638415570088354316456896769174122473520676730537815840016715499493244652582719017293845241310264037323698769032577855763504999640811632923671922498775554159781697490977408557811624166856419857296808946836395913703109317308617926289556909139715305270569409141327503845543586956662131163568981973697243462250144282162388104392396640023595092482448754460246266943289923228882346219261997585112191720529625040759252516009716522637586066369204564527944480408370032824269058896911292038000691900056704625478487871010661011879193337199473049049351346310400648003262504780090834537136484748754665355649700077576733584380655755805350187900048992410524657765526510209961983122580477329056917023970718266551819873592788044941075653040027477336457349561113610063978690147799498772098518425696286100303415937945790703732271480992150207236149539740570880653757436168704369250652989593025737569187211786924198803776693977140336859386866071021909269948603606756889578078373592874797866031537844921037364949759024658156928170116759264825996693426808442968363717848698596360743146191194930563328713465496486304537274275330913062999007979452491740776149462258457491424526465466301768221238674942385641693661364197272517995683833220399971350862496118016519070084810833723874482933872734512171685199245941117823364368062814731621444008504713512656636389130529608316576955294983591274486073407455364906057263413597661811957571388566421549318861368709324614003327875967925551677925709244153848578248393139814262496716886271210330432663904530199024394281078860268399389369041558091953723300966912498962323747231424636124838691343527619616568282139928692757813951567408086785658464681094195583076653836152087434436628691050526358210211731965945373551019025348440689228853577797350712167594768577920530779315607234863876723303315759922625642382450383521761201405526020169900892074248713936374535081049194739914520175403977261729468746179846464522310921234396007393308961604721303536640524899282876325951436680996581432245831711567762076470745204192322927899575790463340269641441637808169607275428519286628989842464059728759710826423741747522476008422541923838561086381574764833350163675678770417732073522062341891781050468713064349576523748943247809182794883491781651408974243005057913824958107049142239481053358580168209054864420359736332478232153742649814476297152045059682273313460443608742479087885405137728754043826823625212897746720503774142237359922058812901601983121455965792457811259911399497658631323682851562426459908949806766279496562875257351088260991338871958262054038387782104864672708152164123566222112584065157288422521414242802319707524105924798504311181897310958254423530968959571565837948597249648420587099239633641792508108315413628790245854968682142055593647681329682342699837522674990221699511122347938968265581771032654695525759390226571709038607315130773323677713509836836239063941485342115317958804847077433320281197851017707278530697351900690753007355840054998836009645415636483781199893343698515923268952320263131261130140665217622023342495290600197894144453548051356651291262599470862509809197649645626824329492491130848150330056496601050588536846562978836912833447235109474211599130243630880818912403722373613727324353838409260467853376280591130243954331167590041370950568580756594663943078315289869011768689307427854437443342070283353673541556145797153904192080937015758598554097387222797071452850846368544746250113047822191145761028101560981295425607058027300639060639440762705721691307281168623900339357960958819997889410408255906243800929693795905701579971035712245801667454299191460515257213544784911791566514172630039323340293831341300562910811857709741389788120297412187508902476398587752529556445901984503016184003407771596588315229717047460900275448872818564653087820819208012420581698640641869424543455981094150427353444888080434958281205387940021850267720845758485933138135172884755088928766034571449916944330822166842928879740189791157198557284046989803427665820915498511574774484483870022131462488572344012715031091261636167480631116354770316111354061687477387236796171490806989525497561853448789994986111890568164050331212158523622499883426796569325973685203637119828641967460896031697711820274012599231761443453909132263455968461671725312492227125984798929752537307034160994616403228319859472863810537965395211144521619080823950662828931873012261177974863123215750682596950707139967703674230064930495407024201815197553974542954028516397529999357238810056823656971504654772472465959651120598436321209379803520188899810918582700841020556917260802501417536021407142148031715383545407038403072546696094562985815738839034168710945656671497762959199709814356392263144885742600409971993185264549945017660608696198509909974950123901647244694432289203250220415231892991326998080634195086089700740094563481858599884007369776818461532777716573909737319002264927396607992328805276128458141383425983593641833267206608383037322692479177083666773367677437927796099571577601871039140872968576292349589387877317293671967534845103510151515819057502900136283424555202847633785099727630943398550587118437317324068117578049331718670151113602158658137188631393428326814201666934588720567661567909762321359133153817924987849491740456390965030066575204187069322940871194573933658500658702788324451492882654883595419381823685483944293293714454771490355160003718853920414217041576906328780604171632629240926907605355796265745510333937966375851829431075026962565339772338370311281560584779704294356742549510905180377830893409721687329216443166638216732709715509940799957602776149307476081886621825413903268792364106706781714692143968201472144612586673208253904929695473469090314891223661226569954458553440182076195013771279365899596094305209237116544453102347951167434783223071937166555768107372856516884330279114821509712796739317271838823020109028879721025325327820835477375370681316767578846752488786565434339880249626454084940066071776725664708246272693760698520379345402087742945895044955701287094429717964580110683250531326141208091014729529412306987706121292944062662028809959527053133964534706725469753963764412738314985003295356226384639454724513895637894263962295479955566111476531367465011393245017418672071162655354995207456631397920936179311487309298839785505731635621605052529284360582941517884172952619403934942900937286270468931682426854105644841233001886222463511653276371464192057439080136432617678654490007633013386182035796389809225640476438388011310679776559080940864171008253511224192980512360471282838589328047104422411748742111686937028695907948924824578579808633006228660976184378744856345680215282580325137987930795348016620466263075211092403763087289854309070117200692908924226760666855744001355320961042964354034199416394089268377927800547651781542389330017389765042451972737819249962055014352193774528071018014913945833050597824482473463332657040826637917639585580896388590631363827291982140068172136028706981157681172948492689912540487712076052935817158405581741278568047302084841878648737269374333449190238466792200658101988280807044517977555502908535922930523288966500268344239504146385567601819828423000861058784007560639487844431371347836859986949498085871458944963646330488304663250652532650203894022861657757601436750282738556778172563159262105868309351267108887256734942460526998004404203636088598819715848612404818922058715902166123863737832636344753665682177286762849819900660442782320792717582528004037857367411550057295023875757599970516192817804724849354005684126704107574262193781407905946177631121173465646207936250585211730422610046171658367413319701743371232486150729096083766725943228324928474760259675617128067511043140788874076703686170179436720373798356798381010701891168584410269356686631700128973993029464319375845942062509385728554229086975783907152316107356385096590844986579377268284082216017962323797603884660591498877636244748995484650468877547045563300092171661128322660361318955346003945264169243626546802162485279238798016562169962116310927521750480093348562656552443416040322161698899194286443512112115567670626409039833434496445359305269267863042120481904843444558931743159426303814755809093425756209934885959957251086173943959961544233311849737510932943985097428505647158226473518703433367994923197810243273599805033280816247001267375840461075743478996160882488950141199967402572136768498610708428912244028926570619231151200102967003492479110111550100725815892248166544760531452868380194282009319145954812616163699387157970447513763251132051458487879669358073850405462922848381902932329862904252952727538051849103556601821560573738136967496347098561823924077530483870689311532149766526259880932334403116360939149635542077603496090750983060568902202451159725586800379440416954505878057305314755451123212564322272887027982536020598220013787447539376123517121473369696438042615838501021964532867403175606247531185722935298600338985511011454787620335748089712591150585442916794826213408179312269969945104985886671836553050047060555586409533009338365020551286661826172389458567619959635764395472590719637124442236652882708696242184137864701079031607733329928710473715088314243744998991558723146877138890882167720371102198139146068592787065774621934193798084034871100348652097579505178082593926185029941387728459247550797020372444887163497964846395845307259347629126695298126234663590526061408803305746143690373978901344140738814941065277412944420997635711648111387147430737676166320984895307822738263555645199882842565713143658403717984619664141300057554571971433124359761032910841642432331931280991659632518196255416053589087046419834163493043216708430198272547292947592343406397129324527394841177107701372279596430714241422995298867155498788182566054109581655165043410206271610986819532562488070020265138461341817649307226989916698249746784287796945480139627986150131701547206583209356489586461196137819601013139463027679425358934023015302338459321476594393360004637402781095219307139917064567111934698868802835668772803465601017532524707864630538073011308558335256626620676879984887872265025677718144594588485664517321945170236498590769487344308975642059298450200423193481946763197484152804133314229761343187559950362044594415406356165362864075285394692996593930803554121268168091824226117053491250767322082666915576652666223438883458505330683931874712223944771332253734053436145163211069759348198251281212033666426915377103425044104631546938982250458653079007297777385151351484318303940708480797966889574258759451368096761576869879415771348781893806943442673491128220020902498531198901475921847940456443515895399882727946113872569987798839984067825652762406212061476708726910380502290052643631236286598045435537699807189288598832662615057898813505213858586005335249577950193465110401860108179966543858467514404108183568281842466709696741627739977011222549403936891955142706127124797825921723006369071814745742465421759656762892785844977248198195057333339660902067739325932474674164373752735592541799611794503637817409135708266479733986959765236606544165966430486588337098151282079296160685390144896847166125527391157360072834962780819052655772227535357771978007088866697478812517240744989803527110013402792583822982025173688231535773200181769919150388381181150801061785049971038655548322757128481018833675861600871550881849964882440832336410968195960963153941302885279570365414167908344233987519208849067970062996796463032539356686840405873454127863660093523131515602591425189254743893565906812591904141769536577749548718562969143937837856890599947722736336698487413103427848649184530569203307376462181643029395622703426025420355839574021498898263063343690946615572003629966739716013309821274804010705281481015643439595988522551074033445267229671449555199771655314512222772285734153596039430975172852404888415317579943018600854903588624858776767209392065592274524392340801473187135122049413125220990591311029787226971039668795591497520760601826247651044130036863402035226511157887873694145339999914275286264539953923728158915086073005925687609166795238653891792729791181580315086117342611741994878920105682335598902202157193598825193712121017071735230220769602662433326318887515489239517441245812741407145759954595260339921174127474159086670787816300278457815601197720356619961044288266690556123315852785125645143738066505124184999564790183103554997071306557607873695509562904890865191706850287693305593333963873814079269891485695339399861179678852895406450691903580973493153668106411834519527848978567733373980268929658297549881489217626423430505502921512940101183516610502575719427620907092522557888701103877398241271215124834391004310852756923019814207973356942609452726287960374327043404152069639931884811129695665213073898681015919851591725023769928025588750915963297781489469366978591502748729901614391508212474524937245076276340735183793512572935475608717481634888009969295738991964355259519315784327179130623114771849349396986630636130197296581438816902026851469635608484655251682197272582188966933045602973409620255525130575027472025490499603685064560072855905910470095098105271918936268345432504106528755642685571744473578589374209602895903046554706684958119049855743701742332757238024146218699688498671622071906468080595594433360641286562928371099515027103633860686760313385000806773349834086771258684014314050762867138552198211836660706327178046846484158397645818309355511120919506486884024997901692632494489724340993773975885504307138289204209945597671400203971594873004873591463782591681105780749517651113596812283472616389339734449093412141245971796502537798968902717233079643874642727054564684380090169683385760864436060623341720034917688432458776458326742181605342181501113447407352262812242200376957341739292134441440746789045994682127989478417420875506612430648266557983844364119474540872427449979828351550177983404402707195111481658733568880308755158416027471536192726568924817055807340383675921734989838116441710267058130685341494561944100199945742255671278880877757825434425003603060563199148339282979179488555443248258752016943779400532065154086596107176452018040449310115002300436504042382984339388339358101125887279415714220431842524210288372730282655013765324147190704394463215671512198135029694376365727384591283798358244670384533882521887630620878013270108224805227940238613866739206749046326518827894389167089148431749882674945403596805890360868732290373659917786742110318683610757052497309152187478847283803513036156688564481142489832894807251412642356412998240233770079377884932232259120863642777892650492244468795463799494898974832419041296383470766981444321844442184591779758580025009360774479928740453498071474816197575686990287519500170214479934705365598489115403402205176353317280356436693085247904170455977779868146473206115535049568496081144348927220259397587461398592577078702257194210734695025580197582868697695489514621627946677481411297671296458013950949574218352745444921974161954171546698598886595501984170676396074530038087336192073549512456016910099348874180363616756042998922918906848969028457057167962968736607366332299250592236528473700973196156409665154755643801867031442884622057510214817584267509382668518483305794057068250558660996516979407502108912679217521120684725430763508219866555478388679048949895220493638089938648091545036092976555986367244596654427104540381832076904333215284516846760751285746045227567298986302252830855986273055544922377409279866354160770527069361983527672947645293119738792982573826909247593174627862518937818915849472604423573232836066636138704718079841178166107806406561673971432758469550408249623650406431662044877453640240560453690824129939778217240072216610892011481554396819679884126828651820748368739003599437758411246802802852888586188326936542243703890211792143745607019190993996355509400195488657460205786424838662693966248453422311536369027619560790481003197429145158379231119099855913653318585165285708925638689777879686610166630655358018514819497121116155311841962438787888742614961981281323874491168453831116211370953746205542916812346387550814611732505534213804466936600328704070888971175044790994021078186675395891364841560533816845023825426624643051849009996161776250386336477321861466418199322184434555215485746559402883201905118205953381273883682290408599533230609517848760444351691758667117468388925802312048527567673198961022996286350821306799113373379662698830897892700804553353601132515527060895560408420709007013435555032761168431361113894157628717491177570277919275004014752483349682326002632630928453861094600905567157451544329459511034000825323979385142452214907029011325903430144645570006024233318838202677588783033900822992089930160263493889366573102017593098190316339885808587037147111569828893738864188629293036980640357354266419426248229293947268440248899701585101844873523287070526547123265623010369421429685957743120173190921481164848860109620984194480962490036118347847601904172684177500344547549081792585528479754549469883889432197870181481458878264508830633925216128184173829681481752349047054041687593156112942750661567115366943834402556372410800102630970044576842019487945143937940238304868987837101312204617438309556655378389439485953077192551369158102999445488149239013175762747021239092225899858765061092735652379539378113188585621182930734634541757413241732316762463073526127132557947114944190450446625940076297027998170114725911460422650584730402325186250536880565063939054418190484010778440441699750043813599699112297776645126449295173476506577314374846071371839043127113102279425658694128062646340906751372795496511957806920089388966751871078883434526543587853225916174794188314444298664063407074945488028097195418979261174558861231922557042528616164055062355596046708635964281233526826705018079309635078038173158595807982631488525071428309523087161002417329529986043455270975017473821002833946044993780850321309273226453865644550496614249439854490336600640216107375733291505191331739707491932936346267557189489213011461704366316866302315835609214238072085201618840870408011789798217178088236972113627880133037064834183148549128739414404118791736251866849063193604133316927386255530273152080274895904253634885118846169816829781415907449536932105037391613463309556907498454140356180905759672838779682876778401911619916260640830569079246112334217692763808871812780076121225384951662834543467380741673990062220244377200357926366532402630264903696427593282629147887739464574174414685171052966323908620648132331743680770726631563492397807829068734633682632965393219288659353715630146447113873511039082379236399345564645690454482043483158354994755588778117822161473897210681696591848787138559748052090929453157893472696891757081575549757471067726948495935844960263871371311540979315384695852382348774722410478884422483599560364014477775310127991989674952091735152196072277066305121632812003461275888887644796734394261436950296520559372622282055541047726749979994418903017014218206310804245420478324750394891934780371312129935812145858696472407879356186791502540197644298467051198608803606992366949142493389649749601073535456512646578608417475432621855335308466176068460395941452966849244462292270781602954488822502648555888322156220902359009542852799689831050792752372213104101696405657366805084897887696066275884294234246747402689944560004002126743121887212190373475952393601399409494426916931703467442677271349903080477246907986596662906671937858459101106077752092048854396966492671645287951967168654712400781658334152312324639343069734529421296642848915731980394021601809037115369866820466086790518998703072456026351593832414592049242219078175585161385183084531967763472994199592453160454943662980842274371452776067584127234719606678307795404219775724073665080202934778705136919107431096743441824561883565365432086861262417765760295996568399072594282430820141171567176944146558033127137555118736898977687311028281995718550315033524126679869906086721111814051061778435988342887252390615012020243364984254625505395983130773603178720415049237072606458756205483753609618310206308400884933113337184107557218560309045404832678810694630314810888075610683043059218682224268921038682046641369978259006962286763237859815633439193930876476946130789157353528402727325702330716666317266346101399728528460994363326511841385038709632065702767946896912243753346511522506606108404483358123412201752507826660518167770742653605304740440729861407210673130483606488498342992261128072660341054914486763135018892186879203825002344514958569097902349697764794625183034440537805916232578139926596010452702806844221677732538393242817216293027898281421489905647515213965885221617923387540947352010528488386067135919074141377324986156997096774809626888034154307714080788123677948332899706436133938993898028702559216922000141218785575032813405296982886226072994513792831075146777934827060548204939759517316337487993255355942246789777600075849088361796951770567415196363735314025264508305853777226415262667189022334072283124898084345635359579356015925908598862331574775070468796159002901127798338714496184627294403224932747718529997648533507547340436305366151550956824843336334881677945443384339298495319651821154229711785386339208750673903137394860677790240798567979535734740205386777914865650851675097767882998078301920693587501059490422622596125920830913512864586265973796344645217090628848796642643092881107432323010292752394764848254459505126324428306829036045493782296622696641597994679786318805949388653727471932213182888548422469216486261701059168342767656201090914389833932169339619684262667963491405089137354696214806490173318527341489841084094213437068133250829856387634352838182979067990503400785865656217289299392114411599376224276112507435984135250159176087462970144237202335719260039615083998198320575256112937687645011692833795585097847318578942060800566533715147700120645871961267219359791213735681308777668084962312594441521681678725179975365003705025456329222154380230072962468395602475051345993894227915164189912643897266851235889243940483241130834886691731324085269536895253437774307851013433012331685006268511806198577857226933502201141204718121573283594262208084903813739306381506643406551404925126064649877128551801422341485281384293421068116134332019503832003405806599240781097333138442105219060468846007173071709309149418421636237166861787974130500987791016061321252959690780397071458657083351766768178610866852647513106938618838740244469927431730654623508187095853765979816295318748957394180993911753019723845817513853937143132686255635257091214992553859557026826447398790173821435928013465459979779116611831637217800908821446339823105376644352753043178063357044636218881212573699640201663430742097395913716074801689890408330741366106316079375607287837917643039067725209161575795921404155713806338638151689840039063346643112692072567339898980789324971854759483295052256136134815954105124789150860737300342771245198437487384166406522954858745764529040405276610332605268034461024676849038426814826120167651986844180960806692829832519165073489910152539854125229839509610347776110209738194175014339616030600363235028708490937358934433383415787198919819823509067597916597246585361341131536670400915463620559085282037618905438635045756762232079862849871186874045870855715324899035922663671839121856482835504691500213944955852024257912648518326807621975996766725940540853751742871138765670644927215785787292540354512200357536624770281111092143335964353640048167252323278296162898299132618713181865581982667655099645031293347722641039994687594145265126756529082727294019474296788801600905080914997431297324392985021568203396231488633121164815887268013283789467233653927631609305882261477299479208146474481990986755646313454480520507300934303666772261346209876300586257914674811037999970888566817873305119557575559066569775048604102104198219027392513706689895005844431021476494760037213765006734550116220861910257300128271489482878007354436229165487875861967044614931940224507208292527559777021858350489186271044220218834026653239535224291997529519179860185972851505571441494138552945889621753749169784076994092818598127463742446000615999836556311027064761445534958676398073792205569256509527530768229275151000382803160465648398849064061639562348883469868949897611687346977742327255800260438461052771395191159237037400001507808812920903333532130387356577860410929460264630048342732563721242602500583966001738264740207830405977342953657678306794647354735610560065996407251851878973875801359994096647550520031734302774648180503791761184547944039888565247606916011620486784525346543632215425959019234334788472036746923217529934162311173185108892615022256740600356768242294025111826950980727872416476975740999572878070742474413423836159087047479128918418439207880925609288502080383292357936589857406946390579913626404959396493526664574062795996388896602190702557472671756795298440606023996090257380464236038049352519248267837812677594139439012322281710450716439198042762322077662463867948578296484671449851223087909293904651209700795998494710250391686760222419617264167358384966617530368576221209766031887526636242464545682596524919827834167423798981571884734743458626182049220879763721053670560704666232204007517463728623537726765588033799797252682624997702026313733475205005118838011222486923063921367633331351094416898319954053225225770947041679628567146259252950250546607348936817731643302828280113086272555683561188986387728460942067986966965310492550554423156390222730565391003254374016804690138848184626385514941527741944464094625918920445428782482347181825477295923352475275675430658070600472931297253929746922064223201890246588213521753568813421108397942084591863204792497263030748483949277031915414047355804735694046045835197311386006922199466683820737413426259179819105832069395405845955985968884276053063341465501731788435363872219510845501491394217150888194215164320337680843622457704358506025490896598147530874566313821858472026236880232465182742500982092008102597230096820051008392454211047974960525056500498701401539432045299646493955092753005803703989497480400906259501636544868049530432973633892996622759354125857163657190253868539147332571059478232763934919262552187742710868884478020868521093409004925431777352972866744287782365110592806944223729452428767083687306274570249985186598447285552301806596407425569950652943136359011491101247394869051559385487651652319571123731639675139180533859071147080093592040266041318365868514568373823295548858171789573812496857165474302382173532775274382889932012196781762128365240239028393436130725347611431399266528018359371225858358095705239429778339629637786936832957085109718441060849452767027592819944171895906473651696517309874882549247540599623391512484140747460200763980671979188802380772729760379672618945871879553308559063033439719631927636206403244737590855966809585392325388055503746175037319909530810624260157324332975161770968865477676284709121456427949620893596452656171164601257783899239496356217729931589977797153076817945344806930107640637041621070659920789930528783564408476436707868226165398162737358337642253989736711587906578316464734645452333991340423303304245309005983209818252264136673091628993170319921638969821985228964798009378840465727836397484360668970939815936207871394717008961475285168365901420599753409707144179697248369710355288446872251183648542279255277285078596052309431558231234509675009334637225210296834483010208465275983440007117326874906008360401401280403177264345826694103470247023839926317095092234142708833190026192300948930038673690193910748429190980038002394464173184615006332461425044712850817924090517548128740615961938089278487562584069806760321804175721438539268139602272431033065265122088236390541081770941485355149271599034182326055566140142506862939981449466217822233566151187353656580550908209122402706643683595789140225159799010364298499169012811973007913593236610544038030234563658296861401020362778126344137849167974941632733860567237733407518788081436681405726548279663075011703387079803993852536960206749677557754744763787811257875928979248117664663862002383790159415483696670570801175132732444827830352383943493555509840008540029281954446948692991230298402102205345266403390260255437203076345903507953005558723779970667149815884056879404323865322009311529829392692954677549197197665504450826186227648432978702365543220966654612573741290384691846047264045416030620769176760363148886288551521851316851246938480634219894255597217360309226773357909830690576582531586553079106402320648047591558155893967039303599703866509183113603396598977965060137465923987022889499352553428212507694781211188877467055315676832581204577063515190829510404192269442130528298407131154189659689330599322798573367437774623393838405396270280269734019352495356259806667967919710516359140644857127317826112147272252823009495066381017984949812148913220262082920039508782878297754299048298730376290552556515687191372971178520540530736937905060058050386284298036036139554659116042479715945901569149687512878074419501414462169740509811586165646455435817122927925963187150940061561098902337310221844004667584617832018155277685390117419699377876842215960546501372887437429742306642021485865995186867593217625479504722186444820535362198841723012633193141461313273867305980432164833897733688055404895133389323357492968050972439857973417958838671216665210552632307450277706695545082382538594161842485429902669209516197847494121439836494548591415300682862512433898059090299941898222831883462533999188243351758689369657625938602520386834966078300602874024927509364823996915187304301928959107248420298418821281134426811150132460649710854172050138482566910759563207094827754410312231147680645875184891396201277152575495909682253111537818164177994374590596207570226822582153717690933412627566502740424763490448963316974812878385477386508236100605032051435075226137152504698219284174277235583033785609107278634716904961012453456854819319031492736213222471918886576148313261336944432544865024834876079849997249240228424850835914295069387701849694323518847625753993130497413435959101980492493096219430771797357121700432563011685857258722034358342311053316544902048676826564471086962401005560924700805337523237694411735597000834170462248417910468155434415718645966649616083316748479444924650724978648277119021654224688651632742758658338882181737422098169784100388683577988706110913879002398679945413379245692331424823152904992115351322257822672924157697657573654822834968801161138552735116001465217531383015714686875629828729191226395842584003384380013519720928239452433123857780876959666377390790387719186657354859916298853977787847933543616784970115115048079801206268603795197939617468175522357163969181429140022870302108437931157557940181285002186757265708697328593325343323076048495456393378474065023381552692651604189835575852171478868938982488976772302736286592585967789118956797607880540244872090568855924222943850844278698226272906019921144680292924609134955999106858821122196233297860630506285139099913850195614729496895667201333398830436059847837822437928983747121830445337756403507860955775298353399164542044319155404443339527957100396850387726667364705218819157347535664361064881183120539590369783592516346506670004462093409619699542445598948879535322022013432541733929352331844967983102103542211313797240637942300285319533090511487978249548929948388295837603072089409840734507000654376490536040405826850692720906008339856010345379431747688911104659110198739133489000454379270248929988124313223468533151706337052663779931495823535014502046629289307266823424876936267927813605747363990819491067380290915382432204168045725063979969279076750025038533720997614746845119782992235519154595414186501980475628508753732732458524650387611399817249538062671124928991206855109628188519576828508678184338970776284743775533658278881887286436860506833001665057148409806727145143084988875054453555142019967683491097645196597513229588489357924300222373240483069727032232820562661985058198075260610932838774802397844089210176754946550070689332572244966446493604758768952566099104770282038074513707004340498323558840147274192905227377384169391983752268230320799042397751815353875930465300762209611090194388432632592636692298025794858205749719264549059871060165533820424497562128008359173339324656767417459898407646133246160148217325041783606923129002030089204452642660439410253765118773723423295304123103979236589668457375303226178041210531839789188808137180327850722463580229510344052628175204132361185629686947714784632451507123559186373967794632105255289597960011848851889978135685061993858998213780983619645221454480431857445396113707904691802573500721795172370314189018937974526057960315996063375604705635045785796682039839637300180247654940362238411842018348800777433504936420180375581428414687854089574308215805783712377859146293756797528815232252524342595295566933799517803009370296589376407280176630267023439539206289486617037484756817787402261017771048775369411286576623616788876928031608240710681036628780908086608369898450844552630103486880472585694570775236394887720401134261434701792265203190764602198294314254342117853553287191012392886178042394281644240416737715252902430180253781632410205603255873415663304609696040319432668027105012363218327215245445230727306464690840557723919826971724390041814674680502555421187244827946555877496317521249945712299600464088684811608585041079509489131935295016160201056427321548514365043055617022087534841936345334782852590171915848022270339810523719451513913378885484488733357443821443914196795691241115374100064628655615851446628120283853361540580611082114143060608477127486266505371008298446296896525635376296095045311056105232654867342184529550471150839692568256874074101965158843944921678124651956463418035554317602548297733618662530942491290130398414955276186337566579015402531703183291035565836146534531457654320000016853394516839001802041838283293454676522842146110960348685857835257182979503006350256905844103941242094077258497487261895686395482253288915386670585492496364630432797983478398353206098371206285216748077429507563479905806837543164642317625697553830846609702390751439128015134288714577317005134775063317749090223631152654556522120874000704514785968515717702496023676220479709750774171093524894292554758036552582632911814519917958043734150545481219167677832613187161986251402650990257063847208475529255869084595646268958025283839058830733831363264202882891959578525263152280404710793018866385312140691155307988853289777045602198504916957900557466880256461489888244862344336672148749181615853027934269580177334636711060771477200649515012194697860630873892355801629164363909361265503818832023819033957321649710982440859362508674681360343977735901328026577576662603104043810984841262484158764495474634725863487410194891330697129332948168923723753786544065525668354485979733273752631677530941215114353880765269368894453626130883487811801193220228027345287396344163904632839958513441293370515621487294944086867625176268841638138303673484411069949321994298558554036409240351741162146357624661460563957754774992050699141033914614631193794074974188665528606087243556121651217967566167879772352312296622179758003782685113986111385412960600019218951078988787736250136145402172398099921455073132307985291020240002449165712455858492656572444471149345688285539178467170200997784294729663322054594703706881206245267062433508103371084461705993101195505341107361988179539709052827786265326893678695324017457794175895965222322300289989654531981701170342238796795687085193418339311634383771077498265278649357401695221963889247896957870328587078170757140134584827445385564059405904968015665523157966570709335641335220747764472996405788884586431982393874669045234653133231501455400476298588389944300052218104474761230653449114212417984110597628913665555070552240277450896274687879513827071891247683059264698241000358671948483336778665798181299557760327934248591412296536247739687784366111959336661134305959125565660792334276638780115851171285521119609577043018382129627951762420188729735604862018948254204378160108221686617145291329653535121149756992967054127355772319624846610433485325489060638443093907920435338858946937280156183048697288653658511596599859085318207313234568501928048663988689243653902010069736787621906048267304873060596320560542568051906388571555237412085849637186444400768259540757986708881706333475480476665314024630972922610792791588554766060191478860011351918453507095039516013611510390799998998076265054503577925655790399961623467575484311111584042222827559424309345652120103319738298121221653710766172570833801795630790190655962496314858706414706777472556074215613145659412838188792486827029540782073559360736044342519933550169609894196015597218584043338449099647988419942020963622696451187086097001793607500368097099381297758485245685021538361797870287992838923720795330033259972991661303025704139997251722857941561830915894054134643467282199187730488303920903497895089637892603687807292159115310463602499654397935673124911913298012976574693203090127528136161351913425172573970136058472110135346107287449169894703390659070922227048145622395126034441127496776210549493317992607756242988140207114606799810112269404686598236834750960955608242033446847048496219976385402426789358209932043976260650998447244990874503544690796026695006057637558978106446076750628926090319936654844824232688594750502263588902531047493765283623730950115976752797437306480618908302749655496796795232279352952744923685728218000313606172325224799143479781563787467131542869566976150907813585438690275909414824731070849461200952752154974169744396061632255334766616618124193530313133664511016724989739238845404659704196762069574482963562344576539563325136090225188029611151428201186746897355886746685797332731180456028380861138051330317304450677371845713517726602931508536206916448837338236464548115324690085928362824771538653161287384003453176319211524121830976125179210692115177345125937850359018405926999593655749252763503643524166892583190217898796412196591553441608113847735916528472604608069010459087504845268075859856182027900399880954898357645148781037834155978828475253943605425088468731590001197185014672312274313788796085136158772888721991954522168089728969608542507953200309249846164803673104028355444782115305004166777199155242791467831156517227674600057071083236294844569038965229867401629164683137381841091628481433986125391038309224281074375241813688458054077459108718750644973232382259443947037023297513319610212437893316267496261297082508578117306006514750917693412501798663813692058435508738230468409582516807905580663957307731248380923774957351140217712388253025604773161579517095378712754655011570438127454574823709161135848984335985811770779545043820513314583396656217583885837698614970649420388211548090762768565434621749767917446050241832036498908142238227551276208543988645393082605997824054642570616975254839181642282396714872451409283689650981193795899354957907176186527761106143621115231525224817964953063478836415883533912675551485446918135233533627654280416336180374502714922707221264439308370939493288471994232709691888300256176769801955609379344791640014520975508228737629190149153902322265611983239534635490426053519664026514951072171781729329561505874404158884337965797764504652802311932603590530515925115885919929215687869891690912066162576960698062024619609906182453569489024150975956519345925129543233636990649764222363372442901800190630895020338230729656276657283134902264006531719948403015577126062055187964489071776428781614730979867189701768961135372098096429887078891933533477515119482841705753725420824366566276261237599802050718491692868472102142295536773808506743350996492362497630005080870202207263131043497998783491818585770059182408928751741496906500314844201607897659362529764426650109661176155679585225851085763903506151373370733038912159462685465289157886104772566291967704923581862900662016821660501157777051951488850328413854971225906865097780337719104039684601667858159896844615271354496469798408618332045835782841578532924801495405842991807847234406875206385521906879738166533745947751047817630819294030767266800657013259658542892466595485872117374638283537793681876693312252563108145136818233676519651138302914250953759686718445836419709377867084677034218523127548738578745487465174173908050777839043835509936713025255527187011134429457690748183331138246299513727234399340003600990537202328291211429060477110411437528804871410084220395285829688888735012804158485094461765596012991041642254083507748509397312026308499576459344143569902131826478256938323907858870279076741283378868985285620745871153706653600268651156271814996581963664169630066521524054803355174392098784389235058324303521075236508007547067537932207779936708760941410377678073468839794444598233038090874454032011269868131325006050859561318375059985560669268563823793642566056574242181061175820927180849806215696565319445320962410215124641609181177032717249683413159683003868779951844554661211834316787758223903557371753854694119767504921199452606861308546273966297318831047513502359550642442710912187980764857520058150493311386562754383583994792256762833951819068766976537317496224247192742964297331120882709432505282249604035269429883362820346115385619292532177973838355370779725935619268551055711508945224191205058769077491061591923017702763416017686802612171284136782989045908658618750745152100897791505617056371182075486360687885128279801479165325616752560372180066158741525412194870714521165251285121590309071286187385223064888919194346662109326105029008093968672591861380259883165251254716871280534357193373004609338825820614232002630863557585051156552103671379243088255647164344776004627229219599792273490696022590620034595725811295307062191324643639659851550271454330939599907973191883106394713638934325175016009935079430176995559537402572386556229666597816005587549265583723887465897599035588843382882170318471666522689999190319023136604472642681656077058148934295097113795436084033975326100813029169618569202813967953015300343897057346050718033245760003906882571307967910391557286804004589491475847589531654800466341529998851900011983313805485067453925256828274965036034640076121322092171319738925885483034196703134850081307908064840399292955415801033073269505126621690560537252911322855919603177248717418698126577521934080754529750919207108893465958421775007162298079687236029948078939737984306744428800017174925624584560149062081654763190914708287672863720572408826932065370963436004708207133344731619078098990183416896174842203648460930368473738600944368829498186907132988328814106432601281308840845628255476687404088986030929139713618269444920219543964531536346641411078262315318388621378067879324588361797716930678127530024440607947027636070730576802734847618571062719019595802642372453702932592242350478314334480138327548360770908034359770191585323533600992745920112205231758038245546550143364256400131009028677544439706578183892848898261350341967356995454882013212639747004349774234351190975243031026172477271960163964889445138868794169480753168081157372932657148591045583339983164157998868430991674372091919861337049856753213366669064888717759008357705659586534796307136240589355637446794557125980101507591697047625244802476829753918297210349447003219895958088316247422086854340611079712040497956647803193027807086729780240107367544782307402854255010567489823010027692540596237149627233919327731320452103385880122757782908195652272869689248824530394645118159765156544963320184477546225140374565975036726678460870269676072534016471402711924372564003665844917328686498369673670302260365432737393822484993830697502724212639749472665798593603204824680948670915369236798112074741454975063644110854987858300738816628456921131013564249743237490524696650100275662921247493684809022369155044810315974310644567917885417508677720017602213987552099628888288995989385439846534306743368301715394757581550292111277552024502442594590096205428443890836262471355022719379202036877477680590182278631312225020452899422395836802953697843985656636458982706683983368323835780056328359709621941843227631012673118749352240472333922794661644073604436260906734249775565501923011173633602923880246881577193503060065588723450661454701214589696551636735459097973476430684478751579593323437378356784595058430639326342701631832846231211915751446992863768198616490622019053986055142537630309943519402995221097082641846435450372474010534037596146019492815070312345347921508822341400280407394644449902960825402294999574823173043705994068092622070695454319213759055706706404612358208050196112683711723006660848689136496238255418342980560473515610066280268383408055073080101245299931498464919318418968657089619913475165349072072531418782011826550029325294125382063706297068271226205691745950392085858623334561382975893431199768583998752676341008566423496482720669191673974676312805708774957389787272885871666723547759047145547203684698405022889943380182110503012634361005409101616677966917256896907955324554027821360878853889705077142644211417670626686879481098196883171470781829240154572401852355640625579070208470713031060501263826027206412029279190361239747160698668364811917380532032469085304354902684030541923611340103631155019034987046387634727587845807886952478110093831859394460825151143494058091304928533237249963859698181392958696764863633847497257074430525564029602858820156364685492575312021891853516116232338136277136636268209308251839188404509041940081044654230083926385574611189661536413411561917324487309970583804672611009331055782862595159130991629968865345555239586633242358915208828249836937595562704405829052303855275477398100318488498872217487054923677694822249985153998861651460351275608930425822854640126845068720746920530560313463441999810160087491259662820678957913881583722583457304089747942186736336954221548946114997042364212437350614468864050484140444146724471646531542006880479212374983902847692632054166020692112544206474754107291880293972828068114993624292455977201692658663301882457097829305444761510109174682715882432751759899412027863021277955935365709059054814663248341865892630653852272683087721785918849204658000820313189665371471121276716939693955475567571399697474715541877432144657033250998186393534649529661912411994425964749092256134735477758085744825227307397454141318612147820202071762588616698954072841204367929714178802046913724061856252669425717757843877597026259145075242228436885653211981951744734673146783786040429941608772469248612552092156029266229320374639129130918988044156956417731413088655847536162985483740687375020748607666651421010782976171421996542393090582949610034582869492345520817130283648461023953208566070730223630704054847227505098746473297276262908048499713412913568953112662891318106447711102967494936893393032878715435950688692929530528872977005184431281574449234792043455883720013109790414053227160578477783128640591157286492160014541187274986102166795000919643301207189254286104391978279595510491878307695937632628626474302412253207107277699494139547387044034414774399009160847251735684736868281181940027876805882492028621134158872264932070182722470047893940463578298979533755360344816668622838619327895169135414653513718740089720923851686777613473980236546366642922121530909180059711585506715926773254145128036733840287778004318394776550657908144242523077039447440968452802448300109358873109002445742806130008271546046350631757737260154966741542318226360398629397440180379688445518759627164083969195568350599863909254359174505725967473606554436818982976351901686843814408860721891441758880535962353308442632398050866520666216156320899271027623271104918775903776388679675836058739379089067770429770159171973013829329011301241984929666387314061737667455781177819528199969449669366097388247912957343769050039225704086704591779579648749952240408020992874451055391669834905527025916806411526887676907132697715568333242904872190896058839465279885461275891264059757183115657002354200587256800380649525428558739765185845130347773290704132518236777843555400084345232433497543439247969412260521670462120832720761499068936433542832147495653308754737737098213902340856837115623257715582647190140588301802346209447446166232824842447425159976397829386596564806765904256105864030140704320539664448311163543376978511796944615710582797185223278832292432208362787604727596414002162987418446896922504772802024061005575667030088481592054301043128300259831283629231007461834095956412102401936001180159073517421706381085068229474970341400963030372830490689269681684790667016116509891719574207113977782451389966090132879674787111259587015185745841665689983967037375831390291904240982082448100818794776807419959739618056934725588693917699850841317404695387433374948114831153866430493409954589661320336085009026863978655741946398194851349028016993120750448294983611117347498907657068166651580568031628802648069068881643700266769978828148665803714771197136602706257290678569369639293059246664588311886233984318578373910829676637040874052721447231073526111818018379695158822855324628414468948397282592353904423318750332527472948845872110456196199919379506826835687452779566305539267021038798275003273854100120564895375429031125257720021321133599899545196160084213241814357316347855242119585704926501119405920366556855626948785839024939599136988452598434117018399482907343643091955193455042691402038688218125851219982840915604935354144953104758612573563313942771211415067283101202481060477602319419079048437367633150691415450374291325504478541749002734013780020741636478472265631067379973469104403184170153471882575028517329775509944912774203653576992254675298474448019322187030054091421215204418962146567600930463103642760793881734875410955156161584944254948077253801153712486683523940838038962171124647775396394655425976573533016321156756589042077124885439242973128153886087142644073900027263338137273933885021576488754237623019823612039623815722268969400371133462992188755818086273007852046769760807375495784838579116736464818077108373957804952371557728492655634898566538305002390409751933385426519971105460482481120071940485469467869118553415514873860708586780722270321419310791483369719675592891355570975449429018821873695253648398523452733905484584979528054420220927425792447858117230156473712814761399289432324082754939999887339855215622089099896306629688746997015407144086310206112344044665940006448752078516099560186233582928274232706346897137542490168785954811306398843322387436753048089274675001714884302894173848088735578645305421717363855288553559616235576827576823088200810405396945297878827173726366341388463591670925255558703991341547208959875900957330359123860613326197945829949723477819738095556395709719587436231294237453885589170174085758903158524453989505335803596607094485325920103438112419511806731503906552673604357397308866964589097407224750822148806035593879625012852945332512073379287688729967544038169572502768890507309230612667708566392279711443059483444918557332951526850988121743399420954098337212325658051292052740529317831327889214144601888552845053664619967750624755130933851922697406626045096881663677296934419247258960913142023042552070922211131963599947693390321805307008106989193326803812218747965813715106074277086245888956201047592811714327877455648277807740543726706950591759960317494650172558785096189796699759825550883089572328931600541739002770094678355280807942861902354908911795867976154357160776012023577228164476400622229960036821107053444023099990935545636640080683352295194474039162000188566484069010005955459205605654883739827976500419974226551868400636268662612483069879110885112950835318513150351425495717315005677271877219320983261811466084657277567215290869005421376910498424928351395228650900438679697155057894501713353569892611317793576706290242626705650815288990626569553460992948543810995054225569858426957447495264242137037862071566992764110095015595948439380589335324743064943186643470834616753633181912629911848149025849332053931686663102438649541911545683781862271753991994739090439081714051326028108191698218188698984944940430675076974292533995796278687067148570314776985587723815743050880709567530487046620255566238040726211825430825602257825850086227647800813330388524319596055696985885111541708102485854305642831353100888563153983089789751056088094065477469343416742590697040985648399080756952479301234831183040456165826984398488330904624919488617704238296600243168837299231622724577163899085747473774388238567491691226208165327685926289828755362509000821693230373387901013303033292145641215544258005710763872748891867821655570225916973133311744412785997708796660028535282730765496331319998707131484180469838655637784315248075241111324925911381095122834758086152649468569711868741185205023664620971827491426223271873004924463185313539185177020511599122228643017395410426486448496533924696004946249458286579415309922461459965436904535922811551039511523104807480103504942685407768722904255509528866455751550517611461134791048980080825844227419409245571446535945757067278221223319683183791951838098073560839347495091483945434794851648191727166617908405083119710609033811313986355371569596545941249301410118849851447018003917843089920244336301979803502971645935423112837141977274991369537319129563782772690837283080125377224292254936224286599080883309381926461506526817378561184427295483691744395290126587434217994656095017145284927343176227592351835983497412559971815765751320417565663861949816068146260111332612300050741031612860286035761667522266079682437544309658051480496162743774620692995004187174677611956928312034677897019518763832760795133875382677863123161790707444493919013255130328339845866276609449582977736191033848520537391231898005948032557476489656082015923360897749939114666123692377398943110991760134465158630345197663625370168597163164773759494355168097379487795199366072016425477097791715610876490293976779936641814390002394655524559848071163804068512468549761095336696098953981152504201729899664208030819006314990554188368347760343139885649672647830916528981988595302467260638389970989640266695724848694384721481476830240147831674595428248982822148742676130566153271626932895769944413720813161532804986267000145476638001095730716563317611849876459351511978107773259687652011419630289093298249588912426881890459117563419457719308272746986752079981935283497919587506223615376109299209812670244516105683107523809428173058968284491867512208893355302902377906130927775780347921962346388081427000675248818737140250295162959269143215964360248877469956828999757438208987185557627026924178387589057538809257712862291258661887325637576724724601985075814275934802572068781743847960373101063038474828840770741810433781024306597362577399870101530936062010546776557698229991114967534532171722998554410115344383197857472403965516816261495154019820047141073393703118258143337909429899600801933552780163293716636915610463118083405600674364340273215524478559149330003765756943369804856269027919566078668005068166633176179556274309253312010017844118093758650321982543680949776388233498030395851931433151081300489809813052886187376710694290630211362686579459189489414825477681076403212366631319867365970182442287145287443591634551604957594370083736715025713474773260199507670481723711437559663723324886500970431514376350716612004631471976320892505137255375970784910042844664858566824575042501370631789944952023590978266128693933636811436267034298142630410885674639083167038618226290326290756362931006969403586145907401647724728578788031298165265893704949307578139190939830799153834367746745341007714735885203836654153017917076526005896598177390544942893325292947628834771012658601102539223967592426921916385379968306671812492216316849063457384717667455793453352156774595372371446338227399285452963342790800576177104067831714674433874297542096804584731804848244338232246544500399977366375540428734083516141298108229168664678927249713436971841088166996682045872769433352408163875633980724195325183324459374715229554515171470896020224894868844190944119705895423047930647024315206656774954882375896338572938876170007775974148759839153428215645990780356257313338222016465485236940804706936155627742291683226896664484920177840317727806876204788293620772358460808247846244984035908744697989042457695728794482237516299057373736924030379122173784822354883398173941785427004164280220823252850720238971534195455015553617783269291716556777989485017174014009988302080501871361294761119605458977003462560714237512032913165444733143283719881064940215058561936449030492560747866550226990338357936738105168147820880459055170126670091474237144035915863850594852752548305498870452829630031117795920074559350307553445444128616804453546260179941420437039621769929280281940862431014542999398581844075266091242050093577997769142450664665990452535780919518328021909308676273133229390846875581137057137736308370339173768360448039665742182605472579366652077636580199424256329520344889671859454092301643107521478654607333477282540817074954928250774295904926630641976910157949821407110452833504247329387465420873133222280830454886558641802118387951970162850585108715784162413834624113409520795642459668948977356141904963986445223810932633991712843596969924255985964578450165492120884937123225459928407275526592393895520990033376115640725431497593547618002744972867120528487298798122125896960179895045412266151289656832504250509429757377897765918699607023351966090590414163122513546331375430351223129225062614164090528373188558897401074404132166729913200845544976397859317965973582018708679659202900545234447270149653781915801611556001305758396034089109923491977904807614090045781927820495476709115851603958397191670195750079103792378667152764600004485981993950936230998414682868385500737846795708688006463644541620106296830824588784434695767333614492024623239713498947838950628739810207396392011348904198050422200698059302416081797607558977752420714098079897081688344395747976596997886497404910912735170548964057516811168891783860165601507458083751293623787070458156743617048851637529155660982584491144644546550274758317419606082815266162207554444889644642325058545978266565100235514438985648797678392002567014374395046911018668947946141115361562663549170543693313897130205601079755320566961851244837742959733206354297985800970726754017077364714361625899717417051950238769674535006895958740353908802229968129934729356463740788065710189282476809806965917656474452213408948126698098399779484846630027899710927304000860960697864511199753813852439378891650747120894408259016752216866771539710089640760698606809184555536279031089033522434128314664187709046063202235297050229940406284535800547535321966046877908509805448139197333440853049572904201574793013762295565337462926793309532532666384020665030646691062484424277252177776636749271845915929970623824162731604102949601733664650161850362215766988000821372323884406094713660189009874686205904995435028494317207485080513532184109475653653917349634589264536435509738487859712182327206889838632585308546469570465113877146728535071187820429748851744177453545958302737850954051077886436322359416293757803498844066401837535164126591286335515319378886237495201694906400650478449227309132785628858972840369948293803798817423642245593852133322156826780126679552076922397375066915416953859651420614388593906959565334120106775190033166463342751645425905340440819124073745047199443348862180910727397702099644011868784827070217334146374872477652321749796511099224190903087214391970234365369125354279929030736830023640512692677350300444213540219797376173305369450698978111001080183027378137219843857390425404538222159128668176125174406205546901515353649717991609697153307988700786377574027089503487519000443196029940097770072727902732171848785863909244634526983264411200912998951211086487965471402718932646361790904468715725275512892499623175306569025188293124439927454425266320135240922178107567227988635062834071761686217896092080986210219375562702978742892109973905207571308362005360658945896388107271202387933732105148735818887384571347443236814753286887193923844680455250343693391198962628836076524197500968914211580735708018304951265674352961216886109644545915101466788625209224506930468190064726279942645428894890467304989003468310277079475805394679114436331597776734979894403618569561871471472621655695594455273220948999533168621391593098326720584620707201917815008145222295280597455005051919466504271117203970760970768976641486308694471965709671101291188576140727086376365731328553762020945412996528739129870241962140778670365219805069684379416638187113196357862708521940917150916144503486499278120216813879825534133695360865812191838730340460471152995990679861783853308953314307495561856368371085066750253164403178859778962207871475438742513920966376579611329440833310039853306184515989623288152461058459840677035774332982590286790701969058306073199617328249883660716185974366214379344192206090107426204534518758720735032294958792522260327419933347418109927691843240278216746550311734275471449461901322315528839807680343174451452738010819354933909814356644016215024590383550117621700787514033952771601517043733716990315840218219754203884057282551577415034867955995447820241114766964803469593526990011053021166712071103454572632791124047304886107724921414074831430543580912847584527512511601477147761936215373989698535678701954286107358567665147042291877666294196482241148928300260905846371880257376263054882650815684382860980285618670203259985379406207904767168269846032470839347318028316615174575317551319596904752780112177108978443434636224502769191593365161544126769752458268561276836577401851177929951956221663319323364901058284992363959611021585705494791207582623092443057004783982273629547745970911875233347852148141546258929707101049990393964247479782540245094214086358939326384959069725780201447469031400399665462930118343365959182754186031554959946000093848339214907082097182657737762469366721095607230120058349528659132093009972816720253360410236897521668377835983623743483294063996932395868651448174990000332584601179482924355253369645697475031059072834878830534746955637096656137078993438033137500728995087346697899549189203581806948149220305793930032964768988910330346246870177388677246374034629459720739338573129602264152072046135384497689361751942071856027841380029768933484650075962747208155098078427372546831820360279977930438593422737310325038499753133359070525892308025121813496078644027383671321228582249711191355447851370015581746792189329589506815606360760121784480985225891460727534140548176639046581129467819309189894486110168885153337015784947043837494796618011102562453855938645685739936948587951232973536599496775633989874895554128779586081337966007530908594646885226360885816863257101253932031464771751485595702804244065331589326161811378411354681654169003894275184567687629074621098555031941551038753136793297947626897485046004552160037266501395882834537245938243930655194344381388408907704151081348969445862917397529229360438514495577621968426604307674282514958164810870022589538485327265115119068530409269640203584087660557408398405776821767427109124703990708774167850626691031949265486134388438006205111972901839423511542697983931489519276383251998980991030005687534033042607035117552245644509282841715145561218049157673921833397789689153661482526274568812266132832449203562145623857178413212150500880439281360568291428646753347553378337392152007501251938902665091484049395337101835711167150908666288657768769486242111650477957289655852780729354516335479405031575242351893569065587937689804804568484546153923370751514107763439732448401344724059060183936985930086018312894510983278172513979849609568519664386853663337605929151884239750863515261524270956502099650427960244699444919253573739859247430618014892402431364641070346878517458945167223320419124986284309228935716097329434929147984753330098090246222381072801182092668347451433955876986852124462720641948001903997286606924445499208189855498254949830809259576587712174414710659327978326396001900980670169985252450396122678800125220210710944289775186399570387220217695707114172304924548638805044619154468748658592730565455051236478956283719958335087653602524011790721431733728127720498889274642069288135120413925544153275090096995393257312785556605660321591014029245057539144062420535679554982830603107584611351167144060759604941430555470306469799434086750177144411715363159182500752067230920805371978616022437143157596169810445834052310701384299646376791830245610359009334980377287863921849874644229002096823871164625433080937893793472289447948298843401980415109833544480606024982435620323279471475224638385308910826040878199892616037480789724459455493635559150626490379818504871573450214534669852987241270311092637657907526360745977815749529068191519011401164076437977436265382213944839156541318896197314996594060943506231880977188534463160014834170920422896861707428668714670351343589125847976580126319520603867261891544327270317788333980322398194564206891712953301279408551825112343016670314615373074456567310083290330142752609372369646386159588864162446028023816197764956713969672202066395782926188142196689093866442448293096228671498596714438666671682772214042783426484296402521966322748453595132544086334914046035055786267684825601574253657752234647775077379280275996273970636588455272186357815807168174801152287832540165385555863575612653203665160237634378782748947058173365689936913576454841945712445755195378598498012280441737553907604142980678097518185417070863387971845254323180127518100243672982390186006875470923521983553067024184342835606075764862148408375116565688915141292481474520635448749136729531264014524100500648360015048532540944818212350990034425077796627518775133850506692033154952574640256424960642783761864913411083555883576562964457671390542552839059900547340353569835488163254470762281776569982057353433860849494848202294838355028390608135373895702086737509170398222135999073142563031214517966369650560851969368830068772421841579855913527746408010467871170118329666847207161704278298964297290423970357554576787752532792379768248397843726421050130161535993889022899390805243918023540532721571341260850602000710755143703260852234870070148811859846295422368863942453537031932616438388829466521464263964987166887050032241544626163816014671872313568771136771681503815897955698732565835716111796833136725775896256830960150493839801328153455651419231092365675060997259109225935795727553869105505099764012138771215140578630764124415357172418338655643685046332228529420343858594639840454286819280130389825315343862727967172080437717993434618788826646932700858600960391139256134719072204177404662555340583957284964257693465704726104627283844399170150958693720835814488841848582149831889644369792019647865720871243677207583661992370443767368589773348568213633951968201516315972666175096244822164621229692801855072156663704425076274870873302136466048294143811427964503820767526779730484687430583464603938016165772966350775289349808024144779983772297221381359977500798141173693967707028609358575171193387526176649726974197856546566512565977955915048966941673154562074127164389802807595936647846157561790799281870239193590838250000057256226825771052364210730875771460424558320332693987413752147530416972109344735543597175568519024108518808039256206671589976173110526138678751057979961756681327570469235249780036661691078993534893994746536540739841458447978978687527723941690003546825153176666122867436543096785889802949040975880249840964024142554130334299435042311331526608488537032474092060328533508488898772029832651811275923820806262005313867655909042837833031129918024889662144674987820270207608975204437468275272492365060504158073635623481440302934011891074473919806010588560156210550574171336010423548194597821793852269951980081379529719267410468703386445140890880356823151313344435470054075340126231513387861393862579357685119466153540607720021315063329499837083083798286006596665403048999868655938237043651208315494718683475031222000511718097355696777215876477125783950366516558319132935205744765371296006523447946511428852369412457103426526485228149794365918270064907197014055593768679551567731146538820047012858593382921195427983118413941217042703091200718208765461866893021168342630558954428029442244122962903463284261013214291492656663114956677954911688611931023919359210790525610316239791055837565721589955013539865767661258691583032841330454363229014249795371659943717369860113249159090557218424942361819822349367804317224551735919854462715131297399869990998255439577968916582276354131860758429271757021166039592710190157409975630014900597535014418310772570446792845413161704071682853833451141707063257847903946726740984467827314940399948572305713564017394783621886033769744636481021114212490935975424541798550620559580348310859951886134191582657556710764407272601522504738146534127970044632322167891264127683784839724455341762534145768932674082456240491007891140213703677351233777275947296075962190406196635235621296728379646177580903244220197035986563219349773631409954492325463473049684771895269858033098244616470091353506653597780108560146521340041816301606446586126221841186102871297670751863269461261322370969734040587935096707976899601561081796888847428620462993351720614309941748166076897274540867204833542416580212498800493593494819474071294690671917246456483776183336649398505121363064801474328291664376806312404950132549131945095529072068617963622551132376189363414124907958973989135933385113043705003517836588848863259995330591208461072243319372324901948902860261199604773128420172546024348913582361741993653363616401883677382725791950026021352616941346816560538355383268640781508071360770430800320088518967792708333059662846797531845229763784889725358974017913911751810531844936704243991554777689077010621415218812700930347660963304578744476413485006693421127786567686896915430241500763922886318359921185776211638702923755448872701455101454205638757819121230968574255559549120062114572414979784633877158248526817505622081527417396272717078153084493710603352941833762654425876879064843211695213116716084635184399782387648532623749355206585174209969539130583106880178323264558857015746405993404927091169797612804220779188324783545751520220678752829300370856872791446030298354195012907972870693743064096772010817338463352539452763510588450883814326116014833840442021613297617794483010460667660593372633197681389089099135907473996768852017826248761845688505119420664680931616869143287638436603981065436679362346548372751378719821271553261100079407039638757685397883124659590898922037389350333143940994444848173239898339594633960627186121890887282307683235032371236261451077170083014981678965173889125159280267257687664157337844815598773729730842059659641481782585239048600281966114826691230283445705684125185147397307799137775636295937244423210092698914244220313926039290402488729690409903726792797328823052999155293025580364756737397993960425537173964806886737357823058126320717923900024552373671805740888463553400021507103460346818907225678951781573259865890659090954607139058386371080487642343512605168742725106141839700093466031592226821048323268995548927087369911407110236295968249332649082385506679504011251642256993404764374396273834323850151026222569172685732242909670431818173531045115686502528989276222944743950231824308438858606732939962736122716089032927912876922029414666198345844703719344087718622040968699130598802321105075433105332551654908037131040850301126892806012350561202063789487096731928486390054819213205191329193567466857168471028195246748231265124234363071479788997488714983706858425887865715193268367021012398661608511499979461814918361022149034694826564095751461541981115740639433638603497674435582434590993377637256670820272131012004213331216039371655313103941200482818383531841191054618728982636177135444026386613022874425822951475696908758222165487309310763099398921509048187904240992137495761005624899821158626427153831699950064674519715496324289653248854800516404740763049213578253436365673891596198268556039219858028190008956739970316803074202820812795773076841882020628710181518606217473812363355016522687156004148872999795782960170000397554337156902241070457799618412860791525636356822149801838035911058870413040044599871359757414272749764454572326732541179977855484813268229322444724222115757772626941919350715857301994148322959003480196944151227818030867125510876010745912201497740455590324296547722553240260503371846672594039006331860145996224186468736250097353448124710442841660926102609803047981450690480938997426680858161028610512270419138690810455085840048448468198807346920909775945899370523741091868455688360308839946503510877370542325793096300385263720669042026420748754371158143388147197273548135095641736986355843098757785328588605729901074405619688587483781813197837082561570209622677164388359224798587487845030439829242648547008683355714162407143321044102816933890811181130083884732499859399257176587329637227362904082915908227832386488066417304034998302594775419674289002424131343670747637860739155408410314253061583089228820931675649566774888977177502060424761439642399600169167141752095842038625353209697733892700823816417442287146836722145028164368290007084191419681887550084943036996517726478299106340809404082387138063638010634309966168009354186680395896259686606030038146905337922763021133069886582221400260270812299798793422901026694430980417243741466840672302340892199683875229249660190607805839432729347955410171560799635219920288137374553637814649991082334276379079907750441927171946789295453688345346667282903027008901277747122181633233064988718848335941351739039229254977624394346888994226731220140246257523646606400779581129049052825809952129106003967859924433780394079276773759040794366711251112226345660685632304064405683069807867869222828817653500997583686113745991194967058985566857502509825125182155724255353204553265828672401098043858022758045273957494782970264287596380672884169766820398462884257880333107420387478329087924768675839322479116944867368479787772192395198425340015502665198151221810692613577045974588014375426013210481136568442052826653064314979440030144349690581223690146612503895754448815174926465823493083148284505535727006640249084296045675140068380291070426469388552647301658625064608167034106533244588244595218684887036214701203621514935505336079147767006595910756957699489150490318347493463369404254147927457141183110106747751739774653872393857703846669331404805937710532389228986351429329449523000408182744062456139626855255263261775003035163098623310496854875300467910403645860282672104272631747687425547192800857084302412643901040005430729022546028504079042433038254169936247408022963968638953828977520401993388582613841040759873168572596221083090042394509471314515812089230641327970152415742594248987577867668777549513089341709712609021386944184283262335423478943898121174139703668186189080124614051678796739267853027163499568873176305582573735411493254655887189986450221101367649870104091803758049340052565283558265363926484585344341024169679639390559947703987475538025073587485289514148145577640891364526367937700992010586508372463027914307276862171984542412132466467418690383929173266896519766569206659822485573139171425271810452477618584675261939923245130373100962649107275395897167795546155095653337824479483487463275015624085831259694327711538112892978750161206478020118250373341027325728005181795122585243780953443107335678075839345441110259418218996261776310666208713312121094000649655268032161023144467359496911175267820984491817992390295528283198538825975121949069864223270780801909301447178850368420220551035670553153934700791650692998052440254792363211407149963790095242606662794014242512156725494590239114589840452908222483132527075590254170150998005889737555099446296084107551765422366292125225040989991720729067176478599443733494976571092161358357149313095360352468785048855714582062937045381312502407924689493703139196865872657284425594139485342051136161187375485140066757952507771636649728468620807136027952001992596850445530509636995698167185674086388466999223674818229555963452512088755452308074044388380797708195997471697410957707164096511144795846915405488915777383737155177011668043999555469266755742653016518702111112111786668878823111348595241211988464079542447488526548141825761491204472893366104586537444205320153013062225550692406907171076319157866726752706701237420481600644100945086167620979356590846218744129173988148633705368349924840886181315656274867295379907389674599606375187670798061387175299462236267274883169502040760268083635462965125178870279172276118612957609980035086836924176909905775597234740940667064912589641301678311360806495105510424441199584540194036072204051272610931848494092071315637779466684120726519653904676181361791195253809737614706990075432241654304402391976933333316283195391753555583370139633051617133349532089138386617369466301702113471260010672059044472441153350583981652674856228739875259074650289724340615692008563054169110190644540782194621427823643638191105534340255090481996553334249500934462746201579924849902800020035456751563093156524794564568246317049718591824342013358235818932652154357443304219583698271936948864092211643167956409753186418935528456782201203279700482491204471012755851951781003965239229452738099318689472715737560137904477981131559057060235874186823722547419787270156727060434381922430492826286874207050514052061925194496309991857600450462302178317434940410794237203252054373854065811087119942461683559959466534175899125959204601471805678168079369356571402117502195957445256008651224398976072221311978264305559958864404031359601298191084927788592588382434405913774936421960907386321539640255937639934887343847171473039795632294221025168872142052784797884515011111741890218787484493503770925883824850220981967955390836877814081441379762451476041199993068750629363740174537568406617461748597262059910297360590938644125367687124891920784537959183712108048491488968785812545329046169174359864501884334681625131249140786790955572082358720139705536330664507975840318395603908583477842137343135747061964897612824954265646267188310124829289080080981608895395578186415483568057485432146651717284768956737826940213026113528546958313366682135136258061967202720310840599205355369707152690229074848717287798233910731832482996076394188250602709223341037608707197242403732374049429725616393136286527319747776317093175159950251947863410790488428236652677959333345307092128386568047134601911944481506013476352483840113044127845239881224707524045172028555555969935258238866649714694207365220678527881378369844756603869461478456340064028073187084755265712927628498554618667582941262896234410599489254920043852698960383638413296284677749827788777209704410513035590816479218635885118880946751256742964409329280355749398622863703667386341079476710190134645860966005678063462249948696341746091447502828752598087214903652249197558671967578461251269846346417892507787292583449473358536345098422685749603887281056985692035295284060633169517010169868068663781005788825608582431694389410126541101728484717463992535117598470395292737076146956145570741137154999202331386810411463358854532104103370577261127074971967648708300671743287592071958961899196992401913049054645478777460663495854234851552732018329853832026971628018237187345387703977039522637077167362588922153749940266122966663546625283708850628478351486049366924942062149689276350001926117282356657112422848109732620460612320953524438911097262256716893112390028544803233333639722394691381371957500972979237580720175986009525127113466836303705594702944985167884989840644530101905473045174300983204664144115697775757211659542363223240873589965497762540900373891771517155013047195766498543395513139996241625317865736706464858418372654587776376821583506019402865399139655022931553176001612584517375967291488586101827769262123123940731742784616555364362335198012503425697051430140487764731245148863710828077057179818725933967531145205532609591165677221566136205161528880528985514861712549143530237231508856390401656593074472414477022433955017325872951901012520279222711612489731268259293556208407396540456249443840507820751580079375211834204921504161378328711678747459672456932855437653265423801423134793550444983530468947210319901778866099065046570627836740991116374742774697918777074825545222987936859329486237298670090625046290838524876029933604413410457472771057519245868779355389926295329466313554216127930856050838613586241146682284964139325141024450548207558325230714410394051661518529729797854536269499949989451302497224454398106175758477429263860460634890899471144821497332429940851063338573771130793422711888170288086912005247688924383864225281883287414825057917882297879014129405246391866590376059067773471342799276547983675276889657939266783333412826877928774858700423103299952643744796671448323228826848011982811470595650101822369227120798437362237750099177829960759074747712896570051137695664778497676048855218461010569040269826657710961064901039021132017199700987407009094340947672806806837673090575701225070943788241834532489733390890900050059574665043321838976100923488629689126298857016585552933489829774895345711868189053937032754349080020814477100533063008910838492113701998062201528392013657146332730727277354601960859571776424105430839032956373616633599670412201705748902346583188070962100415836881823457868068698866877265581370162544290748165041159687482790143747354878100092768371638150653427349022254137445175164284846030982508890687300991072191706470804959482698847904061823541566256241102419049710365093543247111181621184610169762889333472735534578625001468626828995266408490764089000320123186081952033665982983635793615886570338755365838784385420000343503450960526336982320295782568286893888178529887152382582820873887847316655077057893676576038138575473690597015154311537914850481369756552836247371899346561812818739136509069323731881550650128010463899399902500703422928634483730454474132557906329904995763952087464567296039073898999951995928112677320341669815598693560028718376975192214710293250123725201086039793691071057778681918550332542604200898827252546392316806083461617490290888596324203444625498478950434856632474176180541022643219657095402049138421955338804701216294106952677594163806886578661113337449510868776715236047963971190601044929157984747648194149709090709349105278854289979684636148565013982910145471822904233279403354345978855830222911164562565318008513734849497214180234842349026633908684353844980664778793722402320219323446729319948874448583668052042942399285026636590556965028774524769736592528571685265381260252357906131843386905497706384021382682665083224939390899326692197621396419455801853710683116590006504497807178595329856012718919619623910614270103098029636179350580393886303852220829634611693525551302852073008192656107912510091249725468179709545798845030868932838191093808978894432800650685617462417932220808141054438725008598043020956512638949488499605035002324175236601656473665918373425769927649249399790200161002630113466417457782411494895299762213428262386458637866077929376742673296847633253968789105576187432771731702901168074092110358114371197419699884644633770995444585421576224633496606937322024117742440782482266026679261258574227880961348025178528800901423857496905392976351116712140602858360860308357234710222774424635454232076920715965910821321308625247475030737709942467148194261085357971401738824389000013424988522433920431534511777718898729131988141505478606081115485909278664687524939537421426998059900783462148611025214294368213449409898943981277809031897418187800670795359193777606219836521196290841885177720146602988062216070028354258605592781933033941260411252588432255305222075219229488844562652582378507331362528111743900193300874681823683906764871238431012930784556597722161253568998304794294458236263490134074958516979087916784606822900589142637591760093408583349970166009814855440133021763374214200499100815980480467645360309452872483493222314442287619692413540312411027279465180257966742215057102559586483239724263504088408006429826799682616577988082199381800305406232888554855954705809248507932840345312504931004674426736662337213910591936281094381261414707130021428683409929273014709534517749332443008041958730038284000031430983886766453508213479646966008386944212409983748469606504368311651237564265378306835430810104235309041060967527554940571168521163617068333224662315047617741812345676612056886881930268060506562888507059378331604400361098775296599196009686920842354382189424150401495679092200434938154357931148269137449245519804554819090981789090992087901516486286923469823220468827630669099480251590814033775324327172001266300330100792109474401898935545394707192388763823221369732121299316641558972882555054118876593387197996012809782397193053986384212005409680192215308566458364033853533131687027125467057589131697212378843077936337604196013356647356215039890693703507330861259531010009580586120952159972521247955615979957357949746103136192537849418773100933843796995213627266359659841602845579072253449304427040992871295438182946718027781982920160441388028749394287900492803615362591689995697015159995926217024863118654234141736760751275671005603989058846320450376990517441106707786083882109445827739691810374459257119115424234399563818875555724838915771213222736880358946041960362008997591962915904981051529047074516081271454014601776501132844688688247093396890881056581745404442238567814882004708934077281257283256598536813593649551221646572825621846547144337824330329145038896445421797635326662171456184652407464613268696657578918882981772740027848755440902535476106196269538968246895191058717390411565513700971877725943996655300051729936721627859146424700672395938445330440234401977359362439673863843201238537296150912165712025357925287524323585943260934850457043941474783079013046919944704759207034544676167528421065566460255595303595526854591271938771856552717043009931982398909139350590184085980943049504022083191026790042189448886879904646672557753935163196053223879576800588782559659844922057937967703541505864004030550188759068721515655778815069766170456856995454457035736710881476786387246729612049221206066617835000449488615799906056929065616490337099782384866749736939591382985412099525538297562664341845804163038704508038819253807247903015225604385632162345175679098867394248480212002347719565512093596404457776474057237512104637571891436151632645575474964738802226842727865118363672255767170688687005020384504458031100593566949164479846513685542936486135358134371709197788305375450083936889423699973371546517116721290340322237228821383324208237483173678965203791791303837858937249541093711671803805757799333201002099132479435158157040952845974828899244183979369212438051630408485564476585087825274602180729284097141167103180547679522311214883787107454330226614302283256402762950842956985047257800020881483694729534407312499547660143981486867015456462985956232565033605731489035725222839089851040420080040920112581665316745702433796372966754819690215182143548586863958527204794195056007519459155974354706359873873664651381006611393310081791339664058915199681407018550418301478733583485301652383935476326593106985805494058225190587964389364935480302107160839945295539569388151588045190393878836281743794270584496180223244465377659948678903744366246827107007668012952731715519637749562989928301044865634040488977829190751865884692479103672748715288130250571264660803746320533519575108632005149837677837628028383039069650093642234060046331802956956549257008153681595757604804595790673662958024347044885809086923882674799257134331516064815181069389208104042400798265595245114263759149252966214308812545548203574037726705170833070087532766363352377193191529267917124726167914766174521049731203392515258134076674874165275952418226063849658628197342712108485911307102406796560135043972235710271756032279925314885392479995859092572532263589739113110622125099683062716529170397155625297674411319840986164987911709166927440261266864433253288530975565411327461403805501814523167145662814188290586937012265523875326934209085034566662419500517627543415632963888105908790778487120187819037705235001266927483233976192594070985246306688593927329512783189632977906707824092707026399303347705707482980831122529194754716840934405613491240641044084988623210244457863123440361667846224710043079293355706248111530931865630631864120057265276199885925572505433331078201180043043223568040490557583031878518657351024166421297651596713194583527259140144748090273145413731504171779807937926087825575925131560406430386678599169781820646037521406997335129262897102995121684312631162620356821947172699177644886454239785098300406489088183575801446412095169843947727406497746093629211033729643421497527296592332541301033746666769215266984091645652247250506893413150327057357429847168875082888247355373177003928720411664767214554720163061702489879957822626336524730826763501569662617021845506973840569269708842567259892457275167788228587813018716449424501138032162069395358681816096568190530418274020925175666399494422639320394498646718848965480907730412274260716282658796382403141146568304768802699424368121694170789212835787908341424997275435259010866510383917067303391331064330008071879208330833364663105745906028106213279100832043581122457689923931836493397459890385820218480714154928011560466444040846386460494236349896668402719189843644067926672775078571157908164124314511553630271098285543822699217020011988946667518079061667185538874676238342626979645288268932970597403473252945512320463522075782632537362691420683753919301764029444009192293393805043275254498095968713164163018912144345950550079640276294117733128548402826588196505599865126387781067486820510644817501739026248291875012529396683155436288105822451089518775331207264998317044133828374105898881996616507598938612405348489818979257158844164185838195313824748860129905569138661774417325618213245287954721974195689390570671277290439151828127787412133407378642118105210164612941722267026165894787440660376299897851292327846702022818106374396333601053900640162551489570558272551397978877539510507331444023858123034801812263988162262866908469079403287873914032564550421479501746493181794162261868333743880037117169329576767743689353840297902764442825423957617094164983585361375813448057404516262182107772762135429486501111874556769063809846167775600738649154807469256167710889681649147680707063903770741217125218140062700262620016408971667997644717758028886350126007950394752891070406914067097865940823657768815371541781592433780928059150598301190274271816305154436802825646271648846658109238018253356878777647328415680986365967559000220429707427841849578444303168483004004186116271303509729725486225682128564075094382156294027573227326900244105305364956774275669803091275097976723892662159948919687567103055562838173432468848225472045638281377145380868312512455573709495202825159791324288460634451021611304595339804914800391230627702217085612904270501677174418515665475891578793185815387068865672826636768459450603567688738908402466181185339247573277936546735344628263282403590564055532138978542591994156172367757622665240179385773922467122546378080527080458787004746034707297915653526704981718157970856729022697743270033493042513711685509302973625424064155291023195669497420873273045531233526918833042572369360873192791873518152023546736977961962685394641000560230259544067733123057118251073801388212695621161502192122612552385703977985040376524895150990667055065056984959931638051927289597181157176416983082558426476032263789801123061456254428895258201733217024143924839386769690247287860202195631611518443624949081156031777900095067345462827493678703472931630233709139125063731761891983391433541814512474488948856123214413758948067399215385665707940286146905469385700370903675669595717063871308750733488969745646249935824243494396547812790960206566540142370004448482841286033011106811357951353267482109832339590006075343169451766154892337675735878655060564297237630138338290334336535964744139339398533870755112387902352328692004799559378246670750042746871598647538030340095191785427901640167184143201380268541118332126881599583294345732624696204345149822867946765970128755847895582474716715465442947073483829783321943707019988058464259880564823491497603719033926976874622510765693810620216527760343923922722461974442612035444040460871329078773419658702567951329902389678051100345414862034514536218135543259999937627627856031266042088177355616567396511865657148571797842732072267510078625752104016517555639611075801689522889283899845378608880167834710927476704748503132343512011555855723758523078341582409753308393880047505957380488158665543413320380929726470655381876985722054690516253714389100676914721758305168722192469406398538008363054790647907327299506946232351167641164099781062677341032712730382810404056515923181733516009402712257879775026383179132480164065511829641288682625015231636241783370952338264527669699582904420354164422318939477133285899898602715287660460534419497662329196614646383617492610881685377040596152289092186533253679725526777681937456232480877869323565288437279386289135751533845055367422613800964312090781761258918756740458423753343707299455178401856965911292901920095039001351709000867866532377658177872688395499189268905787578087027212904097188343666692109829319241244447191806449324194474760170938563723835033879653977546467259892222048867883690295915685758711206764409591682417487332289668481843659492168939843683678465347288271865749539639943904316184930708702746415569383620523602282112494638001712861043843409974692345733191835221962288173889068880852682276978787698417114437635962095312410380459000599465427941815488849432890644762818870389896785703163162358728003820530883956732802234311344287541668014479862070722730332629508018667973143609617781512659625550813476150249651328173284299340655551355722277278448808642740238003123165608313919526312175094843460771073226333053840199428057495515049934298964763249006127836061347878394328610135496302656789648288203424687848775263941023064163767414109803546487776883040303007802344302785845728958693259791662163092829044923702085248499117953954473096317485363948204665452418386414755034762395858702684626213663813747016971901145091256520291994782226629497042523817127813645978449726131156232049366077292532121275640781597650950308368392613181905347329673363749295448046957160432803090583758489867167421359610902945525887550093508177326857960445571356746359157546748093681580760176159962378076107450759236884455968104442940942863869025845705427329210710570128634797395569232849523053115399027209930655508789972734547329604452842198606226309280875594132895740822900504840118793574073420794462778026254271734626712766490007799236374082655209506783285660282509188721082619534683870084159110624288758436940189152439726764076741544548161918256059454096929708749527043069860520903893947862135156632435827389995639373644946134032146075948684215000933731377037285094609789621953746351224740665994079787560735864732728413167850292736355153812697856162730018422468432697187163388416476459422400670193853213641229499725195077962071765597239655424412940832709602336466291969794770535726534493332541737359588399536022116301464073309143393069465658226978463912392460195234867488346928464560758793877758568370087434120264611104593846750126736541054814165097843042771671135795535991908777837736895139592948784874019551790962543940575511017194857464105750896911069981120472598876238062366583070886282495206319521747997504903285523823473990311997772473914310045253182861478250236806772308585368047157677601664588200906688118816297713222746638604040840446646598680676631475722229386268655097292383060678093552792887102276357886255029414058590673903861544629849189100527089724194699823574923884646570675078350472918518892891292214633580781274214671277663522940207943462283940980659245650458145094331394703094066196668766575985085510470598033251283280564263232527730391626605191777857778523947773105587785265811267969143799108213600952724947363741133309613104521688354784289360868069957048740980036577338777959855888573784995353132216815910201861404719131132259022711684965574965687215084229447942906907381875941312350663544397647996014933673188145273923820197561772495082607481198943564544364274055479170279257753011507505482196631730887244942425028789443395786636021912593098874056988964803249363705610753463610907405289453733170793821684516326026805003726621596485201534547633956646367513484022382025573171966816283268210198158436187127813192036421390004044195701069034527761398841742438001167580142822116068359235304304454445549255028220257483618811299541524646203375138134483328746612914338389116992013769304954887359235156749518945635744570081527602272851930794292839625485351244794400519862187367036851699571359670258467308302459411651245907583801235084947986544286700008150213358071155186326865414084672351941801204243329224684294876008463977166890295420168008648307729918631117337923639967211973378349853196567639937743819936677510623122381554935052129797819291018541546730638628786097548691227148130608986290902190719120457236227049819528089519269116979866279885730903740414060371107804391595036394503043884117800418746668340783395650915372705319317730454643577792912461870468664294143444658652186082227917712272889149339553152842657780998032203160370633181940306359335938720064528769863756398051646912537009537221362766546813053928198591605426081350310102152969624255944633814985851978093616536121514653880943374955294042667555882181431017855473443982413262541830997418765079396517773483780060740559931643166291274216910664255542694160218958850066897810967463939405508935021031625477715812162104552717380584157489786338484838200138933028581028082451745549224961327573204386433867971288635815515858264565909856523037063302964450360846307524000338989309567625793092676717237310505434263535246270444804679672483602162226794820659585319790565521228675728305356248669101857570059235955647856526458632818137643821957680210037874262559325725014535080284435173454159842829901105150236573794497672724766059596151194107523974147912672694936952833182229554873665257229469777309732827257038131390289983936878593927433653450333920778889892064353672523688811687342215171297446470093978989140156674695323071116522005825442809250647706043536416607170694993337534189845278754196148531976055744570944156380360274773754709133309122175592244970891907101846607257454776753282848369256180330426015427285405195025246813488521477254552982119843429130276865010631226699589043304175589936400587584971350471367124224361225906044628897347256138907211502694603216275091568400549940286194127548116601708843569689321233094857097165599928326324616250295443636224122988744737488346168130871106204719498426989091336515595112313281489899702616647666759739189620747650266371438282450999416310128990431957010688688383190497725567679125384191807160289713696379537018510315454286361901802098518861433544704980490521686624501118334366273569022687766125757225623005833236039753618553606766763286497990116577825251136359060156644987007553579736564690159283653436379594860805835653956193325982280831258930108664455557864818228112852120515938358662817276449045387042181008267377815249253597264938528274554696965364361662965468130676790708274806876487146634491707013074415746082748525546193247028925325157787288703630527127730278862734961284926002289404848703960001092023849317753425108789833623470178744280903784502415142205312219603229522642578615974205220363148011201983316011787405779216439478783181653676131277393324656822296520579114946378317634205345499157922393043943006972611366990135877666701234825530211547829787442705137508614327732087246484797324528365929852478055362077053924585200478409084234525769699271649511966870819298469279847971342863431651174387589538672717025797851942797577969390039755044866027506252249739325485351882856834251497818986278750952392798492963747007206615187892803933234965797303401448811283051591554140491538585760104626749616800451023457032678185314098216489409019016634491868810526434897477032424396305864653728019829024755885390024886909831186795633934131810306340569210307789762772241941470634135103937931975584889468559797515249461342000446132023281186424528164664793822923003480556044769426754806594214684936541318136232492031280260580395324159322116690503422578501208417971142392722869082687227716673522018709068008860734839259709740315821088597667960549543822249516334883674022366080102728047524391102102181313314913458948490385832641360029081927493919101593824527265891488324833785567030769712413294846552672203013262274732283219583801880495108510193001914707967264558101916611410159554095361665242484314752058749210716317440075887652157965515291929764027510260308901406038427575764391910325626200485381990534892208187760687035273697075334999422973787236646202334549088797212477118985781957925573280776119221941473647827940987711395899551647725093855180766306748739271044080414464387808912407533204004196654072181464741474964943473676557520189370737985227595996558732834199208096248290355798080554703541997581847502854827877208449124090520557471068663383449828430513618277364810917810216217797420987208242929230005268836598364498937069090410719696164654333010893983810574557668642596477421102858116166487332991870558930311491901798327825211333255764356956801319795600688739412875679746958334372427572430308040954010012157585658960955248951181533172032160756044784847149455232482958813771756559400061139400433576250618160445353972951138073834623433771071816775232143330656018571685771053954486679155333811941303172236561683725420852708742522880601074839782604697142456209565606692813541409484269723194651831717004473156504012743910857553803119913814225445796140493766578558619408309795692754563602993232652312857409389309213000744854827527434090088987604514356881932595168828071649558592532641031382558376597560821359398669110158396894916056495783115604868386123073335127531461600620286805863069953420665783996804564451793547944046683384849353404268393737470869800723096814713705515784987886391140376509465636052896324614226800722079353418914148216788161235429271767702815411625072147659895071879612682096798336467315734629884939183862427615402340579399970009458965558896055620052926923952202465051325053009240436985604938485936981156264973915691365383645163606360312306444693029244557873463649668328461262781090835568924931042086679923355510113636612093226030567750770201528259292002672167733410054074227737608456538396537463765338182482784754291074649738799614164800649172038466825449328317959089845295363074046038093868130979470661508366024471867098982244209198880673794248470663570481181593752138466554924141588039863508208730712166239752520017128196525666823906404911627321128983334747615464108669084018084201223140799593302439385399581140918496380490399790042468809957673550912694112626957696628267075334512727372294095942249647945546417093322010075198707965727386074386063110160371165697519165281253542681916369631350288814954566260121524194792059590891161859257802222465912542236968670255658781977412483535326030182299737557773459479837134442144999214288459846778106433955668479745499324944896063768088906702063294920108357261842888953094728036524053089734127560388144598359411040839625410386303398133521957873966723903424225432210132264579695465277418410458783427777870744528212328234069865969356792450810738177267570924459893780046660809397063324658564287442587299308130806337233797875504071788870425356653892970792212792892210011976948867002801232163892208875023303539623481312094616106231732767581344636203081450736210242372917015491854622786180843287357067175404278380530617163310122266333936226722393545938042646836574270328055220899144794664347133680705133815364493961010749282942046746691940565402096400973426165732977254599639687802135468498605677629082083521874336747982137336060953012604375036252698042276639214561741476416201994538884811476225040581974300938690847168692018302779557518067949956929864817956304627418151835061011931064372852227829974519598210177642344594721741914265498357986076320076294693984384064853296893556082050559866310859838055648540873094771820344954040770890176417346361831167069797651282302634733464347156337493835386512643350988968711276258437638598972017126867447316551459716822647801939653050040301961668596864003579563039361751075716798547117648362391858058271163259281429024685877543013819690219288656584938116150212739549644615897446878906921807772823345591571172138799717163840372982742106871593541930797109078401622379370366352581560554548956706359044346776517701942347101301500705539243588135374363738765931837727590652464280944470436730211081125822777572789112774089840046230910088655611737252108416137401607029010099582997403827169722956482553062192357532469108574716774753592173657127199396182353467633705247793884951515060216214102277214661735086126228723182160544935176197828246072624501554922038349102116299196933821751317176984455841546111184180061843874921048478456799641709721064091307466701235824456894883099971117622629664226583596454569745014536188310787431010002743300081731221462857788310682437842262816826435051170277304701783104892361546264263441039711196894624552022291158250416498600670710129891829977542839510064338168369180564158854235685689607864726865972892442665491175644236681888994597313848487581912590171942628967820166380478944836753052304001308264154002611620210133178336259080739636223378472670425658656501089976223024674458262624353200642540348271981686307179024557440812958277708465017668883240974409939891399261485394946910818683945169574974272666674840028163649323972356615282267970036709771062730001405872554016717766011649988925342432662665796612608583529745329741454152192100727748303970571475721833466095945086247566818545397897208831696162137067016766950691137680787174086219195478315915786748028896272814119184819916390782794638635666904518171266656679779459853162706139276682776659370411767025028643345064152987136477612606863130265987849956887175702494446483145640028909734308845403806232751575667904299190544990896190058302004861559584495984906990735443231079382250026910237563730736435457087546869541731947291979813514441776099610204750120364652948792332658190717863573685012244190412870864061601245461232777641304886877567128914235759510232096112182708462768991593967807811391050391111788854648261277946573720513341976987571516339594730987000054902560564979710543555639462077933069133416301499895813094274371732289431758035394294257535615788685438469216675166834479400167449115796713552738416986063118609002241984041006307755549286406004790188394646280073770700242074248079581944790193605418943372039186715894470206864238698046360762311619866662815194425171387352659704357860517174682755876898415110186514253527526911968304011331181758983565672678476052978365344522037124942989369407364544198079146120353661414572803837297442816790629562292587134135405125220645425360058984733715799261200916763328454160930842890384250686081973286402851602539877066278055180087861136524054116275206334869375506894712884750117848813918574522984156728990332579622157775540070071993955419767574059554903045407398543519662446009836926219029618093636577675032410890684869533020982053557130015082868539046256383773987794118473688565945120926921081017869645857599018779020936393639522777062683437074636080714014344301530985831723454702999031656828773488712363211286765149583690783451461596673706178326806711349320800761282333073803046384931627240484562254004632696300663025244018414894163135861180603581576348693599436401688349169449468489686308269427218127177927105133319201580464934282663735803716865602910133395799011379704943792691345215385065219857267077169046733739286261138609296384317729655705807354026072617466672894824571589658463299730898365967647881941204868944567262027887088983417213681929214077204811209766942700735868705571582381147130275044324415443049657854662960068174859230472782391551714160211481627159428657749749899456022448664298261517607765503609740677863277155948996322615507678583105217493730643845414340989855856550987205695433781382239156162489960926252572051507794572874029858395400656794409442226668476200597196005959678719526694692200260895704987551635426675538201147719312438599078674553356256066003466459613664032933573246482463392342264504210107622292077650796029863674288746073005103104152321264681951933610251358710759137126579531079308971434660522536190501998659158478477407341529144349105957238912369715886953452840580764537676881443129834017017545173291249542710147208942819468098190267557838563567341764082494565465948596783712090958642775105787788688452894523222352005834224813493821294148510041188177687580860497861445476077323765068471353864465260297130018626719769676843247295964471122669780477747959903550452838709886696566249844613933010906510417833260627552937478063940290314238116953476967468099674070895616231937094924382472449651252220827661693644226571954852339818537242731676910079075472890143191505968868661540099166769150666471380952165280850127990578439369917718538419598587631111537759558730730319078089256372861365970462301768513350256421097277390086833803269252794680728793425239406487901647328641020495428022998753637657158233134511753989862652470941505565328954821352135224403120872458058911524294331591442988976326648470928776432572154731894430729126585590543067409366450490779091592258373808721728629019739480513324340193512991009910574770953532530435615314620317154567546409719872601923363500210871607669792903349462434145528696351988184225515262228582289209032187663763068954321062602579621965363538470438580799069253221622879573120365323065959531976740812107354962958817388794144426193551853158489122974519144419938899567022194186399834656214201251335027815528468001928075711090194400951125778948477901706562892847775240071486777314522451017619002896434396172238727984550740907893118338955803213973595859843183406629237862880901114571202325419979260879788326355480502126404783375737220613790243286309368759641783707591227185689348808025654419913284139750716491919875544441824643079531393268388149429770346055763553525084952586558519950902974028396306463823067626352726676332466845900935009387689443699561089314274567148168829840601405578661554086495871805089579960395503856332462320122932954273167604830935741794783646531025988538216851113612596032395425549199756113123502189539379441390172899277153871180555863035422333643030500988837441350485841060786080353037700350884244098802236850528324604705570111827426480757048767980567161920900415848836376989231131878515841795880848406188007158598535889976745033516611054037557593595657332140273951057552602843702217312042210714131788496863805400817847701896975461654702378554583900712025457676478536629200921941068803933973728422583522514456601221244504732622414372946893300721099124421223687373801155274732234419346765327233165799721470773838111550577002192760445864242589434103519313308848019666552725614530902205421525968016481320848390629988558239296499739549305782661380300394431866977090861191060685990207717467883411943465826999095597405869943679920652393150952987378954972575913324287679715730377056727904892176035182706568530861882417179224825967042840312411429560176026537957410947529090924222117016150521880429428794425056570481987210223347881179213451092322017771542593190835652498121287124832178096246837058010005956453722155247079189664732487594617287469697927529399861103909134653800195911229836517534916365421052931560898029075815675666128625195049129720524832324642371387963295511804854301292723968853592983406996550544002317129330547441583184199195107673324969188236703897416529258060489990713520258654986615242625419185446431278012068952439857341910775115986686877803076615023888907420872616353649706556014807291185302433443795811627569228904319866663856781475274167045326840560662947691603209419028321393613798580327920359697365637325070715217513121605791448579448707207077774636180908315801556758263214229099042612444504339800544139817698210220117477317512686853128999639855879723592890037067884651619670719848660023061752313490122974236766346407266129255974762904323021497188547210073030116959956684697728845561019348736833307880923083065430173539086536034473810943858658558810419802066514065847126145848399095256467896959111571456197583568128198827450082887095574329925618320384607928986115173424257770617867490893602255676821221843198761867132122270945832405420521288961705327706640263821009776052445210335969694863686322172709851050741868335373720004196288331235464392033293023948839739664735165690418226999611762342123169700293824325585874151271071084123343031470348416595774225865669742541735070541263005667590068105945686180171035588665313786184023786217466244775729520893263571508673676860583742264775599057442418383644344114012990210064143090602692693418502218630516657369048556070728060745336104723134531479395418918195799641917907880716166225280215906994257561702222684140099994741252544457704366910783254332550104187909116584365274142124965703549700629692540168857045569562976724085808643096001383121286694511241012625954752834119416227497401663931875565375186199035253780307808309365046024743826452178914450025807480132642539461073947585186285690271892355471186312852665966639963929762293068962635917913396842435815035635192475558537953060252508816665775555587674178653240659613847901371232533220129316390072810365721467760275620888200841008661907033496647041297847919005407132382769337476449008777805355069910727397795186503682025141493848146261630304334208674288651027526648447056718667414238829740561786917047625131610950553308517751487434198869587750864496651582394122413763796446769888004959376403148013284683503586704452887524849505096237681535761519484082373346646462646178366224053533573237486941741606779710906955774731713738693656449979975004254187197513862269178496967037083811877628936758820272122378952423545182885353881313774521660048236260207417973839445111718687520005613872691077464442300615239022002574790073671175719389834293138844581677028156551999985715363246659295152062310897323824660121094037416454923991180731419644861327905727141585820317427820831321816408323403234559275863543758727518873713083223921620103478508993884497345865293894424251844978318065003479983552669638124466106402174496823930789001515402663914270302426563708658995312938231258761359805771095807413753366880691151184815913499996292208778744390223014351586249842413024514277765036026145061940050216881158844830022564856627986812603277127622220061158685915020792143538899873009820905910998121402204928596590961451382138893012330518171973037629753802774623743515002004481773569632993866528548417082178820440313819110817759802526294043678230072468443954030767544682997918380951799739942766352867839353334626147708552816915606707933836720038008776783247707868962526896245982942015652756985238177371197260129597040113730438011907616088451430004486606383256418604601814955051069018134950623208422718454590175304842694620177239537746804169815643768098689070703956946688389794930066156741109304115384518614678648737924051487315338776638018236113561384441711861812645410810177287827380655643419902800935065472333534066304563397254728916676017966912138167084869881698163147683017216129473178817808168817935101133409925807258049311149941789383292709683997690115358784196657560124532287978695342096190710584286485688689144521470671382614409506393615392988226062781922796166553316597485869168920233948830633575366260661511372969171354216513103845095940164939714719585338269398175653169618851176054770088109586558093243527473387272189677666950037234981326775839943700228399706181021746646102985037820625417758441821117964090622871979686602607776013764979698191026402733414643892128480800562305418828641805209170935115750289284130368979893213008085205903355940445965756245459666185996993346537677235556521793318890943973060666825319306583235932412917725379059470892562582631191111597772486726766512655712785675114489639371528392538244628071231909796269273293331339007957816379463619032518369286980592650222773679566957466259497518863987101541987875579080172240906813644554105553832739172358579880608687474389859501934265480756510633132147261211096204040009385374316002829030159754905051768250422648845796559466538599201879514410042091505648873740890145864604980790430704064562467984537428320814420776957100988729264180444504237351417454864556568940764014726808052447754334052965219820755763382622812355787561273644215280413292390842393534617893804881820578783511541241808999592304450712772437575624721305966476283880917742795748224882490846135882697594762603641485771504552676940032293396809798349972544475724673075139796337800819054520705308220121035524765948877627642274167293849610533610098682129345456671177484731961242905139971506016495055073206285810113650151769774354263394364431261832550322553248860451782236081763011596563870528705284524870923919229130910164625170288479284044423018265390023064487566675477180141415219583406885440018127176740312967577807123318784497942985722859709539524912915541579305195242906596918233840222160100068333292868058239542050810313619705814095541622745910038131305719523920070569375359319437811055923929442197853073012589550704652581270972629826994534239607901940138409419004625275720558802990027105775451372581281465351512766232912551437209805589124424611770070242162170616109912306409130102259232549630134659806236359630130922588367961696777275067143663135252340416735660348006285482847170563350029950531860692092368368388490961543651437016489236465212568671725398530412902413447653009187127688603301883988976158968887855677613149568786003703646011955198056168979663045845623429046598612170591534379690405808970683231112891104076688346883031392460784157638981573536142731164157817664912819130017760136735929581132207623742984186511179100434076605085701495623886677035674760493008439395601959246937577128668913329272967013273676365174845910921494902009301440067744450785229953093158596015578127669276485286267801001601535236813772829997519325684940160740429465184406259081129417471602928012590703835314868306814532554433326645203353082762025878465556364421435710130034156878359495469165220594042690674951672999373757865709836686988292969682373759402161054753353971775862589536747662892189309818205469331126480171026764941525802527833574911076311249057505595348684959327082353962631211809231155135875975063379575666609850126294515379327186052589111907768160447978236898812915894028872088247537103547721552453047450994835266847211491472430411848164414938284722193776631241783791563402326800781421554063360883942282664104037230711136166061670033447340015512437555071764367816973535885176869020134260743101780014469645910387495522838496082198160084414470377214179224033514246913031081183917895907740974796227639404668326288337336694927437253645289660509905236277768264837040422895301126999786230428415213398936583134467548576704957908443167254095897208175524587148716113820452147356867487231834049609319189684783050478349560249680228416363484112306763235957040806751968245738431980786598940825968881948155659715617201327901970222953753529455748926100347456143413678251185796661242756584551203704883964721112526467526006780907746763826377460314631690809474012626220324264486201380922332024908431742557158339971176637269704625408433516817687519481233899640205641246150694470476088028071267920530088163272058584440125461050172360044213684481769711138930342003232667608294766657085675560206419361219719086340457540434983573141037807099022652312006971282219695651446760137242255285547646032520811449135760081593897481953799018237937185916514194225679027503449724219007926756414614738460613653665924005259464469756375838453217118711426393130380673718310949967061068273631981247662662403770396618790177287974055441595398233084049386436758841287883295972270158158990794533044862630133289346616620437207682480895581123602727591089067783100195908524858773288971665868086633921934237884431072551490736568673976098147228946068894264651319494919322881668556882584863657610211556933118075584008511947538632521922430016985295777761016258313257398867232166199851631115466559950028955920877792027662955906945509683850367625629256218358390096323956691311380314272329551151809616466754356127149710775956881984753271971642199939501810197602757122780777841240029725566566746771159545561379761098056012250974131757512797860572192372131322980348002189644633692840462472376244545290668795470094206726778264579126469118020724543180031837343876721410047825676541320209416344245492645634115326913596223966381404780434399031631613866279668240018299849585254195769859358206034292645053038893219351830161224622555566881922417636397392044317079615725355574066653252318871479447785105308825567808623674044275163100699695750383738041996758397181421185504577240127085284491891598204158875516211649311951595341078308335409418556105960365306784918549174670122830286884856987173178655939476280657392156314490986866094676144908163658395942074297551815833356035249822384644929901059164400201281647492992739321690641168718987784516220850359057924671646987731577034321314605566146774629489045371444104584797697888647471914600091120301106607268005309410091788319522287824217117599420703603149491818821031786609269859752585567944028598978163706833960568076908626545834562125914400675610521094262897603753460060433542750250250601859360688641340837988370230095790867740538975991282704094873403088287502763475799886607547859030875156672909791013852985537661664726668159694391411428855971366417988066911189536541083150023979688538771374911012248695899487681867579790927053684741839569361168710429652563189764755041945413854819204258151158457572976088312050403453876701970080204629468223384371462170218242872991868598713400738977871593267291507723702684597551744572103719262938558161097729009310411967373135555833714418136653804035142566937131780704924751140885351423149269616429929318824212228721649319452480394960553239508273918561038070372685482036224712384871557889961332523973128634286937328172551187482767961654631528273339504598572306054254388549763546386003471949608566605166430917311601802834689785698825459686491557793136267285541720361629088598464034828108721103044724076885971347532317388493002970714049819207983870710904861235125757696330710993880387012041597020535011589007756699586277903084843633800612436711217939045915791989757067226193783408594938641997646451072799236580054268198286012172259413223305326708738183525134826546117079703284798989175491720952245296270987673866617729754228267945939144803496437072426470592918870159035814588144690698743732691142004254991707984264040465501176403319045400167975753476324515232253043231480319797400818161392827459089965578662156217414235067388478182685033345816562620715272566932568799211383880719156743401244381641679690465524334922467206633756232272864059423035470960527173884718601299797340146113463838886736078972613657787556499821507712642193020019913504697134915951840173933877025029510170548072181837956156445150667394156492277079604561999613945763744652443046516485971333167654451176739372496741657459162559475003048819428143857913208607568112593352914018254945616879780425939162362717373252209178130078270573038459710320341254279955595479713699138796217698634664389945069919697932661964127719741340131377746439420627839382277363349829974006727592265528094245202069039634398410401746121049446905766705296025109552410769474158154383861156366566729939368614607362076250857422515428638762587902099656695797088797259337868418870172177806810516849851662457566181367878965603391278750345432009969322241243907462400901690812618856339495625403903847140035732792500963237574822645803858092842841844473331609079304350117903910022432065434329881538528030722373695751176409671788277113827991033918046169911620935175695881194379529725533676087657612736218903966787029666360508386598635557030219302881823544871501424851516715660519075103899452027699417389927525846723640804838996513300839013193051374139606628250910375192516896032912409749535868271697269917012453295674439062763321640957123641798250942117195916940075579492432720204621184433697095346488835956673807978309987572303684017353576773568085895135993129319492032941836159051475914128406422106348705215128516002597367545930469041856493789063875452463424546472600552399545320540335362999514480522920604262450701039282336409771192663177249533629483900599745689432522596896543137555397375236654906453831670685737575069655399171863129689146376640582259820882184304448859053695787173406156589056783754092892211693734449309358772457888516140732041581796394133367007579789664949434187565920128388951836303336239067546562787946397885074088191355706292488667233303861714145483704314254789536762998801406865179781588831824967438588465939182711201152579863569595423098648640317237110224820280919580258976764433434853459256642651478304850275282394207014224355027830851135798726673005815607434356570785939174484900894663510700121962146581144612601494930177426734615265612018511858661005546779188668545622529955875162242753998665209115675086191593162120872080507326818246365440723173458843973239308768486887455479957232411594984197908058361996764355304135278748764917590406574971504922333493104815276852632990139259543304964424592785829943797854205018031881093223601233920996344391310311618302618479195346406882194776591580615899840397777182175854312866879796536930025025662545923151342167215855984504205396595106533025490795307478837503867891421432331593022778043310080736285180913960829372935115086988063765656349157610426032108447812284353341095658172211525423265864608456444568046086132483027015653180146547959967670563574660871202830601393085711071739859843832130306579379961863119006231087816644073736081266075331452572823344812706732524067817616056401234021538958091189055124086470925848764466661263985502395786404021500094054452567601603938769577746689350550171137628778748291977501424425455557945409284238423433697795413629115791976230436718071301294496316246019635914012296025589589501964949049920090113077209642275591918346582321675281325755689987518728031105895219465735748239619714698024927785723600544529123945711064855728329548257917607418321731934145643466236669925066717622876609330261819801114828544877071738933340598931525782695282845627024839417725178599728937979206287705941866050427013522183541302300953302015845571503660199605457451230989527864883674186368921195170151399015175140682029737552694866284065286952965938866998800603298659680309143510095928952293820331234308844909500704678658311815856507120618609910581259182310664071410495029823771705750091766362632784505421677845931985236623732089128935671355095437022244195302369977117441413743506395271229562063433276143635426138399334289150715036832036089117731903727011825478116737936217734676733247927911742687430497749115293512354776752427491733143709557403568969824560742962179886489454368361724997771279298152049647063019369544151061585877962085174477660791685834837709564658478802577707005804850792907088426381495190369312820733429196161803063730078830820003220510214391886576060645723291213162821062329172934658281001798069952506431321296517553280329540770551086289968631736426280691638145530622939737959299236256981528986448948021772265690007419251763559462492234577742005537555002057711109730184842153946920135657701590260560521680478542126926670717557338131384761266889881395081091736240447809090818081168967915266760188627504816298824224541787428770288403706868722391492878859060963722198615336194157686978343367342285355532927195676571534455913566467231908171323749256341641802785745921127198543326109445145860061010600340446976185256068869847124015476177109162017343413952501144856206074999222973439278146405968484406379590881362395150331245356044915872972648420897109400794403345346589847245328740552522663530272308808724234164520935608203694221080476727352421819975900070348920366654192986145002506414310454112800905998448567835718134832469793321457528475032573981574384198565716151421470265608908256091126733590610435372939812896496310733849642626699347921307465303265064808875236058769346754743538371372592718668925692328326268390183986432346925751272226707298122262444294223976334822074632403998859416095659269599109162901012116755832918584072031554978559192579189222386339469207091763008321292781416248282325059465303262200937647953034071869358621818670270906206052447295863863429186380758758904917852979249815520701093015113558072314374843375626167098787511364490518656054846083462710335158694705309607632223675508043348093880615857914436498980583596645893320507870006854522131499453249174862963289977829594862109908968542124583077355998786540066906788874737240548250629051613444935761931687402211520198835198035025447754720916416992295311724664001881636305948214180465795773685696782711953412193147802600027509199480002884090023728727405571528376710029730068604796305106216115206736848304019037179052420663938736273655870281933854287037684028918673212357783446270923415544801318484557746876113594433951329139393257249482598300898901675602075180016014647199328410605924940561685549431870226531317425554947964879907432016311600108711450017663332481408490777337510819110910773593896165759802775388020699957299749124402517710984549370436229404287052681158591723285250873508679927261641173926168273967950650837266190871614820161248813840545467854386026477621475910564398343174900216252291537093965289362396985802741704862327235766507067253227892355671767135154562880472571011544183851931010162170073286769507504727266694779888908398468423076472956799291643832459818280147874998734369389296324789789547125685201773647936863279859858451500486890766501303946349114517206433832361607253756823259881393181115411351441794065234678951401574593674502388780944022188930880202069718656210413565896543963791273837363673963724895023841802075472488458377998497911843607361927001049957103971847873864358708792176374137117349496724956803872767518472351221052503373228982653627228656915482423019287367232532976559672694769163396549512325077989511001759486032994655347431964884694627902448729456819530386915004057626679973049475949662529660766866521305312370866861016228441711565756166932817973119632821516745809015595343447336858949446774534282078043756307800109486474297084011369746697632379332032421540146635604327595452316274294260947219743691787274520687415630210096452187924056701061974942826280062826581790746987228599102262841261361228222521269051708149146427753754334529009331473306968894748953109110322401626241344294375089354682856917439844745407002105796197663487167418090716522528928136632391649722839822850024968259998402477849189847200002993222395329751280878964010306101660732145105972855078468512453140612826315248563286296053908422610715489210275446234454657563292513927634865376598359465037818626539442331382208884491379616457389491273856606627893879053248087815582089189637362185004584976345723684275425746337930984184063337320588572697669774973965880300349808340787023663977271592562441505285053848799688479448060961100616940738219827917138505076905620660661397256234039317233849331719454411915792169106048373868762625413914437494937434431964915446108844101209502950221258438124812568931459811205745781178589449928066622478698495790971169565603316177703857300448422358935271430344484007490260419758940104460167825879463212519537075061620306516505200395371976424919869923898358575553504910673151529681500832758170766600993454777860047193502696874773438361695377285266757239107295778588868170096665840977969187232774799155485577348162031999308668581638023008521225295491619412246751142744737140764325725800671452725987157695712730626115143152215533795698438913720473106833951917921152547705348111074642491392908068565238109200858589704501866145462753340882067654452488938002783108522324396182152794506570183271439417073161008907524316680918167068536863273299043005395451679859559289703902958410069437206344881038360386039424086017096004328837606249674659397058702693838059464752740030420316423288458089209930912188513745083398266758317653705458172136343045703905266601655510351013585246129856440124647399942434503736695758952153497718710974296027119231512109796963227045194383444441338291313577701168921492318504173435177971738673462236944348628456617405424554947905946290641043788921551831443291518088481691525627060881509685874308775338802555325670989960647906397782701812407020633164660154369801556595008060576062815700134163407234902544961704961297951892272206635616201182452107370398148836195313600985167252622149416905452233433264702773658960353539950635057141580641405282239119216320765304535283651077792668180951240391186011896293844232418369660654846156263483866717761206422617088031659132873367342209512755427356030841527091441122146786710936709351467784526581002444826406486561900781559973017534136368992685451954650263332631002192910019474372167745786199790743624904415038942305382259646429155415078763950893783322058819024024372962525915032636364872347930824299718731890061905032637464275339568034372592259842416652289692710024461743428632653858786209672563208331346464391351764841537198633692638197742550067568415602420043622804683384485853916810710195801505043633760481712972180655324042440145595284000713156142568222288624110406385063655597179104738956897738017668249906618023601446931882729896977123367045762078842005438329453388698604339268590040998108717498807489672146287410809544122147645260706820878069248632216956475436727639538638110777457183027854792266888838443784130008850171126897700713561255873808636785374003873572114225131778944745051990350608514103800019400323911653481056532209944366895392007294426965738065123327164426040171841172885484585106385874143904996732000404351068854788137355560371555039631584644154650332470860573071698816015080336671884414037900895691862183305784118404110255640642472144064751201333272270135949534771068873766279157641153558018382562144697540111586756766868128193958590999280051486278631032564645144723432630473806261925882016184457881346446126407930569270867353362137603061798575821056429807792963537017522638760308543862168675351836613283946700125774685357522757366783074192820562505170797630011863499521398816152847275769001156091758072630237778539662404496360342012593067920203209917030363659081456950808086230894015833685331722749187166919237455386334118856109153042096442863569203757222520774727490804780925793930695554729589296191232473106277689506104218709024602197257013322810073841762153528918547463449654307679986194432958673930844537806117571315046523312422931278912719141250535605919236065901875467062184037381515166046039156402406164982316082181760048590819456926824829609475320024645632740577449997606513821100973316530132637044964936337783483131408243444214991708188487208010743628559994574268443413236030453971850464735212251198560575246655296078437468144935282242923325961026702694944681381179604804090076637331108932986108102007503891097151217330798391401152771168910919317126463659765043771763216896535793482091724309326116033342896569327363022085093228918342898827964481676716521675513397632512363728463308133547365024136266110411934781507359064806059923509310852129999791598876487871965356868824411534511996544962049031368283451181428054222759485487535235562313671745064799329552046986744201801070760447755243276885383809278965761981213958234436596504044285445086335145046867297612628430863753604527313367860865387298268872668557757087426423125091480092574669388773122156554211618503426784921806856725048192455430690847251982259976429235767968823847851652838691130744060483746011364769908229896775920708391555094308854458962721139032896908447745650652311705903185045326368129043266112676204525037389636213942938583463957009795129410993510530948729265460889217067886693956279821072215528761542286643583336632429812925851831824857159929869505641901514308254391230384369925179775868548761825762388552834844448779002687308394345412550584923745882710814047614730650769395604526789372912628398603242359051244464100151219482610046448756064309198970759020865558993797897457737972599558361431502906017336904617869425970215328450689567825994029259909499468264410894447652231093212341163592985257036880433808221502583456095597797200289591113770561426274924056750640949348651527086107067925591106475588899609784278578610635275461098534084379646676243532756448762186562115082540659234419345310704210169953538224999650711029633863398133461449364459920816788195566615527451437505861171950402948794524393022731477453144814684169199889249489279817809105499772808259280579116180295841915032001621706773497294002655296973112532726140434802962238408864193506010166570606767760634970041632673711462675376112835165436875497361253692273052343803987702408934132921940886899669854640881939729214224564297546531365363613574422020529507404607378417492042889512897975396733909056314468073752638234340612732017549985180744534366878835320145966964902714758621779657797762150944138023315708370398938762973498230142971705278161089980368042329511300727239360730567215834221997031883986094158592983921598157047948336145721381377771090370522373187391479168506693929798021201117416699512513322009587224148423812708785509542436845501305069790519384242718930976676310008144242176349731923293631441214229528285839401774105647973676392357397346356024805977831562747417467164313099347610565989376778747825082100455499819868805773668279105605550314690850707240106372038280099048449475858983971558593558689998868592534626702640380693084730149120742820160298818900530936988886815044890012447384531550526650417602458945974059534912096928436145372811663028841387026515235501239413216360213896947421998130903632762551392929929308826476057660508062621729446839546278759754457956568060625991622816940737774003217794061044441550512269127799060626653308858796944884737204466148349238562476496862359375993692026557811913754752305532010769399533947207682347627905643521547991068203845274419937776412284275263881988152176523193379646326170950408587132688487444590151369677691780907311026946835394824050148154786972361642380840944635007859632706892794471137096805834585689138903963583800944261316101015907113298097489717600910627564072952890396755254884556819259561739361093758268082649074709580907532272114885416262754324956816856719536355090760178895297930471104025964290975004113978213206388640736923045260799627000658405545210175331265292574435469214338772036241272602309998938309291328594243560714526728224133146028644957833157540266775718292486897983193629676032655833444229423282325492302742634382193576817445932572218045524597746832417853860357295298416183211075138318213989750465841841197107076845812434925047595459727955341410507773791949514449359229098712839997134621859673478048094858538033587883925525036378565833828817375112242149960283301746535880659547908148916778047602312619050128116841397551017118367341039937780870324164127958917278510632666736915959341508623224240585770789201879725430070440597672831158975752325896382453475785727373726687498076584398038437877605231335861148607287753213545822635586170463320905707419586973690255717841645815485566687236074986745230099933875935271991062906566280415962465872376181832321727436944707892667295268338704149650958164031401372172944641028938846657768751032721105368259099627931057897891560458225059035119643813480993750166639881574627575632806163332571812162341612203403365103876352977030318552873010062221962275291126317159651387840763036311054671564149434938006974378838398472705188354276350527386094258847585486951340524299984227636256881525773140647748239358407677726557062207048337882054116741486002959863071946502863211894673125373329219303211567442825656097336152720009004370943732119858855328725046848634946867955208855425531451664344697863688936594711592010863314800441976589244690028828411956497282677484680898831136419700175720569737180370407086156206840156693732186272021525082050036906926134237858260764555918565771310610312231292968712047443239078415555535378865787919890786069434371328404093325812666883679661708057598916939609323353826344029321057845704059919277679962076240544406573021241012321513121752279341291651399533672455841855943905146511422625997714692079049504432846435047635848442758865109784539447576289935432898196045896295161039130242727081415399241374333564813732488803824684364706340207788692366466629093210765102332164194736323393352558506066236408944824119289827593020715651303103981472279835317113753134088921241790389614626795002643873976659470909539753310337016599456458548831487972354480346214556721441044254471322816750630224961341063506443138410685034311859797617893303277807603066817364363586368315852182438834043971543970242911406719811423604870447990734492919863272593139074272026008679713564722808122992000636241739364696477230189498369497785414521195276224776365935427659683764719967680213988690811897364027657164795682205093232215930198651130583502607823579937217870309016267835607551401332105674584478198362982373231951562254786919897488081436177808445094100218374960965632408998806348931483650417059389809317845610897122899861570623302729454433319103027344486599538498372486484092214868006580175555140452073037626483075911141364598496949311180911500630440702019685762210269790805762141762217402329205071889122881744455400439050618970107004764434047077948753721639894584700794326738581221412821976179354597302243324695393933290858532647388739213372376228165818307791861684271518051633913417870857918321402581423393180598887296687682865932227007328966317578380935240223112576703269529094808250232899234863296512109759335867253506783538633749874518989774658736048923574537956272946233012864795165722975073017657771113640524946048848994288212369574396793019865331583870130404716452029599490760764757217426864663958607672935171066395597739130733247013477829318402276980610968905005601076547627608403826314600554251406361504809710101097991009276857000956903390574951451072445181833546361237280155451273958085355788205262678161904978447812536789928696998441346329804131468845560548740097690432130657462393883269941318813088655581318133491159804027834998592471606586429415401928217234724288378006636651309024298018165016846229208894473604774062696149548065104620079007974380204669458755319751720656828084151967888765222351034313578789135780988309748988654782372546522194237664591337418601342735848199241227902015001806744694329845297051849346696792805259465083122520671802247403515538296105545620865409294211814438190678438006561680312907956977767311484219907701989916976715918782144792537503924143075909157723810359960404277622875086172659151400459394175803293134384729683533635918237178726185357524368590004855573414240267972713781551391023617607993850222448256627538649122808458188494880170391158751621689440260269228935170226305988202816187386100602903703498510324580018207323391023117269343110894740881292894475718167149641583466639959589008584120245034183099883234259761552936181016921432834909003409981437288095361796306630703739344045904493017285012458794947587086155977660646788220798998238651693188986347584592280267635240732947938845074394542791145830788182536684875545080146388880244347683421530925897845912719541957405700727243654658938418465144062680689597139866072734885822687035447724362503633824480113603110301448453868630499254565852136773893363712689082547336421642030325743254694834110515403522041291880385644992609245817259685819375892028992921087731394518824501766634125301258883707786611336523358007116177048684000706647932005017395633574801316239906816061103521464067147728259572475177093472069660331614661415240591650514806953056502436208044209782456918477905904359505000965121189277035544637502349097904651857947018354794607025049682142359741887724093932112393583278094516104429653416619493958016168780574541504581714034166012521179158927290489820718425695990321211668402085485814488064319589748987422724511600954313222856331517078623269043744883620230797739870982924618960104832167273748433297275651984373080167104623942851541090391285640861101564258089733525931823359240174872816136215510472573924398266652137704431195244738830528947450814438153048362207210858129799410424640948100046642240770694877262794331282080458943568211846757862380966672180846377362696198573482190549952998453444446510127747448848017867378073675722128455145466474632310811236921204688191834627107224638401158629610263445165298169751621378837552590250662717667856515658573167100546374865314514334002648336162003344980094371548991924804614674029850998855942124462539696059600247242565477852599886050408987879991456730354793774791177399847047504378927522645369316015129776245520631804894361191102716060668627648216256992636242212387738213211625263802011401197174956842822334506651596980497170409697480655666014412756442263876932510137330617932841824348654563546073913272307141831123424197972151965607980409931076907226322069461524275184303718596293295630873007940839012231691196638608917506999356441686913570260606798135977783397342274521865942459382881959749949293411037295573047666734204191465586058334631567412470330263290111436554042033044118558026538590163866181481887192220589054400655152486903019364310170131460073585878955740126847859638284516716774033686581397143777114565417095558457204617977640279139557875967718121252322948497779998332880699614225440244377856276347649468494649647025021711785658062517255335422752151347471257924288701521938298073591523701644999007631722037492486126811977910837154378456071084438246206025410340038056288790978063894485662385685272962440087531506630208663080403180258778680579575710434202704188866190047575423795384904874614374949792538704385569333475492010949154509924997682513010771739389912710721947505215313347671814346996575396818937900283925421514898265073380956911216801028083701686989305503853080730803977986865549538643436510520132601591185930731035859872659328600424000146035698463961263729743604344701589299900222056715745049427416226667438564120977817322939434195425382777785263453031512691476531040415772582400720077336151250815792378927563274786574634905047401195236377685666147574288052643542135716254794071638966445433016936564751749219715768311700560257025726305131430106553160798987605045821211119277317149313396501102805773963515944487426926531428395861708425764046214855532859817472033210925607252547497275162922357340699084147614408378914932035794129339375227792851936693488724400000892201130279321307187945938163687671619160727677032750675999026131584904817836030828547980204869296005235562282099146198513191515036376610986324905347898426338391562028973949871418161097274090186114939615399150812749756141405075758979965100973191454031720568072724313219164356931674277548832229259626905236945924348537931171127795886728372378125882165279629863775304992015366884912093004249391979619730113360194648137472281194409447075221461744223820045086770078618839136720226510026161260813570372145082504086199650347218297449901836933260521100394192621290879296907503090569025107161188973517035503032135592479780150683526273846178746510124049495216449043544211401634989371086403857611042936969898879064730426752035763971696456334562024959762258650966607731982446729821550031102223625254299260962568090815727735819953413676278958798612204261208933752065431743889885806890535422854450581735932013856672301707886376826859073805699431751440202739549318677937437083469995087753710104499095377760545420016815173982926802339555888065235987310625869334154180735501375159748313561354577373233136501325868824137103030911956199947144788889108303869524472616024293312361486413459633740487266523017335149555475715418235456512002553225504377454004636678142850473609185772578694449633251879179830905018870814373743528145615797143174894656822516627327336483666780325447522862455288606913237747039870651586192712552273648170441469983280251935778419713075965345278239081760719204011347973867426487326724210211161641169879851465311098561396958275153750198754944090329616154059388629889713423024534982837177141092764138052320171083853235576383519863335941763263076658858984276380152448730253769303028543736034662749420462264006872801378404281345793805931764053201830019718111478228431408111228492628937608634355772467099202745273525352351825395058846286429920520413108449662802221578437780914524831074145660784756900053872897982044632929308036908256410047703529739765159349304265437378018245632430787806577410599709019255806886444890051677099568823852286243489165096706873445869106177771647938253012497701588815845424995144414131967500740003315032529466443883749723535499784786185550545624248710853067756755363261743370632555635417699611374868902722489127815933089508265811712075105920021157045575099395077768114663871044743195442801276949999051758682714158755338251557361372479097579104876763216077850916489445978566848814156041092882051323409467360268585988581695390407070323105979138820628655331396452976128401452879536298328605208672408896128710313200194452386144150695370701901861908487602688605243245097655783063144886779946544334066068258857208655319230174994056438937391828704438308040507721793413194874268525090976593672677087206097736175385514559418147798908905038243560540075745309149748844876296617064404766266388751513529440816091605308482962387828246046574140247708859243927586001297166884742928175547689346323436327349564943465932096135453238493825082012000166521806148512361875536978276729973080618599770605735062982802041389689902510195747996053754154320061545649293535003332760206813828714712834745090863338740401688506536136386323338131616494810760903404007079501805025612669168335606650450258598382652080793665773904492482313360952654666932064921312800664819346845129435845514525847786062002430868447342166729740760984148075624468668880999502319691889317580376567345832616683980882372532501959112779942470082552557077528618890642745809565057841487783761208028894496064039758927943997693512278663408385492749746752711268755398464342300621353765948308303904765901580575140893767312881611685628705163206864515971301677585840683096303237233856387321174863246582269146948502824571951840689793873802267567339281137502887971308495552390834287390924451112368453436523904804950414153852932674859744031154389951114131379811791345988517260013326663627634103138370893076617897937903122828286623772933921875963873418679393393644443971804701264967127649956775620159382222954249127990681223842797437309507659704194005743178183457573454001105342081367023665158502828200961689592238181571771491444911596952434139756995145339315603535177517548503887430896952501996805287369553501602361221487746733828459422311888354125150479556667116931945869565459654795828172378805697262540058418216973943036210121846553784882153839813566329536176919682728881957960192649045524326071527542046358797789604211695749474012335871904245379865427499479267035009377450900267391363589427219579510201151157671441553662700413902502887384794381195026383602322378401894494707119428276081076714794041176986606757884052024060013933486967352563138301767810938351717351094979786324184091187726277706460842797684648567867421001078614035389101936498981371195219351309875058851834384569193009631730930912805754856709629713936553092642946984326350236321807849965356418632075838342934763720639318260843077332344764245721016527876098085731605257069508328400932943114843265728698400527425413673199425162971083749175323767493206835596112366837707171618995359886285246544084274195478432042566014127073512203434335036402498046791615126651437033374834956386098133753313781295691939217984589604211003669497128257021377267059358870811202965305262806779862416657748309464087441346009883231423224562639227453127015743318350630138365020287803859712599992047547778034060072331593388194277661407757583054180348844499693745511613102531511806331327917604356683119508372142366217054070731116611321481453373138108394787001724408582312378703005556875214000792373036960136131286490693900885082547561465367241847734759075559033133399585935118833890448451481588804909629116168937298518172192360190357733475553083234256748626211804901530151116411694033938600826228024367261247687899194089418814560385435189151790990815460983323961798418257737549155745992541001242561612619966722640793514410916679286134237210835495990665452155539821137228220296732537062920266626834485213610843437102992941026876355925607795263069249899205752848269542874970532238250658525500684826867286739195008606346176511323142346861190223427581122395621258026865662773886791298044607806341022405750781303898153239180122990492494745989239923610066238625966428017666251619221219684356962627704352670705745096893503142621213182596067873784432308575000358683091844032925042498392351082626214633269596346900139231906912309229519492464245024526917267510272456733434325185960389004817958538145302220548958546081465353033796475822381213251885578761398359325054238790116485454605515163120867744577036689983531569259217565414290128621357981513122955185499208332777711712245698298471006265419454007880747305311342651405902623644867279065413778245884860558246927984869744693037798579381682020653067664293240721172957158719038227353519434243185863807085041532913465482959970853783084629330603019860914238038569289403368821679914385632681839496610515815809552780868592614346856952022042318561785313620673689889510873964487357904850018908664722138743129420437646364649797705979375011901686245724265940128390732572341628147104166739366150175850318252568015227112480616226739568823464433360156794508535527064998167057471304165419297513103685451496166802686852853716326847000720507039332633631492629365700084095088098017602326193657273046677942894436276891283030511353854486688339047132400604463013601192641187265559589752080714173451292956931452082905449611402715920934449334483712744759218656729840166723361764250143982182474870917966556842602868990849532426765978910407730133426302254688741394041279673792248959390294378765290164353817895573815204920044274262559803015116332858168899785222267274252660558845167687417074393338561227053479853171660817522794000736244712451875480331395056639238225796936289059574396468700885677831011203317961525772072914265656297030618418047221191250538342328764463083004727524149280718943737769330926444984482886110490549542078738733762686666146927472245197819541611404372257278587991802702010221384494273769896158521972939587725215088596513868178545399892623240073019419284768449645579144835094246939236379484566139797639230202931981343017162265697858115412252385813105895555673173907907989819997171716677831250419723430790692094210513390282483471021293545891149888915408502599784542730856349229157704658961622541082527178299736466337551896747188586391341890975280547139666740747144865225109393675301488390791678684846026146290426653604362926381687434015374158303934076494853246324129370020722821383626599868664555378214284662812845209034758816796419292392948745756312309873173921134872119329889758795990651729323943193987414372823250049347604760139797969378904135776723205853150455739328183486016498836954329228412285715303182456169386030655271365656522509968718059870179694928813895325546949926484474567898712152144019236119306301262926740097038593920231097129882483088692514823339385338020521160072328617841496772928630624857466190496317352097726664837455204292082918283896590904779298614513025799679981357753722850375198365293479294535222993784005313536731144227886217478853441586234231893250703467722011026971328478386493095594022640165030005031462804887312324334807221939382268227284278521831865699748158518897571329439915521442412577428970522682546174642021191363688436773238650321728680050799250455980978968275621701433043338374006331550346405378333242234667857218881730594316816991985026195157394242140141704937188281540840261858115738247909069256300239504146833172353421126628237030904823117001718353913060028767438069625433101071287229193554877225005020798892463235003765037972263016736544817958438610352869016288797890013406219853078525066787806060440437475912598428281123866790600446851689680589585547957469100755704099380145595445380434134767099940505250705920752135165128129709666404508530460360689321471523626126984977201443750907452589010579426426351854301603293326292322530560297383312754744514963219447827581021930854904827740751315006764656709999743886131621358195229302407290601100433530695855645694745078823825720764470532682979953446846359121647816543587417453265292808561125987864884518950706730292993124461480759770531259323847031625879222581943223162753093834259471559306972248989406469442075278443415426734724881128634250414009953494625208612499490315603331508839757110682672304574379165179265336547073981037954579408523040414762796649525472330244105758887270698138473508211091460082594576987811642678053575750795663990962987704483920428674610420162872622354567069490919930191928652061310816763271858785180573584254696633027006605599457003131204734293185502268530683272950549936535682763190968854244218563497852477052264077277884299593717662417816179998282604599419852247942055244513680084754304013260157019900243014938410916561073143401672645331213479479754957795549382742098980474861584648308760819729499907806384576975842671209412622110375655545830483414961654209819289966694642674675627191408055436501043395270107779701192496773609176958222153080009012388832728065966366816903176291604206657427544494220541553722555932536383315653587611127512409337202240120038337704814917545812107962228814752301032766071062269849454188399236135128959107436668312879408443466853301561228470024023797308895695443283117762127917869121808601846937293353372685772290239935272643801299233283022674647740542307612560616253755604970324015075929094106219118204018547904776014755518122250921357960578959464089390263449775452962061982553605534686406242500833620286748224381858183470306884844681551245411601379745981308866777923734252607141259131337746495316664598957661419705355119700936643932676526081694317028233714297970717890369660998974419697470186523319100859521830750536685221383835985710547564756307353858432453829682301054863423298682502214514066087056430736930188000240177198270292732672780191842901433021376289017101531468121625572393952194450390843161595586183934169261386186565599122453893337165673172481499386627030682630524278749269067897905686804841544926246929300509299683308796380002973901554800828627046400364400579556043434310904422405849777367175467384219972551242723937851910473234502281239883964693211352781361524024241806122238681644187313103592397363295903114002269249532792230538266901758893811926504426995287125779061946187263074922859078069043167405175365379325997549245575109318225541697942362126788330088723391573757643173544659904358630153062633552868804501853475505827385611964871238855075539778193358631080085218561821637806300404404474121097652354961959575534380798821499606412914131089489722283745674632868970690617765712446367411904667377006097707669595669729476024315042637742353892300780435400701708749050143512477824914444805327031309565881571846478204723265219994461156002466690507374688149548640342089077375124920602119127630661877446389995355214958205870248161297803146787297002808319683441515120333892194340712243891957714055145118216102353750517323386872439815743288524567603777711909054448830267298129009174213040186239913332679468599425510908156523636421428881660950169444693012257086705034087846037047821479917642049236487433850668902442392626396454948063546687590672696109006038375960305704745425814457863359659732070211093151590887550169794327997830640672147466755522607198372692162243076891660747860698907887310317906083244224977334918655514931846378791910836364954413961642009110024827072665556076533073921252474109906050590588989531674063378033486530472437895528226092578748007440533407998863833539532725174978490537016895943587802319655179000635744135465859149926915491740835650529462555456820822459436816734944693375167004187438726249591554043550730713084873244580017761383765062019960891651541873166098319854058214494816914809095299615751127960224281158427497104421483612976889495797956374717938483264701252761940699807081548908256337781392098027139432960581960838420571496180617131262853029397197673186304857705744624906266140161093108014475338348769347130265729905209763442440903630517805260078060577959465778736824723155234081033350051918980857248476986062931764690306047631879446865321972545288797711620820682767891008796406507767886225631865754409191128713458769511885155704089285274315752408716057749475929280424249170677446562201143292035868673487162840797289406333761385100853564609934831041188303564439341678335274589879149564222270170567649887038223602583588461021272873805614575123942547786854884548286184398799168381552785882130866510316098317919270428785738200462816191406795784255986553343843097604863661264973674230515409093231907914266462025053239890656518429872182060872882490354086633123256093487780092514632574329638583912234879850458096927495961606776647727904388444193329679712421456455390051945876879280790241013482139511298027457852435157839349711296064851228172196198858957210800393674512816304923123999586816779185094653229758505818822402751766279418455032299721914731319789003114514089290934888769038216016898315680402339212993196979423091085886858211173961174478578340368520450349434438657970505699942264997019940506999112362957613884166086664118626714147316766736513747906919990513363277277907681730435832065159622087674040513414300339729366104068893982232943073752547824163319248576042687371381837884798126129856515708250461094395396100852881031928705913448832359952934137169586769826179696209864209779586798611748717090704552868155517917106545084948504371854788756041713332145513729619075079752945647343245397682575937942547055471657881422248064784839323063842960896795041865954138208183246396285298358002860369620833414283026709307772759411165315789062852924173264720233738052617345306639383181567809240139187420653482490127731658299410469385995971957073343971701418944543083414365008063681200509666940079678349535660746978661525755520868539673231366355111226440681996411343539545695887229576588677853168210989847362205455688637674585550731355326251317140845109335206782238884503481737749503070956444239033446330118349699736538656535567062859943737861087921900418755511441444936636645743719600224824533185617711954118581650037579183694879753069380873496250539297296460862829468144896144760822384498324635257217083877277907890569065850646668660456957518067092634990007666168720144666364100831305177725462625080323564272388153225724892991492447201176415681854613376782020678039337470285243520132063906576639256922933187347457364779681930041128493610637662607337769124324938871110450762112876959660374907908366100144904592352452828814776108819910925957056797862312158443131519418831263657573729353197749396743682121702786667312815529907399264128558186787896109793673788231138969575452036731647938553521067643700640130371911292808403378021069622027046062059303986617869399944793845575511964588211425946847634023951461338382285954323652892489913400962900111398443081771033536371625852721096927256688487933843818839560175245232540769916059368199286554462571521195908127705781407351430838771968940463897669702660057957383315872247985649328864588744748191486298693889883052343480605822907658818460832767340071095119228464180250822333079325649311494231735692265926226474959082685016842789406869817821600291488770811727699724842984665565023892621688842511120311871387148628892033389033873152515507154232415564708554216017439376883483001226240444413104169624903800789427669593579933810929402085932094975883425025918075969605949582646847373281781249990648611513015880400651133307682486037036442338351385996753649189369869279490488433045605991923770376405657008453907407372521439511885720553793519630904094860903461987582551108262259960086503804880797183687444347085209430937510955657265191072205534008308847454878250586800768373203372363393706606212644866325359721125628596873184698375215364839293180754372880193116179048970858861653035916169140046040568130440385354941412071091099863449454313801286370504682444827262939299389889041614267434803245289284568520036650950703548059995947026828778862332192330163560770557846210857014638294428320914227819639941280515921431297781864058650270426305952025515036442370693429369664818390319109005229961878115680332063877012201977795673497506378140283068006812470996035754138269416145717458625813957187221746268265161936409532206525013315039643456897528961331005490385316895334324282512745991008693742293689510449342291989437276292201781207974218198263275837160249571276182532931161768789011337185313840720889567847460532642114235311750996816456206603312852563111305948786456839108087733115659253734443010686832597438500346654458804120829746050954024332146545800838179786770936652101956524278906252229865916291102689377310833634771839396657795538438675521724964588559142714902629441977397116927132083164415222486223659930955929447067707098162458681697449135369753564489969156811339940755339456809850566266288532708021167729659773203095311231127340239043629350463847453507703178465445228604878584022596435229500912522075729683094300552593821661298234517015791575033109803303170783071611116036325882966120862705879828454938884389400091934914201229433698965859114500102099435863959800007118324577129239738770721813858096648689280208163388348237468656094390527548555870275856715774531946842476662744051440786162184554881365025540898089856488143618267566008240993030028809266070763218400651718413433234084094824350505687666489215968224234037703322893281180436989324843965056141434948767437959301265474176332343945568502028092137856546941485485517962509694896227673841579528968056087889847320644620967262117187472763722514363763917489383301789448798520889604826734078169097270987539766659881747949038423834192868801755257531246479390202965668057923088762954284247280892208921944788420124189749017823516597607810474707974047790629101614532627975583721767882192985277889994542486966798747968832722442137819763963569314377366799367367255504643707247648413373256525865713433820454052522812108978733157100550341848556589169091467371772215790542257373971631930115539644903432572116159719274538037327096037945829936533580839331224484055136036199631155178973415602755248821847480439030293965600849861154167862537807977917133585481757068539080883078483637019922467158779548994669186033811887303952649239592995602169663341815961281899779293979343602135416290191083459038086273414426868412756132730452932318960893567284792668284523162433965352113415834716030355371129131733933250276320135854591585445588800234754987541544160341502672182968520234142187354003282103761676707937269359647341549098594986600195298141217103090909602139337453668638471653269593629306138699666853970329042714161495518254613666668040401365882555398019348529909058762909445487933006373082546188841492150759529717835834013847630592220048748357092988979341593084995713716943779301955176131857695855548968378586286875485184881264964945932816599052677654231073975920257325854426545472564166884232071470373642983805956406326054414287048481671427236442657117905598809640167971035339819647776891778252707103445261297612953956916936552015600478212750496817663991703285484180972466842291301814053025752236034234437140010686562831782715235581330180737965229536272686664929095040594465885791611563151419635021172351250828212182148385660530558189756270503955683363998608586740801673963640318454203561806627647543731677502471520640928946296253808184839413172274131422961787496011219283377134930643835440091055355688984558100117257702878842075956570670307562792588562251044766869748356628870921905467165842653886525463747666117742646176813786360279091965079895441179168902152623102285043456957064242474360231193926844376319027353449076065949865217762234553875281896702592613010140898597106291238981673629577671347589175998652398031008857933099865920200750197596398913380440403925809429119969076356122849584417050940126626414546281526157439907559295990945189831944128658650894701615602813659450563108563043267487314709438164919724847435838825274331512896098497616572409996046832550888534968304911049294345387906654967089457211433247523185080867764111641308278404565357038544498646801378904288577907703598493384137149213556014347031926332367570954590949758894525376956176736223201513912427592181245228127304277371679297635196243156583210573982641360574752452437708932978205341107542988253756343651052071032846649108301002669500472794160760992802310579162696213469546728216766276205293321834330334587486436224388390300497644118401616967781881428140081245331126812615477859635985732556392440290323073592815061685746642466826687437523452840267774060531461350746922701132699494236701799506420952802606113380065951941655345071054649949904043418356136603620562763060588371832095101846207265249553934083418237412269394165054839902137004817762991278097353509742740219923406746864931149646694044977788349257777396059106697892401722397077608993239033329770167677460646311478715976801862833926538309690966661233744217589450019334410161525464192525939127738597983290037228361544504629135999458239038105523759571706712195220754288185524480245431309252083267286988007627336818724647173105252170856539991079304537316083976082946475896093926666041497049331164479664673547472773542662729025770401762349228498526039267605977257139594596725069146495552839415609428371242747252315387988331792676740546377751195020444296309396283221761539836319649414992218698392112230584020378396785087671607143259703232443452571752665908678513216753671493400399610048904592973405334144580722627848653716905017394433584981395323286527466982741121522490045647346621450391829765035253760259557162282877625480414349546387274620155156165692395157893474084036065121078395883873634507599068939636715935892094372690053037744949370102168664138847805563843471545437179204595584513385918891067443326961107556358422866393177156065818666860840674915555123956847454950753441186860240457996190209475611776881031112708689631384127242674279935409820672318030937620921417600333104507344761178519375807902437908685191611542582988773245161356451754943002090835387271192156005783537430922187610089204312034514534488783260959949051354821328283380840930120836563211486999553277305215569121126165342823407758429379506241654763733427329491398419735401160831435235367776986299560992482949637358771497137646998089839109432501874216223570130341880156782204300070801087378040024701056156068638751196872764087016734177738166035615718088783811221466775784171937455170712134728944674292826074675234985615990683770113470521973284561573862153923729132189819642669310554866812270367674808589694036580267063268473011025086363478422514575672363940101930666021062532851423175366287282443388512115007781430719144902375861015086856032088614692149972939824723123881929364073314934597782770681875353093243548188176497033968922194367227426238255749450660009186805980483518033732191996274944536466376329038059397310324983168149644736264469021614115529884350074962613734563177144285141793047967879376334326318964898206321541176955522424336086129595669407149856264503401072841450023391985928970348620845237713967078025996543913112408616886566155808078923934150794615686837125102435097325635025396417091837463856294672038795852928502921830556228132428891130842898122786789335301386089313226509091651541871266155833408364395805736924950302901770777483575172851456648262719864451843974723187420152616617666870828195485752736081742617052571596232946075109524429502207764086014210299563217064898819243448855926261677993241999518433810786709342347601557258146736297531809008321269935170509152675870559847768561327097802536581825444579971196601886912070269166235295687057280512219131356219701150769692551461362345849192548149392765214411703510993491319650699123777504992013541870178333598946588085095383625727411526757663028557415240633384240240668991170910998424809305042869542857971047068748441360939669637862347759027909557838437422582868936203013889759887844113178278161728384063818383431967915611780237346288356400457423195118633539539052776979108006306289317282528604889986768242516402881688323266276518740477683554143845427517533570743430639709676656836497771496123784017296520099766790249772483294239383244222874346855351231324539829048563288459696998254336345828655240315013684116698300157581412158653183000230826595070220071726032432244151159321913225728564806488982156134680667483267528993351292312935206118279894240502804232757293449224555060686305478667469830230447217597379680738428295906345668278178541551269150804396315845346407560750941521207877449643341361325942987733412672971636521033509059174168391464583184406641625366363838622472136561888576205503278778636784610459115077551424257097567963864972544829831385672142488561749632799215746789088068864259229902625790141046638999768221093427750848954167601604236345346608366898826926274747371851094106078622654021097975795358477728084437948882277774941266191529634516191461426883951664687256020721147789014769276562739464325527736630803697692445974106706324036311953554979725662780936871112436825833087952631097998033475237528361341401907859133074266126313082994487619148585450089980766465979140972240467103159128125997816916388548645673013703742392554999863115961822980130389685767473361251180481161752349969389559717291715032101269643022648516381304875005213263904930673378468598082102031878503580054267213749135460634487798216798348347957546407450109510950775242656149460727934384118974928677900084642200460430855329714437782378186940420835128175988383853943413266983569741565246843393026096701272329267271247831885333852917823172562112368541284981572654752270786378238715392911067332530638331369905933644728361996844037146289025892563803336861486721885083462069503112438134732501053758792481556211644808667091706687169961593859757180881859566989436497932086966229002706944849345366196756436714936721417826167011667407737701076642422716764777671195104590298124436517280439640323256331551596144077700452583771042711741357356531598735439835006992470820781063732315263401335229789588792843618855835656366141476151711247028393730885278896003427822786290190881084848139754395974183518999191680122425747949512698629845154738487218422842793959007284707014123536658891901112801295105226685331381083662880914906540084328682584809995556670063411517439896710466670554605587443026817649344122022223185779841018354989713116289318701234886191313559334440665431664159240906078483648234350949170064690206271769418783150044678218569571843896609628592507729621252975740325538246282910779591826626971875794974376907841591649077776759643143624761857846777155774180890700430319233800081982266491474728877120637117605583292179187078627579366510759013302469057399555417116312275086416022021324341753559472205672381182427519658212948204877616315729676505613528153411768339647616452699368230392464156242592527877203159579844395815378902515104312180930071450635599943126997822329891118325733129057140428543141923223633540562165051803182028198428550350979157158528023987780047616022468668580986899725390385734391871265719655483513712470513576733807228104743822411583906477350421288188920965150855152692031492965746932774582498505463850538427609473150832138200440396102975928310382372555722020251334634605636480840497970266457396070434899403938575820341179312381896055087102535507093113071477283841382276748236971256113673387215805697909179916694935262969758120188391791289107777290609159066222725344382335544767729526456428676913855390967007331070510489085876444096029273490564100091092513938989626501568174094688520394551699648053396331719853185702238448220285676990585412673271456864528061322066321742205731826254345748208264534709828960494875663086376452474913091656891605038622403797200794105689190940638790865177245244881259786731605065555858651625035371627006722239644668152831524472730270275402531298102576108791059155314289147142094371306818896000262338723599439621297634788790666963639110220422034579256816897423701055544383918619629447525393782995403138742442186255289073890179049363840104974485277832894034321693029173730748176539952969387978813795542574433695493383777419277907475104469385825712272317072562921484285642153718815131576266497833710996885823180978122537388259420268623767451655403778425105299926316911224971153402565221596932182423291791939745650071405857680501260391924754909144640359195789644950386908511956679228187318082367600672330334358314432577565753627474489584524399133382822969870644201547149506275957372847725946438551178714167237144113660886496905472378565611016384889427421989151571233961390490987730328061703421955369778440685579491164886912852514235809512389269084492959063338330877140346163975514746491794961831281179054807137764414818776041827255012272218042774574236143589112531537001289747621884550355852252169664633124495894654489773404550299001087605598421657298724075702425499214022853748074503919562334233693371891938779030419927892365951920507049717850993938786089332141849363322066965271500667474501074202529975400690808149874565778833819311505403879215704554815633501319900820132865726273052790977600235041622501276913146288093264837755937899011727910966278864094509693763700886378110100284716873263065299938495807860422288627694476014733757337889712374861720852668507901982060793188804852678655494368721076148116130761074739983700943829466029694498660290977048858540149663037633676770784989840268629523349259603690552363982414893922858121901297715517500276128863809145489447339635983492658197617111205157744559988800065864593981483288580680936826557604702808154044059689271828888839959023196987307455378332646862378030928794644907830372888054739342252106060806764741833563103580100601434349007221218799260202260164240133192507001875168142042399546371389501690573120675422052703754929221613969261980634897303769750068983690088415873856064255590746478522887256508069040430402147467996805955545046899844465306027883010419954804210119002656089033247739693702412986186835185965735495110543342532076125683535356581713556239352081164185594479541637620414431897966136827276423882803338297490536850966311267688535709896395708276104767928185206984263046483200434057741054827880069469947505947245895343980456770759470960333062803244132464902591042800485997950612719598037118962137733199940883948781668892212294533477924483781102833550448337528455976368356321343196726895629619376956876508643656780608359729195132943108739026510251384351713731373693018672261952643207799859745291568393530067836305518534128084335124494917501091812390218671254170219240666159917652366531144014594918586753468687429506337273289706861172298536563866230189976684773835491048802847225619135743330398896258894220505356298244485512033964162793321225750814748814772586662297299667268311244611460625104396157023248182936253726370131102703324039968609035488538117770956518405602974561486803536861483845799745996219299584868698780869895822844584333742526019347747847189822611559644711983989135034066980718491664556254472238122589857188588204550823283848862270184363646289610158800505129798753205719842195196355479433078254242397877932554767922715801226906499686555580935095384364390656979267362104151137323778181398342902621827245286068690264195952661695589147146845837531261944757899042324114033454294205029490818440715937736096503739499654287179287221445401934285382627264913471192703820790003954156671684752486102714179544243978629126616382472983041032618018257376346804674842721730194610768942907063107730480692854510810040114129091480369704257779592510040482952160415991219841555260762020913592661707550080311347830491561643595526392021594768607646965814154793388752399052300995320147550908212267454576334127559367861015149848393786407011680970352197818723931386100039539656084553768788557131806096052731413072570895046927597715377550355420687674444710469744486203891502837394452919961962129653386286802318789145503351863501039568797609421336596772211133787563548006060750215923831484602023797685091021258197827772845335208809309727789540471678970813613105863933306477484416841856450035355596455225333530582757490132298896123075800778024763603826002613172565426112425993486755123071654123510503267322637889971663532453879786578857133284815434046572485024626016537267845693143850322204943796202265565454544313838171748854862963488858897078837849119240932830884646682020754537082357163673229917136524850318131431244143719731328205173863107228349139336897529821520916377901397550875306394103461100610097566880395346654832786085666466690848509459021903280411067194964640506486554856574205220745661467333496847664758377122801391965020135246787942977189933592051619292002125695206606151662593920376010604424570103834119122512927901896718160355056470573726206764095924017297779390631300981286289847915636366776863947680281057477751964542378173936466133871707917562813136530618643741722944742730750420027431789736628253755776004650982830218182083378057977755011622899463964541021558930230748202432498619182814906947933168353585955182671845630357232824563659505157424071921201345086629244651688730786051515808192901508075827529179324469360295342921284648705550796059951133056980917197829242445170587006159544187381508612263058503779872412069101665091333041307952223777514864968800640654696725083377821200936168022441854538067574962901464853916206238097913521299012254523528271377230734867389107007402613109630594556755205575123106318475108162206842694323500794982394308586393934034124364804533671587805961785485246724178737250722924697892379163202169261370650292073813246844792021160281079223171227290140356056606227751815130801102882216942283259398765292819943110267853109452080030457878006463173818886940300885421034508093463145763223238129134191909372668992542337225717067722484971417434412710750452257026164315477824149378677044568711811354968778697154676059268652230819062119808149071767576372176823188567011147241971616643131482248813820391794906064064611343810612513546408384238914942983795999604502859340248434466857364191449913860993384089323631635586989602000730766490886384673684849800156247598391715283693456122339788612007443867363221860452337498638247234374256020905889664675034641835293079987425553233974781647973801558718461376839529258282913807519949189424022457286577423247837591191722757749536761040016093878896589567172173940183822548249814944587900031792492907995971200301011426124364988239808620247475525832334148939235219581743170287524446996436746844599317727481689613133652489346113605654574126132716960703004427607310032374367970582165729117810992112713843552163770367700991401656871127876439193327939619086002909608043827412399930254467271889032176437125508985455240452284445145708768050678539895437253979740668825485513780716907651163480998022285369284113118328847052367353800342602051009806449189412150510410409507670951590831764117613325255028417367412253986073281660340160658139525177414612538571845185904389004626421324083803897912592897457186656776860328566141696562033585335944183904971955131847812898602965056815867850520842316155949877021690149551913355318748267466860300490081893346092120236954092383455512077684479872369538830816113697470586064061690261428026715028439555682978839490961526586358067335485548297202708431530590532381581372551611326921731650769163183410080491087535140520666173395666499506103733286050852629414576329739355297743980123068224437171222862427979064356138452100669330058505610310081141917121200338726809538195502424231606815937010749925266701991209847428673987490386229671649237063650714390101746366612865448339221148869679821067569286989332652729863846658845312336245199766932447028383803253949933153115409509457265576191539755490521175390953462612378558980932221802835322379237391893983177678705699185083113176955488756953374948737902249814104656572131930169537650648295919211367591125983664739209540194569351616050339462744207309428180535516406709627789378105712163535649108749784953158777010714693596187506906521543217061548092601989779296848313734019910840539582159501303787574502926604011091912512305855708367393009506156498962593970992514253189255253124586666328229480176366454801975144427167505039655821038362230959493950867091959087879241567716875733308368499927929723049273964849103395153394562745037536161768386704660703011693742899595962506561277768308152278376810670846184802377401281477503953780606474087664505521492833883763570063207014829112184219408583429773886451925991016325450790190369389269500978586146924478390716461716220728099351743978599580509129265727392473058701794392252257114797083531530839147121373555140386643481644625636260966147129269693754477932144661924211252077290687758725772131854784348979921750430665366620150661830632487781589669348984541762105673181030014139685902638673262576916902648313855139160547648162189808389447208922710150916747886905087845372014582856303911121757459986089008764521181873927138141087519390242523698646287460426177485019448892298942694788951245489646022490837490663354393685347459317861759459556168200810459855762127653413608527349148616530762387628527129029751006717104681366934894289620576922411828795682414911453498556709504527502456035786683989343584238319936076825024607298181102220269139871460501893915237087582839243023282592339539990057682197055289922178129347654938923561419012023945362557821609402192808236288933588344818972902623515162548863138707681991381133793247959334016729889343459930469628443033284178293554676211152697132297259284948076642920030778749452053098784112583428952001603373613221937714977155193339389210765574490697414219242159354585388445825628440956759733134625696077160406835392182233770414007732103411388959359475898052263213371367733113798000455683079032209742063787197200210436266703575506188440773589690213785024310762582002299973497759855265753441434467062494849989392616708498591416645237297144361130461438641863958871197860651554107911254914413510806648454208035428986193820495543962320319537100047224057005793801805599432594515131169483697577138223740548963088099033580479048177263384425363750668780560978156672010869247706246001567224514659972656392156884871603554359359103976019738479343078433935726167961655829371479162921844338703826393988187209212538567105946526452041700867957856515434573192094564668892854942699454173278486846571560654343648371203049142344698751936137531547006003730202063610698069887110540220471501544699689175295977272640786009026283600985557320755501172827533261570274554963997200819644335944770400457318907921147073968150663385542249396386880735622693192673517404172282562416600123772092152702979233397225081313919696253685843201828463657867169320060497094746521306726320387745790625299132017512133185667056366700255118930858268065061931065948667648684187411307303796637120023200978621623890797461803866431801682446114799757898340109087274217386631251369888829092770238931701507017841341273017310384592078862007171037466286966873152916565845599481093529704032999206170830715982514591600849018355677425844708286061750289958905600358361305110275833184639355533143331513928040878721794159341143111112621181658714847535759235973764316537505952211389983370833662665446974993850407080867243318387590955566621407340826498510286573162939907002700891706668793147750670479364633648118793494882755552655239193411078688066478195000462091686035481595088920730932510230529945305488175463155375206979574498545838166216744486267655328862344782520884090302382658225020814274445310631555230182575786338829287073055340986492348150682886003076748335217637069590480507142416306547883969438088835278834803784301629730398450904132386663912891559752638171923917515280038253523744387694445293114580017834782507175346663840729009683239317729622979792910727604658281902391615654359277089317521979037237002242985061864078696378648740577356232195657550385962241139097265218110405585426341601216194116458184947907422624395633382142955300461852825107343931469204930530058045309928118162324137594813144802754380811223439530604151017492706901589927086170427654652720322132801983782871441759028536388443899473264865419582420506275634825590586652793561907399742499606769012347230059219791447794500298856362371776244289665860438012640081131762762844013380334555923683869309461748214143059438375388508080497034470750262415361074253540764165757702659884725524109926078825324942746841149994927840578844036727383510468375705935159748323387309450455915165713238148078489719674938458488737388678628950773567343002024391086153095374691787863062222696841140402047800726264011209344772232849320078574889807253099753876325606072070046675552494565701298188985746647939819510652155793440401458972951936894441549148586113627439238273251337391366703504840947235215129057991784079889745080864346231039580656063063596940358546492021694760180215011646945172961205802145760873253119235959439896955731156823052848582375418602129315654860014484388839546595157044798535943015268640619149721525603201634153174423884928973445223442071494642301440645867973643644422742130079837668646894878166637098953599399009773901124649730360004860719653620754658417294000301511421107096456141701605538249520155556090704922455390736646343749333946584518628238969697622133955869890969548477599009280347915961567871477416668670703929471941418183106600510430905687036231974826017321835179397617510591561409520590501411652324873821565053405972325578004502821127031596081800728771980988721136035199363410265462980285918431269991918590924660610678173279649940643927967720999854000221174409620388732885689394824430865640240369594888550741242269556974070766168860376663717642134297622754341247014239268107355897449187518250483659827665574077493007897486111360871879326337135197060272748044417365945027653211727931975053791458281017729703328116706987327688610484635850847463215244637887176857780123279232407615538024876256835289461020362784573196627922007361855742084198637997215724139615341296328038952733960720622222121164350686393383537799346277345319648102434190874514400879429188856721555473426184734957371625185703361279378117376454660032853580050536133021206487587307821573921309623061273531194046458642336140982700596938732381973490824822078341088809984538691906354884701688238869181615273629143750651041930823588200446820824179850192832856227083024530910652957006351844334772997661537389185491893114965245767526751462242228117179329587966320456190641652495744745761714184166590254048745839361004225736770316663513835370229907310993432813664032068222045172502830803649176676684779588356786059275319562994638645884945680185060270609750845976585415748049905519595258558030573892329422147073351385553152879780423702939890344133462853006170277909355203768369406354103411552441931420500924061089487168985906046339635099677320359859117461791250371512361381345530349296014823947171266902155506511692610455521969261155204218483547309990376933247963344899010691151843814036011217904792308019496364658981218758948297438417617892017702606545456068402466634189152596947325508435006672850303565477531164857721087614965066011615644097357484801059389761951329409902420538922231886851959153481662840429584588064745046533315256696097223885015013656981009810785016814303401829671490199520639920484359032201082881302046936077350557142350428577962135188679671882917649862396842697053394220841399158896480784271757221398952335517758793596275156996034407045254471820350180839776542553722665537742174539104597964826875567660567191231793187634510808161518220437443649615652731086692033968581857498670058897051947789005729113610517791127826425917324552626194538317667545544308796416977899256363398289470163178051793714933369242304436960668131390928266494359127543592446974972083481320146385772751020851123156786079125432850638559693215537771710684372296397126728397969085294391590695247017562056177954082056780184155311055065108972059784417174045364603844645952584459580696825934397131441445158802889547913517531616562353734391690356491933030545727486852551791164300731983164452768468147513002338489727404202908147897760835838039399112689668519100005003969228323396883145732073948335888726279835481566279866402699416498570612591017401963097738731255956601058706412461184263011038919909153245528983300206054647066810981351544627859624192176592922634723211947197829957247763697912268783802695099412464340537408539068270231626750601729286884400592851539046160480694382462443997628242238462092298307890216680578534346757150300579321694877651581716774857316178359966540193377611226169303019088534122038890380723427698690467518027577883780780243449541839705515318508405349561068217368605335954800834157289240889231617969274534981545550538938619288238285408757860480688372653220496861530911416825015965977240130096313942240750251811765749129715176073062092104643399108972865227800396727063333734136904461284199394591315336909961306329984166750345846095704862587030492096446025603895792024147852785284924531729235983708382077637641741211456923435960961553872507337748373567562384022725504319030479647682767468927718506744213719243680429087297597880266501463344403903204401668597766319711383969399266495649447778101706345760117425384218562046982874493489967896467993557718113572519804290971097429041977209685410022770176677907671104335656459224294163385438405833339783914472640884032094337643789514545827933063019481032909853666298599084945542688111409190844202574861044803884228074176150957666046865755073426753607326306408827600721219813070038839662617784229573871360775040052196357148981470596952651858095201870184240305357390717614822357554811594969938789240298754571464219912167483274604337505593184036213209151283362716325668568208123436199010389531757228776420123905006454129034770811987034198685832788868084757246605720804317769268843523691960886256032491773293001093489914009156327944016585665165426158402736126329903398112504259805201047206147489874242743297516356829440096423693763211987029270874866934430899119994161990297625047348441342655597249815601641840430222390465489698847993584726258109382519515890370681371310211891130259583979450978614015032666954428619455111355008958781242018753050015278999571710917672025293384521073782390712355230879443474778338880078499766116123434823976375373981863834928182570179980376693499756500098215552574381991413007200363898916955706919346098478801949427328497159886281224328832597342290016104276330673776021680981767168751935142481678655610948415238292433480129694917176213725845435849352473292677965358576002953068812997095327058016550015387950788151329469382994845662359793882874448453861940898881092222134970372258504613137274823560159694015399020878197642973300673049247087578413171697589094042079210626423098195101185507036457630788893151509842164472414385242875961714886045772555995459349621186399640707014673587738554299028553654325370380204357163758954074067000255438579478296724030722135595320596595379320816028822989027924587283517923602107406435144506251383557152265317218550525492631226793907610745474186093344280194082355280526073191781922766184190664484481669989865050213363839801855534801369517380769631120190077239325542863376270129276038851541571591622827977121822874597285533695220364026816074771928523864573009578219322784775818783791987303731804546037878947164309957280215075000340224637791208580107765690306963196912129053717277119831366757895368707274732861087922204214503352253271208825946734321478063999852644644968158793883314059740406397399437628801188249250830062686910561209096753894153124265752035359680405707811780943091456413854668405715943782868554047995616518173230231810545241355015958753760940940710561675972886117604941743201498823506539800764936334983379465286998422303939388846868181462367225826215710024846802558200846192787387519352733935766187214496821652537794625960279483954780204625776775303577163279423079306075996106089812988859404782646166922379661638153017215129196481181104599017255892056374099144488726535111026915842737932689001590624859202391226257871131340726104460036652857317908071444477141561742064605654771967554364582515521575143664294806084630492363487367249612545079536527813807045402215295290983904586317715032595028444739103730453106206205425948474973505776511140832642083405595268493843958707611099372414442765012795940046249539280900156307148484369969290647413965040157828662112024049686178836287236845851630952553093947953158375664960442078803273555781451102557325068006453931574776765313073281091167587039299234868643916179073373870069885707636572062605811490939985361578907897026309265793895221954162691831343437551687124863070713204246611573019198388783235009483156070444356249291236540824068364491394129135462935235455847851321987187224392673804972976675903524963008095772703570350487860432230187901557079045220698560038755656287319365844352302209296900383614990182371634310790839454628166920247411771908007266668053595421861661894482070112535571675801309659464372471154135135703587491045913828621896762915733572570109285126871028160361084906677706741132026785284380748567131173153850642575966824966909259845544485868644845434604102344178112280293112361452669525082225933322384570460366629092949259635173736144377944364620009692232443401523355837638468224587333682756088989973314710969624026299273645088004116260727678864002035594951317920157031858195203576061794112176207356205897247009305161997952186046495635839919922475137260989320488599088166330728249559866895433184153537505048409077444355302180643026625144838505305206043584130564923104867272318386027359633960996235490825819730040506255912848521248555471615009591581584031811615243765951660050521437348896251815178781960875154061118419619510826125392815938696380852716910399098770931569455217810631393132258460354946484531853827467224511227725857730934814620652974456160160447316268568516759428251134866981629744428363310936145477648105121733578146458748065620776399823515400385411542087040762369198730336275585934085347927561413781376270342920446376314320574800147146997056923912492502763926938373238643855428091254828903203354788857398711555219815333185045682544674049929366194278164958577100926978377332374315964894912329050586057457985572451558877162516468905119820678396310099146624086518431001774405334183681465171978901222289302926541993997114246186784771991528292415873326265365486389563665977172487683696041745816162434557078048979989217721780013673578865353864826727678573081673046942523777219716546536475428534727821286867331442271731333736523749224108412642241896741647069619519954925645694404616037647853377291496069017201304682161499842687014684050153927330680230912436364463520717855479421638379580278007221421966292704145880949035513057730111837354682806895363297558156008207017281242971047224181771850170388781170312303236503550875542430817732958878487086149345737177728755514690285674758545608544681151485107291191963791094423795002461519005560393487546147696883912058926482558506223964208107826889351321572283577990926313269025500898523273042313042900168870470779169761596574300784757157841274482517359462150821258666922364551820306742616288778807919570273421171893064330269494391359217901264000562157653829259132938040006327156974567548830264669144215311059821432758116873662506711643364004566208183045212949755449041311820698435484557104959975229361779269256235627206602297692845495415429036643523723342077196063806638110478686124641212233296378236807793780602885195239313399882245205784943740657512732040367995376340716347808511202285225404784512436489615199311954797422050278878888695163862562474188375373063783991784322878855637837493985822620721297341919141899502659002553783688449285942213684127274695079734898623481214899301629383523002518924660742427206723369248800243982760025940861394467171994913136790686936556051708669536009046615274619669484211145161965476128017552420351558452898011825114574721324881160959077654037066118672030915103467157019477959566933056786229098841383251367383884799893375565406522264621558054289562056104281261470472672658877694939352001804398257784229156216850719155217762679703666453861194570032256479411920656089043093894490855726624992724844990079255032586356526084080657070038557476519706403445128451765353427460119238194197765861806834620322421770624429283096535085302656683264214837826668627483649883906810667002614058264445919133914809701143162085369797431732889387542093233842618003199843090675351074249506798064635571106648155145873899251906248148227647959286816673489053689174912222601931556459524331080165942278860136933287127238846643940043132932122781681954098552698696900968307851149744564782338926140055921903013817591448119281736756852843279814264399185698594670702594559143049333512893974158038679739080663689727224081330295482661797130695174605049843933557401685152550369676153161112806915473968869888975692072067632547667335578530042154675267445716482668311422272096355341864331073540225609663100984130256834176223676519739188267146989880838382766573779107177289040428893600759118577860188369876148944635343984278645521651373204744015331131854439579487358764021472856960810236825652882354627383649805374910169017732931645695904424179303542556550609409600881839877994939025086770966094677044427796000450896885940554556415929875770705988646932319421777899226705722293649568888714500113884885798209365338872178626065340519631042566134335564636544281951187957944878363752070205184195203964163472549946885873596418978547073473111766169431706647159277062211091976281129959547519873878317013100827545702445074288366205010563127601079089069303878112696415182061061597553539306521567797304166781056363780132103272227366998562377434318180059579083863684628816996384430781810466930566567123178899474209868567661409326027861855909926105912754593202496722596215819225495359713089519561352776574497253159594455170219224206993910623603140212264517756954543993125495337410451242784534526778210397828221086230477822557807324495566124443982606905637651741728736377133966962092062320408251351182376956533760837240732814246942060736432431612152741070719374270444314787013099621393077734590503326299180597011763276889002531266765427076702957304469491241283877193625050526428894176650214164051784234666328607119239121009964845112135240417943448470281803393319420900272203414260188274531628789701893208276049800650817800565232462871034408154633101966851691582541219343787829249261552404125575953480034430164102416727174389861818039933929153148427878426003246951583350993603544799467754884626990515819549424856535600557712283106438140971398225374167494172828610714906293879641194367485232792412337847327794306570586111694820238379378056148029145288359475676235597867695228740611371115641939633797444582034280659951819900546547727810775049883657505189387199956282944892392687723064833630458876988286890030610893341565608422534037325066861670042517314670172315112559820864099586761850049626423238785290878305766213187177499578778775739934323510108773606701689042953257001926806194328097695020288264796885806324266469180639807938491422365932605517543124267427719266320945227921457122446316119564629943483267630487237350442562701185737238888529514030900812790657026772593874095697417688854487788118417305543567884001523628987377885830335817443245007888112541590872646255474167148973617628109770841265208067132563880492276639326623445724677157886290976178881561146205651877251190261863525116416534675656924770558987696604308868775061163380734809019152314085504590224038686819702242055823952039811044111702531808460610604208936215788672275989984093562004095266190954556912527825782544302850517984350062222547253502430825894452362531343248332150129879839897957477972392559685216024237051746925478283863165599944169574036792287158375911983131426505470468437149951533758220540734108371332272883288161366728307965771888904276694317053545925144043570204958044863571220974930001320558335292669973003276560965582027124799567208683401892679289909157804215200522474474065107257371774637788137577829796229735733685439903196604310699596366264740119187194690888874708049712563377276868737915831381132451717099165909106848694555054385960149230073418934322019750847063392001323810355516760574957171517104612477111961258214083736844532450489286962569530248037835490078702982090340081633623277734856816099808363883215443427750437994995195290089136719094948464404269398208069610577652434376423895732178660403927105061991831018782110486454827225842228324586226049188737989992223122122762469032407236322332337780412825918927643844129361563213017004918880390414899180214034497616229349756783981015942692731800418184490091781250502098354769269135576620980657112118718638696981557174873087393369971935174125281398146894715400361737603812051261695122885839384659970649761023393513108493530448833471397234936285769357916108034274206354605506438718864991752000982464804418540088061059569482728418868142006685809840417649435986185455293082903583662439325297024928559078216463859238648078563513446517201327621452478558339576277357452561585178999767161269138149945986405125344833508607331482033808866239582339658778789111881548347601966185669078341932824022145199826117089794307673541548453116681296531191625180048206178816287629590078714341225211899408183637888368392648045876334192891193324390011666261097322619538142423161065904809718734812000980480059510273319407365039614381854372468246427608866425397860499690122180028228206392384350068559482396096759960687295889421223737132203865889165293273422580870508828264054022236656582890946294805026299323144926212897141777889186149160774599195157710917246114491887123558777598416611472558427664294757291294631328019098598859242288466394059639206789207457823905002951115619569376409780328536153539921135014457507309429742655693118664001930005733244286186330583535532014997305235527879402631668209759188597662459954283786367287567909228107748016247670479029491180152042035251926300116679379877103098394953323610525750736791604109406408292884003596930816780013032806996203204639533079941884732300611620982317299811011424895958042595196845506094038654537481198110771966971411050055261312601863168939727393918342971886531460619294235751731222011738827822645498915259722876886267113996805259689214581526625898085264622686143002736571292391736357627761974961312824631212773895734167364769257900047139537665422603382111305878192692630456933105549913305760072493103261858303211552993317672881103097162002697634911307256740965861420910490356758730138736899437574855425298092574705488000678432850229712079393826332655879489462726089369488115733777382065990657370052588038288016782164322095072861777538625719140851592492861563783035739538405906409994401593371752018575031419674791115669631165209283025108430615016137154034014774690808307060138631251826747688661032620943231834221860666099651935715255582873061869566744422260675949220939282743089586390457571662664575671814788258668991728579599089172795082680651528149608798249789289954110062899137365439404760720717549003740326333800840928689121999310542350879554782214378345489849384184214217249367394856017748009062403395590292975982470316503076472861342282961955410773930319838659570467299562443576095677750207479945949952329259344958488949249016338556872349735913038207907164655243121953027670285246133047404482364569930609827238711217649948442762602398258882405996220514165737080686149071670282041419602735634938756397374873611589285579890961064956245038747955486299146969525158212771752149548590119358243847716473114309336065795209512390242110056497361698585034233517845943580778372656924507121405627359296864947561081863508295748536394671271541420588222501047060063473358068245308748960100580981915907845910764750326573906325314283798245984945111152335532864206750066638842006298313020967803235536313487795869989955176318015680896634221277740528079446569073822324696890897311996080866015719616765782405481504110846592797413635333506270940741963781639679145027080653257470006459000319763102055644179456343595690948271799487373716755823286697691419714263581286712860954776993951574958239607367822867698337137560955683038623206782185262011422079084363176174527209804850313625952248937227373380350605236926528106629481178732043920609977053213043553879773379201173222701213708151868659745022864481929133052366018087894321041491143241701766569789672749780227661202826077553989013991862703825533327632536183207435230939082402581398164655850994792199497904320849768129833149525351763390718217014815173350731594427243159686412557000414218066001716926498137247245907910556978096763544486043645398359606756414075884470365736574167611425287267822253991165512861778400496134962131607435660123638532088734880850085360634945315686708227599067108358512657759892356761172599187960879355500297345275673039544122020213058281859300018406140743089041235641977629092675693223955216501745984339157440953899278358568344549900848689159150842428185803642990191450866018937246164168655422578173108130916053034003491988931992399823659234260400075833718799933037709998979803312811934498983182859348572747785617444329015632819325119443782284165113116597120738574879509335641178621810527454938739742417058142599961390441344159728142075296052172777742556079718914277363228258683441374604125124505302994792637438648209606079180035879634081618931101911232493976110729173841272419486700500725648075308345376648923601665549312912199022975693146093882166024419027696530119606389736859611143668919656658159003473863884252697452401456201890924862431072764007073419372665651535051167107244538334493539488461696412008873157925470380562317660830531940024815022217665700883517416528873640591432395752784628437547537732743420441899883599711495029255379933221238195485880984293440700229173868739302230068705450659396598125843808835434681037348438122557242512649670546440463016955466306915457295179438623376492232022483781458538811663522265563782327223288284988426784273299639799441681666690561746754779459639865503899295784024563328233480375405707540599961286011468131194498339505418698910599477339860980247559092253780754313323517785080217291926083563282044372794533030716312082704423492210029270325542721451900585976677619090736663402706240490509340028553083160835716158299956726582535203523047675645329707978005089458465068644795713747225166057665133804478864436499654663163682235702723929533976502033965993393655400900189240084932041725464750979688057296592498985711496995612188908463708336087577751619617765066283095099828671461373326198712155329629025933963696880132657289444622165823823287775549758827913751954476545559038944936878454474771163701415581564154863059253860658356086692421068906802676363072838221904489012880301037988870259110364310134866687015803767915814580983758715014471335700853226699755452684059762798309770828350711486227888858490549955363299924803619281678400027800615541097018708553531486471684127448829328013751508677530195832587009805185895656736827107968343951222727580854164492000406211267762550508183497971969920339149817627096267019449660623882207892625774564859773434759489664048179297010328323291463706984654516338487089675949189017073331435609849871927559289919650207811889111795596048975108204916899481871566310554843152294062822143201909765308719697170458221629644424314187358980204334801228357462238114417861171969501406683985598149897273089237998176462163791822707923948209824709119905857070190828019906642541370478672935973467335353360935334409848561850831913186406452191759674162677880287564950854424093074682242448682937045553016650300295554383968828371413848399501831933961857099581301877570204823549791938828357694574586937876749370970273093816381350326467457352885972147554846949413269704177185007205688555236080926022845279590866989934805996108157488616205488730758823156169632174234741960938116002070609490172220387096367017952019040364999418299506360655218488693618787816130826960187014628647696739050705860077477130776134371876791125557382481747848470260456856734324364443698372561347855890586667535836757408284190770744989774833418960733891761908698356350979543562520866127588876276841540984272634199356465093949133858573356322125290746489884278163240879188184891066852415736618778968465547963538558411741057756285203906584819805507857738655660598849934631017559380733987006457125082397245885774959596449577976019754388403307173161302586837242373253784430710928679639469162596220549513477343301127180206994326599384389560398904658744525162777454846182827065224971929138221495533468344525546796364617249589503299715575764246709605225971443399723888457969192903393185579270020037058537924338651035465860827575249687048891977233254368218197912862007661306424335686107429001549059363113626699746085812187353213305474944205748640335966155152635051751407000808197722539777679694658631689429278770240089737970970033023135854449752780305673640755523891635160648618108790356550299023360051138609717752735667396174609501037525494896911717765326083169025425233643594555866862677136848660220009072402829451747149523222914393764978893774816034590224672141970319098386284144929721944640918886091159411383215346919906002565001651239169080334850337589975384356879430392403330137022603707902512116689648531567126934629464528876838919033739228499152182545269323529873282253218587744986666197787420327847804374639245669544910508560319492503209933127130912980002479042603553749078788312864488082950410962589219858507508276864390096880696820982707295731301512479360613329133477214956614733280598352249534481982263701024207518719885462004615590562083577996095875642627797783258845687022330369384149348309547776465396520645255897303758532738293676726634972509503115034186378725151123042858030202477093639049011848233884603256338202347216174592097283399268641201134266578570841451964088968074822722334245638666389588001819802643644468730648475150966072682340174021392034182607337418158952572372308754036270549842060933112056923374740010178477496101710102032680524660279429004262550754028360592926643772399475750587088447566638350347749094739508960287653799003811600910167973397087861424822660388038208226045163714767998973405801288242152522756552578189340804044270462992678479784284077725650359623873093993587075535131826279080993640380344412792263564490844549318644508532588270493941291037658382533317649283107246273865490164860871691492048208421848810760730478556565824218344622942203254088964995848286174652917047538493512866474278800670805474413850450228740839833753317665997100861607330554220350458003310733253190204301550151956820898808785266727160270475007804593280153010358727202293114646637428170820506022477209888492707314999977969365734581317993405041666785275569781531070887091334779812839829266812953583971491815768391375136836098183051677803476292551259956278065706736967705400656361732090963443906396645253622733924067118188981938500445712140681789629159221744143073965224342691039101915280373836741510664588645856772616559669966836570927257355717624699212555141036847764979260335757414077219398531043231871928040508505585226263101626528032706256651335149765346655392704218907412863910518214003686630612394323976669972343187012126015489881088259697050889403073824346727016532213776210912627362527152368092780754513568314644724445123554849166228796412471863645412334259738936791543118866082406322629460543703695012564842177927732841534702458019474492282037697134978114125982143520506329753245696816760429230549196958615850626048746748764783929217871499400805799088187741153963852279193919731486491291421963232669112716784027754768520907915324062920771808912322719590409005353975166758850347913044301240182694468774475254559342923345275660473300800362893827280268640485652574492628557411421151123811823035642412774281032041324394980909319750574488694285304008339773445754248993599153730615161510528303847965703217358347676638693840834459133393028005641524414011066555098372818943084218326257592654409192149392939909757795779898022979848863915575602368069221793776424778498469493322207226250144631824247974841375593189416654042211128260422454050014310611639958422847937062924005016867286761158225445945753158791487699938025102781740290872573080938274527999694310885527619442049751741955713231152671174696786031708745947191527565354887003192580599327391378717629223335593288773450634773967106223902128616955682946880233352195771239215799346422154574745325282770751900375721971931533059133690639191228599468999187866370462581549970809895807322520225809716660956176683756311065983854143293590499705794165249786599355892744618715960664086485101647673932032647923989196657112897499740019800581626681745310586356039790497534351876174618202964988116509029626608011894146950196990328030242941007090360099029054945070164649683924297310524641732856357956287147111359451928242600303258152981561003784002291553019393814303026824335305399214290342425386523404241101736646103788432050065216230308371447327174184041276394833455192555015489986706662421346143267059880375365559649808533491507800172679927630809895979585133542914088488256069904476552294370269398149346566701175801787484328802187997890869245348293586082811028929670090800514808573695318908987015597353149347749680243512802374619539374721458834959529307435224788056961064416924031264358625112851937873149171440198277402194826850660150521712205089099955928285867610161177272600614321198653838549318563552105912377181312222717188305997902476051802341186228686330366479069123303281544788692923079583468965272880120497918544593488024542866838552904155099022212408435450696633173244944119764558144239540177234172342243347212470773051630844756820135317081263057606669804735205998801368894028927945812329812462436397565157127901869444095343805829741014679597811221672224870611201984211954293587001763263888908621913898093873605958237775303749403611374725660398491057993928058106640420595709724191419995448680448699982272461249273760191879367428715631708117946784988611870123673145787519877054702361096498741450545033436402035131986769747297471738941062734531182423009653783948070388829991696588497597959107090019262164809367734675505381375038081109051998230552300363218849368775981972042901591528784387002556806297961404958674134236683612008012926676153136030237249920641799438467043418830319241168116767255646933959030217901860894904885732838094225027468426654462627861199954404471355083935274544594332677491322417133277536658637154399424802629280950588033008113236400963588495272047103437623857940037933513527108643384023541723168947683399355993334999888475966625370749455879644350433747371390115168173398849646211764699031260947285791012091914462200402072148698400427402893924724124532402684347546402623881616843634020354506045371692677274909409981088470707973958664814210939876298682407133650553642449074162028100501666314937019161651773083000056082648309046019241541911217838994745215023820634986014775566394843326788976633796037049893710433559014910166694593477445407915176378908767941964025094643541085581793234919380408382895155582849487586350484171817727407958886553237223149661660085629630950678050912568470226184930597055364753602944065034081510551893156801086367726019628244755683544084587099135064884520155089816833339035763532419691133238061219792628865098635749425472141003238283647752776255580147065850251672067679212553911364328720130540555949311299257045300697561375591723698342068221093489853995601755854178833419777846690249697349319911653757090244512186874537529932224466900639502001744707351276280827549009139757846265081041938277795096295887941321788341993290972103874535344389915013870498718588645932536798649214889630136317409652022562189699515673759958213174164055627382745796271887450120906662146430246571142471628367203365865028730048179210350091452541388024085799545345000810724226344621749730001470265444731862163284905111400629116594737009427069674597898158932481381093658326519480672994909235483108195077905729599064944068468374378211111470923848831609586175146442260615556113580664931338338404884891274021176141605605908666699776003557640170316027961468506531269268671177649626204873883329305937096530928707374214002202852990738852785432506090901900631679693939329395750761943641227839720420758987150682379915414784861072476106034935852919010252870708855308318918866427035653019075405814310085274794228614200058392312165337723592552204334159473554692958733557264347807294385073393729205231057119222823653833549972258645894435262259795336317130657389260397279072250425412513435795168884806567129383477186774170271912367236658565105315039057506414366094821387916009566130688512850384765397369721702820587096514684368418187558157276559888513028652593321529868922537503216240622813183126043444498203676449570921821609923482547251778401605906372470127548828572610213353664302304207448001429883889622275737543844765934357627088983134315518043868686095066008328270918572142263390259597866145856716018511484540548541470716774005143922429045218606812395275838379059759106643808280472755706065002957630921541529593431668352143110951451814149679749108877251372540623556069199246759910723794888650167032456908870127895550560568813115615559957108267568951694457345923692187301555700818147216306542477275783553342977676993081236414496852265267338215710792152100044398933053184434976473015260979921906554206436409826525078424232664895403270431965624222967463934912981291174068376687465532290831231058477377733374040480621564315422203167322938535903321729641112975746927278097745856361831066092022667693735647431827066148545468735627462109059525124026022487898858508855827999677373406441703156239238646086466754065565237732396119548896145985467400039809584380806719174650617944102443747931022213320679016405602970783535614837524384331069808215318339715805337603771244484605412866274026455134419472899402210636143343203188079343582916131327558131792101401772209923428231399996847562932313124385759533089001444993456537231351764923604699373891900832729826091254718285473114259858666434047592383077637479590924927493929291287918227362783290385105168155298177143617073907633683734908503216701838866262109293014217145158285583280563154207781247790936355440775434373586012417028646841110446897432995068806457554022701299736584409568076257294539122989575840783065284636887278176584097895555199447291782828842229305403091828294899649920528190244654583709909734461316654810298465930079378882444796208751355705311572189919840036613920262175890077382337037256803840386286814709100603393402768896763585709664131225034880158892261639754109365975497469705594650061643270099397538768295875702739857173480175111180216372777703615282178717101210434037796284352829367494439136712910185077822709445570330606024872950806196635897815408631743875112889097598367216473944249739636352218302514049090270180310992824147642995585458052479820595034553585666632484133406997483725036110581533826671833277260354133016708709144470091636839435805391921598467701035358150149141472789681992296166618846928860637140444151607939680105097217068336808893960976445335106292770985949615769677350913861396440835769673852407759386678130995711372310313692373238029123980565179459886801424930307714553453551411558393292942475110547119745054527935599268398337892073639219960795016930943786907619049738630441226640191301382971723647510427130372411391186891086537897885044253608134792425985609053713817520919687834166561527477392457061828500325001046286955021233304510764913601179491977844961862968414184526948125529285900032583995558632244556964762671081763855742051217871720340211268998077750585386989605143523553394012237180846376014411460360242872316275322089007132821072937474157909597070631047822604831089108529577203855796772840708356053481940151611865097237464374189344791720385738442432371005640635499281464150967902144018083144953596871733645688721622634645713563760084376650573254954625999212837486099249311417565998947937802709901803660206124775865518856589497377898754350114891977969926710278111895617958414836003749889870304443573006553826806438396825374502993073030070685357706440269893672377784557148388231325919997151700033999479606379164705562197257187753161352613568307814091672547766763366717912550498071492991903543379853448815825630968252371664954893773848334787249779942993402467512116115912422220097408046812439855036252869316855202064282169609814376275603714533743750193426863710056216610709932614189212238817970740899111523461990677309575814588332982272909974154996187633877084903934439017569092168751271330431967628866075594026931729697746323204118356700788052610879670957234813505366978044642558833715902337649298753965286079906320226575678193977472633494705641976506917791085022056982746121963635487983901856576653201080112959973888629779837489171672593266959319108658554407580668485228712447325054312313554288597526161310281693091807848099797587062977885410608255497478073377400311799180644803564665892185582174333843459149500260725203461683735265806694506307092724345216584956038629533305881825947493444728352732919876048149593097323834446946733717487082600350131369551772959918307859171879002389293578729959735701125580506343505142211647514634418222087034320738217879155124328833030398390986399344778546159357684993083991942868046635364117619429871862006415987828603171154618052885564429515290998604407623182045428924977820059415261075465466828161150716897786032326006943161155354794346123047111220091566041182749119336205267967268021225975534341325735027411071682072226388219041508251595906598225274947019570252100016435512624319104330276679974659980211909865058333141618073076869281457311307375189073778471850025389237731488350813250156738031945386989133416355580875107465517061858469591312164092373637764816887296744356161747792529650296629196327674609435345940834048908896732088643682513150482265186540040921563128208315362928629483861768799130373099307906319047793392120217293778830527876239719552598521362437736265628910471064260087961440103402249438303088802186597372903311660878083396791086224106431420521798291225371985606792640286207471949942493693711406568441862813225903714823012706621446071941810640177766206469703821459706423325307108676476960160630284937617566550521921961815586798469526934592684811248637948376480774747526417952591005169892672218510094625328615570467601020033557739526303380367470205411186562421208588426376759278068394188442603820756679054668725799554587290982851816436269135024113253146760356915681306570050337985624417269930691587562943456662784783887089690322905385967489793618172180555605668450242234700222019255269745566927236674352481431983449318563791293353247111797016360147213115125164960289461917514341458074739255037924378037153051488272494882554654043667379656509973002465586097726117506981121961123203279940623286187579128487258465027676728566427250503095031021808957798378958914013503533267594515750599737657669380416403245327144623215833086100858005300580367677009135639281280677943146320283420360697019153222793264080351438773202301631318546322585567617203226706120761155572602103551686110564555425655014489426111166768120164254733947034288700332756883427186136435380028474970222582741866323724796984157888804030083122743828184332398367421970430336516766115333081180226509397582872651672654017983304218331078089628023160396348945119648875492783781454870514241327410112505929240330700347553816781510216382879608197387497320195565348524366869411921033364698098935273303567877697741984758422169246210053795877112556366065878704740105936840386886206390353730525428037186370534643573056941934188715322320496842936255552446832625402192793404197837077876468945684227458086304933106738352298427363281364191489321471881061079670113662140618925445895251564735208985741457387818052325390819429966632736591797593498848894210823103532516493516483798653167324493331858909569193722444680761488928083160434779363060757447692568227772865239191382590723509917263647700998987337399419189053941545038031912631631895590095149601197428428854768720916913960933433175601522946324157935141696661430206249440543087351357578452586880761138677154501770575249010577217761124448627158816906432477926376708432459768716128134577068911072591796199249374803123867613998771754107478499271040258256047306926262239955515048041559770239001586256128501879583510644298947134909161672384112743115447312867641984254028546413789038935914672678704999608951950111585517777522340392394876920313060410661283136177015163075876740167453285779716792515166269725521165161776587850934716354132700297446518323191807031525457522751797530582470184010762870230485207162092205715280377810042672484693475417204029755446821668016834665993887660115697741332038456233561859210873023134870428885202030973455108371052415058444012061088180177356238447876188208410629172758126124692391749352893721990653889778063462379505216663849965042925457927952935131118918075061883307311466905344723302309902609856886602437792453235763627941555628107661766809032322808104475346658983989478666989423553675840574878211324728148215713525068213673157424828843265428796065582307631446990551174606027631489331547700245678757690057901202002688674246631121614150487487586427254048633632832706496894538488032946045689066343722051917844939213401705885575855056735137734827916211072464681343106773542666921702281969301768997402902465071956892444010303113036950733537069822753358728091608635791731333646054761306250323051995304451929282823310329281631639932399541468769664461081444424054424851512124586915505566255050160802358193205202221673368540836526395237065767423687645632074412724534558594540204998397249270538712078511499205844342568522171602551534406549908883898041329428586499096340916288202820325607619013832667831578276464376830679158652016352473809568226554035590406035659864912371782931341735204349018937185704238826636265060513005965680756511740392203760646808221679489289214195401591326650507034327231730088416075516996976697569805094668234878807963120980477547072664368188253220866242443263321256827118309443748058087917633607712520783456347616317117169992527777713353668778596176259573831136048837759390584539129096019407037770798230384164905269760329646626254834177390651627706531762128987709737538503414405423932022777170966669147498878944928992100598776570022402771408820798081439565857550547328231142519139016685172063348312426079174667206242810803143130273947782700756494557576628612138111557740062906461755278656063454409025819770713196801716173733473964788849934710755634590997928913754087628179950250561547655600279438198145553812341114029789907857166113341314730590701274125374269005155664056402253768522018181615991631498915610443408497368451950902667314373805696918374266530209720071028117108089349062840319600581832873486092984078172635673966813241571812068937348280683517621704346904404835091855623229116596749489406037188338207884565795058788841758267862601238293261258009450357849100253124549669250797220239694597252334538487692681198811876396376704332914644256557197142552081715992606403175706418455781633673534539781225553954692542496577149520416983186749038614423193856596923939538729400085011065185985568984127964137400646367091485306019762123935255093599022331357506611256613237515384792630596581554192931025333395991383920960348207988509257122570182020425229919992660381230821443641642153130284376030583548648609166537060191218355775854131588420117881843519487283426574383549136866303808674715558240833999461407384793446477389839205187370651883891621050283113374451798385189306825658520079310547825824000106203542066121034787042126598348481523839137080692566436917158975573926536560336422439935198956925277113063093602001680630326852497322985505427758501898428687109531336762536782582220928870584723378215249454755461824455225520691440916630394009260629773247322762756106293444585904735578131119687439658513147217134032963750859310447312770175931429702809392910120850598332663942958598164070956066448478414465456620308401528356575166652764040658258347246213391915789294267159528023589862188561695407314662094867236802517784673459960708653215711904196938330822202081441205538998614388754526310898678362097179394085385556213570983078930834144014759372736791923015347363651175398814089314781319702433617331153397793291150148556747563602066239435608623668737504151971353684087159915697660741325960081441512591658089728568736008223124545055442164216196011033233838504443824117062613537531197880449972265488891600274534444729120135032359509201189759099832425257906161164281581660897027062266482470071492324221978144446294064627034632626697129273360473108095132086102739305230360749453671391518653941275829069310215122446177721554671676651279456080392746226260844493413451824279438841310973416761067537694992291712760243882624147344921898881929693596651634322397435404588091550818144926369331931713363342882656816489610162887258704767583594782202049210557847697428600215988205623289668039282322272049006297129236239421224607606312522203366422081325804893020069357191095558912403727934555416884022629183773416296327335235960405106112359307324310906305472433644803020782995529307912385149093549499499753729467487723041984007488066619077145009198590219583782364660723356313958690632214817689281601929910024871615566275866880599756432843540031194204837708773510685698552758479231177829966690067885158730838521012454583252872782520412970884408406408896467315933383398296813805357669956959572588468106582482518636165990787782370649093450759174197591655005795124652961401416742316345857007118777185626083482279742848853199496236228794037163977529961380576669968635532713110699446378542942599151620441794657809449324334213908235807613163145426721436976522545351512872736933149819188987664823046108210366749304493288034247459325715492254726567180985493051858679680536904588061325957901069359343249516464399329159433454421472815104164550979374490801093863935969180828343051071632132953326855399862235146911099182835980730571255463770452752706077264697088746106261477482640073524463873267455727504180517197857627819958316966666834084530949118784184097203027692530362497583667894498662923781954369011370272929525030793586620784443913419966879826336935247994394112258146921538136858990204562633093043821155491535320044514191635696850670434300747359918546349350080084400279905644725585842544854460809281163136076445359313360845682824241388233686048779906885753271279845943662240306495238382606660482636658315991762988572115628514683442514691635677071532687493150973181092649312112121357394910914606799347233385931829845120937358094180038442281633593762417585885132272115866357183735924580899071600406399404755798051449465053143333441672058338566341214657461818050729156509404169491768531236107474866638186617559366494108979752097771942759586514304722845061503880601598533709972368733471750897154648297092072789771787914420449538753830776724348900759313226393095386986099620713555401843936153615702258909673475904486223366489950801390694851183447742641511114361749224217111139614198534264676394742369920481139947027845364933660312010310126829717973847054890264545433020804193413840661591666094897704584958112251873772100723610288035961659379647848571304805004192216826728654801966548471900367819351075883818871805392073305878965848128046811894095362614240208740058954280765191835870033838123730954293659602470120646479513577830957412121261269367302376883725696471146768353053586449641300735780710412148902395955215269095420236923513315703882129664603972072909699242031267291127160797815814499403420879225333055429872486365523583206449989346377702351181341884334414032310228230500541933235000776724928031035162313225037771957433643067708603320883059958406681269971583778781356236238885166052093872283066724637063899336852656963980384968300639466004545993849471042101634723624570801577987558956034457276106060749265592710879071132244686143417485922025031410981700723033188611961766208668053292429769271123536839168878640948029827040370963204925916080639285680601981452627323329130226284140538339379431173901638265611169403336729225408389081816212143965348844546887575690551144759489036206117251860186933704243671812270746267988708914946542220809153156717130012508916699149369218120856467105685170411444251525880642708781980474388436478631813077593535935072336088167493238607210901333755323356924726071218264269175335793117423108277026561246571033146815962189514472457524839119241896826745943653160726806050983746217215091021483059315261145688443630774361742827908626705137039311788749374509043204693239273949709770721587120815855002289502443385248267418525991956986738070608476496474447726995015144505535059648027356108322139647802574404922603067133833829691908657477966385417464831009815524296877961539640722056382090531342778840734764654155323347792573056307592783611797108038073363943500556733691526307970883291838950212000785484081994803110455276889933389456186061968282085247035387396718658569088157737448759616324161317748173518906478955253976419483118163658966133564928880001620711549340903745017085403336240540348508429892943453562225742801465856613086873839235624438930116766737525122572301395423807963118650631880491554571259685726729562114070042265854614511462256492310111068789069988047842741047027911257520297262473694483051425859363148584370575360187555512990761624693822829916608861122684901690036065439898701205989867667903322794384222377906052674510324189786050841331289861324576521347545015067865760166850550680638221549437671982264971029650632798550113992507497028750276053274443100595767226118551686297027857552274944234199156260182367026194308203561599820148360010902136491437506240173638085140464094383920470155839016988223498929884078752321475207077300812047840552310760559329196258865333362964301303240623223943205313133409613809434781529697926503260576842393259105910281931085636323213203621357249143465491383974238260454285278101177166100072992514319770848236713252700546485497292109269335500772945461768081473159778066317098998440839059422600758866925850101523197710160600503927130981995880995887164165146616748637679579981223404856697648350893536745333741986071978959105047718293383248437966916163741870797735991684127548259656536299690958438935182564988149804756987035783436431828727033873755300000597605630015194874821974718411464666465673833278005732121104737821430469297830886991686575019725461124208321523981905749592372569838935220324259012061310466956036701606328965998157361285792842220332429517830208862852098063324877404444240337100099304168691198330114039685111227987169502651835262292457570745504482216995237523067986188691846514602933762519755726296492554570057201876786248159729910324134376259398736204393308724710422140662135501029449662340968669519110052532708931062674386123491708628994883611933557748175564310667809609427776617426971620494074682075656340011938151100322854510378992274965214704519817968544168181932266205677661851329643425613102137535920419821807745234794258382857593969030201498860272594209333699672777882083541701382174684155222832487373144507697109756535113697544626165594868680707494211976656870019361784953603954601598941200656672888494583700719729347759391006060203262943009527488701490743648572501095554342061854898092743535153287312201916490991669825021426794560868041295048136530189582645502270722694149361347579882277910562081950181074188937203361593716421436262318983660657411868050406879182863252883779407331827176291999529838833442813385521372698817905586418827630292467702535137348758916739190516789249861119813646091057680861907366271359859719218022912031767421864520698348363677444041365578370404202595602797323237168808066935744137955150206572630275982838366806849988827605272299157952744827479293842624942736110705649883103391329072544510721973769370685458050863148695302606012667024369940603071118232935281711546306825234249315473299511472824636397122205438553387734362758504498738777084038362351894368211577987185326624990030561517546251556999083615203325748744193989382413560092985993830298342808503928304853003902542791708574390657819879765699241056429115389955452607553259780779559749300445861127260565387232454145163760876489558170995509158463133038522009065780439737344872126531767913989619860980106152241267545641529121222246097736664249521844283144480114133065927687007690547159261470198362029202074293281932004329722364481460157421766151539366008790800713517015211436947600119479572344270477406785774539105943337750698752905457703048251615633699803322465811020099177647306422341020542339713769315090405559633545785247500651072677762324997998052274674998059966304748980187922465172537416542252833667919250170145100730422378581435112901414258786141500606703600268896578837392109305490521845454214162954958555208172070168273733286062781845707203271263624180285909545429179578683545909447073063098808930426193606268249359560442943285157736035758765063218880474068419971319974977499966241682996663093088971504350103420155499251464705019406970524559670636691717953175975583429888821024551027437767146358156644942003260766903734227978567505876313156004172796703945322302287163176042889816599948488115711972047933262475449430657554608942921539800072619089564695415829017149893735417156771597938372015935527052355547598332376795559187732841685175488430921398210858923978054422720428404699670054198794303158316250617022655724980522301911760881469034506943020844113336602017680542332212678586512955347749102796397552164112102568693107005677262448587786510422385674293989645373751934447906246177552685311740525409188193035297316563448762750476766909191134625351642373659933022216538309743280081921216420439341532938595288043014941563320643596794648986961442187357371444412718869518216100160795153447812168768915746383142198706066151646021757869877841764673328332515319673777949590703113358340001993776216685576356718489348103531615143312537763163110797281353160607284395013914875609467393054499704068088242226529980496420694835465993826164996212996619640687730928214412278994884200596794190269824945027213109848815452699424107817833600256042614475822652668984039936931265653539273393603290219599090222725835427471548413221447340919627297034773931624442134701879686632190138961289708709911074756189464868680000708082394232307376559702929602351668577988013825516302032507142667451461637066787358420482413371915544690559641037581607532221316625457727900696039720195526944900007866373463819270522255532813445180280651533751417083994343981687401984410412551668180170789529450374898574292835369007927946030169084651035726023334668494715415344202284985911950560336218602066445402873778851549742605780228189401664654992471033208047840233634617390312253114123105715314273061431321609159841615548999918277250387270696076740206629887457041315107359945689836152368255965689032537022578780949699625217098184569708472635840677024553824590569670472838110171095558522184925094120595932727473089392515486827288282109859508813390636617907498581276626917178477078033744567835124340032863892999361372036375133787934254765753062882712065399256171278490152194681835562685736361420186774905392826441616773947013976219456308174761351313496933004714970319255975309959954446822467405925247666731169530502803517016530946001165901430118833249380428827820971525412027740833805611023893719521529324324196210177147000179114850178967633605333560203066712107348094429367371538467512703279320422355554249946866894092251618461000126199182142983155899149974455744407417400547191339588070113492336660605685198076281104170427296101385045236575860128069803723741176450688676992661002357369886019500151610599418801069354248948784848324220729900898332502761340270080216096536374371138572134231007659890074359245416142268208768945603877036299129438806175700340059857305642790157395760346575955659313173700743578139767021711837415913423502702596037798530588652928948291055862466886093056131678519279385289303936254150651535338090797730133925752522335652243837122741048107541379620665409464292936263927275283600708991250985638610244970440510417209733467817472349351068730133262253594842626377912459895535137613902770995581059144379254055904977554125298215416971614564872676305223860435908050865797446856988913067989005136225429237631322182943630852834526591686980421325574897084320196773557457856523940567045077888474008735935983133882625465380245170091557398150695198498349089134084530044659881283397749961537615485039994089040476178382241620941436024120217787497041251624328879221910115345019202616502329721816227228108768278480671487776981798856371125277878942931484026669077480266121274964757342354192526486942014605211372654069309215396644725259008767679881528579105042694648841663660705507024120306067444222693824862319243834721960595962467727746013704735250863681623035769569816826455718742550751859660515378538105973396391846439888626497430896455096135351181207981256653066569641721290465992002691758648783339805765839396152612960450790960199477378299008047012629679974691716038459007288177667297628229183227829430805746796701393108257576653286658766662507933655544312734570330436256819853388680914882498849811972782733939657043122424448069344996172574759995669554901662828633381754610863375972283097644848364339965743560900599276088738169833533959600597679128289572811216130252285559490845260575547143269934584566148328617646466008399172867355088769150559232310008487152846771022827871552237216759931654863148896719151477038106260040511587958953301055922414859572394789770143319069517675891471639119036060619141037225743445736217871667020850965203423952703955806247696783508662228788545539773161851273042632954543435280739767306406546319111371443277556053394566513382606570432876270337363171182738529842475097562820452051916361816628156961529147959269270441050436260396072085160670454505852782424563920880354416185491464534597177309589061329481628134459719677179476741950212417975869604224613366003026677275395547327183056712698849680145861083604411829141889730145849446951593142177712380434116306380020340262367468309288271228516865244629909504222518057700100145737921249245704460358240870186360668012373128823948614594766625883840885254552334191851958225397171330342087335083374205870629558689923218603092154694920958291075115236675108821967363112299951358572892103459384051261305679887250531809780032107670741661675926834324177723544943322595101136218368936057224784203276684138681100395182925311509152577229295364018411499784528201452171799797378195396191493784049104245759406144314266341019848251049548742484727035226537071413505041177817401140784884676525808368594760999897635007095811775686331780524619245178113057470265234144224861950667362794231646829799685077813100347905034681877679690216334211394057571905656122164649605671991377736703993459732433429448582638941408203452688389205418129993322387752454259762672328329843270171378781774973193482540084500710361328281664962082269662077935963159542685843277138732740328706084893080083317848417352107630077391763337339387957636269108938930421539991117414046481683054162697222043481626009354534678981001526717249474684798278614092913777453835018492481980449102147727629023741624315472329455117470284434285687434617508744553077020431847081427647015410311719788744558326218033695378214347825288284342674813298761407655787419629633147136190731557887519355479047835923053820220271404253737535684800118191469752344398002075200244470702645976549043234422366061774918689293139660865375782540496363255797425760330490436460400015093711702144963276609025024241617987169998151780019302209011860172654136123077800215386198698844810610423798949107461829093222976712218068452710001947671768709149572996591220060972268713518402934308939498065042520431334159873136941061656469513733292862076084001227397865030515834421126850966156923053830734559021653919462179331388369076375938837751390700023457438294893819161230168264470839481350681004678446104438331975270950845421934341340033237397997257734030805196663014511612670662694577505465872780175733056758485744745963124148843851658601537575012544848047849339146151802125301646055757416872589995051918096387729795164868430250855841324309313603394384196169337700890727670788528850024598202215397582482822532971923899036356510570177400284212064080366765452208698680015608756978206711336734249306762793471986769790077672305746619760828364303399459994995130113115892020005982263773012479021866443708488095249503932668227462424026806192701102603926591349264005491657794970205881484418196884745701159506187150319773745175916623213819090180726148136907112681449409606945309091039308310923972278256255589662964960914185427105778176744154344439777644700857709208678119337969484005630259298780614170817196128479615564861882820322625255018288605332274238075830341102172757776850475627809521535127937944637842615558656167037503155106152622876167048101749619090488415287301722116029355486548134817470692611575246211514434213124846553341749070915003696548110008685619566429845085142621238164854700297892474680494064685057828319056806537904763288218042468072753266204310899462386502221620122482306712969290963228658037030647949528587623263162845108575351597206161352961159979405822935267674732628988369787797851793996084238402400546044384768644556225569873509050569977130642856090973229096587473397010252037714497662032996579629423639824503325762101184117846616570033961804609747736338470860754002767765347134580291403606867912703179504764607185614949550153950919374017104794191912747400519573338836629847772881937989659688679409528994697059426692141283135124561128267699028615382815253398043974747796517185141848983857166413089657548664935118940443492895822286427673359099280573839804241350107834628655887304095216977718041592111051168632997441567764454409207857400248277277463664254094198522682537608990555519548392088254307528680297117221954770864568748374672785468834694219603526929691891914560239761870665783390895808980865234965560922706685746271273914547667112221179580819787911940355955107481917522764633605551204753883977865996085892583072536839089771200706554882544914915457457136083472442231095975246556303487956539769225512811600345030106587358678532300846825479630966066258063968976735323946299274977723443127657346432021802103621557066081106811681451582841471421025880857652119457864289853301304995759452764691617296883136942664260534261332423605270797360801828039873420421028583150816404206487469831779729546247263747658493230651959837930920156579089447328843151926797207024287102772103121923274530855037941985774688991325449169959856925458662366369250862613956514543472304564927965223285831290249614602454752467678004861742562358964279581192907143119820418572213145665130037925507905386305429266388116357637220457991495341691549581700871601402325519582809259497958625500397778081954182873783767375663676826710559478926293747806522383702440827626321630116902416159030954276594030340992138157873071424694460707472790257949028018940721558133217846390395934282009223801631568453738580376347649057626513872954873271758234344954989798332702665371855968522942956427303838844709533670324995698281417636018957816814620538555677816432212697707276809439131889808671499282658441981296196476330510501769286330694275875012287642560604170672089915527387986173249412381329385481946234227703203248778688421497102898005323197643971972892066709261985329274544955414654498749533535282571302260528045984324377469492633917748412507645390353952365538488873795076437037355733255673670879522193241732183128829121113313959091275306647840550553765163739301193825465076159333640054511221672146023677910920934447866374150351676001326099693874962204392648833440496247094364800076105919799468445592616773415487852907182639787254235895145541859897873355825153205521582862663472113101331788050721302662634841286065485019451536646370156156215078297707305776878072002968220622895770544868583241276343539557601747401939031606947730807853398821227047955439059233209502404109244205410710077323182601234821150111603697929887790082919194933865660356320760906064382456891612072371832866071700841089429111100902698838136885977725730388321317914217907936472187833749957173789105448435883340318234815699010843183114052385730977085641270987803776725884261661494890704245772429575058299134911855790696389928791974664218379326874511224503697777505423642875774673651782136256626236849089075329035108747487479435878696685788861798186114173033488319645866993322273090450905166667858700382884778414639947365991006456614122418375492476648526899656831812763193075359601270012809922327980916707945516003332263952261054682309747550220908359596122235456736333727773332264892105671351868083679617295011317222478789900089262310142008418850203110256444860500778914139294827425967669275611421489149347115898702479822747445245252146646697461406635506823633226376424880903079636301282660027841437159294751323711205792695861502416524389991875567145784116874093829305182476792415939318753441473653479855000695180554810837514305200912323246537601718590217905562562686152997864666995572789464553613867493291656781128453571091402173587774015118690758479264482642551904715698807594595734866149437065249650437861526070488901183564166104817004889720008029483227562173805047986186842122280046608833162567704423913858571863627077513182912428727369085912921747605447678033853178071380902385316511006116155262576357577584157427894368424768109330593314794466896449897584405382892244644084117672706661312546903612737926178990893377800958438435889174640531747371957735543667056559714336321951923830173373927094202579485186415149019081639767581725201171379989410550888412577219807707689378894530451038261262857717936927151980517629170541839154579499113237575275729689535006639606724718468091813071732282824714869138043031467303011921146181518026543410830059779520360662504857161654646158898610323416393626213167626767486576490930221332149602603883963147571584858215771842266751883682944578881541884347344209782632418412615427887715732161220554891512002241541182623723462269947669017739652449514820273750444209270655761576474142905988686657975154476793444335401718487627251328109438938061552588311582531007155889853689714899169510352123919723940260156364288282559793053745506263060693677111477092462690907901429314454624718955107316308879102186495144723807348499083064247825722227187555850899322456859820727574525746928619028337606393209309709516913543728301540317412076758921040755205378838974981524417226352306400702634141173230700909820702607462404969922511901621566987214665269862606807596636992648114690296248283605913841118214383073638384173590244373423711382109730334737744221055055016421909573433645176020740564890408299371717729547076068045028867388623631284603083126147791728612665448968558414170734918576849348269635491907326298969129571472109900176489596151478464733653026866715712640266570977262034543660252377045396631560684688075106468444254041495832699280771373691909112133485604769584414328190301661630176496422438984580449214896547145565131527029983904458170143997784093652060550557732772392419623907325860249499353929959161701167158802902317384842201584498480171144404780040593025349335630121425880360561647445745606577891098773035359820435620129285147233786671350759453272199198082838437945623598084729996263223822316382537357117847424197215834151547466668021086555688186729348174091614200326743616023306972741182187168133592017299457164125550211500265984524614433787867773325340698798329663476017360581488565877390188443298273737675576981596220263156488776829368510998113436078814733279436518697415072908470851053198212071471911356483635337301199049855317710675091651590391385643532596211664142126967220459631983781998526897468735304136876526111004490161797764467466846691341715800532335416015458691522816376253576207586717615038128559249633929550434228149810582853456912450300155592225293879424295148438226856103513467464988543903984639262155711825171779403459316451811695194951124795576119029785642849944341665379857120285785535240981161553041924951354350673255543002096257503255113393092332098958141887198882988185467139923596079633454967686282069108595543631778405398195397433896541075177750623331541845449388664690102550390419614247171567053816011153605350290645664600575227695686953423357503648751825418347005852450820658008193235907147477427256086901654615951914662396302708225007753332480194148711145228984219486511039500142916070353537028795783465380264067967436519119911139101049481408847287981027969589653029758455459532336371046021840412837721343377634090132914812056923893363833652307376105660422881806589958608578502269900012250963140210136557742209271533584265530519276572287187085725018995073345781241207924665390280430833997498859391022593921181960102664168973975374012660210026529282595360781040208158441539779648096599693616860041308095387946574490012179074431850350293073958722203006035298491859056366540562792394675323094205844964758929995457338499983199259142438013226172699884916918284446721326191097257514351905949481110228508088339571169852178819393119646210921008310139584178881549386807857580192280439423010771562364642772636736401488836247167304053986024783936810448030711721430345652612769347172169577921663684954555538666328107068929936278798698638962339793028392485877938241408544482385010663589170561260978388764477812402406857017134838189464323011582674163125992079032721933559279782535854655194572996270456083967581800120127347881563940861998377701994142590705056242176065352038541699640055487297210526778539656577664918146405447078875382991951416846654966141876839163872990227521008488748023673532042533369455474811704063788360388640563802060770961154823978432845442500041417414352744292098086718352724346647794482552502993485542989816344567412321115090143940563043749735778347396561941748708542070314640899170693149660068220927201077315781397319012320183534552392904130289522637207230880278106076684155710099913835020981311634220337824865699139376161420693245068855891396906361860153198470318708252011592352124580411261458133842619555551836574913666940959770405962819262844667653459669709117826421614859469719398131442981874191842352797718216936555774184447767284269050769582946567668865873538360002613313410011334641345523261034972235909981700563907321963046370167134349308764686289752385121068866536267302459751163695030506762793755614070219118642626282814515646255492071872057664787980191013751934505632705045358735740674980750553439988286810764217330157287441282669463091407578934078752440609964155126052473023396608073156166780401568823278103626466795408161436349183190553665573469719972294574610580833119543486074288397480584156611115310940372769274970185418863718612023753163226724588113605485130939407401894617957064555237765865706828169415276214239381772682825954817911585824812196698357289136313296499651202502732482017214114773306678869117721391733673805084496873844931111632660486868979367691480886974592441901566411784102568552234422229474027802564772254600899548969552469559280396336394695641816951260374461584830216626066302153140708315125987630620833852221300377180763355287074079081232308097283350143802862035150515698812806998948821771841500505866433973015989399135055240623578988537778754881384489433370229890495802450635004103721948023806515937428114724827734825419897617567924085515954542939750508349813305799935084789308464952708510510189925095571611264607022520121002520243386424181324809566990518639462836530777496794889385332229028929171170944688069746524340173520039413173228490374711079514048025679977751089733305119958179176259820035978478532111886352819189366061882287946096930157771194083643902685949865030889139631280867079323327752543879849463756930536686716652724749479958222752243738039746414017221001412804869605316190479748903658571533704052232382016672293011115544560063447531623400585511868956100211405784521254610941512944511525183991620757361223730575401058248221078227117576432849724043824532635515286189040391798608779775229457350034035560880298404536375750109742960857358956522276221732173428983325620357308438801713687684720091120699139974903465513490377661345246285048902354666033531778904532150417121291661673514147347540132816760326028145894098403346907256713243806074895758643274199004528759902417036043152422605062999052150821755431396877347266171686322612884755853394713451293386713442940045678450983733206134262218774156352160444906069632461020552635400090337202553349228408173045862767124609250890533016001047515475798908257593226602154164540387540881831633057314147849552991610201522580193061616460661934731965687616433754883737764652967062376229743027105233155094455558666310036529646158520704217617305424702477418592539804008288662488345844968888419178573838015836908118524865865371360850278639508523290990212745547301057359240685324698401049518694024542835569539004478611882058669197574897591304800615696434780282520509348255640418654843689170334572327633290295868169849094075882060182528017195440896947349516928366556563603447733612688032045207823731668718839936255302620284864269214233079389949311490806360597392056067967043338958117310460035225816752516814767728754095421636851952011875096150557863120523308991619786801871548045896472861979936697157434964839733744615958134108777333754497549742558589080472582740018308471668319244890616747973362846479072254789699702900408679820261524298302087292324253297892318317686620921308434626394593043977076629246765985164121208341919210331134285927567090116666467104051467898029108355890131419788546971755786030278041910712819266720704235178165667970564312820941613537800079923686525845805669979864548710750283184946759082464763017137223163723561945565868752554451118553005970976343601861419095232557486414337150568438062709654572172705279900784983379002791584596897808750980501095986891442584935325322266291806172901783938382988674758104588045748689997527027416492819068186211180073427672485305225366146786214391420410654765176868055527979766742503771074949439545265526047109969254428693618662584090592662978327119048813932745212290215712637603202607011064799954519698986543989779837893070813674289100151200868341229965134677531417264792582142563437083226211526797736824366666392581450799542415706653290791546227221632906932305204309471741143773105641641351782145619994377230366380771936737012163588036175873631407244017221877434474589566357690348182625806929005617590878502786128822297904028611565194356316866339420177734288551468114803230837144393382010265538761011709353790637533260653104267679997245689740151441281078380631676189223183646048015255937988525850079454585515549252072599323083657271803863062167695903531453380432103351969113563409957569074310013179488969201721310382730178061147737576620038291124792929124042372297467543412906091111099943699057865874195199487953726548397830349560980032528616127944412629708042089469869506779562485853229249530013110239088985742382279772085738938929158523564477504278305079264435306365549020675851112300012112967124345702668076501628419119211599917851940270890862908934558434093554286165204022039546663270738656131164181464935278147017996774030406967601864599900241162226991576842921928431270753088390498572354890967207017798678737149689944033752712972761351904107417416618983371767799808373023494133294856895922118158976245505799097672403905508655621303623607129794344156157028466329514854262914039274149964742998227422521854196223619968027173879485630439287542691042603673719608468691812630601518959571385133204297786766722928149933753354416733439617559948847225100335663182514435457718873919961522155164173651942181919814099762413436564352066790080111219920659236624336022658618346786272306486579182707075057270866188961103541796758451691473397419555195062335344165864972846445348753162481387519405678390509269591083583020382522195758890097771064049110827617894171166871267449451077000765765883183172424741741152159051518790325314629741693970981599587531379409053801974997484672158512055342470617629832599368138431903362780791063693295794990875753900206191134505455129637083740160070666241799617876153718832347822005498877347073433767389344679193102413861764542546101273792711996259510506678807560360352437557036117649398404388118701204210364753344161372156737255600665827775542830393983358825874941476119775246308505111885585781002147544075586619911235634624530957763985992605483302580171579904533306100989922932699636728161168447037344145794949397732880666796695934496842132749022428023673543277532184708858143320028475940209251109696318338517749246562476148345340938934525735907584939238619483192785941793260494915631717787884400488823439120451885845580025239580130851161524194743352223642238789396537078578377388929088100762237806773243097300640136590702822759915419432729766351713660574272914505355883442254277590849249652976731274207609065667278565556660701443358547947593153291363387138759475870101662214677761860093612358179333167192037890828406967422847979568494179480125569243567289536919357760900704001674546596720998628436497777857539526483108966558449524289207393475371552279734911389649121114163283713000750850423134597517259458722619521142252827352492455440980801007157413139489782791372215805029460530303512098376708306788291163144015962150666417486666665291309480499781681269061245176389888075333579652649484075251209952355003135185543155826006359054424486292192382581008459833178490582725632055422064438071360892700407279511911732717006438763176436930750156441131661747473481060830224803956951638843733467476029180405366030386197461907172927570490689088494502026360125095307219221961827993373658240142157830945921059292041373589436688081641689894673635336923338672556867799698093819356870527164755805378294325791530457111717534911139751298603818788047879026933747689450261656094717345921163601581367413902785946009278955685300286641407043260224933005595446844864593339396445690444173444894850343690436219729070754381093068378340252248232187483413795934191450024241816586022505717826814689932868144571343297842246794105657911970386575609097649912733495754179490087372490113799268463309383557196649135777078576579852163897153201237076680310963829387782547393263671781135829186455680088585961484106174133411619200436262848968063198457588541573374162339961366525769956319599239693219164562974722753144748390998758545811680704578874883722448824923937914268852761298674052909881352759847992033338293587161250639731957325357387914361320396007603709574534805309766010362317612323731690130319009115213804872265860087136848703916657772541550083244022112783995118541287577182197511375339515263886579841426520272776978545806171674459457453351034835972632674802370547749801093292538991944408284528646564435401104180634409435899895697093849402969793167709258048562627330927543984978365184898408641767556381094086618142225973905762105341394924345608993434114146417780511309272607538844178722898829286860032494193003211421120961116269215630346898390982000591280792023806012576939683287545691912720511161562483164488224744729874191349502955474930676419083321555436182950201728473106211794661407434176380975612234984251339423032225501613594999308132696359247104669218315397239944134289104966847386200986400506710337573918171044647765315825658634872137107344232371146874772718115403306607088959094566282919598712292089386508532853300557958231311614458414584285103003595029022237389668891488978706240390609619056610867993574811258484063890914551785089786695134601890983991162058437189952271162503813247042642382813634160766898265924091105513393926836129783414605401065673299094724289213589016211728453830657964764798215603001972635621514003342803165194194173526687030324572379267716876221657816519782404543280990421473457367457589476896536269621348857152890370436759149802665394109975186157147102949579752044580995705763561672873841416441735913897151465290266422290124502114948304042664578616580346690822222412312031112797793811650095928856326644396529910196401255927387878313983230287908556782111494281734527121436796943086860235295515924002472229013305133295026094633625820526649657575599115664829250764280992664962759138488857088047808972784629846587015587364937715090149526889722812520236390192334700211862440102878065430776686969770217613663602548826401590269425993788805469935206932043175062259958025261335825081204933307789465629553904874843542606533264751613337393859151780940347906580516802394050803470076959781669626817745920403022829832415005393396576458914229484764323062197679836431961114615545804602306682800360495431819119803714620409524257947413749438898926333407759428163339749016114088714918292274139682182522748686190846760734565155315923074734117001277692443583233733511118755243742370416662427506504951400824023635289783671000057207490832450956745927912234705869870772287402241573658813713709178183276834258925877887350140204693727718513853772736637623184892258338606492083606035012851924959069693035383620350961382344256133456489937273910327730114135771110097133798902258751654091185591170111458591564040385023264802676437662039935127923261188443976959413477160984978952018328586222022957475602749776663501711327103576076107409948562546461280224218184104263487286307448489533699805376687240397769537859614236978010983704207734789837740310334481014643421415323224671172200866573452969535173780540270084854990848342735058149752320411942007842326011011348139209098819636576271275371282394995531881382448346105301201339234238529543106703454856019488321617625777702088693381860893359637997596460767927071369022267706876134766722629435303165291799450413135716196642717264231494884564417966933449096469344641297356187789862007285172221594747930138409906480763031736391806628436845659788240822542679479911417906284678879770421144430245887602224128937417314651966328327747995221236209497934402175911604931715096317082905149817792360445728966591933359942011732182199543537617674047249428185192729787910774015645376165686276226459565873907277350955049882811150051610115325846436173253821876601198597783698003982902053115178988575528020696492684654831261646016776067085198241271271846134285231515908517275380302257681402347471383815170628856141531117901921947037500573163510747240226284416364850590839640915249296447604541632481065561406485133761272459675201335808565423708180482499909020254944113789619531839580881941053680999200325544590761010576559217572391730234180383126900681807545927392713162686171681240948870510708386915435268564247653720908179631233835801890690142834682514918175916002493641042709075709411558176939916216178382199395514851064195573248408046956761006308812214527610789145288174070377319441313159777719309266472022230889554301293381796281829349612101928589926990503676145644586319045395687095347944971129527439324932093050362136548308134777884910816992371637552848885238682364198373499581969721092160276662541475705815159112945232707578973112419432805058117117573554460651231991438190944355159785060879682003945929279444970041218488921513055677644492293524927100859454552636684714244207209162624329642312642225962658416840854850376177477509945933657868530778531816469941482221681741463244554882854298425594451292398610435073238755344343423654934607279606271955365258897909277192662801135995722910878155902728170069643738739957428027915800070179586061807675315011953675911054160806594248931875425156283475298622531696705361789303241747061971798093761571429478379212806788992378855462863905915584131659600580632644172250567126628538867552082172264790090088613946478123279670750291035903087236574650377768914551652067360032117672596173403014903159932301810281760086344948267322416485879732300303786896057929804077353998685449874461407450338276270185343876926997711764686587558122030421099103173435025511764357682073052919698545598955647933225445405902750678209918346917277405643594404934451821177489440905470938567567053407748250436947102119242421474874728817464205135360516478954191845837549304063278425949226714706486276762083498641109226656676531945348494286334600248490507822587607402381476877259406869299198145718671345208356577037247702141066065392573600398705315858692184214888481947381244175689402946599986734674847176694776186123042962563191747083945274088089645428460182566275226698571930855889609077559953302251250857970681292599683296650018128373558981545694575440405881616904794326197991822715333404731667051390025059918871660187947254053316224195297742324655516704354742211217772974735818172431064286717311625827340039293105504070245525741253649335331593920625818598215727555532913095768587721209083382183056484202281463856009256336023294313218978637936066046368110839080172300296799356915035776298970106793751139585675220661786781605350256068964005411317043079412761032572053202814426717818615114251569196799038644773899292210196765970115148144181906493848878938244372686109835509255687762539353529896958607851847807864294319945279095908294391201448982360190076896911395095659584618114550464133324991688210609260824925919062234322213869651745409554021179467895828715086478066263393246523095256837411467979791592281315152137050961179462568780648768516856382290049714760812689069526677316675460867032793268276661300044102869670081556805936659698038779176819296394227907701737144355585883366746572636288559129439670830150233128532851232353412538081802089869517947301101037414532133201141464618810491703587924582034859274153840631549885546683873699935960626603183953310289978361090729964497233028874056790387724904716228556099275575264861001043749428075804349821148415645990064669775565881800318998984688172085458280039417234093289525546508637736116695528224735067208128527730327298002266542121623990973583650283913226534701069988175452784190916424851827422191934326118859305296603259771800669056271773731765953486564543407983085723235943991320602570733493381598478121375849643256557734051533409053326819474053354584668561246265088861358824829578057715739173239375509912350698066524449198694584533957700496473387220022845538667235349410628809273075502440773706367413601249731436778171641495234338832100812685788953512705353083173863125835804565764135088973702909900544423029268475354102682500455821282394680831750118652531888605504981233184081923537234185196393181290231662433059020910708210571468678129952742182220094650508874777972147023904889086252045168779050959424310747718079726741706094594069919713297701280279041198413791307282369490376541547771762970500053683064621968613803736919903038885217725437872758928498797485718357947603973745044406629860924274653455199830566487713830896393247733679111798883862307953153563113417854439433013516367453557022928662950400892203203903195879670877992708664300833621485072357675590900751672199470700278828713313314774097842440433267743077841789589227929838142629840794702858124760556335728603396947064169247863625869356254488611126743956722178173948481914071314874202174910836892265590542079546333766071598934614933888355624357309855626116293041131794051263595146457330914605667746120023519994452062060353164929595891477067406307543283568560890274372375937914866131259465365794637249111830139181670278766290865354341345238747193025171674277876490340084792098049121245949499247490480073882664709005129486305749657155678440091080643915664929883199744319967169618787145404652079829430831563682740772539125044610190221049021730145146437309052291555323231685975177204748031484807532615287019267921017118041685956333713031197199704739412872905586852379147985451190776372647035992521005416354678069524479036105366704945397007667611977467812493547858264877000062219220508411778244111519164276569704887682668039228064723214339606447603875360228826414652816596808518235751972193578412441363954324098320479623468019663201189324446415313153895175989939553207829547899744315004875807242482754606231529256049389000748594573429483516676607149841639954995133511334123224569694887808272936319947473062170902741376726540810792798927906992745185071611384415626168166173347003611249892120523700968136322229692737737062041298077792977914221123934625583544058276663729439367559089222352511731422682387079002874208291171968550794720333642427265111463294042413718645291366258158091987032703226894531394308609375836833425832982202940145725140769415427277562319500663838210617928683229505391329903356524772651688027032517691185810143053100077381358624698978336527775595691921485135727983238042645763706979214396657363876676064711379438456012629115098590927630117236889938357642131735605970193565920479766520510460265226109245134000842139797957142133044057262738949669519079141928818842860047524881645310244560213087991270604488972831254798822360259034909876726589108030850652981270608156653493812218756969385605359786449045330132311264104773370369028371638855598170255216122307331483731030422171809528034338544364881724995117842877928528170999234179755832284608748334028027505892793750473625297646271141767916682155869611385869483582821862628764716064983449172378791448870617993147199231887150916358858793978491615780969987106525246642021667116258052900270736595570467317876356391049050792678217097024615859926000412964852583539788453938303195599587295263885446864503776949963562677630990773686251856921741669923456673982387555470632297390007817264802160325177305496960038270650085457486951722046733010022481437688380325446187096363186506867692606640111794917616300499698627025024643414251592428293120593035186575719954141622958430782958102839436440522840675365798789789612828603290208161377985549705060814288242300895563609274101501394985402228005996022244543897580946320813196644093461644813040536005166427842744873250152328770150950470649379460622763565727637555908861472811839709688494404758028698328800982934286153113522600020462009375519602326240729857477010613824938421345134117914454323541774460118750621733110341974898831610646080274180408544875591554973232707065215632001960266841416807492370517656577757739287573919992731241431038189451136798637963919409200223530131326963407309113308059616110573210997698197179828419166369522313209535381573885815290034370110639136526370316518795341992218620861494090781913196454245863469513160547253627270063702925779755059170809141732483513090458259178052018260326871325389990774546806243880174036577833377025876561560684629347649007236580637328611733793526266819175856443590719099009644052902668346351201693167122820767205094898523977069156848797762439744609169187512294379713666213766513794802156587746753596070508152956219919845357719481774956547449580533627765897261662558070086025900327049123612352424698401506002905431391024480920930794704610851755769203072616344885140084350431791052948670043174798170563812887332087922288533584525827084559113697053061810121298393233087135191989339027368415967664480947758371967084456164464946484051145456998520734588242458178890792482805920094790187582097603221194231848677165417016716935551192398408931951245405980779603629745460973754717923040468636887841836854305802916568469937045385628253621238193508188954300994362592688401506527594898820429189135953881209410479418839947220548137300368760164248436492312306059398415361316561951504688331447985318121480881199291793449851732379964804394044884061220818588167179343000228424699585360021183006690058013125781586334075714111303367806433132955447214224520284932759242500312212329743914176586548370399524009485295176075803267841966133283994966425949674907328224778219725303095192133653864898627689876933036725192108542280130804287179214759637481436772140622898830251681579300043142778008919599325919380860694959832343087654262437835617005241236441591803976577569857752991973863435176763904430336099499253601417658939604953234892182285206501651048655058036683139063646944444439728970412350446649726136121547481097993064333480382449828843479952915422312530019774093544568370491989444453272466182233487706792318459504806360475039273810614109810632775108723799756594440384390976851327675841048378367997575219254980649488275309593747040998728139269086290442462859883039707559838527846654236309753592041562857428619890767093250715172148446106236095190047463613853586717082228179987845183905183045926395095615926842001932643498550341481484356316399110462851245422912585399866331252989078349114933339879925115799134637430150067629670770446490437380371878585165731496446829548124754062402343587066570090430592027572599470086744160154037576055578446725815885005687391445150757052316161877366503991822508588770669585985566655698245126153489490363737334513186078167226600205899634846722386861595336341026419776748586364981015007473788706902849408417857017485884415296808180076952387933496286180254935152207383155185344233722212908021930680131330778617915996776032446119719487499564793185100790338392868795213391066809943905566786701887631075459680657348416510085346743832824496588806335296584697000995419477913543579554646204087120786894463647087324116516831071988610561007397837818368410490945100255053051099291029175810123564648815551885038351845336357711126021271122776570520853666225034155538274726727600444742435514391553717725636220730168197790278757689735728510801789073036082892122237780457147236059117857487747143208410823188062853611240136867012535486009184908963512570000765753407236010128221226351147464713108142878261120781894972348056115088988632711759708589544985444720418681805099576410620170206683950111829652541012096148030250826267894055256690475856931082888479650165011133908626379450106159134185852880070262482028050524794737797879643484335342809467866426317818326623572540707041015877069578633209671322045509041719503085026135484249552300943246450349759012403798215425000355191964461237709102211681251800624803971080367214342167531314180913856026375272149889001149360435035439493677582115216752651323663253332223732301422230999794837195222574950473093316275707026824724487097464772553097928579213109587868262575973123521056199897376973932992045202837347883019530780930386748816626189242270799886422171006510875241951141514329930775689638144225168331636274306345923174079727393972298921088843794879708848755360935645115976483859916444323558472671107052049958609816830887409446605006397467655682052039455511044583556775690410471306877912742583095184392766561276408569734842591889282937327165551536290123552795720007082152097393968405819371182231208962834121282822351463356051512624783567023393080399755860717888763193658130452127882498344674106707244718374810796815305138597741050768101816601109161403936507231980876523358510504920208134280777228899026850636405396809674687367929926181137594670348923064740128664376586204335561108452116438950435408508104299967241284676028524983347371229276532304689445395189817985114162556771778544217189432509974612608284419043915289834705736395535765467457833660573743218439283452172611633506924759743902191177472845917177306955159011581707492341004485350034898326588974372137912223795283173989368315972637764655503990186472785526610150526955184713451063094460010550316511337096091987103142099933384531212892037034253909881301076371854411727051661236749050981951104724344893405422872669408601550018482403555578749644142074972481029987456002105692025943597408357777055564578937117000764710270786133033331382222698348725565846978438565968293188753774858451200817963709838537899374537762290554545124489023979844498393676189283882497960833870891308407928864037469414816500833482932510847667236220548170483215799401668198640375627110474647783702342728596536393333508219379643293513126385398417461771532119368611168996427674669609284403679443774985741714522731037923302152409692958362511419395354406323693497062671402638930097873024370868166914978667685656119218881234685431105133073582726776180535743486977508489598048394055821524984696766517552179047221869780201829398436808422454154767401523804202549259837387658774254413914105678834675970722142360247236769400986885626810987464147913588721134140471566897057070440041044284599843445688597520589391625627999641961114654178775541632215501101533958211394622953173370486893744882844402249375899256902078819693313662383488597619302437497990901093263439630440600572870884421755802291159461146619631885047762658204802753550099642391463163511152180452991530525866260487222286248411524875411356310679861454388603332043155414692115599454398313913930924501423566678107960392697808612580536457249708586770790829486232948041194436330745236207661831823738113384147440135382412815237870999016173463764547480944404938955396046297696705889781121400363182746521744041174993675956610441179356299010343920633268777276152871740062903670039700595075648238864105928839054251703933380565460959032944107108876442050270218147006768034056920935463684606020715830046142595939147407664333076063096424845955828075685112837065722255653821236140070196660985647614093502192537705850165393728775016686337939490533419422388207283392047184406609831002149685961461555983497205364298377991806661590217329782414599233417762170202733816043779070660326581521290957319008538034518646439281813592651846432002643055719849394080020848960213173422301010199119445151809181479719465136808941932854748858112552583641503432216354729558035303302071504463681186686151504902518422354599866079002221043399587896337719755478334509553888008196793371534695379168545063405069305378020433444709467648023663840689203190480793249197229979698173992686726472272796402782028802371959243115365044937133724393989719339221510085146983868797728520558761874752932544732243039408647552994697019494399862406789179152992840739531559275897672503263479610812363990335746829173676345688843487949189086456431908918865397140549072834551000332043960922997003508915511219860023294389076819160586668430820472425717957466450213084969832348211683559188959321064538039217494340530567608592808251669218620353464557905353460059516443116545959350403140771362940917567320549840277060292234667658696116049004115356549286402255254315433750879625174608430499075242701480626523642803219596795366978527874009165422318572020966365339185760080778552743117367982262256644163538012262350746795768599726415377426578485589784728097096886659978411501957472102478575788907673974176816171662154217704313412450112500177907726006796627010227586844223713299032473257108140334979315351208587969163711392930782013441418476677440899183394161100879079753863797147462902634831950390247045181037840027639395929296264941197172598042097168760074922077590425932322743410937109296877380234949894197712739611877212423992811390379188969921158366814288057878983722982472626606426870095472350317072134928117998468591284198724961249042932102291960521692726971584949146857568242131212001951641389021023024505432316814510395688565376035525055221741165856011631011036428943261411832938252023133500457440062221401835043531209660933783629391680609532409386017974946044538128741213341269661320686673149866593397725046841507032701298878154868099018522502825425414403528640869939728193781796412590829455370410320408218084213546741819152754371606498725315882848712584137891775592012680408233241484530989376388373804103417113566517154538395988441628311382564739106203470010248191002473765679724935910593637442519293425792461190290781027540728266410716067468698891880810314356292113364580569533611564456538170808330039528186454005623282643752566225942224627094687681320408077271434584845759178655202685271480548123231937397403821873030318418842635278265508254562749549655946780261611499424637880467305954535949904978927123336556294125317417160227357953128054235478522790639491990165641891575129754560828643560385867048370511817792063219324924362775671697005516202446251340264734283085940761938088480566109823057758549572212794353219299831187475812569636280564954748089577610446281712260473997424103507946245705609277422664897781543820979695063555821139592460674359422371804461943609868994594205191596384510097793470813191467064344968297315451390108269384844692389902723839283043692206468805348332082171814737199681734776014713126042840937502006222542022382148464185505306292729499980902528964450434706524607411717388167869402822342349782438212538514697978792647720338337921943583956837727071203036478534844983902377741231299626333902085029966743546954581679618661169723681184605167800027402842684675129011682638461279687500112917409926998147581314255335023906926951120804532949783569079948301162677253986387264572967670096952443778894957037692126450857882434331714988535173949985607064300918833369469814148492037705929496455029497133876364175326865495326867357699152711239076964111160251690497454831139616243739637654374279562325030461726159775335766155155089518860031815569447936934227428356950682483383514154827704133876834610312388367293743670273924902216920167796737571766532828401358445667476711225836591416231626350715377237263136672969668267154950424187595191551121820487487818126788231527639312633163095327115593245161890263526344277468528362768589670328465462881984395668727782265662602412053939850523226003305498657672783117953882643225224845367141770585336785595307267921529060265651372728094239664049814344038532851345203819807175274539618736672778642653466508505615495397174977810067642386396934998912557900502926054810075885971533168835836429687195713826113998898603312720066741525019930356906618177584329088009549387740300643656445579408327211895233815153231866224878830929128512884077523092845574237680086058053316517236108280815461885072805006905561326484070387998415046240685835404768055931418256141249925754783529411191457070937884737172360098598102892590023296790508982367576627517773270379890288258936002751993322272411403964520781540178654097186141118341548324870606438675210683938382850600628699762265569424410999499398028261276037184849633102812977641000946008151345754851085234948265486740738704284874962714365369551338567981750297271566854381947661646491264457173696898675610177301055703676583246582304722406133825799423776623364200627848929301323555722102053009439097711175080790405639498958170447302961472956959187865320270143339958394044528324218380009818247820179525765339572728316977084105129997918682866316142040513605114086452793709921278457725864543456575094574875241536234547287111827426670351167669326940225115054121620564296702400107722707819049992653724657523996823586083430140508074738651766756821793515700587123452536353882390019654485434691459380208227256867524498257112888729086487460727473909921940130040977725650855832943258101049254450887946368350373409806999844334580814676189825632725237525111697568762542704566537609173404633693321582167748622134497742997192833716494361405176078898893762735856617259099180241339182683531238877284656878646494126435249021284255643524399164853596677084925888629638697444706263443549999300703199330546019359213008200315381937532240009172448037137268604078639804120393987704380109961329780956821256044938364082631706239653003260471710434210618487919081956673478293418236260437396111150862246367484935908676454982265451689346916266117956953586478555023172300550329182178853836819276766259638567611216461679064255872268197186211620103101900740055776024953306834313561143235679562359179992229512489811380023348695518155336721530748881368312543448699855574416289899958187876358366757832893826611500476977274370724297739314795685215742573677999653913521951830485075591383089173897812892056293845836324660292930701093533049090711099546201316631633375863448278091800797999574165117775940744924408339826463569866503223918556593383303762026434847396971532749337966282331692058553905548272805337606168984763128134156087848667166899450451557009177515567188510366194944469586215005018810833617339888428299809461979239485639315884998289929806221496634038328805100522418068319115605005352181934056152260895055820263372564640047495947724058647865123709124764190365792619625769129800351334249615914659491784224895331628373158219647733042623626027467483634754808577565347340206553747723429122432612695282735027242972072040820130578666966200072952157545366557075720867496651223592341875281916717339406337188792367446822426330158774492390016548313707196587406250041142474656596442751348009701151199964777701526331168557626271821148170381664497844453255428161570821484225254738107889170861377551793980901334123102640572545496652443295245277560761833975752044548314229928220905836953407255651878442128614689397339772635959066456451775210644426483301915560119994791504878345915177108268864716962658509205495583709114757567272959206137159009430061081955634761600565430235908655272014510533214319764734421535514740771116831809052550978459901542366201240952076863972240346071679486178780096015972482325425029123798795100227989824342170056661371500884959954888361144145669175251957243349292525232209174377626065626138113916399199074622856811784026655498038933241780442337674363239635713407979148821318744425501110690626835509834423563824797191706481013340447483569764377454057670245912212232261237675919732377002694392976504573456013695102075219412712306176290262889709884344726801843299704759089879145331399710518734560222977200549107889177825813840847984362924350342410394733304401221788003256098334941870269581978875667913813400622029070327953128099950840897469871195377345196134981798339227985661484386870546490578247274865479723629338069051702548454129157626462840119040835792549620002325660552210244167228467238844764861562936566271457763482318832607434218200863238020261057400591386924541460357012270258981875352883780666978361081504035796325556969121831812149754245015481850589747415927075957051113390445122172429098060280261904649978954252036022205251380404530156123778962098275735207603712003219616961923860829938581737032029564043359545550961570914171159393395612657817794287153227521630525448259645546599831506545014982875937925896125326891362909173426938091408203293410218643982949181222271670747374704514582573617163577303102146437015490300695976600852038678042944422432887294785524620470537781805472527023587543042496876043083225101196634069545102720872220566661046206576446297363646088003843600394166135189961807712640886487772746573497570862770805920263091813491850502021536812336859994415873324627599705549196102642769377131802404896792935693613751739669896950923993032245218078112804249494381759402894064893525093750233394672021938391823702633427753054236638838540473617724490607883790416530083757320764542978500563267377238631828689116712040306266989651080333885706906817034377058970881705726050840757633341150197485260951197716215481563354972043748985790057109741157093705569592133932837343156621322685268565077512416205882276848390068256882949823516597797524893535593388894655552571631338783625628750636922729923352029971379051118788116684599250226007804489103160110398665565099435119090110450329325692057173332073545727471200480869638525580768654476626406032892396556602037508125378098279727222088612840655765961069914834515054015317386385375792407576339131963029113032768495434722266302707631539363560838485933011593911472806279271595600898035520465215622862627267251355668620274534228411939010449895340152454219668486418063773023108924654751669908255047265397050488410859516665655008776065378588187105187306802810011565409279817762067242177155837773000159797174426717094273816798644308519242742074666557201659517228117763126566319814102305417841394577394983328376260571954314385228298760931603832560092767991943594326031791773909882131183799622170275887936046098710418349688871980989494632062725724853484994350156501245166808634984316344262411963142868918844377496472318400071166648936953516399640866129866128802837779237046298260113190853927178565552117381993039526747182743327088429121674672657555315267991893702049567280299722224803180222053454255208321334095958266459292053675108851671216066574164853111637069734065377341434682993733544070608690190136116287647245542863569462734448306044520283908207259700564868266103973958577957360684824645823543823168029322287090719082114657156652028733924953149777896487306632421280162784789736851312619890495887277394855073813470206390802662388627709493239569427824486696945667664920877232848862562680005108209438794723516436472867232455136244420691324346436529341779062172418485271299164932936654940340721761962233968031985748346206971918848580019427600028317014594421445181117419604829444545851441284233789437339759195478848991663157846738202507455423217134602935739498648941360557349001980946964623434015087431224816675598723691091237627658600275652785507958657906288191351785728017462267607412565866512245633664785425994697439245185703033361382006652897954553814739350241113275204545116689168540964014647865490188938230627304792805240378173187504234192941152132371752707942087539917204169677331319738249253574303158152444629344215431625612116460291968964232467088590847788808973950233207912855149730365199715499751507532512111862492869221589515551760966163571393812199662194554353759681324404705942971568949454242410514345535739275278319777542405296706689385809213537719351188860392302078391485563601390910757582089253468507834272120797058168964888997276797550504071723646930871670810386592148323211716721610530092039739513985467749217449436612711273222631734335970794037793467223077080771266097092869770885454290785504668224747090033383718251957353588562135602046685032841826063691738975193670524193834374482370593786045656520772193039984878640794943565012167347835307128088420441320636535500919333458353619009907363498441334440735092230705574393146795574739294905010098489853949266143802695130841794576027626705210293542933821853113678093485168824423188978969148625595843406411618271901865514553627711311111606802564899510173220440245955750380205912332536210426232145014962252397082798698457204219317006280557976009250628956190615816890168833493731320502744287318147687127539828553660158343678265032223174039114295528789105572289173738433550152500006045291833836527912583603185514033625228539095222735947519506869742407512566769254119358412868316804269713343645983297731421833400117904376325484332917822519318945284345357900256576031012308764820197951059678714494192168584173650139343487009251148950189715677193026571037800142027932968753247729786998418121592589229502750996064801227353956537142262792291496083081911171993093229109399948494718420960138549810997698596738963627800937883073393863901467096450388067490205994736115408278793820175799928895737521376986617083255692021409599794108253173413133083525231868920903344832754427750919861589905167242241492029208216502442860686882990394537798368660965295853994999907849006859662626966308221708147471055826273013161648289315592991553947568954728275349115484015669713981302254734109318377426753294951262564149759255533944075369177203979635614367191034374438600926605600857884637012312592046524701917940906343398792192502072914680034604453422045878994435422454576004545665216529037977151406749022193375560942073795907882235746352495102921778782033572972324893657427370685374492319393465768687623229438496927746120345806731618270042370666884732681593581508201558769143336962937996840011547031679631697889982702660082944609520708040173718976175990573185291883500575760785612040553132695660802636850166986174482808406677361981466749853597251168223492309312385337922685844041388839566077936989713158626991669030129181434595469914522811959827736855069152665279783749974769629272961457486337340690068616968897801916436341730030725432642730987422295922642126226853587923782093118385226808653764877190581193546740289074316912756836656201483738154872119937609503292326722495505362417710611269774400580797079958111873287620947727766708574852906703543019552694474288927258845002182886845407167166539753222541791541030370543520422490637479454413292011296890707262701541053678894281715115276478816869481569334301791992369722620554562897375289326005821871815026862989781259527570354079146304107259673459122580827353383802021793790850946916950529048595185470480711446674362814671549200950308852236481146843009648564219955639788633295332842468592492071330627558746048672997721352720713433003043624007900347971411086627768258593174196594138756194567441016901557454880534215196250072555442616083508898280914002913761714733151925944671183294615753993065244954603151650786986297470264611866274898990531519590997412540493282224605314471327690222885984663810078201582179065623961267101338033738053579931083269143886859266831710258002893539513562879789090261186629962567781885917220347168282416926213556879322737943839895128788757140198172935673078493402312517482314216610758396307592601079354999326560965599950728481452422485488093480977366232145213321939949818146650949548864184606478539704487345704368042725832747835888756462244805434122802167376650236967154575457020978753392243091748521745790979834333131644970935797365154246665042039256736033833519634655857799580439282803696216158905200233255992733634478499061546834715894210363791290081802514819194380257422258025989294880333435549989342065991286742043708116357104589225140088901064157055474674169767159941921947651006985781873021152217643185823572879085227849481304808015521389728022074834848368375973966063398292261214912103377157524523711041358073167114317243341685754871144305654543205676470166500077946557541087384459793602493182901402356445592610042018372550874554175429351529500381971085538486111921604944033648500149322462612946626906644380047419680428552266979142277285703170376146687102447034318286910007391698937419306711464880347037165422080892081065077566648693117978501373468159611071355449604752856475082444053677354631189891459838867487565061058496844587640066959688660877519158888974874307307979164859827967538310978383768863360571130962004152923260625139211328436610221073585580405770034885074633676474354985131454524783906211664924155893870415071210288620648441296935592273012875781080580507232582320345173251490935919826065972436574793452469790764009286304702107580665355165138646077062488599742271878946313441447231290036489901915468803948983585179704264455684947654436164169747747814737188355356953710345061271052734166872785989711066182937792855515633791367819941491346491559133216977593430312792123082991415906061284013169784260603951613062444220076530691618554241564257963231007942618611186327502456359753748745261101175060558474386241501908260372546705458820713355146336589766527706445993913140206846951187559236100991121780067486776427873894112961346757120956644857086105893196288293649235533386152952936297917980474999096036985587419329108943305174354945478851882710410140932028048884853781152256931793445257230270012781282811401814414162551792332180014249035613443081814659617935110383115866524349559872640272874443552409895007967938324286500447413370240398183885116050821579991141426094228202504010403282696897398946056942793854147489288824465627024521554253839321881494086474085213027127794080425141938237617139423222383049290859971840850399072502653846800471614218316795607239640100119796794274137605020424178418183943000507101947813980249307514736614015498662513876143335525600086807583799139050280624606060951392291695059599035334602696841172059690029015515398326091824015215490109190596360822401045717463354573617529117263006087470788680968236178236991235227026574990153424105776490267417907120454851149711414386923157456046249029385643331588606737647958043866023047615334386837216571571415947056830813006663238165032102507133810905712574973949892275867647518919942696794757323832230614930195179502266068623979432191319869132258206434756934149495356773549105960787514909954050895657559728308805993653801901652477346255100997085452889813041710852631573128322001336945725802290540403716351056438988768572471749221241061352464442972718619101020915423005858485320619107744476572433271542324433473269518262268984423716821031897149445679006762684645022718510767918512076311020942465884758622347889162848365330701998733872670918665771052766269540485309562133964880463014195491244616137375136066405830997128445902432533447828998264477124978090734624110073911666022686917905486797259591993447724048363915617895570904761190978300909421552059786559397625610729697221319909293968820642891981566538615841633532651869696432269857505092592430871766778207388244181717269646492150027937133073368813735493692883535589916311516563400000748164794613184456364829039488304985218988556729055403859167496254281109280793680264779276797781197977791285745979384041507005605971479950850350676594799920071018657650315601090549693791164522233570766663788457945829647305014323730221656037788729199011191200980127837281647321881355739731561059407000589497818281414795597125421294993608611562009582092418760041844817716503067242328181539896823314085145580139335854903942173668103033646738444658382648405777012695055382549104140729870464386991140773585812005733809564057567801031851098405035110098867305527239401479989201018183028674129225325331752106251763637336376236041529446322024742145582586999389725974940216851798247062872016904688185836033823117699398817405523769653331929572244981788117574941613211342997565159427844121988330246749741785850187592592063575745779405199131612971725328299630291306281949582290289965642581746799021339157875398525162670150194112165541766577475459053354223116302003037084317627880736109984097807664526456482988197480722250600545820920517321181634599106090909812191329192303787892787097269085308929978519603091782781844716883645184409211006069354911691306127790804140418081003718788967353053951073739125909517739442669242645249864948796472798076587207502713050595765262412857122433369976637013262519943399151340540159310350104654302505887549361109658004744211925491168240014611876533763871769323921416745034302841978027714215275491552608516184241893277874831060282042055380718862402179122421461791961738493021498089827958641251007276349080758589158366953893560896489189542444897538840392999739551232802232033513478930524745229332283093643946020461936446996137971371518390286366372656902064820342580062137425857413276630574765086188918551577914375489931682668661597773152413747931531470517506170339379164960153821160244010980553858096813539261975423471928347862152534029697058559532177930216026134917315472298618709046780893696636502934952878112001466427209594700702246997892027520659412306353199477764101199033879758409945019624694475971507917162987403338672653015716635635869892417292801712316585350741461859464469748141805643233876765821663006030445753657780153715047097103305567871521873657635422577099437099383979398666777477629408174452695894157999844749405068645746061224727311611421127205925094582307548325599226107612877390399208150295284270268481145996114790981021730163767991742338134133062781834992737184188802109354809294188858888823192147230404931160393717290924455598864155263508501177104991243657364139935696094090386284703474972063946393590401322268197339864663234526091806432804365147865971202843248664501127687854261974503568027104951969441608339977946314252899674825001085311060302876939630477341590421160897533742370315042600059470099891018385950346954252246140924428845278502607634186701348749784200648755671890574421639882340094247181684774295549368075852861395591757346530511233585851061737421376016942247923968784486953334820321155959886362818740313681506456758150451360605168751137230858947081345174899408066466760815506676201929351315344897058267176765454458251283457828904893105817851421344498417523642080212064378233987334608088772720409985890046127582232971373668473720072883084670805857616660028780800702935033602811611989155601523343736099453723868433267652267195645538832120151660311108411844502091669964195324715722436690640408525936041884516252360306562458226813695127501068961227180998208856629473598824978312064708041911877981542727580081959585044415046551636753750230819975860891124871472429024157918305874818550913560461658942084467804827486666970331146514452536972786474506134603430982565426943945254683110248476398426277857157349936174731764774941870732774289911214669620331017447182514742588650779404646943539709352490149167301175663486146819164751564492523509977457602938464426060553223844238997514233999772946974915431919551542141602523441644404595779798790678820368398697166895201683067759615929328849652032246162817814095166364120777307243152048127176223488819357772372521198104252809672565060090151618637781202109977326325812924585938790199233877284052178211617535448045822694157018082852685745338795373458421600652944587400096508464911090877313557191251222617501593665690677845676467087547472451864126336963739581744226950006974383171580402777883262657688221904059426577824794360900396842321560317790300113412876665164018773254086856662345608854594682359841055041315785609853231324481663812191339715575384703604136305831991140107142923663743416144464612874469712102298626425406412180585404503073599105189273500001286777276057687808708559412717315964768440044145514342159072392562510708625891949899029682543338462943828541440203356754397086953723621459260351848526537185816172534499218290347362587003219928815143926060722199322952826721805252450190947188808277320097129927973393614746527986500207811498712652998556567551595558509190663643832672218422221506767737479830664253378198225657812742740722366407061394350124123250873555856092213170670390346196566533162702310906343782084340545131714154534833571689971256815617169593871077856630603660168757765663477476109409822532383020871172942563987669181036463837359586137186830677858351726533773284931341694857530535992133483264432570385199658738009063964949169714386493264455127148325967007727046694406011764517551890343131409551977402465596232955847361470464954961951120304139168503702993698946405787571916276612065458279954143123090214465978938072337198841508998460655862807687287807307695442357482986596102127774995162167401377289081408516343318974531847234697232098546660151487840202231989313996624168576202744582401122144625680370709394937019983063700980656958878559098073924507266792563998852906324285195397446471421288177132737244022329540400460015422545694723891208737851015852814282282276887797923270402141120715318356654037615815247951969312280274360421567055097003459584972646265064597652649041993953739279003020919499814141515514555934932868693055253567276332156072191943513419419881835843857162246478186428153316497224614470893454204142168947043716198121242735499622656331146282912144158349049471803315284446062546217104554049686508625267337212008958393215418772931159442755927722817407017508669307700401118233054073680768013558395771722372827743210310316863259918154908628456016480382945210382942034234247216031166914014852141809399611053461129131180782726684193216487234980918226800280612393279010865574854439392653014538551685624719267922644336837820813195641473929014323724591005562843773984143198864638134003127004821042718905361437990880422892135517969146620277138593478044733873482226525177512312528334930617593458025450908555517062940028388859240483310086668707696488329122299030546172913525363659807847958556421426173069262764985650311553985593474030111482918273946415865448157225181753368172319981911322096211705245140377811661799190273594980588259671045415832663151666974436296116970079666104787702511827436690963956854901549893492420783989280806351090261032397192251140273076552162891112489447303686465031720165949225837771691215135138926913773688850140685681385320571896390583829858200350751909984280921389041188579753902320504370485747442129675104093054713199753918999153414090647066602571421850633569522497666860200227653457484242131474986389811915676307437278709003026348810361639536696324839897722024712900906004542103302361058128918221794919101133577496434336493163580904753738143490276305008539015444988360767547553371908566702751432774544543918044302068452605616724178609817416861756274545212120638688367668891213055758099686524883450441604495699064440890947339570774385621626876987535433187714867469509800193193946389397860251649606291583356352407036720658123345573834858837264896511529083856170280095792516470804088812922623055906855274291055329412991359677836605098737037136163942057531707135508214600678487941370894732097446903534374292898127840407534191392730145753317075555647070608247321591135259454721737517672896086315948015604006612412209238235747382351415421159049818521609677990239140042880427501980255827888303346749646079592083952570711771245026650821086485564771837036756270047080290478144717297327595918786222106538495067106117496997741735248828907529223404335294513636280190737147498307044687524657296742191039595823595235627171558442546591254375099266734789800826746768609428459050100494194163110029010556566360864324783107592773957225473849646731629904740285551176833368665863037602853900191311852230425916863622501371666229608579200754891598469752053239807277121105343015048149111083572708834675968977046851169537682357234128064714051803984817437753288721496967636287481570495041881483414405402759866642998651269729247518786545773608387937556064353316624694303059704473913098502693427018717386188791180761108304179947973056608238557839073099365880672769598640614549831505683510637175900127623032828575438247925803162263605944399744095975281480380623851861468722973458616152168541131781357123582544450072989946450154909972907500607696641664328695182874321497600399039938184883162868728512352391294916261352874528886910593829687038867894202889774983396552949408340693648425225946168639528419251527037926627446792443589311794344454609842514286417801957223880219901506352477039096353070697971983863096091882640702519760848855097789243747755524796679949443138531273492901545388833773534093261693073757128948161516189917608388881145833590995009714064053341105037886827399159333283488460899385464729647587372050413279113865032955603254179307938236719980017473716712473779692468541985722851546686481267513934472254546237797525120510050312775031723669695625805085526769432509547201054576310985252025322648827773268059034829207868600678661037263131953791983165582526406556425583127326050469922520567253386400522171399001338519743619523870974496024231071739669550747112831539421060807803592010332667830988558854732715955842381795019742916502973192449341752412159339607360825338025605356543186131495571945992886865281165672676262535158121823291797102275235053014769082426320625986608498709326281932412916842155502793116945706653426881814910750401786249729542414552133154799766468380502886749285220638596259926666319210312644560182410500717526468684568681054891445089861080324599072709819519595136760423711758026827975716387920428981971594039256635586725360135406294001109497380348113934820424575033941939209605760029990923275369736479570106791690135267371857597205831034989117296758225477255635092293687543656193370480304719365274243705346919685678364301041778458813424257155004177195160376200942300525125860917726163913019777819921039832042674912902916149157154505973003700847436681563626211690355630203910967527946123357415153232842687508303454579417371706493888804229550758129277298356072850070009672546836560747566075452035818729251446542166653161116430932919236267448623352705044459472103495318937535290712357055550990866630317047673772241512490794867946357976128950242503264708147392114802558317736025311027853483988631690248834986284035587290233298413507020322412033245864373756085403742135031859433789498244242396727481391829474015245477054947094656305381679414885610344144134636145192603193816337390924401927595799272547348690581677191301717575254118364123027414562401297140777711041669766097814895188655302856865533543577448768312658443010141423955474525892368936053395287044031525804903334752133490068499045990362140173801499583339095036200803018444555303051169887346893602799997016161601954703559229803426885522784400155164442814132068372759206790882214324121086581584267437498124406902533923479975751454728047683311056108862657298746037281860200612707043603691201187566175578946670688874173233358748940618192974811582890000649954775832036980595196019485298509688855776588126306998140206444221746340035404706245963520176112263207652681124409208007278760465747923751168280696472543192578086391583918215849149126758512377956531995169910066738386302881890386390018390933851621029806963389801239410858380310251427856745193947173152719782459332016901322160986340299007491439065662108522398660972206360366453889265557007847560671331557885611459311814059231920645905415612488674534534847766631187904649154328125256923887381764022358448178640023226872018761780199622696899719646029615863252625420874270030819912216641982870570851719253287209583216907928798336620653183526325666260416263245594570457117102424602996685801806997847821875923422717910693166753695504970756042240176998176453903707270738580710837422350673544901788878822892390225526561224441425378768371851649539015882094457997044031425675083719612743544930011911726466047665548703884303530896293055454451213080079075872166486751258857339821645583143419265555667110479868968138440399820909042833007364285995491810157943883411305912538208738639652386492657946886712845867162216058772150754709519643467471672236454916126018103565336567779878065046853920612330624729861700879706584573725044013507417950836341932602057888610824629185830734665320865633892915647239951415236369673112175069391545877047070382838208598158028112568681619999827349683772424963158418121119117330004026510644540856990414522048233901546328401556746123366386219755996400202978573959834155429315653179044595512825965232381132815352649604325613321001897388368770618910571128426615184274491484371177571704702139478797682386965348205109424029728586952540904246181578549130870976295856132164569922267264239071325338738663750946748745431679035661848216501343687756268381702809902211770445687621415481624824496949691548544873593848239785412609973933446040147488952275450635730070254891237929286234012529905354867184919617575708719456259999025526207290882905463371486620500706737881640035323406862069193385724814920056375451773145947852314532481218707615464625634112178271519706556383856253662963557012648065922705743685712920225967961088795462754038149480441363848582365750284869211162806255763673608921696359957275657398440283864871982706333179274347089229711077143192131949838559545315779662295314814376288695167807409367381606749118632212873357354502170087501149583294246821793991324193478302415469301210200335778482320712229100528473710428583642462108856267622922522742031176399856253882675683926160997073556568254999560929362950608320574176628081355821884522513009638902678336571547118441025343051220849070767578251257559678328643524077195298722031820078823270581286938819879255952116807933479377177331602477792438566928250271977269859889474193830814888239385922779495120430804908716999701984299031943628250425349145482017010326759343395130930733805222995197118368135750995518947503800087476207401258194903733982578429352262314936492801196642613776199053573997610749770135580509520275484896557530723290612772974506765321922286812537124888772816235003177762586495819757936019181609269730778135293955247103992226086638594171302380008545340887584754635103134033909552890215232664580748985369685963925854552360348613501263129605264683653371059697814742349867019028486753049638913833001944516832819958311993028395379535222488881919351927417061457173699998968230618657899547991076931590983281027322533648802725771335558672088253438212393443425406644682140538968989688319281613883172526444358611206052499254622167101256618838074208959021252431193142409727669036009453801082298283997452394585886712933406198245397877982484755449080075502177240755386023080112661858551399367205389628320509641289368204710099885058424823374467479376939511978366490608210020771824449669238131636705870978726975592103800539983777117960697284991949535788385107674031810974970780968281612740965868530404725541499795022252902805769286574762318080666008704835583241217712735493933762820559307714977696010668927737572559546350330852510757334805674324250511064916185053543075339037565613853424639175598166723896076153690683203066511227950565046099384593511915430674633780237128158623424712028534348905126567439580905662236777618626217709334515533972643985532151208058936540983241113056526452822721352622256270441216261063880562557719251638780856422185277600791369259752022334381807026116840917717743768518509765210101894716400699851289654939889634397313499046548892950524690363261794931200723435116575404470246768164484739145136426524217358382223937788381652996147515670232549828204810798334751505318606587754292157292708700262896382836299097050464097626366989946807026812770476043858757065139630147024645700415025354109172324196991157696547973981713586397242480015170035365162713988944370887777495174964454687839355320817686576528970359167850835499242499242085586497206524122432642116573014817960383190969046061074843222595890363607947246936995223263898129955106872287349783351329560402662212291693997477282045008645289722668669526667868086748517802390891310035168927316258262936058021948744553403877116622737298218160999969581742737261138038194859692531021637694267016843567789833679453591288669569101677638347132316188196657856747668698390204190118097699703896507717634076382387452755465269910519442894319044353719817506312371430776548071813821982344801915988162039876995381622860255734939491538551630634487452747195101225947098052329229013673755097393677254324163667560700117301590095813248376846949640369554247848212518710204750124053150296484510235236476641689559688563869705610915108839202246027035562466402672033156450808193895516435870878053661543827083517596044770591159956410056365884359453199758763785181066167082396227991182410728153636323678989380849587801849811633684048818678571743496147429054985199309315989464822224495763678002651408367577185657023671544692011448124711654680839526333179162488450709484217357817985777719771667698832747282638798911041205193689023347447362270512567050997514101601785528728716602563769244483767852167500300675956598538063648916890212685041109772021418119236435444874786111874375849950882645201491092287016636059271980416910545170020738815174525487225234541226697227394946338820087594743191586845288784645150177489431429537273071556682647738374853216878229387305982855322775685356736464649016136450616119979541113433032556617315775136541931292196912721668099958599423410205247918392446953780738222607910477502492264721689179165996982833533853617419181393176431881668889434217535167528682437783657705047112049550477565698352558382916474244307592710743460292678920370426253777892669901457120072989813963231955220609965050555574607125680301201551505486154796574113272083717161838138356920021098992321572937890261356488225277575777885050504915902053807797421373326445617135058309616915532863509626843256446981045075587711726998340081637354876963778584634117945623592017221388428004530989329036904155741318775381283628470846050262812733174759079166087802262503960691392015418157012660717798286311301007468686185496141715444357646397757002440610717011182141669613805649778337679046790415602369635822772596706830755594942872137368052074125446273456392832915660032546451103045170786942450761828718285329211984158841693549039445993250906283553609477621632398161187055179826699735070651814278903083196880594211613551429959474829411133747909200197972601915230733703198404438550355602448109666307726646273259527581292445478943778578494061387983312248684672967403960923138142915975301348877813824882684415463562416374578612416533855679879770550928847433165939376437975432285651997557703839486997966561021270171326536001501703974728437428395331535302993164356438956733479451965520267025250696517134048811911964645738529500197660995379008649958965395199081155452092197658447188171968946759849480630069090066748825263207236376402165612364016299688973594408920865243226336088464889315005776837092307992971035553481846663129637375761573348868523542379054537336733379744509728400908075175160606509175334748047198069895697932726683844006690026344952598021487473541145113018782766170571103285215049795183273287158507246819005093425861874849657665866814979872943028999483432596067195250838576267499886483338646409587492279610348417969273281468856916086744106855088983269672674004054973284485749072948845886028489784736310952126613181387416686002011727911808955960143007135292398619709815873702550059781527141448969416633170728626628177084368705199091219264540337226418873774164627203569745846316475653343303212970213555599143682998835788535585284899520506300113758965063036127596788768039024373513062521925991535019829350761003227793344313083869986695627802167855513645084691629725459190799249722678171166403653493323303661639270126735482837951146204872321627345498194329880028485460763282238937775353933954411227454461796477258262205376523609744099350636404227359065527440148313344277030067880759892636445805512337600210946914169040168872719373796951814345789872624439649482583550265057276136460665547277509166215167408362405003824538809371813019016647927761658503305846431140318088661072677426953478561597414481367409736698038749236052302407328314389428997681652180128002444132990017261923849564130054518461355375496227791454174857446658364715022510063642581864995838876565701301456319023441353177733806822108735848706718124802565410931655920692876777007829770763508756959778850036127775518423834687422808769478429712334622637470347646966545033579133447249651983671571781178954114911356642508919246402893585931138407752954294744117245939750692124103640458065900341544651844126182065290986261342574970507864976119671186164557491937516707832614781483364584969526153604525060736202145620112400553834621998479373168401317540751249525893711010272534588066227729465770571355903664561963968594923505697441133534480277672905813142548973480514283199122118335221768511277899792110172640314040131316524925202979770386060310956086622935084013452017789690082067622970780336649154738178374304492745070753086571194744117513334367868455139409507328932013876709740731347668139198297557719913336085977638880365597563620848653421399036953660155263176897451161979158437771898092778121640749483810395404107179650822685676845280594304136424390171652679389887564847666829801723308470068475514529926792015438052547705551403043745366782519393204346918391657329922135278438591424762663340272546582469185550549292814205678569668036204243451527692322447601433654721659229947354109306896662689721160373835834333407620729818184750970441488373895146905314384784318849863685769106494393820676097490752715366942080456885008323775352453583682807844251885470400538775992930557883191295896893390693379261308682561789303571751191889850794765008852129812659174868797076137660625962484005172564394372700025001631280165973478875109874184245657614983196164051356090433293619046748821988138870259168729627685181142072265821460049871837548670378569441631529932714256060776525340633766801129033903442091092096691879613677188071910321032567232070689058762284112659569846677045646759271054692123784228476154193703035806821109564618907000632173854899378113664911371610326551447770375333360962472231954098705023273392401653006892267846314049842374839027146983915586423916815635014503414568934240127196448259493768506695894429567252383474728071759058018643150087292497307191453893959118441112135801446992615715555640451927767157042634305865727358701060613433558546164118272575901548709238302112142919853705140746187229581445163158785102354245971125194353279988386249554249730768709662869014049454281926397067420056592439803882678822333544169820919405226421269595904313503374577439973677664137534879006120447882599654414392137740704600421945949720965770913393622011360854349636117574852141678532989554662031082507933221363549065888824037795428938227297956718130929078897778029661715951029341893654380814646735017358898190268837912392170543288426583002083335800528463960359187897158001152705672603403208660711235098088055853007028340183549034524405491390982175455843956068340090582553238814989061051476758560776178600174078375649790075956296785484814003811049438580307108002310627051009253146126143419665367773968593084101343445004703481607787088587642427891663863992879915300003293930899792863110374428243812018611270868226197766310861331985435993259982785521525767060413491859726158500517261669612582959343718361740372957963107772155309620605580427243151694481153971344396031669739222489039774447053821373115044171648827754041854399238775943245777987993380969257114963958688187530168348256073196416036097953407289940549399839154537137130035921681130017071282440953015495243531595523723152532064139849105969462797478677445622813264738912566753506444588727673407114131196926802185051591008221153145850149792816778300140076922394167962868327785628242163999018682150642785214569431055473994817793116304240606541473865097072151573946700490501624752879262296159287950712000010647043149164035435607979104993665157588493614617731494565040447252323300997939525581238595266192580415090711400556466956513332552267851521174987355526533248727131871522457516162319786200098994857769584876170636706842095315552529703248210131334129142042786230735054374581656183646863100673796119052555769484880779331388799826920823811134920723176495325753154698959168718810848525226701200359856622110591900051811563269870716379397741054423988329206064750904993437826089081186535217787607673361027260897724563678050169721020590605748776815282319655793014827970536217789756222497199708240481724190827513922129009956031388028772646437768449946157357716532229684681395446814736810013830371714678104802022474157862497675183557509620421627618188507489838184432020411135757367063350256503998965623148650389237597783666069977183800434504385165023763303797959392448492781495061734246418338094778013702243963035822478671913434058558486883957581363088714408094233150342682915123027633024071463554962044548179556041163133964419226178236994739663597579896906844298623143164268290849917539923943209894285957013926935224816006370257292564180884516124679095305369484600050227246804531436551756564993938795783910496367178541112807919954156998446540987039611841756617882583651271573256244654483830412506746428682270311885296141284277818892435965765462611853454205018126166434777167297980548632503448506178469154589342249256310111717262834300571267713284135366487691302180915868367780866468893636436391452725415862961707787827631957888189584458683142671859414658195135711121725245429208901800172682168365866136126446476436483291699579544946601283280149783586863146721074628081252523328265692112879189304351608600351050177760082432872059832142188075538750802270022177214760507478642777753637166595358383292624323843524698520371365802058504475401592622865484359953024800173236139917246650754110606055854120361867810965784692784568881569415491625595079461561820150538222176035311465168503610782987992924528676113070698748538081866754351847768257623471467173600092605986257617152508665118803965170987109054448544916862375208235443494441195866427309638617122233547300661917674805988445454286694084176774043893833225238833137092056673051249999941329951140368012148925026813219364210601551742461439815934638151203184766189192907840516102257750459450933103786068056463085058749980799775075131603623942438086804487984746357063261963418519718807667957142409085271409072531941486636989596067525542478676263210827083954268129116851387715496883662634143312866625317050353737147193527356369816784382575598464331715485173296353065793248255487876315012354400210177596235333136717976757958955527464688407028870781257796288510116480056870040793621676883962306367629024382842668879346018400307590324801136458537962426252484894087255521159811002336772409871462924617697308873640395711734834119916439541118805800884913391334238535562977794324325831648319176008952668060736265672157402345036852823209614065915948609377189819146677740268393083296770017748514892560795915730020449282605423821007097188410434893951202141102415521221960784884882512823864098615966101005364459799363414154639158333966988630039946886584322417312781514613775821447696460236289212021350853670634194953356259096401558191245599505405778351405143335578557379225482891981103836767104714642495812241000776087517022244541277146890796522647640107636720880697895484702914352468344844865601554487091877979672385002633553878733020663007485030796865456103847866556632405495596268031570703817713880024538128460036931484236344504770010196945792148962906841010786136883064056289030769281221428606701043782839644296275332104079046267768192738205242065600572028130289802479863403436249706322169129882045502521902345814518688876014729242079810286921063418452453298387589771898684584738048422566861298777501321972867991577758968637207292260353304314195858286577852130290076317751565108707543833862459804395382892663215436361990613888233943782169010475295753735514618883578638145915342153435487206602894629056411243422680649593641539767870743740194153100646198596118236022668543766515536036274102109256120346175231594703810604903012610318213658154125012703521611068442126894361393218961210077550298579828382841898615667014939106025702915284766185668793399098117759718983217006340599508153934165561965677387521481124121394182972800433449328403633162385712501319166804873643076808622985513911126384972347593927328148893838624259385614032793669747957606031484348664323241584511111283389012348899940813470682890413324219819839208994520528905964124802752984037818963018411072179801104104826414759559665713592451402096741155498387716835291422270978706034540883974992245700223151016443587656556709612432010900558488016813980601536480847055594519039307741054334355037961364666968979176933941155062404837012845166481293247922777963548111319330285424033169006501514993890175512426937158547006544012771314597818608622573104483159842078958716388279378806922669832841066350712714834309219877345613518052682012476373720152106610579252530426968122836550227766855254186909720056842371141739322531391027312285423177795498525400981937301907332281500092479775799754983791812106976792275839497045103425799810958513011488131355243373761547196405722358475704490289538247126691514887445450077120455317049563995768575146328641010861734986252316756356804570413963742331281090141310314611843398525067390555206887158212956831457664174857827300904410361478540185770565172079735022936854631709124050991990297482098884404740621049747404634143750055481890065262999958482397604071398880511338090647248897242805525691225977200133648350488340576046578485075555718753951498059811560877664595787651058725208139692168859685228991808956181978720996909748047890047121389960942630852649931851915123996475133653108413192625032984894221806628619162816839088642164307577840445330495860294988479501464387520743936420642277330074999260688329399814116068674095067766544911147112057682630258676226415906253230842437197437503236179789148874419054289844200686069822723976568403548945501870627670353414850102909630685364756207121899539834208780839711419343449634254508887846036086063442181780336225502939832978622040738428947837985684141418305547171186722140590217787976156831790986222863539764128621160257157578946598090105740533735713405741578018092324277622106095354681074043415309216271168357064890309896537825669334482797918316050200586602620629429748614223250524262612087311857950197572679432958949170447001398932663448387684964621799462165417359825390496594400047145713255183748582359751371693551363674010822004617233456953483208155808297658181678080902041737387725127898643655753752865791894093818366626097426356755531256113756984137294503554759345767021553175034707190117157263468894676671749094274817691656927667292541549589974988438420764624856284920411214596140226436386112165448551583205007624212031128870341738821758164130301281793167941113074149890900436183279500000860600216574590371281245315891780725948205874934518055361924676397680490585412527567518122772199912610138425088751468047408330114660103279334847966340600438392956917563177334612500086104219217675004654637793129911751189598689974360766139032091582349420220948487679971384835983343529734787000467906319744215247238632777040997040925658921830055613455509478749833318108257811903946255202689035025705098475861522149989582284014205325316684798431753016541675325747537386877547805423261625778482238094239025785140803372949614449581193863723443081608423510776165523319686976785941502423496619677833768633558150792645472096087299191588150237970257008306676338819262181621316766308455356746991005025616576126481621289402959761968525114253065247356430805509624283918927980357779734374991061082675425219712835270816974557318896076716359613601622945705434517369616050691469406195058829936603653770596272848160153244748866319233168949541638537537324424684870942566392988377238314932404677909773186491298037200661738560592271200770687578077333608652802366066076834740718109393071119047578602424222647924320773078922331006618483029728166584770448161714063368099433184647827568308539946651262485182946530221748871950689418463933779575249719337070085801969319690318969706048906496625839059790410887600981782855860599424539268948568403148693411945736560726435359268297056529928769882169182860838496700337006864941723308109092931783393963414087312384218497604257618374135639287614621885338287993975767629554198445255199238664127063276466775617775287091640811857230349994291359028068332729205490682863969621929059689098855642303872781437479117311256536873115771154933535874752699855060454270873230060298559736028080212802201213356884767702924453316920260019171525432353027502257517999786034168500412978748651385483391193443497232911249566684595492010807101185996377323850033496450689198359010851668591139490748097661767354877628275388441931927005021084889941755242333613867108508297132422754667194965611990853238866848364846638077313436695799315015308563486650194475130030845001288388499661639093011249983129468167952528392764373654399557600548761724448394634354255625619051837711698313518469994898302771230661804058267567857502704504845380970814140827790202735998185354520496251175122098736527407821755241437554119202469767664347583322311091457371394712975756515541665500600471773592472245489024162045044101451063757331341561592563195753183440561854796008239123349800723283464753270346195586122244422778678310869745511984830799538273701960826136702629313922695604209679136600247233867572557371454466921127714245733489665406213355586768043473027307709852236967548203057136197646842562510004885898672450205666823479497675049058635265156465694043417265588788589096072504523975581403476360725251182762845356432647232295657114967280113140912038715500676882250732994953612730987974556966255995386795385069266585436120460030242102086253382665562338699275350493246488525991584544221823812491466141247116310089347712931958947233016019804043103368424633066797001543741501152810368004958972825049540709814625442648729823733121398729812806909028120924339318430451711231695836933957007143968317143733415802319648834749627072004387386162663194115104804970611192904609963274824024131611956784117618937036816990009208708237718822455571177584047890756928093800058180361458042292277777669752368438688031460284089854258086821616922632616088207500114331068921601936221483355792823744578457130542376078096490410185281431095588027789665090323502267901065786199528240494419228673610122656734062256552688904265393868843914998671659935942358455746721435946905806414034717037907664637111043147607630244285320156645837590911662354145195373117303885736054934766513568605840746048216663199250261784091217097271380473096147988793187625496088633743223806354363440810395803539282537766755631562433115441587300389720311809010287609089910628007645834552164754130049278157972339096916767517826680108250972385116897673258991355135000529163975911100958219299301015579798087237653423237896957238111111992269176881333316401512105940877349902371837181600599697432426440544684482448287073175847396460201093876423988562259590062028553076211403607835195390877539663875786031192024353656432206833928385165141155795913568796930738842967408275671024207647389966093686243667655635965073352322573127354205409925517188454093788592596655082932297218813613899336780938587269310998327590652517012246949213881843582605906717202854205713894319525532148810091451428492374692932725984644663587123752026137399619039305724803410999800848636577580279345094474041242127634356420670873269992799430849223147344317172440682291001548602544973975841824544338722039887832899801945041094530346485350844090619985291934995802700955751521632851684802523775397889740641779167785745960187061100063619090720691636997621507222479311901971814584970554355656650864604210915283870086756874856527588061582447854006036443936699562883673225608106916998519183923429880548537258575242103763085137610621146635312006025078088292513090772111145650813951042220332926139092037647528477669839238358082534221258259889890349959251666319525930321199925831795370855654700689149902760815212011462088041302420363367682949147994630630686144469190788210054498967421180364840912753489147518252953449499928676288945733262024924448626134214173224326699615296238800467970612625054488246820471345694227791966361529078440595009073506544219004427662559973857525837143970221667818289391039685245636031549848304365212469111887190601142551389159500568485428226804165218581407092148853916148401216672666065339445052718672157124508847932287159499511012891686022548228119645047672663436349718198531270297552379797901148275133542745457306455927416514435742331628847056629618175086121556594925026350172783863212964395314847338791969969462389934728453535862065013581646098097999093567060175326756832995062279319044182355198624789066832725482591172858834573470177800742607439434666130784796981217827264666872652598343720165341174629953894312910457968676374215327271786537995751578850839489963823201983539830272395378775163661162701675820133579783452799925313386166466576020903943267952018838509772737394919250691546599364226149537661212812506529872940422775743741926327486100442403466153846893285488662969528855196831946739023937072242334502127034073178881176810840129270252301746810755709135963990197375706190464306250700533048224825213204333816932370120799895764194062815213597331696740869364892373164358675284642500963931427099489241573354481020801783232863665503959769297657059176886528691496919067801533221424104212876487040342519397182600889037511111838037295227468818960389297295048515497323147801082924775294734309562849183924103852331489192639829219799405565240938055016389957876512383297705720066691492005399766174663671724207531870589302233828307104938635258247805780583848078535580203849193838365084152096598523915468986534719426168396085717844338549379924406915114542817429810706923892136273219484212467790144981079023850314705267165905424448073498197165227117622031947410205394422665747145863279363469579184637820720188931977529346601480498665141522293458962795366076561840534930926473350530984462091384591627783812634435355549361927709071170996791055742489353195438267188812436828612398608091119133910891691076042151843351715311856033357998051963612549241014904764995178233274283464776142612626450523030220271478717222151147640270237893549119067849983854573630431914145120285079781086242564078988489695685368124045591345680041942979459106378321733971646628843611490572833118997906749874971677934021860532290141577118411325426602872762707937384970231637064591683956473231623635717055139884429459201019582204032686892807905743230363926125385354518933002915187313423910956900258760748657669304407673963367804292613079550348266708484900771620453251179627647078811436066005133628183417066233023353722446998555611830055166732835326230753641728913656213356487154833237446260113429672383552909472057094867681269330105601016112763915411570394247707177053301050335255673171534678467295842475355381452595601744928847914300553201248254775015909666575619994409568188543735111698487692168617957402195486102208778346835241736972926865004379500393721547118274384239371447841076776175498172728977026268904427223368494951222122654691885441891595655790556885714969936888240578511758656536786511858156317524425147895670992975709512460395710635205018890273705596121367498534656636371100756136135764899369246564407570701382148856530398071190094917817521061214417321531980247048960809343304141956900371796287934038640980752284048241645879752868024955907042544946434318764440420006434615591439507952667190378684522999893183088258259143070570277177922411246440770681351237824406290838874319402950877443417132252854116518864891090446298065764091974906474710985298311782328773161693558905652846197907881825997029548753202172945962002551806363779900238743376378058998251734264472355708835177515016973404945742941692894038118386587255603524346715227334900750076304778040990743247979097670875129002122942626051504525034058505709191189512252339116623066598861974248553320256446687808241142689431397756615805862383668882464041172157765268189287114318464821701991234897166099834168108255365454230715808101919359175241049646039169441555394172879788852330728238572975003180792588774296980579526650828669950258951925150304904547963612434635735108114478695001620450262050071749859665513560233421523538491865402529095851456183333240341669762559929525384638202123481484876958516549319477810307171949413835516717822059337238675168401629578215836734310797311507161243919667329327048813443073190255746823141541685746410393886895352384845412292816760065924150417435925569752864569609639974271029467800209680807302299610444508439024087864809624386865561809391347697025101952858574830839534810618041146292654483362484926406865670706597540907633107669504403627271199258789455288603102706779597380104024289943565406728173565872318997021810854160687590634335469433826545162438978095441667794575891949673749426248032622677048248853003979504193497034230279439358387643380878084788316617599166178588327922788404923752226626698481983438854860448342188747224225008915810734472010451244363896393192055456160131082900764155644673204801696202142443887155605438922817963129971678477802608911576913365890668086218536134170389157966863611429651727339463715959370108512872013744964608928426712390117844767568803939022384635972741998402837114028263432147242951036631716354907829119623162965253083531139539182036087354340234138042161880834983172698337692877552309966457426757223561288351612541042576010486491105226991198826904162616011204785774762035450828660215277418301733061402583769064851935131204226741995343016414308189030897109342236776584556382893731246224434643847886499686041724098321671187576993513480250253299678688746846840728496488484536573847246824871734366701614588110227502322326881723469597729926168985314133204625285802444291732682388732990907666365084094172014797063630349237492677166095605771588127603246878186074087668578004418625493522349046347634705035647683774657456998957749131517008640136056961935156170454828122492957264989684545682209450158790472111407750947193597396214314171098923994579611031046751994294458459187476378367428881070409134979941685930529079871331955057692381778133788120112343323308919118491018312824809692240046643313130509708982734057009872328014036353084548360832644101675509840596354238986923933573970281853531405431395605777017583707890577023944914068144785674666127395354276345576708239686398885559198816971375064648662420863922541681732621433185666157421618389229965933083942392609297752021106632503473383057962146570146481624318820211016469316724750443702898837199942474401953764029285909426194714237271276775827845482323507733958062912506121002480167056348149902630400289616526357833507999753356009304148181625015413984479484944550774168864961568156021833721939762095034919159337639373592043084688137189259703289076942032844241137854953359734687881165008694791682985977652099675544771956147764418716680189128494072296230474038500783452220941107308202198908777224852739413590176928684687296420561638495108167162585985320967241225507375304499166679357122228937492289322675878911999249182749875185045390873013691724057772035535078854021954138328567632162892701210385291642331558503694824997004181069843744102387855171637834136524169181860309951088910505743805047996838086401021626540281925046860685524933772868698106400292440417061395834588923931317000796694129127507708136614501260987464177383199802014566632625999310135690916928479522383512003001363132598864834267622475803285543601387328121395262471945321162113986420164511418075934939848831304793682728054267201624858258030934966642160034895822701043443692710094713720804919031657401593057299810655106402061623195763968367395553620347321647692507969445632563539986175887197699560805515272654150634438299506812458595289510382685043957471549085559386266290442832788239587624887531164554693906960647669714229133893942576154733388187459014587412432160059474259687167930082358055056475892792056088466298030987633135321100140868121758462382858357297330297984269243469281601873858629077252157130575567822027350195617845591058886129863235494997332787363292739342617832298614087044676400091362878539931646217386289245870395689272790652507235827291397528442974552276767000792819164666091130282920835979260536337818534268300652712301534895470386631915396941837327959950262722898316381809909992355241191873198902466017432023218646592234992582656027075926595705913131623180617524897913230101415605124554714171766294115381425664918401310356393051384510906506728274072312967901709007855217417974532262376008603773069480969672392790774434321795403043061858358302409661797008445506792041230478029092942021168586147369753567223759412256869995556729731488815129203138949835711543904224764916548031569565722545416108490553138856441189542164012269467562469366276552502514907846686659987068476505271915314722717985306825470691901279428803442825595665436482761120105238524530961631980683426162654933301474615509026761781231980469834248085545043097071865933370200549737349033331529501169945974789819318946810978555514847065245152276934927379034140550468394621946746624416641055949852110843803578307330198327785497497103986524818609837342058297413231692508908146104583558450248837343859808948685224952178439579352003286902599247599634826956096760595343865237067124394638531345953368785748439695900282493117645507135858659916279461946691283156623998801063877291882898344538311892944898611483548675409972154031376831104673278473258274560831895339700206987815214348257792578358639446652663661920521347334291551901185439004944163072981197910553210446413951355983721050844140620050656785666346233126368104057085869067742493528437807117658130112810615505876918317963944244647063165437762401086686341421931274079988883872545360158404917906525403537825262311174565237113082654324268734770494039453683033505870794428306943500394318477784733967624939347312002521668905177358272739433151819793452391277679119800774320514682760071816813929823648620514934079065304007606029399806327277932623296276227840040127106913552321636113877665673958211605765199208602066530466032537777215041565466389227186338916681962263042040987347399367622499574763757049039047139312005060254632363459134756874736404818262324911660428730871550021779314458058412022817175783962857535474019473417354782279948411888383193609845754130400307357995117820615978371668536655728998885445135372343380500475473048992058950335136178709346255491386770522825210000212245487295769730071241647878543236988556251020145934127403980176438893785695585509942405254586998716594859397913386713486178892515309525996399944196338880676436860076323048644742966520085612181014301773560105791389310732847075673672950173151369615996903120737061394003203833973162164282112599003954266403755496513000705197322543072747450707093334915359924242981222522050965077929304535848133009733545950539098989839490694899289000452316807249740459629259824552210675866526912627099554857844875768578514921475627468862395732886630671353141054707862054217708300265472881318497749205646545617188859536007586204435471845063556268517129611032604754804169737367356158178670042754036541010528508132095570391682772786067679316164893652808234846369470201962767447902928829419294937651601794946935848233467617164753185376326102118408463991425856305155748120258950491017147367557788216465314036659485173718895393753786836787686219120629259125538807264402284492501483507798700954398688669292164110690239997673958818715778932097462815672037510721629013309410896679122128304507214699835485734533663944315544265063376900905774265205752989931776651496016336373584774092476489725334556765556953645613990412749436406901991639809273518983520854598027952287568005273882281514626174260800164629687366903066766535210384890043514664074082621512576113323855818968590062453913555110423875697976445466247977246139451949500300185784736231111640935952678046786861295457525066250798332350083205064070945530725979858477771522695268762800218918290575639007447543443007723423426774594276521942177463264395465854562613977815245941979405456254493029060355531080928226492780729808922388404053750816695085949646528985585240826368426719556382307016721459285280313717300805338445449796715479453593673562843227332460886587443107569734289584381316656629326571801756115133633185941634717072732077103671099050687791530185493843216969418761267434436358609225236204157634814708102126481379218143832597767340027900980915017234403314826186343618404071026560977271045543798495301409166185830638253295705710453310610991523446826927042903474050025480337635918101079721497898222874439852770914142127248013711333844287288158089751005190534151622063520926163375453755465838188603950640920427907753764013092985240171053125464787863322277335299192022575485023916744145779450611300129959732993055084444240362024703507987401406132772174529693988295142724275885107767484027315386946686751839822342662833062873070451768105945968290431749314552249789639178462563366848841817055384448533525036782340852935792958808983178631217972648442005819954151000743226428667042319097720806633338565842329125387558380647483134187755988988524454842367217124869388897028689213048788269159700994810787653007366512841243671500435113504259817427399814502255535327344873732840343837895926711901270315733612292133163019071981860945696901183544726703254111220415348638194838093963042090793788534180791565067081591643612843118715431682284650032879167830366414951315038554686789027675036967796207048525962515908305937440576778336715509172566065010341528546977040825403530301626587064830619109735673642511947826904937445455406487898566952551558169360595852815978609322313854219540960017786626392686356391865427875254200377284093163891052468969957365836104983125778816007045965439791876525525114468305572733498897796507198725785112916764239169645164920920848555870764667181654697399747704957128115530727778850587797177732447295590281273874649563749774415796621678844451262548749772380876523476816782916749254863703149429548308257326099657806306959031783678599001874369234485689034777044057402992304294906461106759051076049896984589894977478430346824509010977574682760982799658025826305386967501197934540110122729434525663635510649554855604678886996896235009114754288662349950191653853949759869591628918247865532624899254097198432174525697888609558871574211404062983070281658558945316407012841558949089515756842458881146312680349695215210138702965927735133901527930437841093147619134708342808196182160392072796838026159443358323714154346137068331846105466382602278550826034535032693068484708755912420717029526883175173485798967298308066443239518815953053974914434592976140032496336879082170379329076692422697029311589696838402963614880401877442502369024961779026115703477953437544193309032858991483543893908667034118352012143884923749533161575648663747645684270614598733985637401859720250795104789326369617693769924660010159232448923821786424459779629490261652521992090949285145037811062166875722795609885587206797475728640395661373073121817543438281887960101670939852946945166633375291987302596636488568454693199078469956536289921004582304538649542946113144548463775124849353037773567302426759906605877430746703207403454235481445395104779783199925548375448076907409475128365914631072213647309466656543960952974100249405742602977864306788310107792815749599786950690180318665318855229909308667485178090146773556527450970441884926003125037697271884658099812240570762686717640173215960466934955269823063154323160638092937459930951625724639197201592967530671891414756460286654317318032701911418481583196164284002239072992045123837156115317895418999278021122889219259592743159876824735004155558014086709926325675798621551816881710389690973935333418732852056214694362938571419873963936129714432271949852754592219933268257957501907480736706320828471725013828907623835055793683040113420651804802250183797113903836224743887439321031376438110500603261836489118182705596078982110365788938979271346354795422025572620401685376756036925468883002981986650685284629873044375153471334663394262094467170989337285503942532355329463548462911438527155439524432419310351419268138995011548856262637853891384792945383937669728629652098625924808335545007618524247502739192614509342937982379752706853970399636932414403224713996532020715875807146526309314365473993975335162250912293647622439230856548327349492357613607458398207726355281038211229426030586044360030611726024852035340660832006870112028745039269690703614541810853124290243231206727199257486545941252720148080974220959365764758295144463601418702209186071974158759418722638447257670470486909243705227364296281582332379053558186542847969727441486063320862569458756872454950093793569832497444081581850172663336238182699359628393164972300919055510562002240460020061154496748721031405342251952137048037263349202652355845069709490324676532453420276092290430422403784260716470435376610474482212693183569709671479289677663961549010686165246083134128912955555577656207108069244652175119616127346482743465982346087212810498562341230676818358368539621792949357604086425658096260050257956025529313537016721517984935847126239539730113982984239982847930129047380812782027983359263241744490212076460877965897971284372778974385544567488722240221351790719278836270819958216987190928460003001066539631950589024419673040762768757973226486403042892682863134234802181773347930160396963904565761403881418177770633405800341167476134787395413520506009463176422625947990002763184701117402559174077330954033589245154763681154216439087489346487843455644273846601787165221957854023098660056961169679170432760430048952276126700230687231147028270644243080845616797882045612276252264423445129513233849535871300378966200370073314551386376971318448808638196177009172192936960789846151484436663866303933834099026076066822282902933806727149999515195760189076201276834634081499381557498273732909186856344372503635492949734287071846973480172938339738480012437360257555285774171288414318864593409490696912633491674724962235415473276302512102498137339216979406446890758117216968447654479526119851049431646761505335142716199286520955620151060314933590176137452521878606026764895138228858987388136189488311489030716695297056341088209745588982718048526969675710051384431291220038884289784614940812170893715434239598633843484995588618408868239780075154700382575499445995479245106094758537509921850773126953543904452104900092680710552346631480886492517265451820591668694063220621455186990819811830375009953861212896169513290408835640502406056128349928253905491625777880174993879456968195964411027037098264594634916303317150185221128640506421976769404877295502983363836281964266179152232485369534546202168650860332928277253829811043530423331653563981393158394920573599006995345277091278864204198030069088991948890899240039918416271617122232459104870200818955428118342423132610062488994550022114775375644920255083196808199783684017158014928643271821789898559208391823871320627398634404217934544729279014481844327217820174290362162894728365154217621244697491365256377494857457596763350373330911912721943513012312076140449138694494641678245634631649511237590564304288624179427134891485844318927735026141810782632529865199958191747044427632220259452720648876527488488519989098546657191964302090994244616600941019415441495126792557029109450789343048561799289537315368445031646458239176959069995885607151197796502340374511513159035846380725450488320107441902220533635634003718873346940530102769064558171408520116663239957937063453167650867766017405637464019419971207910718475818863169538147336001421573033686954590388401914063057659744951241018454114817977692498468019013621550245274160257220265176002732570085931649685649546371803539356667621164794450467059503211791168431287377337122597852721227722024190489924453748171566785901022975659890728233852522327074753549716850992649960210210709176884768460009992480371970850276185179416359127334663892824013565873498142112184776157924245986547195756302211199882537906883430437567592267704390122272122414487424542196151356884231889635375635559381198807200249214905651626831222221734145864034866060684566280310943623786554463798792521422140689258128478851839466781047649653180468334509813834344630131434665102027778333643717442859613600497178592323007967734821892970901965693953070937915921046959180086965828657653022099397153054745375258494297451144229939640758104600986739850589946690402418440699352010067810594408548669205473584300817085850087201878019300112423539153736732184489230687316434777375133854620217747362415915124762527951162031306109857070499681386058698268117548133054151407144152932573003076289880047462836121350030800100413968781676660898078295851085773756712063663490732769007634852599569705576321447016691796334811727836333832773079316135022564734886882394182123322363057324937213127906992118952059604687590879270344316112726033495827574472207442442715595230116293680890215633050591937354393787029129949934615337531203322424976574950267685031091672867627591090665058040316675940357849390483512266545125118549868681408423607939416415704657636128662576723842995086652761049688627882448612364853919335363006649087734952997949856389091816093471017406446569959913381367248531259127894651635198685644886132989681965100834587086040713124987926117116217435879164210237384834205041835837227211344091823996915844886984561611410101479345888555259636662008664087525937944090630941763697257618393900184561807904542545829646135253201779212382918054750825713985105824947909412513733682154658872921253935777711164468172690052532414122984875893440228842214443169376213952269025163936595125276031077809088007207978526587075723610750856913850616344687288449432409076146662301942033303769779749317655920789627705569476040433476465596126024507332067855335749828983130787607799146239869919937884579953160920806965802807569517086858010576259749098909605648150140378501505516963481210591930071189877746561628984595339052700151723233622727160021566005957756847077302976896460359363950914366638186974070508541649197831668138436900542698983099752600714942366921793513240897086643413421637625869082506762968385858613187785710179105563566958144457412336112579555507488950654744411590103653526201232476513145054050222144849522800729307228858527474610222295179876969950813704406815638814922142599753987573933606646952795806674352822050165476459585310860296924997103088872473972753265700556472396919893926320846171266961734018067010553303357218889917333203051325138601492310867117311765168418572345864486280837953517435230212720464909171178981614530495094722589733850051044259732675415500556097515009374920422034465430370574148182759033647417178371464021681334759412172060919795456849179173689434995285558255377595789185567508652155497809349319412243706464019866562521504526494289235602922536253433966890303604886426238755244945506792044882666250016700098543950650670900884317980929727224785090766822745764983491289323010498068800790874772803390902905261392529130185046907870050684423118534612901554240835257486214116624017046004104419554174020242998059161723115503411895821917684515630406598821657550874337879681166699011888273916771955892924636275633578737225679996648645276624439936781802412679329259693301963177352992845479867117506814566839731615904205088251088877234678073844382116445601676105933338816134347650705340744663288413288592794206254958454989929235934044084128149966509049043363125545789968287548408938110756388908266308656962265238505776761531679318279995851691725481910448523951209749877065532623823230697834370866062986378532268229469761915824741639139317644724099350115007840471664349296110527847096371091803396300544528491280124431287402041575990150697542525460682441945362855180237995828236640721974697622894509147048434600513030265216258046797447633665929936034755231811932644820825090674796557815652177348836740582404424668869254229577597371482396885719176907442752525326162000552172444299691507684483716426505037440912011185688605540433646492118157140310493338009072992372398923997650015257689530687171054624028191379442314560865123396586567716655863498712229521097305435288537172736531688982367615863470921969473314980855282982260759637063371841684309069437662264970651828692555093114193651318915838961093117628316486919526312464379874923735750992706576971578189788160174296861403166985479958534413344997148490769635688642351372877390057388332804501164131980142121853918323972003002505555606376587159500906932788875555069541390635447112821794227192229667755180236702172367622477569853796799919045569806804292456474865132895226183422307051658315544122527204445045748853057353636678669965595206613582337946107490542266449954301114482537704228174283871071630039374335789937650193075669061832363809814661176813641630656711726591969100515027032841211658293166530796890415966588480657869743717878261120777155753732859120643550410826694410386627199310772389109224321686870099651868054688165425730006626032016646738352070990764564347229425078604525008857127608912817678817503106944406321820413250363486759336607995148665805198631061448705357151654110944770172569953155537245003969090404639178585084846499604337610970667601636431755450200304119327998034488333735690339109608508321729591290556100208101882657376196428118912464346291778152724259545848547382485868547330961935516403078760594007906551659085287356650902166488770314892960378066980926436597108870661568825514714703486740551208025556323995648924502220293035050882004256263934528064933167643508659158860195774834895806691828984445201516158519766553468863343542246664080932320638272628161348979728722847851431397300594254759522282506098945552278026787785559043528862035853822962874457559689463275266307326883387815531601811275903572676571929614082714315974307396835407613165701441999440148504406727040634804100173875120613600634469987219339060705860697799579937079596967800252873041827407222024784244137686658560610529532184710001601646199495183238794118326777022561658537120396719170361756439495007875776163106994043731420060919276829526516790487993433409007770769789477385545838663805813967441140828035640636424505186125691026907844556045588239797026941063162814112044240880700909131393050235181371816211643710656823738796197165411995345748005652748635836260687609214282972595938551208443883835396881273144252251952638979684874663876365695279193895574670879161233594869559402460473428993165564981289676068383542315952073865073409073855493336595552576371887660939472157237742704030504740555739203656322897518919629582142995490013904952901474595706233062730271787284070077655864925704682451700764109160120647837279971145009032510360815948304006503454787247565340443388748423594076306667363264882142911017929957862164105338371683122808582858516940914932728793668713570554956285617083718461426151718143576817967222615698689222241574557943983117876724595597931044228755490975018492872031611752893140316888259087915230098560351956916661462845343273111750243671219858921242062716820437305428892809207931314315999956795750225214133579531293241299927011106302244386301433457116561317291235149899812474571166205421606074076825174282113994357086884171399187903066806837044848495870341203818815317191624213214225468173027422625484715975669446713742290257400573100174536512463194682270923571026425924558346398056865361250901341634261975143229793380938126960675425996877964487235406386134862426269023679098595426273685385513078671218012685070365069164716683318636998825185461375962636177444646541042681407343690579591717061107989241182145241206628753369423589217727650631716657954989469166598220073655088961513648171400377974344784023084638565724552821808282800325716900779452932799104128128924169839357316668817979742374528067193068721283999197480019474278934142890265241658120306195825896412858838630166139958811913110526096372808304790602535627119907174042539171875305467957254605823655776223961111468161730665294864639532989309192573478248308726242217986108987325481000929375451110799586930498364301738082916822503158245183604159383009925430305485702175840849431732454265520146223330692519480298007410436982264309400878185039781184226654971546236595774892598886511374296925263077710420961350406253375084095526016638103752275625570998334078001088631896120544738450583050740746308787719207420867518897741758855547642713180090039621553346924440419257374923114466950326442249891248252572374217567263616110952609985506038401396898909555016483468855233085740627899982598469475385147628810532295256117232442765803612538282896909626901397377822356183953604532987261800455751368439410024731288522727826547694227732229369392810645197764812486235514694787271993602520028162400067741763781720441850661019257402278768053147629609778658638406536358498098712074561531232049059163893396657540856487791812029847718293968582227644449692007102642149666953927360856186461297414950346367074173295314695474385398485812474577117872491991644994278008133042837180079864716640155270494422884861399043993611774356055107861635149322696787835271613353171897679871966278051991483744889756035742610204766837452605192917593840668682212660101461206403232306271840757645189436197175581356979767049630419010960592959224485720820011804415046827079916118753045722169462278085422898723549370176183922735974639703078580835495063431140595028000409615355795600382654185736885730454317641590565101581205774805778192274467822629942913710615580899076862885311597793906885790530055890165433780207299273627752965874706975402012179790691468998530150563900409737138234983742352475638844582818778939329049922327645747978105309326057776784627539649235811511797580332388383399180505348508828504285113065460220483633690050535947840991708515663010750476650166728164926018872487423790315297016453289054413410883547833107626239615985390835686753821337118864458499371577113766156982045036244666930741452211741743890541073712311440572163709918480557723409714728051362675698630790154982446303883284703635702942696583524615211440497412461050942178763501753959041928751623238656376829752135194704765001435986750718845391204098561122595111252359549385521835005984880825553194209942112428305694359915510500637568835457282226181446483906543708852379083060065837339212656273662014208965096883945673916214268253678324507357045668630473662151005846758593888258193912892413857899621775421127255579791600115093510472084619530572104463419204844862511187125209367994280377189811228856289202572361284781186976234033454943254164606118422175743923227811945672835432460698873988436966834053680727731188264284063518143350411094188224275659061005450973172232855756320818381880625290895327403091254416013194513667827897704730922723285702368915420533544342478401981783901884141326923708197353729088648573206389407579886738321513037978462295565737194421118786891745160155936665208271314596743104332224847321863121210128102193941858537693091640961004354338833878279565231899427374902684796704295763494408507573575960266799202664505130726472970341027233730501274580682571791827683808151267075780444018893650917884007828481729062382774307161913764178879680132526708554877759563152229975819379072185206187736283762910357718585050288123759057644405151481568493357309311486262058263698009177375499381288564943633554624399284912802117429808281861559548930514830620949940866609929789713852714525356272948733654761737668346429307301119343270423026116452061286151256802031081652706029434537616462794664923702969847594189415747557312699262624361543118058108566589434537901230475022130812855540316836777033087368473933963514191645567480169229793615453518970099961196105096670108998276604230072404261601314170316512933802932980401638043992114349310082422964788185357736406906473884381049634158481709251529000369443249832148257256758879363092188534962503458080682581168494995365739286996175003174076826894954364950205336389534720084141818939787652432835777210886615450570069346973824073776279396414699074974658996537031970098525011056418151948223840377911370074618180712003080687314179998745657987494387778983650591848786244545917187108517569271303080268587036877429751318335768507206948682223136867276117496335278626095709018248537769707686295747053721826718644414003866772929568360047853391197083960879858463134944098191145245569889246993454998864702338607476328783731776326860968844287673347626724219025071228159037722819290325883965523235086960279527158791043203300592577404517655218684414906385980267728485143591894323658058504964623985460465524900705542486329036302684441959537520746523168734265414973772680565105912340748525353256560223806156122408146036308849786142219819794809766781945462214173790069679323022443421768700578950374883329948679836848816590942016663062947004543240113041440946230992355533774641740741458066450871184347260157273493774289692519862688953719515060423254577466129184001271323200947616555036220298157739658981235190533337906084842461568992537716294663860609617647862503276040090482360913572524634914396645896462685341751050651541765786987266391795331650406153280251055883373662008625538086904925087739826568126094341670875699358312219908457340512036957251528629599560720269548094960995285754692117570607364392745525514679226352773033878887799424953887247653440450676898997066291110254076861881017962900419695331547181833691122264700200879638615156986789867007966332730521074430566911761603481001203438721069595091409205402617303281049896098623105643122074163705564141473086820758493471329472855223423124088263329228240171015557198374833183887680506093810688868229257014380457578808726006626416171115917863349627634131966236696953189485733180777153454344391057546167602639737997467208147828025144073851180460192284964922247678656403161061422793252573888317671782707873974272644612661184253465144571099162162104058368466573918591071329671127635429013458509749371063872788966505444968900781340979060747754553403207921258649169854938368927340685694172966375733774827406627884604668499393820291631595549224389248526998567111065646170646985048620612124327685386731410488022961861014367260659920061954065662665819964813588223905811925000567009089998627961479723801554617267918004722111413793603324783002803609184357343482477146939991861970765750263030876886607774401933035946010355802110691251768810491801418177759923163645352978946125898924112237216905641629232449414380179432066758652523212275075358257305375170134896029961440434834169624462917537313520064342745119713617057136237890544616774155215803922937947130059974649282415491416305098801712671323421083405022819903008735345631554186280328476647348727666182918434847146026320795255372350184612534515197158935256932353992210808289454140537573926367511238511898970382216618298533581162574566301657474469501339185948487923369866011368302571943187143151847258996662113313030047380658185710723927928705589531595015473540031609471337229589184646522592675583968227157952983252183336637547049409955183135368080038550887690841520625322558592321694207975483097578263168820754763903862653246338823339391914962377127529687424132567328587394523245922934145412352179068235645388694608890216374825889453194855570584682319898785667310016120800048360989541457777873314663048150334371049188965541188653771007348156914406472045966350938977276984535632855425705291244896841332304891547516579068368253369453933592821081277635876595395150377857803956634174745662794930205609922980484942532738956636808407741209512399719749918153182306750071981655800419517962293685966140927614834597992578449499546874684706401206264893449962598224767482296720278290351766770856190937572455384708323232883757729686443983462873363640018865474481382411131973564859788570420890684731063445492922595566607626315827995543710237745565845465725933257833943021063495709804362980468393298734932641641462475161243050102579697985456382891948309281787590668045639763093700173026411480105294977182450219525779536282077423564329617783733082330179655915017832889087474742024188911009302967406988645851248193532941208796218576807516006567625001192077025968804293701425374209961610260284821771866468347891399745643118222658181612933160634152894401190819006421707038576899806522183156183958488899345852393861639619729899184379184018124859449037776525554465569762209738326401621656902028569062681669450259443289563099911307808584254123308523759077048554812679486967850591562079297373967098193951678640480743730454429120776323402604342864195408896480136586797386225297453275844753652877890327362422169946624834837982431738760446730025880093141775951913798089547566852199935344468617362614923011410926705072609671503167821843771274142399933939356408795613912480039410776166255910399218325839997886008332496892282977318532750413170547960199227629315746438017227375067217434781291543992220027925260037278511027747436609813719683247150812253930422861415642737544428469862418994251992782302051438721902087036102317051599611010609839464785769423693344556388713936390088987748322534593823751065238793803464793480137453819793445530182013062325281112145947308910990615064381511495736818706803965455925134657362989964586633043367160304860432960751239449919971889979158750643559298677178401322139253280570546873386765735607531365064105717366351712472275393072465237713483317294881619161014676130092577208195521923530790205801344371997926846746020247042178484459307481831247600902169999728863853595969666781329741948156653739116934413894688156682271656476672934399219998441115315161820181268878206929039300906215643220939297185051351058611064597928272351641334680807692681137873990894811780229406615410587265637193310209409443234357282190362620487766771396732629897386758742381373804005679967868941904867995748571440852527786243987845697452324550082325035522686081516330972970108883675756741896361166174812553664588611713720704926580979173042216717520514348238041282659213834061540199361261758057512716272246157066403746640192935785455013496188737992171486820232911910051704734530196534406910462400021912795088912131874085998421167968416005116399592446703307560409146028056436425270277550423143741232720394145718034463571164016241079976034795213018519958486137544614226130546156825472012996273295949844425545762356374507251049911620661392569947734862604376819999923874520792905776299012862851321901970628283034518467285983451357326581321428812790574981611627858682497515053501585143424131814171594861494963499850382506014548265543642635846173903741336245286398325896801449496273133615214069335596077849080217532638276720718495797500289741083852611899847887049632195506040640695147076269047701367051794270771172731523086024880025085857536589202191058002622608028310746663690087514143546105327636597907366159914092559174427900080245785640393400507239057524073858028806731315415780510939964229210677036927654871058818283468553117457710396117671831914888462307815224818472824315744622987450839925702649805265091921830832883474847992622510544740124979556867593633222970205931897968570386089614137335683420950944855534931820756063369139901725079394398839820991443246965072827343252795909912709501942407614337529518825424173828274703605647948037177914591150737250955362829888995552539219038315207391090285914431531433150229198510108276448564676812801197634007242149362296555521046453759773173920112840653033018909337978689260569261219690653366146482012732659339506189912862572757993070241844746684130554038821483752919967275385246519954734985113217044278225314660468654987890788271309209674944470066643075524010014244373746815893948366225057259036098139523924962291386872048230193371673080203190167424816327643691279214114765158559060901864671965113297392424946759639204363510947384513968370776674586191513519110598972743324080241977497755438018411878558633826480580386326690702268162690753714472987294737703797784963708150087700804156245015369773317063067206356700385248434527486622550432063719599590828314413458760197493420893506255860497876299174184373060233897693330139004979423845455353521497205623484833170601439950527730934227025150375166133988859657542556743588171636674265985151047240754493798748728900968984178498403481882313954160962388245218598868029431725317346309205038395425549931269458680952164527128355902584759650671397217033657454615610389795227254105946422354750334364365025278689378445623036290499709126173062209207851846577898353219922766957624767389540135218057060945241596838222206916981610135755617009521429099967462411283852056028313082673250422350981375212752669054681741428911843191395413738380145581333505074475103489121606998426385013544583670196838742618974111378684237417098701389651096429811152597232038051437714410459032946224859659179442614896394445733162400100381613840691066826548711525105737163206725127612714614267034896752272989365789145389624456139572656193442675353660232068113021387994428345236548743788058449135046321644226933421241337631734490227919398795719788407656494354878685582430723801532049607408683079245754534861217301471956227039593283265752415935259617762545523404394578021124119479441886389046964680593457625572146696151610757631221425478061401931007592093696524930463603136058434526876606984376938791491809053966148493939761021413833879281031274681542173210060037971180964557362266265833827651508510284286166843941959366810369190916406454556789274607175876375003683398962130740290831700475304900888169537716572901217906928260693598938281593336301126590522686931514575857933428417865504847081210853667150304098135379302202472603447288338319292521209530228890908999868050552981285030675765481731943795656656231870407770178401750509366979353843681661151569244431882709743506773755729464141546787667538554393456477687743607728490217116947682768925145365513681008791027494194746568856542626495217420453036756531054750595291005237353445618481810975655460042709346976518085115012553488939980205288783249200543054812091775571448807683340076931559054800832770116837089201474973191916511042398203875996981565651156976539086986960319866018453839165676011448319182464341273460748030976761032539472255776259380201950159907864290146742848649431032629891986553389055752321413699440982218666486414573420140503035452066620721226183085067806644892912624452684452511617738910810027167073366078090714977183121419385121267075466598557929704893274533094943603099440688318611977812701185607426094323735038324520007685085222222774307583960843548633159368315235883766429072335908604938706541712581770673827266304402449059676229367317330873149048111824135894377707757424787003643185754016266009427702833446342908329039872515111255439454093807328084540111949792616814984024792318914527402407869930671084443430750748207533647211544329844556099993169979285337364312415715445157803071151231560646546260390435285400531419006197260365119207409586626440123142287264702885617007671581087488829159692791786188344604297052370479881627485790469551720929638901391792326724592531557155830298701435560423775339421654624248950247557142781740099604130414001090387953431653263534372047893560012051744604128479467882380326189490839115062978659011776746838845353703140304250272656476944350837924417604457792238968720238279873130925946712403246059181622840000062494473199026596155319309833496706382837909122686169324984947032677419108200646826952991562091436080364448200472573476434899441922851283840433510160772743318045068018966742010400311773161658420053250481176868535727981755530445939419900496266308740138926234979040259114985758479417614464344595396007907101306668426320863075869599000455986067090729427547927568217748032690422921937516729911120043970639487273490246484048037541021141045028496004017691709423134488913700828029792024385933365729724179024740468333472427711835778894655760268189216304684010770259839810227699210541561091164930069245130319849229417413362479198724150340362700913188186340237968928015494994591066974403055420477999672152677343541499279478874616770401525682408569296564829506056475282704825547126440648461779305330359989741654572148496403858832105536995483158546477928590977652640683077668538795318821619337627540498147293194117732651703344468176771237238361273392725442746710300320004223333611270570843852379773081709072799017933302209787269266927207992293160606949585286758813997121348023961530101722936087282230277174056500584805731699198577282387987277121433275989592942819192048938557596270248923096850420484999248485026336454983245909500061048312836689241599884301741590726725180816191234932517912419132980511899212554330356948918414892323462488338097279312631785219168807587727691705676831106681673534555431564681045615394925586439892206344130201158409801743552174527304220641947355714457567952264209405375969934329730035648534846341333038525914991141816453073871765559654236832188400315716901545927302928589874391253176154084846797275945035886255175846612079478752151664589199673786473331232033511963493923882017048485877216394570558118440368580080036269807633986562333193715905845059195074426074914184016685941003052320732366470463148553062406310950013657924023163845501255796874888271264496331768479370677114197633508610222582734265237073303839894659572703639388306869165949145628611853290015447631120079109930500601313624350584974924549898008926243794818326821007687704603026536440005218102736727556326874137334935600941025884622808647330104805778924635616662810309612367869592969891398277531914007240151715211773366937459512449354204864819169140230015084095053166466718586180311133395879056823402939671595673976956225746426321424105687196631597354526441241250791312424485449561658963996005091040354675057190231483802779276369638112504992795626274001470929583026832680265631937678137287828766850173695843920326137568658643567544192824175325771491334078811812055892709831010251707931775946765101639427938115302973055601620453672582221629460211839093372184596691454817509621119026177667768711784011949450030894923521693642785448752641744579206949793921898271220502257544192855213924028211100172083796674133338756781815818529598769695622436498081057817124246560959237326391555834695301674856431014407215313681937344873570384162062414497303059134244383328014589368078978343405485793893197371974960352602834318477001476618331779661362388003187335122947908760676843809227629947329348098181951541330173680205075322690491168359187018141528997033470751097898733506037238941446651587640859948313134945097565252432768235088855052376740683375327648704021483493029314941328717634101249590459716731549614530710079144434797561183057353385223282032960431463055897057835432940748886003119653712078676217170995491898262015519407731106959181654005286071194653361020103235952703299036899705053484260643656219505650615699550316043143834254487157911295540308402860208474696371246476742526402019554190404524602117894546623603636850293833807345347634377434599940983382467542588996321962633692790197815644388633621043608750454256766028487192824934127981568015102323309260426717987065109689937378492987883123807564775876207204555213091599252433689660701720546498012122631771210763369516361140515293649261624099581037723890992981559825945869885182705825349465732630744278216495720228495197899877106995788795841942699363555183326407794581029679691286482416430701682075398576058142179213348760543884593358848067724545512116348735692187656960507054397126531474527095116082500000790871155651077582797669347402100144084506627879470847185263910069747930094568466083541100766875271471134459557740918842692643358617469677987819312490386871375529643993336012459506772137426528610237052485352645236587193004992098717847406363525604993172206689157666061916940655182835368327265961540377349488099040632395786268240111301539680994553369740462753530943954204217731472053567996208530131020810705463916387300920118864079443770303821188433043280950059724725978628440398052579440049061247529579643610576851791229936950857017826074725557347496458858454222462019718914818875516055639160262165775500191078743088017909888739905258799624849003129404462905337422718380560293537208570966717474635143110823284347462169844896008438242051361614075515779045419734935186583819260227644313124355405664229655932367922411235804175491183357893051831427338759211917670302938363215688400733655541847959221419909866161503793427831359617567471282898573657110173585858982927230640850793729394539348591969815882698708694144470218980467659804729040568290079200122352685629667341229753070961630349598383417167298119464912748945540627271167447927415751231951193929081772084738264402878552111920410896478942557897149013731619881175959073691159887266240851396503084666307354425642353758716152569915046293926791308973806647891512774247826792292580934194570715978744777878506648176539198964784288312814898731301569526498415863394985588706906281442491148212094364919226301905218206305831430065761666140707879721355602372374884303027723413823173273057992209538826651759683533143043408540200573643260279975154050148860608126295114973804613767465003220310466413859022408839405941096075219184506960187943031084234305451817175277057509045413251526705049491978326677204878877964593084416597695758114645912676312265201566108189113571851724279988953148413491534240342635070071960684815141358125038159942516568130486402220444522081670438555790269797385470152109676663829405120999321529091439189396926035671690517536812383414815311271112897578513925940577411731570524182349421042071898588779791985843922666143987842480641869600318140842538350247595318106819777409573928196874142696499488408720852742885805774969150749672598820051690094811279144481028903872572598211844101029523682195668029072433978012093800514744839781378604690678407207652508262214159725826156219327781102241743966643186013921651600696513934003797119773117927026812882853012296232686184858281438545436440057877628766258141704414889320415957219292821696003539256196214168501872026169955780420083415922508037740747741711673108019415147357931524547938049009762276913657260113967253321540732043702038165763923928965698375477110010918349018583544765324905505614857466481805118179115593499508200222851820387565278815817107351324542659842227418193800400809618211686872183295035826496282313649548314355469283995320046973877709197144857631063093088408531322331779252246074842500104898694169509982028597302636417374151395479137826972042892791179396348619277768896508374255441403014815139595167549404975106265673436827492865047764318542974449527938133321686820049745884032814792183366886948702486174859544015943385605794813285887915403656588787944592670276901921433388773223544198002408419576298141497019356042352846676728878933415932156520993080393105851132652672501448271597629153794887659922950844326656203080050839143403375653051082036092418572718923332651085751775175989642257573246434106764231313209915480791041884039352516066859492489652318063660271661005198378334697146980442398470336188314505302389422192824786010589929888636851539412779962740932326317474803351590496260741324683330414411621858869858082128391824844892182596668586989664146233741978063944837843313610476716776188201448858434234437538006839774401053556197931882806895522038860120284395310899016967065648052840195555645725611433600576589738723435242447894498841979567505507646023738926066378446245649829413388533346624817569463424531623598056553009354413712457843076214811419193282232774753711862012215705934883701774817279931441697859448974229956458734837925913850780293853350041768640609271789323552172516874641601123647022495134548902432835083588828588979032541337681797259352058451908505996477921152155908002247609262405451579105957453251822438816186551131137900348299077496001034909357280898452706775643347602842700586415153169482373319185456802105277784537334781598242578382390011631093636428780978971205955106734998171446879863546483554479867901959415038831508465474825600141721829608144205116628384006557730373942849488265093018030073343295178758309014768287464091024785789538071040398913662590725063004004443466808199023896672314645546148746976393200415506766692333458632449893070053788913294511395624242372918362043817358080184444692037982497190450357586796625062249679585460950452417782765253669180593361049235176035072593738644190831573672761963194311435118978691472169340791723791973772288836820549231258897628397015073922752869845308791832722213143652822397348681785706061971030823799964072641531122326485415349089103425977001524938492872418574972622078875502798120317599750509995050223836676891350561183696344632655603020616723264328125115561301490534950480929878651029884268913240493407490704548561627908687514807406811431866933677058452441127921697406341516032048481119568778673919166258138584714056971556417875488574746970066314090410025911971237619134026794643703132205162441311320191818508228362732417294007747233062940448619362436477705460591400783601153096526041394272795736976773377402301952372088888949778191878787840379633855527696432556668380139670980982220836094563013270154625129864471990959338528047853429199299194051918097263255715628871668402435273398030583265916595749331507692371399324728954972914109389250016661770656253068238294729775180666691584800182640377507182569777348019770739237783800738560098089139269528100677658880779804123703616387264934343818271855473495976135418563198838988011049408056312789049113552262804713436354979366741281742708272473957301381250114292169476222137986139115100194104062923547145049286871813616042272970431342284060458547023967801409742437750015752482661832364018160633118190007794278409093899229882472860395728873792532972728186098244659103490992628605364486694766727546320717494099176780066619543131481714163095862497477201888209638689966929553101466212684560893299779752176879815657520972924796734059283529664927512003104655339130004659507097628080269290374083510110316656027726218559787051589440855855962289316770115029114389684349114238664238376776583896188937581006662396440784827012516260353527025528135592828551373303014579497953905873355574648131836409815977793151979355044378909996169463128575012114823801442367624027003601538157253457267740313615684056102967279901939478908418091153724885954206590579797820279614142687202580091641923873703274438509415617081754382800135067921975709509661448216662828193811396365775534636660246405590215372679521661501229737159224239378701105238632483656652920761928979615511837210350077581838378423443531502032546915202871430481561148192503711139130094163859119861248657242207481407645910227602186754912649911776225294134525386397061243203082965602327206055746308568170808155373058361818719547667242291595608399611488613628877544405875743292586843028298247709716837900596775692905533579390198127610599687557859661139857162697225010485301474786186742303659335268009822245342033140710398873977225103690022143535524106935961464845978810329210369425241133070359096181564761353361388079576615781509614673361599160514277496075767722019247080282492277451542972291227076223889158484882995060354449100659087864092411451839045827897563355476090513114634753589674974322324630205571759856761527334783505728976244472971889878174294070155591069655211538451328390848937568095228971941166102039879606671011788788239319026009126741657517794770109993503314761645668505970422575884343900219266138701166823906491695679439431924974557417309203471804846179693052846900599942539714256911974158803915541807256171508480760913676580791265265202900321946316667287205301195444415706863791098375191370840544440119282368236768601178979252422838092593464862316186485450703503943574167484720050086672763078748517332553334988431784868595522841440670851839911801454808224478371594166899532269804696220198669560120855487654811293461587909379686717384063046635496285869746874938655000863517349165646938013992484813285173723235030396899456656258311029761670134486470174434523687192130985232278422253547836662459181206879609840661627762089566481559444188694813554212967392392309435903980318264089152508589443281755501781854050236814596076171518024241120274857220742877271284404942095297981402246401468074489511562167235605746048847632108245478838651264900665453664977874336688325613272487740476529312149982727945108056494335024666443341092382659540363067332779590342417909248537790747357535004937776510918760758055145370905166489154684718275771131558664269894073391987470454654673121311639002573867806978287076577692846278310134880898130342404983969212607515683447883698937153467309991823256945832268579493939555550123752385626422731999454726285958683035675713309938536048008778934335284039509724986074119400159745300789424425588819551159051981694981272063242210241880167728900627391418980773561231843177389862050494578335351509184426849348143390193751713060809213665489598170496207720514980726657395787939404927849211519617127826751707853984443329331964620814685091077966876707348008490097036277626191811271805411942256987677940091563843652802129986948748169600337484024387119318665326967790924101300949753386074873300389637592451477868129673161432009254872391973180402716017234120070085564094891111188344062172040548437679022840365442979198393681404067364955649731253868471672199124155477514577113495107301095557058560180272296303029934921158662525054313289886328193389962886384229428126639555931485245984706367865254939670337374347123747456913503690538807630634695292334866008778347762580712955327326132432190033605934619308990677990673613907636020820755180195740996611707997360933912846758439896012067199124884019766678739442127921439361317853359469054185233495803201978507980978595369512117720956293965779997640700435253350631003535849646667960632282516228921312910393503612932605674107314588879333415441804443883189750552555914219027550517723139717055170593880401736603737849222538681194890278990513887508849727323929116826089171525122480159158925113364346659466540228113143395436446698676028885967154333979494773174933034864089137868397157960642579525746078064559816002882813984632584508324588752447898263144757418962651215733364940038650058107396377947791996551882992258749687660629839613225524233625040195929552268366811160628195353006566887413379426877504148661005885114378787374002579797906560492583333068427479869226707939822617403698132726452509087256321332688525841931680709024628046703747682688208150076069047038418132405626042938199476108425598671725243669525080320883196533242470699159014028589352061339678545479125948365788607631676828873509155028673568223763729990045994168795071947120193565593144174874971107797002857555065809762078049518498829540591008750769326632899215382941071808270505055561455044464184202133064160410759031723797509061678048045086605576698624195763853980337173144480358327252560600417184830286107169683253045573957912125122776574860157154274939495577205965241994007625055340605547875325404479011087777236066554871423774531035298549094232144808994719593638250095235621303990500531844149551718992147747120772657612470202286315120368544068624555727264626639733382037037702866269071189315492984471878185214329002167150094483177340581348085495049621464381329053145043890902668867117794261780984719596642866063819151147842005932575075929246236176943252106056591473994400254754907841554884903538129093509387840272762075374604882429080401274068985564530961644800183238679488409430855939539852329146132369169516110983396068013690004013167593725323779463605027419278086385627922562123846938063563222153108914508878836486554850336102930146713703176590703334330808692860746042556733852966072387795318344700566141060554387403287342145385150199843589702646079999595588891769072617185474187334003566413828841915565005728483326580543101347708708116359904109567891143297820733524149598803711583966998021023062983361281965938559518210996673665997849107452264362304067437392569713118810300169743662576922839617436327761520286243624264470013643945633813756412145139039919605613736937682653623852242348710751631361262277612696789428464846737162018223932554549675803324584920179709812702769257095412050732793979929573482139160070317394737810095540162761610072984937622698466019614486021212890778776486556254510923736575306099969254488258706948062841412000128994188482628413740305708243190178946300357778386884294648129208958242312875694942669694735673808032222013615010584126264957478942829835747552859018611179452179355175339610431805234760262653147556267445583340255679529759758682711201103828129831357326435853921969906501529437717380749903661257141378550319928478372069361677182983020115631253674934948794534964883871492584082879626595748976167387274727719878024484652901964908159841329238555824492777353793215568432709129766072834251179481438044761642582168962165362145488187473570644955447809776544231356155975573230195493007834274150762916250805275071688075504049483735908832149567472961406468756513056691830958475957466364818534943643660576506242442129945824129063775641048606328795370399632693284203442208892080495421800867770474408594601821165556301514712234628908321893855278278770623330749876922778097495674822032669810568109745817136972539301135206972464265520237286084026086899703069866571038199688023626235731079632302023503453486574584170948911179020008004034173524424212182962677902353307212586122497283961544182129329978327678431377687076133516822954265289032962085934947364057803084020541812424081022783184710188779138115804452473459423145450737287522729196531554655656769802874438426770521082201866064333041067204127320046736948330956521492771443331324411978043052931036762147713512186573275771330931145339748289400447140735987312395772074006534519229656137848134201391943708437533086274534374965438092971089317844173350402742623550493153526988603627504187871206036791087099061912465185044403840782701740287877924968142477653604603791328870336482562616095476594790590574401033032624479526922743554335826953506440476247863729918408149791928121410042860802373697114284242837600989220106191662668961803033541711993715867535320571040240059117122895668869755808705509329846587146708635830196694976015508793867383772046598611083921446226725928200316950131788767019224088367077446117308305990585342429780824081119019520792980639786252589309370721429846225259439694041069520328754299237805744100944788169811458514319741536995848629992578199984894540089799289685272184667450779725230258848593714878627452638532392944153171104808233374787436065690208852745017171822751109314795104754970621815800958688439043363348759878180391676246617608880186359492044158367377470059692565568007964617508012070786423541048842243750397214759720203519088570345349371432865661184128051845693337169616824066857464923214649969525912119051718824670276819783985198806000868868524059334963763399755748626699038676572396810633540505116787752407696481815528344494673657860084006496565645113756810843776240009026545172190228280582383958935153704862762679522701592976956414863706219883242386771956477593854794458435073026409457814573495477621300369079286828093543057177829229631815495868421923047472883801476059568488496699518252216865303031593231571098637827967683576305968545358660812792106644369148586601100236621426141453995205999239361132917412160522751549291081934994925666635299943958053746400583404942520346440049325828167638399546964282100111573603414910453749218783900638762531523703659924669566011673415070306755474974079033153911047686314725799991878119674243554369489254684576682965499717096523144680698786694011636988817455049004700234502870461598657661118446885478323134022010298621790459542341437615706565087625966690308578718731224908951856391976667843805109506028412014125791622579197983674281832646336820325140760665694512503562973638526520283353224402117954208057817228295706051467028659128818988061478046650635142455283909947675869013046594270444513682434696426541892438943750867437784127590834008749066541795088843164205570964051451661192276515906999647507376237830451994452447689746931861321488996157214810007872076304335353677014071240172964466872683038586768227367863341418973838319191309607787900560026295117228322533686999170592191563541646001228068457493743023093775029815813869297906682663092980101253364390576452146298691528727136466384402638116993363365024997150213351831680183903400412034947182258954403282792465484800482809470444792265634308322638182739435887447055755393836733705536353023399182442673367304204618485235905609585493157494412281471034772899351490029502072596252281349289108054471233935198404017607727016608511645718990653392698265974047915344527351091390471235299726267437842797801662802512017724553157688968703111842549678245358971260218453559845666491246529865600859142532834983040318005551299914145519271283421937436310631051734103736778532789833535720497260377720481596807259957079583119561196578487537182794666997525179445558244169063190543711002737951234638443117160387409295326588640934854799259251763902042535558563512288135806838517127348012908054536263550639265884467424894475932205509951883077173723011909841229737196694809844539765324362586386936125262665699903064647750218932781243113350576214617236526485872518708530755111906823195589106242057122483085041781928107562973957026286093172206291450541513087748118087822193601903696584287599295000557683117283283473914480335690124732946650678268848561546130090671116633861456280073313062506763928724142964754836975158732733512903402652504867792985524909388146459204489225601459426860122283956777014866577364908193973527500800395879780027977852368290209260864511547557065427142210719687154348610726220115314539568297471590955977971890309866927676286939049860699650086525531323288191010586797184470874480881107689776878162204879405961538289373609939423887037875773761976125611115862739115442537093953414607246190025549973629707913183103665846906379120346160812545995188116580785962997744269176010820166567081302931266016960931687014473318291427140367529833197615848323634100034187546197961862849889751307437347128830204340395059903787268701799117870043080551947270680924801901380867230050400272424643960257025711334703755344534971951815074888320487697100080572980759457174047382375900888058990138681514094077886244471712733181851897127689204661533538164323815154865209091480945198155267511299994025724426205671251543799855312863271906074849208956884480297062354372264207548720806772329913671640736281753559031153007071566749080247085403933941464524092978208229434018574315154004820538230918603362351944371917474517439448305642445105248418752752964453558034178013647563648412229637259558338951490904838770134852746640484005651212385660693858945976344436208754689064435472611130907610010987665586947956397859542098825202030429452240783787298669328110108788189467886955446751709132499700235169458399401527397492716825373235123879499881296742123462577097335446026535452363434559641326827337210346099594871511140120912211267959047653358184495604919970588981055907687544685963672405667123286181399099384497067606118794357027794380791789142309181707570371690915262814150891368370215741379597293696546357413245733082690481043647124018440633269810286390535459941694800655182045888449149662176692438224835169064709810910849931468535473281144159439085918774314057836639333612568213424181097578204868256663453719071382539071502161916528274991035889887931948316644602522906992341699748435373721588074784503545924881162536729283366343030503635788244017785350357048602697540541076825612923908176326632308601360478252298135428683754303164933497189724200316726796622761566933393747400723318789670655840581863457741867654172093509446589283860631595190056456499153078176656056273686431154458700278423556856464443286338878119457391174210904728216416403343350491570953358856308549801400691176836472353368098506348616867456863554904873005953051831109084820888091285546177235034508221062573262487374660063835979963620868834477445101766273292816016655481472718457071387804559068887310933818671958754899270635267671883493960139679766711482919126399915964774516504645968875531297092644934830439625516303126568823611010618863425481902221280392996169499560870560445022294006555511473627148941814422092015934359256287627687004376016115522262018676827718091215309738985302198114817301189655812605116436939169182106899285344639544618077237815338673510513587465288593444147828698730895431879552722794418145119025889018180543443500642516088498332711172204282170867647848510955385958307107019846995207541256126339429466552127360575720640133219765488218939916980705976008344313616651781122118287724680107343395325294446717124456869045044969640343231750873286252930410745594465490228712028211406449758129549644509304209655243863082375702813748134939941670159254264973987048777840687655122671288201104316505584726151323564775211118633893711006821567763438445846546452873057878188495384559933878943747545530027486269041962253573243571568401417895584684396676888226054274286674832674837628330437260629062867645011673191276456129576470202050245720602589934891612573468710327785298557947007576080115539840805528722782767443114837198594099451563967240685895568155767716650334130326435229642912897995273215489431137074015591845362330003506512346451848766251741427664243322352072873457117846902488721029837379871193341019487212250932789764324870285144136420547009260092945960184110188837980556970997424433238471636223558945713811901141933027028366343720033402339330861009538008288636219456602519328748262663974255545788811376872140301904312270734756590559123517096138135875096893545134147475152473487291670828110097471182933727469527811462451455535459223993359486535177931167278140730748798880971812639444823853352363341104379745539721832206057381818650334250364256758061327629839835034360525578139348237890355784945983141737343293541571292330595079761910508860644298268001385407246456700417919211374424268760116190554435773469874646125932990398768021958323753694677723744532639483912820135377189619407364094099861473704109778167506623578780214798937051197252109170737868096017069595715184876468415667794206164042045791917489939679808782917768667011408004574948383917254628829784843278778126645576096704517621377815993880385587938876105009762018367382992972462785815054909862739468315423368620970641584739734543004802620864719612607842974959429377462265470160864145916483538954529721679514734752346597036321185960021708759073032680691671693017479616990139115329607926275570415845206744378027988406424731089734574875666371074883395751615325878288689318668844620327049956447852309275932423036955320284380958098728705621411465226619362773346362600205122878680424598324364734061545847207027012959957001538772433937734240673157608681440354829645316876568357145029059089351191318242215268588153698651969498654794124627197759402300977701343468596759089750664519518015087445559653620784108650691028318431845722343828924221393443074634736575497651968394086081010674346101401626693086897939935109608788256673502246550072852056684227563972474482722352285258957157937161613674640875660371321682102839516317958892907001400536956654119588280451069952776753240000296022588630046594948883630644485298839986265792548151077211508634560782259671309509930840497317431334904660239869039149898166864599789943304719136431675664281501691711432369896758901803494775581900697820330410384053370903501272334251488329425986441582445546354171073528273328816889654695392333661455779193547633350043583425162726322805464212580726887595988556314741116209724124546265191306550852709635657486035330266856316653890593943715245739884396787027350084273674634296513846428040998851196022997561753276459924294218027126179216314072374805359321429906976960080564962567761395336652624630844838714312523604838262989099503252671600061759095561938017569291769611678339605046348119284569726687298631536983983810942620080039230128640190055933771386138022023345455812102257680826579830572592364194989570472231932788505369815125187115953407423262852772897687394866120958574362069209010845640954723624324200568317746858698374026907761871520194317557130141779608734182793450413455061106172488870937028176497333624580069325225115332005229677115461367493527996352294996227239163649340080165567386917110403250430521283750150175757410055190397984193243342607898974821797277543857498023072887215158867423972934987318183569137689697633839258010884726973798544660533349949429772541016352064756726587351612368964134681073454923618159263614860867031370742541452221455116309339235167368769610306051837626404491891103721262615299577903196499849676507417692924903059656266993647191021012688174316987176041078661112144856593704472843654558231411326137590935769845495109362616048920265927487572891132703138908645937682996960931183529776402535732824749668156421118482534482584103716109221796100053960037537358059323459754120378199425228171445844091471352761843770754472953348486017619835815732171300006929221609509790022293090688691280481768144586350790744660155503995090012149200393278311315990010256164772271828434245068366329650833149382894997370625521333850662630412092242257202551113341446442788120413213255385741812202676956226269383737203361861863822194368109547848016492549815588151213313404380118698656713534399232505750690194369029988467220468630202952278777027751702495616965459596525174225451712129658449252944202525980764060802204886238757811918733572169366441134381371975216918926286568120672749146516831152848248643108869697095801116083830295363808857077724149068287627564201452578144538529007860908465742350909041509871934004665288470624302903701155741413045329658795724279492355577139084623756446319460909227260745977723344796035938696025852050975188795596942581859756990924295901743861839092421784877844105859530964756107865891996804991865760995907500116430354070806638820667054365207890759128015608364181093499802946231467049818463369907831209994486046015144746691132257591166375636702653686041545592191049401222337343513918553998554852058877057649038830520897016927546232880183493078585471267804401153773428746806950497406508756999647858056545608199769058340566614448294634380513431136004117643447110633391848741794880731928813286946834674010216381944890474248282714733844098506540980870355928799669089914501512744148186579690892086473429808544454645293263896401942881358879900234812406554700460803618732254880887649042427620719734915457099202249206250054588851796955320944426965025934226500006863988786685784585904371533684353293414800204369431974605425456388470397663433635790591935133902449303705313279513765027280128310662135631835054300425148727076471713749491393340504868082012302492011061264515615444795131578640067848366361068466465101698822496688505947237594714556085620412345758232571512714619553202821810525178263536995619319143867349411833401141769691284190095723908463530604435267739886253259228076900359497533371687984131605703948404951151737378198119871804382558347490451704071422389521507062170080526915754082340033336234766022759217276440270206215255254393898058820130684008051610694718282257334221667660892803668035363734473755754158843393431561391063278105536282381318943878850220866029079925134929912111343463658001886474323965224935021079962395720779918306506491333644265673838479693360493156768550095963806904952768817278763264967054684366339677562778536205456100131536968139291209971557778985537952377798302855062321024901698179409071131778256334315747197053102355103676164329086566755264733389859723340971813853627071400322498216386338187063771187363071786177662259376494954934516598978565389307930574924078936733443535424070988730556060541424238896028206496740097249675017760626509212781066070544409353795738578472379724199630795255095096653342477701599628207774764135749140575816829217059439211480748585840599471943648666678653216490874510837831475426380432189701908842759759891953415912034074875784853386182357733073225589495386598275856511084517687364592109612300286475218459505775423371135527982324898728841800083137647260393214078800818646583111834041441264228450828038864743531031430498096973445600207258216447070854542128152370196375638165644701489483369403470567589802136319505471189846158598581672715572083400990062837407205420900922264123157854411109136854270395060211419206013714218038030413388619074683625140518918942518492643395516495774367004608515371890939533725384504262310543182595085116220564981195666542515566452703362955048885158202366824537345351839476302971252448060720734617901555626127573550479022517773362995843887469620544337069609294598764911135681757444842367983825375725496745976145323807669726459187887672079642678840217232788713827596879870556362520472669137268444559570779473961829445043322614309430926662616031585719377794406985683133230590800936023780715492978044936077334679887819834709477106862501280247771896980893676947299465625065978041322173937120808492711607865305558581677550657337783045040891897520713640728397691746231196779426912511055663202906464827297091116456974527383038250174208048370650486814751411914328154946877866149036704569342018390932352885812050571148402545915789204717010884744358358981771179118427092167975783175837318157651651025446924299112761428468699230369618214467807274871948794979944452488677659956697735433429049957638033212921993896199040777400974098511637479203442564084578058144495037942604150850205397564737213252315682424629207681134311293868178864975009959358303891384030438878400057441522955651303460333682556891076591740308779139213879087695802498069957367004479691282332893033982939486011955073716390865032920283533709296443607125392411103645033755954766772436282960483912659945078337759122238510981250357052904931095304525562855099707179082345997745328666351260684841141481160844942451725662030248049526052689158768754295814254327915199839826824464675304097489316987210600111996382198920105313569943781705409215343895506862834497229891374595646571981368191645549220985517446155923713932201145274259638555176187888407880045032144759100454532064193612795411289040967390563396864816225779764797724153384163347046060429988108906167322391641001688291970568828006421089282859464703545331722006225541282061021834130037309633863024232928764703594326696888699469160040559370989060610657155002497223165454357389687105417310576730673326290710900778364566560596026614592770091740387572496414592388122688697621436168071166205358588228205813890169797319077528382622104978231229750421346549334555366789734501879044750925011230734315591028241094697529087055128059359137312427803987483949084256469138299223731258163114466742295844213738052836241588880970506354047090625923093109044134629501388467575888415439881426783559456604244837135551633530123083618731428163568652723475389999274977052142592231858186818622619727681425150386534549525300258253248147058076099653135311122179595252925947757921018590953570950328621341556952133970076400276908244374434239480634056389510918253876968923734616057526815299360771159426531978491665326019705257840469597604672316673788559914189804275385737476180150408532069702951360288314245276592117636870769138529396660069838688639383508037097016789266301019167919462273369829889828537701744751475611587875790700467781304747696265165288964275351441323259563388307964443803180620610891940188879411073031482410746926846914302455674501106302737705761190304163383233102072871602367533942594178658593671075919606198974290095964960387776623304551705624119555036957971965156744685962321014595789618287749392734789445848987281391589729102353593464301860225351236010202113021786494004701965063634621744503122020890582063395303476230246830677518067149288810954534466562720003075452823443073855642295162101787265385929456307745233589772167058464674695874837444820471425300953772147900835416468429609506977748020045525884689119643239441913606270919681691510806265736456466494428514982753906863271534654144410259152483810550318948743202304313279425993395734655776083239110396034493704630002211539803097695594297359137336305724935572144202203578350974256732945462262847541487428260913119787897181965414853558381621316504577126920662219848320004591582371961378530139006759305225370401445329292044220841121760930526613798733386553358675955730263901424437204230262064607926411827835630235404904860412421748444301128776483948751650527957868101111427456342609761525629002924031324889107638954316340752022422423628104065560402598074102480201894843147033959627101146051674291144068598745285083034316202801045351628243714258319135602936064555929434365661065108233347190684551465669005571256960179600017869066946960604327711422722258157116373098177693364429565816822017630103855496617053284299248887123029521535998498061185601309028612701869883194818597078291748718983743702651886411245862968043156596283727814493957944302670131754210877597032389834966229304724199406412375143071791509297102175073505513323832450962974775653217162447417506129750835687413974151777650639290538273057311820803056432401860729273341807120966567186779945455634733441740879124244538312803974186288690041730076284586512542217001295056277552323510287517258429816991523057644628496289322848893695163845987954567553010586616439767148118363856815302986357787257373771714003160557814678424295119142444121635424645342771707669036504201810082135985368876892425370712193798556439810765048483936350197025570204910883700866164131857212715123579723517208622882890041109383524725718553996996876590418935026590115026582972291508180381809697594289269366272392130679782480602283825262047159915462279368641844582054504685020784908442391793332932671008127768572720032948418161696345903517047129226601142463817420606708626942722589170806611214302399263310346945343898547896208125711158766063990835817480298710187573020643391661448688924086164753455411584610625981666115147458111746328654167805354862677431446345942879509562572889679592054900149617132050275865357765127935953326475445543169346962904051836803678459561122898314068839025422825103049868365678838423743164596132766062980329848072526497422300635370550514110949892924697053998751762535238234013701716309824724691408019399796550216208311925277500427837348686535854975341970553750127757820510727137685026786541872732480670412823822085186550300046113959572291930728428959197851028248947563848599337748463022571317726769060459960833800695505638430697148237945585041129893778720280582816207771407835866524924626866873881633471970322752076743215397314851183591372717330080925084084340673793113880717465482054494553051840461646873181381053812463418090659601041194131356338984461290050433866446497200654483278867946455765115171575390841372741749942915669914361565598797133006844745989445675208872440321330193015836640343316080404251673573936224498052929034410987401832350040418779596624737029397627468038282121782628872916536379309719801474203112592328489201028563040268277604830528902176841993250777586758405706236842966784463498472953870675063610934786375057701956568049147313239608315918190440376652504633525067618050815874028145230073561771401077303076956512056407841218467936239391352320117021487291975514656828746295774247227230792784563639960124244427328006282585099781476593570726555450265585631374623859450279983413276826779778089310207169468873120918636650799507747714998036582490960674183880126442746041883171209529613849029565643030755522553788143093846793110328871471647090975011337632031849915425612004310089121411208612462330649833628558124893915801657436820563063677944118827338447491086313730235824868847890856761370664073049763632969290647955232237160239768316146921773302064625797593495907124021608344728946149329035684991319869235387466684368137373684877018468732930311639475231135449099239095213840967165973154795933382579919246222148395158055638876729545942222389759861820636912023203408091537469404036218960241105700547505210796966596037793797589964635388039362881946299081933251815705746575818204481524742989261539775383463806956412900338139505349024458832230130135395603016672999055828011080632850223988368340493722195113949368661869038060880094873342746109213152044713732391943158925942688642230578107721971402532338038585883422625528297066075969291743520855395141366520393383124316640462436185537989315166855259616086438639374813496802491251754460453496520246668931045891356101923941513861214584808119975647579509668725521035198028389685266442394743321051162162142791684114158622131046656560307633180232357383260959658819388537544487338850044404742795689341769211142375842318457675023494570822927253807727211323083777571462419668044488045201843276547931139925961490995397235371970724340199377724380832655125856403608757630298210182768439857268561775831244395521770647032532155409007414923493570791101196081938398934718853164831268773198594560404543467310533318929273098980576323114241648072311994821591982751144371431912516457344335481984569029147507958043729952272539800868977736721484480725386781219653827740596770770316820218066497017403070834827153406661084562772743520320556020024548955961729795854908672738133136289541493683756537921154099585798372548843460994303385503436869168102566973726494258504908001891101711514671391840772650951174170867296013484405954960315798620289810099632605946366262492617872111126362980890572420623025766060543734087917829249447090840269325341449751144887612192306655984654903652180985128266134942544150959915771176017227900904944345794522907319440307991744238811424657019529261773135301025206312057502987627720570954887021782655976999029636658234771192776873023632227768648417073003685839307313361940102815536058036371765573078508246083741255275288281447456541276856420543435851017737402638242419098965639828081475181235900933913822607935824854726076979779038077322108476378586297190513079765711326527372857243400897403417981784431005881486892932436429999109440221087640668732126540371946302162175138133710049776657458547441377598804222596853169656043449182196196523723486108689117915558814643387595181493737832683066290743126911228242959351245389797306534714416115142161129442986411955677071844257597332027925555829672188899643371727018719464429914249081866802332392514843831797715341797061183615701342633100818918696822617893246187494201710423134596014649684241986062116831305393995923611023059479538201836410457871870804441976341644228030152163117585363048868319385273705428482276998088534456988213887457088971698017592827963579916545477512029752366315523318567375526722981245151186381416080900533738325685476638419326959065067579079453073492899159821283779629799420017757290282811616640492866522003538427751671382637353519290369379503004964904638527519212508295838312296692218615345776964698361223372450529959332894382090177417517636409364864174216694718243383305115643292304179036160177786355746112255964703740445373479790739022399086159047796087627689144674616212862892162433989032687350635411212368800304711626242766412499748734805987902495461655674397678358027958265655094976499316115760407982940003365205458300301611406946759150430481840034928323038867135692912038919834385385545972178750202994398135744326373843343321107750821109863284584958825469688964254274387719953740077072391054452803904658886906640496519860300420188010862292729053072342317060251180177794114299723716508031299308353033882345974930600378579205003452393303691326813240806265610264911977840145828056027621381633021398083718592008006597985904034209235319792713878001632262127939492225060127083534664688668071488540497005153719302093958344734545818908921013647306589678991058766484263431711618199693553637603288450831480762778872265478535135761509221102869314171305974199085888898096812266322511942890922041367860439881630196750950901822674170022848518636421567732342393805945794194735462427397615476437061436761107185317725058519538937968273936798693047778014922111566423194786030923598642226655220207610571386224171018135817066868651318526161876423769899226386609115702767151075380129101506235909201398586274404338048336857040374067832323700670937898343746265425835019115570836220289661784640419996402778728891400976180519673286640495461164159008609441244948165336652055703138650449004873246365394934579946696958760069002742234058420339556365085135504511267287815908322273178675912654178386633716396330146771295785104694968897204813555029433064568013034906255502988551562297769729598371763977570945173972314543061523348834111847581340586092127302899381874718653431018657341897261881210811339694715549141851748372152351058096692466022592511975991240751655463496258207577038849835283858993450066482546817568178293612515929162658283202139367988705286154604580868083201441284858033099882263324706535362691649643859680798377436412190827068376600460062337160689200292704185046128092556893892180278783032351496851227173798828964889527282324476866355867480734174533519872093243497647387065529415152677280458714027889011236163091269514995273107126417480795291153444465530489352455515222023711954346169257107664978145702422055187347085195796051546458523777617902278803070474924909997012081611744774840589058608226139221394545645233476539319583110403994213983586458909877615397926240004206935151301757146566888285708310233257907044104390542094744123506731781384826986651733005647242404458446616015171571133428585805772812664635723882210583412942594772036696230064949591876635716863219361328862263325361275781237984837731941903018956098959785658087030845603415545125314505589561482922160165765086955090542850720641545574281713826121081511523303772885159643436884827910530297624537326674924524732126130050015725671552388477438383868695173795449345685822287515679555839271464863428075983786360330472158846758373383021714458136731265929545784927326406796300770535868071401046687596936990954563951068648879023330822261141944912025698882347104193732982604726421449629860597407838690234739380536401159637173196042953941948759802884717114936177734706884644635598402213886715449101489452998192442600942636319749166650490499507638009080161141689282618155333830886057478638108230260198332237693489799935648334476730936867436312158920101563386290069799934288219442887355532232541004800109429340982014301869621758246013226845181399459808502751136451024576609472648262154606361566917347410262927031809657810644153376517002432645968095614390066252656668454029603349179514886835300635365422393222918494799168004234444097804901491838038121060587090988139914381547791870632860572838601134107355770076291738116910787524568768182696086306149000987983212721109578456043833288992854347327201263970439783242389854042190174606658923869798403083057546419408878781528209527451916763450922425596507238491155322372343514897074186549307504004076540396506079439814181248051662632021108459241001016579060266308051519233656330961161218255279032994333774386769860375619609359430236247002960675808026989151240246141828663039392445305980666168377893722748306929675736918426976341786386899612960162386823843849928501174575511988903952561975233615706583554727670407498117374831177377108773306991103976979621017154088057638701864797468380783124577923106275576801789209092696360891722675455800143871905357762468902379223541225073734543552050822379717578081783958435709906751245406690759762246254233374049916241040759459954607475508113406330490830539816534424730749915130410165493190936394811965127512329585262479726587036091253577398244568521689464060429132457539203826551287297681683516364385850016359378941494516042471655531017539247239862032756372190481351531923771826608722897191648149761634607196288273925056448024769706428323131642297871999562346333562060089461878339200604566936437353739286349795170095061377410280312238603032554890317572263813455071701305938014060625803430549513460906708061682667192498224969726794508726134564195971081029120722125318103707986616434256943010806427263657169210444435462016941188931626294180690881525553942754390009029545934336020265027949380446472469901031877169852302515875729177259505643266291112766979418512712700353009555983960324864105246093733771729533108866335527581218179239431647383337754174384571112910087109595335382241766776692271717786195290091834156885503700798776522856658184164892858813135779263462297410015555760512184130832401219808962209969306108034740926853141718425728974856894248165952672334125999191653684808117433824553631535053237655366957590757397831708921263897001557278892823097106094611300413233226744907106580496343405420480004021548360297853676581542416809136007952470986934486567846808151086953652132496859888192033522859151330766178208936192235755960901874714301086899404017739257623283667564217367522919395785110884667768940175800860242302634186679295977338379931925334622453892759195910632975200684355617746040864037874384620913564750183683128845683584075479594668454363070436596806720812787706081979120290864110574053465744353542630118123567405165796384955910223138815149244883420269909986730951810170128174324084198639274828287607271575988579569218047865758266859714352581029358793944706963088604732624317474544001272512645729005087181364132164577247281297764837482285261389717389283286034530246629587992817300527315157975081186737513555840600848814614129731235531989563034145655914882522641805047264425292951222441613735626429395334226884636504559839543597237706208501351475466173044783590059126547276660033206622947360452340920464011996538878783048113207303879791152722541542461286036018902021227127462720003353104990564564700465652977207869488706282556147314740725779906622919321207786006266361337836029848938710458270482808794340321478649043699295454791905878729588748488905099863692245593816938122226661739482652569303039833777509718222055951527106958987623759129175407658428956953501468104157090777296044296880596571907183476037660917702732730826062318865830259731857378670320915945066174562733329645277716752635438225109132296121360922327828853251577796809727766132095949265642381715329065153516866893031988715518950070318868714366624207156387572422821025028008925266550485244554224618123250906784513246754921066519917431422797801194338295538876090816811116106124378959576400142382462581547854583550622999757552719197343606508598058295472518563891591775038931781994717908764752612405209071345864898187985573663893595159418168263070837634465183204701792591401748794085011974928810080619261014430671246829876468066206729707901641227818838149002287909142058501427275031774866241876470400490835025058909685385467388981136456434681974407501064007925875256968892909838874812493804159008106882176985207461319614267920183972623101374613938331553149400600339465346705018312727547145244150044814772027486025482207795422763602658355567308613444008990798011642830369823420696265065079365886668571357602654507907640252854556468379873337152348660928735333129659736431988894512940482437177091924778207485142673769848331735562686114841256656769961516044460018851256349278186432657492883490468915118165453301569429771989789751572482069329582039781848787170834216798053237011111552429890527810539067242491813668827089496359061496838795070282819120599422353520259753629695519887011868196808721013710523584008244081564534573745184763225915215795705398901113994774426167245554377247901956075223534194953696767557636726736549014285682331258392438343011057052428702195744702644108638259922018643534565855526589794715831066932180639146714957449753230731950658514723581298301490856064389941737108443216521034787046451400911553052638581796462565317881103296757296656914196534756976721360508634399499590613698139320150948664998760914530873974773308540014260526211512431797253323806840740990830392534034402430058409775429918481659026626171795856021015436989762655531853209977613586424783150219456682968766197080895766048393867793812897579434815459024399897926010799658900153382755535798508742645706905068916746580170264257113064095902563111917643944516227422665520199085777382259959188341005732010037040246617368343717890530089277570942785492790157410662458347777021770224852111936161447623482807771005833952952137446013516305890586228649871372673404088734720852768195384332793574268358328726384111425484868170467844027178175224265661134910970059300735946424586599777992142287609242149222475130439216664343776130112290087224528655772248084166136155445303451124558507409500787800441524276862774261606004854150517648771049954200435055512912087532654295437388015843023289596391307316103526973681775738714063088864405754300680323944635050171831247718888025796290185409177285649173876649215733039033304268361511286075402100360466521577546185362188083324211184433444418176327524528750833580740613793634899083328589910002945510514571084989106331561931205846634221129012983451105914213732912367852572819875947807112978102136556079542391194159460673423117181662542865877154736908564742584630529635174699026692267409571213090778480891828423867804076703446847669888712461500320221991212633251124560360383437038635932383234810308851071408053404963245876412516347142732762860619064772357248122879495411680727931474836727418165643007974250335177260630072915107210028692777845463115871367045757245084539713159134029573547430185711683059944262591766366400667605963679310540139943336798809451136904453299347476426523127414767639225435005373119819839975400350530373660717245292511750661550646878076293805546960539925921227443777399404413021760096493541576070341788835836672537426425817682155372907900060368510107443171217058824380917222776105760713725945981193277251157548010156532339291747929559382034565356780937005365955408448203631406663273483327050614127763330742168296992057774607813804794735571246139753721410397961523748649569330366984946889858458444309540062267084542556207546110202222791501528552481357678892912890037084698233227950967373562625698881284709809416226638130560976575464712015000187509879407572863887888311833288389252841751981221250965378498655767115195007982162382331609600911194181357780472781394162426390776967441739138134430077954171046312805701506725934826756984551393080138520342240133891578444568399338022456034526320794279063044074700232383783165832639264928574924293007279504236530217509940708187774473142192446699260101922661284526698729836735886510578519858544447184904092074970195336323090394132630637525103842036378939806481996015918583662274448235655613733466024521737253170380585527580247987593096575653727393059565659587803382232242716196238025221602578725431425879143222176174228459818220595535984965272474875444092107546515154659435898049280315608289405417835120848913530379929808385832729224378672884919529421003203594761434661520133481986989595225694042448324920141165554588067445373301252834791504211132366521343785870715322955512748879430765542974824431781287198010474697351660665190562393425007603698447747195382361282031257003446050550981205199398295909040773324137127215129183023935425349188730064162253222576539421625959893152994716795695621918887995995893955870343708438446981929958766154813339554790228203629946807585987154504965104169220026201282886956094079578754209448171904696686452465915678214277438881781188564393697272095705731986079700184024777289055090587557838647035657928579239977112519023291924118577176960110797470257941183363296262155804219675693495472869230891946810498012224333695296880884747706752104432659000072815913191100843886430481264329963150265690851547945260355165866772681037901820462988258064619551246640806558627263403018392224276166709544091344700330937644096299797414759441440115279331199630604589542380197177899889018347957658116844828957813184778106933992598683651400316959162205056680356643881095412025034782642629454172189037375773185123006223211665490713016147554313702028998286295297108446738117863498757291216458311842935315154960177739357080629984984126094949610430523894951733974837718183145459665789184335810813567896434038010886080315420993724407817598134208782377141074135215232443176235343378086033681596639094302855053040739853660322085932686108600079236142751259235436128788160472484070364503751710167617528567982558509572109420950320198080854543391811332507741689998261409671414018094830202185852715743823955173172382144005861146818107119488255862595099386279490436224359206936660663306629734648107719758590920425280255206425433389992866036748190572453555839397585946949595525944311785353003209336887994924956586212091641041449366219317717691441014141664297100399217163472893397668158035467603918289785641363378588129643762940701506739790259870057009011589759314804067159047997911715209877745072806740923660483959115893233702087624008290988583097242053765690128772919476455985682776093124867272735148994117270352267740867541745032840339739154450582956440962248466934069549494025750253822727730783019648098760121936362683787117892138608173262125933129738834786501785824173664751491630786636800688389578456918309188052661335303678148218767202932721816355061935430409037443077169072251228755982435905131553621161172845370293284798154416335489820643368880812977880023280711699902247128708476719313318345603558580661726411554707321413780289346983947904321998238400828402007143186775987104029520356466860891014072712305510962677251111229110147385842941940631465384412279496834342767990219271526960944642629974759340061709662835137522010744796805334951301845163646392243653815033165771161885993830674063694920928934723540984142171477263013611178384489393434103604989889581632181082021570866772017235531150618490992986072207081190963243182153587602518619649315493586916471661815405010119921274424018285463794305354086516376804779893316841716789556177643183685871727565780010148104476488178892600129867270379123260816017563781312252367166632180429683392216092024377299525206055239481211534536938285149824364061495133297792181476387063797642787805922870146740416053630355212689429550632897679655166280319633646410612485921191234351125760096776510934442241829420387463126247534085584580260089476704972895289118025239817550793611941370694490785316845362839389061224975211613636680234500300845834603498757831736736470667955098614676760752192635263587154934535295511707611689294837473129082831652327795614278945221735751348466619424537658600642225325736304555360522470979393154362662152685326222904571922635040901997991642491229878424414389725837435411619777483556637120288361490522867718948325450847980135358915551147632026539655782231560608003191705652941420759850845931314775416494609902247156775640534482384172576457938144624903685270085505883503726773366257624856325041823903582569577296071874596868381237031812307896921330610050900810822736476632375243109601362513848000059651856298110455245204041691028071336131992204540428713841689963885571697044111446169965279446297483926025323159262997777669491037143823733931588947608829274095846327749307128789048675527723077274893618816180812466678394063569937133580134145008323738316511689082965123241413962888186303323834729591039242174366836055635219245902820026365349348506914520599641257283477712808833761420493313831165854395089985996533824622547661495205104735343176684358898010108006095224552320177389174551899257594096030113953624109489830630190554955988417452543856373096419884496993782904536544686879755662807439745068662416653674895409764958412863273637499237230209750169912866784262304764329386211898698871819884143085275487855741915713132378200854976544880084831879992799045984919223971784749358372549609705703810489519735042688964909381956355434108112490948922977966575186034966789996063774218336872657447053376610199973545016657883581920924419751463635928477293505495267419872436315724109003358930472742548647682587034639476521654714564213273653767286628184423725479131501515233177476015575534568335015121702134701463742162737022960374066126774123637957766697692250932525125545597987514943543694863627485709900610193959917071254602242536867475476821493342479777111639205649376130996427275974626167070604801766967500892448818399552617237895296845192550269864286182338948313824417377134461702390328787010691364949088557889001450087584953353612264110982926769169254643630470137362431316872685401703599119933100720925431506796258079890758565314933626198610704097686979194078711973606964496832857263084298616676157367142102571806010285973980903754363716055960740908528157747627726641351307638668623309052257147276690269926578522149056323502501026259803786355686765721761033969534619208500107060527192766448318121383450519584398421443490063636986613329799585541498619618602137535448070561371416032601474425025103932720169442155760700103678446800083047586673409216938525475276834541715959285418932724452930510195342834370659878364590567188846474911494957678182365352194405028864221818096300965764370786744199519101119148502678560176628524790538123331827607245596340201100385139233459532959441738813109943799965834116207700193767924135048284892025779243760360242837839287342832277851246336582609395471130035139867630653824700333783428025369727086374630696342074700127486409608178496535496001914349925063638626804659546275876596665489799872275362767827077149640758948016571597151037427591476096526883908806733881315278906210143040635957878632637520663361103775500861694036020443533872625993795159219097516038595803925232564615934579458994850683815540492941586415031962809097237773540363002086200533548337701693553130651362689241878243278385669254227332354017724515334371676688937464477205431559075748591406947903422957728759143770036906884618983459612659900801609236120438786991650056794611349323836823168967706328697084519833225535522188728277839194819864010482833456151275937434207604885527312697567890902392669157604756127455022654425602770219366581832845694343130640249832458469416964626839016332091003638944620402291170601141197567001098896906848072862663412472091688132793982409791713132410380694208670807855804130260007105385449194403096392217265882629636141572669034783317018778314676978603911654393017144272069963514637884249901002797245334409616844954733656558102627653070208862447231017459090420431560192407960103263778720655675379426526948242914774604701776916685967241143977638665476600661896316379834218405921455736225141911500842926410656966454562834950601661430915397865393093758475805826057241020059464847982749732525721741205879972702218072540304496166456018343847043916544937600286871407070829144018847593117218142193316256371452641274055448908593036228695399476011876416097861128145859314836330536239982072166149433663940013484301740179796439249401316681401804304297192966849225922374704032350121226650235704926296574574556049547221312069299124250318245893787307103275623695693814468967626413583121414329878702530299466349471231509280792423113479104543410775448474566728691780352430795569285223784261182227632947275153995053605271548238976166857967044027621449598533476834618607227287715126853698227377092317191166000865928126484597415073864650492716444721275482565841588986054081743960755820095483820098167074098522817668251296198730892122304272019046710158673916700169934267401127469056644215690689275247841324080522624859435446132867840571585189305703855514478576085459230688185680410596063979241927710248636597698975660958322263754050813709989043706522248675278940711011583275857825967277158087384192667890980316916578606757041685659901263786212650459987497305049386102695288457305745913494930932469107677990003824657335158333362865740544786771999595507713810287350807955234175389443091044861478645247920120089584510484479248972083405775414153685730241047511897898429997766670429682190394322286804848251018668803802971163835163370732652614281708672091246466362312927275205035460061434847358826778580436480638096206286668890137914968438944859137338486636898226982231921666898178849402869145432476574536961660280840203552759131818521745597596950888166440400192842660009208613632529422266391602164007290340310268266821440778265858198544030830510035995424974629373902655245207495176136358546386003272026999819769919863864312471484488460720864784360160153279504244759240373940320137014788693377583800518443180014250754539147087564442993338066192100320755275764271845143129036345717886300941530330570528778474315609759721786822403085083553738398317030908380977102499852591952259464174643958338680175402796333539487157632432101556802198596465370997645019516904995158001421590777193686229856261449008014941772134432037835162468705885977454652501998661793878386323629507937220996935162913006800498302142379690814138617368645839156719677900099471691685563455741793184161036125926621120756309732017928436793639502533507620452971467526826385536610251429551295588438138081633534107712198239164348575212208728048871278659769811621217743211954015052425787957489684556591721080709142841476423911214039124720391963106296765754920718041040554170140373293453282323487606405189082654265382602307887168133459638423718189422123171555092136647366213842073362520440671418861032884118172109186903493094785353648773039664519691960141690720711985486696891715155499431728245136453444406648425675024480971334818962701096401606608097368236715004581348342861250807329381082546492346034052081509471356961129778700995440443709385340063692914325432503909545266733014725946961235915257564890987508681526058309461262189521289563797221327012488304003937491890798370164566205344257993557537193957771898411248830380165511521407345296878000561480965757848510046513557446488761781494937119446537567693767066374066696622357668153156267709082093923427380742603439860220051624083112030493963140707329088325439432314070777069949259702870896636474806631215562173746199146371266920485940600745122500331833050426113485960395861832823805760723552190967421643481366538537871337446630091721105487406759270587131652049767756090895518949081146892497946463737940550511558966018881926605106952079262188882012623968871946831541897580481008261310419837131818799718401519420422710816012258291054765732624492928155824900683116696241628366485605905947525276165569857981292449179409125413947234329064652190447092692521921020062092438363814613260867159685990678458324957764889667509089946148583772302010766682516827773679978423431262019482296677709146198283408463232773576311950168448655917846360779254696724619558765758427308406375519667902803896385326476279247198108194053005694633670977181871058715179221561455916766459473134516535059068569499849110698253644764788489418532304793350261673542921899720151406948987648497480512632927963419646750255150280505420381407932625744977953445788045025488831976625053038274366501472350812168035360220701666827732140422412166048012323060990335269302735632267896228943979969340876893066871421830228096829469888092801936982175741820531804061177312804815143019395242094977786668220919572806698228305318565478854313611982785185258497726362238894320298920726080069713806135235600344289322401632728080030476907502608112865793046751590973639535875341836343658208120386134516732230956556155180076614808886250834975630835655088301608777025530829042678845590435316153400614326053288414421990245737472491963562137649398602332311520839916842474758669776444374076548093632044782370583685975081033378264521892620253832169752435494760773266094859331846033343435097868085495587837682957116576602491425658669399616332543215272263376207435164862954372382101753357767034588700885015857847802093456648315960647080922082724041763435107109447699972016368426728895450253111103550731614848740466285018844942229048021282964866551989831052651577014312546626780778535153885025623919608994097723406326556521857930623632851028389653899521360976224286148751527155030313838352289017573954414760571662080616277828954453390300756248206519524327909586293756876838626276272862321023751938916804445464852206014990253881398166204213788497338574138215038624963852256493660691713943049423351506463129350129145990708993346911837600991917011665474271616256149039379622132854471142044561260790400342241533172427409322047096395264274072266248231937192313126909029422398233160851241528803573912548028533269705792331328054215093065480674718472814867873626095163698717580005719330751786203146996508571908382124415566648700788762698968333841497788641519573872902517217599674758854771052427322808972024937491948638080589063114610748621155523018866356208414437104716113816789886747003331137637571887320480306092022524898362534543079812713321488403287969176142389158046403182630792417382702578225259759822135053500382702171880405313407458703331424967651076040766259773295509255400061087929111866533376205176320005827373005141433778153974293234241176701409761202707835942041415007642916868549340616698288132302402208363095522164986193130924692248810263608204883238723638920151795805892673615337914364199859141576881138323860978870821686343397398292081814962853107215756098279061027368574820931171647089976795428788043167335078003932970048976275257731908583052758527846139579494795681032268919773490532957305321244536070761540687678624451354821644701657557397680344347630094505366146474163339359536197960725139055054081295130192314614389271941762499109174067104957894496243175247559543639284780187815386314804898073944108804566904761063870388827632618181579222579515910641250103560822191659222146127754765539434232242480343914614789079422121823857887431445580344275846440895489178748844134495198462756142618290399474564756924249918695300733364008135531709246747138161241219347072518255870313864137320842927230101235074805865241397486902057527713635007344283247840465491717158637542713351137489546629846030552272266586125241866645194630076533895893423226609298154884916328642401515939627151982547657069304877354547975064593907560369424531993289980653161425464024390323653556808422735074529813792943665926396363011586696694889804607478504559880634548432380503292812277891955613093028679257385169035975574107860893696817851090992659085619202969849677818024690676222600527945703160869489639036033569042622415902719428517641769653200181013093247896351171210466349073867910790878002466900350342853081055979448750221995399554564581417551917156744801161397795387762467552894285647536008474300163088210336864806256351858074156543244744867720342510452784198715855591077327350194139941094314161382074330668956768716909264355683332351205130354159450097914677346082886017384718222204713613029611092499407850189894273658097180029805053695498321135262449674574107651341581273112205475391071785217775739883585607684153339259124203567015414186906328345764123901161289380701396176083141247044503947177963959165514301072810074823175693394807887887982522142380083409560257710592792410713475381846466118397722404738884430881242754849828753061255004032295196241192564804303280818416461241961800745651760008199002686768487772739128894312065081599627721677917837923769627858979160008724291443934494470576342962571043043340566402328391921610262341452116448667402368216995699420096536410658147516198650706177852256940117471327123051758732408659243827551559675017326713205728736592026606612460975863179592859247997782328799837797226821025850661102778161571181132851584911423298632328085345694115475779387722310123637357702508108304533931722630637651302730549633629296909157405403465698286254763031470124077294342283700073779982187754839714367240110146684380384238526498439440652068887160836394788418619948943237279175690114344902045818640441909819245595955372978721540249741219982475832464033162054825361372000155952329145473359720852307013116177529686639391686341268204782604891624172971699931612525798142659090516094068070874072377026707440749424500502640031584697956981458571799609120992658499632002848319013951423429990782648037617364738559472426985460287599900097470269526977028754779294121409201618500112215247741023875030695123850507100253323438299950805509761351251840389070644382729525363782660295386336078293415207133507755630388018969504852673093308641467025557503829233192788921898329330808713079387417674078106875802858994164346244447521054822287699506054525823372541883282553410465882721314043007264165052138387028353305258186449653779015112782852811262904960186135221745726628058737769047310659150577013017670608600948534009266159400397274544950634751508320798825177455488776262307684610667021444485749536645477696129759610353417439183793352167055182462778163111478510561293865038647216289140728860321752874341632565756751387741881115190261156497239354404286600564697111706476364824377845880424813735206006447106659568301567787891327420626331907379691754121301291779297851421622594827195680562969789213099097627993837314636843559492071636106135236481953136172697868470005665640520009149358443799498854542817169664645360354497888000723077740410066291391553094564344682367228940647363663490133665348376330574319990974249845760405567039260513883614409884975551991206368035599538252044172527405086914639432891056993213511341253262488719908424631808221185760175040797131350839177845752724099286277386398684679517469964548067736449076359589481702265319183620541580843135476539853170250222634963408883519372395692652073670152067054132134784109421696137944393943033039729340820875144566459206984447280393809082098437397157417968692400487183795030287363962791258165037476320314387378890214580968339922596100160825335850993238145524845387669484430079973341753314640644005577870088932155032087952425988876064617637622487257245174324488072039657361849455574713183395317371306220131181362949133537835744202130002394382925164140333658659329748757153810875492320466416382621794785362174379224783283464707050938916453286779362121764629153683376622065792201560093894468631526541502570242761089873153959487066265532603888672802087929272869618170200501461565829464220299069181001986710142510368448103800575276396367378259617301667648825458610441455614337314667116629569085841885037960147337506435663813540285169547349589227937846858718546962805443887083991277074461806384180607882018121362422125411002835125174842033471217876628134354854094396393469933118960300813119872966026770695551452353349852157414268669379849664467509824321286750202209601476440860079436896486137592285172677212376375804669084008737048814783916333208521725116838504866118705862798295036250580583484805476240997878755687793176348451476521711981334251862808117447482176178147030072796472621175002116325293734990167984150396990297857021835345615029240635349294998256048294610295844032713682026467871446249449863568272059036873051705814383458037981467036948061187075492808835867393352925303355073647091794905654080920129798712179523098737538810928481288671532127375433360871974500449067810635103617701317225768942450391065757006088768058984829402750952688647255928741486112611413752267443997036291259891036430038556299706108830570581689815521945630645850002985016974999704280143521063141046711945699980980653821670787230843220544904856031162659802274943011791230021386380973538742718230545416336593361375157380771439196933720481307744094552715374831240927806670141333420866522923372457911950180723590916330136331476088296745386500410296685074761986933515913612957904645404067460767996691678844241699419576381293587201284463013288976113617989476559545420651839326465102643170294228413442027138105264723248331800710404944947127025623405464895181200215521829243990039286776332971620581238607599740094196359131259426026862701309489317344976179416952726477475716171931663342593801515373348865742048513358662915468966442992983678759885947643741904662307085540092631600566800414622348353175532053649596402010468019613708619399126534180500171178695756951034008961501411524250330611521099237380170055248175093089051231015842067489612652478699793936088061071823294422116383428452222031762438910381567690580379563007135501446685709425295308861383206000750364926107578985878074779832453563840548197896482929590303217605753999913946402435164239222149103631975330301372297641410396488907227566289729094122504477115996225998288916161361851521941623143747251695163057561521461141053110999069915808865528166687309170906528538472185288316417280066179908743754575286449692548795380883032720061180739616584946907261000981760796348673098557046372731239056282211907005474883157678823887662602058482138921627413099235878122147529456002672283326454538512112356592396802563851261040476234837065289399720678200026060076265492337090521594975054343019739426801108751488676324682746459526556411712750432424996296629284213473669925606344211098660375531488198660932836072633982804545752359222749631497622293593490330781457781797201393130594985952287837106025333553830850650074568992352596691377470417408869799259618721607547443225624534620852930430627526553680512601724957683480663221564921343952939666133576394774538223025757961265842188270510491975267507401948610023205764648774490817676020591028356981911806868257377661489286298321356981318704619568916526033635583605303908045281760661507918874729211356575428432191278597940539760432029083993005163094020917919349179772401712125136866153731469174239505696720401326084016958856566118038652190619559783947125565111048654166712234133721049367036169770728634380589262241136458622061066785592385865126049968274276766270513626169931685569251777901103935154917928780911021037353198486311641533641104035140606362723230196901911744576592358241911235599296495971288615532154355522387245152052728054872328257427069931150535841602146577266426660953929159818900286512576822025410508114753729903994643592026906861911336748445968332980202874605539340766092692493324906499344749740519579062785059963094420787368663356148213783831288195580123533625435883050302805769785377547940284757120505345550109555903844549468804351278670725919221916458800864511678979809508432041653748371892661308175162606417850591804742450029312153796629502812557370870369357328461082741979223709765580785232252122701685445757764724482923670083014879717210793218298966117857882802847886556753711555480470615085887088565148806731659639343439972870528204472514046863867280284231234129031733360442196385700328939966413158305838578875938269037098203157064234832688875579617207531173905543775729014085042245986774463366168522091152578167528296461858635185242921670111241787196071649741341882674656729299501792586281851910376418748364427517218976939760370305920474742234836702646870192415440588232889837327145476551774303910837507958367888078803881843398048362501951776492308553754494015477133151129149909124788820799510599582093027845006041987510112438393260996685366669056753888377657579117952838097371638343873654160451448419730270917841790603927924348586754029332459985914358947831961399549315526425550727517072450862103220422312366407412506276604574791043702094804368675929923832396604457894849902434809992491258227168386933809614536264188115743052040983974922230974921944575147481773955499341301087178817567468589796314403354329989059545791555318874597995652793449153189604573607838469180221876944456900513060016230689034945147333061319724692071730038022605239744890952359606112294543808062219786667181784144786811657355534681959500986840396449411158854417634429011937493169688919694599087054058085295405900085874042515119944691643130317907728171826526605189804762989058121696271063225570671393134999556159056221506200439020346857785782966247887667137544165271734777087802751165556750469481101002859661516124766640473466204196059598755721925826200489984486258112107951170218115697053837016090678281746038669934194830389565864285924699441644509516726420867513613726436379022686834170426137777093309711440265068831952155401766913986824119531445186271288508509207829501466294165346730484198604452911791437334089111510659130886632449497627907691771048320125966378841779498037080810032430562867534600077355039447594758702434418894701998745694525811890402343322442141543383021003220085242711769661921853071777772219001882356753448926692820777774231922989612278390047261298001822069729249463329178435914210613849799585050251699074523099132308672233690334888324166891182198391603242710632098344857259105885867077757298648673789828375604142722681548380587398210070497622309354129318390738276773473426174896899174601359018609115270592351197328015779267458075377936985484989987049299226860967236738608445571884862410254525362081654086509180568491273247379745354142739752126051937705461611607990711282037204655972155921759808999728264979830390047708654842663775454200912905546781492505891822237673021641803394570848741328839082531070033197742124313624430427200024212555355354042361207068879001789468711945125839614547147600287029728898591724392551822208326796752839842147625675561091794054232587326356334843428862817812371470185624084446056922154071745391017980769524153540143902475482081310395542832548913998253608173900284233080508457348556269691089052256064205681665387505715791212028374894287975637605290785566484648368739600068537373672826171230248260255113419759374293515541084156253842333285096458939402125083294876504495785724717132275574731586259513592176266401918680231495849868722406211901156354499402338483745783483002015369311850395789564441115571726744789058926509832119955824358346588175721465341431547634315074197999257579458728825451395530619952597311404110958781937554308430912033568290204028557143302171589976156814929627225043433945793711345653200189255416157337050360882381116820564942195584999595225334109984213668025481699964814832925847783917267605211210927301022160735253497130035544415172365032848462215390601669311861921969482192328528799679702638036383100796731830240103513989286704105244469517816859989222311468089123345133484597715941217696457165034663917462950549688715888796897113101235043593783244368614991700244331171486818787362412923880123815636893107327362273465626042356969721971557467258108519737530322497000513373681007285702485423682965763589241373614080976900018793883766823401882164832249622935054069155159954722170159138133432564419349663336997683591894219684259934964591383677462043353647402628240470869184423090999775899546124681682736440048531636614880189629490810340789358147137054845470276084795704921752197117432086528883322825959093625972822197375504468722847879605255921121717812973045542970599789417904887200900815898591592854674083002330709422583141554909498722794779639600792747396318314803569551365732682428338084107169390726261741307383421019977825816763595564909186911113095599912427992621794299653952782020702027364271668161486898949224850211458583956214370668384622712305032274298990544575413573752982391969246929079624117184262531565894367366034590043440572172582949626757344120112151745496013950627331300606831192741668613786379268151194857451681373400372076590176495131961504255497299046878065284557859900269686612388206200173995310566156133997507022748619505178671039051422282710402232182256948526275387592625410932289638830190908694506295687327681785077241889252315381833872951360604153331097481496124473616346863782245320270206997237376217769139953905405893668045846670831299329412900374620121465043421991812622603760126019254837963135909851260455488954776752356242242672186569469234707909159818363489654426332922700299385704001569715741579357441413320686998798780486418939460442525708533000009209253170655364086775651846376002742909778688426404589533140474106351178927343912747194271926968258387072084142912899018606367665098226114054813832005222628953749710734206615799152635332256664340828161340753744942902658664359908232196212706811648896120873236729572589963668566644506959167183394430061002852867169931680613621397750106060701464383268141761368390241609933293960161103932200165465379613968195478455550909862442577329574254384786442302564691422742731738772259855204727562922906682064990352233617779480593699529601924991183664999834364213759216871244300395817182300719057969253979924763409900762709747867250815078935395573738624669609243527802208051584235264270435935932157777332881558919637633589245179162632957031521561079220928825572915462177787548356856461177327970423514674019967233386630823788146854924546591108750009466488050553035678545426435468655698866082494746365938309152837550094462694536981976991458831773876706572568064663242500088750364481063124391403210985937347287129400928334886232686299194601101613468634660606994496206760940578071154282573495658291590597046209701121243904408697994710367188718596715490998449413199281406135981353390166251942858813066188253312919193314118187427538680370488197005089442247914450052258313596738427777041050248210368602593089499034424775948940993108021283894930025805479471140650540674321466420800334149240002949954222431972961869821877852785437902583183909632269824654002149325492742083610797054516938077450984118070429054485781386997816517182725175983051093371773886960876017861773311592018572060134418621509425787327629465481899804809007738661993076181679267879163385528922672060039930139873541569336623937231619130147657726964051647328938295759715572527384417196937004740892144890659704907599497412349432723434482170047125927441318212534840793564438135102485573785617463759596244037341411516226322227688773690759055277003740847665494095744658272677603523052030132525390323056741681673410845723694976974789392676488374847640131064581813262003721979549630167871750994995351706374766231437619415590306824289889734315735608342009238485496102215959694936496061013408120119614283580712030271796222666645441749718930722831171037322503026065286241000259654736473059582874343887271856305600604559927101022259438275717133122864117656406607774309846867474136834714554048847333872461182550054498415457829367558283575305911371780073027638343599234363549220877235217477121039694549974912781068726054105626496417300531681100017235258238669842598640276856830162466584096461042012381876866025343007284903856024195501693571197640382628721812319838039308429469726766866298291705165271844604064006031488877108312761044881041090524331227296397678968247742407624269945275738080794910715511706893800952827144283123568079251489267081361709377081630381823385239336247598385379781133311964067321836201016517701283961877632137403654330304759702026887887578498506639808870644975255094228095233009657441963644587845288518982159550424846888840330616109144474354272160587300757828727599648346205957655883180492909109789879919829696049393925410013397292850838353192795343589859089243661417660832086103237499503370978345779932317152846841027718815875614006612393929139256062370985588295851997274577606000119129939007095618606545839497223413060123233273993151376099771181955011650207636148536552788501757855242130308438237770993320260231569925038314290185318298109173486403382884837704138248894549069855207210245703121470389433199868444513587187076701144782947593162245646921563661372317746144299332736458727790684133404163360167477282095535539611448727401949113422273667672370385262152207951009534042135347977864430348355465936148467196901804445032076018533706769724595174326204257334687552104875364787085945635868345209348230465659375674048934635287287292709001847668004201334058866136582018236412689056242577921178440093798279957012407384456762171935840602099103616042423186171895716450788154853494002849248389248658459313110610488953274293268056276403531054207579560457285433586671831508057240516464749385377873755767104876635625803965853888950290686129103601399096137715475817341779865146452793951435025712414470332481943436647689981919477283402035605438988347403607754940222105947523341219331243573052333459605079501140018754244965045897373007089180658225659385450343322715593109191943334083264451318406615483674328718827366988346863622256866555401633065241157546087003800875093572185768656910473662519646633551041521066889101081903612928367660003936174896830940096884053006530464356782717213031507416408557699127505924844153863713042942568590537372473441089626332508484637595251643308243674453698581453431479529958845853259595633190636679633586967610269463253827042086513497651349957700247446544569128782366322638896086391846255276306721563564983251890985160757950684788255045056583100424316659704170657346794143384030433705648489397037797152903398036758498761545990747357795983356357699463568338489223441081012316445809274436846107404330461366943493035785301342416181466987291312553083743049740380005337604510607953066689014751193165130742621908759662831505782875862437762847457059781683415944241611861186814451853684516092857400052289724143945066673162109528579800280199173703934990935175866955422798244863658163684485146219998756284976156467770818397041715423693489363521574282922763118557303538640295866772339972609235160688796958695669263122433099815559388262663529812274781443426219844131670563011998112193303139381052606565197613981051481701407986013024671881924966577045254128841865332847491184776157628696123864604816236995649141609221068857299839481308865281153181426157167817255290152797784196405428451055201145288153233170273085156662342736943243448610556843765109895702183690274229440950518552230792940054586751266554349301600569351872716278275820256444518889526448831865692196977029720960545819881298099996588852607376810059380331338750844729256177678096475884011230422283378661837165656505786704928956762376975711346269266450401085908537795023157163769182638077578050965468820283027709844034967830908860901418277629854216762247192605162528628483414666758014364574559469198249740499932512060348278973257331925412660028757144451176691004172620485717909159502847720021956962243050105580258950746996323460419894208413703519803921769278560088718377114978869111218413381010908868035099672590337915996452468939911106744250173556357683967813734270499208682577216842670464947535995831125317307848771180783870401330052787352412406265936802422921917219169905496931605716844462833601747677180688339576027071869273303817176379923679367865585273507893099610164530228275776867999260123901689001255718621023773659747718646925590029893846698530461016560466162986202229626986067527577457982933901171824414808953102794405580162909673160358970610908258595422946493613144727706868292417465535168817100686809285494566939415037715452016811141663771434172379412653349039273388146712962443242547308711609330710271373212921364209366297885649503727537671678788549454868380830737797708610660818098051217433013110362951253641435115246765964344617810914816821238892761999110514427430107430408813413291645894247747059074595942745650867140106703815066709540383187212453537698483296630622387925117234979788976483661069282336328983399468774113231899904371858166505248344419950167625400889386779909917339162085558673089895355260381203966447444715163685085425877066901025534217948117370797718646059029048660063400246350028153215230142895972548389837827196937997608723137545832413086150627031497955122416634501193313728816783308504812799537211502344613917807232864160890928894650655540119779677939650902653174934503179017013930903351485798054734128592353536459063540342689205135056142868109773289005365307082747104670751198328671213010083014542554305426139280485799607907798428483546357452279175696179552594040434678721364072361537532941458462080683368174150580411063991984221142927489020147495865939579482311293252737056118058142756087185172423570970993576438364804440059483256795212098933137032568915505784324119695313120107526833974695347788705312256432412510455916061324506507915156437659837285382376973729661523279161001881838576619196570042849417265060124533753851220410735202434339127955470412496199634837928440423149786903489776543915516180367576216943379528307130457085583216794810256772297662362179171603012385337603487759845144212689240369145977659653800926960972701930605995695335043456865694608244242995295824093668561953760989685308515762531486914558656223967323656810655252632498354968766389234362894182353622947330831730314763414097713600222099626066657398856283527406172733853147397547480645561832956822654739633662134850969987149047273317118413424704160900141279271699594775586387458223248266841365497495995768154045072477724381638871010900244759814280342015879507581521047129027864573312236225516017929100235819318688640528999702878487057943246215709834705827199905983725286503698949741671985943826831866878212766655223420229235654276574740439774936766088298861623520658090634205275436244558772666666467552827318143375599532094222653576375797668915739638056818640193682249696186134550182640256419720461774423321611095804565249590394609959700968062911283922101104181656781013072987766123435049975556059503775986037010909255934667950512234444743298975327831338066876107701273094492320262085853600570001336261975915748147779426240571043836570606751228135262083123401543143699554162369968512385107531347650008032379260367477752764569254555811591119628425096227132947598544152719430555307749562434786399986495513205251909071634217916724926676238476856638377629801881220888018462829578603145494131982169015981213407241032962548014008160281451239482853104852307057314875765000830284415708967069454102434201067483987913143824564392921762569492691846466818930713373251842292066595521416880359404921512085006569860209417544703836387819691804031318351009811461444196120214456615519110791463483504548605364989896549747625144198723385479226072471385696623979217321921115070001927189486778027383433371184520827731940750502906505642699331823921136192206448925666969619987824437486383802818402186782389932201310616053161872435857089805668454881356898347306445096063402686604610438757580735132299635445707294760184262692927295710792283167923864581938262027362275936670213872200115160730294981237361608593485938125258330903178378364903617173701966074829890886931294200288695564563731987662531854982129536495474991627173530390155244297776922563427584557212460398785125495198005894788377450246635970563140404527877646184629568487589221328613697263147730724395762198595965706896082721572887163416745189033812437643715401063861102397539915903838021803956712122063284574478401080097109459031083658038662758556914760372565720882269825225159452548146492152892220568918781234800190310695781416372190026597185362068669240788852657831169789116942473608093960530866325717807147854166357737175470826842879335752858792814318868163613367596920944290193753550358830115251016360441963026215524921776153286428024636019372873058865662310260462663117982124622504596298643255739214296870448378206577567752819226323097917631109804994372511240385154437895165903585450990298983738404492955327233896535881842399348229015544611160064988844403599954503986309104175075232110037205638039391895902672353475322562066812086300990343067127845621589911348865086658909324942713861704013163554025304431991368247890675372259156655292015572369521621753467787528157943402153458306578602355587368249847370412856265633245284147838124226338126596953398006193518075728296753124114486309285597256291604516852235620281664318160773317554948330345328466011109096014676383726150765149853239540925853677947640905451432595143459493389562570799685237366087435144573757777050489830220786458675795017326729220988181520446004998924827070427559800656504280637377026426656263593978429230928349485907079320856023397944231653542479671191826634874577642566042336815633039611362549970471128561815003554038359155882014825856233887057047816587463751270239164181194909029544589107360351084448167527586060322142472545885897329579683047901162005676089527142419569321850273994602075760817501403610422306658802498708568664155839733317357877003222725319686611232937694940407359253078054845970874950260511988781065093369132225154608645617215958869059535986249080069680924352381675643382308821100140272733583725141550262977423065286350748284028143880291521092871041075664786295173372880432561094384129335315324924450238189372471837150312988317035413542944714530741922461341237269019058043597220204740848871559653476870945124466644652064883579053091899991426054726058200455119160252430444955387165477473118984218074577464708260985120279200729600902782119138864618255914274734452150299032082941502619435295522223483495270337876218762041349325182879402625938040200390231392680146647558882827571778512683837306421481819849769104556223086174156911838826858257053689046384345024894990113393367344488038646539794142402664264879219712551676844705372755103242971001360694200912699640036738143900459784899315862113489284074966030448783968663998322776727959577768803170985162431432478360922221902430850952971807931246241390052382753236260987234556950914754530826367400326408030152430766900283371627956417966470901992704399500100279884435800248304515230579591859276707155861829276267352857166025888695804892337738347074213974679003778379264397862950956494354823006840782902588724342626168125677166415587322995207348613371614310779368824842563932541724972809206018118367804615352490582333903892778865420823540289418022166364700505822950876033200878473841178751107494291493162726148311005282381799742098884528807998180765410846543911993187565420186301495007853704126887733624322237961447695813400857817504628959644667428261356244397172398092599579684415482140692843795040862473362539809187068111935820771768667656606354848043204089252695792171499154012305119319289091023941433498241024623293844175304889270031827884985378716046401683997661761285228401767396556423393726708498412463016977149683866605070785290563414905713313306106733369114430779753527278502503704393495554272189960236010075143092010645643770617761110799819298330938037929355665866652299551937475990706470492186532309400323988886635286463749716469573723236220632777707925640872455431643624477126053350199181438337302606023108753179140246719639115748640017237177081461960084819666086045997372204009474548142937371722621712123673311551139377646615388479477270458649939579345959813286020139096252565893708802936989140430920538014734029762011692944683156761229073660444914941863224694155880746740068911184059822020132113071528615446618274965612091167020826512130077212128470579952408991313625066608319253946018510389496621086164978348426716404635709437427379283822893539533008777774089538827998072132961100231384844039667651661815719628026984162284724191659131075919729602323644387959861967392142314094485006273932027311413394499009635053927521000835530145387822562708551427125334358797825991736667353913049137835382578803292422893164823920274281424567166453439751286868772489601197160163832018736110449055391601767378908836125221013265746948082826520441988689445658174059777617817035797033273168869997847130726837571608285326289183549610112738152419591287045244154043630850346891033757797538095485520961397728213532008824244856571136876873442208406945286733948598248518434295029357275541817392998073512197686014373308562120684455434903194733800736871240668990140638056128871058688577468896865028915234167950582238689944280250148279209478883645475925836189876098282248076374944246707144131885905231774930635395174250432754758099999272648269216096261758758809604311018044889711901717709589804300478299998030195633770971266405909196974712499738000601383177811996398344220521742363803719241336356694083070061752946748747411689152751827222541516296867866799573532585573592686252800890873685200055045397598693938383631204204874454622699379197548638155300388048193445214538244308502576072259321855716413841613233574605518673335189384585122912728701389738486364285050163746819891940335135739607061382208274678268447505628986058681502272084328519006628092857684075416383841277874231646216939418768377790739801833458580165313252180422223648083019379769561438230555687497248817034282615425492212517018911245966712199520250439394101076172243518305373453770042574449795322926355948946478122220637196018566684034550376115552050749947903339896956044653967417396418779813473505908112224530236266103029815578034344643801853679318483680967258757627789761414237049409980354375940387870075544323859587364338091598688284493596774516065162192315755829352228358584551369566137904314601448007931814577942741062120276898636022452985256431871390333977623761324427272151455989141879698661622860084874899845510725720465065484167106188849749729540784311139455404854052648783097728202074977953564879638250081539562517266266085961231283071436119174118053191113467093493567872617518052826153862692280222601542578057680825021149887808245975952618876283499045017547998496115201892046648294176450986068815104713813593921622205709620840076117961354301918676248345118071648472706280180029011881276727808536827482814396364070321183688510055985034114811956334703412528639818361942154683698092444036152723486387243305602458528373955456801512016656929992243311919220846482577379593791136530858216669661647907754422111778055950988373306426714604154871083355316135659168923074908433222756801206176351911241472895087659008923355719485681710752197549258698759123743271847179457554970541779113203743525991503558024294905021918603759910668167351003303536644207445550096489289661798719014378547946475272631576322495421464620972691587265124771916047166286781565142445824136109796853867161442926297004429521290791336432265924834953486388160483266810626941446606096808621216046129152522419257282587711683166506754744964210213628477936551511121580078022728371990076756430440376582894529736419333513313988669066185853304849051104175769262666646645229736926744484945885876081248614302551636645807171112932617220251766330038949451774954887719124449230140223459299937122532356729982017899687883190498641599950866993707626819497878878611804495033997462078016979825514123253541990798187456475986093324021130041065253577627797733748193803125840911122485304910943154228395855566404573734220175371299048962472583613297660949992864941515640043847812044546043987481917736782253035446850468592184754990280607472602182880924142206437068123635048791132685151260039474414947021636379358095929920958293469751401901809238583622350590752909154802865650022292128942397324080521503024390133566020521702373400359763934982364809896661540449847569906044040922033699175406879895650821408642767213099637283336852218084911611584726110720617551291008848420403076116246714488503008884880105096325751114098287724566418255874858514913865165365866338782480680539792424463488459818098493966468927957492465520552091107408859540311666012610838828082432472236688608511099273339565465748403029624731560543543849443455979342109687911392336825950271451190039995004005304018560827126586733904249435335710535838496898769475108031610616894374824196963607827893442186984049488425399346993057391322901669378870942777385097277683960567511663303467301207013184927350097999180816403483789589947396117485915310179028066466615212372768692337173067585831203318287173926600332747342197560748899559087239934783258785643257076147318501736537128271003734915934459698862540383090000672888419974648089888946829745586013697574469186453101764893628352032114081264181070081941823947009779679918422231481956583867405074677716549159621607455384729301725998372726525890471933087218030493203002816191305685899354713572009795150259404363324678450914938914846145913923692031083156006233788703125638706260214019806965566777347506444042531791432623006821328166047096544320863695606867618233349446903559146654431270167736526383625545167669687393280845422791405544151749174685183451444205919654264440562118002797753510248345157441140454875339833617684164071628353882541557705445271065739625344801963638561800967386195374889784284246301287196612329756004437387596870361130047679431118634495864205322299148781685600732710647746221906114114750662753107140816533175158747767156758328350483191212708315236730755882857940600305764041538552544927489878792922756268593292724034649769256391924053867549060727522750000018035214264894261767005934483965011829358088935194363577746709183587515410745528141721031630559775465842385853746263924299460706876492695277121204557688751280001706708178789512085717007285223290262328067095447396481972613504487764173560468641516167027754570134747234190420987398677399343461560251831386983865328029699250091151094603070041736383898023342414916900172225173057700285949342736589966541880928115472105559498105528196505037612097572948266675829372392726134243407956236798479781439252966657331309244233876919609268046656533793229162172792947388760969869108073949738351080412433771516082431327501606312117805001890094088320312178125761716561943843909473386676458062375420334790875729304473703139908563282024218933564458874397411323054356106745930299888115873567359652694577627375719489840723541796154288826826429013591003890625022345830243599649273048786124168972924821183657291563407685831421645929825308812138029839268835427485336778410384623814265520097658545633193237386465527718618744644555592894514346802151634545635081094039892338513525720056889826567773657039457163448850917021876323868772198058601264048388117947088567030590267709018131511657257855055325630024094456278916645735825673169933803760429917185499497553715034396672818425117506890797756740162407541734914051125035460702497544284953340275199002971120697007499779174289309278988632759238351965653633763764314563731453646470386330517469698012357461643675002267655744861474321850590280683213603573172708670813482780243741691093480204858654504855037558247563543893814060682715362027088170641945871645392033096446121916215636185047618946097931165262346120850885210885806876160427006339570601599550238201852580185163708037191150553335760467698275195328921333772078435038772631273294960321733139728499749416942977213705094176320734204543165084099388922129657251227926696992825971886429063129248212156591254105532480792775699450091581059274223627733287197799919596608920636716632088588053071735570399539974838633136969218468797859648880999721191416754541712293340646105612882629292098624224814135999461937922029707018889458261433277975568156516340481119629345708284746666120594917240099722781316255698793048250162781469138873466699122730530070799063172668431507680070229296797118879982011115614204090244104534101595202485741832888994514967395470249784984226095769185278662057602170487088987812269215470760412543776134214730144921124162085310702859602362449427957691600405911637604270914719536781275020702665667097319865105304929110844852885432939577844885948193191956260750660997335225770441179985419345539360296806455257132762955509250625008403803645182365766837181154525868708247095247140482973092603439607873715997470679213424895653068556666758630882453934343363934012778294097839371531132665725070889213154730550572055428953430537069484857595968624377660471949502112009588775315608374720791614222899008084885062312369752295409802556163317057469666460601466320465250731716866165454995532755995452775573805702357730622583476469352037387104333085138680645792904447805337800994537673080024170077063720677750347251254223920085530478331177020310579724033208540385499470669602554214446108163941087737521725370828734578707756993876370309133525764515442071007781693767827266643620121989689970326271209882563382036764687720900944281850310435942208234220032189218823806547576036000524196099108211029684867095102505050440789188071538915655518140852014516376467867721852648437481123203609609725077338758067099593041245118716441116486359087446673102012018902362281834579794554407945782711421166529090453550305890753176602573077225065068834943758896983969406295137966791076562638262091699593429497750651769618340988927545070528811961450086566443515814277396159454419580829934251689981009910925976780973534966695405747780157673616433091637124365354883850128393793738817048934059580456804084201918834728482849452121330420781229312904655501356340887664355666118274892651872592864401452261359245906534814309362207286629805039808708190440888642165487526850584149957345362672352174657062671262844020232086052938658281144250527635621012878747965822190832769836232463730283175360452298626245962256418026634356637986576354317755048085695885929282823021116343962674559506365765168026999563535371777322236252563585972818859989366993409052458496912525373818181732749005274685745533761442813242751828426504692286077084190042049738774557960368644004663272847054084389329026007891529876709605847295617811402803008302929206065157943302477631056200084451195435868197739406452645831231709541645023965348565197008235511241623093144788036547445733397970444626721524417983984884883183159344589198549104418594547648735556388863574704934808935973317579188417657606157976056720070059316145919402141473470614109671953938775806649639626005921934843628949533866773303700636923427898886591668207178307733772668971286323747309087125358959806241166362439062094823411532534022052007246359066664056975693208031929054675859777210043327446893563217321487580727892369393297263025851609710409606502862869577415936810182223097190419168099500210574846978304515768883535969879332076009831106984602385950958954592810701795310600613559927084177466006899047269499141784315680454939096129812715908865203152149854279883264453495159881929889812600176582902481739723770213436176987925184804012950861281729613542582243728870025207891549330945087885750127391224351679263645672328922783519265023271886550950121766638676196692318845284029368348247426798782994909806540175430903153757420974406234202529428253717957881137165577399337365864499478376215014510545195155578433283406716160731371611082529511203462381591091180593383543619584546256502011491010878507362183085000813826127880729046683843640252801867285732642575957411778358617994110696041750134953245657953911678512371244716147354404250999129535108615370090790936581986979139720877422155860667656096666319915363444722171429666821216377801809878704679003782207953782166958634975441472379735468827113380412249663280589800949851395616222034663612699268442492938235931720799647324142340270553756228030637780802769627942382977494873362193465936245676860082099450308456761867803563337968933790428222982222550201280265410290977985371482679538043429834890102603016977592298428472498238509266005870190739486302721566673704078798258167456150357221176279562083140213437063108766322230466086584192833739354564341800367792814604741991544105376541848526518038189706881745011618028396524283250301874268938642451337227989198721536277288809078123548291171931045983570738355880924178353521166105961794519368900203303319322664102203341913012152320372428976771915553054137818590290967131669324612418056070605426299440962038679993236127533936014014685863020771381934987190121898736514015370034966183256181929489041654523021506450143437986801432333441193834281907860207878751506107005731346145873337887353191247818197472176144366393208332186363572513615284483332221600774405700882637619920648479124252150423629262437298339415653016535567857750548812672345750627364297804781380890486526712134577823021789571876927511296261522040239697421480811922206006849918829683183143667158414483950584929396646358839605580560624680471639621451583603674705303486998914064231688058259894802800111278361138113666518843013305285909373252226173319945120162067773385892443266337513739967961943597490256986961037339949946930904194669488787419242884164357852841376278425995542626435600775218967923721071864467842857616676362128721253742669190338526096251998290704233480949905171788395431043394879697818444077957339933415623622396481990357418285146612799525953025983538733007637595595075424323939427558607158602685916361451652488081091206739531669643588063301378694982214409761238475958751138483134397506730841461151897559421098043156458552698106603016641003778159346931019488536723666718194358226781711656176808781172000216096425864632181112891526266884487261039491361280186057108562029536404203079818988562296028325001381522256367696352782216938983447070997593208593711764821331991207514895308232831184637632414116493931748353100415535530594514080126970114145836839223427472248659273494382826210933821806495335084984237748325470178757668851376906905610706480090002244773904647717355036932652324920435233251649579452403231050449302910260439317674418030770057403731882640461594458064903471002894693760759743200636912275074513090506794021767208270583248005886647261120617069829566852089251552619036226348196479849335470844532722391327140880033950933256517038516943638734624257466549308119124385304502221092379080623926957522193920764564551376635242080820035640164225323871678269042751506315356714897122528358292740473854026828584559512548327761404739267745068296859968749278509137541702272100303147065524444271868453340992791090923444981235298152949836893623628364872768277356943797327688024355496583283662715860898390723121857664495065757420745129339385079503483511636543212252249211370556179882495573862085913260305092316903289286964510812465280699432054310609484802600777484281006103011840084797995790590880704357247418065193609082838383041468007187210214318597054030320389730817950994285056374667725620174236648367613926712178034070611911582427628068630815577589002347022057079911079017733150015210334667582493285363734090098217493051888210749188243557790446576989496117506887315405618707559245440009521441897892515499274734845270310939720747895261755635821647064896005188327697465091032338782356378071063003907353635783861273313803607307482281930256145179644216757277506489211828209096467125929929641540816829251783937269614359617203895710388347031263300081369064534870426334406544465996269586422136440403689652145797240462376882196153746040010956677377753841107739973893923447425455808128104052586924395193451976997363178377258210390072827238984158565928086220683486191016134532634881491205053738001023602588362448942758043239908206238644378279865697386622381314699399401373589974538172756213805590307567103054249579591115507047742658201908214221223328496328840859734691259594756155162622680671315244050989208606218852712644132815412752568473951172194221296877175653151946867467563434456855284453087877383602706606705015741463172944096718549462057168130653102356177601757911062114391092426538927864752232818852945951994556883329703676036485237939410117563967762044644257668676877586720704890654996315994448130280320363706183230036472422246088594051505994211065449023333668833694091400921595608630401029529101221765674118940103485414940800658862812003766492200229482855487291829934815503646815839867520734326127463552022007861885653585394599682290373538826544896659156449331804418641141364327208475976445514600536244846207983126760953702180692369338955361358242438211758722020056332669224154492895549176743218125834920258375180153649584737867189560614043307513328836679654053619422879670431215023952751981989220125786208006000511021220509366406256641854092988543719630813578836465065705622373028464749769539467652384598545235448767323522805132234712352711313105593327001961149370552061792650922658032137177224642970862348197944039696183890090055869639757139542510307789576620309968796765277953271995508431556309676192011055850851697305092576990246315591157451332460698731613275733984726859931636240906948407659377408856512900391043310844720273949779095361431309571696999297418615326295441541530278026396930564019447518540959189585617672559849393466388672852991067711520284356929600273302784374501661376095345337664442760064400833324041995211583814681098483843130891385217537412909180532136209590444936715883997901820513836397434404774142362035653490388059145042519558417194353660737966489381202042569623298059238339923307830256925024314428090290635773286818228089027909009446480224688614190254221841660871111019373253290727579290208353409973101270184992796440888244135356087659551610340216095519852119331902838353025931709429201450915898755603070873791571665021695193807331019303305346659489646750555686740189068469563249782055788975444408791991719293466292635332874733943791806732356476251276794832785772786038454315373141228819166308212319085284462570021505804222884035515205491853872812337458657923254615521630100445876805451523803628223732147120318102610700335829218054631571350730220326096342946022874762750674013276793827468762965417708307047328465616583793472670898638324227077847622840350526086076703421625831966426605917154453932067396078244704290733335422742546522676110038188445095639592094608027130909236880962169666949005209555958683990036242385347246657275351714688019176650240756668549570451686319189339008140176020533487259762550938235213695428116079208135060182746117697477743794917597002549826244337456011731264077912989250864345063460878168962090009002374101202662512465977667050908273124476020622850761114724931100309236259918830126773037063113384686769624859530310345703229316827112548507441351536392030061920008929603342258706198798512513730389641820673842014807676657730811117655674980087855484066732424804737328802292682466613338846052188521633325319764989989623742070150335372159077499659096141530093777869180317395785542144473421638826642558062961952555161507931770922927398645201776109137013640741194359407734407500097539145138848008015834558818863053671530074318841294415044926444511419735722390647651259921139461933410534265063725687434510288469248475139436715196737206018845849163723748517936219797109245855473338867347797325001428160088029545290456783881561743238862383505675947418337804800254893066079797337211771407207072029889253610516324209059117889136421609854329627038170840581643338215645034313046385425011948420518377602939993649414462699951359307918854814112003542265242571197530928037937927632044995509554514724939949528295188977142996504897869285127282111533292838764237302014163237124454845057222076585633993229774927491765248243271890439266428356506996235668290856718960624021925619972385739285084092325203329170926843139146890614286940750013567789829097513603030191791785173530433919981759387594620695592224748406492044720283438010641196404564960737314792123298611270505669848303423626141676573616582231193927997742717728677897066579294098194753272334018501008227109423414250315702192666347954746166707282780553074578149912467419041238306702428858822823310346076786570190719110747883401044819048688875083182534248576688497135736915901055143346254900965365537521242603470993059004932955669070485610950668491853203862176293008165346051150358960640844473562388938612060257625571437882066090679803323887820530321816039201993216409344309352593475931941734587425047085872101613417649724442424409736968349860520339470205163647409299008787870316450798432061427736319904218902013602266138508423001156530930360784528588406219086988677164659832148972415515416623639068770228822826155520225255514763498369461670557393865089083687199857493589162397699726017248116664387032142954990648184336379691072176461470296899942267546777532383986747791036838219228307082811686022117558754610037156025023332827858299052080604836297433861280167270029729439913371506074403180203643066900801279961607030735998008529973043337725247219886516672629300175111962512357049397345101751488519167640207321248227352037331673159434661763767295268539554830311619893719952842779812086735766676222317295195124087994996507343763623025851233473051961777176258149732565727321786839981399221160817777323092421735095133451276729168473197371422791272049933209744105205902383831044552377403958542196300826092172004410498666063789166171116102583518388564752867703790720147420691211805289717104573185691989200830901320250680722399126086228848822917315970095728326970959749986456111898685368350368956802206121492015600053299537930582780532496889104579228665363563453804536243184055911817859351739365677725171129190533946928222309765226884691935968232017447415209482011022007325608878813195235843019288606047253491942566757184871457418224270100144182572732404759835096316918896967674867954329303847861056964320529324821716690544887721982326997403002123191429158930306163093136089322554808185637698084496172464363243741325829915461448484204454270139965393654438676189672522016478478623900402545917532040612687969062039073784981875503813755863664296047525926875786127508062683393642176626505000109278213913895823558025041152613441224093469268213048330822437906306295461614120689772080570092741615623548411381092885019164266165132457350386943277534776517184111768609188381471207902353538960080361056680061525132123068067200182468304149649837160832741024423113791421325856378449976129108550616298612754342004381529177060491542105647494564654822556625410112846446674858029930076034583635464827238806814540854981097805397783886637637581879069636097906771470872885927389796690454488191620655898612209731608221280008462631788419412062111495602991587945742195707324487422422697538689611025662080125305889446495363100659211227730103867047136700949888588103353529564130489960065321745989520049573894727115949720488865326390474949614444239170951525045612081479300214624520335722148479791197808680891879219979313450824174266853117731444608228771341055939141846265325384295010608252236553454544325033944267796177815723473091625219435694818800514408766350935229291358884181922171749607588972229971476756221204621822951798181999645158548852760948863231114291407586879132302755503560308039604859753290712923205545899450284275196947235353005672860741613229960612163595931379369776012601021067350414864141221653339211558003577316423039770197500228429463364335676278734513981287203692821879058345081728367240720806167320572155533247187676641002440423268417778249980627765969138275099248634585569065259457426075877623298942073529828009651991708390516388375776071568832456452921575421229612458544896821202148511587498065214595117681833304141969363189692875255108217038578581931778151733695741164286565519030232018192012711778149521359992335938884787974936023060583853932698203468216761357349071589484569832334029078721344775369128332598815251269096864620525496077199631463185425921002657854087304036761747931668098643331679991188764590753681957909227552355332407407084892336867347437353901697109037852470958836744362542315673771682219867136801027647070806955900030717311987498609984062587675818770209847626395099289658410070256553667008173424728164927588034889365319799714214116925952365925532236656189794693877285232862881223960452578156933136252105460646176528309601773185747546111395972268400572662529124999538011348355767738388511617649111412235175198246847052540719627921964323197592655759165728149751573429000116013732741927337194282468037240162715812553855623140189486927104673012429388460039411607640847421064611972846881508766637035185333728245426028246380008604753315040955648961355222064567756289780617309096588852539255796463788498668150809172520352327742250398188354782643961810574459975612740434296072621754328511222626702052231842171964528040263312494606225440425332245428978995239450353445170719493811224502699898534236528708020407024973263275064946159149140330616908391723556995061738772579825475863915877960422321033429860220807323173748157459179693905425175490060432186252170945967475700175261455063247960919883360972993445159348469358634714765095343359998181372412636593233230222789588148048551172665635899671674325278054111777690884773584723344770221076540306956698142479790099220549698398944898273592281997497367330889016879626178185582935008139673754312405211008656705350945378582004860277807639313011283377565625837327816790178209023489305910081895016184500248567738943963974534473718630767359496681317974852535031327739422850537296396394216681293231122023479941866331450528425043930953533087095894460815934666308011417328646882038226455431468835491572832150821912011706794882737012360697250771849851038830533228470176440838017393441683391055938873232660725534659127313446119711311548661214959645515018182912219027917711663839696115604181427170259888084633103345386704341106944948126427529011075351374677347856559803915886731769764682009359809984954622847845918483624476465945575038498840615620320216114061220543941948598288021617912035709404220393364090779805866002390790535277261162222473184316586559979559111344369964268808800917724354487283289642355157661468037338740706279370183119258252070528237509335670310268480271550184107733275112763753664870492304816771413172888272196769252204197251196815967038860344031627991817851255437762720651674074182565523671892603339244072522799850938755172348270155159935766376743043277325736487646663763563762524108063483321965824316651387382019642985980535393024221514164261486856358801098608858255055768126367449699481775073726060629804033592409374702948916991471002669363916329768211856421431754697790340210935240258666645070058435556392525755169480841351537470741128689536094434103024296404295856125428906796947215229227888901547425137086709272350851901456817747763837268284792336657632016666324894816403724515301116372355491901926691812933374603063010123673019810866371639014109021682772688384016997202233000874709747012433564577935774403115912953288051495390705108366736424240121833260104517125686903104051745412346825270092895151668258018256072786567814781869357311038439504628450332937072930616298047863506971939266214039311598425921060557023256285314343099337604178206330611306261438051716705538116992613561197630000647459329903152576714094169542465005560359985684633931941576250640108751727881119021424148319745948506998290440573906694092427353164997942819465968660310332028904186277011150501363173511517072714002073536153752156236750196034335634557238690263792223866094820245564547793587347057237088095610630732050532275312729848861795487410678267922322727252328721502820644637298207482944608067628359434811646852252959108469822129714496909642345258936416421274863617614695550626691591987293827407268480574859289667987640266204912806818644935809348561820558330123474374851752393380821157091323226318801941661210018143255672271020341605637169678670877846897123572213990684881029904099819264424685067777029919522369728879079336487038928036852729272176607235674276715539707770243237194493755845881817307385433358124951436213441550196601558101478437649574038960423430279498157770250335518501842035923775457671368212860423191932239843194813371504921499885785455915535504541598355677723625761595105597347401118143103893181995267567459106449591511135326002841532697621996912698496931592600114867062862480165533011068858717031178158001315825089190576588725685757804965672156577378456311539169872857151025449382508953497274333332103905472266910647795544417630431973732469392721214323124015919121559775320716266441788526033527128698549561124640963023859373005081054578707038814758457818306506064589552751800640677046219327004583223693507130303086897916455820612419254394266477846353133018876849971858218285845706249849126265007342178743015824809947802341937784918720815686239779732268904682341603161378171858434901439007571717762018597795154330597944458159065847497106446364056664331595021904747198303812725461348516505346807903905965878943990523070631766353011460562755071223751078199602785904822620192791794092561699441546492523549874366831504212501476975441996367385531792343520480073302955322395695425926317630056026030583757030749955054575346958175536721056117615708273500444063029388818750214883298869386322588779016741182362724342611417730847328087804739205618999928272264773705658560778482225358302825595867602042334723496468834092624087505821821133416516568694431587604992706445690060244653527970977211234801134146331243354681400686922901393537560511788600782855450884820246922473155024459627649483799589110321449719186613715766695052938523307272974193212286816639315941919162642913479416887920331662105263581558504313666336660877661342702495889738557720932267615282786073600971454843796318233848779393374836217879021433829177234767792612723652381326076277970027173680701010126897526859171810131530452130200728812516347864958024164009081703325991034908275817621711290401665011346986987577616886071470072234916087559306495974042195426724221499964798247372176043910845831359075745638615188136183676127037477733939587181687965399459358327051425249693093660112988170095040578101776976460319566280458367911732850436315151946044745411902536541339141121793896296417033771436496783240629547587282035771539951559087210037801564006413663326743772199378364620903206812738520639138004808888222255733311968914876425084607005262744736297319936878832081552829882158553257399335813093215446160814064140774426339680568692331467029509565129680801662690290213131646669835477033493895548229861840821323186848774019928071248001143624808744180514148132454927469132314085600682001761941195810157702579510976065711176968242474623459920545321858346222061578297952875348208020673801686465669875006194487468800993042926959500269237576575670646871978437032897185364174772187487956345465757950645701302537887253459270431748508031971440019324014554256304997219390504890379273937814351518690002066276208852491364141541110605765079699746275633751563659404910275785457944978485875338676135702769711226782671973894991336832715813615435115231084591324018007325005168184034059083326169338830616816944433512931504650730169086359787711657219328849854708272851014939294862343017692832659410141012137303110595929005215416390992353170667078965514909833009219369295214362575553049206044155217341269858554044862602778313016976551992386973094557582030115027047119622955587855157919421876418730039891472241792662480130809001311103770170110455684951057209559828467129117548632555007770727328449049108505426793102041758541944814492340888082988813808656981177305185874257495111586877666480332250100766190218706947377131339332785386485900472553806828888616870957687012745851633733695875786002823191903167877312614528662952793851315101594847058661251978547366903668214774219854034826592972133503589713039824978120252860165783668872677312966731221983811087840029623096010625676915812695724801638521803082502402007302671838243301745370245587252801266106559517997080448340188358200034809482557859768183676756538720129259171840435607492276348173100227577822134430837406602529106677707488154743529940232634745216549574933456772538824779993320240265679251696523522528069445108873879038179792430714428489854017054484624095456025320177596877032750620630363462712179961143853665736927858690895462332546047841299105600951404889166669386625011348928394638570727604625494135528877165399042637065550694961023755315609445195571130928142190717901759815724147348855821535557158338230724439290239191655694066904342105423298462663508837970057677272060266189863051507199960693971563839385585733856030619713876702262854301336509921150277660500408566232899341985915329228658622096818784387539002519489479349878718126227346676694301300264587991858414303642461784349506396698358681228651651238123794135052061172355913027518556682615509005208103188253356394112454011159533615673813602184970498884390382480293400844702509337585662628981459790231448132174571373616641170474471240073528751023835627629748415389861170284174554422392374096245993107677168797756527443761403133927389499437788492490171853405876820675706143130552173297117682207003040750947949244279869073402325739661854347278289334233400543269361757521731865383179995737797217928882399017868602651134299590871778687195624971746520793621337783493258468267143773133452074113006414870656428194039805869198654881177526469092444278228662317402589496679561968818077609715120346092086141941525126060305699788465124658380552354266899305493818746484868544900899668420091374885570087794593886455507044806059959473746694363268415237999191594119731330352392280675171924424371351156566645462842912812557717003482293146232578165608370113524476165947641499931383872606613821446216418415195051037892580946096195675080463862260280183366845907412241596635271408778661852076003096486534755988334962011131973833005921207581695268302575247261592076173618917987310260106020844830508224077693632281496462715799209004436255497951493270968014392665911349218395397222994494328532438287306834373130046672546563363951633818579485826026172874576514944675019571141695397064317685729347716334065538817229319158155368192755756540266025310680484099387884541244744378937173521233386004320493363948538279264211212647250728204002941525047855712954897440461704787696428845270283600539788477910574372235082567149716149967551301818956262110242030527106381073859253607994688041978638204142371179199170692360033872815302303908477627961491705768440218959610151451903363727519766886794137899767359302675197580875012371990934875878446640649084984898968015040411033109437522455339642018898706323490109096810826435281415909146171240897712653145852709683978156643369447912646393923119452579613707065548528786852831420258752765234642579701319745788040792966427772976395000740121603106855391327131885638492448997786468596061405339477401447240169239178643486368090467001758670478126952167881288581940738368720934352860543703371404550719286337675212029885159439754886252616316450710269306987688775376710842971046629657227200896665328101407124588047196921977152222762890305026750715925794585461868641791615557495262344001642394115909542897358007218926358152898824358549666040588567239768594673447209236457301322884037095257097354790103735851029198285625651403208672099103211219184902439541452394952209621081099317231632554015292495859554829320728334242754164473786342179235278843340160847488301044164514074438897373783017685160938832721890144960484820690144526158151772866791744985832123653720536113075228775224349655907239147295276512522134724313280864099085627248002090346580412848921115674253508752992449141284620854981559798061375357094070931364051385199255191903617189922882407554591286623894357904505788763922648741831679094044702652481450122236618692643497762049451620456416014706713019369492779357166764192230972827361741125775875235143098997910836021905016889094598712255600715522860636869538009771195040406425896634792694410150484607633740775466245837391624850247042473815941523470012782665196302690661702745222631123612447074335677394741034720623690706360970287849127328718516286925561082578394538744137559360110185205633198455131861702625796905761544733464580147755121785438771487879326356117271552294176516963717378229334934814913180918107751416392420014523474674237271728004020515175751438214852886896630415194868400507917242008017829020920252011940557632463064148912269720104190660883539423837955803363874794544935789085005859255191508991620629705580459165288116244549240690589557436523756288099751041615057474539634835113457397044559195718010666388978861778938299315393244251362564146370716269362624447278780326607356430318556912535502875150881955563717219240473311057587698779622823976502458817350536557389794102824540332735858707598771323544507588335272248855795190051433489364578044002645141208540822427207296197971844525641913338602805128388282358274393838235706688727538958715709438695821298094892617546241017005896169522283322036910306830776238603766744769607639468070234814687142472631964791329552008190851622954060728017439963549953202184590930841063296145809678684716575057093757071352243466051643880829701321334691011224334274110863208773772991259572261205129236530371703055272759463997734466243765141378915488129105407321823282765502310373143794660075171654237942673337604740199449242752352862784619889318571876120299133634834602262942574389437300353113786856683711708814827113156913676850052436863635874851300643883992263013376748622891309657020171205817430143355706883392975351638967675387940223458983370112986170856018995677015121823293071326620194923119584081993053841344206856825866164914321941057501440436984765259105298774703213978051129289319547600771720593581781792279640704014920498697065676422342817252896309172455019374933929819950160952947067312286551033079703153157415388027167966970158944228928091908461803859423176024497812813019938902883389006145530874374152534519622370991891835532568582878435659169515688575447617264218044536891722080455473572180519199009624625364724000213576585060600964973292523326902606327552318636955181341979484309108323812403645180524991943567662604514373889907166623043242515199857660010055414204211740048242252851541223231729587189083363178702814348867418406177815203264630186143906533225338174613436777392963529925762298918884667989601768442189624380792318404294512574195085678521405088943818059494834732499533469940672244414831172122056778331662326012036907098396913251812074060835930394872904033689696039570144685930278029525872347000584616779746417122254927188923885797212685082899391368918359850815213365079648239073113147460069268204567524302897281075352714672949575896397465364377965546093962144896276216912428866577588549495575717863975242360581688684167733744816131102293098804738191660756365761752430685981857699152167186451843976603439771420442587447553971505295986827545404941936236834663448594220431958381423127726664273168904243751426836921659491727270104632640217304799301799095995956825998913833349341687295535293881008267142509554129546056261224920353419250567665928457310265247008669673873361274684982741087084283099617061258925971812968387531728478491246884047119103713209179225518169521692252033803530518821598281893157978975269703320518226930022355206762593537412285320402218056067525773650921061736424058019517105513146514761445119030782527911353498738127999100942761050240876497700898749677388655218601677878225261188391409290896617421189145645458892228853827840415056228872951984227310588780715059943712300725689546256243412764355243035304299245404623473224892294638348165095359627918768776224699045038287343835083723049544882307344885875028149252254711230469269243277280139807957269014866837273853517804556085498358156027504380960221358115314035076378109680252964807889764769267601665147925244938430868850633722803691323993570131964369858466943452970737261970808088302754227074993547657277148677547227260080809676262364440694624293517934553727690837884455004154806358795153529098016220056656400571118351510621978888267517817606533397585780714925507959262408419514203728048291894487724198601705711043785900422057535590464800131635868791601605541955463670433452327356970045951894907128618883598103435115205148969013315642311715021386763153559216034926443817786426950440798756971501596959635149485086570019481041785214828414665069982589151557267085828818716912178256334266181022627188309882348267365046948206237795259568390102804919222163738373071570396523536575499931555528466327441488728965377002961235913668702903027890187538075253076316456873225459004783652262637467497829100424301295915389351656696019912652288194004230823679129277180015432468436727606406117562518022412441989184987834763699586776795024982991341447295409016201934092840775759365733716880223673898716555658955370032898807103863895936118406927975923863879124240977173751887343214463414784488679162933082589753807855212491624201748621029297476532243888741057614574023307273536271058471723211984588153860153505464798596952871124998340032328898201267917066787970676975606825851676367870394266789978795029040671591061599477224958778686267845473772798440475142700340549057872852353397866690688167521618649819359118852562978107588040678674026801954053880943950111320071452555390001679744548639363378777920712062914939820052412013509993198334162706689156464700582062981876183354981462647773160122167037706052515016562339942418041327916248600195321452803228068726428881469157698689061405147624681919826061063590570414411213674816732607387593704693104277031751203653088155450027909358529209358664338685425552040263046230746515414675886493292747988849005740704948208814714398795043517163309227018482963347053003584637491031519346219498496584014787631324174188081584982766113846683318370084498834195134472658873003838256697027945650067118475011975590307794088741045377139144521011484651489034968814675510281233574206704297385311881630829598954187971922217791516433853016883353891233425950377325503269800043600327378185768193215796764796427911958206736775637316865061150366062144104803765098051210402832990914904288499991927127982492045499636115361645114991368837867288028003567283001529673001006581035136038748488515410587344050792287086408622043249206164647296189277022955149857842676461799182880342189565261117120792082861942834777262813945195069400210110857080763080703380542689864262739859768958031721281399741561884402369719311728769635617370606722831563096864674140174283141063261232567383448563300813778538350341352430539178579458124658569330730401004054953428461185505637815669886807151464966106194549264321166364028430245140689673965388423879362666723027611256417815371886050471993320751019622914993084444168277992205841140159949604728787900773319011333983139550589899508222831978777917991609938872716757077474188774310722074857802489662477217799562439556043892654345503458924269760961968515963445119161004189814990685482118616727623353004435862447657739885494717398656021906682391122496128104897918108139167130266080646559601928115882486214871152672582100142259061077776498391576593889501125219531116922715746892718293555763591808474596462742231632404126148275285174939551149799384839280108498931210660744129355906412930794447728440184801317688776354093731225030895242480359324828059893465195971427595888360146590385552411403166134259163310368931735098805107812477405703033105606505992157864552958583644436809087753050022994460863143182779867345317896346480842635600364840793818652452372986478324873647635468841686599467639705475037420239713284810552674268267786460747828540465760727384951415834071166732123875116250903009693451013548993720124089074332856962407283174274491960002544279178072277081120199132109920367038524283522418131291794947786265684153661020841657308177353193896883957084209469965320934357881124533982701287760694388994809794336210727763657591082378742026505166639268592395172261324284135343579966051500143655664375849033354807069557367288962816745835408979097680687683013457109217037234176820102544995246510949973904885895688697900979063253218163256629993948349481996276350701583304358169874557698005271219542823507985087667306243362957039249135124660024110146136026495369154681815821766345157225040155170343257258152472141073630951171088330840591359395907141220094427003921660848361028961094263080893793041272094507012660662445189933459342217150359023962570587939755943680837644603042159945430122990212813948797447399128693402930899399997705239856372130796492558544825070771330803471539046694622719832281854490115635137128550263058608502853425089870216326704692580351212910195571305641320076425295665208348715714207791912275819047257972610696650471210090179925647642944282205181579525237735583620276918505930379359318166973662301464029023823499095361436617510887805823855410037867499397744818101948545467435662808737470170977423296681237217064514466560955798867431126034422192667473696226236700111758917546509408398474933677896704332294557328062477067688696454042925314778198109436045690086473660418342027811090542877792113418490220351602541755908527390230425875810693082831578532956237716582103396571399804379816834067054543252039136780730986178078831402942593809345176831025293632692523423297463319082151377252376143269255553988074893820245667065173413990951441612121010110910689661247245327132958224685910926802273486843865344507140517890636119027046730106782293084647132234936585806079487926207417971998809260334127048606235456568879201755479784729763307048002253289219739557866166044157136006410163644667372878078889734836545698246519431570764710535403176212568159492513377416874629209727187257844977829328234010782684310057584775226367427432336148082911717311336603407575233269909511504723567163234199935460103617649889326921350789169142008687474200669352874839634141092510728807751029470539255900562266770762194019960081911682523296731171313939761024947367461214077494338942423188048475659246197023314988795923049517577854395821878401705980391144208754678307692587773466236241486851478377670818868250491224176560059674121022195364496785700081750673173170601193478335788326374723236863519055097420707729995730276115665437870042931307663313625254051831140656601935120424507707914435032116580909628902695810735950142924828540477860656330227970512511786470953080999087965788371166295690002132204845286769327101512017787879219340414376800440094423453602023562021656137456466053836349679465062519208751406110302537873190415325460504570863890873609741615870773961070559999005188594297849232825479612279653032929051435927302780649554343413293074501661027900825265868796102989777885134503311984996802513785990917757234449493834866002146546962683493817433778164875339534169985713395494537783634551148531309510290731940819024138229858070518583985380506333004353489682645227799910094709106115822807617507720805297953196372344431314089676932618003162027585543053215356478761212708231900497000574597744220429146971038274126054461342130164856870687033410680397892246847102315251094242080602003010849024913493812472837266491529540689844485955489148886087824332220625683829438828145401310797316709368296303214310337155063602067215007847514899090566050726026840809459618058842830991236687930738825920446388369006638400775273661112441025450940721171863092451706446770493161459253874509384331239007425250861857144808814022103987868911502666656723459380210982708872565530601566583732437476583473475602300739779467998725864376447416955826817940135049843623903744842481295592835536239404212839682246264076140841974088317086355664853482497071841649368574015963615086704930582694285593760458749841543486470512967343667962619065989550302237833558710248905725669431408164244633457740444430072741892654200305266864738486803473576407583135369517374692598250894746898345467490637351561447229028339112475072150354223841540587379146774866836021623987411208447323164026165054422718256508991002031595252507646629724700509547602576109443999082018335173490473054529897968728562045190802370956902166873363794658225686931977752040593433984122586267251893919910173851870306519158996319788704446497705331625674388948291854881319825205557148076416887127607940744415022227763694077768922498518049675992411836163144845834912327507046662498424564831650977440357762326637869022553170079131942938003883521095548087568059737012638057850823048193599192905375809405680677799247077724618870637679401097008205983434811296169806041915185292114965176019851772273685611588665908635402556945748936370492855980748353700059692581166230173463539390557988108428033005771702487925028484629123016279426719431272743049778579166826041756560492886815025530595932855181625790712802550093539968403702640041460161949214003688752810397937899111207660242149390312599687641878961959114034825263195976630185884662110734425412662785115265026221835352903379132885931374897661198975380256039012592814459118282245279002999384105800651286172388039982122648740528415798807813246285294612267786515805632788518310240809253144640582372394955334688899754244952634588290753015303988258332018961672008013783168929978832053636042428891804395955633862306119506981947783750320104890805890067528749870446575441529878377851815898596201672190961882859059531884436250886176548502356686000745556271458370744671012313759082349568182831360688613259745665339321656020111652579799577048943080799189823495405013155315609186311220120243161792183208520663188027594338250841219119833304287166547618450992095618400796756070562493719249760504704804781808370926106863246063331633215003313333251128367429629220150749153812723754194007059788204417213057226687338226196148398610941213924954882961969652831499435329441916273219247193812579208601677730812592786897313310826986285534499043248672140671658801485266295263247146365624230400191539484657655534370890632378028294733643666876508770404765575100594479332620768343060900961546961140623999324627995780788375571596711830238643386927051427583830385688286343717064164886510462886120283548584615743804247466124544130761195362989831276258180018493256821563093735273427370130507220313516517430830653765048859098458185101566032687166099633718638450147799414803818344919500774450896638192990027958959710558584003504776807273107390281333033502401930053178792971614703079271841354866140323558488554091304274275775287277226397902381011481074619886110007001689529337269015360108681135702218921630469550719323854003450473095776067944511540431717373200335826949171637687386650350221868411620443867688557131246834936444142534006482077904877714157322071878672108284790050492742860643562644537498358725636078173034141344857803536895224703236662480274992867611849597883046623217530276511341979153474420185357118342608495286363575877766834521116154378752828811606151044932204341359663848942389742715357930119017972049689739077015402357171933301044374983330945410510502736066737490774681121039824191029767746766383133902432127518788525997531802553455410917758343320593482958914790770834868461715952713134504698906779735744634776077000388176305859580205418061696798695741476673395335096951567574953094016413291184368105465461388272085827598421121625355563865429889854067680636111140834447861120118324186994224068624847278217311745226319907682021300439618949230148810300164469855728448324502130059315826822216482024998212822963500078067458147773892259044698892602759901180734119814527303327203465767300011264726571007053550863287086931565169250270067826599549596646529006145173941920369049904374816111915356832920531756078567477333944573967072738199866708144327886995957456654692454716463416660784174211905748645880315728566623325802927351003320492872532734745297889118412269646034886653556357294984202900325305180477209715064442954806193640666768847291232872987901811489770672624951024327988658808593335134078125673982890590292484482296498119318498783991535573794718897205204401669929453275828230293758620133913136536026830079838505559265786844687382481048532679848536304044522642882711331340042817634111048457068680237556175553968538950700172523506551045134952684491414752656292080205132869512307500954631735274426316425405142918317441140362804208915490305817234063057818378431965728330638852255814862282651077915681541932059914981035996503680259316428307590986602264831972123299981233398276316228154089603753634615738467470948508130334250531972239216296053093600992468506922877021489333983747130853012481428996074635901822741183396981237827321997644758228900582208933855154004448344794098742676417359942632694220118672175889893283006748803606907246028092375176150668897759717038674071719768678816478832546712171793158358237980668496933282222102833822690825016123831364173686137504415799533446621840374171408459927842148342397887077147051117082479989246819117052901747599310202496789344773575868457440999758168760508682481379781179538126846311934720978887975886061992613613653936478500769278923736250804435895004674681475016162864511969296202418699667319897462962027206819276224912060549823190065199106006801763623348127680739288105428542149547655378463589381551165161505959538738430230155018503485699773321162171509431472176286657567422932809428548710812373291886423730600448042753045525468753034495912466663800831453244201497700529240829104081749135708742539263479541725264311475717400381623130248055112263655267781262020289823578239095522438620134360562437762721783550782779197511583209815692791454744829586988931678651223546070054008686402932638853637334522208320611047366805101640178349755809210971655914460835203760903807749302761389827858368217021222511617833121239865362415360708409214113198972904346846952473281501981670568992948650073977220278696902836259943849535559629668828378864446358119633086125823668987638506221814673731044186388743571415646428964103095868103287646210440522720821745288439775489825100064766038835760149265573337462506754994074853253768227128405707522657268789536126286429355184395066173989399695765888062550296280488694122224735580579262925641175861744147300447070789742361426125065373433858739304764745904253058939009020744391104094022229314748248246843732099146540982833325759437708980399221140707837979449136426450215196232755738623739321393844169547159617210631533651972748316502666713147067096979026682035578540349049649286445774601211260705472596465176822035101482800965054580996743233752551180853153321591846872081760390624061740461674692087111283477811475452564539505847922047616007273298669432892788702578508184854295737763610225057593616717634661476739429667800003590564485337503974006429533637817857985284445290307154104541624766596423065308318679980595453248475741363684686984164153452779824112731017004500385419219111102596238972901026452706890698853445084207882532423407119003656807685849466057081482516366762426019314560834691335282750091169047079714512246204933424976548033764338624180485572649415680969629266274857664303936526952718478921501703733180747422779663885587515557432312988498801874718123208300974521082084152481766175905575758835731005782258647342464753027901010472773391849859720016503565463657744793713464495180467768482418029712350321887600486635435351141410601396718550528793440266644128965173563915611950953696421521777679050039987141279445715400343387993563832546631678022501254439705987174306421057511118837802855386059729543544360787783416856344541289035935754421934059867721436161238981543633053974354482805435131096386848811520822262564038537207722124420552538367494119954697165701268082321267956893105117995756923428740535943315958417591557805597762643541550368263851511422023765885984767332496696159121632304071039075938014592718222145355841289252872983817376482901833928925508687368788761434679336586960993736111894926890857201254912849000966140788351405245945622681527870562434647841578597624606577112238474924121049403918442024870311357561015093580659193364510957194668070582649530129753049246916223501377238641118872085745775911756761833577456199634610143163098334852957406352898619490580680403543128757649508385760412080121952032877480000456199479540023046880788959874446705657460472442816024977024076549349194769261005927346900067345933336185294577018221307036880901895863233954067934476486059251142101754938138002951366669789353078400644482490073231751527729949083077321526903474458019178713035881788507793181757474738188361194231043955487473621045675693241580563314581376698895432369336488071820330698056282111790939139118825492773354844125070125315939079965945037378775701262607069431524715662528530382505870947870780997573180913639590421826335467203146777462077540370552769032495906579802250937635671919155911656119905016461865670844624903046715981005399360056072431677718098292529864049246900876597464973633550914504782355009743758755076383522185557249496100868437843153818692802320559370138627156146513330908608352389186519878000803005130208913614977375449719183854047437626703814952964690313058813494439054774601923058436806107869258242705686124836654855889409181644058043918701832505133664512562058333317631227591726602676969346600281738297907730554598639795210334769567305096749769872681145064160532576969473678851114050643173059148785368363701732915550819315703116697732411691931265185334410090652983579030674847269491003542016698758624899922211846076080369365027303420684943391211888702159241326867820169495501715380240982040792217680934440196885987554855101974038749581974537786783043449359228917350372515537570174180956326867511880198608771414292064471163224777966524441451045653867580646338946133677383817466451273465575365653473744106309526961263598036340212002938339956024859443505322232625816258268502550887995588556666931728212820743417394864399240681784836389391653311273145611452502262525013377232189771132572383684759395059261046856409081412145106481671752004457390218636580893705032350353690021435951115695559886678613821038883236399082873707082863985741396195893892183948303255008171586032225566268976754404353948588213265365190570033827424822498235859376658867404624106022171604633081881351805518812241197479070656940636138642176266172141242664258922974513145307530344875295579953588912455690363382905069003267852966904342586938513182318928810849383422663628889839426287598859690845499385224569009999557550650941024148557039987318445369045160094336370051885850160735863039799252575468907994724422851048038542803723523334704073856753596029200101152716019250027107370008574147388933139260582757243327983391309270486561274971873647725092463487368184219606124558511877256331987838839978362111261171426037263172026813775495866219764238106506095039023820239774143751674446559532231666135627879296690169507669353228212051718828466113349912107128607734101481439215875678163692922731360145673549972396961033036862318332879597454348549440631522516079211877971405564414142618138407725043733336182567456581871752072061275084360874430793645402562023595417343069272756670552881689396550827094961015615492810798316562063017747421293029707419516259206345585517769378255950347311406128041955766522489323910637931788778841458491376235436477721994125310081199382732098820356310433995284036080144125471887824050656387132429210900334857370151158138636240189310434810108643366400520975942606301471261208040128944242135856222036261674148324540564094261103255766118013706744773768321685436122533835714411473148104015128449589712011845232701985986840532370137474353610208288422863684774531292823299414737662343613133341892351015939648521537341451758155872977216655301133509472221335765945922741494892546959589203175286652336879214217021384515762707671393824604905662665915028338808066455867673872887729317717000002344351485788807895801380471044764767314095331258353895405430314671454552616521895517300066832733018911819179691771914669788756335494608286912275760046792222477887885402682378148406061745958687502523783797368203336940749941491981952569176762100641484132020109437471225649858287508350707278806755362366515520735312153764650356625643831249450668881972400475896925626616562998936729437792403517343094387947275176050735443091404466333921201299386736215599082979560541254171888536446599252202223019101757458363936146896544727589709847936072098177636964034931533403377626169100842968843481898818936301984877419944914103203250156817824354623908398940970494472480102124307450304982780790140660886913726893746414999283151479822956271912050434852251160066449421420004167343819466482677911787491390092819046400700211375159022468974046927193685540638199826245383321559322466088091114873771646816689384809229527190029121659088787157453021274529495505210826218143288367807219156346509122625974194728333705417314354152476991376597323807254647140057074906421293404542816391323792420863241426131619547167557263159968428622996886903915546344564303951240275143463622032981706789192452090250299402075000268897145420144972437108019415660996056347087692282303712587340179225847604465422607045687066218827372191755030994762169983135921868692109445962177819952784717770471904429400008949348419127515005324447204963374729348287886896657552930336916431676606940987451214434790758708563095772458178189457011618351864153435232269540040100414333169263461791249938866173691220114866148468203360968836997340437892939782287182828454147396412614911841919771571287396922125716028620710687699929239051285913035901137879174923466761475659730047853045745503876177165538124525831047967256928367036151522662399926749065984520337026392965991404629704863510557180744501951197012871867911292692224824483619947596233378820911752144079554224087327354716735702838835124458042225863524817865051758885955182663984750463382737203534400377360082272552135902476837041629433775455696697236726059979110718053423085691303269164900897163154904735702389805241645485388436416179106805922395641843154612179623974953438502453546468343481387053620776091078214006591558290605350045390872083783214744683619097761384858633519721485836483950110355057610954219851393547805848742357474960072926209522135988454686570485225374865287944753009402122037161005397570643721993845518565085515655400924610098424282261105269928680653526331163514126034090895891565566585345382779722701628381229819126375211326992289013193036311146358708046408972346792453054989771577089344795350202236669359420941279920065983579113177458865204400776165894828058915179467537835803513156014591622344236772983602323562608309168391532493237902888089595093908086548268699798172103503570363275167169829720826030349346023072987360021117386726983557360197012949064397640740126502205241306131722405581385897977213858360795615212997289350604946163728459561509855620954203712169027808089821417318211956323263616878467894064034444469454866215850392522400480415738360760816626834496450537221647526625663197885374687310507742534597799636417693244839899083664738165184113386219441539637360770198559017057259048971769865532897532789855024846121199916971560960985933438240476084787551739733944389632324737206746399701281916689625146161940756234225345179966274429472083034519581736111976100441082309937447286762537714159336250337744570434593549187368624829178036310297878557221981891759104135842575502213509500007199654795461848628136497145821485669343655668922277112953208712226846735383553663543785137609148868851140468991105437742764237857876459302961273575613223404299777824374809357202125916511163266382907300241132479538816950796936567381270213873013034973103277562379508753296572667418574270252890278453678465447165391140923628009202197419186878658924864217007706441492352820408952540147548744936763768434012682643947949322949297942014009041758662519196596594380859078308751123675687906214728811294821737471939782116138579308706925870896805095048182864167251665204400479271062112905866052056239012989716906372322476546621407666620114385197189868095350316463950534949983956435746448073701582580830763349738909421178024487909246506568114928374838823424923394046425364397625438501057803928484836013707211127430176515543724106053009735412801154960063654683106275781460952309725470743735160051971145398672748145851131378627278425785103235934819453240457521830792807347509556394042626773536361488573123306012644476145478593988683559679231254006134647658652112642485874269165219174454651723424533639997336561875357154205446372926802138437848747561263817900437234899312741402956672948094325097937308566699906284946444300233170843233677965237679685743069827430349939475640152100106083401874807809369866858611595560013122499315565799754439402523756105623632843891379628280947952642039766572851855796524402505084341897521634334503474011538274214891587890221586077487019885615774512356519647391409270573243346964530353721659791799179096869659795174411192232880797025130331130780708277599295410996138810368714512895202755844693353881544177996604493933080963609363625960465008132262797331284806343336437509526262600807618713225430276617105865911217063588309216930506035138382652928415915429999959717507666712311640515965045808527251839487510827196944799512782497691288544978564742779128928659463593848214853658174898523243362521169205611305752754194187518487599749960740822988847206628148142814588650075658877142311262129376376960341565021032440620412618252158955699372810340124653565625518198666876087512056097616741863688290361413085137136629467835073486835656122080123894643079190271974115948529268669020515548542653512711980451904951386866286761148588432248772146449618507573585218769299405211833844716285276296865107419349348650001468419536346781728030191672961815955444078047889030486537061504383543108662846949169021155123641665982497334562549565395079437135814924745840252512744247253662329181558936365435906739607110557175327201127555115769221094163395594573917260471134976299419794042630500525487277610186499597714096687859761810173300177961158843300139831174594319914151501551769176715576398510765827669217391427460639596034715579766424777608705245825228967364649633120870782550419515050056801285919120588805228815899519990710397118056465193655199244268679668831106006502394460643946953682805199547778092030844932690887938602457604836966705985535314755911960760941712268072006984029173568192878116510230981931785694973858281714644083230428208779922784435363149595664772672500485372414702897257189490717257794203274667962413645991563296851854774527918453829862200418075228177130920376468111454270098116886845536972403135966095465717885719044357483339889152352763624759800819384209959732538706687010001413746700530443240538461127189134279833102284020781057184909994242556184863557899544167899359739538585676373111735569963507873656875074989052962878169315237995456788804443482711601378873709661388478189532547822942161051696647279866164915979632864169212167150913644743986431820653139752881339959143979680896862046113687382448159184398952381076791627784421978078010235074167537419608582844236097126909176712717735551834289236313153973122647381142432276917147724513202897046542145546948577318319664471620254265485377747814377245770103537990890515016871536660749503877597136187073762199266993511332058216022329737554737402165063102542975710966993181227935922312004646166209678210651613974341504921596852820709772503038554716879330577856107412885672910681859638028960496130013791123633134621144794150026350995858557079527384400692402903254196756151730871714595708575137573023880771049859826326396986229981460446600369986927811287822724344885006409382016403542120446436931096658037929258499223193670755640877633031034877119313511688085636343383447085888807218751543984984040093809454462759113618155626765184780636132767377012777468338846374416247828685060174611427129423026504453580409345874321424273981111917267971045142030322713527926663915709604275183348738985462627104975557296760036358824571427435218597693963193469242859353420472438861072485760714047955526875453659369151120560686219226703952315029769523599644048294337021786017994968406876231638979472683010699501810288882001458481846248798188475171930400456453778291104893569451382580689559614647517197667636908540582333928170811424616615970145716734360148385461027990705879653288830502592635657411235061518682968963594424269368531704216749325084734639410326997000449469002967552404877301110232686039875193475329695790882648993356502137505187658001529648026548172643273609832563574314809770493910973571660654160584607844129063960292848135255762519713607256860852269720611075713706463668428510717169159712343862118931564979014343227192212258405615476599199990406225900552420880217648868968681650816917512393472954111377850171908768550324462408825418947516873745297350993753878340821645753987122981886682721985087964542327389780859215031538572344897213613194765404480508659197288261790461516751285737218462522050888381132579977218420330887398319210373720277561584763757454758883316379173942534763545474997675994310704027896336219032604995801444089729093142556197685716325049883060185710076574571381816672530837688585864505445616923840921700680556608813293444059826598258974652196409886624143731265523690280570556169427879385179039230818837573260601830074651974479544254804479200639050734675434593494443801086683189547461980456822354412374787737106528024156805040635339274394089429522639143584416900710678439404382716142334208037594228159559443357365380135115877901480686024285747819635816911339758023618078528334554524591935207318167995623753360980151261265279125493255499589992265183772227697738675437988140364185983269300427945403412278344187434821828664053856062411784334773050079082322959525553247161099012767988228403507407163310567310139128458496856663899659478973619282842341869214129200138831041618082537937896512230877846904325459722042003186303293015665560079553945774856706067320164970997526837687773500745937702056841831203285821950742965799164304382597151296441678575845895795950625620966240546243755310626289160918083949638323620838009851653717919132567977258567347530645981408292293968679435644429303407718852218945611442020375710668557232086315615281159502580562016164257636945711655236219224255897729793890849554783279706008227610170616354422021758155254505063998057865579463385054976193856418718801740448341209639685040127252290884095074653804169052865081837887845528378443191166845994682316816573068608811753755945667867817576774645726416103380368669559449140126159980159599880036303336525775650043178458954271940583477173627585730161681891902496354477961896974963167899328074669402019243083381812216368957986704239397746777912476573570807195973832328104346107257368652955082528687404809692263873329657448502405321947872530385775046771436123109688156014730221715001737662192624976208015604588844492738189921093758759063022988344348136138942489678139402094347445630738966968070181364461464545340344007055916601359873317643476478950627306298411078842094710670280168382715893253658568448615631251078803042080224744194334581336400167186120429178782004934105818025990950750906178760345134350928195692390069209105981253584279259252717512181122270390738906082635405718081556503682542130970130759927398601528957493452840443794277681491443172680824394990052231922234995560863751767552642173229464963655455763742302656091688778002091857588150523275836620058336671992392387902200520480709417335921551136788440294323251047569144130744182984796740196009886769624281529571501632042574501649227855064068692459768963991653018875148261504149530933229858953407391664564836394474268909804602911741572259163054191036251636938882045828797401803349208317057209344904021645158813239107561602982804371786362181554665771321611901501249936310101081637587617507676509309200221248098339652931732900778466953265181108023629550163437296269964661416252556020953673627113021136095592543739962484885285046180692873195298081517221874357883244105978137050130152591525928608378146844600070118468304654384072677596902934781240582779473725679102262313608886290314098870775109589569470437062893117647388672872132404534696375818691408364249321064528621034327069130357003070070206189120768665187635760982621440129912619240599219283538720284554288724782406460644957632369477828673944735040101164609132615276110453862495616988260369478938146611586798236877344283082389447921566383244368490993215970668513777546018426400174471231862226194891411134593921395379011602919114135230580832077715331218493199250312438116043091854739006324001900402241427249316361743469523510700394305829140084410519426920604112572998486249360930402105445767155370666847351211485309006844325135408264220069912052182699818078501862266797363603341264452096654317214336587958578137762900012053565856898845085338681336025099319239967649752262847381890469552692681160249463293956365349352010358018610515238698678990856553035861884079934857999824234566211928039311069698582566589328335974135940895119745356870424733995683106419768502770806592254549553945109511161312428431598595122523304881837704007549507442886564620062126251110421484084187324523203046920960287913198144221201643285135724700231822008315522525589782883899443023117667729583112911789198379143511051198477100999761945038841276183218261390219929062689133895646579651326786413911053771000026418668690430837598211690337612892065765282711847996587769267930895017277655332984447236422997356243448814927187525385809294431932452663999407778689069010390813313868309804666709232433224831624938558034840112213865225038528833991423570870332847070652296619638885451494917539622059751754672584720491031613626108906367624078441994238313060349747102259987225509652430795166802640015545662139408801496231965510145952119725005262029216141649643153887319144710791119399324485545903380576234825942995741805468407240502023131284641584554598607536584758511496125952540747430593099947437036094567063929749548872863047998421109128633536898810362121829700561607078363233852633898913822321206396991090511560306289322727489763231672403129025548573421081499749424926073252120932731522811205897394893457419539505494688857636946226887659182264587962750249122329602283636767557361751668723493722182699951203500611014673017349578408168574277802844446146221541728170607655304551166225439067869125712470005420841006523275635539692272030059225358944183952716387883592639041116450467417245704827657501130630423004527753184458483618343911327480381917142439809492306999120690145729529143830387480036959067275399797256158552134435732247040528465374393923037624068831268711954552632735672478251733699544729478523729952771423494098584300792670229100087323185342672311911947018902091504786677002451584563769822977438761902991673813917324412264957566973940889678318187690526253386294442770003246702928965650580057697848401901469112199684443230672530173707558574159619926567253825904544452493222422221392698991024297204358904203306255136076781737466420599711743472598792826128660862981005139928701448830309869897039987196970146781656707147481388229915032121634103331661549470191358633681227504389223516580398643958026996533964746775725800687536330355017628131807440719731590919661575254072671720067529324908771546045983848657698238314183545289852265091639421940703474963708193351367387036525611868759748180889587565286284768470961818945254758361484759237543974752794437743772647556499465573977162550804550614202612266172408475686868813187901582869743916510057751221470891633389358552135564842595883736018318084046457706458458663136933259460621024397747575879100240081197886139600274556649169886105270793010712903356466014432885571374883266355911990528521500782295034860085789716704451765042084197339229849986288840706416824912820337239572878954323256108549403363696442522521294246915717315810643331619692973649813686779822657627880868380268999282161464089879515138639094015627964235855363768045153734965045971400734624782786593551403097946726425831922375933120954242624794777471755442465246235734749383089109779772752283368890369699814469208328395203776712220781675467550950288345469344378874368394353315708718497078810154716771837853917983938964279384598101647551124718429029512813410465459465361558227198982443488626562951902650309520624986216673287282154581059627845604418304190078083981901312494396864918270112587584374858248151625025461065973942449739103786412293786480964705489404236712986925686864933140490772149243427970850797953996791577488544918352903948039392959058700005254437377505255171489930561840345911284727841231602423513015690072556419269498435929857766665656826781990731288974262550726444451752886659764297565915577678627414751566710992815712193525536110009307078666472802786462559485318423966561267148009785040770293109046968359493757231861916853207932950417084587002339228894729298617545497319202379112497755124130498669746164123071544385423161277261631326119888047841453871191986175289411474612564344606672058633907655544593032870979435394937401980925010799981869416301289010539290334553388831907127531928910556072831827555340877680402408196226632908987081106736625734465860065057331955485200413505087293939374732546244852932283336782158434267084104020326809747350066024737739636537564635704153489795805794912544593931000591306867448892529310494905068686373091602630141966176964311225290130576621600127381331010794473452045353189961840331096520135648264635824340745421969858295183601981554147351356957320004836971626756924485135160800759941483380827637215022905737880116270622820457786168434545289197724197084148297391036205056729227595318850352696991939115061884029614725696042973276044953710051556859312247207411557895190522412231735499263486139846600282942412510270394973703247943606512651842738292124246757702347497835815708381478463664196113057052926178131207814031886543174992828618067899604188680536889704191627102322487111755268676835549555969162022141184377046709821248181126752720232758891960629640648289365490448845109931278931544893412586134324903191620972630662039860480532341192438814305505196447950603904809226632142600277158477356454349660608277052900980759236491280399978812234483805772582332846740507067684487167275919643387113926488006142748013059010615836593252568885302712405007689378503714896929982476159035061242193784156436681039423824462655058872502482619211968603859786170575786614445538114660455779282425691882116160976790885639546878548565971540065023354190865193104647759331342417327132344993832595937919436303040248758439889249264006341817470814619341071785935986961485989310512256762629290016207762337962631679856370558712296876325737495541667324968186318482807057476014858258396749174589937176308117476967375721552814661463215213990883298204533563528875112156223445639792833073622907594872215326831143829173624545628446332198959864128965828273558817573648952169269304707439283841966583347697746947662608713155820687551649192252612972850630937128005074268214267574506241242498755037052003490388266899269203133536803107999895862911377594866842486372640836583411785889904717033490694545931573573345751675842565614353641676185915105665543144196699336548903950110838795168966743535054701576251757980341137200974987899124681515983088058901913248217219674347013375552218270293289337115315328813601191519853993325857693117221506225054005997346737600324825307882365785270837521626344142670343471154308462106364277174695661048050779100620843812809616456212787279174352580985440960949869986021440228103317280550265247272746368027749147486249281196845439215609414460997925309279155678668687452153390451436463478460508017036139713440136073942839584370651243370990875394767183622302767039106863826710151480992879859673972740671410853497881409992821490580407455087569636280254970359912039592023524145704960661374433617538313302580565001704169640839652874596582547514148138844670527669619258162498913467084049778318407004042355635892064842059856301487931698679000897612906289848257430488340316623320038732635522948201314259602838209027910493151194177233865970293275755209118303669326746405209644981566419442441408305682213445258179392651853075974627914880817344222812178771026421980364122110118654802324572798090641564267338701690086406012593140677428537671698538740879337066047234968215757788306017478366118159677666249256997500965667401319409076975952776442022335479715291395106348540550093473313043759575251442213464603135077153008729054617538460576983451831559556038284379576560477362043635067206369104289100478969453168086456312552352405022404019109171216757331828046181876965352508997566016770536617445858186967749134164811267501185818141457462173697757109143336045529609418220125393689613921855649033433157762525049155268768191450686177277403310736661099863217992302062710106665008864462700347363907647216060270363214649948077178828159324505128585507108718942425703276397347403561683432917541139106161417848353865409739655453370781420560413566713775989901790972027506484414966768724852142518239595921034739785728524611617513579956240730776773605010471223366336117524618501363339957287672513728402279069832913907948272635008468319754396811366432060189569856488731048354857401180756468517313760603909677140885916463112513935695151359769711161507453737630006788847536035863449496654697291704477652876736901322133879799253163645260439033502729861857007639654658758731155034060810521444550961421008159795548231548542316246343358291719853918685237355907276038158903673003657325213625987681119814503285116431170164340092714784980578546805245944529390172536729591302413136640021806096303244417907984694896874836724530758946404962791812081634322742737928488711800422200708316951820799491394649345184323761562043033299284006494095264676403728031057599052990993422734746301081357444944081660408632730969609860660302375523535674459775929519844870638896402540802931482935607912661198220066296463703705615604960652145119818050782800025077227150243010669149156484729916610978044655037654303669658193847184846875928773140694874033892146234466878518413455560005429712987725017476369945837500018449683614541382969518069285217345595054406167181438215213458768721380948700950132736061774299658353153240604795174635435881833908951106463713819129832349630330231750301555095386699581816719889325593065406275944106573624227665128871971294183559561576004835201018346906237329483492234310452210279482580947007753946176069891045866290783492290516926302148290099235630627010732049410738821290922482191819550162936529355061991161565411159831403957920555496395329412984724706933276568989033966900255785282300013831714711580099239033118285101701437843686941447870856709577954736589652573897521957992053679872251007220075339204449181784867903960735907901407544276770232149871546760339920220573879168527356989223321980313377465537004111529989945020075879999814105769941852579523407799353911159925931984839568250752431431033008255612752144482814723988583171286795584128626105569784636060391466882567488878736598483959791615692852782346540189816064209606194227712467058120879586376581153725511725713590159342422761796603875436720478317325999860073171058185294314290588201028647883724334461989952243074195138758524820174461366926412599912510739370329188418190292223429724996699766891865410574059740825222612529338987827161412538983217827173824345766745636881101979728570360870324750061823057794032458612953447890196701518317267199391368513297950158425970718809032955014342855402664381974492144351639267341267134941211993909182961157543125680689785389002041317237951600070268953844699520406877682655290795086989450831955779358675990099854905317763253425247105399711657924370730120731203924966042907349027544720608965224125948647374075668193613823242703628103044498699907340903815709265700384944133053575154915637558867867618732245370932252264575081602225710465057661737484331027388603841324471391097694287303280776852157556520592755914958567307355885407281019747144562188775138280304143151831325193687901274139551628464746770017189833974448380626282406345779032903105600452857042707658528916747879038466066322522568653240732734355924721162935292957711123991064762633637705688734859277105349865906636257071220511363050402883545616238354847952083004475826333939670859157694569098381860243945334011571538613290912275566400255020555048002362723674089586349931333242623670072377633012616641364468099470042597097707504067357510165511774982061172713231713572524927292950963188775501722705247285331208976865339018324467965756938122122413065430294493992466890824214534158631172693145093454265916816550611591941808957951162596417177008929604733056041423507494209653920957081052434414226550883693252572060304882765101956585400979754712549501859633127273154497347867017821827255138649509280492739650222685458177719677178643719049142752264184424352625500488644245922040443710205183399652299313817381263531523644014072197953645900219605156928065554389150870588562479866750449122835421835002870643323190688769923477100878777666239527067189773659494762342732703745804737777530011285006434463608301004854876583837013151623748735483745973424705747584235130118929900779244291795900163000121841080512484174398958050377041888077734508254102242606349786086069179365201150565744921949515538299832765679778204046490384753216286462250501043045814885472283873009024344075311833537311272993176736172659726897335595411212857097499868917629279938797382764224633754601268669518271163003659751686836196198939596108090078033537424799586355083620962293671742123270868825863920940599686615569219553905748660898388810184675241382862992787321126292936652218942000217860637357418243392087361516681578470038608140559061142544208605261363285292348986987630927357288922795978746511630508207656644370533386029250917488497111026553510191110443892497854270737501187972707771057549204679165475526029371626366985240784175049661128520368717102987683774251333723230126025600318180400020105359455990960032701077278745084130099713054698590845874060997761298268014577520023440467944613994247175544901636549429678571753119907519189603724981858894563609185982276058407900363659090099324223733827919995592995416523226158400609587724484719829633039162561020271015541886998390109053419995889832652744619248723319114258418697736519340370501530325191417422172406007428514699887545476798003733382949729411072076535878398955871304981962794006840393153871970236704970864135012140564347056936695872497872542540787556128168089845831155089121359436746014216734679965343421559549384107912547447396997622307758365027667754625888152086490178246915218971780539231497262967497761090820567572316165161680358962663286072411687749140025062389229886847634592354504792330042394612717459353106438149535638926620701788703455167515955605527540074203441975883200458436459738849395359786005881621134354683412652312436006541686044909850058574653407694151326537595906107513529490836334086445990061943867095248880564721320990180553139724233754768182680598103665039416073951200074410499567003625246508621665284580960279003304312959632879029941453768964009206682780855875363211843467168486081524631901687666751548116251402657905878604474533968148874845767299476825402262670726722837200747063108782165562627739921334373225458322377224776409114079820317812555356237621350116306515704231565516257394882084257917166693249533733604128579617133306703914966251731524599819756782466141755693670371635124118484472111239536448490434402071186157193447920941280285862534206643214253135020313017725000743518841942940582245824637429438589147954639183157383538575458695494604640087136590069167718696578661790607672948274855661660808291190746621194184004894835866740570473531512094489704540623025728592750900370321725728014340413946069358797391592542851983425442163405614880368215731117183321037673546226760704375704799143036473079715187685124092679610434867392100543938559741346755895310876241642472663043602917086823886319752750348863716231422758707598221190782567023161172394452635790839122101344143664410138353221725298025862296847501179041803520697809608838634485769970297666541622007314351182726587692179978564209480291495773408336734628941572439040970335372089789828060250802817808030509937871603318375228167319160593847258174752468468580423508180096561464679696665673035358810411258754674376518407817135048454968488105206435877702577413019029163536062181884328054648192866835223703509902227203183896108538208349678913226453202907010118760763517617366462522888926416921544843365593158385058576938999112026700465536981751158470925730954061737387260992877621919581578751033002323538102688484592635135260184004935413970985825245155849843092574359120854257110404486529931581682013229751125225173503773406435161412476753983975977467746762980251884415694997146096893889057388198211185991992326937203308018112281026338751449156926999631869158281633257628397660933994218853321612382086376838664844723049252605343171050345611770505633562993033617965382939703204123840826594360699683961484111484779428687465611648878502799659172738588014700628513981524949001264700298341601383187978861235029969427294252657806900619973194016313103685449688398343384827700426008547416853978764031612466276969757488102853957810010101903158402816209202175769098832749501904616019086158449648036819088868808121468278125002230166779656307576285423307919831506754878844457153178932267182498825737574625746257402676762788108656868789663205730085263129993989855025368616165482780697915937413549250060537049237346907771954236970043539809787634002747076684349841049754758420773524789439102558459149928117439639677407256119712344537489476915857641204316827546949623999533547801228749589099217056708010278016513293310752475438349751916711942905752076300124409675699937714747206289375653820796168140125241673647122466291227819074528459750204758447929517579318176242934363603945463653142202573388869126506537731830701078324628235209541197474630074349150577529819858736720963864225679926170650888026465391184745579795124840455722213819674654907597152953906918972180483215677056111242903660570320552945118913591517099963311297533458833660497647015318201147210412306969142178194891863866323745233592051275720463101438475933770658774686532151929220916315592890598150437492421644988590820000564808780189641882752456908643533871821345004841302877173798991556912751217469329653437348919157137638978686560269058433138385476356999031898063157373985753220398609207141070667350385328431276428294405795745893771950822269142365126039440770886288999906260986190776036388263816840958290929912758201925683335857894252438916643884857622030189312323164695639956873084690272915445624789871606159832021886754178222813687656728322360194524047346957240438596583095930845892848099146886995187231776824843031325906023677856370978997864364170709403805910239359918085790118817718753794917573975361564678439564209083146996680887860070732807409129602816180970006718083462160291169827248072220147742332583076770733775852763011183064760701980773516295986516191890150373632590573425309973018470557682764270810847674344476906192759405660132422018012402577191491868736751316300654622998866787623948944132055127044293550674876594977648313281075105853529320798885602236145052717788551825241481802447976510425092076981533719578500569642627974938566933867234835778341029520730627500961447733943062188831346573749228886456733185666689420086989936701584948607611534155961477922512671983821519759424265715706783801798826066119345673519160191212036577548473335426790285002865591188046972594507782655940691644460352057675224476227974840265027805810451786920459373172638877077916734488213694895578430708344249744557943440658769051162193700500138343730309762836911179791537808955670345713414332375494851483199514480172793634879653575695564635651491570957032522714828838514137014581505348252545360302591384009753377148130201209889848906519429140651801451521647345128247826201611685360135064334836802313818113325625102343235067724694559324945450735353994090871533903030101173217829428793986530258719595533766478871392697416950591692153058869481161713174495346774526451133252200082332516857582252249194192531662205602578594098989341222787932278661066549420652539780010504823079081968022810481142611641499897736029367829287979121417121389700210410486616072479989705170952014826875861615514207089414971857804100086895413147935511083176985128280842793737799708038446134539300393433584925020286928711887855518464318389596034141556806111235569562108185842647236326179053660631629632446509051880957594940165500821067354402474477854449386418543370426429251977388233929908000020250772146174953994022602850338731178620688072981515700663895960621883728244755933654439843329487673467199901175475718284369008593659545479068573414478221175471067362046075819193398014922777785855984104027237724927128899562950168185274442904556824167221491759079500439130705468143170871467904464049728537997032360370770698115216700143249711431072720010110583161673784579902027613115884558018312867465629216054701702193720390958700077721674671085972298023189373659608646455082894923420813469587022423762632242107162381983435176377774588537891654898077472826028108929072222571532517203552779868772041471816772992602544453334605997020994367708797562755881632045724529362183733628493072866829996671881065895030118766275254069324728955705268038884299867035986850016525292660482250654151973006811070551272333740007536746618066479342740474233099496282987020089166274608496196790599963480212014803646609320798907501787947523402359976287396618289425188746222386586924838712518279145172601922183954465648859552896262381321793724896234578152051215389721544181797307892152406543003582938104330464678834875846794629683653200739906456214630040994360862735237297814712181460598229407726888800450160533646538619668867833242425896893019836748055159153587974740531182805500604877279138649077978049985065526489081015950954768209283782088044766644138040040084658969385203051166674176860996093861595927719564467651939901111715260154546978035653316836126176194103683735304487864401988762203955832524133757090699066836976575338598942281652435738522683356951129131407445612148777340012077537535909827466477479189136467580847155750462993292153699111807275222320269904331543139411719655461939136257411871064134469315832861055698736756986093257583594452667547518724007038668517865011380829935228625348496344465504009543863854014353746338059957911885875453118407072889166031167857267398538650441384498282890931370010153447121374372695056172441820906871035842054248828276662501568034012683528931301865356374080922079655327893142406768727744694559741350459467552302937677994678811158012840736873473955393415165418160526683055291170891611591215783115252024416480632043082723711984896840379422480322243835669310569930648829320863318803732725215674723304792069323283693038623358317464590882950684601898181874281188141151246037987178213876635743348956582103895961437891867281682782311006139099509125504039822797113763846941093241449395643379213890800970507492534098530164257368148620173019696509450198256031652934734714476759788654263847610974497613318913660972666591867193557162130911012908398740642416111653639573975890503414288074862621219165284029564063809627097315206405068449915071864991538732874028361202889820993319896837110834736380367251975937803007358147089013157776716640475008096970615650327044976755637135572173784075151403768949630317733381947665212579022449146356313044520055719823672443629216351754308536002870685702653773928295898012357432366567381678635178179780521012081673762553632363922559554817400574767528461250066508861224548147493999479051601042514476166888876148767516064965589211480948773920005243277376326169262042035372235294042193208936563372339694694703714316420990997991742369247391903613332618997323213371714911165859865655199586713951553552390150901001391565409461056165228322880037687239757288272884748257021675446624687554103255160778752791756196688771743801553992755144392189148995075002443615548940309017451905080567806181587497292545002974017027743791754368095883943358513145092569262890193270722702569305627644179839823616209442938588017057332404971951191224407391655329401903860167916124861920872391492365905827196965670925922112472008860710099434582007750173837435257510714458507024252527537711746260007364081948497255666436989885194098441859316310395789451168042284752722582722443046714821172410499986520485660557416538582656481456777325594408759567982720977512764745530785287010031076481345659015065270558325019509632242957363174537861343920302211746174031650380260924866203671757368823962826604557794934954340463623773952485827287656255541442506203731522834272165002447485166541260918378977324903372415668454378588204030071276947743896984184674576054657448416272127241092831629487274362949003150042955970096767309453353138868625705187048894397547007475489130795792107108085234898108990254441798977581076280666899345989857515092981130950543746590416299216502149760095136017800523934652183558911310543381406464712538525876361919038474627065542665932155110760854561306362633606563467834524802530056522899448646464963074766291196709917074360385198497401921147124422044611124389048005987775548897863292761951039160054951237912756632093238389272025137267668471626394323925187102352652046658663048713950392950979698229775342519353056833493583233728264753028830405941433315281712840340425315965592123911551302745664134019831372342098379630801668605362042106292654420202167476304351113538600597824132948452960678375718463907934494078284298864086336878616991276048168060094551788945961519164735566729154944975404187626601322038752532172435265029256871017412002287276116957691289779244257055491645815564879623276968209029483297202310669532486627795382902183667875266634378085706845279639892863903149748881810916527613260948880168022000551204998644562192177242784316064571545061979690997920100711235669767478268293117546759364756247334645024249755735434335412606196952807535435934845652028627780655145628604985898444694819126332425466169225328082122543979488616781159391619868067422205868229536092858222154028987963239104200434336397071707155104651704028020231123985882545782509730558862503706124283114420732535171562028137772123115670467076669930992996953365508782803451591255809410553603587637979140720793358166337588066412003391948663128574250274249876924931223669042553460328551926759795661037196076165306468456096369553271312260031495329232940325733445582955154362864501474402907684143610629294170792750103737210256391122563390313700708976999648757560651505673786008356886886175767104928407734376534974555160055621055006137480998623593657146892001764092473407771303066797876128413362908623838758541605435298486186381586491216585265219359171783805693000782190732661176436332312164895618007940048546204196906269195138120347341611024818096814195639156697516717934393607588484366701033471194864495120594543807038162520376599740858799801841715267847199313834181884691622768595598896557248218054378826881668800704708575622045224866315700393465203085841456780029086622107805314058686335070268313362894775335115572131351315394178937521550175097133594668311326402399635460607644372674655600095732294499689413560127726866663111129008070188065849619635682384959177491181462938999227150626859483940333282356892334812974473486762383458117385362334668262497084328939775505646091074131772610379705123777407456871926706344423042981806945411661167624447221436096481887867317036916166343927567440175548014570771723059234151269933526679595888375691983106934167776584846403810341408994178951460527916312760070611108267551219599839298260929803139886983865046188593941328287836789705197184960933213786501038796807938196338845108000217198691085178118365492533825113902257866444717516445013048369924380215678619359433090259664168822208089834093041149006861034256553370433998231591213024283682696475328210386380530926532171169991615660859201553441213001035359505146656312495558469074232002328494846302963542580431596177050009103712629304308369201417050195775950429590363028016542329981973542438531930487644465411276663802553361170208345024769915890305872853866289187383510202307855207741075942255902611799981845055573108321503552561872446182932709951709163701836524429931994669147408791060651893294741286339076780522359686490381308527738331210870595117648004369820074760252678524836139484637210542297233709469702253181868474032938573865717078264561260890534172491759021013424211748061295202139614267690374335776937873090724806479694395979354937042999023400946421072794067264255299191404520487240460807419070810883899814895844072288641762742184902159423232377511808869229833591583660547938144236076779079368153111358429678586976235555253918747141776419686326921599084033471714839882044901374200497345893808010711416831253241300487650922644935672845410330149718801277049420800996427582977255355986629606546193669441183124065718364458732663627922918558593967391945667389453324768879752609501037683391733915237648597461928158798765629857248592992471508221257772650047615233762718771754073775245802625859466527805791693251949192255886192976689191566605794809460086054894464732580402784051419565059946771286516402135684707797919377504524694037522852416610735427239558780625658809801536607797761541569293683397107304298763006399921725485778703457162556240133087257207784847907199834664169001446303707826074083906088805683573593804458450700248131872022579263313576658685874370106452061732028868270691420299340329169114107264987053183385297363238967492230277694389606490372836607181350826068111166821472111923735567091729242768797953357317175360588710767511758483257422966340477355038418738771329373322545959219102287824755979259383512243427237066250445153029145944211248714615305677168304269606641677210703622492869701703671975127839325115180058796236994647374819931393864647163022394116868898742337088208634373500968145135303062303236050860057681064253283637421317683258418077213736746898918732239084179604635677858912871967399179294290392514023012486821316293904365163925116683362339484208186110065291110377758786674450007217183403299661055910474010747045126180654877062433743873886931067412787753458038570738595188765440475752510171263180571013451901264315794814098095454819806919541743250577922911964479042857008788390664172770246207049639102672581958997374866442249836562605776409289066141801219251634820577926014227953237000936506309338453300934948089586182326746192541365752667377705586000384759895716615610864287036669787042301584759063996901039057455091689243721938223655753644173038593749921226810948797333709442886440122343211045889768231543324648891208433236258557067338164504462062748999762261522346395563352970368432984725687984793066666772750266842898311787065864367984037682555682331170239902577331146368497319906843653975607783742319907585846891020555689177421415894058968387493205100142915364197778095660474679928259414635516271440517499390663221745260007623007056307489245673353642016238771973996296083927972088593313713872111322357836851234129881825585870959907020475284671132814410524469972939661015305145899794798929009386351609154044420328125072972507511842299969200856350535246172083217854008744950146633356348690558263450251646917008655942501511260340762883180999068660930251379011929482240736656333083366397442254274229266935029302121584555710604605171056624218077393570423141604417830727448866684084372454568462576095658447982546911682393833664837611389173086989818808367508911227855959473067980034039640471245011572053629700310928153032824147423121093900871272602815352104206382973281574135512429831802379962686899654355428795724772426048181022819357596349111559538464487780152004361974087164867957674928264342170940813343141498902587607194666274173494427950454812047733701396382335432170322627570301015949370907527900199854497298866933692402739495008546650783345003393101148204897224216021769460362826645871625665875378726968648930204265491125837091021024238381033929515855292268695163647284857645335597729958996343942619180268347956498999095982090511672542728308778905500729813187904350201166086176321575028360161314270081503228755720406790253703134274938218631623074510168384526248982455715721575651518174310255161043847594686172461442409298557524300922843954674917133540006174479895596525947376119183687429952880567396295298977240611603853978823861852240811444672936324612139861042457254812676303095583916815434005413826645662460569027475082145333200900600861855607507672778133082687233548478273962473241361007588251870445366321275942651169117521457902587362236488453608863372809354180370488733257749792557184778784218767211020538232126450145466292900192916942920707936664216938089677390284872859562830435362982275971927403949566613516874220245750761127662958434029727545068801251303004267232207631451988871107485928063786635632510957508771499785891147685889759853143910659196590377359231878405801886057016510542904294784818279336298649905261572396033464766656735044141754319325522856189878608557269622827940703698508659795878046994127007346763427846444505942650637074084297639806808359203942054258435995904377099250945092216014516119956568134561138305731176450145210136025891231579314928190849732227815218286951536421225731596031249156082624374431204993424205275535285445314908494599423023963725484036999113237965090734073543877822618110319998011404648504591841825557773335248350994269298048689188776704998292558950352850497444389221294381651033202896828642230708364684353876124164960044533551486000930013507522295773941932944990693566330664019809164313407710568211863897216481083064893622864356374256253293088185048499956959434757182855350150619803913160201701849933247936595585737442010116884344246136197739918093899426144049157894117650966398663919444583642555597426377383110642066894889572645253494795331640799590219438412451836248391872071562464522514281902083990483071199888150273724625761983561139154790573604093607464024294964515053173355116610975741410598400628710295474709987929584629637795605540587012220604540825751231540182012217628436308774672617238554311627091087665469419191732339727777317606436180158382807611962570665194466784582719258162428551013005916333172973637861736588872943666517149487416331651836320703634406051852811575101608568656693681110834966767550771428207639211052987800627780695944708573992798427619607914706494748227330304400813170050188235210021314190848516491690445517143340033844778238217318057186180564808926196048231900048408981080599291168382131927255428114892451096007314204630534818384931353565743501838923054986916114659102944681078947738846285762662233259937655046680146082131760728342390183224918034173123973854131044558923362543471168745476831857876442660922186811271327291684534626732838783446471384331134553503220963503385532234232782750883006918442388841667808068921188773106514624095879146714310379237183156144295828021186278070456285009685766929420371133399534561449147402253487757914491125299386825721772522668493525223949810074086526495817922522130583963287653823981171491752959627606875207834483895094460054657401801901371342362388570032199847755427895786665537697763054270971461574451782517254118294452581590106368835396308027708268088019435759112982419381610910532100936595888776030996296897552471737348399667344654402193628881433242153463675982777135811892911075975768274925415580038048337191560505522527437568793672357354083331772348861205824420023912057270518751720987353438976663982059532190822610696175806216639480637519457564197474755093976055401364921943565130251287215875964285071576814731782129676957564545633565854118183914285968368085185744951201237983635307939825380711311529424213119571863482340206488147025238312582340991745563690812866703943263150430761124732302855880992422890177895255442643898500433971048178354766067037911596391449609323135889261733173671210761695013059959072430627020167293554838733743063247590647893760733529535794503216030534864589984355576099079855613327572759334463175770022006332903264399836008407448544217708982287580453982429578695066094765496515914106601098544827638924246855561073532313943123515201979112790334792975278878020276055372069105008841315862473817363296144982643556445964066390712125476032938959775277012594644277003406880476082330100209768833625074362752976517303859056664891711845148783935140963814155998430772594709981975544161459062948604561873074525581250781000528504799834573131539091411391870399952703091543059803999625697325844953907049700292086508045452933358597508618543090603231762213828389564725786031715360509121842978016369163430924909814494905471254181628011045631181812923558726070955758596089918789419452052765759064215651605200030669762352714108154493964177341246711667506199523686341155828316612325153481498150988697003366075045334705526246690965852200833432924314268017516024094159073350627269734291488739299473318120076249939600521249020067534531599193925015774660959058558444637228959510369309800696818931555558801848962210771765267558362240608470525558309783784488634432418231452026408382823257918540944713078462434912581736238256390704840486525079656316054447707274308450654604308874603288343410715898287996408222589143089301205198325228877726847321700232408070291141698221506146263653284418816303049141387547455794727613544554603472168583109433421907553202070639519306738892817181899376514329387246568086948864343589578469820829514348862962978316079966582116931423692768343296918703101990704120104956053855695770478861040872707214708641374061196236038085581414950752576500224126972203350232294150011665295794325380901723039533578808098724366183332837169845295980205271223577485362442352344896872286018586732411998763744426092586059214338653548156760886154980379828577809501175095786160123478162546139523405551278827970038927892582322772575473717188170539921620449690532824443813775103330256880194847206428647738169334713330608257615171393142392600510422948794903316986220150606201983075362160944995398049818731010025109639406287949913463059873673620162102850045233106038257477865152651618322940934476425760336044253662387839483766788008740752854213484253971153398630372390890932730409982090245628540642679796284846862818272636512482541446536537326703190836599533073687558438001974548381143006473451929810589879130219401321339168404873171916442738398538707639255999248194743025863356955486673185323368733927099247901457147900230728795723167846279416898965159106771990768629142213293951431116489889970326330007666342521820402902696767618037429633361624677499427073105630435183051849522373397867688399355784931762560244568332829519269574471752961293162496811341716745443014642950772796585385838437507847671709195193735260947435871473483978977070951502348965664968777428501146658437046100082573292980713957881935422746857959159337323465357151084668577267146823928120217109210445252014238886539078463601196135817153108351315092707460389309752257404560223518387653166613025552653391804026169871065965642777644698882003061180615239542823100025505806776433353065337527122775824555338874262998106132429275459387008871249709620407422739033226929070297885188118509714696876268396166297607290625342600065462175518240479770114902694318303132551958578243557885872373871913521364059149453287917750820940612711517120201874670003868620503461869688083287980820071355718642007447237210900300624294695925719928614262197446320264643828756552160840982549790748536554404095129500322407503729742037396609881987104349011810497629562406987584749530538635856700105014504251123510009085420414030323981385297079039776813733877232068343134343147592589777794160958355898258481811054997949357029361827598020232058979602424894642562603499427921337791804653736377970208251300506937144834654136710765868671794291359639883529670951295766204843466957597915832723184588230344712103045888807402500578664322216608972706267269280923881604827079925847853945663669218091136774170638710293497031181650923503960110359543017253481621452311788896410333036750577108855425601184402410075068774753235479533364993309322215662163834439229940498222698011516859205766970645152958611701057702580438361362210583285973518798904887597786239195419085935970513891589471258398118619383784409725068101493993985707194698257128646658366750327211781950201499781715396704886116624378823496847391914458930116915921824026744293417838753524089590299274840507885869627915632321717894817645610647126943050471595776536645195200564588195572176110360308321321748345493418968824731756751862790827369418040467876516028858938136638311662967097784346012387629319491854215205182440125214407752118088066927879317612669153000478376645451502244828969840925683031909890708982222281757787261243279453004876732644309800626937179563036699220992661538444830402007672724978330641431787206806345575089210900978861219842571045731367715406551605759744012671376774269484906833771859445203302502771592327315566477698557933768908146125661534298569579302354314223249803506621218239005624239187137650772952292112715246903890815502629263605783141362440690435178388685674669853793061293012695776649163345725837819470166717223401993933956620341497617215465599365009590429242316614120669509514771998326667320578095717594918426222623280824513986340254006185474447327450348433739167299273092626334589979211213437014536392137769724260736631429513596437606071040994051619996872502398055875137825836730596668169894882220369578259106474334974218753103003642817442690658222251917612185418511879960493866812988765964200769817022436296724310436213788617067149884813479135200120105648496689653961951974348016192789971300145071684631299553932335016142564108678019181258224362570168340364116998071387161732613139011389302740795484398670350677393394285511305528477157359952745115954405386548685384502256834892699533666158071243743802711883925849360400779247152427139916939260378240063539553191631992446396688480524918175343942922285548296079898993851879081634884805827729982656896364146186445523613082703176376996882238778023065911168574499622810327094637742552321554759444717504165052226964789868963401568433954169703939599699270131005107147957108765000662386922619155418280081371118788462479625394887619959839536443958941505768656967742815114247389273033119710771016751196861360857519074369446924032185601644795706931108073569285886251810653633739718857887545445452700530632892845678346444218221306507310123023433192221265487737032450258077528614436195648652105966143851393783226544753092690952553327271227297432939615239195727158196512965261699207179336477435349538650541732786943043595741055079953432722229632536923730230090770187124556777886106821236126117699969367496954867545302968200379769399072501980229848326715542671889777863854008138586508214810199961350562392587423175565830132610629623261605679684013845571185174142458720430600439238383740843666872794290721436890692280846587785077327691377676363449787086151140519610929225547361645484715295890289891098011590674959301952560566584240454306870717863515722506015715472950756278336207292359879011108316668570867715308113881998087763300430747227852657694684928333694692902533507440349233906550962363642481280281174712004536481074945048440763513765208049700766621434852551496011484033504442557959766347824536077970042514843583239472360262636167360727800168915203718666248034437589025649518986431946347587611464147859522670599483923346045819810855194807944587568581061547089243667403337482057467054715844348128434162710824104921187697453323516283150399378363274412573557469480175332448738428047736020989450539306067304144189267899172141301395715690147442823794512843550810807095996289057823386261708451938010279169736402297985104418444399754312562895208197036836265950105415940652612147412734272510439706407751383628897854645954885264531377044475962691456565661414073229137757670319010264199048700963745831725399989544151760549698512765035800372821801697372755175383501518974191712745481972077880155371502645874404791245419113437212449472628433085140301301253379678159778684848688671464031255804918592300704811026036185665167025775470610569670721974786013776262919315465124538042669793305121233375922781805930364116228792783133121841174422225925657648570015168858686635794653298989658237074849091653819635788628883959258483127454592834109301423166541618832694320481970210694159374997420877066193414504819973822809525761637640534492298671354573695435292289549160320578218957110997499043695948606410125533284739725658612954575086065141311759111844103148496836907127511514094864596713106330958950518593554097544760002373033089887634221311900657282378645754191022613590393041938039152879656012212287788899851750053533337293507410699767120342288253186979828276852449828924565910696457660958273612310872132376899568707327298126462300214373171375684881746492118662617952617060685629732157579855520855708315610245351251826753796470766557498676149894038259301188571610482215708419015830396973491940946851607948019149845420933954440447673566942998198658138121535273162202063948515933123707681308316185343699036165611173976298091128019455682253657918998157104716681935615982940218444139180877280769884755787835465719822389502327901280403713396237582409832387067815716274286008696300100688151605715294636061925886671599382390961574885126407952680713269416518534772686775446149111496202779591167417298684857480614010180578341996944630057289218697815394329261577358362368301184315652381080037928987123295291408125571424539281070549926549084707538573758212075916449120956543994788293816205228950600377689261734652215616366652448682714043794884800079018966606179319044011739674906686075634293987528528321992898623968938011446876217615175559147927042995203483713883892164848498744605284619224387076747654003844385918881187119908316451481931916424836086205348867456128110371815182615448121070657266770493971364663392426834405674842136353176001372973470226265074652270658625189737863085835743352793784773909911444745563461042608833519107890371494373062558061715501683240304726241172594876500460513099096574879758055601995206511913489062164840676468660377494527629399706262175487886406442614682255964308373107249470693350556859736757216685773301661763994602600478642728595972659292034539093767612032638642019221639615899339638565488932233268004088753458846032016839125621266093074334836174668409134419985414847746473546019162672222028712110426835923880525390838226972687751502444622243550155685439509428580534458842537115068543662419449075528486712197246053538809115012429706392405496443500591381168780588328267457614733656781055654945697872782850717567855062560160463251402205644789566546173618331223277697805883883520325230833863449351625707231536722007520822172438555803144870297767095729535280967647973883908187711545852536604787089082425851204752718136261014301685943669444856199466824469443977128141991484186227887029863900789621447056430886854474319544645944502365826643401364010211714072148290073795787789527908311747134129536900927885205137450695523737488170379537286679904657826403179081108149368335212801302342289149608211107505079517323562425303825520392493166603055758788540899734137722265182127686789362945846446137213346959909928055963833365477919797517486348782516157766367860442139817524496191368711118219134761058627252789169547939510039465118571150345220729437978688504545848572690531227603576492111855199806604603931379713183190812450138562437217885907255898740003335211646298069925308176475003038359994165341821247006415956979715538758579682959798345066548102997543875763012167720059986302543965499431443112035623221167415481351133177958371632073899442903443439464174844061428894370358197292881925658124898418309695507588828170711741708952623947578838489906270664323593362580073184230509410112762895402896905986409295652913947346528947374943854069411834900078571644809768972434846631109708910968163900351166310107362573707622408036452226052421672028256578331062608138032215454388471321203527206424315414842082429682742517820163018992072744347505361124057041982455158289352478348074484716971301836052786919727892213568936131734451637676036150736020206366874685261193688868763605097025946888698639205054217415881041023302553596091025717019239649605365729021839462655399731643181317900330623996851416846641350619154362539425205410674445437792292232879236477552554542532368353348827358587186287212326397092817069953139230426468793438044732742488211316683929917293928711183466045796098050338004879790706987490958425181547977015145718412101382500432287888804878801206544020283374816590893877141619567481812528885417776712386000435705412691330566952667776444701453809454518736080635648649955339537336207115904115881812578382144974647921274862292919505184547841918387222589682895795777682919105179346855811995617280378291176081470047203981831680046974730452461350921071362586582885126865099625555131426024744311154225859834932156021826602906211144485056435887243717024680323470854820236663816510153825460724233537418039235383100870474355097452386643129911639970279596873207502981775807538776224489822488779682724155368603209016738996697988818564579047352933900736820725299146208063219866607758233252888763614339265354996283469376374913728613076883511324615295442616451882398032236596740053678489446503301450362956707295864604368740479686494226540616391519330831103588929356147691541268962674795866579888679827846430012638219675224827131727816048761699087147717355557902660660272138051825618630520994892179796305790401771507134412368655411032126901571711078367753440387728667487208472959982427813773748622733982227268728716637329560009600363243009483543248436991504211328244843142806990643288814557155825152073974514173312998580601843814899163230642687525977732918018160881305329525001402373022272417912597881456844122974576630432255774652554866823421909325900673639321995297228013668998100088597362381407774026418904977442226396690027830485011184563329969678954611615581105862394697073943786664497245582311895950204032086047833222490892969212712131152296515984251273770636581102191485635481690522459682454650139766037978052547796087910377541962203885192047269671876871224518698306397140374200228565151936272821859609382733024208143101848256406073971103981890825778491589347000322342072694934176751611090264548732972872289024613427566935358636507824105480840070987083032634804869254759560165817544830924911917595120061623751005965226837020420224664257600308794049113466796847964067129243175818469530032040460075564332160129775780257052497570033159124748806381661527655582960001131729076795425753519720519055093065123533458720010611653844681618907822209280303391515595051830914684445941466635027190778748133336695213230892699906804628606923140067074679915930141133358818711763358917716051246792233013136257663785199291655224364592722462612301203440903384905373947639699290459943455321636942574770931804131450869257751833855967470870580640296754380313115138861869707482804211466386042231109227132229577595090279319700881805632488960283785235612668019874335079583402090125108233230708569221055979512398544173571718460351515043476937447220550302460025637560457135170318589822294167459579044661004298982479815229353086722107308758462982379226834166782819005079671744575560331704777607120491752350452516497245861547967002880718958859200472913987493748653627585061932781972055616550313884557863058480524185552534166625167030883780623722184659145439106938412782963336182579742886103672291765889101567633277521263591998161912402827840034524754430676244782996787210588514124363467129130959230226249367768035563495650425499872838123679200843756681436941516183814642678947821738034001917280701124843013653782588194758097670671913341259592637553320340939004554480567103750989395870038108907812443198480450738626408087728400442972191910845046766510819669517302909197984353054717755111160512625862723145962440997163832071208263177426147055580254598609922288848567663472558559855920342181143155443159844244633596224318221691732938073837951257902602491871416185006787866493641657247851804888528846135965509371530527542757454662345210841844566262149304506643100211941520528227286487949815234854449893354565608839299632488638214767021626961809924523637481046382451104792295171080612016959773881674396510349416938372043717397034249512252689526885498708490034438213775301867694535977844973534549210611260453125403823491409915906213512512549933259892757366449254803886968656359766111567133772516587824046617510018334094381004545428669181545537758726632461647268689686809065659098351496707918050802670571416037671443405701107786665685764929802450616355318398595504674141008168210115103191255185863848472719708350818736517789114276598367837923748619868819680956073207357030184603796361272928008745083104762962898838186058526823001114919568017676564482812879383873005975044051884517785565926785950675204789992619391087770763275063758014286340285278108895573831829393981441909477918697864914365868589883766268399176109036644372080271184302782958785838030005582814434164217471988289015823301830035702724722440142991742912115481834519582985817500304126747227081656024602158239931043952271829493118768956166068224911822654744300296301403237307227542030982399352120903612212275684692741718664755745276356173499893857180550561261409413585078736320941553050862139924267638765283202361986799420853221695561508771773392420746535910706462722320299345799857431976282105889604130674549247536393714003939733334691411897815861749428089340813978662623238967762985043022758172393151269838672213305709545101205147437601636117021955685787563713659016443597549859130723569091783025580900696001012286888898488284444907924323522275881202532471091355054870495109029172710712637905946593228274783474829715749560580726948109696733700345731128650986235428825062425490748617490306503954931258289179831046644972497290037627737197502762860344207692824190119116974513278138341380601226396070403746839266911931781881632359156169762671532426059142678677354989518531550868173568780308541412406289725188138887715764415370921893435276346589291395297611452465075037947029125416676392937694976360547668772823095885004888142249303431380357899054557169608965869315968396311497713062445009667993544852402012677926760113173266510091293396502424454777347929383721015504585194822191146481657775622408240772100919346961247927690953902643285458345922344923594770661662788515699874692346769434358944099326528640014998751566637775906078266907269753236222719470094086140418129568296107095831210641315273531163189496795897635587128176063649616663999839219080008874404738385286307428585548225211994738858969291115783448239841904817418256594982066210994384249922928800264999942632717272797925292369036544008549352818590141072984132474201471895386433584608883115500169927812713982918937875259190043874387315543423503989740297364801164300577059212883516565729643394459697919686308365886278813201416763115080846496197599346981238616592387308890391509724203849951259016404735176399527860353949444122998104238100340837246239952178777617681698494145332290410557385869794750109566726852160541746339034622383542174971027873202251463497955117119939823552356272958622658905485611748292390785735543993313977027129830527169927495109221569156386434639017846130408839769562601859948335268174381973275378352844541043088958326291835492277908895858398326817280402098192952622999740416072740321174831988666113107794082210529818102711024862291865287034338414184229587622837765989636271518210121661754443164230798112452712287687961419429064411748817297134973741624862793216166477674007558693364015145359364379426447014816576744527380713506978739074977249231382052612865182238839447028681916180430564104531998967553804870424367611068366108440869845997174177413434728458098743739601179726128942287157463430379106910694634605062691993344558911479463842806286614910840099757746365845850636157153798287817027557396889434717808893929132288243035483811497601692238002820996611722878416813729633550348581150181415561915696283843740841521443089716813184809060200166280556627541751327756840624760502053876843127978618182933454927384980607407132393371430899848444144138278654296546293071864233829887537724504200673202185906891058329983886605426837792076501266410488950886905811832724914098456801412571170068980219394459681687205623918282825851701915411937671228602618516861092022689936843529507718421324640170944802973191285163238065012827672415898194522860692916410781387436329201940184048459179680857468340456921697997691132952659148150125747890931589536927235760264350891432867059199798495238072491507299285440905155444760782834552716466242741835100392552504849720494554691553096815386234286426354123897264478898496669710325020287473566528382452756416313003520164817183220846001265493413495780177538510068962272381122139313325350200365205121490853608006459054526812831712937257493015125767959200877573218271195952601002927961046748059441337761212907366180327583614269018320559642399708235662721779690067143954524097853019207394514960427920246789500686545948871887147003975778578442817573898028087192441822199332148283358478960707455844109745781923129852901708612675495103720342330084851623424036444777710552284847424435664286734801784935919537095067345357497419195578142173905946342938608307689591238378992459958411762722861967788675477830262677760705647059314624397576542967376331960488288379333654111198765033195336401691160854240439607114608318130155179984764262622257049603738104476520059400904040254671510259577272368714756727940480665032012203450462524515299809788158860849958883825649118420679964224301154780469267019117884410247705665783810857710479946659098895287243843185289427897327338548589828569852422061270927532983503198397902329208957990301880482809675681774494770218300725259996784362761124706041826145492889855391220168585100005564083381754525366208571445538427195849603207007287285860225704082105371221534789260778616151778765286302673507372423307139870064890837404158919826795843340959988787580476388222892180592770713099123105369009573276533178799732683755411706478887905108199116443494167534297389345882724253461809612628342935515597288530702313133346135837045450593300524623306869391975951301157962226009429338439564130850778662272972413583365973766296435411808747894644374490329378921295288819871851990459608789411082074144377009219199963723254420991159718603226730916738449679725186260643052394943115724783040759847194448775960241807434423846418575431975944209780777762837206779220358654666741854818299950796213705740438889558984123834850863885161995414369471840223476641469062510079658680724011722114224443227360846784716069261015141562270663010186345056475156298096962525715782233115484778990518664273662690260983982053031491473493085850643718522219045103412633792671142907482241575666712225767225928873823457177502422425528484405286178171870766060349968994140228865804153268944178651782291179548510623533984720504412298347596628296768309631746084843787742730409281566767703872507914811095146413518413889955205500597192270961523563634753877253048465959755258601369883068359230775975435789607601884609466827951177913337942165381232956593476488137402772466134636171438938990939434367730829103758302154332343089563135321518965162251865642684809387043618349636575447312094095559204525771939118645491963879400444766534721312275024240695777896232648923861500781984786213499633269525694145628590682537271768356904628682436145798452289203474340846356918650169346353622779607188108055181990655223664619003651910118693524525342450926071637532931793252036164251976417202740811439466091094959400887074380977807972809984859740875774224851360709245412181977322051243355728669046654091455599373144071815665338301694287658631939014187407245716538356785504222629081595615549182091137818440260950327198872696872895208833827277065026493324009444082215424146454952191390141495511584181040861462218339250164730211207588558760821727606003255304638167576711932403928827583245411935969735538149265809118103894250356789452934117550844538948121775844342264616076458688696763688778669362933807186159462734322756034383937744214980509418805117682872623728794483410545861911654892609434684853955794706019595545669087569828013123053967875694302453877458348977163650931093027488782636749255781290239385636717798960661744521175080428136827576902150089586279800153517932629756870787845660169348742432292248459992154178834694285860617409885244682979774576954605669705494177128484343739845147385640791763763515427343774969243033523298265522041129592290387753480519275920422902519378825231310205623179467686610708083032101782621239318703415472279446954052192802442605284252965794159149102210069388282327131082130228094970756997396166567337765576700761817230747141000827575950170340839688323732024018371922474039348063704983150537549217891456470936861088170955703297080858977914702531044706191110530262315126081364447033637945255807293672198419424067845305365055718257582973705409474641238641109685930086157506994166647562062648107461784205321898134367497055825572768991319092034762568742993714229670386048683254311239393482127676979187393634872917924139868925907879693985778969463175019659430637416180637111088954264114331621521174127634223368202542642029147098112088715744450933368959568884304273545401566563559993865472199363764896766335715696964122479889146752745297453125894120337150768566000048312854581739460909641228124016420813987763921153199498282566528895973088161197269834914049876044279492383831832973979928404899630853296162441889132374095818395417052868606635557049682528392330610470527356878156473595297941484889486440833038820788872632238952345613534463998408376528657203048874161402282740337195144467039255929817183618014256618577254654793233046518272076423301698539003656304732104612095770736860017694621438746009458743147137689529715470811804777211036151751447671847692473824728240598512254542650951469615831210315631041252476736526018925735674603451003479355836123726027299700080333432614642142486261381731612156561711050742417756187449916125156759861961068005117751217436831383096549180326291615695678812400325067911265493297335113268828721120709426132066483387167906108646055029247742349572056879762802581014854635156364480788189519845504333481277038259629779624671388804614677856332953259462535090917939154352071212138399247073073736288686042633359499181479553036017920747518344636040978540550350760832212455655423959887179013965310493363283454888088776798504623594537293595595068760778882388258406120391320862783442625667933826318338971896114006120808215783172574900476044337034135533930120938946588577579703941433102251234927774451418942564622936548547973314980511684927464566889983722111780613665877404051074307632596174519734833787663167575412406276104624713888121621466173120148672473229866130437630125891327941808238379919738823733098446848130197057069039714135351657669304886857657629248139870952977374898562131079475199925095745630736002990153054968494524291143356422698278763258161105457271204468292086437430721625104600168943880368989752953653232704586930569227352130420040385665799973967949324386746149848401158496406790414965405274052202698465232112346682720939979997958186836496982497044213172367482901453731471514310370384811870708500972800645338880988307476554266140598128500435390259559170115987422203662513688256886067190804515844560292554740706228429214744232403598981123570075703768030910853556846177742289753070496536216509662834526082635625075668242785058209984823655571942430116485182978747419580677947704385866019638059025207613348772623126761372233982545900395648487397122637894957820675671040370618355542715273164925613027880819800470938537132780933630929427058681400265530215038712764791178097800197866653443446494626993292337383559051189502372320831203128186738651922364250616554430784140780593554614343623436049851728160516976531485549699355823790063337771503438586763351130032637459578309162265465411168468932998282378362787521348230184697989984395602477488558055937820962150833723450447922283197605303429239409689261078528870366227212329323741802659377146565889334212856260152149237430896222566952605460006018577212517810126700699558974606956800433928735608144981398101133603998089279811089191531718451399754814299310409594550671959598238045943180220065407257380964323664856666156331901443958938271417768673302503207644314954059568155842931284413976061394367316309163218204964796652879067163841542505162028286063269891414114186866791869557621197804939777506441021780918893933085943196054791858272704692139891469084228393171581838006791525978371011131460663011524518325841305060007216273742485472071286244946007027021813230434230826208046595241065018354874029839136480769811439654305126587256574477812874028058105474082221521154431107105792719832358647388505906833725332927889704976261610028462516433025064724308871206045660136406875244215018471114150813249928030027519409429916671026132631705542190662400780705448091645376499676373553820923496771501176154475017622184869720872372592675161090815250416821272924762873122813649518654928635543476987623483316457249440718838581877718674678695293481249051728738538960780698172250203596864888439727212132249057085712521537794379291951205419812159047679975592218285615821494328104598790020466871501742736264955822517693078369818427248048912520368629769453981189705665209322879699151057195456964848062468820538436494418250620215684334168934180994145858562108775360068004090750822686036708172059750745956271513027679403734857510711251282858481942587191966504356430741077342402968637289046228992399838296784957369020325133892664354463749273750437474135600866701866549817165016776980456487600738291967008732532136328460500986072764636069357563426904701082603779661730258300814267661301045725919913710167493317292302722328807766255170727900786261827950987909755199278889572370038750747656169517680968696629091998681794232626271620766533408407017028381287942456462514132201372475761901792454532111316466613105197188946040589497243055038108300086735484507232769509751289425820756146274674998682697678298338891502066155342052303929510572485576024596677642527985776894083434833324151889619536109607577795737544837078560512859171120850497941721147637169817439338389767254991317011843221358655717464438615637667596784745699125618015134646512396957978593476402077589866180235881454576228079770526616779778988132182806659145834250461703522844373800059984328606067886094545823241111581232453103387251924493859507224746544006224074579507111049985186633861942640199242934411486492084499186351105767571703513563755641275508204358176364404330862155241535011837780940636795327839284827375824872905897978659186344433212340044446312466665022130269930236352948830608924633420765178222818617664337581838119678261305588136538536301346532292410601606111264399572987964834111728580548577343751291053774366323201133456323283959789562825171570305660864526051923720162151885516314809693377984791553542587299651726939826466403853122624048284999207968168211530017391370383337466468049034536788839095995197877234581621406174790628183964828748702481425081364873149485510600016686437759733234102973984876989967799480437221026310275282884244404026611278050598912031737516938570439663291643526260265406791985223423065267060754686313919423009912494124584555103840823737419659602360241924294565149694166807421476400923264678286486341111437428961056100999713321343928018390968797915647631779867056384226250648005145200871295826207171716314192181999673739728106100476996715953703430146736723468036153466896571658265640173366314568851494090904471561945381326291698813060749105693138311522996966803884790106693966314951262263856047477869481273294347571020740171197295193804177303024536052762371032986124996280551643544298447662489665514715782422203625021961618076616577618160709150503934000177008499585004365374305297149256666462858352744993771812317665340832796541299633145608829438696788414694446737536366946712418563364946804092531626327017184337143473244845034897124461790778043469934691716764966571465770471389145431495192248582684184851474884433429013808477283468831088353871120081298128116560668027366437358989024146020137779944898693070303484878099588230846522873246023993565835390241898930575022484176172153835595090752697280110328300025566363381154400757222928373714411321025667440994343877651307602208641596300603796149486465476444757616817549467236948464333920395413771570887347062997201312957532064401881616235267770621669862103144677489704589937142742630780211230422630193262921025341134001242152515099029495149077979878652723619735962866222735170597244520957115590709312676574772005374501041770873554586205135282853715952734896911834632866212247927539959536075900411050887875073260827788146691580579966188948149596146494012254552489900762630738533573094869300353814121959906633109712114559411514478581157040503568180321647554826682929769748182354602039075741950185327187952615411977881371727601119735347810843043495813105339706752073256185552715803358567422808255261356290784680913018239218602029284849649351400536345370267650819327652998017878645758335312514657045359102438114732181904864109033486375442862352061145260048047167100371688770101203380618777668141328754222217389135643728100644903605683794203690558667450591579551976953388111973161092766433651578608312448565981616407909334321085345255181654549867144421501712967215314919694716671232708768894024331789182519308024295924733900173701350896777625156706717896896955660699090626226920415263538836585628825552541913071070384800290507757769593001082324055488190669637308864739571761248302060742279749097788240350592581846904983490344824705580699454410040105208631774022381829012763059576811676797736807747209656365422844651467024483359762273344053580154439782951363603597057666868247304664529255679595395960504784070825884151966998800773637543048121747494112370275797764385501389448639144446521264952039013687866436337728915792635546494561279729197546480821271239468642743790176458891648716334849394127531805876398768720707349993013946975984629814630335420869710608497722018357284625826604977371307135804326145355127666999925804738398432123212050366914028759239121544384394493957374230355870642802273637589089243762747145725572185206613931447504420159203542336324360636180474108938281349539250079705062752058826415929255534302112618749163156525383829502604840796369560679788600383954599125965850908398074764003276652607293754059469568975513918810630269694361567047849586613174394388576062389194152451938012991479181738875155928511356249907783880424647768986677855735337240157174353756802663726900069340339607667832662211907491625776141499171342552036078044616691632260034801992462713262944298584405774740442782836768954972940132011970009964307530413367981730979248996334166253322402319359800861446178203739190503631151557662259381019811234947280771027147185551581854741378141648825100495904751672742959089272120550931956295884488715827255068418857501051608138552325376839738320564993534163935401425718746764212945134407639769362282957178758995967352146150716840833157211650107524468614232131351043214203654369429169605712103380995698893165415013508199816195029850816136961376981048506345398664461731001952708820824894099445766825264527880603395468828828725622602267809883272381445021298648736972353629797536659702680895470723946703358692351038367751921026836771036631060896185992968667790111783382450603292338337015506338867684199119495470324397211277976355606064886491807005798162436724272410750762738731981600904559868959981743838022917461427043035059188329584386806885458318713228057191566840509968787370442376974011880256422140785933230826373878096782714235248255313144071771893416071788622481358561784639443206192434624830748379221382780766272026468946800576617641450530017855927377525132902569269217493530317912865589209868003921655464164937832697057808557494010943316509628677843907196959506807251100435702163766910507875042186876345651141420834015117784969039626072213813354756346614160332137375663877810404575016076992306520483175186174253445623070904036861344270909041910332393001306751785818021133952664301048245085370834201786958811900143803973283719336238164306008386568875038603094028850784692400613954928580628252446139396219274686085713294572954669149402945882234497047252723407150521292157841857052016576785067318330647075672392485287508934081532402756212101672371003973477032350796315387958591705123810932464776934367671580251832960080595599352687524584871817625871649498637395421846255602089290571126819609540343629951426342627512750550206454869315435812671854658145238277465367111886178077023063612551544351959476025879234051824903572440720669627290212056263707727323578519063627965465505073268419457309592387533535148330680473667262930354681554720331308430755803767800781293410763525848662668016963461096441657292697754510803810670001130395825884062597298135500012701141853975475311007488163771799039108378186259128344086941368549629844490104282710844332219765351245211369767027074119016443150123015617299442731429797997915777749586672172305950619213154460876890110171669930468586283384377669653518148974364952388094116063376289163946656274063205844404713083123446449895162763760934489441986099678914683756735362602024022267172826323179011381448914213374765822584578039525582490714249369560493432951856630471481232483424914772973811846882461634319902147663975522518777576567572179030686714819440619805852855331871510395512401875788229365723666241000470161578341363726860620837153316151449061807444245137748525926913470645679910462731639474570978138522884089450409263343310847772471052067100339861833445514505529023476863340582936391740777206843041777722198419140566072007427898108300155839337501326518008324709606713227567738057342204967856459288184108768636327137345614220779756052333836608616935058481563192429434911310492160304750103169282238434996636568783530413290654364220987713767814331144528532039471150510698745330520429503705195354679334504576162772580181065164368634387059660177875410759563121084073041966676281891739714148877013329333946757858187821958510766876278444179071089273795753539967227041281943525793006983589789187618536168785664765461867460225517783142711832320089057227903199586732658027331526848231387504588689221897668550955143217318980378540239946882907171263807793911669941698735564483150219392006503192649692404284996375701190937684250517444585658410997949649386183187708402024399710809691681151210679605272996814959301210280994460644549652131200346259862110818968435650492607562240102126734519606047562304559426027916281423481105016625745277960072048112474989276030366170096374401709168915515715551363565631822874633357346305305138429504268952678812580835414201996847017086839665994355102797167779628047200427444149652931022991587354663346400707390006434185062959885559860525721443162666068183045084074636971621595422865075970705596783344554905413640910893161413060094235427155362110345636084458761110182679666852026760774730932963471324412307329602623852287581777588184202028390064295282052783435854248542076711483418611145417397394466147208018548738451905626008352426470098843184245737211180268494155538305693559957851303741849305511477542213808787619333709666812265309175098755734929285804951249404096069078306817311064804908103603030517273094792828354283267344750600901681042921927497568091355375952623921141594078046671891548581405154724749880112994880613791027471614230923528417640522731896995043714920390657521927641525709582788699636079790696653722811668063440656133400899716666022881020632667087119115219090650118840268159695047675105724716591141143608692145661387346039176449124273534083326196049477274862696921867536701630599547830947669109766058723036044529918644763633054986940463447642911781081464250974501122323181165208607827336787659691979911386066333974899964585756530003800334260192318317265846526419332908603081144086254674182336999616233472335425974579118944625855605660091609946480137722645773067623047204445295355415817607737313739198361286597003487021717139149322585972502935056357598693930376371846271717030555803227748288183315706529064783690759595986532302109871083490014301997999700789154522192931650614434469450288499406250607688573620209367446475687940408120541315297069392661530085594786172319969768513530342562682754863836150755657341998539491349614919012123526843810652630767894884661715508979145418902732591162455599896691889684131163232967494436082288978297257931882467545852007923539834894955099056653560425121081966394156218833067215834600628763153762683149696090297828582512655467747033031144413880758722525290247929638567843778031246719666129122963661665843787867176657452745701610101349317460145358965466192766798814240684348432041597496838693622909646669574064013968186995474183616940303010330083774794008851788574292595306133009494022947207234726798155514103468692802893352603387438804699055121904903866290740139641897735126167374056523314312281223112709300523141884939765676005287518340279644034725641666083929594188493116313852065770359246519295180677685117998001531031935394774201437121605920790994041844325597567704224722526444174441822386194244135358943870297833054603870540976769694736377576060846178216776812937539924682231335968724133698395202566822017695177462845866215882032918285087874498234119955637879383737628766667351286211010984915844654854762792269498170792883340968083204361233967704576815139392827428038690455806487284956870837718955832184585237145237387236177008286280591169881295780969670094124486519128313954475084650783798868830855041469104599040590787129256088343920395369077450113131997437041180832777418224050482650348533186618387661938816745862924749881806968466928514988338497975692475864850782335346319858952007671681037430630932098724892463602730975823383469843247941312083447079547008734440805415757799972300231615636662434364998355249899615313661578782652865893999446879778881972807767827049904722648621607362185399442726665927986853760077793971777263245956198352097457220569941308617775789212877119215991116258701734474145774087604011305126611352203322992733555482105014351196322116694053947824625419610156413095582858840523729640814993518813574194651780000464374131385209271689867292459841795502045243766312474343693412514836164328984773580296858833410073526155744241650507133549106677050927584515874386755092477064148117243691512073049272161717166994070670728024310749959067124789553791248900763272286596333961871223376081924483790394275986765440709863947039130663808500482008091110012858467865877378287772903976823859991907879797166178134869375630942244899398523415687046369947004518454918658458743669163691609037477753416706332007657349358992597860846440794456747466928138660070201946635365111724792561554071841665820904433572825520524002106960000987224470416730695960288352379468849860488434928886841993306565226511873764873429012711711529538192636906921589103872576249242788571773228693495649727527295214947554210954105408439112269667309112853833294277068153262658887471437302336108538603571145288060623706066165490855610933696748209595448097132484083089023456360480404328441233027239609233098934567929721923657301583170713779344442689572257430170541599422416729602345485819215544889360970805910662807249603918696435624240987287575515563982657802564924833505186354969027166194579876112018647932186911486956144201144640734947620318670248775737805331792540730302413754572360195263879271908860443842552511927931852539095640519081147146101583312046754585271502018566914597839990465187502860319216702541438510398909400551941473526549785208372436348751200292763188306193966840797764873990709072404640512761030703211490944806349406001446450064160855786440585354711441329107958429814096525059264902858547701991274889437478898744336297208694807306390911078556779172935192849227459580785190415520639288913042049752368400051201918508614546648228135181026724946699701633238082140127885880213528235923765014184717092690072181513986241894773876670327886399641000284230120568231290214543727820884585026702938421581743210297250412994805109913716362062393315818880594449483373655034721705163574275310039790346251350919293038098873956661114976642139697019546949418656032033955484411558535606769480519356367480109199444202541084848470013084546282601043395149460623883560423628249858083518612467634333508469557666480816638379303639686612140502847765239137759576904342149209911111810554737618622117115161203175977807157717377882896513018396148983365368498869853740283619420167756571284960622025906114721390273865860922403015357946805469371458258528204682306432608701985219641611445267881425448171344823066168081626740862591975537645140347505174033083278830756400651405875598822178373572633594781060764719699996552394924438738115108046289994700771506750734803033034902519917363357968642970475979780720572439130282948524280322183480627817681359010536562354679634200106304315239834261463817385536695458807861800282624529587848965533385518405938007977593837455528968101905955927322640671958363364290390136985987027713372308948963981898766893206924806485629339637747461869866030060466609289746777347817728765284230940427979828864293882159872115450105743289182624970796679940173719153344019410472539690845208953857896785225788619322934565370052177231582503827866398585359597680547694575419631285461393617251602888408800539069606593797282686615551023251111451506968196786201132537925486333251537074687344576909460804646729170958853770143918089193115957810655698944050973547662298183702167655715259567517739927712898290508075339644924213317213827129531421914978491169151937357715099072798162304212671093633044603098298479153756709027136272252141201288821085669920036216818847010526003660754210490582402061686275869515429495061972531448334395132515539748204096045492184003623913803340652023664325082704648426476388031900812343370783390702273552960150236303493683013750655689164388484076054785029438065199956075686237703728100513741192344740080174800741882241999284743313294531562194797309440657406788973683253372098903117852300604020538118474461516011880182176147858396421175792814294362823503414828534364120145124691777359239731137405521249061737652656488416317370325964981167534398822442190378620977194610282633118086926498790670600110011903650429388603194158631717072927371196065481118884657624953333756120786058702854808044692873021339682495768449499305505066486997483975236039950633699062272894276973245803520788755486136131128118072643942366065206821501727314231662976876109967277181350492648254434128378619101277610170659182539442187299528098100920965858797215494045586994808670182756243509424714728729825590970935071497813825119008224594589907794580761645153372960505254042049464292128452488835830043777367945479589621447034199242705512739022138679019244744798094260929862928707304087768947703701232910920149846051676130912579669483240721884066557852963070870373944118451558804741063045037213132342850674878241624757423803657766722221130954891119565289805825155778294873783450911558263250706740151810679414278394624263424993635555681518327798404809251951027905793415579043233934961859922671451496417338257523236614757185431786010412253122798451133972144273748067531897573883394200338660894334098669380607957248856432764751084881942309928560041149345702345709949084263498801509182391819497251057522224538557886703388501228801194110215933308287130718680436749748463065548753230370823478031832685741877309318500522442825389274479876973887441811376811182205405675628045999395147829266696785526851971648672477602171292111323681940786421134126629719820065550768320215071381386610953538922581206246139141987719775075726391888794082421591318665574798992915178730198194599695551387089825086259893466384663743006432453870854200073101623791303131740464616913244053595511219661288322908552931013664424480769196954962269989544421966637424548159333499217350880979169439679686728113849109999180731568469441026663162761380514893126726292200063233694181863972262401107905246093618625779408986294656965194592321331058615894704576525626891072169126421010092344978446717235235902087949227935871158090742014260987496654125904392613818458938391751076147889766641358812409274377586284008529357612280708133784036455078689870265978061659951486731733779475702479556495948591830912228763317783920606153591529970725437433798028784284528624952557595742427066429334486112102782671581909173826580060588001992421346139067573483815394312090096465407933223743634183898886730681757234384293203654739004515074923457992933193408379950222475625097334479603268384026762638077531560561664295462854714064580168737168552993489512356584532184789458193741097325517270087528424638595502596642786098046891878697620473045253319889035915129882290699951679390253636690048600714938553846119378901435985577032953551308774783818170801944910086053731079581747466244876369453754463192474386425992119138412693910441167633051545796864099624321821481638302445221247449019727942307739098437841314066407275438920653896158722458250226590652698837418753616396852374557638404476325724260421219737800206395468269639596775137233606401060594787999317130530268672702329682111808645533605547356450056595255277190132353355839810699152789149055379852068457165179130302926615332114871426227899854526027765785064301881698748432789366046009705503703916786519525438526731845993253294830803910540128910990755692857175823789100963933956940385418246383114756364760369996995564625452748536834903891693515242302722370016051463138462694975566840189565943106925589486961848605914530873866504761828189647210417439821088885720708720014310266076071656850833861087258875425780799825713261547416316596671650704296029580858664568141317014402057633948789284482026062747747929562764619022049493475412438189737318504230054343999468601824143775853391397126512906762008295289153647405899266509354525624986446975777450783853617834174386760880150443472422433733599001285950896544580942931269697108518750314426972042653227363698654889604702505455513121189400208016617515868319661337511224790928096352480421877798771829233226730902785691923697549504209258781571531656799261370795282392484487074730148716078510686248507069741124505948088042643600889982896171920681270002383946665634475060619013070526043256806535498971173333197017039775667333979453841372410358488624453871120245668266721030596945668294039545458400755112763834651985993380070940824262748022237736803391772902726464549885462761125149218794132791120686699937234763887586064574877416089489809513928366615082486056986091505286162915224497606306652479304989270189240738924760749768420157925009668499298362720344463046841901511274299449071451644141683295358404117759419794506519577679616620110650836400093386522984047847474488530168636430674990988007841544304410810648905326342186063422233477919348556394817029661756024140508314150055764383194468100580540173686121912386626625360575278260033626853188281151034470806617702503098572735507004764364488145750985199834425701099261662866587927655928645947952775875911118178425877909349447537779084345711383894938332241491730067973780247942741719409381077188821926613541263085474869839232593589978189508626297643318086944653254627133999034791801243973478436755301421514147349748383289285744841854084649487127688966117225106748328631187992474458857240369473866860230738444876532165871971242553486581590000507288565477893427266302937675810612386557804873911981737328089596293364085577918058336905924297184130025615446916073010418555402306774330668886885128827403983923743048989985087618310479279026847004751831408963994184808849064867524396389572183809743413294322627430362578204643774818190377096692031504290527311450270972083375354250557999868746345557867676268719276042706064286582427568528313793979642802076351268853102214060430860718481804036142005300414896789484695789391326275272951592123880281781607125563271399134402051379315506649883161850373407772797600845172492470300068915195970830845222287250975173718457746627428662512026151675429257397036203281666200773602929162629027832194569248840654093461540367766614474890227715665272422398904943280885537157335491909868917447053987061733797954463120142845817503384099301020887014532750466156994003417685041745265967398897424424426538720082268052360615063021293391867812718562911304661462351484275146067201504780132906255151263731996879294238162348497729938019649314590181674370314495997137812312624842870729622225416760603372815150482686345389027085063620830247491605293395451519933576016605839450861984295309433169486521561844707998913932856528836851390897284420468434346182111217529316746386440355949587836488554366022702175073425939433274015123550432486350874661087267096615217225491057434259319270869535113238055297873539675633889398579888901623057363401599016864653356488805491462434486372788074781687042963352115977521106785695670939668433500593621273744116922081365349191809236329405967857670256992975544063311484045852358364212031246929402241957821365430591048187871068194060698106295776639151054125504951983494776334404107263080415800861617489324990650446415189747821042937345692285557568508804580750509434328231374440155464843220028064771382201450771254814534080921306656144093427119959708311510630856436311608238989376032377022029828734490768937287327186704189136097328370428629066190951171928428887148745299795012643146432182062660351813795551209271407209931499660076326059970463840717566695525357140963969854612322113434463216276039791474434907723525236998614753978073403776256734348324155367490019211729812663638841737310517660886356160325209672540795047736375828264667039878425225539234276675929902920671700921972195814914759828197316779719970779284326213028105095212160952422560821953251403806245110406797798297266138836133659008666911076323398793328032122646862706686558357862652035712550008650319219339444545667683816590415296838197410941284948557939395398181113118965419258331950485044302468500130351918351826016410138583858687589216684573912519106478466036680227632329986331617113327263084785765373257685253777422365655691788975499451711952924060638569971423046960769113458325854729186941376254897458508427973816088074711890009814465741664310970343953882459144937156597412333361526983751436928447052508065803945606862263242686170861611568242778947656782104826402830096682434068452716377926192207675997119693049417977964003516176672904021664150706015010124662604078142591508576067634570550364829030907888636833500160842718782057369508150475326111994704558067677494898676825219251606204920889208408031927687754956280528463125795010849239491731818538702495016408233301272546260804131340630059627729687211336699529327353176884772474877705811457789329651683024875591423939877156203261741080095525951114642502959568909487627608678430644620218737105696386977246547648020373448095795498935056700178565869717468339852755243600894105596230263964102397389432018953275484258907367820032014271224191866648475434893651133292923779240325949815623037189534308645340787106328672081754202042103767111491712757131597701434631441945712505729249528346694027833803335922305524509317853888972604792961499505361521153079159073627609347115318451556204691486898598860590747111250823919267640188823336639026804637152391573951085337464430902649988816391505954966586124242473318685320597329924009199974207913835702864029626969015243567966207592582579671305924970200483265946755139686570155269230790338226974559691293183533050113771262723012319683838172937395894354596411519508464631604844626389972231143515098700106922699511769846228243715570078518939669714258678831248250446237029251917773108453874762136211463339965372929108275526758956993964059634349125195924831874672265012216334766500331765657442200916437235027885013032582351311425278180626039627203847214251815236770848686041130138229686043544299081902756870226532802271315577858847517979893941055247478944786302214010548088608667391934780384659444267857678143903472694262393944021509638122036754434900230725702421796000077182238308829515183083712230488530428274199573422108532589473471276571903167247103340605010724812495214569590631829875738132491987685831060014825974378958612191551189298368889468019103232234764176738341432059583852286783340853729580458980661706133945452075216276126237197828170514364890457793095942662372804838293910011683388661810592498742970278856113699436148131525628349751237897265216569054507624370152593519726155149484573225248362189023493801147377170996915034921813769233912877684307810708762372585108979238665575613317444075538832473984864197106341539828914387283511155053901730807179686019106246317932411570912239464720178298601852864191336838107452618630663805892509142879557261931519020865536835201005855998848905764157883841325850878446607951654007320165612659015740663080925019765726855583969820302603777673168116491746066293538392829397267264847389069420406691690164257015686402171473073508311408184819618417823315461089684029892359849484581215060195014657173385401801312670507587471588969651756108654149343540309083752860375337400273525501799443020341754875911633279265738340027026279027770902335323343827203994852331447216414379817208371817349349109346996894291832703165596458642432675126703751892657692958817317946482288691576837030410939394592704593476856537717324449985511346053385697695915582956727001257644133288065990904467287183834935558107940571425839333412755319097416785682844341239437042633035893191807939375082251209507807709715123903279090256517222489012761831637299481843801739044216623288492639349184850328739346254303857024805879453120221482938182830417218620292038781934819914726499952785428883997075793052559182013521162673449741292205284286309332515421571818597027482253433146727914807273757909519973665136325183813718389522914398712597091178070700528791478099756602608280731529398515857344192385997980896167759345490092045944833140973008768632189951502922438938705074197233485006443166389163423375040741506031902361752294107357036072760241317427692403428946571337644782983329038058179062176282611969782943967554030014481738860973596833660964457966893190140625751693147514689703304219733840843236679250463959928144323306364560865400327443728812275412176977634628673494315051399397906530515052416760246801411075215047590757138202825310351654513100499371360383300802890185316995010981774694105106654053879923804216881914608153673050613740254588904663241903275740153513392269574761147616506018163890046982507309745717996744325156981744395040508026008923674347996000226797073772290379598650848691546838634552203731243878879655844164370610815312977103150836177583467430104032966249311576791701675053599593450842724464375829279158074601339972473978507203798084249944554159593467910062362997600916563689606502959050398980890124085351497231893012385172001140011052283862300023523110404085312435195011171698859048592459002011116975135559900766379422618655141062122555659135242677387296755036857154631536553684330199971953781317781683987764171117214523082761047911365537160053476037098945129732321039708663183437722448025595693898637237600793138461148505147535640524047921595604716904741934240939620362918842153443927774331395801526450943129328553426838409626458269190293435381454487617745897840497984199630204564752970702824715773046918346195568067582962018023595959117437287747427953293108589236166040267444628933543108610564252365752299994155612601245868557964136786550117113488781990884885653717972554037469522547658727889167905148572072646378724276951888195173108159399112938636438530905287368913803962780171740204086808947835814469513511910235159899194378032402500537445501806491473467295739107559133816293498729447812473521197720957122307377720972649218148315299802357966083982575513881750857199788785876371734774414830494616322821829717064937129849596270598728123630161970450427262999026785346265208029760032278122908663760785671480687615427919799499179966848186383392968652982916653942007820459805935813632718394181164287419874946368818643430746794551461743792611341482096107498976331639351695360119040330679791239854693448598648951085291998369835985847936374218283575826742080900366554883970491669649086082445834969716778057848327386223382159430308475293040314958775284623260330063320504133462722638361902487159657984450606461392364803334609896053192710482891420836779102147561969573257974857305672671283152649043622055950058797361352153146328920274224381050927025274460460093602973417766688298419110828362143908375551103035725655556185903222418922164631650901293648036036624443693431749912521457378727966828682422552348839463169910138784911416947779635235867292276777272576257885682309921967318512065814190444658025298751664561338015175117198531761150350586918366607419917011490744273701234091314963007842785326335096622158462244917192803637973571104718383986368980754095856496902681151921797841405659573486233053872500531466186993065236452814431201302385263762589741911536097038851070514255866590373074215057591081868717413948571396257137194589840291674763120244385866705319417729326161006049814586276518508377802083953061507022938133765286046386764444902009146952134079636259514003710124149146588471917341045858683717016473841256198956169584647311820943378956456325957356988289503339843090844221494412173565785404396898393483948365336069948953620129915646738562803093765342591641810374517360912529134242496022671788601163677352048598804933429805450565505916686929397320368478390760736346822677937580528259941798931347119834472567559643263033709473401328895381762343679712477429214635363286649695369262009563972823712601058453707956382604012629422060834502413073109824205918823021865007430558494096714335346532012235648862972997903031649394353566861848297561607575211002048734534791842040143211152342518037686843164471991509896383032430597681176363560274832965634869461594700605905634810736577733391878493290980088504428167176379878830646141087668588803078995858751967234026613622512494868493319663636585945423619212425415478486047863206301315751842938657053547648718013520610496474627316205509045661767158839724187643824838391474160980149808451396778778315978125541807911888303197427481118178031415176014497230602048452299710089175663274911835228444176250259849064614945802157108524883283209195271580057856496787327475875588547780432252573681844039820706750033621815654028580694677941111028077479452839714265701527959173656635040036698838630950884894783860957996635534508746006765926147331177733722625768883673260061323194754092991299956336607592933833571248737948138887142630616274601912028774429699172204146938231281290961425377139875667261680923336219189396753983252514542617668045643769269556288710117942716864654781971761270624820398264269244451345510596482327027507628348433727695194921645091484109054746967287781604983873701223981012844545736117978306600954533141274817361101638179173910676414429602290275828353116484994868767998353131688563519576673884022745302690112612689809133297602202056898326276894955070648853586947410036770800233841726056000010626830665140827731725495693238492514249847616591918648911388847729455893053972077965767703512613529261627747265833006921968439061736032947719249943548150989244086146249512754345742847794718028612878986319482739641920028487423530593706988278861039745839834859838420464050429971797602607780181221070159851087730502470783552073732691512422313337182541991263538116822128769133569414614532440460530194314275453100854078530930382718272150397384964370740317868580614860460501106825243142776913048511462886697830682199668789926166169469713282003472363760742283819069555990663704947227173153416001420962637788004363180412238911969928966199194739341403565750181500615349846169872303659323687855882994221697675375633362382265983513050660153201974438181951832224651505933510216346082614034139811169689744402118303556417929864264445023357842630321446370333613787361841969645610355840556654300810340955539894005819168873589640355974251256989973662183566444455346063597459733174691770233062403889810812214090436026278151209030089456542746992481106172034773211180593723352032527688035659376247429798183126736199092854597284769884094044967833792320676726237795989910390414327131426371972737644166704746131231682019947134939495382454236112067912394538360840478249687561177543434934090396578114828374071279922419314523648470640316019904946370378984200696481427230323131235118840392010601523465860178048558611992365825079195319879496635536736178902496466184764800061935313749812684314700600013466405431515642666051494569331089842122374053884709681816198915147480387829968727054500040088163294120288335321354113839807839018404178910929060542760351445887112593600095012088750693153497922996078660540544702489663089771222999085888126871089531775419140548808548741968894457545238537988138370928555019284225839018585623760761571447452140270728050266471559827426275933489502296255662801321309538972733909384579469412149016644833478869753860499488766832282798978124395423138649027369633154844610832534711557997331217973983047582442038570208465513343748689665880991257097864913501629421731280694346049514095427253191464790371903589741846192079112261434806982884081984825001089461570453712161697125384179857151885714669713088852606816972531862726658258992598424334242482545051011733600507590151409996635357233407715378791543887397712713516437944212357433988003915991216631310445315351576668248664377965257999772667783971385303813962194829729608598452126038403252727812435879323506736101671156299752551117184349550102884722573330473420064462218266408760058628545246967758565939154205360095139827310008841605256473132931602057780249453287026408730126474373947260861271794184767500634049448025197353518443192235818678328002628135620802842409022241091876162828546546955972942996622365786093772312827167691471581338555078376980833757208853090876332101883322522005071597524129022705174315524332686046919504030205371696607129933970917237757984511301031629212916457823207687670384377554383964124008110180071488593593859846979314212305275090166704930423952619001385898159558762005889563094123699563976127968023492133439543642748483183474907650776400817208679325472544924174911743457175838927648818461767893192084313568738530737734486472278465562399226036291083889568944555116274410094649124516263040546303605869197124943564610956785626378342965912922736095491191443024295715585229049389926061341902129380663403616710067635528512344919114314201275905365581335724060663286089505890621313408610876333923479549880717695209107526737052948292913423712564601542035962606027933438950974621626276595938738492599393664876196588729231667187000537225339810055996372124973949950930174369973983476531036769444384126003522749082280667406640298393262815059217384024168906906528753131317083649524451591355246801709997652023747295347243737052252599494486894586987901559694965303401301456203680050766683651091354352419058690343085766951769486795538395176193247322027481327318211140091973715331171299254056896811441737816008572007507039678810765116065832997188662550505112363750077489384704376912431901790136667076884630847296398688411577140197144774962365074665807046267519584648497725736149550421325235662099422469906948000633995373751022088348274517802497834507142012525030988103750478878307210709684549330868671351238621302713779181350596968386058131731701332543255266987204062391887431258814755456274132847397940553794043578620571608460361882772312210663496411939652103999993599854287648913409693878533398092261905426985242290392303797913080686232186272585340525875943708244349683563101112338062910965578253979358261512261847086037953403300090529725829938577894749426073344808409124052821960795723086270457003026641362382721347503563757415066451055512377024936381465843469106194866618311160641705024366548203150457118015822838416585479284810341913515491708954160465211377979843028995761484492810360568380786546672533861628301336870912466761295910835730676228859719853832702593207995191166267560023210869001566183001881629646302027633444578073615746079683781383189187074157231329656951659501476492842023915359011500534310618955570528615965918198514757174216139938871892193734434643897921219006130672975573027752796706572377257286636162540802377670482818854505364420387070670479450386597062663722001284701648440351098535705724434029404453625164597464509216898367911626702651608454148442258434396929721055912241416251844068900587991044333330434231748281501160436724487571535518621423244137970945713905401156414226194674505970718058531850871622242717803609980361744656976889541123118379160997258031149932876596235656450705352849392638669608433399404743865860751579429749524420460935621202463845443189490673012352283414495644889981332622664271757671768672412364786323403810066852767095015289282113804196118227026085452674390021850164018706784963762044301797951207138929201277683824255210186900807181746974455664915514429154676792482634745026996394415224709413122342926829529335106706697273044276937118059433493636876789925451817446626980390693361025055583257183259817370647856021620205662399251892006823390356223241714132902488076282333219606694048751099866052304529741609613813225017038088915381056751819076975401623573329265683415117832024352809110534880955849795299140372481101380465577042111802155990673217684734294023182166623508054757046483749981553227503410071956737674403721055827524887743606716571294090483528604042959392920277482559725303772360529636430159010787930541524251190982722073216952330497653181290354678633059177913282491318762288804384296762378588771035888303680188996085084295961817169319104142132425440475767175213818571685349914669707180228515892699741736072937276687014256058613262765328166666507347211018523665509765491023776327276388311680083138819002093449918710638271276207889660891203732806757160073413398457252853796109804321660924017524503058669628736869234213739543767899650847825264285743256342940823546099593850257965624740194836959698922104185710851346928386824104901544806947620282395878717708093953974865477580936851730053410021400701293792776809843100624628584073762677934172509203580170903756076722380695107804743892515940861848956164756688577331194011813454381374722966657352710670813315583654103484908480367955862955243364706235134212133910597743700790204264832456702464400515632905238721771856565100857249401402426671928679730229148374172025240449301072048690318309719976141486531811168157553669037471665317430477536919139702832440074011776655184450805829621116363690311780176859448732061650487253472859079263456056214384624924907042483252493788925352401495350774000988499555093868874186205360061828056850408887096209481692361989002654673811628953625996384734431492942186718848328083231517219994427966968346299421752948672500483510354153481318900593574497122219077133210311161947172098044563742208684779130291188882542234998479530530890134868260690848243015846140492308003004185793607760907446692609137069904353567272522643103766543562939983919943641158998972444222246846400526847548719734224624091831130045595116882199140227875919847147327991657445018390637258939582050901912392989180795696072254106708554696372848144885204602594136617977389890078835596013550010922842367287089591247770218783516747503657375075153090756103599150162358648900332948320316783315903583244511119344471230308022248429165930562544371308449104118715843453499343515005407114323615930709816830139585242931804351997889282061948564085093962533838562144547416720576623850361114358448229342294349924514959575528289737027611777489397766825082774647097193249925751592524619224276896845605543138159143380570538934896330669199631320582442258170820601564106562769680538050142119578092910700778933451817185428423122146920265843076859597096547476377065077542800425342118876599575181359166071553718168728617518450505221457067614152871043819551686222410071787311707556006351856485325072668777864217861348241589415459184424759194165712758209726819338841577788272729957976246380046265102283576638118995572994233005397996102624266950436943581590137007781176186032597740702017088046979044565048216032008868133494278535069246833718104493465957236560805433590935960711876472928676042349888139333994135538559922392434695034252372210273520289975926225475048171976120945536904804752122911684039660337655929204763796591018495163024225260520327323605675541333039394540825577674184837361653609337279194445230818353920493780345695793350478466340943845059254790139481418753107802484233840383977131683192788572130317490781910037357431738706890299643918180001829475873899549133024340135789271746326227429067126674244959492545187755569366198505323894737833459309925925592852104544838052585921171491624089748344738206610510927030536388890568749227998849461933269376785812860864219201405916688156812534433572087262975949460250384037545854736849435054651801580574655713715393515527049595385459686417066713415029070047755591921439688098181733837364092235949492112761332371926722639232092199381308543907974600775582346245354303119422881248040583490557107059063888055729407408883233825834558624802649775854227937285236321405252274230183966495276472825365654678844999668192377986684486681065775906249096708706567555256826605890196316800068017923033857595762511861178822201243716500639769552866979060532565598688777103390943496532878228959706059941245447737386031474339787716831917106033061042795176306028843160120091528950342678260844074831278762322354389643589820225695687977898414079341974859791797039065254151538816586504752170477622221186166249165477160707113979970478543263994211942201101657415388089733277514271956223949914242109773736601528144212513606415050064624150092426544489407676010317602609370170446141426505283706798357798340755006040782697526371548496004310702823447591584123645849039337020586305306107082439937877196810461523166674720265160661373054846215853862314993958304336075181470236762374542880652769003278790185451182204567215516303475185258900317762538438345732029921966807569173213242206490959499555402205299879659808927435975974688601161200483316785729923689697445515367093704561691038889408981357973336283883333414937889649493724627435301145504500397259371634546841134381305061877438073118940085973250006318445151340305030542033466534253614671685728800342040514999934465560254804545377157127208430633071979974465723715214716153368577924255665394567520309179569814818830593882800835645110841166075204229589715596359400985379752129336789928701879031277046619635063871406988106852704886065929122682889628458514544836025720399345679478893067255162387262792584445926449645536456964002540504496157458306085602311696304628725693282756709958402469079303809620547409050145483049379672454907864267543801556532151621276451939343855287296993332501633773994204628848487409722597578026049441539181302945573661824438089951856387993260961414541570313135677831511243610822147197300564084340537365320367868818679525443748555125643686914557668841340305593191673981961360296402104494587635484769774176640871774677197090142726569188576794695092074888187432693857143932839259652893864206961774258615955416924319532661720780055275764765293990292017366798525973409742519798474771541655554997770661703303259038116764992423631483419436861715501843570594570169430292724720261947505615603744039412846717378429515891913750034398964046648937501675490530330085019604971799471119797811756070554849344558274377853586605005501275072048997553998204433263425639312151858403241068098093358959553865329487314442731414313442164174295787771959534704506091479358743864231977369286098624109819463628465379430001743424755598966433216405280124990297192176584404582975461255124218694474448154780225771403449334379111335183528373905426643448888557064008258781669122897317620164149840419555702369852320883270763265004171134907578512593269977463171375508937693812992355178307149319193408968977164345115273168549236967504993920654841805582046570041322867653206043733997625618545525460779745740092054427407394923283984940856910401735901937114632528954567231646380101729694813705073494327124798821366671496971002304557826884160397968478973628182001241438162141732270868841215893880883940551256247346864129713753994902132692910982225119355872287405315710936012340889010863358366231379801557964181003378508003684711312969423009475392827519237812910599417647271995257177722351357060004252297396162019460310521402883580465307718528324633947063409673990386821064982954714075475017658542359339472000053982191798588504375386002784865736735213486515396034395841035460198636602846222279940407010863419987771096508749037280252321152703761930338105798525517628194330017333570686007808415042622947888814579587847577969360206086537942602378850150840380301817293828908966276316246199887689048242351676858500984039123845034387130256814615384497389384849819076152985912266370199095422969003326457392633933069701598760797656306030942333765832188363137765295054336079141193093686431262941356036273985461079934579027997197563520261353038179050433859545787507489701792551109569650960260811632730466225641750137704571928237234561101959859681209965487611580164793476974405334883835429919782161970958554682640370689357329100369149240574355856681865824678762544404486199448110213096446356810118338961286639880112170245178797289428283199236903445421489759429225667118203886549538450288520723082864703868402184131836261249461005281390064328222999597401373441928818196062461058232856843757048617410162247747075079336111905320786098386959985762231651956350614021139222977475419444147335639713419840666588981797586063156767988957259948947085024208126346569730902436824994584077804436279454549327185513978610587371509966949391410408245192497094096713285571219908494670308130049059680805428356338660311798171319847484846781681510485142566581506896815087171883991355659581979952935175944643511555965612909251828463960040800656265029910310635342702556467910295286734364679664627201413298646314981436885862968722995377933736756197881790405439126462948469471127289668379071763671803957286408783503564441561973290323232114217914026936263900127497386231737072832756737621889118167061714190932029054114857953126784351606744583996383462204846865725154216950650269518381627365033109597727880833115955808508224263514478987153043335120987129844531899734233358764277368414601956019055633670422949936743112135322511264790240427348520635234580923849803116828326582175225260140975757848224993456415246821476562917931677088683350887157100146320062979284792492983334301672253527386020439666452038517384108224305267917946878177634776604370612645986879846293867716738291350505857768589575337807593394208362982196844797330967614112542699033186087442396308585988451668276779627160022869648693985943351354438887157832710173299090998672851428880818372264835816926655315603090683973946437413367094740977353754274019865812539602307786050514778243596017793196088152964272841295845576511878411280340139435175468426110386682562687101386373939970769135452579026483175353551963482268021200080114712659063751251057137293094899175751119943048278411155419198726594512665948143854397041184908325843806320860328540403935746222562184796496507406019835796417112945773020001653503304293828151418757501186843627712915807066873827527118518940976041235048258470956571423674599810606240450457408870321651526939860814103867691294296880302975036118687155778411891196550392743550155415124143904553080741437553356047870528763450211006218466974848474821416551906657749508400410179113319584030060886713470960889149435390179466065879288091529193696823686883955888119285242135316053783494133597180771134119735511160266230205432075797205798932837585776604963037881799389298296518156891020552047819887522901347297291458334214012252041048044247502884086948558837126128352924275766406401384725253130296539930778635899807870543773442436743210270604209596203764834542494225944656554093215372568478241889935112991377187542930192172761581127401721553803565511089847302174533878056398329463517104977370553271447093407658502907676657586485648626491216001950317185158475166282081647546668870911056928075067841421478506660277718316316495175903684083372792038932878940363446244982172820581127031969855756071767872008923873168138922651172477496338766781436942462154618304424374250767129162701707610835478184338356981848201002817588566405947235885029607948211679415639139599898356039576731330605683354509994183848457852116520044960743822356965832896416413355746572828858750295239534289323935847603744319083179177146725510702644719284434669994436999298776830754180454759397962594912395398591708417670338005101496125310771751237749264404974660206870200330659279565272134739495380330175348442394847262346238947450443838914723543961196615650755646222519258314198383922255391629349676070249203336362837889442121255315320504837210836283752028473204953978112115477728243355732020671338976476027183626546943815715250896736843474871188610738578296910193350649507060630966105209118145237588312889756261364772221489459586510223128782051200889380072274905228935561094040720893410521034512070878407157780092522079668664501677754100512281999044984138376941314947656557610955606947711880925790918324391311655223195044385769605165194266529391951992327344527271351709477257005571595621507991837121417733420695640941325963265678603971020572214997093480197765717984966886967934420433580624283235592636771295705983851203098729995212890177692985746592594256276065706937617506004394948760223719076605431712656689450999546477062904435063386625562589433684567155270356797171518663448383973816609159694197750029479699288481621383472197955930652181547540290118053154344681578358153068896054109124511663483255012983563657062269458846647805946726757472942543289690777159945314593473661217677955616735874275428562141315719826585253219436811545433021903014107298560784437515417304323986344000707119673197985184443795086457780087894472062993804665536824225431140763186058366500565586065606422459060001056476973162526674613279618906824966191782356575274576228737443391345719444983737819029289219851630052093149419982532241343407291330697957455349997392353132430636384888690416358336004848700581484715664994905391482688669017160762510813265564160562591235865165198193125847596173954607063475751070494446635388598928191782348412230735260339481651513767146225412208790112895538442980595677527240753229223988191686367900224834369961686197190446255986602914426299536159103844623200985489412436672917239530466788600898074830738044436090655071512549791475129581594056218642027663370796590055266655669799564426326155753672772913736412695516408898398941987847864052182969752996859357421874280219253270038857773406650043126992633319049511807384928011148109643782984645010972354300318183637111948664574357022192228196461851279102418711084973647617066963494476823439416292622579947747298799184319618310806496563847260083910317222104514264928783482372001101867591743564926885826430405456651269078118345472392067200734877900720373755728827060895526526113344115028603202528832990598059810110702573478869684980493830044313389800836271022188622302861044924780580061690711929697075563633573021135409728747763604146871362151658822992448829014067464872830957828587784332466690479206492154197368634041162846350248324921896653323879257312524354393599087815177638190540272165396838502358726620431903835999257406389877360483820664489140395037428685187457746506202768458263819910944668006320088497984396937683574361144553682247291116249258887350693728248407366966582383396756657490032635440658972762739416040652474318531826861533605233346689916898131134083298446034244389621651936481737595620019466305554480808578071303255683067713436489665702428556594508849631104355051030882879125046604069634371912527162884185080292691918296975267120384931476313369961329889540454579600781042455335440515911103997827893397451095943745749042813162516430880620225511271153713580416256423764167703840540314703893671038678470884470417990917467356482842792543007301836339191388781870084399661817383003871342373725548105647618849753377328117500190500977516874341166118108533235629504956133924823930439446934428954259032218653712845745258990161035042201212441668488597160134995873115891974262227824776061511684627218733243001601734111441076504611673410464668134486708088401819233033260449831008944332542701617301638646861675999082722296533305058221684326969661315251071230198561420567689527547678024928044667156646719133015978591179944118014812705375612064122449040587410208388933432523647370096621617959169882216144048688967058372880037239145617000410263144943248820496158876130725878703935793022803829978972480493323270011002161442211823363720493579769511313890647207168659936380531714153267071120428632299811503404058316987344742083021347474329076735161980993467126063763398334435420447931795692635078363047498554759475499351378805725373099933778144840957194021724682476107963027697935714980667461427021524857193306639260020593897562301764861814639247499935849345013160309390704518745757184163832738364560029292766154216072087640210848030252539604311736231593678046260670712711727358676885737434928094220371763387814390572066522347005346865173571169215899125823848882369832616856638389831394934212478652769766045822914809068352800689089662055191943955226062593057122234767369360013009340392869291407703464982977055853205268355703434065917670687517838398999014525351347930222305402745141903363169455300035838128856071324280345166633543159063450459459079737643385940966871750662510178071953591887800404789049204731683781165755133577270378015712818495988962855829617386363845800029384831103443700134766403402848287110617194840990615227729319871925007738620383965686813523731602494011955361241277481711010903621138680294998267627168759440239939308585517628744392589428728958987155708645896814180304795079053853889581894986849149814226187515009996185829558756718133265513831787060416110830103098607211278247368714926520967091049400847632288615418482352449162790325423127302534672066420556607484040226826502188047884525279265305149538863243982900926924488491234483187462550951408985535745303921783133228000352936050568629015084501290683076158844686332864358100304225188615639113811761776630748561713234625663399592449429471958427976408362397346857760949809901904262716262724968823361897085571529570321767753080356478058458040629453154305340717858913306836425089012771560452410687634951389473246451678248447568184767748351416105594924244812089301503055272797523112545279268311680883634078100498542363772582819067552082774818038530615761812837417589994511474940163267901954564907743901538922622145244959654260043199540081520110246163897102913509667555769084980669796579703994026482672274259707352559711572453580899238995281538193898990058350040735583760172145730327497451615766537187038636143671332767940498785129379991818421873892050721697529706898552380652198825827362802661116835855804196307423585489182899302657958058150764807058175102510742257622013984464574729225682836065561994687401756811639140467323231274035041635662895411845180016591406571696592104522812857133930640834486101831726306335191885271592410606458569928273473785131657165964233447317783175815448322234170220904104879252689853120437996250443411591669642687467897851936046528964691474465116913097822516232760166060181547296737500730335539047493247900214153233455075838984017824428169260212714819706088105909066524694635200570148723882934238273492561583678829377497043328167617582535454951117669625213501156144515512161112904903680028928482703752229184087936619620177973401470876730532984611360351383619941282453624280037753874063899440890964699415275640474980609496278041420486818900543496928789214599282036308169391958210228445476395787413322820501299384041726527798983851849710271036807941127167711100035498256923306911144173669532625053721283639829807006552060250486068215626014742332761533296428137460401575019843587020845049560756232479141884226791964020524971357664947116467396320731291708060368471263590597729244995279734225222669933321234090580730696099057251323981023571682466416223775280170077918553913205351481200114943134126765567307365150924029637500770811357717836432412698278945930519877719373330183873195508461037821730286414084135630620446042274665013458056665664174612229215223206145020307644470179662722697186565191970881408943442685036029979458724335941596801762007560142057396039685462428719896310384415488503893775852714930966842529568633811521217685175933245488566934206253795267152119427128627482679140035764995430831583360414271454628894142304122151685800394333315911613708550495341411682783745202532367440115970971498032305110347497242387158422641067900790693934823123833958802082513344198786189375490887705560254678841747586080075744844537845207508640290589095773186986927779053178855107853405072681769106318846693671293081928956070120402644748703443868234949940771619342839271350527302949403081975866206440410503346935810818342370234986019528184391671099338711778807390300394897721092268734256743214557635873437819159078487559840696350781912831247309411744956161625521560741845476004607554135405010072665166128028996862229810349549816046171302317634316579994777477329256135497960456648106504786271063895399065254903497257913353506956604738563923298409715017945867449660878370163916342101095066141387894996767853991298989957479723009142939505983772356917235617022298102064992815274545128306588297053530248060390611291279006689664770128205308107164604002914225788335233294693817038384645412521526475450528005845222645304963785175247862540196278207852717540178294558458919415692600834087417293843933208425659958193662204681762941939092738548236867316754612991429643220858157868931245902028649814141958617104343305418352459771935058147123138808758767874974146092944064179791618341322005595565167280619344740712224063888274777533764626042912973186025674762647647108112196366827004501197394150474602363783752880960120791124517936204705291207201590579089872542396277036864532330920936062305276969664315811356671456767099985090427828970661617269604778719550956143307918092696805097584575772334749918888622118174379212142415909773362468310940370631979567908871774774743939999912145948419723395488129675593249661390305144767451195894122660608160163917576387130666865292073373321471422433603756687481441727824809283410393083653470429966288558370625641483682178639003491648078880264476547922266615156096831303421751817880330470120779866364028851504728336805079216556725882617975661424087519601712741815113766734779567275993189672890133344475583715745660290988135694085198328220336486564544905121312043110031129702219207659913971750550736311462003872808328949800691806884124178136181166178971747400195477004219585918798123386213284751364163982576028140292464944495567003739364544777825048254013622263878369621866540534786045187996566413563011171680555952911129086887610359044224395411178468111282742328790107352085452903763880170758359030560279594190132428777547417089639870121416535670499420407004503478748120578808067381747253023408697181371321534032056271797318907262189317621983657197146507581449043564190491472836396789267905204347026067251646185117117630535389070441393474882882357467785597633728687937008933495419318694231648876958474417081071886909230548999670040889464332637023312767411178494856610075971293297186101532504017417198231294592562165829368947590360720287540124590973654775858933160682514852678400950016111378490404039568343183852310972835290345684802203343105603060439632336769452397974758829980889613779020384531152877307644986038801797575312270254705200221283945653413555100914488231241593635810886837416262484637289550798345623566885348435829314313020249606386118432277012855932914005535233748337043813072729994813753314130551641610508407543859311810312575047800332693519127887820835584681951150345392321180670925752808611216786103077055803618925883926355693863703138841274880244990568790942414233635321937942246247025104500736422108534354032457589748789689384083889935652822254338974428445387255160355509715883806393815369287105275804932688845624255852691617464048302402569488857192179034227117482065732110848130173641386089124095079934496364538621928669152531234344421619127110861394842933982102599332601729120299598264002511340495415395032023024897977665742277932003614513222512605813634484382824396054843607803939073138191038349621969815609092490259608789982856637105124028300427737089473454589154506691174315101576840531341414282062657082871350231454876772979627460524921318959829576639658932873701801389403055486628008083858177721483400083542426294447639445504294813081477193868506326871101763674678675782542275829981268162837224439484996432488943008085137530314159281794870069322708052996500326006244494273175916910853644280978424401503702373504197083317659221757920109036572372546312188199206917116868064640440297560360308744934190928963325379700429592842591349124300051682486048005744416536011830490044621260793484838621993339927307222223673346993258443847334784944797540420221214667881672580359386270064125995986192395326941535482542176146729500696788007514872816741034350489692902534410681812722292119455808650557677014469022569361995131227524615791605908511800470935365078681752123468687531608679872155248694791415642756848854623558247962659055920615163305782344372535870206708079799556996863317613241383512074447398625987527703585343704471111844781312941002505299031829185428351861345231317258363244754145019196534479466392236598072505226096196105841020219409184517115477819107211837394911091257735300335474107807201637726979531820472783772078790768426655150943694441679912488906118427912529701745357566204794410953437998369273412399096834770592724861476633632605614121643200268855773379533324023367475719089534372497114840103296944514927550898397079750307661560763500105508469989646525904176101802690322435992945991439791576422760613941636964330559473620502745232952424239940334745558476692266062216558685427950019938946738015909412039546250133335781962883829522498809056116835267467365735283871020401450196883872391068851764726302139397406181967950081640540519218673243060361358054913338781593401902800858283547045613017340325004970018948345045897055934687881079672559026330339645482728516987256188996916618156918245674279146470039009424430479980150939209682060996434006411558986278741793198851166861588356507012788541318027927939579233096241193870684796913430677063041485167407990278697925514611908759442734471784263024820993730950942338370162859292417969154240273774650972180048754202066921087448360575584382722148730850390649662650967330797193782387376191993131715943817230304796289561731094632586152950407795487525282254308864369785303911234952975751163421047587294358763136698223880823519871017954986973712874537807740649944334383071261669336707298300706978770088711167110033103812223075027580460680151279330741172112960066886591478826069308403865831170784946322526765688326044557588145105981461311207045200803914534877079614150243560310300645953508569735878987650769522522708960017616917734249229532871033925019121214681353134906669630311653510889641956752890817030042658170893045882831978023693848979462707939509464754308850281644781036105598582765945144057421717741482780839372242934486978844256682364926855173182834285853266205608743760567635394320876602139565310189355667268457309745045759007661182927933757126078113874862273875125543808456456958800757926205078769921965703227279648120040642593849327855869755029699177087931472724252819711857132237567802614541562441201661587082791884845343247722250720710296601193785601981762251097771108586350193489385283801349273310715210136540952655162457997586290597329486544816019410673371924482479752013763112381628800199885274039879873895899099080529698114057412024339847929085062836741949455409347582005466113074421227693354976310727759801398392324846830902761330468043461755110922769183570071906551439734192513376460381560451268461662017571259214503912493038549810539087849268304532490630158698887537551715429349909919038947448458912652663432747509902940478739178926333347827177528167058520986485062655908494304642802011264163469078751366731816913958785549923890279402227176326237037772407030363109818734096530145845085916247925505091334430825726343307323683759620452053363801280062019739359891890142670408675665644149185594619663662512824288865279639613199217534869087901748350594519102529837073507279293336370638070536311851679301376701019181222660217961101114976234582195980744525823426925591042423939746655672928401586008742486475354170634349775146661250081750221672096838526023230075497641833409080152735082905590170923291092882257823878585767364176332496922349263235238411798227617569862242113458581602030164945566637241729500775821008621020105709386006573113530959396118233950317744335048698348499294627005205977320042758838269734304543754650145941303130680912052457407046536043805707180490189555144315533193306049852628646310728157263147466578261863771649827122522305331274722994262401796753117727565841649540710199555012824857693358460348206452711454148365451692594341802713354482272133011278822201004890287453781191506806612543877196463949055945325476617927009219997241214084101362534378635976462048473951541314154877657216217485770347569555306626341127109624652205765129977500508693007232345036562759930260981316358494005368528391346567858822952829914232048026073700873080810197859682208317757973409554907533882811125250254477538197928837218884464673079317922437085488542178051093737892330524000124630764274283165430286737982664094779150425931228729349800629715149645799837255644220479180219181253560576153216053491863875417157627516545007945721242063227043259645102253139173000733803006692227675718420600397406834259996544874498540589775777477743384722828409135904232314368283316510406263125356770844926191580263465236206444432296212880171578661183565517242570568924651371623356021593952906827777787792025938902830456002869118025121869394542601729004551521807250890357292190207461119459623037938597960304175785914837383103232269613037828652545571939128236525986944238944328935381724165138301190005587475289860566474913176235546300326329374494745082562913495805388550951518915472396372793727373767060130188040309513894479546355812502232431838609237252639899100586815680220852420305575322790929263045225651602358411086659690380434614827005525157172297765350247424794226084953361698738674539864570336856938094791667648645529283454510576573160686640952450671162814779691854692395211214456428069044891902718757986265158506738442930124060780004636288735416657829124273012002615095660917346005051344195838775310169522902664750846963336184476224411039497586926791432058674071297866815866249438661033484328315756747709032596308447058435903316411502043072608872962007931340699552038455758807464624785303014102238083369865867571720832299015247861376411033975854941328656572712798980325574605585239709886910439163857718193697224696037922185552691713623230179636156827193725491245886482129048525459643197151810828764039981012077100155978103177130320352677071498973379239910532143054690043743032328468085197940988736742627307377009467873921271649098963721686996929798699871382172227906049884341705335612545505530576264589830073893391844104168994905606969154066560775638364119096719049755098160977740209996896877571420391094084710430798680333165294434627281960111353289129302171384750688291697208647077370323899083545858352661053639269791261727257660936575078900915517807653214780796063915304105571787476404664762984652194501756488418717935341848452146622713836492061664667987826552609408190059721477502568633325054481723108243868249273849008729583338863777774335609072798472288547321907902243605857272351866130564281758705992985047010403329958855125502548588933598327476213073123612301544548428067950287038198850227642360633518982531809823766263451578584861897846181370384376566500920511045610577464789742795993221698662578151117901499149492960053788712419998394246286816100977302301634864207436031872849714639137026344622338055223611829381301725731526281079201661303999677115340866734042183596427824049112897381043359253846568226842820204645422438169622663149346103687516297022868599402443073011535420567178028064164523839807350367016479908773362440241227390442918025717462598495138386312616965592562020573755014463212781372853425946162275455521794762668460666764883607910261559104989423854408757581945466752920637469811033598911025097465233124563608664086693277797615970416465510038765129217940821361137167818749777402180864921160982592196215755015936098968492144151465591848197960550989027801269523316137927392390150345437296154348746149374331487685177438185799261518281057110607165754322025362534423748840969343589161464170245395006507963443184139709286688684570921983060254163395929317565362884266914444291051735847354099349348665805746735756034772014578382254688131174291440214452812352710844710184622780019696809138098662490937118649659897528276931843180434998373935617051330127470302367750195608301647027496159754846700781815885356386771791014333768289411188190170018442408611221600023854305159764744132487868774805475635058368031131132672483879720620415588761092309137451745566244963000938805463663390052920844067823015576915114367506567883894244643537178342415324129439710272696698807575465762572943359868688265729306768701545587090607484914906444104096784084281798668704949189779278594280326984905805858157794743104993362873698913243839456944796541306292240069750065324985895731006713946111197434890571876595699091551794850891721858167307244107401945756790061622183918233441909840270894057684734155698798840768430116028574867519226250716971525752597261334262230068850535414153426342540423068948109241663952361459922685317921495102586097630435547745635369585681329946985416587850641759783241836126865022209710013655437481110627193185289905523721755650510769481907838160893054495514316233590567050864980547186429470047475662505363243757020919831853692631163744973064328016185356349471274666686588446048904114797732982537018044460554536861164412262799803346824321822121568260214843727010873328795419485266913634656762446456189913683095083865944772214681025012410575405234146200942449551889774335733545248480314756364683652841268897022045050746688842945503727858115706044467018526075602669813649606931573666601928439652651291635825526037916677666583757848299240050162358018851602496756805002435226234289630744975019535834831980913610319494097742553783111428592809304300107192574195974697281133746407002205224065550024761025282682877245538228247297004504277104829205859278039450101335126319073488243780532368761782993282766153099315053632844460289175376490713620634335421629606028659555243382274090823143161601121075397808572665076805250882359484854509093433775898652437042146204379720985543480705397477257247586431336001276767747975989569754570973742279501785364589237559708891737826957613641083757360558157714759250813154195383754783534840342576024659868255114424710082384715058977788972600920886250734739349994603585584106923743267759680644145192223458947123553156060179898913255269054849276780576211937498326215474741318299837118906440020862057074793652839208593800396376671179958889265866450565781735135302077869041202111057741365103258931959146502191623617645948668920802276054335204638448343795496737279680490876995177201919774523252563920984346018880503987901652808508874395022912785610086966435094557826269549111958602458038718307324370566693669683411947271728389104891625879956609727062179846735312977307413646222827873396867440112430798315744403207765220076166821807633926131664067973103086061542394991763264254313584384580607460141274831757607325802156969443461761505664127207382677153077273841092778463751962081373542125034038444837153729063776196037822174758765818573342574477338752184056052317097350276051143588253800868932925536889681662552250384424703134377076551714949106949151648571139255570303472332116118492870506651995262654747994671730224200722443548164073872627806699114003444430703028131027033475041372917465567959695689857740778999639397505095197850586897012365695642690182497804168126180207200784600965641100465650285102040733108926105277853519391205389023669777973097002503321203680077605316880174576684290544771686135906138959745647998190151660216233646496814526445071082968551759925513850429129300945704168747846253118302006079205553961776052091469939215970523024336549358777878582221016110250821212099192789871308107465870809076226908778991347314101689242514883309392954560454808738774441035537346624658825640506470500601928118951726410386018825246284602050408410436344867817707002534878113352174598709765081266691423193924228465672987899526239996625521173174791028258280241489498752118410512744745828142861578177324551248457245775909258434504599267593612228485693166630880360270500864859866603735944753816418038148657730456190626593790399307814445717451193756834820347066244933272835746370124554666699834974299618357312211335115244531822371063011503580183216113985619912010094562125366137029198799256710605566587979500536294216690692565236288280095275499409330747243143756415803966688937439386986972063693446246289727024144403703132310332480741715400796780480147528002121293482393211168286215191579521712510045631850689304341235368060574499442275094061926888902784198237813092552070833316902635148730257635726125201531069310205341766398259429692153836189310942247857217562712708637308525377582903172285640466178374745813509397324554516823466233351832779150262699320483024561375078119942937473813695108333760682631193110098811980271400264682541252263564660153867765091860423056220194895736424962118022255766236030150444599336173602651380455205597818732553279307918668844651936909695455406549357101624715664887524577189320738179124969840290091385099654392552804900317981855779339633253051007500180373652708945404871445613848105945876507952085192620062776864205999015131233068772570947933266599618743094802036320817945942009156563629626861255284788637084283645868632132687374234793427295431010884128839014384415011775354754899907199178066518414203239291911322808969202426945094253849549011021044750755850386009792291113835361759250252851534296733251991706421803524919184658800883450278639396722392774214617703146694604420019269777177722344844741254638200704465185771292063055415448872073390663400294725596094736338388771214911451642925219457011709061157102627847182401300423417103794438476594246838072037784480521839257599151658530882751985215515299939858851097895993538583918566938368476017130893362982256335665884110949878002990940440024999539085858962927745543101850329749704581164339601959876521852704464838813237402365730834843039831080735934993966113726095662111289675323310308208332075787708189120886282833258069478735452326831301118570253586544375852922586785865451343230242376426809634292304593118382703077345574999259691840780604554909667747754383050349289436572983825844079798816910931667028562648578165865053831699798400596794976799887642817008534354356195274871963095590080540065434585060652193191262843620630924721190141766535167070733046047113254803063291568035387639758736720242086282842724513127064476641707178649092890653547232026957154803121507414264614735698733420772206629713841702041329222375960461348324232486224003704588619038030776531794514745611980190682411924418172254770913257698487592092474864317651549426862688748636525395848903977308205611204796757264782180055104985248651659998656348125296506332318996339552695100237798698552205995751138191641606929023295897957382315525667889021433946536860469973796584936367410652411286516334371417880144798430227397986535865530581260614967476915938391989075575315732087334407330633878857209239560073367758453117025158084928758148849411422233776839985970456517559404313890904484739823659567983149189692820801099065701327862343905574751014586925285897704386521503317538450109172339198175206307304698520981098864756472000585130115880903967104994367823413128523611403366976738397312323913134015107175909882675832351805354704909332177590132455915647046714236226070013231734675031477118427290839922100553824449371483756072125177655124051797776022819118662731392639264146058066549312794934110054784657237440287431445709672536916514366835787849298680219323479829779796868423703569553685178916284800007704260742891564890032250813650529435003986591009709961675507349166788395102904809850801634269232770376283709808987991548508152959391259745558966698184055098695101982737617148681099643636427493503516149582345556078501205422199150438713734138119188218759116923486125535849606020564332912564442269736545115233869141504254706146061656827650900092114660258131014538694760173560570618468329452083087164475226699688668393155883173391654578314074570565818824930707924990715821534183480902931429667751124213721527009481995704007395129885070395744435656856015233963336849010866741829131786693531254027436969784192093946404680169907146581924913509513213151560546549902518031955957837755613934282791574215074339062957446394166173983016230217606459558712015273329827102809713573164783841624032603723710831589312687987041926969772364100355440038227836839346249211655440462034951968563594496629587431417639346448990533435791659384464153677524130109706287577019232980887938016182054995526677839551310853181343743558192393720770636981801334487661630860131047137456494096356799242709235489349305092265628722607562900527926899102578213503574805864157989314994382390477763212972915705333028053485355678594105952750189256237961748236274520840291543115998868933731395375781800637903166956893654474273091826661248904947891167479198913620528772776898765406621771117743268834331590310175540394100313883003157783260856576013551213322588964395705974969587558653881925540246796067819967852169779611127019770426405909952307189576649079290345570900163029985512832955075531803941417284684141340932395435460636973819423982263394060905488488405597248717922465657047550547177187712031453878136050305750029360889658146197887168652121119038048955996757977478998164659855265996623169386667075445304354949428104202282590584780527069057198763388731209698678850949072098067421655260057805490669923466152937144677423504433830568601274207535091177313348698948054770831371085934569727474287608885451269048096866125737515066291594829752161589883933812852014562361116994273677992508737552277330060237770021957904189625956096328956030250325436788463800667194732909136145103852709515036388523662467603633009109774036150989057825665480598973855994123312215119390164640935046474423499272108482498134252816654415808576172696789062493704074024755972405387759879454576693018126593143706954800463960999692635324011358558776149585321358086666439268232425555628904685169104870958885357034113023042180158334912339202916488688570348566858572240954353818493798286405629806530932523184345566640095164397896365098887330363862053996659162863729985331268842550120760841658632591306015919606230526913203781621691488011503622221366601779431932353995969414063938164491350070574756384855248196143909568953041918655480937306311422671972317586983697000970223256954224593997558136383900703582749400104164246149314852046062411605471732001808716600707196676531941978027335860465429709625166489633301145194038337642836921081478926314086720487536427357003879606177382594845485155336206369321953060594509657241715872303402623255605272242082550344110015797381211503083820282594971829273017971429819020791675288195087103463264087940729165685717069538604533782787298535984816328311582710913836732967950039424072978755541017713477630038154096911944774444575237967355754680607350113967094604002184801930030838646027753215612456351336560051005371893179121269388942135091149035245444072544293809041200792528534443200147480114376496445385958027635435524683822596428189655951705732646296886503087627621389151861431555565937582021562175310776488715887471047733728957541804561436944867898992722714857120806997152357417302117297088131100163033794388181492615805988046435954999720207456011364131739605747699505917153925251975739107095304004966018283639395060091121115302206242959616786259582804011977701069761316481062926242460218277025093515718138538369458781964803877729055435662122606582361595437883662430037677162960011099657428975969511178042847468414117653546538429124750131636816722401254784546741249516889701958157873395249122896912648917103814195322679426254717822332451335464510341755811064661888013108642903408673621972329179047781751412663673742856019203129434553120465810803131607706373663630579409724079125244167004873788062485308518772010050248189559215409629801379618088690053150334759622115756798772959342224363850115986890397529423687893836184982278237840501430507410683388639839247678835823974282154077252233428213368080462314601118482614221835092220182269345287444214183652519072667231794380023552915837320633899054481358701305360209804244689788867888362207438051456806726938880031293822575611071191237189412131693236795970231612853979770215931914052508861669106673204457723849765608919071605031628848818912719575469061342093559836305710571300758754910135554016581430541062440498832246421121088996439820150411397127579347209336072715728864993421361920781446855675157857580354967478892398275037972544964467885857745116568473765949024640142688349895156013642034231593331822009686625021191045553579738585484391697770890543225172025768879023112162874886231192270867245661845858475516339405841146736650485063226899223235394507988181437835221448642138572328198039006743826400409095796258527368505690836854495732530974979996168318227633863553261616207326363392659504051011170612538218763932710097754938840519255197160709156505650978814357254547694824277552737000099470471996713714020817208763225669920667559032705310566071772217702241405726827327478825413279295262515161668230088787124757141384836656811926489811278066813504214304935954063714864594656017565943840568631679541910259429010703442312578592302670167369942677697600140147905923846801124089820918336398192403513256001967059816353143417279040489830142671838015519328926549488809699149858127158434463716386588442889067816147605258012446287398214910994068087480125693371588368639159399019359987406492867988123543521260447366836583542723485420780775955980162213159181714106061072143203578240226206993283878924112374014026272266302888776498732287334912477903693439202018375335629927255814083804375323318038736482835986185979825805387235443623917434410937906396740959042246138241563200803719797804152969889415797663886921909254384925321678196778862079364189944973701223976770864568562616066397022967762785530687058377628227914479996004226398153600695570305689234250920511586697211907356211930313638330640097861587307463366363509100699203465109283023856421073519284222831643229997162786358107206821132994859734981153289122345928176724017151407996317569665341281756440077109426253786627935961909474832087917943991355281801642885830390790122757764080824996173438663068470462658040496109511540986982365025033076003241726710233424082396011492154823270047752100733712080215447923021261538397365264734649251774477597741859918804932998077550546538565585647090567958822954966038642652329668919633424374755824245150443038721855517936712746567985027084118004216333554750679517034225809082542206808493510873139325827230657384263958784923583793000128018438188317696919356946682297127731352222269953506599652842786670244754851834618273242168711572754000885579317964239961321574588644891717621304665539246435232186945534675993506302064867166721471411485150974866032655417179694543078723346869188358343942972127198957155707239296975513674600437517810290862519459578832322929244494699723537448154166627950965391751746020499779001839256785435662388387621761120740994389835745419977473024356057217993866299115512657463731269791367026744139707857725703517534425661063054824941193295159579268708452284102603870657785457730354308113647087161581752131737496529696943585860700913448721412078043878039172788876828855736848552816520628340567793070044747263454755959824660896272468713732891313107016751508537915990466418115162454990261512951282868653451025468525436688974289439234069679856388712750777639642098013358172039390076082294557853810774387535258154849819509576417974066009451405268853331534935593770403591774027013327351826586613643962294513181310761530426358613312469184119421250898182323036784032456430662773853563764580988823197535580685328025026633225085331334880652817589056753742838984967534390885752842820907283379065637639356135200004182169539501937050695990190791695332753541356748813119034127280668941088088309766218843461192328209537954200990392880953244018776901640012669454316552225214154733484572370116951328654454628788196649078387219330076853184041066167550587097934449845894872175305178970603839174004384097759115688827290372376708052452822143785315752300601715197032484739991922483518512908680871416067622920351601334739919976617480508263577688731376954444377295939801500740519689126630521126585703636652013122207411870268614283222046961307190818773213563128309714168077381038592046442288059347618705106453066535770655179338326802888377208429428847322535461903515324434867986173659146087682243760587749794861163721733861992111472762847168116574444869779078142240139482200309660579631308197541518417093650665464568650035150030252689207168574482773015366597325290500480190520600618382438633869167657480520466381425913803313840359365149338414840799848836281065196918927331308855645242361079889562688870803286907831292898268613199878684365807430231183230514751626601282085861355233651308366210909698275764724115350999379485254302992980332658103341629492266131430654952579904343278873252855592233602920601767904171516936436108669404373814256668291177963610453035094191095308328890855955789675821436557525921224476940251735861675694720007493905518331995941275531792524510251933640046230709910616547549385340764868760298975178212000885958584853281383201779281533440096165982721879892112098826356203833111090967340432785639402910342434121749782983261826857837676309669222820806884076632795208985413054833535087043096071580941554307818854756987076858156784959673704680800060427705031658361506399886249476399615623165757962078087000680033157104198584478864392210126225384788861029736511346230940658247147389478735377631971704393449891027784953937119160115089220909353880917294307978098549917888485683912327845696244862396455384818117308727884737798096487324606407936614322579755127802573010163014857892131282894489947907788699026993113036985318904298673061938398070220187916540479721753566814586325077336994363936109347770026150641627906548005788144455452775576965851019178017349905985130293884570002324168127937419558256055094373227542950193635003815060865573854137832923397763901892561353480603626615236270682217746075124416525888080396938990171785537776300894807873176236414619617628055851394437556429207147343905677326910262089592743938718274924168504317491483518134109881907825626886452853339251941213823427963873806849588893225590243793318089230115765196186775721718942203393614081077241612640448638925038991638501595205239124232639597691186698773304258581273478944150387084371113779719769589798508599302169940530214422440605197618036120645412725371227533097851423589885563379826155202936109836724898373530359528306408755411350800367074807296184623482803857498271294882312784875746408509272136184865463822721597134745344642471249942415199422804159982949212426460396610783385952593672175992200616542151342091288665165155416230410934676562468425599748430372515349444393592180592149521949739303678128374349333767115383341723149980349191968217154644913903855208479373850046015913045157504475635895273984876585826142563655962442613935407292802509496807829621684275954072561570134451732287198010320243971760640918104781985558183626146164419301716507181493724369969861768967153200634958632927117247757802618240016197079280565782967173491137645869867320424761151316172622622456334846253324024961587411927418542670794164294737880399637211213475742778099071592208990098532146761879480603074431244635563090445314895831356123005199172837956774759639876371065842865286348047392839437772581959291569463276941047156245361853054056952115592774979285280935815926873986419841867538433936094078120609977020313654361144836161855922225003142863383488233515508746540849691394252409823020490520059082795576746070298985609018827377935847368980121736248856763146694887587592197983363496793620934040651433721465801028463906351928232849417319216961470338887589701153645777272194003251124390361955688887386256600788410950857837984512512903738308086291654824164094647323700244565581958705054231128942766190146518889371791225313627638202780088326035839722896108534038232661884956666041716411545744806796482261197758326968010728864729067186005066744049769524035549604574552910326458562224367073204188214972204391052568993188159772462469717869720299273952477945065452576400104379278116236140029248591127312645135838038300060895798652300735561749602683188318810405486432112076417343405392290627865884462573989775147371376982980829054481487814477524864276761444811538116646943848150474813476845401658091273502698947474518991419900245044070876188696582764789260181004666090839397356221824279205095937250178335954334434881828654882873726675186658030293747864548234066331102548336096700553064025071478202088300485777973803806027683342808668990945116210058947931864161313738076726431796649417687560654305752910812994718010466849040320790497947472178245036297000661421618452552026897645960478532440626331892715970775264245082237221507314188299343928510515017401050665936099247765125710007967819652048294325117913902581158962763918938903864253526756766816464520216959073541694264085440970176931018071014219154107837667949572771173356816616452656005990268012179498087991335715913591600219543348466379819819816187698139366888105998689345627630067373624913320206802049959499395652578212351970304923967530765937405574111149004594512500906592148875707400286611603056093753117085417209314934432739742511727206284073408967479311698985973972504364865647165987519831480155739488186318236624434671354795902522988196891261043606583929583174922206942061490255264930027490163082673989419676077729559439657718262262714834584923360985042557315363241405691740745842411567024307316998369674440580667830994877587918007444150252826163963770564326299493885433103690113894048444578456064629257530442088119835780029282987145704640126982128367097134757661918482177283636813333923224334802024274519282007005016659524763011839722027849400981710426025835977881095644059558428723366801385359920739538004022087623222960559527458478735814510591727850146878304498427107058556147172092256876000070499041850703716412705775813160261530417026626774933476523822722232862705753044568740230799438715456862942145416005781478368532382851421442738412574963134971138803505141705476255469322868184328821262437251389084641446223300089821725644411050466108921674750891753093806074888877089303269600772031619125708869999950488114443449918767255806885101938712875977062551895011701028316994000612000906156546578052011454551005230058577614811237951512020736008550060604316728349022786677931441631987870148539909866450490315081311550223064179824944598669445754587310708817627792082779470702347079855483145309749696695786317704352569134642232622039822804495565161235353162634472103586620296516838702765496422969945344446131376959423818328405182820027917933470411958086010725474801807767722823486211850906574906896715346121939686775554082408507753419336043671098972742019709724926187614113805510224999503622419520976209623961600527131279884257774684432375562553567353400801054463671448317372925864203815870377452162447518867366360155366804204591091756117399678514754309716752490088074448850181836372338470171033703135057470450580136346643444630133779871620459249399708127950180409692057155432949376153688991108402341777658268966754771646899810382178346607946342349782765638267379351706315135974754245360256524816045673738415246319214852842709010150748406949055583262484041274876751335247045102269891425138668051040979125167840386253132071414662272318248925967703461993864558128789656987222611234090987341244951567798678545919717432639346543496166648298486815747813652470630385262524134035859773285245056403093481740679751021420168338828422936527299104570358510281223489723533872220659643729517580118547241691382515852655157618830086474126617834521632061884468401459474937402528897615051405596157846926747330598046182421381092215853116681060799865141376327952483426598811976036852315820457964794358720351996201290527075934605506066851390041724865085186324387018543839750037091270035724707852559627590512234080893325238083265697412913671084258942791296353773889353998755577285816914384294389778134605344946044647396009575076128074845623420820740725873632436899396975969284861629934620806395100828931985531145257985146040618647835777444943668492898460781049080322752531142181393126177813733706972352478678035095302518052824575738942063392225754412242730007094080673073666121077173929508025715428667165909129992012908968809290232391977505984832455568709145194575261652270578416850305746515386769192067782943101860323031564554545920838664091115653630086791513510911139670585237221556569141029023166216347616765703197517635608235309177161108692314450761551368107013573641437478405313958755023652403068585193274388441703266049833979937950637807054951806952788517643891331291856568077525379022921343661197701148588449474991733279990265086568276350329313883559646412423200408957451415916272211161943773267324504095137778652020266913011882429938067614543683227151122381483208041943128889771188579659674035793191203276824525094174609609872411650342442261028051020056408135427064917277084313802058580707411055737853531982826808016584090348121942244158850725317340273995314634839240541456593096225977111097082473832252941568783032685192974706075470504702172651599903005997260976652280988175816099825539570015014505831803786018455171511654665122735627299129772677468642370022680879173448561070299125184559649139792460746127317948394867623176100742803188792800162018979437329226433458363202181766597501525894191800953824303068976494405664862198542582207617707140453172683109817749341402285459759243424853718288772154464834351470846231983161289517026631483645273664352704532827584849768575707980058868095965509482356121347275457322937094281593372951470699277888307622229708454880886745628061091952919437423981226443577873371760228725213933055612472119106617345172638107646666513524631781423898249915889033102145061057853270984933954304797944189061437973962500673310693503375138618984756872754446789712476711628830807230923821053544811794493978512620221331651933852229646476399866345714245971722470517417327055755127316876962624705229938408240412245741831027571295980206799397470825412712527227756010557978919175840500574357911360731191788764397723511926873292128903313521039779144739078788019146870386824923436948671439302214062102157766818371660384161992137594837804687188775485331632725618880901556233292580341527294937740055645930940318831375982438363556664949104067426221473772756183539370270343706454718689657029712503384821780865520694511207318026545191317839799948842715237212148992984394159726842471295670031263684967140649844791671503640359875113128429960427493573467781042859332660544433863037591084496183935331658039438966359357972451864009208049630150632853109491305415569863983526491023793635951738263446527907304323561652317872421774448040110324457262261033259215492128135329775949145571895763144121449903237153572696045307454448372984859194448957191774290052736898202356725851347877428049561538890019081369173388603249563441871168576581664677698099247580467740865771925247099594080512662753957986140501527400555421593195564345238243892301742855785641094502244570156858374444982654974913704626142824807357645422427077873866139369796578151844588539793432378339295158896643181498083158573756322695324898246732932552940768367952875440559812542273481192941620271964806598995257444686739608900478248797500670442174432352407913507300360782880773238074831558931094666203614340544903965586970694157972999619256804132104542416434815079366704980487077776777295062353720132784841977232569892942023870029593156115425304321474149465541746191799237023952744952805502543210913457708629544006102715070639368299514618363696692452442360331973913172354546079920922086212767647392914096527129095831407904878160859182419326844557078065559953539010356465027587038955310628838029659758483307619019194869566156388330260822806264450756048046678699615618619448661378867865111211433485632430838237340595812429633725173986395839395898775771975513722258634232590383066886736535088214829135024339238045770788488931785368993001600894542153236989352526825802532496764572263435749101541875464343244514598332492451833667037536725055133607346125134154097603463943299301625137845951654443881064711762128520244212575582020505112448560561181547651435302573250069220731701623469189519598937776494500264630595617094062013541101000163752699070804756217894921441642342455560135529342679021715640148740636135476476408961698609896151794980632616798867352071429680888279163409501420063380183431158553082421233227422713394391617458228763710419625170039334315714287684401393773316180622613694982601421107964369320698305125367058736395364170836579219173354360586891162918740948421913185403439533971358994890469296097026497254907332580596528915362049324608671102417155720125366033499244650458518055088766925475540486338474004585235728732922271179675807979598606707785348538858718126358589654440495993832756134183498200647077899459791267798106884350158643737083208197013236176301706868589814999824724218816023750703969338478087876659333768051178924185192244022722892307090865844332651181548628409429343938096133626935064209606120089844078161948165453512897499752842547227696596734290370231533357951523815507772322186119533025508447989156928181355698993171483317508989465523121775320714445816507537067794319825253380780209135636904012871419604026803673635882382763532952561551241472631196267206542588060131832488140079167941258559756452745807280928300914630327921303788163965615231034216996320841073033165601742730222232409439204245233098142385618285707052344877018191554884445362251434194180259776481749795058779099530339080689011412237272244463519499400180906204952227267854815367881544536337919004068761773006965502305802325581660727093355443041695579908081218782207104156594770484306021521862894864371109868719928245241451702844067640444119549379666631947306459024476919343363686995448960294214443720906166535920981324445261951205816926028412697185314485447934973357562338992102776711279358365357617005928388465869104554451635352484628821587420000196649767303945299180500140233017096711510769595102492524077769720579731428311475368685172049115499379201693388239228898181934332962477374977323025051020079929762733005516727167894667182857676478305163549951025468048712165024456988017069258837705238195781020396539844092119004668269602606344384267889704437110314693012416976799359649312929337171029795313363487921446709087125622888693191197580443945144909396679961546790261241016231595299661866843373257648511779671189548751635025564944774507147858795412918316104111724405795340525381470834605511313255624722996344107162891194204628198450605465777917405000973296359879146020850529364997935681885518176458652944450356139536074308981117054836238910310163190761978664155714364431932385655334712694783189699398692420906772471313088020559450875954287757307219697832554792909159171397967404644282675183424035170444324670238883616345609728067830439654583541252139638352115873406843394124735074196076643081220867703812506105356096906461356685120233774144345492930119816304096707774920375466171890912236187230454432082998260745029947660277953616586303170311855279395196046508492946819580555099818845129291883324149458405935618282706213652117859510438041540312208362531619648587846245700705627723476499400797783908991143812100715640568717432427462265760821199113783363728510351863433023255698372339844342402441799861882615085378412823605653644028354835904103087114701451899740109544829875867254840135254138181506523697344075365024523638724817089847635577396610707813883912742854932831463773060233945553683602487737133101760411276174697091527511090466850885256318352478488658847697043910539311667769776089791708914729801361139269969462909094405447106512679155498830935909032830708357544831930431033957631775074172023246328301349437460611920670913879202926072025622359822985519765555427941684852300739405629095326753311959024036400638854376168401376048547667007710635687239904271823424042484191047371553586748430449160882486335183801004551667521304135902207077447171621896922347848798161750732401086436852792798253306410575756577600959040378713294769745216875993147289369242155534051430663482828214262784967259021685904534081209424726355327742183425058260397031103238877525233323307964309380362457614883313432035111499091614892926974878006015771649079228125566729689101513324922550631767669730581739908023192943505244019334105542286354460973313286588491713053026664839187011047848566805062508653769546341285397972926254356172262489475498788096335451613405830237349074498249502757969563280960409871870740654898197317304973991084493633008640300378691187022649121199991438523727790121488662242979664219681457568071648366840968670461706758502804680203150491757057796529796710021038577956709264724033038295617806720142377015560887718645017007764794078893464892201507775696231354271896224984654612152457116662516073927320683671164815290444760681776237164565984482476154430367766066179574844729839110444172761005122461074999007302492591095271668361829226681293175608728039430249088366867305847154000094763585324743744908140537329157096376609793004881737217488505713594949118043862753145615716814386636594396960298844519812605460296844519908577314843747055227490082115728235196514212213319104645775012620691517363052077803365551518227290904593658751841549632812737602421929742901495767399030358750064036949563546613650425813473582774389923908378044868798151826905362790396627191598683797438281151365852955300968724143186980354524335247467147783955441411524766814316823153463519842466494250415318944278850252393337607019030688656186432366359215138414491143798204472834889387294880728010297844651105072246800821705186882367652912325383164095526516453849877122768596619837679036088569136271834970051326622655230837322663192735769527970518788955056620035773624854610090979985318165506409364269597256484655533292956292956231249037711725091897496622634078564094493971125382917239256646239397565681687918864875692964500238064664316111430500882943903132982678859064155256809760885757921094231609172416624060723188539285734910903941030039023207721870245603197220549886118096234855295653468093446314708907767651891994784122716005948374898252858641416569672904025607195891858024452882741639791354861522422086024501529455655603308463515584467067220681997564405141909197069366948651388697068515988197372925916777610584086145973365355886473034733896226404977461406839810886046880723734593888864499739549129726272259409172431987830338015128749245863248670126590894981144609841063799917724928002476369163119546910303749002090399785209262018540968028959791962343921786419286286545270001596590886592108198736753206116520477196025680431522929016157149663590791367444653479822384538521382112221309523834738604169302889447013485096288408249134531534636684204965428449694802196880382492869964689583570888525842973521767934560577027269935007880895536732533271149501625742734807781864423549673904304783644732024487027377630385768221138288105851388527041134537370465434689579127085505453658720181937810403314847320535737296290916001059334356918986795252149214989606149083730905072605547890488554483392081243992361684336803167769809524949242833027568343350989327266978474682723874284004839278836822482431182864013050934853277301177033479345927812710661433685054155605264232654690450043331393461258592774659289570973625560792463051771967321413955157808224703385091558391222412160426334127167557748389601762993563568252668406635329819654851621245929737658912285093658617397162323880289594119850799288954837628816975874313281855699333495861161888510364661761675873351709269231246549929347226643380642023440530653745638277879788294618038310964092758887673792457159858809860744696222481299588867957594607752793021347700993430872715174704053994600715972088395536795919909119475345515986456283676288017091942930704743432229055639948282877968966844055043390900039358100071123979925179028065150758928328595585554505090117928492792826870246356722191417147493705781793693245005153070794059010473151566782169312026300150737681706157228826405837374186430828672009940437358078513614209738468617257594681076653904593359856558383412575527532826543726731205960480252046191531501430718047858446554479700795733169314882043483057490318958126637586425296702224061719692192717158959487473203846235785689423721858239310327018045286789627215871287097495046984094679418090988034088449046059060216877831778585241670720309210496391947284486394240972360505246714300431201945874503729591503668671898643136279011181589818837854149108526013901196966598576098826306573662565232436342415762764142686806015827469039848983612625443466379469168335119665138390725733631603430383163081053493551913116568361609992866610259427249662842684324008465541932114240148351672596434678472297209030225443871570237029916744513219233513298666642396386590641527901938332975913970068686057279631660005176270366752087846580673616176969750040409101735140245877639238899084946977835824296275146070796315857311555368775435773745547627793308115308817234154774466355668828536408134338473336344711481433395497255368986859083469426426541940215870452480033218717847321094022614975233912724383883528883558829359094593024936254221823892949126406555533432592838235930480857835945867318240092111993963817909354519221813782485529102360707081800165282613302366789145296255971085997188927532575451777753776269070107414723832739878906599897088501426842520676484493611263291093852650291260982954221209010790797158162562275521003630549770626177218297671353372638057912324982597197209380573735809307677806575360767963764403172642680793922440427585168944889430066636515671459816172640812577952194279037516862001077129330631787824732430079433427823663019010401104803754595565253402445582929909931722676872039520017223691646808585180279806290631039769353528622041989923635673349218835381670304739864278283075080186379327388050827681182428520557540095049136894289899750812200323900108998846988192631281210119605265165746469504888145016085312519685107983577857494844173268880117739120897723191909077626620418962268126359490724642623607399308780748977071410276793572925869752776243533070858779645317611060510055949711484467540789270793266131880766345943926153211877833519308216955326460322216806728483491310752005345098522170575136095515077833135910159476431897690599066630687652324652608560539381589921577139949024101503282061278631591222622837756652239558265004125600457473164134408459576376704605429594587813641502938506988935320841440887503086060042813461746854831035581927255873280507810226125688462716167462778730391039318171070290056865928421704912726341694483905379967168999439857490892097341556585507076705906976988095836716085003707540864317430020104280337831399615834217253969172597354972426333739697579980995021027147305743536540261138456481541454486499006501011683907435890760375788559346475015343634971419685211774627772002490889966562149201905400027838070542883376307595067768125899088916847727008699919798105972066041462175289302590759171573338621620533600195482883276957481532877841751020125031794755246198897634143473280981840559411032598770107667689637903277091861801867673016101125971969294163742774752692595981738704258845374910693253124257070038948020952959972974793956800464150502966096491176836285152038086466148319403984732720532758140277502180503682219835513391609314991152907873913977692705075891142306857276791216038182667345337949882075585847456655666991391555658008799409850584237067924343376982675656219055954815640747598385052220556155642440601191606062880234761064184691721010983305457207937202072895197583317922288756824681353615680424620013761820417639915340834807986660877494294355427037018270125860531641295770099813564302975834450211749816363255245522135272129883846562993226334656830381950265100778436411145529498297234712488426428297896719523266803421887216246708462018541984236372925019279204715107801444163549784715880054607956502343149346681915473317295563955742487433706114778657595755478969962478274279560473960589738591310196123609890404610315774592523777792952957980907312081775885497804307214433336479270727383116117734004054987856833190602987525793469117814524127489608559474890513541107740665026322403043359829915029721802854588881588824080442079415149849960008909549958728559475713648982475066475284003079993690165369004463218695500998947134161974644825013418775771543787775034321346877543484623072166478093123995914643526821015240099754846216650837235481037919449803276732270619082775764511862280564669672306523520454815035471481714100797214702965497990600094249941659491274943521675618433346646390437129283490060135416720529094012972055426100846150520684147996685007368192999286355015088960904691937155379899035628991511989985700762516215306157569346759328503991290237269944551434264105486101370836121946648493311925680968742862760643695921136126414004962732784169843525967243756814267244524278021871473096175398813063816226071868051997432394248135502046226145485805738155743963108907484375800534019200492807827030051191506728280978062033318812336246458038874296606043278999919413083096106069397492869480418244310580842082750584511656830741035540248653527662774707217810478392024890677956907842219577620832162489588152961754517490827282986834210955764345145749873074022294488746104786406007240770661842722598606245597835134053543588466689393419002732696711887341160299897813915277206484593032589382049150774173130975370619667420626832986545468731162132263981960512192467054835528814066757776383604007099682668298755135756333637366780854913213705274712194853859905339298256280544655357034248080402835311266406746408023132453643130263734180804752523166598741403276344599205288238674726715960231896797348021002497860544689468356805690193565857231194393013915802445356500661078183554094488835223094588832693225656213914823683909441897195608759726719294472860142386592992921884831494087237474353491100266544561568465785218270332456406750669060179082875375055950568677427000902566813645874162565271152306077483431532946384944201308042747220006746760234209297439918359844917827199659401635462899120588539332429565233521377550681065737583067533518219334230615998650357473488621011629201071396610209961820099514039923354001325198290128118039745045099480776843435308426792913369442050529753155840554365766528987998579561302574020732630888912122160192905092612521106122566896857059245386535850512654350993223336164505525554021671954580864837525435106800062608260989277737929512942555965285322966458197410958896656993434893139784817768893867702201279268305126676544126725860136290604534389198332652930565871189224171928034998556732293406205097990499063763846783336554336521528899963071163079029684929100920203901486419230387164698643581248000206511934105397128984756954364446252721682765497240001847314965265799775325195043390196412776371886991995513748351163772099741947223558073513899831749594940640448918292104398388300505628749718601218480441771203363777855300311185174579627011571846129132934708445609858065128859657684885490704092827245447311856417209654562602941992735230445361432286539924810392990431884216462167781576098982465408337385542657809023653897946695368781886656126785236749237637802335449126657105723545962707354873032729706397717969794153902454127990412354164772790634790977327070880939821326775554681826465777462673403445659507809584231186210588440435489259473694495316492064112645531715718784240305646410247463086308429809830149418704192435078025069328708302357452733486592920034606250583579892426043597991831901636322469802517603050946358578631043481747359460739720644033711141068945224669999522660722669628078199082688509014928597508999488563321967494472655347023285209540806798070178041809114445888844349172392416670136724984515652385895827120163388704061370668637125091958642553579630829137425034097252887650562106313875581463764710737706332589559827328397767546375455424092176173331243715224396777844124937643111455994304002735259608323824281896323297554604381386874236906555298364469889622382747392771786383950231539839539934047630543065842259563853896095223525478724634079967177937879800071109855627419629498028664715695995329312016398695203925420136301532345009767077783042527618379546270402510463499174195058719550032567405888054672727656964398997336368460228793846301908886482285290660229027869026522568474145650010638806064885431463604420573088876404391204225568634898463866875391124153547477310913480239542651544675765062082995276767532154877892737885683257854552506208434663871121339002824760794355023563504185464256157600344211218898303525343906887199203891942253791264113791093934035961296265417961364289747445220482114338439434571106857622100233283462546903996680427078256880006059163913968282240378243870992806904546204207149800820908092738418825249304402358950008166267164485815774308058456235875906577683926078012604144061689488169252737624963436938787481524355364167101420995739655485898382881921425550269612243802962497269705507616721225404573918329802734892628363432570523485551911949341367035784234423924687074233068656843206564140102155960936314551171046518925175479620626342750693993142821504936303493768704271300472988079992401453951166974745886250898292744910303507265121027815155561180964178256008079703525898195577587106418749693014960354862922458735385601386587200207649214013480467530063726031261545240437234733655753946601770493478871985422872034688918536113211865620046002535800295231270938971362900399548546741045339039439798875617864456469243770280808656524808443231450890508147169795421962178237913268909144677859771755647286890455031982328627465965792975547507274657844955716030709590145117043396555498950079538681815247490105085767767734647361851672107897403079873829633110562735495099655695536483516132885258665852865688716210299514140483480674223450918550699897273376436087158936083222982644716757964249196948025416157535412397751612469404205753696106410051973767722535271585795353545209959499353728141884020636399763010549733161959122108901997849270832889526044139041155907090287665757164137041096348861699726258101253907761699396235893974348581762295492267584310428029196244220938159614876438933575793072522904255786881062401487842009685082472982719995551559127658462232713204166652627592890126287251993100786072378231847583256043578510656016853895975532230941249700655810394333133575140792962705711124747412039196777914500863007841218407159820772877895145374908087524634305648829246846877533089711779856534139454257431253949439453999915121328634077279724268301366850196038629439007849576743433086763505950034741297416724417735961560401578768234816793961649625079677585551284636033393688365161279148626904100308864950300929390952630231315026561275467616228266517441406647577928759796300444491337965497859009256287816994806062624278157587820057511968902135371918777751562240998938274984662508844792542777311631357357207198940350822459818511448521917831378799064919491232466625835531422848528093785418321584270906114344722495700767548833503098431853735202471260768381303600880659303755520978637231842487514803321307375710217587736192785101484572622392422290101414305482993976048485446102892781315077765575018289345366040266586604032724130323860605837680765249158254282758461527713236291923220101118684517916120082133937228586974213340169115536828474672899748526090708473517947434050652805025407228487228622304716596690452809913563566657582042424854529754700779452731986390867278390178665105013209003520319914867263801433542006120206262693418426423352489838423619913798134800828243285382411365556273264187462296693190760538745358692280004067433024385666060233928956929278119394691483655288629456447526119042187589313794595527107674043605901630624034206127202037485367559203192680210895820931799496816925730134675855442696942640004396257380308154657250404814999884975153098374251096539892200981246437878166879768415206113959070201561086772004925053206807395593586559822364079877501581371979981589408970533236476510022758353915648123216555246413466757825713736368526070207500592920754269486421734143665982231859696058459825159323324793593731960798706887750539649109544535806416317643941282648520377779476282508374654415618167286201795817879726090375001015067467077739169290069012429546016569461901804555340333930361393629762333301587541003117769959080568746026409474094927521017723953748706342663450465382093790091956618092032483646817495858523407368840661037952454014319341997029247057458099902340824488415802326130299167509995099874854177642284427287162652077265715027980175608059804694402877765918000352358395798928885287652188619096808087083905800597795285011423546473985305098160456174483585285465099834978968316851456866684249372326355619017061031174284504182264060245994969810748589081903239568287346472701076530290337856540419173303941629630227007418809573724406843522539033578379124644749374065506320737745788598633997733926066036965511919385934587438778102765300856216752006821749174406403061197043471570210461731532112328302268751798118869694058612195311237815970203720397555612919793846471160989280708623617539180858840457232764741494408136737766507289474068045859852006588519690052217320809306192552487073344790983000295621590800769078083088967448666508917633450280602779714908706872725349588848623377881359989641877959593224437917868865863780679979735717545968198634267102582648454316907876724174832232933709151421476796159701291485646207040130753915338499491965856290743334527505670992624082904660280555285786167658217993859114162849133027755779242196805273658621789094449711559531794008305868665100661162976457334807971528936926932723092108261057942014165079903027522570523304498210836698497609026335406430631774473412813543069538795461945917483952190853752754090729034188239389614510741362330510060543119293132092283937575206849973478525583001037282580045851917237118836522442652351383754154631018784037434093992182957896818820232511415575981203948870195369814631686780554300720545543588455852612573302974443982612790864093219800366374975929015061982023406047049830572153238532601726827049377436718543932760962061639160461408216473338240324600810662593007978268362843333119733946687438414509392500230386943803696293923498175733056111988510548875834609475208246331669159294228622577370436202420828365505125243999323473675281508219226959188407483159793327223136383653332167089022984300519835343780104159265924507955559066009057353151144477709439172388225294958071727019683379227340471589426029842481337338874765322674239973812543668987852755341042742053843377481401630281064119497692966143229843473343739609080948406181471034759950849623571716539046201033356009608668165168628926172004254251291962644095079661217699757587010862743410177950313629543365084242719482116878619810952293024850082168667587170497621140389950590383595929592311790254170725929573574891967099574414652920260236936611005623182786684252914048358096813300845947296315319143017871083461690722252549186612214423770288053577481367570795550372098684929590589689540755989951663442440732753073456093712397970040785847783344679191737596918554216377651897846901342466115339923587824368422797063753497818123217380124288483765483956941287000875160468786773495470731413040007438208600741246359450738449479890587164611401292946428799350942034345509120715001529865863883336510513738210735071404101106899431844955054422707302731351812071802819775460132991728458634937858217591708286212241225934584443659216192357538902287928498982741496714233336848793150197587209537195852603335549063270080139928590982370592517364606868301696605097152339369453679515983924900622677633563390425292575708650568615419091435681711770771380855536481680436648477655025197132347157903450407328779015077653179951818343573139755845790279179529759706030710325310794846661493502362267876832836264997988015258571257769756178668196336511998478460766441545617246360698426394927485928571094757973258071182723232597710806406000080516841289884246509757032625414262649672502953198776074357177471272615707121578660909735381228628970888965371827422540257869877633713680800239081282112424108846795019047453311816272846031298694052977277282300455269084032523902281123061703840844967252994280990961868460356363993560971253046160089731354067568662822035537615421283559434035964366706000236462456641530861391585061271920241357126578420097334304486316312776877837082365099883054445882810157994406649440453396810637239535286561175381191081874160256158102215321783639103293152934338830795401607888948907620651447361527378795786770417819652927849995250960307901730366900864228907813824404718834638640315559674272599798967043039332342954669016026995557802094283733472776110345790882387123761524642856546231847366992845483335771585395934397916953684763356682519174003888453922859049050192390497465401497620449825652650416545720224034335372098031806535070141040851060762871549050498706568267451081195577598868430962240280421044855789549929283871382744478343185728593781831489981468653233926252027549535366222682107240986921142884496741204102189781025009663658766146353979243498036519444155531428410300065791184685639903894914119312702210334320692315504128540809915736198497120275038641772064593996605768084096657515763199739940682013038837780817811368986618877531385583107769177346253087215768172827830281993025512346941400601508465597314689709545936590752911254727631256511953512558499515182547638887598589361986870285744709933228113089952267483893704235129525653663919007296359433056259788437440922689848048576699638156052327443684102482179478865443567499622474530009411336754065244496839286921554707463526972240142999581348289094615803802005983782463612132018821234894804052514601076194682173542802991497320475566915869327849388436996028010829157354660010899728743754145120732718047583795131940056112817303838979580740510317845993666686128722861608101114364704555146977385319100272260698074181477959916047095718423045834912923436975164420275417467281761750922133703126396234165128572232703482458325279318443444217928551405517538683330841367277200654658840036925751644209381880597789063787460330462583045041195157947004407658534637170701856364415260600143989319381091150713962385409130840037524103281738218690276451308874909105528013768738439639225696272835816951193998222145337875127154094734080317059577864389772928329450120975766574251173086048627463345593941651440676874718450050352748780393563438834267709311784484615219627590537581621602944051865415696691773529792651759836328375986404082597124137008541742855951341451693651009069708824989451543673695407315925386313580355851522958272987658595570944253856088124933990240110546078750016325123767197573702786984055571926323437506633615035780807838848655877476251876769192959840182073983780997517191854077136633441543546152569229214022047442358992127915751611430996198281778295405585639347167887728808291148468335124492679320191754716951157821186745382877136962108564438753423536127170235466276930600553369643708336029790926635690594021256733612920553546071058113987729897432814003433520274745434095718122441952792902540412138546855299478827557050534572809455858823021383851585351565299376959641982392195410138637818103698994220550785682488850634776888316892667913196896009680116474886800702314201109620849480872253531210250448922204102691286635167813445351175644355286290654123916290812793970547311860064490281352609035363133358289486196883082579060315637109622187620003434298669243844096295060140844178315835118190375329392972116119293325775102999609448019363273338683449504383985567829892977392338450084046491992194899414455271057545935836674858706754451966529195648729243156267839139974463413714963664312998997878348140210148626872993376373365428691007596221872802083720592910194856072962419208053583208099019574548764836440619678707613510617476425739755781376742475541194198951268602417291261770414259397630133390076898181380791473681356896688937161440949809733451710182856813754269215235876793898102529108198154047369570867709754545051639599512968686130431748489516080472878393152350084055914740251149067488002124722510622726830146999717176823824306920805479836979216192854790718525233590656100082554006834423563660335891664515264665497607386043574056712594962122977254855480022399628607352114531807971937633533961953084015697729902779696340716658140277315936544814765893272862900159866967320107491433831776531835245175256873449451390061243017129791415325986447328536609581221170546037328359221979473300058101745436683693710156497748705578740865969323841330254080993402862409738872386311482112900065466006159329738483697646593622982493994005026626060147911962263077883058757229242313619090194309357862619670318205049551653504624740274699497812594060187029970702956724898703492774000645391464024580439624339334640518056193339181857840354296739582670424784303559330010262277886114423559929308308178998813954181945678703736642915850681709487165025079159025459958463664807256082828948679476835876469067854667641100032843777165161218104371279007411620705919383364714868967671058523272706601396314157936377349719223369741958639634116445109505725726522751176039484630898296168175173784685187704894391115528254679896715694394550175911730932866388889058220846816880820732781639557625426146233776186443215506606184161238290019615796638184787816696950049451646086383207842454920778876409962615300697840374690580267902328216359865668298904281787006569742201917336909445265207390425441188054100322899971412273632684062673490850624229366053657312861592578757830422513023642196210174283010331174835523289916335211484937142889401426165287578850411895305214058266660598061782028221401410130714960815699852822326074691336631562364642250063609140146691740749416209714793119013159812542219094998599590716819766799794382592874675294941825705340466950834763129517603594819610641786047958257671088964372281903355774259395329471540154666563954244455830257327700877163509829455184767113574978290790160611364655032347624135320712488075915620306773813367398342807499840058573628206365527435858367921400022599522750378241768799719237338722138204781042651192614082381615918788964055912335827682506774878306823237365285401308760652266147618552167734088398390071833846968072081359820267651177146874849227309507807593656790517229699462482114822975480889677190757291552673345917352687521419660347882109635524199064023469926655902068749593858216963384304292293103920037261897708409233428916459356502517133926874397297695568969299764466139571964954610584786500704228379855012263651319782240676966607978903934786824129288726897043209013535614690372793572148299496439428148032569207485480784685360772749886951260918390091416742169243058750506453997446738701435559710057342181045579614390180866714910490207631964298758113636096997737517847113825108632057013681770184102301979235760441700577439692509884605155894503151264569588400546680798760142192821790943287543658445454046949826957258641845445605612293958083052657702631901126282813348424179450526613126698547230348072781194590764705660154745488123770973021720244354434735764965916039259610874045694705187975055102164009919035587902909901454498246646788960628449986094051697319383765022846643874176442796611660197024453122559590354427253287295078568898037198392836348421106602578673979636930046560588133176931054514348475204916119291971817092978030952207766343009392150528312160865318703547652653928240721302922550142599419239286210474198626394092015647855668712961024333015939769701140255655931944821739069661003796420935210184943897314284484263405940565551751475235823303518698870290181147766233426501056205576852516414725514265284447726936237162322904846936089095677555347490967275071696087173307754342180545169971597180754492427247069697714849104562996308952076616134085995764480561982885239171021112074454962211237271451777696601500178810341042797803017362580961947864082866797432091658556099423691621125863686511964032833149682988368746464020716932128986638322741173016836287441438834103405973473443813272424327781247332220653328158244048708546476019949390524372847026664937722114075016875445982722018610982026576245860698571395384319786491284195508445584904021380201505119944623326947007716628595614917510536208588073353350251716024556968660209861652073505520557467940610468834364988269220158054510129029999675501397564517665730935776820240365712815348157883828156962636905908236142549848465837198054107243870228642624034714416466858508281475334326937282826784096392122617299718371265923296462055424814636954128551775211326484843619436770029772058351897070902776562756859461402098510010289095341000402944649105342997423543437466614120134159465723416436344649954924745744535370389489102597646970716236920640896087732283878259233570540425251942186325340025314037610191152680504820152403410574190930826236670926436875512356944263037755119538520103976217702915236005173220440441829004060517444400082279438041942085300939363918072840431966222586670874297062308867650131155810107045690072957397578233365483494459711566586251246459404273189945025874836359364966040190153603866308543802849519672981569204430586265077738006021763968624230760878330412076100543489151080513145972223241943331545399230023563270651996421038703589373671935905706845118895026771269229889090959171266943874777360669231136762035477308261628602480530381871831561044977771424296550800840013469529201412898896307355016754869841279627741094301133946049579333720715792797632574309443413447264376496023933805826010559294593503703488673726097323907232966681032749107052674078370032111791648064175316126717335695297287185978186636350779974793618584446080527001148193941720863752029413396892511013396509845046644921979446942911365103470756078993999897991512077955842083369088287934572878120560764187522290315996185299851487888402968504071853584638654504557540710946543793047858186072312125983532529168451206024265099414517593942022912788738146422488479427199191145858639414262864793459137710495529313630789179178862402124190551460200535189455421127887356016723727798539768755858964258341300851812737292817067405222212382929020506584352158708492931521999328769307030995650548190834809583264576184761612800373888772264452493735177452158033980675695735334928202831333896692787023933035534154408673588314856861297370869091304818614248699866454466359169474465356130232683881166816021428707016160855996968103499945382228464176179175442353286390986657309936278166948584649506820166281611930653665431545877721527402227943365617683302543324189875542871551558068252716747472077023568634015788560982474808424269225821036069745548920364594908262484352408182721925109171384118863203966836488013349478172840691194447188084543069452975503045242310745850128207748822659948761067751345846178755171642507753856840141970077613324147091255005000775343446520570662992801350300337706413387185223328193594005611185602404176297111746756482578364525186004689146808800201694738129775835405845270713240476032761548579568876968103720860820109033308844375482207385601779086390477539051096925165068938578849154117062180017956306923760593224961951819624448129680254602392805611161208374432225068306116406070781534467228148019367033758045076926600508071635650811761318818272869416710682948883263849148121210778537519616175330900465043989756018168908341394013198471806273833995298194820938021846538452661139589903855598692833809596913833891607084395762624886503039408167027096155242354845957011068542984153574103508533413812357624080275456191847399008909479918850085549032849301444432982413730047188542277719576785104440771135795006210776570010537500459640195365077622001597978109564740425915557332854263691644802604464206856008327034872305424326669657292551086683310131119428432913190463028935113910482542520334814245816365826725194993372001070178083324197250025217228524176436526827138770892806786841437602115625568762740533644382357726454578983891760066625738693906941043648718461756666444189432130500020494175522618874585335179891603690051026531361487741201975878141630806330078723820019697544329152798721732870442956140351073333779357438990814535378437177273630801756016393004895283110020131773977688289644177313255372899275150884466241057030394584251731535600891872282087133235152993062866699402091553087045185444467606145631427631281350517353756863256931702748746708857372622944126489823324483896940486566887025670671108073578613960202464205868747870575952479758102469341017559334408621879035579708271248854675031052070806844516541182859199084339340416380103123529033261800953891406122458184214938810957512620601338299047597700173695879222181336300390351088834073532949925317888212142936319908625640464200042681720343036355077591638453494451769922999336679200200130174345371499050636653983033799029323624095445264133771000057623077917560175310095891594995995222052404511418505251418347407239113004581496580692477647603812148407349076731500904081604445302565081243980178684204531242812875346043864005667004599078563165122027829978115842153020901447873956450236010609874235543372961427167837362309708186639282094286295774639926532125218468083341088934938982425715694074788333811353314440524199832328178322288685570329574801397303652678856895564029342958178360670254141768681383572029464175828617148873888613928790203605487730976639415195087451039980841449305976760346558395659976930674616392864658264860550311644409274601938202764472684214891730594328110537886445543997953523545093946516131140475983864834056706569407729228791473984865169303198313591818209474341778082820614706758789224022016778697534676430881757292036137418569462703220491440423168556934568002288889358479212778997203766718692129889722010087162436677286910549997236605542778343427267345528851893554436217980980637937908716738929369350987559900420539924323034460204003498345860950780188027532461866257901705765914295730352959999628510163158301370885120722177498042038241188169656803233497967385650706119944503054264289923340434821252934247981636219148572856128887119213603448270005534111411673111512958778406381267806060207430596247398370477335750466073273308945159796240203839330356174419137542961855667779275889989058526780348169195735023043299582477170387173237373178702342256381220310231878767990363047632242414340798700493798196316611278174541778393788321099879082639489749670896776843443461573641718093534696921207129250318465039266720250269094106402958775667713760363794143251709303331812749695351986255145933422949123286768442417227682744334532651877402968662877305569955589143131409812636516295915997469140754719121946538683996413437967328973328510036620142494467423148038484705151645089868737096614641311069151490631440041492325395333139360782786403388624942962142515698821532158371744747421201952536460700548374779568591619742066503844510950132370297516924955327552047077817935710175635785447470853881791913803295097059261852071896363708684002790788198145788251752781524339414756776856246258101143539135181953159542968937876634665140167209672939953057832636692584400697232610076780117462336711324184656069319390710698755395559031285208848455155098180192088515523738615353381207932050813322575815156728554350064051726814779396327335855622621842609949427095118976105944060517508855319824030783679291831133788690273691639133513276983624949976257909284716448092009411539368727884698944816415950409874231355921041381230436403762365586698564674775705222296083291930179040951499459090927657685158443672958879214945240098818343538068429113157346037307255779961488099190299907399326787214402716855783941695239924585936583710003861714839936612915832082467071093754838296041126324247045776037328333810182403033453920097227664291935949042814616355048936300922957961674555081107583223062690887399234010937682396522588235273585151529001034449424731095965004550816347608643009391619552005582167499467288261368617302601208612993534389084632761350016630359177975959672867896668443795370264068215491062085966347345757749414044419276584451393137268080594449073446489068969025395328106310821315074779432775980467877017049429381812183907960089893020253852227593629192058483845333953230200150062440306028818820885799706373494145025197724673700374983783560544304326716642291685680415250220486924454394203368397493685854876732983732350541093340795430206505856688951056771353411032639679209701618822167234440937668208722481985554047771207584303926545585778122982801914334914006439251256599967378185705813131543976003400939388798692790965095017644798236590792719455721181331245360190000754453589174754740953746350655182255261103310466974019422488350406611752579186589495535238249857231685294040801512648300407874031885013419740838088809240378287017077639904164441995000415522531625943417956391296321582270458000246381934530367760229422128569206196239123051360774214671097745960203201078167534669113148232614556529451529637765936957889362316773455082719942867369367517286675970780656143834633335191980088981382762257413130622565620747341423156338863993795333980471422166513269858704199405037464435171118391682633904704945474341694267579105623825653401804945521040682108497802664302573684877147912689298268759069895426728869820224006131601585734805569188453667016676680834726404199684806971326202328831332692889972557875140859808914372890573731374838536007873727721411702647195868290148724300838805223490165440094991614721917528104599363565796827690554545268958870539745235291685366502307287613696746188031099751708264955566403646646383267497932286501455288020991368326855884421574880875798475911650459798216927831704908744396837770678890460434222508280621798275628119024959190528576390350254799958721273099627249110953613327956017072196493990549641448688869310418131840076530123751082260699676238126886380719108922506084318878672329090139662902798633075797895182492899304601907484445098184282732071371012425766650078158358321649737623291532036956630926837026304381781246546399067941317945648985743867759398285251571196101823552594758700861393272193882141987134616240634982878772882372490970140903492560955285884826389538790797104730898714629279742239716985882756006330541376766021227829311138247142163450658298421412452924511135796004948740240874751661010010803096507351945226039027832625626043253042964160179237267489962081174463545155030012920244827812916856312166584300829903305685695042690490875867157333525703287246762156592444450621190504120620139927528741113647161028286618452044131553936066011203518827023744848405758376669063863135725822911819742166489706423578322976229366614441425075902621715738903283669953147808111990436508470996682517800248303050056326343086365132571166958816283548299891368853995669524696207959482671409765001355418087236763629948121201659400521877544321523323874129006456004036434436876406707678292047643220327735314429480526708014642106181061583452367188597557980426090906506562912816439506327856993627660692590178893104230113482632745671882083007005798640719990641157638526306479796729556746894354848784593651219375517178491813061807008794322279355685680419751708486987051621340455899410276128910698906722954432164260131299719922053645859019810149157373882367273886271400256007619221323625897146978426622844623921121147383002125223305258323414111155046738106958648689267248607759743052118707907315680146885063686020198541674014158115786804272108020133737039683706062997704263314058013254945810575624904329214729177736920713274873565303466083886327565920563143495328391273939353185860601028282107660313563572378726982601568154395444126707056804567165747646261015951543196852615772472622558293581141125275267893012601351233048685427707998684817616853201994710022992118752699072103266290524559113823226302166506221965909738602983580501322563728823555570859099272998506903651512956728071608939579508466641955067974479799237142086820505892780725190838759503876210839062987116579267157442771318868323867289341523609645601672484288219399145796475821489484342128334111465751558839678713939862819881146469357528355084501830058225056165297034834044934801914432599515051216258116626050484375656042763555453830872019127113508632169495979135295235333960322761599584339590461647489989543547374033747130984083826612473905314056199531258900603120475995246221543390956576872472629870745547715672579800928531383503496334368452120786311611773278423882546270874488072199369095114971455390901341770535184570624511976640163335342250159958800139667922174435636059655317487990006878850482239700183371459503360316368025499636502326171750950041221243167867159525376697587427370502673630739865226335883008048519104994973555244627962344134327340603941645615798730355560421962021098420725521187737558085434672572782274238594500178803691983426656824842923147259028671213904298300298553460995350396824894964664504451624030698508699670150409445631332302737637792367622559674803032534406896995170163094176991624129800405945967443305786070810464437516717595275091581826260108723815055465586319940415073325150103506162386421656221563559408754875369362759151960832413450524504128489192502787258134977311552856835088263831321186149078111970738528757788163726449754721259320761207918069209389210398732136445010467582678043888195718297766261067607156639063037752337813257213928179707774949743220375660781561533089067126650025600509165303757685047464475392046620477083749940230818436716873106766180540450681786307892213389871076821695446502312892798079143518841681095851938890673892250707508262304528385787505680131505690001421871294914025763132639329688341560033827969735530775858523206833856409250888790201180323310252048201170144124591204593460449289717098634401561431519696652989637800207525659148574448084781678480399702486356989819269823761188017481771185638986295172846126947085819475282312701359250227697904552807666106761098883629681994353705579296094491500218551882626977923084711917373402882714673995882816765854349810318154585918554875291023588842801067769587816343950048791937037058131554048068060707186622274382179466101225860946993416210188261442610659695570993671727694869660537587635338255568891728271779683083214796696172634577657657851747443000082550537148407121473304855128245259238269631170663831751214472118248820344571687802074742797944410019605052762035226058224248260228529030418502513697366271480963809406891883155270204630610541363434820650113612997866297467874628714718772404109586546032758765646623375573084898546096723132609141510585111607461654983232577142422451798200006107793976657079507484399314378444715306779694513659011307467626332077338705686736014327252004895371889576136612449274838842092113969852605584707559308411491931199074680775738736090615544777095639403836452593943264652163894992116998212403722243584577355403452149953951803500014525200062587918966505171792774632317177324318050538634837219737425090534713556161406057018593335782936541492011730746350328166579086472513731441946914459512155356194757533491896638466743269912631304202009036781125998568100541904253037301121587339372820436829949082399155657134386331387894479206998601217963843209130247671598908851689975105807943983667517180598549589584207579391849332963926161427474892248474315602905985029354183216069357858924763673710965823573916600009452872365785862125265752942934066316512842966137662707167485512291107637338983368294332318149151179857430762707075552230555035157444152829764702972143761057986662528027322867982463148050823251721855290722466886907549495213129402143313158503031653844351584767655021493243432090594745329627386224131830202452730307114963909220569313483262432675174493505352332002464998503888587228880134200038052302828249725859891483433367223626535660364717376797370108171271118031424850874712520619304041523776772445865648391232839700965774219310850134965097646310255448053944732451537040645209485799962334764086270307608116485187900459214003807387399182664644523656882214763386574561789589185842232988791578432984224770838639725644096604897819793217715356488232242266894446220804869301944915477348158141129976445976363465841889032609498066422786742228417369247926871319101853287789372667246558580011284497324452712895455618114774542712915286346085135157443562748244138167903532775329844921261573314274771980054518558407227813605898553954890254592313415740672458530803568808833218201801142182284329287176950049761584791227840186340454823599943054417774523776702447567601485459745210539611205589918467770580965095503382774405130887874378290767336594872675417528678000437898765159344949697718947755876111671508322307267449256321514488919717645174007186370179342194631413466059536871421788854124434943815684081823651275453549575485789232537914563690342835000447661666139104425227124399260991660189987667590563319711670459658599108691863713721855540989340191969503131081666738407256477301927373205564806108511034147931513651800734438641566198849751157189054437991408177861862454368392875563932865621704909667226007214934145045367863219609445902978412596376532766504352188693592273263421094129947719041631740498635115820025713184381509295990311426777374958001339003256644184129001302992078052795322618928149276136761049316162224120914637868459529911298597824081602200780562905179872046954590892340291590793562694963742581205683954520715744638156540509570238326167785075424789873588761487049607657872143188934707304837484437288419473886473197502562327242252925428006614824051056197978422587538428093209338635145669371744141934363961902048962321784670660489320745466828945721620363368084586868992054691012887739983346698451294075924184865070530149396276100194026799063728130658578574802834470193201328177130319787728480305455763440528787648623855908651422185604319514483558692435578505828395778470688291809838675832629105535808933000139746574232684954477933400717814635500133483839824635341936894295188375078464065449926378610362261722394179028857174048897006395671705652936473735046931812796280131713813454078673090668698838073755719842449376522639352255023375860086034934579373440555723412597865689785183333667250270170951258802603068868815957706853479547280691489229288756803436528173625770540798032082981218786369821931796626663648486054205095904410966151979137425235520994412378185257855027176220679191131380219993524300423599953684284941719114204850406210638501885412078473250480127935834307021371007357828996784610202752635552234264103157823202672926326518807254677112556887497599571718852129097173885221058360869054585117144196611963489693214408423857996192602021500162383634446909330548028371974246191575478465741535148663076168962622476935536502382534605740179003164665085465955243684557438610787143099593321699598205989677701562802659611786452993636142681178637396577311497765450834630492126836807432176630873169879894339535016735874308664744943459214432643279729989384520450483155211038561104620213634638666224140872885658350957796442724076328989046342305275807059802613460778498184625059947567490994181272205393772556960519867230075779777589623938385925385233850389326534854991549334032620242104105905187317879783144717782334871562149305430888945127908553017735848685907230481300341229343771928547985042577857380071338607300758008016464657886970994963693309908987633416036481970067288674628760521019556813932556117679814874426191572832694025791753016978998775883830873780409494709963143146065217043195879589114641384858446855551641020359750613626765581234455363934222943041496158722308222503088931378896917475774356444963143513452124577552900954951470934133272076946265283292422015374140308394231813150758119575199479572174326686987277208325261167542416136919340831695827138593623054575235585756866350172530007600312012594632844458380035506310919400139235948558238412990958755455706784360020971863288170383234423956546626251254292922519903837047819025803623538561250425086493495020482339898187724424424911792533203234075856276791891416199313167998200185685516804054100409874053844642852654586889999296739799927725708891341531468846764157321272246481828879360344929389162483815174905517046521304754313715695795333820992163216683625947727616221653771280755135658328454465688385965966555763392185583896210623579704667501081530700024517155751107807491070364974603210001162634071563594555932239332273852870427579047038058480745317062340222713799288635176151273288959485338397377546557011461995466666734571040234990669818464883339494234837300158077399724818429829412960182320239016537496060063931901109907228910412788250587296694739915112916764877446179602965587452035976246700217686052094083516203022976184785517845010882807730697497673018474652522117885211918849325915219899633566138930031060109586618246478816849327551018722204401511841619948167011723938187076651359325417274144335488440403194104057095160518329457266043338443699293313866687885476299609635328777079114878505272294620562766288013004871696296267539364820987833482280333972569990724167934678370288465664858307106347017889313852768516294669781350824565090613812912670296001081024800708980794930025285887188339248849469594186951514056324936629832942044807512834030956544363464699576171794644406297166232543532859352871952141610226612358607140715604259344191327889499935984968258463348313136174929516407486940619474040262524963452633778635973709373180838819928111492817058633751531793303276390379701523153929726005992366088575626148089961302704603936669392919994539360047856318748328951083429811852544238145832801694109246863512777288971902808111571473435993551998320193243215012976790340466491032890117249606952735529455079318260627811408422432828158244494809817438557808110535905953908850422382253368516283774644115794516582250982887479190723935188513227437317760516239056369171995632916728317720692110955783469038087294085316109489603607024631654689155741986235632891633089031071737527448738396537713538364765962244594008753811466521632241153699895240288584392687330733554090863028163500742148530371895970843071423316675768034556802846033042681818311905090533901359219599278308312769220062245849344314620481136909285923259225431157234381661170859107031084017741031007981078208758605792924173320875744975035853263200673826964857939161396880645752853343346306166881224302554386016280336228549425735058977378997780558780056086725953336298686415687315493310214066206538769082978144415650554233472963078160549845198057957239531092579790271024888981388769746001641961473399683113828509018526468498336936143091691434864808581657873522965182355988321987845544768015549267809623095831146046384673674992812727011958928011026377339030930744711176255268881183222196673350752695667355375164784155290829749165440299387077421652548480390561518624391400159669481679066836175347710528668418109393520543441050664291749450443811173256867761946265580888226567869695180836946795559295002258182954232170513120053681242423878482979370519763481301285776944259025230625415665685089139599654737868058827414279940771840985634999428878239349178622391143210457340828800823376037152124795822973478109349775002451236210235862224016194573348486989334957874838979967610301451845069004448327432970751178899917762911152670905981120247197852899070862446562386567159620910629794444272172229435156055858747617528649477987126672589396405883974783781444453246279484061710474314511157797153194052617877587179123293608257519726733046883795954602356905350139135415619031159803750487057105258733549266134347971420178247898681318028187474334797276263247248478675058275226618912871728094613228818986450461529544032287992824419415471129700416663830275310981646086705187482413816012180789415755613279959038093149090288301661036728889718591846150964098651963638383597094039612818484698712846195785386218645952944294357774406686672100552611046111903801377096258027795689847942463852371823267211306451287777195016378818056312198997300109311542307083402434567675112776211476285794368603475635961856219845322746579216036815906852417850478256218636528657965117013756136002825672533106462849081864696202535370903284980437854500722896338408223992947764949031943779232108990449016011136250425741403359558430405392524390640510739606685162698764166932485133593947522554912087808723206388960441059973075698995598904327220772202520045875435507773442805572387083158823099707350083005533116758454333745876743831291752285343423927705770111280361947494640342884396662681827380397216726332990991896809585973355211290614230819371290162642642624008911810734464144716916846710863304713820766028690496855688951926200464267623211565260903331286997603203176609817643685975662300773803133261946913439639254752965937816532013057141616049482639508439996350677314942184033459763535114935000674544473303313850126572909412012936612065156254302107475120827243607640339165819589568004653138264558026208941871148022769553208005771347041715112409338165145479932843348070916990018955556035622043408984697626547760931112863252298601443601821672780759710294996900644872619923038377391418600325383300451857816542037361831849055349370521231570069672685520613944444343565547312344828052794702242598104111632427602288300743474764227397619042478015783421459770907890557418482443105145071319146322384328840745189413485493560288036479240391173730143628513208680446075762998250723387149681937067005786546077169329076466052924164744718795388546780387991466197394468042415248021648445020832538706346975711066712879469000804454219486986504818791070305617957698005204507696999581521040602912485373930092230737522679280568346697130981099622260816611679046479265358890334400311810751636645330599918203176356369342167474597304567580378517214574290428495623443559840092043910259413647171354981756963650549080439298365442180758870453651015110068221672933203908975134546919606200717288461931522586741148736283270055633522294347659317571159006606079359806541745048562668039010801132754480584386297698526453810404949216566866745389584784507458616747029811336728526081988254966974432823008898012956349375173924832816339382693304192753848551945164690453631617069669309861775111083716303959707422924712432602869330827168417422900535999270232551986667839593102642202862022520296909144574763099946258314050047922322455900442210876944194123974906048048251518231476691571206652998409289645413549355500160482688458057991793176692694219263201220126800983483677003898039068140779384649258778602351075854995772169941533299627520828431342886865599698858348531432734373198977190750486663435238057893464443621468178135075425548942030059415031051766627997760152933533725417220632030511740881613979079175065421552755709113935706140902071678859439927457822029511190951721439913949374114012224641304015891508318285389099956862027475894620113295307614908141495809781311285961623306843212344943493142588327211534621658286784639037032503044147367140788096708584196897054076060548061602837033828832446114887404864519414575221668230989153273362452935587850486481005579580455155233328340997219115342575527906716199519297554500462884329242529215597003021886120450123563004383781938335822767564008138534766838931465104930180138094093302152860654831382026672991065596806792738243098759467997830102128857802007510695613186657598976712032658713108360878272446097988274725496900580011988605782436679602963816018941143979190051267793667557522077729666147957064816849630775710251589566017977265823628219715801948052788196260140341201553144291190666438479533914194826812826938563441883577718931292394880265073897387533939327403259047201705398568759892820858733532863808334561347738482765700769956457262618420829041111923677337764112873958071884338927544564874200717165321202562111621628268560180147408982578905455368623765081472110777469707848073784261487901625562593213460172776403974062323372401285873573119986679296398476579566467782959588784975588658917331768685347298711833683752144362182377116744892762079175956323384607422166182307871130169397333660612825086687744172671634401099443592979095724759114635909700548210703897646162326645832526657484895701999709746537143225654749413021658958168795300598612562236744313718683036389654984029505475688902404297127238219039364932325469480300580623384016336197141863602937057248028865603068029637618932966493840692517589040637966338056363952831483379447344254152244496475827839896389305669163966904184738774268349925514612316049105030205653852138497525597950836761762512303819046351167048572421348453420463818734572492963606557161076528458732581468481779118124278825575971198111692730711971317240531372499582584987002061863007997423887948238866734151670349621026232928668389024673225689139109504595386095461024224767498805253027227174100760045037299038411571294433858375480033430858842421362976336673092648123087367819979702283522376278597844082440081353644369117030848843089970035430295734731193057464938857435740877401250786136547532410714547521930735770591879356013862034090995528914169784232195102742987773961234809161815914810353029403175198050633473313481396972955499658550968656955382885503081822617723534204195126680283184848418572944974036871404214713190373517272569008640483565630638290407024273478914513289956898184602897535512015338305451970239546136388083342061176841811156052312763770220172292118353690798466186958609322953152214515116925206597172357507619085632380352289421009787944942469970790948532714727309623608179176873671742845439277552786527246986569204596752414591576215197385434585305431577775284047749497471323419079421389785621187965488089713554902748346549142840570172909708182214013803078227219045260764550449384430738317225143430419542341812676663322342443330181165234033385092707085353520514789993439412972692566900347934842163408446372633558483147232646720121987112131209099780067919945254363416569525144320834513056215395818187835729992243172173285949642327258743715874509277052526146101183446776286594887765998742190162562353936994449785028445106835367642348316911940311083281776607330934344262498233403708572020469530114187001098377505048917801257889807261086752303950388359799395697094192776885746935076107905744092729023482300651662593506754886922709208151553209780832226444034449013675871863628182324639164826008767094057402488460973305719591270832959216076837609144895976058238239112351012910471508335235671706120910268268159326857743290716026220749860003478303811988487890448178882863630371908761398802949550934433507914178473875797102681127563725420961547526611424442402627656528968837971904159369920303079045470582608879366106131207256625246381291887663357810987818642443272524884892171843356474162298485819635526073506823788218546949208322689174813678806721999244490510110110673964603374874664497310262726928356637063679181803404283880043675934939268065361185779046276707404860997585394856779739491864816903011003397346296984130031194200195622506303883356953745826367775241696369565983005076521911557489421508514119812294291846307618912092662555012145390160639692711813597177244169026673154488359054042673600202238340625341833831760713209420542167216890372179757618640625586336176037846387124722865591459383085957436001370744176404033284816110731294649499711345185217723479010651425082939424050086908218906182894900851071069152930128163120722199636993433700043080709048522463491075781832500359706051142331534646431188831124001249782929932693899375502412206290650931351357414103614381483413669130781222569873108335128107508317620128464114318525821003715151789288410412044528579620401665201018684188442876202558193863737265692403110927966998612143929494114650844111888857013451373957185657177648559471527922588885340977655740751226129266076132168285816388074986600489395879651407528456219090061626878086040090279090510666122515309662694715813417211500821073511587658343477938174606162283614441122843418593318664466507922381403450215608279870189841186535406544251595021553883940284978115567074808023839831648524333314087693931282204327781586698684774775253498086044583698706842056517045651242659027458595019896980601086808144776300342593593028537987097734021601327978891414262965936580722169917137763644202277657036023440470268604100854358595489776804838120672616944094248815054956088723555388224181180848835587174152707688502935414644631833235051952013987775957363512907740231025616617120887979141434801943702452102298646718324202612498184457411322075857768334293411678627935070884099402927489778179354014482955826371837586337266536567781125854148308056224905840919438960667347476940212746101106086247855872641241201174526062155853409551738941320059548079238548045042190648936590647582713928700377873345516845847777658082364539661050567186231334970170263489344585615200040119241817858588009250558349060870620364020421141604796071753206649146844201509553827348301211764199697263015835040271297253856947994802792073038473913461430894491973403575789730127610290192971954714187047026205475598757824518834496110034107429346585964538358193711269515239077617345385547059669917263558502010578907749747976768438418719127776639922855353156537790778520937331409923837365578491622279882281580070866184318653784210755919699424823630533379402803867006693738969195046130253092362066228687867375099097314665468059549554847054922005106117220176071111501815612766762348528158027466081329083376652408774898668541869578917289250256632104688031816029568003632295935960931901041917698256978002695229081865476726559625704595300548952503604224774430969481145374665326386045898696462715934804234999808657953554815983654518265552361539773457628868423384951794928327488765176219069126991084295648555285386334322668262295344217169265508040173750649923014651361139442121924488182599505781348875663813316635477450572760135812721450827102582947641514436574130962256173364734731334830711525366360824725994772148739802248467376934787612485321158122390642395825986812544090426133087873277022111204240957803021518611644978277740561822355830992762327153366345434139594821202714703797091365072605976821376922847662905965271076652034460308403498197873209101669439419937451655747078828966471213795451338139658864606637499475676285152902908392438959672276646844206818070852440663386448389866736585356235945805301532917769503096458356369125564558354425476958048366868974482943861734570197909285742885120791362615931961698967631264927458354345275122983424657108440781101692579767783142085084930776150052634775744895595599648089819465081308469774096965620291827863155286723190233361312260170499760443746053785209964014669332198594398635148798160001214303362533809686865786125846583588159392976771694123041579107799287607181299919090065762201128567261373682087098757727292721042222412713153722127797811555150015307895956089624492234996284136196920762650633747373337909171590505814163739844723464852546172569725792376095234934763084056634664867581571101668258721762532723043064100284098506020151107673808853159172710192479328829933727404128213373399903486081911817620400691566260427413217327645530417968279389988618465534388080364614373638338658747582100177742966921297018045716979340753247478238233062446053754383491428724131710463504286780677129263374695549769335197215705439133098005064090011303820149503925429526807925645860673967940962260327914291120874591236904991667084338937368746040881116032756528856610278622420077932885545871313844822257456653327986263823761795579418078594256674236154747057199540881416018841734246824438510801443487427537578495562082066733463968432864730767359390350219419914430089305390610164240148678100578229630846860732919760613408017890667264222588411658158885650290636863496018934754174260143667530537483347825837278167742890279176432470999964755410219386036855750051994765179249871042038314548043932112408223618895147501842694713403409103526301045194470776247235426085957321813521600271602013345562571933113532163552889506599093823208389558560273731507984475026138729272221013723387909194054929949504021159824987041495829680704796294403991748469709372930920406991403180517146474197005171891297342844840522930045001164603580272772802365716636921638679826935261585441060433049383469375604779307216513535562863371228350107622563024645573963058939040061760110859089841654586518608339027525044158667421795244308737963080824929997611778602144193615102724597404076386547938807533067533273941226514260488281647115703102425772276387174560076685375343475913947227269258138106810342473571002183837433828293060645903776535235123809168518588267283713976609651303871820255410015624996615134193003227854563494444592511436361154682832247575167292375264193327261854274697358105944601534611919792541346923076243502155861252771949335432211701366868774298612639945794886105579470816310164806211847482895802291834654219506230201813060483821560531089883815656389379772580043466421301089474356728213024476258289977588093447058966102835632751843011497312021830276132932267628635922658657522886144878949268585753463759018506940472185477864391413399005680523031592114642858707993332850499892691145468200907367040776433017273731337434877135195751768107132850209454302222894045272781990527620956836028067149823707821742415510032826209343758785907405574436295597701014018320117714037965078977786864210697805680952670023324517904201538261687488791023702634707738098424446514473832131337864626568754271205578210522509252052083742249009387257023025555481809035443401469056534806086890085888143730078753767710810038023472674394555088065193020769734074568907556323734047958353382882060655922258562266948793345049191099574075012160173791878064669181088428020475212856526360869816169082310635540566891033230218932023855422843847774619393023229450067383851052074869949816588482445628891957081435142081016697885210127145103542583671789835295897308702150159707550598498689291878162801853520670229031843326301151396831769631186874547887728240001189833335675712707410851761129910801408181486943706427486438365114004194148163635037437379594059767642983855162589763419649338800461970533387925227068767177477872824798381538509517194772424263340406241970357201601874963300131686970660394441505882339617030020336862767323619716608418059626122525644288794493383554023459128671530172703018388256468539788017921427093409213952495693183467674229730217232478591459712475903583834442721819877978542967202728033287985146257398018908732979044026354787715948148734423014617582225808015055552670190518546517185468408863860169979024460768966919834692670279701100971754071182896638830881913355311813393234063104125735100624579111805362153175600821408828955718381192407722582270390928845481596487687170153087801349178936040989704089192663218134441722072713067129554828070131938835065727800761938832315258202064036312235476834691378046115497715921081634596140161694377425700864673586929175107435775387249096037994949729534792610825956681051161277183895710095424018680888235825454346382883373096350161439993923685561305180220056686724604295284570659215431405216597438411038071703164956298401056357253473186926189001981129787685804275200782085986965542500713219984435924237098314681601760509975477851109828107700301098058211789604341499010891253154431095113950577710467235885541175157847576000771244327628571071863722120657960102306604568085355896256434809320193607433594262296698333165400349369836635270198473721709131525422702349661405116966730736539123778830153654906061679553596162075216635315977578333126899645555158343596260261935755800999932683560985660559604277035276143586423496810982452470544562474026852533406980093694013765095376349225080920298076128882898841498562059564821682118100564732259392085387409868694276819958674188415748440702999392531549796639065452275810729819103031635754507324285982627644413169530204958321260538322481696681111485063968400522173473886606097419989800684619852668831182506262443273941402145625468379271944279480403806908428728548727345720109749420550022502442925071956601315882587567349541509941914449232145018015792192535304598555265189254344647646862972646040975869478412896209674583807188344918471758054067124827340491463434849982856323837750462377582371770420600465230645686307094450092790479905429132583147886740732567397530215613198204101512249596692405965861189450332171219171161391979384863716875568056669791233370609890334628484181474176104025729373265072496621626337066903128101075494782072688814792236695370861816827529542240402080292871936457109389536615291610614742190558391603521619738559589876587919560806005093817929643596564299714039918454089401088484568295834307485813042646500823140940189166556871389237441801414296704076420444484982873469251943370344162930732157731194766776496175535878480104122804900480899746697637312135427045036082286185546848017734998711064292892799465729876423543919597905783149830128481058954973035406004073797223311242783145778298202399419943306605911166847027938324924986357380172849681358059008718098063196192354859447087454717925093983282342200574436894961713186517558217741411146008685570906486390365536256129681812147321443213030197161213167645864304696345325023665264347337951964011006596529017586680886388561892158464414158541004909060739971676735441241609351596344366773955847340263584309583550057793765069430805076691652642300262488203652356674616973963017079415529200187169292090097947474120195871714864957516535307689422774895843231476411970287239826446712817862561721350831256923841509434820819709356144023953720196927082886443335786531001292103808731952227764414567718996545224650704394112935690464782132408619821643941810706225495898394219981176199202179973741183374905593681029110638664773968053020541661627694935550215496299479774684169675600029482542230242558251455302230881995386159131582669090366744040923791542435993706468917867627623739698991090984128333505925643275478033292272304860183756782069491989095351649038421641607177146863306509462177201760023634294250459472806754514459472639731747248248391572846449400625067297228388945618568627849876068945259245732028139456233247958680867855177889400983229018532541458228756027736726180876479368518766933861676797029632008494068868608588265705992161848152799954965881516524681490501096096751634745671990547781785543152061990533280825355597330909539722138099481324358045136838635727872372499194467516787746116597135341246053921768456628615536454774472610861964382012734477041970447166789634297367132932907132489617020668789003180061430734873060577966545448925283337231552064615003116314326397064733716028469534138849287591524082421808930982907922797144416182253790703216517000150242854727170179541520536525514557007082629472409008633985408430428838636529706162438193081274532164305979792637612339644254743887685106138076753739901956207912878765667323385886132107834302996434010065933651083090821327240151708455001296303305670391003008622355187619935280393029102879255926849115625585302397383956573832767569606873652370564137130730133267969657755890056875288091953555445347831352930553580892619401160443422678149418629220596718372468540296467889267415910284276327722200498040305865801902291907371115819319437219654378068926170653438510260275221342490476627226073043875190044987948427901970796942543371275153280490210720835296036846749746975531275802315944918961787553549789723874510637373236415312323855411452273122189651517304473482960209416192598645605362305063782414541785871348282666859578779663065224267718600978022536052183876149609574560470872934528321905919100274861008255960599399947360670983365373869397838409597540530431038629284583154946015107364835874783193001438512916467886018107568065204146421944665723351284261991477994416608246009278109828260914471499214378233184239506506447596063500567789950804882317582561824848501862019104393683390449787174093811027336145146299961645657983155087648461930706336646963283771659036627422734015311729474844262897205513981845738743215773383983958777934148824110226177706606108228254153851412994193867050501446532582796735099408496142581568823348768533459995719639677122599826687740252297947666929733042480732906307473043452553251077037015997402907960486332200058786703611640435722333675536117664772355684535572177498381861481447756734032076113008515940895478237011634113209191548611240245464631752096784905164673144673737278621122931564591928906738778870968718857575435547164630978282787995484516582007436064179587233240360842727707931489634524949520625820192116510412871820091417891036824989707478299756779852462818814126245293194001599774502980750085709178325010018738917911714409623056256513874593496241852770047494522710651196867222830655550629959218449967995345529117138617299552006703415455346931913646623250916183786979975990428923088770051671799650087551967800816452250849653601381058499886511617418096713958432435129742345654714548200086342302701545496836598413871399782657009508016203726744020190008993024383674596262365276041161603505973990350586927047291597956032017904056284582797884368627023518847540694516303235043428226527899149713479811711226664301139282359133328440643700065884527525585282438806984823358041023879066096116415043275544641019115138554671238600685511723827282894714451443163112836323499236999192233322956092114014928397881466784283282353205266985605938268810891990392924544059075586232369196443847783980865225463362308078615363419005700028618575314915745669879052186127301376172760226225758399012153924082834094218902059185838329737401050468399882010300556682197977246603342645913250960074615683136678710762189021338952163950802161946980860880428622440134499709633216903586667726830540118231047106742994371029110823162834986425830794184197557241475248577432404308150033271259023037940000038363309402080769349622514338403451016741681572245770344567452554060363237913975868551042666639831047035874311144230236329331826246289091148905826826704194089890955082648844822683278917381526289412093880929264562360314511759350019184887022610628748046860891491826203653827710865618157437811984606321444378241989894059716920877706191158525329174547167637147751971825325833869233851630824359639157237941036863515885224606844223159459993344722307898305451143462285290098252953023402568396288481445279135056985198887344527379580290084526413878790594359915850115841450903370463002770652199604640829802473866597521919613823311312304255857485554849925243721036069533484297170140149131951152585592453655207400474484261804259957563560713091039651860876211641367016621145298345832506781023094080013944813669426322597160806569467429964366304321730074176387243986722457896565496720700971738032661915353695888321575281809879553330426556672796852804188740508965222133140761496266931650084003286061829292817958631181492298993192153073389196790412870559276738438922803176177668067663560345742849653040701565783473371812746376726989667556812863726559935717686301386130177582968902642620322574373714165396739434089134419031034901108132403099469277025858297807406392709534956380924647252532888585520651568119903812405832464350584873390904640475963456891954671923510001796995487173853384010196152568886835953321495556025336342069459099691840209500945346480456138413728829072567247048621196743181823136189437534818330420553743367873090334650124188666335305371113971567804888104044884096210831517880575986249633336016351247609353987219211347446413138208277366982120517261945981869424223253356726985593703656787022852884900332453722752486182358715038785335248585730781836849880672135466898936818789988296833972115534211824480273092887351551069064050315500221345041210708840978701887952314693432325479804959988656695116224624467172886779036513162856886079858048931543872386917007245427262663395561135033210950028325967713821238899943993827754055131458797076764199244631956067572527945060504121673825275491121796499869255590340842581688338194007812503046876872400003463275170434737487227574296122552063305108806346368320908143264254076914457094015701261181420076007269690094162800078947476020030916109773503616243241852260557471473069648286588113422675133128803185737588736427408754566583458588633970223083918678323873343428349610367650212765567275531486185538311785749870198535640922327176588018381863656305478020249127158553394058208986715394490832866438016286533870671699710496161037696722554071410003413896854080532116379342158198218912005668667941152678751977888658036108630628943809503069998443040158369502557453194793162826583674000642235083392717671370547502984919775639874641492448979123956191412066910398144933333303682061421653283793046409269088967513190171176556490179116598810894348239869267164793634193255140175980417616236553027519428067323090715135880411742952784660003168942449493127210673026106122044783050503506508751029163261438616838246479565222725141690476923859765623614929217825643853337357055879352603163911884340560142399227765711453116961086364709141522879405203729967082814177442731374843985200022476174765814112887889161258881652279468719082664550315305490177287349100052386528368133335294485481690100915476916024240807885256367687688286542734780194869210680835886187328278667670226376847070430715294400218754363232760626701446598751218574088703839699161755158904278506845011590487696788290593264449780925679302507220622069311949177946441766676808056221953264776103114476185161621644820231191551243661309333117831000412528887610424238780112188194410007532855826964059705882252956488745723310196798662805222373500407815361680085459199066409942733927482889713233379829846039649771290088350997790933707364312024624456250119938218463284851447968796787781174705292046043147542585319847204967372042910087853626289962798384822335320732314437444223066126428763905091524208584137699573938099954201777249829169296969983951554470619294749626537813621326689896033803710561121689434635536714303467235841615760810598455878446081154967218160950519789514916705385362315018801744976990720998700251092011639959841029848541320462079799171508048930893808854592475830512584573012309324575023421275206544526780639887103847597267045891868119344512345132641168763831844971067872861818436417220556638460304928515581588284997462784178813667161101735435966054382225760916994696333541096418212522947035713955290940280035421023367011708328256579558689415530321248702836785804486631916752737131918416415036476027818366672272905132326979310556213363537158240040509845011626334713726786623158269237296989317006561056889246926194299001453082540847427896892253369128292789022253301491411512050337656740493834070079099213061206094203989545235429870748174114584808136789684946878747157147557410119171853307776138260798671734981658516680230392219702783643194090970406377390714268010260558096855223693571109116400404861846265359420014418624818761888468798384553795537044834030134402376330698584817611432061689001947364947078845682551975716000927826258873286717891044280463668625009930842213874617012529162640635141065607361787169847041630132298096550754020806330089074969307214960746623113580333007763601032906907330853745416609106075073927310486912767205430022593625937253938276980833756746150906386435411729212159746834330562758322111350122308752879296133169378828907299575906978832800249061541801135715648143276168830859737753138505861405965374575015339624710160728333344847771319526445668775950871669658724253715549228491749965066445056226842779354492811719805983982130001878185834828383933901902458170914283442502647250111221260202612951152985872447208287720957343354932702041022665458644427030351637349325288480649165165244510972882710977211148952466949112377255347198860167207613234683696061811725582719008827336392043242626758039090551023457032198347863160111852111480296119394383798407511742758523407319253776501707044906173637435061011769499390636514714547866600862092056996132332429676658964792919302131526926601750896111155790207181588131465553973926559864353790398270773641550339287281665773740872340257399829560490263351743737034220733520936649657107631149936976001760104491694297985322642311823899973128119333842348959656463167131395307410684745300437271396305334582473683121169163945166374401600935098311712503617312910515377226591414724838691462460179255854287503614636826170962842987046119268003402352599625656433552176226268328222895109840606058029940227154705809810427103784217888155354618115807410470917905586022627789865910368106790689351856760077248699481117341639682436081542827054575094292406800770200792163685824133269203930078836300049293764609163704141039892655644339276631823195850515583067883230304252769389669772852802823130680891542295798213974118855846658559753668442162468642741925643648163762759847997274513683117057106214197270617199171409788123051114046043304995765760628356109615288347279082288687270710213359071916820569037376553500625244394369437090866436808707448884441083624735142344453952633785003925643070247206574725696615780291683323966641700810330243777862503734363052165263922905576793763127196660487367376453605378337411189073251094320497331534483351183743374429674109649692394371099243681322168332718457114441536176117303856448607362363911593779673599690609881661052442598299240620139593425378402884318038771244523274947680443673781931554682592705334163492231810271585414186807375216185123663698234608320858065952173601075193725865584565133103371351539377525499051385945318107351076826192834039604560023197238434382305822612207910029687828343801138719324392020022335688316698212505505842097531922636716439151654242608021537674982921323579901932158561278870490146764199927147038079112509526350816491940701846173693108261024747530757637080990135236210069741654718446301567192337746058267372366515020564102484386914193671949615313724314571000797935555741425210214679260895069178028316405022524121876597226185854888800877793505551614472714273712975023440706958381697962095638323551291251880786822335652184899093290365275531483454890849689099265417808221875583552469809334964384739259782527491663246575122809229162317674864854245298672094835968626968090392704144177292420758073668821801353291252755274560460167267005242528658501123902731955972754409180704139181019373081061269018640371618757568704413999779152958031378138029343144722374476624840217711186230161830874431437752413534106348319884234430150582373583056287111666810249083272939629505019633803784529916909410569126203767249710398856308828425805191473035716752054068620531328340400862869269652770643960879291522742410483110016352527070481474777614260458852098564341700135289629693785276003936699860039983954250851624922734894988158717190769612137868495400689664259664722079469332317527406897224605109223836410464457362788776190592846853765467839226782507778177419140614073148248257121602735478431838476638035139650783019806700740665368680461276342069213148673064354842800065853811968232328783613819774588236974995278226950676988649030058921232970058204395650975666572656933217663147425989454513978928385590097216639883908289772772986511156475271177008599031179865726991825110704433105602577367831263576165195213455064902667327408971116099402976854029467173620985513799481919183880151897310254351432528478093942825202616464271429023846286875885513930883947586741684447136682090315111772151848039432228144442131667499148455304357813693009244218063989212641799947092862560350149618277373171131731671098619351908417243265512478286410199534082452345203682685313683480676797560341340470639219103323897437162507437705470772291741008005497026230264760841640183678579465971913246525106805069887754615583460175168879737581107105481623539947631604409101710250968068036329955419017543335141827920228416125469182316844910278188278708294035283393000359990739191138922482643821100431696447943526182808454058026744047801422907037715747998897618668360542746201502146248521318427169293256580027355347307413120800616662213428137343910387751254511697598371649829174486771756439512659896085304544617082971190306028986394364588814675331296631678318306206197106285917242921739522230754426551015536661828964336318546193565788407770551743857969303439658045437528149310933495765581604222890118327545790390232348123415674048420350450316903893618716072350283559181600340657585200706330054000418582618699233809386573255790045186669375883792581260816095840107530000775801683893382993080138560902617320127824342782891137564418230388917393814296672127532789929702276963841924339758927417502032372980516212374101416779517374141807639622423338265432121299701210501700218101722535971838171934553236641731437202668054065749684093721810813237607258210006169046586943875538614783711121134234703365231762333559992818590997891333150791935503962711109609662828951840595829041080364789311904811574129505680039267119060742056542396216667385055628634091779619991518059004451684382810639040205313194525047127058735796936214023948888570145975224484884357226092340744719372362790121853643584687289882934878530464983372682848717157753494056929511869495623162803669027842291460748549465974744887137534005787059506044310730911956659237110361481308322159460125603440402311769865818101034761008516670406216745886656308534757309178361540520962088984604189672018894519244072130335465905746733887589574313950582383003340601905098004820196129403231630333694137962342272722698750099101002821689004175007144861850195808666114235363090259370111102958131856945287901155016490956390258590502843044829290843458004424901096467582318502528566880274417135967164166341401741510958915751852036442828998897737735616361793549156254276569738747897412312622566668007154601662874104237968913487316112367923464019392237501852072518686313541120973824757420229220832062718705718852983797172567142142539265163810299158090340517589620855229798264044136411176895297550888506333790140223918272613731684990948997992311791792762273767483467933960558392315731020680394267548357212408598870406795581092318923100565253380225921947041877441766636951467897342059061701423264410354104469737769374900060492304348779690559955308516107400167529296178305172261370395857955900116292289416385455937875874097784005327626292520937881282402120924737944058611914830253880583380432910058544658121349739413358831030915978439680871905228178091966315019185706468428446482145226467204657483238010943544010191315392336679579297714117872686298468104373155446968871017186407663655299362894393361802676780535454658645327994760981488579985295137288725375022195184192848450121439299134757224736687816193645000398967950650953169540162421604468674795747365482675879106239650992313735555836817465866713363071261383175221377915894266301820316186736153792404798194074152527851362159998853714722791815505927538151570574139653654006294444094428341443103661502507625287967134008540171100162368709912372650220831767214026264218080028484675023916022790681712382065788002425135532156378622237974597964222834190178958497825944107430566078039606893785470001012102446730410551858957249963719687121910319809885579557120152453157057448535112065131935009368991101942704179874074641528570677972000291859465447175373616013425047059125703889515175420463683439334931830554859255470028799403887749548068573750912006905318628433124445926586814674125111660289942153625845602852509854507343152494960594170887679207650388455869512505772306078282153557532179220184479455394947509017192533762497279038426751621021923798321017190886107417173010084672422256605066564302083320585255127386667544568029487495219606740397240762301170884809719444897729829358090671101620911837021925314800083078036484694673020126055506486119939808521799050202944846001366607679324365402836899689305884829536534232607155804660272190951386285773379802902964306063178179427932920134539681542502635224161923415309114786655062633295113186421475149447776725613613940114001105044389593885009217455816716974781564191824153259062887999623051941256064784034733274148000990691937659912332030052278143318491662007845975200402673590115442605309226983100841751150575285170122187006751261859659728986141571287522068345453518933342006760626402880663455993007803507259292342897295757855443874172368008772349594648311132048486496739752035243635625540429781101326328279130040921209373422908127669365333292902291059263008314160667306333260379604468243872165210214917595656219750270731739095472125923405735897040084741969508131176342333443143677431093865165328963442459621096253295384034783114073154680875217116056472666892532369422240451302522259673478301972700029292507381469216529948932773454426256436290385723422755644931532115946661661998430872029764573003979481251130921821684286460521808899416857385135934573582375178632339905250162544970699977375277524839016756830588230657262978665707091825317357620453526792250253122349486992048707242286235932740676713672925488522264705296165761512267427313737704128016594273352604302080142627794218101791249221173186408543540983070159736604788365919183363151746521639558229536516673372538675087086303021748447581349369656949410703825083658567732407178077824729496203948859141221216934921222387938598327163648589971048447956454813035943056036354981308513191210962847051653994378375975821130560199762863758057874863654218972264233308308059132326007887450615868430185745951900077369459715736608478920171710649723618790884045069933468136149342696568699507920804478560417115649059331128270246547394475241210588301165659003756008261498527439984913589376108503423819776013046432136014094193230183830074066778549326266119391543242217800233296858991316723334524089674948330335281428875036073414334239935033490539152081430987506828721713041440504606848529824824907262878416308826867240812286206649651891102001284250685249187798622007702864871732348394576890418128917158146780641999985740110189806185737898142726808401513749594169962400662189301364750191011833243853159486555999722982671787628276143354321358667929653364146421715360073444331357354355358811685483907807692739938284680959588168355667019362672617758764818188996213671065430406291336891607170489438521375266538157639354019009431833934817789844628318332194192597427520695621562544154053981191809296993590957745762794655964909952970047226977783288899071789202430544248005414482271900355050172759600045076994782855442055851834859695359501009722332790328810650140618691395619617138335893053938408989686044173294098737418901693556619125312610529688097339064142219131636422544171909383547275200477958057236776189814204796261817050493501878151945004482885751107195478955730286239580267862328882231932900914758209861184567804809091004892364436060918873380630962515979629297878818349977467948610869054262758148914557933161484390780619763592566404602743456905075816911837762756205228252030332051482247889156168379085928952082179044421814894658576846604069189340240333504283095571983651530219001816709061697360704559397454219028977083438486368500098774942559819619249469769485206241915875540039166885019396614842432421002641620228226782741602946769404090069080008432920956718780565274993042474741602140073764227504414018145989488912623402285697968699354107142528829880315431831102307591627816308318146543933978204516402590146838247898189934239664132927289052562020532856077203882810057784883335591728891187938428856311539471472887623123185277729738206587137904813823270301385136006247170161962144029685158315520444768445397671944838174709687892458667247831279915074327150818771309012847532451777828192775003114248718000656468780921657419239421994692276768562910158305057895144197704731468277480258733413964395053235858811125030643506814399438546920572102890661163416213169914454776465068492873815147532003759786607892237745706673436635456039310841789743116243278262344871304286634107578509246392763576679063611739106745829417342259197289503967599309880021550144765147282343285282955871560920146071699432537331159844337246572008760342171519452438281055557361295863783175345052223987008094492972735960198729328520163889702957927972876893529097253882924400551555895120633893666819669731047917401356967394206423290936876614229632571655786026884490537860626139649533413558375608165959533838784819956713661458657669594080133176379617618871693649097798728617759533889971131649440260169555826029323813223824106337455573431786451108181214978650978191427261717246213697240632436493734311464177211681085288606594576631445038052025685970189659832442858480246589260789242075393280206791641594708762168074970515771837496150095458713094734576086450384081260336156346595034018041297455266727362121598638884231055674560370435049856010134039469310201105539806367028023230587448350252587391246042743495785448196383337172956455906048022934103252847998593029943227003504799108776594291130546977041685049679078624926455617327625753035493382852328718440454132928254750681371989539392807607791319912932520483446359054105560947483086228794396977072804487754673962815569473540645662433508510546611214207361933146549912458759694726215424675279006336680812073178077949323705635057765710858530922707510117271785028072776113889280334871835456214569886472888766374748269725509557379420187389111260130719096975933414365741576084362808885234699178923722995233498961035921288558639628822817650346277030673706115495536095090322686445980695849984892067292700018984518229218661797507581286855854317338215532263546575555832384565637419286737259741052520743619211610400785879033021135747004136826481125403543393233714473200653421313685034652696998490019789100907882581552946515299531301647717963997008746117424091870257567081605719129046980962828629887960603478551328296379923189724735099789921242415656424899855380085514715872191023995807360561080089669915245431882889502610293108278012043674153520494513033606226067100561294245737238553134135493025376264445970013368554525878844649710673486719529161086439819549764137122707024206900124495794901083979903983750368705493090089961200762636214584648263249219499641852392685807357176087407560060242962409572968311360262093581379880923258491637532645151583925487424843767872407951899989084775916828960858390739938623083890648231433910344960976660439549370487760762108046063678248099750393135148680580762824500578194682200121056014561972560478299101122650113922890674066124596382183912739024897280691882888393779269390586084550932124549999778650554304031014276416803746724828049220817589716340709087552455532987480885956798698779094766217324483840447860293441949902361974844421897912267032569809957743844132754241165652125972267326043166174129991502420169289300188085843157523379920236631827262727963123405752915184269878567344586692704212957227547298029138597869805357615409607338783930656182454136487175463855624707002063691630688728320607798326055949858656066918636953454059951035689618860182162479608266517201083841772644675697139423235293499689544859069192147611829822874050409457463832041795205804971573312989112898547768229693808620391536846125746402906334840815301464370178848902437428952065999067141684765657424577550276861971782631203384065373849831957708099912713689988149871723482360053995410782001552654821934734660828169548002783327252418529117767344758770497708819818268908275394014606696144172171739221809674148388886170933657403068125583055586187135017464847154914792619257539616640430498439658438241371898032096812602445259413853779643959524710372999300841248825879185916396195241216996045665247535808820297726018852630259902077831802192586930464472492422094281507680330293790069168798683110607433092871022785064296374830884518679498543754796719540045519384715138644977907687571870255043062708365063694292383683520892289585822091710861828969572762202530735180309365562354047803623512997618547285722093762224883263676665382914373011558013514682787521654939091799244521526410769222546695540682310760243545460371394971913201226459765866932954297502328461887064524970857841845842716646805521079149251723430209363723755905060556801243745763834822112663751839096743804803290715165603601582486695574491576197504805726748122166697720001292413014171903503894620036304807826627830414715671416288887721976010386683147948900404356569680237213247417792685763651209892281843290927000666720056470176993108939159849173232178008605884667254336407691415861642820918744168427952596153819199659606784811702410515193995289172379762388642236991583392529416364877154487214481376453156931212168755276753661620787452335905273303272209129087708327275376308752115371497891759466614985712376327265596975144684463226495433745286134726549587746507911012779568479377321447647140607436430108413940492647183870013517708720421038476260257473445898858205336866908552144923933170145991273827954576910219274333986215861778734894764140423968485381498568715065025947519283535843283412853859166610933509496495837569128607304377355607859209800517528520076387467256524177897669711789279006440068735842544312728641896105884002374008159161259506687562523495746035291189626096829894156117540905264744093271791907842928940348355906469446210322796785748135159906645705805805388205541350593934086133448673748163746991021359200556364575107118818660588013616598145249612313821128009632594590433524573957444681812498165023536950715616848837079769060940844831759376932205363537849073836009407439974803664353815993137427903448400161199595196770848992966354279734007593687747452728520515427340695355824728148539503601008701129689015691938380813116371953073252067010709734803903295419847791788816867156471858685691564569613887074984003820249321080955322801279448894731116895744645852877782204005547925427534397887734356709574500588651387783463013911155634636735963851488518304761366621938261032381254162592087364102790042013045002299998862690341518693220433825454728139637048400136800600668103489397103421477060748051618620724400392461979467411421557126655271390184413212727233707880454346505092039317541977170080078849179849683972149157960633845612441420238780308059058402638511072688184131164744679514556105228813559020280473366732616489646821840047273134934591768410022782579147422703522361358688586899053444773258086087655340863634072521378547952234710127765498522070995280480000656319956713816189342807372067045834717354189832754015135186084868233842401248578124540993777249772631324927439675517777533525073176882462214444192124129674765368832609827022561483389987075049013508245891576718821207824403869471168411343553582153569110300907262721889725112139393775174545352349740939844709684531863986187656260334314704046551042772788290953066476949081962522523558874338279356175411415817260001867123313130061791330307466647053649386700496376833123681999929306839250810034763186590035659128492012963550630630197986457030171540363124481333416734950405358525340061524544554861893110736429052310484681247103301131394463984114531146547599700102604801584095322878737253641182053882878433978307119493402044640722408153420579076346657560430857786617562719758178526516651201257633816282956532870477521569048929653215297123948887935433204528868929247349821185713484471144575271496631416729746132981653618160744646869328530595950479251951664463031539803252213686941790622597079447379178803041766488500284795344998394397332821757128573487133685297208853839302475510141066464062098796562421824070448521171786995335501572375860578936954510220495066708925696138729731228055590034277046309571461097891844276264639986526368068771752520830343117287359036005527002569615058718923529015326116022840562731747074770548257631413437867551191066068654148727902598716182322613089686479390420615163457267759217503406682469969706732937048807255376983704233553413131608386245343083284472047130653106051769140570969695452191206833893063845285623108766261656307226291106988323531472196536216721442733466223062637286873309200260453049755173618706337944269455401276778987217903643669211929680768111403476350132653430016009732180052093329264931260890245027130550428888747998912196699478534303366943085907050080222013770771602409028820753277823352866830175280746671406563856852889195072556011266856316710978771767766866412194820455073443560715888589516690436797231675722576273200164825062110946181176924388219420140535336316336472966554560924081230560975916306845358318798843753785053920298367258886540910710212487421444528431927073916315553203213849739061101537525337542424532502207970663178186981595539909005911604164528608201265619886655004191467205021340358698642403839632545785696028901861959808124624054544679840723952230001556040250365662487754539291217161197068824146893669811426874432996337706101742793952446838290461281223620715677668977004124215709141616807919541297998702865112593371471987883553963710133247817410204972134528564169022729775222046135319392094832847539400066564143419511661028285347932086990689627815873487952554409678609000071795038275994877511046401287210427782803699969995697951090927895670409192608339578805195984714907467497518201870324850680847022583335688807742769860687909611487266658862342361449002037532842494309170077687533631002273431196413707230557856603973659735910096890815891984420677786841890399605162258177280595887117163071688292328294319268170619702074891204169774803403651630003706347916378506113920408496517024000902704967838205446927016013404022585094148444528857528095150376374727926222659588281569263107657875045779907275880718415739812927098742100586856621171743819034433560322177813217938623156955596165976520890897994831129487025022339189590865224372082762447599557343035774851333732169384853731953904138980011018736636310516771484438299321056896423656280271024128283135260410826838267636278240324232669475774787424529601718963393902380499242145781401562392515698088690625277216860285405895416292268245090082390135065708146996674004451632837994997848256436730492769816462828375065121542313161561423381279415772653091108255418084019808935430051736731243452649035319471832517777366301012593563641786085182693245204150627719795617190060469957340632305887097297695746529088749750648489387058239248081725857408612309786577456118141345273339245211300031674093626627519873147712243318729523737661631054553719486210434944835063363520453221834704009045957428576801609602417196780409797488538796941997231743665477779224455139885288546824237661487124517150221408324710992797414953736343266677848107633456981904609932515193569945149520800864322881198813597788204253106590157201802191427740358951963215647497276871225976235027492663058562246752915992505633937635484028905683135511036402452416586847406000840998218889993715371462514115995930505264923824860954113681289271652451222571883192156416341617354447716269375193803782473134015628067619736724826673994053823862555257772176001121489010868057838275503900005695753245464892625605034804112593956058350934821436273241250580828392552670228481938015838934592514198761284425016754694951124418246004747215760821909577717814541717115664770495056006323658564329370683408143513930726600909918506625488726287923318743273061133693775631700424285676713867397668692894330805371008520514542853633278226530541077774582298488596853608969323212333287486318869540950443403335349407957383126058094378893893162278605842515256155237735140260923642053111754876411320739046387608634879947736312208517982713410524287856818657610040017477515960451321586003614080703681735597058967124987549241920455335335351312133235311053746503830050651915770736495321112371137859403317579581692799532578089154259167077200802747597664183322962594114483361551664006351554239589429197618372320117817642311297165792476175280087831227871157342909781654206843229587929553462799979557841130809502373497973835280045332749896498098880015901689851160465267359647108736482703758403051117341746217799356461051958509360682435518941394174304602691135963241855066113332921292242580941760677345324927753608860379972482331589515956431443325128764466840847167713657023615481893577380008736332397296510745692127397984277473785709642092902224739890925803242755236483705953710526520758146912505743446247806709231424458702104243151391517368415513037182309545909143193255186179741684194501949754098223960387600811072160742068467081092308669939879797028190231347603842351324482837450484663181408991134393771406879266494655265357103274301815612321036656881791760495277963695373030357205918633703838397220207731635477998886598027437564693113582446136055935265288071650120012355051097573439976022582245095770739452837994379295543945714184222792960854254713678104605470933846822542414255691225080116969091731595435428976903329445087541321690654935409540837449070953378951997283648086985097020318148905505582484449410540666187735664120134037630393430553155168365301853173109279165095764561413174233272508107049504987795723569636094689588192548054457898313409956875286451480224250473271737814634350621812099091914782048896402923434176481287593266033153689156977818804755297352766867414410867599714997102404272369805403066473221616791614195296076657309703394760688613915719131380069895848771900143546940450492197783357866654111534223499274029942224222113183533650787554952729012468477569762847146356509859629461489736488111049377111601845756037590217562230432376264793695811507225587852994108680914629836550805754604712393674039301470904662166859440044023226586871230975234746785475212174650271137038351119170223839865373010897154545156295520995856939147258067003458491708806853856696787082187573278408221126424271900740411565182403984358412588392746496110506500473808687141441375963675448242707294389438308956281557296913811189109243646905229942287741291833681532625279031962655952771358206938286081791637280352338755914068498817301257796640336150213247376222927818259482343077017771358034204592203287722270648379209783087668411988257728406130944894160381971445362809520774024784643421977868089631763166131747240010978455059755879748194398385568390294246663674823595873986969093232389573194158604744444586019471785508275959968143653872953863459613830543233138539517513662520909925575416209644450707305759135674757592428800510174979053131144410635567413939510680644805876324910986900495064992167216186373375370905145202755758999209129940821629613294997567168451443296699881465728147279782258651888924869735755657463153362623402041146658403420918540261076600778101313826755838325902745278293042232146253930478750366742558891424987845001195158935641691885543595266767531369770150041848628905392087903001321513421496649647740390407405133329892414161734385713790858481717792277228613466596820456872701721055290388507244794138671056170036817708562088114223728576232961597543720373028081569924313907935815508289280856976754365368041746783778205623874245713909261516543426136347890593243626505684159959853631148018095863642788148692214514157607607374058568894078898060074244735265438953823233306809159496108173897971781723989590105487145203035037144750010331380756998412603215919279049036233873264899251244199297750940867764172542703168210022921371403692578010918671642396582882897502136441999214646890450679483961942062539258894481416848673667187177727813547228418269918282911039238402148019931330754497793008415434734726690351570918326049294212077679747413011707040303586081503491772080076272830508694113762462808719468973297355452457304580646214381576712887598965069979184179969378041707537830710685763485272324857444938973549246990629524730143407424778017177335874564509482369663479672449866102342057155807868094196635596648788468668074468476745889234083378943706503163463216647629073001976206726061414675660292933282953819394105299547352691995186795177419315733041024915921151610228780313630567682236527545238861020870210082538988848375057769012936395048890707198327250901398906342923994994795517650522607972323761225993788034757828634425968605844448408273808745494881920842343826864579854178154970069497701448445763652277807257270166070577279735907493611698623583348657338380621526311013064318700956173328702799513177417193659021526230442296705849304469059680499626601296417243006526575044047357111129229630939254335053107716849069261245419225042088667593837961260216101299519266747528184752377817515325188369586098169748890576364671026379531397368479389535409146742545967955696535686835307088052425523372754721076176353605360920013121853312253191400816599856317170835727365154770060145944564923611550693048827254467015933402926876712794575129777321272407107657145606778532872679319038848260229895427103239426384511818842405590140466306857445087253193806184619346858513481010921955910350349096548073735649889521206968191095029353719787442925829325041050927266232480293329998188990952705426805438690405098086407643516228198263777185036592007362724623936566718924097896651225324273793918690605276262509032854206258363305831869571045517964009559869091623378514372524842426071178658383031198777172994066177826349654995655656413574108984635781818186324206684312097801407957573689995633477202145963460376094644461892869627615371175676147348752491921538525256085232038013252050492928489390316340649789448480224531232859102719171780609533227249605598599625643476956001479038226037708706143626075824696923552631600527555129709430391584479010932982989082189172093152779782654115657791907577616667199155100312381747321979225631077479654222387625033907545568450703246453435582490628236913690196013315069964549993941589176477511576809865304966701595811404937279075343822738612869424483576711804053830491283282274337297949185038413534415409719805279852984946183444674406633710644476183227711617219449688858834491979038579023191044478108574805999794898189498162093423502164690370670527041120586052354341854451551265875117912526314148082629547095825717614024103587437763307928105433455789290998360218922824935426279885148980963210139952107970733834591615560622308111761709822239179453825425955881637988537663584315390612512085129953794192946627316336251310566007883465825378165948859994613475050420309840522836496850336007689082325625818888371527525560709656408750466235944773549688513935108434579191563420309552519599651147595844309315353422707828225394133419747667528188375365927627991800543526133715528032117641094872384109977474073455084152577631390265360721400979574435801657252324053660904120625463899502087807694320597590665162988035774426041690594620878628968141221872243370925623310941504250807721916614716095596923682749359057594831246641111069516356612509447806967783064928606347784778195206459960218422874494281665889022363396221757540021068962859957321340863652387834839508018008857576349948432121630565679244962532703901837368996046686664013421428395100726625156085285461210639636136473566810814022626144150660118094739304255965980041764890078302076363893169322503778155473170858847152884385686821445862789979784200685762641117356431140008083948865266027436775762308136922487934042966821846412734364368709989036011865816375056392047173305775344449793643258696684607476289647393701782274302992720468196699674373031426066186913446960188418937493063814950129187342981963132466998856875548621713975707018996756989845081200048944171958218125686509910456842471925823435722686586334206250951356949529762208146879095433885139750212642620185446125196738940314384771692186020505662279216571185968460095578430974199114290862282673331867621029293585415486707739914690306433564000675710715635408822384597786407099253608648701225034209869161733761011057083700866654195371549973753483398410743179496229232580806652762211021440941594993440517145022621412104677621693455015403666020870385838728097177232603122639237203223238199041411808370681602349548877358815997110424418808954666926562954860274687043996500362190431500400030284251103920961109528089998781559048517024324699703487596056935790963235377257083014729583915285088137896031683755771377405211390219904734286432147227280114281589038412181692494718397293012392197277507389839702179751169458099471047133498628534436458856525360569562922509883320465571995146351699370724957570934229487391297886688036052584100403519194266634470249482829655625550533547599270531469403508013524189108439851421129605231745367217306484660010244912145915144149558329599709333360023716363613824026223330467141667990599090563733716981459221615684708182219829363043414415431082124752038931249179293732483304377375406267438745423284243995973057145486211800644474855340884204690547293307364882067813730269759548610188358482094005012086541852251525378950011651465846945721087614985728275602177683746693479819908882617037816434324838854679642207558006694928583807347820279837551356046047300105370209821348264290890628777979082393542577762263155845051601753221333762030933389218213357391211233783397990176808805053672087146473487753647691104065548659248216102974000035119132070502402426283823649295458163812799426754171949539931703892635891008377889032636425370182478096510609019378343432975549665165545028414471786193157149580784732012428619564138453398139942952738684416246585560256004816298656827349154172873172567120607340460077696073473008996494438472189407764569286800280502303949712772939626143974077474071655621961976202157930994764863301489569837073941741373245351364688216878753134392729572606393094654918287924262914199807358735935155425294455164168102878845049829643076129735756418707546737097274123802234335136777285441015291373543082276213917847169860844702674570536096821700412705436092670746913144466364818387895219869246612602164217269793079546661902030978035780348154994762708903701723549702429388320981494233500679209415912969577521510678393896462984090176905691819823136004509424326015604587121179396481777335968857119016793220525646828103496457082862360362821728446656619454850624416141372564139581097148907555756974244630309598688424364156641111476761636022949657230788753949803752074660163693378577256592986128499397872294338914477173137055049014839952769529240672341478282648640078713485349529687118788232082693314583837050677745819791938900948736377366602393786515825997219361423717155055561869685578172775858905759071370143824726458334866748158701739597940895105350033692196523433857454174905007546696341220868970804244278180343784111519701698526843065740201009426232878904082435504380369814251553683145650557839815339790902211598502222498545630849293984040375243250779634186820869958318787673573600000411351676392350100153450697202247913546968018238524663676105360427857643804659205599844227617217685222270217024949471296903548903156107881349433680320285899443527194778277186856369395821227875162662387879251725647785974644076427732412771178669599612730907911678254432443064373763611526711207304926304313840331544993381538475620960565125564981206234790355332979314705639161147297579803445099704110370723184688481022866053681098269617098496451719807578430655172448971027348563138440817084787858889804729917701647432123997424428420537793935895457848464218773465908394455029065358803361419524854283323453690400195967057070312777902428540933968974366210486864095318048334615497178728774757168346414236798122591486146907314870339966922616031833332122748704974618039039883928991251032252481615095538979935721384074939877240513749199150661336357000064529350965584123959699189824935619703925310889300284088587837080847130274128893100129892128404761176456333915830063333049245765269695246722631340596327087274835523303209477381354857776667304718940924903648945573731352695509428283140070008361981427235089435315368317951771882890280065396904600207328589055989104902566409882812937516027066710623108939714438654149866739726997565741748214436316143942358249395827675610949749170813563282270400187356627546007902443839228857313154115156670853778762061572950843466540092634343883241322740540896967143980935433940930546002853958830755020514017347429893464504591733968764918941794280037022678199214594799845383142424443822131961689730840726417667550460464724977185766998121534092223028568144698105845197172617061486646091096247542392474043806798970162179656245715802130706152816368955649515316872637476025828795141085543675340735024221758356542184376445470316177877801265473404556426153132355349140076378102780297951436899549023146824088841995583590819994069935512718703233958667163379263320001985242714417301036590885499843915869154305720388428970534643793903362954556212390860712473406231899846274089676606231666368405961257487808482729391975330805427076332523809548822657935285422784620100024976890711852429797669405211215944519618496727276586017325863175535551611226917124634737124129780120578384234871694834893317327780443332767016542926918378835919770342736110573004625530771861304476636528423732811625069993133602582399219081898248715950470994197187290690519212999218383978807081009375339253737358981051962366178535506516313867887600008661104744836085681600119279175457709181887969346453828388128002838501861985938447221611798737142246131905282333532343732648316978152861431009447923510842877114224553400921998719261385659207763467241451560302435917556197165938943377680933595850788341974732221471904779177049390607431453102505331829767902631048772667059553997381177019571866083687012058288232315847668158788464076959083548696766376430283845683431876753892566611202921994241924796844561969690456890125710389590481609310040584269914390031961009929941960558804153419911489524657669596281260015804710351828271240686017503868111360375946844790587396552874599433900616649986257314180569650708826839681175775112822207038609205605507130482994512452977627649016828999121228287902256123167839278015149598613436091058928161580638279113738137773960027851315148089164577883102886086641714225458340481711663348798374135269929397984900550345873739749329849836532664978470285021722113278331648229893308532692079210150227268758079563756799246432191359422658736993883668751850451816696663599696901393952621867412077692210313405084761211601377668665114085281048614284669070589569772040765380534532985248555832400680362369454196265828395106800118843441742834092112768488153044355847070668039648769362629134375281109527324369100883573336905106790233246550181077210368987330236476814712815720691335711739757201837156034821376993359304225635083122002982750648610324054133700133302291587379162060163568722160090588947399461032323896268668629994329752375150126970576793312153250702168068336557362799628622772700909183583776221813641887298870031911587641143078173917086451075286764481864117972944430261836371824324490727157594969544196226592590117151538432126896883183499947167736567925995083069299861262894342549444143506990817372525398514104911457180968417794582194276491877401860242377743731153298469502949600068745160772917886893598947524951309130837695905954742752878240025464443344757357818217413883186320841961914625707093756288560576569976783819772316939668834195442362169572258850466515784877951416702456268491278428509486684127025326811802565634592691289043425911536724794472623336443884240555877158316176422598018418521900574067429836597841641283792908935625267123755805718165402058824698263575974770539122211338097631802007219698989547324690605023241569371602574430341524822443410252482500110480579430195134686562920915682297098232195150696065160411120371375086558924568278976069488607996947234976116206066555867526426180523961721865521356286422558660071365475113486524705094449173344481426984372176296375927347460401187991750293552457394145139139582794644966514527259406312444026681341844248286253382744729944158372328300541119764282403136231888943108941262265408463292512142510101582132303163106163642170661439735805744442641221955648871788202954048896943994326412096332592690203945513006977439316456217568992694268268322322488808674718532628630747567043405938023590882129791481463731312785982138316807036696015322529850865205721319432863454308034919815285052023437038783549698484788050136017720312628648678289244273326668797311094511283213606209926176993165913123012410866582319272442183178559782107902063579840747122358969466271750295862476423009784408593029704665846195458374561334028076841857245497585440165677247404406826081416648952408570632791902655801964034052554898331641145261387708225722638877861787887359532391632943825238325498145939278189397683721555402902269898113302954329131868804907979530619552334998568153220012116593203627288116240524611812311326964490853574801049278416843119975507349379224008852945907584571998952542548390692219068842539673001672286433379598582182811136579625504769851453516958716972593595958402083166707196923481693466679600882133010767882339253142113537976451519314791162415127977851400860013174621437564387034313939089793861903516425352686742407153476949968590155151720963634745398227136532669961687663977953214559285035761112747266799686085722150738477198457829284962506220665755613035711457131607431640156651280581409339060880420189987828796034707573562421254868888863948487394357618779792703127470459085096815822760594537751433653241450937027310325623814805607306902203757672810540465495172495743409741110769326720252000227008303540797686275934230751842220719113271873658588339707786692458002900105425384086497224153197205661469428151546257577450266740093631882955200742412038178124961030722244268307737347959586457848306405474624372006775000750736468729568889425104848667177704131039949553786577254239003353408019399777566814436131413581431006468493988988711757198193237715442634923804699896695352422894496640821390544593149894530322587568300573146482015201722079370292068857041622316469714440671292798791815793569930116023777054745457687913145113183701252368440003960181629961280188336532344018808252205672792792417184339454557496487128569697087928434830604173830280190344127159762307823114414883497368770210299127035412069926255887642016864130883902570429615477572215009144735945823041808918201130597039659198674179079291584851357052196415646899989961011245591452247583807331330762685273955530600293327680771697081402780807226696309768501687274855365816990418771983898675868077925705628828288896510738246478192596950105048260224739081057302189095223344772260704352184458837450561120237091339187153946704614307034131293522103027451072070111688902371201403791273890249917747346532080121638831172829727811701267609776218771491790373893461720890471302831708192880059330571963906930002251746614306999433626951021819475060034015551753115153188986873059237013894543726370665426588527003017072851395434883885071934514005304204699214779724654569922449338727390628173937225234371871643595926912094189223417783719885072386808632887272954423688794927565031933944764527935167414413037359139893776901125605296594884225355112349772904145053983404005445967913320366286420228011751565776888077284286801649713583386252780654302186838113603618516248124501498332375025267869354592160165363645037879312307779983274605713825175651542145402439311229696068738980757578291617861414954996477691265334167476626796030659075725747226646635998871742534023938486512849488905394967343924646636213878211925828668654882844269068528543661387324392198213028143551316370670999375210148726837891158587479618389177114424239718626747734868842493065543086104900398610231510905096250565860111058662489972907856862392395142599240187223599464103737647387700989495796830175816948555279681809958972264678162336969929410195190000161187463124049004170954344291107119277118215821871597286549878580617339713461648068931584442345920958456735531891214941693529674825437882443446884175597778157733115316717752571997132527718991761449381675478089927018940503729792238611291426992644051329339989873738732312118404181646946638591130890797078659066729633491351033013981970070684316396916882551726767267864357979086925083150587131413087565864794734713342653672076524545675622254802939778125672019342440831747016905134112297658027750715016392792418065276248625548303584259058851642340480990153746349963503279032922146817135094464653460438587382547093684768266431825191383218299280619470142134399814839208351883766237807099979721297078082973299187792444944237880816180969571742406578679801424670526188201674392423096623233241912578841544545261350313964543229605066345394734285659338772995488942880945486377925718425511506018184783108473499803571784410144085879538710494091260756772842988694987802263561610500652027452991988453787750632841837561064055304089851296269483825609853564042993523208401366116305388410862497647442006503371142072220229818480255853429868274482304705278534484380988525738061615560824600854941529294355219059320675896880659841244313726347030459715972835003697435847745260641028086325876274198518322177762749916842872574720860399272541824097550063888979429988740902731908004929334776219340965394278865639247924354366123624624961383840282070930656160679259756008696231270107325135069431558005120745380984338227284708093278740286149117967489481744479990248982913546034502565705019849770161794590212487869442488262540860774058580513987364336028832207143677739280559307847506506991812125725149241569613623774813183262216163040782721779960056677829522926687556672316807194326800817185154786147336297899436055960345403666547275364075242340593002821001032682140109253027447860155642678335452677545934825243206948699638438783535440775887221844707246831973235963919564037601091360388491265334002995112064316239471799854862561281937089395723753145014901388315172403892436567846745939396570786491199259776508996562917937922965494802936263774851299028214917810924267833531005469018820953319851631431032931642748703086895612976218744613122472367783742572676371393024211875086541612964913374074044528971391687144822774717507607664292909401327716092573870048299559087444544825293650260353378689947114763763012150742532221591147662867017385139222812822207578486617579774277271650665556818834023799547605030101207871068191039923860406622289834238605107567599708519215590504292773612905822033761853872481920738742850160475131168770180834910859777877119152213626907030321082356517682761567817272306693244150594433398039447120538643706372827900304719636099072223253384006857251877152437799297715359345092305848953429677184757111608332408177103082553692198494670948626730275450395052860046208430604944921024195671777137365769318589970895882203416435897203110013994083552661329462762145019133196639835918676823617773131843643749377270317835136223379343032581352126354829319682197172326054783460638835956593342704389138310092816086593909757989085079330540967586160577533545642039108371986337972208127252964068910394168233508458437403469845989156815962842389905288902802360400799734054547342329722760775094495109880625135711463811004505087844909615222649698874089421255224027569993808375875573929885742248821605834558207590690406304640473600931082116308163999479326185001064611405461580353626162264232565143454381280835877035075992899045778555180173553287959870198129529512618314578049954511173774081144484377380039109183542422392928668917284874179053859420150237232315893738490719459574749853015554031240000627296561392540587230006794393434313451138537589415696105505555944836196852965534831253288083547226605225550488329397317458917109603055895046117918189935615701228762444531998680856564536569354072655045540013405831071752157284382957117994405460597136955255886515642284932469625775454740563406395905737732572971123691750054829088755926571135767366089962439339087725692237869774205870697766311437935806301423026263793492991537502094874383998812268287726259125650059352453960921268223092803949559829295100616549814462590008934591199024907071297585478257161346231100119096131655020097693160391033747152095728908625665668729041503679209113052357056819704725801237438259504214505942106674883811406153677348447941127167990711298528506245235828223285872017245278720812506091281516620654939819594703694646706342328289590848780598343346814422144269199520406120198070459523374038707847753160437490011910738888027911643719871455228462725452759158757181164673352192362688053528343398646576172902433683427792020728575018449767294331482875791031980786255353891922549205662488228707026837894494663026773823640723068298778822525164034955502031108120588661841092764924422222070353732971984923934105615708200596732072696385004396651337947110503505274477283205068138331579507812474436813257516986193226680940314449922329883360393851115966244345261118334093291409468685046257317021551939104496187486153921474964128214492678332924001298598284053273607225938479335268214057427060578415633974655122412964784497819580830078195335849913181768341331897212851639157219989846926631634298886254717019771635756867353107617246410547989008085028596629185478395677694555973857634108023170194610109932775608166232002374230662724202496255626500214064762738969553687836454372427711197160175937038738220076243106341701787922113148750029651810582411750943140267080216130790055211819466140680174099916687475708225455369560574806496014741926742048851792931522643582748103766596470480412415056896125886966436645635838316720130778943901557608271496563473624316441881876641552795581447038722929192923580240662969008013460193115988274308962026656014972891096651156366043481246925282604577321349300607237714664334436695177035517496515312821638877070332417399752001522447085950910082848577671001194577736661356535300866003813050187702968600134682888694942366211900430204705140946021321802492631968167929685967358250853832693208629047379036817221191247534237545308369044736728619720661889363083767876941229954414374806116453026110871386437895566585337932433682520908654670410720482574522960789406478830584331599926355905692826604464854769490286464486656524669211989432550459995182521107703088088886958235656103458713134962480239280630083221348990594357843039095450588000750500525488606280898957309589713808019897080967763395917339037296172250587562020559275396738647442057498317285596481937424787865866934321430205359190991007294270256764065373894979814270547432143335549814994632779972959669231629242010152230139155390167119885398004584652751022106837431321774798449619310568185084579714070336064977202228542768747826777309470996789463156834419725674756719288869314526873896407846931829198824049726082963463626208808169573862099593869764206892248102816224243006010184936569243964225205781633147418554024777441998770243437042776901431179232049840827405353068014119129407363664857386628420446316791790834006769271480483185996106652132763274468075278119597819882041347334397307992002964458164833845726795783006841012830199547295385045163620769198332096261815248347990807045678153349390572911019351034070748436156242035357099746697562739052640413768298778758477769768296795278933997499327867270131454945523622929470520164567542380105375984619812261341078783937794886876161603474686047767289474483371280590058173528141649836011000220464488817791146465452035939416082105948797142857076562893786068499435433767877706237373148825121664207638290145849508734583192297646750787230673624501973770439818351154753509966060786940206685885645047169332494756523233565974787149747943990304949102445453434964662946384367085462784384859458273707186498371361814696725804224312609304144634501642161475668606100363901095087988334506856472250839520435761328289140143902490830654655506100155572038548551499761916041505441352727859969020069171052669406843124071192097146580861773008061862855060744888511673191436189320666653158955152924789656964353552696111141368771542295342575920730912280432575827398324653343481473576695568054585638065625878653187089416952230966196464766945677398970802133803422631006890895364398427435046683543796276678316679675346284085152379745819650367116274957522654884183110873000290691809917743996703846115595774479530006862023279275836543677295561831400439881763253091141847731849446311062639191265413568164128095977046002366766336853462801175645170741270931509400727157989810492948063277979230222983799720294120088672454093808258988953220980773054342473421419884381399076135345582020560972877232473733034927881498262188014877070441251074697583769417664357189431763272952561392865058034176023420197705938722093453701623101130000408321219266421400080184685331120953498813358686093924251386032732514582296279442316888600257466776400531569624211893404287115981199014793633535968817646809672495593279371401073064238650091835479859531485444624017008652093712131035111630704002328108959469990187491371457633457686365962721022919461132234735241112603990434193286056948742860318085684922373317739429284517717600545900469660461486274715132636604806218505569439728564498128474313369088588268973908276012521014723299416510680188504086839614773757235935472473964809830893119540628091192128735345647301666498968366448224675894801912984212563949368542662018868249325328805364572669128785814923847720227632651953606501270990790176271299803547093897367558541363658579262969392268696743143464543702117055043606290296553224735770436207645584168920694629470309926904406957543835841636833724227585683222452733941166845904357171778932817338187400741947872476976521091144945172538545458075819537929774303189233591883639361303689519486681963794175358769161479176600605414193996812083424659294011175148019324729392234620308137939931562472293556792194667402765843538710988403746465715443193962286930729518398150996122395891258502172589559927049184648404230307402618019684485846769022121693385375307754169708592179351041436922051978270623941193484232545685863232147030863617376640371656823008231341924740484408977198427956921973260775776698418859817714856607034779137841274547457274432461998996163262977418797361237059294073680229180418049546941318093669239613393586964353941182781930737795289060314968652803844177711934031611287409451672844757568159359693425705530307685742302359420229064112939401804481070782632460615517790988842829431105405954313938748091539398594732239623396003941059703806650099866500770144488703818401938392301189941482955046642552603844666288609355729723918878580888179043157702747395170213497507577760454334156193699670819216330806589522121994556173113220525083122627646555963619677368974875874191012616198619630756108812523512737715161560849856539397723603879831777277572658764605524469718760290354735208520703062886350501959815681970591267864189819706533731619140260066670123597086232413816511189950222434936190126697640499328649257734175036824226989544767218435799379699812378332411762466844579566997958155095571530499438266384159273986803972224787155562938698498732588757726141558408569931905616064714503665285617712843239839395708261833356866937052907337132754114857360223597070452679937688229559628149834667969344160258786563868987390231918778496237929027494258189318654822581373302464981077977665605898104158756062324196539834764196588801727560385566611050627242493381301859792194297402058558146902459833949899262728109325400789606551685181478574452972199822207457223608266432943799404798083431013121894830292558064257905718918960906968860393494584542823928528241818047052548441234973373063369486966801305728733520683268266486593859358936808943053576430031456668320606536726212939519062920843475345208592562684132729417677831790657746728206413508823403125725138955256413987220661010914803467691950965000981877804047961717088101459788517048431404938924771362605120558238021582530666910064687589207583415732115546763889965085632475358032767989436693474388793380730140184954438224321611050754806520544633181393014518416185238716360000982321120537485074446723274960086329297573433970434660960331453982902337793521080135180745392215452258283874084414804486785998092276558485143170673940947210315218530523665119402445488314393057947629648533611724028962056809643936116229802189993477709735767090531530529006757804843914695530986147695642874184890512536236825340965583808453658842213274452109376581768168139055885233422766722381120739547935699941320979744915434724949554662125168067257219321339472855471782976434910369808100036106972430174115653998013458299525053877445959256524949598791690142114585585768356236193763130039117578340239054700961983545713955338217926278629625805545238159420651740799928580286403484620178665159163484279093781654548229470185682791807007334974661629016069358842504042724209563482732812686774820064067667656774294177087477538546112423735873382003810555854199953584802253724484959085636899232559480013646666853491849905964133138102947731440544261097651597564661816497578822477833277970425331724532990938217452939301620207455557212049356875137672410617215677756313952421527380564301396296950836129136749975633696144507817988866859494029303909848964441871790762545982342953123941354980005732492626413365872993713180420295104777028347293203047426530249801081742403878540241305620084096720587595172465007339157875465223507397386745665247803663468175637923053909314482560064783776176122986016550947211723044440976346426434988642645058456772003040996861095234211589674454040678843097384036260203373412732716578049258881581739261501016928040858213021875294344154873268583187426241383697584766924390195196498874269189745998770735992548097606625903784214292031119058438021091078923197744711043221994020419111240257510105806348117879382618830830890097199626437608117245407191951407381384512841847151323737114624440223384416255792178112923816905806270515325771301951324479912928017664197771598016006563989019485764866894307967227121813347904869303198969789613871510414070824424725034197399401764757052905836119853767779846147992881031379815877120033626279503346470530818550797389136175451312573396592866707151113747275866149210755015477958949890016067001135548403601574580583801301435391318102431205419767007720557629835620938346275122603753973254698153840386161821476614178299887388125015184573503697309008970381794775598697712135503386750350078454979996884028329014294277115760788925486599920003488034328983134714193798173434740302698814235115134828127632382495617452709529953759925707835826271373906954986793003778055913995301844459889098109232695758198416521087006963697935823626125360370567829206922784676700867228134184045749103003698712818026656264935644571219184444622207013957160641990837453378786435904054691330782226882319701133299895615240713660169269093264621628393058526632099575524238257112277314465930044391790627614023125134200796883701208245158539346001833664610477928416007672243861625816552356277776418810011224151084643645650771227538331383544846556322433888954742704819036361052984433381072448248915461614562734134099124032329724308662890417702306211541549588496188146739397716443792089478526783435632272327537384329069251337962391457014646633892175583974397625667374447469750431118462949019712262406018144471474851805850925994266693230873506871902882815673832862955452774680887289453076794852804281937437203646692038547217744043975704972364443583400910603045787380686381729922107538950689057437192766051097662913483901662748934238785096075449849191143931925309890749125041998492431762767253822813105318744383003989429299962118709323308248115044387172497229008670370711845934312035923434479397940017967916745876152920780931002088208600672492726266410867153546113988312035855559798095491480761756144075325817365751123590794661709506654925780584639914013740972516850393401920919149374275618299092381834992564306528678195445873070876461385314288930362789017746443628403325887692911001296918384720768936063334570728110191639784735688317179155579971993530606730234846383368053917128716785979052810896874643904750329581932018190342034705757086002694744437766697057833495892202893798161786629355304397082922170573830457251314615425257126150853514909784475617567165437251593662747778544802699006885035795184188322360624113890219601456753714162386021959401761352761890193465308842439998173931386859479636235099427144195611591782085736078136440608639565441718995644783568851606966150936885399244295461256269307255948523629938109407376689944498814255163483885738025091688307680258947914073402653741332920657503052483483613984703231013486955982155108380131213368189067695100998566712735918958312746303103593375381901971647730639332104751205429121975267736565391554217208527757583762546265153804082804900066267594745126925947087295707520411185942877996547432490497843294340854111360444597996460269035711031288276501156496468774274145866822016115066528344166529334008029789230645210482003638945532368389953684325362499076326139247056298560926291200841310028202388382244230291157144424407890027653626227589497936170960197786648299056196597714641432827789890118599889335940524157161161026644588566735557453233328154355748455244210624208645470664951001170979682865186356602402977405938068686308483025517802942575555673551013297604410465091214566588024659596848425210898854845866255572225812476664234392089860968077955929314477433762353265500058655147786741666678883097661478276958824810755082503092899147753470425565906375336827775501365264670415913141613293586448263079633875659565841093412445690185572952145407791262365185573562443612279692177928855174873683364457730845674048685900046616833458059273519697884759111706898629328490190517572221353257925194928736870768907650206100158049585167584353531481706523317697837281468008073149101233381571368627492110985283207190525935289280649916457773450245203070944722680294130280766377694199783702695719875714142466561926889898660177884379023262849684990273659615872576079101706522010141214867992353247852075394243951047903433721188939070163296803408861785671110062117748951361840129012051869816014404972002539731226310733779162768331694570492786832012692826846562640372825309636619474089074574777968377892874834315450691921702755451704498505860863262226977402992007163435944502302771400208977430332670090763165006444463309760356781156093163429491343373810346348791100347061614808228408679581493890621756951406271091559799703884563546022075377852879126975495131498006834010194829084583876319044770546348500942519157491722503211731700137954115628259837477777426528033031580757955046137312157306263197018228838715059176620400166795318933557185071461928880083319776980809793279332121304853886919939129898066972938857879981027140058626576413945169372833804242272053309798799761789842735294892250020100684743099693561688875210370704035108701938757909138324029882789456125880418606937311577909022600731333963594972344525301905027676336968995964598690955934569397560535490529978302715634991845761278208109461010945773543838988072892556792229350783628201328328256391110460551366752583355518571219287435832399971773884265710508591847050775105971322314355047021211859356101520194888242418584073669298834511434363358341766665256139992298885966524767940465606396858241682436663350598605914834192609130793439275834749191270267114066593770179004924617284799186588089972423435204980576982913572651918978639697796946510003576473057832186123240685571093061899678882059260087014817446362432382816731687084501588747308207245516015377298451315698556492214584726904295623053778559196981793121695006522734072951637994578038090346528382788296351710328285693476946340145473519531925226647995627051946326202720166662052057648174833499661622716469781272704798154093339399006753515219387960387487265462274907126213190144129285578444723625684477128669104771047446674010300778115803081552206595679957060848782305117735496071583783160657069251792210336980986963236792994003909196380627836497918966121934380974226674189514939381861172638514231781295368857151481454766478769246537255233061295230892839894304955304759678318721104640280198421726537640493455335625470330940667733423805892003161214409250788777272478480272188760845782623897235314210625181615940384422089485924098203865042844649508002055208087438003407585502336933634033447579918889339818453231579408493849203377082015273464355687703634846742091337114667911597311895628152187392169378491951992900953564737365524404279247357552195033873254189987801915951407649421267565930521240576176943712814121727296326117173902475207568051491211723237186655442827581379805599179383300795764798316081993666647025150817539746620273807337259965309715131741080653182448582683338743298771945238687280675496647266038694221888997073132802816590874751112278453139965107456632894270009829401765410336997352380852298710092614307570503672206156007352017017121508292121708047156229447351966693310502835773892868269204413359587275119861850379251726671611102042161713730642771471821960839216514700881368503538982153943220688279751126672657218162582233224019598428962820942125678899736234763789311983789674883985694236484874663414884856099756552394730211645611497472089557239139538577530928478555856940106095181483352873608295334039351309416008503168604143304786014982966367286746497605455881857852950363956591842701818217138688740589138894529269627136708277075790351480248203136715311535576905507135650420478888069231054180522795825049544156350371991920712808530151163871092877452238309492942580668831611517670405830797691599241708661166572229341858071834241306625765792134238237772834561118571420886525359006065444454775648052071746089860825462397434632237454710346053445705584427315222306353672866598432963209628416228940644867290267562784601215467964434896034861463838176600601477484071781050215008397573602117467907307025472569953201656540284061172002134769733988298912870827047924921585346774868233692197896450882076691752866441176362106501310236192996675844794534522951163811151948249571901706479228021497818741859478409756780595823214574425306691691209754471459248804572268428340637956114301133394944327606734264179337709136038520085639443625966034982657149004179585413826013531281692854958787101383153011036859351223880892575296065093246583824938560120504835192418569899573842176328256155882326897934366556589461877747674272046645633259801469148421986450188312390718070621308293576982365222283355001443376087212768896445998711532674911981698644846902745528230149629363744747184725134069350617839362625065638261891662594520723294707676872309436682214812030137046999776109149502273818097732637275010507398910086503697413493814440972365689564512116032215001990958736302041245772737267400490441051963162125866622798847571705502021219139286490199717412742087320951337244068758211097466118873363749877334801608337418032081979062750148698116707779674181383211308754073638052792071668738948857005607113759652372887697567043064100557556849125392250887317670361610682579132433325531239587603679615641486599939868868499529122199988581842467821289525730291627528355493585282376211955201590699522777576591152324305299202630667425452190886592910331181691886609821098704305893415062677478686351582434065178921791706721116394816158635254124864261958559965079396574824488582471463297012711703639168545578454420512153281662315431769402620423178006795511706601589071743928294451952756113651828064748054139979120696199589365377182686481737767993295790857515262549075516560334623105353478790474771534967640135726043672397617748051671107515633453188799175337284843799353763740532869661877804029397957368689497950273876316781317406720306667504516876300056964763449815351270207670506127769119315254285740312439464193941986786817358872510108419784322754907282137699938737880980527567147550544112415385411029371842027061579272710562045039040082774410793749327938207007745163333305627669086567160255774569018229246754684435885314031020009341763294227698080558203596937722266424580842137665148156726519538356582722498581445790704972341832811753630335286875779033331554671097200501519521030532146509032141058743378490770338370026931036576766431635720684054581894370722483803516935778480618060054726116740230768677676149525347759474106239646694956535803490160548477246666207750294318653172395743209205461116291838729399774997975653249024493780288941739118077164454620577120110540239102138068771774103602501183340511319084497347710446036877558387116864093621054591252617874371143032839437277727523084561010579735677566164937571943530466410082099483396592298394277437252659624011653029207108008212663760969875501096902493957429872963195555196861800967655554300378882193275781701262278584903764394807171942768539251028339474214687650691020580217517940500802501257570740864047977360805900600503724594197220313684893714159917136844484059131224871355930344246464741502781913339616225022000757507155062595745301950077323307583641992431129392781392174172551198513237697010805850806768827182216237707655671254170723607537607309181934546384865076293935135279786651303280332739428257048663520165551125656025284102098009321200662578593223042330787463734559014990439169197457628819038047625116604477305530456275250290017622066383025215131116774965819120742933680849646212835274526669686537155105709283125485192080792102055314690713602389189949253230405425942262792340063167995552176331940477268474351704569191800260069812381428188554074377581409445103762903021004054454284426713964267272141510601819136848337738729241491907898889011639415842007260147745132512556430328732432710601928330234113766785480859324747334207222512533863074642953820545944020717992391306810848924094551734122932177133954162686547423543738844293373271684945302977619932242679852832898296502725374913248409964259615451487693551228892024543830981715858342576562396294193949487475038403029097594475251156918133686577663717492528517188784045224470434174512156423785457115214985612267293051666334189949811571888252356671452786946768812226680247370721563597509990341813135977278145172127153844300388850710876504364649399476786710336547496371736474890454167802656110847037875261542344774705511950405116694638835251050197981874483099790870895549220296082580072984255904422782290035233187456375388005307363422870198451620626594396291038148329992353117340020714071290265508804641770170570866066714605050259409131646928437052093792071773316744259114771712549721202237831218524234298528857366172580413427704313889213375892309535006253258065365360961640000152393174397118481586026957478019475040070860300878846446989105717649660818624450228253984418409804366418426601831880760795313245078557216553672161886018159497905659260234970160189153777650159258363614199874404634669901129351554667468210406631031901466628893592814879608463460841403294473805679603872428240131881323053836787169331606640789868201563179049714597562286916268770356661795216791878636183600257083574235652701946723615765517399810434461418454780689536793319788999953501462362356172967924400195453650413169115471869076755564454738151939611070471151286186315157691969644262009938575945732779615415462918318638943690708099985279008688422362273924117552527339786807712837010724739381506595209943954529987028694763051706600916060214417304364081567583090074065813030962202426729871082735370003178570070592715681526587625796054664192038109200969015183092834144545937948005418919749034958746448587198700058272626611075503670955621689858743085335648742883543428703000290206001906564574411393166087811862688367955297499460100895475273473670604884979065160744118961387569412364877534109800761887469093954988395250635677055167270734457269022041492132377031771270529162509149915249178058711575704608958204256514996858869453116108934006696208404997474836544719421625059092713075280736386472352190317639253654268490925369475935889080080995933854282267472090144133811467627583654338072146416686257488289060388711038572724468508597320610404793842491969033957587304052392978664825597777133078694910859539768253047508677336241321725768645169026391282414048721452339319608386019110989988610794273609897701489715317304814662067333705204951414061599457597166514746388413082738399558282788319807286147556666052341061357938140260406937789320665644908351924495578180514200058869378417571576170147055644821831951571632391762151356406748813536781095024115478435759906084013153922533102858349327683541675231575457155335052838148392507906240168342181760447208301553290040114743317696160211995368592832072729699949301195419771084345259948706888779182037829367709479987718456558970718160314199265767706665930963289501889466209411908273405276976632909763988982854014229809650472389804424479748585462916459146973119758797189302659178348466286831168509138021433818136588358138843400977364071581687557946210395084972821626117057861806954924416406790800586132421187595576134616396133070180954141774052100036083983910345256238559448228118080601585397982646051102506370411014842860419324338232258952543040645020048138542173481994649207316857462627816045103757047018469033930597420068306716053131555908397519874462473917643217921316626762106529345875324473301424483074163976965015990718764679986774314504398784521564941211226876366732051550435170564712998709539037796021291359152259406811334005638533312453879622726839424954448338379317932912763789415817122601800191766245377845970776468626337210611713427655482153334444013123898054044094514366023137896589104109934877613869425566638420354923736369749951044695289143339482378090570105291578946728900204980629852212040692136097893717394633320538418045117879001435426708649636868056575103021184257469281518838961257822145439256110575409196600009286220200338097778442973958061171563829500928146278941153058558758185295327552112489006895333678875670880000159324620351341327352539915366653399678314482858888334018045079312465655841967242912467583060639764148923939428561968167492652413282978025781501367837850702264675937944436460946325251154239260109506589925139035471287167687514798553387669532748669331363657538565718506029487330942155979906635161261492460564127995214772082679948039202752279200357904907093429206206073011732306645540123411817819865425150739738293469088487954490985862625493492566490545365381843328709554853166601532591647810896517940460018613218410990085608790309944550451878883075034193918190835497792323194457127857463586739927615970054313650132192660693320711691288587198149555782108749971637398675422493536438283718158776698075160662212350248646488542169987782529620944614532043311770562105571764025694894256530463769004855492562407314098018345923106626407713467202069163154589943784921852773532689092353800060486166821916385834602592264423291324494974575015325423287500027289500592005526635321649105382274567064228441413806343986699408439043802433269560920504602429852586242495436715293261018735483130803369819713085748691531387332368491543402879243541331334921267163269420397853252673570699497501806656874712584806903075991766568929353347528271957840610408824443188603701059520877793106260198315717276522266936991667412110043182958631019822760230668627902689365788860961204276042281600303838961736638126700620120708868927840017114314970496891210992012238612475768261395425435806817806205488372333880027535729378222841536445594914981671829568785201069802316236240135757192417531381744823801665382398008449444633403147977461958691394607622833616613099028093959122105644104798105237548602261701253659094612803502574316221776227509667476734259347606552949488153325832420784810413683161442603499130365459198006461616757670124667910684145008971985302734309592338678521577134964610675802025316691313447029574287060762289912042908625782643291712130806949430441593691679057386730020492933184721616951651936579767969872387780438563653541945066547184895151007154579660706398002113561933353270509250815904427231582578815003136970301737781966021058193194226060275163091527970959913533878319303078171610940419995219240232118709735578304087290915987039968392468024501138053338053329796656773873693852670769972357692811810468503251874347143759123367424240071055252003121608118751279054201431932473419300067456460302765115276482651392893845195985594488653166617112080892849677325996482026925058475730272654175742451907164892686032149951957672787163635403728352844273808766136266544175375161879073811220734166679721027868698475963711104745140162065269057766554420337315899144251354628801601592624788084421040841517820020205435836778370334499671908631033101568225983765655289223486881568351215831108958536201122534623800039727997798929579799597075477963174056586325671507749161726918943897098167416461402393046782596907008048117319832942354700353606427118075733705250212796683692775580598460483364275511454487957066119696105863395369671853561806595957057156563484573084815381740658388130860276195391518916775348276254192507971775345205834939750314752575591600383946677272729482298816676154208889330675416888366951925522613433786781205442759293129650086276283579030065374674539649856809632877911571122709668914268751390237356313625880281721964484342747561919517583378457678557407105542208586375108304451883359011573540213893324699733400116433866217547926298043437130708208812063169485393718250456103145171218104948668514305221399607397771085111109089144286240148867337498290655286676839272478076540412502454675854735385859771696761719200646817723657180447135583023054196028391534188693503235815308819423848843665849969417640305647558276338135674050940920385445854700102926424420453794356736068149318715940944129438108774706433914222417922158133838817378259187484957391618735187989218804318641159287140352984609663220331945005085254153611039471861179968987635755740393908535134974679855225178840332908510544010997578769726279902576253593800510569713762892090809233254712276777383835567635963393264714123499479517682711317364939196397285388194086464499529476323698072337173951419192626218761404517603885319642017111618936372603690157236103798292870075285003026556067148777156672053297820876783135895800926129820898797476277462543438425568491858209983781850767115545958149371865986240988434281244836213136397316495024166294362213367755290118998736479566237255521329469989913926242166373874634141259686847767784222446755391717528557726858293672585279494243521074230913776750057714642484853024015021001833153638838524209201246494977010456609272409381094221814156723588525180286386162972956219704899812271655673876023401681633613290743184026124195357172369124155798177815075123835222500129214087339300652953886746246037638833056603806593533256647336165520878876796136051746803891736813579943560870384635932785462291581790244847634116320831506578420788714590908294650839486017209071622864698969213995487455825537521884499314454371403021902676374002198935633982499796784124528647016599406467526944476040812334583460351130296469726556870036899548221957072466516678892294413881134698990699066961130899949892827503296636951274316970822763158839924984747409773272324862239170865733069850834286554071085829296270652893090208122917106454683189908761950874213447753665562860911594036763231579521122265178378382765195460331225347476515748123728471628285894598262110766380374995407720733500472624885385812584749490944432909792386065099611045791600361912649448364063665449701804106332313662956656575818885625470636598203233328120174132117074490902903217044754661039732985797587727597520426226257505334341711120720564114890033424655013796620595080493759214176733183290160895172205004263242714790116697454148369452718857806780374591230649857617959179053626997138569581587906075116275749649958290728007034134881164579300534631875317028744004000640190807736925019982787662137084648112107826257497690531196344982470126247292624361268506969019672037244962964593610611720891860176843657160517979728160925378269720333267865477541235869873220795536368162274539897032165967887889636311333039687006578064099345188180640890609335710223391296078855658564780779316267179334354986650783854985291173223545183260893486082030547916969067695987106963200613453372759663866616636215820642594714515357614341650833633670467907871387071918076787161182737453008916002166496832321594012744074625743198498243586598153433740937197726188654618689626385335748235095178330425838418768007622937647470434580998822102940144828810658381997135334054864468341606748710957799990861100938842482632740543270252180443767086127691742943022472881376983523893121965070156199109815715066232070111849235020881901862060198491024440286386661106980528464565570376679270450918651918650318443628550278746298885228557771929444979461341861589282440527239073806789750069930546053141369943230929632290105182802273726684159425795841250152297345898197161981891951038837585986339578224450525442615080554991088327251734624651926465364728476213045033277313525932377078896215173087490587484825323210394324028334588201408710421318031618124727109868025597603259121013807300534365903432991513624540857137915432391358738419586854258928037599699637189635327126216386961425805971155125131574955818928608159178272861241113534668938568368926980657708372192298703742204705752304757473198426358831271779291788204220939301219909810748868139497397814768072498669397592026710791368680688504802268827170912384619975068087637710861456867653980134674823606219980898179047530432331319800968323331540702814876907837650365113143795513176417784673983331942237564307495768067963751059451063986656172069137659194829883755846765382909044044814125713124537858081352367782268809636626742202766646237182758143927136897198906653410509719890607620748185693727437342957746359046764114284403438244014838490637316617358893006035241492881581581742943576212729072532920388532460004211576675020414362604211105728502392806041274836465358722466820902899823411546187501804371993946058082021450477211046892840969386843542282139623086312389834433569307167271543089898481532381664912817467877893548896766676976923684382666863910541002640727250888322543170593404726550952681530172190191952405543828957200005194001197018811151229037518338965214877285792290071135557808213610236816543776749660660172838410115042591738394854085472708088334616238435151742700659809864844028535821876859012946557312868282990444095232904212032898299695466128318098906198088141768625599184580562596410903620242281681706120137199367059018478705081828763478081295471486195247440015870369975252606728403919699192613229451222129489298187172691941170705436630944798665289288905757703497944595088261218691528898192534521836045015035977657536298534135817859158425829702794470717043094781772286280424010706195205285045550600589904364388055323495978638527417911393569338051977528759080818881880657397743621528100947237746884898460280334027645319290131629089193641508645609302433464153901653277459858720339991913577626116024439612378202429049890968105285685787178741138468370301140435736342671193347726764942914717240505615265952013595158065371237847784765300966991983490222586533632736948696706807617979172012204856348238321763495398874915153282283152730778759408694259498629103174127925651392806883459313758010813548755737131020351452229836127874858564478286315647153271579289948537984076726665810252573983851129410537498565059474825944240569830484191431455145888389708286231130438085718082670568115796507215795312630425887599608405695083699981269957328768011180498755627489990575189128127167309794891876075791723117736662663982211285824820474504014997787080899237655637811457926286508044542408013980323669802466493581212553309715801301529017811473982756892604914420778306822013253520933592841817643158319378452137522253930432966495038369752003276043880567207387457358868801356042835376096550387051183312569716552667558486772369727967810255351700552245310179225892399706882211031617028839396159482402730517020469551481870617338886818601267228833977059706949226962604929499637738264468568581278655649040393276935528529246710695196576619243193044525694975962742792961047053749011571685959523355642850185515334368468026132334638568258804635044467857065852932413514200730260214619371974316780805681280240625027573272401547034092596903546443145551201479824878262213632875420157570709507839206783085677970346339101296315175947560999830464705259712783959689264234327430860669892109367308095548105683459133128119191210587982384944197606263120368458591287510513821088012731383457528174364949946834365960544438734176179943113303014193919209175717060060463682991044331667413551203341702125699696852875291103608379681017348391899660571467900434159258526994571496992777017442164421314087044521310797156119324149277854776909140301840147702973031300688156962086084310020476208628830658088346552834071481467030427941047159561482376018161203410639073144534602588454878856749853544782145653065216320045308860790301665351658698859023290152369054067117912398515946735949416417074606143687162792144026760773268745450803056082935631068592883901852840746180241124978434332355086134151033148683277613312044667691799072821911526168681964125204689644264948135551924000136102203694649939073750429452340201685504888334712229206194241600393419228447955122192570641050490543197795525270877952653275182812063074635219691841417632002697967602799188083313879697380748677011626921644814870840758683395811191362603791674916326706140612617362778752078679048825014982801915986638812045104221644950246686503906898818615031919649668226816122179205345758672207613557892771635852713729669329725152905235339898078116790283199930339108757450397233122880994475327695839685572069355413409296606978528253733602591260616046620276254471810486065115667318608722246660782196708861303256114855877612174651875674832900733561641278698756769430583738803442975332092964848247896704093953013505697011569230349606690868944829351346599704976187502587586083152113900269156397442141122015459046535104725209202912874010752098482217927072413508750046608154126412951375848109097115279153122070274479829796035864990526395525525662250730666556805440008732443930768485867600923720715905047687403253844967595304495908821195528297074065041124872824931369228979637857039526212013818357319695049998587535976683375185292712719301724938375513096360862891935632847344606469347418737881300409568934251647552923013110878389415084334764991850376245868534868491683027346248241563701938136068969889982848298710378941410934188967535440337120258174850772031953496948344655834667772759154387044882557511071172562831640613213116110191307234652347061012170324291540753150569551317333059805948854265207648201121658865779498923703173877226313942126658925745871053558337323111761082665960472621756891135024615711388395373419556725656964508035959544614483531683681597544521388272657508365353218425424158161551864049307823377153320996368779198200923678492000030596160491906553555578254860824459002029144209535328096984327712635774224867032385887420435259187621110542580870142265461799667375980511782198239765406752647067799233947287386705880128113922165181642511704317683555475717434336957928042019979540592239053997179286912613829550011793548473290630664427951343671279154075176776023493079871617390711647111608987627183406177378693817878247451071562897437060305930380955275017877558944822037801934682223574714778366468760571880573454107097198600413673913082570336271888521863414903845239690650835060420690213088669327458745881159025597753914018924056763517616568221090923077702738967781342331327426906041626484458504397193847079580271213363056172489855814977633708259579296590037011866866005033104557616378844345323301997560517867084704896170154227149346973906180307145264437223804952666474047062148100853072503366370986237086335130949858571599590516855425662951768792516076825744532658891023507547611839963455740743920176387562194736630604199858366432595013077555380724089884494554226982229610546106705816628973088812467590018745081231135975899842940047382677356477715167423537653124727447017366067978840402881315705163269399213031203924764946295121591915587649745072239366672940220417094890183787385923142091940552749147671068414961386181278855352279880729468247519632720303280647109015758212952252947965098491692417201196442381540854539050071336724325919688651159673698287576539290296292633678933754160339285376277500808942912533269692014915218255021185328906265940799118226373986674836378730677993841572905680958305168859754177516919421462140216030072285949739419279249903643308014218000505332572282095853087560670899270433447796199708707988296136911476041187144673370005466587183008594364094097201959531836149667846854385033808023369423662648907664928215561665526990719063984568519593352772471979589288774447543627601421086405774902675370215821386844796951272421728408286564242422644585154201940965267336191721424317919901591550207858734803594114936823379511624342079982250406326073806235840172753027911112180593611481360320280026484752621214026112270941802764031062912611928701530816216581714716319290281728522159159408405959216496521180345530493673716227159402208939343742045905289666378403914587932576135249400416299485601787309371659851306775662102375221360941268066723994322640113532217388003144301286223700353384851364220096547443941774819339584988311132866253329129526219531524982478645829910664545868555066837668000481580842576776623718464359957815200162143113017037198059529070014049189404163410561044657729793012405868695121404478434450139568316645153943237811133741928716383385078796876520411378856195370327394465294578418731269621772361074180941861841906688770369240863751024603161492579316809923773529527879752697314066988499376165824285189545981358435868742361468861382400073210222534883140241476883497859793703998135338213005202241319908008528488311632772956541834250544670462614357782406824311202721270665716608690971676933293567737292031763427690812221817562144414648409987364703327303872541299627724073815118836771981162818335998116522144440174734263200543224428190097347275854504381195386123424170088033758194634309972903664368859650686453103650363118127108564731813567473131830309684707076891974295663959311018266721155980249011059911512314423179354661896614250975997208236796132612601849957705051972039537913646201522805486799345507448577226281622840699798235042689223034404831281374988863454894135852927734426736656138968908133486457294225330441761857145279497059352587869237091736806693229845494815342945588339605718674637588208117662909889637942675845707192424609248073158427598404255535468908600365223364184791745425359273651969077863250906468024390115503334441063608190451976747188369807593249053493740042731330063511894021706162001385119470967964748524384930360006924073533184648445368728606947362130946134687860484561876102682536723216902434657448726716568708236311010841823161657442091777676915289756662718043183651997247573270513712747053496755489491930365090164092300078395332238666700404485359120549139834814437639698096128235040124547589608667034429087324271667590061544597240248858799944725619329546845853872585532039116174974172708849357528887926022653533065980832261079072753493307847920475227249094755215757765030441581306714928545078014101512574568702160467178632160951541930271743253872298887793254917577007766722476267052486782302237786047355139962021675931968990331714151273555117964501493321528984230289570110626232564828669393510452959797336598320636235219147839273005661023262488364953489454779138588543079527388333039555509671440455490598776562203292486894816725351834545701057065981057155120173835044421820890113718224947743207316990021233090202953929303765344692546991470230928019130594298406058208023555820172085023532242222747828298967515872219762347552660948950359821175311518370210891945830891037435910519702473556954221050843313248770246367759089887972527577714057584388489451611538322451010776605199297697390729916033437582457714309941469743261037476236034016683542688618469866062694846359585522885217194478495285025196350967000335790978107431707866234171861748564990453731977664860989889999391469740500277860846104707323200631482045208212295243287347147445967551473870924225377725168887849882877574896928031511301245723082496480494207415603402363864035974524023077064760372973330625151975637928229257134996875820687021982036015012694037462656069178907894521787026506144609568982766817394838300879070933845089066041455735387867100273826881374855572105606693925213466955534705696633420574188156101475744336820916498287808136239735738095791724591660602548486269828415631323849461387914044634470254005486239259047239940593016354645558237122178247754621881240150718651579100781934450616812323116161083130454755975230679745565837295740505848196956834482360481347806312693259189999393442039300187931978827646662751683454519487310164528366269092371352137824052196384085473596471265873347127256196973241668510822301969326309047585507068592778893418713379315054058455044748173905205909156796381069736727688329587663118287575939818829541244796546456546815546044808218225321959664758109799728328336596276681922692385012784585377606469740678980960907418460757729445045000409554693628431208859596166478685590227735960617696794172946509686123496578267435729649409245526973823826020683804401262740032161088915712985846013607957118383848943061744871505752518869057985532279598615173445861057947760834710816815209436415264749136426459956418896362734621431879955482724087808050303415451827887919122063129708521828520479510562874947512278718189067998951191054120063863981123589190637043162068915615829119246703062560474531864795053024937104263883889997581870807741849768490240321664946827977934601466323385463218104530671930395737895673710333583941303992332797854161945575488129621682233112844872043739227385147851853751522701827459804936058157823369864110849277505291244386668446503981067086219357206162458710475556569507386529858269477059300532523117538365102283326308803481393523225889514700272894820895805297668240055236220131279407232832381815435488067367447314192466928482938982051885101641839606146131926205076799220427457211767828439933634370456267039735705494111965809559393144587018394156186573639723171092800531118719803228511716686326616489099347761131953655963041009946340012177637888372092770553238110890328475082165334911854350115553508508019542560528654682390857281224258400134892231891520435385518732322494184065433593312923707289847405596295038579136696158038203676470306701385127885320677149208889825017910626382155136703300790613239203456306599627899432035628179788638690241834451984582439947547116092541168425104810283706719676917046069771278666879890574660103609702728562645245612219573109246568772812463495086625507872402251606361094051855985833171038752586717087622107615904383558357992571151058711127884708923681450819953936483619802977298218199912794421731650236959225943272078407420710186726825571115404062067468938048422142362685631317417174483588182887323017394580730522991414259606207176405999837395827687923498299313191386687289897046172310271085553350155755101723339168290998754095600126116388445274275071340442466207966424571168917204185210555990283212660872321739719751945963968717568006707564608394500903550859847592154208631573141110353634574655728475261238973656807239506550686398314829749361345125862794950684364146851879419466893948004751854476605546984980226606342045688311199274328670306646341738517312334646870815930621130060813789016917120089745275263722786684425151034057553246931349885024073064481176495788715927640963161045068042739613840074947439675861668290357224078990128348375358128858971201230895780243370222105487589648207336424617941795606426365574137214772695572108638185192293060470479458570106659131459029150873347407980835477586041144222482350907926908549554935338821089756262391592705854892001791475647338410318837735938987764139021029110932891874349997594758276776126867270004676900217130731822006277800832966104374358187548961076078649233268906155349800287132400521011394889470398187667586229582375985536910779618291381681046788733270194279946258390311849598910556527687039775669927904907626063297046800741490322819884864929581903343416685994831047670837096275172432006010208519134921318512476781362874328556266108635600248737124264763073694274847667006743526588200316362057465963013104638430846582651995706088952247822541596146076558989984866095065196812400940639419280344883949119072831093619278428632126615960351331563147229957712776837060759406960477047952850147363553334109222603326132479932140231586711430786701001828474063838952677634954830989151080319575151531259113635313615033971378739965180939374323495638721657153139049354580999809037639091902994114370106753477978047174492133051429137379324414799549148867915393549434946421087423637422359494516601848587069818452315879701398228872479784284317000009068228712358397469128631540520280577569517524365121193525071847924978601818612105827328730665229186275059507763596903443585852163597851311548519797974333789884863171491115695417781786451836314127652689357386699966881569082393625985328165306481690882635319735224845649264695504764190886448019725299278533547675308579694883143187283803420762445204579236306024765832498650293602519708652500636382161033925457576824006634904675998840765516896662908077085278172868989606559950753828615295505692001486181683258933648139308363911475129805066217053211143935983045014725551956982658339984768258813355149270593834874149592556610191119639282200980300211230182885278176059106524218697745070472293438245334969861988621026427684772291901742218836187122983067147354839311460019404366622701291097987844531017409346509201628020493422050476703640774214567863654804535742239244610421502084142575925686140121520041821450160343746301792042815951668397887530126241119288024831385081871592029597407721306491266292373103540000480817162243888492040491062460669162185507893009330487046429657061280516334225875213328783350293424867771809338763412232659964685579617582645808561096790266617323201459209302577444975130482509349208524161828346506219646473994318146953587439138371982740209099150124012341414685206110427057242432770660214144296976028866345039001665536881048904344822771943194780047215164997817747213942621266830109053334052825539138445397697728201428704399766930621240266870924562652490678909045698684589234774164785547560065787152630401611423746095259347876073889786092634187698834701522058057115122553452853828967485743607239217679363810712756351325852982979126499604343310207392221247152533413372011837767913909369609732066841343107696848514072387191892624004191532743106010574777132044810378909096056380258268945674842459960172920967418317478028510945781054200764100422001598554423179972491485864765192705634563316981783375689363915634419972376661242013274997437136952637097753271629265185309711165973403334980943091041438021460783865703445526546248129105017537915597421000703915150323593188316537175003048038583468610135187654807215301147679233397553942550630514770202214479001795346606289068506451232382182324817185287551843341926222493777857917450924207315486862256414281093362890344226721598431928537204248700657684187268774196315288205201830875039872392510020423268068778451762473751809681392058289674061223831270415928797457684309986102710214532704765555268223182184171121039614726181213608690349051049613559757959267617801844660682146138928666314499305620494770463190604440808092687914261870685142982345951873629722435141044082802976300220691820423427600697384752125991532752279795371221346843931124760276484778103244286077674307824434652535441950596418017500228538257398565476108221298267946524301123729557979492506239840149745015770903470260485424091554262065582668875066389133908822886686259079508407751741887552256072142357785604257678519576060121048445976450870698080445468194989811145045726768968857003124336726060763897778466480971594226698533975508040870932455329908908471554455951614029857195004232426617993564099824087191548211784601089727666317233623678180569431918361777005554860069757217728553171561790192388504161265035525832097745470790798863803683891055359254380876543588693028168801061071261784934152413012669500548262505541365287693534940130317102986226642941568518061096664569356702798361643038071074902020001139457298270436279513720321417982784443794397547938829385022422604553914650184967527315771874894863730572077037033054071161522963596249692917603382855078909375179004906731682038961699034964408880864619714603211714475621089067076153504241770270636077127955168933912244967653450343684962925703495541740854951852396788214845246337196708144789441793038946341178644092664752498772441222156283666682960616538281833403429332991782450816425290178689702816004948642588264658536419821427276394684405315527349896956248388473124129905642190619253470508290528681511868960624634986532777397036593401874377768666459593868078774175782808572097705582958523034285628795763173715229853062033576241246099464484771534084579445322224784082701125327083879753135588100829288901512985860800156921833161176459552300953738695398640869565129830663206374415516722422082830724967800107203617064768758848932852888980390963061433296305058637550827298784070921104863953479373423413947887354151949489218293350157796278048783620392943018507838778924101504012609145963641406299956742384369799824680750780646322656445543545951890028117380523329387070758770895812048037632136116820580097397946213723041576860960771774469192107015477985518064399946785990681640676775361563710216724682409401951813936122236734153744243997775110311544316428370010072809147284967612757120361356289140270958585104980608442670310840362115786215855873550328612245583986371231358169916765836667268121890964397798855298806640825839359499672524891858666152757223704353588266048562932065485374480773986828428006317792799277283942826168956057051938806321710736116430771083431581709179239169660744874019438507530608972235129330135964610489920695767622572076765584865834809791550446966641441803056700715650284302537543911684666361282923022498377840203043254766997174245502673052452927673545727618968538916711053114950734722404627692949401135097390563192773088931989118330703664730992447555546915030874852305412922921461059187932989500104194339193889539539873820430964923016387069868019569325765221540761609891771373043878683435941244959088540945561015409040712057119771266638790922261405155262789416891309739464708996332725517024925447197517493812564479359846443299881597700564199905982212109065762181616182770214477035507079813568333108414626292837143908780648524460239465915695649772748535041090525637416305365663873873746013437607467621994520888029963064465651245566956928808057538217765777431915317643727958508992192648580879539546621430476331693658677590956549390366773912266874289032603216637003199068200808765842048048690196118686744831574520431192377813732988321921064792147210048376031285831728410447664083358338997439579749946364446663773305322582794929065226649928463359027694356871583411035966990946740270687351938890211009541670298358935388800199401089105552726144442347171307424527088507036526433662919400565224899823801342334780451869560529611755551960011880860313806040871681636513695920946065682609537829842531601271365774927002565470814475383652397602595221246220808442584817741728165457814165978241484720829308386283593575836829073307869393980707665473466165909914321614513043923639227734842818420410890649872285686929384151474738598029429838605172297980022570207621678744474685536428406452982576715899261025658436984766126444345919506377464753998249819912654840232797366354984814763537790676812747039676038228593787145991828350378341004050283178133147098496488786311000883332129960477948032479271567295893496658686016308025622008032886462301315392906565122940964024308583941622854518969843690925639761549572964289258694894226995073385183735192038172651720113538171961141497430482844474320476522426639938566748611027874725376065106773140340533143438882130815851658460907820765645224793501096375346017138622579223330488890638904052440102143573944231629764591796230594371421705724593942080444336224297929566835677268326850444150174575360953527356844548005639113075068288427536379623426926220023801415708712822859265055040915502677575636412850265450158884585839510314465100627740123107194072874550749196516037547402249329412539561155970071502359860283558317306385974816048656797565686542951422002987615253211512018509569996015465501473109312248052662840949620173612214995061113696985815241903704514847562906798531681235476061588544417189929581514778932113725716721041604972109181186582755184749929308613964467000268246240716821770207456304564989608620427165857609789634122506162521220285987630932490089115250955204666427008807508728938282558682918564092731403896893927474257694428279202592502336329483689705954683705636893846813640866588868112758867122095483231740586377368545994136428660005329477864437177275812477470832986681246457690801101240310630628404659833099219569318470943325784778356904128217491428462392266752206354510936862259962809342811689196347640157024548139862434774981361011261414369539406890563707996026696198775498704847107103351754071520652430925456949596907880592628073413900647562605479748418292461907780081853380918156151843741047806665055861782046703561337270984712486085113311900093644634764166012582258622439485311152333175980790155274093839285609949068955889519128210157028699136736491790457551623563151467375000026589020890493587004428981202122271210135705802801876753561077148704157438471918229929158816059649784086770578418113080431791520649810407922560481411815310728398936404125720206554985085163152156393335601073437091692485204533355824089118063480311923246962246035154860044930907438673916111184208794477499849008702385533094663594411137284308818245176990665132193750787388807701172373635856356977177916216553625021351472070154085890988844668617724958337847832305526925077685690497897149004525758103262197052863257595445469263437327485279605331052081653493814190420275226506060876792975752086989682164000584006352131388354783753948687240158755961223558134279717208402577927124781966581214957446730169717624386056217436885765681247330537157812253778822994976428784025037383322678551180409217081798131689666963129962580521934188118059894500785783266321200412492116187612773291953176788890513488540887247189741115786745528172653689679517476372996850506787837113189389864325241744295150199520469444234409829680476194680684721756268969610380315978099090300166903740160987075978030242013479185065357330275846715104465015670264393827875916459199816752872938490053534403772843001796860132476153663707279600067399179149263801277508000685112107466486666452953331965155559558983091659718523119945661342293021429633113377711209298801534155207120871848669879663426742971145932539319687075875022916397692869775030050741359324047059014749682398375321880047248889177899792652192287663371980626849700915384417860069410951744774510378193763212935966378253626312825056209561428228035925291629722023528581916138233594434952181321894592091832105710744068600031309347796643020983659887674621432110983027560109576746783891151803442613223174225565214211431039893581042892362882105410486759683313131198379946594019974656792287203872670918389107633796998510786529143258113476570455529154250498939643006347770581271420381799101301026061658913229452369127107462120536917435912441090366743530861572112137574998336981306545578817947308238170191564058492191916807821842865605995776953675164718947305278926488926455669176423065720493712754032092438671644786899758057169428168222780214094097278706211000339627750560313429887408337665785168501003570228492840108701082480697846174771929280121183270993404842628946100909224136386942549405750700034220242030378802140189576017362331658544197477881574588987209532674927696908181750071760551038190812476221871072828355580031666994849270947271583729882123964664541798871203258571522720631838117846168147218711590186393486160169021938343869432599641795061579078579913010866414507461685083107779366845717761389095399570081998372206892252611631469315169769306429255244530200380957173030344954268932423627691797795587031969056803046181383607025362828213359535129990544397818915411637512737498108859984216710130153962464017001660410488802051069545074749948852451253739659739017019524558336485890015293950868006058112855207375053954254268194129465636329518850556113257909790225454052224830172821921634441800562065551416333577345449493032233423604388467196597105889250075867680252405438213784884793710398657664358062511995186518365977073515615125564990713632098222091474413231634931557928738451641464450084393970122788086222227173090346768993727838561614441186154573069470890347823710998331073380626272362888175145180342267345322829213525349923390664702107314606017938506379957235422943772393890552489233592483561546216418207346844855417562371248187799087492867714112040293517453005021178316405567328138409841689991070885046666804107958903340622664992334496949201348872816561020616926699023443645775631021607083742300887257846268979899099612154542478073901485478743907162500318445703641142734613731926989618753685511770888248347001156135787559293014944895114011098076535032861690294416799891104606780540180531831470891219901776335994027253215695562411444969505160136263867644582282463771880356666153263395303744580984494727830547838823883472267822149631088181148515481268195679905263673111692691951605313147628525984517969635903856793642274968532484118264574328740338803043296915054050399360666200215062580368364870459301892004572377989893313531253629748050815004666829257203698589578679848586972946846123772910625224934075609664142206200329513001463410016246976759514722811161344926931978590534567618748924719137721721463402726834674228435992479260717795394407627947377901912934148171197288578642093439997789864258718993724209827528029407584473703869201623615275667950486623393042382497107304136441788417530136199692901272061112688873458415206227060090458402650148955290719456674607681343780785649221514816879471753991321865994692871364620818494481757646081184369729818923359357871755964348836669056628291651975018160794393819358749530563528770689990595250667630676308833558604806374094774026201523635673636833865134417861026091231954095500001575409587805058271971543212023030608240108651970479011818592885755576545065121136213449276697889873267044647010814794200627251093817984766027668588957511139629197679556934780610897666455590609839653843108261228081867144757354839021524390763539856873503058026217739564729666055639071014003571701271070261209879090108253175244009374446426074931967861643999880629758756873206274898977998976889581872451368943346806452839211245473133418337064921742222406684976718303997275536257665381245074764444122250372906588950868830941399356184346238229728496963412342980745589599340168982419751166301483323283914852881846478832774817166534402816832922198346543109699478025762379447614926498873421497465129548121030256353853487440227015468796167155481508887420128805584872470535277086031260134751001774522875371498126277456597115441684269778164898684353385973670064067684999259570468929839513515020476965172801389343654805421748632994893452790374694998564516801018599347588287203904994527708304224225270770130180070082518006038827927838860263797235055950757538722796630493238859065640768139500929436676312567390284352431922102382125447980692949047373001417462524150305656446552157713523265062473527992452967648445785415448244141010408833271243378787793849646100755183274804980481442062364451341769379265382349322521970740391100637995189816870109431190373816141117258058223906869181259013229980215901239969328123047049541306378168847347965060987470040593135228584920665641012905798560672515459056123932533680593680751411983627691476942751887148894564293565278582271051625216992447986770713461185288669742913691147215312126051416092257667096192172240894025388065859856933655809042600966920285478138452949940596264142585872209023413019899157348716070240534104050128307720421205424190806105688030966252024099057544477440785038468104589709980941404719968990676439034627465090864588570984700278071450457653024160879514158712086684430657428745957660105840055323120269436368503838329007578804670119785810189620352133632559295327114269586663586775709884427431012046759238812264249823813614289425028480941037263332927343967195539384843480216789628144045872558397219939314583122492019448265437109741763607921576099440289100207763337476526797980488762152007502484883971912112840445915385120143879953806469768789012449259347428888424554154457953571077450414721882248030339301519652252981600960222905769481820979982689636445817807998719337260234131855096391923804928271138392730886017199242314231184347855259069797774505304445416126255601690737734228301517104116117097541929650586338218973220145143673553269370607812373675576340887946384747058809297831206800572636092000445904213563391250356707319442838295147887979438746838862458335304308733311098870720821632028355955210432655915384044109021030996646416899278520612215220872175686405397268745507091440985225397505007084026787695043282216867189848522536289094612081940234827078007173569653044819689345739184695116807461369084576053079964135422238840162581585649252551609485287117615581484014734737045230904418031815547658830376818225531263253758492547135468638613763662193141246572721079408501705739504800717347291095899166788494173275104797828704834106993052253592533170709102499781497182265577413192244396438549814714200295791211353510447485627306210667400796197744193398968881799005183422341766406668076409476017220267258382699446862715892978609209474417287966545630748135949777818047826294861479446410116386985690830155356056044062636829419780102829463913268163101340510892447488675956283669126395263207561412298551382143712536622636586721117328123467063704456201038220575894898773161110555104834680134284058941786367081176794385859918950670466683706934617923093394896863848624519180173496824597497585211997489780813705915643962540333204818671146643015995578906552725342039167271514512183234860121854589099132649005086399966818961322652466812911746982640268020782894772680419532557910103408604174676882609875098312155053476384972582914657270011698173709167320251856141141068660211488089171061690898407917308330492263983603603214301972021475875088131401919170371299586999342153252724736158392540656004605277455192006917745608230584605839846974328717523915854729768279220431838301764066244115998151675029904277824924131433699803338468349189532082172147241566667959559598560864164915810596210279970826690196285116808740832037373139251541351908149982672520266629164243721975949607760776407849535677495502547170492726068577579430960026849039485535647095703565304234543290607424283449817052017961038434357749773510258919332364001289196106263122267919445238707326939258004741131040214600342037777305131160078410474499552430162766356670762066370568901015916021895288590915780817814158736666812978458048714221120044332454610821363047728209888531151175765568307149602945995743095531764238004371377439786036495660938639627762811660931909406472026489853487961005978758115554320652368277560037058067720462724381497990874172178911090462709759692935334812382280434508009318632963599416852577132479053921696590585533039696152142610695612253494982420494075782247435381875678495384746421383395253279098550991856444794169053714928306068271763694312620592368798595968130041539818567423796574473136840927541397859073275138945187966922289973755724197435175816236244068063542256134719029472981509849874484805231114081088632219524058513110503750651314456202932169006078322666782238322530266091254878748545664746513411676910434173445888064696643436858574621811180697521922634775905048934449317591179219476266566054724825029500445521069066570016190252008949170249047764745733068360753389188324973026466433765217860572430896852209844723640672477946448767231820519964442742848304565480437015533195994304748035720203959717031406339016824266671075933003424415365147986975236065943323510089877885093107710129214853039683090098158951476284263046006268849012435011564176463663066079243891134534426727882461549898283311428337688519298068809477996206355479829778260777046031987144626002704981925028651537232122226866908778207305134626587763040793017755387110160306280660357078293605858022202923950491782118518203899765535591061235984750253113414444690775189587467997638693030685606214584017766969561257252927429967916944423838392216238248236955171816431219035230603585638248691714677066276421941486200110400010336575746049769412191210501708013108901358572416708190103616233655276193868684104753624702003522679115765258301027881543021116153708784654434879733680447653431293955186883731140500946343078400162530903296413820912607948032546404633920161688101926334174269546284825565132886965655596691808232774379632832681791633693157604096184006640152045560143270854448723406674840107961886438133860057180988442645330013087199965198586404822168271754067505337857381823881927042100170350703747478184907765160298653520381139751468040317401019777192388293965478277080078554909275120589441598131143951159816902123714427663292180929112081404846304053185996769939054218426820339277931059163875760924552813677126024546142142432429859417753631308673242394105106845671731465598887349973843839139267414238316248413022025373652237502329376191878030108226741861046324028226999015794714306900511454530939647688409851417157166140091383600885837781388369275474531252422315651837277963267385789285449239495765434773620190432649512536448468210012160651006803298941994117077052154757840555541992670333257504698256312421301943376847204913866741360396363622096582111070442530559355520994731495494436022908326727207132656755208573675254918636983301399510011836435357927386838107204273827758045566839456201272920972501826808584432084667901410648365956886150198664672603452517652124651970257477867380371722565307341190081343148164798995352864831262802532010546289800979248756764559788152462955099354442905810219888230723759308611321425767574875489182341474912214945939998974878420063038394572790716264815720809655585217494583198612645953889336593843264504996601131521013912018569721399198373464241538469072450767274193933020866683155784903645109095645392136701904450058001077275366143729912745897066497288976149397675561584557016064980455557396158259030481047094388862487750700945685958822446225548418247832541510823703218424856359977114674380265836101352783539498637790328965780982890023527542180277777117561749986010299913612399218752202007330732255912702221780696576023227133525178127278315305165397596515529523376345751443009071776155218322178777596301417235259569689061512745684109736629940566758506199308572841641710330211038513334111685897068086744269653921128911719647913504554787953369308508280070238297862795424121563958558524415132416246266999018142390377228451950058173386516220263872370708023283503948138684235609220611930710372912645323234217652225368227421847927221219470146993893587350052059327685139024464180953536039290194551887494435818157474973503006304683618007774104406643412065389680864987668757156299344541860194986122757659497193255247627335688787518195089881020380779770063789392022669247354110026194714525648751198339106924016049990453130814873127424695673139559900986043178529124729686132712142720019985741531826406928930467885405859753292460628411724547223288216236857029989091407956656880259888594600102694396589334280262054024297340622662530094233141225309150506846669248011781172638171865372740350861064618440305165670509255257686480978180025537255711960280780013978540423732324421632539945250310367772509298955042075248589590926575362218563983581390904168173026697952846625317763931041130319362905510276021720739244950510099923563627289045717466249846354082382244240281112275723922260710754924479707796168320537444321252229266696793507882765115246832140181363935005965342506893323990675967370197370335439547868502221357618608906060720166350567067813027562626324425480498442685453863012960721209333890440155100530282676243479986710097060927756612767313746162291902881956595890925203917599071530222205612771291594457608641278958217336877602261882867386404621385555122687173268824064275708775797901156272568839079659240053055502700233404409844758943321793237647019109061494130817112702465576313703076693250102117719766177482690128871600112304696023201948379315223381732927443417168996041552491780652487200947715470863982914042178155691232595270148218837862104372302922351185905536617323108806237595202440127384522235383744034087165485966214407868899245981371561261410887856767299068837035971357549964756997956213573902361821958775569724707755471224377015467410185977233091189946673948487519938122354800220846732958484077902152657383144067534351658171902989583738743696955694586859598067236187080652670371040172891250590434540252655475542485757537447558897611798596353497728470065956914248991966658394122644871233942738804018417268548869690219002645138592413176343821243781685772796981174993178351265259187473134604653682363098802241472482593288725106644658031567886313674336823266757503807004539921351940622540372406943580110534990929404000514343570701612571865496896587131554216832973478281412112895356196992331902567415984384955934929009533706540610976585892112234435547708049939911065173658377452867810890672541480456818857346110303849545918353091012653650507409546459804379209469217192562837363126430496318518518981491702118831939125026924863418840446104986888320710953751038895039019945602236558375570929898832722613815050357824603506649081416796848046076614093421090983121135372341085754288272000240655310761898367247173719255626969997031397533353443781561947402153685030675065110545557396331954557280408725780391590089548057551467187499852318231626352421811111545691807250322874301346732459122731178043593519821603150608692202374498386429970566047849699631887894223274461307249823183343809247816465982424420845205364873615179249653586774266895218473174679082767438037363227580258140373963027497191488478440792338976249585901613016791364222063879514343006268832174748716934791188394803653148292196800452233923713332295605666536184958876403051924970173283832067883954989621385499507936799922834752296012083120397519060013378443585870680355946495676867904695577265881041257240610541170473425283554562907900857889437378964565024525449775853948342999477238949427688967388384698974054970977444054410216717913752074728116561189293481242049333245489856406823149978876901724587698755170056648169675555684537210415841436707840300753870666650080750364074193182824784785133974693582509915830943808103905975779744261561611271245465416732766174622225513907803267935463019214642420944452063574913143630890857669614799410824607473941866533216462650407928208228408280098392508321268437826420606155530221067419207277369387364597916007615547098276616965131810385542936155690397440261584780418836282826120506689352748785360939026569572828087104094665629276636014610622535591525834744077704964963096700084336343801290922964879695676830662517950979292137694407080735839651113132635223280638794152101835982380068481092049166753362767341371618865012826949399941370272223977091042980709529029507012862971617582583902840578200065294023789583728217590760035832622448927725202944256813630833057220410529017331583530734251647720980552659105367397809032777041344867582028837958236931715279297663715779847427780313460921875445062754613843211702501551495423074663266561458490810312734195280654543057484581515070629649319302879432084483719738985959853070624520102058649434769635615078094847719450585859938488698903410900935399042167240891577091180612426271105178126111005024991197853766253574915002657347665060226563370652166834507217524064461415228488506147326706231413097346723836708856226402676152908305410320187780208200935763291741184460664213125469103852536791526809352438965159074024117650669970132655101134215645744998615851947440908212152182753431600975470543551141533583680889017000974389291052350575760118140209051329498877933861013204986049750553389924403442387951901741966270788221129804162058361104911971366426250325422280987279206043142856842381825450079278075792735840631727036859333734526693758676959625112707566932609623200019484735209499365399539119861288375091016105294560915641862245114253886417039520226020116327791187385229601881390138474650541916276108245031627041271404987351945550931310312828134724707868659998160904769842831063560677480056822057794087386779612558870242545931580094860847439439410946433228161790331080490500645889029200268915183642011044163243198261146330245118313706734456513575119027659462371562934989411211910539612608005303136123814267001265756144740911394945610416230014539500401523448370852712773302660351417449277816809801712340537017997555511313295720449768803357485798510342695213064617931243860137650192564927973370626287723054241743770349682886342152618090399248440195567758393441100398531602114766780798480493887111459148099416716404415409114327146868983755697095685933307753388778803058742304643122334554524549541233621670226692301290856361237138467907973084563992251998124456066344268105581585716989168180719567104590859789789404787384112750649484679543336872222627035284899001890595470883284885445424396126723613491650215906065410982999513065572658228300070048385187740728175013546082779234548679030335569995657074388519609557774164860624865240232668204302022234526591271535866020642636030781144108849074091444966997581674015038582466237684945745261485774962407025593517563624000284802538110450249585460976193670480213125010432280432773878528809209116947927574732226252995568092905245491597012307013124122860657554334216342317543712589563960490926556637279088884102874477353704924076565112129433614399221576582736246645652512558457918509790113716689153671093254097559216873247210494957275470517197705108446263435494854283252269641486236795658178907842799348539532128041036473905591907200626779541042558167514371350994067196134460638789022650215825657159668380181549106358047471302928028361545739804790171349279814190394526254842087128132411886261655116723031379257086166757852040152499855713296695967524050675962916122091234652733173112530015806589232900571951896875874353618305361736911050329102232782278239430752741909621607892018659984175249908187302845570955993316964819567312006519123680261462293087116140701567491096294216949043326324176120449705794757606503005961505358453769316462809811931090741962088156038586854155004776682647842206379305119491522206635252162066058352545205420036175948340396231618114076289981872836713775756023883041810086761872476316507633647019365619244591586702505437380314038086614732260566714542259107424530403701879393406175183211244280373911404700040213536181092899751268165409604594879535393816611213546522754956284307965497203541697986513117199527302125615852286145738650619973743692249893725348566608070334786025428079551071455810449887789680471197070622377701201722837538091440671421944623807788409743773833753331111600663575478198132018394573215118712937474315533461158109676108378049222514929661539649588538636220415037075507705650024171581276535669245359289224305242072602244265443699215777849829414551065357237541761425275166623645206074230030465146858668026836596516195277232488288323919320085734605452368592944559088688037725281167770154830551788949266092564014958840553563972455013517267125698193243316521281556356393434364122585597155262834469664402732587242513439736817241050292747416155894306408345330875945605406879570632784891323292361359055829970403704243523805755353606318444619683968971848806465270780045533724516513136948470811036874577694044151309176110789764085922922907578582096204201996258974777387931154576328519623699304555681538560141375505562704983900582419803638341867661934248537819950970161008099764323457071366754029866915600337275651411388842121088500057538050797104845251017830559319411416273608382375539183077656962176711877499699343567554893605638409127304117661786859510386848972529633462855918422466265054618018152960349764174302905991257857533797607189634934333824564451116876652599073721892758082526638446312263840613366946817390885416723747574679151405249308873352809776675325058445649801140570637147541532320454368322530069576932601402612284081097106483090066982009604889297331987204294015223411898961499209983849612528809105039862188764658031909400231658943086053976947271602377080159520623751108431082737447411387014175353174988481845443493308501862153817562008310930894764778989288096425360363014823695461874157192875441557156844954095323735404436859851096517137855649876959790804845888314005303371048669454063908432207918006116638353406537211785885432819395030136102315874040457956193605564509927064711566931735490055263843745153322448057698887005393635602187024842274565632133217196082581273774558525210306657158881342154998044079205223276417419416762243564743960697060629472220899557168522112081397917913218671055229805322776492014772755880219226436070559754563179909986045483221441652355477115320541532916366565797481501231552942331686006473930140365451625706027451316694948113424526232777053110281834067492937855076990816480043542707636960913949539985618239411460338467140745938150949228587216302431872883934278909736319615893838522630304447993320156061614216064514596985211417658143245217440246867442546101668988507081426885887367281130793921384220383601680954200891507162175909777091725514761633094614771977761757761132545361504944324657889559189181101160670866584857976847615455522231913392835832455011364368585349696880422523916237327104665998288527272738192118496679533781620248601814632504036880780415510103868459272099239789705640447707502164176582537905561309048488016949223840823506001473183995420887629762968047754517448410943097167597220262658394430820791456178926339863381787497901743503228939787840484324070393496523191095203852922063306192566291616838441080408872748803283706828214236969689387317587980109106878187274537106898797397465521348025717596855309099324667504069932098707476843100229869477689769949906805126515205497083986303613416200483135558677622338284649807860267037359629031441217221621199200682201480913738640899438249789663305021368471489827333261982655693917050253852337594650280752083080917642282023456193926692214094552251742809724476843479363774151696831054509088282778433151296965801284042094967981449284428275379936523256363722176961648787341670288198288934772972285137928504595516922434618222785078403527592013182300972216726269307486791378570898133060478704247250048187036110592496768454788835832042049106095419823267384491493546516307422099408964078750273379854117967848625128855242831631625979562202503736022335204887907594977219603001404427155232767373273639577956192914492701149441849755009944167358939520791959478908216390889098548325552177434007241775185254374328822928839074401301661406147211282124403872012253235972998662604162961533103470562911663331513805119270608579044796264798511622973266654281550065763799938851423391306681671595490213470152497784866894574273938565975641521556505915041525820614705504687779752770810375493280475618362807261137046333049028348810452085917352775033163155784919625969313212239833546158184451401062584672212782287676381786953741973187402295645530162475135078780225039605842760936321231960415331059431284972249349343972340704037514576500776593931321972392749614153509078022944142800133745333250526434866895975919531903840954315709805082812962511511752503651271903478952395531463888950624100549921201582189893935335637841973283489866559020462207162009519151014422072808527445036847367099928367081436880040041707437543139985688942378207506346604029243728337386969441090440826146686163158099922602954962064305731577779398235198345430169904836770441657250522798773011840696349256820293169027712421719360624745120894732215387579817681931710017568677030133587528809924270906879155013012257956400344052935852512135011200486851877051390929870444160104657049734404945719720543132500452466812966719176025095574817630760599928292825267933011565928606235490060526548196365904779038684841907007965799449289308467581362295695570346664130691762117774443289810591973166991843268479528755657589304427968181216631915754951081649165698273535123859503910459663897526516519498655357606482999339124561601932271811129816191218307331506584146406852531640171918273950760946880366907750374805503531734643823737815888212302221819288520786875104915430672237529611335967726000253381353596506140152604478838217777389789540619720340639262904454352342081570571712582840053916859020640938761974594723666281297645955786807791146910463465694292005182036330948620132387097780222878508651390683295871905744764436031830403952128890475902562146716683133546567958860251967233888102635484900322359622978228836799814082615574022344005706406070484531997746264179818605231663072123067906334441130269508793473213881500276545254362535855403935202377770798892751793512930678988918269813182628966983939471542841660297483822073192915671769467887590141913723957617109015548987350302311485832356822913323202145547550280737387856783350640711647269645170152241141475882142528400535849543600786021495898869079816135578617734698275760681528388456939188363960285882998312302048614231725795868649707036207759171584940733269387923985469148095642838532330004447323088980689112697992784405695118987105424077572111301886375189448660590210202022256719194746126392852900110246929972273824335118647584743766458108439590589711125474733217082306743455446549844841857905096688276999663159637941844572585292172230318854574467525211664742480048983693616595158047043338072259539783546104375262471431525467732139931034333761958764008649008121798360099067623986269598607211571729741536765779572251172018242667675763789364052136008590308001098500305655258270611601040073447371082507259486418560181955504314687847677950697422284393777831644885628970232577066522190479897501778564686983055634976727569649394582419432512674634876381098697134180216552725280771836286681636399479852492442475383235879247696802728162983920657698168141428414973589424726985009113010900028231771970057837231094252600917171024346612775327116353489894957063593352259448425796260861704753854515490492253843098350318682961689670481783193099417434121213708387171310036607712122555616209741950807923384964595109674226347318714664758106510070619540219053365296211348726144257450106248492702652451391389865278912784804461107702860638779938917232292344990959589332619991268020332030393768253546542324854508343256753377598361773500394969264431547140622391310081117994471908618381589976053617895569535387291081415850980491019390125535896128108498463643164906637346621465485559121413006311507595009452230451714273601095986642150577928351980368859504500378255808781387826151777827077603704119846701394021618971960326898526336010819719626967727867786591996566798721871445074012249040078853839127031394946247519173615599661241993102489443891166911871785400126702561934487214996662373119448019262078694139023704627802495129599922311932136986518381671204127299005633132661985733674519817427795735949238183861017672664598265100156332925882759406804182823039395195009897477667506118289010923843721108318202583860131123484833067215264772456295319855328532312259514970282278968848663825770583965619885570778907264003524187828006256375482850857443911172303983261037973979505755251992154164718493677094710877351293820472208881605009156996632000624014968630660510260270558387974744839893555690207077329437603894003334441656345709791010361802538821351510675083122405142917009197886169976108508109153426642639975732571956928719370767049271033080199086285362434919720114907889506700079414834874633281106063109417111326886905697584593598057649207298052550801659542314968969315869243995140714613494893876847055953334006467467943936668220007387573792779275626388765285820220944123179762493728654705428142380874123945508075258390044189705084549945969735182072082533273929069647017571247297145581980445973343564655947917106361751938864902326435657813871520741197067553756256340472454336500538040789064869579741372941880258725109944610079372287234399102444260886685773276915729752939207549028263748970528909913421951383281635826206308622110183622808781261442485128360471019652854724657564976201339589222221949960027567077554765897531340011249328045761897027701235435954571079273285683461698116896347947500545672595418206054583855775314294465640896326280476223542086048567586680259162045021409040261021967704570184580630420179494028518402032723532093952197886357496661977229206395028696424753812313239743558970289480962253544297218145758212757702153991831004416010373827835755875304940033001040315686346163785473942664448327154937553900186090846510307839606959987436010100167697013910253082938960076472418548366739767786841374109133327479532491803553082208928405461784934779052737348351670745790822441018549264971376279601128570189759766325193820714121771055172493125136511603901961185210010644813918011958823444693884622313404093506728495358327005224391337650307036228306426244750187964952804219016337380063316784727941327196360727586496009168088706799829195069779880541832246874007421722067652142365069774840570546889701546195792303173069559599114001930491054822492653377091860502679512844647740008371961790494501551691500367597032763028026350546438829942924473640775267250443019480933045658012266696592367170167843311434064460911916153191916550294967835455692262960106115655743359606626263999739311047523046948066551697547573893793338724214883510961908545761639451644505219187165466987253188213120413107229996734008232453159605691593395547185003613294170568445416022395775597671085416843762128015307155819185381631345910900700315085253211915582667313284153655494947593216290257639337567242181955801498259232725590163509144908895255621192549149812329939564437533118612377412658649011151379317599017996287345211970838794189916544602305868050477098429965968280674502791658279718951649505718951565869262911068984926383488218796919201699740061933000148172693693478156526990016273860688326228881688458004138772172216330234707450131221991229691894691778684423400390435938385511625909935612362504967675185730362889189724896462505783609070174803340204368023884430953206565015560575661177928291099645905474781164224514416672810024392891704254090445340213990549788272632456016767132675487871036909254403328098089168529561172671092803112508627666643439531597739586158806202035540094883689325245422899347995640288238699058363593202696532584995650843913333468884288349507308852996087490739041013238653049044593647651712209311810881515385116433567005274726297533366533395436789904949794291021397569764262007885952473064527984730185796622093304293303734528661905809609709790203172544722620876957027812497862333341441584206167734018554872656594546709837148210898717366216771116913516620767939403000832295698575442993905341925941060105270293289103565835176382484892784348499699196251108720702791566006537034177233013710666380110838731661540567738942912417868651412685771720240523874682669652403128796897491801349417455148634242229528962976779450532748356132994301816408632553989200253370885343093245437711269965807618228460269677559334959806846388350182518615657131135655043403051100830779176352581869330187661136065505030264060620856366492364402501958956107208286298892936960470996314802840481387067718196024533855217088980731882671257357943706161706625297362339656773136298490557813261229344758374843490168383092357984270387300211856399051470405772740312388229744002577890933338231524199770171219108780784648124625015697006929804400466399414376776336920230610564203343041525690350050686358163808894127701702424175588300603739586131371655449077297896327603825353798536351352256861666298425082612659297214827082753305590461328024456394276307649094330476644354858334312813722102848260389309213342789185484834043326206326551564698642989758442696337605873558964954140688318145670878092578521090687198312692513910620231140192381458079063832946933197504108424493709230273946639816152974657916962244478947510986053469070304492194947930633444526619546515375282641066578253495898223936009355791440684311049232077898558233011095698561328017568856825271961387778343819147491725755616431864603307012850487983346912341992070627239477577276798078523880006843332036339335789744114591010888764132894356813920901551530048467923673265258573596089180535553856529403708685713944249308929251614373255039814213830979974077444409248016896777337966240662609465614757818260009681616321998194634825627039230976296398834247398779793131157502159070601916097563698250090961769418943065114201975444874103664794899423895483663691417221713263249174590791723544991507584308196881282626725581965989097582485166451019546470032163182711560942778876811944632345657680731905533522609374032454018434316003511243163326939347034644312927169199274334883303795869015197499070102576591423572453814532585332448721676292941329208761611636701341479387089810794998553043894641908827488889811434167697013899312283796917853959743734766046787713161277557273651508380258038444197621049761431762939891958918638023585676965005126100398921982545729703004171696757580181827451995409425653865213425606733701076168974720996626578571218748037805702881674692685755321957610888250384538319070110979784725554435461917707066734984583642346414759042842053200447366557087517274913367253517386643931292444173301252517763144436874707529040695439132031444708784314508608790612479902658609846666210408167632187574299502395256733571889046140369536798265885009416715342697094843801293039519029602957084128176416825945755749884562056403456730664992525493310180825827733728397787571121755452525796526667498267197557919615363923432841909930150219350030558635079810121309978854317123399960073455914668432173773114051871343641682745217641976403688439336504982416633256986039428067978300078258851775007780171725648622421324039302185864237428601294754341927024821586480241806048228949317786484514213456956187839034421355227163191301880588715095445500416744728345433050769174976300895795937601302774266784738612369006537764386688592757602826551693891320826279947548410037275323162466131422177233324845206803812785564815571689916163115150163235176366183623838995782425640000451773068823985169852234058119530028468517538225093296946127883604683887770442603198017632204208618688993797464408690580623131748360801345995534735399407170307648668789268849258173479457058739467983977510947553719745288120625293005711358188126605232453019018887560338152247533853057096374595306069935597501928913353528652807061566154012458923679603150767480584818343602823394081248624154314185781210551660282143112335857045129040494536998945483059567978068057635874801212057716223325489447789419911644109012893244301795475920358402895524381724455984286321949240899988976706252330880985944333477469758460130982243164692776974519501947541359639627601234013571561510294857719525193533699865168031847722088776865490476760609648422016231470367555961885713739130319883707675614540651022333622961827765451703753948097988643230267434375048193540052230378703452820683635853116439035508937818245635668496381727057015721789519445170150883938850937197968547355851664879577082661629273869973477328089188884096488448535548199239647933711479568157419500456678405290544585954364931647262973323959359876527981973180914561619770203160726503504335001072550456750985640648073268908252135706902318254417532524121036712881980951865946563152774461389667002480154194614477174153365344072548993838319300216696418878065350408790843755938789468123516964353138993657832816380547810678430957577213525696868082922157831793629551607963987096751633536253081349312934537006640372041786499255522998953872554576981075400196260553128598002919563406578509501936634564578134052680583779470904801585680295208938027830803626665311369763418844141904709494953173944990676652412067669411770551235816249199103146492071712856176729153892876182520662157692228200990011392601612658089562310746875118179888126961736321890349070596495565925223357750511554589177970985838319769595391827494890595253505182817799197308123447507723355804755469398211480017164913575605774041781895161908256121540279833943330094039684806418280967601440060582064696595452322678717003036277248564116088342729829090619564447345359351880987691906895628240275026696062300604494780056215985439670325801776511499389505715349026389743793833478082000226896446166065012616629490690326318244913302017167898986417526522866481225198775649352124172479726617389156506931357276184343557722737295243272845020037325661994849997880618585018092569763198057112155108128352713049740660493596806543622289143959493119919470512406097175040055521951924726011138985301348723154506075991385294460974380303222814207123709020697408963858623692106294025740382315635073551783961314444999545585503029474145355075066329559946694418533891842408707656304633478805355977426251656923880087216590703278354557561276303964234139341882402503306475644489803749589408759922395364741659211973610389069567248512335579900518713625298998763895687329918464911007481879372939568611815467369248946400839895514628243786144000822825061024679204069293614772810647574608899840494450511389809620570339066900090446821483924230264598166205136455645909995829209998671267840668247453837540417102883083558919295634530086302328932574944445373771682855853094536172001567143426393146648738227161345211248273636785616737856393405237370411156126935038860648954720773292475859582269270035116743002007548191572137776669515969716814206216970642629151503232605867029245057420738319621755807727801122683145133405283614768992023563593525189313670242737845005861880170158575191672836930704036136413353479114260019838442664026351404526536255438788975966479753104028584471433060968162451652080736964499824030999872673772210483188872558570696852525053702425367608650341155851983963862101774429849040411327031359415982822671691526862027997326914906014831728310958490864553508297742961646195909663311853473308699386162004039677558897567418107255220893596968358488872623243005891310975169834568338790820580877751119573123720765328091260908740822974095248069663301047464757848529763054046129255252905066889557982513398815038161744951369559066568302642406276260318263831148929214809640795144013671910038252293399449711070861807863013858122227909609499107010041009044203990576889062554739514863097737516258100874204622302739789646974137410108976949294159731508310352048636748021997341816807944764525331921379972288930962800917925349051966833095933826276148298946086317417391160231193939768767451866991388546334945737066593307129170570311548687323169943537971971905649311291085074515975968542821467048079329451188931651315444640679781923085331821493091717685219435735263784667531733428412617665107497757552236891925357332480673153210664743874708415837211399597750006716195875774365155225980866252505909927857960968432003946935061662160131541906630072177206087010394754302585691121981587939978092141807749041351894791472633063949402674256114868746301133376265435141825646660329237203375915448699206831105723095608061927935115862940500196726985956383519618113389372481103087373679598538746114365190290994035146673623685500982818603224641270380235520287248495613229336150624852158493733199351412612460887448565804768717251589703320650729955254095500683084137759346574763987172814369738209510783210529970513632141164193026294781889029500549230946031418458640455755924077162090339412220569798987803142017906072904857038928950568149452684052645061069194885317439175739812254549989345658790257171192783537695595986564405091733453932763811007828684392748296476175748999391415452199479691121338250817802940393676736821573076655886961778635182705793401757526511856932009346963260784969491918444426650741872664531035004903975687217860638448825476957450001918351023477032292518209494013398483581777655602597058257568706555795738765233258566534494504725795069846513179691378244237792848309502084402751545463039099215169528475813618180612544056243569112546792896117802110717675016006978468128787201140503203531334273773282293715384987753534244945663161670705886337844989266389612478943180106761902576971166167532048741583913606991978854769543902588754028658050969221576117761756930850773867393863406151075894888286611374110543542894813709233312682232528904158205665321003168770516316641751169031799947198236497281542424093881809288199562069528408017818181310860945223292620707640369722526789849099504113067167005347643510660280084016202070613303250951391657209385615885843757774417399248831353620066730094720388400556820042906819272058538157544717953364967043062718947075461092132098774363853056404786050470431394120672089451348011966069970169179678486815444949288570481486199815480295388521435793451904620588409893950107199870970534571870150193102526750074394080967916526496722511126859332155806443929688038813330926457463179946712545029409322292266416572303637735635115739299463566235913371405670518308461845020117325503575314915793988804198620004417568181513228868470776695497371640115625982407871856395784838663892462771800163038177700865876165871267739323999154064165409673237090126064740019293665542001522492848343285714864704069158786641979502269357123906527531257646390385899765590942860055167557353219379852574921230829296427329710889873370436507012330604511184991643707445428635506001759645660272382586168022055630879315562657887659504305507571688861922487018437289223490820484395226585129246055909631658839559318549056509650228458865127617244411813532474994792672150107558498373451263553268406246140112129953537036886867064208260410331822305039545829739581960481453397110150586747711138904879658702739830374814399232220879353258126762973847251528755725946846529191948459478148699119112464535629316453721788839431514078898005530431213464955846507279666915643561075232796952310816052309202823278958751221270065737599926202751003527242654322832610718033246386599486634265131312714138815789907269683245055232521454449050185322700379869108428288823137828310794426970325034527134521648157536284395978581601115932015989738947021186425520046066118681982310153900306421106434496417474472173799020445775041682834908684454653716608708863125569383988654272168201280766685960063879336583701805790317206902872407602851707039124939456933681204071712006543004205186527000623456946531197031934449546681292383197075860067976578921269049943992773198644378298525721475775052520410462966110533999271485375406504913231871955503169315090926511552324659593376789631732095015203905949832146329567237046012038274363214007353511114925271036495317157872464199640014224733645991715380798437407415085975880983687283658164443259133878837738438476972985473856600819545115575786561483672207556212765567991764479679638601048410503864587425664730135770927691295924689770267703470891855433544011897578415159701115362282077237575085112553669114915466307823771728328271601530979162064538173598763247050006230949554026352667235536016530520935465758722559126270383058124845764161815177102488696191043433502052277770521806749630973154377423539852899085518077602847368391995967349949395014071405493440597277173788010874820924189328164726747642827116306699298050811770801127114057397177059070861598609109992015719424346542149649004649910475811712317359462714181467932572053740117400209195953189831927199143659408227566225888540950499740117458062899861718393429825722986676831434927311117821411242667158987459108107298236191343550752881988872977554050800440103462273500728583374543371836495711169625275892052732529114852809750601509215070429613381617208143381725621153640996964949495467923539414552066465927067835340654183097685339926521931685733354204576994195437123485812331526503090548253357265841918054967668901338603052043837576710146951798530440242806785909568001883345642258487519188866398236138213773681000925994564594579384113795178565761643046473050527671068046787002571332276253156557039481351544751466504224462570577669326286158045415211310867477510090248909611100196266305724869190025070054901660112909832069831911844937268382445425787431472764345559449408882410209530284151275514548876855805314332345314731971689070152499300258375557821773355410935176862106288388995075478324635246479084313284116574478705579922727725632394259582157104059385453174292059056978748443291989486720091873255464324082512752557989614761560088794297315736023279858741752416490381920610066136477135843372484497454120166411987000827435093813653420322793801698783274906746076126084868350845352387412901549606996892487183287909275460446698523249094986237279985400523116569020590517313492678579646757419164791331765547342381991997923008502399164594607158141790148950714025928243783421330900895661130360167692430876052554395991400920580980461380832276083909320060521638202530954700285275467762593552227920852873013724503027426119897482199000295606367793061907055093956339989736040310190927566583902238152131368352521689083665422613972193555063698073942699468867464359858845097239321895428012269159329511694206639150490188468762618408770344603943990982763686179138639766907215672281836547584072721440072169391774914376744069643323009408676732184675221086085340314948826735504014386541575484049067278199853430461141718754139167931056306923365104065892359436310588714054752164656579260034697342706212025356361750049173866147438835981580800683638276261316538087935984891205921990857603035089525751916357100973472795031486635761121365323423229444194954897734922425209134577822917188080336798569837622885179111971210920889158556630802059134609989735917542234413904811796854208747071302458156407264724658633565810206978003979040336246359306986980711243857612476652471817366168367710521297451190546298841182003960144845327538354570663881954187892311922436950797707740790795388070727369989707793564139920013749202150298024069259484300929177628675368565144271525868270501603859920635594097707591197462916420278317299518816084657553647915562029523538541789210311903785956219411207134556480736681940002278018679739584011070176995918461393437548076526188627498329516702576172425503863095679142128554327749228151353730687465779314140655331480129820299008842598339703864001306783253815114500951717447179341492292102996133180389649529713412728777749464547566159667513731612393915596940230911174186770166559799873699243750476323736419407032476480243106049145780429930218026614708149522368923489352446773397589206528696960926534651663540982671645768198387529787866966718861673304263018694153101703027734156094761519052612414720706812891830629814393233381727640106054497404141953568643005194873715237399956187356164715857420846961064190839220722114842768383662367376566528993722949711054647058422283219873797308038228340868842725235162265648272436742682991929417855624069799651322465448033480156197789491434530853754639009602114897570230362311082686621339955407417661875521764147122498355240131560372998725734044318126630081603096555652100736894865355647261629104648816789205597217629205132125183616444962199142068774849323163770300651852525399003094445233077757714100434751104686757249414384088512008308847618831724943379577477629910734852264946363699163743227916510470666559206605025555319832610170131025766393095235910381691832319236945638953625106523884401048322803093221742797389748471591797172177663252330550836546558874112484479029907502393936293484856217544977933933135075615675504185973120055003304113879478357572113737992168194562426513832570627103186920176307634742398381813910608243800128372640132613840836219446877144865831465849429787157159726012962323099310582979544883896965600120428857780721949830675948835811741274286129209923488980585283725330682292145457159122316614081282749252142429433956159973478497665894142959809828318431486664385842927720988113727194674145766627643461785634138736690011645084726924999140533616053857291054104966311906566505009677714478658025070961408676477609855614660775765338014591095459968622482864325558009737696775053598818447232846514981702095203024158181802339725310100891511076418186171505573376719982237127791632958902319552073602168141793860401596192817871520959882011059912542400755199757865773220704702710530532926372385568853825322732620700530101127536368492388303028298786968926526884645438102301401000706702119009525273904495468766622697802532613723105301385165982619532067962361907671083852423510408504120897332121929927243460715827377633568259940014504595527424547056702536455811892295210940356583090737609716816676766691327150700023181566672905702993602688301531501964411114360320497283255275029656476978108906323800459245734608098773557970495198486600946061028595849552224896093687528476489313639700488534802921860592866829355929782267499424207580809124481330666776909467479211344383706905081348429582529113437777626038267214526370964150619867797974349633007238003049539977454833130778378743257060645414342824282613922345253108600723094248225111310566552486178365455783143953934337256678492726644915055795876890429682417770031630890469713586037417170835776043694159811398103272348613410374965691946296815474238276882037451818590709587437977366631198964019784227757978850383125054236738300528547528313085792569061887758084424257211745104686589089474796242540291982569496976452973178848322276832364884538233254935216705667398575427813215709308561502245967612315175482533811565767665021314827063067388055089832882422738007707503863543839954848880891882273108988276779019773773558068829570690100851833882798992753345252945909643975123036510562591055765422924553414525314259925606694364764190025967102433960074971642033689859679347818025497218070219101709895779421191764376597068372615968778834284492266373922304133637433656218637048917843283729826645711070611238798616309247644392787142127453906404292714753163689730484858732633708380941387638619573709775107653446088259463546841189742688781865815978325531197858798842729751311121693018226985668917952972814662772014863381933891385132764119423018941946951445730371789485840748998258335665652485205847762774045478321689338948817110275760867446105198232546773247010009413218902644024999386012890235740668374402939587695771822929754202293121831202163480194647974317721793462849998400871293075766065980276057076492476082939664929935384091457156320847639798631622793720478937090044060843917950086811844751397113268221994897339359758432965308785529630609707183255770623824156231758430602697704968134232719034800933597530648552221506759258632259164823480913667834475691420020135560528831707963938030925624633365192923657986594112065839867102836150057937202723640362240278320080805531927303023200782372874817388920764498429584991700683253674877182506962556713224990942540720437091676495572601840689446337329288684207594006670564153941902669027075760059479408467655501614042185113250105700575011460839375371660098143282989210134051979856885892370216139193084549120947884628719855039612853114370285390882267224228663381685934738563384961539838795595319389050465754746616303331450919425056937131569233873931612828761085776554648777493514118774265624091220848213612418933517392203746360350030691967037107029620991936334772809827121055082571430108449803470800394614485597661381287340219706673045272474010597061298790811118669323816700763914150119769234646012144842132810533159829551544326445715624213027632450076990583432339322784169395250115896448689048564177247795647453232353649101528955767318007361074763438890767535173689724856318180801797223197080867162013459673910431667356145645156374087131045781200707059837000375708209128366794563004845633791094360113130016171361786325943651266257324238625189687177794553694103499629782183034677240939223308080745179553146412536247965117760803665689358965168116298664508829271585261864200634664981888759393009421535116442680454646901611024517450671871495979365950102083461712387210189019576764147782206527209829795561972302539728768131300117609043444849403521015624148800376545771071190941653108799871759814023211428255215353472576543811109820552265480115083599021873844963524022858547760712456683785673494525698965111792986133909275095117963039445807156534769212087552108743614016083486532025529616671930474637604627781900143764763002351101614726246078245000554283806820146021976275920390174042538134231768763534436410032891574763487709687979374476711412570006923836028086954767238987498787592154412196133434628199044094156006220723720636380955983781022622740273795487120198181424547529981499180184590852400313626724675799544794869471957162739034095558359341643170415754525255480860176711014417570956652061481985141412005387665128555230255427251772578544347551227995235036798011189296611716104963430827344987700640735174477773986796387334662843742782749644826475607507072457833314200031528714906915453481775139999104486729462920515000289173728790780930057740539115064258656370834629549418640246352834676980303319986031627995591823201971054738700483106112985619045683325198875093333322783434244799741612681109462988120502084252848696224347506458370796367297752790571029201464515612463973381511599286636749610976021876071603596068786901155368614384840120980022807481225808453129280774007705367622659600051349040971296534867903553995472422439263848904352387610271867871451076173454352144486314391662523268113707480658591336402576583741383518564586300467351755610836297884169056523578191417064527094768678391546891327483840353643068205946556038394826383364918587635790019807892832881217088026847345676891722677034040482357248174081172458088863208149949917739298840168598877329864511518404138341538828605001929643096368573465737801680893950006339338892168635476093729762975674001023411839421308135932923356647092324110965573703164715328288025843895334390190988615133206390238679058972586702398797971969536307769562963947937610609343963546431594335538028007586125546036640037712955839841787729848727358760778052029315280344283640704786476790614404313550927652035008752664784899772895054930599326738998359536025292088234446753532050852387339566432796999050228326145126963111308891007773593397813523759293180143430345525281079174757461044582555429642311075784647637430424622872395008654051573797890833552781199317567106939260440546919349382166779739990992319151050898550649393002512716807599883469873112631600721617174720996364460103147223166187653440074795023462024139750786412758556072219180466196753571940708207445089925284029087240726102597267072036433248729300894878646663580944691192660649986435316189348032915753132667587252635538075081015413730471967397250449785440175987893388068164177184500866807671051734504101925669471616361344307109278488553272438542651716768464623425748587858296118065932458499072068174036836876742937404846703821519653741213815691972664667844085956744509332142353757257356713983717487930788490655397658411138718814527626658427348500794654772131349295307897246796226884262412594237241224526602694388625705529474970473790880187677924699754045713928388041786000408334758371221132581144533940321751972037394507902417484425498882254451821271933333616169084835515267722536098147146437964305248695548769658919661560730431258291168863469341656032577030774521098499917599284190638519738819758071536307788938003672609249438205259992568008328852058450247683350114391521346976577156506834961864325516377618474496548147460972217206174781553868491345096465973049922381225701531302485613805623420650418896953676799611066531694353450296924211142967056077612529036477921610352247042262706400742175657121710695612325458666373630922991589191409908377009047341187851100673201144117493911059513915273289810696385122503476169125303932702858920910254227847855252394861216166718549865924830023189748517656183092496111315674959899717411039948162161296625783287066055529782056901983438846948594789616882541503792358555741619804172861692512581883077291293217441277231468568221030652543590665161237750598137143954939354811000197420178069186271809155036994729357449322526539443588199003299873651060202460067789171889969289001968189736390007895942527048284555007050988388879716038679648267777716784460704972514865037300879221694278759593043971566435602713466115460102298034847291542783602135574057897509462878115879075327598288891207331927511836555985462187971176520365120984084151232618463308684153029471467827704024251730631973570200541398876630313141077054518689851624966297041655703475355501867164197000479238646417536621381599837016554193632632292117820668420858956395780237883442186591774743203187469632070960726653716450635212043115747514230305372588478983053855472983634682544774719657975987775082810454015436820727756916154056089122270453728963979528233519203739118178544068850260432469800175844269007995769610284155492223029352187054756168202415603007924002489850463231148432988843267680108137325653828946715590373565054135980036704400903254198637621945731112218191899971650688653080831642676560644825501579529916163242612924299223543060892327735737204538789547359010414784687016651616250134030413024277306588413229666609433585590198294332275155486292219198880406773972762006454316030074605544882096939486091674360853810684058550472108259851239756792238540528907952162821748302956172878978628256106946215636408575629409538741172268364026506017859681169724506548610199694650523738917554760213785381859528591043026406718277462612576957249606324899464422360567299558267035997423564812998484242706848832309440681754148551930434552731588651716333467086915010175254003450378119702984780996033128140484710670978228483427324175694971520976471111095283865453095320158472538570356054324746086619886311744734024337195402327639246592176427170168728780592811797231708856670589563323458713294673576317398564311390474219489052751977627382440295163359616713407536942206492389719528668278274249546293663737354909523116349971448267313967524539195387148218663808861413736239098278340018035865303756623807320023127881616439553374801311023305781068632561126837911725126235732864154719304173923758543177498063841402957428251317634210932762057196654605499131422804097422899241800037618465370740735223070115896456506983475109011658911162703068299699892453719130659696204053417570566951307934712193885217099628116753866935284594746385784817943667714899165572671687671294416376271463044219922917384492157758923738906525990574146982338866698232011597850179692486320083129967211136064413588832874333117818631680272196591142684623401767238057154158657814731353281331503169844663182070964218319608165880413102533954932154009456642953619159430774820507774281063830823878004128745583402726973757131870259452530717963684515789668833159931114081677190979449386954245188024168218782004197973583266742844511476677463130322253720604599178650142627738666619152704890417930070964697676080345465024678169060416327865367949573612922877401556010363809623724246491530665471050557128199175324830770083834352430174922945716700198879982216896151912628105231555446662141719047042522990582123319411738747010922188036239496484458952417203067577293546583741720326537252242413390686923043577834846435281077751139716210844911313523865335070154526084525136347934905718387985045148225755926093847141254186610232765073900773928603027455665855159222154602904440950432431335445610421098465351134079270538673505178207858821821423420370533381929852532970551327189545175567913093004977141457948920573121626064498321845044276518948580887729547886992576282653734362309309788026339777297019761898761503111062442083438368548888159403989955132358350804592596168574023599136796637029136915198589943908460558597516566316916100280813416338457180951276426148161463172391506875630076473167048539567795202480139035798347185521467711811273229747366814871076034953103858035516809696921984579357684811757506199267901647320310578879319972414216088748112004603408663888140706897652567885333814410349573441353161170526481851692034022169239799574836046312554099534644782527484665848048790747188685329008512170971832318023833574750977084241595082659897486308992405149189670889999765756040879736980106128432998917373916419695100920740328485305306460561885083501963144676266264200804046445639304061659017580563682032175277204547121325470985817926735614566307884191683009144454743233967880102442886529185542639381959936280192648922783664269967597344879783946813219278272119627337844284192829063518994589429678138705602802286105439575102252633032899459090604246867540725296375995346926147914570848730980690154677459930518325000344194370973438758924169125168335907094370905967794911224352231213274590882849133591973637311894772326926396313450045753604078402656980488845498432622934319254984977345571995296201158019819518328363814276612540862991041588878626436496210543058097084099499550367570193390632723629775980120898898051999313104620316470350699188043983556630639724845700649374881765488875376841600516643798757398440061427312590946816632214412449909766722990072943274951683159727464589876804538159488424646481520989453835833482596059590857651310052221309968961094914206557318923572226898925858225152800624793827323513938468851353053038412551744052345989400171912150238512554600967347206118632127804575092398403879643403386791681531278442617551330564317962793965693658032137529785324785776132925750549948169509018396100262304954255296057634343194111814678473648441296986480059385227322404940713949749541250965070795077674084457757435460702693661230854992607832175419952903196762905751937798680890462903671240526069826644133317297152896386269974894283153246991543707991373456497385799924219099484820912349561501959586563755239926993399670606437497644958671919851415370158177879554367806075012250119938570020608733293272982469553000064958362661814541017348639887232758879058368612947582930006838959576243455836703684974553322454568642229104024900754557150153546695845238361122452811664806905515477015979931080976566014237291625434288017297158798419001407086390103153736330144670600281997214756561571236690401122195771746329740573044351821162418390429650564323852894074002762334059604789320974796176980259068134323116553017883960432899317554441030897240679459575229115041818721424870270167203524034236515900333459418598285597957123362609820666754888309405087707115774248211285623125906197085064677477962355084927090923314617598675708264403829522655068359123610501317224956814909832814964718607561972904000759549917889070937911027034102121013815327879085542654038677824401969414002133141464941343019238432121659126537011470404498038259420794626240978879628870266511663298900491122952735657316923098454474113502225404749942199704441209650385186235992829043696708364671544436566890565316671437331130622663477951435100707188241861744316576373512027876460756314247300649006892398617848567718077477350805727545048219199018234769263350650928750473235844920330342802159768049933715691040182451198908800398321831602909071766772901001652051969103219830440487935802420082955928726472614072506529946202014038386570976096141541104893425825838781057141556847604293928081215278950621016382888355574618204430605238811993028909835470674063864142877126730494802560043588769741827528530026176611841001969512716372348438408953958964968061454425344082184406474963877269984133495044622667801998410517356403979404770033729047530067765271412814734129151098919757107514640338350514759640615277269806239010707926737184416496245869088546979987036706357478504503377942137519229740107920607514691058417726855344201590731775518779246479702549323876254682400733786538869974852057156316138843981731469037979874798152250696596845826057084661700600338899620710097847213612367819606713153837542825258497791819432168486626864367832426425082971099358893410773150820641407938500383100511441572461193205562857702320464725625665718389253709781077547515891734111827729194605513354885002961944841095001474844742773440517046180541214606631877930392944809237068056709307525599333523744965520499115163380518193218160315956667143354418343374208067128651625086695751713427596627517616239498975624670792736153805299203415577667917106765119590183105835801961995902752503234543270029332225630771004810833113181897093746412006749388330735006511023799364386954702726402776158757552352369336894795777534951944936279276020404250335033756801760660377894932946525963606146745144276687499165614070209449017761929875711734906890118888480034040463557200873953099513793863158023123504669083076831037143661270968087581962714925692505383282436598980618677986216766051791564271559681366882613046538867119162321456446239897346613656030995061222641321033629252733150786241510141174125912882117514379623940456440772240271892266284032489089685922410402615251899445054146542113037027694638128268942171102977371350352528413579912230919281327542939456328136590292493797641029796274085865987246347657955789336669483647477319660343293995607418020153116443819005561428558011678615068065362577305410584563621859437737279428314304427887946778251791770575140947877891746686830743007140156929632842744397588215626011620933409138093789496046769740314443556690009686082285398814118249791834268965676756776556089482726583640944164945989532369396894376285163875604787590254633014075702581775934439239586027120654914788987002019225363957231444550880355460735199752815148897977903143169089096643289042935270098796305324564896130407681762011034669258562581543407614468564032237660166499187039060002946618998447115241389515025917768984389935736636802231743790882065313609814791116451949988801271422861629604513978068507936553327985093724753685732988370083586810501682980116865232965120755992395879814479571423982999455792427076871261293738424101387093305410942633374044461255282787063679656755800894009875690085016463768467101043061810801825197573903655566932116984132447116182186489871712472029241845923394856365394522536931050600900681088015225011211085903556107119828603879391117869172977538323107485124321728011131136211381014044538586683074789337521952182818034133656087390435968727636236087120817475055957862291562283144440901743829879377867779748341291583764065005778640798236397663163249934681156484255162317555498142462809221974008371073392106265523187366340082741773290750461506984991057230044150721799603627432574110601662781450671957397673100831393072031912568231095085814706364516451755925657951552598035206974374503913001337062201588580274171866231689815306673503205217325520724053250788970577951292585555437096142189760872544722776156324908118015337537704655954668332501158163907011875725899818289223945238065066272493334874769401077386850935483397077890001935708584307635584717374430246716784897305367550569147901233668534516153451377944255660390046806470536018306160941206614333444170184900429552511035472287974927170974161909491702593249764980811352012744116652161410704255811847074670813172588612960000119441879289772493780196768039523152980656283816621727032885348037993681676744706047592933797651671100519090361003547621166418893934290705908923457670315018920083944736178096694298852775854597686339025815342777790081457168812916568771072129871953479505036252983295675663954353859537775454543723532502793518142247276436246422547060031670041481832469570722449622322961667251577043255386219552399030534443711809304999394740877058397597958786865948191099227394109641927812896359386446268217952844339062365797543231193699118408702849003532593297789262101624503925198022052576436778294234320303834777826883911947609923075556763269715338324456173315284917240154840522830640042395575366584182655711900353063199163821429454065318286556596200622026797174676442532933652544206752499153736683234294367250948014141394994920050512725132414693994832719807314765963293522348234689671788167522420884862364347015145949652444671385439518311837916236772172556469764262734743464617275165093156123099742638392688321152765061178747222595753782826017291020974265415419717119308476481043278424678714565180432348960134011490360114423103953441624249946101947458195838585609087721317079506298483051388828721585805620597832630215929695163504535678209306210180265315014232446033089444812526092142839409278833877655815767001987229149612426436521983403540293220364442103134362431310098614500111146541852335255195898031982054948033439740741363171284593284959583886047970931143546027182027058280291519147380081562959967515733479546537078495190297946277636126911662425925622900469837826836718866720686768310128717766187413850551489569605640966193526516258304515217933534664446739328255163595478158127197811642665479057589450652172124661935420256870857388092057608076491894295135549331158943610164002213248823359638969103658447899346500191631626135606318992016037779634280254396949140254551252247686530306773124534210535810480273769858548509143701135717700301864537536403573276249441278003770764885398333526110878581363900927565639847615461542632620686280133434465350677433490755890979247469945678006189154368725778268058432714191923116731513144928368170517367748263276472024018446520919119957240083397570142848498175654399096029929551551705280011700503830932552172090221613762023993819522829292349485116048009303485000823065904273211628584248289971034533041595660267805809027982666078675728189503566803059476788171117066136014820015081518212707641723042983406632168673327421015032317058179354311505126037351900272277834501820885180485625332248595316716954591022780090012765808722578165229918600829561681066625065279772605827821316715894186806089955633106690036716029601032265506718531977638931832274962430966648405316859781013117457257242438166538932461021392696882401082609680338627655418486668601185372026335764642905445247172727105485348295441257904776369891234440346177461205425837902177897789578972764873184174890473082699255190248996483906543966185450276152411920665254916683086227064813756821406678038778624975917183142660786548021700081450653701376489638847484082685929215122687351337660780124285773511113745562595395174720449811278219107275358401153614478818185421736404661255222295647976274706986133439103291565966429767768614862032591693742804320844188755808508915567537252668179326899936662242789778708257364709471563971451661996249235140803521231996202635386125327132468540742258372100843662101904226941678827953585199880348680456487335453537454215955788707845326981648775876854565885968051912377990180182780044419235542791112014060745251400057389530592991683522470624544342454702754576906559562858685820589233368755155757738887663540794267373104104234496321466719601377105985564757335390048572123687925052528554779502041891139114084407561713805502635136929304007794702719192985796017219444994929462251850352590269371634921218958550072382122621050753103297974591630872942269079235085956613903135367184003283183632527475293329628201953411481287445004309920161855471430809333458828466747359158055683389013668267766204104846921724719532136931832458418142214793076457617014837894377383879485761230087888459509382678657989060129216218277461070919958333496072409614937055351613858603383496532552541637730748353113750093368953708578118001655110927080158607107603395732033205624996780765757359296537145745659675196298884150876803090238012602316633913954612284057905198390660905479564320224741912788009657405663326423856627261921097369757516335372831632782087476112714920139981861936242331245055102828464223385228874365400052159169630665357551073310351047213030446637960240819179992258574632434895421312981186324828261888509280421387382905618776354247561921736362039137807400490480199170548935689445003187098805563288644691806000653756797105082317876814048738059219840699015389868753751063133064352205790131718467307924890093120571197235933837943321798589198852172371995369799511378146197079114783246319398585961118977919193980165193660739465525790270669175405896100473800160689925818564433002443676863139332580462639272411413233079483660365573369296138561528250090680379206836746540860172444358741319218428220767026798572380413082220726648434000508162818541236980593730300300768464399149244048405061418086739525091663070582999500065442331887050314806865762157261303204114532441510231394444311120190167426988007154200399258926702286919366413581265570862397353534765736063806089820688293271846191519061337611922664790030062101938532589410758996072135945644240278419133036004197064075628316924665657944658639383344168205301724989437694441833791798341589512465149224107671555701141148497285216005324341521993265046030882117918286668775333969765688935109951554493092748769640760311648562205479030146002383877745478634022152135295984396114203300137279519073633442095750092771608449716305579975909458198358972554329540551873668642360353955100525466888439114078967975646084739159676048418590452637978962457786066512530560728691354422466994690929314137639703467674807129744017959937121552068376730096176762396709905159821263106539703430700712579754977052237829537075691517465578587944914063082628814518827431264513881065559849632627722729015115095658515261623714136340885769615055436684936190834107122903756435361508477699290239190433711659587947912838838196392881618211329502212096899195682330480089896037903536503302287739816977325061961152917808925595963206202083066731539792266222546989735011664827924907576292174304123937217629865967638092787527062773496793639755387452311201184221703029366334950685093334878618196173963666786064738735183085734352632620185221973060805610295158910845192071765708788720122314297718897889966548293782591663001891655721045617366691810727138850311919383659888904913786887171673186510954763523740857896116471819273152685224661825599427821876007864963356589707282877607241281776579192473505797308025940608113676796588844554298971831739292549627392165629374719137651293914149648022848021502747404606157577260508450419146755697102885991350634496780159758160625854099727245002705689694761518696777875330185323432529529876357901073270726053740905821831645283003886868963161449251500522858940716138463900019092544572209942940345170356526325566746567245534823060753915355347274691825555915627484160143958571548783009892792615766477674070356403028068416548590588994003235706692010158785799685321562373069014742846892185353603244043052691057145775183596050064399175722556821997178964692658779188723959199387108536158289481707511809236291282657658328118507271601597136505914670188580774140456448897741808972392262363097793133288919236940800494164014365433466316198579935153573412105563793688169630686179413972370169258054498968232797840431712221430814119378817564904634358011891019470120575145722956377146340220445160925004845204129015149193730900271903928424851784262497317387302269463140897195072780552022733728374058874795221117298954657145951335471602418572290021922782382568704855671237582352638199159801781484380910637878534940623754272762959424859232952413639292420343171945168915152477725854898831220711897135812733270518017952188015339988288734533953445329153548155451441793075915626017411981318975017969441614708858468273692019981488226066054109285299421854140896167498228310558534451970794119249977475744597799119747815396513961680756239671154197577879552949130221087871780245189876711000103135008789323023876637037510208509913857187392493483197563513807424945143099510329279956850366976680036724958441111040827019152911345468188940091148090304433316425775505587549910009550780771993014323278038013099834642806694992263103122364071257754575282333377118224757746321956358532789267410208568218407620381993625129064423367862360882665373537435515802194052673673520764010394740738834484805041490615490058943408169532750565720113533545711321673783252565560712231603505882877599565124619770315134681766143570753930160656152603123286593477878137927450622667753753